Repository: mlt131220/ES-3DEditor Branch: main Commit: 8c2836c30b64 Files: 748 Total size: 18.9 MB Directory structure: gitextract_eu8tak94/ ├── .gitignore ├── .npmrc ├── .prettierrc.js ├── CONTRIBUTING.md ├── LEGAL.md ├── LICENSE ├── README.en.md ├── README.md ├── common/ │ └── build/ │ ├── package.json │ ├── src/ │ │ ├── index.ts │ │ ├── plugins/ │ │ │ ├── appConfig.ts │ │ │ ├── compress.ts │ │ │ ├── index.ts │ │ │ └── visualizer.ts │ │ └── utils.ts │ └── tsconfig.json ├── package.json ├── packages/ │ ├── docs/ │ │ ├── .gitignore │ │ ├── .npmrc │ │ ├── package.json │ │ └── src/ │ │ ├── .vuepress/ │ │ │ ├── _bulletin.md │ │ │ ├── client.ts │ │ │ ├── config.ts │ │ │ ├── navbar.ts │ │ │ ├── notes.ts │ │ │ ├── plume.config.ts │ │ │ └── theme/ │ │ │ ├── components/ │ │ │ │ └── Custom.vue │ │ │ ├── shim.d.ts │ │ │ └── styles/ │ │ │ └── custom.css │ │ ├── README.md │ │ └── notes/ │ │ ├── cooperation/ │ │ │ └── README.md │ │ ├── guide/ │ │ │ ├── manual/ │ │ │ │ ├── editor/ │ │ │ │ │ ├── extras/ │ │ │ │ │ │ ├── 动画编辑器.md │ │ │ │ │ │ ├── 日志.md │ │ │ │ │ │ └── 资源中心.md │ │ │ │ │ ├── leftSidebar/ │ │ │ │ │ │ ├── BIM轻量化.md │ │ │ │ │ │ ├── CAD解析预览.md │ │ │ │ │ │ └── 场景树.md │ │ │ │ │ ├── rightSidebar/ │ │ │ │ │ │ ├── Html面板.md │ │ │ │ │ │ ├── 几何.md │ │ │ │ │ │ ├── 动画.md │ │ │ │ │ │ ├── 历史记录.md │ │ │ │ │ │ ├── 后期处理.md │ │ │ │ │ │ ├── 场景图纸.md │ │ │ │ │ │ ├── 场景配置.md │ │ │ │ │ │ ├── 天气.md │ │ │ │ │ │ ├── 对象.md │ │ │ │ │ │ ├── 广告牌.md │ │ │ │ │ │ ├── 材质.md │ │ │ │ │ │ ├── 渲染器配置.md │ │ │ │ │ │ ├── 粒子.md │ │ │ │ │ │ └── 脚本.md │ │ │ │ │ ├── viewport/ │ │ │ │ │ │ ├── 2D图纸.md │ │ │ │ │ │ └── 3D场景.md │ │ │ │ │ ├── 界面.md │ │ │ │ │ └── 顶栏.md │ │ │ │ ├── home/ │ │ │ │ │ ├── 数据中心.md │ │ │ │ │ ├── 设置中心.md │ │ │ │ │ ├── 资源中心.md │ │ │ │ │ └── 项目.md │ │ │ │ └── preview/ │ │ │ │ └── 界面.md │ │ │ ├── plugins/ │ │ │ │ ├── builtin/ │ │ │ │ │ └── glTFHandler.md │ │ │ │ ├── 入门.md │ │ │ │ └── 插件开发.md │ │ │ └── quick-start/ │ │ │ ├── 介绍.md │ │ │ ├── 安装.md │ │ │ ├── 部署.md │ │ │ └── 项目结构.md │ │ ├── more/ │ │ │ └── questions.md │ │ ├── promotion/ │ │ │ └── README.md │ │ └── sdk/ │ │ └── README.md │ ├── editor/ │ │ ├── .gitignore │ │ ├── .npmrc │ │ ├── components.d.ts │ │ ├── index.html │ │ ├── package.json │ │ ├── public/ │ │ │ ├── libs/ │ │ │ │ └── draco/ │ │ │ │ ├── draco_decoder.js │ │ │ │ ├── draco_decoder.wasm │ │ │ │ ├── draco_decoder_gltf.js │ │ │ │ ├── draco_decoder_gltf.wasm │ │ │ │ ├── draco_encoder.js │ │ │ │ ├── draco_encoder.wasm │ │ │ │ ├── draco_encoder_wrapper.js │ │ │ │ ├── draco_wasm_wrapper.js │ │ │ │ └── draco_wasm_wrapper_gltf.js │ │ │ ├── robots.txt │ │ │ ├── static/ │ │ │ │ ├── model/ │ │ │ │ │ ├── animal/ │ │ │ │ │ │ └── Rat_astral3d.optimize.glb │ │ │ │ │ ├── building/ │ │ │ │ │ │ └── Stall_astral3d.optimize.glb │ │ │ │ │ ├── furniture/ │ │ │ │ │ │ ├── Sofa_astral3d.optimize.glb │ │ │ │ │ │ └── WoodenStool_astral3d.optimize.glb │ │ │ │ │ ├── mehicle/ │ │ │ │ │ │ └── Drill_astral3d.optimize.glb │ │ │ │ │ ├── other/ │ │ │ │ │ │ └── Baseball_astral3d.optimize.glb │ │ │ │ │ ├── outdoor/ │ │ │ │ │ │ └── WoodenDiningTable_astral3d.optimize.glb │ │ │ │ │ ├── person/ │ │ │ │ │ │ └── Jackie.glb │ │ │ │ │ ├── plant/ │ │ │ │ │ │ ├── DragonSpruce_astral3d.optimize.glb │ │ │ │ │ │ ├── Grass_astral3d.optimize.glb │ │ │ │ │ │ ├── Lemon_astral3d.optimize.glb │ │ │ │ │ │ ├── MapleTree_astral3d.optimize.glb │ │ │ │ │ │ ├── SmallFlower_astral3d.optimize.glb │ │ │ │ │ │ └── SmallTree_astral3d.optimize.glb │ │ │ │ │ └── vehicle/ │ │ │ │ │ └── CoveredCar_astral3d.optimize.glb │ │ │ │ └── resource/ │ │ │ │ ├── hdr/ │ │ │ │ │ └── cloudy.hdr │ │ │ │ ├── htmlPanel/ │ │ │ │ │ └── technology/ │ │ │ │ │ └── factoryEquipment.html │ │ │ │ └── material/ │ │ │ │ └── wallBrick/ │ │ │ │ ├── red_brick/ │ │ │ │ │ └── red_brick_nor_gl_1k.exr │ │ │ │ ├── red_sandstone/ │ │ │ │ │ └── red_sandstone_wall_diff_1k.exr │ │ │ │ └── rustic_stone_wall/ │ │ │ │ └── rustic_stone_wall_02_diff_1k.exr │ │ │ └── wasm/ │ │ │ └── Astral3DglTFHandler.wasm │ │ ├── src/ │ │ │ ├── App.vue │ │ │ ├── assets/ │ │ │ │ ├── color/ │ │ │ │ │ ├── ChineseColors.json │ │ │ │ │ ├── all_in_one.json │ │ │ │ │ └── recommend.json │ │ │ │ └── less/ │ │ │ │ ├── common.less │ │ │ │ ├── index.less │ │ │ │ ├── reset.less │ │ │ │ └── viewport.cube.less │ │ │ ├── components/ │ │ │ │ ├── code/ │ │ │ │ │ ├── CodeEditor.vue │ │ │ │ │ ├── HtmlPanelCode.vue │ │ │ │ │ ├── JSONEditor.vue │ │ │ │ │ ├── SQLEditor.vue │ │ │ │ │ ├── Script.vue │ │ │ │ │ └── UserData.vue │ │ │ │ ├── drawing/ │ │ │ │ │ ├── Drawing.vue │ │ │ │ │ └── toolbar/ │ │ │ │ │ ├── CAD.vue │ │ │ │ │ ├── CadLayers.vue │ │ │ │ │ └── Image.vue │ │ │ │ ├── es/ │ │ │ │ │ ├── EsContextmenu.vue │ │ │ │ │ ├── EsCubeLoading.vue │ │ │ │ │ ├── EsDocument.vue │ │ │ │ │ ├── EsFormItemHelpLabel.vue │ │ │ │ │ ├── EsInput.vue │ │ │ │ │ ├── EsInputNumber.vue │ │ │ │ │ ├── EsKeyFrame.vue │ │ │ │ │ ├── EsParticleEasing.vue │ │ │ │ │ ├── EsPlugin.vue │ │ │ │ │ ├── EsPopTreeSelect.vue │ │ │ │ │ ├── EsTexture.vue │ │ │ │ │ ├── EsTip.vue │ │ │ │ │ └── plugin/ │ │ │ │ │ ├── EsPluginDialog.vue │ │ │ │ │ ├── EsPluginList.vue │ │ │ │ │ └── builtin/ │ │ │ │ │ ├── EarthGenerator.vue │ │ │ │ │ ├── GLTFHandler.vue │ │ │ │ │ ├── PointCloudReconstructor.vue │ │ │ │ │ ├── glTFHandler/ │ │ │ │ │ │ └── GLTFHandlerForm.vue │ │ │ │ │ └── pointCloudReconstructor/ │ │ │ │ │ └── ReconstructorForm.vue │ │ │ │ ├── header/ │ │ │ │ │ ├── Logo.vue │ │ │ │ │ ├── NavigationOperation.vue │ │ │ │ │ ├── RightOperation.vue │ │ │ │ │ ├── navigation/ │ │ │ │ │ │ ├── Clear.vue │ │ │ │ │ │ ├── Copy.vue │ │ │ │ │ │ ├── Delete.vue │ │ │ │ │ │ ├── Do.vue │ │ │ │ │ │ ├── Fullscreen.vue │ │ │ │ │ │ └── ImportExport.vue │ │ │ │ │ └── right/ │ │ │ │ │ ├── SaveToService.vue │ │ │ │ │ └── XR.vue │ │ │ │ ├── preview/ │ │ │ │ │ ├── AssetPreview.vue │ │ │ │ │ ├── CommonPreview.vue │ │ │ │ │ └── CommonPreview_backup.vue │ │ │ │ ├── project/ │ │ │ │ │ └── ProjectInfoForm.vue │ │ │ │ ├── setting/ │ │ │ │ │ ├── Setting.vue │ │ │ │ │ ├── common/ │ │ │ │ │ │ ├── Color.vue │ │ │ │ │ │ ├── Locale.vue │ │ │ │ │ │ ├── SettingCenter.vue │ │ │ │ │ │ └── Theme.vue │ │ │ │ │ └── components/ │ │ │ │ │ ├── PreviewSetting.vue │ │ │ │ │ ├── SettingTabs.vue │ │ │ │ │ ├── Shortcuts.vue │ │ │ │ │ └── SystemSetting.vue │ │ │ │ └── tree/ │ │ │ │ └── SceneTree.vue │ │ │ ├── config/ │ │ │ │ └── service.ts │ │ │ ├── core/ │ │ │ │ └── AssetPreview.ts │ │ │ ├── hooks/ │ │ │ │ ├── index.ts │ │ │ │ ├── useBoolean.ts │ │ │ │ ├── useLoading.ts │ │ │ │ └── useWebSocket.ts │ │ │ ├── http/ │ │ │ │ ├── api/ │ │ │ │ │ ├── assetsCategory.ts │ │ │ │ │ ├── assetsInfo.ts │ │ │ │ │ ├── bim.ts │ │ │ │ │ ├── cad.ts │ │ │ │ │ ├── sceneExample.ts │ │ │ │ │ ├── scenes.ts │ │ │ │ │ └── sys.ts │ │ │ │ └── request/ │ │ │ │ ├── ConcurrencyManager.ts │ │ │ │ ├── index.ts │ │ │ │ ├── instance.ts │ │ │ │ └── request.ts │ │ │ ├── language/ │ │ │ │ ├── index.ts │ │ │ │ └── zh-CN-en-US.ts │ │ │ ├── main.ts │ │ │ ├── plugin/ │ │ │ │ ├── glTFHandler/ │ │ │ │ │ ├── Listr.ts │ │ │ │ │ ├── glTFHandler.ts │ │ │ │ │ ├── optimizePng.ts │ │ │ │ │ ├── session.ts │ │ │ │ │ └── util.ts │ │ │ │ ├── index.ts │ │ │ │ └── pointCloudReconstructor/ │ │ │ │ └── PointCloudReconstructor.ts │ │ │ ├── router/ │ │ │ │ ├── index.ts │ │ │ │ └── routes.ts │ │ │ ├── store/ │ │ │ │ ├── index.ts │ │ │ │ └── modules/ │ │ │ │ ├── animation.ts │ │ │ │ ├── assets.ts │ │ │ │ ├── drag.ts │ │ │ │ ├── globalConfig.ts │ │ │ │ ├── plugin.ts │ │ │ │ ├── previewOperation.ts │ │ │ │ └── websocket.ts │ │ │ ├── utils/ │ │ │ │ ├── common/ │ │ │ │ │ ├── base64.ts │ │ │ │ │ ├── color.ts │ │ │ │ │ ├── constant.ts │ │ │ │ │ ├── dateTime.ts │ │ │ │ │ ├── file.ts │ │ │ │ │ ├── init.ts │ │ │ │ │ ├── render.ts │ │ │ │ │ ├── scenes.ts │ │ │ │ │ ├── utils.ts │ │ │ │ │ └── verify.ts │ │ │ │ ├── drawing/ │ │ │ │ │ └── drawRect.ts │ │ │ │ ├── preview/ │ │ │ │ │ └── menuOperation.ts │ │ │ │ ├── service/ │ │ │ │ │ ├── error.ts │ │ │ │ │ ├── fetchController.ts │ │ │ │ │ ├── handler.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ └── msg.ts │ │ │ │ ├── signals/ │ │ │ │ │ └── signalRegister.ts │ │ │ │ └── storage/ │ │ │ │ └── config.ts │ │ │ └── views/ │ │ │ ├── editor/ │ │ │ │ ├── components/ │ │ │ │ │ └── extraPane/ │ │ │ │ │ ├── ExtraPane.vue │ │ │ │ │ ├── animation/ │ │ │ │ │ │ ├── Animation.vue │ │ │ │ │ │ ├── AnimationList.vue │ │ │ │ │ │ └── index.vue │ │ │ │ │ ├── log/ │ │ │ │ │ │ └── index.vue │ │ │ │ │ └── resource/ │ │ │ │ │ ├── builtin/ │ │ │ │ │ │ ├── Billboard.vue │ │ │ │ │ │ ├── Cameras.vue │ │ │ │ │ │ ├── HtmlPanel.vue │ │ │ │ │ │ ├── Lights.vue │ │ │ │ │ │ ├── Materials.vue │ │ │ │ │ │ ├── Models.vue │ │ │ │ │ │ ├── Particles.vue │ │ │ │ │ │ ├── components/ │ │ │ │ │ │ │ └── ModelCard.vue │ │ │ │ │ │ └── index.vue │ │ │ │ │ ├── index.vue │ │ │ │ │ └── public/ │ │ │ │ │ ├── AssetsList.vue │ │ │ │ │ └── index.vue │ │ │ │ ├── index.vue │ │ │ │ └── layouts/ │ │ │ │ ├── Assets.vue │ │ │ │ ├── Footer.vue │ │ │ │ ├── Header.vue │ │ │ │ ├── Scene.vue │ │ │ │ ├── Sidebar.vue │ │ │ │ ├── assets/ │ │ │ │ │ ├── CadLibrary.vue │ │ │ │ │ └── cadLibrary/ │ │ │ │ │ └── CadUploadDialog.vue │ │ │ │ ├── index.ts │ │ │ │ ├── sidebar/ │ │ │ │ │ ├── SidebarAnimations.vue │ │ │ │ │ ├── SidebarBillboard.vue │ │ │ │ │ ├── SidebarDrawing.vue │ │ │ │ │ ├── SidebarEffect.vue │ │ │ │ │ ├── SidebarGeometry.vue │ │ │ │ │ ├── SidebarHistory.vue │ │ │ │ │ ├── SidebarHtmlPanel.vue │ │ │ │ │ ├── SidebarMaterial.vue │ │ │ │ │ ├── SidebarObject.vue │ │ │ │ │ ├── SidebarParticle.vue │ │ │ │ │ ├── SidebarRenderer.vue │ │ │ │ │ ├── SidebarScene.vue │ │ │ │ │ ├── SidebarScript.vue │ │ │ │ │ ├── SidebarWeather.vue │ │ │ │ │ ├── billboard/ │ │ │ │ │ │ ├── Sidebar.Billboard.Image.vue │ │ │ │ │ │ └── Sidebar.Billboard.Text.vue │ │ │ │ │ ├── effect/ │ │ │ │ │ │ ├── Sidebar.Effect.Afterimage.vue │ │ │ │ │ │ ├── Sidebar.Effect.Bokeh.vue │ │ │ │ │ │ ├── Sidebar.Effect.FXAA.vue │ │ │ │ │ │ ├── Sidebar.Effect.Halftone.vue │ │ │ │ │ │ ├── Sidebar.Effect.LUT.vue │ │ │ │ │ │ ├── Sidebar.Effect.Outline.vue │ │ │ │ │ │ ├── Sidebar.Effect.Pixelate.vue │ │ │ │ │ │ └── Sidebar.Effect.UnrealBloom.vue │ │ │ │ │ ├── geometry/ │ │ │ │ │ │ ├── Sidebar.Geometry.BoxGeometry.vue │ │ │ │ │ │ ├── Sidebar.Geometry.BufferGeometry.vue │ │ │ │ │ │ ├── Sidebar.Geometry.CapsuleGeometry.vue │ │ │ │ │ │ ├── Sidebar.Geometry.CircleGeometry.vue │ │ │ │ │ │ ├── Sidebar.Geometry.CylinderGeometry.vue │ │ │ │ │ │ ├── Sidebar.Geometry.DodecahedronGeometry.vue │ │ │ │ │ │ ├── Sidebar.Geometry.ExtrudeGeometry.vue │ │ │ │ │ │ ├── Sidebar.Geometry.IcosahedronGeometry.vue │ │ │ │ │ │ ├── Sidebar.Geometry.LatheGeometry.vue │ │ │ │ │ │ ├── Sidebar.Geometry.Modifiers.vue │ │ │ │ │ │ ├── Sidebar.Geometry.OctahedronGeometry.vue │ │ │ │ │ │ ├── Sidebar.Geometry.PlaneGeometry.vue │ │ │ │ │ │ ├── Sidebar.Geometry.RingGeometry.vue │ │ │ │ │ │ ├── Sidebar.Geometry.ShapeGeometry.vue │ │ │ │ │ │ ├── Sidebar.Geometry.SphereGeometry.vue │ │ │ │ │ │ ├── Sidebar.Geometry.TeapotGeometry.vue │ │ │ │ │ │ ├── Sidebar.Geometry.TetrahedronGeometry.vue │ │ │ │ │ │ ├── Sidebar.Geometry.TorusGeometry.vue │ │ │ │ │ │ ├── Sidebar.Geometry.TorusKnotGeometry.vue │ │ │ │ │ │ └── Sidebar.Geometry.TubeGeometry.vue │ │ │ │ │ ├── material/ │ │ │ │ │ │ ├── SceneAllMaterials.vue │ │ │ │ │ │ ├── SidebarMaterialBooleanProperty.vue │ │ │ │ │ │ ├── SidebarMaterialColorProperty.vue │ │ │ │ │ │ ├── SidebarMaterialConstantProperty.vue │ │ │ │ │ │ ├── SidebarMaterialMapProperty.vue │ │ │ │ │ │ ├── SidebarMaterialNumberProperty.vue │ │ │ │ │ │ ├── SidebarMaterialProgram.vue │ │ │ │ │ │ └── SidebarMaterialRangeValueProperty.vue │ │ │ │ │ ├── particle/ │ │ │ │ │ │ ├── Sidebar.Particle.Attribute.vue │ │ │ │ │ │ ├── Sidebar.Particle.Behaviour.vue │ │ │ │ │ │ ├── Sidebar.Particle.Initializer.vue │ │ │ │ │ │ └── initializer/ │ │ │ │ │ │ ├── Sidebar.Particle.Initializer.Body.vue │ │ │ │ │ │ ├── Sidebar.Particle.Initializer.Velocity.vue │ │ │ │ │ │ └── Sidebar.Particle.Initializer.Zones.vue │ │ │ │ │ ├── renderer/ │ │ │ │ │ │ └── Sidebar.Renderer.CSM.vue │ │ │ │ │ ├── scene/ │ │ │ │ │ │ ├── Sidebar.Scene.ProjectSetting.vue │ │ │ │ │ │ └── Sidebar.Scene.Setting.vue │ │ │ │ │ └── weather/ │ │ │ │ │ ├── Sidebar.Weather.Fog.vue │ │ │ │ │ ├── Sidebar.Weather.Rain.vue │ │ │ │ │ └── Sidebar.Weather.Snow.vue │ │ │ │ └── viewport/ │ │ │ │ ├── BIMProperties.vue │ │ │ │ ├── IFCProperties.vue │ │ │ │ ├── Toolbar.vue │ │ │ │ ├── Viewport.vue │ │ │ │ ├── ViewportCamera.vue │ │ │ │ ├── ViewportInfo.vue │ │ │ │ └── ViewportShading.vue │ │ │ ├── home/ │ │ │ │ ├── assetsCenter/ │ │ │ │ │ ├── AssetsList.vue │ │ │ │ │ ├── UploadAsset.vue │ │ │ │ │ └── components/ │ │ │ │ │ ├── AssetDetail.vue │ │ │ │ │ └── CardAction.vue │ │ │ │ ├── components/ │ │ │ │ │ ├── HeaderCarousel.vue │ │ │ │ │ ├── SidebarBottomInfo.vue │ │ │ │ │ └── SidebarTopInfo.vue │ │ │ │ ├── container/ │ │ │ │ │ ├── AssetsCenter.vue │ │ │ │ │ ├── DataCenter.vue │ │ │ │ │ ├── Project.vue │ │ │ │ │ └── SettingCenter.vue │ │ │ │ ├── index.vue │ │ │ │ └── project/ │ │ │ │ ├── MyProject.vue │ │ │ │ ├── SharedProject.vue │ │ │ │ └── components/ │ │ │ │ ├── CardAction.vue │ │ │ │ ├── CreateProject.vue │ │ │ │ └── ProjectDetail.vue │ │ │ ├── index.vue │ │ │ └── preview/ │ │ │ ├── components/ │ │ │ │ ├── OperationItem.vue │ │ │ │ ├── Operations.vue │ │ │ │ ├── PreviewSceneTree.vue │ │ │ │ └── operationConfigModal/ │ │ │ │ ├── AutoRotate.vue │ │ │ │ ├── ModelExplode.vue │ │ │ │ └── index.vue │ │ │ └── index.vue │ │ ├── tsconfig.json │ │ ├── types/ │ │ │ ├── assets.d.ts │ │ │ ├── billboard.d.ts │ │ │ ├── bim.d.ts │ │ │ ├── config.d.ts │ │ │ ├── data-source.d.ts │ │ │ ├── drawing.d.ts │ │ │ ├── env.d.ts │ │ │ ├── ignore.d.ts │ │ │ ├── naive-ui.d.ts │ │ │ ├── network.d.ts │ │ │ ├── particle.d.ts │ │ │ ├── plugin.d.ts │ │ │ ├── scene.d.ts │ │ │ ├── script.d.ts │ │ │ ├── three.d.ts │ │ │ └── window.d.ts │ │ ├── uno.config.ts │ │ └── vite.config.ts │ └── sdk/ │ ├── .gitignore │ ├── index.html │ ├── lib/ │ │ ├── constant/ │ │ │ ├── enum.ts │ │ │ ├── index.ts │ │ │ └── type.ts │ │ ├── core/ │ │ │ ├── animation/ │ │ │ │ ├── AnimationManager.ts │ │ │ │ └── TimelineTrack.ts │ │ │ ├── app/ │ │ │ │ ├── App.ts │ │ │ │ └── modules/ │ │ │ │ ├── CSM.ts │ │ │ │ ├── Config.ts │ │ │ │ ├── History.ts │ │ │ │ ├── Project.ts │ │ │ │ ├── Resource.ts │ │ │ │ ├── Selector.ts │ │ │ │ ├── Storage.ts │ │ │ │ └── index.ts │ │ │ ├── built-in/ │ │ │ │ └── assets/ │ │ │ │ ├── BasicObject3D.ts │ │ │ │ └── Particles.ts │ │ │ ├── commands/ │ │ │ │ ├── AddObjectCommand.ts │ │ │ │ ├── AddScriptCommand.ts │ │ │ │ ├── Command.ts │ │ │ │ ├── Commands.ts │ │ │ │ ├── MoveObjectCommand.ts │ │ │ │ ├── RemoveObjectCommand.ts │ │ │ │ ├── RemoveScriptCommand.ts │ │ │ │ ├── SetColorCommand.ts │ │ │ │ ├── SetGeometryCommand.ts │ │ │ │ ├── SetGeometryValueCommand.ts │ │ │ │ ├── SetMaterialColorCommand.ts │ │ │ │ ├── SetMaterialCommand.ts │ │ │ │ ├── SetMaterialMapCommand.ts │ │ │ │ ├── SetMaterialRangeCommand.ts │ │ │ │ ├── SetMaterialValueCommand.ts │ │ │ │ ├── SetMaterialVectorCommand.ts │ │ │ │ ├── SetPositionCommand.ts │ │ │ │ ├── SetRotationCommand.ts │ │ │ │ ├── SetScaleCommand.ts │ │ │ │ ├── SetSceneCommand.ts │ │ │ │ ├── SetScriptValueCommand.ts │ │ │ │ ├── SetUuidCommand.ts │ │ │ │ └── SetValueCommand.ts │ │ │ ├── controls/ │ │ │ │ └── DragControls.js │ │ │ ├── expansion/ │ │ │ │ ├── Material.ts │ │ │ │ ├── Object3D.ts │ │ │ │ └── index.ts │ │ │ ├── geometries/ │ │ │ │ ├── TeapotGeometry.ts │ │ │ │ └── index.ts │ │ │ ├── libs/ │ │ │ │ ├── astral-timeline/ │ │ │ │ │ ├── animation-timeline.ts │ │ │ │ │ ├── enums/ │ │ │ │ │ │ ├── timelineCapShape.ts │ │ │ │ │ │ ├── timelineCursorType.ts │ │ │ │ │ │ ├── timelineElementType.ts │ │ │ │ │ │ ├── timelineEventSource.ts │ │ │ │ │ │ ├── timelineEvents.ts │ │ │ │ │ │ ├── timelineInteractionMode.ts │ │ │ │ │ │ ├── timelineKeyframeShape.ts │ │ │ │ │ │ ├── timelineScrollSource.ts │ │ │ │ │ │ ├── timelineSelectionEventSource.ts │ │ │ │ │ │ └── timelineSelectionMode.ts │ │ │ │ │ ├── models/ │ │ │ │ │ │ ├── timelineGroup.ts │ │ │ │ │ │ ├── timelineKeyframe.ts │ │ │ │ │ │ ├── timelineModel.ts │ │ │ │ │ │ ├── timelineRanged.ts │ │ │ │ │ │ └── timelineRow.ts │ │ │ │ │ ├── settings/ │ │ │ │ │ │ ├── defaults/ │ │ │ │ │ │ │ ├── defaultGroupStyle.ts │ │ │ │ │ │ │ ├── defaultTimelineConsts.ts │ │ │ │ │ │ │ ├── defaultTimelineKeyframeStyle.ts │ │ │ │ │ │ │ ├── defaultTimelineOptions.ts │ │ │ │ │ │ │ ├── defaultTimelineRowStyle.ts │ │ │ │ │ │ │ └── defaultTimelineStyle.ts │ │ │ │ │ │ ├── styles/ │ │ │ │ │ │ │ ├── timelineCapStyle.ts │ │ │ │ │ │ │ ├── timelineGroupStyle.ts │ │ │ │ │ │ │ ├── timelineKeyframeStyle.ts │ │ │ │ │ │ │ ├── timelineRowStyle.ts │ │ │ │ │ │ │ └── timelineStyle.ts │ │ │ │ │ │ ├── timelineConsts.ts │ │ │ │ │ │ └── timelineOptions.ts │ │ │ │ │ ├── timeline.ts │ │ │ │ │ ├── timelineEventsEmitter.ts │ │ │ │ │ ├── utils/ │ │ │ │ │ │ ├── events/ │ │ │ │ │ │ │ ├── timelineBaseEvent.ts │ │ │ │ │ │ │ ├── timelineClickEvent.ts │ │ │ │ │ │ │ ├── timelineDragEvent.ts │ │ │ │ │ │ │ ├── timelineKeyframeChangedEvent.ts │ │ │ │ │ │ │ ├── timelineScrollEvent.ts │ │ │ │ │ │ │ ├── timelineSelectedEvent.ts │ │ │ │ │ │ │ └── timelineTimeChangedEvent.ts │ │ │ │ │ │ ├── timelineCutBoundsRectResults.ts │ │ │ │ │ │ ├── timelineDraggableData.ts │ │ │ │ │ │ ├── timelineElement.ts │ │ │ │ │ │ ├── timelineElementDragState.ts │ │ │ │ │ │ ├── timelineMouseData.ts │ │ │ │ │ │ ├── timelinePoint.ts │ │ │ │ │ │ ├── timelineSelectable.ts │ │ │ │ │ │ ├── timelineSelectionResults.ts │ │ │ │ │ │ ├── timelineStyleUtils.ts │ │ │ │ │ │ └── timelineUtils.ts │ │ │ │ │ └── viewModels/ │ │ │ │ │ ├── timelineGroupViewModel.ts │ │ │ │ │ ├── timelineKeyframeViewModel.ts │ │ │ │ │ ├── timelineRowViewModel.ts │ │ │ │ │ └── timelineViewModel.ts │ │ │ │ └── three-nebula/ │ │ │ │ ├── behaviour/ │ │ │ │ │ ├── Alpha.js │ │ │ │ │ ├── Attraction.js │ │ │ │ │ ├── Behaviour.js │ │ │ │ │ ├── Collision.js │ │ │ │ │ ├── Color.js │ │ │ │ │ ├── CrossZone.js │ │ │ │ │ ├── Force.js │ │ │ │ │ ├── Gravity.js │ │ │ │ │ ├── RandomDrift.js │ │ │ │ │ ├── Repulsion.js │ │ │ │ │ ├── Rotate.js │ │ │ │ │ ├── Scale.js │ │ │ │ │ ├── Spring.js │ │ │ │ │ ├── constants.js │ │ │ │ │ ├── index.js │ │ │ │ │ └── types.js │ │ │ │ ├── constants/ │ │ │ │ │ └── index.js │ │ │ │ ├── core/ │ │ │ │ │ ├── Particle.js │ │ │ │ │ ├── Pool.js │ │ │ │ │ ├── System.js │ │ │ │ │ ├── constants.js │ │ │ │ │ ├── fromJSON.js │ │ │ │ │ ├── fromJSONAsync.js │ │ │ │ │ ├── index.js │ │ │ │ │ ├── three/ │ │ │ │ │ │ ├── Euler.js │ │ │ │ │ │ ├── Math.js │ │ │ │ │ │ ├── Matrix4.js │ │ │ │ │ │ ├── Quaternion.js │ │ │ │ │ │ ├── Vector3.js │ │ │ │ │ │ ├── constants.js │ │ │ │ │ │ └── index.js │ │ │ │ │ └── types.js │ │ │ │ ├── debug/ │ │ │ │ │ ├── Debug.js │ │ │ │ │ ├── constants.js │ │ │ │ │ ├── index.js │ │ │ │ │ └── log.js │ │ │ │ ├── ease/ │ │ │ │ │ └── index.js │ │ │ │ ├── emitter/ │ │ │ │ │ ├── Emitter.js │ │ │ │ │ ├── FollowEmitter.js │ │ │ │ │ ├── constants.js │ │ │ │ │ ├── index.js │ │ │ │ │ └── types.js │ │ │ │ ├── events/ │ │ │ │ │ ├── EventDispatcher.js │ │ │ │ │ ├── constants.js │ │ │ │ │ └── index.js │ │ │ │ ├── index.js │ │ │ │ ├── initializer/ │ │ │ │ │ ├── Body.js │ │ │ │ │ ├── BodySprite.js │ │ │ │ │ ├── Initializer.js │ │ │ │ │ ├── InitializerUtil.js │ │ │ │ │ ├── Life.js │ │ │ │ │ ├── Mass.js │ │ │ │ │ ├── Position.js │ │ │ │ │ ├── Radius.js │ │ │ │ │ ├── Rate.js │ │ │ │ │ ├── Rotation.js │ │ │ │ │ ├── Texture.js │ │ │ │ │ ├── Velocity/ │ │ │ │ │ │ ├── PolarVelocity.js │ │ │ │ │ │ ├── RadialVelocity.js │ │ │ │ │ │ ├── VectorVelocity.js │ │ │ │ │ │ ├── Velocity.js │ │ │ │ │ │ └── index.js │ │ │ │ │ ├── constants.js │ │ │ │ │ ├── index.js │ │ │ │ │ └── types.js │ │ │ │ ├── math/ │ │ │ │ │ ├── ArraySpan.js │ │ │ │ │ ├── Box.js │ │ │ │ │ ├── ColorSpan.js │ │ │ │ │ ├── MathUtils.js │ │ │ │ │ ├── Polar3D.js │ │ │ │ │ ├── Span.js │ │ │ │ │ ├── Vector3D.js │ │ │ │ │ ├── constants.js │ │ │ │ │ ├── index.js │ │ │ │ │ ├── integration.js │ │ │ │ │ └── types.js │ │ │ │ ├── renderer/ │ │ │ │ │ ├── BaseRenderer.js │ │ │ │ │ ├── CustomRenderer.js │ │ │ │ │ ├── GPURenderer/ │ │ │ │ │ │ ├── Desktop/ │ │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ │ └── shaders/ │ │ │ │ │ │ │ ├── fragmentShader.js │ │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ │ └── vertexShader.js │ │ │ │ │ │ ├── Mobile/ │ │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ │ └── shaders/ │ │ │ │ │ │ │ ├── fragmentShader.js │ │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ │ └── vertexShader.js │ │ │ │ │ │ ├── common/ │ │ │ │ │ │ │ ├── ParticleBuffer/ │ │ │ │ │ │ │ │ ├── constants.js │ │ │ │ │ │ │ │ └── index.js │ │ │ │ │ │ │ ├── TextureAtlas/ │ │ │ │ │ │ │ │ ├── constants.js │ │ │ │ │ │ │ │ └── index.js │ │ │ │ │ │ │ ├── constants.js │ │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ │ ├── shaders/ │ │ │ │ │ │ │ │ └── constants.js │ │ │ │ │ │ │ └── stores/ │ │ │ │ │ │ │ ├── Target.js │ │ │ │ │ │ │ ├── UniqueList.js │ │ │ │ │ │ │ └── index.js │ │ │ │ │ │ └── index.js │ │ │ │ │ ├── MeshRenderer.js │ │ │ │ │ ├── SpriteRenderer.js │ │ │ │ │ ├── index.js │ │ │ │ │ └── types.js │ │ │ │ ├── utils/ │ │ │ │ │ ├── ColorUtil.js │ │ │ │ │ ├── PUID.js │ │ │ │ │ ├── THREEUtil.js │ │ │ │ │ ├── Util.js │ │ │ │ │ ├── index.js │ │ │ │ │ ├── isNumber.js │ │ │ │ │ ├── potpack.js │ │ │ │ │ ├── sample.js │ │ │ │ │ └── uid.js │ │ │ │ └── zone/ │ │ │ │ ├── BoxZone.js │ │ │ │ ├── LineZone.js │ │ │ │ ├── MeshZone.js │ │ │ │ ├── PointZone.js │ │ │ │ ├── ScreenZone.js │ │ │ │ ├── SphereZone.js │ │ │ │ ├── Zone.js │ │ │ │ ├── index.js │ │ │ │ └── types.js │ │ │ ├── loader/ │ │ │ │ ├── Loader.ts │ │ │ │ ├── ObjectLoader.js │ │ │ │ ├── Package.Skeleton.ts │ │ │ │ └── Package.ts │ │ │ ├── objects/ │ │ │ │ ├── Billboard.ts │ │ │ │ ├── HtmlPanel.ts │ │ │ │ ├── LineMesh.ts │ │ │ │ ├── ParticleEmitter.ts │ │ │ │ ├── index.ts │ │ │ │ ├── texture/ │ │ │ │ │ └── BillboardTexture.ts │ │ │ │ └── weather/ │ │ │ │ ├── Rain.ts │ │ │ │ └── Snow.ts │ │ │ ├── plugin/ │ │ │ │ ├── builtin/ │ │ │ │ │ └── builtin.ts │ │ │ │ ├── plugin.ts │ │ │ │ └── pluginLoader.ts │ │ │ ├── points/ │ │ │ │ ├── PointCloudReconstructor.ts │ │ │ │ └── index.ts │ │ │ ├── preview/ │ │ │ │ ├── Preview.ts │ │ │ │ └── PreviewOptions.ts │ │ │ ├── script/ │ │ │ │ ├── Animation.ts │ │ │ │ ├── Helper.ts │ │ │ │ ├── Source.ts │ │ │ │ └── index.ts │ │ │ ├── shaderMaterial/ │ │ │ │ ├── ShaderMaterialManager.ts │ │ │ │ └── modules/ │ │ │ │ ├── CircleGridShaderMaterial.ts │ │ │ │ ├── DynamicCheckerboardShaderMaterial.ts │ │ │ │ ├── FlickerShaderMaterial.ts │ │ │ │ ├── SlowSmokeShaderMaterial.ts │ │ │ │ ├── SnowingShaderMaterial.ts │ │ │ │ ├── StreamerWallShaderMaterial.ts │ │ │ │ └── index.ts │ │ │ ├── tools/ │ │ │ │ ├── ClippedEdgesBox.ts │ │ │ │ ├── Export.ts │ │ │ │ ├── Measure.ts │ │ │ │ ├── MiniMap-20240823.ts │ │ │ │ ├── MiniMap.ts │ │ │ │ ├── ModelExplode.ts │ │ │ │ ├── Roaming.ts │ │ │ │ ├── RoamingStatus.ts │ │ │ │ └── index.ts │ │ │ └── viewer/ │ │ │ ├── Viewer.ts │ │ │ ├── ViewerOptions.ts │ │ │ ├── ViewerPathTracer.ts │ │ │ └── modules/ │ │ │ ├── CameraManage.ts │ │ │ ├── Drag.ts │ │ │ ├── Effect.ts │ │ │ ├── Helper.ts │ │ │ ├── ParticleSystem.ts │ │ │ ├── Signals.ts │ │ │ ├── Weather.ts │ │ │ └── index.ts │ │ ├── dxf/ │ │ │ ├── DragControls.js │ │ │ ├── bspline.ts │ │ │ ├── drawRect.ts │ │ │ ├── drawShare.ts │ │ │ ├── drawUtils.ts │ │ │ ├── index.ts │ │ │ ├── offScreenCanvas.worker.ts │ │ │ ├── parser/ │ │ │ │ ├── AutoCadColorIndex.ts │ │ │ │ ├── DimStyleCodes.ts │ │ │ │ ├── DxfArrayScanner.ts │ │ │ │ ├── DxfParser.ts │ │ │ │ ├── ExtendedDataParser.ts │ │ │ │ ├── ParseHelpers.ts │ │ │ │ ├── entities/ │ │ │ │ │ ├── 3dface.ts │ │ │ │ │ ├── arc.ts │ │ │ │ │ ├── attdef.ts │ │ │ │ │ ├── attribute.ts │ │ │ │ │ ├── circle.ts │ │ │ │ │ ├── dimension.ts │ │ │ │ │ ├── ellipse.ts │ │ │ │ │ ├── geomtry.ts │ │ │ │ │ ├── hatch.ts │ │ │ │ │ ├── insert.ts │ │ │ │ │ ├── line.ts │ │ │ │ │ ├── lwpolyline.ts │ │ │ │ │ ├── mtext.ts │ │ │ │ │ ├── point.ts │ │ │ │ │ ├── polyline.ts │ │ │ │ │ ├── solid.ts │ │ │ │ │ ├── spline.ts │ │ │ │ │ ├── text.ts │ │ │ │ │ └── vertex.ts │ │ │ │ └── index.ts │ │ │ ├── pickHelper.ts │ │ │ ├── round10.ts │ │ │ ├── troika-three-text.esm.js │ │ │ ├── troika-three-utils.esm.js │ │ │ └── troika-worker-utils.esm.js │ │ ├── hooks/ │ │ │ ├── index.ts │ │ │ └── useSignal.ts │ │ ├── index.ts │ │ ├── utils/ │ │ │ ├── common/ │ │ │ │ ├── dom.ts │ │ │ │ ├── download.ts │ │ │ │ ├── helper.ts │ │ │ │ ├── index.ts │ │ │ │ ├── object.ts │ │ │ │ ├── performance.ts │ │ │ │ └── verify.ts │ │ │ ├── index.ts │ │ │ ├── log/ │ │ │ │ └── Logger.ts │ │ │ ├── request/ │ │ │ │ ├── fetchController.ts │ │ │ │ └── index.ts │ │ │ ├── scene/ │ │ │ │ ├── Stats.ts │ │ │ │ ├── controls.ts │ │ │ │ ├── index.ts │ │ │ │ └── material.ts │ │ │ ├── signals/ │ │ │ │ └── signalRegister.ts │ │ │ └── wasm/ │ │ │ ├── index.ts │ │ │ ├── inject.ts │ │ │ ├── wasm_exec.js │ │ │ └── zip.ts │ │ └── workers/ │ │ ├── bvh/ │ │ │ ├── GenerateColliderEnvironmentWorker.js │ │ │ ├── GenerateMeshBVHWorker.js │ │ │ ├── generateAsync.worker.js │ │ │ └── generateColliderEnvironment.worker.js │ │ └── mergeGeometries.worker.ts │ ├── package.json │ ├── public/ │ │ ├── libs/ │ │ │ ├── basis/ │ │ │ │ ├── README.md │ │ │ │ ├── basis_transcoder.js │ │ │ │ └── basis_transcoder.wasm │ │ │ ├── draco/ │ │ │ │ ├── draco_decoder.js │ │ │ │ ├── draco_decoder.wasm │ │ │ │ ├── draco_decoder_gltf.js │ │ │ │ ├── draco_decoder_gltf.wasm │ │ │ │ ├── draco_encoder.js │ │ │ │ ├── draco_encoder.wasm │ │ │ │ ├── draco_encoder_wrapper.js │ │ │ │ ├── draco_wasm_wrapper.js │ │ │ │ ├── draco_wasm_wrapper_gltf.js │ │ │ │ └── gltf/ │ │ │ │ ├── draco_decoder.js │ │ │ │ ├── draco_decoder.wasm │ │ │ │ ├── draco_encoder.js │ │ │ │ └── draco_wasm_wrapper.js │ │ │ └── web-ifc/ │ │ │ ├── IFCWorker.js │ │ │ ├── web-ifc-mt.wasm │ │ │ └── web-ifc.wasm │ │ ├── resource/ │ │ │ ├── luts/ │ │ │ │ ├── Bourbon 64.CUBE │ │ │ │ ├── Chemical 168.CUBE │ │ │ │ ├── Clayton 33.CUBE │ │ │ │ ├── Cubicle 99.CUBE │ │ │ │ ├── Presetpro-Cinematic.3dl │ │ │ │ └── Remy 24.CUBE │ │ │ └── model/ │ │ │ ├── Jackie.glb │ │ │ ├── Workman.glb │ │ │ ├── X_Bot.glb │ │ │ └── Y_Bot.glb │ │ └── static/ │ │ └── wasm/ │ │ └── Astral3DEngine.wasm │ ├── tsconfig.json │ ├── types/ │ │ ├── Scene.d.ts │ │ ├── Script.d.ts │ │ ├── Three.d.ts │ │ ├── app/ │ │ │ ├── Config.d.ts │ │ │ └── Project.d.ts │ │ ├── astral-zip.d.ts │ │ ├── core/ │ │ │ ├── Cad.d.ts │ │ │ └── Plugin.d.ts │ │ ├── global.d.ts │ │ ├── objects/ │ │ │ ├── Billboard.d.ts │ │ │ └── Particle.d.ts │ │ ├── setting/ │ │ │ ├── PreviewSetting.d.ts │ │ │ └── ViewerSetting.d.ts │ │ └── vite-env.d.ts │ └── vite.config.ts └── pnpm-workspace.yaml ================================================ FILE CONTENTS ================================================ ================================================ FILE: .gitignore ================================================ # Logs logs *.log npm-debug.log* yarn-debug.log* yarn-error.log* pnpm-debug.log* lerna-debug.log* node_modules dist dist-ssr *.local # Editor directories and files .vscode/* !.vscode/extensions.json .idea .DS_Store *.suo *.ntvs* *.njsproj *.sln *.sw? packages/examples ================================================ FILE: .npmrc ================================================ # 解决pnpm add时优先在本地查找依赖 link-workspace-packages=true ================================================ FILE: .prettierrc.js ================================================ /** @type {import("prettier").Config} */ module.exports = { // 一行最多160字符 printWidth: 160, // 指定一个制表符等于的空格数 tabWidth: 4, // 使用制表符,而不使用空格 useTabs: true, // 行尾需要有分号 semi: true, // 使用单引号代替双引号 singleQuote: false, // 默认值。因为使用了一些折行敏感型的渲染器(如GitHub comment)而按照markdown文本样式进行折行 proseWrap: "preserve", // 对象的key仅在必要时用引号括起来 quoteProps: "as-needed", // 尾逗号根据ES5规则使用 trailingComma: "es5", // 在对象,数组括号与文字之间加空格 "{ foo: bar }" bracketSpacing: true, // (x) => {} 箭头函数参数只有一个时是否要有小括号。avoid:省略括号 arrowParens: "avoid", // 指定 HTML 文件的空白字符敏感度 htmlWhitespaceSensitivity: "ignore", // 缩进 Vue SFC 文件中的 ================================================ FILE: packages/docs/src/.vuepress/theme/shim.d.ts ================================================ declare module '*.vue' { import type { ComponentOptions } from 'vue' const comp: ComponentOptions export default comp } ================================================ FILE: packages/docs/src/.vuepress/theme/styles/custom.css ================================================ :root { /** 主题颜色 */ /* --vp-c-brand-1: #5086a1; --vp-c-brand-2: #6aa1b7; --vp-c-brand-3: #8cccd5; --vp-c-brand-soft: rgba(131, 208, 218, 0.314); */ /** 背景颜色 */ /* --vp-c-bg: #fff; --vp-c-bg-alt: #f6f6f7; --vp-c-bg-elv: #fff; --vp-c-bg-soft: #f6f6f7; */ /** 文本颜色 */ /* --vp-c-text-1: rgba(60, 60, 67); --vp-c-text-2: rgba(60, 60, 67, 0.78); --vp-c-text-3: rgba(60, 60, 67, 0.56); */ } /** 深色模式 */ [data-theme="dark"] { /* --vp-c-brand-1: #8cccd5; --vp-c-brand-2: #6aa1b7; --vp-c-brand-3: #5086a1; --vp-c-brand-soft: rgba(131, 208, 218, 0.314); */ /* --vp-c-bg: #1b1b1f; --vp-c-bg-alt: #161618; --vp-c-bg-elv: #202127; --vp-c-bg-soft: #202127; */ /* --vp-c-text-1: rgba(255, 255, 245, 0.86); --vp-c-text-2: rgba(235, 235, 245, 0.6); --vp-c-text-3: rgba(235, 235, 245, 0.38); */ } ================================================ FILE: packages/docs/src/README.md ================================================ --- pageLayout: home externalLinkIcon: false config: - type: hero full: true background: tint-plate hero: name: Astral 3D Engine tagline: Astral 3D Editor text: 工业孪生3D引擎 actions: - theme: brand text: 快速入门 --> link: /guide/6xkx4dnv/ - theme: alt text: Demo link: https://editor.astraljs.com/#/ - theme: alt text: Github link: https://github.com/mlt131220/Astral3D - type: features features: - title: 最新技术栈 icon: 🍡 details: 基于Vue3、Vite、TypeScript、Naive UI等最新技术栈开发 - title: 基于ThreeJS icon: 🌷 details: Three.js 是基于webGL的封装的一个易于使用且轻量级的3D库,是前端开发者研发3D绘图的主要工具 - title: 简洁易用 icon: 🔅 details: 高效进行场景处理,并且提供网络压缩存储功能,在项目中快速读取加载 - title: CAD 在线解析 icon: 🌈 details: 支持CAD图纸在线解析预览 - title: 插件系统 icon: 🏝️ details: 编辑器提供了开放的插件系统,内置丰富的插件库,如:glTF处理器、地形生成器、模型转换器等等。 - title: 粒子系统 icon: 💊 details: 内置多种粒子效果,如:烟花、火焰、烟雾、萤火虫等,丰富的配置项可以满足用户各种需求。 - title: 动画系统 icon: 🎡 details: 支持在线编辑动画关键帧,完善的动画编辑器将支撑你的创作。 - title: 天气系统 icon: 🌤️ details: 支持多种天气效果,如:晴天、雾天、雨天、雪天等。 - title: 资源中心 icon: 🎁 details: 模型、材质、粒子、广告牌(Billboard)、HtmlPanel.... - title: WebGPU (开发阶段) icon: 🚩 details: 更快的计算... - type: image-text title: 工业范 description: CAD? BIM? 亦或更多? image: /images/home/industryDark.png width: 600 list: - title: CAD description: 支持 .dwg,.dxf 图纸解析预览 - title: Future description: PDMS、VTU - type: custom --- ### :zap: 快速开始 :::code-tabs @tab bash ```bash git clone https://github.com/mlt131220/Astral3D.git cd Astral3D pnpm install pnpm run sdk:build pnpm run editor:dev ``` ::: ================================================ FILE: packages/docs/src/notes/cooperation/README.md ================================================ --- title: 商务合作 createTime: 2025/10/06 21:04:41 permalink: /astral/nf8y5syx/ --- # 寻求合作,共创价值 > 您好!我们是 ==Astral 3D== 开源项目的核心开发团队。 > ==Astral 3D Editor== 是一个功能强大的、完全开源的 Web3D 编辑器,致力于为开发者和设计师提供高效、便捷的 3D 场景创作工具。 > 我们拥有深厚的 `WebGL、WebGPU、Three.js、Babylon.js、Vue/React` 等全栈开发经验,除了维护核心的开源项目外,我们也承接相关的商业项目,旨在将专业的技术实力转化为您的商业价值。 ## 我们的合作模式 我们专注于提供高质量的 ==Web 前后端== 技术开发服务,主要合作模式包括: * **Web3D 项目外包:** * **产品3D展示:** 将您的产品以交互式3D模型的形式呈现在网页上。 * **数据可视化:** 构建复杂的 3D 数据可视化大屏,让数据生动直观。 * **虚拟展厅/数字孪生:** 为您的业务打造沉浸式的在线虚拟空间。 * **3D场景与游戏开发:** 基于 Web 技术开发轻量级的 3D 互动场景或小游戏。 * **Web 开发外包:** * **复杂前端页面开发:** 擅长使用 `Vue/React` 等现代框架构建高性能、高交互性的 Web 应用。 * **全栈项目开发:** 提供从前端到后端的整套解决方案。 * **定制化开发与技术咨询:** * 基于我们的开源编辑器进行二次开发,为您量身定制专属功能。 * 提供 `Web3D` 相关的技术咨询、方案设计和性能优化服务。 * **更多的合作可能性?** * 专业团队,为您提供所需。 ## 为什么选择我们? * **核心团队,技术保障:** 您将直接与开源项目的核心开发者沟通,我们对 ==Web3D 技术/ Web前后端== 有深入的理解和丰富的实战经验。 * **开源基础,降本增效:** 基于我们成熟的开源编辑器/其他产品,可以为您快速搭建项目原型,显著缩短开发周期,降低开发成本。 * **代码质量,值得信赖:** 开源意味着我们的代码经过了社区的广泛检验,我们始终坚持高标准的编码规范和交付质量。 * **专注高效,沟通直接:** 我们是纯粹的技术团队,沟通直接高效,致力于用最合适的技术方案解决您的实际问题。 ## 联系方式 如果您有项目需求或合作意向,欢迎添加我的微信进行深入沟通。请在好友申请中备注“**商务合作**”或“**您的公司/项目名**”,以便我能快速通过并了解您的需求。
| 商务微信 | |:--------------------------------------------------------------:| | ![WeChat](/images/wechat-qrcode.jpg){width="300" height="300"} | 微信号:**mahaibing130802**
我们期待通过精湛的技术,助力您的业务在==数字化浪潮==中脱颖而出。 ================================================ FILE: packages/docs/src/notes/guide/manual/editor/extras/动画编辑器.md ================================================ --- title: 动画编辑器 createTime: 2025/03/31 19:50:56 permalink: /guide/5s7acuj0/ --- ================================================ FILE: packages/docs/src/notes/guide/manual/editor/extras/日志.md ================================================ --- title: 日志 createTime: 2025/03/31 20:03:00 permalink: /guide/0q1bxrub/ --- ================================================ FILE: packages/docs/src/notes/guide/manual/editor/extras/资源中心.md ================================================ --- title: 资源中心 createTime: 2025/03/31 19:51:33 permalink: /guide/dju4ekca/ --- ::: demo-wrapper img no-padding ::: ## 简要说明 在扩展栏左上角下拉菜单中可将扩展面板切换到资源中心模块。
资源共分为==模型、材质、粒子、广告牌、Html面板、灯光、相机==。
编辑器已内置大多通用资源,也可在扩展栏右上角切换资源来源:==内置资源/公共资源==。 **主要亮点:** - **资源分类清晰**:支持多种资源类型,方便用户快速查找和使用。 - **资源来源灵活**:可切换内置资源和公共资源,满足不同场景需求。 - **高效管理**:支持资源的快速预览、搜索和分类管理。 - **扩展性强**:用户可自定义资源并上传到公共资源库。 ## 功能说明 - **资源搜索**:按名称模糊搜索已选择分类下的资源。 - **模型**:内置多种类型的模型,用户可快速预览模型并拖拽到场景中使用。 - **材质**:提供丰富的材质库,用户可实时预览材质效果并应用至模型。 - **粒子**:内置多种粒子效果模板,支持参数调整和自定义粒子效果创建。 - **广告牌**:支持图片和文字广告牌的快速创建,适用于场景标注和装饰。 - **Html面板**:允许嵌入自定义HTML内容,支持动态交互和样式调整。 - **灯光**:提供多种灯光类型(如点光源、聚光灯等),支持实时调整光照参数。 - **相机**:内置透视相机与正交相机,满足不同场景需求。 ### 资源搜索 搜索框位于扩展栏顶部中间。 输入搜索内容,将根据当前所选取资源类型进行模糊查询。 ### 模型 如本页首图,内置了多种类型的模型,用户可通过==拖拽/双击==方式将模型添加到场景中。 - ==拖拽==:模型将放置在鼠标放开的屏幕位置 - ==双击==:模型将放置在场景中心 ### 材质 内置了多类型的PBR材质、Shader材质,用户可通过==拖拽/双击==方式将材质应用到模型上;
成功应用的材质可在 右侧边栏-[材质](/guide/l1df4723/) 进行参数配置及修改。 - ==右键==:预览材质 - ==拖拽==:材质将应用至鼠标放开位置选取到的模型上 - ==双击==:材质将应用至所选取的模型上 **注意**:材质只能应用至Mesh节点,不能应用于Group、广告牌、粒子、Html面板等节点。即材质只能应用于本身就包含材质属性的模型节点。 ### 粒子 内置火焰、烟雾、萤火虫等常见粒子效果模板,用户可通过==拖拽/双击==方式将粒子添加到场景中;
成功添加的粒子可在 右侧边栏-[粒子](/guide/siz46vj0/) 调整粒子发射器参数及粒子行为。 - ==拖拽==:粒子将放置在鼠标放开的屏幕位置 - ==双击==:粒子将放置在场景中心 ### 广告牌 内置图标、文本广告牌,用户可通过==拖拽/双击==方式将广告牌添加到场景中;
成功添加的广告牌可在 右侧边栏-[广告牌](/guide/18al65zg/) 进行参数配置及修改。 - ==拖拽==:广告牌将放置在鼠标放开的屏幕位置 - ==双击==:广告牌将放置在场景中心 ### Html面板 内置多个Html面板模板,用户可通过==拖拽/双击==方式将Html面板添加到场景中;
该功能允许用户在场景中嵌入HTML内容,如视频播放器、交互式表单、数据图表等,支持动态更新;
成功添加的Html面板可在 右侧边栏-[Html面板](/guide/kk5cv2ij/) 进行参数配置及内容修改。 - ==拖拽==:Html面板将放置在鼠标放开的屏幕位置 - ==双击==:Html面板将放置在场景中心 ### 灯光 内置==环境光、平行光、半球光、点光源、聚光灯==五种灯光类型,用户可通过==拖拽/双击==方式将灯光添加到场景中;
成功添加的灯光(选中后)可在 右侧边栏-[对象](/guide/2xlh6nrf/) 进行参数配置及修改。 - ==拖拽==:灯光将放置在鼠标放开的屏幕位置 - ==双击==:灯光将放置在场景中心 ### 相机 内置==透视相机、正交相机==,用户可通过==拖拽/双击==方式将相机添加到场景中;
相机添加后可在[3D视口](/guide/jkg3yahd/)左上角进行主相机切换;
成功添加的相机(选中后)可在 右侧边栏-[对象](/guide/2xlh6nrf/) 进行参数配置及修改。 - ==拖拽==:相机将放置在鼠标放开的屏幕位置 - ==双击==:相机将放置在场景中心 ================================================ FILE: packages/docs/src/notes/guide/manual/editor/leftSidebar/BIM轻量化.md ================================================ --- title: BIM轻量化 createTime: 2025/03/31 19:48:15 permalink: /guide/rf1xgf4z/ ---
## 简要说明 通过编辑器的BIM轻量化功能,您可以将复杂的BIM工程文件(如`.rvt`)转换为轻量化的`.glTF`文件。 转换过程中保留了BIM构件的属性信息,同时对模型进行了压缩优化,方便在Web端进行高效解析与展示。 **主要亮点:** - 支持BIM文件的轻量化转换,优化模型大小。 - 保留构件属性,便于后续操作与分析。 - 界面设计与[CAD解析预览](/guide/u1631nwk/)类似,操作直观易用。 ## 功能说明 - **模型列表**:展示用户上传转换的所有BIM模型。 - **上传模型**:点击顶部==历史记录==右侧的==上传按钮==,会打开模型上传界面。 - **历史记录**:点击顶部==历史记录==按钮,会弹出历史上传记录列表。 ### 模型列表 - **功能描述**:展示用户上传并转换成功的所有BIM模型。 - **操作方式**: 如本页面首图,列表以网格形式展示; 从列表中直接==拖动==相应模型到中间的三维视口 或 ==双击==该模型,都可加载并渲染对应模型。 ### 上传模型
- **支持格式**:`.rvt、.rfa` - **转换方式**: - 文件会在上传后通过WebSocket发起轻量化转换请求。 - 转换结果通过WebSocket消息返回,并加载渲染展示。 - **转换配置**: - 极致轻量化:模型会在转换过程中执行==网格优化、材质贴图压缩并转换格式为WebP、网格实例化、网格合并==等模型优化操作,以确保输出的BIM轻量化模型是最小体积及最小渲染损耗的glTF模型。过程中可能执行的具体优化项可参考[glTF处理器](/guide/plugin/builtin/jo87cfk0/)章节; - 导出属性:生成的glTF模型中是否包含构件属性; - 转换视图:一个BIM文件中可能会包含多个3D视图,如果用户有确切的转换视图目标,可选择`按名称`并输入视图名称以转换;否则将自动以`默认3D视图`为目标转换; -视觉样式:此设置影响最终输出的模型材质。`着色`模式基本不包含任何材质贴图,以纯色材质方式输出;`真实`模式会包含用户建模时的材质贴图,输出材质更真实; - 坐标参考:一般情况下,一个BIM工程模型会由多工程师完成,便会存在多个单体BIM文件。此设置会决定最终输出模型与笛卡尔坐标系原点的相对位置信息。关于==原点、项目基点、测量点==的详细说明,可以参考这篇文章:[详解Revit坐标系](https://zhuanlan.zhihu.com/p/220113797) ### 历史记录 ::: demo-wrapper img no-padding ::: - **功能描述**:展示用户之前上传的所有BIM模型记录,方便快速查找和重新加载。 - **操作方式**:点击顶部==历史记录==按钮,弹出历史上传记录列表。 ================================================ FILE: packages/docs/src/notes/guide/manual/editor/leftSidebar/CAD解析预览.md ================================================ --- title: CAD解析预览 createTime: 2025/03/31 19:49:44 permalink: /guide/u1631nwk/ ---
## 简要说明 通过编辑器的CAD解析预览功能,您可以轻松上传并查看多种格式的CAD图纸。
无论是`.dwg`还是`.dxf`,都能快速解析并在三维视口中直观展示。
这一功能不仅提升了图纸管理的效率,还为三维设计和协作提供了极大的便利。
**主要亮点:** - 支持多种图纸格式,满足不同需求。 - 即时解析与预览,操作简单高效。 - 历史记录功能,方便快速查找和重新加载。 让您的设计流程更加流畅,体验前所未有的便捷与高效! ## 功能说明 - **图纸列表**:展示用户上传并解析成功的所有图纸。 - **上传图纸**:点击顶部==历史记录==右侧的==上传按钮==,会打开图纸上传界面。 - **历史记录**:点击顶部==历史记录==按钮,会弹出历史上传记录列表。 ### 图纸列表 - **功能描述**:展示用户上传并解析成功的所有图纸。 - **操作方式**: 如本页面首图,列表以网格形式展示; 从列表中直接==拖动==相应图纸到中间的三维视口 或 ==双击==该图纸,都可加载并渲染对应图纸。 ### 上传图纸 ::: demo-wrapper img no-padding ::: - **支持格式**:`.dwg、.dxf、.png、.jpg(jpeg)` - **解析方式**: - `.dwg`格式图纸由于无法在前端直接解析,会在上传后通过WebSocket发起图纸解析请求。 - 解析结果通过WebSocket消息返回,并加载渲染展示。 - 如果`.dwg`图纸中包含缩略图,会自动解析为封面图,在`图纸列表`中展示。 ### 历史记录 ::: demo-wrapper img no-padding ::: - **功能描述**:展示用户之前上传的所有图纸记录,方便快速查找和重新加载。 - **操作方式**:点击顶部==历史记录==按钮,弹出历史上传记录列表。 ================================================ FILE: packages/docs/src/notes/guide/manual/editor/leftSidebar/场景树.md ================================================ --- title: 场景树 createTime: 2025/03/31 19:58:06 permalink: /guide/rzqb0h0l/ --- ## 简要说明 场景树是 Astral3D 编辑器中用于管理场景中所有对象的工具。它以树状结构展示场景中的层级关系,便于用户快速定位和操作对象。 ## 功能说明 - **节点搜索**:顶部搜索栏用于快速查找节点,模糊查询到的节点父级会自动展开,并在改节点下添加下划线。 - **层级管理**:通过拖拽操作,可以调整对象的父子关系。 - **对象选择**:点击场景树中的对象名称,可以在场景中选中对应的对象(不会自动聚焦)。 - **聚焦对象**:右键菜单中提供聚焦选项,用以在视口中定位模型(更推荐使用快捷键,默认是`F`)。 - **删除对象**:右键菜单中提供删除选项,方便移除不需要的对象(更推荐使用快捷键,默认是`Del`)。 - **拷贝对象**:右键菜单中提供拷贝选项,方便快速复制对象(同[顶栏](/guide/f7smai4w/)基础操作区中的拷贝)。 ================================================ FILE: packages/docs/src/notes/guide/manual/editor/rightSidebar/Html面板.md ================================================ --- title: Html面板 createTime: 2025/04/17 17:03:07 permalink: /guide/kk5cv2ij/ --- ================================================ FILE: packages/docs/src/notes/guide/manual/editor/rightSidebar/几何.md ================================================ --- title: 几何 createTime: 2025/03/31 20:06:40 permalink: /guide/nct00cif/ --- ================================================ FILE: packages/docs/src/notes/guide/manual/editor/rightSidebar/动画.md ================================================ --- title: 动画 createTime: 2025/03/31 20:07:33 permalink: /guide/g3kxptm0/ --- ================================================ FILE: packages/docs/src/notes/guide/manual/editor/rightSidebar/历史记录.md ================================================ --- title: 历史记录 createTime: 2025/03/31 20:05:25 permalink: /guide/ae7ufigr/ --- ================================================ FILE: packages/docs/src/notes/guide/manual/editor/rightSidebar/后期处理.md ================================================ --- title: 后期处理 createTime: 2025/03/31 20:04:44 permalink: /guide/l8hd921o/ --- ================================================ FILE: packages/docs/src/notes/guide/manual/editor/rightSidebar/场景图纸.md ================================================ --- title: 场景图纸 createTime: 2025/03/31 20:05:40 permalink: /guide/ta6draim/ --- ================================================ FILE: packages/docs/src/notes/guide/manual/editor/rightSidebar/场景配置.md ================================================ --- title: 场景配置 createTime: 2025/03/31 20:04:17 permalink: /guide/pnmbue0k/ --- ================================================ FILE: packages/docs/src/notes/guide/manual/editor/rightSidebar/天气.md ================================================ --- title: 天气 createTime: 2025/03/31 20:05:08 permalink: /guide/fn9xwbkf/ --- ================================================ FILE: packages/docs/src/notes/guide/manual/editor/rightSidebar/对象.md ================================================ --- title: 对象 createTime: 2025/03/31 20:06:07 permalink: /guide/2xlh6nrf/ --- ================================================ FILE: packages/docs/src/notes/guide/manual/editor/rightSidebar/广告牌.md ================================================ --- title: 广告牌 createTime: 2025/04/17 17:11:18 permalink: /guide/18al65zg/ --- ================================================ FILE: packages/docs/src/notes/guide/manual/editor/rightSidebar/材质.md ================================================ --- title: 材质 createTime: 2025/03/31 20:07:10 permalink: /guide/l1df4723/ --- ================================================ FILE: packages/docs/src/notes/guide/manual/editor/rightSidebar/渲染器配置.md ================================================ --- title: 渲染器配置 createTime: 2025/03/31 20:04:34 permalink: /guide/crvssx6j/ --- ================================================ FILE: packages/docs/src/notes/guide/manual/editor/rightSidebar/粒子.md ================================================ --- title: 粒子 createTime: 2025/03/31 19:50:23 permalink: /guide/siz46vj0/ --- ================================================ FILE: packages/docs/src/notes/guide/manual/editor/rightSidebar/脚本.md ================================================ --- lang: zh-CN title: 脚本 createTime: 2025/02/20 15:13:36 permalink: /guide/component/h4v1bkyh/ --- > 主要面相于开发人员,主要功能有: > >1. 编写脚本逻辑,并将其挂载于实体模型上; >2. 脚本组件使用`JavaScript`编程语言; >3. 脚本组件由事件驱动,在对应生命周期内执行; >4. 脚本组件可以访问实体模型的属性和方法; >5. 运行时执行脚本逻辑,并获取脚本执行结果; ### 内置变量 在脚本中已经内置了以下变量: | 变量 | 描述 | 类型 | |----------|------------|--------------------------------------------------------------| | this | 当前实体模型的引用 | `THREE.Object3D` | | THREE | THREE对象 | `THREE` | | helper | 辅助类函数集合 | [Helper](#helper) | | renderer | 当前渲染器的引用 | `THREE.WebGLRenderer` | | scene | 当前场景的引用 | `THREE.Scene` | | camera | 当前场景相机的引用 | `THREE.PerspectiveCamera` | | controls | 当前场景控制器的引用 | [CameraControls](https://github.com/yomotsu/camera-controls) | | timer | 场景运行时间跟踪 | `three/addons/misc/Timer.js` | ### 内置方法 在脚本中已经内置了以下方法: | 方法 | 描述 | 传入参数 | |--------|-----------|-------------------| | render | 驱动场景渲染一帧。 | `{delta?:number}` | ### 内置生命周期 支持以下几个基本生命周期: | 生命周期 | 描述 | 参数 | |-----------------|-------------------------------|----------------------------------------------------------------| | loaded | 场景加载完成时执行,仅执行一次 | - | | beforeAnimation | 场景当前动画帧循环开始之前触发,每一帧执行一次 | `{"delta":number}` | | afterAnimation | 场景当前动画帧循环完成之后立即触发,每一帧执行一次 | `{"delta":number,"toBeRender":(_needRender: boolean) => void}` | | beforeRender | 场景当前动画帧循环完成之后渲染之前触发,每一次渲染执行一次 | `{"delta":number}` | | afterRender | 场景当前帧渲染完成之后触发,每一次渲染执行一次 | `{"delta":number}` | | beforeDestroy | 场景销毁前调用,仅执行一次 | - | | afterDestroy | 场景销毁后调用,仅执行一次 | - | > Tips: >> `toBeRender`:由于本系统默认为事件驱动渲染,而非持续渲染,故提供此方法以便在脚本中实现自定义的逻辑。推荐用法: >> ```javascript >> afterAnimation(delta,toBeRender){ >> // 传入true则下一帧一定渲染 >> toBeRender(true); >> } >> ``` ### 内置事件 支持以下几个基本事件: | 事件 | 描述 | 参数 | |---------------|------------|--------------------------------| | onPick | 模型单击事件 | `intersect:THREE.Intersection` | | onDoubleClick | 模型双击事件 | `intersect:THREE.Intersection` | | onKeydown | 键盘按下事件(全局) | `event:KeyboardEvent` | | onKeyup | 键盘抬起事件(全局) | `event:KeyboardEvent` | | onPointerDown | 指针按下事件(全局) | `event:PointerEvent` | | onPointerUp | 指针抬起事件(全局) | `event:PointerEvent` | | onPointerMove | 指针移动事件(全局) | `event:PointerEvent` | | onTouchStart | 触屏按下事件(全局) | `event:TouchEvent` | | onTouchEnd | 触屏释放事件(全局) | `event:TouchEvent` |
*** ### 辅助类(Helper) | 成员 | 描述 | 类型 | |-----------|----------------------|--------------------------------| | scene | 当前场景的引用,内置变量scene的引用 | `THREE.Scene` | | Animation | 未实例化的动画类 | [Animation](#helper-animation) | | 方法 | 描述 | 参数 | 返回值 | |--------------|------------------------|------------------------------------------------------------------|------------------| | objectByUuid | 通过uuid获取场景中的Object3D对象 | `uuid:string` | `THREE.Object3D` | | moveObject | 移动3D对象到指定位置 | `object: Object3D`
`parent: Object3D`
`before: Object3D` | - | | removeObject | 从场景中移除3D对象 | `object: THREE.Object3D` | - | ### 动画类(Animation) #### 基础用法 ```javascript const animation = new helper.Animation(this); ``` #### API ```typescript new helper.Animation(object:THREE.Object3D) ``` | 成员 | 描述 | 类型 | |---------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------| | object | 构造函数形参值,动画绑定的对象。
如果实例化时传入参数this(如上),则指向内置变量this | `THREE.Object3D` | | actions | 动画动作集合 | `THREE.AnimationAction[]` | | actionsMap | 动画动作映射表,key为动作名称,value为THREE.AnimationAction对象 | `Map` | | lastPlayAction | 正在播放的动作名称 | `THREE.AnimationAction \| undefined` | | repetitions | 动画重复次数 | `number` | | ActionLoop (static) | 动画循环模式枚举:
LoopOnce - 只执行一次
LoopRepeat - 重复次数为repetitions的值, 且每次循环结束时候将回到起始动作开始下一次循环。
LoopPingPong - 重复次数为repetitions的值, 且像乒乓球一样在起始点与结束点之间来回循环。 | `Enum` | | 方法 | 描述 | 参数 | 返回值 | |-----------|----------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------|--------------------------------------| | getAction | 获取指定名称的动画动作,用于用户直接调用[THREE.AnimationAction的方法](https://threejs.org/docs/index.html#api/zh/animation/AnimationAction) | `name:string` | `THREE.AnimationAction \| undefined` | | play | 播放指定名称的动画动作,支持链式调用 | `name:string`
`loop:AnimationActionLoopStyles = helper.Animation.ActionLoop.LoopRepeat`
`timeScale:number = 1` | `this(helper.Animation)` | | pause | 暂停动画,支持链式调用 | `name:string \| undefined` | `this(helper.Animation)` | | stop | 停止动画,支持链式调用 | `name:string \| undefined` | `this(helper.Animation)` | ### 基础用法 完整结构: ```javascript /** * 场景加载完成时执行,仅执行一次 */ function loaded() { console.group('loaded'); console.log(this); console.log(renderer); console.log(scene); console.log(camera); console.log(controls); console.log(timer); console.groupEnd() } /** * 场景当前动画帧循环开始之前触发,每一帧执行一次 * @param {number} delta */ function beforeAnimation(delta) {} /** * 场景当前动画帧循环完成之后立即触发,每一帧执行一次 * @param {number} delta * @param {(_needRender: boolean) => void} toBeRender 设置下一帧是否将渲染 */ function afterAnimation(delta,toBeRender) {} /** * 场景当前动画帧循环完成之后渲染之前触发,每一次渲染执行一次 * @param {number} delta */ function beforeRender(delta) {} /** * 场景当前帧渲染完成之后触发,每一次渲染执行一次 * @param {number} delta */ function afterRender(delta) {} /** * 场景销毁前调用,仅执行一次 */ function beforeDestroy() {} /** * 场景销毁后调用,仅执行一次 */ function afterDestroy() {} /** * 模型单击事件 * @param {THREE.Intersection} intersect */ function onPick(intersect) {} /** * 模型双击事件 * @param {THREE.Intersection} intersect */ function onDoubleClick(intersect) {} /** * 键盘按下事件(全局) * @param {KeyboardEvent} event */ function onKeyDown(event) {} /** * 键盘抬起事件(全局) * @param {KeyboardEvent} event */ function onKeyUp(event) {} /** * 指针按下事件(全局) * @param {PointerEvent} event */ function onPointerDown(event) {} /** * 指针抬起事件(全局) * @param {PointerEvent} event */ function onPointerUp(event) {} /** * 指针移动事件(全局) * @param {PointerEvent} event */ function onPointerMove(event) {} /** * 触屏按下事件(全局) * @param {TouchEvent} event */ function onTouchStart(event) {} /** * 触屏释放事件(全局) * @param {TouchEvent} event */ function onTouchEnd(event) {} ``` *** ### 示例代码 #### 1. 动态天空盒/模型动画/键盘事件 ::: tabs#animate @tab Scene#scene ```javascript function afterAnimation(delta,toBeRender){ toBeRender(true) } const DEG2RAD = Math.PI / 180; function beforeRender(delta) { const t = delta * DEG2RAD; scene.backgroundRotation.y = t; } ``` @tab:active Wolf#wolf ```javascript const anime = new helper.Animation(this); function loaded() { anime.play("01_Run_Armature_0"); } function onKeyDown(event) { // 按下1则执行 "01_Run_Armature_0" 动画,按下2则执行 "02_walk_Armature_0" 动画,按下3则执行 ""05_site_Armature_0"" 动画, switch (event.key) { case "1": anime.stop(); anime.play("02_walk_Armature_0"); break; case "2": anime.stop(); anime.play("05_site_Armature_0"); break; case "3": anime.stop(); anime.play("01_Run_Armature_0"); break; } } function beforeDestroy() { anime.stop(); } ``` ::: ================================================ FILE: packages/docs/src/notes/guide/manual/editor/viewport/2D图纸.md ================================================ --- title: 2D图纸 createTime: 2025/03/31 20:00:46 permalink: /guide/7eo51kfy/ --- ::: demo-wrapper img no-padding ::: ## 简要说明 ==拖入(双击)== 添加至场景中的图纸会自动占据中心视口一半的位置,其与3D视图中间的 ==垂直分割线== 可以左右拖动以改变占据视口的大小。
图纸可以与3D视图联动,提供更直观的设计体验。
这一功能不仅提升了图纸的可视化效果,还为设计和协作提供了极大的便利。
**主要亮点:** - 使用OffscreenCanvas技术在Worker线程中对图纸内容进行渲染,不会阻塞主线程3D场景的渲染。 - 图纸与3D视图联动,操作简单高效。 - 灵活调整视口分割线,优化工作空间。 ## 功能说明 - **图纸加载**:支持将图纸拖入或双击添加至场景。 - **视口分割**:通过拖动分割线调整2D图纸与3D视图的占比。 - **图纸复位**:将图纸的显示区域恢复为初始状态。 - **图层显隐**:查看图纸的图层列表,并显示/隐藏任意图层。 - **新增标记**:在3D视图中选中模型后,便可以在图纸中新增对应的标记框。 - **删除标记**:删除当前选中的标记。 ### 图纸加载 - **功能描述**:将图纸拖入或双击添加至场景后,图纸会自动占据中心视口的一半位置。 - **操作方式**: - 在左侧CAD图纸列表中双击目标图纸,快速加载到场景中。 ### 视口分割 - **功能描述**:调整2D图纸与3D视图的占比,优化工作空间。 - **操作方式**: - 拖动2D图纸与3D视图中间的垂直分割线,调整两者的占比。 ### 图纸复位 - **功能描述**:将图纸的显示区域恢复为初始状态。 - **操作方式**: - 点击图纸菜单栏中的复位按钮(第一个)。 ### 图层显隐 ::: demo-wrapper img no-padding ::: - **功能描述**:查看图纸的图层列表,并显示/隐藏任意图层。 - **操作方式**: - 点击图纸菜单栏中的图层按钮(第二个)。 - 弹出的图层列表中,点击任一个图层前面的小眼睛图标即可隐藏对应图层,反正显示对应图层。 - 图层列表顶部的==全部图层==节点可以同时显示/隐藏所有图层。 ### 新增标记 - **功能描述**:在图纸中新增3D场景中所选中模型的对应的标记框。 - **操作方式**: - 在右侧3D场景中选中需要标注的模型。 - 点击图纸菜单栏中的新增标记按钮(第三个)。 - 在图纸需要标记的位置按住鼠标左键拖动,即可绘制出长方形标记框。 - 只会只要在图纸中点击该标记,右侧3D场景便会自动聚焦并选中相应模型。 ### 删除标记 - **功能描述**:删除当前选中的标记。 - **操作方式**: - 在图纸上选中需要删除的标记。 - 点击图纸菜单栏中的删除按钮(第四个)。 - 标记及其与模型的关联关系将被移除。 ================================================ FILE: packages/docs/src/notes/guide/manual/editor/viewport/3D场景.md ================================================ --- title: 3D场景 createTime: 2025/03/31 20:00:56 permalink: /guide/jkg3yahd/ --- ::: demo-wrapper img no-padding ::: ## 简要说明 编辑器的核心视口,展示用户所编辑的场景内容。 **主要亮点:** - 提供六视角切换/主相机切换功能,方便用户观察3D场景。 - 自适应视口。 - 支持多种渲染模式,满足不同场景需求。 - 提供丰富的变换控制工具,便于编辑和调整模型。 ## 功能说明 - **主相机切换**:支持在默认的透视相机和其他添加进场景的相机之间切换,满足不同场景的观察需求。 - **六视图**:快速切换到==前、后、左、右、上、下==六个标准视角,便于精确调整模型。 - **渲染模式**:提供==真实、原色、法线、线框==四种渲染模式,适应不同的设计需求。 - **变换控制**:支持平移、旋转、缩放三种变换操作,用户可以通过鼠标或快捷键快速调整模型。 - **坐标参考**:可以切换==世界坐标、本地坐标==,以查看不同坐标系下的轴情况,帮助用户明确模型的方向和位置。 - **场景统计信息**:实时显示场景中的模型数量、顶点数、三角面数、帧时等信息,便于性能优化。 - **视角辅助**:提供视角导航工具,帮助用户快速调整观察方向。 - **操作快捷键**:内置聚焦、删除等快捷键操作,便于快速设计。 ### 主相机切换/六视图 ::: demo-wrapper img no-padding ::: ### 渲染模式
提供以下渲染模式: - **真实模式**:显示模型的材质效果,并进行实时采样,以产生类似光线追踪的效果。 - **原色模式**:显示模型的材质效果,便于检查纹理和光影。 - **法线模式**: - **线框模式**:仅显示模型的边框线条,便于查看内部结构。 ### 变换控制
支持以下变换操作: - **平移**:拖动模型在平面内移动。 - **旋转**:绕指定轴旋转模型。 - **缩放**:调整模型的大小比例。 ### 坐标参考 变换控制右边的按钮,点击后会在==世界坐标/本地坐标==之间切换。
用于表明场景中显示的坐标轴(X、Y、Z)所使用的参考坐标系。
比如:A模型在世界坐标下Y轴向上,但是本地坐标下却是Z轴向上。确定轴向可以辅助用户快速定位一些矩阵变换错误的原因。
### 场景统计信息 在界面左下角显示场景的实时统计信息,包括: - 模型数量 - 顶点数 - 三角面数 - 帧时(帧率 = 1000/帧时) ### 视角辅助 在界面右下角提供了视角辅助器,方便用户快速切换视角,共支持22个视角。 其颜色会跟随编辑器主题变换(深色/浅色)。 ### 操作快捷键 支持以下快捷键操作: - **W**:切换到平移模式。 - **E**:切换到旋转模式。 - **R**:切换到缩放模式。 - **F**:聚焦选中模型。 - **Del**:删除选中模型。 - **Ctrl + Z**:撤销上一步操作。 - **Ctrl + Shift +Z**:重做被撤销的操作。 如果在设置中修改了对应快捷键,则请使用对应快捷键操作。 ================================================ FILE: packages/docs/src/notes/guide/manual/editor/界面.md ================================================ --- title: 界面 createTime: 2025/03/31 19:45:41 permalink: /guide/swepocsg/ --- ::: demo-wrapper img no-padding ::: ::: tip 说明 整个编辑界面分为 `顶栏`,`左侧边栏`,`场景视口`,`扩展栏`,`右侧边栏` 五个区域 ::: ================================================ FILE: packages/docs/src/notes/guide/manual/editor/顶栏.md ================================================ --- title: 顶栏 createTime: 2025/03/31 20:09:24 permalink: /guide/f7smai4w/ --- ::: demo-wrapper img no-padding ![顶栏](/images/manual/editor/header.png) ::: ::: tip 说明 `顶栏`部分为左中右布局,左侧为`基础操作区`,中间仅展示`场景名称`,右侧为`多功能区域` ::: ## 基础操作区 > 图标/按钮 从左到右依次是 ==Logo、撤回、重做、删除、清空、拷贝、全屏、导出、导入== ::: tabs @tab Logo 方寸藏寰宇,虚实映乾坤 @tab 撤回 撤销上一步操作。 @tab 重做 恢复被撤销的操作。 @tab 删除 删除当前选中的对象。 @tab 清空 清空场景中的所有内容并重置所有模块。 @tab 拷贝 复制当前选中的对象。 @tab 全屏 切换编辑器的全屏模式,全屏后会变为退出全屏图标,点击可退出全屏。 @tab 导出 导出功能分为两类,一是导出选中的物体,二是导出整个场景。
两者所支持的导出格式一致,分别是==JSON、GLB、GLTF、OBJ、PLY、PLY(二进制)、STL、STL(二进制)、USDZ== @tab 导入 从文件系统导入模型/场景文件,允许多选,支持在此处导入的文件格式如下: - [x] glb - [x] gltf - [x] fbx - [x] json (Three JSON / Astral3D JSON) - [x] zip [+zip] - [x] obj - [x] mtl - [x] ifc - [x] 3dm - [x] 3ds - [x] 3mf - [x] amf - [x] dae - [x] drc - [x] kmz - [x] ldr - [x] mpd - [x] md2 - [x] pcd - [x] ply - [x] stl - [x] svg - [x] usdz - [x] vox - [x] vtk - [x] vtp - [ ] vtu - [x] wrl - [x] xyz - [x] js [+zip]: 导入zip包时,系统会自动解析处理,分为下面几种情况: * 同时包含`model.obj`和`materials.mtl`,会按照`.obj`解析 * 遍历解析zip包中的`fbx`、`glb`、`gltf` ::: ## 多功能区域 > 图标/按钮 从左到右依次是 ==保存、预览、国际化、主题、主色调、设置== ::: tabs @tab 保存 打包当前场景,并保存至服务器。 @tab 预览 打开新的[预览页](/guide/chhmeza7/)窗口进行场景预览。 @tab 国际化 切换编辑器的语言,默认支持语言如下: - [x] 简体中文 - [x] English @tab 主题 切换编辑器的主题风格。
切换顺序为`深色`-->`跟随系统`-->`浅色`-->`深色`
系统默认为`深色`风格 @tab 主色调 调整编辑器的主色,系统会自动生成相应的浅色、深色色阶,用于鼠标经过以及选中等效果。 @tab 设置 打开编辑器的设置面板。 ::: ================================================ FILE: packages/docs/src/notes/guide/manual/home/数据中心.md ================================================ --- title: 数据中心 createTime: 2025/08/01 15:14:30 permalink: /guide/v0m2jmb5/ --- ================================================ FILE: packages/docs/src/notes/guide/manual/home/设置中心.md ================================================ --- title: 设置中心 createTime: 2025/08/01 15:14:51 permalink: /guide/sekzh2c0/ --- ================================================ FILE: packages/docs/src/notes/guide/manual/home/资源中心.md ================================================ --- title: 资源中心 createTime: 2025/08/01 15:14:39 permalink: /guide/4tirtbsc/ --- ::: demo-wrapper img no-padding ::: ## 上传资源 ::: demo-wrapper img no-padding ::: - **类型**:可上传资源类型默认为:==模型、材质、纹理、广告牌、HDR==; - **分类**:从树节点中选择资源所属的详细类别; - **标签**:为资源添加特定的标签,比如 ==“有动画、有骨骼”== 之类的,便于在资源列表顶部勾选标签快速搜索; - **缩略图**:可以从本地选择,或者在选择资源文件后,点击 ==通过预览截图== 生成。 ::: tabs @tab 通过预览截图 > 假设在`模型`类型下我先选择了一个飞机模型,然后点击按钮`通过预览截图` ::: - **文件**:不同类型的资源具有不同的文件格式支持。 ::: tabs @tab 模型 - [x] glb - [x] gltf - [x] fbx - [x] obj @tab 材质 - [x] zip > 默认解析为==PBR材质==。 > 上传的ZIP包内文件应依照特定规则(以下两种之一): > * 一. zip包中包含一个`material.json`的文件,其中指明各类贴图使用的纹理文件及材质属性,示例如下: > ```json:no-line-numbers title="material.json" > { > textures: { > baseColor: xxx.[png/jpg/webp/tga/hdr/exr], > normal: xxx.[png/jpg/webp/tga/hdr/exr], > bump: xxx.[png/jpg/webp/tga/hdr/exr], > displacement: xxx.[png/jpg/webp/tga/hdr/exr], > roughness: xxx.[png/jpg/webp/tga/hdr/exr], > metalness: xxx.[png/jpg/webp/tga/hdr/exr], > ao: xxx.[png/jpg/webp/tga/hdr/exr], > emissive: xxx.[png/jpg/webp/tga/hdr/exr], > alpha: xxx.[png/jpg/webp/tga/hdr/exr], > env: xxx.[png/jpg/webp/tga/hdr/exr], > light: xxx.[png/jpg/webp/tga/hdr/exr], > }, > properties: { > metalness: 1, > roughness: 0.5, > ... > } > } > ``` > * 二. zip包中不包含`material.json`文件,此时包中的各纹理文件应语义化命名,如下(文件名均为按照关键字模糊匹配): > > ::: file-tree > - *.zip > - %baseColor%.[png/jpg/webp/tga/hdr/exr] // 基础颜色贴图(高光反射/光泽度工作流:diffuse, 金属/粗糙度工作流:baseColor) > - %normal%.[png/jpg/webp/tga/hdr/exr] // 法线贴图 > - %bump%.[png/jpg/webp/tga/hdr/exr] // 凹凸贴图,如果定义了法线贴图,则将忽略该贴图 > - %displacement%.[png/jpg/webp/tga/hdr/exr] // 置换贴图(位移贴图) > - %roughness%.[png/jpg/webp/tga/hdr/exr] // 粗糙度贴图(使用该纹理的绿色通道) > - %metalness%.[png/jpg/webp/tga/hdr/exr] // 金属度贴图(使用该纹理的蓝色通道) > - %ao%.[png/jpg/webp/tga/hdr/exr] // 环境遮挡贴图(该纹理的红色通道) > - %emissive%.[png/jpg/webp/tga/hdr/exr] // 自发光贴图(放射贴图) > - %alpha%.[png/jpg/webp/tga/hdr/exr] // 透明贴图(一张灰度纹理,用于控制整个表面的不透明度:黑色:完全透明;白色:完全不透明) > - %env%.[png/jpg/webp/tga/hdr/exr] // 环境贴图(一般不会设置,因为会使用scene.environment) > - %light%.[png/jpg/webp/tga/hdr/exr] // 光照贴图(需要第二组UV) > ::: @tab 纹理 - [x] png - [x] jpg/jpeg - [x] webp @tab 广告牌 - [x] png - [x] jpg/jpeg - [x] webp - [x] svg @tab HDR - [x] hdr - [x] exr ::: - **名称**:默认会在上传资源文件后自动获取文件名填充; - **大小**:会在上传资源文件后自动计算,无需填写。 ## 预览资源 ::: demo-wrapper img no-padding ::: ## 编辑资源 ::: demo-wrapper img no-padding ::: ================================================ FILE: packages/docs/src/notes/guide/manual/home/项目.md ================================================ --- title: 项目 createTime: 2025/08/01 15:13:58 permalink: /guide/dbd366ps/ --- ::: demo-wrapper img no-padding ::: ## 新建项目 > 可以选择新建一个空项目或者依据内置模板创建。 ::: demo-wrapper img no-padding ::: ================================================ FILE: packages/docs/src/notes/guide/manual/preview/界面.md ================================================ --- title: 界面 createTime: 2025/04/14 00:49:50 permalink: /guide/chhmeza7/ --- ================================================ FILE: packages/docs/src/notes/guide/plugins/builtin/glTFHandler.md ================================================ --- lang: zh-CN title: glTF 处理器 createTime: 2025/02/20 15:13:36 permalink: /guide/plugin/builtin/jo87cfk0/ --- > 此插件提供了在 Web 端处理 glTF 文件的能力,主要能力如下: > > - 优化 glTF 文件: > - a. 压缩模型数据(包括贴图材质与几何数据),减少文件大小; > - b. 网格顶点优化,减少顶点数量,提升渲染性能; > - c. 实例化网格,减少渲染 DrawCall,提升渲染性能; > - d. 压缩裁剪纹理贴图,减少内存占用,提升渲染性能; ## 面板 ![glTF处理器](/images/plugin/glTFHandler/plane.jpg) ## 使用方法 #### 1. 点击面板顶部上传区域,选择 glTF 文件(相关文件不会上传至服务器,仅用于本地处理); #### 2. 修改配置选项或直接使用默认配置; #### 3. 点击“优化”按钮,开始处理 glTF 文件,优化日志会实时显示在面板顶部(原上传文件区域); ## 配置说明 | 配置项 | 描述 | 值 | | ---------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------ | | 压缩方式 | 网格浮点压缩方法
Draco 压缩 geometry;
Meshopt & Quantization 压缩 geometry 和 animation; | `Draco`|`Meshopt`|`Quantization`|`None` | | Meshopt 压缩级别 | 压缩方式选择`Meshopt`时需要选择压缩级别 | `low`|`medium`|`high` | | 实例化网格 | 使用 GPU 实例化技术共享网格引用,即生成`THREE.InstancedMesh`对象,减少 DrawCall | `true`|`false` | | 实例化网格界限 | 实例化网格所需的实例数,实例数低于该值的网格将不会实例化 | `min:2,max:Infinity` | | 展平场景树 | 将场景内子模型对象全部展平到场景根节点。
开启合并网格时此项无法关闭 | `true`|`false` | | 合并网格 | 合并网格以减少渲染调用,合并后的网格无法单独选中。
前置条件:开启展平场景树 | `true`|`false` | | 合并纹理 | 创建调色板纹理并合并材质 | `true`|`false` | | 合并纹理界限 | 合并纹理所需的纹理数,纹理数低于该值将不会合并 | `min:2,max:Infinity` | | 修剪 | 从文件中删除未被场景引用的属性 | `true`|`false` | | 修剪顶点 | 是否修剪未使用的顶点属性 | `true`|`false` | | 修剪子节点 | 是否修剪空的叶子节点 | `true`|`false` | | 修剪纹理 | 是否修剪实体(单色)纹理,将其转换为材质元素 | `true`|`false` | | 合并同位顶点 | 合并按位相同的顶点。合并和索引后,顶点之间的数据共享效率更高。文件大小可以减小,GPU 可以更高效地使用顶点缓存。
开启简化网格时此项无法关闭 | `true`|`false` | | 简化网格 | 基于`meshoptimizer`的简化算法,生成具有较少三角形和顶点的网格。简化是有损的,但该算法旨在针对给定的参数尽可能地保持视觉质量。
前置条件:开启合并同位顶点 | `true`|`false` | | 简化误差界限 | 简化网格误差容忍度,以网格尺寸的百分比表示 | `min:0.01,max:100` | | 简化锁定边界 | 是否锁定网格的拓扑边界,拓扑结构(尤其是分割顶点)会限制简化器 | `true`|`false` | | 简化比率 | 要保留的顶点的比率(0-1) | `min:0,max:1` | | 纹理压缩 | `AVIF`和`WebP`优化传输大小;
`Auto`按原始格式进行压缩; | `WebP`|`AVIF`|`Auto`|`None` | | 纹理最大尺寸 | 超过该尺寸的纹理将被压缩,值一般为 2 的 N 次方 | `min:2,max:Infinity` | ## 结果 ![glTF优化结果](/images/plugin/glTFHandler/result.jpg) ![glTF优化文件对比](/images/plugin/glTFHandler/compare.jpg) ![glTF优化文件对比](/images/plugin/glTFHandler/compare2.jpg) ================================================ FILE: packages/docs/src/notes/guide/plugins/入门.md ================================================ --- lang: zh-CN title: 入门 createTime: 2025/02/20 15:13:36 permalink: /guide/plugin/31eucyqc/ --- > Astral 3D 内置了插件系统,为其提供了巨大的灵活性和可扩展性。 ## 使用方法 1. 打开插件中心: ![插件中心入口](/images/plugin/entrance.jpg) 2. 单击需要使用的插件运行(以glTF处理器为例): ![插件中心](/images/plugin/plane.jpg) ![glTF处理器](/images/plugin/glTFHandler/plane.jpg) ## 内置插件 Astral 3D Editor 内置了以下插件: - glTF处理器:在Web端处理glTF文件的能力。用于对 glTF 格式的模型文件进行压缩、优化等操作; ================================================ FILE: packages/docs/src/notes/guide/plugins/插件开发.md ================================================ --- lang: zh-CN title: 插件开发 createTime: 2025/02/20 15:13:36 permalink: /guide/plugin/7ro8hsc0/ --- > 开发插件时,插件入口类需要实现以下接口,并以esm方式导出,Astral3D Engine会加载默认导出模块。 ## 插件入口类接口 ```typescript export interface Plugin { // 插件名称,插件的唯一标识 name: string; // 插件版本号 version:number; // 插件图标 icon:string; // 插件安装函数,在插件安装时调用 install(config?: any): void; // 插件卸载函数,在插件卸载时调用 uninstall(): void; // 从插件盒子面板点击插件时的运行方法 run(): void; } ``` ## 示例插件 ```typescript // 暂未发布到npm,请自行将代码拷贝到项目中 // import { Plugin } from 'msy3d'; class ExamplePlugin implements Plugin { name = 'example-plugin'; version = 1.0; icon = 'https://example.com/icon.png'; install(config?: any): void { console.log('ExamplePlugin installed'); } uninstall(): void { console.log('ExamplePlugin uninstalled'); } run(): void { console.log('ExamplePlugin run'); } } export default ExamplePlugin; ``` ================================================ FILE: packages/docs/src/notes/guide/quick-start/介绍.md ================================================ --- lang: zh-CN title: 介绍 createTime: 2025/02/20 15:13:36 permalink: /guide/6xkx4dnv/ --- > `Astral 3D Engine` 是一个基于 `ThreeJS` 的三维快速开发引擎。
> `Astral 3D Editor` 是一个以 `Astral 3D` 作为底层的三维可视化编辑器。
> 从诞生之初,其定位便是快捷、轻量、可扩展的3D低代码创作工具,意在解决Web3D产品开发难,迭代速度慢,并且视觉效果不达标的行业痛点,推动Web3D的发展。
## 重点功能 - [x] 场景数据无损压缩; - [x] 网络分包渐进存取; - [x] 支持20+模型格式; - [ ] `BIM`模型在线轻量化; - [x] `CAD`图纸解析预览; - [x] 碰撞检测 - [x] 粒子系统 - [ ] 插件系统 - [x] 动画编辑器 - [x] Billboard、HtmlPanel(在线解析html、Vue/React打包工程) - [x] 资源中心 - [ ] 3DTiles支持 - [ ] 数据组件 (API接口、前端SQL、WebSocket、静态JSON) - [ ] Cesium场景融合(GIS支持) - [ ] WebGPU 支持 - [ ] 低代码数据大屏(:tada:开发阶段) ## 需要掌握的技能 本项目二开及与服务器交互需要一定前端基础知识,建议在开发前先学习一下以下内容,会对项目理解非常有帮助: - [Vue3](https://vuejs.org/) - [ThreeJS](https://threejs.org/) - [Naive UI](https://www.naiveui.com/zh-CN/os-theme) - [TypeScript](https://www.typescriptlang.org/) - [Vite](https://vitejs.dev/) - [UnoCSS](https://uno.antfu.me/) ================================================ FILE: packages/docs/src/notes/guide/quick-start/安装.md ================================================ --- title: 安装/使用 createTime: 2025/10/06 21:35:36 permalink: /guide/p8awar6v/ --- [+node-versions]: **>= 23.0.0:** `23.0.0` 及以上的版本 [+pnpm-versions]: **>= 10.0.0:** `10.0.0` 及以上的版本 [+corepack]: 从 **v16.13** 开始,`Node.js` 附带 `Corepack` 用于管理包管理器 ## 依赖环境 - [Node.js](https://nodejs.org/) : **>= 23.0.0** [+node-versions] - [pnpm](https://pnpm.io/zh/) : **>= 10.0.0** [+pnpm-versions] :::: details 怎么安装依赖环境? ::: steps 1. **请前往 [Node.js 官网](https://nodejs.org/zh-cn) 下载最新稳定版本** 请根据指引完成安装,一般而言,在安装过程中,您只需要保持其默认设置,直接选择下一步即可。 2. **安装 PNPM** 在您安装完成 node.js 后,请打开 终端,执行如下命令:[+corepack] ```sh corepack enable pnpm # [optional] # 这会添加一个 packageManager 字段到你本地的 package.json, # 指示 Corepack 始终在该项目上使用特定的版本。 # 如果你想要可复现性,这可能很有用,因为所有使用 Corepack 的开发人员都将使用与你相同的版本 corepack use pnpm@latest-10 ``` 3. **完成** ::: :::: ## 安装 :::: steps - ### Git拉取项目 ``` sh git clone https://github.com/mlt131220/Astral3D.git ``` - ### 进入目录 ``` sh cd Astral3D ``` - ### 安装相关依赖 ::: code-tabs @tab pnpm ``` sh pnpm install ``` ::: - ### 构建SDK ::: code-tabs @tab pnpm ``` sh pnpm run sdk:build ``` ::: - ### 运行编辑器 ::: code-tabs @tab pnpm ``` sh pnpm run editor:dev ``` ::: - ### 完成 :::: ================================================ FILE: packages/docs/src/notes/guide/quick-start/部署.md ================================================ --- title: 部署 createTime: 2025/03/29 23:50:17 permalink: /guide/n6o11owv/ --- > 本文档适用于部署 Astral3D 编辑器到服务器上。
> 以[Java版本](https://github.com/yx8663/astral-service)后端为例,其他语言版本后端部署方式请参考官方文档。 ## 本地打包 ### 前端打包 ```bash # 确认 Node.js 版本(≥ 23.11.x) node -v # 拉取代码 git clone https://github.com/mlt131220/Astral3D.git # 进入项目 cd Astral3D # 安装依赖 pnpm install # 打包 Astral 3D Engine SDK pnpm run sdk:build # 打包Astral 3D Editor pnpm run editor:build ``` ### 后端打包 ```bash # 确认java环境 java -version # 确认maven环境 mvn -v # 拉取代码 git clone https://github.com/yx8663/astral-service # 安装依赖 mvn clean install # 修改数据库等配置(修改 astral-web/src/main/resources/application-dev.yml,详见 https://github.com/yx8663/astral-service/blob/develop/README.md#%E9%85%8D%E7%BD%AE) vim astral-web/src/main/resources/application-dev.yml # 编译打包(通过maven打包即可跨平台) # 生产环境推荐用clean package跳过测试 mvn clean package -DskipTests # jar包: astral-web/target/astral-web.jar ls -l astral-web/target/*.jar ``` ## 服务器部署(Windows) ### 基础环境 - [Nginx](https://nginx.org/en/download.html)/[caddy](https://caddyserver.com/) - [MySQL](https://www.mysql.com/cn/downloads/) 或者直接使用集成环境,如[PHPStudy](https://old.xp.cn/download.html)。 ### 前端部署 将Astral 3D Editor打包后的文件放到方便读取的目录下,如 `C:\www\Astral3dEditor`; ### 后端部署 1. 将后端部署所需文件/文件夹放到方便读取的目录下,如 `C:\www\Astral3DEditorBack`,所需文件/文件夹如下: * `static` 文件夹; * `astral-web/target/astral-web.jar`; * `astral-web/src/main/resources/application.yml` * `astral-web/src/main/resources/application-dev.yml` 2. 此时`C:\www\Astral3DEditorBack`内容如下: ``` shell - static/ - application.yml - application-dev.yml - astral-web.jar ``` 3. 打开 MySQL 数据库,创建配置在 `application-dev.yml` 的数据库,并导入 `static/sql/astral_3d.sql` 文件; 4. 启动 MySQL 服务,并确保 MySQL 服务正常运行; 5. 在 `C:\www\Astral3DEditorBack` 下运行命令 `java -jar astral-web.jar` 启动后端服务,默认监听 `8080` 端口; ### Nginx 配置 1. 打开 Nginx 配置文件,假设nginx安装目录为`C:\nginx`,则配置文件路径为`C:\nginx\conf\nginx.conf`; 2. 在 `http` 块中添加以下配置: ``` http { # ... 忽略原有其他配置不变更 # 开启gzip gzip on; # 导入所有的server配置 include vhosts/*.conf; } ``` 3. 在 `C:\nginx\conf` 目录下创建 `vhosts` 目录(与上方http中增加的配置路径同名,并非一定要为`vhost`,可以自定义); 4. 在 `C:\nginx\conf\vhosts` 目录下创建 `astral3d.conf` 文件,内容如下: ``` server { # 监听端口,即前端部署的端口,一般设置为80 listen 80; # 域名/ip/localhost server_name 127.0.0.1; # 访问 server_name:listen 后,请求就会被转发到这个location块中 location / { # 前端部署的目录,即前端打包后的文件所在目录 root "C:\www\Astral3dEditor"; # 文件url重写规则,将请求转发到index.html(单页面应用) try_files $uri $uri/ index.html; # 项目入口文件 index index.html; # 协商缓存配置,30天 add_header Cache-Control "public, max-age=2592000"; expires 30d; etag on; } # 后端api接口代理,接口请求匹配 /api 的会走此处转发,下面都同理 location /api { # 后端接口访问地址,上面部署在了本机的8080端口 proxy_pass http://127.0.0.1:8080/api; } # 前端websocket代理 location /socket { proxy_pass http://127.0.0.1:8080/api/sys/ws; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "Upgrade"; proxy_connect_timeout 10s; proxy_read_timeout 300s; proxy_send_timeout 300s; } location /file/static { log_not_found off; # 关闭日志 access_log off; # 强缓存设置,缓存时间设置为0.5年 add_header Cache-Control "public, max-age=15768000"; proxy_pass http://localhost:8080/api/common/static; } } ``` ### 启动服务 ```bash nginx -s start # 重启 nginx(如果修改了配置文件) nginx -s reload ``` 此时访问 `http://127.0.0.1` 即可访问到 Astral 3D Editor。 ## 服务器部署(Linux) ## Docker 部署 ================================================ FILE: packages/docs/src/notes/guide/quick-start/项目结构.md ================================================ --- title: 项目结构(更新中) createTime: 2025/10/06 22:08:28 permalink: /guide/zdiy72f2/ --- 本指南将向您说明 `Astral 3D` 项目的文件结构。 `Astral 3D`代码是以`Monorepo`的方式管理的,它的文件结构是这样的: ::: file-tree - .git/ - .idea/ - common \# 通用代码包 - build/ \# vite构建相关 - packages \# 主项目包 - docs/ \# Astral 3D 文档 - **editor/** \# Astral 3D 编辑器 - **sdk/** \# Astral 3D 引擎 - .gitignore - .npmrc - CONTRIBUTING.md - LEGAL.md - LICENSE - package.json - pnpm-lock.yaml - pnpm-workspace.yaml - README.en.md - README.md ::: ================================================ FILE: packages/docs/src/notes/more/questions.md ================================================ --- title: 常见问题 createTime: 2025/02/20 16:19:54 permalink: /questions/ --- 本文主要包含了Astral3D过程中可能会遇到的常见问题与解决方法。 如果您遇到任何问题,您可以先在以下内容中寻找是否有相关的问题和解决方法。 如果没有找到,您可以先通过 Github [Discussions](https://github.com/mlt131220/Astral3D/discussions/new?category=q-a) 与我们讨论。 如果您确定某处确实存在问题,请在 Github [Open an issue](https://github.com/mlt131220/Astral3D/issues/new), 在 Issue 中说明该问题的具体细节,我们会尽快解决。 ## XXXXXX? XXXXXXXXXXXXXXXXXXX ================================================ FILE: packages/docs/src/notes/promotion/README.md ================================================ --- title: 推广中心 createTime: 2025/10/04 19:34:07 permalink: /promotion/ --- :::important 作者的话 `Astral 3D` 是一款基于 `Three.js` 的完全开源且免费的三维引擎。 如果使用起来觉得还不错,欢迎通过 [Star](https://github.com/mlt131220/Astral3D) 支持。 它源于个人的兴趣与曾经的工作需求,我将会长期维护它。 如果它对你产生了帮助,那我也深感荣幸。 如果你想,可以捐助我。 一切都是自由的,愿大家,平安喜乐。 ==岁岁平,岁岁安,岁岁平安。== ::: > 本页面为各种大网站的推广链接,在此处购买您将会受到一定的优惠,而我收到一部分提成 :fire: 4核8G 200兆服务器,仅需49元/月,[点击这里购买](https://www.rainyun.com/Astral3D_) :fire: 专属优惠码:Astral3D 2核2G 轻量应用服务器 ¥38.00/年 从此链接购买享 **==9折优惠==**!! 云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中 ================================================ FILE: packages/docs/src/notes/sdk/README.md ================================================ --- lang: zh-CN --- # :watermelon: 暂未编写 ================================================ FILE: packages/editor/.gitignore ================================================ # Logs logs *.log npm-debug.log* yarn-debug.log* yarn-error.log* pnpm-debug.log* lerna-debug.log* node_modules dist dist-ssr *.local # Editor directories and files .vscode/* !.vscode/extensions.json .idea .DS_Store *.suo *.ntvs* *.njsproj *.sln *.sw? public/*.zip dev-dist ================================================ FILE: packages/editor/.npmrc ================================================ auto-install-peers=true ================================================ FILE: packages/editor/components.d.ts ================================================ /* eslint-disable */ // @ts-nocheck // Generated by unplugin-vue-components // Read more: https://github.com/vuejs/core/pull/3399 export {} /* prettier-ignore */ declare module 'vue' { export interface GlobalComponents { AssetPreview: typeof import('./src/components/preview/AssetPreview.vue')['default'] CAD: typeof import('./src/components/drawing/toolbar/CAD.vue')['default'] CadLayers: typeof import('./src/components/drawing/toolbar/CadLayers.vue')['default'] Clear: typeof import('./src/components/header/navigation/Clear.vue')['default'] CodeEditor: typeof import('./src/components/code/CodeEditor.vue')['default'] Color: typeof import('./src/components/setting/common/Color.vue')['default'] CommonPreview: typeof import('./src/components/preview/CommonPreview.vue')['default'] CommonPreview_backup: typeof import('./src/components/preview/CommonPreview_backup.vue')['default'] Copy: typeof import('./src/components/header/navigation/Copy.vue')['default'] Delete: typeof import('./src/components/header/navigation/Delete.vue')['default'] Do: typeof import('./src/components/header/navigation/Do.vue')['default'] Drawing: typeof import('./src/components/drawing/Drawing.vue')['default'] EarthGenerator: typeof import('./src/components/es/plugin/builtin/EarthGenerator.vue')['default'] EsContextmenu: typeof import('./src/components/es/EsContextmenu.vue')['default'] EsCubeLoading: typeof import('./src/components/es/EsCubeLoading.vue')['default'] EsDocument: typeof import('./src/components/es/EsDocument.vue')['default'] EsFormItemHelpLabel: typeof import('./src/components/es/EsFormItemHelpLabel.vue')['default'] EsInput: typeof import('./src/components/es/EsInput.vue')['default'] EsInputNumber: typeof import('./src/components/es/EsInputNumber.vue')['default'] EsKeyFrame: typeof import('./src/components/es/EsKeyFrame.vue')['default'] EsParticleEasing: typeof import('./src/components/es/EsParticleEasing.vue')['default'] EsPlugin: typeof import('./src/components/es/EsPlugin.vue')['default'] EsPluginDialog: typeof import('./src/components/es/plugin/EsPluginDialog.vue')['default'] EsPluginList: typeof import('./src/components/es/plugin/EsPluginList.vue')['default'] EsPopTreeSelect: typeof import('./src/components/es/EsPopTreeSelect.vue')['default'] EsTexture: typeof import('./src/components/es/EsTexture.vue')['default'] EsTip: typeof import('./src/components/es/EsTip.vue')['default'] Fullscreen: typeof import('./src/components/header/navigation/Fullscreen.vue')['default'] GLTFHandler: typeof import('./src/components/es/plugin/builtin/GLTFHandler.vue')['default'] GLTFHandlerForm: typeof import('./src/components/es/plugin/builtin/glTFHandler/GLTFHandlerForm.vue')['default'] HtmlPanelCode: typeof import('./src/components/code/HtmlPanelCode.vue')['default'] Image: typeof import('./src/components/drawing/toolbar/Image.vue')['default'] ImportExport: typeof import('./src/components/header/navigation/ImportExport.vue')['default'] JSONEditor: typeof import('./src/components/code/JSONEditor.vue')['default'] Locale: typeof import('./src/components/setting/common/Locale.vue')['default'] Logo: typeof import('./src/components/header/Logo.vue')['default'] NavigationOperation: typeof import('./src/components/header/NavigationOperation.vue')['default'] NButton: typeof import('naive-ui')['NButton'] NCard: typeof import('naive-ui')['NCard'] NCarousel: typeof import('naive-ui')['NCarousel'] NCheckbox: typeof import('naive-ui')['NCheckbox'] NCheckboxGroup: typeof import('naive-ui')['NCheckboxGroup'] NConfigProvider: typeof import('naive-ui')['NConfigProvider'] NDescriptions: typeof import('naive-ui')['NDescriptions'] NDescriptionsItem: typeof import('naive-ui')['NDescriptionsItem'] NDialogProvider: typeof import('naive-ui')['NDialogProvider'] NDivider: typeof import('naive-ui')['NDivider'] NDropdown: typeof import('naive-ui')['NDropdown'] NForm: typeof import('naive-ui')['NForm'] NFormItem: typeof import('naive-ui')['NFormItem'] NGradientText: typeof import('naive-ui')['NGradientText'] NIcon: typeof import('naive-ui')['NIcon'] NImage: typeof import('naive-ui')['NImage'] NInfiniteScroll: typeof import('naive-ui')['NInfiniteScroll'] NInput: typeof import('naive-ui')['NInput'] NInputNumber: typeof import('naive-ui')['NInputNumber'] NLayout: typeof import('naive-ui')['NLayout'] NLayoutContent: typeof import('naive-ui')['NLayoutContent'] NLayoutHeader: typeof import('naive-ui')['NLayoutHeader'] NLayoutSider: typeof import('naive-ui')['NLayoutSider'] NLoadingBarProvider: typeof import('naive-ui')['NLoadingBarProvider'] NMenu: typeof import('naive-ui')['NMenu'] NMessageProvider: typeof import('naive-ui')['NMessageProvider'] NModal: typeof import('naive-ui')['NModal'] NModalProvider: typeof import('naive-ui')['NModalProvider'] NNotificationProvider: typeof import('naive-ui')['NNotificationProvider'] NPopover: typeof import('naive-ui')['NPopover'] NPopselect: typeof import('naive-ui')['NPopselect'] NProgress: typeof import('naive-ui')['NProgress'] NRadio: typeof import('naive-ui')['NRadio'] NRadioGroup: typeof import('naive-ui')['NRadioGroup'] NResult: typeof import('naive-ui')['NResult'] NSelect: typeof import('naive-ui')['NSelect'] NSkeleton: typeof import('naive-ui')['NSkeleton'] NSpace: typeof import('naive-ui')['NSpace'] NSpin: typeof import('naive-ui')['NSpin'] NTabPane: typeof import('naive-ui')['NTabPane'] NTabs: typeof import('naive-ui')['NTabs'] NTag: typeof import('naive-ui')['NTag'] NText: typeof import('naive-ui')['NText'] NTooltip: typeof import('naive-ui')['NTooltip'] NTree: typeof import('naive-ui')['NTree'] NTreeSelect: typeof import('naive-ui')['NTreeSelect'] NUpload: typeof import('naive-ui')['NUpload'] NUploadDragger: typeof import('naive-ui')['NUploadDragger'] PointCloudReconstructor: typeof import('./src/components/es/plugin/builtin/PointCloudReconstructor.vue')['default'] PreviewSetting: typeof import('./src/components/setting/components/PreviewSetting.vue')['default'] ProjectInfoForm: typeof import('./src/components/project/ProjectInfoForm.vue')['default'] ReconstructorForm: typeof import('./src/components/es/plugin/builtin/pointCloudReconstructor/ReconstructorForm.vue')['default'] RightOperation: typeof import('./src/components/header/RightOperation.vue')['default'] RouterLink: typeof import('vue-router')['RouterLink'] RouterView: typeof import('vue-router')['RouterView'] SaveToService: typeof import('./src/components/header/right/SaveToService.vue')['default'] SceneTree: typeof import('./src/components/tree/SceneTree.vue')['default'] Script: typeof import('./src/components/code/Script.vue')['default'] Setting: typeof import('./src/components/setting/Setting.vue')['default'] SettingCenter: typeof import('./src/components/setting/common/SettingCenter.vue')['default'] SettingTabs: typeof import('./src/components/setting/components/SettingTabs.vue')['default'] Shortcuts: typeof import('./src/components/setting/components/Shortcuts.vue')['default'] SQLEditor: typeof import('./src/components/code/SQLEditor.vue')['default'] SystemSetting: typeof import('./src/components/setting/components/SystemSetting.vue')['default'] Theme: typeof import('./src/components/setting/common/Theme.vue')['default'] UserData: typeof import('./src/components/code/UserData.vue')['default'] XR: typeof import('./src/components/header/right/XR.vue')['default'] } } ================================================ FILE: packages/editor/index.html ================================================ Astral 3D Editor - 高效的三维可视化编辑工具
================================================ FILE: packages/editor/package.json ================================================ { "name": "@astral3d/editor", "author": "ErSan", "version": "1.0.0", "type": "module", "scripts": { "dev": "vite", "build": "vite build", "tsc": "tsc", "preview": "vite preview" }, "engines": { "node": ">=23.11.0" }, "dependencies": { "@ant-design/colors": "^7.0.2", "@astral3d/engine": "workspace:^", "@gltf-transform/core": "^4.2.1", "@gltf-transform/extensions": "^4.2.1", "@gltf-transform/functions": "^4.2.1", "@vicons/carbon": "^0.12.0", "@vicons/ionicons5": "^0.12.0", "@vueuse/core": "^13.2.0", "animate.css": "^4.1.1", "axios": "^1.8.2", "disable-devtool": "^0.3.8", "keyframe-resample": "^0.1.0", "meshoptimizer": "^0.23.0", "monaco-editor": "^0.52.2", "naive-ui": "catalog:", "pinia": "^2.1.4", "three": "catalog:", "vite-plugin-static-copy": "catalog:", "vue": "catalog:", "vue-i18n": "^11.1.2", "vue-router": "^4.3.2" }, "devDependencies": { "@astral3d/build-vite-plugins": "workspace:^", "@types/three": "catalog:", "@vitejs/plugin-vue":"catalog:", "dotenv": "^16.3.1", "less": "^4.3.0", "typescript": "catalog:", "unocss": "^66.1.0-beta.12", "unplugin-vue-components": "^0.27.3", "vite": "catalog:", "vite-plugin-mkcert": "^1.16.0" } } ================================================ FILE: packages/editor/public/libs/draco/draco_decoder.js ================================================ var DracoDecoderModule = (() => { var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined; if (typeof __filename !== 'undefined') _scriptDir = _scriptDir || __filename; return ( function(DracoDecoderModule = {}) { var Module=typeof DracoDecoderModule!="undefined"?DracoDecoderModule:{};var readyPromiseResolve,readyPromiseReject;Module["ready"]=new Promise(function(resolve,reject){readyPromiseResolve=resolve;readyPromiseReject=reject});var isRuntimeInitialized=false;var isModuleParsed=false;Module["onRuntimeInitialized"]=function(){isRuntimeInitialized=true;if(isModuleParsed){if(typeof Module["onModuleLoaded"]==="function"){Module["onModuleLoaded"](Module)}}};Module["onModuleParsed"]=function(){isModuleParsed=true;if(isRuntimeInitialized){if(typeof Module["onModuleLoaded"]==="function"){Module["onModuleLoaded"](Module)}}};function isVersionSupported(versionString){if(typeof versionString!=="string")return false;const version=versionString.split(".");if(version.length<2||version.length>3)return false;if(version[0]==1&&version[1]>=0&&version[1]<=5)return true;if(version[0]!=0||version[1]>10)return false;return true}Module["isVersionSupported"]=isVersionSupported;var moduleOverrides=Object.assign({},Module);var arguments_=[];var thisProgram="./this.program";var quit_=(status,toThrow)=>{throw toThrow};var ENVIRONMENT_IS_WEB=typeof window=="object";var ENVIRONMENT_IS_WORKER=typeof importScripts=="function";var ENVIRONMENT_IS_NODE=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string";var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;function logExceptionOnExit(e){if(e instanceof ExitStatus)return;let toLog=e;err("exiting due to exception: "+toLog)}if(ENVIRONMENT_IS_NODE){var fs=require("fs");var nodePath=require("path");if(ENVIRONMENT_IS_WORKER){scriptDirectory=nodePath.dirname(scriptDirectory)+"/"}else{scriptDirectory=__dirname+"/"}read_=(filename,binary)=>{var ret=tryParseAsDataURI(filename);if(ret){return binary?ret:ret.toString()}filename=isFileURI(filename)?new URL(filename):nodePath.normalize(filename);return fs.readFileSync(filename,binary?undefined:"utf8")};readBinary=filename=>{var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}return ret};readAsync=(filename,onload,onerror)=>{var ret=tryParseAsDataURI(filename);if(ret){onload(ret)}filename=isFileURI(filename)?new URL(filename):nodePath.normalize(filename);fs.readFile(filename,function(err,data){if(err)onerror(err);else onload(data.buffer)})};if(process["argv"].length>1){thisProgram=process["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);quit_=(status,toThrow)=>{if(keepRuntimeAlive()){process["exitCode"]=status;throw toThrow}logExceptionOnExit(toThrow);process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(_scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.replace(/[?#].*/,"").lastIndexOf("/")+1)}else{scriptDirectory=""}{read_=url=>{try{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText}catch(err){var data=tryParseAsDataURI(url);if(data){return intArrayToString(data)}throw err}};if(ENVIRONMENT_IS_WORKER){readBinary=url=>{try{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}catch(err){var data=tryParseAsDataURI(url);if(data){return data}throw err}}}readAsync=(url,onload,onerror)=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=()=>{if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}var data=tryParseAsDataURI(url);if(data){onload(data.buffer);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=title=>document.title=title}else{}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);Object.assign(Module,moduleOverrides);moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||true;var WebAssembly={Memory:function(opts){this.buffer=new ArrayBuffer(opts["initial"]*65536)},Module:function(binary){},Instance:function(module,info){this.exports=( // EMSCRIPTEN_START_ASM function instantiate(na){function c(d){d.set=function(a,b){this[a]=b};d.get=function(a){return this[a]};return d}var e;var f=new Uint8Array(123);for(var a=25;a>=0;--a){f[48+a]=52+a;f[65+a]=a;f[97+a]=26+a}f[43]=62;f[47]=63;function l(m,n,o){var g,h,a=0,i=n,j=o.length,k=n+(j*3>>2)-(o[j-2]=="=")-(o[j-1]=="=");for(;a>4;if(i>2;if(i>2];s=H[b+12>>2];d=H[b+20>>2];e=H[b+16>>2];g=e+4|0;d=g>>>0<4?d+1|0:d;a:{b:{c:{if(g>>>0>k>>>0&(d|0)>=(s|0)|(d|0)>(s|0)){break c}d=e+H[b>>2]|0;H[a>>2]=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);d=H[b+20>>2];k=d;g=H[b+16>>2];e=g+4|0;d=e>>>0<4?d+1|0:d;H[b+16>>2]=e;H[b+20>>2]=d;if(K[a>>2]>31){break c}s=H[b+8>>2];y=H[b+12>>2];d=k;g=g+8|0;d=g>>>0<8?d+1|0:d;if(g>>>0>s>>>0&(d|0)>=(y|0)|(d|0)>(y|0)){break c}d=e+H[b>>2]|0;H[a+4>>2]=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);d=H[b+20>>2];k=d;g=H[b+16>>2];e=g+4|0;d=e>>>0<4?d+1|0:d;H[b+16>>2]=e;H[b+20>>2]=d;s=H[b+8>>2];y=H[b+12>>2];d=k;g=g+8|0;d=g>>>0<8?d+1|0:d;if(g>>>0>s>>>0&(d|0)>=(y|0)|(d|0)>(y|0)){break c}d=e+H[b>>2]|0;H[a+12>>2]=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);d=H[b+20>>2];k=d;g=H[b+16>>2];e=g+4|0;d=e>>>0<4?d+1|0:d;H[b+16>>2]=e;H[b+20>>2]=d;d=H[a+20>>2];x=H[a+12>>2];if((x|0)!=(d|0)?d:0){break c}s=H[b+8>>2];y=H[b+12>>2];d=k;g=g+8|0;d=g>>>0<8?d+1|0:d;if(g>>>0>s>>>0&(d|0)>=(y|0)|(d|0)>(y|0)){break c}d=e+H[b>>2]|0;e=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);H[a+16>>2]=e;g=H[b+20>>2];d=H[b+16>>2]+4|0;g=d>>>0<4?g+1|0:g;H[b+16>>2]=d;H[b+20>>2]=g;if(e>>>0>=7){H[B>>2]=e;Qd(1713,B);break c}H[B+664>>2]=c;d:{if(!x){break d}e:{k=H[c>>2];if(x>>>0<=(H[c+8>>2]-k|0)/12>>>0){break e}if(x>>>0<357913942){l=H[c+4>>2];d=N(x,12);e=pa(d);g=d+e|0;e=e+N((l-k|0)/12|0,12)|0;d=e;if((k|0)!=(l|0)){while(1){d=d-12|0;l=l-12|0;H[d>>2]=H[l>>2];H[d+4>>2]=H[l+4>>2];H[d+8>>2]=H[l+8>>2];if((k|0)!=(l|0)){continue}break}}H[c+8>>2]=g;H[c+4>>2]=e;H[c>>2]=d;if(!k){break e}oa(k);break e}break b}f:{switch(H[a+16>>2]){case 0:i=wb(B+8|0,3);z=B+664|0;k=H[b+8>>2];n=H[b+12>>2];d=H[b+20>>2];e=H[b+16>>2];g=e+4|0;d=g>>>0<4?d+1|0:d;g:{if(g>>>0>k>>>0&(d|0)>=(n|0)|(d|0)>(n|0)){break g}d=e+H[b>>2]|0;H[i>>2]=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);d=H[b+20>>2];k=d;g=H[b+16>>2];e=g+4|0;d=e>>>0<4?d+1|0:d;H[b+16>>2]=e;H[b+20>>2]=d;if(K[i>>2]>32){break g}n=H[b+8>>2];s=H[b+12>>2];d=k;g=g+8|0;d=g>>>0<8?d+1|0:d;if(g>>>0>n>>>0&(d|0)>=(s|0)|(d|0)>(s|0)){break g}d=e+H[b>>2]|0;e=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);H[i+4>>2]=e;g=H[b+20>>2];d=H[b+16>>2]+4|0;g=d>>>0<4?g+1|0:g;H[b+16>>2]=d;H[b+20>>2]=g;if(!e){break g}H[i+8>>2]=0;if(!ua(i+16|0,b)){break g}if(!ua(i+36|0,b)){break g}if(!ua(i+56|0,b)){break g}if(!ua(i+76|0,b)){break g}A=H[i+4>>2];d=0;g=0;f=ca-32|0;ca=f;m=H[i+12>>2];H[f+16>>2]=0;H[f+8>>2]=0;H[f+12>>2]=0;if(m){if(m>>>0>=1073741824){break b}b=m<<2;g=pa(b);H[f+8>>2]=g;d=b+g|0;H[f+16>>2]=d;ra(g,0,b);H[f+12>>2]=d}e=H[i+120>>2];b=H[e>>2];if(b){H[e+4>>2]=b;oa(b);m=H[i+12>>2];g=H[f+8>>2];d=H[f+12>>2]}H[e+4>>2]=d;H[e>>2]=g;H[e+8>>2]=H[f+16>>2];g=0;H[f+16>>2]=0;H[f+8>>2]=0;H[f+12>>2]=0;h:{if(m){if(m>>>0>=1073741824){break b}b=m<<2;w=pa(b);H[f+8>>2]=w;g=b+w|0;H[f+16>>2]=g;ra(w,0,b);H[f+12>>2]=g}d=H[i+132>>2];b=H[d>>2];if(b){H[d+4>>2]=b;oa(b);w=H[f+8>>2];g=H[f+12>>2]}H[d+4>>2]=g;H[d>>2]=w;H[d+8>>2]=H[f+16>>2];H[f+24>>2]=0;H[f+28>>2]=0;H[f+16>>2]=0;H[f+20>>2]=0;H[f+8>>2]=0;H[f+12>>2]=0;xa(f+8|0);d=H[f+24>>2]+H[f+28>>2]|0;b=(d>>>0)/341|0;b=H[H[f+12>>2]+(b<<2)>>2]+N(d-N(b,341)|0,12)|0;H[b+4>>2]=0;H[b+8>>2]=0;H[b>>2]=A;m=H[f+28>>2]+1|0;H[f+28>>2]=m;i:{if(!m){break i}y=i+96|0;while(1){n=H[f+12>>2];g=H[f+24>>2];e=m-1|0;d=g+e|0;b=(d>>>0)/341|0;b=H[n+(b<<2)>>2]+N(d-N(b,341)|0,12)|0;o=H[b+8>>2];k=H[b+4>>2];t=H[b>>2];H[f+28>>2]=e;b=H[f+16>>2];if((((b|0)!=(n|0)?N(b-n>>2,341)-1|0:0)-(g+m|0)|0)+1>>>0>=682){oa(H[b-4>>2]);H[f+16>>2]=H[f+16>>2]-4}b=0;if(t>>>0>A>>>0){break i}d=H[i+12>>2];m=(k|0)!=(d-1|0)?k+1|0:0;if(m>>>0>=d>>>0){break i}q=N(o,12);p=q+H[i+132>>2]|0;l=q+H[i+120>>2]|0;g=H[i>>2];r=m<<2;e=H[r+H[p>>2]>>2];j:{k:{if((g|0)==(e|0)){if(!t){break k}while(1){d=H[l>>2];x=H[d+8>>2];s=H[d+4>>2];n=H[d>>2];q=H[z>>2];m=H[q+4>>2];d=H[q+8>>2];l:{if(m>>>0>>0){H[m+8>>2]=x;H[m+4>>2]=s;H[m>>2]=n;H[q+4>>2]=m+12;break l}r=H[q>>2];g=(m-r|0)/12|0;k=g+1|0;if(k>>>0>=357913942){break b}e=(d-r|0)/12|0;d=e<<1;k=e>>>0>=178956970?357913941:d>>>0>k>>>0?d:k;if(k){if(k>>>0>=357913942){break a}d=pa(N(k,12))}else{d=0}w=d+N(g,12)|0;H[w+8>>2]=x;H[w+4>>2]=s;H[w>>2]=n;e=w+12|0;if((m|0)!=(r|0)){while(1){w=w-12|0;m=m-12|0;H[w>>2]=H[m>>2];H[w+4>>2]=H[m+4>>2];H[w+8>>2]=H[m+8>>2];if((m|0)!=(r|0)){continue}break}}H[q+8>>2]=d+N(k,12);H[q+4>>2]=e;H[q>>2]=w;if(!r){break l}oa(r)}H[i+8>>2]=H[i+8>>2]+1;b=b+1|0;if((t|0)!=(b|0)){continue}break}break k}m:{n:{o:{p:{if(t>>>0<=2){d=H[i+108>>2];H[d>>2]=m;w=1;g=H[i+12>>2];if(g>>>0>1){break p}break m}if(K[i+8>>2]>K[i+4>>2]){break i}b=H[i+120>>2];s=o+1|0;x=N(s,12);d=b+x|0;if((d|0)!=(l|0)){Aa(d,H[l>>2],H[l+4>>2]);b=H[i+120>>2]}b=r+H[b+x>>2]|0;H[b>>2]=H[b>>2]+(1<>2];e=32-k|0;q:{if((n|0)<=(e|0)){e=H[i+28>>2];if((e|0)==H[i+20>>2]){break o}d=H[e>>2];b=k+n|0;H[i+32>>2]=b;w=d<>>32-n|0;if((b|0)!=32){break q}H[i+32>>2]=0;H[i+28>>2]=e+4;break q}g=H[i+28>>2];b=g+4|0;if((b|0)==H[i+20>>2]){break o}d=H[g>>2];H[i+28>>2]=b;b=n-e|0;H[i+32>>2]=b;w=H[g+4>>2]>>>32-b|d<>>32-n}d=t>>>1|0;if(w>>>0>d>>>0){break i}break n}while(1){m=(g-1|0)!=(m|0)?m+1|0:0;H[d+(w<<2)>>2]=m;g=H[i+12>>2];w=w+1|0;if(g>>>0>w>>>0){continue}break}break m}d=t>>>1|0;w=0}r:{s:{e=d-w|0;b=t-e|0;t:{if((b|0)==(e|0)){b=e;break t}n=H[i+88>>2];if((n|0)==H[i+80>>2]){break s}k=H[n>>2];g=H[i+92>>2];d=g+1|0;H[i+92>>2]=d;g=k&-2147483648>>>g;u:{if((d|0)==32){H[i+92>>2]=0;H[i+88>>2]=n+4;if(g){break u}break s}if(!g){break s}}}d=b;b=e;break r}d=e}n=H[i+132>>2];k=n+q|0;g=H[k>>2];e=g+r|0;H[e>>2]=H[e>>2]+1;Aa(n+x|0,g,H[k+4>>2]);if(b){g=H[f+28>>2]+H[f+24>>2]|0;e=H[f+16>>2];w=H[f+12>>2];if((g|0)==(((e|0)!=(w|0)?N(e-w>>2,341)-1|0:0)|0)){xa(f+8|0);w=H[f+12>>2];g=H[f+24>>2]+H[f+28>>2]|0}e=(g>>>0)/341|0;e=H[(e<<2)+w>>2]+N(g-N(e,341)|0,12)|0;H[e+8>>2]=o;H[e+4>>2]=m;H[e>>2]=b;H[f+28>>2]=H[f+28>>2]+1}if(!d){break k}g=H[f+28>>2]+H[f+24>>2]|0;b=H[f+16>>2];w=H[f+12>>2];if((g|0)==(((b|0)!=(w|0)?N(b-w>>2,341)-1|0:0)|0)){xa(f+8|0);w=H[f+12>>2];g=H[f+24>>2]+H[f+28>>2]|0}b=(g>>>0)/341|0;b=H[(b<<2)+w>>2]+N(g-N(b,341)|0,12)|0;H[b+8>>2]=s;H[b+4>>2]=m;H[b>>2]=d;m=H[f+28>>2]+1|0;H[f+28>>2]=m;break j}if(!t){break k}while(1){if(H[i+12>>2]){o=H[i+40>>2];n=H[p>>2];w=H[i+96>>2];k=H[i+108>>2];m=0;while(1){q=k+(m<<2)|0;H[w+(H[q>>2]<<2)>>2]=0;g=H[i>>2];e=H[q>>2]<<2;d=H[e+n>>2];v:{if((g|0)==(d|0)){break v}r=e+w|0;u=g-d|0;x=H[i+52>>2];g=32-x|0;if((u|0)<=(g|0)){e=H[i+48>>2];if((e|0)==(o|0)){break i}H[r>>2]=H[e>>2]<>>32-u;d=u+H[i+52>>2]|0;H[i+52>>2]=d;if((d|0)!=32){break v}H[i+52>>2]=0;H[i+48>>2]=e+4;break v}s=H[i+48>>2];d=s+4|0;if((d|0)==(o|0)){break i}e=H[s>>2];H[i+48>>2]=d;d=u-g|0;H[i+52>>2]=d;H[r>>2]=H[s+4>>2]>>>32-d|e<>>32-u}e=H[q>>2]<<2;d=e+w|0;H[d>>2]=H[d>>2]|H[e+H[l>>2]>>2];m=m+1|0;if(m>>>0>2]){continue}break}}jb(z,y);H[i+8>>2]=H[i+8>>2]+1;b=b+1|0;if((t|0)!=(b|0)){continue}break}}m=H[f+28>>2]}if(m){continue}break}}H[f+28>>2]=0;w=H[f+16>>2];m=H[f+12>>2];g=w-m|0;if(g>>>0>=9){while(1){oa(H[m>>2]);m=H[f+12>>2]+4|0;H[f+12>>2]=m;w=H[f+16>>2];g=w-m|0;if(g>>>0>8){continue}break}}b=170;w:{switch((g>>>2|0)-1|0){case 1:b=341;case 0:H[f+24>>2]=b;break;default:break w}}x:{if((m|0)==(w|0)){break x}while(1){oa(H[m>>2]);m=m+4|0;if((w|0)!=(m|0)){continue}break}d=H[f+16>>2];b=H[f+12>>2];if((d|0)==(b|0)){break x}H[f+16>>2]=d+((b-d|0)+3&-4)}b=H[f+8>>2];if(b){oa(b)}ca=f+32|0;break h}}xb(i);break d;case 1:i=wb(B+8|0,3);A=B+664|0;k=H[b+8>>2];n=H[b+12>>2];d=H[b+20>>2];e=H[b+16>>2];g=e+4|0;d=g>>>0<4?d+1|0:d;y:{if(g>>>0>k>>>0&(d|0)>=(n|0)|(d|0)>(n|0)){break y}d=e+H[b>>2]|0;H[i>>2]=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);d=H[b+20>>2];k=d;g=H[b+16>>2];e=g+4|0;d=e>>>0<4?d+1|0:d;H[b+16>>2]=e;H[b+20>>2]=d;if(K[i>>2]>32){break y}n=H[b+8>>2];s=H[b+12>>2];d=k;g=g+8|0;d=g>>>0<8?d+1|0:d;if(g>>>0>n>>>0&(d|0)>=(s|0)|(d|0)>(s|0)){break y}d=e+H[b>>2]|0;e=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);H[i+4>>2]=e;g=H[b+20>>2];d=H[b+16>>2]+4|0;g=d>>>0<4?g+1|0:g;H[b+16>>2]=d;H[b+20>>2]=g;if(!e){break y}H[i+8>>2]=0;if(!ua(i+16|0,b)){break y}if(!ua(i+36|0,b)){break y}if(!ua(i+56|0,b)){break y}if(!ua(i+76|0,b)){break y}p=H[i+4>>2];d=0;f=ca-32|0;ca=f;m=H[i+12>>2];H[f+16>>2]=0;H[f+8>>2]=0;H[f+12>>2]=0;if(m){if(m>>>0>=1073741824){break b}b=m<<2;t=pa(b);H[f+8>>2]=t;d=b+t|0;H[f+16>>2]=d;ra(t,0,b);H[f+12>>2]=d}e=H[i+120>>2];b=H[e>>2];if(b){H[e+4>>2]=b;oa(b);m=H[i+12>>2];t=H[f+8>>2];d=H[f+12>>2]}H[e+4>>2]=d;H[e>>2]=t;H[e+8>>2]=H[f+16>>2];t=0;H[f+16>>2]=0;H[f+8>>2]=0;H[f+12>>2]=0;z:{if(m){if(m>>>0>=1073741824){break b}b=m<<2;o=pa(b);H[f+8>>2]=o;t=b+o|0;H[f+16>>2]=t;ra(o,0,b);H[f+12>>2]=t}d=H[i+132>>2];b=H[d>>2];if(b){H[d+4>>2]=b;oa(b);t=H[f+12>>2];o=H[f+8>>2]}H[d+4>>2]=t;H[d>>2]=o;H[d+8>>2]=H[f+16>>2];H[f+24>>2]=0;H[f+28>>2]=0;H[f+16>>2]=0;H[f+20>>2]=0;H[f+8>>2]=0;H[f+12>>2]=0;xa(f+8|0);d=H[f+24>>2]+H[f+28>>2]|0;b=(d>>>0)/341|0;b=H[H[f+12>>2]+(b<<2)>>2]+N(d-N(b,341)|0,12)|0;H[b+4>>2]=0;H[b+8>>2]=0;H[b>>2]=p;m=H[f+28>>2]+1|0;H[f+28>>2]=m;A:{if(!m){break A}s=i+96|0;while(1){k=H[f+12>>2];g=H[f+24>>2];e=m-1|0;d=g+e|0;b=(d>>>0)/341|0;b=H[k+(b<<2)>>2]+N(d-N(b,341)|0,12)|0;q=H[b+8>>2];d=H[b+4>>2];l=H[b>>2];H[f+28>>2]=e;b=H[f+16>>2];if((((b|0)!=(k|0)?N(b-k>>2,341)-1|0:0)-(g+m|0)|0)+1>>>0>=682){oa(H[b-4>>2]);H[f+16>>2]=H[f+16>>2]-4}if(l>>>0>p>>>0){break A}b=H[i+12>>2];m=(d|0)!=(b-1|0)?d+1|0:0;if(m>>>0>=b>>>0){break A}b=H[i+120>>2];r=N(q,12);u=b+r|0;e=H[i>>2];x=m<<2;n=r+H[i+132>>2]|0;d=H[x+H[n>>2]>>2];B:{C:{if((e|0)==(d|0)){x=0;if(!l){break C}while(1){b=H[u>>2];y=H[b+8>>2];n=H[b+4>>2];k=H[b>>2];q=H[A>>2];m=H[q+4>>2];b=H[q+8>>2];D:{if(m>>>0>>0){H[m+8>>2]=y;H[m+4>>2]=n;H[m>>2]=k;H[q+4>>2]=m+12;break D}r=H[q>>2];e=(m-r|0)/12|0;g=e+1|0;if(g>>>0>=357913942){break b}d=(b-r|0)/12|0;b=d<<1;g=d>>>0>=178956970?357913941:b>>>0>g>>>0?b:g;if(g){if(g>>>0>=357913942){break a}b=pa(N(g,12))}else{b=0}o=b+N(e,12)|0;H[o+8>>2]=y;H[o+4>>2]=n;H[o>>2]=k;d=o+12|0;if((m|0)!=(r|0)){while(1){o=o-12|0;m=m-12|0;H[o>>2]=H[m>>2];H[o+4>>2]=H[m+4>>2];H[o+8>>2]=H[m+8>>2];if((m|0)!=(r|0)){continue}break}}H[q+8>>2]=b+N(g,12);H[q+4>>2]=d;H[q>>2]=o;if(!r){break D}oa(r)}H[i+8>>2]=H[i+8>>2]+1;x=x+1|0;if((l|0)!=(x|0)){continue}break}break C}E:{F:{G:{H:{if(l>>>0<=2){b=H[i+108>>2];H[b>>2]=m;o=1;t=H[i+12>>2];if(t>>>0>1){break H}break E}if(K[i+8>>2]>K[i+4>>2]){break A}k=b;b=r+12|0;Aa(k+b|0,H[u>>2],H[u+4>>2]);b=x+H[b+H[i+120>>2]>>2]|0;H[b>>2]=H[b>>2]+(1<>2];e=32-k|0;I:{if((n|0)<=(e|0)){e=H[i+28>>2];if((e|0)==H[i+20>>2]){break G}d=H[e>>2];b=k+n|0;H[i+32>>2]=b;d=d<>>32-n|0;if((b|0)!=32){break I}H[i+32>>2]=0;H[i+28>>2]=e+4;break I}g=H[i+28>>2];b=g+4|0;if((b|0)==H[i+20>>2]){break G}d=H[g>>2];H[i+28>>2]=b;b=n-e|0;H[i+32>>2]=b;d=H[g+4>>2]>>>32-b|d<>>32-n}o=l>>>1|0;if(o>>>0>>0){break A}break F}while(1){m=(t-1|0)!=(m|0)?m+1|0:0;H[b+(o<<2)>>2]=m;o=o+1|0;t=H[i+12>>2];if(o>>>0>>0){continue}break}break E}o=l>>>1|0;d=0}y=q+1|0;J:{K:{e=o-d|0;d=l-e|0;L:{if((d|0)==(e|0)){b=e;break L}n=H[i+88>>2];if((n|0)==H[i+80>>2]){break K}k=H[n>>2];g=H[i+92>>2];b=g+1|0;H[i+92>>2]=b;g=k&-2147483648>>>g;M:{if((b|0)==32){H[i+92>>2]=0;H[i+88>>2]=n+4;if(g){break M}break K}if(!g){break K}}b=d}d=e;break J}b=e}n=H[i+132>>2];k=n+r|0;g=H[k>>2];e=g+x|0;H[e>>2]=H[e>>2]+1;Aa(n+N(y,12)|0,g,H[k+4>>2]);if(d){t=H[f+28>>2]+H[f+24>>2]|0;e=H[f+16>>2];o=H[f+12>>2];if((t|0)==(((e|0)!=(o|0)?N(e-o>>2,341)-1|0:0)|0)){xa(f+8|0);t=H[f+24>>2]+H[f+28>>2]|0;o=H[f+12>>2]}e=(t>>>0)/341|0;e=H[o+(e<<2)>>2]+N(t-N(e,341)|0,12)|0;H[e+8>>2]=q;H[e+4>>2]=m;H[e>>2]=d;H[f+28>>2]=H[f+28>>2]+1}if(!b){break C}t=H[f+28>>2]+H[f+24>>2]|0;d=H[f+16>>2];o=H[f+12>>2];if((t|0)==(((d|0)!=(o|0)?N(d-o>>2,341)-1|0:0)|0)){xa(f+8|0);t=H[f+24>>2]+H[f+28>>2]|0;o=H[f+12>>2]}d=(t>>>0)/341|0;d=H[o+(d<<2)>>2]+N(t-N(d,341)|0,12)|0;H[d+8>>2]=y;H[d+4>>2]=m;H[d>>2]=b;m=H[f+28>>2]+1|0;H[f+28>>2]=m;break B}t=0;if(!l){break C}while(1){if(H[i+12>>2]){o=H[i+40>>2];k=H[n>>2];z=H[i+96>>2];g=H[i+108>>2];m=0;while(1){q=g+(m<<2)|0;H[z+(H[q>>2]<<2)>>2]=0;e=H[i>>2];d=H[q>>2]<<2;b=H[d+k>>2];N:{if((e|0)==(b|0)){break N}r=d+z|0;w=e-b|0;x=H[i+52>>2];e=32-x|0;if((w|0)<=(e|0)){d=H[i+48>>2];if((d|0)==(o|0)){break A}H[r>>2]=H[d>>2]<>>32-w;b=w+H[i+52>>2]|0;H[i+52>>2]=b;if((b|0)!=32){break N}H[i+52>>2]=0;H[i+48>>2]=d+4;break N}y=H[i+48>>2];b=y+4|0;if((b|0)==(o|0)){break A}d=H[y>>2];H[i+48>>2]=b;b=w-e|0;H[i+52>>2]=b;H[r>>2]=H[y+4>>2]>>>32-b|d<>>32-w}d=H[q>>2]<<2;b=d+z|0;H[b>>2]=H[b>>2]|H[d+H[u>>2]>>2];m=m+1|0;if(m>>>0>2]){continue}break}}jb(A,s);H[i+8>>2]=H[i+8>>2]+1;t=t+1|0;if((l|0)!=(t|0)){continue}break}}m=H[f+28>>2]}if(m){continue}break}}H[f+28>>2]=0;o=H[f+16>>2];m=H[f+12>>2];t=o-m|0;if(t>>>0>=9){while(1){oa(H[m>>2]);m=H[f+12>>2]+4|0;H[f+12>>2]=m;o=H[f+16>>2];t=o-m|0;if(t>>>0>8){continue}break}}b=170;O:{switch((t>>>2|0)-1|0){case 1:b=341;case 0:H[f+24>>2]=b;break;default:break O}}P:{if((m|0)==(o|0)){break P}while(1){oa(H[m>>2]);m=m+4|0;if((o|0)!=(m|0)){continue}break}d=H[f+16>>2];b=H[f+12>>2];if((d|0)==(b|0)){break P}H[f+16>>2]=d+((b-d|0)+3&-4)}b=H[f+8>>2];if(b){oa(b)}ca=f+32|0;break z}}xb(i);break d;case 2:f=ub(B+8|0,3);w=B+664|0;k=H[b+8>>2];n=H[b+12>>2];d=H[b+20>>2];e=H[b+16>>2];g=e+4|0;d=g>>>0<4?d+1|0:d;Q:{if(g>>>0>k>>>0&(d|0)>=(n|0)|(d|0)>(n|0)){break Q}d=e+H[b>>2]|0;H[f>>2]=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);d=H[b+20>>2];k=d;g=H[b+16>>2];e=g+4|0;d=e>>>0<4?d+1|0:d;H[b+16>>2]=e;H[b+20>>2]=d;if(K[f>>2]>32){break Q}n=H[b+8>>2];s=H[b+12>>2];d=k;g=g+8|0;d=g>>>0<8?d+1|0:d;if(g>>>0>n>>>0&(d|0)>=(s|0)|(d|0)>(s|0)){break Q}d=e+H[b>>2]|0;e=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);H[f+4>>2]=e;g=H[b+20>>2];d=H[b+16>>2]+4|0;g=d>>>0<4?g+1|0:g;H[b+16>>2]=d;H[b+20>>2]=g;if(!e){break Q}H[f+8>>2]=0;if(!ta(f+16|0,b)){break Q}if(!ua(f+32|0,b)){break Q}if(!ua(f+52|0,b)){break Q}if(!ua(f+72|0,b)){break Q}z=H[f+4>>2];g=0;b=0;h=ca-32|0;ca=h;j=H[f+12>>2];H[h+16>>2]=0;H[h+8>>2]=0;H[h+12>>2]=0;if(j){if(j>>>0>=1073741824){break b}d=j<<2;g=pa(d);H[h+8>>2]=g;b=d+g|0;H[h+16>>2]=b;ra(g,0,d);H[h+12>>2]=b}e=H[f+116>>2];d=H[e>>2];if(d){H[e+4>>2]=d;oa(d);j=H[f+12>>2];g=H[h+8>>2];b=H[h+12>>2]}H[e+4>>2]=b;H[e>>2]=g;H[e+8>>2]=H[h+16>>2];g=0;H[h+16>>2]=0;H[h+8>>2]=0;H[h+12>>2]=0;R:{if(j){if(j>>>0>=1073741824){break b}b=j<<2;u=pa(b);H[h+8>>2]=u;g=b+u|0;H[h+16>>2]=g;ra(u,0,b);H[h+12>>2]=g}d=H[f+128>>2];b=H[d>>2];if(b){H[d+4>>2]=b;oa(b);u=H[h+8>>2];g=H[h+12>>2]}H[d+4>>2]=g;H[d>>2]=u;H[d+8>>2]=H[h+16>>2];H[h+24>>2]=0;H[h+28>>2]=0;H[h+16>>2]=0;H[h+20>>2]=0;H[h+8>>2]=0;H[h+12>>2]=0;xa(h+8|0);d=H[h+24>>2]+H[h+28>>2]|0;b=(d>>>0)/341|0;b=H[H[h+12>>2]+(b<<2)>>2]+N(d-N(b,341)|0,12)|0;H[b+4>>2]=0;H[b+8>>2]=0;H[b>>2]=z;j=H[h+28>>2]+1|0;H[h+28>>2]=j;S:{if(!j){break S}x=f+92|0;y=f+16|0;while(1){n=H[h+12>>2];g=H[h+24>>2];e=j-1|0;d=g+e|0;b=(d>>>0)/341|0;b=H[n+(b<<2)>>2]+N(d-N(b,341)|0,12)|0;p=H[b+8>>2];k=H[b+4>>2];i=H[b>>2];H[h+28>>2]=e;b=H[h+16>>2];if((((b|0)!=(n|0)?N(b-n>>2,341)-1|0:0)-(g+j|0)|0)+1>>>0>=682){oa(H[b-4>>2]);H[h+16>>2]=H[h+16>>2]-4}d=0;if(i>>>0>z>>>0){break S}b=H[f+12>>2];j=(k|0)!=(b-1|0)?k+1|0:0;if(j>>>0>=b>>>0){break S}o=N(p,12);A=o+H[f+128>>2]|0;t=o+H[f+116>>2]|0;g=H[f>>2];q=j<<2;e=H[q+H[A>>2]>>2];T:{if((g|0)==(e|0)){if(!i){break T}while(1){b=H[t>>2];r=H[b+8>>2];s=H[b+4>>2];n=H[b>>2];o=H[w>>2];j=H[o+4>>2];b=H[o+8>>2];U:{if(j>>>0>>0){H[j+8>>2]=r;H[j+4>>2]=s;H[j>>2]=n;H[o+4>>2]=j+12;break U}q=H[o>>2];g=(j-q|0)/12|0;k=g+1|0;if(k>>>0>=357913942){break b}e=(b-q|0)/12|0;b=e<<1;k=e>>>0>=178956970?357913941:b>>>0>k>>>0?b:k;if(k){if(k>>>0>=357913942){break a}b=pa(N(k,12))}else{b=0}u=b+N(g,12)|0;H[u+8>>2]=r;H[u+4>>2]=s;H[u>>2]=n;e=u+12|0;if((j|0)!=(q|0)){while(1){u=u-12|0;j=j-12|0;H[u>>2]=H[j>>2];H[u+4>>2]=H[j+4>>2];H[u+8>>2]=H[j+8>>2];if((j|0)!=(q|0)){continue}break}}H[o+8>>2]=b+N(k,12);H[o+4>>2]=e;H[o>>2]=u;if(!q){break U}oa(q)}H[f+8>>2]=H[f+8>>2]+1;d=d+1|0;if((i|0)!=(d|0)){continue}break}break T}V:{W:{X:{Y:{if(i>>>0<=2){b=H[f+104>>2];H[b>>2]=j;u=1;g=H[f+12>>2];if(g>>>0>1){break Y}break V}if(K[f+8>>2]>K[f+4>>2]){break S}b=H[f+116>>2];s=p+1|0;r=N(s,12);d=b+r|0;if((d|0)!=(t|0)){Aa(d,H[t>>2],H[t+4>>2]);b=H[f+116>>2]}b=q+H[b+r>>2]|0;H[b>>2]=H[b>>2]+(1<>2]=0;pc(y,Q(i)^31,h+4|0);d=i>>>1|0;b=H[h+4>>2];if(d>>>0>>0){break S}e=d-b|0;d=i-e|0;Z:{if((d|0)==(e|0)){b=e;break Z}n=H[f+84>>2];if((n|0)==H[f+76>>2]){break X}k=H[n>>2];g=H[f+88>>2];b=g+1|0;H[f+88>>2]=b;g=k&-2147483648>>>g;_:{if((b|0)==32){H[f+88>>2]=0;H[f+84>>2]=n+4;if(g){break _}break X}if(!g){break X}}b=d}d=e;break W}while(1){j=(g-1|0)!=(j|0)?j+1|0:0;H[b+(u<<2)>>2]=j;g=H[f+12>>2];u=u+1|0;if(g>>>0>u>>>0){continue}break}break V}b=e}n=H[f+128>>2];k=n+o|0;g=H[k>>2];e=g+q|0;H[e>>2]=H[e>>2]+1;Aa(n+r|0,g,H[k+4>>2]);if(d){g=H[h+28>>2]+H[h+24>>2]|0;e=H[h+16>>2];u=H[h+12>>2];if((g|0)==(((e|0)!=(u|0)?N(e-u>>2,341)-1|0:0)|0)){xa(h+8|0);u=H[h+12>>2];g=H[h+24>>2]+H[h+28>>2]|0}e=(g>>>0)/341|0;e=H[(e<<2)+u>>2]+N(g-N(e,341)|0,12)|0;H[e+8>>2]=p;H[e+4>>2]=j;H[e>>2]=d;H[h+28>>2]=H[h+28>>2]+1}if(!b){break T}g=H[h+28>>2]+H[h+24>>2]|0;d=H[h+16>>2];u=H[h+12>>2];if((g|0)==(((d|0)!=(u|0)?N(d-u>>2,341)-1|0:0)|0)){xa(h+8|0);u=H[h+12>>2];g=H[h+24>>2]+H[h+28>>2]|0}d=(g>>>0)/341|0;d=H[(d<<2)+u>>2]+N(g-N(d,341)|0,12)|0;H[d+8>>2]=s;H[d+4>>2]=j;H[d>>2]=b;H[h+28>>2]=H[h+28>>2]+1;break T}if(!i){break T}while(1){if(H[f+12>>2]){p=H[f+36>>2];n=H[A>>2];u=H[f+92>>2];k=H[f+104>>2];j=0;while(1){o=k+(j<<2)|0;H[u+(H[o>>2]<<2)>>2]=0;g=H[f>>2];e=H[o>>2]<<2;b=H[e+n>>2];$:{if((g|0)==(b|0)){break $}q=e+u|0;l=g-b|0;r=H[f+48>>2];g=32-r|0;if((l|0)<=(g|0)){e=H[f+44>>2];if((e|0)==(p|0)){break S}H[q>>2]=H[e>>2]<>>32-l;b=l+H[f+48>>2]|0;H[f+48>>2]=b;if((b|0)!=32){break $}H[f+48>>2]=0;H[f+44>>2]=e+4;break $}s=H[f+44>>2];b=s+4|0;if((b|0)==(p|0)){break S}e=H[s>>2];H[f+44>>2]=b;b=l-g|0;H[f+48>>2]=b;H[q>>2]=H[s+4>>2]>>>32-b|e<>>32-l}e=H[o>>2]<<2;b=e+u|0;H[b>>2]=H[b>>2]|H[e+H[t>>2]>>2];j=j+1|0;if(j>>>0>2]){continue}break}}jb(w,x);H[f+8>>2]=H[f+8>>2]+1;d=d+1|0;if((i|0)!=(d|0)){continue}break}}j=H[h+28>>2];if(j){continue}break}}H[h+28>>2]=0;u=H[h+16>>2];j=H[h+12>>2];g=u-j|0;if(g>>>0>=9){while(1){oa(H[j>>2]);j=H[h+12>>2]+4|0;H[h+12>>2]=j;u=H[h+16>>2];g=u-j|0;if(g>>>0>8){continue}break}}b=170;aa:{switch((g>>>2|0)-1|0){case 1:b=341;case 0:H[h+24>>2]=b;break;default:break aa}}ba:{if((j|0)==(u|0)){break ba}while(1){oa(H[j>>2]);j=j+4|0;if((u|0)!=(j|0)){continue}break}d=H[h+16>>2];b=H[h+12>>2];if((d|0)==(b|0)){break ba}H[h+16>>2]=d+((b-d|0)+3&-4)}b=H[h+8>>2];if(b){oa(b)}ca=h+32|0;break R}}vb(f);break d;case 3:i=ub(B+8|0,3);z=B+664|0;k=H[b+8>>2];n=H[b+12>>2];d=H[b+20>>2];e=H[b+16>>2];g=e+4|0;d=g>>>0<4?d+1|0:d;ca:{if(g>>>0>k>>>0&(d|0)>=(n|0)|(d|0)>(n|0)){break ca}d=e+H[b>>2]|0;H[i>>2]=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);d=H[b+20>>2];k=d;g=H[b+16>>2];e=g+4|0;d=e>>>0<4?d+1|0:d;H[b+16>>2]=e;H[b+20>>2]=d;if(K[i>>2]>32){break ca}n=H[b+8>>2];s=H[b+12>>2];d=k;g=g+8|0;d=g>>>0<8?d+1|0:d;if(g>>>0>n>>>0&(d|0)>=(s|0)|(d|0)>(s|0)){break ca}d=e+H[b>>2]|0;e=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);H[i+4>>2]=e;g=H[b+20>>2];d=H[b+16>>2]+4|0;g=d>>>0<4?g+1|0:g;H[b+16>>2]=d;H[b+20>>2]=g;if(!e){break ca}H[i+8>>2]=0;if(!ta(i+16|0,b)){break ca}if(!ua(i+32|0,b)){break ca}if(!ua(i+52|0,b)){break ca}if(!ua(i+72|0,b)){break ca}A=H[i+4>>2];d=0;f=ca-32|0;ca=f;j=H[i+12>>2];H[f+16>>2]=0;H[f+8>>2]=0;H[f+12>>2]=0;if(j){if(j>>>0>=1073741824){break b}b=j<<2;m=pa(b);H[f+8>>2]=m;d=b+m|0;H[f+16>>2]=d;ra(m,0,b);H[f+12>>2]=d}e=H[i+116>>2];b=H[e>>2];if(b){H[e+4>>2]=b;oa(b);j=H[i+12>>2];m=H[f+8>>2];d=H[f+12>>2]}H[e+4>>2]=d;H[e>>2]=m;H[e+8>>2]=H[f+16>>2];m=0;H[f+16>>2]=0;H[f+8>>2]=0;H[f+12>>2]=0;da:{if(j){if(j>>>0>=1073741824){break b}b=j<<2;p=pa(b);H[f+8>>2]=p;m=b+p|0;H[f+16>>2]=m;ra(p,0,b);H[f+12>>2]=m}d=H[i+128>>2];b=H[d>>2];if(b){H[d+4>>2]=b;oa(b);m=H[f+12>>2];p=H[f+8>>2]}H[d+4>>2]=m;H[d>>2]=p;H[d+8>>2]=H[f+16>>2];H[f+24>>2]=0;H[f+28>>2]=0;H[f+16>>2]=0;H[f+20>>2]=0;H[f+8>>2]=0;H[f+12>>2]=0;xa(f+8|0);d=H[f+24>>2]+H[f+28>>2]|0;b=(d>>>0)/341|0;b=H[H[f+12>>2]+(b<<2)>>2]+N(d-N(b,341)|0,12)|0;H[b+4>>2]=0;H[b+8>>2]=0;H[b>>2]=A;j=H[f+28>>2]+1|0;H[f+28>>2]=j;ea:{if(!j){break ea}y=i+92|0;s=i+16|0;while(1){k=H[f+12>>2];g=H[f+24>>2];e=j-1|0;d=g+e|0;b=(d>>>0)/341|0;b=H[k+(b<<2)>>2]+N(d-N(b,341)|0,12)|0;o=H[b+8>>2];d=H[b+4>>2];t=H[b>>2];H[f+28>>2]=e;b=H[f+16>>2];if((((b|0)!=(k|0)?N(b-k>>2,341)-1|0:0)-(g+j|0)|0)+1>>>0>=682){oa(H[b-4>>2]);H[f+16>>2]=H[f+16>>2]-4}if(t>>>0>A>>>0){break ea}b=H[i+12>>2];j=(d|0)!=(b-1|0)?d+1|0:0;if(j>>>0>=b>>>0){break ea}b=H[i+116>>2];q=N(o,12);l=b+q|0;e=H[i>>2];r=j<<2;n=q+H[i+128>>2]|0;d=H[r+H[n>>2]>>2];fa:{if((e|0)==(d|0)){r=0;if(!t){break fa}while(1){b=H[l>>2];x=H[b+8>>2];n=H[b+4>>2];k=H[b>>2];o=H[z>>2];j=H[o+4>>2];b=H[o+8>>2];ga:{if(j>>>0>>0){H[j+8>>2]=x;H[j+4>>2]=n;H[j>>2]=k;H[o+4>>2]=j+12;break ga}q=H[o>>2];e=(j-q|0)/12|0;g=e+1|0;if(g>>>0>=357913942){break b}d=(b-q|0)/12|0;b=d<<1;g=d>>>0>=178956970?357913941:b>>>0>g>>>0?b:g;if(g){if(g>>>0>=357913942){break a}b=pa(N(g,12))}else{b=0}p=b+N(e,12)|0;H[p+8>>2]=x;H[p+4>>2]=n;H[p>>2]=k;d=p+12|0;if((j|0)!=(q|0)){while(1){p=p-12|0;j=j-12|0;H[p>>2]=H[j>>2];H[p+4>>2]=H[j+4>>2];H[p+8>>2]=H[j+8>>2];if((j|0)!=(q|0)){continue}break}}H[o+8>>2]=b+N(g,12);H[o+4>>2]=d;H[o>>2]=p;if(!q){break ga}oa(q)}H[i+8>>2]=H[i+8>>2]+1;r=r+1|0;if((t|0)!=(r|0)){continue}break}break fa}ha:{ia:{ja:{ka:{if(t>>>0<=2){b=H[i+104>>2];H[b>>2]=j;p=1;m=H[i+12>>2];if(m>>>0>1){break ka}break ha}if(K[i+8>>2]>K[i+4>>2]){break ea}k=b;b=q+12|0;Aa(k+b|0,H[l>>2],H[l+4>>2]);b=r+H[b+H[i+116>>2]>>2]|0;H[b>>2]=H[b>>2]+(1<>2]=0;pc(s,Q(t)^31,f+4|0);d=t>>>1|0;b=H[f+4>>2];if(d>>>0>>0){break ea}x=o+1|0;e=d-b|0;d=t-e|0;la:{if((d|0)==(e|0)){b=e;break la}n=H[i+84>>2];if((n|0)==H[i+76>>2]){break ja}k=H[n>>2];g=H[i+88>>2];b=g+1|0;H[i+88>>2]=b;g=k&-2147483648>>>g;ma:{if((b|0)==32){H[i+88>>2]=0;H[i+84>>2]=n+4;if(g){break ma}break ja}if(!g){break ja}}b=d}d=e;break ia}while(1){j=(m-1|0)!=(j|0)?j+1|0:0;H[b+(p<<2)>>2]=j;m=H[i+12>>2];p=p+1|0;if(m>>>0>p>>>0){continue}break}break ha}b=e}n=H[i+128>>2];k=n+q|0;g=H[k>>2];e=g+r|0;H[e>>2]=H[e>>2]+1;Aa(n+N(x,12)|0,g,H[k+4>>2]);if(d){m=H[f+28>>2]+H[f+24>>2]|0;e=H[f+16>>2];p=H[f+12>>2];if((m|0)==(((e|0)!=(p|0)?N(e-p>>2,341)-1|0:0)|0)){xa(f+8|0);m=H[f+24>>2]+H[f+28>>2]|0;p=H[f+12>>2]}e=(m>>>0)/341|0;e=H[p+(e<<2)>>2]+N(m-N(e,341)|0,12)|0;H[e+8>>2]=o;H[e+4>>2]=j;H[e>>2]=d;H[f+28>>2]=H[f+28>>2]+1}if(!b){break fa}m=H[f+28>>2]+H[f+24>>2]|0;d=H[f+16>>2];p=H[f+12>>2];if((m|0)==(((d|0)!=(p|0)?N(d-p>>2,341)-1|0:0)|0)){xa(f+8|0);m=H[f+24>>2]+H[f+28>>2]|0;p=H[f+12>>2]}d=(m>>>0)/341|0;d=H[p+(d<<2)>>2]+N(m-N(d,341)|0,12)|0;H[d+8>>2]=x;H[d+4>>2]=j;H[d>>2]=b;H[f+28>>2]=H[f+28>>2]+1;break fa}m=0;if(!t){break fa}while(1){if(H[i+12>>2]){p=H[i+36>>2];k=H[n>>2];w=H[i+92>>2];g=H[i+104>>2];j=0;while(1){o=g+(j<<2)|0;H[w+(H[o>>2]<<2)>>2]=0;e=H[i>>2];d=H[o>>2]<<2;b=H[d+k>>2];na:{if((e|0)==(b|0)){break na}q=d+w|0;u=e-b|0;r=H[i+48>>2];e=32-r|0;if((u|0)<=(e|0)){d=H[i+44>>2];if((d|0)==(p|0)){break ea}H[q>>2]=H[d>>2]<>>32-u;b=u+H[i+48>>2]|0;H[i+48>>2]=b;if((b|0)!=32){break na}H[i+48>>2]=0;H[i+44>>2]=d+4;break na}x=H[i+44>>2];b=x+4|0;if((b|0)==(p|0)){break ea}d=H[x>>2];H[i+44>>2]=b;b=u-e|0;H[i+48>>2]=b;H[q>>2]=H[x+4>>2]>>>32-b|d<>>32-u}d=H[o>>2]<<2;b=d+w|0;H[b>>2]=H[b>>2]|H[d+H[l>>2]>>2];j=j+1|0;if(j>>>0>2]){continue}break}}jb(z,y);H[i+8>>2]=H[i+8>>2]+1;m=m+1|0;if((t|0)!=(m|0)){continue}break}}j=H[f+28>>2];if(j){continue}break}}H[f+28>>2]=0;p=H[f+16>>2];j=H[f+12>>2];m=p-j|0;if(m>>>0>=9){while(1){oa(H[j>>2]);j=H[f+12>>2]+4|0;H[f+12>>2]=j;p=H[f+16>>2];m=p-j|0;if(m>>>0>8){continue}break}}b=170;oa:{switch((m>>>2|0)-1|0){case 1:b=341;case 0:H[f+24>>2]=b;break;default:break oa}}pa:{if((j|0)==(p|0)){break pa}while(1){oa(H[j>>2]);j=j+4|0;if((p|0)!=(j|0)){continue}break}d=H[f+16>>2];b=H[f+12>>2];if((d|0)==(b|0)){break pa}H[f+16>>2]=d+((b-d|0)+3&-4)}b=H[f+8>>2];if(b){oa(b)}ca=f+32|0;break da}}vb(i);break d;case 4:f=$a(B+8|0,3);w=B+664|0;k=H[b+8>>2];n=H[b+12>>2];d=H[b+20>>2];e=H[b+16>>2];g=e+4|0;d=g>>>0<4?d+1|0:d;qa:{if(g>>>0>k>>>0&(d|0)>=(n|0)|(d|0)>(n|0)){break qa}d=e+H[b>>2]|0;H[f>>2]=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);d=H[b+20>>2];k=d;g=H[b+16>>2];e=g+4|0;d=e>>>0<4?d+1|0:d;H[b+16>>2]=e;H[b+20>>2]=d;if(K[f>>2]>32){break qa}n=H[b+8>>2];s=H[b+12>>2];d=k;g=g+8|0;d=g>>>0<8?d+1|0:d;if(g>>>0>n>>>0&(d|0)>=(s|0)|(d|0)>(s|0)){break qa}d=e+H[b>>2]|0;e=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);H[f+4>>2]=e;g=H[b+20>>2];d=H[b+16>>2]+4|0;g=d>>>0<4?g+1|0:g;H[b+16>>2]=d;H[b+20>>2]=g;if(!e){break qa}H[f+8>>2]=0;if(!sb(f+16|0,b)){break qa}if(!ua(f+544|0,b)){break qa}if(!ua(f+564|0,b)){break qa}if(!ua(f+584|0,b)){break qa}z=H[f+4>>2];l=0;b=0;h=ca-32|0;ca=h;d=H[f+12>>2];H[h+16>>2]=0;H[h+8>>2]=0;H[h+12>>2]=0;if(d){if(d>>>0>=1073741824){break b}e=d<<2;l=pa(e);H[h+8>>2]=l;b=e+l|0;H[h+16>>2]=b;ra(l,0,e);H[h+12>>2]=b}g=H[f+628>>2];e=H[g>>2];if(e){H[g+4>>2]=e;oa(e);d=H[f+12>>2];l=H[h+8>>2];b=H[h+12>>2]}H[g+4>>2]=b;H[g>>2]=l;H[g+8>>2]=H[h+16>>2];l=0;H[h+16>>2]=0;H[h+8>>2]=0;H[h+12>>2]=0;ra:{if(d){if(d>>>0>=1073741824){break b}b=d<<2;j=pa(b);H[h+8>>2]=j;l=b+j|0;H[h+16>>2]=l;ra(j,0,b);H[h+12>>2]=l}d=H[f+640>>2];b=H[d>>2];if(b){H[d+4>>2]=b;oa(b);j=H[h+8>>2];l=H[h+12>>2]}H[d+4>>2]=l;H[d>>2]=j;H[d+8>>2]=H[h+16>>2];H[h+24>>2]=0;H[h+28>>2]=0;H[h+16>>2]=0;H[h+20>>2]=0;H[h+8>>2]=0;H[h+12>>2]=0;xa(h+8|0);d=H[h+24>>2]+H[h+28>>2]|0;b=(d>>>0)/341|0;b=H[H[h+12>>2]+(b<<2)>>2]+N(d-N(b,341)|0,12)|0;H[b+4>>2]=0;H[b+8>>2]=0;H[b>>2]=z;d=H[h+28>>2]+1|0;H[h+28>>2]=d;sa:{if(!d){break sa}x=f+604|0;y=f+16|0;while(1){n=H[h+12>>2];k=H[h+24>>2];g=d-1|0;e=k+g|0;b=(e>>>0)/341|0;b=H[n+(b<<2)>>2]+N(e-N(b,341)|0,12)|0;p=H[b+8>>2];e=H[b+4>>2];i=H[b>>2];H[h+28>>2]=g;b=H[h+16>>2];if((((b|0)!=(n|0)?N(b-n>>2,341)-1|0:0)-(d+k|0)|0)+1>>>0>=682){oa(H[b-4>>2]);H[h+16>>2]=H[h+16>>2]-4}if(i>>>0>z>>>0){break sa}b=H[f+12>>2];j=(e|0)!=(b-1|0)?e+1|0:0;if(j>>>0>=b>>>0){break sa}o=N(p,12);A=o+H[f+640>>2]|0;t=o+H[f+628>>2]|0;g=H[f>>2];q=j<<2;e=H[q+H[A>>2]>>2];ta:{ua:{if((g|0)==(e|0)){o=0;if(!i){break ua}while(1){b=H[t>>2];r=H[b+8>>2];s=H[b+4>>2];n=H[b>>2];p=H[w>>2];d=H[p+4>>2];b=H[p+8>>2];va:{if(d>>>0>>0){H[d+8>>2]=r;H[d+4>>2]=s;H[d>>2]=n;H[p+4>>2]=d+12;break va}q=H[p>>2];g=(d-q|0)/12|0;k=g+1|0;if(k>>>0>=357913942){break b}e=(b-q|0)/12|0;b=e<<1;k=e>>>0>=178956970?357913941:b>>>0>k>>>0?b:k;if(k){if(k>>>0>=357913942){break a}b=pa(N(k,12))}else{b=0}j=b+N(g,12)|0;H[j+8>>2]=r;H[j+4>>2]=s;H[j>>2]=n;e=j+12|0;if((d|0)!=(q|0)){while(1){j=j-12|0;d=d-12|0;H[j>>2]=H[d>>2];H[j+4>>2]=H[d+4>>2];H[j+8>>2]=H[d+8>>2];if((d|0)!=(q|0)){continue}break}}H[p+8>>2]=b+N(k,12);H[p+4>>2]=e;H[p>>2]=j;if(!q){break va}oa(q)}H[f+8>>2]=H[f+8>>2]+1;o=o+1|0;if((i|0)!=(o|0)){continue}break}break ua}wa:{xa:{ya:{if(i>>>0<=2){b=H[f+616>>2];H[b>>2]=j;d=1;l=H[f+12>>2];if(l>>>0>1){break ya}break wa}if(K[f+8>>2]>K[f+4>>2]){break sa}b=H[f+628>>2];s=p+1|0;r=N(s,12);d=b+r|0;if((d|0)!=(t|0)){Aa(d,H[t>>2],H[t+4>>2]);b=H[f+628>>2]}b=q+H[b+r>>2]|0;H[b>>2]=H[b>>2]+(1<>>1|0;break xa}while(1){l=Ba(y+(d<<4)|0)|l<<1;d=d+1|0;if((b|0)!=(d|0)){continue}break}d=i>>>1|0;if(l>>>0<=d>>>0){break xa}break sa}while(1){j=(l-1|0)!=(j|0)?j+1|0:0;H[b+(d<<2)>>2]=j;d=d+1|0;l=H[f+12>>2];if(d>>>0>>0){continue}break}break wa}za:{Aa:{e=d-l|0;d=i-e|0;Ba:{if((d|0)==(e|0)){b=e;break Ba}n=H[f+596>>2];if((n|0)==H[f+588>>2]){break Aa}k=H[n>>2];g=H[f+600>>2];b=g+1|0;H[f+600>>2]=b;g=k&-2147483648>>>g;Ca:{if((b|0)==32){H[f+600>>2]=0;H[f+596>>2]=n+4;if(g){break Ca}break Aa}if(!g){break Aa}}b=d}d=e;break za}b=e}n=H[f+640>>2];k=n+o|0;g=H[k>>2];e=g+q|0;H[e>>2]=H[e>>2]+1;Aa(n+r|0,g,H[k+4>>2]);if(d){g=H[h+28>>2]+H[h+24>>2]|0;e=H[h+16>>2];l=H[h+12>>2];if((g|0)==(((e|0)!=(l|0)?N(e-l>>2,341)-1|0:0)|0)){xa(h+8|0);l=H[h+12>>2];g=H[h+24>>2]+H[h+28>>2]|0}e=(g>>>0)/341|0;e=H[(e<<2)+l>>2]+N(g-N(e,341)|0,12)|0;H[e+8>>2]=p;H[e+4>>2]=j;H[e>>2]=d;H[h+28>>2]=H[h+28>>2]+1}if(!b){break ua}l=H[h+28>>2]+H[h+24>>2]|0;e=H[h+16>>2];d=H[h+12>>2];if((l|0)==(((d|0)!=(e|0)?N(e-d>>2,341)-1|0:0)|0)){xa(h+8|0);l=H[h+24>>2]+H[h+28>>2]|0;e=H[h+12>>2]}else{e=d}d=(l>>>0)/341|0;d=H[e+(d<<2)>>2]+N(l-N(d,341)|0,12)|0;H[d+8>>2]=s;H[d+4>>2]=j;H[d>>2]=b;d=H[h+28>>2]+1|0;H[h+28>>2]=d;break ta}j=0;if(!i){break ua}while(1){if(H[f+12>>2]){p=H[f+548>>2];n=H[A>>2];u=H[f+604>>2];k=H[f+616>>2];d=0;while(1){o=k+(d<<2)|0;H[u+(H[o>>2]<<2)>>2]=0;g=H[f>>2];e=H[o>>2]<<2;b=H[e+n>>2];Da:{if((g|0)==(b|0)){break Da}q=e+u|0;l=g-b|0;r=H[f+560>>2];g=32-r|0;if((l|0)<=(g|0)){e=H[f+556>>2];if((e|0)==(p|0)){break sa}H[q>>2]=H[e>>2]<>>32-l;b=l+H[f+560>>2]|0;H[f+560>>2]=b;if((b|0)!=32){break Da}H[f+560>>2]=0;H[f+556>>2]=e+4;break Da}s=H[f+556>>2];b=s+4|0;if((b|0)==(p|0)){break sa}e=H[s>>2];H[f+556>>2]=b;b=l-g|0;H[f+560>>2]=b;H[q>>2]=H[s+4>>2]>>>32-b|e<>>32-l}e=H[o>>2]<<2;b=e+u|0;H[b>>2]=H[b>>2]|H[e+H[t>>2]>>2];d=d+1|0;if(d>>>0>2]){continue}break}}jb(w,x);H[f+8>>2]=H[f+8>>2]+1;j=j+1|0;if((i|0)!=(j|0)){continue}break}}d=H[h+28>>2]}if(d){continue}break}}H[h+28>>2]=0;j=H[h+16>>2];d=H[h+12>>2];l=j-d|0;if(l>>>0>=9){while(1){oa(H[d>>2]);d=H[h+12>>2]+4|0;H[h+12>>2]=d;j=H[h+16>>2];l=j-d|0;if(l>>>0>8){continue}break}}b=170;Ea:{switch((l>>>2|0)-1|0){case 1:b=341;case 0:H[h+24>>2]=b;break;default:break Ea}}Fa:{if((d|0)==(j|0)){break Fa}while(1){oa(H[d>>2]);d=d+4|0;if((j|0)!=(d|0)){continue}break}d=H[h+16>>2];b=H[h+12>>2];if((d|0)==(b|0)){break Fa}H[h+16>>2]=d+((b-d|0)+3&-4)}b=H[h+8>>2];if(b){oa(b)}ca=h+32|0;break ra}}ab(f);break d;case 5:f=$a(B+8|0,3);w=B+664|0;k=H[b+8>>2];n=H[b+12>>2];d=H[b+20>>2];e=H[b+16>>2];g=e+4|0;d=g>>>0<4?d+1|0:d;Ga:{if(g>>>0>k>>>0&(d|0)>=(n|0)|(d|0)>(n|0)){break Ga}d=e+H[b>>2]|0;H[f>>2]=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);d=H[b+20>>2];k=d;g=H[b+16>>2];e=g+4|0;d=e>>>0<4?d+1|0:d;H[b+16>>2]=e;H[b+20>>2]=d;if(K[f>>2]>32){break Ga}n=H[b+8>>2];s=H[b+12>>2];d=k;g=g+8|0;d=g>>>0<8?d+1|0:d;if(g>>>0>n>>>0&(d|0)>=(s|0)|(d|0)>(s|0)){break Ga}d=e+H[b>>2]|0;e=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);H[f+4>>2]=e;g=H[b+20>>2];d=H[b+16>>2]+4|0;g=d>>>0<4?g+1|0:g;H[b+16>>2]=d;H[b+20>>2]=g;if(!e){break Ga}H[f+8>>2]=0;if(!sb(f+16|0,b)){break Ga}if(!ua(f+544|0,b)){break Ga}if(!ua(f+564|0,b)){break Ga}if(!ua(f+584|0,b)){break Ga}z=H[f+4>>2];l=0;b=0;h=ca-32|0;ca=h;d=H[f+12>>2];H[h+16>>2]=0;H[h+8>>2]=0;H[h+12>>2]=0;if(d){if(d>>>0>=1073741824){break b}e=d<<2;l=pa(e);H[h+8>>2]=l;b=e+l|0;H[h+16>>2]=b;ra(l,0,e);H[h+12>>2]=b}g=H[f+628>>2];e=H[g>>2];if(e){H[g+4>>2]=e;oa(e);d=H[f+12>>2];l=H[h+8>>2];b=H[h+12>>2]}H[g+4>>2]=b;H[g>>2]=l;H[g+8>>2]=H[h+16>>2];l=0;H[h+16>>2]=0;H[h+8>>2]=0;H[h+12>>2]=0;Ha:{if(d){if(d>>>0>=1073741824){break b}b=d<<2;p=pa(b);H[h+8>>2]=p;l=b+p|0;H[h+16>>2]=l;ra(p,0,b);H[h+12>>2]=l}d=H[f+640>>2];b=H[d>>2];if(b){H[d+4>>2]=b;oa(b);l=H[h+12>>2];p=H[h+8>>2]}H[d+4>>2]=l;H[d>>2]=p;H[d+8>>2]=H[h+16>>2];H[h+24>>2]=0;H[h+28>>2]=0;H[h+16>>2]=0;H[h+20>>2]=0;H[h+8>>2]=0;H[h+12>>2]=0;xa(h+8|0);d=H[h+24>>2]+H[h+28>>2]|0;b=(d>>>0)/341|0;b=H[H[h+12>>2]+(b<<2)>>2]+N(d-N(b,341)|0,12)|0;H[b+4>>2]=0;H[b+8>>2]=0;H[b>>2]=z;d=H[h+28>>2]+1|0;H[h+28>>2]=d;Ia:{if(!d){break Ia}x=f+604|0;y=f+16|0;while(1){n=H[h+12>>2];k=H[h+24>>2];g=d-1|0;e=k+g|0;b=(e>>>0)/341|0;b=H[n+(b<<2)>>2]+N(e-N(b,341)|0,12)|0;o=H[b+8>>2];e=H[b+4>>2];i=H[b>>2];H[h+28>>2]=g;b=H[h+16>>2];if((((b|0)!=(n|0)?N(b-n>>2,341)-1|0:0)-(d+k|0)|0)+1>>>0>=682){oa(H[b-4>>2]);H[h+16>>2]=H[h+16>>2]-4}if(i>>>0>z>>>0){break Ia}m=0;b=H[f+12>>2];p=(e|0)!=(b-1|0)?e+1|0:0;if(p>>>0>=b>>>0){break Ia}b=H[f+628>>2];q=N(o,12);t=b+q|0;e=H[f>>2];r=p<<2;s=q+H[f+640>>2]|0;d=H[r+H[s>>2]>>2];Ja:{Ka:{if((e|0)==(d|0)){if(!i){break Ka}while(1){b=H[t>>2];r=H[b+8>>2];s=H[b+4>>2];n=H[b>>2];o=H[w>>2];d=H[o+4>>2];b=H[o+8>>2];La:{if(d>>>0>>0){H[d+8>>2]=r;H[d+4>>2]=s;H[d>>2]=n;H[o+4>>2]=d+12;break La}q=H[o>>2];g=(d-q|0)/12|0;k=g+1|0;if(k>>>0>=357913942){break b}e=(b-q|0)/12|0;b=e<<1;k=e>>>0>=178956970?357913941:b>>>0>k>>>0?b:k;if(k){if(k>>>0>=357913942){break a}b=pa(N(k,12))}else{b=0}p=b+N(g,12)|0;H[p+8>>2]=r;H[p+4>>2]=s;H[p>>2]=n;e=p+12|0;if((d|0)!=(q|0)){while(1){p=p-12|0;d=d-12|0;H[p>>2]=H[d>>2];H[p+4>>2]=H[d+4>>2];H[p+8>>2]=H[d+8>>2];if((d|0)!=(q|0)){continue}break}}H[o+8>>2]=b+N(k,12);H[o+4>>2]=e;H[o>>2]=p;if(!q){break La}oa(q)}H[f+8>>2]=H[f+8>>2]+1;m=m+1|0;if((i|0)!=(m|0)){continue}break}break Ka}Ma:{Na:{Oa:{if(i>>>0<=2){b=H[f+616>>2];H[b>>2]=p;d=1;l=H[f+12>>2];if(l>>>0>1){break Oa}break Ma}if(K[f+8>>2]>K[f+4>>2]){break Ia}k=b;b=q+12|0;Aa(k+b|0,H[t>>2],H[t+4>>2]);b=r+H[b+H[f+628>>2]>>2]|0;H[b>>2]=H[b>>2]+(1<>>1|0;break Na}while(1){l=Ba(y+(d<<4)|0)|l<<1;d=d+1|0;if((b|0)!=(d|0)){continue}break}d=i>>>1|0;if(l>>>0<=d>>>0){break Na}break Ia}while(1){p=(l-1|0)!=(p|0)?p+1|0:0;H[b+(d<<2)>>2]=p;d=d+1|0;l=H[f+12>>2];if(d>>>0>>0){continue}break}break Ma}s=o+1|0;Pa:{Qa:{e=d-l|0;d=i-e|0;Ra:{if((d|0)==(e|0)){b=e;break Ra}n=H[f+596>>2];if((n|0)==H[f+588>>2]){break Qa}k=H[n>>2];g=H[f+600>>2];b=g+1|0;H[f+600>>2]=b;g=k&-2147483648>>>g;Sa:{if((b|0)==32){H[f+600>>2]=0;H[f+596>>2]=n+4;if(g){break Sa}break Qa}if(!g){break Qa}}b=d}d=e;break Pa}b=e}n=H[f+640>>2];k=n+q|0;g=H[k>>2];e=g+r|0;H[e>>2]=H[e>>2]+1;Aa(n+N(s,12)|0,g,H[k+4>>2]);if(d){m=H[h+28>>2]+H[h+24>>2]|0;e=H[h+16>>2];l=H[h+12>>2];if((m|0)==(((e|0)!=(l|0)?N(e-l>>2,341)-1|0:0)|0)){xa(h+8|0);m=H[h+24>>2]+H[h+28>>2]|0;l=H[h+12>>2]}e=(m>>>0)/341|0;e=H[l+(e<<2)>>2]+N(m-N(e,341)|0,12)|0;H[e+8>>2]=o;H[e+4>>2]=p;H[e>>2]=d;H[h+28>>2]=H[h+28>>2]+1}if(!b){break Ka}l=H[h+28>>2]+H[h+24>>2]|0;e=H[h+16>>2];d=H[h+12>>2];if((l|0)==(((d|0)!=(e|0)?N(e-d>>2,341)-1|0:0)|0)){xa(h+8|0);l=H[h+24>>2]+H[h+28>>2]|0;e=H[h+12>>2]}else{e=d}d=(l>>>0)/341|0;d=H[e+(d<<2)>>2]+N(l-N(d,341)|0,12)|0;H[d+8>>2]=s;H[d+4>>2]=p;H[d>>2]=b;d=H[h+28>>2]+1|0;H[h+28>>2]=d;break Ja}if(!i){break Ka}while(1){if(H[f+12>>2]){A=H[f+548>>2];n=H[s>>2];u=H[f+604>>2];k=H[f+616>>2];d=0;while(1){p=k+(d<<2)|0;H[u+(H[p>>2]<<2)>>2]=0;g=H[f>>2];e=H[p>>2]<<2;b=H[e+n>>2];Ta:{if((g|0)==(b|0)){break Ta}o=e+u|0;l=g-b|0;q=H[f+560>>2];g=32-q|0;if((l|0)<=(g|0)){e=H[f+556>>2];if((e|0)==(A|0)){break Ia}H[o>>2]=H[e>>2]<>>32-l;b=l+H[f+560>>2]|0;H[f+560>>2]=b;if((b|0)!=32){break Ta}H[f+560>>2]=0;H[f+556>>2]=e+4;break Ta}r=H[f+556>>2];b=r+4|0;if((b|0)==(A|0)){break Ia}e=H[r>>2];H[f+556>>2]=b;b=l-g|0;H[f+560>>2]=b;H[o>>2]=H[r+4>>2]>>>32-b|e<>>32-l}e=H[p>>2]<<2;b=e+u|0;H[b>>2]=H[b>>2]|H[e+H[t>>2]>>2];d=d+1|0;if(d>>>0>2]){continue}break}}jb(w,x);H[f+8>>2]=H[f+8>>2]+1;m=m+1|0;if((i|0)!=(m|0)){continue}break}}d=H[h+28>>2]}if(d){continue}break}}H[h+28>>2]=0;p=H[h+16>>2];d=H[h+12>>2];l=p-d|0;if(l>>>0>=9){while(1){oa(H[d>>2]);d=H[h+12>>2]+4|0;H[h+12>>2]=d;p=H[h+16>>2];l=p-d|0;if(l>>>0>8){continue}break}}b=170;Ua:{switch((l>>>2|0)-1|0){case 1:b=341;case 0:H[h+24>>2]=b;break;default:break Ua}}Va:{if((d|0)==(p|0)){break Va}while(1){oa(H[d>>2]);d=d+4|0;if((p|0)!=(d|0)){continue}break}d=H[h+16>>2];b=H[h+12>>2];if((d|0)==(b|0)){break Va}H[h+16>>2]=d+((b-d|0)+3&-4)}b=H[h+8>>2];if(b){oa(b)}ca=h+32|0;break Ha}}ab(f);break d;case 6:break f;default:break c}}f=$a(B+8|0,3);w=B+664|0;k=H[b+8>>2];n=H[b+12>>2];d=H[b+20>>2];e=H[b+16>>2];g=e+4|0;d=g>>>0<4?d+1|0:d;Wa:{if(g>>>0>k>>>0&(d|0)>=(n|0)|(d|0)>(n|0)){break Wa}d=e+H[b>>2]|0;H[f>>2]=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);d=H[b+20>>2];k=d;g=H[b+16>>2];e=g+4|0;d=e>>>0<4?d+1|0:d;H[b+16>>2]=e;H[b+20>>2]=d;if(K[f>>2]>32){break Wa}n=H[b+8>>2];s=H[b+12>>2];d=k;g=g+8|0;d=g>>>0<8?d+1|0:d;if(g>>>0>n>>>0&(d|0)>=(s|0)|(d|0)>(s|0)){break Wa}d=e+H[b>>2]|0;e=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);H[f+4>>2]=e;g=H[b+20>>2];d=H[b+16>>2]+4|0;g=d>>>0<4?g+1|0:g;H[b+16>>2]=d;H[b+20>>2]=g;if(!e){break Wa}H[f+8>>2]=0;if(!sb(f+16|0,b)){break Wa}if(!ua(f+544|0,b)){break Wa}if(!ua(f+564|0,b)){break Wa}if(!ua(f+584|0,b)){break Wa}z=H[f+4>>2];l=0;b=0;h=ca-32|0;ca=h;d=H[f+12>>2];H[h+16>>2]=0;H[h+8>>2]=0;H[h+12>>2]=0;if(d){if(d>>>0>=1073741824){break b}e=d<<2;l=pa(e);H[h+8>>2]=l;b=e+l|0;H[h+16>>2]=b;ra(l,0,e);H[h+12>>2]=b}g=H[f+628>>2];e=H[g>>2];if(e){H[g+4>>2]=e;oa(e);d=H[f+12>>2];l=H[h+8>>2];b=H[h+12>>2]}H[g+4>>2]=b;H[g>>2]=l;H[g+8>>2]=H[h+16>>2];l=0;H[h+16>>2]=0;H[h+8>>2]=0;H[h+12>>2]=0;Xa:{if(d){if(d>>>0>=1073741824){break b}b=d<<2;j=pa(b);H[h+8>>2]=j;l=b+j|0;H[h+16>>2]=l;ra(j,0,b);H[h+12>>2]=l}d=H[f+640>>2];b=H[d>>2];if(b){H[d+4>>2]=b;oa(b);j=H[h+8>>2];l=H[h+12>>2]}H[d+4>>2]=l;H[d>>2]=j;H[d+8>>2]=H[h+16>>2];H[h+24>>2]=0;H[h+28>>2]=0;H[h+16>>2]=0;H[h+20>>2]=0;H[h+8>>2]=0;H[h+12>>2]=0;xa(h+8|0);d=H[h+24>>2]+H[h+28>>2]|0;b=(d>>>0)/341|0;b=H[H[h+12>>2]+(b<<2)>>2]+N(d-N(b,341)|0,12)|0;H[b+4>>2]=0;H[b+8>>2]=0;H[b>>2]=z;d=H[h+28>>2]+1|0;H[h+28>>2]=d;Ya:{if(!d){break Ya}x=f+604|0;y=f+16|0;while(1){n=H[h+12>>2];k=H[h+24>>2];g=d-1|0;e=k+g|0;b=(e>>>0)/341|0;b=H[n+(b<<2)>>2]+N(e-N(b,341)|0,12)|0;p=H[b+8>>2];i=H[b>>2];H[h+28>>2]=g;b=H[h+16>>2];if((((b|0)!=(n|0)?N(b-n>>2,341)-1|0:0)-(d+k|0)|0)+1>>>0>=682){oa(H[b-4>>2]);H[h+16>>2]=H[h+16>>2]-4}if(i>>>0>z>>>0){break Ya}b=H[f+628>>2];o=N(p,12);A=o+H[f+640>>2]|0;j=Vd(f,i,A);if(j>>>0>=K[f+12>>2]){break Ya}t=b+o|0;g=H[f>>2];q=j<<2;e=H[q+H[A>>2]>>2];Za:{_a:{if((g|0)==(e|0)){o=0;if(!i){break _a}while(1){b=H[t>>2];r=H[b+8>>2];s=H[b+4>>2];n=H[b>>2];p=H[w>>2];d=H[p+4>>2];b=H[p+8>>2];$a:{if(d>>>0>>0){H[d+8>>2]=r;H[d+4>>2]=s;H[d>>2]=n;H[p+4>>2]=d+12;break $a}q=H[p>>2];g=(d-q|0)/12|0;k=g+1|0;if(k>>>0>=357913942){break b}e=(b-q|0)/12|0;b=e<<1;k=e>>>0>=178956970?357913941:b>>>0>k>>>0?b:k;if(k){if(k>>>0>=357913942){break a}b=pa(N(k,12))}else{b=0}j=b+N(g,12)|0;H[j+8>>2]=r;H[j+4>>2]=s;H[j>>2]=n;e=j+12|0;if((d|0)!=(q|0)){while(1){j=j-12|0;d=d-12|0;H[j>>2]=H[d>>2];H[j+4>>2]=H[d+4>>2];H[j+8>>2]=H[d+8>>2];if((d|0)!=(q|0)){continue}break}}H[p+8>>2]=b+N(k,12);H[p+4>>2]=e;H[p>>2]=j;if(!q){break $a}oa(q)}H[f+8>>2]=H[f+8>>2]+1;o=o+1|0;if((i|0)!=(o|0)){continue}break}break _a}ab:{bb:{cb:{if(i>>>0<=2){b=H[f+616>>2];H[b>>2]=j;d=1;l=H[f+12>>2];if(l>>>0>1){break cb}break ab}if(K[f+8>>2]>K[f+4>>2]){break Ya}b=H[f+628>>2];s=p+1|0;r=N(s,12);d=b+r|0;if((d|0)!=(t|0)){Aa(d,H[t>>2],H[t+4>>2]);b=H[f+628>>2]}b=q+H[b+r>>2]|0;H[b>>2]=H[b>>2]+(1<>>1|0;break bb}while(1){l=Ba(y+(d<<4)|0)|l<<1;d=d+1|0;if((b|0)!=(d|0)){continue}break}d=i>>>1|0;if(l>>>0<=d>>>0){break bb}break Ya}while(1){j=(l-1|0)!=(j|0)?j+1|0:0;H[b+(d<<2)>>2]=j;d=d+1|0;l=H[f+12>>2];if(d>>>0>>0){continue}break}break ab}db:{eb:{e=d-l|0;d=i-e|0;fb:{if((d|0)==(e|0)){b=e;break fb}n=H[f+596>>2];if((n|0)==H[f+588>>2]){break eb}k=H[n>>2];g=H[f+600>>2];b=g+1|0;H[f+600>>2]=b;g=k&-2147483648>>>g;gb:{if((b|0)==32){H[f+600>>2]=0;H[f+596>>2]=n+4;if(g){break gb}break eb}if(!g){break eb}}b=d}d=e;break db}b=e}n=H[f+640>>2];k=n+o|0;g=H[k>>2];e=g+q|0;H[e>>2]=H[e>>2]+1;Aa(n+r|0,g,H[k+4>>2]);if(d){g=H[h+28>>2]+H[h+24>>2]|0;e=H[h+16>>2];l=H[h+12>>2];if((g|0)==(((e|0)!=(l|0)?N(e-l>>2,341)-1|0:0)|0)){xa(h+8|0);l=H[h+12>>2];g=H[h+24>>2]+H[h+28>>2]|0}e=(g>>>0)/341|0;e=H[(e<<2)+l>>2]+N(g-N(e,341)|0,12)|0;H[e+8>>2]=p;H[e+4>>2]=j;H[e>>2]=d;H[h+28>>2]=H[h+28>>2]+1}if(!b){break _a}l=H[h+28>>2]+H[h+24>>2]|0;e=H[h+16>>2];d=H[h+12>>2];if((l|0)==(((d|0)!=(e|0)?N(e-d>>2,341)-1|0:0)|0)){xa(h+8|0);l=H[h+24>>2]+H[h+28>>2]|0;e=H[h+12>>2]}else{e=d}d=(l>>>0)/341|0;d=H[e+(d<<2)>>2]+N(l-N(d,341)|0,12)|0;H[d+8>>2]=s;H[d+4>>2]=j;H[d>>2]=b;d=H[h+28>>2]+1|0;H[h+28>>2]=d;break Za}j=0;if(!i){break _a}while(1){if(H[f+12>>2]){p=H[f+548>>2];n=H[A>>2];u=H[f+604>>2];k=H[f+616>>2];d=0;while(1){o=k+(d<<2)|0;H[u+(H[o>>2]<<2)>>2]=0;g=H[f>>2];e=H[o>>2]<<2;b=H[e+n>>2];hb:{if((g|0)==(b|0)){break hb}q=e+u|0;l=g-b|0;r=H[f+560>>2];g=32-r|0;if((l|0)<=(g|0)){e=H[f+556>>2];if((e|0)==(p|0)){break Ya}H[q>>2]=H[e>>2]<>>32-l;b=l+H[f+560>>2]|0;H[f+560>>2]=b;if((b|0)!=32){break hb}H[f+560>>2]=0;H[f+556>>2]=e+4;break hb}s=H[f+556>>2];b=s+4|0;if((b|0)==(p|0)){break Ya}e=H[s>>2];H[f+556>>2]=b;b=l-g|0;H[f+560>>2]=b;H[q>>2]=H[s+4>>2]>>>32-b|e<>>32-l}e=H[o>>2]<<2;b=e+u|0;H[b>>2]=H[b>>2]|H[e+H[t>>2]>>2];d=d+1|0;if(d>>>0>2]){continue}break}}jb(w,x);H[f+8>>2]=H[f+8>>2]+1;j=j+1|0;if((i|0)!=(j|0)){continue}break}}d=H[h+28>>2]}if(d){continue}break}}H[h+28>>2]=0;j=H[h+16>>2];d=H[h+12>>2];l=j-d|0;if(l>>>0>=9){while(1){oa(H[d>>2]);d=H[h+12>>2]+4|0;H[h+12>>2]=d;j=H[h+16>>2];l=j-d|0;if(l>>>0>8){continue}break}}b=170;ib:{switch((l>>>2|0)-1|0){case 1:b=341;case 0:H[h+24>>2]=b;break;default:break ib}}jb:{if((d|0)==(j|0)){break jb}while(1){oa(H[d>>2]);d=d+4|0;if((j|0)!=(d|0)){continue}break}d=H[h+16>>2];b=H[h+12>>2];if((d|0)==(b|0)){break jb}H[h+16>>2]=d+((b-d|0)+3&-4)}b=H[h+8>>2];if(b){oa(b)}ca=h+32|0;break Xa}}ab(f)}n=H[a+12>>2]==((H[c+4>>2]-H[c>>2]|0)/12|0)}ca=B+672|0;return n}sa();v()}wa();v()}function kd(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;if(!a){return 1}e=H[c+20>>2];g=H[c+12>>2];i=H[c+16>>2];a:{if((e|0)>=(g|0)&i>>>0>=K[c+8>>2]|(e|0)>(g|0)){break a}g=I[i+H[c>>2]|0];i=i+1|0;e=i?e:e+1|0;H[c+16>>2]=i;H[c+20>>2]=e;b:{switch(g|0){case 0:e=a;f=b;i=d;a=0;d=0;m=ca+-64|0;ca=m;H[m+56>>2]=0;H[m+48>>2]=0;H[m+52>>2]=0;H[m+40>>2]=0;H[m+44>>2]=0;H[m+32>>2]=0;H[m+36>>2]=0;H[m+24>>2]=0;H[m+28>>2]=0;H[m+16>>2]=0;H[m+20>>2]=0;H[m+8>>2]=0;H[m+12>>2]=0;c:{if(!Ne(m+8|0,c)){break c}if(!Me(m+8|0,c)|(H[m+20>>2]?0:e)){break c}Db(c,0,0);if(e){s=f<<2;t=H[m+36>>2];w=H[m+48>>2];x=H[m+24>>2];l=H[m+56>>2];j=H[m+52>>2];while(1){d:{if(l>>>0>16383){break d}while(1){if((j|0)<=0){break d}j=j-1|0;H[m+52>>2]=j;l=I[j+w|0]|l<<8;H[m+56>>2]=l;if(l>>>0<16384){continue}break}}a=l&4095;r=H[(a<<2)+x>>2];b=(r<<3)+t|0;l=(N(H[b>>2],l>>>12|0)+a|0)-H[b+4>>2]|0;H[m+56>>2]=l;if((f|0)>0){a=0;if(!I[c+36|0]|r>>>0>32){break c}g=d+f|0;e:{if(!r){ra(i+(d<<2)|0,0,s);break e}y=r&-2;z=r&1;b=H[c+32>>2];h=H[c+28>>2];n=H[c+24>>2];while(1){k=0;a=b;o=0;q=0;if((r|0)!=1){while(1){p=n+(a>>>3|0)|0;f:{if(p>>>0>=h>>>0){p=0;break f}p=I[p|0];b=a+1|0;H[c+32>>2]=b;p=p>>>(a&7)&1;a=b}p=p<>>3|0)|0;if(u>>>0>>0){o=I[u|0];b=a+1|0;H[c+32>>2]=b;o=o>>>(a&7)&1;a=b}u=k|1;k=k+2|0;o=p|o<>>3|0)|0;if(p>>>0>>0){p=I[p|0];b=a+1|0;H[c+32>>2]=b;a=p>>>(a&7)&1}else{a=0}o=a<>2]=o;d=d+1|0;if((g|0)!=(d|0)){continue}break}}d=g}v=f+v|0;if(e>>>0>v>>>0){continue}break}}F[c+36|0]=0;b=H[c+20>>2];e=0;d=H[c+32>>2]+7|0;e=d>>>0<7?1:e;d=(e&7)<<29|d>>>3;a=d+H[c+16>>2]|0;e=(e>>>3|0)+b|0;H[c+16>>2]=a;H[c+20>>2]=a>>>0>>0?e+1|0:e;a=1}b=H[m+36>>2];if(b){H[m+40>>2]=b;oa(b)}b=H[m+24>>2];if(b){H[m+28>>2]=b;oa(b)}b=H[m+8>>2];if(b){H[m+12>>2]=b;oa(b)}ca=m- -64|0;return a;case 1:break b;default:break a}}b=0;e=H[c+20>>2];g=H[c+12>>2];i=H[c+16>>2];g:{if((e|0)>=(g|0)&i>>>0>=K[c+8>>2]|(e|0)>(g|0)){break g}g=I[i+H[c>>2]|0];i=i+1|0;e=i?e:e+1|0;H[c+16>>2]=i;H[c+20>>2]=e;h:{switch(g-1|0){case 8:g=a;r=d;i=ca+-64|0;ca=i;H[i+56>>2]=0;H[i+48>>2]=0;H[i+52>>2]=0;H[i+40>>2]=0;H[i+44>>2]=0;H[i+32>>2]=0;H[i+36>>2]=0;H[i+24>>2]=0;H[i+28>>2]=0;H[i+16>>2]=0;H[i+20>>2]=0;H[i+8>>2]=0;H[i+12>>2]=0;j=i+8|0;a=J[c+38>>1];i:{j:{if(!a){break j}k:{if(a>>>0<=511){d=H[c+8>>2];b=H[c+12>>2];e=H[c+20>>2];a=H[c+16>>2];f=a+4|0;e=f>>>0<4?e+1|0:e;if(d>>>0>>0&(b|0)<=(e|0)|(b|0)<(e|0)){break j}a=a+H[c>>2]|0;h=I[a|0]|I[a+1|0]<<8|(I[a+2|0]<<16|I[a+3|0]<<24);H[j+12>>2]=h;e=H[c+20>>2];f=H[c+16>>2]+4|0;e=f>>>0<4?e+1|0:e;H[c+16>>2]=f;H[c+20>>2]=e;break k}if(!hb(1,j+12|0,c)){break j}f=H[c+16>>2];e=H[c+20>>2];h=H[j+12>>2]}a=H[c+8>>2];d=a-f|0;a=H[c+12>>2]-((a>>>0>>0)+e|0)|0;if(d>>>0>>6>>>0&(a|0)<=0|(a|0)<0){break j}b=H[j>>2];a=H[j+4>>2]-b>>2;l:{if(a>>>0>>0){ya(j,h-a|0);h=H[j+12>>2];break l}if(a>>>0<=h>>>0){break l}H[j+4>>2]=b+(h<<2)}d=1;if(!h){break i}f=H[c+16>>2];e=H[c+20>>2];s=H[j>>2];m=H[c+8>>2];n=H[c+12>>2];b=0;while(1){d=0;if((e|0)>=(n|0)&f>>>0>=m>>>0|(e|0)>(n|0)){break i}d=H[c>>2];p=I[d+f|0];f=f+1|0;e=f?e:e+1|0;H[c+16>>2]=f;H[c+20>>2]=e;a=p>>>2|0;l=0;m:{n:{o:{p:{t=p&3;switch(t|0){case 0:break n;case 3:break p;default:break o}}a=a+b|0;d=0;if(a>>>0>=h>>>0){break i}ra(s+(b<<2)|0,0,(p&252)+4|0);b=a;break m}while(1){if((f|0)==(m|0)&(e|0)==(n|0)){break j}h=I[d+f|0];f=f+1|0;e=f?e:e+1|0;H[c+16>>2]=f;H[c+20>>2]=e;a=h<<(l<<3|6)|a;l=l+1|0;if((t|0)!=(l|0)){continue}break}}H[s+(b<<2)>>2]=a}b=b+1|0;h=H[j+12>>2];if(b>>>0>>0){continue}break}a=j+16|0;n=H[j>>2];d=H[j+16>>2];b=H[j+20>>2]-d|0;q:{if(b>>>0<=32767){ya(a,8192-(b>>>2|0)|0);break q}if((b|0)==32768){break q}H[j+20>>2]=d+32768}d=j+28|0;b=H[d>>2];f=H[j+32>>2]-b>>3;r:{if(f>>>0>>0){ob(d,h-f|0);b=H[d>>2];break r}if(f>>>0>h>>>0){H[j+32>>2]=(h<<3)+b}if(!h){break j}}m=H[a>>2];f=0;d=0;while(1){e=n+(f<<2)|0;j=H[e>>2];l=(f<<3)+b|0;a=d;H[l+4>>2]=a;H[l>>2]=j;e=H[e>>2];d=e+a|0;if(d>>>0>8192){break j}s:{if(a>>>0>=d>>>0){break s}l=0;j=e&7;if(j){while(1){H[m+(a<<2)>>2]=f;a=a+1|0;l=l+1|0;if((j|0)!=(l|0)){continue}break}}if(e-1>>>0<=6){break s}while(1){e=m+(a<<2)|0;H[e>>2]=f;H[e+28>>2]=f;H[e+24>>2]=f;H[e+20>>2]=f;H[e+16>>2]=f;H[e+12>>2]=f;H[e+8>>2]=f;H[e+4>>2]=f;a=a+8|0;if((d|0)!=(a|0)){continue}break}}f=f+1|0;if((h|0)!=(f|0)){continue}break}k=(d|0)==8192}d=k}t:{if(!d|(H[i+20>>2]?0:g)){break t}d=0;m=ca-16|0;ca=m;u:{v:{if(J[c+38>>1]<=511){b=H[c+8>>2];a=H[c+12>>2];h=a;e=H[c+20>>2];k=H[c+16>>2];f=k+8|0;e=f>>>0<8?e+1|0:e;if(b>>>0>>0&(a|0)<=(e|0)|(a|0)<(e|0)){break u}k=k+H[c>>2]|0;a=I[k|0]|I[k+1|0]<<8|(I[k+2|0]<<16|I[k+3|0]<<24);k=I[k+4|0]|I[k+5|0]<<8|(I[k+6|0]<<16|I[k+7|0]<<24);H[c+16>>2]=f;H[c+20>>2]=e;break v}if(!gb(1,m+8|0,c)){break u}f=H[c+16>>2];e=H[c+20>>2];b=H[c+8>>2];h=H[c+12>>2];a=H[m+8>>2];k=H[m+12>>2]}j=b-f|0;b=h-((b>>>0>>0)+e|0)|0;if((b|0)==(k|0)&a>>>0>j>>>0|b>>>0>>0){break u}e=e+k|0;b=a+f|0;e=b>>>0>>0?e+1|0:e;H[c+16>>2]=b;H[c+20>>2]=e;if((a|0)<=0){break u}b=H[c>>2]+f|0;H[i+48>>2]=b;c=a-1|0;f=c+b|0;e=I[f|0];w:{if(e>>>0<=63){H[i+52>>2]=c;a=I[f|0]&63;break w}x:{switch((e>>>6|0)-1|0){case 0:if(a>>>0<2){break u}a=a-2|0;H[i+52>>2]=a;a=a+b|0;a=I[a+1|0]<<8&16128|I[a|0];break w;case 1:if(a>>>0<3){break u}a=a-3|0;H[i+52>>2]=a;a=a+b|0;a=I[a+1|0]<<8|I[a+2|0]<<16&4128768|I[a|0];break w;default:break x}}a=a-4|0;H[i+52>>2]=a;a=a+b|0;a=(I[a|0]|I[a+1|0]<<8|(I[a+2|0]<<16|I[a+3|0]<<24))&1073741823}H[i+56>>2]=a+32768;d=a>>>0<8355840}ca=m+16|0;if(!d){break t}if(!g){o=1;break t}b=H[i+52>>2];a=H[i+56>>2];c=H[i+36>>2];d=H[i+48>>2];f=H[i+24>>2];while(1){y:{if(a>>>0>32767){break y}while(1){if((b|0)<=0){break y}b=b-1|0;H[i+52>>2]=b;a=I[b+d|0]|a<<8;H[i+56>>2]=a;if(a>>>0<32768){continue}break}}e=a&8191;o=H[f+(e<<2)>>2];k=c+(o<<3)|0;a=(N(H[k>>2],a>>>13|0)+e|0)-H[k+4>>2]|0;H[i+56>>2]=a;H[r+(q<<2)>>2]=o;o=1;q=q+1|0;if((g|0)!=(q|0)){continue}break}}a=H[i+36>>2];if(a){H[i+40>>2]=a;oa(a)}a=H[i+24>>2];if(a){H[i+28>>2]=a;oa(a)}a=H[i+8>>2];if(a){H[i+12>>2]=a;oa(a)}ca=i- -64|0;b=o;break g;case 9:m=a;r=d;g=ca+-64|0;ca=g;H[g+56>>2]=0;H[g+48>>2]=0;H[g+52>>2]=0;H[g+40>>2]=0;H[g+44>>2]=0;H[g+32>>2]=0;H[g+36>>2]=0;H[g+24>>2]=0;H[g+28>>2]=0;H[g+16>>2]=0;H[g+20>>2]=0;H[g+8>>2]=0;H[g+12>>2]=0;j=g+8|0;a=J[c+38>>1];z:{A:{if(!a){break A}B:{if(a>>>0<=511){d=H[c+8>>2];b=H[c+12>>2];e=H[c+20>>2];a=H[c+16>>2];f=a+4|0;e=f>>>0<4?e+1|0:e;if(d>>>0>>0&(b|0)<=(e|0)|(b|0)<(e|0)){break A}a=a+H[c>>2]|0;h=I[a|0]|I[a+1|0]<<8|(I[a+2|0]<<16|I[a+3|0]<<24);H[j+12>>2]=h;e=H[c+20>>2];f=H[c+16>>2]+4|0;e=f>>>0<4?e+1|0:e;H[c+16>>2]=f;H[c+20>>2]=e;break B}if(!hb(1,j+12|0,c)){break A}f=H[c+16>>2];e=H[c+20>>2];h=H[j+12>>2]}a=H[c+8>>2];d=a-f|0;a=H[c+12>>2]-((a>>>0>>0)+e|0)|0;if(d>>>0>>6>>>0&(a|0)<=0|(a|0)<0){break A}b=H[j>>2];a=H[j+4>>2]-b>>2;C:{if(a>>>0>>0){ya(j,h-a|0);h=H[j+12>>2];break C}if(a>>>0<=h>>>0){break C}H[j+4>>2]=b+(h<<2)}d=1;if(!h){break z}f=H[c+16>>2];e=H[c+20>>2];s=H[j>>2];i=H[c+8>>2];n=H[c+12>>2];b=0;while(1){d=0;if((e|0)>=(n|0)&f>>>0>=i>>>0|(e|0)>(n|0)){break z}d=H[c>>2];p=I[d+f|0];f=f+1|0;e=f?e:e+1|0;H[c+16>>2]=f;H[c+20>>2]=e;a=p>>>2|0;l=0;D:{E:{F:{G:{t=p&3;switch(t|0){case 0:break E;case 3:break G;default:break F}}a=a+b|0;d=0;if(a>>>0>=h>>>0){break z}ra(s+(b<<2)|0,0,(p&252)+4|0);b=a;break D}while(1){if((f|0)==(i|0)&(e|0)==(n|0)){break A}h=I[d+f|0];f=f+1|0;e=f?e:e+1|0;H[c+16>>2]=f;H[c+20>>2]=e;a=h<<(l<<3|6)|a;l=l+1|0;if((t|0)!=(l|0)){continue}break}}H[s+(b<<2)>>2]=a}b=b+1|0;h=H[j+12>>2];if(b>>>0>>0){continue}break}a=j+16|0;n=H[j>>2];d=H[j+16>>2];b=H[j+20>>2]-d|0;H:{if(b>>>0<=131071){ya(a,32768-(b>>>2|0)|0);break H}if((b|0)==131072){break H}H[j+20>>2]=d+131072}d=j+28|0;b=H[d>>2];f=H[j+32>>2]-b>>3;I:{if(f>>>0>>0){ob(d,h-f|0);b=H[d>>2];break I}if(f>>>0>h>>>0){H[j+32>>2]=(h<<3)+b}if(!h){break A}}i=H[a>>2];f=0;d=0;while(1){e=n+(f<<2)|0;j=H[e>>2];l=(f<<3)+b|0;a=d;H[l+4>>2]=a;H[l>>2]=j;e=H[e>>2];d=e+a|0;if(d>>>0>32768){break A}J:{if(a>>>0>=d>>>0){break J}l=0;j=e&7;if(j){while(1){H[i+(a<<2)>>2]=f;a=a+1|0;l=l+1|0;if((j|0)!=(l|0)){continue}break}}if(e-1>>>0<=6){break J}while(1){e=i+(a<<2)|0;H[e>>2]=f;H[e+28>>2]=f;H[e+24>>2]=f;H[e+20>>2]=f;H[e+16>>2]=f;H[e+12>>2]=f;H[e+8>>2]=f;H[e+4>>2]=f;a=a+8|0;if((d|0)!=(a|0)){continue}break}}f=f+1|0;if((h|0)!=(f|0)){continue}break}k=(d|0)==32768}d=k}K:{if(!d|(H[g+20>>2]?0:m)){break K}d=0;j=ca-16|0;ca=j;L:{M:{if(J[c+38>>1]<=511){b=H[c+8>>2];a=H[c+12>>2];h=a;e=H[c+20>>2];k=H[c+16>>2];f=k+8|0;e=f>>>0<8?e+1|0:e;if(b>>>0>>0&(a|0)<=(e|0)|(a|0)<(e|0)){break L}k=k+H[c>>2]|0;a=I[k|0]|I[k+1|0]<<8|(I[k+2|0]<<16|I[k+3|0]<<24);k=I[k+4|0]|I[k+5|0]<<8|(I[k+6|0]<<16|I[k+7|0]<<24);H[c+16>>2]=f;H[c+20>>2]=e;break M}if(!gb(1,j+8|0,c)){break L}f=H[c+16>>2];e=H[c+20>>2];b=H[c+8>>2];h=H[c+12>>2];a=H[j+8>>2];k=H[j+12>>2]}i=b-f|0;b=h-((b>>>0>>0)+e|0)|0;if((b|0)==(k|0)&a>>>0>i>>>0|b>>>0>>0){break L}i=e+k|0;b=a+f|0;i=b>>>0>>0?i+1|0:i;H[c+16>>2]=b;H[c+20>>2]=i;if((a|0)<=0){break L}b=H[c>>2]+f|0;H[g+48>>2]=b;c=a-1|0;f=c+b|0;e=I[f|0];N:{if(e>>>0<=63){H[g+52>>2]=c;a=I[f|0]&63;break N}O:{switch((e>>>6|0)-1|0){case 0:if(a>>>0<2){break L}a=a-2|0;H[g+52>>2]=a;a=a+b|0;a=I[a+1|0]<<8&16128|I[a|0];break N;case 1:if(a>>>0<3){break L}a=a-3|0;H[g+52>>2]=a;a=a+b|0;a=I[a+1|0]<<8|I[a+2|0]<<16&4128768|I[a|0];break N;default:break O}}a=a-4|0;H[g+52>>2]=a;a=a+b|0;a=(I[a|0]|I[a+1|0]<<8|(I[a+2|0]<<16|I[a+3|0]<<24))&1073741823}H[g+56>>2]=a+131072;d=a>>>0<33423360}ca=j+16|0;if(!d){break K}if(!m){o=1;break K}b=H[g+52>>2];a=H[g+56>>2];c=H[g+36>>2];d=H[g+48>>2];f=H[g+24>>2];while(1){P:{if(a>>>0>131071){break P}while(1){if((b|0)<=0){break P}b=b-1|0;H[g+52>>2]=b;a=I[b+d|0]|a<<8;H[g+56>>2]=a;if(a>>>0<131072){continue}break}}e=a&32767;o=H[f+(e<<2)>>2];k=c+(o<<3)|0;a=(N(H[k>>2],a>>>15|0)+e|0)-H[k+4>>2]|0;H[g+56>>2]=a;H[r+(q<<2)>>2]=o;o=1;q=q+1|0;if((m|0)!=(q|0)){continue}break}}a=H[g+36>>2];if(a){H[g+40>>2]=a;oa(a)}a=H[g+24>>2];if(a){H[g+28>>2]=a;oa(a)}a=H[g+8>>2];if(a){H[g+12>>2]=a;oa(a)}ca=g- -64|0;b=o;break g;case 10:m=a;j=d;g=ca+-64|0;ca=g;H[g+56>>2]=0;H[g+48>>2]=0;H[g+52>>2]=0;H[g+40>>2]=0;H[g+44>>2]=0;H[g+32>>2]=0;H[g+36>>2]=0;H[g+24>>2]=0;H[g+28>>2]=0;H[g+16>>2]=0;H[g+20>>2]=0;H[g+8>>2]=0;H[g+12>>2]=0;n=g+8|0;a=J[c+38>>1];Q:{R:{if(!a){break R}S:{if(a>>>0<=511){d=H[c+8>>2];b=H[c+12>>2];e=H[c+20>>2];a=H[c+16>>2];f=a+4|0;e=f>>>0<4?e+1|0:e;if(d>>>0>>0&(b|0)<=(e|0)|(b|0)<(e|0)){break R}a=a+H[c>>2]|0;h=I[a|0]|I[a+1|0]<<8|(I[a+2|0]<<16|I[a+3|0]<<24);H[n+12>>2]=h;e=H[c+20>>2];f=H[c+16>>2]+4|0;e=f>>>0<4?e+1|0:e;H[c+16>>2]=f;H[c+20>>2]=e;break S}if(!hb(1,n+12|0,c)){break R}f=H[c+16>>2];e=H[c+20>>2];h=H[n+12>>2]}a=H[c+8>>2];d=a-f|0;a=H[c+12>>2]-((a>>>0>>0)+e|0)|0;if(d>>>0>>6>>>0&(a|0)<=0|(a|0)<0){break R}b=H[n>>2];a=H[n+4>>2]-b>>2;T:{if(a>>>0>>0){ya(n,h-a|0);h=H[n+12>>2];break T}if(a>>>0<=h>>>0){break T}H[n+4>>2]=b+(h<<2)}d=1;if(!h){break Q}f=H[c+16>>2];e=H[c+20>>2];t=H[n>>2];r=H[c+8>>2];p=H[c+12>>2];b=0;while(1){d=0;if((e|0)>=(p|0)&f>>>0>=r>>>0|(e|0)>(p|0)){break Q}d=H[c>>2];s=I[d+f|0];f=f+1|0;i=f?e:e+1|0;H[c+16>>2]=f;e=i;H[c+20>>2]=e;a=s>>>2|0;l=0;U:{V:{W:{X:{i=s&3;switch(i|0){case 0:break V;case 3:break X;default:break W}}a=a+b|0;d=0;if(a>>>0>=h>>>0){break Q}ra(t+(b<<2)|0,0,(s&252)+4|0);b=a;break U}while(1){if((f|0)==(r|0)&(e|0)==(p|0)){break R}h=I[d+f|0];f=f+1|0;e=f?e:e+1|0;H[c+16>>2]=f;H[c+20>>2]=e;a=h<<(l<<3|6)|a;l=l+1|0;if((i|0)!=(l|0)){continue}break}}H[t+(b<<2)>>2]=a}b=b+1|0;h=H[n+12>>2];if(b>>>0>>0){continue}break}a=n+16|0;r=H[n>>2];d=H[n+16>>2];b=H[n+20>>2]-d|0;Y:{if(b>>>0<=262143){ya(a,65536-(b>>>2|0)|0);break Y}if((b|0)==262144){break Y}H[n+20>>2]=d+262144}d=n+28|0;b=H[d>>2];f=H[n+32>>2]-b>>3;Z:{if(f>>>0>>0){ob(d,h-f|0);b=H[d>>2];break Z}if(f>>>0>h>>>0){H[n+32>>2]=(h<<3)+b}if(!h){break R}}i=H[a>>2];f=0;d=0;while(1){e=r+(f<<2)|0;l=H[e>>2];n=(f<<3)+b|0;a=d;H[n+4>>2]=a;H[n>>2]=l;e=H[e>>2];d=e+a|0;if(d>>>0>65536){break R}_:{if(a>>>0>=d>>>0){break _}l=0;n=e&7;if(n){while(1){H[i+(a<<2)>>2]=f;a=a+1|0;l=l+1|0;if((n|0)!=(l|0)){continue}break}}if(e-1>>>0<=6){break _}while(1){e=i+(a<<2)|0;H[e>>2]=f;H[e+28>>2]=f;H[e+24>>2]=f;H[e+20>>2]=f;H[e+16>>2]=f;H[e+12>>2]=f;H[e+8>>2]=f;H[e+4>>2]=f;a=a+8|0;if((d|0)!=(a|0)){continue}break}}f=f+1|0;if((h|0)!=(f|0)){continue}break}k=(d|0)==65536}d=k}$:{if(!d|(H[g+20>>2]?0:m)){break $}d=0;i=ca-16|0;ca=i;aa:{ba:{if(J[c+38>>1]<=511){b=H[c+8>>2];a=H[c+12>>2];h=a;e=H[c+20>>2];k=H[c+16>>2];f=k+8|0;e=f>>>0<8?e+1|0:e;if(b>>>0>>0&(a|0)<=(e|0)|(a|0)<(e|0)){break aa}k=k+H[c>>2]|0;a=I[k|0]|I[k+1|0]<<8|(I[k+2|0]<<16|I[k+3|0]<<24);k=I[k+4|0]|I[k+5|0]<<8|(I[k+6|0]<<16|I[k+7|0]<<24);H[c+16>>2]=f;H[c+20>>2]=e;break ba}if(!gb(1,i+8|0,c)){break aa}f=H[c+16>>2];e=H[c+20>>2];b=H[c+8>>2];h=H[c+12>>2];a=H[i+8>>2];k=H[i+12>>2]}r=b-f|0;b=h-((b>>>0>>0)+e|0)|0;if((b|0)==(k|0)&a>>>0>r>>>0|b>>>0>>0){break aa}e=e+k|0;b=a+f|0;e=b>>>0>>0?e+1|0:e;H[c+16>>2]=b;H[c+20>>2]=e;if((a|0)<=0){break aa}b=H[c>>2]+f|0;H[g+48>>2]=b;c=a-1|0;f=c+b|0;e=I[f|0];ca:{if(e>>>0<=63){H[g+52>>2]=c;a=I[f|0]&63;break ca}da:{switch((e>>>6|0)-1|0){case 0:if(a>>>0<2){break aa}a=a-2|0;H[g+52>>2]=a;a=a+b|0;a=I[a+1|0]<<8&16128|I[a|0];break ca;case 1:if(a>>>0<3){break aa}a=a-3|0;H[g+52>>2]=a;a=a+b|0;a=I[a+1|0]<<8|I[a+2|0]<<16&4128768|I[a|0];break ca;default:break da}}a=a-4|0;H[g+52>>2]=a;a=a+b|0;a=(I[a|0]|I[a+1|0]<<8|(I[a+2|0]<<16|I[a+3|0]<<24))&1073741823}H[g+56>>2]=a+262144;d=a>>>0<66846720}ca=i+16|0;if(!d){break $}if(!m){o=1;break $}b=H[g+52>>2];a=H[g+56>>2];c=H[g+36>>2];d=H[g+48>>2];f=H[g+24>>2];while(1){ea:{if(a>>>0>262143){break ea}while(1){if((b|0)<=0){break ea}b=b-1|0;H[g+52>>2]=b;a=I[b+d|0]|a<<8;H[g+56>>2]=a;if(a>>>0<262144){continue}break}}e=a&65535;o=H[f+(e<<2)>>2];k=c+(o<<3)|0;a=(N(H[k>>2],a>>>16|0)+e|0)-H[k+4>>2]|0;H[g+56>>2]=a;H[j+(q<<2)>>2]=o;o=1;q=q+1|0;if((m|0)!=(q|0)){continue}break}}a=H[g+36>>2];if(a){H[g+40>>2]=a;oa(a)}a=H[g+24>>2];if(a){H[g+28>>2]=a;oa(a)}a=H[g+8>>2];if(a){H[g+12>>2]=a;oa(a)}ca=g- -64|0;b=o;break g;case 11:m=a;r=d;g=ca+-64|0;ca=g;H[g+56>>2]=0;H[g+48>>2]=0;H[g+52>>2]=0;H[g+40>>2]=0;H[g+44>>2]=0;H[g+32>>2]=0;H[g+36>>2]=0;H[g+24>>2]=0;H[g+28>>2]=0;H[g+16>>2]=0;H[g+20>>2]=0;H[g+8>>2]=0;H[g+12>>2]=0;j=g+8|0;a=J[c+38>>1];fa:{ga:{if(!a){break ga}ha:{if(a>>>0<=511){d=H[c+8>>2];b=H[c+12>>2];e=H[c+20>>2];a=H[c+16>>2];f=a+4|0;e=f>>>0<4?e+1|0:e;if(d>>>0>>0&(b|0)<=(e|0)|(b|0)<(e|0)){break ga}a=a+H[c>>2]|0;h=I[a|0]|I[a+1|0]<<8|(I[a+2|0]<<16|I[a+3|0]<<24);H[j+12>>2]=h;i=H[c+20>>2];f=H[c+16>>2]+4|0;i=f>>>0<4?i+1|0:i;H[c+16>>2]=f;e=i;H[c+20>>2]=e;break ha}if(!hb(1,j+12|0,c)){break ga}f=H[c+16>>2];e=H[c+20>>2];h=H[j+12>>2]}a=H[c+8>>2];d=a-f|0;a=H[c+12>>2]-((a>>>0>>0)+e|0)|0;if(d>>>0>>6>>>0&(a|0)<=0|(a|0)<0){break ga}b=H[j>>2];a=H[j+4>>2]-b>>2;ia:{if(a>>>0>>0){ya(j,h-a|0);h=H[j+12>>2];break ia}if(a>>>0<=h>>>0){break ia}H[j+4>>2]=b+(h<<2)}d=1;if(!h){break fa}f=H[c+16>>2];e=H[c+20>>2];s=H[j>>2];i=H[c+8>>2];n=H[c+12>>2];b=0;while(1){d=0;if((e|0)>=(n|0)&f>>>0>=i>>>0|(e|0)>(n|0)){break fa}d=H[c>>2];p=I[d+f|0];f=f+1|0;e=f?e:e+1|0;H[c+16>>2]=f;H[c+20>>2]=e;a=p>>>2|0;l=0;ja:{ka:{la:{ma:{t=p&3;switch(t|0){case 0:break ka;case 3:break ma;default:break la}}a=a+b|0;d=0;if(a>>>0>=h>>>0){break fa}ra(s+(b<<2)|0,0,(p&252)+4|0);b=a;break ja}while(1){if((f|0)==(i|0)&(e|0)==(n|0)){break ga}h=I[d+f|0];f=f+1|0;e=f?e:e+1|0;H[c+16>>2]=f;H[c+20>>2]=e;a=h<<(l<<3|6)|a;l=l+1|0;if((t|0)!=(l|0)){continue}break}}H[s+(b<<2)>>2]=a}b=b+1|0;h=H[j+12>>2];if(b>>>0>>0){continue}break}a=j+16|0;n=H[j>>2];d=H[j+16>>2];b=H[j+20>>2]-d|0;na:{if(b>>>0<=1048575){ya(a,262144-(b>>>2|0)|0);break na}if((b|0)==1048576){break na}H[j+20>>2]=d- -1048576}d=j+28|0;b=H[d>>2];f=H[j+32>>2]-b>>3;oa:{if(f>>>0>>0){ob(d,h-f|0);b=H[d>>2];break oa}if(f>>>0>h>>>0){H[j+32>>2]=(h<<3)+b}if(!h){break ga}}i=H[a>>2];f=0;d=0;while(1){e=n+(f<<2)|0;j=H[e>>2];l=(f<<3)+b|0;a=d;H[l+4>>2]=a;H[l>>2]=j;e=H[e>>2];d=e+a|0;if(d>>>0>262144){break ga}pa:{if(a>>>0>=d>>>0){break pa}l=0;j=e&7;if(j){while(1){H[i+(a<<2)>>2]=f;a=a+1|0;l=l+1|0;if((j|0)!=(l|0)){continue}break}}if(e-1>>>0<=6){break pa}while(1){e=i+(a<<2)|0;H[e>>2]=f;H[e+28>>2]=f;H[e+24>>2]=f;H[e+20>>2]=f;H[e+16>>2]=f;H[e+12>>2]=f;H[e+8>>2]=f;H[e+4>>2]=f;a=a+8|0;if((d|0)!=(a|0)){continue}break}}f=f+1|0;if((h|0)!=(f|0)){continue}break}k=(d|0)==262144}d=k}qa:{if(!d|(H[g+20>>2]?0:m)){break qa}d=0;j=ca-16|0;ca=j;ra:{sa:{if(J[c+38>>1]<=511){b=H[c+8>>2];a=H[c+12>>2];h=a;i=H[c+20>>2];k=H[c+16>>2];f=k+8|0;i=f>>>0<8?i+1|0:i;e=i;if(b>>>0>>0&(e|0)>=(a|0)|(a|0)<(e|0)){break ra}k=k+H[c>>2]|0;a=I[k|0]|I[k+1|0]<<8|(I[k+2|0]<<16|I[k+3|0]<<24);k=I[k+4|0]|I[k+5|0]<<8|(I[k+6|0]<<16|I[k+7|0]<<24);H[c+16>>2]=f;H[c+20>>2]=e;break sa}if(!gb(1,j+8|0,c)){break ra}f=H[c+16>>2];e=H[c+20>>2];b=H[c+8>>2];h=H[c+12>>2];a=H[j+8>>2];k=H[j+12>>2]}i=b-f|0;b=h-((b>>>0>>0)+e|0)|0;if((b|0)==(k|0)&a>>>0>i>>>0|b>>>0>>0){break ra}e=e+k|0;b=a+f|0;e=b>>>0>>0?e+1|0:e;H[c+16>>2]=b;H[c+20>>2]=e;if((a|0)<=0){break ra}b=H[c>>2]+f|0;H[g+48>>2]=b;c=a-1|0;f=c+b|0;e=I[f|0];ta:{if(e>>>0<=63){H[g+52>>2]=c;a=I[f|0]&63;break ta}ua:{switch((e>>>6|0)-1|0){case 0:if(a>>>0<2){break ra}a=a-2|0;H[g+52>>2]=a;a=a+b|0;a=I[a+1|0]<<8&16128|I[a|0];break ta;case 1:if(a>>>0<3){break ra}a=a-3|0;H[g+52>>2]=a;a=a+b|0;a=I[a+1|0]<<8|I[a+2|0]<<16&4128768|I[a|0];break ta;default:break ua}}a=a-4|0;H[g+52>>2]=a;a=a+b|0;a=(I[a|0]|I[a+1|0]<<8|(I[a+2|0]<<16|I[a+3|0]<<24))&1073741823}H[g+56>>2]=a- -1048576;d=a>>>0<267386880}ca=j+16|0;if(!d){break qa}if(!m){o=1;break qa}b=H[g+52>>2];a=H[g+56>>2];c=H[g+36>>2];d=H[g+48>>2];f=H[g+24>>2];while(1){va:{if(a>>>0>1048575){break va}while(1){if((b|0)<=0){break va}b=b-1|0;H[g+52>>2]=b;a=I[b+d|0]|a<<8;H[g+56>>2]=a;if(a>>>0<1048576){continue}break}}e=a&262143;o=H[f+(e<<2)>>2];k=c+(o<<3)|0;a=(N(H[k>>2],a>>>18|0)+e|0)-H[k+4>>2]|0;H[g+56>>2]=a;H[r+(q<<2)>>2]=o;o=1;q=q+1|0;if((m|0)!=(q|0)){continue}break}}a=H[g+36>>2];if(a){H[g+40>>2]=a;oa(a)}a=H[g+24>>2];if(a){H[g+28>>2]=a;oa(a)}a=H[g+8>>2];if(a){H[g+12>>2]=a;oa(a)}ca=g- -64|0;b=o;break g;case 12:m=a;r=d;g=ca+-64|0;ca=g;H[g+56>>2]=0;H[g+48>>2]=0;H[g+52>>2]=0;H[g+40>>2]=0;H[g+44>>2]=0;H[g+32>>2]=0;H[g+36>>2]=0;H[g+24>>2]=0;H[g+28>>2]=0;H[g+16>>2]=0;H[g+20>>2]=0;H[g+8>>2]=0;H[g+12>>2]=0;j=g+8|0;a=J[c+38>>1];wa:{xa:{if(!a){break xa}ya:{if(a>>>0<=511){d=H[c+8>>2];b=H[c+12>>2];i=H[c+20>>2];a=H[c+16>>2];f=a+4|0;i=f>>>0<4?i+1|0:i;if(d>>>0>>0&(b|0)<=(i|0)|(b|0)<(i|0)){break xa}a=a+H[c>>2]|0;h=I[a|0]|I[a+1|0]<<8|(I[a+2|0]<<16|I[a+3|0]<<24);H[j+12>>2]=h;e=H[c+20>>2];f=H[c+16>>2]+4|0;e=f>>>0<4?e+1|0:e;H[c+16>>2]=f;H[c+20>>2]=e;break ya}if(!hb(1,j+12|0,c)){break xa}f=H[c+16>>2];e=H[c+20>>2];h=H[j+12>>2]}a=H[c+8>>2];d=a-f|0;a=H[c+12>>2]-((a>>>0>>0)+e|0)|0;if(d>>>0>>6>>>0&(a|0)<=0|(a|0)<0){break xa}b=H[j>>2];a=H[j+4>>2]-b>>2;za:{if(a>>>0>>0){ya(j,h-a|0);h=H[j+12>>2];break za}if(a>>>0<=h>>>0){break za}H[j+4>>2]=b+(h<<2)}d=1;if(!h){break wa}f=H[c+16>>2];e=H[c+20>>2];s=H[j>>2];i=H[c+8>>2];n=H[c+12>>2];b=0;while(1){d=0;if((e|0)>=(n|0)&f>>>0>=i>>>0|(e|0)>(n|0)){break wa}d=H[c>>2];p=I[d+f|0];f=f+1|0;e=f?e:e+1|0;H[c+16>>2]=f;H[c+20>>2]=e;a=p>>>2|0;l=0;Aa:{Ba:{Ca:{Da:{t=p&3;switch(t|0){case 0:break Ba;case 3:break Da;default:break Ca}}a=a+b|0;d=0;if(a>>>0>=h>>>0){break wa}ra(s+(b<<2)|0,0,(p&252)+4|0);b=a;break Aa}while(1){if((f|0)==(i|0)&(e|0)==(n|0)){break xa}h=I[d+f|0];f=f+1|0;e=f?e:e+1|0;H[c+16>>2]=f;H[c+20>>2]=e;a=h<<(l<<3|6)|a;l=l+1|0;if((t|0)!=(l|0)){continue}break}}H[s+(b<<2)>>2]=a}b=b+1|0;h=H[j+12>>2];if(b>>>0>>0){continue}break}a=j+16|0;n=H[j>>2];d=H[j+16>>2];b=H[j+20>>2]-d|0;Ea:{if(b>>>0<=2097151){ya(a,524288-(b>>>2|0)|0);break Ea}if((b|0)==2097152){break Ea}H[j+20>>2]=d+2097152}d=j+28|0;b=H[d>>2];f=H[j+32>>2]-b>>3;Fa:{if(f>>>0>>0){ob(d,h-f|0);b=H[d>>2];break Fa}if(f>>>0>h>>>0){H[j+32>>2]=(h<<3)+b}if(!h){break xa}}i=H[a>>2];f=0;d=0;while(1){e=n+(f<<2)|0;j=H[e>>2];l=(f<<3)+b|0;a=d;H[l+4>>2]=a;H[l>>2]=j;e=H[e>>2];d=e+a|0;if(d>>>0>524288){break xa}Ga:{if(a>>>0>=d>>>0){break Ga}l=0;j=e&7;if(j){while(1){H[i+(a<<2)>>2]=f;a=a+1|0;l=l+1|0;if((j|0)!=(l|0)){continue}break}}if(e-1>>>0<=6){break Ga}while(1){e=i+(a<<2)|0;H[e>>2]=f;H[e+28>>2]=f;H[e+24>>2]=f;H[e+20>>2]=f;H[e+16>>2]=f;H[e+12>>2]=f;H[e+8>>2]=f;H[e+4>>2]=f;a=a+8|0;if((d|0)!=(a|0)){continue}break}}f=f+1|0;if((h|0)!=(f|0)){continue}break}k=(d|0)==524288}d=k}Ha:{if(!d|(H[g+20>>2]?0:m)){break Ha}d=0;i=ca-16|0;ca=i;Ia:{Ja:{if(J[c+38>>1]<=511){b=H[c+8>>2];a=H[c+12>>2];h=a;e=H[c+20>>2];k=H[c+16>>2];f=k+8|0;e=f>>>0<8?e+1|0:e;if(b>>>0>>0&(a|0)<=(e|0)|(a|0)<(e|0)){break Ia}k=k+H[c>>2]|0;a=I[k|0]|I[k+1|0]<<8|(I[k+2|0]<<16|I[k+3|0]<<24);k=I[k+4|0]|I[k+5|0]<<8|(I[k+6|0]<<16|I[k+7|0]<<24);H[c+16>>2]=f;H[c+20>>2]=e;break Ja}if(!gb(1,i+8|0,c)){break Ia}f=H[c+16>>2];e=H[c+20>>2];b=H[c+8>>2];h=H[c+12>>2];a=H[i+8>>2];k=H[i+12>>2]}j=b-f|0;b=h-((b>>>0>>0)+e|0)|0;if((b|0)==(k|0)&a>>>0>j>>>0|b>>>0>>0){break Ia}e=e+k|0;b=a+f|0;e=b>>>0>>0?e+1|0:e;H[c+16>>2]=b;H[c+20>>2]=e;if((a|0)<=0){break Ia}b=H[c>>2]+f|0;H[g+48>>2]=b;c=a-1|0;f=c+b|0;e=I[f|0];Ka:{if(e>>>0<=63){H[g+52>>2]=c;a=I[f|0]&63;break Ka}La:{switch((e>>>6|0)-1|0){case 0:if(a>>>0<2){break Ia}a=a-2|0;H[g+52>>2]=a;a=a+b|0;a=I[a+1|0]<<8&16128|I[a|0];break Ka;case 1:if(a>>>0<3){break Ia}a=a-3|0;H[g+52>>2]=a;a=a+b|0;a=I[a+1|0]<<8|I[a+2|0]<<16&4128768|I[a|0];break Ka;default:break La}}a=a-4|0;H[g+52>>2]=a;a=a+b|0;a=(I[a|0]|I[a+1|0]<<8|(I[a+2|0]<<16|I[a+3|0]<<24))&1073741823}H[g+56>>2]=a+2097152;d=a>>>0<534773760}ca=i+16|0;if(!d){break Ha}if(!m){o=1;break Ha}b=H[g+52>>2];a=H[g+56>>2];c=H[g+36>>2];d=H[g+48>>2];f=H[g+24>>2];while(1){Ma:{if(a>>>0>2097151){break Ma}while(1){if((b|0)<=0){break Ma}b=b-1|0;H[g+52>>2]=b;a=I[b+d|0]|a<<8;H[g+56>>2]=a;if(a>>>0<2097152){continue}break}}e=a&524287;o=H[f+(e<<2)>>2];k=c+(o<<3)|0;a=(N(H[k>>2],a>>>19|0)+e|0)-H[k+4>>2]|0;H[g+56>>2]=a;H[r+(q<<2)>>2]=o;o=1;q=q+1|0;if((m|0)!=(q|0)){continue}break}}a=H[g+36>>2];if(a){H[g+40>>2]=a;oa(a)}a=H[g+24>>2];if(a){H[g+28>>2]=a;oa(a)}a=H[g+8>>2];if(a){H[g+12>>2]=a;oa(a)}ca=g- -64|0;b=o;break g;case 17:b=Le(a,c,d);break g;case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:b=ca+-64|0;ca=b;H[b+56>>2]=0;H[b+48>>2]=0;H[b+52>>2]=0;H[b+40>>2]=0;H[b+44>>2]=0;H[b+32>>2]=0;H[b+36>>2]=0;H[b+24>>2]=0;H[b+28>>2]=0;H[b+16>>2]=0;H[b+20>>2]=0;H[b+8>>2]=0;H[b+12>>2]=0;Na:{if(!Ne(b+8|0,c)|(H[b+20>>2]?0:a)){break Na}if(!Me(b+8|0,c)){break Na}if(!a){f=1;break Na}e=H[b+52>>2];c=H[b+56>>2];k=H[b+36>>2];i=H[b+48>>2];g=H[b+24>>2];while(1){Oa:{if(c>>>0>16383){break Oa}while(1){if((e|0)<=0){break Oa}e=e-1|0;H[b+52>>2]=e;c=I[e+i|0]|c<<8;H[b+56>>2]=c;if(c>>>0<16384){continue}break}}f=c&4095;m=H[g+(f<<2)>>2];r=k+(m<<3)|0;c=(N(H[r>>2],c>>>12|0)+f|0)-H[r+4>>2]|0;H[b+56>>2]=c;H[(o<<2)+d>>2]=m;f=1;o=o+1|0;if((o|0)!=(a|0)){continue}break}}a=H[b+36>>2];if(a){H[b+40>>2]=a;oa(a)}a=H[b+24>>2];if(a){H[b+28>>2]=a;oa(a)}a=H[b+8>>2];if(a){H[b+12>>2]=a;oa(a)}ca=b- -64|0;b=f;break g;case 13:case 14:case 15:case 16:break h;default:break g}}b=Le(a,c,d)}f=b}return f}function gi(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,L=0,M=0,O=0,P=0,Q=0,R=0;s=ca+-64|0;ca=s;H[a+132>>2]=0;if(H[a+148>>2]){c=H[a+144>>2];if(c){while(1){d=H[c>>2];oa(c);c=d;if(c){continue}break}}c=0;H[a+144>>2]=0;d=H[a+140>>2];a:{if(!d){break a}if(d>>>0>=4){g=d&-4;while(1){e=c<<2;H[e+H[a+136>>2]>>2]=0;H[H[a+136>>2]+(e|4)>>2]=0;H[H[a+136>>2]+(e|8)>>2]=0;H[H[a+136>>2]+(e|12)>>2]=0;c=c+4|0;b=b+4|0;if((g|0)!=(b|0)){continue}break}}b=d&3;if(!b){break a}while(1){H[H[a+136>>2]+(c<<2)>>2]=0;c=c+1|0;u=u+1|0;if((b|0)!=(u|0)){continue}break}}H[a+148>>2]=0}b:{c:{d:{c=H[a+4>>2];u=I[c+36|0];b=u<<8|I[c+37|0];if(b>>>0<=513){i=H[c+32>>2];e:{if(b>>>0<=511){d=H[i+20>>2];e=H[i+16>>2];b=e+4|0;d=b>>>0<4?d+1|0:d;g=b;f=K[i+8>>2]>>0;b=H[i+12>>2];if(f&(b|0)<=(d|0)|(b|0)<(d|0)){break d}b=e+H[i>>2]|0;b=I[b|0]|I[b+1|0]<<8|(I[b+2|0]<<16|I[b+3|0]<<24);H[i+16>>2]=g;H[i+20>>2]=d;break e}if(!Ea(1,s,i)){break d}c=H[a+4>>2];u=I[c+36|0];b=H[s>>2]}H[a+132>>2]=b}g=H[c+32>>2];f:{g:{h:{if((u&255)>>>0<=1){u=0;d=H[g+20>>2];e=H[g+16>>2];b=e+4|0;d=b>>>0<4?d+1|0:d;i=H[g+12>>2];if(K[g+8>>2]>>0&(i|0)<=(d|0)|(d|0)>(i|0)){break c}e=e+H[g>>2]|0;e=I[e|0]|I[e+1|0]<<8|(I[e+2|0]<<16|I[e+3|0]<<24);H[s+60>>2]=e;H[g+16>>2]=b;H[g+20>>2]=d;H[a+156>>2]=e;n=a+156|0;break h}u=0;if(!Ea(1,s+60|0,g)){break c}c=H[a+4>>2];b=I[c+36|0];H[a+156>>2]=H[s+60>>2];n=a+156|0;if(b>>>0>1){break g}}e=H[c+32>>2];i=H[e+8>>2];g=H[e+12>>2];d=H[e+20>>2];b=H[e+16>>2];c=b+4|0;d=c>>>0<4?d+1|0:d;if(c>>>0>i>>>0&(d|0)>=(g|0)|(d|0)>(g|0)){break c}b=b+H[e>>2]|0;b=I[b|0]|I[b+1|0]<<8|(I[b+2|0]<<16|I[b+3|0]<<24);H[s+56>>2]=b;H[e+16>>2]=c;H[e+20>>2]=d;break f}if(!Ea(1,s+56|0,H[c+32>>2])){break c}b=H[s+56>>2]}if(b>>>0>1431655765){break c}c=H[n>>2];d=N(b,3);if(c>>>0>d>>>0){break c}e=d>>>1|0;d=c>>31;g=Rj(c-1|0,d-!c|0,c,d);c=da;d=c>>>1|0;c=(c&1)<<31|g>>>1;if(!d&c>>>0>>0){break c}f=H[a+4>>2];g=H[f+32>>2];c=g;e=H[c+8>>2];i=H[c+16>>2];j=H[c+12>>2];d=H[c+20>>2];c=d;if((j|0)<=(c|0)&e>>>0<=i>>>0|(c|0)>(j|0)){break c}n=H[g>>2];o=I[n+i|0];h=i+1|0;c=h?c:c+1|0;H[g+16>>2]=h;H[g+20>>2]=c;i:{if(I[f+36|0]<=1){f=e;c=j;e=i+5|0;d=e>>>0<5?d+1|0:d;if((c|0)<=(d|0)&e>>>0>f>>>0|(c|0)<(d|0)){break c}c=h+n|0;n=I[c|0]|I[c+1|0]<<8|(I[c+2|0]<<16|I[c+3|0]<<24);H[s+52>>2]=n;H[g+16>>2]=e;H[g+20>>2]=d;break i}if(!Ea(1,s+52|0,g)){break c}n=H[s+52>>2]}if(b>>>0>>0|((n>>>0)/3|0)+n>>>0>>0){break c}c=H[a+4>>2];i=H[c+32>>2];j:{if(I[c+36|0]<=1){c=H[i+20>>2];e=H[i+16>>2];d=e+4|0;c=d>>>0<4?c+1|0:c;g=d;f=K[i+8>>2]>>0;d=H[i+12>>2];if(f&(d|0)<=(c|0)|(c|0)>(d|0)){break c}d=e+H[i>>2]|0;d=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);H[s+48>>2]=d;H[i+16>>2]=g;H[i+20>>2]=c;break j}if(!Ea(1,s+48|0,i)){break c}d=H[s+48>>2]}if(d>>>0>n>>>0){break c}H[a+28>>2]=H[a+24>>2];e=$b(pa(88));c=H[a+8>>2];H[a+8>>2]=e;if(c){cb(c);if(!H[a+8>>2]){break c}}H[a+164>>2]=H[a+160>>2];Jb(a+160|0,b);H[a+176>>2]=H[a+172>>2];Jb(a+172|0,b);H[a- -64>>2]=0;H[a+92>>2]=-1;H[a+84>>2]=-1;H[a+88>>2]=-1;H[a+40>>2]=H[a+36>>2];H[a+52>>2]=H[a+48>>2];H[a+76>>2]=H[a+72>>2];B=a+216|0;ed(B);dd(B,o);if(!Lc(H[a+8>>2],b,H[a+156>>2]+d|0)){break c}c=H[a+156>>2];F[s|0]=1;Oa(a+120|0,c+d|0,s);c=H[a+4>>2];b=J[c+36>>1];b=(b<<8|b>>>8)&65535;k:{if(b>>>0<=513){i=H[c+32>>2];l:{if(b>>>0<=511){c=H[i+20>>2];e=H[i+16>>2];b=e+4|0;c=b>>>0<4?c+1|0:c;g=b;f=K[i+8>>2]>>0;b=H[i+12>>2];if(f&(b|0)<=(c|0)|(c|0)>(b|0)){break c}b=e+H[i>>2]|0;b=I[b|0]|I[b+1|0]<<8|(I[b+2|0]<<16|I[b+3|0]<<24);H[i+16>>2]=g;H[i+20>>2]=c;break l}if(!Ea(1,s+44|0,i)){break c}b=H[s+44>>2]}if(!b){break c}c=H[H[a+4>>2]+32>>2];e=H[c+8>>2];g=H[c+16>>2];i=e-g|0;c=H[c+12>>2]-(H[c+20>>2]+(e>>>0>>0)|0)|0;if((c|0)<=0&b>>>0>i>>>0|(c|0)<0){break c}c=Ha(s);e=H[H[a+4>>2]+32>>2];g=H[e+16>>2];i=(g+H[e>>2]|0)+b|0;g=H[e+8>>2]-g|0;G[c+38>>1]=J[e+38>>1];H[c>>2]=i;H[c+16>>2]=0;H[c+20>>2]=0;H[c+8>>2]=g-b;H[c+12>>2]=0;C=Ib(a,c);if((C|0)==-1){break c}M=C>>31;break k}C=-1;M=-1;if((Ib(a,H[c+32>>2])|0)==-1){break c}}e=a+232|0;Ee(e,a);H[a+372>>2]=o;H[a+384>>2]=H[a+156>>2]+d;O=Ha(s);g=O;b=0;j=ca-16|0;ca=j;m:{n:{c=H[e+144>>2];c=J[(ea[H[H[c>>2]+32>>2]](c)|0)+36>>1];if(((c<<8|c>>>8)&65535)>>>0<=513){c=H[e+4>>2];H[e+40>>2]=H[e>>2];H[e+44>>2]=c;c=H[e+36>>2];H[e+72>>2]=H[e+32>>2];H[e+76>>2]=c;d=H[e+28>>2];c=e- -64|0;H[c>>2]=H[e+24>>2];H[c+4>>2]=d;c=H[e+20>>2];H[e+56>>2]=H[e+16>>2];H[e+60>>2]=c;c=H[e+12>>2];H[e+48>>2]=H[e+8>>2];H[e+52>>2]=c;if(!Db(e+40|0,1,j+8|0)){break n}c=H[e+44>>2];H[e>>2]=H[e+40>>2];H[e+4>>2]=c;c=H[e+76>>2];H[e+32>>2]=H[e+72>>2];H[e+36>>2]=c;c=H[e+68>>2];H[e+24>>2]=H[e+64>>2];H[e+28>>2]=c;c=H[e+60>>2];h=c;d=H[e+56>>2];H[e+16>>2]=d;H[e+20>>2]=c;i=H[e+52>>2];f=i;c=H[e+48>>2];H[e+8>>2]=c;H[e+12>>2]=f;o=c-d|0;k=H[j+12>>2];c=f-((c>>>0>>0)+h|0)|0;i=H[j+8>>2];if((k|0)==(c|0)&o>>>0>>0|c>>>0>>0){break n}c=h+k|0;f=d;d=d+i|0;c=f>>>0>d>>>0?c+1|0:c;H[e+16>>2]=d;H[e+20>>2]=c}o:{if(J[e+38>>1]<=513){c=H[e+4>>2];H[e+96>>2]=H[e>>2];H[e+100>>2]=c;c=H[e+36>>2];H[e+128>>2]=H[e+32>>2];H[e+132>>2]=c;c=H[e+28>>2];H[e+120>>2]=H[e+24>>2];H[e+124>>2]=c;c=H[e+20>>2];H[e+112>>2]=H[e+16>>2];H[e+116>>2]=c;c=H[e+12>>2];H[e+104>>2]=H[e+8>>2];H[e+108>>2]=c;if(!Db(e+96|0,1,j+8|0)){break n}c=H[e+100>>2];H[e>>2]=H[e+96>>2];H[e+4>>2]=c;c=H[e+132>>2];H[e+32>>2]=H[e+128>>2];H[e+36>>2]=c;c=H[e+124>>2];H[e+24>>2]=H[e+120>>2];H[e+28>>2]=c;d=H[e+116>>2];h=d;c=H[e+112>>2];H[e+16>>2]=c;H[e+20>>2]=d;i=H[e+108>>2];f=i;d=H[e+104>>2];H[e+8>>2]=d;H[e+12>>2]=f;o=d-c|0;k=H[j+12>>2];d=f-((c>>>0>d>>>0)+h|0)|0;i=H[j+8>>2];if((k|0)==(d|0)&o>>>0>>0|d>>>0>>0){break n}d=h+k|0;f=c;c=c+i|0;d=f>>>0>c>>>0?d+1|0:d;H[e+16>>2]=c;H[e+20>>2]=d;break o}if(!ta(e+80|0,e)){break m}}if(!Fe(e)){break m}c=H[e+4>>2];H[g>>2]=H[e>>2];H[g+4>>2]=c;c=H[e+36>>2];H[g+32>>2]=H[e+32>>2];H[g+36>>2]=c;c=H[e+28>>2];H[g+24>>2]=H[e+24>>2];H[g+28>>2]=c;c=H[e+20>>2];H[g+16>>2]=H[e+16>>2];H[g+20>>2]=c;c=H[e+12>>2];H[g+8>>2]=H[e+8>>2];H[g+12>>2]=c;c=H[e+144>>2];c=J[(ea[H[H[c>>2]+32>>2]](c)|0)+36>>1];p:{if(((c<<8|c>>>8)&65535)>>>0<=513){c=H[e+144>>2];q:{if(I[(ea[H[H[c>>2]+32>>2]](c)|0)+36|0]<=1){c=H[g+20>>2];i=H[g+16>>2];d=i+4|0;c=d>>>0<4?c+1|0:c;h=d;f=K[g+8>>2]>>0;d=H[g+12>>2];if(f&(d|0)<=(c|0)|(c|0)>(d|0)){break m}d=i+H[g>>2]|0;d=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);H[g+16>>2]=h;H[g+20>>2]=c;break q}if(!Ea(1,j+8|0,g)){break m}d=H[j+8>>2]}c=H[e+152>>2];if(d>>>0>=c>>>0){break m}d=H[g+20>>2];h=H[g+12>>2];i=H[g+16>>2];if((d|0)>=(h|0)&i>>>0>=K[g+8>>2]|(d|0)>(h|0)){break m}h=I[i+H[g>>2]|0];i=i+1|0;d=i?d:d+1|0;H[g+16>>2]=i;H[g+20>>2]=d;if(h){break m}H[e+176>>2]=2;H[e+180>>2]=7;break p}H[e+176>>2]=2;H[e+180>>2]=7;c=H[e+152>>2]}if((c|0)<0){break m}H[j+8>>2]=0;b=2;h=H[e+156>>2];i=H[e+160>>2]-h>>2;r:{if(i>>>0>>0){Pa(e+156|0,c-i|0,j+8|0);b=H[e+176>>2];d=H[e+180>>2];break r}d=7;if(c>>>0>=i>>>0){break r}H[e+160>>2]=h+(c<<2)}i=e+184|0;b=(d-b|0)+1|0;c=H[e+188>>2];h=H[e+184>>2];d=(c-h|0)/12|0;s:{if(b>>>0>d>>>0){o=0;d=b-d|0;f=H[i+8>>2];c=H[i+4>>2];t:{if(d>>>0<=(f-c|0)/12>>>0){if(d){b=c;c=N(d,12)-12|0;c=(c-((c>>>0)%12|0)|0)+12|0;c=ra(b,0,c)+c|0}H[i+4>>2]=c;break t}u:{v:{w:{h=H[i>>2];k=(c-h|0)/12|0;b=k+d|0;if(b>>>0<357913942){f=(f-h|0)/12|0;l=f<<1;f=f>>>0>=178956970?357913941:b>>>0>>0?l:b;if(f){if(f>>>0>=357913942){break w}o=pa(N(f,12))}b=N(k,12)+o|0;d=N(d,12)-12|0;k=(d-((d>>>0)%12|0)|0)+12|0;d=ra(b,0,k);k=d+k|0;f=N(f,12)+o|0;if((c|0)==(h|0)){break v}while(1){b=b-12|0;c=c-12|0;H[b>>2]=H[c>>2];H[b+4>>2]=H[c+4>>2];H[b+8>>2]=H[c+8>>2];H[c+8>>2]=0;H[c>>2]=0;H[c+4>>2]=0;if((c|0)!=(h|0)){continue}break}H[i+8>>2]=f;d=H[i+4>>2];H[i+4>>2]=k;c=H[i>>2];H[i>>2]=b;if((c|0)==(d|0)){break u}while(1){b=d-12|0;h=H[b>>2];if(h){H[d-8>>2]=h;oa(h)}d=b;if((b|0)!=(c|0)){continue}break}break u}break b}wa();v()}H[i+8>>2]=f;H[i+4>>2]=k;H[i>>2]=d}if(c){oa(c)}}d=H[e+188>>2];break s}if(b>>>0>=d>>>0){d=c;break s}d=h+N(b,12)|0;if((d|0)!=(c|0)){while(1){b=c-12|0;h=H[b>>2];if(h){H[c-8>>2]=h;oa(h)}c=b;if((d|0)!=(b|0)){continue}break}}H[e+188>>2]=d}f=e+196|0;b=H[e+184>>2];c=(d-b|0)/12|0;o=H[e+196>>2];h=H[e+200>>2]-o>>2;x:{if(c>>>0>h>>>0){ya(f,c-h|0);b=H[e+184>>2];d=H[e+188>>2];break x}if(c>>>0>=h>>>0){break x}H[e+200>>2]=o+(c<<2)}if((b|0)==(d|0)){b=1;break m}c=0;while(1){if(!Ea(1,j+8|0,g)){break n}b=H[e+148>>2];d=(H[b+4>>2]-H[b>>2]>>2>>>0)/3|0;b=H[j+8>>2];if(d>>>0>>0){break n}if(b){k=N(c,12);h=k+H[i>>2]|0;d=H[h>>2];o=H[h+4>>2]-d>>2;y:{if(o>>>0>>0){ya(h,b-o|0);d=H[k+H[i>>2]>>2];break y}if(b>>>0>=o>>>0){break y}H[h+4>>2]=(b<<2)+d}kd(b,1,g,d);H[H[f>>2]+(c<<2)>>2]=b}b=1;c=c+1|0;if(c>>>0<(H[e+188>>2]-H[e+184>>2]|0)/12>>>0){continue}break}break m}b=0}ca=j+16|0;z:{if(!b){break z}d=0;c=0;g=0;i=0;o=0;l=ca-96|0;ca=l;H[l+72>>2]=0;H[l+64>>2]=0;H[l+68>>2]=0;H[l+48>>2]=0;H[l+52>>2]=0;H[l+40>>2]=0;H[l+44>>2]=0;H[l+56>>2]=1065353216;H[l+32>>2]=0;H[l+24>>2]=0;H[l+28>>2]=0;j=a;L=H[a+124>>2];A:{B:{C:{D:{E:{if((n|0)<=0){break E}r=j+232|0;P=H[j+216>>2]!=H[j+220>>2];D=1;while(1){h=i;i=i+1|0;a=H[r+172>>2];F:{G:{if((a|0)!=-1){b=H[r+196>>2]+(a<<2)|0;f=H[b>>2];a=f-1|0;H[b>>2]=a;b=9;if((f|0)<=0){break F}a=H[H[H[r+184>>2]+N(H[r+172>>2],12)>>2]+(a<<2)>>2];if(a>>>0>4){break F}b=H[(a<<2)+12144>>2];break G}b=7;a=H[r+144>>2];a=J[(ea[H[H[a>>2]+32>>2]](a)|0)+36>>1];if(((a<<8|a>>>8)&65535)>>>0>513|!I[r+76|0]){break G}b=0;m=H[r- -64>>2];k=H[r+72>>2];a=m+(k>>>3|0)|0;p=H[r+68>>2];if(a>>>0>=p>>>0){break G}f=I[a|0];a=k+1|0;H[r+72>>2]=a;f=f>>>(k&7)&1;if(!f){break G}q=a>>>3|0;b=m+q|0;H:{if(b>>>0>=p>>>0){b=a;a=0;break H}t=I[b|0];b=k+2|0;H[r+72>>2]=b;q=b>>>3|0;a=t>>>(a&7)&1}k=m+q|0;if(k>>>0

>>0){k=I[k|0];H[r+72>>2]=b+1;b=k>>>(b&7)<<1&2}else{b=0}b=(a|b)<<1|f}H[r+168>>2]=b}a=b;I:{J:{if(!a){if((c|0)==(g|0)){b=-1;break D}d=-1;m=H[j+8>>2];t=H[m+24>>2];D=c-4|0;f=H[D>>2];a=-1;K:{if((f|0)==-1){break K}k=f+1|0;k=(k>>>0)%3|0?k:f-2|0;a=-1;if((k|0)==-1){break K}a=H[H[m>>2]+(k<<2)>>2]}b=H[t+(a<<2)>>2];if((b|0)!=-1){d=b+1|0;d=(d>>>0)%3|0?d:b-2|0}if((d|0)==(f|0)){b=-1;break D}if((f|0)!=-1){b=-1;if(H[H[m+12>>2]+(f<<2)>>2]!=-1){break D}}k=H[m+12>>2];if((d|0)!=-1){b=-1;if(H[k+(d<<2)>>2]!=-1){break D}}p=N(h,3);b=p+1|0;H[k+(f<<2)>>2]=b;w=b<<2;H[w+k>>2]=f;q=p+2|0;H[k+(d<<2)>>2]=q;y=q<<2;H[y+k>>2]=d;k=-1;h=-1;L:{if((f|0)==-1){break L}M:{if((f>>>0)%3|0){b=f-1|0;break M}b=f+2|0;h=-1;if((b|0)==-1){break L}}h=H[H[m>>2]+(b<<2)>>2]}N:{if((d|0)==-1){break N}b=d+1|0;b=(b>>>0)%3|0?b:d-2|0;if((b|0)==-1){break N}k=H[H[m>>2]+(b<<2)>>2]}b=-1;if((a|0)==(h|0)|(a|0)==(k|0)){break D}b=H[m>>2];H[b+(p<<2)>>2]=a;H[b+w>>2]=k;H[b+y>>2]=h;if((h|0)!=-1){H[t+(h<<2)>>2]=q}b=H[j+120>>2]+(a>>>3&536870908)|0;d=H[b>>2];Q=b,R=Vj(a)&d,H[Q>>2]=R;H[D>>2]=p;k=H[c-4>>2];break J}b=-1;O:{P:{Q:{R:{S:{T:{U:{V:{W:{switch(a-1|0){case 2:case 4:if((c|0)==(g|0)){break D}t=c-4|0;d=H[t>>2];f=H[j+8>>2];m=H[f+12>>2];if((d|0)!=-1&H[m+(d<<2)>>2]!=-1){break D}k=N(h,3);p=(a|0)==5;q=k+(p?2:1)|0;w=q<<2;H[w+m>>2]=d;H[m+(d<<2)>>2]=q;Ka(f+24|0,11424);a=H[j+8>>2];m=H[a+24>>2];if(H[a+28>>2]-m>>2>(L|0)){break D}a=H[a>>2];y=a+w|0;b=H[f+28>>2];f=H[f+24>>2];w=(b-f>>2)-1|0;H[y>>2]=w;if((b|0)!=(f|0)){H[m+(w<<2)>>2]=q}b=p?k:k+2|0;q=a+(k+p<<2)|0;X:{if((d|0)==-1){H[a+(b<<2)>>2]=-1;b=-1;break X}Y:{Z:{_:{if((d>>>0)%3|0){f=d-1|0;break _}f=d+2|0;if((f|0)==-1){break Z}}f=H[a+(f<<2)>>2];H[a+(b<<2)>>2]=f;if((f|0)==-1){break Y}H[m+(f<<2)>>2]=b;break Y}H[a+(b<<2)>>2]=-1}f=d+1|0;d=(f>>>0)%3|0?f:d-2|0;b=-1;if((d|0)==-1){break X}b=H[a+(d<<2)>>2]}H[q>>2]=b;H[t>>2]=k;break V;case 0:if((c|0)==(d|0)){break D}a=c-4|0;m=H[a>>2];H[l+68>>2]=a;p=H[l+44>>2];$:{if(!p){c=a;break $}f=H[l+40>>2];q=Uj(p)>>>0>1;b=h&p+2147483647;aa:{if(!q){break aa}b=h;if(b>>>0

>>0){break aa}b=(h>>>0)%(p>>>0)|0}k=b;b=H[f+(k<<2)>>2];if(!b){c=a;break $}b=H[b>>2];if(!b){c=a;break $}ba:{if(!q){f=p-1|0;while(1){p=H[b+4>>2];ca:{if((p|0)!=(h|0)){if((k|0)==(f&p)){break ca}c=a;break $}if((h|0)==H[b+8>>2]){break ba}}b=H[b>>2];if(b){continue}break}c=a;break $}while(1){f=H[b+4>>2];da:{if((f|0)!=(h|0)){if(f>>>0>=p>>>0){f=(f>>>0)%(p>>>0)|0}if((f|0)==(k|0)){break da}c=a;break $}if((h|0)==H[b+8>>2]){break ba}}b=H[b>>2];if(b){continue}break}c=a;break $}if((a|0)!=(x|0)){H[a>>2]=H[b+12>>2];H[l+68>>2]=c;break $}a=x-d|0;g=a>>2;c=g+1|0;if(c>>>0>=1073741824){break b}f=a>>>1|0;f=a>>>0>=2147483644?1073741823:c>>>0>>0?f:c;if(f){if(f>>>0>=1073741824){break B}a=pa(f<<2)}else{a=0}g=a+(g<<2)|0;H[g>>2]=H[b+12>>2];c=g+4|0;if((d|0)!=(x|0)){while(1){g=g-4|0;x=x-4|0;H[g>>2]=H[x>>2];if((d|0)!=(x|0)){continue}break}}x=a+(f<<2)|0;H[l+72>>2]=x;H[l+68>>2]=c;H[l+64>>2]=g;if(d){oa(d)}}if((c|0)==(g|0)){break P}w=c-4|0;a=H[w>>2];if((a|0)==(m|0)){break P}b=(a|0)==-1;p=H[j+8>>2];if(!b&H[H[p+12>>2]+(a<<2)>>2]!=-1){break P}q=H[p+12>>2];if((m|0)!=-1&H[q+(m<<2)>>2]!=-1){break P}k=N(h,3);t=k+2|0;H[q+(a<<2)>>2]=t;h=t<<2;H[h+q>>2]=a;d=k+1|0;H[q+(m<<2)>>2]=d;y=d<<2;H[y+q>>2]=m;if(b){break T}if((a>>>0)%3|0){f=a-1|0;break S}f=a+2|0;if((f|0)!=-1){break S}d=H[p>>2];f=-1;break R;case 6:break W;default:break D}}k=H[j+8>>2];Ka(k+24|0,11424);f=H[j+8>>2];a=N(h,3);m=H[k+28>>2];p=H[k+24>>2];q=m-p|0;k=q>>2;t=k-1|0;H[H[f>>2]+(a<<2)>>2]=t;Ka(f+24|0,11424);w=a+1|0;H[H[f>>2]+(w<<2)>>2]=(H[f+28>>2]-H[f+24>>2]>>2)-1;f=H[j+8>>2];Ka(f+24|0,11424);y=a+2|0;H[H[f>>2]+(y<<2)>>2]=(H[f+28>>2]-H[f+24>>2]>>2)-1;E=H[j+8>>2];f=H[E+24>>2];if(H[E+28>>2]-f>>2>(L|0)){break D}ea:{fa:{if((m|0)!=(p|0)){H[f+(t<<2)>>2]=a;b=0;if((q|0)==-4){break fa}}H[f+(k<<2)>>2]=w;b=k+1|0;if((b|0)==-1){break ea}}H[f+(b<<2)>>2]=y}if((c|0)!=(x|0)){H[c>>2]=a;c=c+4|0;H[l+68>>2]=c;break U}b=c-d|0;k=b>>2;g=k+1|0;if(g>>>0>=1073741824){break b}f=b>>>1|0;b=b>>>0>=2147483644?1073741823:g>>>0>>0?f:g;if(b){if(b>>>0>=1073741824){break B}f=pa(b<<2)}else{f=0}g=f+(k<<2)|0;H[g>>2]=a;x=f+(b<<2)|0;a=g+4|0;if((c|0)!=(d|0)){while(1){g=g-4|0;c=c-4|0;H[g>>2]=H[c>>2];if((c|0)!=(d|0)){continue}break}}H[l+72>>2]=x;H[l+68>>2]=a;H[l+64>>2]=g;if(d){oa(d)}c=a}d=g}Ce(r,H[c-4>>2]);a=H[j+40>>2];if((a|0)==H[j+36>>2]){break I}b=a-12|0;f=H[b+4>>2];h=(h^-1)+n|0;if(f>>>0>h>>>0){break P}if((f|0)!=(h|0)){break I}k=I[a-4|0];f=H[b>>2];H[j+40>>2]=b;if((f|0)<0){break P}m=c-4|0;a=H[m>>2];H[l+20>>2]=(f^-1)+n;b=l+20|0;H[l+88>>2]=b;Gb(l,l+40|0,b,l+88|0);f=H[l>>2];ga:{if(k&1){b=-1;if((a|0)==-1){break ga}b=a+1|0;b=(b>>>0)%3|0?b:a-2|0;break ga}b=-1;if((a|0)==-1){break ga}b=a-1|0;if((a>>>0)%3|0){break ga}b=a+2|0}H[f+12>>2]=b;b=H[j+40>>2];if((b|0)==H[j+36>>2]){break I}while(1){a=b-12|0;f=H[a+4>>2];if(f>>>0>h>>>0){break P}if((f|0)!=(h|0)){break I}f=I[b-4|0];b=H[a>>2];H[j+40>>2]=a;if((b|0)<0){break P}a=H[m>>2];H[l+20>>2]=(b^-1)+n;b=l+20|0;H[l+88>>2]=b;Gb(l,l+40|0,b,l+88|0);k=H[l>>2];ha:{if(f&1){b=-1;if((a|0)==-1){break ha}b=a+1|0;b=(b>>>0)%3|0?b:a-2|0;break ha}b=-1;if((a|0)==-1){break ha}b=a-1|0;if((a>>>0)%3|0){break ha}b=a+2|0}H[k+12>>2]=b;b=H[j+40>>2];if((b|0)!=H[j+36>>2]){continue}break}break I}f=-1;d=H[p>>2];H[d+(k<<2)>>2]=-1;b=-1;break Q}d=H[p>>2];f=H[d+(f<<2)>>2]}H[(k<<2)+d>>2]=f;E=a+1|0;a=(E>>>0)%3|0?E:a-2|0;b=-1;if((a|0)==-1){break Q}b=H[(a<<2)+d>>2]}H[d+y>>2]=b;ia:{if((m|0)==-1){H[d+h>>2]=-1;t=-1;a=-1;break ia}ja:{ka:{la:{if((m>>>0)%3|0){b=m-1|0;break la}b=m+2|0;if((b|0)==-1){break ka}}a=H[(b<<2)+d>>2];H[d+h>>2]=a;if((a|0)==-1){break ja}H[H[p+24>>2]+(a<<2)>>2]=t;break ja}H[d+h>>2]=-1}t=-1;b=m+1|0;b=(b>>>0)%3|0?b:m-2|0;a=-1;if((b|0)==-1){break ia}t=H[(b<<2)+d>>2];a=b}b=H[j+388>>2];h=f<<2;m=b+h|0;y=b;b=t<<2;H[m>>2]=H[m>>2]+H[y+b>>2];m=b;b=H[p+24>>2];m=m+b|0;if((f|0)!=-1){H[b+h>>2]=H[m>>2]}b=a;while(1){if((b|0)==-1){break O}H[(b<<2)+d>>2]=f;p=b+1|0;b=(p>>>0)%3|0?p:b-2|0;h=-1;ma:{if((b|0)==-1){break ma}b=H[q+(b<<2)>>2];h=-1;if((b|0)==-1){break ma}h=b+1|0;h=(h>>>0)%3|0?h:b-2|0}b=h;if((a|0)!=(b|0)){continue}break}}b=-1;if(!D){break E}break D}H[m>>2]=-1;na:{if(P){break na}if((z|0)!=(A|0)){H[A>>2]=t;A=A+4|0;H[l+28>>2]=A;break na}a=z-o|0;h=a>>2;b=h+1|0;if(b>>>0>=1073741824){break b}d=a>>>1|0;d=a>>>0>=2147483644?1073741823:b>>>0>>0?d:b;if(d){if(d>>>0>=1073741824){break B}a=pa(d<<2)}else{a=0}b=a+(h<<2)|0;H[b>>2]=t;A=b+4|0;if((o|0)!=(z|0)){while(1){b=b-4|0;z=z-4|0;H[b>>2]=H[z>>2];if((o|0)!=(z|0)){continue}break}}z=a+(d<<2)|0;H[l+32>>2]=z;H[l+28>>2]=A;H[l+24>>2]=b;if(o){oa(o)}o=b}H[w>>2]=k}Ce(r,k);d=g}D=(i|0)<(n|0);if((i|0)!=(n|0)){continue}break}i=n}b=-1;d=H[j+8>>2];if(H[d+28>>2]-H[d+24>>2]>>2>(L|0)){break D}if((c|0)!=(g|0)){x=j+72|0;h=j+60|0;p=j+312|0;while(1){c=c-4|0;o=H[c>>2];H[l+68>>2]=c;oa:{pa:{qa:{if(J[j+270>>1]<=513){if(!I[j+364|0]){break pa}a=H[j+360>>2];b=H[j+352>>2]+(a>>>3|0)|0;if(b>>>0>=K[j+356>>2]){break qa}b=I[b|0];H[j+360>>2]=a+1;if(!(b>>>(a&7)&1)){break qa}break pa}if(Ba(p)){break pa}}b=H[j+64>>2];a=H[j+68>>2];if((b|0)==a<<5){if((b+1|0)<0){break b}if(b>>>0<=1073741822){a=a<<6;b=(b&-32)+32|0;a=a>>>0>b>>>0?a:b}else{a=2147483647}pb(h,a);b=H[j+64>>2]}H[j+64>>2]=b+1;a=H[j+60>>2]+(b>>>3&536870908)|0;d=H[a>>2];Q=a,R=Vj(b)&d,H[Q>>2]=R;b=H[j+76>>2];if((b|0)!=H[j+80>>2]){H[b>>2]=o;H[j+76>>2]=b+4;break oa}d=H[x>>2];a=b-d|0;k=a>>2;f=k+1|0;if(f>>>0<1073741824){n=a>>>1|0;n=a>>>0>=2147483644?1073741823:f>>>0>>0?n:f;if(n){if(n>>>0>=1073741824){break B}a=pa(n<<2)}else{a=0}f=a+(k<<2)|0;H[f>>2]=o;o=f+4|0;if((b|0)!=(d|0)){while(1){f=f-4|0;b=b-4|0;H[f>>2]=H[b>>2];if((b|0)!=(d|0)){continue}break}}H[j+80>>2]=a+(n<<2);H[j+76>>2]=o;H[j+72>>2]=f;if(!d){break oa}oa(d);break oa}break b}m=H[j+8>>2];r=H[m>>2];if(((H[m+4>>2]-r>>2>>>0)/3|0)<=(i|0)){b=-1;break D}d=-1;q=H[m+24>>2];n=-1;ra:{if((o|0)==-1){break ra}g=o+1|0;g=(g>>>0)%3|0?g:o-2|0;n=-1;if((g|0)==-1){break ra}n=H[r+(g<<2)>>2]}a=H[q+(n<<2)>>2];sa:{if((a|0)==-1){k=1;f=-1;break sa}k=1;f=-1;b=a+1|0;a=(b>>>0)%3|0?b:a-2|0;if((a|0)==-1){break sa}k=0;d=a;b=a+1|0;b=(b>>>0)%3|0?b:a-2|0;if((b|0)!=-1){f=H[r+(b<<2)>>2]}}b=-1;g=-1;a=H[q+(f<<2)>>2];if((a|0)!=-1){g=a+1|0;g=(g>>>0)%3|0?g:a-2|0}if((d|0)==(o|0)|(g|0)==(o|0)|((o|0)!=-1&H[H[m+12>>2]+(o<<2)>>2]!=-1|(d|0)==(g|0))){break D}if(!k&H[H[m+12>>2]+(d<<2)>>2]!=-1){break D}k=-1;a=H[m+12>>2];m=-1;ta:{if((g|0)==-1){break ta}if(H[a+(g<<2)>>2]!=-1){break D}b=g+1|0;b=(b>>>0)%3|0?b:g-2|0;m=-1;if((b|0)==-1){break ta}m=H[r+(b<<2)>>2]}b=N(i,3);H[l>>2]=b;H[a+(b<<2)>>2]=o;H[a+(o<<2)>>2]=b;b=H[l>>2]+1|0;H[a+(b<<2)>>2]=d;H[a+(d<<2)>>2]=b;b=H[l>>2]+2|0;H[a+(b<<2)>>2]=g;H[a+(g<<2)>>2]=b;a=H[l>>2];H[r+(a<<2)>>2]=f;b=a+1|0;d=r+(b<<2)|0;H[d>>2]=m;g=a+2|0;o=r+(g<<2)|0;H[o>>2]=n;a=H[j+120>>2];f=b?f:-1;n=a+(f>>>3&536870908)|0;r=H[n>>2];Q=n,R=Vj(f)&r,H[Q>>2]=R;k=(b|0)!=-1?H[d>>2]:k;b=a+(k>>>3&536870908)|0;d=H[b>>2];Q=b,R=Vj(k)&d,H[Q>>2]=R;b=-1;b=(g|0)!=-1?H[o>>2]:b;a=a+(b>>>3&536870908)|0;d=H[a>>2];Q=a,R=Vj(b)&d,H[Q>>2]=R;F[l+88|0]=1;_c(h,l+88|0);Ka(x,l);i=i+1|0;g=H[l+64>>2]}if((c|0)!=(g|0)){continue}break}d=H[j+8>>2]}b=-1;if(((H[d+4>>2]-H[d>>2]>>2>>>0)/3|0)!=(i|0)){break D}b=H[d+28>>2]-H[d+24>>2]>>2;i=H[l+24>>2];f=H[l+28>>2];if((i|0)==(f|0)){break C}while(1){a=H[i>>2];h=H[d+24>>2];c=b-1|0;g=h+(c<<2)|0;if(H[g>>2]==-1){while(1){c=b-2|0;b=b-1|0;g=h+(c<<2)|0;if(H[g>>2]==-1){continue}break}}if(a>>>0<=c>>>0){H[l>>2]=d;g=H[g>>2];F[l+12|0]=1;H[l+8>>2]=g;H[l+4>>2]=g;if((g|0)!=-1){while(1){d=H[H[j+8>>2]>>2]+(g<<2)|0;if(H[d>>2]!=(c|0)){b=-1;break D}H[d>>2]=a;uc(l);g=H[l+8>>2];if((g|0)!=-1){continue}break}d=H[j+8>>2]}h=H[d+24>>2];g=h+(c<<2)|0;if((a|0)!=-1){H[h+(a<<2)>>2]=H[g>>2]}H[g>>2]=-1;g=1<>2];a=h+(a>>>3&536870908)|0;h=h+(c>>>3&536870908)|0;c=1<>2]&c){g=g|H[a>>2]}else{g=H[a>>2]&(g^-1)}H[a>>2]=g;H[h>>2]=H[h>>2]&(c^-1);b=b-1|0}i=i+4|0;if((f|0)!=(i|0)){continue}break}}i=H[l+24>>2]}if(i){oa(i)}a=H[l+48>>2];if(a){while(1){c=H[a>>2];oa(a);a=c;if(a){continue}break}}a=H[l+40>>2];H[l+40>>2]=0;if(a){oa(a)}a=H[l+64>>2];if(a){H[l+68>>2]=a;oa(a)}ca=l+96|0;break A}wa();v()}if((b|0)==-1){break z}a=O;c=H[a+16>>2];d=c+H[a>>2]|0;c=H[a+8>>2]-c|0;a=H[H[j+4>>2]+32>>2];G[a+38>>1]=J[a+38>>1];H[a>>2]=d;H[a+16>>2]=0;H[a+20>>2]=0;H[a+8>>2]=c;H[a+12>>2]=0;a=H[j+4>>2];c=J[a+36>>1];g=c<<8|c>>>8;if((g&65535)>>>0<=513){a=H[a+32>>2];c=H[a+16>>2];d=M+H[a+20>>2]|0;c=c+C|0;d=c>>>0>>0?d+1|0:d;H[a+16>>2]=c;H[a+20>>2]=d}ua:{if(H[j+216>>2]==H[j+220>>2]){break ua}c=H[j+8>>2];a=H[c>>2];c=H[c+4>>2];va:{if((g&65535)>>>0>=513){if((a|0)==(c|0)){break ua}c=0;break va}if((a|0)==(c|0)){break ua}c=0;while(1){if(cd(j,c)){c=c+3|0;a=H[j+8>>2];if(c>>>0>2]-H[a>>2]>>2>>>0){continue}break ua}break}break z}while(1){if(bd(j,c)){c=c+3|0;a=H[j+8>>2];if(c>>>0>2]-H[a>>2]>>2>>>0){continue}break ua}break}break z}ad(e);c=H[j+216>>2];if((c|0)!=H[j+220>>2]){n=0;while(1){d=N(n,144);Jc((d+c|0)+4|0,H[j+8>>2]);a=H[B>>2];e=a+d|0;c=H[e+132>>2];e=H[e+136>>2];if((c|0)!=(e|0)){while(1){Hc((d+H[B>>2]|0)+4|0,H[c>>2]);c=c+4|0;if((e|0)!=(c|0)){continue}break}a=H[B>>2]}if(!Ic((a+d|0)+4|0)){break z}n=n+1|0;c=H[j+216>>2];if(n>>>0<(H[j+220>>2]-c|0)/144>>>0){continue}break}}a=H[j+8>>2];Hb(j+184|0,H[a+28>>2]-H[a+24>>2]>>2);u=H[j+216>>2];if((u|0)!=H[j+220>>2]){c=0;while(1){a=N(c,144)+u|0;d=H[a+60>>2]-H[a+56>>2]>>2;f=a+104|0;a=H[j+8>>2];a=H[a+28>>2]-H[a+24>>2]>>2;Hb(f,(a|0)<(d|0)?d:a);c=c+1|0;u=H[j+216>>2];if(c>>>0<(H[j+220>>2]-u|0)/144>>>0){continue}break}}u=$c(j,b)}break c}u=0}ca=s- -64|0;return u|0}sa();v()}function ii(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,L=0,M=0,O=0,P=0,Q=0,R=0,S=0;u=ca+-64|0;ca=u;H[a+132>>2]=0;if(H[a+148>>2]){c=H[a+144>>2];if(c){while(1){b=H[c>>2];oa(c);c=b;if(b){continue}break}}c=0;H[a+144>>2]=0;k=H[a+140>>2];a:{if(!k){break a}if(k>>>0>=4){b=k&-4;while(1){f=c<<2;H[f+H[a+136>>2]>>2]=0;H[H[a+136>>2]+(f|4)>>2]=0;H[H[a+136>>2]+(f|8)>>2]=0;H[H[a+136>>2]+(f|12)>>2]=0;c=c+4|0;e=e+4|0;if((b|0)!=(e|0)){continue}break}}b=k&3;if(!b){break a}while(1){H[H[a+136>>2]+(c<<2)>>2]=0;c=c+1|0;w=w+1|0;if((b|0)!=(w|0)){continue}break}}H[a+148>>2]=0}b:{c:{c=H[a+4>>2];w=I[c+36|0];b=w<<8|I[c+37|0];if(b>>>0<=513){d=H[c+32>>2];d:{if(b>>>0<=511){b=H[d+20>>2];e=H[d+16>>2];f=e+4|0;b=f>>>0<4?b+1|0:b;k=H[d+12>>2];if(K[d+8>>2]>>0&(k|0)<=(b|0)|(b|0)>(k|0)){break c}e=e+H[d>>2]|0;e=I[e|0]|I[e+1|0]<<8|(I[e+2|0]<<16|I[e+3|0]<<24);H[d+16>>2]=f;H[d+20>>2]=b;break d}if(!Ea(1,u,d)){break c}c=H[a+4>>2];w=I[c+36|0];e=H[u>>2]}H[a+132>>2]=e}d=H[c+32>>2];e:{f:{g:{if((w&255)>>>0<=1){w=0;b=H[d+20>>2];f=H[d+16>>2];e=f+4|0;b=e>>>0<4?b+1|0:b;k=H[d+12>>2];if(K[d+8>>2]>>0&(k|0)<=(b|0)|(b|0)>(k|0)){break b}f=f+H[d>>2]|0;f=I[f|0]|I[f+1|0]<<8|(I[f+2|0]<<16|I[f+3|0]<<24);H[u+60>>2]=f;H[d+16>>2]=e;H[d+20>>2]=b;H[a+156>>2]=f;t=a+156|0;break g}w=0;if(!Ea(1,u+60|0,d)){break b}c=H[a+4>>2];b=I[c+36|0];H[a+156>>2]=H[u+60>>2];t=a+156|0;if(b>>>0>1){break f}}d=H[c+32>>2];f=H[d+8>>2];k=H[d+12>>2];c=H[d+20>>2];e=H[d+16>>2];b=e+4|0;c=b>>>0<4?c+1|0:c;if(b>>>0>f>>>0&(c|0)>=(k|0)|(c|0)>(k|0)){break b}e=e+H[d>>2]|0;e=I[e|0]|I[e+1|0]<<8|(I[e+2|0]<<16|I[e+3|0]<<24);H[u+56>>2]=e;H[d+16>>2]=b;H[d+20>>2]=c;break e}if(!Ea(1,u+56|0,H[c+32>>2])){break b}e=H[u+56>>2]}if(e>>>0>1431655765){break b}b=H[t>>2];c=N(e,3);if(b>>>0>c>>>0){break b}f=c>>>1|0;c=b>>31;c=Rj(b-1|0,c-!b|0,b,c);k=da;b=k>>>1|0;c=(k&1)<<31|c>>>1;if(!b&c>>>0>>0){break b}E=H[a+4>>2];x=H[E+32>>2];c=H[x+8>>2];d=H[x+12>>2];b=H[x+20>>2];g=H[x+16>>2];if((d|0)<=(b|0)&g>>>0>=c>>>0|(b|0)>(d|0)){break b}j=H[x>>2];l=I[j+g|0];f=x;k=g+1|0;h=k?b:b+1|0;H[f+16>>2]=k;H[f+20>>2]=h;h:{if(I[E+36|0]<=1){f=c;c=b;b=g+5|0;c=b>>>0<5?c+1|0:c;if(b>>>0>f>>>0&(c|0)>=(d|0)|(c|0)>(d|0)){break b}f=k+j|0;t=I[f|0]|I[f+1|0]<<8|(I[f+2|0]<<16|I[f+3|0]<<24);H[u+52>>2]=t;H[x+16>>2]=b;H[x+20>>2]=c;break h}if(!Ea(1,u+52|0,x)){break b}t=H[u+52>>2]}if(e>>>0>>0|((t>>>0)/3|0)+t>>>0>>0){break b}c=H[a+4>>2];d=H[c+32>>2];i:{if(I[c+36|0]<=1){c=H[d+20>>2];b=H[d+16>>2];f=b+4|0;c=f>>>0<4?c+1|0:c;k=H[d+12>>2];if(K[d+8>>2]>>0&(k|0)<=(c|0)|(c|0)>(k|0)){break b}b=b+H[d>>2]|0;b=I[b|0]|I[b+1|0]<<8|(I[b+2|0]<<16|I[b+3|0]<<24);H[u+48>>2]=b;H[d+16>>2]=f;H[d+20>>2]=c;break i}if(!Ea(1,u+48|0,d)){break b}b=H[u+48>>2]}if(b>>>0>t>>>0){break b}H[a+28>>2]=H[a+24>>2];c=$b(pa(88));f=H[a+8>>2];H[a+8>>2]=c;if(f){cb(f);if(!H[a+8>>2]){break b}}H[a+164>>2]=H[a+160>>2];Jb(a+160|0,e);H[a+176>>2]=H[a+172>>2];Jb(a+172|0,e);H[a- -64>>2]=0;H[a+92>>2]=-1;H[a+84>>2]=-1;H[a+88>>2]=-1;H[a+40>>2]=H[a+36>>2];H[a+52>>2]=H[a+48>>2];H[a+76>>2]=H[a+72>>2];M=a+216|0;ed(M);dd(M,l);if(!Lc(H[a+8>>2],e,H[a+156>>2]+b|0)){break b}c=H[a+156>>2];F[u|0]=1;Oa(a+120|0,b+c|0,u);e=H[a+4>>2];c=J[e+36>>1];c=(c<<8|c>>>8)&65535;j:{if(c>>>0<=513){d=H[e+32>>2];k:{if(c>>>0<=511){c=H[d+20>>2];e=H[d+16>>2];f=e+4|0;c=f>>>0<4?c+1|0:c;k=H[d+12>>2];if(K[d+8>>2]>>0&(k|0)<=(c|0)|(c|0)>(k|0)){break b}e=e+H[d>>2]|0;e=I[e|0]|I[e+1|0]<<8|(I[e+2|0]<<16|I[e+3|0]<<24);H[d+16>>2]=f;H[d+20>>2]=c;break k}if(!Ea(1,u+44|0,d)){break b}e=H[u+44>>2]}if(!e){break b}d=H[H[a+4>>2]+32>>2];k=H[d+8>>2];c=H[d+16>>2];f=k-c|0;c=H[d+12>>2]-(H[d+20>>2]+(c>>>0>k>>>0)|0)|0;if((c|0)<=0&e>>>0>f>>>0|(c|0)<0){break b}h=Ha(u);d=H[H[a+4>>2]+32>>2];c=d;k=H[c+16>>2];f=(k+H[c>>2]|0)+e|0;c=H[c+8>>2]-k|0;G[h+38>>1]=J[d+38>>1];H[h>>2]=f;H[h+16>>2]=0;H[h+20>>2]=0;H[h+8>>2]=c-e;H[h+12>>2]=0;c=Ib(a,h);if((c|0)==-1){break b}E=c;P=c>>31;break j}E=-1;P=-1;if((Ib(a,H[e+32>>2])|0)==-1){break b}}B=a+232|0;Ee(B,a);H[a+372>>2]=l;H[a+384>>2]=H[a+156>>2]+b;x=Ha(u);h=x;d=0;k=ca-16|0;ca=k;l:{if(!Ge(B,h)){break l}b=H[h+20>>2];e=H[h+16>>2];c=e+4|0;b=c>>>0<4?b+1|0:b;f=H[h+12>>2];if(K[h+8>>2]>>0&(f|0)<=(b|0)|(b|0)>(f|0)){break l}e=e+H[h>>2]|0;e=I[e|0]|I[e+1|0]<<8|(I[e+2|0]<<16|I[e+3|0]<<24);H[h+16>>2]=c;H[h+20>>2]=b;if((e|0)<0){break l}c=e;e=H[B+152>>2];if((c|0)>=(e|0)){break l}H[k+12>>2]=0;c=H[B+156>>2];b=H[B+160>>2]-c>>2;m:{if(b>>>0>>0){Pa(B+156|0,e-b|0,k+12|0);break m}if(b>>>0<=e>>>0){break m}H[B+160>>2]=c+(e<<2)}d=ta(B+168|0,h)}ca=k+16|0;n:{if(!d){break n}d=0;c=0;e=0;k=0;i=ca-96|0;ca=i;H[i+72>>2]=0;H[i+64>>2]=0;H[i+68>>2]=0;H[i+48>>2]=0;H[i+52>>2]=0;H[i+40>>2]=0;H[i+44>>2]=0;H[i+56>>2]=1065353216;H[i+32>>2]=0;H[i+24>>2]=0;H[i+28>>2]=0;h=a;O=H[a+124>>2];o:{p:{q:{r:{s:{t:{if((t|0)<=0){break t}z=h+400|0;Q=h+232|0;C=H[h+216>>2]!=H[h+220>>2];y=1;while(1){f=k;k=f+1|0;u:{v:{w:{x:{y:{if(H[h+420>>2]!=-1){if(Ba(z)){break y}}if(!I[h+308|0]){break x}z:{o=H[h+296>>2];r=H[h+304>>2];a=o+(r>>>3|0)|0;l=H[h+300>>2];if(a>>>0>=l>>>0){break z}b=I[a|0];a=r+1|0;H[h+304>>2]=a;g=b>>>(r&7)&1;if(!g){break z}n=a>>>3|0;b=o+n|0;A:{if(b>>>0>=l>>>0){b=a;a=0;break A}j=I[b|0];b=r+2|0;H[h+304>>2]=b;n=b>>>3|0;a=j>>>(a&7)&1}j=n+o|0;if(j>>>0>>0){j=I[j|0];H[h+304>>2]=b+1;b=j>>>(b&7)<<1&2}else{b=0}p=(a|b)<<1|g;H[h+416>>2]=p;break w}H[h+416>>2]=0;break x}p=H[h+420>>2];H[h+416>>2]=p;if(p){break w}}if((c|0)==(e|0)){b=-1;break s}p=-1;n=H[h+8>>2];o=H[n+24>>2];j=c-4|0;m=H[j>>2];d=-1;B:{if((m|0)==-1){break B}b=m+1|0;b=(b>>>0)%3|0?b:m-2|0;d=-1;if((b|0)==-1){break B}d=H[H[n>>2]+(b<<2)>>2]}b=H[o+(d<<2)>>2];if((b|0)!=-1){a=b+1|0;p=(a>>>0)%3|0?a:b-2|0}if((m|0)==(p|0)){b=-1;break s}if((m|0)!=-1){b=-1;if(H[H[n+12>>2]+(m<<2)>>2]!=-1){break s}}l=H[n+12>>2];if((p|0)!=-1){b=-1;if(H[l+(p<<2)>>2]!=-1){break s}}q=N(f,3);a=q+1|0;H[l+(m<<2)>>2]=a;g=a<<2;H[g+l>>2]=m;r=q+2|0;H[l+(p<<2)>>2]=r;f=r<<2;H[f+l>>2]=p;l=-1;a=-1;C:{if((m|0)==-1){break C}D:{if((m>>>0)%3|0){b=m-1|0;break D}b=m+2|0;a=-1;if((b|0)==-1){break C}}a=H[H[n>>2]+(b<<2)>>2]}E:{if((p|0)==-1){break E}b=p+1|0;b=(b>>>0)%3|0?b:p-2|0;if((b|0)==-1){break E}l=H[H[n>>2]+(b<<2)>>2]}b=-1;if((a|0)==(d|0)|(d|0)==(l|0)){break s}b=H[n>>2];H[b+(q<<2)>>2]=d;H[b+g>>2]=l;H[b+f>>2]=a;if((a|0)!=-1){H[o+(a<<2)>>2]=r}b=H[h+120>>2]+(d>>>3&536870908)|0;a=H[b>>2];R=b,S=Vj(d)&a,H[R>>2]=S;H[j>>2]=q;p=H[c-4>>2];break v}b=-1;F:{G:{H:{I:{J:{K:{L:{M:{N:{O:{P:{switch(p-1|0){case 2:case 4:if((c|0)==(e|0)){break s}g=c-4|0;m=H[g>>2];r=H[h+8>>2];d=H[r+12>>2];if((m|0)!=-1&H[d+(m<<2)>>2]!=-1){break s}q=N(f,3);l=(p|0)==5;j=q+(l?2:1)|0;a=j<<2;H[a+d>>2]=m;H[d+(m<<2)>>2]=j;Ka(r+24|0,11424);d=H[h+8>>2];o=H[d+24>>2];if(H[d+28>>2]-o>>2>(O|0)){break s}n=H[d>>2];p=n+a|0;d=H[r+28>>2];b=H[r+24>>2];a=(d-b>>2)-1|0;H[p>>2]=a;if((b|0)!=(d|0)){H[o+(a<<2)>>2]=j}d=l?q:q+2|0;j=n+(l+q<<2)|0;Q:{if((m|0)==-1){H[n+(d<<2)>>2]=-1;b=-1;break Q}R:{S:{T:{if((m>>>0)%3|0){a=m-1|0;break T}a=m+2|0;if((a|0)==-1){break S}}a=H[n+(a<<2)>>2];H[n+(d<<2)>>2]=a;if((a|0)==-1){break R}H[o+(a<<2)>>2]=d;break R}H[n+(d<<2)>>2]=-1}a=m+1|0;a=(a>>>0)%3|0?a:m-2|0;b=-1;if((a|0)==-1){break Q}b=H[n+(a<<2)>>2]}H[j>>2]=b;H[g>>2]=q;break O;case 0:if((c|0)==(d|0)){break s}a=c-4|0;m=H[a>>2];H[i+68>>2]=a;l=H[i+44>>2];U:{if(!l){c=a;break U}o=H[i+40>>2];g=Uj(l)>>>0>1;b=f&l+2147483647;V:{if(!g){break V}b=f;if(b>>>0>>0){break V}b=(f>>>0)%(l>>>0)|0}j=b;b=H[o+(j<<2)>>2];if(!b){c=a;break U}b=H[b>>2];if(!b){c=a;break U}W:{if(!g){l=l-1|0;while(1){g=H[b+4>>2];X:{if((g|0)!=(f|0)){if((j|0)==(g&l)){break X}c=a;break U}if((f|0)==H[b+8>>2]){break W}}b=H[b>>2];if(b){continue}break}c=a;break U}while(1){g=H[b+4>>2];Y:{if((g|0)!=(f|0)){if(g>>>0>=l>>>0){g=(g>>>0)%(l>>>0)|0}if((g|0)==(j|0)){break Y}c=a;break U}if((f|0)==H[b+8>>2]){break W}}b=H[b>>2];if(b){continue}break}c=a;break U}if((a|0)!=(A|0)){H[a>>2]=H[b+12>>2];H[i+68>>2]=c;break U}g=A-d|0;c=g>>2;e=c+1|0;if(e>>>0>=1073741824){break M}a=g>>>1|0;g=g>>>0>=2147483644?1073741823:a>>>0>e>>>0?a:e;if(g){if(g>>>0>=1073741824){break p}a=pa(g<<2)}else{a=0}e=a+(c<<2)|0;H[e>>2]=H[b+12>>2];c=e+4|0;if((d|0)!=(A|0)){while(1){e=e-4|0;A=A-4|0;H[e>>2]=H[A>>2];if((d|0)!=(A|0)){continue}break}}A=a+(g<<2)|0;H[i+72>>2]=A;H[i+68>>2]=c;H[i+64>>2]=e;if(d){oa(d)}}if((c|0)==(e|0)){break G}j=c-4|0;n=H[j>>2];if((n|0)==(m|0)){break G}d=(n|0)==-1;q=H[h+8>>2];if(!d&H[H[q+12>>2]+(n<<2)>>2]!=-1){break G}r=H[q+12>>2];if((m|0)!=-1&H[r+(m<<2)>>2]!=-1){break G}p=N(f,3);f=p+2|0;H[r+(n<<2)>>2]=f;o=f<<2;H[o+r>>2]=n;a=p+1|0;H[r+(m<<2)>>2]=a;b=a<<2;H[b+r>>2]=m;if(d){break L}if((n>>>0)%3|0){l=n-1|0;break J}l=n+2|0;if((l|0)!=-1){break J}d=H[q>>2];a=-1;break I;case 6:break P;default:break s}}a=H[h+8>>2];Ka(a+24|0,11424);g=H[h+8>>2];p=N(f,3);q=H[a+28>>2];r=H[a+24>>2];o=q-r|0;n=o>>2;l=n-1|0;H[H[g>>2]+(p<<2)>>2]=l;Ka(g+24|0,11424);j=p+1|0;H[H[g>>2]+(j<<2)>>2]=(H[g+28>>2]-H[g+24>>2]>>2)-1;a=H[h+8>>2];Ka(a+24|0,11424);g=p+2|0;H[H[a>>2]+(g<<2)>>2]=(H[a+28>>2]-H[a+24>>2]>>2)-1;a=H[h+8>>2];m=H[a+24>>2];if(H[a+28>>2]-m>>2>(O|0)){break s}Z:{_:{if((q|0)!=(r|0)){H[m+(l<<2)>>2]=p;b=0;if((o|0)==-4){break _}}H[m+(n<<2)>>2]=j;b=n+1|0;if((b|0)==-1){break Z}}H[m+(b<<2)>>2]=g}if((c|0)!=(A|0)){H[c>>2]=p;c=c+4|0;H[i+68>>2]=c;break N}g=c-d|0;b=g>>2;e=b+1|0;if(e>>>0>=1073741824){break K}a=g>>>1|0;g=g>>>0>=2147483644?1073741823:a>>>0>e>>>0?a:e;if(g){if(g>>>0>=1073741824){break p}a=pa(g<<2)}else{a=0}e=a+(b<<2)|0;H[e>>2]=p;A=a+(g<<2)|0;a=e+4|0;if((c|0)!=(d|0)){while(1){e=e-4|0;c=c-4|0;H[e>>2]=H[c>>2];if((c|0)!=(d|0)){continue}break}}H[i+72>>2]=A;H[i+68>>2]=a;H[i+64>>2]=e;if(d){oa(d)}c=a}d=e}De(Q,H[c-4>>2]);g=H[h+40>>2];if((g|0)==H[h+36>>2]){break u}b=g-12|0;a=H[b+4>>2];l=(f^-1)+t|0;if(a>>>0>l>>>0){break G}if((a|0)!=(l|0)){break u}f=I[g-4|0];a=H[b>>2];H[h+40>>2]=b;if((a|0)<0){break G}g=c-4|0;j=H[g>>2];H[i+20>>2]=(a^-1)+t;a=i+20|0;H[i+88>>2]=a;Gb(i,i+40|0,a,i+88|0);b=H[i>>2];$:{if(f&1){a=-1;if((j|0)==-1){break $}a=j+1|0;a=(a>>>0)%3|0?a:j-2|0;break $}a=-1;if((j|0)==-1){break $}a=j-1|0;if((j>>>0)%3|0){break $}a=j+2|0}H[b+12>>2]=a;b=H[h+40>>2];if((b|0)==H[h+36>>2]){break u}while(1){j=b-12|0;a=H[j+4>>2];if(a>>>0>l>>>0){break G}if((a|0)!=(l|0)){break u}f=I[b-4|0];a=H[j>>2];H[h+40>>2]=j;if((a|0)<0){break G}j=H[g>>2];H[i+20>>2]=(a^-1)+t;a=i+20|0;H[i+88>>2]=a;Gb(i,i+40|0,a,i+88|0);b=H[i>>2];aa:{if(f&1){a=-1;if((j|0)==-1){break aa}a=j+1|0;a=(a>>>0)%3|0?a:j-2|0;break aa}a=-1;if((j|0)==-1){break aa}a=j-1|0;if((j>>>0)%3|0){break aa}a=j+2|0}H[b+12>>2]=a;b=H[h+40>>2];if((b|0)!=H[h+36>>2]){continue}break}break u}sa();v()}l=-1;d=H[q>>2];H[d+(p<<2)>>2]=-1;g=-1;break H}sa();v()}d=H[q>>2];a=H[d+(l<<2)>>2]}l=a;H[(p<<2)+d>>2]=a;a=n+1|0;a=(a>>>0)%3|0?a:n-2|0;g=-1;if((a|0)==-1){break H}g=H[(a<<2)+d>>2]}H[b+d>>2]=g;ba:{if((m|0)==-1){H[d+o>>2]=-1;n=-1;a=-1;break ba}ca:{da:{ea:{if((m>>>0)%3|0){b=m-1|0;break ea}b=m+2|0;if((b|0)==-1){break da}}a=H[(b<<2)+d>>2];H[d+o>>2]=a;if((a|0)==-1){break ca}H[H[q+24>>2]+(a<<2)>>2]=f;break ca}H[d+o>>2]=-1}n=-1;b=m+1|0;b=(b>>>0)%3|0?b:m-2|0;a=-1;if((b|0)==-1){break ba}n=H[(b<<2)+d>>2];a=b}g=H[h+388>>2];f=l<<2;b=g+f|0;o=b;m=H[b>>2];b=n<<2;H[o>>2]=m+H[b+g>>2];g=b;b=H[q+24>>2];o=g+b|0;if((l|0)!=-1){H[b+f>>2]=H[o>>2]}b=a;while(1){if((b|0)==-1){break F}H[(b<<2)+d>>2]=l;g=b+1|0;b=(g>>>0)%3|0?g:b-2|0;f=-1;fa:{if((b|0)==-1){break fa}g=H[r+(b<<2)>>2];f=-1;if((g|0)==-1){break fa}b=g+1|0;f=(b>>>0)%3|0?b:g-2|0}b=f;if((a|0)!=(b|0)){continue}break}}b=-1;if(!(y&1)){break t}break s}H[o>>2]=-1;ga:{if(C){break ga}if((D|0)!=(L|0)){H[L>>2]=n;L=L+4|0;H[i+28>>2]=L;break ga}d=D-s|0;b=d>>2;f=b+1|0;if(f>>>0>=1073741824){break q}a=d>>>1|0;f=d>>>0>=2147483644?1073741823:a>>>0>f>>>0?a:f;if(f){if(f>>>0>=1073741824){break p}a=pa(f<<2)}else{a=0}b=a+(b<<2)|0;H[b>>2]=n;L=b+4|0;if((s|0)!=(D|0)){while(1){b=b-4|0;D=D-4|0;H[b>>2]=H[D>>2];if((s|0)!=(D|0)){continue}break}}D=a+(f<<2)|0;H[i+32>>2]=D;H[i+28>>2]=L;H[i+24>>2]=b;if(s){oa(s)}s=b}H[j>>2]=p}De(Q,p);d=e}y=(k|0)<(t|0);if((k|0)!=(t|0)){continue}break}k=t}b=-1;y=H[h+8>>2];if(H[y+28>>2]-H[y+24>>2]>>2>(O|0)){break s}if((c|0)!=(e|0)){r=h+72|0;j=h+60|0;t=h+312|0;while(1){c=c-4|0;z=H[c>>2];H[i+68>>2]=c;ha:{ia:{ja:{if(J[h+270>>1]<=513){if(!I[h+364|0]){break ia}b=H[h+360>>2];a=H[h+352>>2]+(b>>>3|0)|0;if(a>>>0>=K[h+356>>2]){break ja}a=I[a|0];H[h+360>>2]=b+1;if(!(a>>>(b&7)&1)){break ja}break ia}if(Ba(t)){break ia}}ka:{la:{b=H[h+64>>2];f=H[h+68>>2];if((b|0)==f<<5){if((b+1|0)<0){break la}if(b>>>0<=1073741822){f=f<<6;b=(b&-32)+32|0;a=b>>>0>>0?f:b}else{a=2147483647}pb(j,a);b=H[h+64>>2]}H[h+64>>2]=b+1;f=H[h+60>>2]+(b>>>3&536870908)|0;a=H[f>>2];R=f,S=Vj(b)&a,H[R>>2]=S;b=H[h+76>>2];if((b|0)!=H[h+80>>2]){H[b>>2]=z;H[h+76>>2]=b+4;break ha}s=H[r>>2];g=b-s|0;f=g>>2;d=f+1|0;if(d>>>0>=1073741824){break ka}a=g>>>1|0;g=g>>>0>=2147483644?1073741823:a>>>0>d>>>0?a:d;if(g){if(g>>>0>=1073741824){break p}a=pa(g<<2)}else{a=0}d=a+(f<<2)|0;H[d>>2]=z;f=d+4|0;if((b|0)!=(s|0)){while(1){d=d-4|0;b=b-4|0;H[d>>2]=H[b>>2];if((b|0)!=(s|0)){continue}break}}H[h+80>>2]=a+(g<<2);H[h+76>>2]=f;H[h+72>>2]=d;if(!s){break ha}oa(s);break ha}sa();v()}sa();v()}q=H[h+8>>2];C=H[q>>2];if(((H[q+4>>2]-C>>2>>>0)/3|0)<=(k|0)){b=-1;break s}e=-1;b=-1;d=-1;s=H[q+24>>2];f=-1;ma:{if((z|0)==-1){break ma}a=z+1|0;a=(a>>>0)%3|0?a:z-2|0;f=-1;if((a|0)==-1){break ma}f=H[C+(a<<2)>>2]}o=H[s+(f<<2)>>2];na:{if((o|0)==-1){l=1;a=-1;break na}l=1;g=o+1|0;g=(g>>>0)%3|0?g:o-2|0;a=-1;if((g|0)==-1){break na}l=0;a=g+1|0;e=g;a=(a>>>0)%3|0?a:e-2|0;if((a|0)!=-1){a=H[C+(a<<2)>>2]}else{a=-1}}g=H[(a<<2)+s>>2];if((g|0)!=-1){d=g+1|0;d=(d>>>0)%3|0?d:g-2|0}if((e|0)==(z|0)|(d|0)==(z|0)|((z|0)!=-1&H[H[q+12>>2]+(z<<2)>>2]!=-1|(d|0)==(e|0))){break s}if(!l&H[H[q+12>>2]+(e<<2)>>2]!=-1){break s}l=-1;s=H[q+12>>2];g=-1;oa:{if((d|0)==-1){break oa}if(H[s+(d<<2)>>2]!=-1){break s}b=d+1|0;b=(b>>>0)%3|0?b:d-2|0;g=-1;if((b|0)==-1){break oa}g=H[C+(b<<2)>>2]}b=N(k,3);H[i>>2]=b;H[s+(b<<2)>>2]=z;H[s+(z<<2)>>2]=b;b=H[i>>2]+1|0;H[s+(b<<2)>>2]=e;H[s+(e<<2)>>2]=b;b=H[i>>2]+2|0;H[s+(b<<2)>>2]=d;H[s+(d<<2)>>2]=b;b=H[i>>2];H[C+(b<<2)>>2]=a;o=b+1|0;s=C+(o<<2)|0;H[s>>2]=g;g=b+2|0;d=C+(g<<2)|0;H[d>>2]=f;f=H[h+120>>2];e=o?a:-1;b=f+(e>>>3&536870908)|0;a=H[b>>2];R=b,S=Vj(e)&a,H[R>>2]=S;l=(o|0)!=-1?H[s>>2]:l;b=f+(l>>>3&536870908)|0;a=H[b>>2];R=b,S=Vj(l)&a,H[R>>2]=S;b=-1;b=(g|0)!=-1?H[d>>2]:b;e=f+(b>>>3&536870908)|0;a=H[e>>2];R=e,S=Vj(b)&a,H[R>>2]=S;F[i+88|0]=1;_c(j,i+88|0);Ka(r,i);k=k+1|0;e=H[i+64>>2]}if((c|0)!=(e|0)){continue}break}y=H[h+8>>2]}b=-1;if(((H[y+4>>2]-H[y>>2]>>2>>>0)/3|0)!=(k|0)){break s}b=H[y+28>>2]-H[y+24>>2]>>2;k=H[i+24>>2];f=H[i+28>>2];if((k|0)==(f|0)){break r}while(1){j=H[k>>2];a=H[y+24>>2];c=b-1|0;d=a+(c<<2)|0;if(H[d>>2]==-1){while(1){c=b-2|0;b=b-1|0;d=a+(c<<2)|0;if(H[d>>2]==-1){continue}break}}if(c>>>0>=j>>>0){H[i>>2]=y;d=H[d>>2];F[i+12|0]=1;H[i+8>>2]=d;H[i+4>>2]=d;if((d|0)!=-1){while(1){a=H[H[h+8>>2]>>2]+(d<<2)|0;if(H[a>>2]!=(c|0)){b=-1;break s}H[a>>2]=j;uc(i);d=H[i+8>>2];if((d|0)!=-1){continue}break}y=H[h+8>>2]}a=H[y+24>>2];e=a+(c<<2)|0;if((j|0)!=-1){H[a+(j<<2)>>2]=H[e>>2]}H[e>>2]=-1;g=1<>2];e=a+(j>>>3&536870908)|0;d=a+(c>>>3&536870908)|0;a=1<>2]&a){c=g|H[e>>2]}else{c=H[e>>2]&(g^-1)}H[e>>2]=c;H[d>>2]=H[d>>2]&(a^-1);b=b-1|0}k=k+4|0;if((f|0)!=(k|0)){continue}break}}k=H[i+24>>2]}if(k){oa(k)}a=H[i+48>>2];if(a){while(1){c=H[a>>2];oa(a);a=c;if(a){continue}break}}a=H[i+40>>2];H[i+40>>2]=0;if(a){oa(a)}a=H[i+64>>2];if(a){H[i+68>>2]=a;oa(a)}ca=i+96|0;break o}sa();v()}wa();v()}if((b|0)==-1){break n}e=H[x+16>>2];c=e+H[x>>2]|0;a=H[x+8>>2]-e|0;e=H[H[h+4>>2]+32>>2];G[e+38>>1]=J[e+38>>1];H[e>>2]=c;H[e+16>>2]=0;H[e+20>>2]=0;H[e+8>>2]=a;H[e+12>>2]=0;c=H[h+4>>2];a=J[c+36>>1];e=a<<8|a>>>8;if((e&65535)>>>0<=513){c=H[c+32>>2];f=c;a=H[c+16>>2];c=P+H[c+20>>2]|0;a=a+E|0;c=a>>>0>>0?c+1|0:c;H[f+16>>2]=a;H[f+20>>2]=c}pa:{if(H[h+216>>2]==H[h+220>>2]){break pa}a=H[h+8>>2];c=H[a>>2];a=H[a+4>>2];qa:{if((e&65535)>>>0>=513){if((a|0)==(c|0)){break pa}c=0;break qa}if((a|0)==(c|0)){break pa}c=0;while(1){if(cd(h,c)){c=c+3|0;a=H[h+8>>2];if(c>>>0>2]-H[a>>2]>>2>>>0){continue}break pa}break}break n}while(1){if(bd(h,c)){c=c+3|0;a=H[h+8>>2];if(c>>>0>2]-H[a>>2]>>2>>>0){continue}break pa}break}break n}ad(B);c=H[h+216>>2];if((c|0)!=H[h+220>>2]){t=0;while(1){f=N(t,144);Jc((f+c|0)+4|0,H[h+8>>2]);a=H[M>>2];e=a+f|0;c=H[e+132>>2];e=H[e+136>>2];if((c|0)!=(e|0)){while(1){Hc((f+H[M>>2]|0)+4|0,H[c>>2]);c=c+4|0;if((e|0)!=(c|0)){continue}break}a=H[M>>2]}if(!Ic((a+f|0)+4|0)){break n}t=t+1|0;c=H[h+216>>2];if(t>>>0<(H[h+220>>2]-c|0)/144>>>0){continue}break}}a=H[h+8>>2];Hb(h+184|0,H[a+28>>2]-H[a+24>>2]>>2);w=H[h+216>>2];if((w|0)!=H[h+220>>2]){c=0;while(1){a=N(c,144)+w|0;e=H[a+60>>2]-H[a+56>>2]>>2;f=a+104|0;a=H[h+8>>2];a=H[a+28>>2]-H[a+24>>2]>>2;Hb(f,(a|0)<(e|0)?e:a);c=c+1|0;w=H[h+216>>2];if(c>>>0<(H[h+220>>2]-w|0)/144>>>0){continue}break}}w=$c(h,b)}break b}w=0}ca=u- -64|0;return w|0}function ki(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,L=0,M=0,O=0,P=0,Q=0;t=ca+-64|0;ca=t;H[a+132>>2]=0;if(H[a+148>>2]){d=H[a+144>>2];if(d){while(1){b=H[d>>2];oa(d);d=b;if(b){continue}break}}d=0;H[a+144>>2]=0;j=H[a+140>>2];a:{if(!j){break a}if(j>>>0>=4){b=j&-4;while(1){c=d<<2;H[c+H[a+136>>2]>>2]=0;H[H[a+136>>2]+(c|4)>>2]=0;H[H[a+136>>2]+(c|8)>>2]=0;H[H[a+136>>2]+(c|12)>>2]=0;d=d+4|0;e=e+4|0;if((b|0)!=(e|0)){continue}break}}b=j&3;if(!b){break a}while(1){H[H[a+136>>2]+(d<<2)>>2]=0;d=d+1|0;x=x+1|0;if((b|0)!=(x|0)){continue}break}}H[a+148>>2]=0}b:{c:{d=H[a+4>>2];x=I[d+36|0];b=x<<8|I[d+37|0];if(b>>>0<=513){f=H[d+32>>2];d:{if(b>>>0<=511){b=H[f+20>>2];e=H[f+16>>2];c=e+4|0;b=c>>>0<4?b+1|0:b;j=H[f+12>>2];if(K[f+8>>2]>>0&(j|0)<=(b|0)|(b|0)>(j|0)){break c}e=e+H[f>>2]|0;e=I[e|0]|I[e+1|0]<<8|(I[e+2|0]<<16|I[e+3|0]<<24);H[f+16>>2]=c;H[f+20>>2]=b;break d}if(!Ea(1,t,f)){break c}d=H[a+4>>2];x=I[d+36|0];e=H[t>>2]}H[a+132>>2]=e}f=H[d+32>>2];e:{f:{g:{if((x&255)>>>0<=1){x=0;b=H[f+20>>2];c=H[f+16>>2];e=c+4|0;b=e>>>0<4?b+1|0:b;j=H[f+12>>2];if(K[f+8>>2]>>0&(j|0)<=(b|0)|(b|0)>(j|0)){break b}c=c+H[f>>2]|0;c=I[c|0]|I[c+1|0]<<8|(I[c+2|0]<<16|I[c+3|0]<<24);H[t+60>>2]=c;H[f+16>>2]=e;H[f+20>>2]=b;H[a+156>>2]=c;l=a+156|0;break g}x=0;if(!Ea(1,t+60|0,f)){break b}d=H[a+4>>2];b=I[d+36|0];H[a+156>>2]=H[t+60>>2];l=a+156|0;if(b>>>0>1){break f}}f=H[d+32>>2];c=H[f+8>>2];j=H[f+12>>2];d=H[f+20>>2];e=H[f+16>>2];b=e+4|0;d=b>>>0<4?d+1|0:d;if(b>>>0>c>>>0&(d|0)>=(j|0)|(d|0)>(j|0)){break b}e=e+H[f>>2]|0;e=I[e|0]|I[e+1|0]<<8|(I[e+2|0]<<16|I[e+3|0]<<24);H[t+56>>2]=e;H[f+16>>2]=b;H[f+20>>2]=d;break e}if(!Ea(1,t+56|0,H[d+32>>2])){break b}e=H[t+56>>2]}if(e>>>0>1431655765){break b}b=H[l>>2];d=N(e,3);if(b>>>0>d>>>0){break b}c=d>>>1|0;d=b>>31;d=Rj(b-1|0,d-!b|0,b,d);j=da;b=j>>>1|0;d=(j&1)<<31|d>>>1;if(!b&d>>>0>>0){break b}k=H[a+4>>2];y=H[k+32>>2];d=H[y+8>>2];f=H[y+12>>2];b=H[y+20>>2];m=H[y+16>>2];if((f|0)<=(b|0)&m>>>0>=d>>>0|(b|0)>(f|0)){break b}l=H[y>>2];g=I[l+m|0];c=y;j=m+1|0;C=j?b:b+1|0;H[c+16>>2]=j;H[c+20>>2]=C;h:{if(I[k+36|0]<=1){c=d;d=b;b=m+5|0;d=b>>>0<5?d+1|0:d;if(b>>>0>c>>>0&(d|0)>=(f|0)|(d|0)>(f|0)){break b}c=j+l|0;l=I[c|0]|I[c+1|0]<<8|(I[c+2|0]<<16|I[c+3|0]<<24);H[t+52>>2]=l;H[y+16>>2]=b;H[y+20>>2]=d;break h}if(!Ea(1,t+52|0,y)){break b}l=H[t+52>>2]}if(e>>>0>>0|((l>>>0)/3|0)+l>>>0>>0){break b}d=H[a+4>>2];f=H[d+32>>2];i:{if(I[d+36|0]<=1){d=H[f+20>>2];b=H[f+16>>2];c=b+4|0;d=c>>>0<4?d+1|0:d;j=H[f+12>>2];if(K[f+8>>2]>>0&(j|0)<=(d|0)|(d|0)>(j|0)){break b}b=b+H[f>>2]|0;b=I[b|0]|I[b+1|0]<<8|(I[b+2|0]<<16|I[b+3|0]<<24);H[t+48>>2]=b;H[f+16>>2]=c;H[f+20>>2]=d;break i}if(!Ea(1,t+48|0,f)){break b}b=H[t+48>>2]}if(b>>>0>l>>>0){break b}H[a+28>>2]=H[a+24>>2];d=$b(pa(88));c=H[a+8>>2];H[a+8>>2]=d;if(c){cb(c);if(!H[a+8>>2]){break b}}H[a+164>>2]=H[a+160>>2];Jb(a+160|0,e);H[a+176>>2]=H[a+172>>2];Jb(a+172|0,e);H[a- -64>>2]=0;H[a+92>>2]=-1;H[a+84>>2]=-1;H[a+88>>2]=-1;H[a+40>>2]=H[a+36>>2];H[a+52>>2]=H[a+48>>2];H[a+76>>2]=H[a+72>>2];E=a+216|0;ed(E);dd(E,g);if(!Lc(H[a+8>>2],e,H[a+156>>2]+b|0)){break b}d=H[a+156>>2];F[t|0]=1;Oa(a+120|0,b+d|0,t);b=H[a+4>>2];d=J[b+36>>1];d=(d<<8|d>>>8)&65535;j:{if(d>>>0<=513){j=H[b+32>>2];k:{if(d>>>0<=511){d=H[j+20>>2];e=H[j+16>>2];b=e+4|0;d=b>>>0<4?d+1|0:d;c=H[j+12>>2];if(K[j+8>>2]>>0&(c|0)<=(d|0)|(d|0)>(c|0)){break b}e=e+H[j>>2]|0;e=I[e|0]|I[e+1|0]<<8|(I[e+2|0]<<16|I[e+3|0]<<24);H[j+16>>2]=b;H[j+20>>2]=d;break k}if(!Ea(1,t+44|0,j)){break b}e=H[t+44>>2]}if(!e){break b}j=H[H[a+4>>2]+32>>2];c=H[j+8>>2];d=H[j+16>>2];b=c-d|0;d=H[j+12>>2]-(H[j+20>>2]+(d>>>0>c>>>0)|0)|0;if(b>>>0>>0&(d|0)<=0|(d|0)<0){break b}f=Ha(t);j=H[H[a+4>>2]+32>>2];c=H[j+16>>2];b=(c+H[j>>2]|0)+e|0;d=H[j+8>>2]-c|0;G[f+38>>1]=J[j+38>>1];H[f>>2]=b;H[f+16>>2]=0;H[f+20>>2]=0;H[f+8>>2]=d-e;H[f+12>>2]=0;d=Ib(a,f);if((d|0)==-1){break b}y=d;M=d>>31;break j}y=-1;M=-1;if((Ib(a,H[b+32>>2])|0)==-1){break b}}O=a+232|0;e=O;H[e+144>>2]=a;d=H[(ea[H[H[a>>2]+32>>2]](a)|0)+32>>2];b=H[d>>2]+H[d+16>>2]|0;d=H[(ea[H[H[a>>2]+32>>2]](a)|0)+32>>2];d=H[d+8>>2]-H[d+16>>2]|0;P=e,Q=J[H[(ea[H[H[a>>2]+32>>2]](a)|0)+32>>2]+38>>1],G[P+38>>1]=Q;H[e>>2]=b;H[e+16>>2]=0;H[e+20>>2]=0;H[e+8>>2]=d;H[e+12>>2]=0;H[a+372>>2]=g;C=Ha(t);l:{if(!Ge(e,C)){break l}b=0;d=0;e=0;j=0;i=ca-96|0;ca=i;H[i+72>>2]=0;H[i+64>>2]=0;H[i+68>>2]=0;H[i+48>>2]=0;H[i+52>>2]=0;H[i+40>>2]=0;H[i+44>>2]=0;H[i+56>>2]=1065353216;H[i+32>>2]=0;H[i+24>>2]=0;H[i+28>>2]=0;h=a;L=H[a+124>>2];m:{n:{o:{p:{q:{r:{if((l|0)<=0){break r}A=H[h+216>>2]!=H[h+220>>2];s=1;while(1){f=j;j=f+1|0;s:{t:{u:{v:{w:{x:{y:{z:{A:{B:{C:{D:{E:{F:{G:{if(!I[h+308|0]){break G}u=H[h+296>>2];g=H[h+304>>2];a=u+(g>>>3|0)|0;p=H[h+300>>2];if(a>>>0>=p>>>0){break G}c=I[a|0];a=g+1|0;H[h+304>>2]=a;m=c>>>(g&7)&1;if(!m){break G}n=0;k=a>>>3|0;c=u+k|0;H:{if(c>>>0>=p>>>0){g=a;a=0;break H}c=I[c|0];g=g+2|0;H[h+304>>2]=g;k=g>>>3|0;a=c>>>(a&7)&1}c=k+u|0;if(c>>>0

>>0){c=I[c|0];H[h+304>>2]=g+1;n=c>>>(g&7)<<1&2}k=-1;a=m|(a|n)<<1;switch(a-1|0){case 6:break D;case 0:break E;case 2:case 4:break F;default:break q}}if((d|0)==(e|0)){k=-1;break q}g=-1;q=H[h+8>>2];u=H[q+24>>2];p=d-4|0;s=H[p>>2];c=-1;I:{if((s|0)==-1){break I}b=s+1|0;b=(b>>>0)%3|0?b:s-2|0;c=-1;if((b|0)==-1){break I}c=H[H[q>>2]+(b<<2)>>2]}b=H[u+(c<<2)>>2];if((b|0)!=-1){a=b+1|0;g=(a>>>0)%3|0?a:b-2|0}if((g|0)==(s|0)){k=-1;break q}if((s|0)!=-1){k=-1;if(H[H[q+12>>2]+(s<<2)>>2]!=-1){break q}}b=H[q+12>>2];if((g|0)!=-1){k=-1;if(H[b+(g<<2)>>2]!=-1){break q}}n=N(f,3);a=n+1|0;H[b+(s<<2)>>2]=a;m=a<<2;H[m+b>>2]=s;r=n+2|0;H[b+(g<<2)>>2]=r;f=r<<2;H[f+b>>2]=g;o=-1;a=-1;J:{if((s|0)==-1){break J}K:{if((s>>>0)%3|0){b=s-1|0;break K}b=s+2|0;a=-1;if((b|0)==-1){break J}}a=H[H[q>>2]+(b<<2)>>2]}L:{if((g|0)==-1){break L}b=g+1|0;b=(b>>>0)%3|0?b:g-2|0;if((b|0)==-1){break L}o=H[H[q>>2]+(b<<2)>>2]}k=-1;if((a|0)==(c|0)|(c|0)==(o|0)){break q}b=H[q>>2];H[b+(n<<2)>>2]=c;H[b+m>>2]=o;H[b+f>>2]=a;if((a|0)!=-1){H[u+(a<<2)>>2]=r}b=H[h+120>>2]+(c>>>3&536870908)|0;a=H[b>>2];P=b,Q=Vj(c)&a,H[P>>2]=Q;H[p>>2]=n;b=e;break s}if((d|0)==(e|0)){break q}m=d-4|0;n=H[m>>2];r=H[h+8>>2];b=H[r+12>>2];if((n|0)!=-1&H[b+(n<<2)>>2]!=-1){break q}o=N(f,3);p=(a|0)==5;g=o+(p?2:1)|0;a=g<<2;H[a+b>>2]=n;H[b+(n<<2)>>2]=g;Ka(r+24|0,11424);b=H[h+8>>2];u=H[b+24>>2];if(H[b+28>>2]-u>>2>(L|0)){break q}k=H[b>>2];q=k+a|0;c=H[r+28>>2];b=H[r+24>>2];a=(c-b>>2)-1|0;H[q>>2]=a;if((b|0)!=(c|0)){H[u+(a<<2)>>2]=g}c=p?o:o+2|0;g=k+(o+p<<2)|0;M:{if((n|0)==-1){H[k+(c<<2)>>2]=-1;b=-1;break M}N:{O:{P:{if((n>>>0)%3|0){a=n-1|0;break P}a=n+2|0;if((a|0)==-1){break O}}a=H[k+(a<<2)>>2];H[k+(c<<2)>>2]=a;if((a|0)==-1){break N}H[u+(a<<2)>>2]=c;break N}H[k+(c<<2)>>2]=-1}a=n+1|0;a=(a>>>0)%3|0?a:n-2|0;b=-1;if((a|0)==-1){break M}b=H[k+(a<<2)>>2]}H[g>>2]=b;H[m>>2]=o;b=e;break y}if((b|0)==(d|0)){break q}a=d-4|0;q=H[a>>2];H[i+68>>2]=a;p=H[i+44>>2];Q:{if(!p){d=a;break Q}g=H[i+40>>2];k=Uj(p)>>>0>1;c=f&p+2147483647;R:{if(!k){break R}c=f;if(c>>>0

>>0){break R}c=(f>>>0)%(p>>>0)|0}m=c;c=H[g+(m<<2)>>2];if(!c){d=a;break Q}g=H[c>>2];if(!g){d=a;break Q}S:{if(!k){k=p-1|0;while(1){c=H[g+4>>2];T:{if((c|0)!=(f|0)){if((m|0)==(c&k)){break T}d=a;break Q}if((f|0)==H[g+8>>2]){break S}}g=H[g>>2];if(g){continue}break}d=a;break Q}while(1){c=H[g+4>>2];U:{if((c|0)!=(f|0)){if(c>>>0>=p>>>0){c=(c>>>0)%(p>>>0)|0}if((c|0)==(m|0)){break U}d=a;break Q}if((f|0)==H[g+8>>2]){break S}}g=H[g>>2];if(g){continue}break}d=a;break Q}if((a|0)!=(z|0)){H[a>>2]=H[g+12>>2];H[i+68>>2]=d;break Q}c=z-b|0;d=c>>2;e=d+1|0;if(e>>>0>=1073741824){break C}a=c>>>1|0;c=c>>>0>=2147483644?1073741823:a>>>0>e>>>0?a:e;if(c){if(c>>>0>=1073741824){break n}a=pa(c<<2)}else{a=0}e=a+(d<<2)|0;H[e>>2]=H[g+12>>2];d=e+4|0;if((b|0)!=(z|0)){while(1){e=e-4|0;z=z-4|0;H[e>>2]=H[z>>2];if((b|0)!=(z|0)){continue}break}}z=a+(c<<2)|0;H[i+72>>2]=z;H[i+68>>2]=d;H[i+64>>2]=e;if(b){oa(b)}}if((d|0)==(e|0)){break u}g=d-4|0;n=H[g>>2];if((n|0)==(q|0)){break u}b=(n|0)==-1;o=H[h+8>>2];if(!b&H[H[o+12>>2]+(n<<2)>>2]!=-1){break u}r=H[o+12>>2];if((q|0)!=-1&H[r+(q<<2)>>2]!=-1){break u}u=N(f,3);f=u+2|0;H[r+(n<<2)>>2]=f;p=f<<2;H[p+r>>2]=n;a=u+1|0;H[r+(q<<2)>>2]=a;c=a<<2;H[c+r>>2]=q;if(b){break B}if((n>>>0)%3|0){m=n-1|0;break x}m=n+2|0;if((m|0)!=-1){break x}a=H[o>>2];b=-1;break w}a=H[h+8>>2];Ka(a+24|0,11424);c=H[h+8>>2];q=N(f,3);r=H[a+28>>2];u=H[a+24>>2];p=r-u|0;o=p>>2;g=o-1|0;H[H[c>>2]+(q<<2)>>2]=g;Ka(c+24|0,11424);m=q+1|0;H[H[c>>2]+(m<<2)>>2]=(H[c+28>>2]-H[c+24>>2]>>2)-1;a=H[h+8>>2];Ka(a+24|0,11424);c=q+2|0;H[H[a>>2]+(c<<2)>>2]=(H[a+28>>2]-H[a+24>>2]>>2)-1;a=H[h+8>>2];n=H[a+24>>2];if(H[a+28>>2]-n>>2>(L|0)){break q}V:{W:{if((r|0)!=(u|0)){H[n+(g<<2)>>2]=q;k=0;if((p|0)==-4){break W}}H[n+(o<<2)>>2]=m;k=o+1|0;if((k|0)==-1){break V}}H[n+(k<<2)>>2]=c}if((d|0)!=(z|0)){H[d>>2]=q;d=d+4|0;H[i+68>>2]=d;break y}m=d-b|0;e=m>>2;c=e+1|0;if(c>>>0>=1073741824){break A}a=m>>>1|0;c=m>>>0>=2147483644?1073741823:a>>>0>c>>>0?a:c;if(c){if(c>>>0>=1073741824){break n}a=pa(c<<2)}else{a=0}e=a+(e<<2)|0;H[e>>2]=q;z=a+(c<<2)|0;a=e+4|0;if((b|0)!=(d|0)){while(1){e=e-4|0;d=d-4|0;H[e>>2]=H[d>>2];if((b|0)!=(d|0)){continue}break}}H[i+72>>2]=z;H[i+68>>2]=a;H[i+64>>2]=e;if(!b){break z}oa(b);break z}sa();v()}m=-1;a=H[o>>2];H[a+(u<<2)>>2]=-1;k=-1;break v}sa();v()}d=a;b=e}m=H[h+40>>2];if((m|0)==H[h+36>>2]){break s}c=m-12|0;a=H[c+4>>2];k=(f^-1)+l|0;if(a>>>0>k>>>0){break u}if((a|0)!=(k|0)){break s}f=I[m-4|0];a=H[c>>2];H[h+40>>2]=c;if((a|0)<0){break u}m=d-4|0;g=H[m>>2];H[i+20>>2]=(a^-1)+l;a=i+20|0;H[i+88>>2]=a;Gb(i,i+40|0,a,i+88|0);c=H[i>>2];X:{if(f&1){a=-1;if((g|0)==-1){break X}a=g+1|0;a=(a>>>0)%3|0?a:g-2|0;break X}a=-1;if((g|0)==-1){break X}a=g-1|0;if((g>>>0)%3|0){break X}a=g+2|0}H[c+12>>2]=a;g=H[h+40>>2];if((g|0)==H[h+36>>2]){break s}while(1){c=g-12|0;a=H[c+4>>2];if(a>>>0>k>>>0){break u}if((a|0)!=(k|0)){break s}f=I[g-4|0];a=H[c>>2];H[h+40>>2]=c;if((a|0)<0){break u}g=H[m>>2];H[i+20>>2]=(a^-1)+l;a=i+20|0;H[i+88>>2]=a;Gb(i,i+40|0,a,i+88|0);c=H[i>>2];Y:{if(f&1){a=-1;if((g|0)==-1){break Y}a=g+1|0;a=(a>>>0)%3|0?a:g-2|0;break Y}a=-1;if((g|0)==-1){break Y}a=g-1|0;if((g>>>0)%3|0){break Y}a=g+2|0}H[c+12>>2]=a;g=H[h+40>>2];if((g|0)!=H[h+36>>2]){continue}break}break s}a=H[o>>2];b=H[a+(m<<2)>>2]}m=b;H[(u<<2)+a>>2]=b;b=n+1|0;b=(b>>>0)%3|0?b:n-2|0;k=-1;if((b|0)==-1){break v}k=H[(b<<2)+a>>2]}H[a+c>>2]=k;Z:{if((q|0)==-1){H[a+p>>2]=-1;n=-1;c=-1;break Z}_:{$:{aa:{if((q>>>0)%3|0){b=q-1|0;break aa}b=q+2|0;if((b|0)==-1){break $}}b=H[(b<<2)+a>>2];H[a+p>>2]=b;if((b|0)==-1){break _}H[H[o+24>>2]+(b<<2)>>2]=f;break _}H[a+p>>2]=-1}n=-1;b=q+1|0;b=(b>>>0)%3|0?b:q-2|0;c=-1;if((b|0)==-1){break Z}n=H[(b<<2)+a>>2];c=b}b=H[o+24>>2];p=b+(n<<2)|0;if((m|0)!=-1){H[b+(m<<2)>>2]=H[p>>2]}b=c;while(1){if((b|0)==-1){break t}H[(b<<2)+a>>2]=m;k=b+1|0;b=(k>>>0)%3|0?k:b-2|0;f=-1;ba:{if((b|0)==-1){break ba}k=H[r+(b<<2)>>2];f=-1;if((k|0)==-1){break ba}b=k+1|0;f=(b>>>0)%3|0?b:k-2|0}b=f;if((c|0)!=(b|0)){continue}break}}k=-1;if(!(s&1)){break r}break q}H[p>>2]=-1;ca:{if(A){break ca}if((B|0)!=(D|0)){H[D>>2]=n;D=D+4|0;H[i+28>>2]=D;break ca}f=B-w|0;b=f>>2;c=b+1|0;if(c>>>0>=1073741824){break o}a=f>>>1|0;c=f>>>0>=2147483644?1073741823:a>>>0>c>>>0?a:c;if(c){if(c>>>0>=1073741824){break n}a=pa(c<<2)}else{a=0}b=a+(b<<2)|0;H[b>>2]=n;D=b+4|0;if((w|0)!=(B|0)){while(1){b=b-4|0;B=B-4|0;H[b>>2]=H[B>>2];if((w|0)!=(B|0)){continue}break}}B=a+(c<<2)|0;H[i+32>>2]=B;H[i+28>>2]=D;H[i+24>>2]=b;if(w){oa(w)}w=b}H[g>>2]=u;b=e}s=(j|0)<(l|0);if((j|0)!=(l|0)){continue}break}j=l}k=-1;a=H[h+8>>2];if(H[a+28>>2]-H[a+24>>2]>>2>(L|0)){break q}if((d|0)!=(e|0)){u=h+72|0;m=h+60|0;p=h+312|0;while(1){d=d-4|0;o=H[d>>2];H[i+68>>2]=d;da:{ea:{fa:{if(J[h+270>>1]<=513){if(!I[h+364|0]){break ea}b=H[h+360>>2];a=H[h+352>>2]+(b>>>3|0)|0;if(a>>>0>=K[h+356>>2]){break fa}a=I[a|0];H[h+360>>2]=b+1;if(!(a>>>(b&7)&1)){break fa}break ea}if(Ba(p)){break ea}}ga:{ha:{b=H[h+64>>2];c=H[h+68>>2];if((b|0)==c<<5){if((b+1|0)<0){break ha}if(b>>>0<=1073741822){c=c<<6;b=(b&-32)+32|0;a=b>>>0>>0?c:b}else{a=2147483647}pb(m,a);b=H[h+64>>2]}H[h+64>>2]=b+1;c=H[h+60>>2]+(b>>>3&536870908)|0;a=H[c>>2];P=c,Q=Vj(b)&a,H[P>>2]=Q;b=H[h+76>>2];if((b|0)!=H[h+80>>2]){H[b>>2]=o;H[h+76>>2]=b+4;break da}l=H[u>>2];w=b-l|0;c=w>>2;f=c+1|0;if(f>>>0>=1073741824){break ga}a=w>>>1|0;f=w>>>0>=2147483644?1073741823:a>>>0>f>>>0?a:f;if(f){if(f>>>0>=1073741824){break n}a=pa(f<<2)}else{a=0}g=a+(c<<2)|0;H[g>>2]=o;c=g+4|0;if((b|0)!=(l|0)){while(1){g=g-4|0;b=b-4|0;H[g>>2]=H[b>>2];if((b|0)!=(l|0)){continue}break}}H[h+80>>2]=a+(f<<2);H[h+76>>2]=c;H[h+72>>2]=g;if(!l){break da}oa(l);break da}sa();v()}sa();v()}r=H[h+8>>2];A=H[r>>2];if(((H[r+4>>2]-A>>2>>>0)/3|0)<=(j|0)){k=-1;break q}a=-1;k=-1;b=-1;w=H[r+24>>2];f=-1;ia:{if((o|0)==-1){break ia}e=o+1|0;e=(e>>>0)%3|0?e:o-2|0;f=-1;if((e|0)==-1){break ia}f=H[A+(e<<2)>>2]}l=H[w+(f<<2)>>2];ja:{if((l|0)==-1){g=1;e=-1;break ja}g=1;c=l+1|0;c=(c>>>0)%3|0?c:l-2|0;e=-1;if((c|0)==-1){break ja}g=0;a=c;e=a+1|0;e=(e>>>0)%3|0?e:a-2|0;if((e|0)!=-1){e=H[A+(e<<2)>>2]}else{e=-1}}c=H[(e<<2)+w>>2];if((c|0)!=-1){b=c+1|0;b=(b>>>0)%3|0?b:c-2|0}if((a|0)==(o|0)|(b|0)==(o|0)|((o|0)!=-1&H[H[r+12>>2]+(o<<2)>>2]!=-1|(a|0)==(b|0))){break q}if(!g&H[H[r+12>>2]+(a<<2)>>2]!=-1){break q}g=-1;l=H[r+12>>2];w=-1;ka:{if((b|0)==-1){break ka}if(H[l+(b<<2)>>2]!=-1){break q}c=b+1|0;c=(c>>>0)%3|0?c:b-2|0;w=-1;if((c|0)==-1){break ka}w=H[A+(c<<2)>>2]}c=N(j,3);H[i>>2]=c;H[l+(c<<2)>>2]=o;H[l+(o<<2)>>2]=c;c=H[i>>2]+1|0;H[l+(c<<2)>>2]=a;H[l+(a<<2)>>2]=c;a=H[i>>2]+2|0;H[l+(a<<2)>>2]=b;H[l+(b<<2)>>2]=a;a=H[i>>2];H[A+(a<<2)>>2]=e;k=a+1|0;l=A+(k<<2)|0;H[l>>2]=w;w=a+2|0;c=A+(w<<2)|0;H[c>>2]=f;f=H[h+120>>2];e=k?e:-1;b=f+(e>>>3&536870908)|0;a=H[b>>2];P=b,Q=Vj(e)&a,H[P>>2]=Q;g=(k|0)!=-1?H[l>>2]:g;b=f+(g>>>3&536870908)|0;a=H[b>>2];P=b,Q=Vj(g)&a,H[P>>2]=Q;b=-1;b=(w|0)!=-1?H[c>>2]:b;e=f+(b>>>3&536870908)|0;a=H[e>>2];P=e,Q=Vj(b)&a,H[P>>2]=Q;F[i+88|0]=1;_c(m,i+88|0);Ka(u,i);j=j+1|0;e=H[i+64>>2]}if((d|0)!=(e|0)){continue}break}a=H[h+8>>2]}k=-1;if(((H[a+4>>2]-H[a>>2]>>2>>>0)/3|0)!=(j|0)){break q}k=H[a+28>>2]-H[a+24>>2]>>2;s=H[i+24>>2];c=H[i+28>>2];if((s|0)==(c|0)){break p}while(1){j=H[s>>2];d=H[a+24>>2];b=k-1|0;g=d+(b<<2)|0;if(H[g>>2]==-1){while(1){b=k-2|0;k=k-1|0;g=d+(b<<2)|0;if(H[g>>2]==-1){continue}break}}if(b>>>0>=j>>>0){H[i>>2]=a;g=H[g>>2];F[i+12|0]=1;H[i+8>>2]=g;H[i+4>>2]=g;if((g|0)!=-1){while(1){a=H[H[h+8>>2]>>2]+(g<<2)|0;if(H[a>>2]!=(b|0)){k=-1;break q}H[a>>2]=j;uc(i);g=H[i+8>>2];if((g|0)!=-1){continue}break}a=H[h+8>>2]}d=H[a+24>>2];e=d+(b<<2)|0;if((j|0)!=-1){H[d+(j<<2)>>2]=H[e>>2]}H[e>>2]=-1;f=1<>2];e=d+(j>>>3&536870908)|0;j=d+(b>>>3&536870908)|0;d=1<>2]&d){b=f|H[e>>2]}else{b=H[e>>2]&(f^-1)}H[e>>2]=b;H[j>>2]=H[j>>2]&(d^-1);k=k-1|0}s=s+4|0;if((c|0)!=(s|0)){continue}break}}s=H[i+24>>2]}if(s){oa(s)}a=H[i+48>>2];if(a){while(1){d=H[a>>2];oa(a);a=d;if(a){continue}break}}a=H[i+40>>2];H[i+40>>2]=0;if(a){oa(a)}a=H[i+64>>2];if(a){H[i+68>>2]=a;oa(a)}ca=i+96|0;a=k;break m}sa();v()}wa();v()}b=a;if((a|0)==-1){break l}e=H[C+16>>2];d=e+H[C>>2]|0;a=H[C+8>>2]-e|0;e=H[H[h+4>>2]+32>>2];G[e+38>>1]=J[e+38>>1];H[e>>2]=d;H[e+16>>2]=0;H[e+20>>2]=0;H[e+8>>2]=a;H[e+12>>2]=0;d=H[h+4>>2];a=J[d+36>>1];e=a<<8|a>>>8;if((e&65535)>>>0<=513){d=H[d+32>>2];c=d;a=H[c+16>>2];d=M+H[c+20>>2]|0;a=a+y|0;d=a>>>0>>0?d+1|0:d;H[c+16>>2]=a;H[c+20>>2]=d}la:{if(H[h+216>>2]==H[h+220>>2]){break la}a=H[h+8>>2];d=H[a>>2];a=H[a+4>>2];ma:{if((e&65535)>>>0>=513){if((a|0)==(d|0)){break la}d=0;break ma}if((a|0)==(d|0)){break la}d=0;while(1){if(cd(h,d)){d=d+3|0;a=H[h+8>>2];if(d>>>0>2]-H[a>>2]>>2>>>0){continue}break la}break}break l}while(1){if(bd(h,d)){d=d+3|0;a=H[h+8>>2];if(d>>>0>2]-H[a>>2]>>2>>>0){continue}break la}break}break l}ad(O);d=H[h+216>>2];if((d|0)!=H[h+220>>2]){l=0;while(1){c=N(l,144);Jc((c+d|0)+4|0,H[h+8>>2]);a=H[E>>2];e=a+c|0;d=H[e+132>>2];e=H[e+136>>2];if((d|0)!=(e|0)){while(1){Hc((c+H[E>>2]|0)+4|0,H[d>>2]);d=d+4|0;if((e|0)!=(d|0)){continue}break}a=H[E>>2]}if(!Ic((a+c|0)+4|0)){break l}l=l+1|0;d=H[h+216>>2];if(l>>>0<(H[h+220>>2]-d|0)/144>>>0){continue}break}}a=H[h+8>>2];Hb(h+184|0,H[a+28>>2]-H[a+24>>2]>>2);x=H[h+216>>2];if((x|0)!=H[h+220>>2]){d=0;while(1){a=N(d,144)+x|0;e=H[a+60>>2]-H[a+56>>2]>>2;c=a+104|0;a=H[h+8>>2];a=H[a+28>>2]-H[a+24>>2]>>2;Hb(c,(a|0)<(e|0)?e:a);d=d+1|0;x=H[h+216>>2];if(d>>>0<(H[h+220>>2]-x|0)/144>>>0){continue}break}}x=$c(h,b)}break b}x=0}ca=t- -64|0;return x|0}function Bg(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,G=0,J=0,K=0,L=0,M=0,O=0;B=c;c=0;m=ca-96|0;ca=m;l=m+16|0;ra(l,0,76);H[m+92>>2]=-1;H[m+8>>2]=0;H[m>>2]=0;H[m+4>>2]=0;r=ca-16|0;ca=r;H[l+68>>2]=0;H[l+72>>2]=0;H[l>>2]=b;s=ca-16|0;ca=s;u=b;a=H[b+20>>2];a:{if((H[b+24>>2]-a|0)<=0){break a}a=H[a>>2];if((a|0)==-1){break a}c=H[H[u+8>>2]+(a<<2)>>2]}b:{c:{d:{if(!c){a=0;break d}a=H[u+100>>2];e=H[u+96>>2];H[s+8>>2]=0;H[s>>2]=0;H[s+4>>2]=0;f=a-e|0;b=(f|0)/12|0;e:{if((a|0)==(e|0)){break e}if(b>>>0>=357913942){break c}d=pa(f);H[s>>2]=d;H[s+8>>2]=d+N(b,12);a=0;n=d;f=f-12|0;d=(f-((f>>>0)%12|0)|0)+12|0;f=ra(n,0,d);H[s+4>>2]=d+f;if(I[c+84|0]){c=b>>>0<=1?1:b;h=c&1;if(b>>>0>=2){g=c&-2;c=0;while(1){d=N(a,12);b=d+e|0;i=H[b+4>>2];j=H[b>>2];d=d+f|0;H[d+8>>2]=H[b+8>>2];H[d>>2]=j;H[d+4>>2]=i;d=N(a|1,12);b=d+e|0;i=H[b+4>>2];j=H[b>>2];d=d+f|0;H[d+8>>2]=H[b+8>>2];H[d>>2]=j;H[d+4>>2]=i;a=a+2|0;c=c+2|0;if((g|0)!=(c|0)){continue}break}}if(!h){break e}b=N(a,12);a=b+e|0;c=H[a+4>>2];e=H[a>>2];b=b+f|0;H[b+8>>2]=H[a+8>>2];H[b>>2]=e;H[b+4>>2]=c;break e}h=b>>>0<=1?1:b;a=H[c+68>>2];c=0;while(1){d=N(c,12);b=d+e|0;g=H[a+(H[b>>2]<<2)>>2];i=H[a+(H[b+4>>2]<<2)>>2];d=d+f|0;H[d+8>>2]=H[a+(H[b+8>>2]<<2)>>2];H[d+4>>2]=i;H[d>>2]=g;c=c+1|0;if((h|0)!=(c|0)){continue}break}}d=0;E=ca-16|0;ca=E;h=pa(88);$b(h);C=ca-16|0;ca=C;H[h+80>>2]=0;H[h+84>>2]=0;a=H[h+76>>2];H[h+76>>2]=0;if(a){oa(a)}H[h+68>>2]=0;H[h+72>>2]=0;b=h- -64|0;a=H[b>>2];H[b>>2]=0;if(a){oa(a)}g=H[s+4>>2];b=H[s>>2];c=(g-b|0)/12|0;a=N(c,3);f=H[h>>2];e=H[h+4>>2]-f>>2;f:{if(a>>>0>e>>>0){ue(h,a-e|0);g=H[s+4>>2];b=H[s>>2];c=(g-b|0)/12|0;break f}if(a>>>0>=e>>>0){break f}H[h+4>>2]=f+(a<<2)}g:{if((b|0)==(g|0)){break g}e=c>>>0<=1?1:c;g=e&1;a=H[h>>2];if(c>>>0>=2){i=e&-2;c=0;while(1){e=N(d,12);j=e+a|0;f=b+e|0;H[j>>2]=H[f>>2];H[a+(e|4)>>2]=H[f+4>>2];H[j+8>>2]=H[f+8>>2];f=N(d|1,12);e=f+a|0;f=b+f|0;H[e>>2]=H[f>>2];H[e+4>>2]=H[f+4>>2];H[e+8>>2]=H[f+8>>2];d=d+2|0;c=c+2|0;if((i|0)!=(c|0)){continue}break}}if(!g){break g}c=N(d,12);a=c+a|0;b=b+c|0;H[a>>2]=H[b>>2];H[a+4>>2]=H[b+4>>2];H[a+8>>2]=H[b+8>>2]}H[C+12>>2]=-1;a=0;e=0;g=0;f=ca-32|0;ca=f;h:{i:{w=C+12|0;j:{if(!w){break j}c=H[h+4>>2];j=H[h>>2];d=c-j|0;i=d>>2;n=H[h+12>>2];b=H[h+16>>2]-n>>2;k:{if(i>>>0>b>>>0){qb(h+12|0,i-b|0,13652);c=H[h+4>>2];j=H[h>>2];d=c-j|0;i=d>>2;break k}if(b>>>0<=i>>>0){break k}H[h+16>>2]=n+(i<<2)}H[f+24>>2]=0;H[f+16>>2]=0;H[f+20>>2]=0;b=(c|0)==(j|0);if(!b){if((d|0)<0){break i}e=pa(d);H[f+20>>2]=e;H[f+16>>2]=e;H[f+24>>2]=(i<<2)+e}l:{m:{n:{o:{p:{if(d){while(1){i=H[(a<<2)+j>>2];b=H[f+20>>2]-e>>2;q:{if(i>>>0>>0){break q}H[f>>2]=0;d=i+1|0;if(d>>>0>b>>>0){Pa(f+16|0,d-b|0,f);j=H[h>>2];c=H[h+4>>2];e=H[f+16>>2];break q}if(b>>>0<=d>>>0){break q}H[f+20>>2]=(d<<2)+e}b=(i<<2)+e|0;H[b>>2]=H[b>>2]+1;a=a+1|0;d=c-j|0;i=d>>2;if(a>>>0>>0){continue}break}break p}d=0;if(!b){break o}break n}if((c|0)==(j|0)){d=0;break n}if(d>>>0>=2147483645){break m}}d=pa(d<<1);ra(d,255,i<<3)}H[f+8>>2]=0;H[f>>2]=0;H[f+4>>2]=0;b=H[f+20>>2];a=b-e|0;t=a>>2;r:{s:{if((b|0)==(e|0)){break s}if((a|0)<0){break r}q=pa(a);H[f>>2]=q;H[f+8>>2]=(t<<2)+q;b=ra(q,0,a);H[f+4>>2]=b+a;c=t>>>0<=1?1:t;n=c&3;a=0;if(c-1>>>0>=3){o=c&-4;while(1){c=g<<2;H[c+b>>2]=a;x=c|4;a=H[c+e>>2]+a|0;H[x+b>>2]=a;y=c|8;a=a+H[e+x>>2]|0;H[y+b>>2]=a;c=c|12;a=a+H[e+y>>2]|0;H[c+b>>2]=a;a=a+H[c+e>>2]|0;g=g+4|0;p=p+4|0;if((o|0)!=(p|0)){continue}break}}if(!n){break s}while(1){c=g<<2;H[c+b>>2]=a;g=g+1|0;a=H[c+e>>2]+a|0;k=k+1|0;if((n|0)!=(k|0)){continue}break}}if(!i){break l}x=H[h+40>>2];y=H[h+12>>2];n=0;while(1){G=n<<2;a=G+j|0;k=-1;c=n+1|0;b=(c>>>0)%3|0?c:n-2|0;if((b|0)!=-1){k=H[(b<<2)+j>>2]}b=H[a>>2];t:{u:{if(!((n>>>0)%3|0)){p=-1;a=n+2|0;if((a|0)!=-1){p=H[(a<<2)+j>>2]}if(!((b|0)==(k|0)|(b|0)==(p|0))&(k|0)!=(p|0)){break u}x=x+1|0;H[h+40>>2]=x;c=n+3|0;break t}p=H[a-4>>2]}a=p<<2;A=H[a+e>>2];v:{w:{if((A|0)<=0){break w}a=H[a+q>>2];g=0;while(1){o=(a<<3)+d|0;z=H[o>>2];if((z|0)==-1){break w}x:{if((k|0)!=(z|0)){break x}o=H[o+4>>2];if((o|0)!=-1){z=H[(o<<2)+j>>2]}else{z=-1}if((z|0)==(b|0)){break x}while(1){y:{b=a;g=g+1|0;if((A|0)<=(g|0)){break y}a=b+1|0;J=(a<<3)+d|0;z=H[J>>2];K=(b<<3)+d|0;H[K+4>>2]=H[J+4>>2];H[K>>2]=z;if((z|0)!=-1){continue}}break}H[(b<<3)+d>>2]=-1;if((o|0)==-1){break w}H[y+G>>2]=o;H[y+(o<<2)>>2]=n;break v}a=a+1|0;g=g+1|0;if((A|0)!=(g|0)){continue}break}}a=k<<2;k=H[a+e>>2];if((k|0)<=0){break v}a=H[a+q>>2];g=0;while(1){b=(a<<3)+d|0;if(H[b>>2]==-1){H[b>>2]=p;H[b+4>>2]=n;break v}a=a+1|0;g=g+1|0;if((k|0)!=(g|0)){continue}break}}}n=c;if(n>>>0>>0){continue}break}break l}break i}sa();v()}H[w>>2]=t;if(q){oa(q)}if(d){oa(d)}a=H[f+16>>2];if(!a){break j}H[f+20>>2]=a;oa(a)}ca=f+32|0;x=(w|0)!=0;if(x){k=ca-32|0;ca=k;a=H[h>>2];g=H[h+4>>2];H[k+24>>2]=0;H[k+16>>2]=0;H[k+20>>2]=0;if((a|0)==(g|0)){c=g}else{a=g-a|0;if((a|0)<0){break i}a=a>>2;b=(a-1>>>5|0)+1|0;c=pa(b<<2);H[k+24>>2]=b;H[k+20>>2]=0;H[k+16>>2]=c;Mc(k+16|0,a);g=H[h>>2];c=H[h+4>>2]}H[k+8>>2]=0;H[k>>2]=0;while(1){z:{o=0;i=0;if((c|0)==(g|0)){break z}while(1){b=H[k+16>>2];A:{if(H[b+(i>>>3&536870908)>>2]>>>i&1){break A}c=H[k>>2];H[k+4>>2]=c;e=H[h+12>>2];a=i;while(1){B:{f=a+1|0;d=a;a=(f>>>0)%3|0?f:a-2|0;if((a|0)==-1){break B}a=H[e+(a<<2)>>2];if((a|0)==-1){break B}f=a+1|0;a=(f>>>0)%3|0?f:a-2|0;if((i|0)==(a|0)|(a|0)==-1){break B}if(!(H[b+(a>>>3&536870908)>>2]>>>a&1)){continue}}break}j=d;C:{D:{E:{while(1){a=H[k+16>>2]+(j>>>3&536870908)|0;H[a>>2]=H[a>>2]|1<>>0)%3|0?a:j-2|0;g=H[h>>2];y=(j>>>0)%3|0;b=(y?-1:2)+j|0;n=H[k>>2];A=(n|0)==(c|0);F:{if(A){break F}w=H[(f<<2)+g>>2];q=H[h+12>>2];a=n;if((b|0)!=-1){e=q+(b<<2)|0;while(1){G:{if((w|0)!=H[a>>2]){break G}p=H[a+4>>2];t=H[e>>2];if((p|0)==(t|0)){break G}e=b;c=-1;a=-1;if((p|0)==-1){break C}break D}a=a+8|0;if((c|0)!=(a|0)){continue}break}break F}while(1){if((w|0)==H[a>>2]){t=-1;e=-1;p=H[a+4>>2];if((p|0)!=-1){break D}}a=a+8|0;if((c|0)!=(a|0)){continue}break}}b=H[(b<<2)+g>>2];H:{if(H[k+8>>2]!=(c|0)){H[c>>2]=b;H[c+4>>2]=f;c=c+8|0;H[k+4>>2]=c;break H}a=c-n|0;p=a>>3;e=p+1|0;if(e>>>0>=536870912){break i}g=a>>>2|0;g=a>>>0>=2147483640?536870911:e>>>0>>0?g:e;if(g){if(g>>>0>=536870912){break E}e=pa(g<<3)}else{e=0}a=e+(p<<3)|0;H[a>>2]=b;H[a+4>>2]=f;b=a+8|0;if(!A){while(1){c=c-8|0;f=H[c+4>>2];a=a-8|0;H[a>>2]=H[c>>2];H[a+4>>2]=f;if((c|0)!=(n|0)){continue}break}c=H[k>>2]}H[k+8>>2]=e+(g<<3);H[k+4>>2]=b;H[k>>2]=a;if(c){oa(c)}c=b}I:{J:{if(y){a=j-1|0;break J}a=j+2|0;if((a|0)==-1){break I}}a=H[H[h+12>>2]+(a<<2)>>2];if((a|0)==-1){break I}j=a+((a>>>0)%3|0?-1:2)|0;if((d|0)==(j|0)){break I}if((j|0)!=-1){continue}}break}g=H[h>>2];break A}wa();v()}c=H[q+(p<<2)>>2];b=e;a=p}if((t|0)!=-1){H[q+(t<<2)>>2]=-1}if((c|0)!=-1){H[q+(c<<2)>>2]=-1}H[q+(b<<2)>>2]=-1;H[q+(a<<2)>>2]=-1;o=1}i=i+1|0;c=H[h+4>>2];if(i>>>0>2>>>0){continue}break}if(o){continue}}break}a=H[k>>2];if(a){oa(a)}a=H[k+16>>2];if(a){oa(a)}ca=k+32|0;n=0;g=ca-32|0;ca=g;e=H[C+12>>2];H[h+36>>2]=e;p=h+24|0;b=H[h+24>>2];a=H[h+28>>2]-b>>2;K:{L:{if(a>>>0>>0){qb(p,e-a|0,13652);H[g+24>>2]=0;H[g+16>>2]=0;H[g+20>>2]=0;break L}if(a>>>0>e>>>0){H[h+28>>2]=b+(e<<2)}H[g+24>>2]=0;H[g+16>>2]=0;H[g+20>>2]=0;if(!e){break K}}if((e|0)<0){break i}a=(e-1>>>5|0)+1|0;b=pa(a<<2);H[g+24>>2]=a;H[g+20>>2]=0;H[g+16>>2]=b;Mc(g+16|0,e)}a=H[h>>2];b=H[h+4>>2];H[g+8>>2]=0;H[g>>2]=0;H[g+4>>2]=0;M:{if((a|0)==(b|0)){a=b}else{a=b-a|0;if((a|0)<0){break i}a=a>>2;b=(a-1>>>5|0)+1|0;c=pa(b<<2);H[g+8>>2]=b;H[g+4>>2]=0;H[g>>2]=c;Mc(g,a);b=H[h>>2];a=H[h+4>>2]}if(a-b>>>0<12){break M}N:{while(1){q=N(n,3);d=(q<<2)+b|0;f=H[d>>2];c=-1;i=q+1|0;if((i|0)!=-1){c=H[(i<<2)+b>>2]}O:{if((c|0)==(f|0)){break O}i=f;f=H[d+8>>2];if((i|0)==(f|0)|(c|0)==(f|0)){break O}k=0;i=H[g>>2];while(1){f=k+q|0;if(!(H[(f>>>3&536870908)+i>>2]>>>f&1)){a=H[(f<<2)+b>>2];c=1<>2];b=a>>>5|0;i=H[d+(b<<2)>>2];t=c&i;if(t){c=H[h+28>>2];P:{if((c|0)!=H[h+32>>2]){H[c>>2]=-1;H[h+28>>2]=c+4;break P}i=H[p>>2];b=c-i|0;o=b>>2;d=o+1|0;if(d>>>0>=1073741824){break i}j=b>>>1|0;j=b>>>0>=2147483644?1073741823:d>>>0>>0?j:d;if(j){if(j>>>0>=1073741824){break N}b=pa(j<<2)}else{b=0}d=b+(o<<2)|0;H[d>>2]=-1;o=d+4|0;if((c|0)!=(i|0)){while(1){d=d-4|0;c=c-4|0;H[d>>2]=H[c>>2];if((c|0)!=(i|0)){continue}break}}H[h+32>>2]=b+(j<<2);H[h+28>>2]=o;H[h+24>>2]=d;if(!i){break P}oa(i)}c=H[h+52>>2];Q:{if((c|0)!=H[h+56>>2]){H[c>>2]=a;H[h+52>>2]=c+4;break Q}i=H[h+48>>2];b=c-i|0;o=b>>2;d=o+1|0;if(d>>>0>=1073741824){break i}j=b>>>1|0;j=b>>>0>=2147483644?1073741823:d>>>0>>0?j:d;if(j){if(j>>>0>=1073741824){break N}b=pa(j<<2)}else{b=0}d=b+(o<<2)|0;H[d>>2]=a;a=d+4|0;if((c|0)!=(i|0)){while(1){d=d-4|0;c=c-4|0;H[d>>2]=H[c>>2];if((c|0)!=(i|0)){continue}break}}H[h+56>>2]=b+(j<<2);H[h+52>>2]=a;H[h+48>>2]=d;if(!i){break Q}oa(i)}c=H[g+20>>2];a=H[g+24>>2];if((c|0)==a<<5){if((c+1|0)<0){break i}b=g+16|0;if(c>>>0<=1073741822){a=a<<6;c=(c&-32)+32|0;a=a>>>0>c>>>0?a:c}else{a=2147483647}pb(b,a);c=H[g+20>>2]}H[g+20>>2]=c+1;d=H[g+16>>2];a=d+(c>>>3&536870908)|0;b=H[a>>2];M=a,O=Vj(c)&b,H[M>>2]=O;c=1<>>5|0;i=H[(b<<2)+d>>2];a=e;e=a+1|0}H[(b<<2)+d>>2]=c|i;o=H[h+24>>2]+(a<<2)|0;j=H[h+12>>2];b=H[h>>2];i=H[g>>2];c=f;R:{S:{T:{while(1){if((c|0)==-1){break T}d=(c>>>3&536870908)+i|0;H[d>>2]=H[d>>2]|1<>2]=c;if(t){H[(c<<2)+b>>2]=a}w=c+1|0;c=(w>>>0)%3|0?w:c-2|0;d=-1;U:{if((c|0)==-1){break U}c=H[j+(c<<2)>>2];d=-1;if((c|0)==-1){break U}d=c+1|0;d=(d>>>0)%3|0?d:c-2|0}c=d;if((f|0)!=(c|0)){continue}break}if((f|0)!=-1){break R}c=1;break S}if((f>>>0)%3|0){c=f-1|0;break S}c=f+2|0;if((c|0)==-1){break R}}c=H[j+(c<<2)>>2];if((c|0)==-1){break R}V:{if((c>>>0)%3|0){c=c-1|0;break V}c=c+2|0;if((c|0)==-1){break R}}f=H[h+12>>2];b=H[h>>2];while(1){d=(c>>>3&536870908)+i|0;H[d>>2]=H[d>>2]|1<>2]=a}W:{if((c>>>0)%3|0){c=c-1|0;break W}c=c+2|0;if((c|0)==-1){break R}}c=H[f+(c<<2)>>2];if((c|0)==-1){break R}c=c+((c>>>0)%3|0?-1:2)|0;if((c|0)!=-1){continue}break}}}k=k+1|0;if((k|0)!=3){continue}break}b=H[h>>2];a=H[h+4>>2]}n=n+1|0;if(n>>>0<(a-b>>2>>>0)/3>>>0){continue}break}break M}wa();v()}c=0;H[h+44>>2]=0;a=H[g+16>>2];b=H[g+20>>2];if(b){e=b&31;b=(b>>>3&536870908)+a|0;d=a;i=0;while(1){if(!(H[d>>2]>>>c&1)){i=i+1|0;H[h+44>>2]=i}f=(c|0)==31;c=f?0:c+1|0;d=(f<<2)+d|0;if((b|0)!=(d|0)|(c|0)!=(e|0)){continue}break}}b=H[g>>2];if(b){oa(b);a=H[g+16>>2]}if(a){oa(a)}ca=g+32|0}ca=C+16|0;if(!x){H[E+8>>2]=0;cb(h);h=0}ca=E+16|0;a=h;break h}sa();v()}b=H[s>>2];if(!b){break d}H[s+4>>2]=b;oa(b)}ca=s+16|0;break b}sa();v()}c=H[l+4>>2];b=a;H[l+4>>2]=a;if(c){cb(c);b=H[l+4>>2]}X:{if(!b){break X}a=H[u+100>>2];c=H[u+96>>2];F[r+12|0]=0;Oa(l+56|0,(a-c|0)/12|0,r+12|0);a=H[u+100>>2];c=H[u+96>>2];if((a|0)==(c|0)){break X}while(1){if(!(H[H[l+56>>2]+(D>>>3&536870908)>>2]>>>D&1)){a=N(D,3);Gc(l,0,a);c=H[l+8>>2];e=H[l+12>>2];Gc(l,1,a+1|0);f=H[l+20>>2];d=H[l+24>>2];Gc(l,2,a+2|0);n=(c|0)==(e|0)?-1:0;a=d-f>>2;c=e-c>>2;e=a>>>0>c>>>0;c=H[l+36>>2]-H[l+32>>2]>>2>>>0>(e?a:c)>>>0?2:e?1:n;Y:{if(H[l+68>>2]<=0){break Y}H[r+12>>2]=H[l+76>>2];H[r+8>>2]=m;bb(r+8|0,r+12|0);a=H[((c<<2)+l|0)+44>>2];if((a|0)<0){a=-1}else{e=(a>>>0)/3|0;a=H[(H[H[l>>2]+96>>2]+N(e,12)|0)+(a-N(e,3)<<2)>>2]}H[r+12>>2]=a;H[r+8>>2]=m;bb(r+8|0,r+12|0);e=H[l+72>>2];H[l+72>>2]=e+2;if(!(e&1)){break Y}H[r+12>>2]=a;H[r+8>>2]=m;bb(r+8|0,r+12|0);H[l+72>>2]=H[l+72>>2]+1}d=0;e=ca-16|0;ca=e;H[l+68>>2]=H[l+68>>2]+1;a=N(c,12)+l|0;a=H[a+12>>2]-H[a+8>>2]|0;if((a|0)>0){a=a>>>2|0;h=a>>>0<=1?1:a;c=H[((c<<2)+l|0)+44>>2];while(1){a=c;f=(a>>>0)/3|0;c=(a|0)==-1;g=c?-1:f;i=H[l+56>>2]+(g>>>3&536870908)|0;H[i>>2]=H[i>>2]|1<>2]=H[l+72>>2]+1;Z:{_:{$:{aa:{ba:{if(!d){ca:{if((a|0)>=0){H[e+12>>2]=H[(H[H[l>>2]+96>>2]+N(f,12)|0)+((a>>>0)%3<<2)>>2];H[e+8>>2]=m;bb(e+8|0,e+12|0);break ca}H[e+12>>2]=-1;H[e+8>>2]=m;bb(e+8|0,e+12|0);if(c){break ba}}c=-1;f=a+1|0;f=(f>>>0)%3|0?f:a-2|0;if((f|0)>=0){g=(f>>>0)/3|0;f=H[(H[H[l>>2]+96>>2]+N(g,12)|0)+(f-N(g,3)<<2)>>2]}else{f=-1}H[e+12>>2]=f;H[e+8>>2]=m;bb(e+8|0,e+12|0);f=((a>>>0)%3|0?-1:2)+a|0;if((f|0)<0){break aa}c=(f>>>0)/3|0;c=H[(H[H[l>>2]+96>>2]+N(c,12)|0)+(f-N(c,3)<<2)>>2];break aa}c=(a|0)<0?-1:H[(H[H[l>>2]+96>>2]+N(f,12)|0)+((a>>>0)%3<<2)>>2];H[l+76>>2]=c;H[e+12>>2]=c;H[e+8>>2]=m;bb(e+8|0,e+12|0);if(d&1){c=-1;if((a|0)==-1){break Z}if((N(f,3)|0)!=(a|0)){a=a-1|0;break _}a=a+2|0;break $}c=-1;if((a|0)==-1){break Z}c=a+1|0;a=(c>>>0)%3|0?c:a-2|0;break $}c=-1;H[e+12>>2]=-1;H[e+8>>2]=m;bb(e+8|0,e+12|0)}H[l+76>>2]=c;H[e+12>>2]=c;H[e+8>>2]=m;bb(e+8|0,e+12|0)}c=-1;if((a|0)==-1){break Z}}c=H[H[H[l+4>>2]+12>>2]+(a<<2)>>2]}d=d+1|0;if((h|0)!=(d|0)){continue}break}}ca=e+16|0;c=H[u+96>>2];a=H[u+100>>2]}D=D+1|0;if(D>>>0<(a-c|0)/12>>>0){continue}break}}ca=r+16|0;da:{if(b){a=H[B>>2];if(a){H[B+4>>2]=a;oa(a)}H[B>>2]=H[m>>2];H[B+4>>2]=H[m+4>>2];H[B+8>>2]=H[m+8>>2];L=H[m+84>>2];break da}a=H[m>>2];if(!a){break da}H[m+4>>2]=a;oa(a)}a=H[m+72>>2];if(a){oa(a)}a=H[m+48>>2];if(a){H[m+52>>2]=a;oa(a)}a=H[m+36>>2];if(a){H[m+40>>2]=a;oa(a)}a=H[m+24>>2];if(a){H[m+28>>2]=a;oa(a)}a=H[m+20>>2];H[m+20>>2]=0;if(a){cb(a)}ca=m+96|0;return L|0}function qg(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;i=b;a=0;b=0;a:{b:{switch(d-1|0){case 0:j=H[i+80>>2];h=I[c+24|0];c:{if((N(j,h)|0)!=(e|0)){break c}d=H[c+28>>2]!=1;b=I[c+84|0];if(!(d|!b)){qa(f,H[H[c>>2]>>2]+H[c+48>>2]|0,e);b=1;break c}if(h){a=pa(h);ra(a,0,h)}d:{if(!j){b=1;break d}if(!d){if(h){d=0;e=0;while(1){i=d+f|0;k=H[H[c>>2]>>2];m=H[c+48>>2];g=H[c+40>>2];b=Rj(g,H[c+44>>2],I[c+84|0]?e:H[H[c+68>>2]+(e<<2)>>2],0);n=b;b=b+m|0;qa(i,qa(a,b+k|0,g),h);d=d+h|0;b=1;e=e+1|0;if((j|0)!=(e|0)){continue}break}break d}if(b){b=1;h=H[c>>2];e=H[c+48>>2];f=H[c+40>>2];i=H[c+44>>2];if((j|0)!=1){g=j&-2;c=0;d=0;while(1){k=H[h>>2];m=Rj(f,i,c,0)+e|0;k=qa(a,k+m|0,f);m=H[h>>2];n=Rj(f,i,c|1,0)+e|0;qa(k,m+n|0,f);c=c+2|0;d=d+2|0;if((g|0)!=(d|0)){continue}break}g=c}if(!(j&1)){break d}c=H[h>>2];d=Rj(g,0,f,i)+e|0;qa(a,c+d|0,f);break d}b=1;h=H[c>>2];e=H[c+48>>2];g=H[c+68>>2];f=H[c+40>>2];i=H[c+44>>2];c=0;if((j|0)!=1){k=j&-2;d=0;while(1){m=H[h>>2];n=c<<2;l=Rj(f,i,H[n+g>>2],0)+e|0;m=qa(a,m+l|0,f);l=H[h>>2];n=Rj(f,i,H[g+(n|4)>>2],0)+e|0;qa(m,l+n|0,f);c=c+2|0;d=d+2|0;if((k|0)!=(d|0)){continue}break}}if(!(j&1)){break d}d=H[h>>2];c=Rj(f,i,H[g+(c<<2)>>2],0)+e|0;qa(a,c+d|0,f);break d}b=0;if(!h){d=0;while(1){if(!ic(c,I[c+84|0]?d:H[H[c+68>>2]+(d<<2)>>2],F[c+24|0],a)){break d}d=d+1|0;b=j>>>0<=d>>>0;if((d|0)!=(j|0)){continue}break}break d}d=0;e=0;while(1){if(!ic(c,I[c+84|0]?e:H[H[c+68>>2]+(e<<2)>>2],F[c+24|0],a)){break d}qa(d+f|0,a,h);d=d+h|0;e=e+1|0;b=j>>>0<=e>>>0;if((e|0)!=(j|0)){continue}break}}if(!a){break c}oa(a)}break a;case 2:n=I[c+24|0];l=n<<1;j=H[i+80>>2];e:{if((N(l,j)|0)!=(e|0)){break e}i=H[c+28>>2]!=3;d=I[c+84|0];if(!(i|!d)){qa(f,H[H[c>>2]>>2]+H[c+48>>2]|0,e);a=1;break e}f:{if(!n){e=0;break f}e=pa(l);ra(e,0,l)}g:{if(!j){a=1;break g}if(!i){o=H[c+68>>2];k=H[c>>2];b=H[c+48>>2];i=H[c+40>>2];m=H[c+44>>2];if(n){if(!d){c=0;d=0;while(1){a=1;g=H[k>>2];p=Rj(i,m,H[o+(d<<2)>>2],0)+b|0;qa((c<<1)+f|0,qa(e,g+p|0,i),l);c=c+n|0;d=d+1|0;if((j|0)!=(d|0)){continue}break}break g}c=0;while(1){a=1;o=H[k>>2];p=Rj(g,h,i,m)+b|0;qa((c<<1)+f|0,qa(e,o+p|0,i),l);c=c+n|0;d=h;g=g+1|0;d=g?d:d+1|0;h=d;if((j|0)!=(g|0)|d){continue}break}break g}if(!d){a=1;c=0;if((j|0)!=1){f=j&-2;d=0;while(1){h=H[k>>2];g=c<<2;n=Rj(i,m,H[g+o>>2],0)+b|0;h=qa(e,h+n|0,i);n=H[k>>2];g=Rj(i,m,H[o+(g|4)>>2],0)+b|0;qa(h,g+n|0,i);c=c+2|0;d=d+2|0;if((f|0)!=(d|0)){continue}break}}if(!(j&1)){break g}d=H[k>>2];b=Rj(i,m,H[o+(c<<2)>>2],0)+b|0;qa(e,b+d|0,i);break g}n=j&1;a=1;if((j|0)!=1){j=j&-2;f=0;c=0;while(1){d=H[k>>2];l=Rj(g,h,i,m)+b|0;d=qa(e,d+l|0,i);l=H[k>>2];o=Rj(i,m,g|1,h)+b|0;qa(d,l+o|0,i);g=g+2|0;h=g>>>0<2?h+1|0:h;f=f+2|0;d=f>>>0<2?c+1|0:c;c=d;if((f|0)!=(j|0)|c){continue}break}}if(!n){break g}c=H[k>>2];b=Rj(g,h,i,m)+b|0;qa(e,b+c|0,i);break g}if(!n){d=0;while(1){if(!gc(c,I[c+84|0]?d:H[H[c+68>>2]+(d<<2)>>2],F[c+24|0],e)){break g}d=d+1|0;a=j>>>0<=d>>>0;if((d|0)!=(j|0)){continue}break}break g}d=0;while(1){if(!gc(c,I[c+84|0]?d:H[H[c+68>>2]+(d<<2)>>2],F[c+24|0],e)){break g}qa((b<<1)+f|0,e,l);b=b+n|0;d=d+1|0;a=j>>>0<=d>>>0;if((d|0)!=(j|0)){continue}break}}if(!e){break e}oa(e)}b=a;break a;case 4:l=I[c+24|0];o=l<<2;j=H[i+80>>2];h:{if((N(o,j)|0)!=(e|0)){break h}i=H[c+28>>2]!=5;d=I[c+84|0];if(!(i|!d)){qa(f,H[H[c>>2]>>2]+H[c+48>>2]|0,e);b=1;break h}i:{if(!l){e=0;break i}e=pa(o);ra(e,0,o)}b=1;j:{if(!j){break j}if(!i){a=H[c+68>>2];m=H[c>>2];i=H[c+48>>2];k=H[c+40>>2];n=H[c+44>>2];if(l){if(!d){c=0;d=0;while(1){g=H[m>>2];p=Rj(k,n,H[a+(d<<2)>>2],0)+i|0;qa((c<<2)+f|0,qa(e,g+p|0,k),o);c=c+l|0;d=d+1|0;if((j|0)!=(d|0)){continue}break}break j}c=0;while(1){d=H[m>>2];p=Rj(g,h,k,n)+i|0;qa((c<<2)+f|0,qa(e,d+p|0,k),o);c=c+l|0;g=g+1|0;a=g?h:h+1|0;h=a;if((j|0)!=(g|0)|h){continue}break}break j}if(!d){c=0;if((j|0)!=1){f=j&-2;d=0;while(1){h=H[m>>2];g=c<<2;l=Rj(k,n,H[g+a>>2],0)+i|0;h=qa(e,h+l|0,k);l=H[m>>2];g=Rj(k,n,H[a+(g|4)>>2],0)+i|0;qa(h,g+l|0,k);c=c+2|0;d=d+2|0;if((f|0)!=(d|0)){continue}break}}if(!(j&1)){break j}d=H[m>>2];a=Rj(k,n,H[a+(c<<2)>>2],0)+i|0;qa(e,a+d|0,k);break j}l=j&1;if((j|0)!=1){j=j&-2;f=0;c=0;while(1){a=H[m>>2];d=Rj(g,h,k,n)+i|0;a=qa(e,a+d|0,k);d=H[m>>2];o=Rj(k,n,g|1,h)+i|0;qa(a,d+o|0,k);d=h;g=g+2|0;h=g>>>0<2?d+1|0:d;f=f+2|0;a=f>>>0<2?c+1|0:c;c=a;if((f|0)!=(j|0)|c){continue}break}}if(!l){break j}a=H[m>>2];c=Rj(g,h,k,n)+i|0;qa(e,a+c|0,k);break j}b=0;if(!l){d=0;while(1){if(!ec(c,I[c+84|0]?d:H[H[c+68>>2]+(d<<2)>>2],F[c+24|0],e)){break j}d=d+1|0;b=j>>>0<=d>>>0;if((d|0)!=(j|0)){continue}break}break j}d=0;while(1){if(!ec(c,I[c+84|0]?d:H[H[c+68>>2]+(d<<2)>>2],F[c+24|0],e)){break j}qa((a<<2)+f|0,e,o);a=a+l|0;d=d+1|0;b=j>>>0<=d>>>0;if((d|0)!=(j|0)){continue}break}}if(!e){break h}oa(e)}break a;case 1:j=H[i+80>>2];h=I[c+24|0];k:{if((N(j,h)|0)!=(e|0)){break k}d=H[c+28>>2]!=2;b=I[c+84|0];if(!(d|!b)){qa(f,H[H[c>>2]>>2]+H[c+48>>2]|0,e);b=1;break k}if(h){a=pa(h);ra(a,0,h)}l:{if(!j){b=1;break l}if(!d){if(h){d=0;e=0;while(1){i=d+f|0;k=H[H[c>>2]>>2];m=H[c+48>>2];g=H[c+40>>2];b=Rj(g,H[c+44>>2],I[c+84|0]?e:H[H[c+68>>2]+(e<<2)>>2],0);n=b;b=b+m|0;qa(i,qa(a,b+k|0,g),h);d=d+h|0;b=1;e=e+1|0;if((j|0)!=(e|0)){continue}break}break l}if(b){b=1;h=H[c>>2];e=H[c+48>>2];f=H[c+40>>2];i=H[c+44>>2];if((j|0)!=1){g=j&-2;c=0;d=0;while(1){k=H[h>>2];m=Rj(f,i,c,0)+e|0;k=qa(a,k+m|0,f);m=H[h>>2];n=Rj(f,i,c|1,0)+e|0;qa(k,m+n|0,f);c=c+2|0;d=d+2|0;if((g|0)!=(d|0)){continue}break}g=c}if(!(j&1)){break l}c=H[h>>2];d=Rj(g,0,f,i)+e|0;qa(a,c+d|0,f);break l}b=1;h=H[c>>2];e=H[c+48>>2];g=H[c+68>>2];f=H[c+40>>2];i=H[c+44>>2];c=0;if((j|0)!=1){k=j&-2;d=0;while(1){m=H[h>>2];n=c<<2;l=Rj(f,i,H[n+g>>2],0)+e|0;m=qa(a,m+l|0,f);l=H[h>>2];n=Rj(f,i,H[g+(n|4)>>2],0)+e|0;qa(m,l+n|0,f);c=c+2|0;d=d+2|0;if((k|0)!=(d|0)){continue}break}}if(!(j&1)){break l}d=H[h>>2];c=Rj(f,i,H[g+(c<<2)>>2],0)+e|0;qa(a,c+d|0,f);break l}b=0;if(!h){d=0;while(1){if(!hc(c,I[c+84|0]?d:H[H[c+68>>2]+(d<<2)>>2],F[c+24|0],a)){break l}d=d+1|0;b=j>>>0<=d>>>0;if((d|0)!=(j|0)){continue}break}break l}d=0;e=0;while(1){if(!hc(c,I[c+84|0]?e:H[H[c+68>>2]+(e<<2)>>2],F[c+24|0],a)){break l}qa(d+f|0,a,h);d=d+h|0;e=e+1|0;b=j>>>0<=e>>>0;if((e|0)!=(j|0)){continue}break}}if(!a){break k}oa(a)}break a;case 3:n=I[c+24|0];l=n<<1;j=H[i+80>>2];m:{if((N(l,j)|0)!=(e|0)){break m}i=H[c+28>>2]!=4;d=I[c+84|0];if(!(i|!d)){qa(f,H[H[c>>2]>>2]+H[c+48>>2]|0,e);a=1;break m}n:{if(!n){e=0;break n}e=pa(l);ra(e,0,l)}o:{if(!j){a=1;break o}if(!i){o=H[c+68>>2];k=H[c>>2];b=H[c+48>>2];i=H[c+40>>2];m=H[c+44>>2];if(n){if(!d){c=0;d=0;while(1){a=1;g=H[k>>2];p=Rj(i,m,H[o+(d<<2)>>2],0)+b|0;qa((c<<1)+f|0,qa(e,g+p|0,i),l);c=c+n|0;d=d+1|0;if((j|0)!=(d|0)){continue}break}break o}c=0;while(1){a=1;o=H[k>>2];p=Rj(g,h,i,m)+b|0;qa((c<<1)+f|0,qa(e,o+p|0,i),l);c=c+n|0;d=h;g=g+1|0;d=g?d:d+1|0;h=d;if((j|0)!=(g|0)|d){continue}break}break o}if(!d){a=1;c=0;if((j|0)!=1){f=j&-2;d=0;while(1){h=H[k>>2];g=c<<2;n=Rj(i,m,H[g+o>>2],0)+b|0;h=qa(e,h+n|0,i);n=H[k>>2];g=Rj(i,m,H[o+(g|4)>>2],0)+b|0;qa(h,g+n|0,i);c=c+2|0;d=d+2|0;if((f|0)!=(d|0)){continue}break}}if(!(j&1)){break o}d=H[k>>2];b=Rj(i,m,H[o+(c<<2)>>2],0)+b|0;qa(e,b+d|0,i);break o}n=j&1;a=1;if((j|0)!=1){j=j&-2;f=0;c=0;while(1){d=H[k>>2];l=Rj(g,h,i,m)+b|0;d=qa(e,d+l|0,i);l=H[k>>2];o=Rj(i,m,g|1,h)+b|0;qa(d,l+o|0,i);g=g+2|0;h=g>>>0<2?h+1|0:h;f=f+2|0;d=f>>>0<2?c+1|0:c;c=d;if((f|0)!=(j|0)|c){continue}break}}if(!n){break o}c=H[k>>2];b=Rj(g,h,i,m)+b|0;qa(e,b+c|0,i);break o}if(!n){d=0;while(1){if(!fc(c,I[c+84|0]?d:H[H[c+68>>2]+(d<<2)>>2],F[c+24|0],e)){break o}d=d+1|0;a=j>>>0<=d>>>0;if((d|0)!=(j|0)){continue}break}break o}d=0;while(1){if(!fc(c,I[c+84|0]?d:H[H[c+68>>2]+(d<<2)>>2],F[c+24|0],e)){break o}qa((b<<1)+f|0,e,l);b=b+n|0;d=d+1|0;a=j>>>0<=d>>>0;if((d|0)!=(j|0)){continue}break}}if(!e){break m}oa(e)}b=a;break a;case 5:l=I[c+24|0];o=l<<2;j=H[i+80>>2];p:{if((N(o,j)|0)!=(e|0)){break p}i=H[c+28>>2]!=6;d=I[c+84|0];if(!(i|!d)){qa(f,H[H[c>>2]>>2]+H[c+48>>2]|0,e);b=1;break p}q:{if(!l){e=0;break q}e=pa(o);ra(e,0,o)}b=1;r:{if(!j){break r}if(!i){a=H[c+68>>2];m=H[c>>2];i=H[c+48>>2];k=H[c+40>>2];n=H[c+44>>2];if(l){if(!d){c=0;d=0;while(1){g=H[m>>2];p=Rj(k,n,H[a+(d<<2)>>2],0)+i|0;qa((c<<2)+f|0,qa(e,g+p|0,k),o);c=c+l|0;d=d+1|0;if((j|0)!=(d|0)){continue}break}break r}c=0;while(1){d=H[m>>2];p=Rj(g,h,k,n)+i|0;qa((c<<2)+f|0,qa(e,d+p|0,k),o);c=c+l|0;g=g+1|0;a=g?h:h+1|0;h=a;if((j|0)!=(g|0)|h){continue}break}break r}if(!d){c=0;if((j|0)!=1){f=j&-2;d=0;while(1){h=H[m>>2];g=c<<2;l=Rj(k,n,H[g+a>>2],0)+i|0;h=qa(e,h+l|0,k);l=H[m>>2];g=Rj(k,n,H[a+(g|4)>>2],0)+i|0;qa(h,g+l|0,k);c=c+2|0;d=d+2|0;if((f|0)!=(d|0)){continue}break}}if(!(j&1)){break r}d=H[m>>2];a=Rj(k,n,H[a+(c<<2)>>2],0)+i|0;qa(e,a+d|0,k);break r}l=j&1;if((j|0)!=1){j=j&-2;f=0;c=0;while(1){a=H[m>>2];d=Rj(g,h,k,n)+i|0;a=qa(e,a+d|0,k);d=H[m>>2];o=Rj(k,n,g|1,h)+i|0;qa(a,d+o|0,k);d=h;g=g+2|0;h=g>>>0<2?d+1|0:d;f=f+2|0;a=f>>>0<2?c+1|0:c;c=a;if((f|0)!=(j|0)|c){continue}break}}if(!l){break r}a=H[m>>2];c=Rj(g,h,k,n)+i|0;qa(e,a+c|0,k);break r}b=0;if(!l){d=0;while(1){if(!dc(c,I[c+84|0]?d:H[H[c+68>>2]+(d<<2)>>2],F[c+24|0],e)){break r}d=d+1|0;b=j>>>0<=d>>>0;if((d|0)!=(j|0)){continue}break}break r}d=0;while(1){if(!dc(c,I[c+84|0]?d:H[H[c+68>>2]+(d<<2)>>2],F[c+24|0],e)){break r}qa((a<<2)+f|0,e,o);a=a+l|0;d=d+1|0;b=j>>>0<=d>>>0;if((d|0)!=(j|0)){continue}break}}if(!e){break p}oa(e)}break a;case 8:p=I[c+24|0];q=p<<2;k=H[i+80>>2];s:{if((N(q,k)|0)!=(e|0)){break s}i=H[c+28>>2];t:{if(!p){break t}a=pa(q);d=a;m=q-4|0;l=(m>>>2|0)+1&7;if(l){e=0;while(1){H[d>>2]=-1073741824;d=d+4|0;e=e+1|0;if((l|0)!=(e|0)){continue}break}}if(m>>>0<28){break t}e=(p<<2)+a|0;while(1){H[d+24>>2]=-1073741824;H[d+28>>2]=-1073741824;H[d+16>>2]=-1073741824;H[d+20>>2]=-1073741824;H[d+8>>2]=-1073741824;H[d+12>>2]=-1073741824;H[d>>2]=-1073741824;H[d+4>>2]=-1073741824;d=d+32|0;if((e|0)!=(d|0)){continue}break}}u:{if(!k){b=1;break u}if((i|0)==9){r=H[c+68>>2];l=H[c>>2];i=H[c+48>>2];s=I[c+84|0];m=H[c+44>>2];c=H[c+40>>2];o=c;if(p){e=0;d=0;while(1){h=(e<<2)+f|0;g=H[l>>2];b=Rj(c,m,s?d:H[r+(d<<2)>>2],0)+i|0;qa(h,qa(a,b+g|0,o),q);e=e+p|0;b=1;d=d+1|0;if((k|0)!=(d|0)){continue}break}break u}if(!s){b=1;d=0;if((k|0)!=1){f=k&-2;e=0;while(1){h=H[l>>2];g=d<<2;j=Rj(c,m,H[g+r>>2],0)+i|0;h=qa(a,h+j|0,o);j=H[l>>2];g=Rj(c,m,H[r+(g|4)>>2],0)+i|0;qa(h,j+g|0,o);d=d+2|0;e=e+2|0;if((f|0)!=(e|0)){continue}break}}if(!(k&1)){break u}e=H[l>>2];c=Rj(c,m,H[r+(d<<2)>>2],0)+i|0;qa(a,c+e|0,o);break u}f=k&1;b=1;if((k|0)!=1){k=k&-2;while(1){d=H[l>>2];e=Rj(g,h,c,m)+i|0;d=qa(a,d+e|0,o);e=H[l>>2];p=Rj(c,m,g|1,h)+i|0;qa(d,e+p|0,o);g=g+2|0;h=g>>>0<2?h+1|0:h;d=j;e=n+2|0;d=e>>>0<2?d+1|0:d;n=e;j=d;if((e|0)!=(k|0)|d){continue}break}}if(!f){break u}d=H[l>>2];c=Rj(g,h,c,m)+i|0;qa(a,c+d|0,o);break u}if(!p){d=0;while(1){if(!Va(c,I[c+84|0]?d:H[H[c+68>>2]+(d<<2)>>2],F[c+24|0],a)){break u}d=d+1|0;b=k>>>0<=d>>>0;if((d|0)!=(k|0)){continue}break}break u}e=0;d=0;while(1){if(!Va(c,I[c+84|0]?d:H[H[c+68>>2]+(d<<2)>>2],F[c+24|0],a)){break u}qa((e<<2)+f|0,a,q);e=e+p|0;d=d+1|0;b=k>>>0<=d>>>0;if((d|0)!=(k|0)){continue}break}}if(!a){break s}oa(a)}a=b;break;default:break b}}b=a}return b|0}function ef(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;i=ca-48|0;ca=i;a:{b:{if((c|0)!=1){break b}c=H[a+4>>2];g=H[a+12>>2];H[i+40>>2]=0;a=i;H[a+32>>2]=0;H[a+36>>2]=0;H[a+24>>2]=0;H[a+28>>2]=0;H[a+16>>2]=0;H[a+20>>2]=0;H[a+8>>2]=0;H[a+12>>2]=0;e=a+8|0;c:{if((b|0)==-2){break c}l=H[H[H[c+4>>2]+8>>2]+(g<<2)>>2];if((ea[H[H[c>>2]+8>>2]](c)|0)==1){a=J[c+36>>1];j=(a<<8|a>>>8)&65535;a=0;h=ca-32|0;ca=h;d=H[H[H[c+4>>2]+8>>2]+(g<<2)>>2];d:{if((ea[H[H[c>>2]+8>>2]](c)|0)!=1|b-1>>>0>5){break d}k=ea[H[H[c>>2]+36>>2]](c)|0;f=ea[H[H[c>>2]+44>>2]](c,g)|0;if(!k|!f){break d}a=ea[H[H[c>>2]+40>>2]](c,g)|0;if(a){c=H[c+44>>2];H[h+12>>2]=a;H[h+8>>2]=c;H[h+20>>2]=f;H[h+16>>2]=f+12;c=h+8|0;a=0;e:{f:{switch(b-1|0){case 0:a=pa(60);H[a+4>>2]=d;H[a>>2]=3272;b=H[e+4>>2];H[a+8>>2]=H[e>>2];H[a+12>>2]=b;b=H[e+12>>2];H[a+16>>2]=H[e+8>>2];H[a+20>>2]=b;b=H[e+20>>2];H[a+24>>2]=H[e+16>>2];H[a+28>>2]=b;H[a+40>>2]=0;H[a+32>>2]=0;H[a+36>>2]=0;d=H[e+24>>2];f=H[e+28>>2];if((d|0)!=(f|0)){g=f-d|0;if((g|0)<0){break a}b=pa(g);H[a+32>>2]=b;H[a+40>>2]=(g&-4)+b;while(1){H[b>>2]=H[d>>2];b=b+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}H[a+36>>2]=b}b=H[c+4>>2];H[a+44>>2]=H[c>>2];H[a+48>>2]=b;b=H[c+12>>2];H[a+52>>2]=H[c+8>>2];H[a+56>>2]=b;H[a>>2]=2564;break e;case 1:a=pa(60);H[a+4>>2]=d;H[a>>2]=3272;b=H[e+4>>2];H[a+8>>2]=H[e>>2];H[a+12>>2]=b;b=H[e+12>>2];H[a+16>>2]=H[e+8>>2];H[a+20>>2]=b;b=H[e+20>>2];H[a+24>>2]=H[e+16>>2];H[a+28>>2]=b;H[a+40>>2]=0;H[a+32>>2]=0;H[a+36>>2]=0;d=H[e+24>>2];f=H[e+28>>2];if((d|0)!=(f|0)){g=f-d|0;if((g|0)<0){break a}b=pa(g);H[a+32>>2]=b;H[a+40>>2]=(g&-4)+b;while(1){H[b>>2]=H[d>>2];b=b+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}H[a+36>>2]=b}b=H[c+4>>2];H[a+44>>2]=H[c>>2];H[a+48>>2]=b;b=H[c+12>>2];H[a+52>>2]=H[c+8>>2];H[a+56>>2]=b;H[a>>2]=3328;break e;case 3:a=pa(112);H[a+4>>2]=d;H[a>>2]=3272;b=H[e+4>>2];H[a+8>>2]=H[e>>2];H[a+12>>2]=b;b=H[e+12>>2];H[a+16>>2]=H[e+8>>2];H[a+20>>2]=b;b=H[e+20>>2];H[a+24>>2]=H[e+16>>2];H[a+28>>2]=b;H[a+40>>2]=0;H[a+32>>2]=0;H[a+36>>2]=0;d=H[e+24>>2];f=H[e+28>>2];if((d|0)!=(f|0)){g=f-d|0;if((g|0)<0){break a}b=pa(g);H[a+32>>2]=b;H[a+40>>2]=(g&-4)+b;while(1){H[b>>2]=H[d>>2];b=b+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}H[a+36>>2]=b}b=H[c+4>>2];H[a+44>>2]=H[c>>2];H[a+48>>2]=b;b=H[c+12>>2];H[a+52>>2]=H[c+8>>2];H[a+56>>2]=b;H[a+60>>2]=0;H[a+64>>2]=0;H[a>>2]=3564;H[a+68>>2]=0;H[a+72>>2]=0;H[a+76>>2]=0;H[a+80>>2]=0;H[a+84>>2]=0;H[a+88>>2]=0;H[a+92>>2]=0;H[a+96>>2]=0;H[a+100>>2]=0;H[a+104>>2]=0;H[a+108>>2]=0;break e;case 2:a=pa(92);H[a+4>>2]=d;H[a>>2]=3272;b=H[e+4>>2];H[a+8>>2]=H[e>>2];H[a+12>>2]=b;b=H[e+12>>2];H[a+16>>2]=H[e+8>>2];H[a+20>>2]=b;b=H[e+20>>2];H[a+24>>2]=H[e+16>>2];H[a+28>>2]=b;H[a+40>>2]=0;H[a+32>>2]=0;H[a+36>>2]=0;d=H[e+24>>2];f=H[e+28>>2];if((d|0)!=(f|0)){g=f-d|0;if((g|0)<0){break a}b=pa(g);H[a+32>>2]=b;H[a+40>>2]=(g&-4)+b;while(1){H[b>>2]=H[d>>2];b=b+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}H[a+36>>2]=b}b=H[c+4>>2];H[a+44>>2]=H[c>>2];H[a+48>>2]=b;b=H[c+12>>2];H[a+52>>2]=H[c+8>>2];H[a+56>>2]=b;H[a+60>>2]=0;H[a+64>>2]=0;H[a>>2]=3812;H[a+68>>2]=0;H[a+72>>2]=0;H[a+76>>2]=0;H[a+80>>2]=0;H[a+84>>2]=0;H[a+88>>2]=j;break e;case 4:a=pa(104);H[a+4>>2]=d;H[a>>2]=3272;b=H[e+4>>2];H[a+8>>2]=H[e>>2];H[a+12>>2]=b;b=H[e+12>>2];H[a+16>>2]=H[e+8>>2];H[a+20>>2]=b;b=H[e+20>>2];H[a+24>>2]=H[e+16>>2];H[a+28>>2]=b;H[a+40>>2]=0;H[a+32>>2]=0;H[a+36>>2]=0;d=H[e+24>>2];f=H[e+28>>2];if((d|0)!=(f|0)){g=f-d|0;if((g|0)<0){break a}b=pa(g);H[a+32>>2]=b;H[a+40>>2]=(g&-4)+b;while(1){H[b>>2]=H[d>>2];b=b+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}H[a+36>>2]=b}b=H[c+4>>2];H[a+44>>2]=H[c>>2];H[a+48>>2]=b;b=H[c+12>>2];H[a+52>>2]=H[c+8>>2];H[a+56>>2]=b;H[a+84>>2]=0;H[a+76>>2]=0;H[a+80>>2]=0;H[a+60>>2]=0;H[a+64>>2]=0;H[a>>2]=4040;b=H[c+4>>2];H[a+88>>2]=H[c>>2];H[a+92>>2]=b;b=H[c+12>>2];H[a+96>>2]=H[c+8>>2];H[a+100>>2]=b;break e;case 5:break f;default:break e}}a=pa(128);H[a+4>>2]=d;H[a>>2]=3272;b=H[e+4>>2];H[a+8>>2]=H[e>>2];H[a+12>>2]=b;b=H[e+12>>2];H[a+16>>2]=H[e+8>>2];H[a+20>>2]=b;b=H[e+20>>2];H[a+24>>2]=H[e+16>>2];H[a+28>>2]=b;H[a+40>>2]=0;H[a+32>>2]=0;H[a+36>>2]=0;g:{b=H[e+28>>2];d=H[e+24>>2];if((b|0)!=(d|0)){d=b-d|0;if((d|0)<0){break a}b=pa(d);H[a+36>>2]=b;H[a+32>>2]=b;H[a+40>>2]=(d&-4)+b;d=H[e+24>>2];f=H[e+28>>2];if((d|0)!=(f|0)){while(1){H[b>>2]=H[d>>2];b=b+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}}H[a+36>>2]=b}H[a>>2]=3216;b=H[c+4>>2];H[a+44>>2]=H[c>>2];H[a+48>>2]=b;b=H[c+12>>2];H[a+52>>2]=H[c+8>>2];H[a+56>>2]=b;b=a- -64|0;H[b>>2]=0;H[b+4>>2]=0;H[a+60>>2]=4904;H[a>>2]=4276;b=H[c+4>>2];H[a+72>>2]=H[c>>2];H[a+76>>2]=b;b=H[c+12>>2];H[a+80>>2]=H[c+8>>2];H[a+84>>2]=b;H[a+104>>2]=1065353216;H[a+108>>2]=-1;H[a+96>>2]=-1;H[a+100>>2]=-1;H[a+88>>2]=1;H[a+92>>2]=-1;H[a+60>>2]=4512;H[a+112>>2]=0;H[a+116>>2]=0;F[a+117|0]=0;F[a+118|0]=0;F[a+119|0]=0;F[a+120|0]=0;F[a+121|0]=0;F[a+122|0]=0;F[a+123|0]=0;F[a+124|0]=0;break g}}break d}a=H[c+44>>2];H[h+12>>2]=k;H[h+8>>2]=a;H[h+20>>2]=f;H[h+16>>2]=f+12;c=h+8|0;a=0;h:{i:{switch(b-1|0){case 0:a=pa(60);H[a+4>>2]=d;H[a>>2]=3272;b=H[e+4>>2];H[a+8>>2]=H[e>>2];H[a+12>>2]=b;b=H[e+12>>2];H[a+16>>2]=H[e+8>>2];H[a+20>>2]=b;b=H[e+20>>2];H[a+24>>2]=H[e+16>>2];H[a+28>>2]=b;H[a+40>>2]=0;H[a+32>>2]=0;H[a+36>>2]=0;d=H[e+24>>2];f=H[e+28>>2];if((d|0)!=(f|0)){g=f-d|0;if((g|0)<0){break a}b=pa(g);H[a+32>>2]=b;H[a+40>>2]=(g&-4)+b;while(1){H[b>>2]=H[d>>2];b=b+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}H[a+36>>2]=b}b=H[c+4>>2];H[a+44>>2]=H[c>>2];H[a+48>>2]=b;b=H[c+12>>2];H[a+52>>2]=H[c+8>>2];H[a+56>>2]=b;H[a>>2]=4932;break h;case 1:a=pa(60);H[a+4>>2]=d;H[a>>2]=3272;b=H[e+4>>2];H[a+8>>2]=H[e>>2];H[a+12>>2]=b;b=H[e+12>>2];H[a+16>>2]=H[e+8>>2];H[a+20>>2]=b;b=H[e+20>>2];H[a+24>>2]=H[e+16>>2];H[a+28>>2]=b;H[a+40>>2]=0;H[a+32>>2]=0;H[a+36>>2]=0;d=H[e+24>>2];f=H[e+28>>2];if((d|0)!=(f|0)){g=f-d|0;if((g|0)<0){break a}b=pa(g);H[a+32>>2]=b;H[a+40>>2]=(g&-4)+b;while(1){H[b>>2]=H[d>>2];b=b+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}H[a+36>>2]=b}b=H[c+4>>2];H[a+44>>2]=H[c>>2];H[a+48>>2]=b;b=H[c+12>>2];H[a+52>>2]=H[c+8>>2];H[a+56>>2]=b;H[a>>2]=5356;break h;case 3:a=pa(112);H[a+4>>2]=d;H[a>>2]=3272;b=H[e+4>>2];H[a+8>>2]=H[e>>2];H[a+12>>2]=b;b=H[e+12>>2];H[a+16>>2]=H[e+8>>2];H[a+20>>2]=b;b=H[e+20>>2];H[a+24>>2]=H[e+16>>2];H[a+28>>2]=b;H[a+40>>2]=0;H[a+32>>2]=0;H[a+36>>2]=0;d=H[e+24>>2];f=H[e+28>>2];if((d|0)!=(f|0)){g=f-d|0;if((g|0)<0){break a}b=pa(g);H[a+32>>2]=b;H[a+40>>2]=(g&-4)+b;while(1){H[b>>2]=H[d>>2];b=b+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}H[a+36>>2]=b}b=H[c+4>>2];H[a+44>>2]=H[c>>2];H[a+48>>2]=b;b=H[c+12>>2];H[a+52>>2]=H[c+8>>2];H[a+56>>2]=b;H[a+60>>2]=0;H[a+64>>2]=0;H[a>>2]=5580;H[a+68>>2]=0;H[a+72>>2]=0;H[a+76>>2]=0;H[a+80>>2]=0;H[a+84>>2]=0;H[a+88>>2]=0;H[a+92>>2]=0;H[a+96>>2]=0;H[a+100>>2]=0;H[a+104>>2]=0;H[a+108>>2]=0;break h;case 2:a=pa(92);H[a+4>>2]=d;H[a>>2]=3272;b=H[e+4>>2];H[a+8>>2]=H[e>>2];H[a+12>>2]=b;b=H[e+12>>2];H[a+16>>2]=H[e+8>>2];H[a+20>>2]=b;b=H[e+20>>2];H[a+24>>2]=H[e+16>>2];H[a+28>>2]=b;H[a+40>>2]=0;H[a+32>>2]=0;H[a+36>>2]=0;d=H[e+24>>2];f=H[e+28>>2];if((d|0)!=(f|0)){g=f-d|0;if((g|0)<0){break a}b=pa(g);H[a+32>>2]=b;H[a+40>>2]=(g&-4)+b;while(1){H[b>>2]=H[d>>2];b=b+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}H[a+36>>2]=b}b=H[c+4>>2];H[a+44>>2]=H[c>>2];H[a+48>>2]=b;b=H[c+12>>2];H[a+52>>2]=H[c+8>>2];H[a+56>>2]=b;H[a+60>>2]=0;H[a+64>>2]=0;H[a>>2]=5816;H[a+68>>2]=0;H[a+72>>2]=0;H[a+76>>2]=0;H[a+80>>2]=0;H[a+84>>2]=0;H[a+88>>2]=j;break h;case 4:a=pa(104);H[a+4>>2]=d;H[a>>2]=3272;b=H[e+4>>2];H[a+8>>2]=H[e>>2];H[a+12>>2]=b;b=H[e+12>>2];H[a+16>>2]=H[e+8>>2];H[a+20>>2]=b;b=H[e+20>>2];H[a+24>>2]=H[e+16>>2];H[a+28>>2]=b;H[a+40>>2]=0;H[a+32>>2]=0;H[a+36>>2]=0;d=H[e+24>>2];f=H[e+28>>2];if((d|0)!=(f|0)){g=f-d|0;if((g|0)<0){break a}b=pa(g);H[a+32>>2]=b;H[a+40>>2]=(g&-4)+b;while(1){H[b>>2]=H[d>>2];b=b+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}H[a+36>>2]=b}b=H[c+4>>2];H[a+44>>2]=H[c>>2];H[a+48>>2]=b;b=H[c+12>>2];H[a+52>>2]=H[c+8>>2];H[a+56>>2]=b;H[a+84>>2]=0;H[a+76>>2]=0;H[a+80>>2]=0;H[a+60>>2]=0;H[a+64>>2]=0;H[a>>2]=6032;b=H[c+4>>2];H[a+88>>2]=H[c>>2];H[a+92>>2]=b;b=H[c+12>>2];H[a+96>>2]=H[c+8>>2];H[a+100>>2]=b;break h;case 5:break i;default:break h}}a=pa(128);H[a+4>>2]=d;H[a>>2]=3272;b=H[e+4>>2];H[a+8>>2]=H[e>>2];H[a+12>>2]=b;b=H[e+12>>2];H[a+16>>2]=H[e+8>>2];H[a+20>>2]=b;b=H[e+20>>2];H[a+24>>2]=H[e+16>>2];H[a+28>>2]=b;H[a+40>>2]=0;H[a+32>>2]=0;H[a+36>>2]=0;j:{b=H[e+28>>2];d=H[e+24>>2];if((b|0)!=(d|0)){d=b-d|0;if((d|0)<0){break a}b=pa(d);H[a+36>>2]=b;H[a+32>>2]=b;H[a+40>>2]=(d&-4)+b;d=H[e+24>>2];f=H[e+28>>2];if((d|0)!=(f|0)){while(1){H[b>>2]=H[d>>2];b=b+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}}H[a+36>>2]=b}H[a>>2]=5300;b=H[c+4>>2];H[a+44>>2]=H[c>>2];H[a+48>>2]=b;b=H[c+12>>2];H[a+52>>2]=H[c+8>>2];H[a+56>>2]=b;b=a- -64|0;H[b>>2]=0;H[b+4>>2]=0;H[a+60>>2]=6840;H[a>>2]=6256;b=H[c+4>>2];H[a+72>>2]=H[c>>2];H[a+76>>2]=b;b=H[c+12>>2];H[a+80>>2]=H[c+8>>2];H[a+84>>2]=b;H[a+104>>2]=1065353216;H[a+108>>2]=-1;H[a+96>>2]=-1;H[a+100>>2]=-1;H[a+88>>2]=1;H[a+92>>2]=-1;H[a+60>>2]=6476;H[a+112>>2]=0;H[a+116>>2]=0;F[a+117|0]=0;F[a+118|0]=0;F[a+119|0]=0;F[a+120|0]=0;F[a+121|0]=0;F[a+122|0]=0;F[a+123|0]=0;F[a+124|0]=0;break j}}}ca=h+32|0;d=a;if(a){break c}}d=pa(44);H[d+4>>2]=l;H[d>>2]=3272;a=H[e+4>>2];H[d+8>>2]=H[e>>2];H[d+12>>2]=a;a=H[e+12>>2];H[d+16>>2]=H[e+8>>2];H[d+20>>2]=a;a=H[e+20>>2];H[d+24>>2]=H[e+16>>2];H[d+28>>2]=a;H[d+40>>2]=0;H[d+32>>2]=0;H[d+36>>2]=0;c=H[e+24>>2];a=H[e+28>>2];if((c|0)!=(a|0)){b=a-c|0;if((b|0)<0){break a}e=pa(b);H[d+32>>2]=e;H[d+40>>2]=(b&-4)+e;while(1){H[e>>2]=H[c>>2];e=e+4|0;c=c+4|0;if((a|0)!=(c|0)){continue}break}H[d+36>>2]=e}H[d>>2]=6868;break c}e=d;a=H[i+32>>2];if(!a){break b}H[i+36>>2]=a;oa(a)}ca=i+48|0;return e|0}sa();v()}function Ec(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;l=ca-16|0;ca=l;a:{b:{c:{d:{e:{f:{g:{h:{i:{if(a>>>0<=244){g=H[4298];h=a>>>0<11?16:a+11&-8;c=h>>>3|0;b=g>>>c|0;if(b&3){c=c+((b^-1)&1)|0;a=c<<3;b=a+17232|0;d=H[a+17240>>2];a=H[d+8>>2];j:{if((b|0)==(a|0)){m=17192,n=Vj(c)&g,H[m>>2]=n;break j}H[a+12>>2]=b;H[b+8>>2]=a}a=d+8|0;b=c<<3;H[d+4>>2]=b|3;b=b+d|0;H[b+4>>2]=H[b+4>>2]|1;break a}k=H[4300];if(k>>>0>=h>>>0){break i}if(b){a=2<>2];a=H[e+8>>2];k:{if((b|0)==(a|0)){g=Vj(d)&g;H[4298]=g;break k}H[a+12>>2]=b;H[b+8>>2]=a}H[e+4>>2]=h|3;c=e+h|0;a=d<<3;d=a-h|0;H[c+4>>2]=d|1;H[a+e>>2]=d;if(k){b=(k&-8)+17232|0;f=H[4303];a=1<<(k>>>3);l:{if(!(a&g)){H[4298]=a|g;a=b;break l}a=H[b+8>>2]}H[b+8>>2]=f;H[a+12>>2]=f;H[f+12>>2]=b;H[f+8>>2]=a}a=e+8|0;H[4303]=c;H[4300]=d;break a}j=H[4299];if(!j){break i}c=H[(Qj(0-j&j)<<2)+17496>>2];f=(H[c+4>>2]&-8)-h|0;b=c;while(1){m:{a=H[b+16>>2];if(!a){a=H[b+20>>2];if(!a){break m}}b=(H[a+4>>2]&-8)-h|0;d=b>>>0>>0;f=d?b:f;c=d?a:c;b=a;continue}break}i=H[c+24>>2];d=H[c+12>>2];if((d|0)!=(c|0)){a=H[c+8>>2];H[a+12>>2]=d;H[d+8>>2]=a;break b}b=c+20|0;a=H[b>>2];if(!a){a=H[c+16>>2];if(!a){break h}b=c+16|0}while(1){e=b;d=a;b=a+20|0;a=H[b>>2];if(a){continue}b=d+16|0;a=H[d+16>>2];if(a){continue}break}H[e>>2]=0;break b}h=-1;if(a>>>0>4294967231){break i}a=a+11|0;h=a&-8;j=H[4299];if(!j){break i}f=0-h|0;g=0;n:{if(h>>>0<256){break n}g=31;if(h>>>0>16777215){break n}a=Q(a>>>8|0);g=((h>>>38-a&1)-(a<<1)|0)+62|0}b=H[(g<<2)+17496>>2];o:{p:{q:{if(!b){a=0;break q}a=0;c=h<<((g|0)!=31?25-(g>>>1|0)|0:0);while(1){r:{e=(H[b+4>>2]&-8)-h|0;if(e>>>0>=f>>>0){break r}d=b;f=e;if(e){break r}f=0;a=b;break p}e=H[b+20>>2];b=H[((c>>>29&4)+b|0)+16>>2];a=e?(e|0)==(b|0)?a:e:a;c=c<<1;if(b){continue}break}}if(!(a|d)){d=0;a=2<>2]}if(!a){break o}}while(1){b=(H[a+4>>2]&-8)-h|0;c=b>>>0>>0;f=c?b:f;d=c?a:d;b=H[a+16>>2];if(b){a=b}else{a=H[a+20>>2]}if(a){continue}break}}if(!d|H[4300]-h>>>0<=f>>>0){break i}g=H[d+24>>2];c=H[d+12>>2];if((d|0)!=(c|0)){a=H[d+8>>2];H[a+12>>2]=c;H[c+8>>2]=a;break c}b=d+20|0;a=H[b>>2];if(!a){a=H[d+16>>2];if(!a){break g}b=d+16|0}while(1){e=b;c=a;b=a+20|0;a=H[b>>2];if(a){continue}b=c+16|0;a=H[c+16>>2];if(a){continue}break}H[e>>2]=0;break c}a=H[4300];if(a>>>0>=h>>>0){d=H[4303];b=a-h|0;s:{if(b>>>0>=16){c=d+h|0;H[c+4>>2]=b|1;H[a+d>>2]=b;H[d+4>>2]=h|3;break s}H[d+4>>2]=a|3;a=a+d|0;H[a+4>>2]=H[a+4>>2]|1;c=0;b=0}H[4300]=b;H[4303]=c;a=d+8|0;break a}i=H[4301];if(i>>>0>h>>>0){b=i-h|0;H[4301]=b;c=H[4304];a=c+h|0;H[4304]=a;H[a+4>>2]=b|1;H[c+4>>2]=h|3;a=c+8|0;break a}a=0;j=h+47|0;if(H[4416]){c=H[4418]}else{H[4419]=-1;H[4420]=-1;H[4417]=4096;H[4418]=4096;H[4416]=l+12&-16^1431655768;H[4421]=0;H[4409]=0;c=4096}e=j+c|0;f=0-c|0;b=e&f;if(b>>>0<=h>>>0){break a}d=H[4408];if(d){c=H[4406];g=c+b|0;if(d>>>0>>0|c>>>0>=g>>>0){break a}}t:{if(!(I[17636]&4)){u:{v:{w:{x:{d=H[4304];if(d){a=17640;while(1){c=H[a>>2];if(c>>>0<=d>>>0&d>>>0>2]>>>0){break x}a=H[a+8>>2];if(a){continue}break}}c=zb(0);if((c|0)==-1){break u}g=b;d=H[4417];a=d-1|0;if(a&c){g=(b-c|0)+(a+c&0-d)|0}if(g>>>0<=h>>>0){break u}d=H[4408];if(d){a=H[4406];f=a+g|0;if(d>>>0>>0|a>>>0>=f>>>0){break u}}a=zb(g);if((c|0)!=(a|0)){break w}break t}g=f&e-i;c=zb(g);if((c|0)==(H[a>>2]+H[a+4>>2]|0)){break v}a=c}if((a|0)==-1){break u}if(h+48>>>0<=g>>>0){c=a;break t}c=H[4418];c=c+(j-g|0)&0-c;if((zb(c)|0)==-1){break u}g=c+g|0;c=a;break t}if((c|0)!=-1){break t}}H[4409]=H[4409]|4}c=zb(b);a=zb(0);if((c|0)==-1|(a|0)==-1|a>>>0<=c>>>0){break d}g=a-c|0;if(g>>>0<=h+40>>>0){break d}}a=H[4406]+g|0;H[4406]=a;if(a>>>0>K[4407]){H[4407]=a}y:{e=H[4304];if(e){a=17640;while(1){d=H[a>>2];b=H[a+4>>2];if((d+b|0)==(c|0)){break y}a=H[a+8>>2];if(a){continue}break}break f}a=H[4302];if(!(a>>>0<=c>>>0?a:0)){H[4302]=c}a=0;H[4411]=g;H[4410]=c;H[4306]=-1;H[4307]=H[4416];H[4413]=0;while(1){d=a<<3;b=d+17232|0;H[d+17240>>2]=b;H[d+17244>>2]=b;a=a+1|0;if((a|0)!=32){continue}break}d=g-40|0;a=c+8&7?-8-c&7:0;b=d-a|0;H[4301]=b;a=a+c|0;H[4304]=a;H[a+4>>2]=b|1;H[(c+d|0)+4>>2]=40;H[4305]=H[4420];break e}if(I[a+12|0]&8|d>>>0>e>>>0|c>>>0<=e>>>0){break f}H[a+4>>2]=b+g;a=e+8&7?-8-e&7:0;c=a+e|0;H[4304]=c;b=H[4301]+g|0;a=b-a|0;H[4301]=a;H[c+4>>2]=a|1;H[(b+e|0)+4>>2]=40;H[4305]=H[4420];break e}d=0;break b}c=0;break c}if(K[4302]>c>>>0){H[4302]=c}b=c+g|0;a=17640;z:{A:{B:{C:{D:{E:{while(1){if((b|0)!=H[a>>2]){a=H[a+8>>2];if(a){continue}break E}break}if(!(I[a+12|0]&8)){break D}}a=17640;while(1){b=H[a>>2];if(b>>>0<=e>>>0){f=b+H[a+4>>2]|0;if(f>>>0>e>>>0){break C}}a=H[a+8>>2];continue}}H[a>>2]=c;H[a+4>>2]=H[a+4>>2]+g;j=(c+8&7?-8-c&7:0)+c|0;H[j+4>>2]=h|3;g=b+(b+8&7?-8-b&7:0)|0;i=h+j|0;a=g-i|0;if((e|0)==(g|0)){H[4304]=i;a=H[4301]+a|0;H[4301]=a;H[i+4>>2]=a|1;break A}if(H[4303]==(g|0)){H[4303]=i;a=H[4300]+a|0;H[4300]=a;H[i+4>>2]=a|1;H[a+i>>2]=a;break A}f=H[g+4>>2];if((f&3)==1){e=f&-8;F:{if(f>>>0<=255){d=H[g+8>>2];b=f>>>3|0;c=H[g+12>>2];if((c|0)==(d|0)){m=17192,n=H[4298]&Vj(b),H[m>>2]=n;break F}H[d+12>>2]=c;H[c+8>>2]=d;break F}h=H[g+24>>2];c=H[g+12>>2];G:{if((g|0)!=(c|0)){b=H[g+8>>2];H[b+12>>2]=c;H[c+8>>2]=b;break G}H:{f=g+20|0;b=H[f>>2];if(b){break H}f=g+16|0;b=H[f>>2];if(b){break H}c=0;break G}while(1){d=f;c=b;f=c+20|0;b=H[f>>2];if(b){continue}f=c+16|0;b=H[c+16>>2];if(b){continue}break}H[d>>2]=0}if(!h){break F}d=H[g+28>>2];b=(d<<2)+17496|0;I:{if(H[b>>2]==(g|0)){H[b>>2]=c;if(c){break I}m=17196,n=H[4299]&Vj(d),H[m>>2]=n;break F}H[h+(H[h+16>>2]==(g|0)?16:20)>>2]=c;if(!c){break F}}H[c+24>>2]=h;b=H[g+16>>2];if(b){H[c+16>>2]=b;H[b+24>>2]=c}b=H[g+20>>2];if(!b){break F}H[c+20>>2]=b;H[b+24>>2]=c}g=e+g|0;f=H[g+4>>2];a=a+e|0}H[g+4>>2]=f&-2;H[i+4>>2]=a|1;H[a+i>>2]=a;if(a>>>0<=255){b=(a&-8)+17232|0;c=H[4298];a=1<<(a>>>3);J:{if(!(c&a)){H[4298]=a|c;a=b;break J}a=H[b+8>>2]}H[b+8>>2]=i;H[a+12>>2]=i;H[i+12>>2]=b;H[i+8>>2]=a;break A}f=31;if(a>>>0<=16777215){b=Q(a>>>8|0);f=((a>>>38-b&1)-(b<<1)|0)+62|0}H[i+28>>2]=f;H[i+16>>2]=0;H[i+20>>2]=0;b=(f<<2)+17496|0;d=H[4299];c=1<>2]=i;break K}f=a<<((f|0)!=31?25-(f>>>1|0)|0:0);c=H[b>>2];while(1){b=c;if((H[c+4>>2]&-8)==(a|0)){break B}c=f>>>29|0;f=f<<1;d=(c&4)+b|0;c=H[d+16>>2];if(c){continue}break}H[d+16>>2]=i}H[i+24>>2]=b;H[i+12>>2]=i;H[i+8>>2]=i;break A}d=g-40|0;a=c+8&7?-8-c&7:0;b=d-a|0;H[4301]=b;a=a+c|0;H[4304]=a;H[a+4>>2]=b|1;H[(c+d|0)+4>>2]=40;H[4305]=H[4420];a=(f+(f-39&7?39-f&7:0)|0)-47|0;d=a>>>0>>0?e:a;H[d+4>>2]=27;a=H[4413];H[d+16>>2]=H[4412];H[d+20>>2]=a;a=H[4411];H[d+8>>2]=H[4410];H[d+12>>2]=a;H[4412]=d+8;H[4411]=g;H[4410]=c;H[4413]=0;a=d+24|0;while(1){H[a+4>>2]=7;b=a+8|0;a=a+4|0;if(b>>>0>>0){continue}break}if((d|0)==(e|0)){break e}H[d+4>>2]=H[d+4>>2]&-2;f=d-e|0;H[e+4>>2]=f|1;H[d>>2]=f;if(f>>>0<=255){b=(f&-8)+17232|0;c=H[4298];a=1<<(f>>>3);L:{if(!(c&a)){H[4298]=a|c;a=b;break L}a=H[b+8>>2]}H[b+8>>2]=e;H[a+12>>2]=e;H[e+12>>2]=b;H[e+8>>2]=a;break e}a=31;if(f>>>0<=16777215){a=Q(f>>>8|0);a=((f>>>38-a&1)-(a<<1)|0)+62|0}H[e+28>>2]=a;H[e+16>>2]=0;H[e+20>>2]=0;b=(a<<2)+17496|0;d=H[4299];c=1<>2]=e;break M}a=f<<((a|0)!=31?25-(a>>>1|0)|0:0);d=H[b>>2];while(1){b=d;if((f|0)==(H[b+4>>2]&-8)){break z}c=a>>>29|0;a=a<<1;c=(c&4)+b|0;d=H[c+16>>2];if(d){continue}break}H[c+16>>2]=e}H[e+24>>2]=b;H[e+12>>2]=e;H[e+8>>2]=e;break e}a=H[b+8>>2];H[a+12>>2]=i;H[b+8>>2]=i;H[i+24>>2]=0;H[i+12>>2]=b;H[i+8>>2]=a}a=j+8|0;break a}a=H[b+8>>2];H[a+12>>2]=e;H[b+8>>2]=e;H[e+24>>2]=0;H[e+12>>2]=b;H[e+8>>2]=a}a=H[4301];if(a>>>0<=h>>>0){break d}b=a-h|0;H[4301]=b;c=H[4304];a=c+h|0;H[4304]=a;H[a+4>>2]=b|1;H[c+4>>2]=h|3;a=c+8|0;break a}H[3992]=48;a=0;break a}N:{if(!g){break N}b=H[d+28>>2];a=(b<<2)+17496|0;O:{if(H[a>>2]==(d|0)){H[a>>2]=c;if(c){break O}j=Vj(b)&j;H[4299]=j;break N}H[g+(H[g+16>>2]==(d|0)?16:20)>>2]=c;if(!c){break N}}H[c+24>>2]=g;a=H[d+16>>2];if(a){H[c+16>>2]=a;H[a+24>>2]=c}a=H[d+20>>2];if(!a){break N}H[c+20>>2]=a;H[a+24>>2]=c}P:{if(f>>>0<=15){a=f+h|0;H[d+4>>2]=a|3;a=a+d|0;H[a+4>>2]=H[a+4>>2]|1;break P}H[d+4>>2]=h|3;e=d+h|0;H[e+4>>2]=f|1;H[e+f>>2]=f;if(f>>>0<=255){b=(f&-8)+17232|0;c=H[4298];a=1<<(f>>>3);Q:{if(!(c&a)){H[4298]=a|c;a=b;break Q}a=H[b+8>>2]}H[b+8>>2]=e;H[a+12>>2]=e;H[e+12>>2]=b;H[e+8>>2]=a;break P}a=31;if(f>>>0<=16777215){a=Q(f>>>8|0);a=((f>>>38-a&1)-(a<<1)|0)+62|0}H[e+28>>2]=a;H[e+16>>2]=0;H[e+20>>2]=0;b=(a<<2)+17496|0;R:{c=1<>2]=e;break S}a=f<<((a|0)!=31?25-(a>>>1|0)|0:0);h=H[b>>2];while(1){b=h;if((H[b+4>>2]&-8)==(f|0)){break R}c=a>>>29|0;a=a<<1;c=(c&4)+b|0;h=H[c+16>>2];if(h){continue}break}H[c+16>>2]=e}H[e+24>>2]=b;H[e+12>>2]=e;H[e+8>>2]=e;break P}a=H[b+8>>2];H[a+12>>2]=e;H[b+8>>2]=e;H[e+24>>2]=0;H[e+12>>2]=b;H[e+8>>2]=a}a=d+8|0;break a}T:{if(!i){break T}b=H[c+28>>2];a=(b<<2)+17496|0;U:{if(H[a>>2]==(c|0)){H[a>>2]=d;if(d){break U}m=17196,n=Vj(b)&j,H[m>>2]=n;break T}H[i+(H[i+16>>2]==(c|0)?16:20)>>2]=d;if(!d){break T}}H[d+24>>2]=i;a=H[c+16>>2];if(a){H[d+16>>2]=a;H[a+24>>2]=d}a=H[c+20>>2];if(!a){break T}H[d+20>>2]=a;H[a+24>>2]=d}V:{if(f>>>0<=15){a=f+h|0;H[c+4>>2]=a|3;a=a+c|0;H[a+4>>2]=H[a+4>>2]|1;break V}H[c+4>>2]=h|3;d=c+h|0;H[d+4>>2]=f|1;H[d+f>>2]=f;if(k){b=(k&-8)+17232|0;e=H[4303];a=1<<(k>>>3);W:{if(!(a&g)){H[4298]=a|g;a=b;break W}a=H[b+8>>2]}H[b+8>>2]=e;H[a+12>>2]=e;H[e+12>>2]=b;H[e+8>>2]=a}H[4303]=d;H[4300]=f}a=c+8|0}ca=l+16|0;return a|0}function ce(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0,z=0,A=0;m=ca-32|0;ca=m;o=pa(12);H[o+8>>2]=0;H[o+4>>2]=b;H[o>>2]=0;s=o+12|0;b=s;a:{b:{c:{while(1){b=b-12|0;w=H[b+8>>2];j=H[b+4>>2];t=H[b>>2];if(t){if((w|0)>1e3){break a}H[m+24>>2]=0;H[m+16>>2]=0;H[m+20>>2]=0;d=1;c=H[a>>2];e=H[c+8>>2];h=H[c+12>>2];g=H[c+20>>2];f=H[c+16>>2];d:{if((h|0)<=(g|0)&f>>>0>=e>>>0|(g|0)>(h|0)){break d}e=I[f+H[c>>2]|0];h=c;c=g;f=f+1|0;c=f?c:c+1|0;H[h+16>>2]=f;H[h+20>>2]=c;Cc(m+16|0,e);if(e){c=H[a>>2];n=Dc(m+16|0);p=H[c+8>>2];g=H[c+12>>2];h=H[c+20>>2];f=H[c+16>>2];k=f+e|0;h=k>>>0>>0?h+1|0:h;if((g|0)<=(h|0)&k>>>0>p>>>0|(g|0)<(h|0)){break d}qa(n,f+H[c>>2]|0,e);d=H[c+20>>2];f=e;e=e+H[c+16>>2]|0;d=f>>>0>e>>>0?d+1|0:d;H[c+16>>2]=e;H[c+20>>2]=d}j=pa(24);c=j;H[c+4>>2]=0;H[c+8>>2]=0;c=c+16|0;H[c>>2]=0;H[c+4>>2]=0;H[j>>2]=j+4;H[j+12>>2]=c;e=ca-32|0;ca=e;h=t+12|0;c=m+16|0;u=nb(h,c);i=t+16|0;e:{if((u|0)==(i|0)){H[e+16>>2]=c;f:{g:{d=H[h+4>>2];h:{if(!d){f=h+4|0;c=f;break h}f=I[c+11|0];g=f<<24>>24<0;n=g?H[c>>2]:c;g=g?H[c+4>>2]:f;while(1){c=d;d=I[c+27|0];f=d<<24>>24<0;d=f?H[c+20>>2]:d;p=d>>>0>>0;i:{j:{k:{l:{k=p?d:g;m:{if(k){f=f?H[c+16>>2]:c+16|0;q=Fa(n,f,k);if(!q){if(d>>>0>g>>>0){break m}break l}if((q|0)>=0){break l}break m}if(d>>>0<=g>>>0){break k}}f=c;d=H[c>>2];if(d){continue}break h}d=Fa(f,n,k);if(d){break j}}if(p){break i}break g}if((d|0)>=0){break g}}d=H[c+4>>2];if(d){continue}break}f=c+4|0}d=pa(32);n=d+16|0;g=H[e+16>>2];n:{if(F[g+11|0]>=0){p=H[g+4>>2];H[n>>2]=H[g>>2];H[n+4>>2]=p;H[n+8>>2]=H[g+8>>2];break n}za(n,H[g>>2],H[g+4>>2])}H[d+8>>2]=c;H[d>>2]=0;H[d+4>>2]=0;H[d+28>>2]=0;H[f>>2]=d;c=d;g=H[H[h>>2]>>2];if(g){H[h>>2]=g;c=H[f>>2]}Sb(H[h+4>>2],c);H[h+8>>2]=H[h+8>>2]+1;c=1;break f}d=c;c=0}F[e+28|0]=c;H[e+24>>2]=d;d=H[e+24>>2];c=H[d+28>>2];H[d+28>>2]=j;if(!c){break e}Ra(c+12|0,H[c+16>>2]);Qa(c,H[c+4>>2]);oa(c);break e}if(!j){break e}Ra(j+12|0,H[j+16>>2]);Qa(j,H[j+4>>2]);oa(j)}ca=e+32|0;d=(i|0)!=(u|0)}if(F[m+27|0]<0){oa(H[m+16>>2])}if(d){break a}}if(!j){break a}H[m+16>>2]=0;if(!Bb(1,m+16|0,H[a>>2])){break a}q=0;x=H[m+16>>2];if(x){while(1){d=0;i=ca-32|0;ca=i;H[i+24>>2]=0;H[i+16>>2]=0;H[i+20>>2]=0;c=H[a>>2];f=H[c+8>>2];o:{p:{h=H[c+12>>2];g=H[c+20>>2];e=H[c+16>>2];q:{if((h|0)<=(g|0)&e>>>0>=f>>>0|(g|0)>(h|0)){break q}f=I[e+H[c>>2]|0];h=c;c=g;e=e+1|0;c=e?c:c+1|0;H[h+16>>2]=e;H[h+20>>2]=c;Cc(i+16|0,f);if(f){e=H[a>>2];n=Dc(i+16|0);p=H[e+8>>2];g=H[e+12>>2];c=H[e+20>>2];h=H[e+16>>2];k=h+f|0;c=k>>>0>>0?c+1|0:c;if(k>>>0>p>>>0&(c|0)>=(g|0)|(c|0)>(g|0)){break q}qa(n,h+H[e>>2]|0,f);c=H[e+20>>2];g=f;f=f+H[e+16>>2]|0;c=g>>>0>f>>>0?c+1|0:c;H[e+16>>2]=f;H[e+20>>2]=c}H[i+12>>2]=0;if(!Bb(1,i+12|0,H[a>>2])){break q}f=H[i+12>>2];if(!f){break q}e=H[a>>2];c=H[e+8>>2];h=H[e+16>>2];g=c-h|0;c=H[e+12>>2]-(H[e+20>>2]+(c>>>0>>0)|0)|0;if((c|0)<=0&f>>>0>g>>>0|(c|0)<0){break q}H[i+8>>2]=0;H[i>>2]=0;H[i+4>>2]=0;if((f|0)<0){break p}d=pa(f);H[i>>2]=d;c=d+f|0;H[i+8>>2]=c;l=ra(d,0,f);H[i+4>>2]=c;h=H[e+12>>2];y=h;p=H[e+8>>2];c=H[e+20>>2];k=H[e+16>>2];g=f+k|0;c=g>>>0>>0?c+1|0:c;u=g;n=c;r:{if((c|0)<=(h|0)&g>>>0<=p>>>0|(c|0)<(h|0)){qa(l,H[e>>2]+k|0,f);d=H[e+20>>2];c=f+H[e+16>>2]|0;d=c>>>0>>0?d+1|0:d;H[e+16>>2]=c;H[e+20>>2]=d;h=ca-48|0;ca=h;e=nb(j,i+16|0);if((e|0)!=(j+4|0)){c=H[e+4>>2];s:{if(!c){c=e;while(1){d=H[c+8>>2];f=H[d>>2]!=(c|0);c=d;if(f){continue}break}break s}while(1){d=c;c=H[c>>2];if(c){continue}break}}if((e|0)==H[j>>2]){H[j>>2]=d}H[j+8>>2]=H[j+8>>2]-1;f=H[j+4>>2];t:{u:{g=e;d=e;e=H[d>>2];if(e){c=H[g+4>>2];if(!c){break u}while(1){d=c;c=H[c>>2];if(c){continue}break}}e=H[d+4>>2];if(e){break u}e=0;k=1;break t}H[e+8>>2]=H[d+8>>2];k=0}l=H[d+8>>2];c=H[l>>2];v:{if((d|0)==(c|0)){H[l>>2]=e;if((d|0)==(f|0)){c=0;f=e;break v}c=H[l+4>>2];break v}H[l+4>>2]=e}r=!I[d+12|0];if((d|0)!=(g|0)){l=H[g+8>>2];H[d+8>>2]=l;H[l+(((g|0)!=H[H[g+8>>2]>>2])<<2)>>2]=d;l=H[g>>2];H[d>>2]=l;H[l+8>>2]=d;l=H[g+4>>2];H[d+4>>2]=l;if(l){H[l+8>>2]=d}F[d+12|0]=I[g+12|0];f=(f|0)==(g|0)?d:f}w:{if(r|!f){break w}if(k){while(1){e=I[c+12|0];x:{d=H[c+8>>2];if(H[d>>2]!=(c|0)){if(!e){F[c+12|0]=1;F[d+12|0]=0;e=H[d+4>>2];k=H[e>>2];H[d+4>>2]=k;if(k){H[k+8>>2]=d}H[e+8>>2]=H[d+8>>2];k=H[d+8>>2];H[(((d|0)!=H[k>>2])<<2)+k>>2]=e;H[e>>2]=d;H[d+8>>2]=e;d=c;c=H[c>>2];f=(c|0)==(f|0)?d:f;c=H[c+4>>2]}y:{z:{d=H[c>>2];A:{if(!(I[d+12|0]?0:d)){e=H[c+4>>2];if(I[e+12|0]?0:e){break A}F[c+12|0]=0;c=H[c+8>>2];B:{if((f|0)==(c|0)){c=f;break B}if(I[c+12|0]){break x}}F[c+12|0]=1;break w}e=H[c+4>>2];if(!e){break z}}if(I[e+12|0]){break z}d=c;break y}F[d+12|0]=1;F[c+12|0]=0;e=H[d+4>>2];H[c>>2]=e;if(e){H[e+8>>2]=c}H[d+8>>2]=H[c+8>>2];e=H[c+8>>2];H[((H[e>>2]!=(c|0))<<2)+e>>2]=d;H[d+4>>2]=c;H[c+8>>2]=d;e=c}c=H[d+8>>2];F[d+12|0]=I[c+12|0];F[c+12|0]=1;F[e+12|0]=1;d=H[c+4>>2];e=H[d>>2];H[c+4>>2]=e;if(e){H[e+8>>2]=c}H[d+8>>2]=H[c+8>>2];e=H[c+8>>2];H[(((c|0)!=H[e>>2])<<2)+e>>2]=d;H[d>>2]=c;H[c+8>>2]=d;break w}if(!e){F[c+12|0]=1;F[d+12|0]=0;e=H[c+4>>2];H[d>>2]=e;if(e){H[e+8>>2]=d}H[c+8>>2]=H[d+8>>2];e=H[d+8>>2];H[(((d|0)!=H[e>>2])<<2)+e>>2]=c;H[c+4>>2]=d;H[d+8>>2]=c;f=(d|0)==(f|0)?c:f;c=H[d>>2]}e=H[c>>2];C:{if(!(!e|I[e+12|0])){d=c;break C}d=H[c+4>>2];if(!(I[d+12|0]?0:d)){F[c+12|0]=0;c=H[c+8>>2];if((c|0)!=(f|0)?I[c+12|0]:0){break x}F[c+12|0]=1;break w}if(e){if(!I[e+12|0]){d=c;break C}d=H[c+4>>2]}F[d+12|0]=1;F[c+12|0]=0;e=H[d>>2];H[c+4>>2]=e;if(e){H[e+8>>2]=c}H[d+8>>2]=H[c+8>>2];e=H[c+8>>2];H[((H[e>>2]!=(c|0))<<2)+e>>2]=d;H[d>>2]=c;H[c+8>>2]=d;e=c}c=H[d+8>>2];F[d+12|0]=I[c+12|0];F[c+12|0]=1;F[e+12|0]=1;d=H[c>>2];e=H[d+4>>2];H[c>>2]=e;if(e){H[e+8>>2]=c}H[d+8>>2]=H[c+8>>2];e=H[c+8>>2];H[(((c|0)!=H[e>>2])<<2)+e>>2]=d;H[d+4>>2]=c;H[c+8>>2]=d;break w}d=c;c=H[c+8>>2];c=H[(((d|0)==H[c>>2])<<2)+c>>2];continue}}F[e+12|0]=1}c=H[g+28>>2];if(c){H[g+32>>2]=c;oa(c)}if(F[g+27|0]<0){oa(H[g+16>>2])}oa(g)}H[h+8>>2]=0;H[h>>2]=0;H[h+4>>2]=0;c=H[i+4>>2];d=H[i>>2];f=c-d|0;e=0;D:{E:{if((c|0)!=(d|0)){if((f|0)<0){break E}e=pa(f);c=ra(e,0,f);g=c+f|0;H[h+8>>2]=g;H[h+4>>2]=g;H[h>>2]=c;c=d}qa(e,c,f);F:{if(F[i+27|0]>=0){H[h+24>>2]=H[i+24>>2];c=H[i+20>>2];H[h+16>>2]=H[i+16>>2];H[h+20>>2]=c;break F}za(h+16|0,H[i+16>>2],H[i+20>>2])}ae(h+28|0,h);f=h+16|0;c=f;G:{H:{d=H[j+4>>2];I:{if(!d){e=j+4|0;c=e;break I}e=I[c+11|0];g=e<<24>>24<0;k=g?H[c>>2]:c;g=g?H[c+4>>2]:e;while(1){c=d;d=I[c+27|0];e=d<<24>>24<0;d=e?H[c+20>>2]:d;l=d>>>0>>0;J:{K:{L:{M:{r=l?d:g;N:{if(r){e=e?H[c+16>>2]:c+16|0;z=Fa(k,e,r);if(!z){if(d>>>0>g>>>0){break N}break M}if((z|0)>=0){break M}break N}if(d>>>0<=g>>>0){break L}}e=c;d=H[c>>2];if(d){continue}break I}d=Fa(e,k,r);if(d){break K}}if(l){break J}break H}if((d|0)>=0){break H}}d=H[c+4>>2];if(d){continue}break}e=c+4|0}d=pa(40);H[d+24>>2]=H[f+8>>2];g=H[f+4>>2];H[d+16>>2]=H[f>>2];H[d+20>>2]=g;H[f>>2]=0;H[f+4>>2]=0;H[f+8>>2]=0;ae(d+28|0,f+12|0);H[d+8>>2]=c;H[d>>2]=0;H[d+4>>2]=0;H[e>>2]=d;c=d;f=H[H[j>>2]>>2];if(f){H[j>>2]=f;c=H[e>>2]}Sb(H[j+4>>2],c);H[j+8>>2]=H[j+8>>2]+1;c=1;break G}d=c;c=0}F[h+44|0]=c;H[h+40>>2]=d;c=H[h+28>>2];if(c){H[h+32>>2]=c;oa(c)}if(F[h+27|0]<0){oa(H[h+16>>2])}c=H[h>>2];if(c){H[h+4>>2]=c;oa(c)}ca=h+48|0;break D}sa();v()}d=H[i>>2];if(!d){break r}}H[i+4>>2]=d;oa(d)}d=(n|0)<=(y|0)&p>>>0>=u>>>0|(n|0)<(y|0)}if(F[i+27|0]<0){oa(H[i+16>>2])}ca=i+32|0;break o}sa();v()}if(!d){break a}q=q+1|0;if((x|0)!=(q|0)){continue}break}}H[m+12>>2]=0;if(!Bb(1,m+12|0,H[a>>2])){break a}c=H[a>>2];e=H[c+8>>2];f=H[c+16>>2];h=e-f|0;d=H[m+12>>2];c=H[c+12>>2]-(H[c+20>>2]+(e>>>0>>0)|0)|0;if(h>>>0>>0&(c|0)<=0|(c|0)<0){break a}if(d){q=0;h=((t|0)!=0)+w|0;while(1){O:{if(b>>>0>>0){H[b+8>>2]=h;H[b+4>>2]=0;H[b>>2]=j;b=b+12|0;d=H[m+12>>2];break O}c=b-o|0;g=(c|0)/12|0;b=g+1|0;if(b>>>0>=357913942){break c}e=(s-o|0)/12|0;f=e<<1;e=e>>>0>=178956970?357913941:b>>>0>>0?f:b;if(e){if(e>>>0>=357913942){break b}f=pa(N(e,12))}else{f=0}b=f+N(g,12)|0;H[b+8>>2]=h;H[b+4>>2]=0;H[b>>2]=j;c=va(b+N((c|0)/-12|0,12)|0,o,c);s=f+N(e,12)|0;b=b+12|0;if(o){oa(o)}o=c}q=q+1|0;if(q>>>0>>0){continue}break}}if((b|0)!=(o|0)){continue}break}A=1;break a}sa();v()}wa();v()}if(o){oa(o)}ca=m+32|0;return A}function Af(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=O(0),q=0,r=0;e=ca-720|0;ca=e;a:{b:{c:{d:{e:{f:{g:{h:{i:{if(J[b+38>>1]>=515){H[e+680>>2]=0;H[e+672>>2]=0;H[e+676>>2]=0;if((ea[H[H[a>>2]+24>>2]](a)|0)<=0){break d}while(1){c=ea[H[H[a>>2]+20>>2]](a,n)|0;d=H[H[H[(ea[H[H[a>>2]+28>>2]](a)|0)+4>>2]+8>>2]+(c<<2)>>2];if(H[d+28>>2]==9){f=H[e+672>>2];c=H[e+676>>2]-f>>2;k=I[d+24|0];j:{if(c>>>0>>0){ya(e+672|0,k-c|0);break j}if(c>>>0<=k>>>0){break j}H[e+676>>2]=f+(k<<2)}j=0;i=H[b+8>>2];h=H[b+12>>2];c=H[b+20>>2];d=k<<2;f=H[b+16>>2];l=f+d|0;c=d>>>0>l>>>0?c+1|0:c;if(i>>>0>>0&(c|0)>=(h|0)|(c|0)>(h|0)){break b}qa(H[e+672>>2],f+H[b>>2]|0,d);c=H[b+20>>2];f=d;d=d+H[b+16>>2]|0;c=f>>>0>d>>>0?c+1|0:c;i=d;H[b+16>>2]=d;H[b+20>>2]=c;l=H[b+12>>2];g=H[b+8>>2];h=d+4|0;f=h>>>0<4?c+1|0:c;d=f;if(g>>>0>>0&(d|0)>=(l|0)|(d|0)>(l|0)){break b}o=H[b>>2];f=o+i|0;f=I[f|0]|I[f+1|0]<<8|(I[f+2|0]<<16|I[f+3|0]<<24);H[b+16>>2]=h;H[b+20>>2]=d;if(g>>>0<=h>>>0&(d|0)>=(l|0)|(d|0)>(l|0)){break b}d=I[h+o|0];h=i+5|0;c=h>>>0<5?c+1|0:c;H[b+16>>2]=h;H[b+20>>2]=c;if(d>>>0>31){break b}p=(A(2,f),B());H[e+20>>2]=-1;H[e+16>>2]=1832;H[e+32>>2]=0;H[e+36>>2]=0;H[e+24>>2]=0;H[e+28>>2]=0;c=H[e+672>>2];o=d-1|0;if(o>>>0<=29){H[e+20>>2]=d;k:{h=c+(k<<2)|0;l=h-c|0;f=l>>2;i=H[e+32>>2];d=H[e+24>>2];if(f>>>0<=i-d>>2>>>0){i=H[e+28>>2]-d|0;l=i>>2;i=f>>>0>l>>>0?c+i|0:h;g=i-c|0;if((c|0)!=(i|0)){va(d,c,g)}if(f>>>0>l>>>0){c=h-i|0;d=H[e+28>>2];if((h|0)!=(i|0)){va(d,i,c)}H[e+28>>2]=c+d;break k}H[e+28>>2]=d+g;break k}if(d){H[e+28>>2]=d;oa(d);H[e+32>>2]=0;H[e+24>>2]=0;H[e+28>>2]=0;i=0}l:{if((l|0)<0){break l}d=i>>>1|0;d=i>>>0>=2147483644?1073741823:d>>>0>f>>>0?d:f;if(d>>>0>=1073741824){break l}i=d<<2;d=pa(i);H[e+28>>2]=d;H[e+24>>2]=d;H[e+32>>2]=d+i;if((c|0)!=(h|0)){qa(d,c,l)}H[e+28>>2]=d+(f<<2);break k}sa();v()}L[e+36>>2]=p}m:{if(o>>>0>=30){break m}if(!Xc(e+16|0,H[H[a+60>>2]+((H[a+40>>2]-H[a+36>>2]|0)/24<<2)>>2])){break m}c=H[a+40>>2];n:{if((c|0)!=H[a+44>>2]){H[c>>2]=1832;d=H[e+20>>2];H[c+16>>2]=0;H[c+8>>2]=0;H[c+12>>2]=0;H[c+4>>2]=d;d=H[e+28>>2];f=H[e+24>>2];if((d|0)!=(f|0)){d=d-f|0;if((d|0)<0){break i}g=pa(d);H[c+12>>2]=g;H[c+8>>2]=g;H[c+16>>2]=(d&-4)+g;k=H[e+24>>2];d=H[e+28>>2];if((k|0)!=(d|0)){while(1){L[g>>2]=L[k>>2];g=g+4|0;k=k+4|0;if((d|0)!=(k|0)){continue}break}}H[c+12>>2]=g}L[c+20>>2]=L[e+36>>2];H[a+40>>2]=c+24;break n}d=0;o:{p:{q:{r:{j=H[a+40>>2];f=H[a+36>>2];i=(j-f|0)/24|0;c=i+1|0;if(c>>>0<178956971){h=(H[a+44>>2]-f|0)/24|0;l=h<<1;h=h>>>0>=89478485?178956970:c>>>0>>0?l:c;if(h){if(h>>>0>=178956971){break r}d=pa(N(h,24))}g=N(i,24)+d|0;H[g>>2]=1832;c=H[e+20>>2];H[g+16>>2]=0;H[g+8>>2]=0;H[g+12>>2]=0;H[g+4>>2]=c;c=H[e+24>>2];i=H[e+28>>2];if((c|0)!=(i|0)){l=i-c|0;if((l|0)<0){break q}k=pa(l);H[g+8>>2]=k;H[g+16>>2]=(l&-4)+k;while(1){L[k>>2]=L[c>>2];k=k+4|0;c=c+4|0;if((i|0)!=(c|0)){continue}break}H[g+12>>2]=k}c=N(h,24)+d|0;L[g+20>>2]=L[e+36>>2];d=g+24|0;if((f|0)==(j|0)){break p}while(1){g=g-24|0;H[g>>2]=1832;j=j-24|0;H[g+4>>2]=H[j+4>>2];H[g+8>>2]=H[j+8>>2];H[g+12>>2]=H[j+12>>2];H[g+16>>2]=H[j+16>>2];H[j+16>>2]=0;H[j+8>>2]=0;H[j+12>>2]=0;L[g+20>>2]=L[j+20>>2];if((f|0)!=(j|0)){continue}break}H[a+44>>2]=c;k=H[a+40>>2];H[a+40>>2]=d;j=H[a+36>>2];H[a+36>>2]=g;if((j|0)==(k|0)){break o}while(1){k=k-24|0;ea[H[H[k>>2]>>2]](k)|0;if((j|0)!=(k|0)){continue}break}break o}sa();v()}wa();v()}sa();v()}H[a+44>>2]=c;H[a+40>>2]=d;H[a+36>>2]=g}if(j){oa(j)}}j=1}H[e+16>>2]=1832;c=H[e+24>>2];if(c){H[e+28>>2]=c;oa(c)}if(!j){break c}}n=n+1|0;if((ea[H[H[a>>2]+24>>2]](a)|0)>(n|0)){continue}break}break d}k=ea[H[H[a>>2]+24>>2]](a)|0;H[e+712>>2]=0;H[e+704>>2]=0;H[e+708>>2]=0;if(k){if(k>>>0>=214748365){break h}c=N(k,20);d=pa(c);H[e+704>>2]=d;H[e+712>>2]=c+d;c=c-20|0;c=(c-((c>>>0)%20|0)|0)+20|0;q=e,r=ra(d,0,c)+c|0,H[q+708>>2]=r;while(1){c=ea[H[H[a>>2]+20>>2]](a,m)|0;d=H[H[H[(ea[H[H[a>>2]+28>>2]](a)|0)+4>>2]+8>>2]+(c<<2)>>2];f=H[d+28>>2];c=f-1|0;if(c>>>0<=10){c=H[(c<<2)+13584>>2]}else{c=-1}h=(c|0)>0?c:0;if(h>>>0>4){break f}c=H[e+704>>2]+N(m,20)|0;i=I[d+24|0];H[c+16>>2]=i;H[c+12>>2]=h;H[c+8>>2]=f;H[c+4>>2]=g;H[c>>2]=d;g=g+i|0;m=m+1|0;if((k|0)!=(m|0)){continue}break}}c=ea[H[H[a>>2]+20>>2]](a,0)|0;m=H[H[H[(ea[H[H[a>>2]+28>>2]](a)|0)+4>>2]+8>>2]+(c<<2)>>2];F[m+84|0]=1;H[m+72>>2]=H[m+68>>2];h=H[b+12>>2];c=h;d=H[b+20>>2];f=H[b+8>>2];i=H[b+16>>2];if((c|0)<=(d|0)&f>>>0<=i>>>0|(c|0)<(d|0)){break f}n=H[b>>2];o=I[n+i|0];c=d;l=i+1|0;c=l?c:c+1|0;H[b+16>>2]=l;H[b+20>>2]=c;s:{switch(o|0){case 0:a=H[e+704>>2];if((H[e+708>>2]-a|0)!=20){break e}if(H[a+16>>2]!=3){break f}t:{if(f>>>0<=l>>>0&(c|0)>=(h|0)|(c|0)>(h|0)){break t}c=d;a=i+2|0;c=a>>>0<2?c+1|0:c;l=a;H[b+16>>2]=a;H[b+20>>2]=c;c=d;a=i+6|0;c=a>>>0<6?c+1|0:c;if(a>>>0>f>>>0&(c|0)>=(h|0)|(c|0)>(h|0)){break t}d=l+n|0;d=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);H[b+16>>2]=a;H[b+20>>2]=c;mb(m,d);j=e+672|0;H[j+20>>2]=0;H[j+12>>2]=0;H[j+16>>2]=0;H[j>>2]=0;H[j+4>>2]=0;H[j+20>>2]=d;d=Ac(e+16|0,e+704|0);k=0;g=ca-32|0;ca=g;H[g+24>>2]=0;H[g+16>>2]=0;H[g+20>>2]=0;f=H[b+12>>2];m=f;i=H[b+8>>2];c=H[b+20>>2];l=c;h=H[b+16>>2];a=h+4|0;c=a>>>0<4?c+1|0:c;u:{if(a>>>0>i>>>0&(c|0)>=(f|0)|(c|0)>(f|0)){break u}n=H[b>>2];f=n+h|0;f=I[f|0]|I[f+1|0]<<8|(I[f+2|0]<<16|I[f+3|0]<<24);H[b+16>>2]=a;H[b+20>>2]=c;v:{w:{switch(f-2|0){case 1:if((c|0)>=(m|0)&a>>>0>=i>>>0|(c|0)>(m|0)){break u}a=I[a+n|0];c=l;f=h+5|0;c=f>>>0<5?c+1|0:c;H[b+16>>2]=f;H[b+20>>2]=c;F[j+8|0]=a;if((a|0)==1){if(Ud(j,b,g+16|0)){break v}break u}Rd(1799,23,H[3443]);break u;default:Rd(1774,24,H[3443]);break u;case 0:break w}}if(!Ud(j,b,g+16|0)){break u}}H[g+8>>2]=H[g+16>>2];H[g>>2]=H[g+20>>2];c=ca-32|0;ca=c;a=H[j>>2];p=L[j+4>>2];H[c+24>>2]=1065353216;h=-1<0){L[c+24>>2]=p/O(a|0)}m=H[g+8>>2];n=H[g>>2];if((m|0)!=(n|0)){a=H[d+28>>2];while(1){b=H[m>>2];f=H[m+4>>2];p=L[c+24>>2];L[c+16>>2]=p*O(H[m+8>>2]-h|0);L[c+12>>2]=p*O(f-h|0);L[c+8>>2]=p*O(b-h|0);b=a;i=H[d+16>>2];f=H[i>>2];if(!I[f+84|0]){b=H[H[f+68>>2]+(a<<2)>>2]}if(K[f+80>>2]>b>>>0){a=H[f+40>>2];qa(H[H[f>>2]>>2]+N(a,b)|0,(c+8|0)+(H[i+4>>2]<<2)|0,a);n=H[g>>2];a=H[d+28>>2]}a=a+1|0;H[d+28>>2]=a;m=m+12|0;if((n|0)!=(m|0)){continue}break}}ca=c+32|0;k=1}a=H[g+16>>2];if(a){H[g+20>>2]=a;oa(a)}ca=g+32|0;yc(d);j=1;if(k){break f}}j=0;break f;case 1:break s;default:break f}}if(f>>>0<=l>>>0&(c|0)>=(h|0)|(c|0)>(h|0)){break f}o=I[l+n|0];c=d;l=i+2|0;c=l>>>0<2?c+1|0:c;H[b+16>>2]=l;H[b+20>>2]=c;if(o>>>0>=7){H[e>>2]=o;Qd(1651,e);break f}c=d;d=i+6|0;c=d>>>0<6?c+1|0:c;if(d>>>0>f>>>0&(c|0)>=(h|0)|(c|0)>(h|0)){break f}f=l+n|0;f=I[f|0]|I[f+1|0]<<8|(I[f+2|0]<<16|I[f+3|0]<<24);H[b+16>>2]=d;H[b+20>>2]=c;if(k){m=0;while(1){c=ea[H[H[a>>2]+20>>2]](a,m)|0;c=H[H[H[(ea[H[H[a>>2]+28>>2]](a)|0)+4>>2]+8>>2]+(c<<2)>>2];mb(c,f);F[c+84|0]=1;H[c+72>>2]=H[c+68>>2];m=m+1|0;if((k|0)!=(m|0)){continue}break}}a=Ac(e+672|0,e+704|0);x:{y:{switch(o|0){case 1:c=wb(e+16|0,g);b=zd(c,b,a,-1);xb(c);if(!b){break g}break x;case 2:c=ub(e+16|0,g);b=yd(c,b,a,-1);vb(c);if(!b){break g}break x;case 3:c=ub(e+16|0,g);b=xd(c,b,a,-1);vb(c);if(!b){break g}break x;case 4:c=$a(e+16|0,g);b=wd(c,b,a,-1);ab(c);if(!b){break g}break x;case 5:c=$a(e+16|0,g);b=vd(c,b,a,-1);ab(c);if(!b){break g}break x;case 6:c=$a(e+16|0,g);b=ud(c,b,a,-1);ab(c);if(b){break x}break g;case 0:break y;default:break g}}c=wb(e+16|0,g);b=Bd(c,b,a,-1);xb(c);if(!b){break g}}yc(a);j=1;break f}sa();v()}sa();v()}yc(a)}a=H[e+704>>2]}if(!a){break a}H[e+708>>2]=a;oa(a);break a}j=1;if(H[a+52>>2]==H[a+48>>2]){break b}while(1){if(!td(1,e+16|0,b)){break c}c=H[a+48>>2];d=H[e+16>>2];H[c+(m<<2)>>2]=d>>>1^0-(d&1);m=m+1|0;if(m>>>0>2]-c>>2>>>0){continue}break}break b}j=0}a=H[e+672>>2];if(!a){break a}H[e+676>>2]=a;oa(a)}ca=e+720|0;return j|0}function te(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;h=ca-32|0;ca=h;H[b+32>>2]=d;H[b+40>>2]=c;H[b+4>>2]=e;nc(a,d,h+16|0);a:{if(H[a>>2]){break a}if(F[a+15|0]<0){oa(H[a+4>>2])}d=I[h+23|0];if((ea[H[H[b>>2]+8>>2]](b)|0)!=(d|0)){b=pa(64);F[b+50|0]=0;c=I[1314]|I[1315]<<8;F[b+48|0]=c;F[b+49|0]=c>>>8;c=I[1310]|I[1311]<<8|(I[1312]<<16|I[1313]<<24);d=I[1306]|I[1307]<<8|(I[1308]<<16|I[1309]<<24);F[b+40|0]=d;F[b+41|0]=d>>>8;F[b+42|0]=d>>>16;F[b+43|0]=d>>>24;F[b+44|0]=c;F[b+45|0]=c>>>8;F[b+46|0]=c>>>16;F[b+47|0]=c>>>24;c=I[1302]|I[1303]<<8|(I[1304]<<16|I[1305]<<24);d=I[1298]|I[1299]<<8|(I[1300]<<16|I[1301]<<24);F[b+32|0]=d;F[b+33|0]=d>>>8;F[b+34|0]=d>>>16;F[b+35|0]=d>>>24;F[b+36|0]=c;F[b+37|0]=c>>>8;F[b+38|0]=c>>>16;F[b+39|0]=c>>>24;c=I[1294]|I[1295]<<8|(I[1296]<<16|I[1297]<<24);d=I[1290]|I[1291]<<8|(I[1292]<<16|I[1293]<<24);F[b+24|0]=d;F[b+25|0]=d>>>8;F[b+26|0]=d>>>16;F[b+27|0]=d>>>24;F[b+28|0]=c;F[b+29|0]=c>>>8;F[b+30|0]=c>>>16;F[b+31|0]=c>>>24;c=I[1286]|I[1287]<<8|(I[1288]<<16|I[1289]<<24);d=I[1282]|I[1283]<<8|(I[1284]<<16|I[1285]<<24);F[b+16|0]=d;F[b+17|0]=d>>>8;F[b+18|0]=d>>>16;F[b+19|0]=d>>>24;F[b+20|0]=c;F[b+21|0]=c>>>8;F[b+22|0]=c>>>16;F[b+23|0]=c>>>24;c=I[1278]|I[1279]<<8|(I[1280]<<16|I[1281]<<24);d=I[1274]|I[1275]<<8|(I[1276]<<16|I[1277]<<24);F[b+8|0]=d;F[b+9|0]=d>>>8;F[b+10|0]=d>>>16;F[b+11|0]=d>>>24;F[b+12|0]=c;F[b+13|0]=c>>>8;F[b+14|0]=c>>>16;F[b+15|0]=c>>>24;c=I[1270]|I[1271]<<8|(I[1272]<<16|I[1273]<<24);d=I[1266]|I[1267]<<8|(I[1268]<<16|I[1269]<<24);F[b|0]=d;F[b+1|0]=d>>>8;F[b+2|0]=d>>>16;F[b+3|0]=d>>>24;F[b+4|0]=c;F[b+5|0]=c>>>8;F[b+6|0]=c>>>16;F[b+7|0]=c>>>24;H[a>>2]=-1;za(a+4|0,b,50);oa(b);break a}c=I[h+21|0];F[b+36|0]=c;e=I[h+22|0];F[b+37|0]=e;if((c-3&255)>>>0<=253){b=pa(32);F[b+22|0]=0;c=I[1427]|I[1428]<<8|(I[1429]<<16|I[1430]<<24);d=I[1423]|I[1424]<<8|(I[1425]<<16|I[1426]<<24);F[b+14|0]=d;F[b+15|0]=d>>>8;F[b+16|0]=d>>>16;F[b+17|0]=d>>>24;F[b+18|0]=c;F[b+19|0]=c>>>8;F[b+20|0]=c>>>16;F[b+21|0]=c>>>24;c=I[1421]|I[1422]<<8|(I[1423]<<16|I[1424]<<24);d=I[1417]|I[1418]<<8|(I[1419]<<16|I[1420]<<24);F[b+8|0]=d;F[b+9|0]=d>>>8;F[b+10|0]=d>>>16;F[b+11|0]=d>>>24;F[b+12|0]=c;F[b+13|0]=c>>>8;F[b+14|0]=c>>>16;F[b+15|0]=c>>>24;c=I[1413]|I[1414]<<8|(I[1415]<<16|I[1416]<<24);d=I[1409]|I[1410]<<8|(I[1411]<<16|I[1412]<<24);F[b|0]=d;F[b+1|0]=d>>>8;F[b+2|0]=d>>>16;F[b+3|0]=d>>>24;F[b+4|0]=c;F[b+5|0]=c>>>8;F[b+6|0]=c>>>16;F[b+7|0]=c>>>24;H[a>>2]=-5;za(a+4|0,b,22);oa(b);break a}if(!((c|0)!=2|e>>>0<=(d?2:3)>>>0)){b=pa(32);F[b+22|0]=0;c=I[1404]|I[1405]<<8|(I[1406]<<16|I[1407]<<24);d=I[1400]|I[1401]<<8|(I[1402]<<16|I[1403]<<24);F[b+14|0]=d;F[b+15|0]=d>>>8;F[b+16|0]=d>>>16;F[b+17|0]=d>>>24;F[b+18|0]=c;F[b+19|0]=c>>>8;F[b+20|0]=c>>>16;F[b+21|0]=c>>>24;c=I[1398]|I[1399]<<8|(I[1400]<<16|I[1401]<<24);d=I[1394]|I[1395]<<8|(I[1396]<<16|I[1397]<<24);F[b+8|0]=d;F[b+9|0]=d>>>8;F[b+10|0]=d>>>16;F[b+11|0]=d>>>24;F[b+12|0]=c;F[b+13|0]=c>>>8;F[b+14|0]=c>>>16;F[b+15|0]=c>>>24;c=I[1390]|I[1391]<<8|(I[1392]<<16|I[1393]<<24);d=I[1386]|I[1387]<<8|(I[1388]<<16|I[1389]<<24);F[b|0]=d;F[b+1|0]=d>>>8;F[b+2|0]=d>>>16;F[b+3|0]=d>>>24;F[b+4|0]=c;F[b+5|0]=c>>>8;F[b+6|0]=c>>>16;F[b+7|0]=c>>>24;H[a>>2]=-5;za(a+4|0,b,22);oa(b);break a}c=e|c<<8;G[H[b+32>>2]+38>>1]=c;b:{if((c&65535)>>>0<259|G[h+26>>1]>=0){break b}i=ca-16|0;ca=i;e=pa(36);c=e;H[c+4>>2]=0;H[c+8>>2]=0;H[c+24>>2]=0;H[c+28>>2]=0;c=c+16|0;H[c>>2]=0;H[c+4>>2]=0;H[e>>2]=e+4;H[e+32>>2]=0;H[e+12>>2]=c;H[i>>2]=0;d=H[b+32>>2];j=ca-16|0;ca=j;c=0;c:{if(!e){break c}H[i>>2]=d;H[j+12>>2]=0;c=0;if(!Bb(1,j+12|0,d)){break c}m=H[j+12>>2];if(m){while(1){d:{if(Bb(1,j+8|0,H[i>>2])){c=pa(28);H[c+4>>2]=0;H[c+8>>2]=0;d=c+16|0;H[d>>2]=0;H[d+4>>2]=0;H[c>>2]=c+4;H[c+12>>2]=d;H[c+24>>2]=H[j+8>>2];if(ce(i,c)){break d}Ra(c+12|0,H[c+16>>2]);Qa(c,H[c+4>>2]);oa(c)}c=0;break c}f=ca-16|0;ca=f;H[f+8>>2]=c;e:{if(!c){break e}d=H[e+28>>2];f:{if(d>>>0>2]){H[f+8>>2]=0;H[d>>2]=c;H[e+28>>2]=d+4;break f}d=0;g:{h:{i:{g=H[e+24>>2];l=H[e+28>>2]-g>>2;c=l+1|0;if(c>>>0<1073741824){g=H[e+32>>2]-g|0;k=g>>>1|0;g=g>>>0>=2147483644?1073741823:c>>>0>>0?k:c;if(g){if(g>>>0>=1073741824){break i}d=pa(g<<2)}k=H[f+8>>2];H[f+8>>2]=0;c=(l<<2)+d|0;H[c>>2]=k;g=(g<<2)+d|0;l=c+4|0;d=H[e+28>>2];k=H[e+24>>2];if((d|0)==(k|0)){break h}while(1){d=d-4|0;o=H[d>>2];H[d>>2]=0;c=c-4|0;H[c>>2]=o;if((d|0)!=(k|0)){continue}break}H[e+32>>2]=g;g=H[e+28>>2];H[e+28>>2]=l;d=H[e+24>>2];H[e+24>>2]=c;if((d|0)==(g|0)){break g}while(1){g=g-4|0;c=H[g>>2];H[g>>2]=0;if(c){Ra(c+12|0,H[c+16>>2]);Qa(c,H[c+4>>2]);oa(c)}if((d|0)!=(g|0)){continue}break}break g}sa();v()}wa();v()}H[e+32>>2]=g;H[e+28>>2]=l;H[e+24>>2]=c}if(d){oa(d)}}c=H[f+8>>2];H[f+8>>2]=0;if(!c){break e}Ra(c+12|0,H[c+16>>2]);Qa(c,H[c+4>>2]);oa(c)}ca=f+16|0;n=n+1|0;if((m|0)!=(n|0)){continue}break}}c=ce(i,e)}ca=j+16|0;j:{if(c){d=H[b+4>>2];c=H[d+4>>2];H[d+4>>2]=e;if(c){Uc(c)}H[a>>2]=0;H[a+4>>2]=0;H[a+8>>2]=0;H[a+12>>2]=0;break j}c=pa(32);F[c+26|0]=0;d=I[1579]|I[1580]<<8;F[c+24|0]=d;F[c+25|0]=d>>>8;d=I[1575]|I[1576]<<8|(I[1577]<<16|I[1578]<<24);f=I[1571]|I[1572]<<8|(I[1573]<<16|I[1574]<<24);F[c+16|0]=f;F[c+17|0]=f>>>8;F[c+18|0]=f>>>16;F[c+19|0]=f>>>24;F[c+20|0]=d;F[c+21|0]=d>>>8;F[c+22|0]=d>>>16;F[c+23|0]=d>>>24;d=I[1567]|I[1568]<<8|(I[1569]<<16|I[1570]<<24);f=I[1563]|I[1564]<<8|(I[1565]<<16|I[1566]<<24);F[c+8|0]=f;F[c+9|0]=f>>>8;F[c+10|0]=f>>>16;F[c+11|0]=f>>>24;F[c+12|0]=d;F[c+13|0]=d>>>8;F[c+14|0]=d>>>16;F[c+15|0]=d>>>24;d=I[1559]|I[1560]<<8|(I[1561]<<16|I[1562]<<24);f=I[1555]|I[1556]<<8|(I[1557]<<16|I[1558]<<24);F[c|0]=f;F[c+1|0]=f>>>8;F[c+2|0]=f>>>16;F[c+3|0]=f>>>24;F[c+4|0]=d;F[c+5|0]=d>>>8;F[c+6|0]=d>>>16;F[c+7|0]=d>>>24;H[a>>2]=-1;za(a+4|0,c,26);oa(c);H[i+8>>2]=0;Uc(e)}ca=i+16|0;if(H[a>>2]){break a}if(F[a+15|0]>=0){break b}oa(H[a+4>>2])}if(!(ea[H[H[b>>2]+12>>2]](b)|0)){b=pa(48);F[b+33|0]=0;F[b+32|0]=I[1384];c=I[1380]|I[1381]<<8|(I[1382]<<16|I[1383]<<24);d=I[1376]|I[1377]<<8|(I[1378]<<16|I[1379]<<24);F[b+24|0]=d;F[b+25|0]=d>>>8;F[b+26|0]=d>>>16;F[b+27|0]=d>>>24;F[b+28|0]=c;F[b+29|0]=c>>>8;F[b+30|0]=c>>>16;F[b+31|0]=c>>>24;c=I[1372]|I[1373]<<8|(I[1374]<<16|I[1375]<<24);d=I[1368]|I[1369]<<8|(I[1370]<<16|I[1371]<<24);F[b+16|0]=d;F[b+17|0]=d>>>8;F[b+18|0]=d>>>16;F[b+19|0]=d>>>24;F[b+20|0]=c;F[b+21|0]=c>>>8;F[b+22|0]=c>>>16;F[b+23|0]=c>>>24;c=I[1364]|I[1365]<<8|(I[1366]<<16|I[1367]<<24);d=I[1360]|I[1361]<<8|(I[1362]<<16|I[1363]<<24);F[b+8|0]=d;F[b+9|0]=d>>>8;F[b+10|0]=d>>>16;F[b+11|0]=d>>>24;F[b+12|0]=c;F[b+13|0]=c>>>8;F[b+14|0]=c>>>16;F[b+15|0]=c>>>24;c=I[1356]|I[1357]<<8|(I[1358]<<16|I[1359]<<24);d=I[1352]|I[1353]<<8|(I[1354]<<16|I[1355]<<24);F[b|0]=d;F[b+1|0]=d>>>8;F[b+2|0]=d>>>16;F[b+3|0]=d>>>24;F[b+4|0]=c;F[b+5|0]=c>>>8;F[b+6|0]=c>>>16;F[b+7|0]=c>>>24;H[a>>2]=-1;za(a+4|0,b,33);oa(b);break a}if(!(ea[H[H[b>>2]+20>>2]](b)|0)){b=mc(h,1582);H[a>>2]=-1;a=a+4|0;if(F[b+11|0]>=0){c=H[b+4>>2];H[a>>2]=H[b>>2];H[a+4>>2]=c;H[a+8>>2]=H[b+8>>2];break a}za(a,H[b>>2],H[b+4>>2]);if(F[b+11|0]>=0){break a}oa(H[b>>2]);break a}if(!(ea[H[H[b>>2]+24>>2]](b)|0)){b=mc(h,1317);H[a>>2]=-1;a=a+4|0;if(F[b+11|0]>=0){c=H[b+4>>2];H[a>>2]=H[b>>2];H[a+4>>2]=c;H[a+8>>2]=H[b+8>>2];break a}za(a,H[b>>2],H[b+4>>2]);if(F[b+11|0]>=0){break a}oa(H[b>>2]);break a}H[a>>2]=0;H[a+4>>2]=0;H[a+8>>2]=0;H[a+12>>2]=0}ca=h+32|0}function pg(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0,z=0,A=0;m=ca-16|0;ca=m;H[m+12>>2]=b;b=pa(32);H[m>>2]=b;H[m+4>>2]=24;H[m+8>>2]=-2147483616;c=I[1206]|I[1207]<<8|(I[1208]<<16|I[1209]<<24);d=I[1202]|I[1203]<<8|(I[1204]<<16|I[1205]<<24);F[b+16|0]=d;F[b+17|0]=d>>>8;F[b+18|0]=d>>>16;F[b+19|0]=d>>>24;F[b+20|0]=c;F[b+21|0]=c>>>8;F[b+22|0]=c>>>16;F[b+23|0]=c>>>24;c=I[1198]|I[1199]<<8|(I[1200]<<16|I[1201]<<24);d=I[1194]|I[1195]<<8|(I[1196]<<16|I[1197]<<24);F[b+8|0]=d;F[b+9|0]=d>>>8;F[b+10|0]=d>>>16;F[b+11|0]=d>>>24;F[b+12|0]=c;F[b+13|0]=c>>>8;F[b+14|0]=c>>>16;F[b+15|0]=c>>>24;c=I[1190]|I[1191]<<8|(I[1192]<<16|I[1193]<<24);d=I[1186]|I[1187]<<8|(I[1188]<<16|I[1189]<<24);F[b|0]=d;F[b+1|0]=d>>>8;F[b+2|0]=d>>>16;F[b+3|0]=d>>>24;F[b+4|0]=c;F[b+5|0]=c>>>8;F[b+6|0]=c>>>16;F[b+7|0]=c>>>24;F[b+24|0]=0;l=ca-48|0;ca=l;f=H[m+12>>2];d=a;a=a+16|0;b=H[a>>2];a:{b:{if(!b){break b}c=a;while(1){e=(f|0)>H[b+16>>2];c=e?c:b;b=H[(e?b+4|0:b)>>2];if(b){continue}break}if((a|0)==(c|0)){break b}if((f|0)>=H[c+16>>2]){break a}}H[l+28>>2]=0;H[l+32>>2]=0;y=l+24|0;H[l+24>>2]=y|4;a=l+16|0;H[a>>2]=0;H[a+4>>2]=0;H[l+8>>2]=f;H[l+12>>2]=a;t=l+8|0;a=t;x=ca-16|0;ca=x;u=d+12|0;c=H[u+4>>2];c:{d:{if(!c){o=u+4|0;d=o;break d}a=H[a>>2];while(1){d=c;b=H[c+16>>2];if((b|0)>(a|0)){o=d;c=H[d>>2];if(c){continue}break d}if((a|0)<=(b|0)){g=d;a=0;break c}c=H[d+4>>2];if(c){continue}break}o=d+4|0}g=pa(32);b=H[t>>2];q=g+24|0;a=q;H[a>>2]=0;H[a+4>>2]=0;H[g+16>>2]=b;r=g+20|0;H[r>>2]=a;c=H[t+4>>2];z=t+8|0;if((c|0)!=(z|0)){while(1){p=ca-16|0;ca=p;a=p+8|0;k=c+16|0;e:{f:{g:{h:{i:{j:{k:{f=q;e=r+4|0;l:{if((f|0)==(e|0)){break l}b=I[f+27|0];h=b<<24>>24<0;i=I[k+11|0];n=i<<24>>24;j=(n|0)<0;i=j?H[k+4>>2]:i;b=h?H[f+20>>2]:b;s=i>>>0>b>>>0;w=s?b:i;if(w){j=j?H[k>>2]:k;h=h?H[f+16>>2]:f+16|0;A=Fa(j,h,w);if(!A){if(b>>>0>i>>>0){break l}break k}if((A|0)>=0){break k}break l}if(b>>>0<=i>>>0){break j}}h=H[f>>2];m:{a=f;n:{if((a|0)==H[r>>2]){break n}o:{if(!h){b=f;while(1){a=H[b+8>>2];i=H[a>>2]==(b|0);b=a;if(i){continue}break}break o}b=h;while(1){a=b;b=H[b+4>>2];if(b){continue}break}}i=I[k+11|0];s=i<<24>>24;b=(s|0)<0;j=I[a+27|0];n=j<<24>>24<0;p:{i=b?H[k+4>>2]:i;j=n?H[a+20>>2]:j;w=i>>>0>>0?i:j;if(w){b=Fa(n?H[a+16>>2]:a+16|0,b?H[k>>2]:k,w);if(b){break p}}if(i>>>0>j>>>0){break n}break m}if((b|0)>=0){break m}}if(!h){H[p+12>>2]=f;a=f;break e}H[p+12>>2]=a;a=a+4|0;break e}b=H[e>>2];if(!b){H[p+12>>2]=e;a=e;break e}h=(s|0)<0?H[k>>2]:k;f=e;while(1){a=b;b=I[b+27|0];e=b<<24>>24<0;b=e?H[a+20>>2]:b;k=b>>>0>>0;q:{r:{s:{t:{n=k?b:i;u:{if(n){e=e?H[a+16>>2]:a+16|0;j=Fa(h,e,n);if(!j){if(b>>>0>i>>>0){break u}break t}if((j|0)>=0){break t}break u}if(b>>>0<=i>>>0){break s}}f=a;b=H[a>>2];if(b){continue}break g}b=Fa(e,h,n);if(b){break r}}if(k){break q}break g}if((b|0)>=0){break g}}f=a+4|0;b=H[a+4>>2];if(b){continue}break}break g}b=Fa(h,j,w);if(b){break i}}if(s){break h}break f}if((b|0)>=0){break f}}h=H[f+4>>2];v:{if(!h){b=f;while(1){a=H[b+8>>2];j=H[a>>2]!=(b|0);b=a;if(j){continue}break}break v}b=h;while(1){a=b;b=H[b>>2];if(b){continue}break}}w:{x:{if((a|0)==(e|0)){break x}j=I[a+27|0];b=j<<24>>24<0;y:{j=b?H[a+20>>2]:j;s=i>>>0>j>>>0?j:i;if(s){b=Fa((n|0)<0?H[k>>2]:k,b?H[a+16>>2]:a+16|0,s);if(b){break y}}if(i>>>0>>0){break x}break w}if((b|0)>=0){break w}}if(!h){H[p+12>>2]=f;a=f+4|0;break e}H[p+12>>2]=a;break e}b=H[e>>2];if(!b){H[p+12>>2]=e;a=e;break e}h=(n|0)<0?H[k>>2]:k;f=e;while(1){a=b;b=I[b+27|0];e=b<<24>>24<0;b=e?H[a+20>>2]:b;k=b>>>0>>0;z:{A:{B:{C:{n=k?b:i;D:{if(n){e=e?H[a+16>>2]:a+16|0;j=Fa(h,e,n);if(!j){if(b>>>0>i>>>0){break D}break C}if((j|0)>=0){break C}break D}if(b>>>0<=i>>>0){break B}}f=a;b=H[a>>2];if(b){continue}break g}b=Fa(e,h,n);if(b){break A}}if(k){break z}break g}if((b|0)>=0){break g}}f=a+4|0;b=H[a+4>>2];if(b){continue}break}}H[p+12>>2]=a;a=f;break e}H[p+12>>2]=f;H[a>>2]=f}f=a;a=H[a>>2];if(a){b=0}else{a=pa(40);b=a+16|0;E:{if(F[c+27|0]>=0){e=H[c+20>>2];H[b>>2]=H[c+16>>2];H[b+4>>2]=e;H[b+8>>2]=H[c+24>>2];break E}za(b,H[c+16>>2],H[c+20>>2])}b=a+28|0;F:{if(F[c+39|0]>=0){e=H[c+32>>2];H[b>>2]=H[c+28>>2];H[b+4>>2]=e;H[b+8>>2]=H[c+36>>2];break F}za(b,H[c+28>>2],H[c+32>>2])}H[a+8>>2]=H[p+12>>2];H[a>>2]=0;H[a+4>>2]=0;H[f>>2]=a;b=a;e=H[H[r>>2]>>2];if(e){H[r>>2]=e;b=H[f>>2]}Sb(H[r+4>>2],b);H[r+8>>2]=H[r+8>>2]+1;b=1}F[x+12|0]=b;H[x+8>>2]=a;ca=p+16|0;b=H[c+4>>2];G:{if(b){while(1){c=b;b=H[b>>2];if(b){continue}break G}}while(1){a=c;c=H[c+8>>2];if((a|0)!=H[c>>2]){continue}break}}if((c|0)!=(z|0)){continue}break}}H[g+8>>2]=d;H[g>>2]=0;H[g+4>>2]=0;H[o>>2]=g;c=g;a=H[H[u>>2]>>2];if(a){H[u>>2]=a;c=H[o>>2]}Sb(H[u+4>>2],c);H[u+8>>2]=H[u+8>>2]+1;a=1}F[l+44|0]=a;H[l+40>>2]=g;ca=x+16|0;c=H[l+40>>2];Kb(t|4,H[l+16>>2]);Kb(y,H[l+28>>2])}f=ca-48|0;ca=f;d=f+8|0;g=ca-32|0;ca=g;o=g+32|0;b=o;a=g+21|0;H:{if((b|0)==(a|0)){break H}}e=b-a|0;I:{if((e|0)<=9){h=61;if((e|0)<(K[3660]<=1|0)){break I}}F[a|0]=49;b=a+1|0;h=0}H[g+12>>2]=h;H[g+8>>2]=b;h=ca-16|0;ca=h;e=ca-16|0;ca=e;J:{q=H[g+8>>2];g=q-a|0;if(g>>>0<=2147483631){K:{if(g>>>0<11){F[d+11|0]=g|I[d+11|0]&128;F[d+11|0]=I[d+11|0]&127;b=d;break K}t=e+8|0;if(g>>>0>=11){k=g+16&-16;b=k-1|0;b=(b|0)==11?k:b}else{b=10}Zb(t,b+1|0);b=H[e+8>>2];H[d>>2]=b;H[d+8>>2]=H[d+8>>2]&-2147483648|H[e+12>>2]&2147483647;H[d+8>>2]=H[d+8>>2]|-2147483648;H[d+4>>2]=g}while(1){if((a|0)!=(q|0)){F[b|0]=I[a|0];b=b+1|0;a=a+1|0;continue}break}F[e+7|0]=0;F[b|0]=I[e+7|0];ca=e+16|0;break J}Na();v()}ca=h+16|0;ca=o;H[f+32>>2]=m;L:{M:{a=c+20|0;d=H[a+4>>2];N:{if(!d){g=a+4|0;c=g;break N}b=I[m+11|0];c=b<<24>>24<0;e=c?H[m>>2]:m;b=c?H[m+4>>2]:b;while(1){c=d;d=I[c+27|0];g=d<<24>>24<0;d=g?H[c+20>>2]:d;o=d>>>0>>0;O:{P:{Q:{R:{h=o?d:b;S:{if(h){g=g?H[c+16>>2]:c+16|0;q=Fa(e,g,h);if(!q){if(b>>>0>>0){break S}break R}if((q|0)>=0){break R}break S}if(b>>>0>=d>>>0){break Q}}g=c;d=H[c>>2];if(d){continue}break N}d=Fa(g,e,h);if(d){break P}}if(o){break O}break M}if((d|0)>=0){break M}}d=H[c+4>>2];if(d){continue}break}g=c+4|0}d=pa(40);e=d+16|0;b=H[f+32>>2];T:{if(F[b+11|0]>=0){o=H[b+4>>2];H[e>>2]=H[b>>2];H[e+4>>2]=o;H[e+8>>2]=H[b+8>>2];break T}za(e,H[b>>2],H[b+4>>2])}H[d+8>>2]=c;H[d>>2]=0;H[d+4>>2]=0;H[d+36>>2]=0;H[d+28>>2]=0;H[d+32>>2]=0;H[g>>2]=d;c=d;b=H[H[a>>2]>>2];if(b){H[a>>2]=b;c=H[g>>2]}Sb(H[a+4>>2],c);H[a+8>>2]=H[a+8>>2]+1;a=1;break L}d=c;a=0}F[f+44|0]=a;H[f+40>>2]=d;a=H[f+40>>2];if(F[a+39|0]<0){oa(H[a+28>>2])}b=H[f+12>>2];H[a+28>>2]=H[f+8>>2];H[a+32>>2]=b;H[a+36>>2]=H[f+16>>2];ca=f+48|0;ca=l+48|0;if(F[m+11|0]<0){oa(H[m>>2])}ca=m+16|0}function Bd(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;j=H[b+8>>2];e=H[b+12>>2];g=H[b+20>>2];h=H[b+16>>2];k=h+4|0;g=k>>>0<4?g+1|0:g;a:{if(j>>>0>>0&(e|0)<=(g|0)|(e|0)<(g|0)){break a}h=h+H[b>>2]|0;H[a>>2]=I[h|0]|I[h+1|0]<<8|(I[h+2|0]<<16|I[h+3|0]<<24);h=H[b+20>>2];e=h;j=H[b+16>>2];g=j+4|0;h=g>>>0<4?e+1|0:e;H[b+16>>2]=g;H[b+20>>2]=h;if(K[a>>2]>32){break a}l=H[b+8>>2];k=H[b+12>>2];h=e;e=j+8|0;h=e>>>0<8?h+1|0:h;if(e>>>0>l>>>0&(h|0)>=(k|0)|(h|0)>(k|0)){break a}h=H[b>>2]+g|0;g=I[h|0]|I[h+1|0]<<8|(I[h+2|0]<<16|I[h+3|0]<<24);H[a+4>>2]=g;h=H[b+20>>2];e=H[b+16>>2]+4|0;h=e>>>0<4?h+1|0:h;H[b+16>>2]=e;H[b+20>>2]=h;if(!g){return 1}if(d>>>0>>0){break a}H[a+8>>2]=0;if(!ua(a+16|0,b)){break a}if(!ua(a+36|0,b)){break a}if(!ua(a+56|0,b)){break a}if(!ua(a+76|0,b)){break a}s=H[a+4>>2];h=c;b=0;g=0;e=ca-32|0;ca=e;d=a;a=H[a+12>>2];H[e+16>>2]=0;H[e+8>>2]=0;H[e+12>>2]=0;b:{c:{if(a){if(a>>>0>=1073741824){break c}c=a<<2;b=pa(c);H[e+8>>2]=b;g=b+c|0;H[e+16>>2]=g;ra(b,0,c);H[e+12>>2]=g}c=H[d+120>>2];i=H[c>>2];if(i){H[c+4>>2]=i;oa(i);g=H[e+12>>2];b=H[e+8>>2];a=H[d+12>>2]}H[c+4>>2]=g;H[c>>2]=b;H[c+8>>2]=H[e+16>>2];b=0;H[e+16>>2]=0;H[e+8>>2]=0;H[e+12>>2]=0;d:{if(a){if(a>>>0>=1073741824){break d}a=a<<2;f=pa(a);H[e+8>>2]=f;b=a+f|0;H[e+16>>2]=b;ra(f,0,a);H[e+12>>2]=b}a=H[d+132>>2];c=H[a>>2];if(c){H[a+4>>2]=c;oa(c);f=H[e+8>>2];b=H[e+12>>2]}H[a+4>>2]=b;H[a>>2]=f;H[a+8>>2]=H[e+16>>2];H[e+24>>2]=0;H[e+28>>2]=0;H[e+16>>2]=0;H[e+20>>2]=0;H[e+8>>2]=0;H[e+12>>2]=0;xa(e+8|0);a=H[e+24>>2]+H[e+28>>2]|0;b=(a>>>0)/341|0;a=H[H[e+12>>2]+(b<<2)>>2]+N(a-N(b,341)|0,12)|0;H[a+4>>2]=0;H[a+8>>2]=0;H[a>>2]=s;c=1;a=H[e+28>>2]+1|0;H[e+28>>2]=a;e:{if(!a){break e}while(1){b=H[e+12>>2];f=H[e+24>>2];k=a-1|0;c=f+k|0;i=(c>>>0)/341|0;c=H[b+(i<<2)>>2]+N(c-N(i,341)|0,12)|0;g=H[c+8>>2];i=H[c+4>>2];j=H[c>>2];H[e+28>>2]=k;c=H[e+16>>2];if((((b|0)!=(c|0)?N(c-b>>2,341)-1|0:0)-(a+f|0)|0)+1>>>0>=682){oa(H[c-4>>2]);H[e+16>>2]=H[e+16>>2]-4}c=0;if(j>>>0>s>>>0){break e}b=H[d+12>>2];a=(b-1|0)!=(i|0)?i+1|0:0;if(a>>>0>=b>>>0){break e}f=N(g,12);o=f+H[d+132>>2]|0;k=f+H[d+120>>2]|0;i=H[d>>2];l=a<<2;m=H[l+H[o>>2]>>2];f:{g:{if((i|0)==(m|0)){if(!j){break g}o=0;b=H[h+20>>2];g=H[h+16>>2];if((b|0)==(g|0)){a=H[d+8>>2];H[h+28>>2]=j+H[h+28>>2];H[d+8>>2]=a+j;break g}while(1){c=(b|0)==(g|0);a=b;i=0;b=g;h:{if(c){break h}while(1){f=H[h+28>>2];b=a;c=N(i,20)+g|0;l=H[c>>2];if(!I[l+84|0]){f=H[H[l+68>>2]+(f<<2)>>2]}if(K[l+80>>2]<=f>>>0){break h}m=H[k>>2]+(H[c+4>>2]<<2)|0;g=H[c+12>>2];b=m;i:{if(g>>>0>3){break i}a=0;b=H[h+12>>2];if(!H[c+16>>2]){break i}while(1){b=qa(b,m+(a<<2)|0,g);g=H[c+12>>2];b=b+g|0;a=a+1|0;if(a>>>0>2]){continue}break}b=H[h+12>>2]}a=H[l+40>>2];qa(H[H[l>>2]>>2]+N(a,f)|0,b,a);i=i+1|0;a=H[h+20>>2];b=a;g=H[h+16>>2];if(i>>>0<(b-g|0)/20>>>0){continue}break}}H[h+28>>2]=H[h+28>>2]+1;H[d+8>>2]=H[d+8>>2]+1;o=o+1|0;if((j|0)!=(o|0)){continue}break}break g}j:{k:{l:{m:{if(j>>>0<=2){c=H[d+108>>2];H[c>>2]=a;f=1;b=H[d+12>>2];if(b>>>0>1){break m}break j}if(K[d+8>>2]>K[d+4>>2]){break e}b=H[d+120>>2];n=g+1|0;o=N(n,12);p=b+o|0;if((p|0)!=(k|0)){Aa(p,H[k>>2],H[k+4>>2]);b=H[d+120>>2]}b=l+H[b+o>>2]|0;H[b>>2]=H[b>>2]+(1<>2];m=32-i|0;n:{if((b|0)<=(m|0)){k=H[d+28>>2];if((k|0)==H[d+20>>2]){break l}m=H[k>>2];p=b+i|0;H[d+32>>2]=p;b=m<>>32-b|0;if((p|0)!=32){break n}H[d+32>>2]=0;H[d+28>>2]=k+4;break n}k=H[d+28>>2];p=k+4|0;if((p|0)==H[d+20>>2]){break l}r=H[k>>2];H[d+28>>2]=p;m=b-m|0;H[d+32>>2]=m;b=H[k+4>>2]>>>32-m|r<>>32-b}i=j>>>1|0;if(i>>>0>>0){break e}break k}while(1){a=(b-1|0)!=(a|0)?a+1|0:0;H[c+(f<<2)>>2]=a;b=H[d+12>>2];f=f+1|0;if(b>>>0>f>>>0){continue}break}break j}i=j>>>1|0;b=0}o:{p:{b=i-b|0;c=j-b|0;q:{if((c|0)==(b|0)){c=b;break q}i=H[d+88>>2];if((i|0)==H[d+80>>2]){break p}j=H[i>>2];k=H[d+92>>2];m=k+1|0;H[d+92>>2]=m;j=j&-2147483648>>>k;r:{if((m|0)==32){H[d+92>>2]=0;H[d+88>>2]=i+4;if(j){break r}break p}if(!j){break p}}}i=c;c=b;break o}i=b}b=H[d+132>>2];j=b+f|0;f=H[j>>2];k=f+l|0;H[k>>2]=H[k>>2]+1;Aa(b+o|0,f,H[j+4>>2]);if(c){b=H[e+28>>2]+H[e+24>>2]|0;j=H[e+16>>2];f=H[e+12>>2];if((b|0)==(((f|0)!=(j|0)?N(j-f>>2,341)-1|0:0)|0)){xa(e+8|0);f=H[e+12>>2];b=H[e+24>>2]+H[e+28>>2]|0}j=(b>>>0)/341|0;b=H[(j<<2)+f>>2]+N(b-N(j,341)|0,12)|0;H[b+8>>2]=g;H[b+4>>2]=a;H[b>>2]=c;H[e+28>>2]=H[e+28>>2]+1}if(!i){break g}b=H[e+28>>2]+H[e+24>>2]|0;c=H[e+16>>2];f=H[e+12>>2];if((b|0)==(((c|0)!=(f|0)?N(c-f>>2,341)-1|0:0)|0)){xa(e+8|0);f=H[e+12>>2];b=H[e+24>>2]+H[e+28>>2]|0}c=(b>>>0)/341|0;b=H[(c<<2)+f>>2]+N(b-N(c,341)|0,12)|0;H[b+8>>2]=n;H[b+4>>2]=a;H[b>>2]=i;a=H[e+28>>2]+1|0;H[e+28>>2]=a;break f}m=0;if(!j){break g}while(1){if(H[d+12>>2]){i=H[d+40>>2];p=H[o>>2];c=H[d+96>>2];r=H[d+108>>2];a=0;while(1){g=r+(a<<2)|0;H[c+(H[g>>2]<<2)>>2]=0;b=H[d>>2];f=H[g>>2]<<2;l=H[f+p>>2];s:{if((b|0)==(l|0)){break s}f=c+f|0;b=b-l|0;l=H[d+52>>2];q=32-l|0;if((b|0)<=(q|0)){n=H[d+48>>2];if((n|0)==(i|0)){c=0;break e}H[f>>2]=H[n>>2]<>>32-b;b=b+H[d+52>>2]|0;H[d+52>>2]=b;if((b|0)!=32){break s}H[d+52>>2]=0;H[d+48>>2]=n+4;break s}n=H[d+48>>2];t=n+4|0;if((i|0)==(t|0)){c=0;break e}u=H[n>>2];H[d+48>>2]=t;q=b-q|0;H[d+52>>2]=q;H[f>>2]=H[n+4>>2]>>>32-q|u<>>32-b}b=H[g>>2]<<2;g=b+c|0;H[g>>2]=H[g>>2]|H[b+H[k>>2]>>2];a=a+1|0;if(a>>>0>2]){continue}break}}i=0;a=H[h+16>>2];t:{if((a|0)==H[h+20>>2]){break t}while(1){f=H[h+28>>2];c=N(i,20)+a|0;l=H[c>>2];if(!I[l+84|0]){f=H[H[l+68>>2]+(f<<2)>>2]}if(K[l+80>>2]<=f>>>0){break t}n=H[d+96>>2]+(H[c+4>>2]<<2)|0;g=H[c+12>>2];b=n;u:{if(g>>>0>3){break u}a=0;b=H[h+12>>2];if(!H[c+16>>2]){break u}while(1){b=qa(b,n+(a<<2)|0,g);g=H[c+12>>2];b=b+g|0;a=a+1|0;if(a>>>0>2]){continue}break}b=H[h+12>>2]}a=H[l+40>>2];qa(H[H[l>>2]>>2]+N(a,f)|0,b,a);i=i+1|0;a=H[h+16>>2];if(i>>>0<(H[h+20>>2]-a|0)/20>>>0){continue}break}}H[h+28>>2]=H[h+28>>2]+1;H[d+8>>2]=H[d+8>>2]+1;m=m+1|0;if((j|0)!=(m|0)){continue}break}}a=H[e+28>>2]}if(a){continue}break}c=1}H[e+28>>2]=0;f=H[e+16>>2];a=H[e+12>>2];b=f-a|0;if(b>>>0>=9){while(1){oa(H[a>>2]);a=H[e+12>>2]+4|0;H[e+12>>2]=a;f=H[e+16>>2];b=f-a|0;if(b>>>0>8){continue}break}}g=170;v:{switch((b>>>2|0)-1|0){case 1:g=341;case 0:H[e+24>>2]=g;break;default:break v}}w:{if((a|0)==(f|0)){break w}while(1){oa(H[a>>2]);a=a+4|0;if((f|0)!=(a|0)){continue}break}a=H[e+16>>2];b=H[e+12>>2];if((a|0)==(b|0)){break w}H[e+16>>2]=a+((b-a|0)+3&-4)}a=H[e+8>>2];if(a){oa(a)}ca=e+32|0;break b}sa();v()}sa();v()}i=c}return i}function zd(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;j=H[b+8>>2];l=H[b+12>>2];k=H[b+20>>2];i=H[b+16>>2];f=i+4|0;k=f>>>0<4?k+1|0:k;a:{if(f>>>0>j>>>0&(k|0)>=(l|0)|(k|0)>(l|0)){break a}i=i+H[b>>2]|0;H[a>>2]=I[i|0]|I[i+1|0]<<8|(I[i+2|0]<<16|I[i+3|0]<<24);i=H[b+20>>2];j=i;f=H[b+16>>2];i=f+4|0;l=i>>>0<4?j+1|0:j;H[b+16>>2]=i;H[b+20>>2]=l;if(K[a>>2]>32){break a}l=H[b+8>>2];k=H[b+12>>2];f=f+8|0;j=f>>>0<8?j+1|0:j;if((k|0)<=(j|0)&f>>>0>l>>>0|(k|0)<(j|0)){break a}i=H[b>>2]+i|0;f=I[i|0]|I[i+1|0]<<8|(I[i+2|0]<<16|I[i+3|0]<<24);H[a+4>>2]=f;j=H[b+20>>2];i=H[b+16>>2]+4|0;j=i>>>0<4?j+1|0:j;H[b+16>>2]=i;H[b+20>>2]=j;if(!f){return 1}if(d>>>0>>0){break a}H[a+8>>2]=0;if(!ua(a+16|0,b)){break a}if(!ua(a+36|0,b)){break a}if(!ua(a+56|0,b)){break a}if(!ua(a+76|0,b)){break a}t=H[a+4>>2];i=c;b=0;c=0;e=ca-32|0;ca=e;f=a;a=H[a+12>>2];H[e+16>>2]=0;H[e+8>>2]=0;H[e+12>>2]=0;b:{c:{if(a){if(a>>>0>=1073741824){break c}d=a<<2;b=pa(d);H[e+8>>2]=b;c=b+d|0;H[e+16>>2]=c;ra(b,0,d);H[e+12>>2]=c}g=H[f+120>>2];d=H[g>>2];if(d){H[g+4>>2]=d;oa(d);c=H[e+12>>2];b=H[e+8>>2];a=H[f+12>>2]}H[g+4>>2]=c;H[g>>2]=b;H[g+8>>2]=H[e+16>>2];b=0;H[e+16>>2]=0;H[e+8>>2]=0;H[e+12>>2]=0;d:{if(a){if(a>>>0>=1073741824){break d}a=a<<2;h=pa(a);H[e+8>>2]=h;b=a+h|0;H[e+16>>2]=b;ra(h,0,a);H[e+12>>2]=b}c=H[f+132>>2];a=H[c>>2];if(a){H[c+4>>2]=a;oa(a);h=H[e+8>>2];b=H[e+12>>2]}H[c+4>>2]=b;H[c>>2]=h;H[c+8>>2]=H[e+16>>2];H[e+24>>2]=0;H[e+28>>2]=0;H[e+16>>2]=0;H[e+20>>2]=0;H[e+8>>2]=0;H[e+12>>2]=0;xa(e+8|0);b=H[e+24>>2]+H[e+28>>2]|0;a=(b>>>0)/341|0;a=H[H[e+12>>2]+(a<<2)>>2]+N(b-N(a,341)|0,12)|0;H[a+4>>2]=0;H[a+8>>2]=0;H[a>>2]=t;d=1;a=H[e+28>>2]+1|0;H[e+28>>2]=a;e:{if(!a){break e}while(1){j=H[e+12>>2];g=H[e+24>>2];d=a-1|0;c=g+d|0;b=(c>>>0)/341|0;b=H[j+(b<<2)>>2]+N(c-N(b,341)|0,12)|0;n=H[b+8>>2];c=H[b+4>>2];m=H[b>>2];H[e+28>>2]=d;b=H[e+16>>2];if((((b|0)!=(j|0)?N(b-j>>2,341)-1|0:0)-(a+g|0)|0)+1>>>0>=682){oa(H[b-4>>2]);H[e+16>>2]=H[e+16>>2]-4}if(m>>>0>t>>>0){d=0;break e}d=0;b=H[f+12>>2];a=(c|0)!=(b-1|0)?c+1|0:0;if(a>>>0>=b>>>0){break e}b=H[f+120>>2];o=N(n,12);q=b+o|0;g=H[f>>2];h=a<<2;l=o+H[f+132>>2]|0;c=H[h+H[l>>2]>>2];f:{g:{if((g|0)==(c|0)){if(!m){break g}h=0;b=H[i+20>>2];c=H[i+16>>2];if((b|0)==(c|0)){a=H[f+8>>2];H[i+28>>2]=m+H[i+28>>2];H[f+8>>2]=a+m;break g}while(1){d=(b|0)==(c|0);a=b;g=0;b=c;h:{if(d){break h}while(1){d=H[i+28>>2];b=a;k=N(g,20)+c|0;l=H[k>>2];if(!I[l+84|0]){d=H[H[l+68>>2]+(d<<2)>>2]}if(K[l+80>>2]<=d>>>0){break h}j=H[q>>2]+(H[k+4>>2]<<2)|0;c=H[k+12>>2];b=j;i:{if(c>>>0>3){break i}a=0;b=H[i+12>>2];if(!H[k+16>>2]){break i}while(1){b=qa(b,j+(a<<2)|0,c);c=H[k+12>>2];b=b+c|0;a=a+1|0;if(a>>>0>2]){continue}break}b=H[i+12>>2]}a=H[l+40>>2];qa(H[H[l>>2]>>2]+N(a,d)|0,b,a);g=g+1|0;a=H[i+20>>2];b=a;c=H[i+16>>2];if(g>>>0<(b-c|0)/20>>>0){continue}break}}H[i+28>>2]=H[i+28>>2]+1;H[f+8>>2]=H[f+8>>2]+1;h=h+1|0;if((m|0)!=(h|0)){continue}break}break g}j:{k:{l:{m:{if(m>>>0<=2){c=H[f+108>>2];H[c>>2]=a;h=1;b=H[f+12>>2];if(b>>>0>1){break m}break j}if(K[f+8>>2]>K[f+4>>2]){break e}j=b;b=o+12|0;Aa(j+b|0,H[q>>2],H[q+4>>2]);b=h+H[b+H[f+120>>2]>>2]|0;H[b>>2]=H[b>>2]+(1<>2];g=32-l|0;n:{if((k|0)<=(g|0)){g=H[f+28>>2];if((g|0)==H[f+20>>2]){break l}c=H[g>>2];b=k+l|0;H[f+32>>2]=b;c=c<>>32-k|0;if((b|0)!=32){break n}H[f+32>>2]=0;H[f+28>>2]=g+4;break n}j=H[f+28>>2];b=j+4|0;if((b|0)==H[f+20>>2]){break l}c=H[j>>2];H[f+28>>2]=b;b=k-g|0;H[f+32>>2]=b;c=H[j+4>>2]>>>32-b|c<>>32-k}g=m>>>1|0;if(g>>>0>>0){break e}break k}while(1){a=(b-1|0)!=(a|0)?a+1|0:0;H[c+(h<<2)>>2]=a;b=H[f+12>>2];h=h+1|0;if(b>>>0>h>>>0){continue}break}break j}g=m>>>1|0;c=0}k=n+1|0;o:{p:{b=g-c|0;c=m-b|0;q:{if((c|0)==(b|0)){c=b;break q}l=H[f+88>>2];if((l|0)==H[f+80>>2]){break p}j=H[l>>2];g=H[f+92>>2];d=g+1|0;H[f+92>>2]=d;g=j&-2147483648>>>g;r:{if((d|0)==32){H[f+92>>2]=0;H[f+88>>2]=l+4;if(g){break r}break p}if(!g){break p}}}g=c;c=b;break o}g=b}l=H[f+132>>2];j=l+o|0;d=H[j>>2];b=d+h|0;H[b>>2]=H[b>>2]+1;Aa(l+N(k,12)|0,d,H[j+4>>2]);if(c){b=H[e+28>>2]+H[e+24>>2]|0;d=H[e+16>>2];h=H[e+12>>2];if((b|0)==(((d|0)!=(h|0)?N(d-h>>2,341)-1|0:0)|0)){xa(e+8|0);h=H[e+12>>2];b=H[e+24>>2]+H[e+28>>2]|0}d=(b>>>0)/341|0;b=H[(d<<2)+h>>2]+N(b-N(d,341)|0,12)|0;H[b+8>>2]=n;H[b+4>>2]=a;H[b>>2]=c;H[e+28>>2]=H[e+28>>2]+1}if(!g){break g}b=H[e+28>>2]+H[e+24>>2]|0;c=H[e+16>>2];h=H[e+12>>2];if((b|0)==(((c|0)!=(h|0)?N(c-h>>2,341)-1|0:0)|0)){xa(e+8|0);h=H[e+12>>2];b=H[e+24>>2]+H[e+28>>2]|0}c=(b>>>0)/341|0;b=H[(c<<2)+h>>2]+N(b-N(c,341)|0,12)|0;H[b+8>>2]=k;H[b+4>>2]=a;H[b>>2]=g;a=H[e+28>>2]+1|0;H[e+28>>2]=a;break f}r=0;if(!m){break g}while(1){if(H[f+12>>2]){u=H[f+40>>2];j=H[l>>2];s=H[f+96>>2];g=H[f+108>>2];a=0;while(1){n=(a<<2)+g|0;H[s+(H[n>>2]<<2)>>2]=0;d=H[f>>2];c=H[n>>2]<<2;b=H[c+j>>2];s:{if((d|0)==(b|0)){break s}o=c+s|0;p=d-b|0;h=H[f+52>>2];d=32-h|0;if((p|0)<=(d|0)){c=H[f+48>>2];if((c|0)==(u|0)){d=0;break e}H[o>>2]=H[c>>2]<>>32-p;b=p+H[f+52>>2]|0;H[f+52>>2]=b;if((b|0)!=32){break s}H[f+52>>2]=0;H[f+48>>2]=c+4;break s}k=H[f+48>>2];b=k+4|0;if((u|0)==(b|0)){d=0;break e}c=H[k>>2];H[f+48>>2]=b;b=p-d|0;H[f+52>>2]=b;H[o>>2]=H[k+4>>2]>>>32-b|c<>>32-p}c=H[n>>2]<<2;b=c+s|0;H[b>>2]=H[b>>2]|H[c+H[q>>2]>>2];a=a+1|0;if(a>>>0>2]){continue}break}}g=0;a=H[i+16>>2];t:{if((a|0)==H[i+20>>2]){break t}while(1){d=H[i+28>>2];h=N(g,20)+a|0;k=H[h>>2];if(!I[k+84|0]){d=H[H[k+68>>2]+(d<<2)>>2]}if(K[k+80>>2]<=d>>>0){break t}j=H[f+96>>2]+(H[h+4>>2]<<2)|0;c=H[h+12>>2];b=j;u:{if(c>>>0>3){break u}a=0;b=H[i+12>>2];if(!H[h+16>>2]){break u}while(1){b=qa(b,j+(a<<2)|0,c);c=H[h+12>>2];b=b+c|0;a=a+1|0;if(a>>>0>2]){continue}break}b=H[i+12>>2]}a=H[k+40>>2];qa(H[H[k>>2]>>2]+N(a,d)|0,b,a);g=g+1|0;a=H[i+16>>2];if(g>>>0<(H[i+20>>2]-a|0)/20>>>0){continue}break}}H[i+28>>2]=H[i+28>>2]+1;H[f+8>>2]=H[f+8>>2]+1;r=r+1|0;if((m|0)!=(r|0)){continue}break}}a=H[e+28>>2]}if(a){continue}break}d=1}H[e+28>>2]=0;h=H[e+16>>2];a=H[e+12>>2];b=h-a|0;if(b>>>0>=9){while(1){oa(H[a>>2]);a=H[e+12>>2]+4|0;H[e+12>>2]=a;h=H[e+16>>2];b=h-a|0;if(b>>>0>8){continue}break}}c=170;v:{switch((b>>>2|0)-1|0){case 1:c=341;case 0:H[e+24>>2]=c;break;default:break v}}w:{if((a|0)==(h|0)){break w}while(1){oa(H[a>>2]);a=a+4|0;if((h|0)!=(a|0)){continue}break}b=H[e+16>>2];a=H[e+12>>2];if((b|0)==(a|0)){break w}H[e+16>>2]=b+((a-b|0)+3&-4)}a=H[e+8>>2];if(a){oa(a)}ca=e+32|0;g=d;break b}sa();v()}sa();v()}}return g}function wd(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0;i=H[b+8>>2];j=H[b+12>>2];n=H[b+20>>2];e=H[b+16>>2];h=e+4|0;n=h>>>0<4?n+1|0:n;a:{if(i>>>0>>0&(j|0)<=(n|0)|(j|0)<(n|0)){break a}e=e+H[b>>2]|0;H[a>>2]=I[e|0]|I[e+1|0]<<8|(I[e+2|0]<<16|I[e+3|0]<<24);e=H[b+20>>2];i=e;h=H[b+16>>2];e=h+4|0;j=e>>>0<4?i+1|0:i;H[b+16>>2]=e;H[b+20>>2]=j;if(K[a>>2]>32){break a}j=H[b+8>>2];n=H[b+12>>2];h=h+8|0;i=h>>>0<8?i+1|0:i;if(h>>>0>j>>>0&(i|0)>=(n|0)|(i|0)>(n|0)){break a}e=H[b>>2]+e|0;h=I[e|0]|I[e+1|0]<<8|(I[e+2|0]<<16|I[e+3|0]<<24);H[a+4>>2]=h;i=H[b+20>>2];e=H[b+16>>2]+4|0;i=e>>>0<4?i+1|0:i;H[b+16>>2]=e;H[b+20>>2]=i;if(!h){return 1}if(d>>>0>>0){break a}H[a+8>>2]=0;if(!sb(a+16|0,b)){break a}if(!ua(a+544|0,b)){break a}if(!ua(a+564|0,b)){break a}if(!ua(a+584|0,b)){break a}u=H[a+4>>2];d=c;b=0;c=0;f=ca-32|0;ca=f;g=a;a=H[a+12>>2];H[f+16>>2]=0;H[f+8>>2]=0;H[f+12>>2]=0;b:{c:{if(a){if(a>>>0>=1073741824){break c}e=a<<2;b=pa(e);H[f+8>>2]=b;c=b+e|0;H[f+16>>2]=c;ra(b,0,e);H[f+12>>2]=c}h=H[g+628>>2];e=H[h>>2];if(e){H[h+4>>2]=e;oa(e);c=H[f+12>>2];b=H[f+8>>2];a=H[g+12>>2]}H[h+4>>2]=c;H[h>>2]=b;H[h+8>>2]=H[f+16>>2];b=0;H[f+16>>2]=0;H[f+8>>2]=0;H[f+12>>2]=0;d:{if(a){if(a>>>0>=1073741824){break d}a=a<<2;k=pa(a);H[f+8>>2]=k;b=a+k|0;H[f+16>>2]=b;ra(k,0,a);H[f+12>>2]=b}c=H[g+640>>2];a=H[c>>2];if(a){H[c+4>>2]=a;oa(a);k=H[f+8>>2];b=H[f+12>>2]}H[c+4>>2]=b;H[c>>2]=k;H[c+8>>2]=H[f+16>>2];H[f+24>>2]=0;H[f+28>>2]=0;H[f+16>>2]=0;H[f+20>>2]=0;H[f+8>>2]=0;H[f+12>>2]=0;xa(f+8|0);b=H[f+24>>2]+H[f+28>>2]|0;a=(b>>>0)/341|0;a=H[H[f+12>>2]+(a<<2)>>2]+N(b-N(a,341)|0,12)|0;H[a+4>>2]=0;H[a+8>>2]=0;H[a>>2]=u;c=1;a=H[f+28>>2]+1|0;H[f+28>>2]=a;e:{if(!a){break e}n=g+16|0;while(1){j=H[f+12>>2];h=H[f+24>>2];e=a-1|0;c=h+e|0;b=(c>>>0)/341|0;b=H[j+(b<<2)>>2]+N(c-N(b,341)|0,12)|0;q=H[b+8>>2];i=H[b+4>>2];o=H[b>>2];H[f+28>>2]=e;b=H[f+16>>2];if((((b|0)!=(j|0)?N(b-j>>2,341)-1|0:0)-(a+h|0)|0)+1>>>0>=682){oa(H[b-4>>2]);H[f+16>>2]=H[f+16>>2]-4}c=0;if(o>>>0>u>>>0){break e}a=H[g+12>>2];k=(i|0)!=(a-1|0)?i+1|0:0;if(k>>>0>=a>>>0){break e}p=N(q,12);w=p+H[g+640>>2]|0;r=p+H[g+628>>2]|0;h=H[g>>2];l=k<<2;e=H[l+H[w>>2]>>2];f:{g:{if((h|0)==(e|0)){if(!o){break g}c=H[d+16>>2];b=H[d+20>>2];m=0;while(1){e=(b|0)==(c|0);a=b;j=0;b=c;h:{if(e){break h}while(1){l=H[d+28>>2];b=a;i=N(j,20)+c|0;h=H[i>>2];if(!I[h+84|0]){l=H[H[h+68>>2]+(l<<2)>>2]}if(K[h+80>>2]<=l>>>0){break h}e=H[r>>2]+(H[i+4>>2]<<2)|0;c=H[i+12>>2];b=e;i:{if(c>>>0>3){break i}a=0;b=H[d+12>>2];if(!H[i+16>>2]){break i}while(1){b=qa(b,e+(a<<2)|0,c);c=H[i+12>>2];b=b+c|0;a=a+1|0;if(a>>>0>2]){continue}break}b=H[d+12>>2]}a=H[h+40>>2];qa(H[H[h>>2]>>2]+N(a,l)|0,b,a);a=H[d+20>>2];b=a;j=j+1|0;c=H[d+16>>2];if(j>>>0<(a-c|0)/20>>>0){continue}break}}H[d+28>>2]=H[d+28>>2]+1;H[g+8>>2]=H[g+8>>2]+1;m=m+1|0;if((o|0)!=(m|0)){continue}break}break g}j:{k:{l:{if(o>>>0<=2){c=H[g+616>>2];H[c>>2]=k;a=1;b=H[g+12>>2];if(b>>>0>1){break l}break j}if(K[g+8>>2]>K[g+4>>2]){break e}a=H[g+628>>2];j=q+1|0;m=N(j,12);b=a+m|0;if((b|0)!=(r|0)){Aa(b,H[r>>2],H[r+4>>2]);a=H[g+628>>2]}a=l+H[a+m>>2]|0;H[a>>2]=H[a>>2]+(1<>>1|0;break k}while(1){b=Ba((a<<4)+n|0)|b<<1;a=a+1|0;if((c|0)!=(a|0)){continue}break}a=o>>>1|0;if(b>>>0<=a>>>0){break k}c=0;break e}while(1){k=(b-1|0)!=(k|0)?k+1|0:0;H[c+(a<<2)>>2]=k;a=a+1|0;b=H[g+12>>2];if(a>>>0>>0){continue}break}break j}m:{n:{b=a-b|0;a=o-b|0;o:{if((a|0)==(b|0)){a=b;break o}i=H[g+596>>2];if((i|0)==H[g+588>>2]){break n}h=H[i>>2];e=H[g+600>>2];c=e+1|0;H[g+600>>2]=c;e=h&-2147483648>>>e;p:{if((c|0)==32){H[g+600>>2]=0;H[g+596>>2]=i+4;if(e){break p}break n}if(!e){break n}}}c=a;a=b;break m}c=b}i=H[g+640>>2];h=i+p|0;e=H[h>>2];b=e+l|0;H[b>>2]=H[b>>2]+1;Aa(i+m|0,e,H[h+4>>2]);if(a){m=H[f+28>>2]+H[f+24>>2]|0;e=H[f+16>>2];b=H[f+12>>2];if((m|0)==(((b|0)!=(e|0)?N(e-b>>2,341)-1|0:0)|0)){xa(f+8|0);m=H[f+24>>2]+H[f+28>>2]|0;e=H[f+12>>2]}else{e=b}b=(m>>>0)/341|0;b=H[e+(b<<2)>>2]+N(m-N(b,341)|0,12)|0;H[b+8>>2]=q;H[b+4>>2]=k;H[b>>2]=a;H[f+28>>2]=H[f+28>>2]+1}if(!c){break g}b=H[f+28>>2]+H[f+24>>2]|0;e=H[f+16>>2];a=H[f+12>>2];if((b|0)==(((a|0)!=(e|0)?N(e-a>>2,341)-1|0:0)|0)){xa(f+8|0);b=H[f+24>>2]+H[f+28>>2]|0;e=H[f+12>>2]}else{e=a}a=(b>>>0)/341|0;a=H[e+(a<<2)>>2]+N(b-N(a,341)|0,12)|0;H[a+8>>2]=j;H[a+4>>2]=k;H[a>>2]=c;a=H[f+28>>2]+1|0;H[f+28>>2]=a;break f}k=0;if(!o){break g}while(1){if(H[g+12>>2]){q=H[g+548>>2];i=H[w>>2];t=H[g+604>>2];h=H[g+616>>2];a=0;while(1){p=(a<<2)+h|0;H[t+(H[p>>2]<<2)>>2]=0;e=H[g>>2];c=H[p>>2]<<2;b=H[c+i>>2];q:{if((e|0)==(b|0)){break q}l=c+t|0;s=e-b|0;m=H[g+560>>2];e=32-m|0;if((s|0)<=(e|0)){c=H[g+556>>2];if((c|0)==(q|0)){c=0;break e}H[l>>2]=H[c>>2]<>>32-s;b=s+H[g+560>>2]|0;H[g+560>>2]=b;if((b|0)!=32){break q}H[g+560>>2]=0;H[g+556>>2]=c+4;break q}j=H[g+556>>2];b=j+4|0;if((q|0)==(b|0)){c=0;break e}c=H[j>>2];H[g+556>>2]=b;b=s-e|0;H[g+560>>2]=b;H[l>>2]=H[j+4>>2]>>>32-b|c<>>32-s}c=H[p>>2]<<2;b=c+t|0;H[b>>2]=H[b>>2]|H[c+H[r>>2]>>2];a=a+1|0;if(a>>>0>2]){continue}break}}j=0;a=H[d+16>>2];r:{if((a|0)==H[d+20>>2]){break r}while(1){l=H[d+28>>2];i=N(j,20)+a|0;h=H[i>>2];if(!I[h+84|0]){l=H[H[h+68>>2]+(l<<2)>>2]}if(K[h+80>>2]<=l>>>0){break r}e=H[g+604>>2]+(H[i+4>>2]<<2)|0;c=H[i+12>>2];b=e;s:{if(c>>>0>3){break s}a=0;b=H[d+12>>2];if(!H[i+16>>2]){break s}while(1){b=qa(b,e+(a<<2)|0,c);c=H[i+12>>2];b=b+c|0;a=a+1|0;if(a>>>0>2]){continue}break}b=H[d+12>>2]}a=H[h+40>>2];qa(H[H[h>>2]>>2]+N(a,l)|0,b,a);j=j+1|0;a=H[d+16>>2];if(j>>>0<(H[d+20>>2]-a|0)/20>>>0){continue}break}}H[d+28>>2]=H[d+28>>2]+1;H[g+8>>2]=H[g+8>>2]+1;k=k+1|0;if((o|0)!=(k|0)){continue}break}}a=H[f+28>>2]}if(a){continue}break}c=1}H[f+28>>2]=0;k=H[f+16>>2];a=H[f+12>>2];b=k-a|0;if(b>>>0>=9){while(1){oa(H[a>>2]);a=H[f+12>>2]+4|0;H[f+12>>2]=a;k=H[f+16>>2];b=k-a|0;if(b>>>0>8){continue}break}}d=170;t:{switch((b>>>2|0)-1|0){case 1:d=341;case 0:H[f+24>>2]=d;break;default:break t}}u:{if((a|0)==(k|0)){break u}while(1){oa(H[a>>2]);a=a+4|0;if((k|0)!=(a|0)){continue}break}b=H[f+16>>2];a=H[f+12>>2];if((b|0)==(a|0)){break u}H[f+16>>2]=b+((a-b|0)+3&-4)}a=H[f+8>>2];if(a){oa(a)}ca=f+32|0;break b}sa();v()}sa();v()}g=c}return g}function ud(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0;i=H[b+8>>2];k=H[b+12>>2];o=H[b+20>>2];e=H[b+16>>2];h=e+4|0;o=h>>>0<4?o+1|0:o;a:{if(i>>>0>>0&(k|0)<=(o|0)|(k|0)<(o|0)){break a}e=e+H[b>>2]|0;H[a>>2]=I[e|0]|I[e+1|0]<<8|(I[e+2|0]<<16|I[e+3|0]<<24);e=H[b+20>>2];i=e;h=H[b+16>>2];e=h+4|0;k=e>>>0<4?i+1|0:i;H[b+16>>2]=e;H[b+20>>2]=k;if(K[a>>2]>32){break a}k=H[b+8>>2];o=H[b+12>>2];h=h+8|0;i=h>>>0<8?i+1|0:i;if(h>>>0>k>>>0&(i|0)>=(o|0)|(i|0)>(o|0)){break a}e=H[b>>2]+e|0;h=I[e|0]|I[e+1|0]<<8|(I[e+2|0]<<16|I[e+3|0]<<24);H[a+4>>2]=h;i=H[b+20>>2];e=H[b+16>>2]+4|0;i=e>>>0<4?i+1|0:i;H[b+16>>2]=e;H[b+20>>2]=i;if(!h){return 1}if(d>>>0>>0){break a}H[a+8>>2]=0;if(!sb(a+16|0,b)){break a}if(!ua(a+544|0,b)){break a}if(!ua(a+564|0,b)){break a}if(!ua(a+584|0,b)){break a}w=H[a+4>>2];d=c;b=0;c=0;f=ca-32|0;ca=f;g=a;a=H[a+12>>2];H[f+16>>2]=0;H[f+8>>2]=0;H[f+12>>2]=0;b:{c:{if(a){if(a>>>0>=1073741824){break c}e=a<<2;b=pa(e);H[f+8>>2]=b;c=b+e|0;H[f+16>>2]=c;ra(b,0,e);H[f+12>>2]=c}h=H[g+628>>2];e=H[h>>2];if(e){H[h+4>>2]=e;oa(e);c=H[f+12>>2];b=H[f+8>>2];a=H[g+12>>2]}H[h+4>>2]=c;H[h>>2]=b;H[h+8>>2]=H[f+16>>2];b=0;H[f+16>>2]=0;H[f+8>>2]=0;H[f+12>>2]=0;d:{if(a){if(a>>>0>=1073741824){break d}a=a<<2;j=pa(a);H[f+8>>2]=j;b=a+j|0;H[f+16>>2]=b;ra(j,0,a);H[f+12>>2]=b}c=H[g+640>>2];a=H[c>>2];if(a){H[c+4>>2]=a;oa(a);j=H[f+8>>2];b=H[f+12>>2]}H[c+4>>2]=b;H[c>>2]=j;H[c+8>>2]=H[f+16>>2];H[f+24>>2]=0;H[f+28>>2]=0;H[f+16>>2]=0;H[f+20>>2]=0;H[f+8>>2]=0;H[f+12>>2]=0;xa(f+8|0);b=H[f+24>>2]+H[f+28>>2]|0;a=(b>>>0)/341|0;a=H[H[f+12>>2]+(a<<2)>>2]+N(b-N(a,341)|0,12)|0;H[a+4>>2]=0;H[a+8>>2]=0;H[a>>2]=w;c=1;a=H[f+28>>2]+1|0;H[f+28>>2]=a;e:{if(!a){break e}o=g+16|0;while(1){i=H[f+12>>2];h=H[f+24>>2];e=a-1|0;c=h+e|0;b=(c>>>0)/341|0;b=H[i+(b<<2)>>2]+N(c-N(b,341)|0,12)|0;q=H[b+8>>2];n=H[b>>2];H[f+28>>2]=e;b=H[f+16>>2];if((((b|0)!=(i|0)?N(b-i>>2,341)-1|0:0)-(a+h|0)|0)+1>>>0>=682){oa(H[b-4>>2]);H[f+16>>2]=H[f+16>>2]-4}c=0;if(n>>>0>w>>>0){break e}a=H[g+628>>2];p=N(q,12);t=p+H[g+640>>2]|0;j=Vd(g,n,t);if(j>>>0>=K[g+12>>2]){break e}r=a+p|0;h=H[g>>2];l=j<<2;e=H[l+H[t>>2]>>2];f:{g:{if((h|0)==(e|0)){if(!n){break g}c=H[d+16>>2];b=H[d+20>>2];m=0;while(1){e=(b|0)==(c|0);a=b;k=0;b=c;h:{if(e){break h}while(1){l=H[d+28>>2];b=a;i=N(k,20)+c|0;h=H[i>>2];if(!I[h+84|0]){l=H[H[h+68>>2]+(l<<2)>>2]}if(K[h+80>>2]<=l>>>0){break h}e=H[r>>2]+(H[i+4>>2]<<2)|0;c=H[i+12>>2];b=e;i:{if(c>>>0>3){break i}a=0;b=H[d+12>>2];if(!H[i+16>>2]){break i}while(1){b=qa(b,e+(a<<2)|0,c);c=H[i+12>>2];b=b+c|0;a=a+1|0;if(a>>>0>2]){continue}break}b=H[d+12>>2]}a=H[h+40>>2];qa(H[H[h>>2]>>2]+N(a,l)|0,b,a);a=H[d+20>>2];b=a;k=k+1|0;c=H[d+16>>2];if(k>>>0<(a-c|0)/20>>>0){continue}break}}H[d+28>>2]=H[d+28>>2]+1;H[g+8>>2]=H[g+8>>2]+1;m=m+1|0;if((n|0)!=(m|0)){continue}break}break g}j:{k:{l:{if(n>>>0<=2){c=H[g+616>>2];H[c>>2]=j;a=1;b=H[g+12>>2];if(b>>>0>1){break l}break j}if(K[g+8>>2]>K[g+4>>2]){break e}a=H[g+628>>2];k=q+1|0;m=N(k,12);b=a+m|0;if((b|0)!=(r|0)){Aa(b,H[r>>2],H[r+4>>2]);a=H[g+628>>2]}a=l+H[a+m>>2]|0;H[a>>2]=H[a>>2]+(1<>>1|0;break k}while(1){b=Ba((a<<4)+o|0)|b<<1;a=a+1|0;if((c|0)!=(a|0)){continue}break}a=n>>>1|0;if(b>>>0<=a>>>0){break k}c=0;break e}while(1){j=(b-1|0)!=(j|0)?j+1|0:0;H[c+(a<<2)>>2]=j;a=a+1|0;b=H[g+12>>2];if(a>>>0>>0){continue}break}break j}m:{n:{b=a-b|0;a=n-b|0;o:{if((a|0)==(b|0)){a=b;break o}i=H[g+596>>2];if((i|0)==H[g+588>>2]){break n}h=H[i>>2];e=H[g+600>>2];c=e+1|0;H[g+600>>2]=c;e=h&-2147483648>>>e;p:{if((c|0)==32){H[g+600>>2]=0;H[g+596>>2]=i+4;if(e){break p}break n}if(!e){break n}}}c=a;a=b;break m}c=b}i=H[g+640>>2];h=i+p|0;e=H[h>>2];b=e+l|0;H[b>>2]=H[b>>2]+1;Aa(i+m|0,e,H[h+4>>2]);if(a){m=H[f+28>>2]+H[f+24>>2]|0;e=H[f+16>>2];b=H[f+12>>2];if((m|0)==(((b|0)!=(e|0)?N(e-b>>2,341)-1|0:0)|0)){xa(f+8|0);m=H[f+24>>2]+H[f+28>>2]|0;e=H[f+12>>2]}else{e=b}b=(m>>>0)/341|0;b=H[e+(b<<2)>>2]+N(m-N(b,341)|0,12)|0;H[b+8>>2]=q;H[b+4>>2]=j;H[b>>2]=a;H[f+28>>2]=H[f+28>>2]+1}if(!c){break g}b=H[f+28>>2]+H[f+24>>2]|0;e=H[f+16>>2];a=H[f+12>>2];if((b|0)==(((a|0)!=(e|0)?N(e-a>>2,341)-1|0:0)|0)){xa(f+8|0);b=H[f+24>>2]+H[f+28>>2]|0;e=H[f+12>>2]}else{e=a}a=(b>>>0)/341|0;a=H[e+(a<<2)>>2]+N(b-N(a,341)|0,12)|0;H[a+8>>2]=k;H[a+4>>2]=j;H[a>>2]=c;a=H[f+28>>2]+1|0;H[f+28>>2]=a;break f}j=0;if(!n){break g}while(1){if(H[g+12>>2]){q=H[g+548>>2];i=H[t>>2];u=H[g+604>>2];h=H[g+616>>2];a=0;while(1){p=(a<<2)+h|0;H[u+(H[p>>2]<<2)>>2]=0;e=H[g>>2];c=H[p>>2]<<2;b=H[c+i>>2];q:{if((e|0)==(b|0)){break q}l=c+u|0;s=e-b|0;m=H[g+560>>2];e=32-m|0;if((s|0)<=(e|0)){c=H[g+556>>2];if((c|0)==(q|0)){c=0;break e}H[l>>2]=H[c>>2]<>>32-s;b=s+H[g+560>>2]|0;H[g+560>>2]=b;if((b|0)!=32){break q}H[g+560>>2]=0;H[g+556>>2]=c+4;break q}k=H[g+556>>2];b=k+4|0;if((q|0)==(b|0)){c=0;break e}c=H[k>>2];H[g+556>>2]=b;b=s-e|0;H[g+560>>2]=b;H[l>>2]=H[k+4>>2]>>>32-b|c<>>32-s}c=H[p>>2]<<2;b=c+u|0;H[b>>2]=H[b>>2]|H[c+H[r>>2]>>2];a=a+1|0;if(a>>>0>2]){continue}break}}k=0;a=H[d+16>>2];r:{if((a|0)==H[d+20>>2]){break r}while(1){l=H[d+28>>2];i=N(k,20)+a|0;h=H[i>>2];if(!I[h+84|0]){l=H[H[h+68>>2]+(l<<2)>>2]}if(K[h+80>>2]<=l>>>0){break r}e=H[g+604>>2]+(H[i+4>>2]<<2)|0;c=H[i+12>>2];b=e;s:{if(c>>>0>3){break s}a=0;b=H[d+12>>2];if(!H[i+16>>2]){break s}while(1){b=qa(b,e+(a<<2)|0,c);c=H[i+12>>2];b=b+c|0;a=a+1|0;if(a>>>0>2]){continue}break}b=H[d+12>>2]}a=H[h+40>>2];qa(H[H[h>>2]>>2]+N(a,l)|0,b,a);k=k+1|0;a=H[d+16>>2];if(k>>>0<(H[d+20>>2]-a|0)/20>>>0){continue}break}}H[d+28>>2]=H[d+28>>2]+1;H[g+8>>2]=H[g+8>>2]+1;j=j+1|0;if((n|0)!=(j|0)){continue}break}}a=H[f+28>>2]}if(a){continue}break}c=1}H[f+28>>2]=0;j=H[f+16>>2];a=H[f+12>>2];b=j-a|0;if(b>>>0>=9){while(1){oa(H[a>>2]);a=H[f+12>>2]+4|0;H[f+12>>2]=a;j=H[f+16>>2];b=j-a|0;if(b>>>0>8){continue}break}}d=170;t:{switch((b>>>2|0)-1|0){case 1:d=341;case 0:H[f+24>>2]=d;break;default:break t}}u:{if((a|0)==(j|0)){break u}while(1){oa(H[a>>2]);a=a+4|0;if((j|0)!=(a|0)){continue}break}b=H[f+16>>2];a=H[f+12>>2];if((b|0)==(a|0)){break u}H[f+16>>2]=b+((a-b|0)+3&-4)}a=H[f+8>>2];if(a){oa(a)}ca=f+32|0;break b}sa();v()}sa();v()}g=c}return g}function vd(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0;i=H[b+8>>2];k=H[b+12>>2];m=H[b+20>>2];f=H[b+16>>2];h=f+4|0;m=h>>>0<4?m+1|0:m;a:{if(i>>>0>>0&(k|0)<=(m|0)|(k|0)<(m|0)){break a}f=f+H[b>>2]|0;H[a>>2]=I[f|0]|I[f+1|0]<<8|(I[f+2|0]<<16|I[f+3|0]<<24);f=H[b+20>>2];i=f;h=H[b+16>>2];f=h+4|0;k=f>>>0<4?i+1|0:i;H[b+16>>2]=f;H[b+20>>2]=k;if(K[a>>2]>32){break a}k=H[b+8>>2];m=H[b+12>>2];h=h+8|0;i=h>>>0<8?i+1|0:i;if(h>>>0>k>>>0&(i|0)>=(m|0)|(i|0)>(m|0)){break a}f=f+H[b>>2]|0;h=I[f|0]|I[f+1|0]<<8|(I[f+2|0]<<16|I[f+3|0]<<24);H[a+4>>2]=h;i=H[b+20>>2];f=H[b+16>>2]+4|0;i=f>>>0<4?i+1|0:i;H[b+16>>2]=f;H[b+20>>2]=i;if(!h){return 1}if(d>>>0>>0){break a}H[a+8>>2]=0;if(!sb(a+16|0,b)){break a}if(!ua(a+544|0,b)){break a}if(!ua(a+564|0,b)){break a}if(!ua(a+584|0,b)){break a}u=H[a+4>>2];b=0;e=ca-32|0;ca=e;f=a;a=H[a+12>>2];H[e+16>>2]=0;H[e+8>>2]=0;H[e+12>>2]=0;b:{c:{if(a){if(a>>>0>=1073741824){break c}d=a<<2;b=pa(d);H[e+8>>2]=b;g=b+d|0;H[e+16>>2]=g;ra(b,0,d);H[e+12>>2]=g}h=H[f+628>>2];d=H[h>>2];if(d){H[h+4>>2]=d;oa(d);g=H[e+12>>2];b=H[e+8>>2];a=H[f+12>>2]}H[h+4>>2]=g;H[h>>2]=b;H[h+8>>2]=H[e+16>>2];b=0;H[e+16>>2]=0;H[e+8>>2]=0;H[e+12>>2]=0;d:{if(a){if(a>>>0>=1073741824){break d}a=a<<2;j=pa(a);H[e+8>>2]=j;b=a+j|0;H[e+16>>2]=b;ra(j,0,a);H[e+12>>2]=b}d=H[f+640>>2];a=H[d>>2];if(a){H[d+4>>2]=a;oa(a);j=H[e+8>>2];b=H[e+12>>2]}H[d+4>>2]=b;H[d>>2]=j;H[d+8>>2]=H[e+16>>2];H[e+24>>2]=0;H[e+28>>2]=0;H[e+16>>2]=0;H[e+20>>2]=0;H[e+8>>2]=0;H[e+12>>2]=0;xa(e+8|0);b=H[e+24>>2]+H[e+28>>2]|0;a=(b>>>0)/341|0;a=H[H[e+12>>2]+(a<<2)>>2]+N(b-N(a,341)|0,12)|0;H[a+4>>2]=0;H[a+8>>2]=0;H[a>>2]=u;d=1;a=H[e+28>>2]+1|0;H[e+28>>2]=a;e:{if(!a){break e}m=f+16|0;while(1){k=H[e+12>>2];h=H[e+24>>2];g=a-1|0;d=h+g|0;b=(d>>>0)/341|0;b=H[k+(b<<2)>>2]+N(d-N(b,341)|0,12)|0;q=H[b+8>>2];i=H[b+4>>2];n=H[b>>2];H[e+28>>2]=g;b=H[e+16>>2];if((((b|0)!=(k|0)?N(b-k>>2,341)-1|0:0)-(a+h|0)|0)+1>>>0>=682){oa(H[b-4>>2]);H[e+16>>2]=H[e+16>>2]-4}if(n>>>0>u>>>0){d=0;break e}d=0;a=H[f+12>>2];j=(i|0)!=(a-1|0)?i+1|0:0;if(j>>>0>=a>>>0){break e}a=H[f+628>>2];o=N(q,12);s=a+o|0;g=H[f>>2];l=j<<2;k=o+H[f+640>>2]|0;b=H[l+H[k>>2]>>2];f:{g:{if((g|0)==(b|0)){if(!n){break g}g=H[c+16>>2];b=H[c+20>>2];p=0;while(1){d=(b|0)==(g|0);a=b;j=0;b=g;h:{if(d){break h}while(1){d=H[c+28>>2];b=a;k=N(j,20)+g|0;i=H[k>>2];if(!I[i+84|0]){d=H[H[i+68>>2]+(d<<2)>>2]}if(K[i+80>>2]<=d>>>0){break h}h=H[s>>2]+(H[k+4>>2]<<2)|0;g=H[k+12>>2];b=h;i:{if(g>>>0>3){break i}a=0;b=H[c+12>>2];if(!H[k+16>>2]){break i}while(1){b=qa(b,h+(a<<2)|0,g);g=H[k+12>>2];b=b+g|0;a=a+1|0;if(a>>>0>2]){continue}break}b=H[c+12>>2]}a=H[i+40>>2];qa(H[H[i>>2]>>2]+N(a,d)|0,b,a);a=H[c+20>>2];b=a;j=j+1|0;g=H[c+16>>2];if(j>>>0<(a-g|0)/20>>>0){continue}break}}H[c+28>>2]=H[c+28>>2]+1;H[f+8>>2]=H[f+8>>2]+1;p=p+1|0;if((p|0)!=(n|0)){continue}break}break g}j:{k:{l:{if(n>>>0<=2){d=H[f+616>>2];H[d>>2]=j;a=1;b=H[f+12>>2];if(b>>>0>1){break l}break j}if(K[f+8>>2]>K[f+4>>2]){break e}d=a;a=o+12|0;Aa(d+a|0,H[s>>2],H[s+4>>2]);a=l+H[a+H[f+628>>2]>>2]|0;H[a>>2]=H[a>>2]+(1<>>1|0;break k}while(1){b=Ba((a<<4)+m|0)|b<<1;a=a+1|0;if((d|0)!=(a|0)){continue}break}a=n>>>1|0;if(b>>>0<=a>>>0){break k}d=0;break e}while(1){j=(b-1|0)!=(j|0)?j+1|0:0;H[d+(a<<2)>>2]=j;a=a+1|0;b=H[f+12>>2];if(a>>>0>>0){continue}break}break j}k=q+1|0;m:{n:{b=a-b|0;a=n-b|0;o:{if((a|0)==(b|0)){a=b;break o}i=H[f+596>>2];if((i|0)==H[f+588>>2]){break n}h=H[i>>2];g=H[f+600>>2];d=g+1|0;H[f+600>>2]=d;g=h&-2147483648>>>g;p:{if((d|0)==32){H[f+600>>2]=0;H[f+596>>2]=i+4;if(g){break p}break n}if(!g){break n}}}d=a;a=b;break m}d=b}i=H[f+640>>2];h=i+o|0;g=H[h>>2];b=g+l|0;H[b>>2]=H[b>>2]+1;Aa(i+N(k,12)|0,g,H[h+4>>2]);if(a){h=H[e+28>>2]+H[e+24>>2]|0;g=H[e+16>>2];b=H[e+12>>2];if((h|0)==(((b|0)!=(g|0)?N(g-b>>2,341)-1|0:0)|0)){xa(e+8|0);h=H[e+24>>2]+H[e+28>>2]|0;g=H[e+12>>2]}else{g=b}b=(h>>>0)/341|0;b=H[g+(b<<2)>>2]+N(h-N(b,341)|0,12)|0;H[b+8>>2]=q;H[b+4>>2]=j;H[b>>2]=a;H[e+28>>2]=H[e+28>>2]+1}if(!d){break g}b=H[e+28>>2]+H[e+24>>2]|0;g=H[e+16>>2];a=H[e+12>>2];if((b|0)==(((a|0)!=(g|0)?N(g-a>>2,341)-1|0:0)|0)){xa(e+8|0);b=H[e+24>>2]+H[e+28>>2]|0;g=H[e+12>>2]}else{g=a}a=(b>>>0)/341|0;a=H[g+(a<<2)>>2]+N(b-N(a,341)|0,12)|0;H[a+8>>2]=k;H[a+4>>2]=j;H[a>>2]=d;a=H[e+28>>2]+1|0;H[e+28>>2]=a;break f}p=0;if(!n){break g}while(1){if(H[f+12>>2]){w=H[f+548>>2];i=H[k>>2];t=H[f+604>>2];h=H[f+616>>2];a=0;while(1){j=h+(a<<2)|0;H[(H[j>>2]<<2)+t>>2]=0;g=H[f>>2];d=H[j>>2]<<2;b=H[d+i>>2];q:{if((g|0)==(b|0)){break q}q=d+t|0;r=g-b|0;o=H[f+560>>2];g=32-o|0;if((r|0)<=(g|0)){d=H[f+556>>2];if((d|0)==(w|0)){d=0;break e}H[q>>2]=H[d>>2]<>>32-r;b=H[f+560>>2]+r|0;H[f+560>>2]=b;if((b|0)!=32){break q}H[f+560>>2]=0;H[f+556>>2]=d+4;break q}l=H[f+556>>2];b=l+4|0;if((b|0)==(w|0)){d=0;break e}d=H[l>>2];H[f+556>>2]=b;b=r-g|0;H[f+560>>2]=b;H[q>>2]=H[l+4>>2]>>>32-b|d<>>32-r}d=H[j>>2]<<2;b=d+t|0;H[b>>2]=H[b>>2]|H[d+H[s>>2]>>2];a=a+1|0;if(a>>>0>2]){continue}break}}j=0;a=H[c+16>>2];r:{if((a|0)==H[c+20>>2]){break r}while(1){d=H[c+28>>2];l=N(j,20)+a|0;i=H[l>>2];if(!I[i+84|0]){d=H[H[i+68>>2]+(d<<2)>>2]}if(K[i+80>>2]<=d>>>0){break r}h=H[f+604>>2]+(H[l+4>>2]<<2)|0;g=H[l+12>>2];b=h;s:{if(g>>>0>3){break s}a=0;b=H[c+12>>2];if(!H[l+16>>2]){break s}while(1){b=qa(b,h+(a<<2)|0,g);g=H[l+12>>2];b=b+g|0;a=a+1|0;if(a>>>0>2]){continue}break}b=H[c+12>>2]}a=H[i+40>>2];qa(H[H[i>>2]>>2]+N(a,d)|0,b,a);j=j+1|0;a=H[c+16>>2];if(j>>>0<(H[c+20>>2]-a|0)/20>>>0){continue}break}}H[c+28>>2]=H[c+28>>2]+1;H[f+8>>2]=H[f+8>>2]+1;p=p+1|0;if((p|0)!=(n|0)){continue}break}}a=H[e+28>>2]}if(a){continue}break}d=1}H[e+28>>2]=0;j=H[e+16>>2];a=H[e+12>>2];b=j-a|0;if(b>>>0>=9){while(1){oa(H[a>>2]);a=H[e+12>>2]+4|0;H[e+12>>2]=a;j=H[e+16>>2];b=j-a|0;if(b>>>0>8){continue}break}}g=170;t:{switch((b>>>2|0)-1|0){case 1:g=341;case 0:H[e+24>>2]=g;break;default:break t}}u:{if((a|0)==(j|0)){break u}while(1){oa(H[a>>2]);a=a+4|0;if((j|0)!=(a|0)){continue}break}b=H[e+16>>2];a=H[e+12>>2];if((b|0)==(a|0)){break u}H[e+16>>2]=b+((a-b|0)+3&-4)}a=H[e+8>>2];if(a){oa(a)}ca=e+32|0;break b}sa();v()}sa();v()}g=d}return g}function yd(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0;j=H[b+8>>2];e=H[b+12>>2];g=H[b+20>>2];h=H[b+16>>2];l=h+4|0;g=l>>>0<4?g+1|0:g;a:{if(j>>>0>>0&(e|0)<=(g|0)|(e|0)<(g|0)){break a}h=h+H[b>>2]|0;H[a>>2]=I[h|0]|I[h+1|0]<<8|(I[h+2|0]<<16|I[h+3|0]<<24);h=H[b+20>>2];e=h;j=H[b+16>>2];g=j+4|0;h=g>>>0<4?e+1|0:e;H[b+16>>2]=g;H[b+20>>2]=h;if(K[a>>2]>32){break a}k=H[b+8>>2];l=H[b+12>>2];h=e;e=j+8|0;h=e>>>0<8?h+1|0:h;if(e>>>0>k>>>0&(h|0)>=(l|0)|(h|0)>(l|0)){break a}h=H[b>>2]+g|0;g=I[h|0]|I[h+1|0]<<8|(I[h+2|0]<<16|I[h+3|0]<<24);H[a+4>>2]=g;h=H[b+20>>2];e=H[b+16>>2]+4|0;h=e>>>0<4?h+1|0:h;H[b+16>>2]=e;H[b+20>>2]=h;if(!g){return 1}if(d>>>0>>0){break a}H[a+8>>2]=0;if(!ta(a+16|0,b)){break a}if(!ua(a+32|0,b)){break a}if(!ua(a+52|0,b)){break a}if(!ua(a+72|0,b)){break a}r=H[a+4>>2];h=c;b=0;g=0;e=ca-32|0;ca=e;d=a;a=H[a+12>>2];H[e+16>>2]=0;H[e+8>>2]=0;H[e+12>>2]=0;b:{c:{if(a){if(a>>>0>=1073741824){break c}c=a<<2;b=pa(c);H[e+8>>2]=b;g=b+c|0;H[e+16>>2]=g;ra(b,0,c);H[e+12>>2]=g}c=H[d+116>>2];i=H[c>>2];if(i){H[c+4>>2]=i;oa(i);g=H[e+12>>2];b=H[e+8>>2];a=H[d+12>>2]}H[c+4>>2]=g;H[c>>2]=b;H[c+8>>2]=H[e+16>>2];b=0;H[e+16>>2]=0;H[e+8>>2]=0;H[e+12>>2]=0;d:{if(a){if(a>>>0>=1073741824){break d}a=a<<2;f=pa(a);H[e+8>>2]=f;b=a+f|0;H[e+16>>2]=b;ra(f,0,a);H[e+12>>2]=b}a=H[d+128>>2];c=H[a>>2];if(c){H[a+4>>2]=c;oa(c);f=H[e+8>>2];b=H[e+12>>2]}H[a+4>>2]=b;H[a>>2]=f;H[a+8>>2]=H[e+16>>2];H[e+24>>2]=0;H[e+28>>2]=0;H[e+16>>2]=0;H[e+20>>2]=0;H[e+8>>2]=0;H[e+12>>2]=0;xa(e+8|0);a=H[e+24>>2]+H[e+28>>2]|0;b=(a>>>0)/341|0;a=H[H[e+12>>2]+(b<<2)>>2]+N(a-N(b,341)|0,12)|0;H[a+4>>2]=0;H[a+8>>2]=0;H[a>>2]=r;c=1;a=H[e+28>>2]+1|0;H[e+28>>2]=a;e:{if(!a){break e}t=d+16|0;while(1){b=H[e+12>>2];f=H[e+24>>2];l=a-1|0;c=f+l|0;i=(c>>>0)/341|0;c=H[b+(i<<2)>>2]+N(c-N(i,341)|0,12)|0;g=H[c+8>>2];i=H[c+4>>2];j=H[c>>2];H[e+28>>2]=l;c=H[e+16>>2];if((((b|0)!=(c|0)?N(c-b>>2,341)-1|0:0)-(a+f|0)|0)+1>>>0>=682){oa(H[c-4>>2]);H[e+16>>2]=H[e+16>>2]-4}c=0;if(j>>>0>r>>>0){break e}b=H[d+12>>2];a=(b-1|0)!=(i|0)?i+1|0:0;if(a>>>0>=b>>>0){break e}f=N(g,12);o=f+H[d+128>>2]|0;l=f+H[d+116>>2]|0;i=H[d>>2];k=a<<2;n=H[k+H[o>>2]>>2];f:{if((i|0)==(n|0)){if(!j){break f}o=0;b=H[h+20>>2];g=H[h+16>>2];if((b|0)==(g|0)){a=H[d+8>>2];H[h+28>>2]=j+H[h+28>>2];H[d+8>>2]=a+j;break f}while(1){c=(b|0)==(g|0);a=b;i=0;b=g;g:{if(c){break g}while(1){f=H[h+28>>2];b=a;c=N(i,20)+g|0;k=H[c>>2];if(!I[k+84|0]){f=H[H[k+68>>2]+(f<<2)>>2]}if(K[k+80>>2]<=f>>>0){break g}n=H[l>>2]+(H[c+4>>2]<<2)|0;g=H[c+12>>2];b=n;h:{if(g>>>0>3){break h}a=0;b=H[h+12>>2];if(!H[c+16>>2]){break h}while(1){b=qa(b,n+(a<<2)|0,g);g=H[c+12>>2];b=b+g|0;a=a+1|0;if(a>>>0>2]){continue}break}b=H[h+12>>2]}a=H[k+40>>2];qa(H[H[k>>2]>>2]+N(a,f)|0,b,a);i=i+1|0;a=H[h+20>>2];b=a;g=H[h+16>>2];if(i>>>0<(b-g|0)/20>>>0){continue}break}}H[h+28>>2]=H[h+28>>2]+1;H[d+8>>2]=H[d+8>>2]+1;o=o+1|0;if((j|0)!=(o|0)){continue}break}break f}i:{j:{k:{l:{if(j>>>0<=2){c=H[d+104>>2];H[c>>2]=a;f=1;b=H[d+12>>2];if(b>>>0>1){break l}break i}if(K[d+8>>2]>K[d+4>>2]){break e}b=H[d+116>>2];m=g+1|0;o=N(m,12);q=b+o|0;if((q|0)!=(l|0)){Aa(q,H[l>>2],H[l+4>>2]);b=H[d+116>>2]}b=k+H[b+o>>2]|0;H[b>>2]=H[b>>2]+(1<>2]=0;pc(t,Q(j)^31,e+4|0);b=j>>>1|0;i=H[e+4>>2];if(b>>>0>>0){break e}b=b-i|0;c=j-b|0;m:{if((c|0)==(b|0)){c=b;break m}i=H[d+84>>2];if((i|0)==H[d+76>>2]){break k}j=H[i>>2];l=H[d+88>>2];n=l+1|0;H[d+88>>2]=n;j=j&-2147483648>>>l;n:{if((n|0)==32){H[d+88>>2]=0;H[d+84>>2]=i+4;if(j){break n}break k}if(!j){break k}}}i=c;c=b;break j}while(1){a=(b-1|0)!=(a|0)?a+1|0:0;H[c+(f<<2)>>2]=a;b=H[d+12>>2];f=f+1|0;if(b>>>0>f>>>0){continue}break}break i}i=b}b=H[d+128>>2];j=b+f|0;f=H[j>>2];l=f+k|0;H[l>>2]=H[l>>2]+1;Aa(b+o|0,f,H[j+4>>2]);if(c){b=H[e+28>>2]+H[e+24>>2]|0;j=H[e+16>>2];f=H[e+12>>2];if((b|0)==(((f|0)!=(j|0)?N(j-f>>2,341)-1|0:0)|0)){xa(e+8|0);f=H[e+12>>2];b=H[e+24>>2]+H[e+28>>2]|0}j=(b>>>0)/341|0;b=H[(j<<2)+f>>2]+N(b-N(j,341)|0,12)|0;H[b+8>>2]=g;H[b+4>>2]=a;H[b>>2]=c;H[e+28>>2]=H[e+28>>2]+1}if(!i){break f}b=H[e+28>>2]+H[e+24>>2]|0;c=H[e+16>>2];f=H[e+12>>2];if((b|0)==(((c|0)!=(f|0)?N(c-f>>2,341)-1|0:0)|0)){xa(e+8|0);f=H[e+12>>2];b=H[e+24>>2]+H[e+28>>2]|0}c=(b>>>0)/341|0;b=H[(c<<2)+f>>2]+N(b-N(c,341)|0,12)|0;H[b+8>>2]=m;H[b+4>>2]=a;H[b>>2]=i;H[e+28>>2]=H[e+28>>2]+1;break f}n=0;if(!j){break f}while(1){if(H[d+12>>2]){i=H[d+36>>2];q=H[o>>2];c=H[d+92>>2];u=H[d+104>>2];a=0;while(1){g=(a<<2)+u|0;H[c+(H[g>>2]<<2)>>2]=0;b=H[d>>2];f=H[g>>2]<<2;k=H[f+q>>2];o:{if((b|0)==(k|0)){break o}f=c+f|0;b=b-k|0;k=H[d+48>>2];p=32-k|0;if((b|0)<=(p|0)){m=H[d+44>>2];if((m|0)==(i|0)){c=0;break e}H[f>>2]=H[m>>2]<>>32-b;b=b+H[d+48>>2]|0;H[d+48>>2]=b;if((b|0)!=32){break o}H[d+48>>2]=0;H[d+44>>2]=m+4;break o}m=H[d+44>>2];s=m+4|0;if((i|0)==(s|0)){c=0;break e}w=H[m>>2];H[d+44>>2]=s;p=b-p|0;H[d+48>>2]=p;H[f>>2]=H[m+4>>2]>>>32-p|w<>>32-b}b=H[g>>2]<<2;g=b+c|0;H[g>>2]=H[g>>2]|H[b+H[l>>2]>>2];a=a+1|0;if(a>>>0>2]){continue}break}}i=0;a=H[h+16>>2];p:{if((a|0)==H[h+20>>2]){break p}while(1){f=H[h+28>>2];c=N(i,20)+a|0;k=H[c>>2];if(!I[k+84|0]){f=H[H[k+68>>2]+(f<<2)>>2]}if(K[k+80>>2]<=f>>>0){break p}m=H[d+92>>2]+(H[c+4>>2]<<2)|0;g=H[c+12>>2];b=m;q:{if(g>>>0>3){break q}a=0;b=H[h+12>>2];if(!H[c+16>>2]){break q}while(1){b=qa(b,m+(a<<2)|0,g);g=H[c+12>>2];b=b+g|0;a=a+1|0;if(a>>>0>2]){continue}break}b=H[h+12>>2]}a=H[k+40>>2];qa(H[H[k>>2]>>2]+N(a,f)|0,b,a);i=i+1|0;a=H[h+16>>2];if(i>>>0<(H[h+20>>2]-a|0)/20>>>0){continue}break}}H[h+28>>2]=H[h+28>>2]+1;H[d+8>>2]=H[d+8>>2]+1;n=n+1|0;if((j|0)!=(n|0)){continue}break}}a=H[e+28>>2];if(a){continue}break}c=1}H[e+28>>2]=0;f=H[e+16>>2];a=H[e+12>>2];b=f-a|0;if(b>>>0>=9){while(1){oa(H[a>>2]);a=H[e+12>>2]+4|0;H[e+12>>2]=a;f=H[e+16>>2];b=f-a|0;if(b>>>0>8){continue}break}}g=170;r:{switch((b>>>2|0)-1|0){case 1:g=341;case 0:H[e+24>>2]=g;break;default:break r}}s:{if((a|0)==(f|0)){break s}while(1){oa(H[a>>2]);a=a+4|0;if((f|0)!=(a|0)){continue}break}a=H[e+16>>2];b=H[e+12>>2];if((a|0)==(b|0)){break s}H[e+16>>2]=a+((b-a|0)+3&-4)}a=H[e+8>>2];if(a){oa(a)}ca=e+32|0;break b}sa();v()}sa();v()}i=c}return i}function xd(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0;i=H[b+8>>2];k=H[b+12>>2];n=H[b+20>>2];h=H[b+16>>2];f=h+4|0;n=f>>>0<4?n+1|0:n;a:{if((k|0)<=(n|0)&f>>>0>i>>>0|(k|0)<(n|0)){break a}h=h+H[b>>2]|0;H[a>>2]=I[h|0]|I[h+1|0]<<8|(I[h+2|0]<<16|I[h+3|0]<<24);h=H[b+20>>2];i=h;f=H[b+16>>2];h=f+4|0;k=h>>>0<4?i+1|0:i;H[b+16>>2]=h;H[b+20>>2]=k;if(K[a>>2]>32){break a}k=H[b+8>>2];n=H[b+12>>2];f=f+8|0;i=f>>>0<8?i+1|0:i;if(f>>>0>k>>>0&(i|0)>=(n|0)|(i|0)>(n|0)){break a}h=H[b>>2]+h|0;f=I[h|0]|I[h+1|0]<<8|(I[h+2|0]<<16|I[h+3|0]<<24);H[a+4>>2]=f;i=H[b+20>>2];h=H[b+16>>2]+4|0;i=h>>>0<4?i+1|0:i;H[b+16>>2]=h;H[b+20>>2]=i;if(!f){return 1}if(d>>>0>>0){break a}H[a+8>>2]=0;if(!ta(a+16|0,b)){break a}if(!ua(a+32|0,b)){break a}if(!ua(a+52|0,b)){break a}if(!ua(a+72|0,b)){break a}u=H[a+4>>2];h=c;b=0;c=0;e=ca-32|0;ca=e;f=a;a=H[a+12>>2];H[e+16>>2]=0;H[e+8>>2]=0;H[e+12>>2]=0;b:{c:{if(a){if(a>>>0>=1073741824){break c}d=a<<2;b=pa(d);H[e+8>>2]=b;c=b+d|0;H[e+16>>2]=c;ra(b,0,d);H[e+12>>2]=c}j=H[f+116>>2];d=H[j>>2];if(d){H[j+4>>2]=d;oa(d);c=H[e+12>>2];b=H[e+8>>2];a=H[f+12>>2]}H[j+4>>2]=c;H[j>>2]=b;H[j+8>>2]=H[e+16>>2];b=0;H[e+16>>2]=0;H[e+8>>2]=0;H[e+12>>2]=0;d:{if(a){if(a>>>0>=1073741824){break d}a=a<<2;g=pa(a);H[e+8>>2]=g;b=a+g|0;H[e+16>>2]=b;ra(g,0,a);H[e+12>>2]=b}c=H[f+128>>2];a=H[c>>2];if(a){H[c+4>>2]=a;oa(a);g=H[e+8>>2];b=H[e+12>>2]}H[c+4>>2]=b;H[c>>2]=g;H[c+8>>2]=H[e+16>>2];H[e+24>>2]=0;H[e+28>>2]=0;H[e+16>>2]=0;H[e+20>>2]=0;H[e+8>>2]=0;H[e+12>>2]=0;xa(e+8|0);b=H[e+24>>2]+H[e+28>>2]|0;a=(b>>>0)/341|0;a=H[H[e+12>>2]+(a<<2)>>2]+N(b-N(a,341)|0,12)|0;H[a+4>>2]=0;H[a+8>>2]=0;H[a>>2]=u;d=1;a=H[e+28>>2]+1|0;H[e+28>>2]=a;e:{if(!a){break e}n=f+16|0;while(1){i=H[e+12>>2];j=H[e+24>>2];d=a-1|0;c=j+d|0;b=(c>>>0)/341|0;b=H[i+(b<<2)>>2]+N(c-N(b,341)|0,12)|0;o=H[b+8>>2];c=H[b+4>>2];m=H[b>>2];H[e+28>>2]=d;b=H[e+16>>2];if((((b|0)!=(i|0)?N(b-i>>2,341)-1|0:0)-(a+j|0)|0)+1>>>0>=682){oa(H[b-4>>2]);H[e+16>>2]=H[e+16>>2]-4}if(m>>>0>u>>>0){d=0;break e}d=0;b=H[f+12>>2];a=(c|0)!=(b-1|0)?c+1|0:0;if(a>>>0>=b>>>0){break e}b=H[f+116>>2];p=N(o,12);r=b+p|0;j=H[f>>2];g=a<<2;k=p+H[f+128>>2]|0;c=H[g+H[k>>2]>>2];f:{if((j|0)==(c|0)){if(!m){break f}b=H[h+20>>2];c=H[h+16>>2];if((b|0)==(c|0)){a=H[f+8>>2];H[h+28>>2]=m+H[h+28>>2];H[f+8>>2]=a+m;break f}while(1){i=(b|0)==(c|0);a=b;j=0;b=c;g:{if(i){break g}while(1){g=H[h+28>>2];b=a;l=N(j,20)+c|0;k=H[l>>2];if(!I[k+84|0]){g=H[H[k+68>>2]+(g<<2)>>2]}if(K[k+80>>2]<=g>>>0){break g}i=H[r>>2]+(H[l+4>>2]<<2)|0;c=H[l+12>>2];b=i;h:{if(c>>>0>3){break h}a=0;b=H[h+12>>2];if(!H[l+16>>2]){break h}while(1){b=qa(b,i+(a<<2)|0,c);c=H[l+12>>2];b=b+c|0;a=a+1|0;if(a>>>0>2]){continue}break}b=H[h+12>>2]}a=H[k+40>>2];qa(H[H[k>>2]>>2]+N(a,g)|0,b,a);j=j+1|0;a=H[h+20>>2];b=a;c=H[h+16>>2];if(j>>>0<(b-c|0)/20>>>0){continue}break}}H[h+28>>2]=H[h+28>>2]+1;H[f+8>>2]=H[f+8>>2]+1;d=d+1|0;if((m|0)!=(d|0)){continue}break}break f}i:{j:{k:{l:{if(m>>>0<=2){c=H[f+104>>2];H[c>>2]=a;g=1;b=H[f+12>>2];if(b>>>0>1){break l}break i}if(K[f+8>>2]>K[f+4>>2]){break e}i=b;b=p+12|0;Aa(i+b|0,H[r>>2],H[r+4>>2]);b=g+H[b+H[f+116>>2]>>2]|0;H[b>>2]=H[b>>2]+(1<>2]=0;pc(n,Q(m)^31,e+4|0);c=m>>>1|0;b=H[e+4>>2];if(c>>>0>>0){break e}l=o+1|0;b=c-b|0;c=m-b|0;m:{if((c|0)==(b|0)){c=b;break m}k=H[f+84>>2];if((k|0)==H[f+76>>2]){break k}i=H[k>>2];j=H[f+88>>2];d=j+1|0;H[f+88>>2]=d;j=i&-2147483648>>>j;n:{if((d|0)==32){H[f+88>>2]=0;H[f+84>>2]=k+4;if(j){break n}break k}if(!j){break k}}}j=c;c=b;break j}while(1){a=(b-1|0)!=(a|0)?a+1|0:0;H[c+(g<<2)>>2]=a;b=H[f+12>>2];g=g+1|0;if(b>>>0>g>>>0){continue}break}break i}j=b}k=H[f+128>>2];i=k+p|0;d=H[i>>2];b=d+g|0;H[b>>2]=H[b>>2]+1;Aa(k+N(l,12)|0,d,H[i+4>>2]);if(c){b=H[e+28>>2]+H[e+24>>2]|0;d=H[e+16>>2];g=H[e+12>>2];if((b|0)==(((d|0)!=(g|0)?N(d-g>>2,341)-1|0:0)|0)){xa(e+8|0);g=H[e+12>>2];b=H[e+24>>2]+H[e+28>>2]|0}d=(b>>>0)/341|0;b=H[(d<<2)+g>>2]+N(b-N(d,341)|0,12)|0;H[b+8>>2]=o;H[b+4>>2]=a;H[b>>2]=c;H[e+28>>2]=H[e+28>>2]+1}if(!j){break f}b=H[e+28>>2]+H[e+24>>2]|0;c=H[e+16>>2];g=H[e+12>>2];if((b|0)==(((c|0)!=(g|0)?N(c-g>>2,341)-1|0:0)|0)){xa(e+8|0);g=H[e+12>>2];b=H[e+24>>2]+H[e+28>>2]|0}c=(b>>>0)/341|0;b=H[(c<<2)+g>>2]+N(b-N(c,341)|0,12)|0;H[b+8>>2]=l;H[b+4>>2]=a;H[b>>2]=j;H[e+28>>2]=H[e+28>>2]+1;break f}s=0;if(!m){break f}while(1){if(H[f+12>>2]){w=H[f+36>>2];i=H[k>>2];t=H[f+92>>2];j=H[f+104>>2];a=0;while(1){o=(a<<2)+j|0;H[t+(H[o>>2]<<2)>>2]=0;d=H[f>>2];c=H[o>>2]<<2;b=H[c+i>>2];o:{if((d|0)==(b|0)){break o}p=c+t|0;q=d-b|0;g=H[f+48>>2];d=32-g|0;if((q|0)<=(d|0)){c=H[f+44>>2];if((c|0)==(w|0)){d=0;break e}H[p>>2]=H[c>>2]<>>32-q;b=q+H[f+48>>2]|0;H[f+48>>2]=b;if((b|0)!=32){break o}H[f+48>>2]=0;H[f+44>>2]=c+4;break o}l=H[f+44>>2];b=l+4|0;if((w|0)==(b|0)){d=0;break e}c=H[l>>2];H[f+44>>2]=b;b=q-d|0;H[f+48>>2]=b;H[p>>2]=H[l+4>>2]>>>32-b|c<>>32-q}c=H[o>>2]<<2;b=c+t|0;H[b>>2]=H[b>>2]|H[c+H[r>>2]>>2];a=a+1|0;if(a>>>0>2]){continue}break}}j=0;a=H[h+16>>2];p:{if((a|0)==H[h+20>>2]){break p}while(1){g=H[h+28>>2];l=N(j,20)+a|0;i=H[l>>2];if(!I[i+84|0]){g=H[H[i+68>>2]+(g<<2)>>2]}if(K[i+80>>2]<=g>>>0){break p}d=H[f+92>>2]+(H[l+4>>2]<<2)|0;c=H[l+12>>2];b=d;q:{if(c>>>0>3){break q}a=0;b=H[h+12>>2];if(!H[l+16>>2]){break q}while(1){b=qa(b,d+(a<<2)|0,c);c=H[l+12>>2];b=b+c|0;a=a+1|0;if(a>>>0>2]){continue}break}b=H[h+12>>2]}a=H[i+40>>2];qa(H[H[i>>2]>>2]+N(a,g)|0,b,a);j=j+1|0;a=H[h+16>>2];if(j>>>0<(H[h+20>>2]-a|0)/20>>>0){continue}break}}H[h+28>>2]=H[h+28>>2]+1;H[f+8>>2]=H[f+8>>2]+1;s=s+1|0;if((m|0)!=(s|0)){continue}break}}a=H[e+28>>2];if(a){continue}break}d=1}H[e+28>>2]=0;g=H[e+16>>2];a=H[e+12>>2];b=g-a|0;if(b>>>0>=9){while(1){oa(H[a>>2]);a=H[e+12>>2]+4|0;H[e+12>>2]=a;g=H[e+16>>2];b=g-a|0;if(b>>>0>8){continue}break}}c=170;r:{switch((b>>>2|0)-1|0){case 1:c=341;case 0:H[e+24>>2]=c;break;default:break r}}s:{if((a|0)==(g|0)){break s}while(1){oa(H[a>>2]);a=a+4|0;if((g|0)!=(a|0)){continue}break}b=H[e+16>>2];a=H[e+12>>2];if((b|0)==(a|0)){break s}H[e+16>>2]=b+((a-b|0)+3&-4)}a=H[e+8>>2];if(a){oa(a)}ca=e+32|0;j=d;break b}sa();v()}sa();v()}}return j}function $c(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0;h=ca-32|0;ca=h;g=H[H[a+4>>2]+44>>2];c=H[a+8>>2];d=H[c>>2];c=H[c+4>>2];H[h+24>>2]=0;H[h+16>>2]=0;H[h+20>>2]=0;d=(c-d>>2>>>0)/3|0;c=H[g+96>>2];f=(H[g+100>>2]-c|0)/12|0;a:{if(d>>>0>f>>>0){e=d-f|0;i=H[g+104>>2];c=H[g+100>>2];if(e>>>0<=(i-c|0)/12>>>0){b:{if(!e){break b}d=c;f=N(e,12)-12|0;i=((f>>>0)/12|0)+1&3;if(i){while(1){l=H[h+20>>2];H[d>>2]=H[h+16>>2];H[d+4>>2]=l;H[d+8>>2]=H[h+24>>2];d=d+12|0;j=j+1|0;if((i|0)!=(j|0)){continue}break}}c=N(e,12)+c|0;if(f>>>0<36){break b}while(1){f=H[h+20>>2];H[d>>2]=H[h+16>>2];H[d+4>>2]=f;H[d+8>>2]=H[h+24>>2];H[d+20>>2]=H[h+24>>2];f=H[h+20>>2];H[d+12>>2]=H[h+16>>2];H[d+16>>2]=f;H[d+32>>2]=H[h+24>>2];f=H[h+20>>2];H[d+24>>2]=H[h+16>>2];H[d+28>>2]=f;f=H[h+20>>2];H[d+36>>2]=H[h+16>>2];H[d+40>>2]=f;H[d+44>>2]=H[h+24>>2];d=d+48|0;if((d|0)!=(c|0)){continue}break}}H[g+100>>2]=c;break a}c:{f=H[g+96>>2];n=(c-f|0)/12|0;d=n+e|0;if(d>>>0<357913942){f=(i-f|0)/12|0;i=f<<1;i=f>>>0>=178956970?357913941:d>>>0>>0?i:d;if(i){if(i>>>0>=357913942){break c}l=pa(N(i,12))}f=N(n,12)+l|0;d=f;e=N(e,12);n=e-12|0;q=((n>>>0)/12|0)+1&3;if(q){while(1){r=H[h+20>>2];H[d>>2]=H[h+16>>2];H[d+4>>2]=r;H[d+8>>2]=H[h+24>>2];d=d+12|0;j=j+1|0;if((q|0)!=(j|0)){continue}break}}e=e+f|0;if(n>>>0>=36){while(1){j=H[h+20>>2];H[d>>2]=H[h+16>>2];H[d+4>>2]=j;H[d+8>>2]=H[h+24>>2];H[d+20>>2]=H[h+24>>2];j=H[h+20>>2];H[d+12>>2]=H[h+16>>2];H[d+16>>2]=j;H[d+32>>2]=H[h+24>>2];j=H[h+20>>2];H[d+24>>2]=H[h+16>>2];H[d+28>>2]=j;j=H[h+20>>2];H[d+36>>2]=H[h+16>>2];H[d+40>>2]=j;H[d+44>>2]=H[h+24>>2];d=d+48|0;if((e|0)!=(d|0)){continue}break}}j=H[g+96>>2];if((j|0)!=(c|0)){while(1){c=c-12|0;n=H[c+4>>2];f=f-12|0;d=f;H[d>>2]=H[c>>2];H[d+4>>2]=n;H[d+8>>2]=H[c+8>>2];if((c|0)!=(j|0)){continue}break}c=H[g+96>>2]}H[g+104>>2]=N(i,12)+l;H[g+100>>2]=e;H[g+96>>2]=f;if(c){oa(c)}break a}sa();v()}wa();v()}if(d>>>0>=f>>>0){break a}H[g+100>>2]=c+N(d,12)}d:{if(H[a+216>>2]==H[a+220>>2]){j=H[a+4>>2];c=H[j+44>>2];d=H[c+100>>2];f=H[c+96>>2];if((d|0)!=(f|0)){c=(d-f|0)/12|0;o=c>>>0<=1?1:c;c=0;while(1){d=H[a+8>>2];i=f+N(c,12)|0;g=N(c,3);e:{f:{if((g|0)==-1){e=H[(H[d>>2]+(g<<2)|0)+4>>2];k=-1;g=1;break f}e=-1;k=H[H[d>>2]+(g<<2)>>2];l=g+1|0;if((l|0)==-1){g=0;break f}e=H[H[d>>2]+(l<<2)>>2];g=g+2|0;m=-1;if((g|0)==-1){break e}}m=H[H[d>>2]+(g<<2)>>2]}H[i+8>>2]=m;H[i+4>>2]=e;H[i>>2]=k;c=c+1|0;if((o|0)!=(c|0)){continue}break}}H[H[j+4>>2]+80>>2]=b;c=1;break d}d=0;H[h+24>>2]=0;H[h+16>>2]=0;H[h+20>>2]=0;l=H[a+8>>2];c=H[l>>2];g=H[l+4>>2];H[h+8>>2]=0;H[h>>2]=0;H[h+4>>2]=0;b=0;g:{h:{i:{j:{k:{l:{if((c|0)!=(g|0)){c=g-c|0;if((c|0)<0){break l}b=pa(c);H[h>>2]=b;H[h+8>>2]=(c&-4)+b;u=h,w=ra(b,0,c)+c|0,H[u+4>>2]=w}c=H[l+24>>2];if((H[l+28>>2]-c|0)<4){break h}f=0;while(1){g=H[(p<<2)+c>>2];m:{if((g|0)==-1){break m}n:{if(H[H[a+120>>2]+(p>>>3&536870908)>>2]>>>p&1){break n}n=H[a+216>>2];c=H[a+220>>2];if((n|0)==(c|0)){break n}e=g+2|0;i=(g>>>0)%3|0;q=i?g-1|0:e;c=(c-n|0)/144|0;r=c>>>0<=1?1:c;j=0;t=(i|0)!=0|(e|0)!=-1;while(1){s=g<<2;i=N(j,144)+n|0;c=H[s+H[H[i+68>>2]>>2]>>2];o:{if(!(H[H[i+16>>2]+(c>>>3&536870908)>>2]>>>c&1)){break o}c=-1;p:{if(!t){break p}e=H[H[l+12>>2]+(q<<2)>>2];c=-1;if((e|0)==-1){break p}c=e-1|0;if((e>>>0)%3|0){break p}c=e+2|0}if((g|0)==(c|0)){break o}e=s;s=H[i+32>>2];i=H[e+s>>2];while(1){e=0;if((c|0)==-1){break g}if((i|0)!=H[s+(c<<2)>>2]){g=c;break n}q:{r:{if((c>>>0)%3|0){e=c-1|0;break r}e=c+2|0;m=-1;if((e|0)==-1){break q}}c=H[H[l+12>>2]+(e<<2)>>2];m=-1;if((c|0)==-1){break q}m=c-1|0;if((c>>>0)%3|0){break q}m=c+2|0}c=m;if((g|0)!=(c|0)){continue}break}}j=j+1|0;if((r|0)!=(j|0)){continue}break}}i=k-f|0;e=i>>2;H[(g<<2)+b>>2]=e;s:{if(k>>>0>>0){H[k>>2]=g;k=k+4|0;H[h+20>>2]=k;break s}c=e+1|0;if(c>>>0>=1073741824){break k}d=o-f|0;k=d>>>1|0;c=d>>>0>=2147483644?1073741823:c>>>0>>0?k:c;if(c){if(c>>>0>=1073741824){break j}d=pa(c<<2)}else{d=0}e=d+(e<<2)|0;H[e>>2]=g;m=c<<2;c=va(d,f,i);o=m+c|0;H[h+24>>2]=o;k=e+4|0;H[h+20>>2]=k;H[h+16>>2]=c;if(f){oa(f);l=H[a+8>>2]}f=c}if((g|0)==-1){break m}t:{if((g>>>0)%3|0){c=g-1|0;break t}c=g+2|0;if((c|0)==-1){break m}}c=H[H[l+12>>2]+(c<<2)>>2];if((c|0)==-1){break m}c=c+((c>>>0)%3|0?-1:2)|0;if((c|0)==-1){break m}e=g;if((c|0)==(g|0)){break m}while(1){i=c;u:{v:{c=H[a+220>>2];j=H[a+216>>2];if((c|0)==(j|0)){break v}c=(c-j|0)/144|0;n=c>>>0<=1?1:c;c=0;while(1){q=H[(j+N(c,144)|0)+32>>2];r=i<<2;if(H[q+r>>2]==H[q+(e<<2)>>2]){c=c+1|0;if((n|0)!=(c|0)){continue}break v}break}j=k-d|0;e=j>>2;H[b+r>>2]=e;if(k>>>0>>0){H[k>>2]=i;k=k+4|0;H[h+20>>2]=k;f=d;break u}c=e+1|0;if(c>>>0>=1073741824){break i}f=o-d|0;k=f>>>1|0;c=f>>>0>=2147483644?1073741823:c>>>0>>0?k:c;if(c){if(c>>>0>=1073741824){break j}f=pa(c<<2)}else{f=0}e=f+(e<<2)|0;H[e>>2]=i;m=c<<2;c=va(f,d,j);o=m+c|0;H[h+24>>2]=o;k=e+4|0;H[h+20>>2]=k;H[h+16>>2]=c;if(!d){d=c;break u}oa(d);l=H[a+8>>2];d=c;break u}H[(i<<2)+b>>2]=H[(e<<2)+b>>2]}if((i|0)==-1){break m}w:{if((i>>>0)%3|0){c=i-1|0;break w}c=i+2|0;if((c|0)==-1){break m}}c=H[H[l+12>>2]+(c<<2)>>2];if((c|0)==-1){break m}c=c+((c>>>0)%3|0?-1:2)|0;if((c|0)==-1){break m}e=i;if((c|0)!=(g|0)){continue}break}}p=p+1|0;c=H[l+24>>2];if((p|0)>2]-c>>2){continue}break}break h}sa();v()}sa();v()}wa();v()}sa();v()}i=H[a+4>>2];a=H[i+44>>2];c=H[a+100>>2];a=H[a+96>>2];x:{if((c|0)==(a|0)){break x}g=(c-a|0)/12|0;f=g>>>0<=1?1:g;l=f&1;c=0;if(g>>>0>=2){j=f&-2;g=0;while(1){e=N(c,12);f=e+b|0;o=H[f>>2];p=H[f+4>>2];e=a+e|0;H[e+8>>2]=H[f+8>>2];H[e>>2]=o;H[e+4>>2]=p;e=N(c|1,12);f=e+b|0;o=H[f>>2];p=H[f+4>>2];e=a+e|0;H[e+8>>2]=H[f+8>>2];H[e>>2]=o;H[e+4>>2]=p;c=c+2|0;g=g+2|0;if((j|0)!=(g|0)){continue}break}}if(!l){break x}g=N(c,12);c=g+b|0;f=H[c>>2];e=H[c+4>>2];a=a+g|0;H[a+8>>2]=H[c+8>>2];H[a>>2]=f;H[a+4>>2]=e}H[H[i+4>>2]+80>>2]=k-d>>2;e=1}c=e;if(b){oa(b)}if(!d){break d}H[h+20>>2]=d;oa(d)}ca=h+32|0;return c}function Fj(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,I=0,J=0,K=0,L=0,M=0,O=0,P=0;g=ca+-64|0;ca=g;H[a+8>>2]=e;y=a+32|0;f=H[y>>2];d=H[a+36>>2]-f>>2;a:{b:{if(d>>>0>>0){ya(y,e-d|0);H[g+56>>2]=0;H[g+60>>2]=0;H[g+48>>2]=0;H[g+52>>2]=0;H[g+40>>2]=0;H[g+44>>2]=0;H[g+32>>2]=0;H[g+36>>2]=0;H[g+24>>2]=0;H[g+28>>2]=0;H[g+16>>2]=0;H[g+20>>2]=0;H[g>>2]=0;break b}if(d>>>0>e>>>0){H[a+36>>2]=f+(e<<2)}H[g+56>>2]=0;H[g+60>>2]=0;H[g+48>>2]=0;H[g+52>>2]=0;H[g+40>>2]=0;H[g+44>>2]=0;H[g+32>>2]=0;H[g+36>>2]=0;H[g+24>>2]=0;H[g+28>>2]=0;H[g+16>>2]=0;H[g+20>>2]=0;H[g>>2]=0;d=0;if(!e){break a}}Pa(g+16|0,e,g);h=H[g+28>>2];d=H[g+32>>2]}H[g>>2]=0;d=d-h>>2;c:{if(d>>>0>=e>>>0){if(d>>>0<=e>>>0){break c}H[g+32>>2]=(e<<2)+h;break c}Pa(g+16|12,e-d|0,g)}H[g>>2]=0;f=H[g+40>>2];d=H[g+44>>2]-f>>2;d:{if(d>>>0>=e>>>0){if(d>>>0<=e>>>0){break d}H[g+44>>2]=f+(e<<2);break d}Pa(g+40|0,e-d|0,g)}H[g>>2]=0;f=H[g+52>>2];d=H[g+56>>2]-f>>2;e:{if(d>>>0>=e>>>0){if(d>>>0<=e>>>0){break e}H[g+56>>2]=f+(e<<2);break e}Pa(g+52|0,e-d|0,g)}f:{if(H[a+8>>2]<=0){break f}i=H[g+16>>2];j=H[a+32>>2];h=0;while(1){d=h<<2;f=H[d+i>>2];m=H[a+16>>2];g:{if((f|0)>(m|0)){H[d+j>>2]=m;break g}d=d+j|0;m=H[a+12>>2];if((m|0)>(f|0)){H[d>>2]=m;break g}H[d>>2]=f}h=h+1|0;d=H[a+8>>2];if((h|0)<(d|0)){continue}break}if((d|0)<=0){break f}d=0;while(1){i=d<<2;f=i+c|0;i=H[b+i>>2]+H[j+i>>2]|0;H[f>>2]=i;h:{if((i|0)>H[a+16>>2]){i=i-H[a+20>>2]|0}else{if((i|0)>=H[a+12>>2]){break h}i=i+H[a+20>>2]|0}H[f>>2]=i}d=d+1|0;if((d|0)>2]){continue}break}}G=H[a+52>>2];t=H[a+48>>2];z=pa(16);d=z;H[d>>2]=0;H[d+4>>2]=0;H[d+8>>2]=0;H[d+12>>2]=0;H[g+8>>2]=0;H[g>>2]=0;H[g+4>>2]=0;i:{if(e){if(e>>>0>=1073741824){break i}d=e<<2;r=pa(d);H[g>>2]=r;H[g+8>>2]=d+r;ra(r,0,d)}A=1;d=H[a+56>>2];B=H[d>>2];d=H[d+4>>2]-B|0;j:{if((d|0)<8){break j}w=d>>2;I=(w|0)<=2?2:w;J=w>>>0<=1?1:w;C=e&-2;D=e&1;K=e&-4;E=e&3;F=e-1|0;L=e<<2;M=e>>>0<4;A=0;m=1;while(1){k:{l:{m:{n:{if((m|0)!=(J|0)){o:{p:{f=H[(m<<2)+B>>2];if((f|0)==-1){break p}k=1;d=f+2|0;j=(f>>>0)%3|0;x=j?f-1|0:d;s=1<>2];O=n+(x>>>3&536870908)|0;i=0;P=(j|0)!=0|(d|0)!=-1;d=f;q:{while(1){r:{if(H[n+(d>>>3&536870908)>>2]>>>d&1){break r}j=H[H[H[t+64>>2]+12>>2]+(d<<2)>>2];if((j|0)==-1){break r}l=H[G>>2];h=H[t+28>>2];p=H[l+(H[h+(j<<2)>>2]<<2)>>2];if((p|0)>=(m|0)){break r}q=j+1|0;q=H[l+(H[h+(((q>>>0)%3|0?q:j-2|0)<<2)>>2]<<2)>>2];if((q|0)>=(m|0)){break r}h=H[l+(H[h+(j+((j>>>0)%3|0?-1:2)<<2)>>2]<<2)>>2];if((h|0)>=(m|0)){break r}s:{if(!e){break s}j=H[(g+16|0)+N(i,12)>>2];l=N(e,h);q=N(e,q);p=N(e,p);h=0;o=0;if(F){while(1){H[j+(h<<2)>>2]=(H[(h+l<<2)+c>>2]+H[(h+q<<2)+c>>2]|0)-H[(h+p<<2)+c>>2];u=h|1;H[j+(u<<2)>>2]=(H[(l+u<<2)+c>>2]+H[(q+u<<2)+c>>2]|0)-H[(p+u<<2)+c>>2];h=h+2|0;o=o+2|0;if((C|0)!=(o|0)){continue}break}}if(!D){break s}H[j+(h<<2)>>2]=(H[(h+l<<2)+c>>2]+H[(h+q<<2)+c>>2]|0)-H[(h+p<<2)+c>>2]}j=4;i=i+1|0;if((i|0)==4){break q}}t:{if(k&1){h=d-2|0;j=d+1|0;d=-1;j=(j>>>0)%3|0?j:h;if((j|0)==-1|H[n+(j>>>3&536870908)>>2]>>>j&1){break t}j=H[H[H[t+64>>2]+12>>2]+(j<<2)>>2];if((j|0)==-1){break t}d=j+1|0;d=(d>>>0)%3|0?d:j-2|0;break t}u:{if((d>>>0)%3|0){h=d-1|0;break u}h=d+2|0;d=-1;if((h|0)==-1){break t}}d=-1;if(H[n+(h>>>3&536870908)>>2]>>>h&1){break t}j=H[H[H[t+64>>2]+12>>2]+(h<<2)>>2];if((j|0)==-1){break t}if((j>>>0)%3|0){d=j-1|0;break t}d=j+2|0}v:{if((d|0)==(f|0)){break v}if((d|0)==-1&k){if(!P|s&H[O>>2]){break v}d=H[H[H[t+64>>2]+12>>2]+(x<<2)>>2];if((d|0)==-1){break v}k=0;d=(d>>>0)%3|0?d-1|0:d+2|0}if((d|0)!=-1){continue}}break}j=i;if((j|0)<=0){break p}}if(e){ra(r,0,L)}d=j-1|0;q=(d<<2)+z|0;d=N(d,12)+a|0;u=d;x=H[d- -64>>2];k=0;d=H[g>>2];f=0;while(1){i=H[q>>2];H[q>>2]=i+1;if(i>>>0>=x>>>0){break j}w:{if(H[H[u+60>>2]+(i>>>3&536870908)>>2]>>>i&1){break w}f=f+1|0;if(!e){break w}n=H[(g+16|0)+N(k,12)>>2];i=0;h=0;p=0;if(!M){while(1){l=h<<2;o=l+d|0;H[o>>2]=H[l+n>>2]+H[o>>2];o=l|4;s=o+d|0;H[s>>2]=H[n+o>>2]+H[s>>2];o=l|8;s=o+d|0;H[s>>2]=H[n+o>>2]+H[s>>2];l=l|12;o=l+d|0;H[o>>2]=H[l+n>>2]+H[o>>2];h=h+4|0;p=p+4|0;if((K|0)!=(p|0)){continue}break}}if(!E){break w}while(1){l=h<<2;p=l+d|0;H[p>>2]=H[l+n>>2]+H[p>>2];h=h+1|0;i=i+1|0;if((E|0)!=(i|0)){continue}break}}k=k+1|0;if((k|0)!=(j|0)){continue}break}i=N(e,m);if(!f){break o}if(!e){break l}h=0;d=0;if(F){break n}break m}i=N(e,m)}if(H[a+8>>2]<=0){break k}k=(N(m-1|0,e)<<2)+c|0;j=H[y>>2];h=0;while(1){d=h<<2;f=H[d+k>>2];n=H[a+16>>2];x:{if((f|0)>(n|0)){H[d+j>>2]=n;break x}d=d+j|0;n=H[a+12>>2];if((n|0)>(f|0)){H[d>>2]=n;break x}H[d>>2]=f}h=h+1|0;f=H[a+8>>2];if((h|0)<(f|0)){continue}break}d=0;if((f|0)<=0){break k}f=i<<2;h=f+c|0;k=b+f|0;while(1){i=d<<2;f=i+h|0;i=H[i+k>>2]+H[j+i>>2]|0;H[f>>2]=i;y:{if((i|0)>H[a+16>>2]){i=i-H[a+20>>2]|0}else{if((i|0)>=H[a+12>>2]){break y}i=i+H[a+20>>2]|0}H[f>>2]=i}d=d+1|0;if((d|0)>2]){continue}break}break k}Ca();v()}while(1){j=h<<2;k=j+r|0;H[k>>2]=H[k>>2]/(f|0);j=(j|4)+r|0;H[j>>2]=H[j>>2]/(f|0);h=h+2|0;d=d+2|0;if((C|0)!=(d|0)){continue}break}}if(!D){break l}d=(h<<2)+r|0;H[d>>2]=H[d>>2]/(f|0)}if(H[a+8>>2]<=0){break k}j=H[y>>2];h=0;while(1){d=h<<2;f=H[d+r>>2];k=H[a+16>>2];z:{if((f|0)>(k|0)){H[d+j>>2]=k;break z}d=d+j|0;k=H[a+12>>2];if((k|0)>(f|0)){H[d>>2]=k;break z}H[d>>2]=f}h=h+1|0;f=H[a+8>>2];if((h|0)<(f|0)){continue}break}d=0;if((f|0)<=0){break k}f=i<<2;h=f+c|0;k=b+f|0;while(1){i=d<<2;f=i+h|0;i=H[i+k>>2]+H[j+i>>2]|0;H[f>>2]=i;A:{if((i|0)>H[a+16>>2]){i=i-H[a+20>>2]|0}else{if((i|0)>=H[a+12>>2]){break A}i=i+H[a+20>>2]|0}H[f>>2]=i}d=d+1|0;if((d|0)>2]){continue}break}}m=m+1|0;A=(w|0)<=(m|0);if((m|0)!=(I|0)){continue}break}}a=H[g>>2];if(a){oa(a)}oa(z);a=H[g+52>>2];if(a){H[g+56>>2]=a;oa(a)}a=H[g+40>>2];if(a){H[g+44>>2]=a;oa(a)}a=H[g+28>>2];if(a){H[g+32>>2]=a;oa(a)}a=H[g+16>>2];if(a){H[g+20>>2]=a;oa(a)}ca=g- -64|0;return A|0}sa();v()}function oj(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,I=0,J=0,K=0,L=0,M=0;h=ca+-64|0;ca=h;H[a+8>>2]=e;x=a+32|0;f=H[x>>2];d=H[a+36>>2]-f>>2;a:{b:{if(d>>>0>>0){ya(x,e-d|0);H[h+56>>2]=0;H[h+60>>2]=0;H[h+48>>2]=0;H[h+52>>2]=0;H[h+40>>2]=0;H[h+44>>2]=0;H[h+32>>2]=0;H[h+36>>2]=0;H[h+24>>2]=0;H[h+28>>2]=0;H[h+16>>2]=0;H[h+20>>2]=0;H[h>>2]=0;break b}if(d>>>0>e>>>0){H[a+36>>2]=f+(e<<2)}H[h+56>>2]=0;H[h+60>>2]=0;H[h+48>>2]=0;H[h+52>>2]=0;H[h+40>>2]=0;H[h+44>>2]=0;H[h+32>>2]=0;H[h+36>>2]=0;H[h+24>>2]=0;H[h+28>>2]=0;H[h+16>>2]=0;H[h+20>>2]=0;H[h>>2]=0;d=0;if(!e){break a}}Pa(h+16|0,e,h);i=H[h+28>>2];d=H[h+32>>2]}H[h>>2]=0;d=d-i>>2;c:{if(d>>>0>=e>>>0){if(d>>>0<=e>>>0){break c}H[h+32>>2]=(e<<2)+i;break c}Pa(h+16|12,e-d|0,h)}H[h>>2]=0;f=H[h+40>>2];d=H[h+44>>2]-f>>2;d:{if(d>>>0>=e>>>0){if(d>>>0<=e>>>0){break d}H[h+44>>2]=f+(e<<2);break d}Pa(h+40|0,e-d|0,h)}H[h>>2]=0;f=H[h+52>>2];d=H[h+56>>2]-f>>2;e:{if(d>>>0>=e>>>0){if(d>>>0<=e>>>0){break e}H[h+56>>2]=f+(e<<2);break e}Pa(h+52|0,e-d|0,h)}f:{if(H[a+8>>2]<=0){break f}g=H[h+16>>2];j=H[a+32>>2];i=0;while(1){d=i<<2;f=H[d+g>>2];m=H[a+16>>2];g:{if((f|0)>(m|0)){H[d+j>>2]=m;break g}d=d+j|0;m=H[a+12>>2];if((m|0)>(f|0)){H[d>>2]=m;break g}H[d>>2]=f}i=i+1|0;d=H[a+8>>2];if((i|0)<(d|0)){continue}break}if((d|0)<=0){break f}d=0;while(1){g=d<<2;f=g+c|0;g=H[b+g>>2]+H[g+j>>2]|0;H[f>>2]=g;h:{if((g|0)>H[a+16>>2]){g=g-H[a+20>>2]|0}else{if((g|0)>=H[a+12>>2]){break h}g=g+H[a+20>>2]|0}H[f>>2]=g}d=d+1|0;if((d|0)>2]){continue}break}}G=H[a+52>>2];A=H[a+48>>2];y=pa(16);d=y;H[d>>2]=0;H[d+4>>2]=0;H[d+8>>2]=0;H[d+12>>2]=0;H[h+8>>2]=0;H[h>>2]=0;H[h+4>>2]=0;i:{if(e){if(e>>>0>=1073741824){break i}d=e<<2;t=pa(d);H[h>>2]=t;H[h+8>>2]=d+t;ra(t,0,d)}z=1;d=H[a+56>>2];B=H[d>>2];d=H[d+4>>2]-B|0;j:{if((d|0)<8){break j}w=d>>2;I=(w|0)<=2?2:w;J=w>>>0<=1?1:w;C=e&-2;D=e&1;K=e&-4;E=e&3;F=e-1|0;L=e<<2;M=e>>>0<4;z=0;m=1;while(1){k:{l:{m:{n:{if((m|0)!=(J|0)){o:{p:{f=H[(m<<2)+B>>2];if((f|0)==-1){break p}n=H[A+12>>2];d=f+2|0;g=(f>>>0)%3|0;q=n+((g?f-1|0:d)<<2)|0;j=0;u=(g|0)!=0|(d|0)!=-1;k=1;d=f;q:{while(1){g=H[n+(d<<2)>>2];r:{if((g|0)==-1){break r}l=-1;p=H[G>>2];r=H[A>>2];i=p+(H[r+(g<<2)>>2]<<2)|0;o=g+1|0;o=(o>>>0)%3|0?o:g-2|0;if((o|0)!=-1){l=H[r+(o<<2)>>2]}o=H[i>>2];s:{t:{if((g>>>0)%3|0){i=g-1|0;break t}i=g+2|0;s=-1;if((i|0)==-1){break s}}s=H[r+(i<<2)>>2]}if((m|0)<=(o|0)){break r}i=H[p+(l<<2)>>2];if((i|0)>=(m|0)){break r}l=H[p+(s<<2)>>2];if((l|0)>=(m|0)){break r}g=H[(h+16|0)+N(j,12)>>2];u:{if(!e){break u}l=N(e,l);r=N(e,i);p=N(e,o);i=0;s=0;if(F){while(1){H[g+(i<<2)>>2]=(H[(i+l<<2)+c>>2]+H[(i+r<<2)+c>>2]|0)-H[(i+p<<2)+c>>2];o=i|1;H[g+(o<<2)>>2]=(H[(l+o<<2)+c>>2]+H[(o+r<<2)+c>>2]|0)-H[(o+p<<2)+c>>2];i=i+2|0;s=s+2|0;if((C|0)!=(s|0)){continue}break}}if(!D){break u}H[g+(i<<2)>>2]=(H[(i+l<<2)+c>>2]+H[(i+r<<2)+c>>2]|0)-H[(i+p<<2)+c>>2]}g=4;j=j+1|0;if((j|0)==4){break q}}v:{if(k&1){i=d+1|0;d=(i>>>0)%3|0?i:d-2|0;g=-1;if((d|0)==-1){break v}d=H[n+(d<<2)>>2];g=-1;if((d|0)==-1){break v}g=d+1|0;g=(g>>>0)%3|0?g:d-2|0;break v}w:{if((d>>>0)%3|0){i=d-1|0;break w}i=d+2|0;g=-1;if((i|0)==-1){break v}}d=H[n+(i<<2)>>2];g=-1;if((d|0)==-1){break v}g=d-1|0;if((d>>>0)%3|0){break v}g=d+2|0}d=g;x:{if((f|0)==(d|0)){break x}if((d|0)==-1&k){if(!u){break x}d=H[q>>2];if((d|0)==-1){break x}k=0;d=(d>>>0)%3|0?d-1|0:d+2|0}if((d|0)!=-1){continue}}break}g=j;if((g|0)<=0){break p}}if(e){ra(t,0,L)}d=g-1|0;r=(d<<2)+y|0;d=N(d,12)+a|0;o=d;s=H[d- -64>>2];k=0;d=H[h>>2];f=0;while(1){j=H[r>>2];H[r>>2]=j+1;if(j>>>0>=s>>>0){break j}y:{if(H[H[o+60>>2]+(j>>>3&536870908)>>2]>>>j&1){break y}f=f+1|0;if(!e){break y}j=H[(h+16|0)+N(k,12)>>2];l=0;i=0;p=0;if(!M){while(1){n=i<<2;q=n+d|0;H[q>>2]=H[j+n>>2]+H[q>>2];q=n|4;u=q+d|0;H[u>>2]=H[j+q>>2]+H[u>>2];q=n|8;u=q+d|0;H[u>>2]=H[j+q>>2]+H[u>>2];n=n|12;q=n+d|0;H[q>>2]=H[j+n>>2]+H[q>>2];i=i+4|0;p=p+4|0;if((K|0)!=(p|0)){continue}break}}if(!E){break y}while(1){n=i<<2;p=n+d|0;H[p>>2]=H[j+n>>2]+H[p>>2];i=i+1|0;l=l+1|0;if((E|0)!=(l|0)){continue}break}}k=k+1|0;if((k|0)!=(g|0)){continue}break}g=N(e,m);if(!f){break o}if(!e){break l}i=0;d=0;if(F){break n}break m}g=N(e,m)}if(H[a+8>>2]<=0){break k}k=(N(m-1|0,e)<<2)+c|0;j=H[x>>2];i=0;while(1){d=i<<2;f=H[d+k>>2];l=H[a+16>>2];z:{if((f|0)>(l|0)){H[d+j>>2]=l;break z}d=d+j|0;l=H[a+12>>2];if((l|0)>(f|0)){H[d>>2]=l;break z}H[d>>2]=f}i=i+1|0;f=H[a+8>>2];if((i|0)<(f|0)){continue}break}d=0;if((f|0)<=0){break k}f=g<<2;i=f+c|0;k=b+f|0;while(1){g=d<<2;f=g+i|0;g=H[g+k>>2]+H[g+j>>2]|0;H[f>>2]=g;A:{if((g|0)>H[a+16>>2]){g=g-H[a+20>>2]|0}else{if((g|0)>=H[a+12>>2]){break A}g=g+H[a+20>>2]|0}H[f>>2]=g}d=d+1|0;if((d|0)>2]){continue}break}break k}Ca();v()}while(1){j=i<<2;k=j+t|0;H[k>>2]=H[k>>2]/(f|0);j=(j|4)+t|0;H[j>>2]=H[j>>2]/(f|0);i=i+2|0;d=d+2|0;if((C|0)!=(d|0)){continue}break}}if(!D){break l}d=(i<<2)+t|0;H[d>>2]=H[d>>2]/(f|0)}if(H[a+8>>2]<=0){break k}j=H[x>>2];i=0;while(1){d=i<<2;f=H[d+t>>2];k=H[a+16>>2];B:{if((f|0)>(k|0)){H[d+j>>2]=k;break B}d=d+j|0;k=H[a+12>>2];if((k|0)>(f|0)){H[d>>2]=k;break B}H[d>>2]=f}i=i+1|0;f=H[a+8>>2];if((i|0)<(f|0)){continue}break}d=0;if((f|0)<=0){break k}f=g<<2;i=f+c|0;k=b+f|0;while(1){g=d<<2;f=g+i|0;g=H[g+k>>2]+H[g+j>>2]|0;H[f>>2]=g;C:{if((g|0)>H[a+16>>2]){g=g-H[a+20>>2]|0}else{if((g|0)>=H[a+12>>2]){break C}g=g+H[a+20>>2]|0}H[f>>2]=g}d=d+1|0;if((d|0)>2]){continue}break}}m=m+1|0;z=(w|0)<=(m|0);if((m|0)!=(I|0)){continue}break}}a=H[h>>2];if(a){oa(a)}oa(y);a=H[h+52>>2];if(a){H[h+56>>2]=a;oa(a)}a=H[h+40>>2];if(a){H[h+44>>2]=a;oa(a)}a=H[h+28>>2];if(a){H[h+32>>2]=a;oa(a)}a=H[h+16>>2];if(a){H[h+20>>2]=a;oa(a)}ca=h- -64|0;return z|0}sa();v()}function Od(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0,z=0,A=0,B=0;i=ca-80|0;ca=i;H[i+76>>2]=b;y=i+55|0;r=i+56|0;a:{b:{c:{d:{e:while(1){h=b;if((o^2147483647)<(f|0)){break d}o=f+o|0;f:{g:{h:{f=h;g=I[f|0];if(g){while(1){i:{b=g&255;j:{if(!b){b=f;break j}if((b|0)!=37){break i}g=f;while(1){if(I[g+1|0]!=37){b=g;break j}f=f+1|0;j=I[g+2|0];b=g+2|0;g=b;if((j|0)==37){continue}break}}f=f-h|0;x=o^2147483647;if((f|0)>(x|0)){break d}if(a){Ab(a,h,f)}if(f){continue e}H[i+76>>2]=b;f=b+1|0;p=-1;if(!(I[b+2|0]!=36|F[b+1|0]-48>>>0>=10)){p=F[b+1|0]-48|0;s=1;f=b+3|0}H[i+76>>2]=f;n=0;g=F[f|0];b=g-32|0;k:{if(b>>>0>31){k=f;break k}k=f;b=1<>2]=k;n=b|n;g=F[f+1|0];b=g-32|0;if(b>>>0>=32){break k}f=k;b=1<>>0>=10)){H[((F[k+1|0]<<2)+e|0)-192>>2]=10;g=k+3|0;s=1;b=H[((F[k+1|0]<<3)+d|0)-384>>2];break m}if(s){break h}g=k+1|0;if(!a){H[i+76>>2]=g;s=0;q=0;break l}b=H[c>>2];H[c>>2]=b+4;s=0;b=H[b>>2]}H[i+76>>2]=g;q=b;if((b|0)>=0){break l}q=0-q|0;n=n|8192;break l}q=Nd(i+76|0);if((q|0)<0){break d}g=H[i+76>>2]}f=0;m=-1;n:{if(I[g|0]!=46){b=g;u=0;break n}if(I[g+1|0]==42){o:{if(!(I[g+3|0]!=36|F[g+2|0]-48>>>0>=10)){H[((F[g+2|0]<<2)+e|0)-192>>2]=10;b=g+4|0;m=H[((F[g+2|0]<<3)+d|0)-384>>2];break o}if(s){break h}b=g+2|0;m=0;if(!a){break o}j=H[c>>2];H[c>>2]=j+4;m=H[j>>2]}H[i+76>>2]=b;u=(m^-1)>>>31|0;break n}H[i+76>>2]=g+1;m=Nd(i+76|0);b=H[i+76>>2];u=1}while(1){g=f;k=28;l=b;f=F[b|0];if(f-123>>>0<4294967238){break c}b=l+1|0;f=I[(f+N(g,58)|0)+13711|0];if(f-1>>>0<8){continue}break}H[i+76>>2]=b;p:{q:{if((f|0)!=27){if(!f){break c}if((p|0)>=0){H[(p<<2)+e>>2]=f;j=(p<<3)+d|0;f=H[j+4>>2];H[i+64>>2]=H[j>>2];H[i+68>>2]=f;break q}if(!a){break f}Md(i- -64|0,f,c);break p}if((p|0)>=0){break c}}f=0;if(!a){continue e}}j=n&-65537;n=n&8192?j:n;p=0;t=1132;k=r;r:{s:{t:{u:{v:{w:{x:{y:{z:{A:{B:{C:{D:{E:{F:{G:{f=F[l|0];f=g?(f&15)==3?f&-33:f:f;switch(f-88|0){case 11:break r;case 9:case 13:case 14:case 15:break s;case 27:break x;case 12:case 17:break A;case 23:break B;case 0:case 32:break C;case 24:break D;case 22:break E;case 29:break F;case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 10:case 16:case 18:case 19:case 20:case 21:case 25:case 26:case 28:case 30:case 31:break g;default:break G}}H:{switch(f-65|0){case 0:case 4:case 5:case 6:break s;case 2:break v;case 1:case 3:break g;default:break H}}if((f|0)==83){break w}break g}l=H[i+64>>2];j=H[i+68>>2];t=1132;break z}f=0;I:{switch(g&255){case 0:H[H[i+64>>2]>>2]=o;continue e;case 1:H[H[i+64>>2]>>2]=o;continue e;case 2:h=H[i+64>>2];H[h>>2]=o;H[h+4>>2]=o>>31;continue e;case 3:G[H[i+64>>2]>>1]=o;continue e;case 4:F[H[i+64>>2]]=o;continue e;case 6:H[H[i+64>>2]>>2]=o;continue e;case 7:break I;default:continue e}}h=H[i+64>>2];H[h>>2]=o;H[h+4>>2]=o>>31;continue e}m=m>>>0<=8?8:m;n=n|8;f=120}h=r;l=H[i+64>>2];j=H[i+68>>2];if(l|j){z=f&32;while(1){h=h-1|0;F[h|0]=z|I[(l&15)+14240|0];w=!j&l>>>0>15|(j|0)!=0;g=j;j=g>>>4|0;l=(g&15)<<28|l>>>4;if(w){continue}break}}if(!(H[i+64>>2]|H[i+68>>2])|!(n&8)){break y}t=(f>>>4|0)+1132|0;p=2;break y}f=r;h=H[i+68>>2];j=h;l=H[i+64>>2];if(h|l){while(1){f=f-1|0;F[f|0]=l&7|48;g=!j&l>>>0>7|(j|0)!=0;h=j;j=h>>>3|0;l=(h&7)<<29|l>>>3;if(g){continue}break}}h=f;if(!(n&8)){break y}f=r-h|0;m=(f|0)<(m|0)?m:f+1|0;break y}l=H[i+64>>2];h=H[i+68>>2];j=h;if((h|0)<0){f=0-(((l|0)!=0)+j|0)|0;j=f;l=0-l|0;H[i+64>>2]=l;H[i+68>>2]=f;p=1;t=1132;break z}if(n&2048){p=1;t=1133;break z}p=n&1;t=p?1134:1132}g=r;if(j){while(1){g=g-1|0;f=j;w=Tj(l,f,10,0);h=da;A=g,B=l-Rj(w,h,10,0)|48,F[A|0]=B;l=w;j=h;if(f>>>0>9){continue}break}}h=l;if(h){while(1){g=g-1|0;f=(h>>>0)/10|0;F[g|0]=h-N(f,10)|48;j=h>>>0>9;h=f;if(j){continue}break}}h=g}if((m|0)<0?u:0){break d}n=u?n&-65537:n;f=H[i+64>>2];j=H[i+68>>2];if(!(m|(f|j)!=0)){h=r;m=0;break g}f=!(f|j)+(r-h|0)|0;m=(f|0)<(m|0)?m:f;break g}g=m>>>0>=2147483647?2147483647:m;k=g;n=(g|0)!=0;h=H[i+64>>2];h=h?h:1614;f=h;J:{K:{L:{M:{if(!(f&3)|!g){break M}while(1){if(!I[f|0]){break L}k=k-1|0;n=(k|0)!=0;f=f+1|0;if(!(f&3)){break M}if(k){continue}break}}if(!n){break K}if(!(!I[f|0]|k>>>0<4)){while(1){l=H[f>>2];if((l^-1)&l-16843009&-2139062144){break L}f=f+4|0;k=k-4|0;if(k>>>0>3){continue}break}}if(!k){break K}}while(1){if(!I[f|0]){break J}f=f+1|0;k=k-1|0;if(k){continue}break}}f=0}f=f?f-h|0:g;k=f+h|0;if((m|0)>=0){n=j;m=f;break g}n=j;m=f;if(I[k|0]){break d}break g}if(m){g=H[i+64>>2];break u}f=0;ib(a,32,q,0,n);break t}H[i+12>>2]=0;H[i+8>>2]=H[i+64>>2];g=i+8|0;H[i+64>>2]=g;m=-1}f=0;N:{while(1){h=H[g>>2];if(!h){break N}j=Ld(i+4|0,h);h=(j|0)<0;if(!(h|j>>>0>m-f>>>0)){g=g+4|0;f=f+j|0;if(m>>>0>f>>>0){continue}break N}break}if(h){break b}}k=61;if((f|0)<0){break c}ib(a,32,q,f,n);if(!f){f=0;break t}k=0;g=H[i+64>>2];while(1){h=H[g>>2];if(!h){break t}h=Ld(i+4|0,h);k=h+k|0;if(k>>>0>f>>>0){break t}Ab(a,i+4|0,h);g=g+4|0;if(f>>>0>k>>>0){continue}break}}ib(a,32,q,f,n^8192);f=(f|0)<(q|0)?q:f;continue e}if((m|0)<0?u:0){break d}v()}F[i+55|0]=H[i+64>>2];m=1;h=y;n=j;break g}g=I[f+1|0];f=f+1|0;continue}}if(a){break a}if(!s){break f}f=1;while(1){a=H[(f<<2)+e>>2];if(a){Md((f<<3)+d|0,a,c);o=1;f=f+1|0;if((f|0)!=10){continue}break a}break}o=1;if(f>>>0>=10){break a}while(1){if(H[(f<<2)+e>>2]){break h}f=f+1|0;if((f|0)!=10){continue}break}break a}k=28;break c}l=k-h|0;j=(m|0)>(l|0)?m:l;if((j|0)>(p^2147483647)){break d}k=61;g=j+p|0;f=(g|0)<(q|0)?q:g;if((x|0)<(f|0)){break c}ib(a,32,f,g,n);Ab(a,t,p);ib(a,48,f,g,n^65536);ib(a,48,j,l,0);Ab(a,h,l);ib(a,32,f,g,n^8192);continue}break}o=0;break a}k=61}H[3992]=k}o=-1}ca=i+80|0;return o}function hj(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,G=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0;a:{b:{if((e|0)!=2){break b}H[a+8>>2]=2;H[a- -64>>2]=f;N=a+32|0;e=H[N>>2];d=H[a+36>>2]-e|0;c:{if(d>>>0<=7){ya(N,2-(d>>>2|0)|0);break c}if((d|0)==8){break c}H[a+36>>2]=e+8}j=1;d=H[a+56>>2];d=H[d+4>>2]-H[d>>2]|0;if((d|0)<=0){break b}o=a+60|0;d=d>>>2|0;Z=d>>>0<=1?1:d;_=a+68|0;d=0;while(1){f=H[a+56>>2];e=H[f>>2];if(H[f+4>>2]-e>>2>>>0<=d>>>0){break a}l=ca-80|0;ca=l;f=-1;d:{e:{e=H[e+(d<<2)>>2];if((e|0)==-1){break e}j=H[o+32>>2];g=e+1|0;g=(g>>>0)%3|0?g:e-2|0;if((g|0)!=-1){f=H[H[j>>2]+(g<<2)>>2]}n=-1;e=e+((e>>>0)%3|0?-1:2)|0;if((e|0)!=-1){n=H[H[j>>2]+(e<<2)>>2]}j=H[o+36>>2];e=H[j>>2];j=H[j+4>>2]-e>>2;if(j>>>0<=f>>>0|j>>>0<=n>>>0){break e}f:{g:{h:{i:{j:{k:{i=H[e+(n<<2)>>2];f=H[e+(f<<2)>>2];if((i|0)>=(d|0)|(f|0)>=(d|0)){break k}j=(i<<3)+c|0;u=H[j+4>>2];g=(f<<3)+c|0;e=H[g+4>>2];A=H[j>>2];j=H[g>>2];if(!((A|0)!=(j|0)|(e|0)!=(u|0))){H[o+8>>2]=j;H[o+12>>2]=e;break j}n=H[H[o+4>>2]+(d<<2)>>2];H[l+72>>2]=0;H[l+76>>2]=0;g=l- -64|0;H[g>>2]=0;H[g+4>>2]=0;H[l+56>>2]=0;H[l+60>>2]=0;g=H[o>>2];if(!I[g+84|0]){n=H[H[g+68>>2]+(n<<2)>>2]}Sa(g,n,F[g+24|0],l+56|0);n=H[H[o+4>>2]+(f<<2)>>2];H[l+48>>2]=0;H[l+52>>2]=0;H[l+40>>2]=0;H[l+44>>2]=0;H[l+32>>2]=0;H[l+36>>2]=0;g=H[o>>2];if(!I[g+84|0]){n=H[H[g+68>>2]+(n<<2)>>2]}Sa(g,n,F[g+24|0],l+32|0);n=H[H[o+4>>2]+(i<<2)>>2];H[l+24>>2]=0;H[l+28>>2]=0;H[l+16>>2]=0;H[l+20>>2]=0;H[l+8>>2]=0;H[l+12>>2]=0;g=H[o>>2];if(!I[g+84|0]){n=H[H[g+68>>2]+(n<<2)>>2]}Sa(g,n,F[g+24|0],l+8|0);g=H[l+16>>2];w=H[l+40>>2];B=g-w|0;O=H[l+44>>2];g=H[l+20>>2]-(O+(g>>>0>>0)|0)|0;J=g;i=Rj(B,g,B,g);m=da;g=H[l+8>>2];C=H[l+32>>2];D=g-C|0;P=H[l+36>>2];g=H[l+12>>2]-(P+(g>>>0>>0)|0)|0;K=g;k=i;i=Rj(D,g,D,g);g=k+i|0;k=da+m|0;k=g>>>0>>0?k+1|0:k;i=H[l+24>>2];E=H[l+48>>2];G=i-E|0;Q=H[l+52>>2];i=H[l+28>>2]-(Q+(i>>>0>>0)|0)|0;L=i;h=g;g=Rj(G,i,G,i);q=h+g|0;h=da+k|0;r=g>>>0>q>>>0?h+1|0:h;if(!(r|q)){break k}n=0;x=Tj(-1,2147483647,q,r);f=j>>31;S=f;h=f>>31;R=j;g=h;m=j^g;j=m-g|0;f=(f^g)-((g>>>0>m>>>0)+g|0)|0;g=f;f=e>>31;T=f;M=e;e=f>>31;m=M^e;h=m-e|0;k=f>>31;e=(k^f)-((e>>>0>m>>>0)+k|0)|0;f=(g|0)==(e|0)&h>>>0>>0|e>>>0>>0;j=f?j:h;i=da;e=f?g:e;if((i|0)==(e|0)&j>>>0>x>>>0|e>>>0>i>>>0){break f}j=H[l+64>>2];U=H[l+68>>2];e=Rj(j-w|0,U-((j>>>0>>0)+O|0)|0,B,J);f=da;g=H[l+56>>2];V=H[l+60>>2];i=Rj(g-C|0,V-((g>>>0>>0)+P|0)|0,D,K);e=i+e|0;h=da+f|0;m=H[l+72>>2];W=H[l+76>>2];f=Rj(m-E|0,W-((m>>>0>>0)+Q|0)|0,G,L);y=f+e|0;e=da+(e>>>0>>0?h+1|0:h)|0;e=f>>>0>y>>>0?e+1|0:e;x=e;f=e;e=e>>31;i=e;h=e^y;e=h-e|0;i=(f^i)-((h>>>0>>0)+i|0)|0;f=A;A=f-R|0;f=(f>>31)-((f>>>0>>0)+S|0)|0;X=f;z=f>>31;p=z^A;k=p-z|0;h=f>>31;f=(h^f)-((p>>>0>>0)+h|0)|0;p=f;z=u-M|0;f=(u>>31)-((u>>>0>>0)+T|0)|0;u=f;s=f>>31;t=s^z;Y=t-s|0;h=f>>31;f=(h^f)-((s>>>0>t>>>0)+h|0)|0;h=(p|0)==(f|0)&k>>>0>Y>>>0|f>>>0

>>0;f=Tj(-1,2147483647,h?k:Y,h?p:f);h=da;if((h|0)==(i|0)&e>>>0>f>>>0|h>>>0>>0){break f}f=e;e=i;h=K>>31;p=h^D;i=p-h|0;h=(h^K)-((h>>>0>p>>>0)+h|0)|0;k=J>>31;s=k^B;t=s-k|0;k=(k^J)-((k>>>0>s>>>0)+k|0)|0;p=(h|0)==(k|0)&i>>>0>t>>>0|h>>>0>k>>>0;i=p?i:t;h=p?h:k;k=L>>31;p=i;s=k^G;t=s-k|0;k=(k^L)-((k>>>0>s>>>0)+k|0)|0;i=(h|0)==(k|0)&i>>>0>t>>>0|h>>>0>k>>>0;i=Tj(-1,2147483647,i?p:t,i?h:k);h=da;if((h|0)==(e|0)&f>>>0>i>>>0|e>>>0>h>>>0){break f}i=1;f=0;k=Sj(Rj(y,x,B,J),da,q,r);h=k+w|0;e=da+O|0;e=h>>>0>>0?e+1|0:e;k=j-h|0;e=U-((h>>>0>j>>>0)+e|0)|0;k=Rj(k,e,k,e);w=da;h=Sj(Rj(y,x,D,K),da,q,r);j=h+C|0;e=da+P|0;e=h>>>0>j>>>0?e+1|0:e;h=g-j|0;e=V-((g>>>0>>0)+e|0)|0;j=Rj(h,e,h,e);e=j+k|0;h=da+w|0;h=e>>>0>>0?h+1|0:h;k=e;g=Sj(Rj(y,x,G,L),da,q,r);j=g+E|0;e=da+Q|0;e=g>>>0>j>>>0?e+1|0:e;g=m-j|0;e=W-((j>>>0>m>>>0)+e|0)|0;g=Rj(g,e,g,e);j=g+k|0;e=da+h|0;j=Rj(j,g>>>0>j>>>0?e+1|0:e,q,r);e=da;m=e;if(!e&j>>>0<=1){break i}h=j;g=m;while(1){e=f<<1|i>>>31;i=i<<1;f=e;k=!g&h>>>0>7|(g|0)!=0;h=(g&3)<<30|h>>>2;g=g>>>2|0;if(k){continue}break}break h}g=o;if((d|0)>(f|0)){e=f<<1}else{if((d|0)<=0){H[o+8>>2]=0;H[o+12>>2]=0;break j}e=(d<<1)-2|0}e=(e<<2)+c|0;H[g+8>>2]=H[e>>2];H[o+12>>2]=H[e+4>>2]}n=1;break f}f=m;i=j;if(j-1|0){break g}}while(1){e=Tj(j,m,i,f);h=f+da|0;e=e+i|0;h=e>>>0>>0?h+1|0:h;i=(h&1)<<31|e>>>1;f=h>>>1|0;e=Rj(i,f,i,f);g=da;if((m|0)==(g|0)&e>>>0>j>>>0|g>>>0>m>>>0){continue}break}}e=H[o+20>>2];if(!e){break f}j=e-1|0;m=H[H[o+16>>2]+(j>>>3&536870908)>>2];H[o+20>>2]=j;n=1;e=Rj(y,x,z,u);h=da;g=e;e=Rj(q,r,M,T);g=g+e|0;h=da+h|0;h=e>>>0>g>>>0?h+1|0:h;e=Rj(i,f,A,X);j=m>>>j&1;m=j?0-e|0:e;g=m+g|0;k=h;h=da;k=k+(j?0-(h+((e|0)!=0)|0)|0:h)|0;$=o,aa=Sj(g,g>>>0>>0?k+1|0:k,q,r),H[$+12>>2]=aa;e=Rj(y,x,A,X);m=da;g=e;e=Rj(q,r,R,S);g=g+e|0;h=da+m|0;h=e>>>0>g>>>0?h+1|0:h;e=Rj(i,f,z,u);f=0-e|0;i=da;k=(j?i:0-(((e|0)!=0)+i|0)|0)+h|0;i=g;g=j?e:f;f=i+g|0;$=o,aa=Sj(f,f>>>0>>0?k+1|0:k,q,r),H[$+8>>2]=aa}ca=l+80|0;e=n;break d}Ca();v()}j=e;if(!e){return 0}l:{if(H[a+8>>2]<=0){break l}i=H[N>>2];e=0;while(1){f=e<<2;g=H[f+_>>2];m=H[a+16>>2];m:{if((g|0)>(m|0)){H[f+i>>2]=m;break m}f=f+i|0;m=H[a+12>>2];if((m|0)>(g|0)){H[f>>2]=m;break m}H[f>>2]=g}e=e+1|0;g=H[a+8>>2];if((e|0)<(g|0)){continue}break}f=0;if((g|0)<=0){break l}e=d<<3;m=e+c|0;n=b+e|0;while(1){g=f<<2;e=g+m|0;g=H[g+n>>2]+H[g+i>>2]|0;H[e>>2]=g;n:{if((g|0)>H[a+16>>2]){g=g-H[a+20>>2]|0}else{if((g|0)>=H[a+12>>2]){break n}g=g+H[a+20>>2]|0}H[e>>2]=g}f=f+1|0;if((f|0)>2]){continue}break}}d=d+1|0;if((Z|0)!=(d|0)){continue}break}}return j|0}Ca();v()}function xj(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,G=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0;a:{b:{if((e|0)!=2){break b}H[a+8>>2]=2;H[a- -64>>2]=f;N=a+32|0;e=H[N>>2];d=H[a+36>>2]-e|0;c:{if(d>>>0<=7){ya(N,2-(d>>>2|0)|0);break c}if((d|0)==8){break c}H[a+36>>2]=e+8}o=1;d=H[a+56>>2];d=H[d+4>>2]-H[d>>2]|0;if((d|0)<=0){break b}n=a+60|0;d=d>>>2|0;Z=d>>>0<=1?1:d;_=a+68|0;d=0;while(1){e=H[a+56>>2];i=H[e>>2];if(H[e+4>>2]-i>>2>>>0<=d>>>0){break a}l=ca-80|0;ca=l;f=-1;i=H[i+(d<<2)>>2];e=-1;d:{if((i|0)==-1){break d}e=i+1|0;f=(e>>>0)%3|0?e:i-2|0;e=i-1|0;if((i>>>0)%3|0){break d}e=i+2|0}g=H[n+36>>2];i=H[g>>2];e:{f:{g:{h:{i:{g=H[g+4>>2]-i>>2;k=f<<2;f=H[H[n+32>>2]+28>>2];j=H[k+f>>2];if(g>>>0<=j>>>0){break i}e=H[f+(e<<2)>>2];if(e>>>0>=g>>>0){break i}f=H[i+(j<<2)>>2];j:{k:{j=H[i+(e<<2)>>2];if((d|0)<=(f|0)|(j|0)>=(d|0)){break k}i=(j<<3)+c|0;u=H[i+4>>2];g=(f<<3)+c|0;e=H[g+4>>2];A=H[i>>2];i=H[g>>2];if(!((A|0)!=(i|0)|(e|0)!=(u|0))){H[n+8>>2]=i;H[n+12>>2]=e;break j}o=H[H[n+4>>2]+(d<<2)>>2];H[l+72>>2]=0;H[l+76>>2]=0;g=l- -64|0;H[g>>2]=0;H[g+4>>2]=0;H[l+56>>2]=0;H[l+60>>2]=0;g=H[n>>2];if(!I[g+84|0]){o=H[H[g+68>>2]+(o<<2)>>2]}Sa(g,o,F[g+24|0],l+56|0);o=H[H[n+4>>2]+(f<<2)>>2];H[l+48>>2]=0;H[l+52>>2]=0;H[l+40>>2]=0;H[l+44>>2]=0;H[l+32>>2]=0;H[l+36>>2]=0;g=H[n>>2];if(!I[g+84|0]){o=H[H[g+68>>2]+(o<<2)>>2]}Sa(g,o,F[g+24|0],l+32|0);o=H[H[n+4>>2]+(j<<2)>>2];H[l+24>>2]=0;H[l+28>>2]=0;H[l+16>>2]=0;H[l+20>>2]=0;H[l+8>>2]=0;H[l+12>>2]=0;g=H[n>>2];if(!I[g+84|0]){o=H[H[g+68>>2]+(o<<2)>>2]}Sa(g,o,F[g+24|0],l+8|0);g=H[l+16>>2];w=H[l+40>>2];B=g-w|0;O=H[l+44>>2];g=H[l+20>>2]-(O+(g>>>0>>0)|0)|0;J=g;j=Rj(B,g,B,g);m=da;g=H[l+8>>2];C=H[l+32>>2];D=g-C|0;P=H[l+36>>2];g=H[l+12>>2]-(P+(g>>>0>>0)|0)|0;K=g;k=j;j=Rj(D,g,D,g);g=k+j|0;k=da+m|0;k=g>>>0>>0?k+1|0:k;j=H[l+24>>2];E=H[l+48>>2];G=j-E|0;Q=H[l+52>>2];j=H[l+28>>2]-(Q+(j>>>0>>0)|0)|0;L=j;h=g;g=Rj(G,j,G,j);q=h+g|0;h=da+k|0;r=g>>>0>q>>>0?h+1|0:h;if(!(r|q)){break k}o=0;x=Tj(-1,2147483647,q,r);f=i>>31;S=f;h=f>>31;R=i;g=h;m=i^g;i=m-g|0;f=(f^g)-((g>>>0>m>>>0)+g|0)|0;g=f;f=e>>31;T=f;M=e;e=f>>31;m=M^e;h=m-e|0;k=f>>31;e=(k^f)-((e>>>0>m>>>0)+k|0)|0;f=(g|0)==(e|0)&h>>>0>>0|e>>>0>>0;i=f?i:h;j=da;e=f?g:e;if((j|0)==(e|0)&i>>>0>x>>>0|e>>>0>j>>>0){break e}i=H[l+64>>2];U=H[l+68>>2];e=Rj(i-w|0,U-((i>>>0>>0)+O|0)|0,B,J);f=da;g=H[l+56>>2];V=H[l+60>>2];j=Rj(g-C|0,V-((g>>>0>>0)+P|0)|0,D,K);e=j+e|0;h=da+f|0;m=H[l+72>>2];W=H[l+76>>2];f=Rj(m-E|0,W-((m>>>0>>0)+Q|0)|0,G,L);y=f+e|0;e=da+(e>>>0>>0?h+1|0:h)|0;e=f>>>0>y>>>0?e+1|0:e;x=e;f=e;e=e>>31;j=e;h=e^y;e=h-e|0;j=(f^j)-((h>>>0>>0)+j|0)|0;f=A;A=f-R|0;f=(f>>31)-((f>>>0>>0)+S|0)|0;X=f;z=f>>31;p=z^A;k=p-z|0;h=f>>31;f=(h^f)-((p>>>0>>0)+h|0)|0;p=f;z=u-M|0;f=(u>>31)-((u>>>0>>0)+T|0)|0;u=f;s=f>>31;t=s^z;Y=t-s|0;h=f>>31;f=(h^f)-((s>>>0>t>>>0)+h|0)|0;h=(p|0)==(f|0)&k>>>0>Y>>>0|f>>>0

>>0;f=Tj(-1,2147483647,h?k:Y,h?p:f);h=da;if((h|0)==(j|0)&e>>>0>f>>>0|h>>>0>>0){break e}f=e;e=j;h=K>>31;p=h^D;j=p-h|0;h=(h^K)-((h>>>0>p>>>0)+h|0)|0;k=J>>31;s=k^B;t=s-k|0;k=(k^J)-((k>>>0>s>>>0)+k|0)|0;p=(h|0)==(k|0)&j>>>0>t>>>0|h>>>0>k>>>0;j=p?j:t;h=p?h:k;k=L>>31;p=j;s=k^G;t=s-k|0;k=(k^L)-((k>>>0>s>>>0)+k|0)|0;j=(h|0)==(k|0)&j>>>0>t>>>0|h>>>0>k>>>0;j=Tj(-1,2147483647,j?p:t,j?h:k);h=da;if((h|0)==(e|0)&f>>>0>j>>>0|e>>>0>h>>>0){break e}j=1;f=0;k=Sj(Rj(y,x,B,J),da,q,r);h=k+w|0;e=da+O|0;e=h>>>0>>0?e+1|0:e;k=i-h|0;e=U-((h>>>0>i>>>0)+e|0)|0;k=Rj(k,e,k,e);w=da;h=Sj(Rj(y,x,D,K),da,q,r);i=h+C|0;e=da+P|0;e=h>>>0>i>>>0?e+1|0:e;h=g-i|0;e=V-((g>>>0>>0)+e|0)|0;i=Rj(h,e,h,e);e=i+k|0;h=da+w|0;h=e>>>0>>0?h+1|0:h;k=e;g=Sj(Rj(y,x,G,L),da,q,r);i=g+E|0;e=da+Q|0;e=g>>>0>i>>>0?e+1|0:e;g=m-i|0;e=W-((i>>>0>m>>>0)+e|0)|0;g=Rj(g,e,g,e);i=g+k|0;e=da+h|0;i=Rj(i,g>>>0>i>>>0?e+1|0:e,q,r);e=da;m=e;if(!e&i>>>0<=1){break h}h=i;g=m;while(1){e=f<<1|j>>>31;j=j<<1;f=e;k=!g&h>>>0>7|(g|0)!=0;h=(g&3)<<30|h>>>2;g=g>>>2|0;if(k){continue}break}break g}g=n;if((d|0)>(f|0)){e=f<<1}else{if((d|0)<=0){H[n+8>>2]=0;H[n+12>>2]=0;break j}e=(d<<1)-2|0}e=(e<<2)+c|0;H[g+8>>2]=H[e>>2];H[n+12>>2]=H[e+4>>2]}o=1;break e}Ca();v()}f=m;j=i;if(i-1|0){break f}}while(1){e=Tj(i,m,j,f);h=f+da|0;e=e+j|0;h=e>>>0>>0?h+1|0:h;j=(h&1)<<31|e>>>1;f=h>>>1|0;e=Rj(j,f,j,f);g=da;if((m|0)==(g|0)&e>>>0>i>>>0|g>>>0>m>>>0){continue}break}}e=H[n+20>>2];if(!e){break e}i=e-1|0;m=H[H[n+16>>2]+(i>>>3&536870908)>>2];H[n+20>>2]=i;o=1;e=Rj(y,x,z,u);h=da;g=e;e=Rj(q,r,M,T);g=g+e|0;h=da+h|0;h=e>>>0>g>>>0?h+1|0:h;e=Rj(j,f,A,X);i=m>>>i&1;m=i?0-e|0:e;g=m+g|0;k=h;h=da;k=k+(i?0-(h+((e|0)!=0)|0)|0:h)|0;$=n,aa=Sj(g,g>>>0>>0?k+1|0:k,q,r),H[$+12>>2]=aa;e=Rj(y,x,A,X);m=da;g=e;e=Rj(q,r,R,S);g=g+e|0;h=da+m|0;h=e>>>0>g>>>0?h+1|0:h;e=Rj(j,f,z,u);f=0-e|0;j=da;k=(i?j:0-(((e|0)!=0)+j|0)|0)+h|0;j=g;g=i?e:f;f=j+g|0;$=n,aa=Sj(f,f>>>0>>0?k+1|0:k,q,r),H[$+8>>2]=aa}ca=l+80|0;if(!o){return 0}l:{if(H[a+8>>2]<=0){break l}g=H[N>>2];e=0;while(1){f=e<<2;i=H[f+_>>2];j=H[a+16>>2];m:{if((i|0)>(j|0)){H[f+g>>2]=j;break m}f=f+g|0;j=H[a+12>>2];if((j|0)>(i|0)){H[f>>2]=j;break m}H[f>>2]=i}e=e+1|0;i=H[a+8>>2];if((e|0)<(i|0)){continue}break}f=0;if((i|0)<=0){break l}e=d<<3;j=e+c|0;m=b+e|0;while(1){i=f<<2;e=i+j|0;i=H[i+m>>2]+H[g+i>>2]|0;H[e>>2]=i;n:{if((i|0)>H[a+16>>2]){k=i-H[a+20>>2]|0}else{if((i|0)>=H[a+12>>2]){break n}k=i+H[a+20>>2]|0}H[e>>2]=k}f=f+1|0;if((f|0)>2]){continue}break}}d=d+1|0;if((Z|0)!=(d|0)){continue}break}}return o|0}Ca();v()}function $a(a,b){var c=0,d=0,e=0,f=0,g=0;e=ca-16|0;ca=e;H[a+12>>2]=b;H[a+8>>2]=0;H[a>>2]=0;H[a+4>>2]=0;d=a+16|0;H[d>>2]=0;H[d+4>>2]=0;F[d+5|0]=0;F[d+6|0]=0;F[d+7|0]=0;F[d+8|0]=0;F[d+9|0]=0;F[d+10|0]=0;F[d+11|0]=0;F[d+12|0]=0;c=d+16|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c=d+32|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c=d+48|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c=d- -64|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c=d+80|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c=d+96|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c=d+112|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c=d+128|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c=d+144|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c=d+160|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c=d+176|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c=d+192|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c=d+208|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c=d+224|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c=d+240|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c=d+256|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c=d+272|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c=d+288|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c=d+304|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c=d+320|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c=d+336|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c=d+352|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c=d+368|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c=d+384|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c=d+400|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c=d+416|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c=d+432|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c=d+448|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c=d+464|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c=d+480|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;d=d+496|0;H[d>>2]=0;H[d+4>>2]=0;F[d+5|0]=0;F[d+6|0]=0;F[d+7|0]=0;F[d+8|0]=0;F[d+9|0]=0;F[d+10|0]=0;F[d+11|0]=0;F[d+12|0]=0;H[a+528>>2]=0;H[a+532>>2]=0;F[a+533|0]=0;F[a+534|0]=0;F[a+535|0]=0;F[a+536|0]=0;F[a+537|0]=0;F[a+538|0]=0;F[a+539|0]=0;F[a+540|0]=0;H[a+544>>2]=0;H[a+548>>2]=0;H[a+560>>2]=0;H[a+552>>2]=0;H[a+556>>2]=0;H[a+564>>2]=0;H[a+568>>2]=0;H[a+580>>2]=0;H[a+572>>2]=0;H[a+576>>2]=0;H[a+584>>2]=0;H[a+588>>2]=0;H[a+600>>2]=0;H[a+592>>2]=0;H[a+596>>2]=0;H[a+612>>2]=0;H[a+604>>2]=0;H[a+608>>2]=0;g=a+628|0;a:{b:{if(b){if(b>>>0<1073741824){break b}sa();v()}H[a+616>>2]=0;H[a+620>>2]=0;H[a+624>>2]=0;H[e+8>>2]=0;H[e>>2]=0;H[e+4>>2]=0;d=1;break a}d=b<<2;c=pa(d);H[a+604>>2]=c;f=c+d|0;H[a+612>>2]=f;ra(c,0,d);H[a+624>>2]=0;H[a+616>>2]=0;H[a+620>>2]=0;H[a+608>>2]=f;c=pa(d);H[a+616>>2]=c;f=c+d|0;H[a+624>>2]=f;ra(c,0,d);H[a+620>>2]=f;c=pa(d);H[e>>2]=c;f=c+d|0;H[e+8>>2]=f;ra(c,0,d);H[e+4>>2]=f;d=b<<5|1}tb(g,d,e);c=H[e>>2];if(c){H[e+4>>2]=c;oa(c)}H[e+8>>2]=0;H[e>>2]=0;H[e+4>>2]=0;if(b){b=b<<2;c=pa(b);H[e>>2]=c;f=b+c|0;H[e+8>>2]=f;ra(c,0,b);H[e+4>>2]=f}tb(a+640|0,d,e);b=H[e>>2];if(b){H[e+4>>2]=b;oa(b)}ca=e+16|0;return a}function gc(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=O(0),n=O(0),o=0;a:{b:{if(!d){break b}c:{switch(H[a+28>>2]-1|0){case 0:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[a>>2];h=H[e>>2];k=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}G[(g<<1)+d>>1]=F[b|0];b=b+1|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 1:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[a>>2];h=H[e>>2];k=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}G[(g<<1)+d>>1]=I[b|0];b=b+1|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 2:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[a>>2];h=H[e>>2];k=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}G[(g<<1)+d>>1]=J[b>>1];b=b+2|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 3:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[a>>2];h=H[e>>2];k=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){return 0}e=G[b>>1];if((e|0)<0){break b}G[(g<<1)+d>>1]=e;b=b+2|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 4:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[a>>2];h=H[e>>2];k=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}e=H[b>>2];if(e+32768>>>0>65535){break b}G[(g<<1)+d>>1]=e;b=b+4|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 5:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[a>>2];h=H[e>>2];k=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}e=H[b>>2];if(e>>>0>32767){break b}G[(g<<1)+d>>1]=e;b=b+4|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 6:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[a>>2];h=H[e>>2];k=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;k=H[e+4>>2];while(1){if(b>>>0>=k>>>0){break b}h=H[b+4>>2];e=H[b>>2];i=e+32768|0;h=i>>>0<32768?h+1|0:h;if(!h&i>>>0>65535|h){break b}G[(g<<1)+d>>1]=e;b=b+8|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 7:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[a>>2];h=H[e>>2];k=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}k=H[b+4>>2];e=H[b>>2];if(!k&e>>>0>32767|k){break b}G[(g<<1)+d>>1]=e;b=b+8|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 8:d:{e:{e=I[a+24|0];c=c&255;if(!(c>>>0>e>>>0?e:c)){break e}e=H[a>>2];j=H[e>>2];g=j;f=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+f|0;g=b+g|0;f=H[e+4>>2];e=f-j|0;if(!I[a+32|0]){j=0;if((b|0)>=(e|0)){break d}b=0;while(1){m=L[g>>2];if(m>=O(32767)|m>1]=i;b=b+1|0;e=I[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break e}g=g+4|0;if(f>>>0>g>>>0){continue}break}break d}j=0;if((b|0)>=(e|0)){break d}b=0;while(1){m=L[g>>2];if(m>=O(32767)|mO(1)){break d}e=(b<<1)+d|0;l=T(+m*32767+.5);f:{if(P(l)<2147483648){i=~~l;break f}i=-2147483648}G[e>>1]=i;b=b+1|0;e=I[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break e}g=g+4|0;if(f>>>0>g>>>0){continue}break}break d}j=1;if(c>>>0<=e>>>0){break d}ra((e<<1)+d|0,0,c-e<<1)}return j;case 9:g:{h:{e=I[a+24|0];c=c&255;if(!(c>>>0>e>>>0?e:c)){break h}e=H[a>>2];j=H[e>>2];g=j;f=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+f|0;g=b+g|0;f=H[e+4>>2];e=f-j|0;if(!I[a+32|0]){j=0;if((b|0)>=(e|0)){break g}b=0;while(1){l=M[g>>3];if(l>=32767|l<-32768|l!=l){break g}o=P(l);if(o==Infinity){break g}e=(b<<1)+d|0;if(o<2147483648){i=~~l}else{i=-2147483648}G[e>>1]=i;b=b+1|0;e=I[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break h}g=g+8|0;if(f>>>0>g>>>0){continue}break}break g}j=0;if((b|0)>=(e|0)){break g}b=0;while(1){l=M[g>>3];if(l>=32767|l<-32768|(P(l)==Infinity|l!=l)){break g}if(l<0|l>1){break g}e=(b<<1)+d|0;l=T(l*32767+.5);i:{if(P(l)<2147483648){i=~~l;break i}i=-2147483648}G[e>>1]=i;b=b+1|0;e=I[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break h}g=g+8|0;if(f>>>0>g>>>0){continue}break}break g}j=1;if(c>>>0<=e>>>0){break g}ra((e<<1)+d|0,0,c-e<<1)}return j;case 10:break c;default:break b}}e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[a>>2];h=H[e>>2];k=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}G[(g<<1)+d>>1]=I[b|0];b=b+1|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}ra((e<<1)+d|0,0,(c&255)-e<<1)}return j}ra((e<<1)+d|0,0,(c&255)-e<<1);return 1}function ec(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=O(0),n=O(0),o=0;a:{b:{if(!d){break b}c:{switch(H[a+28>>2]-1|0){case 0:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[a>>2];h=H[e>>2];k=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}H[(g<<2)+d>>2]=F[b|0];b=b+1|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 1:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[a>>2];h=H[e>>2];k=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}H[(g<<2)+d>>2]=I[b|0];b=b+1|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 2:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[a>>2];h=H[e>>2];k=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}H[(g<<2)+d>>2]=G[b>>1];b=b+2|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 3:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[a>>2];h=H[e>>2];k=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}H[(g<<2)+d>>2]=J[b>>1];b=b+2|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 4:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[a>>2];h=H[e>>2];k=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}H[(g<<2)+d>>2]=H[b>>2];b=b+4|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 5:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[a>>2];h=H[e>>2];k=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){return 0}e=H[b>>2];if((e|0)<0){break b}H[(g<<2)+d>>2]=e;b=b+4|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 6:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[a>>2];h=H[e>>2];k=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;k=H[e+4>>2];while(1){if(b>>>0>=k>>>0){break b}h=H[b+4>>2];e=H[b>>2];if(e- -2147483648>>>0<2147483648?h+1|0:h){break b}H[(g<<2)+d>>2]=e;b=b+8|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 7:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[a>>2];h=H[e>>2];k=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}k=H[b+4>>2];e=H[b>>2];if(!k&e>>>0>2147483647|k){break b}H[(g<<2)+d>>2]=e;b=b+8|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 8:d:{e:{e=I[a+24|0];c=c&255;if(!(c>>>0>e>>>0?e:c)){break e}e=H[a>>2];j=H[e>>2];g=j;f=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+f|0;g=b+g|0;f=H[e+4>>2];e=f-j|0;if(!I[a+32|0]){j=0;if((b|0)>=(e|0)){break d}b=0;while(1){m=L[g>>2];if(m>=O(2147483648)|m>2]=i;b=b+1|0;e=I[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break e}g=g+4|0;if(f>>>0>g>>>0){continue}break}break d}j=0;if((b|0)>=(e|0)){break d}b=0;while(1){m=L[g>>2];if(m>=O(2147483648)|mO(1)){break d}e=(b<<2)+d|0;l=T(+m*2147483647+.5);f:{if(P(l)<2147483648){i=~~l;break f}i=-2147483648}H[e>>2]=i;b=b+1|0;e=I[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break e}g=g+4|0;if(f>>>0>g>>>0){continue}break}break d}j=1;if(c>>>0<=e>>>0){break d}ra((e<<2)+d|0,0,c-e<<2)}return j;case 9:g:{h:{e=I[a+24|0];c=c&255;if(!(c>>>0>e>>>0?e:c)){break h}e=H[a>>2];j=H[e>>2];g=j;f=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+f|0;g=b+g|0;f=H[e+4>>2];e=f-j|0;if(!I[a+32|0]){j=0;if((b|0)>=(e|0)){break g}b=0;while(1){l=M[g>>3];if(l>=2147483647|l<-2147483648|l!=l){break g}o=P(l);if(o==Infinity){break g}e=(b<<2)+d|0;if(o<2147483648){i=~~l}else{i=-2147483648}H[e>>2]=i;b=b+1|0;e=I[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break h}g=g+8|0;if(f>>>0>g>>>0){continue}break}break g}j=0;if((b|0)>=(e|0)){break g}b=0;while(1){l=M[g>>3];if(l>=2147483647|l<-2147483648|(P(l)==Infinity|l!=l)){break g}if(l<0|l>1){break g}e=(b<<2)+d|0;l=T(l*2147483647+.5);i:{if(P(l)<2147483648){i=~~l;break i}i=-2147483648}H[e>>2]=i;b=b+1|0;e=I[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break h}g=g+8|0;if(f>>>0>g>>>0){continue}break}break g}j=1;if(c>>>0<=e>>>0){break g}ra((e<<2)+d|0,0,c-e<<2)}return j;case 10:break c;default:break b}}e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[a>>2];h=H[e>>2];k=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}H[(g<<2)+d>>2]=I[b|0];b=b+1|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}ra((e<<2)+d|0,0,(c&255)-e<<2)}return j}ra((e<<2)+d|0,0,(c&255)-e<<2);return 1}function fc(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=O(0);a:{b:{if(!d){break b}c:{switch(H[a+28>>2]-1|0){case 0:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[a>>2];h=H[e>>2];k=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){return 0}e=F[b|0];if((e|0)<0){break b}G[(g<<1)+d>>1]=e&255;b=b+1|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break b}break a;case 1:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[a>>2];h=H[e>>2];k=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}G[(g<<1)+d>>1]=I[b|0];b=b+1|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break b}break a;case 2:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[a>>2];h=H[e>>2];k=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){return 0}e=G[b>>1];if((e|0)<0){break b}G[(g<<1)+d>>1]=e;b=b+2|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break b}break a;case 3:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[a>>2];h=H[e>>2];k=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}G[(g<<1)+d>>1]=J[b>>1];b=b+2|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break b}break a;case 4:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[a>>2];h=H[e>>2];k=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}e=H[b>>2];if(e>>>0>65535){break b}G[(g<<1)+d>>1]=e;b=b+4|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break b}break a;case 5:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[a>>2];h=H[e>>2];k=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}e=H[b>>2];if(e>>>0>65535){break b}G[(g<<1)+d>>1]=e;b=b+4|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break b}break a;case 6:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[a>>2];h=H[e>>2];k=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}k=H[b+4>>2];e=H[b>>2];if(!k&e>>>0>65535|k){break b}G[(g<<1)+d>>1]=e;b=b+8|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break b}break a;case 7:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[a>>2];h=H[e>>2];k=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}k=H[b+4>>2];e=H[b>>2];if(!k&e>>>0>65535|k){break b}G[(g<<1)+d>>1]=e;b=b+8|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break b}break a;case 8:d:{e:{e=I[a+24|0];c=c&255;if(!(c>>>0>e>>>0?e:c)){break e}e=H[a>>2];l=H[e>>2];g=l;f=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+f|0;g=b+g|0;f=H[e+4>>2];e=f-l|0;if(!I[a+32|0]){l=0;if((b|0)>=(e|0)){break d}b=0;while(1){m=L[g>>2];if(m>=O(65535)|m=O(0)){i=~~m>>>0}else{i=0}G[e>>1]=i;b=b+1|0;e=I[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break e}g=g+4|0;if(f>>>0>g>>>0){continue}break}break d}l=0;if((b|0)>=(e|0)){break d}b=0;while(1){m=L[g>>2];if(m>=O(65535)|mO(1)){break d}e=(b<<1)+d|0;j=T(+m*65535+.5);f:{if(j<4294967296&j>=0){i=~~j>>>0;break f}i=0}G[e>>1]=i;b=b+1|0;e=I[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break e}g=g+4|0;if(f>>>0>g>>>0){continue}break}break d}l=1;if(c>>>0<=e>>>0){break d}ra((e<<1)+d|0,0,c-e<<1)}return l;case 9:g:{h:{e=I[a+24|0];c=c&255;if(!(c>>>0>e>>>0?e:c)){break h}e=H[a>>2];l=H[e>>2];g=l;f=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+f|0;g=b+g|0;f=H[e+4>>2];e=f-l|0;if(!I[a+32|0]){l=0;if((b|0)>=(e|0)){break g}b=0;while(1){j=M[g>>3];if(j>=65535|j<0|(P(j)==Infinity|j!=j)){break g}e=(b<<1)+d|0;if(j<4294967296&j>=0){i=~~j>>>0}else{i=0}G[e>>1]=i;b=b+1|0;e=I[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break h}g=g+8|0;if(f>>>0>g>>>0){continue}break}break g}l=0;if((b|0)>=(e|0)){break g}b=0;while(1){j=M[g>>3];if(j>=65535|j<0|(P(j)==Infinity|j!=j)){break g}if(j>1){break g}e=(b<<1)+d|0;j=T(j*65535+.5);i:{if(j<4294967296&j>=0){i=~~j>>>0;break i}i=0}G[e>>1]=i;b=b+1|0;e=I[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break h}g=g+8|0;if(f>>>0>g>>>0){continue}break}break g}l=1;if(c>>>0<=e>>>0){break g}ra((e<<1)+d|0,0,c-e<<1)}return l;case 10:break c;default:break b}}e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[a>>2];h=H[e>>2];k=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}G[(g<<1)+d>>1]=I[b|0];b=b+1|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break b}ra((e<<1)+d|0,0,(c&255)-e<<1)}return l}ra((e<<1)+d|0,0,(c&255)-e<<1);return 1}function Sa(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=O(0),l=0,m=0,n=O(0),o=0;a:{if(!d){break a}b:{c:{switch(H[a+28>>2]-1|0){case 0:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[a>>2];h=H[e>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);j=b;b=b+i|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=(g<<3)+d|0;i=F[b|0];H[e>>2]=i;H[e+4>>2]=i>>31;b=b+1|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 1:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[a>>2];h=H[e>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);j=b;b=b+i|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=(g<<3)+d|0;H[e>>2]=I[b|0];H[e+4>>2]=0;b=b+1|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 2:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[a>>2];h=H[e>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);j=b;b=b+i|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=(g<<3)+d|0;i=G[b>>1];H[e>>2]=i;H[e+4>>2]=i>>31;b=b+2|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 3:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[a>>2];h=H[e>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);j=b;b=b+i|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=(g<<3)+d|0;H[e>>2]=J[b>>1];H[e+4>>2]=0;b=b+2|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 4:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[a>>2];h=H[e>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);j=b;b=b+i|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=(g<<3)+d|0;i=H[b>>2];H[e>>2]=i;H[e+4>>2]=i>>31;b=b+4|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 5:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[a>>2];h=H[e>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);j=b;b=b+i|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=(g<<3)+d|0;H[e>>2]=H[b>>2];H[e+4>>2]=0;b=b+4|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 6:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[a>>2];h=H[e>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);j=b;b=b+i|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}i=H[b+4>>2];e=(g<<3)+d|0;H[e>>2]=H[b>>2];H[e+4>>2]=i;b=b+8|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 7:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[a>>2];h=H[e>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);j=b;b=b+i|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=H[b>>2];i=H[b+4>>2];if((i|0)<0){break a}j=(g<<3)+d|0;H[j>>2]=e;H[j+4>>2]=i;b=b+8|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 8:d:{e=I[a+24|0];f=c&255;if(!(e>>>0>>0?e:f)){break d}if(I[a+32|0]){break a}e=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);j=b;b=b+e|0;e=H[a>>2];i=H[e+4>>2];e=H[e>>2];if((b|0)>=(i-e|0)){break a}g=b+e|0;h=c&255;b=0;while(1){k=L[g>>2];if(k>=O(0x8000000000000000)|k=O(1)?~~(k>O(0)?O(R(O(T(O(k*O(2.3283064365386963e-10)))),O(4294967296))):O(U(O(O(k-O(~~k>>>0>>>0))*O(2.3283064365386963e-10)))))>>>0:0;m=~~k>>>0;break e}j=-2147483648;m=0}H[e>>2]=m;H[e+4>>2]=j;b=b+1|0;e=I[a+24|0];if(b>>>0>=(e>>>0>>0?e:h)>>>0){break d}g=g+4|0;if(i>>>0>g>>>0){continue}break}break a}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 9:f:{e=I[a+24|0];f=c&255;if(!(e>>>0>>0?e:f)){break f}if(I[a+32|0]){break a}e=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);j=b;b=b+e|0;e=H[a>>2];i=H[e+4>>2];e=H[e>>2];if((b|0)>=(i-e|0)){break a}g=b+e|0;h=c&255;b=0;while(1){l=M[g>>3];if(l>=0x8000000000000000|l<-0x8000000000000000|l!=l){break a}o=P(l);if(o==Infinity){break a}e=(b<<3)+d|0;g:{if(o<0x8000000000000000){j=P(l)>=1?~~(l>0?R(T(l*2.3283064365386963e-10),4294967295):U((l-+(~~l>>>0>>>0))*2.3283064365386963e-10))>>>0:0;m=~~l>>>0;break g}j=-2147483648;m=0}H[e>>2]=m;H[e+4>>2]=j;b=b+1|0;e=I[a+24|0];if(b>>>0>=(e>>>0>>0?e:h)>>>0){break f}g=g+8|0;if(i>>>0>g>>>0){continue}break}break a}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 10:break c;default:break a}}e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[a>>2];h=H[e>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);j=b;b=b+i|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=(g<<3)+d|0;H[e>>2]=I[b|0];H[e+4>>2]=0;b=b+1|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0}ra(d,0,a<<3)}}function Oj(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;j=a;a:{b:{c:{d:{e:{f:{g:{h:{a=H[a+8>>2];switch(H[a+28>>2]-1|0){case 4:break c;case 5:break d;case 2:break e;case 3:break f;case 0:break g;case 1:break h;default:break a}}f=I[a+24|0];c=pa(f);a=H[j+16>>2];if(H[a+80>>2]){g=H[H[a>>2]>>2]+H[a+48>>2]|0}else{g=0}if(!b){break b}if(f){o=f&252;l=f&3;h=f>>>0<4;while(1){a=0;e=0;if(!h){while(1){k=g+(d<<2)|0;F[a+c|0]=H[k>>2];F[(a|1)+c|0]=H[k+4>>2];F[(a|2)+c|0]=H[k+8>>2];F[(a|3)+c|0]=H[k+12>>2];a=a+4|0;d=d+4|0;e=e+4|0;if((o|0)!=(e|0)){continue}break}}e=0;if(l){while(1){F[a+c|0]=H[g+(d<<2)>>2];a=a+1|0;d=d+1|0;e=e+1|0;if((l|0)!=(e|0)){continue}break}}qa(H[H[H[j+8>>2]+64>>2]>>2]+m|0,c,f);m=f+m|0;n=n+1|0;if((n|0)!=(b|0)){continue}break}break b}a=0;if((b|0)!=1){g=b&-2;while(1){qa(H[H[H[j+8>>2]+64>>2]>>2]+a|0,c,f);a=a+f|0;qa(a+H[H[H[j+8>>2]+64>>2]>>2]|0,c,f);a=a+f|0;d=d+2|0;if((g|0)!=(d|0)){continue}break}}if(!(b&1)){break b}qa(H[H[H[j+8>>2]+64>>2]>>2]+a|0,c,f);break b}f=I[a+24|0];c=pa(f);a=H[j+16>>2];if(H[a+80>>2]){g=H[H[a>>2]>>2]+H[a+48>>2]|0}else{g=0}if(!b){break b}if(f){o=f&252;l=f&3;h=f>>>0<4;while(1){a=0;e=0;if(!h){while(1){k=g+(d<<2)|0;F[a+c|0]=H[k>>2];F[(a|1)+c|0]=H[k+4>>2];F[(a|2)+c|0]=H[k+8>>2];F[(a|3)+c|0]=H[k+12>>2];a=a+4|0;d=d+4|0;e=e+4|0;if((o|0)!=(e|0)){continue}break}}e=0;if(l){while(1){F[a+c|0]=H[g+(d<<2)>>2];a=a+1|0;d=d+1|0;e=e+1|0;if((l|0)!=(e|0)){continue}break}}qa(H[H[H[j+8>>2]+64>>2]>>2]+m|0,c,f);m=f+m|0;n=n+1|0;if((n|0)!=(b|0)){continue}break}break b}a=0;if((b|0)!=1){g=b&-2;while(1){qa(H[H[H[j+8>>2]+64>>2]>>2]+a|0,c,f);a=a+f|0;qa(a+H[H[H[j+8>>2]+64>>2]>>2]|0,c,f);a=a+f|0;d=d+2|0;if((g|0)!=(d|0)){continue}break}}if(!(b&1)){break b}qa(H[H[H[j+8>>2]+64>>2]>>2]+a|0,c,f);break b}h=I[a+24|0];i=h<<1;c=pa(i);a=H[j+16>>2];if(H[a+80>>2]){g=H[H[a>>2]>>2]+H[a+48>>2]|0}else{g=0}if(!b){break b}if(h){o=h&252;l=h&3;h=h>>>0<4;while(1){a=0;e=0;if(!h){while(1){f=a<<1;k=g+(d<<2)|0;G[f+c>>1]=H[k>>2];G[(f|2)+c>>1]=H[k+4>>2];G[(f|4)+c>>1]=H[k+8>>2];G[(f|6)+c>>1]=H[k+12>>2];a=a+4|0;d=d+4|0;e=e+4|0;if((o|0)!=(e|0)){continue}break}}e=0;if(l){while(1){G[(a<<1)+c>>1]=H[g+(d<<2)>>2];a=a+1|0;d=d+1|0;e=e+1|0;if((l|0)!=(e|0)){continue}break}}qa(H[H[H[j+8>>2]+64>>2]>>2]+n|0,c,i);n=i+n|0;m=m+1|0;if((m|0)!=(b|0)){continue}break}break b}a=0;if((b|0)!=1){g=b&-2;while(1){qa(H[H[H[j+8>>2]+64>>2]>>2]+a|0,c,i);a=a+i|0;qa(a+H[H[H[j+8>>2]+64>>2]>>2]|0,c,i);a=a+i|0;d=d+2|0;if((g|0)!=(d|0)){continue}break}}if(!(b&1)){break b}qa(H[H[H[j+8>>2]+64>>2]>>2]+a|0,c,i);break b}h=I[a+24|0];i=h<<1;c=pa(i);a=H[j+16>>2];if(H[a+80>>2]){g=H[H[a>>2]>>2]+H[a+48>>2]|0}else{g=0}if(!b){break b}if(h){o=h&252;l=h&3;h=h>>>0<4;while(1){a=0;e=0;if(!h){while(1){f=a<<1;k=g+(d<<2)|0;G[f+c>>1]=H[k>>2];G[(f|2)+c>>1]=H[k+4>>2];G[(f|4)+c>>1]=H[k+8>>2];G[(f|6)+c>>1]=H[k+12>>2];a=a+4|0;d=d+4|0;e=e+4|0;if((o|0)!=(e|0)){continue}break}}e=0;if(l){while(1){G[(a<<1)+c>>1]=H[g+(d<<2)>>2];a=a+1|0;d=d+1|0;e=e+1|0;if((l|0)!=(e|0)){continue}break}}qa(H[H[H[j+8>>2]+64>>2]>>2]+n|0,c,i);n=i+n|0;m=m+1|0;if((m|0)!=(b|0)){continue}break}break b}a=0;if((b|0)!=1){g=b&-2;while(1){qa(H[H[H[j+8>>2]+64>>2]>>2]+a|0,c,i);a=a+i|0;qa(a+H[H[H[j+8>>2]+64>>2]>>2]|0,c,i);a=a+i|0;d=d+2|0;if((g|0)!=(d|0)){continue}break}}if(!(b&1)){break b}qa(H[H[H[j+8>>2]+64>>2]>>2]+a|0,c,i);break b}h=I[a+24|0];i=h<<2;c=pa(i);a=H[j+16>>2];if(H[a+80>>2]){g=H[H[a>>2]>>2]+H[a+48>>2]|0}else{g=0}if(!b){break b}if(h){o=h&252;l=h&3;h=h>>>0<4;while(1){a=0;e=0;if(!h){while(1){f=a<<2;k=g+(d<<2)|0;H[f+c>>2]=H[k>>2];H[(f|4)+c>>2]=H[k+4>>2];H[(f|8)+c>>2]=H[k+8>>2];H[(f|12)+c>>2]=H[k+12>>2];a=a+4|0;d=d+4|0;e=e+4|0;if((o|0)!=(e|0)){continue}break}}e=0;if(l){while(1){H[(a<<2)+c>>2]=H[g+(d<<2)>>2];a=a+1|0;d=d+1|0;e=e+1|0;if((l|0)!=(e|0)){continue}break}}qa(H[H[H[j+8>>2]+64>>2]>>2]+n|0,c,i);n=i+n|0;m=m+1|0;if((m|0)!=(b|0)){continue}break}break b}a=0;if((b|0)!=1){g=b&-2;while(1){qa(H[H[H[j+8>>2]+64>>2]>>2]+a|0,c,i);a=a+i|0;qa(a+H[H[H[j+8>>2]+64>>2]>>2]|0,c,i);a=a+i|0;d=d+2|0;if((g|0)!=(d|0)){continue}break}}if(!(b&1)){break b}qa(H[H[H[j+8>>2]+64>>2]>>2]+a|0,c,i);break b}h=I[a+24|0];i=h<<2;c=pa(i);a=H[j+16>>2];if(H[a+80>>2]){g=H[H[a>>2]>>2]+H[a+48>>2]|0}else{g=0}if(!b){break b}if(h){o=h&252;l=h&3;h=h>>>0<4;while(1){a=0;e=0;if(!h){while(1){f=a<<2;k=g+(d<<2)|0;H[f+c>>2]=H[k>>2];H[(f|4)+c>>2]=H[k+4>>2];H[(f|8)+c>>2]=H[k+8>>2];H[(f|12)+c>>2]=H[k+12>>2];a=a+4|0;d=d+4|0;e=e+4|0;if((o|0)!=(e|0)){continue}break}}e=0;if(l){while(1){H[(a<<2)+c>>2]=H[g+(d<<2)>>2];a=a+1|0;d=d+1|0;e=e+1|0;if((l|0)!=(e|0)){continue}break}}qa(H[H[H[j+8>>2]+64>>2]>>2]+n|0,c,i);n=i+n|0;m=m+1|0;if((m|0)!=(b|0)){continue}break}break b}a=0;if((b|0)!=1){g=b&-2;while(1){qa(H[H[H[j+8>>2]+64>>2]>>2]+a|0,c,i);a=a+i|0;qa(a+H[H[H[j+8>>2]+64>>2]>>2]|0,c,i);a=a+i|0;d=d+2|0;if((g|0)!=(d|0)){continue}break}}if(!(b&1)){break b}qa(H[H[H[j+8>>2]+64>>2]>>2]+a|0,c,i)}oa(c);c=1}return c|0}function dc(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=O(0);a:{b:{if(!d){break b}c:{switch(H[a+28>>2]-1|0){case 0:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[a>>2];h=H[e>>2];l=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+l|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}H[(g<<2)+d>>2]=F[b|0];b=b+1|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 1:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[a>>2];h=H[e>>2];l=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+l|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}H[(g<<2)+d>>2]=I[b|0];b=b+1|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 2:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[a>>2];h=H[e>>2];l=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+l|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}H[(g<<2)+d>>2]=G[b>>1];b=b+2|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 3:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[a>>2];h=H[e>>2];l=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+l|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}H[(g<<2)+d>>2]=J[b>>1];b=b+2|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 4:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[a>>2];h=H[e>>2];l=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+l|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}H[(g<<2)+d>>2]=H[b>>2];b=b+4|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 5:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[a>>2];h=H[e>>2];l=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+l|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}H[(g<<2)+d>>2]=H[b>>2];b=b+4|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 6:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[a>>2];h=H[e>>2];l=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+l|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}e=H[b>>2];if(H[b+4>>2]){break b}H[(g<<2)+d>>2]=e;b=b+8|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 7:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[a>>2];h=H[e>>2];l=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+l|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}e=H[b>>2];if(H[b+4>>2]){break b}H[(g<<2)+d>>2]=e;b=b+8|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 8:d:{e:{e=I[a+24|0];c=c&255;if(!(c>>>0>e>>>0?e:c)){break e}e=H[a>>2];k=H[e>>2];g=k;f=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+f|0;g=b+g|0;f=H[e+4>>2];e=f-k|0;if(!I[a+32|0]){k=0;if((b|0)>=(e|0)){break d}b=0;while(1){m=L[g>>2];if(m>=O(4294967296)|m=O(0)){i=~~m>>>0}else{i=0}H[e>>2]=i;b=b+1|0;e=I[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break e}g=g+4|0;if(f>>>0>g>>>0){continue}break}break d}k=0;if((b|0)>=(e|0)){break d}b=0;while(1){m=L[g>>2];if(m>=O(4294967296)|mO(1)){break d}e=(b<<2)+d|0;j=T(+m*4294967295+.5);f:{if(j<4294967296&j>=0){i=~~j>>>0;break f}i=0}H[e>>2]=i;b=b+1|0;e=I[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break e}g=g+4|0;if(f>>>0>g>>>0){continue}break}break d}k=1;if(c>>>0<=e>>>0){break d}ra((e<<2)+d|0,0,c-e<<2)}return k;case 9:g:{h:{e=I[a+24|0];c=c&255;if(!(c>>>0>e>>>0?e:c)){break h}e=H[a>>2];k=H[e>>2];g=k;f=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+f|0;g=b+g|0;f=H[e+4>>2];e=f-k|0;if(!I[a+32|0]){k=0;if((b|0)>=(e|0)){break g}b=0;while(1){j=M[g>>3];if(j>=4294967295|j<0|(P(j)==Infinity|j!=j)){break g}e=(b<<2)+d|0;if(j<4294967296&j>=0){i=~~j>>>0}else{i=0}H[e>>2]=i;b=b+1|0;e=I[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break h}g=g+8|0;if(f>>>0>g>>>0){continue}break}break g}k=0;if((b|0)>=(e|0)){break g}b=0;while(1){j=M[g>>3];if(j>=4294967295|j<0|(P(j)==Infinity|j!=j)){break g}if(j>1){break g}e=(b<<2)+d|0;j=T(j*4294967295+.5);i:{if(j<4294967296&j>=0){i=~~j>>>0;break i}i=0}H[e>>2]=i;b=b+1|0;e=I[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break h}g=g+8|0;if(f>>>0>g>>>0){continue}break}break g}k=1;if(c>>>0<=e>>>0){break g}ra((e<<2)+d|0,0,c-e<<2)}return k;case 10:break c;default:break b}}e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[a>>2];h=H[e>>2];l=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+l|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}H[(g<<2)+d>>2]=I[b|0];b=b+1|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}ra((e<<2)+d|0,0,(c&255)-e<<2)}return k}ra((e<<2)+d|0,0,(c&255)-e<<2);return 1}function ye(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;a:{b:{c:{d:{e:{if(H[a+92>>2]==H[a+88>>2]){break e}c=H[a+52>>2];f:{if((c|0)!=H[a+56>>2]){H[c>>2]=b;H[a+52>>2]=c+4;break f}h=H[a+48>>2];g=c-h|0;d=g>>2;f=d+1|0;if(f>>>0>=1073741824){break a}e=g>>>1|0;g=g>>>0>=2147483644?1073741823:f>>>0>>0?e:f;if(g){if(g>>>0>=1073741824){break d}e=pa(g<<2)}else{e=0}f=e+(d<<2)|0;H[f>>2]=b;d=f+4|0;if((c|0)!=(h|0)){while(1){f=f-4|0;c=c-4|0;H[f>>2]=H[c>>2];if((c|0)!=(h|0)){continue}break}}H[a+56>>2]=e+(g<<2);H[a+52>>2]=d;H[a+48>>2]=f;if(!h){break f}oa(h)}H[a+84>>2]=0;c=-1;e=-1;g:{if((b|0)==-1){break g}d=H[a+4>>2];e=b+1|0;e=(e>>>0)%3|0?e:b-2|0;if((e|0)!=-1){c=H[H[d>>2]+(e<<2)>>2]}h:{if((b>>>0)%3|0){l=b-1|0;break h}l=b+2|0;e=-1;if((l|0)==-1){break g}}e=H[H[d>>2]+(l<<2)>>2]}i=e>>>3&536870908;d=H[a+36>>2];h=d+(c>>>3&536870908)|0;g=H[h>>2];f=1<>2]=f|g;f=a+8|0;if((b|0)!=-1){d=b+1|0;d=(d>>>0)%3|0?d:b-2|0}else{d=-1}Ua(f,c,d);d=H[a+36>>2]}f=d+i|0;d=H[f>>2];c=1<>2]=c|d;d=a+8|0;c=-1;i:{if((b|0)==-1){break i}c=b-1|0;if((b>>>0)%3|0){break i}c=b+2|0}Ua(d,e,c)}c=-1;c=(b|0)!=-1?H[H[H[a+4>>2]>>2]+(b<<2)>>2]:c;f=H[a+36>>2]+(c>>>3&536870908)|0;d=H[f>>2];e=1<>2]=d|e;Ua(a+8|0,c,b)}d=H[a+84>>2];if((d|0)>2){break e}while(1){e=N(d,12)+a|0;b=H[e+52>>2];if((b|0)==H[e+48>>2]){d=d+1|0;if((d|0)!=3){continue}break e}b=b-4|0;c=H[b>>2];H[e+52>>2]=b;H[a+84>>2]=d;if((c|0)==-1){break e}f=H[a+24>>2];b=(c>>>0)/3|0;j:{if(H[f+(b>>>3&268435452)>>2]>>>b&1){break j}k:{while(1){k=(c>>>0)/3|0;b=(k>>>3&268435452)+f|0;H[b>>2]=H[b>>2]|1<>2]>>2]+(c<<2)>>2]:d;f=H[a+36>>2]+(d>>>3&536870908)|0;e=H[f>>2];b=1<>2]=b|e;i=H[(H[H[a+16>>2]+96>>2]+N(k,12)|0)+((c>>>0)%3<<2)>>2];l=H[H[a+20>>2]+4>>2];f=H[l+4>>2];t:{if((f|0)!=H[l+8>>2]){H[f>>2]=i;H[l+4>>2]=f+4;break t}j=H[l>>2];h=f-j|0;g=h>>2;e=g+1|0;if(e>>>0>=1073741824){break s}b=h>>>1|0;h=h>>>0>=2147483644?1073741823:b>>>0>e>>>0?b:e;if(h){if(h>>>0>=1073741824){break d}e=pa(h<<2)}else{e=0}b=e+(g<<2)|0;H[b>>2]=i;g=b+4|0;if((f|0)!=(j|0)){while(1){b=b-4|0;f=f-4|0;H[b>>2]=H[f>>2];if((f|0)!=(j|0)){continue}break}}H[l+8>>2]=e+(h<<2);H[l+4>>2]=g;H[l>>2]=b;if(!j){break t}oa(j)}j=H[a+12>>2];f=H[j+4>>2];u:{if((f|0)!=H[j+8>>2]){H[f>>2]=c;H[j+4>>2]=f+4;break u}i=H[j>>2];h=f-i|0;g=h>>2;e=g+1|0;if(e>>>0>=1073741824){break r}b=h>>>1|0;h=h>>>0>=2147483644?1073741823:b>>>0>e>>>0?b:e;if(h){if(h>>>0>=1073741824){break d}e=pa(h<<2)}else{e=0}b=e+(g<<2)|0;H[b>>2]=c;g=b+4|0;if((f|0)!=(i|0)){while(1){b=b-4|0;f=f-4|0;H[b>>2]=H[f>>2];if((f|0)!=(i|0)){continue}break}}H[j+8>>2]=e+(h<<2);H[j+4>>2]=g;H[j>>2]=b;if(!i){break u}oa(i)}b=H[a+12>>2];H[H[b+12>>2]+(d<<2)>>2]=H[b+24>>2];H[b+24>>2]=H[b+24>>2]+1}if((c|0)==-1){break k}g=H[a+4>>2];f=-1;b=c+1|0;b=(b>>>0)%3|0?b:c-2|0;if((b|0)!=-1){f=H[H[g+12>>2]+(b<<2)>>2]}v:{w:{if((N(k,3)|0)!=(c|0)){d=c-1|0;break w}d=c+2|0;c=-1;if((d|0)==-1){break v}}c=H[H[g+12>>2]+(d<<2)>>2]}d=(c|0)==-1;e=(c>>>0)/3|0;if((f|0)!=-1){b=(f>>>0)/3|0;b=H[H[a+24>>2]+(b>>>3&268435452)>>2]&1<>2]+(b>>>3&536870908)>>2]>>>b&1){break x}k=0;b=H[H[g>>2]+(c<<2)>>2];if(!(H[H[a+36>>2]+(b>>>3&536870908)>>2]>>>b&1)){b=H[a+88>>2]+(b<<2)|0;e=H[b>>2];H[b>>2]=e+1;k=(e|0)<=0?2:1}if(H[a+84>>2]>=(k|0)&l){break m}j=N(k,12)+a|0;b=H[j+52>>2];y:{if((b|0)!=H[j+56>>2]){H[b>>2]=c;H[j+52>>2]=b+4;break y}i=H[j+48>>2];h=b-i|0;d=h>>2;g=d+1|0;if(g>>>0>=1073741824){break c}e=h>>>1|0;g=h>>>0>=2147483644?1073741823:e>>>0>g>>>0?e:g;if(g){if(g>>>0>=1073741824){break d}e=pa(g<<2)}else{e=0}d=e+(d<<2)|0;H[d>>2]=c;c=d+4|0;if((b|0)!=(i|0)){while(1){d=d-4|0;b=b-4|0;H[d>>2]=H[b>>2];if((b|0)!=(i|0)){continue}break}}H[j+48>>2]=d;H[j+52>>2]=c;H[j+56>>2]=e+(g<<2);if(!i){break y}oa(i)}if(H[a+84>>2]<=(k|0)){break x}H[a+84>>2]=k}if(l){break k}c=-1;if((f|0)==-1){break n}}c=H[H[H[a+4>>2]>>2]+(f<<2)>>2]}b=0;if(!(H[H[a+36>>2]+(c>>>3&536870908)>>2]>>>c&1)){b=H[a+88>>2]+(c<<2)|0;c=H[b>>2];H[b>>2]=c+1;b=(c|0)<=0?2:1}if(H[a+84>>2]<(b|0)){break l}c=f}f=H[a+24>>2];continue}break}k=N(b,12)+a|0;c=H[k+52>>2];z:{if((c|0)!=H[k+56>>2]){H[c>>2]=f;H[k+52>>2]=c+4;break z}i=H[k+48>>2];h=c-i|0;d=h>>2;g=d+1|0;if(g>>>0>=1073741824){break b}e=h>>>1|0;g=h>>>0>=2147483644?1073741823:e>>>0>g>>>0?e:g;if(g){if(g>>>0>=1073741824){break d}e=pa(g<<2)}else{e=0}d=e+(d<<2)|0;H[d>>2]=f;f=d+4|0;if((c|0)!=(i|0)){while(1){d=d-4|0;c=c-4|0;H[d>>2]=H[c>>2];if((c|0)!=(i|0)){continue}break}}H[k+48>>2]=d;H[k+52>>2]=f;H[k+56>>2]=e+(g<<2);if(!i){break z}oa(i)}d=H[a+84>>2];if((d|0)<=(b|0)){break j}H[a+84>>2]=b;d=b;break j}d=H[a+84>>2]}if((d|0)<3){continue}break}}return 1}wa();v()}sa();v()}sa();v()}sa();v()}function gd(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;n=ca-96|0;ca=n;o=H[a+4>>2];d=H[o+32>>2];i=H[d+8>>2];j=H[d+12>>2];e=j;c=H[d+20>>2];f=H[d+16>>2];a:{if((e|0)<=(c|0)&f>>>0>=i>>>0|(c|0)>(e|0)){break a}p=H[d>>2];g=I[p+f|0];h=f+1|0;e=h?c:c+1|0;H[d+16>>2]=h;H[d+20>>2]=e;if((e|0)>=(j|0)&h>>>0>=i>>>0|(e|0)>(j|0)){break a}m=I[h+p|0];h=f+2|0;e=h>>>0<2?c+1|0:c;H[d+16>>2]=h;H[d+20>>2]=e;l=g<<24>>24;b:{if((l|0)>=0){k=H[a+216>>2];if(g>>>0>=(H[a+220>>2]-k|0)/144>>>0){break a}k=k+N(g,144)|0;if(H[k>>2]<0){break b}break a}if(H[a+212>>2]>=0){break a}k=a+212|0}H[k>>2]=b;c:{d:{e:{f:{g:{h:{k=J[o+36>>1];i:{if(((k<<8|k>>>8)&65535)>>>0>=258){if((e|0)>=(j|0)&h>>>0>=i>>>0|(e|0)>(j|0)){break a}e=I[h+p|0];f=f+3|0;c=f>>>0<3?c+1|0:c;H[d+16>>2]=f;H[d+20>>2]=c;if(e>>>0>1){break a}d=e>>>0<2?e:0;if(!m){break i}if(!d){break h}break a}if(m){break g}d=0}if((l|0)<0){e=a+184|0}else{c=H[a+216>>2]+N(g,144)|0;F[c+100|0]=0;e=c+104|0}if((d|0)!=1){break e}c=ca-112|0;ca=c;h=H[H[a+4>>2]+44>>2];d=pa(120);H[d>>2]=12172;H[d+4>>2]=0;H[d+116>>2]=0;H[d+112>>2]=e;H[d+108>>2]=h;H[d+12>>2]=0;H[d+16>>2]=0;H[d+20>>2]=0;H[d+24>>2]=0;H[d+28>>2]=0;H[d+32>>2]=0;H[d+36>>2]=0;H[d+40>>2]=0;H[d+44>>2]=0;H[d+48>>2]=0;H[d+52>>2]=0;H[d+56>>2]=0;H[d+60>>2]=0;H[d+8>>2]=12384;f=d- -64|0;H[f>>2]=0;H[f+4>>2]=0;H[d+72>>2]=0;H[d+76>>2]=0;H[d+80>>2]=0;H[d+84>>2]=0;H[d+88>>2]=0;H[d+104>>2]=0;H[d+96>>2]=0;H[d+100>>2]=0;f=H[a+8>>2];H[c+48>>2]=0;H[c+52>>2]=0;H[c+40>>2]=0;H[c+44>>2]=0;i=c+32|0;H[i>>2]=0;H[i+4>>2]=0;H[c+24>>2]=0;H[c+28>>2]=0;g=c- -64|0;H[g>>2]=0;H[g+4>>2]=0;H[c+72>>2]=0;H[c+76>>2]=0;H[c+80>>2]=0;H[c+84>>2]=0;H[c+88>>2]=0;H[c+104>>2]=0;H[c+16>>2]=0;H[c+20>>2]=0;H[c+56>>2]=0;H[c+60>>2]=0;H[c+8>>2]=12384;H[c+96>>2]=0;H[c+100>>2]=0;H[c+12>>2]=f;g=H[f>>2];j=H[f+4>>2];F[c+111|0]=0;m=i;i=c+111|0;Oa(m,(j-g>>2>>>0)/3|0,i);g=H[c+12>>2];j=H[g+28>>2];g=H[g+24>>2];F[c+111|0]=0;Oa(c+44|0,j-g>>2,i);H[c+28>>2]=d;H[c+24>>2]=h;H[c+20>>2]=e;H[c+16>>2]=f;f=d+8|0;e=c+8|0;fd(f,e);j:{if((e|0)==(f|0)){H[d+92>>2]=H[e+84>>2];break j}Cb(d+56|0,H[e+48>>2],H[e+52>>2]);Cb(d+68|0,H[e+60>>2],H[e- -64>>2]);Cb(d+80|0,H[e+72>>2],H[e+76>>2]);H[d+92>>2]=H[e+84>>2];Aa(d+96|0,H[e+88>>2],H[e+92>>2])}H[c+8>>2]=12384;e=H[c+96>>2];if(e){H[c+100>>2]=e;oa(e)}e=H[c+80>>2];if(e){H[c+84>>2]=e;oa(e)}e=H[c+68>>2];if(e){H[c+72>>2]=e;oa(e)}e=H[c+56>>2];if(e){H[c+60>>2]=e;oa(e)}H[c+8>>2]=12620;e=H[c+44>>2];if(e){oa(e)}e=H[c+32>>2];if(e){oa(e)}ca=c+112|0;break d}if((l|0)>=0){break f}break a}if((l|0)<0){break a}}e=H[a+216>>2];c=H[o+44>>2];d=pa(80);H[d>>2]=12932;H[d+4>>2]=0;H[d+76>>2]=0;H[d+68>>2]=c;H[d+8>>2]=11872;H[d+12>>2]=0;H[d+16>>2]=0;H[d+20>>2]=0;H[d+24>>2]=0;H[d+28>>2]=0;H[d+32>>2]=0;H[d+36>>2]=0;H[d+40>>2]=0;H[d+44>>2]=0;H[d+48>>2]=0;H[d+52>>2]=0;e=e+N(g,144)|0;f=e+104|0;H[d+72>>2]=f;H[d- -64>>2]=0;H[d+56>>2]=0;H[d+60>>2]=0;H[n+24>>2]=c;c=n;H[c+68>>2]=0;H[c+72>>2]=0;H[c+60>>2]=0;H[c+64>>2]=0;H[c+52>>2]=0;H[c+56>>2]=0;H[c+44>>2]=0;H[c+48>>2]=0;H[c+84>>2]=0;H[c+88>>2]=0;H[c+76>>2]=0;H[c+80>>2]=0;H[c+28>>2]=d;h=H[c+28>>2];H[c+8>>2]=H[c+24>>2];H[c+12>>2]=h;H[c+20>>2]=f;f=e+4|0;H[c+16>>2]=f;H[c+36>>2]=0;H[c+40>>2]=0;H[c+32>>2]=11872;e=H[c+20>>2];H[c>>2]=H[c+16>>2];H[c+4>>2]=e;e=c+32|0;Ie(e,f,c);c=d+8|0;fd(c,e);if((c|0)!=(e|0)){Cb(d+56|0,H[e+48>>2],H[e+52>>2])}He(e);break c}c=ca+-64|0;ca=c;h=H[H[a+4>>2]+44>>2];d=pa(80);H[d>>2]=12640;H[d+4>>2]=0;H[d+76>>2]=0;H[d+72>>2]=e;H[d+68>>2]=h;H[d+8>>2]=12804;H[d+12>>2]=0;H[d+16>>2]=0;H[d+20>>2]=0;H[d+24>>2]=0;H[d+28>>2]=0;H[d+32>>2]=0;H[d+36>>2]=0;H[d+40>>2]=0;H[d+44>>2]=0;H[d+48>>2]=0;H[d+52>>2]=0;H[d- -64>>2]=0;i=d+56|0;f=i;H[f>>2]=0;H[f+4>>2]=0;f=H[a+8>>2];H[c+40>>2]=0;H[c+44>>2]=0;H[c+32>>2]=0;H[c+36>>2]=0;g=c+24|0;H[g>>2]=0;H[g+4>>2]=0;H[c+16>>2]=0;H[c+20>>2]=0;H[c+56>>2]=0;H[c+8>>2]=0;H[c+12>>2]=0;H[c+48>>2]=0;H[c+52>>2]=0;H[c>>2]=12804;H[c+4>>2]=f;j=H[f>>2];l=H[f+4>>2];F[c+63|0]=0;m=g;g=c+63|0;Oa(m,(l-j>>2>>>0)/3|0,g);j=H[c+4>>2];l=H[j+28>>2];j=H[j+24>>2];F[c+63|0]=0;Oa(c+36|0,l-j>>2,g);H[c+20>>2]=d;H[c+16>>2]=h;H[c+12>>2]=e;H[c+8>>2]=f;fd(d+8|0,c);Cb(i,H[c+48>>2],H[c+52>>2]);H[c>>2]=12804;e=H[c+48>>2];if(e){H[c+52>>2]=e;oa(e)}H[c>>2]=12620;e=H[c+36>>2];if(e){oa(e)}e=H[c+24>>2];if(e){oa(e)}ca=c- -64|0}if(!d){break a}}d=od(pa(64),d);c=H[a+4>>2];a=d;d=b;k:{l:{if((d|0)>=0){h=c+8|0;b=H[c+12>>2];i=H[c+8>>2];e=b-i>>2;m:{if((e|0)>(d|0)){break m}f=d+1|0;if(d>>>0>=e>>>0){Vb(h,f-e|0);break m}if(e>>>0<=f>>>0){break m}f=i+(f<<2)|0;if((f|0)!=(b|0)){while(1){b=b-4|0;e=H[b>>2];H[b>>2]=0;if(e){ea[H[H[e>>2]+4>>2]](e)}if((b|0)!=(f|0)){continue}break}}H[c+12>>2]=f}c=H[h>>2]+(d<<2)|0;b=H[c>>2];H[c>>2]=a;if(b){break l}break k}b=a;if(!a){break k}}ea[H[H[b>>2]+4>>2]](b)}q=(d^-1)>>>31|0}ca=n+96|0;return q|0}function Kd(a){var b=0,c=0,d=0,e=0,f=0,g=0;e=ca-16|0;ca=e;H[e+12>>2]=a;a:{if(a>>>0<=211){d=H[Jd(14256,14448,e+12|0)>>2];break a}if(a>>>0>=4294967292){X();v()}f=(a>>>0)/210|0;d=N(f,210);H[e+8>>2]=a-d;g=Jd(14448,14640,e+8|0)-14448>>2;while(1){d=H[(g<<2)+14448>>2]+d|0;a=5;while(1){b:{if((a|0)==47){a=211;while(1){b=(d>>>0)/(a>>>0)|0;if(b>>>0>>0){break a}if((N(a,b)|0)==(d|0)){break b}b=a+10|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+12|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+16|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+18|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+22|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+28|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+30|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+36|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+40|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+42|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+46|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+52|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+58|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+60|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+66|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+70|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+72|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+78|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+82|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+88|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+96|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+100|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+102|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+106|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+108|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+112|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+120|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+126|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+130|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+136|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+138|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+142|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+148|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+150|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+156|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+162|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+166|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+168|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+172|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+178|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+180|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+186|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+190|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+192|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+196|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+198|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+208|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}a=a+210|0;if((N(b,c)|0)!=(d|0)){continue}break}break b}b=H[(a<<2)+14256>>2];c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}a=a+1|0;if((N(b,c)|0)!=(d|0)){continue}}break}d=g+1|0;a=(d|0)==48;g=a?0:d;f=a+f|0;d=N(f,210);continue}}ca=e+16|0;return d}function Ib(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;j=ca-16|0;ca=j;a:{b:{c:{d:{if(I[H[a+4>>2]+36|0]<=1){k=-1;c=H[b+20>>2];d=H[b+16>>2];e=d+4|0;c=e>>>0<4?c+1|0:c;g=H[b+12>>2];if(K[b+8>>2]>>0&(g|0)<=(c|0)|(c|0)>(g|0)){break c}d=d+H[b>>2]|0;l=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);H[j+12>>2]=l;H[b+16>>2]=e;H[b+20>>2]=c;break d}k=-1;if(!Ea(1,j+12|0,b)){break c}l=H[j+12>>2]}e:{f:{g:{h:{i:{if(!l){break i}c=H[a+8>>2];if((H[c+4>>2]-H[c>>2]>>2>>>0)/3>>>0>>0){break c}c=J[H[a+4>>2]+36>>1];if(((c<<8|c>>>8)&65535)>>>0>=258){j:{while(1){if(!Ea(1,j+8|0,b)){break c}c=H[j+8>>2];if(!Ea(1,j+8|0,b)){break c}f=c+f|0;c=H[j+8>>2];if(f>>>0>>0){break c}g=f-c|0;c=H[a+40>>2];k:{if((c|0)!=H[a+44>>2]){H[c+4>>2]=f;H[c>>2]=g;H[a+40>>2]=c+12;l=H[j+12>>2];break k}m=H[a+36>>2];d=c-m|0;o=(d|0)/12|0;e=o+1|0;if(e>>>0>=357913942){break j}c=o<<1;h=o>>>0>=178956970?357913941:c>>>0>e>>>0?c:e;if(h){if(h>>>0>=357913942){break b}i=pa(N(h,12))}else{i=0}e=i+N(o,12)|0;H[e+4>>2]=f;H[e>>2]=g;c=va(e+N((d|0)/-12|0,12)|0,m,d);H[a+44>>2]=i+N(h,12);H[a+40>>2]=e+12;H[a+36>>2]=c;if(!m){break k}oa(m)}p=p+1|0;if(l>>>0>p>>>0){continue}break}k=0;Db(b,0,0);if(l){while(1){e=I[b+36|0];c=J[H[a+4>>2]+36>>1];l:{m:{if(((c<<8|c>>>8)&65535)>>>0<=513){if(!e){break l}p=0;c=H[b+32>>2];n=c>>>3|0;g=H[b+24>>2];e=n+g|0;d=H[b+28>>2];n:{if(e>>>0>=d>>>0){f=c;break n}e=I[e|0];f=c+1|0;H[b+32>>2]=f;n=f>>>3|0;p=e>>>(c&7)&1}if(d>>>0>g+n>>>0){break m}break l}if(!e){break l}p=0;f=H[b+32>>2];c=H[b+24>>2]+(f>>>3|0)|0;if(c>>>0>=K[b+28>>2]){break l}p=I[c|0]>>>(f&7)&1}H[b+32>>2]=f+1}c=H[a+36>>2]+N(k,12)|0;F[c+8|0]=I[c+8|0]&254|p&1;k=k+1|0;if((k|0)!=(l|0)){continue}break}}F[b+36|0]=0;f=H[b+20>>2];e=0;d=H[b+32>>2]+7|0;e=d>>>0<7?1:e;c=e>>>3|0;e=(e&7)<<29|d>>>3;d=e+H[b+16>>2]|0;c=c+f|0;H[b+16>>2]=d;H[b+20>>2]=d>>>0>>0?c+1|0:c;break i}sa();v()}while(1){d=H[b+8>>2];c=H[b+12>>2];g=c;c=H[b+20>>2];e=c;h=H[b+16>>2];f=h+4|0;c=f>>>0<4?c+1|0:c;i=f;if(f>>>0>d>>>0&(c|0)>=(g|0)|(c|0)>(g|0)){break c}m=H[b>>2];f=m+h|0;o=I[f|0]|I[f+1|0]<<8|(I[f+2|0]<<16|I[f+3|0]<<24);H[b+16>>2]=i;H[b+20>>2]=c;c=e;f=h+8|0;c=f>>>0<8?c+1|0:c;if(d>>>0>>0&(c|0)>=(g|0)|(c|0)>(g|0)){break c}i=i+m|0;i=I[i|0]|I[i+1|0]<<8|(I[i+2|0]<<16|I[i+3|0]<<24);H[b+16>>2]=f;H[b+20>>2]=c;if(d>>>0<=f>>>0&(c|0)>=(g|0)|(c|0)>(g|0)){break c}d=I[f+m|0];c=h+9|0;e=c>>>0<9?e+1|0:e;H[b+16>>2]=c;H[b+20>>2]=e;f=d&1;c=H[a+40>>2];o:{if((c|0)!=H[a+44>>2]){F[c+8|0]=f;H[c+4>>2]=i;H[c>>2]=o;H[a+40>>2]=c+12;l=H[j+12>>2];break o}m=H[a+36>>2];d=c-m|0;h=(d|0)/12|0;e=h+1|0;if(e>>>0>=357913942){break h}c=h<<1;g=h>>>0>=178956970?357913941:c>>>0>e>>>0?c:e;if(g){if(g>>>0>=357913942){break b}e=pa(N(g,12))}else{e=0}h=e+N(h,12)|0;F[h+8|0]=f;H[h+4>>2]=i;H[h>>2]=o;c=va(h+N((d|0)/-12|0,12)|0,m,d);H[a+44>>2]=e+N(g,12);H[a+40>>2]=h+12;H[a+36>>2]=c;if(!m){break o}oa(m)}n=n+1|0;if(l>>>0>n>>>0){continue}break}}H[j+8>>2]=0;c=J[H[a+4>>2]+36>>1];c=(c<<8|c>>>8)&65535;p:{if(c>>>0<=511){k=-1;c=H[b+20>>2];d=H[b+16>>2];e=d+4|0;c=e>>>0<4?c+1|0:c;f=H[b+12>>2];if(K[b+8>>2]>>0&(f|0)<=(c|0)|(c|0)>(f|0)){break c}d=d+H[b>>2]|0;f=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);H[b+16>>2]=e;H[b+20>>2]=c;break p}if((c|0)!=512){break e}k=-1;if(!Ea(1,j+8|0,b)){break c}f=H[j+8>>2]}if(!f){break e}c=J[H[a+4>>2]+36>>1];if(((c<<8|c>>>8)&65535)>>>0<258){break f}n=0;l=0;while(1){if(!Ea(1,j+4|0,b)){break c}l=H[j+4>>2]+l|0;c=H[a+52>>2];q:{if((c|0)!=H[a+56>>2]){H[c>>2]=l;H[a+52>>2]=c+4;break q}i=H[a+48>>2];g=c-i|0;e=g>>2;d=e+1|0;if(d>>>0>=1073741824){break g}c=g>>>1|0;d=g>>>0>=2147483644?1073741823:c>>>0>d>>>0?c:d;if(d){if(d>>>0>=1073741824){break b}c=pa(d<<2)}else{c=0}e=c+(e<<2)|0;H[e>>2]=l;c=va(c,i,g);H[a+56>>2]=c+(d<<2);H[a+52>>2]=e+4;H[a+48>>2]=c;if(!i){break q}oa(i)}n=n+1|0;if((n|0)!=(f|0)){continue}break}break e}sa();v()}sa();v()}k=0;while(1){c=H[b+20>>2];d=H[b+16>>2];e=d+4|0;c=e>>>0<4?c+1|0:c;g=H[b+12>>2];if(K[b+8>>2]>>0&(g|0)<=(c|0)|(c|0)>(g|0)){k=-1;break c}d=d+H[b>>2]|0;g=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);H[b+16>>2]=e;H[b+20>>2]=c;c=H[a+52>>2];r:{if((c|0)!=H[a+56>>2]){H[c>>2]=g;H[a+52>>2]=c+4;break r}h=H[a+48>>2];i=c-h|0;e=i>>2;d=e+1|0;if(d>>>0>=1073741824){break a}c=i>>>1|0;d=i>>>0>=2147483644?1073741823:c>>>0>d>>>0?c:d;if(d){if(d>>>0>=1073741824){break b}c=pa(d<<2)}else{c=0}e=c+(e<<2)|0;H[e>>2]=g;c=va(c,h,i);H[a+56>>2]=c+(d<<2);H[a+52>>2]=e+4;H[a+48>>2]=c;if(!h){break r}oa(h)}k=k+1|0;if((k|0)!=(f|0)){continue}break}}k=H[b+16>>2]}ca=j+16|0;return k}wa();v()}sa();v()}function Va(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=O(0),k=0,l=0;a:{if(!d){break a}b:{c:{switch(H[a+28>>2]-1|0){case 0:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[a>>2];g=H[e>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);k=b;b=b+i|0;b=b+g|0;g=H[e+4>>2];i=I[a+32|0];while(1){if(b>>>0>=g>>>0){break a}j=O(F[b|0]);L[(h<<2)+d>>2]=i?O(j/O(127)):j;b=b+1|0;h=h+1|0;e=I[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break a}d=(e<<2)+d|0;a=(c&255)-e|0;break b;case 1:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[a>>2];g=H[e>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);k=b;b=b+i|0;b=b+g|0;g=H[e+4>>2];i=I[a+32|0];while(1){if(b>>>0>=g>>>0){break a}j=O(I[b|0]);L[(h<<2)+d>>2]=i?O(j/O(255)):j;b=b+1|0;h=h+1|0;e=I[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break a}d=(e<<2)+d|0;a=(c&255)-e|0;break b;case 2:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[a>>2];g=H[e>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);k=b;b=b+i|0;b=b+g|0;g=H[e+4>>2];i=I[a+32|0];while(1){if(b>>>0>=g>>>0){break a}j=O(G[b>>1]);L[(h<<2)+d>>2]=i?O(j/O(32767)):j;b=b+2|0;h=h+1|0;e=I[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break a}d=(e<<2)+d|0;a=(c&255)-e|0;break b;case 3:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[a>>2];g=H[e>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);k=b;b=b+i|0;b=b+g|0;g=H[e+4>>2];i=I[a+32|0];while(1){if(b>>>0>=g>>>0){break a}j=O(J[b>>1]);L[(h<<2)+d>>2]=i?O(j/O(65535)):j;b=b+2|0;h=h+1|0;e=I[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break a}d=(e<<2)+d|0;a=(c&255)-e|0;break b;case 4:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[a>>2];g=H[e>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);k=b;b=b+i|0;b=b+g|0;g=H[e+4>>2];i=I[a+32|0];while(1){if(b>>>0>=g>>>0){break a}j=O(H[b>>2]);L[(h<<2)+d>>2]=i?O(j*O(4.656612873077393e-10)):j;b=b+4|0;h=h+1|0;e=I[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break a}d=(e<<2)+d|0;a=(c&255)-e|0;break b;case 5:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[a>>2];g=H[e>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);k=b;b=b+i|0;b=b+g|0;g=H[e+4>>2];i=I[a+32|0];while(1){if(b>>>0>=g>>>0){break a}j=O(K[b>>2]);L[(h<<2)+d>>2]=i?O(j*O(2.3283064365386963e-10)):j;b=b+4|0;h=h+1|0;e=I[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break a}d=(e<<2)+d|0;a=(c&255)-e|0;break b;case 6:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[a>>2];g=H[e>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);k=b;b=b+i|0;b=b+g|0;g=H[e+4>>2];i=I[a+32|0];while(1){if(b>>>0>=g>>>0){break a}j=O(+K[b>>2]+ +H[b+4>>2]*4294967296);L[(h<<2)+d>>2]=i?O(j*O(10842021724855044e-35)):j;b=b+8|0;h=h+1|0;e=I[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break a}d=(e<<2)+d|0;a=(c&255)-e|0;break b;case 7:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[a>>2];g=H[e>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);k=b;b=b+i|0;b=b+g|0;g=H[e+4>>2];i=I[a+32|0];while(1){if(b>>>0>=g>>>0){break a}j=O(+K[b>>2]+ +K[b+4>>2]*4294967296);L[(h<<2)+d>>2]=i?O(j*O(5.421010862427522e-20)):j;b=b+8|0;h=h+1|0;e=I[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break a}d=(e<<2)+d|0;a=(c&255)-e|0;break b;case 8:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[a>>2];g=H[e>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);k=b;b=b+i|0;b=b+g|0;g=H[e+4>>2];while(1){if(b>>>0>=g>>>0){break a}L[(h<<2)+d>>2]=L[b>>2];b=b+4|0;h=h+1|0;e=I[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break a}d=(e<<2)+d|0;a=(c&255)-e|0;break b;case 9:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[a>>2];g=H[e>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);k=b;b=b+i|0;b=b+g|0;g=H[e+4>>2];while(1){if(b>>>0>=g>>>0){break a}L[(h<<2)+d>>2]=M[b>>3];b=b+8|0;h=h+1|0;e=I[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break a}d=(e<<2)+d|0;a=(c&255)-e|0;break b;case 10:break c;default:break a}}e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[a>>2];g=H[e>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);k=b;b=b+i|0;b=b+g|0;g=H[e+4>>2];while(1){if(b>>>0>=g>>>0){break a}L[(h<<2)+d>>2]=I[b|0]?O(1):O(0);b=b+1|0;h=h+1|0;e=I[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break a}d=(e<<2)+d|0;a=(c&255)-e|0}ra(d,0,a<<2)}return l}function Hh(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;e=ca-32|0;ca=e;k=H[a+32>>2];b=J[a+36>>1];a:{b:{if(((b<<8|b>>>8)&65535)>>>0<=513){b=H[k+8>>2];d=H[k+12>>2];c=b;b=H[k+20>>2];f=b;g=H[k+16>>2];h=g+4|0;b=h>>>0<4?b+1|0:b;if(c>>>0>>0&(b|0)>=(d|0)|(b|0)>(d|0)){break a}l=H[k>>2];i=l+g|0;n=I[i|0]|I[i+1|0]<<8|(I[i+2|0]<<16|I[i+3|0]<<24);H[k+16>>2]=h;H[k+20>>2]=b;i=c;c=d;b=f;d=g+8|0;b=d>>>0<8?b+1|0:b;if(d>>>0>i>>>0&(b|0)>=(c|0)|(b|0)>(c|0)){break a}c=h+l|0;H[e+24>>2]=I[c|0]|I[c+1|0]<<8|(I[c+2|0]<<16|I[c+3|0]<<24);H[k+16>>2]=d;H[k+20>>2]=b;break b}if(!Fb(1,e+28|0,k)){break a}if(!Fb(1,e+24|0,H[a+32>>2])){break a}n=H[e+28>>2]}if(n>>>0>1431655765){break a}d=H[a+32>>2];b=d;g=H[b+8>>2];c=H[b+16>>2];h=H[b+12>>2];b=H[b+20>>2];f=Sj(g-c|0,h-(b+(c>>>0>g>>>0)|0)|0,3,0);if(!da&f>>>0>>0|((b|0)>=(h|0)&c>>>0>=g>>>0|(b|0)>(h|0))){break a}g=I[c+H[d>>2]|0];c=c+1|0;b=c?b:b+1|0;H[d+16>>2]=c;H[d+20>>2]=b;c:{d:{if(!g){k=0;c=ca-32|0;ca=c;H[c+24>>2]=0;H[c+16>>2]=0;H[c+20>>2]=0;e:{f:{b=N(n,3);if(b){if(b>>>0>=1073741824){break f}d=N(n,12);k=pa(d);ra(k,0,d)}b=kd(b,1,H[a+32>>2],k);g:{h:{if(!(!n|!b)){d=0;while(1){i:{g=H[(d<<2)+k>>2];b=g>>>1|0;j:{if(g&1){if((b|0)>(j|0)){break i}b=0-b|0;break j}if((j^2147483647)>>>0>>0){break i}}g=b+j|0;H[c>>2]=g;h=H[(d+1<<2)+k>>2];b=h>>>1|0;k:{if(h&1){if((b|0)>(g|0)){break i}b=0-b|0;break k}if((g^2147483647)>>>0>>0){break i}}g=b+g|0;H[c+4>>2]=g;h=H[(d+2<<2)+k>>2];b=h>>>1|0;l:{if(h&1){if((b|0)>(g|0)){break i}b=0-b|0;break l}if((g^2147483647)>>>0>>0){break i}}d=d+3|0;j=b+g|0;H[c+8>>2]=j;Rb(H[a+44>>2]+96|0,c);b=1;o=o+1|0;if((o|0)!=(n|0)){continue}break h}break}b=0;break h}if(!k){break g}}oa(k)}ca=c+32|0;break e}sa();v()}if(!b){break a}k=H[e+24>>2];break d}k=H[e+24>>2];if(k>>>0<=255){if(!n){break d}while(1){m:{H[e+16>>2]=0;H[e+8>>2]=0;H[e+12>>2]=0;d=H[a+32>>2];b=d;g=H[b+16>>2];f=H[b+8>>2];c=H[b+20>>2];i=H[b+12>>2];b=i;if(f>>>0<=g>>>0&(c|0)>=(b|0)|(b|0)<(c|0)){break m}j=H[d>>2];l=I[j+g|0];b=c;h=g+1|0;b=h?b:b+1|0;H[d+16>>2]=h;H[d+20>>2]=b;H[e+8>>2]=l;l=f>>>0>>0&(c|0)>=(i|0)|(c|0)>(i|0);f=l?g:f;i=l?c:i;if((f|0)==(h|0)&(i|0)==(b|0)){break m}l=I[h+j|0];b=c;h=g+2|0;b=h>>>0<2?b+1|0:b;H[d+16>>2]=h;H[d+20>>2]=b;H[e+12>>2]=l;if((f|0)==(h|0)&(b|0)==(i|0)){break m}h=I[h+j|0];b=c;c=g+3|0;b=c>>>0<3?b+1|0:b;H[d+16>>2]=c;H[d+20>>2]=b;H[e+16>>2]=h;Rb(H[a+44>>2]+96|0,e+8|0);m=m+1|0;if((m|0)!=(n|0)){continue}break d}break}m=0;break a}if(k>>>0<=65535){if(!n){break d}while(1){n:{H[e+16>>2]=0;H[e+8>>2]=0;H[e+12>>2]=0;j=H[a+32>>2];b=j;c=H[b+8>>2];d=H[b+12>>2];h=H[b+16>>2];b=H[b+20>>2];g=b;f=h+2|0;b=f>>>0<2?b+1|0:b;if(c>>>0>>0&(b|0)>=(d|0)|(b|0)>(d|0)){break n}l=H[j>>2];i=l+h|0;i=I[i|0]|I[i+1|0]<<8;H[j+16>>2]=f;H[j+20>>2]=b;H[e+8>>2]=i;b=g;i=h+4|0;b=i>>>0<4?b+1|0:b;if(c>>>0>>0&(b|0)>=(d|0)|(b|0)>(d|0)){break n}f=f+l|0;f=I[f|0]|I[f+1|0]<<8;H[j+16>>2]=i;H[j+20>>2]=b;H[e+12>>2]=f;f=c;b=g;c=h+6|0;b=c>>>0<6?b+1|0:b;if(c>>>0>f>>>0&(b|0)>=(d|0)|(b|0)>(d|0)){break n}d=i+l|0;d=I[d|0]|I[d+1|0]<<8;H[j+16>>2]=c;H[j+20>>2]=b;H[e+16>>2]=d;Rb(H[a+44>>2]+96|0,e+8|0);m=m+1|0;if((m|0)!=(n|0)){continue}break d}break}m=0;break a}o:{if(k>>>0>2097151){break o}b=J[a+36>>1];if(((b<<8|b>>>8)&65535)>>>0<514){break o}if(!n){break d}while(1){p:{H[e+16>>2]=0;H[e+8>>2]=0;H[e+12>>2]=0;if(!Fb(1,e+4|0,H[a+32>>2])){break p}H[e+8>>2]=H[e+4>>2];if(!Fb(1,e+4|0,H[a+32>>2])){break p}H[e+12>>2]=H[e+4>>2];if(!Fb(1,e+4|0,H[a+32>>2])){break p}H[e+16>>2]=H[e+4>>2];Rb(H[a+44>>2]+96|0,e+8|0);m=m+1|0;if((m|0)!=(n|0)){continue}break d}break}m=0;break a}if(!n){break d}while(1){H[e+16>>2]=0;H[e+8>>2]=0;H[e+12>>2]=0;j=H[a+32>>2];b=j;c=H[b+8>>2];d=H[b+12>>2];h=H[b+16>>2];b=H[b+20>>2];g=b;f=h+4|0;b=f>>>0<4?b+1|0:b;if(c>>>0>>0&(b|0)>=(d|0)|(b|0)>(d|0)){break c}l=H[j>>2];i=l+h|0;i=I[i|0]|I[i+1|0]<<8|(I[i+2|0]<<16|I[i+3|0]<<24);H[j+16>>2]=f;H[j+20>>2]=b;H[e+8>>2]=i;b=g;i=h+8|0;b=i>>>0<8?b+1|0:b;if(c>>>0>>0&(b|0)>=(d|0)|(b|0)>(d|0)){break c}f=f+l|0;f=I[f|0]|I[f+1|0]<<8|(I[f+2|0]<<16|I[f+3|0]<<24);H[j+16>>2]=i;H[j+20>>2]=b;H[e+12>>2]=f;f=c;b=g;c=h+12|0;b=c>>>0<12?b+1|0:b;if(c>>>0>f>>>0&(b|0)>=(d|0)|(b|0)>(d|0)){break c}d=i+l|0;d=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);H[j+16>>2]=c;H[j+20>>2]=b;H[e+16>>2]=d;Rb(H[a+44>>2]+96|0,e+8|0);m=m+1|0;if((m|0)!=(n|0)){continue}break}}H[H[a+4>>2]+80>>2]=k;m=1;break a}m=0}ca=e+32|0;return m|0}function ic(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=O(0),m=O(0);a:{b:{if(!d){break b}c:{switch(H[a+28>>2]-1|0){case 0:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[H[a>>2]>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(K[H[a>>2]+4>>2]<=b>>>0){break b}F[d+g|0]=I[b|0];b=b+1|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 1:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[H[a>>2]>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(K[H[a>>2]+4>>2]<=b>>>0){return 0}e=F[b|0];if((e|0)<0){break b}F[d+g|0]=e;b=b+1|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 2:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[H[a>>2]>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(K[H[a>>2]+4>>2]<=b>>>0){break b}e=J[b>>1];if((e+128&65535)>>>0>255){break b}F[d+g|0]=e;b=b+2|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 3:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[H[a>>2]>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(K[H[a>>2]+4>>2]<=b>>>0){break b}e=J[b>>1];if(e>>>0>127){break b}F[d+g|0]=e;b=b+2|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 4:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[H[a>>2]>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(K[H[a>>2]+4>>2]<=b>>>0){break b}e=H[b>>2];if(e+128>>>0>255){break b}F[d+g|0]=e;b=b+4|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 5:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[H[a>>2]>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(K[H[a>>2]+4>>2]<=b>>>0){break b}e=H[b>>2];if(e>>>0>127){break b}F[d+g|0]=e;b=b+4|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 6:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[H[a>>2]>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(K[H[a>>2]+4>>2]<=b>>>0){break b}i=H[b+4>>2];e=H[b>>2];h=e+128|0;i=h>>>0<128?i+1|0:i;if(!i&h>>>0>255|i){break b}F[d+g|0]=e;b=b+8|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 7:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[H[a>>2]>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(K[H[a>>2]+4>>2]<=b>>>0){break b}i=H[b+4>>2];e=H[b>>2];if(!i&e>>>0>127|i){break b}F[d+g|0]=e;b=b+8|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 8:e=I[a+24|0];c=c&255;d:{if(c>>>0>e>>>0?e:c){e=H[H[a>>2]>>2];f=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);h=b;b=b+f|0;b=b+e|0;while(1){if(K[H[a>>2]+4>>2]<=b>>>0){break d}l=L[b>>2];if(l>=O(127)|lO(1)){break d}j=T(+l*127+.5);if(!(P(j)<2147483648)){break f}h=~~j;break e}if(!(m>>0<(c>>>0>e>>>0?e:c)>>>0){continue}break}}k=1;if(c>>>0<=e>>>0){break d}ra(d+e|0,0,c-e|0)}return k;case 9:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[H[a>>2]>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(K[H[a>>2]+4>>2]<=b>>>0){break b}j=M[b>>3];if(j>=127|j<-128|(P(j)==Infinity|j!=j)){break b}e=d+g|0;if(I[a+32|0]){if(j<0|j>1){break b}j=T(j*127+.5)}g:{if(P(j)<2147483648){h=~~j;break g}h=-2147483648}F[e|0]=h;b=b+8|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 10:break c;default:break b}}e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[H[a>>2]>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(K[H[a>>2]+4>>2]<=b>>>0){break b}F[d+g|0]=I[b|0];b=b+1|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}ra(d+e|0,0,(c&255)-e|0)}return k}ra(d+e|0,0,(c&255)-e|0);return 1}function hc(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=O(0);a:{b:{if(!d){break b}c:{switch(H[a+28>>2]-1|0){case 0:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[H[a>>2]>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(K[H[a>>2]+4>>2]<=b>>>0){return 0}e=F[b|0];if((e|0)<0){break b}F[d+g|0]=e;b=b+1|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 1:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[H[a>>2]>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(K[H[a>>2]+4>>2]<=b>>>0){break b}F[d+g|0]=I[b|0];b=b+1|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 2:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[H[a>>2]>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(K[H[a>>2]+4>>2]<=b>>>0){break b}e=J[b>>1];if(e>>>0>255){break b}F[d+g|0]=e;b=b+2|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 3:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[H[a>>2]>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(K[H[a>>2]+4>>2]<=b>>>0){break b}e=J[b>>1];if(e>>>0>255){break b}F[d+g|0]=e;b=b+2|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 4:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[H[a>>2]>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(K[H[a>>2]+4>>2]<=b>>>0){break b}e=H[b>>2];if(e>>>0>255){break b}F[d+g|0]=e;b=b+4|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 5:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[H[a>>2]>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(K[H[a>>2]+4>>2]<=b>>>0){break b}e=H[b>>2];if(e>>>0>255){break b}F[d+g|0]=e;b=b+4|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 6:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[H[a>>2]>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(K[H[a>>2]+4>>2]<=b>>>0){break b}i=H[b+4>>2];e=H[b>>2];if(!i&e>>>0>255|i){break b}F[d+g|0]=e;b=b+8|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 7:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[H[a>>2]>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(K[H[a>>2]+4>>2]<=b>>>0){break b}i=H[b+4>>2];e=H[b>>2];if(!i&e>>>0>255|i){break b}F[d+g|0]=e;b=b+8|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 8:e=I[a+24|0];c=c&255;d:{if(c>>>0>e>>>0?e:c){e=H[H[a>>2]>>2];f=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);h=b;b=b+f|0;b=b+e|0;while(1){if(K[H[a>>2]+4>>2]<=b>>>0){break d}l=L[b>>2];if(l>=O(255)|lO(1)){break d}j=T(+l*255+.5);if(!(j<4294967296&j>=0)){break f}h=~~j>>>0;break e}if(!(l=O(0))){break f}h=~~l>>>0;break e}h=0}F[e|0]=h;b=b+4|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(c>>>0>e>>>0?e:c)>>>0){continue}break}}k=1;if(c>>>0<=e>>>0){break d}ra(d+e|0,0,c-e|0)}return k;case 9:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[H[a>>2]>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(K[H[a>>2]+4>>2]<=b>>>0){break b}j=M[b>>3];if(j>=255|j<0|(P(j)==Infinity|j!=j)){break b}e=d+g|0;if(I[a+32|0]){if(j>1){break b}j=T(j*255+.5)}g:{if(j<4294967296&j>=0){h=~~j>>>0;break g}h=0}F[e|0]=h;b=b+8|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 10:break c;default:break b}}e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[H[a>>2]>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(K[H[a>>2]+4>>2]<=b>>>0){break b}F[d+g|0]=I[b|0];b=b+1|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}ra(d+e|0,0,(c&255)-e|0)}return k}ra(d+e|0,0,(c&255)-e|0);return 1}function zf(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=O(0),w=0;p=ca-16|0;ca=p;a:{if(!(H[a+60>>2]!=H[a- -64>>2]|H[a+48>>2]!=H[a+52>>2])){j=1;break a}j=1;if((ea[H[H[a>>2]+24>>2]](a)|0)<=0){break a}while(1){b:{b=ea[H[H[a>>2]+20>>2]](a,w)|0;c:{d:{e:{f=H[H[H[(ea[H[H[a>>2]+28>>2]](a)|0)+4>>2]+8>>2]+(b<<2)>>2];switch(H[f+28>>2]-1|0){case 8:break d;case 0:case 2:case 4:break e;default:break c}}b=I[f+24|0];f:{if(!b){n=0;j=0;break f}j=0;b=b<<2;n=pa(b);ra(n,0,b);b=I[f+24|0];if(!b){break f}b=b<<2;j=pa(b);ra(j,0,b)}g:{h:{i:{switch(H[f+28>>2]-1|0){case 4:i=0;h=0;d=0;b=0;k=0;e=I[f+24|0];j:{if(!e){g=0;break j}e=e<<2;h=pa(e);ra(h,0,e);g=pa(e);ra(g,0,e)}k:{if(H[f+80>>2]){while(1){o=H[f>>2];c=H[o>>2];m=H[f+48>>2];e=H[f+40>>2];l=Rj(e,H[f+44>>2],d,b);m=m+l|0;s=c+m|0;c=e;m=qa(h,s,c);l=I[f+24|0];if(l){t=H[a+48>>2];e=0;while(1){r=e<<2;s=H[r+m>>2];if((s|0)<0){break k}H[g+r>>2]=s+H[t+(e+u<<2)>>2];e=e+1|0;if((l|0)!=(e|0)){continue}break}}qa(H[o>>2]+N(d,c)|0,g,c);d=d+1|0;b=d?b:b+1|0;if(!b&K[f+80>>2]>d>>>0){continue}break}}k=1}if(g){oa(g)}if(h){oa(h)}if(k){break h}break g;case 2:g=0;e=0;d=0;b=0;c=I[f+24|0];if(c){c=c<<1;e=pa(c);ra(e,0,c);g=pa(c);ra(g,0,c)}if(H[f+80>>2]){while(1){l=H[f>>2];h=H[l>>2];i=H[f+48>>2];c=H[f+40>>2];k=Rj(c,H[f+44>>2],d,b);i=i+k|0;k=qa(e,h+i|0,c);o=I[f+24|0];l:{if(!o){break l}m=H[a+48>>2];h=0;if((o|0)!=1){t=o&254;i=0;while(1){r=h<<1;G[r+g>>1]=J[k+r>>1]+J[m+(h+u<<2)>>1];r=h|1;s=r<<1;G[s+g>>1]=J[k+s>>1]+J[m+(r+u<<2)>>1];h=h+2|0;i=i+2|0;if((t|0)!=(i|0)){continue}break}}if(!(o&1)){break l}i=h<<1;G[i+g>>1]=J[i+k>>1]+J[m+(h+u<<2)>>1]}qa(H[l>>2]+N(d,c)|0,g,c);d=d+1|0;b=d?b:b+1|0;if(!b&K[f+80>>2]>d>>>0){continue}break}}if(g){oa(g)}if(e){oa(e)}break h;case 0:break i;default:break h}}h=0;e=0;d=0;b=0;c=I[f+24|0];if(c){e=pa(c);ra(e,0,c);h=pa(c);ra(h,0,c)}if(H[f+80>>2]){while(1){t=H[f>>2];g=H[t>>2];i=H[f+48>>2];c=H[f+40>>2];k=Rj(c,H[f+44>>2],d,b);i=i+k|0;k=qa(e,g+i|0,c);o=I[f+24|0];m:{if(!o){break m}m=H[a+48>>2];g=0;if((o|0)!=1){r=o&254;i=0;while(1){F[g+h|0]=I[g+k|0]+I[m+(g+u<<2)|0];l=g|1;F[l+h|0]=I[k+l|0]+I[m+(l+u<<2)|0];g=g+2|0;i=i+2|0;if((r|0)!=(i|0)){continue}break}}if(!(o&1)){break m}F[g+h|0]=I[g+k|0]+I[m+(g+u<<2)|0]}qa(H[t>>2]+N(d,c)|0,h,c);d=d+1|0;b=d?b:b+1|0;if(!b&K[f+80>>2]>d>>>0){continue}break}}if(h){oa(h)}if(e){oa(e)}}u=I[f+24|0]+u|0;i=1}if(j){oa(j)}if(n){oa(n)}if(i){break c}j=0;break a}e=H[H[a+60>>2]+(q<<2)>>2];h=H[a+36>>2];g=H[(ea[H[H[a>>2]+28>>2]](a)|0)+40>>2];H[p+12>>2]=H[f+56>>2];b=pa(32);H[p>>2]=b;H[p+4>>2]=24;H[p+8>>2]=-2147483616;d=I[1206]|I[1207]<<8|(I[1208]<<16|I[1209]<<24);c=I[1202]|I[1203]<<8|(I[1204]<<16|I[1205]<<24);F[b+16|0]=c;F[b+17|0]=c>>>8;F[b+18|0]=c>>>16;F[b+19|0]=c>>>24;F[b+20|0]=d;F[b+21|0]=d>>>8;F[b+22|0]=d>>>16;F[b+23|0]=d>>>24;d=I[1198]|I[1199]<<8|(I[1200]<<16|I[1201]<<24);c=I[1194]|I[1195]<<8|(I[1196]<<16|I[1197]<<24);F[b+8|0]=c;F[b+9|0]=c>>>8;F[b+10|0]=c>>>16;F[b+11|0]=c>>>24;F[b+12|0]=d;F[b+13|0]=d>>>8;F[b+14|0]=d>>>16;F[b+15|0]=d>>>24;d=I[1190]|I[1191]<<8|(I[1192]<<16|I[1193]<<24);c=I[1186]|I[1187]<<8|(I[1188]<<16|I[1189]<<24);F[b|0]=c;F[b+1|0]=c>>>8;F[b+2|0]=c>>>16;F[b+3|0]=c>>>24;F[b+4|0]=d;F[b+5|0]=d>>>8;F[b+6|0]=d>>>16;F[b+7|0]=d>>>24;F[b+24|0]=0;d=sd(g,p+12|0,p);if(F[p+11|0]<0){oa(H[p>>2])}b=q+1|0;n:{if(d){oe(f,e);break n}g=h+N(q,24)|0;q=H[g+4>>2];c=I[f+24|0];h=c<<2;d=pa(h);H[p>>2]=1065353216;v=L[g+20>>2];q=-1<0){L[p>>2]=v/O(q|0)}if((q|0)<=0){break b}o:{if(!H[e+80>>2]){break o}if(!c){n=0;j=0;while(1){qa(H[H[f+64>>2]>>2]+j|0,d,h);j=h+j|0;n=n+1|0;if(n>>>0>2]){continue}break}break o}o=H[H[e>>2]>>2]+H[e+48>>2]|0;t=c&254;r=c&1;i=0;k=0;j=0;while(1){q=H[g+8>>2];v=L[p>>2];n=0;m=0;if((c|0)!=1){while(1){l=n<<2;s=o+(j<<2)|0;L[l+d>>2]=O(v*O(H[s>>2]))+L[l+q>>2];l=l|4;L[l+d>>2]=O(v*O(H[s+4>>2]))+L[l+q>>2];n=n+2|0;j=j+2|0;m=m+2|0;if((t|0)!=(m|0)){continue}break}}if(r){n=n<<2;L[n+d>>2]=O(v*O(H[o+(j<<2)>>2]))+L[n+q>>2];j=j+1|0}qa(H[H[f+64>>2]>>2]+k|0,d,h);k=h+k|0;i=i+1|0;if(i>>>0>2]){continue}break}}oa(d)}q=b}j=1;w=w+1|0;if((ea[H[H[a>>2]+24>>2]](a)|0)>(w|0)){continue}break a}break}oa(d);j=0}ca=p+16|0;return j|0}function Le(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;g=ca+-64|0;ca=g;H[g+56>>2]=0;H[g+48>>2]=0;H[g+52>>2]=0;H[g+40>>2]=0;H[g+44>>2]=0;H[g+32>>2]=0;H[g+36>>2]=0;H[g+24>>2]=0;H[g+28>>2]=0;H[g+16>>2]=0;H[g+20>>2]=0;H[g+8>>2]=0;H[g+12>>2]=0;j=g+8|0;d=J[b+38>>1];a:{b:{if(!d){break b}c:{if(d>>>0<=511){h=H[b+8>>2];f=H[b+12>>2];e=H[b+20>>2];d=H[b+16>>2];i=d+4|0;e=i>>>0<4?e+1|0:e;if(h>>>0>>0&(e|0)>=(f|0)|(e|0)>(f|0)){break b}d=d+H[b>>2]|0;l=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);H[j+12>>2]=l;e=H[b+20>>2];d=H[b+16>>2]+4|0;e=d>>>0<4?e+1|0:e;H[b+16>>2]=d;H[b+20>>2]=e;break c}if(!hb(1,j+12|0,b)){break b}d=H[b+16>>2];e=H[b+20>>2];l=H[j+12>>2]}f=H[b+8>>2];i=f-d|0;d=H[b+12>>2]-((d>>>0>f>>>0)+e|0)|0;if(i>>>0>>6>>>0&(d|0)<=0|(d|0)<0){break b}e=H[j>>2];d=H[j+4>>2]-e>>2;d:{if(d>>>0>>0){ya(j,l-d|0);l=H[j+12>>2];break d}if(d>>>0<=l>>>0){break d}H[j+4>>2]=e+(l<<2)}i=1;if(!l){break a}d=H[b+16>>2];e=H[b+20>>2];r=H[j>>2];k=H[b+8>>2];o=H[b+12>>2];h=0;while(1){i=0;if((e|0)>=(o|0)&d>>>0>=k>>>0|(e|0)>(o|0)){break a}i=H[b>>2];p=I[i+d|0];d=d+1|0;e=d?e:e+1|0;H[b+16>>2]=d;H[b+20>>2]=e;f=p>>>2|0;m=0;e:{f:{g:{h:{s=p&3;switch(s|0){case 0:break f;case 3:break h;default:break g}}f=f+h|0;i=0;if(f>>>0>=l>>>0){break a}ra(r+(h<<2)|0,0,(p&252)+4|0);h=f;break e}while(1){if((d|0)==(k|0)&(e|0)==(o|0)){break b}l=I[d+i|0];d=d+1|0;e=d?e:e+1|0;H[b+16>>2]=d;H[b+20>>2]=e;f=l<<(m<<3|6)|f;m=m+1|0;if((s|0)!=(m|0)){continue}break}}H[r+(h<<2)>>2]=f}l=H[j+12>>2];h=h+1|0;if(l>>>0>h>>>0){continue}break}d=j+16|0;o=H[j>>2];f=H[j+16>>2];e=H[j+20>>2]-f|0;i:{if(e>>>0<=4194303){ya(d,1048576-(e>>>2|0)|0);break i}if((e|0)==4194304){break i}H[j+20>>2]=f+4194304}e=j+28|0;h=H[e>>2];f=H[j+32>>2]-h>>3;j:{if(f>>>0>>0){ob(e,l-f|0);h=H[e>>2];break j}if(f>>>0>l>>>0){H[j+32>>2]=(l<<3)+h}if(!l){break b}}k=H[d>>2];d=0;i=0;while(1){e=o+(d<<2)|0;j=H[e>>2];m=(d<<3)+h|0;f=i;H[m+4>>2]=f;H[m>>2]=j;e=H[e>>2];i=e+f|0;if(i>>>0>1048576){break b}k:{if(f>>>0>=i>>>0){break k}m=0;j=e&7;if(j){while(1){H[k+(f<<2)>>2]=d;f=f+1|0;m=m+1|0;if((j|0)!=(m|0)){continue}break}}if(e-1>>>0<=6){break k}while(1){e=k+(f<<2)|0;H[e>>2]=d;H[e+28>>2]=d;H[e+24>>2]=d;H[e+20>>2]=d;H[e+16>>2]=d;H[e+12>>2]=d;H[e+8>>2]=d;H[e+4>>2]=d;f=f+8|0;if((i|0)!=(f|0)){continue}break}}d=d+1|0;if((l|0)!=(d|0)){continue}break}n=(i|0)==1048576}i=n}l:{if(!i|(H[g+20>>2]?0:a)){break l}i=0;n=ca-16|0;ca=n;m:{n:{if(J[b+38>>1]<=511){h=H[b+8>>2];f=H[b+12>>2];j=f;e=H[b+20>>2];k=H[b+16>>2];d=k+8|0;e=d>>>0<8?e+1|0:e;if(d>>>0>h>>>0&(e|0)>=(f|0)|(e|0)>(f|0)){break m}k=k+H[b>>2]|0;f=I[k|0]|I[k+1|0]<<8|(I[k+2|0]<<16|I[k+3|0]<<24);k=I[k+4|0]|I[k+5|0]<<8|(I[k+6|0]<<16|I[k+7|0]<<24);H[b+16>>2]=d;H[b+20>>2]=e;break n}if(!gb(1,n+8|0,b)){break m}d=H[b+16>>2];e=H[b+20>>2];h=H[b+8>>2];j=H[b+12>>2];f=H[n+8>>2];k=H[n+12>>2]}l=h-d|0;h=j-((d>>>0>h>>>0)+e|0)|0;if((h|0)==(k|0)&f>>>0>l>>>0|h>>>0>>0){break m}e=e+k|0;h=d+f|0;e=h>>>0>>0?e+1|0:e;H[b+16>>2]=h;H[b+20>>2]=e;if((f|0)<=0){break m}b=H[b>>2]+d|0;H[g+48>>2]=b;d=f-1|0;e=d+b|0;h=I[e|0];o:{if(h>>>0<=63){H[g+52>>2]=d;b=I[e|0]&63;break o}p:{switch((h>>>6|0)-1|0){case 0:if(f>>>0<2){break m}d=f-2|0;H[g+52>>2]=d;b=b+d|0;b=I[b+1|0]<<8&16128|I[b|0];break o;case 1:if(f>>>0<3){break m}d=f-3|0;H[g+52>>2]=d;b=b+d|0;b=I[b+1|0]<<8|I[b+2|0]<<16&4128768|I[b|0];break o;default:break p}}d=f-4|0;H[g+52>>2]=d;b=b+d|0;b=(I[b|0]|I[b+1|0]<<8|(I[b+2|0]<<16|I[b+3|0]<<24))&1073741823}H[g+56>>2]=b+4194304;i=b>>>0<1069547520}ca=n+16|0;if(!i){break l}if(!a){t=1;break l}b=H[g+52>>2];f=H[g+56>>2];d=H[g+36>>2];e=H[g+48>>2];h=H[g+24>>2];while(1){q:{if(f>>>0>4194303){break q}while(1){if((b|0)<=0){break q}b=b-1|0;H[g+52>>2]=b;f=I[b+e|0]|f<<8;H[g+56>>2]=f;if(f>>>0<4194304){continue}break}}i=f&1048575;k=H[h+(i<<2)>>2];n=d+(k<<3)|0;f=(N(H[n>>2],f>>>20|0)+i|0)-H[n+4>>2]|0;H[g+56>>2]=f;H[(q<<2)+c>>2]=k;t=1;q=q+1|0;if((q|0)!=(a|0)){continue}break}}a=H[g+36>>2];if(a){H[g+40>>2]=a;oa(a)}a=H[g+24>>2];if(a){H[g+28>>2]=a;oa(a)}a=H[g+8>>2];if(a){H[g+12>>2]=a;oa(a)}ca=g- -64|0;return t}function nc(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0;e=ca-48|0;ca=e;f=J[6677]|J[6678]<<16;d=J[6675]|J[6676]<<16;G[e+38>>1]=d;G[e+40>>1]=d>>>16;G[e+42>>1]=f;G[e+44>>1]=f>>>16;d=H[3337];H[e+32>>2]=H[3336];H[e+36>>2]=d;d=H[3335];H[e+24>>2]=H[3334];H[e+28>>2]=d;d=H[3333];H[e+16>>2]=H[3332];H[e+20>>2]=d;g=H[b+8>>2];i=H[b+12>>2];h=H[b+20>>2];d=H[b+16>>2];f=d+5|0;h=f>>>0<5?h+1|0:h;a:{b:{if(g>>>0>>0&(h|0)>=(i|0)|(h|0)>(i|0)){d=Ma(e+16|0);if(d>>>0>=2147483632){break a}c:{d:{if(d>>>0>=11){b=(d|15)+1|0;c=pa(b);H[e+8>>2]=b|-2147483648;H[e>>2]=c;H[e+4>>2]=d;b=c+d|0;break d}F[e+11|0]=d;b=d+e|0;c=e;if(!d){break c}}qa(c,e+16|0,d)}F[b|0]=0;H[a>>2]=-2;b=a+4|0;if(F[e+11|0]>=0){a=H[e+4>>2];H[b>>2]=H[e>>2];H[b+4>>2]=a;H[b+8>>2]=H[e+8>>2];break b}za(b,H[e>>2],H[e+4>>2]);if(F[e+11|0]>=0){break b}oa(H[e>>2]);break b}f=d+H[b>>2]|0;d=I[f|0]|I[f+1|0]<<8|(I[f+2|0]<<16|I[f+3|0]<<24);F[c|0]=d;F[c+1|0]=d>>>8;F[c+2|0]=d>>>16;F[c+3|0]=d>>>24;F[c+4|0]=I[f+4|0];d=H[b+20>>2];f=H[b+16>>2]+5|0;d=f>>>0<5?d+1|0:d;H[b+16>>2]=f;H[b+20>>2]=d;if(Fa(c,1260,5)){d=pa(32);F[d+17|0]=0;F[d+16|0]=I[1496];c=I[1492]|I[1493]<<8|(I[1494]<<16|I[1495]<<24);b=I[1488]|I[1489]<<8|(I[1490]<<16|I[1491]<<24);F[d+8|0]=b;F[d+9|0]=b>>>8;F[d+10|0]=b>>>16;F[d+11|0]=b>>>24;F[d+12|0]=c;F[d+13|0]=c>>>8;F[d+14|0]=c>>>16;F[d+15|0]=c>>>24;c=I[1484]|I[1485]<<8|(I[1486]<<16|I[1487]<<24);b=I[1480]|I[1481]<<8|(I[1482]<<16|I[1483]<<24);F[d|0]=b;F[d+1|0]=b>>>8;F[d+2|0]=b>>>16;F[d+3|0]=b>>>24;F[d+4|0]=c;F[d+5|0]=c>>>8;F[d+6|0]=c>>>16;F[d+7|0]=c>>>24;H[a>>2]=-1;za(a+4|0,d,17);oa(d);break b}g=H[b+12>>2];if((g|0)<=(d|0)&K[b+8>>2]<=f>>>0|(d|0)>(g|0)){d=Ma(e+16|0);if(d>>>0>=2147483632){break a}e:{f:{if(d>>>0>=11){b=(d|15)+1|0;c=pa(b);H[e+8>>2]=b|-2147483648;H[e>>2]=c;H[e+4>>2]=d;b=c+d|0;break f}F[e+11|0]=d;b=d+e|0;c=e;if(!d){break e}}qa(c,e+16|0,d)}F[b|0]=0;H[a>>2]=-2;b=a+4|0;if(F[e+11|0]>=0){a=H[e+4>>2];H[b>>2]=H[e>>2];H[b+4>>2]=a;H[b+8>>2]=H[e+8>>2];break b}za(b,H[e>>2],H[e+4>>2]);if(F[e+11|0]>=0){break b}oa(H[e>>2]);break b}F[c+5|0]=I[f+H[b>>2]|0];g=H[b+20>>2];d=H[b+16>>2]+1|0;g=d?g:g+1|0;H[b+16>>2]=d;H[b+20>>2]=g;f=H[b+12>>2];if((f|0)<=(g|0)&K[b+8>>2]<=d>>>0|(g|0)>(f|0)){d=Ma(e+16|0);if(d>>>0>=2147483632){break a}g:{h:{if(d>>>0>=11){b=(d|15)+1|0;c=pa(b);H[e+8>>2]=b|-2147483648;H[e>>2]=c;H[e+4>>2]=d;b=c+d|0;break h}F[e+11|0]=d;b=d+e|0;c=e;if(!d){break g}}qa(c,e+16|0,d)}F[b|0]=0;H[a>>2]=-2;b=a+4|0;if(F[e+11|0]>=0){a=H[e+4>>2];H[b>>2]=H[e>>2];H[b+4>>2]=a;H[b+8>>2]=H[e+8>>2];break b}za(b,H[e>>2],H[e+4>>2]);if(F[e+11|0]>=0){break b}oa(H[e>>2]);break b}F[c+6|0]=I[d+H[b>>2]|0];h=H[b+20>>2];d=H[b+16>>2]+1|0;h=d?h:h+1|0;H[b+16>>2]=d;H[b+20>>2]=h;f=H[b+12>>2];if((f|0)<=(h|0)&K[b+8>>2]<=d>>>0|(f|0)<(h|0)){d=Ma(e+16|0);if(d>>>0>=2147483632){break a}i:{j:{if(d>>>0>=11){b=(d|15)+1|0;c=pa(b);H[e+8>>2]=b|-2147483648;H[e>>2]=c;H[e+4>>2]=d;b=c+d|0;break j}F[e+11|0]=d;b=d+e|0;c=e;if(!d){break i}}qa(c,e+16|0,d)}F[b|0]=0;H[a>>2]=-2;b=a+4|0;if(F[e+11|0]>=0){a=H[e+4>>2];H[b>>2]=H[e>>2];H[b+4>>2]=a;H[b+8>>2]=H[e+8>>2];break b}za(b,H[e>>2],H[e+4>>2]);if(F[e+11|0]>=0){break b}oa(H[e>>2]);break b}F[c+7|0]=I[d+H[b>>2]|0];g=H[b+20>>2];d=H[b+16>>2]+1|0;g=d?g:g+1|0;H[b+16>>2]=d;H[b+20>>2]=g;f=H[b+12>>2];if((f|0)<=(g|0)&K[b+8>>2]<=d>>>0|(g|0)>(f|0)){c=mc(e,e+16|0);H[a>>2]=-2;b=a+4|0;if(F[c+11|0]>=0){a=H[c+4>>2];H[b>>2]=H[c>>2];H[b+4>>2]=a;H[b+8>>2]=H[c+8>>2];break b}za(b,H[c>>2],H[c+4>>2]);if(F[c+11|0]>=0){break b}oa(H[c>>2]);break b}F[c+8|0]=I[d+H[b>>2]|0];d=H[b+20>>2];g=H[b+16>>2];f=g+1|0;i=f?d:d+1|0;H[b+16>>2]=f;H[b+20>>2]=i;i=H[b+8>>2];h=H[b+12>>2];g=g+3|0;d=g>>>0<3?d+1|0:d;if(g>>>0>i>>>0&(d|0)>=(h|0)|(d|0)>(h|0)){c=mc(e,e+16|0);H[a>>2]=-2;b=a+4|0;if(F[c+11|0]>=0){a=H[c+4>>2];H[b>>2]=H[c>>2];H[b+4>>2]=a;H[b+8>>2]=H[c+8>>2];break b}za(b,H[c>>2],H[c+4>>2]);if(F[c+11|0]>=0){break b}oa(H[c>>2]);break b}d=c;c=H[b>>2]+f|0;G[d+10>>1]=I[c|0]|I[c+1|0]<<8;g=H[b+20>>2];c=H[b+16>>2]+2|0;g=c>>>0<2?g+1|0:g;H[b+16>>2]=c;H[b+20>>2]=g;H[a+8>>2]=0;H[a+12>>2]=0;H[a>>2]=0;H[a+4>>2]=0}ca=e+48|0;return}Na();v()}function Nb(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0;e=ca-96|0;ca=e;f=H[a+16>>2];F[e+92|0]=1;H[e+88>>2]=b;H[e+84>>2]=b;H[e+80>>2]=f;j=H[a+20>>2];d=H[j>>2];a:{b:{f=H[H[f+28>>2]+(b<<2)>>2];if(f>>>0>2]-d>>2>>>0){d=H[H[a+8>>2]+(H[d+(f<<2)>>2]<<2)>>2];f=H[a+4>>2];if(!I[f+84|0]){d=H[H[f+68>>2]+(d<<2)>>2]}H[e+72>>2]=0;H[e+76>>2]=0;j=e- -64|0;H[j>>2]=0;H[j+4>>2]=0;H[e+56>>2]=0;H[e+60>>2]=0;Sa(f,d,F[f+24|0],e+56|0);if((b|0)!=-1){f=b+1|0;j=(f>>>0)%3|0?f:b-2|0;m=((b>>>0)%3|0?-1:2)+b|0;while(1){d=j;f=m;c:{if(!H[a+28>>2]){break c}f=b+1|0;d=(f>>>0)%3|0?f:b-2|0;f=b-1|0;if((b>>>0)%3|0){break c}f=b+2|0}n=H[a+20>>2];b=H[n>>2];d=H[H[H[a+16>>2]+28>>2]+(d<<2)>>2];if(d>>>0>=H[n+4>>2]-b>>2>>>0){break b}d=H[H[a+8>>2]+(H[b+(d<<2)>>2]<<2)>>2];b=H[a+4>>2];if(!I[b+84|0]){d=H[H[b+68>>2]+(d<<2)>>2]}H[e+48>>2]=0;H[e+52>>2]=0;H[e+40>>2]=0;H[e+44>>2]=0;H[e+32>>2]=0;H[e+36>>2]=0;Sa(b,d,F[b+24|0],e+32|0);d=H[a+20>>2];b=H[d>>2];f=H[H[H[a+16>>2]+28>>2]+(f<<2)>>2];if(f>>>0>=H[d+4>>2]-b>>2>>>0){break a}d=H[H[a+8>>2]+(H[b+(f<<2)>>2]<<2)>>2];b=H[a+4>>2];if(!I[b+84|0]){d=H[H[b+68>>2]+(d<<2)>>2]}H[e+24>>2]=0;H[e+28>>2]=0;H[e+16>>2]=0;H[e+20>>2]=0;H[e+8>>2]=0;H[e+12>>2]=0;Sa(b,d,F[b+24|0],e+8|0);g=H[e+8>>2];b=H[e+56>>2];d=g-b|0;p=H[e+60>>2];t=H[e+12>>2]-(p+(b>>>0>g>>>0)|0)|0;h=H[e+40>>2];f=H[e+64>>2];n=h-f|0;u=H[e+68>>2];y=H[e+44>>2]-(u+(f>>>0>h>>>0)|0)|0;g=Rj(d,t,n,y);w=o-g|0;x=i-(da+(g>>>0>o>>>0)|0)|0;i=w;h=H[e+16>>2];g=h-f|0;u=H[e+20>>2]-((f>>>0>h>>>0)+u|0)|0;k=H[e+32>>2];h=k-b|0;w=H[e+36>>2]-((b>>>0>k>>>0)+p|0)|0;b=Rj(g,u,h,w);o=i+b|0;i=da+x|0;i=b>>>0>o>>>0?i+1|0:i;b=l;l=d;p=t;k=H[e+48>>2];f=H[e+72>>2];d=k-f|0;t=H[e+76>>2];x=H[e+52>>2]-(t+(f>>>0>k>>>0)|0)|0;l=Rj(l,p,d,x);k=b+l|0;b=da+q|0;b=k>>>0>>0?b+1|0:b;l=H[e+24>>2];p=l-f|0;f=H[e+28>>2]-((f>>>0>l>>>0)+t|0)|0;q=Rj(p,f,h,w);l=k-q|0;q=b-(da+(k>>>0>>0)|0)|0;b=Rj(g,u,d,x);d=r-b|0;b=s-(da+(b>>>0>r>>>0)|0)|0;s=Rj(p,f,n,y);r=s+d|0;b=da+b|0;s=r>>>0>>0?b+1|0:b;b=H[e+88>>2];f=H[e+80>>2];d:{if(I[e+92|0]){e:{f:{g:{h:{if((b|0)==-1){break h}d=b+1|0;b=(d>>>0)%3|0?d:b-2|0;if((b|0)==-1|H[H[f>>2]+(b>>>3&536870908)>>2]>>>b&1){break h}b=H[H[H[f+64>>2]+12>>2]+(b<<2)>>2];if((b|0)!=-1){break g}}H[e+88>>2]=-1;break f}d=b+1|0;b=(d>>>0)%3|0?d:b-2|0;H[e+88>>2]=b;if((b|0)!=-1){break e}}b=H[e+84>>2];d=-1;i:{if((b|0)==-1){break i}j:{if((b>>>0)%3|0){b=b-1|0;break j}b=b+2|0;d=-1;if((b|0)==-1){break i}}d=-1;if(H[H[f>>2]+(b>>>3&536870908)>>2]>>>b&1){break i}b=H[H[H[f+64>>2]+12>>2]+(b<<2)>>2];d=-1;if((b|0)==-1){break i}d=b-1|0;if((b>>>0)%3|0){break i}d=b+2|0}F[e+92|0]=0;H[e+88>>2]=d;break d}if((b|0)!=H[e+84>>2]){break d}H[e+88>>2]=-1;break d}d=-1;k:{if((b|0)==-1){break k}l:{if((b>>>0)%3|0){b=b-1|0;break l}b=b+2|0;d=-1;if((b|0)==-1){break k}}d=-1;if(H[H[f>>2]+(b>>>3&536870908)>>2]>>>b&1){break k}b=H[H[H[f+64>>2]+12>>2]+(b<<2)>>2];d=-1;if((b|0)==-1){break k}d=b-1|0;if((b>>>0)%3|0){break k}d=b+2|0}H[e+88>>2]=d}b=H[e+88>>2];if((b|0)!=-1){continue}break}}b=s>>31;f=b^r;d=f-b|0;b=(b^s)-((b>>>0>f>>>0)+b|0)|0;m=-1;f=2147483647;g=q>>31;h=g^l;j=h-g|0;n=(g^q)-((h>>>0>>0)+g|0)|0;h=n;k=j^-1;g=h^2147483647;n=i;m:{n:{if(!H[a+28>>2]){if((b|0)==(g|0)&d>>>0>k>>>0|b>>>0>g>>>0){break m}b=b+h|0;a=d+j|0;b=a>>>0>>0?b+1|0:b;f=a;g=i;a=g>>31;d=a;m=d^o;a=m-d|0;i=a;d=(d^g)-((d>>>0>m>>>0)+d|0)|0;a=a+f|0;d=d^2147483647;i=(d|0)==(b|0)&(i^-1)>>>0>>0|b>>>0>d>>>0;a=i?-1:a;if(!(i&0)&(a|0)<=536870912|(a|0)<536870912){break m}b=0;a=a>>>29|0;break n}o:{if((b|0)==(g|0)&d>>>0>k>>>0|b>>>0>g>>>0){break o}b=b+h|0;a=d+j|0;b=a>>>0>>0?b+1|0:b;k=i;d=i>>31;h=d^o;i=h-d|0;j=(d^k)-((d>>>0>h>>>0)+d|0)|0;g=j^2147483647;d=a;a=i;if((g|0)==(b|0)&d>>>0>(a^-1)>>>0|b>>>0>g>>>0){break o}b=b+j|0;m=a+d|0;b=m>>>0>>0?b+1|0:b;f=b;if(!b&m>>>0<536870913){break m}}b=f>>>29|0;a=(f&536870911)<<3|m>>>29}o=Sj(o,n,a,b);l=Sj(l,q,a,b);r=Sj(r,s,a,b)}H[c+8>>2]=o;H[c+4>>2]=l;H[c>>2]=r;ca=e+96|0;return}Ca();v()}Ca();v()}Ca();v()}function Jj(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0;H[a+8>>2]=e;r=a+32|0;g=H[r>>2];f=H[a+36>>2]-g>>2;a:{if(f>>>0>>0){ya(r,e-f|0);d=H[a+8>>2];break a}d=e;if(d>>>0>=f>>>0){break a}H[a+36>>2]=g+(e<<2);d=e}w=e<<2;f=e>>>0>1073741823?-1:w;m=ra(pa(f),0,f);p=ra(pa(f),0,f);b:{if((d|0)<=0){break b}i=H[a+32>>2];while(1){d=h<<2;f=H[d+m>>2];g=H[a+16>>2];c:{if((f|0)>(g|0)){H[d+i>>2]=g;break c}d=d+i|0;g=H[a+12>>2];if((g|0)>(f|0)){H[d>>2]=g;break c}H[d>>2]=f}d=H[a+8>>2];h=h+1|0;if((d|0)>(h|0)){continue}break}if((d|0)<=0){break b}f=0;while(1){g=f<<2;d=g+c|0;g=H[b+g>>2]+H[g+i>>2]|0;H[d>>2]=g;d:{if((g|0)>H[a+16>>2]){g=g-H[a+20>>2]|0}else{if((g|0)>=H[a+12>>2]){break d}g=g+H[a+20>>2]|0}H[d>>2]=g}d=H[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}}f=H[a+56>>2];x=H[f>>2];f=H[f+4>>2]-x|0;if((f|0)>=5){D=H[a+52>>2];s=H[a+48>>2];u=f>>>2|0;E=u>>>0<=2?2:u;y=e&-2;z=e&1;F=e&-4;A=e&3;B=e-1|0;n=1;while(1){e:{f:{g:{h:{if((n|0)!=(u|0)){g=H[(n<<2)+x>>2];t=(e|0)<=0;if(!t){ra(m,0,w)}if((g|0)==-1){i=N(e,n);break f}C=H[s>>2];l=0;f=g;while(1){i:{if(H[(f>>>3&536870908)+C>>2]>>>f&1){break i}i=H[H[H[s+64>>2]+12>>2]+(f<<2)>>2];if((i|0)==-1){break i}j=H[D>>2];h=H[s+28>>2];o=H[j+(H[h+(i<<2)>>2]<<2)>>2];if((o|0)>=(n|0)){break i}k=i+1|0;k=H[j+(H[h+(((k>>>0)%3|0?k:i-2|0)<<2)>>2]<<2)>>2];if((k|0)>=(n|0)){break i}i=H[j+(H[h+(i+((i>>>0)%3|0?-1:2)<<2)>>2]<<2)>>2];if((i|0)>=(n|0)){break i}j:{if(t){break j}i=N(e,i);j=N(e,k);o=N(e,o);h=0;q=0;if(B){while(1){H[(h<<2)+p>>2]=(H[(h+i<<2)+c>>2]+H[(h+j<<2)+c>>2]|0)-H[(h+o<<2)+c>>2];k=h|1;H[(k<<2)+p>>2]=(H[(i+k<<2)+c>>2]+H[(j+k<<2)+c>>2]|0)-H[(k+o<<2)+c>>2];h=h+2|0;q=q+2|0;if((y|0)!=(q|0)){continue}break}}if(z){H[(h<<2)+p>>2]=(H[(h+i<<2)+c>>2]+H[(h+j<<2)+c>>2]|0)-H[(h+o<<2)+c>>2]}if(t){break j}o=0;h=0;i=0;if(e>>>0>3){while(1){j=h<<2;k=j+m|0;H[k>>2]=H[j+p>>2]+H[k>>2];k=j|4;q=k+m|0;H[q>>2]=H[k+p>>2]+H[q>>2];k=j|8;q=k+m|0;H[q>>2]=H[k+p>>2]+H[q>>2];j=j|12;k=j+m|0;H[k>>2]=H[j+p>>2]+H[k>>2];h=h+4|0;i=i+4|0;if((F|0)!=(i|0)){continue}break}}if(!A){break j}while(1){i=h<<2;j=i+m|0;H[j>>2]=H[i+p>>2]+H[j>>2];h=h+1|0;o=o+1|0;if((A|0)!=(o|0)){continue}break}}l=l+1|0}k:{l:{if((f>>>0)%3|0){h=f-1|0;break l}h=f+2|0;i=-1;if((h|0)==-1){break k}}i=-1;if(H[(h>>>3&536870908)+C>>2]>>>h&1){break k}f=H[H[H[s+64>>2]+12>>2]+(h<<2)>>2];i=-1;if((f|0)==-1){break k}i=f-1|0;if((f>>>0)%3|0){break k}i=f+2|0}f=i;if((g|0)!=(f|0)&(f|0)!=-1){continue}break}i=N(e,n);if(!l){break f}if(t){break g}h=0;f=0;if(!B){break h}while(1){g=h<<2;j=g+m|0;H[j>>2]=H[j>>2]/(l|0);g=(g|4)+m|0;H[g>>2]=H[g>>2]/(l|0);h=h+2|0;f=f+2|0;if((y|0)!=(f|0)){continue}break}break h}Ca();v()}if(!z){break g}f=(h<<2)+m|0;H[f>>2]=H[f>>2]/(l|0)}if((d|0)<=0){break e}l=H[r>>2];h=0;while(1){d=h<<2;f=H[d+m>>2];g=H[a+16>>2];m:{if((f|0)>(g|0)){H[d+l>>2]=g;break m}d=d+l|0;g=H[a+12>>2];if((g|0)>(f|0)){H[d>>2]=g;break m}H[d>>2]=f}d=H[a+8>>2];h=h+1|0;if((d|0)>(h|0)){continue}break}f=0;if((d|0)<=0){break e}d=i<<2;i=d+c|0;h=b+d|0;while(1){g=f<<2;d=g+i|0;g=H[h+g>>2]+H[g+l>>2]|0;H[d>>2]=g;n:{if((g|0)>H[a+16>>2]){g=g-H[a+20>>2]|0}else{if((g|0)>=H[a+12>>2]){break n}g=g+H[a+20>>2]|0}H[d>>2]=g}d=H[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}break e}if((d|0)<=0){break e}g=(N(n-1|0,e)<<2)+c|0;l=H[r>>2];h=0;while(1){d=h<<2;f=H[d+g>>2];j=H[a+16>>2];o:{if((f|0)>(j|0)){H[d+l>>2]=j;break o}d=d+l|0;j=H[a+12>>2];if((j|0)>(f|0)){H[d>>2]=j;break o}H[d>>2]=f}d=H[a+8>>2];h=h+1|0;if((d|0)>(h|0)){continue}break}f=0;if((d|0)<=0){break e}d=i<<2;i=d+c|0;h=b+d|0;while(1){g=f<<2;d=g+i|0;g=H[h+g>>2]+H[g+l>>2]|0;H[d>>2]=g;p:{if((g|0)>H[a+16>>2]){g=g-H[a+20>>2]|0}else{if((g|0)>=H[a+12>>2]){break p}g=g+H[a+20>>2]|0}H[d>>2]=g}d=H[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}}n=n+1|0;if((E|0)!=(n|0)){continue}break}}oa(p);oa(m);return 1}function sj(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0;H[a+8>>2]=e;r=a+32|0;f=H[r>>2];j=H[a+36>>2]-f>>2;a:{if(j>>>0>>0){ya(r,e-j|0);d=H[a+8>>2];break a}d=e;if(e>>>0>=j>>>0){break a}H[a+36>>2]=f+(e<<2);d=e}u=e<<2;f=e>>>0>1073741823?-1:u;m=ra(pa(f),0,f);p=ra(pa(f),0,f);b:{if((d|0)<=0){break b}i=H[a+32>>2];while(1){f=h<<2;j=H[f+m>>2];d=H[a+16>>2];c:{if((j|0)>(d|0)){H[f+i>>2]=d;break c}f=f+i|0;d=H[a+12>>2];if((d|0)>(j|0)){H[f>>2]=d;break c}H[f>>2]=j}d=H[a+8>>2];h=h+1|0;if((d|0)>(h|0)){continue}break}if((d|0)<=0){break b}f=0;while(1){j=f<<2;d=j+c|0;j=H[b+j>>2]+H[j+i>>2]|0;H[d>>2]=j;d:{if((j|0)>H[a+16>>2]){j=j-H[a+20>>2]|0}else{if((j|0)>=H[a+12>>2]){break d}j=j+H[a+20>>2]|0}H[d>>2]=j}d=H[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}}f=H[a+56>>2];w=H[f>>2];f=H[f+4>>2]-w|0;if((f|0)>=5){D=H[a+52>>2];x=H[a+48>>2];t=f>>>2|0;E=t>>>0<=2?2:t;y=e&-2;z=e&1;F=e&-4;A=e&3;B=e-1|0;n=1;while(1){e:{f:{g:{h:{if((n|0)!=(t|0)){j=H[(n<<2)+w>>2];s=(e|0)<=0;if(!s){ra(m,0,u)}if((j|0)==-1){g=N(e,n);break f}C=H[x+12>>2];q=0;f=j;while(1){h=H[(f<<2)+C>>2];i:{if((h|0)==-1){break i}o=H[D>>2];l=H[x>>2];k=H[o+(H[l+(h<<2)>>2]<<2)>>2];i=h+1|0;i=(i>>>0)%3|0?i:h-2|0;if((i|0)!=-1){g=H[l+(i<<2)>>2]}else{g=-1}j:{k:{if((h>>>0)%3|0){h=h-1|0;break k}h=h+2|0;i=-1;if((h|0)==-1){break j}}i=H[l+(h<<2)>>2]}if((k|0)>=(n|0)){break i}g=H[(g<<2)+o>>2];if((g|0)>=(n|0)){break i}i=H[o+(i<<2)>>2];if((i|0)>=(n|0)){break i}l:{if(s){break l}l=N(e,i);o=N(e,g);k=N(e,k);h=0;i=0;if(B){while(1){H[(h<<2)+p>>2]=(H[(h+l<<2)+c>>2]+H[(h+o<<2)+c>>2]|0)-H[(h+k<<2)+c>>2];g=h|1;H[(g<<2)+p>>2]=(H[(g+l<<2)+c>>2]+H[(g+o<<2)+c>>2]|0)-H[(g+k<<2)+c>>2];h=h+2|0;i=i+2|0;if((y|0)!=(i|0)){continue}break}}if(z){H[(h<<2)+p>>2]=(H[(h+l<<2)+c>>2]+H[(h+o<<2)+c>>2]|0)-H[(h+k<<2)+c>>2]}if(s){break l}o=0;h=0;k=0;if(e>>>0>3){while(1){l=h<<2;i=l+m|0;H[i>>2]=H[l+p>>2]+H[i>>2];g=l|4;i=g+m|0;H[i>>2]=H[g+p>>2]+H[i>>2];g=l|8;i=g+m|0;H[i>>2]=H[g+p>>2]+H[i>>2];g=l|12;i=g+m|0;H[i>>2]=H[g+p>>2]+H[i>>2];h=h+4|0;k=k+4|0;if((F|0)!=(k|0)){continue}break}}if(!A){break l}while(1){g=h<<2;i=g+m|0;H[i>>2]=H[g+p>>2]+H[i>>2];h=h+1|0;o=o+1|0;if((A|0)!=(o|0)){continue}break}}q=q+1|0}m:{n:{if((f>>>0)%3|0){h=f-1|0;break n}h=f+2|0;g=-1;if((h|0)==-1){break m}}f=H[(h<<2)+C>>2];g=-1;if((f|0)==-1){break m}g=f-1|0;if((f>>>0)%3|0){break m}g=f+2|0}f=g;if((j|0)!=(f|0)&(f|0)!=-1){continue}break}g=N(e,n);if(!q){break f}if(s){break g}h=0;f=0;if(!B){break h}while(1){i=h<<2;j=i+m|0;H[j>>2]=H[j>>2]/(q|0);j=(i|4)+m|0;H[j>>2]=H[j>>2]/(q|0);h=h+2|0;f=f+2|0;if((y|0)!=(f|0)){continue}break}break h}Ca();v()}if(!z){break g}f=(h<<2)+m|0;H[f>>2]=H[f>>2]/(q|0)}if((d|0)<=0){break e}k=H[r>>2];h=0;while(1){f=h<<2;j=H[f+m>>2];d=H[a+16>>2];o:{if((j|0)>(d|0)){H[f+k>>2]=d;break o}f=f+k|0;d=H[a+12>>2];if((d|0)>(j|0)){H[f>>2]=d;break o}H[f>>2]=j}d=H[a+8>>2];h=h+1|0;if((d|0)>(h|0)){continue}break}f=0;if((d|0)<=0){break e}d=g<<2;i=d+c|0;j=b+d|0;while(1){g=f<<2;d=g+i|0;g=H[g+j>>2]+H[g+k>>2]|0;H[d>>2]=g;p:{if((g|0)>H[a+16>>2]){g=g-H[a+20>>2]|0}else{if((g|0)>=H[a+12>>2]){break p}g=g+H[a+20>>2]|0}H[d>>2]=g}d=H[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}break e}if((d|0)<=0){break e}f=(N(n-1|0,e)<<2)+c|0;k=H[r>>2];h=0;while(1){j=h<<2;i=H[j+f>>2];d=H[a+16>>2];q:{if((i|0)>(d|0)){H[j+k>>2]=d;break q}j=j+k|0;d=H[a+12>>2];if((d|0)>(i|0)){H[j>>2]=d;break q}H[j>>2]=i}d=H[a+8>>2];h=h+1|0;if((d|0)>(h|0)){continue}break}f=0;if((d|0)<=0){break e}d=g<<2;i=d+c|0;j=b+d|0;while(1){g=f<<2;d=g+i|0;g=H[g+j>>2]+H[g+k>>2]|0;H[d>>2]=g;r:{if((g|0)>H[a+16>>2]){g=g-H[a+20>>2]|0}else{if((g|0)>=H[a+12>>2]){break r}g=g+H[a+20>>2]|0}H[d>>2]=g}d=H[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}}n=n+1|0;if((E|0)!=(n|0)){continue}break}}oa(p);oa(m);return 1}function xa(a){var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;f=ca-32|0;ca=f;a:{b=H[a+16>>2];b:{if(b>>>0>=341){H[a+16>>2]=b-341;b=H[a+4>>2];j=H[b>>2];c=b+4|0;H[a+4>>2]=c;b=H[a+8>>2];c:{if((b|0)!=H[a+12>>2]){d=b;break c}k=H[a>>2];if(k>>>0>>0){e=((c-k>>2)+1|0)/-2<<2;b=b-c|0;d=va(e+c|0,c,b)+b|0;H[a+8>>2]=d;H[a+4>>2]=e+H[a+4>>2];break c}d=(b|0)==(k|0)?1:b-k>>1;if(d>>>0>=1073741824){break a}e=d<<2;h=pa(e);l=e+h|0;e=h+(d&-4)|0;d=e;d:{if((b|0)==(c|0)){break d}b=b-c|0;m=b&-4;i=b-4|0;g=(i>>>2|0)+1&7;e:{if(!g){b=e;break e}d=0;b=e;while(1){H[b>>2]=H[c>>2];c=c+4|0;b=b+4|0;d=d+1|0;if((g|0)!=(d|0)){continue}break}}d=e+m|0;if(i>>>0<28){break d}while(1){H[b>>2]=H[c>>2];H[b+4>>2]=H[c+4>>2];H[b+8>>2]=H[c+8>>2];H[b+12>>2]=H[c+12>>2];H[b+16>>2]=H[c+16>>2];H[b+20>>2]=H[c+20>>2];H[b+24>>2]=H[c+24>>2];H[b+28>>2]=H[c+28>>2];c=c+32|0;b=b+32|0;if((d|0)!=(b|0)){continue}break}}H[a+12>>2]=l;H[a+8>>2]=d;H[a+4>>2]=e;H[a>>2]=h;if(!k){break c}oa(k);d=H[a+8>>2]}H[d>>2]=j;H[a+8>>2]=H[a+8>>2]+4;break b}c=H[a+8>>2];b=H[a+4>>2];l=c-b|0;h=l>>2;g=H[a+12>>2];d=H[a>>2];e=g-d|0;if(h>>>0>2>>>0){if((c|0)!=(g|0)){n=f,o=pa(4092),H[n+8>>2]=o;d=a;f:{g:{b=H[a+8>>2];h:{if((b|0)!=H[a+12>>2]){e=b;break h}c=H[d+4>>2];h=H[d>>2];if(c>>>0>h>>>0){g=((c-h>>2)+1|0)/-2<<2;a=b-c|0;e=va(g+c|0,c,a)+a|0;H[d+8>>2]=e;H[d+4>>2]=g+H[d+4>>2];break h}e=(b|0)==(h|0)?1:b-h>>1;if(e>>>0>=1073741824){break g}a=e<<2;j=pa(a);l=a+j|0;a=j+(e&-4)|0;e=a;i:{if((b|0)==(c|0)){break i}b=b-c|0;m=b&-4;i=b-4|0;g=(i>>>2|0)+1&7;j:{if(!g){b=a;break j}e=0;b=a;while(1){H[b>>2]=H[c>>2];c=c+4|0;b=b+4|0;e=e+1|0;if((g|0)!=(e|0)){continue}break}}e=a+m|0;if(i>>>0<28){break i}while(1){H[b>>2]=H[c>>2];H[b+4>>2]=H[c+4>>2];H[b+8>>2]=H[c+8>>2];H[b+12>>2]=H[c+12>>2];H[b+16>>2]=H[c+16>>2];H[b+20>>2]=H[c+20>>2];H[b+24>>2]=H[c+24>>2];H[b+28>>2]=H[c+28>>2];c=c+32|0;b=b+32|0;if((e|0)!=(b|0)){continue}break}}H[d+12>>2]=l;H[d+8>>2]=e;H[d+4>>2]=a;H[d>>2]=j;if(!h){break h}oa(h);e=H[d+8>>2]}H[e>>2]=H[f+8>>2];H[d+8>>2]=H[d+8>>2]+4;break f}wa();v()}break b}n=f,o=pa(4092),H[n+8>>2]=o;qd(a,f+8|0);b=H[a+4>>2];j=H[b>>2];c=b+4|0;H[a+4>>2]=c;b=H[a+8>>2];k:{if((b|0)!=H[a+12>>2]){d=b;break k}k=H[a>>2];if(k>>>0>>0){e=((c-k>>2)+1|0)/-2<<2;b=b-c|0;d=va(e+c|0,c,b)+b|0;H[a+8>>2]=d;H[a+4>>2]=e+H[a+4>>2];break k}d=(b|0)==(k|0)?1:b-k>>1;if(d>>>0>=1073741824){break a}e=d<<2;h=pa(e);l=e+h|0;e=h+(d&-4)|0;d=e;l:{if((b|0)==(c|0)){break l}b=b-c|0;m=b&-4;i=b-4|0;g=(i>>>2|0)+1&7;m:{if(!g){b=e;break m}d=0;b=e;while(1){H[b>>2]=H[c>>2];c=c+4|0;b=b+4|0;d=d+1|0;if((g|0)!=(d|0)){continue}break}}d=e+m|0;if(i>>>0<28){break l}while(1){H[b>>2]=H[c>>2];H[b+4>>2]=H[c+4>>2];H[b+8>>2]=H[c+8>>2];H[b+12>>2]=H[c+12>>2];H[b+16>>2]=H[c+16>>2];H[b+20>>2]=H[c+20>>2];H[b+24>>2]=H[c+24>>2];H[b+28>>2]=H[c+28>>2];c=c+32|0;b=b+32|0;if((d|0)!=(b|0)){continue}break}}H[a+12>>2]=l;H[a+8>>2]=d;H[a+4>>2]=e;H[a>>2]=h;if(!k){break k}oa(k);d=H[a+8>>2]}H[d>>2]=j;H[a+8>>2]=H[a+8>>2]+4;break b}H[f+24>>2]=a+12;m=(d|0)==(g|0)?1:e>>1;if(m>>>0>=1073741824){break a}e=m<<2;g=pa(e);H[f+8>>2]=g;j=e+g|0;H[f+20>>2]=j;d=(h<<2)+g|0;H[f+12>>2]=d;i=pa(4092);n:{if((h|0)!=(m|0)){break n}if((l|0)>0){d=((h+1|0)/-2<<2)+d|0;H[f+12>>2]=d;break n}d=(b|0)==(c|0)?1:l>>1;if(d>>>0>=1073741824){break a}b=d<<2;e=pa(b);H[f+8>>2]=e;j=b+e|0;H[f+20>>2]=j;d=e+(d&-4)|0;H[f+12>>2]=d;oa(g);b=H[a+4>>2];c=H[a+8>>2];g=e}H[d>>2]=i;i=d+4|0;H[f+16>>2]=i;e=b;if((b|0)!=(c|0)){while(1){c=c-4|0;qd(f+8|0,c);if(H[a+4>>2]!=(c|0)){continue}break}j=H[f+20>>2];i=H[f+16>>2];d=H[f+12>>2];g=H[f+8>>2];e=c;b=H[a+8>>2]}c=H[a>>2];H[a>>2]=g;H[f+8>>2]=c;H[a+4>>2]=d;H[f+12>>2]=e;H[a+8>>2]=i;H[f+16>>2]=b;d=H[a+12>>2];H[a+12>>2]=j;H[f+20>>2]=d;if((b|0)!=(e|0)){H[f+16>>2]=((e-b|0)+3&-4)+b}if(!c){break b}oa(c)}ca=f+32|0;return}wa();v()}function Aj(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=O(0),j=0,k=0,l=0,m=O(0),n=O(0),o=O(0),p=O(0),q=O(0),r=0,s=O(0),t=O(0),u=O(0),w=O(0),x=0,y=O(0),z=O(0),A=O(0),B=0;a:{b:{if((e|0)!=2){break b}H[a+64>>2]=f;H[a+72>>2]=2;e=pa(8);d=H[a+68>>2];H[a+68>>2]=e;if(d){oa(d)}H[a+8>>2]=2;x=a+32|0;e=H[x>>2];d=H[a+36>>2]-e|0;c:{if(d>>>0<=7){ya(x,2-(d>>>2|0)|0);break c}if((d|0)==8){break c}H[a+36>>2]=e+8}h=1;d=H[a+56>>2];d=H[d+4>>2]-H[d>>2]|0;if((d|0)<=0){break b}d=d>>>2|0;B=d>>>0<=1?1:d;d=0;while(1){e=H[a+56>>2];h=H[e>>2];if(H[e+4>>2]-h>>2>>>0<=d>>>0){break a}q=O(0);g=ca-48|0;ca=g;e=-1;h=H[h+(d<<2)>>2];f=-1;d:{if((h|0)==-1){break d}e=h+1|0;e=(e>>>0)%3|0?e:h-2|0;f=h-1|0;if((h>>>0)%3|0){break d}f=h+2|0}j=H[a+52>>2];h=H[j>>2];e:{f:{j=H[j+4>>2]-h>>2;l=e<<2;e=H[H[a+48>>2]+28>>2];r=H[l+e>>2];if(j>>>0<=r>>>0){break f}e=H[e+(f<<2)>>2];if(e>>>0>=j>>>0){break f}j=H[h+(e<<2)>>2];f=H[h+(r<<2)>>2];g:{if(!((j|0)>=(d|0)|(f|0)>=(d|0))){e=H[a+72>>2];h=(N(e,j)<<2)+c|0;m=O(H[h+4>>2]);e=(N(e,f)<<2)+c|0;p=O(H[e+4>>2]);y=O(H[e>>2]);n=O(H[h>>2]);if(!(y!=n|m!=p)){h=+m>2147483647;e=H[a+68>>2];if(O(P(m))>2]=m2147483647;if(O(P(n))>2]=n>2]+(d<<2)>>2];H[g+40>>2]=0;H[g+32>>2]=0;H[g+36>>2]=0;h=H[a+60>>2];if(!I[h+84|0]){e=H[H[h+68>>2]+(e<<2)>>2]}Va(h,e,F[h+24|0],g+32|0);f=H[H[a+64>>2]+(f<<2)>>2];H[g+24>>2]=0;H[g+16>>2]=0;H[g+20>>2]=0;e=H[a+60>>2];if(!I[e+84|0]){f=H[H[e+68>>2]+(f<<2)>>2]}Va(e,f,F[e+24|0],g+16|0);f=H[H[a+64>>2]+(j<<2)>>2];H[g+8>>2]=0;H[g>>2]=0;H[g+4>>2]=0;e=H[a+60>>2];if(!I[e+84|0]){f=H[H[e+68>>2]+(f<<2)>>2]}Va(e,f,F[e+24|0],g);o=L[g+24>>2];s=O(L[g+8>>2]-o);t=L[g+20>>2];u=O(L[g+4>>2]-t);A=L[g+16>>2];w=O(L[g>>2]-A);z=O(O(s*s)+O(O(u*u)+O(O(w*w)+O(0))));h:{if(H[a+88>>2]>=258){i=O(0);if(!(z>O(0))){break h}}i=O(L[g+40>>2]-o);o=O(L[g+36>>2]-t);t=O(L[g+32>>2]-A);q=O(O(O(s*i)+O(O(u*o)+O(O(w*t)+O(0))))/z);i=O(i-O(s*q));s=O(i*i);i=O(o-O(u*q));o=O(i*i);i=O(t-O(w*q));i=O(W(O(O(s+O(o+O(O(i*i)+O(0))))/z)))}f=H[a+80>>2];if(f){e=f-1|0;h=H[H[a+76>>2]+(e>>>3&536870908)>>2];H[a+80>>2]=e;m=O(m-p);o=O(O(m*q)+p);n=O(n-y);p=O(n*i);e=h>>>e&1;p=O(o+(e?p:O(-p)));i=O(i*m);k=T(+O(O(O(n*q)+y)+(e?O(-i):i))+.5);i:{if(k<-2147483648|k!=k|k>2147483647){e=H[a+68>>2];H[e>>2]=-2147483648;break i}e=H[a+68>>2];if(P(k)<2147483648){h=~~k}else{h=-2147483648}H[e>>2]=h}k=T(+p+.5);j=k>2147483647;if(P(k)<2147483648){h=~~k}else{h=-2147483648}H[e+4>>2]=k<-2147483648?-2147483648:k!=k?-2147483648:j?-2147483648:h}f=(f|0)!=0;break g}j:{if((d|0)>(f|0)){e=H[a+72>>2];h=N(f,e);break j}if((d|0)<=0){f=1;if(H[a+72>>2]<=0){break g}h=H[a+68>>2];e=0;while(1){H[h+(e<<2)>>2]=0;e=e+1|0;if((e|0)>2]){continue}break}break g}e=H[a+72>>2];h=N(e,d-1|0)}f=1;if((e|0)<=0){break g}j=H[a+68>>2];e=0;while(1){H[j+(e<<2)>>2]=H[(e+h<<2)+c>>2];e=e+1|0;if((e|0)>2]){continue}break}}ca=g+48|0;break e}Ca();v()}h=f;if(!h){return 0}k:{if(H[a+8>>2]<=0){break k}r=H[a+68>>2];j=H[x>>2];e=0;while(1){f=e<<2;g=H[f+r>>2];l=H[a+16>>2];l:{if((g|0)>(l|0)){H[f+j>>2]=l;break l}f=f+j|0;l=H[a+12>>2];if((l|0)>(g|0)){H[f>>2]=l;break l}H[f>>2]=g}e=e+1|0;g=H[a+8>>2];if((e|0)<(g|0)){continue}break}f=0;if((g|0)<=0){break k}e=d<<3;r=e+c|0;l=b+e|0;while(1){g=f<<2;e=g+r|0;g=H[g+l>>2]+H[g+j>>2]|0;H[e>>2]=g;m:{if((g|0)>H[a+16>>2]){g=g-H[a+20>>2]|0}else{if((g|0)>=H[a+12>>2]){break m}g=g+H[a+20>>2]|0}H[e>>2]=g}f=f+1|0;if((f|0)>2]){continue}break}}d=d+1|0;if((B|0)!=(d|0)){continue}break}}return h|0}Ca();v()}function kj(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=O(0),j=0,k=0,l=O(0),m=O(0),n=O(0),o=O(0),p=0,q=O(0),r=O(0),s=O(0),t=O(0),u=O(0),w=0,x=O(0),y=O(0),z=0,A=O(0),B=0;a:{b:{if((e|0)!=2){break b}H[a+64>>2]=f;H[a+72>>2]=2;e=pa(8);d=H[a+68>>2];H[a+68>>2]=e;if(d){oa(d)}H[a+8>>2]=2;w=a+32|0;e=H[w>>2];d=H[a+36>>2]-e|0;c:{if(d>>>0<=7){ya(w,2-(d>>>2|0)|0);break c}if((d|0)==8){break c}H[a+36>>2]=e+8}h=1;d=H[a+56>>2];d=H[d+4>>2]-H[d>>2]|0;if((d|0)<=0){break b}d=d>>>2|0;B=d>>>0<=1?1:d;d=0;while(1){f=H[a+56>>2];e=H[f>>2];if(H[f+4>>2]-e>>2>>>0<=d>>>0){break a}q=O(0);g=ca-48|0;ca=g;h=-1;d:{e:{e=H[e+(d<<2)>>2];if((e|0)==-1){break e}j=H[a+48>>2];f=e+1|0;f=(f>>>0)%3|0?f:e-2|0;if((f|0)!=-1){h=H[H[j>>2]+(f<<2)>>2]}f=-1;e=e+((e>>>0)%3|0?-1:2)|0;if((e|0)!=-1){f=H[H[j>>2]+(e<<2)>>2]}e=H[a+52>>2];j=H[e>>2];e=H[e+4>>2]-j>>2;if(e>>>0<=h>>>0|e>>>0<=f>>>0){break e}e=H[j+(h<<2)>>2];j=H[j+(f<<2)>>2];f:{if(!((d|0)<=(e|0)|(j|0)>=(d|0))){f=H[a+72>>2];h=(N(f,j)<<2)+c|0;l=O(H[h+4>>2]);f=(N(e,f)<<2)+c|0;o=O(H[f+4>>2]);x=O(H[f>>2]);m=O(H[h>>2]);if(!(x!=m|l!=o)){h=+l>2147483647;e=H[a+68>>2];if(O(P(l))>2]=l2147483647;if(O(P(m))>2]=m>2]+(d<<2)>>2];H[g+40>>2]=0;H[g+32>>2]=0;H[g+36>>2]=0;h=H[a+60>>2];if(!I[h+84|0]){f=H[H[h+68>>2]+(f<<2)>>2]}Va(h,f,F[h+24|0],g+32|0);f=H[H[a+64>>2]+(e<<2)>>2];H[g+24>>2]=0;H[g+16>>2]=0;H[g+20>>2]=0;e=H[a+60>>2];if(!I[e+84|0]){f=H[H[e+68>>2]+(f<<2)>>2]}Va(e,f,F[e+24|0],g+16|0);h=H[H[a+64>>2]+(j<<2)>>2];H[g+8>>2]=0;H[g>>2]=0;H[g+4>>2]=0;e=H[a+60>>2];if(!I[e+84|0]){h=H[H[e+68>>2]+(h<<2)>>2]}Va(e,h,F[e+24|0],g);n=L[g+24>>2];r=O(L[g+8>>2]-n);s=L[g+20>>2];t=O(L[g+4>>2]-s);A=L[g+16>>2];u=O(L[g>>2]-A);y=O(O(r*r)+O(O(t*t)+O(O(u*u)+O(0))));g:{if(H[a+88>>2]>=258){i=O(0);if(!(y>O(0))){break g}}i=O(L[g+40>>2]-n);n=O(L[g+36>>2]-s);s=O(L[g+32>>2]-A);q=O(O(O(r*i)+O(O(t*n)+O(O(u*s)+O(0))))/y);i=O(i-O(r*q));r=O(i*i);i=O(n-O(t*q));n=O(i*i);i=O(s-O(u*q));i=O(W(O(O(r+O(n+O(O(i*i)+O(0))))/y)))}e=H[a+80>>2];if(e){f=e-1|0;h=H[H[a+76>>2]+(f>>>3&536870908)>>2];H[a+80>>2]=f;l=O(l-o);n=O(O(l*q)+o);m=O(m-x);o=O(m*i);f=h>>>f&1;o=O(n+(f?o:O(-o)));i=O(i*l);k=T(+O(O(O(m*q)+x)+(f?O(-i):i))+.5);h:{if(k<-2147483648|k!=k|k>2147483647){h=H[a+68>>2];H[h>>2]=-2147483648;break h}h=H[a+68>>2];if(P(k)<2147483648){f=~~k}else{f=-2147483648}H[h>>2]=f}k=T(+o+.5);j=k>2147483647;if(P(k)<2147483648){f=~~k}else{f=-2147483648}H[h+4>>2]=k<-2147483648?-2147483648:k!=k?-2147483648:j?-2147483648:f}h=(e|0)!=0;break f}i:{if((d|0)>(e|0)){f=H[a+72>>2];e=N(e,f);break i}if((d|0)<=0){h=1;if(H[a+72>>2]<=0){break f}e=H[a+68>>2];f=0;while(1){H[e+(f<<2)>>2]=0;f=f+1|0;if((f|0)>2]){continue}break}break f}f=H[a+72>>2];e=N(f,d-1|0)}h=1;if((f|0)<=0){break f}j=H[a+68>>2];f=0;while(1){H[j+(f<<2)>>2]=H[(e+f<<2)+c>>2];f=f+1|0;if((f|0)>2]){continue}break}}ca=g+48|0;break d}Ca();v()}if(!h){return 0}j:{if(H[a+8>>2]<=0){break j}z=H[a+68>>2];j=H[w>>2];e=0;while(1){f=e<<2;g=H[f+z>>2];p=H[a+16>>2];k:{if((g|0)>(p|0)){H[f+j>>2]=p;break k}f=f+j|0;p=H[a+12>>2];if((p|0)>(g|0)){H[f>>2]=p;break k}H[f>>2]=g}e=e+1|0;g=H[a+8>>2];if((e|0)<(g|0)){continue}break}f=0;if((g|0)<=0){break j}e=d<<3;z=e+c|0;p=b+e|0;while(1){g=f<<2;e=g+z|0;g=H[g+p>>2]+H[g+j>>2]|0;H[e>>2]=g;l:{if((g|0)>H[a+16>>2]){g=g-H[a+20>>2]|0}else{if((g|0)>=H[a+12>>2]){break l}g=g+H[a+20>>2]|0}H[e>>2]=g}f=f+1|0;if((f|0)>2]){continue}break}}d=d+1|0;if((B|0)!=(d|0)){continue}break}}return h|0}Ca();v()}function Of(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;f=ca-704|0;ca=f;n=1;a:{b:{c:{d:{if(J[b+38>>1]<515){break d}n=0;c=H[b+20>>2];d=H[b+12>>2];g=H[b+16>>2];if((c|0)>=(d|0)&g>>>0>=K[b+8>>2]|(c|0)>(d|0)){break d}p=I[H[b>>2]+g|0];g=g+1|0;c=g?c:c+1|0;H[b+16>>2]=g;H[b+20>>2]=c;g=H[H[(ea[H[H[a>>2]+28>>2]](a)|0)+4>>2]+80>>2];c=ea[H[H[a>>2]+24>>2]](a)|0;H[f+40>>2]=0;H[f+32>>2]=0;H[f+36>>2]=0;if(c){if(c>>>0>=214748365){break c}c=N(c,20);d=pa(c);H[f+32>>2]=d;H[f+40>>2]=c+d;c=c-20|0;c=(c-((c>>>0)%20|0)|0)+20|0;q=f,r=ra(d,0,c)+c|0,H[q+36>>2]=r}e:{if((ea[H[H[a>>2]+24>>2]](a)|0)>0){while(1){c=ea[H[H[a>>2]+20>>2]](a,l)|0;c=H[H[H[(ea[H[H[a>>2]+28>>2]](a)|0)+4>>2]+8>>2]+(c<<2)>>2];mb(c,g);F[c+84|0]=1;H[c+72>>2]=H[c+68>>2];d=H[c+28>>2];if(d>>>0>9){break e}f:{g:{h:{e=1<>2],d,6,0,i,i>>31);c=jc(pa(96),e);H[f>>2]=c;F[c+84|0]=1;H[c+72>>2]=H[c+68>>2];mb(c,g);c=H[a+64>>2];if(c>>>0>=K[a+68>>2]){break h}d=H[f>>2];H[f>>2]=0;H[c>>2]=d;c=c+4|0;H[a+64>>2]=c;break g}j=0;if(!I[c+24|0]){break f}while(1){d=H[a+52>>2];i=H[a+56>>2];i:{if(d>>>0>>0){H[d>>2]=0;H[a+52>>2]=d+4;break i}e=d;d=H[a+48>>2];m=e-d|0;k=m>>2;e=k+1|0;if(e>>>0>=1073741824){break b}o=k<<2;i=i-d|0;k=i>>>1|0;e=i>>>0>=2147483644?1073741823:e>>>0>>0?k:e;if(e){if(e>>>0>=1073741824){break a}i=pa(e<<2)}else{i=0}k=o+i|0;H[k>>2]=0;o=e<<2;e=va(i,d,m);H[a+56>>2]=o+e;H[a+52>>2]=k+4;H[a+48>>2]=e;if(!d){break i}oa(d)}j=j+1|0;if(j>>>0>2];i=H[a+64>>2]-e>>2;d=i+1|0;if(d>>>0<1073741824){e=H[a+68>>2]-e|0;j=e>>>1|0;e=e>>>0>=2147483644?1073741823:d>>>0>>0?j:d;if(e){if(e>>>0>=1073741824){break l}c=pa(e<<2)}j=H[f>>2];H[f>>2]=0;d=(i<<2)+c|0;H[d>>2]=j;e=(e<<2)+c|0;i=d+4|0;c=H[a+64>>2];j=H[a+60>>2];if((c|0)==(j|0)){break k}while(1){c=c-4|0;m=H[c>>2];H[c>>2]=0;d=d-4|0;H[d>>2]=m;if((c|0)!=(j|0)){continue}break}H[a+68>>2]=e;e=H[a+64>>2];H[a+64>>2]=i;c=H[a+60>>2];H[a+60>>2]=d;if((c|0)==(e|0)){break j}while(1){e=e-4|0;d=H[e>>2];H[e>>2]=0;if(d){Ga(d)}if((c|0)!=(e|0)){continue}break}break j}sa();v()}wa();v()}H[a+68>>2]=e;H[a+64>>2]=i;H[a+60>>2]=d}if(c){oa(c)}c=H[a+64>>2]}c=H[c-4>>2];d=H[f>>2];H[f>>2]=0;if(!d){break f}Ga(d)}i=H[c+28>>2];d=i-1|0;if(d>>>0<=10){e=H[(d<<2)+13584>>2]}else{e=-1}d=H[f+32>>2]+N(l,20)|0;j=I[c+24|0];H[d+16>>2]=j;H[d+12>>2]=(e|0)>0?e:0;H[d+8>>2]=i;H[d+4>>2]=h;H[d>>2]=c;h=h+j|0;l=l+1|0;if((ea[H[H[a>>2]+24>>2]](a)|0)>(l|0)){continue}break}}a=Ac(f,f+32|0);m:{n:{o:{switch(p|0){case 0:c=wb(f+48|0,h);b=Bd(c,b,a,g);h=H[c+8>>2];xb(c);if(!b){break m}if((h|0)==(g|0)){break n}break m;case 1:c=wb(f+48|0,h);b=zd(c,b,a,g);h=H[c+8>>2];xb(c);if(!b){break m}if((h|0)==(g|0)){break n}break m;case 2:c=ub(f+48|0,h);b=yd(c,b,a,g);h=H[c+8>>2];vb(c);if(!b){break m}if((h|0)==(g|0)){break n}break m;case 3:c=ub(f+48|0,h);b=xd(c,b,a,g);h=H[c+8>>2];vb(c);if(!b){break m}if((h|0)==(g|0)){break n}break m;case 4:c=$a(f+48|0,h);b=wd(c,b,a,g);h=H[c+8>>2];ab(c);if(!b){break m}if((h|0)==(g|0)){break n}break m;case 5:c=$a(f+48|0,h);b=vd(c,b,a,g);h=H[c+8>>2];ab(c);if(!b){break m}if((h|0)==(g|0)){break n}break m;case 6:break o;default:break m}}c=$a(f+48|0,h);b=ud(c,b,a,g);h=H[c+8>>2];ab(c);if(!b|(h|0)!=(g|0)){break m}}n=1}b=H[a+16>>2];if(b){H[a+20>>2]=b;oa(b)}b=H[a>>2];if(!b){break e}H[a+4>>2]=b;oa(b)}a=H[f+32>>2];if(!a){break d}H[f+36>>2]=a;oa(a)}ca=f+704|0;return n|0}sa();v()}sa();v()}wa();v()}function Zi(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0;e=ca-32|0;ca=e;a:{b:{switch(c-2|0){case 0:c=H[a+4>>2];f=H[a+12>>2];H[e+24>>2]=-1;H[e+16>>2]=-1;H[e+20>>2]=1065353216;H[e+8>>2]=-1;H[e+12>>2]=-1;if((b|0)==-2){break a}i=H[H[H[c+4>>2]+8>>2]+(f<<2)>>2];if((ea[H[H[c>>2]+8>>2]](c)|0)==1){h=H[H[H[c+4>>2]+8>>2]+(f<<2)>>2];c:{if((ea[H[H[c>>2]+8>>2]](c)|0)!=1|b-1>>>0>5){break c}g=ea[H[H[c>>2]+36>>2]](c)|0;a=ea[H[H[c>>2]+44>>2]](c,f)|0;if(!g|!a){break c}f=ea[H[H[c>>2]+40>>2]](c,f)|0;d:{if(f){if((b|0)!=6){break c}b=H[c+44>>2];d=pa(112);H[d+4>>2]=h;c=H[e+12>>2];H[d+8>>2]=H[e+8>>2];H[d+12>>2]=c;c=H[e+20>>2];H[d+16>>2]=H[e+16>>2];H[d+20>>2]=c;H[d+24>>2]=H[e+24>>2];H[d+40>>2]=a;c=a+12|0;H[d+36>>2]=c;H[d+32>>2]=f;H[d+28>>2]=b;H[d+68>>2]=a;H[d- -64>>2]=c;H[d+60>>2]=f;H[d+56>>2]=b;H[d+48>>2]=0;H[d+52>>2]=0;H[d>>2]=7144;H[d+88>>2]=1065353216;H[d+92>>2]=-1;H[d+80>>2]=-1;H[d+84>>2]=-1;H[d+72>>2]=1;H[d+76>>2]=-1;H[d+44>>2]=7668;a=d+96|0;break d}if((b|0)!=6){break c}b=H[c+44>>2];d=pa(112);H[d+4>>2]=h;c=H[e+12>>2];H[d+8>>2]=H[e+8>>2];H[d+12>>2]=c;c=H[e+20>>2];H[d+16>>2]=H[e+16>>2];H[d+20>>2]=c;H[d+24>>2]=H[e+24>>2];H[d+40>>2]=a;c=a+12|0;H[d+36>>2]=c;H[d+32>>2]=g;H[d+28>>2]=b;H[d+68>>2]=a;H[d- -64>>2]=c;H[d+60>>2]=g;H[d+56>>2]=b;H[d+48>>2]=0;H[d+52>>2]=0;H[d>>2]=8080;H[d+88>>2]=1065353216;H[d+92>>2]=-1;H[d+80>>2]=-1;H[d+84>>2]=-1;H[d+72>>2]=1;H[d+76>>2]=-1;H[d+44>>2]=8472;a=d+96|0}H[a>>2]=0;H[a+4>>2]=0;F[a+5|0]=0;F[a+6|0]=0;F[a+7|0]=0;F[a+8|0]=0;F[a+9|0]=0;F[a+10|0]=0;F[a+11|0]=0;F[a+12|0]=0}if(d){break a}}d=pa(28);H[d+4>>2]=i;a=H[e+12>>2];H[d+8>>2]=H[e+8>>2];H[d+12>>2]=a;a=H[e+20>>2];H[d+16>>2]=H[e+16>>2];H[d+20>>2]=a;H[d+24>>2]=H[e+24>>2];H[d>>2]=8860;break a;case 1:break b;default:break a}}c=H[a+4>>2];f=H[a+12>>2];H[e+24>>2]=-1;H[e+16>>2]=-1;H[e+20>>2]=1065353216;H[e+8>>2]=-1;H[e+12>>2]=-1;if((b|0)==-2){break a}i=H[H[H[c+4>>2]+8>>2]+(f<<2)>>2];if((ea[H[H[c>>2]+8>>2]](c)|0)==1){h=H[H[H[c+4>>2]+8>>2]+(f<<2)>>2];e:{if((ea[H[H[c>>2]+8>>2]](c)|0)!=1|b-1>>>0>5){break e}g=ea[H[H[c>>2]+36>>2]](c)|0;a=ea[H[H[c>>2]+44>>2]](c,f)|0;if(!g|!a){break e}f=ea[H[H[c>>2]+40>>2]](c,f)|0;f:{if(f){if((b|0)!=6){break e}b=H[c+44>>2];d=pa(112);H[d+4>>2]=h;c=H[e+12>>2];H[d+8>>2]=H[e+8>>2];H[d+12>>2]=c;c=H[e+20>>2];H[d+16>>2]=H[e+16>>2];H[d+20>>2]=c;H[d+24>>2]=H[e+24>>2];H[d+40>>2]=a;c=a+12|0;H[d+36>>2]=c;H[d+32>>2]=f;H[d+28>>2]=b;H[d+68>>2]=a;H[d- -64>>2]=c;H[d+60>>2]=f;H[d+56>>2]=b;H[d+48>>2]=0;H[d+52>>2]=0;H[d>>2]=9028;H[d+88>>2]=1065353216;H[d+92>>2]=-1;H[d+80>>2]=-1;H[d+84>>2]=-1;H[d+72>>2]=1;H[d+76>>2]=-1;H[d+44>>2]=9592;a=d+96|0;break f}if((b|0)!=6){break e}b=H[c+44>>2];d=pa(112);H[d+4>>2]=h;c=H[e+12>>2];H[d+8>>2]=H[e+8>>2];H[d+12>>2]=c;c=H[e+20>>2];H[d+16>>2]=H[e+16>>2];H[d+20>>2]=c;H[d+24>>2]=H[e+24>>2];H[d+40>>2]=a;c=a+12|0;H[d+36>>2]=c;H[d+32>>2]=g;H[d+28>>2]=b;H[d+68>>2]=a;H[d- -64>>2]=c;H[d+60>>2]=g;H[d+56>>2]=b;H[d+48>>2]=0;H[d+52>>2]=0;H[d>>2]=10032;H[d+88>>2]=1065353216;H[d+92>>2]=-1;H[d+80>>2]=-1;H[d+84>>2]=-1;H[d+72>>2]=1;H[d+76>>2]=-1;H[d+44>>2]=10452;a=d+96|0}H[a>>2]=0;H[a+4>>2]=0;F[a+5|0]=0;F[a+6|0]=0;F[a+7|0]=0;F[a+8|0]=0;F[a+9|0]=0;F[a+10|0]=0;F[a+11|0]=0;F[a+12|0]=0}if(d){break a}}d=pa(28);H[d+4>>2]=i;a=H[e+12>>2];H[d+8>>2]=H[e+8>>2];H[d+12>>2]=a;a=H[e+20>>2];H[d+16>>2]=H[e+16>>2];H[d+20>>2]=a;H[d+24>>2]=H[e+24>>2];H[d>>2]=10864}ca=e+32|0;return d|0}function Ki(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=O(0),f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=O(0),p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;if(H[c>>2]==H[c+4>>2]){m=H[d+80>>2];u=ca-16|0;ca=u;g=H[a+4>>2];k=I[b+24|0];h=H[d+48>>2];n=H[H[d>>2]>>2];c=u+8|0;H[c>>2]=1065353216;d=c;L[c>>2]=O(-1<>2];c=pa(k<<2);a:{if(!m|!k){break a}p=h+n|0;o=L[d>>2];n=H[a+8>>2];v=H[b>>2];d=H[b+48>>2];g=H[b+40>>2];w=H[b+44>>2];if(!I[b+84|0]){f=H[b+68>>2];s=k&254;t=k&1;a=0;while(1){b=H[v>>2];l=Rj(g,w,H[f+(i<<2)>>2],0)+d|0;h=qa(c,b+l|0,g);b=0;q=0;if((k|0)!=1){while(1){l=p+(a<<2)|0;j=b<<2;e=O(T(O(O(o*O(L[j+h>>2]-L[n+j>>2]))+O(.5))));b:{if(O(P(e))>2]=r;j=j|4;e=O(T(O(O(o*O(L[j+h>>2]-L[n+j>>2]))+O(.5))));c:{if(O(P(e))>2]=j;b=b+2|0;a=a+2|0;q=q+2|0;if((s|0)!=(q|0)){continue}break}}if(t){l=p+(a<<2)|0;b=b<<2;e=O(T(O(O(o*O(L[b+h>>2]-L[b+n>>2]))+O(.5))));d:{if(O(P(e))>2]=b;a=a+1|0}i=i+1|0;if((m|0)!=(i|0)){continue}break}break a}s=k&254;t=k&1;a=0;while(1){b=H[v>>2];h=Rj(g,w,i,l)+d|0;j=qa(c,b+h|0,g);b=0;q=0;if((k|0)!=1){while(1){h=p+(a<<2)|0;f=b<<2;e=O(T(O(O(o*O(L[f+j>>2]-L[f+n>>2]))+O(.5))));e:{if(O(P(e))>2]=r;f=f|4;e=O(T(O(O(o*O(L[f+j>>2]-L[f+n>>2]))+O(.5))));f:{if(O(P(e))>2]=f;b=b+2|0;a=a+2|0;q=q+2|0;if((s|0)!=(q|0)){continue}break}}if(t){h=p+(a<<2)|0;b=b<<2;e=O(T(O(O(o*O(L[b+j>>2]-L[b+n>>2]))+O(.5))));g:{if(O(P(e))>2]=b;a=a+1|0}b=l;i=i+1|0;b=i?b:b+1|0;l=b;if((i|0)!=(m|0)|b){continue}break}}oa(c);ca=u+16|0;return 1}j=ca-16|0;ca=j;m=H[a+4>>2];i=I[b+24|0];g=H[d+48>>2];h=H[H[d>>2]>>2];d=j+8|0;H[d>>2]=1065353216;l=d;L[d>>2]=O(-1<>2];d=pa(i<<2);m=H[c+4>>2];q=H[c>>2];h:{if(!i|(m|0)==(q|0)){break h}n=h+g|0;c=m-q>>2;u=c>>>0<=1?1:c;o=L[l>>2];h=H[a+8>>2];v=H[b>>2];l=H[b+48>>2];m=H[b+40>>2];w=H[b+44>>2];if(I[b+84|0]){s=i&254;t=i&1;a=0;c=0;while(1){b=H[v>>2];g=Rj(m,w,H[q+(c<<2)>>2],0)+l|0;p=qa(d,b+g|0,m);b=0;k=0;if((i|0)!=1){while(1){g=n+(a<<2)|0;f=b<<2;e=O(T(O(O(o*O(L[f+p>>2]-L[h+f>>2]))+O(.5))));i:{if(O(P(e))>2]=r;f=f|4;e=O(T(O(O(o*O(L[f+p>>2]-L[h+f>>2]))+O(.5))));j:{if(O(P(e))>2]=f;b=b+2|0;a=a+2|0;k=k+2|0;if((s|0)!=(k|0)){continue}break}}if(t){g=n+(a<<2)|0;b=b<<2;e=O(T(O(O(o*O(L[b+p>>2]-L[b+h>>2]))+O(.5))));k:{if(O(P(e))>2]=b;a=a+1|0}c=c+1|0;if((u|0)!=(c|0)){continue}break}break h}s=H[b+68>>2];t=i&254;x=i&1;a=0;c=0;while(1){b=H[v>>2];g=Rj(m,w,H[s+(H[q+(c<<2)>>2]<<2)>>2],0)+l|0;p=qa(d,b+g|0,m);b=0;k=0;if((i|0)!=1){while(1){g=n+(a<<2)|0;f=b<<2;e=O(T(O(O(o*O(L[f+p>>2]-L[h+f>>2]))+O(.5))));l:{if(O(P(e))>2]=r;f=f|4;e=O(T(O(O(o*O(L[f+p>>2]-L[h+f>>2]))+O(.5))));m:{if(O(P(e))>2]=f;b=b+2|0;a=a+2|0;k=k+2|0;if((t|0)!=(k|0)){continue}break}}if(x){g=n+(a<<2)|0;b=b<<2;e=O(T(O(O(o*O(L[b+p>>2]-L[b+h>>2]))+O(.5))));n:{if(O(P(e))>2]=b;a=a+1|0}c=c+1|0;if((u|0)!=(c|0)){continue}break}}oa(d);ca=j+16|0;return 1}function dd(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;c=H[a+4>>2];e=H[a>>2];f=(c-e|0)/144|0;if(f>>>0>>0){e=a;b=b-f|0;h=H[a+8>>2];c=H[a+4>>2];a:{if(b>>>0<=(h-c|0)/144>>>0){b:{if(!b){break b}a=c;f=b&7;if(f){while(1){Ia(a);a=a+144|0;d=d+1|0;if((f|0)!=(d|0)){continue}break}}c=N(b,144)+c|0;if((b-1&268435455)>>>0<7){break b}while(1){Ia(a);Ia(a+144|0);Ia(a+288|0);Ia(a+432|0);Ia(a+576|0);Ia(a+720|0);Ia(a+864|0);Ia(a+1008|0);a=a+1152|0;if((c|0)!=(a|0)){continue}break}}H[e+4>>2]=c;break a}c:{d:{e:{a=c;c=H[e>>2];i=(a-c|0)/144|0;a=i+b|0;if(a>>>0<29826162){c=(h-c|0)/144|0;f=c<<1;f=c>>>0>=14913080?29826161:a>>>0>>0?f:a;if(f){if(f>>>0>=29826162){break e}g=pa(N(f,144))}c=N(i,144)+g|0;a=c;h=b&7;if(h){while(1){Ia(a);a=a+144|0;d=d+1|0;if((h|0)!=(d|0)){continue}break}}h=N(b,144)+c|0;if((b-1&268435455)>>>0>=7){while(1){Ia(a);Ia(a+144|0);Ia(a+288|0);Ia(a+432|0);Ia(a+576|0);Ia(a+720|0);Ia(a+864|0);Ia(a+1008|0);a=a+1152|0;if((h|0)!=(a|0)){continue}break}}b=N(f,144)+g|0;d=H[e+4>>2];f=H[e>>2];if((d|0)==(f|0)){break d}while(1){c=c-144|0;d=d-144|0;a=d;H[c>>2]=H[a>>2];H[c+4>>2]=H[a+4>>2];H[c+8>>2]=H[a+8>>2];H[c+12>>2]=H[a+12>>2];H[a+12>>2]=0;H[a+4>>2]=0;H[a+8>>2]=0;H[c+16>>2]=H[a+16>>2];H[c+20>>2]=H[a+20>>2];H[c+24>>2]=H[a+24>>2];H[a+24>>2]=0;H[a+16>>2]=0;H[a+20>>2]=0;g=I[a+28|0];H[c+40>>2]=0;H[c+32>>2]=0;H[c+36>>2]=0;F[c+28|0]=g;H[c+32>>2]=H[a+32>>2];H[c+36>>2]=H[a+36>>2];H[c+40>>2]=H[a+40>>2];H[a+40>>2]=0;H[a+32>>2]=0;H[a+36>>2]=0;H[c+52>>2]=0;H[c+44>>2]=0;H[c+48>>2]=0;H[c+44>>2]=H[a+44>>2];H[c+48>>2]=H[a+48>>2];H[c+52>>2]=H[a+52>>2];H[a+52>>2]=0;H[a+44>>2]=0;H[a+48>>2]=0;g=c- -64|0;H[g>>2]=0;H[c+56>>2]=0;H[c+60>>2]=0;H[c+56>>2]=H[a+56>>2];H[c+60>>2]=H[a+60>>2];i=g;g=a- -64|0;H[i>>2]=H[g>>2];H[g>>2]=0;H[a+56>>2]=0;H[a+60>>2]=0;H[c+68>>2]=H[a+68>>2];g=H[a+72>>2];H[c+84>>2]=0;H[c+76>>2]=0;H[c+80>>2]=0;H[c+72>>2]=g;H[c+76>>2]=H[a+76>>2];H[c+80>>2]=H[a+80>>2];H[c+84>>2]=H[a+84>>2];H[a+84>>2]=0;H[a+76>>2]=0;H[a+80>>2]=0;H[c+96>>2]=0;H[c+88>>2]=0;H[c+92>>2]=0;H[c+88>>2]=H[a+88>>2];H[c+92>>2]=H[a+92>>2];H[c+96>>2]=H[a+96>>2];H[a+96>>2]=0;H[a+88>>2]=0;H[a+92>>2]=0;g=I[a+100|0];H[c+112>>2]=0;H[c+104>>2]=0;H[c+108>>2]=0;F[c+100|0]=g;H[c+104>>2]=H[a+104>>2];H[c+108>>2]=H[a+108>>2];H[c+112>>2]=H[a+112>>2];H[a+112>>2]=0;H[a+104>>2]=0;H[a+108>>2]=0;H[c+124>>2]=0;H[c+116>>2]=0;H[c+120>>2]=0;H[c+116>>2]=H[a+116>>2];H[c+120>>2]=H[a+120>>2];H[c+124>>2]=H[a+124>>2];H[a+124>>2]=0;H[a+116>>2]=0;H[a+120>>2]=0;g=H[a+128>>2];H[c+140>>2]=0;H[c+132>>2]=0;H[c+136>>2]=0;H[c+128>>2]=g;H[c+132>>2]=H[a+132>>2];H[c+136>>2]=H[a+136>>2];H[c+140>>2]=H[a+140>>2];H[a+140>>2]=0;H[a+132>>2]=0;H[a+136>>2]=0;if((a|0)!=(f|0)){continue}break}H[e+8>>2]=b;a=H[e+4>>2];H[e+4>>2]=h;d=H[e>>2];H[e>>2]=c;if((a|0)==(d|0)){break c}while(1){b=a-144|0;c=H[b+132>>2];if(c){H[a-8>>2]=c;oa(c)}c=H[a-28>>2];if(c){H[a-24>>2]=c;oa(c)}c=H[a-40>>2];if(c){H[a-36>>2]=c;oa(c)}oc(a-140|0);a=b;if((d|0)!=(a|0)){continue}break}break c}sa();v()}wa();v()}H[e+8>>2]=b;H[e+4>>2]=h;H[e>>2]=c}if(d){oa(d)}}return}if(b>>>0>>0){e=e+N(b,144)|0;if((e|0)!=(c|0)){while(1){b=c-144|0;d=H[b+132>>2];if(d){H[c-8>>2]=d;oa(d)}d=H[c-28>>2];if(d){H[c-24>>2]=d;oa(d)}d=H[c-40>>2];if(d){H[c-36>>2]=d;oa(d)}oc(c-140|0);c=b;if((e|0)!=(c|0)){continue}break}}H[a+4>>2]=e}}function Pe(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0;f=ca-80|0;ca=f;e=H[c+36>>2];H[f+72>>2]=H[c+32>>2];H[f+76>>2]=e;g=H[c+28>>2];e=f- -64|0;H[e>>2]=H[c+24>>2];H[e+4>>2]=g;e=H[c+20>>2];H[f+56>>2]=H[c+16>>2];H[f+60>>2]=e;e=H[c+12>>2];H[f+48>>2]=H[c+8>>2];H[f+52>>2]=e;e=H[c+4>>2];H[f+40>>2]=H[c>>2];H[f+44>>2]=e;nc(a,f+40|0,f+24|0);a:{if(H[a>>2]){break a}if(F[a+15|0]<0){oa(H[a+4>>2])}if(I[f+31|0]){b=pa(32);F[b+27|0]=0;c=I[1521]|I[1522]<<8|(I[1523]<<16|I[1524]<<24);F[b+23|0]=c;F[b+24|0]=c>>>8;F[b+25|0]=c>>>16;F[b+26|0]=c>>>24;c=I[1518]|I[1519]<<8|(I[1520]<<16|I[1521]<<24);d=I[1514]|I[1515]<<8|(I[1516]<<16|I[1517]<<24);F[b+16|0]=d;F[b+17|0]=d>>>8;F[b+18|0]=d>>>16;F[b+19|0]=d>>>24;F[b+20|0]=c;F[b+21|0]=c>>>8;F[b+22|0]=c>>>16;F[b+23|0]=c>>>24;c=I[1510]|I[1511]<<8|(I[1512]<<16|I[1513]<<24);d=I[1506]|I[1507]<<8|(I[1508]<<16|I[1509]<<24);F[b+8|0]=d;F[b+9|0]=d>>>8;F[b+10|0]=d>>>16;F[b+11|0]=d>>>24;F[b+12|0]=c;F[b+13|0]=c>>>8;F[b+14|0]=c>>>16;F[b+15|0]=c>>>24;c=I[1502]|I[1503]<<8|(I[1504]<<16|I[1505]<<24);d=I[1498]|I[1499]<<8|(I[1500]<<16|I[1501]<<24);F[b|0]=d;F[b+1|0]=d>>>8;F[b+2|0]=d>>>16;F[b+3|0]=d>>>24;F[b+4|0]=c;F[b+5|0]=c>>>8;F[b+6|0]=c>>>16;F[b+7|0]=c>>>24;H[a>>2]=-1;za(a+4|0,b,27);oa(b);break a}i=ca-16|0;ca=i;b:{c:{switch(F[f+32|0]){case 0:e=pa(44);H[e>>2]=0;H[e+4>>2]=0;H[e+40>>2]=0;H[e+32>>2]=0;H[e+36>>2]=0;H[e+24>>2]=0;H[e+28>>2]=0;H[e+16>>2]=0;H[e+20>>2]=0;H[e+8>>2]=0;H[e+12>>2]=0;e=Vc(e);H[e>>2]=13496;H[f+8>>2]=0;H[f+12>>2]=0;H[f>>2]=0;H[f+4>>2]=0;H[f+16>>2]=e;break b;case 1:e=pa(44);H[e>>2]=0;H[e+4>>2]=0;H[e+40>>2]=0;H[e+32>>2]=0;H[e+36>>2]=0;H[e+24>>2]=0;H[e+28>>2]=0;H[e+16>>2]=0;H[e+20>>2]=0;H[e+8>>2]=0;H[e+12>>2]=0;e=Vc(e);H[e>>2]=13404;H[f+8>>2]=0;H[f+12>>2]=0;H[f>>2]=0;H[f+4>>2]=0;H[f+16>>2]=e;break b;default:break c}}g=pa(32);F[g+28|0]=0;e=I[1550]|I[1551]<<8|(I[1552]<<16|I[1553]<<24);F[g+24|0]=e;F[g+25|0]=e>>>8;F[g+26|0]=e>>>16;F[g+27|0]=e>>>24;e=I[1546]|I[1547]<<8|(I[1548]<<16|I[1549]<<24);h=I[1542]|I[1543]<<8|(I[1544]<<16|I[1545]<<24);F[g+16|0]=h;F[g+17|0]=h>>>8;F[g+18|0]=h>>>16;F[g+19|0]=h>>>24;F[g+20|0]=e;F[g+21|0]=e>>>8;F[g+22|0]=e>>>16;F[g+23|0]=e>>>24;e=I[1538]|I[1539]<<8|(I[1540]<<16|I[1541]<<24);h=I[1534]|I[1535]<<8|(I[1536]<<16|I[1537]<<24);F[g+8|0]=h;F[g+9|0]=h>>>8;F[g+10|0]=h>>>16;F[g+11|0]=h>>>24;F[g+12|0]=e;F[g+13|0]=e>>>8;F[g+14|0]=e>>>16;F[g+15|0]=e>>>24;e=I[1530]|I[1531]<<8|(I[1532]<<16|I[1533]<<24);h=I[1526]|I[1527]<<8|(I[1528]<<16|I[1529]<<24);F[g|0]=h;F[g+1|0]=h>>>8;F[g+2|0]=h>>>16;F[g+3|0]=h>>>24;F[g+4|0]=e;F[g+5|0]=e>>>8;F[g+6|0]=e>>>16;F[g+7|0]=e>>>24;H[i>>2]=-1;e=i|4;za(e,g,28);j=F[i+15|0];H[f>>2]=H[i>>2];h=f+4|0;d:{if((j|0)>=0){j=H[e+4>>2];H[h>>2]=H[e>>2];H[h+4>>2]=j;H[h+8>>2]=H[e+8>>2];H[f+16>>2]=0;break d}za(h,H[i+4>>2],H[i+8>>2]);e=F[i+15|0];H[f+16>>2]=0;if((e|0)>=0){break d}oa(H[i+4>>2])}oa(g)}ca=i+16|0;e=H[f>>2];e:{if(e){H[a>>2]=e;a=a+4|0;if(F[f+15|0]>=0){b=f|4;c=H[b+4>>2];H[a>>2]=H[b>>2];H[a+4>>2]=c;H[a+8>>2]=H[b+8>>2];break e}za(a,H[f+4>>2],H[f+8>>2]);break e}e=H[f+16>>2];H[f+16>>2]=0;te(a,e,b,c,d);if(!H[a>>2]){if(F[a+15|0]<0){oa(H[a+4>>2])}H[a>>2]=0;H[a+4>>2]=0;H[a+8>>2]=0;H[a+12>>2]=0}ea[H[H[e>>2]+4>>2]](e)}a=H[f+16>>2];H[f+16>>2]=0;if(a){ea[H[H[a>>2]+4>>2]](a)}if(F[f+15|0]>=0){break a}oa(H[f+4>>2])}ca=f+80|0}function Ic(a){var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;H[a+56>>2]=H[a+52>>2];H[a+44>>2]=H[a+40>>2];b=H[a+64>>2];c=H[b+24>>2];if((c|0)==H[b+28>>2]){return 1}a:{b:{c:{while(1){g=i;i=H[(k<<2)+c>>2];d:{if((i|0)==-1){i=g;break d}b=H[a+56>>2];e:{if((b|0)!=H[a+60>>2]){H[b>>2]=g;H[a+56>>2]=b+4;break e}d=H[a+52>>2];e=b-d|0;h=e>>2;c=h+1|0;if(c>>>0>=1073741824){break c}f=e>>>1|0;f=e>>>0>=2147483644?1073741823:c>>>0>>0?f:c;if(f){if(f>>>0>=1073741824){break b}e=pa(f<<2)}else{e=0}c=e+(h<<2)|0;H[c>>2]=g;h=c+4|0;if((b|0)!=(d|0)){while(1){c=c-4|0;b=b-4|0;H[c>>2]=H[b>>2];if((b|0)!=(d|0)){continue}break}}H[a+60>>2]=e+(f<<2);H[a+56>>2]=h;H[a+52>>2]=c;if(!d){break e}oa(d)}f:{g:{if(!(H[H[a+12>>2]+(k>>>3&536870908)>>2]>>>k&1)){break g}e=i+1|0;e=(e>>>0)%3|0?e:i-2|0;if((e|0)==-1|H[H[a>>2]+(e>>>3&536870908)>>2]>>>e&1){break g}e=H[H[H[a+64>>2]+12>>2]+(e<<2)>>2];if((e|0)==-1){break g}b=e+1|0;b=(b>>>0)%3|0?b:e-2|0;if((b|0)==-1){break g}c=H[a+64>>2];f=H[a>>2];while(1){e=b;b=-1;d=e+1|0;d=(d>>>0)%3|0?d:e-2|0;h:{if((d|0)==-1|H[f+(d>>>3&536870908)>>2]>>>d&1){break h}d=H[H[c+12>>2]+(d<<2)>>2];if((d|0)==-1){break h}b=d+1|0;b=(b>>>0)%3|0?b:d-2|0}if((b|0)!=(i|0)){if((b|0)==-1){break f}continue}break}return 0}e=i}H[H[a+28>>2]+(e<<2)>>2]=g;b=H[a+44>>2];i:{if((b|0)!=H[a+48>>2]){H[b>>2]=e;H[a+44>>2]=b+4;break i}d=H[a+40>>2];i=b-d|0;h=i>>2;c=h+1|0;if(c>>>0>=1073741824){break a}f=i>>>1|0;f=i>>>0>=2147483644?1073741823:c>>>0>>0?f:c;if(f){if(f>>>0>=1073741824){break b}i=pa(f<<2)}else{i=0}c=i+(h<<2)|0;H[c>>2]=e;h=c+4|0;if((b|0)!=(d|0)){while(1){c=c-4|0;b=b-4|0;H[c>>2]=H[b>>2];if((b|0)!=(d|0)){continue}break}}H[a+48>>2]=i+(f<<2);H[a+44>>2]=h;H[a+40>>2]=c;if(!d){break i}oa(d)}i=g+1|0;b=H[a+64>>2];if((e|0)==-1){break d}j:{if((e>>>0)%3|0){c=e-1|0;break j}c=e+2|0;if((c|0)==-1){break d}}d=H[H[b+12>>2]+(c<<2)>>2];if((d|0)==-1){break d}f=d+((d>>>0)%3|0?-1:2)|0;if((f|0)==-1|(e|0)==(f|0)){break d}while(1){b=f+1|0;b=(b>>>0)%3|0?b:f-2|0;if(H[H[a>>2]+(b>>>3&536870908)>>2]>>>b&1){b=H[a+56>>2];k:{if((b|0)!=H[a+60>>2]){H[b>>2]=i;H[a+56>>2]=b+4;break k}d=H[a+52>>2];g=b-d|0;j=g>>2;c=j+1|0;if(c>>>0>=1073741824){break c}h=g>>>1|0;h=g>>>0>=2147483644?1073741823:c>>>0>>0?h:c;if(h){if(h>>>0>=1073741824){break b}g=pa(h<<2)}else{g=0}c=g+(j<<2)|0;H[c>>2]=i;j=c+4|0;if((b|0)!=(d|0)){while(1){c=c-4|0;b=b-4|0;H[c>>2]=H[b>>2];if((b|0)!=(d|0)){continue}break}}H[a+60>>2]=g+(h<<2);H[a+56>>2]=j;H[a+52>>2]=c;if(!d){break k}oa(d)}d=i+1|0;b=H[a+44>>2];l:{if((b|0)!=H[a+48>>2]){H[b>>2]=f;H[a+44>>2]=b+4;break l}h=H[a+40>>2];g=b-h|0;l=g>>2;c=l+1|0;if(c>>>0>=1073741824){break a}j=g>>>1|0;j=g>>>0>=2147483644?1073741823:c>>>0>>0?j:c;if(j){if(j>>>0>=1073741824){break b}g=pa(j<<2)}else{g=0}c=g+(l<<2)|0;H[c>>2]=f;l=c+4|0;if((b|0)!=(h|0)){while(1){c=c-4|0;b=b-4|0;H[c>>2]=H[b>>2];if((b|0)!=(h|0)){continue}break}}H[a+48>>2]=g+(j<<2);H[a+44>>2]=l;H[a+40>>2]=c;if(!h){break l}oa(h)}g=i;i=d}H[H[a+28>>2]+(f<<2)>>2]=g;b=H[a+64>>2];m:{if((f>>>0)%3|0){c=f-1|0;break m}c=f+2|0;if((c|0)==-1){break d}}d=H[H[b+12>>2]+(c<<2)>>2];if((d|0)==-1){break d}f=d+((d>>>0)%3|0?-1:2)|0;if((f|0)==-1){break d}if((e|0)!=(f|0)){continue}break}}k=k+1|0;c=H[b+24>>2];if(k>>>0>2]-c>>2>>>0){continue}break}return 1}sa();v()}wa();v()}sa();v()}function ti(a){a=a|0;var b=0,c=0,d=0,e=0;c=H[a+32>>2];d=H[c+16>>2];e=H[c+12>>2];b=H[c+20>>2];if(K[c+8>>2]>d>>>0&(e|0)>=(b|0)|(b|0)<(e|0)){e=I[H[c>>2]+d|0];d=d+1|0;b=d?b:b+1|0;H[c+16>>2]=d;H[c+20>>2]=b;b=H[a+48>>2];H[a+48>>2]=0;if(b){ea[H[H[b>>2]+4>>2]](b)}a:{b:{c:{d:{switch(e|0){case 0:b=pa(384);H[b>>2]=11384;ra(b+4|0,0,80);H[b+96>>2]=0;H[b+100>>2]=0;H[b+92>>2]=-1;H[b+84>>2]=-1;H[b+88>>2]=-1;H[b+104>>2]=0;H[b+108>>2]=0;H[b+112>>2]=0;H[b+116>>2]=0;H[b+120>>2]=0;H[b+124>>2]=0;H[b+128>>2]=0;H[b+132>>2]=0;H[b+136>>2]=0;H[b+140>>2]=0;H[b+144>>2]=0;H[b+148>>2]=0;H[b+156>>2]=0;H[b+160>>2]=0;H[b+152>>2]=1065353216;H[b+164>>2]=0;H[b+168>>2]=0;H[b+172>>2]=0;H[b+176>>2]=0;H[b+180>>2]=0;H[b+184>>2]=0;H[b+188>>2]=0;H[b+192>>2]=0;H[b+196>>2]=0;H[b+200>>2]=0;H[b+204>>2]=0;H[b+208>>2]=0;H[b+212>>2]=-1;H[b+216>>2]=0;H[b+220>>2]=0;H[b+224>>2]=0;Ha(b+232|0);Ha(b+272|0);c=b+312|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;Ha(b+328|0);H[b+376>>2]=0;H[b+368>>2]=0;H[b+372>>2]=0;break c;case 1:b=pa(424);H[b>>2]=11436;ra(b+4|0,0,80);H[b+96>>2]=0;H[b+100>>2]=0;H[b+92>>2]=-1;H[b+84>>2]=-1;H[b+88>>2]=-1;H[b+104>>2]=0;H[b+108>>2]=0;H[b+112>>2]=0;H[b+116>>2]=0;H[b+120>>2]=0;H[b+124>>2]=0;H[b+128>>2]=0;H[b+132>>2]=0;H[b+136>>2]=0;H[b+140>>2]=0;H[b+144>>2]=0;H[b+148>>2]=0;H[b+156>>2]=0;H[b+160>>2]=0;H[b+152>>2]=1065353216;H[b+164>>2]=0;H[b+168>>2]=0;H[b+172>>2]=0;H[b+176>>2]=0;H[b+180>>2]=0;H[b+184>>2]=0;H[b+188>>2]=0;H[b+192>>2]=0;H[b+196>>2]=0;H[b+200>>2]=0;H[b+204>>2]=0;H[b+208>>2]=0;H[b+212>>2]=-1;H[b+216>>2]=0;H[b+220>>2]=0;H[b+224>>2]=0;Ha(b+232|0);Ha(b+272|0);c=b+312|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;Ha(b+328|0);H[b+392>>2]=0;H[b+396>>2]=0;H[b+384>>2]=0;H[b+388>>2]=0;H[b+376>>2]=0;H[b+380>>2]=0;H[b+368>>2]=0;H[b+372>>2]=0;c=b+400|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;H[b+416>>2]=-1;H[b+420>>2]=-1;break c;case 2:break d;default:break b}}b=pa(440);H[b>>2]=11484;ra(b+4|0,0,80);H[b+96>>2]=0;H[b+100>>2]=0;H[b+92>>2]=-1;H[b+84>>2]=-1;H[b+88>>2]=-1;H[b+104>>2]=0;H[b+108>>2]=0;H[b+112>>2]=0;H[b+116>>2]=0;H[b+120>>2]=0;H[b+124>>2]=0;H[b+128>>2]=0;H[b+132>>2]=0;H[b+136>>2]=0;H[b+140>>2]=0;H[b+144>>2]=0;H[b+148>>2]=0;H[b+156>>2]=0;H[b+160>>2]=0;H[b+152>>2]=1065353216;H[b+164>>2]=0;H[b+168>>2]=0;H[b+172>>2]=0;H[b+176>>2]=0;H[b+180>>2]=0;H[b+184>>2]=0;H[b+188>>2]=0;H[b+192>>2]=0;H[b+196>>2]=0;H[b+200>>2]=0;H[b+204>>2]=0;H[b+208>>2]=0;H[b+212>>2]=-1;H[b+216>>2]=0;H[b+220>>2]=0;H[b+224>>2]=0;Ha(b+232|0);Ha(b+272|0);c=b+312|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;Ha(b+328|0);H[b+392>>2]=0;H[b+396>>2]=0;H[b+384>>2]=0;H[b+388>>2]=0;H[b+376>>2]=0;H[b+380>>2]=0;H[b+368>>2]=0;H[b+372>>2]=0;H[b+416>>2]=0;H[b+420>>2]=0;H[b+408>>2]=2;H[b+412>>2]=7;H[b+400>>2]=-1;H[b+404>>2]=-1;H[b+424>>2]=0;H[b+428>>2]=0;H[b+432>>2]=0;H[b+436>>2]=0}c=H[a+48>>2];H[a+48>>2]=b;if(!c){break a}ea[H[H[c>>2]+4>>2]](c)}b=H[a+48>>2];if(b){break a}return 0}a=ea[H[H[b>>2]+8>>2]](b,a)|0}else{a=0}return a|0}function Lb(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0;f=ca-96|0;ca=f;e=H[a+16>>2];F[f+92|0]=1;H[f+88>>2]=b;H[f+84>>2]=b;H[f+80>>2]=e;a:{if((b|0)==-1){break a}j=H[a+20>>2];d=H[j>>2];e=H[H[e>>2]+(b<<2)>>2];if(e>>>0>=H[j+4>>2]-d>>2>>>0){break a}e=H[H[a+8>>2]+(H[d+(e<<2)>>2]<<2)>>2];d=H[a+4>>2];if(!I[d+84|0]){e=H[H[d+68>>2]+(e<<2)>>2]}H[f+72>>2]=0;H[f+76>>2]=0;j=f- -64|0;H[j>>2]=0;H[j+4>>2]=0;H[f+56>>2]=0;H[f+60>>2]=0;Sa(d,e,F[d+24|0],f+56|0);e=b+1|0;j=(e>>>0)%3|0?e:b-2|0;n=((b>>>0)%3|0?-1:2)+b|0;b:{c:{while(1){d=j;e=n;d:{if(!H[a+28>>2]){break d}e=b+1|0;d=(e>>>0)%3|0?e:b-2|0;e=b-1|0;if((b>>>0)%3|0){break d}e=b+2|0}if((d|0)==-1){break b}m=H[a+20>>2];b=H[m>>2];d=H[H[H[a+16>>2]>>2]+(d<<2)>>2];if(d>>>0>=H[m+4>>2]-b>>2>>>0){break b}d=H[H[a+8>>2]+(H[(d<<2)+b>>2]<<2)>>2];b=H[a+4>>2];if(!I[b+84|0]){d=H[H[b+68>>2]+(d<<2)>>2]}H[f+48>>2]=0;H[f+52>>2]=0;H[f+40>>2]=0;H[f+44>>2]=0;H[f+32>>2]=0;H[f+36>>2]=0;Sa(b,d,F[b+24|0],f+32|0);if((e|0)==-1){break c}d=H[a+20>>2];b=H[d>>2];e=H[H[H[a+16>>2]>>2]+(e<<2)>>2];if(e>>>0>=H[d+4>>2]-b>>2>>>0){break c}d=H[H[a+8>>2]+(H[b+(e<<2)>>2]<<2)>>2];b=H[a+4>>2];if(!I[b+84|0]){d=H[H[b+68>>2]+(d<<2)>>2]}H[f+24>>2]=0;H[f+28>>2]=0;H[f+16>>2]=0;H[f+20>>2]=0;H[f+8>>2]=0;H[f+12>>2]=0;Sa(b,d,F[b+24|0],f+8|0);g=H[f+8>>2];b=H[f+56>>2];d=g-b|0;p=H[f+60>>2];t=H[f+12>>2]-(p+(b>>>0>g>>>0)|0)|0;i=H[f+40>>2];e=H[f+64>>2];m=i-e|0;u=H[f+68>>2];y=H[f+44>>2]-(u+(e>>>0>i>>>0)|0)|0;g=Rj(d,t,m,y);w=o-g|0;x=h-(da+(g>>>0>o>>>0)|0)|0;h=w;i=H[f+16>>2];g=i-e|0;u=H[f+20>>2]-((e>>>0>i>>>0)+u|0)|0;k=H[f+32>>2];i=k-b|0;w=H[f+36>>2]-((b>>>0>k>>>0)+p|0)|0;b=Rj(g,u,i,w);o=h+b|0;h=da+x|0;h=b>>>0>o>>>0?h+1|0:h;b=l;l=d;p=t;k=H[f+48>>2];e=H[f+72>>2];d=k-e|0;t=H[f+76>>2];x=H[f+52>>2]-(t+(e>>>0>k>>>0)|0)|0;l=Rj(l,p,d,x);k=b+l|0;b=da+q|0;b=k>>>0>>0?b+1|0:b;l=H[f+24>>2];p=l-e|0;e=H[f+28>>2]-((e>>>0>l>>>0)+t|0)|0;q=Rj(p,e,i,w);l=k-q|0;q=b-(da+(k>>>0>>0)|0)|0;b=Rj(g,u,d,x);d=r-b|0;b=s-(da+(b>>>0>r>>>0)|0)|0;s=Rj(p,e,m,y);r=s+d|0;b=da+b|0;s=r>>>0>>0?b+1|0:b;uc(f+80|0);b=H[f+88>>2];if((b|0)!=-1){continue}break}b=s>>31;e=b^r;d=e-b|0;b=(b^s)-((b>>>0>e>>>0)+b|0)|0;n=-1;e=2147483647;m=q>>31;g=m;i=g^l;j=i-g|0;m=(g^q)-((i>>>0>>0)+g|0)|0;i=m;k=j^-1;g=i^2147483647;m=h;e:{f:{if(!H[a+28>>2]){if((b|0)==(g|0)&d>>>0>k>>>0|b>>>0>g>>>0){break e}b=b+i|0;a=d+j|0;b=a>>>0>>0?b+1|0:b;e=a;g=h;a=g>>31;d=a;n=d^o;a=n-d|0;h=a;d=(d^g)-((d>>>0>n>>>0)+d|0)|0;a=a+e|0;d=d^2147483647;h=(d|0)==(b|0)&(h^-1)>>>0>>0|b>>>0>d>>>0;a=h?-1:a;if(!(h&0)&(a|0)<=536870912|(a|0)<536870912){break e}b=0;a=a>>>29|0;break f}g:{if((b|0)==(g|0)&d>>>0>k>>>0|b>>>0>g>>>0){break g}b=b+i|0;a=d+j|0;b=a>>>0>>0?b+1|0:b;k=h;h=h>>31;g=h;i=g^o;h=i-g|0;j=(g^k)-((g>>>0>i>>>0)+g|0)|0;g=j^2147483647;d=a;a=h;if((g|0)==(b|0)&d>>>0>(a^-1)>>>0|b>>>0>g>>>0){break g}b=b+j|0;n=a+d|0;b=n>>>0>>0?b+1|0:b;e=b;if(!b&n>>>0<536870913){break e}}b=e>>>29|0;a=(e&536870911)<<3|n>>>29}o=Sj(o,m,a,b);l=Sj(l,q,a,b);r=Sj(r,s,a,b)}H[c+8>>2]=o;H[c+4>>2]=l;H[c>>2]=r;ca=f+96|0;return}Ca();v()}Ca();v()}Ca();v()}function Wd(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;a:{if((b|0)<0){break a}c=H[a+12>>2];d=H[a+8>>2];if(c-d>>2>>>0<=b>>>0){break a}d=d+(b<<2)|0;e=H[d>>2];i=H[e+60>>2];f=H[e+56>>2];e=d+4|0;if((e|0)!=(c|0)){while(1){h=H[e>>2];H[e>>2]=0;g=H[d>>2];H[d>>2]=h;if(g){Ga(g)}d=d+4|0;e=e+4|0;if((e|0)!=(c|0)){continue}break}c=H[a+12>>2]}if((c|0)!=(d|0)){while(1){c=c-4|0;e=H[c>>2];H[c>>2]=0;if(e){Ga(e)}if((c|0)!=(d|0)){continue}break}}H[a+12>>2]=d;g=H[a+4>>2];b:{if(!g|(i|0)<0){break b}c=H[g+24>>2];d=H[g+28>>2];if((c|0)==(d|0)){break b}while(1){if((i|0)==H[H[c>>2]+24>>2]){d=c+4|0;i=H[g+28>>2];if((d|0)!=(i|0)){while(1){h=H[d>>2];H[d>>2]=0;e=H[c>>2];H[c>>2]=h;if(e){Ra(e+12|0,H[e+16>>2]);Qa(e,H[e+4>>2]);oa(e)}c=c+4|0;d=d+4|0;if((i|0)!=(d|0)){continue}break}d=H[g+28>>2]}if((c|0)!=(d|0)){while(1){d=d-4|0;e=H[d>>2];H[d>>2]=0;if(e){Ra(e+12|0,H[e+16>>2]);Qa(e,H[e+4>>2]);oa(e)}if((c|0)!=(d|0)){continue}break}}H[g+28>>2]=c;break b}c=c+4|0;if((d|0)!=(c|0)){continue}break}}c:{if((f|0)>4){break c}d:{e=N(f,12)+a|0;c=H[e+20>>2];d=H[e+24>>2];if((c|0)==(d|0)){break d}while(1){if(H[c>>2]==(b|0)){break d}c=c+4|0;if((d|0)!=(c|0)){continue}break}break c}if((c|0)==(d|0)){break c}f=c;c=c+4|0;va(f,c,d-c|0);H[e+24>>2]=d-4}c=H[a+24>>2];d=H[a+20>>2];e:{if((c|0)==(d|0)){break e}e=c-d|0;c=e>>2;g=c>>>0<=1?1:c;i=g&1;c=0;if(e>>>0>=8){g=g&-2;e=0;while(1){f=c<<2;h=f+d|0;j=H[h>>2];if((j|0)>(b|0)){H[h>>2]=j-1}f=d+(f|4)|0;h=H[f>>2];if((h|0)>(b|0)){H[f>>2]=h-1}c=c+2|0;e=e+2|0;if((g|0)!=(e|0)){continue}break}}if(!i){break e}c=d+(c<<2)|0;d=H[c>>2];if((d|0)<=(b|0)){break e}H[c>>2]=d-1}c=H[a+36>>2];d=H[a+32>>2];f:{if((c|0)==(d|0)){break f}e=c-d|0;c=e>>2;g=c>>>0<=1?1:c;i=g&1;c=0;if(e>>>0>=8){g=g&-2;e=0;while(1){f=c<<2;h=f+d|0;j=H[h>>2];if((j|0)>(b|0)){H[h>>2]=j-1}f=d+(f|4)|0;h=H[f>>2];if((h|0)>(b|0)){H[f>>2]=h-1}c=c+2|0;e=e+2|0;if((g|0)!=(e|0)){continue}break}}if(!i){break f}c=d+(c<<2)|0;d=H[c>>2];if((d|0)<=(b|0)){break f}H[c>>2]=d-1}c=H[a+48>>2];d=H[a+44>>2];g:{if((c|0)==(d|0)){break g}e=c-d|0;c=e>>2;g=c>>>0<=1?1:c;i=g&1;c=0;if(e>>>0>=8){g=g&-2;e=0;while(1){f=c<<2;h=f+d|0;j=H[h>>2];if((j|0)>(b|0)){H[h>>2]=j-1}f=d+(f|4)|0;h=H[f>>2];if((h|0)>(b|0)){H[f>>2]=h-1}c=c+2|0;e=e+2|0;if((g|0)!=(e|0)){continue}break}}if(!i){break g}c=d+(c<<2)|0;d=H[c>>2];if((d|0)<=(b|0)){break g}H[c>>2]=d-1}c=H[a+60>>2];d=H[a+56>>2];h:{if((c|0)==(d|0)){break h}e=c-d|0;c=e>>2;g=c>>>0<=1?1:c;i=g&1;c=0;if(e>>>0>=8){g=g&-2;e=0;while(1){f=c<<2;h=f+d|0;j=H[h>>2];if((j|0)>(b|0)){H[h>>2]=j-1}f=d+(f|4)|0;h=H[f>>2];if((h|0)>(b|0)){H[f>>2]=h-1}c=c+2|0;e=e+2|0;if((g|0)!=(e|0)){continue}break}}if(!i){break h}c=d+(c<<2)|0;d=H[c>>2];if((d|0)<=(b|0)){break h}H[c>>2]=d-1}c=H[a+72>>2];a=H[a+68>>2];if((c|0)==(a|0)){break a}d=c-a|0;c=d>>2;e=c>>>0<=1?1:c;g=e&1;c=0;if(d>>>0>=8){d=e&-2;e=0;while(1){i=c<<2;f=i+a|0;h=H[f>>2];if((h|0)>(b|0)){H[f>>2]=h-1}i=a+(i|4)|0;f=H[i>>2];if((f|0)>(b|0)){H[i>>2]=f-1}c=c+2|0;e=e+2|0;if((d|0)!=(e|0)){continue}break}}if(!g){break a}f=b;a=a+(c<<2)|0;b=H[a>>2];if((f|0)>=(b|0)){break a}H[a>>2]=b-1}}function oa(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;a:{if(!a){break a}d=a-8|0;b=H[a-4>>2];a=b&-8;f=d+a|0;b:{if(b&1){break b}if(!(b&3)){break a}b=H[d>>2];d=d-b|0;if(d>>>0>>0<=255){e=H[d+8>>2];b=b>>>3|0;c=H[d+12>>2];if((c|0)==(e|0)){i=17192,j=H[4298]&Vj(b),H[i>>2]=j;break b}H[e+12>>2]=c;H[c+8>>2]=e;break b}h=H[d+24>>2];b=H[d+12>>2];c:{if((d|0)!=(b|0)){c=H[d+8>>2];H[c+12>>2]=b;H[b+8>>2]=c;break c}d:{e=d+20|0;c=H[e>>2];if(c){break d}e=d+16|0;c=H[e>>2];if(c){break d}b=0;break c}while(1){g=e;b=c;e=b+20|0;c=H[e>>2];if(c){continue}e=b+16|0;c=H[b+16>>2];if(c){continue}break}H[g>>2]=0}if(!h){break b}e=H[d+28>>2];c=(e<<2)+17496|0;e:{if(H[c>>2]==(d|0)){H[c>>2]=b;if(b){break e}i=17196,j=H[4299]&Vj(e),H[i>>2]=j;break b}H[h+(H[h+16>>2]==(d|0)?16:20)>>2]=b;if(!b){break b}}H[b+24>>2]=h;c=H[d+16>>2];if(c){H[b+16>>2]=c;H[c+24>>2]=b}c=H[d+20>>2];if(!c){break b}H[b+20>>2]=c;H[c+24>>2]=b;break b}b=H[f+4>>2];if((b&3)!=3){break b}H[4300]=a;H[f+4>>2]=b&-2;H[d+4>>2]=a|1;H[a+d>>2]=a;return}if(d>>>0>=f>>>0){break a}b=H[f+4>>2];if(!(b&1)){break a}f:{if(!(b&2)){if(H[4304]==(f|0)){H[4304]=d;a=H[4301]+a|0;H[4301]=a;H[d+4>>2]=a|1;if(H[4303]!=(d|0)){break a}H[4300]=0;H[4303]=0;return}if(H[4303]==(f|0)){H[4303]=d;a=H[4300]+a|0;H[4300]=a;H[d+4>>2]=a|1;H[a+d>>2]=a;return}a=(b&-8)+a|0;g:{if(b>>>0<=255){e=H[f+8>>2];b=b>>>3|0;c=H[f+12>>2];if((c|0)==(e|0)){i=17192,j=H[4298]&Vj(b),H[i>>2]=j;break g}H[e+12>>2]=c;H[c+8>>2]=e;break g}h=H[f+24>>2];b=H[f+12>>2];h:{if((f|0)!=(b|0)){c=H[f+8>>2];H[c+12>>2]=b;H[b+8>>2]=c;break h}i:{e=f+20|0;c=H[e>>2];if(c){break i}e=f+16|0;c=H[e>>2];if(c){break i}b=0;break h}while(1){g=e;b=c;e=b+20|0;c=H[e>>2];if(c){continue}e=b+16|0;c=H[b+16>>2];if(c){continue}break}H[g>>2]=0}if(!h){break g}e=H[f+28>>2];c=(e<<2)+17496|0;j:{if(H[c>>2]==(f|0)){H[c>>2]=b;if(b){break j}i=17196,j=H[4299]&Vj(e),H[i>>2]=j;break g}H[h+(H[h+16>>2]==(f|0)?16:20)>>2]=b;if(!b){break g}}H[b+24>>2]=h;c=H[f+16>>2];if(c){H[b+16>>2]=c;H[c+24>>2]=b}c=H[f+20>>2];if(!c){break g}H[b+20>>2]=c;H[c+24>>2]=b}H[d+4>>2]=a|1;H[a+d>>2]=a;if(H[4303]!=(d|0)){break f}H[4300]=a;return}H[f+4>>2]=b&-2;H[d+4>>2]=a|1;H[a+d>>2]=a}if(a>>>0<=255){b=(a&-8)+17232|0;c=H[4298];a=1<<(a>>>3);k:{if(!(c&a)){H[4298]=a|c;a=b;break k}a=H[b+8>>2]}H[b+8>>2]=d;H[a+12>>2]=d;H[d+12>>2]=b;H[d+8>>2]=a;return}e=31;if(a>>>0<=16777215){b=Q(a>>>8|0);e=((a>>>38-b&1)-(b<<1)|0)+62|0}H[d+28>>2]=e;H[d+16>>2]=0;H[d+20>>2]=0;g=(e<<2)+17496|0;l:{m:{c=H[4299];b=1<>2]=d;H[d+24>>2]=g;break n}e=a<<((e|0)!=31?25-(e>>>1|0)|0:0);b=H[g>>2];while(1){c=b;if((H[b+4>>2]&-8)==(a|0)){break m}b=e>>>29|0;e=e<<1;g=c+(b&4)|0;b=H[g+16>>2];if(b){continue}break}H[g+16>>2]=d;H[d+24>>2]=c}H[d+12>>2]=d;H[d+8>>2]=d;break l}a=H[c+8>>2];H[a+12>>2]=d;H[c+8>>2]=d;H[d+24>>2]=0;H[d+12>>2]=c;H[d+8>>2]=a}a=H[4306]-1|0;H[4306]=a?a:-1}}function tj(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0;H[a+8>>2]=e;n=a+32|0;h=H[n>>2];f=H[a+36>>2]-h>>2;a:{if(f>>>0>>0){ya(n,e-f|0);d=H[a+8>>2];break a}d=e;if(d>>>0>=f>>>0){break a}H[a+36>>2]=h+(e<<2);d=e}s=H[a+52>>2];p=H[a+48>>2];f=0;h=e>>>0>1073741823?-1:e<<2;m=ra(pa(h),0,h);b:{if((d|0)<=0){break b}g=H[a+32>>2];while(1){d=f<<2;h=H[d+m>>2];j=H[a+16>>2];c:{if((h|0)>(j|0)){H[d+g>>2]=j;break c}d=d+g|0;j=H[a+12>>2];if((j|0)>(h|0)){H[d>>2]=j;break c}H[d>>2]=h}d=H[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}if((d|0)<=0){break b}f=0;while(1){h=f<<2;d=h+c|0;h=H[b+h>>2]+H[g+h>>2]|0;H[d>>2]=h;d:{if((h|0)>H[a+16>>2]){i=h-H[a+20>>2]|0}else{if((h|0)>=H[a+12>>2]){break d}i=h+H[a+20>>2]|0}H[d>>2]=i}d=H[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}}f=H[a+56>>2];q=H[f>>2];f=H[f+4>>2]-q|0;if((f|0)>=5){o=f>>>2|0;t=o>>>0<=2?2:o;u=e&-2;w=e&1;h=1;while(1){e:{f:{if((h|0)!=(o|0)){r=N(e,h);f=H[(h<<2)+q>>2];if((f|0)==-1){break f}f=H[H[p+12>>2]+(f<<2)>>2];if((f|0)==-1){break f}j=H[s>>2];g=H[p>>2];k=H[j+(H[g+(f<<2)>>2]<<2)>>2];i=f+1|0;i=(i>>>0)%3|0?i:f-2|0;if((i|0)!=-1){i=H[g+(i<<2)>>2]}else{i=-1}g:{h:{if((f>>>0)%3|0){f=f-1|0;break h}f=f+2|0;l=-1;if((f|0)==-1){break g}}l=H[g+(f<<2)>>2]}if((h|0)<=(k|0)){break f}f=H[(i<<2)+j>>2];if((f|0)>=(h|0)){break f}g=H[j+(l<<2)>>2];if((g|0)>=(h|0)){break f}i:{if((e|0)<=0){break i}g=N(e,g);j=N(e,f);k=N(e,k);f=0;l=0;if((e|0)!=1){while(1){H[(f<<2)+m>>2]=(H[(f+g<<2)+c>>2]+H[(f+j<<2)+c>>2]|0)-H[(f+k<<2)+c>>2];i=f|1;H[(i<<2)+m>>2]=(H[(g+i<<2)+c>>2]+H[(j+i<<2)+c>>2]|0)-H[(i+k<<2)+c>>2];f=f+2|0;l=l+2|0;if((u|0)!=(l|0)){continue}break}}if(!w){break i}H[(f<<2)+m>>2]=(H[(f+g<<2)+c>>2]+H[(f+j<<2)+c>>2]|0)-H[(f+k<<2)+c>>2]}if((d|0)<=0){break e}j=H[n>>2];f=0;while(1){d=f<<2;g=H[d+m>>2];k=H[a+16>>2];j:{if((g|0)>(k|0)){H[d+j>>2]=k;break j}d=d+j|0;k=H[a+12>>2];if((k|0)>(g|0)){H[d>>2]=k;break j}H[d>>2]=g}d=H[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}f=0;if((d|0)<=0){break e}d=r<<2;k=d+c|0;i=b+d|0;while(1){g=f<<2;d=g+k|0;g=H[g+i>>2]+H[g+j>>2]|0;H[d>>2]=g;k:{if((g|0)>H[a+16>>2]){l=g-H[a+20>>2]|0}else{if((g|0)>=H[a+12>>2]){break k}l=g+H[a+20>>2]|0}H[d>>2]=l}d=H[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}break e}Ca();v()}if((d|0)<=0){break e}k=(N(h-1|0,e)<<2)+c|0;j=H[n>>2];f=0;while(1){d=f<<2;g=H[d+k>>2];i=H[a+16>>2];l:{if((g|0)>(i|0)){H[d+j>>2]=i;break l}d=d+j|0;i=H[a+12>>2];if((i|0)>(g|0)){H[d>>2]=i;break l}H[d>>2]=g}d=H[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}f=0;if((d|0)<=0){break e}d=r<<2;k=d+c|0;i=b+d|0;while(1){g=f<<2;d=g+k|0;g=H[g+i>>2]+H[g+j>>2]|0;H[d>>2]=g;m:{if((g|0)>H[a+16>>2]){l=g-H[a+20>>2]|0}else{if((g|0)>=H[a+12>>2]){break m}l=g+H[a+20>>2]|0}H[d>>2]=l}d=H[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}}h=h+1|0;if((t|0)!=(h|0)){continue}break}}oa(m);return 1}function we(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;if((b|0)==-1){return 1}g=(b>>>0)/3|0;if(!(H[H[a+24>>2]+(g>>>3&268435452)>>2]>>>g&1)){e=H[a+48>>2];H[a+52>>2]=e;a:{if((e|0)!=H[a+56>>2]){H[e>>2]=b;H[a+52>>2]=e+4;break a}d=pa(4);H[d>>2]=b;c=d+4|0;H[a+56>>2]=c;H[a+52>>2]=c;H[a+48>>2]=d;if(!e){break a}oa(e)}c=b+1|0;i=(c>>>0)%3|0?c:b-2|0;c=H[H[a+4>>2]+28>>2];k=H[(i<<2)+c>>2];if((k|0)==-1){return 0}e=(b-N(g,3)|0?-1:2)+b|0;j=H[c+(e<<2)>>2];if((j|0)==-1){return 0}b=H[a+36>>2];g=b+(k>>>3&536870908)|0;d=H[g>>2];c=1<>2]=c|d;Ua(a+8|0,k,i);b=H[a+36>>2]}d=(j>>>3&536870908)+b|0;c=H[d>>2];b=1<>2]=b|c;Ua(a+8|0,j,e)}f=H[a+52>>2];if((f|0)==H[a+48>>2]){return 1}k=a+8|0;while(1){b:{c:{f=f-4|0;b=H[f>>2];if((b|0)==-1){break c}c=(b>>>0)/3|0;g=H[a+24>>2]+(c>>>3&268435452)|0;d=H[g>>2];c=1<>2]=c|d;h=H[a+4>>2];c=H[H[h+28>>2]+(b<<2)>>2];if((c|0)==-1){return 0}while(1){d=b;d:{e:{j=H[a+36>>2]+(c>>>3&536870908)|0;i=H[j>>2];e=1<>2]+(c<<2)>>2];g:{if((g|0)==-1){break g}b=g+1|0;b=(b>>>0)%3|0?b:g-2|0;if((b|0)==-1|H[H[h>>2]+(b>>>3&536870908)>>2]>>>b&1){break g}g=H[H[H[h+64>>2]+12>>2]+(b<<2)>>2];if((g|0)!=-1){break f}}H[j>>2]=e|i;Ua(k,c,d);h=H[a+4>>2];break e}H[j>>2]=e|i;Ua(k,c,d);h=H[a+4>>2];b=g+1|0;if((((b>>>0)%3|0?b:g-2|0)|0)==-1){break e}b=-1;h:{if((d|0)==-1){break h}c=d+1|0;c=(c>>>0)%3|0?c:d-2|0;if((c|0)==-1|H[H[h>>2]+(c>>>3&536870908)>>2]>>>c&1){break h}b=H[H[H[h+64>>2]+12>>2]+(c<<2)>>2]}c=(b>>>0)/3|0;d=1<>2];e=c>>>5|0;j=H[f+(e<<2)>>2];break d}i:{j:{if((d|0)==-1){break j}c=-1;b=d+1|0;b=(b>>>0)%3|0?b:d-2|0;if(!((b|0)==-1|H[H[h>>2]+(b>>>3&536870908)>>2]>>>b&1)){c=H[H[H[h+64>>2]+12>>2]+(b<<2)>>2]}k:{l:{if((d>>>0)%3|0){f=d-1|0;break l}f=d+2|0;b=-1;if((f|0)==-1){break k}}b=-1;if(H[H[h>>2]+(f>>>3&536870908)>>2]>>>f&1){break k}b=H[H[H[h+64>>2]+12>>2]+(f<<2)>>2]}g=(b|0)==-1;i=g?-1:(b>>>0)/3|0;if((c|0)!=-1){f=H[a+24>>2];d=(c>>>0)/3|0;e=d>>>5|0;j=H[f+(e<<2)>>2];d=1<>2];e=i>>>5|0;j=H[f+(e<<2)>>2];if(!(d&j)){break d}}f=H[a+52>>2]-4|0;H[a+52>>2]=f;break b}if(g){b=c;break d}if(H[(i>>>3&536870908)+f>>2]>>>i&1){b=c;break d}h=H[a+52>>2];H[h-4>>2]=b;if(H[a+56>>2]!=(h|0)){H[h>>2]=c;f=h+4|0;break c}m:{i=H[a+48>>2];e=h-i|0;g=e>>2;d=g+1|0;if(d>>>0<1073741824){b=e>>>1|0;e=e>>>0>=2147483644?1073741823:b>>>0>d>>>0?b:d;if(e){if(e>>>0>=1073741824){break m}d=pa(e<<2)}else{d=0}b=d+(g<<2)|0;H[b>>2]=c;f=b+4|0;if((h|0)!=(i|0)){while(1){b=b-4|0;h=h-4|0;H[b>>2]=H[h>>2];if((h|0)!=(i|0)){continue}break}}H[a+56>>2]=d+(e<<2);H[a+52>>2]=f;H[a+48>>2]=b;if(!i){break b}oa(i);f=H[a+52>>2];break b}sa();v()}wa();v()}H[(e<<2)+f>>2]=d|j;c=H[H[h+28>>2]+(b<<2)>>2];if((c|0)!=-1){continue}break}return 0}H[a+52>>2]=f}if(H[a+48>>2]!=(f|0)){continue}break}}return 1}function Lj(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0;H[a+8>>2]=e;m=a+32|0;h=H[m>>2];f=H[a+36>>2]-h>>2;a:{if(f>>>0>>0){ya(m,e-f|0);d=H[a+8>>2];break a}d=e;if(d>>>0>=f>>>0){break a}H[a+36>>2]=h+(e<<2);d=e}s=H[a+52>>2];n=H[a+48>>2];f=0;h=e>>>0>1073741823?-1:e<<2;l=ra(pa(h),0,h);b:{if((d|0)<=0){break b}g=H[a+32>>2];while(1){d=f<<2;h=H[d+l>>2];i=H[a+16>>2];c:{if((h|0)>(i|0)){H[d+g>>2]=i;break c}d=d+g|0;i=H[a+12>>2];if((i|0)>(h|0)){H[d>>2]=i;break c}H[d>>2]=h}d=H[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}if((d|0)<=0){break b}f=0;while(1){h=f<<2;d=h+c|0;h=H[b+h>>2]+H[g+h>>2]|0;H[d>>2]=h;d:{if((h|0)>H[a+16>>2]){h=h-H[a+20>>2]|0}else{if((h|0)>=H[a+12>>2]){break d}h=h+H[a+20>>2]|0}H[d>>2]=h}d=H[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}}f=H[a+56>>2];q=H[f>>2];f=H[f+4>>2]-q|0;if((f|0)>=5){o=f>>>2|0;t=o>>>0<=2?2:o;u=e&-2;w=e&1;h=1;while(1){e:{f:{if((h|0)!=(o|0)){r=N(e,h);f=H[(h<<2)+q>>2];if((f|0)==-1|H[H[n>>2]+(f>>>3&536870908)>>2]>>>f&1){break f}f=H[H[H[n+64>>2]+12>>2]+(f<<2)>>2];if((f|0)==-1){break f}i=H[s>>2];g=H[n+28>>2];k=H[i+(H[g+(f<<2)>>2]<<2)>>2];if((k|0)>=(h|0)){break f}j=f+1|0;j=H[i+(H[g+(((j>>>0)%3|0?j:f-2|0)<<2)>>2]<<2)>>2];if((j|0)>=(h|0)){break f}f=H[i+(H[g+(f+((f>>>0)%3|0?-1:2)<<2)>>2]<<2)>>2];if((f|0)>=(h|0)){break f}g:{if((e|0)<=0){break g}g=N(e,f);i=N(e,j);k=N(e,k);f=0;p=0;if((e|0)!=1){while(1){H[(f<<2)+l>>2]=(H[(f+g<<2)+c>>2]+H[(f+i<<2)+c>>2]|0)-H[(f+k<<2)+c>>2];j=f|1;H[(j<<2)+l>>2]=(H[(g+j<<2)+c>>2]+H[(i+j<<2)+c>>2]|0)-H[(k+j<<2)+c>>2];f=f+2|0;p=p+2|0;if((u|0)!=(p|0)){continue}break}}if(!w){break g}H[(f<<2)+l>>2]=(H[(f+g<<2)+c>>2]+H[(f+i<<2)+c>>2]|0)-H[(f+k<<2)+c>>2]}if((d|0)<=0){break e}i=H[m>>2];f=0;while(1){d=f<<2;g=H[d+l>>2];k=H[a+16>>2];h:{if((g|0)>(k|0)){H[d+i>>2]=k;break h}d=d+i|0;k=H[a+12>>2];if((k|0)>(g|0)){H[d>>2]=k;break h}H[d>>2]=g}d=H[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}f=0;if((d|0)<=0){break e}d=r<<2;k=d+c|0;j=b+d|0;while(1){g=f<<2;d=g+k|0;g=H[g+j>>2]+H[g+i>>2]|0;H[d>>2]=g;i:{if((g|0)>H[a+16>>2]){g=g-H[a+20>>2]|0}else{if((g|0)>=H[a+12>>2]){break i}g=g+H[a+20>>2]|0}H[d>>2]=g}d=H[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}break e}Ca();v()}if((d|0)<=0){break e}k=(N(h-1|0,e)<<2)+c|0;i=H[m>>2];f=0;while(1){d=f<<2;g=H[d+k>>2];j=H[a+16>>2];j:{if((g|0)>(j|0)){H[d+i>>2]=j;break j}d=d+i|0;j=H[a+12>>2];if((j|0)>(g|0)){H[d>>2]=j;break j}H[d>>2]=g}d=H[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}f=0;if((d|0)<=0){break e}d=r<<2;k=d+c|0;j=b+d|0;while(1){g=f<<2;d=g+k|0;g=H[g+j>>2]+H[g+i>>2]|0;H[d>>2]=g;k:{if((g|0)>H[a+16>>2]){g=g-H[a+20>>2]|0}else{if((g|0)>=H[a+12>>2]){break k}g=g+H[a+20>>2]|0}H[d>>2]=g}d=H[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}}h=h+1|0;if((t|0)!=(h|0)){continue}break}}oa(l);return 1}function Gb(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=O(0),k=0,l=0,m=O(0);i=H[c>>2];a:{b:{f=H[b+4>>2];if(!f){break b}g=Uj(f);c:{if(g>>>0>=2){e=i;if(f>>>0<=e>>>0){e=(i>>>0)%(f>>>0)|0}c=H[H[b>>2]+(e<<2)>>2];if(!c){break b}if(g>>>0<=1){break c}while(1){c=H[c>>2];if(!c){break b}g=H[c+4>>2];if((g|0)!=(i|0)){if(f>>>0<=g>>>0){g=(g>>>0)%(f>>>0)|0}if((e|0)!=(g|0)){break b}}if(H[c+8>>2]!=(i|0)){continue}break}b=0;break a}e=f-1&i;c=H[H[b>>2]+(e<<2)>>2];if(!c){break b}}h=f-1|0;while(1){c=H[c>>2];if(!c){break b}g=H[c+4>>2];if((g|0)!=(i|0)&(g&h)!=(e|0)){break b}if(H[c+8>>2]!=(i|0)){continue}break}b=0;break a}c=pa(16);d=H[H[d>>2]>>2];H[c+12>>2]=0;H[c+8>>2]=d;H[c+4>>2]=i;H[c>>2]=0;m=O(H[b+12>>2]+1>>>0);j=L[b+16>>2];d:{if(m>O(j*O(f>>>0))?0:f){break d}e=2;d=(f-1&f)!=0|f>>>0<3|f<<1;j=O(U(O(m/j)));e:{if(j=O(0)){g=~~j>>>0;break e}g=0}d=d>>>0>g>>>0?d:g;f:{if((d|0)==1){break f}if(!(d&d-1)){e=d;break f}e=Kd(d);f=H[b+4>>2]}g:{if(e>>>0<=f>>>0){if(e>>>0>=f>>>0){break g}g=f>>>0<3;j=O(U(O(O(K[b+12>>2])/L[b+16>>2])));h:{if(j=O(0)){d=~~j>>>0;break h}d=0}i:{j:{if(g){break j}if(Uj(f)>>>0>1){break j}d=d>>>0<2?d:1<<32-Q(d-1|0);break i}d=Kd(d)}e=d>>>0>>0?e:d;if(f>>>0<=e>>>0){break g}}f=0;g=0;h=e;k:{l:{m:{n:{if(e){if(h>>>0>=1073741824){break n}d=pa(h<<2);e=H[b>>2];H[b>>2]=d;if(e){oa(e)}H[b+4>>2]=h;d=0;if(h>>>0>=4){e=h&-4;while(1){k=d<<2;H[k+H[b>>2]>>2]=0;H[H[b>>2]+(k|4)>>2]=0;H[H[b>>2]+(k|8)>>2]=0;H[H[b>>2]+(k|12)>>2]=0;d=d+4|0;g=g+4|0;if((e|0)!=(g|0)){continue}break}}e=h&3;if(e){while(1){H[H[b>>2]+(d<<2)>>2]=0;d=d+1|0;f=f+1|0;if((e|0)!=(f|0)){continue}break}}e=H[b+8>>2];if(!e){break k}d=b+8|0;f=H[e+4>>2];g=Uj(h);if(g>>>0<2){break m}f=f>>>0>=h>>>0?(f>>>0)%(h>>>0)|0:f;H[H[b>>2]+(f<<2)>>2]=d;d=H[e>>2];if(!d){break k}if(g>>>0<=1){break l}while(1){g=H[d+4>>2];if(h>>>0<=g>>>0){g=(g>>>0)%(h>>>0)|0}o:{if((f|0)==(g|0)){e=d;break o}l=g<<2;k=l+H[b>>2]|0;if(!H[k>>2]){H[k>>2]=e;e=d;f=g;break o}H[e>>2]=H[d>>2];H[d>>2]=H[H[l+H[b>>2]>>2]>>2];H[H[l+H[b>>2]>>2]>>2]=d}d=H[e>>2];if(d){continue}break}break k}d=H[b>>2];H[b>>2]=0;if(d){oa(d)}H[b+4>>2]=0;break k}wa();v()}f=h-1&f;H[H[b>>2]+(f<<2)>>2]=d;d=H[e>>2];if(!d){break k}}k=h-1|0;while(1){g=k&H[d+4>>2];p:{if((g|0)==(f|0)){e=d;break p}l=g<<2;h=l+H[b>>2]|0;if(H[h>>2]){H[e>>2]=H[d>>2];H[d>>2]=H[H[l+H[b>>2]>>2]>>2];H[H[l+H[b>>2]>>2]>>2]=d;break p}H[h>>2]=e;e=d;f=g}d=H[e>>2];if(d){continue}break}}}f=H[b+4>>2];d=f-1|0;if(!(d&f)){e=d&i;break d}if(f>>>0>i>>>0){e=i;break d}e=(i>>>0)%(f>>>0)|0}e=H[b>>2]+(e<<2)|0;d=H[e>>2];q:{r:{if(!d){d=b+8|0;H[c>>2]=H[d>>2];H[b+8>>2]=c;H[e>>2]=d;d=H[c>>2];if(!d){break q}d=H[d+4>>2];e=f-1|0;s:{if(!(e&f)){d=d&e;break s}if(d>>>0>>0){break s}d=(d>>>0)%(f>>>0)|0}d=H[b>>2]+(d<<2)|0;break r}H[c>>2]=H[d>>2]}H[d>>2]=c}H[b+12>>2]=H[b+12>>2]+1;b=1}F[a+4|0]=b;H[a>>2]=c}function Oe(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0;f=ca-80|0;ca=f;e=H[c+36>>2];H[f+72>>2]=H[c+32>>2];H[f+76>>2]=e;g=H[c+28>>2];e=f- -64|0;H[e>>2]=H[c+24>>2];H[e+4>>2]=g;e=H[c+20>>2];H[f+56>>2]=H[c+16>>2];H[f+60>>2]=e;e=H[c+12>>2];H[f+48>>2]=H[c+8>>2];H[f+52>>2]=e;e=H[c+4>>2];H[f+40>>2]=H[c>>2];H[f+44>>2]=e;nc(a,f+40|0,f+24|0);a:{if(H[a>>2]){break a}if(F[a+15|0]<0){oa(H[a+4>>2])}if(I[f+31|0]!=1){b=pa(32);F[b+20|0]=0;c=I[1448]|I[1449]<<8|(I[1450]<<16|I[1451]<<24);F[b+16|0]=c;F[b+17|0]=c>>>8;F[b+18|0]=c>>>16;F[b+19|0]=c>>>24;c=I[1444]|I[1445]<<8|(I[1446]<<16|I[1447]<<24);d=I[1440]|I[1441]<<8|(I[1442]<<16|I[1443]<<24);F[b+8|0]=d;F[b+9|0]=d>>>8;F[b+10|0]=d>>>16;F[b+11|0]=d>>>24;F[b+12|0]=c;F[b+13|0]=c>>>8;F[b+14|0]=c>>>16;F[b+15|0]=c>>>24;c=I[1436]|I[1437]<<8|(I[1438]<<16|I[1439]<<24);d=I[1432]|I[1433]<<8|(I[1434]<<16|I[1435]<<24);F[b|0]=d;F[b+1|0]=d>>>8;F[b+2|0]=d>>>16;F[b+3|0]=d>>>24;F[b+4|0]=c;F[b+5|0]=c>>>8;F[b+6|0]=c>>>16;F[b+7|0]=c>>>24;H[a>>2]=-1;za(a+4|0,b,20);oa(b);break a}i=ca-16|0;ca=i;b:{c:{switch(I[f+32|0]){case 0:e=Ke(pa(48));H[e>>2]=13112;H[f+8>>2]=0;H[f+12>>2]=0;H[f>>2]=0;H[f+4>>2]=0;H[f+16>>2]=e;break b;case 1:e=Ke(pa(52));H[e+48>>2]=0;H[e>>2]=11276;H[f+8>>2]=0;H[f+12>>2]=0;H[f>>2]=0;H[f+4>>2]=0;H[f+16>>2]=e;break b;default:break c}}g=pa(32);F[g+28|0]=0;e=I[1550]|I[1551]<<8|(I[1552]<<16|I[1553]<<24);F[g+24|0]=e;F[g+25|0]=e>>>8;F[g+26|0]=e>>>16;F[g+27|0]=e>>>24;e=I[1546]|I[1547]<<8|(I[1548]<<16|I[1549]<<24);h=I[1542]|I[1543]<<8|(I[1544]<<16|I[1545]<<24);F[g+16|0]=h;F[g+17|0]=h>>>8;F[g+18|0]=h>>>16;F[g+19|0]=h>>>24;F[g+20|0]=e;F[g+21|0]=e>>>8;F[g+22|0]=e>>>16;F[g+23|0]=e>>>24;e=I[1538]|I[1539]<<8|(I[1540]<<16|I[1541]<<24);h=I[1534]|I[1535]<<8|(I[1536]<<16|I[1537]<<24);F[g+8|0]=h;F[g+9|0]=h>>>8;F[g+10|0]=h>>>16;F[g+11|0]=h>>>24;F[g+12|0]=e;F[g+13|0]=e>>>8;F[g+14|0]=e>>>16;F[g+15|0]=e>>>24;e=I[1530]|I[1531]<<8|(I[1532]<<16|I[1533]<<24);h=I[1526]|I[1527]<<8|(I[1528]<<16|I[1529]<<24);F[g|0]=h;F[g+1|0]=h>>>8;F[g+2|0]=h>>>16;F[g+3|0]=h>>>24;F[g+4|0]=e;F[g+5|0]=e>>>8;F[g+6|0]=e>>>16;F[g+7|0]=e>>>24;H[i>>2]=-1;e=i|4;za(e,g,28);j=F[i+15|0];H[f>>2]=H[i>>2];h=f+4|0;d:{if((j|0)>=0){j=H[e+4>>2];H[h>>2]=H[e>>2];H[h+4>>2]=j;H[h+8>>2]=H[e+8>>2];H[f+16>>2]=0;break d}za(h,H[i+4>>2],H[i+8>>2]);e=F[i+15|0];H[f+16>>2]=0;if((e|0)>=0){break d}oa(H[i+4>>2])}oa(g)}ca=i+16|0;e=H[f>>2];e:{if(e){H[a>>2]=e;a=a+4|0;if(F[f+15|0]>=0){b=f|4;c=H[b+4>>2];H[a>>2]=H[b>>2];H[a+4>>2]=c;H[a+8>>2]=H[b+8>>2];break e}za(a,H[f+4>>2],H[f+8>>2]);break e}e=H[f+16>>2];H[f+16>>2]=0;H[e+44>>2]=d;te(a,e,b,c,d);if(!H[a>>2]){if(F[a+15|0]<0){oa(H[a+4>>2])}H[a>>2]=0;H[a+4>>2]=0;H[a+8>>2]=0;H[a+12>>2]=0}ea[H[H[e>>2]+4>>2]](e)}a=H[f+16>>2];H[f+16>>2]=0;if(a){ea[H[H[a>>2]+4>>2]](a)}if(F[f+15|0]>=0){break a}oa(H[f+4>>2])}ca=f+80|0}function Gc(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;j=N(b,12)+a|0;H[j+12>>2]=H[j+8>>2];m=(c|0)==-1?-1:(c>>>0)/3|0;d=1;k=c;a:{b:{c:{while(1){d:{l=d;if(!d){if((k|0)==-1){break d}if((de(a,((k>>>0)%3|0?-1:2)+k|0)|0)==-1){break a}c=k+1|0;d=(c>>>0)%3|0?c:k-2|0;if((d|0)==-1){break a}c=d+1|0;c=(c>>>0)%3|0?c:d-2|0;if((c|0)==-1){break a}d=H[H[H[a+4>>2]+12>>2]+(c<<2)>>2];if((d|0)==-1){break a}c=d+1|0;c=(c>>>0)%3|0?c:d-2|0;if((c|0)==-1){break a}m=(c>>>0)/3|0}e:{d=H[a+56>>2]+(m>>>3&536870908)|0;h=H[d>>2];e=1<>2]=e|h;d=H[j+12>>2];f:{if((d|0)!=H[j+16>>2]){H[d>>2]=m;H[j+12>>2]=d+4;break f}n=H[j+8>>2];h=d-n|0;e=h>>2;i=e+1|0;if(i>>>0>=1073741824){break c}g=h>>>1|0;i=h>>>0>=2147483644?1073741823:i>>>0>>0?g:i;if(i){if(i>>>0>=1073741824){break b}g=pa(i<<2)}else{g=0}h=g+(e<<2)|0;H[h>>2]=m;e=h+4|0;if((d|0)!=(n|0)){while(1){h=h-4|0;d=d-4|0;H[h>>2]=H[d>>2];if((d|0)!=(n|0)){continue}break}}H[j+8>>2]=h;H[j+12>>2]=e;H[j+16>>2]=g+(i<<2);if(!n){break f}oa(n)}g=f+1|0;g:{h:{i:{if(!f){break i}if(g&1){if((c|0)==-1){c=-1;break g}d=c+1|0;c=(d>>>0)%3|0?d:c-2|0;break i}k=l?k:c;if((c|0)==-1){c=-1;break g}if((c>>>0)%3|0){d=c-1|0;break h}c=c+2|0}d=c;c=-1;if((d|0)==-1){break g}}c=H[H[H[a+4>>2]+12>>2]+(d<<2)>>2];h=-1;f=-1;e=d+1|0;e=(e>>>0)%3|0?e:d-2|0;if((e|0)>=0){f=(e>>>0)/3|0;f=H[(H[H[a>>2]+96>>2]+N(f,12)|0)+(e-N(f,3)<<2)>>2]}j:{if((c|0)==-1){break j}i=((c>>>0)%3|0?-1:2)+c|0;if((i|0)<0){break j}e=(i>>>0)/3|0;h=H[(H[H[a>>2]+96>>2]+N(e,12)|0)+(i-N(e,3)<<2)>>2]}if((f|0)!=(h|0)){c=-1;break g}k:{l:{f=((d>>>0)%3|0?-1:2)+d|0;if((f|0)>=0){d=(f>>>0)/3|0;if((c|0)!=-1){break l}c=-1;break g}d=-1;if((c|0)!=-1){break k}c=-1;break g}d=H[(H[H[a>>2]+96>>2]+N(d,12)|0)+(f-N(d,3)<<2)>>2]}f=c+1|0;e=(f>>>0)%3|0?f:c-2|0;if((e|0)>=0){f=(e>>>0)/3|0;f=H[(H[H[a>>2]+96>>2]+N(f,12)|0)+(e-N(f,3)<<2)>>2]}else{f=-1}if((f|0)!=(d|0)){c=-1;break g}f=g;m=(c>>>0)/3|0;d=H[a+56>>2]+(m>>>3&268435452)|0;h=H[d>>2];e=1<>2]-4|0;g=H[l>>2];d=H[a+56>>2]+(g>>>3&536870908)|0;c=H[d>>2];o=d,p=Vj(g)&c,H[o>>2]=p;H[j+12>>2]=l;break a}d=0;if(l){continue}break a}break}k=-1;de(a,-1);break a}sa();v()}wa();v()}H[((b<<2)+a|0)+44>>2]=k;b=H[j+12>>2];i=H[j+8>>2];m:{if((b|0)==(i|0)){break m}c=b-i|0;b=c>>2;b=b>>>0<=1?1:b;k=b&1;e=H[a+56>>2];d=0;if(c>>>0>=8){f=b&-2;c=0;while(1){l=d<<2;g=H[l+i>>2];b=e+(g>>>3&536870908)|0;a=H[b>>2];o=b,p=Vj(g)&a,H[o>>2]=p;g=H[i+(l|4)>>2];b=e+(g>>>3&536870908)|0;a=H[b>>2];o=b,p=Vj(g)&a,H[o>>2]=p;d=d+2|0;c=c+2|0;if((f|0)!=(c|0)){continue}break}}if(!k){break m}c=H[i+(d<<2)>>2];b=e+(c>>>3&536870908)|0;a=H[b>>2];o=b,p=Vj(c)&a,H[o>>2]=p}}function Gj(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;h=ca-32|0;ca=h;a:{if(J[b+38>>1]<=513){c=H[b+20>>2];f=H[b+12>>2];d=H[b+16>>2];if((c|0)>=(f|0)&d>>>0>=K[b+8>>2]|(c|0)>(f|0)){break a}f=I[d+H[b>>2]|0];d=d+1|0;c=d?c:c+1|0;H[b+16>>2]=d;H[b+20>>2]=c;if(f){break a}}b:{if(!Xa(1,h+28|0,b)){break b}d=H[h+28>>2];c=H[H[a+48>>2]+64>>2];if(d>>>0>H[c+4>>2]-H[c>>2]>>2>>>0){break b}c:{if(d){Wa(a+60|0,d);c=h+8|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;if(!ta(c,b)){break c}while(1){f=1<>2]+(e>>>3&536870908)|0;if(j){i=f|H[g>>2]}else{i=H[g>>2]&(f^-1)}H[g>>2]=i;e=e+1|0;if((d|0)!=(e|0)){continue}break}}if(!Xa(1,h+28|0,b)){break b}d=H[h+28>>2];c=H[H[a+48>>2]+64>>2];if(d>>>0>H[c+4>>2]-H[c>>2]>>2>>>0){break b}if(d){e=0;Wa(a+72|0,d);c=h+8|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;if(!ta(c,b)){break c}while(1){f=1<>2]+(e>>>3&536870908)|0;if(j){i=f|H[g>>2]}else{i=H[g>>2]&(f^-1)}H[g>>2]=i;e=e+1|0;if((d|0)!=(e|0)){continue}break}}if(!Xa(1,h+28|0,b)){break b}d=H[h+28>>2];c=H[H[a+48>>2]+64>>2];if(d>>>0>H[c+4>>2]-H[c>>2]>>2>>>0){break b}if(d){e=0;Wa(a+84|0,d);c=h+8|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;if(!ta(c,b)){break c}while(1){f=1<>2]+(e>>>3&536870908)|0;if(j){i=f|H[g>>2]}else{i=H[g>>2]&(f^-1)}H[g>>2]=i;e=e+1|0;if((d|0)!=(e|0)){continue}break}}if(!Xa(1,h+28|0,b)){break b}d=H[h+28>>2];c=H[H[a+48>>2]+64>>2];if(d>>>0>H[c+4>>2]-H[c>>2]>>2>>>0){break b}if(d){e=0;Wa(a+96|0,d);c=h+8|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;if(!ta(c,b)){break c}while(1){f=1<>2]+(e>>>3&536870908)|0;if(j){i=f|H[g>>2]}else{i=H[g>>2]&(f^-1)}H[g>>2]=i;e=e+1|0;if((d|0)!=(e|0)){continue}break}}e=0;c=H[b+8>>2];f=H[b+12>>2];d=c;c=H[b+20>>2];i=c;g=H[b+16>>2];j=g+4|0;c=j>>>0<4?c+1|0:c;if(d>>>0>>0&(c|0)>=(f|0)|(c|0)>(f|0)){break a}m=H[b>>2];k=m+g|0;l=I[k|0]|I[k+1|0]<<8|(I[k+2|0]<<16|I[k+3|0]<<24);H[b+16>>2]=j;H[b+20>>2]=c;k=d;d=f;c=i;f=g+8|0;c=f>>>0<8?c+1|0:c;if(f>>>0>k>>>0&(c|0)>=(d|0)|(c|0)>(d|0)){break a}d=j+m|0;d=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);H[b+16>>2]=f;H[b+20>>2]=c;if((d|0)<(l|0)){break a}H[a+16>>2]=d;H[a+12>>2]=l;c=(d>>31)-((l>>31)+(d>>>0>>0)|0)|0;b=d-l|0;if(!c&b>>>0>2147483646|c){break a}e=1;b=b+1|0;H[a+20>>2]=b;c=b>>>1|0;H[a+24>>2]=c;H[a+28>>2]=0-c;if(b&1){break a}H[a+24>>2]=c-1;break a}}e=0}ca=h+32|0;return e|0}function pj(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;h=ca-32|0;ca=h;a:{if(J[b+38>>1]<=513){c=H[b+20>>2];f=H[b+12>>2];d=H[b+16>>2];if((c|0)>=(f|0)&d>>>0>=K[b+8>>2]|(c|0)>(f|0)){break a}f=I[d+H[b>>2]|0];d=d+1|0;c=d?c:c+1|0;H[b+16>>2]=d;H[b+20>>2]=c;if(f){break a}}b:{if(!Xa(1,h+28|0,b)){break b}d=H[h+28>>2];c=H[a+48>>2];if(d>>>0>H[c+4>>2]-H[c>>2]>>2>>>0){break b}c:{if(d){Wa(a+60|0,d);c=h+8|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;if(!ta(c,b)){break c}while(1){f=1<>2]+(e>>>3&536870908)|0;if(j){i=f|H[g>>2]}else{i=H[g>>2]&(f^-1)}H[g>>2]=i;e=e+1|0;if((d|0)!=(e|0)){continue}break}}if(!Xa(1,h+28|0,b)){break b}d=H[h+28>>2];c=H[a+48>>2];if(d>>>0>H[c+4>>2]-H[c>>2]>>2>>>0){break b}if(d){e=0;Wa(a+72|0,d);c=h+8|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;if(!ta(c,b)){break c}while(1){f=1<>2]+(e>>>3&536870908)|0;if(j){i=f|H[g>>2]}else{i=H[g>>2]&(f^-1)}H[g>>2]=i;e=e+1|0;if((d|0)!=(e|0)){continue}break}}if(!Xa(1,h+28|0,b)){break b}d=H[h+28>>2];c=H[a+48>>2];if(d>>>0>H[c+4>>2]-H[c>>2]>>2>>>0){break b}if(d){e=0;Wa(a+84|0,d);c=h+8|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;if(!ta(c,b)){break c}while(1){f=1<>2]+(e>>>3&536870908)|0;if(j){i=f|H[g>>2]}else{i=H[g>>2]&(f^-1)}H[g>>2]=i;e=e+1|0;if((d|0)!=(e|0)){continue}break}}if(!Xa(1,h+28|0,b)){break b}d=H[h+28>>2];c=H[a+48>>2];if(d>>>0>H[c+4>>2]-H[c>>2]>>2>>>0){break b}if(d){e=0;Wa(a+96|0,d);c=h+8|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;if(!ta(c,b)){break c}while(1){f=1<>2]+(e>>>3&536870908)|0;if(j){i=f|H[g>>2]}else{i=H[g>>2]&(f^-1)}H[g>>2]=i;e=e+1|0;if((d|0)!=(e|0)){continue}break}}e=0;c=H[b+8>>2];f=H[b+12>>2];d=c;c=H[b+20>>2];i=c;g=H[b+16>>2];j=g+4|0;c=j>>>0<4?c+1|0:c;if(d>>>0>>0&(c|0)>=(f|0)|(c|0)>(f|0)){break a}m=H[b>>2];k=m+g|0;l=I[k|0]|I[k+1|0]<<8|(I[k+2|0]<<16|I[k+3|0]<<24);H[b+16>>2]=j;H[b+20>>2]=c;k=d;d=f;c=i;f=g+8|0;c=f>>>0<8?c+1|0:c;if(f>>>0>k>>>0&(c|0)>=(d|0)|(c|0)>(d|0)){break a}d=j+m|0;d=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);H[b+16>>2]=f;H[b+20>>2]=c;if((d|0)<(l|0)){break a}H[a+16>>2]=d;H[a+12>>2]=l;c=(d>>31)-((l>>31)+(d>>>0>>0)|0)|0;b=d-l|0;if(!c&b>>>0>2147483646|c){break a}e=1;b=b+1|0;H[a+20>>2]=b;c=b>>>1|0;H[a+24>>2]=c;H[a+28>>2]=0-c;if(b&1){break a}H[a+24>>2]=c-1;break a}}e=0}ca=h+32|0;return e|0}function xe(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;if((b|0)==-1){return 1}g=(b>>>0)/3|0;if(!(H[H[a+24>>2]+(g>>>3&268435452)>>2]>>>g&1)){f=H[a+48>>2];H[a+52>>2]=f;a:{if((f|0)!=H[a+56>>2]){H[f>>2]=b;H[a+52>>2]=f+4;break a}d=pa(4);H[d>>2]=b;c=d+4|0;H[a+56>>2]=c;H[a+52>>2]=c;H[a+48>>2]=d;if(!f){break a}oa(f)}e=-1;d=H[a+4>>2];c=b+1|0;i=(c>>>0)%3|0?c:b-2|0;if((i|0)!=-1){e=H[H[d>>2]+(i<<2)>>2]}b:{h=b-N(g,3)|0;if(h){c=b-1|0;break b}c=b+2|0;if((c|0)!=-1){break b}return 0}if((e|0)==-1){return 0}j=H[H[d>>2]+(c<<2)>>2];if((j|0)==-1){return 0}c=H[a+36>>2];f=c+(e>>>3&536870908)|0;g=H[f>>2];d=1<>2]=d|g;Ua(a+8|0,e,i);c=H[a+36>>2]}g=(j>>>3&536870908)+c|0;d=H[g>>2];c=1<>2]=c|d;Ua(a+8|0,j,(h?-1:2)+b|0)}c=H[a+52>>2];if((c|0)==H[a+48>>2]){return 1}j=a+8|0;while(1){c:{d:{c=c-4|0;b=H[c>>2];if((b|0)==-1){break d}d=(b>>>0)/3|0;f=H[a+24>>2]+(d>>>3&268435452)|0;g=H[f>>2];d=1<>2]=d|g;while(1){i=H[a+4>>2];e=H[H[i>>2]+(b<<2)>>2];if((e|0)==-1){return 0}e:{f:{h=H[a+36>>2]+(e>>>3&536870908)|0;f=H[h>>2];g=1<>2]+(e<<2)>>2];h:{if((d|0)==-1){break h}c=d+1|0;c=(c>>>0)%3|0?c:d-2|0;if((c|0)==-1){break h}d=H[H[i+12>>2]+(c<<2)>>2];if((d|0)!=-1){break g}}H[h>>2]=f|g;Ua(j,e,b);break f}H[h>>2]=f|g;Ua(j,e,b);c=d+1|0;if((((c>>>0)%3|0?c:d-2|0)|0)==-1){break f}c=b-2|0;d=b+1|0;b=-1;c=(d>>>0)%3|0?d:c;if((c|0)!=-1){b=H[H[H[a+4>>2]+12>>2]+(c<<2)>>2]}c=(b>>>0)/3|0;d=1<>2];f=c>>>5|0;i=H[e+(f<<2)>>2];break e}c=-1;g=H[a+4>>2];d=b+1|0;d=(d>>>0)%3|0?d:b-2|0;if((d|0)!=-1){c=H[H[g+12>>2]+(d<<2)>>2]}i:{j:{if((b>>>0)%3|0){e=b-1|0;break j}e=b+2|0;b=-1;if((e|0)==-1){break i}}b=H[H[g+12>>2]+(e<<2)>>2]}g=(b|0)==-1;h=g?-1:(b>>>0)/3|0;k:{if((c|0)!=-1){e=H[a+24>>2];d=(c>>>0)/3|0;f=d>>>5|0;i=H[e+(f<<2)>>2];d=1<>2];f=h>>>5|0;i=H[e+(f<<2)>>2];if(!(d&i)){break e}}c=H[a+52>>2]-4|0;H[a+52>>2]=c;break c}if(g){b=c;break e}if(H[(h>>>3&536870908)+e>>2]>>>h&1){b=c;break e}e=H[a+52>>2];H[e-4>>2]=b;if(H[a+56>>2]!=(e|0)){H[e>>2]=c;c=e+4|0;break d}l:{h=H[a+48>>2];f=e-h|0;g=f>>2;d=g+1|0;if(d>>>0<1073741824){b=f>>>1|0;f=f>>>0>=2147483644?1073741823:b>>>0>d>>>0?b:d;if(f){if(f>>>0>=1073741824){break l}d=pa(f<<2)}else{d=0}b=d+(g<<2)|0;H[b>>2]=c;c=b+4|0;if((e|0)!=(h|0)){while(1){b=b-4|0;e=e-4|0;H[b>>2]=H[e>>2];if((e|0)!=(h|0)){continue}break}}H[a+56>>2]=d+(f<<2);H[a+52>>2]=c;H[a+48>>2]=b;if(!h){break c}oa(h);c=H[a+52>>2];break c}sa();v()}wa();v()}H[(f<<2)+e>>2]=d|i;if((b|0)!=-1){continue}break}return 0}H[a+52>>2]=c}if(H[a+48>>2]!=(c|0)){continue}break}}return 1}function uj(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;g=ca-32|0;ca=g;H[a+68>>2]=f;d=H[a+56>>2];e=H[d>>2];d=H[d+4>>2];H[g+24>>2]=0;H[g+16>>2]=0;H[g+20>>2]=0;a:{d=d-e|0;if((d|0)>0){m=a+60|0;d=d>>>2|0;n=d>>>0<=1?1:d;o=a+112|0;while(1){e=H[a+56>>2];d=H[e>>2];if(H[e+4>>2]-d>>2>>>0<=j>>>0){break a}Nb(m,H[d+(j<<2)>>2],g+16|0);i=H[g+20>>2];d=i>>31;h=H[g+16>>2];e=h>>31;f=(d^i)-d+((e^h)-e)|0;k=H[g+24>>2];d=k>>31;e=(d^k)-d|0;d=0;l=e;e=e+f|0;d=l>>>0>e>>>0?1:d;b:{if(!(d|e)){H[g+16>>2]=H[a+108>>2];break b}f=H[a+108>>2];l=f>>31;h=Sj(Rj(f,l,h,h>>31),da,e,d);H[g+16>>2]=h;d=Sj(Rj(f,l,i,i>>31),da,e,d);H[g+20>>2]=d;e=d;d=d>>31;e=(e^d)-d|0;d=h>>31;d=e+((d^h)-d|0)|0;if((k|0)>=0){H[g+24>>2]=f-d;break b}H[g+24>>2]=d-f}d=Ba(o);f=H[g+16>>2];c:{if(d){H[g+24>>2]=0-H[g+24>>2];e=0-H[g+20>>2]|0;H[g+20>>2]=e;f=0-f|0;H[g+16>>2]=f;break c}e=H[g+20>>2]}d:{if((f|0)>=0){f=H[a+108>>2];d=f+H[g+24>>2]|0;f=e+f|0;break d}e:{if((e|0)<0){d=H[g+24>>2];f=d>>31;f=(d^f)-f|0;break e}d=H[g+24>>2];f=d>>31;f=H[a+100>>2]+(f-(d^f)|0)|0}if((d|0)<0){d=e>>31;d=(d^e)-d|0;break d}d=e>>31;d=H[a+100>>2]+(d-(d^e)|0)|0}e=H[a+100>>2];f:{if(!(d|f)){d=e;f=d;break f}if(!((d|0)!=(e|0)|f)){f=d;break f}if(!((e|0)!=(f|0)|d)){d=f;break f}g:{if(f){break g}i=H[a+108>>2];if((i|0)>=(d|0)){break g}d=(i<<1)-d|0;f=0;break f}h:{if((e|0)!=(f|0)){break h}i=H[a+108>>2];if((i|0)<=(d|0)){break h}d=(i<<1)-d|0;break f}i:{if((d|0)!=(e|0)){break i}e=H[a+108>>2];if((e|0)<=(f|0)){break i}f=(e<<1)-f|0;break f}if(d){break f}d=0;e=H[a+108>>2];if((e|0)>=(f|0)){break f}f=(e<<1)-f|0}H[g+12>>2]=d;H[g+8>>2]=f;j:{if(H[a+8>>2]<=0){break j}i=H[a+32>>2];f=0;while(1){d=f<<2;e=H[d+(g+8|0)>>2];h=H[a+16>>2];k:{if((e|0)>(h|0)){H[d+i>>2]=h;break k}d=d+i|0;h=H[a+12>>2];if((h|0)>(e|0)){H[d>>2]=h;break k}H[d>>2]=e}f=f+1|0;e=H[a+8>>2];if((f|0)<(e|0)){continue}break}d=0;if((e|0)<=0){break j}e=j<<3;h=e+c|0;k=b+e|0;while(1){f=d<<2;e=f+h|0;f=H[f+k>>2]+H[f+i>>2]|0;H[e>>2]=f;l:{if((f|0)>H[a+16>>2]){f=f-H[a+20>>2]|0}else{if((f|0)>=H[a+12>>2]){break l}f=f+H[a+20>>2]|0}H[e>>2]=f}d=d+1|0;if((d|0)>2]){continue}break}}j=j+1|0;if((n|0)!=(j|0)){continue}break}}ca=g+32|0;return 1}Ca();v()}function dj(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;g=ca-32|0;ca=g;H[a+68>>2]=f;d=H[a+56>>2];e=H[d>>2];d=H[d+4>>2];H[g+24>>2]=0;H[g+16>>2]=0;H[g+20>>2]=0;a:{d=d-e|0;if((d|0)>0){m=a+60|0;d=d>>>2|0;n=d>>>0<=1?1:d;o=a+112|0;while(1){e=H[a+56>>2];d=H[e>>2];if(H[e+4>>2]-d>>2>>>0<=j>>>0){break a}Lb(m,H[d+(j<<2)>>2],g+16|0);i=H[g+20>>2];d=i>>31;h=H[g+16>>2];e=h>>31;f=(d^i)-d+((e^h)-e)|0;k=H[g+24>>2];d=k>>31;e=(d^k)-d|0;d=0;l=e;e=e+f|0;d=l>>>0>e>>>0?1:d;b:{if(!(d|e)){H[g+16>>2]=H[a+108>>2];break b}f=H[a+108>>2];l=f>>31;h=Sj(Rj(f,l,h,h>>31),da,e,d);H[g+16>>2]=h;d=Sj(Rj(f,l,i,i>>31),da,e,d);H[g+20>>2]=d;e=d;d=d>>31;e=(e^d)-d|0;d=h>>31;d=e+((d^h)-d|0)|0;if((k|0)>=0){H[g+24>>2]=f-d;break b}H[g+24>>2]=d-f}d=Ba(o);f=H[g+16>>2];c:{if(d){H[g+24>>2]=0-H[g+24>>2];e=0-H[g+20>>2]|0;H[g+20>>2]=e;f=0-f|0;H[g+16>>2]=f;break c}e=H[g+20>>2]}d:{if((f|0)>=0){f=H[a+108>>2];d=f+H[g+24>>2]|0;f=e+f|0;break d}e:{if((e|0)<0){d=H[g+24>>2];f=d>>31;f=(d^f)-f|0;break e}d=H[g+24>>2];f=d>>31;f=H[a+100>>2]+(f-(d^f)|0)|0}if((d|0)<0){d=e>>31;d=(d^e)-d|0;break d}d=e>>31;d=H[a+100>>2]+(d-(d^e)|0)|0}e=H[a+100>>2];f:{if(!(d|f)){d=e;f=d;break f}if(!((d|0)!=(e|0)|f)){f=d;break f}if(!((e|0)!=(f|0)|d)){d=f;break f}g:{if(f){break g}i=H[a+108>>2];if((i|0)>=(d|0)){break g}d=(i<<1)-d|0;f=0;break f}h:{if((e|0)!=(f|0)){break h}i=H[a+108>>2];if((i|0)<=(d|0)){break h}d=(i<<1)-d|0;break f}i:{if((d|0)!=(e|0)){break i}e=H[a+108>>2];if((e|0)<=(f|0)){break i}f=(e<<1)-f|0;break f}if(d){break f}d=0;e=H[a+108>>2];if((e|0)>=(f|0)){break f}f=(e<<1)-f|0}H[g+12>>2]=d;H[g+8>>2]=f;j:{if(H[a+8>>2]<=0){break j}i=H[a+32>>2];f=0;while(1){d=f<<2;e=H[d+(g+8|0)>>2];h=H[a+16>>2];k:{if((e|0)>(h|0)){H[d+i>>2]=h;break k}d=d+i|0;h=H[a+12>>2];if((h|0)>(e|0)){H[d>>2]=h;break k}H[d>>2]=e}f=f+1|0;e=H[a+8>>2];if((f|0)<(e|0)){continue}break}d=0;if((e|0)<=0){break j}e=j<<3;h=e+c|0;k=b+e|0;while(1){f=d<<2;e=f+h|0;f=H[f+k>>2]+H[f+i>>2]|0;H[e>>2]=f;l:{if((f|0)>H[a+16>>2]){f=f-H[a+20>>2]|0}else{if((f|0)>=H[a+12>>2]){break l}f=f+H[a+20>>2]|0}H[e>>2]=f}d=d+1|0;if((d|0)>2]){continue}break}}j=j+1|0;if((n|0)!=(j|0)){continue}break}}ca=g+32|0;return 1}Ca();v()}function ke(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;h=ca-80|0;ca=h;a:{b:{if(I[H[a+28>>2]+36|0]<=1){d=H[b+20>>2];f=H[b+16>>2];c=f+4|0;d=c>>>0<4?d+1|0:d;g=H[b+12>>2];if(K[b+8>>2]>>0&(g|0)<=(d|0)|(d|0)>(g|0)){break a}f=f+H[b>>2]|0;j=I[f|0]|I[f+1|0]<<8|(I[f+2|0]<<16|I[f+3|0]<<24);H[b+16>>2]=c;H[b+20>>2]=d;break b}if(!Pc(1,h+76|0,b)){break a}j=H[h+76>>2]}if(!j){break a}d=H[b+8>>2];c=H[b+16>>2];d=Rj(d-c|0,H[b+12>>2]-(H[b+20>>2]+(c>>>0>d>>>0)|0)|0,5,0);c=da;if(d>>>0>>0&(c|0)<=0|(c|0)<0){break a}c=H[a+4>>2];d=H[a+8>>2]-c>>2;c:{if(d>>>0>>0){ya(a+4|0,j-d|0);break c}if(d>>>0<=j>>>0){break c}H[a+8>>2]=c+(j<<2)}p=a+16|0;l=H[a+32>>2];while(1){i=H[b+12>>2];c=i;d=H[b+20>>2];e=H[b+8>>2];f=H[b+16>>2];if((c|0)<=(d|0)&e>>>0<=f>>>0|(c|0)<(d|0)){e=0;break a}n=H[b>>2];q=I[n+f|0];c=d;g=f+1|0;c=g?c:c+1|0;H[b+16>>2]=g;H[b+20>>2]=c;if(e>>>0<=g>>>0&(c|0)>=(i|0)|(c|0)>(i|0)){e=0;break a}g=I[g+n|0];c=d;k=f+2|0;c=k>>>0<2?c+1|0:c;H[b+16>>2]=k;H[b+20>>2]=c;if(e>>>0<=k>>>0&(c|0)>=(i|0)|(c|0)>(i|0)){e=0;break a}k=I[k+n|0];c=d;m=f+3|0;c=m>>>0<3?c+1|0:c;H[b+16>>2]=m;H[b+20>>2]=c;if(e>>>0<=m>>>0&(c|0)>=(i|0)|(c|0)>(i|0)){e=0;break a}e=I[m+n|0];c=d;d=f+4|0;c=d>>>0<4?c+1|0:c;H[b+16>>2]=d;H[b+20>>2]=c;if(q>>>0>4){e=0;break a}if((g-12&255)>>>0<245){e=0;break a}if(!k){e=0;break a}m=Eb(h+8|0);i=(e|0)!=0;d=g-1|0;if(d>>>0<=10){c=H[(d<<2)+13584>>2]}else{c=-1}d=N(c,k);lc(m,q,k,g,i,d,d>>31);d:{d=J[H[a+28>>2]+36>>1];e:{if(((d<<8|d>>>8)&65535)>>>0<=258){c=H[b+20>>2];f=H[b+16>>2];d=f+2|0;c=d>>>0<2?c+1|0:c;e=H[b+12>>2];if(K[b+8>>2]>>0&(e|0)<=(c|0)|(c|0)>(e|0)){break d}f=f+H[b>>2]|0;e=I[f|0]|I[f+1|0]<<8;H[b+16>>2]=d;H[b+20>>2]=c;break e}if(!Pc(1,h+4|0,b)){break d}e=H[h+4>>2]}H[h+68>>2]=e;d=jc(pa(96),m);ea[H[H[l>>2]+8>>2]](l,H[l+12>>2]-H[l+8>>2]>>2,d);d=(H[l+12>>2]-H[l+8>>2]>>2)-1|0;f=d<<2;H[H[f+H[l+8>>2]>>2]+60>>2]=e;H[H[a+4>>2]+(o<<2)>>2]=d;e=H[a+16>>2];c=H[a+20>>2]-e>>2;f:{if((c|0)>(d|0)){break f}H[h>>2]=-1;d=d+1|0;if(d>>>0>c>>>0){Pa(p,d-c|0,h);e=H[p>>2];break f}if(c>>>0<=d>>>0){break f}H[a+20>>2]=(d<<2)+e}H[e+f>>2]=o;e=1;o=o+1|0;if((o|0)!=(j|0)){continue}break a}break}e=0}ca=h+80|0;return e|0}function nd(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;n=ea[H[H[a>>2]+44>>2]](a)|0;a:{if((n|0)<=0){break a}i=H[b+4>>2]-H[b>>2]>>2;e=ca+-64|0;ca=e;f=Eb(e);d=N(H[3400],n);lc(f,H[H[a+8>>2]+56>>2],n&255,5,0,d,d>>31);f=jc(pa(96),f);F[f+84|0]=1;H[f+72>>2]=H[f+68>>2];mb(f,i);H[f+60>>2]=H[H[a+8>>2]+60>>2];d=H[a+16>>2];H[a+16>>2]=f;if(d){Ga(d)}ca=e- -64|0;h=H[a+16>>2];if(!H[h+80>>2]){break a}j=H[H[h>>2]>>2];if(!j){break a}m=H[c+12>>2];e=m;d=H[c+20>>2];g=H[c+8>>2];k=H[c+16>>2];if((e|0)<=(d|0)&g>>>0<=k>>>0|(d|0)>(e|0)){break a}l=N(i,n);i=j+H[h+48>>2]|0;h=H[c>>2];j=I[h+k|0];e=k+1|0;f=e?d:d+1|0;H[c+16>>2]=e;H[c+20>>2]=f;b:{c:{if(j){if(kd(l,n,c,i)){break c}break a}if((f|0)>=(m|0)&e>>>0>=g>>>0|(f|0)>(m|0)){break a}g=I[e+h|0];f=k+2|0;d=f>>>0<2?d+1|0:d;H[c+16>>2]=f;H[c+20>>2]=d;d=H[H[a+16>>2]+64>>2];d=H[d+4>>2]-H[d>>2]|0;if((g|0)==H[3400]){e=l<<2;if(e>>>0>d>>>0){break a}g=H[c+8>>2];k=H[c+12>>2];j=H[c+20>>2];d=H[c+16>>2];f=e+d|0;j=f>>>0>>0?j+1|0:j;if(f>>>0>g>>>0&(j|0)>=(k|0)|(j|0)>(k|0)){break a}qa(i,d+H[c>>2]|0,e);f=H[c+20>>2];d=e+H[c+16>>2]|0;f=d>>>0>>0?f+1|0:f;H[c+16>>2]=d;H[c+20>>2]=f;break c}if(d>>>0>>0){break a}d=H[c+8>>2];f=H[c+16>>2];e=d-f|0;m=d>>>0>>0;d=H[c+20>>2];k=H[c+12>>2]-(m+d|0)|0;m=Rj(g,0,l,0)>>>0>e>>>0;e=da;if(m&(e|0)>=(k|0)|(e|0)>(k|0)){break a}e=1;if(!l){break b}h=0;while(1){k=H[c+8>>2];j=H[c+12>>2];e=f+g|0;d=e>>>0>>0?d+1|0:d;if(e>>>0>k>>>0&(d|0)>=(j|0)|(d|0)>(j|0)){return 0}qa(i+(h<<2)|0,H[c>>2]+f|0,g);d=H[c+20>>2];f=g+H[c+16>>2]|0;d=f>>>0>>0?d+1|0:d;H[c+16>>2]=f;H[c+20>>2]=d;h=h+1|0;if((l|0)!=(h|0)){continue}break}}e=1;if(!l){break b}d=H[a+20>>2];if(d){e=0;if(ea[H[H[d>>2]+32>>2]](d)|0){break b}}g=0;h=0;d:{if((l|0)<=0){break d}if((l|0)!=1){f=l&-2;while(1){e=g<<2;d=H[e+i>>2];H[e+i>>2]=0-(d&1)^d>>>1;d=e|4;e=H[d+i>>2];H[d+i>>2]=0-(e&1)^e>>>1;g=g+2|0;h=h+2|0;if((f|0)!=(h|0)){continue}break}}if(!(l&1)){break d}d=g<<2;f=H[d+i>>2];H[d+i>>2]=0-(f&1)^f>>>1}e=0}d=e;f=H[a+20>>2];e:{if(!f){break e}if(!(ea[H[H[f>>2]+40>>2]](f,c)|0)){break a}if(d){break e}a=H[a+20>>2];if(!(ea[H[H[a>>2]+44>>2]](a,i,i,l,n,H[b>>2])|0)){break a}}o=1}return o|0}function pb(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;h=ca-32|0;ca=h;a:{b:{if(H[a+8>>2]<<5>>>0>=b>>>0){break b}if((b|0)<0){break a}b=(b-1>>>5|0)+1|0;c=pa(b<<2);H[h+24>>2]=b;H[h+20>>2]=0;H[h+16>>2]=c;b=H[a>>2];H[h+12>>2]=0;H[h+8>>2]=b;c=H[a+4>>2];H[h+4>>2]=c&31;H[h>>2]=b+(c>>>3&536870908);e=ca-32|0;ca=e;i=H[h+4>>2];g=H[h+12>>2];j=H[h>>2];d=H[h+8>>2];b=(i-g|0)+(j-d<<3)|0;f=H[h+20>>2];c=b+f|0;H[h+20>>2]=c;if(!((c-1^f-1)>>>0<32?f:0)){H[H[h+16>>2]+((c>>>0>=33?c-1>>>5|0:0)<<2)>>2]=0}c=H[h+16>>2]+(f>>>3&536870908)|0;f=f&31;c:{if((f|0)==(g|0)){if((b|0)<=0){break c}if(g){i=32-g|0;f=(b|0)<(i|0)?b:i;i=-1<>>i-f;H[c>>2]=H[c>>2]&(i^-1)|i&H[d>>2];d=d+4|0;c=(g+f>>>3&536870908)+c|0;b=b-f|0}g=(b|0)/32|0;if(b+31>>>0>=63){va(c,d,g<<2)}b=b-(g<<5)|0;if((b|0)<=0){break c}f=c;c=g<<2;g=f+c|0;b=-1>>>32-b|0;H[g>>2]=H[g>>2]&(b^-1)|b&H[c+d>>2];break c}H[e+28>>2]=g;H[e+24>>2]=d;H[e+20>>2]=i;H[e+16>>2]=j;H[e+12>>2]=f;H[e+8>>2]=c;b=H[e+28>>2];c=H[e+24>>2];g=(H[e+20>>2]-b|0)+(H[e+16>>2]-c<<3)|0;d:{if((g|0)<=0){b=H[e+12>>2];d=H[e+8>>2];break d}e:{if(!b){b=H[e+12>>2];break e}d=H[e+12>>2];j=32-d|0;k=32-b|0;f=(g|0)<(k|0)?g:k;i=f>>>0>j>>>0?j:f;l=H[e+8>>2];m=H[l>>2]&(-1<>>j-i^-1);j=H[c>>2]&(-1<>>k-f);H[l>>2]=m|(b>>>0>>0?j<>>b-d|0);c=d+i|0;b=c&31;H[e+12>>2]=b;d=l+(c>>>3&536870908)|0;H[e+8>>2]=d;c=f-i|0;if((c|0)>0){H[d>>2]=H[d>>2]&(-1>>>32-c^-1)|j>>>i+H[e+28>>2];H[e+12>>2]=c;b=c}g=g-f|0;c=H[e+24>>2]+4|0;H[e+24>>2]=c}i=-1<=32){j=i^-1;while(1){d=H[e+8>>2];c=H[c>>2];H[d>>2]=j&H[d>>2]|c<>2]=d+4;H[d+4>>2]=i&H[d+4>>2]|c>>>f;c=H[e+24>>2]+4|0;H[e+24>>2]=c;d=g>>>0>63;g=g-32|0;if(d){continue}break}}d=H[e+8>>2];if((g|0)<=0){break d}j=f;f=(g|0)>(f|0)?f:g;j=H[d>>2]&(i&-1>>>j-f^-1);i=H[c>>2]&-1>>>32-g;H[d>>2]=j|i<>2]=c;d=(b>>>3&536870908)+d|0;H[e+8>>2]=d;b=g-f|0;if((b|0)<=0){b=c;break d}H[d>>2]=H[d>>2]&(-1>>>32-b^-1)|i>>>f;H[e+12>>2]=b}H[e+4>>2]=b;H[e>>2]=d}ca=e+32|0;b=H[a>>2];H[a>>2]=H[h+16>>2];H[h+16>>2]=b;c=H[a+4>>2];H[a+4>>2]=H[h+20>>2];H[h+20>>2]=c;c=H[a+8>>2];H[a+8>>2]=H[h+24>>2];H[h+24>>2]=c;if(!b){break b}oa(b)}ca=h+32|0;return}sa();v()}function Ne(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;c=J[b+38>>1];a:{if(!c){break a}b:{if(c>>>0<=511){g=H[b+8>>2];e=H[b+12>>2];d=H[b+20>>2];c=H[b+16>>2];i=c+4|0;d=i>>>0<4?d+1|0:d;if(g>>>0>>0&(d|0)>=(e|0)|(d|0)>(e|0)){break a}c=c+H[b>>2]|0;f=I[c|0]|I[c+1|0]<<8|(I[c+2|0]<<16|I[c+3|0]<<24);H[a+12>>2]=f;d=H[b+20>>2];c=H[b+16>>2]+4|0;d=c>>>0<4?d+1|0:d;H[b+16>>2]=c;H[b+20>>2]=d;break b}if(!hb(1,a+12|0,b)){break a}c=H[b+16>>2];d=H[b+20>>2];f=H[a+12>>2]}e=H[b+8>>2];i=e-c|0;c=H[b+12>>2]-(d+(c>>>0>e>>>0)|0)|0;if(i>>>0>>6>>>0&(c|0)<=0|(c|0)<0){break a}d=H[a>>2];c=H[a+4>>2]-d>>2;c:{if(c>>>0>>0){ya(a,f-c|0);f=H[a+12>>2];break c}if(c>>>0<=f>>>0){break c}H[a+4>>2]=d+(f<<2)}if(!f){return 1}c=H[b+16>>2];d=H[b+20>>2];l=H[a>>2];i=H[b+8>>2];j=H[b+12>>2];g=0;while(1){if((d|0)>=(j|0)&c>>>0>=i>>>0|(d|0)>(j|0)){return 0}m=H[b>>2];k=I[m+c|0];c=c+1|0;d=c?d:d+1|0;H[b+16>>2]=c;H[b+20>>2]=d;e=k>>>2|0;h=0;d:{e:{f:{g:{n=k&3;switch(n|0){case 0:break e;case 3:break g;default:break f}}e=e+g|0;if(e>>>0>=f>>>0){return 0}ra(l+(g<<2)|0,0,(k&252)+4|0);g=e;break d}while(1){if((c|0)==(i|0)&(d|0)==(j|0)){break a}f=I[c+m|0];c=c+1|0;d=c?d:d+1|0;H[b+16>>2]=c;H[b+20>>2]=d;e=f<<(h<<3|6)|e;h=h+1|0;if((n|0)!=(h|0)){continue}break}}H[l+(g<<2)>>2]=e}f=H[a+12>>2];g=g+1|0;if(f>>>0>g>>>0){continue}break}b=a+16|0;i=H[a>>2];d=H[a+16>>2];c=H[a+20>>2]-d|0;h:{if(c>>>0<=16383){ya(b,4096-(c>>>2|0)|0);break h}if((c|0)==16384){break h}H[a+20>>2]=d+16384}c=a+28|0;g=H[c>>2];d=H[a+32>>2]-g>>3;i:{if(d>>>0>>0){ob(c,f-d|0);g=H[c>>2];break i}if(d>>>0>f>>>0){H[a+32>>2]=(f<<3)+g}if(!f){break a}}d=H[b>>2];b=0;a=0;while(1){c=i+(b<<2)|0;h=H[c>>2];e=a;j=(b<<3)+g|0;H[j+4>>2]=a;H[j>>2]=h;c=H[c>>2];a=c+a|0;if(a>>>0>4096){break a}j:{if(a>>>0<=e>>>0){break j}h=0;j=c&7;if(j){while(1){H[d+(e<<2)>>2]=b;e=e+1|0;h=h+1|0;if((j|0)!=(h|0)){continue}break}}if(c-1>>>0<=6){break j}while(1){c=d+(e<<2)|0;H[c>>2]=b;H[c+28>>2]=b;H[c+24>>2]=b;H[c+20>>2]=b;H[c+16>>2]=b;H[c+12>>2]=b;H[c+8>>2]=b;H[c+4>>2]=b;e=e+8|0;if((e|0)!=(a|0)){continue}break}}b=b+1|0;if((f|0)!=(b|0)){continue}break}o=(a|0)==4096}return o}function Ni(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;g=ca-48|0;ca=g;d=H[a+8>>2];if(d-2>>>0<=28){H[a+76>>2]=d;e=-1<>2]=d;H[a+80>>2]=e^-1;H[a+92>>2]=(d|0)/2;L[a+88>>2]=O(2)/O(d|0)}H[a+52>>2]=f;d=H[a+40>>2];e=H[d>>2];d=H[d+4>>2];H[g+16>>2]=0;H[g+8>>2]=0;H[g+12>>2]=0;a:{d=d-e|0;if((d|0)>0){m=a+8|0;n=a+44|0;d=d>>>2|0;o=d>>>0<=1?1:d;p=a+96|0;while(1){e=H[a+40>>2];d=H[e>>2];if(H[e+4>>2]-d>>2>>>0<=j>>>0){break a}Nb(n,H[d+(j<<2)>>2],g+8|0);h=H[g+12>>2];d=h>>31;i=H[g+8>>2];e=i>>31;f=(d^h)-d+((e^i)-e)|0;l=H[g+16>>2];d=l>>31;e=(d^l)-d|0;d=0;k=e;e=e+f|0;d=k>>>0>e>>>0?1:d;b:{if(!(d|e)){H[g+8>>2]=H[a+92>>2];break b}f=H[a+92>>2];k=f>>31;i=Sj(Rj(f,k,i,i>>31),da,e,d);H[g+8>>2]=i;d=Sj(Rj(f,k,h,h>>31),da,e,d);H[g+12>>2]=d;e=d>>31;e=(d^e)-e|0;d=i>>31;d=e+((d^i)-d|0)|0;if((l|0)>=0){H[g+16>>2]=f-d;break b}H[g+16>>2]=d-f}d=Ba(p);f=H[g+8>>2];c:{if(d){H[g+16>>2]=0-H[g+16>>2];e=0-H[g+12>>2]|0;H[g+12>>2]=e;f=0-f|0;H[g+8>>2]=f;break c}e=H[g+12>>2]}d:{if((f|0)>=0){f=H[a+92>>2];d=f+H[g+16>>2]|0;f=e+f|0;break d}e:{if((e|0)<0){d=H[g+16>>2];f=d>>31;f=(d^f)-f|0;break e}d=H[g+16>>2];f=d>>31;f=H[a+84>>2]+(f-(d^f)|0)|0}if((d|0)<0){d=e>>31;d=(d^e)-d|0;break d}d=e>>31;d=H[a+84>>2]+(d-(d^e)|0)|0}e=H[a+84>>2];f:{if(!(d|f)){d=e;f=d;break f}if(!((d|0)!=(e|0)|f)){f=d;break f}if(!((e|0)!=(f|0)|d)){d=f;break f}g:{if(f){break g}h=H[a+92>>2];if((h|0)>=(d|0)){break g}d=(h<<1)-d|0;f=0;break f}h:{if((e|0)!=(f|0)){break h}h=H[a+92>>2];if((h|0)<=(d|0)){break h}d=(h<<1)-d|0;break f}i:{if((d|0)!=(e|0)){break i}e=H[a+92>>2];if((e|0)<=(f|0)){break i}f=(e<<1)-f|0;break f}if(d){break f}d=0;e=H[a+92>>2];if((e|0)>=(f|0)){break f}f=(e<<1)-f|0}e=j<<3;h=e+b|0;i=H[h>>2];h=H[h+4>>2];H[g+36>>2]=d;H[g+32>>2]=f;H[g+24>>2]=i;H[g+28>>2]=h;qc(g+40|0,m,g+32|0,g+24|0);d=c+e|0;H[d>>2]=H[g+40>>2];H[d+4>>2]=H[g+44>>2];j=j+1|0;if((o|0)!=(j|0)){continue}break}}ca=g+48|0;return 1}Ca();v()}function Ii(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;g=ca-48|0;ca=g;d=H[a+8>>2];if(d-2>>>0<=28){H[a+76>>2]=d;e=-1<>2]=d;H[a+80>>2]=e^-1;H[a+92>>2]=(d|0)/2;L[a+88>>2]=O(2)/O(d|0)}H[a+52>>2]=f;d=H[a+40>>2];e=H[d>>2];d=H[d+4>>2];H[g+16>>2]=0;H[g+8>>2]=0;H[g+12>>2]=0;a:{d=d-e|0;if((d|0)>0){m=a+8|0;n=a+44|0;d=d>>>2|0;o=d>>>0<=1?1:d;p=a+96|0;while(1){e=H[a+40>>2];d=H[e>>2];if(H[e+4>>2]-d>>2>>>0<=j>>>0){break a}Lb(n,H[d+(j<<2)>>2],g+8|0);h=H[g+12>>2];d=h>>31;i=H[g+8>>2];e=i>>31;f=(d^h)-d+((e^i)-e)|0;l=H[g+16>>2];d=l>>31;e=(d^l)-d|0;d=0;k=e;e=e+f|0;d=k>>>0>e>>>0?1:d;b:{if(!(d|e)){H[g+8>>2]=H[a+92>>2];break b}f=H[a+92>>2];k=f>>31;i=Sj(Rj(f,k,i,i>>31),da,e,d);H[g+8>>2]=i;d=Sj(Rj(f,k,h,h>>31),da,e,d);H[g+12>>2]=d;e=d>>31;e=(d^e)-e|0;d=i>>31;d=e+((d^i)-d|0)|0;if((l|0)>=0){H[g+16>>2]=f-d;break b}H[g+16>>2]=d-f}d=Ba(p);f=H[g+8>>2];c:{if(d){H[g+16>>2]=0-H[g+16>>2];e=0-H[g+12>>2]|0;H[g+12>>2]=e;f=0-f|0;H[g+8>>2]=f;break c}e=H[g+12>>2]}d:{if((f|0)>=0){f=H[a+92>>2];d=f+H[g+16>>2]|0;f=e+f|0;break d}e:{if((e|0)<0){d=H[g+16>>2];f=d>>31;f=(d^f)-f|0;break e}d=H[g+16>>2];f=d>>31;f=H[a+84>>2]+(f-(d^f)|0)|0}if((d|0)<0){d=e>>31;d=(d^e)-d|0;break d}d=e>>31;d=H[a+84>>2]+(d-(d^e)|0)|0}e=H[a+84>>2];f:{if(!(d|f)){d=e;f=d;break f}if(!((d|0)!=(e|0)|f)){f=d;break f}if(!((e|0)!=(f|0)|d)){d=f;break f}g:{if(f){break g}h=H[a+92>>2];if((h|0)>=(d|0)){break g}d=(h<<1)-d|0;f=0;break f}h:{if((e|0)!=(f|0)){break h}h=H[a+92>>2];if((h|0)<=(d|0)){break h}d=(h<<1)-d|0;break f}i:{if((d|0)!=(e|0)){break i}e=H[a+92>>2];if((e|0)<=(f|0)){break i}f=(e<<1)-f|0;break f}if(d){break f}d=0;e=H[a+92>>2];if((e|0)>=(f|0)){break f}f=(e<<1)-f|0}e=j<<3;h=e+b|0;i=H[h>>2];h=H[h+4>>2];H[g+36>>2]=d;H[g+32>>2]=f;H[g+24>>2]=i;H[g+28>>2]=h;qc(g+40|0,m,g+32|0,g+24|0);d=c+e|0;H[d>>2]=H[g+40>>2];H[d+4>>2]=H[g+44>>2];j=j+1|0;if((o|0)!=(j|0)){continue}break}}ca=g+48|0;return 1}Ca();v()}function Wi(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;g=ca-48|0;ca=g;d=H[a+8>>2];if(d-2>>>0<=28){H[a+76>>2]=d;e=-1<>2]=d;H[a+80>>2]=e^-1;H[a+92>>2]=(d|0)/2;L[a+88>>2]=O(2)/O(d|0)}H[a+52>>2]=f;d=H[a+40>>2];e=H[d>>2];d=H[d+4>>2];H[g+16>>2]=0;H[g+8>>2]=0;H[g+12>>2]=0;a:{d=d-e|0;if((d|0)>0){m=a+8|0;n=a+44|0;d=d>>>2|0;o=d>>>0<=1?1:d;p=a+96|0;while(1){e=H[a+40>>2];d=H[e>>2];if(H[e+4>>2]-d>>2>>>0<=j>>>0){break a}Nb(n,H[d+(j<<2)>>2],g+8|0);h=H[g+12>>2];d=h>>31;i=H[g+8>>2];e=i>>31;f=(d^h)-d+((e^i)-e)|0;l=H[g+16>>2];d=l>>31;e=(d^l)-d|0;d=0;k=e;e=e+f|0;d=k>>>0>e>>>0?1:d;b:{if(!(d|e)){H[g+8>>2]=H[a+92>>2];break b}f=H[a+92>>2];k=f>>31;i=Sj(Rj(f,k,i,i>>31),da,e,d);H[g+8>>2]=i;d=Sj(Rj(f,k,h,h>>31),da,e,d);H[g+12>>2]=d;e=d>>31;e=(d^e)-e|0;d=i>>31;d=e+((d^i)-d|0)|0;if((l|0)>=0){H[g+16>>2]=f-d;break b}H[g+16>>2]=d-f}d=Ba(p);f=H[g+8>>2];c:{if(d){H[g+16>>2]=0-H[g+16>>2];e=0-H[g+12>>2]|0;H[g+12>>2]=e;f=0-f|0;H[g+8>>2]=f;break c}e=H[g+12>>2]}d:{if((f|0)>=0){f=H[a+92>>2];d=f+H[g+16>>2]|0;f=e+f|0;break d}e:{if((e|0)<0){d=H[g+16>>2];f=d>>31;f=(d^f)-f|0;break e}d=H[g+16>>2];f=d>>31;f=H[a+84>>2]+(f-(d^f)|0)|0}if((d|0)<0){d=e>>31;d=(d^e)-d|0;break d}d=e>>31;d=H[a+84>>2]+(d-(d^e)|0)|0}e=H[a+84>>2];f:{if(!(d|f)){d=e;f=d;break f}if(!((d|0)!=(e|0)|f)){f=d;break f}if(!((e|0)!=(f|0)|d)){d=f;break f}g:{if(f){break g}h=H[a+92>>2];if((h|0)>=(d|0)){break g}d=(h<<1)-d|0;f=0;break f}h:{if((e|0)!=(f|0)){break h}h=H[a+92>>2];if((h|0)<=(d|0)){break h}d=(h<<1)-d|0;break f}i:{if((d|0)!=(e|0)){break i}e=H[a+92>>2];if((e|0)<=(f|0)){break i}f=(e<<1)-f|0;break f}if(d){break f}d=0;e=H[a+92>>2];if((e|0)>=(f|0)){break f}f=(e<<1)-f|0}e=j<<3;h=e+b|0;i=H[h+4>>2];H[g+40>>2]=H[h>>2];H[g+44>>2]=i;H[g+28>>2]=d;H[g+24>>2]=f;rc(g+32|0,m,g+24|0,g+40|0);d=c+e|0;H[d>>2]=H[g+32>>2];H[d+4>>2]=H[g+36>>2];j=j+1|0;if((o|0)!=(j|0)){continue}break}}ca=g+48|0;return 1}Ca();v()}function Ri(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;g=ca-48|0;ca=g;d=H[a+8>>2];if(d-2>>>0<=28){H[a+76>>2]=d;e=-1<>2]=d;H[a+80>>2]=e^-1;H[a+92>>2]=(d|0)/2;L[a+88>>2]=O(2)/O(d|0)}H[a+52>>2]=f;d=H[a+40>>2];e=H[d>>2];d=H[d+4>>2];H[g+16>>2]=0;H[g+8>>2]=0;H[g+12>>2]=0;a:{d=d-e|0;if((d|0)>0){m=a+8|0;n=a+44|0;d=d>>>2|0;o=d>>>0<=1?1:d;p=a+96|0;while(1){e=H[a+40>>2];d=H[e>>2];if(H[e+4>>2]-d>>2>>>0<=j>>>0){break a}Lb(n,H[d+(j<<2)>>2],g+8|0);h=H[g+12>>2];d=h>>31;i=H[g+8>>2];e=i>>31;f=(d^h)-d+((e^i)-e)|0;l=H[g+16>>2];d=l>>31;e=(d^l)-d|0;d=0;k=e;e=e+f|0;d=k>>>0>e>>>0?1:d;b:{if(!(d|e)){H[g+8>>2]=H[a+92>>2];break b}f=H[a+92>>2];k=f>>31;i=Sj(Rj(f,k,i,i>>31),da,e,d);H[g+8>>2]=i;d=Sj(Rj(f,k,h,h>>31),da,e,d);H[g+12>>2]=d;e=d>>31;e=(d^e)-e|0;d=i>>31;d=e+((d^i)-d|0)|0;if((l|0)>=0){H[g+16>>2]=f-d;break b}H[g+16>>2]=d-f}d=Ba(p);f=H[g+8>>2];c:{if(d){H[g+16>>2]=0-H[g+16>>2];e=0-H[g+12>>2]|0;H[g+12>>2]=e;f=0-f|0;H[g+8>>2]=f;break c}e=H[g+12>>2]}d:{if((f|0)>=0){f=H[a+92>>2];d=f+H[g+16>>2]|0;f=e+f|0;break d}e:{if((e|0)<0){d=H[g+16>>2];f=d>>31;f=(d^f)-f|0;break e}d=H[g+16>>2];f=d>>31;f=H[a+84>>2]+(f-(d^f)|0)|0}if((d|0)<0){d=e>>31;d=(d^e)-d|0;break d}d=e>>31;d=H[a+84>>2]+(d-(d^e)|0)|0}e=H[a+84>>2];f:{if(!(d|f)){d=e;f=d;break f}if(!((d|0)!=(e|0)|f)){f=d;break f}if(!((e|0)!=(f|0)|d)){d=f;break f}g:{if(f){break g}h=H[a+92>>2];if((h|0)>=(d|0)){break g}d=(h<<1)-d|0;f=0;break f}h:{if((e|0)!=(f|0)){break h}h=H[a+92>>2];if((h|0)<=(d|0)){break h}d=(h<<1)-d|0;break f}i:{if((d|0)!=(e|0)){break i}e=H[a+92>>2];if((e|0)<=(f|0)){break i}f=(e<<1)-f|0;break f}if(d){break f}d=0;e=H[a+92>>2];if((e|0)>=(f|0)){break f}f=(e<<1)-f|0}e=j<<3;h=e+b|0;i=H[h+4>>2];H[g+40>>2]=H[h>>2];H[g+44>>2]=i;H[g+28>>2]=d;H[g+24>>2]=f;rc(g+32|0,m,g+24|0,g+40|0);d=c+e|0;H[d>>2]=H[g+32>>2];H[d+4>>2]=H[g+36>>2];j=j+1|0;if((o|0)!=(j|0)){continue}break}}ca=g+48|0;return 1}Ca();v()}function Ge(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;f=ca-16|0;ca=f;c=H[a+4>>2];H[a+40>>2]=H[a>>2];H[a+44>>2]=c;c=H[a+36>>2];H[a+72>>2]=H[a+32>>2];H[a+76>>2]=c;d=H[a+28>>2];c=a- -64|0;H[c>>2]=H[a+24>>2];H[c+4>>2]=d;c=H[a+20>>2];H[a+56>>2]=H[a+16>>2];H[a+60>>2]=c;c=H[a+12>>2];H[a+48>>2]=H[a+8>>2];H[a+52>>2]=c;a:{b:{if(Db(a+40|0,1,f+8|0)){c=H[a+44>>2];H[a>>2]=H[a+40>>2];H[a+4>>2]=c;c=H[a+76>>2];H[a+32>>2]=H[a+72>>2];H[a+36>>2]=c;c=H[a+68>>2];H[a+24>>2]=H[a+64>>2];H[a+28>>2]=c;d=H[a+60>>2];h=d;c=H[a+56>>2];H[a+16>>2]=c;H[a+20>>2]=d;e=H[a+52>>2];d=H[a+48>>2];H[a+8>>2]=d;H[a+12>>2]=e;i=d-c|0;g=H[f+12>>2];e=e-((c>>>0>d>>>0)+h|0)|0;d=H[f+8>>2];if((g|0)==(e|0)&i>>>0>=d>>>0|e>>>0>g>>>0){break b}}c=0;break a}e=h+g|0;c=c+d|0;e=c>>>0>>0?e+1|0:e;H[a+16>>2]=c;H[a+20>>2]=e;c:{if(J[a+38>>1]<=513){c=H[a+4>>2];H[a+96>>2]=H[a>>2];H[a+100>>2]=c;c=H[a+36>>2];H[a+128>>2]=H[a+32>>2];H[a+132>>2]=c;c=H[a+28>>2];H[a+120>>2]=H[a+24>>2];H[a+124>>2]=c;c=H[a+20>>2];H[a+112>>2]=H[a+16>>2];H[a+116>>2]=c;c=H[a+12>>2];H[a+104>>2]=H[a+8>>2];H[a+108>>2]=c;d:{if(Db(a+96|0,1,f+8|0)){c=H[a+100>>2];H[a>>2]=H[a+96>>2];H[a+4>>2]=c;c=H[a+132>>2];H[a+32>>2]=H[a+128>>2];H[a+36>>2]=c;c=H[a+124>>2];H[a+24>>2]=H[a+120>>2];H[a+28>>2]=c;d=H[a+116>>2];h=d;c=H[a+112>>2];H[a+16>>2]=c;H[a+20>>2]=d;e=H[a+108>>2];d=H[a+104>>2];H[a+8>>2]=d;H[a+12>>2]=e;i=d-c|0;g=H[f+12>>2];e=e-((c>>>0>d>>>0)+h|0)|0;d=H[f+8>>2];if((g|0)==(e|0)&i>>>0>=d>>>0|e>>>0>g>>>0){break d}}c=0;break a}e=h+g|0;c=c+d|0;e=c>>>0>>0?e+1|0:e;H[a+16>>2]=c;H[a+20>>2]=e;break c}c=0;if(!ta(a+80|0,a)){break a}}c=0;if(!Fe(a)){break a}c=H[a+4>>2];H[b>>2]=H[a>>2];H[b+4>>2]=c;c=H[a+36>>2];H[b+32>>2]=H[a+32>>2];H[b+36>>2]=c;c=H[a+28>>2];H[b+24>>2]=H[a+24>>2];H[b+28>>2]=c;c=H[a+20>>2];H[b+16>>2]=H[a+16>>2];H[b+20>>2]=c;c=H[a+12>>2];H[b+8>>2]=H[a+8>>2];H[b+12>>2]=c;c=1}ca=f+16|0;return c}function oe(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;if(!H[a+64>>2]){c=pa(32);H[c+16>>2]=0;H[c+20>>2]=0;H[c+8>>2]=0;H[c>>2]=0;H[c+4>>2]=0;H[c+24>>2]=0;H[c+28>>2]=0;d=H[a+64>>2];H[a+64>>2]=c;if(d){c=H[d>>2];if(c){H[d+4>>2]=c;oa(c)}oa(d);c=H[a+64>>2]}H[a>>2]=c;d=H[c+20>>2];H[a+8>>2]=H[c+16>>2];H[a+12>>2]=d;d=H[c+24>>2];c=H[c+28>>2];H[a+48>>2]=0;H[a+52>>2]=0;H[a+40>>2]=0;H[a+44>>2]=0;H[a+16>>2]=d;H[a+20>>2]=c}a:{F[a+24|0]=I[b+24|0];H[a+28>>2]=H[b+28>>2];F[a+32|0]=I[b+32|0];c=H[b+44>>2];H[a+40>>2]=H[b+40>>2];H[a+44>>2]=c;c=H[b+52>>2];H[a+48>>2]=H[b+48>>2];H[a+52>>2]=c;H[a+56>>2]=H[b+56>>2];c=H[b+12>>2];H[a+8>>2]=H[b+8>>2];H[a+12>>2]=c;c=H[b+20>>2];H[a+16>>2]=H[b+16>>2];H[a+20>>2]=c;H[a+60>>2]=H[b+60>>2];c=H[b>>2];b:{if(!c){H[a>>2]=0;d=1;break b}g=H[a>>2];d=0;if(!g){break b}d=H[c>>2];c=H[c+4>>2]-d|0;se(g,d,c,0);d=1}c:{if(!d){break c}F[a+84|0]=I[b+84|0];H[a+80>>2]=H[b+80>>2];if((a|0)!=(b|0)){Cb(a+68|0,H[b+68>>2],H[b+72>>2])}f=H[b+88>>2];d:{if(f){e=pa(40);b=H[f>>2];H[e+16>>2]=0;H[e+8>>2]=0;H[e+12>>2]=0;H[e>>2]=b;c=H[f+12>>2];b=H[f+8>>2];if((c|0)!=(b|0)){c=c-b|0;if((c|0)<0){break a}b=pa(c);H[e+12>>2]=b;H[e+8>>2]=b;H[e+16>>2]=b+c;c=H[f+8>>2];h=H[f+12>>2];e:{if((c|0)==(h|0)){break e}g=(c^-1)+h|0;d=h-c&7;if(d){while(1){F[b|0]=I[c|0];b=b+1|0;c=c+1|0;i=i+1|0;if((d|0)!=(i|0)){continue}break}}if(g>>>0<7){break e}while(1){F[b|0]=I[c|0];F[b+1|0]=I[c+1|0];F[b+2|0]=I[c+2|0];F[b+3|0]=I[c+3|0];F[b+4|0]=I[c+4|0];F[b+5|0]=I[c+5|0];F[b+6|0]=I[c+6|0];F[b+7|0]=I[c+7|0];b=b+8|0;c=c+8|0;if((h|0)!=(c|0)){continue}break}}H[e+12>>2]=b}b=H[f+36>>2];H[e+32>>2]=H[f+32>>2];H[e+36>>2]=b;b=H[f+28>>2];H[e+24>>2]=H[f+24>>2];H[e+28>>2]=b;b=H[a+88>>2];H[a+88>>2]=e;if(b){break d}break c}b=H[a+88>>2];H[a+88>>2]=0;if(!b){break c}}a=H[b+8>>2];if(a){H[b+12>>2]=a;oa(a)}oa(b)}return}sa();v()}function og(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;f=ca-32|0;ca=f;e=f+8|0;c=ca-80|0;ca=c;a=H[b+36>>2];H[c+72>>2]=H[b+32>>2];H[c+76>>2]=a;d=H[b+28>>2];a=c- -64|0;H[a>>2]=H[b+24>>2];H[a+4>>2]=d;a=H[b+20>>2];H[c+56>>2]=H[b+16>>2];H[c+60>>2]=a;a=H[b+12>>2];H[c+48>>2]=H[b+8>>2];H[c+52>>2]=a;a=H[b+4>>2];H[c+40>>2]=H[b>>2];H[c+44>>2]=a;nc(c+8|0,c+40|0,c+24|0);a=H[c+8>>2];a:{if(a){H[e>>2]=a;a=e+4|0;if(F[c+23|0]>=0){b=c+8|4;e=H[b+4>>2];H[a>>2]=H[b>>2];H[a+4>>2]=e;H[a+8>>2]=H[b+8>>2];break a}za(a,H[c+12>>2],H[c+16>>2]);if(F[c+23|0]>=0){break a}oa(H[c+12>>2]);break a}if(F[c+23|0]<0){oa(H[c+12>>2])}a=I[c+31|0];if(a>>>0>=2){b=pa(32);F[b+26|0]=0;a=I[1477]|I[1478]<<8;F[b+24|0]=a;F[b+25|0]=a>>>8;a=I[1473]|I[1474]<<8|(I[1475]<<16|I[1476]<<24);d=I[1469]|I[1470]<<8|(I[1471]<<16|I[1472]<<24);F[b+16|0]=d;F[b+17|0]=d>>>8;F[b+18|0]=d>>>16;F[b+19|0]=d>>>24;F[b+20|0]=a;F[b+21|0]=a>>>8;F[b+22|0]=a>>>16;F[b+23|0]=a>>>24;a=I[1465]|I[1466]<<8|(I[1467]<<16|I[1468]<<24);d=I[1461]|I[1462]<<8|(I[1463]<<16|I[1464]<<24);F[b+8|0]=d;F[b+9|0]=d>>>8;F[b+10|0]=d>>>16;F[b+11|0]=d>>>24;F[b+12|0]=a;F[b+13|0]=a>>>8;F[b+14|0]=a>>>16;F[b+15|0]=a>>>24;a=I[1457]|I[1458]<<8|(I[1459]<<16|I[1460]<<24);d=I[1453]|I[1454]<<8|(I[1455]<<16|I[1456]<<24);F[b|0]=d;F[b+1|0]=d>>>8;F[b+2|0]=d>>>16;F[b+3|0]=d>>>24;F[b+4|0]=a;F[b+5|0]=a>>>8;F[b+6|0]=a>>>16;F[b+7|0]=a>>>24;H[c+8>>2]=-1;a=c+8|4;za(a,b,26);d=F[c+23|0];H[e>>2]=H[c+8>>2];e=e+4|0;if((d|0)>=0){d=H[a+4>>2];H[e>>2]=H[a>>2];H[e+4>>2]=d;H[e+8>>2]=H[a+8>>2];oa(b);break a}za(e,H[c+12>>2],H[c+16>>2]);if(F[c+23|0]<0){oa(H[c+12>>2])}oa(b);break a}H[e>>2]=0;H[e+4>>2]=0;H[e+16>>2]=a;H[e+8>>2]=0;H[e+12>>2]=0}ca=c+80|0;a=H[f+24>>2];if(F[f+23|0]<0){oa(H[f+12>>2])}ca=f+32|0;return a|0}function Xd(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;k=ca-16|0;ca=k;H[k+8>>2]=c;h=H[a+12>>2];d=H[a+8>>2];g=h-d>>2;a:{if((g|0)>(b|0)){break a}e=b+1|0;if(e>>>0>g>>>0){l=e-g|0;f=H[a+16>>2];d=H[a+12>>2];if(l>>>0<=f-d>>2>>>0){if(l){e=d;d=l<<2;d=ra(e,0,d)+d|0}H[a+12>>2]=d;break a}b:{c:{d:{m=H[a+8>>2];g=d-m>>2;i=g+l|0;if(i>>>0<1073741824){e=f-m|0;f=e>>>1|0;e=e>>>0>=2147483644?1073741823:f>>>0>i>>>0?f:i;if(e){if(e>>>0>=1073741824){break d}j=pa(e<<2)}h=(g<<2)+j|0;f=l<<2;i=ra(h,0,f);g=f+i|0;e=(e<<2)+j|0;if((d|0)==(m|0)){break c}while(1){d=d-4|0;f=H[d>>2];H[d>>2]=0;h=h-4|0;H[h>>2]=f;if((d|0)!=(m|0)){continue}break}H[a+16>>2]=e;e=H[a+12>>2];H[a+12>>2]=g;d=H[a+8>>2];H[a+8>>2]=h;if((d|0)==(e|0)){break b}while(1){e=e-4|0;f=H[e>>2];H[e>>2]=0;if(f){Ga(f)}if((d|0)!=(e|0)){continue}break}break b}sa();v()}wa();v()}H[a+16>>2]=e;H[a+12>>2]=g;H[a+8>>2]=i}if(d){oa(d)}break a}if(e>>>0>=g>>>0){break a}d=d+(e<<2)|0;if((d|0)!=(h|0)){while(1){h=h-4|0;c=H[h>>2];H[h>>2]=0;if(c){Ga(c)}if((d|0)!=(h|0)){continue}break}c=H[k+8>>2]}H[a+12>>2]=d}e:{f:{d=H[c+56>>2];g:{if((d|0)>4){break g}j=N(d,12)+a|0;d=H[j+24>>2];if((d|0)!=H[j+28>>2]){H[d>>2]=b;H[j+24>>2]=d+4;break g}i=H[j+20>>2];g=d-i|0;f=g>>2;e=f+1|0;if(e>>>0>=1073741824){break f}d=g>>>1|0;e=g>>>0>=2147483644?1073741823:d>>>0>e>>>0?d:e;if(e){if(e>>>0>=1073741824){break e}d=pa(e<<2)}else{d=0}f=d+(f<<2)|0;H[f>>2]=b;d=va(d,i,g);H[j+20>>2]=d;H[j+24>>2]=f+4;H[j+28>>2]=d+(e<<2);if(!i){break g}oa(i)}H[c+60>>2]=b;a=H[a+8>>2];H[k+8>>2]=0;a=a+(b<<2)|0;b=H[a>>2];H[a>>2]=c;if(b){Ga(b)}a=H[k+8>>2];H[k+8>>2]=0;if(a){Ga(a)}ca=k+16|0;return}sa();v()}wa();v()}function Og(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;i=c;d=a;a:{if(H[a+12>>2]==(b|0)){break a}a=b;b=H[d+4>>2];e=H[d>>2];if((b|0)!=(e|0)){while(1){c=b-12|0;if(F[b-1|0]<0){oa(H[c>>2])}b=c;if((e|0)!=(b|0)){continue}break}}H[d+12>>2]=a;H[d+4>>2]=e;c=H[a>>2];j=a+4|0;if((c|0)==(j|0)){break a}while(1){a=H[d+4>>2];b:{if((a|0)!=H[d+8>>2]){c:{if(F[c+27|0]>=0){b=H[c+20>>2];H[a>>2]=H[c+16>>2];H[a+4>>2]=b;H[a+8>>2]=H[c+24>>2];break c}za(a,H[c+16>>2],H[c+20>>2])}H[d+4>>2]=a+12;break b}g=0;d:{e:{f:{a=H[d+4>>2];e=H[d>>2];f=(a-e|0)/12|0;b=f+1|0;if(b>>>0<357913942){h=(H[d+8>>2]-e|0)/12|0;k=h<<1;b=h>>>0>=178956970?357913941:b>>>0>>0?k:b;if(b){if(b>>>0>=357913942){break f}g=pa(N(b,12))}h=N(b,12);b=N(f,12)+g|0;g:{if(F[c+27|0]>=0){f=H[c+20>>2];H[b>>2]=H[c+16>>2];H[b+4>>2]=f;H[b+8>>2]=H[c+24>>2];break g}za(b,H[c+16>>2],H[c+20>>2]);e=H[d>>2];a=H[d+4>>2]}g=g+h|0;f=b+12|0;if((a|0)==(e|0)){break e}while(1){a=a-12|0;h=H[a+4>>2];b=b-12|0;H[b>>2]=H[a>>2];H[b+4>>2]=h;H[b+8>>2]=H[a+8>>2];H[a>>2]=0;H[a+4>>2]=0;H[a+8>>2]=0;if((a|0)!=(e|0)){continue}break}H[d+8>>2]=g;a=H[d+4>>2];H[d+4>>2]=f;e=H[d>>2];H[d>>2]=b;if((a|0)==(e|0)){break d}while(1){b=a-12|0;if(F[a-1|0]<0){oa(H[b>>2])}a=b;if((e|0)!=(b|0)){continue}break}break d}sa();v()}wa();v()}H[d+8>>2]=g;H[d+4>>2]=f;H[d>>2]=b}if(e){oa(e)}}b=H[c+4>>2];h:{if(b){while(1){a=b;b=H[b>>2];if(b){continue}break h}}while(1){a=H[c+8>>2];b=H[a>>2]!=(c|0);c=a;if(b){continue}break}}c=a;if((j|0)!=(a|0)){continue}break}}a=0;i:{if((i|0)<0){break i}b=H[d>>2];if((H[d+4>>2]-b|0)/12>>>0<=i>>>0){break i}a=b+N(i,12)|0;a=F[a+11|0]<0?H[a>>2]:a}return a|0}function bd(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;i=ca-16|0;ca=i;H[i>>2]=b;f=-1;a:{if((b|0)==-1){H[i+4>>2]=-1;break a}f=b+1|0;H[i+4>>2]=(f>>>0)%3|0?f:b-2|0;if((b>>>0)%3|0){f=b-1|0;break a}f=b+2|0}H[i+8>>2]=f;n=(b>>>0)/3|0;b:{c:{d:{while(1){e:{f:{j=H[(l<<2)+i>>2];if((j|0)!=-1){f=H[H[H[a+8>>2]+12>>2]+(j<<2)>>2];if((f|0)!=-1){break f}}f=0;g=H[a+216>>2];if((g|0)==H[a+220>>2]){break e}while(1){g=N(f,144)+g|0;d=H[g+136>>2];c=H[g+140>>2];g:{if(d>>>0>>0){H[d>>2]=j;H[g+136>>2]=d+4;break g}e=d;d=H[g+132>>2];k=e-d|0;e=k>>2;h=e+1|0;if(h>>>0>=1073741824){break d}m=e<<2;c=c-d|0;e=c>>>1|0;h=c>>>0>=2147483644?1073741823:h>>>0>>0?e:h;if(h){if(h>>>0>=1073741824){break c}c=pa(h<<2)}else{c=0}e=m+c|0;H[e>>2]=j;c=va(c,d,k);H[g+132>>2]=c;H[g+136>>2]=e+4;H[g+140>>2]=c+(h<<2);if(!d){break g}oa(d)}f=f+1|0;g=H[a+216>>2];if(f>>>0<(H[a+220>>2]-g|0)/144>>>0){continue}break}break e}if((b|0)==-1|(f>>>0)/3>>>0>>0){break e}f=0;if(H[a+220>>2]==H[a+216>>2]){break e}while(1){h:{if(!Ba(H[a+368>>2]+(f<<4)|0)){break h}g=H[a+216>>2]+N(f,144)|0;d=H[g+136>>2];c=H[g+140>>2];if(d>>>0>>0){H[d>>2]=j;H[g+136>>2]=d+4;break h}e=d;d=H[g+132>>2];k=e-d|0;e=k>>2;h=e+1|0;if(h>>>0>=1073741824){break b}m=e<<2;c=c-d|0;e=c>>>1|0;h=c>>>0>=2147483644?1073741823:h>>>0>>0?e:h;if(h){if(h>>>0>=1073741824){break c}c=pa(h<<2)}else{c=0}e=m+c|0;H[e>>2]=j;c=va(c,d,k);H[g+132>>2]=c;H[g+136>>2]=e+4;H[g+140>>2]=c+(h<<2);if(!d){break h}oa(d)}f=f+1|0;if(f>>>0<(H[a+220>>2]-H[a+216>>2]|0)/144>>>0){continue}break}}l=l+1|0;if((l|0)!=3){continue}break}ca=i+16|0;return 1}sa();v()}wa();v()}sa();v()}function cd(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;h=ca-16|0;ca=h;H[h>>2]=b;c=-1;a:{if((b|0)==-1){H[h+4>>2]=-1;break a}c=b+1|0;H[h+4>>2]=(c>>>0)%3|0?c:b-2|0;if((b>>>0)%3|0){c=b-1|0;break a}c=b+2|0}H[h+8>>2]=c;b:{c:{while(1){i=H[(k<<2)+h>>2];d:{if(!((i|0)==-1|H[H[H[a+8>>2]+12>>2]+(i<<2)>>2]==-1)){b=0;if(H[a+220>>2]==H[a+216>>2]){break d}while(1){e:{f:{if(!Ba(H[a+368>>2]+(b<<4)|0)){break f}c=H[a+216>>2]+N(b,144)|0;e=H[c+136>>2];d=H[c+140>>2];if(e>>>0>>0){H[e>>2]=i;H[c+136>>2]=e+4;break f}f=e;e=H[c+132>>2];j=f-e|0;f=j>>2;g=f+1|0;if(g>>>0>=1073741824){break e}l=f<<2;d=d-e|0;f=d>>>1|0;g=d>>>0>=2147483644?1073741823:g>>>0>>0?f:g;if(g){if(g>>>0>=1073741824){break b}d=pa(g<<2)}else{d=0}f=l+d|0;H[f>>2]=i;d=va(d,e,j);H[c+132>>2]=d;H[c+136>>2]=f+4;H[c+140>>2]=d+(g<<2);if(!e){break f}oa(e)}b=b+1|0;if(b>>>0<(H[a+220>>2]-H[a+216>>2]|0)/144>>>0){continue}break d}break}sa();v()}b=0;c=H[a+216>>2];if((c|0)==H[a+220>>2]){break d}while(1){c=N(b,144)+c|0;e=H[c+136>>2];d=H[c+140>>2];g:{if(e>>>0>>0){H[e>>2]=i;H[c+136>>2]=e+4;break g}f=e;e=H[c+132>>2];j=f-e|0;f=j>>2;g=f+1|0;if(g>>>0>=1073741824){break c}l=f<<2;d=d-e|0;f=d>>>1|0;g=d>>>0>=2147483644?1073741823:g>>>0>>0?f:g;if(g){if(g>>>0>=1073741824){break b}d=pa(g<<2)}else{d=0}f=l+d|0;H[f>>2]=i;d=va(d,e,j);H[c+132>>2]=d;H[c+136>>2]=f+4;H[c+140>>2]=d+(g<<2);if(!e){break g}oa(e)}b=b+1|0;c=H[a+216>>2];if(b>>>0<(H[a+220>>2]-c|0)/144>>>0){continue}break}}k=k+1|0;if((k|0)!=3){continue}break}ca=h+16|0;return 1}sa();v()}wa();v()}function vg(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;m=ca-16|0;ca=m;l=H[b+80>>2];e=I[c+24|0];a=N(l,e);a:{b:{c:{d:{b=H[c+28>>2];if(!(!I[c+84|0]|(b|0)!=1&(b|0)!=2)){b=H[c+48>>2];c=H[H[c>>2]>>2];H[m+8>>2]=0;H[m>>2]=0;H[m+4>>2]=0;if(a){if((a|0)<0){break d}f=pa(a);h=qa(f,b+c|0,a)+a|0}a=H[d>>2];if(a){H[d+4>>2]=a;oa(a)}H[d+8>>2]=h;H[d+4>>2]=h;H[d>>2]=f;b=1;break a}if(e){f=pa(e);ra(f,0,e)}e:{i=H[d+4>>2];b=H[d>>2];g=i-b|0;f:{if(g>>>0>>0){k=a-g|0;j=H[d+8>>2];if(k>>>0<=j-i>>>0){n=d,o=ra(i,0,k)+k|0,H[n+4>>2]=o;break f}if((a|0)<0){break e}i=j-b|0;j=i<<1;i=i>>>0>=1073741823?2147483647:a>>>0>>0?j:a;j=pa(i);ra(j+g|0,0,k);g=va(j,b,g);H[d+8>>2]=g+i;H[d+4>>2]=a+g;H[d>>2]=g;if(!b){break f}oa(b);break f}if(a>>>0>=g>>>0){break f}H[d+4>>2]=a+b}if(!l){b=1;break c}if(!e){b=0;a=0;while(1){if(!ic(c,I[c+84|0]?a:H[H[c+68>>2]+(a<<2)>>2],F[c+24|0],f)){break c}a=a+1|0;b=l>>>0<=a>>>0;if((a|0)!=(l|0)){continue}break}break c}i=e&252;g=e&3;b=0;j=e>>>0<4;e=0;while(1){if(!ic(c,I[c+84|0]?e:H[H[c+68>>2]+(e<<2)>>2],F[c+24|0],f)){break c}b=0;a=0;k=0;if(!j){while(1){F[H[d>>2]+h|0]=I[a+f|0];F[(H[d>>2]+h|0)+1|0]=I[(a|1)+f|0];F[(H[d>>2]+h|0)+2|0]=I[(a|2)+f|0];F[(H[d>>2]+h|0)+3|0]=I[(a|3)+f|0];a=a+4|0;h=h+4|0;k=k+4|0;if((i|0)!=(k|0)){continue}break}}if(g){while(1){F[H[d>>2]+h|0]=I[a+f|0];a=a+1|0;h=h+1|0;b=b+1|0;if((g|0)!=(b|0)){continue}break}}e=e+1|0;b=l>>>0<=e>>>0;if((e|0)!=(l|0)){continue}break}break b}sa();v()}sa();v()}if(!f){break a}}oa(f)}ca=m+16|0;return b&1}function ug(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;m=ca-16|0;ca=m;l=H[b+80>>2];e=I[c+24|0];a=N(l,e);a:{b:{c:{d:{b=H[c+28>>2];if(!(!I[c+84|0]|(b|0)!=1&(b|0)!=2)){b=H[c+48>>2];c=H[H[c>>2]>>2];H[m+8>>2]=0;H[m>>2]=0;H[m+4>>2]=0;if(a){if((a|0)<0){break d}f=pa(a);h=qa(f,b+c|0,a)+a|0}a=H[d>>2];if(a){H[d+4>>2]=a;oa(a)}H[d+8>>2]=h;H[d+4>>2]=h;H[d>>2]=f;b=1;break a}if(e){f=pa(e);ra(f,0,e)}e:{i=H[d+4>>2];b=H[d>>2];g=i-b|0;f:{if(g>>>0>>0){k=a-g|0;j=H[d+8>>2];if(k>>>0<=j-i>>>0){n=d,o=ra(i,0,k)+k|0,H[n+4>>2]=o;break f}if((a|0)<0){break e}i=j-b|0;j=i<<1;i=i>>>0>=1073741823?2147483647:a>>>0>>0?j:a;j=pa(i);ra(j+g|0,0,k);g=va(j,b,g);H[d+8>>2]=g+i;H[d+4>>2]=a+g;H[d>>2]=g;if(!b){break f}oa(b);break f}if(a>>>0>=g>>>0){break f}H[d+4>>2]=a+b}if(!l){b=1;break c}if(!e){b=0;a=0;while(1){if(!hc(c,I[c+84|0]?a:H[H[c+68>>2]+(a<<2)>>2],F[c+24|0],f)){break c}a=a+1|0;b=l>>>0<=a>>>0;if((a|0)!=(l|0)){continue}break}break c}i=e&252;g=e&3;b=0;j=e>>>0<4;e=0;while(1){if(!hc(c,I[c+84|0]?e:H[H[c+68>>2]+(e<<2)>>2],F[c+24|0],f)){break c}b=0;a=0;k=0;if(!j){while(1){F[H[d>>2]+h|0]=I[a+f|0];F[(H[d>>2]+h|0)+1|0]=I[(a|1)+f|0];F[(H[d>>2]+h|0)+2|0]=I[(a|2)+f|0];F[(H[d>>2]+h|0)+3|0]=I[(a|3)+f|0];a=a+4|0;h=h+4|0;k=k+4|0;if((i|0)!=(k|0)){continue}break}}if(g){while(1){F[H[d>>2]+h|0]=I[a+f|0];a=a+1|0;h=h+1|0;b=b+1|0;if((g|0)!=(b|0)){continue}break}}e=e+1|0;b=l>>>0<=e>>>0;if((e|0)!=(l|0)){continue}break}break b}sa();v()}sa();v()}if(!f){break a}}oa(f)}ca=m+16|0;return b&1}function qc(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;k=H[b+16>>2];h=H[c+4>>2]-k|0;e=H[c>>2]-k|0;H[c>>2]=e;f=h;H[c+4>>2]=f;l=H[b+16>>2];f=f>>31;g=(h^f)-f|0;f=e>>31;m=l>>>0>=g+((f^e)-f|0)>>>0;a:{if(m){f=h;break a}b:{c:{if((e|0)>=0){g=1;j=1;if((h|0)>=0){break b}i=1;g=-1;j=-1;if(e){break c}break b}i=-1;g=-1;j=-1;if((h|0)<=0){break b}}g=(h|0)<=0?-1:1;j=i}n=N(j,l);f=(e<<1)-n|0;i=(N(g,j)|0)>=0;e=N(g,l);f=((i?0-f|0:f)+e|0)/2|0;H[c+4>>2]=f;e=(h<<1)-e|0;e=((i?0-e|0:e)+n|0)/2|0;H[c>>2]=e}d:{e:{f:{g:{h:{i:{j:{if(e){if((e|0)<0){break j}if((f|0)>=0){break i}break f}if(f){break h}j=1;g=0;f=0;i=0;break d}j=1;if((f|0)>0){break g}i=(f|0)>0?3:0;g=f;f=e;break d}g=0-f|0;f=0-e|0;i=2;break e}if((f|0)<=0){break f}}f=0-f|0;g=e;i=3;break e}g=0-e|0;i=1}H[c>>2]=f;H[c+4>>2]=g;j=0}e=H[d>>2]+f|0;h=H[b+16>>2];k:{if((e|0)>(h|0)){e=e-H[b+4>>2]|0;break k}if((0-h|0)<=(e|0)){break k}e=H[b+4>>2]+e|0}c=H[d+4>>2]+g|0;l:{if((h|0)<(c|0)){c=c-H[b+4>>2]|0;break l}if((0-h|0)<=(c|0)){break l}c=H[b+4>>2]+c|0}m:{if(j){b=c;break m}b=c;n:{o:{p:{d=4-i|0;switch((d>>>0<4?d:0-i|0)-1|0){case 2:break n;case 1:break o;case 0:break p;default:break m}}b=0-e|0;e=c;break m}b=0-c|0;e=0-e|0;break m}b=e;e=0-c|0}q:{if(m){c=b;break q}r:{s:{if((e|0)>=0){c=1;f=1;if((b|0)>=0){break r}d=1;c=-1;f=-1;if(e){break s}break r}d=-1;c=-1;f=-1;if((b|0)<=0){break r}}c=(b|0)<=0?-1:1;f=d}d=e<<1;e=N(f,h);d=d-e|0;f=(N(c,f)|0)>=0;g=f?0-d|0:d;d=N(c,h);c=(g+d|0)/2|0;b=(b<<1)-d|0;e=(e+(f?0-b|0:b)|0)/2|0}b=a;H[b>>2]=e+k;H[b+4>>2]=c+k}function Cj(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;j=ca-32|0;ca=j;H[j+28>>2]=0;a:{b:{if(J[b+38>>1]<=513){c=H[b+20>>2];d=H[b+16>>2];e=d+4|0;c=e>>>0<4?c+1|0:c;h=H[b+12>>2];if(K[b+8>>2]>>0&(h|0)<=(c|0)|(c|0)>(h|0)){break a}d=d+H[b>>2]|0;f=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);H[b+16>>2]=e;H[b+20>>2]=c;break b}if(!Xa(1,j+28|0,b)){break a}f=H[j+28>>2]}if(!f){break a}c=H[H[a+48>>2]+64>>2];if(H[c+4>>2]-H[c>>2]>>2>>>0>>0){break a}Wa(a+76|0,f);c=j+8|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c:{if(!ta(c,b)){break c}h=1;while(1){d=1<>2]+(i>>>3&536870908)|0;e=e^h;if(e&1){d=H[g>>2]&(d^-1)}else{d=d|H[g>>2]}h=e^1;H[g>>2]=d;i=i+1|0;if((f|0)!=(i|0)){continue}break}c=H[b+8>>2];e=H[b+12>>2];g=e;e=H[b+20>>2];h=e;f=H[b+16>>2];d=f+4|0;e=d>>>0<4?e+1|0:e;i=d;if(d>>>0>c>>>0&(e|0)>=(g|0)|(e|0)>(g|0)){break c}l=H[b>>2];d=l+f|0;k=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);H[b+16>>2]=i;H[b+20>>2]=e;d=c;c=h;e=f+8|0;c=e>>>0<8?c+1|0:c;if(d>>>0>>0&(c|0)>=(g|0)|(c|0)>(g|0)){break c}d=i+l|0;d=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);H[b+16>>2]=e;H[b+20>>2]=c;if((d|0)<(k|0)){break c}H[a+16>>2]=d;H[a+12>>2]=k;c=(d>>31)-((k>>31)+(d>>>0>>0)|0)|0;b=d-k|0;if(!c&b>>>0>2147483646|c){break c}m=1;c=b+1|0;H[a+20>>2]=c;b=c>>>1|0;H[a+24>>2]=b;H[a+28>>2]=0-b;if(c&1){break c}H[a+24>>2]=b-1}}ca=j+32|0;return m|0}function lj(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;j=ca-32|0;ca=j;H[j+28>>2]=0;a:{b:{if(J[b+38>>1]<=513){c=H[b+20>>2];d=H[b+16>>2];e=d+4|0;c=e>>>0<4?c+1|0:c;h=H[b+12>>2];if(K[b+8>>2]>>0&(h|0)<=(c|0)|(c|0)>(h|0)){break a}d=d+H[b>>2]|0;f=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);H[b+16>>2]=e;H[b+20>>2]=c;break b}if(!Xa(1,j+28|0,b)){break a}f=H[j+28>>2]}if(!f){break a}c=H[a+48>>2];if(H[c+4>>2]-H[c>>2]>>2>>>0>>0){break a}Wa(a+76|0,f);c=j+8|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c:{if(!ta(c,b)){break c}h=1;while(1){d=1<>2]+(i>>>3&536870908)|0;e=e^h;if(e&1){d=H[g>>2]&(d^-1)}else{d=d|H[g>>2]}h=e^1;H[g>>2]=d;i=i+1|0;if((f|0)!=(i|0)){continue}break}c=H[b+8>>2];e=H[b+12>>2];g=e;e=H[b+20>>2];h=e;f=H[b+16>>2];d=f+4|0;e=d>>>0<4?e+1|0:e;i=d;if(d>>>0>c>>>0&(e|0)>=(g|0)|(e|0)>(g|0)){break c}l=H[b>>2];d=l+f|0;k=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);H[b+16>>2]=i;H[b+20>>2]=e;d=c;c=h;e=f+8|0;c=e>>>0<8?c+1|0:c;if(d>>>0>>0&(c|0)>=(g|0)|(c|0)>(g|0)){break c}d=i+l|0;d=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);H[b+16>>2]=e;H[b+20>>2]=c;if((d|0)<(k|0)){break c}H[a+16>>2]=d;H[a+12>>2]=k;c=(d>>31)-((k>>31)+(d>>>0>>0)|0)|0;b=d-k|0;if(!c&b>>>0>2147483646|c){break c}m=1;c=b+1|0;H[a+20>>2]=c;b=c>>>1|0;H[a+24>>2]=b;H[a+28>>2]=0-b;if(c&1){break c}H[a+24>>2]=b-1}}ca=j+32|0;return m|0}function cj(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;H[a+8>>2]=e;m=a+32|0;h=H[m>>2];g=H[a+36>>2]-h>>2;a:{if(g>>>0>>0){ya(m,e-g|0);f=H[a+8>>2];break a}f=e;if(f>>>0>=g>>>0){break a}H[a+36>>2]=h+(e<<2);f=e}g=e>>>0>1073741823?-1:e<<2;n=ra(pa(g),0,g);b:{if((f|0)<=0){break b}h=H[a+32>>2];while(1){f=i<<2;g=H[f+n>>2];j=H[a+16>>2];c:{if((g|0)>(j|0)){H[f+h>>2]=j;break c}f=f+h|0;j=H[a+12>>2];if((j|0)>(g|0)){H[f>>2]=j;break c}H[f>>2]=g}f=H[a+8>>2];i=i+1|0;if((f|0)>(i|0)){continue}break}if((f|0)<=0){break b}i=0;while(1){g=i<<2;f=g+c|0;g=H[b+g>>2]+H[g+h>>2]|0;H[f>>2]=g;d:{if((g|0)>H[a+16>>2]){g=g-H[a+20>>2]|0}else{if((g|0)>=H[a+12>>2]){break d}g=g+H[a+20>>2]|0}H[f>>2]=g}f=H[a+8>>2];i=i+1|0;if((f|0)>(i|0)){continue}break}}if(!((d|0)<=(e|0)|(f|0)<=0)){p=0-e<<2;g=e;while(1){e:{if((f|0)<=0){break e}l=g<<2;o=l+c|0;q=o+p|0;j=H[m>>2];i=0;while(1){f=i<<2;h=H[f+q>>2];k=H[a+16>>2];f:{if((h|0)>(k|0)){H[f+j>>2]=k;break f}f=f+j|0;k=H[a+12>>2];if((k|0)>(h|0)){H[f>>2]=k;break f}H[f>>2]=h}f=H[a+8>>2];i=i+1|0;if((f|0)>(i|0)){continue}break}i=0;if((f|0)<=0){break e}l=b+l|0;while(1){h=i<<2;f=h+o|0;h=H[h+l>>2]+H[h+j>>2]|0;H[f>>2]=h;g:{if((h|0)>H[a+16>>2]){h=h-H[a+20>>2]|0}else{if((h|0)>=H[a+12>>2]){break g}h=h+H[a+20>>2]|0}H[f>>2]=h}f=H[a+8>>2];i=i+1|0;if((f|0)>(i|0)){continue}break}}g=e+g|0;if((g|0)<(d|0)){continue}break}}oa(n);return 1}function De(a,b){var c=0,d=0,e=0,f=0,g=0;d=-1;f=-1;a:{if((b|0)==-1){break a}c=b+1|0;d=(c>>>0)%3|0?c:b-2|0;f=b-1|0;if((b>>>0)%3|0){break a}f=b+2|0}b:{c:{d:{e:{f:{g:{e=H[a+184>>2];switch(e|0){case 7:break d;case 3:break e;case 5:break f;case 0:case 1:break g;default:break b}}g=H[a+148>>2];c=-1;e=1;d=((d|0)!=-1?H[H[g>>2]+(d<<2)>>2]:c)<<2;c=H[a+156>>2];d=d+c|0;H[d>>2]=H[d>>2]+1;c=(((f|0)==-1?-1:H[H[g>>2]+(f<<2)>>2])<<2)+c|0;break c}g=H[a+148>>2];c=H[a+156>>2];e=c+(((b|0)==-1?-1:H[H[g>>2]+(b<<2)>>2])<<2)|0;H[e>>2]=H[e>>2]+1;d=(((d|0)==-1?-1:H[H[g>>2]+(d<<2)>>2])<<2)+c|0;H[d>>2]=H[d>>2]+1;e=2;c=(((f|0)==-1?-1:H[H[g>>2]+(f<<2)>>2])<<2)+c|0;break c}g=H[a+148>>2];c=H[a+156>>2];e=c+(((b|0)==-1?-1:H[H[g>>2]+(b<<2)>>2])<<2)|0;H[e>>2]=H[e>>2]+1;d=(((d|0)==-1?-1:H[H[g>>2]+(d<<2)>>2])<<2)+c|0;H[d>>2]=H[d>>2]+2;e=1;c=(((f|0)==-1?-1:H[H[g>>2]+(f<<2)>>2])<<2)+c|0;break c}g=H[a+148>>2];c=H[a+156>>2];e=c+(((b|0)==-1?-1:H[H[g>>2]+(b<<2)>>2])<<2)|0;H[e>>2]=H[e>>2]+2;d=(((d|0)==-1?-1:H[H[g>>2]+(d<<2)>>2])<<2)+c|0;H[d>>2]=H[d>>2]+2;e=2;c=(((f|0)==-1?-1:H[H[g>>2]+(f<<2)>>2])<<2)+c|0}H[c>>2]=H[c>>2]+e;e=H[a+184>>2]}h:{switch(e|0){case 0:case 5:f=H[a+156>>2];c=-1;i:{if((b|0)==-1){break i}d=b+1|0;b=(d>>>0)%3|0?d:b-2|0;c=-1;if((b|0)==-1){break i}c=H[H[H[a+148>>2]>>2]+(b<<2)>>2]}if(H[f+(c<<2)>>2]<=5){H[a+188>>2]=5;return}H[a+188>>2]=0;return;default:break h}}H[a+188>>2]=-1}function xg(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;j=H[b+80>>2];b=I[c+24|0];g=N(j,b);a:{if(!b){break a}h=b<<2;f=pa(h);a=f;k=b&7;if(k){while(1){H[a>>2]=-1073741824;a=a+4|0;e=e+1|0;if((k|0)!=(e|0)){continue}break}}if((b-1&1073741823)>>>0<7){break a}e=f+h|0;while(1){H[a+24>>2]=-1073741824;H[a+28>>2]=-1073741824;H[a+16>>2]=-1073741824;H[a+20>>2]=-1073741824;H[a+8>>2]=-1073741824;H[a+12>>2]=-1073741824;H[a>>2]=-1073741824;H[a+4>>2]=-1073741824;a=a+32|0;if((e|0)!=(a|0)){continue}break}}e=H[d>>2];a=H[d+4>>2]-e>>2;b:{if(a>>>0>>0){ya(d,g-a|0);break b}if(a>>>0<=g>>>0){break b}H[d+4>>2]=e+(g<<2)}c:{d:{e:{if(!j){i=1;break e}if(!b){a=0;while(1){if(!Va(c,I[c+84|0]?a:H[H[c+68>>2]+(a<<2)>>2],F[c+24|0],f)){break e}a=a+1|0;i=j>>>0<=a>>>0;if((a|0)!=(j|0)){continue}break}break e}n=b&252;k=b&3;o=b>>>0<4;e=0;b=0;while(1){if(!Va(c,I[c+84|0]?b:H[H[c+68>>2]+(b<<2)>>2],F[c+24|0],f)){break e}m=H[d>>2];i=0;a=0;l=0;if(!o){while(1){g=(e<<2)+m|0;h=a<<2;L[g>>2]=L[h+f>>2];L[g+4>>2]=L[(h|4)+f>>2];L[g+8>>2]=L[(h|8)+f>>2];L[g+12>>2]=L[(h|12)+f>>2];a=a+4|0;e=e+4|0;l=l+4|0;if((n|0)!=(l|0)){continue}break}}if(k){while(1){L[(e<<2)+m>>2]=L[(a<<2)+f>>2];a=a+1|0;e=e+1|0;i=i+1|0;if((k|0)!=(i|0)){continue}break}}b=b+1|0;i=j>>>0<=b>>>0;if((b|0)!=(j|0)){continue}break}break d}if(!f){break c}}oa(f)}return i|0}function mf(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;e=ca-16|0;ca=e;h=1;i=ea[H[H[a>>2]+24>>2]](a)|0;a:{if((i|0)<=0){break a}l=a+48|0;h=0;while(1){b:{c:{if(!H[(ea[H[H[a>>2]+28>>2]](a)|0)+40>>2]){break c}j=f<<2;g=H[j+H[a+36>>2]>>2];b=H[g+8>>2];k=rb(g);if(!k){break c}g=H[(ea[H[H[a>>2]+28>>2]](a)|0)+40>>2];H[e+12>>2]=H[b+56>>2];b=pa(32);H[e>>2]=b;H[e+4>>2]=24;H[e+8>>2]=-2147483616;c=I[1206]|I[1207]<<8|(I[1208]<<16|I[1209]<<24);d=I[1202]|I[1203]<<8|(I[1204]<<16|I[1205]<<24);F[b+16|0]=d;F[b+17|0]=d>>>8;F[b+18|0]=d>>>16;F[b+19|0]=d>>>24;F[b+20|0]=c;F[b+21|0]=c>>>8;F[b+22|0]=c>>>16;F[b+23|0]=c>>>24;c=I[1198]|I[1199]<<8|(I[1200]<<16|I[1201]<<24);d=I[1194]|I[1195]<<8|(I[1196]<<16|I[1197]<<24);F[b+8|0]=d;F[b+9|0]=d>>>8;F[b+10|0]=d>>>16;F[b+11|0]=d>>>24;F[b+12|0]=c;F[b+13|0]=c>>>8;F[b+14|0]=c>>>16;F[b+15|0]=c>>>24;c=I[1190]|I[1191]<<8|(I[1192]<<16|I[1193]<<24);d=I[1186]|I[1187]<<8|(I[1188]<<16|I[1189]<<24);F[b|0]=d;F[b+1|0]=d>>>8;F[b+2|0]=d>>>16;F[b+3|0]=d>>>24;F[b+4|0]=c;F[b+5|0]=c>>>8;F[b+6|0]=c>>>16;F[b+7|0]=c>>>24;F[b+24|0]=0;b=sd(g,e+12|0,e);if(F[e+11|0]<0){oa(H[e>>2])}if(!b){break c}oe(H[H[H[a+36>>2]+j>>2]+8>>2],k);break b}b=H[H[a+36>>2]+(f<<2)>>2];if(!(ea[H[H[b>>2]+24>>2]](b,l)|0)){break a}}f=f+1|0;h=(i|0)<=(f|0);if((f|0)!=(i|0)){continue}break}}ca=e+16|0;return h|0}function Ye(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;k=ca-16|0;ca=k;c=H[b+20>>2];d=H[b+16>>2];e=d+4|0;c=e>>>0<4?c+1|0:c;g=H[b+12>>2];a:{if(K[b+8>>2]>>0&(g|0)<=(c|0)|(c|0)>(g|0)){break a}d=d+H[b>>2]|0;h=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);H[b+16>>2]=e;H[b+20>>2]=c;if((h|0)<0){break a}Wa(a+76|0,h);c=k;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;b:{if(!ta(c,b)){break b}if(h){g=1;while(1){d=1<>2]+(i>>>3&536870908)|0;e=e^g;if(e&1){d=H[f>>2]&(d^-1)}else{d=d|H[f>>2]}g=e^1;H[f>>2]=d;i=i+1|0;if((h|0)!=(i|0)){continue}break}}i=0;c=H[b+8>>2];e=H[b+12>>2];f=e;e=H[b+20>>2];g=e;l=H[b+16>>2];d=l+4|0;e=d>>>0<4?e+1|0:e;h=d;if(d>>>0>c>>>0&(e|0)>=(f|0)|(e|0)>(f|0)){break b}m=H[b>>2];d=m+l|0;j=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);H[b+16>>2]=h;H[b+20>>2]=e;d=c;c=g;e=l+8|0;c=e>>>0<8?c+1|0:c;if(d>>>0>>0&(c|0)>=(f|0)|(c|0)>(f|0)){break b}d=h+m|0;d=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);H[b+16>>2]=e;H[b+20>>2]=c;if((d|0)<(j|0)){break b}H[a+16>>2]=d;H[a+12>>2]=j;c=(d>>31)-((j>>31)+(d>>>0>>0)|0)|0;b=d-j|0;if(!c&b>>>0>2147483646|c){break b}i=1;c=b+1|0;H[a+20>>2]=c;b=c>>>1|0;H[a+24>>2]=b;H[a+28>>2]=0-b;if(c&1){break b}H[a+24>>2]=b-1}}ca=k+16|0;return i|0}function rg(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;a=0;k=ca-16|0;ca=k;j=H[b+80>>2];e=I[c+24|0];b=N(j,e);a:{b:{c:{d:{f=H[c+28>>2];if(!(!I[c+84|0]|(f|0)!=5&(f|0)!=6)){e=H[c+48>>2];c=H[H[c>>2]>>2];H[k+8>>2]=0;H[k>>2]=0;H[k+4>>2]=0;if(b){if((b|0)<0){break d}b=b<<2;a=pa(b);g=qa(a,c+e|0,b)+b|0}b=H[d>>2];if(b){H[d+4>>2]=b;oa(b)}H[d+8>>2]=g;H[d+4>>2]=g;H[d>>2]=a;h=1;break a}if(e){f=e<<2;a=pa(f);ra(a,0,f)}i=H[d>>2];f=H[d+4>>2]-i>>2;e:{if(f>>>0>>0){ya(d,b-f|0);break e}if(b>>>0>=f>>>0){break e}H[d+4>>2]=i+(b<<2)}if(!j){h=1;break c}if(!e){b=0;while(1){if(!dc(c,I[c+84|0]?b:H[H[c+68>>2]+(b<<2)>>2],F[c+24|0],a)){break c}b=b+1|0;h=j>>>0<=b>>>0;if((b|0)!=(j|0)){continue}break}break c}o=e&252;m=e&3;p=e>>>0<4;e=0;while(1){if(!dc(c,I[c+84|0]?e:H[H[c+68>>2]+(e<<2)>>2],F[c+24|0],a)){break c}n=H[d>>2];l=0;b=0;h=0;if(!p){while(1){f=(g<<2)+n|0;i=b<<2;H[f>>2]=H[i+a>>2];H[f+4>>2]=H[(i|4)+a>>2];H[f+8>>2]=H[(i|8)+a>>2];H[f+12>>2]=H[(i|12)+a>>2];b=b+4|0;g=g+4|0;h=h+4|0;if((o|0)!=(h|0)){continue}break}}if(m){while(1){H[(g<<2)+n>>2]=H[(b<<2)+a>>2];b=b+1|0;g=g+1|0;l=l+1|0;if((l|0)!=(m|0)){continue}break}}e=e+1|0;h=j>>>0<=e>>>0;if((e|0)!=(j|0)){continue}break}break b}sa();v()}if(!a){break a}}oa(a)}ca=k+16|0;return h|0}function ge(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;a=0;k=ca-16|0;ca=k;j=H[b+80>>2];e=I[c+24|0];b=N(j,e);a:{b:{c:{d:{f=H[c+28>>2];if(!(!I[c+84|0]|(f|0)!=5&(f|0)!=6)){e=H[c+48>>2];c=H[H[c>>2]>>2];H[k+8>>2]=0;H[k>>2]=0;H[k+4>>2]=0;if(b){if((b|0)<0){break d}b=b<<2;a=pa(b);g=qa(a,c+e|0,b)+b|0}b=H[d>>2];if(b){H[d+4>>2]=b;oa(b)}H[d+8>>2]=g;H[d+4>>2]=g;H[d>>2]=a;h=1;break a}if(e){f=e<<2;a=pa(f);ra(a,0,f)}i=H[d>>2];f=H[d+4>>2]-i>>2;e:{if(f>>>0>>0){ya(d,b-f|0);break e}if(b>>>0>=f>>>0){break e}H[d+4>>2]=i+(b<<2)}if(!j){h=1;break c}if(!e){b=0;while(1){if(!ec(c,I[c+84|0]?b:H[H[c+68>>2]+(b<<2)>>2],F[c+24|0],a)){break c}b=b+1|0;h=j>>>0<=b>>>0;if((b|0)!=(j|0)){continue}break}break c}o=e&252;m=e&3;p=e>>>0<4;e=0;while(1){if(!ec(c,I[c+84|0]?e:H[H[c+68>>2]+(e<<2)>>2],F[c+24|0],a)){break c}n=H[d>>2];l=0;b=0;h=0;if(!p){while(1){f=(g<<2)+n|0;i=b<<2;H[f>>2]=H[i+a>>2];H[f+4>>2]=H[(i|4)+a>>2];H[f+8>>2]=H[(i|8)+a>>2];H[f+12>>2]=H[(i|12)+a>>2];b=b+4|0;g=g+4|0;h=h+4|0;if((o|0)!=(h|0)){continue}break}}if(m){while(1){H[(g<<2)+n>>2]=H[(b<<2)+a>>2];b=b+1|0;g=g+1|0;l=l+1|0;if((l|0)!=(m|0)){continue}break}}e=e+1|0;h=j>>>0<=e>>>0;if((e|0)!=(j|0)){continue}break}break b}sa();v()}if(!a){break a}}oa(a)}ca=k+16|0;return h|0}function tg(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;a=0;k=ca-16|0;ca=k;j=H[b+80>>2];e=I[c+24|0];b=N(j,e);a:{b:{c:{d:{f=H[c+28>>2];if(!(!I[c+84|0]|(f|0)!=3&(f|0)!=4)){e=H[c+48>>2];c=H[H[c>>2]>>2];H[k+8>>2]=0;H[k>>2]=0;H[k+4>>2]=0;if(b){if((b|0)<0){break d}b=b<<1;a=pa(b);g=qa(a,c+e|0,b)+b|0}b=H[d>>2];if(b){H[d+4>>2]=b;oa(b)}H[d+8>>2]=g;H[d+4>>2]=g;H[d>>2]=a;h=1;break a}if(e){f=e<<1;a=pa(f);ra(a,0,f)}i=H[d>>2];f=H[d+4>>2]-i>>1;e:{if(f>>>0>>0){qe(d,b-f|0);break e}if(b>>>0>=f>>>0){break e}H[d+4>>2]=i+(b<<1)}if(!j){h=1;break c}if(!e){b=0;while(1){if(!gc(c,I[c+84|0]?b:H[H[c+68>>2]+(b<<2)>>2],F[c+24|0],a)){break c}b=b+1|0;h=j>>>0<=b>>>0;if((b|0)!=(j|0)){continue}break}break c}o=e&252;m=e&3;p=e>>>0<4;e=0;while(1){if(!gc(c,I[c+84|0]?e:H[H[c+68>>2]+(e<<2)>>2],F[c+24|0],a)){break c}n=H[d>>2];l=0;b=0;h=0;if(!p){while(1){f=(g<<1)+n|0;i=b<<1;G[f>>1]=J[i+a>>1];G[f+2>>1]=J[(i|2)+a>>1];G[f+4>>1]=J[(i|4)+a>>1];G[f+6>>1]=J[(i|6)+a>>1];b=b+4|0;g=g+4|0;h=h+4|0;if((o|0)!=(h|0)){continue}break}}if(m){while(1){G[(g<<1)+n>>1]=J[(b<<1)+a>>1];b=b+1|0;g=g+1|0;l=l+1|0;if((l|0)!=(m|0)){continue}break}}e=e+1|0;h=j>>>0<=e>>>0;if((e|0)!=(j|0)){continue}break}break b}sa();v()}if(!a){break a}}oa(a)}ca=k+16|0;return h|0}function sg(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;a=0;k=ca-16|0;ca=k;j=H[b+80>>2];e=I[c+24|0];b=N(j,e);a:{b:{c:{d:{f=H[c+28>>2];if(!(!I[c+84|0]|(f|0)!=3&(f|0)!=4)){e=H[c+48>>2];c=H[H[c>>2]>>2];H[k+8>>2]=0;H[k>>2]=0;H[k+4>>2]=0;if(b){if((b|0)<0){break d}b=b<<1;a=pa(b);g=qa(a,c+e|0,b)+b|0}b=H[d>>2];if(b){H[d+4>>2]=b;oa(b)}H[d+8>>2]=g;H[d+4>>2]=g;H[d>>2]=a;h=1;break a}if(e){f=e<<1;a=pa(f);ra(a,0,f)}i=H[d>>2];f=H[d+4>>2]-i>>1;e:{if(f>>>0>>0){qe(d,b-f|0);break e}if(b>>>0>=f>>>0){break e}H[d+4>>2]=i+(b<<1)}if(!j){h=1;break c}if(!e){b=0;while(1){if(!fc(c,I[c+84|0]?b:H[H[c+68>>2]+(b<<2)>>2],F[c+24|0],a)){break c}b=b+1|0;h=j>>>0<=b>>>0;if((b|0)!=(j|0)){continue}break}break c}o=e&252;m=e&3;p=e>>>0<4;e=0;while(1){if(!fc(c,I[c+84|0]?e:H[H[c+68>>2]+(e<<2)>>2],F[c+24|0],a)){break c}n=H[d>>2];l=0;b=0;h=0;if(!p){while(1){f=(g<<1)+n|0;i=b<<1;G[f>>1]=J[i+a>>1];G[f+2>>1]=J[(i|2)+a>>1];G[f+4>>1]=J[(i|4)+a>>1];G[f+6>>1]=J[(i|6)+a>>1];b=b+4|0;g=g+4|0;h=h+4|0;if((o|0)!=(h|0)){continue}break}}if(m){while(1){G[(g<<1)+n>>1]=J[(b<<1)+a>>1];b=b+1|0;g=g+1|0;l=l+1|0;if((l|0)!=(m|0)){continue}break}}e=e+1|0;h=j>>>0<=e>>>0;if((e|0)!=(j|0)){continue}break}break b}sa();v()}if(!a){break a}}oa(a)}ca=k+16|0;return h|0}function Ce(a,b){var c=0,d=0,e=0,f=0,g=0;f=-1;d=-1;a:{if((b|0)==-1){break a}d=b+1|0;f=(d>>>0)%3|0?d:b-2|0;d=b-1|0;if((b>>>0)%3|0){break a}d=b+2|0}b:{c:{d:{switch(H[a+168>>2]){case 0:case 1:e=H[a+148>>2];c=1;b=H[a+156>>2];g=b+(((f|0)==-1?-1:H[H[e>>2]+(f<<2)>>2])<<2)|0;H[g>>2]=H[g>>2]+1;b=(((d|0)==-1?-1:H[H[e>>2]+(d<<2)>>2])<<2)+b|0;break c;case 5:e=H[a+148>>2];c=-1;c=((b|0)!=-1?H[H[e>>2]+(b<<2)>>2]:c)<<2;b=H[a+156>>2];c=c+b|0;H[c>>2]=H[c>>2]+1;c=(((f|0)==-1?-1:H[H[e>>2]+(f<<2)>>2])<<2)+b|0;H[c>>2]=H[c>>2]+1;c=2;b=(((d|0)==-1?-1:H[H[e>>2]+(d<<2)>>2])<<2)+b|0;break c;case 3:e=H[a+148>>2];c=-1;c=((b|0)!=-1?H[H[e>>2]+(b<<2)>>2]:c)<<2;b=H[a+156>>2];c=c+b|0;H[c>>2]=H[c>>2]+1;c=(((f|0)==-1?-1:H[H[e>>2]+(f<<2)>>2])<<2)+b|0;H[c>>2]=H[c>>2]+2;c=1;b=(((d|0)==-1?-1:H[H[e>>2]+(d<<2)>>2])<<2)+b|0;break c;case 7:break d;default:break b}}e=H[a+148>>2];c=-1;c=((b|0)!=-1?H[H[e>>2]+(b<<2)>>2]:c)<<2;b=H[a+156>>2];c=c+b|0;H[c>>2]=H[c>>2]+2;c=(((f|0)==-1?-1:H[H[e>>2]+(f<<2)>>2])<<2)+b|0;H[c>>2]=H[c>>2]+2;c=2;b=(((d|0)==-1?-1:H[H[e>>2]+(d<<2)>>2])<<2)+b|0}H[b>>2]=H[b>>2]+c}c=a;b=H[H[a+156>>2]+(((f|0)==-1?-1:H[H[H[a+148>>2]>>2]+(f<<2)>>2])<<2)>>2];d=H[a+180>>2];a=H[a+176>>2];H[c+172>>2]=(a|0)<=(b|0)?((b|0)<(d|0)?b:d)-a|0:0}function Ac(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;H[a+16>>2]=0;H[a+20>>2]=0;H[a+8>>2]=0;H[a>>2]=0;H[a+4>>2]=0;H[a+24>>2]=0;f=H[b+4>>2];g=H[b>>2];e=f-g|0;c=(e|0)/20|0;a:{if((f|0)==(g|0)){break a}b:{if(c>>>0<214748365){f=pa(e);H[a+20>>2]=f;H[a+16>>2]=f;H[a+24>>2]=f+N(c,20);c=H[b>>2];g=H[b+4>>2];if((c|0)==(g|0)){break a}b=f;while(1){e=H[c+4>>2];H[b>>2]=H[c>>2];H[b+4>>2]=e;H[b+16>>2]=H[c+16>>2];e=H[c+12>>2];H[b+8>>2]=H[c+8>>2];H[b+12>>2]=e;b=b+20|0;c=c+20|0;if((g|0)!=(c|0)){continue}break}g=0;H[a+28>>2]=0;H[a+20>>2]=b;if((b|0)!=(f|0)){b=(b-f|0)/20|0;e=b>>>0<=1?1:b;h=e&3;b=0;c=0;if(e-1>>>0>=3){i=e&-4;e=0;while(1){d=f+N(b,20)|0;d=N(H[d+16>>2],H[d+12>>2]);c=c>>>0>d>>>0?c:d;d=f+N(b|1,20)|0;d=N(H[d+16>>2],H[d+12>>2]);c=c>>>0>d>>>0?c:d;d=f+N(b|2,20)|0;d=N(H[d+16>>2],H[d+12>>2]);c=c>>>0>d>>>0?c:d;d=f+N(b|3,20)|0;d=N(H[d+16>>2],H[d+12>>2]);c=c>>>0>d>>>0?c:d;b=b+4|0;e=e+4|0;if((i|0)!=(e|0)){continue}break}}if(h){while(1){e=f+N(b,20)|0;e=N(H[e+16>>2],H[e+12>>2]);c=c>>>0>e>>>0?c:e;b=b+1|0;g=g+1|0;if((h|0)!=(g|0)){continue}break}}if(!c){H[a+12>>2]=0;return a}if((c|0)<0){break b}g=pa(c);b=ra(g,0,c);f=b+c|0;H[a+8>>2]=f;H[a+4>>2]=f;H[a>>2]=b}H[a+12>>2]=g;return a}sa();v()}sa();v()}H[a+28>>2]=0;H[a+12>>2]=0;return a}function Dh(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;a:{b=H[a+32>>2];f=H[b+8>>2];h=H[b+12>>2];g=H[b+20>>2];c=H[b+16>>2];e=0;b:{if((h|0)<=(g|0)&c>>>0>=f>>>0|(g|0)>(h|0)){break b}f=I[H[b>>2]+c|0];e=b;b=g;c=c+1|0;b=c?b:b+1|0;H[e+16>>2]=c;H[e+20>>2]=b;c:{if(!f){break c}while(1){if(ea[H[H[a>>2]+16>>2]](a,d)|0){d=d+1|0;if((f|0)!=(d|0)){continue}break c}break}return 0}d=H[a+8>>2];b=H[a+12>>2];if((d|0)!=(b|0)){while(1){c=H[d>>2];if(!(ea[H[H[c>>2]+8>>2]](c,a,H[a+4>>2])|0)){break a}d=d+4|0;if((b|0)!=(d|0)){continue}break}}d:{if(!f){break d}d=0;while(1){b=H[H[a+8>>2]+(d<<2)>>2];if(!(ea[H[H[b>>2]+12>>2]](b,H[a+32>>2])|0)){break a}d=d+1|0;if((f|0)!=(d|0)){continue}break}if(!f){break d}i=a+20|0;b=0;while(1){d=0;j=b<<2;c=H[j+H[a+8>>2]>>2];k=ea[H[H[c>>2]+24>>2]](c)|0;if((k|0)>0){while(1){c=H[H[a+8>>2]+j>>2];c=ea[H[H[c>>2]+20>>2]](c,d)|0;e=H[a+20>>2];g=H[a+24>>2]-e>>2;e:{if(c>>>0>>0){break e}h=c+1|0;if(h>>>0>g>>>0){ya(i,h-g|0);e=H[i>>2];break e}if(g>>>0<=h>>>0){break e}H[a+24>>2]=(h<<2)+e}H[(c<<2)+e>>2]=b;d=d+1|0;if((k|0)!=(d|0)){continue}break}}b=b+1|0;if((f|0)!=(b|0)){continue}break}}e=0;if(!(ea[H[H[a>>2]+28>>2]](a)|0)){break b}e=ea[H[H[a>>2]+32>>2]](a)|0}return e|0}return 0}function ta(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;i=ca-16|0;ca=i;f=H[b+20>>2];d=H[b+12>>2];c=H[b+16>>2];a:{if((f|0)>=(d|0)&c>>>0>=K[b+8>>2]|(d|0)<(f|0)){break a}F[a+12|0]=I[c+H[b>>2]|0];c=H[b+20>>2];g=c;f=H[b+16>>2];e=f+1|0;c=e?c:c+1|0;H[b+16>>2]=e;H[b+20>>2]=c;b:{if(J[b+38>>1]<=513){d=H[b+8>>2];c=H[b+12>>2];h=c;c=g;f=f+5|0;c=f>>>0<5?c+1|0:c;if(d>>>0>>0&(c|0)>=(h|0)|(c|0)>(h|0)){break a}e=e+H[b>>2]|0;e=I[e|0]|I[e+1|0]<<8|(I[e+2|0]<<16|I[e+3|0]<<24);H[b+16>>2]=f;H[b+20>>2]=c;break b}if(!Qe(1,i+12|0,b)){break a}f=H[b+16>>2];c=H[b+20>>2];d=H[b+8>>2];h=H[b+12>>2];e=H[i+12>>2]}g=d-f|0;d=h-(c+(d>>>0>>0)|0)|0;if((d|0)<=0&e>>>0>g>>>0|(d|0)<0|(e|0)<=0){break a}j=H[b>>2]+f|0;H[a>>2]=j;c:{d:{h=e-1|0;g=h+j|0;d=I[g|0];e:{if(d>>>0<=63){H[a+4>>2]=h;g=I[g|0]&63;break e}f:{switch((d>>>6|0)-1|0){case 1:break d;case 0:break f;default:break a}}if(e>>>0<2){break a}d=e-2|0;H[a+4>>2]=d;d=d+j|0;g=I[d+1|0]<<8&16128|I[d|0]}H[a+8>>2]=g+4096;break c}if(e>>>0<3){break a}d=e-3|0;H[a+4>>2]=d;g=a;a=d+j|0;a=I[a+1|0]<<8|I[a+2|0]<<16&4128768|I[a|0];H[g+8>>2]=a+4096;if(a>>>0>1044479){break a}}a=e+f|0;c=a>>>0>>0?c+1|0:c;H[b+16>>2]=a;H[b+20>>2]=c;k=1}ca=i+16|0;return k}function Wf(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;Xd(a,b,c);c=H[a+84>>2];d=H[a+88>>2]-c>>2;a:{if((d|0)>(b|0)){break a}b=b+1|0;if(b>>>0>d>>>0){b:{d=b-d|0;e=H[a+92>>2];c=H[a+88>>2];if(d>>>0<=e-c>>2>>>0){c:{if(!d){break c}b=c;e=d&7;if(e){while(1){H[b>>2]=1;b=b+4|0;f=f+1|0;if((e|0)!=(f|0)){continue}break}}c=(d<<2)+c|0;if((d-1&1073741823)>>>0<7){break c}while(1){H[b+24>>2]=1;H[b+28>>2]=1;H[b+16>>2]=1;H[b+20>>2]=1;H[b+8>>2]=1;H[b+12>>2]=1;H[b>>2]=1;H[b+4>>2]=1;b=b+32|0;if((c|0)!=(b|0)){continue}break}}H[a+88>>2]=c;break b}d:{b=c;c=H[a+84>>2];i=b-c|0;g=i>>2;b=g+d|0;if(b>>>0<1073741824){e=e-c|0;h=e>>>1|0;e=e>>>0>=2147483644?1073741823:b>>>0>>0?h:b;if(e){if(e>>>0>=1073741824){break d}j=pa(e<<2)}g=(g<<2)+j|0;b=g;h=d&7;if(h){while(1){H[b>>2]=1;b=b+4|0;f=f+1|0;if((h|0)!=(f|0)){continue}break}}f=g+(d<<2)|0;if((d-1&1073741823)>>>0>=7){while(1){H[b+24>>2]=1;H[b+28>>2]=1;H[b+16>>2]=1;H[b+20>>2]=1;H[b+8>>2]=1;H[b+12>>2]=1;H[b>>2]=1;H[b+4>>2]=1;b=b+32|0;if((f|0)!=(b|0)){continue}break}}b=va(j,c,i);H[a+88>>2]=f;H[a+84>>2]=b;H[a+92>>2]=b+(e<<2);if(c){oa(c)}break b}sa();v()}wa();v()}return}if(b>>>0>=d>>>0){break a}H[a+88>>2]=c+(b<<2)}}function qb(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;d=H[a+8>>2];e=H[a+4>>2];if(d-e>>2>>>0>=b>>>0){a:{if(!b){break a}d=e;g=b&7;if(g){while(1){H[d>>2]=H[c>>2];d=d+4|0;f=f+1|0;if((g|0)!=(f|0)){continue}break}}e=(b<<2)+e|0;if((b-1&1073741823)>>>0<7){break a}while(1){H[d>>2]=H[c>>2];H[d+4>>2]=H[c>>2];H[d+8>>2]=H[c>>2];H[d+12>>2]=H[c>>2];H[d+16>>2]=H[c>>2];H[d+20>>2]=H[c>>2];H[d+24>>2]=H[c>>2];H[d+28>>2]=H[c>>2];d=d+32|0;if((e|0)!=(d|0)){continue}break}}H[a+4>>2]=e;return}b:{i=H[a>>2];f=e-i>>2;h=f+b|0;if(h>>>0<1073741824){j=d-i|0;d=j>>>1|0;h=j>>>0>=2147483644?1073741823:d>>>0>h>>>0?d:h;if(h){if(h>>>0>=1073741824){break b}k=pa(h<<2)}f=(f<<2)+k|0;d=f;j=b&7;if(j){while(1){H[d>>2]=H[c>>2];d=d+4|0;g=g+1|0;if((j|0)!=(g|0)){continue}break}}g=(b<<2)+f|0;if((b-1&1073741823)>>>0>=7){while(1){H[d>>2]=H[c>>2];H[d+4>>2]=H[c>>2];H[d+8>>2]=H[c>>2];H[d+12>>2]=H[c>>2];H[d+16>>2]=H[c>>2];H[d+20>>2]=H[c>>2];H[d+24>>2]=H[c>>2];H[d+28>>2]=H[c>>2];d=d+32|0;if((g|0)!=(d|0)){continue}break}}if((e|0)!=(i|0)){while(1){f=f-4|0;e=e-4|0;H[f>>2]=H[e>>2];if((e|0)!=(i|0)){continue}break}}H[a+8>>2]=(h<<2)+k;H[a+4>>2]=g;H[a>>2]=f;if(i){oa(i)}return}sa();v()}wa();v()}function Kc(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;d=H[a+8>>2];e=H[a>>2];if(d-e>>2>>>0>=b>>>0){f=H[a+4>>2];h=f-e>>2;i=b>>>0>h>>>0?h:b;a:{if(!i){break a}d=e;g=i;j=g&7;if(j){while(1){H[d>>2]=H[c>>2];g=g-1|0;d=d+4|0;k=k+1|0;if((k|0)!=(j|0)){continue}break}}if(i>>>0<8){break a}while(1){H[d>>2]=H[c>>2];H[d+4>>2]=H[c>>2];H[d+8>>2]=H[c>>2];H[d+12>>2]=H[c>>2];H[d+16>>2]=H[c>>2];H[d+20>>2]=H[c>>2];H[d+24>>2]=H[c>>2];H[d+28>>2]=H[c>>2];d=d+32|0;g=g-8|0;if(g){continue}break}}if(b>>>0>h>>>0){b=(b-h<<2)+f|0;while(1){H[f>>2]=H[c>>2];f=f+4|0;if((b|0)!=(f|0)){continue}break}H[a+4>>2]=b;return}H[a+4>>2]=e+(b<<2);return}if(e){H[a+4>>2]=e;oa(e);H[a+8>>2]=0;H[a>>2]=0;H[a+4>>2]=0;d=0}b:{if(b>>>0>=1073741824){break b}e=d>>>1|0;d=d>>>0>=2147483644?1073741823:b>>>0>>0?e:b;if(d>>>0>=1073741824){break b}d=d<<2;e=pa(d);H[a>>2]=e;H[a+8>>2]=d+e;c=H[c>>2];d=e;g=b&7;if(g){while(1){H[d>>2]=c;d=d+4|0;f=f+1|0;if((g|0)!=(f|0)){continue}break}}e=e+(b<<2)|0;if((b-1&1073741823)>>>0>=7){while(1){H[d+28>>2]=c;H[d+24>>2]=c;H[d+20>>2]=c;H[d+16>>2]=c;H[d+12>>2]=c;H[d+8>>2]=c;H[d+4>>2]=c;H[d>>2]=c;d=d+32|0;if((e|0)!=(d|0)){continue}break}}H[a+4>>2]=e;return}sa();v()}function Me(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;h=ca-16|0;ca=h;a:{b:{if(J[b+38>>1]<=511){e=H[b+8>>2];c=H[b+12>>2];i=c;f=H[b+20>>2];d=H[b+16>>2];g=d+8|0;f=g>>>0<8?f+1|0:f;if(e>>>0>>0&(c|0)<=(f|0)|(c|0)<(f|0)){break a}d=d+H[b>>2]|0;c=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);d=I[d+4|0]|I[d+5|0]<<8|(I[d+6|0]<<16|I[d+7|0]<<24);H[b+16>>2]=g;H[b+20>>2]=f;break b}if(!gb(1,h+8|0,b)){break a}g=H[b+16>>2];f=H[b+20>>2];e=H[b+8>>2];i=H[b+12>>2];c=H[h+8>>2];d=H[h+12>>2]}j=e-g|0;e=i-(f+(e>>>0>>0)|0)|0;if((e|0)==(d|0)&c>>>0>j>>>0|d>>>0>e>>>0){break a}e=d+f|0;f=c+g|0;e=f>>>0>>0?e+1|0:e;H[b+16>>2]=f;H[b+20>>2]=e;if((c|0)<=0){break a}b=H[b>>2]+g|0;H[a+40>>2]=b;g=c-1|0;e=b+g|0;f=I[e|0];c:{if(f>>>0<=63){H[a+44>>2]=g;b=I[e|0]&63;break c}d:{switch((f>>>6|0)-1|0){case 0:if(c>>>0<2){break a}c=c-2|0;H[a+44>>2]=c;b=b+c|0;b=I[b+1|0]<<8&16128|I[b|0];break c;case 1:if(c>>>0<3){break a}c=c-3|0;H[a+44>>2]=c;b=b+c|0;b=I[b+1|0]<<8|I[b+2|0]<<16&4128768|I[b|0];break c;default:break d}}c=c-4|0;H[a+44>>2]=c;b=b+c|0;b=(I[b|0]|I[b+1|0]<<8|(I[b+2|0]<<16|I[b+3|0]<<24))&1073741823}H[a+48>>2]=b+16384;k=b>>>0<4177920}ca=h+16|0;return k}function Ua(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;f=(c>>>0)/3|0;j=H[(H[H[a+8>>2]+96>>2]+N(f,12)|0)+(c-N(f,3)<<2)>>2];a:{h=H[H[a+12>>2]+4>>2];e=H[h+4>>2];if((e|0)!=H[h+8>>2]){H[e>>2]=j;H[h+4>>2]=e+4;break a}b:{i=H[h>>2];f=e-i|0;g=f>>2;d=g+1|0;if(d>>>0<1073741824){k=g<<2;g=f>>>1|0;g=f>>>0>=2147483644?1073741823:d>>>0>>0?g:d;if(g){if(g>>>0>=1073741824){break b}f=pa(g<<2)}else{f=0}d=k+f|0;H[d>>2]=j;j=d+4|0;if((e|0)!=(i|0)){while(1){d=d-4|0;e=e-4|0;H[d>>2]=H[e>>2];if((e|0)!=(i|0)){continue}break}}H[h+8>>2]=f+(g<<2);H[h+4>>2]=j;H[h>>2]=d;if(i){oa(i)}break a}sa();v()}wa();v()}c:{d:{h=H[a+4>>2];e=H[h+4>>2];e:{if((e|0)!=H[h+8>>2]){H[e>>2]=c;H[h+4>>2]=e+4;break e}i=H[h>>2];f=e-i|0;j=f>>2;d=j+1|0;if(d>>>0>=1073741824){break d}g=f>>>1|0;g=f>>>0>=2147483644?1073741823:d>>>0>>0?g:d;if(g){if(g>>>0>=1073741824){break c}f=pa(g<<2)}else{f=0}d=f+(j<<2)|0;H[d>>2]=c;c=d+4|0;if((e|0)!=(i|0)){while(1){d=d-4|0;e=e-4|0;H[d>>2]=H[e>>2];if((e|0)!=(i|0)){continue}break}}H[h+8>>2]=f+(g<<2);H[h+4>>2]=c;H[h>>2]=d;if(!i){break e}oa(i)}a=H[a+4>>2];H[H[a+12>>2]+(b<<2)>>2]=H[a+24>>2];H[a+24>>2]=H[a+24>>2]+1;return}sa();v()}wa();v()}function Wb(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0;h=d-c|0;if((h|0)<=0){return}a:{e=H[a+8>>2];i=H[a+4>>2];if((e-i|0)>=(h|0)){j=i-b|0;if((j|0)>=(h|0)){f=i;g=d;break a}f=i;g=c+j|0;if((g|0)!=(d|0)){e=g;while(1){F[f|0]=I[e|0];f=f+1|0;e=e+1|0;if((e|0)!=(d|0)){continue}break}}H[a+4>>2]=f;if((j|0)>0){break a}return}k=H[a>>2];g=(i-k|0)+h|0;if((g|0)>=0){j=b-k|0;f=e-k|0;e=f<<1;f=f>>>0>=1073741823?2147483647:e>>>0>g>>>0?e:g;if(f){e=pa(f)}else{e=0}g=j+e|0;if((c|0)!=(d|0)){g=qa(g,c,h)+h|0}d=va(e,k,j);c=i-b|0;b=va(g,b,c);H[a+8>>2]=e+f;H[a+4>>2]=b+c;H[a>>2]=d;if(k){oa(k)}return}sa();v()}e=f;d=e-h|0;if(i>>>0>d>>>0){while(1){F[e|0]=I[d|0];e=e+1|0;d=d+1|0;if(i>>>0>d>>>0){continue}break}}H[a+4>>2]=e;a=b+h|0;if((a|0)!=(f|0)){a=f-a|0;va(f-a|0,b,a)}if((c|0)==(g|0)){return}f=(c^-1)+g|0;a=g-c&7;b:{if(!a){e=b;break b}d=0;e=b;while(1){F[e|0]=I[c|0];e=e+1|0;c=c+1|0;d=d+1|0;if((a|0)!=(d|0)){continue}break}}if(f>>>0<7){return}while(1){F[e|0]=I[c|0];F[e+1|0]=I[c+1|0];F[e+2|0]=I[c+2|0];F[e+3|0]=I[c+3|0];F[e+4|0]=I[c+4|0];F[e+5|0]=I[c+5|0];F[e+6|0]=I[c+6|0];F[e+7|0]=I[c+7|0];e=e+8|0;c=c+8|0;if((g|0)!=(c|0)){continue}break}}function qa(a,b,c){var d=0,e=0,f=0;if(c>>>0>=512){ba(a|0,b|0,c|0);return a}e=a+c|0;a:{if(!((a^b)&3)){b:{if(!(a&3)){c=a;break b}if(!c){c=a;break b}c=a;while(1){F[c|0]=I[b|0];b=b+1|0;c=c+1|0;if(!(c&3)){break b}if(c>>>0>>0){continue}break}}d=e&-4;c:{if(d>>>0<64){break c}f=d+-64|0;if(f>>>0>>0){break c}while(1){H[c>>2]=H[b>>2];H[c+4>>2]=H[b+4>>2];H[c+8>>2]=H[b+8>>2];H[c+12>>2]=H[b+12>>2];H[c+16>>2]=H[b+16>>2];H[c+20>>2]=H[b+20>>2];H[c+24>>2]=H[b+24>>2];H[c+28>>2]=H[b+28>>2];H[c+32>>2]=H[b+32>>2];H[c+36>>2]=H[b+36>>2];H[c+40>>2]=H[b+40>>2];H[c+44>>2]=H[b+44>>2];H[c+48>>2]=H[b+48>>2];H[c+52>>2]=H[b+52>>2];H[c+56>>2]=H[b+56>>2];H[c+60>>2]=H[b+60>>2];b=b- -64|0;c=c- -64|0;if(f>>>0>=c>>>0){continue}break}}if(c>>>0>=d>>>0){break a}while(1){H[c>>2]=H[b>>2];b=b+4|0;c=c+4|0;if(d>>>0>c>>>0){continue}break}break a}if(e>>>0<4){c=a;break a}d=e-4|0;if(d>>>0>>0){c=a;break a}c=a;while(1){F[c|0]=I[b|0];F[c+1|0]=I[b+1|0];F[c+2|0]=I[b+2|0];F[c+3|0]=I[b+3|0];b=b+4|0;c=c+4|0;if(d>>>0>=c>>>0){continue}break}}if(c>>>0>>0){while(1){F[c|0]=I[b|0];b=b+1|0;c=c+1|0;if((e|0)!=(c|0)){continue}break}}return a}function ub(a,b){var c=0,d=0,e=0,f=0,g=0;d=ca-16|0;ca=d;H[a+12>>2]=b;H[a+8>>2]=0;H[a>>2]=0;H[a+4>>2]=0;c=a+16|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;H[a+32>>2]=0;H[a+36>>2]=0;H[a+48>>2]=0;H[a+40>>2]=0;H[a+44>>2]=0;H[a+52>>2]=0;H[a+56>>2]=0;H[a+68>>2]=0;H[a+60>>2]=0;H[a+64>>2]=0;H[a+72>>2]=0;H[a+76>>2]=0;H[a+88>>2]=0;H[a+80>>2]=0;H[a+84>>2]=0;H[a+100>>2]=0;H[a+92>>2]=0;H[a+96>>2]=0;g=a+116|0;a:{b:{if(b){if(b>>>0<1073741824){break b}sa();v()}H[a+104>>2]=0;H[a+108>>2]=0;H[a+112>>2]=0;H[d+8>>2]=0;H[d>>2]=0;H[d+4>>2]=0;c=1;break a}c=b<<2;e=pa(c);H[a+92>>2]=e;f=c+e|0;H[a+100>>2]=f;ra(e,0,c);H[a+112>>2]=0;H[a+104>>2]=0;H[a+108>>2]=0;H[a+96>>2]=f;e=pa(c);H[a+104>>2]=e;f=c+e|0;H[a+112>>2]=f;ra(e,0,c);H[a+108>>2]=f;e=pa(c);H[d>>2]=e;f=c+e|0;H[d+8>>2]=f;ra(e,0,c);H[d+4>>2]=f;c=b<<5|1}tb(g,c,d);e=H[d>>2];if(e){H[d+4>>2]=e;oa(e)}H[d+8>>2]=0;H[d>>2]=0;H[d+4>>2]=0;if(b){b=b<<2;e=pa(b);H[d>>2]=e;f=b+e|0;H[d+8>>2]=f;ra(e,0,b);H[d+4>>2]=f}tb(a+128|0,c,d);b=H[d>>2];if(b){H[d+4>>2]=b;oa(b)}ca=d+16|0;return a}function ze(a){a=a|0;var b=0,c=0,d=0,e=0,f=0;H[a>>2]=11484;d=a+232|0;b=H[d+196>>2];if(b){H[d+200>>2]=b;oa(b)}c=H[d+184>>2];if(c){b=c;e=H[d+188>>2];if((b|0)!=(e|0)){while(1){b=e-12|0;f=H[b>>2];if(f){H[e-8>>2]=f;oa(f)}e=b;if((b|0)!=(c|0)){continue}break}b=H[d+184>>2]}H[d+188>>2]=c;oa(b)}b=H[d+156>>2];if(b){H[d+160>>2]=b;oa(b)}c=H[d+136>>2];H[d+136>>2]=0;if(c){e=c-4|0;b=H[e>>2];if(b){b=c+(b<<4)|0;while(1){b=b-16|0;if((c|0)!=(b|0)){continue}break}}oa(e)}Yc(a+216|0);b=H[a+196>>2];if(b){H[a+200>>2]=b;oa(b)}b=H[a+184>>2];if(b){H[a+188>>2]=b;oa(b)}b=H[a+172>>2];if(b){H[a+176>>2]=b;oa(b)}b=H[a+160>>2];if(b){H[a+164>>2]=b;oa(b)}b=H[a+144>>2];if(b){while(1){c=H[b>>2];oa(b);b=c;if(b){continue}break}}b=H[a+136>>2];H[a+136>>2]=0;if(b){oa(b)}b=H[a+120>>2];if(b){oa(b)}b=H[a+108>>2];if(b){oa(b)}b=H[a+96>>2];if(b){oa(b)}b=H[a+72>>2];if(b){H[a+76>>2]=b;oa(b)}b=H[a+60>>2];if(b){oa(b)}b=H[a+48>>2];if(b){H[a+52>>2]=b;oa(b)}b=H[a+36>>2];if(b){H[a+40>>2]=b;oa(b)}b=H[a+24>>2];if(b){H[a+28>>2]=b;oa(b)}b=H[a+12>>2];if(b){H[a+16>>2]=b;oa(b)}b=H[a+8>>2];H[a+8>>2]=0;if(b){cb(b)}return a|0}function Pa(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;d=H[a+8>>2];e=H[a+4>>2];if(d-e>>2>>>0>=b>>>0){a:{if(!b){break a}d=e;f=b&7;if(f){while(1){H[d>>2]=H[c>>2];d=d+4|0;h=h+1|0;if((f|0)!=(h|0)){continue}break}}e=(b<<2)+e|0;if((b-1&1073741823)>>>0<7){break a}while(1){H[d>>2]=H[c>>2];H[d+4>>2]=H[c>>2];H[d+8>>2]=H[c>>2];H[d+12>>2]=H[c>>2];H[d+16>>2]=H[c>>2];H[d+20>>2]=H[c>>2];H[d+24>>2]=H[c>>2];H[d+28>>2]=H[c>>2];d=d+32|0;if((e|0)!=(d|0)){continue}break}}H[a+4>>2]=e;return}b:{i=H[a>>2];j=e-i|0;f=j>>2;g=f+b|0;if(g>>>0<1073741824){d=d-i|0;e=d>>>1|0;g=d>>>0>=2147483644?1073741823:e>>>0>g>>>0?e:g;if(g){if(g>>>0>=1073741824){break b}k=pa(g<<2)}f=(f<<2)+k|0;d=f;e=b&7;if(e){while(1){H[d>>2]=H[c>>2];d=d+4|0;h=h+1|0;if((e|0)!=(h|0)){continue}break}}e=f+(b<<2)|0;if((b-1&1073741823)>>>0>=7){while(1){H[d>>2]=H[c>>2];H[d+4>>2]=H[c>>2];H[d+8>>2]=H[c>>2];H[d+12>>2]=H[c>>2];H[d+16>>2]=H[c>>2];H[d+20>>2]=H[c>>2];H[d+24>>2]=H[c>>2];H[d+28>>2]=H[c>>2];d=d+32|0;if((e|0)!=(d|0)){continue}break}}b=va(k,i,j);H[a+4>>2]=e;H[a>>2]=b;H[a+8>>2]=b+(g<<2);if(i){oa(i)}return}sa();v()}wa();v()}function Cc(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;if(I[a+11|0]>>>7|0){d=H[a+4>>2]}else{d=I[a+11|0]&127}if(d>>>0>>0){h=ca-16|0;ca=h;b=b-d|0;if(b){g=I[a+11|0]>>>7|0?(H[a+8>>2]&2147483647)-1|0:10;if(I[a+11|0]>>>7|0){d=H[a+4>>2]}else{d=I[a+11|0]&127}i=d+b|0;if(g-d>>>0>>0){a:{e=ca-16|0;ca=e;c=i-g|0;if(c>>>0<=2147483631-g>>>0){if(I[a+11|0]>>>7|0){f=H[a>>2]}else{f=a}if(g>>>0<1073741799){H[e+12>>2]=g<<1;H[e>>2]=c+g;c=ca-16|0;ca=c;ca=c+16|0;c=e+12|0;c=H[(K[e>>2]>2]?c:e)>>2];if(c>>>0>=11){j=c+16&-16;c=j-1|0;c=(c|0)==11?j:c}else{c=10}c=c+1|0}else{c=2147483631}Zb(e,c);c=H[e>>2];if(d){yb(c,f,d)}if((g|0)!=10){oa(f)}H[a>>2]=c;H[a+8>>2]=H[a+8>>2]&-2147483648|H[e+4>>2]&2147483647;H[a+8>>2]=H[a+8>>2]|-2147483648;ca=e+16|0;break a}Na();v()}}f=d;if(I[a+11|0]>>>7|0){d=H[a>>2]}else{d=a}f=f+d|0;e=ca-16|0;ca=e;F[e+15|0]=0;while(1){if(b){F[f|0]=I[e+15|0];b=b-1|0;f=f+1|0;continue}break}ca=e+16|0;Id(a,i);F[h+15|0]=0;F[d+i|0]=I[h+15|0]}ca=h+16|0;return}if(I[a+11|0]>>>7|0){d=H[a>>2]}else{d=a}f=ca-16|0;ca=f;Id(a,b);F[f+15|0]=0;F[b+d|0]=I[f+15|0];ca=f+16|0}function Jc(a,b){var c=0,d=0,e=0,f=0,g=0,h=0;g=ca-16|0;ca=g;a:{b:{if(b){H[a+88>>2]=0;H[a+92>>2]=0;d=H[a+84>>2];H[a+84>>2]=0;if(d){oa(d)}H[a+76>>2]=0;H[a+80>>2]=0;d=H[a+72>>2];H[a+72>>2]=0;if(d){oa(d)}d=H[b>>2];c=H[b+4>>2];F[g+15|0]=0;Oa(a,c-d>>2,g+15|0);d=H[b+28>>2];c=H[b+24>>2];F[g+14|0]=0;Oa(a+12|0,d-c>>2,g+14|0);Kc(a+28|0,H[b+4>>2]-H[b>>2]>>2,13708);c=H[b+28>>2]-H[b+24>>2]|0;f=c>>2;e=H[a+52>>2];c:{if(f>>>0<=H[a+60>>2]-e>>2>>>0){break c}if((c|0)<0){break b}d=H[a+56>>2];c=pa(c);f=c+(f<<2)|0;h=c+(d-e&-4)|0;c=h;if((d|0)!=(e|0)){while(1){c=c-4|0;d=d-4|0;H[c>>2]=H[d>>2];if((d|0)!=(e|0)){continue}break}}H[a+60>>2]=f;H[a+56>>2]=h;H[a+52>>2]=c;if(!e){break c}oa(e)}c=H[b+28>>2]-H[b+24>>2]|0;f=c>>2;e=H[a+40>>2];d:{if(f>>>0<=H[a+48>>2]-e>>2>>>0){break d}if((c|0)<0){break a}d=H[a+44>>2];c=pa(c);f=c+(f<<2)|0;h=c+(d-e&-4)|0;c=h;if((d|0)!=(e|0)){while(1){c=c-4|0;d=d-4|0;H[c>>2]=H[d>>2];if((d|0)!=(e|0)){continue}break}}H[a+48>>2]=f;H[a+44>>2]=h;H[a+40>>2]=c;if(!e){break d}oa(e)}F[a+24|0]=1;H[a+64>>2]=b}ca=g+16|0;return}sa();v()}sa();v()}function wb(a,b){var c=0,d=0,e=0,f=0,g=0;c=ca-16|0;ca=c;H[a+12>>2]=b;H[a+8>>2]=0;H[a>>2]=0;H[a+4>>2]=0;H[a+16>>2]=0;H[a+20>>2]=0;H[a+32>>2]=0;H[a+24>>2]=0;H[a+28>>2]=0;H[a+36>>2]=0;H[a+40>>2]=0;H[a+52>>2]=0;H[a+44>>2]=0;H[a+48>>2]=0;H[a+56>>2]=0;H[a+60>>2]=0;H[a+72>>2]=0;H[a+64>>2]=0;H[a+68>>2]=0;H[a+76>>2]=0;H[a+80>>2]=0;H[a+92>>2]=0;H[a+84>>2]=0;H[a+88>>2]=0;H[a+104>>2]=0;H[a+96>>2]=0;H[a+100>>2]=0;g=a+120|0;a:{b:{if(b){if(b>>>0<1073741824){break b}sa();v()}H[a+108>>2]=0;H[a+112>>2]=0;H[a+116>>2]=0;H[c+8>>2]=0;H[c>>2]=0;H[c+4>>2]=0;e=1;break a}e=b<<2;d=pa(e);H[a+96>>2]=d;f=d+e|0;H[a+104>>2]=f;ra(d,0,e);H[a+116>>2]=0;H[a+108>>2]=0;H[a+112>>2]=0;H[a+100>>2]=f;d=pa(e);H[a+108>>2]=d;f=d+e|0;H[a+116>>2]=f;ra(d,0,e);H[a+112>>2]=f;d=pa(e);H[c>>2]=d;f=d+e|0;H[c+8>>2]=f;ra(d,0,e);H[c+4>>2]=f;e=b<<5|1}tb(g,e,c);d=H[c>>2];if(d){H[c+4>>2]=d;oa(d)}H[c+8>>2]=0;H[c>>2]=0;H[c+4>>2]=0;if(b){b=b<<2;d=pa(b);H[c>>2]=d;f=b+d|0;H[c+8>>2]=f;ra(d,0,b);H[c+4>>2]=f}tb(a+132|0,e,c);b=H[c>>2];if(b){H[c+4>>2]=b;oa(b)}ca=c+16|0;return a}function Sb(a,b){var c=0,d=0,e=0;c=(a|0)==(b|0);F[b+12|0]=c;a:{if(c){break a}while(1){d=H[b+8>>2];if(I[d+12|0]){break a}b:{c=H[d+8>>2];e=H[c>>2];if((e|0)==(d|0)){e=H[c+4>>2];if(!(!e|I[e+12|0])){break b}c:{if(H[d>>2]==(b|0)){b=d;break c}b=H[d+4>>2];a=H[b>>2];H[d+4>>2]=a;if(a){H[a+8>>2]=d;c=H[d+8>>2]}H[b+8>>2]=c;a=H[d+8>>2];H[((H[a>>2]!=(d|0))<<2)+a>>2]=b;H[b>>2]=d;H[d+8>>2]=b;c=H[b+8>>2];d=H[c>>2]}F[b+12|0]=1;F[c+12|0]=0;a=H[d+4>>2];H[c>>2]=a;if(a){H[a+8>>2]=c}H[d+8>>2]=H[c+8>>2];a=H[c+8>>2];H[((H[a>>2]!=(c|0))<<2)+a>>2]=d;H[d+4>>2]=c;H[c+8>>2]=d;return}if(!(I[e+12|0]|!e)){break b}d:{if(H[d>>2]!=(b|0)){b=d;break d}a=H[b+4>>2];H[d>>2]=a;if(a){H[a+8>>2]=d;c=H[d+8>>2]}H[b+8>>2]=c;a=H[d+8>>2];H[((H[a>>2]!=(d|0))<<2)+a>>2]=b;H[b+4>>2]=d;H[d+8>>2]=b;c=H[b+8>>2]}F[b+12|0]=1;F[c+12|0]=0;a=H[c+4>>2];b=H[a>>2];H[c+4>>2]=b;if(b){H[b+8>>2]=c}H[a+8>>2]=H[c+8>>2];b=H[c+8>>2];H[((H[b>>2]!=(c|0))<<2)+b>>2]=a;H[a>>2]=c;H[c+8>>2]=a;break a}F[d+12|0]=1;F[c+12|0]=(a|0)==(c|0);F[e+12|0]=1;b=c;if((c|0)!=(a|0)){continue}break}}}function Tj(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;a:{b:{c:{d:{e:{f:{g:{h:{i:{j:{k:{if(b){if(!c){break k}if(!d){break j}e=Q(d)-Q(b)|0;if(e>>>0<=31){break i}break c}if((d|0)==1|d>>>0>1){break c}da=0;a=(a>>>0)/(c>>>0)|0;break a}if(!a){break h}if(!d|d-1&d){break g}a=b>>>Qj(d)|0;da=0;break a}if(!(c-1&c)){break f}h=(Q(c)+33|0)-Q(b)|0;g=0-h|0;break d}h=e+1|0;g=63-e|0;break d}da=0;a=(b>>>0)/(d>>>0)|0;break a}e=Q(d)-Q(b)|0;if(e>>>0<31){break e}break c}if((c|0)==1){break b}d=Qj(c);c=d&31;if((d&63)>>>0>=32){a=b>>>c|0}else{e=b>>>c|0;a=((1<>>c}da=e;break a}h=e+1|0;g=63-e|0}e=h&63;f=e&31;if(e>>>0>=32){e=0;i=b>>>f|0}else{e=b>>>f|0;i=((1<>>f}g=g&63;f=g&31;if(g>>>0>=32){b=a<>>32-f|b<>>31;e=i<<1|b>>>31;f=m-(j+(e>>>0>g>>>0)|0)>>31;k=c&f;i=e-k|0;e=j-((d&f)+(e>>>0>>0)|0)|0;b=b<<1|a>>>31;a=l|a<<1;l=f&1;h=h-1|0;if(h){continue}break}}da=b<<1|a>>>31;a=l|a<<1;break a}a=0;b=0}da=b}return a}function rc(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;k=H[b+16>>2];h=H[c+4>>2]-k|0;e=H[c>>2]-k|0;H[c>>2]=e;H[c+4>>2]=h;g=H[b+16>>2];f=h>>31;i=(f^h)-f|0;f=e>>31;l=g>>>0>=i+((f^e)-f|0)>>>0;a:{if(l){f=h;break a}b:{c:{if((e|0)>=0){f=1;i=1;if((h|0)>=0){break b}j=1;f=-1;i=-1;if(e){break c}break b}j=-1;f=-1;i=-1;if((h|0)<=0){break b}}f=(h|0)<=0?-1:1;i=j}j=N(g,i);e=(e<<1)-j|0;i=(N(f,i)|0)>=0;g=N(f,g);f=((i?0-e|0:e)+g|0)/2|0;H[c+4>>2]=f;m=c;c=(h<<1)-g|0;e=(j+(i?0-c|0:c)|0)/2|0;H[m>>2]=e;g=H[b+16>>2]}c=H[d+4>>2]+f|0;e=H[d>>2]+e|0;d:{if((g|0)<(e|0)){e=e-H[b+4>>2]|0;break d}if((0-g|0)<=(e|0)){break d}e=H[b+4>>2]+e|0}e:{if((c|0)>(g|0)){c=c-H[b+4>>2]|0;break e}if((0-g|0)<=(c|0)){break e}c=H[b+4>>2]+c|0}f:{if(l){g=c;break f}g:{h:{if((e|0)>=0){b=1;f=1;if((c|0)>=0){break g}d=1;b=-1;f=-1;if(e){break h}break g}d=-1;b=-1;f=-1;if((c|0)<=0){break g}}b=(c|0)<=0?-1:1;f=d}d=N(f,g);h=(e<<1)-d|0;f=(N(b,f)|0)>=0;b=N(b,g);g=((f?0-h|0:h)+b|0)/2|0;b=(c<<1)-b|0;e=(d+(f?0-b|0:b)|0)/2|0}c=a;H[c>>2]=e+k;H[c+4>>2]=g+k}function Wh(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0;g=ca-16|0;ca=g;e=H[a+4>>2];d=H[e>>2];a:{b=H[a+12>>2];c=H[b+28>>2]-H[b+24>>2]|0;f=c>>2;b:{if(f>>>0<=H[e+8>>2]-d>>2>>>0){break b}if((c|0)<0){break a}b=H[e+4>>2];c=pa(c);f=c+(f<<2)|0;h=c+(b-d&-4)|0;c=h;if((b|0)!=(d|0)){while(1){c=c-4|0;b=b-4|0;H[c>>2]=H[b>>2];if((b|0)!=(d|0)){continue}break}}H[e+8>>2]=f;H[e+4>>2]=h;H[e>>2]=c;if(!d){break b}oa(d)}b=H[a+12>>2];c=H[b+28>>2];b=H[b+24>>2];H[g+12>>2]=0;b=c-b>>2;d=a+96|0;e=H[d>>2];c=H[a+100>>2]-e>>2;c:{if(b>>>0>c>>>0){Pa(d,b-c|0,g+12|0);break c}if(b>>>0>=c>>>0){break c}H[a+100>>2]=e+(b<<2)}e=a+8|0;b=H[a+116>>2];d:{if(b){d=H[b>>2];if((d|0)==H[b+4>>2]){c=1;break d}b=0;while(1){c=ye(e,H[(b<<2)+d>>2]);if(!c){break d}f=H[a+116>>2];d=H[f>>2];b=b+1|0;if(b>>>0>2]-d>>2>>>0){continue}break}break d}c=1;a=H[a+12>>2];a=H[a+4>>2]-H[a>>2]|0;if(a>>>0<12){break d}a=(a>>2>>>0)/3|0;b=0;while(1){c=ye(e,N(b,3));if(!c){break d}b=b+1|0;if((a|0)!=(b|0)){continue}break}}ca=g+16|0;return c|0}sa();v()}function gj(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;c=H[b+88>>2];if(!(!c|H[c>>2]!=1)){e=H[c+8>>2];H[a+4>>2]=I[e|0]|I[e+1|0]<<8|(I[e+2|0]<<16|I[e+3|0]<<24);f=a+8|0;d=I[b+24|0];h=H[a+8>>2];g=H[a+12>>2]-h>>2;a:{if(d>>>0>g>>>0){ya(f,d-g|0);d=I[b+24|0];e=H[c+8>>2];break a}if(d>>>0>=g>>>0){break a}H[a+12>>2]=h+(d<<2)}b:{if(!d){b=4;break b}h=d&3;f=H[f>>2];c:{if(d-1>>>0<3){b=4;d=0;break c}k=d&252;d=0;b=4;while(1){g=d<<2;c=b+e|0;H[g+f>>2]=I[c|0]|I[c+1|0]<<8|(I[c+2|0]<<16|I[c+3|0]<<24);H[f+(g|4)>>2]=I[c+4|0]|I[c+5|0]<<8|(I[c+6|0]<<16|I[c+7|0]<<24);H[f+(g|8)>>2]=I[c+8|0]|I[c+9|0]<<8|(I[c+10|0]<<16|I[c+11|0]<<24);H[f+(g|12)>>2]=I[c+12|0]|I[c+13|0]<<8|(I[c+14|0]<<16|I[c+15|0]<<24);d=d+4|0;b=b+16|0;i=i+4|0;if((k|0)!=(i|0)){continue}break}}if(!h){break b}while(1){c=b+e|0;H[f+(d<<2)>>2]=I[c|0]|I[c+1|0]<<8|(I[c+2|0]<<16|I[c+3|0]<<24);d=d+1|0;b=b+4|0;j=j+1|0;if((h|0)!=(j|0)){continue}break}}d=a;a=b+e|0;H[d+20>>2]=I[a|0]|I[a+1|0]<<8|(I[a+2|0]<<16|I[a+3|0]<<24);d=1}return d|0}function se(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0;a:{b:{c:{if(!b){if((d|0)<0){break a}f=H[a+4>>2];b=H[a>>2];d=f-b|0;if(c>>>0>d>>>0){g=c-d|0;e=H[a+8>>2];if(g>>>0<=e-f>>>0){i=a,j=ra(f,0,g)+g|0,H[i+4>>2]=j;break c}if((c|0)<0){break b}f=e-b|0;e=f<<1;f=f>>>0>=1073741823?2147483647:c>>>0>>0?e:c;e=pa(f);ra(e+d|0,0,g);d=va(e,b,d);H[a+8>>2]=d+f;H[a+4>>2]=c+d;H[a>>2]=d;if(!b){break c}oa(b);break c}if(c>>>0>=d>>>0){break c}H[a+4>>2]=b+c;break c}if((d|0)<0){break a}e=H[a+4>>2];f=H[a>>2];g=e-f|0;d:{if((d|0)<=0&c>>>0<=g>>>0|(d|0)<0){break d}if(c>>>0>g>>>0){d=c-g|0;h=H[a+8>>2];if(d>>>0<=h-e>>>0){i=a,j=ra(e,0,d)+d|0,H[i+4>>2]=j;break d}if((c|0)<0){break b}e=h-f|0;h=e<<1;e=e>>>0>=1073741823?2147483647:c>>>0>>0?h:c;h=pa(e);ra(h+g|0,0,d);d=va(h,f,g);H[a+8>>2]=d+e;H[a+4>>2]=c+d;H[a>>2]=d;if(!f){break d}oa(f);break d}if(c>>>0>=g>>>0){break d}H[a+4>>2]=c+f}if(!c){break c}va(H[a>>2],b,c)}b=H[a+28>>2];c=H[a+24>>2]+1|0;b=c?b:b+1|0;H[a+24>>2]=c;H[a+28>>2]=b;g=1;break a}sa();v()}return g}function Jh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;k=H[a+12>>2];c=H[a+68>>2];d=H[c+80>>2];F[b+84|0]=0;n=b+68|0;i=H[b+68>>2];e=H[b+72>>2]-i>>2;a:{if(e>>>0>>0){qb(n,d-e|0,12372);c=H[a+68>>2];d=H[c+80>>2];break a}if(d>>>0>=e>>>0){break a}H[b+72>>2]=i+(d<<2)}b=H[c+100>>2];e=H[c+96>>2];i=(b-e|0)/12|0;m=1;b:{if((b|0)==(e|0)){break b}k=H[k+28>>2];f=H[k>>2];if((f|0)==-1){return 0}o=i>>>0<=1?1:i;c=e;b=0;m=0;while(1){g=H[c>>2];if(g>>>0>=d>>>0){break b}j=H[H[a+72>>2]+12>>2];h=H[j+(f<<2)>>2];if(h>>>0>=d>>>0){break b}f=H[n>>2];H[f+(g<<2)>>2]=h;g=k+(l<<2)|0;h=H[g+4>>2];if((h|0)==-1){break b}l=H[c+4>>2];if(l>>>0>=d>>>0){break b}h=H[(h<<2)+j>>2];if(h>>>0>=d>>>0){break b}H[f+(l<<2)>>2]=h;g=H[g+8>>2];if((g|0)==-1){break b}c=H[c+8>>2];if(c>>>0>=d>>>0){break b}j=H[(g<<2)+j>>2];if(j>>>0>=d>>>0){break b}H[f+(c<<2)>>2]=j;b=b+1|0;m=i>>>0<=b>>>0;if((b|0)==(o|0)){break b}c=e+N(b,12)|0;l=N(b,3);f=H[k+(l<<2)>>2];if((f|0)!=-1){continue}break}}return m|0}function Gh(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;h=H[d+80>>2];e=ca-48|0;ca=e;a=H[a+4>>2];m=a-2|0;a:{if(m>>>0>28){break a}j=H[H[d>>2]>>2]+H[d+48>>2]|0;H[e+16>>2]=a;a=-1<>2]=a^-1;a=-2-a|0;H[e+24>>2]=a;H[e+32>>2]=(a|0)/2;L[e+28>>2]=O(2)/O(a|0);f=H[c>>2];if((f|0)!=H[c+4>>2]){a=0;d=0;while(1){g=H[(d<<2)+f>>2];h=e+36|0;k=H[H[b>>2]>>2];l=H[b+48>>2];f=H[b+40>>2];i=H[b+44>>2];if(!I[b+84|0]){g=H[H[b+68>>2]+(g<<2)>>2]}g=Rj(f,i,g,0);i=g;g=g+l|0;qa(h,g+k|0,f);he(e+16|0,h,e+12|0,e+8|0);f=a<<2;H[f+j>>2]=H[e+12>>2];H[(f|4)+j>>2]=H[e+8>>2];a=a+2|0;d=d+1|0;f=H[c>>2];if(d>>>0>2]-f>>2>>>0){continue}break}break a}if(!h){break a}d=0;a=0;while(1){k=e+36|0;l=H[H[b>>2]>>2];i=H[b+48>>2];c=H[b+40>>2];f=Rj(c,H[b+44>>2],I[b+84|0]?a:H[H[b+68>>2]+(a<<2)>>2],0);g=f;f=f+i|0;qa(k,f+l|0,c);he(e+16|0,k,e+12|0,e+8|0);c=d<<2;H[c+j>>2]=H[e+12>>2];H[(c|4)+j>>2]=H[e+8>>2];d=d+2|0;a=a+1|0;if((h|0)!=(a|0)){continue}break}}ca=e+48|0;return m>>>0<29|0}function Re(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=O(0),j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;k=ca-16|0;ca=k;if(H[c+28>>2]==9){d=H[a+4>>2];h=I[c+24|0];e=h<<2;f=pa(e);l=k+8|0;H[l>>2]=1065353216;i=L[a+20>>2];d=-1<0){L[l>>2]=i/O(d|0)}o=(d|0)>0;a:{if(!o){break a}j=H[c+80>>2];if(!j){break a}if(h){p=H[H[b>>2]>>2]+H[b+48>>2]|0;t=h&254;u=h&1;b=0;while(1){m=H[a+8>>2];i=L[l>>2];d=0;n=0;if((h|0)!=1){while(1){g=d<<2;q=(b<<2)+p|0;L[g+f>>2]=O(i*O(H[q>>2]))+L[g+m>>2];g=g|4;L[g+f>>2]=O(i*O(H[q+4>>2]))+L[g+m>>2];d=d+2|0;b=b+2|0;n=n+2|0;if((t|0)!=(n|0)){continue}break}}if(u){d=d<<2;L[d+f>>2]=O(i*O(H[(b<<2)+p>>2]))+L[d+m>>2];b=b+1|0}qa(H[H[c+64>>2]>>2]+r|0,f,e);r=e+r|0;s=s+1|0;if((s|0)!=(j|0)){continue}break}break a}b=0;if((j|0)!=1){a=j&-2;d=0;while(1){qa(H[H[c+64>>2]>>2]+b|0,f,e);b=b+e|0;qa(b+H[H[c+64>>2]>>2]|0,f,e);b=b+e|0;d=d+2|0;if((a|0)!=(d|0)){continue}break}}if(!(j&1)){break a}qa(H[H[c+64>>2]>>2]+b|0,f,e)}oa(f)}ca=k+16|0;return o|0}function Xh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;c=H[a+12>>2];d=H[a+108>>2];e=H[d+80>>2];F[b+84|0]=0;m=b+68|0;h=H[b+68>>2];f=H[b+72>>2]-h>>2;a:{if(f>>>0>>0){qb(m,e-f|0,12372);d=H[a+108>>2];e=H[d+80>>2];break a}if(e>>>0>=f>>>0){break a}H[b+72>>2]=h+(e<<2)}b=H[d+100>>2];f=H[d+96>>2];h=(b-f|0)/12|0;k=1;b:{if((b|0)==(f|0)){break b}n=h>>>0<=1?1:h;o=H[c>>2];c=0;d=f;b=0;k=0;while(1){c=(c<<2)+o|0;i=H[c>>2];if((i|0)==-1){break b}g=H[d>>2];if(g>>>0>=e>>>0){break b}l=H[H[a+112>>2]+12>>2];j=H[l+(i<<2)>>2];if(j>>>0>=e>>>0){break b}i=H[m>>2];H[i+(g<<2)>>2]=j;g=H[c+4>>2];if((g|0)==-1){break b}j=H[d+4>>2];if(j>>>0>=e>>>0){break b}g=H[(g<<2)+l>>2];if(g>>>0>=e>>>0){break b}H[i+(j<<2)>>2]=g;c=H[c+8>>2];if((c|0)==-1){break b}d=H[d+8>>2];if(d>>>0>=e>>>0){break b}c=H[(c<<2)+l>>2];if(c>>>0>=e>>>0){break b}H[i+(d<<2)>>2]=c;b=b+1|0;k=h>>>0<=b>>>0;if((b|0)==(n|0)){break b}c=N(b,3);d=f+N(b,12)|0;if((b|0)!=1431655765){continue}break}}return k|0}function Ph(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;c=H[a+12>>2];d=H[a+68>>2];e=H[d+80>>2];F[b+84|0]=0;m=b+68|0;h=H[b+68>>2];f=H[b+72>>2]-h>>2;a:{if(f>>>0>>0){qb(m,e-f|0,12372);d=H[a+68>>2];e=H[d+80>>2];break a}if(e>>>0>=f>>>0){break a}H[b+72>>2]=h+(e<<2)}b=H[d+100>>2];f=H[d+96>>2];h=(b-f|0)/12|0;k=1;b:{if((b|0)==(f|0)){break b}n=h>>>0<=1?1:h;o=H[c>>2];c=0;d=f;b=0;k=0;while(1){c=(c<<2)+o|0;i=H[c>>2];if((i|0)==-1){break b}g=H[d>>2];if(g>>>0>=e>>>0){break b}l=H[H[a+72>>2]+12>>2];j=H[l+(i<<2)>>2];if(j>>>0>=e>>>0){break b}i=H[m>>2];H[i+(g<<2)>>2]=j;g=H[c+4>>2];if((g|0)==-1){break b}j=H[d+4>>2];if(j>>>0>=e>>>0){break b}g=H[(g<<2)+l>>2];if(g>>>0>=e>>>0){break b}H[i+(j<<2)>>2]=g;c=H[c+8>>2];if((c|0)==-1){break b}d=H[d+8>>2];if(d>>>0>=e>>>0){break b}c=H[(c<<2)+l>>2];if(c>>>0>=e>>>0){break b}H[i+(d<<2)>>2]=c;b=b+1|0;k=h>>>0<=b>>>0;if((b|0)==(n|0)){break b}c=N(b,3);d=f+N(b,12)|0;if((b|0)!=1431655765){continue}break}}return k|0}function Wa(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;d=ca-16|0;ca=d;a:{f=H[a+4>>2];b:{if(f>>>0>>0){e=b-f|0;c=H[a+8>>2];g=c<<5;c:{if(!(e>>>0>g>>>0|f>>>0>g-e>>>0)){H[a+4>>2]=b;h=f&31;b=H[a>>2]+(f>>>3&536870908)|0;break c}H[d+8>>2]=0;H[d>>2]=0;H[d+4>>2]=0;if((b|0)<0){break a}if(g>>>0<=1073741822){c=c<<6;b=b+31&-32;b=b>>>0>>0?c:b}else{b=2147483647}pb(d,b);f=H[a+4>>2];H[d+4>>2]=f+e;i=H[a>>2];b=H[d>>2];d:{if((f|0)<=0){break d}c=f>>>5|0;if(f>>>0>=32){va(b,i,c<<2)}g=c<<2;b=g+b|0;h=f&31;if(h){c=-1>>>32-h|0;H[b>>2]=H[b>>2]&(c^-1)|H[i+g>>2]&c}i=H[a>>2]}H[a>>2]=H[d>>2];H[d>>2]=i;c=H[a+4>>2];H[a+4>>2]=H[d+4>>2];H[d+4>>2]=c;c=H[a+8>>2];H[a+8>>2]=H[d+8>>2];H[d+8>>2]=c;if(!i){break c}oa(i)}if(!e){break b}if(h){c=32-h|0;a=c>>>0>>0?c:e;H[b>>2]=H[b>>2]&(-1<>>c-a^-1);e=e-a|0;b=b+4|0}a=e>>>5|0;if(e>>>0>=32){ra(b,0,a<<2)}if((e&-32)==(e|0)){break b}a=(a<<2)+b|0;H[a>>2]=H[a>>2]&(-1>>>32-(e&31)^-1);break b}H[a+4>>2]=b}ca=d+16|0;return}sa();v()}function Je(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;e=H[a+12>>2];i=H[a+8>>2];d=e-i>>2;b=I[b+24|0];a:{if(d>>>0>>0){ya(a+8|0,b-d|0);i=H[a+8>>2];e=H[a+12>>2];break a}if(b>>>0>=d>>>0){break a}e=(b<<2)+i|0;H[a+12>>2]=e}b=0;f=H[c+8>>2];h=H[c+12>>2];j=H[c+20>>2];e=e-i|0;d=H[c+16>>2];g=e+d|0;j=e>>>0>g>>>0?j+1|0:j;b:{if(f>>>0>>0&(h|0)<=(j|0)|(h|0)<(j|0)){break b}qa(i,d+H[c>>2]|0,e);d=H[c+20>>2];g=e;e=e+H[c+16>>2]|0;d=g>>>0>e>>>0?d+1|0:d;H[c+16>>2]=e;H[c+20>>2]=d;f=H[c+8>>2];h=H[c+12>>2];g=e+4|0;d=g>>>0<4?d+1|0:d;if(f>>>0>>0&(d|0)>=(h|0)|(d|0)>(h|0)){break b}d=e+H[c>>2]|0;H[a+20>>2]=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);d=H[c+20>>2];g=d;f=d;e=H[c+16>>2];d=e+4|0;f=d>>>0<4?f+1|0:f;H[c+16>>2]=d;H[c+20>>2]=f;h=H[c+12>>2];if((f|0)>=(h|0)&d>>>0>=K[c+8>>2]|(f|0)>(h|0)){break b}f=I[d+H[c>>2]|0];d=g;e=e+5|0;d=e>>>0<5?d+1|0:d;H[c+16>>2]=e;H[c+20>>2]=d;if(f-1>>>0>29){break b}H[a+4>>2]=f;b=1}return b|0}function qd(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;a:{f=H[a+4>>2];b:{if((f|0)!=H[a>>2]){c=f;break b}g=H[a+8>>2];c=H[a+12>>2];if(g>>>0>>0){e=((c-g>>2)+1|0)/2<<2;c=e+g|0;if((f|0)!=(g|0)){d=g-f|0;c=c-d|0;va(c,f,d);f=H[a+8>>2]}H[a+4>>2]=c;H[a+8>>2]=e+f;break b}d=(c|0)==(f|0)?1:c-f>>1;if(d>>>0>=1073741824){break a}c=d<<2;i=pa(c);k=i+c|0;c=(d+3&-4)+i|0;h=c;c:{if((f|0)==(g|0)){break c}g=g-f|0;l=g&-4;e=c;d=f;j=g-4|0;g=(j>>>2|0)+1&7;if(g){h=0;while(1){H[e>>2]=H[d>>2];d=d+4|0;e=e+4|0;h=h+1|0;if((g|0)!=(h|0)){continue}break}}h=c+l|0;if(j>>>0<28){break c}while(1){H[e>>2]=H[d>>2];H[e+4>>2]=H[d+4>>2];H[e+8>>2]=H[d+8>>2];H[e+12>>2]=H[d+12>>2];H[e+16>>2]=H[d+16>>2];H[e+20>>2]=H[d+20>>2];H[e+24>>2]=H[d+24>>2];H[e+28>>2]=H[d+28>>2];d=d+32|0;e=e+32|0;if((h|0)!=(e|0)){continue}break}}H[a+12>>2]=k;H[a+8>>2]=h;H[a+4>>2]=c;H[a>>2]=i;if(!f){break b}oa(f);c=H[a+4>>2]}H[c-4>>2]=H[b>>2];H[a+4>>2]=H[a+4>>2]-4;return}wa();v()}function sb(a,b){var c=0;a:{if(!ta(a,b)){break a}if(!ta(a+16|0,b)){break a}if(!ta(a+32|0,b)){break a}if(!ta(a+48|0,b)){break a}if(!ta(a- -64|0,b)){break a}if(!ta(a+80|0,b)){break a}if(!ta(a+96|0,b)){break a}if(!ta(a+112|0,b)){break a}if(!ta(a+128|0,b)){break a}if(!ta(a+144|0,b)){break a}if(!ta(a+160|0,b)){break a}if(!ta(a+176|0,b)){break a}if(!ta(a+192|0,b)){break a}if(!ta(a+208|0,b)){break a}if(!ta(a+224|0,b)){break a}if(!ta(a+240|0,b)){break a}if(!ta(a+256|0,b)){break a}if(!ta(a+272|0,b)){break a}if(!ta(a+288|0,b)){break a}if(!ta(a+304|0,b)){break a}if(!ta(a+320|0,b)){break a}if(!ta(a+336|0,b)){break a}if(!ta(a+352|0,b)){break a}if(!ta(a+368|0,b)){break a}if(!ta(a+384|0,b)){break a}if(!ta(a+400|0,b)){break a}if(!ta(a+416|0,b)){break a}if(!ta(a+432|0,b)){break a}if(!ta(a+448|0,b)){break a}if(!ta(a+464|0,b)){break a}if(!ta(a+480|0,b)){break a}if(!ta(a+496|0,b)){break a}c=ta(a+512|0,b)}return c}function qf(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;a:{if(!ke(a,b)){break a}h=a+36|0;g=ea[H[H[a>>2]+24>>2]](a)|0;e=H[a+40>>2];d=H[a+36>>2];c=e-d>>2;b:{if(g>>>0>c>>>0){Vb(h,g-c|0);break b}if(c>>>0<=g>>>0){break b}d=d+(g<<2)|0;if((d|0)!=(e|0)){while(1){e=e-4|0;c=H[e>>2];H[e>>2]=0;if(c){ea[H[H[c>>2]+4>>2]](c)}if((d|0)!=(e|0)){continue}break}}H[a+40>>2]=d}c=1;if((g|0)<=0){break a}e=0;while(1){c:{c=H[b+20>>2];f=H[b+12>>2];d=H[b+16>>2];if((c|0)>=(f|0)&d>>>0>=K[b+8>>2]|(c|0)>(f|0)){break c}f=I[H[b>>2]+d|0];d=d+1|0;c=d?c:c+1|0;H[b+16>>2]=d;H[b+20>>2]=c;d=ea[H[H[a>>2]+48>>2]](a,f)|0;f=e<<2;i=f+H[a+36>>2]|0;c=H[i>>2];H[i>>2]=d;if(c){ea[H[H[c>>2]+4>>2]](c)}c=H[H[h>>2]+f>>2];if(!c){break c}if(!(k=c,l=ea[H[H[a>>2]+28>>2]](a)|0,m=ea[H[H[a>>2]+20>>2]](a,e)|0,j=H[H[c>>2]+8>>2],ea[j](k|0,l|0,m|0)|0)){break c}c=1;e=e+1|0;if((g|0)!=(e|0)){continue}break a}break}c=0}return c|0}function he(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;j=+L[b>>2];k=+L[b+4>>2];l=+L[b+8>>2];g=P(j)+P(k)+P(l);a:{if(!(g>1e-6)){j=1;k=0;e=0;break a}g=1/g;k=g*k;j=g*j;e=g*l<0}h=H[a+16>>2];l=+(h|0);g=T(j*l+.5);b:{if(P(g)<2147483648){m=~~g;break b}m=-2147483648}f=m>>31;i=(f^m)-f|0;g=T(k*l+.5);c:{if(P(g)<2147483648){f=~~g;break c}f=-2147483648}b=f>>31;b=h-(i+((f^b)-b|0)|0)|0;i=(b|0)>0?b:0;e=e?0-i|0:i;f=f+(b>>31&((f|0)>0?b:0-b|0))|0;d:{if((m|0)>=0){b=e+h|0;a=H[a+8>>2];e=h+f|0;break d}b=f>>31;b=(b^f)-b|0;a=H[a+8>>2];b=(e|0)<0?b:a-b|0;e=(f|0)<0?i:a-i|0}e:{if(!(b|e)){b=a;break e}if(!((a|0)!=(b|0)|e)){b=a;break e}if(!((a|0)!=(e|0)|b)){b=a;break e}if(!((b|0)<=(h|0)|e)){b=(h<<1)-b|0;a=0;break e}if(!((a|0)!=(e|0)|(b|0)>=(h|0))){b=(h<<1)-b|0;break e}if(!((a|0)!=(b|0)|(e|0)>=(h|0))){b=a;a=(h<<1)-e|0;break e}if(b){a=e;break e}b=0;if((e|0)<=(h|0)){a=e;break e}a=(h<<1)-e|0}H[c>>2]=a;H[d>>2]=b}function Ve(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;g=H[b+8>>2];h=H[b+12>>2];c=H[b+20>>2];i=c;k=H[b+16>>2];d=k+4|0;c=d>>>0<4?c+1|0:c;a:{if(d>>>0>g>>>0&(c|0)>=(h|0)|(c|0)>(h|0)){break a}l=H[b>>2];f=k+l|0;e=I[f|0]|I[f+1|0]<<8|(I[f+2|0]<<16|I[f+3|0]<<24);H[b+16>>2]=d;H[b+20>>2]=c;c=i;f=k+8|0;c=f>>>0<8?c+1|0:c;if(f>>>0>g>>>0&(c|0)>=(h|0)|(c|0)>(h|0)){break a}d=d+l|0;j=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);H[b+16>>2]=f;H[b+20>>2]=c;if((e|0)>(j|0)){break a}H[a+16>>2]=j;H[a+12>>2]=e;d=j-e|0;e=(j>>31)-((e>>31)+(e>>>0>j>>>0)|0)|0;if(!e&d>>>0>2147483646|e){break a}d=d+1|0;H[a+20>>2]=d;e=d>>>1|0;H[a+24>>2]=e;H[a+28>>2]=0-e;if(!(d&1)){H[a+24>>2]=e-1}if(J[b+38>>1]<=513){if((c|0)>=(h|0)&f>>>0>=g>>>0|(c|0)>(h|0)){break a}g=I[f+l|0];c=i;i=k+9|0;c=i>>>0<9?c+1|0:c;H[b+16>>2]=i;H[b+20>>2]=c;if(g>>>0>1){break a}H[a+88>>2]=g}m=ta(a+112|0,b)}return m|0}function Hc(a,b){var c=0,d=0,e=0,f=0,g=0,h=0;g=H[a>>2];c=g+(b>>>3&536870908)|0;H[c>>2]=H[c>>2]|1<>2];e=(b|0)==-1;d=-1;a:{if(e){break a}c=b+1|0;c=(c>>>0)%3|0?c:b-2|0;d=-1;if((c|0)==-1){break a}d=H[H[f>>2]+(c<<2)>>2]}c=H[a+12>>2];h=(d>>>3&536870908)+c|0;H[h>>2]=H[h>>2]|1<>>0)%3|0){e=b-1|0;break e}e=b+2|0;d=-1;if((e|0)==-1){break d}}d=H[H[f>>2]+(e<<2)>>2]}e=(d>>>3&536870908)+c|0;H[e>>2]=H[e>>2]|1<>2]+(b<<2)>>2];if((b|0)==-1){break b}F[a+24|0]=0;a=(b>>>3&536870908)+g|0;H[a>>2]=H[a>>2]|1<>>0)%3|0?a:b-2|0;if((a|0)!=-1){d=H[H[f>>2]+(a<<2)>>2]}a=c+(d>>>3&536870908)|0;H[a>>2]=H[a>>2]|1<>>0)%3|0){b=b-1|0;break g}b=b+2|0;a=-1;if((b|0)==-1){break f}}a=H[H[f>>2]+(b<<2)>>2]}b=1<>>3&536870908)|0;c=H[a>>2];break c}a=c+536870908|0;b=H[c+536870908>>2];c=-2147483648}H[a>>2]=b|c}}function Fd(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=O(0),f=O(0),g=O(0),h=O(0),i=O(0),j=0,k=O(0),l=O(0),m=O(0),n=O(0),o=0;a:{if(H[c+28>>2]!=9|I[c+24|0]!=3){break a}a=H[a+4>>2];if(a-2>>>0>28){break a}o=1;j=H[c+80>>2];if(!j){break a}k=O(O(2)/O((1<>2]>>2]+H[c+48>>2]|0;a=H[H[b>>2]>>2]+H[b+48>>2]|0;b=0;while(1){g=O(0);l=O(0);m=O(0);e=O(O(O(H[a>>2])*k)+O(-1));f=O(O(O(H[a+4>>2])*k)+O(-1));i=O(O(O(1)-O(P(e)))-O(P(f)));h=O(S(O(-i),O(0)));n=O(-h);f=O(f+(f>>8;F[c+10|0]=d>>>16;F[c+11|0]=d>>>24;d=(w(l),y(2));F[c+4|0]=d;F[c+5|0]=d>>>8;F[c+6|0]=d>>>16;F[c+7|0]=d>>>24;d=(w(g),y(2));F[c|0]=d;F[c+1|0]=d>>>8;F[c+2|0]=d>>>16;F[c+3|0]=d>>>24;c=c+12|0;b=b+1|0;if((j|0)!=(b|0)){continue}break}}return o|0}function Vd(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0;a:{if(b>>>0<=63){b=0;a=H[a+12>>2];if(a>>>0<2){break a}b=a-1|0;e=b&3;d=H[c>>2];c=0;b:{if(a-2>>>0<3){a=1;b=0;break b}f=b&-4;b=0;a=1;while(1){g=a+3|0;h=a+2|0;i=a+1|0;b=K[d+(b<<2)>>2]>K[d+(a<<2)>>2]?a:b;b=K[d+(b<<2)>>2]>K[d+(i<<2)>>2]?i:b;b=K[d+(b<<2)>>2]>K[d+(h<<2)>>2]?h:b;b=K[d+(b<<2)>>2]>K[d+(g<<2)>>2]?g:b;a=a+4|0;j=j+4|0;if((f|0)!=(j|0)){continue}break}}if(!e){break a}while(1){b=K[d+(b<<2)>>2]>K[d+(a<<2)>>2]?a:b;a=a+1|0;c=c+1|0;if((e|0)!=(c|0)){continue}break}break a}b=H[a+580>>2];d=32-b|0;if((d|0)>=4){c=H[a+576>>2];if((c|0)==H[a+568>>2]){return 0}d=H[c>>2];e=b+4|0;H[a+580>>2]=e;b=d<>>28|0;if((e|0)!=32){break a}H[a+580>>2]=0;H[a+576>>2]=c+4;return b}c=H[a+576>>2];e=c+4|0;if((e|0)==H[a+568>>2]){return 0}f=H[c>>2];H[a+576>>2]=e;H[a+580>>2]=b-28;a=60-b|0;b=H[c+4>>2]>>>a|f<>>a-d}return b}function Ae(a){a=a|0;var b=0,c=0,d=0,e=0;H[a>>2]=11436;b=H[a+388>>2];if(b){H[a+392>>2]=b;oa(b)}d=H[a+368>>2];H[a+368>>2]=0;if(d){e=d-4|0;b=H[e>>2];if(b){c=(b<<4)+d|0;while(1){c=c-16|0;if((d|0)!=(c|0)){continue}break}}oa(e)}Yc(a+216|0);b=H[a+196>>2];if(b){H[a+200>>2]=b;oa(b)}b=H[a+184>>2];if(b){H[a+188>>2]=b;oa(b)}b=H[a+172>>2];if(b){H[a+176>>2]=b;oa(b)}b=H[a+160>>2];if(b){H[a+164>>2]=b;oa(b)}c=H[a+144>>2];if(c){while(1){b=H[c>>2];oa(c);c=b;if(b){continue}break}}b=H[a+136>>2];H[a+136>>2]=0;if(b){oa(b)}b=H[a+120>>2];if(b){oa(b)}b=H[a+108>>2];if(b){oa(b)}b=H[a+96>>2];if(b){oa(b)}b=H[a+72>>2];if(b){H[a+76>>2]=b;oa(b)}b=H[a+60>>2];if(b){oa(b)}b=H[a+48>>2];if(b){H[a+52>>2]=b;oa(b)}b=H[a+36>>2];if(b){H[a+40>>2]=b;oa(b)}b=H[a+24>>2];if(b){H[a+28>>2]=b;oa(b)}b=H[a+12>>2];if(b){H[a+16>>2]=b;oa(b)}b=H[a+8>>2];H[a+8>>2]=0;if(b){cb(b)}return a|0}function Sg(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;a:{a=ca-32|0;ca=a;e=Ma(c);if(e>>>0<2147483632){b:{c:{if(e>>>0>=11){g=(e|15)+1|0;f=pa(g);H[a+24>>2]=g|-2147483648;H[a+16>>2]=f;H[a+20>>2]=e;g=e+f|0;break c}F[a+27|0]=e;f=a+16|0;g=e+f|0;if(!e){break b}}qa(f,c,e)}F[g|0]=0;H[a+8>>2]=0;H[a>>2]=0;H[a+4>>2]=0;d:{c=nb(b,a+16|0);if((c|0)==(b+4|0)){break d}b=H[c+28>>2];e=H[c+32>>2];if((b|0)==(e|0)){break d}b=e-b|0;if(b&3){break d}e=b>>>2|0;f=H[a+4>>2];b=H[a>>2];g=f-b>>2;e:{if(e>>>0>g>>>0){ya(a,e-g|0);b=H[a>>2];f=H[a+4>>2];break e}if(e>>>0>=g>>>0){break e}f=(e<<2)+b|0;H[a+4>>2]=f}if((b|0)!=(f|0)){e=b;b=H[c+28>>2];qa(e,b,H[c+32>>2]-b|0);break d}Ca();v()}b=H[d>>2];if(b){H[d+4>>2]=b;oa(b)}H[d>>2]=H[a>>2];H[d+4>>2]=H[a+4>>2];H[d+8>>2]=H[a+8>>2];if(F[a+27|0]<0){oa(H[a+16>>2])}ca=a+32|0;break a}Na();v()}}function Be(a){a=a|0;var b=0,c=0,d=0,e=0;H[a>>2]=11384;d=H[a+368>>2];H[a+368>>2]=0;if(d){e=d-4|0;b=H[e>>2];if(b){c=(b<<4)+d|0;while(1){c=c-16|0;if((d|0)!=(c|0)){continue}break}}oa(e)}Yc(a+216|0);b=H[a+196>>2];if(b){H[a+200>>2]=b;oa(b)}b=H[a+184>>2];if(b){H[a+188>>2]=b;oa(b)}b=H[a+172>>2];if(b){H[a+176>>2]=b;oa(b)}b=H[a+160>>2];if(b){H[a+164>>2]=b;oa(b)}c=H[a+144>>2];if(c){while(1){b=H[c>>2];oa(c);c=b;if(b){continue}break}}b=H[a+136>>2];H[a+136>>2]=0;if(b){oa(b)}b=H[a+120>>2];if(b){oa(b)}b=H[a+108>>2];if(b){oa(b)}b=H[a+96>>2];if(b){oa(b)}b=H[a+72>>2];if(b){H[a+76>>2]=b;oa(b)}b=H[a+60>>2];if(b){oa(b)}b=H[a+48>>2];if(b){H[a+52>>2]=b;oa(b)}b=H[a+36>>2];if(b){H[a+40>>2]=b;oa(b)}b=H[a+24>>2];if(b){H[a+28>>2]=b;oa(b)}b=H[a+12>>2];if(b){H[a+16>>2]=b;oa(b)}b=H[a+8>>2];H[a+8>>2]=0;if(b){cb(b)}return a|0}function Ug(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;d=ca-16|0;ca=d;a:{e=Ma(c);if(e>>>0<2147483632){b:{c:{if(e>>>0>=11){f=(e|15)+1|0;a=pa(f);H[d+8>>2]=f|-2147483648;H[d>>2]=a;H[d+4>>2]=e;f=a+e|0;break c}F[d+11|0]=e;f=d+e|0;a=d;if(!e){break b}}qa(a,c,e)}F[f|0]=0;c=I[d+11|0];e=c<<24>>24;b=H[b+4>>2];a=0;d:{if(!b){break d}a=c;c=(e|0)<0;a=c?H[d+4>>2]:a;f=c?H[d>>2]:d;while(1){c=I[b+27|0];g=c<<24>>24<0;c=g?H[b+20>>2]:c;i=c>>>0>>0;e:{f:{g:{h:{i:{j:{h=i?c:a;if(h){g=g?H[b+16>>2]:b+16|0;j=Fa(f,g,h);if(j){break j}if(a>>>0>=c>>>0){break i}break e}if(a>>>0>=c>>>0){break h}break e}if((j|0)<0){break e}}c=Fa(g,f,h);if(c){break g}}if(i){break f}a=1;break d}if((c|0)<0){break f}a=1;break d}b=b+4|0}b=H[b>>2];if(b){continue}break}a=0}if((e|0)<0){oa(H[d>>2])}ca=d+16|0;break a}Na();v()}return a|0}function fd(a,b){var c=0,d=0;c=H[b+8>>2];H[a+4>>2]=H[b+4>>2];H[a+8>>2]=c;H[a+20>>2]=H[b+20>>2];c=H[b+16>>2];H[a+12>>2]=H[b+12>>2];H[a+16>>2]=c;a:{b:{if((a|0)!=(b|0)){c=H[b+28>>2];if(c){d=H[a+24>>2];if(H[a+32>>2]<<5>>>0>>0){if(d){oa(d);H[a+32>>2]=0;H[a+24>>2]=0;H[a+28>>2]=0;c=H[b+28>>2]}if((c|0)<0){break b}c=(c-1>>>5|0)+1|0;d=pa(c<<2);H[a+32>>2]=c;H[a+28>>2]=0;H[a+24>>2]=d;c=H[b+28>>2]}va(d,H[b+24>>2],(c-1>>>3&536870908)+4|0);c=H[b+28>>2]}else{c=0}H[a+28>>2]=c;c=H[b+40>>2];if(c){d=H[a+36>>2];if(H[a+44>>2]<<5>>>0>>0){if(d){oa(d);H[a+44>>2]=0;H[a+36>>2]=0;H[a+40>>2]=0;c=H[b+40>>2]}if((c|0)<0){break a}c=(c-1>>>5|0)+1|0;d=pa(c<<2);H[a+44>>2]=c;H[a+40>>2]=0;H[a+36>>2]=d;c=H[b+40>>2]}va(d,H[b+36>>2],(c-1>>>3&536870908)+4|0);b=H[b+40>>2]}else{b=0}H[a+40>>2]=b}return}sa();v()}sa();v()}function uc(a){var b=0,c=0,d=0;b=H[a+8>>2];d=H[a>>2];a:{if(I[a+12|0]){b:{c:{d:{e:{if((b|0)==-1){break e}c=b+1|0;b=(c>>>0)%3|0?c:b-2|0;if((b|0)==-1){break e}b=H[H[d+12>>2]+(b<<2)>>2];if((b|0)!=-1){break d}}H[a+8>>2]=-1;break c}c=b+1|0;b=(c>>>0)%3|0?c:b-2|0;H[a+8>>2]=b;if((b|0)!=-1){break b}}c=H[a+4>>2];b=-1;f:{if((c|0)==-1){break f}g:{if((c>>>0)%3|0){c=c-1|0;break g}c=c+2|0;b=-1;if((c|0)==-1){break f}}c=H[H[d+12>>2]+(c<<2)>>2];b=-1;if((c|0)==-1){break f}b=c-1|0;if((c>>>0)%3|0){break f}b=c+2|0}F[a+12|0]=0;H[a+8>>2]=b;return}if((b|0)!=H[a+4>>2]){break a}H[a+8>>2]=-1;return}c=-1;h:{if((b|0)==-1){break h}i:{if((b>>>0)%3|0){b=b-1|0;break i}b=b+2|0;c=-1;if((b|0)==-1){break h}}b=H[H[d+12>>2]+(b<<2)>>2];c=-1;if((b|0)==-1){break h}c=b-1|0;if((b>>>0)%3|0){break h}c=b+2|0}H[a+8>>2]=c}}function Rf(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;f=ca-32|0;ca=f;d=H[a+28>>2];H[f+16>>2]=d;g=H[a+20>>2];H[f+28>>2]=c;H[f+24>>2]=b;b=g-d|0;H[f+20>>2]=b;g=b+c|0;i=2;a:{b:{b=f+16|0;d=Z(H[a+60>>2],b|0,2,f+12|0)|0;if(d){H[3992]=d;d=-1}else{d=0}c:{d:{if(d){d=b;break d}while(1){e=H[f+12>>2];if((e|0)==(g|0)){break c}if((e|0)<0){d=b;break b}h=H[b+4>>2];j=h>>>0>>0;d=(j<<3)+b|0;h=e-(j?h:0)|0;H[d>>2]=h+H[d>>2];b=(j?12:4)+b|0;H[b>>2]=H[b>>2]-h;g=g-e|0;b=d;i=i-j|0;e=Z(H[a+60>>2],b|0,i|0,f+12|0)|0;if(e){H[3992]=e;e=-1}else{e=0}if(!e){continue}break}}if((g|0)!=-1){break b}}b=H[a+44>>2];H[a+28>>2]=b;H[a+20>>2]=b;H[a+16>>2]=b+H[a+48>>2];a=c;break a}H[a+28>>2]=0;H[a+16>>2]=0;H[a+20>>2]=0;H[a>>2]=H[a>>2]|32;a=0;if((i|0)==2){break a}a=c-H[d+4>>2]|0}ca=f+32|0;return a|0}function Ih(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0;e=H[a+4>>2];d=H[e>>2];a:{b=H[a+12>>2];c=H[b+56>>2]-H[b+52>>2]|0;f=c>>2;b:{if(f>>>0<=H[e+8>>2]-d>>2>>>0){break b}if((c|0)<0){break a}b=H[e+4>>2];c=pa(c);f=c+(f<<2)|0;g=c+(b-d&-4)|0;c=g;if((b|0)!=(d|0)){while(1){c=c-4|0;b=b-4|0;H[c>>2]=H[b>>2];if((b|0)!=(d|0)){continue}break}}H[e+8>>2]=f;H[e+4>>2]=g;H[e>>2]=c;if(!d){break b}oa(d)}e=a+8|0;b=H[a+76>>2];c:{if(b){d=H[b>>2];if((d|0)==H[b+4>>2]){return 1}b=0;while(1){c=we(e,H[(b<<2)+d>>2]);if(!c){break c}f=H[a+76>>2];d=H[f>>2];b=b+1|0;if(b>>>0>2]-d>>2>>>0){continue}break}break c}c=1;a=H[H[a+12>>2]+64>>2];a=H[a+4>>2]-H[a>>2]|0;if(a>>>0<12){break c}a=(a>>2>>>0)/3|0;b=0;while(1){c=we(e,N(b,3));if(!c){break c}b=b+1|0;if((a|0)!=(b|0)){continue}break}}return c|0}sa();v()}function ff(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;h=H[c+12>>2];f=h;e=H[c+20>>2];j=H[c+8>>2];g=H[c+16>>2];a:{if((f|0)<=(e|0)&j>>>0<=g>>>0|(e|0)>(f|0)){break a}k=H[c>>2];i=F[k+g|0];d=e;f=g+1|0;d=f?d:d+1|0;H[c+16>>2]=f;H[c+20>>2]=d;if((i-7&255)>>>0<247){break a}b:{if((i|0)==-2){break b}if((d|0)>=(h|0)&f>>>0>=j>>>0|(d|0)>(h|0)){break a}d=F[f+k|0];g=g+2|0;e=g>>>0<2?e+1|0:e;H[c+16>>2]=g;H[c+20>>2]=e;if((d-4&255)>>>0<251){break a}e=ea[H[H[a>>2]+40>>2]](a,i,d)|0;d=H[a+20>>2];H[a+20>>2]=e;if(!d){break b}ea[H[H[d>>2]+4>>2]](d)}d=H[a+20>>2];if(d){if(!(ea[H[H[a>>2]+28>>2]](a,d)|0)){break a}}if(!(ea[H[H[a>>2]+36>>2]](a,b,c)|0)){break a}c=H[a+4>>2];if(!(!c|I[c+36|0]>1)){if(!(ea[H[H[a>>2]+48>>2]](a,H[b+4>>2]-H[b>>2]>>2)|0)){break a}}l=1}return l|0}function Oh(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0;e=H[a+4>>2];d=H[e>>2];a:{b=H[a+12>>2];c=H[b+28>>2]-H[b+24>>2]|0;f=c>>2;b:{if(f>>>0<=H[e+8>>2]-d>>2>>>0){break b}if((c|0)<0){break a}b=H[e+4>>2];c=pa(c);f=c+(f<<2)|0;g=c+(b-d&-4)|0;c=g;if((b|0)!=(d|0)){while(1){c=c-4|0;b=b-4|0;H[c>>2]=H[b>>2];if((b|0)!=(d|0)){continue}break}}H[e+8>>2]=f;H[e+4>>2]=g;H[e>>2]=c;if(!d){break b}oa(d)}e=a+8|0;b=H[a+76>>2];c:{if(b){d=H[b>>2];if((d|0)==H[b+4>>2]){return 1}b=0;while(1){c=xe(e,H[(b<<2)+d>>2]);if(!c){break c}f=H[a+76>>2];d=H[f>>2];b=b+1|0;if(b>>>0>2]-d>>2>>>0){continue}break}break c}c=1;a=H[a+12>>2];a=H[a+4>>2]-H[a>>2]|0;if(a>>>0<12){break c}a=(a>>2>>>0)/3|0;b=0;while(1){c=xe(e,N(b,3));if(!c){break c}b=b+1|0;if((a|0)!=(b|0)){continue}break}}return c|0}sa();v()}function Te(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;g=H[b+8>>2];h=H[b+12>>2];c=H[b+20>>2];i=c;e=H[b+16>>2];d=e+4|0;c=d>>>0<4?c+1|0:c;a:{if(d>>>0>g>>>0&(c|0)>=(h|0)|(c|0)>(h|0)){break a}j=H[b>>2];f=e+j|0;f=I[f|0]|I[f+1|0]<<8|(I[f+2|0]<<16|I[f+3|0]<<24);H[b+16>>2]=d;H[b+20>>2]=c;k=J[b+38>>1];if(k>>>0<=513){c=i;d=e+8|0;c=d>>>0<8?c+1|0:c;if(d>>>0>g>>>0&(c|0)>=(h|0)|(c|0)>(h|0)){break a}H[b+16>>2]=d;H[b+20>>2]=c}if(!(f&1)){break a}e=Q(f)^31;if(e-1>>>0>28){break a}H[a+8>>2]=e+1;i=-2<>2]=e;H[a+12>>2]=i^-1;H[a+24>>2]=e>>1;L[a+20>>2]=O(2)/O(e|0);if(k>>>0<=513){if((c|0)>=(h|0)&d>>>0>=g>>>0|(c|0)>(h|0)){break a}g=I[d+j|0];d=d+1|0;c=d?c:c+1|0;H[b+16>>2]=d;H[b+20>>2]=c;if(g>>>0>1){break a}H[a+72>>2]=g}l=ta(a+96|0,b)}return l|0}function Se(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;f=H[b+8>>2];g=H[b+12>>2];c=H[b+20>>2];h=c;i=H[b+16>>2];e=i+4|0;c=e>>>0<4?c+1|0:c;a:{if(e>>>0>f>>>0&(c|0)>=(g|0)|(c|0)>(g|0)){break a}j=H[b>>2];d=i+j|0;d=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);H[b+16>>2]=e;H[b+20>>2]=c;c=h;e=i+8|0;c=e>>>0<8?c+1|0:c;if(e>>>0>f>>>0&(c|0)>=(g|0)|(c|0)>(g|0)){break a}H[b+16>>2]=e;H[b+20>>2]=c;if(!(d&1)){break a}d=Q(d)^31;if(d-1>>>0>28){break a}H[a+8>>2]=d+1;k=-2<>2]=d;H[a+12>>2]=k^-1;H[a+24>>2]=d>>1;L[a+20>>2]=O(2)/O(d|0);if(J[b+38>>1]<=513){if((c|0)>=(g|0)&e>>>0>=f>>>0|(c|0)>(g|0)){break a}c=I[e+j|0];f=i+9|0;h=f>>>0<9?h+1|0:h;H[b+16>>2]=f;H[b+20>>2]=h;if(c>>>0>1){break a}H[a+72>>2]=c}l=ta(a+96|0,b)}return l|0} function va(a,b,c){var d=0,e=0;a:{if((a|0)==(b|0)){break a}e=a+c|0;if(b-e>>>0<=0-(c<<1)>>>0){return qa(a,b,c)}d=(a^b)&3;b:{c:{if(a>>>0>>0){if(d){d=a;break b}if(!(a&3)){d=a;break c}d=a;while(1){if(!c){break a}F[d|0]=I[b|0];b=b+1|0;c=c-1|0;d=d+1|0;if(d&3){continue}break}break c}d:{if(d){break d}if(e&3){while(1){if(!c){break a}c=c-1|0;d=c+a|0;F[d|0]=I[b+c|0];if(d&3){continue}break}}if(c>>>0<=3){break d}while(1){c=c-4|0;H[c+a>>2]=H[b+c>>2];if(c>>>0>3){continue}break}}if(!c){break a}while(1){c=c-1|0;F[c+a|0]=I[b+c|0];if(c){continue}break}break a}if(c>>>0<=3){break b}while(1){H[d>>2]=H[b>>2];b=b+4|0;d=d+4|0;c=c-4|0;if(c>>>0>3){continue}break}}if(!c){break a}while(1){F[d|0]=I[b|0];d=d+1|0;b=b+1|0;c=c-1|0;if(c){continue}break}}return a}function Vb(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;d=H[a+8>>2];c=H[a+4>>2];if(d-c>>2>>>0>=b>>>0){if(b){b=b<<2;c=ra(c,0,b)+b|0}H[a+4>>2]=c;return}a:{b:{c:{g=H[a>>2];f=c-g>>2;e=f+b|0;if(e>>>0<1073741824){d=d-g|0;h=d>>>1|0;e=d>>>0>=2147483644?1073741823:e>>>0>>0?h:e;if(e){if(e>>>0>=1073741824){break c}i=pa(e<<2)}d=(f<<2)+i|0;f=b<<2;b=ra(d,0,f);f=b+f|0;e=(e<<2)+i|0;if((c|0)==(g|0)){break b}while(1){c=c-4|0;b=H[c>>2];H[c>>2]=0;d=d-4|0;H[d>>2]=b;if((c|0)!=(g|0)){continue}break}H[a+8>>2]=e;b=H[a+4>>2];H[a+4>>2]=f;c=H[a>>2];H[a>>2]=d;if((b|0)==(c|0)){break a}while(1){b=b-4|0;a=H[b>>2];H[b>>2]=0;if(a){ea[H[H[a>>2]+4>>2]](a)}if((b|0)!=(c|0)){continue}break}break a}sa();v()}wa();v()}H[a+8>>2]=e;H[a+4>>2]=f;H[a>>2]=b}if(c){oa(c)}}function Md(a,b,c){a:{switch(b-9|0){case 0:b=H[c>>2];H[c>>2]=b+4;H[a>>2]=H[b>>2];return;case 6:b=H[c>>2];H[c>>2]=b+4;b=G[b>>1];H[a>>2]=b;H[a+4>>2]=b>>31;return;case 7:b=H[c>>2];H[c>>2]=b+4;H[a>>2]=J[b>>1];H[a+4>>2]=0;return;case 8:b=H[c>>2];H[c>>2]=b+4;b=F[b|0];H[a>>2]=b;H[a+4>>2]=b>>31;return;case 9:b=H[c>>2];H[c>>2]=b+4;H[a>>2]=I[b|0];H[a+4>>2]=0;return;case 16:b=H[c>>2]+7&-8;H[c>>2]=b+8;M[a>>3]=M[b>>3];return;case 17:v();default:return;case 1:case 4:case 14:b=H[c>>2];H[c>>2]=b+4;b=H[b>>2];H[a>>2]=b;H[a+4>>2]=b>>31;return;case 2:case 5:case 11:case 15:b=H[c>>2];H[c>>2]=b+4;H[a>>2]=H[b>>2];H[a+4>>2]=0;return;case 3:case 10:case 12:case 13:break a}}b=H[c>>2]+7&-8;H[c>>2]=b+8;c=H[b+4>>2];H[a>>2]=H[b>>2];H[a+4>>2]=c}function Ed(a,b){var c=0,d=0,e=0;c=ca+-64|0;ca=c;d=H[a>>2];e=H[d-4>>2];d=H[d-8>>2];H[c+32>>2]=0;H[c+36>>2]=0;H[c+40>>2]=0;H[c+44>>2]=0;H[c+48>>2]=0;H[c+52>>2]=0;F[c+55|0]=0;F[c+56|0]=0;F[c+57|0]=0;F[c+58|0]=0;F[c+59|0]=0;F[c+60|0]=0;F[c+61|0]=0;F[c+62|0]=0;H[c+24>>2]=0;H[c+28>>2]=0;H[c+20>>2]=0;H[c+16>>2]=14924;H[c+12>>2]=a;H[c+8>>2]=b;a=a+d|0;d=0;a:{if(Ya(e,b,0)){H[c+56>>2]=1;ea[H[H[e>>2]+20>>2]](e,c+8|0,a,a,1,0);d=H[c+32>>2]==1?a:0;break a}ea[H[H[e>>2]+24>>2]](e,c+8|0,a,1,0);b:{switch(H[c+44>>2]){case 0:d=H[c+48>>2]==1?H[c+36>>2]==1?H[c+40>>2]==1?H[c+28>>2]:0:0:0;break a;case 1:break b;default:break a}}if(H[c+32>>2]!=1){if(H[c+48>>2]|H[c+36>>2]!=1|H[c+40>>2]!=1){break a}}d=H[c+24>>2]}ca=c- -64|0;return d}function ua(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;H[a+16>>2]=0;e=H[a>>2];H[a+4>>2]=e;H[a+12>>2]=e;e=H[b+8>>2];c=H[b+12>>2];h=c;d=H[b+20>>2];f=H[b+16>>2];g=f+4|0;d=g>>>0<4?d+1|0:d;a:{if(e>>>0>>0&(d|0)>=(c|0)|(d|0)>(c|0)){break a}c=f+H[b>>2]|0;c=I[c|0]|I[c+1|0]<<8|(I[c+2|0]<<16|I[c+3|0]<<24);H[b+16>>2]=g;H[b+20>>2]=d;if(!c|c&3){break a}f=h-(d+(e>>>0>>0)|0)|0;if(e-g>>>0>>0&(f|0)<=0|(f|0)<0){break a}if(c>>>0>=4){ya(a,c>>>2|0);h=H[b+12>>2];g=H[b+16>>2];d=H[b+20>>2];e=H[b+8>>2]}f=c+g|0;d=f>>>0>>0?d+1|0:d;if(e>>>0>>0&(d|0)>=(h|0)|(d|0)>(h|0)){break a}qa(H[a>>2],H[b>>2]+g|0,c);d=H[b+20>>2];e=c+H[b+16>>2]|0;d=e>>>0>>0?d+1|0:d;H[b+16>>2]=e;H[b+20>>2]=d;H[a+16>>2]=0;H[a+12>>2]=H[a>>2];i=1}return i}function de(a,b){var c=0,d=0,e=0,f=0;d=-1;e=-1;f=-1;a:{b:{if((b|0)==-1){break b}e=H[H[H[a+4>>2]+12>>2]+(b<<2)>>2];c=b+1|0;c=(c>>>0)%3|0?c:b-2|0;if((c|0)>=0){f=(c>>>0)/3|0;f=H[(H[H[a>>2]+96>>2]+N(f,12)|0)+(c-N(f,3)<<2)>>2]}c:{if((e|0)==-1){break c}c=((e>>>0)%3|0?-1:2)+e|0;if((c|0)<0){break c}d=(c>>>0)/3|0;d=H[(H[H[a>>2]+96>>2]+N(d,12)|0)+(c-N(d,3)<<2)>>2]}c=-1;if((d|0)!=(f|0)){break a}f=-1;d:{b=((b>>>0)%3|0?-1:2)+b|0;if((b|0)>=0){d=(b>>>0)/3|0;d=H[(H[H[a>>2]+96>>2]+N(d,12)|0)+(b-N(d,3)<<2)>>2];if((e|0)==-1){break b}break d}d=-1;if((e|0)!=-1){break d}break b}b=e+1|0;b=(b>>>0)%3|0?b:e-2|0;if((b|0)<0){break b}c=H[H[a>>2]+96>>2];a=(b>>>0)/3|0;f=H[(c+N(a,12)|0)+(b-N(a,3)<<2)>>2]}c=(d|0)!=(f|0)?-1:e}return c}function Ah(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0;c=pa(72);H[c+4>>2]=0;H[c+8>>2]=0;H[c>>2]=1984;H[c+12>>2]=0;H[c+16>>2]=0;H[c+20>>2]=0;H[c+24>>2]=0;H[c+28>>2]=0;H[c+32>>2]=0;H[c+36>>2]=0;H[c+40>>2]=0;H[c>>2]=2128;H[c+44>>2]=0;H[c+48>>2]=0;H[c+52>>2]=0;H[c+56>>2]=0;H[c+60>>2]=0;H[c+64>>2]=0;H[c+68>>2]=0;h=c;a:{if((b|0)>=0){g=a+8|0;c=H[a+12>>2];e=H[a+8>>2];f=c-e>>2;b:{if((f|0)>(b|0)){break b}d=b+1|0;if(b>>>0>=f>>>0){Vb(g,d-f|0);break b}if(d>>>0>=f>>>0){break b}e=(d<<2)+e|0;if((e|0)!=(c|0)){while(1){c=c-4|0;d=H[c>>2];H[c>>2]=0;if(d){ea[H[H[d>>2]+4>>2]](d)}if((c|0)!=(e|0)){continue}break}}H[a+12>>2]=e}a=H[g>>2]+(b<<2)|0;c=H[a>>2];H[a>>2]=h;if(!c){break a}}ea[H[H[c>>2]+4>>2]](c)}return(b^-1)>>>31|0}function ra(a,b,c){var d=0,e=0,f=0,g=0;a:{if(!c){break a}F[a|0]=b;d=a+c|0;F[d-1|0]=b;if(c>>>0<3){break a}F[a+2|0]=b;F[a+1|0]=b;F[d-3|0]=b;F[d-2|0]=b;if(c>>>0<7){break a}F[a+3|0]=b;F[d-4|0]=b;if(c>>>0<9){break a}d=0-a&3;e=d+a|0;b=N(b&255,16843009);H[e>>2]=b;d=c-d&-4;c=d+e|0;H[c-4>>2]=b;if(d>>>0<9){break a}H[e+8>>2]=b;H[e+4>>2]=b;H[c-8>>2]=b;H[c-12>>2]=b;if(d>>>0<25){break a}H[e+24>>2]=b;H[e+20>>2]=b;H[e+16>>2]=b;H[e+12>>2]=b;H[c-16>>2]=b;H[c-20>>2]=b;H[c-24>>2]=b;H[c-28>>2]=b;g=e&4|24;c=d-g|0;if(c>>>0<32){break a}d=Rj(b,0,1,1);f=da;b=e+g|0;while(1){H[b+24>>2]=d;H[b+28>>2]=f;H[b+16>>2]=d;H[b+20>>2]=f;H[b+8>>2]=d;H[b+12>>2]=f;H[b>>2]=d;H[b+4>>2]=f;b=b+32|0;c=c-32|0;if(c>>>0>31){continue}break}}return a}function Mj(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;d=H[b+8>>2];e=H[b+12>>2];g=e;e=H[b+20>>2];k=e;h=H[b+16>>2];c=h+4|0;e=c>>>0<4?e+1|0:e;i=c;a:{if(c>>>0>d>>>0&(e|0)>=(g|0)|(e|0)>(g|0)){break a}j=H[b>>2];c=j+h|0;f=I[c|0]|I[c+1|0]<<8|(I[c+2|0]<<16|I[c+3|0]<<24);H[b+16>>2]=i;H[b+20>>2]=e;c=d;d=k;e=h+8|0;d=e>>>0<8?d+1|0:d;if(c>>>0>>0&(d|0)>=(g|0)|(d|0)>(g|0)){break a}c=i+j|0;c=I[c|0]|I[c+1|0]<<8|(I[c+2|0]<<16|I[c+3|0]<<24);H[b+16>>2]=e;H[b+20>>2]=d;if((c|0)<(f|0)){break a}H[a+16>>2]=c;H[a+12>>2]=f;d=(c>>31)-((f>>31)+(c>>>0>>0)|0)|0;b=c-f|0;if(!d&b>>>0>2147483646|d){break a}l=1;d=b+1|0;H[a+20>>2]=d;b=d>>>1|0;H[a+24>>2]=b;H[a+28>>2]=0-b;if(d&1){break a}H[a+24>>2]=b-1}return l|0}function sd(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;e=a+16|0;d=H[e>>2];a:{if(!d){break a}f=H[b>>2];b=e;while(1){g=(f|0)>H[d+16>>2];b=g?b:d;d=H[(g?d+4|0:d)>>2];if(d){continue}break}if((b|0)==(e|0)|(f|0)>2]){break a}d=H[b+24>>2];if(!d){break a}f=b+20|0;b=I[c+11|0];e=b<<24>>24<0;g=e?H[c>>2]:c;b=e?H[c+4>>2]:b;while(1){e=I[d+27|0];h=e<<24>>24<0;e=h?H[d+20>>2]:e;j=e>>>0>>0;b:{c:{d:{e:{f:{g:{i=j?e:b;if(i){h=h?H[d+16>>2]:d+16|0;k=Fa(g,h,i);if(k){break g}if(b>>>0>=e>>>0){break f}break b}if(b>>>0>=e>>>0){break e}break b}if((k|0)<0){break b}}e=Fa(h,g,i);if(e){break d}}if(j){break c}return Tc(f,c)}if((e|0)<0){break c}return Tc(f,c)}d=d+4|0}d=H[d>>2];if(d){continue}break}}return Tc(a,c)}function be(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;d=ca-16|0;ca=d;f=H[a+24>>2];k=H[a+28>>2];a:{if((f|0)!=(k|0)){while(1){H[d+8>>2]=0;H[d>>2]=0;H[d+4>>2]=0;a=$d(H[f>>2],b,d);g=I[d+11|0];h=g<<24>>24;i=3;b:{c:{d:{if(!a){break d}i=0;a=I[c+11|0];e=a<<24>>24;j=(h|0)<0?H[d+4>>2]:g;if((j|0)!=(((e|0)<0?H[c+4>>2]:a)|0)){break d}a=(e|0)<0?H[c>>2]:c;e=(h|0)<0;e:{if(!e){e=d;if(!h){break e}while(1){if(I[e|0]!=I[a|0]){break d}a=a+1|0;e=e+1|0;g=g-1|0;if(g){continue}break}break e}if(!j){break e}if(Fa(e?H[d>>2]:d,a,j)){break c}}l=H[f>>2];i=1}if((h|0)>=0){break b}}oa(H[d>>2])}f:{switch(i|0){case 0:case 3:break f;default:break a}}f=f+4|0;if((k|0)!=(f|0)){continue}break}}l=0}ca=d+16|0;return l}function Cb(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0;f=c-b|0;h=f>>2;d=H[a+8>>2];e=H[a>>2];if(h>>>0<=d-e>>2>>>0){d=H[a+4>>2];g=d-e|0;f=g+b|0;i=g>>2;g=i>>>0>>0?f:c;if((g|0)!=(b|0)){while(1){H[e>>2]=H[b>>2];e=e+4|0;b=b+4|0;if((g|0)!=(b|0)){continue}break}}if(h>>>0>i>>>0){if((c|0)!=(g|0)){while(1){H[d>>2]=H[f>>2];d=d+4|0;f=f+4|0;if((f|0)!=(c|0)){continue}break}}H[a+4>>2]=d;return}H[a+4>>2]=e;return}if(e){H[a+4>>2]=e;oa(e);H[a+8>>2]=0;H[a>>2]=0;H[a+4>>2]=0;d=0}a:{if((f|0)<0){break a}e=d>>>1|0;d=d>>>0>=2147483644?1073741823:e>>>0>h>>>0?e:h;if(d>>>0>=1073741824){break a}e=d<<2;d=pa(e);H[a>>2]=d;H[a+8>>2]=d+e;if((b|0)!=(c|0)){c=b;b=(f-4&-4)+4|0;d=qa(d,c,b)+b|0}H[a+4>>2]=d;return}sa();v()}function Oa(a,b,c){var d=0,e=0,f=0;e=ca-16|0;ca=e;H[a+4>>2]=0;a:{b:{if(!b){break b}f=H[a+8>>2];d=f<<5;c:{if(d>>>0>=b>>>0){H[a+4>>2]=b;break c}H[e+8>>2]=0;H[e>>2]=0;H[e+4>>2]=0;if((b|0)<0){break a}if(d>>>0<=1073741822){f=f<<6;d=b+31&-32;d=d>>>0>>0?f:d}else{d=2147483647}pb(e,d);f=H[a>>2];H[a>>2]=H[e>>2];H[e>>2]=f;d=H[a+4>>2];H[a+4>>2]=b;H[e+4>>2]=d;d=H[a+8>>2];H[a+8>>2]=H[e+8>>2];H[e+8>>2]=d;if(!f){break c}oa(f)}d=b>>>5|0;a=H[a>>2];if(I[c|0]){if(b>>>0>=32){ra(a,255,d<<2)}if((b&-32)==(b|0)){break b}a=a+(d<<2)|0;H[a>>2]=H[a>>2]|-1>>>32-(b&31);break b}if(b>>>0>=32){ra(a,0,d<<2)}if((b&-32)==(b|0)){break b}a=a+(d<<2)|0;H[a>>2]=H[a>>2]&(-1>>>32-(b&31)^-1)}ca=e+16|0;return}sa();v()}function Hg(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;e=ca-32|0;ca=e;a:{b:{f=Ma(c);if(f>>>0<2147483632){c:{d:{if(f>>>0>=11){a=(f|15)+1|0;g=pa(a);H[e+24>>2]=a|-2147483648;H[e+16>>2]=g;H[e+20>>2]=f;a=f+g|0;break d}F[e+27|0]=f;g=e+16|0;a=f+g|0;if(!f){break c}}qa(g,c,f)}F[a|0]=0;c=Ma(d);if(c>>>0>=2147483632){break b}e:{f:{if(c>>>0>=11){f=(c|15)+1|0;a=pa(f);H[e+8>>2]=f|-2147483648;H[e>>2]=a;H[e+4>>2]=c;g=a+c|0;break f}F[e+11|0]=c;g=c+e|0;a=e;if(!c){break e}}qa(a,d,c)}F[g|0]=0;c=H[b+4>>2];a=-1;g:{if(!c){break g}c=be(c,e+16|0,e);a=-1;if(!c){break g}a=Yd(b,H[c+24>>2])}if(F[e+11|0]<0){oa(H[e>>2])}if(F[e+27|0]<0){oa(H[e+16>>2])}ca=e+32|0;break a}Na();v()}Na();v()}return a|0}function jb(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;b=H[b>>2];h=H[b+8>>2];i=H[b+4>>2];j=H[b>>2];d=H[a>>2];b=H[d+4>>2];a=H[d+8>>2];if(b>>>0>>0){H[b+8>>2]=h;H[b+4>>2]=i;H[b>>2]=j;H[d+4>>2]=b+12;return}a:{e=H[d>>2];g=(b-e|0)/12|0;c=g+1|0;if(c>>>0<357913942){f=(a-e|0)/12|0;a=f<<1;c=f>>>0>=178956970?357913941:a>>>0>c>>>0?a:c;if(c){if(c>>>0>=357913942){break a}f=pa(N(c,12))}else{f=0}a=f+N(g,12)|0;H[a+8>>2]=h;H[a+4>>2]=i;H[a>>2]=j;g=a+12|0;if((b|0)!=(e|0)){while(1){a=a-12|0;b=b-12|0;H[a>>2]=H[b>>2];H[a+4>>2]=H[b+4>>2];H[a+8>>2]=H[b+8>>2];if((b|0)!=(e|0)){continue}break}}H[d+8>>2]=f+N(c,12);H[d+4>>2]=g;H[d>>2]=a;if(e){oa(e)}return}sa();v()}wa();v()}function lf(a,b){a=a|0;b=b|0;a=0;a:{switch(b|0){case 0:a=pa(20);H[a+12>>2]=-1;H[a+16>>2]=0;H[a+4>>2]=0;H[a+8>>2]=0;H[a>>2]=2232;return a|0;case 1:a=pa(24);H[a+12>>2]=-1;H[a+16>>2]=0;H[a+4>>2]=0;H[a+8>>2]=0;H[a>>2]=2232;H[a+20>>2]=0;H[a>>2]=2448;return a|0;case 2:a=pa(48);H[a+12>>2]=-1;H[a+16>>2]=0;H[a+4>>2]=0;H[a+8>>2]=0;H[a>>2]=2232;H[a+20>>2]=0;H[a>>2]=2448;H[a+24>>2]=1832;H[a>>2]=11048;H[a+32>>2]=0;H[a+36>>2]=0;H[a+28>>2]=-1;H[a+40>>2]=0;H[a+44>>2]=0;return a|0;case 3:a=pa(32);H[a+12>>2]=-1;H[a+16>>2]=0;H[a+4>>2]=0;H[a+8>>2]=0;H[a>>2]=2232;H[a+20>>2]=0;H[a>>2]=2448;H[a+24>>2]=1032;H[a>>2]=7028;H[a+28>>2]=-1;break;default:break a}}return a|0}function tf(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;f=H[b>>2];b=H[b+4>>2];d=H[H[a+8>>2]+40>>2];j=d;m=pa((d|0)<0?-1:d);i=b-f|0;e=1;a:{if((i|0)<4){break a}b=0;g=H[c+16>>2];k=d;f=g+d|0;d=0+H[c+20>>2]|0;d=f>>>0>>0?d+1|0:d;h=H[c+12>>2];e=0;if(K[c+8>>2]>>0&(d|0)>=(h|0)|(d|0)>(h|0)){break a}e=i>>2;i=(e|0)<=1?1:e;while(1){b:{g=qa(m,H[c>>2]+g|0,j);H[c+16>>2]=f;H[c+20>>2]=d;qa(H[H[H[a+8>>2]+64>>2]>>2]+b|0,g,j);l=l+1|0;if((i|0)==(l|0)){break b}b=b+j|0;d=n+H[c+20>>2]|0;g=H[c+16>>2];f=k+g|0;d=f>>>0>>0?d+1|0:d;h=H[c+12>>2];if((d|0)<=(h|0)&K[c+8>>2]>=f>>>0|(d|0)<(h|0)){continue}}break}e=(e|0)<=(l|0)}oa(m);return e|0}function Ti(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0;H[b>>2]=1;f=b+8|0;c=H[b+8>>2];d=H[b+12>>2]-c|0;if(d>>>0<=4294967291){kc(f,d+4|0);c=H[f>>2]}c=c+d|0;d=H[a+4>>2];F[c|0]=d;F[c+1|0]=d>>>8;F[c+2|0]=d>>>16;F[c+3|0]=d>>>24;c=H[a+8>>2];if((c|0)!=H[a+12>>2]){d=0;while(1){g=(d<<2)+c|0;c=H[b+8>>2];e=H[b+12>>2]-c|0;if(e>>>0<=4294967291){kc(f,e+4|0);c=H[f>>2]}c=c+e|0;e=H[g>>2];F[c|0]=e;F[c+1|0]=e>>>8;F[c+2|0]=e>>>16;F[c+3|0]=e>>>24;d=d+1|0;c=H[a+8>>2];if(d>>>0>2]-c>>2>>>0){continue}break}}c=H[b+12>>2];b=H[b+8>>2];c=c-b|0;if(c>>>0<=4294967291){kc(f,c+4|0);b=H[f>>2]}b=b+c|0;a=H[a+20>>2];F[b|0]=a;F[b+1|0]=a>>>8;F[b+2|0]=a>>>16;F[b+3|0]=a>>>24}function Aa(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0;f=c-b|0;g=f>>2;d=H[a+8>>2];e=H[a>>2];if(g>>>0<=d-e>>2>>>0){f=H[a+4>>2]-e|0;d=f+b|0;h=f>>2;f=h>>>0>>0?d:c;i=f-b|0;if((b|0)!=(f|0)){va(e,b,i)}if(g>>>0>h>>>0){b=H[a+4>>2];if((c|0)!=(f|0)){while(1){H[b>>2]=H[d>>2];b=b+4|0;d=d+4|0;if((d|0)!=(c|0)){continue}break}}H[a+4>>2]=b;return}H[a+4>>2]=e+i;return}if(e){H[a+4>>2]=e;oa(e);H[a+8>>2]=0;H[a>>2]=0;H[a+4>>2]=0;d=0}a:{if((f|0)<0){break a}e=d>>>1|0;d=d>>>0>=2147483644?1073741823:e>>>0>g>>>0?e:g;if(d>>>0>=1073741824){break a}e=d<<2;d=pa(e);H[a>>2]=d;H[a+8>>2]=d+e;if((b|0)!=(c|0)){c=b;b=(f-4&-4)+4|0;d=qa(d,c,b)+b|0}H[a+4>>2]=d;return}sa();v()}function Rb(a,b){var c=0,d=0,e=0,f=0,g=0,h=0;c=H[a+4>>2];if((c|0)!=H[a+8>>2]){e=H[b+4>>2];H[c>>2]=H[b>>2];H[c+4>>2]=e;H[c+8>>2]=H[b+8>>2];H[a+4>>2]=c+12;return}a:{g=H[a>>2];d=(c-g|0)/12|0;e=d+1|0;if(e>>>0<357913942){f=d<<1;f=d>>>0>=178956970?357913941:e>>>0>>0?f:e;if(f){if(f>>>0>=357913942){break a}e=pa(N(f,12))}else{e=0}d=e+N(d,12)|0;h=H[b+4>>2];H[d>>2]=H[b>>2];H[d+4>>2]=h;H[d+8>>2]=H[b+8>>2];b=d+12|0;if((c|0)!=(g|0)){while(1){c=c-12|0;h=H[c+4>>2];d=d-12|0;H[d>>2]=H[c>>2];H[d+4>>2]=h;H[d+8>>2]=H[c+8>>2];if((c|0)!=(g|0)){continue}break}c=H[a>>2]}H[a+8>>2]=e+N(f,12);H[a+4>>2]=b;H[a>>2]=d;if(c){oa(c)}return}sa();v()}wa();v()}function Qi(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;f=ca-32|0;ca=f;g=e>>>0>1073741823?-1:e<<2;l=ra(pa(g),0,g);g=l;i=H[g>>2];g=H[g+4>>2];k=H[b+4>>2];H[f+24>>2]=H[b>>2];H[f+28>>2]=k;H[f+8>>2]=i;H[f+12>>2]=g;i=a+8|0;rc(f+16|0,i,f+8|0,f+24|0);H[c>>2]=H[f+16>>2];H[c+4>>2]=H[f+20>>2];if((d|0)>(e|0)){k=0-e<<2;a=e;while(1){h=a<<2;g=h+c|0;j=g+k|0;m=H[j>>2];j=H[j+4>>2];h=b+h|0;n=H[h+4>>2];H[f+24>>2]=H[h>>2];H[f+28>>2]=n;H[f+8>>2]=m;H[f+12>>2]=j;rc(f+16|0,i,f+8|0,f+24|0);H[g>>2]=H[f+16>>2];H[g+4>>2]=H[f+20>>2];a=a+e|0;if((d|0)>(a|0)){continue}break}}oa(l);ca=f+32|0;return 1}function Hi(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;f=ca-32|0;ca=f;h=e>>>0>1073741823?-1:e<<2;h=ra(pa(h),0,h);g=H[b>>2];i=H[b+4>>2];k=H[h+4>>2];H[f+16>>2]=H[h>>2];H[f+20>>2]=k;H[f+8>>2]=g;H[f+12>>2]=i;i=a+8|0;qc(f+24|0,i,f+16|0,f+8|0);H[c>>2]=H[f+24>>2];H[c+4>>2]=H[f+28>>2];if((d|0)>(e|0)){k=0-e<<2;a=e;while(1){g=a<<2;j=g+b|0;m=H[j>>2];j=H[j+4>>2];g=c+g|0;l=g+k|0;n=H[l+4>>2];H[f+16>>2]=H[l>>2];H[f+20>>2]=n;H[f+8>>2]=m;H[f+12>>2]=j;qc(f+24|0,i,f+16|0,f+8|0);H[g>>2]=H[f+24>>2];H[g+4>>2]=H[f+28>>2];a=a+e|0;if((d|0)>(a|0)){continue}break}}oa(h);ca=f+32|0;return 1}function Ag(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;a:{if(K[b+80>>2]>65535){break a}a=H[b+100>>2];b=H[b+96>>2];e=(a-b|0)/12|0;f=N(e,6);g=(f|0)==(c|0);if((a|0)==(b|0)|(c|0)!=(f|0)){break a}g=1;c=e>>>0<=1?1:e;i=c&1;a=0;if(e>>>0>=2){j=c&-2;c=0;while(1){f=N(a,6);h=f+d|0;e=b+N(a,12)|0;G[h>>1]=H[e>>2];G[(f|2)+d>>1]=H[e+4>>2];G[h+4>>1]=H[e+8>>2];f=a|1;e=N(f,6)+d|0;f=b+N(f,12)|0;G[e>>1]=H[f>>2];G[e+2>>1]=H[f+4>>2];G[e+4>>1]=H[f+8>>2];a=a+2|0;c=c+2|0;if((j|0)!=(c|0)){continue}break}}if(!i){break a}c=N(a,6)+d|0;a=b+N(a,12)|0;G[c>>1]=H[a>>2];G[c+2>>1]=H[a+4>>2];G[c+4>>1]=H[a+8>>2]}return g|0}function Gd(a,b,c,d,e,f,g){var h=0,i=0,j=0;h=ca-16|0;ca=h;if((b^-1)+2147483631>>>0>=c>>>0){if(I[a+11|0]>>>7|0){i=H[a>>2]}else{i=a}if(b>>>0<1073741799){H[h+12>>2]=b<<1;H[h>>2]=b+c;c=ca-16|0;ca=c;ca=c+16|0;c=h+12|0;c=H[(K[h>>2]>2]?c:h)>>2];if(c>>>0>=11){j=c+16&-16;c=j-1|0;c=(c|0)==11?j:c}else{c=10}c=c+1|0}else{c=2147483631}Zb(h,c);c=H[h>>2];if(f){yb(c,g,f)}g=d-e|0;if((d|0)!=(e|0)){yb(c+f|0,e+i|0,g)}if((b|0)!=10){oa(i)}H[a>>2]=c;H[a+8>>2]=H[a+8>>2]&-2147483648|H[h+4>>2]&2147483647;H[a+8>>2]=H[a+8>>2]|-2147483648;b=a;a=f+g|0;H[b+4>>2]=a;F[h+12|0]=0;F[a+c|0]=I[h+12|0];ca=h+16|0;return}Na();v()}function Rg(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;a=ca-32|0;ca=a;H[a+24>>2]=0;H[a+28>>2]=0;a:{d=Ma(c);if(d>>>0<2147483632){b:{c:{if(d>>>0>=11){e=(d|15)+1|0;f=pa(e);H[a+16>>2]=e|-2147483648;H[a+8>>2]=f;H[a+12>>2]=d;e=d+f|0;break c}F[a+19|0]=d;f=a+8|0;e=f+d|0;if(!d){break b}}qa(f,c,d)}F[e|0]=0;c=b+4|0;b=nb(b,a+8|0);d:{if((c|0)==(b|0)){break d}c=H[b+32>>2];b=H[b+28>>2];if((c-b|0)!=8){break d}c=I[b+4|0]|I[b+5|0]<<8|(I[b+6|0]<<16|I[b+7|0]<<24);H[a+24>>2]=I[b|0]|I[b+1|0]<<8|(I[b+2|0]<<16|I[b+3|0]<<24);H[a+28>>2]=c}g=M[a+24>>3];if(F[a+19|0]<0){oa(H[a+8>>2])}ca=a+32|0;break a}Na();v()}return+g}function uf(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0;f=1;a:{if((ea[H[H[b>>2]+20>>2]](b)|0)<=0){break a}while(1){f=0;c=Zd(H[H[a+4>>2]+4>>2],ea[H[H[b>>2]+24>>2]](b,g)|0);if((c|0)==-1){break a}e=H[a+4>>2];b:{if(I[e+36|0]<=1){if(ea[H[H[b>>2]+28>>2]](b,H[H[H[e+4>>2]+8>>2]+(c<<2)>>2])|0){break b}break a}d=0;c:{if((c|0)<0){break c}h=H[e+4>>2];if(H[h+12>>2]-H[h+8>>2]>>2<=(c|0)){break c}d=H[H[e+8>>2]+(H[H[e+20>>2]+(c<<2)>>2]<<2)>>2];d=ea[H[H[d>>2]+32>>2]](d,c)|0}if(!d){break a}if(!(ea[H[H[b>>2]+28>>2]](b,d)|0)){break a}}f=1;g=g+1|0;if((ea[H[H[b>>2]+20>>2]](b)|0)>(g|0)){continue}break}}return f|0}function tb(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0;H[a+8>>2]=0;H[a>>2]=0;H[a+4>>2]=0;a:{b:{if(b){if(b>>>0>=357913942){break b}b=N(b,12);d=pa(b);H[a+4>>2]=d;H[a>>2]=d;e=b+d|0;H[a+8>>2]=e;f=H[c+4>>2];g=H[c>>2];c:{if((f|0)==(g|0)){b=b-12|0;ra(d,0,(b-((b>>>0)%12|0)|0)+12|0);break c}h=f-g|0;if((h|0)<0){break a}i=h&-4;while(1){H[d+8>>2]=0;H[d>>2]=0;H[d+4>>2]=0;b=pa(h);H[d>>2]=b;H[d+8>>2]=b+i;c=g;while(1){H[b>>2]=H[c>>2];b=b+4|0;c=c+4|0;if((f|0)!=(c|0)){continue}break}H[d+4>>2]=b;d=d+12|0;if((e|0)!=(d|0)){continue}break}}H[a+4>>2]=e}return}sa();v()}H[d+8>>2]=0;H[d>>2]=0;H[d+4>>2]=0;sa();v()}function Vi(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;c=H[b+8>>2];d=H[b+12>>2];g=d;d=H[b+20>>2];i=d;h=H[b+16>>2];f=h+4|0;d=f>>>0<4?d+1|0:d;a:{if(c>>>0>>0&(d|0)>=(g|0)|(d|0)>(g|0)){break a}e=h+H[b>>2]|0;e=I[e|0]|I[e+1|0]<<8|(I[e+2|0]<<16|I[e+3|0]<<24);H[b+16>>2]=f;H[b+20>>2]=d;if(J[b+38>>1]<=513){f=c;c=i;d=h+8|0;c=d>>>0<8?c+1|0:c;if(d>>>0>f>>>0&(c|0)>=(g|0)|(c|0)>(g|0)){break a}H[b+16>>2]=d;H[b+20>>2]=c}if(!(e&1)){break a}b=Q(e)^31;if(b-1>>>0>28){break a}j=1;H[a+8>>2]=b+1;b=-2<>2]=c;H[a+12>>2]=b^-1;H[a+24>>2]=c>>1;L[a+20>>2]=O(2)/O(c|0)}return j|0}function Lc(a,b,c){var d=0,e=0,f=0,g=0;a:{f=b>>>0<1431655766&(b|c)>=0;b:{if(!f){break b}b=N(b,3);Kc(a,b,13648);Kc(a+12|0,b,13652);d=H[a+24>>2];c:{if(H[a+32>>2]-d>>2>>>0>=c>>>0){break c}if(c>>>0>=1073741824){break a}b=H[a+28>>2];e=c<<2;c=pa(e);e=c+e|0;g=c+(b-d&-4)|0;c=g;if((b|0)!=(d|0)){while(1){c=c-4|0;b=b-4|0;H[c>>2]=H[b>>2];if((b|0)!=(d|0)){continue}break}}H[a+32>>2]=e;H[a+28>>2]=g;H[a+24>>2]=c;if(!d){break c}oa(d)}H[a+80>>2]=0;H[a+84>>2]=0;b=H[a+76>>2];H[a+76>>2]=0;if(b){oa(b)}H[a+68>>2]=0;H[a+72>>2]=0;b=a- -64|0;a=H[b>>2];H[b>>2]=0;if(!a){break b}oa(a)}return f}sa();v()}function Fe(a){var b=0,c=0,d=0,e=0,f=0;f=1;c=H[a+140>>2];a:{if((c|0)<=0){break a}b=c<<4;d=pa(c>>>0>268435455?-1:b|4);H[d>>2]=c;d=d+4|0;c=d+b|0;b=d;while(1){H[b>>2]=0;H[b+4>>2]=0;F[b+5|0]=0;F[b+6|0]=0;F[b+7|0]=0;F[b+8|0]=0;F[b+9|0]=0;F[b+10|0]=0;F[b+11|0]=0;F[b+12|0]=0;b=b+16|0;if((c|0)!=(b|0)){continue}break}e=H[a+136>>2];H[a+136>>2]=d;if(e){c=e-4|0;d=H[c>>2];if(d){b=(d<<4)+e|0;while(1){b=b-16|0;if((e|0)!=(b|0)){continue}break}}oa(c)}b=0;if(H[a+140>>2]<=0){break a}while(1){f=ta(H[a+136>>2]+(b<<4)|0,a);if(!f){break a}b=b+1|0;if((b|0)>2]){continue}break}}return f}function mb(a,b){var c=0,d=0,e=0,f=0,g=0;a:{if(H[a+64>>2]){break a}c=pa(32);H[c+16>>2]=0;H[c+20>>2]=0;H[c+8>>2]=0;H[c>>2]=0;H[c+4>>2]=0;H[c+24>>2]=0;H[c+28>>2]=0;d=H[a+64>>2];H[a+64>>2]=c;if(!d){break a}c=H[d>>2];if(c){H[d+4>>2]=c;oa(c)}oa(d)}d=H[a+64>>2];c=H[a+28>>2]-1|0;if(c>>>0<=10){c=H[(c<<2)+13584>>2]}else{c=-1}c=N(c,I[a+24|0]);f=c>>31;g=se(d,0,Rj(c,f,b,0),da);if(g){d=H[a+64>>2];H[a>>2]=d;e=H[d+20>>2];H[a+8>>2]=H[d+16>>2];H[a+12>>2]=e;e=H[d+24>>2];d=H[d+28>>2];H[a+48>>2]=0;H[a+52>>2]=0;H[a+40>>2]=c;H[a+44>>2]=f;H[a+16>>2]=e;H[a+20>>2]=d;H[a+80>>2]=b}return g}function jc(a,b){var c=0;c=H[b+4>>2];H[a>>2]=H[b>>2];H[a+4>>2]=c;c=H[b+60>>2];H[a+56>>2]=H[b+56>>2];H[a+60>>2]=c;c=H[b+52>>2];H[a+48>>2]=H[b+48>>2];H[a+52>>2]=c;c=H[b+44>>2];H[a+40>>2]=H[b+40>>2];H[a+44>>2]=c;c=H[b+36>>2];H[a+32>>2]=H[b+32>>2];H[a+36>>2]=c;c=H[b+28>>2];H[a+24>>2]=H[b+24>>2];H[a+28>>2]=c;c=H[b+20>>2];H[a+16>>2]=H[b+16>>2];H[a+20>>2]=c;c=H[b+12>>2];H[a+8>>2]=H[b+8>>2];H[a+12>>2]=c;H[a+88>>2]=0;H[a+64>>2]=0;H[a+68>>2]=0;H[a+72>>2]=0;H[a+76>>2]=0;F[a+77|0]=0;F[a+78|0]=0;F[a+79|0]=0;F[a+80|0]=0;F[a+81|0]=0;F[a+82|0]=0;F[a+83|0]=0;F[a+84|0]=0;return a}function zg(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;a=H[b+100>>2];b=H[b+96>>2];h=a-b|0;a:{if((h|0)!=(c|0)|(a|0)==(b|0)){break a}g=(c|0)/12|0;e=g>>>0<=1?1:g;j=e&1;a=0;if(g>>>0>=2){k=e&-2;g=0;while(1){e=N(a,12);i=e+d|0;f=b+e|0;H[i>>2]=H[f>>2];H[(e|4)+d>>2]=H[f+4>>2];H[i+8>>2]=H[f+8>>2];f=N(a|1,12);e=f+d|0;f=b+f|0;H[e>>2]=H[f>>2];H[e+4>>2]=H[f+4>>2];H[e+8>>2]=H[f+8>>2];a=a+2|0;g=g+2|0;if((k|0)!=(g|0)){continue}break}}if(!j){break a}e=d;d=N(a,12);a=e+d|0;b=b+d|0;H[a>>2]=H[b>>2];H[a+4>>2]=H[b+4>>2];H[a+8>>2]=H[b+8>>2]}return(c|0)==(h|0)|0}function Mi(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;c=H[b+8>>2];d=H[b+12>>2];g=d;d=H[b+20>>2];i=d;h=H[b+16>>2];f=h+4|0;d=f>>>0<4?d+1|0:d;a:{if(c>>>0>>0&(d|0)>=(g|0)|(d|0)>(g|0)){break a}e=h+H[b>>2]|0;e=I[e|0]|I[e+1|0]<<8|(I[e+2|0]<<16|I[e+3|0]<<24);H[b+16>>2]=f;H[b+20>>2]=d;f=c;c=i;d=h+8|0;c=d>>>0<8?c+1|0:c;if(d>>>0>f>>>0&(c|0)>=(g|0)|(c|0)>(g|0)){break a}H[b+16>>2]=d;H[b+20>>2]=c;if(!(e&1)){break a}b=Q(e)^31;if(b-1>>>0>28){break a}j=1;H[a+8>>2]=b+1;b=-2<>2]=c;H[a+12>>2]=b^-1;H[a+24>>2]=c>>1;L[a+20>>2]=O(2)/O(c|0)}return j|0}function nb(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;f=a+4|0;a=H[a+4>>2];a:{b:{if(!a){break b}d=I[b+11|0];c=d<<24>>24<0;g=c?H[b>>2]:b;d=c?H[b+4>>2]:d;b=f;while(1){e=I[a+27|0];c=e<<24>>24<0;e=c?H[a+20>>2]:e;h=e>>>0>d>>>0;i=h?d:e;c:{if(i){c=Fa(c?H[a+16>>2]:a+16|0,g,i);if(c){break c}}c=d>>>0>e>>>0?-1:h}c=(c|0)<0;b=c?b:a;a=H[(c?a+4|0:a)>>2];if(a){continue}break}if((b|0)==(f|0)){break b}c=I[b+27|0];a=c<<24>>24<0;d:{c=a?H[b+20>>2]:c;e=c>>>0>>0?c:d;if(e){a=Fa(g,a?H[b+16>>2]:b+16|0,e);if(a){break d}}if(c>>>0>d>>>0){break b}break a}if((a|0)>=0){break a}}b=f}return b}function Jf(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;if(Ya(a,H[b+8>>2],e)){if(!(H[b+28>>2]==1|H[b+4>>2]!=(c|0))){H[b+28>>2]=d}return}a:{if(Ya(a,H[b>>2],e)){if(!(H[b+16>>2]!=(c|0)&H[b+20>>2]!=(c|0))){if((d|0)!=1){break a}H[b+32>>2]=1;return}H[b+32>>2]=d;b:{if(H[b+44>>2]==4){break b}G[b+52>>1]=0;a=H[a+8>>2];ea[H[H[a>>2]+20>>2]](a,b,c,c,1,e);if(I[b+53|0]){H[b+44>>2]=3;if(!I[b+52|0]){break b}break a}H[b+44>>2]=4}H[b+20>>2]=c;H[b+40>>2]=H[b+40>>2]+1;if(H[b+36>>2]!=1|H[b+24>>2]!=2){break a}F[b+54|0]=1;return}a=H[a+8>>2];ea[H[H[a>>2]+24>>2]](a,b,c,d,e)}}function Db(a,b,c){var d=0,e=0,f=0,g=0;a:{b:{if(!b){break b}if(J[a+38>>1]<=513){f=H[a+12>>2];d=H[a+20>>2];b=H[a+16>>2];g=b+8|0;d=g>>>0<8?d+1|0:d;e=0;if(K[a+8>>2]>>0&(d|0)>=(f|0)|(d|0)>(f|0)){break a}b=b+H[a>>2]|0;d=I[b+4|0]|I[b+5|0]<<8|(I[b+6|0]<<16|I[b+7|0]<<24);H[c>>2]=I[b|0]|I[b+1|0]<<8|(I[b+2|0]<<16|I[b+3|0]<<24);H[c+4>>2]=d;b=H[a+20>>2];c=H[a+16>>2]+8|0;b=c>>>0<8?b+1|0:b;H[a+16>>2]=c;H[a+20>>2]=b;break b}e=0;if(!re(1,c,a)){break a}}F[a+36|0]=1;H[a+32>>2]=0;b=H[a+16>>2];c=b+H[a>>2]|0;H[a+24>>2]=c;H[a+28>>2]=(H[a+8>>2]-b|0)+c;e=1}return e}function ve(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0;f=pa(64);c=pa(12);H[c+8>>2]=H[H[a+4>>2]+80>>2];H[c>>2]=13216;H[c+4>>2]=0;f=od(f,c);a:{b:{if((b|0)<0){c=f;break b}h=a+8|0;c=H[a+12>>2];e=H[a+8>>2];g=c-e>>2;c:{if((g|0)>(b|0)){break c}d=b+1|0;if(b>>>0>=g>>>0){Vb(h,d-g|0);break c}if(d>>>0>=g>>>0){break c}e=e+(d<<2)|0;if((e|0)!=(c|0)){while(1){c=c-4|0;d=H[c>>2];H[c>>2]=0;if(d){ea[H[H[d>>2]+4>>2]](d)}if((c|0)!=(e|0)){continue}break}}H[a+12>>2]=e}a=H[h>>2]+(b<<2)|0;c=H[a>>2];H[a>>2]=f;if(!c){break a}}ea[H[H[c>>2]+4>>2]](c)}return(b^-1)>>>31|0}function Qd(a,b){var c=0,d=0,e=0,f=0;d=ca-16|0;ca=d;H[d+12>>2]=b;c=ca-208|0;ca=c;H[c+204>>2]=b;b=c+160|0;ra(b,0,40);H[c+200>>2]=H[c+204>>2];a:{if((Od(0,a,c+200|0,c+80|0,b)|0)<0){break a}f=H[3941]>=0;b=H[3922];if(H[3940]<=0){H[3922]=b&-33}b:{c:{d:{if(!H[3934]){H[3934]=80;H[3929]=0;H[3926]=0;H[3927]=0;e=H[3933];H[3933]=c;break d}if(H[3926]){break c}}if(Sd(15688)){break b}}Od(15688,a,c+200|0,c+80|0,c+160|0)}if(e){ea[H[3931]](15688,0,0)|0;H[3934]=0;H[3933]=e;H[3929]=0;H[3926]=0;H[3927]=0}H[3922]=H[3922]|b&32;if(!f){break a}}ca=c+208|0;ca=d+16|0}function pf(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0;c=H[a+60>>2];a:{if(!c){break a}H[c+4>>2]=a+48;if(!(ea[H[H[c>>2]+12>>2]](c)|0)){break a}b:{c=ea[H[H[a>>2]+24>>2]](a)|0;if((c|0)<=0){break b}while(1){c:{f=H[(ea[H[H[a>>2]+28>>2]](a)|0)+4>>2];g=ea[H[H[a>>2]+20>>2]](a,d)|0;e=H[a+60>>2];if(!(ea[H[H[e>>2]+8>>2]](e,H[H[f+8>>2]+(g<<2)>>2])|0)){break c}d=d+1|0;if((c|0)!=(d|0)){continue}break b}break}return 0}d=0;if(!(ea[H[H[a>>2]+36>>2]](a,b)|0)){break a}if(!(ea[H[H[a>>2]+40>>2]](a,b)|0)){break a}d=ea[H[H[a>>2]+44>>2]](a)|0}return d|0}function id(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;c=H[a+216>>2];if((c|0)!=H[a+220>>2]){while(1){a:{c=H[N(e,144)+c>>2];if((c|0)<0){break a}d=H[a+4>>2];f=H[d+8>>2];if((c|0)>=H[d+12>>2]-f>>2){break a}d=0;c=H[(c<<2)+f>>2];if((ea[H[H[c>>2]+24>>2]](c)|0)<=0){break a}while(1){if((ea[H[H[c>>2]+20>>2]](c,d)|0)!=(b|0)){d=d+1|0;if((ea[H[H[c>>2]+24>>2]](c)|0)>(d|0)){continue}break a}break}a=H[a+216>>2]+N(e,144)|0;return(I[a+100|0]?a+4|0:0)|0}e=e+1|0;c=H[a+216>>2];if(e>>>0<(H[a+220>>2]-c|0)/144>>>0){continue}break}}return 0}function xb(a){var b=0,c=0,d=0,e=0;c=H[a+132>>2];if(c){d=c;b=H[a+136>>2];if((c|0)!=(b|0)){while(1){d=b-12|0;e=H[d>>2];if(e){H[b-8>>2]=e;oa(e)}b=d;if((c|0)!=(b|0)){continue}break}d=H[a+132>>2]}H[a+136>>2]=c;oa(d)}c=H[a+120>>2];if(c){d=c;b=H[a+124>>2];if((c|0)!=(b|0)){while(1){d=b-12|0;e=H[d>>2];if(e){H[b-8>>2]=e;oa(e)}b=d;if((c|0)!=(b|0)){continue}break}d=H[a+120>>2]}H[a+124>>2]=c;oa(d)}b=H[a+108>>2];if(b){H[a+112>>2]=b;oa(b)}b=H[a+96>>2];if(b){H[a+100>>2]=b;oa(b)}Za(a+76|0);Za(a+56|0);Za(a+36|0);Za(a+16|0)}function rd(a){a=a|0;var b=0,c=0,d=0;H[a>>2]=2128;d=H[a+60>>2];if(d){b=d;c=H[a- -64>>2];if((b|0)!=(c|0)){while(1){c=c-4|0;b=H[c>>2];H[c>>2]=0;if(b){Ga(b)}if((c|0)!=(d|0)){continue}break}b=H[a+60>>2]}H[a+64>>2]=d;oa(b)}b=H[a+48>>2];if(b){H[a+52>>2]=b;oa(b)}d=H[a+36>>2];if(d){b=d;c=H[a+40>>2];if((b|0)!=(c|0)){while(1){c=c-24|0;ea[H[H[c>>2]>>2]](c)|0;if((c|0)!=(d|0)){continue}break}b=H[a+36>>2]}H[a+40>>2]=d;oa(b)}H[a>>2]=1984;b=H[a+16>>2];if(b){H[a+20>>2]=b;oa(b)}b=H[a+4>>2];if(b){H[a+8>>2]=b;oa(b)}return a|0}function ue(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;c=H[a+8>>2];d=H[a+4>>2];if(c-d>>2>>>0>=b>>>0){if(b){b=b<<2;d=ra(d,0,b)+b|0}H[a+4>>2]=d;return}a:{f=H[a>>2];g=d-f>>2;e=g+b|0;if(e>>>0<1073741824){c=c-f|0;h=c>>>1|0;e=c>>>0>=2147483644?1073741823:e>>>0>>0?h:e;if(e){if(e>>>0>=1073741824){break a}i=pa(e<<2)}c=(g<<2)+i|0;b=b<<2;b=ra(c,0,b)+b|0;if((d|0)!=(f|0)){while(1){c=c-4|0;d=d-4|0;H[c>>2]=H[d>>2];if((d|0)!=(f|0)){continue}break}}H[a+8>>2]=(e<<2)+i;H[a+4>>2]=b;H[a>>2]=c;if(f){oa(f)}return}sa();v()}wa();v()}function rb(a){var b=0,c=0,d=0,e=0,f=0;d=H[a+8>>2];a:{if(I[d+84|0]){break a}b=H[a+16>>2];if(!b|!I[b+84|0]){break a}c=H[d+72>>2];e=H[d+68>>2];F[b+84|0]=0;c=c-e>>2;f=H[b+68>>2];e=H[b+72>>2]-f>>2;b:{if(c>>>0>e>>>0){qb(b+68|0,c-e|0,2316);d=H[a+8>>2];break b}if(c>>>0>=e>>>0){break b}H[b+72>>2]=f+(c<<2)}if(I[d+84|0]){break a}c=H[d+68>>2];if((c|0)==H[d+72>>2]){break a}e=H[H[a+16>>2]+68>>2];b=0;while(1){f=b<<2;H[f+e>>2]=H[c+f>>2];b=b+1|0;c=H[d+68>>2];if(b>>>0>2]-c>>2>>>0){continue}break}}return H[a+16>>2]}function Lg(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;e=ca+-64|0;ca=e;f=Ha(e+8|0);H[f+16>>2]=0;H[f+20>>2]=0;H[f>>2]=b;H[f+8>>2]=c;H[f+12>>2]=0;b=e+48|0;Pe(b,a,f,d);H[a+24>>2]=H[e+48>>2];f=a+24|0;a:{if((f|0)==(b|0)){break a}b=a+28|0;c=e+48|4;g=I[e+63|0];d=g<<24>>24;if(F[a+39|0]>=0){if((d|0)>=0){a=H[c+4>>2];H[b>>2]=H[c>>2];H[b+4>>2]=a;H[b+8>>2]=H[c+8>>2];break a}Xb(b,H[e+52>>2],H[e+56>>2]);break a}a=(d|0)<0;Yb(b,a?H[e+52>>2]:c,a?H[e+56>>2]:g)}if(F[e+63|0]<0){oa(H[e+52>>2])}ca=e- -64|0;return f|0}function Kg(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;e=ca+-64|0;ca=e;f=Ha(e+8|0);H[f+16>>2]=0;H[f+20>>2]=0;H[f>>2]=b;H[f+8>>2]=c;H[f+12>>2]=0;b=e+48|0;Oe(b,a,f,d);H[a+24>>2]=H[e+48>>2];f=a+24|0;a:{if((f|0)==(b|0)){break a}b=a+28|0;c=e+48|4;g=I[e+63|0];d=g<<24>>24;if(F[a+39|0]>=0){if((d|0)>=0){a=H[c+4>>2];H[b>>2]=H[c>>2];H[b+4>>2]=a;H[b+8>>2]=H[c+8>>2];break a}Xb(b,H[e+52>>2],H[e+56>>2]);break a}a=(d|0)<0;Yb(b,a?H[e+52>>2]:c,a?H[e+56>>2]:g)}if(F[e+63|0]<0){oa(H[e+52>>2])}ca=e- -64|0;return f|0}function Ig(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0;a=ca-32|0;ca=a;a:{d=Ma(c);if(d>>>0<2147483632){b:{c:{if(d>>>0>=11){e=(d|15)+1|0;f=pa(e);H[a+24>>2]=e|-2147483648;H[a+16>>2]=f;H[a+20>>2]=d;e=d+f|0;break c}F[a+27|0]=d;f=a+16|0;e=f+d|0;if(!d){break b}}qa(f,c,d)}F[e|0]=0;F[a+4|0]=0;H[a>>2]=1701667182;F[a+11|0]=4;d=H[b+4>>2];c=-1;d:{if(!d){break d}d=be(d,a,a+16|0);c=-1;if(!d){break d}c=Yd(b,H[d+24>>2])}b=c;if(F[a+11|0]<0){oa(H[a>>2])}if(F[a+27|0]<0){oa(H[a+16>>2])}ca=a+32|0;break a}Na();v()}return b|0}function hd(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;c=H[a+216>>2];if((c|0)!=H[a+220>>2]){while(1){a:{c=H[N(e,144)+c>>2];if((c|0)<0){break a}d=H[a+4>>2];f=H[d+8>>2];if((c|0)>=H[d+12>>2]-f>>2){break a}d=0;c=H[(c<<2)+f>>2];if((ea[H[H[c>>2]+24>>2]](c)|0)<=0){break a}while(1){if((ea[H[H[c>>2]+20>>2]](c,d)|0)!=(b|0)){d=d+1|0;if((ea[H[H[c>>2]+24>>2]](c)|0)>(d|0)){continue}break a}break}return(H[a+216>>2]+N(e,144)|0)+104|0}e=e+1|0;c=H[a+216>>2];if(e>>>0<(H[a+220>>2]-c|0)/144>>>0){continue}break}}return a+184|0}function ab(a){var b=0,c=0,d=0,e=0;c=H[a+640>>2];if(c){d=c;b=H[a+644>>2];if((c|0)!=(b|0)){while(1){d=b-12|0;e=H[d>>2];if(e){H[b-8>>2]=e;oa(e)}b=d;if((c|0)!=(b|0)){continue}break}d=H[a+640>>2]}H[a+644>>2]=c;oa(d)}c=H[a+628>>2];if(c){d=c;b=H[a+632>>2];if((c|0)!=(b|0)){while(1){d=b-12|0;e=H[d>>2];if(e){H[b-8>>2]=e;oa(e)}b=d;if((c|0)!=(b|0)){continue}break}d=H[a+628>>2]}H[a+632>>2]=c;oa(d)}b=H[a+616>>2];if(b){H[a+620>>2]=b;oa(b)}b=H[a+604>>2];if(b){H[a+608>>2]=b;oa(b)}Za(a+584|0);Za(a+564|0);Za(a+544|0)}function Tg(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0;d=ca-16|0;ca=d;H[d+12>>2]=0;a:{e=Ma(c);if(e>>>0<2147483632){b:{c:{if(e>>>0>=11){f=(e|15)+1|0;a=pa(f);H[d+8>>2]=f|-2147483648;H[d>>2]=a;H[d+4>>2]=e;f=a+e|0;break c}F[d+11|0]=e;f=d+e|0;a=d;if(!e){break b}}qa(a,c,e)}F[f|0]=0;a=nb(b,d);d:{if((a|0)==(b+4|0)){break d}b=H[a+32>>2];a=H[a+28>>2];if((b-a|0)!=4){break d}H[d+12>>2]=I[a|0]|I[a+1|0]<<8|(I[a+2|0]<<16|I[a+3|0]<<24)}a=H[d+12>>2];if(F[d+11|0]<0){oa(H[d>>2])}ca=d+16|0;break a}Na();v()}return a|0}function vb(a){var b=0,c=0,d=0,e=0;c=H[a+128>>2];if(c){d=c;b=H[a+132>>2];if((c|0)!=(b|0)){while(1){d=b-12|0;e=H[d>>2];if(e){H[b-8>>2]=e;oa(e)}b=d;if((c|0)!=(b|0)){continue}break}d=H[a+128>>2]}H[a+132>>2]=c;oa(d)}c=H[a+116>>2];if(c){d=c;b=H[a+120>>2];if((c|0)!=(b|0)){while(1){d=b-12|0;e=H[d>>2];if(e){H[b-8>>2]=e;oa(e)}b=d;if((c|0)!=(b|0)){continue}break}d=H[a+116>>2]}H[a+120>>2]=c;oa(d)}b=H[a+104>>2];if(b){H[a+108>>2]=b;oa(b)}b=H[a+92>>2];if(b){H[a+96>>2]=b;oa(b)}Za(a+72|0);Za(a+52|0);Za(a+32|0)}function kc(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;a:{c=H[a+4>>2];e=H[a>>2];d=c-e|0;b:{if(d>>>0>>0){g=b-d|0;f=H[a+8>>2];if(g>>>0<=f-c>>>0){h=a,i=ra(c,0,g)+g|0,H[h+4>>2]=i;break b}if((b|0)<0){break a}c=f-e|0;f=c<<1;c=c>>>0>=1073741823?2147483647:b>>>0>>0?f:b;f=pa(c);ra(f+d|0,0,g);d=va(f,e,d);H[a+8>>2]=d+c;H[a+4>>2]=b+d;H[a>>2]=d;if(!e){break b}oa(e);break b}if(b>>>0>=d>>>0){break b}H[a+4>>2]=b+e}b=H[a+28>>2];c=b;d=b+1|0;b=H[a+24>>2]+1|0;e=b?c:d;H[a+24>>2]=b;H[a+28>>2]=e;return}sa();v()}function Ka(a,b){var c=0,d=0,e=0,f=0,g=0,h=0;e=H[a+4>>2];if((e|0)!=H[a+8>>2]){H[e>>2]=H[b>>2];H[a+4>>2]=e+4;return}a:{g=H[a>>2];f=e-g|0;c=f>>2;d=c+1|0;if(d>>>0<1073741824){h=c<<2;c=f>>>1|0;c=f>>>0>=2147483644?1073741823:c>>>0>d>>>0?c:d;if(c){if(c>>>0>=1073741824){break a}f=pa(c<<2)}else{f=0}d=h+f|0;H[d>>2]=H[b>>2];b=d+4|0;if((e|0)!=(g|0)){while(1){d=d-4|0;e=e-4|0;H[d>>2]=H[e>>2];if((e|0)!=(g|0)){continue}break}}H[a+8>>2]=f+(c<<2);H[a+4>>2]=b;H[a>>2]=d;if(g){oa(g)}return}sa();v()}wa();v()}function Ia(a){H[a>>2]=-1;H[a+4>>2]=0;H[a+8>>2]=0;H[a+32>>2]=0;H[a+36>>2]=0;F[a+28|0]=1;H[a+20>>2]=0;H[a+24>>2]=0;H[a+12>>2]=0;H[a+16>>2]=0;H[a+40>>2]=0;H[a+44>>2]=0;H[a+48>>2]=0;H[a+52>>2]=0;H[a+56>>2]=0;H[a+60>>2]=0;H[a+64>>2]=0;H[a+68>>2]=0;H[a+76>>2]=0;H[a+80>>2]=0;H[a+84>>2]=0;H[a+88>>2]=0;H[a+92>>2]=0;H[a+96>>2]=0;H[a+72>>2]=a+4;H[a+104>>2]=0;H[a+108>>2]=0;F[a+100|0]=1;H[a+112>>2]=0;H[a+116>>2]=0;H[a+120>>2]=0;H[a+124>>2]=0;H[a+128>>2]=0;H[a+132>>2]=0;H[a+136>>2]=0;H[a+140>>2]=0}function Ld(a,b){if(!a){return 0}a:{b:{if(a){if(b>>>0<=127){break b}c:{if(!H[H[4292]>>2]){if((b&-128)==57216){break b}break c}if(b>>>0<=2047){F[a+1|0]=b&63|128;F[a|0]=b>>>6|192;a=2;break a}if(!((b&-8192)!=57344&b>>>0>=55296)){F[a+2|0]=b&63|128;F[a|0]=b>>>12|224;F[a+1|0]=b>>>6&63|128;a=3;break a}if(b-65536>>>0<=1048575){F[a+3|0]=b&63|128;F[a|0]=b>>>18|240;F[a+2|0]=b>>>6&63|128;F[a+1|0]=b>>>12&63|128;a=4;break a}}H[3992]=25;a=-1}else{a=1}break a}F[a|0]=b;a=1}return a}function Hb(a,b){var c=0,d=0,e=0,f=0;d=H[a+12>>2];c=H[a+16>>2]-d>>2;a:{if(c>>>0>>0){ya(a+12|0,b-c|0);break a}if(b>>>0>=c>>>0){break a}H[a+16>>2]=d+(b<<2)}b:{c=H[a>>2];c:{if(H[a+8>>2]-c>>2>>>0>=b>>>0){break c}if(b>>>0>=1073741824){break b}d=H[a+4>>2];e=b<<2;b=pa(e);e=b+e|0;f=b+(d-c&-4)|0;b=f;if((c|0)!=(d|0)){while(1){b=b-4|0;d=d-4|0;H[b>>2]=H[d>>2];if((c|0)!=(d|0)){continue}break}}H[a+8>>2]=e;H[a+4>>2]=f;H[a>>2]=b;if(!c){break c}oa(c)}return}sa();v()}function _b(a){a=a|0;var b=0,c=0,d=0;H[a>>2]=13724;b=H[a+68>>2];if(b){H[a+72>>2]=b;oa(b)}b=H[a+56>>2];if(b){H[a+60>>2]=b;oa(b)}b=H[a+44>>2];if(b){H[a+48>>2]=b;oa(b)}b=H[a+32>>2];if(b){H[a+36>>2]=b;oa(b)}b=H[a+20>>2];if(b){H[a+24>>2]=b;oa(b)}b=H[a+8>>2];if(b){d=b;c=H[a+12>>2];if((b|0)!=(c|0)){while(1){c=c-4|0;d=H[c>>2];H[c>>2]=0;if(d){Ga(d)}if((b|0)!=(c|0)){continue}break}d=H[a+8>>2]}H[a+12>>2]=b;oa(d)}b=H[a+4>>2];H[a+4>>2]=0;if(b){Uc(b)}return a|0}function yb(a,b,c){var d=0,e=0,f=0,g=0,h=0;f=ca-16|0;ca=f;d=ca-32|0;ca=d;e=ca-16|0;ca=e;H[e+12>>2]=b;H[e+8>>2]=b+c;H[d+24>>2]=H[e+12>>2];H[d+28>>2]=H[e+8>>2];ca=e+16|0;c=ca-16|0;ca=c;h=H[d+28>>2];e=H[d+24>>2];g=h-e|0;if((e|0)!=(h|0)){va(a,e,g)}H[c+12>>2]=e+g;H[c+8>>2]=a+g;H[d+16>>2]=H[c+12>>2];H[d+20>>2]=H[c+8>>2];ca=c+16|0;H[d+12>>2]=(H[d+16>>2]-b|0)+b;H[d+8>>2]=(H[d+20>>2]-a|0)+a;H[f+8>>2]=H[d+12>>2];H[f+12>>2]=H[d+8>>2];ca=d+32|0;ca=f+16|0}function ya(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;e=H[a+8>>2];c=H[a+4>>2];if(e-c>>2>>>0>=b>>>0){if(b){b=b<<2;c=ra(c,0,b)+b|0}H[a+4>>2]=c;return}a:{f=c;c=H[a>>2];g=f-c|0;h=g>>2;d=h+b|0;if(d>>>0<1073741824){e=e-c|0;f=e>>>1|0;d=e>>>0>=2147483644?1073741823:d>>>0>>0?f:d;if(d){if(d>>>0>=1073741824){break a}i=pa(d<<2)}b=b<<2;e=ra((h<<2)+i|0,0,b);f=d<<2;d=va(i,c,g);H[a+8>>2]=f+d;H[a+4>>2]=b+e;H[a>>2]=d;if(c){oa(c)}return}sa();v()}wa();v()}function Tc(a,b){var c=0,d=0,e=0,f=0;c=a+4|0;a=nb(a,b);a:{if((c|0)==(a|0)){break a}b=a+28|0;b=F[a+39|0]<0?H[b>>2]:b;while(1){a=b;b=a+1|0;c=F[a|0];if((c|0)==32|c-9>>>0<5){continue}break}b:{c:{d:{c=F[a|0];switch(c-43|0){case 0:break c;case 2:break d;default:break b}}e=1}c=F[b|0];a=b}if(c-48>>>0<10){while(1){d=(N(d,10)-F[a|0]|0)+48|0;b=F[a+1|0];a=a+1|0;if(b-48>>>0<10){continue}break}}a=e?d:0-d|0;if((a|0)==-1){break a}f=(a|0)!=0}return f}function bb(a,b){var c=0,d=0,e=0,f=0,g=0,h=0;a=H[a>>2];c=H[a+4>>2];e=H[a+8>>2];if(c>>>0>>0){H[c>>2]=H[b>>2];H[a+4>>2]=c+4;return}a:{d=c;c=H[a>>2];g=d-c|0;d=g>>2;f=d+1|0;if(f>>>0<1073741824){h=d<<2;e=e-c|0;d=e>>>1|0;f=e>>>0>=2147483644?1073741823:f>>>0>>0?d:f;if(f){if(f>>>0>=1073741824){break a}e=pa(f<<2)}else{e=0}d=h+e|0;H[d>>2]=H[b>>2];b=va(e,c,g);H[a+8>>2]=b+(f<<2);H[a+4>>2]=d+4;H[a>>2]=b;if(c){oa(c)}return}sa();v()}wa();v()}function ob(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;e=H[a+8>>2];c=H[a+4>>2];if(e-c>>3>>>0>=b>>>0){if(b){b=b<<3;c=ra(c,0,b)+b|0}H[a+4>>2]=c;return}a:{f=c;c=H[a>>2];g=f-c|0;h=g>>3;d=h+b|0;if(d>>>0<536870912){e=e-c|0;f=e>>>2|0;d=e>>>0>=2147483640?536870911:d>>>0>>0?f:d;if(d){if(d>>>0>=536870912){break a}i=pa(d<<3)}b=b<<3;e=ra((h<<3)+i|0,0,b);f=d<<3;d=va(i,c,g);H[a+8>>2]=f+d;H[a+4>>2]=b+e;H[a>>2]=d;if(c){oa(c)}return}sa();v()}wa();v()}function kf(a){a=a|0;var b=0,c=0,d=0;H[a>>2]=2328;b=H[a+60>>2];H[a+60>>2]=0;if(b){ea[H[H[b>>2]+4>>2]](b)}b=H[a+48>>2];if(b){H[a+52>>2]=b;oa(b)}d=H[a+36>>2];if(d){c=H[a+40>>2];b=d;if((c|0)!=(b|0)){while(1){c=c-4|0;b=H[c>>2];H[c>>2]=0;if(b){ea[H[H[b>>2]+4>>2]](b)}if((c|0)!=(d|0)){continue}break}b=H[a+36>>2]}H[a+40>>2]=d;oa(b)}H[a>>2]=1984;b=H[a+16>>2];if(b){H[a+20>>2]=b;oa(b)}b=H[a+4>>2];if(b){H[a+8>>2]=b;oa(b)}return a|0}function jf(a){a=a|0;var b=0,c=0,d=0;H[a>>2]=2328;b=H[a+60>>2];H[a+60>>2]=0;if(b){ea[H[H[b>>2]+4>>2]](b)}b=H[a+48>>2];if(b){H[a+52>>2]=b;oa(b)}d=H[a+36>>2];if(d){c=H[a+40>>2];b=d;if((c|0)!=(b|0)){while(1){c=c-4|0;b=H[c>>2];H[c>>2]=0;if(b){ea[H[H[b>>2]+4>>2]](b)}if((c|0)!=(d|0)){continue}break}b=H[a+36>>2]}H[a+40>>2]=d;oa(b)}H[a>>2]=1984;b=H[a+16>>2];if(b){H[a+20>>2]=b;oa(b)}b=H[a+4>>2];if(b){H[a+8>>2]=b;oa(b)}oa(a)}function xi(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;d=ca-16|0;ca=d;e=H[a+4>>2];a:{if((e|0)==-1){break a}c=H[b+20>>2];if(!!H[b+16>>2]&(c|0)>=0|(c|0)>0){break a}Wb(b,H[b+4>>2],H[a+8>>2],H[a+12>>2]);c=H[b+20>>2];if(!!H[b+16>>2]&(c|0)>=0|(c|0)>0){break a}Wb(b,H[b+4>>2],a+20|0,a+24|0);c=H[b+20>>2];f=H[b+16>>2];F[d+15|0]=H[a+4>>2];if(!!f&(c|0)>=0|(c|0)>0){break a}Wb(b,H[b+4>>2],d+15|0,d+16|0)}ca=d+16|0;return(e|0)!=-1|0}function Eh(a){a=a|0;var b=0,c=0,d=0,e=0,f=0;a:{b=H[a+8>>2];b:{if((b|0)<0){break b}c=H[a+4>>2];e=H[c>>2];d=H[c+4>>2]-e>>2;c:{if(d>>>0>>0){ue(c,b-d|0);f=H[a+8>>2];break c}f=b;if(b>>>0>=d>>>0){break c}H[c+4>>2]=e+(b<<2);f=b}d=f;if((d|0)<=0){break b}a=H[a+4>>2];c=H[a>>2];e=H[a+4>>2]-c>>2;a=0;while(1){if((a|0)==(e|0)){break a}H[c+(a<<2)>>2]=a;a=a+1|0;if((d|0)!=(a|0)){continue}break}}return(b^-1)>>>31|0}Ca();v()}function qe(a,b){var c=0,d=0,e=0,f=0,g=0,h=0;e=H[a+8>>2];c=H[a+4>>2];if(e-c>>1>>>0>=b>>>0){if(b){b=b<<1;c=ra(c,0,b)+b|0}H[a+4>>2]=c;return}a:{f=c;c=H[a>>2];g=f-c|0;f=g>>1;d=f+b|0;if((d|0)>=0){e=e-c|0;d=e>>>0>=2147483646?2147483647:d>>>0>>0?e:d;if(d){if((d|0)<0){break a}h=pa(d<<1)}b=b<<1;e=ra((f<<1)+h|0,0,b);f=d<<1;d=va(h,c,g);H[a+8>>2]=f+d;H[a+4>>2]=b+e;H[a>>2]=d;if(c){oa(c)}return}sa();v()}wa();v()}function ng(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;d=ca-16|0;ca=d;Pe(d,a,b,c);H[a+24>>2]=H[d>>2];e=a+24|0;a:{if((e|0)==(d|0)){break a}b=a+28|0;c=d|4;f=I[d+15|0];g=f<<24>>24;if(F[a+39|0]>=0){if((g|0)>=0){a=H[c+4>>2];H[b>>2]=H[c>>2];H[b+4>>2]=a;H[b+8>>2]=H[c+8>>2];break a}Xb(b,H[d+4>>2],H[d+8>>2]);break a}a=(g|0)<0;Yb(b,a?H[d+4>>2]:c,a?H[d+8>>2]:f)}if(F[d+15|0]<0){oa(H[d+4>>2])}ca=d+16|0;return e|0}function mg(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;d=ca-16|0;ca=d;Oe(d,a,b,c);H[a+24>>2]=H[d>>2];e=a+24|0;a:{if((e|0)==(d|0)){break a}b=a+28|0;c=d|4;f=I[d+15|0];g=f<<24>>24;if(F[a+39|0]>=0){if((g|0)>=0){a=H[c+4>>2];H[b>>2]=H[c>>2];H[b+4>>2]=a;H[b+8>>2]=H[c+8>>2];break a}Xb(b,H[d+4>>2],H[d+8>>2]);break a}a=(g|0)<0;Yb(b,a?H[d+4>>2]:c,a?H[d+8>>2]:f)}if(F[d+15|0]<0){oa(H[d+4>>2])}ca=d+16|0;return e|0}function za(a,b,c){var d=0,e=0,f=0,g=0;e=ca-16|0;ca=e;a:{b:{if(c>>>0<11){d=a;F[a+11|0]=I[a+11|0]&128|c;F[a+11|0]=I[a+11|0]&127;break b}if(c>>>0>2147483631){break a}g=e+8|0;if(c>>>0>=11){f=c+16&-16;d=f-1|0;d=(d|0)==11?f:d}else{d=10}Zb(g,d+1|0);d=H[e+8>>2];H[a>>2]=d;H[a+8>>2]=H[a+8>>2]&-2147483648|H[e+12>>2]&2147483647;H[a+8>>2]=H[a+8>>2]|-2147483648;H[a+4>>2]=c}yb(d,b,c+1|0);ca=e+16|0;return}Na();v()}function Qg(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;d=ca-16|0;ca=d;a:{e=Ma(c);if(e>>>0<2147483632){b:{c:{if(e>>>0>=11){g=(e|15)+1|0;f=pa(g);H[d+8>>2]=g|-2147483648;H[d>>2]=f;H[d+4>>2]=e;g=e+f|0;break c}F[d+11|0]=e;g=d+e|0;f=d;if(!e){break b}}qa(f,c,e)}F[g|0]=0;f=a+16|0;c=$d(b,d,f);b=H[a+16>>2];a=F[a+27|0];if(F[d+11|0]<0){oa(H[d>>2])}ca=d+16|0;a=c?(a|0)<0?b:f:0;break a}Na();v()}return a|0}function Mc(a,b){var c=0,d=0,e=0;c=H[a+4>>2];d=c+b|0;H[a+4>>2]=d;if(!((d-1^c-1)>>>0<32?c:0)){H[H[a>>2]+((d>>>0>=33?d-1>>>5|0:0)<<2)>>2]=0}a:{if(!b){break a}a=H[a>>2]+(c>>>3&536870908)|0;c=c&31;if(c){d=32-c|0;e=b>>>0>d>>>0?d:b;H[a>>2]=H[a>>2]&(-1<>>d-e^-1);b=b-e|0;a=a+4|0}c=b>>>5|0;if(b>>>0>=32){ra(a,0,c<<2)}if((b&-32)==(b|0)){break a}a=(c<<2)+a|0;H[a>>2]=H[a>>2]&(-1>>>32-(b&31)^-1)}}function Fc(a,b,c){var d=0,e=0,f=0;d=H[c+16>>2];a:{if(!d){if(Sd(c)){break a}d=H[c+16>>2]}f=H[c+20>>2];if(d-f>>>0>>0){return ea[H[c+36>>2]](c,a,b)|0}b:{if(H[c+80>>2]<0){d=0;break b}e=b;while(1){d=e;if(!d){d=0;break b}e=d-1|0;if(I[e+a|0]!=10){continue}break}e=ea[H[c+36>>2]](c,a,d)|0;if(e>>>0>>0){break a}a=a+d|0;b=b-d|0;f=H[c+20>>2]}qa(f,a,b);H[c+20>>2]=H[c+20>>2]+b;e=b+d|0}return e}function ad(a){var b=0,c=0,d=0,e=0;if(I[a+76|0]){F[a+76|0]=0;e=H[a+60>>2];c=H[a+72>>2]+7|0;b=c>>>0<7?1:b;d=b<<29|c>>>3;c=d+H[a+56>>2]|0;b=(b>>>3|0)+e|0;H[a+56>>2]=c;H[a+60>>2]=c>>>0>>0?b+1|0:b}if(J[a+38>>1]<=513){F[a+132|0]=0;e=H[a+116>>2];b=0;c=H[a+128>>2]+7|0;b=c>>>0<7?1:b;d=b<<29|c>>>3;c=d+H[a+112>>2]|0;b=(b>>>3|0)+e|0;H[a+112>>2]=c;H[a+116>>2]=c>>>0>>0?b+1|0:b}}function re(a,b,c){var d=0,e=0,f=0,g=0;a:{if(a>>>0>10){break a}d=H[c+20>>2];f=H[c+12>>2];e=H[c+16>>2];if((d|0)>=(f|0)&e>>>0>=K[c+8>>2]|(d|0)>(f|0)){break a}f=F[e+H[c>>2]|0];e=e+1|0;d=e?d:d+1|0;H[c+16>>2]=e;H[c+20>>2]=d;d=f;b:{if((d|0)<0){if(!re(a+1|0,b,c)){break a}a=H[b>>2];d=d&127|a<<7;a=H[b+4>>2]<<7|a>>>25;break b}d=d&255;a=0}H[b>>2]=d;H[b+4>>2]=a;g=1}return g}function gb(a,b,c){var d=0,e=0,f=0,g=0;a:{if(a>>>0>10){break a}d=H[c+20>>2];f=H[c+12>>2];e=H[c+16>>2];if((d|0)>=(f|0)&e>>>0>=K[c+8>>2]|(d|0)>(f|0)){break a}f=F[e+H[c>>2]|0];e=e+1|0;d=e?d:d+1|0;H[c+16>>2]=e;H[c+20>>2]=d;d=f;b:{if((d|0)<0){if(!gb(a+1|0,b,c)){break a}a=H[b>>2];d=d&127|a<<7;a=H[b+4>>2]<<7|a>>>25;break b}d=d&255;a=0}H[b>>2]=d;H[b+4>>2]=a;g=1}return g}function Nh(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0;e=ca+-64|0;ca=e;d=ea[H[H[a>>2]+44>>2]](a,b)|0;a=ea[H[H[a>>2]+40>>2]](a,b)|0;f=Eb(e);g=H[b+56>>2];h=d&255;i=a;a=a-1|0;if(a>>>0<=10){a=H[(a<<2)+13584>>2]}else{a=-1}d=N(a,d);lc(f,g,h,i,0,d,d>>31);a=jc(pa(96),f);mb(a,c);F[a+84|0]=1;H[a+72>>2]=H[a+68>>2];H[a+60>>2]=H[b+60>>2];ca=e- -64|0;return a|0}function If(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;if(Ya(a,H[b+8>>2],e)){if(!(H[b+28>>2]==1|H[b+4>>2]!=(c|0))){H[b+28>>2]=d}return}a:{if(!Ya(a,H[b>>2],e)){break a}if(!(H[b+16>>2]!=(c|0)&H[b+20>>2]!=(c|0))){if((d|0)!=1){break a}H[b+32>>2]=1;return}H[b+20>>2]=c;H[b+32>>2]=d;H[b+40>>2]=H[b+40>>2]+1;if(!(H[b+36>>2]!=1|H[b+24>>2]!=2)){F[b+54|0]=1}H[b+44>>2]=4}}function Bh(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0;e=H[a+32>>2];b=e;h=H[b+8>>2];g=H[b+12>>2];c=H[b+16>>2];b=H[b+20>>2];f=c+4|0;b=f>>>0<4?b+1|0:b;d=0;a:{if(f>>>0>h>>>0&(b|0)>=(g|0)|(b|0)>(g|0)){break a}c=H[e>>2]+c|0;c=I[c|0]|I[c+1|0]<<8|(I[c+2|0]<<16|I[c+3|0]<<24);H[e+16>>2]=f;H[e+20>>2]=b;d=0;if((c|0)<0){break a}H[H[a+4>>2]+80>>2]=c;d=1}return d|0}function qi(a){a=a|0;var b=0,c=0,d=0;H[a>>2]=11276;b=H[a+48>>2];H[a+48>>2]=0;if(b){ea[H[H[b>>2]+4>>2]](b)}H[a>>2]=13280;b=H[a+20>>2];if(b){H[a+24>>2]=b;oa(b)}d=H[a+8>>2];if(d){c=H[a+12>>2];b=d;if((c|0)!=(b|0)){while(1){c=c-4|0;b=H[c>>2];H[c>>2]=0;if(b){ea[H[H[b>>2]+4>>2]](b)}if((c|0)!=(d|0)){continue}break}b=H[a+8>>2]}H[a+12>>2]=d;oa(b)}return a|0}function Ee(a,b){var c=0,d=0,e=0,f=0;H[a+144>>2]=b;c=H[(ea[H[H[b>>2]+32>>2]](b)|0)+32>>2];c=H[c>>2]+H[c+16>>2]|0;d=H[(ea[H[H[b>>2]+32>>2]](b)|0)+32>>2];d=H[d+8>>2]-H[d+16>>2]|0;e=a,f=J[H[(ea[H[H[b>>2]+32>>2]](b)|0)+32>>2]+38>>1],G[e+38>>1]=f;H[a>>2]=c;H[a+16>>2]=0;H[a+20>>2]=0;H[a+8>>2]=d;H[a+12>>2]=0;e=a,f=ea[H[H[b>>2]+36>>2]](b)|0,H[e+148>>2]=f}function Cd(a,b,c,d){F[a+53|0]=1;a:{if(H[a+4>>2]!=(c|0)){break a}F[a+52|0]=1;c=H[a+16>>2];b:{if(!c){H[a+36>>2]=1;H[a+24>>2]=d;H[a+16>>2]=b;if((d|0)!=1){break a}if(H[a+48>>2]==1){break b}break a}if((b|0)==(c|0)){c=H[a+24>>2];if((c|0)==2){H[a+24>>2]=d;c=d}if(H[a+48>>2]!=1){break a}if((c|0)==1){break b}break a}H[a+36>>2]=H[a+36>>2]+1}F[a+54|0]=1}}function pi(a){a=a|0;var b=0,c=0,d=0;H[a>>2]=11276;b=H[a+48>>2];H[a+48>>2]=0;if(b){ea[H[H[b>>2]+4>>2]](b)}H[a>>2]=13280;b=H[a+20>>2];if(b){H[a+24>>2]=b;oa(b)}d=H[a+8>>2];if(d){c=H[a+12>>2];b=d;if((c|0)!=(b|0)){while(1){c=c-4|0;b=H[c>>2];H[c>>2]=0;if(b){ea[H[H[b>>2]+4>>2]](b)}if((c|0)!=(d|0)){continue}break}b=H[a+8>>2]}H[a+12>>2]=d;oa(b)}oa(a)}function zh(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0;e=H[a+32>>2];b=e;g=H[b+8>>2];d=H[b+12>>2];c=H[b+16>>2];b=H[b+20>>2];f=d;d=c+4|0;b=d>>>0<4?b+1|0:b;if((f|0)>=(b|0)&d>>>0<=g>>>0|(b|0)<(f|0)){c=H[e>>2]+c|0;c=I[c|0]|I[c+1|0]<<8|(I[c+2|0]<<16|I[c+3|0]<<24);H[e+16>>2]=d;H[e+20>>2]=b;H[H[a+4>>2]+80>>2]=c}return(b|0)<=(f|0)&d>>>0<=g>>>0|(b|0)<(f|0)}function Mf(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;e=ca+-64|0;ca=e;d=1;a:{if(Ya(a,b,0)){break a}d=0;if(!b){break a}b=Ed(b,14972);d=0;if(!b){break a}d=e+8|0;ra(d|4,0,52);H[e+56>>2]=1;H[e+20>>2]=-1;H[e+16>>2]=a;H[e+8>>2]=b;ea[H[H[b>>2]+28>>2]](b,d,H[c>>2],1);a=H[e+32>>2];if((a|0)==1){H[c>>2]=H[e+24>>2]}d=(a|0)==1}ca=e- -64|0;return d|0}function Ie(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=ca-16|0;ca=d;H[a+4>>2]=b;b=H[b+64>>2];e=H[b>>2];b=H[b+4>>2];F[d+15|0]=0;Oa(a+24|0,(b-e>>2>>>0)/3|0,d+15|0);b=H[a+4>>2];e=H[b+56>>2];b=H[b+52>>2];F[d+14|0]=0;Oa(a+36|0,e-b>>2,d+14|0);b=H[c+12>>2];H[a+16>>2]=H[c+8>>2];H[a+20>>2]=b;b=H[c+4>>2];H[a+8>>2]=H[c>>2];H[a+12>>2]=b;ca=d+16|0}function pc(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;if(!b){H[c>>2]=0;return}h=0-I[a+12|0]&255;e=H[a+4>>2];d=H[a+8>>2];i=H[a>>2];while(1){j=f<<1;if(!((e|0)<=0|d>>>0>4095)){e=e-1|0;H[a+4>>2]=e;d=I[e+i|0]|d<<8}g=d&255;f=g>>>0>>0;k=g;g=N(d>>>8|0,h);d=f?k+g|0:d-(h+g|0)|0;H[a+8>>2]=d;f=f|j;b=b-1|0;if(b){continue}break}H[c>>2]=f}function yg(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;a=ca-16|0;ca=a;f=F[b+24|0];e=H[3411];H[a+8>>2]=H[3410];H[a+12>>2]=e;e=H[3409];H[a>>2]=H[3408];H[a+4>>2]=e;e=Va(b,c,f,a);if(e){b=0;if(f){c=(f&255)<<2;b=pa(c);g=qa(b,a,c)+c|0}c=H[d>>2];if(c){H[d+4>>2]=c;oa(c)}H[d+8>>2]=g;H[d+4>>2]=g;H[d>>2]=b}ca=a+16|0;return e|0}function of(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0;f=ea[H[H[a>>2]+24>>2]](a)|0;c=1;a:{if((f|0)<=0){break a}d=H[H[a+36>>2]>>2];g=a+48|0;c=0;if(!(ea[H[H[d>>2]+16>>2]](d,g,b)|0)){break a}while(1){e=e+1|0;if((f|0)!=(e|0)){d=H[H[a+36>>2]+(e<<2)>>2];if(ea[H[H[d>>2]+16>>2]](d,g,b)|0){continue}}break}c=(e|0)>=(f|0)}return c|0}function nf(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0;f=ea[H[H[a>>2]+24>>2]](a)|0;c=1;a:{if((f|0)<=0){break a}d=H[H[a+36>>2]>>2];g=a+48|0;c=0;if(!(ea[H[H[d>>2]+20>>2]](d,g,b)|0)){break a}while(1){e=e+1|0;if((f|0)!=(e|0)){d=H[H[a+36>>2]+(e<<2)>>2];if(ea[H[H[d>>2]+20>>2]](d,g,b)|0){continue}}break}c=(e|0)>=(f|0)}return c|0}function _c(a,b){var c=0,d=0;a:{c=H[a+4>>2];d=H[a+8>>2];if((c|0)==d<<5){if((c+1|0)<0){break a}if(c>>>0<=1073741822){d=d<<6;c=(c&-32)+32|0;c=c>>>0>>0?d:c}else{c=2147483647}pb(a,c);c=H[a+4>>2]}H[a+4>>2]=c+1;d=1<>2]+(c>>>3&536870908)|0;if(I[b|0]){H[a>>2]=d|H[a>>2];return}H[a>>2]=H[a>>2]&(d^-1);return}sa();v()}function $h(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=ca-16|0;ca=d;H[a+4>>2]=b;e=H[b>>2];b=H[b+4>>2];F[d+15|0]=0;Oa(a+24|0,(b-e>>2>>>0)/3|0,d+15|0);b=H[a+4>>2];e=H[b+28>>2];b=H[b+24>>2];F[d+14|0]=0;Oa(a+36|0,e-b>>2,d+14|0);b=H[c+12>>2];H[a+16>>2]=H[c+8>>2];H[a+20>>2]=b;b=H[c+4>>2];H[a+8>>2]=H[c>>2];H[a+12>>2]=b;ca=d+16|0}function $b(a){var b=0;H[a>>2]=0;H[a+4>>2]=0;H[a+56>>2]=0;H[a+48>>2]=0;H[a+52>>2]=0;H[a+40>>2]=0;H[a+44>>2]=0;H[a+32>>2]=0;H[a+36>>2]=0;H[a+24>>2]=0;H[a+28>>2]=0;H[a+16>>2]=0;H[a+20>>2]=0;H[a+8>>2]=0;H[a+12>>2]=0;b=a- -64|0;H[b>>2]=0;H[b+4>>2]=0;H[a+72>>2]=0;H[a+76>>2]=0;H[a+80>>2]=0;H[a+84>>2]=0;H[a+60>>2]=a;return a}function td(a,b,c){var d=0,e=0,f=0,g=0;a:{if(a>>>0>5){break a}d=H[c+20>>2];e=H[c+12>>2];f=H[c+16>>2];if((d|0)>=(e|0)&f>>>0>=K[c+8>>2]|(d|0)>(e|0)){break a}e=I[H[c>>2]+f|0];f=f+1|0;d=f?d:d+1|0;H[c+16>>2]=f;H[c+20>>2]=d;d=e<<24>>24;if((d|0)<0){if(!td(a+1|0,b,c)){break a}e=d&127|H[b>>2]<<7}H[b>>2]=e;g=1}return g} function hb(a,b,c){var d=0,e=0,f=0,g=0;a:{if(a>>>0>5){break a}d=H[c+20>>2];e=H[c+12>>2];f=H[c+16>>2];if((d|0)>=(e|0)&f>>>0>=K[c+8>>2]|(d|0)>(e|0)){break a}e=I[H[c>>2]+f|0];f=f+1|0;d=f?d:d+1|0;H[c+16>>2]=f;H[c+20>>2]=d;d=e<<24>>24;if((d|0)<0){if(!hb(a+1|0,b,c)){break a}e=d&127|H[b>>2]<<7}H[b>>2]=e;g=1}return g}function Xa(a,b,c){var d=0,e=0,f=0,g=0;a:{if(a>>>0>5){break a}d=H[c+20>>2];e=H[c+12>>2];f=H[c+16>>2];if((d|0)>=(e|0)&f>>>0>=K[c+8>>2]|(d|0)>(e|0)){break a}e=I[H[c>>2]+f|0];f=f+1|0;d=f?d:d+1|0;H[c+16>>2]=f;H[c+20>>2]=d;d=e<<24>>24;if((d|0)<0){if(!Xa(a+1|0,b,c)){break a}e=d&127|H[b>>2]<<7}H[b>>2]=e;g=1}return g}function Qe(a,b,c){var d=0,e=0,f=0,g=0;a:{if(a>>>0>5){break a}d=H[c+20>>2];e=H[c+12>>2];f=H[c+16>>2];if((d|0)>=(e|0)&f>>>0>=K[c+8>>2]|(d|0)>(e|0)){break a}e=I[H[c>>2]+f|0];f=f+1|0;d=f?d:d+1|0;H[c+16>>2]=f;H[c+20>>2]=d;d=e<<24>>24;if((d|0)<0){if(!Qe(a+1|0,b,c)){break a}e=d&127|H[b>>2]<<7}H[b>>2]=e;g=1}return g}function Pc(a,b,c){var d=0,e=0,f=0,g=0;a:{if(a>>>0>5){break a}d=H[c+20>>2];e=H[c+12>>2];f=H[c+16>>2];if((d|0)>=(e|0)&f>>>0>=K[c+8>>2]|(d|0)>(e|0)){break a}e=I[H[c>>2]+f|0];f=f+1|0;d=f?d:d+1|0;H[c+16>>2]=f;H[c+20>>2]=d;d=e<<24>>24;if((d|0)<0){if(!Pc(a+1|0,b,c)){break a}e=d&127|H[b>>2]<<7}H[b>>2]=e;g=1}return g}function Fb(a,b,c){var d=0,e=0,f=0,g=0;a:{if(a>>>0>5){break a}d=H[c+20>>2];e=H[c+12>>2];f=H[c+16>>2];if((d|0)>=(e|0)&f>>>0>=K[c+8>>2]|(d|0)>(e|0)){break a}e=I[H[c>>2]+f|0];f=f+1|0;d=f?d:d+1|0;H[c+16>>2]=f;H[c+20>>2]=d;d=e<<24>>24;if((d|0)<0){if(!Fb(a+1|0,b,c)){break a}e=d&127|H[b>>2]<<7}H[b>>2]=e;g=1}return g}function Ea(a,b,c){var d=0,e=0,f=0,g=0;a:{if(a>>>0>5){break a}d=H[c+20>>2];e=H[c+12>>2];f=H[c+16>>2];if((d|0)>=(e|0)&f>>>0>=K[c+8>>2]|(d|0)>(e|0)){break a}e=I[H[c>>2]+f|0];f=f+1|0;d=f?d:d+1|0;H[c+16>>2]=f;H[c+20>>2]=d;d=e<<24>>24;if((d|0)<0){if(!Ea(a+1|0,b,c)){break a}e=d&127|H[b>>2]<<7}H[b>>2]=e;g=1}return g}function Bb(a,b,c){var d=0,e=0,f=0,g=0;a:{if(a>>>0>5){break a}d=H[c+20>>2];e=H[c+12>>2];f=H[c+16>>2];if((d|0)>=(e|0)&f>>>0>=K[c+8>>2]|(d|0)>(e|0)){break a}e=I[H[c>>2]+f|0];f=f+1|0;d=f?d:d+1|0;H[c+16>>2]=f;H[c+20>>2]=d;d=e<<24>>24;if((d|0)<0){if(!Bb(a+1|0,b,c)){break a}e=d&127|H[b>>2]<<7}H[b>>2]=e;g=1}return g}function Fa(a,b,c){var d=0,e=0;a:{b:{if(c>>>0>=4){if((a|b)&3){break b}while(1){if(H[a>>2]!=H[b>>2]){break b}b=b+4|0;a=a+4|0;c=c-4|0;if(c>>>0>3){continue}break}}if(!c){break a}}while(1){d=I[a|0];e=I[b|0];if((d|0)==(e|0)){b=b+1|0;a=a+1|0;c=c-1|0;if(c){continue}break a}break}return d-e|0}return 0}function Yc(a){var b=0,c=0,d=0,e=0;d=H[a>>2];if(d){e=d;c=H[a+4>>2];if((d|0)!=(c|0)){while(1){e=c-144|0;b=H[e+132>>2];if(b){H[c-8>>2]=b;oa(b)}b=H[c-28>>2];if(b){H[c-24>>2]=b;oa(b)}b=H[c-40>>2];if(b){H[c-36>>2]=b;oa(b)}oc(c-140|0);c=e;if((d|0)!=(c|0)){continue}break}e=H[a>>2]}H[a+4>>2]=d;oa(e)}}function Dg(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=H[b+4>>2];a:{if(!d){break a}b=H[H[H[b+8>>2]+(c<<2)>>2]+60>>2];if((b|0)<0){break a}a=H[d+24>>2];c=H[d+28>>2];if((a|0)==(c|0)){break a}b:{while(1){e=H[a>>2];if((b|0)==H[e+24>>2]){break b}a=a+4|0;if((c|0)!=(a|0)){continue}break}e=0}}return e|0}function Zh(a){a=a|0;var b=0;H[a+8>>2]=12384;H[a>>2]=12172;b=H[a+96>>2];if(b){H[a+100>>2]=b;oa(b)}b=H[a+80>>2];if(b){H[a+84>>2]=b;oa(b)}b=H[a+68>>2];if(b){H[a+72>>2]=b;oa(b)}b=H[a+56>>2];if(b){H[a+60>>2]=b;oa(b)}H[a+8>>2]=12620;b=H[a+44>>2];if(b){oa(b)}b=H[a+32>>2];if(b){oa(b)}return a|0}function Uc(a){var b=0,c=0,d=0;if(a){d=H[a+24>>2];if(d){b=d;c=H[a+28>>2];if((b|0)!=(c|0)){while(1){c=c-4|0;b=H[c>>2];H[c>>2]=0;if(b){Ra(b+12|0,H[b+16>>2]);Qa(b,H[b+4>>2]);oa(b)}if((c|0)!=(d|0)){continue}break}b=H[a+24>>2]}H[a+28>>2]=d;oa(b)}Ra(a+12|0,H[a+16>>2]);Qa(a,H[a+4>>2]);oa(a)}}function Yh(a){a=a|0;var b=0;H[a+8>>2]=12384;H[a>>2]=12172;b=H[a+96>>2];if(b){H[a+100>>2]=b;oa(b)}b=H[a+80>>2];if(b){H[a+84>>2]=b;oa(b)}b=H[a+68>>2];if(b){H[a+72>>2]=b;oa(b)}b=H[a+56>>2];if(b){H[a+60>>2]=b;oa(b)}H[a+8>>2]=12620;b=H[a+44>>2];if(b){oa(b)}b=H[a+32>>2];if(b){oa(b)}oa(a)}function vi(a){a=a|0;var b=0,c=0,d=0;H[a>>2]=13280;b=H[a+20>>2];if(b){H[a+24>>2]=b;oa(b)}d=H[a+8>>2];if(d){c=H[a+12>>2];b=d;if((c|0)!=(b|0)){while(1){c=c-4|0;b=H[c>>2];H[c>>2]=0;if(b){ea[H[H[b>>2]+4>>2]](b)}if((c|0)!=(d|0)){continue}break}b=H[a+8>>2]}H[a+12>>2]=d;oa(b)}return a|0}function xc(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0;h=H[c+8>>2];e=H[c+16>>2];g=H[c+12>>2];f=g;d=H[c+20>>2];if(h>>>0>e>>>0&(f|0)>=(d|0)|(d|0)<(f|0)){b=I[H[c>>2]+e|0];i=e+1|0;f=i?d:d+1|0;H[c+16>>2]=i;H[c+20>>2]=f;H[a+4>>2]=b}return e>>>0>>0&(d|0)<=(g|0)|(d|0)<(g|0)}function Wc(a){a=a|0;var b=0,c=0,d=0;H[a>>2]=13280;b=H[a+20>>2];if(b){H[a+24>>2]=b;oa(b)}d=H[a+8>>2];if(d){c=H[a+12>>2];b=d;if((c|0)!=(b|0)){while(1){c=c-4|0;b=H[c>>2];H[c>>2]=0;if(b){ea[H[H[b>>2]+4>>2]](b)}if((c|0)!=(d|0)){continue}break}b=H[a+8>>2]}H[a+12>>2]=d;oa(b)}oa(a)}function Ya(a,b,c){var d=0;if(!c){return H[a+4>>2]==H[b+4>>2]}if((a|0)==(b|0)){return 1}d=H[a+4>>2];a=I[d|0];c=H[b+4>>2];b=I[c|0];a:{if(!a|(b|0)!=(a|0)){break a}while(1){b=I[c+1|0];a=I[d+1|0];if(!a){break a}c=c+1|0;d=d+1|0;if((a|0)==(b|0)){continue}break}}return(a|0)==(b|0)}function _h(a){a=a|0;var b=0;H[a>>2]=12384;b=H[a+88>>2];if(b){H[a+92>>2]=b;oa(b)}b=H[a+72>>2];if(b){H[a+76>>2]=b;oa(b)}b=H[a+60>>2];if(b){H[a- -64>>2]=b;oa(b)}b=H[a+48>>2];if(b){H[a+52>>2]=b;oa(b)}H[a>>2]=12620;b=H[a+36>>2];if(b){oa(b)}b=H[a+24>>2];if(b){oa(b)}return a|0}function Fg(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=H[b+12>>2];b=H[b+8>>2];a=0;a:{if((d|0)==(b|0)){break a}a=d-b>>2;d=a>>>0<=1?1:a;a=0;b:{while(1){e=H[b+(a<<2)>>2];if(H[e+60>>2]==(c|0)){break b}a=a+1|0;if((d|0)!=(a|0)){continue}break}a=0;break a}a=(a|0)!=-1?e:0}return a|0}function ae(a,b){var c=0,d=0,e=0;H[a+8>>2]=0;H[a>>2]=0;H[a+4>>2]=0;a:{c=H[b+4>>2];d=H[b>>2];b:{if((c|0)==(d|0)){a=c;break b}c=c-d|0;if((c|0)<0){break a}d=c;e=pa(c);c=ra(e,0,c);d=d+c|0;H[a+8>>2]=d;H[a+4>>2]=d;H[a>>2]=c;c=H[b>>2];a=H[b+4>>2]}qa(e,c,a-c|0);return}sa();v()}function ed(a){var b=0,c=0,d=0,e=0;c=H[a+4>>2];d=H[a>>2];if((c|0)!=(d|0)){while(1){e=c-144|0;b=H[e+132>>2];if(b){H[c-8>>2]=b;oa(b)}b=H[c-28>>2];if(b){H[c-24>>2]=b;oa(b)}b=H[c-40>>2];if(b){H[c-36>>2]=b;oa(b)}oc(c-140|0);c=e;if((d|0)!=(c|0)){continue}break}}H[a+4>>2]=d}function Vh(a){a=a|0;var b=0;H[a>>2]=12384;b=H[a+88>>2];if(b){H[a+92>>2]=b;oa(b)}b=H[a+72>>2];if(b){H[a+76>>2]=b;oa(b)}b=H[a+60>>2];if(b){H[a- -64>>2]=b;oa(b)}b=H[a+48>>2];if(b){H[a+52>>2]=b;oa(b)}H[a>>2]=12620;b=H[a+36>>2];if(b){oa(b)}b=H[a+24>>2];if(b){oa(b)}oa(a)}function cb(a){var b=0;if(a){b=H[a+76>>2];if(b){H[a+80>>2]=b;oa(b)}b=H[a- -64>>2];if(b){H[a+68>>2]=b;oa(b)}b=H[a+48>>2];if(b){H[a+52>>2]=b;oa(b)}b=H[a+24>>2];if(b){H[a+28>>2]=b;oa(b)}b=H[a+12>>2];if(b){H[a+16>>2]=b;oa(b)}b=H[a>>2];if(b){H[a+4>>2]=b;oa(b)}oa(a)}}function Jd(a,b,c){var d=0,e=0,f=0,g=0;f=ca-16|0;ca=f;d=ca-16|0;ca=d;b=b-a>>2;while(1){if(b){H[d+12>>2]=a;e=b>>>1|0;H[d+12>>2]=H[d+12>>2]+(e<<2);g=(e^-1)+b|0;b=e;e=K[H[d+12>>2]>>2]>2];b=e?g:b;a=e?H[d+12>>2]+4|0:a;continue}break}ca=d+16|0;ca=f+16|0;return a}function oc(a){var b=0;b=H[a+84>>2];if(b){H[a+88>>2]=b;oa(b)}b=H[a+72>>2];if(b){H[a+76>>2]=b;oa(b)}b=H[a+52>>2];if(b){H[a+56>>2]=b;oa(b)}b=H[a+40>>2];if(b){H[a+44>>2]=b;oa(b)}b=H[a+28>>2];if(b){H[a+32>>2]=b;oa(b)}b=H[a+12>>2];if(b){oa(b)}a=H[a>>2];if(a){oa(a)}}function Xc(a,b){var c=0,d=0;d=pa(40);H[d>>2]=-1;c=d+8|0;H[c+16>>2]=0;H[c+20>>2]=0;H[c+8>>2]=0;H[c>>2]=0;H[c+4>>2]=0;H[c+24>>2]=0;H[c+28>>2]=0;ea[H[H[a>>2]+16>>2]](a,d);a=H[b+88>>2];H[b+88>>2]=d;if(a){b=H[a+8>>2];if(b){H[a+12>>2]=b;oa(b)}oa(a)}return 1}function Ma(a){var b=0,c=0,d=0;b=a;a:{if(b&3){while(1){if(!I[b|0]){break a}b=b+1|0;if(b&3){continue}break}}while(1){c=b;b=b+4|0;d=H[c>>2];if(!((d^-1)&d-16843009&-2139062144)){continue}break}while(1){b=c;c=b+1|0;if(I[b|0]){continue}break}}return b-a|0}function Ba(a){var b=0,c=0,d=0,e=0,f=0;d=I[a+12|0];c=H[a+8>>2];a:{if(c>>>0>4095){break a}b=H[a+4>>2];if((b|0)<=0){break a}b=b-1|0;H[a+4>>2]=b;c=I[b+H[a>>2]|0]|c<<8}d=0-d&255;b=N(d,c>>>8|0);e=c&255;f=e>>>0>>0;H[a+8>>2]=f?b+e|0:c-(b+d|0)|0;return f}function od(a,b){H[a+4>>2]=0;H[a+8>>2]=0;H[a>>2]=1984;H[a+12>>2]=0;H[a+16>>2]=0;H[a+20>>2]=0;H[a+24>>2]=0;H[a+28>>2]=0;H[a+32>>2]=0;H[a+36>>2]=0;H[a+40>>2]=0;H[a>>2]=2328;H[a+60>>2]=b;H[a+44>>2]=0;H[a+48>>2]=0;H[a+52>>2]=0;H[a+56>>2]=0;return a}function mc(a,b){var c=0,d=0,e=0;c=Ma(b);if(c>>>0<2147483632){a:{b:{if(c>>>0>=11){d=(c|15)+1|0;e=pa(d);H[a+8>>2]=d|-2147483648;H[a>>2]=e;H[a+4>>2]=c;d=c+e|0;break b}F[a+11|0]=c;d=a+c|0;e=a;if(!c){break a}}va(e,b,c)}F[d|0]=0;return a}Na();v()}function Ng(a){a=a|0;var b=0,c=0,d=0;if(a){if(F[a+27|0]<0){oa(H[a+16>>2])}b=H[a>>2];if(b){c=b;d=H[a+4>>2];if((b|0)!=(d|0)){while(1){c=d-12|0;if(F[d-1|0]<0){oa(H[c>>2])}d=c;if((d|0)!=(b|0)){continue}break}c=H[a>>2]}H[a+4>>2]=b;oa(c)}oa(a)}}function Jb(a,b){var c=0,d=0,e=0;a:{c=H[a>>2];b:{if(H[a+8>>2]-c>>2>>>0>=b>>>0){break b}if(b>>>0>=1073741824){break a}d=H[a+4>>2]-c|0;e=b<<2;b=va(pa(e),c,d);H[a+8>>2]=b+e;H[a+4>>2]=b+d;H[a>>2]=b;if(!c){break b}oa(c)}return}sa();v()}function Ga(a){a=a|0;var b=0,c=0;if(a){b=H[a+88>>2];H[a+88>>2]=0;if(b){c=H[b+8>>2];if(c){H[b+12>>2]=c;oa(c)}oa(b)}b=H[a+68>>2];if(b){H[a+72>>2]=b;oa(b)}b=H[a+64>>2];H[a+64>>2]=0;if(b){c=H[b>>2];if(c){H[b+4>>2]=c;oa(c)}oa(b)}oa(a)}}function Nd(a){var b=0,c=0,d=0;if(F[H[a>>2]]-48>>>0>=10){return 0}while(1){d=H[a>>2];c=-1;if(b>>>0<=214748364){c=F[d|0]-48|0;b=N(b,10);c=(c|0)>(b^2147483647)?-1:c+b|0}H[a>>2]=d+1;b=c;if(F[d+1|0]-48>>>0<10){continue}break}return b}function Cg(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;b=H[b+96>>2];a=pa(12);b=b+N(c,12)|0;c=H[b+4>>2];H[a>>2]=H[b>>2];H[a+4>>2]=c;H[a+8>>2]=H[b+8>>2];b=H[d>>2];if(b){H[d+4>>2]=b;oa(b)}H[d>>2]=a;a=a+12|0;H[d+8>>2]=a;H[d+4>>2]=a;return 1}function Ai(a){a=a|0;var b=0;H[a+24>>2]=1832;H[a>>2]=11048;b=H[a+32>>2];if(b){H[a+36>>2]=b;oa(b)}H[a>>2]=2448;b=H[a+20>>2];H[a+20>>2]=0;if(b){ea[H[H[b>>2]+4>>2]](b)}H[a>>2]=2232;b=H[a+16>>2];H[a+16>>2]=0;if(b){Ga(b)}return a|0}function Sj(a,b,c,d){var e=0,f=0,g=0,h=0;f=b^d;g=f>>31;e=b>>31;a=a^e;h=a-e|0;e=(b^e)-((a>>>0>>0)+e|0)|0;a=d>>31;b=c^a;f=f>>31;a=Tj(h,e,b-a|0,(a^d)-((a>>>0>b>>>0)+a|0)|0)^f;b=a-f|0;da=(g^da)-((a>>>0>>0)+g|0)|0;return b}function yi(a){a=a|0;var b=0;H[a+24>>2]=1832;H[a>>2]=11048;b=H[a+32>>2];if(b){H[a+36>>2]=b;oa(b)}H[a>>2]=2448;b=H[a+20>>2];H[a+20>>2]=0;if(b){ea[H[H[b>>2]+4>>2]](b)}H[a>>2]=2232;b=H[a+16>>2];H[a+16>>2]=0;if(b){Ga(b)}oa(a)}function Yb(a,b,c){var d=0,e=0,f=0;e=ca-16|0;ca=e;d=H[a+8>>2]&2147483647;a:{if(d>>>0>c>>>0){d=H[a>>2];H[a+4>>2]=c;yb(d,b,c);F[e+15|0]=0;F[c+d|0]=I[e+15|0];break a}f=a;a=H[a+4>>2];Gd(f,d-1|0,(c-d|0)+1|0,a,a,c,b)}ca=e+16|0}function Bf(a,b){a=a|0;b=b|0;var c=0,d=0;c=ca-16|0;ca=c;a=H[a+4>>2];a:{if((a|0)==-1){break a}F[c+15|0]=a;d=H[b+20>>2];if(!!H[b+16>>2]&(d|0)>=0|(d|0)>0){break a}Wb(b,H[b+4>>2],c+15|0,c+16|0)}ca=c+16|0;return(a|0)!=-1|0}function Xb(a,b,c){var d=0,e=0;d=ca-16|0;ca=d;a:{if(c>>>0<=10){F[a+11|0]=I[a+11|0]&128|c;F[a+11|0]=I[a+11|0]&127;yb(a,b,c);F[d+15|0]=0;F[a+c|0]=I[d+15|0];break a}e=a;a=I[a+11|0]&127;Gd(e,10,c-10|0,a,a,c,b)}ca=d+16|0}function Rj(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0;e=c>>>16|0;f=a>>>16|0;j=N(e,f);g=c&65535;h=a&65535;i=N(g,h);f=(i>>>16|0)+N(f,g)|0;e=(f&65535)+N(e,h)|0;da=(N(b,c)+j|0)+N(a,d)+(f>>>16)+(e>>>16)|0;return i&65535|e<<16}function Dd(a,b,c){var d=0;d=H[a+16>>2];if(!d){H[a+36>>2]=1;H[a+24>>2]=c;H[a+16>>2]=b;return}a:{if((b|0)==(d|0)){if(H[a+24>>2]!=2){break a}H[a+24>>2]=c;return}F[a+54|0]=1;H[a+24>>2]=2;H[a+36>>2]=H[a+36>>2]+1}}function th(){var a=0;a=Eb(pa(96));H[a+64>>2]=0;H[a+68>>2]=0;H[a+88>>2]=0;H[a+72>>2]=0;H[a+76>>2]=0;F[a+77|0]=0;F[a+78|0]=0;F[a+79|0]=0;F[a+80|0]=0;F[a+81|0]=0;F[a+82|0]=0;F[a+83|0]=0;F[a+84|0]=0;return a|0}function zi(a,b){a=a|0;b=b|0;var c=0,d=0;H[b>>2]=2;c=H[b+8>>2];d=H[b+12>>2]-c|0;if(d>>>0<=4294967291){kc(b+8|0,d+4|0);c=H[b+8>>2]}b=c+d|0;a=H[a+4>>2];F[b|0]=a;F[b+1|0]=a>>>8;F[b+2|0]=a>>>16;F[b+3|0]=a>>>24}function rj(a){a=a|0;var b=0;H[a>>2]=5580;b=H[a+96>>2];if(b){oa(b)}b=H[a+84>>2];if(b){oa(b)}b=H[a+72>>2];if(b){oa(b)}b=H[a+60>>2];if(b){oa(b)}H[a>>2]=3272;b=H[a+32>>2];if(b){H[a+36>>2]=b;oa(b)}return a|0}function ib(a,b,c,d,e){var f=0;f=ca-256|0;ca=f;if(!(e&73728|(c|0)<=(d|0))){d=c-d|0;c=d>>>0<256;ra(f,b&255,c?d:256);if(!c){while(1){Ab(a,f,256);d=d-256|0;if(d>>>0>255){continue}break}}Ab(a,f,d)}ca=f+256|0}function Ij(a){a=a|0;var b=0;H[a>>2]=3564;b=H[a+96>>2];if(b){oa(b)}b=H[a+84>>2];if(b){oa(b)}b=H[a+72>>2];if(b){oa(b)}b=H[a+60>>2];if(b){oa(b)}H[a>>2]=3272;b=H[a+32>>2];if(b){H[a+36>>2]=b;oa(b)}return a|0}function Ch(a){a=a|0;var b=0,c=0,d=0;b=H[a+8>>2];d=H[a+12>>2];if((b|0)==(d|0)){return 1}while(1){c=H[b>>2];c=ea[H[H[c>>2]+16>>2]](c,H[a+32>>2])|0;if(c){b=b+4|0;if((d|0)!=(b|0)){continue}}break}return c|0}function Yd(a,b){var c=0,d=0;c=H[a+8>>2];a=H[a+12>>2];if((c|0)!=(a|0)){a=a-c>>2;d=a>>>0<=1?1:a;a=0;while(1){if(H[H[(a<<2)+c>>2]+60>>2]==(b|0)){return a}a=a+1|0;if((d|0)!=(a|0)){continue}break}}return-1}function qj(a){a=a|0;var b=0;H[a>>2]=5580;b=H[a+96>>2];if(b){oa(b)}b=H[a+84>>2];if(b){oa(b)}b=H[a+72>>2];if(b){oa(b)}b=H[a+60>>2];if(b){oa(b)}H[a>>2]=3272;b=H[a+32>>2];if(b){H[a+36>>2]=b;oa(b)}oa(a)}function Hj(a){a=a|0;var b=0;H[a>>2]=3564;b=H[a+96>>2];if(b){oa(b)}b=H[a+84>>2];if(b){oa(b)}b=H[a+72>>2];if(b){oa(b)}b=H[a+60>>2];if(b){oa(b)}H[a>>2]=3272;b=H[a+32>>2];if(b){H[a+36>>2]=b;oa(b)}oa(a)}function $d(a,b,c){var d=0,e=0;d=a+4|0;a=nb(a,b);a:{if((d|0)==(a|0)){break a}b=H[a+32>>2];d=H[a+28>>2];if((b|0)==(d|0)){break a}Cc(c,b-d|0);c=Dc(c);b=H[a+28>>2];qa(c,b,H[a+32>>2]-b|0);e=1}return e}function Qf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;e=ca-16|0;ca=e;a=_(H[a+60>>2],b|0,c|0,d&255,e+8|0)|0;if(a){H[3992]=a;a=-1}else{a=0}ca=e+16|0;da=a?-1:H[e+12>>2];return(a?-1:H[e+8>>2])|0}function Sd(a){var b=0;b=H[a+72>>2];H[a+72>>2]=b-1|b;b=H[a>>2];if(b&8){H[a>>2]=b|32;return-1}H[a+4>>2]=0;H[a+8>>2]=0;b=H[a+44>>2];H[a+28>>2]=b;H[a+20>>2]=b;H[a+16>>2]=b+H[a+48>>2];return 0}function Eb(a){H[a+8>>2]=0;H[a+12>>2]=0;H[a>>2]=0;H[a+40>>2]=0;H[a+44>>2]=0;H[a+28>>2]=9;F[a+24|0]=1;H[a+56>>2]=-1;H[a+60>>2]=0;H[a+16>>2]=0;H[a+20>>2]=0;H[a+48>>2]=0;H[a+52>>2]=0;return a}function hf(a,b){a=a|0;b=b|0;var c=0,d=0;d=H[a+16>>2];c=0;a:{if(H[a+20>>2]-d>>2<=(b|0)){break a}b=H[(b<<2)+d>>2];c=0;if((b|0)<0){break a}c=rb(H[H[a+36>>2]+(b<<2)>>2])}return c|0}function Mg(){var a=0,b=0;a=pa(40);H[a+4>>2]=0;H[a+8>>2]=0;H[a+24>>2]=0;H[a+28>>2]=0;b=a+16|0;H[b>>2]=0;H[b+4>>2]=0;H[a>>2]=a+4;H[a+12>>2]=b;H[a+32>>2]=0;H[a+36>>2]=0;return a|0}function Vf(a,b){a=a|0;b=b|0;var c=0,d=0;Wd(a,b);a:{if((b|0)<0){break a}d=H[a+88>>2];c=H[a+84>>2];if(d-c>>2<=(b|0)){break a}c=(b<<2)+c|0;b=c+4|0;va(c,b,d-b|0);H[a+88>>2]=d-4}}function Rh(a){a=a|0;var b=0;H[a+8>>2]=12804;H[a>>2]=12640;b=H[a+56>>2];if(b){H[a+60>>2]=b;oa(b)}H[a+8>>2]=12620;b=H[a+44>>2];if(b){oa(b)}b=H[a+32>>2];if(b){oa(b)}return a|0}function Lh(a){a=a|0;var b=0;H[a+8>>2]=11872;H[a>>2]=12932;b=H[a+56>>2];if(b){H[a+60>>2]=b;oa(b)}H[a+8>>2]=12124;b=H[a+44>>2];if(b){oa(b)}b=H[a+32>>2];if(b){oa(b)}return a|0}function zb(a){var b=0,c=0;b=H[3958];c=a+7&-8;a=b+c|0;a:{if(a>>>0<=b>>>0?c:0){break a}if(a>>>0>fa()<<16>>>0){if(!($(a|0)|0)){break a}}H[3958]=a;return b}H[3992]=48;return-1}function bj(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;H[a+4>>2]=b;b=H[H[H[b+4>>2]+8>>2]+(c<<2)>>2];H[a+12>>2]=c;H[a+8>>2]=b;a=H[a+8>>2];if(I[a+24|0]==3){d=H[a+28>>2]==9}return d|0}function wf(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=H[a+8>>2];a:{if(!I[d+24|0]){break a}if(!mb(d,H[b+4>>2]-H[b>>2]>>2)){break a}e=ea[H[H[a>>2]+32>>2]](a,b,c)|0}return e|0}function Qh(a){a=a|0;var b=0;H[a+8>>2]=12804;H[a>>2]=12640;b=H[a+56>>2];if(b){H[a+60>>2]=b;oa(b)}H[a+8>>2]=12620;b=H[a+44>>2];if(b){oa(b)}b=H[a+32>>2];if(b){oa(b)}oa(a)}function Kh(a){a=a|0;var b=0;H[a+8>>2]=11872;H[a>>2]=12932;b=H[a+56>>2];if(b){H[a+60>>2]=b;oa(b)}H[a+8>>2]=12124;b=H[a+44>>2];if(b){oa(b)}b=H[a+32>>2];if(b){oa(b)}oa(a)}function nj(a){a=a|0;var b=0;H[a>>2]=5816;b=H[a+76>>2];if(b){oa(b)}b=H[a+68>>2];H[a+68>>2]=0;if(b){oa(b)}H[a>>2]=3272;b=H[a+32>>2];if(b){H[a+36>>2]=b;oa(b)}return a|0}function Ra(a,b){if(b){Ra(a,H[b>>2]);Ra(a,H[b+4>>2]);a=H[b+28>>2];H[b+28>>2]=0;if(a){Ra(a+12|0,H[a+16>>2]);Qa(a,H[a+4>>2]);oa(a)}if(F[b+27|0]<0){oa(H[b+16>>2])}oa(b)}}function Gi(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;H[a+4>>2]=b;d=H[H[H[b+4>>2]+8>>2]+(c<<2)>>2];H[a+12>>2]=c;H[a+8>>2]=d;return H[H[H[H[b+4>>2]+8>>2]+(c<<2)>>2]+28>>2]==9|0}function Ej(a){a=a|0;var b=0;H[a>>2]=3812;b=H[a+76>>2];if(b){oa(b)}b=H[a+68>>2];H[a+68>>2]=0;if(b){oa(b)}H[a>>2]=3272;b=H[a+32>>2];if(b){H[a+36>>2]=b;oa(b)}return a|0}function Vc(a){H[a+40>>2]=0;H[a+4>>2]=0;H[a+8>>2]=0;H[a>>2]=13280;H[a+12>>2]=0;H[a+16>>2]=0;H[a+20>>2]=0;H[a+24>>2]=0;H[a+28>>2]=0;H[a+32>>2]=0;G[a+36>>1]=0;return a}function Hd(a,b){var c=0,d=0,e=0,f=0;H[a>>2]=15260;H[a>>2]=15372;c=Ma(b);d=pa(c+13|0);H[d+8>>2]=0;H[d+4>>2]=c;H[d>>2]=c;e=a,f=qa(d+12|0,b,c+1|0),H[e+4>>2]=f;return a}function jg(a,b){a=a|0;b=b|0;var c=0;a:{if(!(ea[H[H[a>>2]+36>>2]](a,b)|0)){break a}if(!(ea[H[H[a>>2]+40>>2]](a,b)|0)){break a}c=ea[H[H[a>>2]+44>>2]](a)|0}return c|0}function mj(a){a=a|0;var b=0;H[a>>2]=5816;b=H[a+76>>2];if(b){oa(b)}b=H[a+68>>2];H[a+68>>2]=0;if(b){oa(b)}H[a>>2]=3272;b=H[a+32>>2];if(b){H[a+36>>2]=b;oa(b)}oa(a)}function Dj(a){a=a|0;var b=0;H[a>>2]=3812;b=H[a+76>>2];if(b){oa(b)}b=H[a+68>>2];H[a+68>>2]=0;if(b){oa(b)}H[a>>2]=3272;b=H[a+32>>2];if(b){H[a+36>>2]=b;oa(b)}oa(a)}function Xe(a){a=a|0;var b=0;a:{if(!H[a- -64>>2]|!H[a+68>>2]|(!H[a+44>>2]|!H[a+48>>2])){break a}if(!H[a+52>>2]|!H[a+56>>2]){break a}b=H[a+92>>2]!=-1}return b|0}function cf(a){a=a|0;var b=0;H[a>>2]=2448;b=H[a+20>>2];H[a+20>>2]=0;if(b){ea[H[H[b>>2]+4>>2]](b)}H[a>>2]=2232;b=H[a+16>>2];H[a+16>>2]=0;if(b){Ga(b)}return a|0}function Pj(a,b){a=a|0;b=b|0;var c=0;b=H[b+88>>2];if(!(!b|H[b>>2]!=2)){c=a;a=H[b+8>>2];H[c+4>>2]=I[a|0]|I[a+1|0]<<8|(I[a+2|0]<<16|I[a+3|0]<<24);c=1}return c|0}function tc(a){a=a|0;var b=0;a:{if(!H[a+48>>2]|!H[a+52>>2]|(!H[a+28>>2]|!H[a+32>>2])){break a}if(!H[a+36>>2]|!H[a+40>>2]){break a}b=H[a+76>>2]!=-1}return b|0}function Sh(a){a=a|0;var b=0;H[a>>2]=12804;b=H[a+48>>2];if(b){H[a+52>>2]=b;oa(b)}H[a>>2]=12620;b=H[a+36>>2];if(b){oa(b)}b=H[a+24>>2];if(b){oa(b)}return a|0}function He(a){a=a|0;var b=0;H[a>>2]=11872;b=H[a+48>>2];if(b){H[a+52>>2]=b;oa(b)}H[a>>2]=12124;b=H[a+36>>2];if(b){oa(b)}b=H[a+24>>2];if(b){oa(b)}return a|0}function bf(a){a=a|0;var b=0;H[a>>2]=2448;b=H[a+20>>2];H[a+20>>2]=0;if(b){ea[H[H[b>>2]+4>>2]](b)}H[a>>2]=2232;b=H[a+16>>2];H[a+16>>2]=0;if(b){Ga(b)}oa(a)}function wh(){var a=0,b=0;b=pa(40);H[b>>2]=-1;a=b+8|0;H[a+16>>2]=0;H[a+20>>2]=0;H[a+8>>2]=0;H[a>>2]=0;H[a+4>>2]=0;H[a+24>>2]=0;H[a+28>>2]=0;return b|0}function gf(a,b){a=a|0;b=b|0;var c=0,d=0;d=H[a+4>>2];a:{if(d){c=1;if(I[d+36|0]<2){break a}}c=ea[H[H[a>>2]+48>>2]](a,H[b+4>>2]-H[b>>2]>>2)|0}return c|0}function ci(a){a=a|0;var b=0;H[a>>2]=11872;b=H[a+48>>2];if(b){H[a+52>>2]=b;oa(b)}H[a>>2]=12124;b=H[a+36>>2];if(b){oa(b)}b=H[a+24>>2];if(b){oa(b)}oa(a)}function Mh(a){a=a|0;var b=0;H[a>>2]=12804;b=H[a+48>>2];if(b){H[a+52>>2]=b;oa(b)}H[a>>2]=12620;b=H[a+36>>2];if(b){oa(b)}b=H[a+24>>2];if(b){oa(b)}oa(a)}function Ha(a){H[a+8>>2]=0;H[a+12>>2]=0;H[a>>2]=0;H[a+16>>2]=0;H[a+20>>2]=0;H[a+32>>2]=0;H[a+24>>2]=0;H[a+28>>2]=0;G[a+38>>1]=0;F[a+36|0]=0;return a}function Hf(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;if(Ya(a,H[b+8>>2],f)){Cd(b,c,d,e);return}a=H[a+8>>2];ea[H[H[a>>2]+20>>2]](a,b,c,d,e,f)}function Ei(a,b,c){a=a|0;b=b|0;c=c|0;a:{if(I[H[a+4>>2]+36|0]>=2){b=0;if(!(ea[H[H[a>>2]+52>>2]](a)|0)){break a}}b=Xc(a+24|0,H[a+16>>2])}return b|0}function Fi(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;a:{if(I[H[a+4>>2]+36|0]<=1){d=0;if(!(ea[H[H[a>>2]+52>>2]](a)|0)){break a}}d=nd(a,b,c)}return d|0}function gh(){var a=0;a=_d(pa(108));H[a+84>>2]=0;H[a+88>>2]=0;H[a>>2]=13664;H[a+92>>2]=0;H[a+96>>2]=0;H[a+100>>2]=0;H[a+104>>2]=0;return a|0}function Zd(a,b){var c=0;c=-1;a:{if((b|0)==-1|(b|0)>4){break a}b=N(b,12)+a|0;a=H[b+20>>2];if((H[b+24>>2]-a|0)<=0){break a}c=H[a>>2]}return c}function lc(a,b,c,d,e,f,g){H[a>>2]=0;H[a+56>>2]=b;H[a+48>>2]=0;H[a+52>>2]=0;H[a+40>>2]=f;H[a+44>>2]=g;F[a+32|0]=e;H[a+28>>2]=d;F[a+24|0]=c}function aj(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;a:{if(I[H[a+4>>2]+36|0]<=1){d=0;if(!xc(a+24|0,H[a+8>>2],c)){break a}}d=nd(a,b,c)}return d|0}function $i(a,b,c){a=a|0;b=b|0;c=c|0;a:{if(I[H[a+4>>2]+36|0]>=2){b=0;if(!xc(a+24|0,rb(a),c)){break a}}b=Xc(a+24|0,H[a+16>>2])}return b|0}function Yf(a){a=a|0;var b=0;H[a>>2]=13664;b=H[a+96>>2];if(b){H[a+100>>2]=b;oa(b)}b=H[a+84>>2];if(b){H[a+88>>2]=b;oa(b)}return _b(a)|0}function Dc(a){var b=0;if(I[a+11|0]>>>7|0){b=H[a+4>>2]}else{b=I[a+11|0]&127}if(!b){af(1232);v()}if(I[a+11|0]>>>7|0){a=H[a>>2]}return a}function Xf(a){a=a|0;var b=0;H[a>>2]=13664;b=H[a+96>>2];if(b){H[a+100>>2]=b;oa(b)}b=H[a+84>>2];if(b){H[a+88>>2]=b;oa(b)}oa(_b(a))}function zj(a){a=a|0;var b=0;H[a>>2]=4040;b=H[a+76>>2];if(b){oa(b)}H[a>>2]=3272;b=H[a+32>>2];if(b){H[a+36>>2]=b;oa(b)}return a|0}function jj(a){a=a|0;var b=0;H[a>>2]=6032;b=H[a+76>>2];if(b){oa(b)}H[a>>2]=3272;b=H[a+32>>2];if(b){H[a+36>>2]=b;oa(b)}return a|0}function Qa(a,b){if(b){Qa(a,H[b>>2]);Qa(a,H[b+4>>2]);a=H[b+28>>2];if(a){H[b+32>>2]=a;oa(a)}if(F[b+27|0]<0){oa(H[b+16>>2])}oa(b)}}function Vg(){var a=0;a=pa(28);H[a>>2]=0;H[a+4>>2]=0;H[a+24>>2]=0;H[a+16>>2]=0;H[a+20>>2]=0;H[a+8>>2]=0;H[a+12>>2]=0;return a|0}function wg(a){a=a|0;var b=0;H[a>>2]=1984;b=H[a+16>>2];if(b){H[a+20>>2]=b;oa(b)}b=H[a+4>>2];if(b){H[a+8>>2]=b;oa(b)}return a|0}function eh(){var a=0,b=0;a=pa(24);H[a+4>>2]=0;H[a+8>>2]=0;b=a+16|0;H[b>>2]=0;H[b+4>>2]=0;H[a>>2]=a+4;H[a+12>>2]=b;return a|0}function Kf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;if(Ya(a,H[b+8>>2],0)){Dd(b,c,d);return}a=H[a+8>>2];ea[H[H[a>>2]+28>>2]](a,b,c,d)}function yj(a){a=a|0;var b=0;H[a>>2]=4040;b=H[a+76>>2];if(b){oa(b)}H[a>>2]=3272;b=H[a+32>>2];if(b){H[a+36>>2]=b;oa(b)}oa(a)}function ij(a){a=a|0;var b=0;H[a>>2]=6032;b=H[a+76>>2];if(b){oa(b)}H[a>>2]=3272;b=H[a+32>>2];if(b){H[a+36>>2]=b;oa(b)}oa(a)}function pa(a){var b=0;a=a?a:1;a:{while(1){b=Ec(a);if(b){break a}b=H[4422];if(b){ea[b|0]();continue}break}X();v()}return b}function Kb(a,b){if(b){Kb(a,H[b>>2]);Kb(a,H[b+4>>2]);if(F[b+39|0]<0){oa(H[b+28>>2])}if(F[b+27|0]<0){oa(H[b+16>>2])}oa(b)}}function Ad(a){a=a|0;var b=0,c=0;H[a>>2]=15372;b=H[a+4>>2]-12|0;c=H[b+8>>2]-1|0;H[b+8>>2]=c;if((c|0)<0){oa(b)}return a|0}function lh(){var a=0;a=pa(24);H[a+8>>2]=0;H[a+12>>2]=0;H[a+4>>2]=-1;H[a>>2]=1832;H[a+16>>2]=0;H[a+20>>2]=0;return a|0}function pd(a,b,c){a=a|0;b=b|0;c=c|0;H[a+4>>2]=b;b=H[H[H[b+4>>2]+8>>2]+(c<<2)>>2];H[a+12>>2]=c;H[a+8>>2]=b;return 1}function wc(a){a=a|0;var b=0;if(!(!H[a+60>>2]|!H[a+44>>2]|(!H[a+48>>2]|!H[a+52>>2]))){b=H[a+56>>2]!=0}return b|0}function Id(a,b){if(I[a+11|0]>>>7|0){H[a+4>>2]=b;return}F[a+11|0]=I[a+11|0]&128|b;F[a+11|0]=I[a+11|0]&127}function wj(a){a=a|0;var b=0;H[a>>2]=4276;H[a>>2]=3272;b=H[a+32>>2];if(b){H[a+36>>2]=b;oa(b)}return a|0}function fj(a){a=a|0;var b=0;H[a>>2]=6256;H[a>>2]=3272;b=H[a+32>>2];if(b){H[a+36>>2]=b;oa(b)}return a|0}function bi(a){a=a|0;var b=0;H[a>>2]=12124;b=H[a+36>>2];if(b){oa(b)}b=H[a+24>>2];if(b){oa(b)}return a|0}function Uh(a){a=a|0;var b=0;H[a>>2]=12620;b=H[a+36>>2];if(b){oa(b)}b=H[a+24>>2];if(b){oa(b)}return a|0}function lg(a){a=a|0;if(a){if(F[a+39|0]<0){oa(H[a+28>>2])}Oc(a+12|0,H[a+16>>2]);Kb(a,H[a+4>>2]);oa(a)}}function Pb(a){a=a|0;var b=0;if(!(!H[a+52>>2]|(!H[a+44>>2]|!H[a+48>>2]))){b=H[a+56>>2]!=0}return b|0}function vj(a){a=a|0;var b=0;H[a>>2]=4276;H[a>>2]=3272;b=H[a+32>>2];if(b){H[a+36>>2]=b;oa(b)}oa(a)}function vc(a,b){a=a|0;b=b|0;var c=0;if(!(H[b+56>>2]|!b|I[b+24|0]!=3)){H[a+60>>2]=b;c=1}return c|0}function ej(a){a=a|0;var b=0;H[a>>2]=6256;H[a>>2]=3272;b=H[a+32>>2];if(b){H[a+36>>2]=b;oa(b)}oa(a)}function ai(a){a=a|0;var b=0;H[a>>2]=12124;b=H[a+36>>2];if(b){oa(b)}b=H[a+24>>2];if(b){oa(b)}oa(a)}function Th(a){a=a|0;var b=0;H[a>>2]=12620;b=H[a+36>>2];if(b){oa(b)}b=H[a+24>>2];if(b){oa(b)}oa(a)}function xh(a,b,c){a=a|0;b=b|0;c=c|0;H[a+16>>2]=0;H[a+20>>2]=0;H[a>>2]=b;H[a+8>>2]=c;H[a+12>>2]=0}function We(a,b){a=a|0;b=b|0;var c=0;if(!(H[b+56>>2]|I[b+24|0]!=3)){H[a- -64>>2]=b;c=1}return c|0}function yc(a){var b=0;b=H[a+16>>2];if(b){H[a+20>>2]=b;oa(b)}b=H[a>>2];if(b){H[a+4>>2]=b;oa(b)}}function sc(a,b){a=a|0;b=b|0;var c=0;if(!(H[b+56>>2]|I[b+24|0]!=3)){H[a+48>>2]=b;c=1}return c|0}function Gf(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;if(Ya(a,H[b+8>>2],f)){Cd(b,c,d,e)}}function wa(){var a=0;a=Bc(4);H[a>>2]=15260;H[a>>2]=15220;H[a>>2]=15240;Y(a|0,15352,14);v()}function sf(a){a=a|0;var b=0;H[a>>2]=2232;b=H[a+16>>2];H[a+16>>2]=0;if(b){Ga(b)}return a|0}function Kj(a){a=a|0;var b=0;H[a>>2]=3272;b=H[a+32>>2];if(b){H[a+36>>2]=b;oa(b)}return a|0}function mi(a){a=a|0;var b=0;H[a>>2]=1832;b=H[a+8>>2];if(b){H[a+12>>2]=b;oa(b)}return a|0}function Ci(a){a=a|0;var b=0;b=rb(a);return Je(a+24|0,b?b:H[a+8>>2],H[H[a+4>>2]+32>>2])|0}function rf(a){a=a|0;var b=0;H[a>>2]=2232;b=H[a+16>>2];H[a+16>>2]=0;if(b){Ga(b)}oa(a)}function ji(a){a=a|0;var b=0;H[a>>2]=1832;b=H[a+8>>2];if(b){H[a+12>>2]=b;oa(b)}oa(a)} function Ub(a){a=a|0;var b=0;H[a>>2]=3272;b=H[a+32>>2];if(b){H[a+36>>2]=b;oa(b)}oa(a)}function Za(a){var b=0;H[a+16>>2]=0;b=H[a>>2];H[a+4>>2]=b;H[a+12>>2]=b;if(b){oa(b)}}function Oc(a,b){if(b){Oc(a,H[b>>2]);Oc(a,H[b+4>>2]);Kb(b+20|0,H[b+24>>2]);oa(b)}}function wi(a){a=a|0;if(!H[a+44>>2]){return 0}return ea[H[H[a>>2]+48>>2]](a)|0}function vh(a){a=a|0;var b=0;if(a){b=H[a+8>>2];if(b){H[a+12>>2]=b;oa(b)}oa(a)}}function Uj(a){var b=0;while(1){if(a){a=a-1&a;b=b+1|0;continue}break}return b}function Lf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;if(Ya(a,H[b+8>>2],0)){Dd(b,c,d)}}function ui(a,b){a=a|0;b=b|0;a=H[a+48>>2];return ea[H[H[a>>2]+20>>2]](a,b)|0}function ni(a,b){a=a|0;b=b|0;a=H[a+48>>2];return ea[H[H[a>>2]+12>>2]](a,b)|0}function li(a,b){a=a|0;b=b|0;a=H[a+48>>2];return ea[H[H[a>>2]+16>>2]](a,b)|0}function lb(){var a=0;a=pa(12);H[a>>2]=0;H[a+4>>2]=0;H[a+8>>2]=0;return a|0}function kb(a){a=a|0;var b=0;if(a){b=H[a>>2];if(b){H[a+4>>2]=b;oa(b)}oa(a)}}function Vj(a){var b=0;b=a&31;a=0-a&31;return(-1>>>b&-2)<>>a} function dh(a,b,c){a=a|0;b=b|0;c=c|0;H[a+32>>2]=c;H[a+28>>2]=b;return 1}function ch(a){a=a|0;if(a){Ra(a+12|0,H[a+16>>2]);Qa(a,H[a+4>>2]);oa(a)}}function Rd(a,b,c){a:{if(H[c+76>>2]<0){a=Fc(a,b,c);break a}a=Fc(a,b,c)}}function Mb(a,b){a=a|0;b=b|0;if(b>>>0<=1){H[a+28>>2]=b}return b>>>0<2|0}function Fh(a,b){a=a|0;b=b|0;F[b+84|0]=1;H[b+72>>2]=H[b+68>>2];return 1}function si(a){a=a|0;a=H[a+48>>2];return ea[H[H[a>>2]+24>>2]](a)|0}function ri(a){a=a|0;a=H[a+48>>2];return ea[H[H[a>>2]+28>>2]](a)|0}function oi(a){a=a|0;a=H[a+48>>2];return ea[H[H[a>>2]+36>>2]](a)|0}function ih(){var a=0;a=pa(8);H[a+4>>2]=-1;H[a>>2]=1032;return a|0}function Gg(a,b,c){a=a|0;b=b|0;c=c|0;return H[H[b+8>>2]+(c<<2)>>2]}function _i(a,b){a=a|0;b=b|0;return Fd(a+24|0,rb(a),H[a+8>>2])|0}function Bi(a,b){a=a|0;b=b|0;return Re(a+24|0,rb(a),H[a+8>>2])|0}function xf(a,b){a=a|0;b=b|0;H[a+12>>2]=-1;H[a+8>>2]=b;return 1}function ne(a,b){a=a|0;b=b|0;return ea[H[H[a>>2]+12>>2]](a,b)|0}function Ff(a){a=a|0;if(!a){return 0}return(Ed(a,15068)|0)!=0|0}function Di(a,b){a=a|0;b=b|0;return ea[H[H[a>>2]+56>>2]](a,b)|0}function $g(a){a=a|0;if(a){if(F[a+15|0]<0){oa(H[a+4>>2])}oa(a)}}function kh(a,b){a=a|0;b=b|0;return O(L[H[a+8>>2]+(b<<2)>>2])}function af(a){a=Hd(Bc(8),a);H[a>>2]=15472;Y(a|0,15504,1);v()}function Ue(a){a=Hd(Bc(8),a);H[a>>2]=15420;Y(a|0,15452,1);v()}function _g(a,b){a=a|0;b=b|0;return O(L[H[a>>2]+(b<<2)>>2])}function fh(a){a=a|0;return(H[a+100>>2]-H[a+96>>2]|0)/12|0}function ah(a){a=a|0;return(F[a+15|0]<0?H[a+4>>2]:a+4|0)|0}function _f(a,b){a=a|0;b=b|0;return H[H[a+4>>2]+(b<<2)>>2]}function Pf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;da=0;return 0}function Ke(a){a=Vc(a);H[a+44>>2]=0;H[a>>2]=11180;return a}function ie(a,b){a=a|0;b=b|0;return H[H[a>>2]+(b<<2)>>2]}function Xg(a,b){a=a|0;b=b|0;return G[H[a>>2]+(b<<1)>>1]}function Wg(a,b){a=a|0;b=b|0;return J[H[a>>2]+(b<<1)>>1]}function Zb(a,b){var c=0;c=pa(b);H[a+4>>2]=b;H[a>>2]=c}function Jg(a,b,c){a=a|0;b=b|0;c=c|0;return Zd(b,c)|0}function _d(a){H[a>>2]=13724;ra(a+4|0,0,80);return a}function me(a){a=a|0;return H[a+12>>2]-H[a+8>>2]>>2}function Qj(a){if(a){return 31-Q(a-1^a)|0}return 32}function cc(a){a=a|0;if(a){ea[H[H[a>>2]+4>>2]](a)}}function Zg(a,b){a=a|0;b=b|0;return F[H[a>>2]+b|0]}function Yg(a,b){a=a|0;b=b|0;return I[H[a>>2]+b|0]}function Uf(a){a=a|0;return H[a+8>>2]-H[a+4>>2]>>2}function jd(a,b){a=a|0;b=b|0;H[a+4>>2]=b;return 1}function je(a){a=a|0;return H[a+4>>2]-H[a>>2]>>1}function Qc(a){a=a|0;return H[a+4>>2]-H[a>>2]>>2}function le(a){a=a|0;return H[a+4>>2]-H[a>>2]|0}function Ab(a,b,c){if(!(I[a|0]&32)){Fc(b,c,a)}}function vf(a,b,c){a=a|0;b=b|0;c=c|0;return 1}function hi(a,b){a=a|0;b=b|0;return I[b+24|0]}function Pg(a,b){a=a|0;b=b|0;return H[b+8>>2]}function Nj(a){a=a|0;return I[H[a+8>>2]+24|0]}function Li(a){a=a|0;H[a>>2]=10032;return a|0}function Eg(a,b){a=a|0;b=b|0;return H[b+4>>2]}function Yi(a){a=a|0;H[a>>2]=7144;return a|0}function Ui(a){a=a|0;H[a>>2]=8080;return a|0}function Sf(a){a=a|0;return aa(H[a+60>>2])|0}function Pi(a){a=a|0;H[a>>2]=9028;return a|0}function jh(a){a=a|0;return O(L[a+20>>2])}function Ji(a){a=a|0;H[a>>2]=10032;oa(a)}function Xi(a){a=a|0;H[a>>2]=7144;oa(a)}function Si(a){a=a|0;H[a>>2]=8080;oa(a)}function Oi(a){a=a|0;H[a>>2]=9028;oa(a)}function sh(a){a=a|0;return H[a+88>>2]}function rh(a){a=a|0;return H[a+56>>2]}function oh(a){a=a|0;return H[a+40>>2]}function nh(a){a=a|0;return H[a+48>>2]}function mh(a){a=a|0;return H[a+60>>2]}function eb(a){a=a|0;return H[a+28>>2]}function df(){H[4292]=17048;H[4274]=42}function Rc(a){a=a|0;return H[a+80>>2]}function qh(a){a=a|0;return F[a+24|0]}function ph(a){a=a|0;return I[a+32|0]}function md(a,b){a=a|0;b=b|0;return-1}function db(a){a=a|0;return H[a+4>>2]}function bh(a){a=a|0;return!H[a>>2]|0}function _e(a,b){a=a|0;b=b|0;return 6}function Zc(a){a=a|0;return H[a+8>>2]}function Pd(a,b){a=a|0;b=b|0;return 1}function Ja(a,b){a=a|0;b=b|0;return 0}function Bj(a,b){a=a|0;b=b|0;return 2}function Bc(a){return Ec(a+80|0)+80|0}function pe(a){a=a|0;return H[a>>2]}function yh(){return Ha(pa(40))|0}function uh(){return Eb(pa(64))|0}function hh(){return _d(pa(84))|0}function Sc(a){a=a|0;if(a){oa(a)}}function zc(a){a=a|0;Ad(a);oa(a)}function Ef(a){a=a|0;return 1171}function Df(a){a=a|0;return 1245}function Cf(a){a=a|0;return 1211}function Ta(a){a=a|0;return a|0}function yf(a){a=a|0;oa(rd(a))}function fi(a){a=a|0;oa(Be(a))}function ei(a){a=a|0;oa(Ae(a))}function di(a){a=a|0;oa(ze(a))}function Tf(a){a=a|0;oa(_b(a))}function ld(a){a=a|0;return 3}function _a(a){a=a|0;return 0}function Ze(a){a=a|0;return 5}function Tb(a){a=a|0;return 2}function Ob(a){a=a|0;return 6}function Da(a){a=a|0;return 1}function $e(a){a=a|0;return 4}function sa(){Ue(1164);v()}function Na(){Ue(1232);v()}function La(a){a=a|0;oa(a)}function Ca(){af(1164);v()}function fb(a){a=a|0;v()}function eg(){return 10}function dg(){return 11}function cg(){return 12}function kg(){return 5}function ig(){return 6}function hg(){return 7}function gg(){return 8}function fg(){return 9}function fe(){return 3}function ee(){return 4}function bg(){return-2}function bc(){return-1}function ag(){return-3}function ac(){return 1}function Zf(){return-5}function Qb(){return 0}function Nc(){return 2}function $f(){return-4}function Nf(){X();v()}function Td(a){a=a|0} // EMSCRIPTEN_END_FUNCS e=I;p(q);var ea=c([null,Ad,Ta,La,Tb,Pj,zi,Gh,Fd,Bf,xc,Nh,_e,Bj,Ta,mi,ji,Da,gj,Ti,Ki,Re,xi,Je,_e,hi,wg,fb,dh,ke,jg,_f,Uf,eb,Ja,Nf,Pd,Da,rd,yf,Of,Af,zf,sf,rf,pd,xf,wf,vf,Pd,uf,tf,kf,jf,qf,pf,hf,of,nf,mf,lf,cf,bf,pd,gf,ff,nd,ef,Nj,Oj,Kj,Ub,Da,db,Pb,_a,md,Ja,_a,Da,Mj,Lj,fb,fb,Ub,Tb,Pb,Jj,Ij,Hj,$e,Pb,Gj,Fj,Ej,Dj,ld,wc,Da,Ja,vc,Cj,Aj,zj,yj,Ze,wc,Da,Ja,vc,Ye,xj,wj,vj,Ob,Xe,Da,Ja,We,Ve,uj,Ta,La,Mb,eb,Nb,fb,Ub,Da,Pb,tj,fb,Ub,Tb,Pb,sj,rj,qj,$e,Pb,pj,oj,nj,mj,ld,wc,Da,Ja,vc,lj,kj,jj,ij,Ze,wc,Da,Ja,vc,Ye,hj,fj,ej,Ob,Xe,Da,Ja,We,Ve,dj,Ta,La,Mb,eb,Lb,fb,Ub,_a,Da,cj,cf,bf,bj,$i,aj,Zi,Tb,_i,Yi,Xi,Ob,db,tc,Da,Ja,sc,Da,Tb,Te,Wi,Ta,La,Mb,eb,Nb,Ui,Si,Ob,tc,Da,Ja,sc,Te,Ri,Ta,La,Mb,eb,Lb,Ta,La,_a,Da,_a,md,Ja,Vi,Qi,Pi,Oi,Ob,db,tc,Da,Ja,sc,Da,ld,Se,Ni,Ta,La,Mb,eb,Nb,Li,Ji,Ob,tc,Da,Ja,sc,Se,Ii,Ta,La,Mb,eb,Lb,La,_a,Da,_a,md,Ja,Mi,Hi,Ai,yi,Gi,Ei,Fi,Di,Ci,Bi,vi,fb,Da,Da,wi,Dh,Ch,Da,_a,Ja,Ja,qi,pi,ti,ui,ri,oi,ni,li,si,Be,fi,jd,id,hd,gd,ki,Da,db,Zc,Ae,ei,jd,id,hd,gd,ii,Da,db,Zc,ze,di,jd,id,hd,gd,gi,Da,db,Zc,He,ci,Ie,bi,ai,Zh,Yh,Xh,Wh,_h,Vh,$h,Uh,Th,Rh,Qh,Ph,Oh,Sh,Mh,Lh,Kh,Jh,Ih,Wc,ve,Hh,Ta,La,Fh,Eh,fb,_a,Da,Wc,Ah,Bh,Wc,ve,zh,Yf,Xf,Wf,Vf,_b,Tf,Xd,Wd,Sf,Rf,Qf,_a,Pf,Ta,La,Td,Td,Mf,Gf,If,Lf,La,Hf,Jf,Kf,La,Df,La,Cf,La,Ef,zc,db,zc,zc]);function fa(){return E.byteLength/65536|0}function ka(la){la=la|0;var ga=fa()|0;var ha=ga+la|0;if(ga=endIdx))++endPtr;if(endPtr-idx>16&&heapOrArray.buffer&&UTF8Decoder){return UTF8Decoder.decode(heapOrArray.subarray(idx,endPtr))}var str="";while(idx>10,56320|ch&1023)}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&c<=57343){len+=4;++i}else{len+=3}}return len}var HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateMemoryViews(){var b=wasmMemory.buffer;Module["HEAP8"]=HEAP8=new Int8Array(b);Module["HEAP16"]=HEAP16=new Int16Array(b);Module["HEAP32"]=HEAP32=new Int32Array(b);Module["HEAPU8"]=HEAPU8=new Uint8Array(b);Module["HEAPU16"]=HEAPU16=new Uint16Array(b);Module["HEAPU32"]=HEAPU32=new Uint32Array(b);Module["HEAPF32"]=HEAPF32=new Float32Array(b);Module["HEAPF64"]=HEAPF64=new Float64Array(b)}var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||16777216;assert(INITIAL_MEMORY>=65536,"INITIAL_MEMORY should be larger than STACK_SIZE, was "+INITIAL_MEMORY+"! (STACK_SIZE="+65536+")");if(Module["wasmMemory"]){wasmMemory=Module["wasmMemory"]}else{wasmMemory=new WebAssembly.Memory({"initial":INITIAL_MEMORY/65536,"maximum":2147483648/65536})}updateMemoryViews();INITIAL_MEMORY=wasmMemory.buffer.byteLength;var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;function keepRuntimeAlive(){return noExitRuntime}function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function addRunDependency(id){runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}function abort(what){if(Module["onAbort"]){Module["onAbort"](what)}what="Aborted("+what+")";err(what);ABORT=true;EXITSTATUS=1;what+=". Build with -sASSERTIONS for more info.";var e=new WebAssembly.RuntimeError(what);readyPromiseReject(e);throw e}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith("file://")}var wasmBinaryFile;wasmBinaryFile="draco_decoder.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}var binary=tryParseAsDataURI(file);if(binary){return binary}if(readBinary){return readBinary(file)}throw"both async and sync fetching of the wasm failed"}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch=="function"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={"a":wasmImports};function receiveInstance(instance,module){var exports=instance.exports;Module["asm"]=exports;wasmTable=Module["asm"]["j"];addOnInit(Module["asm"]["i"]);removeRunDependency("wasm-instantiate")}addRunDependency("wasm-instantiate");function receiveInstantiationResult(result){receiveInstance(result["instance"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(function(instance){return instance}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming=="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&!ENVIRONMENT_IS_NODE&&typeof fetch=="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);readyPromiseReject(e)}}instantiateAsync().catch(readyPromiseReject);return{}}function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){callbacks.shift()(Module)}}function intArrayToString(array){var ret=[];for(var i=0;i255){chr&=255}ret.push(String.fromCharCode(chr))}return ret.join("")}function ExceptionInfo(excPtr){this.excPtr=excPtr;this.ptr=excPtr-24;this.set_type=function(type){HEAPU32[this.ptr+4>>2]=type};this.get_type=function(){return HEAPU32[this.ptr+4>>2]};this.set_destructor=function(destructor){HEAPU32[this.ptr+8>>2]=destructor};this.get_destructor=function(){return HEAPU32[this.ptr+8>>2]};this.set_refcount=function(refcount){HEAP32[this.ptr>>2]=refcount};this.set_caught=function(caught){caught=caught?1:0;HEAP8[this.ptr+12>>0]=caught};this.get_caught=function(){return HEAP8[this.ptr+12>>0]!=0};this.set_rethrown=function(rethrown){rethrown=rethrown?1:0;HEAP8[this.ptr+13>>0]=rethrown};this.get_rethrown=function(){return HEAP8[this.ptr+13>>0]!=0};this.init=function(type,destructor){this.set_adjusted_ptr(0);this.set_type(type);this.set_destructor(destructor);this.set_refcount(0);this.set_caught(false);this.set_rethrown(false)};this.add_ref=function(){var value=HEAP32[this.ptr>>2];HEAP32[this.ptr>>2]=value+1};this.release_ref=function(){var prev=HEAP32[this.ptr>>2];HEAP32[this.ptr>>2]=prev-1;return prev===1};this.set_adjusted_ptr=function(adjustedPtr){HEAPU32[this.ptr+16>>2]=adjustedPtr};this.get_adjusted_ptr=function(){return HEAPU32[this.ptr+16>>2]};this.get_exception_ptr=function(){var isPointer=___cxa_is_pointer_type(this.get_type());if(isPointer){return HEAPU32[this.excPtr>>2]}var adjusted=this.get_adjusted_ptr();if(adjusted!==0)return adjusted;return this.excPtr}}var exceptionLast=0;var uncaughtExceptionCount=0;function ___cxa_throw(ptr,type,destructor){var info=new ExceptionInfo(ptr);info.init(type,destructor);exceptionLast=ptr;uncaughtExceptionCount++;throw ptr}function _abort(){abort("")}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function getHeapMax(){return 2147483648}function emscripten_realloc_buffer(size){var b=wasmMemory.buffer;try{wasmMemory.grow(size-b.byteLength+65535>>>16);updateMemoryViews();return 1}catch(e){}}function _emscripten_resize_heap(requestedSize){var oldSize=HEAPU8.length;requestedSize=requestedSize>>>0;var maxHeapSize=getHeapMax();if(requestedSize>maxHeapSize){return false}let alignUp=(x,multiple)=>x+(multiple-x%multiple)%multiple;for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignUp(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=emscripten_realloc_buffer(newSize);if(replacement){return true}}return false}var SYSCALLS={varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret}};function _fd_close(fd){return 52}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){return 70}var printCharBuffers=[null,[],[]];function printChar(stream,curr){var buffer=printCharBuffers[stream];if(curr===0||curr===10){(stream===1?out:err)(UTF8ArrayToString(buffer,0));buffer.length=0}else{buffer.push(curr)}}function _fd_write(fd,iov,iovcnt,pnum){var num=0;for(var i=0;i>2];var len=HEAPU32[iov+4>>2];iov+=8;for(var j=0;j>2]=num;return 0}function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var decodeBase64=typeof atob=="function"?atob:function(input){var keyStr="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";var output="";var chr1,chr2,chr3;var enc1,enc2,enc3,enc4;var i=0;input=input.replace(/[^A-Za-z0-9\+\/\=]/g,"");do{enc1=keyStr.indexOf(input.charAt(i++));enc2=keyStr.indexOf(input.charAt(i++));enc3=keyStr.indexOf(input.charAt(i++));enc4=keyStr.indexOf(input.charAt(i++));chr1=enc1<<2|enc2>>4;chr2=(enc2&15)<<4|enc3>>2;chr3=(enc3&3)<<6|enc4;output=output+String.fromCharCode(chr1);if(enc3!==64){output=output+String.fromCharCode(chr2)}if(enc4!==64){output=output+String.fromCharCode(chr3)}}while(i0){return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();readyPromiseResolve(Module);if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}run();function WrapperObject(){}WrapperObject.prototype=Object.create(WrapperObject.prototype);WrapperObject.prototype.constructor=WrapperObject;WrapperObject.prototype.__class__=WrapperObject;WrapperObject.__cache__={};Module["WrapperObject"]=WrapperObject;function getCache(__class__){return(__class__||WrapperObject).__cache__}Module["getCache"]=getCache;function wrapPointer(ptr,__class__){var cache=getCache(__class__);var ret=cache[ptr];if(ret)return ret;ret=Object.create((__class__||WrapperObject).prototype);ret.ptr=ptr;return cache[ptr]=ret}Module["wrapPointer"]=wrapPointer;function castObject(obj,__class__){return wrapPointer(obj.ptr,__class__)}Module["castObject"]=castObject;Module["NULL"]=wrapPointer(0);function destroy(obj){if(!obj["__destroy__"])throw"Error: Cannot destroy object. (Did you create it yourself?)";obj["__destroy__"]();delete getCache(obj.__class__)[obj.ptr]}Module["destroy"]=destroy;function compare(obj1,obj2){return obj1.ptr===obj2.ptr}Module["compare"]=compare;function getPointer(obj){return obj.ptr}Module["getPointer"]=getPointer;function getClass(obj){return obj.__class__}Module["getClass"]=getClass;var ensureCache={buffer:0,size:0,pos:0,temps:[],needed:0,prepare:function(){if(ensureCache.needed){for(var i=0;i=ensureCache.size){assert(len>0);ensureCache.needed+=len;ret=Module["_malloc"](len);ensureCache.temps.push(ret)}else{ret=ensureCache.buffer+ensureCache.pos;ensureCache.pos+=len}return ret},copy:function(array,view,offset){offset>>>=0;var bytes=view.BYTES_PER_ELEMENT;switch(bytes){case 2:offset>>>=1;break;case 4:offset>>>=2;break;case 8:offset>>>=3;break}for(var i=0;i { var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined; if (typeof __filename !== 'undefined') _scriptDir = _scriptDir || __filename; return ( function(DracoDecoderModule = {}) { var Module=typeof DracoDecoderModule!="undefined"?DracoDecoderModule:{};var readyPromiseResolve,readyPromiseReject;Module["ready"]=new Promise(function(resolve,reject){readyPromiseResolve=resolve;readyPromiseReject=reject});var isRuntimeInitialized=false;var isModuleParsed=false;Module["onRuntimeInitialized"]=function(){isRuntimeInitialized=true;if(isModuleParsed){if(typeof Module["onModuleLoaded"]==="function"){Module["onModuleLoaded"](Module)}}};Module["onModuleParsed"]=function(){isModuleParsed=true;if(isRuntimeInitialized){if(typeof Module["onModuleLoaded"]==="function"){Module["onModuleLoaded"](Module)}}};function isVersionSupported(versionString){if(typeof versionString!=="string")return false;const version=versionString.split(".");if(version.length<2||version.length>3)return false;if(version[0]==1&&version[1]>=0&&version[1]<=5)return true;if(version[0]!=0||version[1]>10)return false;return true}Module["isVersionSupported"]=isVersionSupported;var moduleOverrides=Object.assign({},Module);var arguments_=[];var thisProgram="./this.program";var quit_=(status,toThrow)=>{throw toThrow};var ENVIRONMENT_IS_WEB=typeof window=="object";var ENVIRONMENT_IS_WORKER=typeof importScripts=="function";var ENVIRONMENT_IS_NODE=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string";var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;function logExceptionOnExit(e){if(e instanceof ExitStatus)return;let toLog=e;err("exiting due to exception: "+toLog)}if(ENVIRONMENT_IS_NODE){var fs=require("fs");var nodePath=require("path");if(ENVIRONMENT_IS_WORKER){scriptDirectory=nodePath.dirname(scriptDirectory)+"/"}else{scriptDirectory=__dirname+"/"}read_=(filename,binary)=>{var ret=tryParseAsDataURI(filename);if(ret){return binary?ret:ret.toString()}filename=isFileURI(filename)?new URL(filename):nodePath.normalize(filename);return fs.readFileSync(filename,binary?undefined:"utf8")};readBinary=filename=>{var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}return ret};readAsync=(filename,onload,onerror)=>{var ret=tryParseAsDataURI(filename);if(ret){onload(ret)}filename=isFileURI(filename)?new URL(filename):nodePath.normalize(filename);fs.readFile(filename,function(err,data){if(err)onerror(err);else onload(data.buffer)})};if(process["argv"].length>1){thisProgram=process["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);quit_=(status,toThrow)=>{if(keepRuntimeAlive()){process["exitCode"]=status;throw toThrow}logExceptionOnExit(toThrow);process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(_scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.replace(/[?#].*/,"").lastIndexOf("/")+1)}else{scriptDirectory=""}{read_=url=>{try{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText}catch(err){var data=tryParseAsDataURI(url);if(data){return intArrayToString(data)}throw err}};if(ENVIRONMENT_IS_WORKER){readBinary=url=>{try{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}catch(err){var data=tryParseAsDataURI(url);if(data){return data}throw err}}}readAsync=(url,onload,onerror)=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=()=>{if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}var data=tryParseAsDataURI(url);if(data){onload(data.buffer);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=title=>document.title=title}else{}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);Object.assign(Module,moduleOverrides);moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||true;var WebAssembly={Memory:function(opts){this.buffer=new ArrayBuffer(opts["initial"]*65536)},Module:function(binary){},Instance:function(module,info){this.exports=( // EMSCRIPTEN_START_ASM function instantiate(ia){function c(d){d.set=function(a,b){this[a]=b};d.get=function(a){return this[a]};return d}var e;var f=new Uint8Array(123);for(var a=25;a>=0;--a){f[48+a]=52+a;f[65+a]=a;f[97+a]=26+a}f[43]=62;f[47]=63;function l(m,n,o){var g,h,a=0,i=n,j=o.length,k=n+(j*3>>2)-(o[j-2]=="=")-(o[j-1]=="=");for(;a>4;if(i>2;if(i>2];o=F[c+12>>2];g=F[c+16>>2];a:{if((e|0)>=(o|0)&g>>>0>=I[c+8>>2]|(e|0)>(o|0)){break a}o=G[g+F[c>>2]|0];g=g+1|0;e=g?e:e+1|0;F[c+16>>2]=g;F[c+20>>2]=e;b:{switch(o|0){case 0:e=a;f=b;g=d;a=0;d=0;j=Z+-64|0;Z=j;F[j+56>>2]=0;F[j+48>>2]=0;F[j+52>>2]=0;F[j+40>>2]=0;F[j+44>>2]=0;F[j+32>>2]=0;F[j+36>>2]=0;F[j+24>>2]=0;F[j+28>>2]=0;F[j+16>>2]=0;F[j+20>>2]=0;F[j+8>>2]=0;F[j+12>>2]=0;c:{if(!Nd(j+8|0,c)){break c}if(!Md(j+8|0,c)|(F[j+20>>2]?0:e)){break c}hc(c,0,0);if(e){s=f<<2;t=F[j+36>>2];u=F[j+48>>2];x=F[j+24>>2];l=F[j+56>>2];i=F[j+52>>2];while(1){d:{if(l>>>0>16383){break d}while(1){if((i|0)<=0){break d}i=i-1|0;F[j+52>>2]=i;l=G[i+u|0]|l<<8;F[j+56>>2]=l;if(l>>>0<16384){continue}break}}a=l&4095;r=F[(a<<2)+x>>2];b=(r<<3)+t|0;l=(L(F[b>>2],l>>>12|0)+a|0)-F[b+4>>2]|0;F[j+56>>2]=l;if((f|0)>0){a=0;if(!G[c+36|0]|r>>>0>32){break c}o=d+f|0;e:{if(!r){ma(g+(d<<2)|0,0,s);break e}y=r&-2;z=r&1;b=F[c+32>>2];h=F[c+28>>2];q=F[c+24>>2];while(1){k=0;a=b;m=0;n=0;if((r|0)!=1){while(1){p=q+(a>>>3|0)|0;f:{if(p>>>0>=h>>>0){p=0;break f}p=G[p|0];b=a+1|0;F[c+32>>2]=b;p=p>>>(a&7)&1;a=b}p=p<>>3|0)|0;if(v>>>0>>0){m=G[v|0];b=a+1|0;F[c+32>>2]=b;m=m>>>(a&7)&1;a=b}v=k|1;k=k+2|0;m=p|m<>>3|0)|0;if(p>>>0>>0){p=G[p|0];b=a+1|0;F[c+32>>2]=b;a=p>>>(a&7)&1}else{a=0}m=a<>2]=m;d=d+1|0;if((o|0)!=(d|0)){continue}break}}d=o}w=f+w|0;if(e>>>0>w>>>0){continue}break}}D[c+36|0]=0;f=F[c+20>>2];a=0;m=F[c+32>>2]+7|0;a=m>>>0<7?1:a;m=a<<29|m>>>3;b=m+F[c+16>>2]|0;a=(a>>>3|0)+f|0;F[c+16>>2]=b;F[c+20>>2]=b>>>0>>0?a+1|0:a;a=1}b=F[j+36>>2];if(b){F[j+40>>2]=b;ja(b)}b=F[j+24>>2];if(b){F[j+28>>2]=b;ja(b)}b=F[j+8>>2];if(b){F[j+12>>2]=b;ja(b)}Z=j- -64|0;return a;case 1:break b;default:break a}}b=0;e=F[c+20>>2];o=F[c+12>>2];g=F[c+16>>2];g:{if((e|0)>=(o|0)&g>>>0>=I[c+8>>2]|(e|0)>(o|0)){break g}o=G[g+F[c>>2]|0];g=g+1|0;e=g?e:e+1|0;F[c+16>>2]=g;F[c+20>>2]=e;h:{switch(o-1|0){case 8:o=a;r=d;e=Z+-64|0;Z=e;F[e+56>>2]=0;F[e+48>>2]=0;F[e+52>>2]=0;F[e+40>>2]=0;F[e+44>>2]=0;F[e+32>>2]=0;F[e+36>>2]=0;F[e+24>>2]=0;F[e+28>>2]=0;F[e+16>>2]=0;F[e+20>>2]=0;F[e+8>>2]=0;F[e+12>>2]=0;h=e+8|0;i:{j:{if(!H[c+38>>1]){break j}if(!Ta(1,h+12|0,c)){break j}b=F[c+8>>2];d=F[c+16>>2];f=b-d|0;i=F[h+12>>2];b=F[c+12>>2]-(F[c+20>>2]+(b>>>0>>0)|0)|0;if(f>>>0>>6>>>0&(b|0)<=0|(b|0)<0){break j}b=F[h>>2];a=F[h+4>>2]-b>>2;k:{if(a>>>0>>0){qa(h,i-a|0);i=F[h+12>>2];break k}if(a>>>0<=i>>>0){break k}F[h+4>>2]=b+(i<<2)}g=1;if(!i){break i}f=F[c+16>>2];d=F[c+20>>2];s=F[h>>2];j=F[c+8>>2];n=F[c+12>>2];b=0;while(1){g=0;if((d|0)>=(n|0)&f>>>0>=j>>>0|(d|0)>(n|0)){break i}g=F[c>>2];p=G[g+f|0];a=d;f=f+1|0;a=f?a:a+1|0;F[c+16>>2]=f;d=a;F[c+20>>2]=a;a=p>>>2|0;l=0;l:{m:{n:{o:{t=p&3;switch(t|0){case 0:break m;case 3:break o;default:break n}}a=a+b|0;g=0;if(a>>>0>=i>>>0){break i}ma(s+(b<<2)|0,0,(p&252)+4|0);b=a;break l}while(1){if((f|0)==(j|0)&(d|0)==(n|0)){break j}i=G[f+g|0];f=f+1|0;d=f?d:d+1|0;F[c+16>>2]=f;F[c+20>>2]=d;a=i<<(l<<3|6)|a;l=l+1|0;if((t|0)!=(l|0)){continue}break}}F[s+(b<<2)>>2]=a}b=b+1|0;i=F[h+12>>2];if(b>>>0>>0){continue}break}a=h+16|0;n=F[h>>2];d=F[h+16>>2];b=F[h+20>>2]-d|0;p:{if(b>>>0<=32767){qa(a,8192-(b>>>2|0)|0);break p}if((b|0)==32768){break p}F[h+20>>2]=d+32768}d=h+28|0;b=F[d>>2];f=F[h+32>>2]-b>>3;q:{if(f>>>0>>0){_a(d,i-f|0);b=F[d>>2];break q}if(f>>>0>i>>>0){F[h+32>>2]=(i<<3)+b}if(!i){break j}}j=F[a>>2];f=0;d=0;while(1){g=n+(f<<2)|0;l=F[g>>2];h=(f<<3)+b|0;a=d;F[h+4>>2]=a;F[h>>2]=l;g=F[g>>2];d=g+a|0;if(d>>>0>8192){break j}r:{if(a>>>0>=d>>>0){break r}l=0;h=g&7;if(h){while(1){F[j+(a<<2)>>2]=f;a=a+1|0;l=l+1|0;if((h|0)!=(l|0)){continue}break}}if(g-1>>>0<=6){break r}while(1){g=j+(a<<2)|0;F[g>>2]=f;F[g+28>>2]=f;F[g+24>>2]=f;F[g+20>>2]=f;F[g+16>>2]=f;F[g+12>>2]=f;F[g+8>>2]=f;F[g+4>>2]=f;a=a+8|0;if((d|0)!=(a|0)){continue}break}}f=f+1|0;if((i|0)!=(f|0)){continue}break}k=(d|0)==8192}g=k}s:{if(!g|(F[e+20>>2]?0:o)){break s}d=0;k=Z-16|0;Z=k;t:{if(!Sa(1,k+8|0,c)){break t}a=F[c+8>>2];f=F[c+16>>2];g=a-f|0;j=F[k+12>>2];i=F[c+20>>2];a=F[c+12>>2]-(i+(a>>>0>>0)|0)|0;b=F[k+8>>2];if((j|0)==(a|0)&g>>>0>>0|a>>>0>>0){break t}a=i+j|0;g=b+f|0;a=g>>>0>>0?a+1|0:a;F[c+16>>2]=g;F[c+20>>2]=a;if((b|0)<=0){break t}a=f+F[c>>2]|0;F[e+48>>2]=a;c=b-1|0;f=c+a|0;g=G[f|0];u:{if(g>>>0<=63){F[e+52>>2]=c;a=G[f|0]&63;break u}v:{switch((g>>>6|0)-1|0){case 0:if(b>>>0<2){break t}b=b-2|0;F[e+52>>2]=b;a=a+b|0;a=G[a+1|0]<<8&16128|G[a|0];break u;case 1:if(b>>>0<3){break t}b=b-3|0;F[e+52>>2]=b;a=a+b|0;a=G[a+1|0]<<8|G[a+2|0]<<16&4128768|G[a|0];break u;default:break v}}b=b-4|0;F[e+52>>2]=b;a=a+b|0;a=(G[a|0]|G[a+1|0]<<8|(G[a+2|0]<<16|G[a+3|0]<<24))&1073741823}F[e+56>>2]=a+32768;d=a>>>0<8355840}Z=k+16|0;if(!d){break s}if(!o){m=1;break s}b=F[e+52>>2];a=F[e+56>>2];c=F[e+36>>2];d=F[e+48>>2];f=F[e+24>>2];while(1){w:{if(a>>>0>32767){break w}while(1){if((b|0)<=0){break w}b=b-1|0;F[e+52>>2]=b;a=G[b+d|0]|a<<8;F[e+56>>2]=a;if(a>>>0<32768){continue}break}}m=a&8191;k=F[f+(m<<2)>>2];g=c+(k<<3)|0;a=(L(F[g>>2],a>>>13|0)+m|0)-F[g+4>>2]|0;F[e+56>>2]=a;F[r+(q<<2)>>2]=k;m=1;q=q+1|0;if((o|0)!=(q|0)){continue}break}}a=F[e+36>>2];if(a){F[e+40>>2]=a;ja(a)}a=F[e+24>>2];if(a){F[e+28>>2]=a;ja(a)}a=F[e+8>>2];if(a){F[e+12>>2]=a;ja(a)}Z=e- -64|0;b=m;break g;case 9:o=a;r=d;g=Z+-64|0;Z=g;F[g+56>>2]=0;F[g+48>>2]=0;F[g+52>>2]=0;F[g+40>>2]=0;F[g+44>>2]=0;F[g+32>>2]=0;F[g+36>>2]=0;F[g+24>>2]=0;F[g+28>>2]=0;F[g+16>>2]=0;F[g+20>>2]=0;F[g+8>>2]=0;F[g+12>>2]=0;h=g+8|0;x:{y:{if(!H[c+38>>1]){break y}if(!Ta(1,h+12|0,c)){break y}b=F[c+8>>2];d=F[c+16>>2];f=b-d|0;i=F[h+12>>2];b=F[c+12>>2]-(F[c+20>>2]+(b>>>0>>0)|0)|0;if(f>>>0>>6>>>0&(b|0)<=0|(b|0)<0){break y}b=F[h>>2];a=F[h+4>>2]-b>>2;z:{if(a>>>0>>0){qa(h,i-a|0);i=F[h+12>>2];break z}if(a>>>0<=i>>>0){break z}F[h+4>>2]=b+(i<<2)}e=1;if(!i){break x}f=F[c+16>>2];d=F[c+20>>2];s=F[h>>2];j=F[c+8>>2];n=F[c+12>>2];b=0;while(1){e=0;if((d|0)>=(n|0)&f>>>0>=j>>>0|(d|0)>(n|0)){break x}t=F[c>>2];p=G[t+f|0];e=d;f=f+1|0;e=f?e:e+1|0;F[c+16>>2]=f;d=e;F[c+20>>2]=e;a=p>>>2|0;l=0;A:{B:{C:{D:{e=p&3;switch(e|0){case 0:break B;case 3:break D;default:break C}}a=a+b|0;e=0;if(a>>>0>=i>>>0){break x}ma(s+(b<<2)|0,0,(p&252)+4|0);b=a;break A}while(1){if((f|0)==(j|0)&(d|0)==(n|0)){break y}i=G[f+t|0];f=f+1|0;d=f?d:d+1|0;F[c+16>>2]=f;F[c+20>>2]=d;a=i<<(l<<3|6)|a;l=l+1|0;if((e|0)!=(l|0)){continue}break}}F[s+(b<<2)>>2]=a}b=b+1|0;i=F[h+12>>2];if(b>>>0>>0){continue}break}a=h+16|0;n=F[h>>2];d=F[h+16>>2];b=F[h+20>>2]-d|0;E:{if(b>>>0<=131071){qa(a,32768-(b>>>2|0)|0);break E}if((b|0)==131072){break E}F[h+20>>2]=d+131072}d=h+28|0;b=F[d>>2];f=F[h+32>>2]-b>>3;F:{if(f>>>0>>0){_a(d,i-f|0);b=F[d>>2];break F}if(f>>>0>i>>>0){F[h+32>>2]=(i<<3)+b}if(!i){break y}}j=F[a>>2];f=0;d=0;while(1){e=n+(f<<2)|0;l=F[e>>2];h=(f<<3)+b|0;a=d;F[h+4>>2]=a;F[h>>2]=l;e=F[e>>2];d=e+a|0;if(d>>>0>32768){break y}G:{if(a>>>0>=d>>>0){break G}l=0;h=e&7;if(h){while(1){F[j+(a<<2)>>2]=f;a=a+1|0;l=l+1|0;if((h|0)!=(l|0)){continue}break}}if(e-1>>>0<=6){break G}while(1){e=j+(a<<2)|0;F[e>>2]=f;F[e+28>>2]=f;F[e+24>>2]=f;F[e+20>>2]=f;F[e+16>>2]=f;F[e+12>>2]=f;F[e+8>>2]=f;F[e+4>>2]=f;a=a+8|0;if((d|0)!=(a|0)){continue}break}}f=f+1|0;if((i|0)!=(f|0)){continue}break}k=(d|0)==32768}e=k}H:{if(!e|(F[g+20>>2]?0:o)){break H}d=0;f=Z-16|0;Z=f;I:{if(!Sa(1,f+8|0,c)){break I}e=F[c+8>>2];b=F[c+16>>2];k=e-b|0;j=F[f+12>>2];i=F[c+20>>2];e=F[c+12>>2]-(i+(b>>>0>e>>>0)|0)|0;a=F[f+8>>2];if((j|0)==(e|0)&k>>>0>>0|e>>>0>>0){break I}e=i+j|0;k=a+b|0;e=k>>>0>>0?e+1|0:e;F[c+16>>2]=k;F[c+20>>2]=e;if((a|0)<=0){break I}b=b+F[c>>2]|0;F[g+48>>2]=b;c=a-1|0;e=c+b|0;k=G[e|0];J:{if(k>>>0<=63){F[g+52>>2]=c;a=G[e|0]&63;break J}K:{switch((k>>>6|0)-1|0){case 0:if(a>>>0<2){break I}a=a-2|0;F[g+52>>2]=a;a=a+b|0;a=G[a+1|0]<<8&16128|G[a|0];break J;case 1:if(a>>>0<3){break I}a=a-3|0;F[g+52>>2]=a;a=a+b|0;a=G[a+1|0]<<8|G[a+2|0]<<16&4128768|G[a|0];break J;default:break K}}a=a-4|0;F[g+52>>2]=a;a=a+b|0;a=(G[a|0]|G[a+1|0]<<8|(G[a+2|0]<<16|G[a+3|0]<<24))&1073741823}F[g+56>>2]=a+131072;d=a>>>0<33423360}Z=f+16|0;if(!d){break H}if(!o){m=1;break H}b=F[g+52>>2];a=F[g+56>>2];c=F[g+36>>2];d=F[g+48>>2];f=F[g+24>>2];while(1){L:{if(a>>>0>131071){break L}while(1){if((b|0)<=0){break L}b=b-1|0;F[g+52>>2]=b;a=G[b+d|0]|a<<8;F[g+56>>2]=a;if(a>>>0<131072){continue}break}}m=a&32767;e=F[f+(m<<2)>>2];k=c+(e<<3)|0;a=(L(F[k>>2],a>>>15|0)+m|0)-F[k+4>>2]|0;F[g+56>>2]=a;F[r+(q<<2)>>2]=e;m=1;q=q+1|0;if((o|0)!=(q|0)){continue}break}}a=F[g+36>>2];if(a){F[g+40>>2]=a;ja(a)}a=F[g+24>>2];if(a){F[g+28>>2]=a;ja(a)}a=F[g+8>>2];if(a){F[g+12>>2]=a;ja(a)}Z=g- -64|0;b=m;break g;case 10:o=a;r=d;g=Z+-64|0;Z=g;F[g+56>>2]=0;F[g+48>>2]=0;F[g+52>>2]=0;F[g+40>>2]=0;F[g+44>>2]=0;F[g+32>>2]=0;F[g+36>>2]=0;F[g+24>>2]=0;F[g+28>>2]=0;F[g+16>>2]=0;F[g+20>>2]=0;F[g+8>>2]=0;F[g+12>>2]=0;h=g+8|0;M:{N:{if(!H[c+38>>1]){break N}if(!Ta(1,h+12|0,c)){break N}b=F[c+8>>2];d=F[c+16>>2];f=b-d|0;i=F[h+12>>2];b=F[c+12>>2]-(F[c+20>>2]+(b>>>0>>0)|0)|0;if(f>>>0>>6>>>0&(b|0)<=0|(b|0)<0){break N}b=F[h>>2];a=F[h+4>>2]-b>>2;O:{if(a>>>0>>0){qa(h,i-a|0);i=F[h+12>>2];break O}if(a>>>0<=i>>>0){break O}F[h+4>>2]=b+(i<<2)}e=1;if(!i){break M}f=F[c+16>>2];d=F[c+20>>2];s=F[h>>2];j=F[c+8>>2];n=F[c+12>>2];b=0;while(1){e=0;if((d|0)>=(n|0)&f>>>0>=j>>>0|(d|0)>(n|0)){break M}t=F[c>>2];p=G[t+f|0];a=d;f=f+1|0;a=f?a:a+1|0;F[c+16>>2]=f;d=a;F[c+20>>2]=a;a=p>>>2|0;l=0;P:{Q:{R:{S:{u=p&3;switch(u|0){case 0:break Q;case 3:break S;default:break R}}a=a+b|0;e=0;if(a>>>0>=i>>>0){break M}ma(s+(b<<2)|0,0,(p&252)+4|0);b=a;break P}while(1){if((f|0)==(j|0)&(d|0)==(n|0)){break N}i=G[f+t|0];e=d;f=f+1|0;e=f?e:e+1|0;F[c+16>>2]=f;d=e;F[c+20>>2]=e;a=i<<(l<<3|6)|a;l=l+1|0;if((u|0)!=(l|0)){continue}break}}F[s+(b<<2)>>2]=a}b=b+1|0;i=F[h+12>>2];if(b>>>0>>0){continue}break}a=h+16|0;n=F[h>>2];d=F[h+16>>2];b=F[h+20>>2]-d|0;T:{if(b>>>0<=262143){qa(a,65536-(b>>>2|0)|0);break T}if((b|0)==262144){break T}F[h+20>>2]=d+262144}d=h+28|0;b=F[d>>2];f=F[h+32>>2]-b>>3;U:{if(f>>>0>>0){_a(d,i-f|0);b=F[d>>2];break U}if(f>>>0>i>>>0){F[h+32>>2]=(i<<3)+b}if(!i){break N}}j=F[a>>2];f=0;d=0;while(1){e=n+(f<<2)|0;l=F[e>>2];h=(f<<3)+b|0;a=d;F[h+4>>2]=a;F[h>>2]=l;e=F[e>>2];d=e+a|0;if(d>>>0>65536){break N}V:{if(a>>>0>=d>>>0){break V}l=0;h=e&7;if(h){while(1){F[j+(a<<2)>>2]=f;a=a+1|0;l=l+1|0;if((h|0)!=(l|0)){continue}break}}if(e-1>>>0<=6){break V}while(1){e=j+(a<<2)|0;F[e>>2]=f;F[e+28>>2]=f;F[e+24>>2]=f;F[e+20>>2]=f;F[e+16>>2]=f;F[e+12>>2]=f;F[e+8>>2]=f;F[e+4>>2]=f;a=a+8|0;if((d|0)!=(a|0)){continue}break}}f=f+1|0;if((i|0)!=(f|0)){continue}break}k=(d|0)==65536}e=k}W:{if(!e|(F[g+20>>2]?0:o)){break W}d=0;e=Z-16|0;Z=e;X:{if(!Sa(1,e+8|0,c)){break X}a=F[c+8>>2];f=F[c+16>>2];k=a-f|0;j=F[e+12>>2];i=F[c+20>>2];a=F[c+12>>2]-(i+(a>>>0>>0)|0)|0;b=F[e+8>>2];if((j|0)==(a|0)&k>>>0>>0|a>>>0>>0){break X}a=i+j|0;k=b+f|0;a=k>>>0>>0?a+1|0:a;F[c+16>>2]=k;F[c+20>>2]=a;if((b|0)<=0){break X}a=f+F[c>>2]|0;F[g+48>>2]=a;c=b-1|0;f=c+a|0;k=G[f|0];Y:{if(k>>>0<=63){F[g+52>>2]=c;a=G[f|0]&63;break Y}Z:{switch((k>>>6|0)-1|0){case 0:if(b>>>0<2){break X}b=b-2|0;F[g+52>>2]=b;a=a+b|0;a=G[a+1|0]<<8&16128|G[a|0];break Y;case 1:if(b>>>0<3){break X}b=b-3|0;F[g+52>>2]=b;a=a+b|0;a=G[a+1|0]<<8|G[a+2|0]<<16&4128768|G[a|0];break Y;default:break Z}}b=b-4|0;F[g+52>>2]=b;a=a+b|0;a=(G[a|0]|G[a+1|0]<<8|(G[a+2|0]<<16|G[a+3|0]<<24))&1073741823}F[g+56>>2]=a+262144;d=a>>>0<66846720}Z=e+16|0;if(!d){break W}if(!o){m=1;break W}b=F[g+52>>2];a=F[g+56>>2];c=F[g+36>>2];d=F[g+48>>2];f=F[g+24>>2];while(1){_:{if(a>>>0>262143){break _}while(1){if((b|0)<=0){break _}b=b-1|0;F[g+52>>2]=b;a=G[b+d|0]|a<<8;F[g+56>>2]=a;if(a>>>0<262144){continue}break}}m=a&65535;e=F[f+(m<<2)>>2];k=c+(e<<3)|0;a=(L(F[k>>2],a>>>16|0)+m|0)-F[k+4>>2]|0;F[g+56>>2]=a;F[r+(q<<2)>>2]=e;m=1;q=q+1|0;if((o|0)!=(q|0)){continue}break}}a=F[g+36>>2];if(a){F[g+40>>2]=a;ja(a)}a=F[g+24>>2];if(a){F[g+28>>2]=a;ja(a)}a=F[g+8>>2];if(a){F[g+12>>2]=a;ja(a)}Z=g- -64|0;b=m;break g;case 11:o=a;r=d;g=Z+-64|0;Z=g;F[g+56>>2]=0;F[g+48>>2]=0;F[g+52>>2]=0;F[g+40>>2]=0;F[g+44>>2]=0;F[g+32>>2]=0;F[g+36>>2]=0;F[g+24>>2]=0;F[g+28>>2]=0;F[g+16>>2]=0;F[g+20>>2]=0;F[g+8>>2]=0;F[g+12>>2]=0;h=g+8|0;$:{aa:{if(!H[c+38>>1]){break aa}if(!Ta(1,h+12|0,c)){break aa}b=F[c+8>>2];d=F[c+16>>2];f=b-d|0;i=F[h+12>>2];b=F[c+12>>2]-(F[c+20>>2]+(b>>>0>>0)|0)|0;if(f>>>0>>6>>>0&(b|0)<=0|(b|0)<0){break aa}b=F[h>>2];a=F[h+4>>2]-b>>2;ba:{if(a>>>0>>0){qa(h,i-a|0);i=F[h+12>>2];break ba}if(a>>>0<=i>>>0){break ba}F[h+4>>2]=b+(i<<2)}e=1;if(!i){break $}f=F[c+16>>2];d=F[c+20>>2];s=F[h>>2];j=F[c+8>>2];n=F[c+12>>2];b=0;while(1){e=0;if((d|0)>=(n|0)&f>>>0>=j>>>0|(d|0)>(n|0)){break $}t=F[c>>2];p=G[t+f|0];e=d;f=f+1|0;e=f?e:e+1|0;F[c+16>>2]=f;d=e;F[c+20>>2]=e;a=p>>>2|0;l=0;ca:{da:{ea:{fa:{e=p&3;switch(e|0){case 0:break da;case 3:break fa;default:break ea}}a=a+b|0;e=0;if(a>>>0>=i>>>0){break $}ma(s+(b<<2)|0,0,(p&252)+4|0);b=a;break ca}while(1){if((f|0)==(j|0)&(d|0)==(n|0)){break aa}i=G[f+t|0];f=f+1|0;d=f?d:d+1|0;F[c+16>>2]=f;F[c+20>>2]=d;a=i<<(l<<3|6)|a;l=l+1|0;if((e|0)!=(l|0)){continue}break}}F[s+(b<<2)>>2]=a}b=b+1|0;i=F[h+12>>2];if(b>>>0>>0){continue}break}a=h+16|0;n=F[h>>2];d=F[h+16>>2];b=F[h+20>>2]-d|0;ga:{if(b>>>0<=1048575){qa(a,262144-(b>>>2|0)|0);break ga}if((b|0)==1048576){break ga}F[h+20>>2]=d- -1048576}d=h+28|0;b=F[d>>2];f=F[h+32>>2]-b>>3;ha:{if(f>>>0>>0){_a(d,i-f|0);b=F[d>>2];break ha}if(f>>>0>i>>>0){F[h+32>>2]=(i<<3)+b}if(!i){break aa}}j=F[a>>2];f=0;d=0;while(1){e=n+(f<<2)|0;l=F[e>>2];h=(f<<3)+b|0;a=d;F[h+4>>2]=a;F[h>>2]=l;e=F[e>>2];d=e+a|0;if(d>>>0>262144){break aa}ia:{if(a>>>0>=d>>>0){break ia}l=0;h=e&7;if(h){while(1){F[j+(a<<2)>>2]=f;a=a+1|0;l=l+1|0;if((h|0)!=(l|0)){continue}break}}if(e-1>>>0<=6){break ia}while(1){e=j+(a<<2)|0;F[e>>2]=f;F[e+28>>2]=f;F[e+24>>2]=f;F[e+20>>2]=f;F[e+16>>2]=f;F[e+12>>2]=f;F[e+8>>2]=f;F[e+4>>2]=f;a=a+8|0;if((d|0)!=(a|0)){continue}break}}f=f+1|0;if((i|0)!=(f|0)){continue}break}k=(d|0)==262144}e=k}ja:{if(!e|(F[g+20>>2]?0:o)){break ja}d=0;f=Z-16|0;Z=f;ka:{if(!Sa(1,f+8|0,c)){break ka}e=F[c+8>>2];b=F[c+16>>2];k=e-b|0;j=F[f+12>>2];i=F[c+20>>2];e=F[c+12>>2]-(i+(b>>>0>e>>>0)|0)|0;a=F[f+8>>2];if((j|0)==(e|0)&k>>>0>>0|e>>>0>>0){break ka}e=i+j|0;k=a+b|0;e=k>>>0>>0?e+1|0:e;F[c+16>>2]=k;F[c+20>>2]=e;if((a|0)<=0){break ka}b=b+F[c>>2]|0;F[g+48>>2]=b;c=a-1|0;e=c+b|0;k=G[e|0];la:{if(k>>>0<=63){F[g+52>>2]=c;a=G[e|0]&63;break la}ma:{switch((k>>>6|0)-1|0){case 0:if(a>>>0<2){break ka}a=a-2|0;F[g+52>>2]=a;a=a+b|0;a=G[a+1|0]<<8&16128|G[a|0];break la;case 1:if(a>>>0<3){break ka}a=a-3|0;F[g+52>>2]=a;a=a+b|0;a=G[a+1|0]<<8|G[a+2|0]<<16&4128768|G[a|0];break la;default:break ma}}a=a-4|0;F[g+52>>2]=a;a=a+b|0;a=(G[a|0]|G[a+1|0]<<8|(G[a+2|0]<<16|G[a+3|0]<<24))&1073741823}F[g+56>>2]=a- -1048576;d=a>>>0<267386880}Z=f+16|0;if(!d){break ja}if(!o){m=1;break ja}b=F[g+52>>2];a=F[g+56>>2];c=F[g+36>>2];d=F[g+48>>2];f=F[g+24>>2];while(1){na:{if(a>>>0>1048575){break na}while(1){if((b|0)<=0){break na}b=b-1|0;F[g+52>>2]=b;a=G[b+d|0]|a<<8;F[g+56>>2]=a;if(a>>>0<1048576){continue}break}}m=a&262143;e=F[f+(m<<2)>>2];k=c+(e<<3)|0;a=(L(F[k>>2],a>>>18|0)+m|0)-F[k+4>>2]|0;F[g+56>>2]=a;F[r+(q<<2)>>2]=e;m=1;q=q+1|0;if((o|0)!=(q|0)){continue}break}}a=F[g+36>>2];if(a){F[g+40>>2]=a;ja(a)}a=F[g+24>>2];if(a){F[g+28>>2]=a;ja(a)}a=F[g+8>>2];if(a){F[g+12>>2]=a;ja(a)}Z=g- -64|0;b=m;break g;case 12:o=a;r=d;e=Z+-64|0;Z=e;F[e+56>>2]=0;F[e+48>>2]=0;F[e+52>>2]=0;F[e+40>>2]=0;F[e+44>>2]=0;F[e+32>>2]=0;F[e+36>>2]=0;F[e+24>>2]=0;F[e+28>>2]=0;F[e+16>>2]=0;F[e+20>>2]=0;F[e+8>>2]=0;F[e+12>>2]=0;h=e+8|0;oa:{pa:{if(!H[c+38>>1]){break pa}if(!Ta(1,h+12|0,c)){break pa}b=F[c+8>>2];d=F[c+16>>2];f=b-d|0;i=F[h+12>>2];b=F[c+12>>2]-(F[c+20>>2]+(b>>>0>>0)|0)|0;if(f>>>0>>6>>>0&(b|0)<=0|(b|0)<0){break pa}b=F[h>>2];a=F[h+4>>2]-b>>2;qa:{if(a>>>0>>0){qa(h,i-a|0);i=F[h+12>>2];break qa}if(a>>>0<=i>>>0){break qa}F[h+4>>2]=b+(i<<2)}g=1;if(!i){break oa}f=F[c+16>>2];d=F[c+20>>2];s=F[h>>2];j=F[c+8>>2];n=F[c+12>>2];b=0;while(1){g=0;if((d|0)>=(n|0)&f>>>0>=j>>>0|(d|0)>(n|0)){break oa}g=F[c>>2];p=G[g+f|0];a=d;f=f+1|0;a=f?a:a+1|0;F[c+16>>2]=f;d=a;F[c+20>>2]=a;a=p>>>2|0;l=0;ra:{sa:{ta:{ua:{t=p&3;switch(t|0){case 0:break sa;case 3:break ua;default:break ta}}a=a+b|0;g=0;if(a>>>0>=i>>>0){break oa}ma(s+(b<<2)|0,0,(p&252)+4|0);b=a;break ra}while(1){if((f|0)==(j|0)&(d|0)==(n|0)){break pa}i=G[f+g|0];f=f+1|0;d=f?d:d+1|0;F[c+16>>2]=f;F[c+20>>2]=d;a=i<<(l<<3|6)|a;l=l+1|0;if((t|0)!=(l|0)){continue}break}}F[s+(b<<2)>>2]=a}b=b+1|0;i=F[h+12>>2];if(b>>>0>>0){continue}break}a=h+16|0;n=F[h>>2];d=F[h+16>>2];b=F[h+20>>2]-d|0;va:{if(b>>>0<=2097151){qa(a,524288-(b>>>2|0)|0);break va}if((b|0)==2097152){break va}F[h+20>>2]=d+2097152}d=h+28|0;b=F[d>>2];f=F[h+32>>2]-b>>3;wa:{if(f>>>0>>0){_a(d,i-f|0);b=F[d>>2];break wa}if(f>>>0>i>>>0){F[h+32>>2]=(i<<3)+b}if(!i){break pa}}j=F[a>>2];f=0;d=0;while(1){g=n+(f<<2)|0;l=F[g>>2];h=(f<<3)+b|0;a=d;F[h+4>>2]=a;F[h>>2]=l;g=F[g>>2];d=g+a|0;if(d>>>0>524288){break pa}xa:{if(a>>>0>=d>>>0){break xa}l=0;h=g&7;if(h){while(1){F[j+(a<<2)>>2]=f;a=a+1|0;l=l+1|0;if((h|0)!=(l|0)){continue}break}}if(g-1>>>0<=6){break xa}while(1){g=j+(a<<2)|0;F[g>>2]=f;F[g+28>>2]=f;F[g+24>>2]=f;F[g+20>>2]=f;F[g+16>>2]=f;F[g+12>>2]=f;F[g+8>>2]=f;F[g+4>>2]=f;a=a+8|0;if((d|0)!=(a|0)){continue}break}}f=f+1|0;if((i|0)!=(f|0)){continue}break}k=(d|0)==524288}g=k}ya:{if(!g|(F[e+20>>2]?0:o)){break ya}d=0;k=Z-16|0;Z=k;za:{if(!Sa(1,k+8|0,c)){break za}a=F[c+8>>2];f=F[c+16>>2];g=a-f|0;j=F[k+12>>2];i=F[c+20>>2];a=F[c+12>>2]-(i+(a>>>0>>0)|0)|0;b=F[k+8>>2];if((j|0)==(a|0)&g>>>0>>0|a>>>0>>0){break za}a=i+j|0;g=b+f|0;a=g>>>0>>0?a+1|0:a;F[c+16>>2]=g;F[c+20>>2]=a;if((b|0)<=0){break za}a=f+F[c>>2]|0;F[e+48>>2]=a;c=b-1|0;f=c+a|0;g=G[f|0];Aa:{if(g>>>0<=63){F[e+52>>2]=c;a=G[f|0]&63;break Aa}Ba:{switch((g>>>6|0)-1|0){case 0:if(b>>>0<2){break za}b=b-2|0;F[e+52>>2]=b;a=a+b|0;a=G[a+1|0]<<8&16128|G[a|0];break Aa;case 1:if(b>>>0<3){break za}b=b-3|0;F[e+52>>2]=b;a=a+b|0;a=G[a+1|0]<<8|G[a+2|0]<<16&4128768|G[a|0];break Aa;default:break Ba}}b=b-4|0;F[e+52>>2]=b;a=a+b|0;a=(G[a|0]|G[a+1|0]<<8|(G[a+2|0]<<16|G[a+3|0]<<24))&1073741823}F[e+56>>2]=a+2097152;d=a>>>0<534773760}Z=k+16|0;if(!d){break ya}if(!o){m=1;break ya}b=F[e+52>>2];a=F[e+56>>2];c=F[e+36>>2];d=F[e+48>>2];f=F[e+24>>2];while(1){Ca:{if(a>>>0>2097151){break Ca}while(1){if((b|0)<=0){break Ca}b=b-1|0;F[e+52>>2]=b;a=G[b+d|0]|a<<8;F[e+56>>2]=a;if(a>>>0<2097152){continue}break}}m=a&524287;k=F[f+(m<<2)>>2];g=c+(k<<3)|0;a=(L(F[g>>2],a>>>19|0)+m|0)-F[g+4>>2]|0;F[e+56>>2]=a;F[r+(q<<2)>>2]=k;m=1;q=q+1|0;if((o|0)!=(q|0)){continue}break}}a=F[e+36>>2];if(a){F[e+40>>2]=a;ja(a)}a=F[e+24>>2];if(a){F[e+28>>2]=a;ja(a)}a=F[e+8>>2];if(a){F[e+12>>2]=a;ja(a)}Z=e- -64|0;b=m;break g;case 17:b=Ld(a,c,d);break g;case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:b=Z+-64|0;Z=b;F[b+56>>2]=0;F[b+48>>2]=0;F[b+52>>2]=0;F[b+40>>2]=0;F[b+44>>2]=0;F[b+32>>2]=0;F[b+36>>2]=0;F[b+24>>2]=0;F[b+28>>2]=0;F[b+16>>2]=0;F[b+20>>2]=0;F[b+8>>2]=0;F[b+12>>2]=0;Da:{if(!Nd(b+8|0,c)|(F[b+20>>2]?0:a)){break Da}if(!Md(b+8|0,c)){break Da}if(!a){f=1;break Da}m=F[b+52>>2];c=F[b+56>>2];e=F[b+36>>2];g=F[b+48>>2];o=F[b+24>>2];while(1){Ea:{if(c>>>0>16383){break Ea}while(1){if((m|0)<=0){break Ea}m=m-1|0;F[b+52>>2]=m;c=G[g+m|0]|c<<8;F[b+56>>2]=c;if(c>>>0<16384){continue}break}}f=c&4095;j=F[o+(f<<2)>>2];r=e+(j<<3)|0;c=(L(F[r>>2],c>>>12|0)+f|0)-F[r+4>>2]|0;F[b+56>>2]=c;F[(k<<2)+d>>2]=j;f=1;k=k+1|0;if((k|0)!=(a|0)){continue}break}}a=F[b+36>>2];if(a){F[b+40>>2]=a;ja(a)}a=F[b+24>>2];if(a){F[b+28>>2]=a;ja(a)}a=F[b+8>>2];if(a){F[b+12>>2]=a;ja(a)}Z=b- -64|0;b=f;break g;case 13:case 14:case 15:case 16:break h;default:break g}}b=Ld(a,c,d)}f=b}return f}function ih(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,I=0,J=0,K=0,M=0,N=0,O=0;u=Z+-64|0;Z=u;F[a+132>>2]=0;if(F[a+148>>2]){b=F[a+144>>2];if(b){while(1){f=F[b>>2];ja(b);b=f;if(b){continue}break}}b=0;F[a+144>>2]=0;f=F[a+140>>2];a:{if(!f){break a}if(f>>>0>=4){c=f&-4;while(1){e=b<<2;F[e+F[a+136>>2]>>2]=0;F[F[a+136>>2]+(e|4)>>2]=0;F[F[a+136>>2]+(e|8)>>2]=0;F[F[a+136>>2]+(e|12)>>2]=0;b=b+4|0;d=d+4|0;if((c|0)!=(d|0)){continue}break}}f=f&3;if(!f){break a}d=0;while(1){F[F[a+136>>2]+(b<<2)>>2]=0;b=b+1|0;d=d+1|0;if((f|0)!=(d|0)){continue}break}}F[a+148>>2]=0}b:{c:{if(!Da(1,u+60|0,F[F[a+4>>2]+32>>2])){break c}F[a+156>>2]=F[u+60>>2];if(!Da(1,u+56|0,F[F[a+4>>2]+32>>2])){break c}e=F[u+56>>2];if(e>>>0>1431655765){break c}b=F[a+156>>2];d=L(e,3);if(b>>>0>d>>>0){break c}f=b>>31;f=ki(b-1|0,f-!b|0,b,f);b=_;c=b>>>1|0;b=(b&1)<<31|f>>>1;if(!c&b>>>0>>1>>>0){break c}b=F[F[a+4>>2]+32>>2];c=F[b+8>>2];k=F[b+12>>2];d=F[b+20>>2];f=F[b+16>>2];if((k|0)<=(d|0)&f>>>0>=c>>>0|(d|0)>(k|0)){break c}k=G[f+F[b>>2]|0];f=f+1|0;d=f?d:d+1|0;F[b+16>>2]=f;F[b+20>>2]=d;if(!Da(1,u+52|0,b)){break c}q=F[u+52>>2];if(q>>>0>e>>>0|e>>>0>q+((q>>>0)/3|0)>>>0){break c}if(!Da(1,u+48|0,F[F[a+4>>2]+32>>2])){break c}d=F[u+48>>2];if(d>>>0>q>>>0){break c}F[a+28>>2]=F[a+24>>2];f=Zb(ka(88));b=F[a+8>>2];F[a+8>>2]=f;if(b){Za(b);if(!F[a+8>>2]){break c}}F[a+164>>2]=F[a+160>>2];Ib(a+160|0,e);F[a+176>>2]=F[a+172>>2];Ib(a+172|0,e);F[a- -64>>2]=0;F[a+92>>2]=-1;F[a+84>>2]=-1;F[a+88>>2]=-1;F[a+40>>2]=F[a+36>>2];F[a+52>>2]=F[a+48>>2];F[a+76>>2]=F[a+72>>2];A=a+216|0;Dd(A);Cd(A,k);if(!_c(F[a+8>>2],e,d+F[a+156>>2]|0)){break c}b=F[a+156>>2];D[u+8|0]=1;Ea(a+120|0,b+d|0,u+8|0);if((Bd(a,F[F[a+4>>2]+32>>2])|0)==-1){break c}c=a+232|0;b=c;F[b+144>>2]=a;f=F[($[F[F[a>>2]+32>>2]](a)|0)+32>>2];f=F[f>>2]+F[f+16>>2]|0;e=F[($[F[F[a>>2]+32>>2]](a)|0)+32>>2];e=F[e+8>>2]-F[e+16>>2]|0;N=b,O=H[F[($[F[F[a>>2]+32>>2]](a)|0)+32>>2]+38>>1],E[N+38>>1]=O;F[b>>2]=f;F[b+16>>2]=0;F[b+20>>2]=0;F[b+8>>2]=e;F[b+12>>2]=0;N=b,O=$[F[F[a>>2]+36>>2]](a)|0,F[N+148>>2]=O;F[a+372>>2]=k;F[a+384>>2]=d+F[a+156>>2];J=Ja(u+8|0);k=J;f=0;j=Z-16|0;Z=j;d:{if(!Aa(b+80|0,b)){break d}if(!yd(c)){break d}b=F[c+4>>2];F[k>>2]=F[c>>2];F[k+4>>2]=b;b=F[c+36>>2];F[k+32>>2]=F[c+32>>2];F[k+36>>2]=b;b=F[c+28>>2];F[k+24>>2]=F[c+24>>2];F[k+28>>2]=b;b=F[c+20>>2];F[k+16>>2]=F[c+16>>2];F[k+20>>2]=b;b=F[c+12>>2];F[k+8>>2]=F[c+8>>2];F[k+12>>2]=b;F[c+176>>2]=2;F[c+180>>2]=7;b=F[c+152>>2];if((b|0)<0){break d}F[j+12>>2]=0;f=2;h=F[c+156>>2];e=F[c+160>>2]-h>>2;e:{if(e>>>0>>0){Fa(c+156|0,b-e|0,j+12|0);f=F[c+176>>2];d=F[c+180>>2];break e}d=7;if(b>>>0>=e>>>0){break e}F[c+160>>2]=h+(b<<2)}e=c+184|0;d=(d-f|0)+1|0;b=F[c+188>>2];f=F[c+184>>2];s=(b-f|0)/12|0;f:{if(d>>>0>s>>>0){h=0;b=d-s|0;o=F[e+8>>2];f=F[e+4>>2];g:{if(b>>>0<=(o-f|0)/12>>>0){if(b){b=L(b,12)-12|0;b=(b-((b>>>0)%12|0)|0)+12|0;f=ma(f,0,b)+b|0}F[e+4>>2]=f;break g}h:{i:{j:{s=F[e>>2];g=(f-s|0)/12|0;d=g+b|0;if(d>>>0<357913942){o=(o-s|0)/12|0;i=o<<1;o=o>>>0>=178956970?357913941:d>>>0>>0?i:d;if(o){if(o>>>0>=357913942){break j}h=ka(L(o,12))}d=L(g,12)+h|0;b=L(b,12)-12|0;g=(b-((b>>>0)%12|0)|0)+12|0;b=ma(d,0,g);g=b+g|0;h=L(o,12)+h|0;if((f|0)==(s|0)){break i}while(1){d=d-12|0;f=f-12|0;F[d>>2]=F[f>>2];F[d+4>>2]=F[f+4>>2];F[d+8>>2]=F[f+8>>2];F[f+8>>2]=0;F[f>>2]=0;F[f+4>>2]=0;if((f|0)!=(s|0)){continue}break}F[e+8>>2]=h;b=F[e+4>>2];F[e+4>>2]=g;f=F[e>>2];F[e>>2]=d;if((b|0)==(f|0)){break h}while(1){d=b-12|0;h=F[d>>2];if(h){F[b-8>>2]=h;ja(h)}b=d;if((f|0)!=(b|0)){continue}break}break h}break b}oa();v()}F[e+8>>2]=h;F[e+4>>2]=g;F[e>>2]=b}if(f){ja(f)}}d=F[c+188>>2];break f}if(d>>>0>=s>>>0){d=b;break f}d=f+L(d,12)|0;if((d|0)!=(b|0)){while(1){f=b-12|0;h=F[f>>2];if(h){F[b-8>>2]=h;ja(h)}b=f;if((d|0)!=(b|0)){continue}break}}F[c+188>>2]=d}s=c+196|0;f=F[c+184>>2];b=(d-f|0)/12|0;o=F[c+196>>2];h=F[c+200>>2]-o>>2;k:{if(b>>>0>h>>>0){qa(s,b-h|0);f=F[c+184>>2];d=F[c+188>>2];break k}if(b>>>0>=h>>>0){break k}F[c+200>>2]=o+(b<<2)}if((d|0)==(f|0)){f=1;break d}b=0;while(1){l:{if(!Da(1,j+8|0,k)){break l}f=F[j+8>>2];d=F[c+148>>2];if(f>>>0>(F[d+4>>2]-F[d>>2]>>2>>>0)/3>>>0){break l}if(f){g=L(b,12);h=g+F[e>>2]|0;d=F[h>>2];o=F[h+4>>2]-d>>2;m:{if(o>>>0>>0){qa(h,f-o|0);d=F[g+F[e>>2]>>2];break m}if(f>>>0>=o>>>0){break m}F[h+4>>2]=(f<<2)+d}mc(f,1,k,d);F[F[s>>2]+(b<<2)>>2]=f}f=1;b=b+1|0;if(b>>>0<(F[c+188>>2]-F[c+184>>2]|0)/12>>>0){continue}break d}break}f=0}Z=j+16|0;n:{if(!f){break n}e=0;c=0;d=0;b=0;k=0;f=0;s=0;o=0;l=Z-96|0;Z=l;F[l+72>>2]=0;F[l+64>>2]=0;F[l+68>>2]=0;F[l+48>>2]=0;F[l+52>>2]=0;F[l+40>>2]=0;F[l+44>>2]=0;F[l+56>>2]=1065353216;F[l+32>>2]=0;F[l+24>>2]=0;F[l+28>>2]=0;j=a;C=F[a+124>>2];o:{p:{q:{r:{s:{if((q|0)<=0){break s}I=j+232|0;K=F[j+216>>2]!=F[j+220>>2];B=1;t:{while(1){h=s;s=h+1|0;u:{v:{w:{g=F[j+404>>2];if((g|0)==-1){F[j+400>>2]=7;break w}a=-1;i=F[j+428>>2]+(g<<2)|0;m=F[i>>2];g=m-1|0;F[i>>2]=g;if((m|0)<=0){break r}g=F[F[F[j+416>>2]+L(F[j+404>>2],12)>>2]+(g<<2)>>2];if(g>>>0>4){break r}i=F[(g<<2)+8896>>2];F[j+400>>2]=i;if(!g){if((b|0)==(c|0)){break r}i=-1;m=F[j+8>>2];B=F[m+24>>2];t=c-4|0;e=F[t>>2];g=-1;x:{if((e|0)==-1){break x}p=e+1|0;p=(p>>>0)%3|0?p:e-2|0;g=-1;if((p|0)==-1){break x}g=F[F[m>>2]+(p<<2)>>2]}n=F[B+(g<<2)>>2];if((n|0)!=-1){i=n+1|0;i=(i>>>0)%3|0?i:n-2|0}if((e|0)!=-1&F[F[m+12>>2]+(e<<2)>>2]!=-1|(e|0)==(i|0)){break r}n=F[m+12>>2];if((i|0)!=-1&F[n+(i<<2)>>2]!=-1){break r}p=L(h,3);h=p+1|0;F[n+(e<<2)>>2]=h;x=h<<2;F[x+n>>2]=e;r=p+2|0;F[n+(i<<2)>>2]=r;w=r<<2;F[w+n>>2]=i;n=-1;h=-1;y:{if((e|0)==-1){break y}z:{if((e>>>0)%3|0){e=e-1|0;break z}e=e+2|0;h=-1;if((e|0)==-1){break y}}h=F[F[m>>2]+(e<<2)>>2]}e=h;A:{if((i|0)==-1){break A}h=i+1|0;h=(h>>>0)%3|0?h:i-2|0;if((h|0)==-1){break A}n=F[F[m>>2]+(h<<2)>>2]}if((e|0)==(g|0)|(g|0)==(n|0)){break r}a=F[m>>2];F[a+(p<<2)>>2]=g;F[a+x>>2]=n;F[a+w>>2]=e;if((e|0)!=-1){F[B+(e<<2)>>2]=r}a=F[j+120>>2]+(g>>>3&536870908)|0;e=F[a>>2];N=a,O=oi(g)&e,F[N>>2]=O;F[t>>2]=p;e=b;kc(I,p);break u}B:{switch(i-1|0){case 2:case 4:if((b|0)==(c|0)){break r}r=c-4|0;e=F[r>>2];i=F[j+8>>2];m=F[i+12>>2];if((e|0)!=-1&F[m+(e<<2)>>2]!=-1){break r}c=L(h,3);n=(g|0)==3;g=c+(n?2:1)|0;t=g<<2;F[t+m>>2]=e;F[m+(e<<2)>>2]=g;Ma(i+24|0,8324);p=F[j+8>>2];m=F[p+24>>2];if(F[p+28>>2]-m>>2>(C|0)){break r}a=F[p>>2];w=a+t|0;p=F[i+28>>2];i=F[i+24>>2];t=(p-i>>2)-1|0;F[w>>2]=t;if((i|0)!=(p|0)){F[m+(t<<2)>>2]=g}g=n?c:c+2|0;w=a+(c+n<<2)|0;C:{if((e|0)==-1){F[a+(g<<2)>>2]=-1;i=-1;break C}D:{E:{F:{if((e>>>0)%3|0){i=e-1|0;break F}i=e+2|0;if((i|0)==-1){break E}}i=F[a+(i<<2)>>2];F[a+(g<<2)>>2]=i;if((i|0)==-1){break D}F[m+(i<<2)>>2]=g;break D}F[a+(g<<2)>>2]=-1}i=e+1|0;e=(i>>>0)%3|0?i:e-2|0;i=-1;if((e|0)==-1){break C}i=F[a+(e<<2)>>2]}F[w>>2]=i;F[r>>2]=c;e=b;break v;case 6:break w;case 0:break B;default:break r}}if((e|0)==(c|0)){break r}f=c-4|0;m=F[f>>2];F[l+68>>2]=f;n=F[l+44>>2];G:{if(!n){break G}g=F[l+40>>2];p=ni(n)>>>0>1;a=h&n+2147483647;H:{if(!p){break H}a=h;if(a>>>0>>0){break H}a=(h>>>0)%(n>>>0)|0}i=a;a=F[g+(i<<2)>>2];if(!a){break G}a=F[a>>2];if(!a){break G}I:{if(!p){g=n-1|0;while(1){n=F[a+4>>2];J:{if((n|0)!=(h|0)){if((i|0)==(g&n)){break J}break G}if((h|0)==F[a+8>>2]){break I}}a=F[a>>2];if(a){continue}break}break G}while(1){g=F[a+4>>2];K:{if((g|0)!=(h|0)){if(g>>>0>=n>>>0){g=(g>>>0)%(n>>>0)|0}if((g|0)==(i|0)){break K}break G}if((h|0)==F[a+8>>2]){break I}}a=F[a>>2];if(a){continue}break}break G}if((f|0)!=(k|0)){F[f>>2]=F[a+12>>2];F[l+68>>2]=c;f=c;break G}b=k-e|0;c=b>>2;d=c+1|0;if(d>>>0>=1073741824){break b}f=b>>>1|0;d=b>>>0>=2147483644?1073741823:d>>>0>>0?f:d;if(d){if(d>>>0>=1073741824){break p}f=ka(d<<2)}else{f=0}b=f+(c<<2)|0;F[b>>2]=F[a+12>>2];d=f+(d<<2)|0;f=b+4|0;if((e|0)!=(k|0)){while(1){b=b-4|0;k=k-4|0;F[b>>2]=F[k>>2];if((e|0)!=(k|0)){continue}break}}F[l+72>>2]=d;F[l+68>>2]=f;F[l+64>>2]=b;if(e){ja(e)}e=b;k=d}if((e|0)==(f|0)){break t}x=f-4|0;a=F[x>>2];if((a|0)==(m|0)){break t}i=(a|0)==-1;g=F[j+8>>2];if(!i&F[F[g+12>>2]+(a<<2)>>2]!=-1){break t}n=F[g+12>>2];if((m|0)!=-1&F[n+(m<<2)>>2]!=-1){break t}p=L(h,3);t=p+2|0;F[n+(a<<2)>>2]=t;c=t<<2;F[c+n>>2]=a;h=p+1|0;F[n+(m<<2)>>2]=h;w=h<<2;F[w+n>>2]=m;L:{M:{N:{if(!i){if((a>>>0)%3|0){h=a-1|0;break N}h=a+2|0;if((h|0)!=-1){break N}i=F[g>>2];h=-1;break M}h=-1;i=F[g>>2];F[i+(p<<2)>>2]=-1;r=-1;break L}i=F[g>>2];h=F[i+(h<<2)>>2]}F[(p<<2)+i>>2]=h;r=a+1|0;a=(r>>>0)%3|0?r:a-2|0;r=-1;if((a|0)==-1){break L}r=F[(a<<2)+i>>2]}F[i+w>>2]=r;O:{if((m|0)==-1){F[c+i>>2]=-1;r=-1;c=-1;break O}P:{Q:{R:{if((m>>>0)%3|0){a=m-1|0;break R}a=m+2|0;if((a|0)==-1){break Q}}a=F[(a<<2)+i>>2];F[c+i>>2]=a;if((a|0)==-1){break P}F[F[g+24>>2]+(a<<2)>>2]=t;break P}F[c+i>>2]=-1}r=-1;a=m+1|0;a=(a>>>0)%3|0?a:m-2|0;c=-1;if((a|0)==-1){break O}r=F[(a<<2)+i>>2];c=a}a=F[j+388>>2];t=h<<2;m=a+t|0;w=a;a=r<<2;F[m>>2]=F[m>>2]+F[w+a>>2];w=a;a=F[g+24>>2];m=w+a|0;if((h|0)!=-1){F[a+t>>2]=F[m>>2]}a=c;while(1){if((a|0)!=-1){F[(a<<2)+i>>2]=h;t=a+1|0;a=(t>>>0)%3|0?t:a-2|0;g=-1;S:{if((a|0)==-1){break S}a=F[n+(a<<2)>>2];g=-1;if((a|0)==-1){break S}g=a+1|0;g=(g>>>0)%3|0?g:a-2|0}a=g;if((c|0)!=(a|0)){continue}break t}break}F[m>>2]=-1;T:{U:{if(K){break U}if((y|0)!=(z|0)){F[z>>2]=r;z=z+4|0;F[l+28>>2]=z;break U}a=y-o|0;g=a>>2;c=g+1|0;if(c>>>0>=1073741824){break T}h=a>>>1|0;h=a>>>0>=2147483644?1073741823:c>>>0>>0?h:c;if(h){if(h>>>0>=1073741824){break p}c=ka(h<<2)}else{c=0}a=c+(g<<2)|0;F[a>>2]=r;z=a+4|0;if((o|0)!=(y|0)){while(1){a=a-4|0;y=y-4|0;F[a>>2]=F[y>>2];if((o|0)!=(y|0)){continue}break}}y=c+(h<<2)|0;F[l+32>>2]=y;F[l+28>>2]=z;F[l+24>>2]=a;if(o){ja(o)}o=a}F[x>>2]=p;c=f;kc(I,p);break u}break b}g=F[j+8>>2];Ma(g+24|0,8324);a=-1;k=F[j+8>>2];f=L(h,3);i=F[g+28>>2];m=F[g+24>>2];n=i-m|0;g=n>>2;p=g-1|0;F[F[k>>2]+(f<<2)>>2]=p;Ma(k+24|0,8324);r=f+1|0;F[F[k>>2]+(r<<2)>>2]=(F[k+28>>2]-F[k+24>>2]>>2)-1;k=F[j+8>>2];Ma(k+24|0,8324);t=f+2|0;F[F[k>>2]+(t<<2)>>2]=(F[k+28>>2]-F[k+24>>2]>>2)-1;x=F[j+8>>2];k=F[x+24>>2];if(F[x+28>>2]-k>>2>(C|0)){break r}V:{W:{if((i|0)!=(m|0)){F[k+(p<<2)>>2]=f;a=0;if((n|0)==-4){break W}}F[k+(g<<2)>>2]=r;a=g+1|0;if((a|0)==-1){break V}}F[k+(a<<2)>>2]=t}if((d|0)!=(c|0)){F[c>>2]=f;f=c+4|0;F[l+68>>2]=f;k=d;break v}a=d-b|0;k=a>>2;e=k+1|0;if(e>>>0>=1073741824){break b}c=a>>>1|0;a=a>>>0>=2147483644?1073741823:e>>>0>>0?c:e;if(a){if(a>>>0>=1073741824){break p}c=ka(a<<2)}else{c=0}e=c+(k<<2)|0;F[e>>2]=f;k=c+(a<<2)|0;f=e+4|0;if((b|0)!=(d|0)){while(1){e=e-4|0;d=d-4|0;F[e>>2]=F[d>>2];if((b|0)!=(d|0)){continue}break}}F[l+72>>2]=k;F[l+68>>2]=f;F[l+64>>2]=e;if(b){ja(b)}d=k;b=e}kc(I,F[f-4>>2]);a=F[j+40>>2];X:{if((a|0)==F[j+36>>2]){break X}c=a-12|0;g=F[c+4>>2];h=q+(h^-1)|0;if(g>>>0>h>>>0){break t}if((g|0)!=(h|0)){break X}i=G[a-4|0];g=F[c>>2];F[j+40>>2]=c;if((g|0)<0){break t}m=f-4|0;a=F[m>>2];F[l+20>>2]=q+(g^-1);c=l+20|0;F[l+88>>2]=c;Fb(l,l+40|0,c,l+88|0);g=F[l>>2];Y:{if(i&1){c=-1;if((a|0)==-1){break Y}c=a+1|0;c=(c>>>0)%3|0?c:a-2|0;break Y}c=-1;if((a|0)==-1){break Y}c=a-1|0;if((a>>>0)%3|0){break Y}c=a+2|0}F[g+12>>2]=c;a=F[j+40>>2];if((a|0)==F[j+36>>2]){break X}while(1){c=a-12|0;g=F[c+4>>2];if(g>>>0>h>>>0){break t}if((g|0)!=(h|0)){break X}i=G[a-4|0];g=F[c>>2];F[j+40>>2]=c;if((g|0)<0){break t}a=F[m>>2];F[l+20>>2]=q+(g^-1);c=l+20|0;F[l+88>>2]=c;Fb(l,l+40|0,c,l+88|0);g=F[l>>2];Z:{if(i&1){c=-1;if((a|0)==-1){break Z}c=a+1|0;c=(c>>>0)%3|0?c:a-2|0;break Z}c=-1;if((a|0)==-1){break Z}c=a-1|0;if((a>>>0)%3|0){break Z}c=a+2|0}F[g+12>>2]=c;a=F[j+40>>2];if((a|0)!=F[j+36>>2]){continue}break}}c=f}B=(q|0)>(s|0);if((q|0)!=(s|0)){continue}break}s=q;break s}a=-1;if(B){break r}}a=-1;c=F[j+8>>2];if(F[c+28>>2]-F[c+24>>2]>>2>(C|0)){break r}if((b|0)!=(f|0)){m=j+72|0;k=j+60|0;n=j+312|0;while(1){f=f-4|0;q=F[f>>2];F[l+68>>2]=f;_:{if(wa(n)){g=F[j+8>>2];o=F[g>>2];if(((F[g+4>>2]-o>>2>>>0)/3|0)<=(s|0)){a=-1;break r}b=-1;i=F[g+24>>2];a=-1;$:{if((q|0)==-1){break $}e=q+1|0;e=(e>>>0)%3|0?e:q-2|0;a=-1;if((e|0)==-1){break $}a=F[o+(e<<2)>>2]}e=a;a=F[i+(e<<2)>>2];aa:{if((a|0)==-1){h=1;c=-1;break aa}h=1;c=-1;d=a+1|0;a=(d>>>0)%3|0?d:a-2|0;if((a|0)==-1){break aa}h=0;b=a+1|0;b=(b>>>0)%3|0?b:a-2|0;if((b|0)!=-1){c=F[o+(b<<2)>>2]}b=a}a=-1;d=-1;i=F[i+(c<<2)>>2];if((i|0)!=-1){d=i+1|0;d=(d>>>0)%3|0?d:i-2|0}if((b|0)==(q|0)|(d|0)==(q|0)|((q|0)!=-1&F[F[g+12>>2]+(q<<2)>>2]!=-1|(b|0)==(d|0))){break r}if(!h&F[F[g+12>>2]+(b<<2)>>2]!=-1){break r}h=-1;g=F[g+12>>2];i=-1;ba:{if((d|0)==-1){break ba}if(F[g+(d<<2)>>2]!=-1){break r}a=d+1|0;a=(a>>>0)%3|0?a:d-2|0;i=-1;if((a|0)==-1){break ba}i=F[o+(a<<2)>>2]}a=L(s,3);F[l>>2]=a;F[g+(a<<2)>>2]=q;F[g+(q<<2)>>2]=a;a=F[l>>2]+1|0;F[g+(a<<2)>>2]=b;F[g+(b<<2)>>2]=a;a=F[l>>2]+2|0;F[g+(a<<2)>>2]=d;F[g+(d<<2)>>2]=a;a=F[l>>2];F[o+(a<<2)>>2]=c;b=a+1|0;d=o+(b<<2)|0;F[d>>2]=i;q=a+2|0;o=o+(q<<2)|0;F[o>>2]=e;a=F[j+120>>2];e=b?c:-1;c=a+(e>>>3&536870908)|0;g=F[c>>2];N=c,O=oi(e)&g,F[N>>2]=O;h=(b|0)!=-1?F[d>>2]:h;b=a+(h>>>3&536870908)|0;d=F[b>>2];N=b,O=oi(h)&d,F[N>>2]=O;d=-1;d=(q|0)!=-1?F[o>>2]:d;a=a+(d>>>3&536870908)|0;b=F[a>>2];N=a,O=oi(d)&b,F[N>>2]=O;D[l+88|0]=1;wd(k,l+88|0);Ma(m,l);s=s+1|0;b=F[l+64>>2];break _}d=F[j+64>>2];a=F[j+68>>2];if((d|0)==a<<5){if((d+1|0)<0){break b}if(d>>>0<=1073741822){a=a<<6;d=(d&-32)+32|0;a=a>>>0>d>>>0?a:d}else{a=2147483647}$a(k,a);d=F[j+64>>2]}F[j+64>>2]=d+1;a=F[j+60>>2]+(d>>>3&536870908)|0;e=F[a>>2];N=a,O=oi(d)&e,F[N>>2]=O;d=F[j+76>>2];if((d|0)!=F[j+80>>2]){F[d>>2]=q;F[j+76>>2]=d+4;break _}c=F[m>>2];a=d-c|0;o=a>>2;e=o+1|0;if(e>>>0>=1073741824){break b}h=a>>>1|0;h=a>>>0>=2147483644?1073741823:e>>>0>>0?h:e;if(h){if(h>>>0>=1073741824){break p}a=ka(h<<2)}else{a=0}e=a+(o<<2)|0;F[e>>2]=q;q=e+4|0;if((d|0)!=(c|0)){while(1){e=e-4|0;d=d-4|0;F[e>>2]=F[d>>2];if((d|0)!=(c|0)){continue}break}}F[j+80>>2]=a+(h<<2);F[j+76>>2]=q;F[j+72>>2]=e;if(!c){break _}ja(c)}if((b|0)!=(f|0)){continue}break}c=F[j+8>>2]}a=-1;if(((F[c+4>>2]-F[c>>2]>>2>>>0)/3|0)!=(s|0)){break r}a=F[c+28>>2]-F[c+24>>2]>>2;f=F[l+24>>2];h=F[l+28>>2];if((f|0)==(h|0)){break q}while(1){b=F[f>>2];k=F[c+24>>2];d=a-1|0;e=k+(d<<2)|0;if(F[e>>2]==-1){while(1){d=a-2|0;a=a-1|0;e=k+(d<<2)|0;if(F[e>>2]==-1){continue}break}}if(b>>>0<=d>>>0){F[l>>2]=c;e=F[e>>2];D[l+12|0]=1;F[l+8>>2]=e;F[l+4>>2]=e;if((e|0)!=-1){while(1){e=F[F[j+8>>2]>>2]+(e<<2)|0;if(F[e>>2]!=(d|0)){a=-1;break r}F[e>>2]=b;nc(l);e=F[l+8>>2];if((e|0)!=-1){continue}break}c=F[j+8>>2]}k=F[c+24>>2];e=k+(d<<2)|0;if((b|0)!=-1){F[k+(b<<2)>>2]=F[e>>2]}F[e>>2]=-1;e=1<>2];b=k+(b>>>3&536870908)|0;k=k+(d>>>3&536870908)|0;d=1<>2]&d){e=e|F[b>>2]}else{e=F[b>>2]&(e^-1)}F[b>>2]=e;F[k>>2]=F[k>>2]&(d^-1);a=a-1|0}f=f+4|0;if((h|0)!=(f|0)){continue}break}}f=F[l+24>>2]}if(f){ja(f)}b=F[l+48>>2];if(b){while(1){d=F[b>>2];ja(b);b=d;if(b){continue}break}}b=F[l+40>>2];F[l+40>>2]=0;if(b){ja(b)}b=F[l+64>>2];if(b){F[l+68>>2]=b;ja(b)}Z=l+96|0;break o}oa();v()}f=a;if((a|0)==-1){break n}a=J;b=F[a+16>>2];d=b+F[a>>2]|0;b=F[a+8>>2]-b|0;a=F[F[j+4>>2]+32>>2];E[a+38>>1]=H[a+38>>1];F[a>>2]=d;F[a+16>>2]=0;F[a+20>>2]=0;F[a+8>>2]=b;F[a+12>>2]=0;ca:{if(F[j+216>>2]==F[j+220>>2]){break ca}a=F[j+8>>2];if(F[a+4>>2]==F[a>>2]){break ca}b=0;while(1){if(Ad(j,b)){b=b+3|0;a=F[j+8>>2];if(b>>>0>2]-F[a>>2]>>2>>>0){continue}break ca}break}break n}if(G[j+308|0]){D[j+308|0]=0;d=F[j+292>>2];a=0;e=F[j+304>>2]+7|0;a=e>>>0<7?1:a;e=a<<29|e>>>3;b=e+F[j+288>>2]|0;a=(a>>>3|0)+d|0;F[j+288>>2]=b;F[j+292>>2]=b>>>0>>0?a+1|0:a}b=F[j+216>>2];if((b|0)!=F[j+220>>2]){a=0;while(1){e=L(a,144);Zc((e+b|0)+4|0,F[j+8>>2]);d=F[A>>2];c=d+e|0;b=F[c+132>>2];c=F[c+136>>2];if((b|0)!=(c|0)){while(1){Xc((e+F[A>>2]|0)+4|0,F[b>>2]);b=b+4|0;if((c|0)!=(b|0)){continue}break}d=F[A>>2]}if(!Yc((d+e|0)+4|0)){break n}a=a+1|0;b=F[j+216>>2];if(a>>>0<(F[j+220>>2]-b|0)/144>>>0){continue}break}}a=F[j+8>>2];Hb(j+184|0,F[a+28>>2]-F[a+24>>2]>>2);d=F[j+216>>2];if((d|0)!=F[j+220>>2]){b=0;while(1){a=L(b,144)+d|0;d=F[a+60>>2]-F[a+56>>2]>>2;c=a+104|0;a=F[j+8>>2];a=F[a+28>>2]-F[a+24>>2]>>2;Hb(c,(a|0)<(d|0)?d:a);b=b+1|0;d=F[j+216>>2];if(b>>>0<(F[j+220>>2]-d|0)/144>>>0){continue}break}}M=zd(j,f)}}Z=u- -64|0;return M|0}na();v()}function lh(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,I=0,J=0,K=0,M=0;t=Z+-64|0;Z=t;F[a+132>>2]=0;if(F[a+148>>2]){c=F[a+144>>2];if(c){while(1){b=F[c>>2];ja(c);c=b;if(b){continue}break}}c=0;F[a+144>>2]=0;b=F[a+140>>2];a:{if(!b){break a}if(b>>>0>=4){h=b&-4;while(1){e=c<<2;F[e+F[a+136>>2]>>2]=0;F[F[a+136>>2]+(e|4)>>2]=0;F[F[a+136>>2]+(e|8)>>2]=0;F[F[a+136>>2]+(e|12)>>2]=0;c=c+4|0;f=f+4|0;if((h|0)!=(f|0)){continue}break}}b=b&3;if(!b){break a}f=0;while(1){F[F[a+136>>2]+(c<<2)>>2]=0;c=c+1|0;f=f+1|0;if((b|0)!=(f|0)){continue}break}}F[a+148>>2]=0}b:{if(!Da(1,t+60|0,F[F[a+4>>2]+32>>2])){break b}F[a+156>>2]=F[t+60>>2];if(!Da(1,t+56|0,F[F[a+4>>2]+32>>2])){break b}e=F[t+56>>2];if(e>>>0>1431655765){break b}c=F[a+156>>2];b=L(e,3);if(c>>>0>b>>>0){break b}f=b>>>1|0;b=c>>31;h=ki(c-1|0,b-!c|0,c,b);b=_;c=b>>>1|0;b=(b&1)<<31|h>>>1;if(!c&b>>>0>>0){break b}c=F[F[a+4>>2]+32>>2];h=F[c+8>>2];m=F[c+12>>2];b=F[c+20>>2];f=F[c+16>>2];if((m|0)<=(b|0)&f>>>0>=h>>>0|(b|0)>(m|0)){break b}h=G[f+F[c>>2]|0];f=f+1|0;b=f?b:b+1|0;F[c+16>>2]=f;F[c+20>>2]=b;if(!Da(1,t+52|0,c)){break b}n=F[t+52>>2];if(n>>>0>e>>>0|e>>>0>n+((n>>>0)/3|0)>>>0){break b}if(!Da(1,t+48|0,F[F[a+4>>2]+32>>2])){break b}c=F[t+48>>2];if(c>>>0>n>>>0){break b}F[a+28>>2]=F[a+24>>2];f=Zb(ka(88));b=F[a+8>>2];F[a+8>>2]=f;if(b){Za(b);if(!F[a+8>>2]){break b}}F[a+164>>2]=F[a+160>>2];Ib(a+160|0,e);F[a+176>>2]=F[a+172>>2];Ib(a+172|0,e);F[a- -64>>2]=0;F[a+92>>2]=-1;F[a+84>>2]=-1;F[a+88>>2]=-1;F[a+40>>2]=F[a+36>>2];F[a+52>>2]=F[a+48>>2];F[a+76>>2]=F[a+72>>2];y=a+216|0;Dd(y);Cd(y,h);if(!_c(F[a+8>>2],e,c+F[a+156>>2]|0)){break b}b=F[a+156>>2];D[t+8|0]=1;Ea(a+120|0,b+c|0,t+8|0);if((Bd(a,F[F[a+4>>2]+32>>2])|0)==-1){break b}c=a+232|0;F[c+144>>2]=a;b=F[($[F[F[a>>2]+32>>2]](a)|0)+32>>2];b=F[b>>2]+F[b+16>>2]|0;f=F[($[F[F[a>>2]+32>>2]](a)|0)+32>>2];f=F[f+8>>2]-F[f+16>>2]|0;K=c,M=H[F[($[F[F[a>>2]+32>>2]](a)|0)+32>>2]+38>>1],E[K+38>>1]=M;F[c>>2]=b;F[c+16>>2]=0;F[c+20>>2]=0;F[c+8>>2]=f;F[c+12>>2]=0;F[a+372>>2]=h;C=Ja(t+8|0);h=C;m=0;d=Z-16|0;Z=d;b=F[c+4>>2];F[c+40>>2]=F[c>>2];F[c+44>>2]=b;b=F[c+36>>2];F[c+72>>2]=F[c+32>>2];F[c+76>>2]=b;f=F[c+28>>2];b=c- -64|0;F[b>>2]=F[c+24>>2];F[b+4>>2]=f;b=F[c+20>>2];F[c+56>>2]=F[c+16>>2];F[c+60>>2]=b;b=F[c+12>>2];F[c+48>>2]=F[c+8>>2];F[c+52>>2]=b;c:{d:{if(hc(c+40|0,1,d+8|0)){b=F[c+44>>2];F[c>>2]=F[c+40>>2];F[c+4>>2]=b;b=F[c+76>>2];F[c+32>>2]=F[c+72>>2];F[c+36>>2]=b;b=F[c+68>>2];F[c+24>>2]=F[c+64>>2];F[c+28>>2]=b;f=F[c+60>>2];g=f;b=F[c+56>>2];F[c+16>>2]=b;F[c+20>>2]=f;e=F[c+52>>2];f=F[c+48>>2];F[c+8>>2]=f;F[c+12>>2]=e;k=F[d+12>>2];i=e-((b>>>0>f>>>0)+g|0)|0;e=f-b|0;f=F[d+8>>2];if((k|0)==(i|0)&e>>>0>=f>>>0|i>>>0>k>>>0){break d}}break c}e=g+k|0;b=b+f|0;e=b>>>0>>0?e+1|0:e;F[c+16>>2]=b;F[c+20>>2]=e;if(!Aa(c+80|0,c)){break c}if(!yd(c)){break c}b=F[c+4>>2];F[h>>2]=F[c>>2];F[h+4>>2]=b;b=F[c+36>>2];F[h+32>>2]=F[c+32>>2];F[h+36>>2]=b;b=F[c+28>>2];F[h+24>>2]=F[c+24>>2];F[h+28>>2]=b;b=F[c+20>>2];F[h+16>>2]=F[c+16>>2];F[h+20>>2]=b;b=F[c+12>>2];F[h+8>>2]=F[c+8>>2];F[h+12>>2]=b;m=1}Z=d+16|0;e:{if(!m){break e}b=0;c=0;f=0;m=0;j=Z-96|0;Z=j;F[j+72>>2]=0;F[j+64>>2]=0;F[j+68>>2]=0;F[j+48>>2]=0;F[j+52>>2]=0;F[j+40>>2]=0;F[j+44>>2]=0;F[j+56>>2]=1065353216;F[j+32>>2]=0;F[j+24>>2]=0;F[j+28>>2]=0;h=a;B=F[a+124>>2];f:{g:{h:{i:{j:{k:{l:{m:{if((n|0)<=0){break m}I=F[h+216>>2]!=F[h+220>>2];z=1;while(1){e=m;m=e+1|0;n:{o:{p:{q:{r:{s:{t:{u:{v:{w:{x:{y:{z:{A:{B:{if(!G[h+308|0]){break B}k=F[h+296>>2];d=F[h+304>>2];a=k+(d>>>3|0)|0;l=F[h+300>>2];if(a>>>0>=l>>>0){break B}g=G[a|0];a=d+1|0;F[h+304>>2]=a;p=g>>>(d&7)&1;if(!p){break B}i=0;g=a>>>3|0;r=k+g|0;C:{if(r>>>0>=l>>>0){d=a;a=0;break C}r=G[r|0];d=d+2|0;F[h+304>>2]=d;g=d>>>3|0;a=r>>>(a&7)&1}g=g+k|0;if(g>>>0>>0){g=G[g|0];F[h+304>>2]=d+1;i=g>>>(d&7)<<1&2}g=-1;i=p|(a|i)<<1;switch(i-1|0){case 6:break y;case 0:break z;case 2:case 4:break A;default:break l}}if((c|0)==(f|0)){g=-1;break l}d=-1;i=F[h+8>>2];z=F[i+24>>2];r=c-4|0;b=F[r>>2];a=-1;D:{if((b|0)==-1){break D}k=b+1|0;k=(k>>>0)%3|0?k:b-2|0;a=-1;if((k|0)==-1){break D}a=F[F[i>>2]+(k<<2)>>2]}g=F[z+(a<<2)>>2];if((g|0)!=-1){d=g+1|0;d=(d>>>0)%3|0?d:g-2|0}if((b|0)==(d|0)){g=-1;break l}if((b|0)!=-1){g=-1;if(F[F[i+12>>2]+(b<<2)>>2]!=-1){break l}}k=F[i+12>>2];if((d|0)!=-1){g=-1;if(F[k+(d<<2)>>2]!=-1){break l}}l=L(e,3);e=l+1|0;F[k+(b<<2)>>2]=e;s=e<<2;F[s+k>>2]=b;p=l+2|0;F[k+(d<<2)>>2]=p;u=p<<2;F[u+k>>2]=d;k=-1;e=-1;E:{if((b|0)==-1){break E}F:{if((b>>>0)%3|0){b=b-1|0;break F}b=b+2|0;e=-1;if((b|0)==-1){break E}}e=F[F[i>>2]+(b<<2)>>2]}b=e;G:{if((d|0)==-1){break G}e=d+1|0;e=(e>>>0)%3|0?e:d-2|0;if((e|0)==-1){break G}k=F[F[i>>2]+(e<<2)>>2]}g=-1;if((a|0)==(b|0)|(a|0)==(k|0)){break l}e=F[i>>2];F[e+(l<<2)>>2]=a;F[e+s>>2]=k;F[e+u>>2]=b;if((b|0)!=-1){F[z+(b<<2)>>2]=p}b=F[h+120>>2]+(a>>>3&536870908)|0;e=F[b>>2];K=b,M=oi(a)&e,F[K>>2]=M;F[r>>2]=l;b=f;break n}if((c|0)==(f|0)){break l}r=c-4|0;b=F[r>>2];a=F[h+8>>2];d=F[a+12>>2];if((b|0)!=-1&F[d+(b<<2)>>2]!=-1){break l}l=(i|0)==5;i=L(e,3);p=(l?2:1)+i|0;s=p<<2;F[s+d>>2]=b;F[d+(b<<2)>>2]=p;Ma(a+24|0,8324);d=F[h+8>>2];k=F[d+24>>2];if(F[d+28>>2]-k>>2>(B|0)){break l}d=F[d>>2];u=d+s|0;g=F[a+28>>2];a=F[a+24>>2];s=(g-a>>2)-1|0;F[u>>2]=s;if((a|0)!=(g|0)){F[k+(s<<2)>>2]=p}g=l?i:i+2|0;l=d+(i+l<<2)|0;H:{if((b|0)==-1){F[d+(g<<2)>>2]=-1;a=-1;break H}I:{J:{K:{if((b>>>0)%3|0){a=b-1|0;break K}a=b+2|0;if((a|0)==-1){break J}}a=F[d+(a<<2)>>2];F[d+(g<<2)>>2]=a;if((a|0)==-1){break I}F[k+(a<<2)>>2]=g;break I}F[d+(g<<2)>>2]=-1}g=b+1|0;b=(g>>>0)%3|0?g:b-2|0;a=-1;if((b|0)==-1){break H}a=F[d+(b<<2)>>2]}F[l>>2]=a;F[r>>2]=i;b=f;break t}if((b|0)==(c|0)){break l}a=c-4|0;k=F[a>>2];F[j+68>>2]=a;l=F[j+44>>2];L:{if(!l){c=a;break L}g=F[j+40>>2];p=ni(l)>>>0>1;d=e&l+2147483647;M:{if(!p){break M}d=e;if(d>>>0>>0){break M}d=(e>>>0)%(l>>>0)|0}i=d;d=F[g+(i<<2)>>2];if(!d){c=a;break L}d=F[d>>2];if(!d){c=a;break L}N:{if(!p){g=l-1|0;while(1){l=F[d+4>>2];O:{if((l|0)!=(e|0)){if((i|0)==(g&l)){break O}c=a;break L}if((e|0)==F[d+8>>2]){break N}}d=F[d>>2];if(d){continue}break}c=a;break L}while(1){g=F[d+4>>2];P:{if((g|0)!=(e|0)){if(g>>>0>=l>>>0){g=(g>>>0)%(l>>>0)|0}if((g|0)==(i|0)){break P}c=a;break L}if((e|0)==F[d+8>>2]){break N}}d=F[d>>2];if(d){continue}break}c=a;break L}if((a|0)!=(q|0)){F[a>>2]=F[d+12>>2];F[j+68>>2]=c;break L}a=q-b|0;f=a>>2;c=f+1|0;if(c>>>0>=1073741824){break x}g=a>>>1|0;g=a>>>0>=2147483644?1073741823:c>>>0>>0?g:c;if(g){if(g>>>0>=1073741824){break j}a=ka(g<<2)}else{a=0}f=a+(f<<2)|0;F[f>>2]=F[d+12>>2];c=f+4|0;if((b|0)!=(q|0)){while(1){f=f-4|0;q=q-4|0;F[f>>2]=F[q>>2];if((b|0)!=(q|0)){continue}break}}q=a+(g<<2)|0;F[j+72>>2]=q;F[j+68>>2]=c;F[j+64>>2]=f;if(b){ja(b)}}if((c|0)==(f|0)){break p}s=c-4|0;b=F[s>>2];if((b|0)==(k|0)){break p}a=(b|0)==-1;g=F[h+8>>2];if(!a&F[F[g+12>>2]+(b<<2)>>2]!=-1){break p}l=F[g+12>>2];if((k|0)!=-1&F[l+(k<<2)>>2]!=-1){break p}p=L(e,3);r=p+2|0;F[l+(b<<2)>>2]=r;e=r<<2;F[e+l>>2]=b;d=p+1|0;F[l+(k<<2)>>2]=d;u=d<<2;F[u+l>>2]=k;if(a){break w}if((b>>>0)%3|0){d=b-1|0;break s}d=b+2|0;if((d|0)!=-1){break s}a=F[g>>2];d=-1;break r}i=F[h+8>>2];Ma(i+24|0,8324);d=F[h+8>>2];a=L(e,3);k=F[i+28>>2];l=F[i+24>>2];p=k-l|0;i=p>>2;r=i-1|0;F[F[d>>2]+(a<<2)>>2]=r;Ma(d+24|0,8324);s=a+1|0;F[F[d>>2]+(s<<2)>>2]=(F[d+28>>2]-F[d+24>>2]>>2)-1;d=F[h+8>>2];Ma(d+24|0,8324);u=a+2|0;F[F[d>>2]+(u<<2)>>2]=(F[d+28>>2]-F[d+24>>2]>>2)-1;A=F[h+8>>2];d=F[A+24>>2];if(F[A+28>>2]-d>>2>(B|0)){break l}Q:{R:{if((k|0)!=(l|0)){F[d+(r<<2)>>2]=a;g=0;if((p|0)==-4){break R}}F[d+(i<<2)>>2]=s;g=i+1|0;if((g|0)==-1){break Q}}F[d+(g<<2)>>2]=u}if((c|0)!=(q|0)){F[c>>2]=a;c=c+4|0;F[j+68>>2]=c;break t}f=c-b|0;i=f>>2;d=i+1|0;if(d>>>0>=1073741824){break v}g=f>>>1|0;d=f>>>0>=2147483644?1073741823:d>>>0>>0?g:d;if(d){if(d>>>0>=1073741824){break j}g=ka(d<<2)}else{g=0}f=g+(i<<2)|0;F[f>>2]=a;q=g+(d<<2)|0;a=f+4|0;if((b|0)!=(c|0)){while(1){f=f-4|0;c=c-4|0;F[f>>2]=F[c>>2];if((b|0)!=(c|0)){continue}break}}F[j+72>>2]=q;F[j+68>>2]=a;F[j+64>>2]=f;if(!b){break u}ja(b);break u}na();v()}d=-1;a=F[g>>2];F[a+(p<<2)>>2]=-1;i=-1;break q}na();v()}c=a;b=f}a=F[h+40>>2];if((a|0)==F[h+36>>2]){break n}d=a-12|0;i=F[d+4>>2];g=n+(e^-1)|0;if(i>>>0>g>>>0){break p}if((g|0)!=(i|0)){break n}i=G[a-4|0];e=F[d>>2];F[h+40>>2]=d;if((e|0)<0){break p}k=c-4|0;a=F[k>>2];F[j+20>>2]=n+(e^-1);e=j+20|0;F[j+88>>2]=e;Fb(j,j+40|0,e,j+88|0);d=F[j>>2];S:{if(i&1){e=-1;if((a|0)==-1){break S}e=a+1|0;e=(e>>>0)%3|0?e:a-2|0;break S}e=-1;if((a|0)==-1){break S}e=a-1|0;if((a>>>0)%3|0){break S}e=a+2|0}F[d+12>>2]=e;d=F[h+40>>2];if((d|0)==F[h+36>>2]){break n}while(1){a=d-12|0;e=F[a+4>>2];if(e>>>0>g>>>0){break p}if((g|0)!=(e|0)){break n}d=G[d-4|0];e=F[a>>2];F[h+40>>2]=a;if((e|0)<0){break p}a=F[k>>2];F[j+20>>2]=n+(e^-1);e=j+20|0;F[j+88>>2]=e;Fb(j,j+40|0,e,j+88|0);i=F[j>>2];T:{if(d&1){e=-1;if((a|0)==-1){break T}e=a+1|0;e=(e>>>0)%3|0?e:a-2|0;break T}e=-1;if((a|0)==-1){break T}e=a-1|0;if((a>>>0)%3|0){break T}e=a+2|0}F[i+12>>2]=e;d=F[h+40>>2];if((d|0)!=F[h+36>>2]){continue}break}break n}a=F[g>>2];d=F[a+(d<<2)>>2]}F[(p<<2)+a>>2]=d;A=b+1|0;b=(A>>>0)%3|0?A:b-2|0;i=-1;if((b|0)==-1){break q}i=F[(b<<2)+a>>2]}F[a+u>>2]=i;U:{if((k|0)==-1){F[a+e>>2]=-1;i=-1;e=-1;break U}V:{W:{X:{if((k>>>0)%3|0){b=k-1|0;break X}b=k+2|0;if((b|0)==-1){break W}}b=F[(b<<2)+a>>2];F[a+e>>2]=b;if((b|0)==-1){break V}F[F[g+24>>2]+(b<<2)>>2]=r;break V}F[a+e>>2]=-1}i=-1;b=k+1|0;b=(b>>>0)%3|0?b:k-2|0;e=-1;if((b|0)==-1){break U}i=F[(b<<2)+a>>2];e=b}b=F[g+24>>2];k=b+(i<<2)|0;if((d|0)!=-1){F[b+(d<<2)>>2]=F[k>>2]}b=e;while(1){if((b|0)==-1){break o}F[(b<<2)+a>>2]=d;r=b+1|0;b=(r>>>0)%3|0?r:b-2|0;g=-1;Y:{if((b|0)==-1){break Y}b=F[l+(b<<2)>>2];g=-1;if((b|0)==-1){break Y}g=b+1|0;g=(g>>>0)%3|0?g:b-2|0}b=g;if((e|0)!=(b|0)){continue}break}}g=-1;if(!z){break m}break l}F[k>>2]=-1;Z:{if(I){break Z}if((w|0)!=(x|0)){F[x>>2]=i;x=x+4|0;F[j+28>>2]=x;break Z}a=w-o|0;d=a>>2;b=d+1|0;if(b>>>0>=1073741824){break i}e=a>>>1|0;e=a>>>0>=2147483644?1073741823:b>>>0>>0?e:b;if(e){if(e>>>0>=1073741824){break j}a=ka(e<<2)}else{a=0}b=a+(d<<2)|0;F[b>>2]=i;x=b+4|0;if((o|0)!=(w|0)){while(1){b=b-4|0;w=w-4|0;F[b>>2]=F[w>>2];if((o|0)!=(w|0)){continue}break}}w=a+(e<<2)|0;F[j+32>>2]=w;F[j+28>>2]=x;F[j+24>>2]=b;if(o){ja(o)}o=b}F[s>>2]=p;b=f}z=(m|0)<(n|0);if((m|0)!=(n|0)){continue}break}m=n}g=-1;a=F[h+8>>2];if(F[a+28>>2]-F[a+24>>2]>>2>(B|0)){break l}if((c|0)!=(f|0)){l=h+72|0;e=h+60|0;w=h+312|0;while(1){c=c-4|0;i=F[c>>2];F[j+68>>2]=c;_:{if(wa(w)){q=F[h+8>>2];k=F[q>>2];if(((F[q+4>>2]-k>>2>>>0)/3|0)<=(m|0)){g=-1;break l}a=-1;g=-1;b=-1;x=F[q+24>>2];f=-1;$:{if((i|0)==-1){break $}n=i+1|0;n=(n>>>0)%3|0?n:i-2|0;f=-1;if((n|0)==-1){break $}f=F[k+(n<<2)>>2]}n=f;o=F[x+(n<<2)>>2];aa:{if((o|0)==-1){d=1;f=-1;break aa}d=1;p=o+1|0;o=(p>>>0)%3|0?p:o-2|0;f=-1;if((o|0)==-1){break aa}d=0;a=o;f=a+1|0;f=(f>>>0)%3|0?f:a-2|0;if((f|0)!=-1){f=F[k+(f<<2)>>2]}else{f=-1}}o=F[(f<<2)+x>>2];if((o|0)!=-1){b=o+1|0;b=(b>>>0)%3|0?b:o-2|0}if((a|0)==(i|0)|(b|0)==(i|0)|((i|0)!=-1&F[F[q+12>>2]+(i<<2)>>2]!=-1|(a|0)==(b|0))){break l}if(!d&F[F[q+12>>2]+(a<<2)>>2]!=-1){break l}d=-1;o=F[q+12>>2];q=-1;ba:{if((b|0)==-1){break ba}if(F[o+(b<<2)>>2]!=-1){break l}g=b+1|0;g=(g>>>0)%3|0?g:b-2|0;q=-1;if((g|0)==-1){break ba}q=F[k+(g<<2)>>2]}g=L(m,3);F[j>>2]=g;F[o+(g<<2)>>2]=i;F[o+(i<<2)>>2]=g;g=F[j>>2]+1|0;F[o+(g<<2)>>2]=a;F[o+(a<<2)>>2]=g;a=F[j>>2]+2|0;F[o+(a<<2)>>2]=b;F[o+(b<<2)>>2]=a;a=F[j>>2];F[k+(a<<2)>>2]=f;b=a+1|0;g=k+(b<<2)|0;F[g>>2]=q;o=a+2|0;i=k+(o<<2)|0;F[i>>2]=n;a=F[h+120>>2];f=b?f:-1;n=a+(f>>>3&536870908)|0;k=F[n>>2];K=n,M=oi(f)&k,F[K>>2]=M;d=(b|0)!=-1?F[g>>2]:d;b=a+(d>>>3&536870908)|0;f=F[b>>2];K=b,M=oi(d)&f,F[K>>2]=M;b=-1;b=(o|0)!=-1?F[i>>2]:b;a=a+(b>>>3&536870908)|0;f=F[a>>2];K=a,M=oi(b)&f,F[K>>2]=M;D[j+88|0]=1;wd(e,j+88|0);Ma(l,j);m=m+1|0;f=F[j+64>>2];break _}b=F[h+64>>2];a=F[h+68>>2];if((b|0)==a<<5){if((b+1|0)<0){break h}if(b>>>0<=1073741822){a=a<<6;b=(b&-32)+32|0;a=a>>>0>b>>>0?a:b}else{a=2147483647}$a(e,a);b=F[h+64>>2]}F[h+64>>2]=b+1;a=F[h+60>>2]+(b>>>3&536870908)|0;d=F[a>>2];K=a,M=oi(b)&d,F[K>>2]=M;b=F[h+76>>2];if((b|0)!=F[h+80>>2]){F[b>>2]=i;F[h+76>>2]=b+4;break _}g=F[l>>2];a=b-g|0;o=a>>2;d=o+1|0;if(d>>>0>=1073741824){break g}n=a>>>1|0;n=a>>>0>=2147483644?1073741823:d>>>0>>0?n:d;if(n){if(n>>>0>=1073741824){break j}a=ka(n<<2)}else{a=0}d=a+(o<<2)|0;F[d>>2]=i;o=d+4|0;if((b|0)!=(g|0)){while(1){d=d-4|0;b=b-4|0;F[d>>2]=F[b>>2];if((b|0)!=(g|0)){continue}break}}F[h+80>>2]=a+(n<<2);F[h+76>>2]=o;F[h+72>>2]=d;if(!g){break _}ja(g)}if((c|0)!=(f|0)){continue}break}a=F[h+8>>2]}g=-1;if(((F[a+4>>2]-F[a>>2]>>2>>>0)/3|0)!=(m|0)){break l}g=F[a+28>>2]-F[a+24>>2]>>2;c=F[j+24>>2];n=F[j+28>>2];if((c|0)==(n|0)){break k}while(1){f=F[c>>2];e=F[a+24>>2];b=g-1|0;d=e+(b<<2)|0;if(F[d>>2]==-1){while(1){b=g-2|0;g=g-1|0;d=e+(b<<2)|0;if(F[d>>2]==-1){continue}break}}if(b>>>0>=f>>>0){F[j>>2]=a;d=F[d>>2];D[j+12|0]=1;F[j+8>>2]=d;F[j+4>>2]=d;if((d|0)!=-1){while(1){a=F[F[h+8>>2]>>2]+(d<<2)|0;if(F[a>>2]!=(b|0)){g=-1;break l}F[a>>2]=f;nc(j);d=F[j+8>>2];if((d|0)!=-1){continue}break}a=F[h+8>>2]}m=F[a+24>>2];e=m+(b<<2)|0;if((f|0)!=-1){F[m+(f<<2)>>2]=F[e>>2]}F[e>>2]=-1;e=1<>2];f=m+(f>>>3&536870908)|0;d=1<>>3&536870908)|0;if(d&F[m>>2]){b=e|F[f>>2]}else{b=F[f>>2]&(e^-1)}F[f>>2]=b;F[m>>2]=F[m>>2]&(d^-1);g=g-1|0}c=c+4|0;if((n|0)!=(c|0)){continue}break}}c=F[j+24>>2]}if(c){ja(c)}a=F[j+48>>2];if(a){while(1){c=F[a>>2];ja(a);a=c;if(a){continue}break}}a=F[j+40>>2];F[j+40>>2]=0;if(a){ja(a)}a=F[j+64>>2];if(a){F[j+68>>2]=a;ja(a)}Z=j+96|0;a=g;break f}oa();v()}na();v()}na();v()}na();v()}b=a;if((a|0)==-1){break e}a=C;c=F[a+16>>2];f=c+F[a>>2]|0;c=F[a+8>>2]-c|0;a=F[F[h+4>>2]+32>>2];E[a+38>>1]=H[a+38>>1];F[a>>2]=f;F[a+16>>2]=0;F[a+20>>2]=0;F[a+8>>2]=c;F[a+12>>2]=0;ca:{if(F[h+216>>2]==F[h+220>>2]){break ca}a=F[h+8>>2];if(F[a+4>>2]==F[a>>2]){break ca}c=0;while(1){if(Ad(h,c)){c=c+3|0;a=F[h+8>>2];if(c>>>0>2]-F[a>>2]>>2>>>0){continue}break ca}break}break e}if(G[h+308|0]){D[h+308|0]=0;f=F[h+292>>2];a=0;e=F[h+304>>2]+7|0;a=e>>>0<7?1:a;c=a>>>3|0;m=a<<29|e>>>3;a=m+F[h+288>>2]|0;e=c+f|0;F[h+288>>2]=a;F[h+292>>2]=a>>>0>>0?e+1|0:e}c=F[h+216>>2];if((c|0)!=F[h+220>>2]){a=0;while(1){e=L(a,144);Zc((e+c|0)+4|0,F[h+8>>2]);f=F[y>>2];m=f+e|0;c=F[m+132>>2];m=F[m+136>>2];if((c|0)!=(m|0)){while(1){Xc((e+F[y>>2]|0)+4|0,F[c>>2]);c=c+4|0;if((m|0)!=(c|0)){continue}break}f=F[y>>2]}if(!Yc((f+e|0)+4|0)){break e}a=a+1|0;c=F[h+216>>2];if(a>>>0<(F[h+220>>2]-c|0)/144>>>0){continue}break}}a=F[h+8>>2];Hb(h+184|0,F[a+28>>2]-F[a+24>>2]>>2);f=F[h+216>>2];if((f|0)!=F[h+220>>2]){c=0;while(1){a=L(c,144)+f|0;f=F[a+60>>2]-F[a+56>>2]>>2;e=a+104|0;a=F[h+8>>2];a=F[a+28>>2]-F[a+24>>2]>>2;Hb(e,(a|0)<(f|0)?f:a);c=c+1|0;f=F[h+216>>2];if(c>>>0<(F[h+220>>2]-f|0)/144>>>0){continue}break}}J=zd(h,b)}}Z=t- -64|0;return J|0}function Cf(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,E=0,H=0,I=0,J=0,K=0,M=0,N=0,O=0;B=c;c=0;m=Z-96|0;Z=m;l=m+16|0;ma(l,0,76);F[m+92>>2]=-1;F[m+8>>2]=0;F[m>>2]=0;F[m+4>>2]=0;r=Z-16|0;Z=r;F[l+68>>2]=0;F[l+72>>2]=0;F[l>>2]=b;s=Z-16|0;Z=s;u=b;a=F[b+20>>2];a:{if((F[b+24>>2]-a|0)<=0){break a}a=F[a>>2];if((a|0)==-1){break a}c=F[F[u+8>>2]+(a<<2)>>2]}b:{c:{d:{if(!c){a=0;break d}a=F[u+100>>2];e=F[u+96>>2];F[s+8>>2]=0;F[s>>2]=0;F[s+4>>2]=0;f=a-e|0;b=(f|0)/12|0;e:{if((a|0)==(e|0)){break e}if(b>>>0>=357913942){break c}d=ka(f);F[s>>2]=d;F[s+8>>2]=d+L(b,12);a=0;n=d;f=f-12|0;d=(f-((f>>>0)%12|0)|0)+12|0;f=ma(n,0,d);F[s+4>>2]=d+f;if(G[c+84|0]){c=b>>>0<=1?1:b;h=c&1;if(b>>>0>=2){g=c&-2;c=0;while(1){d=L(a,12);b=d+e|0;i=F[b+4>>2];j=F[b>>2];d=d+f|0;F[d+8>>2]=F[b+8>>2];F[d>>2]=j;F[d+4>>2]=i;d=L(a|1,12);b=d+e|0;i=F[b+4>>2];j=F[b>>2];d=d+f|0;F[d+8>>2]=F[b+8>>2];F[d>>2]=j;F[d+4>>2]=i;a=a+2|0;c=c+2|0;if((g|0)!=(c|0)){continue}break}}if(!h){break e}b=L(a,12);a=b+e|0;c=F[a+4>>2];e=F[a>>2];b=b+f|0;F[b+8>>2]=F[a+8>>2];F[b>>2]=e;F[b+4>>2]=c;break e}h=b>>>0<=1?1:b;a=F[c+68>>2];c=0;while(1){d=L(c,12);b=d+e|0;g=F[a+(F[b>>2]<<2)>>2];i=F[a+(F[b+4>>2]<<2)>>2];d=d+f|0;F[d+8>>2]=F[a+(F[b+8>>2]<<2)>>2];F[d+4>>2]=i;F[d>>2]=g;c=c+1|0;if((h|0)!=(c|0)){continue}break}}d=0;H=Z-16|0;Z=H;h=ka(88);Zb(h);C=Z-16|0;Z=C;F[h+80>>2]=0;F[h+84>>2]=0;a=F[h+76>>2];F[h+76>>2]=0;if(a){ja(a)}F[h+68>>2]=0;F[h+72>>2]=0;b=h- -64|0;a=F[b>>2];F[b>>2]=0;if(a){ja(a)}g=F[s+4>>2];b=F[s>>2];c=(g-b|0)/12|0;a=L(c,3);f=F[h>>2];e=F[h+4>>2]-f>>2;f:{if(a>>>0>e>>>0){nd(h,a-e|0);g=F[s+4>>2];b=F[s>>2];c=(g-b|0)/12|0;break f}if(a>>>0>=e>>>0){break f}F[h+4>>2]=f+(a<<2)}g:{if((b|0)==(g|0)){break g}e=c>>>0<=1?1:c;g=e&1;a=F[h>>2];if(c>>>0>=2){i=e&-2;c=0;while(1){e=L(d,12);j=e+a|0;f=b+e|0;F[j>>2]=F[f>>2];F[a+(e|4)>>2]=F[f+4>>2];F[j+8>>2]=F[f+8>>2];f=L(d|1,12);e=f+a|0;f=b+f|0;F[e>>2]=F[f>>2];F[e+4>>2]=F[f+4>>2];F[e+8>>2]=F[f+8>>2];d=d+2|0;c=c+2|0;if((i|0)!=(c|0)){continue}break}}if(!g){break g}c=L(d,12);a=c+a|0;b=b+c|0;F[a>>2]=F[b>>2];F[a+4>>2]=F[b+4>>2];F[a+8>>2]=F[b+8>>2]}F[C+12>>2]=-1;a=0;e=0;g=0;f=Z-32|0;Z=f;h:{i:{w=C+12|0;j:{if(!w){break j}c=F[h+4>>2];j=F[h>>2];d=c-j|0;i=d>>2;n=F[h+12>>2];b=F[h+16>>2]-n>>2;k:{if(i>>>0>b>>>0){ab(h+12|0,i-b|0,10228);c=F[h+4>>2];j=F[h>>2];d=c-j|0;i=d>>2;break k}if(b>>>0<=i>>>0){break k}F[h+16>>2]=n+(i<<2)}F[f+24>>2]=0;F[f+16>>2]=0;F[f+20>>2]=0;b=(c|0)==(j|0);if(!b){if((d|0)<0){break i}e=ka(d);F[f+20>>2]=e;F[f+16>>2]=e;F[f+24>>2]=(i<<2)+e}l:{m:{n:{o:{p:{if(d){while(1){i=F[(a<<2)+j>>2];b=F[f+20>>2]-e>>2;q:{if(i>>>0>>0){break q}F[f>>2]=0;d=i+1|0;if(d>>>0>b>>>0){Fa(f+16|0,d-b|0,f);j=F[h>>2];c=F[h+4>>2];e=F[f+16>>2];break q}if(b>>>0<=d>>>0){break q}F[f+20>>2]=(d<<2)+e}b=(i<<2)+e|0;F[b>>2]=F[b>>2]+1;a=a+1|0;d=c-j|0;i=d>>2;if(a>>>0>>0){continue}break}break p}d=0;if(!b){break o}break n}if((c|0)==(j|0)){d=0;break n}if(d>>>0>=2147483645){break m}}d=ka(d<<1);ma(d,255,i<<3)}F[f+8>>2]=0;F[f>>2]=0;F[f+4>>2]=0;b=F[f+20>>2];a=b-e|0;t=a>>2;r:{s:{if((b|0)==(e|0)){break s}if((a|0)<0){break r}q=ka(a);F[f>>2]=q;F[f+8>>2]=(t<<2)+q;b=ma(q,0,a);F[f+4>>2]=b+a;c=t>>>0<=1?1:t;n=c&3;a=0;if(c-1>>>0>=3){o=c&-4;while(1){c=g<<2;F[c+b>>2]=a;x=c|4;a=F[c+e>>2]+a|0;F[x+b>>2]=a;y=c|8;a=a+F[e+x>>2]|0;F[y+b>>2]=a;c=c|12;a=a+F[e+y>>2]|0;F[c+b>>2]=a;a=a+F[c+e>>2]|0;g=g+4|0;p=p+4|0;if((o|0)!=(p|0)){continue}break}}if(!n){break s}while(1){c=g<<2;F[c+b>>2]=a;g=g+1|0;a=F[c+e>>2]+a|0;k=k+1|0;if((n|0)!=(k|0)){continue}break}}if(!i){break l}x=F[h+40>>2];y=F[h+12>>2];n=0;while(1){I=n<<2;a=I+j|0;k=-1;c=n+1|0;b=(c>>>0)%3|0?c:n-2|0;if((b|0)!=-1){k=F[(b<<2)+j>>2]}b=F[a>>2];t:{u:{if(!((n>>>0)%3|0)){p=-1;a=n+2|0;if((a|0)!=-1){p=F[(a<<2)+j>>2]}if(!((b|0)==(k|0)|(b|0)==(p|0))&(k|0)!=(p|0)){break u}x=x+1|0;F[h+40>>2]=x;c=n+3|0;break t}p=F[a-4>>2]}a=p<<2;A=F[a+e>>2];v:{w:{if((A|0)<=0){break w}a=F[a+q>>2];g=0;while(1){o=(a<<3)+d|0;z=F[o>>2];if((z|0)==-1){break w}x:{if((k|0)!=(z|0)){break x}o=F[o+4>>2];if((o|0)!=-1){z=F[(o<<2)+j>>2]}else{z=-1}if((z|0)==(b|0)){break x}while(1){y:{b=a;g=g+1|0;if((A|0)<=(g|0)){break y}a=b+1|0;J=(a<<3)+d|0;z=F[J>>2];K=(b<<3)+d|0;F[K+4>>2]=F[J+4>>2];F[K>>2]=z;if((z|0)!=-1){continue}}break}F[(b<<3)+d>>2]=-1;if((o|0)==-1){break w}F[y+I>>2]=o;F[y+(o<<2)>>2]=n;break v}a=a+1|0;g=g+1|0;if((A|0)!=(g|0)){continue}break}}a=k<<2;k=F[a+e>>2];if((k|0)<=0){break v}a=F[a+q>>2];g=0;while(1){b=(a<<3)+d|0;if(F[b>>2]==-1){F[b>>2]=p;F[b+4>>2]=n;break v}a=a+1|0;g=g+1|0;if((k|0)!=(g|0)){continue}break}}}n=c;if(n>>>0>>0){continue}break}break l}break i}na();v()}F[w>>2]=t;if(q){ja(q)}if(d){ja(d)}a=F[f+16>>2];if(!a){break j}F[f+20>>2]=a;ja(a)}Z=f+32|0;x=(w|0)!=0;if(x){k=Z-32|0;Z=k;a=F[h>>2];g=F[h+4>>2];F[k+24>>2]=0;F[k+16>>2]=0;F[k+20>>2]=0;if((a|0)==(g|0)){c=g}else{a=g-a|0;if((a|0)<0){break i}a=a>>2;b=(a-1>>>5|0)+1|0;c=ka(b<<2);F[k+24>>2]=b;F[k+20>>2]=0;F[k+16>>2]=c;Yb(k+16|0,a);g=F[h>>2];c=F[h+4>>2]}F[k+8>>2]=0;F[k>>2]=0;while(1){z:{o=0;i=0;if((c|0)==(g|0)){break z}while(1){b=F[k+16>>2];A:{if(F[b+(i>>>3&536870908)>>2]>>>i&1){break A}c=F[k>>2];F[k+4>>2]=c;e=F[h+12>>2];a=i;while(1){B:{f=a+1|0;d=a;a=(f>>>0)%3|0?f:a-2|0;if((a|0)==-1){break B}a=F[e+(a<<2)>>2];if((a|0)==-1){break B}f=a+1|0;a=(f>>>0)%3|0?f:a-2|0;if((i|0)==(a|0)|(a|0)==-1){break B}if(!(F[b+(a>>>3&536870908)>>2]>>>a&1)){continue}}break}j=d;C:{D:{E:{while(1){a=F[k+16>>2]+(j>>>3&536870908)|0;F[a>>2]=F[a>>2]|1<>>0)%3|0?a:j-2|0;g=F[h>>2];y=(j>>>0)%3|0;b=(y?-1:2)+j|0;n=F[k>>2];A=(n|0)==(c|0);F:{if(A){break F}w=F[(f<<2)+g>>2];q=F[h+12>>2];a=n;if((b|0)!=-1){e=q+(b<<2)|0;while(1){G:{if((w|0)!=F[a>>2]){break G}p=F[a+4>>2];t=F[e>>2];if((p|0)==(t|0)){break G}e=b;c=-1;a=-1;if((p|0)==-1){break C}break D}a=a+8|0;if((c|0)!=(a|0)){continue}break}break F}while(1){if((w|0)==F[a>>2]){t=-1;e=-1;p=F[a+4>>2];if((p|0)!=-1){break D}}a=a+8|0;if((c|0)!=(a|0)){continue}break}}b=F[(b<<2)+g>>2];H:{if(F[k+8>>2]!=(c|0)){F[c>>2]=b;F[c+4>>2]=f;c=c+8|0;F[k+4>>2]=c;break H}a=c-n|0;p=a>>3;e=p+1|0;if(e>>>0>=536870912){break i}g=a>>>2|0;g=a>>>0>=2147483640?536870911:e>>>0>>0?g:e;if(g){if(g>>>0>=536870912){break E}e=ka(g<<3)}else{e=0}a=e+(p<<3)|0;F[a>>2]=b;F[a+4>>2]=f;b=a+8|0;if(!A){while(1){c=c-8|0;f=F[c+4>>2];a=a-8|0;F[a>>2]=F[c>>2];F[a+4>>2]=f;if((c|0)!=(n|0)){continue}break}c=F[k>>2]}F[k+8>>2]=e+(g<<3);F[k+4>>2]=b;F[k>>2]=a;if(c){ja(c)}c=b}I:{J:{if(y){a=j-1|0;break J}a=j+2|0;if((a|0)==-1){break I}}a=F[F[h+12>>2]+(a<<2)>>2];if((a|0)==-1){break I}j=a+((a>>>0)%3|0?-1:2)|0;if((d|0)==(j|0)){break I}if((j|0)!=-1){continue}}break}g=F[h>>2];break A}oa();v()}c=F[q+(p<<2)>>2];b=e;a=p}if((t|0)!=-1){F[q+(t<<2)>>2]=-1}if((c|0)!=-1){F[q+(c<<2)>>2]=-1}F[q+(b<<2)>>2]=-1;F[q+(a<<2)>>2]=-1;o=1}i=i+1|0;c=F[h+4>>2];if(i>>>0>2>>>0){continue}break}if(o){continue}}break}a=F[k>>2];if(a){ja(a)}a=F[k+16>>2];if(a){ja(a)}Z=k+32|0;n=0;g=Z-32|0;Z=g;e=F[C+12>>2];F[h+36>>2]=e;p=h+24|0;b=F[h+24>>2];a=F[h+28>>2]-b>>2;K:{L:{if(a>>>0>>0){ab(p,e-a|0,10228);F[g+24>>2]=0;F[g+16>>2]=0;F[g+20>>2]=0;break L}if(a>>>0>e>>>0){F[h+28>>2]=b+(e<<2)}F[g+24>>2]=0;F[g+16>>2]=0;F[g+20>>2]=0;if(!e){break K}}if((e|0)<0){break i}a=(e-1>>>5|0)+1|0;b=ka(a<<2);F[g+24>>2]=a;F[g+20>>2]=0;F[g+16>>2]=b;Yb(g+16|0,e)}a=F[h>>2];b=F[h+4>>2];F[g+8>>2]=0;F[g>>2]=0;F[g+4>>2]=0;M:{if((a|0)==(b|0)){a=b}else{a=b-a|0;if((a|0)<0){break i}a=a>>2;b=(a-1>>>5|0)+1|0;c=ka(b<<2);F[g+8>>2]=b;F[g+4>>2]=0;F[g>>2]=c;Yb(g,a);b=F[h>>2];a=F[h+4>>2]}if(a-b>>>0<12){break M}N:{while(1){q=L(n,3);d=(q<<2)+b|0;f=F[d>>2];c=-1;i=q+1|0;if((i|0)!=-1){c=F[(i<<2)+b>>2]}O:{if((c|0)==(f|0)){break O}i=f;f=F[d+8>>2];if((i|0)==(f|0)|(c|0)==(f|0)){break O}k=0;i=F[g>>2];while(1){f=k+q|0;if(!(F[(f>>>3&536870908)+i>>2]>>>f&1)){a=F[(f<<2)+b>>2];c=1<>2];b=a>>>5|0;i=F[d+(b<<2)>>2];t=c&i;if(t){c=F[h+28>>2];P:{if((c|0)!=F[h+32>>2]){F[c>>2]=-1;F[h+28>>2]=c+4;break P}i=F[p>>2];b=c-i|0;o=b>>2;d=o+1|0;if(d>>>0>=1073741824){break i}j=b>>>1|0;j=b>>>0>=2147483644?1073741823:d>>>0>>0?j:d;if(j){if(j>>>0>=1073741824){break N}b=ka(j<<2)}else{b=0}d=b+(o<<2)|0;F[d>>2]=-1;o=d+4|0;if((c|0)!=(i|0)){while(1){d=d-4|0;c=c-4|0;F[d>>2]=F[c>>2];if((c|0)!=(i|0)){continue}break}}F[h+32>>2]=b+(j<<2);F[h+28>>2]=o;F[h+24>>2]=d;if(!i){break P}ja(i)}c=F[h+52>>2];Q:{if((c|0)!=F[h+56>>2]){F[c>>2]=a;F[h+52>>2]=c+4;break Q}i=F[h+48>>2];b=c-i|0;o=b>>2;d=o+1|0;if(d>>>0>=1073741824){break i}j=b>>>1|0;j=b>>>0>=2147483644?1073741823:d>>>0>>0?j:d;if(j){if(j>>>0>=1073741824){break N}b=ka(j<<2)}else{b=0}d=b+(o<<2)|0;F[d>>2]=a;a=d+4|0;if((c|0)!=(i|0)){while(1){d=d-4|0;c=c-4|0;F[d>>2]=F[c>>2];if((c|0)!=(i|0)){continue}break}}F[h+56>>2]=b+(j<<2);F[h+52>>2]=a;F[h+48>>2]=d;if(!i){break Q}ja(i)}c=F[g+20>>2];a=F[g+24>>2];if((c|0)==a<<5){if((c+1|0)<0){break i}b=g+16|0;if(c>>>0<=1073741822){a=a<<6;c=(c&-32)+32|0;a=a>>>0>c>>>0?a:c}else{a=2147483647}$a(b,a);c=F[g+20>>2]}F[g+20>>2]=c+1;d=F[g+16>>2];a=d+(c>>>3&536870908)|0;b=F[a>>2];N=a,O=oi(c)&b,F[N>>2]=O;c=1<>>5|0;i=F[(b<<2)+d>>2];a=e;e=a+1|0}F[(b<<2)+d>>2]=c|i;o=F[h+24>>2]+(a<<2)|0;j=F[h+12>>2];b=F[h>>2];i=F[g>>2];c=f;R:{S:{T:{while(1){if((c|0)==-1){break T}d=(c>>>3&536870908)+i|0;F[d>>2]=F[d>>2]|1<>2]=c;if(t){F[(c<<2)+b>>2]=a}w=c+1|0;c=(w>>>0)%3|0?w:c-2|0;d=-1;U:{if((c|0)==-1){break U}c=F[j+(c<<2)>>2];d=-1;if((c|0)==-1){break U}d=c+1|0;d=(d>>>0)%3|0?d:c-2|0}c=d;if((f|0)!=(c|0)){continue}break}if((f|0)!=-1){break R}c=1;break S}if((f>>>0)%3|0){c=f-1|0;break S}c=f+2|0;if((c|0)==-1){break R}}c=F[j+(c<<2)>>2];if((c|0)==-1){break R}V:{if((c>>>0)%3|0){c=c-1|0;break V}c=c+2|0;if((c|0)==-1){break R}}f=F[h+12>>2];b=F[h>>2];while(1){d=(c>>>3&536870908)+i|0;F[d>>2]=F[d>>2]|1<>2]=a}W:{if((c>>>0)%3|0){c=c-1|0;break W}c=c+2|0;if((c|0)==-1){break R}}c=F[f+(c<<2)>>2];if((c|0)==-1){break R}c=c+((c>>>0)%3|0?-1:2)|0;if((c|0)!=-1){continue}break}}}k=k+1|0;if((k|0)!=3){continue}break}b=F[h>>2];a=F[h+4>>2]}n=n+1|0;if(n>>>0<(a-b>>2>>>0)/3>>>0){continue}break}break M}oa();v()}c=0;F[h+44>>2]=0;a=F[g+16>>2];b=F[g+20>>2];if(b){e=b&31;b=(b>>>3&536870908)+a|0;d=a;i=0;while(1){if(!(F[d>>2]>>>c&1)){i=i+1|0;F[h+44>>2]=i}f=(c|0)==31;c=f?0:c+1|0;d=(f<<2)+d|0;if((b|0)!=(d|0)|(c|0)!=(e|0)){continue}break}}b=F[g>>2];if(b){ja(b);a=F[g+16>>2]}if(a){ja(a)}Z=g+32|0}Z=C+16|0;if(!x){F[H+8>>2]=0;Za(h);h=0}Z=H+16|0;a=h;break h}na();v()}b=F[s>>2];if(!b){break d}F[s+4>>2]=b;ja(b)}Z=s+16|0;break b}na();v()}c=F[l+4>>2];b=a;F[l+4>>2]=a;if(c){Za(c);b=F[l+4>>2]}X:{if(!b){break X}a=F[u+100>>2];c=F[u+96>>2];D[r+12|0]=0;Ea(l+56|0,(a-c|0)/12|0,r+12|0);a=F[u+100>>2];c=F[u+96>>2];if((a|0)==(c|0)){break X}while(1){if(!(F[F[l+56>>2]+(E>>>3&536870908)>>2]>>>E&1)){a=L(E,3);Vb(l,0,a);c=F[l+8>>2];e=F[l+12>>2];Vb(l,1,a+1|0);f=F[l+20>>2];d=F[l+24>>2];Vb(l,2,a+2|0);n=(c|0)==(e|0)?-1:0;a=d-f>>2;c=e-c>>2;e=a>>>0>c>>>0;c=F[l+36>>2]-F[l+32>>2]>>2>>>0>(e?a:c)>>>0?2:e?1:n;Y:{if(F[l+68>>2]<=0){break Y}F[r+12>>2]=F[l+76>>2];F[r+8>>2]=m;Qa(r+8|0,r+12|0);a=F[((c<<2)+l|0)+44>>2];if((a|0)<0){a=-1}else{e=(a>>>0)/3|0;a=F[(F[F[l>>2]+96>>2]+L(e,12)|0)+(a-L(e,3)<<2)>>2]}F[r+12>>2]=a;F[r+8>>2]=m;Qa(r+8|0,r+12|0);e=F[l+72>>2];F[l+72>>2]=e+2;if(!(e&1)){break Y}F[r+12>>2]=a;F[r+8>>2]=m;Qa(r+8|0,r+12|0);F[l+72>>2]=F[l+72>>2]+1}d=0;e=Z-16|0;Z=e;F[l+68>>2]=F[l+68>>2]+1;a=L(c,12)+l|0;a=F[a+12>>2]-F[a+8>>2]|0;if((a|0)>0){a=a>>>2|0;h=a>>>0<=1?1:a;c=F[((c<<2)+l|0)+44>>2];while(1){a=c;f=(a>>>0)/3|0;c=(a|0)==-1;g=c?-1:f;i=F[l+56>>2]+(g>>>3&536870908)|0;F[i>>2]=F[i>>2]|1<>2]=F[l+72>>2]+1;Z:{_:{$:{aa:{ba:{if(!d){ca:{if((a|0)>=0){F[e+12>>2]=F[(F[F[l>>2]+96>>2]+L(f,12)|0)+((a>>>0)%3<<2)>>2];F[e+8>>2]=m;Qa(e+8|0,e+12|0);break ca}F[e+12>>2]=-1;F[e+8>>2]=m;Qa(e+8|0,e+12|0);if(c){break ba}}c=-1;f=a+1|0;f=(f>>>0)%3|0?f:a-2|0;if((f|0)>=0){g=(f>>>0)/3|0;f=F[(F[F[l>>2]+96>>2]+L(g,12)|0)+(f-L(g,3)<<2)>>2]}else{f=-1}F[e+12>>2]=f;F[e+8>>2]=m;Qa(e+8|0,e+12|0);f=((a>>>0)%3|0?-1:2)+a|0;if((f|0)<0){break aa}c=(f>>>0)/3|0;c=F[(F[F[l>>2]+96>>2]+L(c,12)|0)+(f-L(c,3)<<2)>>2];break aa}c=(a|0)<0?-1:F[(F[F[l>>2]+96>>2]+L(f,12)|0)+((a>>>0)%3<<2)>>2];F[l+76>>2]=c;F[e+12>>2]=c;F[e+8>>2]=m;Qa(e+8|0,e+12|0);if(d&1){c=-1;if((a|0)==-1){break Z}if((L(f,3)|0)!=(a|0)){a=a-1|0;break _}a=a+2|0;break $}c=-1;if((a|0)==-1){break Z}c=a+1|0;a=(c>>>0)%3|0?c:a-2|0;break $}c=-1;F[e+12>>2]=-1;F[e+8>>2]=m;Qa(e+8|0,e+12|0)}F[l+76>>2]=c;F[e+12>>2]=c;F[e+8>>2]=m;Qa(e+8|0,e+12|0)}c=-1;if((a|0)==-1){break Z}}c=F[F[F[l+4>>2]+12>>2]+(a<<2)>>2]}d=d+1|0;if((h|0)!=(d|0)){continue}break}}Z=e+16|0;c=F[u+96>>2];a=F[u+100>>2]}E=E+1|0;if(E>>>0<(a-c|0)/12>>>0){continue}break}}Z=r+16|0;da:{if(b){a=F[B>>2];if(a){F[B+4>>2]=a;ja(a)}F[B>>2]=F[m>>2];F[B+4>>2]=F[m+4>>2];F[B+8>>2]=F[m+8>>2];M=F[m+84>>2];break da}a=F[m>>2];if(!a){break da}F[m+4>>2]=a;ja(a)}a=F[m+72>>2];if(a){ja(a)}a=F[m+48>>2];if(a){F[m+52>>2]=a;ja(a)}a=F[m+36>>2];if(a){F[m+40>>2]=a;ja(a)}a=F[m+24>>2];if(a){F[m+28>>2]=a;ja(a)}a=F[m+20>>2];F[m+20>>2]=0;if(a){Za(a)}Z=m+96|0;return M|0}function sf(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;i=b;a=0;b=0;a:{b:{switch(d-1|0){case 0:j=F[i+80>>2];h=G[c+24|0];c:{if((L(j,h)|0)!=(e|0)){break c}d=F[c+28>>2]!=1;b=G[c+84|0];if(!(d|!b)){la(f,F[F[c>>2]>>2]+F[c+48>>2]|0,e);b=1;break c}if(h){a=ka(h);ma(a,0,h)}d:{if(!j){b=1;break d}if(!d){if(h){d=0;e=0;while(1){i=d+f|0;k=F[F[c>>2]>>2];m=F[c+48>>2];g=F[c+40>>2];b=ki(g,F[c+44>>2],G[c+84|0]?e:F[F[c+68>>2]+(e<<2)>>2],0);n=b;b=b+m|0;la(i,la(a,b+k|0,g),h);d=d+h|0;b=1;e=e+1|0;if((j|0)!=(e|0)){continue}break}break d}if(b){b=1;h=F[c>>2];e=F[c+48>>2];f=F[c+40>>2];i=F[c+44>>2];if((j|0)!=1){g=j&-2;c=0;d=0;while(1){k=F[h>>2];m=ki(f,i,c,0)+e|0;k=la(a,k+m|0,f);m=F[h>>2];n=ki(f,i,c|1,0)+e|0;la(k,m+n|0,f);c=c+2|0;d=d+2|0;if((g|0)!=(d|0)){continue}break}g=c}if(!(j&1)){break d}c=F[h>>2];d=ki(g,0,f,i)+e|0;la(a,c+d|0,f);break d}b=1;h=F[c>>2];e=F[c+48>>2];g=F[c+68>>2];f=F[c+40>>2];i=F[c+44>>2];c=0;if((j|0)!=1){k=j&-2;d=0;while(1){m=F[h>>2];n=c<<2;l=ki(f,i,F[n+g>>2],0)+e|0;m=la(a,m+l|0,f);l=F[h>>2];n=ki(f,i,F[g+(n|4)>>2],0)+e|0;la(m,l+n|0,f);c=c+2|0;d=d+2|0;if((k|0)!=(d|0)){continue}break}}if(!(j&1)){break d}d=F[h>>2];c=ki(f,i,F[g+(c<<2)>>2],0)+e|0;la(a,c+d|0,f);break d}b=0;if(!h){d=0;while(1){if(!Cb(c,G[c+84|0]?d:F[F[c+68>>2]+(d<<2)>>2],D[c+24|0],a)){break d}d=d+1|0;b=j>>>0<=d>>>0;if((d|0)!=(j|0)){continue}break}break d}d=0;e=0;while(1){if(!Cb(c,G[c+84|0]?e:F[F[c+68>>2]+(e<<2)>>2],D[c+24|0],a)){break d}la(d+f|0,a,h);d=d+h|0;e=e+1|0;b=j>>>0<=e>>>0;if((e|0)!=(j|0)){continue}break}}if(!a){break c}ja(a)}break a;case 2:n=G[c+24|0];l=n<<1;j=F[i+80>>2];e:{if((L(l,j)|0)!=(e|0)){break e}i=F[c+28>>2]!=3;d=G[c+84|0];if(!(i|!d)){la(f,F[F[c>>2]>>2]+F[c+48>>2]|0,e);a=1;break e}f:{if(!n){e=0;break f}e=ka(l);ma(e,0,l)}g:{if(!j){a=1;break g}if(!i){o=F[c+68>>2];k=F[c>>2];b=F[c+48>>2];i=F[c+40>>2];m=F[c+44>>2];if(n){if(!d){c=0;d=0;while(1){a=1;g=F[k>>2];p=ki(i,m,F[o+(d<<2)>>2],0)+b|0;la((c<<1)+f|0,la(e,g+p|0,i),l);c=c+n|0;d=d+1|0;if((j|0)!=(d|0)){continue}break}break g}c=0;while(1){a=1;o=F[k>>2];p=ki(g,h,i,m)+b|0;la((c<<1)+f|0,la(e,o+p|0,i),l);c=c+n|0;d=h;g=g+1|0;d=g?d:d+1|0;h=d;if((j|0)!=(g|0)|d){continue}break}break g}if(!d){a=1;c=0;if((j|0)!=1){f=j&-2;d=0;while(1){h=F[k>>2];g=c<<2;n=ki(i,m,F[g+o>>2],0)+b|0;h=la(e,h+n|0,i);n=F[k>>2];g=ki(i,m,F[o+(g|4)>>2],0)+b|0;la(h,g+n|0,i);c=c+2|0;d=d+2|0;if((f|0)!=(d|0)){continue}break}}if(!(j&1)){break g}d=F[k>>2];b=ki(i,m,F[o+(c<<2)>>2],0)+b|0;la(e,b+d|0,i);break g}n=j&1;a=1;if((j|0)!=1){j=j&-2;f=0;c=0;while(1){d=F[k>>2];l=ki(g,h,i,m)+b|0;d=la(e,d+l|0,i);l=F[k>>2];o=ki(i,m,g|1,h)+b|0;la(d,l+o|0,i);g=g+2|0;h=g>>>0<2?h+1|0:h;f=f+2|0;d=f>>>0<2?c+1|0:c;c=d;if((f|0)!=(j|0)|c){continue}break}}if(!n){break g}c=F[k>>2];b=ki(g,h,i,m)+b|0;la(e,b+c|0,i);break g}if(!n){d=0;while(1){if(!Ab(c,G[c+84|0]?d:F[F[c+68>>2]+(d<<2)>>2],D[c+24|0],e)){break g}d=d+1|0;a=j>>>0<=d>>>0;if((d|0)!=(j|0)){continue}break}break g}d=0;while(1){if(!Ab(c,G[c+84|0]?d:F[F[c+68>>2]+(d<<2)>>2],D[c+24|0],e)){break g}la((b<<1)+f|0,e,l);b=b+n|0;d=d+1|0;a=j>>>0<=d>>>0;if((d|0)!=(j|0)){continue}break}}if(!e){break e}ja(e)}b=a;break a;case 4:l=G[c+24|0];o=l<<2;j=F[i+80>>2];h:{if((L(o,j)|0)!=(e|0)){break h}i=F[c+28>>2]!=5;d=G[c+84|0];if(!(i|!d)){la(f,F[F[c>>2]>>2]+F[c+48>>2]|0,e);b=1;break h}i:{if(!l){e=0;break i}e=ka(o);ma(e,0,o)}b=1;j:{if(!j){break j}if(!i){a=F[c+68>>2];m=F[c>>2];i=F[c+48>>2];k=F[c+40>>2];n=F[c+44>>2];if(l){if(!d){c=0;d=0;while(1){g=F[m>>2];p=ki(k,n,F[a+(d<<2)>>2],0)+i|0;la((c<<2)+f|0,la(e,g+p|0,k),o);c=c+l|0;d=d+1|0;if((j|0)!=(d|0)){continue}break}break j}c=0;while(1){d=F[m>>2];p=ki(g,h,k,n)+i|0;la((c<<2)+f|0,la(e,d+p|0,k),o);c=c+l|0;g=g+1|0;a=g?h:h+1|0;h=a;if((j|0)!=(g|0)|h){continue}break}break j}if(!d){c=0;if((j|0)!=1){f=j&-2;d=0;while(1){h=F[m>>2];g=c<<2;l=ki(k,n,F[g+a>>2],0)+i|0;h=la(e,h+l|0,k);l=F[m>>2];g=ki(k,n,F[a+(g|4)>>2],0)+i|0;la(h,g+l|0,k);c=c+2|0;d=d+2|0;if((f|0)!=(d|0)){continue}break}}if(!(j&1)){break j}d=F[m>>2];a=ki(k,n,F[a+(c<<2)>>2],0)+i|0;la(e,a+d|0,k);break j}l=j&1;if((j|0)!=1){j=j&-2;f=0;c=0;while(1){a=F[m>>2];d=ki(g,h,k,n)+i|0;a=la(e,a+d|0,k);d=F[m>>2];o=ki(k,n,g|1,h)+i|0;la(a,d+o|0,k);d=h;g=g+2|0;h=g>>>0<2?d+1|0:d;f=f+2|0;a=f>>>0<2?c+1|0:c;c=a;if((f|0)!=(j|0)|c){continue}break}}if(!l){break j}a=F[m>>2];c=ki(g,h,k,n)+i|0;la(e,a+c|0,k);break j}b=0;if(!l){d=0;while(1){if(!yb(c,G[c+84|0]?d:F[F[c+68>>2]+(d<<2)>>2],D[c+24|0],e)){break j}d=d+1|0;b=j>>>0<=d>>>0;if((d|0)!=(j|0)){continue}break}break j}d=0;while(1){if(!yb(c,G[c+84|0]?d:F[F[c+68>>2]+(d<<2)>>2],D[c+24|0],e)){break j}la((a<<2)+f|0,e,o);a=a+l|0;d=d+1|0;b=j>>>0<=d>>>0;if((d|0)!=(j|0)){continue}break}}if(!e){break h}ja(e)}break a;case 1:j=F[i+80>>2];h=G[c+24|0];k:{if((L(j,h)|0)!=(e|0)){break k}d=F[c+28>>2]!=2;b=G[c+84|0];if(!(d|!b)){la(f,F[F[c>>2]>>2]+F[c+48>>2]|0,e);b=1;break k}if(h){a=ka(h);ma(a,0,h)}l:{if(!j){b=1;break l}if(!d){if(h){d=0;e=0;while(1){i=d+f|0;k=F[F[c>>2]>>2];m=F[c+48>>2];g=F[c+40>>2];b=ki(g,F[c+44>>2],G[c+84|0]?e:F[F[c+68>>2]+(e<<2)>>2],0);n=b;b=b+m|0;la(i,la(a,b+k|0,g),h);d=d+h|0;b=1;e=e+1|0;if((j|0)!=(e|0)){continue}break}break l}if(b){b=1;h=F[c>>2];e=F[c+48>>2];f=F[c+40>>2];i=F[c+44>>2];if((j|0)!=1){g=j&-2;c=0;d=0;while(1){k=F[h>>2];m=ki(f,i,c,0)+e|0;k=la(a,k+m|0,f);m=F[h>>2];n=ki(f,i,c|1,0)+e|0;la(k,m+n|0,f);c=c+2|0;d=d+2|0;if((g|0)!=(d|0)){continue}break}g=c}if(!(j&1)){break l}c=F[h>>2];d=ki(g,0,f,i)+e|0;la(a,c+d|0,f);break l}b=1;h=F[c>>2];e=F[c+48>>2];g=F[c+68>>2];f=F[c+40>>2];i=F[c+44>>2];c=0;if((j|0)!=1){k=j&-2;d=0;while(1){m=F[h>>2];n=c<<2;l=ki(f,i,F[n+g>>2],0)+e|0;m=la(a,m+l|0,f);l=F[h>>2];n=ki(f,i,F[g+(n|4)>>2],0)+e|0;la(m,l+n|0,f);c=c+2|0;d=d+2|0;if((k|0)!=(d|0)){continue}break}}if(!(j&1)){break l}d=F[h>>2];c=ki(f,i,F[g+(c<<2)>>2],0)+e|0;la(a,c+d|0,f);break l}b=0;if(!h){d=0;while(1){if(!Bb(c,G[c+84|0]?d:F[F[c+68>>2]+(d<<2)>>2],D[c+24|0],a)){break l}d=d+1|0;b=j>>>0<=d>>>0;if((d|0)!=(j|0)){continue}break}break l}d=0;e=0;while(1){if(!Bb(c,G[c+84|0]?e:F[F[c+68>>2]+(e<<2)>>2],D[c+24|0],a)){break l}la(d+f|0,a,h);d=d+h|0;e=e+1|0;b=j>>>0<=e>>>0;if((e|0)!=(j|0)){continue}break}}if(!a){break k}ja(a)}break a;case 3:n=G[c+24|0];l=n<<1;j=F[i+80>>2];m:{if((L(l,j)|0)!=(e|0)){break m}i=F[c+28>>2]!=4;d=G[c+84|0];if(!(i|!d)){la(f,F[F[c>>2]>>2]+F[c+48>>2]|0,e);a=1;break m}n:{if(!n){e=0;break n}e=ka(l);ma(e,0,l)}o:{if(!j){a=1;break o}if(!i){o=F[c+68>>2];k=F[c>>2];b=F[c+48>>2];i=F[c+40>>2];m=F[c+44>>2];if(n){if(!d){c=0;d=0;while(1){a=1;g=F[k>>2];p=ki(i,m,F[o+(d<<2)>>2],0)+b|0;la((c<<1)+f|0,la(e,g+p|0,i),l);c=c+n|0;d=d+1|0;if((j|0)!=(d|0)){continue}break}break o}c=0;while(1){a=1;o=F[k>>2];p=ki(g,h,i,m)+b|0;la((c<<1)+f|0,la(e,o+p|0,i),l);c=c+n|0;d=h;g=g+1|0;d=g?d:d+1|0;h=d;if((j|0)!=(g|0)|d){continue}break}break o}if(!d){a=1;c=0;if((j|0)!=1){f=j&-2;d=0;while(1){h=F[k>>2];g=c<<2;n=ki(i,m,F[g+o>>2],0)+b|0;h=la(e,h+n|0,i);n=F[k>>2];g=ki(i,m,F[o+(g|4)>>2],0)+b|0;la(h,g+n|0,i);c=c+2|0;d=d+2|0;if((f|0)!=(d|0)){continue}break}}if(!(j&1)){break o}d=F[k>>2];b=ki(i,m,F[o+(c<<2)>>2],0)+b|0;la(e,b+d|0,i);break o}n=j&1;a=1;if((j|0)!=1){j=j&-2;f=0;c=0;while(1){d=F[k>>2];l=ki(g,h,i,m)+b|0;d=la(e,d+l|0,i);l=F[k>>2];o=ki(i,m,g|1,h)+b|0;la(d,l+o|0,i);g=g+2|0;h=g>>>0<2?h+1|0:h;f=f+2|0;d=f>>>0<2?c+1|0:c;c=d;if((f|0)!=(j|0)|c){continue}break}}if(!n){break o}c=F[k>>2];b=ki(g,h,i,m)+b|0;la(e,b+c|0,i);break o}if(!n){d=0;while(1){if(!zb(c,G[c+84|0]?d:F[F[c+68>>2]+(d<<2)>>2],D[c+24|0],e)){break o}d=d+1|0;a=j>>>0<=d>>>0;if((d|0)!=(j|0)){continue}break}break o}d=0;while(1){if(!zb(c,G[c+84|0]?d:F[F[c+68>>2]+(d<<2)>>2],D[c+24|0],e)){break o}la((b<<1)+f|0,e,l);b=b+n|0;d=d+1|0;a=j>>>0<=d>>>0;if((d|0)!=(j|0)){continue}break}}if(!e){break m}ja(e)}b=a;break a;case 5:l=G[c+24|0];o=l<<2;j=F[i+80>>2];p:{if((L(o,j)|0)!=(e|0)){break p}i=F[c+28>>2]!=6;d=G[c+84|0];if(!(i|!d)){la(f,F[F[c>>2]>>2]+F[c+48>>2]|0,e);b=1;break p}q:{if(!l){e=0;break q}e=ka(o);ma(e,0,o)}b=1;r:{if(!j){break r}if(!i){a=F[c+68>>2];m=F[c>>2];i=F[c+48>>2];k=F[c+40>>2];n=F[c+44>>2];if(l){if(!d){c=0;d=0;while(1){g=F[m>>2];p=ki(k,n,F[a+(d<<2)>>2],0)+i|0;la((c<<2)+f|0,la(e,g+p|0,k),o);c=c+l|0;d=d+1|0;if((j|0)!=(d|0)){continue}break}break r}c=0;while(1){d=F[m>>2];p=ki(g,h,k,n)+i|0;la((c<<2)+f|0,la(e,d+p|0,k),o);c=c+l|0;g=g+1|0;a=g?h:h+1|0;h=a;if((j|0)!=(g|0)|h){continue}break}break r}if(!d){c=0;if((j|0)!=1){f=j&-2;d=0;while(1){h=F[m>>2];g=c<<2;l=ki(k,n,F[g+a>>2],0)+i|0;h=la(e,h+l|0,k);l=F[m>>2];g=ki(k,n,F[a+(g|4)>>2],0)+i|0;la(h,g+l|0,k);c=c+2|0;d=d+2|0;if((f|0)!=(d|0)){continue}break}}if(!(j&1)){break r}d=F[m>>2];a=ki(k,n,F[a+(c<<2)>>2],0)+i|0;la(e,a+d|0,k);break r}l=j&1;if((j|0)!=1){j=j&-2;f=0;c=0;while(1){a=F[m>>2];d=ki(g,h,k,n)+i|0;a=la(e,a+d|0,k);d=F[m>>2];o=ki(k,n,g|1,h)+i|0;la(a,d+o|0,k);d=h;g=g+2|0;h=g>>>0<2?d+1|0:d;f=f+2|0;a=f>>>0<2?c+1|0:c;c=a;if((f|0)!=(j|0)|c){continue}break}}if(!l){break r}a=F[m>>2];c=ki(g,h,k,n)+i|0;la(e,a+c|0,k);break r}b=0;if(!l){d=0;while(1){if(!xb(c,G[c+84|0]?d:F[F[c+68>>2]+(d<<2)>>2],D[c+24|0],e)){break r}d=d+1|0;b=j>>>0<=d>>>0;if((d|0)!=(j|0)){continue}break}break r}d=0;while(1){if(!xb(c,G[c+84|0]?d:F[F[c+68>>2]+(d<<2)>>2],D[c+24|0],e)){break r}la((a<<2)+f|0,e,o);a=a+l|0;d=d+1|0;b=j>>>0<=d>>>0;if((d|0)!=(j|0)){continue}break}}if(!e){break p}ja(e)}break a;case 8:p=G[c+24|0];q=p<<2;k=F[i+80>>2];s:{if((L(q,k)|0)!=(e|0)){break s}i=F[c+28>>2];t:{if(!p){break t}a=ka(q);d=a;m=q-4|0;l=(m>>>2|0)+1&7;if(l){e=0;while(1){F[d>>2]=-1073741824;d=d+4|0;e=e+1|0;if((l|0)!=(e|0)){continue}break}}if(m>>>0<28){break t}e=(p<<2)+a|0;while(1){F[d+24>>2]=-1073741824;F[d+28>>2]=-1073741824;F[d+16>>2]=-1073741824;F[d+20>>2]=-1073741824;F[d+8>>2]=-1073741824;F[d+12>>2]=-1073741824;F[d>>2]=-1073741824;F[d+4>>2]=-1073741824;d=d+32|0;if((e|0)!=(d|0)){continue}break}}u:{if(!k){b=1;break u}if((i|0)==9){r=F[c+68>>2];l=F[c>>2];i=F[c+48>>2];s=G[c+84|0];m=F[c+44>>2];c=F[c+40>>2];o=c;if(p){e=0;d=0;while(1){h=(e<<2)+f|0;g=F[l>>2];b=ki(c,m,s?d:F[r+(d<<2)>>2],0)+i|0;la(h,la(a,b+g|0,o),q);e=e+p|0;b=1;d=d+1|0;if((k|0)!=(d|0)){continue}break}break u}if(!s){b=1;d=0;if((k|0)!=1){f=k&-2;e=0;while(1){h=F[l>>2];g=d<<2;j=ki(c,m,F[g+r>>2],0)+i|0;h=la(a,h+j|0,o);j=F[l>>2];g=ki(c,m,F[r+(g|4)>>2],0)+i|0;la(h,j+g|0,o);d=d+2|0;e=e+2|0;if((f|0)!=(e|0)){continue}break}}if(!(k&1)){break u}e=F[l>>2];c=ki(c,m,F[r+(d<<2)>>2],0)+i|0;la(a,c+e|0,o);break u}f=k&1;b=1;if((k|0)!=1){k=k&-2;while(1){d=F[l>>2];e=ki(g,h,c,m)+i|0;d=la(a,d+e|0,o);e=F[l>>2];p=ki(c,m,g|1,h)+i|0;la(d,e+p|0,o);g=g+2|0;h=g>>>0<2?h+1|0:h;d=j;e=n+2|0;d=e>>>0<2?d+1|0:d;n=e;j=d;if((e|0)!=(k|0)|d){continue}break}}if(!f){break u}d=F[l>>2];c=ki(g,h,c,m)+i|0;la(a,c+d|0,o);break u}if(!p){d=0;while(1){if(!lb(c,G[c+84|0]?d:F[F[c+68>>2]+(d<<2)>>2],D[c+24|0],a)){break u}d=d+1|0;b=k>>>0<=d>>>0;if((d|0)!=(k|0)){continue}break}break u}e=0;d=0;while(1){if(!lb(c,G[c+84|0]?d:F[F[c+68>>2]+(d<<2)>>2],D[c+24|0],a)){break u}la((e<<2)+f|0,a,q);e=e+p|0;d=d+1|0;b=k>>>0<=d>>>0;if((d|0)!=(k|0)){continue}break}}if(!a){break s}ja(a)}a=b;break;default:break b}}b=a}return b|0}function Pd(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;h=Z-80|0;Z=h;e=F[c+36>>2];F[h+72>>2]=F[c+32>>2];F[h+76>>2]=e;f=F[c+28>>2];e=h- -64|0;F[e>>2]=F[c+24>>2];F[e+4>>2]=f;e=F[c+20>>2];F[h+56>>2]=F[c+16>>2];F[h+60>>2]=e;e=F[c+12>>2];F[h+48>>2]=F[c+8>>2];F[h+52>>2]=e;e=F[c+4>>2];F[h+40>>2]=F[c>>2];F[h+44>>2]=e;jc(a,h+40|0,h+24|0);a:{if(F[a>>2]){break a}if(D[a+15|0]<0){ja(F[a+4>>2])}if(G[h+31|0]!=1){b=ka(32);D[b+20|0]=0;c=G[1446]|G[1447]<<8|(G[1448]<<16|G[1449]<<24);D[b+16|0]=c;D[b+17|0]=c>>>8;D[b+18|0]=c>>>16;D[b+19|0]=c>>>24;c=G[1442]|G[1443]<<8|(G[1444]<<16|G[1445]<<24);d=G[1438]|G[1439]<<8|(G[1440]<<16|G[1441]<<24);D[b+8|0]=d;D[b+9|0]=d>>>8;D[b+10|0]=d>>>16;D[b+11|0]=d>>>24;D[b+12|0]=c;D[b+13|0]=c>>>8;D[b+14|0]=c>>>16;D[b+15|0]=c>>>24;c=G[1434]|G[1435]<<8|(G[1436]<<16|G[1437]<<24);d=G[1430]|G[1431]<<8|(G[1432]<<16|G[1433]<<24);D[b|0]=d;D[b+1|0]=d>>>8;D[b+2|0]=d>>>16;D[b+3|0]=d>>>24;D[b+4|0]=c;D[b+5|0]=c>>>8;D[b+6|0]=c>>>16;D[b+7|0]=c>>>24;F[a>>2]=-1;ra(a+4|0,b,20);ja(b);break a}j=Z-16|0;Z=j;b:{c:{switch(G[h+32|0]){case 0:e=Kd(ka(48));F[e>>2]=9864;F[h+8>>2]=0;F[h+12>>2]=0;F[h>>2]=0;F[h+4>>2]=0;F[h+16>>2]=e;break b;case 1:e=Kd(ka(52));F[e+48>>2]=0;F[e>>2]=8176;F[h+8>>2]=0;F[h+12>>2]=0;F[h>>2]=0;F[h+4>>2]=0;F[h+16>>2]=e;break b;default:break c}}f=ka(32);D[f+28|0]=0;e=G[1520]|G[1521]<<8|(G[1522]<<16|G[1523]<<24);D[f+24|0]=e;D[f+25|0]=e>>>8;D[f+26|0]=e>>>16;D[f+27|0]=e>>>24;e=G[1516]|G[1517]<<8|(G[1518]<<16|G[1519]<<24);g=G[1512]|G[1513]<<8|(G[1514]<<16|G[1515]<<24);D[f+16|0]=g;D[f+17|0]=g>>>8;D[f+18|0]=g>>>16;D[f+19|0]=g>>>24;D[f+20|0]=e;D[f+21|0]=e>>>8;D[f+22|0]=e>>>16;D[f+23|0]=e>>>24;e=G[1508]|G[1509]<<8|(G[1510]<<16|G[1511]<<24);g=G[1504]|G[1505]<<8|(G[1506]<<16|G[1507]<<24);D[f+8|0]=g;D[f+9|0]=g>>>8;D[f+10|0]=g>>>16;D[f+11|0]=g>>>24;D[f+12|0]=e;D[f+13|0]=e>>>8;D[f+14|0]=e>>>16;D[f+15|0]=e>>>24;e=G[1500]|G[1501]<<8|(G[1502]<<16|G[1503]<<24);g=G[1496]|G[1497]<<8|(G[1498]<<16|G[1499]<<24);D[f|0]=g;D[f+1|0]=g>>>8;D[f+2|0]=g>>>16;D[f+3|0]=g>>>24;D[f+4|0]=e;D[f+5|0]=e>>>8;D[f+6|0]=e>>>16;D[f+7|0]=e>>>24;F[j>>2]=-1;e=j|4;ra(e,f,28);k=D[j+15|0];F[h>>2]=F[j>>2];g=h+4|0;d:{if((k|0)>=0){k=F[e+4>>2];F[g>>2]=F[e>>2];F[g+4>>2]=k;F[g+8>>2]=F[e+8>>2];F[h+16>>2]=0;break d}ra(g,F[j+4>>2],F[j+8>>2]);e=D[j+15|0];F[h+16>>2]=0;if((e|0)>=0){break d}ja(F[j+4>>2])}ja(f)}Z=j+16|0;e=F[h>>2];e:{if(e){F[a>>2]=e;a=a+4|0;if(D[h+15|0]>=0){b=h|4;c=F[b+4>>2];F[a>>2]=F[b>>2];F[a+4>>2]=c;F[a+8>>2]=F[b+8>>2];break e}ra(a,F[h+4>>2],F[h+8>>2]);break e}e=F[h+16>>2];F[h+16>>2]=0;F[e+44>>2]=d;f=Z-32|0;Z=f;F[e+32>>2]=c;F[e+40>>2]=b;F[e+4>>2]=d;jc(a,c,f+16|0);f:{if(F[a>>2]){break f}if(D[a+15|0]<0){ja(F[a+4>>2])}b=G[f+23|0];if(($[F[F[e>>2]+8>>2]](e)|0)!=(b|0)){b=ka(64);D[b+50|0]=0;c=G[1304]|G[1305]<<8;D[b+48|0]=c;D[b+49|0]=c>>>8;c=G[1300]|G[1301]<<8|(G[1302]<<16|G[1303]<<24);d=G[1296]|G[1297]<<8|(G[1298]<<16|G[1299]<<24);D[b+40|0]=d;D[b+41|0]=d>>>8;D[b+42|0]=d>>>16;D[b+43|0]=d>>>24;D[b+44|0]=c;D[b+45|0]=c>>>8;D[b+46|0]=c>>>16;D[b+47|0]=c>>>24;c=G[1292]|G[1293]<<8|(G[1294]<<16|G[1295]<<24);d=G[1288]|G[1289]<<8|(G[1290]<<16|G[1291]<<24);D[b+32|0]=d;D[b+33|0]=d>>>8;D[b+34|0]=d>>>16;D[b+35|0]=d>>>24;D[b+36|0]=c;D[b+37|0]=c>>>8;D[b+38|0]=c>>>16;D[b+39|0]=c>>>24;c=G[1284]|G[1285]<<8|(G[1286]<<16|G[1287]<<24);d=G[1280]|G[1281]<<8|(G[1282]<<16|G[1283]<<24);D[b+24|0]=d;D[b+25|0]=d>>>8;D[b+26|0]=d>>>16;D[b+27|0]=d>>>24;D[b+28|0]=c;D[b+29|0]=c>>>8;D[b+30|0]=c>>>16;D[b+31|0]=c>>>24;c=G[1276]|G[1277]<<8|(G[1278]<<16|G[1279]<<24);d=G[1272]|G[1273]<<8|(G[1274]<<16|G[1275]<<24);D[b+16|0]=d;D[b+17|0]=d>>>8;D[b+18|0]=d>>>16;D[b+19|0]=d>>>24;D[b+20|0]=c;D[b+21|0]=c>>>8;D[b+22|0]=c>>>16;D[b+23|0]=c>>>24;c=G[1268]|G[1269]<<8|(G[1270]<<16|G[1271]<<24);d=G[1264]|G[1265]<<8|(G[1266]<<16|G[1267]<<24);D[b+8|0]=d;D[b+9|0]=d>>>8;D[b+10|0]=d>>>16;D[b+11|0]=d>>>24;D[b+12|0]=c;D[b+13|0]=c>>>8;D[b+14|0]=c>>>16;D[b+15|0]=c>>>24;c=G[1260]|G[1261]<<8|(G[1262]<<16|G[1263]<<24);d=G[1256]|G[1257]<<8|(G[1258]<<16|G[1259]<<24);D[b|0]=d;D[b+1|0]=d>>>8;D[b+2|0]=d>>>16;D[b+3|0]=d>>>24;D[b+4|0]=c;D[b+5|0]=c>>>8;D[b+6|0]=c>>>16;D[b+7|0]=c>>>24;F[a>>2]=-1;ra(a+4|0,b,50);ja(b);break f}c=G[f+21|0];D[e+36|0]=c;d=G[f+22|0];D[e+37|0]=d;if((c|0)!=2){b=ka(32);D[b+26|0]=0;c=G[1427]|G[1428]<<8;D[b+24|0]=c;D[b+25|0]=c>>>8;c=G[1423]|G[1424]<<8|(G[1425]<<16|G[1426]<<24);d=G[1419]|G[1420]<<8|(G[1421]<<16|G[1422]<<24);D[b+16|0]=d;D[b+17|0]=d>>>8;D[b+18|0]=d>>>16;D[b+19|0]=d>>>24;D[b+20|0]=c;D[b+21|0]=c>>>8;D[b+22|0]=c>>>16;D[b+23|0]=c>>>24;c=G[1415]|G[1416]<<8|(G[1417]<<16|G[1418]<<24);d=G[1411]|G[1412]<<8|(G[1413]<<16|G[1414]<<24);D[b+8|0]=d;D[b+9|0]=d>>>8;D[b+10|0]=d>>>16;D[b+11|0]=d>>>24;D[b+12|0]=c;D[b+13|0]=c>>>8;D[b+14|0]=c>>>16;D[b+15|0]=c>>>24;c=G[1407]|G[1408]<<8|(G[1409]<<16|G[1410]<<24);d=G[1403]|G[1404]<<8|(G[1405]<<16|G[1406]<<24);D[b|0]=d;D[b+1|0]=d>>>8;D[b+2|0]=d>>>16;D[b+3|0]=d>>>24;D[b+4|0]=c;D[b+5|0]=c>>>8;D[b+6|0]=c>>>16;D[b+7|0]=c>>>24;F[a>>2]=-5;ra(a+4|0,b,26);ja(b);break f}b=b?2:3;if((b|0)!=(d|0)){b=ka(32);D[b+26|0]=0;c=G[1400]|G[1401]<<8;D[b+24|0]=c;D[b+25|0]=c>>>8;c=G[1396]|G[1397]<<8|(G[1398]<<16|G[1399]<<24);d=G[1392]|G[1393]<<8|(G[1394]<<16|G[1395]<<24);D[b+16|0]=d;D[b+17|0]=d>>>8;D[b+18|0]=d>>>16;D[b+19|0]=d>>>24;D[b+20|0]=c;D[b+21|0]=c>>>8;D[b+22|0]=c>>>16;D[b+23|0]=c>>>24;c=G[1388]|G[1389]<<8|(G[1390]<<16|G[1391]<<24);d=G[1384]|G[1385]<<8|(G[1386]<<16|G[1387]<<24);D[b+8|0]=d;D[b+9|0]=d>>>8;D[b+10|0]=d>>>16;D[b+11|0]=d>>>24;D[b+12|0]=c;D[b+13|0]=c>>>8;D[b+14|0]=c>>>16;D[b+15|0]=c>>>24;c=G[1380]|G[1381]<<8|(G[1382]<<16|G[1383]<<24);d=G[1376]|G[1377]<<8|(G[1378]<<16|G[1379]<<24);D[b|0]=d;D[b+1|0]=d>>>8;D[b+2|0]=d>>>16;D[b+3|0]=d>>>24;D[b+4|0]=c;D[b+5|0]=c>>>8;D[b+6|0]=c>>>16;D[b+7|0]=c>>>24;F[a>>2]=-5;ra(a+4|0,b,26);ja(b);break f}E[F[e+32>>2]+38>>1]=b|512;g:{if(E[f+26>>1]>=0){break g}j=Z-16|0;Z=j;d=ka(36);b=d;F[b+4>>2]=0;F[b+8>>2]=0;F[b+24>>2]=0;F[b+28>>2]=0;b=b+16|0;F[b>>2]=0;F[b+4>>2]=0;F[d>>2]=d+4;F[d+32>>2]=0;F[d+12>>2]=b;F[j>>2]=0;c=F[e+32>>2];k=Z-16|0;Z=k;b=0;h:{if(!d){break h}F[j>>2]=c;F[k+12>>2]=0;b=0;if(!fb(1,k+12|0,c)){break h}n=F[k+12>>2];if(n){while(1){i:{if(fb(1,k+8|0,F[j>>2])){b=ka(28);F[b+4>>2]=0;F[b+8>>2]=0;c=b+16|0;F[c>>2]=0;F[c+4>>2]=0;F[b>>2]=b+4;F[b+12>>2]=c;F[b+24>>2]=F[k+8>>2];if(Vc(j,b)){break i}Ca(b+12|0,F[b+16>>2]);Ba(b,F[b+4>>2]);ja(b)}b=0;break h}g=Z-16|0;Z=g;F[g+8>>2]=b;j:{if(!b){break j}c=F[d+28>>2];k:{if(c>>>0>2]){F[g+8>>2]=0;F[c>>2]=b;F[d+28>>2]=c+4;break k}c=0;l:{m:{n:{i=F[d+24>>2];m=F[d+28>>2]-i>>2;b=m+1|0;if(b>>>0<1073741824){i=F[d+32>>2]-i|0;l=i>>>1|0;i=i>>>0>=2147483644?1073741823:b>>>0>>0?l:b;if(i){if(i>>>0>=1073741824){break n}c=ka(i<<2)}l=F[g+8>>2];F[g+8>>2]=0;b=(m<<2)+c|0;F[b>>2]=l;i=(i<<2)+c|0;m=b+4|0;c=F[d+28>>2];l=F[d+24>>2];if((c|0)==(l|0)){break m}while(1){c=c-4|0;p=F[c>>2];F[c>>2]=0;b=b-4|0;F[b>>2]=p;if((c|0)!=(l|0)){continue}break}F[d+32>>2]=i;i=F[d+28>>2];F[d+28>>2]=m;c=F[d+24>>2];F[d+24>>2]=b;if((c|0)==(i|0)){break l}while(1){i=i-4|0;b=F[i>>2];F[i>>2]=0;if(b){Ca(b+12|0,F[b+16>>2]);Ba(b,F[b+4>>2]);ja(b)}if((c|0)!=(i|0)){continue}break}break l}na();v()}oa();v()}F[d+32>>2]=i;F[d+28>>2]=m;F[d+24>>2]=b}if(c){ja(c)}}b=F[g+8>>2];F[g+8>>2]=0;if(!b){break j}Ca(b+12|0,F[b+16>>2]);Ba(b,F[b+4>>2]);ja(b)}Z=g+16|0;o=o+1|0;if((n|0)!=(o|0)){continue}break}}b=Vc(j,d)}Z=k+16|0;o:{if(b){c=F[e+4>>2];b=F[c+4>>2];F[c+4>>2]=d;if(b){ic(b)}F[a>>2]=0;F[a+4>>2]=0;F[a+8>>2]=0;F[a+12>>2]=0;break o}b=ka(32);D[b+26|0]=0;c=G[1549]|G[1550]<<8;D[b+24|0]=c;D[b+25|0]=c>>>8;c=G[1545]|G[1546]<<8|(G[1547]<<16|G[1548]<<24);g=G[1541]|G[1542]<<8|(G[1543]<<16|G[1544]<<24);D[b+16|0]=g;D[b+17|0]=g>>>8;D[b+18|0]=g>>>16;D[b+19|0]=g>>>24;D[b+20|0]=c;D[b+21|0]=c>>>8;D[b+22|0]=c>>>16;D[b+23|0]=c>>>24;c=G[1537]|G[1538]<<8|(G[1539]<<16|G[1540]<<24);g=G[1533]|G[1534]<<8|(G[1535]<<16|G[1536]<<24);D[b+8|0]=g;D[b+9|0]=g>>>8;D[b+10|0]=g>>>16;D[b+11|0]=g>>>24;D[b+12|0]=c;D[b+13|0]=c>>>8;D[b+14|0]=c>>>16;D[b+15|0]=c>>>24;c=G[1529]|G[1530]<<8|(G[1531]<<16|G[1532]<<24);g=G[1525]|G[1526]<<8|(G[1527]<<16|G[1528]<<24);D[b|0]=g;D[b+1|0]=g>>>8;D[b+2|0]=g>>>16;D[b+3|0]=g>>>24;D[b+4|0]=c;D[b+5|0]=c>>>8;D[b+6|0]=c>>>16;D[b+7|0]=c>>>24;F[a>>2]=-1;ra(a+4|0,b,26);ja(b);F[j+8>>2]=0;ic(d)}Z=j+16|0;if(F[a>>2]){break f}if(D[a+15|0]>=0){break g}ja(F[a+4>>2])}if(!($[F[F[e>>2]+12>>2]](e)|0)){b=ka(48);D[b+33|0]=0;D[b+32|0]=G[1374];c=G[1370]|G[1371]<<8|(G[1372]<<16|G[1373]<<24);d=G[1366]|G[1367]<<8|(G[1368]<<16|G[1369]<<24);D[b+24|0]=d;D[b+25|0]=d>>>8;D[b+26|0]=d>>>16;D[b+27|0]=d>>>24;D[b+28|0]=c;D[b+29|0]=c>>>8;D[b+30|0]=c>>>16;D[b+31|0]=c>>>24;c=G[1362]|G[1363]<<8|(G[1364]<<16|G[1365]<<24);d=G[1358]|G[1359]<<8|(G[1360]<<16|G[1361]<<24);D[b+16|0]=d;D[b+17|0]=d>>>8;D[b+18|0]=d>>>16;D[b+19|0]=d>>>24;D[b+20|0]=c;D[b+21|0]=c>>>8;D[b+22|0]=c>>>16;D[b+23|0]=c>>>24;c=G[1354]|G[1355]<<8|(G[1356]<<16|G[1357]<<24);d=G[1350]|G[1351]<<8|(G[1352]<<16|G[1353]<<24);D[b+8|0]=d;D[b+9|0]=d>>>8;D[b+10|0]=d>>>16;D[b+11|0]=d>>>24;D[b+12|0]=c;D[b+13|0]=c>>>8;D[b+14|0]=c>>>16;D[b+15|0]=c>>>24;c=G[1346]|G[1347]<<8|(G[1348]<<16|G[1349]<<24);d=G[1342]|G[1343]<<8|(G[1344]<<16|G[1345]<<24);D[b|0]=d;D[b+1|0]=d>>>8;D[b+2|0]=d>>>16;D[b+3|0]=d>>>24;D[b+4|0]=c;D[b+5|0]=c>>>8;D[b+6|0]=c>>>16;D[b+7|0]=c>>>24;F[a>>2]=-1;ra(a+4|0,b,33);ja(b);break f}if(!($[F[F[e>>2]+20>>2]](e)|0)){b=Eb(f,1552);F[a>>2]=-1;c=a+4|0;if(D[b+11|0]>=0){d=F[b+4>>2];F[c>>2]=F[b>>2];F[c+4>>2]=d;F[c+8>>2]=F[b+8>>2];break f}ra(c,F[b>>2],F[b+4>>2]);if(D[b+11|0]>=0){break f}ja(F[b>>2]);break f}if(!($[F[F[e>>2]+24>>2]](e)|0)){b=Eb(f,1307);F[a>>2]=-1;c=a+4|0;if(D[b+11|0]>=0){d=F[b+4>>2];F[c>>2]=F[b>>2];F[c+4>>2]=d;F[c+8>>2]=F[b+8>>2];break f}ra(c,F[b>>2],F[b+4>>2]);if(D[b+11|0]>=0){break f}ja(F[b>>2]);break f}F[a>>2]=0;F[a+4>>2]=0;F[a+8>>2]=0;F[a+12>>2]=0}Z=f+32|0;if(!F[a>>2]){if(D[a+15|0]<0){ja(F[a+4>>2])}F[a>>2]=0;F[a+4>>2]=0;F[a+8>>2]=0;F[a+12>>2]=0}$[F[F[e>>2]+4>>2]](e)}a=F[h+16>>2];F[h+16>>2]=0;if(a){$[F[F[a>>2]+4>>2]](a)}if(D[h+15|0]>=0){break a}ja(F[h+4>>2])}Z=h+80|0}function Ub(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;l=Z-16|0;Z=l;a:{b:{c:{d:{e:{f:{g:{h:{i:{if(a>>>0<=244){g=F[2941];h=a>>>0<11?16:a+11&-8;c=h>>>3|0;b=g>>>c|0;if(b&3){c=c+((b^-1)&1)|0;a=c<<3;b=a+11804|0;d=F[a+11812>>2];a=F[d+8>>2];j:{if((b|0)==(a|0)){m=11764,n=oi(c)&g,F[m>>2]=n;break j}F[a+12>>2]=b;F[b+8>>2]=a}a=d+8|0;b=c<<3;F[d+4>>2]=b|3;b=b+d|0;F[b+4>>2]=F[b+4>>2]|1;break a}k=F[2943];if(k>>>0>=h>>>0){break i}if(b){a=2<>2];a=F[e+8>>2];k:{if((b|0)==(a|0)){g=oi(d)&g;F[2941]=g;break k}F[a+12>>2]=b;F[b+8>>2]=a}F[e+4>>2]=h|3;c=e+h|0;a=d<<3;d=a-h|0;F[c+4>>2]=d|1;F[a+e>>2]=d;if(k){b=(k&-8)+11804|0;f=F[2946];a=1<<(k>>>3);l:{if(!(a&g)){F[2941]=a|g;a=b;break l}a=F[b+8>>2]}F[b+8>>2]=f;F[a+12>>2]=f;F[f+12>>2]=b;F[f+8>>2]=a}a=e+8|0;F[2946]=c;F[2943]=d;break a}j=F[2942];if(!j){break i}c=F[(ji(0-j&j)<<2)+12068>>2];f=(F[c+4>>2]&-8)-h|0;b=c;while(1){m:{a=F[b+16>>2];if(!a){a=F[b+20>>2];if(!a){break m}}b=(F[a+4>>2]&-8)-h|0;d=b>>>0>>0;f=d?b:f;c=d?a:c;b=a;continue}break}i=F[c+24>>2];d=F[c+12>>2];if((d|0)!=(c|0)){a=F[c+8>>2];F[a+12>>2]=d;F[d+8>>2]=a;break b}b=c+20|0;a=F[b>>2];if(!a){a=F[c+16>>2];if(!a){break h}b=c+16|0}while(1){e=b;d=a;b=a+20|0;a=F[b>>2];if(a){continue}b=d+16|0;a=F[d+16>>2];if(a){continue}break}F[e>>2]=0;break b}h=-1;if(a>>>0>4294967231){break i}a=a+11|0;h=a&-8;j=F[2942];if(!j){break i}f=0-h|0;g=0;n:{if(h>>>0<256){break n}g=31;if(h>>>0>16777215){break n}a=O(a>>>8|0);g=((h>>>38-a&1)-(a<<1)|0)+62|0}b=F[(g<<2)+12068>>2];o:{p:{q:{if(!b){a=0;break q}a=0;c=h<<((g|0)!=31?25-(g>>>1|0)|0:0);while(1){r:{e=(F[b+4>>2]&-8)-h|0;if(e>>>0>=f>>>0){break r}d=b;f=e;if(e){break r}f=0;a=b;break p}e=F[b+20>>2];b=F[((c>>>29&4)+b|0)+16>>2];a=e?(e|0)==(b|0)?a:e:a;c=c<<1;if(b){continue}break}}if(!(a|d)){d=0;a=2<>2]}if(!a){break o}}while(1){b=(F[a+4>>2]&-8)-h|0;c=b>>>0>>0;f=c?b:f;d=c?a:d;b=F[a+16>>2];if(b){a=b}else{a=F[a+20>>2]}if(a){continue}break}}if(!d|F[2943]-h>>>0<=f>>>0){break i}g=F[d+24>>2];c=F[d+12>>2];if((d|0)!=(c|0)){a=F[d+8>>2];F[a+12>>2]=c;F[c+8>>2]=a;break c}b=d+20|0;a=F[b>>2];if(!a){a=F[d+16>>2];if(!a){break g}b=d+16|0}while(1){e=b;c=a;b=a+20|0;a=F[b>>2];if(a){continue}b=c+16|0;a=F[c+16>>2];if(a){continue}break}F[e>>2]=0;break c}a=F[2943];if(a>>>0>=h>>>0){d=F[2946];b=a-h|0;s:{if(b>>>0>=16){c=d+h|0;F[c+4>>2]=b|1;F[a+d>>2]=b;F[d+4>>2]=h|3;break s}F[d+4>>2]=a|3;a=a+d|0;F[a+4>>2]=F[a+4>>2]|1;c=0;b=0}F[2943]=b;F[2946]=c;a=d+8|0;break a}i=F[2944];if(i>>>0>h>>>0){b=i-h|0;F[2944]=b;c=F[2947];a=c+h|0;F[2947]=a;F[a+4>>2]=b|1;F[c+4>>2]=h|3;a=c+8|0;break a}a=0;j=h+47|0;if(F[3059]){c=F[3061]}else{F[3062]=-1;F[3063]=-1;F[3060]=4096;F[3061]=4096;F[3059]=l+12&-16^1431655768;F[3064]=0;F[3052]=0;c=4096}e=j+c|0;f=0-c|0;b=e&f;if(b>>>0<=h>>>0){break a}d=F[3051];if(d){c=F[3049];g=c+b|0;if(d>>>0>>0|c>>>0>=g>>>0){break a}}t:{if(!(G[12208]&4)){u:{v:{w:{x:{d=F[2947];if(d){a=12212;while(1){c=F[a>>2];if(c>>>0<=d>>>0&d>>>0>2]>>>0){break x}a=F[a+8>>2];if(a){continue}break}}c=eb(0);if((c|0)==-1){break u}g=b;d=F[3060];a=d-1|0;if(a&c){g=(b-c|0)+(a+c&0-d)|0}if(g>>>0<=h>>>0){break u}d=F[3051];if(d){a=F[3049];f=a+g|0;if(d>>>0>>0|a>>>0>=f>>>0){break u}}a=eb(g);if((c|0)!=(a|0)){break w}break t}g=f&e-i;c=eb(g);if((c|0)==(F[a>>2]+F[a+4>>2]|0)){break v}a=c}if((a|0)==-1){break u}if(h+48>>>0<=g>>>0){c=a;break t}c=F[3061];c=c+(j-g|0)&0-c;if((eb(c)|0)==-1){break u}g=c+g|0;c=a;break t}if((c|0)!=-1){break t}}F[3052]=F[3052]|4}c=eb(b);a=eb(0);if((c|0)==-1|(a|0)==-1|a>>>0<=c>>>0){break d}g=a-c|0;if(g>>>0<=h+40>>>0){break d}}a=F[3049]+g|0;F[3049]=a;if(a>>>0>I[3050]){F[3050]=a}y:{e=F[2947];if(e){a=12212;while(1){d=F[a>>2];b=F[a+4>>2];if((d+b|0)==(c|0)){break y}a=F[a+8>>2];if(a){continue}break}break f}a=F[2945];if(!(a>>>0<=c>>>0?a:0)){F[2945]=c}a=0;F[3054]=g;F[3053]=c;F[2949]=-1;F[2950]=F[3059];F[3056]=0;while(1){d=a<<3;b=d+11804|0;F[d+11812>>2]=b;F[d+11816>>2]=b;a=a+1|0;if((a|0)!=32){continue}break}d=g-40|0;a=c+8&7?-8-c&7:0;b=d-a|0;F[2944]=b;a=a+c|0;F[2947]=a;F[a+4>>2]=b|1;F[(c+d|0)+4>>2]=40;F[2948]=F[3063];break e}if(G[a+12|0]&8|d>>>0>e>>>0|c>>>0<=e>>>0){break f}F[a+4>>2]=b+g;a=e+8&7?-8-e&7:0;c=a+e|0;F[2947]=c;b=F[2944]+g|0;a=b-a|0;F[2944]=a;F[c+4>>2]=a|1;F[(b+e|0)+4>>2]=40;F[2948]=F[3063];break e}d=0;break b}c=0;break c}if(I[2945]>c>>>0){F[2945]=c}b=c+g|0;a=12212;z:{A:{B:{C:{D:{E:{while(1){if((b|0)!=F[a>>2]){a=F[a+8>>2];if(a){continue}break E}break}if(!(G[a+12|0]&8)){break D}}a=12212;while(1){b=F[a>>2];if(b>>>0<=e>>>0){f=b+F[a+4>>2]|0;if(f>>>0>e>>>0){break C}}a=F[a+8>>2];continue}}F[a>>2]=c;F[a+4>>2]=F[a+4>>2]+g;j=(c+8&7?-8-c&7:0)+c|0;F[j+4>>2]=h|3;g=b+(b+8&7?-8-b&7:0)|0;i=h+j|0;a=g-i|0;if((e|0)==(g|0)){F[2947]=i;a=F[2944]+a|0;F[2944]=a;F[i+4>>2]=a|1;break A}if(F[2946]==(g|0)){F[2946]=i;a=F[2943]+a|0;F[2943]=a;F[i+4>>2]=a|1;F[a+i>>2]=a;break A}f=F[g+4>>2];if((f&3)==1){e=f&-8;F:{if(f>>>0<=255){d=F[g+8>>2];b=f>>>3|0;c=F[g+12>>2];if((c|0)==(d|0)){m=11764,n=F[2941]&oi(b),F[m>>2]=n;break F}F[d+12>>2]=c;F[c+8>>2]=d;break F}h=F[g+24>>2];c=F[g+12>>2];G:{if((g|0)!=(c|0)){b=F[g+8>>2];F[b+12>>2]=c;F[c+8>>2]=b;break G}H:{f=g+20|0;b=F[f>>2];if(b){break H}f=g+16|0;b=F[f>>2];if(b){break H}c=0;break G}while(1){d=f;c=b;f=c+20|0;b=F[f>>2];if(b){continue}f=c+16|0;b=F[c+16>>2];if(b){continue}break}F[d>>2]=0}if(!h){break F}d=F[g+28>>2];b=(d<<2)+12068|0;I:{if(F[b>>2]==(g|0)){F[b>>2]=c;if(c){break I}m=11768,n=F[2942]&oi(d),F[m>>2]=n;break F}F[h+(F[h+16>>2]==(g|0)?16:20)>>2]=c;if(!c){break F}}F[c+24>>2]=h;b=F[g+16>>2];if(b){F[c+16>>2]=b;F[b+24>>2]=c}b=F[g+20>>2];if(!b){break F}F[c+20>>2]=b;F[b+24>>2]=c}g=e+g|0;f=F[g+4>>2];a=a+e|0}F[g+4>>2]=f&-2;F[i+4>>2]=a|1;F[a+i>>2]=a;if(a>>>0<=255){b=(a&-8)+11804|0;c=F[2941];a=1<<(a>>>3);J:{if(!(c&a)){F[2941]=a|c;a=b;break J}a=F[b+8>>2]}F[b+8>>2]=i;F[a+12>>2]=i;F[i+12>>2]=b;F[i+8>>2]=a;break A}f=31;if(a>>>0<=16777215){b=O(a>>>8|0);f=((a>>>38-b&1)-(b<<1)|0)+62|0}F[i+28>>2]=f;F[i+16>>2]=0;F[i+20>>2]=0;b=(f<<2)+12068|0;d=F[2942];c=1<>2]=i;break K}f=a<<((f|0)!=31?25-(f>>>1|0)|0:0);c=F[b>>2];while(1){b=c;if((F[c+4>>2]&-8)==(a|0)){break B}c=f>>>29|0;f=f<<1;d=(c&4)+b|0;c=F[d+16>>2];if(c){continue}break}F[d+16>>2]=i}F[i+24>>2]=b;F[i+12>>2]=i;F[i+8>>2]=i;break A}d=g-40|0;a=c+8&7?-8-c&7:0;b=d-a|0;F[2944]=b;a=a+c|0;F[2947]=a;F[a+4>>2]=b|1;F[(c+d|0)+4>>2]=40;F[2948]=F[3063];a=(f+(f-39&7?39-f&7:0)|0)-47|0;d=a>>>0>>0?e:a;F[d+4>>2]=27;a=F[3056];F[d+16>>2]=F[3055];F[d+20>>2]=a;a=F[3054];F[d+8>>2]=F[3053];F[d+12>>2]=a;F[3055]=d+8;F[3054]=g;F[3053]=c;F[3056]=0;a=d+24|0;while(1){F[a+4>>2]=7;b=a+8|0;a=a+4|0;if(b>>>0>>0){continue}break}if((d|0)==(e|0)){break e}F[d+4>>2]=F[d+4>>2]&-2;f=d-e|0;F[e+4>>2]=f|1;F[d>>2]=f;if(f>>>0<=255){b=(f&-8)+11804|0;c=F[2941];a=1<<(f>>>3);L:{if(!(c&a)){F[2941]=a|c;a=b;break L}a=F[b+8>>2]}F[b+8>>2]=e;F[a+12>>2]=e;F[e+12>>2]=b;F[e+8>>2]=a;break e}a=31;if(f>>>0<=16777215){a=O(f>>>8|0);a=((f>>>38-a&1)-(a<<1)|0)+62|0}F[e+28>>2]=a;F[e+16>>2]=0;F[e+20>>2]=0;b=(a<<2)+12068|0;d=F[2942];c=1<>2]=e;break M}a=f<<((a|0)!=31?25-(a>>>1|0)|0:0);d=F[b>>2];while(1){b=d;if((f|0)==(F[b+4>>2]&-8)){break z}c=a>>>29|0;a=a<<1;c=(c&4)+b|0;d=F[c+16>>2];if(d){continue}break}F[c+16>>2]=e}F[e+24>>2]=b;F[e+12>>2]=e;F[e+8>>2]=e;break e}a=F[b+8>>2];F[a+12>>2]=i;F[b+8>>2]=i;F[i+24>>2]=0;F[i+12>>2]=b;F[i+8>>2]=a}a=j+8|0;break a}a=F[b+8>>2];F[a+12>>2]=e;F[b+8>>2]=e;F[e+24>>2]=0;F[e+12>>2]=b;F[e+8>>2]=a}a=F[2944];if(a>>>0<=h>>>0){break d}b=a-h|0;F[2944]=b;c=F[2947];a=c+h|0;F[2947]=a;F[a+4>>2]=b|1;F[c+4>>2]=h|3;a=c+8|0;break a}F[2940]=48;a=0;break a}N:{if(!g){break N}b=F[d+28>>2];a=(b<<2)+12068|0;O:{if(F[a>>2]==(d|0)){F[a>>2]=c;if(c){break O}j=oi(b)&j;F[2942]=j;break N}F[g+(F[g+16>>2]==(d|0)?16:20)>>2]=c;if(!c){break N}}F[c+24>>2]=g;a=F[d+16>>2];if(a){F[c+16>>2]=a;F[a+24>>2]=c}a=F[d+20>>2];if(!a){break N}F[c+20>>2]=a;F[a+24>>2]=c}P:{if(f>>>0<=15){a=f+h|0;F[d+4>>2]=a|3;a=a+d|0;F[a+4>>2]=F[a+4>>2]|1;break P}F[d+4>>2]=h|3;e=d+h|0;F[e+4>>2]=f|1;F[e+f>>2]=f;if(f>>>0<=255){b=(f&-8)+11804|0;c=F[2941];a=1<<(f>>>3);Q:{if(!(c&a)){F[2941]=a|c;a=b;break Q}a=F[b+8>>2]}F[b+8>>2]=e;F[a+12>>2]=e;F[e+12>>2]=b;F[e+8>>2]=a;break P}a=31;if(f>>>0<=16777215){a=O(f>>>8|0);a=((f>>>38-a&1)-(a<<1)|0)+62|0}F[e+28>>2]=a;F[e+16>>2]=0;F[e+20>>2]=0;b=(a<<2)+12068|0;R:{c=1<>2]=e;break S}a=f<<((a|0)!=31?25-(a>>>1|0)|0:0);h=F[b>>2];while(1){b=h;if((F[b+4>>2]&-8)==(f|0)){break R}c=a>>>29|0;a=a<<1;c=(c&4)+b|0;h=F[c+16>>2];if(h){continue}break}F[c+16>>2]=e}F[e+24>>2]=b;F[e+12>>2]=e;F[e+8>>2]=e;break P}a=F[b+8>>2];F[a+12>>2]=e;F[b+8>>2]=e;F[e+24>>2]=0;F[e+12>>2]=b;F[e+8>>2]=a}a=d+8|0;break a}T:{if(!i){break T}b=F[c+28>>2];a=(b<<2)+12068|0;U:{if(F[a>>2]==(c|0)){F[a>>2]=d;if(d){break U}m=11768,n=oi(b)&j,F[m>>2]=n;break T}F[i+(F[i+16>>2]==(c|0)?16:20)>>2]=d;if(!d){break T}}F[d+24>>2]=i;a=F[c+16>>2];if(a){F[d+16>>2]=a;F[a+24>>2]=d}a=F[c+20>>2];if(!a){break T}F[d+20>>2]=a;F[a+24>>2]=d}V:{if(f>>>0<=15){a=f+h|0;F[c+4>>2]=a|3;a=a+c|0;F[a+4>>2]=F[a+4>>2]|1;break V}F[c+4>>2]=h|3;d=c+h|0;F[d+4>>2]=f|1;F[d+f>>2]=f;if(k){b=(k&-8)+11804|0;e=F[2946];a=1<<(k>>>3);W:{if(!(a&g)){F[2941]=a|g;a=b;break W}a=F[b+8>>2]}F[b+8>>2]=e;F[a+12>>2]=e;F[e+12>>2]=b;F[e+8>>2]=a}F[2946]=d;F[2943]=f}a=c+8|0}Z=l+16|0;return a|0}function Vc(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0,z=0,A=0;m=Z-32|0;Z=m;o=ka(12);F[o+8>>2]=0;F[o+4>>2]=b;F[o>>2]=0;s=o+12|0;b=s;a:{b:{c:{while(1){b=b-12|0;w=F[b+8>>2];j=F[b+4>>2];t=F[b>>2];if(t){if((w|0)>1e3){break a}F[m+24>>2]=0;F[m+16>>2]=0;F[m+20>>2]=0;d=1;c=F[a>>2];e=F[c+8>>2];h=F[c+12>>2];g=F[c+20>>2];f=F[c+16>>2];d:{if((h|0)<=(g|0)&f>>>0>=e>>>0|(g|0)>(h|0)){break d}e=G[f+F[c>>2]|0];h=c;c=g;f=f+1|0;c=f?c:c+1|0;F[h+16>>2]=f;F[h+20>>2]=c;Sb(m+16|0,e);if(e){c=F[a>>2];n=Tb(m+16|0);p=F[c+8>>2];g=F[c+12>>2];h=F[c+20>>2];f=F[c+16>>2];k=f+e|0;h=k>>>0>>0?h+1|0:h;if((g|0)<=(h|0)&k>>>0>p>>>0|(g|0)<(h|0)){break d}la(n,f+F[c>>2]|0,e);d=F[c+20>>2];f=e;e=e+F[c+16>>2]|0;d=f>>>0>e>>>0?d+1|0:d;F[c+16>>2]=e;F[c+20>>2]=d}j=ka(24);c=j;F[c+4>>2]=0;F[c+8>>2]=0;c=c+16|0;F[c>>2]=0;F[c+4>>2]=0;F[j>>2]=j+4;F[j+12>>2]=c;e=Z-32|0;Z=e;h=t+12|0;c=m+16|0;u=Ya(h,c);i=t+16|0;e:{if((u|0)==(i|0)){F[e+16>>2]=c;f:{g:{d=F[h+4>>2];h:{if(!d){f=h+4|0;c=f;break h}f=G[c+11|0];g=f<<24>>24<0;n=g?F[c>>2]:c;g=g?F[c+4>>2]:f;while(1){c=d;d=G[c+27|0];f=d<<24>>24<0;d=f?F[c+20>>2]:d;p=d>>>0>>0;i:{j:{k:{l:{k=p?d:g;m:{if(k){f=f?F[c+16>>2]:c+16|0;q=sa(n,f,k);if(!q){if(d>>>0>g>>>0){break m}break l}if((q|0)>=0){break l}break m}if(d>>>0<=g>>>0){break k}}f=c;d=F[c>>2];if(d){continue}break h}d=sa(f,n,k);if(d){break j}}if(p){break i}break g}if((d|0)>=0){break g}}d=F[c+4>>2];if(d){continue}break}f=c+4|0}d=ka(32);n=d+16|0;g=F[e+16>>2];n:{if(D[g+11|0]>=0){p=F[g+4>>2];F[n>>2]=F[g>>2];F[n+4>>2]=p;F[n+8>>2]=F[g+8>>2];break n}ra(n,F[g>>2],F[g+4>>2])}F[d+8>>2]=c;F[d>>2]=0;F[d+4>>2]=0;F[d+28>>2]=0;F[f>>2]=d;c=d;g=F[F[h>>2]>>2];if(g){F[h>>2]=g;c=F[f>>2]}nb(F[h+4>>2],c);F[h+8>>2]=F[h+8>>2]+1;c=1;break f}d=c;c=0}D[e+28|0]=c;F[e+24>>2]=d;d=F[e+24>>2];c=F[d+28>>2];F[d+28>>2]=j;if(!c){break e}Ca(c+12|0,F[c+16>>2]);Ba(c,F[c+4>>2]);ja(c);break e}if(!j){break e}Ca(j+12|0,F[j+16>>2]);Ba(j,F[j+4>>2]);ja(j)}Z=e+32|0;d=(i|0)!=(u|0)}if(D[m+27|0]<0){ja(F[m+16>>2])}if(d){break a}}if(!j){break a}F[m+16>>2]=0;if(!fb(1,m+16|0,F[a>>2])){break a}q=0;x=F[m+16>>2];if(x){while(1){d=0;i=Z-32|0;Z=i;F[i+24>>2]=0;F[i+16>>2]=0;F[i+20>>2]=0;c=F[a>>2];f=F[c+8>>2];o:{p:{h=F[c+12>>2];g=F[c+20>>2];e=F[c+16>>2];q:{if((h|0)<=(g|0)&e>>>0>=f>>>0|(g|0)>(h|0)){break q}f=G[e+F[c>>2]|0];h=c;c=g;e=e+1|0;c=e?c:c+1|0;F[h+16>>2]=e;F[h+20>>2]=c;Sb(i+16|0,f);if(f){e=F[a>>2];n=Tb(i+16|0);p=F[e+8>>2];g=F[e+12>>2];c=F[e+20>>2];h=F[e+16>>2];k=h+f|0;c=k>>>0>>0?c+1|0:c;if(k>>>0>p>>>0&(c|0)>=(g|0)|(c|0)>(g|0)){break q}la(n,h+F[e>>2]|0,f);c=F[e+20>>2];g=f;f=f+F[e+16>>2]|0;c=g>>>0>f>>>0?c+1|0:c;F[e+16>>2]=f;F[e+20>>2]=c}F[i+12>>2]=0;if(!fb(1,i+12|0,F[a>>2])){break q}f=F[i+12>>2];if(!f){break q}e=F[a>>2];c=F[e+8>>2];h=F[e+16>>2];g=c-h|0;c=F[e+12>>2]-(F[e+20>>2]+(c>>>0>>0)|0)|0;if((c|0)<=0&f>>>0>g>>>0|(c|0)<0){break q}F[i+8>>2]=0;F[i>>2]=0;F[i+4>>2]=0;if((f|0)<0){break p}d=ka(f);F[i>>2]=d;c=d+f|0;F[i+8>>2]=c;l=ma(d,0,f);F[i+4>>2]=c;h=F[e+12>>2];y=h;p=F[e+8>>2];c=F[e+20>>2];k=F[e+16>>2];g=f+k|0;c=g>>>0>>0?c+1|0:c;u=g;n=c;r:{if((c|0)<=(h|0)&g>>>0<=p>>>0|(c|0)<(h|0)){la(l,F[e>>2]+k|0,f);d=F[e+20>>2];c=f+F[e+16>>2]|0;d=c>>>0>>0?d+1|0:d;F[e+16>>2]=c;F[e+20>>2]=d;h=Z-48|0;Z=h;e=Ya(j,i+16|0);if((e|0)!=(j+4|0)){c=F[e+4>>2];s:{if(!c){c=e;while(1){d=F[c+8>>2];f=F[d>>2]!=(c|0);c=d;if(f){continue}break}break s}while(1){d=c;c=F[c>>2];if(c){continue}break}}if((e|0)==F[j>>2]){F[j>>2]=d}F[j+8>>2]=F[j+8>>2]-1;f=F[j+4>>2];t:{u:{g=e;d=e;e=F[d>>2];if(e){c=F[g+4>>2];if(!c){break u}while(1){d=c;c=F[c>>2];if(c){continue}break}}e=F[d+4>>2];if(e){break u}e=0;k=1;break t}F[e+8>>2]=F[d+8>>2];k=0}l=F[d+8>>2];c=F[l>>2];v:{if((d|0)==(c|0)){F[l>>2]=e;if((d|0)==(f|0)){c=0;f=e;break v}c=F[l+4>>2];break v}F[l+4>>2]=e}r=!G[d+12|0];if((d|0)!=(g|0)){l=F[g+8>>2];F[d+8>>2]=l;F[l+(((g|0)!=F[F[g+8>>2]>>2])<<2)>>2]=d;l=F[g>>2];F[d>>2]=l;F[l+8>>2]=d;l=F[g+4>>2];F[d+4>>2]=l;if(l){F[l+8>>2]=d}D[d+12|0]=G[g+12|0];f=(f|0)==(g|0)?d:f}w:{if(r|!f){break w}if(k){while(1){e=G[c+12|0];x:{d=F[c+8>>2];if(F[d>>2]!=(c|0)){if(!e){D[c+12|0]=1;D[d+12|0]=0;e=F[d+4>>2];k=F[e>>2];F[d+4>>2]=k;if(k){F[k+8>>2]=d}F[e+8>>2]=F[d+8>>2];k=F[d+8>>2];F[(((d|0)!=F[k>>2])<<2)+k>>2]=e;F[e>>2]=d;F[d+8>>2]=e;d=c;c=F[c>>2];f=(c|0)==(f|0)?d:f;c=F[c+4>>2]}y:{z:{d=F[c>>2];A:{if(!(G[d+12|0]?0:d)){e=F[c+4>>2];if(G[e+12|0]?0:e){break A}D[c+12|0]=0;c=F[c+8>>2];B:{if((f|0)==(c|0)){c=f;break B}if(G[c+12|0]){break x}}D[c+12|0]=1;break w}e=F[c+4>>2];if(!e){break z}}if(G[e+12|0]){break z}d=c;break y}D[d+12|0]=1;D[c+12|0]=0;e=F[d+4>>2];F[c>>2]=e;if(e){F[e+8>>2]=c}F[d+8>>2]=F[c+8>>2];e=F[c+8>>2];F[((F[e>>2]!=(c|0))<<2)+e>>2]=d;F[d+4>>2]=c;F[c+8>>2]=d;e=c}c=F[d+8>>2];D[d+12|0]=G[c+12|0];D[c+12|0]=1;D[e+12|0]=1;d=F[c+4>>2];e=F[d>>2];F[c+4>>2]=e;if(e){F[e+8>>2]=c}F[d+8>>2]=F[c+8>>2];e=F[c+8>>2];F[(((c|0)!=F[e>>2])<<2)+e>>2]=d;F[d>>2]=c;F[c+8>>2]=d;break w}if(!e){D[c+12|0]=1;D[d+12|0]=0;e=F[c+4>>2];F[d>>2]=e;if(e){F[e+8>>2]=d}F[c+8>>2]=F[d+8>>2];e=F[d+8>>2];F[(((d|0)!=F[e>>2])<<2)+e>>2]=c;F[c+4>>2]=d;F[d+8>>2]=c;f=(d|0)==(f|0)?c:f;c=F[d>>2]}e=F[c>>2];C:{if(!(!e|G[e+12|0])){d=c;break C}d=F[c+4>>2];if(!(G[d+12|0]?0:d)){D[c+12|0]=0;c=F[c+8>>2];if((c|0)!=(f|0)?G[c+12|0]:0){break x}D[c+12|0]=1;break w}if(e){if(!G[e+12|0]){d=c;break C}d=F[c+4>>2]}D[d+12|0]=1;D[c+12|0]=0;e=F[d>>2];F[c+4>>2]=e;if(e){F[e+8>>2]=c}F[d+8>>2]=F[c+8>>2];e=F[c+8>>2];F[((F[e>>2]!=(c|0))<<2)+e>>2]=d;F[d>>2]=c;F[c+8>>2]=d;e=c}c=F[d+8>>2];D[d+12|0]=G[c+12|0];D[c+12|0]=1;D[e+12|0]=1;d=F[c>>2];e=F[d+4>>2];F[c>>2]=e;if(e){F[e+8>>2]=c}F[d+8>>2]=F[c+8>>2];e=F[c+8>>2];F[(((c|0)!=F[e>>2])<<2)+e>>2]=d;F[d+4>>2]=c;F[c+8>>2]=d;break w}d=c;c=F[c+8>>2];c=F[(((d|0)==F[c>>2])<<2)+c>>2];continue}}D[e+12|0]=1}c=F[g+28>>2];if(c){F[g+32>>2]=c;ja(c)}if(D[g+27|0]<0){ja(F[g+16>>2])}ja(g)}F[h+8>>2]=0;F[h>>2]=0;F[h+4>>2]=0;c=F[i+4>>2];d=F[i>>2];f=c-d|0;e=0;D:{E:{if((c|0)!=(d|0)){if((f|0)<0){break E}e=ka(f);c=ma(e,0,f);g=c+f|0;F[h+8>>2]=g;F[h+4>>2]=g;F[h>>2]=c;c=d}la(e,c,f);F:{if(D[i+27|0]>=0){F[h+24>>2]=F[i+24>>2];c=F[i+20>>2];F[h+16>>2]=F[i+16>>2];F[h+20>>2]=c;break F}ra(h+16|0,F[i+16>>2],F[i+20>>2])}Tc(h+28|0,h);f=h+16|0;c=f;G:{H:{d=F[j+4>>2];I:{if(!d){e=j+4|0;c=e;break I}e=G[c+11|0];g=e<<24>>24<0;k=g?F[c>>2]:c;g=g?F[c+4>>2]:e;while(1){c=d;d=G[c+27|0];e=d<<24>>24<0;d=e?F[c+20>>2]:d;l=d>>>0>>0;J:{K:{L:{M:{r=l?d:g;N:{if(r){e=e?F[c+16>>2]:c+16|0;z=sa(k,e,r);if(!z){if(d>>>0>g>>>0){break N}break M}if((z|0)>=0){break M}break N}if(d>>>0<=g>>>0){break L}}e=c;d=F[c>>2];if(d){continue}break I}d=sa(e,k,r);if(d){break K}}if(l){break J}break H}if((d|0)>=0){break H}}d=F[c+4>>2];if(d){continue}break}e=c+4|0}d=ka(40);F[d+24>>2]=F[f+8>>2];g=F[f+4>>2];F[d+16>>2]=F[f>>2];F[d+20>>2]=g;F[f>>2]=0;F[f+4>>2]=0;F[f+8>>2]=0;Tc(d+28|0,f+12|0);F[d+8>>2]=c;F[d>>2]=0;F[d+4>>2]=0;F[e>>2]=d;c=d;f=F[F[j>>2]>>2];if(f){F[j>>2]=f;c=F[e>>2]}nb(F[j+4>>2],c);F[j+8>>2]=F[j+8>>2]+1;c=1;break G}d=c;c=0}D[h+44|0]=c;F[h+40>>2]=d;c=F[h+28>>2];if(c){F[h+32>>2]=c;ja(c)}if(D[h+27|0]<0){ja(F[h+16>>2])}c=F[h>>2];if(c){F[h+4>>2]=c;ja(c)}Z=h+48|0;break D}na();v()}d=F[i>>2];if(!d){break r}}F[i+4>>2]=d;ja(d)}d=(n|0)<=(y|0)&p>>>0>=u>>>0|(n|0)<(y|0)}if(D[i+27|0]<0){ja(F[i+16>>2])}Z=i+32|0;break o}na();v()}if(!d){break a}q=q+1|0;if((x|0)!=(q|0)){continue}break}}F[m+12>>2]=0;if(!fb(1,m+12|0,F[a>>2])){break a}c=F[a>>2];e=F[c+8>>2];f=F[c+16>>2];h=e-f|0;d=F[m+12>>2];c=F[c+12>>2]-(F[c+20>>2]+(e>>>0>>0)|0)|0;if(h>>>0>>0&(c|0)<=0|(c|0)<0){break a}if(d){q=0;h=((t|0)!=0)+w|0;while(1){O:{if(b>>>0>>0){F[b+8>>2]=h;F[b+4>>2]=0;F[b>>2]=j;b=b+12|0;d=F[m+12>>2];break O}c=b-o|0;g=(c|0)/12|0;b=g+1|0;if(b>>>0>=357913942){break c}e=(s-o|0)/12|0;f=e<<1;e=e>>>0>=178956970?357913941:b>>>0>>0?f:b;if(e){if(e>>>0>=357913942){break b}f=ka(L(e,12))}else{f=0}b=f+L(g,12)|0;F[b+8>>2]=h;F[b+4>>2]=0;F[b>>2]=j;c=pa(b+L((c|0)/-12|0,12)|0,o,c);s=f+L(e,12)|0;b=b+12|0;if(o){ja(o)}o=c}q=q+1|0;if(q>>>0>>0){continue}break}}if((b|0)!=(o|0)){continue}break}A=1;break a}na();v()}oa();v()}if(o){ja(o)}Z=m+32|0;return A}function me(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;h=Z-48|0;Z=h;a:{if((c|0)!=1){break a}i=F[a+4>>2];c=F[a+12>>2];F[h+40>>2]=0;F[h+32>>2]=0;F[h+36>>2]=0;F[h+24>>2]=0;F[h+28>>2]=0;F[h+16>>2]=0;F[h+20>>2]=0;F[h+8>>2]=0;F[h+12>>2]=0;d=h+8|0;b:{if((b|0)==-2){break b}k=F[F[F[i+4>>2]+8>>2]+(c<<2)>>2];if(($[F[F[i>>2]+8>>2]](i)|0)==1){j=Z-32|0;Z=j;l=F[F[F[i+4>>2]+8>>2]+(c<<2)>>2];c:{d:{e:{if(($[F[F[i>>2]+8>>2]](i)|0)!=1|b-1>>>0>5){break e}g=$[F[F[i>>2]+36>>2]](i)|0;f=$[F[F[i>>2]+44>>2]](i,c)|0;if(!g|!f){break e}c=$[F[F[i>>2]+40>>2]](i,c)|0;if(c){a=F[i+44>>2];F[j+12>>2]=c;F[j+8>>2]=a;F[j+20>>2]=f;F[j+16>>2]=f+12;f=j+8|0;a=0;f:{g:{switch(b-1|0){case 0:b=ka(60);F[b+4>>2]=l;F[b>>2]=2960;a=F[d+4>>2];F[b+8>>2]=F[d>>2];F[b+12>>2]=a;a=F[d+12>>2];F[b+16>>2]=F[d+8>>2];F[b+20>>2]=a;a=F[d+20>>2];F[b+24>>2]=F[d+16>>2];F[b+28>>2]=a;F[b+40>>2]=0;F[b+32>>2]=0;F[b+36>>2]=0;a=F[d+24>>2];g=F[d+28>>2];if((a|0)!=(g|0)){c=g-a|0;if((c|0)<0){break d}e=ka(c);F[b+32>>2]=e;F[b+40>>2]=(c&-4)+e;while(1){F[e>>2]=F[a>>2];e=e+4|0;a=a+4|0;if((g|0)!=(a|0)){continue}break}F[b+36>>2]=e}a=F[f+4>>2];F[b+44>>2]=F[f>>2];F[b+48>>2]=a;a=F[f+12>>2];F[b+52>>2]=F[f+8>>2];F[b+56>>2]=a;F[b>>2]=2252;a=b;break f;case 3:b=ka(112);F[b+4>>2]=l;F[b>>2]=2960;a=F[d+4>>2];F[b+8>>2]=F[d>>2];F[b+12>>2]=a;a=F[d+12>>2];F[b+16>>2]=F[d+8>>2];F[b+20>>2]=a;a=F[d+20>>2];F[b+24>>2]=F[d+16>>2];F[b+28>>2]=a;F[b+40>>2]=0;F[b+32>>2]=0;F[b+36>>2]=0;a=F[d+24>>2];g=F[d+28>>2];if((a|0)!=(g|0)){c=g-a|0;if((c|0)<0){break d}e=ka(c);F[b+32>>2]=e;F[b+40>>2]=(c&-4)+e;while(1){F[e>>2]=F[a>>2];e=e+4|0;a=a+4|0;if((g|0)!=(a|0)){continue}break}F[b+36>>2]=e}a=F[f+4>>2];F[b+44>>2]=F[f>>2];F[b+48>>2]=a;a=F[f+12>>2];F[b+52>>2]=F[f+8>>2];F[b+56>>2]=a;F[b+60>>2]=0;F[b+64>>2]=0;F[b>>2]=3016;F[b+68>>2]=0;F[b+72>>2]=0;F[b+76>>2]=0;F[b+80>>2]=0;F[b+84>>2]=0;F[b+88>>2]=0;F[b+92>>2]=0;F[b+96>>2]=0;F[b+100>>2]=0;F[b+104>>2]=0;F[b+108>>2]=0;a=b;break f;case 4:b=ka(104);F[b+4>>2]=l;F[b>>2]=2960;a=F[d+4>>2];F[b+8>>2]=F[d>>2];F[b+12>>2]=a;a=F[d+12>>2];F[b+16>>2]=F[d+8>>2];F[b+20>>2]=a;a=F[d+20>>2];F[b+24>>2]=F[d+16>>2];F[b+28>>2]=a;F[b+40>>2]=0;F[b+32>>2]=0;F[b+36>>2]=0;a=F[d+24>>2];g=F[d+28>>2];if((a|0)!=(g|0)){c=g-a|0;if((c|0)<0){break d}e=ka(c);F[b+32>>2]=e;F[b+40>>2]=(c&-4)+e;while(1){F[e>>2]=F[a>>2];e=e+4|0;a=a+4|0;if((g|0)!=(a|0)){continue}break}F[b+36>>2]=e}a=F[f+4>>2];F[b+44>>2]=F[f>>2];F[b+48>>2]=a;a=F[f+12>>2];F[b+52>>2]=F[f+8>>2];F[b+56>>2]=a;F[b+84>>2]=0;F[b+76>>2]=0;F[b+80>>2]=0;F[b+60>>2]=0;F[b+64>>2]=0;F[b>>2]=3264;a=F[f+4>>2];F[b+88>>2]=F[f>>2];F[b+92>>2]=a;a=F[f+12>>2];F[b+96>>2]=F[f+8>>2];F[b+100>>2]=a;a=b;break f;case 5:break g;default:break f}}a=ka(128);F[a+4>>2]=l;F[a>>2]=2960;b=F[d+4>>2];F[a+8>>2]=F[d>>2];F[a+12>>2]=b;b=F[d+12>>2];F[a+16>>2]=F[d+8>>2];F[a+20>>2]=b;b=F[d+20>>2];F[a+24>>2]=F[d+16>>2];F[a+28>>2]=b;F[a+40>>2]=0;F[a+32>>2]=0;F[a+36>>2]=0;h:{i:{c=F[d+28>>2];b=F[d+24>>2];if((c|0)!=(b|0)){c=c-b|0;if((c|0)<0){break i}b=ka(c);F[a+36>>2]=b;F[a+32>>2]=b;F[a+40>>2]=(c&-4)+b;e=F[d+24>>2];c=F[d+28>>2];if((e|0)!=(c|0)){while(1){F[b>>2]=F[e>>2];b=b+4|0;e=e+4|0;if((c|0)!=(e|0)){continue}break}}F[a+36>>2]=b}F[a>>2]=2904;b=F[f+4>>2];F[a+44>>2]=F[f>>2];F[a+48>>2]=b;b=F[f+12>>2];F[a+52>>2]=F[f+8>>2];F[a+56>>2]=b;b=a- -64|0;F[b>>2]=0;F[b+4>>2]=0;F[a+60>>2]=4128;F[a>>2]=3500;b=F[f+4>>2];F[a+72>>2]=F[f>>2];F[a+76>>2]=b;b=F[f+12>>2];F[a+80>>2]=F[f+8>>2];F[a+84>>2]=b;F[a+104>>2]=1065353216;F[a+108>>2]=-1;F[a+96>>2]=-1;F[a+100>>2]=-1;F[a+88>>2]=1;F[a+92>>2]=-1;F[a+60>>2]=3736;F[a+112>>2]=0;F[a+116>>2]=0;D[a+117|0]=0;D[a+118|0]=0;D[a+119|0]=0;D[a+120|0]=0;D[a+121|0]=0;D[a+122|0]=0;D[a+123|0]=0;D[a+124|0]=0;break h}na();v()}break f}e=a;break e}a=F[i+44>>2];F[j+12>>2]=g;F[j+8>>2]=a;F[j+20>>2]=f;F[j+16>>2]=f+12;f=j+8|0;a=0;j:{k:{switch(b-1|0){case 0:b=ka(60);F[b+4>>2]=l;F[b>>2]=2960;a=F[d+4>>2];F[b+8>>2]=F[d>>2];F[b+12>>2]=a;a=F[d+12>>2];F[b+16>>2]=F[d+8>>2];F[b+20>>2]=a;a=F[d+20>>2];F[b+24>>2]=F[d+16>>2];F[b+28>>2]=a;F[b+40>>2]=0;F[b+32>>2]=0;F[b+36>>2]=0;a=F[d+24>>2];g=F[d+28>>2];if((a|0)!=(g|0)){c=g-a|0;if((c|0)<0){break d}e=ka(c);F[b+32>>2]=e;F[b+40>>2]=(c&-4)+e;while(1){F[e>>2]=F[a>>2];e=e+4|0;a=a+4|0;if((g|0)!=(a|0)){continue}break}F[b+36>>2]=e}a=F[f+4>>2];F[b+44>>2]=F[f>>2];F[b+48>>2]=a;a=F[f+12>>2];F[b+52>>2]=F[f+8>>2];F[b+56>>2]=a;F[b>>2]=4156;a=b;break j;case 3:b=ka(112);F[b+4>>2]=l;F[b>>2]=2960;a=F[d+4>>2];F[b+8>>2]=F[d>>2];F[b+12>>2]=a;a=F[d+12>>2];F[b+16>>2]=F[d+8>>2];F[b+20>>2]=a;a=F[d+20>>2];F[b+24>>2]=F[d+16>>2];F[b+28>>2]=a;F[b+40>>2]=0;F[b+32>>2]=0;F[b+36>>2]=0;a=F[d+24>>2];g=F[d+28>>2];if((a|0)!=(g|0)){c=g-a|0;if((c|0)<0){break d}e=ka(c);F[b+32>>2]=e;F[b+40>>2]=(c&-4)+e;while(1){F[e>>2]=F[a>>2];e=e+4|0;a=a+4|0;if((g|0)!=(a|0)){continue}break}F[b+36>>2]=e}a=F[f+4>>2];F[b+44>>2]=F[f>>2];F[b+48>>2]=a;a=F[f+12>>2];F[b+52>>2]=F[f+8>>2];F[b+56>>2]=a;F[b+60>>2]=0;F[b+64>>2]=0;F[b>>2]=4580;F[b+68>>2]=0;F[b+72>>2]=0;F[b+76>>2]=0;F[b+80>>2]=0;F[b+84>>2]=0;F[b+88>>2]=0;F[b+92>>2]=0;F[b+96>>2]=0;F[b+100>>2]=0;F[b+104>>2]=0;F[b+108>>2]=0;a=b;break j;case 4:b=ka(104);F[b+4>>2]=l;F[b>>2]=2960;a=F[d+4>>2];F[b+8>>2]=F[d>>2];F[b+12>>2]=a;a=F[d+12>>2];F[b+16>>2]=F[d+8>>2];F[b+20>>2]=a;a=F[d+20>>2];F[b+24>>2]=F[d+16>>2];F[b+28>>2]=a;F[b+40>>2]=0;F[b+32>>2]=0;F[b+36>>2]=0;a=F[d+24>>2];g=F[d+28>>2];if((a|0)!=(g|0)){c=g-a|0;if((c|0)<0){break d}e=ka(c);F[b+32>>2]=e;F[b+40>>2]=(c&-4)+e;while(1){F[e>>2]=F[a>>2];e=e+4|0;a=a+4|0;if((g|0)!=(a|0)){continue}break}F[b+36>>2]=e}a=F[f+4>>2];F[b+44>>2]=F[f>>2];F[b+48>>2]=a;a=F[f+12>>2];F[b+52>>2]=F[f+8>>2];F[b+56>>2]=a;F[b+84>>2]=0;F[b+76>>2]=0;F[b+80>>2]=0;F[b+60>>2]=0;F[b+64>>2]=0;F[b>>2]=4816;a=F[f+4>>2];F[b+88>>2]=F[f>>2];F[b+92>>2]=a;a=F[f+12>>2];F[b+96>>2]=F[f+8>>2];F[b+100>>2]=a;a=b;break j;case 5:break k;default:break j}}a=ka(128);F[a+4>>2]=l;F[a>>2]=2960;b=F[d+4>>2];F[a+8>>2]=F[d>>2];F[a+12>>2]=b;b=F[d+12>>2];F[a+16>>2]=F[d+8>>2];F[a+20>>2]=b;b=F[d+20>>2];F[a+24>>2]=F[d+16>>2];F[a+28>>2]=b;F[a+40>>2]=0;F[a+32>>2]=0;F[a+36>>2]=0;l:{m:{c=F[d+28>>2];b=F[d+24>>2];if((c|0)!=(b|0)){c=c-b|0;if((c|0)<0){break m}b=ka(c);F[a+36>>2]=b;F[a+32>>2]=b;F[a+40>>2]=(c&-4)+b;e=F[d+24>>2];c=F[d+28>>2];if((e|0)!=(c|0)){while(1){F[b>>2]=F[e>>2];b=b+4|0;e=e+4|0;if((c|0)!=(e|0)){continue}break}}F[a+36>>2]=b}F[a>>2]=4524;b=F[f+4>>2];F[a+44>>2]=F[f>>2];F[a+48>>2]=b;b=F[f+12>>2];F[a+52>>2]=F[f+8>>2];F[a+56>>2]=b;b=a- -64|0;F[b>>2]=0;F[b+4>>2]=0;F[a+60>>2]=5624;F[a>>2]=5040;b=F[f+4>>2];F[a+72>>2]=F[f>>2];F[a+76>>2]=b;b=F[f+12>>2];F[a+80>>2]=F[f+8>>2];F[a+84>>2]=b;F[a+104>>2]=1065353216;F[a+108>>2]=-1;F[a+96>>2]=-1;F[a+100>>2]=-1;F[a+88>>2]=1;F[a+92>>2]=-1;F[a+60>>2]=5260;F[a+112>>2]=0;F[a+116>>2]=0;D[a+117|0]=0;D[a+118|0]=0;D[a+119|0]=0;D[a+120|0]=0;D[a+121|0]=0;D[a+122|0]=0;D[a+123|0]=0;D[a+124|0]=0;break l}na();v()}break j}e=a}Z=j+32|0;break c}na();v()}if(e){break b}}e=ka(44);F[e+4>>2]=k;F[e>>2]=2960;a=F[d+4>>2];F[e+8>>2]=F[d>>2];F[e+12>>2]=a;a=F[d+12>>2];F[e+16>>2]=F[d+8>>2];F[e+20>>2]=a;a=F[d+20>>2];F[e+24>>2]=F[d+16>>2];F[e+28>>2]=a;F[e+40>>2]=0;F[e+32>>2]=0;F[e+36>>2]=0;n:{c=F[d+24>>2];b=F[d+28>>2];if((c|0)!=(b|0)){a=b-c|0;if((a|0)<0){break n}k=ka(a);F[e+32>>2]=k;F[e+40>>2]=(a&-4)+k;while(1){F[k>>2]=F[c>>2];k=k+4|0;c=c+4|0;if((b|0)!=(c|0)){continue}break}F[e+36>>2]=k}F[e>>2]=5652;break b}na();v()}k=e;a=F[h+32>>2];if(!a){break a}F[h+36>>2]=a;ja(a)}Z=h+48|0;return k|0}function rf(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0,z=0,A=0;m=Z-16|0;Z=m;F[m+12>>2]=b;b=ka(32);F[m>>2]=b;F[m+4>>2]=24;F[m+8>>2]=-2147483616;c=G[1196]|G[1197]<<8|(G[1198]<<16|G[1199]<<24);d=G[1192]|G[1193]<<8|(G[1194]<<16|G[1195]<<24);D[b+16|0]=d;D[b+17|0]=d>>>8;D[b+18|0]=d>>>16;D[b+19|0]=d>>>24;D[b+20|0]=c;D[b+21|0]=c>>>8;D[b+22|0]=c>>>16;D[b+23|0]=c>>>24;c=G[1188]|G[1189]<<8|(G[1190]<<16|G[1191]<<24);d=G[1184]|G[1185]<<8|(G[1186]<<16|G[1187]<<24);D[b+8|0]=d;D[b+9|0]=d>>>8;D[b+10|0]=d>>>16;D[b+11|0]=d>>>24;D[b+12|0]=c;D[b+13|0]=c>>>8;D[b+14|0]=c>>>16;D[b+15|0]=c>>>24;c=G[1180]|G[1181]<<8|(G[1182]<<16|G[1183]<<24);d=G[1176]|G[1177]<<8|(G[1178]<<16|G[1179]<<24);D[b|0]=d;D[b+1|0]=d>>>8;D[b+2|0]=d>>>16;D[b+3|0]=d>>>24;D[b+4|0]=c;D[b+5|0]=c>>>8;D[b+6|0]=c>>>16;D[b+7|0]=c>>>24;D[b+24|0]=0;l=Z-48|0;Z=l;f=F[m+12>>2];d=a;a=a+16|0;b=F[a>>2];a:{b:{if(!b){break b}c=a;while(1){e=(f|0)>F[b+16>>2];c=e?c:b;b=F[(e?b+4|0:b)>>2];if(b){continue}break}if((a|0)==(c|0)){break b}if((f|0)>=F[c+16>>2]){break a}}F[l+28>>2]=0;F[l+32>>2]=0;y=l+24|0;F[l+24>>2]=y|4;a=l+16|0;F[a>>2]=0;F[a+4>>2]=0;F[l+8>>2]=f;F[l+12>>2]=a;t=l+8|0;a=t;x=Z-16|0;Z=x;u=d+12|0;c=F[u+4>>2];c:{d:{if(!c){o=u+4|0;d=o;break d}a=F[a>>2];while(1){d=c;b=F[c+16>>2];if((b|0)>(a|0)){o=d;c=F[d>>2];if(c){continue}break d}if((a|0)<=(b|0)){g=d;a=0;break c}c=F[d+4>>2];if(c){continue}break}o=d+4|0}g=ka(32);b=F[t>>2];q=g+24|0;a=q;F[a>>2]=0;F[a+4>>2]=0;F[g+16>>2]=b;r=g+20|0;F[r>>2]=a;c=F[t+4>>2];z=t+8|0;if((c|0)!=(z|0)){while(1){p=Z-16|0;Z=p;a=p+8|0;k=c+16|0;e:{f:{g:{h:{i:{j:{k:{f=q;e=r+4|0;l:{if((f|0)==(e|0)){break l}b=G[f+27|0];h=b<<24>>24<0;i=G[k+11|0];n=i<<24>>24;j=(n|0)<0;i=j?F[k+4>>2]:i;b=h?F[f+20>>2]:b;s=i>>>0>b>>>0;w=s?b:i;if(w){j=j?F[k>>2]:k;h=h?F[f+16>>2]:f+16|0;A=sa(j,h,w);if(!A){if(b>>>0>i>>>0){break l}break k}if((A|0)>=0){break k}break l}if(b>>>0<=i>>>0){break j}}h=F[f>>2];m:{a=f;n:{if((a|0)==F[r>>2]){break n}o:{if(!h){b=f;while(1){a=F[b+8>>2];i=F[a>>2]==(b|0);b=a;if(i){continue}break}break o}b=h;while(1){a=b;b=F[b+4>>2];if(b){continue}break}}i=G[k+11|0];s=i<<24>>24;b=(s|0)<0;j=G[a+27|0];n=j<<24>>24<0;p:{i=b?F[k+4>>2]:i;j=n?F[a+20>>2]:j;w=i>>>0>>0?i:j;if(w){b=sa(n?F[a+16>>2]:a+16|0,b?F[k>>2]:k,w);if(b){break p}}if(i>>>0>j>>>0){break n}break m}if((b|0)>=0){break m}}if(!h){F[p+12>>2]=f;a=f;break e}F[p+12>>2]=a;a=a+4|0;break e}b=F[e>>2];if(!b){F[p+12>>2]=e;a=e;break e}h=(s|0)<0?F[k>>2]:k;f=e;while(1){a=b;b=G[b+27|0];e=b<<24>>24<0;b=e?F[a+20>>2]:b;k=b>>>0>>0;q:{r:{s:{t:{n=k?b:i;u:{if(n){e=e?F[a+16>>2]:a+16|0;j=sa(h,e,n);if(!j){if(b>>>0>i>>>0){break u}break t}if((j|0)>=0){break t}break u}if(b>>>0<=i>>>0){break s}}f=a;b=F[a>>2];if(b){continue}break g}b=sa(e,h,n);if(b){break r}}if(k){break q}break g}if((b|0)>=0){break g}}f=a+4|0;b=F[a+4>>2];if(b){continue}break}break g}b=sa(h,j,w);if(b){break i}}if(s){break h}break f}if((b|0)>=0){break f}}h=F[f+4>>2];v:{if(!h){b=f;while(1){a=F[b+8>>2];j=F[a>>2]!=(b|0);b=a;if(j){continue}break}break v}b=h;while(1){a=b;b=F[b>>2];if(b){continue}break}}w:{x:{if((a|0)==(e|0)){break x}j=G[a+27|0];b=j<<24>>24<0;y:{j=b?F[a+20>>2]:j;s=i>>>0>j>>>0?j:i;if(s){b=sa((n|0)<0?F[k>>2]:k,b?F[a+16>>2]:a+16|0,s);if(b){break y}}if(i>>>0>>0){break x}break w}if((b|0)>=0){break w}}if(!h){F[p+12>>2]=f;a=f+4|0;break e}F[p+12>>2]=a;break e}b=F[e>>2];if(!b){F[p+12>>2]=e;a=e;break e}h=(n|0)<0?F[k>>2]:k;f=e;while(1){a=b;b=G[b+27|0];e=b<<24>>24<0;b=e?F[a+20>>2]:b;k=b>>>0>>0;z:{A:{B:{C:{n=k?b:i;D:{if(n){e=e?F[a+16>>2]:a+16|0;j=sa(h,e,n);if(!j){if(b>>>0>i>>>0){break D}break C}if((j|0)>=0){break C}break D}if(b>>>0<=i>>>0){break B}}f=a;b=F[a>>2];if(b){continue}break g}b=sa(e,h,n);if(b){break A}}if(k){break z}break g}if((b|0)>=0){break g}}f=a+4|0;b=F[a+4>>2];if(b){continue}break}}F[p+12>>2]=a;a=f;break e}F[p+12>>2]=f;F[a>>2]=f}f=a;a=F[a>>2];if(a){b=0}else{a=ka(40);b=a+16|0;E:{if(D[c+27|0]>=0){e=F[c+20>>2];F[b>>2]=F[c+16>>2];F[b+4>>2]=e;F[b+8>>2]=F[c+24>>2];break E}ra(b,F[c+16>>2],F[c+20>>2])}b=a+28|0;F:{if(D[c+39|0]>=0){e=F[c+32>>2];F[b>>2]=F[c+28>>2];F[b+4>>2]=e;F[b+8>>2]=F[c+36>>2];break F}ra(b,F[c+28>>2],F[c+32>>2])}F[a+8>>2]=F[p+12>>2];F[a>>2]=0;F[a+4>>2]=0;F[f>>2]=a;b=a;e=F[F[r>>2]>>2];if(e){F[r>>2]=e;b=F[f>>2]}nb(F[r+4>>2],b);F[r+8>>2]=F[r+8>>2]+1;b=1}D[x+12|0]=b;F[x+8>>2]=a;Z=p+16|0;b=F[c+4>>2];G:{if(b){while(1){c=b;b=F[b>>2];if(b){continue}break G}}while(1){a=c;c=F[c+8>>2];if((a|0)!=F[c>>2]){continue}break}}if((c|0)!=(z|0)){continue}break}}F[g+8>>2]=d;F[g>>2]=0;F[g+4>>2]=0;F[o>>2]=g;c=g;a=F[F[u>>2]>>2];if(a){F[u>>2]=a;c=F[o>>2]}nb(F[u+4>>2],c);F[u+8>>2]=F[u+8>>2]+1;a=1}D[l+44|0]=a;F[l+40>>2]=g;Z=x+16|0;c=F[l+40>>2];ib(t|4,F[l+16>>2]);ib(y,F[l+28>>2])}f=Z-48|0;Z=f;d=f+8|0;g=Z-32|0;Z=g;o=g+32|0;b=o;a=g+21|0;H:{if((b|0)==(a|0)){break H}}e=b-a|0;I:{if((e|0)<=9){h=61;if((e|0)<(I[2684]<=1|0)){break I}}D[a|0]=49;b=a+1|0;h=0}F[g+12>>2]=h;F[g+8>>2]=b;h=Z-16|0;Z=h;e=Z-16|0;Z=e;J:{q=F[g+8>>2];g=q-a|0;if(g>>>0<=2147483631){K:{if(g>>>0<11){D[d+11|0]=g|G[d+11|0]&128;D[d+11|0]=G[d+11|0]&127;b=d;break K}t=e+8|0;if(g>>>0>=11){k=g+16&-16;b=k-1|0;b=(b|0)==11?k:b}else{b=10}sb(t,b+1|0);b=F[e+8>>2];F[d>>2]=b;F[d+8>>2]=F[d+8>>2]&-2147483648|F[e+12>>2]&2147483647;F[d+8>>2]=F[d+8>>2]|-2147483648;F[d+4>>2]=g}while(1){if((a|0)!=(q|0)){D[b|0]=G[a|0];b=b+1|0;a=a+1|0;continue}break}D[e+7|0]=0;D[b|0]=G[e+7|0];Z=e+16|0;break J}za();v()}Z=h+16|0;Z=o;F[f+32>>2]=m;L:{M:{a=c+20|0;d=F[a+4>>2];N:{if(!d){g=a+4|0;c=g;break N}b=G[m+11|0];c=b<<24>>24<0;e=c?F[m>>2]:m;b=c?F[m+4>>2]:b;while(1){c=d;d=G[c+27|0];g=d<<24>>24<0;d=g?F[c+20>>2]:d;o=d>>>0>>0;O:{P:{Q:{R:{h=o?d:b;S:{if(h){g=g?F[c+16>>2]:c+16|0;q=sa(e,g,h);if(!q){if(b>>>0>>0){break S}break R}if((q|0)>=0){break R}break S}if(b>>>0>=d>>>0){break Q}}g=c;d=F[c>>2];if(d){continue}break N}d=sa(g,e,h);if(d){break P}}if(o){break O}break M}if((d|0)>=0){break M}}d=F[c+4>>2];if(d){continue}break}g=c+4|0}d=ka(40);e=d+16|0;b=F[f+32>>2];T:{if(D[b+11|0]>=0){o=F[b+4>>2];F[e>>2]=F[b>>2];F[e+4>>2]=o;F[e+8>>2]=F[b+8>>2];break T}ra(e,F[b>>2],F[b+4>>2])}F[d+8>>2]=c;F[d>>2]=0;F[d+4>>2]=0;F[d+36>>2]=0;F[d+28>>2]=0;F[d+32>>2]=0;F[g>>2]=d;c=d;b=F[F[a>>2]>>2];if(b){F[a>>2]=b;c=F[g>>2]}nb(F[a+4>>2],c);F[a+8>>2]=F[a+8>>2]+1;a=1;break L}d=c;a=0}D[f+44|0]=a;F[f+40>>2]=d;a=F[f+40>>2];if(D[a+39|0]<0){ja(F[a+28>>2])}b=F[f+12>>2];F[a+28>>2]=F[f+8>>2];F[a+32>>2]=b;F[a+36>>2]=F[f+16>>2];Z=f+48|0;Z=l+48|0;if(D[m+11|0]<0){ja(F[m>>2])}Z=m+16|0}function zd(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0;h=Z-32|0;Z=h;g=F[F[a+4>>2]+44>>2];c=F[a+8>>2];d=F[c>>2];c=F[c+4>>2];F[h+24>>2]=0;F[h+16>>2]=0;F[h+20>>2]=0;d=(c-d>>2>>>0)/3|0;c=F[g+96>>2];f=(F[g+100>>2]-c|0)/12|0;a:{if(d>>>0>f>>>0){e=d-f|0;i=F[g+104>>2];c=F[g+100>>2];if(e>>>0<=(i-c|0)/12>>>0){b:{if(!e){break b}d=c;f=L(e,12)-12|0;i=((f>>>0)/12|0)+1&3;if(i){while(1){l=F[h+20>>2];F[d>>2]=F[h+16>>2];F[d+4>>2]=l;F[d+8>>2]=F[h+24>>2];d=d+12|0;j=j+1|0;if((i|0)!=(j|0)){continue}break}}c=L(e,12)+c|0;if(f>>>0<36){break b}while(1){f=F[h+20>>2];F[d>>2]=F[h+16>>2];F[d+4>>2]=f;F[d+8>>2]=F[h+24>>2];F[d+20>>2]=F[h+24>>2];f=F[h+20>>2];F[d+12>>2]=F[h+16>>2];F[d+16>>2]=f;F[d+32>>2]=F[h+24>>2];f=F[h+20>>2];F[d+24>>2]=F[h+16>>2];F[d+28>>2]=f;f=F[h+20>>2];F[d+36>>2]=F[h+16>>2];F[d+40>>2]=f;F[d+44>>2]=F[h+24>>2];d=d+48|0;if((d|0)!=(c|0)){continue}break}}F[g+100>>2]=c;break a}c:{f=F[g+96>>2];n=(c-f|0)/12|0;d=n+e|0;if(d>>>0<357913942){f=(i-f|0)/12|0;i=f<<1;i=f>>>0>=178956970?357913941:d>>>0>>0?i:d;if(i){if(i>>>0>=357913942){break c}l=ka(L(i,12))}f=L(n,12)+l|0;d=f;e=L(e,12);n=e-12|0;q=((n>>>0)/12|0)+1&3;if(q){while(1){r=F[h+20>>2];F[d>>2]=F[h+16>>2];F[d+4>>2]=r;F[d+8>>2]=F[h+24>>2];d=d+12|0;j=j+1|0;if((q|0)!=(j|0)){continue}break}}e=e+f|0;if(n>>>0>=36){while(1){j=F[h+20>>2];F[d>>2]=F[h+16>>2];F[d+4>>2]=j;F[d+8>>2]=F[h+24>>2];F[d+20>>2]=F[h+24>>2];j=F[h+20>>2];F[d+12>>2]=F[h+16>>2];F[d+16>>2]=j;F[d+32>>2]=F[h+24>>2];j=F[h+20>>2];F[d+24>>2]=F[h+16>>2];F[d+28>>2]=j;j=F[h+20>>2];F[d+36>>2]=F[h+16>>2];F[d+40>>2]=j;F[d+44>>2]=F[h+24>>2];d=d+48|0;if((e|0)!=(d|0)){continue}break}}j=F[g+96>>2];if((j|0)!=(c|0)){while(1){c=c-12|0;n=F[c+4>>2];f=f-12|0;d=f;F[d>>2]=F[c>>2];F[d+4>>2]=n;F[d+8>>2]=F[c+8>>2];if((c|0)!=(j|0)){continue}break}c=F[g+96>>2]}F[g+104>>2]=L(i,12)+l;F[g+100>>2]=e;F[g+96>>2]=f;if(c){ja(c)}break a}na();v()}oa();v()}if(d>>>0>=f>>>0){break a}F[g+100>>2]=c+L(d,12)}d:{if(F[a+216>>2]==F[a+220>>2]){j=F[a+4>>2];c=F[j+44>>2];d=F[c+100>>2];f=F[c+96>>2];if((d|0)!=(f|0)){c=(d-f|0)/12|0;o=c>>>0<=1?1:c;c=0;while(1){d=F[a+8>>2];i=f+L(c,12)|0;g=L(c,3);e:{f:{if((g|0)==-1){e=F[(F[d>>2]+(g<<2)|0)+4>>2];k=-1;g=1;break f}e=-1;k=F[F[d>>2]+(g<<2)>>2];l=g+1|0;if((l|0)==-1){g=0;break f}e=F[F[d>>2]+(l<<2)>>2];g=g+2|0;m=-1;if((g|0)==-1){break e}}m=F[F[d>>2]+(g<<2)>>2]}F[i+8>>2]=m;F[i+4>>2]=e;F[i>>2]=k;c=c+1|0;if((o|0)!=(c|0)){continue}break}}F[F[j+4>>2]+80>>2]=b;c=1;break d}d=0;F[h+24>>2]=0;F[h+16>>2]=0;F[h+20>>2]=0;l=F[a+8>>2];c=F[l>>2];g=F[l+4>>2];F[h+8>>2]=0;F[h>>2]=0;F[h+4>>2]=0;b=0;g:{h:{i:{j:{k:{l:{if((c|0)!=(g|0)){c=g-c|0;if((c|0)<0){break l}b=ka(c);F[h>>2]=b;F[h+8>>2]=(c&-4)+b;u=h,w=ma(b,0,c)+c|0,F[u+4>>2]=w}c=F[l+24>>2];if((F[l+28>>2]-c|0)<4){break h}f=0;while(1){g=F[(p<<2)+c>>2];m:{if((g|0)==-1){break m}n:{if(F[F[a+120>>2]+(p>>>3&536870908)>>2]>>>p&1){break n}n=F[a+216>>2];c=F[a+220>>2];if((n|0)==(c|0)){break n}e=g+2|0;i=(g>>>0)%3|0;q=i?g-1|0:e;c=(c-n|0)/144|0;r=c>>>0<=1?1:c;j=0;t=(i|0)!=0|(e|0)!=-1;while(1){s=g<<2;i=L(j,144)+n|0;c=F[s+F[F[i+68>>2]>>2]>>2];o:{if(!(F[F[i+16>>2]+(c>>>3&536870908)>>2]>>>c&1)){break o}c=-1;p:{if(!t){break p}e=F[F[l+12>>2]+(q<<2)>>2];c=-1;if((e|0)==-1){break p}c=e-1|0;if((e>>>0)%3|0){break p}c=e+2|0}if((g|0)==(c|0)){break o}e=s;s=F[i+32>>2];i=F[e+s>>2];while(1){e=0;if((c|0)==-1){break g}if((i|0)!=F[s+(c<<2)>>2]){g=c;break n}q:{r:{if((c>>>0)%3|0){e=c-1|0;break r}e=c+2|0;m=-1;if((e|0)==-1){break q}}c=F[F[l+12>>2]+(e<<2)>>2];m=-1;if((c|0)==-1){break q}m=c-1|0;if((c>>>0)%3|0){break q}m=c+2|0}c=m;if((g|0)!=(c|0)){continue}break}}j=j+1|0;if((r|0)!=(j|0)){continue}break}}i=k-f|0;e=i>>2;F[(g<<2)+b>>2]=e;s:{if(k>>>0>>0){F[k>>2]=g;k=k+4|0;F[h+20>>2]=k;break s}c=e+1|0;if(c>>>0>=1073741824){break k}d=o-f|0;k=d>>>1|0;c=d>>>0>=2147483644?1073741823:c>>>0>>0?k:c;if(c){if(c>>>0>=1073741824){break j}d=ka(c<<2)}else{d=0}e=d+(e<<2)|0;F[e>>2]=g;m=c<<2;c=pa(d,f,i);o=m+c|0;F[h+24>>2]=o;k=e+4|0;F[h+20>>2]=k;F[h+16>>2]=c;if(f){ja(f);l=F[a+8>>2]}f=c}if((g|0)==-1){break m}t:{if((g>>>0)%3|0){c=g-1|0;break t}c=g+2|0;if((c|0)==-1){break m}}c=F[F[l+12>>2]+(c<<2)>>2];if((c|0)==-1){break m}c=c+((c>>>0)%3|0?-1:2)|0;if((c|0)==-1){break m}e=g;if((c|0)==(g|0)){break m}while(1){i=c;u:{v:{c=F[a+220>>2];j=F[a+216>>2];if((c|0)==(j|0)){break v}c=(c-j|0)/144|0;n=c>>>0<=1?1:c;c=0;while(1){q=F[(j+L(c,144)|0)+32>>2];r=i<<2;if(F[q+r>>2]==F[q+(e<<2)>>2]){c=c+1|0;if((n|0)!=(c|0)){continue}break v}break}j=k-d|0;e=j>>2;F[b+r>>2]=e;if(k>>>0>>0){F[k>>2]=i;k=k+4|0;F[h+20>>2]=k;f=d;break u}c=e+1|0;if(c>>>0>=1073741824){break i}f=o-d|0;k=f>>>1|0;c=f>>>0>=2147483644?1073741823:c>>>0>>0?k:c;if(c){if(c>>>0>=1073741824){break j}f=ka(c<<2)}else{f=0}e=f+(e<<2)|0;F[e>>2]=i;m=c<<2;c=pa(f,d,j);o=m+c|0;F[h+24>>2]=o;k=e+4|0;F[h+20>>2]=k;F[h+16>>2]=c;if(!d){d=c;break u}ja(d);l=F[a+8>>2];d=c;break u}F[(i<<2)+b>>2]=F[(e<<2)+b>>2]}if((i|0)==-1){break m}w:{if((i>>>0)%3|0){c=i-1|0;break w}c=i+2|0;if((c|0)==-1){break m}}c=F[F[l+12>>2]+(c<<2)>>2];if((c|0)==-1){break m}c=c+((c>>>0)%3|0?-1:2)|0;if((c|0)==-1){break m}e=i;if((c|0)!=(g|0)){continue}break}}p=p+1|0;c=F[l+24>>2];if((p|0)>2]-c>>2){continue}break}break h}na();v()}na();v()}oa();v()}na();v()}i=F[a+4>>2];a=F[i+44>>2];c=F[a+100>>2];a=F[a+96>>2];x:{if((c|0)==(a|0)){break x}g=(c-a|0)/12|0;f=g>>>0<=1?1:g;l=f&1;c=0;if(g>>>0>=2){j=f&-2;g=0;while(1){e=L(c,12);f=e+b|0;o=F[f>>2];p=F[f+4>>2];e=a+e|0;F[e+8>>2]=F[f+8>>2];F[e>>2]=o;F[e+4>>2]=p;e=L(c|1,12);f=e+b|0;o=F[f>>2];p=F[f+4>>2];e=a+e|0;F[e+8>>2]=F[f+8>>2];F[e>>2]=o;F[e+4>>2]=p;c=c+2|0;g=g+2|0;if((j|0)!=(g|0)){continue}break}}if(!l){break x}g=L(c,12);c=g+b|0;f=F[c>>2];e=F[c+4>>2];a=a+g|0;F[a+8>>2]=F[c+8>>2];F[a>>2]=f;F[a+4>>2]=e}F[F[i+4>>2]+80>>2]=k-d>>2;e=1}c=e;if(b){ja(b)}if(!d){break d}F[h+20>>2]=d;ja(d)}Z=h+32|0;return c}function de(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,G=0,H=0,I=0,J=0,K=0,M=0,N=0,O=0,P=0;g=Z+-64|0;Z=g;F[a+8>>2]=e;y=a+32|0;f=F[y>>2];d=F[a+36>>2]-f>>2;a:{b:{if(d>>>0>>0){qa(y,e-d|0);F[g+56>>2]=0;F[g+60>>2]=0;F[g+48>>2]=0;F[g+52>>2]=0;F[g+40>>2]=0;F[g+44>>2]=0;F[g+32>>2]=0;F[g+36>>2]=0;F[g+24>>2]=0;F[g+28>>2]=0;F[g+16>>2]=0;F[g+20>>2]=0;F[g>>2]=0;break b}if(d>>>0>e>>>0){F[a+36>>2]=f+(e<<2)}F[g+56>>2]=0;F[g+60>>2]=0;F[g+48>>2]=0;F[g+52>>2]=0;F[g+40>>2]=0;F[g+44>>2]=0;F[g+32>>2]=0;F[g+36>>2]=0;F[g+24>>2]=0;F[g+28>>2]=0;F[g+16>>2]=0;F[g+20>>2]=0;F[g>>2]=0;d=0;if(!e){break a}}Fa(g+16|0,e,g);h=F[g+28>>2];d=F[g+32>>2]}F[g>>2]=0;d=d-h>>2;c:{if(d>>>0>=e>>>0){if(d>>>0<=e>>>0){break c}F[g+32>>2]=(e<<2)+h;break c}Fa(g+16|12,e-d|0,g)}F[g>>2]=0;f=F[g+40>>2];d=F[g+44>>2]-f>>2;d:{if(d>>>0>=e>>>0){if(d>>>0<=e>>>0){break d}F[g+44>>2]=f+(e<<2);break d}Fa(g+40|0,e-d|0,g)}F[g>>2]=0;f=F[g+52>>2];d=F[g+56>>2]-f>>2;e:{if(d>>>0>=e>>>0){if(d>>>0<=e>>>0){break e}F[g+56>>2]=f+(e<<2);break e}Fa(g+52|0,e-d|0,g)}f:{if(F[a+8>>2]<=0){break f}i=F[g+16>>2];j=F[a+32>>2];h=0;while(1){d=h<<2;f=F[d+i>>2];m=F[a+16>>2];g:{if((f|0)>(m|0)){F[d+j>>2]=m;break g}d=d+j|0;m=F[a+12>>2];if((m|0)>(f|0)){F[d>>2]=m;break g}F[d>>2]=f}h=h+1|0;d=F[a+8>>2];if((h|0)<(d|0)){continue}break}if((d|0)<=0){break f}d=0;while(1){i=d<<2;f=i+c|0;i=F[b+i>>2]+F[j+i>>2]|0;F[f>>2]=i;h:{if((i|0)>F[a+16>>2]){i=i-F[a+20>>2]|0}else{if((i|0)>=F[a+12>>2]){break h}i=i+F[a+20>>2]|0}F[f>>2]=i}d=d+1|0;if((d|0)>2]){continue}break}}H=F[a+52>>2];t=F[a+48>>2];z=ka(16);d=z;F[d>>2]=0;F[d+4>>2]=0;F[d+8>>2]=0;F[d+12>>2]=0;F[g+8>>2]=0;F[g>>2]=0;F[g+4>>2]=0;i:{if(e){if(e>>>0>=1073741824){break i}d=e<<2;r=ka(d);F[g>>2]=r;F[g+8>>2]=d+r;ma(r,0,d)}A=1;d=F[a+56>>2];B=F[d>>2];d=F[d+4>>2]-B|0;j:{if((d|0)<8){break j}w=d>>2;I=(w|0)<=2?2:w;J=w>>>0<=1?1:w;C=e&-2;D=e&1;K=e&-4;E=e&3;G=e-1|0;M=e<<2;N=e>>>0<4;A=0;m=1;while(1){k:{l:{m:{n:{if((m|0)!=(J|0)){o:{p:{f=F[(m<<2)+B>>2];if((f|0)==-1){break p}k=1;d=f+2|0;j=(f>>>0)%3|0;x=j?f-1|0:d;s=1<>2];O=n+(x>>>3&536870908)|0;i=0;P=(j|0)!=0|(d|0)!=-1;d=f;q:{while(1){r:{if(F[n+(d>>>3&536870908)>>2]>>>d&1){break r}j=F[F[F[t+64>>2]+12>>2]+(d<<2)>>2];if((j|0)==-1){break r}l=F[H>>2];h=F[t+28>>2];p=F[l+(F[h+(j<<2)>>2]<<2)>>2];if((p|0)>=(m|0)){break r}q=j+1|0;q=F[l+(F[h+(((q>>>0)%3|0?q:j-2|0)<<2)>>2]<<2)>>2];if((q|0)>=(m|0)){break r}h=F[l+(F[h+(j+((j>>>0)%3|0?-1:2)<<2)>>2]<<2)>>2];if((h|0)>=(m|0)){break r}s:{if(!e){break s}j=F[(g+16|0)+L(i,12)>>2];l=L(e,h);q=L(e,q);p=L(e,p);h=0;o=0;if(G){while(1){F[j+(h<<2)>>2]=(F[(h+l<<2)+c>>2]+F[(h+q<<2)+c>>2]|0)-F[(h+p<<2)+c>>2];u=h|1;F[j+(u<<2)>>2]=(F[(l+u<<2)+c>>2]+F[(q+u<<2)+c>>2]|0)-F[(p+u<<2)+c>>2];h=h+2|0;o=o+2|0;if((C|0)!=(o|0)){continue}break}}if(!D){break s}F[j+(h<<2)>>2]=(F[(h+l<<2)+c>>2]+F[(h+q<<2)+c>>2]|0)-F[(h+p<<2)+c>>2]}j=4;i=i+1|0;if((i|0)==4){break q}}t:{if(k&1){h=d-2|0;j=d+1|0;d=-1;j=(j>>>0)%3|0?j:h;if((j|0)==-1|F[n+(j>>>3&536870908)>>2]>>>j&1){break t}j=F[F[F[t+64>>2]+12>>2]+(j<<2)>>2];if((j|0)==-1){break t}d=j+1|0;d=(d>>>0)%3|0?d:j-2|0;break t}u:{if((d>>>0)%3|0){h=d-1|0;break u}h=d+2|0;d=-1;if((h|0)==-1){break t}}d=-1;if(F[n+(h>>>3&536870908)>>2]>>>h&1){break t}j=F[F[F[t+64>>2]+12>>2]+(h<<2)>>2];if((j|0)==-1){break t}if((j>>>0)%3|0){d=j-1|0;break t}d=j+2|0}v:{if((d|0)==(f|0)){break v}if((d|0)==-1&k){if(!P|s&F[O>>2]){break v}d=F[F[F[t+64>>2]+12>>2]+(x<<2)>>2];if((d|0)==-1){break v}k=0;d=(d>>>0)%3|0?d-1|0:d+2|0}if((d|0)!=-1){continue}}break}j=i;if((j|0)<=0){break p}}if(e){ma(r,0,M)}d=j-1|0;q=(d<<2)+z|0;d=L(d,12)+a|0;u=d;x=F[d- -64>>2];k=0;d=F[g>>2];f=0;while(1){i=F[q>>2];F[q>>2]=i+1;if(i>>>0>=x>>>0){break j}w:{if(F[F[u+60>>2]+(i>>>3&536870908)>>2]>>>i&1){break w}f=f+1|0;if(!e){break w}n=F[(g+16|0)+L(k,12)>>2];i=0;h=0;p=0;if(!N){while(1){l=h<<2;o=l+d|0;F[o>>2]=F[l+n>>2]+F[o>>2];o=l|4;s=o+d|0;F[s>>2]=F[n+o>>2]+F[s>>2];o=l|8;s=o+d|0;F[s>>2]=F[n+o>>2]+F[s>>2];l=l|12;o=l+d|0;F[o>>2]=F[l+n>>2]+F[o>>2];h=h+4|0;p=p+4|0;if((K|0)!=(p|0)){continue}break}}if(!E){break w}while(1){l=h<<2;p=l+d|0;F[p>>2]=F[l+n>>2]+F[p>>2];h=h+1|0;i=i+1|0;if((E|0)!=(i|0)){continue}break}}k=k+1|0;if((k|0)!=(j|0)){continue}break}i=L(e,m);if(!f){break o}if(!e){break l}h=0;d=0;if(G){break n}break m}i=L(e,m)}if(F[a+8>>2]<=0){break k}k=(L(m-1|0,e)<<2)+c|0;j=F[y>>2];h=0;while(1){d=h<<2;f=F[d+k>>2];n=F[a+16>>2];x:{if((f|0)>(n|0)){F[d+j>>2]=n;break x}d=d+j|0;n=F[a+12>>2];if((n|0)>(f|0)){F[d>>2]=n;break x}F[d>>2]=f}h=h+1|0;f=F[a+8>>2];if((h|0)<(f|0)){continue}break}d=0;if((f|0)<=0){break k}f=i<<2;h=f+c|0;k=b+f|0;while(1){i=d<<2;f=i+h|0;i=F[i+k>>2]+F[j+i>>2]|0;F[f>>2]=i;y:{if((i|0)>F[a+16>>2]){i=i-F[a+20>>2]|0}else{if((i|0)>=F[a+12>>2]){break y}i=i+F[a+20>>2]|0}F[f>>2]=i}d=d+1|0;if((d|0)>2]){continue}break}break k}ta();v()}while(1){j=h<<2;k=j+r|0;F[k>>2]=F[k>>2]/(f|0);j=(j|4)+r|0;F[j>>2]=F[j>>2]/(f|0);h=h+2|0;d=d+2|0;if((C|0)!=(d|0)){continue}break}}if(!D){break l}d=(h<<2)+r|0;F[d>>2]=F[d>>2]/(f|0)}if(F[a+8>>2]<=0){break k}j=F[y>>2];h=0;while(1){d=h<<2;f=F[d+r>>2];k=F[a+16>>2];z:{if((f|0)>(k|0)){F[d+j>>2]=k;break z}d=d+j|0;k=F[a+12>>2];if((k|0)>(f|0)){F[d>>2]=k;break z}F[d>>2]=f}h=h+1|0;f=F[a+8>>2];if((h|0)<(f|0)){continue}break}d=0;if((f|0)<=0){break k}f=i<<2;h=f+c|0;k=b+f|0;while(1){i=d<<2;f=i+h|0;i=F[i+k>>2]+F[j+i>>2]|0;F[f>>2]=i;A:{if((i|0)>F[a+16>>2]){i=i-F[a+20>>2]|0}else{if((i|0)>=F[a+12>>2]){break A}i=i+F[a+20>>2]|0}F[f>>2]=i}d=d+1|0;if((d|0)>2]){continue}break}}m=m+1|0;A=(w|0)<=(m|0);if((m|0)!=(I|0)){continue}break}}a=F[g>>2];if(a){ja(a)}ja(z);a=F[g+52>>2];if(a){F[g+56>>2]=a;ja(a)}a=F[g+40>>2];if(a){F[g+44>>2]=a;ja(a)}a=F[g+28>>2];if(a){F[g+32>>2]=a;ja(a)}a=F[g+16>>2];if(a){F[g+20>>2]=a;ja(a)}Z=g- -64|0;return A|0}na();v()}function $h(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,G=0,H=0,I=0,J=0,K=0,M=0,N=0;h=Z+-64|0;Z=h;F[a+8>>2]=e;x=a+32|0;f=F[x>>2];d=F[a+36>>2]-f>>2;a:{b:{if(d>>>0>>0){qa(x,e-d|0);F[h+56>>2]=0;F[h+60>>2]=0;F[h+48>>2]=0;F[h+52>>2]=0;F[h+40>>2]=0;F[h+44>>2]=0;F[h+32>>2]=0;F[h+36>>2]=0;F[h+24>>2]=0;F[h+28>>2]=0;F[h+16>>2]=0;F[h+20>>2]=0;F[h>>2]=0;break b}if(d>>>0>e>>>0){F[a+36>>2]=f+(e<<2)}F[h+56>>2]=0;F[h+60>>2]=0;F[h+48>>2]=0;F[h+52>>2]=0;F[h+40>>2]=0;F[h+44>>2]=0;F[h+32>>2]=0;F[h+36>>2]=0;F[h+24>>2]=0;F[h+28>>2]=0;F[h+16>>2]=0;F[h+20>>2]=0;F[h>>2]=0;d=0;if(!e){break a}}Fa(h+16|0,e,h);i=F[h+28>>2];d=F[h+32>>2]}F[h>>2]=0;d=d-i>>2;c:{if(d>>>0>=e>>>0){if(d>>>0<=e>>>0){break c}F[h+32>>2]=(e<<2)+i;break c}Fa(h+16|12,e-d|0,h)}F[h>>2]=0;f=F[h+40>>2];d=F[h+44>>2]-f>>2;d:{if(d>>>0>=e>>>0){if(d>>>0<=e>>>0){break d}F[h+44>>2]=f+(e<<2);break d}Fa(h+40|0,e-d|0,h)}F[h>>2]=0;f=F[h+52>>2];d=F[h+56>>2]-f>>2;e:{if(d>>>0>=e>>>0){if(d>>>0<=e>>>0){break e}F[h+56>>2]=f+(e<<2);break e}Fa(h+52|0,e-d|0,h)}f:{if(F[a+8>>2]<=0){break f}g=F[h+16>>2];j=F[a+32>>2];i=0;while(1){d=i<<2;f=F[d+g>>2];m=F[a+16>>2];g:{if((f|0)>(m|0)){F[d+j>>2]=m;break g}d=d+j|0;m=F[a+12>>2];if((m|0)>(f|0)){F[d>>2]=m;break g}F[d>>2]=f}i=i+1|0;d=F[a+8>>2];if((i|0)<(d|0)){continue}break}if((d|0)<=0){break f}d=0;while(1){g=d<<2;f=g+c|0;g=F[b+g>>2]+F[g+j>>2]|0;F[f>>2]=g;h:{if((g|0)>F[a+16>>2]){g=g-F[a+20>>2]|0}else{if((g|0)>=F[a+12>>2]){break h}g=g+F[a+20>>2]|0}F[f>>2]=g}d=d+1|0;if((d|0)>2]){continue}break}}H=F[a+52>>2];A=F[a+48>>2];y=ka(16);d=y;F[d>>2]=0;F[d+4>>2]=0;F[d+8>>2]=0;F[d+12>>2]=0;F[h+8>>2]=0;F[h>>2]=0;F[h+4>>2]=0;i:{if(e){if(e>>>0>=1073741824){break i}d=e<<2;t=ka(d);F[h>>2]=t;F[h+8>>2]=d+t;ma(t,0,d)}z=1;d=F[a+56>>2];B=F[d>>2];d=F[d+4>>2]-B|0;j:{if((d|0)<8){break j}w=d>>2;I=(w|0)<=2?2:w;J=w>>>0<=1?1:w;C=e&-2;D=e&1;K=e&-4;E=e&3;G=e-1|0;M=e<<2;N=e>>>0<4;z=0;m=1;while(1){k:{l:{m:{n:{if((m|0)!=(J|0)){o:{p:{f=F[(m<<2)+B>>2];if((f|0)==-1){break p}n=F[A+12>>2];d=f+2|0;g=(f>>>0)%3|0;q=n+((g?f-1|0:d)<<2)|0;j=0;u=(g|0)!=0|(d|0)!=-1;k=1;d=f;q:{while(1){g=F[n+(d<<2)>>2];r:{if((g|0)==-1){break r}l=-1;p=F[H>>2];r=F[A>>2];i=p+(F[r+(g<<2)>>2]<<2)|0;o=g+1|0;o=(o>>>0)%3|0?o:g-2|0;if((o|0)!=-1){l=F[r+(o<<2)>>2]}o=F[i>>2];s:{t:{if((g>>>0)%3|0){i=g-1|0;break t}i=g+2|0;s=-1;if((i|0)==-1){break s}}s=F[r+(i<<2)>>2]}if((m|0)<=(o|0)){break r}i=F[p+(l<<2)>>2];if((i|0)>=(m|0)){break r}l=F[p+(s<<2)>>2];if((l|0)>=(m|0)){break r}g=F[(h+16|0)+L(j,12)>>2];u:{if(!e){break u}l=L(e,l);r=L(e,i);p=L(e,o);i=0;s=0;if(G){while(1){F[g+(i<<2)>>2]=(F[(i+l<<2)+c>>2]+F[(i+r<<2)+c>>2]|0)-F[(i+p<<2)+c>>2];o=i|1;F[g+(o<<2)>>2]=(F[(l+o<<2)+c>>2]+F[(o+r<<2)+c>>2]|0)-F[(o+p<<2)+c>>2];i=i+2|0;s=s+2|0;if((C|0)!=(s|0)){continue}break}}if(!D){break u}F[g+(i<<2)>>2]=(F[(i+l<<2)+c>>2]+F[(i+r<<2)+c>>2]|0)-F[(i+p<<2)+c>>2]}g=4;j=j+1|0;if((j|0)==4){break q}}v:{if(k&1){i=d+1|0;d=(i>>>0)%3|0?i:d-2|0;g=-1;if((d|0)==-1){break v}d=F[n+(d<<2)>>2];g=-1;if((d|0)==-1){break v}g=d+1|0;g=(g>>>0)%3|0?g:d-2|0;break v}w:{if((d>>>0)%3|0){i=d-1|0;break w}i=d+2|0;g=-1;if((i|0)==-1){break v}}d=F[n+(i<<2)>>2];g=-1;if((d|0)==-1){break v}g=d-1|0;if((d>>>0)%3|0){break v}g=d+2|0}d=g;x:{if((f|0)==(d|0)){break x}if((d|0)==-1&k){if(!u){break x}d=F[q>>2];if((d|0)==-1){break x}k=0;d=(d>>>0)%3|0?d-1|0:d+2|0}if((d|0)!=-1){continue}}break}g=j;if((g|0)<=0){break p}}if(e){ma(t,0,M)}d=g-1|0;r=(d<<2)+y|0;d=L(d,12)+a|0;o=d;s=F[d- -64>>2];k=0;d=F[h>>2];f=0;while(1){j=F[r>>2];F[r>>2]=j+1;if(j>>>0>=s>>>0){break j}y:{if(F[F[o+60>>2]+(j>>>3&536870908)>>2]>>>j&1){break y}f=f+1|0;if(!e){break y}j=F[(h+16|0)+L(k,12)>>2];l=0;i=0;p=0;if(!N){while(1){n=i<<2;q=n+d|0;F[q>>2]=F[j+n>>2]+F[q>>2];q=n|4;u=q+d|0;F[u>>2]=F[j+q>>2]+F[u>>2];q=n|8;u=q+d|0;F[u>>2]=F[j+q>>2]+F[u>>2];n=n|12;q=n+d|0;F[q>>2]=F[j+n>>2]+F[q>>2];i=i+4|0;p=p+4|0;if((K|0)!=(p|0)){continue}break}}if(!E){break y}while(1){n=i<<2;p=n+d|0;F[p>>2]=F[j+n>>2]+F[p>>2];i=i+1|0;l=l+1|0;if((E|0)!=(l|0)){continue}break}}k=k+1|0;if((k|0)!=(g|0)){continue}break}g=L(e,m);if(!f){break o}if(!e){break l}i=0;d=0;if(G){break n}break m}g=L(e,m)}if(F[a+8>>2]<=0){break k}k=(L(m-1|0,e)<<2)+c|0;j=F[x>>2];i=0;while(1){d=i<<2;f=F[d+k>>2];l=F[a+16>>2];z:{if((f|0)>(l|0)){F[d+j>>2]=l;break z}d=d+j|0;l=F[a+12>>2];if((l|0)>(f|0)){F[d>>2]=l;break z}F[d>>2]=f}i=i+1|0;f=F[a+8>>2];if((i|0)<(f|0)){continue}break}d=0;if((f|0)<=0){break k}f=g<<2;i=f+c|0;k=b+f|0;while(1){g=d<<2;f=g+i|0;g=F[g+k>>2]+F[g+j>>2]|0;F[f>>2]=g;A:{if((g|0)>F[a+16>>2]){g=g-F[a+20>>2]|0}else{if((g|0)>=F[a+12>>2]){break A}g=g+F[a+20>>2]|0}F[f>>2]=g}d=d+1|0;if((d|0)>2]){continue}break}break k}ta();v()}while(1){j=i<<2;k=j+t|0;F[k>>2]=F[k>>2]/(f|0);j=(j|4)+t|0;F[j>>2]=F[j>>2]/(f|0);i=i+2|0;d=d+2|0;if((C|0)!=(d|0)){continue}break}}if(!D){break l}d=(i<<2)+t|0;F[d>>2]=F[d>>2]/(f|0)}if(F[a+8>>2]<=0){break k}j=F[x>>2];i=0;while(1){d=i<<2;f=F[d+t>>2];k=F[a+16>>2];B:{if((f|0)>(k|0)){F[d+j>>2]=k;break B}d=d+j|0;k=F[a+12>>2];if((k|0)>(f|0)){F[d>>2]=k;break B}F[d>>2]=f}i=i+1|0;f=F[a+8>>2];if((i|0)<(f|0)){continue}break}d=0;if((f|0)<=0){break k}f=g<<2;i=f+c|0;k=b+f|0;while(1){g=d<<2;f=g+i|0;g=F[g+k>>2]+F[g+j>>2]|0;F[f>>2]=g;C:{if((g|0)>F[a+16>>2]){g=g-F[a+20>>2]|0}else{if((g|0)>=F[a+12>>2]){break C}g=g+F[a+20>>2]|0}F[f>>2]=g}d=d+1|0;if((d|0)>2]){continue}break}}m=m+1|0;z=(w|0)<=(m|0);if((m|0)!=(I|0)){continue}break}}a=F[h>>2];if(a){ja(a)}ja(y);a=F[h+52>>2];if(a){F[h+56>>2]=a;ja(a)}a=F[h+40>>2];if(a){F[h+44>>2]=a;ja(a)}a=F[h+28>>2];if(a){F[h+32>>2]=a;ja(a)}a=F[h+16>>2];if(a){F[h+20>>2]=a;ja(a)}Z=h- -64|0;return z|0}na();v()}function Yh(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,E=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,$=0,aa=0,ba=0,ca=0;a:{b:{if((e|0)!=2){break b}F[a+8>>2]=2;F[a- -64>>2]=f;N=a+32|0;e=F[N>>2];d=F[a+36>>2]-e|0;c:{if(d>>>0<=7){qa(N,2-(d>>>2|0)|0);break c}if((d|0)==8){break c}F[a+36>>2]=e+8}j=1;d=F[a+56>>2];d=F[d+4>>2]-F[d>>2]|0;if((d|0)<=0){break b}o=a+60|0;d=d>>>2|0;$=d>>>0<=1?1:d;aa=a+68|0;d=0;while(1){f=F[a+56>>2];e=F[f>>2];if(F[f+4>>2]-e>>2>>>0<=d>>>0){break a}l=Z-80|0;Z=l;f=-1;d:{e:{e=F[e+(d<<2)>>2];if((e|0)==-1){break e}j=F[o+32>>2];g=e+1|0;g=(g>>>0)%3|0?g:e-2|0;if((g|0)!=-1){f=F[F[j>>2]+(g<<2)>>2]}n=-1;e=e+((e>>>0)%3|0?-1:2)|0;if((e|0)!=-1){n=F[F[j>>2]+(e<<2)>>2]}j=F[o+36>>2];e=F[j>>2];j=F[j+4>>2]-e>>2;if(j>>>0<=f>>>0|j>>>0<=n>>>0){break e}f:{g:{h:{i:{j:{k:{i=F[e+(n<<2)>>2];f=F[e+(f<<2)>>2];if((i|0)>=(d|0)|(f|0)>=(d|0)){break k}j=(i<<3)+c|0;u=F[j+4>>2];g=(f<<3)+c|0;e=F[g+4>>2];A=F[j>>2];j=F[g>>2];if(!((A|0)!=(j|0)|(e|0)!=(u|0))){F[o+8>>2]=j;F[o+12>>2]=e;break j}n=F[F[o+4>>2]+(d<<2)>>2];F[l+72>>2]=0;F[l+76>>2]=0;g=l- -64|0;F[g>>2]=0;F[g+4>>2]=0;F[l+56>>2]=0;F[l+60>>2]=0;g=F[o>>2];if(!G[g+84|0]){n=F[F[g+68>>2]+(n<<2)>>2]}Ga(g,n,D[g+24|0],l+56|0);n=F[F[o+4>>2]+(f<<2)>>2];F[l+48>>2]=0;F[l+52>>2]=0;F[l+40>>2]=0;F[l+44>>2]=0;F[l+32>>2]=0;F[l+36>>2]=0;g=F[o>>2];if(!G[g+84|0]){n=F[F[g+68>>2]+(n<<2)>>2]}Ga(g,n,D[g+24|0],l+32|0);n=F[F[o+4>>2]+(i<<2)>>2];F[l+24>>2]=0;F[l+28>>2]=0;F[l+16>>2]=0;F[l+20>>2]=0;F[l+8>>2]=0;F[l+12>>2]=0;g=F[o>>2];if(!G[g+84|0]){n=F[F[g+68>>2]+(n<<2)>>2]}Ga(g,n,D[g+24|0],l+8|0);g=F[l+16>>2];w=F[l+40>>2];B=g-w|0;O=F[l+44>>2];g=F[l+20>>2]-(O+(g>>>0>>0)|0)|0;J=g;i=ki(B,g,B,g);m=_;g=F[l+8>>2];C=F[l+32>>2];E=g-C|0;P=F[l+36>>2];g=F[l+12>>2]-(P+(g>>>0>>0)|0)|0;K=g;k=i;i=ki(E,g,E,g);g=k+i|0;k=_+m|0;k=g>>>0>>0?k+1|0:k;i=F[l+24>>2];H=F[l+48>>2];I=i-H|0;Q=F[l+52>>2];i=F[l+28>>2]-(Q+(i>>>0>>0)|0)|0;L=i;h=g;g=ki(I,i,I,i);q=h+g|0;h=_+k|0;r=g>>>0>q>>>0?h+1|0:h;if(!(r|q)){break k}n=0;x=mi(-1,2147483647,q,r);f=j>>31;S=f;h=f>>31;R=j;g=h;m=j^g;j=m-g|0;f=(f^g)-((g>>>0>m>>>0)+g|0)|0;g=f;f=e>>31;T=f;M=e;e=f>>31;m=M^e;h=m-e|0;k=f>>31;e=(k^f)-((e>>>0>m>>>0)+k|0)|0;f=(g|0)==(e|0)&h>>>0>>0|e>>>0>>0;j=f?j:h;i=_;e=f?g:e;if((i|0)==(e|0)&j>>>0>x>>>0|e>>>0>i>>>0){break f}j=F[l+64>>2];U=F[l+68>>2];e=ki(j-w|0,U-((j>>>0>>0)+O|0)|0,B,J);f=_;g=F[l+56>>2];V=F[l+60>>2];i=ki(g-C|0,V-((g>>>0>>0)+P|0)|0,E,K);e=i+e|0;h=_+f|0;m=F[l+72>>2];W=F[l+76>>2];f=ki(m-H|0,W-((m>>>0>>0)+Q|0)|0,I,L);y=f+e|0;e=_+(e>>>0>>0?h+1|0:h)|0;e=f>>>0>y>>>0?e+1|0:e;x=e;f=e;e=e>>31;i=e;h=e^y;e=h-e|0;i=(f^i)-((h>>>0>>0)+i|0)|0;f=A;A=f-R|0;f=(f>>31)-((f>>>0>>0)+S|0)|0;X=f;z=f>>31;p=z^A;k=p-z|0;h=f>>31;f=(h^f)-((p>>>0>>0)+h|0)|0;p=f;z=u-M|0;f=(u>>31)-((u>>>0>>0)+T|0)|0;u=f;s=f>>31;t=s^z;Y=t-s|0;h=f>>31;f=(h^f)-((s>>>0>t>>>0)+h|0)|0;h=(p|0)==(f|0)&k>>>0>Y>>>0|f>>>0

>>0;f=mi(-1,2147483647,h?k:Y,h?p:f);h=_;if((h|0)==(i|0)&e>>>0>f>>>0|h>>>0>>0){break f}f=e;e=i;h=K>>31;p=h^E;i=p-h|0;h=(h^K)-((h>>>0>p>>>0)+h|0)|0;k=J>>31;s=k^B;t=s-k|0;k=(k^J)-((k>>>0>s>>>0)+k|0)|0;p=(h|0)==(k|0)&i>>>0>t>>>0|h>>>0>k>>>0;i=p?i:t;h=p?h:k;k=L>>31;p=i;s=k^I;t=s-k|0;k=(k^L)-((k>>>0>s>>>0)+k|0)|0;i=(h|0)==(k|0)&i>>>0>t>>>0|h>>>0>k>>>0;i=mi(-1,2147483647,i?p:t,i?h:k);h=_;if((h|0)==(e|0)&f>>>0>i>>>0|e>>>0>h>>>0){break f}i=1;f=0;k=li(ki(y,x,B,J),_,q,r);h=k+w|0;e=_+O|0;e=h>>>0>>0?e+1|0:e;k=j-h|0;e=U-((h>>>0>j>>>0)+e|0)|0;k=ki(k,e,k,e);w=_;h=li(ki(y,x,E,K),_,q,r);j=h+C|0;e=_+P|0;e=h>>>0>j>>>0?e+1|0:e;h=g-j|0;e=V-((g>>>0>>0)+e|0)|0;j=ki(h,e,h,e);e=j+k|0;h=_+w|0;h=e>>>0>>0?h+1|0:h;k=e;g=li(ki(y,x,I,L),_,q,r);j=g+H|0;e=_+Q|0;e=g>>>0>j>>>0?e+1|0:e;g=m-j|0;e=W-((j>>>0>m>>>0)+e|0)|0;g=ki(g,e,g,e);j=g+k|0;e=_+h|0;j=ki(j,g>>>0>j>>>0?e+1|0:e,q,r);e=_;m=e;if(!e&j>>>0<=1){break i}h=j;g=m;while(1){e=f<<1|i>>>31;i=i<<1;f=e;k=!g&h>>>0>7|(g|0)!=0;h=(g&3)<<30|h>>>2;g=g>>>2|0;if(k){continue}break}break h}g=o;if((d|0)>(f|0)){e=f<<1}else{if((d|0)<=0){F[o+8>>2]=0;F[o+12>>2]=0;break j}e=(d<<1)-2|0}e=(e<<2)+c|0;F[g+8>>2]=F[e>>2];F[o+12>>2]=F[e+4>>2]}n=1;break f}f=m;i=j;if(j-1|0){break g}}while(1){e=mi(j,m,i,f);h=f+_|0;e=e+i|0;h=e>>>0>>0?h+1|0:h;i=(h&1)<<31|e>>>1;f=h>>>1|0;e=ki(i,f,i,f);g=_;if((m|0)==(g|0)&e>>>0>j>>>0|g>>>0>m>>>0){continue}break}}e=F[o+20>>2];if(!e){break f}j=e-1|0;m=F[F[o+16>>2]+(j>>>3&536870908)>>2];F[o+20>>2]=j;n=1;e=ki(y,x,z,u);h=_;g=e;e=ki(q,r,M,T);g=g+e|0;h=_+h|0;h=e>>>0>g>>>0?h+1|0:h;e=ki(i,f,A,X);j=m>>>j&1;m=j?0-e|0:e;g=m+g|0;k=h;h=_;k=k+(j?0-(h+((e|0)!=0)|0)|0:h)|0;ba=o,ca=li(g,g>>>0>>0?k+1|0:k,q,r),F[ba+12>>2]=ca;e=ki(y,x,A,X);m=_;g=e;e=ki(q,r,R,S);g=g+e|0;h=_+m|0;h=e>>>0>g>>>0?h+1|0:h;e=ki(i,f,z,u);f=0-e|0;i=_;k=(j?i:0-(((e|0)!=0)+i|0)|0)+h|0;i=g;g=j?e:f;f=i+g|0;ba=o,ca=li(f,f>>>0>>0?k+1|0:k,q,r),F[ba+8>>2]=ca}Z=l+80|0;e=n;break d}ta();v()}j=e;if(!e){return 0}l:{if(F[a+8>>2]<=0){break l}i=F[N>>2];e=0;while(1){f=e<<2;g=F[f+aa>>2];m=F[a+16>>2];m:{if((g|0)>(m|0)){F[f+i>>2]=m;break m}f=f+i|0;m=F[a+12>>2];if((m|0)>(g|0)){F[f>>2]=m;break m}F[f>>2]=g}e=e+1|0;g=F[a+8>>2];if((e|0)<(g|0)){continue}break}f=0;if((g|0)<=0){break l}e=d<<3;m=e+c|0;n=b+e|0;while(1){g=f<<2;e=g+m|0;g=F[g+n>>2]+F[g+i>>2]|0;F[e>>2]=g;n:{if((g|0)>F[a+16>>2]){g=g-F[a+20>>2]|0}else{if((g|0)>=F[a+12>>2]){break n}g=g+F[a+20>>2]|0}F[e>>2]=g}f=f+1|0;if((f|0)>2]){continue}break}}d=d+1|0;if(($|0)!=(d|0)){continue}break}}return j|0}ta();v()}function hi(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,E=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,$=0,aa=0,ba=0,ca=0;a:{b:{if((e|0)!=2){break b}F[a+8>>2]=2;F[a- -64>>2]=f;N=a+32|0;e=F[N>>2];d=F[a+36>>2]-e|0;c:{if(d>>>0<=7){qa(N,2-(d>>>2|0)|0);break c}if((d|0)==8){break c}F[a+36>>2]=e+8}o=1;d=F[a+56>>2];d=F[d+4>>2]-F[d>>2]|0;if((d|0)<=0){break b}n=a+60|0;d=d>>>2|0;$=d>>>0<=1?1:d;aa=a+68|0;d=0;while(1){e=F[a+56>>2];i=F[e>>2];if(F[e+4>>2]-i>>2>>>0<=d>>>0){break a}l=Z-80|0;Z=l;f=-1;i=F[i+(d<<2)>>2];e=-1;d:{if((i|0)==-1){break d}e=i+1|0;f=(e>>>0)%3|0?e:i-2|0;e=i-1|0;if((i>>>0)%3|0){break d}e=i+2|0}g=F[n+36>>2];i=F[g>>2];e:{f:{g:{h:{i:{g=F[g+4>>2]-i>>2;k=f<<2;f=F[F[n+32>>2]+28>>2];j=F[k+f>>2];if(g>>>0<=j>>>0){break i}e=F[f+(e<<2)>>2];if(e>>>0>=g>>>0){break i}f=F[i+(j<<2)>>2];j:{k:{j=F[i+(e<<2)>>2];if((d|0)<=(f|0)|(j|0)>=(d|0)){break k}i=(j<<3)+c|0;u=F[i+4>>2];g=(f<<3)+c|0;e=F[g+4>>2];A=F[i>>2];i=F[g>>2];if(!((A|0)!=(i|0)|(e|0)!=(u|0))){F[n+8>>2]=i;F[n+12>>2]=e;break j}o=F[F[n+4>>2]+(d<<2)>>2];F[l+72>>2]=0;F[l+76>>2]=0;g=l- -64|0;F[g>>2]=0;F[g+4>>2]=0;F[l+56>>2]=0;F[l+60>>2]=0;g=F[n>>2];if(!G[g+84|0]){o=F[F[g+68>>2]+(o<<2)>>2]}Ga(g,o,D[g+24|0],l+56|0);o=F[F[n+4>>2]+(f<<2)>>2];F[l+48>>2]=0;F[l+52>>2]=0;F[l+40>>2]=0;F[l+44>>2]=0;F[l+32>>2]=0;F[l+36>>2]=0;g=F[n>>2];if(!G[g+84|0]){o=F[F[g+68>>2]+(o<<2)>>2]}Ga(g,o,D[g+24|0],l+32|0);o=F[F[n+4>>2]+(j<<2)>>2];F[l+24>>2]=0;F[l+28>>2]=0;F[l+16>>2]=0;F[l+20>>2]=0;F[l+8>>2]=0;F[l+12>>2]=0;g=F[n>>2];if(!G[g+84|0]){o=F[F[g+68>>2]+(o<<2)>>2]}Ga(g,o,D[g+24|0],l+8|0);g=F[l+16>>2];w=F[l+40>>2];B=g-w|0;O=F[l+44>>2];g=F[l+20>>2]-(O+(g>>>0>>0)|0)|0;J=g;j=ki(B,g,B,g);m=_;g=F[l+8>>2];C=F[l+32>>2];E=g-C|0;P=F[l+36>>2];g=F[l+12>>2]-(P+(g>>>0>>0)|0)|0;K=g;k=j;j=ki(E,g,E,g);g=k+j|0;k=_+m|0;k=g>>>0>>0?k+1|0:k;j=F[l+24>>2];H=F[l+48>>2];I=j-H|0;Q=F[l+52>>2];j=F[l+28>>2]-(Q+(j>>>0>>0)|0)|0;L=j;h=g;g=ki(I,j,I,j);q=h+g|0;h=_+k|0;r=g>>>0>q>>>0?h+1|0:h;if(!(r|q)){break k}o=0;x=mi(-1,2147483647,q,r);f=i>>31;S=f;h=f>>31;R=i;g=h;m=i^g;i=m-g|0;f=(f^g)-((g>>>0>m>>>0)+g|0)|0;g=f;f=e>>31;T=f;M=e;e=f>>31;m=M^e;h=m-e|0;k=f>>31;e=(k^f)-((e>>>0>m>>>0)+k|0)|0;f=(g|0)==(e|0)&h>>>0>>0|e>>>0>>0;i=f?i:h;j=_;e=f?g:e;if((j|0)==(e|0)&i>>>0>x>>>0|e>>>0>j>>>0){break e}i=F[l+64>>2];U=F[l+68>>2];e=ki(i-w|0,U-((i>>>0>>0)+O|0)|0,B,J);f=_;g=F[l+56>>2];V=F[l+60>>2];j=ki(g-C|0,V-((g>>>0>>0)+P|0)|0,E,K);e=j+e|0;h=_+f|0;m=F[l+72>>2];W=F[l+76>>2];f=ki(m-H|0,W-((m>>>0>>0)+Q|0)|0,I,L);y=f+e|0;e=_+(e>>>0>>0?h+1|0:h)|0;e=f>>>0>y>>>0?e+1|0:e;x=e;f=e;e=e>>31;j=e;h=e^y;e=h-e|0;j=(f^j)-((h>>>0>>0)+j|0)|0;f=A;A=f-R|0;f=(f>>31)-((f>>>0>>0)+S|0)|0;X=f;z=f>>31;p=z^A;k=p-z|0;h=f>>31;f=(h^f)-((p>>>0>>0)+h|0)|0;p=f;z=u-M|0;f=(u>>31)-((u>>>0>>0)+T|0)|0;u=f;s=f>>31;t=s^z;Y=t-s|0;h=f>>31;f=(h^f)-((s>>>0>t>>>0)+h|0)|0;h=(p|0)==(f|0)&k>>>0>Y>>>0|f>>>0

>>0;f=mi(-1,2147483647,h?k:Y,h?p:f);h=_;if((h|0)==(j|0)&e>>>0>f>>>0|h>>>0>>0){break e}f=e;e=j;h=K>>31;p=h^E;j=p-h|0;h=(h^K)-((h>>>0>p>>>0)+h|0)|0;k=J>>31;s=k^B;t=s-k|0;k=(k^J)-((k>>>0>s>>>0)+k|0)|0;p=(h|0)==(k|0)&j>>>0>t>>>0|h>>>0>k>>>0;j=p?j:t;h=p?h:k;k=L>>31;p=j;s=k^I;t=s-k|0;k=(k^L)-((k>>>0>s>>>0)+k|0)|0;j=(h|0)==(k|0)&j>>>0>t>>>0|h>>>0>k>>>0;j=mi(-1,2147483647,j?p:t,j?h:k);h=_;if((h|0)==(e|0)&f>>>0>j>>>0|e>>>0>h>>>0){break e}j=1;f=0;k=li(ki(y,x,B,J),_,q,r);h=k+w|0;e=_+O|0;e=h>>>0>>0?e+1|0:e;k=i-h|0;e=U-((h>>>0>i>>>0)+e|0)|0;k=ki(k,e,k,e);w=_;h=li(ki(y,x,E,K),_,q,r);i=h+C|0;e=_+P|0;e=h>>>0>i>>>0?e+1|0:e;h=g-i|0;e=V-((g>>>0>>0)+e|0)|0;i=ki(h,e,h,e);e=i+k|0;h=_+w|0;h=e>>>0>>0?h+1|0:h;k=e;g=li(ki(y,x,I,L),_,q,r);i=g+H|0;e=_+Q|0;e=g>>>0>i>>>0?e+1|0:e;g=m-i|0;e=W-((i>>>0>m>>>0)+e|0)|0;g=ki(g,e,g,e);i=g+k|0;e=_+h|0;i=ki(i,g>>>0>i>>>0?e+1|0:e,q,r);e=_;m=e;if(!e&i>>>0<=1){break h}h=i;g=m;while(1){e=f<<1|j>>>31;j=j<<1;f=e;k=!g&h>>>0>7|(g|0)!=0;h=(g&3)<<30|h>>>2;g=g>>>2|0;if(k){continue}break}break g}g=n;if((d|0)>(f|0)){e=f<<1}else{if((d|0)<=0){F[n+8>>2]=0;F[n+12>>2]=0;break j}e=(d<<1)-2|0}e=(e<<2)+c|0;F[g+8>>2]=F[e>>2];F[n+12>>2]=F[e+4>>2]}o=1;break e}ta();v()}f=m;j=i;if(i-1|0){break f}}while(1){e=mi(i,m,j,f);h=f+_|0;e=e+j|0;h=e>>>0>>0?h+1|0:h;j=(h&1)<<31|e>>>1;f=h>>>1|0;e=ki(j,f,j,f);g=_;if((m|0)==(g|0)&e>>>0>i>>>0|g>>>0>m>>>0){continue}break}}e=F[n+20>>2];if(!e){break e}i=e-1|0;m=F[F[n+16>>2]+(i>>>3&536870908)>>2];F[n+20>>2]=i;o=1;e=ki(y,x,z,u);h=_;g=e;e=ki(q,r,M,T);g=g+e|0;h=_+h|0;h=e>>>0>g>>>0?h+1|0:h;e=ki(j,f,A,X);i=m>>>i&1;m=i?0-e|0:e;g=m+g|0;k=h;h=_;k=k+(i?0-(h+((e|0)!=0)|0)|0:h)|0;ba=n,ca=li(g,g>>>0>>0?k+1|0:k,q,r),F[ba+12>>2]=ca;e=ki(y,x,A,X);m=_;g=e;e=ki(q,r,R,S);g=g+e|0;h=_+m|0;h=e>>>0>g>>>0?h+1|0:h;e=ki(j,f,z,u);f=0-e|0;j=_;k=(i?j:0-(((e|0)!=0)+j|0)|0)+h|0;j=g;g=i?e:f;f=j+g|0;ba=n,ca=li(f,f>>>0>>0?k+1|0:k,q,r),F[ba+8>>2]=ca}Z=l+80|0;if(!o){return 0}l:{if(F[a+8>>2]<=0){break l}g=F[N>>2];e=0;while(1){f=e<<2;i=F[f+aa>>2];j=F[a+16>>2];m:{if((i|0)>(j|0)){F[f+g>>2]=j;break m}f=f+g|0;j=F[a+12>>2];if((j|0)>(i|0)){F[f>>2]=j;break m}F[f>>2]=i}e=e+1|0;i=F[a+8>>2];if((e|0)<(i|0)){continue}break}f=0;if((i|0)<=0){break l}e=d<<3;j=e+c|0;m=b+e|0;while(1){i=f<<2;e=i+j|0;i=F[i+m>>2]+F[g+i>>2]|0;F[e>>2]=i;n:{if((i|0)>F[a+16>>2]){k=i-F[a+20>>2]|0}else{if((i|0)>=F[a+12>>2]){break n}k=i+F[a+20>>2]|0}F[e>>2]=k}f=f+1|0;if((f|0)>2]){continue}break}}d=d+1|0;if(($|0)!=(d|0)){continue}break}}return o|0}ta();v()}function Gd(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;n=Z-96|0;Z=n;m=F[a+4>>2];d=F[m+32>>2];j=F[d+8>>2];i=F[d+12>>2];e=i;c=F[d+20>>2];f=F[d+16>>2];a:{if((e|0)<=(c|0)&f>>>0>=j>>>0|(c|0)>(e|0)){break a}o=F[d>>2];h=G[o+f|0];g=f+1|0;e=g?c:c+1|0;F[d+16>>2]=g;F[d+20>>2]=e;if((e|0)>=(i|0)&g>>>0>=j>>>0|(e|0)>(i|0)){break a}p=G[g+o|0];g=f+2|0;e=g>>>0<2?c+1|0:c;F[d+16>>2]=g;F[d+20>>2]=e;l=h<<24>>24;b:{if((l|0)>=0){k=F[a+216>>2];if(h>>>0>=(F[a+220>>2]-k|0)/144>>>0){break a}k=k+L(h,144)|0;if(F[k>>2]<0){break b}break a}if(F[a+212>>2]>=0){break a}k=a+212|0}F[k>>2]=b;c:{d:{e:{f:{g:{h:{k=H[m+36>>1];i:{if(((k<<8|k>>>8)&65535)>>>0>=258){if((e|0)>=(i|0)&g>>>0>=j>>>0|(e|0)>(i|0)){break a}e=G[g+o|0];f=f+3|0;c=f>>>0<3?c+1|0:c;F[d+16>>2]=f;F[d+20>>2]=c;if(e>>>0>1){break a}d=e>>>0<2?e:0;if(!p){break i}if(!d){break h}break a}if(p){break g}d=0}if((l|0)<0){e=a+184|0}else{c=F[a+216>>2]+L(h,144)|0;D[c+100|0]=0;e=c+104|0}if((d|0)!=1){break e}c=Z-112|0;Z=c;g=F[F[a+4>>2]+44>>2];d=ka(120);F[d>>2]=8924;F[d+4>>2]=0;F[d+116>>2]=0;F[d+112>>2]=e;F[d+108>>2]=g;F[d+12>>2]=0;F[d+16>>2]=0;F[d+20>>2]=0;F[d+24>>2]=0;F[d+28>>2]=0;F[d+32>>2]=0;F[d+36>>2]=0;F[d+40>>2]=0;F[d+44>>2]=0;F[d+48>>2]=0;F[d+52>>2]=0;F[d+56>>2]=0;F[d+60>>2]=0;F[d+8>>2]=9136;f=d- -64|0;F[f>>2]=0;F[f+4>>2]=0;F[d+72>>2]=0;F[d+76>>2]=0;F[d+80>>2]=0;F[d+84>>2]=0;F[d+88>>2]=0;F[d+104>>2]=0;F[d+96>>2]=0;F[d+100>>2]=0;f=F[a+8>>2];F[c+48>>2]=0;F[c+52>>2]=0;F[c+40>>2]=0;F[c+44>>2]=0;j=c+32|0;F[j>>2]=0;F[j+4>>2]=0;F[c+24>>2]=0;F[c+28>>2]=0;h=c- -64|0;F[h>>2]=0;F[h+4>>2]=0;F[c+72>>2]=0;F[c+76>>2]=0;F[c+80>>2]=0;F[c+84>>2]=0;F[c+88>>2]=0;F[c+104>>2]=0;F[c+16>>2]=0;F[c+20>>2]=0;F[c+56>>2]=0;F[c+60>>2]=0;F[c+8>>2]=9136;F[c+96>>2]=0;F[c+100>>2]=0;F[c+12>>2]=f;h=F[f>>2];i=F[f+4>>2];D[c+111|0]=0;k=j;j=c+111|0;Ea(k,(i-h>>2>>>0)/3|0,j);h=F[c+12>>2];i=F[h+28>>2];h=F[h+24>>2];D[c+111|0]=0;Ea(c+44|0,i-h>>2,j);F[c+28>>2]=d;F[c+24>>2]=g;F[c+20>>2]=e;F[c+16>>2]=f;f=d+8|0;e=c+8|0;lc(f,e);j:{if((e|0)==(f|0)){F[d+92>>2]=F[e+84>>2];break j}gb(d+56|0,F[e+48>>2],F[e+52>>2]);gb(d+68|0,F[e+60>>2],F[e- -64>>2]);gb(d+80|0,F[e+72>>2],F[e+76>>2]);F[d+92>>2]=F[e+84>>2];k:{h=F[e+92>>2];j=F[e+88>>2];i=h-j|0;e=i>>2;f=F[d+104>>2];g=F[d+96>>2];if(e>>>0<=f-g>>2>>>0){i=F[d+100>>2]-g|0;f=i+j|0;m=i>>2;i=e>>>0>m>>>0?f:h;l=i-j|0;if((i|0)!=(j|0)){pa(g,j,l)}if(e>>>0>m>>>0){e=F[d+100>>2];if((h|0)!=(i|0)){while(1){F[e>>2]=F[f>>2];e=e+4|0;f=f+4|0;if((h|0)!=(f|0)){continue}break}}F[d+100>>2]=e;break k}F[d+100>>2]=g+l;break k}if(g){F[d+100>>2]=g;ja(g);F[d+104>>2]=0;F[d+96>>2]=0;F[d+100>>2]=0;f=0}l:{if((i|0)<0){break l}g=f>>>1|0;e=f>>>0>=2147483644?1073741823:e>>>0>>0?g:e;if(e>>>0>=1073741824){break l}f=e<<2;e=ka(f);F[d+96>>2]=e;F[d+104>>2]=e+f;if((h|0)!=(j|0)){f=e;e=(i-4&-4)+4|0;e=la(f,j,e)+e|0}F[d+100>>2]=e;break k}na();v()}}F[c+8>>2]=9136;e=F[c+96>>2];if(e){F[c+100>>2]=e;ja(e)}e=F[c+80>>2];if(e){F[c+84>>2]=e;ja(e)}e=F[c+68>>2];if(e){F[c+72>>2]=e;ja(e)}e=F[c+56>>2];if(e){F[c+60>>2]=e;ja(e)}F[c+8>>2]=9372;e=F[c+44>>2];if(e){ja(e)}e=F[c+32>>2];if(e){ja(e)}Z=c+112|0;break d}if((l|0)>=0){break f}break a}if((l|0)<0){break a}}e=F[a+216>>2];c=F[m+44>>2];d=ka(80);F[d>>2]=9684;F[d+4>>2]=0;F[d+76>>2]=0;F[d+68>>2]=c;F[d+8>>2]=8624;F[d+12>>2]=0;F[d+16>>2]=0;F[d+20>>2]=0;F[d+24>>2]=0;F[d+28>>2]=0;F[d+32>>2]=0;F[d+36>>2]=0;F[d+40>>2]=0;F[d+44>>2]=0;F[d+48>>2]=0;F[d+52>>2]=0;e=e+L(h,144)|0;f=e+104|0;F[d+72>>2]=f;F[d- -64>>2]=0;F[d+56>>2]=0;F[d+60>>2]=0;F[n+24>>2]=c;c=n;F[c+68>>2]=0;F[c+72>>2]=0;F[c+60>>2]=0;F[c+64>>2]=0;F[c+52>>2]=0;F[c+56>>2]=0;F[c+44>>2]=0;F[c+48>>2]=0;F[c+84>>2]=0;F[c+88>>2]=0;F[c+76>>2]=0;F[c+80>>2]=0;F[c+28>>2]=d;g=F[c+28>>2];F[c+8>>2]=F[c+24>>2];F[c+12>>2]=g;F[c+20>>2]=f;f=e+4|0;F[c+16>>2]=f;F[c+36>>2]=0;F[c+40>>2]=0;F[c+32>>2]=8624;e=F[c+20>>2];F[c>>2]=F[c+16>>2];F[c+4>>2]=e;e=c+32|0;Fd(e,f,c);c=d+8|0;lc(c,e);if((c|0)!=(e|0)){gb(d+56|0,F[e+48>>2],F[e+52>>2])}Ed(e);break c}c=Z+-64|0;Z=c;g=F[F[a+4>>2]+44>>2];d=ka(80);F[d>>2]=9392;F[d+4>>2]=0;F[d+76>>2]=0;F[d+72>>2]=e;F[d+68>>2]=g;F[d+8>>2]=9556;F[d+12>>2]=0;F[d+16>>2]=0;F[d+20>>2]=0;F[d+24>>2]=0;F[d+28>>2]=0;F[d+32>>2]=0;F[d+36>>2]=0;F[d+40>>2]=0;F[d+44>>2]=0;F[d+48>>2]=0;F[d+52>>2]=0;F[d- -64>>2]=0;j=d+56|0;f=j;F[f>>2]=0;F[f+4>>2]=0;f=F[a+8>>2];F[c+40>>2]=0;F[c+44>>2]=0;F[c+32>>2]=0;F[c+36>>2]=0;h=c+24|0;F[h>>2]=0;F[h+4>>2]=0;F[c+16>>2]=0;F[c+20>>2]=0;F[c+56>>2]=0;F[c+8>>2]=0;F[c+12>>2]=0;F[c+48>>2]=0;F[c+52>>2]=0;F[c>>2]=9556;F[c+4>>2]=f;i=F[f>>2];l=F[f+4>>2];D[c+63|0]=0;k=h;h=c+63|0;Ea(k,(l-i>>2>>>0)/3|0,h);i=F[c+4>>2];l=F[i+28>>2];i=F[i+24>>2];D[c+63|0]=0;Ea(c+36|0,l-i>>2,h);F[c+20>>2]=d;F[c+16>>2]=g;F[c+12>>2]=e;F[c+8>>2]=f;lc(d+8|0,c);gb(j,F[c+48>>2],F[c+52>>2]);F[c>>2]=9556;e=F[c+48>>2];if(e){F[c+52>>2]=e;ja(e)}F[c>>2]=9372;e=F[c+36>>2];if(e){ja(e)}e=F[c+24>>2];if(e){ja(e)}Z=c- -64|0}if(!d){break a}}d=yc(ka(64),d);c=F[a+4>>2];a=d;d=b;m:{n:{if((d|0)>=0){g=c+8|0;b=F[c+12>>2];j=F[c+8>>2];e=b-j>>2;o:{if((e|0)>(d|0)){break o}f=d+1|0;if(d>>>0>=e>>>0){Pb(g,f-e|0);break o}if(e>>>0<=f>>>0){break o}f=j+(f<<2)|0;if((f|0)!=(b|0)){while(1){b=b-4|0;e=F[b>>2];F[b>>2]=0;if(e){$[F[F[e>>2]+4>>2]](e)}if((b|0)!=(f|0)){continue}break}}F[c+12>>2]=f}c=F[g>>2]+(d<<2)|0;b=F[c>>2];F[c>>2]=a;if(b){break n}break m}b=a;if(!a){break m}}$[F[F[b>>2]+4>>2]](b)}q=(d^-1)>>>31|0}Z=n+96|0;return q|0}function Ab(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=M(0),n=M(0),o=0;a:{b:{if(!d){break b}c:{switch(F[a+28>>2]-1|0){case 0:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[a>>2];h=F[e>>2];k=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}E[(g<<1)+d>>1]=D[b|0];b=b+1|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 1:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[a>>2];h=F[e>>2];k=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}E[(g<<1)+d>>1]=G[b|0];b=b+1|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 2:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[a>>2];h=F[e>>2];k=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}E[(g<<1)+d>>1]=H[b>>1];b=b+2|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 3:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[a>>2];h=F[e>>2];k=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){return 0}e=E[b>>1];if((e|0)<0){break b}E[(g<<1)+d>>1]=e;b=b+2|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 4:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[a>>2];h=F[e>>2];k=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}e=F[b>>2];if(e+32768>>>0>65535){break b}E[(g<<1)+d>>1]=e;b=b+4|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 5:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[a>>2];h=F[e>>2];k=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}e=F[b>>2];if(e>>>0>32767){break b}E[(g<<1)+d>>1]=e;b=b+4|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 6:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[a>>2];h=F[e>>2];k=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;k=F[e+4>>2];while(1){if(b>>>0>=k>>>0){break b}h=F[b+4>>2];e=F[b>>2];i=e+32768|0;h=i>>>0<32768?h+1|0:h;if(!h&i>>>0>65535|h){break b}E[(g<<1)+d>>1]=e;b=b+8|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 7:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[a>>2];h=F[e>>2];k=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}k=F[b+4>>2];e=F[b>>2];if(!k&e>>>0>32767|k){break b}E[(g<<1)+d>>1]=e;b=b+8|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 8:d:{e:{e=G[a+24|0];c=c&255;if(!(c>>>0>e>>>0?e:c)){break e}e=F[a>>2];j=F[e>>2];g=j;f=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+f|0;g=b+g|0;f=F[e+4>>2];e=f-j|0;if(!G[a+32|0]){j=0;if((b|0)>=(e|0)){break d}b=0;while(1){m=J[g>>2];if(m>=M(32767)|m>1]=i;b=b+1|0;e=G[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break e}g=g+4|0;if(f>>>0>g>>>0){continue}break}break d}j=0;if((b|0)>=(e|0)){break d}b=0;while(1){m=J[g>>2];if(m>=M(32767)|mM(1)){break d}e=(b<<1)+d|0;l=R(+m*32767+.5);f:{if(N(l)<2147483648){i=~~l;break f}i=-2147483648}E[e>>1]=i;b=b+1|0;e=G[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break e}g=g+4|0;if(f>>>0>g>>>0){continue}break}break d}j=1;if(c>>>0<=e>>>0){break d}ma((e<<1)+d|0,0,c-e<<1)}return j;case 9:g:{h:{e=G[a+24|0];c=c&255;if(!(c>>>0>e>>>0?e:c)){break h}e=F[a>>2];j=F[e>>2];g=j;f=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+f|0;g=b+g|0;f=F[e+4>>2];e=f-j|0;if(!G[a+32|0]){j=0;if((b|0)>=(e|0)){break g}b=0;while(1){l=K[g>>3];if(l>=32767|l<-32768|l!=l){break g}o=N(l);if(o==Infinity){break g}e=(b<<1)+d|0;if(o<2147483648){i=~~l}else{i=-2147483648}E[e>>1]=i;b=b+1|0;e=G[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break h}g=g+8|0;if(f>>>0>g>>>0){continue}break}break g}j=0;if((b|0)>=(e|0)){break g}b=0;while(1){l=K[g>>3];if(l>=32767|l<-32768|(N(l)==Infinity|l!=l)){break g}if(l<0|l>1){break g}e=(b<<1)+d|0;l=R(l*32767+.5);i:{if(N(l)<2147483648){i=~~l;break i}i=-2147483648}E[e>>1]=i;b=b+1|0;e=G[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break h}g=g+8|0;if(f>>>0>g>>>0){continue}break}break g}j=1;if(c>>>0<=e>>>0){break g}ma((e<<1)+d|0,0,c-e<<1)}return j;case 10:break c;default:break b}}e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[a>>2];h=F[e>>2];k=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}E[(g<<1)+d>>1]=G[b|0];b=b+1|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}ma((e<<1)+d|0,0,(c&255)-e<<1)}return j}ma((e<<1)+d|0,0,(c&255)-e<<1);return 1}function yb(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=M(0),n=M(0),o=0;a:{b:{if(!d){break b}c:{switch(F[a+28>>2]-1|0){case 0:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[a>>2];h=F[e>>2];k=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}F[(g<<2)+d>>2]=D[b|0];b=b+1|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 1:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[a>>2];h=F[e>>2];k=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}F[(g<<2)+d>>2]=G[b|0];b=b+1|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 2:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[a>>2];h=F[e>>2];k=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}F[(g<<2)+d>>2]=E[b>>1];b=b+2|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 3:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[a>>2];h=F[e>>2];k=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}F[(g<<2)+d>>2]=H[b>>1];b=b+2|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 4:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[a>>2];h=F[e>>2];k=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}F[(g<<2)+d>>2]=F[b>>2];b=b+4|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 5:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[a>>2];h=F[e>>2];k=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){return 0}e=F[b>>2];if((e|0)<0){break b}F[(g<<2)+d>>2]=e;b=b+4|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 6:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[a>>2];h=F[e>>2];k=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;k=F[e+4>>2];while(1){if(b>>>0>=k>>>0){break b}h=F[b+4>>2];e=F[b>>2];if(e- -2147483648>>>0<2147483648?h+1|0:h){break b}F[(g<<2)+d>>2]=e;b=b+8|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 7:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[a>>2];h=F[e>>2];k=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}k=F[b+4>>2];e=F[b>>2];if(!k&e>>>0>2147483647|k){break b}F[(g<<2)+d>>2]=e;b=b+8|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 8:d:{e:{e=G[a+24|0];c=c&255;if(!(c>>>0>e>>>0?e:c)){break e}e=F[a>>2];j=F[e>>2];g=j;f=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+f|0;g=b+g|0;f=F[e+4>>2];e=f-j|0;if(!G[a+32|0]){j=0;if((b|0)>=(e|0)){break d}b=0;while(1){m=J[g>>2];if(m>=M(2147483648)|m>2]=i;b=b+1|0;e=G[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break e}g=g+4|0;if(f>>>0>g>>>0){continue}break}break d}j=0;if((b|0)>=(e|0)){break d}b=0;while(1){m=J[g>>2];if(m>=M(2147483648)|mM(1)){break d}e=(b<<2)+d|0;l=R(+m*2147483647+.5);f:{if(N(l)<2147483648){i=~~l;break f}i=-2147483648}F[e>>2]=i;b=b+1|0;e=G[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break e}g=g+4|0;if(f>>>0>g>>>0){continue}break}break d}j=1;if(c>>>0<=e>>>0){break d}ma((e<<2)+d|0,0,c-e<<2)}return j;case 9:g:{h:{e=G[a+24|0];c=c&255;if(!(c>>>0>e>>>0?e:c)){break h}e=F[a>>2];j=F[e>>2];g=j;f=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+f|0;g=b+g|0;f=F[e+4>>2];e=f-j|0;if(!G[a+32|0]){j=0;if((b|0)>=(e|0)){break g}b=0;while(1){l=K[g>>3];if(l>=2147483647|l<-2147483648|l!=l){break g}o=N(l);if(o==Infinity){break g}e=(b<<2)+d|0;if(o<2147483648){i=~~l}else{i=-2147483648}F[e>>2]=i;b=b+1|0;e=G[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break h}g=g+8|0;if(f>>>0>g>>>0){continue}break}break g}j=0;if((b|0)>=(e|0)){break g}b=0;while(1){l=K[g>>3];if(l>=2147483647|l<-2147483648|(N(l)==Infinity|l!=l)){break g}if(l<0|l>1){break g}e=(b<<2)+d|0;l=R(l*2147483647+.5);i:{if(N(l)<2147483648){i=~~l;break i}i=-2147483648}F[e>>2]=i;b=b+1|0;e=G[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break h}g=g+8|0;if(f>>>0>g>>>0){continue}break}break g}j=1;if(c>>>0<=e>>>0){break g}ma((e<<2)+d|0,0,c-e<<2)}return j;case 10:break c;default:break b}}e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[a>>2];h=F[e>>2];k=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}F[(g<<2)+d>>2]=G[b|0];b=b+1|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}ma((e<<2)+d|0,0,(c&255)-e<<2)}return j}ma((e<<2)+d|0,0,(c&255)-e<<2);return 1}function zb(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=M(0);a:{b:{if(!d){break b}c:{switch(F[a+28>>2]-1|0){case 0:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[a>>2];h=F[e>>2];k=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){return 0}e=D[b|0];if((e|0)<0){break b}E[(g<<1)+d>>1]=e&255;b=b+1|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break b}break a;case 1:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[a>>2];h=F[e>>2];k=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}E[(g<<1)+d>>1]=G[b|0];b=b+1|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break b}break a;case 2:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[a>>2];h=F[e>>2];k=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){return 0}e=E[b>>1];if((e|0)<0){break b}E[(g<<1)+d>>1]=e;b=b+2|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break b}break a;case 3:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[a>>2];h=F[e>>2];k=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}E[(g<<1)+d>>1]=H[b>>1];b=b+2|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break b}break a;case 4:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[a>>2];h=F[e>>2];k=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}e=F[b>>2];if(e>>>0>65535){break b}E[(g<<1)+d>>1]=e;b=b+4|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break b}break a;case 5:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[a>>2];h=F[e>>2];k=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}e=F[b>>2];if(e>>>0>65535){break b}E[(g<<1)+d>>1]=e;b=b+4|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break b}break a;case 6:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[a>>2];h=F[e>>2];k=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}k=F[b+4>>2];e=F[b>>2];if(!k&e>>>0>65535|k){break b}E[(g<<1)+d>>1]=e;b=b+8|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break b}break a;case 7:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[a>>2];h=F[e>>2];k=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}k=F[b+4>>2];e=F[b>>2];if(!k&e>>>0>65535|k){break b}E[(g<<1)+d>>1]=e;b=b+8|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break b}break a;case 8:d:{e:{e=G[a+24|0];c=c&255;if(!(c>>>0>e>>>0?e:c)){break e}e=F[a>>2];l=F[e>>2];g=l;f=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+f|0;g=b+g|0;f=F[e+4>>2];e=f-l|0;if(!G[a+32|0]){l=0;if((b|0)>=(e|0)){break d}b=0;while(1){m=J[g>>2];if(m>=M(65535)|m=M(0)){i=~~m>>>0}else{i=0}E[e>>1]=i;b=b+1|0;e=G[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break e}g=g+4|0;if(f>>>0>g>>>0){continue}break}break d}l=0;if((b|0)>=(e|0)){break d}b=0;while(1){m=J[g>>2];if(m>=M(65535)|mM(1)){break d}e=(b<<1)+d|0;j=R(+m*65535+.5);f:{if(j<4294967296&j>=0){i=~~j>>>0;break f}i=0}E[e>>1]=i;b=b+1|0;e=G[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break e}g=g+4|0;if(f>>>0>g>>>0){continue}break}break d}l=1;if(c>>>0<=e>>>0){break d}ma((e<<1)+d|0,0,c-e<<1)}return l;case 9:g:{h:{e=G[a+24|0];c=c&255;if(!(c>>>0>e>>>0?e:c)){break h}e=F[a>>2];l=F[e>>2];g=l;f=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+f|0;g=b+g|0;f=F[e+4>>2];e=f-l|0;if(!G[a+32|0]){l=0;if((b|0)>=(e|0)){break g}b=0;while(1){j=K[g>>3];if(j>=65535|j<0|(N(j)==Infinity|j!=j)){break g}e=(b<<1)+d|0;if(j<4294967296&j>=0){i=~~j>>>0}else{i=0}E[e>>1]=i;b=b+1|0;e=G[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break h}g=g+8|0;if(f>>>0>g>>>0){continue}break}break g}l=0;if((b|0)>=(e|0)){break g}b=0;while(1){j=K[g>>3];if(j>=65535|j<0|(N(j)==Infinity|j!=j)){break g}if(j>1){break g}e=(b<<1)+d|0;j=R(j*65535+.5);i:{if(j<4294967296&j>=0){i=~~j>>>0;break i}i=0}E[e>>1]=i;b=b+1|0;e=G[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break h}g=g+8|0;if(f>>>0>g>>>0){continue}break}break g}l=1;if(c>>>0<=e>>>0){break g}ma((e<<1)+d|0,0,c-e<<1)}return l;case 10:break c;default:break b}}e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[a>>2];h=F[e>>2];k=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}E[(g<<1)+d>>1]=G[b|0];b=b+1|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break b}ma((e<<1)+d|0,0,(c&255)-e<<1)}return l}ma((e<<1)+d|0,0,(c&255)-e<<1);return 1}function Ga(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=M(0),l=0,m=0,n=M(0),o=0;a:{if(!d){break a}b:{c:{switch(F[a+28>>2]-1|0){case 0:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[a>>2];h=F[e>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);j=b;b=b+i|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=(g<<3)+d|0;i=D[b|0];F[e>>2]=i;F[e+4>>2]=i>>31;b=b+1|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 1:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[a>>2];h=F[e>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);j=b;b=b+i|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=(g<<3)+d|0;F[e>>2]=G[b|0];F[e+4>>2]=0;b=b+1|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 2:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[a>>2];h=F[e>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);j=b;b=b+i|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=(g<<3)+d|0;i=E[b>>1];F[e>>2]=i;F[e+4>>2]=i>>31;b=b+2|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 3:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[a>>2];h=F[e>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);j=b;b=b+i|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=(g<<3)+d|0;F[e>>2]=H[b>>1];F[e+4>>2]=0;b=b+2|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 4:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[a>>2];h=F[e>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);j=b;b=b+i|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=(g<<3)+d|0;i=F[b>>2];F[e>>2]=i;F[e+4>>2]=i>>31;b=b+4|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 5:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[a>>2];h=F[e>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);j=b;b=b+i|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=(g<<3)+d|0;F[e>>2]=F[b>>2];F[e+4>>2]=0;b=b+4|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 6:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[a>>2];h=F[e>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);j=b;b=b+i|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}i=F[b+4>>2];e=(g<<3)+d|0;F[e>>2]=F[b>>2];F[e+4>>2]=i;b=b+8|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 7:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[a>>2];h=F[e>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);j=b;b=b+i|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=F[b>>2];i=F[b+4>>2];if((i|0)<0){break a}j=(g<<3)+d|0;F[j>>2]=e;F[j+4>>2]=i;b=b+8|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 8:d:{e=G[a+24|0];f=c&255;if(!(e>>>0>>0?e:f)){break d}if(G[a+32|0]){break a}e=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);j=b;b=b+e|0;e=F[a>>2];i=F[e+4>>2];e=F[e>>2];if((b|0)>=(i-e|0)){break a}g=b+e|0;h=c&255;b=0;while(1){k=J[g>>2];if(k>=M(0x8000000000000000)|k=M(1)?~~(k>M(0)?M(P(M(R(M(k*M(2.3283064365386963e-10)))),M(4294967296))):M(S(M(M(k-M(~~k>>>0>>>0))*M(2.3283064365386963e-10)))))>>>0:0;m=~~k>>>0;break e}j=-2147483648;m=0}F[e>>2]=m;F[e+4>>2]=j;b=b+1|0;e=G[a+24|0];if(b>>>0>=(e>>>0>>0?e:h)>>>0){break d}g=g+4|0;if(i>>>0>g>>>0){continue}break}break a}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 9:f:{e=G[a+24|0];f=c&255;if(!(e>>>0>>0?e:f)){break f}if(G[a+32|0]){break a}e=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);j=b;b=b+e|0;e=F[a>>2];i=F[e+4>>2];e=F[e>>2];if((b|0)>=(i-e|0)){break a}g=b+e|0;h=c&255;b=0;while(1){l=K[g>>3];if(l>=0x8000000000000000|l<-0x8000000000000000|l!=l){break a}o=N(l);if(o==Infinity){break a}e=(b<<3)+d|0;g:{if(o<0x8000000000000000){j=N(l)>=1?~~(l>0?P(R(l*2.3283064365386963e-10),4294967295):S((l-+(~~l>>>0>>>0))*2.3283064365386963e-10))>>>0:0;m=~~l>>>0;break g}j=-2147483648;m=0}F[e>>2]=m;F[e+4>>2]=j;b=b+1|0;e=G[a+24|0];if(b>>>0>=(e>>>0>>0?e:h)>>>0){break f}g=g+8|0;if(i>>>0>g>>>0){continue}break}break a}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 10:break c;default:break a}}e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[a>>2];h=F[e>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);j=b;b=b+i|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=(g<<3)+d|0;F[e>>2]=G[b|0];F[e+4>>2]=0;b=b+1|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0}ma(d,0,a<<3)}}function le(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;j=a;a:{b:{c:{d:{e:{f:{g:{h:{a=F[a+8>>2];switch(F[a+28>>2]-1|0){case 4:break c;case 5:break d;case 2:break e;case 3:break f;case 0:break g;case 1:break h;default:break a}}f=G[a+24|0];c=ka(f);a=F[j+16>>2];if(F[a+80>>2]){g=F[F[a>>2]>>2]+F[a+48>>2]|0}else{g=0}if(!b){break b}if(f){o=f&252;l=f&3;h=f>>>0<4;while(1){a=0;e=0;if(!h){while(1){k=g+(d<<2)|0;D[a+c|0]=F[k>>2];D[(a|1)+c|0]=F[k+4>>2];D[(a|2)+c|0]=F[k+8>>2];D[(a|3)+c|0]=F[k+12>>2];a=a+4|0;d=d+4|0;e=e+4|0;if((o|0)!=(e|0)){continue}break}}e=0;if(l){while(1){D[a+c|0]=F[g+(d<<2)>>2];a=a+1|0;d=d+1|0;e=e+1|0;if((l|0)!=(e|0)){continue}break}}la(F[F[F[j+8>>2]+64>>2]>>2]+m|0,c,f);m=f+m|0;n=n+1|0;if((n|0)!=(b|0)){continue}break}break b}a=0;if((b|0)!=1){g=b&-2;while(1){la(F[F[F[j+8>>2]+64>>2]>>2]+a|0,c,f);a=a+f|0;la(a+F[F[F[j+8>>2]+64>>2]>>2]|0,c,f);a=a+f|0;d=d+2|0;if((g|0)!=(d|0)){continue}break}}if(!(b&1)){break b}la(F[F[F[j+8>>2]+64>>2]>>2]+a|0,c,f);break b}f=G[a+24|0];c=ka(f);a=F[j+16>>2];if(F[a+80>>2]){g=F[F[a>>2]>>2]+F[a+48>>2]|0}else{g=0}if(!b){break b}if(f){o=f&252;l=f&3;h=f>>>0<4;while(1){a=0;e=0;if(!h){while(1){k=g+(d<<2)|0;D[a+c|0]=F[k>>2];D[(a|1)+c|0]=F[k+4>>2];D[(a|2)+c|0]=F[k+8>>2];D[(a|3)+c|0]=F[k+12>>2];a=a+4|0;d=d+4|0;e=e+4|0;if((o|0)!=(e|0)){continue}break}}e=0;if(l){while(1){D[a+c|0]=F[g+(d<<2)>>2];a=a+1|0;d=d+1|0;e=e+1|0;if((l|0)!=(e|0)){continue}break}}la(F[F[F[j+8>>2]+64>>2]>>2]+m|0,c,f);m=f+m|0;n=n+1|0;if((n|0)!=(b|0)){continue}break}break b}a=0;if((b|0)!=1){g=b&-2;while(1){la(F[F[F[j+8>>2]+64>>2]>>2]+a|0,c,f);a=a+f|0;la(a+F[F[F[j+8>>2]+64>>2]>>2]|0,c,f);a=a+f|0;d=d+2|0;if((g|0)!=(d|0)){continue}break}}if(!(b&1)){break b}la(F[F[F[j+8>>2]+64>>2]>>2]+a|0,c,f);break b}h=G[a+24|0];i=h<<1;c=ka(i);a=F[j+16>>2];if(F[a+80>>2]){g=F[F[a>>2]>>2]+F[a+48>>2]|0}else{g=0}if(!b){break b}if(h){o=h&252;l=h&3;h=h>>>0<4;while(1){a=0;e=0;if(!h){while(1){f=a<<1;k=g+(d<<2)|0;E[f+c>>1]=F[k>>2];E[(f|2)+c>>1]=F[k+4>>2];E[(f|4)+c>>1]=F[k+8>>2];E[(f|6)+c>>1]=F[k+12>>2];a=a+4|0;d=d+4|0;e=e+4|0;if((o|0)!=(e|0)){continue}break}}e=0;if(l){while(1){E[(a<<1)+c>>1]=F[g+(d<<2)>>2];a=a+1|0;d=d+1|0;e=e+1|0;if((l|0)!=(e|0)){continue}break}}la(F[F[F[j+8>>2]+64>>2]>>2]+n|0,c,i);n=i+n|0;m=m+1|0;if((m|0)!=(b|0)){continue}break}break b}a=0;if((b|0)!=1){g=b&-2;while(1){la(F[F[F[j+8>>2]+64>>2]>>2]+a|0,c,i);a=a+i|0;la(a+F[F[F[j+8>>2]+64>>2]>>2]|0,c,i);a=a+i|0;d=d+2|0;if((g|0)!=(d|0)){continue}break}}if(!(b&1)){break b}la(F[F[F[j+8>>2]+64>>2]>>2]+a|0,c,i);break b}h=G[a+24|0];i=h<<1;c=ka(i);a=F[j+16>>2];if(F[a+80>>2]){g=F[F[a>>2]>>2]+F[a+48>>2]|0}else{g=0}if(!b){break b}if(h){o=h&252;l=h&3;h=h>>>0<4;while(1){a=0;e=0;if(!h){while(1){f=a<<1;k=g+(d<<2)|0;E[f+c>>1]=F[k>>2];E[(f|2)+c>>1]=F[k+4>>2];E[(f|4)+c>>1]=F[k+8>>2];E[(f|6)+c>>1]=F[k+12>>2];a=a+4|0;d=d+4|0;e=e+4|0;if((o|0)!=(e|0)){continue}break}}e=0;if(l){while(1){E[(a<<1)+c>>1]=F[g+(d<<2)>>2];a=a+1|0;d=d+1|0;e=e+1|0;if((l|0)!=(e|0)){continue}break}}la(F[F[F[j+8>>2]+64>>2]>>2]+n|0,c,i);n=i+n|0;m=m+1|0;if((m|0)!=(b|0)){continue}break}break b}a=0;if((b|0)!=1){g=b&-2;while(1){la(F[F[F[j+8>>2]+64>>2]>>2]+a|0,c,i);a=a+i|0;la(a+F[F[F[j+8>>2]+64>>2]>>2]|0,c,i);a=a+i|0;d=d+2|0;if((g|0)!=(d|0)){continue}break}}if(!(b&1)){break b}la(F[F[F[j+8>>2]+64>>2]>>2]+a|0,c,i);break b}h=G[a+24|0];i=h<<2;c=ka(i);a=F[j+16>>2];if(F[a+80>>2]){g=F[F[a>>2]>>2]+F[a+48>>2]|0}else{g=0}if(!b){break b}if(h){o=h&252;l=h&3;h=h>>>0<4;while(1){a=0;e=0;if(!h){while(1){f=a<<2;k=g+(d<<2)|0;F[f+c>>2]=F[k>>2];F[(f|4)+c>>2]=F[k+4>>2];F[(f|8)+c>>2]=F[k+8>>2];F[(f|12)+c>>2]=F[k+12>>2];a=a+4|0;d=d+4|0;e=e+4|0;if((o|0)!=(e|0)){continue}break}}e=0;if(l){while(1){F[(a<<2)+c>>2]=F[g+(d<<2)>>2];a=a+1|0;d=d+1|0;e=e+1|0;if((l|0)!=(e|0)){continue}break}}la(F[F[F[j+8>>2]+64>>2]>>2]+n|0,c,i);n=i+n|0;m=m+1|0;if((m|0)!=(b|0)){continue}break}break b}a=0;if((b|0)!=1){g=b&-2;while(1){la(F[F[F[j+8>>2]+64>>2]>>2]+a|0,c,i);a=a+i|0;la(a+F[F[F[j+8>>2]+64>>2]>>2]|0,c,i);a=a+i|0;d=d+2|0;if((g|0)!=(d|0)){continue}break}}if(!(b&1)){break b}la(F[F[F[j+8>>2]+64>>2]>>2]+a|0,c,i);break b}h=G[a+24|0];i=h<<2;c=ka(i);a=F[j+16>>2];if(F[a+80>>2]){g=F[F[a>>2]>>2]+F[a+48>>2]|0}else{g=0}if(!b){break b}if(h){o=h&252;l=h&3;h=h>>>0<4;while(1){a=0;e=0;if(!h){while(1){f=a<<2;k=g+(d<<2)|0;F[f+c>>2]=F[k>>2];F[(f|4)+c>>2]=F[k+4>>2];F[(f|8)+c>>2]=F[k+8>>2];F[(f|12)+c>>2]=F[k+12>>2];a=a+4|0;d=d+4|0;e=e+4|0;if((o|0)!=(e|0)){continue}break}}e=0;if(l){while(1){F[(a<<2)+c>>2]=F[g+(d<<2)>>2];a=a+1|0;d=d+1|0;e=e+1|0;if((l|0)!=(e|0)){continue}break}}la(F[F[F[j+8>>2]+64>>2]>>2]+n|0,c,i);n=i+n|0;m=m+1|0;if((m|0)!=(b|0)){continue}break}break b}a=0;if((b|0)!=1){g=b&-2;while(1){la(F[F[F[j+8>>2]+64>>2]>>2]+a|0,c,i);a=a+i|0;la(a+F[F[F[j+8>>2]+64>>2]>>2]|0,c,i);a=a+i|0;d=d+2|0;if((g|0)!=(d|0)){continue}break}}if(!(b&1)){break b}la(F[F[F[j+8>>2]+64>>2]>>2]+a|0,c,i)}ja(c);c=1}return c|0}function xb(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=M(0);a:{b:{if(!d){break b}c:{switch(F[a+28>>2]-1|0){case 0:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[a>>2];h=F[e>>2];l=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+l|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}F[(g<<2)+d>>2]=D[b|0];b=b+1|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 1:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[a>>2];h=F[e>>2];l=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+l|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}F[(g<<2)+d>>2]=G[b|0];b=b+1|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 2:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[a>>2];h=F[e>>2];l=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+l|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}F[(g<<2)+d>>2]=E[b>>1];b=b+2|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 3:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[a>>2];h=F[e>>2];l=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+l|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}F[(g<<2)+d>>2]=H[b>>1];b=b+2|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 4:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[a>>2];h=F[e>>2];l=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+l|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}F[(g<<2)+d>>2]=F[b>>2];b=b+4|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 5:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[a>>2];h=F[e>>2];l=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+l|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}F[(g<<2)+d>>2]=F[b>>2];b=b+4|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 6:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[a>>2];h=F[e>>2];l=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+l|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}e=F[b>>2];if(F[b+4>>2]){break b}F[(g<<2)+d>>2]=e;b=b+8|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 7:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[a>>2];h=F[e>>2];l=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+l|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}e=F[b>>2];if(F[b+4>>2]){break b}F[(g<<2)+d>>2]=e;b=b+8|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 8:d:{e:{e=G[a+24|0];c=c&255;if(!(c>>>0>e>>>0?e:c)){break e}e=F[a>>2];k=F[e>>2];g=k;f=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+f|0;g=b+g|0;f=F[e+4>>2];e=f-k|0;if(!G[a+32|0]){k=0;if((b|0)>=(e|0)){break d}b=0;while(1){m=J[g>>2];if(m>=M(4294967296)|m=M(0)){i=~~m>>>0}else{i=0}F[e>>2]=i;b=b+1|0;e=G[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break e}g=g+4|0;if(f>>>0>g>>>0){continue}break}break d}k=0;if((b|0)>=(e|0)){break d}b=0;while(1){m=J[g>>2];if(m>=M(4294967296)|mM(1)){break d}e=(b<<2)+d|0;j=R(+m*4294967295+.5);f:{if(j<4294967296&j>=0){i=~~j>>>0;break f}i=0}F[e>>2]=i;b=b+1|0;e=G[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break e}g=g+4|0;if(f>>>0>g>>>0){continue}break}break d}k=1;if(c>>>0<=e>>>0){break d}ma((e<<2)+d|0,0,c-e<<2)}return k;case 9:g:{h:{e=G[a+24|0];c=c&255;if(!(c>>>0>e>>>0?e:c)){break h}e=F[a>>2];k=F[e>>2];g=k;f=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+f|0;g=b+g|0;f=F[e+4>>2];e=f-k|0;if(!G[a+32|0]){k=0;if((b|0)>=(e|0)){break g}b=0;while(1){j=K[g>>3];if(j>=4294967295|j<0|(N(j)==Infinity|j!=j)){break g}e=(b<<2)+d|0;if(j<4294967296&j>=0){i=~~j>>>0}else{i=0}F[e>>2]=i;b=b+1|0;e=G[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break h}g=g+8|0;if(f>>>0>g>>>0){continue}break}break g}k=0;if((b|0)>=(e|0)){break g}b=0;while(1){j=K[g>>3];if(j>=4294967295|j<0|(N(j)==Infinity|j!=j)){break g}if(j>1){break g}e=(b<<2)+d|0;j=R(j*4294967295+.5);i:{if(j<4294967296&j>=0){i=~~j>>>0;break i}i=0}F[e>>2]=i;b=b+1|0;e=G[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break h}g=g+8|0;if(f>>>0>g>>>0){continue}break}break g}k=1;if(c>>>0<=e>>>0){break g}ma((e<<2)+d|0,0,c-e<<2)}return k;case 10:break c;default:break b}}e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[a>>2];h=F[e>>2];l=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+l|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}F[(g<<2)+d>>2]=G[b|0];b=b+1|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}ma((e<<2)+d|0,0,(c&255)-e<<2)}return k}ma((e<<2)+d|0,0,(c&255)-e<<2);return 1}function rd(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;a:{b:{c:{d:{e:{if(F[a+92>>2]==F[a+88>>2]){break e}c=F[a+52>>2];f:{if((c|0)!=F[a+56>>2]){F[c>>2]=b;F[a+52>>2]=c+4;break f}h=F[a+48>>2];g=c-h|0;d=g>>2;f=d+1|0;if(f>>>0>=1073741824){break a}e=g>>>1|0;g=g>>>0>=2147483644?1073741823:f>>>0>>0?e:f;if(g){if(g>>>0>=1073741824){break d}e=ka(g<<2)}else{e=0}f=e+(d<<2)|0;F[f>>2]=b;d=f+4|0;if((c|0)!=(h|0)){while(1){f=f-4|0;c=c-4|0;F[f>>2]=F[c>>2];if((c|0)!=(h|0)){continue}break}}F[a+56>>2]=e+(g<<2);F[a+52>>2]=d;F[a+48>>2]=f;if(!h){break f}ja(h)}F[a+84>>2]=0;c=-1;e=-1;g:{if((b|0)==-1){break g}d=F[a+4>>2];e=b+1|0;e=(e>>>0)%3|0?e:b-2|0;if((e|0)!=-1){c=F[F[d>>2]+(e<<2)>>2]}h:{if((b>>>0)%3|0){l=b-1|0;break h}l=b+2|0;e=-1;if((l|0)==-1){break g}}e=F[F[d>>2]+(l<<2)>>2]}i=e>>>3&536870908;d=F[a+36>>2];h=d+(c>>>3&536870908)|0;g=F[h>>2];f=1<>2]=f|g;f=a+8|0;if((b|0)!=-1){d=b+1|0;d=(d>>>0)%3|0?d:b-2|0}else{d=-1}Ka(f,c,d);d=F[a+36>>2]}f=d+i|0;d=F[f>>2];c=1<>2]=c|d;d=a+8|0;c=-1;i:{if((b|0)==-1){break i}c=b-1|0;if((b>>>0)%3|0){break i}c=b+2|0}Ka(d,e,c)}c=-1;c=(b|0)!=-1?F[F[F[a+4>>2]>>2]+(b<<2)>>2]:c;f=F[a+36>>2]+(c>>>3&536870908)|0;d=F[f>>2];e=1<>2]=d|e;Ka(a+8|0,c,b)}d=F[a+84>>2];if((d|0)>2){break e}while(1){e=L(d,12)+a|0;b=F[e+52>>2];if((b|0)==F[e+48>>2]){d=d+1|0;if((d|0)!=3){continue}break e}b=b-4|0;c=F[b>>2];F[e+52>>2]=b;F[a+84>>2]=d;if((c|0)==-1){break e}f=F[a+24>>2];b=(c>>>0)/3|0;j:{if(F[f+(b>>>3&268435452)>>2]>>>b&1){break j}k:{while(1){k=(c>>>0)/3|0;b=(k>>>3&268435452)+f|0;F[b>>2]=F[b>>2]|1<>2]>>2]+(c<<2)>>2]:d;f=F[a+36>>2]+(d>>>3&536870908)|0;e=F[f>>2];b=1<>2]=b|e;i=F[(F[F[a+16>>2]+96>>2]+L(k,12)|0)+((c>>>0)%3<<2)>>2];l=F[F[a+20>>2]+4>>2];f=F[l+4>>2];t:{if((f|0)!=F[l+8>>2]){F[f>>2]=i;F[l+4>>2]=f+4;break t}j=F[l>>2];h=f-j|0;g=h>>2;e=g+1|0;if(e>>>0>=1073741824){break s}b=h>>>1|0;h=h>>>0>=2147483644?1073741823:b>>>0>e>>>0?b:e;if(h){if(h>>>0>=1073741824){break d}e=ka(h<<2)}else{e=0}b=e+(g<<2)|0;F[b>>2]=i;g=b+4|0;if((f|0)!=(j|0)){while(1){b=b-4|0;f=f-4|0;F[b>>2]=F[f>>2];if((f|0)!=(j|0)){continue}break}}F[l+8>>2]=e+(h<<2);F[l+4>>2]=g;F[l>>2]=b;if(!j){break t}ja(j)}j=F[a+12>>2];f=F[j+4>>2];u:{if((f|0)!=F[j+8>>2]){F[f>>2]=c;F[j+4>>2]=f+4;break u}i=F[j>>2];h=f-i|0;g=h>>2;e=g+1|0;if(e>>>0>=1073741824){break r}b=h>>>1|0;h=h>>>0>=2147483644?1073741823:b>>>0>e>>>0?b:e;if(h){if(h>>>0>=1073741824){break d}e=ka(h<<2)}else{e=0}b=e+(g<<2)|0;F[b>>2]=c;g=b+4|0;if((f|0)!=(i|0)){while(1){b=b-4|0;f=f-4|0;F[b>>2]=F[f>>2];if((f|0)!=(i|0)){continue}break}}F[j+8>>2]=e+(h<<2);F[j+4>>2]=g;F[j>>2]=b;if(!i){break u}ja(i)}b=F[a+12>>2];F[F[b+12>>2]+(d<<2)>>2]=F[b+24>>2];F[b+24>>2]=F[b+24>>2]+1}if((c|0)==-1){break k}g=F[a+4>>2];f=-1;b=c+1|0;b=(b>>>0)%3|0?b:c-2|0;if((b|0)!=-1){f=F[F[g+12>>2]+(b<<2)>>2]}v:{w:{if((L(k,3)|0)!=(c|0)){d=c-1|0;break w}d=c+2|0;c=-1;if((d|0)==-1){break v}}c=F[F[g+12>>2]+(d<<2)>>2]}d=(c|0)==-1;e=(c>>>0)/3|0;if((f|0)!=-1){b=(f>>>0)/3|0;b=F[F[a+24>>2]+(b>>>3&268435452)>>2]&1<>2]+(b>>>3&536870908)>>2]>>>b&1){break x}k=0;b=F[F[g>>2]+(c<<2)>>2];if(!(F[F[a+36>>2]+(b>>>3&536870908)>>2]>>>b&1)){b=F[a+88>>2]+(b<<2)|0;e=F[b>>2];F[b>>2]=e+1;k=(e|0)<=0?2:1}if(F[a+84>>2]>=(k|0)&l){break m}j=L(k,12)+a|0;b=F[j+52>>2];y:{if((b|0)!=F[j+56>>2]){F[b>>2]=c;F[j+52>>2]=b+4;break y}i=F[j+48>>2];h=b-i|0;d=h>>2;g=d+1|0;if(g>>>0>=1073741824){break c}e=h>>>1|0;g=h>>>0>=2147483644?1073741823:e>>>0>g>>>0?e:g;if(g){if(g>>>0>=1073741824){break d}e=ka(g<<2)}else{e=0}d=e+(d<<2)|0;F[d>>2]=c;c=d+4|0;if((b|0)!=(i|0)){while(1){d=d-4|0;b=b-4|0;F[d>>2]=F[b>>2];if((b|0)!=(i|0)){continue}break}}F[j+48>>2]=d;F[j+52>>2]=c;F[j+56>>2]=e+(g<<2);if(!i){break y}ja(i)}if(F[a+84>>2]<=(k|0)){break x}F[a+84>>2]=k}if(l){break k}c=-1;if((f|0)==-1){break n}}c=F[F[F[a+4>>2]>>2]+(f<<2)>>2]}b=0;if(!(F[F[a+36>>2]+(c>>>3&536870908)>>2]>>>c&1)){b=F[a+88>>2]+(c<<2)|0;c=F[b>>2];F[b>>2]=c+1;b=(c|0)<=0?2:1}if(F[a+84>>2]<(b|0)){break l}c=f}f=F[a+24>>2];continue}break}k=L(b,12)+a|0;c=F[k+52>>2];z:{if((c|0)!=F[k+56>>2]){F[c>>2]=f;F[k+52>>2]=c+4;break z}i=F[k+48>>2];h=c-i|0;d=h>>2;g=d+1|0;if(g>>>0>=1073741824){break b}e=h>>>1|0;g=h>>>0>=2147483644?1073741823:e>>>0>g>>>0?e:g;if(g){if(g>>>0>=1073741824){break d}e=ka(g<<2)}else{e=0}d=e+(d<<2)|0;F[d>>2]=f;f=d+4|0;if((c|0)!=(i|0)){while(1){d=d-4|0;c=c-4|0;F[d>>2]=F[c>>2];if((c|0)!=(i|0)){continue}break}}F[k+48>>2]=d;F[k+52>>2]=f;F[k+56>>2]=e+(g<<2);if(!i){break z}ja(i)}d=F[a+84>>2];if((d|0)<=(b|0)){break j}F[a+84>>2]=b;d=b;break j}d=F[a+84>>2]}if((d|0)<3){continue}break}}return 1}oa();v()}na();v()}na();v()}na();v()}function Mc(a){var b=0,c=0,d=0,e=0,f=0,g=0;e=Z-16|0;Z=e;F[e+12>>2]=a;a:{if(a>>>0<=211){d=F[Lc(10352,10544,e+12|0)>>2];break a}if(a>>>0>=4294967292){V();v()}f=(a>>>0)/210|0;d=L(f,210);F[e+8>>2]=a-d;g=Lc(10544,10736,e+8|0)-10544>>2;while(1){d=F[(g<<2)+10544>>2]+d|0;a=5;while(1){b:{if((a|0)==47){a=211;while(1){b=(d>>>0)/(a>>>0)|0;if(b>>>0>>0){break a}if((L(a,b)|0)==(d|0)){break b}b=a+10|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+12|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+16|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+18|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+22|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+28|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+30|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+36|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+40|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+42|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+46|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+52|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+58|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+60|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+66|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+70|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+72|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+78|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+82|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+88|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+96|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+100|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+102|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+106|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+108|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+112|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+120|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+126|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+130|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+136|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+138|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+142|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+148|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+150|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+156|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+162|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+166|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+168|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+172|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+178|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+180|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+186|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+190|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+192|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+196|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+198|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+208|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}a=a+210|0;if((L(b,c)|0)!=(d|0)){continue}break}break b}b=F[(a<<2)+10352>>2];c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}a=a+1|0;if((L(b,c)|0)!=(d|0)){continue}}break}d=g+1|0;a=(d|0)==48;g=a?0:d;f=a+f|0;d=L(f,210);continue}}Z=e+16|0;return d}function lb(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=M(0),k=0,l=0;a:{if(!d){break a}b:{c:{switch(F[a+28>>2]-1|0){case 0:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[a>>2];g=F[e>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);k=b;b=b+i|0;b=b+g|0;g=F[e+4>>2];i=G[a+32|0];while(1){if(b>>>0>=g>>>0){break a}j=M(D[b|0]);J[(h<<2)+d>>2]=i?M(j/M(127)):j;b=b+1|0;h=h+1|0;e=G[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break a}d=(e<<2)+d|0;a=(c&255)-e|0;break b;case 1:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[a>>2];g=F[e>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);k=b;b=b+i|0;b=b+g|0;g=F[e+4>>2];i=G[a+32|0];while(1){if(b>>>0>=g>>>0){break a}j=M(G[b|0]);J[(h<<2)+d>>2]=i?M(j/M(255)):j;b=b+1|0;h=h+1|0;e=G[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break a}d=(e<<2)+d|0;a=(c&255)-e|0;break b;case 2:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[a>>2];g=F[e>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);k=b;b=b+i|0;b=b+g|0;g=F[e+4>>2];i=G[a+32|0];while(1){if(b>>>0>=g>>>0){break a}j=M(E[b>>1]);J[(h<<2)+d>>2]=i?M(j/M(32767)):j;b=b+2|0;h=h+1|0;e=G[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break a}d=(e<<2)+d|0;a=(c&255)-e|0;break b;case 3:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[a>>2];g=F[e>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);k=b;b=b+i|0;b=b+g|0;g=F[e+4>>2];i=G[a+32|0];while(1){if(b>>>0>=g>>>0){break a}j=M(H[b>>1]);J[(h<<2)+d>>2]=i?M(j/M(65535)):j;b=b+2|0;h=h+1|0;e=G[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break a}d=(e<<2)+d|0;a=(c&255)-e|0;break b;case 4:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[a>>2];g=F[e>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);k=b;b=b+i|0;b=b+g|0;g=F[e+4>>2];i=G[a+32|0];while(1){if(b>>>0>=g>>>0){break a}j=M(F[b>>2]);J[(h<<2)+d>>2]=i?M(j*M(4.656612873077393e-10)):j;b=b+4|0;h=h+1|0;e=G[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break a}d=(e<<2)+d|0;a=(c&255)-e|0;break b;case 5:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[a>>2];g=F[e>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);k=b;b=b+i|0;b=b+g|0;g=F[e+4>>2];i=G[a+32|0];while(1){if(b>>>0>=g>>>0){break a}j=M(I[b>>2]);J[(h<<2)+d>>2]=i?M(j*M(2.3283064365386963e-10)):j;b=b+4|0;h=h+1|0;e=G[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break a}d=(e<<2)+d|0;a=(c&255)-e|0;break b;case 6:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[a>>2];g=F[e>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);k=b;b=b+i|0;b=b+g|0;g=F[e+4>>2];i=G[a+32|0];while(1){if(b>>>0>=g>>>0){break a}j=M(+I[b>>2]+ +F[b+4>>2]*4294967296);J[(h<<2)+d>>2]=i?M(j*M(10842021724855044e-35)):j;b=b+8|0;h=h+1|0;e=G[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break a}d=(e<<2)+d|0;a=(c&255)-e|0;break b;case 7:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[a>>2];g=F[e>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);k=b;b=b+i|0;b=b+g|0;g=F[e+4>>2];i=G[a+32|0];while(1){if(b>>>0>=g>>>0){break a}j=M(+I[b>>2]+ +I[b+4>>2]*4294967296);J[(h<<2)+d>>2]=i?M(j*M(5.421010862427522e-20)):j;b=b+8|0;h=h+1|0;e=G[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break a}d=(e<<2)+d|0;a=(c&255)-e|0;break b;case 8:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[a>>2];g=F[e>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);k=b;b=b+i|0;b=b+g|0;g=F[e+4>>2];while(1){if(b>>>0>=g>>>0){break a}J[(h<<2)+d>>2]=J[b>>2];b=b+4|0;h=h+1|0;e=G[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break a}d=(e<<2)+d|0;a=(c&255)-e|0;break b;case 9:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[a>>2];g=F[e>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);k=b;b=b+i|0;b=b+g|0;g=F[e+4>>2];while(1){if(b>>>0>=g>>>0){break a}J[(h<<2)+d>>2]=K[b>>3];b=b+8|0;h=h+1|0;e=G[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break a}d=(e<<2)+d|0;a=(c&255)-e|0;break b;case 10:break c;default:break a}}e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[a>>2];g=F[e>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);k=b;b=b+i|0;b=b+g|0;g=F[e+4>>2];while(1){if(b>>>0>=g>>>0){break a}J[(h<<2)+d>>2]=G[b|0]?M(1):M(0);b=b+1|0;h=h+1|0;e=G[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break a}d=(e<<2)+d|0;a=(c&255)-e|0}ma(d,0,a<<2)}return l}function Cb(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=M(0),m=M(0);a:{b:{if(!d){break b}c:{switch(F[a+28>>2]-1|0){case 0:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[F[a>>2]>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break b}D[d+g|0]=G[b|0];b=b+1|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 1:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[F[a>>2]>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){return 0}e=D[b|0];if((e|0)<0){break b}D[d+g|0]=e;b=b+1|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 2:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[F[a>>2]>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break b}e=H[b>>1];if((e+128&65535)>>>0>255){break b}D[d+g|0]=e;b=b+2|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 3:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[F[a>>2]>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break b}e=H[b>>1];if(e>>>0>127){break b}D[d+g|0]=e;b=b+2|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 4:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[F[a>>2]>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break b}e=F[b>>2];if(e+128>>>0>255){break b}D[d+g|0]=e;b=b+4|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 5:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[F[a>>2]>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break b}e=F[b>>2];if(e>>>0>127){break b}D[d+g|0]=e;b=b+4|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 6:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[F[a>>2]>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break b}i=F[b+4>>2];e=F[b>>2];h=e+128|0;i=h>>>0<128?i+1|0:i;if(!i&h>>>0>255|i){break b}D[d+g|0]=e;b=b+8|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 7:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[F[a>>2]>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break b}i=F[b+4>>2];e=F[b>>2];if(!i&e>>>0>127|i){break b}D[d+g|0]=e;b=b+8|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 8:e=G[a+24|0];c=c&255;d:{if(c>>>0>e>>>0?e:c){e=F[F[a>>2]>>2];f=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);h=b;b=b+f|0;b=b+e|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break d}l=J[b>>2];if(l>=M(127)|lM(1)){break d}j=R(+l*127+.5);if(!(N(j)<2147483648)){break f}h=~~j;break e}if(!(m>>0<(c>>>0>e>>>0?e:c)>>>0){continue}break}}k=1;if(c>>>0<=e>>>0){break d}ma(d+e|0,0,c-e|0)}return k;case 9:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[F[a>>2]>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break b}j=K[b>>3];if(j>=127|j<-128|(N(j)==Infinity|j!=j)){break b}e=d+g|0;if(G[a+32|0]){if(j<0|j>1){break b}j=R(j*127+.5)}g:{if(N(j)<2147483648){h=~~j;break g}h=-2147483648}D[e|0]=h;b=b+8|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 10:break c;default:break b}}e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[F[a>>2]>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break b}D[d+g|0]=G[b|0];b=b+1|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}ma(d+e|0,0,(c&255)-e|0)}return k}ma(d+e|0,0,(c&255)-e|0);return 1}function Bb(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=M(0);a:{b:{if(!d){break b}c:{switch(F[a+28>>2]-1|0){case 0:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[F[a>>2]>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){return 0}e=D[b|0];if((e|0)<0){break b}D[d+g|0]=e;b=b+1|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 1:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[F[a>>2]>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break b}D[d+g|0]=G[b|0];b=b+1|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 2:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[F[a>>2]>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break b}e=H[b>>1];if(e>>>0>255){break b}D[d+g|0]=e;b=b+2|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 3:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[F[a>>2]>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break b}e=H[b>>1];if(e>>>0>255){break b}D[d+g|0]=e;b=b+2|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 4:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[F[a>>2]>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break b}e=F[b>>2];if(e>>>0>255){break b}D[d+g|0]=e;b=b+4|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 5:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[F[a>>2]>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break b}e=F[b>>2];if(e>>>0>255){break b}D[d+g|0]=e;b=b+4|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 6:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[F[a>>2]>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break b}i=F[b+4>>2];e=F[b>>2];if(!i&e>>>0>255|i){break b}D[d+g|0]=e;b=b+8|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 7:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[F[a>>2]>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break b}i=F[b+4>>2];e=F[b>>2];if(!i&e>>>0>255|i){break b}D[d+g|0]=e;b=b+8|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 8:e=G[a+24|0];c=c&255;d:{if(c>>>0>e>>>0?e:c){e=F[F[a>>2]>>2];f=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);h=b;b=b+f|0;b=b+e|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break d}l=J[b>>2];if(l>=M(255)|lM(1)){break d}j=R(+l*255+.5);if(!(j<4294967296&j>=0)){break f}h=~~j>>>0;break e}if(!(l=M(0))){break f}h=~~l>>>0;break e}h=0}D[e|0]=h;b=b+4|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(c>>>0>e>>>0?e:c)>>>0){continue}break}}k=1;if(c>>>0<=e>>>0){break d}ma(d+e|0,0,c-e|0)}return k;case 9:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[F[a>>2]>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break b}j=K[b>>3];if(j>=255|j<0|(N(j)==Infinity|j!=j)){break b}e=d+g|0;if(G[a+32|0]){if(j>1){break b}j=R(j*255+.5)}g:{if(j<4294967296&j>=0){h=~~j>>>0;break g}h=0}D[e|0]=h;b=b+8|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 10:break c;default:break b}}e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[F[a>>2]>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break b}D[d+g|0]=G[b|0];b=b+1|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}ma(d+e|0,0,(c&255)-e|0)}return k}ma(d+e|0,0,(c&255)-e|0);return 1}function jc(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0;e=Z-48|0;Z=e;f=H[5053]|H[5054]<<16;d=H[5051]|H[5052]<<16;E[e+38>>1]=d;E[e+40>>1]=d>>>16;E[e+42>>1]=f;E[e+44>>1]=f>>>16;d=F[2525];F[e+32>>2]=F[2524];F[e+36>>2]=d;d=F[2523];F[e+24>>2]=F[2522];F[e+28>>2]=d;d=F[2521];F[e+16>>2]=F[2520];F[e+20>>2]=d;g=F[b+8>>2];i=F[b+12>>2];h=F[b+20>>2];d=F[b+16>>2];f=d+5|0;h=f>>>0<5?h+1|0:h;a:{b:{if(g>>>0>>0&(h|0)>=(i|0)|(h|0)>(i|0)){d=ya(e+16|0);if(d>>>0>=2147483632){break a}c:{d:{if(d>>>0>=11){b=(d|15)+1|0;c=ka(b);F[e+8>>2]=b|-2147483648;F[e>>2]=c;F[e+4>>2]=d;b=c+d|0;break d}D[e+11|0]=d;b=d+e|0;c=e;if(!d){break c}}la(c,e+16|0,d)}D[b|0]=0;F[a>>2]=-2;b=a+4|0;if(D[e+11|0]>=0){a=F[e+4>>2];F[b>>2]=F[e>>2];F[b+4>>2]=a;F[b+8>>2]=F[e+8>>2];break b}ra(b,F[e>>2],F[e+4>>2]);if(D[e+11|0]>=0){break b}ja(F[e>>2]);break b}f=d+F[b>>2]|0;d=G[f|0]|G[f+1|0]<<8|(G[f+2|0]<<16|G[f+3|0]<<24);D[c|0]=d;D[c+1|0]=d>>>8;D[c+2|0]=d>>>16;D[c+3|0]=d>>>24;D[c+4|0]=G[f+4|0];d=F[b+20>>2];f=F[b+16>>2]+5|0;d=f>>>0<5?d+1|0:d;F[b+16>>2]=f;F[b+20>>2]=d;if(sa(c,1250,5)){d=ka(32);D[d+17|0]=0;D[d+16|0]=G[1494];c=G[1490]|G[1491]<<8|(G[1492]<<16|G[1493]<<24);b=G[1486]|G[1487]<<8|(G[1488]<<16|G[1489]<<24);D[d+8|0]=b;D[d+9|0]=b>>>8;D[d+10|0]=b>>>16;D[d+11|0]=b>>>24;D[d+12|0]=c;D[d+13|0]=c>>>8;D[d+14|0]=c>>>16;D[d+15|0]=c>>>24;c=G[1482]|G[1483]<<8|(G[1484]<<16|G[1485]<<24);b=G[1478]|G[1479]<<8|(G[1480]<<16|G[1481]<<24);D[d|0]=b;D[d+1|0]=b>>>8;D[d+2|0]=b>>>16;D[d+3|0]=b>>>24;D[d+4|0]=c;D[d+5|0]=c>>>8;D[d+6|0]=c>>>16;D[d+7|0]=c>>>24;F[a>>2]=-1;ra(a+4|0,d,17);ja(d);break b}g=F[b+12>>2];if((g|0)<=(d|0)&I[b+8>>2]<=f>>>0|(d|0)>(g|0)){d=ya(e+16|0);if(d>>>0>=2147483632){break a}e:{f:{if(d>>>0>=11){b=(d|15)+1|0;c=ka(b);F[e+8>>2]=b|-2147483648;F[e>>2]=c;F[e+4>>2]=d;b=c+d|0;break f}D[e+11|0]=d;b=d+e|0;c=e;if(!d){break e}}la(c,e+16|0,d)}D[b|0]=0;F[a>>2]=-2;b=a+4|0;if(D[e+11|0]>=0){a=F[e+4>>2];F[b>>2]=F[e>>2];F[b+4>>2]=a;F[b+8>>2]=F[e+8>>2];break b}ra(b,F[e>>2],F[e+4>>2]);if(D[e+11|0]>=0){break b}ja(F[e>>2]);break b}D[c+5|0]=G[f+F[b>>2]|0];g=F[b+20>>2];d=F[b+16>>2]+1|0;g=d?g:g+1|0;F[b+16>>2]=d;F[b+20>>2]=g;f=F[b+12>>2];if((f|0)<=(g|0)&I[b+8>>2]<=d>>>0|(g|0)>(f|0)){d=ya(e+16|0);if(d>>>0>=2147483632){break a}g:{h:{if(d>>>0>=11){b=(d|15)+1|0;c=ka(b);F[e+8>>2]=b|-2147483648;F[e>>2]=c;F[e+4>>2]=d;b=c+d|0;break h}D[e+11|0]=d;b=d+e|0;c=e;if(!d){break g}}la(c,e+16|0,d)}D[b|0]=0;F[a>>2]=-2;b=a+4|0;if(D[e+11|0]>=0){a=F[e+4>>2];F[b>>2]=F[e>>2];F[b+4>>2]=a;F[b+8>>2]=F[e+8>>2];break b}ra(b,F[e>>2],F[e+4>>2]);if(D[e+11|0]>=0){break b}ja(F[e>>2]);break b}D[c+6|0]=G[d+F[b>>2]|0];h=F[b+20>>2];d=F[b+16>>2]+1|0;h=d?h:h+1|0;F[b+16>>2]=d;F[b+20>>2]=h;f=F[b+12>>2];if((f|0)<=(h|0)&I[b+8>>2]<=d>>>0|(f|0)<(h|0)){d=ya(e+16|0);if(d>>>0>=2147483632){break a}i:{j:{if(d>>>0>=11){b=(d|15)+1|0;c=ka(b);F[e+8>>2]=b|-2147483648;F[e>>2]=c;F[e+4>>2]=d;b=c+d|0;break j}D[e+11|0]=d;b=d+e|0;c=e;if(!d){break i}}la(c,e+16|0,d)}D[b|0]=0;F[a>>2]=-2;b=a+4|0;if(D[e+11|0]>=0){a=F[e+4>>2];F[b>>2]=F[e>>2];F[b+4>>2]=a;F[b+8>>2]=F[e+8>>2];break b}ra(b,F[e>>2],F[e+4>>2]);if(D[e+11|0]>=0){break b}ja(F[e>>2]);break b}D[c+7|0]=G[d+F[b>>2]|0];g=F[b+20>>2];d=F[b+16>>2]+1|0;g=d?g:g+1|0;F[b+16>>2]=d;F[b+20>>2]=g;f=F[b+12>>2];if((f|0)<=(g|0)&I[b+8>>2]<=d>>>0|(g|0)>(f|0)){c=Eb(e,e+16|0);F[a>>2]=-2;b=a+4|0;if(D[c+11|0]>=0){a=F[c+4>>2];F[b>>2]=F[c>>2];F[b+4>>2]=a;F[b+8>>2]=F[c+8>>2];break b}ra(b,F[c>>2],F[c+4>>2]);if(D[c+11|0]>=0){break b}ja(F[c>>2]);break b}D[c+8|0]=G[d+F[b>>2]|0];d=F[b+20>>2];g=F[b+16>>2];f=g+1|0;i=f?d:d+1|0;F[b+16>>2]=f;F[b+20>>2]=i;i=F[b+8>>2];h=F[b+12>>2];g=g+3|0;d=g>>>0<3?d+1|0:d;if(g>>>0>i>>>0&(d|0)>=(h|0)|(d|0)>(h|0)){c=Eb(e,e+16|0);F[a>>2]=-2;b=a+4|0;if(D[c+11|0]>=0){a=F[c+4>>2];F[b>>2]=F[c>>2];F[b+4>>2]=a;F[b+8>>2]=F[c+8>>2];break b}ra(b,F[c>>2],F[c+4>>2]);if(D[c+11|0]>=0){break b}ja(F[c>>2]);break b}d=c;c=F[b>>2]+f|0;E[d+10>>1]=G[c|0]|G[c+1|0]<<8;g=F[b+20>>2];c=F[b+16>>2]+2|0;g=c>>>0<2?g+1|0:g;F[b+16>>2]=c;F[b+20>>2]=g;F[a+8>>2]=0;F[a+12>>2]=0;F[a>>2]=0;F[a+4>>2]=0}Z=e+48|0;return}za();v()}function Mb(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0;e=Z-96|0;Z=e;f=F[a+16>>2];D[e+92|0]=1;F[e+88>>2]=b;F[e+84>>2]=b;F[e+80>>2]=f;j=F[a+20>>2];d=F[j>>2];a:{b:{f=F[F[f+28>>2]+(b<<2)>>2];if(f>>>0>2]-d>>2>>>0){d=F[F[a+8>>2]+(F[d+(f<<2)>>2]<<2)>>2];f=F[a+4>>2];if(!G[f+84|0]){d=F[F[f+68>>2]+(d<<2)>>2]}F[e+72>>2]=0;F[e+76>>2]=0;j=e- -64|0;F[j>>2]=0;F[j+4>>2]=0;F[e+56>>2]=0;F[e+60>>2]=0;Ga(f,d,D[f+24|0],e+56|0);if((b|0)!=-1){f=b+1|0;j=(f>>>0)%3|0?f:b-2|0;m=((b>>>0)%3|0?-1:2)+b|0;while(1){d=j;f=m;c:{if(!F[a+28>>2]){break c}f=b+1|0;d=(f>>>0)%3|0?f:b-2|0;f=b-1|0;if((b>>>0)%3|0){break c}f=b+2|0}n=F[a+20>>2];b=F[n>>2];d=F[F[F[a+16>>2]+28>>2]+(d<<2)>>2];if(d>>>0>=F[n+4>>2]-b>>2>>>0){break b}d=F[F[a+8>>2]+(F[b+(d<<2)>>2]<<2)>>2];b=F[a+4>>2];if(!G[b+84|0]){d=F[F[b+68>>2]+(d<<2)>>2]}F[e+48>>2]=0;F[e+52>>2]=0;F[e+40>>2]=0;F[e+44>>2]=0;F[e+32>>2]=0;F[e+36>>2]=0;Ga(b,d,D[b+24|0],e+32|0);d=F[a+20>>2];b=F[d>>2];f=F[F[F[a+16>>2]+28>>2]+(f<<2)>>2];if(f>>>0>=F[d+4>>2]-b>>2>>>0){break a}d=F[F[a+8>>2]+(F[b+(f<<2)>>2]<<2)>>2];b=F[a+4>>2];if(!G[b+84|0]){d=F[F[b+68>>2]+(d<<2)>>2]}F[e+24>>2]=0;F[e+28>>2]=0;F[e+16>>2]=0;F[e+20>>2]=0;F[e+8>>2]=0;F[e+12>>2]=0;Ga(b,d,D[b+24|0],e+8|0);g=F[e+8>>2];b=F[e+56>>2];d=g-b|0;p=F[e+60>>2];t=F[e+12>>2]-(p+(b>>>0>g>>>0)|0)|0;h=F[e+40>>2];f=F[e+64>>2];n=h-f|0;u=F[e+68>>2];y=F[e+44>>2]-(u+(f>>>0>h>>>0)|0)|0;g=ki(d,t,n,y);w=o-g|0;x=i-(_+(g>>>0>o>>>0)|0)|0;i=w;h=F[e+16>>2];g=h-f|0;u=F[e+20>>2]-((f>>>0>h>>>0)+u|0)|0;k=F[e+32>>2];h=k-b|0;w=F[e+36>>2]-((b>>>0>k>>>0)+p|0)|0;b=ki(g,u,h,w);o=i+b|0;i=_+x|0;i=b>>>0>o>>>0?i+1|0:i;b=l;l=d;p=t;k=F[e+48>>2];f=F[e+72>>2];d=k-f|0;t=F[e+76>>2];x=F[e+52>>2]-(t+(f>>>0>k>>>0)|0)|0;l=ki(l,p,d,x);k=b+l|0;b=_+q|0;b=k>>>0>>0?b+1|0:b;l=F[e+24>>2];p=l-f|0;f=F[e+28>>2]-((f>>>0>l>>>0)+t|0)|0;q=ki(p,f,h,w);l=k-q|0;q=b-(_+(k>>>0>>0)|0)|0;b=ki(g,u,d,x);d=r-b|0;b=s-(_+(b>>>0>r>>>0)|0)|0;s=ki(p,f,n,y);r=s+d|0;b=_+b|0;s=r>>>0>>0?b+1|0:b;b=F[e+88>>2];f=F[e+80>>2];d:{if(G[e+92|0]){e:{f:{g:{h:{if((b|0)==-1){break h}d=b+1|0;b=(d>>>0)%3|0?d:b-2|0;if((b|0)==-1|F[F[f>>2]+(b>>>3&536870908)>>2]>>>b&1){break h}b=F[F[F[f+64>>2]+12>>2]+(b<<2)>>2];if((b|0)!=-1){break g}}F[e+88>>2]=-1;break f}d=b+1|0;b=(d>>>0)%3|0?d:b-2|0;F[e+88>>2]=b;if((b|0)!=-1){break e}}b=F[e+84>>2];d=-1;i:{if((b|0)==-1){break i}j:{if((b>>>0)%3|0){b=b-1|0;break j}b=b+2|0;d=-1;if((b|0)==-1){break i}}d=-1;if(F[F[f>>2]+(b>>>3&536870908)>>2]>>>b&1){break i}b=F[F[F[f+64>>2]+12>>2]+(b<<2)>>2];d=-1;if((b|0)==-1){break i}d=b-1|0;if((b>>>0)%3|0){break i}d=b+2|0}D[e+92|0]=0;F[e+88>>2]=d;break d}if((b|0)!=F[e+84>>2]){break d}F[e+88>>2]=-1;break d}d=-1;k:{if((b|0)==-1){break k}l:{if((b>>>0)%3|0){b=b-1|0;break l}b=b+2|0;d=-1;if((b|0)==-1){break k}}d=-1;if(F[F[f>>2]+(b>>>3&536870908)>>2]>>>b&1){break k}b=F[F[F[f+64>>2]+12>>2]+(b<<2)>>2];d=-1;if((b|0)==-1){break k}d=b-1|0;if((b>>>0)%3|0){break k}d=b+2|0}F[e+88>>2]=d}b=F[e+88>>2];if((b|0)!=-1){continue}break}}b=s>>31;f=b^r;d=f-b|0;b=(b^s)-((b>>>0>f>>>0)+b|0)|0;m=-1;f=2147483647;g=q>>31;h=g^l;j=h-g|0;n=(g^q)-((h>>>0>>0)+g|0)|0;h=n;k=j^-1;g=h^2147483647;n=i;m:{n:{if(!F[a+28>>2]){if((b|0)==(g|0)&d>>>0>k>>>0|b>>>0>g>>>0){break m}b=b+h|0;a=d+j|0;b=a>>>0>>0?b+1|0:b;f=a;g=i;a=g>>31;d=a;m=d^o;a=m-d|0;i=a;d=(d^g)-((d>>>0>m>>>0)+d|0)|0;a=a+f|0;d=d^2147483647;i=(d|0)==(b|0)&(i^-1)>>>0>>0|b>>>0>d>>>0;a=i?-1:a;if(!(i&0)&(a|0)<=536870912|(a|0)<536870912){break m}b=0;a=a>>>29|0;break n}o:{if((b|0)==(g|0)&d>>>0>k>>>0|b>>>0>g>>>0){break o}b=b+h|0;a=d+j|0;b=a>>>0>>0?b+1|0:b;k=i;d=i>>31;h=d^o;i=h-d|0;j=(d^k)-((d>>>0>h>>>0)+d|0)|0;g=j^2147483647;d=a;a=i;if((g|0)==(b|0)&d>>>0>(a^-1)>>>0|b>>>0>g>>>0){break o}b=b+j|0;m=a+d|0;b=m>>>0>>0?b+1|0:b;f=b;if(!b&m>>>0<536870913){break m}}b=f>>>29|0;a=(f&536870911)<<3|m>>>29}o=li(o,n,a,b);l=li(l,q,a,b);r=li(r,s,a,b)}F[c+8>>2]=o;F[c+4>>2]=l;F[c>>2]=r;Z=e+96|0;return}ta();v()}ta();v()}ta();v()}function Jg(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;e=Z-32|0;Z=e;a:{if(!hb(1,e+28|0,F[a+32>>2])){break a}if(!hb(1,e+24|0,F[a+32>>2])){break a}l=F[e+28>>2];if(l>>>0>1431655765){break a}d=F[a+32>>2];c=d;g=F[c+8>>2];b=F[c+16>>2];f=F[c+12>>2];c=F[c+20>>2];i=li(g-b|0,f-(c+(b>>>0>g>>>0)|0)|0,3,0);if(!_&i>>>0>>0|((c|0)>=(f|0)&b>>>0>=g>>>0|(c|0)>(f|0))){break a}g=G[b+F[d>>2]|0];b=b+1|0;c=b?c:c+1|0;F[d+16>>2]=b;F[d+20>>2]=c;b:{c:{if(!g){c=Z-32|0;Z=c;F[c+24>>2]=0;F[c+16>>2]=0;F[c+20>>2]=0;d:{e:{b=L(l,3);if(b){if(b>>>0>=1073741824){break e}d=L(l,12);n=ka(d);ma(n,0,d)}b=mc(b,1,F[a+32>>2],n);f:{g:{if(!(!l|!b)){d=0;while(1){h:{g=F[(d<<2)+n>>2];b=g>>>1|0;i:{if(g&1){if((b|0)>(h|0)){break h}b=0-b|0;break i}if((h^2147483647)>>>0>>0){break h}}g=b+h|0;F[c>>2]=g;h=F[(d+1<<2)+n>>2];b=h>>>1|0;j:{if(h&1){if((b|0)>(g|0)){break h}b=0-b|0;break j}if((g^2147483647)>>>0>>0){break h}}g=b+g|0;F[c+4>>2]=g;h=F[(d+2<<2)+n>>2];b=h>>>1|0;k:{if(h&1){if((b|0)>(g|0)){break h}b=0-b|0;break k}if((g^2147483647)>>>0>>0){break h}}d=d+3|0;h=b+g|0;F[c+8>>2]=h;mb(F[a+44>>2]+96|0,c);b=1;j=j+1|0;if((j|0)!=(l|0)){continue}break g}break}b=0;break g}if(!n){break f}}ja(n)}Z=c+32|0;break d}na();v()}if(!b){break a}n=F[e+24>>2];break c}n=F[e+24>>2];if(n>>>0<=255){if(!l){break c}while(1){l:{F[e+16>>2]=0;F[e+8>>2]=0;F[e+12>>2]=0;d=F[a+32>>2];b=d;g=F[b+16>>2];f=F[b+8>>2];c=F[b+20>>2];i=F[b+12>>2];b=i;if(f>>>0<=g>>>0&(c|0)>=(b|0)|(b|0)<(c|0)){break l}j=F[d>>2];m=G[j+g|0];b=c;h=g+1|0;b=h?b:b+1|0;F[d+16>>2]=h;F[d+20>>2]=b;F[e+8>>2]=m;m=f>>>0>>0&(c|0)>=(i|0)|(c|0)>(i|0);f=m?g:f;i=m?c:i;if((f|0)==(h|0)&(i|0)==(b|0)){break l}m=G[h+j|0];b=c;h=g+2|0;b=h>>>0<2?b+1|0:b;F[d+16>>2]=h;F[d+20>>2]=b;F[e+12>>2]=m;if((f|0)==(h|0)&(b|0)==(i|0)){break l}h=G[h+j|0];b=c;c=g+3|0;b=c>>>0<3?b+1|0:b;F[d+16>>2]=c;F[d+20>>2]=b;F[e+16>>2]=h;mb(F[a+44>>2]+96|0,e+8|0);k=k+1|0;if((k|0)!=(l|0)){continue}break c}break}k=0;break a}if(n>>>0<=65535){if(!l){break c}while(1){m:{F[e+16>>2]=0;F[e+8>>2]=0;F[e+12>>2]=0;j=F[a+32>>2];b=j;c=F[b+8>>2];d=F[b+12>>2];h=F[b+16>>2];b=F[b+20>>2];g=b;f=h+2|0;b=f>>>0<2?b+1|0:b;if(c>>>0>>0&(b|0)>=(d|0)|(b|0)>(d|0)){break m}m=F[j>>2];i=m+h|0;i=G[i|0]|G[i+1|0]<<8;F[j+16>>2]=f;F[j+20>>2]=b;F[e+8>>2]=i;b=g;i=h+4|0;b=i>>>0<4?b+1|0:b;if(c>>>0>>0&(b|0)>=(d|0)|(b|0)>(d|0)){break m}f=f+m|0;f=G[f|0]|G[f+1|0]<<8;F[j+16>>2]=i;F[j+20>>2]=b;F[e+12>>2]=f;f=c;b=g;c=h+6|0;b=c>>>0<6?b+1|0:b;if(c>>>0>f>>>0&(b|0)>=(d|0)|(b|0)>(d|0)){break m}d=i+m|0;d=G[d|0]|G[d+1|0]<<8;F[j+16>>2]=c;F[j+20>>2]=b;F[e+16>>2]=d;mb(F[a+44>>2]+96|0,e+8|0);k=k+1|0;if((k|0)!=(l|0)){continue}break c}break}k=0;break a}n:{if(n>>>0>2097151){break n}b=H[a+36>>1];if(((b<<8|b>>>8)&65535)>>>0<514){break n}if(!l){break c}while(1){o:{F[e+16>>2]=0;F[e+8>>2]=0;F[e+12>>2]=0;if(!hb(1,e+4|0,F[a+32>>2])){break o}F[e+8>>2]=F[e+4>>2];if(!hb(1,e+4|0,F[a+32>>2])){break o}F[e+12>>2]=F[e+4>>2];if(!hb(1,e+4|0,F[a+32>>2])){break o}F[e+16>>2]=F[e+4>>2];mb(F[a+44>>2]+96|0,e+8|0);k=k+1|0;if((k|0)!=(l|0)){continue}break c}break}k=0;break a}if(!l){break c}while(1){F[e+16>>2]=0;F[e+8>>2]=0;F[e+12>>2]=0;j=F[a+32>>2];b=j;c=F[b+8>>2];d=F[b+12>>2];h=F[b+16>>2];b=F[b+20>>2];g=b;f=h+4|0;b=f>>>0<4?b+1|0:b;if(c>>>0>>0&(b|0)>=(d|0)|(b|0)>(d|0)){break b}m=F[j>>2];i=m+h|0;i=G[i|0]|G[i+1|0]<<8|(G[i+2|0]<<16|G[i+3|0]<<24);F[j+16>>2]=f;F[j+20>>2]=b;F[e+8>>2]=i;b=g;i=h+8|0;b=i>>>0<8?b+1|0:b;if(c>>>0>>0&(b|0)>=(d|0)|(b|0)>(d|0)){break b}f=f+m|0;f=G[f|0]|G[f+1|0]<<8|(G[f+2|0]<<16|G[f+3|0]<<24);F[j+16>>2]=i;F[j+20>>2]=b;F[e+12>>2]=f;f=c;b=g;c=h+12|0;b=c>>>0<12?b+1|0:b;if(c>>>0>f>>>0&(b|0)>=(d|0)|(b|0)>(d|0)){break b}d=i+m|0;d=G[d|0]|G[d+1|0]<<8|(G[d+2|0]<<16|G[d+3|0]<<24);F[j+16>>2]=c;F[j+20>>2]=b;F[e+16>>2]=d;mb(F[a+44>>2]+96|0,e+8|0);k=k+1|0;if((k|0)!=(l|0)){continue}break}}F[F[a+4>>2]+80>>2]=n;k=1;break a}k=0}Z=e+32|0;return k|0}function te(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;g=Z-16|0;Z=g;f=1;m=$[F[F[a>>2]+24>>2]](a)|0;a:{if((m|0)<=0){break a}r=a+48|0;f=0;while(1){b:{c:{if(!F[($[F[F[a>>2]+28>>2]](a)|0)+40>>2]){break c}o=l<<2;d=F[o+F[a+36>>2]>>2];c=F[d+8>>2];e=bb(d);if(!e){break c}h=F[($[F[F[a>>2]+28>>2]](a)|0)+40>>2];F[g+12>>2]=F[c+56>>2];d=ka(32);F[g>>2]=d;F[g+4>>2]=24;F[g+8>>2]=-2147483616;c=G[1196]|G[1197]<<8|(G[1198]<<16|G[1199]<<24);b=G[1192]|G[1193]<<8|(G[1194]<<16|G[1195]<<24);D[d+16|0]=b;D[d+17|0]=b>>>8;D[d+18|0]=b>>>16;D[d+19|0]=b>>>24;D[d+20|0]=c;D[d+21|0]=c>>>8;D[d+22|0]=c>>>16;D[d+23|0]=c>>>24;c=G[1188]|G[1189]<<8|(G[1190]<<16|G[1191]<<24);b=G[1184]|G[1185]<<8|(G[1186]<<16|G[1187]<<24);D[d+8|0]=b;D[d+9|0]=b>>>8;D[d+10|0]=b>>>16;D[d+11|0]=b>>>24;D[d+12|0]=c;D[d+13|0]=c>>>8;D[d+14|0]=c>>>16;D[d+15|0]=c>>>24;c=G[1180]|G[1181]<<8|(G[1182]<<16|G[1183]<<24);b=G[1176]|G[1177]<<8|(G[1178]<<16|G[1179]<<24);D[d|0]=b;D[d+1|0]=b>>>8;D[d+2|0]=b>>>16;D[d+3|0]=b>>>24;D[d+4|0]=c;D[d+5|0]=c>>>8;D[d+6|0]=c>>>16;D[d+7|0]=c>>>24;D[d+24|0]=0;c=h+16|0;b=F[c>>2];d:{e:{if(!b){break e}i=F[g+12>>2];d=c;while(1){k=(i|0)>F[b+16>>2];d=k?d:b;b=F[(k?b+4|0:b)>>2];if(b){continue}break}if((c|0)==(d|0)|(i|0)>2]){break e}b=F[d+24>>2];if(!b){break e}i=d+20|0;d=G[g+11|0];c=d<<24>>24<0;k=c?F[g>>2]:g;d=c?F[g+4>>2]:d;while(1){c=G[b+27|0];j=c<<24>>24<0;c=j?F[b+20>>2]:c;p=c>>>0>>0;f:{g:{h:{i:{j:{k:{n=p?c:d;if(n){j=j?F[b+16>>2]:b+16|0;q=sa(k,j,n);if(q){break k}if(c>>>0<=d>>>0){break j}break f}if(c>>>0<=d>>>0){break i}break f}if((q|0)<0){break f}}c=sa(j,k,n);if(c){break h}}if(p){break g}d=gc(i,g);break d}if((c|0)<0){break g}d=gc(i,g);break d}b=b+4|0}b=F[b>>2];if(b){continue}break}}d=gc(h,g)}if(D[g+11|0]<0){ja(F[g>>2])}if(!d){break c}d=0;c=F[F[o+F[a+36>>2]>>2]+8>>2];if(!F[c+64>>2]){b=ka(32);F[b+16>>2]=0;F[b+20>>2]=0;F[b+8>>2]=0;F[b>>2]=0;F[b+4>>2]=0;F[b+24>>2]=0;F[b+28>>2]=0;f=F[c+64>>2];F[c+64>>2]=b;if(f){b=F[f>>2];if(b){F[f+4>>2]=b;ja(b)}ja(f);b=F[c+64>>2]}F[c>>2]=b;f=F[b+20>>2];F[c+8>>2]=F[b+16>>2];F[c+12>>2]=f;f=F[b+24>>2];b=F[b+28>>2];F[c+48>>2]=0;F[c+52>>2]=0;F[c+40>>2]=0;F[c+44>>2]=0;F[c+16>>2]=f;F[c+20>>2]=b}l:{D[c+24|0]=G[e+24|0];F[c+28>>2]=F[e+28>>2];D[c+32|0]=G[e+32|0];b=F[e+44>>2];F[c+40>>2]=F[e+40>>2];F[c+44>>2]=b;b=F[e+52>>2];F[c+48>>2]=F[e+48>>2];F[c+52>>2]=b;F[c+56>>2]=F[e+56>>2];b=F[e+12>>2];F[c+8>>2]=F[e+8>>2];F[c+12>>2]=b;b=F[e+20>>2];F[c+16>>2]=F[e+16>>2];F[c+20>>2]=b;F[c+60>>2]=F[e+60>>2];f=F[e>>2];m:{if(!f){F[c>>2]=0;b=1;break m}h=F[c>>2];b=0;if(!h){break m}b=F[f>>2];f=F[f+4>>2]-b|0;md(h,b,f,0);b=1}if(!b){break l}D[c+84|0]=G[e+84|0];F[c+80>>2]=F[e+80>>2];if((c|0)!=(e|0)){gb(c+68|0,F[e+68>>2],F[e+72>>2])}n:{h=F[e+88>>2];o:{if(h){f=ka(40);e=F[h>>2];F[f+16>>2]=0;F[f+8>>2]=0;F[f+12>>2]=0;F[f>>2]=e;e=F[h+12>>2];b=F[h+8>>2];if((e|0)!=(b|0)){b=e-b|0;if((b|0)<0){break n}e=ka(b);F[f+12>>2]=e;F[f+8>>2]=e;F[f+16>>2]=b+e;b=F[h+8>>2];i=F[h+12>>2];p:{if((b|0)==(i|0)){break p}k=i+(b^-1)|0;j=i-b&7;if(j){while(1){D[e|0]=G[b|0];e=e+1|0;b=b+1|0;d=d+1|0;if((j|0)!=(d|0)){continue}break}}if(k>>>0<7){break p}while(1){D[e|0]=G[b|0];D[e+1|0]=G[b+1|0];D[e+2|0]=G[b+2|0];D[e+3|0]=G[b+3|0];D[e+4|0]=G[b+4|0];D[e+5|0]=G[b+5|0];D[e+6|0]=G[b+6|0];D[e+7|0]=G[b+7|0];e=e+8|0;b=b+8|0;if((i|0)!=(b|0)){continue}break}}F[f+12>>2]=e}d=F[h+36>>2];F[f+32>>2]=F[h+32>>2];F[f+36>>2]=d;d=F[h+28>>2];F[f+24>>2]=F[h+24>>2];F[f+28>>2]=d;e=F[c+88>>2];F[c+88>>2]=f;if(e){break o}break l}e=F[c+88>>2];F[c+88>>2]=0;if(!e){break l}}d=F[e+8>>2];if(d){F[e+12>>2]=d;ja(d)}ja(e);break l}na();v()}break b}d=F[F[a+36>>2]+(l<<2)>>2];if(!($[F[F[d>>2]+24>>2]](d,r)|0)){break a}}l=l+1|0;f=(m|0)<=(l|0);if((l|0)!=(m|0)){continue}break}}Z=g+16|0;return f|0}function Ld(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;g=Z+-64|0;Z=g;F[g+56>>2]=0;F[g+48>>2]=0;F[g+52>>2]=0;F[g+40>>2]=0;F[g+44>>2]=0;F[g+32>>2]=0;F[g+36>>2]=0;F[g+24>>2]=0;F[g+28>>2]=0;F[g+16>>2]=0;F[g+20>>2]=0;F[g+8>>2]=0;F[g+12>>2]=0;h=g+8|0;a:{b:{if(!H[b+38>>1]){break b}if(!Ta(1,h+12|0,b)){break b}e=F[b+8>>2];f=F[b+16>>2];j=e-f|0;k=F[h+12>>2];e=F[b+12>>2]-(F[b+20>>2]+(e>>>0>>0)|0)|0;if(j>>>0>>6>>>0&(e|0)<=0|(e|0)<0){break b}e=F[h>>2];d=F[h+4>>2]-e>>2;c:{if(d>>>0>>0){qa(h,k-d|0);k=F[h+12>>2];break c}if(d>>>0<=k>>>0){break c}F[h+4>>2]=e+(k<<2)}i=1;if(!k){break a}e=F[b+16>>2];d=F[b+20>>2];r=F[h>>2];l=F[b+8>>2];o=F[b+12>>2];j=0;while(1){i=0;if((d|0)>=(o|0)&e>>>0>=l>>>0|(d|0)>(o|0)){break a}i=F[b>>2];p=G[i+e|0];e=e+1|0;d=e?d:d+1|0;F[b+16>>2]=e;F[b+20>>2]=d;f=p>>>2|0;m=0;d:{e:{f:{g:{s=p&3;switch(s|0){case 3:break g;case 0:break e;default:break f}}f=f+j|0;i=0;if(f>>>0>=k>>>0){break a}ma(r+(j<<2)|0,0,(p&252)+4|0);j=f;break d}while(1){if((e|0)==(l|0)&(d|0)==(o|0)){break b}k=G[e+i|0];e=e+1|0;d=e?d:d+1|0;F[b+16>>2]=e;F[b+20>>2]=d;f=k<<(m<<3|6)|f;m=m+1|0;if((s|0)!=(m|0)){continue}break}}F[r+(j<<2)>>2]=f}j=j+1|0;k=F[h+12>>2];if(j>>>0>>0){continue}break}d=h+16|0;o=F[h>>2];f=F[h+16>>2];e=F[h+20>>2]-f|0;h:{if(e>>>0<=4194303){qa(d,1048576-(e>>>2|0)|0);break h}if((e|0)==4194304){break h}F[h+20>>2]=f+4194304}e=h+28|0;j=F[e>>2];f=F[h+32>>2]-j>>3;i:{if(f>>>0>>0){_a(e,k-f|0);j=F[e>>2];break i}if(f>>>0>k>>>0){F[h+32>>2]=(k<<3)+j}if(!k){break b}}l=F[d>>2];d=0;i=0;while(1){e=o+(d<<2)|0;h=F[e>>2];m=(d<<3)+j|0;f=i;F[m+4>>2]=f;F[m>>2]=h;e=F[e>>2];i=e+f|0;if(i>>>0>1048576){break b}j:{if(f>>>0>=i>>>0){break j}m=0;h=e&7;if(h){while(1){F[l+(f<<2)>>2]=d;f=f+1|0;m=m+1|0;if((h|0)!=(m|0)){continue}break}}if(e-1>>>0<=6){break j}while(1){e=l+(f<<2)|0;F[e>>2]=d;F[e+28>>2]=d;F[e+24>>2]=d;F[e+20>>2]=d;F[e+16>>2]=d;F[e+12>>2]=d;F[e+8>>2]=d;F[e+4>>2]=d;f=f+8|0;if((i|0)!=(f|0)){continue}break}}d=d+1|0;if((k|0)!=(d|0)){continue}break}n=(i|0)==1048576}i=n}k:{if(!i|(F[g+20>>2]?0:a)){break k}i=0;j=Z-16|0;Z=j;l:{if(!Sa(1,j+8|0,b)){break l}d=F[b+8>>2];f=F[b+16>>2];l=d-f|0;n=F[j+12>>2];h=F[b+20>>2];d=F[b+12>>2]-(h+(d>>>0>>0)|0)|0;e=F[j+8>>2];if((n|0)==(d|0)&e>>>0>l>>>0|d>>>0>>0){break l}d=h+n|0;l=e+f|0;d=l>>>0>>0?d+1|0:d;F[b+16>>2]=l;F[b+20>>2]=d;if((e|0)<=0){break l}b=f+F[b>>2]|0;F[g+48>>2]=b;d=e-1|0;f=d+b|0;l=G[f|0];m:{if(l>>>0<=63){F[g+52>>2]=d;b=G[f|0]&63;break m}n:{switch((l>>>6|0)-1|0){case 0:if(e>>>0<2){break l}d=e-2|0;F[g+52>>2]=d;b=b+d|0;b=G[b+1|0]<<8&16128|G[b|0];break m;case 1:if(e>>>0<3){break l}d=e-3|0;F[g+52>>2]=d;b=b+d|0;b=G[b+1|0]<<8|G[b+2|0]<<16&4128768|G[b|0];break m;default:break n}}d=e-4|0;F[g+52>>2]=d;b=b+d|0;b=(G[b|0]|G[b+1|0]<<8|(G[b+2|0]<<16|G[b+3|0]<<24))&1073741823}F[g+56>>2]=b+4194304;i=b>>>0<1069547520}Z=j+16|0;if(!i){break k}if(!a){t=1;break k}b=F[g+52>>2];f=F[g+56>>2];d=F[g+36>>2];e=F[g+48>>2];j=F[g+24>>2];while(1){o:{if(f>>>0>4194303){break o}while(1){if((b|0)<=0){break o}b=b-1|0;F[g+52>>2]=b;f=G[b+e|0]|f<<8;F[g+56>>2]=f;if(f>>>0<4194304){continue}break}}i=f&1048575;l=F[j+(i<<2)>>2];n=d+(l<<3)|0;f=(L(F[n>>2],f>>>20|0)+i|0)-F[n+4>>2]|0;F[g+56>>2]=f;F[(q<<2)+c>>2]=l;t=1;q=q+1|0;if((q|0)!=(a|0)){continue}break}}a=F[g+36>>2];if(a){F[g+40>>2]=a;ja(a)}a=F[g+24>>2];if(a){F[g+28>>2]=a;ja(a)}a=F[g+8>>2];if(a){F[g+12>>2]=a;ja(a)}Z=g- -64|0;return t}function kh(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=M(0),f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=M(0),p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;if(F[c>>2]==F[c+4>>2]){m=F[d+80>>2];u=Z-16|0;Z=u;g=F[a+4>>2];k=G[b+24|0];h=F[d+48>>2];n=F[F[d>>2]>>2];c=u+8|0;F[c>>2]=1065353216;d=c;J[c>>2]=M(-1<>2];c=ka(k<<2);a:{if(!m|!k){break a}p=h+n|0;o=J[d>>2];n=F[a+8>>2];v=F[b>>2];d=F[b+48>>2];g=F[b+40>>2];w=F[b+44>>2];if(!G[b+84|0]){f=F[b+68>>2];s=k&254;t=k&1;a=0;while(1){b=F[v>>2];l=ki(g,w,F[f+(i<<2)>>2],0)+d|0;h=la(c,b+l|0,g);b=0;q=0;if((k|0)!=1){while(1){l=p+(a<<2)|0;j=b<<2;e=M(R(M(M(o*M(J[j+h>>2]-J[n+j>>2]))+M(.5))));b:{if(M(N(e))>2]=r;j=j|4;e=M(R(M(M(o*M(J[j+h>>2]-J[n+j>>2]))+M(.5))));c:{if(M(N(e))>2]=j;b=b+2|0;a=a+2|0;q=q+2|0;if((s|0)!=(q|0)){continue}break}}if(t){l=p+(a<<2)|0;b=b<<2;e=M(R(M(M(o*M(J[b+h>>2]-J[b+n>>2]))+M(.5))));d:{if(M(N(e))>2]=b;a=a+1|0}i=i+1|0;if((m|0)!=(i|0)){continue}break}break a}s=k&254;t=k&1;a=0;while(1){b=F[v>>2];h=ki(g,w,i,l)+d|0;j=la(c,b+h|0,g);b=0;q=0;if((k|0)!=1){while(1){h=p+(a<<2)|0;f=b<<2;e=M(R(M(M(o*M(J[f+j>>2]-J[f+n>>2]))+M(.5))));e:{if(M(N(e))>2]=r;f=f|4;e=M(R(M(M(o*M(J[f+j>>2]-J[f+n>>2]))+M(.5))));f:{if(M(N(e))>2]=f;b=b+2|0;a=a+2|0;q=q+2|0;if((s|0)!=(q|0)){continue}break}}if(t){h=p+(a<<2)|0;b=b<<2;e=M(R(M(M(o*M(J[b+j>>2]-J[b+n>>2]))+M(.5))));g:{if(M(N(e))>2]=b;a=a+1|0}b=l;i=i+1|0;b=i?b:b+1|0;l=b;if((i|0)!=(m|0)|b){continue}break}}ja(c);Z=u+16|0;return 1}j=Z-16|0;Z=j;m=F[a+4>>2];i=G[b+24|0];g=F[d+48>>2];h=F[F[d>>2]>>2];d=j+8|0;F[d>>2]=1065353216;l=d;J[d>>2]=M(-1<>2];d=ka(i<<2);m=F[c+4>>2];q=F[c>>2];h:{if(!i|(m|0)==(q|0)){break h}n=h+g|0;c=m-q>>2;u=c>>>0<=1?1:c;o=J[l>>2];h=F[a+8>>2];v=F[b>>2];l=F[b+48>>2];m=F[b+40>>2];w=F[b+44>>2];if(G[b+84|0]){s=i&254;t=i&1;a=0;c=0;while(1){b=F[v>>2];g=ki(m,w,F[q+(c<<2)>>2],0)+l|0;p=la(d,b+g|0,m);b=0;k=0;if((i|0)!=1){while(1){g=n+(a<<2)|0;f=b<<2;e=M(R(M(M(o*M(J[f+p>>2]-J[h+f>>2]))+M(.5))));i:{if(M(N(e))>2]=r;f=f|4;e=M(R(M(M(o*M(J[f+p>>2]-J[h+f>>2]))+M(.5))));j:{if(M(N(e))>2]=f;b=b+2|0;a=a+2|0;k=k+2|0;if((s|0)!=(k|0)){continue}break}}if(t){g=n+(a<<2)|0;b=b<<2;e=M(R(M(M(o*M(J[b+p>>2]-J[b+h>>2]))+M(.5))));k:{if(M(N(e))>2]=b;a=a+1|0}c=c+1|0;if((u|0)!=(c|0)){continue}break}break h}s=F[b+68>>2];t=i&254;x=i&1;a=0;c=0;while(1){b=F[v>>2];g=ki(m,w,F[s+(F[q+(c<<2)>>2]<<2)>>2],0)+l|0;p=la(d,b+g|0,m);b=0;k=0;if((i|0)!=1){while(1){g=n+(a<<2)|0;f=b<<2;e=M(R(M(M(o*M(J[f+p>>2]-J[h+f>>2]))+M(.5))));l:{if(M(N(e))>2]=r;f=f|4;e=M(R(M(M(o*M(J[f+p>>2]-J[h+f>>2]))+M(.5))));m:{if(M(N(e))>2]=f;b=b+2|0;a=a+2|0;k=k+2|0;if((t|0)!=(k|0)){continue}break}}if(x){g=n+(a<<2)|0;b=b<<2;e=M(R(M(M(o*M(J[b+p>>2]-J[b+h>>2]))+M(.5))));n:{if(M(N(e))>2]=b;a=a+1|0}c=c+1|0;if((u|0)!=(c|0)){continue}break}}ja(d);Z=j+16|0;return 1} function Cd(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;c=F[a+4>>2];e=F[a>>2];f=(c-e|0)/144|0;if(f>>>0>>0){e=a;b=b-f|0;h=F[a+8>>2];c=F[a+4>>2];a:{if(b>>>0<=(h-c|0)/144>>>0){b:{if(!b){break b}a=c;f=b&7;if(f){while(1){va(a);a=a+144|0;d=d+1|0;if((f|0)!=(d|0)){continue}break}}c=L(b,144)+c|0;if((b-1&268435455)>>>0<7){break b}while(1){va(a);va(a+144|0);va(a+288|0);va(a+432|0);va(a+576|0);va(a+720|0);va(a+864|0);va(a+1008|0);a=a+1152|0;if((c|0)!=(a|0)){continue}break}}F[e+4>>2]=c;break a}c:{d:{e:{a=c;c=F[e>>2];i=(a-c|0)/144|0;a=i+b|0;if(a>>>0<29826162){c=(h-c|0)/144|0;f=c<<1;f=c>>>0>=14913080?29826161:a>>>0>>0?f:a;if(f){if(f>>>0>=29826162){break e}g=ka(L(f,144))}c=L(i,144)+g|0;a=c;h=b&7;if(h){while(1){va(a);a=a+144|0;d=d+1|0;if((h|0)!=(d|0)){continue}break}}h=L(b,144)+c|0;if((b-1&268435455)>>>0>=7){while(1){va(a);va(a+144|0);va(a+288|0);va(a+432|0);va(a+576|0);va(a+720|0);va(a+864|0);va(a+1008|0);a=a+1152|0;if((h|0)!=(a|0)){continue}break}}b=L(f,144)+g|0;d=F[e+4>>2];f=F[e>>2];if((d|0)==(f|0)){break d}while(1){c=c-144|0;d=d-144|0;a=d;F[c>>2]=F[a>>2];F[c+4>>2]=F[a+4>>2];F[c+8>>2]=F[a+8>>2];F[c+12>>2]=F[a+12>>2];F[a+12>>2]=0;F[a+4>>2]=0;F[a+8>>2]=0;F[c+16>>2]=F[a+16>>2];F[c+20>>2]=F[a+20>>2];F[c+24>>2]=F[a+24>>2];F[a+24>>2]=0;F[a+16>>2]=0;F[a+20>>2]=0;g=G[a+28|0];F[c+40>>2]=0;F[c+32>>2]=0;F[c+36>>2]=0;D[c+28|0]=g;F[c+32>>2]=F[a+32>>2];F[c+36>>2]=F[a+36>>2];F[c+40>>2]=F[a+40>>2];F[a+40>>2]=0;F[a+32>>2]=0;F[a+36>>2]=0;F[c+52>>2]=0;F[c+44>>2]=0;F[c+48>>2]=0;F[c+44>>2]=F[a+44>>2];F[c+48>>2]=F[a+48>>2];F[c+52>>2]=F[a+52>>2];F[a+52>>2]=0;F[a+44>>2]=0;F[a+48>>2]=0;g=c- -64|0;F[g>>2]=0;F[c+56>>2]=0;F[c+60>>2]=0;F[c+56>>2]=F[a+56>>2];F[c+60>>2]=F[a+60>>2];i=g;g=a- -64|0;F[i>>2]=F[g>>2];F[g>>2]=0;F[a+56>>2]=0;F[a+60>>2]=0;F[c+68>>2]=F[a+68>>2];g=F[a+72>>2];F[c+84>>2]=0;F[c+76>>2]=0;F[c+80>>2]=0;F[c+72>>2]=g;F[c+76>>2]=F[a+76>>2];F[c+80>>2]=F[a+80>>2];F[c+84>>2]=F[a+84>>2];F[a+84>>2]=0;F[a+76>>2]=0;F[a+80>>2]=0;F[c+96>>2]=0;F[c+88>>2]=0;F[c+92>>2]=0;F[c+88>>2]=F[a+88>>2];F[c+92>>2]=F[a+92>>2];F[c+96>>2]=F[a+96>>2];F[a+96>>2]=0;F[a+88>>2]=0;F[a+92>>2]=0;g=G[a+100|0];F[c+112>>2]=0;F[c+104>>2]=0;F[c+108>>2]=0;D[c+100|0]=g;F[c+104>>2]=F[a+104>>2];F[c+108>>2]=F[a+108>>2];F[c+112>>2]=F[a+112>>2];F[a+112>>2]=0;F[a+104>>2]=0;F[a+108>>2]=0;F[c+124>>2]=0;F[c+116>>2]=0;F[c+120>>2]=0;F[c+116>>2]=F[a+116>>2];F[c+120>>2]=F[a+120>>2];F[c+124>>2]=F[a+124>>2];F[a+124>>2]=0;F[a+116>>2]=0;F[a+120>>2]=0;g=F[a+128>>2];F[c+140>>2]=0;F[c+132>>2]=0;F[c+136>>2]=0;F[c+128>>2]=g;F[c+132>>2]=F[a+132>>2];F[c+136>>2]=F[a+136>>2];F[c+140>>2]=F[a+140>>2];F[a+140>>2]=0;F[a+132>>2]=0;F[a+136>>2]=0;if((a|0)!=(f|0)){continue}break}F[e+8>>2]=b;a=F[e+4>>2];F[e+4>>2]=h;d=F[e>>2];F[e>>2]=c;if((a|0)==(d|0)){break c}while(1){b=a-144|0;c=F[b+132>>2];if(c){F[a-8>>2]=c;ja(c)}c=F[a-28>>2];if(c){F[a-24>>2]=c;ja(c)}c=F[a-40>>2];if(c){F[a-36>>2]=c;ja(c)}Gb(a-140|0);a=b;if((d|0)!=(a|0)){continue}break}break c}na();v()}oa();v()}F[e+8>>2]=b;F[e+4>>2]=h;F[e>>2]=c}if(d){ja(d)}}return}if(b>>>0>>0){e=e+L(b,144)|0;if((e|0)!=(c|0)){while(1){b=c-144|0;d=F[b+132>>2];if(d){F[c-8>>2]=d;ja(d)}d=F[c-28>>2];if(d){F[c-24>>2]=d;ja(d)}d=F[c-40>>2];if(d){F[c-36>>2]=d;ja(d)}Gb(c-140|0);c=b;if((e|0)!=(c|0)){continue}break}}F[a+4>>2]=e}}function Yc(a){var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;F[a+56>>2]=F[a+52>>2];F[a+44>>2]=F[a+40>>2];b=F[a+64>>2];c=F[b+24>>2];if((c|0)==F[b+28>>2]){return 1}a:{b:{c:{while(1){g=i;i=F[(k<<2)+c>>2];d:{if((i|0)==-1){i=g;break d}b=F[a+56>>2];e:{if((b|0)!=F[a+60>>2]){F[b>>2]=g;F[a+56>>2]=b+4;break e}d=F[a+52>>2];e=b-d|0;h=e>>2;c=h+1|0;if(c>>>0>=1073741824){break c}f=e>>>1|0;f=e>>>0>=2147483644?1073741823:c>>>0>>0?f:c;if(f){if(f>>>0>=1073741824){break b}e=ka(f<<2)}else{e=0}c=e+(h<<2)|0;F[c>>2]=g;h=c+4|0;if((b|0)!=(d|0)){while(1){c=c-4|0;b=b-4|0;F[c>>2]=F[b>>2];if((b|0)!=(d|0)){continue}break}}F[a+60>>2]=e+(f<<2);F[a+56>>2]=h;F[a+52>>2]=c;if(!d){break e}ja(d)}f:{g:{if(!(F[F[a+12>>2]+(k>>>3&536870908)>>2]>>>k&1)){break g}e=i+1|0;e=(e>>>0)%3|0?e:i-2|0;if((e|0)==-1|F[F[a>>2]+(e>>>3&536870908)>>2]>>>e&1){break g}e=F[F[F[a+64>>2]+12>>2]+(e<<2)>>2];if((e|0)==-1){break g}b=e+1|0;b=(b>>>0)%3|0?b:e-2|0;if((b|0)==-1){break g}c=F[a+64>>2];f=F[a>>2];while(1){e=b;b=-1;d=e+1|0;d=(d>>>0)%3|0?d:e-2|0;h:{if((d|0)==-1|F[f+(d>>>3&536870908)>>2]>>>d&1){break h}d=F[F[c+12>>2]+(d<<2)>>2];if((d|0)==-1){break h}b=d+1|0;b=(b>>>0)%3|0?b:d-2|0}if((b|0)!=(i|0)){if((b|0)==-1){break f}continue}break}return 0}e=i}F[F[a+28>>2]+(e<<2)>>2]=g;b=F[a+44>>2];i:{if((b|0)!=F[a+48>>2]){F[b>>2]=e;F[a+44>>2]=b+4;break i}d=F[a+40>>2];i=b-d|0;h=i>>2;c=h+1|0;if(c>>>0>=1073741824){break a}f=i>>>1|0;f=i>>>0>=2147483644?1073741823:c>>>0>>0?f:c;if(f){if(f>>>0>=1073741824){break b}i=ka(f<<2)}else{i=0}c=i+(h<<2)|0;F[c>>2]=e;h=c+4|0;if((b|0)!=(d|0)){while(1){c=c-4|0;b=b-4|0;F[c>>2]=F[b>>2];if((b|0)!=(d|0)){continue}break}}F[a+48>>2]=i+(f<<2);F[a+44>>2]=h;F[a+40>>2]=c;if(!d){break i}ja(d)}i=g+1|0;b=F[a+64>>2];if((e|0)==-1){break d}j:{if((e>>>0)%3|0){c=e-1|0;break j}c=e+2|0;if((c|0)==-1){break d}}d=F[F[b+12>>2]+(c<<2)>>2];if((d|0)==-1){break d}f=d+((d>>>0)%3|0?-1:2)|0;if((f|0)==-1|(e|0)==(f|0)){break d}while(1){b=f+1|0;b=(b>>>0)%3|0?b:f-2|0;if(F[F[a>>2]+(b>>>3&536870908)>>2]>>>b&1){b=F[a+56>>2];k:{if((b|0)!=F[a+60>>2]){F[b>>2]=i;F[a+56>>2]=b+4;break k}d=F[a+52>>2];g=b-d|0;j=g>>2;c=j+1|0;if(c>>>0>=1073741824){break c}h=g>>>1|0;h=g>>>0>=2147483644?1073741823:c>>>0>>0?h:c;if(h){if(h>>>0>=1073741824){break b}g=ka(h<<2)}else{g=0}c=g+(j<<2)|0;F[c>>2]=i;j=c+4|0;if((b|0)!=(d|0)){while(1){c=c-4|0;b=b-4|0;F[c>>2]=F[b>>2];if((b|0)!=(d|0)){continue}break}}F[a+60>>2]=g+(h<<2);F[a+56>>2]=j;F[a+52>>2]=c;if(!d){break k}ja(d)}d=i+1|0;b=F[a+44>>2];l:{if((b|0)!=F[a+48>>2]){F[b>>2]=f;F[a+44>>2]=b+4;break l}h=F[a+40>>2];g=b-h|0;l=g>>2;c=l+1|0;if(c>>>0>=1073741824){break a}j=g>>>1|0;j=g>>>0>=2147483644?1073741823:c>>>0>>0?j:c;if(j){if(j>>>0>=1073741824){break b}g=ka(j<<2)}else{g=0}c=g+(l<<2)|0;F[c>>2]=f;l=c+4|0;if((b|0)!=(h|0)){while(1){c=c-4|0;b=b-4|0;F[c>>2]=F[b>>2];if((b|0)!=(h|0)){continue}break}}F[a+48>>2]=g+(j<<2);F[a+44>>2]=l;F[a+40>>2]=c;if(!h){break l}ja(h)}g=i;i=d}F[F[a+28>>2]+(f<<2)>>2]=g;b=F[a+64>>2];m:{if((f>>>0)%3|0){c=f-1|0;break m}c=f+2|0;if((c|0)==-1){break d}}d=F[F[b+12>>2]+(c<<2)>>2];if((d|0)==-1){break d}f=d+((d>>>0)%3|0?-1:2)|0;if((f|0)==-1){break d}if((e|0)!=(f|0)){continue}break}}k=k+1|0;c=F[b+24>>2];if(k>>>0>2]-c>>2>>>0){continue}break}return 1}na();v()}oa();v()}na();v()}function Kb(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0;f=Z-96|0;Z=f;e=F[a+16>>2];D[f+92|0]=1;F[f+88>>2]=b;F[f+84>>2]=b;F[f+80>>2]=e;a:{if((b|0)==-1){break a}j=F[a+20>>2];d=F[j>>2];e=F[F[e>>2]+(b<<2)>>2];if(e>>>0>=F[j+4>>2]-d>>2>>>0){break a}e=F[F[a+8>>2]+(F[d+(e<<2)>>2]<<2)>>2];d=F[a+4>>2];if(!G[d+84|0]){e=F[F[d+68>>2]+(e<<2)>>2]}F[f+72>>2]=0;F[f+76>>2]=0;j=f- -64|0;F[j>>2]=0;F[j+4>>2]=0;F[f+56>>2]=0;F[f+60>>2]=0;Ga(d,e,D[d+24|0],f+56|0);e=b+1|0;j=(e>>>0)%3|0?e:b-2|0;n=((b>>>0)%3|0?-1:2)+b|0;b:{c:{while(1){d=j;e=n;d:{if(!F[a+28>>2]){break d}e=b+1|0;d=(e>>>0)%3|0?e:b-2|0;e=b-1|0;if((b>>>0)%3|0){break d}e=b+2|0}if((d|0)==-1){break b}m=F[a+20>>2];b=F[m>>2];d=F[F[F[a+16>>2]>>2]+(d<<2)>>2];if(d>>>0>=F[m+4>>2]-b>>2>>>0){break b}d=F[F[a+8>>2]+(F[(d<<2)+b>>2]<<2)>>2];b=F[a+4>>2];if(!G[b+84|0]){d=F[F[b+68>>2]+(d<<2)>>2]}F[f+48>>2]=0;F[f+52>>2]=0;F[f+40>>2]=0;F[f+44>>2]=0;F[f+32>>2]=0;F[f+36>>2]=0;Ga(b,d,D[b+24|0],f+32|0);if((e|0)==-1){break c}d=F[a+20>>2];b=F[d>>2];e=F[F[F[a+16>>2]>>2]+(e<<2)>>2];if(e>>>0>=F[d+4>>2]-b>>2>>>0){break c}d=F[F[a+8>>2]+(F[b+(e<<2)>>2]<<2)>>2];b=F[a+4>>2];if(!G[b+84|0]){d=F[F[b+68>>2]+(d<<2)>>2]}F[f+24>>2]=0;F[f+28>>2]=0;F[f+16>>2]=0;F[f+20>>2]=0;F[f+8>>2]=0;F[f+12>>2]=0;Ga(b,d,D[b+24|0],f+8|0);g=F[f+8>>2];b=F[f+56>>2];d=g-b|0;p=F[f+60>>2];t=F[f+12>>2]-(p+(b>>>0>g>>>0)|0)|0;i=F[f+40>>2];e=F[f+64>>2];m=i-e|0;u=F[f+68>>2];y=F[f+44>>2]-(u+(e>>>0>i>>>0)|0)|0;g=ki(d,t,m,y);w=o-g|0;x=h-(_+(g>>>0>o>>>0)|0)|0;h=w;i=F[f+16>>2];g=i-e|0;u=F[f+20>>2]-((e>>>0>i>>>0)+u|0)|0;k=F[f+32>>2];i=k-b|0;w=F[f+36>>2]-((b>>>0>k>>>0)+p|0)|0;b=ki(g,u,i,w);o=h+b|0;h=_+x|0;h=b>>>0>o>>>0?h+1|0:h;b=l;l=d;p=t;k=F[f+48>>2];e=F[f+72>>2];d=k-e|0;t=F[f+76>>2];x=F[f+52>>2]-(t+(e>>>0>k>>>0)|0)|0;l=ki(l,p,d,x);k=b+l|0;b=_+q|0;b=k>>>0>>0?b+1|0:b;l=F[f+24>>2];p=l-e|0;e=F[f+28>>2]-((e>>>0>l>>>0)+t|0)|0;q=ki(p,e,i,w);l=k-q|0;q=b-(_+(k>>>0>>0)|0)|0;b=ki(g,u,d,x);d=r-b|0;b=s-(_+(b>>>0>r>>>0)|0)|0;s=ki(p,e,m,y);r=s+d|0;b=_+b|0;s=r>>>0>>0?b+1|0:b;nc(f+80|0);b=F[f+88>>2];if((b|0)!=-1){continue}break}b=s>>31;e=b^r;d=e-b|0;b=(b^s)-((b>>>0>e>>>0)+b|0)|0;n=-1;e=2147483647;m=q>>31;g=m;i=g^l;j=i-g|0;m=(g^q)-((i>>>0>>0)+g|0)|0;i=m;k=j^-1;g=i^2147483647;m=h;e:{f:{if(!F[a+28>>2]){if((b|0)==(g|0)&d>>>0>k>>>0|b>>>0>g>>>0){break e}b=b+i|0;a=d+j|0;b=a>>>0>>0?b+1|0:b;e=a;g=h;a=g>>31;d=a;n=d^o;a=n-d|0;h=a;d=(d^g)-((d>>>0>n>>>0)+d|0)|0;a=a+e|0;d=d^2147483647;h=(d|0)==(b|0)&(h^-1)>>>0>>0|b>>>0>d>>>0;a=h?-1:a;if(!(h&0)&(a|0)<=536870912|(a|0)<536870912){break e}b=0;a=a>>>29|0;break f}g:{if((b|0)==(g|0)&d>>>0>k>>>0|b>>>0>g>>>0){break g}b=b+i|0;a=d+j|0;b=a>>>0>>0?b+1|0:b;k=h;h=h>>31;g=h;i=g^o;h=i-g|0;j=(g^k)-((g>>>0>i>>>0)+g|0)|0;g=j^2147483647;d=a;a=h;if((g|0)==(b|0)&d>>>0>(a^-1)>>>0|b>>>0>g>>>0){break g}b=b+j|0;n=a+d|0;b=n>>>0>>0?b+1|0:b;e=b;if(!b&n>>>0<536870913){break e}}b=e>>>29|0;a=(e&536870911)<<3|n>>>29}o=li(o,m,a,b);l=li(l,q,a,b);r=li(r,s,a,b)}F[c+8>>2]=o;F[c+4>>2]=l;F[c>>2]=r;Z=f+96|0;return}ta();v()}ta();v()}ta();v()}function Nc(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;a:{if((b|0)<0){break a}c=F[a+12>>2];d=F[a+8>>2];if(c-d>>2>>>0<=b>>>0){break a}d=d+(b<<2)|0;e=F[d>>2];i=F[e+60>>2];f=F[e+56>>2];e=d+4|0;if((e|0)!=(c|0)){while(1){h=F[e>>2];F[e>>2]=0;g=F[d>>2];F[d>>2]=h;if(g){xa(g)}d=d+4|0;e=e+4|0;if((e|0)!=(c|0)){continue}break}c=F[a+12>>2]}if((c|0)!=(d|0)){while(1){c=c-4|0;e=F[c>>2];F[c>>2]=0;if(e){xa(e)}if((c|0)!=(d|0)){continue}break}}F[a+12>>2]=d;g=F[a+4>>2];b:{if(!g|(i|0)<0){break b}c=F[g+24>>2];d=F[g+28>>2];if((c|0)==(d|0)){break b}while(1){if((i|0)==F[F[c>>2]+24>>2]){d=c+4|0;i=F[g+28>>2];if((d|0)!=(i|0)){while(1){h=F[d>>2];F[d>>2]=0;e=F[c>>2];F[c>>2]=h;if(e){Ca(e+12|0,F[e+16>>2]);Ba(e,F[e+4>>2]);ja(e)}c=c+4|0;d=d+4|0;if((i|0)!=(d|0)){continue}break}d=F[g+28>>2]}if((c|0)!=(d|0)){while(1){d=d-4|0;e=F[d>>2];F[d>>2]=0;if(e){Ca(e+12|0,F[e+16>>2]);Ba(e,F[e+4>>2]);ja(e)}if((c|0)!=(d|0)){continue}break}}F[g+28>>2]=c;break b}c=c+4|0;if((d|0)!=(c|0)){continue}break}}c:{if((f|0)>4){break c}d:{e=L(f,12)+a|0;c=F[e+20>>2];d=F[e+24>>2];if((c|0)==(d|0)){break d}while(1){if(F[c>>2]==(b|0)){break d}c=c+4|0;if((d|0)!=(c|0)){continue}break}break c}if((c|0)==(d|0)){break c}f=c;c=c+4|0;pa(f,c,d-c|0);F[e+24>>2]=d-4}c=F[a+24>>2];d=F[a+20>>2];e:{if((c|0)==(d|0)){break e}e=c-d|0;c=e>>2;g=c>>>0<=1?1:c;i=g&1;c=0;if(e>>>0>=8){g=g&-2;e=0;while(1){f=c<<2;h=f+d|0;j=F[h>>2];if((j|0)>(b|0)){F[h>>2]=j-1}f=d+(f|4)|0;h=F[f>>2];if((h|0)>(b|0)){F[f>>2]=h-1}c=c+2|0;e=e+2|0;if((g|0)!=(e|0)){continue}break}}if(!i){break e}c=d+(c<<2)|0;d=F[c>>2];if((d|0)<=(b|0)){break e}F[c>>2]=d-1}c=F[a+36>>2];d=F[a+32>>2];f:{if((c|0)==(d|0)){break f}e=c-d|0;c=e>>2;g=c>>>0<=1?1:c;i=g&1;c=0;if(e>>>0>=8){g=g&-2;e=0;while(1){f=c<<2;h=f+d|0;j=F[h>>2];if((j|0)>(b|0)){F[h>>2]=j-1}f=d+(f|4)|0;h=F[f>>2];if((h|0)>(b|0)){F[f>>2]=h-1}c=c+2|0;e=e+2|0;if((g|0)!=(e|0)){continue}break}}if(!i){break f}c=d+(c<<2)|0;d=F[c>>2];if((d|0)<=(b|0)){break f}F[c>>2]=d-1}c=F[a+48>>2];d=F[a+44>>2];g:{if((c|0)==(d|0)){break g}e=c-d|0;c=e>>2;g=c>>>0<=1?1:c;i=g&1;c=0;if(e>>>0>=8){g=g&-2;e=0;while(1){f=c<<2;h=f+d|0;j=F[h>>2];if((j|0)>(b|0)){F[h>>2]=j-1}f=d+(f|4)|0;h=F[f>>2];if((h|0)>(b|0)){F[f>>2]=h-1}c=c+2|0;e=e+2|0;if((g|0)!=(e|0)){continue}break}}if(!i){break g}c=d+(c<<2)|0;d=F[c>>2];if((d|0)<=(b|0)){break g}F[c>>2]=d-1}c=F[a+60>>2];d=F[a+56>>2];h:{if((c|0)==(d|0)){break h}e=c-d|0;c=e>>2;g=c>>>0<=1?1:c;i=g&1;c=0;if(e>>>0>=8){g=g&-2;e=0;while(1){f=c<<2;h=f+d|0;j=F[h>>2];if((j|0)>(b|0)){F[h>>2]=j-1}f=d+(f|4)|0;h=F[f>>2];if((h|0)>(b|0)){F[f>>2]=h-1}c=c+2|0;e=e+2|0;if((g|0)!=(e|0)){continue}break}}if(!i){break h}c=d+(c<<2)|0;d=F[c>>2];if((d|0)<=(b|0)){break h}F[c>>2]=d-1}c=F[a+72>>2];a=F[a+68>>2];if((c|0)==(a|0)){break a}d=c-a|0;c=d>>2;e=c>>>0<=1?1:c;g=e&1;c=0;if(d>>>0>=8){d=e&-2;e=0;while(1){i=c<<2;f=i+a|0;h=F[f>>2];if((h|0)>(b|0)){F[f>>2]=h-1}i=a+(i|4)|0;f=F[i>>2];if((f|0)>(b|0)){F[i>>2]=f-1}c=c+2|0;e=e+2|0;if((d|0)!=(e|0)){continue}break}}if(!g){break a}f=b;a=a+(c<<2)|0;b=F[a>>2];if((f|0)>=(b|0)){break a}F[a>>2]=b-1}}function ja(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;a:{if(!a){break a}d=a-8|0;b=F[a-4>>2];a=b&-8;f=d+a|0;b:{if(b&1){break b}if(!(b&3)){break a}b=F[d>>2];d=d-b|0;if(d>>>0>>0<=255){e=F[d+8>>2];b=b>>>3|0;c=F[d+12>>2];if((c|0)==(e|0)){i=11764,j=F[2941]&oi(b),F[i>>2]=j;break b}F[e+12>>2]=c;F[c+8>>2]=e;break b}h=F[d+24>>2];b=F[d+12>>2];c:{if((d|0)!=(b|0)){c=F[d+8>>2];F[c+12>>2]=b;F[b+8>>2]=c;break c}d:{e=d+20|0;c=F[e>>2];if(c){break d}e=d+16|0;c=F[e>>2];if(c){break d}b=0;break c}while(1){g=e;b=c;e=b+20|0;c=F[e>>2];if(c){continue}e=b+16|0;c=F[b+16>>2];if(c){continue}break}F[g>>2]=0}if(!h){break b}e=F[d+28>>2];c=(e<<2)+12068|0;e:{if(F[c>>2]==(d|0)){F[c>>2]=b;if(b){break e}i=11768,j=F[2942]&oi(e),F[i>>2]=j;break b}F[h+(F[h+16>>2]==(d|0)?16:20)>>2]=b;if(!b){break b}}F[b+24>>2]=h;c=F[d+16>>2];if(c){F[b+16>>2]=c;F[c+24>>2]=b}c=F[d+20>>2];if(!c){break b}F[b+20>>2]=c;F[c+24>>2]=b;break b}b=F[f+4>>2];if((b&3)!=3){break b}F[2943]=a;F[f+4>>2]=b&-2;F[d+4>>2]=a|1;F[a+d>>2]=a;return}if(d>>>0>=f>>>0){break a}b=F[f+4>>2];if(!(b&1)){break a}f:{if(!(b&2)){if(F[2947]==(f|0)){F[2947]=d;a=F[2944]+a|0;F[2944]=a;F[d+4>>2]=a|1;if(F[2946]!=(d|0)){break a}F[2943]=0;F[2946]=0;return}if(F[2946]==(f|0)){F[2946]=d;a=F[2943]+a|0;F[2943]=a;F[d+4>>2]=a|1;F[a+d>>2]=a;return}a=(b&-8)+a|0;g:{if(b>>>0<=255){e=F[f+8>>2];b=b>>>3|0;c=F[f+12>>2];if((c|0)==(e|0)){i=11764,j=F[2941]&oi(b),F[i>>2]=j;break g}F[e+12>>2]=c;F[c+8>>2]=e;break g}h=F[f+24>>2];b=F[f+12>>2];h:{if((f|0)!=(b|0)){c=F[f+8>>2];F[c+12>>2]=b;F[b+8>>2]=c;break h}i:{e=f+20|0;c=F[e>>2];if(c){break i}e=f+16|0;c=F[e>>2];if(c){break i}b=0;break h}while(1){g=e;b=c;e=b+20|0;c=F[e>>2];if(c){continue}e=b+16|0;c=F[b+16>>2];if(c){continue}break}F[g>>2]=0}if(!h){break g}e=F[f+28>>2];c=(e<<2)+12068|0;j:{if(F[c>>2]==(f|0)){F[c>>2]=b;if(b){break j}i=11768,j=F[2942]&oi(e),F[i>>2]=j;break g}F[h+(F[h+16>>2]==(f|0)?16:20)>>2]=b;if(!b){break g}}F[b+24>>2]=h;c=F[f+16>>2];if(c){F[b+16>>2]=c;F[c+24>>2]=b}c=F[f+20>>2];if(!c){break g}F[b+20>>2]=c;F[c+24>>2]=b}F[d+4>>2]=a|1;F[a+d>>2]=a;if(F[2946]!=(d|0)){break f}F[2943]=a;return}F[f+4>>2]=b&-2;F[d+4>>2]=a|1;F[a+d>>2]=a}if(a>>>0<=255){b=(a&-8)+11804|0;c=F[2941];a=1<<(a>>>3);k:{if(!(c&a)){F[2941]=a|c;a=b;break k}a=F[b+8>>2]}F[b+8>>2]=d;F[a+12>>2]=d;F[d+12>>2]=b;F[d+8>>2]=a;return}e=31;if(a>>>0<=16777215){b=O(a>>>8|0);e=((a>>>38-b&1)-(b<<1)|0)+62|0}F[d+28>>2]=e;F[d+16>>2]=0;F[d+20>>2]=0;g=(e<<2)+12068|0;l:{m:{c=F[2942];b=1<>2]=d;F[d+24>>2]=g;break n}e=a<<((e|0)!=31?25-(e>>>1|0)|0:0);b=F[g>>2];while(1){c=b;if((F[b+4>>2]&-8)==(a|0)){break m}b=e>>>29|0;e=e<<1;g=c+(b&4)|0;b=F[g+16>>2];if(b){continue}break}F[g+16>>2]=d;F[d+24>>2]=c}F[d+12>>2]=d;F[d+8>>2]=d;break l}a=F[c+8>>2];F[a+12>>2]=d;F[c+8>>2]=d;F[d+24>>2]=0;F[d+12>>2]=c;F[d+8>>2]=a}a=F[2949]-1|0;F[2949]=a?a:-1}}function di(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0;F[a+8>>2]=e;n=a+32|0;h=F[n>>2];f=F[a+36>>2]-h>>2;a:{if(f>>>0>>0){qa(n,e-f|0);d=F[a+8>>2];break a}d=e;if(d>>>0>=f>>>0){break a}F[a+36>>2]=h+(e<<2);d=e}s=F[a+52>>2];p=F[a+48>>2];f=0;h=e>>>0>1073741823?-1:e<<2;m=ma(ka(h),0,h);b:{if((d|0)<=0){break b}g=F[a+32>>2];while(1){d=f<<2;h=F[d+m>>2];j=F[a+16>>2];c:{if((h|0)>(j|0)){F[d+g>>2]=j;break c}d=d+g|0;j=F[a+12>>2];if((j|0)>(h|0)){F[d>>2]=j;break c}F[d>>2]=h}d=F[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}if((d|0)<=0){break b}f=0;while(1){h=f<<2;d=h+c|0;h=F[b+h>>2]+F[g+h>>2]|0;F[d>>2]=h;d:{if((h|0)>F[a+16>>2]){i=h-F[a+20>>2]|0}else{if((h|0)>=F[a+12>>2]){break d}i=h+F[a+20>>2]|0}F[d>>2]=i}d=F[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}}f=F[a+56>>2];q=F[f>>2];f=F[f+4>>2]-q|0;if((f|0)>=5){o=f>>>2|0;t=o>>>0<=2?2:o;u=e&-2;w=e&1;h=1;while(1){e:{f:{if((h|0)!=(o|0)){r=L(e,h);f=F[(h<<2)+q>>2];if((f|0)==-1){break f}f=F[F[p+12>>2]+(f<<2)>>2];if((f|0)==-1){break f}j=F[s>>2];g=F[p>>2];k=F[j+(F[g+(f<<2)>>2]<<2)>>2];i=f+1|0;i=(i>>>0)%3|0?i:f-2|0;if((i|0)!=-1){i=F[g+(i<<2)>>2]}else{i=-1}g:{h:{if((f>>>0)%3|0){f=f-1|0;break h}f=f+2|0;l=-1;if((f|0)==-1){break g}}l=F[g+(f<<2)>>2]}if((h|0)<=(k|0)){break f}f=F[(i<<2)+j>>2];if((f|0)>=(h|0)){break f}g=F[j+(l<<2)>>2];if((g|0)>=(h|0)){break f}i:{if((e|0)<=0){break i}g=L(e,g);j=L(e,f);k=L(e,k);f=0;l=0;if((e|0)!=1){while(1){F[(f<<2)+m>>2]=(F[(f+g<<2)+c>>2]+F[(f+j<<2)+c>>2]|0)-F[(f+k<<2)+c>>2];i=f|1;F[(i<<2)+m>>2]=(F[(g+i<<2)+c>>2]+F[(j+i<<2)+c>>2]|0)-F[(i+k<<2)+c>>2];f=f+2|0;l=l+2|0;if((u|0)!=(l|0)){continue}break}}if(!w){break i}F[(f<<2)+m>>2]=(F[(f+g<<2)+c>>2]+F[(f+j<<2)+c>>2]|0)-F[(f+k<<2)+c>>2]}if((d|0)<=0){break e}j=F[n>>2];f=0;while(1){d=f<<2;g=F[d+m>>2];k=F[a+16>>2];j:{if((g|0)>(k|0)){F[d+j>>2]=k;break j}d=d+j|0;k=F[a+12>>2];if((k|0)>(g|0)){F[d>>2]=k;break j}F[d>>2]=g}d=F[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}f=0;if((d|0)<=0){break e}d=r<<2;k=d+c|0;i=b+d|0;while(1){g=f<<2;d=g+k|0;g=F[g+i>>2]+F[g+j>>2]|0;F[d>>2]=g;k:{if((g|0)>F[a+16>>2]){l=g-F[a+20>>2]|0}else{if((g|0)>=F[a+12>>2]){break k}l=g+F[a+20>>2]|0}F[d>>2]=l}d=F[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}break e}ta();v()}if((d|0)<=0){break e}k=(L(h-1|0,e)<<2)+c|0;j=F[n>>2];f=0;while(1){d=f<<2;g=F[d+k>>2];i=F[a+16>>2];l:{if((g|0)>(i|0)){F[d+j>>2]=i;break l}d=d+j|0;i=F[a+12>>2];if((i|0)>(g|0)){F[d>>2]=i;break l}F[d>>2]=g}d=F[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}f=0;if((d|0)<=0){break e}d=r<<2;k=d+c|0;i=b+d|0;while(1){g=f<<2;d=g+k|0;g=F[g+i>>2]+F[g+j>>2]|0;F[d>>2]=g;m:{if((g|0)>F[a+16>>2]){l=g-F[a+20>>2]|0}else{if((g|0)>=F[a+12>>2]){break m}l=g+F[a+20>>2]|0}F[d>>2]=l}d=F[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}}h=h+1|0;if((t|0)!=(h|0)){continue}break}}ja(m);return 1}function od(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;if((b|0)==-1){return 1}g=(b>>>0)/3|0;if(!(F[F[a+24>>2]+(g>>>3&268435452)>>2]>>>g&1)){e=F[a+48>>2];F[a+52>>2]=e;a:{if((e|0)!=F[a+56>>2]){F[e>>2]=b;F[a+52>>2]=e+4;break a}d=ka(4);F[d>>2]=b;c=d+4|0;F[a+56>>2]=c;F[a+52>>2]=c;F[a+48>>2]=d;if(!e){break a}ja(e)}c=b+1|0;i=(c>>>0)%3|0?c:b-2|0;c=F[F[a+4>>2]+28>>2];k=F[(i<<2)+c>>2];if((k|0)==-1){return 0}e=(b-L(g,3)|0?-1:2)+b|0;j=F[c+(e<<2)>>2];if((j|0)==-1){return 0}b=F[a+36>>2];g=b+(k>>>3&536870908)|0;d=F[g>>2];c=1<>2]=c|d;Ka(a+8|0,k,i);b=F[a+36>>2]}d=(j>>>3&536870908)+b|0;c=F[d>>2];b=1<>2]=b|c;Ka(a+8|0,j,e)}f=F[a+52>>2];if((f|0)==F[a+48>>2]){return 1}k=a+8|0;while(1){b:{c:{f=f-4|0;b=F[f>>2];if((b|0)==-1){break c}c=(b>>>0)/3|0;g=F[a+24>>2]+(c>>>3&268435452)|0;d=F[g>>2];c=1<>2]=c|d;h=F[a+4>>2];c=F[F[h+28>>2]+(b<<2)>>2];if((c|0)==-1){return 0}while(1){d=b;d:{e:{j=F[a+36>>2]+(c>>>3&536870908)|0;i=F[j>>2];e=1<>2]+(c<<2)>>2];g:{if((g|0)==-1){break g}b=g+1|0;b=(b>>>0)%3|0?b:g-2|0;if((b|0)==-1|F[F[h>>2]+(b>>>3&536870908)>>2]>>>b&1){break g}g=F[F[F[h+64>>2]+12>>2]+(b<<2)>>2];if((g|0)!=-1){break f}}F[j>>2]=e|i;Ka(k,c,d);h=F[a+4>>2];break e}F[j>>2]=e|i;Ka(k,c,d);h=F[a+4>>2];b=g+1|0;if((((b>>>0)%3|0?b:g-2|0)|0)==-1){break e}b=-1;h:{if((d|0)==-1){break h}c=d+1|0;c=(c>>>0)%3|0?c:d-2|0;if((c|0)==-1|F[F[h>>2]+(c>>>3&536870908)>>2]>>>c&1){break h}b=F[F[F[h+64>>2]+12>>2]+(c<<2)>>2]}c=(b>>>0)/3|0;d=1<>2];e=c>>>5|0;j=F[f+(e<<2)>>2];break d}i:{j:{if((d|0)==-1){break j}c=-1;b=d+1|0;b=(b>>>0)%3|0?b:d-2|0;if(!((b|0)==-1|F[F[h>>2]+(b>>>3&536870908)>>2]>>>b&1)){c=F[F[F[h+64>>2]+12>>2]+(b<<2)>>2]}k:{l:{if((d>>>0)%3|0){f=d-1|0;break l}f=d+2|0;b=-1;if((f|0)==-1){break k}}b=-1;if(F[F[h>>2]+(f>>>3&536870908)>>2]>>>f&1){break k}b=F[F[F[h+64>>2]+12>>2]+(f<<2)>>2]}g=(b|0)==-1;i=g?-1:(b>>>0)/3|0;if((c|0)!=-1){f=F[a+24>>2];d=(c>>>0)/3|0;e=d>>>5|0;j=F[f+(e<<2)>>2];d=1<>2];e=i>>>5|0;j=F[f+(e<<2)>>2];if(!(d&j)){break d}}f=F[a+52>>2]-4|0;F[a+52>>2]=f;break b}if(g){b=c;break d}if(F[(i>>>3&536870908)+f>>2]>>>i&1){b=c;break d}h=F[a+52>>2];F[h-4>>2]=b;if(F[a+56>>2]!=(h|0)){F[h>>2]=c;f=h+4|0;break c}m:{i=F[a+48>>2];e=h-i|0;g=e>>2;d=g+1|0;if(d>>>0<1073741824){b=e>>>1|0;e=e>>>0>=2147483644?1073741823:b>>>0>d>>>0?b:d;if(e){if(e>>>0>=1073741824){break m}d=ka(e<<2)}else{d=0}b=d+(g<<2)|0;F[b>>2]=c;f=b+4|0;if((h|0)!=(i|0)){while(1){b=b-4|0;h=h-4|0;F[b>>2]=F[h>>2];if((h|0)!=(i|0)){continue}break}}F[a+56>>2]=d+(e<<2);F[a+52>>2]=f;F[a+48>>2]=b;if(!i){break b}ja(i);f=F[a+52>>2];break b}na();v()}oa();v()}F[(e<<2)+f>>2]=d|j;c=F[F[h+28>>2]+(b<<2)>>2];if((c|0)!=-1){continue}break}return 0}F[a+52>>2]=f}if(F[a+48>>2]!=(f|0)){continue}break}}return 1}function he(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0;F[a+8>>2]=e;m=a+32|0;h=F[m>>2];f=F[a+36>>2]-h>>2;a:{if(f>>>0>>0){qa(m,e-f|0);d=F[a+8>>2];break a}d=e;if(d>>>0>=f>>>0){break a}F[a+36>>2]=h+(e<<2);d=e}s=F[a+52>>2];n=F[a+48>>2];f=0;h=e>>>0>1073741823?-1:e<<2;l=ma(ka(h),0,h);b:{if((d|0)<=0){break b}g=F[a+32>>2];while(1){d=f<<2;h=F[d+l>>2];i=F[a+16>>2];c:{if((h|0)>(i|0)){F[d+g>>2]=i;break c}d=d+g|0;i=F[a+12>>2];if((i|0)>(h|0)){F[d>>2]=i;break c}F[d>>2]=h}d=F[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}if((d|0)<=0){break b}f=0;while(1){h=f<<2;d=h+c|0;h=F[b+h>>2]+F[g+h>>2]|0;F[d>>2]=h;d:{if((h|0)>F[a+16>>2]){h=h-F[a+20>>2]|0}else{if((h|0)>=F[a+12>>2]){break d}h=h+F[a+20>>2]|0}F[d>>2]=h}d=F[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}}f=F[a+56>>2];q=F[f>>2];f=F[f+4>>2]-q|0;if((f|0)>=5){o=f>>>2|0;t=o>>>0<=2?2:o;u=e&-2;w=e&1;h=1;while(1){e:{f:{if((h|0)!=(o|0)){r=L(e,h);f=F[(h<<2)+q>>2];if((f|0)==-1|F[F[n>>2]+(f>>>3&536870908)>>2]>>>f&1){break f}f=F[F[F[n+64>>2]+12>>2]+(f<<2)>>2];if((f|0)==-1){break f}i=F[s>>2];g=F[n+28>>2];k=F[i+(F[g+(f<<2)>>2]<<2)>>2];if((k|0)>=(h|0)){break f}j=f+1|0;j=F[i+(F[g+(((j>>>0)%3|0?j:f-2|0)<<2)>>2]<<2)>>2];if((j|0)>=(h|0)){break f}f=F[i+(F[g+(f+((f>>>0)%3|0?-1:2)<<2)>>2]<<2)>>2];if((f|0)>=(h|0)){break f}g:{if((e|0)<=0){break g}g=L(e,f);i=L(e,j);k=L(e,k);f=0;p=0;if((e|0)!=1){while(1){F[(f<<2)+l>>2]=(F[(f+g<<2)+c>>2]+F[(f+i<<2)+c>>2]|0)-F[(f+k<<2)+c>>2];j=f|1;F[(j<<2)+l>>2]=(F[(g+j<<2)+c>>2]+F[(i+j<<2)+c>>2]|0)-F[(k+j<<2)+c>>2];f=f+2|0;p=p+2|0;if((u|0)!=(p|0)){continue}break}}if(!w){break g}F[(f<<2)+l>>2]=(F[(f+g<<2)+c>>2]+F[(f+i<<2)+c>>2]|0)-F[(f+k<<2)+c>>2]}if((d|0)<=0){break e}i=F[m>>2];f=0;while(1){d=f<<2;g=F[d+l>>2];k=F[a+16>>2];h:{if((g|0)>(k|0)){F[d+i>>2]=k;break h}d=d+i|0;k=F[a+12>>2];if((k|0)>(g|0)){F[d>>2]=k;break h}F[d>>2]=g}d=F[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}f=0;if((d|0)<=0){break e}d=r<<2;k=d+c|0;j=b+d|0;while(1){g=f<<2;d=g+k|0;g=F[g+j>>2]+F[g+i>>2]|0;F[d>>2]=g;i:{if((g|0)>F[a+16>>2]){g=g-F[a+20>>2]|0}else{if((g|0)>=F[a+12>>2]){break i}g=g+F[a+20>>2]|0}F[d>>2]=g}d=F[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}break e}ta();v()}if((d|0)<=0){break e}k=(L(h-1|0,e)<<2)+c|0;i=F[m>>2];f=0;while(1){d=f<<2;g=F[d+k>>2];j=F[a+16>>2];j:{if((g|0)>(j|0)){F[d+i>>2]=j;break j}d=d+i|0;j=F[a+12>>2];if((j|0)>(g|0)){F[d>>2]=j;break j}F[d>>2]=g}d=F[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}f=0;if((d|0)<=0){break e}d=r<<2;k=d+c|0;j=b+d|0;while(1){g=f<<2;d=g+k|0;g=F[g+j>>2]+F[g+i>>2]|0;F[d>>2]=g;k:{if((g|0)>F[a+16>>2]){g=g-F[a+20>>2]|0}else{if((g|0)>=F[a+12>>2]){break k}g=g+F[a+20>>2]|0}F[d>>2]=g}d=F[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}}h=h+1|0;if((t|0)!=(h|0)){continue}break}}ja(l);return 1}function Fb(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=M(0),k=0,l=0,m=M(0);i=F[c>>2];a:{b:{f=F[b+4>>2];if(!f){break b}g=ni(f);c:{if(g>>>0>=2){e=i;if(f>>>0<=e>>>0){e=(i>>>0)%(f>>>0)|0}c=F[F[b>>2]+(e<<2)>>2];if(!c){break b}if(g>>>0<=1){break c}while(1){c=F[c>>2];if(!c){break b}g=F[c+4>>2];if((g|0)!=(i|0)){if(f>>>0<=g>>>0){g=(g>>>0)%(f>>>0)|0}if((e|0)!=(g|0)){break b}}if(F[c+8>>2]!=(i|0)){continue}break}b=0;break a}e=f-1&i;c=F[F[b>>2]+(e<<2)>>2];if(!c){break b}}h=f-1|0;while(1){c=F[c>>2];if(!c){break b}g=F[c+4>>2];if((g|0)!=(i|0)&(g&h)!=(e|0)){break b}if(F[c+8>>2]!=(i|0)){continue}break}b=0;break a}c=ka(16);d=F[F[d>>2]>>2];F[c+12>>2]=0;F[c+8>>2]=d;F[c+4>>2]=i;F[c>>2]=0;m=M(F[b+12>>2]+1>>>0);j=J[b+16>>2];d:{if(m>M(j*M(f>>>0))?0:f){break d}e=2;d=(f-1&f)!=0|f>>>0<3|f<<1;j=M(S(M(m/j)));e:{if(j=M(0)){g=~~j>>>0;break e}g=0}d=d>>>0>g>>>0?d:g;f:{if((d|0)==1){break f}if(!(d&d-1)){e=d;break f}e=Mc(d);f=F[b+4>>2]}g:{if(e>>>0<=f>>>0){if(e>>>0>=f>>>0){break g}g=f>>>0<3;j=M(S(M(M(I[b+12>>2])/J[b+16>>2])));h:{if(j=M(0)){d=~~j>>>0;break h}d=0}i:{j:{if(g){break j}if(ni(f)>>>0>1){break j}d=d>>>0<2?d:1<<32-O(d-1|0);break i}d=Mc(d)}e=d>>>0>>0?e:d;if(f>>>0<=e>>>0){break g}}f=0;g=0;h=e;k:{l:{m:{n:{if(e){if(h>>>0>=1073741824){break n}d=ka(h<<2);e=F[b>>2];F[b>>2]=d;if(e){ja(e)}F[b+4>>2]=h;d=0;if(h>>>0>=4){e=h&-4;while(1){k=d<<2;F[k+F[b>>2]>>2]=0;F[F[b>>2]+(k|4)>>2]=0;F[F[b>>2]+(k|8)>>2]=0;F[F[b>>2]+(k|12)>>2]=0;d=d+4|0;g=g+4|0;if((e|0)!=(g|0)){continue}break}}e=h&3;if(e){while(1){F[F[b>>2]+(d<<2)>>2]=0;d=d+1|0;f=f+1|0;if((e|0)!=(f|0)){continue}break}}e=F[b+8>>2];if(!e){break k}d=b+8|0;f=F[e+4>>2];g=ni(h);if(g>>>0<2){break m}f=f>>>0>=h>>>0?(f>>>0)%(h>>>0)|0:f;F[F[b>>2]+(f<<2)>>2]=d;d=F[e>>2];if(!d){break k}if(g>>>0<=1){break l}while(1){g=F[d+4>>2];if(h>>>0<=g>>>0){g=(g>>>0)%(h>>>0)|0}o:{if((f|0)==(g|0)){e=d;break o}l=g<<2;k=l+F[b>>2]|0;if(!F[k>>2]){F[k>>2]=e;e=d;f=g;break o}F[e>>2]=F[d>>2];F[d>>2]=F[F[l+F[b>>2]>>2]>>2];F[F[l+F[b>>2]>>2]>>2]=d}d=F[e>>2];if(d){continue}break}break k}d=F[b>>2];F[b>>2]=0;if(d){ja(d)}F[b+4>>2]=0;break k}oa();v()}f=h-1&f;F[F[b>>2]+(f<<2)>>2]=d;d=F[e>>2];if(!d){break k}}k=h-1|0;while(1){g=k&F[d+4>>2];p:{if((g|0)==(f|0)){e=d;break p}l=g<<2;h=l+F[b>>2]|0;if(F[h>>2]){F[e>>2]=F[d>>2];F[d>>2]=F[F[l+F[b>>2]>>2]>>2];F[F[l+F[b>>2]>>2]>>2]=d;break p}F[h>>2]=e;e=d;f=g}d=F[e>>2];if(d){continue}break}}}f=F[b+4>>2];d=f-1|0;if(!(d&f)){e=d&i;break d}if(f>>>0>i>>>0){e=i;break d}e=(i>>>0)%(f>>>0)|0}e=F[b>>2]+(e<<2)|0;d=F[e>>2];q:{r:{if(!d){d=b+8|0;F[c>>2]=F[d>>2];F[b+8>>2]=c;F[e>>2]=d;d=F[c>>2];if(!d){break q}d=F[d+4>>2];e=f-1|0;s:{if(!(e&f)){d=d&e;break s}if(d>>>0>>0){break s}d=(d>>>0)%(f>>>0)|0}d=F[b>>2]+(d<<2)|0;break r}F[c>>2]=F[d>>2]}F[d>>2]=c}F[b+12>>2]=F[b+12>>2]+1;b=1}D[a+4|0]=b;F[a>>2]=c}function Vb(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;j=L(b,12)+a|0;F[j+12>>2]=F[j+8>>2];m=(c|0)==-1?-1:(c>>>0)/3|0;d=1;k=c;a:{b:{c:{while(1){d:{l=d;if(!d){if((k|0)==-1){break d}if((Wc(a,((k>>>0)%3|0?-1:2)+k|0)|0)==-1){break a}c=k+1|0;d=(c>>>0)%3|0?c:k-2|0;if((d|0)==-1){break a}c=d+1|0;c=(c>>>0)%3|0?c:d-2|0;if((c|0)==-1){break a}d=F[F[F[a+4>>2]+12>>2]+(c<<2)>>2];if((d|0)==-1){break a}c=d+1|0;c=(c>>>0)%3|0?c:d-2|0;if((c|0)==-1){break a}m=(c>>>0)/3|0}e:{d=F[a+56>>2]+(m>>>3&536870908)|0;h=F[d>>2];e=1<>2]=e|h;d=F[j+12>>2];f:{if((d|0)!=F[j+16>>2]){F[d>>2]=m;F[j+12>>2]=d+4;break f}n=F[j+8>>2];h=d-n|0;e=h>>2;i=e+1|0;if(i>>>0>=1073741824){break c}g=h>>>1|0;i=h>>>0>=2147483644?1073741823:i>>>0>>0?g:i;if(i){if(i>>>0>=1073741824){break b}g=ka(i<<2)}else{g=0}h=g+(e<<2)|0;F[h>>2]=m;e=h+4|0;if((d|0)!=(n|0)){while(1){h=h-4|0;d=d-4|0;F[h>>2]=F[d>>2];if((d|0)!=(n|0)){continue}break}}F[j+8>>2]=h;F[j+12>>2]=e;F[j+16>>2]=g+(i<<2);if(!n){break f}ja(n)}g=f+1|0;g:{h:{i:{if(!f){break i}if(g&1){if((c|0)==-1){c=-1;break g}d=c+1|0;c=(d>>>0)%3|0?d:c-2|0;break i}k=l?k:c;if((c|0)==-1){c=-1;break g}if((c>>>0)%3|0){d=c-1|0;break h}c=c+2|0}d=c;c=-1;if((d|0)==-1){break g}}c=F[F[F[a+4>>2]+12>>2]+(d<<2)>>2];h=-1;f=-1;e=d+1|0;e=(e>>>0)%3|0?e:d-2|0;if((e|0)>=0){f=(e>>>0)/3|0;f=F[(F[F[a>>2]+96>>2]+L(f,12)|0)+(e-L(f,3)<<2)>>2]}j:{if((c|0)==-1){break j}i=((c>>>0)%3|0?-1:2)+c|0;if((i|0)<0){break j}e=(i>>>0)/3|0;h=F[(F[F[a>>2]+96>>2]+L(e,12)|0)+(i-L(e,3)<<2)>>2]}if((f|0)!=(h|0)){c=-1;break g}k:{l:{f=((d>>>0)%3|0?-1:2)+d|0;if((f|0)>=0){d=(f>>>0)/3|0;if((c|0)!=-1){break l}c=-1;break g}d=-1;if((c|0)!=-1){break k}c=-1;break g}d=F[(F[F[a>>2]+96>>2]+L(d,12)|0)+(f-L(d,3)<<2)>>2]}f=c+1|0;e=(f>>>0)%3|0?f:c-2|0;if((e|0)>=0){f=(e>>>0)/3|0;f=F[(F[F[a>>2]+96>>2]+L(f,12)|0)+(e-L(f,3)<<2)>>2]}else{f=-1}if((f|0)!=(d|0)){c=-1;break g}f=g;m=(c>>>0)/3|0;d=F[a+56>>2]+(m>>>3&268435452)|0;h=F[d>>2];e=1<>2]-4|0;g=F[l>>2];d=F[a+56>>2]+(g>>>3&536870908)|0;c=F[d>>2];o=d,p=oi(g)&c,F[o>>2]=p;F[j+12>>2]=l;break a}d=0;if(l){continue}break a}break}k=-1;Wc(a,-1);break a}na();v()}oa();v()}F[((b<<2)+a|0)+44>>2]=k;b=F[j+12>>2];i=F[j+8>>2];m:{if((b|0)==(i|0)){break m}c=b-i|0;b=c>>2;b=b>>>0<=1?1:b;k=b&1;e=F[a+56>>2];d=0;if(c>>>0>=8){f=b&-2;c=0;while(1){l=d<<2;g=F[l+i>>2];b=e+(g>>>3&536870908)|0;a=F[b>>2];o=b,p=oi(g)&a,F[o>>2]=p;g=F[i+(l|4)>>2];b=e+(g>>>3&536870908)|0;a=F[b>>2];o=b,p=oi(g)&a,F[o>>2]=p;d=d+2|0;c=c+2|0;if((f|0)!=(c|0)){continue}break}}if(!k){break m}c=F[i+(d<<2)>>2];b=e+(c>>>3&536870908)|0;a=F[b>>2];o=b,p=oi(c)&a,F[o>>2]=p}}function pd(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;if((b|0)==-1){return 1}g=(b>>>0)/3|0;if(!(F[F[a+24>>2]+(g>>>3&268435452)>>2]>>>g&1)){f=F[a+48>>2];F[a+52>>2]=f;a:{if((f|0)!=F[a+56>>2]){F[f>>2]=b;F[a+52>>2]=f+4;break a}d=ka(4);F[d>>2]=b;c=d+4|0;F[a+56>>2]=c;F[a+52>>2]=c;F[a+48>>2]=d;if(!f){break a}ja(f)}e=-1;d=F[a+4>>2];c=b+1|0;i=(c>>>0)%3|0?c:b-2|0;if((i|0)!=-1){e=F[F[d>>2]+(i<<2)>>2]}b:{h=b-L(g,3)|0;if(h){c=b-1|0;break b}c=b+2|0;if((c|0)!=-1){break b}return 0}if((e|0)==-1){return 0}j=F[F[d>>2]+(c<<2)>>2];if((j|0)==-1){return 0}c=F[a+36>>2];f=c+(e>>>3&536870908)|0;g=F[f>>2];d=1<>2]=d|g;Ka(a+8|0,e,i);c=F[a+36>>2]}g=(j>>>3&536870908)+c|0;d=F[g>>2];c=1<>2]=c|d;Ka(a+8|0,j,(h?-1:2)+b|0)}c=F[a+52>>2];if((c|0)==F[a+48>>2]){return 1}j=a+8|0;while(1){c:{d:{c=c-4|0;b=F[c>>2];if((b|0)==-1){break d}d=(b>>>0)/3|0;f=F[a+24>>2]+(d>>>3&268435452)|0;g=F[f>>2];d=1<>2]=d|g;while(1){i=F[a+4>>2];e=F[F[i>>2]+(b<<2)>>2];if((e|0)==-1){return 0}e:{f:{h=F[a+36>>2]+(e>>>3&536870908)|0;f=F[h>>2];g=1<>2]+(e<<2)>>2];h:{if((d|0)==-1){break h}c=d+1|0;c=(c>>>0)%3|0?c:d-2|0;if((c|0)==-1){break h}d=F[F[i+12>>2]+(c<<2)>>2];if((d|0)!=-1){break g}}F[h>>2]=f|g;Ka(j,e,b);break f}F[h>>2]=f|g;Ka(j,e,b);c=d+1|0;if((((c>>>0)%3|0?c:d-2|0)|0)==-1){break f}c=b-2|0;d=b+1|0;b=-1;c=(d>>>0)%3|0?d:c;if((c|0)!=-1){b=F[F[F[a+4>>2]+12>>2]+(c<<2)>>2]}c=(b>>>0)/3|0;d=1<>2];f=c>>>5|0;i=F[e+(f<<2)>>2];break e}c=-1;g=F[a+4>>2];d=b+1|0;d=(d>>>0)%3|0?d:b-2|0;if((d|0)!=-1){c=F[F[g+12>>2]+(d<<2)>>2]}i:{j:{if((b>>>0)%3|0){e=b-1|0;break j}e=b+2|0;b=-1;if((e|0)==-1){break i}}b=F[F[g+12>>2]+(e<<2)>>2]}g=(b|0)==-1;h=g?-1:(b>>>0)/3|0;k:{if((c|0)!=-1){e=F[a+24>>2];d=(c>>>0)/3|0;f=d>>>5|0;i=F[e+(f<<2)>>2];d=1<>2];f=h>>>5|0;i=F[e+(f<<2)>>2];if(!(d&i)){break e}}c=F[a+52>>2]-4|0;F[a+52>>2]=c;break c}if(g){b=c;break e}if(F[(h>>>3&536870908)+e>>2]>>>h&1){b=c;break e}e=F[a+52>>2];F[e-4>>2]=b;if(F[a+56>>2]!=(e|0)){F[e>>2]=c;c=e+4|0;break d}l:{h=F[a+48>>2];f=e-h|0;g=f>>2;d=g+1|0;if(d>>>0<1073741824){b=f>>>1|0;f=f>>>0>=2147483644?1073741823:b>>>0>d>>>0?b:d;if(f){if(f>>>0>=1073741824){break l}d=ka(f<<2)}else{d=0}b=d+(g<<2)|0;F[b>>2]=c;c=b+4|0;if((e|0)!=(h|0)){while(1){b=b-4|0;e=e-4|0;F[b>>2]=F[e>>2];if((e|0)!=(h|0)){continue}break}}F[a+56>>2]=d+(f<<2);F[a+52>>2]=c;F[a+48>>2]=b;if(!h){break c}ja(h);c=F[a+52>>2];break c}na();v()}oa();v()}F[(f<<2)+e>>2]=d|i;if((b|0)!=-1){continue}break}return 0}F[a+52>>2]=c}if(F[a+48>>2]!=(c|0)){continue}break}}return 1}function ee(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;h=Z-32|0;Z=h;a:{b:{if(!Oa(1,h+28|0,b)){break b}d=F[h+28>>2];c=F[F[a+48>>2]+64>>2];if(d>>>0>F[c+4>>2]-F[c>>2]>>2>>>0){break b}c:{if(d){Na(a+60|0,d);c=h+8|0;F[c>>2]=0;F[c+4>>2]=0;D[c+5|0]=0;D[c+6|0]=0;D[c+7|0]=0;D[c+8|0]=0;D[c+9|0]=0;D[c+10|0]=0;D[c+11|0]=0;D[c+12|0]=0;if(!Aa(c,b)){break c}while(1){f=1<>2]+(e>>>3&536870908)|0;if(j){i=f|F[g>>2]}else{i=F[g>>2]&(f^-1)}F[g>>2]=i;e=e+1|0;if((d|0)!=(e|0)){continue}break}}if(!Oa(1,h+28|0,b)){break b}d=F[h+28>>2];c=F[F[a+48>>2]+64>>2];if(d>>>0>F[c+4>>2]-F[c>>2]>>2>>>0){break b}if(d){e=0;Na(a+72|0,d);c=h+8|0;F[c>>2]=0;F[c+4>>2]=0;D[c+5|0]=0;D[c+6|0]=0;D[c+7|0]=0;D[c+8|0]=0;D[c+9|0]=0;D[c+10|0]=0;D[c+11|0]=0;D[c+12|0]=0;if(!Aa(c,b)){break c}while(1){f=1<>2]+(e>>>3&536870908)|0;if(j){i=f|F[g>>2]}else{i=F[g>>2]&(f^-1)}F[g>>2]=i;e=e+1|0;if((d|0)!=(e|0)){continue}break}}if(!Oa(1,h+28|0,b)){break b}d=F[h+28>>2];c=F[F[a+48>>2]+64>>2];if(d>>>0>F[c+4>>2]-F[c>>2]>>2>>>0){break b}if(d){e=0;Na(a+84|0,d);c=h+8|0;F[c>>2]=0;F[c+4>>2]=0;D[c+5|0]=0;D[c+6|0]=0;D[c+7|0]=0;D[c+8|0]=0;D[c+9|0]=0;D[c+10|0]=0;D[c+11|0]=0;D[c+12|0]=0;if(!Aa(c,b)){break c}while(1){f=1<>2]+(e>>>3&536870908)|0;if(j){i=f|F[g>>2]}else{i=F[g>>2]&(f^-1)}F[g>>2]=i;e=e+1|0;if((d|0)!=(e|0)){continue}break}}if(!Oa(1,h+28|0,b)){break b}d=F[h+28>>2];c=F[F[a+48>>2]+64>>2];if(d>>>0>F[c+4>>2]-F[c>>2]>>2>>>0){break b}if(d){e=0;Na(a+96|0,d);c=h+8|0;F[c>>2]=0;F[c+4>>2]=0;D[c+5|0]=0;D[c+6|0]=0;D[c+7|0]=0;D[c+8|0]=0;D[c+9|0]=0;D[c+10|0]=0;D[c+11|0]=0;D[c+12|0]=0;if(!Aa(c,b)){break c}while(1){f=1<>2]+(e>>>3&536870908)|0;if(j){i=f|F[g>>2]}else{i=F[g>>2]&(f^-1)}F[g>>2]=i;e=e+1|0;if((d|0)!=(e|0)){continue}break}}e=0;c=F[b+8>>2];f=F[b+12>>2];d=c;c=F[b+20>>2];i=c;g=F[b+16>>2];j=g+4|0;c=j>>>0<4?c+1|0:c;if(d>>>0>>0&(c|0)>=(f|0)|(c|0)>(f|0)){break a}m=F[b>>2];k=m+g|0;l=G[k|0]|G[k+1|0]<<8|(G[k+2|0]<<16|G[k+3|0]<<24);F[b+16>>2]=j;F[b+20>>2]=c;k=d;d=f;c=i;f=g+8|0;c=f>>>0<8?c+1|0:c;if(f>>>0>k>>>0&(c|0)>=(d|0)|(c|0)>(d|0)){break a}d=j+m|0;d=G[d|0]|G[d+1|0]<<8|(G[d+2|0]<<16|G[d+3|0]<<24);F[b+16>>2]=f;F[b+20>>2]=c;if((d|0)<(l|0)){break a}F[a+16>>2]=d;F[a+12>>2]=l;c=(d>>31)-((l>>31)+(d>>>0>>0)|0)|0;b=d-l|0;if(!c&b>>>0>2147483646|c){break a}e=1;b=b+1|0;F[a+20>>2]=b;c=b>>>1|0;F[a+24>>2]=c;F[a+28>>2]=0-c;if(b&1){break a}F[a+24>>2]=c-1;break a}}e=0}Z=h+32|0;return e|0}function ai(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;h=Z-32|0;Z=h;a:{b:{if(!Oa(1,h+28|0,b)){break b}d=F[h+28>>2];c=F[a+48>>2];if(d>>>0>F[c+4>>2]-F[c>>2]>>2>>>0){break b}c:{if(d){Na(a+60|0,d);c=h+8|0;F[c>>2]=0;F[c+4>>2]=0;D[c+5|0]=0;D[c+6|0]=0;D[c+7|0]=0;D[c+8|0]=0;D[c+9|0]=0;D[c+10|0]=0;D[c+11|0]=0;D[c+12|0]=0;if(!Aa(c,b)){break c}while(1){f=1<>2]+(e>>>3&536870908)|0;if(j){i=f|F[g>>2]}else{i=F[g>>2]&(f^-1)}F[g>>2]=i;e=e+1|0;if((d|0)!=(e|0)){continue}break}}if(!Oa(1,h+28|0,b)){break b}d=F[h+28>>2];c=F[a+48>>2];if(d>>>0>F[c+4>>2]-F[c>>2]>>2>>>0){break b}if(d){e=0;Na(a+72|0,d);c=h+8|0;F[c>>2]=0;F[c+4>>2]=0;D[c+5|0]=0;D[c+6|0]=0;D[c+7|0]=0;D[c+8|0]=0;D[c+9|0]=0;D[c+10|0]=0;D[c+11|0]=0;D[c+12|0]=0;if(!Aa(c,b)){break c}while(1){f=1<>2]+(e>>>3&536870908)|0;if(j){i=f|F[g>>2]}else{i=F[g>>2]&(f^-1)}F[g>>2]=i;e=e+1|0;if((d|0)!=(e|0)){continue}break}}if(!Oa(1,h+28|0,b)){break b}d=F[h+28>>2];c=F[a+48>>2];if(d>>>0>F[c+4>>2]-F[c>>2]>>2>>>0){break b}if(d){e=0;Na(a+84|0,d);c=h+8|0;F[c>>2]=0;F[c+4>>2]=0;D[c+5|0]=0;D[c+6|0]=0;D[c+7|0]=0;D[c+8|0]=0;D[c+9|0]=0;D[c+10|0]=0;D[c+11|0]=0;D[c+12|0]=0;if(!Aa(c,b)){break c}while(1){f=1<>2]+(e>>>3&536870908)|0;if(j){i=f|F[g>>2]}else{i=F[g>>2]&(f^-1)}F[g>>2]=i;e=e+1|0;if((d|0)!=(e|0)){continue}break}}if(!Oa(1,h+28|0,b)){break b}d=F[h+28>>2];c=F[a+48>>2];if(d>>>0>F[c+4>>2]-F[c>>2]>>2>>>0){break b}if(d){e=0;Na(a+96|0,d);c=h+8|0;F[c>>2]=0;F[c+4>>2]=0;D[c+5|0]=0;D[c+6|0]=0;D[c+7|0]=0;D[c+8|0]=0;D[c+9|0]=0;D[c+10|0]=0;D[c+11|0]=0;D[c+12|0]=0;if(!Aa(c,b)){break c}while(1){f=1<>2]+(e>>>3&536870908)|0;if(j){i=f|F[g>>2]}else{i=F[g>>2]&(f^-1)}F[g>>2]=i;e=e+1|0;if((d|0)!=(e|0)){continue}break}}e=0;c=F[b+8>>2];f=F[b+12>>2];d=c;c=F[b+20>>2];i=c;g=F[b+16>>2];j=g+4|0;c=j>>>0<4?c+1|0:c;if(d>>>0>>0&(c|0)>=(f|0)|(c|0)>(f|0)){break a}m=F[b>>2];k=m+g|0;l=G[k|0]|G[k+1|0]<<8|(G[k+2|0]<<16|G[k+3|0]<<24);F[b+16>>2]=j;F[b+20>>2]=c;k=d;d=f;c=i;f=g+8|0;c=f>>>0<8?c+1|0:c;if(f>>>0>k>>>0&(c|0)>=(d|0)|(c|0)>(d|0)){break a}d=j+m|0;d=G[d|0]|G[d+1|0]<<8|(G[d+2|0]<<16|G[d+3|0]<<24);F[b+16>>2]=f;F[b+20>>2]=c;if((d|0)<(l|0)){break a}F[a+16>>2]=d;F[a+12>>2]=l;c=(d>>31)-((l>>31)+(d>>>0>>0)|0)|0;b=d-l|0;if(!c&b>>>0>2147483646|c){break a}e=1;b=b+1|0;F[a+20>>2]=b;c=b>>>1|0;F[a+24>>2]=c;F[a+28>>2]=0-c;if(b&1){break a}F[a+24>>2]=c-1;break a}}e=0}Z=h+32|0;return e|0}function uh(a){a=a|0;var b=0,c=0,d=0,e=0;c=F[a+32>>2];d=F[c+16>>2];e=F[c+12>>2];b=F[c+20>>2];if(I[c+8>>2]>d>>>0&(e|0)>=(b|0)|(b|0)<(e|0)){e=G[F[c>>2]+d|0];d=d+1|0;b=d?b:b+1|0;F[c+16>>2]=d;F[c+20>>2]=b;b=F[a+48>>2];F[a+48>>2]=0;if(b){$[F[F[b>>2]+4>>2]](b)}a:{b:{c:{d:{switch(e|0){case 0:b=ka(384);F[b>>2]=8284;ma(b+4|0,0,80);F[b+96>>2]=0;F[b+100>>2]=0;F[b+92>>2]=-1;F[b+84>>2]=-1;F[b+88>>2]=-1;F[b+104>>2]=0;F[b+108>>2]=0;F[b+112>>2]=0;F[b+116>>2]=0;F[b+120>>2]=0;F[b+124>>2]=0;F[b+128>>2]=0;F[b+132>>2]=0;F[b+136>>2]=0;F[b+140>>2]=0;F[b+144>>2]=0;F[b+148>>2]=0;F[b+156>>2]=0;F[b+160>>2]=0;F[b+152>>2]=1065353216;F[b+164>>2]=0;F[b+168>>2]=0;F[b+172>>2]=0;F[b+176>>2]=0;F[b+180>>2]=0;F[b+184>>2]=0;F[b+188>>2]=0;F[b+192>>2]=0;F[b+196>>2]=0;F[b+200>>2]=0;F[b+204>>2]=0;F[b+208>>2]=0;F[b+212>>2]=-1;F[b+216>>2]=0;F[b+220>>2]=0;F[b+224>>2]=0;Ja(b+232|0);Ja(b+272|0);c=b+312|0;F[c>>2]=0;F[c+4>>2]=0;D[c+5|0]=0;D[c+6|0]=0;D[c+7|0]=0;D[c+8|0]=0;D[c+9|0]=0;D[c+10|0]=0;D[c+11|0]=0;D[c+12|0]=0;Ja(b+328|0);F[b+376>>2]=0;F[b+368>>2]=0;F[b+372>>2]=0;break c;case 2:break d;default:break b}}b=ka(440);F[b>>2]=8336;ma(b+4|0,0,80);F[b+96>>2]=0;F[b+100>>2]=0;F[b+92>>2]=-1;F[b+84>>2]=-1;F[b+88>>2]=-1;F[b+104>>2]=0;F[b+108>>2]=0;F[b+112>>2]=0;F[b+116>>2]=0;F[b+120>>2]=0;F[b+124>>2]=0;F[b+128>>2]=0;F[b+132>>2]=0;F[b+136>>2]=0;F[b+140>>2]=0;F[b+144>>2]=0;F[b+148>>2]=0;F[b+156>>2]=0;F[b+160>>2]=0;F[b+152>>2]=1065353216;F[b+164>>2]=0;F[b+168>>2]=0;F[b+172>>2]=0;F[b+176>>2]=0;F[b+180>>2]=0;F[b+184>>2]=0;F[b+188>>2]=0;F[b+192>>2]=0;F[b+196>>2]=0;F[b+200>>2]=0;F[b+204>>2]=0;F[b+208>>2]=0;F[b+212>>2]=-1;F[b+216>>2]=0;F[b+220>>2]=0;F[b+224>>2]=0;Ja(b+232|0);Ja(b+272|0);c=b+312|0;F[c>>2]=0;F[c+4>>2]=0;D[c+5|0]=0;D[c+6|0]=0;D[c+7|0]=0;D[c+8|0]=0;D[c+9|0]=0;D[c+10|0]=0;D[c+11|0]=0;D[c+12|0]=0;Ja(b+328|0);F[b+392>>2]=0;F[b+396>>2]=0;F[b+384>>2]=0;F[b+388>>2]=0;F[b+376>>2]=0;F[b+380>>2]=0;F[b+368>>2]=0;F[b+372>>2]=0;F[b+416>>2]=0;F[b+420>>2]=0;F[b+408>>2]=2;F[b+412>>2]=7;F[b+400>>2]=-1;F[b+404>>2]=-1;F[b+424>>2]=0;F[b+428>>2]=0;F[b+432>>2]=0;F[b+436>>2]=0}c=F[a+48>>2];F[a+48>>2]=b;if(!c){break a}$[F[F[c>>2]+4>>2]](c)}b=F[a+48>>2];if(b){break a}return 0}a=$[F[F[b>>2]+8>>2]](b,a)|0}else{a=0}return a|0}function ei(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;g=Z-32|0;Z=g;F[a+68>>2]=f;d=F[a+56>>2];e=F[d>>2];d=F[d+4>>2];F[g+24>>2]=0;F[g+16>>2]=0;F[g+20>>2]=0;a:{d=d-e|0;if((d|0)>0){m=a+60|0;d=d>>>2|0;n=d>>>0<=1?1:d;o=a+112|0;while(1){e=F[a+56>>2];d=F[e>>2];if(F[e+4>>2]-d>>2>>>0<=j>>>0){break a}Mb(m,F[d+(j<<2)>>2],g+16|0);i=F[g+20>>2];d=i>>31;h=F[g+16>>2];e=h>>31;f=(d^i)-d+((e^h)-e)|0;k=F[g+24>>2];d=k>>31;e=(d^k)-d|0;d=0;l=e;e=e+f|0;d=l>>>0>e>>>0?1:d;b:{if(!(d|e)){F[g+16>>2]=F[a+108>>2];break b}f=F[a+108>>2];l=f>>31;h=li(ki(f,l,h,h>>31),_,e,d);F[g+16>>2]=h;d=li(ki(f,l,i,i>>31),_,e,d);F[g+20>>2]=d;e=d;d=d>>31;e=(e^d)-d|0;d=h>>31;d=e+((d^h)-d|0)|0;if((k|0)>=0){F[g+24>>2]=f-d;break b}F[g+24>>2]=d-f}d=wa(o);f=F[g+16>>2];c:{if(d){F[g+24>>2]=0-F[g+24>>2];e=0-F[g+20>>2]|0;F[g+20>>2]=e;f=0-f|0;F[g+16>>2]=f;break c}e=F[g+20>>2]}d:{if((f|0)>=0){f=F[a+108>>2];d=f+F[g+24>>2]|0;f=e+f|0;break d}e:{if((e|0)<0){d=F[g+24>>2];f=d>>31;f=(d^f)-f|0;break e}d=F[g+24>>2];f=d>>31;f=F[a+100>>2]+(f-(d^f)|0)|0}if((d|0)<0){d=e>>31;d=(d^e)-d|0;break d}d=e>>31;d=F[a+100>>2]+(d-(d^e)|0)|0}e=F[a+100>>2];f:{if(!(d|f)){d=e;f=d;break f}if(!((d|0)!=(e|0)|f)){f=d;break f}if(!((e|0)!=(f|0)|d)){d=f;break f}g:{if(f){break g}i=F[a+108>>2];if((i|0)>=(d|0)){break g}d=(i<<1)-d|0;f=0;break f}h:{if((e|0)!=(f|0)){break h}i=F[a+108>>2];if((i|0)<=(d|0)){break h}d=(i<<1)-d|0;break f}i:{if((d|0)!=(e|0)){break i}e=F[a+108>>2];if((e|0)<=(f|0)){break i}f=(e<<1)-f|0;break f}if(d){break f}d=0;e=F[a+108>>2];if((e|0)>=(f|0)){break f}f=(e<<1)-f|0}F[g+12>>2]=d;F[g+8>>2]=f;j:{if(F[a+8>>2]<=0){break j}i=F[a+32>>2];f=0;while(1){d=f<<2;e=F[d+(g+8|0)>>2];h=F[a+16>>2];k:{if((e|0)>(h|0)){F[d+i>>2]=h;break k}d=d+i|0;h=F[a+12>>2];if((h|0)>(e|0)){F[d>>2]=h;break k}F[d>>2]=e}f=f+1|0;e=F[a+8>>2];if((f|0)<(e|0)){continue}break}d=0;if((e|0)<=0){break j}e=j<<3;h=e+c|0;k=b+e|0;while(1){f=d<<2;e=f+h|0;f=F[f+k>>2]+F[f+i>>2]|0;F[e>>2]=f;l:{if((f|0)>F[a+16>>2]){f=f-F[a+20>>2]|0}else{if((f|0)>=F[a+12>>2]){break l}f=f+F[a+20>>2]|0}F[e>>2]=f}d=d+1|0;if((d|0)>2]){continue}break}}j=j+1|0;if((n|0)!=(j|0)){continue}break}}Z=g+32|0;return 1}ta();v()}function Vh(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;g=Z-32|0;Z=g;F[a+68>>2]=f;d=F[a+56>>2];e=F[d>>2];d=F[d+4>>2];F[g+24>>2]=0;F[g+16>>2]=0;F[g+20>>2]=0;a:{d=d-e|0;if((d|0)>0){m=a+60|0;d=d>>>2|0;n=d>>>0<=1?1:d;o=a+112|0;while(1){e=F[a+56>>2];d=F[e>>2];if(F[e+4>>2]-d>>2>>>0<=j>>>0){break a}Kb(m,F[d+(j<<2)>>2],g+16|0);i=F[g+20>>2];d=i>>31;h=F[g+16>>2];e=h>>31;f=(d^i)-d+((e^h)-e)|0;k=F[g+24>>2];d=k>>31;e=(d^k)-d|0;d=0;l=e;e=e+f|0;d=l>>>0>e>>>0?1:d;b:{if(!(d|e)){F[g+16>>2]=F[a+108>>2];break b}f=F[a+108>>2];l=f>>31;h=li(ki(f,l,h,h>>31),_,e,d);F[g+16>>2]=h;d=li(ki(f,l,i,i>>31),_,e,d);F[g+20>>2]=d;e=d;d=d>>31;e=(e^d)-d|0;d=h>>31;d=e+((d^h)-d|0)|0;if((k|0)>=0){F[g+24>>2]=f-d;break b}F[g+24>>2]=d-f}d=wa(o);f=F[g+16>>2];c:{if(d){F[g+24>>2]=0-F[g+24>>2];e=0-F[g+20>>2]|0;F[g+20>>2]=e;f=0-f|0;F[g+16>>2]=f;break c}e=F[g+20>>2]}d:{if((f|0)>=0){f=F[a+108>>2];d=f+F[g+24>>2]|0;f=e+f|0;break d}e:{if((e|0)<0){d=F[g+24>>2];f=d>>31;f=(d^f)-f|0;break e}d=F[g+24>>2];f=d>>31;f=F[a+100>>2]+(f-(d^f)|0)|0}if((d|0)<0){d=e>>31;d=(d^e)-d|0;break d}d=e>>31;d=F[a+100>>2]+(d-(d^e)|0)|0}e=F[a+100>>2];f:{if(!(d|f)){d=e;f=d;break f}if(!((d|0)!=(e|0)|f)){f=d;break f}if(!((e|0)!=(f|0)|d)){d=f;break f}g:{if(f){break g}i=F[a+108>>2];if((i|0)>=(d|0)){break g}d=(i<<1)-d|0;f=0;break f}h:{if((e|0)!=(f|0)){break h}i=F[a+108>>2];if((i|0)<=(d|0)){break h}d=(i<<1)-d|0;break f}i:{if((d|0)!=(e|0)){break i}e=F[a+108>>2];if((e|0)<=(f|0)){break i}f=(e<<1)-f|0;break f}if(d){break f}d=0;e=F[a+108>>2];if((e|0)>=(f|0)){break f}f=(e<<1)-f|0}F[g+12>>2]=d;F[g+8>>2]=f;j:{if(F[a+8>>2]<=0){break j}i=F[a+32>>2];f=0;while(1){d=f<<2;e=F[d+(g+8|0)>>2];h=F[a+16>>2];k:{if((e|0)>(h|0)){F[d+i>>2]=h;break k}d=d+i|0;h=F[a+12>>2];if((h|0)>(e|0)){F[d>>2]=h;break k}F[d>>2]=e}f=f+1|0;e=F[a+8>>2];if((f|0)<(e|0)){continue}break}d=0;if((e|0)<=0){break j}e=j<<3;h=e+c|0;k=b+e|0;while(1){f=d<<2;e=f+h|0;f=F[f+k>>2]+F[f+i>>2]|0;F[e>>2]=f;l:{if((f|0)>F[a+16>>2]){f=f-F[a+20>>2]|0}else{if((f|0)>=F[a+12>>2]){break l}f=f+F[a+20>>2]|0}F[e>>2]=f}d=d+1|0;if((d|0)>2]){continue}break}}j=j+1|0;if((n|0)!=(j|0)){continue}break}}Z=g+32|0;return 1}ta();v()}function $a(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;h=Z-32|0;Z=h;a:{b:{if(F[a+8>>2]<<5>>>0>=b>>>0){break b}if((b|0)<0){break a}b=(b-1>>>5|0)+1|0;c=ka(b<<2);F[h+24>>2]=b;F[h+20>>2]=0;F[h+16>>2]=c;b=F[a>>2];F[h+12>>2]=0;F[h+8>>2]=b;c=F[a+4>>2];F[h+4>>2]=c&31;F[h>>2]=b+(c>>>3&536870908);e=Z-32|0;Z=e;i=F[h+4>>2];g=F[h+12>>2];j=F[h>>2];d=F[h+8>>2];b=(i-g|0)+(j-d<<3)|0;f=F[h+20>>2];c=b+f|0;F[h+20>>2]=c;if(!((c-1^f-1)>>>0<32?f:0)){F[F[h+16>>2]+((c>>>0>=33?c-1>>>5|0:0)<<2)>>2]=0}c=F[h+16>>2]+(f>>>3&536870908)|0;f=f&31;c:{if((f|0)==(g|0)){if((b|0)<=0){break c}if(g){i=32-g|0;f=(b|0)<(i|0)?b:i;i=-1<>>i-f;F[c>>2]=F[c>>2]&(i^-1)|i&F[d>>2];d=d+4|0;c=(g+f>>>3&536870908)+c|0;b=b-f|0}g=(b|0)/32|0;if(b+31>>>0>=63){pa(c,d,g<<2)}b=b-(g<<5)|0;if((b|0)<=0){break c}f=c;c=g<<2;g=f+c|0;b=-1>>>32-b|0;F[g>>2]=F[g>>2]&(b^-1)|b&F[c+d>>2];break c}F[e+28>>2]=g;F[e+24>>2]=d;F[e+20>>2]=i;F[e+16>>2]=j;F[e+12>>2]=f;F[e+8>>2]=c;b=F[e+28>>2];c=F[e+24>>2];g=(F[e+20>>2]-b|0)+(F[e+16>>2]-c<<3)|0;d:{if((g|0)<=0){b=F[e+12>>2];d=F[e+8>>2];break d}e:{if(!b){b=F[e+12>>2];break e}d=F[e+12>>2];j=32-d|0;k=32-b|0;f=(g|0)<(k|0)?g:k;i=f>>>0>j>>>0?j:f;l=F[e+8>>2];m=F[l>>2]&(-1<>>j-i^-1);j=F[c>>2]&(-1<>>k-f);F[l>>2]=m|(b>>>0>>0?j<>>b-d|0);c=d+i|0;b=c&31;F[e+12>>2]=b;d=l+(c>>>3&536870908)|0;F[e+8>>2]=d;c=f-i|0;if((c|0)>0){F[d>>2]=F[d>>2]&(-1>>>32-c^-1)|j>>>i+F[e+28>>2];F[e+12>>2]=c;b=c}g=g-f|0;c=F[e+24>>2]+4|0;F[e+24>>2]=c}i=-1<=32){j=i^-1;while(1){d=F[e+8>>2];c=F[c>>2];F[d>>2]=j&F[d>>2]|c<>2]=d+4;F[d+4>>2]=i&F[d+4>>2]|c>>>f;c=F[e+24>>2]+4|0;F[e+24>>2]=c;d=g>>>0>63;g=g-32|0;if(d){continue}break}}d=F[e+8>>2];if((g|0)<=0){break d}j=f;f=(g|0)>(f|0)?f:g;j=F[d>>2]&(i&-1>>>j-f^-1);i=F[c>>2]&-1>>>32-g;F[d>>2]=j|i<>2]=c;d=(b>>>3&536870908)+d|0;F[e+8>>2]=d;b=g-f|0;if((b|0)<=0){b=c;break d}F[d>>2]=F[d>>2]&(-1>>>32-b^-1)|i>>>f;F[e+12>>2]=b}F[e+4>>2]=b;F[e>>2]=d}Z=e+32|0;b=F[a>>2];F[a>>2]=F[h+16>>2];F[h+16>>2]=b;c=F[a+4>>2];F[a+4>>2]=F[h+20>>2];F[h+20>>2]=c;c=F[a+8>>2];F[a+8>>2]=F[h+24>>2];F[h+24>>2]=c;if(!b){break b}ja(b)}Z=h+32|0;return}na();v()}function xc(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;n=$[F[F[a>>2]+44>>2]](a)|0;a:{if((n|0)<=0){break a}i=F[b+4>>2]-F[b>>2]>>2;e=Z+-64|0;Z=e;f=kb(e);d=L(F[2541],n);cc(f,F[F[a+8>>2]+56>>2],n&255,5,0,d,d>>31);f=bc(ka(96),f);D[f+84|0]=1;F[f+72>>2]=F[f+68>>2];ac(f,i);F[f+60>>2]=F[F[a+8>>2]+60>>2];d=F[a+16>>2];F[a+16>>2]=f;if(d){xa(d)}Z=e- -64|0;h=F[a+16>>2];if(!F[h+80>>2]){break a}j=F[F[h>>2]>>2];if(!j){break a}m=F[c+12>>2];e=m;d=F[c+20>>2];g=F[c+8>>2];k=F[c+16>>2];if((e|0)<=(d|0)&g>>>0<=k>>>0|(d|0)>(e|0)){break a}l=L(i,n);i=j+F[h+48>>2]|0;h=F[c>>2];j=G[h+k|0];e=k+1|0;f=e?d:d+1|0;F[c+16>>2]=e;F[c+20>>2]=f;b:{c:{if(j){if(mc(l,n,c,i)){break c}break a}if((f|0)>=(m|0)&e>>>0>=g>>>0|(f|0)>(m|0)){break a}g=G[e+h|0];f=k+2|0;d=f>>>0<2?d+1|0:d;F[c+16>>2]=f;F[c+20>>2]=d;d=F[F[a+16>>2]+64>>2];d=F[d+4>>2]-F[d>>2]|0;if((g|0)==F[2541]){e=l<<2;if(e>>>0>d>>>0){break a}g=F[c+8>>2];k=F[c+12>>2];j=F[c+20>>2];d=F[c+16>>2];f=e+d|0;j=f>>>0>>0?j+1|0:j;if(f>>>0>g>>>0&(j|0)>=(k|0)|(j|0)>(k|0)){break a}la(i,d+F[c>>2]|0,e);f=F[c+20>>2];d=e+F[c+16>>2]|0;f=d>>>0>>0?f+1|0:f;F[c+16>>2]=d;F[c+20>>2]=f;break c}if(d>>>0>>0){break a}d=F[c+8>>2];f=F[c+16>>2];e=d-f|0;m=d>>>0>>0;d=F[c+20>>2];k=F[c+12>>2]-(m+d|0)|0;m=ki(g,0,l,0)>>>0>e>>>0;e=_;if(m&(e|0)>=(k|0)|(e|0)>(k|0)){break a}e=1;if(!l){break b}h=0;while(1){k=F[c+8>>2];j=F[c+12>>2];e=f+g|0;d=e>>>0>>0?d+1|0:d;if(e>>>0>k>>>0&(d|0)>=(j|0)|(d|0)>(j|0)){return 0}la(i+(h<<2)|0,F[c>>2]+f|0,g);d=F[c+20>>2];f=g+F[c+16>>2]|0;d=f>>>0>>0?d+1|0:d;F[c+16>>2]=f;F[c+20>>2]=d;h=h+1|0;if((l|0)!=(h|0)){continue}break}}e=1;if(!l){break b}d=F[a+20>>2];if(d){e=0;if($[F[F[d>>2]+32>>2]](d)|0){break b}}g=0;h=0;d:{if((l|0)<=0){break d}if((l|0)!=1){f=l&-2;while(1){e=g<<2;d=F[e+i>>2];F[e+i>>2]=0-(d&1)^d>>>1;d=e|4;e=F[d+i>>2];F[d+i>>2]=0-(e&1)^e>>>1;g=g+2|0;h=h+2|0;if((f|0)!=(h|0)){continue}break}}if(!(l&1)){break d}d=g<<2;f=F[d+i>>2];F[d+i>>2]=0-(f&1)^f>>>1}e=0}d=e;f=F[a+20>>2];e:{if(!f){break e}if(!($[F[F[f>>2]+40>>2]](f,c)|0)){break a}if(d){break e}a=F[a+20>>2];if(!($[F[F[a>>2]+44>>2]](a,i,i,l,n,F[b>>2])|0)){break a}}o=1}return o|0}function Lh(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;g=Z-48|0;Z=g;d=F[a+8>>2];if(d-2>>>0<=28){F[a+76>>2]=d;e=-1<>2]=d;F[a+80>>2]=e^-1;F[a+92>>2]=(d|0)/2;J[a+88>>2]=M(2)/M(d|0)}F[a+52>>2]=f;d=F[a+40>>2];e=F[d>>2];d=F[d+4>>2];F[g+16>>2]=0;F[g+8>>2]=0;F[g+12>>2]=0;a:{d=d-e|0;if((d|0)>0){m=a+8|0;n=a+44|0;d=d>>>2|0;o=d>>>0<=1?1:d;p=a+96|0;while(1){e=F[a+40>>2];d=F[e>>2];if(F[e+4>>2]-d>>2>>>0<=j>>>0){break a}Mb(n,F[d+(j<<2)>>2],g+8|0);h=F[g+12>>2];d=h>>31;i=F[g+8>>2];e=i>>31;f=(d^h)-d+((e^i)-e)|0;l=F[g+16>>2];d=l>>31;e=(d^l)-d|0;d=0;k=e;e=e+f|0;d=k>>>0>e>>>0?1:d;b:{if(!(d|e)){F[g+8>>2]=F[a+92>>2];break b}f=F[a+92>>2];k=f>>31;i=li(ki(f,k,i,i>>31),_,e,d);F[g+8>>2]=i;d=li(ki(f,k,h,h>>31),_,e,d);F[g+12>>2]=d;e=d>>31;e=(d^e)-e|0;d=i>>31;d=e+((d^i)-d|0)|0;if((l|0)>=0){F[g+16>>2]=f-d;break b}F[g+16>>2]=d-f}d=wa(p);f=F[g+8>>2];c:{if(d){F[g+16>>2]=0-F[g+16>>2];e=0-F[g+12>>2]|0;F[g+12>>2]=e;f=0-f|0;F[g+8>>2]=f;break c}e=F[g+12>>2]}d:{if((f|0)>=0){f=F[a+92>>2];d=f+F[g+16>>2]|0;f=e+f|0;break d}e:{if((e|0)<0){d=F[g+16>>2];f=d>>31;f=(d^f)-f|0;break e}d=F[g+16>>2];f=d>>31;f=F[a+84>>2]+(f-(d^f)|0)|0}if((d|0)<0){d=e>>31;d=(d^e)-d|0;break d}d=e>>31;d=F[a+84>>2]+(d-(d^e)|0)|0}e=F[a+84>>2];f:{if(!(d|f)){d=e;f=d;break f}if(!((d|0)!=(e|0)|f)){f=d;break f}if(!((e|0)!=(f|0)|d)){d=f;break f}g:{if(f){break g}h=F[a+92>>2];if((h|0)>=(d|0)){break g}d=(h<<1)-d|0;f=0;break f}h:{if((e|0)!=(f|0)){break h}h=F[a+92>>2];if((h|0)<=(d|0)){break h}d=(h<<1)-d|0;break f}i:{if((d|0)!=(e|0)){break i}e=F[a+92>>2];if((e|0)<=(f|0)){break i}f=(e<<1)-f|0;break f}if(d){break f}d=0;e=F[a+92>>2];if((e|0)>=(f|0)){break f}f=(e<<1)-f|0}e=j<<3;h=e+b|0;i=F[h>>2];h=F[h+4>>2];F[g+36>>2]=d;F[g+32>>2]=f;F[g+24>>2]=i;F[g+28>>2]=h;Jb(g+40|0,m,g+32|0,g+24|0);d=c+e|0;F[d>>2]=F[g+40>>2];F[d+4>>2]=F[g+44>>2];j=j+1|0;if((o|0)!=(j|0)){continue}break}}Z=g+48|0;return 1}ta();v()}function Hh(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;g=Z-48|0;Z=g;d=F[a+8>>2];if(d-2>>>0<=28){F[a+76>>2]=d;e=-1<>2]=d;F[a+80>>2]=e^-1;F[a+92>>2]=(d|0)/2;J[a+88>>2]=M(2)/M(d|0)}F[a+52>>2]=f;d=F[a+40>>2];e=F[d>>2];d=F[d+4>>2];F[g+16>>2]=0;F[g+8>>2]=0;F[g+12>>2]=0;a:{d=d-e|0;if((d|0)>0){m=a+8|0;n=a+44|0;d=d>>>2|0;o=d>>>0<=1?1:d;p=a+96|0;while(1){e=F[a+40>>2];d=F[e>>2];if(F[e+4>>2]-d>>2>>>0<=j>>>0){break a}Kb(n,F[d+(j<<2)>>2],g+8|0);h=F[g+12>>2];d=h>>31;i=F[g+8>>2];e=i>>31;f=(d^h)-d+((e^i)-e)|0;l=F[g+16>>2];d=l>>31;e=(d^l)-d|0;d=0;k=e;e=e+f|0;d=k>>>0>e>>>0?1:d;b:{if(!(d|e)){F[g+8>>2]=F[a+92>>2];break b}f=F[a+92>>2];k=f>>31;i=li(ki(f,k,i,i>>31),_,e,d);F[g+8>>2]=i;d=li(ki(f,k,h,h>>31),_,e,d);F[g+12>>2]=d;e=d>>31;e=(d^e)-e|0;d=i>>31;d=e+((d^i)-d|0)|0;if((l|0)>=0){F[g+16>>2]=f-d;break b}F[g+16>>2]=d-f}d=wa(p);f=F[g+8>>2];c:{if(d){F[g+16>>2]=0-F[g+16>>2];e=0-F[g+12>>2]|0;F[g+12>>2]=e;f=0-f|0;F[g+8>>2]=f;break c}e=F[g+12>>2]}d:{if((f|0)>=0){f=F[a+92>>2];d=f+F[g+16>>2]|0;f=e+f|0;break d}e:{if((e|0)<0){d=F[g+16>>2];f=d>>31;f=(d^f)-f|0;break e}d=F[g+16>>2];f=d>>31;f=F[a+84>>2]+(f-(d^f)|0)|0}if((d|0)<0){d=e>>31;d=(d^e)-d|0;break d}d=e>>31;d=F[a+84>>2]+(d-(d^e)|0)|0}e=F[a+84>>2];f:{if(!(d|f)){d=e;f=d;break f}if(!((d|0)!=(e|0)|f)){f=d;break f}if(!((e|0)!=(f|0)|d)){d=f;break f}g:{if(f){break g}h=F[a+92>>2];if((h|0)>=(d|0)){break g}d=(h<<1)-d|0;f=0;break f}h:{if((e|0)!=(f|0)){break h}h=F[a+92>>2];if((h|0)<=(d|0)){break h}d=(h<<1)-d|0;break f}i:{if((d|0)!=(e|0)){break i}e=F[a+92>>2];if((e|0)<=(f|0)){break i}f=(e<<1)-f|0;break f}if(d){break f}d=0;e=F[a+92>>2];if((e|0)>=(f|0)){break f}f=(e<<1)-f|0}e=j<<3;h=e+b|0;i=F[h>>2];h=F[h+4>>2];F[g+36>>2]=d;F[g+32>>2]=f;F[g+24>>2]=i;F[g+28>>2]=h;Jb(g+40|0,m,g+32|0,g+24|0);d=c+e|0;F[d>>2]=F[g+40>>2];F[d+4>>2]=F[g+44>>2];j=j+1|0;if((o|0)!=(j|0)){continue}break}}Z=g+48|0;return 1}ta();v()}function Nd(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;a:{if(!H[b+38>>1]){break a}if(!Ta(1,a+12|0,b)){break a}d=F[b+8>>2];e=F[b+16>>2];g=d-e|0;f=F[a+12>>2];d=F[b+12>>2]-(F[b+20>>2]+(d>>>0>>0)|0)|0;if(g>>>0>>6>>>0&(d|0)<=0|(d|0)<0){break a}d=F[a>>2];c=F[a+4>>2]-d>>2;b:{if(c>>>0>>0){qa(a,f-c|0);f=F[a+12>>2];break b}if(c>>>0<=f>>>0){break b}F[a+4>>2]=d+(f<<2)}if(!f){return 1}d=F[b+16>>2];c=F[b+20>>2];l=F[a>>2];j=F[b+8>>2];i=F[b+12>>2];g=0;while(1){if((c|0)>=(i|0)&d>>>0>=j>>>0|(c|0)>(i|0)){return 0}m=F[b>>2];k=G[m+d|0];d=d+1|0;c=d?c:c+1|0;F[b+16>>2]=d;F[b+20>>2]=c;e=k>>>2|0;h=0;c:{d:{e:{f:{n=k&3;switch(n|0){case 3:break f;case 0:break d;default:break e}}e=e+g|0;if(e>>>0>=f>>>0){return 0}ma(l+(g<<2)|0,0,(k&252)+4|0);g=e;break c}while(1){if((d|0)==(j|0)&(c|0)==(i|0)){break a}f=G[d+m|0];d=d+1|0;c=d?c:c+1|0;F[b+16>>2]=d;F[b+20>>2]=c;e=f<<(h<<3|6)|e;h=h+1|0;if((n|0)!=(h|0)){continue}break}}F[l+(g<<2)>>2]=e}f=F[a+12>>2];g=g+1|0;if(f>>>0>g>>>0){continue}break}b=a+16|0;j=F[a>>2];d=F[a+16>>2];c=F[a+20>>2]-d|0;g:{if(c>>>0<=16383){qa(b,4096-(c>>>2|0)|0);break g}if((c|0)==16384){break g}F[a+20>>2]=d+16384}c=a+28|0;g=F[c>>2];d=F[a+32>>2]-g>>3;h:{if(d>>>0>>0){_a(c,f-d|0);g=F[c>>2];break h}if(d>>>0>f>>>0){F[a+32>>2]=(f<<3)+g}if(!f){break a}}d=F[b>>2];b=0;a=0;while(1){c=j+(b<<2)|0;h=F[c>>2];e=a;i=(b<<3)+g|0;F[i+4>>2]=a;F[i>>2]=h;c=F[c>>2];a=c+a|0;if(a>>>0>4096){break a}i:{if(a>>>0<=e>>>0){break i}h=0;i=c&7;if(i){while(1){F[d+(e<<2)>>2]=b;e=e+1|0;h=h+1|0;if((i|0)!=(h|0)){continue}break}}if(c-1>>>0<=6){break i}while(1){c=d+(e<<2)|0;F[c>>2]=b;F[c+28>>2]=b;F[c+24>>2]=b;F[c+20>>2]=b;F[c+16>>2]=b;F[c+12>>2]=b;F[c+8>>2]=b;F[c+4>>2]=b;e=e+8|0;if((e|0)!=(a|0)){continue}break}}b=b+1|0;if((f|0)!=(b|0)){continue}break}o=(a|0)==4096}return o}function qf(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;f=Z-32|0;Z=f;e=f+8|0;c=Z-80|0;Z=c;a=F[b+36>>2];F[c+72>>2]=F[b+32>>2];F[c+76>>2]=a;d=F[b+28>>2];a=c- -64|0;F[a>>2]=F[b+24>>2];F[a+4>>2]=d;a=F[b+20>>2];F[c+56>>2]=F[b+16>>2];F[c+60>>2]=a;a=F[b+12>>2];F[c+48>>2]=F[b+8>>2];F[c+52>>2]=a;a=F[b+4>>2];F[c+40>>2]=F[b>>2];F[c+44>>2]=a;jc(c+8|0,c+40|0,c+24|0);a=F[c+8>>2];a:{if(a){F[e>>2]=a;a=e+4|0;if(D[c+23|0]>=0){b=c+8|4;e=F[b+4>>2];F[a>>2]=F[b>>2];F[a+4>>2]=e;F[a+8>>2]=F[b+8>>2];break a}ra(a,F[c+12>>2],F[c+16>>2]);if(D[c+23|0]>=0){break a}ja(F[c+12>>2]);break a}if(D[c+23|0]<0){ja(F[c+12>>2])}a=G[c+31|0];if(a>>>0>=2){b=ka(32);D[b+26|0]=0;a=G[1475]|G[1476]<<8;D[b+24|0]=a;D[b+25|0]=a>>>8;a=G[1471]|G[1472]<<8|(G[1473]<<16|G[1474]<<24);d=G[1467]|G[1468]<<8|(G[1469]<<16|G[1470]<<24);D[b+16|0]=d;D[b+17|0]=d>>>8;D[b+18|0]=d>>>16;D[b+19|0]=d>>>24;D[b+20|0]=a;D[b+21|0]=a>>>8;D[b+22|0]=a>>>16;D[b+23|0]=a>>>24;a=G[1463]|G[1464]<<8|(G[1465]<<16|G[1466]<<24);d=G[1459]|G[1460]<<8|(G[1461]<<16|G[1462]<<24);D[b+8|0]=d;D[b+9|0]=d>>>8;D[b+10|0]=d>>>16;D[b+11|0]=d>>>24;D[b+12|0]=a;D[b+13|0]=a>>>8;D[b+14|0]=a>>>16;D[b+15|0]=a>>>24;a=G[1455]|G[1456]<<8|(G[1457]<<16|G[1458]<<24);d=G[1451]|G[1452]<<8|(G[1453]<<16|G[1454]<<24);D[b|0]=d;D[b+1|0]=d>>>8;D[b+2|0]=d>>>16;D[b+3|0]=d>>>24;D[b+4|0]=a;D[b+5|0]=a>>>8;D[b+6|0]=a>>>16;D[b+7|0]=a>>>24;F[c+8>>2]=-1;a=c+8|4;ra(a,b,26);d=D[c+23|0];F[e>>2]=F[c+8>>2];e=e+4|0;if((d|0)>=0){d=F[a+4>>2];F[e>>2]=F[a>>2];F[e+4>>2]=d;F[e+8>>2]=F[a+8>>2];ja(b);break a}ra(e,F[c+12>>2],F[c+16>>2]);if(D[c+23|0]<0){ja(F[c+12>>2])}ja(b);break a}F[e>>2]=0;F[e+4>>2]=0;F[e+16>>2]=a;F[e+8>>2]=0;F[e+12>>2]=0}Z=c+80|0;a=F[f+24>>2];if(D[f+23|0]<0){ja(F[f+12>>2])}Z=f+32|0;return a|0}function Ph(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0;e=Z-32|0;Z=e;a:{if((c|0)!=3){break a}c=F[a+4>>2];f=F[a+12>>2];F[e+24>>2]=-1;F[e+16>>2]=-1;F[e+20>>2]=1065353216;F[e+8>>2]=-1;F[e+12>>2]=-1;if((b|0)==-2){break a}i=F[F[F[c+4>>2]+8>>2]+(f<<2)>>2];if(($[F[F[c>>2]+8>>2]](c)|0)==1){h=F[F[F[c+4>>2]+8>>2]+(f<<2)>>2];b:{if(($[F[F[c>>2]+8>>2]](c)|0)!=1|b-1>>>0>5){break b}g=$[F[F[c>>2]+36>>2]](c)|0;a=$[F[F[c>>2]+44>>2]](c,f)|0;if(!g|!a){break b}f=$[F[F[c>>2]+40>>2]](c,f)|0;c:{if(f){if((b|0)!=6){break b}b=F[c+44>>2];d=ka(112);F[d+4>>2]=h;c=F[e+12>>2];F[d+8>>2]=F[e+8>>2];F[d+12>>2]=c;c=F[e+20>>2];F[d+16>>2]=F[e+16>>2];F[d+20>>2]=c;F[d+24>>2]=F[e+24>>2];F[d+40>>2]=a;c=a+12|0;F[d+36>>2]=c;F[d+32>>2]=f;F[d+28>>2]=b;F[d+68>>2]=a;F[d- -64>>2]=c;F[d+60>>2]=f;F[d+56>>2]=b;F[d+48>>2]=0;F[d+52>>2]=0;F[d>>2]=5928;F[d+88>>2]=1065353216;F[d+92>>2]=-1;F[d+80>>2]=-1;F[d+84>>2]=-1;F[d+72>>2]=1;F[d+76>>2]=-1;F[d+44>>2]=6492;a=d+96|0;break c}if((b|0)!=6){break b}b=F[c+44>>2];d=ka(112);F[d+4>>2]=h;c=F[e+12>>2];F[d+8>>2]=F[e+8>>2];F[d+12>>2]=c;c=F[e+20>>2];F[d+16>>2]=F[e+16>>2];F[d+20>>2]=c;F[d+24>>2]=F[e+24>>2];F[d+40>>2]=a;c=a+12|0;F[d+36>>2]=c;F[d+32>>2]=g;F[d+28>>2]=b;F[d+68>>2]=a;F[d- -64>>2]=c;F[d+60>>2]=g;F[d+56>>2]=b;F[d+48>>2]=0;F[d+52>>2]=0;F[d>>2]=6932;F[d+88>>2]=1065353216;F[d+92>>2]=-1;F[d+80>>2]=-1;F[d+84>>2]=-1;F[d+72>>2]=1;F[d+76>>2]=-1;F[d+44>>2]=7352;a=d+96|0}F[a>>2]=0;F[a+4>>2]=0;D[a+5|0]=0;D[a+6|0]=0;D[a+7|0]=0;D[a+8|0]=0;D[a+9|0]=0;D[a+10|0]=0;D[a+11|0]=0;D[a+12|0]=0}if(d){break a}}d=ka(28);F[d+4>>2]=i;a=F[e+12>>2];F[d+8>>2]=F[e+8>>2];F[d+12>>2]=a;a=F[e+20>>2];F[d+16>>2]=F[e+16>>2];F[d+20>>2]=a;F[d+24>>2]=F[e+24>>2];F[d>>2]=7764}Z=e+32|0;return d|0}function $c(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;f=Z-80|0;Z=f;a:{if(!Wb(1,f+76|0,b)){break a}k=F[f+76>>2];if(!k){break a}c=F[b+8>>2];e=F[b+16>>2];c=ki(c-e|0,F[b+12>>2]-(F[b+20>>2]+(c>>>0>>0)|0)|0,5,0);e=_;if(c>>>0>>0&(e|0)<=0|(e|0)<0){break a}c=F[a+4>>2];d=F[a+8>>2]-c>>2;b:{if(d>>>0>>0){qa(a+4|0,k-d|0);break b}if(d>>>0<=k>>>0){break b}F[a+8>>2]=c+(k<<2)}p=a+16|0;l=F[a+32>>2];while(1){g=F[b+12>>2];c=g;d=F[b+20>>2];h=F[b+8>>2];e=F[b+16>>2];if((c|0)<=(d|0)&h>>>0<=e>>>0|(c|0)<(d|0)){d=0;break a}m=F[b>>2];q=G[m+e|0];c=d;i=e+1|0;c=i?c:c+1|0;F[b+16>>2]=i;F[b+20>>2]=c;if(h>>>0<=i>>>0&(c|0)>=(g|0)|(c|0)>(g|0)){d=0;break a}i=G[i+m|0];c=d;j=e+2|0;c=j>>>0<2?c+1|0:c;F[b+16>>2]=j;F[b+20>>2]=c;if(h>>>0<=j>>>0&(c|0)>=(g|0)|(c|0)>(g|0)){d=0;break a}j=G[j+m|0];c=d;n=e+3|0;c=n>>>0<3?c+1|0:c;F[b+16>>2]=n;F[b+20>>2]=c;if(h>>>0<=n>>>0&(c|0)>=(g|0)|(c|0)>(g|0)){d=0;break a}h=G[m+n|0];c=d;d=e+4|0;c=d>>>0<4?c+1|0:c;F[b+16>>2]=d;F[b+20>>2]=c;if(q>>>0>4){d=0;break a}if((i-12&255)>>>0<245){d=0;break a}if(!j){d=0;break a}c=kb(f+8|0);g=(h|0)!=0;d=i-1|0;if(d>>>0<=10){d=F[(d<<2)+10148>>2]}else{d=-1}d=L(d,j);cc(c,q,j,i,g,d,d>>31);if(Wb(1,f+4|0,b)){e=F[f+4>>2];F[f+68>>2]=e;d=bc(ka(96),c);$[F[F[l>>2]+8>>2]](l,F[l+12>>2]-F[l+8>>2]>>2,d);d=(F[l+12>>2]-F[l+8>>2]>>2)-1|0;h=d<<2;F[F[h+F[l+8>>2]>>2]+60>>2]=e;F[F[a+4>>2]+(o<<2)>>2]=d;c=F[a+16>>2];e=F[a+20>>2]-c>>2;c:{if((e|0)>(d|0)){break c}F[f>>2]=-1;d=d+1|0;if(d>>>0>e>>>0){Fa(p,d-e|0,f);c=F[p>>2];break c}if(d>>>0>=e>>>0){break c}F[a+20>>2]=(d<<2)+c}F[c+h>>2]=o;d=1;o=o+1|0;if((o|0)!=(k|0)){continue}break a}break}d=0}Z=f+80|0;return d|0}function Oc(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;k=Z-16|0;Z=k;F[k+8>>2]=c;h=F[a+12>>2];d=F[a+8>>2];g=h-d>>2;a:{if((g|0)>(b|0)){break a}e=b+1|0;if(e>>>0>g>>>0){l=e-g|0;f=F[a+16>>2];d=F[a+12>>2];if(l>>>0<=f-d>>2>>>0){if(l){e=d;d=l<<2;d=ma(e,0,d)+d|0}F[a+12>>2]=d;break a}b:{c:{d:{m=F[a+8>>2];g=d-m>>2;i=g+l|0;if(i>>>0<1073741824){e=f-m|0;f=e>>>1|0;e=e>>>0>=2147483644?1073741823:f>>>0>i>>>0?f:i;if(e){if(e>>>0>=1073741824){break d}j=ka(e<<2)}h=(g<<2)+j|0;f=l<<2;i=ma(h,0,f);g=f+i|0;e=(e<<2)+j|0;if((d|0)==(m|0)){break c}while(1){d=d-4|0;f=F[d>>2];F[d>>2]=0;h=h-4|0;F[h>>2]=f;if((d|0)!=(m|0)){continue}break}F[a+16>>2]=e;e=F[a+12>>2];F[a+12>>2]=g;d=F[a+8>>2];F[a+8>>2]=h;if((d|0)==(e|0)){break b}while(1){e=e-4|0;f=F[e>>2];F[e>>2]=0;if(f){xa(f)}if((d|0)!=(e|0)){continue}break}break b}na();v()}oa();v()}F[a+16>>2]=e;F[a+12>>2]=g;F[a+8>>2]=i}if(d){ja(d)}break a}if(e>>>0>=g>>>0){break a}d=d+(e<<2)|0;if((d|0)!=(h|0)){while(1){h=h-4|0;c=F[h>>2];F[h>>2]=0;if(c){xa(c)}if((d|0)!=(h|0)){continue}break}c=F[k+8>>2]}F[a+12>>2]=d}e:{f:{d=F[c+56>>2];g:{if((d|0)>4){break g}j=L(d,12)+a|0;d=F[j+24>>2];if((d|0)!=F[j+28>>2]){F[d>>2]=b;F[j+24>>2]=d+4;break g}i=F[j+20>>2];g=d-i|0;f=g>>2;e=f+1|0;if(e>>>0>=1073741824){break f}d=g>>>1|0;e=g>>>0>=2147483644?1073741823:d>>>0>e>>>0?d:e;if(e){if(e>>>0>=1073741824){break e}d=ka(e<<2)}else{d=0}f=d+(f<<2)|0;F[f>>2]=b;d=pa(d,i,g);F[j+20>>2]=d;F[j+24>>2]=f+4;F[j+28>>2]=d+(e<<2);if(!i){break g}ja(i)}F[c+60>>2]=b;a=F[a+8>>2];F[k+8>>2]=0;a=a+(b<<2)|0;b=F[a>>2];F[a>>2]=c;if(b){xa(b)}a=F[k+8>>2];F[k+8>>2]=0;if(a){xa(a)}Z=k+16|0;return}na();v()}oa();v()}function Pf(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;i=c;d=a;a:{if(F[a+12>>2]==(b|0)){break a}a=b;b=F[d+4>>2];e=F[d>>2];if((b|0)!=(e|0)){while(1){c=b-12|0;if(D[b-1|0]<0){ja(F[c>>2])}b=c;if((e|0)!=(b|0)){continue}break}}F[d+12>>2]=a;F[d+4>>2]=e;c=F[a>>2];j=a+4|0;if((c|0)==(j|0)){break a}while(1){a=F[d+4>>2];b:{if((a|0)!=F[d+8>>2]){c:{if(D[c+27|0]>=0){b=F[c+20>>2];F[a>>2]=F[c+16>>2];F[a+4>>2]=b;F[a+8>>2]=F[c+24>>2];break c}ra(a,F[c+16>>2],F[c+20>>2])}F[d+4>>2]=a+12;break b}g=0;d:{e:{f:{a=F[d+4>>2];e=F[d>>2];f=(a-e|0)/12|0;b=f+1|0;if(b>>>0<357913942){h=(F[d+8>>2]-e|0)/12|0;k=h<<1;b=h>>>0>=178956970?357913941:b>>>0>>0?k:b;if(b){if(b>>>0>=357913942){break f}g=ka(L(b,12))}h=L(b,12);b=L(f,12)+g|0;g:{if(D[c+27|0]>=0){f=F[c+20>>2];F[b>>2]=F[c+16>>2];F[b+4>>2]=f;F[b+8>>2]=F[c+24>>2];break g}ra(b,F[c+16>>2],F[c+20>>2]);e=F[d>>2];a=F[d+4>>2]}g=g+h|0;f=b+12|0;if((a|0)==(e|0)){break e}while(1){a=a-12|0;h=F[a+4>>2];b=b-12|0;F[b>>2]=F[a>>2];F[b+4>>2]=h;F[b+8>>2]=F[a+8>>2];F[a>>2]=0;F[a+4>>2]=0;F[a+8>>2]=0;if((a|0)!=(e|0)){continue}break}F[d+8>>2]=g;a=F[d+4>>2];F[d+4>>2]=f;e=F[d>>2];F[d>>2]=b;if((a|0)==(e|0)){break d}while(1){b=a-12|0;if(D[a-1|0]<0){ja(F[b>>2])}a=b;if((e|0)!=(b|0)){continue}break}break d}na();v()}oa();v()}F[d+8>>2]=g;F[d+4>>2]=f;F[d>>2]=b}if(e){ja(e)}}b=F[c+4>>2];h:{if(b){while(1){a=b;b=F[b>>2];if(b){continue}break h}}while(1){a=F[c+8>>2];b=F[a>>2]!=(c|0);c=a;if(b){continue}break}}c=a;if((j|0)!=(a|0)){continue}break}}a=0;i:{if((i|0)<0){break i}b=F[d>>2];if((F[d+4>>2]-b|0)/12>>>0<=i>>>0){break i}a=b+L(i,12)|0;a=D[a+11|0]<0?F[a>>2]:a}return a|0}function Ad(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;i=Z-16|0;Z=i;F[i>>2]=b;f=-1;a:{if((b|0)==-1){F[i+4>>2]=-1;break a}f=b+1|0;F[i+4>>2]=(f>>>0)%3|0?f:b-2|0;if((b>>>0)%3|0){f=b-1|0;break a}f=b+2|0}F[i+8>>2]=f;n=(b>>>0)/3|0;b:{c:{d:{while(1){e:{f:{j=F[(l<<2)+i>>2];if((j|0)!=-1){f=F[F[F[a+8>>2]+12>>2]+(j<<2)>>2];if((f|0)!=-1){break f}}f=0;g=F[a+216>>2];if((g|0)==F[a+220>>2]){break e}while(1){g=L(f,144)+g|0;d=F[g+136>>2];c=F[g+140>>2];g:{if(d>>>0>>0){F[d>>2]=j;F[g+136>>2]=d+4;break g}e=d;d=F[g+132>>2];k=e-d|0;e=k>>2;h=e+1|0;if(h>>>0>=1073741824){break d}m=e<<2;c=c-d|0;e=c>>>1|0;h=c>>>0>=2147483644?1073741823:h>>>0>>0?e:h;if(h){if(h>>>0>=1073741824){break c}c=ka(h<<2)}else{c=0}e=m+c|0;F[e>>2]=j;c=pa(c,d,k);F[g+132>>2]=c;F[g+136>>2]=e+4;F[g+140>>2]=c+(h<<2);if(!d){break g}ja(d)}f=f+1|0;g=F[a+216>>2];if(f>>>0<(F[a+220>>2]-g|0)/144>>>0){continue}break}break e}if((b|0)==-1|(f>>>0)/3>>>0>>0){break e}f=0;if(F[a+220>>2]==F[a+216>>2]){break e}while(1){h:{if(!wa(F[a+368>>2]+(f<<4)|0)){break h}g=F[a+216>>2]+L(f,144)|0;d=F[g+136>>2];c=F[g+140>>2];if(d>>>0>>0){F[d>>2]=j;F[g+136>>2]=d+4;break h}e=d;d=F[g+132>>2];k=e-d|0;e=k>>2;h=e+1|0;if(h>>>0>=1073741824){break b}m=e<<2;c=c-d|0;e=c>>>1|0;h=c>>>0>=2147483644?1073741823:h>>>0>>0?e:h;if(h){if(h>>>0>=1073741824){break c}c=ka(h<<2)}else{c=0}e=m+c|0;F[e>>2]=j;c=pa(c,d,k);F[g+132>>2]=c;F[g+136>>2]=e+4;F[g+140>>2]=c+(h<<2);if(!d){break h}ja(d)}f=f+1|0;if(f>>>0<(F[a+220>>2]-F[a+216>>2]|0)/144>>>0){continue}break}}l=l+1|0;if((l|0)!=3){continue}break}Z=i+16|0;return 1}na();v()}oa();v()}na();v()}function Bd(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;h=Z-16|0;Z=h;m=-1;a:{b:{c:{if(!Da(1,h+12|0,b)){break c}j=F[h+12>>2];if(j){c=F[a+8>>2];if((F[c+4>>2]-F[c>>2]>>2>>>0)/3>>>0>>0){break c}while(1){if(!Da(1,h+8|0,b)){break c}c=F[h+8>>2];if(!Da(1,h+8|0,b)){break c}g=c+g|0;c=F[h+8>>2];if(g>>>0>>0){break c}e=g-c|0;c=F[a+40>>2];d:{if((c|0)!=F[a+44>>2]){F[c+4>>2]=g;F[c>>2]=e;F[a+40>>2]=c+12;j=F[h+12>>2];break d}d=c;c=F[a+36>>2];l=d-c|0;d=(l|0)/12|0;f=d+1|0;if(f>>>0>=357913942){break b}i=d<<1;f=d>>>0>=178956970?357913941:f>>>0>>0?i:f;if(f){if(f>>>0>=357913942){break a}i=ka(L(f,12))}else{i=0}d=i+L(d,12)|0;F[d+4>>2]=g;F[d>>2]=e;e=pa(d+L((l|0)/-12|0,12)|0,c,l);F[a+44>>2]=i+L(f,12);F[a+40>>2]=d+12;F[a+36>>2]=e;if(!c){break d}ja(c)}k=k+1|0;if(k>>>0>>0){continue}break}g=0;hc(b,0,0);if(j){while(1){c=G[b+36|0];d=H[F[a+4>>2]+36>>1];e:{f:{if(((d<<8|d>>>8)&65535)>>>0<=513){if(!c){break e}e=0;d=F[b+32>>2];k=d>>>3|0;f=F[b+24>>2];c=k+f|0;i=F[b+28>>2];g:{if(c>>>0>=i>>>0){c=d;break g}e=G[c|0];c=d+1|0;F[b+32>>2]=c;k=c>>>3|0;e=e>>>(d&7)&1}if(i>>>0>f+k>>>0){break f}break e}if(!c){break e}e=0;c=F[b+32>>2];d=F[b+24>>2]+(c>>>3|0)|0;if(d>>>0>=I[b+28>>2]){break e}e=G[d|0]>>>(c&7)&1}F[b+32>>2]=c+1}c=F[a+36>>2]+L(g,12)|0;D[c+8|0]=G[c+8|0]&254|e&1;g=g+1|0;if((j|0)!=(g|0)){continue}break}}D[b+36|0]=0;d=F[b+20>>2];a=0;e=F[b+32>>2]+7|0;a=e>>>0<7?1:a;e=a<<29|e>>>3;c=e+F[b+16>>2]|0;a=(a>>>3|0)+d|0;F[b+16>>2]=c;F[b+20>>2]=c>>>0>>0?a+1|0:a}m=F[b+16>>2]}Z=h+16|0;return m}na();v()}oa();v()}function xf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;m=Z-16|0;Z=m;l=F[b+80>>2];e=G[c+24|0];a=L(l,e);a:{b:{c:{d:{b=F[c+28>>2];if(!(!G[c+84|0]|(b|0)!=1&(b|0)!=2)){b=F[c+48>>2];c=F[F[c>>2]>>2];F[m+8>>2]=0;F[m>>2]=0;F[m+4>>2]=0;if(a){if((a|0)<0){break d}f=ka(a);h=la(f,b+c|0,a)+a|0}a=F[d>>2];if(a){F[d+4>>2]=a;ja(a)}F[d+8>>2]=h;F[d+4>>2]=h;F[d>>2]=f;b=1;break a}if(e){f=ka(e);ma(f,0,e)}e:{i=F[d+4>>2];b=F[d>>2];g=i-b|0;f:{if(g>>>0>>0){k=a-g|0;j=F[d+8>>2];if(k>>>0<=j-i>>>0){n=d,o=ma(i,0,k)+k|0,F[n+4>>2]=o;break f}if((a|0)<0){break e}i=j-b|0;j=i<<1;i=i>>>0>=1073741823?2147483647:a>>>0>>0?j:a;j=ka(i);ma(j+g|0,0,k);g=pa(j,b,g);F[d+8>>2]=g+i;F[d+4>>2]=a+g;F[d>>2]=g;if(!b){break f}ja(b);break f}if(a>>>0>=g>>>0){break f}F[d+4>>2]=a+b}if(!l){b=1;break c}if(!e){b=0;a=0;while(1){if(!Cb(c,G[c+84|0]?a:F[F[c+68>>2]+(a<<2)>>2],D[c+24|0],f)){break c}a=a+1|0;b=l>>>0<=a>>>0;if((a|0)!=(l|0)){continue}break}break c}i=e&252;g=e&3;b=0;j=e>>>0<4;e=0;while(1){if(!Cb(c,G[c+84|0]?e:F[F[c+68>>2]+(e<<2)>>2],D[c+24|0],f)){break c}b=0;a=0;k=0;if(!j){while(1){D[F[d>>2]+h|0]=G[a+f|0];D[(F[d>>2]+h|0)+1|0]=G[(a|1)+f|0];D[(F[d>>2]+h|0)+2|0]=G[(a|2)+f|0];D[(F[d>>2]+h|0)+3|0]=G[(a|3)+f|0];a=a+4|0;h=h+4|0;k=k+4|0;if((i|0)!=(k|0)){continue}break}}if(g){while(1){D[F[d>>2]+h|0]=G[a+f|0];a=a+1|0;h=h+1|0;b=b+1|0;if((g|0)!=(b|0)){continue}break}}e=e+1|0;b=l>>>0<=e>>>0;if((e|0)!=(l|0)){continue}break}break b}na();v()}na();v()}if(!f){break a}}ja(f)}Z=m+16|0;return b&1}function wf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;m=Z-16|0;Z=m;l=F[b+80>>2];e=G[c+24|0];a=L(l,e);a:{b:{c:{d:{b=F[c+28>>2];if(!(!G[c+84|0]|(b|0)!=1&(b|0)!=2)){b=F[c+48>>2];c=F[F[c>>2]>>2];F[m+8>>2]=0;F[m>>2]=0;F[m+4>>2]=0;if(a){if((a|0)<0){break d}f=ka(a);h=la(f,b+c|0,a)+a|0}a=F[d>>2];if(a){F[d+4>>2]=a;ja(a)}F[d+8>>2]=h;F[d+4>>2]=h;F[d>>2]=f;b=1;break a}if(e){f=ka(e);ma(f,0,e)}e:{i=F[d+4>>2];b=F[d>>2];g=i-b|0;f:{if(g>>>0>>0){k=a-g|0;j=F[d+8>>2];if(k>>>0<=j-i>>>0){n=d,o=ma(i,0,k)+k|0,F[n+4>>2]=o;break f}if((a|0)<0){break e}i=j-b|0;j=i<<1;i=i>>>0>=1073741823?2147483647:a>>>0>>0?j:a;j=ka(i);ma(j+g|0,0,k);g=pa(j,b,g);F[d+8>>2]=g+i;F[d+4>>2]=a+g;F[d>>2]=g;if(!b){break f}ja(b);break f}if(a>>>0>=g>>>0){break f}F[d+4>>2]=a+b}if(!l){b=1;break c}if(!e){b=0;a=0;while(1){if(!Bb(c,G[c+84|0]?a:F[F[c+68>>2]+(a<<2)>>2],D[c+24|0],f)){break c}a=a+1|0;b=l>>>0<=a>>>0;if((a|0)!=(l|0)){continue}break}break c}i=e&252;g=e&3;b=0;j=e>>>0<4;e=0;while(1){if(!Bb(c,G[c+84|0]?e:F[F[c+68>>2]+(e<<2)>>2],D[c+24|0],f)){break c}b=0;a=0;k=0;if(!j){while(1){D[F[d>>2]+h|0]=G[a+f|0];D[(F[d>>2]+h|0)+1|0]=G[(a|1)+f|0];D[(F[d>>2]+h|0)+2|0]=G[(a|2)+f|0];D[(F[d>>2]+h|0)+3|0]=G[(a|3)+f|0];a=a+4|0;h=h+4|0;k=k+4|0;if((i|0)!=(k|0)){continue}break}}if(g){while(1){D[F[d>>2]+h|0]=G[a+f|0];a=a+1|0;h=h+1|0;b=b+1|0;if((g|0)!=(b|0)){continue}break}}e=e+1|0;b=l>>>0<=e>>>0;if((e|0)!=(l|0)){continue}break}break b}na();v()}na();v()}if(!f){break a}}ja(f)}Z=m+16|0;return b&1}function Jb(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;k=F[b+16>>2];h=F[c+4>>2]-k|0;e=F[c>>2]-k|0;F[c>>2]=e;f=h;F[c+4>>2]=f;l=F[b+16>>2];f=f>>31;g=(h^f)-f|0;f=e>>31;m=l>>>0>=g+((f^e)-f|0)>>>0;a:{if(m){f=h;break a}b:{c:{if((e|0)>=0){g=1;j=1;if((h|0)>=0){break b}i=1;g=-1;j=-1;if(e){break c}break b}i=-1;g=-1;j=-1;if((h|0)<=0){break b}}g=(h|0)<=0?-1:1;j=i}n=L(j,l);f=(e<<1)-n|0;i=(L(g,j)|0)>=0;e=L(g,l);f=((i?0-f|0:f)+e|0)/2|0;F[c+4>>2]=f;e=(h<<1)-e|0;e=((i?0-e|0:e)+n|0)/2|0;F[c>>2]=e}d:{e:{f:{g:{h:{i:{j:{if(e){if((e|0)<0){break j}if((f|0)>=0){break i}break f}if(f){break h}j=1;g=0;f=0;i=0;break d}j=1;if((f|0)>0){break g}i=(f|0)>0?3:0;g=f;f=e;break d}g=0-f|0;f=0-e|0;i=2;break e}if((f|0)<=0){break f}}f=0-f|0;g=e;i=3;break e}g=0-e|0;i=1}F[c>>2]=f;F[c+4>>2]=g;j=0}e=F[d>>2]+f|0;h=F[b+16>>2];k:{if((e|0)>(h|0)){e=e-F[b+4>>2]|0;break k}if((0-h|0)<=(e|0)){break k}e=F[b+4>>2]+e|0}c=F[d+4>>2]+g|0;l:{if((h|0)<(c|0)){c=c-F[b+4>>2]|0;break l}if((0-h|0)<=(c|0)){break l}c=F[b+4>>2]+c|0}m:{if(j){b=c;break m}b=c;n:{o:{p:{d=4-i|0;switch((d>>>0<4?d:0-i|0)-1|0){case 2:break n;case 1:break o;case 0:break p;default:break m}}b=0-e|0;e=c;break m}b=0-c|0;e=0-e|0;break m}b=e;e=0-c|0}q:{if(m){c=b;break q}r:{s:{if((e|0)>=0){c=1;f=1;if((b|0)>=0){break r}d=1;c=-1;f=-1;if(e){break s}break r}d=-1;c=-1;f=-1;if((b|0)<=0){break r}}c=(b|0)<=0?-1:1;f=d}d=e<<1;e=L(f,h);d=d-e|0;f=(L(c,f)|0)>=0;g=f?0-d|0:d;d=L(c,h);c=(g+d|0)/2|0;b=(b<<1)-d|0;e=(e+(f?0-b|0:b)|0)/2|0}b=a;F[b>>2]=e+k;F[b+4>>2]=c+k}function Uh(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;F[a+8>>2]=e;m=a+32|0;h=F[m>>2];g=F[a+36>>2]-h>>2;a:{if(g>>>0>>0){qa(m,e-g|0);f=F[a+8>>2];break a}f=e;if(f>>>0>=g>>>0){break a}F[a+36>>2]=h+(e<<2);f=e}g=e>>>0>1073741823?-1:e<<2;n=ma(ka(g),0,g);b:{if((f|0)<=0){break b}h=F[a+32>>2];while(1){f=i<<2;g=F[f+n>>2];j=F[a+16>>2];c:{if((g|0)>(j|0)){F[f+h>>2]=j;break c}f=f+h|0;j=F[a+12>>2];if((j|0)>(g|0)){F[f>>2]=j;break c}F[f>>2]=g}f=F[a+8>>2];i=i+1|0;if((f|0)>(i|0)){continue}break}if((f|0)<=0){break b}i=0;while(1){g=i<<2;f=g+c|0;g=F[b+g>>2]+F[g+h>>2]|0;F[f>>2]=g;d:{if((g|0)>F[a+16>>2]){g=g-F[a+20>>2]|0}else{if((g|0)>=F[a+12>>2]){break d}g=g+F[a+20>>2]|0}F[f>>2]=g}f=F[a+8>>2];i=i+1|0;if((f|0)>(i|0)){continue}break}}if(!((d|0)<=(e|0)|(f|0)<=0)){p=0-e<<2;g=e;while(1){e:{if((f|0)<=0){break e}l=g<<2;o=l+c|0;q=o+p|0;j=F[m>>2];i=0;while(1){f=i<<2;h=F[f+q>>2];k=F[a+16>>2];f:{if((h|0)>(k|0)){F[f+j>>2]=k;break f}f=f+j|0;k=F[a+12>>2];if((k|0)>(h|0)){F[f>>2]=k;break f}F[f>>2]=h}f=F[a+8>>2];i=i+1|0;if((f|0)>(i|0)){continue}break}i=0;if((f|0)<=0){break e}l=b+l|0;while(1){h=i<<2;f=h+o|0;h=F[h+l>>2]+F[h+j>>2]|0;F[f>>2]=h;g:{if((h|0)>F[a+16>>2]){h=h-F[a+20>>2]|0}else{if((h|0)>=F[a+12>>2]){break g}h=h+F[a+20>>2]|0}F[f>>2]=h}f=F[a+8>>2];i=i+1|0;if((f|0)>(i|0)){continue}break}}g=e+g|0;if((g|0)<(d|0)){continue}break}}ja(n);return 1}function yf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;j=F[b+80>>2];b=G[c+24|0];g=L(j,b);a:{if(!b){break a}h=b<<2;f=ka(h);a=f;k=b&7;if(k){while(1){F[a>>2]=-1073741824;a=a+4|0;e=e+1|0;if((k|0)!=(e|0)){continue}break}}if((b-1&1073741823)>>>0<7){break a}e=f+h|0;while(1){F[a+24>>2]=-1073741824;F[a+28>>2]=-1073741824;F[a+16>>2]=-1073741824;F[a+20>>2]=-1073741824;F[a+8>>2]=-1073741824;F[a+12>>2]=-1073741824;F[a>>2]=-1073741824;F[a+4>>2]=-1073741824;a=a+32|0;if((e|0)!=(a|0)){continue}break}}e=F[d>>2];a=F[d+4>>2]-e>>2;b:{if(a>>>0>>0){qa(d,g-a|0);break b}if(a>>>0<=g>>>0){break b}F[d+4>>2]=e+(g<<2)}c:{d:{e:{if(!j){i=1;break e}if(!b){a=0;while(1){if(!lb(c,G[c+84|0]?a:F[F[c+68>>2]+(a<<2)>>2],D[c+24|0],f)){break e}a=a+1|0;i=j>>>0<=a>>>0;if((a|0)!=(j|0)){continue}break}break e}n=b&252;k=b&3;o=b>>>0<4;e=0;b=0;while(1){if(!lb(c,G[c+84|0]?b:F[F[c+68>>2]+(b<<2)>>2],D[c+24|0],f)){break e}m=F[d>>2];i=0;a=0;l=0;if(!o){while(1){g=(e<<2)+m|0;h=a<<2;J[g>>2]=J[h+f>>2];J[g+4>>2]=J[(h|4)+f>>2];J[g+8>>2]=J[(h|8)+f>>2];J[g+12>>2]=J[(h|12)+f>>2];a=a+4|0;e=e+4|0;l=l+4|0;if((n|0)!=(l|0)){continue}break}}if(k){while(1){J[(e<<2)+m>>2]=J[(a<<2)+f>>2];a=a+1|0;e=e+1|0;i=i+1|0;if((k|0)!=(i|0)){continue}break}}b=b+1|0;i=j>>>0<=b>>>0;if((b|0)!=(j|0)){continue}break}break d}if(!f){break c}}ja(f)}return i|0}function $d(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;k=Z-16|0;Z=k;c=F[b+20>>2];d=F[b+16>>2];e=d+4|0;c=e>>>0<4?c+1|0:c;g=F[b+12>>2];a:{if(I[b+8>>2]>>0&(g|0)<=(c|0)|(c|0)>(g|0)){break a}d=d+F[b>>2]|0;h=G[d|0]|G[d+1|0]<<8|(G[d+2|0]<<16|G[d+3|0]<<24);F[b+16>>2]=e;F[b+20>>2]=c;if((h|0)<0){break a}Na(a+76|0,h);c=k;F[c>>2]=0;F[c+4>>2]=0;D[c+5|0]=0;D[c+6|0]=0;D[c+7|0]=0;D[c+8|0]=0;D[c+9|0]=0;D[c+10|0]=0;D[c+11|0]=0;D[c+12|0]=0;b:{if(!Aa(c,b)){break b}if(h){g=1;while(1){d=1<>2]+(i>>>3&536870908)|0;e=e^g;if(e&1){d=F[f>>2]&(d^-1)}else{d=d|F[f>>2]}g=e^1;F[f>>2]=d;i=i+1|0;if((h|0)!=(i|0)){continue}break}}i=0;c=F[b+8>>2];e=F[b+12>>2];f=e;e=F[b+20>>2];g=e;l=F[b+16>>2];d=l+4|0;e=d>>>0<4?e+1|0:e;h=d;if(d>>>0>c>>>0&(e|0)>=(f|0)|(e|0)>(f|0)){break b}m=F[b>>2];d=m+l|0;j=G[d|0]|G[d+1|0]<<8|(G[d+2|0]<<16|G[d+3|0]<<24);F[b+16>>2]=h;F[b+20>>2]=e;d=c;c=g;e=l+8|0;c=e>>>0<8?c+1|0:c;if(d>>>0>>0&(c|0)>=(f|0)|(c|0)>(f|0)){break b}d=h+m|0;d=G[d|0]|G[d+1|0]<<8|(G[d+2|0]<<16|G[d+3|0]<<24);F[b+16>>2]=e;F[b+20>>2]=c;if((d|0)<(j|0)){break b}F[a+16>>2]=d;F[a+12>>2]=j;c=(d>>31)-((j>>31)+(d>>>0>>0)|0)|0;b=d-j|0;if(!c&b>>>0>2147483646|c){break b}i=1;c=b+1|0;F[a+20>>2]=c;b=c>>>1|0;F[a+24>>2]=b;F[a+28>>2]=0-b;if(c&1){break b}F[a+24>>2]=b-1}}Z=k+16|0;return i|0}function tf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;a=0;k=Z-16|0;Z=k;j=F[b+80>>2];e=G[c+24|0];b=L(j,e);a:{b:{c:{d:{f=F[c+28>>2];if(!(!G[c+84|0]|(f|0)!=5&(f|0)!=6)){e=F[c+48>>2];c=F[F[c>>2]>>2];F[k+8>>2]=0;F[k>>2]=0;F[k+4>>2]=0;if(b){if((b|0)<0){break d}b=b<<2;a=ka(b);g=la(a,c+e|0,b)+b|0}b=F[d>>2];if(b){F[d+4>>2]=b;ja(b)}F[d+8>>2]=g;F[d+4>>2]=g;F[d>>2]=a;h=1;break a}if(e){f=e<<2;a=ka(f);ma(a,0,f)}i=F[d>>2];f=F[d+4>>2]-i>>2;e:{if(f>>>0>>0){qa(d,b-f|0);break e}if(b>>>0>=f>>>0){break e}F[d+4>>2]=i+(b<<2)}if(!j){h=1;break c}if(!e){b=0;while(1){if(!xb(c,G[c+84|0]?b:F[F[c+68>>2]+(b<<2)>>2],D[c+24|0],a)){break c}b=b+1|0;h=j>>>0<=b>>>0;if((b|0)!=(j|0)){continue}break}break c}o=e&252;m=e&3;p=e>>>0<4;e=0;while(1){if(!xb(c,G[c+84|0]?e:F[F[c+68>>2]+(e<<2)>>2],D[c+24|0],a)){break c}n=F[d>>2];l=0;b=0;h=0;if(!p){while(1){f=(g<<2)+n|0;i=b<<2;F[f>>2]=F[i+a>>2];F[f+4>>2]=F[(i|4)+a>>2];F[f+8>>2]=F[(i|8)+a>>2];F[f+12>>2]=F[(i|12)+a>>2];b=b+4|0;g=g+4|0;h=h+4|0;if((o|0)!=(h|0)){continue}break}}if(m){while(1){F[(g<<2)+n>>2]=F[(b<<2)+a>>2];b=b+1|0;g=g+1|0;l=l+1|0;if((l|0)!=(m|0)){continue}break}}e=e+1|0;h=j>>>0<=e>>>0;if((e|0)!=(j|0)){continue}break}break b}na();v()}if(!a){break a}}ja(a)}Z=k+16|0;return h|0}function cd(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;a=0;k=Z-16|0;Z=k;j=F[b+80>>2];e=G[c+24|0];b=L(j,e);a:{b:{c:{d:{f=F[c+28>>2];if(!(!G[c+84|0]|(f|0)!=5&(f|0)!=6)){e=F[c+48>>2];c=F[F[c>>2]>>2];F[k+8>>2]=0;F[k>>2]=0;F[k+4>>2]=0;if(b){if((b|0)<0){break d}b=b<<2;a=ka(b);g=la(a,c+e|0,b)+b|0}b=F[d>>2];if(b){F[d+4>>2]=b;ja(b)}F[d+8>>2]=g;F[d+4>>2]=g;F[d>>2]=a;h=1;break a}if(e){f=e<<2;a=ka(f);ma(a,0,f)}i=F[d>>2];f=F[d+4>>2]-i>>2;e:{if(f>>>0>>0){qa(d,b-f|0);break e}if(b>>>0>=f>>>0){break e}F[d+4>>2]=i+(b<<2)}if(!j){h=1;break c}if(!e){b=0;while(1){if(!yb(c,G[c+84|0]?b:F[F[c+68>>2]+(b<<2)>>2],D[c+24|0],a)){break c}b=b+1|0;h=j>>>0<=b>>>0;if((b|0)!=(j|0)){continue}break}break c}o=e&252;m=e&3;p=e>>>0<4;e=0;while(1){if(!yb(c,G[c+84|0]?e:F[F[c+68>>2]+(e<<2)>>2],D[c+24|0],a)){break c}n=F[d>>2];l=0;b=0;h=0;if(!p){while(1){f=(g<<2)+n|0;i=b<<2;F[f>>2]=F[i+a>>2];F[f+4>>2]=F[(i|4)+a>>2];F[f+8>>2]=F[(i|8)+a>>2];F[f+12>>2]=F[(i|12)+a>>2];b=b+4|0;g=g+4|0;h=h+4|0;if((o|0)!=(h|0)){continue}break}}if(m){while(1){F[(g<<2)+n>>2]=F[(b<<2)+a>>2];b=b+1|0;g=g+1|0;l=l+1|0;if((l|0)!=(m|0)){continue}break}}e=e+1|0;h=j>>>0<=e>>>0;if((e|0)!=(j|0)){continue}break}break b}na();v()}if(!a){break a}}ja(a)}Z=k+16|0;return h|0}function vf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;a=0;k=Z-16|0;Z=k;j=F[b+80>>2];e=G[c+24|0];b=L(j,e);a:{b:{c:{d:{f=F[c+28>>2];if(!(!G[c+84|0]|(f|0)!=3&(f|0)!=4)){e=F[c+48>>2];c=F[F[c>>2]>>2];F[k+8>>2]=0;F[k>>2]=0;F[k+4>>2]=0;if(b){if((b|0)<0){break d}b=b<<1;a=ka(b);g=la(a,c+e|0,b)+b|0}b=F[d>>2];if(b){F[d+4>>2]=b;ja(b)}F[d+8>>2]=g;F[d+4>>2]=g;F[d>>2]=a;h=1;break a}if(e){f=e<<1;a=ka(f);ma(a,0,f)}i=F[d>>2];f=F[d+4>>2]-i>>1;e:{if(f>>>0>>0){kd(d,b-f|0);break e}if(b>>>0>=f>>>0){break e}F[d+4>>2]=i+(b<<1)}if(!j){h=1;break c}if(!e){b=0;while(1){if(!Ab(c,G[c+84|0]?b:F[F[c+68>>2]+(b<<2)>>2],D[c+24|0],a)){break c}b=b+1|0;h=j>>>0<=b>>>0;if((b|0)!=(j|0)){continue}break}break c}o=e&252;m=e&3;p=e>>>0<4;e=0;while(1){if(!Ab(c,G[c+84|0]?e:F[F[c+68>>2]+(e<<2)>>2],D[c+24|0],a)){break c}n=F[d>>2];l=0;b=0;h=0;if(!p){while(1){f=(g<<1)+n|0;i=b<<1;E[f>>1]=H[i+a>>1];E[f+2>>1]=H[(i|2)+a>>1];E[f+4>>1]=H[(i|4)+a>>1];E[f+6>>1]=H[(i|6)+a>>1];b=b+4|0;g=g+4|0;h=h+4|0;if((o|0)!=(h|0)){continue}break}}if(m){while(1){E[(g<<1)+n>>1]=H[(b<<1)+a>>1];b=b+1|0;g=g+1|0;l=l+1|0;if((l|0)!=(m|0)){continue}break}}e=e+1|0;h=j>>>0<=e>>>0;if((e|0)!=(j|0)){continue}break}break b}na();v()}if(!a){break a}}ja(a)}Z=k+16|0;return h|0}function uf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;a=0;k=Z-16|0;Z=k;j=F[b+80>>2];e=G[c+24|0];b=L(j,e);a:{b:{c:{d:{f=F[c+28>>2];if(!(!G[c+84|0]|(f|0)!=3&(f|0)!=4)){e=F[c+48>>2];c=F[F[c>>2]>>2];F[k+8>>2]=0;F[k>>2]=0;F[k+4>>2]=0;if(b){if((b|0)<0){break d}b=b<<1;a=ka(b);g=la(a,c+e|0,b)+b|0}b=F[d>>2];if(b){F[d+4>>2]=b;ja(b)}F[d+8>>2]=g;F[d+4>>2]=g;F[d>>2]=a;h=1;break a}if(e){f=e<<1;a=ka(f);ma(a,0,f)}i=F[d>>2];f=F[d+4>>2]-i>>1;e:{if(f>>>0>>0){kd(d,b-f|0);break e}if(b>>>0>=f>>>0){break e}F[d+4>>2]=i+(b<<1)}if(!j){h=1;break c}if(!e){b=0;while(1){if(!zb(c,G[c+84|0]?b:F[F[c+68>>2]+(b<<2)>>2],D[c+24|0],a)){break c}b=b+1|0;h=j>>>0<=b>>>0;if((b|0)!=(j|0)){continue}break}break c}o=e&252;m=e&3;p=e>>>0<4;e=0;while(1){if(!zb(c,G[c+84|0]?e:F[F[c+68>>2]+(e<<2)>>2],D[c+24|0],a)){break c}n=F[d>>2];l=0;b=0;h=0;if(!p){while(1){f=(g<<1)+n|0;i=b<<1;E[f>>1]=H[i+a>>1];E[f+2>>1]=H[(i|2)+a>>1];E[f+4>>1]=H[(i|4)+a>>1];E[f+6>>1]=H[(i|6)+a>>1];b=b+4|0;g=g+4|0;h=h+4|0;if((o|0)!=(h|0)){continue}break}}if(m){while(1){E[(g<<1)+n>>1]=H[(b<<1)+a>>1];b=b+1|0;g=g+1|0;l=l+1|0;if((l|0)!=(m|0)){continue}break}}e=e+1|0;h=j>>>0<=e>>>0;if((e|0)!=(j|0)){continue}break}break b}na();v()}if(!a){break a}}ja(a)}Z=k+16|0;return h|0}function kc(a,b){var c=0,d=0,e=0,f=0,g=0;f=-1;d=-1;a:{if((b|0)==-1){break a}d=b+1|0;f=(d>>>0)%3|0?d:b-2|0;d=b-1|0;if((b>>>0)%3|0){break a}d=b+2|0}b:{c:{d:{switch(F[a+168>>2]){case 0:case 1:e=F[a+148>>2];c=1;b=F[a+156>>2];g=b+(((f|0)==-1?-1:F[F[e>>2]+(f<<2)>>2])<<2)|0;F[g>>2]=F[g>>2]+1;b=(((d|0)==-1?-1:F[F[e>>2]+(d<<2)>>2])<<2)+b|0;break c;case 5:e=F[a+148>>2];c=-1;c=((b|0)!=-1?F[F[e>>2]+(b<<2)>>2]:c)<<2;b=F[a+156>>2];c=c+b|0;F[c>>2]=F[c>>2]+1;c=(((f|0)==-1?-1:F[F[e>>2]+(f<<2)>>2])<<2)+b|0;F[c>>2]=F[c>>2]+1;c=2;b=(((d|0)==-1?-1:F[F[e>>2]+(d<<2)>>2])<<2)+b|0;break c;case 3:e=F[a+148>>2];c=-1;c=((b|0)!=-1?F[F[e>>2]+(b<<2)>>2]:c)<<2;b=F[a+156>>2];c=c+b|0;F[c>>2]=F[c>>2]+1;c=(((f|0)==-1?-1:F[F[e>>2]+(f<<2)>>2])<<2)+b|0;F[c>>2]=F[c>>2]+2;c=1;b=(((d|0)==-1?-1:F[F[e>>2]+(d<<2)>>2])<<2)+b|0;break c;case 7:break d;default:break b}}e=F[a+148>>2];c=-1;c=((b|0)!=-1?F[F[e>>2]+(b<<2)>>2]:c)<<2;b=F[a+156>>2];c=c+b|0;F[c>>2]=F[c>>2]+2;c=(((f|0)==-1?-1:F[F[e>>2]+(f<<2)>>2])<<2)+b|0;F[c>>2]=F[c>>2]+2;c=2;b=(((d|0)==-1?-1:F[F[e>>2]+(d<<2)>>2])<<2)+b|0}F[b>>2]=F[b>>2]+c}c=a;b=F[F[a+156>>2]+(((f|0)==-1?-1:F[F[F[a+148>>2]>>2]+(f<<2)>>2])<<2)>>2];d=F[a+180>>2];a=F[a+176>>2];F[c+172>>2]=(a|0)<=(b|0)?((b|0)<(d|0)?b:d)-a|0:0}function Dg(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;a:{b=F[a+32>>2];f=F[b+8>>2];h=F[b+12>>2];g=F[b+20>>2];c=F[b+16>>2];e=0;b:{if((h|0)<=(g|0)&c>>>0>=f>>>0|(g|0)>(h|0)){break b}f=G[F[b>>2]+c|0];e=b;b=g;c=c+1|0;b=c?b:b+1|0;F[e+16>>2]=c;F[e+20>>2]=b;c:{if(!f){break c}while(1){if($[F[F[a>>2]+16>>2]](a,d)|0){d=d+1|0;if((f|0)!=(d|0)){continue}break c}break}return 0}d=F[a+8>>2];b=F[a+12>>2];if((d|0)!=(b|0)){while(1){c=F[d>>2];if(!($[F[F[c>>2]+8>>2]](c,a,F[a+4>>2])|0)){break a}d=d+4|0;if((b|0)!=(d|0)){continue}break}}d:{if(!f){break d}d=0;while(1){b=F[F[a+8>>2]+(d<<2)>>2];if(!($[F[F[b>>2]+12>>2]](b,F[a+32>>2])|0)){break a}d=d+1|0;if((f|0)!=(d|0)){continue}break}if(!f){break d}i=a+20|0;b=0;while(1){d=0;j=b<<2;c=F[j+F[a+8>>2]>>2];k=$[F[F[c>>2]+24>>2]](c)|0;if((k|0)>0){while(1){c=F[F[a+8>>2]+j>>2];c=$[F[F[c>>2]+20>>2]](c,d)|0;e=F[a+20>>2];g=F[a+24>>2]-e>>2;e:{if(c>>>0>>0){break e}h=c+1|0;if(h>>>0>g>>>0){qa(i,h-g|0);e=F[i>>2];break e}if(g>>>0<=h>>>0){break e}F[a+24>>2]=(h<<2)+e}F[(c<<2)+e>>2]=b;d=d+1|0;if((k|0)!=(d|0)){continue}break}}b=b+1|0;if((f|0)!=(b|0)){continue}break}}e=0;if(!($[F[F[a>>2]+28>>2]](a)|0)){break b}e=$[F[F[a>>2]+32>>2]](a)|0}return e|0}return 0}function Ye(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;Oc(a,b,c);c=F[a+84>>2];d=F[a+88>>2]-c>>2;a:{if((d|0)>(b|0)){break a}b=b+1|0;if(b>>>0>d>>>0){b:{d=b-d|0;e=F[a+92>>2];c=F[a+88>>2];if(d>>>0<=e-c>>2>>>0){c:{if(!d){break c}b=c;e=d&7;if(e){while(1){F[b>>2]=1;b=b+4|0;f=f+1|0;if((e|0)!=(f|0)){continue}break}}c=(d<<2)+c|0;if((d-1&1073741823)>>>0<7){break c}while(1){F[b+24>>2]=1;F[b+28>>2]=1;F[b+16>>2]=1;F[b+20>>2]=1;F[b+8>>2]=1;F[b+12>>2]=1;F[b>>2]=1;F[b+4>>2]=1;b=b+32|0;if((c|0)!=(b|0)){continue}break}}F[a+88>>2]=c;break b}d:{b=c;c=F[a+84>>2];i=b-c|0;g=i>>2;b=g+d|0;if(b>>>0<1073741824){e=e-c|0;h=e>>>1|0;e=e>>>0>=2147483644?1073741823:b>>>0>>0?h:b;if(e){if(e>>>0>=1073741824){break d}j=ka(e<<2)}g=(g<<2)+j|0;b=g;h=d&7;if(h){while(1){F[b>>2]=1;b=b+4|0;f=f+1|0;if((h|0)!=(f|0)){continue}break}}f=g+(d<<2)|0;if((d-1&1073741823)>>>0>=7){while(1){F[b+24>>2]=1;F[b+28>>2]=1;F[b+16>>2]=1;F[b+20>>2]=1;F[b+8>>2]=1;F[b+12>>2]=1;F[b>>2]=1;F[b+4>>2]=1;b=b+32|0;if((f|0)!=(b|0)){continue}break}}b=pa(j,c,i);F[a+88>>2]=f;F[a+84>>2]=b;F[a+92>>2]=b+(e<<2);if(c){ja(c)}break b}na();v()}oa();v()}return}if(b>>>0>=d>>>0){break a}F[a+88>>2]=c+(b<<2)}}function ab(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;d=F[a+8>>2];e=F[a+4>>2];if(d-e>>2>>>0>=b>>>0){a:{if(!b){break a}d=e;g=b&7;if(g){while(1){F[d>>2]=F[c>>2];d=d+4|0;f=f+1|0;if((g|0)!=(f|0)){continue}break}}e=(b<<2)+e|0;if((b-1&1073741823)>>>0<7){break a}while(1){F[d>>2]=F[c>>2];F[d+4>>2]=F[c>>2];F[d+8>>2]=F[c>>2];F[d+12>>2]=F[c>>2];F[d+16>>2]=F[c>>2];F[d+20>>2]=F[c>>2];F[d+24>>2]=F[c>>2];F[d+28>>2]=F[c>>2];d=d+32|0;if((e|0)!=(d|0)){continue}break}}F[a+4>>2]=e;return}b:{i=F[a>>2];f=e-i>>2;h=f+b|0;if(h>>>0<1073741824){j=d-i|0;d=j>>>1|0;h=j>>>0>=2147483644?1073741823:d>>>0>h>>>0?d:h;if(h){if(h>>>0>=1073741824){break b}k=ka(h<<2)}f=(f<<2)+k|0;d=f;j=b&7;if(j){while(1){F[d>>2]=F[c>>2];d=d+4|0;g=g+1|0;if((j|0)!=(g|0)){continue}break}}g=(b<<2)+f|0;if((b-1&1073741823)>>>0>=7){while(1){F[d>>2]=F[c>>2];F[d+4>>2]=F[c>>2];F[d+8>>2]=F[c>>2];F[d+12>>2]=F[c>>2];F[d+16>>2]=F[c>>2];F[d+20>>2]=F[c>>2];F[d+24>>2]=F[c>>2];F[d+28>>2]=F[c>>2];d=d+32|0;if((g|0)!=(d|0)){continue}break}}if((e|0)!=(i|0)){while(1){f=f-4|0;e=e-4|0;F[f>>2]=F[e>>2];if((e|0)!=(i|0)){continue}break}}F[a+8>>2]=(h<<2)+k;F[a+4>>2]=g;F[a>>2]=f;if(i){ja(i)}return}na();v()}oa();v()}function Xb(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;d=F[a+8>>2];e=F[a>>2];if(d-e>>2>>>0>=b>>>0){f=F[a+4>>2];h=f-e>>2;i=b>>>0>h>>>0?h:b;a:{if(!i){break a}d=e;g=i;j=g&7;if(j){while(1){F[d>>2]=F[c>>2];g=g-1|0;d=d+4|0;k=k+1|0;if((k|0)!=(j|0)){continue}break}}if(i>>>0<8){break a}while(1){F[d>>2]=F[c>>2];F[d+4>>2]=F[c>>2];F[d+8>>2]=F[c>>2];F[d+12>>2]=F[c>>2];F[d+16>>2]=F[c>>2];F[d+20>>2]=F[c>>2];F[d+24>>2]=F[c>>2];F[d+28>>2]=F[c>>2];d=d+32|0;g=g-8|0;if(g){continue}break}}if(b>>>0>h>>>0){b=(b-h<<2)+f|0;while(1){F[f>>2]=F[c>>2];f=f+4|0;if((b|0)!=(f|0)){continue}break}F[a+4>>2]=b;return}F[a+4>>2]=e+(b<<2);return}if(e){F[a+4>>2]=e;ja(e);F[a+8>>2]=0;F[a>>2]=0;F[a+4>>2]=0;d=0}b:{if(b>>>0>=1073741824){break b}e=d>>>1|0;d=d>>>0>=2147483644?1073741823:b>>>0>>0?e:b;if(d>>>0>=1073741824){break b}d=d<<2;e=ka(d);F[a>>2]=e;F[a+8>>2]=d+e;c=F[c>>2];d=e;g=b&7;if(g){while(1){F[d>>2]=c;d=d+4|0;f=f+1|0;if((g|0)!=(f|0)){continue}break}}e=e+(b<<2)|0;if((b-1&1073741823)>>>0>=7){while(1){F[d+28>>2]=c;F[d+24>>2]=c;F[d+20>>2]=c;F[d+16>>2]=c;F[d+12>>2]=c;F[d+8>>2]=c;F[d+4>>2]=c;F[d>>2]=c;d=d+32|0;if((e|0)!=(d|0)){continue}break}}F[a+4>>2]=e;return}na();v()}function Ka(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;f=(c>>>0)/3|0;j=F[(F[F[a+8>>2]+96>>2]+L(f,12)|0)+(c-L(f,3)<<2)>>2];a:{h=F[F[a+12>>2]+4>>2];e=F[h+4>>2];if((e|0)!=F[h+8>>2]){F[e>>2]=j;F[h+4>>2]=e+4;break a}b:{i=F[h>>2];f=e-i|0;g=f>>2;d=g+1|0;if(d>>>0<1073741824){k=g<<2;g=f>>>1|0;g=f>>>0>=2147483644?1073741823:d>>>0>>0?g:d;if(g){if(g>>>0>=1073741824){break b}f=ka(g<<2)}else{f=0}d=k+f|0;F[d>>2]=j;j=d+4|0;if((e|0)!=(i|0)){while(1){d=d-4|0;e=e-4|0;F[d>>2]=F[e>>2];if((e|0)!=(i|0)){continue}break}}F[h+8>>2]=f+(g<<2);F[h+4>>2]=j;F[h>>2]=d;if(i){ja(i)}break a}na();v()}oa();v()}c:{d:{h=F[a+4>>2];e=F[h+4>>2];e:{if((e|0)!=F[h+8>>2]){F[e>>2]=c;F[h+4>>2]=e+4;break e}i=F[h>>2];f=e-i|0;j=f>>2;d=j+1|0;if(d>>>0>=1073741824){break d}g=f>>>1|0;g=f>>>0>=2147483644?1073741823:d>>>0>>0?g:d;if(g){if(g>>>0>=1073741824){break c}f=ka(g<<2)}else{f=0}d=f+(j<<2)|0;F[d>>2]=c;c=d+4|0;if((e|0)!=(i|0)){while(1){d=d-4|0;e=e-4|0;F[d>>2]=F[e>>2];if((e|0)!=(i|0)){continue}break}}F[h+8>>2]=f+(g<<2);F[h+4>>2]=c;F[h>>2]=d;if(!i){break e}ja(i)}a=F[a+4>>2];F[F[a+12>>2]+(b<<2)>>2]=F[a+24>>2];F[a+24>>2]=F[a+24>>2]+1;return}na();v()}oa();v()}function pb(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0;h=d-c|0;if((h|0)<=0){return}a:{e=F[a+8>>2];i=F[a+4>>2];if((e-i|0)>=(h|0)){j=i-b|0;if((j|0)>=(h|0)){f=i;g=d;break a}f=i;g=c+j|0;if((g|0)!=(d|0)){e=g;while(1){D[f|0]=G[e|0];f=f+1|0;e=e+1|0;if((e|0)!=(d|0)){continue}break}}F[a+4>>2]=f;if((j|0)>0){break a}return}k=F[a>>2];g=(i-k|0)+h|0;if((g|0)>=0){j=b-k|0;f=e-k|0;e=f<<1;f=f>>>0>=1073741823?2147483647:e>>>0>g>>>0?e:g;if(f){e=ka(f)}else{e=0}g=j+e|0;if((c|0)!=(d|0)){g=la(g,c,h)+h|0}d=pa(e,k,j);c=i-b|0;b=pa(g,b,c);F[a+8>>2]=e+f;F[a+4>>2]=b+c;F[a>>2]=d;if(k){ja(k)}return}na();v()}e=f;d=e-h|0;if(i>>>0>d>>>0){while(1){D[e|0]=G[d|0];e=e+1|0;d=d+1|0;if(i>>>0>d>>>0){continue}break}}F[a+4>>2]=e;a=b+h|0;if((a|0)!=(f|0)){a=f-a|0;pa(f-a|0,b,a)}if((c|0)==(g|0)){return}f=(c^-1)+g|0;a=g-c&7;b:{if(!a){e=b;break b}d=0;e=b;while(1){D[e|0]=G[c|0];e=e+1|0;c=c+1|0;d=d+1|0;if((a|0)!=(d|0)){continue}break}}if(f>>>0<7){return}while(1){D[e|0]=G[c|0];D[e+1|0]=G[c+1|0];D[e+2|0]=G[c+2|0];D[e+3|0]=G[c+3|0];D[e+4|0]=G[c+4|0];D[e+5|0]=G[c+5|0];D[e+6|0]=G[c+6|0];D[e+7|0]=G[c+7|0];e=e+8|0;c=c+8|0;if((g|0)!=(c|0)){continue}break}}function la(a,b,c){var d=0,e=0,f=0;if(c>>>0>=512){Y(a|0,b|0,c|0);return a}e=a+c|0;a:{if(!((a^b)&3)){b:{if(!(a&3)){c=a;break b}if(!c){c=a;break b}c=a;while(1){D[c|0]=G[b|0];b=b+1|0;c=c+1|0;if(!(c&3)){break b}if(c>>>0>>0){continue}break}}d=e&-4;c:{if(d>>>0<64){break c}f=d+-64|0;if(f>>>0>>0){break c}while(1){F[c>>2]=F[b>>2];F[c+4>>2]=F[b+4>>2];F[c+8>>2]=F[b+8>>2];F[c+12>>2]=F[b+12>>2];F[c+16>>2]=F[b+16>>2];F[c+20>>2]=F[b+20>>2];F[c+24>>2]=F[b+24>>2];F[c+28>>2]=F[b+28>>2];F[c+32>>2]=F[b+32>>2];F[c+36>>2]=F[b+36>>2];F[c+40>>2]=F[b+40>>2];F[c+44>>2]=F[b+44>>2];F[c+48>>2]=F[b+48>>2];F[c+52>>2]=F[b+52>>2];F[c+56>>2]=F[b+56>>2];F[c+60>>2]=F[b+60>>2];b=b- -64|0;c=c- -64|0;if(f>>>0>=c>>>0){continue}break}}if(c>>>0>=d>>>0){break a}while(1){F[c>>2]=F[b>>2];b=b+4|0;c=c+4|0;if(d>>>0>c>>>0){continue}break}break a}if(e>>>0<4){c=a;break a}d=e-4|0;if(d>>>0>>0){c=a;break a}c=a;while(1){D[c|0]=G[b|0];D[c+1|0]=G[b+1|0];D[c+2|0]=G[b+2|0];D[c+3|0]=G[b+3|0];b=b+4|0;c=c+4|0;if(d>>>0>=c>>>0){continue}break}}if(c>>>0>>0){while(1){D[c|0]=G[b|0];b=b+1|0;c=c+1|0;if((e|0)!=(c|0)){continue}break}}return a}function sd(a){a=a|0;var b=0,c=0,d=0,e=0,f=0;F[a>>2]=8336;d=a+232|0;b=F[d+196>>2];if(b){F[d+200>>2]=b;ja(b)}c=F[d+184>>2];if(c){b=c;e=F[d+188>>2];if((b|0)!=(e|0)){while(1){b=e-12|0;f=F[b>>2];if(f){F[e-8>>2]=f;ja(f)}e=b;if((b|0)!=(c|0)){continue}break}b=F[d+184>>2]}F[d+188>>2]=c;ja(b)}b=F[d+156>>2];if(b){F[d+160>>2]=b;ja(b)}c=F[d+136>>2];F[d+136>>2]=0;if(c){e=c-4|0;b=F[e>>2];if(b){b=c+(b<<4)|0;while(1){b=b-16|0;if((c|0)!=(b|0)){continue}break}}ja(e)}td(a+216|0);b=F[a+196>>2];if(b){F[a+200>>2]=b;ja(b)}b=F[a+184>>2];if(b){F[a+188>>2]=b;ja(b)}b=F[a+172>>2];if(b){F[a+176>>2]=b;ja(b)}b=F[a+160>>2];if(b){F[a+164>>2]=b;ja(b)}b=F[a+144>>2];if(b){while(1){c=F[b>>2];ja(b);b=c;if(b){continue}break}}b=F[a+136>>2];F[a+136>>2]=0;if(b){ja(b)}b=F[a+120>>2];if(b){ja(b)}b=F[a+108>>2];if(b){ja(b)}b=F[a+96>>2];if(b){ja(b)}b=F[a+72>>2];if(b){F[a+76>>2]=b;ja(b)}b=F[a+60>>2];if(b){ja(b)}b=F[a+48>>2];if(b){F[a+52>>2]=b;ja(b)}b=F[a+36>>2];if(b){F[a+40>>2]=b;ja(b)}b=F[a+24>>2];if(b){F[a+28>>2]=b;ja(b)}b=F[a+12>>2];if(b){F[a+16>>2]=b;ja(b)}b=F[a+8>>2];F[a+8>>2]=0;if(b){Za(b)}return a|0}function Fa(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;d=F[a+8>>2];e=F[a+4>>2];if(d-e>>2>>>0>=b>>>0){a:{if(!b){break a}d=e;f=b&7;if(f){while(1){F[d>>2]=F[c>>2];d=d+4|0;h=h+1|0;if((f|0)!=(h|0)){continue}break}}e=(b<<2)+e|0;if((b-1&1073741823)>>>0<7){break a}while(1){F[d>>2]=F[c>>2];F[d+4>>2]=F[c>>2];F[d+8>>2]=F[c>>2];F[d+12>>2]=F[c>>2];F[d+16>>2]=F[c>>2];F[d+20>>2]=F[c>>2];F[d+24>>2]=F[c>>2];F[d+28>>2]=F[c>>2];d=d+32|0;if((e|0)!=(d|0)){continue}break}}F[a+4>>2]=e;return}b:{i=F[a>>2];j=e-i|0;f=j>>2;g=f+b|0;if(g>>>0<1073741824){d=d-i|0;e=d>>>1|0;g=d>>>0>=2147483644?1073741823:e>>>0>g>>>0?e:g;if(g){if(g>>>0>=1073741824){break b}k=ka(g<<2)}f=(f<<2)+k|0;d=f;e=b&7;if(e){while(1){F[d>>2]=F[c>>2];d=d+4|0;h=h+1|0;if((e|0)!=(h|0)){continue}break}}e=f+(b<<2)|0;if((b-1&1073741823)>>>0>=7){while(1){F[d>>2]=F[c>>2];F[d+4>>2]=F[c>>2];F[d+8>>2]=F[c>>2];F[d+12>>2]=F[c>>2];F[d+16>>2]=F[c>>2];F[d+20>>2]=F[c>>2];F[d+24>>2]=F[c>>2];F[d+28>>2]=F[c>>2];d=d+32|0;if((e|0)!=(d|0)){continue}break}}b=pa(k,i,j);F[a+4>>2]=e;F[a>>2]=b;F[a+8>>2]=b+(g<<2);if(i){ja(i)}return}na();v()}oa();v()}function Sb(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;if(G[a+11|0]>>>7|0){d=F[a+4>>2]}else{d=G[a+11|0]&127}if(d>>>0>>0){h=Z-16|0;Z=h;b=b-d|0;if(b){g=G[a+11|0]>>>7|0?(F[a+8>>2]&2147483647)-1|0:10;if(G[a+11|0]>>>7|0){d=F[a+4>>2]}else{d=G[a+11|0]&127}i=d+b|0;if(g-d>>>0>>0){a:{e=Z-16|0;Z=e;c=i-g|0;if(c>>>0<=2147483631-g>>>0){if(G[a+11|0]>>>7|0){f=F[a>>2]}else{f=a}if(g>>>0<1073741799){F[e+12>>2]=g<<1;F[e>>2]=c+g;c=Z-16|0;Z=c;Z=c+16|0;c=e+12|0;c=F[(I[e>>2]>2]?c:e)>>2];if(c>>>0>=11){j=c+16&-16;c=j-1|0;c=(c|0)==11?j:c}else{c=10}c=c+1|0}else{c=2147483631}sb(e,c);c=F[e>>2];if(d){db(c,f,d)}if((g|0)!=10){ja(f)}F[a>>2]=c;F[a+8>>2]=F[a+8>>2]&-2147483648|F[e+4>>2]&2147483647;F[a+8>>2]=F[a+8>>2]|-2147483648;Z=e+16|0;break a}za();v()}}f=d;if(G[a+11|0]>>>7|0){d=F[a>>2]}else{d=a}f=f+d|0;e=Z-16|0;Z=e;D[e+15|0]=0;while(1){if(b){D[f|0]=G[e+15|0];b=b-1|0;f=f+1|0;continue}break}Z=e+16|0;Ic(a,i);D[h+15|0]=0;D[d+i|0]=G[h+15|0]}Z=h+16|0;return}if(G[a+11|0]>>>7|0){d=F[a>>2]}else{d=a}f=Z-16|0;Z=f;Ic(a,b);D[f+15|0]=0;D[b+d|0]=G[f+15|0];Z=f+16|0}function Zc(a,b){var c=0,d=0,e=0,f=0,g=0,h=0;g=Z-16|0;Z=g;a:{b:{if(b){F[a+88>>2]=0;F[a+92>>2]=0;d=F[a+84>>2];F[a+84>>2]=0;if(d){ja(d)}F[a+76>>2]=0;F[a+80>>2]=0;d=F[a+72>>2];F[a+72>>2]=0;if(d){ja(d)}d=F[b>>2];c=F[b+4>>2];D[g+15|0]=0;Ea(a,c-d>>2,g+15|0);d=F[b+28>>2];c=F[b+24>>2];D[g+14|0]=0;Ea(a+12|0,d-c>>2,g+14|0);Xb(a+28|0,F[b+4>>2]-F[b>>2]>>2,10284);c=F[b+28>>2]-F[b+24>>2]|0;f=c>>2;e=F[a+52>>2];c:{if(f>>>0<=F[a+60>>2]-e>>2>>>0){break c}if((c|0)<0){break b}d=F[a+56>>2];c=ka(c);f=c+(f<<2)|0;h=c+(d-e&-4)|0;c=h;if((d|0)!=(e|0)){while(1){c=c-4|0;d=d-4|0;F[c>>2]=F[d>>2];if((d|0)!=(e|0)){continue}break}}F[a+60>>2]=f;F[a+56>>2]=h;F[a+52>>2]=c;if(!e){break c}ja(e)}c=F[b+28>>2]-F[b+24>>2]|0;f=c>>2;e=F[a+40>>2];d:{if(f>>>0<=F[a+48>>2]-e>>2>>>0){break d}if((c|0)<0){break a}d=F[a+44>>2];c=ka(c);f=c+(f<<2)|0;h=c+(d-e&-4)|0;c=h;if((d|0)!=(e|0)){while(1){c=c-4|0;d=d-4|0;F[c>>2]=F[d>>2];if((d|0)!=(e|0)){continue}break}}F[a+48>>2]=f;F[a+44>>2]=h;F[a+40>>2]=c;if(!e){break d}ja(e)}D[a+24|0]=1;F[a+64>>2]=b}Z=g+16|0;return}na();v()}na();v()}function nb(a,b){var c=0,d=0,e=0;c=(a|0)==(b|0);D[b+12|0]=c;a:{if(c){break a}while(1){d=F[b+8>>2];if(G[d+12|0]){break a}b:{c=F[d+8>>2];e=F[c>>2];if((e|0)==(d|0)){e=F[c+4>>2];if(!(!e|G[e+12|0])){break b}c:{if(F[d>>2]==(b|0)){b=d;break c}b=F[d+4>>2];a=F[b>>2];F[d+4>>2]=a;if(a){F[a+8>>2]=d;c=F[d+8>>2]}F[b+8>>2]=c;a=F[d+8>>2];F[((F[a>>2]!=(d|0))<<2)+a>>2]=b;F[b>>2]=d;F[d+8>>2]=b;c=F[b+8>>2];d=F[c>>2]}D[b+12|0]=1;D[c+12|0]=0;a=F[d+4>>2];F[c>>2]=a;if(a){F[a+8>>2]=c}F[d+8>>2]=F[c+8>>2];a=F[c+8>>2];F[((F[a>>2]!=(c|0))<<2)+a>>2]=d;F[d+4>>2]=c;F[c+8>>2]=d;return}if(!(G[e+12|0]|!e)){break b}d:{if(F[d>>2]!=(b|0)){b=d;break d}a=F[b+4>>2];F[d>>2]=a;if(a){F[a+8>>2]=d;c=F[d+8>>2]}F[b+8>>2]=c;a=F[d+8>>2];F[((F[a>>2]!=(d|0))<<2)+a>>2]=b;F[b+4>>2]=d;F[d+8>>2]=b;c=F[b+8>>2]}D[b+12|0]=1;D[c+12|0]=0;a=F[c+4>>2];b=F[a>>2];F[c+4>>2]=b;if(b){F[b+8>>2]=c}F[a+8>>2]=F[c+8>>2];b=F[c+8>>2];F[((F[b>>2]!=(c|0))<<2)+b>>2]=a;F[a>>2]=c;F[c+8>>2]=a;break a}D[d+12|0]=1;D[c+12|0]=(a|0)==(c|0);D[e+12|0]=1;b=c;if((c|0)!=(a|0)){continue}break}}}function mi(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;a:{b:{c:{d:{e:{f:{g:{h:{i:{j:{k:{if(b){if(!c){break k}if(!d){break j}e=O(d)-O(b)|0;if(e>>>0<=31){break i}break c}if((d|0)==1|d>>>0>1){break c}_=0;a=(a>>>0)/(c>>>0)|0;break a}if(!a){break h}if(!d|d-1&d){break g}a=b>>>ji(d)|0;_=0;break a}if(!(c-1&c)){break f}h=(O(c)+33|0)-O(b)|0;g=0-h|0;break d}h=e+1|0;g=63-e|0;break d}_=0;a=(b>>>0)/(d>>>0)|0;break a}e=O(d)-O(b)|0;if(e>>>0<31){break e}break c}if((c|0)==1){break b}d=ji(c);c=d&31;if((d&63)>>>0>=32){a=b>>>c|0}else{e=b>>>c|0;a=((1<>>c}_=e;break a}h=e+1|0;g=63-e|0}e=h&63;f=e&31;if(e>>>0>=32){e=0;i=b>>>f|0}else{e=b>>>f|0;i=((1<>>f}g=g&63;f=g&31;if(g>>>0>=32){b=a<>>32-f|b<>>31;e=i<<1|b>>>31;f=m-(j+(e>>>0>g>>>0)|0)>>31;k=c&f;i=e-k|0;e=j-((d&f)+(e>>>0>>0)|0)|0;b=b<<1|a>>>31;a=l|a<<1;l=f&1;h=h-1|0;if(h){continue}break}}_=b<<1|a>>>31;a=l|a<<1;break a}a=0;b=0}_=b}return a}function yh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;c=F[b+88>>2];if(!(!c|F[c>>2]!=1)){e=F[c+8>>2];F[a+4>>2]=G[e|0]|G[e+1|0]<<8|(G[e+2|0]<<16|G[e+3|0]<<24);f=a+8|0;d=G[b+24|0];h=F[a+8>>2];g=F[a+12>>2]-h>>2;a:{if(d>>>0>g>>>0){qa(f,d-g|0);d=G[b+24|0];e=F[c+8>>2];break a}if(d>>>0>=g>>>0){break a}F[a+12>>2]=h+(d<<2)}b:{if(!d){b=4;break b}h=d&3;f=F[f>>2];c:{if(d-1>>>0<3){b=4;d=0;break c}k=d&252;d=0;b=4;while(1){g=d<<2;c=b+e|0;F[g+f>>2]=G[c|0]|G[c+1|0]<<8|(G[c+2|0]<<16|G[c+3|0]<<24);F[f+(g|4)>>2]=G[c+4|0]|G[c+5|0]<<8|(G[c+6|0]<<16|G[c+7|0]<<24);F[f+(g|8)>>2]=G[c+8|0]|G[c+9|0]<<8|(G[c+10|0]<<16|G[c+11|0]<<24);F[f+(g|12)>>2]=G[c+12|0]|G[c+13|0]<<8|(G[c+14|0]<<16|G[c+15|0]<<24);d=d+4|0;b=b+16|0;i=i+4|0;if((k|0)!=(i|0)){continue}break}}if(!h){break b}while(1){c=b+e|0;F[f+(d<<2)>>2]=G[c|0]|G[c+1|0]<<8|(G[c+2|0]<<16|G[c+3|0]<<24);d=d+1|0;b=b+4|0;j=j+1|0;if((h|0)!=(j|0)){continue}break}}d=a;a=b+e|0;F[d+20>>2]=G[a|0]|G[a+1|0]<<8|(G[a+2|0]<<16|G[a+3|0]<<24);d=1}return d|0}function Yg(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0;g=Z-16|0;Z=g;e=F[a+4>>2];d=F[e>>2];a:{b=F[a+12>>2];c=F[b+28>>2]-F[b+24>>2]|0;f=c>>2;b:{if(f>>>0<=F[e+8>>2]-d>>2>>>0){break b}if((c|0)<0){break a}b=F[e+4>>2];c=ka(c);f=c+(f<<2)|0;h=c+(b-d&-4)|0;c=h;if((b|0)!=(d|0)){while(1){c=c-4|0;b=b-4|0;F[c>>2]=F[b>>2];if((b|0)!=(d|0)){continue}break}}F[e+8>>2]=f;F[e+4>>2]=h;F[e>>2]=c;if(!d){break b}ja(d)}b=F[a+12>>2];c=F[b+28>>2];b=F[b+24>>2];F[g+12>>2]=0;b=c-b>>2;d=a+96|0;e=F[d>>2];c=F[a+100>>2]-e>>2;c:{if(b>>>0>c>>>0){Fa(d,b-c|0,g+12|0);break c}if(b>>>0>=c>>>0){break c}F[a+100>>2]=e+(b<<2)}e=a+8|0;b=F[a+116>>2];d:{if(b){d=F[b>>2];if((d|0)==F[b+4>>2]){c=1;break d}b=0;while(1){c=rd(e,F[(b<<2)+d>>2]);if(!c){break d}f=F[a+116>>2];d=F[f>>2];b=b+1|0;if(b>>>0>2]-d>>2>>>0){continue}break}break d}c=1;a=F[a+12>>2];a=F[a+4>>2]-F[a>>2]|0;if(a>>>0<12){break d}a=(a>>2>>>0)/3|0;b=0;while(1){c=rd(e,L(b,3));if(!c){break d}b=b+1|0;if((a|0)!=(b|0)){continue}break}}Z=g+16|0;return c|0}na();v()}function md(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0;a:{b:{c:{if(!b){if((d|0)<0){break a}f=F[a+4>>2];b=F[a>>2];d=f-b|0;if(c>>>0>d>>>0){g=c-d|0;e=F[a+8>>2];if(g>>>0<=e-f>>>0){i=a,j=ma(f,0,g)+g|0,F[i+4>>2]=j;break c}if((c|0)<0){break b}f=e-b|0;e=f<<1;f=f>>>0>=1073741823?2147483647:c>>>0>>0?e:c;e=ka(f);ma(e+d|0,0,g);d=pa(e,b,d);F[a+8>>2]=d+f;F[a+4>>2]=c+d;F[a>>2]=d;if(!b){break c}ja(b);break c}if(c>>>0>=d>>>0){break c}F[a+4>>2]=b+c;break c}if((d|0)<0){break a}e=F[a+4>>2];f=F[a>>2];g=e-f|0;d:{if((d|0)<=0&c>>>0<=g>>>0|(d|0)<0){break d}if(c>>>0>g>>>0){d=c-g|0;h=F[a+8>>2];if(d>>>0<=h-e>>>0){i=a,j=ma(e,0,d)+d|0,F[i+4>>2]=j;break d}if((c|0)<0){break b}e=h-f|0;h=e<<1;e=e>>>0>=1073741823?2147483647:c>>>0>>0?h:c;h=ka(e);ma(h+g|0,0,d);d=pa(h,f,g);F[a+8>>2]=d+e;F[a+4>>2]=c+d;F[a>>2]=d;if(!f){break d}ja(f);break d}if(c>>>0>=g>>>0){break d}F[a+4>>2]=c+f}if(!c){break c}pa(F[a>>2],b,c)}b=F[a+28>>2];c=F[a+24>>2]+1|0;b=c?b:b+1|0;F[a+24>>2]=c;F[a+28>>2]=b;g=1;break a}na();v()}return g}function Lg(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;k=F[a+12>>2];c=F[a+68>>2];d=F[c+80>>2];D[b+84|0]=0;n=b+68|0;i=F[b+68>>2];e=F[b+72>>2]-i>>2;a:{if(e>>>0>>0){ab(n,d-e|0,9124);c=F[a+68>>2];d=F[c+80>>2];break a}if(d>>>0>=e>>>0){break a}F[b+72>>2]=i+(d<<2)}b=F[c+100>>2];e=F[c+96>>2];i=(b-e|0)/12|0;m=1;b:{if((b|0)==(e|0)){break b}k=F[k+28>>2];f=F[k>>2];if((f|0)==-1){return 0}o=i>>>0<=1?1:i;c=e;b=0;m=0;while(1){g=F[c>>2];if(g>>>0>=d>>>0){break b}j=F[F[a+72>>2]+12>>2];h=F[j+(f<<2)>>2];if(h>>>0>=d>>>0){break b}f=F[n>>2];F[f+(g<<2)>>2]=h;g=k+(l<<2)|0;h=F[g+4>>2];if((h|0)==-1){break b}l=F[c+4>>2];if(l>>>0>=d>>>0){break b}h=F[(h<<2)+j>>2];if(h>>>0>=d>>>0){break b}F[f+(l<<2)>>2]=h;g=F[g+8>>2];if((g|0)==-1){break b}c=F[c+8>>2];if(c>>>0>=d>>>0){break b}j=F[(g<<2)+j>>2];if(j>>>0>=d>>>0){break b}F[f+(c<<2)>>2]=j;b=b+1|0;m=i>>>0<=b>>>0;if((b|0)==(o|0)){break b}c=e+L(b,12)|0;l=L(b,3);f=F[k+(l<<2)>>2];if((f|0)!=-1){continue}break}}return m|0}function ag(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;h=F[d+80>>2];e=Z-48|0;Z=e;a=F[a+4>>2];m=a-2|0;a:{if(m>>>0>28){break a}j=F[F[d>>2]>>2]+F[d+48>>2]|0;F[e+16>>2]=a;a=-1<>2]=a^-1;a=-2-a|0;F[e+24>>2]=a;F[e+32>>2]=(a|0)/2;J[e+28>>2]=M(2)/M(a|0);f=F[c>>2];if((f|0)!=F[c+4>>2]){a=0;d=0;while(1){g=F[(d<<2)+f>>2];h=e+36|0;k=F[F[b>>2]>>2];l=F[b+48>>2];f=F[b+40>>2];i=F[b+44>>2];if(!G[b+84|0]){g=F[F[b+68>>2]+(g<<2)>>2]}g=ki(f,i,g,0);i=g;g=g+l|0;la(h,g+k|0,f);Kc(e+16|0,h,e+12|0,e+8|0);f=a<<2;F[f+j>>2]=F[e+12>>2];F[(f|4)+j>>2]=F[e+8>>2];a=a+2|0;d=d+1|0;f=F[c>>2];if(d>>>0>2]-f>>2>>>0){continue}break}break a}if(!h){break a}d=0;a=0;while(1){k=e+36|0;l=F[F[b>>2]>>2];i=F[b+48>>2];c=F[b+40>>2];f=ki(c,F[b+44>>2],G[b+84|0]?a:F[F[b+68>>2]+(a<<2)>>2],0);g=f;f=f+i|0;la(k,f+l|0,c);Kc(e+16|0,k,e+12|0,e+8|0);c=d<<2;F[c+j>>2]=F[e+12>>2];F[(c|4)+j>>2]=F[e+8>>2];d=d+2|0;a=a+1|0;if((h|0)!=(a|0)){continue}break}}Z=e+48|0;return m>>>0<29|0}function Zg(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;c=F[a+12>>2];d=F[a+108>>2];e=F[d+80>>2];D[b+84|0]=0;m=b+68|0;h=F[b+68>>2];f=F[b+72>>2]-h>>2;a:{if(f>>>0>>0){ab(m,e-f|0,9124);d=F[a+108>>2];e=F[d+80>>2];break a}if(e>>>0>=f>>>0){break a}F[b+72>>2]=h+(e<<2)}b=F[d+100>>2];f=F[d+96>>2];h=(b-f|0)/12|0;k=1;b:{if((b|0)==(f|0)){break b}n=h>>>0<=1?1:h;o=F[c>>2];c=0;d=f;b=0;k=0;while(1){c=(c<<2)+o|0;i=F[c>>2];if((i|0)==-1){break b}g=F[d>>2];if(g>>>0>=e>>>0){break b}l=F[F[a+112>>2]+12>>2];j=F[l+(i<<2)>>2];if(j>>>0>=e>>>0){break b}i=F[m>>2];F[i+(g<<2)>>2]=j;g=F[c+4>>2];if((g|0)==-1){break b}j=F[d+4>>2];if(j>>>0>=e>>>0){break b}g=F[(g<<2)+l>>2];if(g>>>0>=e>>>0){break b}F[i+(j<<2)>>2]=g;c=F[c+8>>2];if((c|0)==-1){break b}d=F[d+8>>2];if(d>>>0>=e>>>0){break b}c=F[(c<<2)+l>>2];if(c>>>0>=e>>>0){break b}F[i+(d<<2)>>2]=c;b=b+1|0;k=h>>>0<=b>>>0;if((b|0)==(n|0)){break b}c=L(b,3);d=f+L(b,12)|0;if((b|0)!=1431655765){continue}break}}return k|0}function xd(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=M(0),j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;k=Z-16|0;Z=k;if(F[c+28>>2]==9){d=F[a+4>>2];h=G[c+24|0];e=h<<2;f=ka(e);l=k+8|0;F[l>>2]=1065353216;i=J[a+20>>2];d=-1<0){J[l>>2]=i/M(d|0)}o=(d|0)>0;a:{if(!o){break a}j=F[c+80>>2];if(!j){break a}if(h){p=F[F[b>>2]>>2]+F[b+48>>2]|0;t=h&254;u=h&1;b=0;while(1){m=F[a+8>>2];i=J[l>>2];d=0;n=0;if((h|0)!=1){while(1){g=d<<2;q=(b<<2)+p|0;J[g+f>>2]=M(i*M(F[q>>2]))+J[g+m>>2];g=g|4;J[g+f>>2]=M(i*M(F[q+4>>2]))+J[g+m>>2];d=d+2|0;b=b+2|0;n=n+2|0;if((t|0)!=(n|0)){continue}break}}if(u){d=d<<2;J[d+f>>2]=M(i*M(F[(b<<2)+p>>2]))+J[d+m>>2];b=b+1|0}la(F[F[c+64>>2]>>2]+r|0,f,e);r=e+r|0;s=s+1|0;if((s|0)!=(j|0)){continue}break}break a}b=0;if((j|0)!=1){a=j&-2;d=0;while(1){la(F[F[c+64>>2]>>2]+b|0,f,e);b=b+e|0;la(b+F[F[c+64>>2]>>2]|0,f,e);b=b+e|0;d=d+2|0;if((a|0)!=(d|0)){continue}break}}if(!(j&1)){break a}la(F[F[c+64>>2]>>2]+b|0,f,e)}ja(f)}Z=k+16|0;return o|0}function Rg(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;c=F[a+12>>2];d=F[a+68>>2];e=F[d+80>>2];D[b+84|0]=0;m=b+68|0;h=F[b+68>>2];f=F[b+72>>2]-h>>2;a:{if(f>>>0>>0){ab(m,e-f|0,9124);d=F[a+68>>2];e=F[d+80>>2];break a}if(e>>>0>=f>>>0){break a}F[b+72>>2]=h+(e<<2)}b=F[d+100>>2];f=F[d+96>>2];h=(b-f|0)/12|0;k=1;b:{if((b|0)==(f|0)){break b}n=h>>>0<=1?1:h;o=F[c>>2];c=0;d=f;b=0;k=0;while(1){c=(c<<2)+o|0;i=F[c>>2];if((i|0)==-1){break b}g=F[d>>2];if(g>>>0>=e>>>0){break b}l=F[F[a+72>>2]+12>>2];j=F[l+(i<<2)>>2];if(j>>>0>=e>>>0){break b}i=F[m>>2];F[i+(g<<2)>>2]=j;g=F[c+4>>2];if((g|0)==-1){break b}j=F[d+4>>2];if(j>>>0>=e>>>0){break b}g=F[(g<<2)+l>>2];if(g>>>0>=e>>>0){break b}F[i+(j<<2)>>2]=g;c=F[c+8>>2];if((c|0)==-1){break b}d=F[d+8>>2];if(d>>>0>=e>>>0){break b}c=F[(c<<2)+l>>2];if(c>>>0>=e>>>0){break b}F[i+(d<<2)>>2]=c;b=b+1|0;k=h>>>0<=b>>>0;if((b|0)==(n|0)){break b}c=L(b,3);d=f+L(b,12)|0;if((b|0)!=1431655765){continue}break}}return k|0}function Na(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;d=Z-16|0;Z=d;a:{f=F[a+4>>2];b:{if(f>>>0>>0){e=b-f|0;c=F[a+8>>2];g=c<<5;c:{if(!(e>>>0>g>>>0|f>>>0>g-e>>>0)){F[a+4>>2]=b;h=f&31;b=F[a>>2]+(f>>>3&536870908)|0;break c}F[d+8>>2]=0;F[d>>2]=0;F[d+4>>2]=0;if((b|0)<0){break a}if(g>>>0<=1073741822){c=c<<6;b=b+31&-32;b=b>>>0>>0?c:b}else{b=2147483647}$a(d,b);f=F[a+4>>2];F[d+4>>2]=f+e;i=F[a>>2];b=F[d>>2];d:{if((f|0)<=0){break d}c=f>>>5|0;if(f>>>0>=32){pa(b,i,c<<2)}g=c<<2;b=g+b|0;h=f&31;if(h){c=-1>>>32-h|0;F[b>>2]=F[b>>2]&(c^-1)|F[i+g>>2]&c}i=F[a>>2]}F[a>>2]=F[d>>2];F[d>>2]=i;c=F[a+4>>2];F[a+4>>2]=F[d+4>>2];F[d+4>>2]=c;c=F[a+8>>2];F[a+8>>2]=F[d+8>>2];F[d+8>>2]=c;if(!i){break c}ja(i)}if(!e){break b}if(h){c=32-h|0;a=c>>>0>>0?c:e;F[b>>2]=F[b>>2]&(-1<>>c-a^-1);e=e-a|0;b=b+4|0}a=e>>>5|0;if(e>>>0>=32){ma(b,0,a<<2)}if((e&-32)==(e|0)){break b}a=(a<<2)+b|0;F[a>>2]=F[a>>2]&(-1>>>32-(e&31)^-1);break b}F[a+4>>2]=b}Z=d+16|0;return}na();v()}function Aa(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;i=Z-16|0;Z=i;f=F[b+20>>2];h=F[b+12>>2];c=F[b+16>>2];a:{if((f|0)>=(h|0)&c>>>0>=I[b+8>>2]|(f|0)>(h|0)){break a}D[a+12|0]=G[c+F[b>>2]|0];c=F[b+20>>2];f=F[b+16>>2]+1|0;c=f?c:c+1|0;F[b+16>>2]=f;F[b+20>>2]=c;if(!Qd(1,i+12|0,b)){break a}h=F[b+8>>2];f=F[b+16>>2];g=h-f|0;c=F[i+12>>2];d=f>>>0>h>>>0;h=F[b+20>>2];e=F[b+12>>2]-(d+h|0)|0;if(g>>>0>>0&(e|0)<=0|(e|0)<0|(c|0)<=0){break a}g=f+F[b>>2]|0;F[a>>2]=g;b:{c:{e=c-1|0;j=e+g|0;d=G[j|0];d:{if(d>>>0<=63){F[a+4>>2]=e;d=G[j|0]&63;break d}e:{switch((d>>>6|0)-1|0){case 1:break c;case 0:break e;default:break a}}if(c>>>0<2){break a}e=c-2|0;F[a+4>>2]=e;g=g+e|0;d=G[g+1|0]<<8&16128|G[g|0]}F[a+8>>2]=d+4096;break b}if(c>>>0<3){break a}e=c-3|0;F[a+4>>2]=e;d=a;a=g+e|0;a=G[a+1|0]<<8|G[a+2|0]<<16&4128768|G[a|0];F[d+8>>2]=a+4096;if(a>>>0>1044479){break a}}a=h;d=c;c=c+f|0;a=d>>>0>c>>>0?a+1|0:a;F[b+16>>2]=c;F[b+20>>2]=a;k=1}Z=i+16|0;return k}function qd(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;e=F[a+12>>2];i=F[a+8>>2];d=e-i>>2;b=G[b+24|0];a:{if(d>>>0>>0){qa(a+8|0,b-d|0);i=F[a+8>>2];e=F[a+12>>2];break a}if(b>>>0>=d>>>0){break a}e=(b<<2)+i|0;F[a+12>>2]=e}b=0;f=F[c+8>>2];h=F[c+12>>2];j=F[c+20>>2];e=e-i|0;d=F[c+16>>2];g=e+d|0;j=e>>>0>g>>>0?j+1|0:j;b:{if(f>>>0>>0&(h|0)<=(j|0)|(h|0)<(j|0)){break b}la(i,d+F[c>>2]|0,e);d=F[c+20>>2];g=e;e=e+F[c+16>>2]|0;d=g>>>0>e>>>0?d+1|0:d;F[c+16>>2]=e;F[c+20>>2]=d;f=F[c+8>>2];h=F[c+12>>2];g=e+4|0;d=g>>>0<4?d+1|0:d;if(f>>>0>>0&(d|0)>=(h|0)|(d|0)>(h|0)){break b}d=e+F[c>>2]|0;F[a+20>>2]=G[d|0]|G[d+1|0]<<8|(G[d+2|0]<<16|G[d+3|0]<<24);d=F[c+20>>2];g=d;f=d;e=F[c+16>>2];d=e+4|0;f=d>>>0<4?f+1|0:f;F[c+16>>2]=d;F[c+20>>2]=f;h=F[c+12>>2];if((f|0)>=(h|0)&d>>>0>=I[c+8>>2]|(f|0)>(h|0)){break b}f=G[d+F[c>>2]|0];d=g;e=e+5|0;d=e>>>0<5?d+1|0:d;F[c+16>>2]=e;F[c+20>>2]=d;if(f-1>>>0>29){break b}F[a+4>>2]=f;b=1}return b|0}function Kc(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;j=+J[b>>2];k=+J[b+4>>2];l=+J[b+8>>2];g=N(j)+N(k)+N(l);a:{if(!(g>1e-6)){j=1;k=0;e=0;break a}g=1/g;k=g*k;j=g*j;e=g*l<0}h=F[a+16>>2];l=+(h|0);g=R(j*l+.5);b:{if(N(g)<2147483648){m=~~g;break b}m=-2147483648}f=m>>31;i=(f^m)-f|0;g=R(k*l+.5);c:{if(N(g)<2147483648){f=~~g;break c}f=-2147483648}b=f>>31;b=h-(i+((f^b)-b|0)|0)|0;i=(b|0)>0?b:0;e=e?0-i|0:i;f=f+(b>>31&((f|0)>0?b:0-b|0))|0;d:{if((m|0)>=0){b=e+h|0;a=F[a+8>>2];e=h+f|0;break d}b=f>>31;b=(b^f)-b|0;a=F[a+8>>2];b=(e|0)<0?b:a-b|0;e=(f|0)<0?i:a-i|0}e:{if(!(b|e)){b=a;break e}if(!((a|0)!=(b|0)|e)){b=a;break e}if(!((a|0)!=(e|0)|b)){b=a;break e}if(!((b|0)<=(h|0)|e)){b=(h<<1)-b|0;a=0;break e}if(!((a|0)!=(e|0)|(b|0)>=(h|0))){b=(h<<1)-b|0;break e}if(!((a|0)!=(b|0)|(e|0)>=(h|0))){b=a;a=(h<<1)-e|0;break e}if(b){a=e;break e}b=0;if((e|0)<=(h|0)){a=e;break e}a=(h<<1)-e|0}F[c>>2]=a;F[d>>2]=b}function ye(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;a:{if(!$c(a,b)){break a}h=a+36|0;g=$[F[F[a>>2]+24>>2]](a)|0;e=F[a+40>>2];d=F[a+36>>2];c=e-d>>2;b:{if(g>>>0>c>>>0){Pb(h,g-c|0);break b}if(c>>>0<=g>>>0){break b}d=d+(g<<2)|0;if((d|0)!=(e|0)){while(1){e=e-4|0;c=F[e>>2];F[e>>2]=0;if(c){$[F[F[c>>2]+4>>2]](c)}if((d|0)!=(e|0)){continue}break}}F[a+40>>2]=d}c=1;if((g|0)<=0){break a}e=0;while(1){c:{c=F[b+20>>2];f=F[b+12>>2];d=F[b+16>>2];if((c|0)>=(f|0)&d>>>0>=I[b+8>>2]|(c|0)>(f|0)){break c}f=G[F[b>>2]+d|0];d=d+1|0;c=d?c:c+1|0;F[b+16>>2]=d;F[b+20>>2]=c;d=$[F[F[a>>2]+48>>2]](a,f)|0;f=e<<2;i=f+F[a+36>>2]|0;c=F[i>>2];F[i>>2]=d;if(c){$[F[F[c>>2]+4>>2]](c)}c=F[F[h>>2]+f>>2];if(!c){break c}if(!(k=c,l=$[F[F[a>>2]+28>>2]](a)|0,m=$[F[F[a>>2]+20>>2]](a,e)|0,j=F[F[c>>2]+8>>2],$[j](k|0,l|0,m|0)|0)){break c}c=1;e=e+1|0;if((g|0)!=(e|0)){continue}break a}break}c=0}return c|0}function Xc(a,b){var c=0,d=0,e=0,f=0,g=0,h=0;g=F[a>>2];c=g+(b>>>3&536870908)|0;F[c>>2]=F[c>>2]|1<>2];e=(b|0)==-1;d=-1;a:{if(e){break a}c=b+1|0;c=(c>>>0)%3|0?c:b-2|0;d=-1;if((c|0)==-1){break a}d=F[F[f>>2]+(c<<2)>>2]}c=F[a+12>>2];h=(d>>>3&536870908)+c|0;F[h>>2]=F[h>>2]|1<>>0)%3|0){e=b-1|0;break e}e=b+2|0;d=-1;if((e|0)==-1){break d}}d=F[F[f>>2]+(e<<2)>>2]}e=(d>>>3&536870908)+c|0;F[e>>2]=F[e>>2]|1<>2]+(b<<2)>>2];if((b|0)==-1){break b}D[a+24|0]=0;a=(b>>>3&536870908)+g|0;F[a>>2]=F[a>>2]|1<>>0)%3|0?a:b-2|0;if((a|0)!=-1){d=F[F[f>>2]+(a<<2)>>2]}a=c+(d>>>3&536870908)|0;F[a>>2]=F[a>>2]|1<>>0)%3|0){b=b-1|0;break g}b=b+2|0;a=-1;if((b|0)==-1){break f}}a=F[F[f>>2]+(b<<2)>>2]}b=1<>>3&536870908)|0;c=F[a>>2];break c}a=c+536870908|0;b=F[c+536870908>>2];c=-2147483648}F[a>>2]=b|c}}function zc(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=M(0),f=M(0),g=M(0),h=M(0),i=M(0),j=0,k=M(0),l=M(0),m=M(0),n=M(0),o=0;a:{if(F[c+28>>2]!=9|G[c+24|0]!=3){break a}a=F[a+4>>2];if(a-2>>>0>28){break a}o=1;j=F[c+80>>2];if(!j){break a}k=M(M(2)/M((1<>2]>>2]+F[c+48>>2]|0;a=F[F[b>>2]>>2]+F[b+48>>2]|0;b=0;while(1){g=M(0);l=M(0);m=M(0);e=M(M(M(F[a>>2])*k)+M(-1));f=M(M(M(F[a+4>>2])*k)+M(-1));i=M(M(M(1)-M(N(e)))-M(N(f)));h=M(Q(M(-i),M(0)));n=M(-h);f=M(f+(f>>8;D[c+10|0]=d>>>16;D[c+11|0]=d>>>24;d=(w(l),y(2));D[c+4|0]=d;D[c+5|0]=d>>>8;D[c+6|0]=d>>>16;D[c+7|0]=d>>>24;d=(w(g),y(2));D[c|0]=d;D[c+1|0]=d>>>8;D[c+2|0]=d>>>16;D[c+3|0]=d>>>24;c=c+12|0;b=b+1|0;if((j|0)!=(b|0)){continue}break}}return o|0}function Md(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;g=Z-16|0;Z=g;a:{if(!Sa(1,g+8|0,b)){break a}d=F[b+8>>2];e=F[b+16>>2];f=d-e|0;h=F[g+12>>2];c=d>>>0>>0;d=F[b+20>>2];i=F[b+12>>2]-(c+d|0)|0;c=F[g+8>>2];if((h|0)==(i|0)&c>>>0>f>>>0|h>>>0>i>>>0){break a}d=d+h|0;f=c+e|0;d=f>>>0>>0?d+1|0:d;F[b+16>>2]=f;F[b+20>>2]=d;if((c|0)<=0){break a}b=F[b>>2]+e|0;F[a+40>>2]=b;e=c-1|0;d=b+e|0;f=G[d|0];b:{if(f>>>0<=63){F[a+44>>2]=e;b=G[d|0]&63;break b}c:{switch((f>>>6|0)-1|0){case 0:if(c>>>0<2){break a}c=c-2|0;F[a+44>>2]=c;b=b+c|0;b=G[b+1|0]<<8&16128|G[b|0];break b;case 1:if(c>>>0<3){break a}c=c-3|0;F[a+44>>2]=c;b=b+c|0;b=G[b+1|0]<<8|G[b+2|0]<<16&4128768|G[b|0];break b;default:break c}}c=c-4|0;F[a+44>>2]=c;b=b+c|0;b=(G[b|0]|G[b+1|0]<<8|(G[b+2|0]<<16|G[b+3|0]<<24))&1073741823}F[a+48>>2]=b+16384;j=b>>>0<4177920}Z=g+16|0;return j}function Tf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;a:{a=Z-32|0;Z=a;e=ya(c);if(e>>>0<2147483632){b:{c:{if(e>>>0>=11){g=(e|15)+1|0;f=ka(g);F[a+24>>2]=g|-2147483648;F[a+16>>2]=f;F[a+20>>2]=e;g=e+f|0;break c}D[a+27|0]=e;f=a+16|0;g=e+f|0;if(!e){break b}}la(f,c,e)}D[g|0]=0;F[a+8>>2]=0;F[a>>2]=0;F[a+4>>2]=0;d:{c=Ya(b,a+16|0);if((c|0)==(b+4|0)){break d}b=F[c+28>>2];e=F[c+32>>2];if((b|0)==(e|0)){break d}b=e-b|0;if(b&3){break d}e=b>>>2|0;f=F[a+4>>2];b=F[a>>2];g=f-b>>2;e:{if(e>>>0>g>>>0){qa(a,e-g|0);b=F[a>>2];f=F[a+4>>2];break e}if(e>>>0>=g>>>0){break e}f=(e<<2)+b|0;F[a+4>>2]=f}if((b|0)!=(f|0)){e=b;b=F[c+28>>2];la(e,b,F[c+32>>2]-b|0);break d}ta();v()}b=F[d>>2];if(b){F[d+4>>2]=b;ja(b)}F[d>>2]=F[a>>2];F[d+4>>2]=F[a+4>>2];F[d+8>>2]=F[a+8>>2];if(D[a+27|0]<0){ja(F[a+16>>2])}Z=a+32|0;break a}za();v()}}function ud(a){a=a|0;var b=0,c=0,d=0,e=0;F[a>>2]=8284;d=F[a+368>>2];F[a+368>>2]=0;if(d){e=d-4|0;b=F[e>>2];if(b){c=(b<<4)+d|0;while(1){c=c-16|0;if((d|0)!=(c|0)){continue}break}}ja(e)}td(a+216|0);b=F[a+196>>2];if(b){F[a+200>>2]=b;ja(b)}b=F[a+184>>2];if(b){F[a+188>>2]=b;ja(b)}b=F[a+172>>2];if(b){F[a+176>>2]=b;ja(b)}b=F[a+160>>2];if(b){F[a+164>>2]=b;ja(b)}c=F[a+144>>2];if(c){while(1){b=F[c>>2];ja(c);c=b;if(b){continue}break}}b=F[a+136>>2];F[a+136>>2]=0;if(b){ja(b)}b=F[a+120>>2];if(b){ja(b)}b=F[a+108>>2];if(b){ja(b)}b=F[a+96>>2];if(b){ja(b)}b=F[a+72>>2];if(b){F[a+76>>2]=b;ja(b)}b=F[a+60>>2];if(b){ja(b)}b=F[a+48>>2];if(b){F[a+52>>2]=b;ja(b)}b=F[a+36>>2];if(b){F[a+40>>2]=b;ja(b)}b=F[a+24>>2];if(b){F[a+28>>2]=b;ja(b)}b=F[a+12>>2];if(b){F[a+16>>2]=b;ja(b)}b=F[a+8>>2];F[a+8>>2]=0;if(b){Za(b)}return a|0}function Vf(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;d=Z-16|0;Z=d;a:{e=ya(c);if(e>>>0<2147483632){b:{c:{if(e>>>0>=11){f=(e|15)+1|0;a=ka(f);F[d+8>>2]=f|-2147483648;F[d>>2]=a;F[d+4>>2]=e;f=a+e|0;break c}D[d+11|0]=e;f=d+e|0;a=d;if(!e){break b}}la(a,c,e)}D[f|0]=0;c=G[d+11|0];e=c<<24>>24;b=F[b+4>>2];a=0;d:{if(!b){break d}a=c;c=(e|0)<0;a=c?F[d+4>>2]:a;f=c?F[d>>2]:d;while(1){c=G[b+27|0];g=c<<24>>24<0;c=g?F[b+20>>2]:c;i=c>>>0>>0;e:{f:{g:{h:{i:{j:{h=i?c:a;if(h){g=g?F[b+16>>2]:b+16|0;j=sa(f,g,h);if(j){break j}if(a>>>0>=c>>>0){break i}break e}if(a>>>0>=c>>>0){break h}break e}if((j|0)<0){break e}}c=sa(g,f,h);if(c){break g}}if(i){break f}a=1;break d}if((c|0)<0){break f}a=1;break d}b=b+4|0}b=F[b>>2];if(b){continue}break}a=0}if((e|0)<0){ja(F[d>>2])}Z=d+16|0;break a}za();v()}return a|0}function lc(a,b){var c=0,d=0;c=F[b+8>>2];F[a+4>>2]=F[b+4>>2];F[a+8>>2]=c;F[a+20>>2]=F[b+20>>2];c=F[b+16>>2];F[a+12>>2]=F[b+12>>2];F[a+16>>2]=c;a:{b:{if((a|0)!=(b|0)){c=F[b+28>>2];if(c){d=F[a+24>>2];if(F[a+32>>2]<<5>>>0>>0){if(d){ja(d);F[a+32>>2]=0;F[a+24>>2]=0;F[a+28>>2]=0;c=F[b+28>>2]}if((c|0)<0){break b}c=(c-1>>>5|0)+1|0;d=ka(c<<2);F[a+32>>2]=c;F[a+28>>2]=0;F[a+24>>2]=d;c=F[b+28>>2]}pa(d,F[b+24>>2],(c-1>>>3&536870908)+4|0);c=F[b+28>>2]}else{c=0}F[a+28>>2]=c;c=F[b+40>>2];if(c){d=F[a+36>>2];if(F[a+44>>2]<<5>>>0>>0){if(d){ja(d);F[a+44>>2]=0;F[a+36>>2]=0;F[a+40>>2]=0;c=F[b+40>>2]}if((c|0)<0){break a}c=(c-1>>>5|0)+1|0;d=ka(c<<2);F[a+44>>2]=c;F[a+40>>2]=0;F[a+36>>2]=d;c=F[b+40>>2]}pa(d,F[b+36>>2],(c-1>>>3&536870908)+4|0);b=F[b+40>>2]}else{b=0}F[a+40>>2]=b}return}na();v()}na();v()}function nc(a){var b=0,c=0,d=0;b=F[a+8>>2];d=F[a>>2];a:{if(G[a+12|0]){b:{c:{d:{e:{if((b|0)==-1){break e}c=b+1|0;b=(c>>>0)%3|0?c:b-2|0;if((b|0)==-1){break e}b=F[F[d+12>>2]+(b<<2)>>2];if((b|0)!=-1){break d}}F[a+8>>2]=-1;break c}c=b+1|0;b=(c>>>0)%3|0?c:b-2|0;F[a+8>>2]=b;if((b|0)!=-1){break b}}c=F[a+4>>2];b=-1;f:{if((c|0)==-1){break f}g:{if((c>>>0)%3|0){c=c-1|0;break g}c=c+2|0;b=-1;if((c|0)==-1){break f}}c=F[F[d+12>>2]+(c<<2)>>2];b=-1;if((c|0)==-1){break f}b=c-1|0;if((c>>>0)%3|0){break f}b=c+2|0}D[a+12|0]=0;F[a+8>>2]=b;return}if((b|0)!=F[a+4>>2]){break a}F[a+8>>2]=-1;return}c=-1;h:{if((b|0)==-1){break h}i:{if((b>>>0)%3|0){b=b-1|0;break i}b=b+2|0;c=-1;if((b|0)==-1){break h}}b=F[F[d+12>>2]+(b<<2)>>2];c=-1;if((b|0)==-1){break h}c=b-1|0;if((b>>>0)%3|0){break h}c=b+2|0}F[a+8>>2]=c}}function Od(a){var b=0,c=0,d=0;b=ka(32);D[b+26|0]=0;c=G[1475]|G[1476]<<8;D[b+24|0]=c;D[b+25|0]=c>>>8;c=G[1471]|G[1472]<<8|(G[1473]<<16|G[1474]<<24);d=G[1467]|G[1468]<<8|(G[1469]<<16|G[1470]<<24);D[b+16|0]=d;D[b+17|0]=d>>>8;D[b+18|0]=d>>>16;D[b+19|0]=d>>>24;D[b+20|0]=c;D[b+21|0]=c>>>8;D[b+22|0]=c>>>16;D[b+23|0]=c>>>24;c=G[1463]|G[1464]<<8|(G[1465]<<16|G[1466]<<24);d=G[1459]|G[1460]<<8|(G[1461]<<16|G[1462]<<24);D[b+8|0]=d;D[b+9|0]=d>>>8;D[b+10|0]=d>>>16;D[b+11|0]=d>>>24;D[b+12|0]=c;D[b+13|0]=c>>>8;D[b+14|0]=c>>>16;D[b+15|0]=c>>>24;c=G[1455]|G[1456]<<8|(G[1457]<<16|G[1458]<<24);d=G[1451]|G[1452]<<8|(G[1453]<<16|G[1454]<<24);D[b|0]=d;D[b+1|0]=d>>>8;D[b+2|0]=d>>>16;D[b+3|0]=d>>>24;D[b+4|0]=c;D[b+5|0]=c>>>8;D[b+6|0]=c>>>16;D[b+7|0]=c>>>24;F[a>>2]=-1;ra(a+4|0,b,26);ja(b)}function Kg(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0;e=F[a+4>>2];d=F[e>>2];a:{b=F[a+12>>2];c=F[b+56>>2]-F[b+52>>2]|0;f=c>>2;b:{if(f>>>0<=F[e+8>>2]-d>>2>>>0){break b}if((c|0)<0){break a}b=F[e+4>>2];c=ka(c);f=c+(f<<2)|0;g=c+(b-d&-4)|0;c=g;if((b|0)!=(d|0)){while(1){c=c-4|0;b=b-4|0;F[c>>2]=F[b>>2];if((b|0)!=(d|0)){continue}break}}F[e+8>>2]=f;F[e+4>>2]=g;F[e>>2]=c;if(!d){break b}ja(d)}e=a+8|0;b=F[a+76>>2];c:{if(b){d=F[b>>2];if((d|0)==F[b+4>>2]){return 1}b=0;while(1){c=od(e,F[(b<<2)+d>>2]);if(!c){break c}f=F[a+76>>2];d=F[f>>2];b=b+1|0;if(b>>>0>2]-d>>2>>>0){continue}break}break c}c=1;a=F[F[a+12>>2]+64>>2];a=F[a+4>>2]-F[a>>2]|0;if(a>>>0<12){break c}a=(a>>2>>>0)/3|0;b=0;while(1){c=od(e,L(b,3));if(!c){break c}b=b+1|0;if((a|0)!=(b|0)){continue}break}}return c|0}na();v()}function Qg(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0;e=F[a+4>>2];d=F[e>>2];a:{b=F[a+12>>2];c=F[b+28>>2]-F[b+24>>2]|0;f=c>>2;b:{if(f>>>0<=F[e+8>>2]-d>>2>>>0){break b}if((c|0)<0){break a}b=F[e+4>>2];c=ka(c);f=c+(f<<2)|0;g=c+(b-d&-4)|0;c=g;if((b|0)!=(d|0)){while(1){c=c-4|0;b=b-4|0;F[c>>2]=F[b>>2];if((b|0)!=(d|0)){continue}break}}F[e+8>>2]=f;F[e+4>>2]=g;F[e>>2]=c;if(!d){break b}ja(d)}e=a+8|0;b=F[a+76>>2];c:{if(b){d=F[b>>2];if((d|0)==F[b+4>>2]){return 1}b=0;while(1){c=pd(e,F[(b<<2)+d>>2]);if(!c){break c}f=F[a+76>>2];d=F[f>>2];b=b+1|0;if(b>>>0>2]-d>>2>>>0){continue}break}break c}c=1;a=F[a+12>>2];a=F[a+4>>2]-F[a>>2]|0;if(a>>>0<12){break c}a=(a>>2>>>0)/3|0;b=0;while(1){c=pd(e,L(b,3));if(!c){break c}b=b+1|0;if((a|0)!=(b|0)){continue}break}}return c|0}na();v()}function pa(a,b,c){var d=0,e=0;a:{if((a|0)==(b|0)){break a}e=a+c|0;if(b-e>>>0<=0-(c<<1)>>>0){return la(a,b,c)}d=(a^b)&3;b:{c:{if(a>>>0>>0){if(d){d=a;break b}if(!(a&3)){d=a;break c}d=a;while(1){if(!c){break a}D[d|0]=G[b|0];b=b+1|0;c=c-1|0;d=d+1|0;if(d&3){continue}break}break c}d:{if(d){break d}if(e&3){while(1){if(!c){break a}c=c-1|0;d=c+a|0;D[d|0]=G[b+c|0];if(d&3){continue}break}}if(c>>>0<=3){break d}while(1){c=c-4|0;F[c+a>>2]=F[b+c>>2];if(c>>>0>3){continue}break}}if(!c){break a}while(1){c=c-1|0;D[c+a|0]=G[b+c|0];if(c){continue}break}break a}if(c>>>0<=3){break b}while(1){F[d>>2]=F[b>>2];b=b+4|0;d=d+4|0;c=c-4|0;if(c>>>0>3){continue}break}}if(!c){break a}while(1){D[d|0]=G[b|0];d=d+1|0;b=b+1|0;c=c-1|0;if(c){continue}break}}return a}function Pb(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;d=F[a+8>>2];c=F[a+4>>2];if(d-c>>2>>>0>=b>>>0){if(b){b=b<<2;c=ma(c,0,b)+b|0}F[a+4>>2]=c;return}a:{b:{c:{g=F[a>>2];f=c-g>>2;e=f+b|0;if(e>>>0<1073741824){d=d-g|0;h=d>>>1|0;e=d>>>0>=2147483644?1073741823:e>>>0>>0?h:e;if(e){if(e>>>0>=1073741824){break c}i=ka(e<<2)}d=(f<<2)+i|0;f=b<<2;b=ma(d,0,f);f=b+f|0;e=(e<<2)+i|0;if((c|0)==(g|0)){break b}while(1){c=c-4|0;b=F[c>>2];F[c>>2]=0;d=d-4|0;F[d>>2]=b;if((c|0)!=(g|0)){continue}break}F[a+8>>2]=e;b=F[a+4>>2];F[a+4>>2]=f;c=F[a>>2];F[a>>2]=d;if((b|0)==(c|0)){break a}while(1){b=b-4|0;a=F[b>>2];F[b>>2]=0;if(a){$[F[F[a>>2]+4>>2]](a)}if((b|0)!=(c|0)){continue}break}break a}na();v()}oa();v()}F[a+8>>2]=e;F[a+4>>2]=f;F[a>>2]=b}if(c){ja(c)}}function Yd(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;e=F[b+8>>2];d=F[b+12>>2];g=d;d=F[b+20>>2];k=d;h=F[b+16>>2];c=h+4|0;d=c>>>0<4?d+1|0:d;i=c;a:{if(c>>>0>e>>>0&(d|0)>=(g|0)|(d|0)>(g|0)){break a}j=F[b>>2];c=j+h|0;f=G[c|0]|G[c+1|0]<<8|(G[c+2|0]<<16|G[c+3|0]<<24);F[b+16>>2]=i;F[b+20>>2]=d;c=e;e=k;d=h+8|0;e=d>>>0<8?e+1|0:e;if(c>>>0>>0&(e|0)>=(g|0)|(e|0)>(g|0)){break a}c=i+j|0;c=G[c|0]|G[c+1|0]<<8|(G[c+2|0]<<16|G[c+3|0]<<24);F[b+16>>2]=d;F[b+20>>2]=e;if((c|0)<(f|0)){break a}F[a+16>>2]=c;F[a+12>>2]=f;d=(c>>31)-((f>>31)+(c>>>0>>0)|0)|0;e=c-f|0;if(!d&e>>>0>2147483646|d){break a}d=e+1|0;F[a+20>>2]=d;e=d>>>1|0;F[a+24>>2]=e;F[a+28>>2]=0-e;if(!(d&1)){F[a+24>>2]=e-1}l=Aa(a+112|0,b)}return l|0}function Wc(a,b){var c=0,d=0,e=0,f=0;d=-1;e=-1;f=-1;a:{b:{if((b|0)==-1){break b}e=F[F[F[a+4>>2]+12>>2]+(b<<2)>>2];c=b+1|0;c=(c>>>0)%3|0?c:b-2|0;if((c|0)>=0){f=(c>>>0)/3|0;f=F[(F[F[a>>2]+96>>2]+L(f,12)|0)+(c-L(f,3)<<2)>>2]}c:{if((e|0)==-1){break c}c=((e>>>0)%3|0?-1:2)+e|0;if((c|0)<0){break c}d=(c>>>0)/3|0;d=F[(F[F[a>>2]+96>>2]+L(d,12)|0)+(c-L(d,3)<<2)>>2]}c=-1;if((d|0)!=(f|0)){break a}f=-1;d:{b=((b>>>0)%3|0?-1:2)+b|0;if((b|0)>=0){d=(b>>>0)/3|0;d=F[(F[F[a>>2]+96>>2]+L(d,12)|0)+(b-L(d,3)<<2)>>2];if((e|0)==-1){break b}break d}d=-1;if((e|0)!=-1){break d}break b}b=e+1|0;b=(b>>>0)%3|0?b:e-2|0;if((b|0)<0){break b}c=F[F[a>>2]+96>>2];a=(b>>>0)/3|0;f=F[(c+L(a,12)|0)+(b-L(a,3)<<2)>>2]}c=(d|0)!=(f|0)?-1:e}return c}function Fc(a,b){var c=0,d=0,e=0;c=Z+-64|0;Z=c;d=F[a>>2];e=F[d-4>>2];d=F[d-8>>2];F[c+32>>2]=0;F[c+36>>2]=0;F[c+40>>2]=0;F[c+44>>2]=0;F[c+48>>2]=0;F[c+52>>2]=0;D[c+55|0]=0;D[c+56|0]=0;D[c+57|0]=0;D[c+58|0]=0;D[c+59|0]=0;D[c+60|0]=0;D[c+61|0]=0;D[c+62|0]=0;F[c+24>>2]=0;F[c+28>>2]=0;F[c+20>>2]=0;F[c+16>>2]=11020;F[c+12>>2]=a;F[c+8>>2]=b;a=a+d|0;d=0;a:{if(La(e,b,0)){F[c+56>>2]=1;$[F[F[e>>2]+20>>2]](e,c+8|0,a,a,1,0);d=F[c+32>>2]==1?a:0;break a}$[F[F[e>>2]+24>>2]](e,c+8|0,a,1,0);b:{switch(F[c+44>>2]){case 0:d=F[c+48>>2]==1?F[c+36>>2]==1?F[c+40>>2]==1?F[c+28>>2]:0:0:0;break a;case 1:break b;default:break a}}if(F[c+32>>2]!=1){if(F[c+48>>2]|F[c+36>>2]!=1|F[c+40>>2]!=1){break a}}d=F[c+24>>2]}Z=c- -64|0;return d}function ma(a,b,c){var d=0,e=0,f=0,g=0;a:{if(!c){break a}D[a|0]=b;d=a+c|0;D[d-1|0]=b;if(c>>>0<3){break a}D[a+2|0]=b;D[a+1|0]=b;D[d-3|0]=b;D[d-2|0]=b;if(c>>>0<7){break a}D[a+3|0]=b;D[d-4|0]=b;if(c>>>0<9){break a}d=0-a&3;e=d+a|0;b=L(b&255,16843009);F[e>>2]=b;d=c-d&-4;c=d+e|0;F[c-4>>2]=b;if(d>>>0<9){break a}F[e+8>>2]=b;F[e+4>>2]=b;F[c-8>>2]=b;F[c-12>>2]=b;if(d>>>0<25){break a}F[e+24>>2]=b;F[e+20>>2]=b;F[e+16>>2]=b;F[e+12>>2]=b;F[c-16>>2]=b;F[c-20>>2]=b;F[c-24>>2]=b;F[c-28>>2]=b;g=e&4|24;c=d-g|0;if(c>>>0<32){break a}d=ki(b,0,1,1);f=_;b=e+g|0;while(1){F[b+24>>2]=d;F[b+28>>2]=f;F[b+16>>2]=d;F[b+20>>2]=f;F[b+8>>2]=d;F[b+12>>2]=f;F[b>>2]=d;F[b+4>>2]=f;b=b+32|0;c=c-32|0;if(c>>>0>31){continue}break}}return a}function ie(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;d=F[b+8>>2];e=F[b+12>>2];g=e;e=F[b+20>>2];k=e;h=F[b+16>>2];c=h+4|0;e=c>>>0<4?e+1|0:e;i=c;a:{if(c>>>0>d>>>0&(e|0)>=(g|0)|(e|0)>(g|0)){break a}j=F[b>>2];c=j+h|0;f=G[c|0]|G[c+1|0]<<8|(G[c+2|0]<<16|G[c+3|0]<<24);F[b+16>>2]=i;F[b+20>>2]=e;c=d;d=k;e=h+8|0;d=e>>>0<8?d+1|0:d;if(c>>>0>>0&(d|0)>=(g|0)|(d|0)>(g|0)){break a}c=i+j|0;c=G[c|0]|G[c+1|0]<<8|(G[c+2|0]<<16|G[c+3|0]<<24);F[b+16>>2]=e;F[b+20>>2]=d;if((c|0)<(f|0)){break a}F[a+16>>2]=c;F[a+12>>2]=f;d=(c>>31)-((f>>31)+(c>>>0>>0)|0)|0;b=c-f|0;if(!d&b>>>0>2147483646|d){break a}l=1;d=b+1|0;F[a+20>>2]=d;b=d>>>1|0;F[a+24>>2]=b;F[a+28>>2]=0-b;if(d&1){break a}F[a+24>>2]=b-1}return l|0}function Uc(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;d=Z-16|0;Z=d;f=F[a+24>>2];k=F[a+28>>2];a:{if((f|0)!=(k|0)){while(1){F[d+8>>2]=0;F[d>>2]=0;F[d+4>>2]=0;a=Sc(F[f>>2],b,d);g=G[d+11|0];h=g<<24>>24;i=3;b:{c:{d:{if(!a){break d}i=0;a=G[c+11|0];e=a<<24>>24;j=(h|0)<0?F[d+4>>2]:g;if((j|0)!=(((e|0)<0?F[c+4>>2]:a)|0)){break d}a=(e|0)<0?F[c>>2]:c;e=(h|0)<0;e:{if(!e){e=d;if(!h){break e}while(1){if(G[e|0]!=G[a|0]){break d}a=a+1|0;e=e+1|0;g=g-1|0;if(g){continue}break}break e}if(!j){break e}if(sa(e?F[d>>2]:d,a,j)){break c}}l=F[f>>2];i=1}if((h|0)>=0){break b}}ja(F[d>>2])}f:{switch(i|0){case 0:case 3:break f;default:break a}}f=f+4|0;if((k|0)!=(f|0)){continue}break}}l=0}Z=d+16|0;return l}function gb(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0;f=c-b|0;h=f>>2;d=F[a+8>>2];e=F[a>>2];if(h>>>0<=d-e>>2>>>0){d=F[a+4>>2];g=d-e|0;f=g+b|0;i=g>>2;g=i>>>0>>0?f:c;if((g|0)!=(b|0)){while(1){F[e>>2]=F[b>>2];e=e+4|0;b=b+4|0;if((g|0)!=(b|0)){continue}break}}if(h>>>0>i>>>0){if((c|0)!=(g|0)){while(1){F[d>>2]=F[f>>2];d=d+4|0;f=f+4|0;if((f|0)!=(c|0)){continue}break}}F[a+4>>2]=d;return}F[a+4>>2]=e;return}if(e){F[a+4>>2]=e;ja(e);F[a+8>>2]=0;F[a>>2]=0;F[a+4>>2]=0;d=0}a:{if((f|0)<0){break a}e=d>>>1|0;d=d>>>0>=2147483644?1073741823:e>>>0>h>>>0?e:h;if(d>>>0>=1073741824){break a}e=d<<2;d=ka(e);F[a>>2]=d;F[a+8>>2]=d+e;if((b|0)!=(c|0)){c=b;b=(f-4&-4)+4|0;d=la(d,c,b)+b|0}F[a+4>>2]=d;return}na();v()}function Ea(a,b,c){var d=0,e=0,f=0;e=Z-16|0;Z=e;F[a+4>>2]=0;a:{b:{if(!b){break b}f=F[a+8>>2];d=f<<5;c:{if(d>>>0>=b>>>0){F[a+4>>2]=b;break c}F[e+8>>2]=0;F[e>>2]=0;F[e+4>>2]=0;if((b|0)<0){break a}if(d>>>0<=1073741822){f=f<<6;d=b+31&-32;d=d>>>0>>0?f:d}else{d=2147483647}$a(e,d);f=F[a>>2];F[a>>2]=F[e>>2];F[e>>2]=f;d=F[a+4>>2];F[a+4>>2]=b;F[e+4>>2]=d;d=F[a+8>>2];F[a+8>>2]=F[e+8>>2];F[e+8>>2]=d;if(!f){break c}ja(f)}d=b>>>5|0;a=F[a>>2];if(G[c|0]){if(b>>>0>=32){ma(a,255,d<<2)}if((b&-32)==(b|0)){break b}a=a+(d<<2)|0;F[a>>2]=F[a>>2]|-1>>>32-(b&31);break b}if(b>>>0>=32){ma(a,0,d<<2)}if((b&-32)==(b|0)){break b}a=a+(d<<2)|0;F[a>>2]=F[a>>2]&(-1>>>32-(b&31)^-1)}Z=e+16|0;return}na();v()}function If(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;e=Z-32|0;Z=e;a:{b:{f=ya(c);if(f>>>0<2147483632){c:{d:{if(f>>>0>=11){a=(f|15)+1|0;g=ka(a);F[e+24>>2]=a|-2147483648;F[e+16>>2]=g;F[e+20>>2]=f;a=f+g|0;break d}D[e+27|0]=f;g=e+16|0;a=f+g|0;if(!f){break c}}la(g,c,f)}D[a|0]=0;c=ya(d);if(c>>>0>=2147483632){break b}e:{f:{if(c>>>0>=11){f=(c|15)+1|0;a=ka(f);F[e+8>>2]=f|-2147483648;F[e>>2]=a;F[e+4>>2]=c;g=a+c|0;break f}D[e+11|0]=c;g=c+e|0;a=e;if(!c){break e}}la(a,d,c)}D[g|0]=0;c=F[b+4>>2];a=-1;g:{if(!c){break g}c=Uc(c,e+16|0,e);a=-1;if(!c){break g}a=Pc(b,F[c+24>>2])}if(D[e+11|0]<0){ja(F[e>>2])}if(D[e+27|0]<0){ja(F[e+16>>2])}Z=e+32|0;break a}za();v()}za();v()}return a|0}function ne(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;h=F[c+12>>2];f=h;e=F[c+20>>2];j=F[c+8>>2];g=F[c+16>>2];a:{if((f|0)<=(e|0)&j>>>0<=g>>>0|(e|0)>(f|0)){break a}k=F[c>>2];i=D[k+g|0];d=e;f=g+1|0;d=f?d:d+1|0;F[c+16>>2]=f;F[c+20>>2]=d;if((i-7&255)>>>0<247){break a}b:{if((i|0)==-2){break b}if((d|0)>=(h|0)&f>>>0>=j>>>0|(d|0)>(h|0)){break a}d=D[f+k|0];g=g+2|0;e=g>>>0<2?e+1|0:e;F[c+16>>2]=g;F[c+20>>2]=e;if((d-4&255)>>>0<251){break a}e=$[F[F[a>>2]+40>>2]](a,i,d)|0;d=F[a+20>>2];F[a+20>>2]=e;if(!d){break b}$[F[F[d>>2]+4>>2]](d)}d=F[a+20>>2];if(d){if(!($[F[F[a>>2]+28>>2]](a,d)|0)){break a}}l=$[F[F[a>>2]+36>>2]](a,b,c)|0}return l|0}function se(a,b){a=a|0;b=b|0;a=0;a:{switch(b|0){case 0:a=ka(20);F[a+12>>2]=-1;F[a+16>>2]=0;F[a+4>>2]=0;F[a+8>>2]=0;F[a>>2]=1920;return a|0;case 1:a=ka(24);F[a+12>>2]=-1;F[a+16>>2]=0;F[a+4>>2]=0;F[a+8>>2]=0;F[a>>2]=1920;F[a+20>>2]=0;F[a>>2]=2136;return a|0;case 2:a=ka(48);F[a+12>>2]=-1;F[a+16>>2]=0;F[a+4>>2]=0;F[a+8>>2]=0;F[a>>2]=1920;F[a+20>>2]=0;F[a>>2]=2136;F[a+24>>2]=1624;F[a>>2]=7948;F[a+32>>2]=0;F[a+36>>2]=0;F[a+28>>2]=-1;F[a+40>>2]=0;F[a+44>>2]=0;return a|0;case 3:a=ka(32);F[a+12>>2]=-1;F[a+16>>2]=0;F[a+4>>2]=0;F[a+8>>2]=0;F[a>>2]=1920;F[a+20>>2]=0;F[a>>2]=2136;F[a+24>>2]=1032;F[a>>2]=5812;F[a+28>>2]=-1;break;default:break a}}return a|0}function Be(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;f=F[b>>2];b=F[b+4>>2];d=F[F[a+8>>2]+40>>2];j=d;m=ka((d|0)<0?-1:d);i=b-f|0;e=1;a:{if((i|0)<4){break a}b=0;g=F[c+16>>2];k=d;f=g+d|0;d=0+F[c+20>>2]|0;d=f>>>0>>0?d+1|0:d;h=F[c+12>>2];e=0;if(I[c+8>>2]>>0&(d|0)>=(h|0)|(d|0)>(h|0)){break a}e=i>>2;i=(e|0)<=1?1:e;while(1){b:{g=la(m,F[c>>2]+g|0,j);F[c+16>>2]=f;F[c+20>>2]=d;la(F[F[F[a+8>>2]+64>>2]>>2]+b|0,g,j);l=l+1|0;if((i|0)==(l|0)){break b}b=b+j|0;d=n+F[c+20>>2]|0;g=F[c+16>>2];f=k+g|0;d=f>>>0>>0?d+1|0:d;h=F[c+12>>2];if((d|0)<=(h|0)&I[c+8>>2]>=f>>>0|(d|0)<(h|0)){continue}}break}e=(e|0)<=(l|0)}ja(m);return e|0}function mh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0;F[b>>2]=1;f=b+8|0;c=F[b+8>>2];d=F[b+12>>2]-c|0;if(d>>>0<=4294967291){Db(f,d+4|0);c=F[f>>2]}c=c+d|0;d=F[a+4>>2];D[c|0]=d;D[c+1|0]=d>>>8;D[c+2|0]=d>>>16;D[c+3|0]=d>>>24;c=F[a+8>>2];if((c|0)!=F[a+12>>2]){d=0;while(1){g=(d<<2)+c|0;c=F[b+8>>2];e=F[b+12>>2]-c|0;if(e>>>0<=4294967291){Db(f,e+4|0);c=F[f>>2]}c=c+e|0;e=F[g>>2];D[c|0]=e;D[c+1|0]=e>>>8;D[c+2|0]=e>>>16;D[c+3|0]=e>>>24;d=d+1|0;c=F[a+8>>2];if(d>>>0>2]-c>>2>>>0){continue}break}}c=F[b+12>>2];b=F[b+8>>2];c=c-b|0;if(c>>>0<=4294967291){Db(f,c+4|0);b=F[f>>2]}b=b+c|0;a=F[a+20>>2];D[b|0]=a;D[b+1|0]=a>>>8;D[b+2|0]=a>>>16;D[b+3|0]=a>>>24}function mb(a,b){var c=0,d=0,e=0,f=0,g=0,h=0;c=F[a+4>>2];if((c|0)!=F[a+8>>2]){e=F[b+4>>2];F[c>>2]=F[b>>2];F[c+4>>2]=e;F[c+8>>2]=F[b+8>>2];F[a+4>>2]=c+12;return}a:{g=F[a>>2];d=(c-g|0)/12|0;e=d+1|0;if(e>>>0<357913942){f=d<<1;f=d>>>0>=178956970?357913941:e>>>0>>0?f:e;if(f){if(f>>>0>=357913942){break a}e=ka(L(f,12))}else{e=0}d=e+L(d,12)|0;h=F[b+4>>2];F[d>>2]=F[b>>2];F[d+4>>2]=h;F[d+8>>2]=F[b+8>>2];b=d+12|0;if((c|0)!=(g|0)){while(1){c=c-12|0;h=F[c+4>>2];d=d-12|0;F[d>>2]=F[c>>2];F[d+4>>2]=h;F[d+8>>2]=F[c+8>>2];if((c|0)!=(g|0)){continue}break}c=F[a>>2]}F[a+8>>2]=e+L(f,12);F[a+4>>2]=b;F[a>>2]=d;if(c){ja(c)}return}na();v()}oa();v()}function Bf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;a:{if(I[b+80>>2]>65535){break a}a=F[b+100>>2];b=F[b+96>>2];e=(a-b|0)/12|0;f=L(e,6);g=(f|0)==(c|0);if((a|0)==(b|0)|(c|0)!=(f|0)){break a}g=1;c=e>>>0<=1?1:e;i=c&1;a=0;if(e>>>0>=2){j=c&-2;c=0;while(1){f=L(a,6);h=f+d|0;e=b+L(a,12)|0;E[h>>1]=F[e>>2];E[(f|2)+d>>1]=F[e+4>>2];E[h+4>>1]=F[e+8>>2];f=a|1;e=L(f,6)+d|0;f=b+L(f,12)|0;E[e>>1]=F[f>>2];E[e+2>>1]=F[f+4>>2];E[e+4>>1]=F[f+8>>2];a=a+2|0;c=c+2|0;if((j|0)!=(c|0)){continue}break}}if(!i){break a}c=L(a,6)+d|0;a=b+L(a,12)|0;E[c>>1]=F[a>>2];E[c+2>>1]=F[a+4>>2];E[c+4>>1]=F[a+8>>2]}return g|0}function Gh(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;f=Z-32|0;Z=f;h=e>>>0>1073741823?-1:e<<2;h=ma(ka(h),0,h);g=F[b>>2];i=F[b+4>>2];k=F[h+4>>2];F[f+16>>2]=F[h>>2];F[f+20>>2]=k;F[f+8>>2]=g;F[f+12>>2]=i;i=a+8|0;Jb(f+24|0,i,f+16|0,f+8|0);F[c>>2]=F[f+24>>2];F[c+4>>2]=F[f+28>>2];if((d|0)>(e|0)){k=0-e<<2;a=e;while(1){g=a<<2;j=g+b|0;m=F[j>>2];j=F[j+4>>2];g=c+g|0;l=g+k|0;n=F[l+4>>2];F[f+16>>2]=F[l>>2];F[f+20>>2]=n;F[f+8>>2]=m;F[f+12>>2]=j;Jb(f+24|0,i,f+16|0,f+8|0);F[g>>2]=F[f+24>>2];F[g+4>>2]=F[f+28>>2];a=a+e|0;if((d|0)>(a|0)){continue}break}}ja(h);Z=f+32|0;return 1}function Sf(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;a=Z-32|0;Z=a;F[a+24>>2]=0;F[a+28>>2]=0;a:{d=ya(c);if(d>>>0<2147483632){b:{c:{if(d>>>0>=11){e=(d|15)+1|0;f=ka(e);F[a+16>>2]=e|-2147483648;F[a+8>>2]=f;F[a+12>>2]=d;e=d+f|0;break c}D[a+19|0]=d;f=a+8|0;e=f+d|0;if(!d){break b}}la(f,c,d)}D[e|0]=0;c=b+4|0;b=Ya(b,a+8|0);d:{if((c|0)==(b|0)){break d}c=F[b+32>>2];b=F[b+28>>2];if((c-b|0)!=8){break d}c=G[b+4|0]|G[b+5|0]<<8|(G[b+6|0]<<16|G[b+7|0]<<24);F[a+24>>2]=G[b|0]|G[b+1|0]<<8|(G[b+2|0]<<16|G[b+3|0]<<24);F[a+28>>2]=c}g=K[a+24>>3];if(D[a+19|0]<0){ja(F[a+8>>2])}Z=a+32|0;break a}za();v()}return+g}function Gc(a,b,c,d,e,f,g){var h=0,i=0,j=0;h=Z-16|0;Z=h;if((b^-1)+2147483631>>>0>=c>>>0){if(G[a+11|0]>>>7|0){i=F[a>>2]}else{i=a}if(b>>>0<1073741799){F[h+12>>2]=b<<1;F[h>>2]=b+c;c=Z-16|0;Z=c;Z=c+16|0;c=h+12|0;c=F[(I[h>>2]>2]?c:h)>>2];if(c>>>0>=11){j=c+16&-16;c=j-1|0;c=(c|0)==11?j:c}else{c=10}c=c+1|0}else{c=2147483631}sb(h,c);c=F[h>>2];if(f){db(c,g,f)}g=d-e|0;if((d|0)!=(e|0)){db(c+f|0,e+i|0,g)}if((b|0)!=10){ja(i)}F[a>>2]=c;F[a+8>>2]=F[a+8>>2]&-2147483648|F[h+4>>2]&2147483647;F[a+8>>2]=F[a+8>>2]|-2147483648;b=a;a=f+g|0;F[b+4>>2]=a;D[h+12|0]=0;D[a+c|0]=G[h+12|0];Z=h+16|0;return}za();v()}function _c(a,b,c){var d=0,e=0,f=0,g=0;a:{f=b>>>0<1431655766&(b|c)>=0;b:{if(!f){break b}b=L(b,3);Xb(a,b,10224);Xb(a+12|0,b,10228);d=F[a+24>>2];c:{if(F[a+32>>2]-d>>2>>>0>=c>>>0){break c}if(c>>>0>=1073741824){break a}b=F[a+28>>2];e=c<<2;c=ka(e);e=c+e|0;g=c+(b-d&-4)|0;c=g;if((b|0)!=(d|0)){while(1){c=c-4|0;b=b-4|0;F[c>>2]=F[b>>2];if((b|0)!=(d|0)){continue}break}}F[a+32>>2]=e;F[a+28>>2]=g;F[a+24>>2]=c;if(!d){break c}ja(d)}F[a+80>>2]=0;F[a+84>>2]=0;b=F[a+76>>2];F[a+76>>2]=0;if(b){ja(b)}F[a+68>>2]=0;F[a+72>>2]=0;b=a- -64|0;a=F[b>>2];F[b>>2]=0;if(!a){break b}ja(a)}return f}na();v()}function yd(a){var b=0,c=0,d=0,e=0,f=0;f=1;c=F[a+140>>2];a:{if((c|0)<=0){break a}b=c<<4;d=ka(c>>>0>268435455?-1:b|4);F[d>>2]=c;d=d+4|0;c=d+b|0;b=d;while(1){F[b>>2]=0;F[b+4>>2]=0;D[b+5|0]=0;D[b+6|0]=0;D[b+7|0]=0;D[b+8|0]=0;D[b+9|0]=0;D[b+10|0]=0;D[b+11|0]=0;D[b+12|0]=0;b=b+16|0;if((c|0)!=(b|0)){continue}break}e=F[a+136>>2];F[a+136>>2]=d;if(e){c=e-4|0;d=F[c>>2];if(d){b=(d<<4)+e|0;while(1){b=b-16|0;if((e|0)!=(b|0)){continue}break}}ja(c)}b=0;if(F[a+140>>2]<=0){break a}while(1){f=Aa(F[a+136>>2]+(b<<4)|0,a);if(!f){break a}b=b+1|0;if((b|0)>2]){continue}break}}return f} function Sd(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;d=F[b+8>>2];c=F[b+12>>2];g=c;c=F[b+20>>2];i=c;h=F[b+16>>2];f=h+4|0;c=f>>>0<4?c+1|0:c;a:{if(d>>>0>>0&(c|0)>=(g|0)|(c|0)>(g|0)){break a}e=h+F[b>>2]|0;e=G[e|0]|G[e+1|0]<<8|(G[e+2|0]<<16|G[e+3|0]<<24);F[b+16>>2]=f;F[b+20>>2]=c;f=d;d=i;c=h+8|0;d=c>>>0<8?d+1|0:d;if(c>>>0>f>>>0&(d|0)>=(g|0)|(d|0)>(g|0)){break a}F[b+16>>2]=c;F[b+20>>2]=d;if(!(e&1)){break a}d=O(e)^31;if(d-1>>>0>28){break a}F[a+8>>2]=d+1;d=-2<>2]=c;F[a+12>>2]=d^-1;F[a+24>>2]=c>>1;J[a+20>>2]=M(2)/M(c|0);j=Aa(a+96|0,b)}return j|0}function bc(a,b){var c=0;c=F[b+4>>2];F[a>>2]=F[b>>2];F[a+4>>2]=c;c=F[b+60>>2];F[a+56>>2]=F[b+56>>2];F[a+60>>2]=c;c=F[b+52>>2];F[a+48>>2]=F[b+48>>2];F[a+52>>2]=c;c=F[b+44>>2];F[a+40>>2]=F[b+40>>2];F[a+44>>2]=c;c=F[b+36>>2];F[a+32>>2]=F[b+32>>2];F[a+36>>2]=c;c=F[b+28>>2];F[a+24>>2]=F[b+24>>2];F[a+28>>2]=c;c=F[b+20>>2];F[a+16>>2]=F[b+16>>2];F[a+20>>2]=c;c=F[b+12>>2];F[a+8>>2]=F[b+8>>2];F[a+12>>2]=c;F[a+88>>2]=0;F[a+64>>2]=0;F[a+68>>2]=0;F[a+72>>2]=0;F[a+76>>2]=0;D[a+77|0]=0;D[a+78|0]=0;D[a+79|0]=0;D[a+80|0]=0;D[a+81|0]=0;D[a+82|0]=0;D[a+83|0]=0;D[a+84|0]=0;return a}function ac(a,b){var c=0,d=0,e=0,f=0,g=0;a:{if(F[a+64>>2]){break a}c=ka(32);F[c+16>>2]=0;F[c+20>>2]=0;F[c+8>>2]=0;F[c>>2]=0;F[c+4>>2]=0;F[c+24>>2]=0;F[c+28>>2]=0;d=F[a+64>>2];F[a+64>>2]=c;if(!d){break a}c=F[d>>2];if(c){F[d+4>>2]=c;ja(c)}ja(d)}d=F[a+64>>2];c=F[a+28>>2]-1|0;if(c>>>0<=10){c=F[(c<<2)+10148>>2]}else{c=-1}c=L(c,G[a+24|0]);f=c>>31;g=md(d,0,ki(c,f,b,0),_);if(g){d=F[a+64>>2];F[a>>2]=d;e=F[d+20>>2];F[a+8>>2]=F[d+16>>2];F[a+12>>2]=e;e=F[d+24>>2];d=F[d+28>>2];F[a+48>>2]=0;F[a+52>>2]=0;F[a+40>>2]=c;F[a+44>>2]=f;F[a+16>>2]=e;F[a+20>>2]=d;F[a+80>>2]=b}return g}function Af(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;a=F[b+100>>2];b=F[b+96>>2];h=a-b|0;a:{if((h|0)!=(c|0)|(a|0)==(b|0)){break a}g=(c|0)/12|0;e=g>>>0<=1?1:g;j=e&1;a=0;if(g>>>0>=2){k=e&-2;g=0;while(1){e=L(a,12);i=e+d|0;f=b+e|0;F[i>>2]=F[f>>2];F[(e|4)+d>>2]=F[f+4>>2];F[i+8>>2]=F[f+8>>2];f=L(a|1,12);e=f+d|0;f=b+f|0;F[e>>2]=F[f>>2];F[e+4>>2]=F[f+4>>2];F[e+8>>2]=F[f+8>>2];a=a+2|0;g=g+2|0;if((k|0)!=(g|0)){continue}break}}if(!j){break a}e=d;d=L(a,12);a=e+d|0;b=b+d|0;F[a>>2]=F[b>>2];F[a+4>>2]=F[b+4>>2];F[a+8>>2]=F[b+8>>2]}return(c|0)==(h|0)|0}function Kh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;c=F[b+8>>2];d=F[b+12>>2];g=d;d=F[b+20>>2];i=d;h=F[b+16>>2];f=h+4|0;d=f>>>0<4?d+1|0:d;a:{if(c>>>0>>0&(d|0)>=(g|0)|(d|0)>(g|0)){break a}e=h+F[b>>2]|0;e=G[e|0]|G[e+1|0]<<8|(G[e+2|0]<<16|G[e+3|0]<<24);F[b+16>>2]=f;F[b+20>>2]=d;f=c;c=i;d=h+8|0;c=d>>>0<8?c+1|0:c;if(d>>>0>f>>>0&(c|0)>=(g|0)|(c|0)>(g|0)){break a}F[b+16>>2]=d;F[b+20>>2]=c;if(!(e&1)){break a}b=O(e)^31;if(b-1>>>0>28){break a}j=1;F[a+8>>2]=b+1;b=-2<>2]=c;F[a+12>>2]=b^-1;F[a+24>>2]=c>>1;J[a+20>>2]=M(2)/M(c|0)}return j|0}function Ya(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;f=a+4|0;a=F[a+4>>2];a:{b:{if(!a){break b}d=G[b+11|0];c=d<<24>>24<0;g=c?F[b>>2]:b;d=c?F[b+4>>2]:d;b=f;while(1){e=G[a+27|0];c=e<<24>>24<0;e=c?F[a+20>>2]:e;h=e>>>0>d>>>0;i=h?d:e;c:{if(i){c=sa(c?F[a+16>>2]:a+16|0,g,i);if(c){break c}}c=d>>>0>e>>>0?-1:h}c=(c|0)<0;b=c?b:a;a=F[(c?a+4|0:a)>>2];if(a){continue}break}if((b|0)==(f|0)){break b}c=G[b+27|0];a=c<<24>>24<0;d:{c=a?F[b+20>>2]:c;e=c>>>0>>0?c:d;if(e){a=sa(g,a?F[b+16>>2]:b+16|0,e);if(a){break d}}if(c>>>0>d>>>0){break b}break a}if((a|0)>=0){break a}}b=f}return b}function Oe(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;if(La(a,F[b+8>>2],e)){if(!(F[b+28>>2]==1|F[b+4>>2]!=(c|0))){F[b+28>>2]=d}return}a:{if(La(a,F[b>>2],e)){if(!(F[b+16>>2]!=(c|0)&F[b+20>>2]!=(c|0))){if((d|0)!=1){break a}F[b+32>>2]=1;return}F[b+32>>2]=d;b:{if(F[b+44>>2]==4){break b}E[b+52>>1]=0;a=F[a+8>>2];$[F[F[a>>2]+20>>2]](a,b,c,c,1,e);if(G[b+53|0]){F[b+44>>2]=3;if(!G[b+52|0]){break b}break a}F[b+44>>2]=4}F[b+20>>2]=c;F[b+40>>2]=F[b+40>>2]+1;if(F[b+36>>2]!=1|F[b+24>>2]!=2){break a}D[b+54|0]=1;return}a=F[a+8>>2];$[F[F[a>>2]+24>>2]](a,b,c,d,e)}}function Ig(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0;f=ka(64);c=ka(12);F[c+8>>2]=F[F[a+4>>2]+80>>2];F[c>>2]=9968;F[c+4>>2]=0;f=yc(f,c);a:{b:{if((b|0)<0){c=f;break b}h=a+8|0;c=F[a+12>>2];e=F[a+8>>2];g=c-e>>2;c:{if((g|0)>(b|0)){break c}d=b+1|0;if(b>>>0>=g>>>0){Pb(h,d-g|0);break c}if(d>>>0>=g>>>0){break c}e=e+(d<<2)|0;if((e|0)!=(c|0)){while(1){c=c-4|0;d=F[c>>2];F[c>>2]=0;if(d){$[F[F[d>>2]+4>>2]](d)}if((c|0)!=(e|0)){continue}break}}F[a+12>>2]=e}a=F[h>>2]+(b<<2)|0;c=F[a>>2];F[a>>2]=f;if(!c){break a}}$[F[F[c>>2]+4>>2]](c)}return(b^-1)>>>31|0}function we(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0;c=F[a+60>>2];a:{if(!c){break a}F[c+4>>2]=a+48;if(!($[F[F[c>>2]+12>>2]](c)|0)){break a}b:{c=$[F[F[a>>2]+24>>2]](a)|0;if((c|0)<=0){break b}while(1){c:{f=F[($[F[F[a>>2]+28>>2]](a)|0)+4>>2];g=$[F[F[a>>2]+20>>2]](a,d)|0;e=F[a+60>>2];if(!($[F[F[e>>2]+8>>2]](e,F[F[f+8>>2]+(g<<2)>>2])|0)){break c}d=d+1|0;if((c|0)!=(d|0)){continue}break b}break}return 0}d=0;if(!($[F[F[a>>2]+36>>2]](a,b)|0)){break a}if(!($[F[F[a>>2]+40>>2]](a,b)|0)){break a}d=$[F[F[a>>2]+44>>2]](a)|0}return d|0}function Id(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;c=F[a+216>>2];if((c|0)!=F[a+220>>2]){while(1){a:{c=F[L(e,144)+c>>2];if((c|0)<0){break a}d=F[a+4>>2];f=F[d+8>>2];if((c|0)>=F[d+12>>2]-f>>2){break a}d=0;c=F[(c<<2)+f>>2];if(($[F[F[c>>2]+24>>2]](c)|0)<=0){break a}while(1){if(($[F[F[c>>2]+20>>2]](c,d)|0)!=(b|0)){d=d+1|0;if(($[F[F[c>>2]+24>>2]](c)|0)>(d|0)){continue}break a}break}a=F[a+216>>2]+L(e,144)|0;return(G[a+100|0]?a+4|0:0)|0}e=e+1|0;c=F[a+216>>2];if(e>>>0<(F[a+220>>2]-c|0)/144>>>0){continue}break}}return 0}function nd(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;c=F[a+8>>2];d=F[a+4>>2];if(c-d>>2>>>0>=b>>>0){if(b){b=b<<2;d=ma(d,0,b)+b|0}F[a+4>>2]=d;return}a:{f=F[a>>2];g=d-f>>2;e=g+b|0;if(e>>>0<1073741824){c=c-f|0;h=c>>>1|0;e=c>>>0>=2147483644?1073741823:e>>>0>>0?h:e;if(e){if(e>>>0>=1073741824){break a}i=ka(e<<2)}c=(g<<2)+i|0;b=b<<2;b=ma(c,0,b)+b|0;if((d|0)!=(f|0)){while(1){c=c-4|0;d=d-4|0;F[c>>2]=F[d>>2];if((d|0)!=(f|0)){continue}break}}F[a+8>>2]=(e<<2)+i;F[a+4>>2]=b;F[a>>2]=c;if(f){ja(f)}return}na();v()}oa();v()}function bb(a){var b=0,c=0,d=0,e=0,f=0;d=F[a+8>>2];a:{if(G[d+84|0]){break a}b=F[a+16>>2];if(!b|!G[b+84|0]){break a}c=F[d+72>>2];e=F[d+68>>2];D[b+84|0]=0;c=c-e>>2;f=F[b+68>>2];e=F[b+72>>2]-f>>2;b:{if(c>>>0>e>>>0){ab(b+68|0,c-e|0,2004);d=F[a+8>>2];break b}if(c>>>0>=e>>>0){break b}F[b+72>>2]=f+(c<<2)}if(G[d+84|0]){break a}c=F[d+68>>2];if((c|0)==F[d+72>>2]){break a}e=F[F[a+16>>2]+68>>2];b=0;while(1){f=b<<2;F[f+e>>2]=F[c+f>>2];b=b+1|0;c=F[d+68>>2];if(b>>>0>2]-c>>2>>>0){continue}break}}return F[a+16>>2]}function Lf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;e=Z+-64|0;Z=e;f=Ja(e+8|0);F[f+16>>2]=0;F[f+20>>2]=0;F[f>>2]=b;F[f+8>>2]=c;F[f+12>>2]=0;b=e+48|0;Pd(b,a,f,d);F[a+24>>2]=F[e+48>>2];f=a+24|0;a:{if((f|0)==(b|0)){break a}b=a+28|0;c=e+48|4;g=G[e+63|0];d=g<<24>>24;if(D[a+39|0]>=0){if((d|0)>=0){a=F[c+4>>2];F[b>>2]=F[c>>2];F[b+4>>2]=a;F[b+8>>2]=F[c+8>>2];break a}qb(b,F[e+52>>2],F[e+56>>2]);break a}a=(d|0)<0;rb(b,a?F[e+52>>2]:c,a?F[e+56>>2]:g)}if(D[e+63|0]<0){ja(F[e+52>>2])}Z=e- -64|0;return f|0}function Jf(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0;a=Z-32|0;Z=a;a:{d=ya(c);if(d>>>0<2147483632){b:{c:{if(d>>>0>=11){e=(d|15)+1|0;f=ka(e);F[a+24>>2]=e|-2147483648;F[a+16>>2]=f;F[a+20>>2]=d;e=d+f|0;break c}D[a+27|0]=d;f=a+16|0;e=f+d|0;if(!d){break b}}la(f,c,d)}D[e|0]=0;D[a+4|0]=0;F[a>>2]=1701667182;D[a+11|0]=4;d=F[b+4>>2];c=-1;d:{if(!d){break d}d=Uc(d,a,a+16|0);c=-1;if(!d){break d}c=Pc(b,F[d+24>>2])}b=c;if(D[a+11|0]<0){ja(F[a>>2])}if(D[a+27|0]<0){ja(F[a+16>>2])}Z=a+32|0;break a}za();v()}return b|0}function Hd(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;c=F[a+216>>2];if((c|0)!=F[a+220>>2]){while(1){a:{c=F[L(e,144)+c>>2];if((c|0)<0){break a}d=F[a+4>>2];f=F[d+8>>2];if((c|0)>=F[d+12>>2]-f>>2){break a}d=0;c=F[(c<<2)+f>>2];if(($[F[F[c>>2]+24>>2]](c)|0)<=0){break a}while(1){if(($[F[F[c>>2]+20>>2]](c,d)|0)!=(b|0)){d=d+1|0;if(($[F[F[c>>2]+24>>2]](c)|0)>(d|0)){continue}break a}break}return(F[a+216>>2]+L(e,144)|0)+104|0}e=e+1|0;c=F[a+216>>2];if(e>>>0<(F[a+220>>2]-c|0)/144>>>0){continue}break}}return a+184|0}function Uf(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0;d=Z-16|0;Z=d;F[d+12>>2]=0;a:{e=ya(c);if(e>>>0<2147483632){b:{c:{if(e>>>0>=11){f=(e|15)+1|0;a=ka(f);F[d+8>>2]=f|-2147483648;F[d>>2]=a;F[d+4>>2]=e;f=a+e|0;break c}D[d+11|0]=e;f=d+e|0;a=d;if(!e){break b}}la(a,c,e)}D[f|0]=0;a=Ya(b,d);d:{if((a|0)==(b+4|0)){break d}b=F[a+32>>2];a=F[a+28>>2];if((b-a|0)!=4){break d}F[d+12>>2]=G[a|0]|G[a+1|0]<<8|(G[a+2|0]<<16|G[a+3|0]<<24)}a=F[d+12>>2];if(D[d+11|0]<0){ja(F[d>>2])}Z=d+16|0;break a}za();v()}return a|0}function Mf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;d=Z+-64|0;Z=d;e=Ja(d+8|0);F[e+16>>2]=0;F[e+20>>2]=0;F[e>>2]=b;F[e+8>>2]=c;F[e+12>>2]=0;b=d+48|0;Od(b);F[a+24>>2]=F[d+48>>2];f=a+24|0;a:{if((b|0)==(f|0)){break a}b=a+28|0;c=d+48|4;g=G[d+63|0];e=g<<24>>24;if(D[a+39|0]>=0){if((e|0)>=0){a=F[c+4>>2];F[b>>2]=F[c>>2];F[b+4>>2]=a;F[b+8>>2]=F[c+8>>2];break a}qb(b,F[d+52>>2],F[d+56>>2]);break a}a=(e|0)<0;rb(b,a?F[d+52>>2]:c,a?F[d+56>>2]:g)}if(D[d+63|0]<0){ja(F[d+52>>2])}Z=d- -64|0;return f|0}function Ce(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0;e=1;a:{if(($[F[F[b>>2]+20>>2]](b)|0)<=0){break a}while(1){e=0;d=Qc(F[F[a+4>>2]+4>>2],$[F[F[b>>2]+24>>2]](b,f)|0);if((d|0)==-1){break a}g=F[a+4>>2];c=0;b:{if((d|0)<0){break b}h=F[g+4>>2];if((d|0)>=F[h+12>>2]-F[h+8>>2]>>2){break b}c=F[F[g+8>>2]+(F[F[g+20>>2]+(d<<2)>>2]<<2)>>2];c=$[F[F[c>>2]+32>>2]](c,d)|0}if(!c){break a}if(!($[F[F[b>>2]+28>>2]](b,c)|0)){break a}e=1;f=f+1|0;if(($[F[F[b>>2]+20>>2]](b)|0)>(f|0)){continue}break}}return e|0}function Db(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;a:{c=F[a+4>>2];e=F[a>>2];d=c-e|0;b:{if(d>>>0>>0){g=b-d|0;f=F[a+8>>2];if(g>>>0<=f-c>>>0){h=a,i=ma(c,0,g)+g|0,F[h+4>>2]=i;break b}if((b|0)<0){break a}c=f-e|0;f=c<<1;c=c>>>0>=1073741823?2147483647:b>>>0>>0?f:b;f=ka(c);ma(f+d|0,0,g);d=pa(f,e,d);F[a+8>>2]=d+c;F[a+4>>2]=b+d;F[a>>2]=d;if(!e){break b}ja(e);break b}if(b>>>0>=d>>>0){break b}F[a+4>>2]=b+e}b=F[a+28>>2];c=b;d=b+1|0;b=F[a+24>>2]+1|0;e=b?c:d;F[a+24>>2]=b;F[a+28>>2]=e;return}na();v()}function Ma(a,b){var c=0,d=0,e=0,f=0,g=0,h=0;e=F[a+4>>2];if((e|0)!=F[a+8>>2]){F[e>>2]=F[b>>2];F[a+4>>2]=e+4;return}a:{g=F[a>>2];f=e-g|0;c=f>>2;d=c+1|0;if(d>>>0<1073741824){h=c<<2;c=f>>>1|0;c=f>>>0>=2147483644?1073741823:c>>>0>d>>>0?c:d;if(c){if(c>>>0>=1073741824){break a}f=ka(c<<2)}else{f=0}d=h+f|0;F[d>>2]=F[b>>2];b=d+4|0;if((e|0)!=(g|0)){while(1){d=d-4|0;e=e-4|0;F[d>>2]=F[e>>2];if((e|0)!=(g|0)){continue}break}}F[a+8>>2]=f+(c<<2);F[a+4>>2]=b;F[a>>2]=d;if(g){ja(g)}return}na();v()}oa();v()}function va(a){F[a>>2]=-1;F[a+4>>2]=0;F[a+8>>2]=0;F[a+32>>2]=0;F[a+36>>2]=0;D[a+28|0]=1;F[a+20>>2]=0;F[a+24>>2]=0;F[a+12>>2]=0;F[a+16>>2]=0;F[a+40>>2]=0;F[a+44>>2]=0;F[a+48>>2]=0;F[a+52>>2]=0;F[a+56>>2]=0;F[a+60>>2]=0;F[a+64>>2]=0;F[a+68>>2]=0;F[a+76>>2]=0;F[a+80>>2]=0;F[a+84>>2]=0;F[a+88>>2]=0;F[a+92>>2]=0;F[a+96>>2]=0;F[a+72>>2]=a+4;F[a+104>>2]=0;F[a+108>>2]=0;D[a+100|0]=1;F[a+112>>2]=0;F[a+116>>2]=0;F[a+120>>2]=0;F[a+124>>2]=0;F[a+128>>2]=0;F[a+132>>2]=0;F[a+136>>2]=0;F[a+140>>2]=0}function Hb(a,b){var c=0,d=0,e=0,f=0;d=F[a+12>>2];c=F[a+16>>2]-d>>2;a:{if(c>>>0>>0){qa(a+12|0,b-c|0);break a}if(b>>>0>=c>>>0){break a}F[a+16>>2]=d+(b<<2)}b:{c=F[a>>2];c:{if(F[a+8>>2]-c>>2>>>0>=b>>>0){break c}if(b>>>0>=1073741824){break b}d=F[a+4>>2];e=b<<2;b=ka(e);e=b+e|0;f=b+(d-c&-4)|0;b=f;if((c|0)!=(d|0)){while(1){b=b-4|0;d=d-4|0;F[b>>2]=F[d>>2];if((c|0)!=(d|0)){continue}break}}F[a+8>>2]=e;F[a+4>>2]=f;F[a>>2]=b;if(!c){break c}ja(c)}return}na();v()}function tb(a){a=a|0;var b=0,c=0,d=0;F[a>>2]=10300;b=F[a+68>>2];if(b){F[a+72>>2]=b;ja(b)}b=F[a+56>>2];if(b){F[a+60>>2]=b;ja(b)}b=F[a+44>>2];if(b){F[a+48>>2]=b;ja(b)}b=F[a+32>>2];if(b){F[a+36>>2]=b;ja(b)}b=F[a+20>>2];if(b){F[a+24>>2]=b;ja(b)}b=F[a+8>>2];if(b){d=b;c=F[a+12>>2];if((b|0)!=(c|0)){while(1){c=c-4|0;d=F[c>>2];F[c>>2]=0;if(d){xa(d)}if((b|0)!=(c|0)){continue}break}d=F[a+8>>2]}F[a+12>>2]=b;ja(d)}b=F[a+4>>2];F[a+4>>2]=0;if(b){ic(b)}return a|0}function qa(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;e=F[a+8>>2];c=F[a+4>>2];if(e-c>>2>>>0>=b>>>0){if(b){b=b<<2;c=ma(c,0,b)+b|0}F[a+4>>2]=c;return}a:{f=c;c=F[a>>2];g=f-c|0;h=g>>2;d=h+b|0;if(d>>>0<1073741824){e=e-c|0;f=e>>>1|0;d=e>>>0>=2147483644?1073741823:d>>>0>>0?f:d;if(d){if(d>>>0>=1073741824){break a}i=ka(d<<2)}b=b<<2;e=ma((h<<2)+i|0,0,b);f=d<<2;d=pa(i,c,g);F[a+8>>2]=f+d;F[a+4>>2]=b+e;F[a>>2]=d;if(c){ja(c)}return}na();v()}oa();v()}function gc(a,b){var c=0,d=0,e=0,f=0;c=a+4|0;a=Ya(a,b);a:{if((c|0)==(a|0)){break a}b=a+28|0;b=D[a+39|0]<0?F[b>>2]:b;while(1){a=b;b=a+1|0;c=D[a|0];if((c|0)==32|c-9>>>0<5){continue}break}b:{c:{d:{c=D[a|0];switch(c-43|0){case 0:break c;case 2:break d;default:break b}}e=1}c=D[b|0];a=b}if(c-48>>>0<10){while(1){d=(L(d,10)-D[a|0]|0)+48|0;b=D[a+1|0];a=a+1|0;if(b-48>>>0<10){continue}break}}a=e?d:0-d|0;if((a|0)==-1){break a}f=(a|0)!=0}return f}function Qa(a,b){var c=0,d=0,e=0,f=0,g=0,h=0;a=F[a>>2];c=F[a+4>>2];e=F[a+8>>2];if(c>>>0>>0){F[c>>2]=F[b>>2];F[a+4>>2]=c+4;return}a:{d=c;c=F[a>>2];g=d-c|0;d=g>>2;f=d+1|0;if(f>>>0<1073741824){h=d<<2;e=e-c|0;d=e>>>1|0;f=e>>>0>=2147483644?1073741823:f>>>0>>0?d:f;if(f){if(f>>>0>=1073741824){break a}e=ka(f<<2)}else{e=0}d=h+e|0;F[d>>2]=F[b>>2];b=pa(e,c,g);F[a+8>>2]=b+(f<<2);F[a+4>>2]=d+4;F[a>>2]=b;if(c){ja(c)}return}na();v()}oa();v()}function db(a,b,c){var d=0,e=0,f=0,g=0,h=0;f=Z-16|0;Z=f;d=Z-32|0;Z=d;e=Z-16|0;Z=e;F[e+12>>2]=b;F[e+8>>2]=b+c;F[d+24>>2]=F[e+12>>2];F[d+28>>2]=F[e+8>>2];Z=e+16|0;c=Z-16|0;Z=c;h=F[d+28>>2];e=F[d+24>>2];g=h-e|0;if((e|0)!=(h|0)){pa(a,e,g)}F[c+12>>2]=e+g;F[c+8>>2]=a+g;F[d+16>>2]=F[c+12>>2];F[d+20>>2]=F[c+8>>2];Z=c+16|0;F[d+12>>2]=(F[d+16>>2]-b|0)+b;F[d+8>>2]=(F[d+20>>2]-a|0)+a;F[f+8>>2]=F[d+12>>2];F[f+12>>2]=F[d+8>>2];Z=d+32|0;Z=f+16|0}function _a(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;e=F[a+8>>2];c=F[a+4>>2];if(e-c>>3>>>0>=b>>>0){if(b){b=b<<3;c=ma(c,0,b)+b|0}F[a+4>>2]=c;return}a:{f=c;c=F[a>>2];g=f-c|0;h=g>>3;d=h+b|0;if(d>>>0<536870912){e=e-c|0;f=e>>>2|0;d=e>>>0>=2147483640?536870911:d>>>0>>0?f:d;if(d){if(d>>>0>=536870912){break a}i=ka(d<<3)}b=b<<3;e=ma((h<<3)+i|0,0,b);f=d<<3;d=pa(i,c,g);F[a+8>>2]=f+d;F[a+4>>2]=b+e;F[a>>2]=d;if(c){ja(c)}return}na();v()}oa();v()}function re(a){a=a|0;var b=0,c=0,d=0;F[a>>2]=2016;b=F[a+60>>2];F[a+60>>2]=0;if(b){$[F[F[b>>2]+4>>2]](b)}b=F[a+48>>2];if(b){F[a+52>>2]=b;ja(b)}d=F[a+36>>2];if(d){c=F[a+40>>2];b=d;if((c|0)!=(b|0)){while(1){c=c-4|0;b=F[c>>2];F[c>>2]=0;if(b){$[F[F[b>>2]+4>>2]](b)}if((c|0)!=(d|0)){continue}break}b=F[a+36>>2]}F[a+40>>2]=d;ja(b)}F[a>>2]=1776;b=F[a+16>>2];if(b){F[a+20>>2]=b;ja(b)}b=F[a+4>>2];if(b){F[a+8>>2]=b;ja(b)}return a|0}function qe(a){a=a|0;var b=0,c=0,d=0;F[a>>2]=2016;b=F[a+60>>2];F[a+60>>2]=0;if(b){$[F[F[b>>2]+4>>2]](b)}b=F[a+48>>2];if(b){F[a+52>>2]=b;ja(b)}d=F[a+36>>2];if(d){c=F[a+40>>2];b=d;if((c|0)!=(b|0)){while(1){c=c-4|0;b=F[c>>2];F[c>>2]=0;if(b){$[F[F[b>>2]+4>>2]](b)}if((c|0)!=(d|0)){continue}break}b=F[a+36>>2]}F[a+40>>2]=d;ja(b)}F[a>>2]=1776;b=F[a+16>>2];if(b){F[a+20>>2]=b;ja(b)}b=F[a+4>>2];if(b){F[a+8>>2]=b;ja(b)}ja(a)}function Eg(a){a=a|0;var b=0,c=0,d=0,e=0,f=0;a:{b=F[a+8>>2];b:{if((b|0)<0){break b}c=F[a+4>>2];e=F[c>>2];d=F[c+4>>2]-e>>2;c:{if(d>>>0>>0){nd(c,b-d|0);f=F[a+8>>2];break c}f=b;if(b>>>0>=d>>>0){break c}F[c+4>>2]=e+(b<<2);f=b}d=f;if((d|0)<=0){break b}a=F[a+4>>2];c=F[a>>2];e=F[a+4>>2]-c>>2;a=0;while(1){if((a|0)==(e|0)){break a}F[c+(a<<2)>>2]=a;a=a+1|0;if((d|0)!=(a|0)){continue}break}}return(b^-1)>>>31|0}ta();v()}function fh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;d=Z-16|0;Z=d;e=F[a+4>>2];a:{if((e|0)==-1){break a}c=F[b+20>>2];if(!!F[b+16>>2]&(c|0)>=0|(c|0)>0){break a}pb(b,F[b+4>>2],F[a+8>>2],F[a+12>>2]);c=F[b+20>>2];if(!!F[b+16>>2]&(c|0)>=0|(c|0)>0){break a}pb(b,F[b+4>>2],a+20|0,a+24|0);c=F[b+20>>2];f=F[b+16>>2];D[d+15|0]=F[a+4>>2];if(!!f&(c|0)>=0|(c|0)>0){break a}pb(b,F[b+4>>2],d+15|0,d+16|0)}Z=d+16|0;return(e|0)!=-1|0}function kd(a,b){var c=0,d=0,e=0,f=0,g=0,h=0;e=F[a+8>>2];c=F[a+4>>2];if(e-c>>1>>>0>=b>>>0){if(b){b=b<<1;c=ma(c,0,b)+b|0}F[a+4>>2]=c;return}a:{f=c;c=F[a>>2];g=f-c|0;f=g>>1;d=f+b|0;if((d|0)>=0){e=e-c|0;d=e>>>0>=2147483646?2147483647:d>>>0>>0?e:d;if(d){if((d|0)<0){break a}h=ka(d<<1)}b=b<<1;e=ma((f<<1)+h|0,0,b);f=d<<1;d=pa(h,c,g);F[a+8>>2]=f+d;F[a+4>>2]=b+e;F[a>>2]=d;if(c){ja(c)}return}na();v()}oa();v()}function of(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;d=Z-16|0;Z=d;Pd(d,a,b,c);F[a+24>>2]=F[d>>2];e=a+24|0;a:{if((e|0)==(d|0)){break a}b=a+28|0;c=d|4;f=G[d+15|0];g=f<<24>>24;if(D[a+39|0]>=0){if((g|0)>=0){a=F[c+4>>2];F[b>>2]=F[c>>2];F[b+4>>2]=a;F[b+8>>2]=F[c+8>>2];break a}qb(b,F[d+4>>2],F[d+8>>2]);break a}a=(g|0)<0;rb(b,a?F[d+4>>2]:c,a?F[d+8>>2]:f)}if(D[d+15|0]<0){ja(F[d+4>>2])}Z=d+16|0;return e|0}function ra(a,b,c){var d=0,e=0,f=0,g=0;e=Z-16|0;Z=e;a:{b:{if(c>>>0<11){d=a;D[a+11|0]=G[a+11|0]&128|c;D[a+11|0]=G[a+11|0]&127;break b}if(c>>>0>2147483631){break a}g=e+8|0;if(c>>>0>=11){f=c+16&-16;d=f-1|0;d=(d|0)==11?f:d}else{d=10}sb(g,d+1|0);d=F[e+8>>2];F[a>>2]=d;F[a+8>>2]=F[a+8>>2]&-2147483648|F[e+12>>2]&2147483647;F[a+8>>2]=F[a+8>>2]|-2147483648;F[a+4>>2]=c}db(d,b,c+1|0);Z=e+16|0;return}za();v()}function pf(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;b=Z-16|0;Z=b;Od(b);F[a+24>>2]=F[b>>2];e=a+24|0;a:{if((e|0)==(b|0)){break a}c=a+28|0;d=b|4;f=G[b+15|0];g=f<<24>>24;if(D[a+39|0]>=0){if((g|0)>=0){a=F[d+4>>2];F[c>>2]=F[d>>2];F[c+4>>2]=a;F[c+8>>2]=F[d+8>>2];break a}qb(c,F[b+4>>2],F[b+8>>2]);break a}a=(g|0)<0;rb(c,a?F[b+4>>2]:d,a?F[b+8>>2]:f)}if(D[b+15|0]<0){ja(F[b+4>>2])}Z=b+16|0;return e|0}function Rf(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;d=Z-16|0;Z=d;a:{e=ya(c);if(e>>>0<2147483632){b:{c:{if(e>>>0>=11){g=(e|15)+1|0;f=ka(g);F[d+8>>2]=g|-2147483648;F[d>>2]=f;F[d+4>>2]=e;g=e+f|0;break c}D[d+11|0]=e;g=d+e|0;f=d;if(!e){break b}}la(f,c,e)}D[g|0]=0;f=a+16|0;c=Sc(b,d,f);b=F[a+16>>2];a=D[a+27|0];if(D[d+11|0]<0){ja(F[d>>2])}Z=d+16|0;a=c?(a|0)<0?b:f:0;break a}za();v()}return a|0}function Yb(a,b){var c=0,d=0,e=0;c=F[a+4>>2];d=c+b|0;F[a+4>>2]=d;if(!((d-1^c-1)>>>0<32?c:0)){F[F[a>>2]+((d>>>0>=33?d-1>>>5|0:0)<<2)>>2]=0}a:{if(!b){break a}a=F[a>>2]+(c>>>3&536870908)|0;c=c&31;if(c){d=32-c|0;e=b>>>0>d>>>0?d:b;F[a>>2]=F[a>>2]&(-1<>>d-e^-1);b=b-e|0;a=a+4|0}c=b>>>5|0;if(b>>>0>=32){ma(a,0,c<<2)}if((b&-32)==(b|0)){break a}a=(c<<2)+a|0;F[a>>2]=F[a>>2]&(-1>>>32-(b&31)^-1)}}function ld(a,b,c){var d=0,e=0,f=0,g=0;a:{if(a>>>0>10){break a}d=F[c+20>>2];f=F[c+12>>2];e=F[c+16>>2];if((d|0)>=(f|0)&e>>>0>=I[c+8>>2]|(d|0)>(f|0)){break a}f=D[e+F[c>>2]|0];e=e+1|0;d=e?d:d+1|0;F[c+16>>2]=e;F[c+20>>2]=d;d=f;b:{if((d|0)<0){if(!ld(a+1|0,b,c)){break a}a=F[b>>2];d=d&127|a<<7;a=F[b+4>>2]<<7|a>>>25;break b}d=d&255;a=0}F[b>>2]=d;F[b+4>>2]=a;g=1}return g}function Sa(a,b,c){var d=0,e=0,f=0,g=0;a:{if(a>>>0>10){break a}d=F[c+20>>2];f=F[c+12>>2];e=F[c+16>>2];if((d|0)>=(f|0)&e>>>0>=I[c+8>>2]|(d|0)>(f|0)){break a}f=D[e+F[c>>2]|0];e=e+1|0;d=e?d:d+1|0;F[c+16>>2]=e;F[c+20>>2]=d;d=f;b:{if((d|0)<0){if(!Sa(a+1|0,b,c)){break a}a=F[b>>2];d=d&127|a<<7;a=F[b+4>>2]<<7|a>>>25;break b}d=d&255;a=0}F[b>>2]=d;F[b+4>>2]=a;g=1}return g}function Ne(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;if(La(a,F[b+8>>2],e)){if(!(F[b+28>>2]==1|F[b+4>>2]!=(c|0))){F[b+28>>2]=d}return}a:{if(!La(a,F[b>>2],e)){break a}if(!(F[b+16>>2]!=(c|0)&F[b+20>>2]!=(c|0))){if((d|0)!=1){break a}F[b+32>>2]=1;return}F[b+20>>2]=c;F[b+32>>2]=d;F[b+40>>2]=F[b+40>>2]+1;if(!(F[b+36>>2]!=1|F[b+24>>2]!=2)){D[b+54|0]=1}F[b+44>>2]=4}}function jg(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0;e=Z+-64|0;Z=e;d=$[F[F[a>>2]+44>>2]](a,b)|0;a=$[F[F[a>>2]+40>>2]](a,b)|0;f=kb(e);g=F[b+56>>2];h=d&255;i=a;a=a-1|0;if(a>>>0<=10){a=F[(a<<2)+10148>>2]}else{a=-1}d=L(a,d);cc(f,g,h,i,0,d,d>>31);a=bc(ka(96),f);ac(a,c);D[a+84|0]=1;F[a+72>>2]=F[a+68>>2];F[a+60>>2]=F[b+60>>2];Z=e- -64|0;return a|0}function rh(a){a=a|0;var b=0,c=0,d=0;F[a>>2]=8176;b=F[a+48>>2];F[a+48>>2]=0;if(b){$[F[F[b>>2]+4>>2]](b)}F[a>>2]=10032;b=F[a+20>>2];if(b){F[a+24>>2]=b;ja(b)}d=F[a+8>>2];if(d){c=F[a+12>>2];b=d;if((c|0)!=(b|0)){while(1){c=c-4|0;b=F[c>>2];F[c>>2]=0;if(b){$[F[F[b>>2]+4>>2]](b)}if((c|0)!=(d|0)){continue}break}b=F[a+8>>2]}F[a+12>>2]=d;ja(b)}return a|0}function Dc(a,b,c,d){D[a+53|0]=1;a:{if(F[a+4>>2]!=(c|0)){break a}D[a+52|0]=1;c=F[a+16>>2];b:{if(!c){F[a+36>>2]=1;F[a+24>>2]=d;F[a+16>>2]=b;if((d|0)!=1){break a}if(F[a+48>>2]==1){break b}break a}if((b|0)==(c|0)){c=F[a+24>>2];if((c|0)==2){F[a+24>>2]=d;c=d}if(F[a+48>>2]!=1){break a}if((c|0)==1){break b}break a}F[a+36>>2]=F[a+36>>2]+1}D[a+54|0]=1}}function qh(a){a=a|0;var b=0,c=0,d=0;F[a>>2]=8176;b=F[a+48>>2];F[a+48>>2]=0;if(b){$[F[F[b>>2]+4>>2]](b)}F[a>>2]=10032;b=F[a+20>>2];if(b){F[a+24>>2]=b;ja(b)}d=F[a+8>>2];if(d){c=F[a+12>>2];b=d;if((c|0)!=(b|0)){while(1){c=c-4|0;b=F[c>>2];F[c>>2]=0;if(b){$[F[F[b>>2]+4>>2]](b)}if((c|0)!=(d|0)){continue}break}b=F[a+8>>2]}F[a+12>>2]=d;ja(b)}ja(a)}function Se(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;e=Z+-64|0;Z=e;d=1;a:{if(La(a,b,0)){break a}d=0;if(!b){break a}b=Fc(b,11068);d=0;if(!b){break a}d=e+8|0;ma(d|4,0,52);F[e+56>>2]=1;F[e+20>>2]=-1;F[e+16>>2]=a;F[e+8>>2]=b;$[F[F[b>>2]+28>>2]](b,d,F[c>>2],1);a=F[e+32>>2];if((a|0)==1){F[c>>2]=F[e+24>>2]}d=(a|0)==1}Z=e- -64|0;return d|0}function Fd(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=Z-16|0;Z=d;F[a+4>>2]=b;b=F[b+64>>2];e=F[b>>2];b=F[b+4>>2];D[d+15|0]=0;Ea(a+24|0,(b-e>>2>>>0)/3|0,d+15|0);b=F[a+4>>2];e=F[b+56>>2];b=F[b+52>>2];D[d+14|0]=0;Ea(a+36|0,e-b>>2,d+14|0);b=F[c+12>>2];F[a+16>>2]=F[c+8>>2];F[a+20>>2]=b;b=F[c+4>>2];F[a+8>>2]=F[c>>2];F[a+12>>2]=b;Z=d+16|0}function zf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;a=Z-16|0;Z=a;f=D[b+24|0];e=F[2555];F[a+8>>2]=F[2554];F[a+12>>2]=e;e=F[2553];F[a>>2]=F[2552];F[a+4>>2]=e;e=lb(b,c,f,a);if(e){b=0;if(f){c=(f&255)<<2;b=ka(c);g=la(b,a,c)+c|0}c=F[d>>2];if(c){F[d+4>>2]=c;ja(c)}F[d+8>>2]=g;F[d+4>>2]=g;F[d>>2]=b}Z=a+16|0;return e|0}function wd(a,b){var c=0,d=0;a:{c=F[a+4>>2];d=F[a+8>>2];if((c|0)==d<<5){if((c+1|0)<0){break a}if(c>>>0<=1073741822){d=d<<6;c=(c&-32)+32|0;c=c>>>0>>0?d:c}else{c=2147483647}$a(a,c);c=F[a+4>>2]}F[a+4>>2]=c+1;d=1<>2]+(c>>>3&536870908)|0;if(G[b|0]){F[a>>2]=d|F[a>>2];return}F[a>>2]=F[a>>2]&(d^-1);return}na();v()}function Zb(a){var b=0;F[a>>2]=0;F[a+4>>2]=0;F[a+56>>2]=0;F[a+48>>2]=0;F[a+52>>2]=0;F[a+40>>2]=0;F[a+44>>2]=0;F[a+32>>2]=0;F[a+36>>2]=0;F[a+24>>2]=0;F[a+28>>2]=0;F[a+16>>2]=0;F[a+20>>2]=0;F[a+8>>2]=0;F[a+12>>2]=0;b=a- -64|0;F[b>>2]=0;F[b+4>>2]=0;F[a+72>>2]=0;F[a+76>>2]=0;F[a+80>>2]=0;F[a+84>>2]=0;F[a+60>>2]=a;return a}function ve(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0;f=$[F[F[a>>2]+24>>2]](a)|0;c=1;a:{if((f|0)<=0){break a}d=F[F[a+36>>2]>>2];g=a+48|0;c=0;if(!($[F[F[d>>2]+16>>2]](d,g,b)|0)){break a}while(1){e=e+1|0;if((f|0)!=(e|0)){d=F[F[a+36>>2]+(e<<2)>>2];if($[F[F[d>>2]+16>>2]](d,g,b)|0){continue}}break}c=(e|0)>=(f|0)}return c|0}function ue(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0;f=$[F[F[a>>2]+24>>2]](a)|0;c=1;a:{if((f|0)<=0){break a}d=F[F[a+36>>2]>>2];g=a+48|0;c=0;if(!($[F[F[d>>2]+20>>2]](d,g,b)|0)){break a}while(1){e=e+1|0;if((f|0)!=(e|0)){d=F[F[a+36>>2]+(e<<2)>>2];if($[F[F[d>>2]+20>>2]](d,g,b)|0){continue}}break}c=(e|0)>=(f|0)}return c|0}function bh(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=Z-16|0;Z=d;F[a+4>>2]=b;e=F[b>>2];b=F[b+4>>2];D[d+15|0]=0;Ea(a+24|0,(b-e>>2>>>0)/3|0,d+15|0);b=F[a+4>>2];e=F[b+28>>2];b=F[b+24>>2];D[d+14|0]=0;Ea(a+36|0,e-b>>2,d+14|0);b=F[c+12>>2];F[a+16>>2]=F[c+8>>2];F[a+20>>2]=b;b=F[c+4>>2];F[a+8>>2]=F[c>>2];F[a+12>>2]=b;Z=d+16|0}function hb(a,b,c){var d=0,e=0,f=0,g=0;a:{if(a>>>0>5){break a}d=F[c+20>>2];e=F[c+12>>2];f=F[c+16>>2];if((d|0)>=(e|0)&f>>>0>=I[c+8>>2]|(d|0)>(e|0)){break a}e=G[F[c>>2]+f|0];f=f+1|0;d=f?d:d+1|0;F[c+16>>2]=f;F[c+20>>2]=d;d=e<<24>>24;if((d|0)<0){if(!hb(a+1|0,b,c)){break a}e=d&127|F[b>>2]<<7}F[b>>2]=e;g=1}return g}function fb(a,b,c){var d=0,e=0,f=0,g=0;a:{if(a>>>0>5){break a}d=F[c+20>>2];e=F[c+12>>2];f=F[c+16>>2];if((d|0)>=(e|0)&f>>>0>=I[c+8>>2]|(d|0)>(e|0)){break a}e=G[F[c>>2]+f|0];f=f+1|0;d=f?d:d+1|0;F[c+16>>2]=f;F[c+20>>2]=d;d=e<<24>>24;if((d|0)<0){if(!fb(a+1|0,b,c)){break a}e=d&127|F[b>>2]<<7}F[b>>2]=e;g=1}return g}function Wb(a,b,c){var d=0,e=0,f=0,g=0;a:{if(a>>>0>5){break a}d=F[c+20>>2];e=F[c+12>>2];f=F[c+16>>2];if((d|0)>=(e|0)&f>>>0>=I[c+8>>2]|(d|0)>(e|0)){break a}e=G[F[c>>2]+f|0];f=f+1|0;d=f?d:d+1|0;F[c+16>>2]=f;F[c+20>>2]=d;d=e<<24>>24;if((d|0)<0){if(!Wb(a+1|0,b,c)){break a}e=d&127|F[b>>2]<<7}F[b>>2]=e;g=1}return g}function Ta(a,b,c){var d=0,e=0,f=0,g=0;a:{if(a>>>0>5){break a}d=F[c+20>>2];e=F[c+12>>2];f=F[c+16>>2];if((d|0)>=(e|0)&f>>>0>=I[c+8>>2]|(d|0)>(e|0)){break a}e=G[F[c>>2]+f|0];f=f+1|0;d=f?d:d+1|0;F[c+16>>2]=f;F[c+20>>2]=d;d=e<<24>>24;if((d|0)<0){if(!Ta(a+1|0,b,c)){break a}e=d&127|F[b>>2]<<7}F[b>>2]=e;g=1}return g}function Qd(a,b,c){var d=0,e=0,f=0,g=0;a:{if(a>>>0>5){break a}d=F[c+20>>2];e=F[c+12>>2];f=F[c+16>>2];if((d|0)>=(e|0)&f>>>0>=I[c+8>>2]|(d|0)>(e|0)){break a}e=G[F[c>>2]+f|0];f=f+1|0;d=f?d:d+1|0;F[c+16>>2]=f;F[c+20>>2]=d;d=e<<24>>24;if((d|0)<0){if(!Qd(a+1|0,b,c)){break a}e=d&127|F[b>>2]<<7}F[b>>2]=e;g=1}return g}function Oa(a,b,c){var d=0,e=0,f=0,g=0;a:{if(a>>>0>5){break a}d=F[c+20>>2];e=F[c+12>>2];f=F[c+16>>2];if((d|0)>=(e|0)&f>>>0>=I[c+8>>2]|(d|0)>(e|0)){break a}e=G[F[c>>2]+f|0];f=f+1|0;d=f?d:d+1|0;F[c+16>>2]=f;F[c+20>>2]=d;d=e<<24>>24;if((d|0)<0){if(!Oa(a+1|0,b,c)){break a}e=d&127|F[b>>2]<<7}F[b>>2]=e;g=1}return g}function Da(a,b,c){var d=0,e=0,f=0,g=0;a:{if(a>>>0>5){break a}d=F[c+20>>2];e=F[c+12>>2];f=F[c+16>>2];if((d|0)>=(e|0)&f>>>0>=I[c+8>>2]|(d|0)>(e|0)){break a}e=G[F[c>>2]+f|0];f=f+1|0;d=f?d:d+1|0;F[c+16>>2]=f;F[c+20>>2]=d;d=e<<24>>24;if((d|0)<0){if(!Da(a+1|0,b,c)){break a}e=d&127|F[b>>2]<<7}F[b>>2]=e;g=1}return g}function sa(a,b,c){var d=0,e=0;a:{b:{if(c>>>0>=4){if((a|b)&3){break b}while(1){if(F[a>>2]!=F[b>>2]){break b}b=b+4|0;a=a+4|0;c=c-4|0;if(c>>>0>3){continue}break}}if(!c){break a}}while(1){d=G[a|0];e=G[b|0];if((d|0)==(e|0)){b=b+1|0;a=a+1|0;c=c-1|0;if(c){continue}break a}break}return d-e|0}return 0}function td(a){var b=0,c=0,d=0,e=0;d=F[a>>2];if(d){e=d;c=F[a+4>>2];if((d|0)!=(c|0)){while(1){e=c-144|0;b=F[e+132>>2];if(b){F[c-8>>2]=b;ja(b)}b=F[c-28>>2];if(b){F[c-24>>2]=b;ja(b)}b=F[c-40>>2];if(b){F[c-36>>2]=b;ja(b)}Gb(c-140|0);c=e;if((d|0)!=(c|0)){continue}break}e=F[a>>2]}F[a+4>>2]=d;ja(e)}}function Ef(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=F[b+4>>2];a:{if(!d){break a}b=F[F[F[b+8>>2]+(c<<2)>>2]+60>>2];if((b|0)<0){break a}a=F[d+24>>2];c=F[d+28>>2];if((a|0)==(c|0)){break a}b:{while(1){e=F[a>>2];if((b|0)==F[e+24>>2]){break b}a=a+4|0;if((c|0)!=(a|0)){continue}break}e=0}}return e|0}function ic(a){var b=0,c=0,d=0;if(a){d=F[a+24>>2];if(d){b=d;c=F[a+28>>2];if((b|0)!=(c|0)){while(1){c=c-4|0;b=F[c>>2];F[c>>2]=0;if(b){Ca(b+12|0,F[b+16>>2]);Ba(b,F[b+4>>2]);ja(b)}if((c|0)!=(d|0)){continue}break}b=F[a+24>>2]}F[a+28>>2]=d;ja(b)}Ca(a+12|0,F[a+16>>2]);Ba(a,F[a+4>>2]);ja(a)}}function $g(a){a=a|0;var b=0;F[a+8>>2]=9136;F[a>>2]=8924;b=F[a+96>>2];if(b){F[a+100>>2]=b;ja(b)}b=F[a+80>>2];if(b){F[a+84>>2]=b;ja(b)}b=F[a+68>>2];if(b){F[a+72>>2]=b;ja(b)}b=F[a+56>>2];if(b){F[a+60>>2]=b;ja(b)}F[a+8>>2]=9372;b=F[a+44>>2];if(b){ja(b)}b=F[a+32>>2];if(b){ja(b)}return a|0}function _g(a){a=a|0;var b=0;F[a+8>>2]=9136;F[a>>2]=8924;b=F[a+96>>2];if(b){F[a+100>>2]=b;ja(b)}b=F[a+80>>2];if(b){F[a+84>>2]=b;ja(b)}b=F[a+68>>2];if(b){F[a+72>>2]=b;ja(b)}b=F[a+56>>2];if(b){F[a+60>>2]=b;ja(b)}F[a+8>>2]=9372;b=F[a+44>>2];if(b){ja(b)}b=F[a+32>>2];if(b){ja(b)}ja(a)}function wh(a){a=a|0;var b=0,c=0,d=0;F[a>>2]=10032;b=F[a+20>>2];if(b){F[a+24>>2]=b;ja(b)}d=F[a+8>>2];if(d){c=F[a+12>>2];b=d;if((c|0)!=(b|0)){while(1){c=c-4|0;b=F[c>>2];F[c>>2]=0;if(b){$[F[F[b>>2]+4>>2]](b)}if((c|0)!=(d|0)){continue}break}b=F[a+8>>2]}F[a+12>>2]=d;ja(b)}return a|0}function uc(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0;h=F[c+8>>2];e=F[c+16>>2];g=F[c+12>>2];f=g;d=F[c+20>>2];if(h>>>0>e>>>0&(f|0)>=(d|0)|(d|0)<(f|0)){b=G[F[c>>2]+e|0];i=e+1|0;f=i?d:d+1|0;F[c+16>>2]=i;F[c+20>>2]=f;F[a+4>>2]=b}return e>>>0>>0&(d|0)<=(g|0)|(d|0)<(g|0)}function La(a,b,c){var d=0;if(!c){return F[a+4>>2]==F[b+4>>2]}if((a|0)==(b|0)){return 1}d=F[a+4>>2];a=G[d|0];c=F[b+4>>2];b=G[c|0];a:{if(!a|(b|0)!=(a|0)){break a}while(1){b=G[c+1|0];a=G[d+1|0];if(!a){break a}c=c+1|0;d=d+1|0;if((a|0)==(b|0)){continue}break}}return(a|0)==(b|0)}function Gg(a){a=a|0;var b=0,c=0,d=0;F[a>>2]=10032;b=F[a+20>>2];if(b){F[a+24>>2]=b;ja(b)}d=F[a+8>>2];if(d){c=F[a+12>>2];b=d;if((c|0)!=(b|0)){while(1){c=c-4|0;b=F[c>>2];F[c>>2]=0;if(b){$[F[F[b>>2]+4>>2]](b)}if((c|0)!=(d|0)){continue}break}b=F[a+8>>2]}F[a+12>>2]=d;ja(b)}ja(a)}function Gf(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=F[b+12>>2];b=F[b+8>>2];a=0;a:{if((d|0)==(b|0)){break a}a=d-b>>2;d=a>>>0<=1?1:a;a=0;b:{while(1){e=F[b+(a<<2)>>2];if(F[e+60>>2]==(c|0)){break b}a=a+1|0;if((d|0)!=(a|0)){continue}break}a=0;break a}a=(a|0)!=-1?e:0}return a|0}function ah(a){a=a|0;var b=0;F[a>>2]=9136;b=F[a+88>>2];if(b){F[a+92>>2]=b;ja(b)}b=F[a+72>>2];if(b){F[a+76>>2]=b;ja(b)}b=F[a+60>>2];if(b){F[a- -64>>2]=b;ja(b)}b=F[a+48>>2];if(b){F[a+52>>2]=b;ja(b)}F[a>>2]=9372;b=F[a+36>>2];if(b){ja(b)}b=F[a+24>>2];if(b){ja(b)}return a|0}function Tc(a,b){var c=0,d=0,e=0;F[a+8>>2]=0;F[a>>2]=0;F[a+4>>2]=0;a:{c=F[b+4>>2];d=F[b>>2];b:{if((c|0)==(d|0)){a=c;break b}c=c-d|0;if((c|0)<0){break a}d=c;e=ka(c);c=ma(e,0,c);d=d+c|0;F[a+8>>2]=d;F[a+4>>2]=d;F[a>>2]=c;c=F[b>>2];a=F[b+4>>2]}la(e,c,a-c|0);return}na();v()}function Dd(a){var b=0,c=0,d=0,e=0;c=F[a+4>>2];d=F[a>>2];if((c|0)!=(d|0)){while(1){e=c-144|0;b=F[e+132>>2];if(b){F[c-8>>2]=b;ja(b)}b=F[c-28>>2];if(b){F[c-24>>2]=b;ja(b)}b=F[c-40>>2];if(b){F[c-36>>2]=b;ja(b)}Gb(c-140|0);c=e;if((d|0)!=(c|0)){continue}break}}F[a+4>>2]=d}function Xg(a){a=a|0;var b=0;F[a>>2]=9136;b=F[a+88>>2];if(b){F[a+92>>2]=b;ja(b)}b=F[a+72>>2];if(b){F[a+76>>2]=b;ja(b)}b=F[a+60>>2];if(b){F[a- -64>>2]=b;ja(b)}b=F[a+48>>2];if(b){F[a+52>>2]=b;ja(b)}F[a>>2]=9372;b=F[a+36>>2];if(b){ja(b)}b=F[a+24>>2];if(b){ja(b)}ja(a)}function Za(a){var b=0;if(a){b=F[a+76>>2];if(b){F[a+80>>2]=b;ja(b)}b=F[a- -64>>2];if(b){F[a+68>>2]=b;ja(b)}b=F[a+48>>2];if(b){F[a+52>>2]=b;ja(b)}b=F[a+24>>2];if(b){F[a+28>>2]=b;ja(b)}b=F[a+12>>2];if(b){F[a+16>>2]=b;ja(b)}b=F[a>>2];if(b){F[a+4>>2]=b;ja(b)}ja(a)}}function Gb(a){var b=0;b=F[a+84>>2];if(b){F[a+88>>2]=b;ja(b)}b=F[a+72>>2];if(b){F[a+76>>2]=b;ja(b)}b=F[a+52>>2];if(b){F[a+56>>2]=b;ja(b)}b=F[a+40>>2];if(b){F[a+44>>2]=b;ja(b)}b=F[a+28>>2];if(b){F[a+32>>2]=b;ja(b)}b=F[a+12>>2];if(b){ja(b)}a=F[a>>2];if(a){ja(a)}}function Lc(a,b,c){var d=0,e=0,f=0,g=0;f=Z-16|0;Z=f;d=Z-16|0;Z=d;b=b-a>>2;while(1){if(b){F[d+12>>2]=a;e=b>>>1|0;F[d+12>>2]=F[d+12>>2]+(e<<2);g=(e^-1)+b|0;b=e;e=I[F[d+12>>2]>>2]>2];b=e?g:b;a=e?F[d+12>>2]+4|0:a;continue}break}Z=d+16|0;Z=f+16|0;return a}function id(a,b){var c=0,d=0;d=ka(40);F[d>>2]=-1;c=d+8|0;F[c+16>>2]=0;F[c+20>>2]=0;F[c+8>>2]=0;F[c>>2]=0;F[c+4>>2]=0;F[c+24>>2]=0;F[c+28>>2]=0;$[F[F[a>>2]+16>>2]](a,d);a=F[b+88>>2];F[b+88>>2]=d;if(a){b=F[a+8>>2];if(b){F[a+12>>2]=b;ja(b)}ja(a)}return 1}function ya(a){var b=0,c=0,d=0;b=a;a:{if(b&3){while(1){if(!G[b|0]){break a}b=b+1|0;if(b&3){continue}break}}while(1){c=b;b=b+4|0;d=F[c>>2];if(!((d^-1)&d-16843009&-2139062144)){continue}break}while(1){b=c;c=b+1|0;if(G[b|0]){continue}break}}return b-a|0}function wa(a){var b=0,c=0,d=0,e=0,f=0;d=G[a+12|0];c=F[a+8>>2];a:{if(c>>>0>4095){break a}b=F[a+4>>2];if((b|0)<=0){break a}b=b-1|0;F[a+4>>2]=b;c=G[b+F[a>>2]|0]|c<<8}d=0-d&255;b=L(d,c>>>8|0);e=c&255;f=e>>>0>>0;F[a+8>>2]=f?b+e|0:c-(b+d|0)|0;return f}function yc(a,b){F[a+4>>2]=0;F[a+8>>2]=0;F[a>>2]=1776;F[a+12>>2]=0;F[a+16>>2]=0;F[a+20>>2]=0;F[a+24>>2]=0;F[a+28>>2]=0;F[a+32>>2]=0;F[a+36>>2]=0;F[a+40>>2]=0;F[a>>2]=2016;F[a+60>>2]=b;F[a+44>>2]=0;F[a+48>>2]=0;F[a+52>>2]=0;F[a+56>>2]=0;return a}function Eb(a,b){var c=0,d=0,e=0;c=ya(b);if(c>>>0<2147483632){a:{b:{if(c>>>0>=11){d=(c|15)+1|0;e=ka(d);F[a+8>>2]=d|-2147483648;F[a>>2]=e;F[a+4>>2]=c;d=c+e|0;break b}D[a+11|0]=c;d=a+c|0;e=a;if(!c){break a}}pa(e,b,c)}D[d|0]=0;return a}za();v()}function Of(a){a=a|0;var b=0,c=0,d=0;if(a){if(D[a+27|0]<0){ja(F[a+16>>2])}b=F[a>>2];if(b){c=b;d=F[a+4>>2];if((b|0)!=(d|0)){while(1){c=d-12|0;if(D[d-1|0]<0){ja(F[c>>2])}d=c;if((d|0)!=(b|0)){continue}break}c=F[a>>2]}F[a+4>>2]=b;ja(c)}ja(a)}}function xa(a){a=a|0;var b=0,c=0;if(a){b=F[a+88>>2];F[a+88>>2]=0;if(b){c=F[b+8>>2];if(c){F[b+12>>2]=c;ja(c)}ja(b)}b=F[a+68>>2];if(b){F[a+72>>2]=b;ja(b)}b=F[a+64>>2];F[a+64>>2]=0;if(b){c=F[b>>2];if(c){F[b+4>>2]=c;ja(c)}ja(b)}ja(a)}}function Ib(a,b){var c=0,d=0,e=0;a:{c=F[a>>2];b:{if(F[a+8>>2]-c>>2>>>0>=b>>>0){break b}if(b>>>0>=1073741824){break a}d=F[a+4>>2]-c|0;e=b<<2;b=pa(ka(e),c,d);F[a+8>>2]=b+e;F[a+4>>2]=b+d;F[a>>2]=b;if(!c){break b}ja(c)}return}na();v()}function Df(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;b=F[b+96>>2];a=ka(12);b=b+L(c,12)|0;c=F[b+4>>2];F[a>>2]=F[b>>2];F[a+4>>2]=c;F[a+8>>2]=F[b+8>>2];b=F[d>>2];if(b){F[d+4>>2]=b;ja(b)}F[d>>2]=a;a=a+12|0;F[d+8>>2]=a;F[d+4>>2]=a;return 1}function Ah(a){a=a|0;var b=0;F[a+24>>2]=1624;F[a>>2]=7948;b=F[a+32>>2];if(b){F[a+36>>2]=b;ja(b)}F[a>>2]=2136;b=F[a+20>>2];F[a+20>>2]=0;if(b){$[F[F[b>>2]+4>>2]](b)}F[a>>2]=1920;b=F[a+16>>2];F[a+16>>2]=0;if(b){xa(b)}return a|0}function li(a,b,c,d){var e=0,f=0,g=0,h=0;f=b^d;g=f>>31;e=b>>31;a=a^e;h=a-e|0;e=(b^e)-((a>>>0>>0)+e|0)|0;a=d>>31;b=c^a;f=f>>31;a=mi(h,e,b-a|0,(a^d)-((a>>>0>b>>>0)+a|0)|0)^f;b=a-f|0;_=(g^_)-((a>>>0>>0)+g|0)|0;return b}function zh(a){a=a|0;var b=0;F[a+24>>2]=1624;F[a>>2]=7948;b=F[a+32>>2];if(b){F[a+36>>2]=b;ja(b)}F[a>>2]=2136;b=F[a+20>>2];F[a+20>>2]=0;if(b){$[F[F[b>>2]+4>>2]](b)}F[a>>2]=1920;b=F[a+16>>2];F[a+16>>2]=0;if(b){xa(b)}ja(a)}function rb(a,b,c){var d=0,e=0,f=0;e=Z-16|0;Z=e;d=F[a+8>>2]&2147483647;a:{if(d>>>0>c>>>0){d=F[a>>2];F[a+4>>2]=c;db(d,b,c);D[e+15|0]=0;D[c+d|0]=G[e+15|0];break a}f=a;a=F[a+4>>2];Gc(f,d-1|0,(c-d|0)+1|0,a,a,c,b)}Z=e+16|0}function xe(a,b){a=a|0;b=b|0;var c=0,d=0;c=Z-16|0;Z=c;a=F[a+4>>2];a:{if((a|0)==-1){break a}D[c+15|0]=a;d=F[b+20>>2];if(!!F[b+16>>2]&(d|0)>=0|(d|0)>0){break a}pb(b,F[b+4>>2],c+15|0,c+16|0)}Z=c+16|0;return(a|0)!=-1|0}function ki(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0;e=c>>>16|0;f=a>>>16|0;j=L(e,f);g=c&65535;h=a&65535;i=L(g,h);f=(i>>>16|0)+L(f,g)|0;e=(f&65535)+L(e,h)|0;_=(L(b,c)+j|0)+L(a,d)+(f>>>16)+(e>>>16)|0;return i&65535|e<<16}function qb(a,b,c){var d=0,e=0;d=Z-16|0;Z=d;a:{if(c>>>0<=10){D[a+11|0]=G[a+11|0]&128|c;D[a+11|0]=G[a+11|0]&127;db(a,b,c);D[d+15|0]=0;D[a+c|0]=G[d+15|0];break a}e=a;a=G[a+11|0]&127;Gc(e,10,c-10|0,a,a,c,b)}Z=d+16|0}function Ec(a,b,c){var d=0;d=F[a+16>>2];if(!d){F[a+36>>2]=1;F[a+24>>2]=c;F[a+16>>2]=b;return}a:{if((b|0)==(d|0)){if(F[a+24>>2]!=2){break a}F[a+24>>2]=c;return}D[a+54|0]=1;F[a+24>>2]=2;F[a+36>>2]=F[a+36>>2]+1}}function vg(){var a=0;a=kb(ka(96));F[a+64>>2]=0;F[a+68>>2]=0;F[a+88>>2]=0;F[a+72>>2]=0;F[a+76>>2]=0;D[a+77|0]=0;D[a+78|0]=0;D[a+79|0]=0;D[a+80|0]=0;D[a+81|0]=0;D[a+82|0]=0;D[a+83|0]=0;D[a+84|0]=0;return a|0}function jh(a,b){a=a|0;b=b|0;var c=0,d=0;F[b>>2]=2;c=F[b+8>>2];d=F[b+12>>2]-c|0;if(d>>>0<=4294967291){Db(b+8|0,d+4|0);c=F[b+8>>2]}b=c+d|0;a=F[a+4>>2];D[b|0]=a;D[b+1|0]=a>>>8;D[b+2|0]=a>>>16;D[b+3|0]=a>>>24}function ge(a){a=a|0;var b=0;F[a>>2]=3016;b=F[a+96>>2];if(b){ja(b)}b=F[a+84>>2];if(b){ja(b)}b=F[a+72>>2];if(b){ja(b)}b=F[a+60>>2];if(b){ja(b)}F[a>>2]=2960;b=F[a+32>>2];if(b){F[a+36>>2]=b;ja(b)}return a|0}function ci(a){a=a|0;var b=0;F[a>>2]=4580;b=F[a+96>>2];if(b){ja(b)}b=F[a+84>>2];if(b){ja(b)}b=F[a+72>>2];if(b){ja(b)}b=F[a+60>>2];if(b){ja(b)}F[a>>2]=2960;b=F[a+32>>2];if(b){F[a+36>>2]=b;ja(b)}return a|0}function Cg(a){a=a|0;var b=0,c=0,d=0;b=F[a+8>>2];d=F[a+12>>2];if((b|0)==(d|0)){return 1}while(1){c=F[b>>2];c=$[F[F[c>>2]+16>>2]](c,F[a+32>>2])|0;if(c){b=b+4|0;if((d|0)!=(b|0)){continue}}break}return c|0}function Pc(a,b){var c=0,d=0;c=F[a+8>>2];a=F[a+12>>2];if((c|0)!=(a|0)){a=a-c>>2;d=a>>>0<=1?1:a;a=0;while(1){if(F[F[(a<<2)+c>>2]+60>>2]==(b|0)){return a}a=a+1|0;if((d|0)!=(a|0)){continue}break}}return-1}function fe(a){a=a|0;var b=0;F[a>>2]=3016;b=F[a+96>>2];if(b){ja(b)}b=F[a+84>>2];if(b){ja(b)}b=F[a+72>>2];if(b){ja(b)}b=F[a+60>>2];if(b){ja(b)}F[a>>2]=2960;b=F[a+32>>2];if(b){F[a+36>>2]=b;ja(b)}ja(a)}function bi(a){a=a|0;var b=0;F[a>>2]=4580;b=F[a+96>>2];if(b){ja(b)}b=F[a+84>>2];if(b){ja(b)}b=F[a+72>>2];if(b){ja(b)}b=F[a+60>>2];if(b){ja(b)}F[a>>2]=2960;b=F[a+32>>2];if(b){F[a+36>>2]=b;ja(b)}ja(a)}function Sc(a,b,c){var d=0,e=0;d=a+4|0;a=Ya(a,b);a:{if((d|0)==(a|0)){break a}b=F[a+32>>2];d=F[a+28>>2];if((b|0)==(d|0)){break a}Sb(c,b-d|0);c=Tb(c);b=F[a+28>>2];la(c,b,F[a+32>>2]-b|0);e=1}return e}function Kd(a){F[a+40>>2]=0;F[a+4>>2]=0;F[a+8>>2]=0;F[a>>2]=10032;F[a+12>>2]=0;F[a+16>>2]=0;F[a+20>>2]=0;F[a+24>>2]=0;F[a+28>>2]=0;F[a+32>>2]=0;E[a+36>>1]=0;F[a+44>>2]=0;F[a>>2]=8080;return a}function kb(a){F[a+8>>2]=0;F[a+12>>2]=0;F[a>>2]=0;F[a+40>>2]=0;F[a+44>>2]=0;F[a+28>>2]=9;D[a+24|0]=1;F[a+56>>2]=-1;F[a+60>>2]=0;F[a+16>>2]=0;F[a+20>>2]=0;F[a+48>>2]=0;F[a+52>>2]=0;return a}function pe(a,b){a=a|0;b=b|0;var c=0,d=0;d=F[a+16>>2];c=0;a:{if(F[a+20>>2]-d>>2<=(b|0)){break a}b=F[(b<<2)+d>>2];c=0;if((b|0)<0){break a}c=bb(F[F[a+36>>2]+(b<<2)>>2])}return c|0}function Nf(){var a=0,b=0;a=ka(40);F[a+4>>2]=0;F[a+8>>2]=0;F[a+24>>2]=0;F[a+28>>2]=0;b=a+16|0;F[b>>2]=0;F[b+4>>2]=0;F[a>>2]=a+4;F[a+12>>2]=b;F[a+32>>2]=0;F[a+36>>2]=0;return a|0}function Xe(a,b){a=a|0;b=b|0;var c=0,d=0;Nc(a,b);a:{if((b|0)<0){break a}d=F[a+88>>2];c=F[a+84>>2];if(d-c>>2<=(b|0)){break a}c=(b<<2)+c|0;b=c+4|0;pa(c,b,d-b|0);F[a+88>>2]=d-4}}function eb(a){var b=0,c=0;b=F[2909];c=a+7&-8;a=b+c|0;a:{if(a>>>0<=b>>>0?c:0){break a}if(a>>>0>aa()<<16>>>0){if(!(X(a|0)|0)){break a}}F[2909]=a;return b}F[2940]=48;return-1}function Th(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;F[a+4>>2]=b;b=F[F[F[b+4>>2]+8>>2]+(c<<2)>>2];F[a+12>>2]=c;F[a+8>>2]=b;a=F[a+8>>2];if(G[a+24|0]==3){d=F[a+28>>2]==9}return d|0}function Tg(a){a=a|0;var b=0;F[a+8>>2]=9556;F[a>>2]=9392;b=F[a+56>>2];if(b){F[a+60>>2]=b;ja(b)}F[a+8>>2]=9372;b=F[a+44>>2];if(b){ja(b)}b=F[a+32>>2];if(b){ja(b)}return a|0}function Ng(a){a=a|0;var b=0;F[a+8>>2]=8624;F[a>>2]=9684;b=F[a+56>>2];if(b){F[a+60>>2]=b;ja(b)}F[a+8>>2]=8876;b=F[a+44>>2];if(b){ja(b)}b=F[a+32>>2];if(b){ja(b)}return a|0}function Ee(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=F[a+8>>2];a:{if(!G[d+24|0]){break a}if(!ac(d,F[b+4>>2]-F[b>>2]>>2)){break a}e=$[F[F[a>>2]+32>>2]](a,b,c)|0}return e|0}function Fh(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;F[a+4>>2]=b;d=F[F[F[b+4>>2]+8>>2]+(c<<2)>>2];F[a+12>>2]=c;F[a+8>>2]=d;return F[F[F[F[b+4>>2]+8>>2]+(c<<2)>>2]+28>>2]==9|0}function Ca(a,b){if(b){Ca(a,F[b>>2]);Ca(a,F[b+4>>2]);a=F[b+28>>2];F[b+28>>2]=0;if(a){Ca(a+12|0,F[a+16>>2]);Ba(a,F[a+4>>2]);ja(a)}if(D[b+27|0]<0){ja(F[b+16>>2])}ja(b)}}function Sg(a){a=a|0;var b=0;F[a+8>>2]=9556;F[a>>2]=9392;b=F[a+56>>2];if(b){F[a+60>>2]=b;ja(b)}F[a+8>>2]=9372;b=F[a+44>>2];if(b){ja(b)}b=F[a+32>>2];if(b){ja(b)}ja(a)}function Mg(a){a=a|0;var b=0;F[a+8>>2]=8624;F[a>>2]=9684;b=F[a+56>>2];if(b){F[a+60>>2]=b;ja(b)}F[a+8>>2]=8876;b=F[a+44>>2];if(b){ja(b)}b=F[a+32>>2];if(b){ja(b)}ja(a)}function Hc(a,b){var c=0,d=0,e=0,f=0;F[a>>2]=11356;F[a>>2]=11468;c=ya(b);d=ka(c+13|0);F[d+8>>2]=0;F[d+4>>2]=c;F[d>>2]=c;e=a,f=la(d+12|0,b,c+1|0),F[e+4>>2]=f;return a}function hc(a,b,c){a:{if(b){b=0;if(!ld(1,c,a)){break a}}D[a+36|0]=1;F[a+32>>2]=0;b=F[a+16>>2];c=b+F[a>>2]|0;F[a+24>>2]=c;F[a+28>>2]=c+(F[a+8>>2]-b|0);b=1}return b}function Ue(a,b){a=a|0;b=b|0;var c=0;a:{if(!($[F[F[a>>2]+36>>2]](a,b)|0)){break a}if(!($[F[F[a>>2]+40>>2]](a,b)|0)){break a}c=$[F[F[a>>2]+44>>2]](a)|0}return c|0}function _d(a){a=a|0;var b=0;a:{if(!F[a- -64>>2]|!F[a+68>>2]|(!F[a+44>>2]|!F[a+48>>2])){break a}if(!F[a+52>>2]|!F[a+56>>2]){break a}b=F[a+92>>2]!=-1}return b|0}function ii(a,b){a=a|0;b=b|0;var c=0;b=F[b+88>>2];if(!(!b|F[b>>2]!=2)){c=a;a=F[b+8>>2];F[c+4>>2]=G[a|0]|G[a+1|0]<<8|(G[a+2|0]<<16|G[a+3|0]<<24);c=1}return c|0}function wc(a){a=a|0;var b=0;F[a>>2]=2136;b=F[a+20>>2];F[a+20>>2]=0;if(b){$[F[F[b>>2]+4>>2]](b)}F[a>>2]=1920;b=F[a+16>>2];F[a+16>>2]=0;if(b){xa(b)}return a|0}function Ud(a){a=a|0;var b=0;a:{if(!F[a+48>>2]|!F[a+52>>2]|(!F[a+28>>2]|!F[a+32>>2])){break a}if(!F[a+36>>2]|!F[a+40>>2]){break a}b=F[a+76>>2]!=-1}return b|0}function Ug(a){a=a|0;var b=0;F[a>>2]=9556;b=F[a+48>>2];if(b){F[a+52>>2]=b;ja(b)}F[a>>2]=9372;b=F[a+36>>2];if(b){ja(b)}b=F[a+24>>2];if(b){ja(b)}return a|0}function Ed(a){a=a|0;var b=0;F[a>>2]=8624;b=F[a+48>>2];if(b){F[a+52>>2]=b;ja(b)}F[a>>2]=8876;b=F[a+36>>2];if(b){ja(b)}b=F[a+24>>2];if(b){ja(b)}return a|0}function vc(a){a=a|0;var b=0;F[a>>2]=2136;b=F[a+20>>2];F[a+20>>2]=0;if(b){$[F[F[b>>2]+4>>2]](b)}F[a>>2]=1920;b=F[a+16>>2];F[a+16>>2]=0;if(b){xa(b)}ja(a)}function yg(){var a=0,b=0;b=ka(40);F[b>>2]=-1;a=b+8|0;F[a+16>>2]=0;F[a+20>>2]=0;F[a+8>>2]=0;F[a>>2]=0;F[a+4>>2]=0;F[a+24>>2]=0;F[a+28>>2]=0;return b|0}function eh(a){a=a|0;var b=0;F[a>>2]=8624;b=F[a+48>>2];if(b){F[a+52>>2]=b;ja(b)}F[a>>2]=8876;b=F[a+36>>2];if(b){ja(b)}b=F[a+24>>2];if(b){ja(b)}ja(a)}function Og(a){a=a|0;var b=0;F[a>>2]=9556;b=F[a+48>>2];if(b){F[a+52>>2]=b;ja(b)}F[a>>2]=9372;b=F[a+36>>2];if(b){ja(b)}b=F[a+24>>2];if(b){ja(b)}ja(a)}function Ja(a){F[a+8>>2]=0;F[a+12>>2]=0;F[a>>2]=0;F[a+16>>2]=0;F[a+20>>2]=0;F[a+32>>2]=0;F[a+24>>2]=0;F[a+28>>2]=0;E[a+38>>1]=0;D[a+36|0]=0;return a}function Me(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;if(La(a,F[b+8>>2],f)){Dc(b,c,d,e);return}a=F[a+8>>2];$[F[F[a>>2]+20>>2]](a,b,c,d,e,f)}function Eh(a,b,c){a=a|0;b=b|0;c=c|0;a:{if(G[F[a+4>>2]+36|0]>=2){b=0;if(!($[F[F[a>>2]+52>>2]](a)|0)){break a}}b=id(a+24|0,F[a+16>>2])}return b|0}function hg(){var a=0;a=Rc(ka(108));F[a+84>>2]=0;F[a+88>>2]=0;F[a>>2]=10240;F[a+92>>2]=0;F[a+96>>2]=0;F[a+100>>2]=0;F[a+104>>2]=0;return a|0}function Qc(a,b){var c=0;c=-1;a:{if((b|0)==-1|(b|0)>4){break a}b=L(b,12)+a|0;a=F[b+20>>2];if((F[b+24>>2]-a|0)<=0){break a}c=F[a>>2]}return c}function cc(a,b,c,d,e,f,g){F[a>>2]=0;F[a+56>>2]=b;F[a+48>>2]=0;F[a+52>>2]=0;F[a+40>>2]=f;F[a+44>>2]=g;D[a+32|0]=e;F[a+28>>2]=d;D[a+24|0]=c}function Sh(a,b,c){a=a|0;b=b|0;c=c|0;a:{if(G[F[a+4>>2]+36|0]>=2){b=0;if(!uc(a+24|0,bb(a),c)){break a}}b=id(a+24|0,F[a+16>>2])}return b|0}function _e(a){a=a|0;var b=0;F[a>>2]=10240;b=F[a+96>>2];if(b){F[a+100>>2]=b;ja(b)}b=F[a+84>>2];if(b){F[a+88>>2]=b;ja(b)}return tb(a)|0}function Tb(a){var b=0;if(G[a+11|0]>>>7|0){b=F[a+4>>2]}else{b=G[a+11|0]&127}if(!b){sc(1222);v()}if(G[a+11|0]>>>7|0){a=F[a>>2]}return a}function Ze(a){a=a|0;var b=0;F[a>>2]=10240;b=F[a+96>>2];if(b){F[a+100>>2]=b;ja(b)}b=F[a+84>>2];if(b){F[a+88>>2]=b;ja(b)}ja(tb(a))}function ce(a){a=a|0;var b=0;F[a>>2]=3264;b=F[a+76>>2];if(b){ja(b)}F[a>>2]=2960;b=F[a+32>>2];if(b){F[a+36>>2]=b;ja(b)}return a|0}function _h(a){a=a|0;var b=0;F[a>>2]=4816;b=F[a+76>>2];if(b){ja(b)}F[a>>2]=2960;b=F[a+32>>2];if(b){F[a+36>>2]=b;ja(b)}return a|0}function Ba(a,b){if(b){Ba(a,F[b>>2]);Ba(a,F[b+4>>2]);a=F[b+28>>2];if(a){F[b+32>>2]=a;ja(a)}if(D[b+27|0]<0){ja(F[b+16>>2])}ja(b)}}function Wf(){var a=0;a=ka(28);F[a>>2]=0;F[a+4>>2]=0;F[a+24>>2]=0;F[a+16>>2]=0;F[a+20>>2]=0;F[a+8>>2]=0;F[a+12>>2]=0;return a|0}function We(a){a=a|0;var b=0;F[a>>2]=1776;b=F[a+16>>2];if(b){F[a+20>>2]=b;ja(b)}b=F[a+4>>2];if(b){F[a+8>>2]=b;ja(b)}return a|0}function fg(){var a=0,b=0;a=ka(24);F[a+4>>2]=0;F[a+8>>2]=0;b=a+16|0;F[b>>2]=0;F[b+4>>2]=0;F[a>>2]=a+4;F[a+12>>2]=b;return a|0}function Pe(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;if(La(a,F[b+8>>2],0)){Ec(b,c,d);return}a=F[a+8>>2];$[F[F[a>>2]+28>>2]](a,b,c,d)}function be(a){a=a|0;var b=0;F[a>>2]=3264;b=F[a+76>>2];if(b){ja(b)}F[a>>2]=2960;b=F[a+32>>2];if(b){F[a+36>>2]=b;ja(b)}ja(a)}function Zh(a){a=a|0;var b=0;F[a>>2]=4816;b=F[a+76>>2];if(b){ja(b)}F[a>>2]=2960;b=F[a+32>>2];if(b){F[a+36>>2]=b;ja(b)}ja(a)}function ka(a){var b=0;a=a?a:1;a:{while(1){b=Ub(a);if(b){break a}b=F[3065];if(b){$[b|0]();continue}break}V();v()}return b}function ib(a,b){if(b){ib(a,F[b>>2]);ib(a,F[b+4>>2]);if(D[b+39|0]<0){ja(F[b+28>>2])}if(D[b+27|0]<0){ja(F[b+16>>2])}ja(b)}}function Cc(a){a=a|0;var b=0,c=0;F[a>>2]=11468;b=F[a+4>>2]-12|0;c=F[b+8>>2]-1|0;F[b+8>>2]=c;if((c|0)<0){ja(b)}return a|0}function ng(){var a=0;a=ka(24);F[a+8>>2]=0;F[a+12>>2]=0;F[a+4>>2]=-1;F[a>>2]=1624;F[a+16>>2]=0;F[a+20>>2]=0;return a|0}function Ac(a,b,c){a=a|0;b=b|0;c=c|0;F[a+4>>2]=b;b=F[F[F[b+4>>2]+8>>2]+(c<<2)>>2];F[a+12>>2]=c;F[a+8>>2]=b;return 1}function pc(a){a=a|0;var b=0;if(!(!F[a+60>>2]|!F[a+44>>2]|(!F[a+48>>2]|!F[a+52>>2]))){b=F[a+56>>2]!=0}return b|0}function Ic(a,b){if(G[a+11|0]>>>7|0){F[a+4>>2]=b;return}D[a+11|0]=G[a+11|0]&128|b;D[a+11|0]=G[a+11|0]&127}function gi(a){a=a|0;var b=0;F[a>>2]=3500;F[a>>2]=2960;b=F[a+32>>2];if(b){F[a+36>>2]=b;ja(b)}return a|0}function Xh(a){a=a|0;var b=0;F[a>>2]=5040;F[a>>2]=2960;b=F[a+32>>2];if(b){F[a+36>>2]=b;ja(b)}return a|0}function nf(a){a=a|0;if(a){if(D[a+39|0]<0){ja(F[a+28>>2])}$b(a+12|0,F[a+16>>2]);ib(a,F[a+4>>2]);ja(a)}}function dh(a){a=a|0;var b=0;F[a>>2]=8876;b=F[a+36>>2];if(b){ja(b)}b=F[a+24>>2];if(b){ja(b)}return a|0}function Wg(a){a=a|0;var b=0;F[a>>2]=9372;b=F[a+36>>2];if(b){ja(b)}b=F[a+24>>2];if(b){ja(b)}return a|0}function ob(a){a=a|0;var b=0;if(!(!F[a+52>>2]|(!F[a+44>>2]|!F[a+48>>2]))){b=F[a+56>>2]!=0}return b|0}function oc(a,b){a=a|0;b=b|0;var c=0;if(!(F[b+56>>2]|!b|G[b+24|0]!=3)){F[a+60>>2]=b;c=1}return c|0}function fi(a){a=a|0;var b=0;F[a>>2]=3500;F[a>>2]=2960;b=F[a+32>>2];if(b){F[a+36>>2]=b;ja(b)}ja(a)}function Wh(a){a=a|0;var b=0;F[a>>2]=5040;F[a>>2]=2960;b=F[a+32>>2];if(b){F[a+36>>2]=b;ja(b)}ja(a)}function zg(a,b,c){a=a|0;b=b|0;c=c|0;F[a+16>>2]=0;F[a+20>>2]=0;F[a>>2]=b;F[a+8>>2]=c;F[a+12>>2]=0}function ch(a){a=a|0;var b=0;F[a>>2]=8876;b=F[a+36>>2];if(b){ja(b)}b=F[a+24>>2];if(b){ja(b)}ja(a)}function Zd(a,b){a=a|0;b=b|0;var c=0;if(!(F[b+56>>2]|G[b+24|0]!=3)){F[a- -64>>2]=b;c=1}return c|0}function Vg(a){a=a|0;var b=0;F[a>>2]=9372;b=F[a+36>>2];if(b){ja(b)}b=F[a+24>>2];if(b){ja(b)}ja(a)}function Td(a,b){a=a|0;b=b|0;var c=0;if(!(F[b+56>>2]|G[b+24|0]!=3)){F[a+48>>2]=b;c=1}return c|0}function Le(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;if(La(a,F[b+8>>2],f)){Dc(b,c,d,e)}}function oa(){var a=0;a=Rb(4);F[a>>2]=11356;F[a>>2]=11316;F[a>>2]=11336;W(a|0,11448,14);v()}function je(a){a=a|0;var b=0;F[a>>2]=2960;b=F[a+32>>2];if(b){F[a+36>>2]=b;ja(b)}return a|0}function Ae(a){a=a|0;var b=0;F[a>>2]=1920;b=F[a+16>>2];F[a+16>>2]=0;if(b){xa(b)}return a|0}function Pg(a){a=a|0;var b=0;F[a>>2]=1624;b=F[a+8>>2];if(b){F[a+12>>2]=b;ja(b)}return a|0}function Ch(a){a=a|0;var b=0;b=bb(a);return qd(a+24|0,b?b:F[a+8>>2],F[F[a+4>>2]+32>>2])|0}function ze(a){a=a|0;var b=0;F[a>>2]=1920;b=F[a+16>>2];F[a+16>>2]=0;if(b){xa(b)}ja(a)}function Ob(a){a=a|0;var b=0;F[a>>2]=2960;b=F[a+32>>2];if(b){F[a+36>>2]=b;ja(b)}ja(a)}function Hg(a){a=a|0;var b=0;F[a>>2]=1624;b=F[a+8>>2];if(b){F[a+12>>2]=b;ja(b)}ja(a)}function oe(a,b){a=a|0;b=b|0;return $[F[F[a>>2]+48>>2]](a,F[b+4>>2]-F[b>>2]>>2)|0}function $b(a,b){if(b){$b(a,F[b>>2]);$b(a,F[b+4>>2]);ib(b+20|0,F[b+24>>2]);ja(b)}}function xg(a){a=a|0;var b=0;if(a){b=F[a+8>>2];if(b){F[a+12>>2]=b;ja(b)}ja(a)}}function xh(a){a=a|0;if(!F[a+44>>2]){return 0}return $[F[F[a>>2]+48>>2]](a)|0}function ni(a){var b=0;while(1){if(a){a=a-1&a;b=b+1|0;continue}break}return b}function Qe(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;if(La(a,F[b+8>>2],0)){Ec(b,c,d)}}function vh(a,b){a=a|0;b=b|0;a=F[a+48>>2];return $[F[F[a>>2]+20>>2]](a,b)|0}function oi(a){var b=0;b=a&31;a=0-a&31;return(-1>>>b&-2)<>>a} function oh(a,b){a=a|0;b=b|0;a=F[a+48>>2];return $[F[F[a>>2]+12>>2]](a,b)|0}function nh(a,b){a=a|0;b=b|0;a=F[a+48>>2];return $[F[F[a>>2]+16>>2]](a,b)|0}function Xa(){var a=0;a=ka(12);F[a>>2]=0;F[a+4>>2]=0;F[a+8>>2]=0;return a|0}function Wa(a){a=a|0;var b=0;if(a){b=F[a>>2];if(b){F[a+4>>2]=b;ja(b)}ja(a)}}function mf(a,b,c){a=a|0;b=b|0;c=c|0;F[a+32>>2]=c;F[a+28>>2]=b;return 1}function eg(a){a=a|0;if(a){Ca(a+12|0,F[a+16>>2]);Ba(a,F[a+4>>2]);ja(a)}}function Lb(a,b){a=a|0;b=b|0;if(b>>>0<=1){F[a+28>>2]=b}return b>>>0<2|0}function Fg(a,b){a=a|0;b=b|0;D[b+84|0]=1;F[b+72>>2]=F[b+68>>2];return 1}function kg(){var a=0;a=ka(8);F[a+4>>2]=-1;F[a>>2]=1032;return a|0}function Hf(a,b,c){a=a|0;b=b|0;c=c|0;return F[F[b+8>>2]+(c<<2)>>2]}function th(a){a=a|0;a=F[a+48>>2];return $[F[F[a>>2]+24>>2]](a)|0}function sh(a){a=a|0;a=F[a+48>>2];return $[F[F[a>>2]+28>>2]](a)|0}function ph(a){a=a|0;a=F[a+48>>2];return $[F[F[a>>2]+36>>2]](a)|0}function Rh(a,b){a=a|0;b=b|0;return zc(a+24|0,bb(a),F[a+8>>2])|0}function Bh(a,b){a=a|0;b=b|0;return xd(a+24|0,bb(a),F[a+8>>2])|0}function bg(a){a=a|0;if(a){if(D[a+15|0]<0){ja(F[a+4>>2])}ja(a)}}function Ke(a){a=a|0;if(!a){return 0}return(Fc(a,11164)|0)!=0|0}function Fe(a,b){a=a|0;b=b|0;F[a+12>>2]=-1;F[a+8>>2]=b;return 1}function hd(a,b){a=a|0;b=b|0;return $[F[F[a>>2]+12>>2]](a,b)|0}function Dh(a,b){a=a|0;b=b|0;return $[F[F[a>>2]+56>>2]](a,b)|0}function sc(a){a=Hc(Rb(8),a);F[a>>2]=11568;W(a|0,11600,1);v()}function mg(a,b){a=a|0;b=b|0;return M(J[F[a+8>>2]+(b<<2)>>2])}function Rd(a){a=Hc(Rb(8),a);F[a>>2]=11516;W(a|0,11548,1);v()}function $f(a,b){a=a|0;b=b|0;return M(J[F[a>>2]+(b<<2)>>2])}function gg(a){a=a|0;return(F[a+100>>2]-F[a+96>>2]|0)/12|0}function cg(a){a=a|0;return(D[a+15|0]<0?F[a+4>>2]:a+4|0)|0}function Re(a,b){a=a|0;b=b|0;return F[F[a+4>>2]+(b<<2)>>2]}function dd(a,b){a=a|0;b=b|0;return F[F[a>>2]+(b<<2)>>2]}function Yf(a,b){a=a|0;b=b|0;return E[F[a>>2]+(b<<1)>>1]}function Xf(a,b){a=a|0;b=b|0;return H[F[a>>2]+(b<<1)>>1]}function Vd(a,b,c){a=a|0;b=b|0;c=c|0;return xc(a,b,c)|0}function sb(a,b){var c=0;c=ka(b);F[a+4>>2]=b;F[a>>2]=c}function Kf(a,b,c){a=a|0;b=b|0;c=c|0;return Qc(b,c)|0}function Rc(a){F[a>>2]=10300;ma(a+4|0,0,80);return a}function ji(a){if(a){return 31-O(a-1^a)|0}return 32}function gd(a){a=a|0;return F[a+12>>2]-F[a+8>>2]>>2}function _f(a,b){a=a|0;b=b|0;return D[F[a>>2]+b|0]}function Zf(a,b){a=a|0;b=b|0;return G[F[a>>2]+b|0]}function Ie(a){a=a|0;return F[a+8>>2]-F[a+4>>2]>>2}function wb(a){a=a|0;if(a){$[F[F[a>>2]+4>>2]](a)}}function Jd(a,b){a=a|0;b=b|0;F[a+4>>2]=b;return 1}function ed(a){a=a|0;return F[a+4>>2]-F[a>>2]>>1}function dc(a){a=a|0;return F[a+4>>2]-F[a>>2]>>2}function fd(a){a=a|0;return F[a+4>>2]-F[a>>2]|0}function ke(a){a=a|0;return G[F[a+8>>2]+24|0]}function Qf(a,b){a=a|0;b=b|0;return F[b+8>>2]}function Ff(a,b){a=a|0;b=b|0;return F[b+4>>2]}function De(a,b,c){a=a|0;b=b|0;c=c|0;return 1}function Bg(a,b){a=a|0;b=b|0;return G[b+24|0]}function Oh(a){a=a|0;F[a>>2]=5928;return a|0}function Jh(a){a=a|0;F[a>>2]=6932;return a|0}function lg(a){a=a|0;return M(J[a+20>>2])}function Nh(a){a=a|0;F[a>>2]=5928;ja(a)}function Ih(a){a=a|0;F[a>>2]=6932;ja(a)}function ug(a){a=a|0;return F[a+88>>2]}function tg(a){a=a|0;return F[a+56>>2]}function qg(a){a=a|0;return F[a+40>>2]}function pg(a){a=a|0;return F[a+48>>2]}function og(a){a=a|0;return F[a+60>>2]}function ec(a){a=a|0;return F[a+80>>2]}function cb(a){a=a|0;return F[a+28>>2]}function vd(a){a=a|0;return F[a+8>>2]}function tc(a,b){a=a|0;b=b|0;return-1}function sg(a){a=a|0;return D[a+24|0]}function rg(a){a=a|0;return G[a+32|0]}function dg(a){a=a|0;return!F[a>>2]|0}function Wd(a,b){a=a|0;b=b|0;return 6}function Va(a){a=a|0;return F[a+4>>2]}function Rb(a){return Ub(a+80|0)+80|0}function Qh(a,b){a=a|0;b=b|0;return 2}function Ia(a,b){a=a|0;b=b|0;return 0}function Bc(a,b){a=a|0;b=b|0;return 1}function jd(a){a=a|0;return F[a>>2]}function wg(){return kb(ka(64))|0}function ig(){return Rc(ka(84))|0}function fc(a){a=a|0;if(a){ja(a)}}function Ag(){return Ja(ka(40))|0}function Qb(a){a=a|0;Cc(a);ja(a)}function Je(a){a=a|0;return 1161}function He(a){a=a|0;return 1235}function Ge(a){a=a|0;return 1201}function Pa(a){a=a|0;return a|0}function hh(a){a=a|0;ja(ud(a))}function gh(a){a=a|0;ja(sd(a))}function Ve(a){a=a|0;ja(tb(a))}function ua(a){a=a|0;return 1}function rc(a){a=a|0;return 4}function qc(a){a=a|0;return 5}function Xd(a){a=a|0;return 2}function Ua(a){a=a|0;return 0}function Nb(a){a=a|0;return 6}function Mh(a){a=a|0;return 3}function za(){Rd(1222);v()}function ta(){sc(1154);v()}function na(){Rd(1154);v()}function Ha(a){a=a|0;ja(a)}function Ra(a){a=a|0;v()}function ff(){return 10}function ef(){return 11}function df(){return 12}function vb(){return-1}function ub(){return 1}function lf(){return 5}function kf(){return 6}function jf(){return 7}function jb(){return 0}function hf(){return 8}function gf(){return 9}function cf(){return-2}function bf(){return-3}function bd(){return 3}function af(){return-4}function ad(){return 4}function _b(){return 2}function $e(){return-5}function Te(){V();v()}function Jc(a){a=a|0}function ae(){} // EMSCRIPTEN_END_FUNCS e=G;p(q);var $=c([null,Cc,Pa,Ha,Xd,ii,jh,ag,zc,xe,uc,jg,Wd,Qh,Pa,Pg,Hg,ua,yh,mh,kh,xd,fh,qd,Wd,Bg,We,Ra,mf,$c,Ue,Re,Ie,cb,Ia,Te,Bc,ua,Ae,ze,Ac,Fe,Ee,De,Bc,Ce,Be,re,qe,ye,we,pe,ve,ue,te,se,wc,vc,Ac,oe,ne,xc,me,ke,le,je,Ob,ua,Va,ob,Ua,tc,Ia,Ua,ua,ie,he,Ra,Ra,ge,fe,rc,ob,ee,de,ce,be,qc,pc,ua,Ia,oc,$d,hi,gi,fi,Nb,_d,ua,Ia,Zd,Yd,ei,Pa,Ha,Lb,cb,Mb,Ra,Ob,ua,ob,di,Ra,ci,bi,rc,ob,ai,$h,_h,Zh,qc,pc,ua,Ia,oc,$d,Yh,Xh,Wh,Nb,_d,ua,Ia,Zd,Yd,Vh,Pa,Ha,Lb,cb,Kb,Ra,Ob,Ua,ua,Uh,wc,vc,Th,Sh,Vd,Ph,Xd,Rh,Oh,Nh,Nb,Va,Ud,ua,Ia,Td,ua,Mh,Sd,Lh,Pa,Ha,Lb,cb,Mb,Jh,Ih,Nb,Ud,ua,Ia,Td,Sd,Hh,Pa,Ha,Lb,cb,Kb,Pa,Ha,Ua,ua,Ua,tc,Ia,Kh,Gh,Ah,zh,Fh,Eh,Vd,Dh,Ch,Bh,wh,Ra,ua,ua,xh,Dg,Cg,ua,Ua,Ia,Ia,rh,qh,uh,vh,sh,ph,oh,nh,th,ud,hh,Jd,Id,Hd,Gd,lh,ua,Va,vd,sd,gh,Jd,Id,Hd,Gd,ih,ua,Va,vd,Ed,eh,Fd,dh,ch,$g,_g,Zg,Yg,ah,Xg,bh,Wg,Vg,Tg,Sg,Rg,Qg,Ug,Og,Ng,Mg,Lg,Kg,Gg,Ig,Jg,Pa,Ha,Fg,Eg,Ra,Ua,ua,_e,Ze,Ye,Xe,tb,Ve,Oc,Nc,Pa,Ha,Jc,Jc,Se,Le,Ne,Qe,Ha,Me,Oe,Pe,Ha,He,Ha,Ge,Ha,Je,Qb,Va,Qb,Qb]);function aa(){return C.byteLength/65536|0}function fa(ga){ga=ga|0;var ba=aa()|0;var ca=ba+ga|0;if(ba=endIdx))++endPtr;if(endPtr-idx>16&&heapOrArray.buffer&&UTF8Decoder){return UTF8Decoder.decode(heapOrArray.subarray(idx,endPtr))}var str="";while(idx>10,56320|ch&1023)}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&c<=57343){len+=4;++i}else{len+=3}}return len}var HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateMemoryViews(){var b=wasmMemory.buffer;Module["HEAP8"]=HEAP8=new Int8Array(b);Module["HEAP16"]=HEAP16=new Int16Array(b);Module["HEAP32"]=HEAP32=new Int32Array(b);Module["HEAPU8"]=HEAPU8=new Uint8Array(b);Module["HEAPU16"]=HEAPU16=new Uint16Array(b);Module["HEAPU32"]=HEAPU32=new Uint32Array(b);Module["HEAPF32"]=HEAPF32=new Float32Array(b);Module["HEAPF64"]=HEAPF64=new Float64Array(b)}var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||16777216;assert(INITIAL_MEMORY>=65536,"INITIAL_MEMORY should be larger than STACK_SIZE, was "+INITIAL_MEMORY+"! (STACK_SIZE="+65536+")");if(Module["wasmMemory"]){wasmMemory=Module["wasmMemory"]}else{wasmMemory=new WebAssembly.Memory({"initial":INITIAL_MEMORY/65536,"maximum":2147483648/65536})}updateMemoryViews();INITIAL_MEMORY=wasmMemory.buffer.byteLength;var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;function keepRuntimeAlive(){return noExitRuntime}function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function addRunDependency(id){runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}function abort(what){if(Module["onAbort"]){Module["onAbort"](what)}what="Aborted("+what+")";err(what);ABORT=true;EXITSTATUS=1;what+=". Build with -sASSERTIONS for more info.";var e=new WebAssembly.RuntimeError(what);readyPromiseReject(e);throw e}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith("file://")}var wasmBinaryFile;wasmBinaryFile="draco_decoder_gltf.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}var binary=tryParseAsDataURI(file);if(binary){return binary}if(readBinary){return readBinary(file)}throw"both async and sync fetching of the wasm failed"}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch=="function"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={"a":wasmImports};function receiveInstance(instance,module){var exports=instance.exports;Module["asm"]=exports;wasmTable=Module["asm"]["g"];addOnInit(Module["asm"]["f"]);removeRunDependency("wasm-instantiate")}addRunDependency("wasm-instantiate");function receiveInstantiationResult(result){receiveInstance(result["instance"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(function(instance){return instance}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming=="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&!ENVIRONMENT_IS_NODE&&typeof fetch=="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);readyPromiseReject(e)}}instantiateAsync().catch(readyPromiseReject);return{}}function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){callbacks.shift()(Module)}}function intArrayToString(array){var ret=[];for(var i=0;i255){chr&=255}ret.push(String.fromCharCode(chr))}return ret.join("")}function ExceptionInfo(excPtr){this.excPtr=excPtr;this.ptr=excPtr-24;this.set_type=function(type){HEAPU32[this.ptr+4>>2]=type};this.get_type=function(){return HEAPU32[this.ptr+4>>2]};this.set_destructor=function(destructor){HEAPU32[this.ptr+8>>2]=destructor};this.get_destructor=function(){return HEAPU32[this.ptr+8>>2]};this.set_refcount=function(refcount){HEAP32[this.ptr>>2]=refcount};this.set_caught=function(caught){caught=caught?1:0;HEAP8[this.ptr+12>>0]=caught};this.get_caught=function(){return HEAP8[this.ptr+12>>0]!=0};this.set_rethrown=function(rethrown){rethrown=rethrown?1:0;HEAP8[this.ptr+13>>0]=rethrown};this.get_rethrown=function(){return HEAP8[this.ptr+13>>0]!=0};this.init=function(type,destructor){this.set_adjusted_ptr(0);this.set_type(type);this.set_destructor(destructor);this.set_refcount(0);this.set_caught(false);this.set_rethrown(false)};this.add_ref=function(){var value=HEAP32[this.ptr>>2];HEAP32[this.ptr>>2]=value+1};this.release_ref=function(){var prev=HEAP32[this.ptr>>2];HEAP32[this.ptr>>2]=prev-1;return prev===1};this.set_adjusted_ptr=function(adjustedPtr){HEAPU32[this.ptr+16>>2]=adjustedPtr};this.get_adjusted_ptr=function(){return HEAPU32[this.ptr+16>>2]};this.get_exception_ptr=function(){var isPointer=___cxa_is_pointer_type(this.get_type());if(isPointer){return HEAPU32[this.excPtr>>2]}var adjusted=this.get_adjusted_ptr();if(adjusted!==0)return adjusted;return this.excPtr}}var exceptionLast=0;var uncaughtExceptionCount=0;function ___cxa_throw(ptr,type,destructor){var info=new ExceptionInfo(ptr);info.init(type,destructor);exceptionLast=ptr;uncaughtExceptionCount++;throw ptr}function _abort(){abort("")}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function getHeapMax(){return 2147483648}function emscripten_realloc_buffer(size){var b=wasmMemory.buffer;try{wasmMemory.grow(size-b.byteLength+65535>>>16);updateMemoryViews();return 1}catch(e){}}function _emscripten_resize_heap(requestedSize){var oldSize=HEAPU8.length;requestedSize=requestedSize>>>0;var maxHeapSize=getHeapMax();if(requestedSize>maxHeapSize){return false}let alignUp=(x,multiple)=>x+(multiple-x%multiple)%multiple;for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignUp(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=emscripten_realloc_buffer(newSize);if(replacement){return true}}return false}function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var decodeBase64=typeof atob=="function"?atob:function(input){var keyStr="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";var output="";var chr1,chr2,chr3;var enc1,enc2,enc3,enc4;var i=0;input=input.replace(/[^A-Za-z0-9\+\/\=]/g,"");do{enc1=keyStr.indexOf(input.charAt(i++));enc2=keyStr.indexOf(input.charAt(i++));enc3=keyStr.indexOf(input.charAt(i++));enc4=keyStr.indexOf(input.charAt(i++));chr1=enc1<<2|enc2>>4;chr2=(enc2&15)<<4|enc3>>2;chr3=(enc3&3)<<6|enc4;output=output+String.fromCharCode(chr1);if(enc3!==64){output=output+String.fromCharCode(chr2)}if(enc4!==64){output=output+String.fromCharCode(chr3)}}while(i0){return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();readyPromiseResolve(Module);if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}run();function WrapperObject(){}WrapperObject.prototype=Object.create(WrapperObject.prototype);WrapperObject.prototype.constructor=WrapperObject;WrapperObject.prototype.__class__=WrapperObject;WrapperObject.__cache__={};Module["WrapperObject"]=WrapperObject;function getCache(__class__){return(__class__||WrapperObject).__cache__}Module["getCache"]=getCache;function wrapPointer(ptr,__class__){var cache=getCache(__class__);var ret=cache[ptr];if(ret)return ret;ret=Object.create((__class__||WrapperObject).prototype);ret.ptr=ptr;return cache[ptr]=ret}Module["wrapPointer"]=wrapPointer;function castObject(obj,__class__){return wrapPointer(obj.ptr,__class__)}Module["castObject"]=castObject;Module["NULL"]=wrapPointer(0);function destroy(obj){if(!obj["__destroy__"])throw"Error: Cannot destroy object. (Did you create it yourself?)";obj["__destroy__"]();delete getCache(obj.__class__)[obj.ptr]}Module["destroy"]=destroy;function compare(obj1,obj2){return obj1.ptr===obj2.ptr}Module["compare"]=compare;function getPointer(obj){return obj.ptr}Module["getPointer"]=getPointer;function getClass(obj){return obj.__class__}Module["getClass"]=getClass;var ensureCache={buffer:0,size:0,pos:0,temps:[],needed:0,prepare:function(){if(ensureCache.needed){for(var i=0;i=ensureCache.size){assert(len>0);ensureCache.needed+=len;ret=Module["_malloc"](len);ensureCache.temps.push(ret)}else{ret=ensureCache.buffer+ensureCache.pos;ensureCache.pos+=len}return ret},copy:function(array,view,offset){offset>>>=0;var bytes=view.BYTES_PER_ELEMENT;switch(bytes){case 2:offset>>>=1;break;case 4:offset>>>=2;break;case 8:offset>>>=3;break}for(var i=0;i { var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined; if (typeof __filename !== 'undefined') _scriptDir = _scriptDir || __filename; return ( function(DracoEncoderModule = {}) { var Module=typeof DracoEncoderModule!="undefined"?DracoEncoderModule:{};var readyPromiseResolve,readyPromiseReject;Module["ready"]=new Promise(function(resolve,reject){readyPromiseResolve=resolve;readyPromiseReject=reject});var isRuntimeInitialized=false;var isModuleParsed=false;Module["onRuntimeInitialized"]=function(){isRuntimeInitialized=true;if(isModuleParsed){if(typeof Module["onModuleLoaded"]==="function"){Module["onModuleLoaded"](Module)}}};Module["onModuleParsed"]=function(){isModuleParsed=true;if(isRuntimeInitialized){if(typeof Module["onModuleLoaded"]==="function"){Module["onModuleLoaded"](Module)}}};function isVersionSupported(versionString){if(typeof versionString!=="string")return false;const version=versionString.split(".");if(version.length<2||version.length>3)return false;if(version[0]==1&&version[1]>=0&&version[1]<=5)return true;if(version[0]!=0||version[1]>10)return false;return true}Module["isVersionSupported"]=isVersionSupported;var moduleOverrides=Object.assign({},Module);var arguments_=[];var thisProgram="./this.program";var quit_=(status,toThrow)=>{throw toThrow};var ENVIRONMENT_IS_WEB=typeof window=="object";var ENVIRONMENT_IS_WORKER=typeof importScripts=="function";var ENVIRONMENT_IS_NODE=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string";var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;function logExceptionOnExit(e){if(e instanceof ExitStatus)return;let toLog=e;err("exiting due to exception: "+toLog)}if(ENVIRONMENT_IS_NODE){var fs=require("fs");var nodePath=require("path");if(ENVIRONMENT_IS_WORKER){scriptDirectory=nodePath.dirname(scriptDirectory)+"/"}else{scriptDirectory=__dirname+"/"}read_=(filename,binary)=>{var ret=tryParseAsDataURI(filename);if(ret){return binary?ret:ret.toString()}filename=isFileURI(filename)?new URL(filename):nodePath.normalize(filename);return fs.readFileSync(filename,binary?undefined:"utf8")};readBinary=filename=>{var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}return ret};readAsync=(filename,onload,onerror)=>{var ret=tryParseAsDataURI(filename);if(ret){onload(ret)}filename=isFileURI(filename)?new URL(filename):nodePath.normalize(filename);fs.readFile(filename,function(err,data){if(err)onerror(err);else onload(data.buffer)})};if(process["argv"].length>1){thisProgram=process["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);quit_=(status,toThrow)=>{if(keepRuntimeAlive()){process["exitCode"]=status;throw toThrow}logExceptionOnExit(toThrow);process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(_scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.replace(/[?#].*/,"").lastIndexOf("/")+1)}else{scriptDirectory=""}{read_=url=>{try{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText}catch(err){var data=tryParseAsDataURI(url);if(data){return intArrayToString(data)}throw err}};if(ENVIRONMENT_IS_WORKER){readBinary=url=>{try{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}catch(err){var data=tryParseAsDataURI(url);if(data){return data}throw err}}}readAsync=(url,onload,onerror)=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=()=>{if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}var data=tryParseAsDataURI(url);if(data){onload(data.buffer);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=title=>document.title=title}else{}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);Object.assign(Module,moduleOverrides);moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||true;var WebAssembly={Memory:function(opts){this.buffer=new ArrayBuffer(opts["initial"]*65536)},Module:function(binary){},Instance:function(module,info){this.exports=( // EMSCRIPTEN_START_ASM function instantiate(ma){function c(d){d.set=function(a,b){this[a]=b};d.get=function(a){return this[a]};return d}var e;var f=new Uint8Array(123);for(var a=25;a>=0;--a){f[48+a]=52+a;f[65+a]=a;f[97+a]=26+a}f[43]=62;f[47]=63;function l(m,n,o){var g,h,a=0,i=n,j=o.length,k=n+(j*3>>2)-(o[j-2]=="=")-(o[j-1]=="=");for(;a>4;if(i>2;if(i>2]=0;J[C+32>>2]=0;J[C+36>>2]=0;c:{d:{if(b>>>0<1073741824){g=b<<2;n=oa(g);J[C+36>>2]=n;J[C+32>>2]=n;j=g+n|0;u=(c|0)<=1?1:c;c=u-1|0;v=c&-4;l=c&3;r=u-2>>>0>2;F=n;g=n;e:{f:{g:{while(1){h=J[(s<<2)+a>>2];h:{if(u>>>0<2){break h}m=0;c=1;if(r){while(1){q=(c+s<<2)+a|0;k=J[q>>2];h=h>>>0>k>>>0?h:k;k=J[q+4>>2];h=h>>>0>k>>>0?h:k;k=J[q+8>>2];h=h>>>0>k>>>0?h:k;q=J[q+12>>2];h=h>>>0>q>>>0?h:q;c=c+4|0;m=m+4|0;if((v|0)!=(m|0)){continue}break}}k=0;if(!l){break h}while(1){m=J[(c+s<<2)+a>>2];h=h>>>0>m>>>0?h:m;c=c+1|0;k=k+1|0;if((l|0)!=(k|0)){continue}break}}c=h?(S(h)^31)+1|0:1;i:{if(g>>>0>>0){J[g>>2]=c;g=g+4|0;J[C+36>>2]=g;break i}m=g-F|0;q=m>>2;g=q+1|0;if(g>>>0>=1073741824){break g}j=j-F|0;k=j>>>1|0;j=j>>>0>=2147483644?1073741823:g>>>0>>0?k:g;if(j){if(j>>>0>=1073741824){break f}n=oa(j<<2)}else{n=0}g=n+(q<<2)|0;J[g>>2]=c;c=ta(n,F,m);g=g+4|0;J[C+36>>2]=g;j=c+(j<<2)|0;if(F){na(F)}F=c}p=h>>>0>p>>>0?h:p;s=s+u|0;if((s|0)<(b|0)){continue}break}J[C+40>>2]=j;J[C+32>>2]=n;c=0;J[C+24>>2]=0;J[C+16>>2]=0;J[C+20>>2]=0;j:{if((g|0)==(F|0)){k=0;break j}c=g-F|0;if((c|0)<0){break e}k=oa(c);J[C+16>>2]=k;J[C+24>>2]=(c&-4)+k;c=F;h=k;while(1){J[h>>2]=J[c>>2];h=h+4|0;c=c+4|0;if((g|0)!=(c|0)){continue}break}J[C+20>>2]=h;c=h-k>>2;if((h|0)==(k|0)){break j}g=c>>>0<=1?1:c;q=g&3;s=0;k:{if(g-1>>>0<3){h=0;break k}n=g&-4;h=0;m=0;while(1){g=f;f=h<<2;l=J[f+k>>2];g=g+l|0;j=i;j=g>>>0>>0?j+1|0:j;l=J[(f|4)+k>>2];i=l+g|0;g=j;g=l>>>0>i>>>0?g+1|0:g;j=J[(f|8)+k>>2];i=j+i|0;g=j>>>0>i>>>0?g+1|0:g;l=i;i=J[(f|12)+k>>2];f=l+i|0;i=f>>>0>>0?g+1|0:g;h=h+4|0;m=m+4|0;if((n|0)!=(m|0)){continue}break}}if(!q){break j}while(1){j=J[(h<<2)+k>>2];f=j+f|0;g=i;i=f>>>0>>0?g+1|0:g;h=h+1|0;s=s+1|0;if((q|0)!=(s|0)){continue}break}}c=Lg(k,c,32,C);v=ca;r=J[C>>2];if(k){J[C+20>>2]=k;na(k)}m=Lg(a,b,p,C);s=ca;k=J[C>>2];G=(p-k|0)/64|0;if(d){g=oa(32);H[g+22|0]=0;h=K[1587]|K[1588]<<8|(K[1589]<<16|K[1590]<<24);j=K[1583]|K[1584]<<8|(K[1585]<<16|K[1586]<<24);H[g+14|0]=j;H[g+15|0]=j>>>8;H[g+16|0]=j>>>16;H[g+17|0]=j>>>24;H[g+18|0]=h;H[g+19|0]=h>>>8;H[g+20|0]=h>>>16;H[g+21|0]=h>>>24;h=K[1581]|K[1582]<<8|(K[1583]<<16|K[1584]<<24);j=K[1577]|K[1578]<<8|(K[1579]<<16|K[1580]<<24);H[g+8|0]=j;H[g+9|0]=j>>>8;H[g+10|0]=j>>>16;H[g+11|0]=j>>>24;H[g+12|0]=h;H[g+13|0]=h>>>8;H[g+14|0]=h>>>16;H[g+15|0]=h>>>24;h=K[1573]|K[1574]<<8|(K[1575]<<16|K[1576]<<24);j=K[1569]|K[1570]<<8|(K[1571]<<16|K[1572]<<24);H[g|0]=j;H[g+1|0]=j>>>8;H[g+2|0]=j>>>16;H[g+3|0]=j>>>24;H[g+4|0]=h;H[g+5|0]=h>>>8;H[g+6|0]=h>>>16;H[g+7|0]=h>>>24;h=J[d+4>>2];if(h){while(1){j=K[h+27|0];q=j<<24>>24<0;j=q?J[h+20>>2]:j;n=j>>>0<22;l:{m:{n:{o:{p:{q:{l=n?j:22;if(l){q=q?J[h+16>>2]:h+16|0;t=Ba(g,q,l);if(t){break q}if(j>>>0<=22){break p}break l}if(j>>>0<=22){break o}break l}if((t|0)<0){break l}}j=Ba(q,g,l);if(j){break n}}if(n){break m}break d}if((j|0)>=0){break d}}h=h+4|0}h=J[h>>2];if(h){continue}break}}na(g)}if((S(p>>>0<=1?1:p)^30)>>>0<18){g=c;c=Hl(f,i,u,0);f=g+c|0;g=ca+v|0;g=c>>>0>f>>>0?g+1|0:g;c=r<<3;q=c>>31<<1|c>>>31;i=f;f=c<<1;c=i+f|0;j=g+q|0;j=c>>>0>>0?j+1|0:j;f=c;c=k+G<<3;i=c;h=c>>31;c=m;g=k<<3;m=g;c=c+g|0;g=(g>>31)+s|0;h=(c>>>0>>0?g+1|0:g)+h|0;g=c;c=c+i|0;h=g>>>0>c>>>0?h+1|0:h;c=(h|0)<=(j|0)&c>>>0<=f>>>0|(h|0)<(j|0)}else{c=0}break c}J[C+40>>2]=j;J[C+32>>2]=n;break a}J[C+32>>2]=n;xa();B()}break a}break a}na(g);c=oa(32);J[C>>2]=c;J[C+4>>2]=22;J[C+8>>2]=-2147483616;f=K[1587]|K[1588]<<8|(K[1589]<<16|K[1590]<<24);i=K[1583]|K[1584]<<8|(K[1585]<<16|K[1586]<<24);H[c+14|0]=i;H[c+15|0]=i>>>8;H[c+16|0]=i>>>16;H[c+17|0]=i>>>24;H[c+18|0]=f;H[c+19|0]=f>>>8;H[c+20|0]=f>>>16;H[c+21|0]=f>>>24;f=K[1581]|K[1582]<<8|(K[1583]<<16|K[1584]<<24);i=K[1577]|K[1578]<<8|(K[1579]<<16|K[1580]<<24);H[c+8|0]=i;H[c+9|0]=i>>>8;H[c+10|0]=i>>>16;H[c+11|0]=i>>>24;H[c+12|0]=f;H[c+13|0]=f>>>8;H[c+14|0]=f>>>16;H[c+15|0]=f>>>24;f=K[1573]|K[1574]<<8|(K[1575]<<16|K[1576]<<24);i=K[1569]|K[1570]<<8|(K[1571]<<16|K[1572]<<24);H[c|0]=i;H[c+1|0]=i>>>8;H[c+2|0]=i>>>16;H[c+3|0]=i>>>24;H[c+4|0]=f;H[c+5|0]=f>>>8;H[c+6|0]=f>>>16;H[c+7|0]=f>>>24;H[c+22|0]=0;c=Mf(d,C);if(H[C+11|0]>=0){break c}na(J[C>>2])}H[C|0]=c;f=J[e+20>>2];if(!J[e+16>>2]&(f|0)<=0|(f|0)<0){sa(e,J[e+4>>2],C,C+1|0)}h=0;r:{s:{switch(c|0){case 0:p=0;k=ba-336|0;ba=k;pa(k+80|0,0,256);d=J[C+36>>2];c=J[C+32>>2];t:{if((d|0)==(c|0)){break t}d=d-c>>2;d=d>>>0<=1?1:d;i=d&3;if(d-1>>>0>=3){n=d&-4;while(1){f=k+80|0;d=p<<2;g=f+(J[d+c>>2]<<3)|0;j=g;m=J[g>>2];g=J[g+4>>2];m=m+1|0;g=m?g:g+1|0;J[j>>2]=m;J[j+4>>2]=g;g=f+(J[c+(d|4)>>2]<<3)|0;j=J[g>>2];q=J[g+4>>2];j=j+1|0;q=j?q:q+1|0;J[g>>2]=j;J[g+4>>2]=q;g=f+(J[c+(d|8)>>2]<<3)|0;j=J[g>>2];m=J[g+4>>2];j=j+1|0;m=j?m:m+1|0;J[g>>2]=j;J[g+4>>2]=m;d=f+(J[c+(d|12)>>2]<<3)|0;f=J[d>>2];g=J[d+4>>2];f=f+1|0;g=f?g:g+1|0;J[d>>2]=f;J[d+4>>2]=g;p=p+4|0;h=h+4|0;if((n|0)!=(h|0)){continue}break}}if(!i){break t}h=0;while(1){d=(k+80|0)+(J[c+(p<<2)>>2]<<3)|0;f=J[d>>2];q=J[d+4>>2];f=f+1|0;q=f?q:q+1|0;J[d>>2]=f;J[d+4>>2]=q;p=p+1|0;h=h+1|0;if((i|0)!=(h|0)){continue}break}}l=k+48|0;J[l>>2]=0;J[l+4>>2]=0;H[l+24|0]=0;J[l+16>>2]=0;J[l+20>>2]=0;J[l+8>>2]=0;J[l+12>>2]=0;J[k+8>>2]=0;J[k+12>>2]=0;J[k+16>>2]=0;J[k+20>>2]=0;J[k+24>>2]=0;J[k+28>>2]=0;J[k+32>>2]=0;J[k>>2]=0;J[k+4>>2]=0;J[k+40>>2]=0;J[k+44>>2]=0;Jg(k,k+80|0,32,e);d=J[k+16>>2];f=J[k+20>>2];c=J[e+4>>2]-J[e>>2]|0;J[k+40>>2]=c;J[k+44>>2]=0;q=f<<1|d>>>31;d=(d<<1)+39|0;m=d>>>0<39?q+1|0:q;d=c+((m&7)<<29|d>>>3)|0;g=m>>>3|0;g=c>>>0>d>>>0?g+1|0:g;c=d+8|0;Ia(e,c);c=J[e>>2];J[k+28>>2]=0;J[k+32>>2]=16384;J[k+24>>2]=c+J[k+40>>2];Fd(l,b<<5,b>>31<<5|b>>>27,0);b=b-u|0;if((b|0)>=0){j=(u|0)<=0;c=b;while(1){p=J[k+32>>2];n=J[C+32>>2];f=J[k>>2]+(J[n+((c|0)/(u|0)<<2)>>2]<<3)|0;d=J[f>>2];i=d<<10;if(p>>>0>=i>>>0){while(1){g=J[k+28>>2];J[k+28>>2]=g+1;H[g+J[k+24>>2]|0]=p;p=J[k+32>>2]>>>8|0;J[k+32>>2]=p;if(i>>>0<=p>>>0){continue}break}n=J[C+32>>2]}g=J[f+4>>2];f=(p>>>0)/(d>>>0)|0;J[k+32>>2]=g+((f<<12)+(p-P(d,f)|0)|0);m=b-c|0;g=(m|0)/(u|0)|0;u:{if(j){break u}d=J[l+20>>2];i=d;f=J[l+16>>2];if(!f&(d|0)<=0|(d|0)<0){break u}g=J[(g<<2)+n>>2];n=0;while(1){if(!(!f&(i|0)<=0|(i|0)<0|(g|0)<=0)){f=J[(n+m<<2)+a>>2];d=J[l+12>>2];F=J[d+4>>2];h=0;while(1){i=F>>>3|0;q=i+J[d>>2]|0;v=K[q|0];D=q;q=F&7;I=D,L=Ll(q)&v,H[I|0]=L;i=i+J[d>>2]|0;H[i|0]=K[i|0]|(f>>>h&1)<>2]+1|0;J[d+4>>2]=F;h=h+1|0;if((g|0)!=(h|0)){continue}break}}n=n+1|0;if((u|0)==(n|0)){break u}f=J[l+16>>2];i=J[l+20>>2];continue}}c=c-u|0;if((c|0)>=0){continue}break}}yb(k,e);Ed(l);a=J[e+20>>2];if(!J[e+16>>2]&(a|0)<=0|(a|0)<0){sa(e,J[e+4>>2],J[l>>2],J[l+4>>2])}a=J[k>>2];if(a){J[k+4>>2]=a;na(a)}a=J[l+12>>2];J[l+12>>2]=0;if(a){na(a)}a=J[l>>2];if(a){J[l+4>>2]=a;na(a)}ba=k+336|0;h=1;F=J[C+32>>2];break r;case 1:break s;default:break r}}G=ba-32|0;ba=G;n=1;v:{if((k|0)>0){c=S(k);if((c^30)>>>0>17){break v}n=32-c|0}w:{if(!d){break w}c=oa(48);H[c+33|0]=0;H[c+32|0]=K[1470];f=K[1466]|K[1467]<<8|(K[1468]<<16|K[1469]<<24);i=K[1462]|K[1463]<<8|(K[1464]<<16|K[1465]<<24);H[c+24|0]=i;H[c+25|0]=i>>>8;H[c+26|0]=i>>>16;H[c+27|0]=i>>>24;H[c+28|0]=f;H[c+29|0]=f>>>8;H[c+30|0]=f>>>16;H[c+31|0]=f>>>24;f=K[1458]|K[1459]<<8|(K[1460]<<16|K[1461]<<24);i=K[1454]|K[1455]<<8|(K[1456]<<16|K[1457]<<24);H[c+16|0]=i;H[c+17|0]=i>>>8;H[c+18|0]=i>>>16;H[c+19|0]=i>>>24;H[c+20|0]=f;H[c+21|0]=f>>>8;H[c+22|0]=f>>>16;H[c+23|0]=f>>>24;f=K[1450]|K[1451]<<8|(K[1452]<<16|K[1453]<<24);i=K[1446]|K[1447]<<8|(K[1448]<<16|K[1449]<<24);H[c+8|0]=i;H[c+9|0]=i>>>8;H[c+10|0]=i>>>16;H[c+11|0]=i>>>24;H[c+12|0]=f;H[c+13|0]=f>>>8;H[c+14|0]=f>>>16;H[c+15|0]=f>>>24;f=K[1442]|K[1443]<<8|(K[1444]<<16|K[1445]<<24);i=K[1438]|K[1439]<<8|(K[1440]<<16|K[1441]<<24);H[c|0]=i;H[c+1|0]=i>>>8;H[c+2|0]=i>>>16;H[c+3|0]=i>>>24;H[c+4|0]=f;H[c+5|0]=f>>>8;H[c+6|0]=f>>>16;H[c+7|0]=f>>>24;x:{h=J[d+4>>2];if(h){while(1){f=K[h+27|0];i=f<<24>>24<0;f=i?J[h+20>>2]:f;g=f>>>0<33;y:{z:{A:{B:{C:{D:{j=g?f:33;if(j){i=i?J[h+16>>2]:h+16|0;m=Ba(c,i,j);if(m){break D}if(f>>>0<=33){break C}break y}if(f>>>0<=33){break B}break y}if((m|0)<0){break y}}f=Ba(i,c,j);if(f){break A}}if(g){break z}break x}if((f|0)>=0){break x}}h=h+4|0}h=J[h>>2];if(h){continue}break}}na(c);break w}na(c);c=oa(48);J[G+16>>2]=c;J[G+20>>2]=33;J[G+24>>2]=-2147483600;H[c+32|0]=K[1470];f=K[1466]|K[1467]<<8|(K[1468]<<16|K[1469]<<24);i=K[1462]|K[1463]<<8|(K[1464]<<16|K[1465]<<24);H[c+24|0]=i;H[c+25|0]=i>>>8;H[c+26|0]=i>>>16;H[c+27|0]=i>>>24;H[c+28|0]=f;H[c+29|0]=f>>>8;H[c+30|0]=f>>>16;H[c+31|0]=f>>>24;f=K[1458]|K[1459]<<8|(K[1460]<<16|K[1461]<<24);i=K[1454]|K[1455]<<8|(K[1456]<<16|K[1457]<<24);H[c+16|0]=i;H[c+17|0]=i>>>8;H[c+18|0]=i>>>16;H[c+19|0]=i>>>24;H[c+20|0]=f;H[c+21|0]=f>>>8;H[c+22|0]=f>>>16;H[c+23|0]=f>>>24;f=K[1450]|K[1451]<<8|(K[1452]<<16|K[1453]<<24);i=K[1446]|K[1447]<<8|(K[1448]<<16|K[1449]<<24);H[c+8|0]=i;H[c+9|0]=i>>>8;H[c+10|0]=i>>>16;H[c+11|0]=i>>>24;H[c+12|0]=f;H[c+13|0]=f>>>8;H[c+14|0]=f>>>16;H[c+15|0]=f>>>24;f=K[1442]|K[1443]<<8|(K[1444]<<16|K[1445]<<24);i=K[1438]|K[1439]<<8|(K[1440]<<16|K[1441]<<24);H[c|0]=i;H[c+1|0]=i>>>8;H[c+2|0]=i>>>16;H[c+3|0]=i>>>24;H[c+4|0]=f;H[c+5|0]=f>>>8;H[c+6|0]=f>>>16;H[c+7|0]=f>>>24;H[c+33|0]=0;c=Mf(d,G+16|0);if(H[G+27|0]<0){na(J[G+16>>2])}if((c|0)<=3){n=n-2|0;break w}if(c>>>0<=5){n=n-1|0;break w}if(c>>>0>=10){n=n+2|0;break w}n=(c>>>0>7)+n|0}c=(n|0)<=1?1:n;c=(c|0)>=18?18:c;H[G+15|0]=c;d=J[e+20>>2];if(!J[e+16>>2]&(d|0)<=0|(d|0)<0){sa(e,J[e+4>>2],G+15|0,G+16|0)}h=0;E:{switch(c-1|0){case 0:u=a;k=0;n=0;r=0;s=0;f=0;i=0;l=ba+-64|0;ba=l;J[l+56>>2]=0;J[l+48>>2]=0;J[l+52>>2]=0;F:{a=p+1|0;if(a){if(a>>>0>=536870912){break a}a=a<<3;n=oa(a);J[l+48>>2]=n;k=pa(n,0,(p<<3)+8|0)+a|0}G:{if((b|0)<=0){break G}a=0;if(b>>>0>=4){h=b&-4;while(1){c=a<<2;d=(J[c+u>>2]<<3)+n|0;g=J[d>>2];q=J[d+4>>2];g=g+1|0;q=g?q:q+1|0;J[d>>2]=g;J[d+4>>2]=q;d=(J[u+(c|4)>>2]<<3)+n|0;g=J[d>>2];m=J[d+4>>2];g=g+1|0;m=g?m:m+1|0;J[d>>2]=g;J[d+4>>2]=m;d=(J[u+(c|8)>>2]<<3)+n|0;j=J[d>>2];g=J[d+4>>2];j=j+1|0;g=j?g:g+1|0;J[d>>2]=j;J[d+4>>2]=g;c=(J[u+(c|12)>>2]<<3)+n|0;d=J[c>>2];q=J[c+4>>2];d=d+1|0;q=d?q:q+1|0;J[c>>2]=d;J[c+4>>2]=q;a=a+4|0;r=r+4|0;if((h|0)!=(r|0)){continue}break}}d=b&3;if(!d){break G}while(1){c=(J[u+(a<<2)>>2]<<3)+n|0;g=J[c>>2];m=J[c+4>>2];g=g+1|0;m=g?m:m+1|0;J[c>>2]=g;J[c+4>>2]=m;a=a+1|0;s=s+1|0;if((d|0)!=(s|0)){continue}break}}J[l+8>>2]=0;J[l+12>>2]=0;J[l+16>>2]=0;J[l+20>>2]=0;J[l+24>>2]=0;J[l+28>>2]=0;J[l+32>>2]=0;J[l>>2]=0;J[l+4>>2]=0;J[l+40>>2]=0;J[l+44>>2]=0;c=e;e=0;r=0;d=0;s=0;t=ba-32|0;ba=t;a=k-n>>3;H:{if((a|0)<=0){break H}A=a&3;I:{if(a>>>0<4){a=0;break I}E=a&-4;a=0;while(1){g=(a<<3)+n|0;x=J[g>>2];m=J[g+4>>2];D=m;q=a|1;k=(q<<3)+n|0;g=J[k>>2];v=a|2;p=(v<<3)+n|0;h=J[p>>2];y=a|3;z=(y<<3)+n|0;j=J[z>>2];d=m|x?a:d;m=J[k+4>>2];d=m|g?q:d;q=J[p+4>>2];k=J[z+4>>2];d=k|j?y:q|h?v:d;v=q;p=g;g=i+D|0;f=f+x|0;q=(f>>>0>>0?g+1|0:g)+m|0;g=f;f=f+p|0;g=(g>>>0>f>>>0?q+1|0:q)+v|0;m=f;f=f+h|0;h=(m>>>0>f>>>0?g+1|0:g)+k|0;g=f;f=f+j|0;i=g>>>0>f>>>0?h+1|0:h;a=a+4|0;e=e+4|0;if((E|0)!=(e|0)){continue}break}}if(!A){break H}while(1){g=(a<<3)+n|0;e=J[g>>2];g=J[g+4>>2];d=e|g?a:d;a=a+1|0;m=g+i|0;f=e+f|0;i=f>>>0>>0?m+1|0:m;r=r+1|0;if((A|0)!=(r|0)){continue}break}}g=d+1|0;J[l+12>>2]=g;e=J[l>>2];a=J[l+4>>2]-e>>3;J:{if(a>>>0>>0){Wa(l,g-a|0);break J}if(a>>>0<=g>>>0){break J}J[l+4>>2]=e+(g<<3)}k=0;K:{L:{M:{N:{if((d|0)>=0){w=+(f>>>0)+ +(i>>>0)*4294967296;f=J[l>>2];a=0;while(1){i=a<<3;h=i+n|0;e=J[h>>2];h=J[h+4>>2];j=(e|h)!=0;m=f+i|0;o=(+(e>>>0)+ +(h>>>0)*4294967296)/w*4096+.5;O:{if(o<4294967296&o>=0){e=~~o>>>0;break O}e=0}e=e?e:j?1:e;J[m>>2]=e;k=e+k|0;e=(a|0)==(d|0);a=a+1|0;if(!e){continue}break}if((k|0)==4096){break N}}J[t+16>>2]=0;J[t+8>>2]=0;J[t+12>>2]=0;p=0;P:{if(!g){break P}if(g>>>0>=1073741824){break a}i=g<<2;s=oa(i);J[t+8>>2]=s;e=0;f=pa(s,0,i);a=0;if(d>>>0>=7){h=g&-8;while(1){J[f+(a<<2)>>2]=a;j=a|1;J[f+(j<<2)>>2]=j;j=a|2;J[f+(j<<2)>>2]=j;j=a|3;J[f+(j<<2)>>2]=j;j=a|4;J[f+(j<<2)>>2]=j;j=a|5;J[f+(j<<2)>>2]=j;j=a|6;J[f+(j<<2)>>2]=j;j=a|7;J[f+(j<<2)>>2]=j;a=a+8|0;p=p+8|0;if((h|0)!=(p|0)){continue}break}}p=f+i|0;i=g&7;if(!i){break P}while(1){J[f+(a<<2)>>2]=a;a=a+1|0;e=e+1|0;if((i|0)!=(e|0)){continue}break}}J[t+24>>2]=l;a=p-s|0;e=a>>2;Q:{R:{if((a|0)>=513){a=e;while(1){f=oa(a<<2);if(f){break R}f=a>>>0>1;a=a>>>1|0;if(f){continue}break}}gc(s,p,t+24|0,e,0,0);break Q}gc(s,p,t+24|0,e,f,a);na(f)}if((k|0)<4096){a=J[l>>2]+(J[p-4>>2]<<3)|0;J[a>>2]=(J[a>>2]-k|0)+4096;a=0;break M}if((d|0)>0){h=J[l>>2];r=k-4096|0;while(1){o=4096/+(k|0);e=d;while(1){S:{T:{f=h+(J[(e<<2)+s>>2]<<3)|0;a=J[f>>2];if(a>>>0>=2){q=f;m=a;w=V(o*+(a>>>0));U:{if(R(w)<2147483648){i=~~w;break U}i=-2147483648}f=(a|0)==(i|0)?1:a-i|0;a=(a|0)>(f|0)?f:a-1|0;a=(a|0)<(r|0)?a:r;J[q>>2]=m-a;r=r-a|0;k=k-a|0;if((k|0)!=4096){break T}k=4096;break S}if((d|0)!=(e|0)){break S}a=1;break M}a=(e|0)>1;e=e-1|0;if(a){continue}}break}a=0;if((r|0)>0){continue}break}break M}a=0;if(k>>>0<4097){break M}while(1)continue}if((d|0)<0){break K}break L}e=J[t+8>>2];if(e){na(e)}if((d|0)<0|a){break K}}e=J[l>>2];k=0;r=0;a=0;if(d>>>0>=3){i=g&-4;s=0;while(1){f=r<<3;h=f+e|0;J[h+4>>2]=a;j=e+(f|8)|0;a=J[h>>2]+a|0;J[j+4>>2]=a;h=e+(f|16)|0;a=a+J[j>>2]|0;J[h+4>>2]=a;f=e+(f|24)|0;a=a+J[h>>2]|0;J[f+4>>2]=a;a=a+J[f>>2]|0;r=r+4|0;s=s+4|0;if((i|0)!=(s|0)){continue}break}}f=g&3;if(f){while(1){i=e+(r<<3)|0;J[i+4>>2]=a;r=r+1|0;a=J[i>>2]+a|0;k=k+1|0;if((f|0)!=(k|0)){continue}break}}if((a|0)!=4096){break K}a=0;o=0;V:{if((d|0)<0){break V}f=J[l>>2];if(d){d=g&-2;e=0;while(1){i=a<<3;h=J[i+f>>2];if(h){i=i+n|0;o=(+M[i>>2]+ +M[i+4>>2]*4294967296)*va(+(h>>>0)*.000244140625)+o}i=(a|1)<<3;h=J[i+f>>2];if(h){i=i+n|0;o=(+M[i>>2]+ +M[i+4>>2]*4294967296)*va(+(h>>>0)*.000244140625)+o}a=a+2|0;e=e+2|0;if((d|0)!=(e|0)){continue}break}}if(!(g&1)){break V}a=a<<3;d=J[a+f>>2];if(!d){break V}a=a+n|0;o=(+M[a>>2]+ +M[a+4>>2]*4294967296)*va(+(d>>>0)*.000244140625)+o}o=W(-o);W:{if(o<0x10000000000000000&o>=0){d=R(o)>=1?~~(o>0?T(V(o*2.3283064365386963e-10),4294967295):W((o-+(~~o>>>0>>>0))*2.3283064365386963e-10))>>>0:0;a=~~o>>>0;break W}d=0;a=0}J[l+16>>2]=a;J[l+20>>2]=d;Va(l,c)}ba=t+32|0;d=J[l+16>>2];e=J[l+20>>2];a=J[c+4>>2]-J[c>>2]|0;J[l+40>>2]=a;J[l+44>>2]=0;g=e<<1|d>>>31;d=(d<<1)+39|0;g=d>>>0<39?g+1|0:g;d=a+((g&7)<<29|d>>>3)|0;h=g>>>3|0;j=a>>>0>d>>>0?h+1|0:h;a=d+8|0;Ia(c,a);a=J[c>>2];J[l+28>>2]=0;J[l+32>>2]=16384;J[l+24>>2]=a+J[l+40>>2];if((b|0)>0){a=16384;while(1){d=b-1|0;f=J[l>>2]+(J[u+(d<<2)>>2]<<3)|0;e=J[f>>2];i=e<<10;if(i>>>0<=a>>>0){while(1){g=J[l+28>>2];J[l+28>>2]=g+1;H[g+J[l+24>>2]|0]=a;a=J[l+32>>2]>>>8|0;J[l+32>>2]=a;if(a>>>0>=i>>>0){continue}break}}g=J[f+4>>2];f=(a>>>0)/(e>>>0)|0;a=g+((f<<12)+(a-P(e,f)|0)|0)|0;J[l+32>>2]=a;e=(b|0)>1;b=d;if(e){continue}break}}yb(l,c);a=J[l>>2];if(a){J[l+4>>2]=a;na(a)}a=J[l+48>>2];if(a){na(a)}ba=l- -64|0;break F}h=1;break v;case 1:u=a;k=0;n=0;r=0;s=0;f=0;i=0;l=ba+-64|0;ba=l;J[l+56>>2]=0;J[l+48>>2]=0;J[l+52>>2]=0;X:{a=p+1|0;if(a){if(a>>>0>=536870912){break a}a=a<<3;n=oa(a);J[l+48>>2]=n;k=pa(n,0,(p<<3)+8|0)+a|0}Y:{if((b|0)<=0){break Y}a=0;if(b>>>0>=4){h=b&-4;while(1){c=a<<2;d=(J[c+u>>2]<<3)+n|0;j=J[d>>2];g=J[d+4>>2];j=j+1|0;g=j?g:g+1|0;J[d>>2]=j;J[d+4>>2]=g;d=(J[u+(c|4)>>2]<<3)+n|0;j=J[d>>2];g=J[d+4>>2];j=j+1|0;g=j?g:g+1|0;J[d>>2]=j;J[d+4>>2]=g;d=(J[u+(c|8)>>2]<<3)+n|0;g=J[d>>2];j=J[d+4>>2];g=g+1|0;j=g?j:j+1|0;J[d>>2]=g;J[d+4>>2]=j;c=(J[u+(c|12)>>2]<<3)+n|0;d=J[c>>2];g=J[c+4>>2];d=d+1|0;g=d?g:g+1|0;J[c>>2]=d;J[c+4>>2]=g;a=a+4|0;r=r+4|0;if((h|0)!=(r|0)){continue}break}}d=b&3;if(!d){break Y}while(1){c=(J[u+(a<<2)>>2]<<3)+n|0;h=J[c>>2];g=J[c+4>>2];h=h+1|0;g=h?g:g+1|0;J[c>>2]=h;J[c+4>>2]=g;a=a+1|0;s=s+1|0;if((d|0)!=(s|0)){continue}break}}J[l+8>>2]=0;J[l+12>>2]=0;J[l+16>>2]=0;J[l+20>>2]=0;J[l+24>>2]=0;J[l+28>>2]=0;J[l+32>>2]=0;J[l>>2]=0;J[l+4>>2]=0;J[l+40>>2]=0;J[l+44>>2]=0;c=e;e=0;r=0;d=0;s=0;t=ba-32|0;ba=t;a=k-n>>3;Z:{if((a|0)<=0){break Z}A=a&3;_:{if(a>>>0<4){a=0;break _}E=a&-4;a=0;while(1){g=(a<<3)+n|0;x=J[g>>2];m=J[g+4>>2];D=m;q=a|1;k=(q<<3)+n|0;g=J[k>>2];v=a|2;p=(v<<3)+n|0;h=J[p>>2];y=a|3;z=(y<<3)+n|0;j=J[z>>2];d=m|x?a:d;m=J[k+4>>2];d=m|g?q:d;q=J[p+4>>2];k=J[z+4>>2];d=k|j?y:q|h?v:d;v=j;p=h;h=g;j=i+D|0;f=f+x|0;g=(f>>>0>>0?j+1|0:j)+m|0;m=f;f=f+h|0;h=(m>>>0>f>>>0?g+1|0:g)+q|0;g=f;f=f+p|0;q=(g>>>0>f>>>0?h+1|0:h)+k|0;g=f;f=f+v|0;i=g>>>0>f>>>0?q+1|0:q;a=a+4|0;e=e+4|0;if((E|0)!=(e|0)){continue}break}}if(!A){break Z}while(1){g=(a<<3)+n|0;e=J[g>>2];g=J[g+4>>2];d=e|g?a:d;a=a+1|0;g=g+i|0;f=e+f|0;i=f>>>0>>0?g+1|0:g;r=r+1|0;if((A|0)!=(r|0)){continue}break}}g=d+1|0;J[l+12>>2]=g;e=J[l>>2];a=J[l+4>>2]-e>>3;$:{if(a>>>0>>0){Wa(l,g-a|0);break $}if(a>>>0<=g>>>0){break $}J[l+4>>2]=e+(g<<3)}k=0;aa:{ba:{ca:{da:{if((d|0)>=0){w=+(f>>>0)+ +(i>>>0)*4294967296;f=J[l>>2];a=0;while(1){i=a<<3;h=i+n|0;e=J[h>>2];h=J[h+4>>2];j=(e|h)!=0;m=f+i|0;o=(+(e>>>0)+ +(h>>>0)*4294967296)/w*4096+.5;ea:{if(o<4294967296&o>=0){e=~~o>>>0;break ea}e=0}e=e?e:j?1:e;J[m>>2]=e;k=e+k|0;e=(a|0)==(d|0);a=a+1|0;if(!e){continue}break}if((k|0)==4096){break da}}J[t+16>>2]=0;J[t+8>>2]=0;J[t+12>>2]=0;p=0;fa:{if(!g){break fa}if(g>>>0>=1073741824){break a}i=g<<2;s=oa(i);J[t+8>>2]=s;e=0;f=pa(s,0,i);a=0;if(d>>>0>=7){h=g&-8;while(1){J[f+(a<<2)>>2]=a;j=a|1;J[f+(j<<2)>>2]=j;j=a|2;J[f+(j<<2)>>2]=j;j=a|3;J[f+(j<<2)>>2]=j;j=a|4;J[f+(j<<2)>>2]=j;j=a|5;J[f+(j<<2)>>2]=j;j=a|6;J[f+(j<<2)>>2]=j;j=a|7;J[f+(j<<2)>>2]=j;a=a+8|0;p=p+8|0;if((h|0)!=(p|0)){continue}break}}p=f+i|0;i=g&7;if(!i){break fa}while(1){J[f+(a<<2)>>2]=a;a=a+1|0;e=e+1|0;if((i|0)!=(e|0)){continue}break}}J[t+24>>2]=l;a=p-s|0;e=a>>2;ga:{ha:{if((a|0)>=513){a=e;while(1){f=oa(a<<2);if(f){break ha}f=a>>>0>1;a=a>>>1|0;if(f){continue}break}}fc(s,p,t+24|0,e,0,0);break ga}fc(s,p,t+24|0,e,f,a);na(f)}if((k|0)<4096){a=J[l>>2]+(J[p-4>>2]<<3)|0;J[a>>2]=(J[a>>2]-k|0)+4096;a=0;break ca}if((d|0)>0){h=J[l>>2];r=k-4096|0;while(1){o=4096/+(k|0);e=d;while(1){ia:{ja:{f=h+(J[(e<<2)+s>>2]<<3)|0;a=J[f>>2];if(a>>>0>=2){q=f;m=a;w=V(o*+(a>>>0));ka:{if(R(w)<2147483648){i=~~w;break ka}i=-2147483648}f=(a|0)==(i|0)?1:a-i|0;a=(a|0)>(f|0)?f:a-1|0;a=(a|0)<(r|0)?a:r;J[q>>2]=m-a;r=r-a|0;k=k-a|0;if((k|0)!=4096){break ja}k=4096;break ia}if((d|0)!=(e|0)){break ia}a=1;break ca}a=(e|0)>1;e=e-1|0;if(a){continue}}break}a=0;if((r|0)>0){continue}break}break ca}a=0;if(k>>>0<4097){break ca}while(1)continue}if((d|0)<0){break aa}break ba}e=J[t+8>>2];if(e){na(e)}if((d|0)<0|a){break aa}}e=J[l>>2];k=0;r=0;a=0;if(d>>>0>=3){i=g&-4;s=0;while(1){f=r<<3;h=f+e|0;J[h+4>>2]=a;j=e+(f|8)|0;a=J[h>>2]+a|0;J[j+4>>2]=a;h=e+(f|16)|0;a=a+J[j>>2]|0;J[h+4>>2]=a;f=e+(f|24)|0;a=a+J[h>>2]|0;J[f+4>>2]=a;a=a+J[f>>2]|0;r=r+4|0;s=s+4|0;if((i|0)!=(s|0)){continue}break}}f=g&3;if(f){while(1){i=e+(r<<3)|0;J[i+4>>2]=a;r=r+1|0;a=J[i>>2]+a|0;k=k+1|0;if((f|0)!=(k|0)){continue}break}}if((a|0)!=4096){break aa}a=0;o=0;la:{if((d|0)<0){break la}f=J[l>>2];if(d){d=g&-2;e=0;while(1){i=a<<3;h=J[i+f>>2];if(h){i=i+n|0;o=(+M[i>>2]+ +M[i+4>>2]*4294967296)*va(+(h>>>0)*.000244140625)+o}i=(a|1)<<3;h=J[i+f>>2];if(h){i=i+n|0;o=(+M[i>>2]+ +M[i+4>>2]*4294967296)*va(+(h>>>0)*.000244140625)+o}a=a+2|0;e=e+2|0;if((d|0)!=(e|0)){continue}break}}if(!(g&1)){break la}a=a<<3;d=J[a+f>>2];if(!d){break la}a=a+n|0;o=(+M[a>>2]+ +M[a+4>>2]*4294967296)*va(+(d>>>0)*.000244140625)+o}o=W(-o);ma:{if(o<0x10000000000000000&o>=0){d=R(o)>=1?~~(o>0?T(V(o*2.3283064365386963e-10),4294967295):W((o-+(~~o>>>0>>>0))*2.3283064365386963e-10))>>>0:0;a=~~o>>>0;break ma}d=0;a=0}J[l+16>>2]=a;J[l+20>>2]=d;Va(l,c)}ba=t+32|0;d=J[l+16>>2];e=J[l+20>>2];a=J[c+4>>2]-J[c>>2]|0;J[l+40>>2]=a;J[l+44>>2]=0;h=e<<1|d>>>31;d=(d<<1)+39|0;j=h;j=d>>>0<39?j+1|0:j;d=a+((j&7)<<29|d>>>3)|0;q=j>>>3|0;m=a>>>0>d>>>0?q+1|0:q;a=d+8|0;Ia(c,a);a=J[c>>2];J[l+28>>2]=0;J[l+32>>2]=16384;J[l+24>>2]=a+J[l+40>>2];if((b|0)>0){a=16384;while(1){d=b-1|0;f=J[l>>2]+(J[u+(d<<2)>>2]<<3)|0;e=J[f>>2];i=e<<10;if(i>>>0<=a>>>0){while(1){g=J[l+28>>2];J[l+28>>2]=g+1;H[g+J[l+24>>2]|0]=a;a=J[l+32>>2]>>>8|0;J[l+32>>2]=a;if(a>>>0>=i>>>0){continue}break}}g=J[f+4>>2];f=(a>>>0)/(e>>>0)|0;a=g+((f<<12)+(a-P(e,f)|0)|0)|0;J[l+32>>2]=a;e=(b|0)>1;b=d;if(e){continue}break}}yb(l,c);a=J[l>>2];if(a){J[l+4>>2]=a;na(a)}a=J[l+48>>2];if(a){na(a)}ba=l- -64|0;break X}h=1;break v;case 2:u=a;k=0;n=0;r=0;s=0;f=0;i=0;l=ba+-64|0;ba=l;J[l+56>>2]=0;J[l+48>>2]=0;J[l+52>>2]=0;na:{a=p+1|0;if(a){if(a>>>0>=536870912){break a}a=a<<3;n=oa(a);J[l+48>>2]=n;k=pa(n,0,(p<<3)+8|0)+a|0}oa:{if((b|0)<=0){break oa}a=0;if(b>>>0>=4){g=b&-4;while(1){c=a<<2;d=(J[c+u>>2]<<3)+n|0;j=J[d>>2];h=J[d+4>>2];j=j+1|0;h=j?h:h+1|0;J[d>>2]=j;J[d+4>>2]=h;d=(J[u+(c|4)>>2]<<3)+n|0;h=J[d>>2];j=J[d+4>>2];h=h+1|0;j=h?j:j+1|0;J[d>>2]=h;J[d+4>>2]=j;d=(J[u+(c|8)>>2]<<3)+n|0;h=J[d>>2];m=J[d+4>>2];h=h+1|0;m=h?m:m+1|0;J[d>>2]=h;J[d+4>>2]=m;c=(J[u+(c|12)>>2]<<3)+n|0;d=J[c>>2];h=J[c+4>>2];d=d+1|0;h=d?h:h+1|0;J[c>>2]=d;J[c+4>>2]=h;a=a+4|0;r=r+4|0;if((g|0)!=(r|0)){continue}break}}d=b&3;if(!d){break oa}while(1){c=(J[u+(a<<2)>>2]<<3)+n|0;g=J[c>>2];j=J[c+4>>2];g=g+1|0;j=g?j:j+1|0;J[c>>2]=g;J[c+4>>2]=j;a=a+1|0;s=s+1|0;if((d|0)!=(s|0)){continue}break}}J[l+8>>2]=0;J[l+12>>2]=0;J[l+16>>2]=0;J[l+20>>2]=0;J[l+24>>2]=0;J[l+28>>2]=0;J[l+32>>2]=0;J[l>>2]=0;J[l+4>>2]=0;J[l+40>>2]=0;J[l+44>>2]=0;c=e;e=0;r=0;d=0;s=0;t=ba-32|0;ba=t;a=k-n>>3;pa:{if((a|0)<=0){break pa}x=a&3;qa:{if(a>>>0<4){a=0;break qa}A=a&-4;a=0;while(1){g=(a<<3)+n|0;p=J[g>>2];m=J[g+4>>2];E=m;q=a|1;k=(q<<3)+n|0;g=J[k>>2];v=a|2;D=(v<<3)+n|0;h=J[D>>2];y=a|3;z=(y<<3)+n|0;j=J[z>>2];d=p|m?a:d;m=J[k+4>>2];d=m|g?q:d;q=J[D+4>>2];k=J[z+4>>2];d=k|j?y:q|h?v:d;v=h;h=m;m=i+E|0;f=f+p|0;h=(f>>>0

>>0?m+1|0:m)+h|0;m=f;f=g+f|0;q=(m>>>0>f>>>0?h+1|0:h)+q|0;g=f;f=f+v|0;g=(g>>>0>f>>>0?q+1|0:q)+k|0;m=f;f=f+j|0;i=m>>>0>f>>>0?g+1|0:g;a=a+4|0;e=e+4|0;if((A|0)!=(e|0)){continue}break}}if(!x){break pa}while(1){g=(a<<3)+n|0;e=J[g>>2];g=J[g+4>>2];d=e|g?a:d;a=a+1|0;j=g+i|0;f=e+f|0;i=f>>>0>>0?j+1|0:j;r=r+1|0;if((x|0)!=(r|0)){continue}break}}g=d+1|0;J[l+12>>2]=g;e=J[l>>2];a=J[l+4>>2]-e>>3;ra:{if(a>>>0>>0){Wa(l,g-a|0);break ra}if(a>>>0<=g>>>0){break ra}J[l+4>>2]=e+(g<<3)}k=0;sa:{ta:{ua:{va:{if((d|0)>=0){w=+(f>>>0)+ +(i>>>0)*4294967296;f=J[l>>2];a=0;while(1){i=a<<3;h=i+n|0;e=J[h>>2];h=J[h+4>>2];j=(e|h)!=0;m=f+i|0;o=(+(e>>>0)+ +(h>>>0)*4294967296)/w*4096+.5;wa:{if(o<4294967296&o>=0){e=~~o>>>0;break wa}e=0}e=e?e:j?1:e;J[m>>2]=e;k=e+k|0;e=(a|0)==(d|0);a=a+1|0;if(!e){continue}break}if((k|0)==4096){break va}}J[t+16>>2]=0;J[t+8>>2]=0;J[t+12>>2]=0;p=0;xa:{if(!g){break xa}if(g>>>0>=1073741824){break a}i=g<<2;s=oa(i);J[t+8>>2]=s;e=0;f=pa(s,0,i);a=0;if(d>>>0>=7){h=g&-8;while(1){J[f+(a<<2)>>2]=a;j=a|1;J[f+(j<<2)>>2]=j;j=a|2;J[f+(j<<2)>>2]=j;j=a|3;J[f+(j<<2)>>2]=j;j=a|4;J[f+(j<<2)>>2]=j;j=a|5;J[f+(j<<2)>>2]=j;j=a|6;J[f+(j<<2)>>2]=j;j=a|7;J[f+(j<<2)>>2]=j;a=a+8|0;p=p+8|0;if((h|0)!=(p|0)){continue}break}}p=f+i|0;i=g&7;if(!i){break xa}while(1){J[f+(a<<2)>>2]=a;a=a+1|0;e=e+1|0;if((i|0)!=(e|0)){continue}break}}J[t+24>>2]=l;a=p-s|0;e=a>>2;ya:{za:{if((a|0)>=513){a=e;while(1){f=oa(a<<2);if(f){break za}f=a>>>0>1;a=a>>>1|0;if(f){continue}break}}ec(s,p,t+24|0,e,0,0);break ya}ec(s,p,t+24|0,e,f,a);na(f)}if((k|0)<4096){a=J[l>>2]+(J[p-4>>2]<<3)|0;J[a>>2]=(J[a>>2]-k|0)+4096;a=0;break ua}if((d|0)>0){h=J[l>>2];r=k-4096|0;while(1){o=4096/+(k|0);e=d;while(1){Aa:{Ba:{f=h+(J[(e<<2)+s>>2]<<3)|0;a=J[f>>2];if(a>>>0>=2){q=f;m=a;w=V(o*+(a>>>0));Ca:{if(R(w)<2147483648){i=~~w;break Ca}i=-2147483648}f=(a|0)==(i|0)?1:a-i|0;a=(a|0)>(f|0)?f:a-1|0;a=(a|0)<(r|0)?a:r;J[q>>2]=m-a;r=r-a|0;k=k-a|0;if((k|0)!=4096){break Ba}k=4096;break Aa}if((d|0)!=(e|0)){break Aa}a=1;break ua}a=(e|0)>1;e=e-1|0;if(a){continue}}break}a=0;if((r|0)>0){continue}break}break ua}a=0;if(k>>>0<4097){break ua}while(1)continue}if((d|0)<0){break sa}break ta}e=J[t+8>>2];if(e){na(e)}if((d|0)<0|a){break sa}}e=J[l>>2];k=0;r=0;a=0;if(d>>>0>=3){i=g&-4;s=0;while(1){f=r<<3;h=f+e|0;J[h+4>>2]=a;j=e+(f|8)|0;a=J[h>>2]+a|0;J[j+4>>2]=a;h=e+(f|16)|0;a=a+J[j>>2]|0;J[h+4>>2]=a;f=e+(f|24)|0;a=a+J[h>>2]|0;J[f+4>>2]=a;a=a+J[f>>2]|0;r=r+4|0;s=s+4|0;if((i|0)!=(s|0)){continue}break}}f=g&3;if(f){while(1){i=e+(r<<3)|0;J[i+4>>2]=a;r=r+1|0;a=J[i>>2]+a|0;k=k+1|0;if((f|0)!=(k|0)){continue}break}}if((a|0)!=4096){break sa}a=0;o=0;Da:{if((d|0)<0){break Da}f=J[l>>2];if(d){d=g&-2;e=0;while(1){i=a<<3;h=J[i+f>>2];if(h){i=i+n|0;o=(+M[i>>2]+ +M[i+4>>2]*4294967296)*va(+(h>>>0)*.000244140625)+o}i=(a|1)<<3;h=J[i+f>>2];if(h){i=i+n|0;o=(+M[i>>2]+ +M[i+4>>2]*4294967296)*va(+(h>>>0)*.000244140625)+o}a=a+2|0;e=e+2|0;if((d|0)!=(e|0)){continue}break}}if(!(g&1)){break Da}a=a<<3;d=J[a+f>>2];if(!d){break Da}a=a+n|0;o=(+M[a>>2]+ +M[a+4>>2]*4294967296)*va(+(d>>>0)*.000244140625)+o}o=W(-o);Ea:{if(o<0x10000000000000000&o>=0){d=R(o)>=1?~~(o>0?T(V(o*2.3283064365386963e-10),4294967295):W((o-+(~~o>>>0>>>0))*2.3283064365386963e-10))>>>0:0;a=~~o>>>0;break Ea}d=0;a=0}J[l+16>>2]=a;J[l+20>>2]=d;Va(l,c)}ba=t+32|0;d=J[l+16>>2];e=J[l+20>>2];a=J[c+4>>2]-J[c>>2]|0;J[l+40>>2]=a;J[l+44>>2]=0;q=e<<1|d>>>31;d=(d<<1)+39|0;m=d>>>0<39?q+1|0:q;d=a+((m&7)<<29|d>>>3)|0;g=m>>>3|0;g=a>>>0>d>>>0?g+1|0:g;a=d+8|0;Ia(c,a);a=J[c>>2];J[l+28>>2]=0;J[l+32>>2]=16384;J[l+24>>2]=a+J[l+40>>2];if((b|0)>0){a=16384;while(1){d=b-1|0;f=J[l>>2]+(J[u+(d<<2)>>2]<<3)|0;e=J[f>>2];i=e<<10;if(i>>>0<=a>>>0){while(1){g=J[l+28>>2];J[l+28>>2]=g+1;H[g+J[l+24>>2]|0]=a;a=J[l+32>>2]>>>8|0;J[l+32>>2]=a;if(a>>>0>=i>>>0){continue}break}}g=J[f+4>>2];f=(a>>>0)/(e>>>0)|0;a=g+((f<<12)+(a-P(e,f)|0)|0)|0;J[l+32>>2]=a;e=(b|0)>1;b=d;if(e){continue}break}}yb(l,c);a=J[l>>2];if(a){J[l+4>>2]=a;na(a)}a=J[l+48>>2];if(a){na(a)}ba=l- -64|0;break na}h=1;break v;case 3:u=a;k=0;n=0;r=0;s=0;f=0;i=0;l=ba+-64|0;ba=l;J[l+56>>2]=0;J[l+48>>2]=0;J[l+52>>2]=0;Fa:{a=p+1|0;if(a){if(a>>>0>=536870912){break a}a=a<<3;n=oa(a);J[l+48>>2]=n;k=pa(n,0,(p<<3)+8|0)+a|0}Ga:{if((b|0)<=0){break Ga}a=0;if(b>>>0>=4){h=b&-4;while(1){c=a<<2;d=(J[c+u>>2]<<3)+n|0;g=J[d>>2];q=J[d+4>>2];g=g+1|0;q=g?q:q+1|0;J[d>>2]=g;J[d+4>>2]=q;d=(J[u+(c|4)>>2]<<3)+n|0;g=J[d>>2];m=J[d+4>>2];g=g+1|0;m=g?m:m+1|0;J[d>>2]=g;J[d+4>>2]=m;d=(J[u+(c|8)>>2]<<3)+n|0;j=J[d>>2];g=J[d+4>>2];j=j+1|0;g=j?g:g+1|0;J[d>>2]=j;J[d+4>>2]=g;c=(J[u+(c|12)>>2]<<3)+n|0;d=J[c>>2];q=J[c+4>>2];d=d+1|0;q=d?q:q+1|0;J[c>>2]=d;J[c+4>>2]=q;a=a+4|0;r=r+4|0;if((h|0)!=(r|0)){continue}break}}d=b&3;if(!d){break Ga}while(1){c=(J[u+(a<<2)>>2]<<3)+n|0;g=J[c>>2];m=J[c+4>>2];g=g+1|0;m=g?m:m+1|0;J[c>>2]=g;J[c+4>>2]=m;a=a+1|0;s=s+1|0;if((d|0)!=(s|0)){continue}break}}J[l+8>>2]=0;J[l+12>>2]=0;J[l+16>>2]=0;J[l+20>>2]=0;J[l+24>>2]=0;J[l+28>>2]=0;J[l+32>>2]=0;J[l>>2]=0;J[l+4>>2]=0;J[l+40>>2]=0;J[l+44>>2]=0;c=e;e=0;r=0;d=0;s=0;t=ba-32|0;ba=t;a=k-n>>3;Ha:{if((a|0)<=0){break Ha}A=a&3;Ia:{if(a>>>0<4){a=0;break Ia}E=a&-4;a=0;while(1){g=(a<<3)+n|0;x=J[g>>2];m=J[g+4>>2];D=m;q=a|1;k=(q<<3)+n|0;g=J[k>>2];v=a|2;p=(v<<3)+n|0;h=J[p>>2];y=a|3;z=(y<<3)+n|0;j=J[z>>2];d=m|x?a:d;m=J[k+4>>2];d=m|g?q:d;q=J[p+4>>2];k=J[z+4>>2];d=k|j?y:q|h?v:d;v=q;p=g;g=i+D|0;f=f+x|0;q=(f>>>0>>0?g+1|0:g)+m|0;g=f;f=f+p|0;g=(g>>>0>f>>>0?q+1|0:q)+v|0;m=f;f=f+h|0;h=(m>>>0>f>>>0?g+1|0:g)+k|0;g=f;f=f+j|0;i=g>>>0>f>>>0?h+1|0:h;a=a+4|0;e=e+4|0;if((E|0)!=(e|0)){continue}break}}if(!A){break Ha}while(1){g=(a<<3)+n|0;e=J[g>>2];g=J[g+4>>2];d=e|g?a:d;a=a+1|0;m=g+i|0;f=e+f|0;i=f>>>0>>0?m+1|0:m;r=r+1|0;if((A|0)!=(r|0)){continue}break}}g=d+1|0;J[l+12>>2]=g;e=J[l>>2];a=J[l+4>>2]-e>>3;Ja:{if(a>>>0>>0){Wa(l,g-a|0);break Ja}if(a>>>0<=g>>>0){break Ja}J[l+4>>2]=e+(g<<3)}k=0;Ka:{La:{Ma:{Na:{if((d|0)>=0){w=+(f>>>0)+ +(i>>>0)*4294967296;f=J[l>>2];a=0;while(1){i=a<<3;h=i+n|0;e=J[h>>2];h=J[h+4>>2];j=(e|h)!=0;m=f+i|0;o=(+(e>>>0)+ +(h>>>0)*4294967296)/w*4096+.5;Oa:{if(o<4294967296&o>=0){e=~~o>>>0;break Oa}e=0}e=e?e:j?1:e;J[m>>2]=e;k=e+k|0;e=(a|0)==(d|0);a=a+1|0;if(!e){continue}break}if((k|0)==4096){break Na}}J[t+16>>2]=0;J[t+8>>2]=0;J[t+12>>2]=0;p=0;Pa:{if(!g){break Pa}if(g>>>0>=1073741824){break a}i=g<<2;s=oa(i);J[t+8>>2]=s;e=0;f=pa(s,0,i);a=0;if(d>>>0>=7){h=g&-8;while(1){J[f+(a<<2)>>2]=a;j=a|1;J[f+(j<<2)>>2]=j;j=a|2;J[f+(j<<2)>>2]=j;j=a|3;J[f+(j<<2)>>2]=j;j=a|4;J[f+(j<<2)>>2]=j;j=a|5;J[f+(j<<2)>>2]=j;j=a|6;J[f+(j<<2)>>2]=j;j=a|7;J[f+(j<<2)>>2]=j;a=a+8|0;p=p+8|0;if((h|0)!=(p|0)){continue}break}}p=f+i|0;i=g&7;if(!i){break Pa}while(1){J[f+(a<<2)>>2]=a;a=a+1|0;e=e+1|0;if((i|0)!=(e|0)){continue}break}}J[t+24>>2]=l;a=p-s|0;e=a>>2;Qa:{Ra:{if((a|0)>=513){a=e;while(1){f=oa(a<<2);if(f){break Ra}f=a>>>0>1;a=a>>>1|0;if(f){continue}break}}dc(s,p,t+24|0,e,0,0);break Qa}dc(s,p,t+24|0,e,f,a);na(f)}if((k|0)<4096){a=J[l>>2]+(J[p-4>>2]<<3)|0;J[a>>2]=(J[a>>2]-k|0)+4096;a=0;break Ma}if((d|0)>0){h=J[l>>2];r=k-4096|0;while(1){o=4096/+(k|0);e=d;while(1){Sa:{Ta:{f=h+(J[(e<<2)+s>>2]<<3)|0;a=J[f>>2];if(a>>>0>=2){q=f;m=a;w=V(o*+(a>>>0));Ua:{if(R(w)<2147483648){i=~~w;break Ua}i=-2147483648}f=(a|0)==(i|0)?1:a-i|0;a=(a|0)>(f|0)?f:a-1|0;a=(a|0)<(r|0)?a:r;J[q>>2]=m-a;r=r-a|0;k=k-a|0;if((k|0)!=4096){break Ta}k=4096;break Sa}if((d|0)!=(e|0)){break Sa}a=1;break Ma}a=(e|0)>1;e=e-1|0;if(a){continue}}break}a=0;if((r|0)>0){continue}break}break Ma}a=0;if(k>>>0<4097){break Ma}while(1)continue}if((d|0)<0){break Ka}break La}e=J[t+8>>2];if(e){na(e)}if((d|0)<0|a){break Ka}}e=J[l>>2];k=0;r=0;a=0;if(d>>>0>=3){i=g&-4;s=0;while(1){f=r<<3;h=f+e|0;J[h+4>>2]=a;j=e+(f|8)|0;a=J[h>>2]+a|0;J[j+4>>2]=a;h=e+(f|16)|0;a=a+J[j>>2]|0;J[h+4>>2]=a;f=e+(f|24)|0;a=a+J[h>>2]|0;J[f+4>>2]=a;a=a+J[f>>2]|0;r=r+4|0;s=s+4|0;if((i|0)!=(s|0)){continue}break}}f=g&3;if(f){while(1){i=e+(r<<3)|0;J[i+4>>2]=a;r=r+1|0;a=J[i>>2]+a|0;k=k+1|0;if((f|0)!=(k|0)){continue}break}}if((a|0)!=4096){break Ka}a=0;o=0;Va:{if((d|0)<0){break Va}f=J[l>>2];if(d){d=g&-2;e=0;while(1){i=a<<3;h=J[i+f>>2];if(h){i=i+n|0;o=(+M[i>>2]+ +M[i+4>>2]*4294967296)*va(+(h>>>0)*.000244140625)+o}i=(a|1)<<3;h=J[i+f>>2];if(h){i=i+n|0;o=(+M[i>>2]+ +M[i+4>>2]*4294967296)*va(+(h>>>0)*.000244140625)+o}a=a+2|0;e=e+2|0;if((d|0)!=(e|0)){continue}break}}if(!(g&1)){break Va}a=a<<3;d=J[a+f>>2];if(!d){break Va}a=a+n|0;o=(+M[a>>2]+ +M[a+4>>2]*4294967296)*va(+(d>>>0)*.000244140625)+o}o=W(-o);Wa:{if(o<0x10000000000000000&o>=0){d=R(o)>=1?~~(o>0?T(V(o*2.3283064365386963e-10),4294967295):W((o-+(~~o>>>0>>>0))*2.3283064365386963e-10))>>>0:0;a=~~o>>>0;break Wa}d=0;a=0}J[l+16>>2]=a;J[l+20>>2]=d;Va(l,c)}ba=t+32|0;d=J[l+16>>2];e=J[l+20>>2];a=J[c+4>>2]-J[c>>2]|0;J[l+40>>2]=a;J[l+44>>2]=0;g=e<<1|d>>>31;d=(d<<1)+39|0;g=d>>>0<39?g+1|0:g;d=a+((g&7)<<29|d>>>3)|0;h=g>>>3|0;j=a>>>0>d>>>0?h+1|0:h;a=d+8|0;Ia(c,a);a=J[c>>2];J[l+28>>2]=0;J[l+32>>2]=16384;J[l+24>>2]=a+J[l+40>>2];if((b|0)>0){a=16384;while(1){d=b-1|0;f=J[l>>2]+(J[u+(d<<2)>>2]<<3)|0;e=J[f>>2];i=e<<10;if(i>>>0<=a>>>0){while(1){g=J[l+28>>2];J[l+28>>2]=g+1;H[g+J[l+24>>2]|0]=a;a=J[l+32>>2]>>>8|0;J[l+32>>2]=a;if(a>>>0>=i>>>0){continue}break}}g=J[f+4>>2];f=(a>>>0)/(e>>>0)|0;a=g+((f<<12)+(a-P(e,f)|0)|0)|0;J[l+32>>2]=a;e=(b|0)>1;b=d;if(e){continue}break}}yb(l,c);a=J[l>>2];if(a){J[l+4>>2]=a;na(a)}a=J[l+48>>2];if(a){na(a)}ba=l- -64|0;break Fa}h=1;break v;case 4:c=0;k=0;n=0;r=0;i=ba+-64|0;ba=i;J[i+56>>2]=0;J[i+48>>2]=0;J[i+52>>2]=0;Xa:{d=p+1|0;if(d){if(d>>>0>=536870912){break a}d=d<<3;c=oa(d);J[i+48>>2]=c;k=pa(c,0,(p<<3)+8|0)+d|0}Ya:{if((b|0)<=0){break Ya}p=0;if(b>>>0>=4){h=b&-4;while(1){d=p<<2;f=(J[d+a>>2]<<3)+c|0;j=J[f>>2];g=J[f+4>>2];j=j+1|0;g=j?g:g+1|0;J[f>>2]=j;J[f+4>>2]=g;f=(J[(d|4)+a>>2]<<3)+c|0;j=J[f>>2];g=J[f+4>>2];j=j+1|0;g=j?g:g+1|0;J[f>>2]=j;J[f+4>>2]=g;f=(J[(d|8)+a>>2]<<3)+c|0;g=J[f>>2];j=J[f+4>>2];g=g+1|0;j=g?j:j+1|0;J[f>>2]=g;J[f+4>>2]=j;d=(J[(d|12)+a>>2]<<3)+c|0;f=J[d>>2];g=J[d+4>>2];f=f+1|0;g=f?g:g+1|0;J[d>>2]=f;J[d+4>>2]=g;p=p+4|0;n=n+4|0;if((h|0)!=(n|0)){continue}break}}f=b&3;if(!f){break Ya}while(1){d=(J[(p<<2)+a>>2]<<3)+c|0;h=J[d>>2];g=J[d+4>>2];h=h+1|0;g=h?g:g+1|0;J[d>>2]=h;J[d+4>>2]=g;p=p+1|0;r=r+1|0;if((f|0)!=(r|0)){continue}break}}J[i+8>>2]=0;J[i+12>>2]=0;J[i+16>>2]=0;J[i+20>>2]=0;J[i+24>>2]=0;J[i+28>>2]=0;J[i+32>>2]=0;J[i>>2]=0;J[i+4>>2]=0;J[i+40>>2]=0;J[i+44>>2]=0;Jg(i,c,k-c>>3,e);d=J[i+16>>2];f=J[i+20>>2];c=J[e+4>>2]-J[e>>2]|0;J[i+40>>2]=c;J[i+44>>2]=0;g=f<<1|d>>>31;d=(d<<1)+39|0;j=d>>>0<39?g+1|0:g;d=c+((j&7)<<29|d>>>3)|0;g=j>>>3|0;q=c>>>0>d>>>0?g+1|0:g;c=d+8|0;Ia(e,c);c=J[e>>2];J[i+28>>2]=0;J[i+32>>2]=16384;J[i+24>>2]=c+J[i+40>>2];if((b|0)>0){p=16384;while(1){c=b-1|0;f=J[i>>2]+(J[(c<<2)+a>>2]<<3)|0;d=J[f>>2];g=d<<10;if(g>>>0<=p>>>0){while(1){h=J[i+28>>2];J[i+28>>2]=h+1;H[h+J[i+24>>2]|0]=p;p=J[i+32>>2]>>>8|0;J[i+32>>2]=p;if(g>>>0<=p>>>0){continue}break}}g=J[f+4>>2];f=(p>>>0)/(d>>>0)|0;p=g+((f<<12)+(p-P(d,f)|0)|0)|0;J[i+32>>2]=p;d=(b|0)>1;b=c;if(d){continue}break}}yb(i,e);a=J[i>>2];if(a){J[i+4>>2]=a;na(a)}a=J[i+48>>2];if(a){na(a)}ba=i- -64|0;break Xa}h=1;break v;case 5:u=a;k=0;n=0;r=0;s=0;f=0;i=0;l=ba+-64|0;ba=l;J[l+56>>2]=0;J[l+48>>2]=0;J[l+52>>2]=0;Za:{a=p+1|0;if(a){if(a>>>0>=536870912){break a}a=a<<3;n=oa(a);J[l+48>>2]=n;k=pa(n,0,(p<<3)+8|0)+a|0}_a:{if((b|0)<=0){break _a}a=0;if(b>>>0>=4){h=b&-4;while(1){c=a<<2;d=(J[c+u>>2]<<3)+n|0;j=J[d>>2];g=J[d+4>>2];j=j+1|0;g=j?g:g+1|0;J[d>>2]=j;J[d+4>>2]=g;d=(J[u+(c|4)>>2]<<3)+n|0;g=J[d>>2];j=J[d+4>>2];g=g+1|0;j=g?j:j+1|0;J[d>>2]=g;J[d+4>>2]=j;d=(J[u+(c|8)>>2]<<3)+n|0;g=J[d>>2];q=J[d+4>>2];g=g+1|0;q=g?q:q+1|0;J[d>>2]=g;J[d+4>>2]=q;c=(J[u+(c|12)>>2]<<3)+n|0;d=J[c>>2];g=J[c+4>>2];d=d+1|0;g=d?g:g+1|0;J[c>>2]=d;J[c+4>>2]=g;a=a+4|0;r=r+4|0;if((h|0)!=(r|0)){continue}break}}d=b&3;if(!d){break _a}while(1){c=(J[u+(a<<2)>>2]<<3)+n|0;g=J[c>>2];j=J[c+4>>2];g=g+1|0;j=g?j:j+1|0;J[c>>2]=g;J[c+4>>2]=j;a=a+1|0;s=s+1|0;if((d|0)!=(s|0)){continue}break}}J[l+8>>2]=0;J[l+12>>2]=0;J[l+16>>2]=0;J[l+20>>2]=0;J[l+24>>2]=0;J[l+28>>2]=0;J[l+32>>2]=0;J[l>>2]=0;J[l+4>>2]=0;J[l+40>>2]=0;J[l+44>>2]=0;c=e;e=0;r=0;d=0;s=0;t=ba-32|0;ba=t;a=k-n>>3;$a:{if((a|0)<=0){break $a}A=a&3;ab:{if(a>>>0<4){a=0;break ab}E=a&-4;a=0;while(1){g=(a<<3)+n|0;x=J[g>>2];m=J[g+4>>2];D=m;q=a|1;k=(q<<3)+n|0;g=J[k>>2];v=a|2;p=(v<<3)+n|0;h=J[p>>2];y=a|3;z=(y<<3)+n|0;j=J[z>>2];d=m|x?a:d;m=J[k+4>>2];d=m|g?q:d;q=J[p+4>>2];k=J[z+4>>2];d=k|j?y:q|h?v:d;v=q;p=g;q=i+D|0;f=f+x|0;g=(f>>>0>>0?q+1|0:q)+m|0;m=f;f=f+p|0;g=(m>>>0>f>>>0?g+1|0:g)+v|0;m=f;f=f+h|0;h=(m>>>0>f>>>0?g+1|0:g)+k|0;g=f;f=f+j|0;i=g>>>0>f>>>0?h+1|0:h;a=a+4|0;e=e+4|0;if((E|0)!=(e|0)){continue}break}}if(!A){break $a}while(1){g=(a<<3)+n|0;e=J[g>>2];g=J[g+4>>2];d=e|g?a:d;a=a+1|0;j=g+i|0;f=e+f|0;i=f>>>0>>0?j+1|0:j;r=r+1|0;if((A|0)!=(r|0)){continue}break}}g=d+1|0;J[l+12>>2]=g;e=J[l>>2];a=J[l+4>>2]-e>>3;bb:{if(a>>>0>>0){Wa(l,g-a|0);break bb}if(a>>>0<=g>>>0){break bb}J[l+4>>2]=e+(g<<3)}k=0;cb:{db:{eb:{fb:{if((d|0)>=0){w=+(f>>>0)+ +(i>>>0)*4294967296;f=J[l>>2];a=0;while(1){i=a<<3;h=i+n|0;e=J[h>>2];h=J[h+4>>2];j=(e|h)!=0;m=f+i|0;o=(+(e>>>0)+ +(h>>>0)*4294967296)/w*4096+.5;gb:{if(o<4294967296&o>=0){e=~~o>>>0;break gb}e=0}e=e?e:j?1:e;J[m>>2]=e;k=e+k|0;e=(a|0)==(d|0);a=a+1|0;if(!e){continue}break}if((k|0)==4096){break fb}}J[t+16>>2]=0;J[t+8>>2]=0;J[t+12>>2]=0;p=0;hb:{if(!g){break hb}if(g>>>0>=1073741824){break a}i=g<<2;s=oa(i);J[t+8>>2]=s;e=0;f=pa(s,0,i);a=0;if(d>>>0>=7){h=g&-8;while(1){J[f+(a<<2)>>2]=a;j=a|1;J[f+(j<<2)>>2]=j;j=a|2;J[f+(j<<2)>>2]=j;j=a|3;J[f+(j<<2)>>2]=j;j=a|4;J[f+(j<<2)>>2]=j;j=a|5;J[f+(j<<2)>>2]=j;j=a|6;J[f+(j<<2)>>2]=j;j=a|7;J[f+(j<<2)>>2]=j;a=a+8|0;p=p+8|0;if((h|0)!=(p|0)){continue}break}}p=f+i|0;i=g&7;if(!i){break hb}while(1){J[f+(a<<2)>>2]=a;a=a+1|0;e=e+1|0;if((i|0)!=(e|0)){continue}break}}J[t+24>>2]=l;a=p-s|0;e=a>>2;ib:{jb:{if((a|0)>=513){a=e;while(1){f=oa(a<<2);if(f){break jb}f=a>>>0>1;a=a>>>1|0;if(f){continue}break}}cc(s,p,t+24|0,e,0,0);break ib}cc(s,p,t+24|0,e,f,a);na(f)}if((k|0)<4096){a=J[l>>2]+(J[p-4>>2]<<3)|0;J[a>>2]=(J[a>>2]-k|0)+4096;a=0;break eb}if((d|0)>0){h=J[l>>2];r=k-4096|0;while(1){o=4096/+(k|0);e=d;while(1){kb:{lb:{f=h+(J[(e<<2)+s>>2]<<3)|0;a=J[f>>2];if(a>>>0>=2){q=f;m=a;w=V(o*+(a>>>0));mb:{if(R(w)<2147483648){i=~~w;break mb}i=-2147483648}f=(a|0)==(i|0)?1:a-i|0;a=(a|0)>(f|0)?f:a-1|0;a=(a|0)<(r|0)?a:r;J[q>>2]=m-a;r=r-a|0;k=k-a|0;if((k|0)!=4096){break lb}k=4096;break kb}if((d|0)!=(e|0)){break kb}a=1;break eb}a=(e|0)>1;e=e-1|0;if(a){continue}}break}a=0;if((r|0)>0){continue}break}break eb}a=0;if(k>>>0<4097){break eb}while(1)continue}if((d|0)<0){break cb}break db}e=J[t+8>>2];if(e){na(e)}if((d|0)<0|a){break cb}}e=J[l>>2];k=0;r=0;a=0;if(d>>>0>=3){i=g&-4;s=0;while(1){f=r<<3;h=f+e|0;J[h+4>>2]=a;j=e+(f|8)|0;a=J[h>>2]+a|0;J[j+4>>2]=a;h=e+(f|16)|0;a=a+J[j>>2]|0;J[h+4>>2]=a;f=e+(f|24)|0;a=a+J[h>>2]|0;J[f+4>>2]=a;a=a+J[f>>2]|0;r=r+4|0;s=s+4|0;if((i|0)!=(s|0)){continue}break}}f=g&3;if(f){while(1){i=e+(r<<3)|0;J[i+4>>2]=a;r=r+1|0;a=J[i>>2]+a|0;k=k+1|0;if((f|0)!=(k|0)){continue}break}}if((a|0)!=4096){break cb}a=0;o=0;nb:{if((d|0)<0){break nb}f=J[l>>2];if(d){d=g&-2;e=0;while(1){i=a<<3;h=J[i+f>>2];if(h){i=i+n|0;o=(+M[i>>2]+ +M[i+4>>2]*4294967296)*va(+(h>>>0)*.000244140625)+o}i=(a|1)<<3;h=J[i+f>>2];if(h){i=i+n|0;o=(+M[i>>2]+ +M[i+4>>2]*4294967296)*va(+(h>>>0)*.000244140625)+o}a=a+2|0;e=e+2|0;if((d|0)!=(e|0)){continue}break}}if(!(g&1)){break nb}a=a<<3;d=J[a+f>>2];if(!d){break nb}a=a+n|0;o=(+M[a>>2]+ +M[a+4>>2]*4294967296)*va(+(d>>>0)*.000244140625)+o}o=W(-o);ob:{if(o<0x10000000000000000&o>=0){d=R(o)>=1?~~(o>0?T(V(o*2.3283064365386963e-10),4294967295):W((o-+(~~o>>>0>>>0))*2.3283064365386963e-10))>>>0:0;a=~~o>>>0;break ob}d=0;a=0}J[l+16>>2]=a;J[l+20>>2]=d;Va(l,c)}ba=t+32|0;d=J[l+16>>2];e=J[l+20>>2];a=J[c+4>>2]-J[c>>2]|0;J[l+40>>2]=a;J[l+44>>2]=0;g=e<<1|d>>>31;d=(d<<1)+39|0;q=d>>>0<39?g+1|0:g;d=a+((q&7)<<29|d>>>3)|0;h=q>>>3|0;m=a>>>0>d>>>0?h+1|0:h;a=d+8|0;Ia(c,a);a=J[c>>2];J[l+28>>2]=0;J[l+32>>2]=16384;J[l+24>>2]=a+J[l+40>>2];if((b|0)>0){a=16384;while(1){d=b-1|0;f=J[l>>2]+(J[u+(d<<2)>>2]<<3)|0;e=J[f>>2];i=e<<10;if(i>>>0<=a>>>0){while(1){g=J[l+28>>2];J[l+28>>2]=g+1;H[g+J[l+24>>2]|0]=a;a=J[l+32>>2]>>>8|0;J[l+32>>2]=a;if(a>>>0>=i>>>0){continue}break}}g=J[f+4>>2];f=(a>>>0)/(e>>>0)|0;a=g+((f<<12)+(a-P(e,f)|0)|0)|0;J[l+32>>2]=a;e=(b|0)>1;b=d;if(e){continue}break}}yb(l,c);a=J[l>>2];if(a){J[l+4>>2]=a;na(a)}a=J[l+48>>2];if(a){na(a)}ba=l- -64|0;break Za}h=1;break v;case 6:u=a;k=0;n=0;r=0;s=0;f=0;i=0;l=ba+-64|0;ba=l;J[l+56>>2]=0;J[l+48>>2]=0;J[l+52>>2]=0;pb:{a=p+1|0;if(a){if(a>>>0>=536870912){break a}a=a<<3;n=oa(a);J[l+48>>2]=n;k=pa(n,0,(p<<3)+8|0)+a|0}qb:{if((b|0)<=0){break qb}a=0;if(b>>>0>=4){h=b&-4;while(1){c=a<<2;d=(J[c+u>>2]<<3)+n|0;j=J[d>>2];g=J[d+4>>2];j=j+1|0;g=j?g:g+1|0;J[d>>2]=j;J[d+4>>2]=g;d=(J[u+(c|4)>>2]<<3)+n|0;g=J[d>>2];q=J[d+4>>2];g=g+1|0;q=g?q:q+1|0;J[d>>2]=g;J[d+4>>2]=q;d=(J[u+(c|8)>>2]<<3)+n|0;g=J[d>>2];m=J[d+4>>2];g=g+1|0;m=g?m:m+1|0;J[d>>2]=g;J[d+4>>2]=m;c=(J[u+(c|12)>>2]<<3)+n|0;d=J[c>>2];g=J[c+4>>2];d=d+1|0;g=d?g:g+1|0;J[c>>2]=d;J[c+4>>2]=g;a=a+4|0;r=r+4|0;if((h|0)!=(r|0)){continue}break}}d=b&3;if(!d){break qb}while(1){c=(J[u+(a<<2)>>2]<<3)+n|0;g=J[c>>2];q=J[c+4>>2];g=g+1|0;q=g?q:q+1|0;J[c>>2]=g;J[c+4>>2]=q;a=a+1|0;s=s+1|0;if((d|0)!=(s|0)){continue}break}}J[l+8>>2]=0;J[l+12>>2]=0;J[l+16>>2]=0;J[l+20>>2]=0;J[l+24>>2]=0;J[l+28>>2]=0;J[l+32>>2]=0;J[l>>2]=0;J[l+4>>2]=0;J[l+40>>2]=0;J[l+44>>2]=0;c=e;e=0;r=0;d=0;s=0;t=ba-32|0;ba=t;a=k-n>>3;rb:{if((a|0)<=0){break rb}x=a&3;sb:{if(a>>>0<4){a=0;break sb}A=a&-4;a=0;while(1){g=(a<<3)+n|0;p=J[g>>2];m=J[g+4>>2];E=m;q=a|1;k=(q<<3)+n|0;g=J[k>>2];v=a|2;D=(v<<3)+n|0;h=J[D>>2];y=a|3;z=(y<<3)+n|0;j=J[z>>2];d=p|m?a:d;m=J[k+4>>2];d=m|g?q:d;q=J[D+4>>2];k=J[z+4>>2];d=k|j?y:q|h?v:d;v=h;h=g;g=m;m=i+E|0;f=f+p|0;g=(f>>>0

>>0?m+1|0:m)+g|0;m=f;f=f+h|0;h=(m>>>0>f>>>0?g+1|0:g)+q|0;g=f;f=f+v|0;g=(g>>>0>f>>>0?h+1|0:h)+k|0;m=f;f=f+j|0;i=m>>>0>f>>>0?g+1|0:g;a=a+4|0;e=e+4|0;if((A|0)!=(e|0)){continue}break}}if(!x){break rb}while(1){g=(a<<3)+n|0;e=J[g>>2];g=J[g+4>>2];d=e|g?a:d;a=a+1|0;q=g+i|0;f=e+f|0;i=f>>>0>>0?q+1|0:q;r=r+1|0;if((x|0)!=(r|0)){continue}break}}g=d+1|0;J[l+12>>2]=g;e=J[l>>2];a=J[l+4>>2]-e>>3;tb:{if(a>>>0>>0){Wa(l,g-a|0);break tb}if(a>>>0<=g>>>0){break tb}J[l+4>>2]=e+(g<<3)}k=0;ub:{vb:{wb:{xb:{if((d|0)>=0){w=+(f>>>0)+ +(i>>>0)*4294967296;f=J[l>>2];a=0;while(1){i=a<<3;h=i+n|0;e=J[h>>2];h=J[h+4>>2];j=(e|h)!=0;m=f+i|0;o=(+(e>>>0)+ +(h>>>0)*4294967296)/w*4096+.5;yb:{if(o<4294967296&o>=0){e=~~o>>>0;break yb}e=0}e=e?e:j?1:e;J[m>>2]=e;k=e+k|0;e=(a|0)==(d|0);a=a+1|0;if(!e){continue}break}if((k|0)==4096){break xb}}J[t+16>>2]=0;J[t+8>>2]=0;J[t+12>>2]=0;p=0;zb:{if(!g){break zb}if(g>>>0>=1073741824){break a}i=g<<2;s=oa(i);J[t+8>>2]=s;e=0;f=pa(s,0,i);a=0;if(d>>>0>=7){h=g&-8;while(1){J[f+(a<<2)>>2]=a;j=a|1;J[f+(j<<2)>>2]=j;j=a|2;J[f+(j<<2)>>2]=j;j=a|3;J[f+(j<<2)>>2]=j;j=a|4;J[f+(j<<2)>>2]=j;j=a|5;J[f+(j<<2)>>2]=j;j=a|6;J[f+(j<<2)>>2]=j;j=a|7;J[f+(j<<2)>>2]=j;a=a+8|0;p=p+8|0;if((h|0)!=(p|0)){continue}break}}p=f+i|0;i=g&7;if(!i){break zb}while(1){J[f+(a<<2)>>2]=a;a=a+1|0;e=e+1|0;if((i|0)!=(e|0)){continue}break}}J[t+24>>2]=l;a=p-s|0;e=a>>2;Ab:{Bb:{if((a|0)>=513){a=e;while(1){f=oa(a<<2);if(f){break Bb}f=a>>>0>1;a=a>>>1|0;if(f){continue}break}}bc(s,p,t+24|0,e,0,0);break Ab}bc(s,p,t+24|0,e,f,a);na(f)}if((k|0)<4096){a=J[l>>2]+(J[p-4>>2]<<3)|0;J[a>>2]=(J[a>>2]-k|0)+4096;a=0;break wb}if((d|0)>0){h=J[l>>2];r=k-4096|0;while(1){o=4096/+(k|0);e=d;while(1){Cb:{Db:{f=h+(J[(e<<2)+s>>2]<<3)|0;a=J[f>>2];if(a>>>0>=2){q=f;m=a;w=V(o*+(a>>>0));Eb:{if(R(w)<2147483648){i=~~w;break Eb}i=-2147483648}f=(a|0)==(i|0)?1:a-i|0;a=(a|0)>(f|0)?f:a-1|0;a=(a|0)<(r|0)?a:r;J[q>>2]=m-a;r=r-a|0;k=k-a|0;if((k|0)!=4096){break Db}k=4096;break Cb}if((d|0)!=(e|0)){break Cb}a=1;break wb}a=(e|0)>1;e=e-1|0;if(a){continue}}break}a=0;if((r|0)>0){continue}break}break wb}a=0;if(k>>>0<4097){break wb}while(1)continue}if((d|0)<0){break ub}break vb}e=J[t+8>>2];if(e){na(e)}if((d|0)<0|a){break ub}}e=J[l>>2];k=0;r=0;a=0;if(d>>>0>=3){i=g&-4;s=0;while(1){f=r<<3;h=f+e|0;J[h+4>>2]=a;j=e+(f|8)|0;a=J[h>>2]+a|0;J[j+4>>2]=a;h=e+(f|16)|0;a=a+J[j>>2]|0;J[h+4>>2]=a;f=e+(f|24)|0;a=a+J[h>>2]|0;J[f+4>>2]=a;a=a+J[f>>2]|0;r=r+4|0;s=s+4|0;if((i|0)!=(s|0)){continue}break}}f=g&3;if(f){while(1){i=e+(r<<3)|0;J[i+4>>2]=a;r=r+1|0;a=J[i>>2]+a|0;k=k+1|0;if((f|0)!=(k|0)){continue}break}}if((a|0)!=4096){break ub}a=0;o=0;Fb:{if((d|0)<0){break Fb}f=J[l>>2];if(d){d=g&-2;e=0;while(1){i=a<<3;h=J[i+f>>2];if(h){i=i+n|0;o=(+M[i>>2]+ +M[i+4>>2]*4294967296)*va(+(h>>>0)*.000244140625)+o}i=(a|1)<<3;h=J[i+f>>2];if(h){i=i+n|0;o=(+M[i>>2]+ +M[i+4>>2]*4294967296)*va(+(h>>>0)*.000244140625)+o}a=a+2|0;e=e+2|0;if((d|0)!=(e|0)){continue}break}}if(!(g&1)){break Fb}a=a<<3;d=J[a+f>>2];if(!d){break Fb}a=a+n|0;o=(+M[a>>2]+ +M[a+4>>2]*4294967296)*va(+(d>>>0)*.000244140625)+o}o=W(-o);Gb:{if(o<0x10000000000000000&o>=0){d=R(o)>=1?~~(o>0?T(V(o*2.3283064365386963e-10),4294967295):W((o-+(~~o>>>0>>>0))*2.3283064365386963e-10))>>>0:0;a=~~o>>>0;break Gb}d=0;a=0}J[l+16>>2]=a;J[l+20>>2]=d;Va(l,c)}ba=t+32|0;d=J[l+16>>2];e=J[l+20>>2];a=J[c+4>>2]-J[c>>2]|0;J[l+40>>2]=a;J[l+44>>2]=0;h=e<<1|d>>>31;d=(d<<1)+39|0;m=d>>>0<39?h+1|0:h;g=m>>>3|0;d=a+((m&7)<<29|d>>>3)|0;j=d>>>0>>0?g+1|0:g;a=d+8|0;Ia(c,a);a=J[c>>2];J[l+28>>2]=0;J[l+32>>2]=16384;J[l+24>>2]=a+J[l+40>>2];if((b|0)>0){a=16384;while(1){d=b-1|0;f=J[l>>2]+(J[u+(d<<2)>>2]<<3)|0;e=J[f>>2];i=e<<10;if(i>>>0<=a>>>0){while(1){g=J[l+28>>2];J[l+28>>2]=g+1;H[g+J[l+24>>2]|0]=a;a=J[l+32>>2]>>>8|0;J[l+32>>2]=a;if(a>>>0>=i>>>0){continue}break}}g=J[f+4>>2];f=(a>>>0)/(e>>>0)|0;a=g+((f<<12)+(a-P(e,f)|0)|0)|0;J[l+32>>2]=a;e=(b|0)>1;b=d;if(e){continue}break}}yb(l,c);a=J[l>>2];if(a){J[l+4>>2]=a;na(a)}a=J[l+48>>2];if(a){na(a)}ba=l- -64|0;break pb}h=1;break v;case 7:u=a;k=0;n=0;r=0;s=0;f=0;i=0;l=ba+-64|0;ba=l;J[l+56>>2]=0;J[l+48>>2]=0;J[l+52>>2]=0;Hb:{a=p+1|0;if(a){if(a>>>0>=536870912){break a}a=a<<3;n=oa(a);J[l+48>>2]=n;k=pa(n,0,(p<<3)+8|0)+a|0}Ib:{if((b|0)<=0){break Ib}a=0;if(b>>>0>=4){g=b&-4;while(1){c=a<<2;d=(J[c+u>>2]<<3)+n|0;j=J[d>>2];h=J[d+4>>2];j=j+1|0;h=j?h:h+1|0;J[d>>2]=j;J[d+4>>2]=h;d=(J[u+(c|4)>>2]<<3)+n|0;h=J[d>>2];m=J[d+4>>2];h=h+1|0;m=h?m:m+1|0;J[d>>2]=h;J[d+4>>2]=m;d=(J[u+(c|8)>>2]<<3)+n|0;h=J[d>>2];j=J[d+4>>2];h=h+1|0;j=h?j:j+1|0;J[d>>2]=h;J[d+4>>2]=j;c=(J[u+(c|12)>>2]<<3)+n|0;d=J[c>>2];h=J[c+4>>2];d=d+1|0;h=d?h:h+1|0;J[c>>2]=d;J[c+4>>2]=h;a=a+4|0;r=r+4|0;if((g|0)!=(r|0)){continue}break}}d=b&3;if(!d){break Ib}while(1){c=(J[u+(a<<2)>>2]<<3)+n|0;g=J[c>>2];m=J[c+4>>2];g=g+1|0;m=g?m:m+1|0;J[c>>2]=g;J[c+4>>2]=m;a=a+1|0;s=s+1|0;if((d|0)!=(s|0)){continue}break}}J[l+8>>2]=0;J[l+12>>2]=0;J[l+16>>2]=0;J[l+20>>2]=0;J[l+24>>2]=0;J[l+28>>2]=0;J[l+32>>2]=0;J[l>>2]=0;J[l+4>>2]=0;J[l+40>>2]=0;J[l+44>>2]=0;c=e;e=0;r=0;d=0;s=0;t=ba-32|0;ba=t;a=k-n>>3;Jb:{if((a|0)<=0){break Jb}A=a&3;Kb:{if(a>>>0<4){a=0;break Kb}E=a&-4;a=0;while(1){g=(a<<3)+n|0;x=J[g>>2];m=J[g+4>>2];D=m;q=a|1;k=(q<<3)+n|0;g=J[k>>2];v=a|2;p=(v<<3)+n|0;h=J[p>>2];y=a|3;z=(y<<3)+n|0;j=J[z>>2];d=m|x?a:d;m=J[k+4>>2];d=m|g?q:d;q=J[p+4>>2];k=J[z+4>>2];d=k|j?y:q|h?v:d;v=j;p=h;j=i+D|0;f=f+x|0;h=(f>>>0>>0?j+1|0:j)+m|0;m=f;f=g+f|0;g=(m>>>0>f>>>0?h+1|0:h)+q|0;m=f;f=f+p|0;g=(m>>>0>f>>>0?g+1|0:g)+k|0;m=f;f=f+v|0;i=m>>>0>f>>>0?g+1|0:g;a=a+4|0;e=e+4|0;if((E|0)!=(e|0)){continue}break}}if(!A){break Jb}while(1){g=(a<<3)+n|0;e=J[g>>2];g=J[g+4>>2];d=e|g?a:d;a=a+1|0;m=g+i|0;f=e+f|0;i=f>>>0>>0?m+1|0:m;r=r+1|0;if((A|0)!=(r|0)){continue}break}}g=d+1|0;J[l+12>>2]=g;e=J[l>>2];a=J[l+4>>2]-e>>3;Lb:{if(a>>>0>>0){Wa(l,g-a|0);break Lb}if(a>>>0<=g>>>0){break Lb}J[l+4>>2]=e+(g<<3)}k=0;Mb:{Nb:{Ob:{Pb:{if((d|0)>=0){w=+(f>>>0)+ +(i>>>0)*4294967296;f=J[l>>2];a=0;while(1){i=a<<3;h=i+n|0;e=J[h>>2];h=J[h+4>>2];j=(e|h)!=0;m=f+i|0;o=(+(e>>>0)+ +(h>>>0)*4294967296)/w*4096+.5;Qb:{if(o<4294967296&o>=0){e=~~o>>>0;break Qb}e=0}e=e?e:j?1:e;J[m>>2]=e;k=e+k|0;e=(a|0)==(d|0);a=a+1|0;if(!e){continue}break}if((k|0)==4096){break Pb}}J[t+16>>2]=0;J[t+8>>2]=0;J[t+12>>2]=0;p=0;Rb:{if(!g){break Rb}if(g>>>0>=1073741824){break a}i=g<<2;s=oa(i);J[t+8>>2]=s;e=0;f=pa(s,0,i);a=0;if(d>>>0>=7){h=g&-8;while(1){J[f+(a<<2)>>2]=a;j=a|1;J[f+(j<<2)>>2]=j;j=a|2;J[f+(j<<2)>>2]=j;j=a|3;J[f+(j<<2)>>2]=j;j=a|4;J[f+(j<<2)>>2]=j;j=a|5;J[f+(j<<2)>>2]=j;j=a|6;J[f+(j<<2)>>2]=j;j=a|7;J[f+(j<<2)>>2]=j;a=a+8|0;p=p+8|0;if((h|0)!=(p|0)){continue}break}}p=f+i|0;i=g&7;if(!i){break Rb}while(1){J[f+(a<<2)>>2]=a;a=a+1|0;e=e+1|0;if((i|0)!=(e|0)){continue}break}}J[t+24>>2]=l;a=p-s|0;e=a>>2;Sb:{Tb:{if((a|0)>=513){a=e;while(1){f=oa(a<<2);if(f){break Tb}f=a>>>0>1;a=a>>>1|0;if(f){continue}break}}ac(s,p,t+24|0,e,0,0);break Sb}ac(s,p,t+24|0,e,f,a);na(f)}if((k|0)<4096){a=J[l>>2]+(J[p-4>>2]<<3)|0;J[a>>2]=(J[a>>2]-k|0)+4096;a=0;break Ob}if((d|0)>0){h=J[l>>2];r=k-4096|0;while(1){o=4096/+(k|0);e=d;while(1){Ub:{Vb:{f=h+(J[(e<<2)+s>>2]<<3)|0;a=J[f>>2];if(a>>>0>=2){q=f;m=a;w=V(o*+(a>>>0));Wb:{if(R(w)<2147483648){i=~~w;break Wb}i=-2147483648}f=(a|0)==(i|0)?1:a-i|0;a=(a|0)>(f|0)?f:a-1|0;a=(a|0)<(r|0)?a:r;J[q>>2]=m-a;r=r-a|0;k=k-a|0;if((k|0)!=4096){break Vb}k=4096;break Ub}if((d|0)!=(e|0)){break Ub}a=1;break Ob}a=(e|0)>1;e=e-1|0;if(a){continue}}break}a=0;if((r|0)>0){continue}break}break Ob}a=0;if(k>>>0<4097){break Ob}while(1)continue}if((d|0)<0){break Mb}break Nb}e=J[t+8>>2];if(e){na(e)}if((d|0)<0|a){break Mb}}e=J[l>>2];k=0;r=0;a=0;if(d>>>0>=3){i=g&-4;s=0;while(1){f=r<<3;h=f+e|0;J[h+4>>2]=a;j=e+(f|8)|0;a=J[h>>2]+a|0;J[j+4>>2]=a;h=e+(f|16)|0;a=a+J[j>>2]|0;J[h+4>>2]=a;f=e+(f|24)|0;a=a+J[h>>2]|0;J[f+4>>2]=a;a=a+J[f>>2]|0;r=r+4|0;s=s+4|0;if((i|0)!=(s|0)){continue}break}}f=g&3;if(f){while(1){i=e+(r<<3)|0;J[i+4>>2]=a;r=r+1|0;a=J[i>>2]+a|0;k=k+1|0;if((f|0)!=(k|0)){continue}break}}if((a|0)!=4096){break Mb}a=0;o=0;Xb:{if((d|0)<0){break Xb}f=J[l>>2];if(d){d=g&-2;e=0;while(1){i=a<<3;h=J[i+f>>2];if(h){i=i+n|0;o=(+M[i>>2]+ +M[i+4>>2]*4294967296)*va(+(h>>>0)*.000244140625)+o}i=(a|1)<<3;h=J[i+f>>2];if(h){i=i+n|0;o=(+M[i>>2]+ +M[i+4>>2]*4294967296)*va(+(h>>>0)*.000244140625)+o}a=a+2|0;e=e+2|0;if((d|0)!=(e|0)){continue}break}}if(!(g&1)){break Xb}a=a<<3;d=J[a+f>>2];if(!d){break Xb}a=a+n|0;o=(+M[a>>2]+ +M[a+4>>2]*4294967296)*va(+(d>>>0)*.000244140625)+o}o=W(-o);Yb:{if(o<0x10000000000000000&o>=0){d=R(o)>=1?~~(o>0?T(V(o*2.3283064365386963e-10),4294967295):W((o-+(~~o>>>0>>>0))*2.3283064365386963e-10))>>>0:0;a=~~o>>>0;break Yb}d=0;a=0}J[l+16>>2]=a;J[l+20>>2]=d;Va(l,c)}ba=t+32|0;d=J[l+16>>2];e=J[l+20>>2];a=J[c+4>>2]-J[c>>2]|0;J[l+40>>2]=a;J[l+44>>2]=0;g=e<<1|d>>>31;d=(d<<1)+39|0;j=d>>>0<39?g+1|0:g;d=a+((j&7)<<29|d>>>3)|0;g=j>>>3|0;q=a>>>0>d>>>0?g+1|0:g;a=d+8|0;Ia(c,a);a=J[c>>2];J[l+28>>2]=0;J[l+32>>2]=16384;J[l+24>>2]=a+J[l+40>>2];if((b|0)>0){a=16384;while(1){d=b-1|0;f=J[l>>2]+(J[u+(d<<2)>>2]<<3)|0;e=J[f>>2];i=e<<10;if(i>>>0<=a>>>0){while(1){g=J[l+28>>2];J[l+28>>2]=g+1;H[g+J[l+24>>2]|0]=a;a=J[l+32>>2]>>>8|0;J[l+32>>2]=a;if(a>>>0>=i>>>0){continue}break}}g=J[f+4>>2];f=(a>>>0)/(e>>>0)|0;a=g+((f<<12)+(a-P(e,f)|0)|0)|0;J[l+32>>2]=a;e=(b|0)>1;b=d;if(e){continue}break}}yb(l,c);a=J[l>>2];if(a){J[l+4>>2]=a;na(a)}a=J[l+48>>2];if(a){na(a)}ba=l- -64|0;break Hb}h=1;break v;case 8:l=a;n=0;r=0;d=0;s=0;f=0;i=0;k=ba+-64|0;ba=k;J[k+56>>2]=0;J[k+48>>2]=0;J[k+52>>2]=0;Zb:{a=p+1|0;if(a){if(a>>>0>=536870912){break a}a=a<<3;r=oa(a);J[k+48>>2]=r;n=pa(r,0,(p<<3)+8|0)+a|0}_b:{if((b|0)<=0){break _b}a=0;if(b>>>0>=4){m=b&-4;while(1){c=a<<2;g=(J[c+l>>2]<<3)+r|0;h=g;j=J[g>>2];g=J[g+4>>2];j=j+1|0;g=j?g:g+1|0;J[h>>2]=j;J[h+4>>2]=g;g=(J[l+(c|4)>>2]<<3)+r|0;h=J[g>>2];j=J[g+4>>2];h=h+1|0;j=h?j:j+1|0;J[g>>2]=h;J[g+4>>2]=j;g=(J[l+(c|8)>>2]<<3)+r|0;h=J[g>>2];q=J[g+4>>2];h=h+1|0;q=h?q:q+1|0;J[g>>2]=h;J[g+4>>2]=q;c=(J[l+(c|12)>>2]<<3)+r|0;h=J[c>>2];g=J[c+4>>2];h=h+1|0;g=h?g:g+1|0;J[c>>2]=h;J[c+4>>2]=g;a=a+4|0;d=d+4|0;if((m|0)!=(d|0)){continue}break}}d=b&3;if(!d){break _b}while(1){c=(J[l+(a<<2)>>2]<<3)+r|0;g=J[c>>2];j=J[c+4>>2];g=g+1|0;j=g?j:j+1|0;J[c>>2]=g;J[c+4>>2]=j;a=a+1|0;s=s+1|0;if((d|0)!=(s|0)){continue}break}}J[k+8>>2]=0;J[k+12>>2]=0;J[k+16>>2]=0;J[k+20>>2]=0;J[k+24>>2]=0;J[k+28>>2]=0;J[k+32>>2]=0;J[k>>2]=0;J[k+4>>2]=0;J[k+40>>2]=0;J[k+44>>2]=0;d=0;p=0;c=0;s=0;t=ba-32|0;ba=t;a=n-r>>3;$b:{if((a|0)<=0){break $b}A=a&3;ac:{if(a>>>0<4){a=0;break ac}E=a&-4;a=0;while(1){g=(a<<3)+r|0;x=J[g>>2];m=J[g+4>>2];D=m;q=a|1;n=(q<<3)+r|0;g=J[n>>2];u=a|2;v=(u<<3)+r|0;h=J[v>>2];y=a|3;z=(y<<3)+r|0;j=J[z>>2];c=m|x?a:c;m=J[n+4>>2];c=m|g?q:c;q=J[v+4>>2];n=J[z+4>>2];c=n|j?y:q|h?u:c;u=q;v=g;q=i+D|0;f=f+x|0;g=(f>>>0>>0?q+1|0:q)+m|0;m=f;f=f+v|0;g=(m>>>0>f>>>0?g+1|0:g)+u|0;m=f;f=f+h|0;h=(m>>>0>f>>>0?g+1|0:g)+n|0;g=f;f=f+j|0;i=g>>>0>f>>>0?h+1|0:h;a=a+4|0;d=d+4|0;if((E|0)!=(d|0)){continue}break}}if(!A){break $b}while(1){g=(a<<3)+r|0;d=J[g>>2];g=J[g+4>>2];c=d|g?a:c;a=a+1|0;j=g+i|0;f=d+f|0;i=f>>>0>>0?j+1|0:j;p=p+1|0;if((A|0)!=(p|0)){continue}break}}g=c+1|0;J[k+12>>2]=g;d=J[k>>2];a=J[k+4>>2]-d>>3;bc:{if(a>>>0>>0){Wa(k,g-a|0);break bc}if(a>>>0<=g>>>0){break bc}J[k+4>>2]=d+(g<<3)}n=0;cc:{dc:{ec:{fc:{if((c|0)>=0){w=+(f>>>0)+ +(i>>>0)*4294967296;f=J[k>>2];a=0;while(1){i=a<<3;h=i+r|0;d=J[h>>2];h=J[h+4>>2];j=(d|h)!=0;m=f+i|0;o=(+(d>>>0)+ +(h>>>0)*4294967296)/w*8192+.5;gc:{if(o<4294967296&o>=0){d=~~o>>>0;break gc}d=0}d=d?d:j?1:d;J[m>>2]=d;n=d+n|0;d=(a|0)==(c|0);a=a+1|0;if(!d){continue}break}if((n|0)==8192){break fc}}J[t+16>>2]=0;J[t+8>>2]=0;J[t+12>>2]=0;p=0;hc:{if(!g){break hc}if(g>>>0>=1073741824){break a}i=g<<2;s=oa(i);J[t+8>>2]=s;d=0;f=pa(s,0,i);a=0;if(c>>>0>=7){h=g&-8;while(1){J[f+(a<<2)>>2]=a;j=a|1;J[f+(j<<2)>>2]=j;j=a|2;J[f+(j<<2)>>2]=j;j=a|3;J[f+(j<<2)>>2]=j;j=a|4;J[f+(j<<2)>>2]=j;j=a|5;J[f+(j<<2)>>2]=j;j=a|6;J[f+(j<<2)>>2]=j;j=a|7;J[f+(j<<2)>>2]=j;a=a+8|0;p=p+8|0;if((h|0)!=(p|0)){continue}break}}p=f+i|0;i=g&7;if(!i){break hc}while(1){J[f+(a<<2)>>2]=a;a=a+1|0;d=d+1|0;if((i|0)!=(d|0)){continue}break}}J[t+24>>2]=k;a=p-s|0;d=a>>2;ic:{jc:{if((a|0)>=513){a=d;while(1){f=oa(a<<2);if(f){break jc}f=a>>>0>1;a=a>>>1|0;if(f){continue}break}}$b(s,p,t+24|0,d,0,0);break ic}$b(s,p,t+24|0,d,f,a);na(f)}if((n|0)<8192){a=J[k>>2]+(J[p-4>>2]<<3)|0;J[a>>2]=(J[a>>2]-n|0)- -8192;a=0;break ec}if((c|0)>0){h=J[k>>2];p=n+-8192|0;while(1){o=8192/+(n|0);d=c;while(1){kc:{lc:{f=h+(J[(d<<2)+s>>2]<<3)|0;a=J[f>>2];if(a>>>0>=2){q=f;m=a;w=V(o*+(a>>>0));mc:{if(R(w)<2147483648){i=~~w;break mc}i=-2147483648}f=(a|0)==(i|0)?1:a-i|0;a=(a|0)>(f|0)?f:a-1|0;a=(a|0)<(p|0)?a:p;J[q>>2]=m-a;p=p-a|0;n=n-a|0;if((n|0)!=8192){break lc}n=8192;break kc}if((c|0)!=(d|0)){break kc}a=1;break ec}a=(d|0)>1;d=d-1|0;if(a){continue}}break}a=0;if((p|0)>0){continue}break}break ec}a=0;if(n>>>0<8193){break ec}while(1)continue}if((c|0)<0){break cc}break dc}d=J[t+8>>2];if(d){na(d)}if((c|0)<0|a){break cc}}d=J[k>>2];n=0;p=0;a=0;if(c>>>0>=3){i=g&-4;s=0;while(1){f=p<<3;h=f+d|0;J[h+4>>2]=a;j=d+(f|8)|0;a=J[h>>2]+a|0;J[j+4>>2]=a;h=d+(f|16)|0;a=a+J[j>>2]|0;J[h+4>>2]=a;f=d+(f|24)|0;a=a+J[h>>2]|0;J[f+4>>2]=a;a=a+J[f>>2]|0;p=p+4|0;s=s+4|0;if((i|0)!=(s|0)){continue}break}}f=g&3;if(f){while(1){i=d+(p<<3)|0;J[i+4>>2]=a;p=p+1|0;a=J[i>>2]+a|0;n=n+1|0;if((f|0)!=(n|0)){continue}break}}if((a|0)!=8192){break cc}a=0;o=0;nc:{if((c|0)<0){break nc}f=J[k>>2];if(c){c=g&-2;d=0;while(1){i=a<<3;h=J[i+f>>2];if(h){i=i+r|0;o=(+M[i>>2]+ +M[i+4>>2]*4294967296)*va(+(h>>>0)*.0001220703125)+o}i=(a|1)<<3;h=J[i+f>>2];if(h){i=i+r|0;o=(+M[i>>2]+ +M[i+4>>2]*4294967296)*va(+(h>>>0)*.0001220703125)+o}a=a+2|0;d=d+2|0;if((c|0)!=(d|0)){continue}break}}if(!(g&1)){break nc}a=a<<3;c=J[a+f>>2];if(!c){break nc}a=a+r|0;o=(+M[a>>2]+ +M[a+4>>2]*4294967296)*va(+(c>>>0)*.0001220703125)+o}o=W(-o);oc:{if(o<0x10000000000000000&o>=0){c=R(o)>=1?~~(o>0?T(V(o*2.3283064365386963e-10),4294967295):W((o-+(~~o>>>0>>>0))*2.3283064365386963e-10))>>>0:0;a=~~o>>>0;break oc}c=0;a=0}J[k+16>>2]=a;J[k+20>>2]=c;Va(k,e)}ba=t+32|0;c=J[k+16>>2];d=J[k+20>>2];a=J[e+4>>2]-J[e>>2]|0;J[k+40>>2]=a;J[k+44>>2]=0;g=d<<1|c>>>31;c=(c<<1)+39|0;q=c>>>0<39?g+1|0:g;c=a+((q&7)<<29|c>>>3)|0;h=q>>>3|0;m=a>>>0>c>>>0?h+1|0:h;a=c+8|0;Ia(e,a);a=J[e>>2];J[k+28>>2]=0;J[k+32>>2]=32768;J[k+24>>2]=a+J[k+40>>2];if((b|0)>0){a=32768;while(1){c=b-1|0;f=J[k>>2]+(J[l+(c<<2)>>2]<<3)|0;d=J[f>>2];i=d<<10;if(i>>>0<=a>>>0){while(1){g=J[k+28>>2];J[k+28>>2]=g+1;H[g+J[k+24>>2]|0]=a;a=J[k+32>>2]>>>8|0;J[k+32>>2]=a;if(a>>>0>=i>>>0){continue}break}}g=J[f+4>>2];f=(a>>>0)/(d>>>0)|0;a=g+((f<<13)+(a-P(d,f)|0)|0)|0;J[k+32>>2]=a;d=(b|0)>1;b=c;if(d){continue}break}}a=ba-32|0;ba=a;c=J[e>>2]+J[k+40>>2]|0;b=J[k+32>>2];d=b-32768|0;pc:{if(d>>>0<=63){H[J[k+24>>2]+J[k+28>>2]|0]=b;f=J[k+28>>2]+1|0;break pc}if(d>>>0<=16383){d=J[k+24>>2]+J[k+28>>2]|0;H[d+1|0]=b+49152>>>8;H[d|0]=b;f=J[k+28>>2]+2|0;break pc}if(d>>>0<=4194303){d=J[k+24>>2]+J[k+28>>2]|0;f=b+8355840|0;H[d+2|0]=f>>>16;H[d+1|0]=f>>>8;H[d|0]=b;f=J[k+28>>2]+3|0;break pc}if(d>>>0<=1073741823){d=J[k+24>>2]+J[k+28>>2]|0;f=b-1073774592|0;H[d+3|0]=f>>>24;H[d+2|0]=f>>>16;H[d+1|0]=f>>>8;H[d|0]=b;f=J[k+28>>2]+4|0;break pc}f=J[k+28>>2]}b=f;J[a>>2]=0;J[a+4>>2]=0;H[a+24|0]=0;J[a+16>>2]=0;J[a+20>>2]=0;J[a+8>>2]=0;J[a+12>>2]=0;g=b>>31;xb(b,g,a);d=J[a+4>>2]-J[a>>2]|0;ta(d+c|0,c,b);ua(c,J[a>>2],d);c=J[k+40>>2];b=b+d|0;q=J[k+44>>2]+(f>>>0>b>>>0?g+1|0:g)|0;d=b;b=b+c|0;Ia(e,b);b=J[a+12>>2];J[a+12>>2]=0;if(b){na(b)}b=J[a>>2];if(b){J[a+4>>2]=b;na(b)}ba=a+32|0;a=J[k>>2];if(a){J[k+4>>2]=a;na(a)}a=J[k+48>>2];if(a){na(a)}ba=k- -64|0;break Zb}h=1;break v;case 9:l=a;n=0;r=0;d=0;s=0;f=0;i=0;k=ba+-64|0;ba=k;J[k+56>>2]=0;J[k+48>>2]=0;J[k+52>>2]=0;qc:{a=p+1|0;if(a){if(a>>>0>=536870912){break a}a=a<<3;r=oa(a);J[k+48>>2]=r;n=pa(r,0,(p<<3)+8|0)+a|0}rc:{if((b|0)<=0){break rc}a=0;if(b>>>0>=4){j=b&-4;while(1){c=a<<2;g=(J[c+l>>2]<<3)+r|0;h=J[g>>2];m=J[g+4>>2];h=h+1|0;m=h?m:m+1|0;J[g>>2]=h;J[g+4>>2]=m;g=(J[l+(c|4)>>2]<<3)+r|0;m=J[g>>2];h=J[g+4>>2];m=m+1|0;h=m?h:h+1|0;J[g>>2]=m;J[g+4>>2]=h;g=(J[l+(c|8)>>2]<<3)+r|0;h=J[g>>2];q=J[g+4>>2];h=h+1|0;q=h?q:q+1|0;J[g>>2]=h;J[g+4>>2]=q;c=(J[l+(c|12)>>2]<<3)+r|0;g=J[c>>2];m=J[c+4>>2];g=g+1|0;m=g?m:m+1|0;J[c>>2]=g;J[c+4>>2]=m;a=a+4|0;d=d+4|0;if((j|0)!=(d|0)){continue}break}}d=b&3;if(!d){break rc}while(1){c=(J[l+(a<<2)>>2]<<3)+r|0;g=J[c>>2];h=J[c+4>>2];g=g+1|0;h=g?h:h+1|0;J[c>>2]=g;J[c+4>>2]=h;a=a+1|0;s=s+1|0;if((d|0)!=(s|0)){continue}break}}J[k+8>>2]=0;J[k+12>>2]=0;J[k+16>>2]=0;J[k+20>>2]=0;J[k+24>>2]=0;J[k+28>>2]=0;J[k+32>>2]=0;J[k>>2]=0;J[k+4>>2]=0;J[k+40>>2]=0;J[k+44>>2]=0;d=0;p=0;c=0;s=0;v=ba-32|0;ba=v;a=n-r>>3;sc:{if((a|0)<=0){break sc}x=a&3;tc:{if(a>>>0<4){a=0;break tc}A=a&-4;a=0;while(1){g=(a<<3)+r|0;t=J[g>>2];m=J[g+4>>2];E=m;q=a|1;n=(q<<3)+r|0;g=J[n>>2];u=a|2;D=(u<<3)+r|0;h=J[D>>2];y=a|3;z=(y<<3)+r|0;j=J[z>>2];c=m|t?a:c;m=J[n+4>>2];c=m|g?q:c;q=J[D+4>>2];n=J[z+4>>2];c=n|j?y:q|h?u:c;u=q;q=i+E|0;f=f+t|0;m=(f>>>0>>0?q+1|0:q)+m|0;i=f;f=g+f|0;g=(i>>>0>f>>>0?m+1|0:m)+u|0;m=f;f=f+h|0;g=(m>>>0>f>>>0?g+1|0:g)+n|0;m=f;f=f+j|0;i=m>>>0>f>>>0?g+1|0:g;a=a+4|0;d=d+4|0;if((A|0)!=(d|0)){continue}break}}if(!x){break sc}while(1){g=(a<<3)+r|0;d=J[g>>2];g=J[g+4>>2];c=d|g?a:c;a=a+1|0;h=g+i|0;f=d+f|0;i=f>>>0>>0?h+1|0:h;p=p+1|0;if((x|0)!=(p|0)){continue}break}}g=c+1|0;J[k+12>>2]=g;d=J[k>>2];a=J[k+4>>2]-d>>3;uc:{if(a>>>0>>0){Wa(k,g-a|0);break uc}if(a>>>0<=g>>>0){break uc}J[k+4>>2]=d+(g<<3)}n=0;vc:{wc:{xc:{yc:{if((c|0)>=0){w=+(f>>>0)+ +(i>>>0)*4294967296;f=J[k>>2];a=0;while(1){i=a<<3;h=i+r|0;d=J[h>>2];h=J[h+4>>2];j=(d|h)!=0;m=f+i|0;o=(+(d>>>0)+ +(h>>>0)*4294967296)/w*32768+.5;zc:{if(o<4294967296&o>=0){d=~~o>>>0;break zc}d=0}d=d?d:j?1:d;J[m>>2]=d;n=d+n|0;d=(a|0)==(c|0);a=a+1|0;if(!d){continue}break}if((n|0)==32768){break yc}}J[v+16>>2]=0;J[v+8>>2]=0;J[v+12>>2]=0;p=0;Ac:{if(!g){break Ac}if(g>>>0>=1073741824){break a}i=g<<2;s=oa(i);J[v+8>>2]=s;d=0;f=pa(s,0,i);a=0;if(c>>>0>=7){h=g&-8;while(1){J[f+(a<<2)>>2]=a;j=a|1;J[f+(j<<2)>>2]=j;j=a|2;J[f+(j<<2)>>2]=j;j=a|3;J[f+(j<<2)>>2]=j;j=a|4;J[f+(j<<2)>>2]=j;j=a|5;J[f+(j<<2)>>2]=j;j=a|6;J[f+(j<<2)>>2]=j;j=a|7;J[f+(j<<2)>>2]=j;a=a+8|0;p=p+8|0;if((h|0)!=(p|0)){continue}break}}p=f+i|0;i=g&7;if(!i){break Ac}while(1){J[f+(a<<2)>>2]=a;a=a+1|0;d=d+1|0;if((i|0)!=(d|0)){continue}break}}J[v+24>>2]=k;a=p-s|0;d=a>>2;Bc:{Cc:{if((a|0)>=513){a=d;while(1){f=oa(a<<2);if(f){break Cc}f=a>>>0>1;a=a>>>1|0;if(f){continue}break}}_b(s,p,v+24|0,d,0,0);break Bc}_b(s,p,v+24|0,d,f,a);na(f)}if((n|0)<32768){a=J[k>>2]+(J[p-4>>2]<<3)|0;J[a>>2]=(J[a>>2]-n|0)+32768;a=0;break xc}if((c|0)>0){h=J[k>>2];p=n-32768|0;while(1){o=32768/+(n|0);d=c;while(1){Dc:{Ec:{f=h+(J[(d<<2)+s>>2]<<3)|0;a=J[f>>2];if(a>>>0>=2){q=f;m=a;w=V(o*+(a>>>0));Fc:{if(R(w)<2147483648){i=~~w;break Fc}i=-2147483648}f=(a|0)==(i|0)?1:a-i|0;a=(a|0)>(f|0)?f:a-1|0;a=(a|0)<(p|0)?a:p;J[q>>2]=m-a;p=p-a|0;n=n-a|0;if((n|0)!=32768){break Ec}n=32768;break Dc}if((c|0)!=(d|0)){break Dc}a=1;break xc}a=(d|0)>1;d=d-1|0;if(a){continue}}break}a=0;if((p|0)>0){continue}break}break xc}a=0;if(n>>>0<32769){break xc}while(1)continue}if((c|0)<0){break vc}break wc}d=J[v+8>>2];if(d){na(d)}if((c|0)<0|a){break vc}}d=J[k>>2];n=0;p=0;a=0;if(c>>>0>=3){i=g&-4;s=0;while(1){f=p<<3;h=f+d|0;J[h+4>>2]=a;j=d+(f|8)|0;a=J[h>>2]+a|0;J[j+4>>2]=a;h=d+(f|16)|0;a=a+J[j>>2]|0;J[h+4>>2]=a;f=d+(f|24)|0;a=a+J[h>>2]|0;J[f+4>>2]=a;a=a+J[f>>2]|0;p=p+4|0;s=s+4|0;if((i|0)!=(s|0)){continue}break}}f=g&3;if(f){while(1){i=d+(p<<3)|0;J[i+4>>2]=a;p=p+1|0;a=J[i>>2]+a|0;n=n+1|0;if((f|0)!=(n|0)){continue}break}}if((a|0)!=32768){break vc}a=0;o=0;Gc:{if((c|0)<0){break Gc}f=J[k>>2];if(c){c=g&-2;d=0;while(1){i=a<<3;h=J[i+f>>2];if(h){i=i+r|0;o=(+M[i>>2]+ +M[i+4>>2]*4294967296)*va(+(h>>>0)*30517578125e-15)+o}i=(a|1)<<3;h=J[i+f>>2];if(h){i=i+r|0;o=(+M[i>>2]+ +M[i+4>>2]*4294967296)*va(+(h>>>0)*30517578125e-15)+o}a=a+2|0;d=d+2|0;if((c|0)!=(d|0)){continue}break}}if(!(g&1)){break Gc}a=a<<3;c=J[a+f>>2];if(!c){break Gc}a=a+r|0;o=(+M[a>>2]+ +M[a+4>>2]*4294967296)*va(+(c>>>0)*30517578125e-15)+o}o=W(-o);Hc:{if(o<0x10000000000000000&o>=0){c=R(o)>=1?~~(o>0?T(V(o*2.3283064365386963e-10),4294967295):W((o-+(~~o>>>0>>>0))*2.3283064365386963e-10))>>>0:0;a=~~o>>>0;break Hc}c=0;a=0}J[k+16>>2]=a;J[k+20>>2]=c;Va(k,e)}ba=v+32|0;c=J[k+16>>2];d=J[k+20>>2];a=J[e+4>>2]-J[e>>2]|0;J[k+40>>2]=a;J[k+44>>2]=0;g=d<<1|c>>>31;c=(c<<1)+39|0;q=c>>>0<39?g+1|0:g;c=a+((q&7)<<29|c>>>3)|0;g=q>>>3|0;j=a>>>0>c>>>0?g+1|0:g;a=c+8|0;Ia(e,a);a=J[e>>2];J[k+28>>2]=0;J[k+32>>2]=131072;J[k+24>>2]=a+J[k+40>>2];if((b|0)>0){a=131072;while(1){c=b-1|0;f=J[k>>2]+(J[l+(c<<2)>>2]<<3)|0;d=J[f>>2];i=d<<10;if(i>>>0<=a>>>0){while(1){g=J[k+28>>2];J[k+28>>2]=g+1;H[g+J[k+24>>2]|0]=a;a=J[k+32>>2]>>>8|0;J[k+32>>2]=a;if(a>>>0>=i>>>0){continue}break}}g=J[f+4>>2];f=(a>>>0)/(d>>>0)|0;a=g+((f<<15)+(a-P(d,f)|0)|0)|0;J[k+32>>2]=a;d=(b|0)>1;b=c;if(d){continue}break}}a=ba-32|0;ba=a;c=J[e>>2]+J[k+40>>2]|0;b=J[k+32>>2];d=b-131072|0;Ic:{if(d>>>0<=63){H[J[k+24>>2]+J[k+28>>2]|0]=b;f=J[k+28>>2]+1|0;break Ic}if(d>>>0<=16383){d=J[k+24>>2]+J[k+28>>2]|0;H[d+1|0]=b+16384>>>8;H[d|0]=b;f=J[k+28>>2]+2|0;break Ic}if(d>>>0<=4194303){d=J[k+24>>2]+J[k+28>>2]|0;H[d+2|0]=b+8257536>>>16;H[d+1|0]=b>>>8;H[d|0]=b;f=J[k+28>>2]+3|0;break Ic}if(d>>>0<=1073741823){d=J[k+24>>2]+J[k+28>>2]|0;f=b-1073872896|0;H[d+3|0]=f>>>24;H[d+2|0]=f>>>16;H[d+1|0]=b>>>8;H[d|0]=b;f=J[k+28>>2]+4|0;break Ic}f=J[k+28>>2]}b=f;J[a>>2]=0;J[a+4>>2]=0;H[a+24|0]=0;J[a+16>>2]=0;J[a+20>>2]=0;J[a+8>>2]=0;J[a+12>>2]=0;g=b>>31;xb(b,g,a);d=J[a+4>>2]-J[a>>2]|0;ta(d+c|0,c,b);ua(c,J[a>>2],d);c=J[k+40>>2];b=b+d|0;q=J[k+44>>2]+(f>>>0>b>>>0?g+1|0:g)|0;d=b;b=b+c|0;Ia(e,b);b=J[a+12>>2];J[a+12>>2]=0;if(b){na(b)}b=J[a>>2];if(b){J[a+4>>2]=b;na(b)}ba=a+32|0;a=J[k>>2];if(a){J[k+4>>2]=a;na(a)}a=J[k+48>>2];if(a){na(a)}ba=k- -64|0;break qc}h=1;break v;case 10:l=a;n=0;r=0;d=0;s=0;f=0;i=0;k=ba+-64|0;ba=k;J[k+56>>2]=0;J[k+48>>2]=0;J[k+52>>2]=0;Jc:{a=p+1|0;if(a){if(a>>>0>=536870912){break a}a=a<<3;r=oa(a);J[k+48>>2]=r;n=pa(r,0,(p<<3)+8|0)+a|0}Kc:{if((b|0)<=0){break Kc}a=0;if(b>>>0>=4){m=b&-4;while(1){c=a<<2;g=(J[c+l>>2]<<3)+r|0;h=J[g>>2];j=J[g+4>>2];h=h+1|0;j=h?j:j+1|0;J[g>>2]=h;J[g+4>>2]=j;g=(J[l+(c|4)>>2]<<3)+r|0;h=g;j=J[g>>2];g=J[g+4>>2];j=j+1|0;g=j?g:g+1|0;J[h>>2]=j;J[h+4>>2]=g;g=(J[l+(c|8)>>2]<<3)+r|0;h=J[g>>2];q=J[g+4>>2];h=h+1|0;q=h?q:q+1|0;J[g>>2]=h;J[g+4>>2]=q;c=(J[l+(c|12)>>2]<<3)+r|0;g=J[c>>2];j=J[c+4>>2];g=g+1|0;j=g?j:j+1|0;J[c>>2]=g;J[c+4>>2]=j;a=a+4|0;d=d+4|0;if((m|0)!=(d|0)){continue}break}}d=b&3;if(!d){break Kc}while(1){c=(J[l+(a<<2)>>2]<<3)+r|0;h=J[c>>2];g=J[c+4>>2];h=h+1|0;g=h?g:g+1|0;J[c>>2]=h;J[c+4>>2]=g;a=a+1|0;s=s+1|0;if((d|0)!=(s|0)){continue}break}}J[k+8>>2]=0;J[k+12>>2]=0;J[k+16>>2]=0;J[k+20>>2]=0;J[k+24>>2]=0;J[k+28>>2]=0;J[k+32>>2]=0;J[k>>2]=0;J[k+4>>2]=0;J[k+40>>2]=0;J[k+44>>2]=0;d=0;p=0;c=0;s=0;t=ba-32|0;ba=t;a=n-r>>3;Lc:{if((a|0)<=0){break Lc}A=a&3;Mc:{if(a>>>0<4){a=0;break Mc}E=a&-4;a=0;while(1){g=(a<<3)+r|0;x=J[g>>2];m=J[g+4>>2];D=m;q=a|1;n=(q<<3)+r|0;g=J[n>>2];u=a|2;v=(u<<3)+r|0;h=J[v>>2];y=a|3;z=(y<<3)+r|0;j=J[z>>2];c=m|x?a:c;m=J[n+4>>2];c=m|g?q:c;q=J[v+4>>2];n=J[z+4>>2];c=n|j?y:q|h?u:c;u=j;v=q;q=i+D|0;f=f+x|0;j=(f>>>0>>0?q+1|0:q)+m|0;m=f;f=g+f|0;g=(m>>>0>f>>>0?j+1|0:j)+v|0;m=f;f=f+h|0;m=(m>>>0>f>>>0?g+1|0:g)+n|0;g=f;f=f+u|0;i=g>>>0>f>>>0?m+1|0:m;a=a+4|0;d=d+4|0;if((E|0)!=(d|0)){continue}break}}if(!A){break Lc}while(1){g=(a<<3)+r|0;d=J[g>>2];g=J[g+4>>2];c=d|g?a:c;a=a+1|0;g=g+i|0;f=d+f|0;i=f>>>0>>0?g+1|0:g;p=p+1|0;if((A|0)!=(p|0)){continue}break}}g=c+1|0;J[k+12>>2]=g;d=J[k>>2];a=J[k+4>>2]-d>>3;Nc:{if(a>>>0>>0){Wa(k,g-a|0);break Nc}if(a>>>0<=g>>>0){break Nc}J[k+4>>2]=d+(g<<3)}n=0;Oc:{Pc:{Qc:{Rc:{if((c|0)>=0){w=+(f>>>0)+ +(i>>>0)*4294967296;f=J[k>>2];a=0;while(1){i=a<<3;h=i+r|0;d=J[h>>2];h=J[h+4>>2];j=(d|h)!=0;m=f+i|0;o=(+(d>>>0)+ +(h>>>0)*4294967296)/w*65536+.5;Sc:{if(o<4294967296&o>=0){d=~~o>>>0;break Sc}d=0}d=d?d:j?1:d;J[m>>2]=d;n=d+n|0;d=(a|0)==(c|0);a=a+1|0;if(!d){continue}break}if((n|0)==65536){break Rc}}J[t+16>>2]=0;J[t+8>>2]=0;J[t+12>>2]=0;p=0;Tc:{if(!g){break Tc}if(g>>>0>=1073741824){break a}i=g<<2;s=oa(i);J[t+8>>2]=s;d=0;f=pa(s,0,i);a=0;if(c>>>0>=7){h=g&-8;while(1){J[f+(a<<2)>>2]=a;j=a|1;J[f+(j<<2)>>2]=j;j=a|2;J[f+(j<<2)>>2]=j;j=a|3;J[f+(j<<2)>>2]=j;j=a|4;J[f+(j<<2)>>2]=j;j=a|5;J[f+(j<<2)>>2]=j;j=a|6;J[f+(j<<2)>>2]=j;j=a|7;J[f+(j<<2)>>2]=j;a=a+8|0;p=p+8|0;if((h|0)!=(p|0)){continue}break}}p=f+i|0;i=g&7;if(!i){break Tc}while(1){J[f+(a<<2)>>2]=a;a=a+1|0;d=d+1|0;if((i|0)!=(d|0)){continue}break}}J[t+24>>2]=k;a=p-s|0;d=a>>2;Uc:{Vc:{if((a|0)>=513){a=d;while(1){f=oa(a<<2);if(f){break Vc}f=a>>>0>1;a=a>>>1|0;if(f){continue}break}}Zb(s,p,t+24|0,d,0,0);break Uc}Zb(s,p,t+24|0,d,f,a);na(f)}if((n|0)<65536){a=J[k>>2]+(J[p-4>>2]<<3)|0;J[a>>2]=(J[a>>2]-n|0)+65536;a=0;break Qc}if((c|0)>0){h=J[k>>2];p=n-65536|0;while(1){o=65536/+(n|0);d=c;while(1){Wc:{Xc:{f=h+(J[(d<<2)+s>>2]<<3)|0;a=J[f>>2];if(a>>>0>=2){q=f;m=a;w=V(o*+(a>>>0));Yc:{if(R(w)<2147483648){i=~~w;break Yc}i=-2147483648}f=(a|0)==(i|0)?1:a-i|0;a=(a|0)>(f|0)?f:a-1|0;a=(a|0)<(p|0)?a:p;J[q>>2]=m-a;p=p-a|0;n=n-a|0;if((n|0)!=65536){break Xc}n=65536;break Wc}if((c|0)!=(d|0)){break Wc}a=1;break Qc}a=(d|0)>1;d=d-1|0;if(a){continue}}break}a=0;if((p|0)>0){continue}break}break Qc}a=0;if(n>>>0<65537){break Qc}while(1)continue}if((c|0)<0){break Oc}break Pc}d=J[t+8>>2];if(d){na(d)}if((c|0)<0|a){break Oc}}d=J[k>>2];n=0;p=0;a=0;if(c>>>0>=3){i=g&-4;s=0;while(1){f=p<<3;h=f+d|0;J[h+4>>2]=a;j=d+(f|8)|0;a=J[h>>2]+a|0;J[j+4>>2]=a;h=d+(f|16)|0;a=a+J[j>>2]|0;J[h+4>>2]=a;f=d+(f|24)|0;a=a+J[h>>2]|0;J[f+4>>2]=a;a=a+J[f>>2]|0;p=p+4|0;s=s+4|0;if((i|0)!=(s|0)){continue}break}}f=g&3;if(f){while(1){i=d+(p<<3)|0;J[i+4>>2]=a;p=p+1|0;a=J[i>>2]+a|0;n=n+1|0;if((f|0)!=(n|0)){continue}break}}if((a|0)!=65536){break Oc}a=0;o=0;Zc:{if((c|0)<0){break Zc}f=J[k>>2];if(c){c=g&-2;d=0;while(1){i=a<<3;h=J[i+f>>2];if(h){i=i+r|0;o=(+M[i>>2]+ +M[i+4>>2]*4294967296)*va(+(h>>>0)*152587890625e-16)+o}i=(a|1)<<3;h=J[i+f>>2];if(h){i=i+r|0;o=(+M[i>>2]+ +M[i+4>>2]*4294967296)*va(+(h>>>0)*152587890625e-16)+o}a=a+2|0;d=d+2|0;if((c|0)!=(d|0)){continue}break}}if(!(g&1)){break Zc}a=a<<3;c=J[a+f>>2];if(!c){break Zc}a=a+r|0;o=(+M[a>>2]+ +M[a+4>>2]*4294967296)*va(+(c>>>0)*152587890625e-16)+o}o=W(-o);_c:{if(o<0x10000000000000000&o>=0){c=R(o)>=1?~~(o>0?T(V(o*2.3283064365386963e-10),4294967295):W((o-+(~~o>>>0>>>0))*2.3283064365386963e-10))>>>0:0;a=~~o>>>0;break _c}c=0;a=0}J[k+16>>2]=a;J[k+20>>2]=c;Va(k,e)}ba=t+32|0;c=J[k+16>>2];d=J[k+20>>2];a=J[e+4>>2]-J[e>>2]|0;J[k+40>>2]=a;J[k+44>>2]=0;g=d<<1|c>>>31;c=(c<<1)+39|0;q=c>>>0<39?g+1|0:g;c=a+((q&7)<<29|c>>>3)|0;m=q>>>3|0;h=a>>>0>c>>>0?m+1|0:m;a=c+8|0;Ia(e,a);a=J[e>>2];J[k+28>>2]=0;J[k+32>>2]=262144;J[k+24>>2]=a+J[k+40>>2];if((b|0)>0){a=262144;while(1){c=b-1|0;f=J[k>>2]+(J[l+(c<<2)>>2]<<3)|0;d=J[f>>2];i=d<<10;if(i>>>0<=a>>>0){while(1){g=J[k+28>>2];J[k+28>>2]=g+1;H[g+J[k+24>>2]|0]=a;a=J[k+32>>2]>>>8|0;J[k+32>>2]=a;if(a>>>0>=i>>>0){continue}break}}g=J[f+4>>2];f=(a>>>0)/(d>>>0)|0;a=g+((f<<16)+(a-P(d,f)|0)|0)|0;J[k+32>>2]=a;d=(b|0)>1;b=c;if(d){continue}break}}a=ba-32|0;ba=a;c=J[e>>2]+J[k+40>>2]|0;b=J[k+32>>2];d=b-262144|0;$c:{if(d>>>0<=63){H[J[k+24>>2]+J[k+28>>2]|0]=b;f=J[k+28>>2]+1|0;break $c}if(d>>>0<=16383){d=J[k+24>>2]+J[k+28>>2]|0;H[d+1|0]=b+16384>>>8;H[d|0]=b;f=J[k+28>>2]+2|0;break $c}if(d>>>0<=4194303){d=J[k+24>>2]+J[k+28>>2]|0;H[d+2|0]=b+8126464>>>16;H[d+1|0]=b>>>8;H[d|0]=b;f=J[k+28>>2]+3|0;break $c}if(d>>>0<=1073741823){d=J[k+24>>2]+J[k+28>>2]|0;f=b-1074003968|0;H[d+3|0]=f>>>24;H[d+2|0]=f>>>16;H[d+1|0]=b>>>8;H[d|0]=b;f=J[k+28>>2]+4|0;break $c}f=J[k+28>>2]}b=f;J[a>>2]=0;J[a+4>>2]=0;H[a+24|0]=0;J[a+16>>2]=0;J[a+20>>2]=0;J[a+8>>2]=0;J[a+12>>2]=0;g=b>>31;xb(b,g,a);d=J[a+4>>2]-J[a>>2]|0;ta(d+c|0,c,b);ua(c,J[a>>2],d);c=J[k+40>>2];b=b+d|0;q=J[k+44>>2]+(f>>>0>b>>>0?g+1|0:g)|0;d=b;b=b+c|0;Ia(e,b);b=J[a+12>>2];J[a+12>>2]=0;if(b){na(b)}b=J[a>>2];if(b){J[a+4>>2]=b;na(b)}ba=a+32|0;a=J[k>>2];if(a){J[k+4>>2]=a;na(a)}a=J[k+48>>2];if(a){na(a)}ba=k- -64|0;break Jc}h=1;break v;case 11:l=a;n=0;r=0;d=0;s=0;f=0;i=0;k=ba+-64|0;ba=k;J[k+56>>2]=0;J[k+48>>2]=0;J[k+52>>2]=0;ad:{a=p+1|0;if(a){if(a>>>0>=536870912){break a}a=a<<3;r=oa(a);J[k+48>>2]=r;n=pa(r,0,(p<<3)+8|0)+a|0}bd:{if((b|0)<=0){break bd}a=0;if(b>>>0>=4){j=b&-4;while(1){c=a<<2;g=(J[c+l>>2]<<3)+r|0;m=J[g>>2];h=J[g+4>>2];m=m+1|0;h=m?h:h+1|0;J[g>>2]=m;J[g+4>>2]=h;g=(J[l+(c|4)>>2]<<3)+r|0;h=J[g>>2];m=J[g+4>>2];h=h+1|0;m=h?m:m+1|0;J[g>>2]=h;J[g+4>>2]=m;g=(J[l+(c|8)>>2]<<3)+r|0;h=J[g>>2];q=J[g+4>>2];h=h+1|0;q=h?q:q+1|0;J[g>>2]=h;J[g+4>>2]=q;c=(J[l+(c|12)>>2]<<3)+r|0;g=J[c>>2];h=J[c+4>>2];g=g+1|0;h=g?h:h+1|0;J[c>>2]=g;J[c+4>>2]=h;a=a+4|0;d=d+4|0;if((j|0)!=(d|0)){continue}break}}d=b&3;if(!d){break bd}while(1){c=(J[l+(a<<2)>>2]<<3)+r|0;g=J[c>>2];m=J[c+4>>2];g=g+1|0;m=g?m:m+1|0;J[c>>2]=g;J[c+4>>2]=m;a=a+1|0;s=s+1|0;if((d|0)!=(s|0)){continue}break}}J[k+8>>2]=0;J[k+12>>2]=0;J[k+16>>2]=0;J[k+20>>2]=0;J[k+24>>2]=0;J[k+28>>2]=0;J[k+32>>2]=0;J[k>>2]=0;J[k+4>>2]=0;J[k+40>>2]=0;J[k+44>>2]=0;d=0;p=0;c=0;s=0;t=ba-32|0;ba=t;a=n-r>>3;cd:{if((a|0)<=0){break cd}A=a&3;dd:{if(a>>>0<4){a=0;break dd}E=a&-4;a=0;while(1){g=(a<<3)+r|0;x=J[g>>2];m=J[g+4>>2];D=m;q=a|1;n=(q<<3)+r|0;g=J[n>>2];u=a|2;v=(u<<3)+r|0;h=J[v>>2];y=a|3;z=(y<<3)+r|0;j=J[z>>2];c=m|x?a:c;m=J[n+4>>2];c=m|g?q:c;q=J[v+4>>2];n=J[z+4>>2];c=n|j?y:q|h?u:c;u=j;j=h;v=q;q=i+D|0;f=f+x|0;h=(f>>>0>>0?q+1|0:q)+m|0;m=f;f=g+f|0;g=(m>>>0>f>>>0?h+1|0:h)+v|0;m=f;f=f+j|0;j=(m>>>0>f>>>0?g+1|0:g)+n|0;g=f;f=f+u|0;i=g>>>0>f>>>0?j+1|0:j;a=a+4|0;d=d+4|0;if((E|0)!=(d|0)){continue}break}}if(!A){break cd}while(1){g=(a<<3)+r|0;d=J[g>>2];g=J[g+4>>2];c=d|g?a:c;a=a+1|0;m=g+i|0;f=d+f|0;i=f>>>0>>0?m+1|0:m;p=p+1|0;if((A|0)!=(p|0)){continue}break}}g=c+1|0;J[k+12>>2]=g;d=J[k>>2];a=J[k+4>>2]-d>>3;ed:{if(a>>>0>>0){Wa(k,g-a|0);break ed}if(a>>>0<=g>>>0){break ed}J[k+4>>2]=d+(g<<3)}n=0;fd:{gd:{hd:{id:{if((c|0)>=0){w=+(f>>>0)+ +(i>>>0)*4294967296;f=J[k>>2];a=0;while(1){i=a<<3;h=i+r|0;d=J[h>>2];h=J[h+4>>2];j=(d|h)!=0;m=f+i|0;o=(+(d>>>0)+ +(h>>>0)*4294967296)/w*262144+.5;jd:{if(o<4294967296&o>=0){d=~~o>>>0;break jd}d=0}d=d?d:j?1:d;J[m>>2]=d;n=d+n|0;d=(a|0)==(c|0);a=a+1|0;if(!d){continue}break}if((n|0)==262144){break id}}J[t+16>>2]=0;J[t+8>>2]=0;J[t+12>>2]=0;p=0;kd:{if(!g){break kd}if(g>>>0>=1073741824){break a}i=g<<2;s=oa(i);J[t+8>>2]=s;d=0;f=pa(s,0,i);a=0;if(c>>>0>=7){h=g&-8;while(1){J[f+(a<<2)>>2]=a;j=a|1;J[f+(j<<2)>>2]=j;j=a|2;J[f+(j<<2)>>2]=j;j=a|3;J[f+(j<<2)>>2]=j;j=a|4;J[f+(j<<2)>>2]=j;j=a|5;J[f+(j<<2)>>2]=j;j=a|6;J[f+(j<<2)>>2]=j;j=a|7;J[f+(j<<2)>>2]=j;a=a+8|0;p=p+8|0;if((h|0)!=(p|0)){continue}break}}p=f+i|0;i=g&7;if(!i){break kd}while(1){J[f+(a<<2)>>2]=a;a=a+1|0;d=d+1|0;if((i|0)!=(d|0)){continue}break}}J[t+24>>2]=k;a=p-s|0;d=a>>2;ld:{md:{if((a|0)>=513){a=d;while(1){f=oa(a<<2);if(f){break md}f=a>>>0>1;a=a>>>1|0;if(f){continue}break}}Yb(s,p,t+24|0,d,0,0);break ld}Yb(s,p,t+24|0,d,f,a);na(f)}if((n|0)<262144){a=J[k>>2]+(J[p-4>>2]<<3)|0;J[a>>2]=(J[a>>2]-n|0)+262144;a=0;break hd}if((c|0)>0){h=J[k>>2];p=n-262144|0;while(1){o=262144/+(n|0);d=c;while(1){nd:{od:{f=h+(J[(d<<2)+s>>2]<<3)|0;a=J[f>>2];if(a>>>0>=2){q=f;m=a;w=V(o*+(a>>>0));pd:{if(R(w)<2147483648){i=~~w;break pd}i=-2147483648}f=(a|0)==(i|0)?1:a-i|0;a=(a|0)>(f|0)?f:a-1|0;a=(a|0)<(p|0)?a:p;J[q>>2]=m-a;p=p-a|0;n=n-a|0;if((n|0)!=262144){break od}n=262144;break nd}if((c|0)!=(d|0)){break nd}a=1;break hd}a=(d|0)>1;d=d-1|0;if(a){continue}}break}a=0;if((p|0)>0){continue}break}break hd}a=0;if(n>>>0<262145){break hd}while(1)continue}if((c|0)<0){break fd}break gd}d=J[t+8>>2];if(d){na(d)}if((c|0)<0|a){break fd}}d=J[k>>2];n=0;p=0;a=0;if(c>>>0>=3){i=g&-4;s=0;while(1){f=p<<3;h=f+d|0;J[h+4>>2]=a;j=d+(f|8)|0;a=J[h>>2]+a|0;J[j+4>>2]=a;h=d+(f|16)|0;a=a+J[j>>2]|0;J[h+4>>2]=a;f=d+(f|24)|0;a=a+J[h>>2]|0;J[f+4>>2]=a;a=a+J[f>>2]|0;p=p+4|0;s=s+4|0;if((i|0)!=(s|0)){continue}break}}f=g&3;if(f){while(1){i=d+(p<<3)|0;J[i+4>>2]=a;p=p+1|0;a=J[i>>2]+a|0;n=n+1|0;if((f|0)!=(n|0)){continue}break}}if((a|0)!=262144){break fd}a=0;o=0;qd:{if((c|0)<0){break qd}f=J[k>>2];if(c){c=g&-2;d=0;while(1){i=a<<3;h=J[i+f>>2];if(h){i=i+r|0;o=(+M[i>>2]+ +M[i+4>>2]*4294967296)*va(+(h>>>0)*3814697265625e-18)+o}i=(a|1)<<3;h=J[i+f>>2];if(h){i=i+r|0;o=(+M[i>>2]+ +M[i+4>>2]*4294967296)*va(+(h>>>0)*3814697265625e-18)+o}a=a+2|0;d=d+2|0;if((c|0)!=(d|0)){continue}break}}if(!(g&1)){break qd}a=a<<3;c=J[a+f>>2];if(!c){break qd}a=a+r|0;o=(+M[a>>2]+ +M[a+4>>2]*4294967296)*va(+(c>>>0)*3814697265625e-18)+o}o=W(-o);rd:{if(o<0x10000000000000000&o>=0){c=R(o)>=1?~~(o>0?T(V(o*2.3283064365386963e-10),4294967295):W((o-+(~~o>>>0>>>0))*2.3283064365386963e-10))>>>0:0;a=~~o>>>0;break rd}c=0;a=0}J[k+16>>2]=a;J[k+20>>2]=c;Va(k,e)}ba=t+32|0;c=J[k+16>>2];d=J[k+20>>2];a=J[e+4>>2]-J[e>>2]|0;J[k+40>>2]=a;J[k+44>>2]=0;g=d<<1|c>>>31;c=(c<<1)+39|0;q=c>>>0<39?g+1|0:g;c=a+((q&7)<<29|c>>>3)|0;j=q>>>3|0;g=a>>>0>c>>>0?j+1|0:j;a=c+8|0;Ia(e,a);a=J[e>>2];J[k+28>>2]=0;J[k+32>>2]=1048576;J[k+24>>2]=a+J[k+40>>2];if((b|0)>0){a=1048576;while(1){c=b-1|0;f=J[k>>2]+(J[l+(c<<2)>>2]<<3)|0;d=J[f>>2];i=d<<10;if(i>>>0<=a>>>0){while(1){g=J[k+28>>2];J[k+28>>2]=g+1;H[g+J[k+24>>2]|0]=a;a=J[k+32>>2]>>>8|0;J[k+32>>2]=a;if(a>>>0>=i>>>0){continue}break}}g=J[f+4>>2];f=(a>>>0)/(d>>>0)|0;a=g+((f<<18)+(a-P(d,f)|0)|0)|0;J[k+32>>2]=a;d=(b|0)>1;b=c;if(d){continue}break}}a=ba-32|0;ba=a;c=J[e>>2]+J[k+40>>2]|0;b=J[k+32>>2];d=b+-1048576|0;sd:{if(d>>>0<=63){H[J[k+24>>2]+J[k+28>>2]|0]=b;f=J[k+28>>2]+1|0;break sd}if(d>>>0<=16383){d=J[k+24>>2]+J[k+28>>2]|0;H[d+1|0]=b+16384>>>8;H[d|0]=b;f=J[k+28>>2]+2|0;break sd}if(d>>>0<=4194303){d=J[k+24>>2]+J[k+28>>2]|0;H[d+2|0]=b+7340032>>>16;H[d+1|0]=b>>>8;H[d|0]=b;f=J[k+28>>2]+3|0;break sd}if(d>>>0<=1073741823){d=J[k+24>>2]+J[k+28>>2]|0;f=b-1074790400|0;H[d+3|0]=f>>>24;H[d+2|0]=f>>>16;H[d+1|0]=b>>>8;H[d|0]=b;f=J[k+28>>2]+4|0;break sd}f=J[k+28>>2]}b=f;J[a>>2]=0;J[a+4>>2]=0;H[a+24|0]=0;J[a+16>>2]=0;J[a+20>>2]=0;J[a+8>>2]=0;J[a+12>>2]=0;g=b>>31;xb(b,g,a);d=J[a+4>>2]-J[a>>2]|0;ta(d+c|0,c,b);ua(c,J[a>>2],d);c=J[k+40>>2];b=b+d|0;q=J[k+44>>2]+(f>>>0>b>>>0?g+1|0:g)|0;d=b;b=b+c|0;Ia(e,b);b=J[a+12>>2];J[a+12>>2]=0;if(b){na(b)}b=J[a>>2];if(b){J[a+4>>2]=b;na(b)}ba=a+32|0;a=J[k>>2];if(a){J[k+4>>2]=a;na(a)}a=J[k+48>>2];if(a){na(a)}ba=k- -64|0;break ad}h=1;break v;case 12:l=a;n=0;r=0;d=0;s=0;f=0;i=0;k=ba+-64|0;ba=k;J[k+56>>2]=0;J[k+48>>2]=0;J[k+52>>2]=0;td:{a=p+1|0;if(a){if(a>>>0>=536870912){break a}a=a<<3;r=oa(a);J[k+48>>2]=r;n=pa(r,0,(p<<3)+8|0)+a|0}ud:{if((b|0)<=0){break ud}a=0;if(b>>>0>=4){m=b&-4;while(1){c=a<<2;g=(J[c+l>>2]<<3)+r|0;h=g;j=J[g>>2];g=J[g+4>>2];j=j+1|0;g=j?g:g+1|0;J[h>>2]=j;J[h+4>>2]=g;g=(J[l+(c|4)>>2]<<3)+r|0;h=J[g>>2];j=J[g+4>>2];h=h+1|0;j=h?j:j+1|0;J[g>>2]=h;J[g+4>>2]=j;g=(J[l+(c|8)>>2]<<3)+r|0;h=J[g>>2];q=J[g+4>>2];h=h+1|0;q=h?q:q+1|0;J[g>>2]=h;J[g+4>>2]=q;c=(J[l+(c|12)>>2]<<3)+r|0;h=J[c>>2];g=J[c+4>>2];h=h+1|0;g=h?g:g+1|0;J[c>>2]=h;J[c+4>>2]=g;a=a+4|0;d=d+4|0;if((m|0)!=(d|0)){continue}break}}d=b&3;if(!d){break ud}while(1){c=(J[l+(a<<2)>>2]<<3)+r|0;g=J[c>>2];j=J[c+4>>2];g=g+1|0;j=g?j:j+1|0;J[c>>2]=g;J[c+4>>2]=j;a=a+1|0;s=s+1|0;if((d|0)!=(s|0)){continue}break}}J[k+8>>2]=0;J[k+12>>2]=0;J[k+16>>2]=0;J[k+20>>2]=0;J[k+24>>2]=0;J[k+28>>2]=0;J[k+32>>2]=0;J[k>>2]=0;J[k+4>>2]=0;J[k+40>>2]=0;J[k+44>>2]=0;d=0;p=0;c=0;s=0;t=ba-32|0;ba=t;a=n-r>>3;vd:{if((a|0)<=0){break vd}A=a&3;wd:{if(a>>>0<4){a=0;break wd}E=a&-4;a=0;while(1){g=(a<<3)+r|0;x=J[g>>2];m=J[g+4>>2];D=m;q=a|1;n=(q<<3)+r|0;g=J[n>>2];u=a|2;v=(u<<3)+r|0;h=J[v>>2];y=a|3;z=(y<<3)+r|0;j=J[z>>2];c=m|x?a:c;m=J[n+4>>2];c=m|g?q:c;q=J[v+4>>2];n=J[z+4>>2];c=n|j?y:q|h?u:c;u=q;v=g;q=i+D|0;f=f+x|0;g=(f>>>0>>0?q+1|0:q)+m|0;m=f;f=f+v|0;g=(m>>>0>f>>>0?g+1|0:g)+u|0;m=f;f=f+h|0;h=(m>>>0>f>>>0?g+1|0:g)+n|0;g=f;f=f+j|0;i=g>>>0>f>>>0?h+1|0:h;a=a+4|0;d=d+4|0;if((E|0)!=(d|0)){continue}break}}if(!A){break vd}while(1){g=(a<<3)+r|0;d=J[g>>2];g=J[g+4>>2];c=d|g?a:c;a=a+1|0;j=g+i|0;f=d+f|0;i=f>>>0>>0?j+1|0:j;p=p+1|0;if((A|0)!=(p|0)){continue}break}}g=c+1|0;J[k+12>>2]=g;d=J[k>>2];a=J[k+4>>2]-d>>3;xd:{if(a>>>0>>0){Wa(k,g-a|0);break xd}if(a>>>0<=g>>>0){break xd}J[k+4>>2]=d+(g<<3)}n=0;yd:{zd:{Ad:{Bd:{if((c|0)>=0){w=+(f>>>0)+ +(i>>>0)*4294967296;f=J[k>>2];a=0;while(1){i=a<<3;h=i+r|0;d=J[h>>2];h=J[h+4>>2];j=(d|h)!=0;m=f+i|0;o=(+(d>>>0)+ +(h>>>0)*4294967296)/w*524288+.5;Cd:{if(o<4294967296&o>=0){d=~~o>>>0;break Cd}d=0}d=d?d:j?1:d;J[m>>2]=d;n=d+n|0;d=(a|0)==(c|0);a=a+1|0;if(!d){continue}break}if((n|0)==524288){break Bd}}J[t+16>>2]=0;J[t+8>>2]=0;J[t+12>>2]=0;p=0;Dd:{if(!g){break Dd}if(g>>>0>=1073741824){break a}i=g<<2;s=oa(i);J[t+8>>2]=s;d=0;f=pa(s,0,i);a=0;if(c>>>0>=7){h=g&-8;while(1){J[f+(a<<2)>>2]=a;j=a|1;J[f+(j<<2)>>2]=j;j=a|2;J[f+(j<<2)>>2]=j;j=a|3;J[f+(j<<2)>>2]=j;j=a|4;J[f+(j<<2)>>2]=j;j=a|5;J[f+(j<<2)>>2]=j;j=a|6;J[f+(j<<2)>>2]=j;j=a|7;J[f+(j<<2)>>2]=j;a=a+8|0;p=p+8|0;if((h|0)!=(p|0)){continue}break}}p=f+i|0;i=g&7;if(!i){break Dd}while(1){J[f+(a<<2)>>2]=a;a=a+1|0;d=d+1|0;if((i|0)!=(d|0)){continue}break}}J[t+24>>2]=k;a=p-s|0;d=a>>2;Ed:{Fd:{if((a|0)>=513){a=d;while(1){f=oa(a<<2);if(f){break Fd}f=a>>>0>1;a=a>>>1|0;if(f){continue}break}}Xb(s,p,t+24|0,d,0,0);break Ed}Xb(s,p,t+24|0,d,f,a);na(f)}if((n|0)<524288){a=J[k>>2]+(J[p-4>>2]<<3)|0;J[a>>2]=(J[a>>2]-n|0)+524288;a=0;break Ad}if((c|0)>0){h=J[k>>2];p=n-524288|0;while(1){o=524288/+(n|0);d=c;while(1){Gd:{Hd:{f=h+(J[(d<<2)+s>>2]<<3)|0;a=J[f>>2];if(a>>>0>=2){q=f;m=a;w=V(o*+(a>>>0));Id:{if(R(w)<2147483648){i=~~w;break Id}i=-2147483648}f=(a|0)==(i|0)?1:a-i|0;a=(a|0)>(f|0)?f:a-1|0;a=(a|0)<(p|0)?a:p;J[q>>2]=m-a;p=p-a|0;n=n-a|0;if((n|0)!=524288){break Hd}n=524288;break Gd}if((c|0)!=(d|0)){break Gd}a=1;break Ad}a=(d|0)>1;d=d-1|0;if(a){continue}}break}a=0;if((p|0)>0){continue}break}break Ad}a=0;if(n>>>0<524289){break Ad}while(1)continue}if((c|0)<0){break yd}break zd}d=J[t+8>>2];if(d){na(d)}if((c|0)<0|a){break yd}}d=J[k>>2];n=0;p=0;a=0;if(c>>>0>=3){i=g&-4;s=0;while(1){f=p<<3;h=f+d|0;J[h+4>>2]=a;j=d+(f|8)|0;a=J[h>>2]+a|0;J[j+4>>2]=a;h=d+(f|16)|0;a=a+J[j>>2]|0;J[h+4>>2]=a;f=d+(f|24)|0;a=a+J[h>>2]|0;J[f+4>>2]=a;a=a+J[f>>2]|0;p=p+4|0;s=s+4|0;if((i|0)!=(s|0)){continue}break}}f=g&3;if(f){while(1){i=d+(p<<3)|0;J[i+4>>2]=a;p=p+1|0;a=J[i>>2]+a|0;n=n+1|0;if((f|0)!=(n|0)){continue}break}}if((a|0)!=524288){break yd}a=0;o=0;Jd:{if((c|0)<0){break Jd}f=J[k>>2];if(c){c=g&-2;d=0;while(1){i=a<<3;h=J[i+f>>2];if(h){i=i+r|0;o=(+M[i>>2]+ +M[i+4>>2]*4294967296)*va(+(h>>>0)*19073486328125e-19)+o}i=(a|1)<<3;h=J[i+f>>2];if(h){i=i+r|0;o=(+M[i>>2]+ +M[i+4>>2]*4294967296)*va(+(h>>>0)*19073486328125e-19)+o}a=a+2|0;d=d+2|0;if((c|0)!=(d|0)){continue}break}}if(!(g&1)){break Jd}a=a<<3;c=J[a+f>>2];if(!c){break Jd}a=a+r|0;o=(+M[a>>2]+ +M[a+4>>2]*4294967296)*va(+(c>>>0)*19073486328125e-19)+o}o=W(-o);Kd:{if(o<0x10000000000000000&o>=0){c=R(o)>=1?~~(o>0?T(V(o*2.3283064365386963e-10),4294967295):W((o-+(~~o>>>0>>>0))*2.3283064365386963e-10))>>>0:0;a=~~o>>>0;break Kd}c=0;a=0}J[k+16>>2]=a;J[k+20>>2]=c;Va(k,e)}ba=t+32|0;c=J[k+16>>2];d=J[k+20>>2];a=J[e+4>>2]-J[e>>2]|0;J[k+40>>2]=a;J[k+44>>2]=0;g=d<<1|c>>>31;c=(c<<1)+39|0;q=c>>>0<39?g+1|0:g;c=a+((q&7)<<29|c>>>3)|0;h=q>>>3|0;m=a>>>0>c>>>0?h+1|0:h;a=c+8|0;Ia(e,a);a=J[e>>2];J[k+28>>2]=0;J[k+32>>2]=2097152;J[k+24>>2]=a+J[k+40>>2];if((b|0)>0){a=2097152;while(1){c=b-1|0;f=J[k>>2]+(J[l+(c<<2)>>2]<<3)|0;d=J[f>>2];i=d<<10;if(i>>>0<=a>>>0){while(1){g=J[k+28>>2];J[k+28>>2]=g+1;H[g+J[k+24>>2]|0]=a;a=J[k+32>>2]>>>8|0;J[k+32>>2]=a;if(a>>>0>=i>>>0){continue}break}}g=J[f+4>>2];f=(a>>>0)/(d>>>0)|0;a=g+((f<<19)+(a-P(d,f)|0)|0)|0;J[k+32>>2]=a;d=(b|0)>1;b=c;if(d){continue}break}}a=ba-32|0;ba=a;c=J[e>>2]+J[k+40>>2]|0;b=J[k+32>>2];d=b-2097152|0;Ld:{if(d>>>0<=63){H[J[k+24>>2]+J[k+28>>2]|0]=b;f=J[k+28>>2]+1|0;break Ld}if(d>>>0<=16383){d=J[k+24>>2]+J[k+28>>2]|0;H[d+1|0]=b+16384>>>8;H[d|0]=b;f=J[k+28>>2]+2|0;break Ld}if(d>>>0<=4194303){d=J[k+24>>2]+J[k+28>>2]|0;H[d+2|0]=b+6291456>>>16;H[d+1|0]=b>>>8;H[d|0]=b;f=J[k+28>>2]+3|0;break Ld}if(d>>>0<=1073741823){d=J[k+24>>2]+J[k+28>>2]|0;f=b-1075838976|0;H[d+3|0]=f>>>24;H[d+2|0]=f>>>16;H[d+1|0]=b>>>8;H[d|0]=b;f=J[k+28>>2]+4|0;break Ld}f=J[k+28>>2]}b=f;J[a>>2]=0;J[a+4>>2]=0;H[a+24|0]=0;J[a+16>>2]=0;J[a+20>>2]=0;J[a+8>>2]=0;J[a+12>>2]=0;g=b>>31;xb(b,g,a);d=J[a+4>>2]-J[a>>2]|0;ta(d+c|0,c,b);ua(c,J[a>>2],d);c=J[k+40>>2];b=b+d|0;q=J[k+44>>2]+(f>>>0>b>>>0?g+1|0:g)|0;d=b;b=b+c|0;Ia(e,b);b=J[a+12>>2];J[a+12>>2]=0;if(b){na(b)}b=J[a>>2];if(b){J[a+4>>2]=b;na(b)}ba=a+32|0;a=J[k>>2];if(a){J[k+4>>2]=a;na(a)}a=J[k+48>>2];if(a){na(a)}ba=k- -64|0;break td}h=1;break v;case 13:u=a;k=0;n=0;r=0;s=0;f=0;i=0;l=ba+-64|0;ba=l;J[l+56>>2]=0;J[l+48>>2]=0;J[l+52>>2]=0;Md:{a=p+1|0;if(a){if(a>>>0>=536870912){break a}a=a<<3;n=oa(a);J[l+48>>2]=n;k=pa(n,0,(p<<3)+8|0)+a|0}Nd:{if((b|0)<=0){break Nd}a=0;if(b>>>0>=4){g=b&-4;while(1){c=a<<2;d=(J[c+u>>2]<<3)+n|0;h=J[d>>2];m=J[d+4>>2];h=h+1|0;m=h?m:m+1|0;J[d>>2]=h;J[d+4>>2]=m;d=(J[u+(c|4)>>2]<<3)+n|0;j=J[d>>2];h=J[d+4>>2];j=j+1|0;h=j?h:h+1|0;J[d>>2]=j;J[d+4>>2]=h;d=(J[u+(c|8)>>2]<<3)+n|0;h=J[d>>2];q=J[d+4>>2];h=h+1|0;q=h?q:q+1|0;J[d>>2]=h;J[d+4>>2]=q;c=(J[u+(c|12)>>2]<<3)+n|0;d=J[c>>2];m=J[c+4>>2];d=d+1|0;m=d?m:m+1|0;J[c>>2]=d;J[c+4>>2]=m;a=a+4|0;r=r+4|0;if((g|0)!=(r|0)){continue}break}}d=b&3;if(!d){break Nd}while(1){c=(J[u+(a<<2)>>2]<<3)+n|0;g=J[c>>2];h=J[c+4>>2];g=g+1|0;h=g?h:h+1|0;J[c>>2]=g;J[c+4>>2]=h;a=a+1|0;s=s+1|0;if((d|0)!=(s|0)){continue}break}}J[l+8>>2]=0;J[l+12>>2]=0;J[l+16>>2]=0;J[l+20>>2]=0;J[l+24>>2]=0;J[l+28>>2]=0;J[l+32>>2]=0;J[l>>2]=0;J[l+4>>2]=0;J[l+40>>2]=0;J[l+44>>2]=0;c=e;e=0;r=0;d=0;s=0;t=ba-32|0;ba=t;a=k-n>>3;Od:{if((a|0)<=0){break Od}x=a&3;Pd:{if(a>>>0<4){a=0;break Pd}A=a&-4;a=0;while(1){g=(a<<3)+n|0;p=J[g>>2];m=J[g+4>>2];E=m;q=a|1;k=(q<<3)+n|0;g=J[k>>2];v=a|2;D=(v<<3)+n|0;h=J[D>>2];y=a|3;z=(y<<3)+n|0;j=J[z>>2];d=p|m?a:d;m=J[k+4>>2];d=m|g?q:d;q=J[D+4>>2];k=J[z+4>>2];d=k|j?y:q|h?v:d;v=q;q=i+E|0;f=f+p|0;m=(f>>>0

>>0?q+1|0:q)+m|0;i=f;f=g+f|0;g=(i>>>0>f>>>0?m+1|0:m)+v|0;m=f;f=f+h|0;g=(m>>>0>f>>>0?g+1|0:g)+k|0;m=f;f=f+j|0;i=m>>>0>f>>>0?g+1|0:g;a=a+4|0;e=e+4|0;if((A|0)!=(e|0)){continue}break}}if(!x){break Od}while(1){g=(a<<3)+n|0;e=J[g>>2];g=J[g+4>>2];d=e|g?a:d;a=a+1|0;h=g+i|0;f=e+f|0;i=f>>>0>>0?h+1|0:h;r=r+1|0;if((x|0)!=(r|0)){continue}break}}g=d+1|0;J[l+12>>2]=g;e=J[l>>2];a=J[l+4>>2]-e>>3;Qd:{if(a>>>0>>0){Wa(l,g-a|0);break Qd}if(a>>>0<=g>>>0){break Qd}J[l+4>>2]=e+(g<<3)}k=0;Rd:{Sd:{Td:{Ud:{if((d|0)>=0){w=+(f>>>0)+ +(i>>>0)*4294967296;f=J[l>>2];a=0;while(1){i=a<<3;h=i+n|0;e=J[h>>2];h=J[h+4>>2];j=(e|h)!=0;m=f+i|0;o=(+(e>>>0)+ +(h>>>0)*4294967296)/w*1048576+.5;Vd:{if(o<4294967296&o>=0){e=~~o>>>0;break Vd}e=0}e=e?e:j?1:e;J[m>>2]=e;k=e+k|0;e=(a|0)==(d|0);a=a+1|0;if(!e){continue}break}if((k|0)==1048576){break Ud}}J[t+16>>2]=0;J[t+8>>2]=0;J[t+12>>2]=0;p=0;Wd:{if(!g){break Wd}if(g>>>0>=1073741824){break a}i=g<<2;s=oa(i);J[t+8>>2]=s;e=0;f=pa(s,0,i);a=0;if(d>>>0>=7){h=g&-8;while(1){J[f+(a<<2)>>2]=a;j=a|1;J[f+(j<<2)>>2]=j;j=a|2;J[f+(j<<2)>>2]=j;j=a|3;J[f+(j<<2)>>2]=j;j=a|4;J[f+(j<<2)>>2]=j;j=a|5;J[f+(j<<2)>>2]=j;j=a|6;J[f+(j<<2)>>2]=j;j=a|7;J[f+(j<<2)>>2]=j;a=a+8|0;p=p+8|0;if((h|0)!=(p|0)){continue}break}}p=f+i|0;i=g&7;if(!i){break Wd}while(1){J[f+(a<<2)>>2]=a;a=a+1|0;e=e+1|0;if((i|0)!=(e|0)){continue}break}}J[t+24>>2]=l;a=p-s|0;e=a>>2;Xd:{Yd:{if((a|0)>=513){a=e;while(1){f=oa(a<<2);if(f){break Yd}f=a>>>0>1;a=a>>>1|0;if(f){continue}break}}Wb(s,p,t+24|0,e,0,0);break Xd}Wb(s,p,t+24|0,e,f,a);na(f)}if((k|0)<1048576){a=J[l>>2]+(J[p-4>>2]<<3)|0;J[a>>2]=(J[a>>2]-k|0)- -1048576;a=0;break Td}if((d|0)>0){h=J[l>>2];r=k+-1048576|0;while(1){o=1048576/+(k|0);e=d;while(1){Zd:{_d:{f=h+(J[(e<<2)+s>>2]<<3)|0;a=J[f>>2];if(a>>>0>=2){q=f;m=a;w=V(o*+(a>>>0));$d:{if(R(w)<2147483648){i=~~w;break $d}i=-2147483648}f=(a|0)==(i|0)?1:a-i|0;a=(a|0)>(f|0)?f:a-1|0;a=(a|0)<(r|0)?a:r;J[q>>2]=m-a;r=r-a|0;k=k-a|0;if((k|0)!=1048576){break _d}k=1048576;break Zd}if((d|0)!=(e|0)){break Zd}a=1;break Td}a=(e|0)>1;e=e-1|0;if(a){continue}}break}a=0;if((r|0)>0){continue}break}break Td}a=0;if(k>>>0<1048577){break Td}while(1)continue}if((d|0)<0){break Rd}break Sd}e=J[t+8>>2];if(e){na(e)}if((d|0)<0|a){break Rd}}e=J[l>>2];k=0;r=0;a=0;if(d>>>0>=3){i=g&-4;s=0;while(1){f=r<<3;h=f+e|0;J[h+4>>2]=a;j=e+(f|8)|0;a=J[h>>2]+a|0;J[j+4>>2]=a;h=e+(f|16)|0;a=a+J[j>>2]|0;J[h+4>>2]=a;f=e+(f|24)|0;a=a+J[h>>2]|0;J[f+4>>2]=a;a=a+J[f>>2]|0;r=r+4|0;s=s+4|0;if((i|0)!=(s|0)){continue}break}}f=g&3;if(f){while(1){i=e+(r<<3)|0;J[i+4>>2]=a;r=r+1|0;a=J[i>>2]+a|0;k=k+1|0;if((f|0)!=(k|0)){continue}break}}if((a|0)!=1048576){break Rd}a=0;o=0;ae:{if((d|0)<0){break ae}f=J[l>>2];if(d){d=g&-2;e=0;while(1){i=a<<3;h=J[i+f>>2];if(h){i=i+n|0;o=(+M[i>>2]+ +M[i+4>>2]*4294967296)*va(+(h>>>0)*9.5367431640625e-7)+o}i=(a|1)<<3;h=J[i+f>>2];if(h){i=i+n|0;o=(+M[i>>2]+ +M[i+4>>2]*4294967296)*va(+(h>>>0)*9.5367431640625e-7)+o}a=a+2|0;e=e+2|0;if((d|0)!=(e|0)){continue}break}}if(!(g&1)){break ae}a=a<<3;d=J[a+f>>2];if(!d){break ae}a=a+n|0;o=(+M[a>>2]+ +M[a+4>>2]*4294967296)*va(+(d>>>0)*9.5367431640625e-7)+o}o=W(-o);be:{if(o<0x10000000000000000&o>=0){d=R(o)>=1?~~(o>0?T(V(o*2.3283064365386963e-10),4294967295):W((o-+(~~o>>>0>>>0))*2.3283064365386963e-10))>>>0:0;a=~~o>>>0;break be}d=0;a=0}J[l+16>>2]=a;J[l+20>>2]=d;Va(l,c)}ba=t+32|0;d=J[l+16>>2];e=J[l+20>>2];a=J[c+4>>2]-J[c>>2]|0;J[l+40>>2]=a;J[l+44>>2]=0;g=e<<1|d>>>31;d=(d<<1)+39|0;q=d>>>0<39?g+1|0:g;d=a+((q&7)<<29|d>>>3)|0;g=q>>>3|0;j=a>>>0>d>>>0?g+1|0:g;a=d+8|0;Ia(c,a);a=J[c>>2];J[l+28>>2]=0;J[l+32>>2]=4194304;J[l+24>>2]=a+J[l+40>>2];if((b|0)>0){a=4194304;while(1){d=b-1|0;f=J[l>>2]+(J[u+(d<<2)>>2]<<3)|0;e=J[f>>2];i=e<<10;if(i>>>0<=a>>>0){while(1){g=J[l+28>>2];J[l+28>>2]=g+1;H[g+J[l+24>>2]|0]=a;a=J[l+32>>2]>>>8|0;J[l+32>>2]=a;if(a>>>0>=i>>>0){continue}break}}g=J[f+4>>2];f=(a>>>0)/(e>>>0)|0;a=g+((f<<20)+(a-P(e,f)|0)|0)|0;J[l+32>>2]=a;e=(b|0)>1;b=d;if(e){continue}break}}rc(l,c);a=J[l>>2];if(a){J[l+4>>2]=a;na(a)}a=J[l+48>>2];if(a){na(a)}ba=l- -64|0;break Md}h=1;break v;case 14:u=a;k=0;n=0;r=0;s=0;f=0;i=0;l=ba+-64|0;ba=l;J[l+56>>2]=0;J[l+48>>2]=0;J[l+52>>2]=0;ce:{a=p+1|0;if(a){if(a>>>0>=536870912){break a}a=a<<3;n=oa(a);J[l+48>>2]=n;k=pa(n,0,(p<<3)+8|0)+a|0}de:{if((b|0)<=0){break de}a=0;if(b>>>0>=4){h=b&-4;while(1){c=a<<2;d=(J[c+u>>2]<<3)+n|0;j=J[d>>2];g=J[d+4>>2];j=j+1|0;g=j?g:g+1|0;J[d>>2]=j;J[d+4>>2]=g;d=(J[u+(c|4)>>2]<<3)+n|0;g=J[d>>2];q=J[d+4>>2];g=g+1|0;q=g?q:q+1|0;J[d>>2]=g;J[d+4>>2]=q;d=(J[u+(c|8)>>2]<<3)+n|0;g=J[d>>2];j=J[d+4>>2];g=g+1|0;j=g?j:j+1|0;J[d>>2]=g;J[d+4>>2]=j;c=(J[u+(c|12)>>2]<<3)+n|0;d=J[c>>2];g=J[c+4>>2];d=d+1|0;g=d?g:g+1|0;J[c>>2]=d;J[c+4>>2]=g;a=a+4|0;r=r+4|0;if((h|0)!=(r|0)){continue}break}}d=b&3;if(!d){break de}while(1){c=(J[u+(a<<2)>>2]<<3)+n|0;g=J[c>>2];q=J[c+4>>2];g=g+1|0;q=g?q:q+1|0;J[c>>2]=g;J[c+4>>2]=q;a=a+1|0;s=s+1|0;if((d|0)!=(s|0)){continue}break}}J[l+8>>2]=0;J[l+12>>2]=0;J[l+16>>2]=0;J[l+20>>2]=0;J[l+24>>2]=0;J[l+28>>2]=0;J[l+32>>2]=0;J[l>>2]=0;J[l+4>>2]=0;J[l+40>>2]=0;J[l+44>>2]=0;c=e;e=0;r=0;d=0;s=0;t=ba-32|0;ba=t;a=k-n>>3;ee:{if((a|0)<=0){break ee}A=a&3;fe:{if(a>>>0<4){a=0;break fe}E=a&-4;a=0;while(1){g=(a<<3)+n|0;x=J[g>>2];m=J[g+4>>2];D=m;q=a|1;k=(q<<3)+n|0;g=J[k>>2];v=a|2;p=(v<<3)+n|0;h=J[p>>2];y=a|3;z=(y<<3)+n|0;j=J[z>>2];d=m|x?a:d;m=J[k+4>>2];d=m|g?q:d;q=J[p+4>>2];k=J[z+4>>2];d=k|j?y:q|h?v:d;v=j;p=g;j=i+D|0;f=f+x|0;g=(f>>>0>>0?j+1|0:j)+m|0;m=f;f=f+p|0;g=(m>>>0>f>>>0?g+1|0:g)+q|0;m=f;f=f+h|0;m=(m>>>0>f>>>0?g+1|0:g)+k|0;g=f;f=f+v|0;i=g>>>0>f>>>0?m+1|0:m;a=a+4|0;e=e+4|0;if((E|0)!=(e|0)){continue}break}}if(!A){break ee}while(1){g=(a<<3)+n|0;e=J[g>>2];g=J[g+4>>2];d=e|g?a:d;a=a+1|0;q=g+i|0;f=e+f|0;i=f>>>0>>0?q+1|0:q;r=r+1|0;if((A|0)!=(r|0)){continue}break}}g=d+1|0;J[l+12>>2]=g;e=J[l>>2];a=J[l+4>>2]-e>>3;ge:{if(a>>>0>>0){Wa(l,g-a|0);break ge}if(a>>>0<=g>>>0){break ge}J[l+4>>2]=e+(g<<3)}k=0;he:{ie:{je:{ke:{if((d|0)>=0){w=+(f>>>0)+ +(i>>>0)*4294967296;f=J[l>>2];a=0;while(1){i=a<<3;h=i+n|0;e=J[h>>2];h=J[h+4>>2];j=(e|h)!=0;m=f+i|0;o=(+(e>>>0)+ +(h>>>0)*4294967296)/w*1048576+.5;le:{if(o<4294967296&o>=0){e=~~o>>>0;break le}e=0}e=e?e:j?1:e;J[m>>2]=e;k=e+k|0;e=(a|0)==(d|0);a=a+1|0;if(!e){continue}break}if((k|0)==1048576){break ke}}J[t+16>>2]=0;J[t+8>>2]=0;J[t+12>>2]=0;p=0;me:{if(!g){break me}if(g>>>0>=1073741824){break a}i=g<<2;s=oa(i);J[t+8>>2]=s;e=0;f=pa(s,0,i);a=0;if(d>>>0>=7){h=g&-8;while(1){J[f+(a<<2)>>2]=a;j=a|1;J[f+(j<<2)>>2]=j;j=a|2;J[f+(j<<2)>>2]=j;j=a|3;J[f+(j<<2)>>2]=j;j=a|4;J[f+(j<<2)>>2]=j;j=a|5;J[f+(j<<2)>>2]=j;j=a|6;J[f+(j<<2)>>2]=j;j=a|7;J[f+(j<<2)>>2]=j;a=a+8|0;p=p+8|0;if((h|0)!=(p|0)){continue}break}}p=f+i|0;i=g&7;if(!i){break me}while(1){J[f+(a<<2)>>2]=a;a=a+1|0;e=e+1|0;if((i|0)!=(e|0)){continue}break}}J[t+24>>2]=l;a=p-s|0;e=a>>2;ne:{oe:{if((a|0)>=513){a=e;while(1){f=oa(a<<2);if(f){break oe}f=a>>>0>1;a=a>>>1|0;if(f){continue}break}}Vb(s,p,t+24|0,e,0,0);break ne}Vb(s,p,t+24|0,e,f,a);na(f)}if((k|0)<1048576){a=J[l>>2]+(J[p-4>>2]<<3)|0;J[a>>2]=(J[a>>2]-k|0)- -1048576;a=0;break je}if((d|0)>0){h=J[l>>2];r=k+-1048576|0;while(1){o=1048576/+(k|0);e=d;while(1){pe:{qe:{f=h+(J[(e<<2)+s>>2]<<3)|0;a=J[f>>2];if(a>>>0>=2){q=f;m=a;w=V(o*+(a>>>0));re:{if(R(w)<2147483648){i=~~w;break re}i=-2147483648}f=(a|0)==(i|0)?1:a-i|0;a=(a|0)>(f|0)?f:a-1|0;a=(a|0)<(r|0)?a:r;J[q>>2]=m-a;r=r-a|0;k=k-a|0;if((k|0)!=1048576){break qe}k=1048576;break pe}if((d|0)!=(e|0)){break pe}a=1;break je}a=(e|0)>1;e=e-1|0;if(a){continue}}break}a=0;if((r|0)>0){continue}break}break je}a=0;if(k>>>0<1048577){break je}while(1)continue}if((d|0)<0){break he}break ie}e=J[t+8>>2];if(e){na(e)}if((d|0)<0|a){break he}}e=J[l>>2];k=0;r=0;a=0;if(d>>>0>=3){i=g&-4;s=0;while(1){f=r<<3;h=f+e|0;J[h+4>>2]=a;j=e+(f|8)|0;a=J[h>>2]+a|0;J[j+4>>2]=a;h=e+(f|16)|0;a=a+J[j>>2]|0;J[h+4>>2]=a;f=e+(f|24)|0;a=a+J[h>>2]|0;J[f+4>>2]=a;a=a+J[f>>2]|0;r=r+4|0;s=s+4|0;if((i|0)!=(s|0)){continue}break}}f=g&3;if(f){while(1){i=e+(r<<3)|0;J[i+4>>2]=a;r=r+1|0;a=J[i>>2]+a|0;k=k+1|0;if((f|0)!=(k|0)){continue}break}}if((a|0)!=1048576){break he}a=0;o=0;se:{if((d|0)<0){break se}f=J[l>>2];if(d){d=g&-2;e=0;while(1){i=a<<3;h=J[i+f>>2];if(h){i=i+n|0;o=(+M[i>>2]+ +M[i+4>>2]*4294967296)*va(+(h>>>0)*9.5367431640625e-7)+o}i=(a|1)<<3;h=J[i+f>>2];if(h){i=i+n|0;o=(+M[i>>2]+ +M[i+4>>2]*4294967296)*va(+(h>>>0)*9.5367431640625e-7)+o}a=a+2|0;e=e+2|0;if((d|0)!=(e|0)){continue}break}}if(!(g&1)){break se}a=a<<3;d=J[a+f>>2];if(!d){break se}a=a+n|0;o=(+M[a>>2]+ +M[a+4>>2]*4294967296)*va(+(d>>>0)*9.5367431640625e-7)+o}o=W(-o);te:{if(o<0x10000000000000000&o>=0){d=R(o)>=1?~~(o>0?T(V(o*2.3283064365386963e-10),4294967295):W((o-+(~~o>>>0>>>0))*2.3283064365386963e-10))>>>0:0;a=~~o>>>0;break te}d=0;a=0}J[l+16>>2]=a;J[l+20>>2]=d;Va(l,c)}ba=t+32|0;d=J[l+16>>2];e=J[l+20>>2];a=J[c+4>>2]-J[c>>2]|0;J[l+40>>2]=a;J[l+44>>2]=0;g=e<<1|d>>>31;d=(d<<1)+39|0;j=d>>>0<39?g+1|0:g;d=a+((j&7)<<29|d>>>3)|0;m=j>>>3|0;h=a>>>0>d>>>0?m+1|0:m;a=d+8|0;Ia(c,a);a=J[c>>2];J[l+28>>2]=0;J[l+32>>2]=4194304;J[l+24>>2]=a+J[l+40>>2];if((b|0)>0){a=4194304;while(1){d=b-1|0;f=J[l>>2]+(J[u+(d<<2)>>2]<<3)|0;e=J[f>>2];i=e<<10;if(i>>>0<=a>>>0){while(1){g=J[l+28>>2];J[l+28>>2]=g+1;H[g+J[l+24>>2]|0]=a;a=J[l+32>>2]>>>8|0;J[l+32>>2]=a;if(a>>>0>=i>>>0){continue}break}}g=J[f+4>>2];f=(a>>>0)/(e>>>0)|0;a=g+((f<<20)+(a-P(e,f)|0)|0)|0;J[l+32>>2]=a;e=(b|0)>1;b=d;if(e){continue}break}}rc(l,c);a=J[l>>2];if(a){J[l+4>>2]=a;na(a)}a=J[l+48>>2];if(a){na(a)}ba=l- -64|0;break ce}h=1;break v;case 15:u=a;k=0;n=0;r=0;s=0;f=0;i=0;l=ba+-64|0;ba=l;J[l+56>>2]=0;J[l+48>>2]=0;J[l+52>>2]=0;ue:{a=p+1|0;if(a){if(a>>>0>=536870912){break a}a=a<<3;n=oa(a);J[l+48>>2]=n;k=pa(n,0,(p<<3)+8|0)+a|0}ve:{if((b|0)<=0){break ve}a=0;if(b>>>0>=4){m=b&-4;while(1){c=a<<2;d=(J[c+u>>2]<<3)+n|0;h=J[d>>2];g=J[d+4>>2];h=h+1|0;g=h?g:g+1|0;J[d>>2]=h;J[d+4>>2]=g;d=(J[u+(c|4)>>2]<<3)+n|0;g=J[d>>2];j=J[d+4>>2];g=g+1|0;j=g?j:j+1|0;J[d>>2]=g;J[d+4>>2]=j;d=(J[u+(c|8)>>2]<<3)+n|0;g=J[d>>2];h=J[d+4>>2];g=g+1|0;h=g?h:h+1|0;J[d>>2]=g;J[d+4>>2]=h;c=(J[u+(c|12)>>2]<<3)+n|0;d=J[c>>2];g=J[c+4>>2];d=d+1|0;g=d?g:g+1|0;J[c>>2]=d;J[c+4>>2]=g;a=a+4|0;r=r+4|0;if((m|0)!=(r|0)){continue}break}}d=b&3;if(!d){break ve}while(1){c=(J[u+(a<<2)>>2]<<3)+n|0;g=J[c>>2];j=J[c+4>>2];g=g+1|0;j=g?j:j+1|0;J[c>>2]=g;J[c+4>>2]=j;a=a+1|0;s=s+1|0;if((d|0)!=(s|0)){continue}break}}J[l+8>>2]=0;J[l+12>>2]=0;J[l+16>>2]=0;J[l+20>>2]=0;J[l+24>>2]=0;J[l+28>>2]=0;J[l+32>>2]=0;J[l>>2]=0;J[l+4>>2]=0;J[l+40>>2]=0;J[l+44>>2]=0;c=e;e=0;r=0;d=0;s=0;t=ba-32|0;ba=t;a=k-n>>3;we:{if((a|0)<=0){break we}A=a&3;xe:{if(a>>>0<4){a=0;break xe}E=a&-4;a=0;while(1){g=(a<<3)+n|0;x=J[g>>2];m=J[g+4>>2];D=m;q=a|1;k=(q<<3)+n|0;g=J[k>>2];v=a|2;p=(v<<3)+n|0;h=J[p>>2];y=a|3;z=(y<<3)+n|0;j=J[z>>2];d=m|x?a:d;m=J[k+4>>2];d=m|g?q:d;q=J[p+4>>2];k=J[z+4>>2];d=k|j?y:q|h?v:d;v=h;p=g;h=i+D|0;f=f+x|0;g=(f>>>0>>0?h+1|0:h)+m|0;m=f;f=f+p|0;m=(m>>>0>f>>>0?g+1|0:g)+q|0;g=f;f=f+v|0;g=(g>>>0>f>>>0?m+1|0:m)+k|0;m=f;f=f+j|0;i=m>>>0>f>>>0?g+1|0:g;a=a+4|0;e=e+4|0;if((E|0)!=(e|0)){continue}break}}if(!A){break we}while(1){g=(a<<3)+n|0;e=J[g>>2];g=J[g+4>>2];d=e|g?a:d;a=a+1|0;j=g+i|0;f=e+f|0;i=f>>>0>>0?j+1|0:j;r=r+1|0;if((A|0)!=(r|0)){continue}break}}g=d+1|0;J[l+12>>2]=g;e=J[l>>2];a=J[l+4>>2]-e>>3;ye:{if(a>>>0>>0){Wa(l,g-a|0);break ye}if(a>>>0<=g>>>0){break ye}J[l+4>>2]=e+(g<<3)}k=0;ze:{Ae:{Be:{Ce:{if((d|0)>=0){w=+(f>>>0)+ +(i>>>0)*4294967296;f=J[l>>2];a=0;while(1){i=a<<3;h=i+n|0;e=J[h>>2];h=J[h+4>>2];j=(e|h)!=0;m=f+i|0;o=(+(e>>>0)+ +(h>>>0)*4294967296)/w*1048576+.5;De:{if(o<4294967296&o>=0){e=~~o>>>0;break De}e=0}e=e?e:j?1:e;J[m>>2]=e;k=e+k|0;e=(a|0)==(d|0);a=a+1|0;if(!e){continue}break}if((k|0)==1048576){break Ce}}J[t+16>>2]=0;J[t+8>>2]=0;J[t+12>>2]=0;p=0;Ee:{if(!g){break Ee}if(g>>>0>=1073741824){break a}i=g<<2;s=oa(i);J[t+8>>2]=s;e=0;f=pa(s,0,i);a=0;if(d>>>0>=7){h=g&-8;while(1){J[f+(a<<2)>>2]=a;j=a|1;J[f+(j<<2)>>2]=j;j=a|2;J[f+(j<<2)>>2]=j;j=a|3;J[f+(j<<2)>>2]=j;j=a|4;J[f+(j<<2)>>2]=j;j=a|5;J[f+(j<<2)>>2]=j;j=a|6;J[f+(j<<2)>>2]=j;j=a|7;J[f+(j<<2)>>2]=j;a=a+8|0;p=p+8|0;if((h|0)!=(p|0)){continue}break}}p=f+i|0;i=g&7;if(!i){break Ee}while(1){J[f+(a<<2)>>2]=a;a=a+1|0;e=e+1|0;if((i|0)!=(e|0)){continue}break}}J[t+24>>2]=l;a=p-s|0;e=a>>2;Fe:{Ge:{if((a|0)>=513){a=e;while(1){f=oa(a<<2);if(f){break Ge}f=a>>>0>1;a=a>>>1|0;if(f){continue}break}}Ub(s,p,t+24|0,e,0,0);break Fe}Ub(s,p,t+24|0,e,f,a);na(f)}if((k|0)<1048576){a=J[l>>2]+(J[p-4>>2]<<3)|0;J[a>>2]=(J[a>>2]-k|0)- -1048576;a=0;break Be}if((d|0)>0){h=J[l>>2];r=k+-1048576|0;while(1){o=1048576/+(k|0);e=d;while(1){He:{Ie:{f=h+(J[(e<<2)+s>>2]<<3)|0;a=J[f>>2];if(a>>>0>=2){q=f;m=a;w=V(o*+(a>>>0));Je:{if(R(w)<2147483648){i=~~w;break Je}i=-2147483648}f=(a|0)==(i|0)?1:a-i|0;a=(a|0)>(f|0)?f:a-1|0;a=(a|0)<(r|0)?a:r;J[q>>2]=m-a;r=r-a|0;k=k-a|0;if((k|0)!=1048576){break Ie}k=1048576;break He}if((d|0)!=(e|0)){break He}a=1;break Be}a=(e|0)>1;e=e-1|0;if(a){continue}}break}a=0;if((r|0)>0){continue}break}break Be}a=0;if(k>>>0<1048577){break Be}while(1)continue}if((d|0)<0){break ze}break Ae}e=J[t+8>>2];if(e){na(e)}if((d|0)<0|a){break ze}}e=J[l>>2];k=0;r=0;a=0;if(d>>>0>=3){i=g&-4;s=0;while(1){f=r<<3;h=f+e|0;J[h+4>>2]=a;j=e+(f|8)|0;a=J[h>>2]+a|0;J[j+4>>2]=a;h=e+(f|16)|0;a=a+J[j>>2]|0;J[h+4>>2]=a;f=e+(f|24)|0;a=a+J[h>>2]|0;J[f+4>>2]=a;a=a+J[f>>2]|0;r=r+4|0;s=s+4|0;if((i|0)!=(s|0)){continue}break}}f=g&3;if(f){while(1){i=e+(r<<3)|0;J[i+4>>2]=a;r=r+1|0;a=J[i>>2]+a|0;k=k+1|0;if((f|0)!=(k|0)){continue}break}}if((a|0)!=1048576){break ze}a=0;o=0;Ke:{if((d|0)<0){break Ke}f=J[l>>2];if(d){d=g&-2;e=0;while(1){i=a<<3;h=J[i+f>>2];if(h){i=i+n|0;o=(+M[i>>2]+ +M[i+4>>2]*4294967296)*va(+(h>>>0)*9.5367431640625e-7)+o}i=(a|1)<<3;h=J[i+f>>2];if(h){i=i+n|0;o=(+M[i>>2]+ +M[i+4>>2]*4294967296)*va(+(h>>>0)*9.5367431640625e-7)+o}a=a+2|0;e=e+2|0;if((d|0)!=(e|0)){continue}break}}if(!(g&1)){break Ke}a=a<<3;d=J[a+f>>2];if(!d){break Ke}a=a+n|0;o=(+M[a>>2]+ +M[a+4>>2]*4294967296)*va(+(d>>>0)*9.5367431640625e-7)+o}o=W(-o);Le:{if(o<0x10000000000000000&o>=0){d=R(o)>=1?~~(o>0?T(V(o*2.3283064365386963e-10),4294967295):W((o-+(~~o>>>0>>>0))*2.3283064365386963e-10))>>>0:0;a=~~o>>>0;break Le}d=0;a=0}J[l+16>>2]=a;J[l+20>>2]=d;Va(l,c)}ba=t+32|0;d=J[l+16>>2];e=J[l+20>>2];a=J[c+4>>2]-J[c>>2]|0;J[l+40>>2]=a;J[l+44>>2]=0;m=e<<1|d>>>31;d=(d<<1)+39|0;h=m;h=d>>>0<39?h+1|0:h;g=h>>>3|0;d=a+((h&7)<<29|d>>>3)|0;q=d>>>0>>0?g+1|0:g;a=d+8|0;Ia(c,a);a=J[c>>2];J[l+28>>2]=0;J[l+32>>2]=4194304;J[l+24>>2]=a+J[l+40>>2];if((b|0)>0){a=4194304;while(1){d=b-1|0;f=J[l>>2]+(J[u+(d<<2)>>2]<<3)|0;e=J[f>>2];i=e<<10;if(i>>>0<=a>>>0){while(1){g=J[l+28>>2];J[l+28>>2]=g+1;H[g+J[l+24>>2]|0]=a;a=J[l+32>>2]>>>8|0;J[l+32>>2]=a;if(a>>>0>=i>>>0){continue}break}}g=J[f+4>>2];f=(a>>>0)/(e>>>0)|0;a=g+((f<<20)+(a-P(e,f)|0)|0)|0;J[l+32>>2]=a;e=(b|0)>1;b=d;if(e){continue}break}}rc(l,c);a=J[l>>2];if(a){J[l+4>>2]=a;na(a)}a=J[l+48>>2];if(a){na(a)}ba=l- -64|0;break ue}h=1;break v;case 16:u=a;k=0;n=0;r=0;s=0;f=0;i=0;l=ba+-64|0;ba=l;J[l+56>>2]=0;J[l+48>>2]=0;J[l+52>>2]=0;Me:{a=p+1|0;if(a){if(a>>>0>=536870912){break a}a=a<<3;n=oa(a);J[l+48>>2]=n;k=pa(n,0,(p<<3)+8|0)+a|0}Ne:{if((b|0)<=0){break Ne}a=0;if(b>>>0>=4){g=b&-4;while(1){c=a<<2;d=(J[c+u>>2]<<3)+n|0;h=J[d>>2];m=J[d+4>>2];h=h+1|0;m=h?m:m+1|0;J[d>>2]=h;J[d+4>>2]=m;d=(J[u+(c|4)>>2]<<3)+n|0;j=J[d>>2];h=J[d+4>>2];j=j+1|0;h=j?h:h+1|0;J[d>>2]=j;J[d+4>>2]=h;d=(J[u+(c|8)>>2]<<3)+n|0;h=J[d>>2];q=J[d+4>>2];h=h+1|0;q=h?q:q+1|0;J[d>>2]=h;J[d+4>>2]=q;c=(J[u+(c|12)>>2]<<3)+n|0;d=J[c>>2];m=J[c+4>>2];d=d+1|0;m=d?m:m+1|0;J[c>>2]=d;J[c+4>>2]=m;a=a+4|0;r=r+4|0;if((g|0)!=(r|0)){continue}break}}d=b&3;if(!d){break Ne}while(1){c=(J[u+(a<<2)>>2]<<3)+n|0;g=J[c>>2];h=J[c+4>>2];g=g+1|0;h=g?h:h+1|0;J[c>>2]=g;J[c+4>>2]=h;a=a+1|0;s=s+1|0;if((d|0)!=(s|0)){continue}break}}J[l+8>>2]=0;J[l+12>>2]=0;J[l+16>>2]=0;J[l+20>>2]=0;J[l+24>>2]=0;J[l+28>>2]=0;J[l+32>>2]=0;J[l>>2]=0;J[l+4>>2]=0;J[l+40>>2]=0;J[l+44>>2]=0;c=e;e=0;r=0;d=0;s=0;t=ba-32|0;ba=t;a=k-n>>3;Oe:{if((a|0)<=0){break Oe}x=a&3;Pe:{if(a>>>0<4){a=0;break Pe}A=a&-4;a=0;while(1){g=(a<<3)+n|0;p=J[g>>2];m=J[g+4>>2];E=m;q=a|1;k=(q<<3)+n|0;g=J[k>>2];v=a|2;D=(v<<3)+n|0;h=J[D>>2];y=a|3;z=(y<<3)+n|0;j=J[z>>2];d=p|m?a:d;m=J[k+4>>2];d=m|g?q:d;q=J[D+4>>2];k=J[z+4>>2];d=k|j?y:q|h?v:d;v=q;q=i+E|0;f=f+p|0;m=(f>>>0

>>0?q+1|0:q)+m|0;i=f;f=g+f|0;g=(i>>>0>f>>>0?m+1|0:m)+v|0;m=f;f=f+h|0;g=(m>>>0>f>>>0?g+1|0:g)+k|0;m=f;f=f+j|0;i=m>>>0>f>>>0?g+1|0:g;a=a+4|0;e=e+4|0;if((A|0)!=(e|0)){continue}break}}if(!x){break Oe}while(1){g=(a<<3)+n|0;e=J[g>>2];g=J[g+4>>2];d=e|g?a:d;a=a+1|0;h=g+i|0;f=e+f|0;i=f>>>0>>0?h+1|0:h;r=r+1|0;if((x|0)!=(r|0)){continue}break}}g=d+1|0;J[l+12>>2]=g;e=J[l>>2];a=J[l+4>>2]-e>>3;Qe:{if(a>>>0>>0){Wa(l,g-a|0);break Qe}if(a>>>0<=g>>>0){break Qe}J[l+4>>2]=e+(g<<3)}k=0;Re:{Se:{Te:{Ue:{if((d|0)>=0){w=+(f>>>0)+ +(i>>>0)*4294967296;f=J[l>>2];a=0;while(1){i=a<<3;h=i+n|0;e=J[h>>2];h=J[h+4>>2];j=(e|h)!=0;m=f+i|0;o=(+(e>>>0)+ +(h>>>0)*4294967296)/w*1048576+.5;Ve:{if(o<4294967296&o>=0){e=~~o>>>0;break Ve}e=0}e=e?e:j?1:e;J[m>>2]=e;k=e+k|0;e=(a|0)==(d|0);a=a+1|0;if(!e){continue}break}if((k|0)==1048576){break Ue}}J[t+16>>2]=0;J[t+8>>2]=0;J[t+12>>2]=0;p=0;We:{if(!g){break We}if(g>>>0>=1073741824){break a}i=g<<2;s=oa(i);J[t+8>>2]=s;e=0;f=pa(s,0,i);a=0;if(d>>>0>=7){h=g&-8;while(1){J[f+(a<<2)>>2]=a;j=a|1;J[f+(j<<2)>>2]=j;j=a|2;J[f+(j<<2)>>2]=j;j=a|3;J[f+(j<<2)>>2]=j;j=a|4;J[f+(j<<2)>>2]=j;j=a|5;J[f+(j<<2)>>2]=j;j=a|6;J[f+(j<<2)>>2]=j;j=a|7;J[f+(j<<2)>>2]=j;a=a+8|0;p=p+8|0;if((h|0)!=(p|0)){continue}break}}p=f+i|0;i=g&7;if(!i){break We}while(1){J[f+(a<<2)>>2]=a;a=a+1|0;e=e+1|0;if((i|0)!=(e|0)){continue}break}}J[t+24>>2]=l;a=p-s|0;e=a>>2;Xe:{Ye:{if((a|0)>=513){a=e;while(1){f=oa(a<<2);if(f){break Ye}f=a>>>0>1;a=a>>>1|0;if(f){continue}break}}Tb(s,p,t+24|0,e,0,0);break Xe}Tb(s,p,t+24|0,e,f,a);na(f)}if((k|0)<1048576){a=J[l>>2]+(J[p-4>>2]<<3)|0;J[a>>2]=(J[a>>2]-k|0)- -1048576;a=0;break Te}if((d|0)>0){h=J[l>>2];r=k+-1048576|0;while(1){o=1048576/+(k|0);e=d;while(1){Ze:{_e:{f=h+(J[(e<<2)+s>>2]<<3)|0;a=J[f>>2];if(a>>>0>=2){q=f;m=a;w=V(o*+(a>>>0));$e:{if(R(w)<2147483648){i=~~w;break $e}i=-2147483648}f=(a|0)==(i|0)?1:a-i|0;a=(a|0)>(f|0)?f:a-1|0;a=(a|0)<(r|0)?a:r;J[q>>2]=m-a;r=r-a|0;k=k-a|0;if((k|0)!=1048576){break _e}k=1048576;break Ze}if((d|0)!=(e|0)){break Ze}a=1;break Te}a=(e|0)>1;e=e-1|0;if(a){continue}}break}a=0;if((r|0)>0){continue}break}break Te}a=0;if(k>>>0<1048577){break Te}while(1)continue}if((d|0)<0){break Re}break Se}e=J[t+8>>2];if(e){na(e)}if((d|0)<0|a){break Re}}e=J[l>>2];k=0;r=0;a=0;if(d>>>0>=3){i=g&-4;s=0;while(1){f=r<<3;h=f+e|0;J[h+4>>2]=a;j=e+(f|8)|0;a=J[h>>2]+a|0;J[j+4>>2]=a;h=e+(f|16)|0;a=a+J[j>>2]|0;J[h+4>>2]=a;f=e+(f|24)|0;a=a+J[h>>2]|0;J[f+4>>2]=a;a=a+J[f>>2]|0;r=r+4|0;s=s+4|0;if((i|0)!=(s|0)){continue}break}}f=g&3;if(f){while(1){i=e+(r<<3)|0;J[i+4>>2]=a;r=r+1|0;a=J[i>>2]+a|0;k=k+1|0;if((f|0)!=(k|0)){continue}break}}if((a|0)!=1048576){break Re}a=0;o=0;af:{if((d|0)<0){break af}f=J[l>>2];if(d){d=g&-2;e=0;while(1){i=a<<3;h=J[i+f>>2];if(h){i=i+n|0;o=(+M[i>>2]+ +M[i+4>>2]*4294967296)*va(+(h>>>0)*9.5367431640625e-7)+o}i=(a|1)<<3;h=J[i+f>>2];if(h){i=i+n|0;o=(+M[i>>2]+ +M[i+4>>2]*4294967296)*va(+(h>>>0)*9.5367431640625e-7)+o}a=a+2|0;e=e+2|0;if((d|0)!=(e|0)){continue}break}}if(!(g&1)){break af}a=a<<3;d=J[a+f>>2];if(!d){break af}a=a+n|0;o=(+M[a>>2]+ +M[a+4>>2]*4294967296)*va(+(d>>>0)*9.5367431640625e-7)+o}o=W(-o);bf:{if(o<0x10000000000000000&o>=0){d=R(o)>=1?~~(o>0?T(V(o*2.3283064365386963e-10),4294967295):W((o-+(~~o>>>0>>>0))*2.3283064365386963e-10))>>>0:0;a=~~o>>>0;break bf}d=0;a=0}J[l+16>>2]=a;J[l+20>>2]=d;Va(l,c)}ba=t+32|0;d=J[l+16>>2];e=J[l+20>>2];a=J[c+4>>2]-J[c>>2]|0;J[l+40>>2]=a;J[l+44>>2]=0;g=e<<1|d>>>31;d=(d<<1)+39|0;q=d>>>0<39?g+1|0:g;d=a+((q&7)<<29|d>>>3)|0;g=q>>>3|0;j=a>>>0>d>>>0?g+1|0:g;a=d+8|0;Ia(c,a);a=J[c>>2];J[l+28>>2]=0;J[l+32>>2]=4194304;J[l+24>>2]=a+J[l+40>>2];if((b|0)>0){a=4194304;while(1){d=b-1|0;f=J[l>>2]+(J[u+(d<<2)>>2]<<3)|0;e=J[f>>2];i=e<<10;if(i>>>0<=a>>>0){while(1){g=J[l+28>>2];J[l+28>>2]=g+1;H[g+J[l+24>>2]|0]=a;a=J[l+32>>2]>>>8|0;J[l+32>>2]=a;if(a>>>0>=i>>>0){continue}break}}g=J[f+4>>2];f=(a>>>0)/(e>>>0)|0;a=g+((f<<20)+(a-P(e,f)|0)|0)|0;J[l+32>>2]=a;e=(b|0)>1;b=d;if(e){continue}break}}rc(l,c);a=J[l>>2];if(a){J[l+4>>2]=a;na(a)}a=J[l+48>>2];if(a){na(a)}ba=l- -64|0;break Me}h=1;break v;case 17:break E;default:break v}}u=a;k=0;n=0;r=0;s=0;f=0;i=0;l=ba+-64|0;ba=l;J[l+56>>2]=0;J[l+48>>2]=0;J[l+52>>2]=0;cf:{a=p+1|0;if(a){if(a>>>0>=536870912){break a}a=a<<3;n=oa(a);J[l+48>>2]=n;k=pa(n,0,(p<<3)+8|0)+a|0}df:{if((b|0)<=0){break df}a=0;if(b>>>0>=4){h=b&-4;while(1){c=a<<2;d=(J[c+u>>2]<<3)+n|0;j=J[d>>2];g=J[d+4>>2];j=j+1|0;g=j?g:g+1|0;J[d>>2]=j;J[d+4>>2]=g;d=(J[u+(c|4)>>2]<<3)+n|0;g=J[d>>2];q=J[d+4>>2];g=g+1|0;q=g?q:q+1|0;J[d>>2]=g;J[d+4>>2]=q;d=(J[u+(c|8)>>2]<<3)+n|0;g=J[d>>2];j=J[d+4>>2];g=g+1|0;j=g?j:j+1|0;J[d>>2]=g;J[d+4>>2]=j;c=(J[u+(c|12)>>2]<<3)+n|0;d=J[c>>2];g=J[c+4>>2];d=d+1|0;g=d?g:g+1|0;J[c>>2]=d;J[c+4>>2]=g;a=a+4|0;r=r+4|0;if((h|0)!=(r|0)){continue}break}}d=b&3;if(!d){break df}while(1){c=(J[u+(a<<2)>>2]<<3)+n|0;g=J[c>>2];q=J[c+4>>2];g=g+1|0;q=g?q:q+1|0;J[c>>2]=g;J[c+4>>2]=q;a=a+1|0;s=s+1|0;if((d|0)!=(s|0)){continue}break}}J[l+8>>2]=0;J[l+12>>2]=0;J[l+16>>2]=0;J[l+20>>2]=0;J[l+24>>2]=0;J[l+28>>2]=0;J[l+32>>2]=0;J[l>>2]=0;J[l+4>>2]=0;J[l+40>>2]=0;J[l+44>>2]=0;c=e;e=0;r=0;d=0;s=0;t=ba-32|0;ba=t;a=k-n>>3;ef:{if((a|0)<=0){break ef}A=a&3;ff:{if(a>>>0<4){a=0;break ff}E=a&-4;a=0;while(1){g=(a<<3)+n|0;x=J[g>>2];m=J[g+4>>2];D=m;q=a|1;k=(q<<3)+n|0;g=J[k>>2];v=a|2;p=(v<<3)+n|0;h=J[p>>2];y=a|3;z=(y<<3)+n|0;j=J[z>>2];d=m|x?a:d;m=J[k+4>>2];d=m|g?q:d;q=J[p+4>>2];k=J[z+4>>2];d=k|j?y:q|h?v:d;v=j;p=g;j=i+D|0;f=f+x|0;g=(f>>>0>>0?j+1|0:j)+m|0;m=f;f=f+p|0;g=(m>>>0>f>>>0?g+1|0:g)+q|0;m=f;f=f+h|0;m=(m>>>0>f>>>0?g+1|0:g)+k|0;g=f;f=f+v|0;i=g>>>0>f>>>0?m+1|0:m;a=a+4|0;e=e+4|0;if((E|0)!=(e|0)){continue}break}}if(!A){break ef}while(1){g=(a<<3)+n|0;e=J[g>>2];g=J[g+4>>2];d=e|g?a:d;a=a+1|0;q=g+i|0;f=e+f|0;i=f>>>0>>0?q+1|0:q;r=r+1|0;if((A|0)!=(r|0)){continue}break}}g=d+1|0;J[l+12>>2]=g;e=J[l>>2];a=J[l+4>>2]-e>>3;gf:{if(a>>>0>>0){Wa(l,g-a|0);break gf}if(a>>>0<=g>>>0){break gf}J[l+4>>2]=e+(g<<3)}k=0;hf:{jf:{kf:{lf:{if((d|0)>=0){w=+(f>>>0)+ +(i>>>0)*4294967296;f=J[l>>2];a=0;while(1){i=a<<3;h=i+n|0;e=J[h>>2];h=J[h+4>>2];j=(e|h)!=0;m=f+i|0;o=(+(e>>>0)+ +(h>>>0)*4294967296)/w*1048576+.5;mf:{if(o<4294967296&o>=0){e=~~o>>>0;break mf}e=0}e=e?e:j?1:e;J[m>>2]=e;k=e+k|0;e=(a|0)==(d|0);a=a+1|0;if(!e){continue}break}if((k|0)==1048576){break lf}}J[t+16>>2]=0;J[t+8>>2]=0;J[t+12>>2]=0;p=0;nf:{if(!g){break nf}if(g>>>0>=1073741824){break a}i=g<<2;s=oa(i);J[t+8>>2]=s;e=0;f=pa(s,0,i);a=0;if(d>>>0>=7){h=g&-8;while(1){J[f+(a<<2)>>2]=a;j=a|1;J[f+(j<<2)>>2]=j;j=a|2;J[f+(j<<2)>>2]=j;j=a|3;J[f+(j<<2)>>2]=j;j=a|4;J[f+(j<<2)>>2]=j;j=a|5;J[f+(j<<2)>>2]=j;j=a|6;J[f+(j<<2)>>2]=j;j=a|7;J[f+(j<<2)>>2]=j;a=a+8|0;p=p+8|0;if((h|0)!=(p|0)){continue}break}}p=f+i|0;i=g&7;if(!i){break nf}while(1){J[f+(a<<2)>>2]=a;a=a+1|0;e=e+1|0;if((i|0)!=(e|0)){continue}break}}J[t+24>>2]=l;a=p-s|0;e=a>>2;of:{pf:{if((a|0)>=513){a=e;while(1){f=oa(a<<2);if(f){break pf}f=a>>>0>1;a=a>>>1|0;if(f){continue}break}}Sb(s,p,t+24|0,e,0,0);break of}Sb(s,p,t+24|0,e,f,a);na(f)}if((k|0)<1048576){a=J[l>>2]+(J[p-4>>2]<<3)|0;J[a>>2]=(J[a>>2]-k|0)- -1048576;a=0;break kf}if((d|0)>0){h=J[l>>2];r=k+-1048576|0;while(1){o=1048576/+(k|0);e=d;while(1){qf:{rf:{f=h+(J[(e<<2)+s>>2]<<3)|0;a=J[f>>2];if(a>>>0>=2){q=f;m=a;w=V(o*+(a>>>0));sf:{if(R(w)<2147483648){i=~~w;break sf}i=-2147483648}f=(a|0)==(i|0)?1:a-i|0;a=(a|0)>(f|0)?f:a-1|0;a=(a|0)<(r|0)?a:r;J[q>>2]=m-a;r=r-a|0;k=k-a|0;if((k|0)!=1048576){break rf}k=1048576;break qf}if((d|0)!=(e|0)){break qf}a=1;break kf}a=(e|0)>1;e=e-1|0;if(a){continue}}break}a=0;if((r|0)>0){continue}break}break kf}a=0;if(k>>>0<1048577){break kf}while(1)continue}if((d|0)<0){break hf}break jf}e=J[t+8>>2];if(e){na(e)}if((d|0)<0|a){break hf}}e=J[l>>2];k=0;r=0;a=0;if(d>>>0>=3){i=g&-4;s=0;while(1){f=r<<3;h=f+e|0;J[h+4>>2]=a;j=e+(f|8)|0;a=J[h>>2]+a|0;J[j+4>>2]=a;h=e+(f|16)|0;a=a+J[j>>2]|0;J[h+4>>2]=a;f=e+(f|24)|0;a=a+J[h>>2]|0;J[f+4>>2]=a;a=a+J[f>>2]|0;r=r+4|0;s=s+4|0;if((i|0)!=(s|0)){continue}break}}f=g&3;if(f){while(1){i=e+(r<<3)|0;J[i+4>>2]=a;r=r+1|0;a=J[i>>2]+a|0;k=k+1|0;if((f|0)!=(k|0)){continue}break}}if((a|0)!=1048576){break hf}a=0;o=0;tf:{if((d|0)<0){break tf}f=J[l>>2];if(d){d=g&-2;e=0;while(1){i=a<<3;h=J[i+f>>2];if(h){i=i+n|0;o=(+M[i>>2]+ +M[i+4>>2]*4294967296)*va(+(h>>>0)*9.5367431640625e-7)+o}i=(a|1)<<3;h=J[i+f>>2];if(h){i=i+n|0;o=(+M[i>>2]+ +M[i+4>>2]*4294967296)*va(+(h>>>0)*9.5367431640625e-7)+o}a=a+2|0;e=e+2|0;if((d|0)!=(e|0)){continue}break}}if(!(g&1)){break tf}a=a<<3;d=J[a+f>>2];if(!d){break tf}a=a+n|0;o=(+M[a>>2]+ +M[a+4>>2]*4294967296)*va(+(d>>>0)*9.5367431640625e-7)+o}o=W(-o);uf:{if(o<0x10000000000000000&o>=0){d=R(o)>=1?~~(o>0?T(V(o*2.3283064365386963e-10),4294967295):W((o-+(~~o>>>0>>>0))*2.3283064365386963e-10))>>>0:0;a=~~o>>>0;break uf}d=0;a=0}J[l+16>>2]=a;J[l+20>>2]=d;Va(l,c)}ba=t+32|0;d=J[l+16>>2];e=J[l+20>>2];a=J[c+4>>2]-J[c>>2]|0;J[l+40>>2]=a;J[l+44>>2]=0;g=e<<1|d>>>31;d=(d<<1)+39|0;j=d>>>0<39?g+1|0:g;d=a+((j&7)<<29|d>>>3)|0;m=j>>>3|0;h=a>>>0>d>>>0?m+1|0:m;a=d+8|0;Ia(c,a);a=J[c>>2];J[l+28>>2]=0;J[l+32>>2]=4194304;J[l+24>>2]=a+J[l+40>>2];if((b|0)>0){a=4194304;while(1){d=b-1|0;f=J[l>>2]+(J[u+(d<<2)>>2]<<3)|0;e=J[f>>2];i=e<<10;if(i>>>0<=a>>>0){while(1){g=J[l+28>>2];J[l+28>>2]=g+1;H[g+J[l+24>>2]|0]=a;a=J[l+32>>2]>>>8|0;J[l+32>>2]=a;if(a>>>0>=i>>>0){continue}break}}g=J[f+4>>2];f=(a>>>0)/(e>>>0)|0;a=g+((f<<20)+(a-P(e,f)|0)|0)|0;J[l+32>>2]=a;e=(b|0)>1;b=d;if(e){continue}break}}rc(l,c);a=J[l>>2];if(a){J[l+4>>2]=a;na(a)}a=J[l+48>>2];if(a){na(a)}ba=l- -64|0;break cf}h=1}ba=G+32|0}if(!F){break b}J[C+36>>2]=F;na(F)}ba=C+48|0;return h}qa();B()}function Ih(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=Q(0),x=0,y=0,z=0,A=0,C=0,D=0,E=0,F=0,G=0,T=0,U=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0;d=ba-1680|0;ba=d;c=10-cb(J[J[a+28>>2]+48>>2])|0;c=(c|0)>=6?6:c;f=J[a+72>>2];H[d+1679|0]=(c&255)==6?(f|0)>15?5:c:c;c=J[b+20>>2];if(!J[b+16>>2]&(c|0)<=0|(c|0)<0){sa(b,J[b+4>>2],d+1679|0,d+1680|0);f=J[a+72>>2]}y=J[J[J[a+28>>2]+4>>2]+80>>2];J[d+1668>>2]=0;J[d+1660>>2]=0;J[d+1664>>2]=0;J[d+1648>>2]=y;J[d+1652>>2]=f;J[d+1656>>2]=f<<2;a:{b:{c:{d:{g=P(f,y);if(g){if(g>>>0>=1073741824){break d}c=g<<2;h=oa(c);J[d+1660>>2]=h;k=c+h|0;J[d+1668>>2]=k;pa(h,0,c);J[d+1664>>2]=k}J[d+1672>>2]=h;k=J[a+4>>2];if((k|0)!=J[a+8>>2]){while(1){e=J[J[J[J[a+28>>2]+4>>2]+8>>2]+(J[(i<<2)+k>>2]<<2)>>2];c=J[e+28>>2];if(c-1>>>0>=6){if((c|0)!=9){break a}e=J[J[a+60>>2]+(p<<2)>>2];if(!e){break a}p=p+1|0;c=J[e+28>>2]}e:{f:{g:{switch(c-1|0){case 5:if(!y){break e}k=0;while(1){f=(J[d+1672>>2]+(o<<2)|0)+(P(J[d+1652>>2],k)<<2)|0;h=J[J[e>>2]>>2];g=J[e+48>>2];c=Hl(J[e+40>>2],J[e+44>>2],K[e+84|0]?k:J[J[e+68>>2]+(k<<2)>>2],0);j=c;c=c+g|0;ua(f,c+h|0,K[e+24|0]<<2);k=k+1|0;if((y|0)!=(k|0)){continue}break};break e;case 0:case 2:case 4:c=K[e+24|0];h:{if(!c){g=0;h=0;break h}h=0;c=c<<2;g=oa(c);pa(g,0,c);c=K[e+24|0];if(!c){break h}c=c<<2;h=oa(c);pa(h,0,c)}if(y){f=0;while(1){$c(e,K[e+84|0]?f:J[J[e+68>>2]+(f<<2)>>2],H[e+24|0],g);j=K[e+24|0];i:{if(!j){break i}l=J[a+48>>2];k=0;if((j|0)!=1){n=j&254;c=0;while(1){r=k<<2;J[r+h>>2]=J[g+r>>2]-J[l+(k+q<<2)>>2];r=k|1;v=r<<2;J[v+h>>2]=J[g+v>>2]-J[l+(q+r<<2)>>2];k=k+2|0;c=c+2|0;if((n|0)!=(c|0)){continue}break}}if(!(j&1)){break i}c=k<<2;J[c+h>>2]=J[c+g>>2]-J[l+(k+q<<2)>>2]}ua((J[d+1672>>2]+(o<<2)|0)+(P(J[d+1652>>2],f)<<2)|0,h,j<<2);f=f+1|0;if((y|0)!=(f|0)){continue}break}}c=K[e+24|0];if(h){na(h)}q=c+q|0;if(g){break f}break e;default:break g}}c=K[e+24|0];j:{if(!c){g=0;break j}c=c<<2;g=oa(c);pa(g,0,c)}if(y){k=0;while(1){c=K[e+84|0]?k:J[J[e+68>>2]+(k<<2)>>2];j=K[e+24|0];l=0;k:{if(!g){break k}l:{m:{switch(J[e+28>>2]-1|0){case 0:h=K[e+24|0];if(h>>>0>>0?h:j){h=J[e>>2];f=J[h>>2];n=J[e+48>>2];c=Hl(J[e+40>>2],J[e+44>>2],c,0);m=c;c=c+n|0;f=c+f|0;c=J[h+4>>2];while(1){if(c>>>0<=f>>>0){break k}J[(l<<2)+g>>2]=H[f|0];f=f+1|0;l=l+1|0;h=K[e+24|0];if(l>>>0<(h>>>0>>0?h:j)>>>0){continue}break}}break l;case 1:h=K[e+24|0];if(h>>>0>>0?h:j){h=J[e>>2];f=J[h>>2];n=J[e+48>>2];c=Hl(J[e+40>>2],J[e+44>>2],c,0);m=c;c=c+n|0;f=c+f|0;c=J[h+4>>2];while(1){if(c>>>0<=f>>>0){break k}J[(l<<2)+g>>2]=K[f|0];f=f+1|0;l=l+1|0;h=K[e+24|0];if(l>>>0<(h>>>0>>0?h:j)>>>0){continue}break}}break l;case 2:h=K[e+24|0];if(h>>>0>>0?h:j){h=J[e>>2];f=J[h>>2];n=J[e+48>>2];c=Hl(J[e+40>>2],J[e+44>>2],c,0);m=c;c=c+n|0;f=c+f|0;c=J[h+4>>2];while(1){if(c>>>0<=f>>>0){break k}J[(l<<2)+g>>2]=I[f>>1];f=f+2|0;l=l+1|0;h=K[e+24|0];if(l>>>0<(h>>>0>>0?h:j)>>>0){continue}break}}break l;case 3:h=K[e+24|0];if(h>>>0>>0?h:j){h=J[e>>2];f=J[h>>2];n=J[e+48>>2];c=Hl(J[e+40>>2],J[e+44>>2],c,0);m=c;c=c+n|0;f=c+f|0;c=J[h+4>>2];while(1){if(c>>>0<=f>>>0){break k}J[(l<<2)+g>>2]=L[f>>1];f=f+2|0;l=l+1|0;h=K[e+24|0];if(l>>>0<(h>>>0>>0?h:j)>>>0){continue}break}}break l;case 4:h=K[e+24|0];if(h>>>0>>0?h:j){h=J[e>>2];f=J[h>>2];n=J[e+48>>2];c=Hl(J[e+40>>2],J[e+44>>2],c,0);m=c;c=c+n|0;f=c+f|0;c=J[h+4>>2];while(1){if(c>>>0<=f>>>0){break k}J[(l<<2)+g>>2]=J[f>>2];f=f+4|0;l=l+1|0;h=K[e+24|0];if(l>>>0<(h>>>0>>0?h:j)>>>0){continue}break}}break l;case 5:h=K[e+24|0];if(h>>>0>>0?h:j){h=J[e>>2];f=J[h>>2];n=J[e+48>>2];c=Hl(J[e+40>>2],J[e+44>>2],c,0);m=c;c=c+n|0;f=c+f|0;c=J[h+4>>2];while(1){if(c>>>0<=f>>>0){break k}J[(l<<2)+g>>2]=J[f>>2];f=f+4|0;l=l+1|0;h=K[e+24|0];if(l>>>0<(h>>>0>>0?h:j)>>>0){continue}break}}break l;case 6:h=K[e+24|0];if(h>>>0>>0?h:j){h=J[e>>2];f=J[h>>2];n=J[e+48>>2];c=Hl(J[e+40>>2],J[e+44>>2],c,0);m=c;c=c+n|0;f=c+f|0;n=J[h+4>>2];while(1){if(f>>>0>=n>>>0){break k}c=J[f>>2];if(J[f+4>>2]){break k}J[(l<<2)+g>>2]=c;f=f+8|0;l=l+1|0;h=K[e+24|0];if(l>>>0<(h>>>0>>0?h:j)>>>0){continue}break}}break l;case 7:h=K[e+24|0];if(h>>>0>>0?h:j){h=J[e>>2];f=J[h>>2];n=J[e+48>>2];c=Hl(J[e+40>>2],J[e+44>>2],c,0);m=c;c=c+n|0;f=c+f|0;n=J[h+4>>2];while(1){if(f>>>0>=n>>>0){break k}c=J[f>>2];if(J[f+4>>2]){break k}J[(l<<2)+g>>2]=c;f=f+8|0;l=l+1|0;h=K[e+24|0];if(l>>>0<(h>>>0>>0?h:j)>>>0){continue}break}}break l;case 8:n:{o:{h=K[e+24|0];if(!(h>>>0>>0?h:j)){break o}f=J[e>>2];h=J[f>>2];l=J[e+48>>2];c=Hl(J[e+40>>2],J[e+44>>2],c,0);m=c;c=c+l|0;l=c+h|0;n=J[f+4>>2];f=n-h|0;if(!K[e+32|0]){if((c|0)>=(f|0)){break n}f=0;while(1){w=N[l>>2];if(w>=Q(4294967296)|w=Q(0)){c=~~w>>>0}else{c=0}J[m>>2]=c;f=f+1|0;h=K[e+24|0];if(f>>>0>=(h>>>0>>0?h:j)>>>0){break o}l=l+4|0;if(n>>>0>l>>>0){continue}break}break n}if((c|0)>=(f|0)){break n}f=0;while(1){w=N[l>>2];if(w>=Q(4294967296)|wQ(1)){break n}m=(f<<2)+g|0;t=V(+w*4294967295+.5);p:{if(t<4294967296&t>=0){c=~~t>>>0;break p}c=0}J[m>>2]=c;f=f+1|0;h=K[e+24|0];if(f>>>0>=(h>>>0>>0?h:j)>>>0){break o}l=l+4|0;if(n>>>0>l>>>0){continue}break}break n}if(h>>>0>=j>>>0){break n}pa((h<<2)+g|0,0,j-h<<2)}break k;case 9:q:{r:{h=K[e+24|0];if(!(h>>>0>>0?h:j)){break r}f=J[e>>2];h=J[f>>2];l=J[e+48>>2];c=Hl(J[e+40>>2],J[e+44>>2],c,0);m=c;c=c+l|0;l=c+h|0;n=J[f+4>>2];f=n-h|0;if(!K[e+32|0]){if((c|0)>=(f|0)){break q}f=0;while(1){t=O[l>>3];if(t>=4294967295|t<0|(R(t)==Infinity|t!=t)){break q}m=(f<<2)+g|0;if(t<4294967296&t>=0){c=~~t>>>0}else{c=0}J[m>>2]=c;f=f+1|0;h=K[e+24|0];if(f>>>0>=(h>>>0>>0?h:j)>>>0){break r}l=l+8|0;if(n>>>0>l>>>0){continue}break}break q}if((c|0)>=(f|0)){break q}f=0;while(1){t=O[l>>3];if(t>=4294967295|t<0|(R(t)==Infinity|t!=t)){break q}if(t>1){break q}m=(f<<2)+g|0;t=V(t*4294967295+.5);s:{if(t<4294967296&t>=0){c=~~t>>>0;break s}c=0}J[m>>2]=c;f=f+1|0;h=K[e+24|0];if(f>>>0>=(h>>>0>>0?h:j)>>>0){break r}l=l+8|0;if(n>>>0>l>>>0){continue}break}break q}if(h>>>0>=j>>>0){break q}pa((h<<2)+g|0,0,j-h<<2)}break k;case 10:break m;default:break k}}h=K[e+24|0];if(h>>>0>>0?h:j){h=J[e>>2];f=J[h>>2];n=J[e+48>>2];c=Hl(J[e+40>>2],J[e+44>>2],c,0);m=c;c=c+n|0;f=c+f|0;c=J[h+4>>2];while(1){if(c>>>0<=f>>>0){break k}J[(l<<2)+g>>2]=K[f|0];f=f+1|0;l=l+1|0;h=K[e+24|0];if(l>>>0<(h>>>0>>0?h:j)>>>0){continue}break}}if(h>>>0>=j>>>0){break k}pa((h<<2)+g|0,0,j-h<<2);break k}if(h>>>0>=j>>>0){break k}pa((h<<2)+g|0,0,j-h<<2)}ua((J[d+1672>>2]+(o<<2)|0)+(P(J[d+1652>>2],k)<<2)|0,g,K[e+24|0]<<2);k=k+1|0;if((y|0)!=(k|0)){continue}break}}if(!g){break e}}na(g)}o=K[e+24|0]+o|0;i=i+1|0;k=J[a+4>>2];if(i>>>0>2]-k>>2>>>0){continue}break}f=J[a+72>>2];g=P(y,f);h=J[d+1672>>2]}k=0;if((g|0)<=0){break b}c=g&1;if((g|0)==1){g=0;break c}e=g&-2;g=0;a=0;while(1){j=g<<2;l=J[j+h>>2];if(l){l=S(l);k=(l^31)<(k|0)?k:32-l|0}j=J[(j|4)+h>>2];if(j){j=S(j);k=(j^31)<(k|0)?k:32-j|0}g=g+2|0;a=a+2|0;if((e|0)!=(a|0)){continue}break}break c}qa();B()}if(!c){break b}a=J[(g<<2)+h>>2];if(!a){break b}a=S(a);k=(a^31)<(k|0)?k:32-a|0}t:{u:{switch(K[d+1679|0]){case 6:p=Zc(d+456|0,f);a=J[d+1652>>2];J[d+448>>2]=a;J[d+432>>2]=a;J[d+32>>2]=a;J[d+16>>2]=a;J[d+440>>2]=0;J[d+424>>2]=J[d+1648>>2];a=d+1648|0;J[d+444>>2]=a;c=J[d+444>>2];J[d+24>>2]=J[d+440>>2];J[d+28>>2]=c;J[d+428>>2]=a;J[d+420>>2]=k;a=J[d+428>>2];J[d+8>>2]=J[d+424>>2];J[d+12>>2]=a;n=ba-32|0;ba=n;J[p>>2]=J[d+420>>2];a=J[d+8>>2]-J[d+24>>2]|0;J[p+4>>2]=a;c=J[b+20>>2];if(!J[b+16>>2]&(c|0)<=0|(c|0)<0){a=p+4|0;sa(b,J[b+4>>2],p,a);c=J[b+20>>2];if(!J[b+16>>2]&(c|0)<=0|(c|0)<0){sa(b,J[b+4>>2],a,p+8|0)}a=J[a>>2]}if(a){W=p+12|0;te(W);X=p+1068|0;a=X;J[a+12>>2]=0;J[a+16>>2]=0;J[a+4>>2]=J[a>>2];Y=p+1088|0;a=Y;J[a+12>>2]=0;J[a+16>>2]=0;J[a+4>>2]=J[a>>2];Z=p+1108|0;a=Z;J[a+12>>2]=0;J[a+16>>2]=0;J[a+4>>2]=J[a>>2];J[n+24>>2]=J[d+32>>2];a=J[d+28>>2];J[n+16>>2]=J[d+24>>2];J[n+20>>2]=a;J[n+8>>2]=J[d+16>>2];a=J[d+12>>2];J[n>>2]=J[d+8>>2];J[n+4>>2]=a;c=0;g=0;i=ba+-64|0;ba=i;e=J[p+8>>2];J[i+48>>2]=0;J[i+40>>2]=0;J[i+44>>2]=0;v:{w:{if(e){if(e>>>0>=1073741824){break w}a=e<<2;c=oa(a);J[i+40>>2]=c;g=a+c|0;J[i+48>>2]=g;pa(c,0,a);J[i+44>>2]=g}a=J[p+1164>>2];k=J[a>>2];if(k){J[a+4>>2]=k;na(k);e=J[p+8>>2];g=J[i+44>>2];c=J[i+40>>2]}J[a+4>>2]=g;J[a>>2]=c;J[a+8>>2]=J[i+48>>2];c=0;J[i+48>>2]=0;J[i+40>>2]=0;J[i+44>>2]=0;a=0;x:{if(e){if(e>>>0>=1073741824){break x}k=e<<2;a=oa(k);J[i+40>>2]=a;c=a+k|0;J[i+48>>2]=c;pa(a,0,k);J[i+44>>2]=c}k=J[p+1176>>2];f=J[k>>2];if(f){J[k+4>>2]=f;na(f);c=J[i+44>>2];a=J[i+40>>2]}J[k+4>>2]=c;J[k>>2]=a;J[k+8>>2]=J[i+48>>2];h=J[n+20>>2];l=J[n+24>>2];f=J[n+4>>2];y=J[n+8>>2];c=J[n>>2];k=J[n+16>>2];J[i+56>>2]=0;J[i+60>>2]=0;J[i+48>>2]=0;J[i+52>>2]=0;J[i+40>>2]=0;J[i+44>>2]=0;fb(i+40|0);a=J[i+56>>2]+J[i+60>>2]|0;e=(a>>>0)/113|0;a=J[J[i+44>>2]+(e<<2)>>2]+P(a-P(e,113)|0,36)|0;J[a+32>>2]=0;J[a+28>>2]=c-k;J[a+24>>2]=0;J[a+16>>2]=f;J[a+20>>2]=y;J[a+12>>2]=c;J[a+4>>2]=h;J[a+8>>2]=l;J[a>>2]=k;e=J[i+60>>2]+1|0;J[i+60>>2]=e;if(e){a=l;aa=a&-4;_=a&3;ca=p+1068|0;$=p+12|0;da=p+1108|0;ea=a>>>0<4;while(1){a=J[i+44>>2];g=J[i+56>>2];o=e-1|0;c=g+o|0;k=(c>>>0)/113|0;c=J[a+(k<<2)>>2]+P(c-P(k,113)|0,36)|0;T=J[c+32>>2];j=J[c+12>>2];k=J[c>>2];J[i+60>>2]=o;c=J[i+48>>2];if((((a|0)!=(c|0)?P(c-a>>2,113)-1|0:0)-(e+g|0)|0)+1>>>0>=226){na(J[c-4>>2]);J[i+48>>2]=J[i+48>>2]-4}J[n+16>>2]=k;J[n>>2]=j;a=J[p+1164>>2];c=J[p+1176>>2];J[i+32>>2]=J[n+24>>2];e=J[n+20>>2];J[i+24>>2]=J[n+16>>2];J[i+28>>2]=e;J[i+16>>2]=J[n+8>>2];e=J[n+4>>2];J[i+8>>2]=J[n>>2];J[i+12>>2]=e;U=P(T,12);v=a+U|0;q=v;D=c+U|0;a=D;e=0;g=J[p+8>>2];y:{z:{A:{B:{s=J[i+8>>2];o=J[i+24>>2];u=s-o|0;if(u>>>0>=64){if(!g){break z}E=J[p+1140>>2];F=J[a>>2];G=J[p+1128>>2];if((o|0)!=(s|0)){break B}g=0;while(1){a=g<<2;c=a+G|0;J[c>>2]=0;q=a+E|0;e=J[p>>2];a=J[a+F>>2];J[q>>2]=e-a;if((a|0)!=(e|0)){q=c;a=J[c>>2];c=u-a|0;J[q>>2]=a>>>0>>0?c:a}c=J[p+8>>2];g=g+1|0;if(c>>>0>g>>>0){continue}break}break A}if(g>>>0<2){break y}o=g-1|0;q=o&3;c=J[a>>2];a=0;C:{if(g-2>>>0<3){g=1;break C}r=o&-4;g=1;o=0;while(1){s=g+3|0;u=g+2|0;x=g+1|0;e=M[c+(e<<2)>>2]>M[c+(g<<2)>>2]?g:e;e=M[c+(e<<2)>>2]>M[c+(x<<2)>>2]?x:e;e=M[c+(e<<2)>>2]>M[c+(u<<2)>>2]?u:e;e=M[c+(e<<2)>>2]>M[c+(s<<2)>>2]?s:e;g=g+4|0;o=o+4|0;if((r|0)!=(o|0)){continue}break}}if(!q){break y}while(1){e=M[c+(e<<2)>>2]>M[c+(g<<2)>>2]?g:e;g=g+1|0;a=a+1|0;if((q|0)!=(a|0)){continue}break}break y}z=J[i+28>>2];C=J[q>>2];fa=u&1;q=o+1|0;ga=(q|0)!=(s|0);m=J[i+32>>2];ha=P(m,o)<<2;while(1){a=e<<2;r=a+G|0;J[r>>2]=0;c=J[p>>2];g=J[a+F>>2];x=c-g|0;J[a+E>>2]=x;if((c|0)!=(g|0)){x=J[a+C>>2]+(1<>2]|0;c=J[r>>2];if(fa){c=(x>>>0>M[A+ha>>2])+c|0;J[r>>2]=c;a=q}else{a=o}g=a;if(ga){while(1){a=(x>>>0>M[A+(P(g,m)<<2)>>2])+c|0;J[r>>2]=a;c=a+(x>>>0>M[A+(P(m,g+1|0)<<2)>>2])|0;J[r>>2]=c;g=g+2|0;if((s|0)!=(g|0)){continue}break}}a=u-c|0;J[r>>2]=a>>>0>c>>>0?a:c}c=J[p+8>>2];e=e+1|0;if(c>>>0>e>>>0){continue}break}}if(!c){e=0;break z}u=c&1;q=J[p+1128>>2];r=J[p+1140>>2];D:{if((c|0)==1){g=0;c=0;e=0;break D}x=c&-2;g=0;c=0;e=0;o=0;while(1){a=g<<2;E:{if(!J[a+r>>2]){a=c;break E}s=J[a+q>>2];a=c>>>0>s>>>0?c:s;e=c>>>0>>0?g:e}A=g|1;c=A<<2;F:{if(!J[c+r>>2]){c=a;break F}s=J[c+q>>2];c=a>>>0>s>>>0?a:s;e=a>>>0>>0?A:e}g=g+2|0;o=o+2|0;if((x|0)!=(o|0)){continue}break}}if(!u){break z}a=g<<2;if(!J[a+r>>2]){break z}e=M[a+q>>2]>c>>>0?g:e}Ib(p+1088|0,4,e)}c=J[p>>2];q=e<<2;g=J[q+J[D>>2]>>2];G:{H:{if((c|0)==(g|0)){break H}I:{J:{x=j-k|0;if(x>>>0<=2){g=J[p+1152>>2];J[g>>2]=e;c=1;a=J[p+8>>2];if(a>>>0>1){break J}break I}a=J[p+1164>>2];F=T+1|0;A=P(F,12);o=a+A|0;if((o|0)!=(v|0)){bb(o,J[v>>2],J[v+4>>2]);a=J[p+1164>>2]}a=q+J[a+A>>2]|0;r=J[a>>2]+(1<>2]=r;a=k;K:{if((j|0)==(a|0)){break K}G=J[h+24>>2];D=G+q|0;a=j;c=k;if(!l){if(r>>>0>M[D>>2]){break K}while(1){a=a-1|0;if((c|0)==(a|0)){a=c;break K}if(r>>>0<=M[(q+J[f+24>>2]|0)+(P(a,y)<<2)>>2]){continue}c=c+1|0;if((c|0)!=(a|0)){continue}break}break K}while(1){g=P(c,l)<<2;if(r>>>0>M[g+D>>2]){c=c+1|0;if((c|0)!=(a|0)){continue}break K}while(1){a=a-1|0;if((c|0)==(a|0)){a=c;break K}v=J[f+24>>2]+(P(a,y)<<2)|0;if(r>>>0<=M[v+q>>2]){continue}break}s=g+G|0;E=0;g=0;o=0;if(!ea){while(1){u=g<<2;m=u+s|0;z=J[m>>2];C=m;m=v+u|0;J[C>>2]=J[m>>2];J[m>>2]=z;m=u|4;z=m+s|0;C=J[z>>2];m=v+m|0;J[z>>2]=J[m>>2];J[m>>2]=C;m=u|8;z=m+s|0;C=J[z>>2];m=v+m|0;J[z>>2]=J[m>>2];J[m>>2]=C;u=u|12;m=u+s|0;z=J[m>>2];u=v+u|0;J[m>>2]=J[u>>2];J[u>>2]=z;g=g+4|0;o=o+4|0;if((aa|0)!=(o|0)){continue}break}}if(_){while(1){o=g<<2;u=o+s|0;m=J[u>>2];o=o+v|0;J[u>>2]=J[o>>2];J[o>>2]=m;g=g+1|0;E=E+1|0;if((_|0)!=(E|0)){continue}break}}c=c+1|0;if((c|0)!=(a|0)){continue}break}}o=a-k|0;r=j-a|0;if((o|0)!=(r|0)){xc(da,o>>>0>>0)}c=S(x);v=c^31;g=x>>>1|0;L:{if(o>>>0>>0){if(!v){break L}s=g-o|0;c=1<<30-c;g=0;while(1){Ca((g<<5)+$|0,(c&s)!=0);c=c>>>1|0;g=g+1|0;if((v|0)!=(g|0)){continue}break}break L}if(!v){break L}s=g-r|0;c=1<<30-c;g=0;while(1){Ca((g<<5)+$|0,(c&s)!=0);c=c>>>1|0;g=g+1|0;if((v|0)!=(g|0)){continue}break}}m=q;c=J[p+1176>>2];g=c+U|0;q=J[g>>2];v=m+q|0;J[v>>2]=J[v>>2]+1;bb(c+A|0,q,J[g+4>>2]);if((a|0)!=(k|0)){g=J[i+60>>2]+J[i+56>>2]|0;q=J[i+48>>2];c=J[i+44>>2];if((g|0)==(((c|0)!=(q|0)?P(q-c>>2,113)-1|0:0)|0)){fb(i+40|0);g=J[i+56>>2]+J[i+60>>2]|0;q=J[i+44>>2]}else{q=c}c=(g>>>0)/113|0;c=J[q+(c<<2)>>2]+P(g-P(c,113)|0,36)|0;J[c+32>>2]=T;J[c+28>>2]=o;J[c+24>>2]=e;J[c+16>>2]=h;J[c+12>>2]=a;J[c+4>>2]=h;J[c+8>>2]=l;J[c>>2]=k;J[c+20>>2]=l;J[i+60>>2]=J[i+60>>2]+1}if((a|0)==(j|0)){break H}g=J[i+60>>2]+J[i+56>>2]|0;k=J[i+48>>2];c=J[i+44>>2];if((g|0)==(((c|0)!=(k|0)?P(k-c>>2,113)-1|0:0)|0)){fb(i+40|0);g=J[i+56>>2]+J[i+60>>2]|0;q=J[i+44>>2]}else{q=c}c=(g>>>0)/113|0;c=J[q+(c<<2)>>2]+P(g-P(c,113)|0,36)|0;J[c+32>>2]=F;J[c+28>>2]=r;J[c+24>>2]=e;J[c+16>>2]=f;J[c+20>>2]=y;J[c+12>>2]=j;J[c+4>>2]=h;J[c>>2]=a;J[c+8>>2]=l;e=J[i+60>>2]+1|0;J[i+60>>2]=e;break G}while(1){e=(a-1|0)!=(e|0)?e+1|0:0;J[g+(c<<2)>>2]=e;a=J[p+8>>2];c=c+1|0;if(a>>>0>c>>>0){continue}break}}g=0;c=a;if((j|0)==(k|0)){break H}while(1){M:{if(!c){c=0;break M}j=J[h+24>>2]+(P(J[h+4>>2],g+k|0)<<2)|0;e=0;while(1){c=J[p>>2];o=J[J[p+1152>>2]+(e<<2)>>2]<<2;q=J[o+J[D>>2]>>2];if((c|0)!=(q|0)){Ib(ca,c-q|0,J[j+o>>2]);a=J[p+8>>2]}c=a;e=e+1|0;if(c>>>0>e>>>0){continue}break}}g=g+1|0;if((x|0)!=(g|0)){continue}break}}e=J[i+60>>2]}if(e){continue}break}}J[i+60>>2]=0;f=J[i+48>>2];e=J[i+44>>2];a=f-e|0;if(a>>>0>=9){while(1){na(J[e>>2]);e=J[i+44>>2]+4|0;J[i+44>>2]=e;f=J[i+48>>2];a=f-e|0;if(a>>>0>8){continue}break}}c=56;N:{switch((a>>>2|0)-1|0){case 1:c=113;case 0:J[i+56>>2]=c;break;default:break N}}O:{if((e|0)==(f|0)){break O}while(1){na(J[e>>2]);e=e+4|0;if((f|0)!=(e|0)){continue}break}a=J[i+48>>2];c=J[i+44>>2];if((a|0)==(c|0)){break O}J[i+48>>2]=a+((c-a|0)+3&-4)}a=J[i+40>>2];if(a){na(a)}ba=i- -64|0;break v}qa();B()}qa();B()}se(W,b);eb(X,b);eb(Y,b);eb(Z,b)}ba=n+32|0;_c(p);break t;case 5:c=Zc(d+456|0,f);a=J[d+1652>>2];J[d+416>>2]=a;J[d+400>>2]=a;J[d- -64>>2]=a;J[d+48>>2]=a;J[d+408>>2]=0;J[d+392>>2]=J[d+1648>>2];a=d+1648|0;J[d+412>>2]=a;f=J[d+412>>2];J[d+56>>2]=J[d+408>>2];J[d+60>>2]=f;J[d+396>>2]=a;J[d+420>>2]=k;a=J[d+396>>2];J[d+40>>2]=J[d+392>>2];J[d+44>>2]=a;a=Ae(c,d+56|0,d+40|0,d+420|0,b);_c(c);if(a){break t}break a;case 4:c=Zc(d+456|0,f);a=J[d+1652>>2];J[d+384>>2]=a;J[d+368>>2]=a;J[d+96>>2]=a;J[d+80>>2]=a;J[d+376>>2]=0;J[d+360>>2]=J[d+1648>>2];a=d+1648|0;J[d+380>>2]=a;f=J[d+380>>2];J[d+88>>2]=J[d+376>>2];J[d+92>>2]=f;J[d+364>>2]=a;J[d+420>>2]=k;a=J[d+364>>2];J[d+72>>2]=J[d+360>>2];J[d+76>>2]=a;a=Ae(c,d+88|0,d+72|0,d+420|0,b);_c(c);if(a){break t}break a;case 3:c=ze(d+456|0,f);a=J[d+1652>>2];J[d+352>>2]=a;J[d+336>>2]=a;J[d+128>>2]=a;J[d+112>>2]=a;J[d+344>>2]=0;J[d+328>>2]=J[d+1648>>2];a=d+1648|0;J[d+348>>2]=a;f=J[d+348>>2];J[d+120>>2]=J[d+344>>2];J[d+124>>2]=f;J[d+332>>2]=a;J[d+420>>2]=k;a=J[d+332>>2];J[d+104>>2]=J[d+328>>2];J[d+108>>2]=a;a=ye(c,d+120|0,d+104|0,d+420|0,b);xe(c);if(a){break t}break a;case 2:c=ze(d+456|0,f);a=J[d+1652>>2];J[d+320>>2]=a;J[d+304>>2]=a;J[d+160>>2]=a;J[d+144>>2]=a;J[d+312>>2]=0;J[d+296>>2]=J[d+1648>>2];a=d+1648|0;J[d+316>>2]=a;f=J[d+316>>2];J[d+152>>2]=J[d+312>>2];J[d+156>>2]=f;J[d+300>>2]=a;J[d+420>>2]=k;a=J[d+300>>2];J[d+136>>2]=J[d+296>>2];J[d+140>>2]=a;a=ye(c,d+152|0,d+136|0,d+420|0,b);xe(c);if(a){break t}break a;case 1:c=we(d+456|0,f);a=J[d+1652>>2];J[d+288>>2]=a;J[d+272>>2]=a;J[d+192>>2]=a;J[d+176>>2]=a;J[d+280>>2]=0;J[d+264>>2]=J[d+1648>>2];a=d+1648|0;J[d+284>>2]=a;f=J[d+284>>2];J[d+184>>2]=J[d+280>>2];J[d+188>>2]=f;J[d+268>>2]=a;J[d+420>>2]=k;a=J[d+268>>2];J[d+168>>2]=J[d+264>>2];J[d+172>>2]=a;a=ve(c,d+184|0,d+168|0,d+420|0,b);ue(c);if(a){break t}break a;case 0:break u;default:break a}}c=we(d+456|0,f);a=J[d+1652>>2];J[d+256>>2]=a;J[d+240>>2]=a;J[d+224>>2]=a;J[d+208>>2]=a;J[d+248>>2]=0;J[d+232>>2]=J[d+1648>>2];a=d+1648|0;J[d+252>>2]=a;f=J[d+252>>2];J[d+216>>2]=J[d+248>>2];J[d+220>>2]=f;J[d+236>>2]=a;J[d+420>>2]=k;a=J[d+236>>2];J[d+200>>2]=J[d+232>>2];J[d+204>>2]=a;a=ve(c,d+216|0,d+200|0,d+420|0,b);ue(c);if(!a){break a}}s=1}a=J[d+1660>>2];if(a){J[d+1664>>2]=a;na(a)}ba=d+1680|0;return s|0}function Xe(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0,z=0,A=0,B=0,D=0,E=0,F=0,G=0,I=0;w=ba-160|0;ba=w;J[w+60>>2]=b;J[w+20>>2]=b;J[w+24>>2]=-1;h=w+16|0;J[h+112>>2]=0;J[h+116>>2]=0;n=J[h+44>>2]-J[h+4>>2]|0;J[h+120>>2]=n;J[h+124>>2]=n>>31;J[h+104>>2]=J[h+8>>2];s=ba-48|0;ba=s;if(d>>>0<=2){a:{d=d<<2;D=J[d+17292>>2];E=J[d+17280>>2];while(1){d=J[h+4>>2];b:{if((d|0)!=J[h+104>>2]){J[h+4>>2]=d+1;d=K[d|0];break b}d=La(h)}if((d|0)==32|d-9>>>0<5){continue}break}n=1;c:{d:{switch(d-43|0){case 0:case 2:break d;default:break c}}n=(d|0)==45?-1:1;d=J[h+4>>2];if((d|0)!=J[h+104>>2]){J[h+4>>2]=d+1;d=K[d|0];break c}d=La(h)}e:{f:{while(1){if(H[g+1154|0]==(d|32)){g:{if(g>>>0>6){break g}d=J[h+4>>2];if((d|0)!=J[h+104>>2]){J[h+4>>2]=d+1;d=K[d|0];break g}d=La(h)}g=g+1|0;if((g|0)!=8){continue}break f}break}if((g|0)!=3){if((g|0)==8){break f}if(g>>>0<4){break e}if((g|0)==8){break f}}d=J[h+116>>2];if((d|0)>0|(d|0)>=0){J[h+4>>2]=J[h+4>>2]-1}if(g>>>0<4){break f}d=(d|0)<0;while(1){if(!d){J[h+4>>2]=J[h+4>>2]-1}g=g-1|0;if(g>>>0>3){continue}break}}m=ba-16|0;ba=m;r=(C(Q(Q(n|0)*Q(Infinity))),v(2));d=r&2147483647;h:{if(d-8388608>>>0<=2130706431){l=(d>>>7|0)+1065353216|0;j=d<<25;break h}l=r>>>7|2147418112;j=r<<25;if(d>>>0>=2139095040){break h}l=0;j=0;if(!d){break h}g=d;d=S(d);Pa(m,g,0,0,0,d+81|0);i=J[m>>2];k=J[m+4>>2];l=J[m+12>>2]^65536|16265-d<<16;j=J[m+8>>2]}J[s>>2]=i;J[s+4>>2]=k;J[s+8>>2]=j;J[s+12>>2]=r&-2147483648|l;ba=m+16|0;i=J[s+8>>2];k=J[s+12>>2];j=J[s>>2];m=J[s+4>>2];break a}i:{j:{k:{if(g){break k}g=0;while(1){if(H[g+1434|0]!=(d|32)){break k}l:{if(g>>>0>1){break l}d=J[h+4>>2];if((d|0)!=J[h+104>>2]){J[h+4>>2]=d+1;d=K[d|0];break l}d=La(h)}g=g+1|0;if((g|0)!=3){continue}break}break j}m:{switch(g|0){case 0:n:{if((d|0)!=48){break n}g=J[h+4>>2];o:{if((g|0)!=J[h+104>>2]){J[h+4>>2]=g+1;g=K[g|0];break o}g=La(h)}if((g&-33)==88){f=ba-432|0;ba=f;d=J[h+4>>2];p:{if((d|0)!=J[h+104>>2]){J[h+4>>2]=d+1;g=K[d|0];break p}g=La(h)}q:{r:{while(1){if((g|0)!=48){s:{if((g|0)!=46){break q}d=J[h+4>>2];if((d|0)==J[h+104>>2]){break s}J[h+4>>2]=d+1;g=K[d|0];break r}}else{d=J[h+4>>2];if((d|0)!=J[h+104>>2]){x=1;J[h+4>>2]=d+1;g=K[d|0]}else{x=1;g=La(h)}continue}break}g=La(h)}e=1;if((g|0)!=48){break q}while(1){d=r;r=d-1|0;t=t-!d|0;d=J[h+4>>2];t:{if((d|0)!=J[h+104>>2]){J[h+4>>2]=d+1;g=K[d|0];break t}g=La(h)}if((g|0)==48){continue}break}x=1}m=1073676288;while(1){u:{d=g|32;v:{w:{F=g-48|0;if(F>>>0<10){break w}if((g|0)!=46&d-97>>>0>=6){break u}if((g|0)!=46){break w}if(e){break u}e=1;r=i;t=k;break v}d=(g|0)>57?d-87|0:F;x:{if((k|0)<=0&i>>>0<=7|(k|0)<0){p=d+(p<<4)|0;break x}if(!k&i>>>0<=28){$a(f+48|0,d);Ea(f+32|0,A,B,j,m,0,0,0,1073414144);A=J[f+32>>2];B=J[f+36>>2];j=J[f+40>>2];m=J[f+44>>2];Ea(f+16|0,J[f+48>>2],J[f+52>>2],J[f+56>>2],J[f+60>>2],A,B,j,m);_a(f,J[f+16>>2],J[f+20>>2],J[f+24>>2],J[f+28>>2],l,o,y,z);y=J[f+8>>2];z=J[f+12>>2];l=J[f>>2];o=J[f+4>>2];break x}if(G|!d){break x}Ea(f+80|0,A,B,j,m,0,0,0,1073610752);_a(f- -64|0,J[f+80>>2],J[f+84>>2],J[f+88>>2],J[f+92>>2],l,o,y,z);y=J[f+72>>2];z=J[f+76>>2];G=1;l=J[f+64>>2];o=J[f+68>>2]}i=i+1|0;k=i?k:k+1|0;x=1}d=J[h+4>>2];if((d|0)!=J[h+104>>2]){J[h+4>>2]=d+1;g=K[d|0]}else{g=La(h)}continue}break}y:{if(!x){d=J[h+116>>2];if((d|0)>0|(d|0)>=0){z:{d=J[h+4>>2];J[h+4>>2]=d-1;J[h+4>>2]=d-2;if(!e){break z}J[h+4>>2]=d-3}}qb(f+96|0,+(n|0)*0);l=J[f+96>>2];o=J[f+100>>2];i=J[f+108>>2];d=J[f+104>>2];break y}if((k|0)<=0&i>>>0<=7|(k|0)<0){j=i;m=k;while(1){p=p<<4;j=j+1|0;m=j?m:m+1|0;if((j|0)!=8|m){continue}break}}A:{B:{C:{if((g&-33)==80){j=Ye(h);d=ca;m=d;if(j|(d|0)!=-2147483648){break A}d=J[h+116>>2];if((d|0)>0|(d|0)>=0){break C}break B}j=0;m=0;if(J[h+116>>2]<0){break A}}J[h+4>>2]=J[h+4>>2]-1}j=0;m=0}if(!p){qb(f+112|0,+(n|0)*0);l=J[f+112>>2];o=J[f+116>>2];i=J[f+124>>2];d=J[f+120>>2];break y}d=e?r:i;k=(e?t:k)<<2|d>>>30;d=j+(d<<2)|0;g=k+m|0;g=d>>>0>>0?g+1|0:g;i=d-32|0;k=g-(d>>>0<32)|0;d=k;if(i>>>0>0-D>>>0&(d|0)>=0|(d|0)>0){J[4804]=68;$a(f+160|0,n);Ea(f+144|0,J[f+160>>2],J[f+164>>2],J[f+168>>2],J[f+172>>2],-1,-1,-1,2147418111);Ea(f+128|0,J[f+144>>2],J[f+148>>2],J[f+152>>2],J[f+156>>2],-1,-1,-1,2147418111);l=J[f+128>>2];o=J[f+132>>2];i=J[f+140>>2];d=J[f+136>>2];break y}d=D-226|0;j=d>>31;if((k|0)>=(j|0)&d>>>0<=i>>>0|(j|0)<(k|0)){if((p|0)>=0){while(1){_a(f+416|0,l,o,y,z,0,0,0,-1073807360);d=Oe(l,o,y,z,1073610752);j=(d|0)>=0;d=j;_a(f+400|0,l,o,y,z,d?J[f+416>>2]:l,d?J[f+420>>2]:o,d?J[f+424>>2]:y,d?J[f+428>>2]:z);d=i;i=d-1|0;k=k-!d|0;y=J[f+408>>2];z=J[f+412>>2];l=J[f+400>>2];o=J[f+404>>2];p=j|p<<1;if((p|0)>=0){continue}break}}g=k-((D>>31)+(i>>>0>>0)|0)|0;d=(i-D|0)+32|0;g=d>>>0<32?g+1|0:g;j=d>>>0>>0&(g|0)<=0|(g|0)<0?(d|0)>0?d:0:E;D:{if((j|0)>=113){$a(f+384|0,n);r=J[f+392>>2];t=J[f+396>>2];A=J[f+384>>2];B=J[f+388>>2];g=0;d=0;break D}qb(f+352|0,pd(144-j|0));$a(f+336|0,n);A=J[f+336>>2];B=J[f+340>>2];r=J[f+344>>2];t=J[f+348>>2];$e(f+368|0,J[f+352>>2],J[f+356>>2],J[f+360>>2],J[f+364>>2],A,B,r,t);q=J[f+376>>2];u=J[f+380>>2];g=J[f+372>>2];d=J[f+368>>2]}k=!(p&1)&((Hb(l,o,y,z,0,0,0,0)|0)!=0&(j|0)<32);Lb(f+320|0,k+p|0);Ea(f+304|0,A,B,r,t,J[f+320>>2],J[f+324>>2],J[f+328>>2],J[f+332>>2]);j=d;_a(f+272|0,J[f+304>>2],J[f+308>>2],J[f+312>>2],J[f+316>>2],d,g,q,u);d=k;Ea(f+288|0,A,B,r,t,d?0:l,d?0:o,d?0:y,d?0:z);_a(f+256|0,J[f+288>>2],J[f+292>>2],J[f+296>>2],J[f+300>>2],J[f+272>>2],J[f+276>>2],J[f+280>>2],J[f+284>>2]);od(f+240|0,J[f+256>>2],J[f+260>>2],J[f+264>>2],J[f+268>>2],j,g,q,u);d=J[f+240>>2];l=J[f+244>>2];j=J[f+248>>2];r=J[f+252>>2];if(!Hb(d,l,j,r,0,0,0,0)){J[4804]=68}_e(f+224|0,d,l,j,r,i);l=J[f+224>>2];o=J[f+228>>2];i=J[f+236>>2];d=J[f+232>>2];break y}J[4804]=68;$a(f+208|0,n);Ea(f+192|0,J[f+208>>2],J[f+212>>2],J[f+216>>2],J[f+220>>2],0,0,0,65536);Ea(f+176|0,J[f+192>>2],J[f+196>>2],J[f+200>>2],J[f+204>>2],0,0,0,65536);l=J[f+176>>2];o=J[f+180>>2];i=J[f+188>>2];d=J[f+184>>2]}J[s+16>>2]=l;J[s+20>>2]=o;J[s+24>>2]=d;J[s+28>>2]=i;ba=f+432|0;i=J[s+24>>2];k=J[s+28>>2];j=J[s+16>>2];m=J[s+20>>2];break a}if(J[h+116>>2]<0){break n}J[h+4>>2]=J[h+4>>2]-1}g=h;f=n;h=0;e=ba-8976|0;ba=e;G=0-D|0;F=G-E|0;E:{F:{while(1){if((d|0)!=48){G:{if((d|0)!=46){break E}d=J[g+4>>2];if((d|0)==J[g+104>>2]){break G}J[g+4>>2]=d+1;d=K[d|0];break F}}else{d=J[g+4>>2];if((d|0)!=J[g+104>>2]){J[g+4>>2]=d+1;d=K[d|0]}else{d=La(g)}h=1;continue}break}d=La(g)}q=1;if((d|0)!=48){break E}while(1){d=i;i=d-1|0;k=k-!d|0;d=J[g+4>>2];H:{if((d|0)!=J[g+104>>2]){J[g+4>>2]=d+1;d=K[d|0];break H}d=La(g)}if((d|0)==48){continue}break}h=1}J[e+784>>2]=0;I:{J:{n=(d|0)==46;l=d-48|0;K:{L:{if(n|l>>>0<=9){while(1){M:{if(n&1){if(!q){i=j;k=m;q=1;break M}n=!h;break L}j=j+1|0;m=j?m:m+1|0;if((p|0)<=2044){x=(d|0)==48?x:j;n=(e+784|0)+(p<<2)|0;if(u){l=(P(J[n>>2],10)+d|0)-48|0}J[n>>2]=l;h=1;l=u+1|0;d=(l|0)==9;u=d?0:l;p=d+p|0;break M}if((d|0)==48){break M}J[e+8960>>2]=J[e+8960>>2]|1;x=18396}d=J[g+4>>2];N:{if((d|0)!=J[g+104>>2]){J[g+4>>2]=d+1;d=K[d|0];break N}d=La(g)}n=(d|0)==46;l=d-48|0;if(n|l>>>0<10){continue}break}}i=q?i:j;k=q?k:m;if(!(!h|(d&-33)!=69)){l=Ye(g);d=ca;o=d;O:{if(l|(d|0)!=-2147483648){break O}l=0;o=0;if(J[g+116>>2]<0){break O}J[g+4>>2]=J[g+4>>2]-1}k=k+o|0;i=i+l|0;k=i>>>0>>0?k+1|0:k;break J}n=!h;if((d|0)<0){break K}}if(J[g+116>>2]<0){break K}J[g+4>>2]=J[g+4>>2]-1}if(!n){break J}J[4804]=28;j=0;m=0;J[g+112>>2]=0;J[g+116>>2]=0;d=J[g+44>>2]-J[g+4>>2]|0;J[g+120>>2]=d;J[g+124>>2]=d>>31;J[g+104>>2]=J[g+8>>2];i=0;d=0;break I}d=J[e+784>>2];if(!d){qb(e,+(f|0)*0);j=J[e>>2];m=J[e+4>>2];i=J[e+12>>2];d=J[e+8>>2];break I}if(!(j>>>0>9&(m|0)>=0|(m|0)>0|((i|0)!=(j|0)|(k|0)!=(m|0))|(d>>>E|0?(E|0)<=30:0))){$a(e+48|0,f);Lb(e+32|0,d);Ea(e+16|0,J[e+48>>2],J[e+52>>2],J[e+56>>2],J[e+60>>2],J[e+32>>2],J[e+36>>2],J[e+40>>2],J[e+44>>2]);j=J[e+16>>2];m=J[e+20>>2];i=J[e+28>>2];d=J[e+24>>2];break I}if(i>>>0>G>>>1>>>0&(k|0)>=0|(k|0)>0){J[4804]=68;$a(e+96|0,f);Ea(e+80|0,J[e+96>>2],J[e+100>>2],J[e+104>>2],J[e+108>>2],-1,-1,-1,2147418111);Ea(e- -64|0,J[e+80>>2],J[e+84>>2],J[e+88>>2],J[e+92>>2],-1,-1,-1,2147418111);j=J[e+64>>2];m=J[e+68>>2];i=J[e+76>>2];d=J[e+72>>2];break I}d=D-226|0;g=i>>>0>>0;d=d>>31;if(g&(k|0)<=(d|0)|(d|0)>(k|0)){J[4804]=68;$a(e+144|0,f);Ea(e+128|0,J[e+144>>2],J[e+148>>2],J[e+152>>2],J[e+156>>2],0,0,0,65536);Ea(e+112|0,J[e+128>>2],J[e+132>>2],J[e+136>>2],J[e+140>>2],0,0,0,65536);j=J[e+112>>2];m=J[e+116>>2];i=J[e+124>>2];d=J[e+120>>2];break I}if(u){if((u|0)<=8){d=(e+784|0)+(p<<2)|0;g=J[d>>2];while(1){g=P(g,10);u=u+1|0;if((u|0)!=9){continue}break}J[d>>2]=g}p=p+1|0}P:{q=i;if((x|0)>(i|0)|(x|0)>=9|(i|0)>17){break P}if((q|0)==9){$a(e+192|0,f);Lb(e+176|0,J[e+784>>2]);Ea(e+160|0,J[e+192>>2],J[e+196>>2],J[e+200>>2],J[e+204>>2],J[e+176>>2],J[e+180>>2],J[e+184>>2],J[e+188>>2]);j=J[e+160>>2];m=J[e+164>>2];i=J[e+172>>2];d=J[e+168>>2];break I}if((q|0)<=8){$a(e+272|0,f);Lb(e+256|0,J[e+784>>2]);Ea(e+240|0,J[e+272>>2],J[e+276>>2],J[e+280>>2],J[e+284>>2],J[e+256>>2],J[e+260>>2],J[e+264>>2],J[e+268>>2]);$a(e+224|0,J[(0-q<<2)+17280>>2]);Ne(e+208|0,J[e+240>>2],J[e+244>>2],J[e+248>>2],J[e+252>>2],J[e+224>>2],J[e+228>>2],J[e+232>>2],J[e+236>>2]);j=J[e+208>>2];m=J[e+212>>2];i=J[e+220>>2];d=J[e+216>>2];break I}d=(P(q,-3)+E|0)+27|0;i=J[e+784>>2];if(i>>>d|0?(d|0)<=30:0){break P}$a(e+352|0,f);Lb(e+336|0,i);Ea(e+320|0,J[e+352>>2],J[e+356>>2],J[e+360>>2],J[e+364>>2],J[e+336>>2],J[e+340>>2],J[e+344>>2],J[e+348>>2]);$a(e+304|0,J[(q<<2)+17208>>2]);Ea(e+288|0,J[e+320>>2],J[e+324>>2],J[e+328>>2],J[e+332>>2],J[e+304>>2],J[e+308>>2],J[e+312>>2],J[e+316>>2]);j=J[e+288>>2];m=J[e+292>>2];i=J[e+300>>2];d=J[e+296>>2];break I}while(1){d=p;p=d-1|0;if(!J[(e+784|0)+(p<<2)>>2]){continue}break}u=0;i=(q|0)%9|0;Q:{if(!i){n=0;break Q}n=0;i=(q|0)<0?i+9|0:i;R:{if(!d){d=0;break R}j=J[(0-i<<2)+17280>>2];k=1e9/(j|0)|0;l=0;g=0;while(1){m=(e+784|0)+(g<<2)|0;h=J[m>>2];p=(h>>>0)/(j>>>0)|0;l=p+l|0;J[m>>2]=l;l=!l&(g|0)==(n|0);n=l?n+1&2047:n;q=l?q-9|0:q;l=P(k,h-P(j,p)|0);g=g+1|0;if((g|0)!=(d|0)){continue}break}if(!l){break R}J[(e+784|0)+(d<<2)>>2]=l;d=d+1|0}q=(q-i|0)+9|0}while(1){x=(e+784|0)+(n<<2)|0;S:{while(1){if(((q|0)!=36|M[x>>2]>=10384593)&(q|0)>=36){break S}p=d+2047|0;l=0;h=d;while(1){d=h;o=p&2047;h=(e+784|0)+(o<<2)|0;i=J[h>>2];m=i>>>3|0;j=i<<29;i=j+l|0;g=m;k=i>>>0>>0?g+1|0:g;if(!k&i>>>0<1000000001){l=0}else{l=Jl(i,k,1e9,0);i=i-Hl(l,ca,1e9,0)|0}J[h>>2]=i;h=(o|0)!=(d-1&2047)?d:(n|0)==(o|0)?d:i?d:o;p=o-1|0;if((n|0)!=(o|0)){continue}break}u=u-29|0;if(!l){continue}break}n=n-1&2047;if((n|0)==(h|0)){i=e+784|0;d=i+((h+2046&2047)<<2)|0;g=d;k=J[d>>2];d=h-1&2047;J[g>>2]=k|J[i+(d<<2)>>2]}q=q+9|0;J[(e+784|0)+(n<<2)>>2]=l;continue}break}T:{U:while(1){i=d+1&2047;l=(e+784|0)+((d-1&2047)<<2)|0;while(1){j=(q|0)>45?9:1;V:{while(1){h=n;g=0;W:{while(1){X:{k=g+h&2047;if((k|0)==(d|0)){break X}k=J[(e+784|0)+(k<<2)>>2];m=J[(g<<2)+17232>>2];if(k>>>0>>0){break X}if(k>>>0>m>>>0){break W}g=g+1|0;if((g|0)!=4){continue}}break}if((q|0)!=36){break W}i=0;k=0;g=0;j=0;m=0;while(1){l=g+h&2047;if((l|0)==(d|0)){d=d+1&2047;J[(e+(d<<2)|0)+780>>2]=0}Lb(e+768|0,J[(e+784|0)+(l<<2)>>2]);Ea(e+752|0,i,k,j,m,0,0,1342177280,1075633366);_a(e+736|0,J[e+752>>2],J[e+756>>2],J[e+760>>2],J[e+764>>2],J[e+768>>2],J[e+772>>2],J[e+776>>2],J[e+780>>2]);j=J[e+744>>2];m=J[e+748>>2];i=J[e+736>>2];k=J[e+740>>2];g=g+1|0;if((g|0)!=4){continue}break}$a(e+720|0,f);Ea(e+704|0,i,k,j,m,J[e+720>>2],J[e+724>>2],J[e+728>>2],J[e+732>>2]);j=J[e+712>>2];m=J[e+716>>2];i=0;k=0;l=J[e+704>>2];o=J[e+708>>2];x=u+113|0;n=x-D|0;q=(n|0)<(E|0);g=q?(n|0)>0?n:0:E;if((g|0)<=112){break V}break T}u=j+u|0;n=d;if((d|0)==(h|0)){continue}break}m=1e9>>>j|0;p=-1<>2];k=k+(o>>>j|0)|0;J[g>>2]=k;k=!k&(h|0)==(n|0);n=k?n+1&2047:n;q=k?q-9|0:q;g=P(m,o&p);h=h+1&2047;if((h|0)!=(d|0)){continue}break}if(!g){continue}if((i|0)!=(n|0)){J[(e+784|0)+(d<<2)>>2]=g;d=i;continue U}J[l>>2]=J[l>>2]|1;continue}break}break}qb(e+656|0,pd(225-g|0));$e(e+688|0,J[e+656>>2],J[e+660>>2],J[e+664>>2],J[e+668>>2],l,o,j,m);y=J[e+696>>2];z=J[e+700>>2];A=J[e+688>>2];B=J[e+692>>2];qb(e+640|0,pd(113-g|0));Ze(e+672|0,l,o,j,m,J[e+640>>2],J[e+644>>2],J[e+648>>2],J[e+652>>2]);i=J[e+672>>2];k=J[e+676>>2];r=J[e+680>>2];t=J[e+684>>2];od(e+624|0,l,o,j,m,i,k,r,t);_a(e+608|0,A,B,y,z,J[e+624>>2],J[e+628>>2],J[e+632>>2],J[e+636>>2]);j=J[e+616>>2];m=J[e+620>>2];l=J[e+608>>2];o=J[e+612>>2]}p=h+4&2047;Y:{if((p|0)==(d|0)){break Y}p=J[(e+784|0)+(p<<2)>>2];Z:{if(p>>>0<=499999999){if(!p&(h+5&2047)==(d|0)){break Z}qb(e+496|0,+(f|0)*.25);_a(e+480|0,i,k,r,t,J[e+496>>2],J[e+500>>2],J[e+504>>2],J[e+508>>2]);r=J[e+488>>2];t=J[e+492>>2];i=J[e+480>>2];k=J[e+484>>2];break Z}if((p|0)!=5e8){qb(e+592|0,+(f|0)*.75);_a(e+576|0,i,k,r,t,J[e+592>>2],J[e+596>>2],J[e+600>>2],J[e+604>>2]);r=J[e+584>>2];t=J[e+588>>2];i=J[e+576>>2];k=J[e+580>>2];break Z}I=+(f|0);if((h+5&2047)==(d|0)){qb(e+528|0,I*.5);_a(e+512|0,i,k,r,t,J[e+528>>2],J[e+532>>2],J[e+536>>2],J[e+540>>2]);r=J[e+520>>2];t=J[e+524>>2];i=J[e+512>>2];k=J[e+516>>2];break Z}qb(e+560|0,I*.75);_a(e+544|0,i,k,r,t,J[e+560>>2],J[e+564>>2],J[e+568>>2],J[e+572>>2]);r=J[e+552>>2];t=J[e+556>>2];i=J[e+544>>2];k=J[e+548>>2]}if((g|0)>111){break Y}Ze(e+464|0,i,k,r,t,0,0,0,1073676288);if(Hb(J[e+464>>2],J[e+468>>2],J[e+472>>2],J[e+476>>2],0,0,0,0)){break Y}_a(e+448|0,i,k,r,t,0,0,0,1073676288);r=J[e+456>>2];t=J[e+460>>2];i=J[e+448>>2];k=J[e+452>>2]}_a(e+432|0,l,o,j,m,i,k,r,t);od(e+416|0,J[e+432>>2],J[e+436>>2],J[e+440>>2],J[e+444>>2],A,B,y,z);j=J[e+424>>2];m=J[e+428>>2];l=J[e+416>>2];o=J[e+420>>2];_:{if((F-2|0)>=(x&2147483647)){break _}J[e+408>>2]=j;J[e+412>>2]=m&2147483647;J[e+400>>2]=l;J[e+404>>2]=o;Ea(e+384|0,l,o,j,m,0,0,0,1073610752);d=Oe(J[e+400>>2],J[e+404>>2],J[e+408>>2],J[e+412>>2],1081081856);d=(d|0)>=0;j=d?J[e+392>>2]:j;m=d?J[e+396>>2]:m;l=d?J[e+384>>2]:l;o=d?J[e+388>>2]:o;u=d+u|0;if(!((Hb(i,k,r,t,0,0,0,0)|0)!=0&(d?q&(g|0)!=(n|0):q))&(u+110|0)<=(F|0)){break _}J[4804]=68}_e(e+368|0,l,o,j,m,u);j=J[e+368>>2];m=J[e+372>>2];i=J[e+380>>2];d=J[e+376>>2]}J[s+40>>2]=d;J[s+44>>2]=i;J[s+32>>2]=j;J[s+36>>2]=m;ba=e+8976|0;i=J[s+40>>2];k=J[s+44>>2];j=J[s+32>>2];m=J[s+36>>2];break a;case 3:break j;default:break m}}d=J[h+116>>2];if((d|0)>0|(d|0)>=0){J[h+4>>2]=J[h+4>>2]-1}J[4804]=28;break i}$:{d=J[h+4>>2];aa:{if((d|0)!=J[h+104>>2]){J[h+4>>2]=d+1;d=K[d|0];break aa}d=La(h)}if((d|0)==40){g=1;break $}k=2147450880;if(J[h+116>>2]<0){break a}J[h+4>>2]=J[h+4>>2]-1;break a}while(1){ba:{d=J[h+4>>2];ca:{if((d|0)!=J[h+104>>2]){J[h+4>>2]=d+1;d=K[d|0];break ca}d=La(h)}if(!(d-48>>>0<10|d-65>>>0<26|(d|0)==95)){if(d-97>>>0>=26){break ba}}g=g+1|0;continue}break}k=2147450880;if((d|0)==41){break a}d=J[h+116>>2];if((d|0)>0|(d|0)>=0){J[h+4>>2]=J[h+4>>2]-1}if(!g){break a}while(1){g=g-1|0;if((d|0)>0|(d|0)>=0){J[h+4>>2]=J[h+4>>2]-1}if(g){continue}break}break a}J[h+112>>2]=0;J[h+116>>2]=0;d=J[h+44>>2]-J[h+4>>2]|0;J[h+120>>2]=d;J[h+124>>2]=d>>31;J[h+104>>2]=J[h+8>>2]}}J[w>>2]=j;J[w+4>>2]=m;J[w+8>>2]=i;J[w+12>>2]=k;ba=s+48|0;d=J[w+8>>2];j=J[w+12>>2];i=J[w>>2];l=J[w+4>>2];if(c){J[c>>2]=((J[w+20>>2]+J[w+136>>2]|0)-J[w+60>>2]|0)+b}J[a+8>>2]=d;J[a+12>>2]=j;J[a>>2]=i;J[a+4>>2]=l;ba=w+160|0}function Kj(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;l=ba-32|0;ba=l;d=J[b+8>>2];a:{b:{if(K[b+352|0]){d=jf(d);f=J[b+12>>2];J[b+12>>2]=d;if(f){break b}break a}d=kf(d);f=J[b+12>>2];J[b+12>>2]=d;if(!f){break a}}qc(f)}c:{d=J[b+12>>2];d:{if(!(J[d+40>>2]!=((J[d+4>>2]-J[d>>2]>>2>>>0)/3|0)?d:0)){b=oa(32);H[b+29|0]=0;d=K[1828]|K[1829]<<8|(K[1830]<<16|K[1831]<<24);c=K[1824]|K[1825]<<8|(K[1826]<<16|K[1827]<<24);H[b+21|0]=c;H[b+22|0]=c>>>8;H[b+23|0]=c>>>16;H[b+24|0]=c>>>24;H[b+25|0]=d;H[b+26|0]=d>>>8;H[b+27|0]=d>>>16;H[b+28|0]=d>>>24;d=K[1823]|K[1824]<<8|(K[1825]<<16|K[1826]<<24);c=K[1819]|K[1820]<<8|(K[1821]<<16|K[1822]<<24);H[b+16|0]=c;H[b+17|0]=c>>>8;H[b+18|0]=c>>>16;H[b+19|0]=c>>>24;H[b+20|0]=d;H[b+21|0]=d>>>8;H[b+22|0]=d>>>16;H[b+23|0]=d>>>24;d=K[1815]|K[1816]<<8|(K[1817]<<16|K[1818]<<24);c=K[1811]|K[1812]<<8|(K[1813]<<16|K[1814]<<24);H[b+8|0]=c;H[b+9|0]=c>>>8;H[b+10|0]=c>>>16;H[b+11|0]=c>>>24;H[b+12|0]=d;H[b+13|0]=d>>>8;H[b+14|0]=d>>>16;H[b+15|0]=d>>>24;d=K[1807]|K[1808]<<8|(K[1809]<<16|K[1810]<<24);c=K[1803]|K[1804]<<8|(K[1805]<<16|K[1806]<<24);H[b|0]=c;H[b+1|0]=c>>>8;H[b+2|0]=c>>>16;H[b+3|0]=c>>>24;H[b+4|0]=d;H[b+5|0]=d>>>8;H[b+6|0]=d>>>16;H[b+7|0]=d>>>24;J[a>>2]=-1;Ga(a+4|0,b,29);na(b);break d}j=b+200|0;d=j;J[d+128>>2]=2;J[d+132>>2]=7;J[d+64>>2]=b;c=da[J[J[b>>2]+32>>2]](b)|0;J[d+88>>2]=c;c=J[c+28>>2]-J[c+24>>2]>>2;e=J[d+108>>2];h=J[d+104>>2];d=e-h>>2;e:{if(c>>>0>d>>>0){Fa(j+104|0,c-d|0);h=J[j+104>>2];e=J[j+108>>2];break e}if(c>>>0>=d>>>0){break e}e=(c<<2)+h|0;J[j+108>>2]=e}if((e|0)!=(h|0)){h=0;while(1){n=J[j+104>>2];q=n+(h<<2)|0;d=J[j+88>>2];f=-1;f:{if((h|0)==-1){break f}f=0;c=J[J[d+24>>2]+(h<<2)>>2];if((c|0)==-1){break f}k=J[d+12>>2];g=1;d=c;while(1){f=f+1|0;e=g;g:{if(e&255){g=0;i=d+1|0;d=(i>>>0)%3|0?i:d-2|0;if((d|0)==-1){d=c;break g}i=J[k+(d<<2)>>2];if((i|0)==-1){d=c;break g}d=c;p=i+1|0;i=(p>>>0)%3|0?p:i-2|0;if((i|0)==-1){break g}g=e;d=i;if((c|0)!=(d|0)){break g}break f}h:{if((d>>>0)%3|0){d=d-1|0;break h}d=d+2|0;if((d|0)==-1){break f}}d=J[k+(d<<2)>>2];if((d|0)==-1){break f}d=(d>>>0)%3|0?d-1|0:d+2|0;g=0}if((d|0)!=-1){continue}break}}J[q>>2]=f;h=h+1|0;if(h>>>0>2]-n>>2>>>0){continue}break}}c=j+92|0;h=J[j+88>>2];e=J[h>>2];d=J[h+4>>2]-e>>2;f=J[j+92>>2];g=J[j+96>>2]-f>>2;i:{if(d>>>0>g>>>0){Ld(c,d-g|0);h=J[j+88>>2];e=J[h>>2];break i}if(d>>>0>=g>>>0){break i}J[j+96>>2]=f+(d<<2)}d=J[h+4>>2];j:{if((d|0)==(e|0)){break j}d=d-e>>2;g=d>>>0<=1?1:d;i=g&3;d=J[c>>2];h=0;if(g-1>>>0>=3){g=g&-4;f=0;while(1){c=h<<2;J[c+d>>2]=J[c+e>>2];k=c|4;J[k+d>>2]=J[e+k>>2];k=c|8;J[k+d>>2]=J[e+k>>2];c=c|12;J[c+d>>2]=J[c+e>>2];h=h+4|0;f=f+4|0;if((g|0)!=(f|0)){continue}break}}if(!i){break j}while(1){c=h<<2;J[c+d>>2]=J[c+e>>2];h=h+1|0;m=m+1|0;if((i|0)!=(m|0)){continue}break}}c=(J[j+132>>2]-J[j+128>>2]|0)+1|0;e=J[j+140>>2];d=J[j+136>>2];g=(e-d|0)/12|0;k:{if(c>>>0>g>>>0){h=0;c=c-g|0;f=J[j+144>>2];d=J[j+140>>2];if(c>>>0<=(f-d|0)/12>>>0){if(c){e=d;d=P(c,12)-12|0;d=(d-((d>>>0)%12|0)|0)+12|0;d=pa(e,0,d)+d|0}J[j+140>>2]=d;break k}l:{m:{n:{e=J[j+136>>2];i=(d-e|0)/12|0;g=i+c|0;if(g>>>0<357913942){f=(f-e|0)/12|0;m=f<<1;f=f>>>0>=178956970?357913941:g>>>0>>0?m:g;if(f){if(f>>>0>=357913942){break n}h=oa(P(f,12))}g=P(i,12)+h|0;c=P(c,12)-12|0;i=(c-((c>>>0)%12|0)|0)+12|0;c=pa(g,0,i);i=c+i|0;f=P(f,12)+h|0;if((d|0)==(e|0)){break m}while(1){g=g-12|0;d=d-12|0;J[g>>2]=J[d>>2];J[g+4>>2]=J[d+4>>2];J[g+8>>2]=J[d+8>>2];J[d+8>>2]=0;J[d>>2]=0;J[d+4>>2]=0;if((d|0)!=(e|0)){continue}break}J[j+144>>2]=f;e=J[j+140>>2];J[j+140>>2]=i;d=J[j+136>>2];J[j+136>>2]=g;if((d|0)==(e|0)){break l}while(1){c=e-12|0;g=J[c>>2];if(g){J[e-8>>2]=g;na(g)}e=c;if((c|0)!=(d|0)){continue}break}break l}break c}xa();B()}J[j+144>>2]=f;J[j+140>>2]=i;J[j+136>>2]=c}if(d){na(d)}break k}if(c>>>0>>0){c=d+P(c,12)|0;if((c|0)!=(e|0)){while(1){d=e-12|0;g=J[d>>2];if(g){J[e-8>>2]=g;na(g)}e=d;if((d|0)!=(c|0)){continue}break}}J[j+140>>2]=c}}d=J[b+12>>2];Aa((J[d+28>>2]-J[d+24>>2]>>2)-J[d+44>>2]|0,J[J[b+4>>2]+44>>2]);d=J[b+12>>2];Aa(((J[d+4>>2]-J[d>>2]>>2>>>0)/3|0)-J[d+40>>2]|0,J[J[b+4>>2]+44>>2]);d=J[b+8>>2];c=J[d+100>>2];d=J[d+96>>2];H[l+16|0]=0;m=b+28|0;c=(c-d|0)/12|0;d=l+16|0;Na(m,c,d);c=J[b+12>>2];e=J[c+28>>2];c=J[c+24>>2];J[l+16>>2]=-1;wb(b+52|0,e-c>>2,d);d=J[b+40>>2];J[b+44>>2]=d;g=J[b+12>>2];c=J[g+4>>2]-J[g>>2]>>2;c=c-((c>>>0)%3|0)|0;o:{if(c>>>0<=J[b+48>>2]-d>>2>>>0){break o}if(c>>>0>=1073741824){break c}e=c<<2;c=oa(e);J[b+44>>2]=c;J[b+40>>2]=c;J[b+48>>2]=c+e;if(!d){break o}na(d);g=J[b+12>>2]}d=J[g+28>>2];c=J[g+24>>2];H[l+16|0]=0;Na(b+84|0,d-c>>2,l+16|0);J[b+164>>2]=-1;J[b+168>>2]=0;J[b+100>>2]=J[b+96>>2];J[b+112>>2]=J[b+108>>2];if(J[b+132>>2]){g=J[b+128>>2];if(g){while(1){d=J[g>>2];na(g);g=d;if(d){continue}break}}g=0;J[b+128>>2]=0;d=J[b+124>>2];p:{if(!d){break p}if(d>>>0>=4){f=d&-4;e=0;while(1){c=g<<2;J[c+J[b+120>>2]>>2]=0;J[J[b+120>>2]+(c|4)>>2]=0;J[J[b+120>>2]+(c|8)>>2]=0;J[J[b+120>>2]+(c|12)>>2]=0;g=g+4|0;e=e+4|0;if((f|0)!=(e|0)){continue}break}}d=d&3;if(!d){break p}f=0;while(1){J[J[b+120>>2]+(g<<2)>>2]=0;g=g+1|0;f=f+1|0;if((d|0)!=(f|0)){continue}break}}J[b+132>>2]=0}J[b+144>>2]=0;d=J[b+12>>2];c=J[d+28>>2];d=J[d+24>>2];J[l+16>>2]=-1;wb(b+152|0,c-d>>2,l+16|0);d=J[b+72>>2];J[b+76>>2]=d;q=b+72|0;c=J[b+12>>2];c=J[c+4>>2]-J[c>>2]|0;e=(c>>2>>>0)/3|0;q:{if(e>>>0<=J[b+80>>2]-d>>2>>>0){break q}if((c|0)<0){break c}e=e<<2;c=oa(e);J[b+76>>2]=c;J[b+72>>2]=c;J[b+80>>2]=c+e;if(!d){break q}na(d)}J[b- -64>>2]=0;if(!kg(b)){b=oa(32);H[b+29|0]=0;d=K[1768]|K[1769]<<8|(K[1770]<<16|K[1771]<<24);c=K[1764]|K[1765]<<8|(K[1766]<<16|K[1767]<<24);H[b+21|0]=c;H[b+22|0]=c>>>8;H[b+23|0]=c>>>16;H[b+24|0]=c>>>24;H[b+25|0]=d;H[b+26|0]=d>>>8;H[b+27|0]=d>>>16;H[b+28|0]=d>>>24;d=K[1763]|K[1764]<<8|(K[1765]<<16|K[1766]<<24);c=K[1759]|K[1760]<<8|(K[1761]<<16|K[1762]<<24);H[b+16|0]=c;H[b+17|0]=c>>>8;H[b+18|0]=c>>>16;H[b+19|0]=c>>>24;H[b+20|0]=d;H[b+21|0]=d>>>8;H[b+22|0]=d>>>16;H[b+23|0]=d>>>24;d=K[1755]|K[1756]<<8|(K[1757]<<16|K[1758]<<24);c=K[1751]|K[1752]<<8|(K[1753]<<16|K[1754]<<24);H[b+8|0]=c;H[b+9|0]=c>>>8;H[b+10|0]=c>>>16;H[b+11|0]=c>>>24;H[b+12|0]=d;H[b+13|0]=d>>>8;H[b+14|0]=d>>>16;H[b+15|0]=d>>>24;d=K[1747]|K[1748]<<8|(K[1749]<<16|K[1750]<<24);c=K[1743]|K[1744]<<8|(K[1745]<<16|K[1746]<<24);H[b|0]=c;H[b+1|0]=c>>>8;H[b+2|0]=c>>>16;H[b+3|0]=c>>>24;H[b+4|0]=d;H[b+5|0]=d>>>8;H[b+6|0]=d>>>16;H[b+7|0]=d>>>24;J[a>>2]=-1;Ga(a+4|0,b,29);na(b);break d}g=0;c=b;r:{if(K[b+352|0]){break r}b=J[c+8>>2];e=J[b+12>>2]-J[b+8>>2]|0;f=e>>2;b=f-1|0;d=J[c+176>>2];h=J[c+172>>2];i=(d-h|0)/136|0;s:{if(b>>>0>i>>>0){cg(c+172|0,b-i|0);break s}if(b>>>0>=i>>>0){break s}i=h+P(b,136)|0;if((i|0)!=(d|0)){while(1){b=d-136|0;h=J[b+116>>2];if(h){J[d-16>>2]=h;na(h)}h=J[d-32>>2];if(h){J[d-28>>2]=h;na(h)}pc(d-132|0);d=b;if((b|0)!=(i|0)){continue}break}}J[c+176>>2]=i}if((e|0)==4|(e|0)<=0){break r}i=(f|0)<=1?1:f;d=0;t:{while(1){h=J[J[J[c+8>>2]+8>>2]+(d<<2)>>2];if(J[h+56>>2]){k=P(g,136);b=k+J[c+172>>2]|0;J[b>>2]=d;e=J[b+104>>2];J[b+108>>2]=e;f=J[c+12>>2];f=J[f+4>>2]-J[f>>2]|0;n=f>>2;u:{if(n>>>0<=J[b+112>>2]-e>>2>>>0){break u}if((f|0)<0){break t}f=oa(f);J[b+108>>2]=f;J[b+104>>2]=f;J[b+112>>2]=f+(n<<2);if(!e){break u}na(e)}b=k+J[c+172>>2]|0;J[b+128>>2]=0;lf(b+4|0,J[c+8>>2],J[c+12>>2],h);g=g+1|0}d=d+1|0;if((i|0)!=(d|0)){continue}break}break r}break c}b=(J[c+176>>2]-J[c+172>>2]|0)/136|0;H[l+31|0]=b;d=J[J[c+4>>2]+44>>2];e=J[d+20>>2];if(!J[d+16>>2]&(e|0)<=0|(e|0)<0){sa(d,J[d+4>>2],l+31|0,l+32|0);b=K[l+31|0]}J[c+284>>2]=b&255;b=J[c+12>>2];g=J[b>>2];b=J[b+4>>2];ig(j);e=0;J[l+24>>2]=0;J[l+16>>2]=0;J[l+20>>2]=0;d=0;v:{w:{x:{b=b-g|0;if((b|0)>0){b=b>>>2|0;p=b>>>0<=1?1:b;g=0;while(1){b=(g>>>0)/3|0;s=b>>>5<<2;t=1<>2]>>2]&t){break y}if(Fc(J[c+12>>2],b)){break y}J[l+8>>2]=0;b=hg(c,b,l+8|0);Ca(j,b);i=J[l+8>>2];if(b){h=-1;f=-1;k=-1;z:{if((i|0)==-1){break z}n=J[J[c+12>>2]>>2];b=n+(i<<2)|0;h=i+1|0;h=(h>>>0)%3|0?h:i-2|0;if((h|0)!=-1){f=J[n+(h<<2)>>2]}h=J[b>>2];A:{if((i>>>0)%3|0){b=i-1|0;break A}b=i+2|0;k=-1;if((b|0)==-1){break z}}k=J[n+(b<<2)>>2]}b=J[c+84>>2];n=b+(h>>>3&536870908)|0;J[n>>2]=J[n>>2]|1<>>3&536870908)|0;J[h>>2]=J[h>>2]|1<>>3&536870908)|0;J[b>>2]=J[b>>2]|1<>2];h=J[c+104>>2];B:{if(b>>>0>>0){J[b>>2]=1;J[c+100>>2]=b+4;break B}k=b;b=J[c+96>>2];k=k-b|0;n=k>>2;f=n+1|0;if(f>>>0>=1073741824){break c}r=n<<2;h=h-b|0;n=h>>>1|0;f=h>>>0>=2147483644?1073741823:f>>>0>>0?n:f;if(f){if(f>>>0>=1073741824){break x}h=oa(f<<2)}else{h=0}n=r+h|0;J[n>>2]=1;r=f<<2;f=ta(h,b,k);J[c+104>>2]=r+f;J[c+100>>2]=n+4;J[c+96>>2]=f;if(!b){break B}na(b)}b=s+J[m>>2]|0;J[b>>2]=t|J[b>>2];h=-1;if((i|0)!=-1){b=i+1|0;h=(b>>>0)%3|0?b:i-2|0}C:{if(e>>>0>>0){J[e>>2]=h;e=e+4|0;J[l+20>>2]=e;break C}f=e-d>>2;b=f+1|0;if(b>>>0>=1073741824){break c}k=o-d|0;o=k>>>1|0;b=k>>>0>=2147483644?1073741823:b>>>0>>0?o:b;if(b){if(b>>>0>=1073741824){break x}k=oa(b<<2)}else{k=0}f=k+(f<<2)|0;J[f>>2]=h;o=k+(b<<2)|0;b=f+4|0;if((d|0)!=(e|0)){while(1){f=f-4|0;e=e-4|0;J[f>>2]=J[e>>2];if((d|0)!=(e|0)){continue}break}}J[l+24>>2]=o;J[l+20>>2]=b;J[l+16>>2]=f;if(d){na(d)}d=f;e=b}if((i|0)==-1){break y}b=i+1|0;b=(b>>>0)%3|0?b:i-2|0;if((b|0)==-1){break y}b=J[J[J[c+12>>2]+12>>2]+(b<<2)>>2];if((b|0)==-1){break y}f=(b>>>0)/3|0;if(J[J[m>>2]+(f>>>3&268435452)>>2]>>>f&1){break y}if(_f(c,b)){break y}break w}if((i|0)!=-1){b=i+1|0;b=(b>>>0)%3|0?b:i-2|0}else{b=-1}Hc(c,b,1);if(!_f(c,J[l+8>>2])){break w}}g=g+1|0;if((p|0)!=(g|0)){continue}break}}g=J[c+72>>2];b=J[c+76>>2];D:{if((g|0)==(b|0)){break D}f=b-4|0;if(g>>>0>=f>>>0){break D}while(1){i=J[g>>2];J[g>>2]=J[f>>2];J[f>>2]=i;f=f-4|0;g=g+4|0;if(f>>>0>g>>>0){continue}break}}fg(q,b,d,e);E:{if(J[c+172>>2]==J[c+176>>2]){break E}b=J[c+8>>2];e=J[b+100>>2];b=J[b+96>>2];H[l+8|0]=0;Na(m,(e-b|0)/12|0,l+8|0);g=J[c+72>>2];b=J[c+76>>2];if((g|0)==(b|0)){break E}while(1){eg(c,J[g>>2]);g=g+4|0;if((b|0)!=(g|0)){continue}break}}m=0;g=0;b=j+32|0;ya(j,b);if(!(!J[j+80>>2]|J[j+84>>2]<=0)){while(1){ya(J[j+80>>2]+(m<<5)|0,b);m=m+1|0;if((m|0)>2]){continue}break}}m=J[j+136>>2];if((m|0)!=J[j+140>>2]){while(1){e=P(g,12);f=e+m|0;Aa(J[f+4>>2]-J[f>>2]>>2,b);m=J[j+136>>2];e=e+m|0;f=J[e+4>>2];e=J[e>>2];if((f|0)!=(e|0)){ee(e,f-e>>2,1,0,b);m=J[j+136>>2]}g=g+1|0;if(g>>>0<(J[j+140>>2]-m|0)/12>>>0){continue}break}}Aa(J[c+324>>2],J[J[c+4>>2]+44>>2]);Aa(J[c+168>>2],J[J[c+4>>2]+44>>2]);if(!dg(c)){b=oa(32);H[b+28|0]=0;c=K[1909]|K[1910]<<8|(K[1911]<<16|K[1912]<<24);H[b+24|0]=c;H[b+25|0]=c>>>8;H[b+26|0]=c>>>16;H[b+27|0]=c>>>24;c=K[1905]|K[1906]<<8|(K[1907]<<16|K[1908]<<24);e=K[1901]|K[1902]<<8|(K[1903]<<16|K[1904]<<24);H[b+16|0]=e;H[b+17|0]=e>>>8;H[b+18|0]=e>>>16;H[b+19|0]=e>>>24;H[b+20|0]=c;H[b+21|0]=c>>>8;H[b+22|0]=c>>>16;H[b+23|0]=c>>>24;c=K[1897]|K[1898]<<8|(K[1899]<<16|K[1900]<<24);e=K[1893]|K[1894]<<8|(K[1895]<<16|K[1896]<<24);H[b+8|0]=e;H[b+9|0]=e>>>8;H[b+10|0]=e>>>16;H[b+11|0]=e>>>24;H[b+12|0]=c;H[b+13|0]=c>>>8;H[b+14|0]=c>>>16;H[b+15|0]=c>>>24;c=K[1889]|K[1890]<<8|(K[1891]<<16|K[1892]<<24);e=K[1885]|K[1886]<<8|(K[1887]<<16|K[1888]<<24);H[b|0]=e;H[b+1|0]=e>>>8;H[b+2|0]=e>>>16;H[b+3|0]=e>>>24;H[b+4|0]=c;H[b+5|0]=c>>>8;H[b+6|0]=c>>>16;H[b+7|0]=c>>>24;J[a>>2]=-1;Ga(a+4|0,b,28);na(b);break v}b=J[J[c+4>>2]+44>>2];e=J[b+20>>2];if(!J[b+16>>2]&(e|0)<=0|(e|0)<0){sa(b,J[b+4>>2],J[c+232>>2],J[c+236>>2])}J[a>>2]=0;J[a+4>>2]=0;J[a+8>>2]=0;J[a+12>>2]=0;break v}xa();B()}b=oa(48);H[b+32|0]=0;c=K[1703]|K[1704]<<8|(K[1705]<<16|K[1706]<<24);e=K[1699]|K[1700]<<8|(K[1701]<<16|K[1702]<<24);H[b+24|0]=e;H[b+25|0]=e>>>8;H[b+26|0]=e>>>16;H[b+27|0]=e>>>24;H[b+28|0]=c;H[b+29|0]=c>>>8;H[b+30|0]=c>>>16;H[b+31|0]=c>>>24;c=K[1695]|K[1696]<<8|(K[1697]<<16|K[1698]<<24);e=K[1691]|K[1692]<<8|(K[1693]<<16|K[1694]<<24);H[b+16|0]=e;H[b+17|0]=e>>>8;H[b+18|0]=e>>>16;H[b+19|0]=e>>>24;H[b+20|0]=c;H[b+21|0]=c>>>8;H[b+22|0]=c>>>16;H[b+23|0]=c>>>24;c=K[1687]|K[1688]<<8|(K[1689]<<16|K[1690]<<24);e=K[1683]|K[1684]<<8|(K[1685]<<16|K[1686]<<24);H[b+8|0]=e;H[b+9|0]=e>>>8;H[b+10|0]=e>>>16;H[b+11|0]=e>>>24;H[b+12|0]=c;H[b+13|0]=c>>>8;H[b+14|0]=c>>>16;H[b+15|0]=c>>>24;c=K[1679]|K[1680]<<8|(K[1681]<<16|K[1682]<<24);e=K[1675]|K[1676]<<8|(K[1677]<<16|K[1678]<<24);H[b|0]=e;H[b+1|0]=e>>>8;H[b+2|0]=e>>>16;H[b+3|0]=e>>>24;H[b+4|0]=c;H[b+5|0]=c>>>8;H[b+6|0]=c>>>16;H[b+7|0]=c>>>24;J[a>>2]=-1;Ga(a+4|0,b,32);na(b)}if(!d){break d}na(d)}ba=l+32|0;return}qa();B()}function el(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,C=0,D=0,E=0,F=0,G=0,I=0,L=0,M=0,N=0,O=0,Q=0,S=0,U=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,da=0,ea=0,fa=0;i=ba-224|0;ba=i;J[a+8>>2]=e;C=a+32|0;h=J[C>>2];f=J[a+36>>2]-h>>2;a:{if(f>>>0>>0){Fa(C,e-f|0);break a}if(e>>>0>=f>>>0){break a}J[a+36>>2]=h+(e<<2)}b:{if(!d){break b}g=J[b>>2];c:{if((d|0)<2){d=g;break c}h=1;f=d-1|0;s=f&1;d:{if((d|0)==2){d=g;break d}y=f&-2;d=g;while(1){j=(h<<2)+b|0;f=J[j+4>>2];j=J[j>>2];l=(j|0)<(d|0);d=l?j:d;t=(d|0)>(f|0);d=t?f:d;j=l?g:(g|0)<(j|0)?j:g;g=t?j:(f|0)>(j|0)?f:j;h=h+2|0;k=k+2|0;if((y|0)!=(k|0)){continue}break}}if(!s){break c}f=J[(h<<2)+b>>2];h=(f|0)<(d|0);d=h?f:d;g=h?g:(f|0)>(g|0)?f:g}J[a+16>>2]=g;J[a+12>>2]=d;f=g-d|0;d=(g>>31)-((d>>31)+(d>>>0>g>>>0)|0)|0;if(!d&f>>>0>2147483646|d){break b}d=f+1|0;J[a+20>>2]=d;f=d>>>1|0;J[a+24>>2]=f;J[a+28>>2]=0-f;if(d&1){break b}J[a+24>>2]=f-1}Z=J[a+52>>2];z=J[a+48>>2];J[i+184>>2]=0;J[i+188>>2]=0;J[i+176>>2]=0;J[i+180>>2]=0;J[i+168>>2]=0;J[i+172>>2]=0;J[i+160>>2]=0;J[i+164>>2]=0;J[i+152>>2]=0;J[i+156>>2]=0;J[i+144>>2]=0;J[i+148>>2]=0;e:{if(!e){g=0;d=0;break e}Fa(i+144|0,e);g=J[i+156>>2];d=J[i+160>>2]}d=d-g>>2;f:{if(d>>>0>=e>>>0){if(d>>>0<=e>>>0){break f}J[i+160>>2]=(e<<2)+g;break f}Fa(i+144|12,e-d|0)}f=J[i+168>>2];d=J[i+172>>2]-f>>2;g:{if(d>>>0>=e>>>0){if(d>>>0<=e>>>0){break g}J[i+172>>2]=f+(e<<2);break g}Fa(i+168|0,e-d|0)}h:{i:{f=J[i+180>>2];d=J[i+184>>2]-f>>2;j:{k:{if(d>>>0>=e>>>0){if(d>>>0>e>>>0){J[i+184>>2]=f+(e<<2)}J[i+136>>2]=0;J[i+128>>2]=0;J[i+132>>2]=0;if(e){break k}d=1;break j}Fa(i+180|0,e-d|0);J[i+136>>2]=0;J[i+128>>2]=0;J[i+132>>2]=0}if(e>>>0>=1073741824){break i}d=e<<2;f=oa(d);J[i+128>>2]=f;h=d+f|0;J[i+136>>2]=h;pa(f,0,d);J[i+132>>2]=h;d=0}A=a+152|0;h=J[a+152>>2];f=J[a+156>>2]-h>>2;l:{m:{if(f>>>0>>0){Fa(A,e-f|0);J[i+104>>2]=0;J[i+108>>2]=0;J[i+96>>2]=0;J[i+100>>2]=0;J[i+88>>2]=0;J[i+92>>2]=0;J[i+80>>2]=0;J[i+84>>2]=0;J[i+72>>2]=0;J[i+76>>2]=0;d=i- -64|0;J[d>>2]=0;J[d+4>>2]=0;J[i+56>>2]=0;J[i+60>>2]=0;J[i+48>>2]=0;J[i+52>>2]=0;break m}if(e>>>0>>0){J[a+156>>2]=h+(e<<2)}J[i+104>>2]=0;J[i+108>>2]=0;J[i+96>>2]=0;J[i+100>>2]=0;J[i+88>>2]=0;J[i+92>>2]=0;J[i+80>>2]=0;J[i+84>>2]=0;J[i+72>>2]=0;J[i+76>>2]=0;f=i- -64|0;J[f>>2]=0;J[f+4>>2]=0;J[i+56>>2]=0;J[i+60>>2]=0;J[i+48>>2]=0;J[i+52>>2]=0;s=0;if(d){break l}}d=e<<2;q=oa(d);s=pa(q,0,d)+d|0}d=J[a+56>>2];d=J[d+4>>2]-J[d>>2]|0;if((d|0)<5){break h}L=e&-2;M=e&1;_=e&-4;S=e&3;N=e-1|0;U=e<<2;O=a+112|0;y=d>>>2|0;Q=s-q|0;D=Q>>2;X=(Q-4&-4)+4|0;$=i+36|0;aa=i+24|0;while(1){f=J[a+56>>2];d=J[f>>2];n:{o:{t=y-1|0;if(t>>>0>2]-d>>2>>>0){f=0;j=0;k=J[d+(t<<2)>>2];p:{if((k|0)==-1){break p}o=1;d=k+2|0;j=(k>>>0)%3|0;u=j?k-1|0:d;E=1<>2];G=l+(u>>>3&536870908)|0;h=0;I=(j|0)!=0|(d|0)!=-1;d=k;while(1){q:{if(J[l+(d>>>3&536870908)>>2]>>>d&1){break q}j=J[J[J[z+64>>2]+12>>2]+(d<<2)>>2];if((j|0)==-1){break q}n=J[Z>>2];g=J[z+28>>2];m=J[n+(J[g+(j<<2)>>2]<<2)>>2];if((m|0)>=(t|0)){break q}p=j+1|0;p=J[n+(J[g+(((p>>>0)%3|0?p:j-2|0)<<2)>>2]<<2)>>2];if((p|0)>=(t|0)){break q}g=J[n+(J[g+(j+((j>>>0)%3|0?-1:2)<<2)>>2]<<2)>>2];if((g|0)>=(t|0)){break q}r:{if(!e){break r}j=J[(i+144|0)+P(h,12)>>2];n=P(e,g);p=P(e,p);x=P(e,m);g=0;m=0;if(N){while(1){J[j+(g<<2)>>2]=(J[(g+n<<2)+b>>2]+J[(g+p<<2)+b>>2]|0)-J[(g+x<<2)+b>>2];w=g|1;J[j+(w<<2)>>2]=(J[(n+w<<2)+b>>2]+J[(p+w<<2)+b>>2]|0)-J[(x+w<<2)+b>>2];g=g+2|0;m=m+2|0;if((L|0)!=(m|0)){continue}break}}if(!M){break r}J[j+(g<<2)>>2]=(J[(g+n<<2)+b>>2]+J[(g+p<<2)+b>>2]|0)-J[(g+x<<2)+b>>2]}j=4;h=h+1|0;if((h|0)==4){break p}}s:{if(o&1){g=d-2|0;j=d+1|0;d=-1;j=(j>>>0)%3|0?j:g;if((j|0)==-1|J[l+(j>>>3&536870908)>>2]>>>j&1){break s}j=J[J[J[z+64>>2]+12>>2]+(j<<2)>>2];if((j|0)==-1){break s}d=j+1|0;d=(d>>>0)%3|0?d:j-2|0;break s}t:{if((d>>>0)%3|0){g=d-1|0;break t}g=d+2|0;d=-1;if((g|0)==-1){break s}}d=-1;if(J[l+(g>>>3&536870908)>>2]>>>g&1){break s}j=J[J[J[z+64>>2]+12>>2]+(g<<2)>>2];if((j|0)==-1){break s}if((j>>>0)%3|0){d=j-1|0;break s}d=j+2|0}if((d|0)==(k|0)){j=h;break p}if((d|0)==-1&o){if(!I){j=h;break p}if(E&J[G>>2]){j=h;break p}d=J[J[J[z+64>>2]+12>>2]+(u<<2)>>2];if((d|0)==-1){j=h;break p}o=0;d=(d>>>0)%3|0?d-1|0:d+2|0}j=h;if((d|0)!=-1){continue}break}}H[i+16|0]=0;J[i+8>>2]=0;J[i+12>>2]=0;J[i+44>>2]=0;J[i+36>>2]=0;J[i+40>>2]=0;J[i+28>>2]=0;J[i+32>>2]=0;J[i+20>>2]=0;J[i+24>>2]=0;I=P(e,t)<<2;x=I+b|0;k=(P(y-2|0,e)<<2)+b|0;l=J[A>>2];d=0;if(e){while(1){g=f<<2;h=J[g+k>>2]-J[g+x>>2]|0;J[g+q>>2]=h;J[g+l>>2]=(h|0)<0?(h^-1)<<1|1:h<<1;g=d;d=h>>31;d=g+((d^h)-d|0)|0;f=f+1|0;if((f|0)!=(e|0)){continue}break}}f=i+200|0;Db(f,O,l,e);l=Cb(f);h=J[f+12>>2];f=J[f+16>>2];h=(((h-f|0)+1|0)/64|0)+f<<3;n=f<<3;f=h+n|0;h=(h>>31)+(n>>31)|0;g=ca+(f>>>0>>0?h+1|0:h)|0;h=f;f=f+l|0;h=h>>>0>f>>>0?g+1|0:g;E=(j|0)<=0;if(!E){o=(j<<3)-8|0;g=o+(i+48|0)|0;n=g;l=J[g>>2];g=J[g+4>>2];l=j+l|0;g=l>>>0>>0?g+1|0:g;J[n>>2]=l;J[n+4>>2]=g;v=W(Eb(l,J[o+(i+80|0)>>2])*(+(l>>>0)+ +(g|0)*4294967296));u:{if(R(v)<0x8000000000000000){l=R(v)>=1?~~(v>0?T(V(v*2.3283064365386963e-10),4294967295):W((v-+(~~v>>>0>>>0))*2.3283064365386963e-10))>>>0:0;g=~~v>>>0;break u}l=-2147483648;g=0}f=f+g|0;h=f}J[i+20>>2]=0;H[i+16|0]=0;J[i+8>>2]=f;J[i+12>>2]=d;tc(aa,k,k+U|0);bb($,q,s);v:{w:{x:{if(E){break x}n=(i+124|0)+j|0;l=n-1|0;Y=j<<3;d=Y-8|0;G=d+(i+48|0)|0;da=d+(i+80|0)|0;o=1;w=0;while(1){d=i+124|0;pa(d,1,j);w=w+1|0;pa(d,0,w);y:{z:while(1){if(e){pa(J[i+128>>2],0,U)}m=0;d=J[i+128>>2];u=0;while(1){if(!K[(i+124|0)+m|0]){A:{if(!e){break A}f=J[(i+144|0)+P(m,12)>>2];h=0;g=0;k=0;if(e>>>0>3){while(1){p=g<<2;r=p+d|0;J[r>>2]=J[r>>2]+J[f+p>>2];r=p|4;F=r+d|0;J[F>>2]=J[F>>2]+J[f+r>>2];r=p|8;F=r+d|0;J[F>>2]=J[F>>2]+J[f+r>>2];p=p|12;r=p+d|0;J[r>>2]=J[r>>2]+J[f+p>>2];g=g+4|0;k=k+4|0;if((_|0)!=(k|0)){continue}break}}if(!S){break A}while(1){k=g<<2;p=k+d|0;J[p>>2]=J[p>>2]+J[f+k>>2];g=g+1|0;h=h+1|0;if((S|0)!=(h|0)){continue}break}}u=1<>2];B:{C:{D:{if(e){g=0;d=0;if(N){break D}break C}k=J[A>>2];h=0;break B}while(1){h=g<<2;k=h+f|0;J[k>>2]=J[k>>2]/(o|0);h=(h|4)+f|0;J[h>>2]=J[h>>2]/(o|0);g=g+2|0;d=d+2|0;if((L|0)!=(d|0)){continue}break}}if(M){d=(g<<2)+f|0;J[d>>2]=J[d>>2]/(o|0)}k=J[A>>2];f=J[i+128>>2];d=0;h=0;if(!e){break B}while(1){m=d<<2;g=J[m+f>>2]-J[m+x>>2]|0;J[m+q>>2]=g;J[k+m>>2]=(g|0)<0?(g^-1)<<1|1:g<<1;m=h;h=g>>31;h=m+((h^g)-h|0)|0;d=d+1|0;if((e|0)!=(d|0)){continue}break}}d=i+200|0;Db(d,O,k,e);k=Cb(d);g=J[d+12>>2];d=J[d+16>>2];g=(((g-d|0)+1|0)/64|0)+d<<3;m=d<<3;d=g+m|0;d=d+k|0;k=J[G+4>>2];g=J[G>>2];v=W(Eb(g,J[da>>2]+o|0)*(+(g>>>0)+ +(k|0)*4294967296));E:{if(R(v)<0x8000000000000000){g=~~v>>>0;break E}g=0}d=g+d|0;g=J[i+8>>2];if(!((d|0)>=(g|0)&((d|0)>(g|0)|(h|0)>=J[i+12>>2]))){J[i+20>>2]=o;H[i+16|0]=u;J[i+8>>2]=d;J[i+12>>2]=h;k=J[i+132>>2];m=k-f|0;g=m>>2;d=J[i+32>>2];h=J[i+24>>2];F:{if(g>>>0<=d-h>>2>>>0){m=J[i+28>>2]-h|0;d=m+f|0;u=m>>2;m=u>>>0>>0?d:k;p=m-f|0;if((f|0)!=(m|0)){ta(h,f,p)}if(g>>>0>u>>>0){g=J[i+28>>2];if((k|0)==(m|0)){break F}while(1){J[g>>2]=J[d>>2];g=g+4|0;d=d+4|0;if((k|0)!=(d|0)){continue}break}break F}g=h+p|0;break F}if(h){J[i+28>>2]=h;na(h);J[i+32>>2]=0;J[i+24>>2]=0;J[i+28>>2]=0;d=0}if((m|0)<0){break w}h=d>>>1|0;d=d>>>0>=2147483644?1073741823:g>>>0>>0?h:g;if(d>>>0>=1073741824){break w}d=d<<2;g=oa(d);J[i+24>>2]=g;J[i+32>>2]=d+g;if((f|0)==(k|0)){break F}d=(m-4&-4)+4|0;g=ua(g,f,d)+d|0}J[i+28>>2]=g;d=J[i+44>>2];f=J[i+36>>2];G:{if(d-f>>2>>>0>=D>>>0){h=J[i+40>>2]-f|0;d=h+q|0;k=h>>2;h=k>>>0>>0?d:s;g=h-q|0;if((h|0)!=(q|0)){ta(f,q,g)}if(k>>>0>>0){g=J[i+40>>2];if((h|0)==(s|0)){break G}while(1){J[g>>2]=J[d>>2];g=g+4|0;d=d+4|0;if((s|0)!=(d|0)){continue}break}break G}g=f+g|0;break G}if(f){J[i+40>>2]=f;na(f);J[i+44>>2]=0;J[i+36>>2]=0;J[i+40>>2]=0;d=0}if((Q|0)<0){break v}f=d>>>1|0;d=d>>>0>=2147483644?1073741823:f>>>0>D>>>0?f:D;if(d>>>0>=1073741824){break v}d=d<<2;g=oa(d);J[i+36>>2]=g;J[i+44>>2]=d+g;if((q|0)==(s|0)){break G}g=ua(g,q,X)+X|0}J[i+40>>2]=g}if((l|0)==(i+124|0)){break y}g=K[l|0];d=-1;while(1){k=g&255;f=d-1|0;h=f+n|0;g=K[h|0];if(k>>>0>g>>>0){f=n;while(1){f=f-1|0;k=K[f|0];if(k>>>0<=g>>>0){continue}break}H[h|0]=k;H[f|0]=g;if((d|0)==-1){continue z}g=d+n|0;d=l;while(1){f=K[g|0];H[g|0]=K[d|0];H[d|0]=f;d=d-1|0;g=g+1|0;if(d>>>0>g>>>0){continue}break}continue z}d=f;if((h|0)!=(i+124|0)){continue}break}break}f=i+124|0;g=f;d=l;if(f>>>0>=d>>>0){break y}while(1){f=K[g|0];H[g|0]=K[d|0];H[d|0]=f;d=d-1|0;g=g+1|0;if(d>>>0>g>>>0){continue}break}}o=o+1|0;if((j|0)!=(w|0)){continue}break}if((j|0)<=0){break x}h=J[i+20>>2];g=h;d=i+Y|0;f=g+J[d+72>>2]|0;h=J[d+76>>2]+(g>>31)|0;J[d+72>>2]=f;J[d+76>>2]=f>>>0>>0?h+1|0:h}if(!e){break n}d=J[A>>2];g=0;f=J[i+36>>2];k=0;if(!N){break o}while(1){l=g<<2;h=J[l+f>>2];J[d+l>>2]=(h|0)<0?(h^-1)<<1|1:h<<1;l=l|4;h=J[l+f>>2];J[d+l>>2]=(h|0)<0?(h^-1)<<1|1:h<<1;g=g+2|0;k=k+2|0;if((L|0)!=(k|0)){continue}break}break o}qa();B()}qa();B()}ra();B()}if(!M){break n}h=g<<2;f=J[h+f>>2];J[d+h>>2]=(f|0)<0?(f^-1)<<1|1:f<<1}Nc(i+200|0,O,J[A>>2],e);H:{if(E){break H}g=P(j,12)+a|0;d=0;while(1){I:{k=J[g+56>>2];l=k<<5;f=J[g+52>>2];J:{if(!(K[i+16|0]>>>d&1)){h=f;K:{if((f|0)!=(l|0)){break K}if((f+1|0)<0){break I}L:{if(f>>>0<=1073741822){k=k<<6;l=(f&-32)+32|0;l=k>>>0>l>>>0?k:l;h=f;if(f>>>0>=l>>>0){break K}if((l|0)>=0){break L}break I}l=2147483647;h=-1;if(f>>>0>=2147483647){break K}}l=(l-1>>>5|0)+1|0;h=oa(l<<2);k=J[g+48>>2];J[h+((f>>>0>=33?f-1>>>5|0:0)<<2)>>2]=0;M:{N:{if(!f){break N}n=f>>>5|0;if(f>>>0>=32){ta(h,k,n<<2)}o=f&31;if(!o){break N}n=n<<2;m=n+h|0;o=-1>>>32-o|0;J[m>>2]=J[m>>2]&(o^-1)|o&J[k+n>>2];J[g+48>>2]=h;J[g+52>>2]=f;J[g+56>>2]=l;break M}J[g+48>>2]=h;J[g+52>>2]=f;J[g+56>>2]=l;h=f;if(!k){break K}}na(k);h=J[g+52>>2]}J[g+52>>2]=h+1;f=J[g+48>>2]+(h>>>3&536870908)|0;J[f>>2]=J[f>>2]|1<>>0<=1073741822){k=k<<6;l=(f&-32)+32|0;l=k>>>0>l>>>0?k:l;h=f;if(f>>>0>=l>>>0){break O}if((l|0)<0){break I}break P}l=2147483647;h=-1;if(f>>>0>=2147483647){break O}}l=(l-1>>>5|0)+1|0;h=oa(l<<2);k=J[g+48>>2];J[h+((f>>>0>=33?f-1>>>5|0:0)<<2)>>2]=0;Q:{R:{if(!f){break R}n=f>>>5|0;if(f>>>0>=32){ta(h,k,n<<2)}o=f&31;if(!o){break R}n=n<<2;m=n+h|0;o=-1>>>32-o|0;J[m>>2]=J[m>>2]&(o^-1)|o&J[k+n>>2];J[g+48>>2]=h;J[g+52>>2]=f;J[g+56>>2]=l;break Q}J[g+48>>2]=h;J[g+52>>2]=f;J[g+56>>2]=l;h=f;if(!k){break O}}na(k);h=J[g+52>>2]}J[g+52>>2]=h+1;f=J[g+48>>2]+(h>>>3&536870908)|0;k=J[f>>2];ea=f,fa=Ll(h)&k,J[ea>>2]=fa}d=d+1|0;if((j|0)!=(d|0)){continue}break H}break}qa();B()}g=J[a+8>>2];if((g|0)>0){n=c+I|0;d=J[C>>2];l=0;k=J[i+24>>2];while(1){h=d;if((g|0)>0){h=J[C>>2];g=0;while(1){f=g<<2;j=J[f+k>>2];o=J[a+16>>2];S:{if((j|0)>(o|0)){J[f+h>>2]=o;break S}f=f+h|0;o=J[a+12>>2];if((o|0)>(j|0)){J[f>>2]=o;break S}J[f>>2]=j}g=g+1|0;if((g|0)>2]){continue}break}}j=l<<2;f=j+n|0;j=J[j+x>>2]-J[h+j>>2]|0;J[f>>2]=j;T:{if((j|0)>2]){g=j+J[a+20>>2]|0}else{if((j|0)<=J[a+24>>2]){break T}g=j-J[a+20>>2]|0}J[f>>2]=g}k=h;g=J[a+8>>2];l=l+1|0;if((g|0)>(l|0)){continue}break}}d=J[i+36>>2];if(d){J[i+40>>2]=d;na(d)}d=J[i+24>>2];if(d){J[i+28>>2]=d;na(d)}d=(y|0)>2;y=t;if(d){continue}break}break h}qa();B()}if((e|0)>0){pa(J[i+144>>2],0,e<<2)}g=J[a+8>>2];if((g|0)>0){d=J[a+32>>2];l=0;k=J[i+144>>2];while(1){h=d;if((g|0)>0){h=J[C>>2];g=0;while(1){e=g<<2;f=J[e+k>>2];j=J[a+16>>2];U:{if((f|0)>(j|0)){J[e+h>>2]=j;break U}e=e+h|0;j=J[a+12>>2];if((j|0)>(f|0)){J[e>>2]=j;break U}J[e>>2]=f}g=g+1|0;if((g|0)>2]){continue}break}}f=l<<2;e=f+c|0;f=J[b+f>>2]-J[f+h>>2]|0;J[e>>2]=f;V:{if((f|0)>2]){f=f+J[a+20>>2]|0}else{if((f|0)<=J[a+24>>2]){break V}f=f-J[a+20>>2]|0}J[e>>2]=f}k=h;g=J[a+8>>2];l=l+1|0;if((g|0)>(l|0)){continue}break}}if(q){na(q)}a=J[i+128>>2];if(a){J[i+132>>2]=a;na(a)}a=J[i+180>>2];if(a){J[i+184>>2]=a;na(a)}a=J[i+168>>2];if(a){J[i+172>>2]=a;na(a)}a=J[i+156>>2];if(a){J[i+160>>2]=a;na(a)}a=J[i+144>>2];if(a){J[i+148>>2]=a;na(a)}ba=i+224|0;return 1}function Wk(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,C=0,D=0,E=0,F=0,G=0,I=0,L=0,M=0,N=0,O=0,Q=0,S=0,U=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,da=0,ea=0,fa=0;i=ba-224|0;ba=i;J[a+8>>2]=e;z=a+32|0;h=J[z>>2];f=J[a+36>>2]-h>>2;a:{if(f>>>0>>0){Fa(z,e-f|0);break a}if(e>>>0>=f>>>0){break a}J[a+36>>2]=h+(e<<2)}b:{if(!d){break b}g=J[b>>2];c:{if((d|0)<2){d=g;break c}h=1;f=d-1|0;w=f&1;d:{if((d|0)==2){d=g;break d}u=f&-2;d=g;while(1){j=(h<<2)+b|0;f=J[j+4>>2];j=J[j>>2];l=(j|0)<(d|0);d=l?j:d;m=(d|0)>(f|0);d=m?f:d;j=l?g:(g|0)<(j|0)?j:g;g=m?j:(f|0)>(j|0)?f:j;h=h+2|0;k=k+2|0;if((u|0)!=(k|0)){continue}break}}if(!w){break c}f=J[(h<<2)+b>>2];h=(f|0)<(d|0);d=h?f:d;g=h?g:(f|0)>(g|0)?f:g}J[a+16>>2]=g;J[a+12>>2]=d;f=g-d|0;d=(g>>31)-((d>>31)+(d>>>0>g>>>0)|0)|0;if(!d&f>>>0>2147483646|d){break b}d=f+1|0;J[a+20>>2]=d;f=d>>>1|0;J[a+24>>2]=f;J[a+28>>2]=0-f;if(d&1){break b}J[a+24>>2]=f-1}Z=J[a+52>>2];N=J[a+48>>2];J[i+184>>2]=0;J[i+188>>2]=0;J[i+176>>2]=0;J[i+180>>2]=0;J[i+168>>2]=0;J[i+172>>2]=0;J[i+160>>2]=0;J[i+164>>2]=0;J[i+152>>2]=0;J[i+156>>2]=0;J[i+144>>2]=0;J[i+148>>2]=0;e:{if(!e){g=0;d=0;break e}Fa(i+144|0,e);g=J[i+156>>2];d=J[i+160>>2]}d=d-g>>2;f:{if(d>>>0>=e>>>0){if(d>>>0<=e>>>0){break f}J[i+160>>2]=(e<<2)+g;break f}Fa(i+144|12,e-d|0)}f=J[i+168>>2];d=J[i+172>>2]-f>>2;g:{if(d>>>0>=e>>>0){if(d>>>0<=e>>>0){break g}J[i+172>>2]=f+(e<<2);break g}Fa(i+168|0,e-d|0)}h:{i:{f=J[i+180>>2];d=J[i+184>>2]-f>>2;j:{k:{if(d>>>0>=e>>>0){if(d>>>0>e>>>0){J[i+184>>2]=f+(e<<2)}J[i+136>>2]=0;J[i+128>>2]=0;J[i+132>>2]=0;if(e){break k}d=1;break j}Fa(i+180|0,e-d|0);J[i+136>>2]=0;J[i+128>>2]=0;J[i+132>>2]=0}if(e>>>0>=1073741824){break i}d=e<<2;f=oa(d);J[i+128>>2]=f;h=d+f|0;J[i+136>>2]=h;pa(f,0,d);J[i+132>>2]=h;d=0}x=a+152|0;h=J[a+152>>2];f=J[a+156>>2]-h>>2;l:{m:{if(f>>>0>>0){Fa(x,e-f|0);J[i+104>>2]=0;J[i+108>>2]=0;J[i+96>>2]=0;J[i+100>>2]=0;J[i+88>>2]=0;J[i+92>>2]=0;J[i+80>>2]=0;J[i+84>>2]=0;J[i+72>>2]=0;J[i+76>>2]=0;d=i- -64|0;J[d>>2]=0;J[d+4>>2]=0;J[i+56>>2]=0;J[i+60>>2]=0;J[i+48>>2]=0;J[i+52>>2]=0;break m}if(e>>>0>>0){J[a+156>>2]=h+(e<<2)}J[i+104>>2]=0;J[i+108>>2]=0;J[i+96>>2]=0;J[i+100>>2]=0;J[i+88>>2]=0;J[i+92>>2]=0;J[i+80>>2]=0;J[i+84>>2]=0;J[i+72>>2]=0;J[i+76>>2]=0;f=i- -64|0;J[f>>2]=0;J[f+4>>2]=0;J[i+56>>2]=0;J[i+60>>2]=0;J[i+48>>2]=0;J[i+52>>2]=0;u=0;if(d){break l}}d=e<<2;r=oa(d);u=pa(r,0,d)+d|0}d=J[a+56>>2];d=J[d+4>>2]-J[d>>2]|0;if((d|0)<5){break h}F=e&-2;G=e&1;_=e&-4;O=e&3;I=e-1|0;Q=e<<2;L=a+112|0;E=d>>>2|0;M=u-r|0;A=M>>2;S=(M-4&-4)+4|0;$=i+36|0;aa=i+24|0;while(1){f=J[a+56>>2];d=J[f>>2];n:{o:{w=E-1|0;if(w>>>0>2]-d>>2>>>0){f=0;l=0;d=J[d+(w<<2)>>2];p:{if((d|0)==-1){break p}m=J[N+12>>2];h=d+2|0;l=(d>>>0)%3|0;y=m+((l?d-1|0:h)<<2)|0;j=0;C=(l|0)!=0|(h|0)!=-1;q=1;h=d;while(1){l=J[m+(h<<2)>>2];q:{if((l|0)==-1){break q}k=-1;p=J[Z>>2];n=J[N>>2];g=p+(J[n+(l<<2)>>2]<<2)|0;o=l+1|0;o=(o>>>0)%3|0?o:l-2|0;if((o|0)!=-1){k=J[n+(o<<2)>>2]}o=J[g>>2];r:{s:{if((l>>>0)%3|0){g=l-1|0;break s}g=l+2|0;s=-1;if((g|0)==-1){break r}}s=J[n+(g<<2)>>2]}if((o|0)>=(w|0)){break q}g=J[p+(k<<2)>>2];if((g|0)>=(w|0)){break q}k=J[p+(s<<2)>>2];if((k|0)>=(w|0)){break q}l=J[(i+144|0)+P(j,12)>>2];t:{if(!e){break t}k=P(e,k);n=P(e,g);o=P(e,o);g=0;p=0;if(I){while(1){J[l+(g<<2)>>2]=(J[(g+k<<2)+b>>2]+J[(g+n<<2)+b>>2]|0)-J[(g+o<<2)+b>>2];s=g|1;J[l+(s<<2)>>2]=(J[(k+s<<2)+b>>2]+J[(n+s<<2)+b>>2]|0)-J[(o+s<<2)+b>>2];g=g+2|0;p=p+2|0;if((F|0)!=(p|0)){continue}break}}if(!G){break t}J[l+(g<<2)>>2]=(J[(g+k<<2)+b>>2]+J[(g+n<<2)+b>>2]|0)-J[(g+o<<2)+b>>2]}l=4;j=j+1|0;if((j|0)==4){break p}}u:{if(q&1){g=h+1|0;h=(g>>>0)%3|0?g:h-2|0;l=-1;if((h|0)==-1){break u}h=J[m+(h<<2)>>2];l=-1;if((h|0)==-1){break u}l=h+1|0;l=(l>>>0)%3|0?l:h-2|0;break u}v:{if((h>>>0)%3|0){g=h-1|0;break v}g=h+2|0;l=-1;if((g|0)==-1){break u}}h=J[m+(g<<2)>>2];l=-1;if((h|0)==-1){break u}l=h-1|0;if((h>>>0)%3|0){break u}l=h+2|0}h=l;if((d|0)==(h|0)){l=j;break p}if((h|0)==-1&q){if(!C){l=j;break p}h=J[y>>2];if((h|0)==-1){l=j;break p}q=0;h=(h>>>0)%3|0?h-1|0:h+2|0}l=j;if((h|0)!=-1){continue}break}}H[i+16|0]=0;J[i+8>>2]=0;J[i+12>>2]=0;J[i+44>>2]=0;J[i+36>>2]=0;J[i+40>>2]=0;J[i+28>>2]=0;J[i+32>>2]=0;J[i+20>>2]=0;J[i+24>>2]=0;U=P(e,w)<<2;s=U+b|0;k=(P(E-2|0,e)<<2)+b|0;g=J[x>>2];d=0;if(e){while(1){j=f<<2;h=J[j+k>>2]-J[j+s>>2]|0;J[j+r>>2]=h;J[g+j>>2]=(h|0)<0?(h^-1)<<1|1:h<<1;j=d;d=h>>31;d=j+((d^h)-d|0)|0;f=f+1|0;if((f|0)!=(e|0)){continue}break}}f=i+200|0;Db(f,L,g,e);j=Cb(f);h=J[f+12>>2];f=J[f+16>>2];h=(((h-f|0)+1|0)/64|0)+f<<3;m=f<<3;f=h+m|0;h=(h>>31)+(m>>31)|0;g=ca+(f>>>0>>0?h+1|0:h)|0;h=f;f=f+j|0;h=h>>>0>f>>>0?g+1|0:g;C=(l|0)<=0;if(!C){n=(l<<3)-8|0;j=n+(i+48|0)|0;m=j;g=J[j>>2];j=J[j+4>>2];g=g+l|0;j=g>>>0>>0?j+1|0:j;J[m>>2]=g;J[m+4>>2]=j;v=W(Eb(g,J[n+(i+80|0)>>2])*(+(g>>>0)+ +(j|0)*4294967296));w:{if(R(v)<0x8000000000000000){g=R(v)>=1?~~(v>0?T(V(v*2.3283064365386963e-10),4294967295):W((v-+(~~v>>>0>>>0))*2.3283064365386963e-10))>>>0:0;j=~~v>>>0;break w}g=-2147483648;j=0}f=f+j|0;h=f}J[i+20>>2]=0;H[i+16|0]=0;J[i+8>>2]=f;J[i+12>>2]=d;tc(aa,k,k+Q|0);bb($,r,u);x:{y:{z:{if(C){break z}n=(i+124|0)+l|0;m=n-1|0;X=l<<3;d=X-8|0;Y=d+(i+48|0)|0;da=d+(i+80|0)|0;q=1;y=0;while(1){d=i+124|0;pa(d,1,l);y=y+1|0;pa(d,0,y);A:{B:while(1){if(e){pa(J[i+128>>2],0,Q)}p=0;d=J[i+128>>2];j=0;while(1){if(!K[(i+124|0)+p|0]){C:{if(!e){break C}f=J[(i+144|0)+P(p,12)>>2];h=0;g=0;k=0;if(e>>>0>3){while(1){o=g<<2;t=o+d|0;J[t>>2]=J[t>>2]+J[f+o>>2];t=o|4;D=t+d|0;J[D>>2]=J[D>>2]+J[f+t>>2];t=o|8;D=t+d|0;J[D>>2]=J[D>>2]+J[f+t>>2];o=o|12;t=o+d|0;J[t>>2]=J[t>>2]+J[f+o>>2];g=g+4|0;k=k+4|0;if((_|0)!=(k|0)){continue}break}}if(!O){break C}while(1){k=g<<2;o=k+d|0;J[o>>2]=J[o>>2]+J[f+k>>2];g=g+1|0;h=h+1|0;if((O|0)!=(h|0)){continue}break}}j=1<>2];D:{E:{F:{if(e){g=0;d=0;if(I){break F}break E}k=J[x>>2];h=0;break D}while(1){h=g<<2;k=h+f|0;J[k>>2]=J[k>>2]/(q|0);h=(h|4)+f|0;J[h>>2]=J[h>>2]/(q|0);g=g+2|0;d=d+2|0;if((F|0)!=(d|0)){continue}break}}if(G){d=(g<<2)+f|0;J[d>>2]=J[d>>2]/(q|0)}k=J[x>>2];f=J[i+128>>2];d=0;h=0;if(!e){break D}while(1){p=d<<2;g=J[p+f>>2]-J[p+s>>2]|0;J[p+r>>2]=g;J[k+p>>2]=(g|0)<0?(g^-1)<<1|1:g<<1;o=h;h=g>>31;h=o+((h^g)-h|0)|0;d=d+1|0;if((e|0)!=(d|0)){continue}break}}d=i+200|0;Db(d,L,k,e);k=Cb(d);g=J[d+12>>2];d=J[d+16>>2];g=(((g-d|0)+1|0)/64|0)+d<<3;p=d<<3;d=g+p|0;d=d+k|0;k=J[Y+4>>2];g=J[Y>>2];v=W(Eb(g,J[da>>2]+q|0)*(+(g>>>0)+ +(k|0)*4294967296));G:{if(R(v)<0x8000000000000000){g=~~v>>>0;break G}g=0}d=g+d|0;g=J[i+8>>2];if(!((d|0)>=(g|0)&((d|0)>(g|0)|(h|0)>=J[i+12>>2]))){J[i+20>>2]=q;H[i+16|0]=j;J[i+8>>2]=d;J[i+12>>2]=h;j=J[i+132>>2];k=j-f|0;g=k>>2;d=J[i+32>>2];h=J[i+24>>2];H:{if(g>>>0<=d-h>>2>>>0){k=J[i+28>>2]-h|0;d=k+f|0;o=k>>2;k=o>>>0>>0?d:j;p=k-f|0;if((f|0)!=(k|0)){ta(h,f,p)}if(g>>>0>o>>>0){g=J[i+28>>2];if((j|0)==(k|0)){break H}while(1){J[g>>2]=J[d>>2];g=g+4|0;d=d+4|0;if((j|0)!=(d|0)){continue}break}break H}g=h+p|0;break H}if(h){J[i+28>>2]=h;na(h);J[i+32>>2]=0;J[i+24>>2]=0;J[i+28>>2]=0;d=0}if((k|0)<0){break y}h=d>>>1|0;d=d>>>0>=2147483644?1073741823:g>>>0>>0?h:g;if(d>>>0>=1073741824){break y}d=d<<2;g=oa(d);J[i+24>>2]=g;J[i+32>>2]=d+g;if((f|0)==(j|0)){break H}d=(k-4&-4)+4|0;g=ua(g,f,d)+d|0}J[i+28>>2]=g;d=J[i+44>>2];f=J[i+36>>2];I:{if(d-f>>2>>>0>=A>>>0){h=J[i+40>>2]-f|0;d=h+r|0;g=h>>2;h=g>>>0>>0?d:u;j=h-r|0;if((h|0)!=(r|0)){ta(f,r,j)}if(g>>>0>>0){g=J[i+40>>2];if((h|0)==(u|0)){break I}while(1){J[g>>2]=J[d>>2];g=g+4|0;d=d+4|0;if((u|0)!=(d|0)){continue}break}break I}g=f+j|0;break I}if(f){J[i+40>>2]=f;na(f);J[i+44>>2]=0;J[i+36>>2]=0;J[i+40>>2]=0;d=0}if((M|0)<0){break x}f=d>>>1|0;d=d>>>0>=2147483644?1073741823:f>>>0>A>>>0?f:A;if(d>>>0>=1073741824){break x}d=d<<2;g=oa(d);J[i+36>>2]=g;J[i+44>>2]=d+g;if((r|0)==(u|0)){break I}g=ua(g,r,S)+S|0}J[i+40>>2]=g}if((m|0)==(i+124|0)){break A}g=K[m|0];d=-1;while(1){j=g&255;f=d-1|0;h=f+n|0;g=K[h|0];if(j>>>0>g>>>0){f=n;while(1){f=f-1|0;j=K[f|0];if(j>>>0<=g>>>0){continue}break}H[h|0]=j;H[f|0]=g;if((d|0)==-1){continue B}g=d+n|0;d=m;while(1){f=K[g|0];H[g|0]=K[d|0];H[d|0]=f;d=d-1|0;g=g+1|0;if(d>>>0>g>>>0){continue}break}continue B}d=f;if((h|0)!=(i+124|0)){continue}break}break}f=i+124|0;g=f;d=m;if(f>>>0>=d>>>0){break A}while(1){f=K[g|0];H[g|0]=K[d|0];H[d|0]=f;d=d-1|0;g=g+1|0;if(d>>>0>g>>>0){continue}break}}q=q+1|0;if((l|0)!=(y|0)){continue}break}if((l|0)<=0){break z}h=J[i+20>>2];j=h;d=i+X|0;f=h+J[d+72>>2]|0;h=J[d+76>>2]+(h>>31)|0;J[d+72>>2]=f;J[d+76>>2]=f>>>0>>0?h+1|0:h}if(!e){break n}d=J[x>>2];g=0;f=J[i+36>>2];k=0;if(!I){break o}while(1){j=g<<2;h=J[j+f>>2];J[d+j>>2]=(h|0)<0?(h^-1)<<1|1:h<<1;j=j|4;h=J[j+f>>2];J[d+j>>2]=(h|0)<0?(h^-1)<<1|1:h<<1;g=g+2|0;k=k+2|0;if((F|0)!=(k|0)){continue}break}break o}qa();B()}qa();B()}ra();B()}if(!G){break n}h=g<<2;f=J[h+f>>2];J[d+h>>2]=(f|0)<0?(f^-1)<<1|1:f<<1}Nc(i+200|0,L,J[x>>2],e);J:{if(C){break J}g=P(l,12)+a|0;d=0;while(1){K:{j=J[g+56>>2];k=j<<5;f=J[g+52>>2];L:{if(!(K[i+16|0]>>>d&1)){h=f;M:{if((f|0)!=(k|0)){break M}if((f+1|0)<0){break K}N:{if(f>>>0<=1073741822){j=j<<6;k=(f&-32)+32|0;j=j>>>0>k>>>0?j:k;h=f;if(f>>>0>=j>>>0){break M}if((j|0)>=0){break N}break K}j=2147483647;h=-1;if(f>>>0>=2147483647){break M}}k=(j-1>>>5|0)+1|0;h=oa(k<<2);j=J[g+48>>2];J[h+((f>>>0>=33?f-1>>>5|0:0)<<2)>>2]=0;O:{P:{if(!f){break P}m=f>>>5|0;if(f>>>0>=32){ta(h,j,m<<2)}n=f&31;if(!n){break P}m=m<<2;q=m+h|0;n=-1>>>32-n|0;J[q>>2]=J[q>>2]&(n^-1)|n&J[j+m>>2];J[g+48>>2]=h;J[g+52>>2]=f;J[g+56>>2]=k;break O}J[g+48>>2]=h;J[g+52>>2]=f;J[g+56>>2]=k;h=f;if(!j){break M}}na(j);h=J[g+52>>2]}J[g+52>>2]=h+1;f=J[g+48>>2]+(h>>>3&536870908)|0;J[f>>2]=J[f>>2]|1<>>0<=1073741822){j=j<<6;k=(f&-32)+32|0;j=j>>>0>k>>>0?j:k;h=f;if(f>>>0>=j>>>0){break Q}if((j|0)<0){break K}break R}j=2147483647;h=-1;if(f>>>0>=2147483647){break Q}}k=(j-1>>>5|0)+1|0;h=oa(k<<2);j=J[g+48>>2];J[h+((f>>>0>=33?f-1>>>5|0:0)<<2)>>2]=0;S:{T:{if(!f){break T}m=f>>>5|0;if(f>>>0>=32){ta(h,j,m<<2)}n=f&31;if(!n){break T}m=m<<2;q=m+h|0;n=-1>>>32-n|0;J[q>>2]=J[q>>2]&(n^-1)|n&J[j+m>>2];J[g+48>>2]=h;J[g+52>>2]=f;J[g+56>>2]=k;break S}J[g+48>>2]=h;J[g+52>>2]=f;J[g+56>>2]=k;h=f;if(!j){break Q}}na(j);h=J[g+52>>2]}J[g+52>>2]=h+1;f=J[g+48>>2]+(h>>>3&536870908)|0;j=J[f>>2];ea=f,fa=Ll(h)&j,J[ea>>2]=fa}d=d+1|0;if((l|0)!=(d|0)){continue}break J}break}qa();B()}g=J[a+8>>2];if((g|0)>0){m=c+U|0;d=J[z>>2];j=0;k=J[i+24>>2];while(1){h=d;if((g|0)>0){h=J[z>>2];g=0;while(1){f=g<<2;l=J[f+k>>2];n=J[a+16>>2];U:{if((l|0)>(n|0)){J[f+h>>2]=n;break U}f=f+h|0;n=J[a+12>>2];if((n|0)>(l|0)){J[f>>2]=n;break U}J[f>>2]=l}g=g+1|0;if((g|0)>2]){continue}break}}l=j<<2;f=l+m|0;l=J[l+s>>2]-J[h+l>>2]|0;J[f>>2]=l;V:{if((l|0)>2]){g=l+J[a+20>>2]|0}else{if((l|0)<=J[a+24>>2]){break V}g=l-J[a+20>>2]|0}J[f>>2]=g}k=h;g=J[a+8>>2];j=j+1|0;if((g|0)>(j|0)){continue}break}}d=J[i+36>>2];if(d){J[i+40>>2]=d;na(d)}d=J[i+24>>2];if(d){J[i+28>>2]=d;na(d)}d=(E|0)>2;E=w;if(d){continue}break}break h}qa();B()}if((e|0)>0){pa(J[i+144>>2],0,e<<2)}g=J[a+8>>2];if((g|0)>0){d=J[a+32>>2];j=0;k=J[i+144>>2];while(1){h=d;if((g|0)>0){h=J[z>>2];g=0;while(1){e=g<<2;f=J[e+k>>2];l=J[a+16>>2];W:{if((f|0)>(l|0)){J[e+h>>2]=l;break W}e=e+h|0;l=J[a+12>>2];if((l|0)>(f|0)){J[e>>2]=l;break W}J[e>>2]=f}g=g+1|0;if((g|0)>2]){continue}break}}f=j<<2;e=f+c|0;f=J[b+f>>2]-J[f+h>>2]|0;J[e>>2]=f;X:{if((f|0)>2]){f=f+J[a+20>>2]|0}else{if((f|0)<=J[a+24>>2]){break X}f=f-J[a+20>>2]|0}J[e>>2]=f}k=h;g=J[a+8>>2];j=j+1|0;if((g|0)>(j|0)){continue}break}}if(r){na(r)}a=J[i+128>>2];if(a){J[i+132>>2]=a;na(a)}a=J[i+180>>2];if(a){J[i+184>>2]=a;na(a)}a=J[i+168>>2];if(a){J[i+172>>2]=a;na(a)}a=J[i+156>>2];if(a){J[i+160>>2]=a;na(a)}a=J[i+144>>2];if(a){J[i+148>>2]=a;na(a)}ba=i+224|0;return 1}function Fk(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,C=0,D=0,E=0,F=0,G=0,I=0,L=0,M=0,N=0,O=0,Q=0,S=0,U=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,da=0,ea=0,fa=0;g=ba-240|0;ba=g;Z=J[a+36>>2];C=J[a+32>>2];J[g+184>>2]=0;J[g+188>>2]=0;J[g+176>>2]=0;J[g+180>>2]=0;J[g+168>>2]=0;J[g+172>>2]=0;J[g+160>>2]=0;J[g+164>>2]=0;J[g+152>>2]=0;J[g+156>>2]=0;J[g+144>>2]=0;J[g+148>>2]=0;if(e){Fa(g+144|0,e);i=J[g+156>>2];d=J[g+160>>2]}else{d=0}d=d-i>>2;a:{if(d>>>0>=e>>>0){if(d>>>0<=e>>>0){break a}J[g+160>>2]=(e<<2)+i;break a}Fa(g+144|12,e-d|0)}d=J[g+168>>2];f=J[g+172>>2]-d>>2;b:{if(f>>>0>=e>>>0){if(e>>>0>=f>>>0){break b}J[g+172>>2]=d+(e<<2);break b}Fa(g+168|0,e-f|0)}c:{d:{d=J[g+180>>2];f=J[g+184>>2]-d>>2;e:{f:{if(f>>>0>=e>>>0){if(e>>>0>>0){J[g+184>>2]=d+(e<<2)}J[g+136>>2]=0;J[g+128>>2]=0;J[g+132>>2]=0;if(e){break f}d=1;break e}Fa(g+180|0,e-f|0);J[g+136>>2]=0;J[g+128>>2]=0;J[g+132>>2]=0}if(e>>>0>=1073741824){break d}j=e<<2;f=oa(j);J[g+128>>2]=f;d=f+j|0;J[g+136>>2]=d;pa(f,0,j);J[g+132>>2]=d;d=0}D=a+136|0;f=J[a+136>>2];j=J[a+140>>2]-f>>2;g:{h:{if(j>>>0>>0){Fa(D,e-j|0);J[g+104>>2]=0;J[g+108>>2]=0;J[g+96>>2]=0;J[g+100>>2]=0;J[g+88>>2]=0;J[g+92>>2]=0;J[g+80>>2]=0;J[g+84>>2]=0;J[g+72>>2]=0;J[g+76>>2]=0;d=g- -64|0;J[d>>2]=0;J[d+4>>2]=0;J[g+56>>2]=0;J[g+60>>2]=0;J[g+48>>2]=0;J[g+52>>2]=0;break h}if(e>>>0>>0){J[a+140>>2]=f+(e<<2)}J[g+104>>2]=0;J[g+108>>2]=0;J[g+96>>2]=0;J[g+100>>2]=0;J[g+88>>2]=0;J[g+92>>2]=0;J[g+80>>2]=0;J[g+84>>2]=0;J[g+72>>2]=0;J[g+76>>2]=0;f=g- -64|0;J[f>>2]=0;J[f+4>>2]=0;J[g+56>>2]=0;J[g+60>>2]=0;J[g+48>>2]=0;J[g+52>>2]=0;f=0;if(d){break g}}d=e<<2;t=oa(d);f=pa(t,0,d)+d|0}d=J[a+40>>2];d=J[d+4>>2]-J[d>>2]|0;if((d|0)<5){break c}M=e&-2;N=e&1;_=e&-4;U=e&3;O=e-1|0;X=e<<2;$=a+8|0;Q=a+96|0;G=d>>>2|0;E=f;S=f-t|0;F=S>>2;Y=(S-4&-4)+4|0;aa=g+36|0;da=g+24|0;while(1){d=J[a+40>>2];f=J[d>>2];i:{j:{z=G-1|0;if(z>>>0>2]-f>>2>>>0){d=0;j=0;l=J[f+(z<<2)>>2];k:{if((l|0)==-1){break k}u=1;h=l+2|0;j=(l>>>0)%3|0;A=j?l-1|0:h;r=1<>2];q=s+(A>>>3&536870908)|0;f=0;n=(j|0)!=0|(h|0)!=-1;h=l;while(1){l:{if(J[s+(h>>>3&536870908)>>2]>>>h&1){break l}o=J[J[J[C+64>>2]+12>>2]+(h<<2)>>2];if((o|0)==-1){break l}w=J[Z>>2];x=J[C+28>>2];k=J[w+(J[x+(o<<2)>>2]<<2)>>2];if((k|0)>=(z|0)){break l}j=o+1|0;m=J[w+(J[x+(((j>>>0)%3|0?j:o-2|0)<<2)>>2]<<2)>>2];if((m|0)>=(z|0)){break l}j=J[w+(J[x+(o+((o>>>0)%3|0?-1:2)<<2)>>2]<<2)>>2];if((j|0)>=(z|0)){break l}m:{if(!e){break m}o=J[(g+144|0)+P(f,12)>>2];x=P(e,j);w=P(e,m);m=P(e,k);i=0;p=0;if(O){while(1){J[o+(i<<2)>>2]=(J[(i+x<<2)+b>>2]+J[(i+w<<2)+b>>2]|0)-J[(i+m<<2)+b>>2];j=i|1;J[o+(j<<2)>>2]=(J[(j+x<<2)+b>>2]+J[(j+w<<2)+b>>2]|0)-J[(j+m<<2)+b>>2];i=i+2|0;p=p+2|0;if((M|0)!=(p|0)){continue}break}}if(!N){break m}J[o+(i<<2)>>2]=(J[(i+x<<2)+b>>2]+J[(i+w<<2)+b>>2]|0)-J[(i+m<<2)+b>>2]}j=4;f=f+1|0;if((f|0)==4){break k}}n:{if(u&1){j=h-2|0;m=h+1|0;h=-1;j=(m>>>0)%3|0?m:j;if((j|0)==-1|J[s+(j>>>3&536870908)>>2]>>>j&1){break n}m=J[J[J[C+64>>2]+12>>2]+(j<<2)>>2];if((m|0)==-1){break n}j=m+1|0;h=(j>>>0)%3|0?j:m-2|0;break n}o:{if((h>>>0)%3|0){i=h-1|0;break o}i=h+2|0;h=-1;if((i|0)==-1){break n}}h=-1;if(J[s+(i>>>3&536870908)>>2]>>>i&1){break n}j=J[J[J[C+64>>2]+12>>2]+(i<<2)>>2];if((j|0)==-1){break n}if((j>>>0)%3|0){h=j-1|0;break n}h=j+2|0}if((h|0)==(l|0)){j=f;break k}if((h|0)==-1&u){if(!n){j=f;break k}if(r&J[q>>2]){j=f;break k}j=J[J[J[C+64>>2]+12>>2]+(A<<2)>>2];if((j|0)==-1){j=f;break k}u=0;h=(j>>>0)%3|0?j-1|0:j+2|0}j=f;if((h|0)!=-1){continue}break}}H[g+16|0]=0;J[g+8>>2]=0;J[g+12>>2]=0;J[g+44>>2]=0;J[g+36>>2]=0;J[g+40>>2]=0;J[g+28>>2]=0;J[g+32>>2]=0;J[g+20>>2]=0;J[g+24>>2]=0;w=P(e,z)<<2;I=w+b|0;q=(P(G-2|0,e)<<2)+b|0;l=J[D>>2];h=0;if(e){while(1){f=d<<2;m=J[f+q>>2]-J[f+I>>2]|0;J[f+t>>2]=m;J[f+l>>2]=(m|0)<0?(m^-1)<<1|1:m<<1;f=m>>31;h=((f^m)-f|0)+h|0;d=d+1|0;if((e|0)!=(d|0)){continue}break}}d=g+200|0;Db(d,Q,l,e);m=Cb(d);f=J[d+12>>2];d=J[d+16>>2];f=(((f-d|0)+1|0)/64|0)+d<<3;d=d<<3;n=f+d|0;f=(f>>31)+(d>>31)|0;k=ca+(d>>>0>n>>>0?f+1|0:f)|0;f=m+n|0;d=f>>>0>>0?k+1|0:k;A=(j|0)<=0;if(!A){k=(j<<3)-8|0;l=k+(g+48|0)|0;n=l;m=J[l>>2];l=J[l+4>>2];m=j+m|0;l=m>>>0>>0?l+1|0:l;J[n>>2]=m;J[n+4>>2]=l;y=W(Eb(m,J[k+(g+80|0)>>2])*(+(m>>>0)+ +(l|0)*4294967296));p:{if(R(y)<0x8000000000000000){m=~~y>>>0;l=R(y)>=1?~~(y>0?T(V(y*2.3283064365386963e-10),4294967295):W((y-+(~~y>>>0>>>0))*2.3283064365386963e-10))>>>0:0;break p}m=0;l=-2147483648}f=f+m|0;d=f}J[g+20>>2]=0;H[g+16|0]=0;J[g+8>>2]=f;J[g+12>>2]=h;tc(da,q,q+X|0);bb(aa,t,E);q:{r:{s:{if(A){break s}m=(g+124|0)+j|0;l=m-1|0;r=j<<3;d=r-8|0;x=d+(g+48|0)|0;q=d+(g+80|0)|0;u=1;L=0;while(1){d=g+124|0;pa(d,1,j);L=L+1|0;pa(d,0,L);t:{u:while(1){if(e){pa(J[g+128>>2],0,X)}p=0;o=J[g+128>>2];s=0;while(1){if(!K[(g+124|0)+p|0]){v:{if(!e){break v}n=J[(g+144|0)+P(p,12)>>2];f=0;i=0;v=0;if(e>>>0>3){while(1){k=i<<2;d=k+o|0;J[d>>2]=J[d>>2]+J[k+n>>2];h=k|4;d=h+o|0;J[d>>2]=J[d>>2]+J[h+n>>2];h=k|8;d=h+o|0;J[d>>2]=J[d>>2]+J[h+n>>2];h=k|12;d=h+o|0;J[d>>2]=J[d>>2]+J[h+n>>2];i=i+4|0;v=v+4|0;if((_|0)!=(v|0)){continue}break}}if(!U){break v}while(1){h=i<<2;d=h+o|0;J[d>>2]=J[d>>2]+J[h+n>>2];i=i+1|0;f=f+1|0;if((U|0)!=(f|0)){continue}break}}s=1<>2];w:{x:{y:{if(e){i=0;h=0;if(O){break y}break x}v=J[D>>2];f=0;break w}while(1){k=i<<2;f=k+d|0;J[f>>2]=J[f>>2]/(u|0);f=(k|4)+d|0;J[f>>2]=J[f>>2]/(u|0);i=i+2|0;h=h+2|0;if((M|0)!=(h|0)){continue}break}}if(N){d=(i<<2)+d|0;J[d>>2]=J[d>>2]/(u|0)}v=J[D>>2];d=J[g+128>>2];h=0;f=0;if(!e){break w}while(1){k=h<<2;n=J[k+d>>2]-J[k+I>>2]|0;J[k+t>>2]=n;J[k+v>>2]=(n|0)<0?(n^-1)<<1|1:n<<1;i=f;f=n>>31;f=i+((f^n)-f|0)|0;h=h+1|0;if((h|0)!=(e|0)){continue}break}}h=g+200|0;Db(h,Q,v,e);n=Cb(h);i=J[h+12>>2];h=J[h+16>>2];k=(((i-h|0)+1|0)/64|0)+h<<3;h=h<<3;o=k+h|0;h=n+o|0;k=J[x+4>>2];n=J[x>>2];y=W(Eb(n,J[q>>2]+u|0)*(+(n>>>0)+ +(k|0)*4294967296));z:{if(R(y)<0x8000000000000000){i=~~y>>>0;break z}i=0}k=i+h|0;h=J[g+8>>2];if(!((k|0)>=(h|0)&((h|0)<(k|0)|(f|0)>=J[g+12>>2]))){J[g+20>>2]=u;H[g+16|0]=s;J[g+8>>2]=k;J[g+12>>2]=f;s=J[g+132>>2];k=s-d|0;o=k>>2;h=J[g+32>>2];p=J[g+24>>2];A:{if(o>>>0<=h-p>>2>>>0){f=J[g+28>>2]-p|0;h=f+d|0;f=f>>2;n=f>>>0>>0?h:s;k=n-d|0;if((d|0)!=(n|0)){ta(p,d,k)}if(f>>>0>>0){i=J[g+28>>2];if((n|0)==(s|0)){break A}while(1){J[i>>2]=J[h>>2];i=i+4|0;h=h+4|0;if((s|0)!=(h|0)){continue}break}break A}i=k+p|0;break A}if(p){J[g+28>>2]=p;na(p);J[g+32>>2]=0;J[g+24>>2]=0;J[g+28>>2]=0;h=0}if((k|0)<0){break r}f=h>>>1|0;f=h>>>0>=2147483644?1073741823:f>>>0>o>>>0?f:o;if(f>>>0>=1073741824){break r}f=f<<2;i=oa(f);J[g+24>>2]=i;J[g+32>>2]=f+i;if((d|0)==(s|0)){break A}f=d;d=(k-4&-4)+4|0;i=ua(i,f,d)+d|0}J[g+28>>2]=i;h=J[g+44>>2];n=J[g+36>>2];B:{if(h-n>>2>>>0>=F>>>0){d=J[g+40>>2]-n|0;h=d+t|0;d=d>>2;k=d>>>0>>0?h:E;f=k-t|0;if((k|0)!=(t|0)){ta(n,t,f)}if(d>>>0>>0){i=J[g+40>>2];if((k|0)==(E|0)){break B}while(1){J[i>>2]=J[h>>2];i=i+4|0;h=h+4|0;if((E|0)!=(h|0)){continue}break}break B}i=f+n|0;break B}if(n){J[g+40>>2]=n;na(n);J[g+44>>2]=0;J[g+36>>2]=0;J[g+40>>2]=0;h=0}if((S|0)<0){break q}d=h>>>1|0;d=h>>>0>=2147483644?1073741823:d>>>0>F>>>0?d:F;if(d>>>0>=1073741824){break q}d=d<<2;i=oa(d);J[g+36>>2]=i;J[g+44>>2]=d+i;if((t|0)==(E|0)){break B}i=ua(i,t,Y)+Y|0}J[g+40>>2]=i}if((l|0)==(g+124|0)){break t}i=K[l|0];h=-1;while(1){f=i&255;d=h-1|0;k=d+m|0;i=K[k|0];if(f>>>0>i>>>0){d=m;while(1){d=d-1|0;f=K[d|0];if(f>>>0<=i>>>0){continue}break}H[k|0]=f;H[d|0]=i;if((h|0)==-1){continue u}i=h+m|0;h=l;while(1){d=K[i|0];H[i|0]=K[h|0];H[h|0]=d;i=i+1|0;h=h-1|0;if(i>>>0>>0){continue}break}continue u}h=d;if((k|0)!=(g+124|0)){continue}break}break}d=g+124|0;i=d;h=l;if(d>>>0>=h>>>0){break t}while(1){d=K[i|0];H[i|0]=K[h|0];H[h|0]=d;i=i+1|0;h=h-1|0;if(i>>>0>>0){continue}break}}u=u+1|0;if((j|0)!=(L|0)){continue}break}if((j|0)<=0){break s}d=J[g+20>>2];f=d;l=g+r|0;h=d+J[l+72>>2]|0;d=J[l+76>>2]+(d>>31)|0;J[l+72>>2]=h;J[l+76>>2]=f>>>0>h>>>0?d+1|0:d}if(!e){break i}l=J[D>>2];i=0;h=J[g+36>>2];v=0;if(!O){break j}while(1){d=i<<2;f=J[d+h>>2];J[d+l>>2]=(f|0)<0?(f^-1)<<1|1:f<<1;d=d|4;f=J[d+h>>2];J[d+l>>2]=(f|0)<0?(f^-1)<<1|1:f<<1;i=i+2|0;v=v+2|0;if((M|0)!=(v|0)){continue}break}break j}qa();B()}qa();B()}ra();B()}if(!N){break i}d=i<<2;f=J[d+h>>2];J[d+l>>2]=(f|0)<0?(f^-1)<<1|1:f<<1}Nc(g+200|0,Q,J[D>>2],e);C:{if(A){break C}l=P(j,12)+a|0;h=0;while(1){D:{k=J[l+40>>2];m=k<<5;d=J[l+36>>2];E:{if(!(K[g+16|0]>>>h&1)){f=d;F:{if((d|0)!=(m|0)){break F}if((d+1|0)<0){break D}G:{if(d>>>0<=1073741822){k=k<<6;m=(d&-32)+32|0;i=k>>>0>m>>>0?k:m;f=d;if(d>>>0>=i>>>0){break F}if((i|0)>=0){break G}break D}i=2147483647;f=-1;if(d>>>0>=2147483647){break F}}n=(i-1>>>5|0)+1|0;r=oa(n<<2);q=J[l+32>>2];J[r+((d>>>0>=33?d-1>>>5|0:0)<<2)>>2]=0;H:{I:{if(!d){break I}f=d>>>5|0;if(d>>>0>=32){ta(r,q,f<<2)}k=d&31;if(!k){break I}m=f<<2;f=m+r|0;i=f;o=J[f>>2];f=-1>>>32-k|0;J[i>>2]=o&(f^-1)|f&J[m+q>>2];J[l+32>>2]=r;J[l+36>>2]=d;J[l+40>>2]=n;break H}J[l+32>>2]=r;J[l+36>>2]=d;J[l+40>>2]=n;f=d;if(!q){break F}}na(q);f=J[l+36>>2]}J[l+36>>2]=f+1;d=J[l+32>>2]+(f>>>3&536870908)|0;J[d>>2]=J[d>>2]|1<>>0<=1073741822){k=k<<6;m=(d&-32)+32|0;i=k>>>0>m>>>0?k:m;f=d;if(d>>>0>=i>>>0){break J}if((i|0)<0){break D}break K}i=2147483647;f=-1;if(d>>>0>=2147483647){break J}}n=(i-1>>>5|0)+1|0;r=oa(n<<2);q=J[l+32>>2];J[r+((d>>>0>=33?d-1>>>5|0:0)<<2)>>2]=0;L:{M:{if(!d){break M}f=d>>>5|0;if(d>>>0>=32){ta(r,q,f<<2)}k=d&31;if(!k){break M}m=f<<2;f=m+r|0;i=f;o=J[f>>2];f=-1>>>32-k|0;J[i>>2]=o&(f^-1)|f&J[m+q>>2];J[l+32>>2]=r;J[l+36>>2]=d;J[l+40>>2]=n;break L}J[l+32>>2]=r;J[l+36>>2]=d;J[l+40>>2]=n;f=d;if(!q){break J}}na(q);f=J[l+36>>2]}J[l+36>>2]=f+1;m=J[l+32>>2]+(f>>>3&536870908)|0;d=J[m>>2];ea=m,fa=Ll(f)&d,J[ea>>2]=fa}h=h+1|0;if((j|0)!=(h|0)){continue}break C}break}qa();B()}d=J[g+24>>2];j=J[d>>2];f=J[d+4>>2];d=J[I+4>>2];J[g+232>>2]=J[I>>2];J[g+236>>2]=d;J[g+224>>2]=j;J[g+228>>2]=f;Ya(g+200|0,$,g+232|0,g+224|0);d=c+w|0;J[d>>2]=J[g+200>>2];J[d+4>>2]=J[g+204>>2];d=J[g+36>>2];if(d){J[g+40>>2]=d;na(d)}d=J[g+24>>2];if(d){J[g+28>>2]=d;na(d)}d=(G|0)>2;G=z;if(d){continue}break}break c}qa();B()}d=J[g+144>>2];if((e|0)>0){pa(d,0,e<<2)}f=J[d>>2];e=J[d+4>>2];d=J[b+4>>2];J[g+200>>2]=J[b>>2];J[g+204>>2]=d;J[g+232>>2]=f;J[g+236>>2]=e;Ya(g+8|0,a+8|0,g+200|0,g+232|0);J[c>>2]=J[g+8>>2];J[c+4>>2]=J[g+12>>2];if(t){na(t)}a=J[g+128>>2];if(a){J[g+132>>2]=a;na(a)}a=J[g+180>>2];if(a){J[g+184>>2]=a;na(a)}a=J[g+168>>2];if(a){J[g+172>>2]=a;na(a)}a=J[g+156>>2];if(a){J[g+160>>2]=a;na(a)}a=J[g+144>>2];if(a){J[g+148>>2]=a;na(a)}ba=g+240|0;return 1}function tk(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,C=0,D=0,E=0,F=0,G=0,I=0,L=0,M=0,N=0,O=0,Q=0,S=0,U=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,da=0,ea=0,fa=0;g=ba-240|0;ba=g;Y=J[a+36>>2];M=J[a+32>>2];J[g+184>>2]=0;J[g+188>>2]=0;J[g+176>>2]=0;J[g+180>>2]=0;J[g+168>>2]=0;J[g+172>>2]=0;J[g+160>>2]=0;J[g+164>>2]=0;J[g+152>>2]=0;J[g+156>>2]=0;J[g+144>>2]=0;J[g+148>>2]=0;if(e){Fa(g+144|0,e);h=J[g+156>>2];d=J[g+160>>2]}else{d=0}d=d-h>>2;a:{if(d>>>0>=e>>>0){if(d>>>0<=e>>>0){break a}J[g+160>>2]=(e<<2)+h;break a}Fa(g+144|12,e-d|0)}f=J[g+168>>2];d=J[g+172>>2]-f>>2;b:{if(d>>>0>=e>>>0){if(d>>>0<=e>>>0){break b}J[g+172>>2]=f+(e<<2);break b}Fa(g+168|0,e-d|0)}c:{d:{f=J[g+180>>2];d=J[g+184>>2]-f>>2;e:{f:{if(d>>>0>=e>>>0){if(d>>>0>e>>>0){J[g+184>>2]=f+(e<<2)}J[g+136>>2]=0;J[g+128>>2]=0;J[g+132>>2]=0;if(e){break f}d=1;break e}Fa(g+180|0,e-d|0);J[g+136>>2]=0;J[g+128>>2]=0;J[g+132>>2]=0}if(e>>>0>=1073741824){break d}d=e<<2;f=oa(d);J[g+128>>2]=f;i=d+f|0;J[g+136>>2]=i;pa(f,0,d);J[g+132>>2]=i;d=0}x=a+136|0;i=J[a+136>>2];f=J[a+140>>2]-i>>2;g:{h:{if(f>>>0>>0){Fa(x,e-f|0);J[g+104>>2]=0;J[g+108>>2]=0;J[g+96>>2]=0;J[g+100>>2]=0;J[g+88>>2]=0;J[g+92>>2]=0;J[g+80>>2]=0;J[g+84>>2]=0;J[g+72>>2]=0;J[g+76>>2]=0;d=g- -64|0;J[d>>2]=0;J[d+4>>2]=0;J[g+56>>2]=0;J[g+60>>2]=0;J[g+48>>2]=0;J[g+52>>2]=0;break h}if(e>>>0>>0){J[a+140>>2]=i+(e<<2)}J[g+104>>2]=0;J[g+108>>2]=0;J[g+96>>2]=0;J[g+100>>2]=0;J[g+88>>2]=0;J[g+92>>2]=0;J[g+80>>2]=0;J[g+84>>2]=0;J[g+72>>2]=0;J[g+76>>2]=0;f=g- -64|0;J[f>>2]=0;J[f+4>>2]=0;J[g+56>>2]=0;J[g+60>>2]=0;J[g+48>>2]=0;J[g+52>>2]=0;v=0;if(d){break g}}d=e<<2;r=oa(d);v=pa(r,0,d)+d|0}d=J[a+40>>2];d=J[d+4>>2]-J[d>>2]|0;if((d|0)<5){break c}E=e&-2;F=e&1;Z=e&-4;N=e&3;G=e-1|0;O=e<<2;_=a+8|0;I=a+96|0;D=d>>>2|0;L=v-r|0;z=L>>2;Q=(L-4&-4)+4|0;$=g+36|0;aa=g+24|0;while(1){d=J[a+40>>2];f=J[d>>2];i:{j:{w=D-1|0;if(w>>>0>2]-f>>2>>>0){d=0;k=0;l=J[f+(w<<2)>>2];k:{if((l|0)==-1){break k}j=J[M+12>>2];i=l+2|0;k=(l>>>0)%3|0;y=j+((k?l-1|0:i)<<2)|0;f=0;A=(k|0)!=0|(i|0)!=-1;p=1;i=l;while(1){k=J[j+(i<<2)>>2];l:{if((k|0)==-1){break l}m=J[Y>>2];n=J[M>>2];s=J[m+(J[n+(k<<2)>>2]<<2)>>2];h=k+1|0;h=(h>>>0)%3|0?h:k-2|0;if((h|0)!=-1){o=J[n+(h<<2)>>2]}else{o=-1}m:{n:{if((k>>>0)%3|0){h=k-1|0;break n}h=k+2|0;q=-1;if((h|0)==-1){break m}}q=J[n+(h<<2)>>2]}if((s|0)>=(w|0)){break l}h=J[(o<<2)+m>>2];if((h|0)>=(w|0)){break l}n=J[m+(q<<2)>>2];if((n|0)>=(w|0)){break l}k=J[(g+144|0)+P(f,12)>>2];o:{if(!e){break o}n=P(e,n);o=P(e,h);s=P(e,s);h=0;m=0;if(G){while(1){J[k+(h<<2)>>2]=(J[(h+n<<2)+b>>2]+J[(h+o<<2)+b>>2]|0)-J[(h+s<<2)+b>>2];q=h|1;J[k+(q<<2)>>2]=(J[(n+q<<2)+b>>2]+J[(o+q<<2)+b>>2]|0)-J[(q+s<<2)+b>>2];h=h+2|0;m=m+2|0;if((E|0)!=(m|0)){continue}break}}if(!F){break o}J[k+(h<<2)>>2]=(J[(h+n<<2)+b>>2]+J[(h+o<<2)+b>>2]|0)-J[(h+s<<2)+b>>2]}k=4;f=f+1|0;if((f|0)==4){break k}}p:{if(p&1){h=i+1|0;i=(h>>>0)%3|0?h:i-2|0;k=-1;if((i|0)==-1){break p}i=J[j+(i<<2)>>2];k=-1;if((i|0)==-1){break p}k=i+1|0;k=(k>>>0)%3|0?k:i-2|0;break p}q:{if((i>>>0)%3|0){h=i-1|0;break q}h=i+2|0;k=-1;if((h|0)==-1){break p}}i=J[j+(h<<2)>>2];k=-1;if((i|0)==-1){break p}k=i-1|0;if((i>>>0)%3|0){break p}k=i+2|0}i=k;if((l|0)==(i|0)){k=f;break k}if((i|0)==-1&p){if(!A){k=f;break k}i=J[y>>2];if((i|0)==-1){k=f;break k}p=0;i=(i>>>0)%3|0?i-1|0:i+2|0}k=f;if((i|0)!=-1){continue}break}}H[g+16|0]=0;J[g+8>>2]=0;J[g+12>>2]=0;J[g+44>>2]=0;J[g+36>>2]=0;J[g+40>>2]=0;J[g+28>>2]=0;J[g+32>>2]=0;J[g+20>>2]=0;J[g+24>>2]=0;S=P(e,w)<<2;s=S+b|0;l=(P(D-2|0,e)<<2)+b|0;j=J[x>>2];h=0;if(e){while(1){i=d<<2;f=J[i+l>>2]-J[i+s>>2]|0;J[i+r>>2]=f;J[i+j>>2]=(f|0)<0?(f^-1)<<1|1:f<<1;i=f;f=f>>31;h=((i^f)-f|0)+h|0;d=d+1|0;if((e|0)!=(d|0)){continue}break}}d=g+200|0;Db(d,I,j,e);f=Cb(d);i=J[d+12>>2];d=J[d+16>>2];i=(((i-d|0)+1|0)/64|0)+d<<3;n=d<<3;d=i+n|0;i=(i>>31)+(n>>31)|0;j=ca+(d>>>0>>0?i+1|0:i)|0;i=d;d=d+f|0;f=i>>>0>d>>>0?j+1|0:j;A=(k|0)<=0;if(!A){p=(k<<3)-8|0;i=p+(g+48|0)|0;n=i;j=J[i>>2];i=J[i+4>>2];j=j+k|0;i=j>>>0>>0?i+1|0:i;J[n>>2]=j;J[n+4>>2]=i;u=W(Eb(j,J[p+(g+80|0)>>2])*(+(j>>>0)+ +(i|0)*4294967296));r:{if(R(u)<0x8000000000000000){j=R(u)>=1?~~(u>0?T(V(u*2.3283064365386963e-10),4294967295):W((u-+(~~u>>>0>>>0))*2.3283064365386963e-10))>>>0:0;i=~~u>>>0;break r}j=-2147483648;i=0}d=d+i|0;f=d}J[g+20>>2]=0;H[g+16|0]=0;J[g+8>>2]=d;J[g+12>>2]=h;tc(aa,l,l+O|0);bb($,r,v);s:{t:{u:{if(A){break u}n=(g+124|0)+k|0;l=n-1|0;U=k<<3;d=U-8|0;X=d+(g+48|0)|0;da=d+(g+80|0)|0;p=1;y=0;while(1){d=g+124|0;pa(d,1,k);y=y+1|0;pa(d,0,y);v:{w:while(1){if(e){pa(J[g+128>>2],0,O)}m=0;d=J[g+128>>2];f=0;while(1){if(!K[(g+124|0)+m|0]){x:{if(!e){break x}o=J[(g+144|0)+P(m,12)>>2];i=0;h=0;j=0;if(e>>>0>3){while(1){q=h<<2;t=q+d|0;J[t>>2]=J[t>>2]+J[o+q>>2];t=q|4;C=t+d|0;J[C>>2]=J[C>>2]+J[o+t>>2];t=q|8;C=t+d|0;J[C>>2]=J[C>>2]+J[o+t>>2];q=q|12;t=q+d|0;J[t>>2]=J[t>>2]+J[o+q>>2];h=h+4|0;j=j+4|0;if((Z|0)!=(j|0)){continue}break}}if(!N){break x}while(1){j=h<<2;q=j+d|0;J[q>>2]=J[q>>2]+J[j+o>>2];h=h+1|0;i=i+1|0;if((N|0)!=(i|0)){continue}break}}f=1<>2];y:{z:{A:{if(e){h=0;i=0;if(G){break A}break z}j=J[x>>2];i=0;break y}while(1){j=h<<2;m=j+d|0;J[m>>2]=J[m>>2]/(p|0);j=(j|4)+d|0;J[j>>2]=J[j>>2]/(p|0);h=h+2|0;i=i+2|0;if((E|0)!=(i|0)){continue}break}}if(F){d=(h<<2)+d|0;J[d>>2]=J[d>>2]/(p|0)}j=J[x>>2];d=J[g+128>>2];h=0;i=0;if(!e){break y}while(1){o=h<<2;m=J[o+d>>2]-J[o+s>>2]|0;J[o+r>>2]=m;J[j+o>>2]=(m|0)<0?(m^-1)<<1|1:m<<1;o=i;i=m>>31;i=o+((i^m)-i|0)|0;h=h+1|0;if((h|0)!=(e|0)){continue}break}}h=g+200|0;Db(h,I,j,e);m=Cb(h);o=J[h+12>>2];h=J[h+16>>2];j=(((o-h|0)+1|0)/64|0)+h<<3;o=h<<3;h=j+o|0;h=h+m|0;m=J[X+4>>2];j=J[X>>2];u=W(Eb(j,J[da>>2]+p|0)*(+(j>>>0)+ +(m|0)*4294967296));B:{if(R(u)<0x8000000000000000){o=~~u>>>0;break B}o=0}h=o+h|0;j=J[g+8>>2];if(!((h|0)>=(j|0)&((h|0)>(j|0)|(i|0)>=J[g+12>>2]))){J[g+20>>2]=p;H[g+16|0]=f;J[g+8>>2]=h;J[g+12>>2]=i;j=J[g+132>>2];m=j-d|0;h=m>>2;i=J[g+32>>2];f=J[g+24>>2];C:{if(h>>>0<=i-f>>2>>>0){m=J[g+28>>2]-f|0;i=m+d|0;q=m>>2;m=q>>>0>>0?i:j;o=m-d|0;if((d|0)!=(m|0)){ta(f,d,o)}if(h>>>0>q>>>0){h=J[g+28>>2];if((j|0)==(m|0)){break C}while(1){J[h>>2]=J[i>>2];h=h+4|0;i=i+4|0;if((j|0)!=(i|0)){continue}break}break C}h=f+o|0;break C}if(f){J[g+28>>2]=f;na(f);J[g+32>>2]=0;J[g+24>>2]=0;J[g+28>>2]=0;i=0}if((m|0)<0){break t}f=i>>>1|0;f=i>>>0>=2147483644?1073741823:f>>>0>h>>>0?f:h;if(f>>>0>=1073741824){break t}f=f<<2;h=oa(f);J[g+24>>2]=h;J[g+32>>2]=f+h;if((d|0)==(j|0)){break C}f=d;d=(m-4&-4)+4|0;h=ua(h,f,d)+d|0}J[g+28>>2]=h;i=J[g+44>>2];d=J[g+36>>2];D:{if(i-d>>2>>>0>=z>>>0){f=J[g+40>>2]-d|0;i=f+r|0;j=f>>2;f=j>>>0>>0?i:v;h=f-r|0;if((f|0)!=(r|0)){ta(d,r,h)}if(j>>>0>>0){h=J[g+40>>2];if((f|0)==(v|0)){break D}while(1){J[h>>2]=J[i>>2];h=h+4|0;i=i+4|0;if((v|0)!=(i|0)){continue}break}break D}h=d+h|0;break D}if(d){J[g+40>>2]=d;na(d);J[g+44>>2]=0;J[g+36>>2]=0;J[g+40>>2]=0;i=0}if((L|0)<0){break s}d=i>>>1|0;d=i>>>0>=2147483644?1073741823:d>>>0>z>>>0?d:z;if(d>>>0>=1073741824){break s}d=d<<2;h=oa(d);J[g+36>>2]=h;J[g+44>>2]=d+h;if((r|0)==(v|0)){break D}h=ua(h,r,Q)+Q|0}J[g+40>>2]=h}if((l|0)==(g+124|0)){break v}h=K[l|0];i=-1;while(1){j=h&255;d=i-1|0;f=d+n|0;h=K[f|0];if(j>>>0>h>>>0){d=n;while(1){d=d-1|0;j=K[d|0];if(j>>>0<=h>>>0){continue}break}H[f|0]=j;H[d|0]=h;if((i|0)==-1){continue w}h=i+n|0;i=l;while(1){d=K[h|0];H[h|0]=K[i|0];H[i|0]=d;h=h+1|0;i=i-1|0;if(h>>>0>>0){continue}break}continue w}i=d;if((f|0)!=(g+124|0)){continue}break}break}d=g+124|0;h=d;i=l;if(d>>>0>=i>>>0){break v}while(1){d=K[h|0];H[h|0]=K[i|0];H[i|0]=d;h=h+1|0;i=i-1|0;if(h>>>0>>0){continue}break}}p=p+1|0;if((k|0)!=(y|0)){continue}break}if((k|0)<=0){break u}f=J[g+20>>2];l=f;d=g+U|0;i=f+J[d+72>>2]|0;f=J[d+76>>2]+(f>>31)|0;J[d+72>>2]=i;J[d+76>>2]=i>>>0>>0?f+1|0:f}if(!e){break i}d=J[x>>2];h=0;f=J[g+36>>2];j=0;if(!G){break j}while(1){l=h<<2;i=J[l+f>>2];J[d+l>>2]=(i|0)<0?(i^-1)<<1|1:i<<1;l=l|4;i=J[l+f>>2];J[d+l>>2]=(i|0)<0?(i^-1)<<1|1:i<<1;h=h+2|0;j=j+2|0;if((E|0)!=(j|0)){continue}break}break j}qa();B()}qa();B()}ra();B()}if(!F){break i}i=h<<2;f=J[i+f>>2];J[d+i>>2]=(f|0)<0?(f^-1)<<1|1:f<<1}Nc(g+200|0,I,J[x>>2],e);E:{if(A){break E}l=P(k,12)+a|0;i=0;while(1){F:{h=J[l+40>>2];j=h<<5;d=J[l+36>>2];G:{if(!(K[g+16|0]>>>i&1)){f=d;H:{if((d|0)!=(j|0)){break H}if((d+1|0)<0){break F}I:{if(d>>>0<=1073741822){h=h<<6;j=(d&-32)+32|0;h=h>>>0>j>>>0?h:j;f=d;if(d>>>0>=h>>>0){break H}if((h|0)>=0){break I}break F}h=2147483647;f=-1;if(d>>>0>=2147483647){break H}}j=(h-1>>>5|0)+1|0;f=oa(j<<2);h=J[l+32>>2];J[f+((d>>>0>=33?d-1>>>5|0:0)<<2)>>2]=0;J:{K:{if(!d){break K}n=d>>>5|0;if(d>>>0>=32){ta(f,h,n<<2)}p=d&31;if(!p){break K}n=n<<2;m=n+f|0;p=-1>>>32-p|0;J[m>>2]=J[m>>2]&(p^-1)|p&J[h+n>>2];J[l+32>>2]=f;J[l+36>>2]=d;J[l+40>>2]=j;break J}J[l+32>>2]=f;J[l+36>>2]=d;J[l+40>>2]=j;f=d;if(!h){break H}}na(h);f=J[l+36>>2]}J[l+36>>2]=f+1;d=J[l+32>>2]+(f>>>3&536870908)|0;J[d>>2]=J[d>>2]|1<>>0<=1073741822){h=h<<6;j=(d&-32)+32|0;h=h>>>0>j>>>0?h:j;f=d;if(d>>>0>=h>>>0){break L}if((h|0)<0){break F}break M}h=2147483647;f=-1;if(d>>>0>=2147483647){break L}}j=(h-1>>>5|0)+1|0;f=oa(j<<2);h=J[l+32>>2];J[f+((d>>>0>=33?d-1>>>5|0:0)<<2)>>2]=0;N:{O:{if(!d){break O}n=d>>>5|0;if(d>>>0>=32){ta(f,h,n<<2)}p=d&31;if(!p){break O}n=n<<2;m=n+f|0;p=-1>>>32-p|0;J[m>>2]=J[m>>2]&(p^-1)|p&J[h+n>>2];J[l+32>>2]=f;J[l+36>>2]=d;J[l+40>>2]=j;break N}J[l+32>>2]=f;J[l+36>>2]=d;J[l+40>>2]=j;f=d;if(!h){break L}}na(h);f=J[l+36>>2]}J[l+36>>2]=f+1;d=J[l+32>>2]+(f>>>3&536870908)|0;h=J[d>>2];ea=d,fa=Ll(f)&h,J[ea>>2]=fa}i=i+1|0;if((k|0)!=(i|0)){continue}break E}break}qa();B()}d=J[g+24>>2];f=J[d>>2];d=J[d+4>>2];i=J[s+4>>2];J[g+232>>2]=J[s>>2];J[g+236>>2]=i;J[g+224>>2]=f;J[g+228>>2]=d;Ya(g+200|0,_,g+232|0,g+224|0);d=c+S|0;J[d>>2]=J[g+200>>2];J[d+4>>2]=J[g+204>>2];d=J[g+36>>2];if(d){J[g+40>>2]=d;na(d)}d=J[g+24>>2];if(d){J[g+28>>2]=d;na(d)}d=(D|0)>2;D=w;if(d){continue}break}break c}qa();B()}d=J[g+144>>2];if((e|0)>0){pa(d,0,e<<2)}e=J[d>>2];d=J[d+4>>2];f=J[b+4>>2];J[g+200>>2]=J[b>>2];J[g+204>>2]=f;J[g+232>>2]=e;J[g+236>>2]=d;Ya(g+8|0,a+8|0,g+200|0,g+232|0);J[c>>2]=J[g+8>>2];J[c+4>>2]=J[g+12>>2];if(r){na(r)}a=J[g+128>>2];if(a){J[g+132>>2]=a;na(a)}a=J[g+180>>2];if(a){J[g+184>>2]=a;na(a)}a=J[g+168>>2];if(a){J[g+172>>2]=a;na(a)}a=J[g+156>>2];if(a){J[g+160>>2]=a;na(a)}a=J[g+144>>2];if(a){J[g+148>>2]=a;na(a)}ba=g+240|0;return 1}function Nj(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;i=ba-32|0;ba=i;c=J[b+8>>2];a:{b:{if(K[b+288|0]){c=jf(c);e=J[b+12>>2];J[b+12>>2]=c;if(e){break b}break a}c=kf(c);e=J[b+12>>2];J[b+12>>2]=c;if(!e){break a}}qc(e)}c=J[b+12>>2];c:{if(!(J[c+40>>2]!=((J[c+4>>2]-J[c>>2]>>2>>>0)/3|0)?c:0)){b=oa(32);H[b+29|0]=0;c=K[1828]|K[1829]<<8|(K[1830]<<16|K[1831]<<24);d=K[1824]|K[1825]<<8|(K[1826]<<16|K[1827]<<24);H[b+21|0]=d;H[b+22|0]=d>>>8;H[b+23|0]=d>>>16;H[b+24|0]=d>>>24;H[b+25|0]=c;H[b+26|0]=c>>>8;H[b+27|0]=c>>>16;H[b+28|0]=c>>>24;c=K[1823]|K[1824]<<8|(K[1825]<<16|K[1826]<<24);d=K[1819]|K[1820]<<8|(K[1821]<<16|K[1822]<<24);H[b+16|0]=d;H[b+17|0]=d>>>8;H[b+18|0]=d>>>16;H[b+19|0]=d>>>24;H[b+20|0]=c;H[b+21|0]=c>>>8;H[b+22|0]=c>>>16;H[b+23|0]=c>>>24;c=K[1815]|K[1816]<<8|(K[1817]<<16|K[1818]<<24);d=K[1811]|K[1812]<<8|(K[1813]<<16|K[1814]<<24);H[b+8|0]=d;H[b+9|0]=d>>>8;H[b+10|0]=d>>>16;H[b+11|0]=d>>>24;H[b+12|0]=c;H[b+13|0]=c>>>8;H[b+14|0]=c>>>16;H[b+15|0]=c>>>24;c=K[1807]|K[1808]<<8|(K[1809]<<16|K[1810]<<24);d=K[1803]|K[1804]<<8|(K[1805]<<16|K[1806]<<24);H[b|0]=d;H[b+1|0]=d>>>8;H[b+2|0]=d>>>16;H[b+3|0]=d>>>24;H[b+4|0]=c;H[b+5|0]=c>>>8;H[b+6|0]=c>>>16;H[b+7|0]=c>>>24;J[a>>2]=-1;Ga(a+4|0,b,29);na(b);break c}J[b+264>>2]=b;Aa((J[c+28>>2]-J[c+24>>2]>>2)-J[c+44>>2]|0,J[J[b+4>>2]+44>>2]);c=J[b+12>>2];Aa(((J[c+4>>2]-J[c>>2]>>2>>>0)/3|0)-J[c+40>>2]|0,J[J[b+4>>2]+44>>2]);c=J[b+8>>2];d=J[c+100>>2];c=J[c+96>>2];H[i+16|0]=0;o=b+28|0;j=(d-c|0)/12|0;c=i+16|0;Na(o,j,c);d=J[b+12>>2];e=J[d+28>>2];d=J[d+24>>2];J[i+16>>2]=-1;wb(b+52|0,e-d>>2,c);c=J[b+40>>2];J[b+44>>2]=c;d:{e:{f:{g:{h:{i:{j:{d=J[b+12>>2];e=J[d+4>>2]-J[d>>2]>>2;e=e-((e>>>0)%3|0)|0;k:{if(e>>>0<=J[b+48>>2]-c>>2>>>0){break k}if(e>>>0>=1073741824){break j}g=e<<2;e=oa(g);J[b+44>>2]=e;J[b+40>>2]=e;J[b+48>>2]=e+g;if(!c){break k}na(c);d=J[b+12>>2]}c=J[d+28>>2];d=J[d+24>>2];H[i+16|0]=0;Na(b+84|0,c-d>>2,i+16|0);J[b+164>>2]=-1;J[b+168>>2]=0;J[b+100>>2]=J[b+96>>2];J[b+112>>2]=J[b+108>>2];if(J[b+132>>2]){d=J[b+128>>2];if(d){while(1){c=J[d>>2];na(d);d=c;if(c){continue}break}}d=0;J[b+128>>2]=0;c=J[b+124>>2];l:{if(!c){break l}if(c>>>0>=4){k=c&-4;g=0;while(1){e=d<<2;J[e+J[b+120>>2]>>2]=0;J[J[b+120>>2]+(e|4)>>2]=0;J[J[b+120>>2]+(e|8)>>2]=0;J[J[b+120>>2]+(e|12)>>2]=0;d=d+4|0;g=g+4|0;if((k|0)!=(g|0)){continue}break}}c=c&3;if(!c){break l}e=0;while(1){J[J[b+120>>2]+(d<<2)>>2]=0;d=d+1|0;e=e+1|0;if((c|0)!=(e|0)){continue}break}}J[b+132>>2]=0}J[b+144>>2]=0;c=J[b+12>>2];d=J[c+28>>2];c=J[c+24>>2];J[i+16>>2]=-1;wb(b+152|0,d-c>>2,i+16|0);c=J[b+72>>2];J[b+76>>2]=c;s=b+72|0;d=J[b+12>>2];d=J[d+4>>2]-J[d>>2]|0;e=(d>>2>>>0)/3|0;m:{if(e>>>0<=J[b+80>>2]-c>>2>>>0){break m}if((d|0)<0){break i}e=e<<2;d=oa(e);J[b+76>>2]=d;J[b+72>>2]=d;J[b+80>>2]=d+e;if(!c){break m}na(c)}J[b- -64>>2]=0;if(!kg(b)){b=oa(32);H[b+29|0]=0;c=K[1768]|K[1769]<<8|(K[1770]<<16|K[1771]<<24);d=K[1764]|K[1765]<<8|(K[1766]<<16|K[1767]<<24);H[b+21|0]=d;H[b+22|0]=d>>>8;H[b+23|0]=d>>>16;H[b+24|0]=d>>>24;H[b+25|0]=c;H[b+26|0]=c>>>8;H[b+27|0]=c>>>16;H[b+28|0]=c>>>24;c=K[1763]|K[1764]<<8|(K[1765]<<16|K[1766]<<24);d=K[1759]|K[1760]<<8|(K[1761]<<16|K[1762]<<24);H[b+16|0]=d;H[b+17|0]=d>>>8;H[b+18|0]=d>>>16;H[b+19|0]=d>>>24;H[b+20|0]=c;H[b+21|0]=c>>>8;H[b+22|0]=c>>>16;H[b+23|0]=c>>>24;c=K[1755]|K[1756]<<8|(K[1757]<<16|K[1758]<<24);d=K[1751]|K[1752]<<8|(K[1753]<<16|K[1754]<<24);H[b+8|0]=d;H[b+9|0]=d>>>8;H[b+10|0]=d>>>16;H[b+11|0]=d>>>24;H[b+12|0]=c;H[b+13|0]=c>>>8;H[b+14|0]=c>>>16;H[b+15|0]=c>>>24;c=K[1747]|K[1748]<<8|(K[1749]<<16|K[1750]<<24);d=K[1743]|K[1744]<<8|(K[1745]<<16|K[1746]<<24);H[b|0]=d;H[b+1|0]=d>>>8;H[b+2|0]=d>>>16;H[b+3|0]=d>>>24;H[b+4|0]=c;H[b+5|0]=c>>>8;H[b+6|0]=c>>>16;H[b+7|0]=c>>>24;J[a>>2]=-1;Ga(a+4|0,b,29);na(b);break c}c=b;n:{if(K[b+288|0]){break n}b=J[c+8>>2];e=J[b+12>>2]-J[b+8>>2]|0;g=e>>2;d=g-1|0;b=J[c+176>>2];f=J[c+172>>2];k=(b-f|0)/136|0;o:{if(d>>>0>k>>>0){cg(c+172|0,d-k|0);break o}if(d>>>0>=k>>>0){break o}k=f+P(d,136)|0;if((k|0)!=(b|0)){while(1){d=b-136|0;f=J[d+116>>2];if(f){J[b-16>>2]=f;na(f)}f=J[b-32>>2];if(f){J[b-28>>2]=f;na(f)}pc(b-132|0);b=d;if((k|0)!=(b|0)){continue}break}}J[c+176>>2]=k}if((e|0)==4|(e|0)<=0){break n}k=(g|0)<=1?1:g;b=0;p:{while(1){f=J[J[J[c+8>>2]+8>>2]+(b<<2)>>2];if(J[f+56>>2]){h=P(n,136);d=h+J[c+172>>2]|0;J[d>>2]=b;e=J[d+104>>2];J[d+108>>2]=e;g=J[c+12>>2];g=J[g+4>>2]-J[g>>2]|0;j=g>>2;q:{if(j>>>0<=J[d+112>>2]-e>>2>>>0){break q}if((g|0)<0){break p}g=oa(g);J[d+108>>2]=g;J[d+104>>2]=g;J[d+112>>2]=g+(j<<2);if(!e){break q}na(e)}d=h+J[c+172>>2]|0;J[d+128>>2]=0;lf(d+4|0,J[c+8>>2],J[c+12>>2],f);n=n+1|0}b=b+1|0;if((k|0)!=(b|0)){continue}break}break n}qa();B()}b=(J[c+176>>2]-J[c+172>>2]|0)/136|0;H[i+31|0]=b;d=J[J[c+4>>2]+44>>2];e=J[d+20>>2];if(!J[d+16>>2]&(e|0)<=0|(e|0)<0){sa(d,J[d+4>>2],i+31|0,i+32|0);b=K[i+31|0]}J[c+284>>2]=b&255;b=J[c+12>>2];d=J[b>>2];b=J[b+4>>2];n=c+200|0;ig(n);g=0;J[i+24>>2]=0;J[i+16>>2]=0;J[i+20>>2]=0;k=0;b=b-d|0;if((b|0)>0){b=b>>>2|0;t=b>>>0<=1?1:b;d=0;while(1){b=(d>>>0)/3|0;p=b>>>5<<2;r=1<>2]+p>>2]){break r}if(Fc(J[c+12>>2],b)){break r}J[i+8>>2]=0;b=hg(c,b,i+8|0);Ca(n,b);f=J[i+8>>2];if(b){h=-1;e=-1;j=-1;s:{if((f|0)==-1){break s}l=J[J[c+12>>2]>>2];b=l+(f<<2)|0;h=f+1|0;h=(h>>>0)%3|0?h:f-2|0;if((h|0)!=-1){e=J[l+(h<<2)>>2]}h=J[b>>2];t:{if((f>>>0)%3|0){b=f-1|0;break t}b=f+2|0;j=-1;if((b|0)==-1){break s}}j=J[l+(b<<2)>>2]}b=J[c+84>>2];l=b+(h>>>3&536870908)|0;J[l>>2]=J[l>>2]|1<>>3&536870908)|0;J[h>>2]=J[h>>2]|1<>>3&536870908)|0;J[b>>2]=J[b>>2]|1<>2];h=J[c+104>>2];u:{if(b>>>0>>0){J[b>>2]=1;J[c+100>>2]=b+4;break u}j=b;b=J[c+96>>2];j=j-b|0;l=j>>2;e=l+1|0;if(e>>>0>=1073741824){break h}q=l<<2;h=h-b|0;l=h>>>1|0;e=h>>>0>=2147483644?1073741823:e>>>0>>0?l:e;if(e){if(e>>>0>=1073741824){break g}h=oa(e<<2)}else{h=0}l=q+h|0;J[l>>2]=1;q=e<<2;e=ta(h,b,j);J[c+104>>2]=q+e;J[c+100>>2]=l+4;J[c+96>>2]=e;if(!b){break u}na(b)}b=J[o>>2]+p|0;J[b>>2]=J[b>>2]|r;h=-1;if((f|0)!=-1){b=f+1|0;h=(b>>>0)%3|0?b:f-2|0}v:{if(g>>>0>>0){J[g>>2]=h;g=g+4|0;J[i+20>>2]=g;break v}e=g-k>>2;b=e+1|0;if(b>>>0>=1073741824){break f}j=m-k|0;m=j>>>1|0;b=j>>>0>=2147483644?1073741823:b>>>0>>0?m:b;if(b){if(b>>>0>=1073741824){break g}j=oa(b<<2)}else{j=0}e=j+(e<<2)|0;J[e>>2]=h;m=j+(b<<2)|0;b=e+4|0;if((g|0)!=(k|0)){while(1){e=e-4|0;g=g-4|0;J[e>>2]=J[g>>2];if((g|0)!=(k|0)){continue}break}}J[i+24>>2]=m;J[i+20>>2]=b;J[i+16>>2]=e;if(k){na(k)}k=e;g=b}if((f|0)==-1){break r}b=f+1|0;b=(b>>>0)%3|0?b:f-2|0;if((b|0)==-1){break r}b=J[J[J[c+12>>2]+12>>2]+(b<<2)>>2];if((b|0)==-1){break r}e=(b>>>0)/3|0;if(J[J[o>>2]+(e>>>3&268435452)>>2]>>>e&1){break r}if(gg(c,b)){break r}break e}if((f|0)!=-1){b=f+1|0;b=(b>>>0)%3|0?b:f-2|0}else{b=-1}Hc(c,b,1);if(!gg(c,J[i+8>>2])){break e}}d=d+1|0;if((t|0)!=(d|0)){continue}break}}d=J[c+72>>2];b=J[c+76>>2];w:{if((d|0)==(b|0)){break w}e=b-4|0;if(e>>>0<=d>>>0){break w}while(1){f=J[d>>2];J[d>>2]=J[e>>2];J[e>>2]=f;d=d+4|0;e=e-4|0;if(d>>>0>>0){continue}break}}fg(s,b,k,g);x:{if(J[c+172>>2]==J[c+176>>2]){break x}b=J[c+8>>2];d=J[b+100>>2];b=J[b+96>>2];H[i+8|0]=0;Na(o,(d-b|0)/12|0,i+8|0);d=J[c+72>>2];b=J[c+76>>2];if((d|0)==(b|0)){break x}while(1){eg(c,J[d>>2]);d=d+4|0;if((b|0)!=(d|0)){continue}break}}e=n;h=e+32|0;b=J[e+64>>2];b=J[(da[J[J[b>>2]+40>>2]](b)|0)+56>>2];Fd(h,P((J[b+100>>2]-J[b+96>>2]|0)/12|0,3),0,1);b=J[e+72>>2]-J[e+68>>2]|0;y:{if((b|0)<=0){break y}d=J[e+52>>2];if(!J[e+48>>2]&(d|0)<=0|(d|0)<0){break y}b=b>>>2|0;while(1){g=b;b=b-1|0;d=J[e+52>>2];z:{if(!J[e+48>>2]&(d|0)<=0|(d|0)<0){break z}o=J[J[e+68>>2]+(b<<2)>>2];if(!(171>>>o&1)){break z}j=J[(o<<2)+11152>>2];f=J[e+44>>2];d=J[f+4>>2];n=0;while(1){m=d>>>3|0;p=m+J[f>>2]|0;l=K[p|0];d=d&7;u=p,v=Ll(d)&l,H[u|0]=v;m=m+J[f>>2]|0;H[m|0]=K[m|0]|(o>>>n&1)<>2]+1|0;J[f+4>>2]=d;n=n+1|0;if((j|0)!=(n|0)){continue}break}}if((g|0)>1){continue}break}}Ed(h);b=c+232|0;ya(e,b);if(!(!J[c+280>>2]|J[c+284>>2]<=0)){d=0;while(1){ya(J[c+280>>2]+(d<<5)|0,b);d=d+1|0;if((d|0)>2]){continue}break}}Aa(J[c+272>>2]-J[c+268>>2]>>2,J[J[c+4>>2]+44>>2]);Aa(J[c+168>>2],J[J[c+4>>2]+44>>2]);if(!dg(c)){b=oa(32);H[b+28|0]=0;c=K[1909]|K[1910]<<8|(K[1911]<<16|K[1912]<<24);H[b+24|0]=c;H[b+25|0]=c>>>8;H[b+26|0]=c>>>16;H[b+27|0]=c>>>24;c=K[1905]|K[1906]<<8|(K[1907]<<16|K[1908]<<24);d=K[1901]|K[1902]<<8|(K[1903]<<16|K[1904]<<24);H[b+16|0]=d;H[b+17|0]=d>>>8;H[b+18|0]=d>>>16;H[b+19|0]=d>>>24;H[b+20|0]=c;H[b+21|0]=c>>>8;H[b+22|0]=c>>>16;H[b+23|0]=c>>>24;c=K[1897]|K[1898]<<8|(K[1899]<<16|K[1900]<<24);d=K[1893]|K[1894]<<8|(K[1895]<<16|K[1896]<<24);H[b+8|0]=d;H[b+9|0]=d>>>8;H[b+10|0]=d>>>16;H[b+11|0]=d>>>24;H[b+12|0]=c;H[b+13|0]=c>>>8;H[b+14|0]=c>>>16;H[b+15|0]=c>>>24;c=K[1889]|K[1890]<<8|(K[1891]<<16|K[1892]<<24);d=K[1885]|K[1886]<<8|(K[1887]<<16|K[1888]<<24);H[b|0]=d;H[b+1|0]=d>>>8;H[b+2|0]=d>>>16;H[b+3|0]=d>>>24;H[b+4|0]=c;H[b+5|0]=c>>>8;H[b+6|0]=c>>>16;H[b+7|0]=c>>>24;J[a>>2]=-1;Ga(a+4|0,b,28);na(b);break d}b=J[J[c+4>>2]+44>>2];d=J[b+20>>2];if(!J[b+16>>2]&(d|0)<=0|(d|0)<0){sa(b,J[b+4>>2],J[c+232>>2],J[c+236>>2])}J[a>>2]=0;J[a+4>>2]=0;J[a+8>>2]=0;J[a+12>>2]=0;break d}qa();B()}qa();B()}qa();B()}xa();B()}qa();B()}b=oa(48);H[b+32|0]=0;c=K[1703]|K[1704]<<8|(K[1705]<<16|K[1706]<<24);d=K[1699]|K[1700]<<8|(K[1701]<<16|K[1702]<<24);H[b+24|0]=d;H[b+25|0]=d>>>8;H[b+26|0]=d>>>16;H[b+27|0]=d>>>24;H[b+28|0]=c;H[b+29|0]=c>>>8;H[b+30|0]=c>>>16;H[b+31|0]=c>>>24;c=K[1695]|K[1696]<<8|(K[1697]<<16|K[1698]<<24);d=K[1691]|K[1692]<<8|(K[1693]<<16|K[1694]<<24);H[b+16|0]=d;H[b+17|0]=d>>>8;H[b+18|0]=d>>>16;H[b+19|0]=d>>>24;H[b+20|0]=c;H[b+21|0]=c>>>8;H[b+22|0]=c>>>16;H[b+23|0]=c>>>24;c=K[1687]|K[1688]<<8|(K[1689]<<16|K[1690]<<24);d=K[1683]|K[1684]<<8|(K[1685]<<16|K[1686]<<24);H[b+8|0]=d;H[b+9|0]=d>>>8;H[b+10|0]=d>>>16;H[b+11|0]=d>>>24;H[b+12|0]=c;H[b+13|0]=c>>>8;H[b+14|0]=c>>>16;H[b+15|0]=c>>>24;c=K[1679]|K[1680]<<8|(K[1681]<<16|K[1682]<<24);d=K[1675]|K[1676]<<8|(K[1677]<<16|K[1678]<<24);H[b|0]=d;H[b+1|0]=d>>>8;H[b+2|0]=d>>>16;H[b+3|0]=d>>>24;H[b+4|0]=c;H[b+5|0]=c>>>8;H[b+6|0]=c>>>16;H[b+7|0]=c>>>24;J[a>>2]=-1;Ga(a+4|0,b,32);na(b)}if(!k){break c}na(k)}ba=i+32|0}function lf(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;f=ba-16|0;ba=f;a:{b:{if(c){J[a+88>>2]=0;J[a+92>>2]=0;e=J[a+84>>2];J[a+84>>2]=0;if(e){na(e)}J[a+76>>2]=0;J[a+80>>2]=0;e=J[a+72>>2];J[a+72>>2]=0;if(e){na(e)}e=J[c>>2];g=J[c+4>>2];H[f+15|0]=0;Na(a,g-e>>2,f+15|0);e=J[c+28>>2];g=J[c+24>>2];H[f+14|0]=0;Na(a+12|0,e-g>>2,f+14|0);wb(a+28|0,J[c+4>>2]-J[c>>2]>>2,14948);g=J[c+28>>2]-J[c+24>>2]|0;h=g>>2;j=J[a+52>>2];c:{if(h>>>0<=J[a+60>>2]-j>>2>>>0){break c}if((g|0)<0){break a}e=J[a+56>>2];g=oa(g);h=g+(h<<2)|0;i=g+(e-j&-4)|0;g=i;if((e|0)!=(j|0)){while(1){g=g-4|0;e=e-4|0;J[g>>2]=J[e>>2];if((e|0)!=(j|0)){continue}break}}J[a+60>>2]=h;J[a+56>>2]=i;J[a+52>>2]=g;if(!j){break c}na(j)}g=J[c+28>>2]-J[c+24>>2]|0;h=g>>2;j=J[a+40>>2];d:{if(h>>>0<=J[a+48>>2]-j>>2>>>0){break d}if((g|0)<0){break a}e=J[a+44>>2];g=oa(g);h=g+(h<<2)|0;i=g+(e-j&-4)|0;g=i;if((e|0)!=(j|0)){while(1){g=g-4|0;e=e-4|0;J[g>>2]=J[e>>2];if((e|0)!=(j|0)){continue}break}}J[a+48>>2]=h;J[a+44>>2]=i;J[a+40>>2]=g;if(!j){break d}na(j)}H[a+24|0]=1;J[a+64>>2]=c}ba=f+16|0;c=(c|0)!=0;break b}if(c){J[a+88>>2]=0;J[a+92>>2]=0;c=J[a+84>>2];J[a+84>>2]=0;if(c){na(c)}J[a+76>>2]=0;J[a+80>>2]=0;c=J[a+72>>2];J[a+72>>2]=0;if(c){na(c)}h=J[a+64>>2];if(J[h+4>>2]!=J[h>>2]){c=0;while(1){m=(c>>>0)/3|0;f=Fc(h,m);h=J[a+64>>2];e:{if(f){break e}j=J[J[h+12>>2]+(c<<2)>>2];f:{g:{if((j|0)==-1){f=J[a>>2]+(c>>>3&536870908)|0;J[f>>2]=J[f>>2]|1<>>0)%3|0?f:c-2|0;if((f|0)!=-1){e=J[J[h>>2]+(f<<2)>>2]}f=J[a+12>>2];g=f+(e>>>3&536870908)|0;J[g>>2]=J[g>>2]|1<>>0)%3|0){e=c-1|0;break g}g=-1;e=c+2|0;if((e|0)!=-1){break g}break f}if(c>>>0>j>>>0){break e}e=-1;k=K[d+84|0];g=-1;l=c+1|0;n=c-2|0;i=(l>>>0)%3|0?l:n;if((i|0)>=0){f=(i>>>0)/3|0;g=J[(J[b+96>>2]+P(f,12)|0)+(i-P(f,3)<<2)>>2]}f=j+((j>>>0)%3|0?-1:2)|0;if((f|0)>=0){e=(f>>>0)/3|0;e=J[(J[b+96>>2]+P(e,12)|0)+(f-P(e,3)<<2)>>2]}if(!k){o=J[d+68>>2];e=J[o+(e<<2)>>2];g=J[(g<<2)+o>>2]}if((e|0)==(g|0)){e=-1;g=-1;if((i|0)!=-1){g=i+1|0;g=(g>>>0)%3|0?g:i-2|0}h:{if((f|0)==-1){break h}if((f>>>0)%3|0){e=f-1|0;break h}e=f+2|0}f=-1;i=-1;if((g|0)>=0){i=(g>>>0)/3|0;i=J[(J[b+96>>2]+P(i,12)|0)+(g-P(i,3)<<2)>>2]}if((e|0)>=0){f=(e>>>0)/3|0;f=J[(J[b+96>>2]+P(f,12)|0)+(e-P(f,3)<<2)>>2]}if(!k){e=J[d+68>>2];f=J[e+(f<<2)>>2];i=J[e+(i<<2)>>2]}if((f|0)==(i|0)){break e}}H[a+24|0]=0;f=J[a>>2];e=f+(c>>>3&536870908)|0;J[e>>2]=J[e>>2]|1<>>3&536870908)|0;J[f>>2]=J[f>>2]|1<>>0)%3|0?l:n;if((f|0)!=-1){i=J[J[h>>2]+(f<<2)>>2]}f=J[a+12>>2];e=f+(i>>>3&536870908)|0;J[e>>2]=J[e>>2]|1<>2]+(e<<2)>>2]}e=(g>>>3&536870908)+f|0;J[e>>2]=J[e>>2]|1<>>0)%3|0?e:j-2|0;if((e|0)!=-1){g=J[J[h>>2]+(e<<2)>>2]}e=(g>>>3&536870908)+f|0;J[e>>2]=J[e>>2]|1<>>0)%3|0){e=j-1|0;break g}g=-1;e=j+2|0;if((e|0)==-1){break f}}g=J[J[h>>2]+(e<<2)>>2]}f=(g>>>3&536870908)+f|0;J[f>>2]=J[f>>2]|1<>>0>2]-J[h>>2]>>2>>>0){continue}break}}if(!(!b|!d)){h=b;j=d;b=0;l=0;e=a;J[e+56>>2]=J[e+52>>2];J[e+44>>2]=J[e+40>>2];k:{d=J[e+64>>2];f=J[d+24>>2];if((f|0)==J[d+28>>2]){break k}l:{m:{while(1){a=b;b=J[(l<<2)+f>>2];n:{if((b|0)==-1){b=a;break n}if((b|0)<0){c=-1}else{c=(b>>>0)/3|0;c=J[(J[h+96>>2]+P(c,12)|0)+(b-P(c,3)<<2)>>2]}c=K[j+84|0]?c:J[J[j+68>>2]+(c<<2)>>2];d=J[e+56>>2];g=J[e+60>>2];o:{if(d>>>0>>0){J[d>>2]=c;J[e+56>>2]=d+4;break o}i=J[e+52>>2];m=d-i>>2;f=m+1|0;if(f>>>0>=1073741824){break a}g=g-i|0;k=g>>>1|0;k=g>>>0>=2147483644?1073741823:f>>>0>>0?k:f;if(k){if(k>>>0>=1073741824){break m}g=oa(k<<2)}else{g=0}f=g+(m<<2)|0;J[f>>2]=c;c=f+4|0;if((d|0)!=(i|0)){while(1){f=f-4|0;d=d-4|0;J[f>>2]=J[d>>2];if((d|0)!=(i|0)){continue}break}}J[e+60>>2]=g+(k<<2);J[e+56>>2]=c;J[e+52>>2]=f;if(!i){break o}na(i)}p:{q:{if(!(J[J[e+12>>2]+(l>>>3&536870908)>>2]>>>l&1)){break q}c=b+1|0;c=(c>>>0)%3|0?c:b-2|0;if((c|0)==-1|J[J[e>>2]+(c>>>3&536870908)>>2]>>>c&1){break q}c=J[J[J[e+64>>2]+12>>2]+(c<<2)>>2];if((c|0)==-1){break q}d=c+1|0;d=(d>>>0)%3|0?d:c-2|0;if((d|0)==-1){break q}g=J[e+64>>2];i=J[e>>2];while(1){c=d;d=-1;f=c+1|0;f=(f>>>0)%3|0?f:c-2|0;r:{if((f|0)==-1|J[i+(f>>>3&536870908)>>2]>>>f&1){break r}f=J[J[g+12>>2]+(f<<2)>>2];if((f|0)==-1){break r}d=f+1|0;d=(d>>>0)%3|0?d:f-2|0}if((b|0)!=(d|0)){if((d|0)==-1){break p}continue}break}break k}c=b}J[J[e+28>>2]+(c<<2)>>2]=a;d=J[e+44>>2];s:{if((d|0)!=J[e+48>>2]){J[d>>2]=c;J[e+44>>2]=d+4;break s}g=J[e+40>>2];b=d-g|0;k=b>>2;f=k+1|0;if(f>>>0>=1073741824){break l}i=b>>>1|0;i=b>>>0>=2147483644?1073741823:f>>>0>>0?i:f;if(i){if(i>>>0>=1073741824){break m}b=oa(i<<2)}else{b=0}f=b+(k<<2)|0;J[f>>2]=c;k=f+4|0;if((d|0)!=(g|0)){while(1){f=f-4|0;d=d-4|0;J[f>>2]=J[d>>2];if((d|0)!=(g|0)){continue}break}}J[e+48>>2]=b+(i<<2);J[e+44>>2]=k;J[e+40>>2]=f;if(!g){break s}na(g)}b=a+1|0;d=J[e+64>>2];if((c|0)==-1){break n}t:{if((c>>>0)%3|0){f=c-1|0;break t}f=c+2|0;if((f|0)==-1){break n}}f=J[J[d+12>>2]+(f<<2)>>2];if((f|0)==-1){break n}i=f+((f>>>0)%3|0?-1:2)|0;if((i|0)==-1|(c|0)==(i|0)){break n}while(1){d=i+1|0;d=(d>>>0)%3|0?d:i-2|0;if(J[J[e>>2]+(d>>>3&536870908)>>2]>>>d&1){g=(i|0)<0?-1:J[(J[h+96>>2]+P((i>>>0)/3|0,12)|0)+((i>>>0)%3<<2)>>2];g=K[j+84|0]?g:J[J[j+68>>2]+(g<<2)>>2];d=J[e+56>>2];f=J[e+60>>2];u:{if(d>>>0>>0){J[d>>2]=g;J[e+56>>2]=d+4;break u}k=J[e+52>>2];n=d-k>>2;a=n+1|0;if(a>>>0>=1073741824){break a}f=f-k|0;m=f>>>1|0;m=f>>>0>=2147483644?1073741823:a>>>0>>0?m:a;if(m){if(m>>>0>=1073741824){break m}a=oa(m<<2)}else{a=0}f=a+(n<<2)|0;J[f>>2]=g;g=f+4|0;if((d|0)!=(k|0)){while(1){f=f-4|0;d=d-4|0;J[f>>2]=J[d>>2];if((d|0)!=(k|0)){continue}break}}J[e+60>>2]=a+(m<<2);J[e+56>>2]=g;J[e+52>>2]=f;if(!k){break u}na(k)}g=b+1|0;d=J[e+44>>2];v:{if((d|0)!=J[e+48>>2]){J[d>>2]=i;J[e+44>>2]=d+4;break v}k=J[e+40>>2];a=d-k|0;n=a>>2;f=n+1|0;if(f>>>0>=1073741824){break l}m=a>>>1|0;m=a>>>0>=2147483644?1073741823:f>>>0>>0?m:f;if(m){if(m>>>0>=1073741824){break m}a=oa(m<<2)}else{a=0}f=a+(n<<2)|0;J[f>>2]=i;n=f+4|0;if((d|0)!=(k|0)){while(1){f=f-4|0;d=d-4|0;J[f>>2]=J[d>>2];if((d|0)!=(k|0)){continue}break}}J[e+48>>2]=a+(m<<2);J[e+44>>2]=n;J[e+40>>2]=f;if(!k){break v}na(k)}a=b;b=g}J[J[e+28>>2]+(i<<2)>>2]=a;d=J[e+64>>2];w:{if((i>>>0)%3|0){f=i-1|0;break w}f=i+2|0;if((f|0)==-1){break n}}f=J[J[d+12>>2]+(f<<2)>>2];if((f|0)==-1){break n}i=f+((f>>>0)%3|0?-1:2)|0;if((i|0)==-1){break n}if((c|0)!=(i|0)){continue}break}}l=l+1|0;f=J[d+24>>2];if(l>>>0>2]-f>>2>>>0){continue}break}break k}xa();B()}break a}return}b=0;f=0;e=a;J[e+56>>2]=J[e+52>>2];J[e+44>>2]=J[e+40>>2];x:{d=J[e+64>>2];h=J[d+24>>2];if((h|0)==J[d+28>>2]){break x}y:{z:{while(1){a=b;b=J[(f<<2)+h>>2];A:{if((b|0)==-1){b=a;break A}d=J[e+56>>2];B:{if((d|0)!=J[e+60>>2]){J[d>>2]=a;J[e+56>>2]=d+4;break B}g=J[e+52>>2];c=d-g|0;h=c>>2;j=h+1|0;if(j>>>0>=1073741824){break a}i=c>>>1|0;j=c>>>0>=2147483644?1073741823:i>>>0>j>>>0?i:j;if(j){if(j>>>0>=1073741824){break z}c=oa(j<<2)}else{c=0}h=c+(h<<2)|0;J[h>>2]=a;i=h+4|0;if((d|0)!=(g|0)){while(1){h=h-4|0;d=d-4|0;J[h>>2]=J[d>>2];if((d|0)!=(g|0)){continue}break}}J[e+60>>2]=c+(j<<2);J[e+56>>2]=i;J[e+52>>2]=h;if(!g){break B}na(g)}C:{D:{if(!(J[J[e+12>>2]+(f>>>3&536870908)>>2]>>>f&1)){break D}c=b+1|0;c=(c>>>0)%3|0?c:b-2|0;if((c|0)==-1|J[J[e>>2]+(c>>>3&536870908)>>2]>>>c&1){break D}c=J[J[J[e+64>>2]+12>>2]+(c<<2)>>2];if((c|0)==-1){break D}d=c+1|0;d=(d>>>0)%3|0?d:c-2|0;if((d|0)==-1){break D}j=J[e+64>>2];h=J[e>>2];while(1){c=d;d=-1;g=c+1|0;g=(g>>>0)%3|0?g:c-2|0;E:{if((g|0)==-1|J[h+(g>>>3&536870908)>>2]>>>g&1){break E}g=J[J[j+12>>2]+(g<<2)>>2];if((g|0)==-1){break E}d=g+1|0;d=(d>>>0)%3|0?d:g-2|0}if((b|0)!=(d|0)){if((d|0)==-1){break C}continue}break}break x}c=b}J[J[e+28>>2]+(c<<2)>>2]=a;d=J[e+44>>2];F:{if((d|0)!=J[e+48>>2]){J[d>>2]=c;J[e+44>>2]=d+4;break F}g=J[e+40>>2];b=d-g|0;h=b>>2;j=h+1|0;if(j>>>0>=1073741824){break y}i=b>>>1|0;j=b>>>0>=2147483644?1073741823:i>>>0>j>>>0?i:j;if(j){if(j>>>0>=1073741824){break z}b=oa(j<<2)}else{b=0}h=b+(h<<2)|0;J[h>>2]=c;i=h+4|0;if((d|0)!=(g|0)){while(1){h=h-4|0;d=d-4|0;J[h>>2]=J[d>>2];if((d|0)!=(g|0)){continue}break}}J[e+48>>2]=b+(j<<2);J[e+44>>2]=i;J[e+40>>2]=h;if(!g){break F}na(g)}b=a+1|0;d=J[e+64>>2];if((c|0)==-1){break A}G:{if((c>>>0)%3|0){h=c-1|0;break G}h=c+2|0;if((h|0)==-1){break A}}g=J[J[d+12>>2]+(h<<2)>>2];if((g|0)==-1){break A}g=g+((g>>>0)%3|0?-1:2)|0;if((g|0)==-1|(c|0)==(g|0)){break A}while(1){d=g+1|0;d=(d>>>0)%3|0?d:g-2|0;if(J[J[e>>2]+(d>>>3&536870908)>>2]>>>d&1){d=J[e+56>>2];H:{if((d|0)!=J[e+60>>2]){J[d>>2]=b;J[e+56>>2]=d+4;break H}j=J[e+52>>2];a=d-j|0;l=a>>2;h=l+1|0;if(h>>>0>=1073741824){break a}i=a>>>1|0;i=a>>>0>=2147483644?1073741823:i>>>0>h>>>0?i:h;if(i){if(i>>>0>=1073741824){break z}a=oa(i<<2)}else{a=0}h=a+(l<<2)|0;J[h>>2]=b;l=h+4|0;if((d|0)!=(j|0)){while(1){h=h-4|0;d=d-4|0;J[h>>2]=J[d>>2];if((d|0)!=(j|0)){continue}break}}J[e+60>>2]=a+(i<<2);J[e+56>>2]=l;J[e+52>>2]=h;if(!j){break H}na(j)}j=b+1|0;d=J[e+44>>2];I:{if((d|0)!=J[e+48>>2]){J[d>>2]=g;J[e+44>>2]=d+4;break I}i=J[e+40>>2];a=d-i|0;k=a>>2;h=k+1|0;if(h>>>0>=1073741824){break y}l=a>>>1|0;l=a>>>0>=2147483644?1073741823:h>>>0>>0?l:h;if(l){if(l>>>0>=1073741824){break z}a=oa(l<<2)}else{a=0}h=a+(k<<2)|0;J[h>>2]=g;k=h+4|0;if((d|0)!=(i|0)){while(1){h=h-4|0;d=d-4|0;J[h>>2]=J[d>>2];if((d|0)!=(i|0)){continue}break}}J[e+48>>2]=a+(l<<2);J[e+44>>2]=k;J[e+40>>2]=h;if(!i){break I}na(i)}a=b;b=j}J[J[e+28>>2]+(g<<2)>>2]=a;d=J[e+64>>2];J:{if((g>>>0)%3|0){h=g-1|0;break J}h=g+2|0;if((h|0)==-1){break A}}g=J[J[d+12>>2]+(h<<2)>>2];if((g|0)==-1){break A}g=g+((g>>>0)%3|0?-1:2)|0;if((g|0)==-1){break A}if((c|0)!=(g|0)){continue}break}}f=f+1|0;h=J[d+24>>2];if(f>>>0>2]-h>>2>>>0){continue}break}break x}xa();B()}break a}}return}qa();B()}function mf(a){var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,C=0;z=ba-16|0;ba=z;b=oa(88);J[b>>2]=0;J[b+4>>2]=0;J[b+56>>2]=0;J[b+48>>2]=0;J[b+52>>2]=0;J[b+40>>2]=0;J[b+44>>2]=0;J[b+32>>2]=0;J[b+36>>2]=0;J[b+24>>2]=0;J[b+28>>2]=0;J[b+16>>2]=0;J[b+20>>2]=0;J[b+8>>2]=0;J[b+12>>2]=0;c=b- -64|0;J[c>>2]=0;J[c+4>>2]=0;J[b+72>>2]=0;J[b+76>>2]=0;J[b+80>>2]=0;J[b+84>>2]=0;J[b+60>>2]=b;c=a;w=ba-16|0;ba=w;J[b+80>>2]=0;J[b+84>>2]=0;d=J[b+76>>2];a=b;J[b+76>>2]=0;if(d){na(d)}J[a+68>>2]=0;J[a+72>>2]=0;b=a- -64|0;d=J[b>>2];J[b>>2]=0;if(d){na(d)}f=J[c+4>>2];d=J[c>>2];b=(f-d|0)/12|0;l=P(b,3);i=J[a>>2];e=J[a+4>>2]-i>>2;a:{if(l>>>0>e>>>0){Ld(a,l-e|0);f=J[c+4>>2];d=J[c>>2];b=(f-d|0)/12|0;break a}if(e>>>0<=l>>>0){break a}J[a+4>>2]=i+(l<<2)}b:{if((d|0)==(f|0)){break b}f=b>>>0<=1?1:b;e=f&1;g=J[a>>2];c=0;if(b>>>0>=2){i=f&-2;b=0;while(1){j=P(c,12);f=j+g|0;l=d+j|0;J[f>>2]=J[l>>2];J[g+(j|4)>>2]=J[l+4>>2];J[f+8>>2]=J[l+8>>2];f=P(c|1,12);l=f+g|0;f=d+f|0;J[l>>2]=J[f>>2];J[l+4>>2]=J[f+4>>2];J[l+8>>2]=J[f+8>>2];c=c+2|0;b=b+2|0;if((i|0)!=(b|0)){continue}break}}if(!e){break b}c=P(c,12);b=c+g|0;c=c+d|0;J[b>>2]=J[c>>2];J[b+4>>2]=J[c+4>>2];J[b+8>>2]=J[c+8>>2]}J[w+12>>2]=-1;c=0;f=0;g=0;o=ba-32|0;ba=o;c:{s=w+12|0;d:{if(!s){break d}b=J[a+4>>2];j=J[a>>2];e=b-j|0;m=e>>2;d=J[a+12>>2];i=J[a+16>>2]-d>>2;e:{if(m>>>0>i>>>0){Ma(a+12|0,m-i|0,14880);b=J[a+4>>2];j=J[a>>2];e=b-j|0;m=e>>2;break e}if(i>>>0<=m>>>0){break e}J[a+16>>2]=d+(m<<2)}J[o+24>>2]=0;J[o+16>>2]=0;J[o+20>>2]=0;d=(b|0)==(j|0);if(!d){if((e|0)<0){break c}f=oa(e);J[o+20>>2]=f;J[o+16>>2]=f;J[o+24>>2]=(m<<2)+f}f:{g:{h:{i:{j:{if(e){while(1){d=J[(c<<2)+j>>2];e=J[o+20>>2]-f>>2;k:{if(d>>>0>>0){break k}J[o>>2]=0;i=d+1|0;if(i>>>0>e>>>0){jc(o+16|0,i-e|0,o);j=J[a>>2];b=J[a+4>>2];f=J[o+16>>2];break k}if(e>>>0<=i>>>0){break k}J[o+20>>2]=(i<<2)+f}d=(d<<2)+f|0;J[d>>2]=J[d>>2]+1;c=c+1|0;e=b-j|0;m=e>>2;if(c>>>0>>0){continue}break}break j}e=0;if(!d){break i}break h}if((b|0)==(j|0)){e=0;break h}if(e>>>0>=2147483645){break g}}e=oa(e<<1);pa(e,255,m<<3)}J[o+8>>2]=0;J[o>>2]=0;J[o+4>>2]=0;c=J[o+20>>2];b=c-f|0;y=b>>2;l:{m:{if((c|0)==(f|0)){break m}if((b|0)<0){break l}v=oa(b);J[o>>2]=v;J[o+8>>2]=(y<<2)+v;q=pa(v,0,b);J[o+4>>2]=q+b;b=y>>>0<=1?1:y;l=b&3;c=0;if(b-1>>>0>=3){i=b&-4;while(1){p=g<<2;J[p+q>>2]=c;b=p|4;c=J[f+p>>2]+c|0;J[b+q>>2]=c;d=p|8;c=c+J[b+f>>2]|0;J[d+q>>2]=c;b=p|12;c=c+J[d+f>>2]|0;J[b+q>>2]=c;c=c+J[b+f>>2]|0;g=g+4|0;h=h+4|0;if((i|0)!=(h|0)){continue}break}}if(!l){break m}while(1){b=g<<2;J[b+q>>2]=c;g=g+1|0;c=J[b+f>>2]+c|0;r=r+1|0;if((l|0)!=(r|0)){continue}break}}if(!m){break f}u=J[a+40>>2];k=J[a+12>>2];l=0;while(1){q=l<<2;d=q+j|0;r=-1;b=l+1|0;c=(b>>>0)%3|0?b:l-2|0;if((c|0)!=-1){r=J[(c<<2)+j>>2]}p=J[d>>2];n:{o:{if(!((l>>>0)%3|0)){h=-1;c=l+2|0;if((c|0)!=-1){h=J[(c<<2)+j>>2]}if(!((p|0)==(r|0)|(h|0)==(p|0))&(h|0)!=(r|0)){break o}u=u+1|0;J[a+40>>2]=u;b=l+3|0;break n}h=J[d-4>>2]}c=h<<2;t=J[c+f>>2];p:{q:{if((t|0)<=0){break q}c=J[c+v>>2];g=0;while(1){i=(c<<3)+e|0;d=J[i>>2];if((d|0)==-1){break q}r:{if((d|0)!=(r|0)){break r}n=J[i+4>>2];if((n|0)!=-1){d=J[(n<<2)+j>>2]}else{d=-1}if((d|0)==(p|0)){break r}while(1){s:{d=c;g=g+1|0;if((t|0)<=(g|0)){break s}c=d+1|0;p=(c<<3)+e|0;x=J[p>>2];i=(d<<3)+e|0;J[i+4>>2]=J[p+4>>2];J[i>>2]=x;if((x|0)!=-1){continue}}break}J[(d<<3)+e>>2]=-1;if((n|0)==-1){break q}J[k+q>>2]=n;J[k+(n<<2)>>2]=l;break p}c=c+1|0;g=g+1|0;if((t|0)!=(g|0)){continue}break}}c=r<<2;d=J[c+f>>2];if((d|0)<=0){break p}c=J[c+v>>2];g=0;while(1){i=(c<<3)+e|0;if(J[i>>2]==-1){J[i>>2]=h;J[i+4>>2]=l;break p}c=c+1|0;g=g+1|0;if((d|0)!=(g|0)){continue}break}}}l=b;if(l>>>0>>0){continue}break}break f}break c}ke(1313);B()}J[s>>2]=y;if(v){na(v)}if(e){na(e)}c=J[o+16>>2];if(!c){break d}J[o+20>>2]=c;na(c)}ba=o+32|0;x=(s|0)!=0;if(x){n=ba-32|0;ba=n;c=J[a>>2];g=J[a+4>>2];J[n+24>>2]=0;J[n+16>>2]=0;J[n+20>>2]=0;if((c|0)==(g|0)){b=g}else{c=g-c|0;if((c|0)<0){break c}d=c>>2;b=(d-1>>>5|0)+1|0;c=oa(b<<2);J[n+24>>2]=b;J[n+20>>2]=0;J[n+16>>2]=c;mc(n+16|0,d);g=J[a>>2];b=J[a+4>>2]}J[n+8>>2]=0;J[n>>2]=0;while(1){t:{k=0;m=0;if((b|0)==(g|0)){break t}while(1){e=J[n+16>>2];u:{if(J[e+(m>>>3&536870908)>>2]>>>m&1){break u}b=J[n>>2];J[n+4>>2]=b;f=J[a+12>>2];c=m;while(1){v:{d=c+1|0;i=c;c=(d>>>0)%3|0?d:c-2|0;if((c|0)==-1){break v}d=J[f+(c<<2)>>2];if((d|0)==-1){break v}c=d+1|0;c=(c>>>0)%3|0?c:d-2|0;if((m|0)==(c|0)|(c|0)==-1){break v}if(!(J[e+(c>>>3&536870908)>>2]>>>c&1)){continue}}break}j=i;w:{x:{y:{while(1){c=J[n+16>>2]+(j>>>3&536870908)|0;J[c>>2]=J[c>>2]|1<>>0)%3|0?c:j-2|0;g=J[a>>2];q=(j>>>0)%3|0;d=(q?-1:2)+j|0;l=J[n>>2];p=(l|0)==(b|0);z:{if(p){break z}t=J[(e<<2)+g>>2];s=J[a+12>>2];c=l;if((d|0)!=-1){f=s+(d<<2)|0;while(1){A:{if((t|0)!=J[c>>2]){break A}u=J[f>>2];h=J[c+4>>2];if((u|0)==(h|0)){break A}f=d;b=-1;c=-1;if((h|0)==-1){break w}break x}c=c+8|0;if((b|0)!=(c|0)){continue}break}break z}while(1){if((t|0)==J[c>>2]){u=-1;f=-1;h=J[c+4>>2];if((h|0)!=-1){break x}}c=c+8|0;if((b|0)!=(c|0)){continue}break}}g=J[(d<<2)+g>>2];B:{if(J[n+8>>2]!=(b|0)){J[b>>2]=g;J[b+4>>2]=e;b=b+8|0;J[n+4>>2]=b;break B}h=b-l|0;d=h>>3;f=d+1|0;if(f>>>0>=536870912){break c}c=h>>>2|0;h=h>>>0>=2147483640?536870911:c>>>0>f>>>0?c:f;if(h){if(h>>>0>=536870912){break y}f=oa(h<<3)}else{f=0}c=f+(d<<3)|0;J[c>>2]=g;J[c+4>>2]=e;d=c+8|0;if(!p){while(1){b=b-8|0;e=J[b+4>>2];c=c-8|0;J[c>>2]=J[b>>2];J[c+4>>2]=e;if((b|0)!=(l|0)){continue}break}b=J[n>>2]}J[n+8>>2]=f+(h<<3);J[n+4>>2]=d;J[n>>2]=c;if(b){na(b)}b=d}C:{D:{if(q){c=j-1|0;break D}c=j+2|0;if((c|0)==-1){break C}}c=J[J[a+12>>2]+(c<<2)>>2];if((c|0)==-1){break C}j=c+((c>>>0)%3|0?-1:2)|0;if((i|0)==(j|0)){break C}if((j|0)!=-1){continue}}break}g=J[a>>2];break u}xa();B()}b=J[s+(h<<2)>>2];d=f;c=h}if((u|0)!=-1){J[s+(u<<2)>>2]=-1}if((b|0)!=-1){J[s+(b<<2)>>2]=-1}J[s+(d<<2)>>2]=-1;J[s+(c<<2)>>2]=-1;k=1}m=m+1|0;b=J[a+4>>2];if(m>>>0>2>>>0){continue}break}if(k){continue}}break}c=J[n>>2];if(c){na(c)}c=J[n+16>>2];if(c){na(c)}ba=n+32|0;l=0;k=ba-32|0;ba=k;f=J[w+12>>2];J[a+36>>2]=f;t=a+24|0;c=J[a+24>>2];b=J[a+28>>2]-c>>2;E:{F:{if(b>>>0>>0){Ma(t,f-b|0,14880);J[k+24>>2]=0;J[k+16>>2]=0;J[k+20>>2]=0;break F}if(b>>>0>f>>>0){J[a+28>>2]=c+(f<<2)}J[k+24>>2]=0;J[k+16>>2]=0;J[k+20>>2]=0;if(!f){break E}}if((f|0)<0){break c}b=(f-1>>>5|0)+1|0;c=oa(b<<2);J[k+24>>2]=b;J[k+20>>2]=0;J[k+16>>2]=c;mc(k+16|0,f)}c=J[a>>2];d=J[a+4>>2];J[k+8>>2]=0;J[k>>2]=0;J[k+4>>2]=0;G:{if((c|0)==(d|0)){c=d}else{c=d-c|0;if((c|0)<0){break c}d=c>>2;b=(d-1>>>5|0)+1|0;c=oa(b<<2);J[k+8>>2]=b;J[k+4>>2]=0;J[k>>2]=c;mc(k,d);d=J[a>>2];c=J[a+4>>2]}if(c-d>>>0<12){break G}H:{while(1){q=P(l,3);e=(q<<2)+d|0;h=J[e>>2];b=-1;i=q+1|0;if((i|0)!=-1){b=J[(i<<2)+d>>2]}I:{if((b|0)==(h|0)){break I}i=J[e+8>>2];if((i|0)==(h|0)|(b|0)==(i|0)){break I}r=0;m=J[k>>2];while(1){i=q+r|0;if(!(J[(i>>>3&536870908)+m>>2]>>>i&1)){c=J[(i<<2)+d>>2];b=1<>2];d=c>>>5|0;m=J[e+(d<<2)>>2];p=b&m;if(p){b=J[a+28>>2];J:{if((b|0)!=J[a+32>>2]){J[b>>2]=-1;J[a+28>>2]=b+4;break J}g=J[t>>2];j=b-g|0;e=j>>2;h=e+1|0;if(h>>>0>=1073741824){break c}d=j>>>1|0;j=j>>>0>=2147483644?1073741823:d>>>0>h>>>0?d:h;if(j){if(j>>>0>=1073741824){break H}d=oa(j<<2)}else{d=0}e=d+(e<<2)|0;J[e>>2]=-1;h=e+4|0;if((b|0)!=(g|0)){while(1){e=e-4|0;b=b-4|0;J[e>>2]=J[b>>2];if((b|0)!=(g|0)){continue}break}}J[a+32>>2]=d+(j<<2);J[a+28>>2]=h;J[a+24>>2]=e;if(!g){break J}na(g)}b=J[a+52>>2];K:{if((b|0)!=J[a+56>>2]){J[b>>2]=c;J[a+52>>2]=b+4;break K}g=J[a+48>>2];j=b-g|0;e=j>>2;h=e+1|0;if(h>>>0>=1073741824){break c}d=j>>>1|0;h=j>>>0>=2147483644?1073741823:d>>>0>h>>>0?d:h;if(h){if(h>>>0>=1073741824){break H}d=oa(h<<2)}else{d=0}e=d+(e<<2)|0;J[e>>2]=c;c=e+4|0;if((b|0)!=(g|0)){while(1){e=e-4|0;b=b-4|0;J[e>>2]=J[b>>2];if((b|0)!=(g|0)){continue}break}}J[a+56>>2]=d+(h<<2);J[a+52>>2]=c;J[a+48>>2]=e;if(!g){break K}na(g)}b=J[k+20>>2];c=J[k+24>>2];if((b|0)==c<<5){if((b+1|0)<0){break c}e=k+16|0;if(b>>>0<=1073741822){d=c<<6;c=(b&-32)+32|0;c=c>>>0>>0?d:c}else{c=2147483647}wc(e,c);b=J[k+20>>2]}J[k+20>>2]=b+1;e=J[k+16>>2];d=e+(b>>>3&536870908)|0;c=J[d>>2];A=d,C=Ll(b)&c,J[A>>2]=C;b=1<>>5|0;m=J[(d<<2)+e>>2];c=f;f=c+1|0}J[(d<<2)+e>>2]=b|m;j=J[a+24>>2]+(c<<2)|0;g=J[a+12>>2];d=J[a>>2];m=J[k>>2];b=i;L:{M:{N:{while(1){if((b|0)==-1){break N}e=(b>>>3&536870908)+m|0;J[e>>2]=J[e>>2]|1<>2]=b;if(p){J[(b<<2)+d>>2]=c}h=b+1|0;b=(h>>>0)%3|0?h:b-2|0;e=-1;O:{if((b|0)==-1){break O}h=J[g+(b<<2)>>2];e=-1;if((h|0)==-1){break O}b=h+1|0;e=(b>>>0)%3|0?b:h-2|0}b=e;if((i|0)!=(b|0)){continue}break}if((i|0)!=-1){break L}b=1;break M}if((i>>>0)%3|0){b=i-1|0;break M}b=i+2|0;if((b|0)==-1){break L}}b=J[g+(b<<2)>>2];if((b|0)==-1){break L}P:{if((b>>>0)%3|0){b=b-1|0;break P}b=b+2|0;if((b|0)==-1){break L}}e=J[a+12>>2];d=J[a>>2];while(1){i=(b>>>3&536870908)+m|0;J[i>>2]=J[i>>2]|1<>2]=c}Q:{if((b>>>0)%3|0){b=b-1|0;break Q}b=b+2|0;if((b|0)==-1){break L}}b=J[e+(b<<2)>>2];if((b|0)==-1){break L}b=b+((b>>>0)%3|0?-1:2)|0;if((b|0)!=-1){continue}break}}}r=r+1|0;if((r|0)!=3){continue}break}d=J[a>>2];c=J[a+4>>2]}l=l+1|0;if(l>>>0<(c-d>>2>>>0)/3>>>0){continue}break}break G}xa();B()}b=0;J[a+44>>2]=0;c=J[k+16>>2];d=J[k+20>>2];if(d){i=d&31;f=(d>>>3&536870908)+c|0;e=c;m=0;while(1){if(!(J[e>>2]>>>b&1)){m=m+1|0;J[a+44>>2]=m}d=(b|0)==31;b=d?0:b+1|0;e=(d<<2)+e|0;if((f|0)!=(e|0)|(b|0)!=(i|0)){continue}break}}b=J[k>>2];if(b){na(b);c=J[k+16>>2]}if(c){na(c)}ba=k+32|0}ba=w+16|0;if(!x){J[z+8>>2]=0;qc(a);a=0}ba=z+16|0;return a}qa();B()}function nd(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;l=ba-16|0;ba=l;a:{b:{c:{d:{e:{f:{g:{h:{i:{if(a>>>0<=244){g=J[4849];h=a>>>0<11?16:a+11&-8;c=h>>>3|0;b=g>>>c|0;if(b&3){c=c+((b^-1)&1)|0;a=c<<3;b=a+19436|0;d=J[a+19444>>2];a=J[d+8>>2];j:{if((b|0)==(a|0)){m=19396,n=Ll(c)&g,J[m>>2]=n;break j}J[a+12>>2]=b;J[b+8>>2]=a}a=d+8|0;b=c<<3;J[d+4>>2]=b|3;b=b+d|0;J[b+4>>2]=J[b+4>>2]|1;break a}k=J[4851];if(k>>>0>=h>>>0){break i}if(b){a=2<>2];a=J[e+8>>2];k:{if((b|0)==(a|0)){g=Ll(d)&g;J[4849]=g;break k}J[a+12>>2]=b;J[b+8>>2]=a}J[e+4>>2]=h|3;c=e+h|0;a=d<<3;d=a-h|0;J[c+4>>2]=d|1;J[a+e>>2]=d;if(k){b=(k&-8)+19436|0;f=J[4854];a=1<<(k>>>3);l:{if(!(a&g)){J[4849]=a|g;a=b;break l}a=J[b+8>>2]}J[b+8>>2]=f;J[a+12>>2]=f;J[f+12>>2]=b;J[f+8>>2]=a}a=e+8|0;J[4854]=c;J[4851]=d;break a}j=J[4850];if(!j){break i}c=J[(Gl(0-j&j)<<2)+19700>>2];f=(J[c+4>>2]&-8)-h|0;b=c;while(1){m:{a=J[b+16>>2];if(!a){a=J[b+20>>2];if(!a){break m}}b=(J[a+4>>2]&-8)-h|0;d=b>>>0>>0;f=d?b:f;c=d?a:c;b=a;continue}break}i=J[c+24>>2];d=J[c+12>>2];if((d|0)!=(c|0)){a=J[c+8>>2];J[a+12>>2]=d;J[d+8>>2]=a;break b}b=c+20|0;a=J[b>>2];if(!a){a=J[c+16>>2];if(!a){break h}b=c+16|0}while(1){e=b;d=a;b=a+20|0;a=J[b>>2];if(a){continue}b=d+16|0;a=J[d+16>>2];if(a){continue}break}J[e>>2]=0;break b}h=-1;if(a>>>0>4294967231){break i}a=a+11|0;h=a&-8;j=J[4850];if(!j){break i}f=0-h|0;g=0;n:{if(h>>>0<256){break n}g=31;if(h>>>0>16777215){break n}a=S(a>>>8|0);g=((h>>>38-a&1)-(a<<1)|0)+62|0}b=J[(g<<2)+19700>>2];o:{p:{q:{if(!b){a=0;break q}a=0;c=h<<((g|0)!=31?25-(g>>>1|0)|0:0);while(1){r:{e=(J[b+4>>2]&-8)-h|0;if(e>>>0>=f>>>0){break r}d=b;f=e;if(e){break r}f=0;a=b;break p}e=J[b+20>>2];b=J[((c>>>29&4)+b|0)+16>>2];a=e?(e|0)==(b|0)?a:e:a;c=c<<1;if(b){continue}break}}if(!(a|d)){d=0;a=2<>2]}if(!a){break o}}while(1){b=(J[a+4>>2]&-8)-h|0;c=b>>>0>>0;f=c?b:f;d=c?a:d;b=J[a+16>>2];if(b){a=b}else{a=J[a+20>>2]}if(a){continue}break}}if(!d|J[4851]-h>>>0<=f>>>0){break i}g=J[d+24>>2];c=J[d+12>>2];if((d|0)!=(c|0)){a=J[d+8>>2];J[a+12>>2]=c;J[c+8>>2]=a;break c}b=d+20|0;a=J[b>>2];if(!a){a=J[d+16>>2];if(!a){break g}b=d+16|0}while(1){e=b;c=a;b=a+20|0;a=J[b>>2];if(a){continue}b=c+16|0;a=J[c+16>>2];if(a){continue}break}J[e>>2]=0;break c}a=J[4851];if(a>>>0>=h>>>0){d=J[4854];b=a-h|0;s:{if(b>>>0>=16){c=d+h|0;J[c+4>>2]=b|1;J[a+d>>2]=b;J[d+4>>2]=h|3;break s}J[d+4>>2]=a|3;a=a+d|0;J[a+4>>2]=J[a+4>>2]|1;c=0;b=0}J[4851]=b;J[4854]=c;a=d+8|0;break a}i=J[4852];if(i>>>0>h>>>0){b=i-h|0;J[4852]=b;c=J[4855];a=c+h|0;J[4855]=a;J[a+4>>2]=b|1;J[c+4>>2]=h|3;a=c+8|0;break a}a=0;j=h+47|0;if(J[4967]){c=J[4969]}else{J[4970]=-1;J[4971]=-1;J[4968]=4096;J[4969]=4096;J[4967]=l+12&-16^1431655768;J[4972]=0;J[4960]=0;c=4096}e=j+c|0;f=0-c|0;b=e&f;if(b>>>0<=h>>>0){break a}d=J[4959];if(d){c=J[4957];g=c+b|0;if(d>>>0>>0|c>>>0>=g>>>0){break a}}t:{if(!(K[19840]&4)){u:{v:{w:{x:{d=J[4855];if(d){a=19844;while(1){c=J[a>>2];if(c>>>0<=d>>>0&d>>>0>2]>>>0){break x}a=J[a+8>>2];if(a){continue}break}}c=Kb(0);if((c|0)==-1){break u}g=b;d=J[4968];a=d-1|0;if(a&c){g=(b-c|0)+(a+c&0-d)|0}if(g>>>0<=h>>>0){break u}d=J[4959];if(d){a=J[4957];f=a+g|0;if(d>>>0>>0|a>>>0>=f>>>0){break u}}a=Kb(g);if((c|0)!=(a|0)){break w}break t}g=f&e-i;c=Kb(g);if((c|0)==(J[a>>2]+J[a+4>>2]|0)){break v}a=c}if((a|0)==-1){break u}if(h+48>>>0<=g>>>0){c=a;break t}c=J[4969];c=c+(j-g|0)&0-c;if((Kb(c)|0)==-1){break u}g=c+g|0;c=a;break t}if((c|0)!=-1){break t}}J[4960]=J[4960]|4}c=Kb(b);a=Kb(0);if((c|0)==-1|(a|0)==-1|a>>>0<=c>>>0){break d}g=a-c|0;if(g>>>0<=h+40>>>0){break d}}a=J[4957]+g|0;J[4957]=a;if(a>>>0>M[4958]){J[4958]=a}y:{e=J[4855];if(e){a=19844;while(1){d=J[a>>2];b=J[a+4>>2];if((d+b|0)==(c|0)){break y}a=J[a+8>>2];if(a){continue}break}break f}a=J[4853];if(!(a>>>0<=c>>>0?a:0)){J[4853]=c}a=0;J[4962]=g;J[4961]=c;J[4857]=-1;J[4858]=J[4967];J[4964]=0;while(1){d=a<<3;b=d+19436|0;J[d+19444>>2]=b;J[d+19448>>2]=b;a=a+1|0;if((a|0)!=32){continue}break}d=g-40|0;a=c+8&7?-8-c&7:0;b=d-a|0;J[4852]=b;a=a+c|0;J[4855]=a;J[a+4>>2]=b|1;J[(c+d|0)+4>>2]=40;J[4856]=J[4971];break e}if(K[a+12|0]&8|d>>>0>e>>>0|c>>>0<=e>>>0){break f}J[a+4>>2]=b+g;a=e+8&7?-8-e&7:0;c=a+e|0;J[4855]=c;b=J[4852]+g|0;a=b-a|0;J[4852]=a;J[c+4>>2]=a|1;J[(b+e|0)+4>>2]=40;J[4856]=J[4971];break e}d=0;break b}c=0;break c}if(M[4853]>c>>>0){J[4853]=c}b=c+g|0;a=19844;z:{A:{B:{C:{D:{E:{while(1){if((b|0)!=J[a>>2]){a=J[a+8>>2];if(a){continue}break E}break}if(!(K[a+12|0]&8)){break D}}a=19844;while(1){b=J[a>>2];if(b>>>0<=e>>>0){f=b+J[a+4>>2]|0;if(f>>>0>e>>>0){break C}}a=J[a+8>>2];continue}}J[a>>2]=c;J[a+4>>2]=J[a+4>>2]+g;j=(c+8&7?-8-c&7:0)+c|0;J[j+4>>2]=h|3;g=b+(b+8&7?-8-b&7:0)|0;i=h+j|0;a=g-i|0;if((e|0)==(g|0)){J[4855]=i;a=J[4852]+a|0;J[4852]=a;J[i+4>>2]=a|1;break A}if(J[4854]==(g|0)){J[4854]=i;a=J[4851]+a|0;J[4851]=a;J[i+4>>2]=a|1;J[a+i>>2]=a;break A}f=J[g+4>>2];if((f&3)==1){e=f&-8;F:{if(f>>>0<=255){d=J[g+8>>2];b=f>>>3|0;c=J[g+12>>2];if((c|0)==(d|0)){m=19396,n=J[4849]&Ll(b),J[m>>2]=n;break F}J[d+12>>2]=c;J[c+8>>2]=d;break F}h=J[g+24>>2];c=J[g+12>>2];G:{if((g|0)!=(c|0)){b=J[g+8>>2];J[b+12>>2]=c;J[c+8>>2]=b;break G}H:{f=g+20|0;b=J[f>>2];if(b){break H}f=g+16|0;b=J[f>>2];if(b){break H}c=0;break G}while(1){d=f;c=b;f=c+20|0;b=J[f>>2];if(b){continue}f=c+16|0;b=J[c+16>>2];if(b){continue}break}J[d>>2]=0}if(!h){break F}d=J[g+28>>2];b=(d<<2)+19700|0;I:{if(J[b>>2]==(g|0)){J[b>>2]=c;if(c){break I}m=19400,n=J[4850]&Ll(d),J[m>>2]=n;break F}J[h+(J[h+16>>2]==(g|0)?16:20)>>2]=c;if(!c){break F}}J[c+24>>2]=h;b=J[g+16>>2];if(b){J[c+16>>2]=b;J[b+24>>2]=c}b=J[g+20>>2];if(!b){break F}J[c+20>>2]=b;J[b+24>>2]=c}g=e+g|0;f=J[g+4>>2];a=a+e|0}J[g+4>>2]=f&-2;J[i+4>>2]=a|1;J[a+i>>2]=a;if(a>>>0<=255){b=(a&-8)+19436|0;c=J[4849];a=1<<(a>>>3);J:{if(!(c&a)){J[4849]=a|c;a=b;break J}a=J[b+8>>2]}J[b+8>>2]=i;J[a+12>>2]=i;J[i+12>>2]=b;J[i+8>>2]=a;break A}f=31;if(a>>>0<=16777215){b=S(a>>>8|0);f=((a>>>38-b&1)-(b<<1)|0)+62|0}J[i+28>>2]=f;J[i+16>>2]=0;J[i+20>>2]=0;b=(f<<2)+19700|0;d=J[4850];c=1<>2]=i;break K}f=a<<((f|0)!=31?25-(f>>>1|0)|0:0);c=J[b>>2];while(1){b=c;if((J[c+4>>2]&-8)==(a|0)){break B}c=f>>>29|0;f=f<<1;d=(c&4)+b|0;c=J[d+16>>2];if(c){continue}break}J[d+16>>2]=i}J[i+24>>2]=b;J[i+12>>2]=i;J[i+8>>2]=i;break A}d=g-40|0;a=c+8&7?-8-c&7:0;b=d-a|0;J[4852]=b;a=a+c|0;J[4855]=a;J[a+4>>2]=b|1;J[(c+d|0)+4>>2]=40;J[4856]=J[4971];a=(f+(f-39&7?39-f&7:0)|0)-47|0;d=a>>>0>>0?e:a;J[d+4>>2]=27;a=J[4964];J[d+16>>2]=J[4963];J[d+20>>2]=a;a=J[4962];J[d+8>>2]=J[4961];J[d+12>>2]=a;J[4963]=d+8;J[4962]=g;J[4961]=c;J[4964]=0;a=d+24|0;while(1){J[a+4>>2]=7;b=a+8|0;a=a+4|0;if(b>>>0>>0){continue}break}if((d|0)==(e|0)){break e}J[d+4>>2]=J[d+4>>2]&-2;f=d-e|0;J[e+4>>2]=f|1;J[d>>2]=f;if(f>>>0<=255){b=(f&-8)+19436|0;c=J[4849];a=1<<(f>>>3);L:{if(!(c&a)){J[4849]=a|c;a=b;break L}a=J[b+8>>2]}J[b+8>>2]=e;J[a+12>>2]=e;J[e+12>>2]=b;J[e+8>>2]=a;break e}a=31;if(f>>>0<=16777215){a=S(f>>>8|0);a=((f>>>38-a&1)-(a<<1)|0)+62|0}J[e+28>>2]=a;J[e+16>>2]=0;J[e+20>>2]=0;b=(a<<2)+19700|0;d=J[4850];c=1<>2]=e;break M}a=f<<((a|0)!=31?25-(a>>>1|0)|0:0);d=J[b>>2];while(1){b=d;if((f|0)==(J[b+4>>2]&-8)){break z}c=a>>>29|0;a=a<<1;c=(c&4)+b|0;d=J[c+16>>2];if(d){continue}break}J[c+16>>2]=e}J[e+24>>2]=b;J[e+12>>2]=e;J[e+8>>2]=e;break e}a=J[b+8>>2];J[a+12>>2]=i;J[b+8>>2]=i;J[i+24>>2]=0;J[i+12>>2]=b;J[i+8>>2]=a}a=j+8|0;break a}a=J[b+8>>2];J[a+12>>2]=e;J[b+8>>2]=e;J[e+24>>2]=0;J[e+12>>2]=b;J[e+8>>2]=a}a=J[4852];if(a>>>0<=h>>>0){break d}b=a-h|0;J[4852]=b;c=J[4855];a=c+h|0;J[4855]=a;J[a+4>>2]=b|1;J[c+4>>2]=h|3;a=c+8|0;break a}J[4804]=48;a=0;break a}N:{if(!g){break N}b=J[d+28>>2];a=(b<<2)+19700|0;O:{if(J[a>>2]==(d|0)){J[a>>2]=c;if(c){break O}j=Ll(b)&j;J[4850]=j;break N}J[g+(J[g+16>>2]==(d|0)?16:20)>>2]=c;if(!c){break N}}J[c+24>>2]=g;a=J[d+16>>2];if(a){J[c+16>>2]=a;J[a+24>>2]=c}a=J[d+20>>2];if(!a){break N}J[c+20>>2]=a;J[a+24>>2]=c}P:{if(f>>>0<=15){a=f+h|0;J[d+4>>2]=a|3;a=a+d|0;J[a+4>>2]=J[a+4>>2]|1;break P}J[d+4>>2]=h|3;e=d+h|0;J[e+4>>2]=f|1;J[e+f>>2]=f;if(f>>>0<=255){b=(f&-8)+19436|0;c=J[4849];a=1<<(f>>>3);Q:{if(!(c&a)){J[4849]=a|c;a=b;break Q}a=J[b+8>>2]}J[b+8>>2]=e;J[a+12>>2]=e;J[e+12>>2]=b;J[e+8>>2]=a;break P}a=31;if(f>>>0<=16777215){a=S(f>>>8|0);a=((f>>>38-a&1)-(a<<1)|0)+62|0}J[e+28>>2]=a;J[e+16>>2]=0;J[e+20>>2]=0;b=(a<<2)+19700|0;R:{c=1<>2]=e;break S}a=f<<((a|0)!=31?25-(a>>>1|0)|0:0);h=J[b>>2];while(1){b=h;if((J[b+4>>2]&-8)==(f|0)){break R}c=a>>>29|0;a=a<<1;c=(c&4)+b|0;h=J[c+16>>2];if(h){continue}break}J[c+16>>2]=e}J[e+24>>2]=b;J[e+12>>2]=e;J[e+8>>2]=e;break P}a=J[b+8>>2];J[a+12>>2]=e;J[b+8>>2]=e;J[e+24>>2]=0;J[e+12>>2]=b;J[e+8>>2]=a}a=d+8|0;break a}T:{if(!i){break T}b=J[c+28>>2];a=(b<<2)+19700|0;U:{if(J[a>>2]==(c|0)){J[a>>2]=d;if(d){break U}m=19400,n=Ll(b)&j,J[m>>2]=n;break T}J[i+(J[i+16>>2]==(c|0)?16:20)>>2]=d;if(!d){break T}}J[d+24>>2]=i;a=J[c+16>>2];if(a){J[d+16>>2]=a;J[a+24>>2]=d}a=J[c+20>>2];if(!a){break T}J[d+20>>2]=a;J[a+24>>2]=d}V:{if(f>>>0<=15){a=f+h|0;J[c+4>>2]=a|3;a=a+c|0;J[a+4>>2]=J[a+4>>2]|1;break V}J[c+4>>2]=h|3;d=c+h|0;J[d+4>>2]=f|1;J[d+f>>2]=f;if(k){b=(k&-8)+19436|0;e=J[4854];a=1<<(k>>>3);W:{if(!(a&g)){J[4849]=a|g;a=b;break W}a=J[b+8>>2]}J[b+8>>2]=e;J[a+12>>2]=e;J[e+12>>2]=b;J[e+8>>2]=a}J[4854]=d;J[4851]=f}a=c+8|0}ba=l+16|0;return a|0}function Kh(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=Q(0);e=ba+-64|0;ba=e;c=J[a+4>>2];i=J[a+8>>2];a:{if((c|0)==(i|0)){J[a+72>>2]=0;b=1;break a}d=i-c>>2;m=d>>>0<=1?1:d;j=m&3;h=J[J[a+28>>2]+4>>2];d=J[h+8>>2];if(m-1>>>0>=3){m=m&-4;while(1){l=g;g=b<<2;g=(((l+K[J[d+(J[g+c>>2]<<2)>>2]+24|0]|0)+K[J[d+(J[(g|4)+c>>2]<<2)>>2]+24|0]|0)+K[J[d+(J[(g|8)+c>>2]<<2)>>2]+24|0]|0)+K[J[d+(J[(g|12)+c>>2]<<2)>>2]+24|0]|0;b=b+4|0;k=k+4|0;if((m|0)!=(k|0)){continue}break}}if(j){while(1){g=K[J[d+(J[(b<<2)+c>>2]<<2)>>2]+24|0]+g|0;b=b+1|0;f=f+1|0;if((j|0)!=(f|0)){continue}break}}o=J[h+80>>2];J[a+72>>2]=g;if((c|0)==(i|0)){b=1;break a}m=0;while(1){b=J[(m<<2)+c>>2];J[e+60>>2]=b;b:{c:{d:{e:{f:{c=J[a+28>>2];i=J[J[J[c+4>>2]+8>>2]+(b<<2)>>2];switch(J[i+28>>2]-1|0){case 0:case 2:case 4:break e;case 8:break f;default:break b}}J[e+36>>2]=-1;J[e+32>>2]=2032;J[e+48>>2]=0;J[e+52>>2]=0;J[e+40>>2]=0;J[e+44>>2]=0;g=J[c+48>>2];b=oa(32);J[e+16>>2]=b;J[e+20>>2]=17;J[e+24>>2]=-2147483616;H[b+16|0]=K[1261];c=K[1257]|K[1258]<<8|(K[1259]<<16|K[1260]<<24);d=K[1253]|K[1254]<<8|(K[1255]<<16|K[1256]<<24);H[b+8|0]=d;H[b+9|0]=d>>>8;H[b+10|0]=d>>>16;H[b+11|0]=d>>>24;H[b+12|0]=c;H[b+13|0]=c>>>8;H[b+14|0]=c>>>16;H[b+15|0]=c>>>24;c=K[1249]|K[1250]<<8|(K[1251]<<16|K[1252]<<24);d=K[1245]|K[1246]<<8|(K[1247]<<16|K[1248]<<24);H[b|0]=d;H[b+1|0]=d>>>8;H[b+2|0]=d>>>16;H[b+3|0]=d>>>24;H[b+4|0]=c;H[b+5|0]=c>>>8;H[b+6|0]=c>>>16;H[b+7|0]=c>>>24;H[b+17|0]=0;g=jb(g,e+60|0,e+16|0,-1);if(H[e+27|0]<0){na(J[e+16>>2])}g:{if((g|0)<=0){break g}j=J[J[a+28>>2]+48>>2];b=oa(32);J[e+16>>2]=b;J[e+20>>2]=19;J[e+24>>2]=-2147483616;d=0;c=K[1429]|K[1430]<<8|(K[1431]<<16|K[1432]<<24);H[b+15|0]=c;H[b+16|0]=c>>>8;H[b+17|0]=c>>>16;H[b+18|0]=c>>>24;c=K[1426]|K[1427]<<8|(K[1428]<<16|K[1429]<<24);f=K[1422]|K[1423]<<8|(K[1424]<<16|K[1425]<<24);H[b+8|0]=f;H[b+9|0]=f>>>8;H[b+10|0]=f>>>16;H[b+11|0]=f>>>24;H[b+12|0]=c;H[b+13|0]=c>>>8;H[b+14|0]=c>>>16;H[b+15|0]=c>>>24;c=K[1418]|K[1419]<<8|(K[1420]<<16|K[1421]<<24);f=K[1414]|K[1415]<<8|(K[1416]<<16|K[1417]<<24);H[b|0]=f;H[b+1|0]=f>>>8;H[b+2|0]=f>>>16;H[b+3|0]=f>>>24;H[b+4|0]=c;H[b+5|0]=c>>>8;H[b+6|0]=c>>>16;H[b+7|0]=c>>>24;H[b+19|0]=0;h:{if(!yc(j,e+60|0,e+16|0)){break h}f=J[J[a+28>>2]+48>>2];b=oa(32);J[e>>2]=b;J[e+4>>2]=18;J[e+8>>2]=-2147483616;c=K[1547]|K[1548]<<8;H[b+16|0]=c;H[b+17|0]=c>>>8;c=K[1543]|K[1544]<<8|(K[1545]<<16|K[1546]<<24);d=K[1539]|K[1540]<<8|(K[1541]<<16|K[1542]<<24);H[b+8|0]=d;H[b+9|0]=d>>>8;H[b+10|0]=d>>>16;H[b+11|0]=d>>>24;H[b+12|0]=c;H[b+13|0]=c>>>8;H[b+14|0]=c>>>16;H[b+15|0]=c>>>24;c=K[1535]|K[1536]<<8|(K[1537]<<16|K[1538]<<24);d=K[1531]|K[1532]<<8|(K[1533]<<16|K[1534]<<24);H[b|0]=d;H[b+1|0]=d>>>8;H[b+2|0]=d>>>16;H[b+3|0]=d>>>24;H[b+4|0]=c;H[b+5|0]=c>>>8;H[b+6|0]=c>>>16;H[b+7|0]=c>>>24;H[b+18|0]=0;d=yc(f,e+60|0,e);if(H[e+11|0]>=0){break h}na(J[e>>2])}if(H[e+27|0]<0){na(J[e+16>>2])}i:{if(d){b=K[i+24|0];j:{if(!b){d=0;break j}b=b<<2;d=oa(b);pa(d,0,b)}j=J[J[a+28>>2]+48>>2];b=oa(32);J[e+16>>2]=b;J[e+20>>2]=19;J[e+24>>2]=-2147483616;c=K[1429]|K[1430]<<8|(K[1431]<<16|K[1432]<<24);H[b+15|0]=c;H[b+16|0]=c>>>8;H[b+17|0]=c>>>16;H[b+18|0]=c>>>24;c=K[1426]|K[1427]<<8|(K[1428]<<16|K[1429]<<24);f=K[1422]|K[1423]<<8|(K[1424]<<16|K[1425]<<24);H[b+8|0]=f;H[b+9|0]=f>>>8;H[b+10|0]=f>>>16;H[b+11|0]=f>>>24;H[b+12|0]=c;H[b+13|0]=c>>>8;H[b+14|0]=c>>>16;H[b+15|0]=c>>>24;c=K[1418]|K[1419]<<8|(K[1420]<<16|K[1421]<<24);f=K[1414]|K[1415]<<8|(K[1416]<<16|K[1417]<<24);H[b|0]=f;H[b+1|0]=f>>>8;H[b+2|0]=f>>>16;H[b+3|0]=f>>>24;H[b+4|0]=c;H[b+5|0]=c>>>8;H[b+6|0]=c>>>16;H[b+7|0]=c>>>24;H[b+19|0]=0;De(j,e+60|0,e+16|0,K[i+24|0],d);if(H[e+27|0]<0){na(J[e+16>>2])}j=J[J[a+28>>2]+48>>2];b=oa(32);J[e+16>>2]=b;J[e+20>>2]=18;J[e+24>>2]=-2147483616;c=K[1547]|K[1548]<<8;H[b+16|0]=c;H[b+17|0]=c>>>8;c=K[1543]|K[1544]<<8|(K[1545]<<16|K[1546]<<24);f=K[1539]|K[1540]<<8|(K[1541]<<16|K[1542]<<24);H[b+8|0]=f;H[b+9|0]=f>>>8;H[b+10|0]=f>>>16;H[b+11|0]=f>>>24;H[b+12|0]=c;H[b+13|0]=c>>>8;H[b+14|0]=c>>>16;H[b+15|0]=c>>>24;c=K[1535]|K[1536]<<8|(K[1537]<<16|K[1538]<<24);f=K[1531]|K[1532]<<8|(K[1533]<<16|K[1534]<<24);H[b|0]=f;H[b+1|0]=f>>>8;H[b+2|0]=f>>>16;H[b+3|0]=f>>>24;H[b+4|0]=c;H[b+5|0]=c>>>8;H[b+6|0]=c>>>16;H[b+7|0]=c>>>24;H[b+18|0]=0;p=Ce(j,e+60|0,e+16|0);if(H[e+27|0]<0){na(J[e+16>>2])}ch(e+32|0,g,d,K[i+24|0],p);if(!d){break i}na(d);break i}if(!_g(e+32|0,i,g)){break g}}d=J[a+40>>2];k:{if((d|0)!=J[a+44>>2]){J[d>>2]=2032;b=J[e+36>>2];J[d+16>>2]=0;J[d+8>>2]=0;J[d+12>>2]=0;J[d+4>>2]=b;b=J[e+44>>2];c=J[e+40>>2];if((b|0)!=(c|0)){b=b-c|0;if((b|0)<0){break d}c=oa(b);J[d+12>>2]=c;J[d+8>>2]=c;J[d+16>>2]=(b&-4)+c;b=J[e+40>>2];g=J[e+44>>2];if((b|0)!=(g|0)){while(1){N[c>>2]=N[b>>2];c=c+4|0;b=b+4|0;if((g|0)!=(b|0)){continue}break}}J[d+12>>2]=c}N[d+20>>2]=N[e+52>>2];J[a+40>>2]=d+24;break k}f=0;l:{m:{n:{o:{b=J[a+40>>2];j=J[a+36>>2];d=(b-j|0)/24|0;c=d+1|0;if(c>>>0<178956971){g=(J[a+44>>2]-j|0)/24|0;h=g<<1;h=g>>>0>=89478485?178956970:c>>>0>>0?h:c;if(h){if(h>>>0>=178956971){break o}f=oa(P(h,24))}c=P(d,24)+f|0;J[c>>2]=2032;d=J[e+36>>2];J[c+16>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;J[c+4>>2]=d;g=J[e+40>>2];k=J[e+44>>2];if((g|0)!=(k|0)){l=k-g|0;if((l|0)<0){break n}d=oa(l);J[c+8>>2]=d;J[c+16>>2]=(l&-4)+d;while(1){N[d>>2]=N[g>>2];d=d+4|0;g=g+4|0;if((k|0)!=(g|0)){continue}break}J[c+12>>2]=d}d=P(h,24)+f|0;N[c+20>>2]=N[e+52>>2];g=c+24|0;if((b|0)==(j|0)){break m}while(1){c=c-24|0;J[c>>2]=2032;b=b-24|0;J[c+4>>2]=J[b+4>>2];J[c+8>>2]=J[b+8>>2];J[c+12>>2]=J[b+12>>2];J[c+16>>2]=J[b+16>>2];J[b+16>>2]=0;J[b+8>>2]=0;J[b+12>>2]=0;N[c+20>>2]=N[b+20>>2];if((b|0)!=(j|0)){continue}break}J[a+44>>2]=d;d=J[a+40>>2];J[a+40>>2]=g;b=J[a+36>>2];J[a+36>>2]=c;if((b|0)==(d|0)){break l}while(1){d=d-24|0;da[J[J[d>>2]>>2]](d)|0;if((b|0)!=(d|0)){continue}break}break l}qa();B()}xa();B()}qa();B()}J[a+44>>2]=d;J[a+40>>2]=g;J[a+36>>2]=c}if(b){na(b)}}b=e+32|0;c=Mc(b,i,o);J[e>>2]=c;J[e+24>>2]=0;J[e+16>>2]=0;J[e+20>>2]=0;je(b,i,e+16|0,c);b=J[e+16>>2];if(b){J[e+20>>2]=b;na(b)}b=J[a+64>>2];p:{if(b>>>0>2]){c=J[e>>2];J[e>>2]=0;J[b>>2]=c;J[a+64>>2]=b+4;break p}c=0;q:{r:{s:{d=J[a+60>>2];g=J[a+64>>2]-d>>2;b=g+1|0;if(b>>>0<1073741824){d=J[a+68>>2]-d|0;i=d>>>1|0;d=d>>>0>=2147483644?1073741823:b>>>0>>0?i:b;if(d){if(d>>>0>=1073741824){break s}c=oa(d<<2)}i=J[e>>2];J[e>>2]=0;b=(g<<2)+c|0;J[b>>2]=i;d=(d<<2)+c|0;g=b+4|0;c=J[a+64>>2];i=J[a+60>>2];if((c|0)==(i|0)){break r}while(1){c=c-4|0;f=J[c>>2];J[c>>2]=0;b=b-4|0;J[b>>2]=f;if((c|0)!=(i|0)){continue}break}J[a+68>>2]=d;d=J[a+64>>2];J[a+64>>2]=g;c=J[a+60>>2];J[a+60>>2]=b;if((c|0)==(d|0)){break q}while(1){d=d-4|0;b=J[d>>2];J[d>>2]=0;if(b){Ka(b)}if((c|0)!=(d|0)){continue}break}break q}qa();B()}xa();B()}J[a+68>>2]=d;J[a+64>>2]=g;J[a+60>>2]=b}if(c){na(c)}}b=J[e>>2];J[e>>2]=0;if(b){Ka(b)}J[e+32>>2]=2032;b=J[e+40>>2];if(!b){break b}J[e+44>>2]=b;na(b);break b}J[e+32>>2]=2032;a=J[e+40>>2];if(a){J[e+44>>2]=a;na(a)}b=0;break a}j=0;t:{u:{g=K[i+24|0];v:{if(!g){d=0;break v}b=0;f=g<<2;d=oa(f);c=d;h=g&7;if(h){while(1){J[c>>2]=2147483647;c=c+4|0;b=b+1|0;if((h|0)!=(b|0)){continue}break}}if((g-1&1073741823)>>>0>=7){b=d+f|0;while(1){J[c+24>>2]=2147483647;J[c+28>>2]=2147483647;J[c+16>>2]=2147483647;J[c+20>>2]=2147483647;J[c+8>>2]=2147483647;J[c+12>>2]=2147483647;J[c>>2]=2147483647;J[c+4>>2]=2147483647;c=c+32|0;if((b|0)!=(c|0)){continue}break}}b=K[i+24|0];if(b){break u}}g=0;b=0;break t}b=b<<2;g=oa(b);pa(g,0,b);b=K[i+24|0]}if(!J[i+80>>2]){break c}while(1){$c(i,j,b<<24>>24,g);b=K[i+24|0];w:{if(!b){break w}c=0;if((b|0)!=1){l=b&254;f=0;while(1){h=c<<2;k=h+d|0;n=J[g+h>>2];if((n|0)>2]){J[k>>2]=n}h=h|4;k=h+d|0;h=J[g+h>>2];if(J[k>>2]>(h|0)){J[k>>2]=h}c=c+2|0;f=f+2|0;if((l|0)!=(f|0)){continue}break}}if(!(b&1)){break w}c=c<<2;f=c+d|0;c=J[c+g>>2];if(J[f>>2]<=(c|0)){break w}J[f>>2]=c}j=j+1|0;if(j>>>0>2]){continue}break}break c}qa();B()}c=0;x:{if(!b){break x}y:{while(1){z:{k=(c<<2)+d|0;b=J[a+52>>2];A:{if((b|0)!=J[a+56>>2]){J[b>>2]=J[k>>2];J[a+52>>2]=b+4;break A}h=b;b=J[a+48>>2];f=h-b|0;l=f>>2;j=l+1|0;if(j>>>0>=1073741824){break z}h=f>>>1|0;j=f>>>0>=2147483644?1073741823:j>>>0>>0?h:j;if(j){if(j>>>0>=1073741824){break y}h=oa(j<<2)}else{h=0}l=h+(l<<2)|0;J[l>>2]=J[k>>2];f=ta(h,b,f);J[a+56>>2]=f+(j<<2);J[a+52>>2]=l+4;J[a+48>>2]=f;if(!b){break A}na(b)}c=c+1|0;if(c>>>0>2];if(m>>>0>2]-c>>2>>>0){continue}break}}ba=e- -64|0;return b|0}function ml(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;i=ba-48|0;ba=i;h=J[a+4>>2];e=J[a+12>>2];J[i+40>>2]=0;J[i+32>>2]=0;J[i+36>>2]=0;J[i+24>>2]=0;J[i+28>>2]=0;J[i+16>>2]=0;J[i+20>>2]=0;J[i+8>>2]=0;J[i+12>>2]=0;l=J[J[J[h+4>>2]+8>>2]+(e<<2)>>2];d=i+8|0;if((b|0)==-1){b=bh(e,h)}a:{if((b|0)==-2){break a}if((da[J[J[h>>2]+8>>2]](h)|0)==1){j=ba-32|0;ba=j;k=J[J[J[h+4>>2]+8>>2]+(e<<2)>>2];b:{c:{d:{if((da[J[J[h>>2]+8>>2]](h)|0)!=1|b-1>>>0>5){break d}f=da[J[J[h>>2]+52>>2]](h)|0;g=da[J[J[h>>2]+60>>2]](h,e)|0;if(!f|!g){break d}c=da[J[J[h>>2]+56>>2]](h,e)|0;if(c){a=J[h+56>>2];J[j+20>>2]=c;J[j+16>>2]=a;J[j+28>>2]=g;J[j+24>>2]=g+12;e=j+16|0;a=0;e:{f:{switch(b-1|0){case 0:b=oa(60);J[b+4>>2]=k;J[b>>2]=3456;a=J[d+4>>2];J[b+8>>2]=J[d>>2];J[b+12>>2]=a;a=J[d+12>>2];J[b+16>>2]=J[d+8>>2];J[b+20>>2]=a;a=J[d+20>>2];J[b+24>>2]=J[d+16>>2];J[b+28>>2]=a;J[b+40>>2]=0;J[b+32>>2]=0;J[b+36>>2]=0;a=J[d+24>>2];g=J[d+28>>2];if((a|0)!=(g|0)){f=g-a|0;if((f|0)<0){break c}c=oa(f);J[b+32>>2]=c;J[b+40>>2]=(f&-4)+c;while(1){J[c>>2]=J[a>>2];c=c+4|0;a=a+4|0;if((g|0)!=(a|0)){continue}break}J[b+36>>2]=c}a=J[e+4>>2];J[b+44>>2]=J[e>>2];J[b+48>>2]=a;a=J[e+12>>2];J[b+52>>2]=J[e+8>>2];J[b+56>>2]=a;J[b>>2]=2748;a=b;break e;case 3:b=oa(168);J[b+4>>2]=k;J[b>>2]=3456;a=J[d+4>>2];J[b+8>>2]=J[d>>2];J[b+12>>2]=a;a=J[d+12>>2];J[b+16>>2]=J[d+8>>2];J[b+20>>2]=a;a=J[d+20>>2];J[b+24>>2]=J[d+16>>2];J[b+28>>2]=a;J[b+40>>2]=0;J[b+32>>2]=0;J[b+36>>2]=0;a=J[d+24>>2];g=J[d+28>>2];if((a|0)!=(g|0)){f=g-a|0;if((f|0)<0){break c}c=oa(f);J[b+32>>2]=c;J[b+40>>2]=(f&-4)+c;while(1){J[c>>2]=J[a>>2];c=c+4|0;a=a+4|0;if((g|0)!=(a|0)){continue}break}J[b+36>>2]=c}a=J[e+4>>2];J[b+44>>2]=J[e>>2];J[b+48>>2]=a;a=b;b=J[e+12>>2];J[a+52>>2]=J[e+8>>2];J[a+56>>2]=b;J[a+60>>2]=0;J[a+64>>2]=0;J[a>>2]=3512;J[a+68>>2]=0;J[a+72>>2]=0;J[a+76>>2]=0;J[a+80>>2]=0;J[a+84>>2]=0;J[a+88>>2]=0;J[a+92>>2]=0;J[a+96>>2]=0;J[a+100>>2]=0;J[a+104>>2]=0;J[a+108>>2]=0;J[a+128>>2]=0;J[a+132>>2]=0;J[a+120>>2]=0;J[a+112>>2]=0;J[a+116>>2]=0;J[a+136>>2]=0;J[a+140>>2]=0;J[a+144>>2]=0;J[a+160>>2]=0;J[a+152>>2]=0;J[a+156>>2]=0;break e;case 4:b=oa(104);J[b+4>>2]=k;J[b>>2]=3456;a=J[d+4>>2];J[b+8>>2]=J[d>>2];J[b+12>>2]=a;a=J[d+12>>2];J[b+16>>2]=J[d+8>>2];J[b+20>>2]=a;a=J[d+20>>2];J[b+24>>2]=J[d+16>>2];J[b+28>>2]=a;J[b+40>>2]=0;J[b+32>>2]=0;J[b+36>>2]=0;a=J[d+24>>2];g=J[d+28>>2];if((a|0)!=(g|0)){f=g-a|0;if((f|0)<0){break c}c=oa(f);J[b+32>>2]=c;J[b+40>>2]=(f&-4)+c;while(1){J[c>>2]=J[a>>2];c=c+4|0;a=a+4|0;if((g|0)!=(a|0)){continue}break}J[b+36>>2]=c}a=J[e+4>>2];J[b+44>>2]=J[e>>2];J[b+48>>2]=a;a=J[e+12>>2];J[b+52>>2]=J[e+8>>2];J[b+56>>2]=a;J[b+84>>2]=0;J[b+76>>2]=0;J[b+80>>2]=0;J[b+60>>2]=0;J[b+64>>2]=0;J[b>>2]=3760;a=J[e+4>>2];J[b+88>>2]=J[e>>2];J[b+92>>2]=a;a=J[e+12>>2];J[b+96>>2]=J[e+8>>2];J[b+100>>2]=a;a=b;break e;case 5:break f;default:break e}}a=oa(144);J[a+4>>2]=k;J[a>>2]=3456;b=J[d+4>>2];J[a+8>>2]=J[d>>2];J[a+12>>2]=b;b=J[d+12>>2];J[a+16>>2]=J[d+8>>2];J[a+20>>2]=b;b=J[d+20>>2];J[a+24>>2]=J[d+16>>2];J[a+28>>2]=b;J[a+40>>2]=0;J[a+32>>2]=0;J[a+36>>2]=0;g:{h:{c=J[d+28>>2];b=J[d+24>>2];if((c|0)!=(b|0)){c=c-b|0;if((c|0)<0){break h}b=oa(c);J[a+36>>2]=b;J[a+32>>2]=b;J[a+40>>2]=(c&-4)+b;c=J[d+24>>2];f=J[d+28>>2];if((c|0)!=(f|0)){while(1){J[b>>2]=J[c>>2];b=b+4|0;c=c+4|0;if((f|0)!=(c|0)){continue}break}}J[a+36>>2]=b}J[a>>2]=3400;b=J[e+4>>2];J[a+44>>2]=J[e>>2];J[a+48>>2]=b;b=J[e+12>>2];J[a+52>>2]=J[e+8>>2];J[a+56>>2]=b;b=a- -64|0;J[b>>2]=0;J[b+4>>2]=0;J[a+60>>2]=4624;J[a>>2]=3996;b=J[e+4>>2];J[a+72>>2]=J[e>>2];J[a+76>>2]=b;b=J[e+12>>2];J[a+80>>2]=J[e+8>>2];J[a+84>>2]=b;J[a+104>>2]=1065353216;J[a+108>>2]=-1;J[a+96>>2]=-1;J[a+100>>2]=-1;J[a+88>>2]=1;J[a+92>>2]=-1;J[a+60>>2]=4232;J[a+112>>2]=0;J[a+116>>2]=0;J[a+136>>2]=0;J[a+140>>2]=0;J[a+128>>2]=0;J[a+132>>2]=0;J[a+120>>2]=0;J[a+124>>2]=0;break g}qa();B()}break e}c=a;break d}a=J[h+56>>2];J[j+20>>2]=f;J[j+16>>2]=a;J[j+28>>2]=g;J[j+24>>2]=g+12;e=j+16|0;a=0;i:{j:{switch(b-1|0){case 0:b=oa(60);J[b+4>>2]=k;J[b>>2]=3456;a=J[d+4>>2];J[b+8>>2]=J[d>>2];J[b+12>>2]=a;a=J[d+12>>2];J[b+16>>2]=J[d+8>>2];J[b+20>>2]=a;a=J[d+20>>2];J[b+24>>2]=J[d+16>>2];J[b+28>>2]=a;J[b+40>>2]=0;J[b+32>>2]=0;J[b+36>>2]=0;a=J[d+24>>2];g=J[d+28>>2];if((a|0)!=(g|0)){f=g-a|0;if((f|0)<0){break c}c=oa(f);J[b+32>>2]=c;J[b+40>>2]=(f&-4)+c;while(1){J[c>>2]=J[a>>2];c=c+4|0;a=a+4|0;if((g|0)!=(a|0)){continue}break}J[b+36>>2]=c}a=J[e+4>>2];J[b+44>>2]=J[e>>2];J[b+48>>2]=a;a=J[e+12>>2];J[b+52>>2]=J[e+8>>2];J[b+56>>2]=a;J[b>>2]=4652;a=b;break i;case 3:b=oa(168);J[b+4>>2]=k;J[b>>2]=3456;a=J[d+4>>2];J[b+8>>2]=J[d>>2];J[b+12>>2]=a;a=J[d+12>>2];J[b+16>>2]=J[d+8>>2];J[b+20>>2]=a;a=J[d+20>>2];J[b+24>>2]=J[d+16>>2];J[b+28>>2]=a;J[b+40>>2]=0;J[b+32>>2]=0;J[b+36>>2]=0;a=J[d+24>>2];g=J[d+28>>2];if((a|0)!=(g|0)){f=g-a|0;if((f|0)<0){break c}c=oa(f);J[b+32>>2]=c;J[b+40>>2]=(f&-4)+c;while(1){J[c>>2]=J[a>>2];c=c+4|0;a=a+4|0;if((g|0)!=(a|0)){continue}break}J[b+36>>2]=c}a=J[e+4>>2];J[b+44>>2]=J[e>>2];J[b+48>>2]=a;a=b;b=J[e+12>>2];J[a+52>>2]=J[e+8>>2];J[a+56>>2]=b;J[a+60>>2]=0;J[a+64>>2]=0;J[a>>2]=5076;J[a+68>>2]=0;J[a+72>>2]=0;J[a+76>>2]=0;J[a+80>>2]=0;J[a+84>>2]=0;J[a+88>>2]=0;J[a+92>>2]=0;J[a+96>>2]=0;J[a+100>>2]=0;J[a+104>>2]=0;J[a+108>>2]=0;J[a+128>>2]=0;J[a+132>>2]=0;J[a+120>>2]=0;J[a+112>>2]=0;J[a+116>>2]=0;J[a+136>>2]=0;J[a+140>>2]=0;J[a+144>>2]=0;J[a+160>>2]=0;J[a+152>>2]=0;J[a+156>>2]=0;break i;case 4:b=oa(104);J[b+4>>2]=k;J[b>>2]=3456;a=J[d+4>>2];J[b+8>>2]=J[d>>2];J[b+12>>2]=a;a=J[d+12>>2];J[b+16>>2]=J[d+8>>2];J[b+20>>2]=a;a=J[d+20>>2];J[b+24>>2]=J[d+16>>2];J[b+28>>2]=a;J[b+40>>2]=0;J[b+32>>2]=0;J[b+36>>2]=0;a=J[d+24>>2];g=J[d+28>>2];if((a|0)!=(g|0)){f=g-a|0;if((f|0)<0){break c}c=oa(f);J[b+32>>2]=c;J[b+40>>2]=(f&-4)+c;while(1){J[c>>2]=J[a>>2];c=c+4|0;a=a+4|0;if((g|0)!=(a|0)){continue}break}J[b+36>>2]=c}a=J[e+4>>2];J[b+44>>2]=J[e>>2];J[b+48>>2]=a;a=J[e+12>>2];J[b+52>>2]=J[e+8>>2];J[b+56>>2]=a;J[b+84>>2]=0;J[b+76>>2]=0;J[b+80>>2]=0;J[b+60>>2]=0;J[b+64>>2]=0;J[b>>2]=5312;a=J[e+4>>2];J[b+88>>2]=J[e>>2];J[b+92>>2]=a;a=J[e+12>>2];J[b+96>>2]=J[e+8>>2];J[b+100>>2]=a;a=b;break i;case 5:break j;default:break i}}a=oa(144);J[a+4>>2]=k;J[a>>2]=3456;b=J[d+4>>2];J[a+8>>2]=J[d>>2];J[a+12>>2]=b;b=J[d+12>>2];J[a+16>>2]=J[d+8>>2];J[a+20>>2]=b;b=J[d+20>>2];J[a+24>>2]=J[d+16>>2];J[a+28>>2]=b;J[a+40>>2]=0;J[a+32>>2]=0;J[a+36>>2]=0;k:{l:{c=J[d+28>>2];b=J[d+24>>2];if((c|0)!=(b|0)){c=c-b|0;if((c|0)<0){break l}b=oa(c);J[a+36>>2]=b;J[a+32>>2]=b;J[a+40>>2]=(c&-4)+b;c=J[d+24>>2];f=J[d+28>>2];if((c|0)!=(f|0)){while(1){J[b>>2]=J[c>>2];b=b+4|0;c=c+4|0;if((f|0)!=(c|0)){continue}break}}J[a+36>>2]=b}J[a>>2]=5020;b=J[e+4>>2];J[a+44>>2]=J[e>>2];J[a+48>>2]=b;b=J[e+12>>2];J[a+52>>2]=J[e+8>>2];J[a+56>>2]=b;b=a- -64|0;J[b>>2]=0;J[b+4>>2]=0;J[a+60>>2]=6120;J[a>>2]=5536;b=J[e+4>>2];J[a+72>>2]=J[e>>2];J[a+76>>2]=b;b=J[e+12>>2];J[a+80>>2]=J[e+8>>2];J[a+84>>2]=b;J[a+104>>2]=1065353216;J[a+108>>2]=-1;J[a+96>>2]=-1;J[a+100>>2]=-1;J[a+88>>2]=1;J[a+92>>2]=-1;J[a+60>>2]=5756;J[a+112>>2]=0;J[a+116>>2]=0;J[a+136>>2]=0;J[a+140>>2]=0;J[a+128>>2]=0;J[a+132>>2]=0;J[a+120>>2]=0;J[a+124>>2]=0;break k}qa();B()}break i}c=a}ba=j+32|0;break b}qa();B()}if(c){break a}}c=oa(44);J[c+4>>2]=l;J[c>>2]=3456;a=J[d+4>>2];J[c+8>>2]=J[d>>2];J[c+12>>2]=a;a=J[d+12>>2];J[c+16>>2]=J[d+8>>2];J[c+20>>2]=a;a=J[d+20>>2];J[c+24>>2]=J[d+16>>2];J[c+28>>2]=a;J[c+40>>2]=0;J[c+32>>2]=0;J[c+36>>2]=0;m:{a=J[d+24>>2];l=J[d+28>>2];if((a|0)!=(l|0)){f=l-a|0;if((f|0)<0){break m}b=oa(f);J[c+32>>2]=b;J[c+40>>2]=(f&-4)+b;while(1){J[b>>2]=J[a>>2];b=b+4|0;a=a+4|0;if((l|0)!=(a|0)){continue}break}J[c+36>>2]=b}J[c>>2]=6148;break a}qa();B()}a=J[i+32>>2];if(a){J[i+36>>2]=a;na(a)}ba=i+48|0;return c|0}function Ne(a,b,c,d,e,f,g,h,i){var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,K=0,L=0,N=0,O=0,P=0;k=ba-336|0;ba=k;n=h;p=i&65535;o=d;m=e&65535;u=(e^i)&-2147483648;s=i>>>16&32767;q=e>>>16&32767;a:{b:{if(s-32767>>>0>4294934529&q-32767>>>0>=4294934530){break b}j=e&2147483647;if(!(!d&(j|0)==2147418112?!(b|c):j>>>0<2147418112)){r=d;u=e|32768;break a}e=i&2147483647;if(!(!h&(e|0)==2147418112?!(f|g):e>>>0<2147418112)){r=h;u=i|32768;b=f;c=g;break a}if(!(b|d|(j^2147418112|c))){if(!(f|h|(e^2147418112|g))){b=0;c=0;u=2147450880;break a}u=u|2147418112;b=0;c=0;break a}if(!(f|h|(e^2147418112|g))){b=0;c=0;break a}if(!(b|d|(c|j))){b=!(f|h|(e|g));r=b?0:r;u=b?2147450880:u;b=0;c=0;break a}if(!(f|h|(e|g))){u=u|2147418112;b=0;c=0;break a}if((j|0)==65535|j>>>0<65535){d=!(m|o);i=d;j=d?b:o;d=d<<6;h=d;i=S(i?c:m);d=d+((i|0)==32?S(j)+32|0:i)|0;Pa(k+320|0,b,c,o,m,d-15|0);v=16-d|0;o=J[k+328>>2];m=J[k+332>>2];c=J[k+324>>2];b=J[k+320>>2]}if(e>>>0>65535){break b}d=!(n|p);h=d;i=d?f:n;d=d<<6;e=d;h=S(h?g:p);d=d+((h|0)==32?S(i)+32|0:h)|0;Pa(k+304|0,f,g,n,p,d-15|0);v=(d+v|0)-16|0;n=J[k+312>>2];p=J[k+316>>2];f=J[k+304>>2];g=J[k+308>>2]}e=p|65536;A=e;B=n;d=n;j=e<<15|d>>>17;e=d<<15|g>>>17;d=e;i=0-d|0;h=j;j=1963258675-(j+((d|0)!=0)|0)|0;Xa(k+288|0,d,h,0,0,i,j,0,0);d=J[k+296>>2];Xa(k+272|0,0-d|0,0-(J[k+300>>2]+((d|0)!=0)|0)|0,0,0,i,j,0,0);d=J[k+280>>2];i=d<<1|J[k+276>>2]>>>31;d=J[k+284>>2]<<1|d>>>31;Xa(k+256|0,i,d,0,0,e,h,0,0);j=J[k+264>>2];Xa(k+240|0,i,d,0,0,0-j|0,0-(J[k+268>>2]+((j|0)!=0)|0)|0,0,0);i=J[k+248>>2];j=i<<1|J[k+244>>2]>>>31;d=J[k+252>>2]<<1|i>>>31;Xa(k+224|0,j,d,0,0,e,h,0,0);i=J[k+232>>2];Xa(k+208|0,j,d,0,0,0-i|0,0-(J[k+236>>2]+((i|0)!=0)|0)|0,0,0);d=J[k+216>>2];i=d<<1|J[k+212>>2]>>>31;d=J[k+220>>2]<<1|d>>>31;Xa(k+192|0,i,d,0,0,e,h,0,0);j=J[k+200>>2];Xa(k+176|0,i,d,0,0,0-j|0,0-(J[k+204>>2]+((j|0)!=0)|0)|0,0,0);i=e;e=J[k+184>>2];d=h;n=e<<1|J[k+180>>2]>>>31;h=n-1|0;e=(J[k+188>>2]<<1|e>>>31)-!n|0;Xa(k+160|0,i,d,0,0,h,e,0,0);d=h;Xa(k+144|0,f<<15,g<<15|f>>>17,0,0,d,e,0,0);t=k+112|0;y=J[k+168>>2];h=J[k+172>>2];n=J[k+160>>2];i=J[k+152>>2];l=n+i|0;p=J[k+164>>2];j=p+J[k+156>>2]|0;j=i>>>0>l>>>0?j+1|0:j;i=j;j=(p|0)==(j|0)&l>>>0>>0|j>>>0

>>0;p=j+y|0;j=j>>>0>p>>>0?h+1|0:h;n=!i&l>>>0>1|(i|0)!=0;h=n+p|0;j=n>>>0>h>>>0?j+1|0:j;Xa(t,d,e,0,0,0-h|0,0-(((h|0)!=0)+j|0)|0,0,0);Xa(k+128|0,1-l|0,0-((l>>>0>1)+i|0)|0,0,0,d,e,0,0);H=(q-s|0)+v|0;e=J[k+116>>2];t=e;d=J[k+112>>2];j=e<<1|d>>>31;n=d<<1;q=j;d=j;h=J[k+140>>2];z=h;e=J[k+136>>2];j=h<<1|e>>>31;i=e<<1|J[k+132>>2]>>>31;h=i+n|0;d=d+j|0;d=h>>>0>>0?d+1|0:d;e=d;d=d-(h>>>0<13927)|0;x=d;y=d;l=0;j=m|65536;I=j;K=o;d=o;j=j<<1|d>>>31;N=d<<1;O=j;D=j;d=Hl(x,l,j,0);j=ca;E=d;w=j;v=b<<1;d=c<<1|b>>>31;s=d;j=0;p=j;i=h-13927|0;x=(e|0)==(x|0)&i>>>0>>0|e>>>0>x>>>0;e=(e|0)==(q|0)&h>>>0>>0|e>>>0>>0;d=J[k+120>>2];h=J[k+124>>2]<<1|d>>>31;d=d<<1|t>>>31;j=h;l=z>>>31|0;d=l+d|0;j=d>>>0>>0?j+1|0:j;h=d;d=d+e|0;l=h>>>0>d>>>0?j+1|0:j;e=d;d=d+x|0;l=e>>>0>d>>>0?l+1|0:l;e=d-1|0;x=l-!d|0;q=0;j=Hl(s,p,x,q);d=j+E|0;h=ca+w|0;h=d>>>0>>0?h+1|0:h;t=(w|0)==(h|0)&d>>>0>>0|h>>>0>>0;j=0;z=e;L=c>>>31|0;C=L|o<<1;w=0;e=Hl(e,j,C,w);o=e+d|0;j=ca+h|0;l=0;j=e>>>0>o>>>0?j+1|0:j;n=j;d=(j|0)==(h|0)&d>>>0>o>>>0|h>>>0>j>>>0;e=d;d=d+t|0;l=e>>>0>d>>>0?1:l;e=Hl(D,p,x,q);d=e+d|0;j=ca+l|0;t=d;d=d>>>0>>0?j+1|0:j;e=Hl(D,p,z,w);m=ca;h=e;e=Hl(C,w,x,q);l=h+e|0;j=ca+m|0;j=e>>>0>l>>>0?j+1|0:j;e=j;j=(m|0)==(j|0)&h>>>0>l>>>0|j>>>0>>0;m=t+e|0;d=d+j|0;d=m>>>0>>0?d+1|0:d;t=m;m=d;e=0;d=e+o|0;j=l+n|0;j=d>>>0>>0?j+1|0:j;e=j;h=(j|0)==(n|0)&d>>>0>>0|j>>>0>>0;j=m;l=h;h=h+t|0;j=l>>>0>h>>>0?j+1|0:j;F=h;l=j;t=d;m=d;o=e;E=i;d=Hl(i,0,C,w);h=ca;e=d;i=Hl(y,r,s,r);d=d+i|0;j=ca+h|0;j=d>>>0>>0?j+1|0:j;i=(h|0)==(j|0)&d>>>0>>0|h>>>0>j>>>0;h=j;G=v&-2;e=Hl(z,w,G,0);n=e+d|0;j=ca+j|0;j=e>>>0>n>>>0?j+1|0:j;e=j;d=(j|0)==(h|0)&d>>>0>n>>>0|h>>>0>j>>>0;h=0;i=d+i|0;d=(i>>>0>>0?1:h)+o|0;j=l;m=i+m|0;d=m>>>0>>0?d+1|0:d;i=d;d=(d|0)==(o|0)&m>>>0>>0|d>>>0>>0;h=d;d=d+F|0;j=h>>>0>d>>>0?j+1|0:j;P=d;t=j;d=Hl(D,p,E,r);F=ca;D=d;h=Hl(x,q,G,r);d=d+h|0;j=ca+F|0;o=d;p=Hl(y,r,C,w);l=d+p|0;h=d>>>0>>0?j+1|0:j;d=h+ca|0;d=l>>>0

>>0?d+1|0:d;q=l;j=Hl(s,r,z,w);p=l+j|0;l=ca+d|0;l=j>>>0>p>>>0?l+1|0:l;z=0;C=(d|0)==(l|0)&p>>>0>>0|d>>>0>l>>>0;j=(h|0)==(F|0)&o>>>0>>0|h>>>0>>0;d=(d|0)==(h|0)&o>>>0>q>>>0|d>>>0>>0;d=d+j|0;d=d+C|0;h=l;q=h+m|0;j=(d|z)+i|0;j=h>>>0>q>>>0?j+1|0:j;o=j;d=(i|0)==(j|0)&m>>>0>q>>>0|i>>>0>j>>>0;j=t;h=d;d=d+P|0;j=h>>>0>d>>>0?j+1|0:j;z=d;i=j;d=Hl(y,r,G,r);y=ca;m=d;h=Hl(s,r,E,r);d=d+h|0;j=ca+y|0;j=d>>>0>>0?j+1|0:j;t=0;h=(j|0)==(y|0)&d>>>0>>0|j>>>0>>0;m=j;d=j+n|0;j=(h|t)+e|0;j=d>>>0>>0?j+1|0:j;h=j;m=(e|0)==(j|0)&d>>>0>>0|e>>>0>j>>>0;j=p;p=0;n=p+d|0;l=h+j|0;j=0;l=n>>>0

>>0?l+1|0:l;d=(h|0)==(l|0)&d>>>0>n>>>0|h>>>0>l>>>0;e=d;d=d+m|0;j=(e>>>0>d>>>0?1:j)+o|0;l=i;e=d;d=d+q|0;j=e>>>0>d>>>0?j+1|0:j;e=j;h=(o|0)==(j|0)&d>>>0>>0|j>>>0>>0;i=h;h=h+z|0;l=i>>>0>h>>>0?l+1|0:l;i=l;c:{if((l|0)==131071|l>>>0<131071){K=N|L;I=w|O;Xa(k+80|0,d,e,h,i,f,g,B,A);l=J[k+84>>2];p=l;j=b<<17;n=0;m=J[k+88>>2];c=n-m|0;b=J[k+80>>2];l=(l|b)!=0;o=c-l|0;m=(j-(J[k+92>>2]+(m>>>0>n>>>0)|0)|0)-(c>>>0>>0)|0;n=0-b|0;p=0-(((b|0)!=0)+p|0)|0;b=H+16382|0;break c}d=(e&1)<<31|d>>>1;e=h<<31|e>>>1;h=(i&1)<<31|h>>>1;i=i>>>1|0;Xa(k+96|0,d,e,h,i,f,g,B,A);o=J[k+100>>2];s=o;v=J[k+104>>2];n=0-v|0;l=J[k+96>>2];m=(o|l)!=0;o=n-m|0;m=((b<<16)-(J[k+108>>2]+(p>>>0>>0)|0)|0)-(m>>>0>n>>>0)|0;n=0-l|0;p=0-(((l|0)!=0)+s|0)|0;v=b;s=c;b=H+16383|0}if((b|0)>=32767){u=u|2147418112;b=0;c=0;break a}d:{if((b|0)>0){l=m<<1|o>>>31;o=o<<1|p>>>31;m=l;v=h;s=i&65535|b<<16;l=p<<1|n>>>31;i=n<<1;break d}if((b|0)<=-113){b=0;c=0;break a}Gb(k- -64|0,d,e,h,i,1-b|0);Pa(k+48|0,v,s,K,I,b+112|0);d=J[k+64>>2];e=J[k+68>>2];v=J[k+72>>2];s=J[k+76>>2];Xa(k+32|0,f,g,B,A,d,e,v,s);b=J[k+40>>2];c=J[k+56>>2];l=J[k+36>>2];o=b<<1|l>>>31;n=c-o|0;m=J[k+60>>2]-((J[k+44>>2]<<1|b>>>31)+(c>>>0>>0)|0)|0;b=J[k+32>>2];h=l<<1|b>>>31;j=b<<1;i=J[k+52>>2];c=J[k+48>>2];b=(h|0)==(i|0)&j>>>0>c>>>0|h>>>0>i>>>0;o=n-b|0;m=m-(b>>>0>n>>>0)|0;l=i-((c>>>0>>0)+h|0)|0;i=c-j|0}b=i;Xa(k+16|0,f,g,B,A,3,0,0,0);Xa(k,f,g,B,A,5,0,0,0);c=0;h=l+c|0;j=d&1;b=b+j|0;h=i>>>0>b>>>0?h+1|0:h;i=b;g=(g|0)==(h|0)&b>>>0>f>>>0|g>>>0>>0;l=m;b=(c|0)==(h|0)&b>>>0>>0|c>>>0>h>>>0;f=b+o|0;l=b>>>0>f>>>0?l+1|0:l;j=e;b=(l|0)==(A|0);b=b&(f|0)==(B|0)?g:b&f>>>0>B>>>0|l>>>0>A>>>0;c=b;b=b+d|0;j=c>>>0>b>>>0?j+1|0:j;c=j;d=(e|0)==(j|0)&b>>>0>>0|e>>>0>j>>>0;j=s;e=d;d=d+v|0;j=e>>>0>d>>>0?j+1|0:j;g=d;e=J[k+20>>2];m=(e|0)==(h|0)&M[k+16>>2]>>0|e>>>0>>0;e=J[k+28>>2];d=J[k+24>>2];e=j>>>0<2147418112&((d|0)==(f|0)&(e|0)==(l|0)?m:(e|0)==(l|0)&d>>>0>>0|e>>>0>>0);d=c;m=e;e=b+e|0;d=m>>>0>e>>>0?d+1|0:d;b=(c|0)==(d|0)&b>>>0>e>>>0|c>>>0>d>>>0;c=b;b=b+g|0;j=c>>>0>b>>>0?j+1|0:j;g=b;c=J[k+4>>2];h=(c|0)==(h|0)&M[k>>2]>>0|c>>>0>>0;c=J[k+12>>2];b=J[k+8>>2];b=j>>>0<2147418112&((b|0)==(f|0)&(c|0)==(l|0)?h:(c|0)==(l|0)&b>>>0>>0|c>>>0>>0);c=b;b=b+e|0;l=c>>>0>b>>>0?d+1|0:d;c=l;e=(d|0)==(l|0)&b>>>0>>0|d>>>0>l>>>0;d=j;f=e;e=e+g|0;d=f>>>0>e>>>0?d+1|0:d;r=e|r;u=d|u}J[a>>2]=b;J[a+4>>2]=c;J[a+8>>2]=r;J[a+12>>2]=u;ba=k+336|0}function ye(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,K=0,L=0,N=0,O=0,Q=0;s=ba-32|0;ba=s;J[a>>2]=J[d>>2];d=J[c>>2]-J[b>>2]|0;J[a+4>>2]=d;t=J[e+20>>2];if(!J[e+16>>2]&(t|0)<=0|(t|0)<0){d=a+4|0;sa(e,J[e+4>>2],a,d);t=J[e+20>>2];if(!J[e+16>>2]&(t|0)<=0|(t|0)<0){sa(e,J[e+4>>2],d,a+8|0)}d=J[d>>2]}if(d){F=a+12|0;za(F);G=a+44|0;d=G;J[d+12>>2]=0;J[d+16>>2]=0;J[d+4>>2]=J[d>>2];H=a- -64|0;d=H;J[d+12>>2]=0;J[d+16>>2]=0;J[d+4>>2]=J[d>>2];I=a+84|0;d=I;J[d+12>>2]=0;J[d+16>>2]=0;J[d+4>>2]=J[d>>2];J[s+24>>2]=J[b+8>>2];d=J[b+4>>2];J[s+16>>2]=J[b>>2];J[s+20>>2]=d;J[s+8>>2]=J[c+8>>2];b=J[c+4>>2];J[s>>2]=J[c>>2];J[s+4>>2]=b;c=0;b=0;f=ba-32|0;ba=f;o=a;i=J[a+8>>2];J[f+16>>2]=0;J[f+8>>2]=0;J[f+12>>2]=0;a:{b:{if(i){if(i>>>0>=1073741824){break b}a=i<<2;c=oa(a);J[f+8>>2]=c;b=a+c|0;J[f+16>>2]=b;pa(c,0,a);J[f+12>>2]=b}a=J[o+140>>2];d=J[a>>2];if(d){J[a+4>>2]=d;na(d);i=J[o+8>>2];c=J[f+8>>2];b=J[f+12>>2]}J[a+4>>2]=b;J[a>>2]=c;J[a+8>>2]=J[f+16>>2];c=0;J[f+16>>2]=0;J[f+8>>2]=0;J[f+12>>2]=0;b=0;c:{if(i){if(i>>>0>=1073741824){break c}a=i<<2;b=oa(a);J[f+8>>2]=b;c=a+b|0;J[f+16>>2]=c;pa(b,0,a);J[f+12>>2]=c}a=J[o+152>>2];d=J[a>>2];if(d){J[a+4>>2]=d;na(d);c=J[f+12>>2];b=J[f+8>>2]}J[a+4>>2]=c;J[a>>2]=b;J[a+8>>2]=J[f+16>>2];t=J[s+20>>2];z=J[s+24>>2];d=J[s+4>>2];C=J[s+8>>2];b=J[s>>2];c=J[s+16>>2];J[f+24>>2]=0;J[f+28>>2]=0;J[f+16>>2]=0;J[f+20>>2]=0;J[f+8>>2]=0;J[f+12>>2]=0;fb(f+8|0);a=J[f+24>>2]+J[f+28>>2]|0;v=(a>>>0)/113|0;a=J[J[f+12>>2]+(v<<2)>>2]+P(a-P(v,113)|0,36)|0;J[a+32>>2]=0;J[a+28>>2]=b-c;J[a+24>>2]=0;J[a+16>>2]=d;J[a+20>>2]=C;J[a+12>>2]=b;J[a+4>>2]=t;J[a+8>>2]=z;J[a>>2]=c;i=J[f+28>>2]+1|0;J[f+28>>2]=i;if(i){a=z;L=a&-4;K=a&3;N=o+44|0;m=o+12|0;O=o+84|0;Q=a>>>0<4;while(1){b=J[f+12>>2];h=J[f+24>>2];g=i-1|0;a=h+g|0;c=(a>>>0)/113|0;a=J[b+(c<<2)>>2]+P(a-P(c,113)|0,36)|0;E=J[a+32>>2];c=J[a+24>>2];v=J[a+12>>2];a=J[a>>2];J[f+28>>2]=g;g=J[f+16>>2];if((((b|0)!=(g|0)?P(g-b>>2,113)-1|0:0)-(h+i|0)|0)+1>>>0>=226){na(J[g-4>>2]);J[f+16>>2]=J[f+16>>2]-4}g=J[o>>2];i=(c|0)!=(J[o+8>>2]-1|0)?c+1|0:0;q=i<<2;D=P(E,12);h=D+J[o+152>>2]|0;c=J[q+J[h>>2]>>2];d:{e:{if((g|0)==(c|0)){break e}f:{g:{j=v-a|0;if(j>>>0<=2){g=J[o+128>>2];J[g>>2]=i;c=1;b=J[o+8>>2];if(b>>>0>1){break g}break f}h=J[o+140>>2];b=h+D|0;n=h;h=D+12|0;bb(n+h|0,J[b>>2],J[b+4>>2]);b=J[h+J[o+140>>2]>>2]+q|0;g=J[b>>2]+(1<>2]=g;b=a;h:{if((a|0)==(v|0)){break h}y=J[t+24>>2];n=y+q|0;b=v;c=a;if(!z){if(g>>>0>M[n>>2]){break h}while(1){b=b-1|0;if((c|0)==(b|0)){b=c;break h}if(g>>>0<=M[(J[d+24>>2]+q|0)+(P(b,C)<<2)>>2]){continue}c=c+1|0;if((c|0)!=(b|0)){continue}break}break h}while(1){h=P(c,z)<<2;if(g>>>0>M[h+n>>2]){c=c+1|0;if((c|0)!=(b|0)){continue}break h}while(1){b=b-1|0;if((c|0)==(b|0)){b=c;break h}r=J[d+24>>2]+(P(b,C)<<2)|0;if(g>>>0<=M[r+q>>2]){continue}break}w=h+y|0;u=0;h=0;p=0;if(!Q){while(1){k=h<<2;l=k+w|0;x=J[l>>2];A=l;l=k+r|0;J[A>>2]=J[l>>2];J[l>>2]=x;l=k|4;x=l+w|0;A=J[x>>2];l=l+r|0;J[x>>2]=J[l>>2];J[l>>2]=A;l=k|8;x=l+w|0;A=J[x>>2];l=l+r|0;J[x>>2]=J[l>>2];J[l>>2]=A;k=k|12;l=k+w|0;x=J[l>>2];k=k+r|0;J[l>>2]=J[k>>2];J[k>>2]=x;h=h+4|0;p=p+4|0;if((L|0)!=(p|0)){continue}break}}if(K){while(1){k=h<<2;p=k+w|0;l=J[p>>2];k=k+r|0;J[p>>2]=J[k>>2];J[k>>2]=l;h=h+1|0;u=u+1|0;if((K|0)!=(u|0)){continue}break}}c=c+1|0;if((c|0)!=(b|0)){continue}break}}r=b-a|0;w=v-b|0;if((r|0)!=(w|0)){xc(O,r>>>0>>0)}c=J[m>>2];n=J[c+8>>2];g=J[c+12>>2];h=(j>>>1|0)-(r>>>0>>0?r:w)|0;h=h<<24|(h&65280)<<8|(h>>>8&65280|h>>>24);h=h>>>4&252645135|(h&252645135)<<4;h=h>>>2&858993459|(h&858993459)<<2;l=h>>>1&1431655765|(h&1431655765)<<1;h=S(j)^31;p=32-h|0;k=l>>>p|0;j=Kl(k);n=j+n|0;g=j>>>0>n>>>0?g+1|0:g;J[c+8>>2]=n;J[c+12>>2]=g;g=h-j|0;n=g;j=g+J[c>>2]|0;g=J[c+4>>2]+(g>>31)|0;J[c>>2]=j;J[c+4>>2]=j>>>0>>0?g+1|0:g;i:{j:{k:{l:{c=J[m+28>>2];u=32-c|0;m:{if((u|0)>=(h|0)){g=c+h|0;J[m+28>>2]=g;n=J[m+24>>2]&(-1>>>p<>2]=n;if((g|0)!=32){break i}c=J[m+16>>2];if((c|0)!=J[m+20>>2]){J[c>>2]=n;J[m+16>>2]=c+4;h=0;c=0;break m}g=c;c=J[m+12>>2];k=g-c|0;u=k>>2;j=u+1|0;if(j>>>0>=1073741824){break l}h=0;g=0;p=k>>>1|0;j=k>>>0>=2147483644?1073741823:j>>>0

>>0?p:j;if(j){if(j>>>0>=1073741824){break k}g=oa(j<<2)}u=(u<<2)+g|0;J[u>>2]=n;g=ta(g,c,k);J[m+20>>2]=g+(j<<2);J[m+16>>2]=u+4;J[m+12>>2]=g;if(!c){c=0;break m}na(c);c=0;break m}p=J[m+24>>2]&(-1<>2]=p;c=J[m+16>>2];n:{if((c|0)!=J[m+20>>2]){J[c>>2]=p;J[m+16>>2]=c+4;break n}g=c;c=J[m+12>>2];g=g-c|0;y=g>>2;j=y+1|0;if(j>>>0>=1073741824){break j}n=g>>>1|0;j=g>>>0>=2147483644?1073741823:j>>>0>>0?n:j;if(j){if(j>>>0>=1073741824){break k}n=oa(j<<2)}else{n=0}y=n+(y<<2)|0;J[y>>2]=p;g=ta(n,c,g);J[m+20>>2]=g+(j<<2);J[m+16>>2]=y+4;J[m+12>>2]=g;if(!c){break n}na(c)}c=h-u|0;h=-1>>>32-c&k>>>u}J[m+28>>2]=c;J[m+24>>2]=h;break i}qa();B()}xa();B()}qa();B()}c=J[o+152>>2];g=c+D|0;h=J[g>>2];q=h+q|0;J[q>>2]=J[q>>2]+1;q=E+1|0;bb(c+P(q,12)|0,h,J[g+4>>2]);if((a|0)!=(b|0)){h=J[f+28>>2]+J[f+24>>2]|0;c=J[f+16>>2];g=J[f+12>>2];if((h|0)==(((c|0)!=(g|0)?P(c-g>>2,113)-1|0:0)|0)){fb(f+8|0);h=J[f+24>>2]+J[f+28>>2]|0;g=J[f+12>>2]}c=(h>>>0)/113|0;c=J[g+(c<<2)>>2]+P(h-P(c,113)|0,36)|0;J[c+32>>2]=E;J[c+28>>2]=r;J[c+24>>2]=i;J[c+16>>2]=t;J[c+12>>2]=b;J[c+4>>2]=t;J[c+8>>2]=z;J[c>>2]=a;J[c+20>>2]=z;J[f+28>>2]=J[f+28>>2]+1}if((b|0)==(v|0)){break e}g=J[f+28>>2]+J[f+24>>2]|0;a=J[f+16>>2];c=J[f+12>>2];if((g|0)==(((a|0)!=(c|0)?P(a-c>>2,113)-1|0:0)|0)){fb(f+8|0);g=J[f+24>>2]+J[f+28>>2]|0;c=J[f+12>>2]}a=(g>>>0)/113|0;a=J[c+(a<<2)>>2]+P(g-P(a,113)|0,36)|0;J[a+32>>2]=q;J[a+28>>2]=w;J[a+24>>2]=i;J[a+16>>2]=d;J[a+20>>2]=C;J[a+12>>2]=v;J[a+4>>2]=t;J[a>>2]=b;J[a+8>>2]=z;i=J[f+28>>2]+1|0;J[f+28>>2]=i;break d}while(1){i=(b-1|0)!=(i|0)?i+1|0:0;J[g+(c<<2)>>2]=i;b=J[o+8>>2];c=c+1|0;if(b>>>0>c>>>0){continue}break}}if(!b|(a|0)==(v|0)){break e}g=0;c=1;while(1){i=0;o:{if(!c){c=0;break o}v=J[t+24>>2]+(P(J[t+4>>2],a+g|0)<<2)|0;while(1){c=J[o>>2];q=J[J[o+128>>2]+(i<<2)>>2]<<2;r=J[q+J[h>>2]>>2];if((c|0)!=(r|0)){Ib(N,c-r|0,J[v+q>>2]);b=J[o+8>>2]}c=b;i=i+1|0;if(c>>>0>i>>>0){continue}break}}g=g+1|0;if((j|0)!=(g|0)){continue}break}}i=J[f+28>>2]}if(i){continue}break}}J[f+28>>2]=0;a=J[f+16>>2];i=J[f+12>>2];b=a-i|0;if(b>>>0>=9){while(1){na(J[i>>2]);i=J[f+12>>2]+4|0;J[f+12>>2]=i;a=J[f+16>>2];b=a-i|0;if(b>>>0>8){continue}break}}c=56;p:{switch((b>>>2|0)-1|0){case 1:c=113;case 0:J[f+24>>2]=c;break;default:break p}}q:{if((a|0)==(i|0)){break q}while(1){na(J[i>>2]);i=i+4|0;if((i|0)!=(a|0)){continue}break}a=J[f+16>>2];b=J[f+12>>2];if((a|0)==(b|0)){break q}J[f+16>>2]=a+((b-a|0)+3&-4)}a=J[f+8>>2];if(a){na(a)}ba=f+32|0;break a}qa();B()}qa();B()}ya(F,e);eb(G,e);eb(H,e);eb(I,e)}ba=s+32|0;return 1}function Re(a,b,c,d,e,f){a=a|0;b=+b;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0,z=0,B=0,C=0;m=ba-560|0;ba=m;J[m+44>>2]=0;A(+b);g=v(1)|0;v(0)|0;a:{if((g|0)<0){s=1;y=1173;b=-b;A(+b);g=v(1)|0;v(0)|0;break a}if(e&2048){s=1;y=1176;break a}s=e&1;y=s?1179:1174;z=!s}b:{if((g&2146435072)==2146435072){g=s+3|0;Qa(a,32,c,g,e&-65537);Oa(a,y,s);d=f&32;Oa(a,b!=b?d?1434:1643:d?1506:1647,3);Qa(a,32,c,g,e^8192);n=(c|0)<(g|0)?g:c;break b}u=m+16|0;c:{d:{e:{b=Ve(b,m+44|0);b=b+b;if(b!=0){g=J[m+44>>2];J[m+44>>2]=g-1;w=f|32;if((w|0)!=97){break e}break c}w=f|32;if((w|0)==97){break c}k=J[m+44>>2];l=(d|0)<0?6:d;break d}k=g-29|0;J[m+44>>2]=k;b=b*268435456;l=(d|0)<0?6:d}q=(m+48|0)+((k|0)>=0?288:0)|0;h=q;while(1){if(b<4294967296&b>=0){d=~~b>>>0}else{d=0}J[h>>2]=d;h=h+4|0;b=(b-+(d>>>0))*1e9;if(b!=0){continue}break}f:{if((k|0)<=0){d=k;g=h;i=q;break f}i=q;d=k;while(1){o=(d|0)>=29?29:d;g=h-4|0;g:{if(i>>>0>g>>>0){break g}d=0;while(1){j=J[g>>2];x=d;d=o&31;if((o&63)>>>0>=32){n=j<>>32-d;d=j<>>0>x>>>0?j+1|0:j,1e9,0);B=g,C=x-Hl(d,ca,1e9,0)|0,J[B>>2]=C;g=g-4|0;if(i>>>0<=g>>>0){continue}break}if(!d){break g}i=i-4|0;J[i>>2]=d}while(1){g=h;if(i>>>0>>0){h=g-4|0;if(!J[h>>2]){continue}}break}d=J[m+44>>2]-o|0;J[m+44>>2]=d;h=g;if((d|0)>0){continue}break}}if((d|0)<0){t=((l+25>>>0)/9|0)+1|0;p=(w|0)==102;while(1){d=0-d|0;n=(d|0)>=9?9:d;h:{if(g>>>0<=i>>>0){h=J[i>>2];break h}o=1e9>>>n|0;j=-1<>2];J[h>>2]=x+(d>>>n|0);d=P(o,d&j);h=h+4|0;if(h>>>0>>0){continue}break}h=J[i>>2];if(!d){break h}J[g>>2]=d;g=g+4|0}d=n+J[m+44>>2]|0;J[m+44>>2]=d;i=(!h<<2)+i|0;h=p?q:i;g=g-h>>2>(t|0)?h+(t<<2)|0:g;if((d|0)<0){continue}break}}d=0;i:{if(g>>>0<=i>>>0){break i}d=P(q-i>>2,9);h=10;j=J[i>>2];if(j>>>0<10){break i}while(1){d=d+1|0;h=P(h,10);if(j>>>0>=h>>>0){continue}break}}h=(l-((w|0)!=102?d:0)|0)-((w|0)==103&(l|0)!=0)|0;if((h|0)<(P(g-q>>2,9)-9|0)){o=h+9216|0;j=(o|0)/9|0;k=((((k|0)<0?4:292)+m|0)+(j<<2)|0)-4048|0;h=10;n=o-P(j,9)|0;if((n|0)<=7){while(1){h=P(h,10);n=n+1|0;if((n|0)!=8){continue}break}}o=J[k>>2];t=(o>>>0)/(h>>>0)|0;p=o-P(h,t)|0;j=k+4|0;j:{if(!p&(j|0)==(g|0)){break j}k:{if(!(t&1)){b=9007199254740992;if(!(H[k-4|0]&1)|((h|0)!=1e9|i>>>0>=k>>>0)){break k}}b=9007199254740994}r=(g|0)==(j|0)?1:1.5;j=h>>>1|0;r=j>>>0>p>>>0?.5:(j|0)==(p|0)?r:1.5;if(!(K[y|0]!=45|z)){r=-r;b=-b}j=o-p|0;J[k>>2]=j;if(b+r==b){break j}d=h+j|0;J[k>>2]=d;if(d>>>0>=1e9){while(1){J[k>>2]=0;k=k-4|0;if(k>>>0>>0){i=i-4|0;J[i>>2]=0}d=J[k>>2]+1|0;J[k>>2]=d;if(d>>>0>999999999){continue}break}}d=P(q-i>>2,9);h=10;j=J[i>>2];if(j>>>0<10){break j}while(1){d=d+1|0;h=P(h,10);if(j>>>0>=h>>>0){continue}break}}h=k+4|0;g=g>>>0>h>>>0?h:g}while(1){j=g;o=g>>>0<=i>>>0;if(!o){g=j-4|0;if(!J[g>>2]){continue}}break}l:{if((w|0)!=103){k=e&8;break l}h=l?l:1;g=(h|0)>(d|0)&(d|0)>-5;l=(g?d^-1:-1)+h|0;f=(g?-1:-2)+f|0;k=e&8;if(k){break l}g=-9;m:{if(o){break m}k=J[j-4>>2];if(!k){break m}n=10;g=0;if((k>>>0)%10|0){break m}while(1){h=g;g=g+1|0;n=P(n,10);if(!((k>>>0)%(n>>>0)|0)){continue}break}g=h^-1}h=P(j-q>>2,9);if((f&-33)==70){k=0;g=(g+h|0)-9|0;g=(g|0)>0?g:0;l=(g|0)>(l|0)?l:g;break l}k=0;g=((d+h|0)+g|0)-9|0;g=(g|0)>0?g:0;l=(g|0)>(l|0)?l:g}n=-1;o=k|l;if(((o?2147483645:2147483646)|0)<(l|0)){break b}p=(((o|0)!=0)+l|0)+1|0;h=f&-33;n:{if((h|0)==70){if((p^2147483647)<(d|0)){break b}g=(d|0)>0?d:0;break n}g=d>>31;g=Mb((g^d)-g|0,0,u);if((u-g|0)<=1){while(1){g=g-1|0;H[g|0]=48;if((u-g|0)<2){continue}break}}t=g-2|0;H[t|0]=f;H[g-1|0]=(d|0)<0?45:43;g=u-t|0;if((g|0)>(p^2147483647)){break b}}d=g+p|0;if((d|0)>(s^2147483647)){break b}p=d+s|0;Qa(a,32,c,p,e);Oa(a,y,s);Qa(a,48,c,p,e^65536);o:{p:{q:{if((h|0)==70){f=m+16|0;d=f|8;k=f|9;h=i>>>0>q>>>0?q:i;i=h;while(1){g=Mb(J[i>>2],0,k);r:{if((h|0)!=(i|0)){if(m+16>>>0>=g>>>0){break r}while(1){g=g-1|0;H[g|0]=48;if(m+16>>>0>>0){continue}break}break r}if((g|0)!=(k|0)){break r}H[m+24|0]=48;g=d}Oa(a,g,k-g|0);i=i+4|0;if(q>>>0>=i>>>0){continue}break}if(o){Oa(a,1981,1)}if((l|0)<=0|i>>>0>=j>>>0){break q}while(1){g=Mb(J[i>>2],0,k);if(g>>>0>m+16>>>0){while(1){g=g-1|0;H[g|0]=48;if(m+16>>>0>>0){continue}break}}Oa(a,g,(l|0)>=9?9:l);g=l-9|0;i=i+4|0;if(j>>>0<=i>>>0){break p}d=(l|0)>9;l=g;if(d){continue}break}break p}s:{if((l|0)<0){break s}q=i>>>0>>0?j:i+4|0;f=m+16|0;d=f|8;j=f|9;h=i;while(1){g=Mb(J[h>>2],0,j);if((j|0)==(g|0)){H[m+24|0]=48;g=d}t:{if((h|0)!=(i|0)){if(m+16>>>0>=g>>>0){break t}while(1){g=g-1|0;H[g|0]=48;if(m+16>>>0>>0){continue}break}break t}Oa(a,g,1);g=g+1|0;if(!(k|l)){break t}Oa(a,1981,1)}f=j-g|0;Oa(a,g,(f|0)>(l|0)?l:f);l=l-f|0;h=h+4|0;if(q>>>0<=h>>>0){break s}if((l|0)>=0){continue}break}}Qa(a,48,l+18|0,18,0);Oa(a,t,u-t|0);break o}g=l}Qa(a,48,g+9|0,9,0)}Qa(a,32,c,p,e^8192);n=(c|0)<(p|0)?p:c;break b}k=(f<<26>>31&9)+y|0;u:{if(d>>>0>11){break u}g=12-d|0;r=16;while(1){r=r*16;g=g-1|0;if(g){continue}break}if(K[k|0]==45){b=-(r+(-b-r));break u}b=b+r-r}g=J[m+44>>2];h=g>>31;g=Mb((g^h)-h|0,0,u);if((u|0)==(g|0)){H[m+15|0]=48;g=m+15|0}q=s|2;i=f&32;h=J[m+44>>2];l=g-2|0;H[l|0]=f+15;H[g-1|0]=(h|0)<0?45:43;g=e&8;h=m+16|0;while(1){f=h;if(R(b)<2147483648){j=~~b}else{j=-2147483648}H[h|0]=i|K[j+17776|0];b=(b-+(j|0))*16;h=f+1|0;if(!(!((d|0)>0|g)&b==0|(h-(m+16|0)|0)!=1)){H[f+1|0]=46;h=f+2|0}if(b!=0){continue}break}n=-1;g=u-l|0;f=g+q|0;if((2147483645-f|0)<(d|0)){break b}v:{w:{if(!d){break w}i=h-(m+16|0)|0;if((i-2|0)>=(d|0)){break w}d=d+2|0;break v}i=h-(m+16|0)|0;d=i}f=d+f|0;Qa(a,32,c,f,e);Oa(a,k,q);Qa(a,48,c,f,e^65536);Oa(a,m+16|0,i);Qa(a,48,d-i|0,0,0);Oa(a,l,g);Qa(a,32,c,f,e^8192);n=(c|0)<(f|0)?f:c}ba=m+560|0;return n|0}function Ae(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,K=0,L=0,N=0,O=0,Q=0;o=ba-32|0;ba=o;J[a>>2]=J[d>>2];d=J[c>>2]-J[b>>2]|0;J[a+4>>2]=d;p=J[e+20>>2];if(!J[e+16>>2]&(p|0)<=0|(p|0)<0){d=a+4|0;sa(e,J[e+4>>2],a,d);p=J[e+20>>2];if(!J[e+16>>2]&(p|0)<=0|(p|0)<0){sa(e,J[e+4>>2],d,a+8|0)}d=J[d>>2]}if(d){C=a+12|0;te(C);D=a+1068|0;d=D;J[d+12>>2]=0;J[d+16>>2]=0;J[d+4>>2]=J[d>>2];E=a+1088|0;d=E;J[d+12>>2]=0;J[d+16>>2]=0;J[d+4>>2]=J[d>>2];F=a+1108|0;d=F;J[d+12>>2]=0;J[d+16>>2]=0;J[d+4>>2]=J[d>>2];J[o+24>>2]=J[b+8>>2];d=J[b+4>>2];J[o+16>>2]=J[b>>2];J[o+20>>2]=d;J[o+8>>2]=J[c+8>>2];b=J[c+4>>2];J[o>>2]=J[c>>2];J[o+4>>2]=b;b=0;f=ba-32|0;ba=f;l=a;h=J[a+8>>2];J[f+16>>2]=0;J[f+8>>2]=0;J[f+12>>2]=0;a:{b:{if(h){if(h>>>0>=1073741824){break b}a=h<<2;b=oa(a);J[f+8>>2]=b;g=a+b|0;J[f+16>>2]=g;pa(b,0,a);J[f+12>>2]=g}a=J[l+1164>>2];c=J[a>>2];if(c){J[a+4>>2]=c;na(c);h=J[l+8>>2];g=J[f+12>>2];b=J[f+8>>2]}J[a+4>>2]=g;J[a>>2]=b;J[a+8>>2]=J[f+16>>2];b=0;J[f+16>>2]=0;J[f+8>>2]=0;J[f+12>>2]=0;a=0;c:{if(h){if(h>>>0>=1073741824){break c}c=h<<2;a=oa(c);J[f+8>>2]=a;b=a+c|0;J[f+16>>2]=b;pa(a,0,c);J[f+12>>2]=b}c=J[l+1176>>2];d=J[c>>2];if(d){J[c+4>>2]=d;na(d);b=J[f+12>>2];a=J[f+8>>2]}J[c+4>>2]=b;J[c>>2]=a;J[c+8>>2]=J[f+16>>2];p=J[o+20>>2];u=J[o+24>>2];d=J[o+4>>2];x=J[o+8>>2];b=J[o>>2];c=J[o+16>>2];J[f+24>>2]=0;J[f+28>>2]=0;J[f+16>>2]=0;J[f+20>>2]=0;J[f+8>>2]=0;J[f+12>>2]=0;fb(f+8|0);a=J[f+24>>2]+J[f+28>>2]|0;r=(a>>>0)/113|0;a=J[J[f+12>>2]+(r<<2)>>2]+P(a-P(r,113)|0,36)|0;J[a+32>>2]=0;J[a+28>>2]=b-c;J[a+24>>2]=0;J[a+16>>2]=d;J[a+20>>2]=x;J[a+12>>2]=b;J[a+4>>2]=p;J[a+8>>2]=u;J[a>>2]=c;h=J[f+28>>2]+1|0;J[f+28>>2]=h;if(h){a=u;L=a&-4;G=a&3;N=l+1068|0;H=l+12|0;O=l+1108|0;Q=a>>>0<4;while(1){b=J[f+12>>2];m=J[f+24>>2];j=h-1|0;a=m+j|0;c=(a>>>0)/113|0;a=J[b+(c<<2)>>2]+P(a-P(c,113)|0,36)|0;z=J[a+32>>2];g=J[a+24>>2];r=J[a+12>>2];c=J[a>>2];J[f+28>>2]=j;a=J[f+16>>2];if((((a|0)!=(b|0)?P(a-b>>2,113)-1|0:0)-(h+m|0)|0)+1>>>0>=226){na(J[a-4>>2]);J[f+16>>2]=J[f+16>>2]-4}b=J[l>>2];h=(g|0)!=(J[l+8>>2]-1|0)?g+1|0:0;m=h<<2;y=P(z,12);j=y+J[l+1176>>2]|0;g=J[m+J[j>>2]>>2];d:{e:{if((b|0)==(g|0)){break e}f:{g:{t=r-c|0;if(t>>>0<=2){g=J[l+1152>>2];J[g>>2]=h;b=1;a=J[l+8>>2];if(a>>>0>1){break g}break f}j=J[l+1164>>2];a=j+y|0;i=j;j=y+12|0;bb(i+j|0,J[a>>2],J[a+4>>2]);a=m+J[j+J[l+1164>>2]>>2]|0;j=J[a>>2]+(1<>2]=j;a=c;h:{if((r|0)==(a|0)){break h}I=J[p+24>>2];K=m+I|0;a=r;b=c;if(!u){if(j>>>0>M[K>>2]){break h}while(1){a=a-1|0;if((b|0)==(a|0)){a=b;break h}if(j>>>0<=M[(m+J[d+24>>2]|0)+(P(a,x)<<2)>>2]){continue}b=b+1|0;if((b|0)!=(a|0)){continue}break}break h}while(1){g=P(b,u)<<2;if(j>>>0>M[g+K>>2]){b=b+1|0;if((b|0)!=(a|0)){continue}break h}while(1){a=a-1|0;if((b|0)==(a|0)){a=b;break h}n=J[d+24>>2]+(P(a,x)<<2)|0;if(j>>>0<=M[n+m>>2]){continue}break}q=g+I|0;A=0;g=0;v=0;if(!Q){while(1){k=g<<2;i=k+q|0;s=J[i>>2];w=i;i=k+n|0;J[w>>2]=J[i>>2];J[i>>2]=s;i=k|4;s=i+q|0;w=J[s>>2];i=i+n|0;J[s>>2]=J[i>>2];J[i>>2]=w;i=k|8;s=i+q|0;w=J[s>>2];i=i+n|0;J[s>>2]=J[i>>2];J[i>>2]=w;k=k|12;i=k+q|0;s=J[i>>2];k=k+n|0;J[i>>2]=J[k>>2];J[k>>2]=s;g=g+4|0;v=v+4|0;if((L|0)!=(v|0)){continue}break}}if(G){while(1){k=g<<2;v=k+q|0;i=J[v>>2];k=k+n|0;J[v>>2]=J[k>>2];J[k>>2]=i;g=g+1|0;A=A+1|0;if((A|0)!=(G|0)){continue}break}}b=b+1|0;if((b|0)!=(a|0)){continue}break}}j=a-c|0;n=r-a|0;if((j|0)!=(n|0)){xc(O,j>>>0>>0)}k=z+1|0;b=S(t);q=b^31;g=t>>>1|0;i:{if(j>>>0>>0){if(!q){break i}t=g-j|0;b=1<<30-b;g=0;while(1){Ca((g<<5)+H|0,(b&t)!=0);b=b>>>1|0;g=g+1|0;if((q|0)!=(g|0)){continue}break}break i}if(!q){break i}t=g-n|0;b=1<<30-b;g=0;while(1){Ca((g<<5)+H|0,(b&t)!=0);b=b>>>1|0;g=g+1|0;if((q|0)!=(g|0)){continue}break}}i=m;b=J[l+1176>>2];g=b+y|0;m=J[g>>2];q=i+m|0;J[q>>2]=J[q>>2]+1;bb(b+P(k,12)|0,m,J[g+4>>2]);if((a|0)!=(c|0)){g=J[f+28>>2]+J[f+24>>2]|0;m=J[f+16>>2];b=J[f+12>>2];if((g|0)==(((b|0)!=(m|0)?P(m-b>>2,113)-1|0:0)|0)){fb(f+8|0);g=J[f+24>>2]+J[f+28>>2]|0;i=J[f+12>>2]}else{i=b}b=(g>>>0)/113|0;b=J[i+(b<<2)>>2]+P(g-P(b,113)|0,36)|0;J[b+32>>2]=z;J[b+28>>2]=j;J[b+24>>2]=h;J[b+16>>2]=p;J[b+12>>2]=a;J[b+4>>2]=p;J[b+8>>2]=u;J[b>>2]=c;J[b+20>>2]=u;J[f+28>>2]=J[f+28>>2]+1}if((a|0)==(r|0)){break e}g=J[f+28>>2]+J[f+24>>2]|0;c=J[f+16>>2];b=J[f+12>>2];if((g|0)==(((b|0)!=(c|0)?P(c-b>>2,113)-1|0:0)|0)){fb(f+8|0);g=J[f+24>>2]+J[f+28>>2]|0;c=J[f+12>>2]}else{c=b}b=(g>>>0)/113|0;b=J[c+(b<<2)>>2]+P(g-P(b,113)|0,36)|0;J[b+32>>2]=k;J[b+28>>2]=n;J[b+24>>2]=h;J[b+16>>2]=d;J[b+20>>2]=x;J[b+12>>2]=r;J[b+4>>2]=p;J[b>>2]=a;J[b+8>>2]=u;h=J[f+28>>2]+1|0;J[f+28>>2]=h;break d}while(1){h=(a-1|0)!=(h|0)?h+1|0:0;J[g+(b<<2)>>2]=h;a=J[l+8>>2];b=b+1|0;if(a>>>0>b>>>0){continue}break}}g=0;b=a;if((c|0)==(r|0)){break e}while(1){j:{if(!b){b=0;break j}r=J[p+24>>2]+(P(J[p+4>>2],c+g|0)<<2)|0;h=0;while(1){b=J[l>>2];m=J[J[l+1152>>2]+(h<<2)>>2]<<2;n=J[m+J[j>>2]>>2];if((b|0)!=(n|0)){Ib(N,b-n|0,J[m+r>>2]);a=J[l+8>>2]}b=a;h=h+1|0;if(h>>>0>>0){continue}break}}g=g+1|0;if((t|0)!=(g|0)){continue}break}}h=J[f+28>>2]}if(h){continue}break}}J[f+28>>2]=0;c=J[f+16>>2];h=J[f+12>>2];a=c-h|0;if(a>>>0>=9){while(1){na(J[h>>2]);h=J[f+12>>2]+4|0;J[f+12>>2]=h;c=J[f+16>>2];a=c-h|0;if(a>>>0>8){continue}break}}b=56;k:{switch((a>>>2|0)-1|0){case 1:b=113;case 0:J[f+24>>2]=b;break;default:break k}}l:{if((c|0)==(h|0)){break l}while(1){na(J[h>>2]);h=h+4|0;if((h|0)!=(c|0)){continue}break}a=J[f+16>>2];b=J[f+12>>2];if((a|0)==(b|0)){break l}J[f+16>>2]=a+((b-a|0)+3&-4)}a=J[f+8>>2];if(a){na(a)}ba=f+32|0;break a}qa();B()}qa();B()}se(C,e);eb(D,e);eb(E,e);eb(F,e)}ba=o+32|0;return 1}function Ue(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;l=1510;g=ba-80|0;ba=g;J[g+76>>2]=1510;w=g+55|0;r=g+56|0;a:{b:{c:{d:{e:while(1){h=l;if((n^2147483647)<(e|0)){break d}n=e+n|0;f:{g:{h:{e=h;f=K[e|0];if(f){while(1){i:{f=f&255;j:{if(!f){l=e;break j}if((f|0)!=37){break i}f=e;while(1){if(K[f+1|0]!=37){l=f;break j}e=e+1|0;k=K[f+2|0];l=f+2|0;f=l;if((k|0)==37){continue}break}}e=e-h|0;v=n^2147483647;if((e|0)>(v|0)){break d}if(a){Oa(a,h,e)}if(e){continue e}J[g+76>>2]=l;e=l+1|0;o=-1;if(!(K[l+2|0]!=36|H[l+1|0]-48>>>0>=10)){o=H[l+1|0]-48|0;s=1;e=l+3|0}J[g+76>>2]=e;m=0;f=H[e|0];l=f-32|0;k:{if(l>>>0>31){i=e;break k}i=e;l=1<>2]=i;m=m|l;f=H[e+1|0];l=f-32|0;if(l>>>0>=32){break k}e=i;l=1<>>0>=10)){J[((H[i+1|0]<<2)+d|0)-192>>2]=10;f=i+3|0;s=1;e=J[((H[i+1|0]<<3)+c|0)-384>>2];break m}if(s){break h}f=i+1|0;if(!a){J[g+76>>2]=f;s=0;p=0;break l}e=J[b>>2];J[b>>2]=e+4;s=0;e=J[e>>2]}J[g+76>>2]=f;p=e;if((e|0)>=0){break l}p=0-p|0;m=m|8192;break l}p=Te(g+76|0);if((p|0)<0){break d}f=J[g+76>>2]}e=0;j=-1;n:{if(K[f|0]!=46){l=f;f=0;break n}if(K[f+1|0]==42){o:{if(!(K[f+3|0]!=36|H[f+2|0]-48>>>0>=10)){J[((H[f+2|0]<<2)+d|0)-192>>2]=10;l=f+4|0;j=J[((H[f+2|0]<<3)+c|0)-384>>2];break o}if(s){break h}l=f+2|0;j=0;if(!a){break o}f=J[b>>2];J[b>>2]=f+4;j=J[f>>2]}J[g+76>>2]=l;f=(j^-1)>>>31|0;break n}J[g+76>>2]=f+1;j=Te(g+76|0);l=J[g+76>>2];f=1}t=f;while(1){q=e;i=28;k=l;e=H[k|0];if(e-123>>>0<4294967238){break c}l=k+1|0;e=K[(e+P(q,58)|0)+17247|0];if(e-1>>>0<8){continue}break}J[g+76>>2]=l;p:{q:{if((e|0)!=27){if(!e){break c}if((o|0)>=0){J[(o<<2)+d>>2]=e;f=(o<<3)+c|0;e=J[f+4>>2];J[g+64>>2]=J[f>>2];J[g+68>>2]=e;break q}if(!a){break f}Se(g- -64|0,e,b);break p}if((o|0)>=0){break c}}e=0;if(!a){continue e}}f=m&-65537;m=m&8192?f:m;o=0;u=1163;i=r;r:{s:{t:{u:{v:{w:{x:{y:{z:{A:{B:{C:{D:{E:{F:{G:{e=H[k|0];e=q?(e&15)==3?e&-33:e:e;switch(e-88|0){case 11:break r;case 9:case 13:case 14:case 15:break s;case 27:break x;case 12:case 17:break A;case 23:break B;case 0:case 32:break C;case 24:break D;case 22:break E;case 29:break F;case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 10:case 16:case 18:case 19:case 20:case 21:case 25:case 26:case 28:case 30:case 31:break g;default:break G}}H:{switch(e-65|0){case 0:case 4:case 5:case 6:break s;case 2:break v;case 1:case 3:break g;default:break H}}if((e|0)==83){break w}break g}f=J[g+64>>2];k=J[g+68>>2];e=1163;break z}e=0;I:{switch(q&255){case 0:J[J[g+64>>2]>>2]=n;continue e;case 1:J[J[g+64>>2]>>2]=n;continue e;case 2:h=J[g+64>>2];J[h>>2]=n;J[h+4>>2]=n>>31;continue e;case 3:I[J[g+64>>2]>>1]=n;continue e;case 4:H[J[g+64>>2]]=n;continue e;case 6:J[J[g+64>>2]>>2]=n;continue e;case 7:break I;default:continue e}}h=J[g+64>>2];J[h>>2]=n;J[h+4>>2]=n>>31;continue e}j=j>>>0<=8?8:j;m=m|8;e=120}h=r;f=J[g+64>>2];k=J[g+68>>2];if(f|k){x=e&32;while(1){h=h-1|0;H[h|0]=x|K[(f&15)+17776|0];y=!k&f>>>0>15|(k|0)!=0;q=k;k=k>>>4|0;f=(q&15)<<28|f>>>4;if(y){continue}break}}if(!(J[g+64>>2]|J[g+68>>2])|!(m&8)){break y}u=(e>>>4|0)+1163|0;o=2;break y}e=r;h=J[g+68>>2];k=h;f=J[g+64>>2];if(h|f){while(1){e=e-1|0;H[e|0]=f&7|48;q=!k&f>>>0>7|(k|0)!=0;h=k;k=h>>>3|0;f=(h&7)<<29|f>>>3;if(q){continue}break}}h=e;if(!(m&8)){break y}e=r-h|0;j=(e|0)<(j|0)?j:e+1|0;break y}f=J[g+64>>2];e=J[g+68>>2];k=e;if((e|0)<0){h=0-(k+((f|0)!=0)|0)|0;k=h;f=0-f|0;J[g+64>>2]=f;J[g+68>>2]=h;o=1;e=1163;break z}if(m&2048){o=1;e=1164;break z}o=m&1;e=o?1165:1163}u=e;h=Mb(f,k,r)}if((j|0)<0?t:0){break d}m=t?m&-65537:m;e=J[g+64>>2];f=J[g+68>>2];if(!(j|(e|f)!=0)){h=r;j=0;break g}e=!(e|f)+(r-h|0)|0;j=(e|0)<(j|0)?j:e;break g}q=j>>>0>=2147483647?2147483647:j;i=q;m=(i|0)!=0;e=J[g+64>>2];h=e?e:1983;e=h;J:{K:{L:{M:{if(!(e&3)|!i){break M}while(1){if(!K[e|0]){break L}i=i-1|0;m=(i|0)!=0;e=e+1|0;if(!(e&3)){break M}if(i){continue}break}}if(!m){break K}if(!(!K[e|0]|i>>>0<4)){while(1){k=J[e>>2];if((k^-1)&k-16843009&-2139062144){break L}e=e+4|0;i=i-4|0;if(i>>>0>3){continue}break}}if(!i){break K}}while(1){if(!K[e|0]){break J}e=e+1|0;i=i-1|0;if(i){continue}break}}e=0}e=e?e-h|0:q;i=e+h|0;if((j|0)>=0){m=f;j=e;break g}m=f;j=e;if(K[i|0]){break d}break g}if(j){f=J[g+64>>2];break u}e=0;Qa(a,32,p,0,m);break t}J[g+12>>2]=0;J[g+8>>2]=J[g+64>>2];f=g+8|0;J[g+64>>2]=f;j=-1}e=0;N:{while(1){h=J[f>>2];if(!h){break N}k=Pe(g+4|0,h);h=(k|0)<0;if(!(h|k>>>0>j-e>>>0)){f=f+4|0;e=e+k|0;if(j>>>0>e>>>0){continue}break N}break}if(h){break b}}i=61;if((e|0)<0){break c}Qa(a,32,p,e,m);if(!e){e=0;break t}i=0;f=J[g+64>>2];while(1){h=J[f>>2];if(!h){break t}h=Pe(g+4|0,h);i=h+i|0;if(i>>>0>e>>>0){break t}Oa(a,g+4|0,h);f=f+4|0;if(e>>>0>i>>>0){continue}break}}Qa(a,32,p,e,m^8192);e=(e|0)<(p|0)?p:e;continue e}if((j|0)<0?t:0){break d}i=61;e=Re(a,O[g+64>>3],p,j,m,e);if((e|0)>=0){continue e}break c}H[g+55|0]=J[g+64>>2];j=1;h=w;m=f;break g}f=K[e+1|0];e=e+1|0;continue}}if(a){break a}if(!s){break f}e=1;while(1){a=J[(e<<2)+d>>2];if(a){Se((e<<3)+c|0,a,b);n=1;e=e+1|0;if((e|0)!=10){continue}break a}break}n=1;if(e>>>0>=10){break a}while(1){if(J[(e<<2)+d>>2]){break h}e=e+1|0;if((e|0)!=10){continue}break}break a}i=28;break c}k=i-h|0;f=(j|0)>(k|0)?j:k;if((f|0)>(o^2147483647)){break d}i=61;j=f+o|0;e=(j|0)<(p|0)?p:j;if((v|0)<(e|0)){break c}Qa(a,32,e,j,m);Oa(a,u,o);Qa(a,48,e,j,m^65536);Qa(a,48,f,k,0);Oa(a,h,k);Qa(a,32,e,j,m^8192);continue}break}n=0;break a}i=61}J[4804]=i}n=-1}ba=g+80|0;return n}function Qf(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0;g=ba-16|0;ba=g;J[b+44>>2]=d;J[b+48>>2]=c;d=J[b+12>>2];f=J[b+8>>2];if((d|0)!=(f|0)){while(1){d=d-4|0;e=J[d>>2];J[d>>2]=0;if(e){da[J[J[e>>2]+4>>2]](e)}if((d|0)!=(f|0)){continue}break}}J[b+12>>2]=f;J[b+24>>2]=J[b+20>>2];J[b+36>>2]=J[b+32>>2];a:{if(!J[b+4>>2]){b=oa(32);H[b+23|0]=0;c=K[1670]|K[1671]<<8|(K[1672]<<16|K[1673]<<24);d=K[1666]|K[1667]<<8|(K[1668]<<16|K[1669]<<24);H[b+15|0]=d;H[b+16|0]=d>>>8;H[b+17|0]=d>>>16;H[b+18|0]=d>>>24;H[b+19|0]=c;H[b+20|0]=c>>>8;H[b+21|0]=c>>>16;H[b+22|0]=c>>>24;c=K[1663]|K[1664]<<8|(K[1665]<<16|K[1666]<<24);d=K[1659]|K[1660]<<8|(K[1661]<<16|K[1662]<<24);H[b+8|0]=d;H[b+9|0]=d>>>8;H[b+10|0]=d>>>16;H[b+11|0]=d>>>24;H[b+12|0]=c;H[b+13|0]=c>>>8;H[b+14|0]=c>>>16;H[b+15|0]=c>>>24;c=K[1655]|K[1656]<<8|(K[1657]<<16|K[1658]<<24);d=K[1651]|K[1652]<<8|(K[1653]<<16|K[1654]<<24);H[b|0]=d;H[b+1|0]=d>>>8;H[b+2|0]=d>>>16;H[b+3|0]=d>>>24;H[b+4|0]=c;H[b+5|0]=c>>>8;H[b+6|0]=c>>>16;H[b+7|0]=c>>>24;J[a>>2]=-1;Ga(a+4|0,b,23);na(b);break a}d=ba-16|0;ba=d;e=J[b+44>>2];f=J[e+20>>2];if(!J[e+16>>2]&(f|0)<=0|(f|0)<0){sa(e,J[e+4>>2],1637,1642)}e=da[J[J[b>>2]+8>>2]](b)|0;H[d+15|0]=e;H[d+14|0]=2;H[d+13|0]=e&255?2:3;e=J[b+44>>2];f=J[e+20>>2];b:{if(!!J[e+16>>2]&(f|0)>=0|(f|0)>0){break b}sa(e,J[e+4>>2],d+14|0,d+15|0);e=J[b+44>>2];f=J[e+20>>2];if(!!J[e+16>>2]&(f|0)>=0|(f|0)>0){break b}sa(e,J[e+4>>2],d+13|0,d+14|0);e=J[b+44>>2];f=J[e+20>>2];if(!!J[e+16>>2]&(f|0)>=0|(f|0)>0){break b}sa(e,J[e+4>>2],d+15|0,d+16|0);e=J[b+44>>2]}j=d,k=da[J[J[b>>2]+12>>2]](b)|0,H[j+12|0]=k;f=J[e+20>>2];if(!J[e+16>>2]&(f|0)<=0|(f|0)<0){sa(e,J[e+4>>2],d+12|0,d+13|0)}I[d+10>>1]=(J[J[b+4>>2]+4>>2]!=0)<<15;e=J[b+44>>2];f=J[e+20>>2];if(!J[e+16>>2]&(f|0)<=0|(f|0)<0){sa(e,J[e+4>>2],d+10|0,d+12|0)}J[a>>2]=0;J[a+4>>2]=0;J[a+8>>2]=0;J[a+12>>2]=0;ba=d+16|0;if(J[a>>2]){break a}if(H[a+15|0]<0){na(J[a+4>>2])}d=J[J[b+4>>2]+4>>2];c:{if(!d){J[a>>2]=0;J[a+4>>2]=0;J[a+8>>2]=0;J[a+12>>2]=0;break c}e=J[b+44>>2];if(d){Aa(J[d+28>>2]-J[d+24>>2]>>2,e);f=J[d+24>>2];i=J[d+28>>2];if((f|0)!=(i|0)){while(1){h=J[f>>2];if(h){Aa(J[h+24>>2],e);td(g,e,h)}f=f+4|0;if((i|0)!=(f|0)){continue}break}}td(g,e,d)}if(d){J[a>>2]=0;J[a+4>>2]=0;J[a+8>>2]=0;J[a+12>>2]=0;break c}d=oa(32);H[d+26|0]=0;e=K[1882]|K[1883]<<8;H[d+24|0]=e;H[d+25|0]=e>>>8;e=K[1878]|K[1879]<<8|(K[1880]<<16|K[1881]<<24);f=K[1874]|K[1875]<<8|(K[1876]<<16|K[1877]<<24);H[d+16|0]=f;H[d+17|0]=f>>>8;H[d+18|0]=f>>>16;H[d+19|0]=f>>>24;H[d+20|0]=e;H[d+21|0]=e>>>8;H[d+22|0]=e>>>16;H[d+23|0]=e>>>24;e=K[1870]|K[1871]<<8|(K[1872]<<16|K[1873]<<24);f=K[1866]|K[1867]<<8|(K[1868]<<16|K[1869]<<24);H[d+8|0]=f;H[d+9|0]=f>>>8;H[d+10|0]=f>>>16;H[d+11|0]=f>>>24;H[d+12|0]=e;H[d+13|0]=e>>>8;H[d+14|0]=e>>>16;H[d+15|0]=e>>>24;e=K[1862]|K[1863]<<8|(K[1864]<<16|K[1865]<<24);f=K[1858]|K[1859]<<8|(K[1860]<<16|K[1861]<<24);H[d|0]=f;H[d+1|0]=f>>>8;H[d+2|0]=f>>>16;H[d+3|0]=f>>>24;H[d+4|0]=e;H[d+5|0]=e>>>8;H[d+6|0]=e>>>16;H[d+7|0]=e>>>24;J[a>>2]=-1;Ga(a+4|0,d,26);na(d);if(J[a>>2]){break a}if(H[a+15|0]>=0){break c}na(J[a+4>>2])}if(!(da[J[J[b>>2]+16>>2]](b)|0)){b=oa(32);H[b+29|0]=0;c=K[1798]|K[1799]<<8|(K[1800]<<16|K[1801]<<24);d=K[1794]|K[1795]<<8|(K[1796]<<16|K[1797]<<24);H[b+21|0]=d;H[b+22|0]=d>>>8;H[b+23|0]=d>>>16;H[b+24|0]=d>>>24;H[b+25|0]=c;H[b+26|0]=c>>>8;H[b+27|0]=c>>>16;H[b+28|0]=c>>>24;c=K[1793]|K[1794]<<8|(K[1795]<<16|K[1796]<<24);d=K[1789]|K[1790]<<8|(K[1791]<<16|K[1792]<<24);H[b+16|0]=d;H[b+17|0]=d>>>8;H[b+18|0]=d>>>16;H[b+19|0]=d>>>24;H[b+20|0]=c;H[b+21|0]=c>>>8;H[b+22|0]=c>>>16;H[b+23|0]=c>>>24;c=K[1785]|K[1786]<<8|(K[1787]<<16|K[1788]<<24);d=K[1781]|K[1782]<<8|(K[1783]<<16|K[1784]<<24);H[b+8|0]=d;H[b+9|0]=d>>>8;H[b+10|0]=d>>>16;H[b+11|0]=d>>>24;H[b+12|0]=c;H[b+13|0]=c>>>8;H[b+14|0]=c>>>16;H[b+15|0]=c>>>24;c=K[1777]|K[1778]<<8|(K[1779]<<16|K[1780]<<24);d=K[1773]|K[1774]<<8|(K[1775]<<16|K[1776]<<24);H[b|0]=d;H[b+1|0]=d>>>8;H[b+2|0]=d>>>16;H[b+3|0]=d>>>24;H[b+4|0]=c;H[b+5|0]=c>>>8;H[b+6|0]=c>>>16;H[b+7|0]=c>>>24;J[a>>2]=-1;Ga(a+4|0,b,29);na(b);break a}if(!(da[J[J[b>>2]+20>>2]](b)|0)){b=oa(32);H[b+31|0]=0;c=K[1941]|K[1942]<<8|(K[1943]<<16|K[1944]<<24);d=K[1937]|K[1938]<<8|(K[1939]<<16|K[1940]<<24);H[b+23|0]=d;H[b+24|0]=d>>>8;H[b+25|0]=d>>>16;H[b+26|0]=d>>>24;H[b+27|0]=c;H[b+28|0]=c>>>8;H[b+29|0]=c>>>16;H[b+30|0]=c>>>24;c=K[1934]|K[1935]<<8|(K[1936]<<16|K[1937]<<24);d=K[1930]|K[1931]<<8|(K[1932]<<16|K[1933]<<24);H[b+16|0]=d;H[b+17|0]=d>>>8;H[b+18|0]=d>>>16;H[b+19|0]=d>>>24;H[b+20|0]=c;H[b+21|0]=c>>>8;H[b+22|0]=c>>>16;H[b+23|0]=c>>>24;c=K[1926]|K[1927]<<8|(K[1928]<<16|K[1929]<<24);d=K[1922]|K[1923]<<8|(K[1924]<<16|K[1925]<<24);H[b+8|0]=d;H[b+9|0]=d>>>8;H[b+10|0]=d>>>16;H[b+11|0]=d>>>24;H[b+12|0]=c;H[b+13|0]=c>>>8;H[b+14|0]=c>>>16;H[b+15|0]=c>>>24;c=K[1918]|K[1919]<<8|(K[1920]<<16|K[1921]<<24);d=K[1914]|K[1915]<<8|(K[1916]<<16|K[1917]<<24);H[b|0]=d;H[b+1|0]=d>>>8;H[b+2|0]=d>>>16;H[b+3|0]=d>>>24;H[b+4|0]=c;H[b+5|0]=c>>>8;H[b+6|0]=c>>>16;H[b+7|0]=c>>>24;J[a>>2]=-1;Ga(a+4|0,b,31);na(b);break a}da[J[J[b>>2]+24>>2]](a,b);if(J[a>>2]){break a}if(H[a+15|0]<0){na(J[a+4>>2])}if(!(da[J[J[b>>2]+28>>2]](b)|0)){b=Pc(g,1708);J[a>>2]=-1;a=a+4|0;if(H[b+11|0]>=0){c=J[b+4>>2];J[a>>2]=J[b>>2];J[a+4>>2]=c;J[a+8>>2]=J[b+8>>2];break a}Ga(a,J[b>>2],J[b+4>>2]);if(H[b+11|0]>=0){break a}na(J[b>>2]);break a}d=c;c=Pc(g,1214);d=Pb(d,c,0);if(H[c+11|0]<0){na(J[c>>2])}if(d){da[J[J[b>>2]+48>>2]](b)}J[a>>2]=0;J[a+4>>2]=0;J[a+8>>2]=0;J[a+12>>2]=0}ba=g+16|0}function ve(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,K=0,L=0,N=0,O=0,Q=0;o=ba-32|0;ba=o;J[a>>2]=J[d>>2];d=J[c>>2]-J[b>>2]|0;J[a+4>>2]=d;p=J[e+20>>2];if(!J[e+16>>2]&(p|0)<=0|(p|0)<0){d=a+4|0;sa(e,J[e+4>>2],a,d);p=J[e+20>>2];if(!J[e+16>>2]&(p|0)<=0|(p|0)<0){sa(e,J[e+4>>2],d,a+8|0)}d=J[d>>2]}if(d){C=a+12|0;d=C;J[d+12>>2]=0;J[d+16>>2]=0;J[d+4>>2]=J[d>>2];D=a+32|0;d=D;J[d+12>>2]=0;J[d+16>>2]=0;J[d+4>>2]=J[d>>2];E=a+52|0;d=E;J[d+12>>2]=0;J[d+16>>2]=0;J[d+4>>2]=J[d>>2];F=a+72|0;d=F;J[d+12>>2]=0;J[d+16>>2]=0;J[d+4>>2]=J[d>>2];J[o+24>>2]=J[b+8>>2];d=J[b+4>>2];J[o+16>>2]=J[b>>2];J[o+20>>2]=d;J[o+8>>2]=J[c+8>>2];b=J[c+4>>2];J[o>>2]=J[c>>2];J[o+4>>2]=b;c=0;b=0;f=ba-32|0;ba=f;l=a;g=J[a+8>>2];J[f+16>>2]=0;J[f+8>>2]=0;J[f+12>>2]=0;a:{b:{if(g){if(g>>>0>=1073741824){break b}a=g<<2;c=oa(a);J[f+8>>2]=c;b=a+c|0;J[f+16>>2]=b;pa(c,0,a);J[f+12>>2]=b}a=J[l+128>>2];d=J[a>>2];if(d){J[a+4>>2]=d;na(d);g=J[l+8>>2];c=J[f+8>>2];b=J[f+12>>2]}J[a+4>>2]=b;J[a>>2]=c;J[a+8>>2]=J[f+16>>2];c=0;J[f+16>>2]=0;J[f+8>>2]=0;J[f+12>>2]=0;b=0;c:{if(g){if(g>>>0>=1073741824){break c}a=g<<2;b=oa(a);J[f+8>>2]=b;c=a+b|0;J[f+16>>2]=c;pa(b,0,a);J[f+12>>2]=c}a=J[l+140>>2];d=J[a>>2];if(d){J[a+4>>2]=d;na(d);c=J[f+12>>2];b=J[f+8>>2]}J[a+4>>2]=c;J[a>>2]=b;J[a+8>>2]=J[f+16>>2];p=J[o+20>>2];t=J[o+24>>2];d=J[o+4>>2];w=J[o+8>>2];b=J[o>>2];c=J[o+16>>2];J[f+24>>2]=0;J[f+28>>2]=0;J[f+16>>2]=0;J[f+20>>2]=0;J[f+8>>2]=0;J[f+12>>2]=0;fb(f+8|0);a=J[f+24>>2]+J[f+28>>2]|0;q=(a>>>0)/113|0;a=J[J[f+12>>2]+(q<<2)>>2]+P(a-P(q,113)|0,36)|0;J[a+32>>2]=0;J[a+28>>2]=b-c;J[a+24>>2]=0;J[a+16>>2]=d;J[a+20>>2]=w;J[a+12>>2]=b;J[a+4>>2]=p;J[a+8>>2]=t;J[a>>2]=c;g=J[f+28>>2]+1|0;J[f+28>>2]=g;if(g){a=t;K=a&-4;G=a&3;L=l+32|0;N=l+12|0;O=l+72|0;Q=a>>>0<4;while(1){b=J[f+12>>2];i=J[f+24>>2];h=g-1|0;a=i+h|0;c=(a>>>0)/113|0;a=J[b+(c<<2)>>2]+P(a-P(c,113)|0,36)|0;z=J[a+32>>2];c=J[a+24>>2];q=J[a+12>>2];a=J[a>>2];J[f+28>>2]=h;h=J[f+16>>2];if((((b|0)!=(h|0)?P(h-b>>2,113)-1|0:0)-(g+i|0)|0)+1>>>0>=226){na(J[h-4>>2]);J[f+16>>2]=J[f+16>>2]-4}i=J[l>>2];g=(c|0)!=(J[l+8>>2]-1|0)?c+1|0:0;h=g<<2;x=P(z,12);k=x+J[l+140>>2]|0;c=J[h+J[k>>2]>>2];d:{e:{if((i|0)==(c|0)){break e}f:{g:{y=q-a|0;if(y>>>0<=2){h=J[l+116>>2];J[h>>2]=g;c=1;b=J[l+8>>2];if(b>>>0>1){break g}break f}k=J[l+128>>2];b=k+x|0;j=k;k=x+12|0;bb(j+k|0,J[b>>2],J[b+4>>2]);b=h+J[k+J[l+128>>2]>>2]|0;k=J[b>>2]+(1<>2]=k;b=a;h:{if((a|0)==(q|0)){break h}H=J[p+24>>2];I=h+H|0;b=q;c=a;if(!t){if(k>>>0>M[I>>2]){break h}while(1){b=b-1|0;if((c|0)==(b|0)){b=c;break h}if(k>>>0<=M[(h+J[d+24>>2]|0)+(P(b,w)<<2)>>2]){continue}c=c+1|0;if((c|0)!=(b|0)){continue}break}break h}while(1){i=P(c,t)<<2;if(k>>>0>M[i+I>>2]){c=c+1|0;if((c|0)!=(b|0)){continue}break h}while(1){b=b-1|0;if((c|0)==(b|0)){b=c;break h}n=J[d+24>>2]+(P(b,w)<<2)|0;if(k>>>0<=M[n+h>>2]){continue}break}r=i+H|0;A=0;i=0;u=0;if(!Q){while(1){m=i<<2;j=m+r|0;s=J[j>>2];v=j;j=n+m|0;J[v>>2]=J[j>>2];J[j>>2]=s;j=m|4;s=j+r|0;v=J[s>>2];j=j+n|0;J[s>>2]=J[j>>2];J[j>>2]=v;j=m|8;s=j+r|0;v=J[s>>2];j=j+n|0;J[s>>2]=J[j>>2];J[j>>2]=v;m=m|12;j=m+r|0;s=J[j>>2];m=n+m|0;J[j>>2]=J[m>>2];J[m>>2]=s;i=i+4|0;u=u+4|0;if((K|0)!=(u|0)){continue}break}}if(G){while(1){m=i<<2;u=m+r|0;j=J[u>>2];m=n+m|0;J[u>>2]=J[m>>2];J[m>>2]=j;i=i+1|0;A=A+1|0;if((A|0)!=(G|0)){continue}break}}c=c+1|0;if((c|0)!=(b|0)){continue}break}}k=b-a|0;n=q-b|0;if((k|0)!=(n|0)){xc(O,k>>>0>>0)}Ib(N,S(y)^31,(y>>>1|0)-(k>>>0>>0?k:n)|0);j=h;c=J[l+140>>2];h=c+x|0;i=J[h>>2];r=j+i|0;J[r>>2]=J[r>>2]+1;r=z+1|0;bb(c+P(r,12)|0,i,J[h+4>>2]);if((a|0)!=(b|0)){i=J[f+28>>2]+J[f+24>>2]|0;c=J[f+16>>2];h=J[f+12>>2];if((i|0)==(((c|0)!=(h|0)?P(c-h>>2,113)-1|0:0)|0)){fb(f+8|0);i=J[f+24>>2]+J[f+28>>2]|0;h=J[f+12>>2]}c=(i>>>0)/113|0;c=J[h+(c<<2)>>2]+P(i-P(c,113)|0,36)|0;J[c+32>>2]=z;J[c+28>>2]=k;J[c+24>>2]=g;J[c+16>>2]=p;J[c+12>>2]=b;J[c+4>>2]=p;J[c+8>>2]=t;J[c>>2]=a;J[c+20>>2]=t;J[f+28>>2]=J[f+28>>2]+1}if((b|0)==(q|0)){break e}h=J[f+28>>2]+J[f+24>>2]|0;a=J[f+16>>2];c=J[f+12>>2];if((h|0)==(((a|0)!=(c|0)?P(a-c>>2,113)-1|0:0)|0)){fb(f+8|0);h=J[f+24>>2]+J[f+28>>2]|0;c=J[f+12>>2]}a=(h>>>0)/113|0;a=J[c+(a<<2)>>2]+P(h-P(a,113)|0,36)|0;J[a+32>>2]=r;J[a+28>>2]=n;J[a+24>>2]=g;J[a+16>>2]=d;J[a+20>>2]=w;J[a+12>>2]=q;J[a+4>>2]=p;J[a>>2]=b;J[a+8>>2]=t;g=J[f+28>>2]+1|0;J[f+28>>2]=g;break d}while(1){g=(b-1|0)!=(g|0)?g+1|0:0;J[h+(c<<2)>>2]=g;b=J[l+8>>2];c=c+1|0;if(b>>>0>c>>>0){continue}break}}if(!b|(a|0)==(q|0)){break e}h=0;c=1;while(1){g=0;i:{if(!c){c=0;break i}q=J[p+24>>2]+(P(J[p+4>>2],a+h|0)<<2)|0;while(1){c=J[l>>2];i=J[J[l+116>>2]+(g<<2)>>2]<<2;n=J[i+J[k>>2]>>2];if((c|0)!=(n|0)){Ib(L,c-n|0,J[i+q>>2]);b=J[l+8>>2]}c=b;g=g+1|0;if(c>>>0>g>>>0){continue}break}}h=h+1|0;if((y|0)!=(h|0)){continue}break}}g=J[f+28>>2]}if(g){continue}break}}J[f+28>>2]=0;a=J[f+16>>2];g=J[f+12>>2];b=a-g|0;if(b>>>0>=9){while(1){na(J[g>>2]);g=J[f+12>>2]+4|0;J[f+12>>2]=g;a=J[f+16>>2];b=a-g|0;if(b>>>0>8){continue}break}}c=56;j:{switch((b>>>2|0)-1|0){case 1:c=113;case 0:J[f+24>>2]=c;break;default:break j}}k:{if((a|0)==(g|0)){break k}while(1){na(J[g>>2]);g=g+4|0;if((g|0)!=(a|0)){continue}break}a=J[f+16>>2];b=J[f+12>>2];if((a|0)==(b|0)){break k}J[f+16>>2]=a+((b-a|0)+3&-4)}a=J[f+8>>2];if(a){na(a)}ba=f+32|0;break a}qa();B()}qa();B()}eb(C,e);eb(D,e);eb(E,e);eb(F,e)}ba=o+32|0;return 1}function gg(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;l=ba-32|0;ba=l;d=J[a+16>>2];J[a+20>>2]=d;a:{b:{c:{d:{e:{f:{g:{h:{if((d|0)!=J[a+24>>2]){J[d>>2]=b;b=d+4|0;J[a+20>>2]=b;e=d;break h}e=oa(4);J[e>>2]=b;b=e+4|0;J[a+24>>2]=b;J[a+20>>2]=b;J[a+16>>2]=e;if(d){break g}}d=J[a+8>>2];d=J[d+100>>2]-J[d+96>>2]|0;break f}na(d);b=J[a+20>>2];e=J[a+16>>2];if((b|0)==(e|0)){break e}d=J[a+8>>2];d=J[d+100>>2]-J[d+96>>2]|0}if((d|0)>0){q=a+120|0;d=(d|0)/12|0;r=(d|0)<=1?1:d;while(1){i:{j:{e=b-4|0;b=J[e>>2];if((b|0)==-1){break j}d=(b>>>0)/3|0;if(J[J[a+28>>2]+(d>>>3&268435452)>>2]>>>d&1){break j}m=0;while(1){J[a+164>>2]=J[a+164>>2]+1;e=b;g=(b>>>0)/3|0;f=(b|0)==-1;n=f?-1:g;b=J[a+28>>2]+(n>>>3&536870908)|0;J[b>>2]=J[b>>2]|1<>2];k:{if((b|0)!=J[a+80>>2]){J[b>>2]=e;J[a+76>>2]=b+4;break k}i=J[a+72>>2];j=b-i|0;c=j>>2;k=c+1|0;if(k>>>0>1073741823){break d}d=j>>>1|0;k=j>>>0>=2147483644?1073741823:d>>>0>k>>>0?d:k;if(k){if(k>>>0>1073741823){break a}d=oa(k<<2)}else{d=0}h=d+(c<<2)|0;J[h>>2]=e;c=h+4|0;if((b|0)!=(i|0)){while(1){h=h-4|0;b=b-4|0;J[h>>2]=J[b>>2];if((b|0)!=(i|0)){continue}break}}J[a+80>>2]=d+(k<<2);J[a+76>>2]=c;J[a+72>>2]=h;if(!i){break k}na(i)}b=-1;h=J[a+12>>2];b=(e|0)!=-1?J[J[h>>2]+(e<<2)>>2]:b;k=b<<2;p=J[k+J[a+152>>2]>>2];l:{m:{c=J[a+84>>2]+(b>>>3&536870908)|0;d=J[c>>2];b=1<>2]=b|d;if((p|0)==-1){break m}}n:{if(f){break n}b=-1;d=e+1|0;f=(d>>>0)%3|0?d:e-2|0;if((f|0)!=-1){b=J[J[h+12>>2]+(f<<2)>>2]}i=e-P(g,3)|0;o:{p:{if(i){c=e-1|0;break p}c=e+2|0;d=-1;if((c|0)==-1){break o}}d=J[J[h+12>>2]+(c<<2)>>2]}o=(d|0)==-1;j=o?-1:(d>>>0)/3|0;q:{if((f|0)==-1){break q}g=J[h+12>>2];c=J[g+(f<<2)>>2];if((c|0)==-1){break q}f=J[a+28>>2];c=(c>>>0)/3|0;if(J[f+(c>>>3&268435452)>>2]>>>c&1){break q}r:{s:{if(i){h=e-1|0;break s}h=e+2|0;if((h|0)==-1){break r}}c=J[(h<<2)+g>>2];if((c|0)==-1){break r}c=(c>>>0)/3|0;if(J[f+(c>>>3&268435452)>>2]>>>c&1){break r}c=J[a+272>>2];t:{if((c|0)!=J[a+276>>2]){J[c>>2]=1;J[a+272>>2]=c+4;break t}i=J[a+268>>2];j=c-i|0;f=j>>2;g=f+1|0;if(g>>>0>1073741823){break c}c=j>>>1|0;g=j>>>0>=2147483644?1073741823:c>>>0>g>>>0?c:g;if(g){if(g>>>0>1073741823){break a}c=oa(g<<2)}else{c=0}f=c+(f<<2)|0;J[f>>2]=1;c=ta(c,i,j);J[a+276>>2]=c+(g<<2);J[a+272>>2]=f+4;J[a+268>>2]=c;if(!i){break t}na(i)}J[a+168>>2]=J[a+168>>2]+1;u:{if((p|0)==-1){break u}c=J[J[a+152>>2]+k>>2];if(J[J[a+140>>2]+(c>>>3&536870908)>>2]>>>c&1){break u}Hc(a,e,0)}c=J[a+164>>2];J[l+4>>2]=n;e=l+4|0;J[l+16>>2]=e;bg(l+24|0,q,e,l+16|0);J[J[l+24>>2]+12>>2]=c;h=J[a+20>>2];J[h-4>>2]=d;if(J[a+24>>2]!=(h|0)){J[h>>2]=b;J[a+20>>2]=h+4;break i}g=J[a+16>>2];f=h-g|0;e=f>>2;c=e+1|0;if(c>>>0>1073741823){break b}d=f>>>1|0;c=f>>>0>=2147483644?1073741823:c>>>0>>0?d:c;if(c){if(c>>>0>1073741823){break a}d=oa(c<<2)}else{d=0}e=d+(e<<2)|0;J[e>>2]=b;b=e+4|0;if((g|0)!=(h|0)){while(1){e=e-4|0;h=h-4|0;J[e>>2]=J[h>>2];if((g|0)!=(h|0)){continue}break}}J[a+24>>2]=d+(c<<2);J[a+20>>2]=b;J[a+16>>2]=e;if(!g){break i}na(g);break i}if(!o){Qb(a,J[a+164>>2],0,j)}d=J[a+272>>2];if((d|0)!=J[a+276>>2]){J[d>>2]=3;J[a+272>>2]=d+4;break l}g=J[a+268>>2];f=d-g|0;e=f>>2;c=e+1|0;if(c>>>0>1073741823){break c}d=f>>>1|0;c=f>>>0>=2147483644?1073741823:c>>>0>>0?d:c;if(c){if(c>>>0>1073741823){break a}d=oa(c<<2)}else{d=0}e=d+(e<<2)|0;J[e>>2]=3;d=ta(d,g,f);J[a+276>>2]=d+(c<<2);J[a+272>>2]=e+4;J[a+268>>2]=d;if(!g){break l}na(g);break l}c=(b|0)==-1;if(!c){Qb(a,J[a+164>>2],1,c?-1:(b>>>0)/3|0)}v:{w:{if(i){b=e-1|0;break w}b=e+2|0;if((b|0)==-1){break v}}b=J[J[J[a+12>>2]+12>>2]+(b<<2)>>2];if((b|0)==-1){break v}b=(b>>>0)/3|0;if(J[J[a+28>>2]+(b>>>3&268435452)>>2]>>>b&1){break v}b=J[a+272>>2];if((b|0)!=J[a+276>>2]){J[b>>2]=5;J[a+272>>2]=b+4;b=d;break l}g=J[a+268>>2];f=b-g|0;e=f>>2;c=e+1|0;if(c>>>0>1073741823){break c}b=f>>>1|0;c=f>>>0>=2147483644?1073741823:b>>>0>c>>>0?b:c;if(c){if(c>>>0>1073741823){break a}b=oa(c<<2)}else{b=0}e=b+(e<<2)|0;J[e>>2]=5;b=ta(b,g,f);J[a+276>>2]=b+(c<<2);J[a+272>>2]=e+4;J[a+268>>2]=b;if(!g){b=d;break l}na(g);b=d;break l}if(o){break n}Qb(a,J[a+164>>2],0,j)}b=J[a+272>>2];x:{if((b|0)!=J[a+276>>2]){J[b>>2]=7;J[a+272>>2]=b+4;break x}f=J[a+268>>2];c=b-f|0;d=c>>2;e=d+1|0;if(e>>>0>1073741823){break c}b=c>>>1|0;e=c>>>0>=2147483644?1073741823:b>>>0>e>>>0?b:e;if(e){if(e>>>0>1073741823){break a}b=oa(e<<2)}else{b=0}d=b+(d<<2)|0;J[d>>2]=7;b=ta(b,f,c);J[a+276>>2]=b+(e<<2);J[a+272>>2]=d+4;J[a+268>>2]=b;if(!f){break x}na(f)}J[a+20>>2]=J[a+20>>2]-4;break i}b=J[a+272>>2];y:{if((b|0)!=J[a+276>>2]){J[b>>2]=0;J[a+272>>2]=b+4;break y}g=J[a+268>>2];f=b-g|0;d=f>>2;c=d+1|0;if(c>>>0>1073741823){break c}b=f>>>1|0;c=f>>>0>=2147483644?1073741823:b>>>0>c>>>0?b:c;if(c){if(c>>>0>1073741823){break a}b=oa(c<<2)}else{b=0}d=b+(d<<2)|0;J[d>>2]=0;b=ta(b,g,f);J[a+276>>2]=b+(c<<2);J[a+272>>2]=d+4;J[a+268>>2]=b;if(!g){break y}na(g)}b=-1;if((e|0)==-1){break l}d=e+1|0;d=(d>>>0)%3|0?d:e-2|0;if((d|0)==-1){break l}b=J[J[J[a+12>>2]+12>>2]+(d<<2)>>2]}m=m+1|0;if((r|0)!=(m|0)){continue}break}break i}J[a+20>>2]=e}b=J[a+20>>2];if((b|0)!=J[a+16>>2]){continue}break}break e}f=J[a+28>>2];while(1){d=b-4|0;c=J[d>>2];z:{if((c|0)!=-1){c=(c>>>0)/3|0;if(!(J[f+(c>>>3&268435452)>>2]>>>c&1)){break z}}J[a+20>>2]=d;b=d}if((b|0)!=(e|0)){continue}break}}ba=l+32|0;return 1}qa();B()}qa();B()}qa();B()}xa();B()}function $c(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=Q(0),n=Q(0),o=0;a:{b:{if(!d){break b}c:{switch(J[a+28>>2]-1|0){case 0:e=K[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=J[a>>2];h=J[e>>2];k=J[a+48>>2];b=Hl(J[a+40>>2],J[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=J[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}J[(g<<2)+d>>2]=H[b|0];b=b+1|0;g=g+1|0;e=K[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 1:e=K[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=J[a>>2];h=J[e>>2];k=J[a+48>>2];b=Hl(J[a+40>>2],J[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=J[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}J[(g<<2)+d>>2]=K[b|0];b=b+1|0;g=g+1|0;e=K[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 2:e=K[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=J[a>>2];h=J[e>>2];k=J[a+48>>2];b=Hl(J[a+40>>2],J[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=J[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}J[(g<<2)+d>>2]=I[b>>1];b=b+2|0;g=g+1|0;e=K[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 3:e=K[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=J[a>>2];h=J[e>>2];k=J[a+48>>2];b=Hl(J[a+40>>2],J[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=J[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}J[(g<<2)+d>>2]=L[b>>1];b=b+2|0;g=g+1|0;e=K[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 4:e=K[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=J[a>>2];h=J[e>>2];k=J[a+48>>2];b=Hl(J[a+40>>2],J[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=J[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}J[(g<<2)+d>>2]=J[b>>2];b=b+4|0;g=g+1|0;e=K[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 5:e=K[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=J[a>>2];h=J[e>>2];k=J[a+48>>2];b=Hl(J[a+40>>2],J[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=J[e+4>>2];while(1){if(b>>>0>=h>>>0){return 0}e=J[b>>2];if((e|0)<0){break b}J[(g<<2)+d>>2]=e;b=b+4|0;g=g+1|0;e=K[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 6:e=K[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=J[a>>2];h=J[e>>2];k=J[a+48>>2];b=Hl(J[a+40>>2],J[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;k=J[e+4>>2];while(1){if(b>>>0>=k>>>0){break b}h=J[b+4>>2];e=J[b>>2];if(e- -2147483648>>>0<2147483648?h+1|0:h){break b}J[(g<<2)+d>>2]=e;b=b+8|0;g=g+1|0;e=K[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 7:e=K[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=J[a>>2];h=J[e>>2];k=J[a+48>>2];b=Hl(J[a+40>>2],J[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=J[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}k=J[b+4>>2];e=J[b>>2];if(!k&e>>>0>2147483647|k){break b}J[(g<<2)+d>>2]=e;b=b+8|0;g=g+1|0;e=K[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 8:d:{e:{e=K[a+24|0];c=c&255;if(!(c>>>0>e>>>0?e:c)){break e}e=J[a>>2];j=J[e>>2];g=j;f=J[a+48>>2];b=Hl(J[a+40>>2],J[a+44>>2],b,0);i=b;b=b+f|0;g=b+g|0;f=J[e+4>>2];e=f-j|0;if(!K[a+32|0]){j=0;if((b|0)>=(e|0)){break d}b=0;while(1){m=N[g>>2];if(m>=Q(2147483648)|m>2]=i;b=b+1|0;e=K[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break e}g=g+4|0;if(f>>>0>g>>>0){continue}break}break d}j=0;if((b|0)>=(e|0)){break d}b=0;while(1){m=N[g>>2];if(m>=Q(2147483648)|mQ(1)){break d}e=(b<<2)+d|0;l=V(+m*2147483647+.5);f:{if(R(l)<2147483648){i=~~l;break f}i=-2147483648}J[e>>2]=i;b=b+1|0;e=K[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break e}g=g+4|0;if(f>>>0>g>>>0){continue}break}break d}j=1;if(c>>>0<=e>>>0){break d}pa((e<<2)+d|0,0,c-e<<2)}return j;case 9:g:{h:{e=K[a+24|0];c=c&255;if(!(c>>>0>e>>>0?e:c)){break h}e=J[a>>2];j=J[e>>2];g=j;f=J[a+48>>2];b=Hl(J[a+40>>2],J[a+44>>2],b,0);i=b;b=b+f|0;g=b+g|0;f=J[e+4>>2];e=f-j|0;if(!K[a+32|0]){j=0;if((b|0)>=(e|0)){break g}b=0;while(1){l=O[g>>3];if(l>=2147483647|l<-2147483648|l!=l){break g}o=R(l);if(o==Infinity){break g}e=(b<<2)+d|0;if(o<2147483648){i=~~l}else{i=-2147483648}J[e>>2]=i;b=b+1|0;e=K[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break h}g=g+8|0;if(f>>>0>g>>>0){continue}break}break g}j=0;if((b|0)>=(e|0)){break g}b=0;while(1){l=O[g>>3];if(l>=2147483647|l<-2147483648|(R(l)==Infinity|l!=l)){break g}if(l<0|l>1){break g}e=(b<<2)+d|0;l=V(l*2147483647+.5);i:{if(R(l)<2147483648){i=~~l;break i}i=-2147483648}J[e>>2]=i;b=b+1|0;e=K[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break h}g=g+8|0;if(f>>>0>g>>>0){continue}break}break g}j=1;if(c>>>0<=e>>>0){break g}pa((e<<2)+d|0,0,c-e<<2)}return j;case 10:break c;default:break b}}e=K[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=J[a>>2];h=J[e>>2];k=J[a+48>>2];b=Hl(J[a+40>>2],J[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=J[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}J[(g<<2)+d>>2]=K[b|0];b=b+1|0;g=g+1|0;e=K[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}pa((e<<2)+d|0,0,(c&255)-e<<2)}return j}pa((e<<2)+d|0,0,(c&255)-e<<2);return 1}function fe(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;g=J[b+48>>2];if(!g){b=oa(32);H[b+23|0]=0;c=K[1670]|K[1671]<<8|(K[1672]<<16|K[1673]<<24);e=K[1666]|K[1667]<<8|(K[1668]<<16|K[1669]<<24);H[b+15|0]=e;H[b+16|0]=e>>>8;H[b+17|0]=e>>>16;H[b+18|0]=e>>>24;H[b+19|0]=c;H[b+20|0]=c>>>8;H[b+21|0]=c>>>16;H[b+22|0]=c>>>24;c=K[1663]|K[1664]<<8|(K[1665]<<16|K[1666]<<24);e=K[1659]|K[1660]<<8|(K[1661]<<16|K[1662]<<24);H[b+8|0]=e;H[b+9|0]=e>>>8;H[b+10|0]=e>>>16;H[b+11|0]=e>>>24;H[b+12|0]=c;H[b+13|0]=c>>>8;H[b+14|0]=c>>>16;H[b+15|0]=c>>>24;c=K[1655]|K[1656]<<8|(K[1657]<<16|K[1658]<<24);e=K[1651]|K[1652]<<8|(K[1653]<<16|K[1654]<<24);H[b|0]=e;H[b+1|0]=e>>>8;H[b+2|0]=e>>>16;H[b+3|0]=e>>>24;H[b+4|0]=c;H[b+5|0]=c>>>8;H[b+6|0]=c>>>16;H[b+7|0]=c>>>24;J[a>>2]=-1;Ga(a+4|0,b,23);na(b);return}h=J[b+52>>2];if(!h){e=ba-32|0;ba=e;d=oa(16);J[e+16>>2]=d;J[e+20>>2]=15;J[e+24>>2]=-2147483632;f=K[1587]|K[1588]<<8|(K[1589]<<16|K[1590]<<24);h=K[1583]|K[1584]<<8|(K[1585]<<16|K[1586]<<24);H[d+7|0]=h;H[d+8|0]=h>>>8;H[d+9|0]=h>>>16;H[d+10|0]=h>>>24;H[d+11|0]=f;H[d+12|0]=f>>>8;H[d+13|0]=f>>>16;H[d+14|0]=f>>>24;f=K[1580]|K[1581]<<8|(K[1582]<<16|K[1583]<<24);h=K[1576]|K[1577]<<8|(K[1578]<<16|K[1579]<<24);H[d|0]=h;H[d+1|0]=h>>>8;H[d+2|0]=h>>>16;H[d+3|0]=h>>>24;H[d+4|0]=f;H[d+5|0]=f>>>8;H[d+6|0]=f>>>16;H[d+7|0]=f>>>24;H[d+15|0]=0;h=b+4|0;j=Bb(h,e+16|0,-1);if(H[e+27|0]<0){na(J[e+16>>2])}a:{b:{c:{d:{e:{switch(j+1|0){case 1:d=oa(56);J[d>>2]=0;J[d+4>>2]=0;J[d+48>>2]=0;J[d+52>>2]=0;J[d+40>>2]=0;J[d+44>>2]=0;J[d+32>>2]=0;J[d+36>>2]=0;J[d+24>>2]=0;J[d+28>>2]=0;J[d+16>>2]=0;J[d+20>>2]=0;J[d+8>>2]=0;J[d+12>>2]=0;d=nc(d);J[d>>2]=12672;break c;case 0:break e;default:break d}}if((cb(h)|0)!=10){break d}d=oa(56);J[d>>2]=0;J[d+4>>2]=0;J[d+48>>2]=0;J[d+52>>2]=0;J[d+40>>2]=0;J[d+44>>2]=0;J[d+32>>2]=0;J[d+36>>2]=0;J[d+24>>2]=0;J[d+28>>2]=0;J[d+16>>2]=0;J[d+20>>2]=0;J[d+8>>2]=0;J[d+12>>2]=0;d=nc(d);J[d>>2]=12672;break c}J[e+12>>2]=0;f:{i=J[g+12>>2];f=J[g+8>>2];if((i-f|0)>0){d=0;while(1){k=J[J[(d<<2)+f>>2]+28>>2];if(k-1>>>0>=6){if((k|0)!=9){break f}d=oa(32);J[e+16>>2]=d;J[e+20>>2]=17;J[e+24>>2]=-2147483616;H[d+16|0]=K[1261];f=K[1257]|K[1258]<<8|(K[1259]<<16|K[1260]<<24);i=K[1253]|K[1254]<<8|(K[1255]<<16|K[1256]<<24);H[d+8|0]=i;H[d+9|0]=i>>>8;H[d+10|0]=i>>>16;H[d+11|0]=i>>>24;H[d+12|0]=f;H[d+13|0]=f>>>8;H[d+14|0]=f>>>16;H[d+15|0]=f>>>24;f=K[1249]|K[1250]<<8|(K[1251]<<16|K[1252]<<24);i=K[1245]|K[1246]<<8|(K[1247]<<16|K[1248]<<24);H[d|0]=i;H[d+1|0]=i>>>8;H[d+2|0]=i>>>16;H[d+3|0]=i>>>24;H[d+4|0]=f;H[d+5|0]=f>>>8;H[d+6|0]=f>>>16;H[d+7|0]=f>>>24;H[d+17|0]=0;d=jb(h,e+12|0,e+16|0,-1);if(H[e+27|0]<0){na(J[e+16>>2])}if((d|0)<=0){break f}f=J[g+8>>2];i=J[g+12>>2];d=J[e+12>>2]}d=d+1|0;J[e+12>>2]=d;if(i-f>>2>(d|0)){continue}break}}d=oa(56);J[d>>2]=0;J[d+4>>2]=0;J[d+48>>2]=0;J[d+52>>2]=0;J[d+40>>2]=0;J[d+44>>2]=0;J[d+32>>2]=0;J[d+36>>2]=0;J[d+24>>2]=0;J[d+28>>2]=0;J[d+16>>2]=0;J[d+20>>2]=0;J[d+8>>2]=0;J[d+12>>2]=0;d=nc(d);J[d>>2]=12564;break c}if((j|0)==1){break b}d=oa(56);J[d>>2]=0;J[d+4>>2]=0;J[d+48>>2]=0;J[d+52>>2]=0;J[d+40>>2]=0;J[d+44>>2]=0;J[d+32>>2]=0;J[d+36>>2]=0;J[d+24>>2]=0;J[d+28>>2]=0;J[d+16>>2]=0;J[d+20>>2]=0;J[d+8>>2]=0;J[d+12>>2]=0;d=nc(d);J[d>>2]=12672}J[d+4>>2]=g;Qf(a,d,h,c);if(!J[a>>2]){if(H[a+15|0]<0){na(J[a+4>>2])}c=J[d+52>>2];J[b+44>>2]=0;J[b+40>>2]=c;J[a+8>>2]=0;J[a+12>>2]=0;J[a>>2]=0;J[a+4>>2]=0}da[J[J[d>>2]+4>>2]](d);break a}b=oa(32);H[b+24|0]=0;c=K[1853]|K[1854]<<8|(K[1855]<<16|K[1856]<<24);d=K[1849]|K[1850]<<8|(K[1851]<<16|K[1852]<<24);H[b+16|0]=d;H[b+17|0]=d>>>8;H[b+18|0]=d>>>16;H[b+19|0]=d>>>24;H[b+20|0]=c;H[b+21|0]=c>>>8;H[b+22|0]=c>>>16;H[b+23|0]=c>>>24;c=K[1845]|K[1846]<<8|(K[1847]<<16|K[1848]<<24);d=K[1841]|K[1842]<<8|(K[1843]<<16|K[1844]<<24);H[b+8|0]=d;H[b+9|0]=d>>>8;H[b+10|0]=d>>>16;H[b+11|0]=d>>>24;H[b+12|0]=c;H[b+13|0]=c>>>8;H[b+14|0]=c>>>16;H[b+15|0]=c>>>24;c=K[1837]|K[1838]<<8|(K[1839]<<16|K[1840]<<24);d=K[1833]|K[1834]<<8|(K[1835]<<16|K[1836]<<24);H[b|0]=d;H[b+1|0]=d>>>8;H[b+2|0]=d>>>16;H[b+3|0]=d>>>24;H[b+4|0]=c;H[b+5|0]=c>>>8;H[b+6|0]=c>>>16;H[b+7|0]=c>>>24;J[a>>2]=-1;Ga(a+4|0,b,24);na(b)}ba=e+32|0;return}d=ba-16|0;ba=d;e=oa(16);J[d>>2]=e;J[d+4>>2]=15;J[d+8>>2]=-2147483632;g=K[1587]|K[1588]<<8|(K[1589]<<16|K[1590]<<24);f=K[1583]|K[1584]<<8|(K[1585]<<16|K[1586]<<24);H[e+7|0]=f;H[e+8|0]=f>>>8;H[e+9|0]=f>>>16;H[e+10|0]=f>>>24;H[e+11|0]=g;H[e+12|0]=g>>>8;H[e+13|0]=g>>>16;H[e+14|0]=g>>>24;g=K[1580]|K[1581]<<8|(K[1582]<<16|K[1583]<<24);f=K[1576]|K[1577]<<8|(K[1578]<<16|K[1579]<<24);H[e|0]=f;H[e+1|0]=f>>>8;H[e+2|0]=f>>>16;H[e+3|0]=f>>>24;H[e+4|0]=g;H[e+5|0]=g>>>8;H[e+6|0]=g>>>16;H[e+7|0]=g>>>24;H[e+15|0]=0;g=b+4|0;e=Bb(g,d,-1);if(H[d+11|0]<0){na(J[d>>2])}g:{h:{i:{switch(e+1|0){case 0:if((cb(g)|0)==10){break h}break;case 2:break i;default:break h}}e=Tf(oa(68));J[e+64>>2]=0;J[e>>2]=10404;break g}e=Tf(oa(64));J[e>>2]=12280}J[e+56>>2]=h;J[e+4>>2]=h;Qf(a,e,g,c);if(!J[a>>2]){if(H[a+15|0]<0){na(J[a+4>>2])}J[b+40>>2]=J[e+52>>2];J[b+44>>2]=J[e+60>>2];J[a+8>>2]=0;J[a+12>>2]=0;J[a>>2]=0;J[a+4>>2]=0}da[J[J[e>>2]+4>>2]](e);ba=d+16|0}function ci(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=Q(0),u=0,v=0,w=0,x=0,y=Q(0),z=0,A=0;c=ba+-64|0;ba=c;f=J[a+80>>2];J[c+40>>2]=0;J[c+44>>2]=0;J[c+56>>2]=a;J[c+48>>2]=a;J[c+32>>2]=0;J[c+36>>2]=0;J[c+52>>2]=1065353216;df(c+32|0,f);f=J[a+80>>2];J[c+24>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;a:{b:{c:{d:{if(!f){break d}if(f>>>0>=1073741824){break a}f=f<<2;s=oa(f);J[c+16>>2]=s;b=f+s|0;J[c+24>>2]=b;pa(s,0,f);J[c+20>>2]=b;J[c+8>>2]=0;J[c>>2]=0;J[c+4>>2]=0;z=c+40|0;f=0;while(1){e=0;b=J[c+48>>2];m=J[b+8>>2];n=J[b+12>>2]-m|0;v=(n|0)<=0;e:{if(v){break e}b=n>>>2|0;b=b>>>0<=1?1:b;i=b&1;h=0;if(n>>>0>=8){g=b&1073741822;b=0;while(1){j=h<<2;d=J[j+m>>2];if(K[d+84|0]){d=f}else{d=J[J[d+68>>2]+(f<<2)>>2]}h=h+2|0;l=d<<3^e<<2;e=J[m+(j|4)>>2];if(K[e+84|0]){d=f}else{d=J[J[e+68>>2]+(f<<2)>>2]}e=l^d<<2;b=b+2|0;if((g|0)!=(b|0)){continue}break}}if(!i){break e}b=J[m+(h<<2)>>2];if(K[b+84|0]){b=f}else{b=J[J[b+68>>2]+(f<<2)>>2]}e=b<<2^e<<1}f:{g:{j=J[c+36>>2];if(!j){break g}g=J[c+32>>2];i=Kl(j)>>>0>1;b=j-1&e;h:{if(!i){break h}b=e;if(b>>>0>>0){break h}b=(e>>>0)%(j>>>0)|0}d=b;b=J[g+(d<<2)>>2];if(!b){break g}k=J[b>>2];if(!k){break g}p=J[c+56>>2];i:{j:{if(!i){w=j-1|0;while(1){b=J[k+4>>2];k:{if((b|0)!=(e|0)){if((d|0)==(b&w)){break k}break g}x=J[p+8>>2];b=J[p+12>>2]-x|0;if((b|0)<4){break i}i=J[k+8>>2];o=b>>2;A=(o|0)<=1?1:o;l=0;h=0;while(1){b=f;g=J[x+(h<<2)>>2];if(K[g+84|0]){g=i}else{g=J[g+68>>2];b=J[g+(f<<2)>>2];g=J[g+(i<<2)>>2]}if((b|0)==(g|0)){h=h+1|0;l=(o|0)<=(h|0);if((h|0)!=(A|0)){continue}}break}if(l){break j}}k=J[k>>2];if(k){continue}break}break g}while(1){b=J[k+4>>2];l:{if((b|0)!=(e|0)){if(b>>>0>=j>>>0){b=(b>>>0)%(j>>>0)|0}if((b|0)==(d|0)){break l}break g}w=J[p+8>>2];b=J[p+12>>2]-w|0;if((b|0)<4){break i}i=J[k+8>>2];o=b>>2;x=(o|0)<=1?1:o;l=0;h=0;while(1){b=f;g=J[w+(h<<2)>>2];if(K[g+84|0]){g=i}else{g=J[g+68>>2];b=J[g+(f<<2)>>2];g=J[g+(i<<2)>>2]}if((b|0)==(g|0)){h=h+1|0;l=(o|0)<=(h|0);if((h|0)!=(x|0)){continue}}break}if(l){break j}}k=J[k>>2];if(k){continue}break}break g}if(!k){break g}}J[(f<<2)+s>>2]=J[k+12>>2];break f}m:{if(v){e=0;break m}b=n>>>2|0;b=b>>>0<=1?1:b;i=b&1;e=0;h=0;if(n>>>0>=8){g=b&1073741822;b=0;while(1){l=h<<2;d=J[l+m>>2];if(K[d+84|0]){d=f}else{d=J[J[d+68>>2]+(f<<2)>>2]}h=h+2|0;n=d<<3^e<<2;e=J[m+(l|4)>>2];if(K[e+84|0]){d=f}else{d=J[J[e+68>>2]+(f<<2)>>2]}e=n^d<<2;b=b+2|0;if((g|0)!=(b|0)){continue}break}}if(!i){break m}b=J[m+(h<<2)>>2];if(K[b+84|0]){b=f}else{b=J[J[b+68>>2]+(f<<2)>>2]}e=b<<2^e<<1}n:{o:{if(!j){break o}m=j-1|0;if(m&j){k=e>>>0>=j>>>0?(e>>>0)%(j>>>0)|0:e;g=J[J[c+32>>2]+(k<<2)>>2];if(!g){break o}m=J[c+56>>2];while(1){g=J[g>>2];if(!g){break o}b=J[g+4>>2];if((b|0)!=(e|0)){if(b>>>0>=j>>>0){b=(b>>>0)%(j>>>0)|0}if((b|0)!=(k|0)){break o}}p=J[m+8>>2];b=J[m+12>>2]-p|0;if((b|0)<4){break n}d=J[g+8>>2];n=b>>2;o=(n|0)<=1?1:n;l=0;h=0;while(1){b=f;i=J[p+(h<<2)>>2];if(K[i+84|0]){i=d}else{i=J[i+68>>2];b=J[i+(f<<2)>>2];i=J[i+(d<<2)>>2]}if((b|0)==(i|0)){h=h+1|0;l=(n|0)<=(h|0);if((h|0)!=(o|0)){continue}}break}if(!l){continue}break}break n}k=e&m;g=J[J[c+32>>2]+(k<<2)>>2];if(!g){break o}n=J[c+56>>2];while(1){g=J[g>>2];if(!g){break o}b=J[g+4>>2];if((b|0)!=(e|0)&(b&m)!=(k|0)){break o}o=J[n+8>>2];b=J[n+12>>2]-o|0;if((b|0)<4){break n}d=J[g+8>>2];p=b>>2;v=(p|0)<=1?1:p;l=0;h=0;while(1){b=f;i=J[o+(h<<2)>>2];if(K[i+84|0]){i=d}else{i=J[i+68>>2];b=J[i+(f<<2)>>2];i=J[i+(d<<2)>>2]}if((b|0)==(i|0)){h=h+1|0;l=(p|0)<=(h|0);if((h|0)!=(v|0)){continue}}break}if(!l){continue}break}break n}d=oa(16);J[d+8>>2]=f;J[d+4>>2]=e;J[d>>2]=0;J[d+12>>2]=u;y=Q(J[c+44>>2]+1>>>0);t=N[c+52>>2];p:{if(y>Q(t*Q(j>>>0))?0:j){break p}g=c+32|0;i=(j-1&j)!=0|j>>>0<3|j<<1;t=Q(W(Q(y/t)));q:{if(t=Q(0)){b=~~t>>>0;break q}b=0}df(g,b>>>0>>0?i:b);j=J[c+36>>2];b=j-1|0;if(!(b&j)){k=b&e;break p}if(e>>>0>>0){k=e;break p}k=(e>>>0)%(j>>>0)|0}e=J[c+32>>2]+(k<<2)|0;b=J[e>>2];r:{s:{if(!b){J[d>>2]=J[c+40>>2];J[c+40>>2]=d;J[e>>2]=z;b=J[d>>2];if(!b){break r}b=J[b+4>>2];e=j-1|0;t:{if(!(e&j)){b=b&e;break t}if(b>>>0>>0){break t}b=(b>>>0)%(j>>>0)|0}b=J[c+32>>2]+(b<<2)|0;break s}J[d>>2]=J[b>>2]}J[b>>2]=d}J[c+44>>2]=J[c+44>>2]+1;q=J[c+8>>2];r=J[c+4>>2];s=J[c+16>>2]}J[(f<<2)+s>>2]=u;u=u+1|0;if((q|0)!=(r|0)){J[r>>2]=f;r=r+4|0;J[c+4>>2]=r;break f}e=J[c>>2];b=q-e|0;i=b>>2;d=i+1|0;if(d>>>0>=1073741824){break c}g=b>>>1|0;d=b>>>0>=2147483644?1073741823:d>>>0>>0?g:d;if(d){if(d>>>0>=1073741824){break b}b=oa(d<<2)}else{b=0}h=b+(i<<2)|0;J[h>>2]=f;r=h+4|0;if((e|0)!=(q|0)){while(1){h=h-4|0;q=q-4|0;J[h>>2]=J[q>>2];if((e|0)!=(q|0)){continue}break}}q=b+(d<<2)|0;J[c+8>>2]=q;J[c+4>>2]=r;J[c>>2]=h;if(e){na(e)}}f=f+1|0;b=J[a+80>>2];if(f>>>0>>0){continue}break}if((b|0)!=(u|0)){da[J[J[a>>2]+24>>2]](a,c+16|0,c);J[a+80>>2]=u}a=J[c>>2];if(!a){break d}J[c+4>>2]=a;na(a)}a=J[c+16>>2];if(a){J[c+20>>2]=a;na(a)}f=J[c+40>>2];if(f){while(1){a=J[f>>2];na(f);f=a;if(f){continue}break}}a=J[c+32>>2];J[c+32>>2]=0;if(a){na(a)}ba=c- -64|0;return}qa();B()}xa();B()}qa();B()}function hb(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=Q(0),l=0,m=0,n=Q(0),o=0;a:{if(!d){break a}b:{c:{switch(J[a+28>>2]-1|0){case 0:e=K[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=J[a>>2];h=J[e>>2];i=J[a+48>>2];b=Hl(J[a+40>>2],J[a+44>>2],b,0);j=b;b=b+i|0;b=b+h|0;h=J[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=(g<<3)+d|0;i=H[b|0];J[e>>2]=i;J[e+4>>2]=i>>31;b=b+1|0;g=g+1|0;e=K[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 1:e=K[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=J[a>>2];h=J[e>>2];i=J[a+48>>2];b=Hl(J[a+40>>2],J[a+44>>2],b,0);j=b;b=b+i|0;b=b+h|0;h=J[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=(g<<3)+d|0;J[e>>2]=K[b|0];J[e+4>>2]=0;b=b+1|0;g=g+1|0;e=K[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 2:e=K[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=J[a>>2];h=J[e>>2];i=J[a+48>>2];b=Hl(J[a+40>>2],J[a+44>>2],b,0);j=b;b=b+i|0;b=b+h|0;h=J[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=(g<<3)+d|0;i=I[b>>1];J[e>>2]=i;J[e+4>>2]=i>>31;b=b+2|0;g=g+1|0;e=K[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 3:e=K[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=J[a>>2];h=J[e>>2];i=J[a+48>>2];b=Hl(J[a+40>>2],J[a+44>>2],b,0);j=b;b=b+i|0;b=b+h|0;h=J[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=(g<<3)+d|0;J[e>>2]=L[b>>1];J[e+4>>2]=0;b=b+2|0;g=g+1|0;e=K[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 4:e=K[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=J[a>>2];h=J[e>>2];i=J[a+48>>2];b=Hl(J[a+40>>2],J[a+44>>2],b,0);j=b;b=b+i|0;b=b+h|0;h=J[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=(g<<3)+d|0;i=J[b>>2];J[e>>2]=i;J[e+4>>2]=i>>31;b=b+4|0;g=g+1|0;e=K[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 5:e=K[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=J[a>>2];h=J[e>>2];i=J[a+48>>2];b=Hl(J[a+40>>2],J[a+44>>2],b,0);j=b;b=b+i|0;b=b+h|0;h=J[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=(g<<3)+d|0;J[e>>2]=J[b>>2];J[e+4>>2]=0;b=b+4|0;g=g+1|0;e=K[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 6:e=K[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=J[a>>2];h=J[e>>2];i=J[a+48>>2];b=Hl(J[a+40>>2],J[a+44>>2],b,0);j=b;b=b+i|0;b=b+h|0;h=J[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}i=J[b+4>>2];e=(g<<3)+d|0;J[e>>2]=J[b>>2];J[e+4>>2]=i;b=b+8|0;g=g+1|0;e=K[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 7:e=K[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=J[a>>2];h=J[e>>2];i=J[a+48>>2];b=Hl(J[a+40>>2],J[a+44>>2],b,0);j=b;b=b+i|0;b=b+h|0;h=J[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=J[b>>2];i=J[b+4>>2];if((i|0)<0){break a}j=(g<<3)+d|0;J[j>>2]=e;J[j+4>>2]=i;b=b+8|0;g=g+1|0;e=K[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 8:d:{e=K[a+24|0];f=c&255;if(!(e>>>0>>0?e:f)){break d}if(K[a+32|0]){break a}e=J[a+48>>2];b=Hl(J[a+40>>2],J[a+44>>2],b,0);j=b;b=b+e|0;e=J[a>>2];i=J[e+4>>2];e=J[e>>2];if((b|0)>=(i-e|0)){break a}g=b+e|0;h=c&255;b=0;while(1){k=N[g>>2];if(k>=Q(0x8000000000000000)|k=Q(1)?~~(k>Q(0)?Q(T(Q(V(Q(k*Q(2.3283064365386963e-10)))),Q(4294967296))):Q(W(Q(Q(k-Q(~~k>>>0>>>0))*Q(2.3283064365386963e-10)))))>>>0:0;m=~~k>>>0;break e}j=-2147483648;m=0}J[e>>2]=m;J[e+4>>2]=j;b=b+1|0;e=K[a+24|0];if(b>>>0>=(e>>>0>>0?e:h)>>>0){break d}g=g+4|0;if(i>>>0>g>>>0){continue}break}break a}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 9:f:{e=K[a+24|0];f=c&255;if(!(e>>>0>>0?e:f)){break f}if(K[a+32|0]){break a}e=J[a+48>>2];b=Hl(J[a+40>>2],J[a+44>>2],b,0);j=b;b=b+e|0;e=J[a>>2];i=J[e+4>>2];e=J[e>>2];if((b|0)>=(i-e|0)){break a}g=b+e|0;h=c&255;b=0;while(1){l=O[g>>3];if(l>=0x8000000000000000|l<-0x8000000000000000|l!=l){break a}o=R(l);if(o==Infinity){break a}e=(b<<3)+d|0;g:{if(o<0x8000000000000000){j=R(l)>=1?~~(l>0?T(V(l*2.3283064365386963e-10),4294967295):W((l-+(~~l>>>0>>>0))*2.3283064365386963e-10))>>>0:0;m=~~l>>>0;break g}j=-2147483648;m=0}J[e>>2]=m;J[e+4>>2]=j;b=b+1|0;e=K[a+24|0];if(b>>>0>=(e>>>0>>0?e:h)>>>0){break f}g=g+8|0;if(i>>>0>g>>>0){continue}break}break a}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 10:break c;default:break a}}e=K[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=J[a>>2];h=J[e>>2];i=J[a+48>>2];b=Hl(J[a+40>>2],J[a+44>>2],b,0);j=b;b=b+i|0;b=b+h|0;h=J[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=(g<<3)+d|0;J[e>>2]=K[b|0];J[e+4>>2]=0;b=b+1|0;g=g+1|0;e=K[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0}pa(d,0,a<<3)}}function ak(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;e=ba-16|0;ba=e;f=J[a+48>>2];b=oa(32);J[e>>2]=b;J[e+4>>2]=20;J[e+8>>2]=-2147483616;c=K[1359]|K[1360]<<8|(K[1361]<<16|K[1362]<<24);H[b+16|0]=c;H[b+17|0]=c>>>8;H[b+18|0]=c>>>16;H[b+19|0]=c>>>24;c=K[1355]|K[1356]<<8|(K[1357]<<16|K[1358]<<24);d=K[1351]|K[1352]<<8|(K[1353]<<16|K[1354]<<24);H[b+8|0]=d;H[b+9|0]=d>>>8;H[b+10|0]=d>>>16;H[b+11|0]=d>>>24;H[b+12|0]=c;H[b+13|0]=c>>>8;H[b+14|0]=c>>>16;H[b+15|0]=c>>>24;c=K[1347]|K[1348]<<8|(K[1349]<<16|K[1350]<<24);d=K[1343]|K[1344]<<8|(K[1345]<<16|K[1346]<<24);H[b|0]=d;H[b+1|0]=d>>>8;H[b+2|0]=d>>>16;H[b+3|0]=d>>>24;H[b+4|0]=c;H[b+5|0]=c>>>8;H[b+6|0]=c>>>16;H[b+7|0]=c>>>24;H[b+20|0]=0;f=Lf(f+24|0,e);if(H[e+11|0]<0){na(J[e>>2])}g=J[a+48>>2];b=oa(32);J[e>>2]=b;J[e+4>>2]=22;J[e+8>>2]=-2147483616;c=K[1338]|K[1339]<<8|(K[1340]<<16|K[1341]<<24);d=K[1334]|K[1335]<<8|(K[1336]<<16|K[1337]<<24);H[b+14|0]=d;H[b+15|0]=d>>>8;H[b+16|0]=d>>>16;H[b+17|0]=d>>>24;H[b+18|0]=c;H[b+19|0]=c>>>8;H[b+20|0]=c>>>16;H[b+21|0]=c>>>24;c=K[1332]|K[1333]<<8|(K[1334]<<16|K[1335]<<24);d=K[1328]|K[1329]<<8|(K[1330]<<16|K[1331]<<24);H[b+8|0]=d;H[b+9|0]=d>>>8;H[b+10|0]=d>>>16;H[b+11|0]=d>>>24;H[b+12|0]=c;H[b+13|0]=c>>>8;H[b+14|0]=c>>>16;H[b+15|0]=c>>>24;c=K[1324]|K[1325]<<8|(K[1326]<<16|K[1327]<<24);d=K[1320]|K[1321]<<8|(K[1322]<<16|K[1323]<<24);H[b|0]=d;H[b+1|0]=d>>>8;H[b+2|0]=d>>>16;H[b+3|0]=d>>>24;H[b+4|0]=c;H[b+5|0]=c>>>8;H[b+6|0]=c>>>16;H[b+7|0]=c>>>24;H[b+22|0]=0;g=Lf(g+24|0,e);if(H[e+11|0]<0){na(J[e>>2])}b=J[a+64>>2];J[a+64>>2]=0;if(b){da[J[J[b>>2]+4>>2]](b)}b=J[a+56>>2];h=J[b+100>>2];i=J[a+48>>2];j=J[b+96>>2];b=oa(32);J[e>>2]=b;J[e+4>>2]=18;J[e+8>>2]=-2147483616;c=K[1566]|K[1567]<<8;H[b+16|0]=c;H[b+17|0]=c>>>8;c=K[1562]|K[1563]<<8|(K[1564]<<16|K[1565]<<24);d=K[1558]|K[1559]<<8|(K[1560]<<16|K[1561]<<24);H[b+8|0]=d;H[b+9|0]=d>>>8;H[b+10|0]=d>>>16;H[b+11|0]=d>>>24;H[b+12|0]=c;H[b+13|0]=c>>>8;H[b+14|0]=c>>>16;H[b+15|0]=c>>>24;c=K[1554]|K[1555]<<8|(K[1556]<<16|K[1557]<<24);d=K[1550]|K[1551]<<8|(K[1552]<<16|K[1553]<<24);H[b|0]=d;H[b+1|0]=d>>>8;H[b+2|0]=d>>>16;H[b+3|0]=d>>>24;H[b+4|0]=c;H[b+5|0]=c>>>8;H[b+6|0]=c>>>16;H[b+7|0]=c>>>24;H[b+18|0]=0;b=Bb(i,e,-1);if(H[e+11|0]<0){na(J[e>>2])}c=(h-j|0)/12|0;a:{b:{c:{d:{e:{f:{g:{h:{switch(b+1|0){case 1:break f;case 3:break g;case 0:break h;default:break c}}if(!f){break g}if(c>>>0<1e3|(cb(J[a+48>>2])|0)>4|g^1){break e}}b=J[a+44>>2];H[e|0]=2;c=J[b+20>>2];if(!J[b+16>>2]&(c|0)<=0|(c|0)<0){sa(b,J[b+4>>2],e,e+1|0)}b=oa(360);J[b+4>>2]=0;J[b+8>>2]=0;J[b+72>>2]=0;J[b+76>>2]=0;J[b>>2]=10584;J[b+12>>2]=0;J[b+16>>2]=0;J[b+20>>2]=0;J[b+24>>2]=0;J[b+28>>2]=0;J[b+32>>2]=0;J[b+36>>2]=0;J[b+40>>2]=0;J[b+44>>2]=0;J[b+48>>2]=0;J[b+52>>2]=0;J[b+56>>2]=0;J[b+60>>2]=0;J[b+64>>2]=0;J[b+80>>2]=0;J[b+84>>2]=0;J[b+88>>2]=0;J[b+92>>2]=0;J[b+96>>2]=0;J[b+100>>2]=0;J[b+104>>2]=0;J[b+108>>2]=0;J[b+112>>2]=0;J[b+116>>2]=0;J[b+120>>2]=0;J[b+124>>2]=0;J[b+128>>2]=0;J[b+132>>2]=0;J[b+136>>2]=1065353216;J[b+156>>2]=0;J[b+160>>2]=0;J[b+148>>2]=0;J[b+152>>2]=0;J[b+140>>2]=0;J[b+144>>2]=0;J[b+168>>2]=0;J[b+172>>2]=0;J[b+164>>2]=-1;J[b+176>>2]=0;J[b+180>>2]=0;J[b+184>>2]=0;J[b+188>>2]=0;J[b+192>>2]=0;c=b+200|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=b+232|0;J[c>>2]=0;J[c+4>>2]=0;H[c+24|0]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;J[b+304>>2]=0;J[b+308>>2]=0;J[b+296>>2]=0;J[b+300>>2]=0;J[b+288>>2]=0;J[b+292>>2]=0;J[b+280>>2]=0;J[b+284>>2]=0;J[b+272>>2]=0;J[b+276>>2]=0;J[b+264>>2]=0;J[b+268>>2]=0;H[b+352|0]=0;J[b+344>>2]=0;J[b+336>>2]=0;J[b+340>>2]=0;J[b+328>>2]=2;J[b+332>>2]=7;J[b+320>>2]=-1;J[b+324>>2]=0;J[b+312>>2]=0;J[b+316>>2]=-1;break d}if(!f){break c}}b=J[a+44>>2];H[e|0]=0;c=J[b+20>>2];if(!J[b+16>>2]&(c|0)<=0|(c|0)<0){sa(b,J[b+4>>2],e,e+1|0)}b=oa(296);J[b+4>>2]=0;J[b+8>>2]=0;J[b+72>>2]=0;J[b+76>>2]=0;J[b>>2]=10532;J[b+12>>2]=0;J[b+16>>2]=0;J[b+20>>2]=0;J[b+24>>2]=0;J[b+28>>2]=0;J[b+32>>2]=0;J[b+36>>2]=0;J[b+40>>2]=0;J[b+44>>2]=0;J[b+48>>2]=0;J[b+52>>2]=0;J[b+56>>2]=0;J[b+60>>2]=0;J[b+64>>2]=0;J[b+80>>2]=0;J[b+84>>2]=0;J[b+88>>2]=0;J[b+92>>2]=0;J[b+96>>2]=0;J[b+100>>2]=0;J[b+104>>2]=0;J[b+108>>2]=0;J[b+112>>2]=0;J[b+116>>2]=0;J[b+120>>2]=0;J[b+124>>2]=0;J[b+128>>2]=0;J[b+132>>2]=0;J[b+136>>2]=1065353216;J[b+156>>2]=0;J[b+160>>2]=0;J[b+148>>2]=0;J[b+152>>2]=0;J[b+140>>2]=0;J[b+144>>2]=0;J[b+168>>2]=0;J[b+172>>2]=0;J[b+164>>2]=-1;J[b+176>>2]=0;J[b+180>>2]=0;J[b+184>>2]=0;J[b+188>>2]=0;J[b+192>>2]=0;c=b+200|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=b+232|0;J[c>>2]=0;J[c+4>>2]=0;H[c+24|0]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;H[b+288|0]=0;J[b+280>>2]=0;J[b+284>>2]=0;J[b+272>>2]=0;J[b+276>>2]=0;J[b+264>>2]=0;J[b+268>>2]=0}c=J[a+64>>2];J[a+64>>2]=b;if(!c){break b}da[J[J[c>>2]+4>>2]](c)}b=J[a+64>>2];if(b){break b}a=0;break a}a=da[J[J[b>>2]+8>>2]](b,a)|0}ba=e+16|0;return a|0}function qh(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,C=0,D=0,E=0,F=0,G=0,I=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0;i=ba-80|0;ba=i;f=-1;h=-1;a:{if((b|0)==-1){break a}h=b+1|0;f=(h>>>0)%3|0?h:b-2|0;h=b-1|0;if((b>>>0)%3|0){break a}h=b+2|0}e=J[a+36>>2];b=J[e>>2];b:{c:{d:{e:{f:{g:{e=J[e+4>>2]-b>>2;g=f<<2;f=J[J[a+32>>2]+28>>2];g=J[g+f>>2];if(e>>>0<=g>>>0){break g}h=J[f+(h<<2)>>2];if(h>>>0>=e>>>0){break g}h:{j=J[b+(h<<2)>>2];g=J[b+(g<<2)>>2];if((j|0)>=(d|0)|(g|0)>=(d|0)){break h}b=(j<<3)+c|0;z=J[b+4>>2];f=(g<<3)+c|0;h=J[f+4>>2];f=J[f>>2];C=J[b>>2];if(!((f|0)!=(C|0)|(h|0)!=(z|0))){J[a+8>>2]=f;J[a+12>>2]=h;break c}b=J[J[a+4>>2]+(d<<2)>>2];J[i+72>>2]=0;J[i+76>>2]=0;e=i- -64|0;J[e>>2]=0;J[e+4>>2]=0;J[i+56>>2]=0;J[i+60>>2]=0;e=J[a>>2];if(!K[e+84|0]){b=J[J[e+68>>2]+(b<<2)>>2]}hb(e,b,H[e+24|0],i+56|0);b=J[J[a+4>>2]+(g<<2)>>2];J[i+48>>2]=0;J[i+52>>2]=0;J[i+40>>2]=0;J[i+44>>2]=0;J[i+32>>2]=0;J[i+36>>2]=0;e=J[a>>2];if(!K[e+84|0]){b=J[J[e+68>>2]+(b<<2)>>2]}hb(e,b,H[e+24|0],i+32|0);b=J[J[a+4>>2]+(j<<2)>>2];J[i+24>>2]=0;J[i+28>>2]=0;J[i+16>>2]=0;J[i+20>>2]=0;J[i+8>>2]=0;J[i+12>>2]=0;e=J[a>>2];if(!K[e+84|0]){b=J[J[e+68>>2]+(b<<2)>>2]}hb(e,b,H[e+24|0],i+8|0);b=J[i+16>>2];p=J[i+40>>2];u=b-p|0;N=J[i+44>>2];b=J[i+20>>2]-(N+(b>>>0

>>0)|0)|0;I=b;e=Hl(u,b,u,b);j=ca;b=J[i+8>>2];x=J[i+32>>2];D=b-x|0;O=J[i+36>>2];b=J[i+12>>2]-(O+(b>>>0>>0)|0)|0;L=b;k=e;e=Hl(D,b,D,b);b=k+e|0;k=ca+j|0;k=b>>>0>>0?k+1|0:k;e=J[i+24>>2];E=J[i+48>>2];F=e-E|0;P=J[i+52>>2];e=J[i+28>>2]-(P+(e>>>0>>0)|0)|0;M=e;m=b;b=Hl(F,e,F,e);o=m+b|0;e=ca+k|0;q=b>>>0>o>>>0?e+1|0:e;if(!(q|o)){break h}b=0;v=Jl(-1,2147483647,o,q);e=f;f=e>>31;G=f;r=e;e=f>>31;g=e;l=r^e;e=l-e|0;f=(f^g)-((g>>>0>l>>>0)+g|0)|0;g=f;f=h>>31;Q=f;s=h;h=f>>31;l=s^h;n=l-h|0;k=f>>31;h=(k^f)-((h>>>0>l>>>0)+k|0)|0;f=(h|0)==(g|0)&e>>>0>n>>>0|g>>>0>h>>>0;e=f?e:n;j=ca;h=f?g:h;if((j|0)==(h|0)&e>>>0>v>>>0|h>>>0>j>>>0){break b}j=J[i+64>>2];R=J[i+68>>2];h=Hl(j-p|0,R-((j>>>0

>>0)+N|0)|0,u,I);f=ca;l=J[i+56>>2];S=J[i+60>>2];e=Hl(l-x|0,S-((l>>>0>>0)+O|0)|0,D,L);h=e+h|0;g=ca+f|0;g=e>>>0>h>>>0?g+1|0:g;f=h;n=J[i+72>>2];T=J[i+76>>2];h=Hl(n-E|0,T-((n>>>0>>0)+P|0)|0,F,M);t=f+h|0;f=ca+g|0;f=h>>>0>t>>>0?f+1|0:f;v=f;e=f>>31;k=e^t;h=k-e|0;k=(e^f)-((e>>>0>k>>>0)+e|0)|0;f=C;C=f-r|0;f=(f>>31)-((f>>>0>>0)+G|0)|0;U=f;A=f>>31;m=A^C;g=m-A|0;e=f>>31;f=(e^f)-((m>>>0>>0)+e|0)|0;m=f;A=z-s|0;f=(z>>31)-((s>>>0>z>>>0)+Q|0)|0;z=f;e=g;W=e;w=f>>31;y=w^A;V=y-w|0;g=f>>31;f=(g^f)-((w>>>0>y>>>0)+g|0)|0;e=(m|0)==(f|0)&e>>>0>V>>>0|f>>>0>>0;f=Jl(-1,2147483647,e?W:V,e?m:f);e=ca;if((e|0)==(k|0)&f>>>0>>0|e>>>0>>0){break b}f=h;h=k;e=L>>31;g=e;m=e^D;e=m-e|0;g=(g^L)-((g>>>0>m>>>0)+g|0)|0;k=I>>31;w=k^u;y=w-k|0;k=(k^I)-((k>>>0>w>>>0)+k|0)|0;m=(g|0)==(k|0)&e>>>0>y>>>0|g>>>0>k>>>0;e=m?e:y;g=m?g:k;k=M>>31;m=e;w=k^F;y=w-k|0;k=(k^M)-((k>>>0>w>>>0)+k|0)|0;e=(g|0)==(k|0)&e>>>0>y>>>0|g>>>0>k>>>0;e=Jl(-1,2147483647,e?m:y,e?g:k);g=ca;if((g|0)==(h|0)&e>>>0>>0|g>>>0>>0){break b}b=Hl(t,v,A,z);h=ca;f=Hl(o,q,s,Q);s=f+b|0;b=ca+h|0;k=f>>>0>s>>>0?b+1|0:b;b=Hl(t,v,C,U);h=ca;f=b;b=Hl(r,G,o,q);r=f+b|0;e=ca+h|0;G=b>>>0>r>>>0?e+1|0:e;h=1;b=0;g=Il(Hl(t,v,u,I),ca,o,q);e=g+p|0;f=ca+N|0;f=e>>>0>>0?f+1|0:f;g=j-e|0;f=R-((e>>>0>j>>>0)+f|0)|0;j=Hl(g,f,g,f);p=ca;e=Il(Hl(t,v,D,L),ca,o,q);f=e+x|0;g=ca+O|0;g=e>>>0>f>>>0?g+1|0:g;e=l-f|0;f=S-((f>>>0>l>>>0)+g|0)|0;g=Hl(e,f,e,f);f=g+j|0;e=ca+p|0;e=f>>>0>>0?e+1|0:e;l=f;j=Il(Hl(t,v,F,M),ca,o,q);g=j+E|0;f=ca+P|0;f=g>>>0>>0?f+1|0:f;j=n-g|0;f=T-((g>>>0>n>>>0)+f|0)|0;j=Hl(j,f,j,f);f=j+l|0;g=ca+e|0;f=Hl(f,f>>>0>>0?g+1|0:g,o,q);e=ca;j=e;if(!e&f>>>0<=1){break f}l=f;while(1){g=b<<1|h>>>31;h=h<<1;b=g;n=!e&l>>>0>7|(e|0)!=0;l=(e&3)<<30|l>>>2;e=e>>>2|0;if(n){continue}break}break e}if((d|0)>(g|0)){b=g<<1}else{if((d|0)<=0){J[a+8>>2]=0;J[a+12>>2]=0;break c}b=(d<<1)-2|0}b=(b<<2)+c|0;J[a+8>>2]=J[b>>2];J[a+12>>2]=J[b+4>>2];break c}ra();B()}b=j;h=f;if(f-1|0){break d}}while(1){e=Jl(f,j,h,b);b=b+ca|0;g=h;h=e+h|0;b=g>>>0>h>>>0?b+1|0:b;h=(b&1)<<31|h>>>1;b=b>>>1|0;e=Hl(h,b,h,b);g=ca;if((j|0)==(g|0)&e>>>0>f>>>0|g>>>0>j>>>0){continue}break}}t=a+16|0;j=(d<<3)+c|0;d=J[j+4>>2];g=Hl(h,b,C,U);p=ca;c=Il(s-g|0,k-(p+(g>>>0>s>>>0)|0)|0,o,q);f=d-c|0;e=d>>31;l=e-(ca+(c>>>0>d>>>0)|0)|0;n=Hl(f,l,f,l);u=ca;j=J[j>>2];f=j>>31;v=f;l=Hl(h,b,A,z);x=ca;b=G+x|0;h=l+r|0;b=h>>>0>>0?b+1|0:b;m=n;h=Il(h,b,o,q);b=j-h|0;f=f-(ca+(h>>>0>j>>>0)|0)|0;n=Hl(b,f,b,f);b=m+n|0;f=ca+u|0;u=b;n=b>>>0>>0?f+1|0:f;f=e;e=k+p|0;b=g+s|0;e=b>>>0>>0?e+1|0:e;b=Il(b,e,o,q);e=d-b|0;d=f-(ca+(b>>>0>d>>>0)|0)|0;e=Hl(e,d,e,d);p=ca;d=Il(r-l|0,G-((l>>>0>r>>>0)+x|0)|0,o,q);f=j-d|0;g=v-(ca+(d>>>0>j>>>0)|0)|0;j=Hl(f,g,f,g);g=j+e|0;f=ca+p|0;f=g>>>0>>0?f+1|0:f;i:{if((f|0)==(n|0)&g>>>0>u>>>0|f>>>0>n>>>0){H[i+7|0]=1;Wc(t,i+7|0);break i}H[i+7|0]=0;Wc(t,i+7|0);c=b;h=d}J[a+8>>2]=h;J[a+12>>2]=c}b=1}ba=i+80|0;return b}function lh(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,C=0,D=0,E=0,F=0,G=0,I=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0;i=ba-80|0;ba=i;h=-1;a:{if((b|0)==-1){break a}f=J[a+32>>2];e=b+1|0;e=(e>>>0)%3|0?e:b-2|0;if((e|0)!=-1){h=J[J[f>>2]+(e<<2)>>2]}e=((b>>>0)%3|0?-1:2)+b|0;b=-1;b=(e|0)!=-1?J[J[f>>2]+(e<<2)>>2]:b;e=J[a+36>>2];f=J[e>>2];e=J[e+4>>2]-f>>2;if(e>>>0<=h>>>0|b>>>0>=e>>>0){break a}b:{c:{d:{e:{f:{g:{j=J[f+(b<<2)>>2];g=J[f+(h<<2)>>2];if((j|0)>=(d|0)|(g|0)>=(d|0)){break g}b=(j<<3)+c|0;z=J[b+4>>2];f=(g<<3)+c|0;h=J[f+4>>2];f=J[f>>2];C=J[b>>2];if(!((f|0)!=(C|0)|(h|0)!=(z|0))){J[a+8>>2]=f;J[a+12>>2]=h;break c}b=J[J[a+4>>2]+(d<<2)>>2];J[i+72>>2]=0;J[i+76>>2]=0;e=i- -64|0;J[e>>2]=0;J[e+4>>2]=0;J[i+56>>2]=0;J[i+60>>2]=0;e=J[a>>2];if(!K[e+84|0]){b=J[J[e+68>>2]+(b<<2)>>2]}hb(e,b,H[e+24|0],i+56|0);b=J[J[a+4>>2]+(g<<2)>>2];J[i+48>>2]=0;J[i+52>>2]=0;J[i+40>>2]=0;J[i+44>>2]=0;J[i+32>>2]=0;J[i+36>>2]=0;e=J[a>>2];if(!K[e+84|0]){b=J[J[e+68>>2]+(b<<2)>>2]}hb(e,b,H[e+24|0],i+32|0);b=J[J[a+4>>2]+(j<<2)>>2];J[i+24>>2]=0;J[i+28>>2]=0;J[i+16>>2]=0;J[i+20>>2]=0;J[i+8>>2]=0;J[i+12>>2]=0;e=J[a>>2];if(!K[e+84|0]){b=J[J[e+68>>2]+(b<<2)>>2]}hb(e,b,H[e+24|0],i+8|0);b=J[i+16>>2];p=J[i+40>>2];u=b-p|0;N=J[i+44>>2];b=J[i+20>>2]-(N+(b>>>0

>>0)|0)|0;I=b;e=Hl(u,b,u,b);j=ca;b=J[i+8>>2];x=J[i+32>>2];D=b-x|0;O=J[i+36>>2];b=J[i+12>>2]-(O+(b>>>0>>0)|0)|0;L=b;k=e;e=Hl(D,b,D,b);b=k+e|0;k=ca+j|0;k=b>>>0>>0?k+1|0:k;e=J[i+24>>2];E=J[i+48>>2];F=e-E|0;P=J[i+52>>2];e=J[i+28>>2]-(P+(e>>>0>>0)|0)|0;M=e;m=b;b=Hl(F,e,F,e);o=m+b|0;e=ca+k|0;q=b>>>0>o>>>0?e+1|0:e;if(!(q|o)){break g}b=0;v=Jl(-1,2147483647,o,q);e=f;f=e>>31;G=f;r=e;e=f>>31;g=e;l=r^e;e=l-e|0;f=(f^g)-((g>>>0>l>>>0)+g|0)|0;g=f;f=h>>31;Q=f;s=h;h=f>>31;l=s^h;n=l-h|0;k=f>>31;h=(k^f)-((h>>>0>l>>>0)+k|0)|0;f=(h|0)==(g|0)&e>>>0>n>>>0|g>>>0>h>>>0;e=f?e:n;j=ca;h=f?g:h;if((j|0)==(h|0)&e>>>0>v>>>0|h>>>0>j>>>0){break b}j=J[i+64>>2];R=J[i+68>>2];h=Hl(j-p|0,R-((j>>>0

>>0)+N|0)|0,u,I);f=ca;l=J[i+56>>2];S=J[i+60>>2];e=Hl(l-x|0,S-((l>>>0>>0)+O|0)|0,D,L);h=e+h|0;g=ca+f|0;g=e>>>0>h>>>0?g+1|0:g;f=h;n=J[i+72>>2];T=J[i+76>>2];h=Hl(n-E|0,T-((n>>>0>>0)+P|0)|0,F,M);t=f+h|0;f=ca+g|0;f=h>>>0>t>>>0?f+1|0:f;v=f;e=f>>31;k=e^t;h=k-e|0;k=(e^f)-((e>>>0>k>>>0)+e|0)|0;f=C;C=f-r|0;f=(f>>31)-((f>>>0>>0)+G|0)|0;U=f;A=f>>31;m=A^C;g=m-A|0;e=f>>31;f=(e^f)-((m>>>0>>0)+e|0)|0;m=f;A=z-s|0;f=(z>>31)-((s>>>0>z>>>0)+Q|0)|0;z=f;e=g;W=e;w=f>>31;y=w^A;V=y-w|0;g=f>>31;f=(g^f)-((w>>>0>y>>>0)+g|0)|0;e=(m|0)==(f|0)&e>>>0>V>>>0|f>>>0>>0;f=Jl(-1,2147483647,e?W:V,e?m:f);e=ca;if((e|0)==(k|0)&f>>>0>>0|e>>>0>>0){break b}f=h;h=k;e=L>>31;g=e;m=e^D;e=m-e|0;g=(g^L)-((g>>>0>m>>>0)+g|0)|0;k=I>>31;w=k^u;y=w-k|0;k=(k^I)-((k>>>0>w>>>0)+k|0)|0;m=(g|0)==(k|0)&e>>>0>y>>>0|g>>>0>k>>>0;e=m?e:y;g=m?g:k;k=M>>31;m=e;w=k^F;y=w-k|0;k=(k^M)-((k>>>0>w>>>0)+k|0)|0;e=(g|0)==(k|0)&e>>>0>y>>>0|g>>>0>k>>>0;e=Jl(-1,2147483647,e?m:y,e?g:k);g=ca;if((g|0)==(h|0)&e>>>0>>0|g>>>0>>0){break b}b=Hl(t,v,A,z);h=ca;f=Hl(o,q,s,Q);s=f+b|0;b=ca+h|0;k=f>>>0>s>>>0?b+1|0:b;b=Hl(t,v,C,U);h=ca;f=b;b=Hl(r,G,o,q);r=f+b|0;e=ca+h|0;G=b>>>0>r>>>0?e+1|0:e;h=1;b=0;g=Il(Hl(t,v,u,I),ca,o,q);e=g+p|0;f=ca+N|0;f=e>>>0>>0?f+1|0:f;g=j-e|0;f=R-((e>>>0>j>>>0)+f|0)|0;j=Hl(g,f,g,f);p=ca;e=Il(Hl(t,v,D,L),ca,o,q);f=e+x|0;g=ca+O|0;g=e>>>0>f>>>0?g+1|0:g;e=l-f|0;f=S-((f>>>0>l>>>0)+g|0)|0;g=Hl(e,f,e,f);f=g+j|0;e=ca+p|0;e=f>>>0>>0?e+1|0:e;l=f;j=Il(Hl(t,v,F,M),ca,o,q);g=j+E|0;f=ca+P|0;f=g>>>0>>0?f+1|0:f;j=n-g|0;f=T-((g>>>0>n>>>0)+f|0)|0;j=Hl(j,f,j,f);f=j+l|0;g=ca+e|0;f=Hl(f,f>>>0>>0?g+1|0:g,o,q);e=ca;j=e;if(!e&f>>>0<=1){break f}l=f;while(1){g=b<<1|h>>>31;h=h<<1;b=g;n=!e&l>>>0>7|(e|0)!=0;l=(e&3)<<30|l>>>2;e=e>>>2|0;if(n){continue}break}break e}if((d|0)>(g|0)){b=g<<1}else{if((d|0)<=0){J[a+8>>2]=0;J[a+12>>2]=0;break c}b=(d<<1)-2|0}b=(b<<2)+c|0;J[a+8>>2]=J[b>>2];J[a+12>>2]=J[b+4>>2];break c}b=j;h=f;if(f-1|0){break d}}while(1){e=Jl(f,j,h,b);b=b+ca|0;g=h;h=e+h|0;b=g>>>0>h>>>0?b+1|0:b;h=(b&1)<<31|h>>>1;b=b>>>1|0;e=Hl(h,b,h,b);g=ca;if((j|0)==(g|0)&e>>>0>f>>>0|g>>>0>j>>>0){continue}break}}t=a+16|0;j=(d<<3)+c|0;d=J[j+4>>2];g=Hl(h,b,C,U);p=ca;c=Il(s-g|0,k-(p+(g>>>0>s>>>0)|0)|0,o,q);f=d-c|0;e=d>>31;l=e-(ca+(c>>>0>d>>>0)|0)|0;n=Hl(f,l,f,l);u=ca;j=J[j>>2];f=j>>31;v=f;l=Hl(h,b,A,z);x=ca;b=G+x|0;h=l+r|0;b=h>>>0>>0?b+1|0:b;m=n;h=Il(h,b,o,q);b=j-h|0;f=f-(ca+(h>>>0>j>>>0)|0)|0;n=Hl(b,f,b,f);b=m+n|0;f=ca+u|0;u=b;n=b>>>0>>0?f+1|0:f;f=e;e=k+p|0;b=g+s|0;e=b>>>0>>0?e+1|0:e;b=Il(b,e,o,q);e=d-b|0;d=f-(ca+(b>>>0>d>>>0)|0)|0;e=Hl(e,d,e,d);p=ca;d=Il(r-l|0,G-((l>>>0>r>>>0)+x|0)|0,o,q);f=j-d|0;g=v-(ca+(d>>>0>j>>>0)|0)|0;j=Hl(f,g,f,g);g=j+e|0;f=ca+p|0;f=g>>>0>>0?f+1|0:f;h:{if((f|0)==(n|0)&g>>>0>u>>>0|f>>>0>n>>>0){H[i+7|0]=1;Wc(t,i+7|0);break h}H[i+7|0]=0;Wc(t,i+7|0);c=b;h=d}J[a+8>>2]=h;J[a+12>>2]=c}b=1}ba=i+80|0;return b}ra();B()}function Zc(a,b){var c=0,d=0,e=0,f=0,g=0,h=0;e=ba-16|0;ba=e;J[a+8>>2]=b;J[a>>2]=0;d=a+12|0;J[d>>2]=0;J[d+4>>2]=0;J[d+24>>2]=0;J[d+28>>2]=0;J[d+16>>2]=0;J[d+20>>2]=0;J[d+8>>2]=0;J[d+12>>2]=0;c=d+32|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=d- -64|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=d+96|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=d+128|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=d+160|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=d+192|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=d+224|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=d+256|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=d+288|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=d+320|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=d+352|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=d+384|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=d+416|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=d+448|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=d+480|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=d+512|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=d+544|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=d+576|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=d+608|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=d+640|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=d+672|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=d+704|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=d+736|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=d+768|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=d+800|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=d+832|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=d+864|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=d+896|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=d+928|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=d+960|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;d=d+992|0;J[d>>2]=0;J[d+4>>2]=0;J[d+24>>2]=0;J[d+28>>2]=0;J[d+16>>2]=0;J[d+20>>2]=0;J[d+8>>2]=0;J[d+12>>2]=0;d=a+1036|0;J[d>>2]=0;J[d+4>>2]=0;J[d+24>>2]=0;J[d+28>>2]=0;J[d+16>>2]=0;J[d+20>>2]=0;J[d+8>>2]=0;J[d+12>>2]=0;d=a+1068|0;J[d>>2]=0;J[d+4>>2]=0;J[d+16>>2]=0;J[d+8>>2]=0;J[d+12>>2]=0;d=a+1088|0;J[d>>2]=0;J[d+4>>2]=0;J[d+16>>2]=0;J[d+8>>2]=0;J[d+12>>2]=0;d=a+1108|0;J[d>>2]=0;J[d+4>>2]=0;J[d+16>>2]=0;J[d+8>>2]=0;J[d+12>>2]=0;J[a+1136>>2]=0;J[a+1128>>2]=0;J[a+1132>>2]=0;h=a+1164|0;a:{b:{if(b){if(b>>>0<1073741824){break b}qa();B()}J[a+1140>>2]=0;J[a+1144>>2]=0;d=a+1156|0;J[d>>2]=0;J[d+4>>2]=0;d=a+1148|0;J[d>>2]=0;J[d+4>>2]=0;J[e+8>>2]=0;J[e>>2]=0;J[e+4>>2]=0;d=1;break a}d=b<<2;c=oa(d);J[a+1128>>2]=c;f=c+d|0;J[a+1136>>2]=f;pa(c,0,d);g=a+1148|0;J[g>>2]=0;J[a+1140>>2]=0;J[a+1144>>2]=0;J[a+1132>>2]=f;c=oa(d);J[a+1140>>2]=c;f=c+d|0;J[g>>2]=f;pa(c,0,d);g=a+1160|0;J[g>>2]=0;J[a+1152>>2]=0;J[a+1156>>2]=0;J[a+1144>>2]=f;c=oa(d);J[a+1152>>2]=c;f=c+d|0;J[g>>2]=f;pa(c,0,d);J[a+1156>>2]=f;c=oa(d);J[e>>2]=c;f=c+d|0;J[e+8>>2]=f;pa(c,0,d);J[e+4>>2]=f;d=b<<5|1}Jb(h,d,e);c=J[e>>2];if(c){J[e+4>>2]=c;na(c)}J[e+8>>2]=0;J[e>>2]=0;J[e+4>>2]=0;if(b){b=b<<2;c=oa(b);J[e>>2]=c;f=b+c|0;J[e+8>>2]=f;pa(c,0,b);J[e+4>>2]=f}Jb(a+1176|0,d,e);b=J[e>>2];if(b){J[e+4>>2]=b;na(b)}ba=e+16|0;return a}function Xf(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;a:{b:{c:{d:{e:{if(J[a+92>>2]==J[a+88>>2]){break e}c=J[a+52>>2];f:{if((c|0)!=J[a+56>>2]){J[c>>2]=b;J[a+52>>2]=c+4;break f}h=J[a+48>>2];g=c-h|0;d=g>>2;f=d+1|0;if(f>>>0>=1073741824){break a}e=g>>>1|0;g=g>>>0>=2147483644?1073741823:f>>>0>>0?e:f;if(g){if(g>>>0>=1073741824){break d}e=oa(g<<2)}else{e=0}f=e+(d<<2)|0;J[f>>2]=b;d=f+4|0;if((c|0)!=(h|0)){while(1){f=f-4|0;c=c-4|0;J[f>>2]=J[c>>2];if((c|0)!=(h|0)){continue}break}}J[a+56>>2]=e+(g<<2);J[a+52>>2]=d;J[a+48>>2]=f;if(!h){break f}na(h)}J[a+84>>2]=0;c=-1;e=-1;g:{if((b|0)==-1){break g}d=J[a+4>>2];e=b+1|0;e=(e>>>0)%3|0?e:b-2|0;if((e|0)!=-1){c=J[J[d>>2]+(e<<2)>>2]}h:{if((b>>>0)%3|0){l=b-1|0;break h}l=b+2|0;e=-1;if((l|0)==-1){break g}}e=J[J[d>>2]+(l<<2)>>2]}i=e>>>3&536870908;d=J[a+36>>2];h=d+(c>>>3&536870908)|0;g=J[h>>2];f=1<>2]=f|g;f=a+8|0;if((b|0)!=-1){d=b+1|0;d=(d>>>0)%3|0?d:b-2|0}else{d=-1}mb(f,c,d);d=J[a+36>>2]}f=d+i|0;d=J[f>>2];c=1<>2]=c|d;d=a+8|0;c=-1;i:{if((b|0)==-1){break i}c=b-1|0;if((b>>>0)%3|0){break i}c=b+2|0}mb(d,e,c)}c=-1;c=(b|0)!=-1?J[J[J[a+4>>2]>>2]+(b<<2)>>2]:c;f=J[a+36>>2]+(c>>>3&536870908)|0;d=J[f>>2];e=1<>2]=d|e;mb(a+8|0,c,b)}d=J[a+84>>2];if((d|0)>2){break e}while(1){e=P(d,12)+a|0;b=J[e+52>>2];if((b|0)==J[e+48>>2]){d=d+1|0;if((d|0)!=3){continue}break e}b=b-4|0;c=J[b>>2];J[e+52>>2]=b;J[a+84>>2]=d;if((c|0)==-1){break e}f=J[a+24>>2];b=(c>>>0)/3|0;j:{if(J[f+(b>>>3&268435452)>>2]>>>b&1){break j}k:{while(1){k=(c>>>0)/3|0;b=(k>>>3&268435452)+f|0;J[b>>2]=J[b>>2]|1<>2]>>2]+(c<<2)>>2]:d;f=J[a+36>>2]+(d>>>3&536870908)|0;e=J[f>>2];b=1<>2]=b|e;i=J[(J[J[a+16>>2]+96>>2]+P(k,12)|0)+((c>>>0)%3<<2)>>2];l=J[J[a+20>>2]+4>>2];f=J[l+4>>2];t:{if((f|0)!=J[l+8>>2]){J[f>>2]=i;J[l+4>>2]=f+4;break t}j=J[l>>2];h=f-j|0;g=h>>2;e=g+1|0;if(e>>>0>=1073741824){break s}b=h>>>1|0;h=h>>>0>=2147483644?1073741823:b>>>0>e>>>0?b:e;if(h){if(h>>>0>=1073741824){break d}e=oa(h<<2)}else{e=0}b=e+(g<<2)|0;J[b>>2]=i;g=b+4|0;if((f|0)!=(j|0)){while(1){b=b-4|0;f=f-4|0;J[b>>2]=J[f>>2];if((f|0)!=(j|0)){continue}break}}J[l+8>>2]=e+(h<<2);J[l+4>>2]=g;J[l>>2]=b;if(!j){break t}na(j)}j=J[a+12>>2];f=J[j+4>>2];u:{if((f|0)!=J[j+8>>2]){J[f>>2]=c;J[j+4>>2]=f+4;break u}i=J[j>>2];h=f-i|0;g=h>>2;e=g+1|0;if(e>>>0>=1073741824){break r}b=h>>>1|0;h=h>>>0>=2147483644?1073741823:b>>>0>e>>>0?b:e;if(h){if(h>>>0>=1073741824){break d}e=oa(h<<2)}else{e=0}b=e+(g<<2)|0;J[b>>2]=c;g=b+4|0;if((f|0)!=(i|0)){while(1){b=b-4|0;f=f-4|0;J[b>>2]=J[f>>2];if((f|0)!=(i|0)){continue}break}}J[j+8>>2]=e+(h<<2);J[j+4>>2]=g;J[j>>2]=b;if(!i){break u}na(i)}b=J[a+12>>2];J[J[b+12>>2]+(d<<2)>>2]=J[b+24>>2];J[b+24>>2]=J[b+24>>2]+1}if((c|0)==-1){break k}g=J[a+4>>2];f=-1;b=c+1|0;b=(b>>>0)%3|0?b:c-2|0;if((b|0)!=-1){f=J[J[g+12>>2]+(b<<2)>>2]}v:{w:{if((P(k,3)|0)!=(c|0)){d=c-1|0;break w}d=c+2|0;c=-1;if((d|0)==-1){break v}}c=J[J[g+12>>2]+(d<<2)>>2]}d=(c|0)==-1;e=(c>>>0)/3|0;if((f|0)!=-1){b=(f>>>0)/3|0;b=J[J[a+24>>2]+(b>>>3&268435452)>>2]&1<>2]+(b>>>3&536870908)>>2]>>>b&1){break x}k=0;b=J[J[g>>2]+(c<<2)>>2];if(!(J[J[a+36>>2]+(b>>>3&536870908)>>2]>>>b&1)){b=J[a+88>>2]+(b<<2)|0;e=J[b>>2];J[b>>2]=e+1;k=(e|0)<=0?2:1}if(J[a+84>>2]>=(k|0)&l){break m}j=P(k,12)+a|0;b=J[j+52>>2];y:{if((b|0)!=J[j+56>>2]){J[b>>2]=c;J[j+52>>2]=b+4;break y}i=J[j+48>>2];h=b-i|0;d=h>>2;g=d+1|0;if(g>>>0>=1073741824){break c}e=h>>>1|0;g=h>>>0>=2147483644?1073741823:e>>>0>g>>>0?e:g;if(g){if(g>>>0>=1073741824){break d}e=oa(g<<2)}else{e=0}d=e+(d<<2)|0;J[d>>2]=c;c=d+4|0;if((b|0)!=(i|0)){while(1){d=d-4|0;b=b-4|0;J[d>>2]=J[b>>2];if((b|0)!=(i|0)){continue}break}}J[j+48>>2]=d;J[j+52>>2]=c;J[j+56>>2]=e+(g<<2);if(!i){break y}na(i)}if(J[a+84>>2]<=(k|0)){break x}J[a+84>>2]=k}if(l){break k}c=-1;if((f|0)==-1){break n}}c=J[J[J[a+4>>2]>>2]+(f<<2)>>2]}b=0;if(!(J[J[a+36>>2]+(c>>>3&536870908)>>2]>>>c&1)){b=J[a+88>>2]+(c<<2)|0;c=J[b>>2];J[b>>2]=c+1;b=(c|0)<=0?2:1}if(J[a+84>>2]<(b|0)){break l}c=f}f=J[a+24>>2];continue}break}k=P(b,12)+a|0;c=J[k+52>>2];z:{if((c|0)!=J[k+56>>2]){J[c>>2]=f;J[k+52>>2]=c+4;break z}i=J[k+48>>2];h=c-i|0;d=h>>2;g=d+1|0;if(g>>>0>=1073741824){break b}e=h>>>1|0;g=h>>>0>=2147483644?1073741823:e>>>0>g>>>0?e:g;if(g){if(g>>>0>=1073741824){break d}e=oa(g<<2)}else{e=0}d=e+(d<<2)|0;J[d>>2]=f;f=d+4|0;if((c|0)!=(i|0)){while(1){d=d-4|0;c=c-4|0;J[d>>2]=J[c>>2];if((c|0)!=(i|0)){continue}break}}J[k+48>>2]=d;J[k+52>>2]=f;J[k+56>>2]=e+(g<<2);if(!i){break z}na(i)}d=J[a+84>>2];if((d|0)<=(b|0)){break j}J[a+84>>2]=b;d=b;break j}d=J[a+84>>2]}if((d|0)<3){continue}break}}return 1}xa();B()}qa();B()}qa();B()}qa();B()}function Ha(a){var b=0,c=0,d=0,e=0,f=0,g=0;e=ba-16|0;ba=e;J[e+12>>2]=a;a:{if(a>>>0<=211){d=J[Ke(17792,17984,e+12|0)>>2];break a}if(a>>>0>=4294967292){Z();B()}f=(a>>>0)/210|0;d=P(f,210);J[e+8>>2]=a-d;g=Ke(17984,18176,e+8|0)-17984>>2;while(1){d=J[(g<<2)+17984>>2]+d|0;a=5;while(1){b:{if((a|0)==47){a=211;while(1){b=(d>>>0)/(a>>>0)|0;if(b>>>0>>0){break a}if((P(a,b)|0)==(d|0)){break b}b=a+10|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+12|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+16|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+18|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+22|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+28|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+30|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+36|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+40|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+42|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+46|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+52|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+58|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+60|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+66|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+70|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+72|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+78|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+82|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+88|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+96|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+100|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+102|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+106|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+108|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+112|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+120|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+126|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+130|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+136|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+138|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+142|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+148|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+150|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+156|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+162|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+166|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+168|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+172|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+178|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+180|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+186|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+190|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+192|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+196|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+198|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+208|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}a=a+210|0;if((P(b,c)|0)!=(d|0)){continue}break}break b}b=J[(a<<2)+17792>>2];c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}a=a+1|0;if((P(b,c)|0)!=(d|0)){continue}}break}d=g+1|0;a=(d|0)==48;g=a?0:d;f=a+f|0;d=P(f,210);continue}}ba=e+16|0;return d}function Hd(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=Q(0),q=0,r=0,s=0,t=0,u=Q(0);f=ba-112|0;ba=f;J[f+88>>2]=0;J[f+92>>2]=0;J[f+80>>2]=0;J[f+84>>2]=0;J[f+96>>2]=1065353216;c=J[a+80>>2];J[f+40>>2]=0;J[f+32>>2]=0;J[f+36>>2]=0;a:{if(c){if(c>>>0>=1073741824){break a}h=c<<2;l=oa(h);J[f+32>>2]=l;c=h+l|0;J[f+40>>2]=c;pa(l,0,h);J[f+36>>2]=c;while(1){d=J[J[b>>2]>>2];h=J[b+48>>2];c=Hl(J[b+40>>2],J[b+44>>2],o,0);j=c;c=c+h|0;e=c+d|0;c=K[e+12|0]|K[e+13|0]<<8|(K[e+14|0]<<16|K[e+15|0]<<24);J[f+72>>2]=K[e+8|0]|K[e+9|0]<<8|(K[e+10|0]<<16|K[e+11|0]<<24);J[f+76>>2]=c;c=K[e+4|0]|K[e+5|0]<<8|(K[e+6|0]<<16|K[e+7|0]<<24);J[f+64>>2]=K[e|0]|K[e+1|0]<<8|(K[e+2|0]<<16|K[e+3|0]<<24);J[f+68>>2]=c;k=K[e+12|0]|K[e+13|0]<<8|(K[e+14|0]<<16|K[e+15|0]<<24);h=K[e+8|0]|K[e+9|0]<<8|(K[e+10|0]<<16|K[e+11|0]<<24);J[f+56>>2]=h;J[f+60>>2]=k;d=K[e+4|0]|K[e+5|0]<<8|(K[e+6|0]<<16|K[e+7|0]<<24);c=K[e|0]|K[e+1|0]<<8|(K[e+2|0]<<16|K[e+3|0]<<24);J[f+48>>2]=c;J[f+52>>2]=d;J[f+16>>2]=h;J[f+20>>2]=k;J[f+8>>2]=c;J[f+12>>2]=d;J[f+24>>2]=q;c=0;m=f+8|0;h=J[m+12>>2]^(J[m+8>>2]^(J[m+4>>2]^(J[m>>2]^318)+239)+239)+239;b:{c:{n=f+80|0;j=J[n+4>>2];if(!j){break c}d=Kl(j);d:{if(d>>>0>=2){c=h;if(c>>>0>=j>>>0){c=(h>>>0)%(j>>>0)|0}i=J[J[n>>2]+(c<<2)>>2];if(!i){break c}if(d>>>0<2){break d}k=J[m+12>>2];r=J[m+8>>2];s=J[m+4>>2];e=J[m>>2];while(1){i=J[i>>2];if(!i){break c}d=J[i+4>>2];if((d|0)!=(h|0)){if(d>>>0>=j>>>0){d=(d>>>0)%(j>>>0)|0}if((c|0)!=(d|0)){break c}}d=J[i+8>>2];e:{if((d|0)!=(e|0)){d=(d|0)==(e|0);break e}d=J[i+12>>2];if((d|0)!=(s|0)){d=(d|0)==(s|0);break e}d=J[i+16>>2];if((d|0)!=(r|0)){d=(d|0)==(r|0);break e}d=(k|0)==J[i+20>>2]}if(!d){continue}break}c=0;break b}c=h&j-1;i=J[J[n>>2]+(c<<2)>>2];if(!i){break c}}e=j-1|0;k=J[m+12>>2];t=J[m+8>>2];r=J[m+4>>2];s=J[m>>2];while(1){i=J[i>>2];if(!i){break c}d=J[i+4>>2];if((d|0)!=(h|0)&(d&e)!=(c|0)){break c}d=J[i+8>>2];f:{if((d|0)!=(s|0)){d=(d|0)==(s|0);break f}d=J[i+12>>2];if((d|0)!=(r|0)){d=(d|0)==(r|0);break f}d=J[i+16>>2];if((d|0)!=(t|0)){d=(d|0)==(t|0);break f}d=(k|0)==J[i+20>>2]}if(!d){continue}break}c=0;break b}i=oa(28);d=J[m+12>>2];J[i+16>>2]=J[m+8>>2];J[i+20>>2]=d;d=J[m+4>>2];J[i+8>>2]=J[m>>2];J[i+12>>2]=d;d=J[m+16>>2];J[i>>2]=0;J[i+4>>2]=h;J[i+24>>2]=d;p=Q(J[n+12>>2]+1>>>0);u=N[n+16>>2];g:{if(p>Q(u*Q(j>>>0))?0:j){break g}c=2;d=(j-1&j)!=0|j>>>0<3|j<<1;p=Q(W(Q(p/u)));h:{if(p=Q(0)){k=~~p>>>0;break h}k=0}d=d>>>0>k>>>0?d:k;i:{if((d|0)==1){break i}if(!(d&d-1)){c=d;break i}c=Ha(d);j=J[n+4>>2]}j:{if(c>>>0<=j>>>0){if(c>>>0>=j>>>0){break j}k=j>>>0<3;p=Q(W(Q(Q(M[n+12>>2])/N[n+16>>2])));k:{if(p=Q(0)){d=~~p>>>0;break k}d=0}l:{m:{if(k){break m}if(Kl(j)>>>0>1){break m}d=d>>>0<2?d:1<<32-S(d-1|0);break l}d=Ha(d)}c=c>>>0>d>>>0?c:d;if(j>>>0<=c>>>0){break j}}db(n,c)}j=J[n+4>>2];c=j-1|0;if(!(c&j)){c=c&h;break g}if(h>>>0>>0){c=h;break g}c=(h>>>0)%(j>>>0)|0}h=J[n>>2]+(c<<2)|0;c=J[h>>2];n:{o:{if(!c){c=n+8|0;J[i>>2]=J[c>>2];J[n+8>>2]=i;J[h>>2]=c;c=J[i>>2];if(!c){break n}c=J[c+4>>2];h=j-1|0;p:{if(!(h&j)){c=c&h;break p}if(c>>>0>>0){break p}c=(c>>>0)%(j>>>0)|0}c=J[n>>2]+(c<<2)|0;break o}J[i>>2]=J[c>>2]}J[c>>2]=i}J[n+12>>2]=J[n+12>>2]+1;c=1}H[f+108|0]=c;J[f+104>>2]=i;q:{if(!K[f+108|0]){J[(o<<2)+l>>2]=J[J[f+104>>2]+24>>2];break q}c=J[a+40>>2];ua(J[J[a>>2]>>2]+P(c,q)|0,f- -64|0,c);l=J[f+32>>2];J[l+(o<<2)>>2]=q;q=q+1|0}o=o+1|0;g=o?g:g+1|0;e=J[a+80>>2];if(!g&o>>>0>>0){continue}break}if((e|0)!=(q|0)){r:{if(!K[a+84|0]){b=J[a+72>>2];e=J[a+68>>2];if((b|0)==(e|0)){break r}b=b-e>>2;g=b>>>0<=1?1:b;h=g&3;c=0;b=0;if(g-1>>>0>=3){o=g&-4;k=0;while(1){d=b<<2;g=d+e|0;J[g>>2]=J[(J[g>>2]<<2)+l>>2];g=e+(d|4)|0;J[g>>2]=J[(J[g>>2]<<2)+l>>2];g=e+(d|8)|0;J[g>>2]=J[(J[g>>2]<<2)+l>>2];g=e+(d|12)|0;J[g>>2]=J[(J[g>>2]<<2)+l>>2];b=b+4|0;k=k+4|0;if((o|0)!=(k|0)){continue}break}}if(!h){break r}while(1){g=e+(b<<2)|0;J[g>>2]=J[(J[g>>2]<<2)+l>>2];b=b+1|0;c=c+1|0;if((h|0)!=(c|0)){continue}break}break r}H[a+84|0]=0;g=a+68|0;b=J[a+68>>2];c=J[a+72>>2]-b>>2;s:{if(c>>>0>>0){Ma(g,e-c|0,2176);e=J[a+80>>2];break s}if(c>>>0<=e>>>0){break s}J[a+72>>2]=b+(e<<2)}if(!e){break r}d=J[g>>2];c=0;b=0;if(e>>>0>=4){o=e&-4;k=0;while(1){h=b<<2;J[h+d>>2]=J[h+l>>2];g=h|4;J[g+d>>2]=J[g+l>>2];g=h|8;J[g+d>>2]=J[g+l>>2];g=h|12;J[g+d>>2]=J[g+l>>2];b=b+4|0;k=k+4|0;if((o|0)!=(k|0)){continue}break}}o=e&3;if(!o){break r}while(1){g=b<<2;J[g+d>>2]=J[g+l>>2];b=b+1|0;c=c+1|0;if((o|0)!=(c|0)){continue}break}}J[a+80>>2]=q}na(l)}b=J[f+88>>2];if(b){while(1){a=J[b>>2];na(b);b=a;if(b){continue}break}}a=J[f+80>>2];J[f+80>>2]=0;if(a){na(a)}ba=f+112|0;return q}qa();B()}function ll(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;h=ba-32|0;ba=h;a:{b:{if(!J[J[a+8>>2]+80>>2]){e=1;break b}H[h+31|0]=254;d=J[a+36>>2];if(d){if(!(da[J[J[a>>2]+40>>2]](a,d)|0)){break b}d=J[a+36>>2];n=h,o=da[J[J[d>>2]+8>>2]](d)|0,H[n+31|0]=o}d=J[c+20>>2];if(!J[c+16>>2]&(d|0)<=0|(d|0)<0){sa(c,J[c+4>>2],h+31|0,h+32|0)}d=J[a+36>>2];c:{if(!d){break c}n=h,o=da[J[J[d>>2]+36>>2]](d)|0,H[n+16|0]=o;d=J[c+20>>2];if(!!J[c+16>>2]&(d|0)>=0|(d|0)>0){break c}sa(c,J[c+4>>2],h+16|0,h+17|0)}d=J[a+32>>2];e=J[d+48>>2];f=J[J[d>>2]>>2];g=J[d+80>>2];k=K[d+24|0];J[h+24>>2]=0;J[h+16>>2]=0;J[h+20>>2]=0;g=P(g,k);if(g){if(g>>>0>=1073741824){break a}d=g<<2;i=oa(d);pa(i,0,d)}d=e+f|0;f=J[a+36>>2];d:{e:{f:{if(!f){break f}e=0;if(!(da[J[J[f>>2]+44>>2]](f,d,i,g,k,J[b>>2])|0)){break d}e=J[a+36>>2];if(!e){break f}if(da[J[J[e>>2]+32>>2]](e)|0){break e}d=J[a+36>>2]?i:d}e=0;f=0;g:{if((g|0)<=0){break g}if((g|0)!=1){m=g&-2;while(1){l=e<<2;j=J[l+d>>2];J[i+l>>2]=(j|0)<0?(j^-1)<<1|1:j<<1;l=l|4;j=J[l+d>>2];J[i+l>>2]=(j|0)<0?(j^-1)<<1|1:j<<1;e=e+2|0;f=f+2|0;if((m|0)!=(f|0)){continue}break}}if(!(g&1)){break g}e=e<<2;d=J[e+d>>2];J[e+i>>2]=(d|0)<0?(d^-1)<<1|1:d<<1}}h:{i:{j:{k:{d=J[a+4>>2];if(!d){break k}j=J[d+48>>2];d=oa(48);J[h>>2]=d;J[h+4>>2]=34;J[h+8>>2]=-2147483600;e=K[1411]|K[1412]<<8;H[d+32|0]=e;H[d+33|0]=e>>>8;e=K[1407]|K[1408]<<8|(K[1409]<<16|K[1410]<<24);f=K[1403]|K[1404]<<8|(K[1405]<<16|K[1406]<<24);H[d+24|0]=f;H[d+25|0]=f>>>8;H[d+26|0]=f>>>16;H[d+27|0]=f>>>24;H[d+28|0]=e;H[d+29|0]=e>>>8;H[d+30|0]=e>>>16;H[d+31|0]=e>>>24;e=K[1399]|K[1400]<<8|(K[1401]<<16|K[1402]<<24);f=K[1395]|K[1396]<<8|(K[1397]<<16|K[1398]<<24);H[d+16|0]=f;H[d+17|0]=f>>>8;H[d+18|0]=f>>>16;H[d+19|0]=f>>>24;H[d+20|0]=e;H[d+21|0]=e>>>8;H[d+22|0]=e>>>16;H[d+23|0]=e>>>24;e=K[1391]|K[1392]<<8|(K[1393]<<16|K[1394]<<24);f=K[1387]|K[1388]<<8|(K[1389]<<16|K[1390]<<24);H[d+8|0]=f;H[d+9|0]=f>>>8;H[d+10|0]=f>>>16;H[d+11|0]=f>>>24;H[d+12|0]=e;H[d+13|0]=e>>>8;H[d+14|0]=e>>>16;H[d+15|0]=e>>>24;e=K[1383]|K[1384]<<8|(K[1385]<<16|K[1386]<<24);f=K[1379]|K[1380]<<8|(K[1381]<<16|K[1382]<<24);H[d|0]=f;H[d+1|0]=f>>>8;H[d+2|0]=f>>>16;H[d+3|0]=f>>>24;H[d+4|0]=e;H[d+5|0]=e>>>8;H[d+6|0]=e>>>16;H[d+7|0]=e>>>24;H[d+34|0]=0;d=Pb(j,h,1);if(H[h+11|0]<0){na(J[h>>2])}if(d){break k}if(!g){break j}d=0;e=0;b=0;if(g>>>0>=4){j=g&-4;f=0;while(1){k=e<<2;b=J[(k|12)+i>>2]|(J[(k|8)+i>>2]|(J[(k|4)+i>>2]|(J[i+k>>2]|b)));e=e+4|0;f=f+4|0;if((j|0)!=(f|0)){continue}break}}f=g&3;if(f){while(1){b=J[(e<<2)+i>>2]|b;e=e+1|0;d=d+1|0;if((f|0)!=(d|0)){continue}break}}if(!b){break j}d=4-(S(b)>>>3|0)|0;break i}H[h|0]=1;d=J[c+20>>2];if(!J[c+16>>2]&(d|0)<=0|(d|0)<0){sa(c,J[c+4>>2],h,h+1|0)}J[h>>2]=h|4;J[h+4>>2]=0;J[h+8>>2]=0;d=J[a+4>>2];if(d){j=10-cb(J[d+48>>2])|0;e=ba-16|0;ba=e;l:{if(j>>>0>10){break l}d=oa(48);J[e>>2]=d;J[e+4>>2]=33;J[e+8>>2]=-2147483600;H[d+32|0]=K[1470];g=K[1466]|K[1467]<<8|(K[1468]<<16|K[1469]<<24);f=K[1462]|K[1463]<<8|(K[1464]<<16|K[1465]<<24);H[d+24|0]=f;H[d+25|0]=f>>>8;H[d+26|0]=f>>>16;H[d+27|0]=f>>>24;H[d+28|0]=g;H[d+29|0]=g>>>8;H[d+30|0]=g>>>16;H[d+31|0]=g>>>24;g=K[1458]|K[1459]<<8|(K[1460]<<16|K[1461]<<24);f=K[1454]|K[1455]<<8|(K[1456]<<16|K[1457]<<24);H[d+16|0]=f;H[d+17|0]=f>>>8;H[d+18|0]=f>>>16;H[d+19|0]=f>>>24;H[d+20|0]=g;H[d+21|0]=g>>>8;H[d+22|0]=g>>>16;H[d+23|0]=g>>>24;g=K[1450]|K[1451]<<8|(K[1452]<<16|K[1453]<<24);f=K[1446]|K[1447]<<8|(K[1448]<<16|K[1449]<<24);H[d+8|0]=f;H[d+9|0]=f>>>8;H[d+10|0]=f>>>16;H[d+11|0]=f>>>24;H[d+12|0]=g;H[d+13|0]=g>>>8;H[d+14|0]=g>>>16;H[d+15|0]=g>>>24;g=K[1442]|K[1443]<<8|(K[1444]<<16|K[1445]<<24);f=K[1438]|K[1439]<<8|(K[1440]<<16|K[1441]<<24);H[d|0]=f;H[d+1|0]=f>>>8;H[d+2|0]=f>>>16;H[d+3|0]=f>>>24;H[d+4|0]=g;H[d+5|0]=g>>>8;H[d+6|0]=g>>>16;H[d+7|0]=g>>>24;H[d+33|0]=0;vb(h,e,j);if(H[e+11|0]>=0){break l}na(J[e>>2])}ba=e+16|0}b=ee(i,P(k,J[b+4>>2]-J[b>>2]>>2),k,h,c);Da(h,J[h+4>>2]);e=0;if(b){break h}break d}d=1}H[h|0]=0;b=J[c+20>>2];m:{if(!!J[c+16>>2]&(b|0)>=0|(b|0)>0){break m}e=h+1|0;sa(c,J[c+4>>2],h,e);f=J[c+16>>2];b=J[c+20>>2];H[h|0]=d;if(!!f&(b|0)>=0|(b|0)>0){break m}sa(c,J[c+4>>2],h,e)}n:{if((d|0)!=J[3712]){if(!g){break h}e=J[c+20>>2];f=e;b=J[c+16>>2];if(!!b&(e|0)>=0|(e|0)>0){break h}e=0;break n}b=J[c+20>>2];if(!!J[c+16>>2]&(b|0)>=0|(b|0)>0){break h}sa(c,J[c+4>>2],i,(g<<2)+i|0);break h}while(1){if(!b&(f|0)<=0|(f|0)<0){b=(e<<2)+i|0;sa(c,J[c+4>>2],b,b+d|0)}e=e+1|0;if((g|0)==(e|0)){break h}b=J[c+16>>2];f=J[c+20>>2];continue}}e=1;a=J[a+36>>2];if(!a){break d}da[J[J[a>>2]+40>>2]](a,c)|0}if(!i){break b}na(i)}ba=h+32|0;return e|0}qa();B()}function Ea(a,b,c,d,e,f,g,h,i){var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0;k=ba-96|0;ba=k;u=i&65535;o=(e^i)&-2147483648;q=e&65535;z=q;Q=i>>>16&32767;R=e>>>16&32767;a:{b:{if(Q-32767>>>0>4294934529&R-32767>>>0>=4294934530){break b}s=e&2147483647;r=s;j=d;if(!(!d&(r|0)==2147418112?!(b|c):r>>>0<2147418112)){m=d;o=e|32768;break a}s=i&2147483647;p=s;e=h;if(!(!e&(p|0)==2147418112?!(f|g):p>>>0<2147418112)){m=h;o=i|32768;b=f;c=g;break a}if(!(b|j|(r^2147418112|c))){if(!(e|f|(g|p))){o=2147450880;b=0;c=0;break a}o=o|2147418112;b=0;c=0;break a}if(!(e|f|(p^2147418112|g))){e=b|j;d=c|r;b=0;c=0;if(!(d|e)){o=2147450880;break a}o=o|2147418112;break a}if(!(b|j|(c|r))){b=0;c=0;break a}if(!(e|f|(g|p))){b=0;c=0;break a}if((r|0)==65535|r>>>0<65535){j=!(d|q);i=j?b:d;s=j<<6;e=S(i)+32|0;i=S(j?c:q);i=s+((i|0)==32?e:i)|0;Pa(k+80|0,b,c,d,q,i-15|0);t=16-i|0;d=J[k+88>>2];z=J[k+92>>2];c=J[k+84>>2];b=J[k+80>>2]}if(p>>>0>65535){break b}i=!(h|u);e=i?f:h;q=i<<6;j=S(e)+32|0;e=S(i?g:u);e=q+((e|0)==32?j:e)|0;Pa(k- -64|0,f,g,h,u,e-15|0);t=(t-e|0)+16|0;h=J[k+72>>2];u=J[k+76>>2];f=J[k+64>>2];g=J[k+68>>2]}e=f;f=g<<15|f>>>17;i=e<<15;e=0;v=i&-32768;K=c;s=Hl(v,e,c,0);e=ca;y=e;L=f;r=b;b=Hl(f,0,b,0);i=b+s|0;f=ca+e|0;c=b>>>0>i>>>0?f+1|0:f;j=0;b=Hl(r,l,v,l);p=j+b|0;f=i;e=f+ca|0;e=b>>>0>p>>>0?e+1|0:e;q=e;M=(f|0)==(e|0)&j>>>0>p>>>0|e>>>0>>0;N=d;w=Hl(v,l,d,0);O=ca;b=Hl(K,l,L,l);x=b+w|0;j=ca+O|0;j=b>>>0>x>>>0?j+1|0:j;b=u<<15|h>>>17;A=h<<15|g>>>17;d=Hl(A,0,r,l);B=d+x|0;f=ca+j|0;f=d>>>0>B>>>0?f+1|0:f;C=f;d=(c|0)==(y|0)&i>>>0>>0|c>>>0>>0;D=c+B|0;f=d+f|0;f=c>>>0>D>>>0?f+1|0:f;u=f;g=D;c=f;E=z|65536;z=Hl(v,l,E,n);P=ca;d=Hl(N,m,L,l);F=d+z|0;e=ca+P|0;e=d>>>0>F>>>0?e+1|0:e;i=e;G=b|-2147483648;b=Hl(G,0,r,l);H=b+F|0;f=ca+e|0;f=b>>>0>H>>>0?f+1|0:f;b=Hl(A,m,K,l);y=b+H|0;I=f;f=f+ca|0;s=b>>>0>y>>>0?f+1|0:f;b=0;r=b+g|0;e=c+y|0;v=b>>>0>r>>>0?e+1|0:e;f=v;b=r+M|0;c=b>>>0>>0?f+1|0:f;t=((R+Q|0)+t|0)-16383|0;d=Hl(G,m,K,l);h=ca;e=Hl(E,m,L,l);g=e+d|0;f=ca+h|0;f=e>>>0>g>>>0?f+1|0:f;n=(h|0)==(f|0)&d>>>0>g>>>0|f>>>0>>0;h=f;e=Hl(A,m,N,m);d=e+g|0;f=ca+f|0;f=d>>>0>>0?f+1|0:f;e=f;g=(f|0)==(h|0)&d>>>0>>0|f>>>0>>0;f=0;h=g;g=g+n|0;f=h>>>0>g>>>0?1:f;h=g;g=Hl(G,m,E,m);h=h+g|0;f=ca+f|0;M=h;g=g>>>0>h>>>0?f+1|0:f;h=d;l=e;e=(j|0)==(O|0)&w>>>0>x>>>0|j>>>0>>0;f=0;j=(j|0)==(C|0)&x>>>0>B>>>0|j>>>0>C>>>0;n=j;j=e+j|0;e=(n>>>0>j>>>0?1:f)+l|0;f=g;d=d+j|0;e=d>>>0>>0?e+1|0:e;n=e;w=d;d=(e|0)==(l|0)&d>>>0>>0|e>>>0>>0;e=d;d=d+M|0;f=e>>>0>d>>>0?f+1|0:f;j=d;g=f;e=Hl(A,m,E,m);l=ca;d=Hl(G,m,N,m);h=d+e|0;f=ca+l|0;f=d>>>0>h>>>0?f+1|0:f;d=f;f=(l|0)==(f|0)&e>>>0>h>>>0|f>>>0>>0;x=d+j|0;e=f+g|0;e=d>>>0>x>>>0?e+1|0:e;l=x;g=e;e=0;d=e+w|0;f=h+n|0;f=d>>>0>>0?f+1|0:f;e=f;h=(n|0)==(f|0)&d>>>0>>0|f>>>0>>0;f=g;g=h+l|0;f=g>>>0>>0?f+1|0:f;w=g;g=f;h=d;j=e;e=(s|0)==(I|0)&y>>>0>>0|s>>>0>>0;d=(i|0)==(P|0)&z>>>0>F>>>0|i>>>0

>>0;i=(i|0)==(I|0)&F>>>0>H>>>0|i>>>0>I>>>0;d=d+i|0;d=d+e|0;n=s;i=n+h|0;e=d+j|0;f=g;d=i;e=d>>>0>>0?e+1|0:e;h=(e|0)==(j|0)&h>>>0>d>>>0|e>>>0>>0;g=h+w|0;f=h>>>0>g>>>0?f+1|0:f;j=g;g=f;h=d;f=0;i=e;n=(u|0)==(v|0)&r>>>0>>0|u>>>0>v>>>0;l=n;n=n+((u|0)==(C|0)&B>>>0>D>>>0|u>>>0>>0)|0;e=e+(l>>>0>n>>>0?1:f)|0;f=g;d=d+n|0;e=d>>>0>>0?e+1|0:e;h=(e|0)==(i|0)&d>>>0>>0|e>>>0>>0;g=h;h=h+j|0;f=g>>>0>h>>>0?f+1|0:f;i=f;c:{if(f&65536){t=t+1|0;break c}j=q>>>31|0;g=0;f=i<<1|h>>>31;h=h<<1|e>>>31;i=f;f=e<<1|d>>>31;d=d<<1|c>>>31;e=f;f=q<<1|p>>>31;p=p<<1;q=f;f=c<<1|b>>>31;b=b<<1|j;c=f|g}if((t|0)>=32767){o=o|2147418112;b=0;c=0;break a}d:{if((t|0)<=0){g=1-t|0;if(g>>>0<=127){f=t+127|0;Pa(k+48|0,p,q,b,c,f);Pa(k+32|0,d,e,h,i,f);Gb(k+16|0,p,q,b,c,g);Gb(k,d,e,h,i,g);p=J[k+32>>2]|J[k+16>>2]|(J[k+48>>2]|J[k+56>>2]|(J[k+52>>2]|J[k+60>>2]))!=0;q=J[k+36>>2]|J[k+20>>2];b=J[k+40>>2]|J[k+24>>2];c=J[k+44>>2]|J[k+28>>2];d=J[k>>2];e=J[k+4>>2];g=J[k+8>>2];f=J[k+12>>2];break d}b=0;c=0;break a}g=h;f=i&65535|t<<16}m=g|m;o=f|o;if(!(!b&(c|0)==-2147483648?!(p|q):(c|0)>0|(c|0)>=0)){b=d+1|0;c=b?e:e+1|0;d=(e|0)==(c|0)&b>>>0>>0|c>>>0>>0;e=o;m=d+m|0;o=m>>>0>>0?e+1|0:e;break a}if(b|p|(c^-2147483648|q)){b=d;c=e;break a}j=o;f=e;b=d&1;c=b;b=b+d|0;c=c>>>0>b>>>0?f+1|0:f;d=(f|0)==(c|0)&b>>>0>>0|c>>>0>>0;m=d+m|0;o=d>>>0>m>>>0?j+1|0:j}J[a>>2]=b;J[a+4>>2]=c;J[a+8>>2]=m;J[a+12>>2]=o;ba=k+96|0}function ej(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;o=ba-16|0;ba=o;a:{if(!(da[J[J[a>>2]+32>>2]](a)|0)){break a}e=J[a+44>>2];c=J[a+12>>2];b=J[a+8>>2];H[o+15|0]=c-b>>>2;d=J[e+20>>2];if(!J[e+16>>2]&(d|0)<=0|(d|0)<0){sa(e,J[e+4>>2],o+15|0,o+16|0);c=J[a+12>>2];b=J[a+8>>2]}if((b|0)!=(c|0)){while(1){e=J[b>>2];if(!(da[J[J[e>>2]+8>>2]](e,a,J[a+4>>2])|0)){break a}b=b+4|0;if((c|0)!=(b|0)){continue}break}}f=ba-48|0;ba=f;e=a;q=a+32|0;g=J[a+12>>2];a=J[a+8>>2];d=g-a|0;c=d>>2;h=J[e+32>>2];b=J[e+36>>2]-h>>2;b:{if(c>>>0>b>>>0){Fa(q,c-b|0);g=J[e+12>>2];a=J[e+8>>2];d=g-a|0;c=d>>2;break b}if(b>>>0<=c>>>0){break b}J[e+36>>2]=h+(c<<2)}J[f+40>>2]=0;J[f+32>>2]=0;J[f+36>>2]=0;b=a;c:{d:{if((a|0)!=(g|0)){if((d|0)<0){break d}a=(c-1>>>5|0)+1|0;b=oa(a<<2);J[f+40>>2]=a;J[f+36>>2]=0;J[f+32>>2]=b;mc(f+32|0,c);b=J[e+12>>2];a=J[e+8>>2]}e:{while(1){f:{c=b-a>>2;if(k>>>0>>0){g=(a|0)!=(b|0);m=0;b=a;d=0;if(!g){break f}while(1){i=J[f+32>>2];n=d>>>5<<2;h=J[i+n>>2];p=1<>2];c=J[g+4>>2];if((c|0)!=J[g+8>>2]){while(1){a=0;c=J[(b<<2)+c>>2];h:{if((da[J[J[g>>2]+24>>2]](g,c)|0)<=0){break h}while(1){i:{g=J[l+J[e+8>>2]>>2];g=da[J[J[g>>2]+28>>2]](g,c,a)|0;if((g|0)==(d|0)){break i}g=J[J[e+20>>2]+(g<<2)>>2];if(J[J[f+32>>2]+(g>>>3&536870908)>>2]>>>g&1){break i}j=0;break h}g=J[l+J[e+8>>2]>>2];a=a+1|0;if((da[J[J[g>>2]+24>>2]](g,c)|0)>(a|0)){continue}break}}a=J[e+8>>2];g=J[l+a>>2];c=J[g+4>>2];b=b+1|0;if(b>>>0>2]-c>>2>>>0){continue}break}if(!j){break g}i=J[f+32>>2];h=J[n+i>>2]}J[J[q>>2]+(k<<2)>>2]=d;J[i+n>>2]=h|p;m=1;k=k+1|0}b=J[e+12>>2];c=b-a>>2;d=d+1|0;if(c>>>0>d>>>0){continue}break}break f}m=0;J[f+24>>2]=0;J[f+16>>2]=0;J[f+20>>2]=0;d=J[e+4>>2];c=J[d+12>>2];d=J[d+8>>2];J[f+8>>2]=0;J[f>>2]=0;J[f+4>>2]=0;j:{k:{l:{if((c|0)!=(d|0)){a=c-d|0;if((a|0)<0){break l}a=a>>2;b=(a-1>>>5|0)+1|0;c=oa(b<<2);J[f+8>>2]=b;J[f+4>>2]=0;J[f>>2]=c;mc(f,a);b=J[e+12>>2];a=J[e+8>>2]}m:{if((a|0)==(b|0)){b=1;break m}while(1){g=J[J[q>>2]+(m<<2)>>2]<<2;b=J[g+a>>2];b=J[b+8>>2]-J[b+4>>2]|0;n:{if((b|0)<8){break n}c=b>>2;b=J[f+16>>2];a=J[f+20>>2]-b>>2;o:{if(c>>>0>a>>>0){Fa(f+16|0,c-a|0);break o}if(a>>>0<=c>>>0){break o}J[f+20>>2]=b+(c<<2)}i=(c|0)<=1?1:c;h=0;p:{while(1){if((c|0)<=(h|0)){break p}b=0;d=J[f>>2];j=0;while(1){p=1<>>5<<2;q:{if(p&J[n+d>>2]){break q}a=0;d=J[g+J[e+8>>2]>>2];k=J[J[d+4>>2]+(b<<2)>>2];if((da[J[J[d>>2]+24>>2]](d,k)|0)>0){while(1){d=J[g+J[e+8>>2]>>2];l=da[J[J[d>>2]+28>>2]](d,k,a)|0;d=J[f>>2];if(!(J[d+(l>>>3&536870908)>>2]>>>l&1)){break q}d=J[g+J[e+8>>2]>>2];a=a+1|0;if((da[J[J[d>>2]+24>>2]](d,k)|0)>(a|0)){continue}break}}J[J[f+16>>2]+(h<<2)>>2]=b;d=J[f>>2];a=n+d|0;J[a>>2]=p|J[a>>2];j=1;h=h+1|0}b=b+1|0;if((i|0)!=(b|0)){continue}break}if((c|0)<=(h|0)|j){continue}break}b=0;break m}a=J[e+8>>2];b=J[g+a>>2];d=J[b+4>>2];J[b+8>>2]=d;J[b+20>>2]=J[b+16>>2];g=J[f+16>>2];l=J[f+20>>2];if((g|0)==(l|0)){break n}k=b+16|0;c=d;while(1){a=J[g>>2];r:{if(J[b+12>>2]!=(c|0)){J[c>>2]=a;J[b+8>>2]=c+4;break r}c=c-d|0;i=c>>2;h=i+1|0;if(h>>>0>=1073741824){break k}j=c>>>1|0;h=c>>>0>=2147483644?1073741823:h>>>0>>0?j:h;if(h){if(h>>>0>=1073741824){break j}j=oa(h<<2)}else{j=0}i=j+(i<<2)|0;J[i>>2]=a;c=ta(j,d,c);J[b+12>>2]=c+(h<<2);J[b+8>>2]=i+4;J[b+4>>2]=c;if(!d){break r}na(d)}c=J[b+16>>2];d=J[b+20>>2]-c>>2;s:{if((d|0)>(a|0)){break s}J[f+44>>2]=-1;h=a+1|0;if(h>>>0>d>>>0){jc(k,h-d|0,f+44|0);c=J[k>>2];break s}if(d>>>0<=h>>>0){break s}J[b+20>>2]=(h<<2)+c}a=(a<<2)+c|0;c=J[b+8>>2];d=J[b+4>>2];J[a>>2]=(c-d>>2)-1;g=g+4|0;if((l|0)!=(g|0)){continue}break}a=J[e+8>>2]}b=1;m=m+1|0;if(m>>>0>2]-a>>2>>>0){continue}break}}a=J[f>>2];if(a){na(a)}a=J[f+16>>2];if(!a){break e}J[f+20>>2]=a;na(a);break e}qa();B()}qa();B()}xa();B()}if(m&1|c>>>0<=k>>>0){continue}break}b=0}a=J[f+32>>2];if(a){na(a)}ba=f+48|0;break c}qa();B()}if(!b){break a}b=J[e+32>>2];a=J[e+36>>2];t:{if((b|0)==(a|0)){break t}while(1){if(!(da[J[J[e>>2]+40>>2]](e,J[b>>2])|0)){break a}b=b+4|0;if((a|0)!=(b|0)){continue}break}b=J[e+32>>2];a=J[e+36>>2];if((b|0)==(a|0)){break t}while(1){c=J[J[e+8>>2]+(J[b>>2]<<2)>>2];if(!(da[J[J[c>>2]+12>>2]](c,J[e+44>>2])|0)){break a}b=b+4|0;if((a|0)!=(b|0)){continue}break}}r=da[J[J[e>>2]+44>>2]](e)|0}ba=o+16|0;return r|0}function Id(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=Q(0),p=0,q=0,r=0,s=Q(0);f=ba-96|0;ba=f;J[f+72>>2]=0;J[f+76>>2]=0;J[f+64>>2]=0;J[f+68>>2]=0;J[f+80>>2]=1065353216;c=J[a+80>>2];J[f+24>>2]=0;J[f+16>>2]=0;J[f+20>>2]=0;a:{if(c){if(c>>>0>=1073741824){break a}e=c<<2;k=oa(e);J[f+16>>2]=k;c=e+k|0;J[f+24>>2]=c;pa(k,0,e);J[f+20>>2]=c;while(1){d=J[J[b>>2]>>2];e=J[b+48>>2];c=Hl(J[b+40>>2],J[b+44>>2],n,0);h=c;c=c+e|0;e=c+d|0;J[f+56>>2]=K[e+8|0]|K[e+9|0]<<8|(K[e+10|0]<<16|K[e+11|0]<<24);c=K[e+4|0]|K[e+5|0]<<8|(K[e+6|0]<<16|K[e+7|0]<<24);J[f+48>>2]=K[e|0]|K[e+1|0]<<8|(K[e+2|0]<<16|K[e+3|0]<<24);J[f+52>>2]=c;c=K[e+8|0]|K[e+9|0]<<8|(K[e+10|0]<<16|K[e+11|0]<<24);J[f+40>>2]=c;d=K[e+4|0]|K[e+5|0]<<8|(K[e+6|0]<<16|K[e+7|0]<<24);e=K[e|0]|K[e+1|0]<<8|(K[e+2|0]<<16|K[e+3|0]<<24);J[f+32>>2]=e;J[f+36>>2]=d;J[f+8>>2]=c;J[f>>2]=e;J[f+4>>2]=d;J[f+12>>2]=p;c=0;e=J[f+8>>2]^(J[f+4>>2]^(J[f>>2]^318)+239)+239;b:{c:{m=f- -64|0;h=J[m+4>>2];if(!h){break c}d=Kl(h);d:{if(d>>>0>=2){c=e;if(e>>>0>=h>>>0){c=(e>>>0)%(h>>>0)|0}i=J[J[m>>2]+(c<<2)>>2];if(!i){break c}if(d>>>0<2){break d}l=J[f+8>>2];q=J[f+4>>2];j=J[f>>2];while(1){i=J[i>>2];if(!i){break c}d=J[i+4>>2];if((d|0)!=(e|0)){if(d>>>0>=h>>>0){d=(d>>>0)%(h>>>0)|0}if((c|0)!=(d|0)){break c}}d=J[i+8>>2];e:{if((d|0)!=(j|0)){d=(d|0)==(j|0);break e}d=J[i+12>>2];if((d|0)!=(q|0)){d=(d|0)==(q|0);break e}d=(l|0)==J[i+16>>2]}if(!d){continue}break}c=0;break b}c=e&h-1;i=J[J[m>>2]+(c<<2)>>2];if(!i){break c}}j=h-1|0;l=J[f+8>>2];r=J[f+4>>2];q=J[f>>2];while(1){i=J[i>>2];if(!i){break c}d=J[i+4>>2];if((d|0)!=(e|0)&(d&j)!=(c|0)){break c}d=J[i+8>>2];f:{if((d|0)!=(q|0)){d=(d|0)==(q|0);break f}d=J[i+12>>2];if((d|0)!=(r|0)){d=(d|0)==(r|0);break f}d=(l|0)==J[i+16>>2]}if(!d){continue}break}c=0;break b}i=oa(24);J[i+16>>2]=J[f+8>>2];d=J[f+4>>2];J[i+8>>2]=J[f>>2];J[i+12>>2]=d;d=J[f+12>>2];J[i>>2]=0;J[i+4>>2]=e;J[i+20>>2]=d;o=Q(J[m+12>>2]+1>>>0);s=N[m+16>>2];g:{if(o>Q(s*Q(h>>>0))?0:h){break g}c=2;d=(h-1&h)!=0|h>>>0<3|h<<1;o=Q(W(Q(o/s)));h:{if(o=Q(0)){l=~~o>>>0;break h}l=0}d=d>>>0>l>>>0?d:l;i:{if((d|0)==1){break i}if(!(d&d-1)){c=d;break i}c=Ha(d);h=J[m+4>>2]}j:{if(c>>>0<=h>>>0){if(c>>>0>=h>>>0){break j}l=h>>>0<3;o=Q(W(Q(Q(M[m+12>>2])/N[m+16>>2])));k:{if(o=Q(0)){d=~~o>>>0;break k}d=0}l:{m:{if(l){break m}if(Kl(h)>>>0>1){break m}d=d>>>0<2?d:1<<32-S(d-1|0);break l}d=Ha(d)}c=c>>>0>d>>>0?c:d;if(h>>>0<=c>>>0){break j}}db(m,c)}h=J[m+4>>2];c=h-1|0;if(!(c&h)){c=c&e;break g}if(e>>>0>>0){c=e;break g}c=(e>>>0)%(h>>>0)|0}e=J[m>>2]+(c<<2)|0;c=J[e>>2];n:{o:{if(!c){c=m+8|0;J[i>>2]=J[c>>2];J[m+8>>2]=i;J[e>>2]=c;c=J[i>>2];if(!c){break n}c=J[c+4>>2];e=h-1|0;p:{if(!(e&h)){c=c&e;break p}if(c>>>0>>0){break p}c=(c>>>0)%(h>>>0)|0}c=J[m>>2]+(c<<2)|0;break o}J[i>>2]=J[c>>2]}J[c>>2]=i}J[m+12>>2]=J[m+12>>2]+1;c=1}H[f+92|0]=c;J[f+88>>2]=i;q:{if(!K[f+92|0]){J[(n<<2)+k>>2]=J[J[f+88>>2]+20>>2];break q}c=J[a+40>>2];ua(J[J[a>>2]>>2]+P(c,p)|0,f+48|0,c);k=J[f+16>>2];J[k+(n<<2)>>2]=p;p=p+1|0}n=n+1|0;g=n?g:g+1|0;j=J[a+80>>2];if(!g&n>>>0>>0){continue}break}if((j|0)!=(p|0)){r:{if(!K[a+84|0]){b=J[a+72>>2];j=J[a+68>>2];if((b|0)==(j|0)){break r}b=b-j>>2;g=b>>>0<=1?1:b;e=g&3;c=0;b=0;if(g-1>>>0>=3){n=g&-4;l=0;while(1){d=b<<2;g=d+j|0;J[g>>2]=J[(J[g>>2]<<2)+k>>2];g=j+(d|4)|0;J[g>>2]=J[(J[g>>2]<<2)+k>>2];g=j+(d|8)|0;J[g>>2]=J[(J[g>>2]<<2)+k>>2];g=j+(d|12)|0;J[g>>2]=J[(J[g>>2]<<2)+k>>2];b=b+4|0;l=l+4|0;if((n|0)!=(l|0)){continue}break}}if(!e){break r}while(1){g=j+(b<<2)|0;J[g>>2]=J[(J[g>>2]<<2)+k>>2];b=b+1|0;c=c+1|0;if((e|0)!=(c|0)){continue}break}break r}H[a+84|0]=0;g=a+68|0;b=J[a+68>>2];c=J[a+72>>2]-b>>2;s:{if(c>>>0>>0){Ma(g,j-c|0,2176);j=J[a+80>>2];break s}if(c>>>0<=j>>>0){break s}J[a+72>>2]=b+(j<<2)}if(!j){break r}d=J[g>>2];c=0;b=0;if(j>>>0>=4){n=j&-4;l=0;while(1){e=b<<2;J[e+d>>2]=J[e+k>>2];g=e|4;J[g+d>>2]=J[g+k>>2];g=e|8;J[g+d>>2]=J[g+k>>2];g=e|12;J[g+d>>2]=J[g+k>>2];b=b+4|0;l=l+4|0;if((n|0)!=(l|0)){continue}break}}n=j&3;if(!n){break r}while(1){g=b<<2;J[g+d>>2]=J[g+k>>2];b=b+1|0;c=c+1|0;if((n|0)!=(c|0)){continue}break}}J[a+80>>2]=p}na(k)}b=J[f+72>>2];if(b){while(1){a=J[b>>2];na(b);b=a;if(b){continue}break}}a=J[f+64>>2];J[f+64>>2]=0;if(a){na(a)}ba=f+96|0;return p}qa();B()}function jj(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;j=ba-16|0;ba=j;c=J[b+56>>2];f=J[c+100>>2];e=J[c+96>>2];d=(f-e|0)/12|0;Aa(d,J[b+44>>2]);Aa(J[J[b+56>>2]+80>>2],J[b+44>>2]);k=J[b+48>>2];c=oa(32);J[j>>2]=c;J[j+4>>2]=21;J[j+8>>2]=-2147483616;g=K[1149]|K[1150]<<8|(K[1151]<<16|K[1152]<<24);i=K[1145]|K[1146]<<8|(K[1147]<<16|K[1148]<<24);H[c+13|0]=i;H[c+14|0]=i>>>8;H[c+15|0]=i>>>16;H[c+16|0]=i>>>24;H[c+17|0]=g;H[c+18|0]=g>>>8;H[c+19|0]=g>>>16;H[c+20|0]=g>>>24;g=K[1144]|K[1145]<<8|(K[1146]<<16|K[1147]<<24);i=K[1140]|K[1141]<<8|(K[1142]<<16|K[1143]<<24);H[c+8|0]=i;H[c+9|0]=i>>>8;H[c+10|0]=i>>>16;H[c+11|0]=i>>>24;H[c+12|0]=g;H[c+13|0]=g>>>8;H[c+14|0]=g>>>16;H[c+15|0]=g>>>24;g=K[1136]|K[1137]<<8|(K[1138]<<16|K[1139]<<24);i=K[1132]|K[1133]<<8|(K[1134]<<16|K[1135]<<24);H[c|0]=i;H[c+1|0]=i>>>8;H[c+2|0]=i>>>16;H[c+3|0]=i>>>24;H[c+4|0]=g;H[c+5|0]=g>>>8;H[c+6|0]=g>>>16;H[c+7|0]=g>>>24;H[c+21|0]=0;g=Pb(k,j,0);if(H[j+11|0]<0){na(J[j>>2])}c=J[b+44>>2];a:{if(g){H[j|0]=0;d=J[c+20>>2];if(!J[c+16>>2]&(d|0)<=0|(d|0)<0){sa(c,J[c+4>>2],j,j+1|0)}e=0;c=0;g=ba-16|0;ba=g;J[g>>2]=0;J[g+4>>2]=0;d=J[b+56>>2];f=J[d+100>>2];d=J[d+96>>2];if((f|0)!=(d|0)){c=(f-d|0)/12|0;p=c>>>0<=1?1:c;c=0;d=J[g>>2];b:{c:{while(1){d:{i=J[J[b+56>>2]+96>>2]+P(n,12)|0;l=J[i>>2];f=l-m|0;k=f>>31;k=(f^k)-k<<1|f>>>31;e:{if((e|0)!=(h|0)){J[e>>2]=k;e=e+4|0;J[g+4>>2]=e;break e}f=e-c|0;m=f>>2;h=m+1|0;if(h>>>0>=1073741824){break d}e=f>>>1|0;h=f>>>0>=2147483644?1073741823:e>>>0>h>>>0?e:h;if(h){if(h>>>0>=1073741824){break c}d=oa(h<<2)}else{d=0}e=d+(m<<2)|0;J[e>>2]=k;f=ta(d,c,f);e=e+4|0;J[g+4>>2]=e;h=f+(h<<2)|0;if(c){na(c)}c=f}o=J[i+4>>2];f=o-l|0;k=f>>31;k=(f^k)-k<<1|f>>>31;f:{if((e|0)!=(h|0)){J[e>>2]=k;e=e+4|0;J[g+4>>2]=e;break f}f=e-c|0;l=f>>2;h=l+1|0;if(h>>>0>1073741823){break d}e=f>>>1|0;h=f>>>0>=2147483644?1073741823:e>>>0>h>>>0?e:h;if(h){if(h>>>0>1073741823){break c}d=oa(h<<2)}else{d=0}e=d+(l<<2)|0;J[e>>2]=k;f=ta(d,c,f);e=e+4|0;J[g+4>>2]=e;h=f+(h<<2)|0;if(c){na(c)}c=f}m=J[i+8>>2];f=m-o|0;i=f>>31;i=(f^i)-i<<1|f>>>31;g:{if((e|0)!=(h|0)){J[e>>2]=i;e=e+4|0;J[g+4>>2]=e;break g}f=e-c|0;k=f>>2;h=k+1|0;if(h>>>0>1073741823){break d}e=f>>>1|0;h=f>>>0>=2147483644?1073741823:e>>>0>h>>>0?e:h;if(h){if(h>>>0>1073741823){break c}d=oa(h<<2)}else{d=0}e=d+(k<<2)|0;J[e>>2]=i;f=ta(d,c,f);e=e+4|0;J[g+4>>2]=e;h=f+(h<<2)|0;if(c){na(c)}c=f}n=n+1|0;if((p|0)!=(n|0)){continue}break b}break}J[g+8>>2]=e;J[g>>2]=d;qa();B()}J[g>>2]=d;xa();B()}J[g>>2]=d}ee(c,e-c>>2,1,0,J[b+44>>2]);if(c){na(c)}ba=g+16|0;break a}H[j|0]=1;g=J[c+20>>2];if(!J[c+16>>2]&(g|0)<=0|(g|0)<0){sa(c,J[c+4>>2],j,j+1|0)}c=J[J[b+56>>2]+80>>2];if(c>>>0<=255){if((f|0)==(e|0)){break a}h=d>>>0<=1?1:d;f=j+1|0;c=0;while(1){d=J[b+44>>2];e=J[J[b+56>>2]+96>>2]+P(c,12)|0;H[j|0]=J[e>>2];g=J[d+20>>2];h:{if(!!J[d+16>>2]&(g|0)>=0|(g|0)>0){break h}sa(d,J[d+4>>2],j,f);d=J[b+44>>2];g=J[d+20>>2];i=J[d+16>>2];H[j|0]=J[e+4>>2];if(!!i&(g|0)>=0|(g|0)>0){break h}sa(d,J[d+4>>2],j,f);d=J[b+44>>2];g=J[d+20>>2];i=J[d+16>>2];H[j|0]=J[e+8>>2];if(!!i&(g|0)>=0|(g|0)>0){break h}sa(d,J[d+4>>2],j,f)}c=c+1|0;if((h|0)!=(c|0)){continue}break}break a}if(c>>>0<=65535){if((f|0)==(e|0)){break a}h=d>>>0<=1?1:d;f=j+2|0;c=0;while(1){d=J[b+44>>2];e=J[J[b+56>>2]+96>>2]+P(c,12)|0;I[j>>1]=J[e>>2];g=J[d+20>>2];i:{if(!!J[d+16>>2]&(g|0)>=0|(g|0)>0){break i}sa(d,J[d+4>>2],j,f);d=J[b+44>>2];g=J[d+20>>2];i=J[d+16>>2];I[j>>1]=J[e+4>>2];if(!!i&(g|0)>=0|(g|0)>0){break i}sa(d,J[d+4>>2],j,f);d=J[b+44>>2];g=J[d+20>>2];i=J[d+16>>2];I[j>>1]=J[e+8>>2];if(!!i&(g|0)>=0|(g|0)>0){break i}sa(d,J[d+4>>2],j,f)}c=c+1|0;if((h|0)!=(c|0)){continue}break}break a}if(c>>>0>=2097152){if((f|0)==(e|0)){break a}c=J[b+44>>2];f=!!J[c+16>>2];c=J[c+20>>2];if(f&(c|0)>=0|(c|0)>0){break a}f=d>>>0<=1?1:d;c=0;while(1){d=J[b+44>>2];e=J[d+20>>2];if(!J[d+16>>2]&(e|0)<=0|(e|0)<0){e=d;g=J[d+4>>2];d=J[J[b+56>>2]+96>>2]+P(c,12)|0;sa(e,g,d,d+12|0)}c=c+1|0;if((f|0)!=(c|0)){continue}break}break a}if((f|0)==(e|0)){break a}f=d>>>0<=1?1:d;c=0;while(1){d=J[J[b+56>>2]+96>>2]+P(c,12)|0;Aa(J[d>>2],J[b+44>>2]);Aa(J[d+4>>2],J[b+44>>2]);Aa(J[d+8>>2],J[b+44>>2]);c=c+1|0;if((f|0)!=(c|0)){continue}break}}J[a>>2]=0;J[a+4>>2]=0;J[a+8>>2]=0;J[a+12>>2]=0;ba=j+16|0}function vf(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=Q(0),p=0,q=0,r=0,s=0,t=0,u=0,v=Q(0);i=ba-80|0;ba=i;J[i+56>>2]=0;J[i+60>>2]=0;J[i+48>>2]=0;J[i+52>>2]=0;J[i+64>>2]=1065353216;c=J[a+80>>2];J[i+32>>2]=0;J[i+24>>2]=0;J[i+28>>2]=0;a:{if(c){if(c>>>0>=1073741824){break a}f=c<<2;k=oa(f);J[i+24>>2]=k;c=f+k|0;J[i+32>>2]=c;pa(k,0,f);J[i+28>>2]=c;while(1){d=J[J[b>>2]>>2];f=J[b+48>>2];c=Hl(J[b+40>>2],J[b+44>>2],n,0);g=c;c=c+f|0;c=c+d|0;f=K[c|0]|K[c+1|0]<<8|(K[c+2|0]<<16|K[c+3|0]<<24);c=K[c+4|0]|K[c+5|0]<<8|(K[c+6|0]<<16|K[c+7|0]<<24);J[i+40>>2]=f;J[i+44>>2]=c;J[i+16>>2]=p;J[i+8>>2]=f;J[i+12>>2]=c;c=0;m=i+8|0;f=L[m+6>>1]^(L[m+4>>1]^(L[m+2>>1]^(L[m>>1]^318)+239)+239)+239;b:{c:{l=i+48|0;g=J[l+4>>2];if(!g){break c}d=Kl(g);d:{if(d>>>0>=2){c=f;if(c>>>0>=g>>>0){c=(f>>>0)%(g>>>0)|0}h=J[J[l>>2]+(c<<2)>>2];if(!h){break c}if(d>>>0<2){break d}q=L[m>>1];r=L[m+2>>1];t=L[m+4>>1];j=L[m+6>>1];while(1){h=J[h>>2];if(!h){break c}d=J[h+4>>2];if((d|0)!=(f|0)){if(d>>>0>=g>>>0){d=(d>>>0)%(g>>>0)|0}if((c|0)!=(d|0)){break c}}d=L[h+8>>1];e:{if((d|0)!=(q|0)){d=(d|0)==(q|0);break e}d=L[h+10>>1];if((d|0)!=(r|0)){d=(d|0)==(r|0);break e}d=L[h+12>>1];if((d|0)!=(t|0)){d=(d|0)==(t|0);break e}d=(j|0)==L[h+14>>1]}if(!d){continue}break}c=0;break b}c=f&g-1;h=J[J[l>>2]+(c<<2)>>2];if(!h){break c}}t=g-1|0;u=L[m>>1];q=L[m+2>>1];r=L[m+4>>1];j=L[m+6>>1];while(1){h=J[h>>2];if(!h){break c}d=J[h+4>>2];if((d|0)!=(f|0)&(d&t)!=(c|0)){break c}d=L[h+8>>1];f:{if((d|0)!=(u|0)){d=(d|0)==(u|0);break f}d=L[h+10>>1];if((d|0)!=(q|0)){d=(d|0)==(q|0);break f}d=L[h+12>>1];if((d|0)!=(r|0)){d=(d|0)==(r|0);break f}d=(j|0)==L[h+14>>1]}if(!d){continue}break}c=0;break b}h=oa(20);d=J[m+4>>2];J[h+8>>2]=J[m>>2];J[h+12>>2]=d;d=J[m+8>>2];J[h+4>>2]=f;J[h+16>>2]=d;J[h>>2]=0;o=Q(J[l+12>>2]+1>>>0);v=N[l+16>>2];g:{if(o>Q(v*Q(g>>>0))?0:g){break g}c=2;d=(g-1&g)!=0|g>>>0<3|g<<1;o=Q(W(Q(o/v)));h:{if(o=Q(0)){j=~~o>>>0;break h}j=0}d=d>>>0>j>>>0?d:j;i:{if((d|0)==1){break i}if(!(d&d-1)){c=d;break i}c=Ha(d);g=J[l+4>>2]}j:{if(c>>>0<=g>>>0){if(c>>>0>=g>>>0){break j}j=g>>>0<3;o=Q(W(Q(Q(M[l+12>>2])/N[l+16>>2])));k:{if(o=Q(0)){d=~~o>>>0;break k}d=0}l:{m:{if(j){break m}if(Kl(g)>>>0>1){break m}d=d>>>0<2?d:1<<32-S(d-1|0);break l}d=Ha(d)}c=c>>>0>d>>>0?c:d;if(g>>>0<=c>>>0){break j}}db(l,c)}g=J[l+4>>2];c=g-1|0;if(!(c&g)){c=c&f;break g}if(f>>>0>>0){c=f;break g}c=(f>>>0)%(g>>>0)|0}f=J[l>>2]+(c<<2)|0;c=J[f>>2];n:{o:{if(!c){c=l+8|0;J[h>>2]=J[c>>2];J[l+8>>2]=h;J[f>>2]=c;c=J[h>>2];if(!c){break n}c=J[c+4>>2];f=g-1|0;p:{if(!(f&g)){c=c&f;break p}if(c>>>0>>0){break p}c=(c>>>0)%(g>>>0)|0}c=J[l>>2]+(c<<2)|0;break o}J[h>>2]=J[c>>2]}J[c>>2]=h}J[l+12>>2]=J[l+12>>2]+1;c=1}H[i+76|0]=c;J[i+72>>2]=h;q:{if(!K[i+76|0]){J[(n<<2)+k>>2]=J[J[i+72>>2]+16>>2];break q}c=J[a+40>>2];ua(J[J[a>>2]>>2]+P(c,p)|0,i+40|0,c);k=J[i+24>>2];J[k+(n<<2)>>2]=p;p=p+1|0}n=n+1|0;e=n?e:e+1|0;j=J[a+80>>2];if(!e&n>>>0>>0){continue}break}if((j|0)!=(p|0)){r:{if(!K[a+84|0]){b=J[a+72>>2];j=J[a+68>>2];if((b|0)==(j|0)){break r}b=b-j>>2;e=b>>>0<=1?1:b;f=e&3;c=0;b=0;if(e-1>>>0>=3){n=e&-4;while(1){d=b<<2;e=d+j|0;J[e>>2]=J[(J[e>>2]<<2)+k>>2];e=j+(d|4)|0;J[e>>2]=J[(J[e>>2]<<2)+k>>2];e=j+(d|8)|0;J[e>>2]=J[(J[e>>2]<<2)+k>>2];e=j+(d|12)|0;J[e>>2]=J[(J[e>>2]<<2)+k>>2];b=b+4|0;s=s+4|0;if((n|0)!=(s|0)){continue}break}}if(!f){break r}while(1){e=j+(b<<2)|0;J[e>>2]=J[(J[e>>2]<<2)+k>>2];b=b+1|0;c=c+1|0;if((f|0)!=(c|0)){continue}break}break r}H[a+84|0]=0;e=a+68|0;b=J[a+68>>2];c=J[a+72>>2]-b>>2;s:{if(c>>>0>>0){Ma(e,j-c|0,2176);j=J[a+80>>2];break s}if(c>>>0<=j>>>0){break s}J[a+72>>2]=b+(j<<2)}if(!j){break r}d=J[e>>2];c=0;b=0;if(j>>>0>=4){n=j&-4;while(1){f=b<<2;J[f+d>>2]=J[f+k>>2];e=f|4;J[e+d>>2]=J[e+k>>2];e=f|8;J[e+d>>2]=J[e+k>>2];e=f|12;J[e+d>>2]=J[e+k>>2];b=b+4|0;s=s+4|0;if((n|0)!=(s|0)){continue}break}}n=j&3;if(!n){break r}while(1){e=b<<2;J[e+d>>2]=J[e+k>>2];b=b+1|0;c=c+1|0;if((n|0)!=(c|0)){continue}break}}J[a+80>>2]=p}na(k)}b=J[i+56>>2];if(b){while(1){a=J[b>>2];na(b);b=a;if(b){continue}break}}a=J[i+48>>2];J[i+48>>2]=0;if(a){na(a)}ba=i+80|0;return p}qa();B()}function wf(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=Q(0),p=0,q=0,r=0,s=Q(0);e=ba-80|0;ba=e;J[e+56>>2]=0;J[e+60>>2]=0;J[e+48>>2]=0;J[e+52>>2]=0;J[e+64>>2]=1065353216;c=J[a+80>>2];J[e+24>>2]=0;J[e+16>>2]=0;J[e+20>>2]=0;a:{if(c){if(c>>>0>=1073741824){break a}g=c<<2;k=oa(g);J[e+16>>2]=k;c=g+k|0;J[e+24>>2]=c;pa(k,0,g);J[e+20>>2]=c;while(1){d=J[J[b>>2]>>2];g=J[b+48>>2];c=Hl(J[b+40>>2],J[b+44>>2],n,0);h=c;c=c+g|0;c=c+d|0;I[e+44>>1]=K[c+4|0]|K[c+5|0]<<8;J[e+40>>2]=K[c|0]|K[c+1|0]<<8|(K[c+2|0]<<16|K[c+3|0]<<24);g=K[c+4|0]|K[c+5|0]<<8;I[e+36>>1]=g;c=K[c|0]|K[c+1|0]<<8|(K[c+2|0]<<16|K[c+3|0]<<24);J[e+32>>2]=c;I[e+4>>1]=g;J[e>>2]=c;J[e+8>>2]=p;c=0;g=L[e+4>>1]^(L[e+2>>1]^(L[e>>1]^318)+239)+239;b:{c:{m=e+48|0;h=J[m+4>>2];if(!h){break c}d=Kl(h);d:{if(d>>>0>=2){c=g;if(c>>>0>=h>>>0){c=(g>>>0)%(h>>>0)|0}i=J[J[m>>2]+(c<<2)>>2];if(!i){break c}if(d>>>0<2){break d}q=L[e>>1];j=L[e+2>>1];l=L[e+4>>1];while(1){i=J[i>>2];if(!i){break c}d=J[i+4>>2];if((d|0)!=(g|0)){if(d>>>0>=h>>>0){d=(d>>>0)%(h>>>0)|0}if((c|0)!=(d|0)){break c}}d=L[i+8>>1];e:{if((d|0)!=(q|0)){d=(d|0)==(q|0);break e}d=L[i+10>>1];if((d|0)!=(j|0)){d=(d|0)==(j|0);break e}d=(l|0)==L[i+12>>1]}if(!d){continue}break}c=0;break b}c=g&h+262143;i=J[J[m>>2]+(c<<2)>>2];if(!i){break c}}j=h-1|0;r=L[e>>1];q=L[e+2>>1];l=L[e+4>>1];while(1){i=J[i>>2];if(!i){break c}d=J[i+4>>2];if((d|0)!=(g|0)&(d&j)!=(c|0)){break c}d=L[i+8>>1];f:{if((d|0)!=(r|0)){d=(d|0)==(r|0);break f}d=L[i+10>>1];if((d|0)!=(q|0)){d=(d|0)==(q|0);break f}d=(l|0)==L[i+12>>1]}if(!d){continue}break}c=0;break b}i=oa(20);I[i+12>>1]=L[e+4>>1];J[i+8>>2]=J[e>>2];d=J[e+8>>2];J[i>>2]=0;J[i+4>>2]=g;J[i+16>>2]=d;o=Q(J[m+12>>2]+1>>>0);s=N[m+16>>2];g:{if(o>Q(s*Q(h>>>0))?0:h){break g}c=2;d=(h-1&h)!=0|h>>>0<3|h<<1;o=Q(W(Q(o/s)));h:{if(o=Q(0)){l=~~o>>>0;break h}l=0}d=d>>>0>l>>>0?d:l;i:{if((d|0)==1){break i}if(!(d&d-1)){c=d;break i}c=Ha(d);h=J[m+4>>2]}j:{if(c>>>0<=h>>>0){if(c>>>0>=h>>>0){break j}l=h>>>0<3;o=Q(W(Q(Q(M[m+12>>2])/N[m+16>>2])));k:{if(o=Q(0)){d=~~o>>>0;break k}d=0}l:{m:{if(l){break m}if(Kl(h)>>>0>1){break m}d=d>>>0<2?d:1<<32-S(d-1|0);break l}d=Ha(d)}c=c>>>0>d>>>0?c:d;if(h>>>0<=c>>>0){break j}}db(m,c)}h=J[m+4>>2];c=h-1|0;if(!(c&h)){c=c&g;break g}if(g>>>0>>0){c=g;break g}c=(g>>>0)%(h>>>0)|0}g=J[m>>2]+(c<<2)|0;c=J[g>>2];n:{o:{if(!c){c=m+8|0;J[i>>2]=J[c>>2];J[m+8>>2]=i;J[g>>2]=c;c=J[i>>2];if(!c){break n}c=J[c+4>>2];g=h-1|0;p:{if(!(g&h)){c=c&g;break p}if(c>>>0>>0){break p}c=(c>>>0)%(h>>>0)|0}c=J[m>>2]+(c<<2)|0;break o}J[i>>2]=J[c>>2]}J[c>>2]=i}J[m+12>>2]=J[m+12>>2]+1;c=1}H[e+76|0]=c;J[e+72>>2]=i;q:{if(!K[e+76|0]){J[(n<<2)+k>>2]=J[J[e+72>>2]+16>>2];break q}c=J[a+40>>2];ua(J[J[a>>2]>>2]+P(c,p)|0,e+40|0,c);k=J[e+16>>2];J[k+(n<<2)>>2]=p;p=p+1|0}n=n+1|0;f=n?f:f+1|0;j=J[a+80>>2];if(!f&n>>>0>>0){continue}break}if((j|0)!=(p|0)){r:{if(!K[a+84|0]){b=J[a+72>>2];j=J[a+68>>2];if((b|0)==(j|0)){break r}b=b-j>>2;f=b>>>0<=1?1:b;g=f&3;c=0;b=0;if(f-1>>>0>=3){n=f&-4;l=0;while(1){d=b<<2;f=d+j|0;J[f>>2]=J[(J[f>>2]<<2)+k>>2];f=j+(d|4)|0;J[f>>2]=J[(J[f>>2]<<2)+k>>2];f=j+(d|8)|0;J[f>>2]=J[(J[f>>2]<<2)+k>>2];f=j+(d|12)|0;J[f>>2]=J[(J[f>>2]<<2)+k>>2];b=b+4|0;l=l+4|0;if((n|0)!=(l|0)){continue}break}}if(!g){break r}while(1){f=j+(b<<2)|0;J[f>>2]=J[(J[f>>2]<<2)+k>>2];b=b+1|0;c=c+1|0;if((g|0)!=(c|0)){continue}break}break r}H[a+84|0]=0;f=a+68|0;b=J[a+68>>2];c=J[a+72>>2]-b>>2;s:{if(c>>>0>>0){Ma(f,j-c|0,2176);j=J[a+80>>2];break s}if(c>>>0<=j>>>0){break s}J[a+72>>2]=b+(j<<2)}if(!j){break r}d=J[f>>2];c=0;b=0;if(j>>>0>=4){n=j&-4;l=0;while(1){g=b<<2;J[g+d>>2]=J[g+k>>2];f=g|4;J[f+d>>2]=J[f+k>>2];f=g|8;J[f+d>>2]=J[f+k>>2];f=g|12;J[f+d>>2]=J[f+k>>2];b=b+4|0;l=l+4|0;if((n|0)!=(l|0)){continue}break}}n=j&3;if(!n){break r}while(1){f=b<<2;J[f+d>>2]=J[f+k>>2];b=b+1|0;c=c+1|0;if((n|0)!=(c|0)){continue}break}}J[a+80>>2]=p}na(k)}b=J[e+56>>2];if(b){while(1){a=J[b>>2];na(b);b=a;if(b){continue}break}}a=J[e+48>>2];J[e+48>>2]=0;if(a){na(a)}ba=e+80|0;return p}qa();B()}function If(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=Q(0),q=0,r=0,s=0,t=0,u=Q(0);i=ba+-64|0;ba=i;J[i+40>>2]=0;J[i+44>>2]=0;J[i+32>>2]=0;J[i+36>>2]=0;J[i+48>>2]=1065353216;c=J[a+80>>2];J[i+24>>2]=0;J[i+16>>2]=0;J[i+20>>2]=0;a:{if(c){if(c>>>0>=1073741824){break a}f=c<<2;k=oa(f);J[i+16>>2]=k;c=f+k|0;J[i+24>>2]=c;pa(k,0,f);J[i+20>>2]=c;while(1){d=J[J[b>>2]>>2];f=J[b+48>>2];c=Hl(J[b+40>>2],J[b+44>>2],o,0);g=c;c=c+f|0;c=c+d|0;c=K[c|0]|K[c+1|0]<<8|(K[c+2|0]<<16|K[c+3|0]<<24);J[i+28>>2]=c;J[i+12>>2]=q;J[i+8>>2]=c;c=0;n=i+8|0;f=K[n+3|0]^(K[n+2|0]^(K[n+1|0]^(K[n|0]^318)+239)+239)+239;b:{c:{m=i+32|0;g=J[m+4>>2];if(!g){break c}d=Kl(g);d:{if(d>>>0>=2){c=f;if(c>>>0>=g>>>0){c=(f>>>0)%(g>>>0)|0}h=J[J[m>>2]+(c<<2)>>2];if(!h){break c}if(d>>>0<2){break d}r=K[n|0];s=K[n+1|0];j=K[n+2|0];l=K[n+3|0];while(1){h=J[h>>2];if(!h){break c}d=J[h+4>>2];if((d|0)!=(f|0)){if(d>>>0>=g>>>0){d=(d>>>0)%(g>>>0)|0}if((c|0)!=(d|0)){break c}}d=K[h+8|0];e:{if((d|0)!=(r|0)){d=(d|0)==(r|0);break e}d=K[h+9|0];if((d|0)!=(s|0)){d=(d|0)==(s|0);break e}d=K[h+10|0];if((d|0)!=(j|0)){d=(d|0)==(j|0);break e}d=(l|0)==K[h+11|0]}if(!d){continue}break}c=0;break b}c=f&g-1;h=J[J[m>>2]+(c<<2)>>2];if(!h){break c}}j=g-1|0;t=K[n|0];r=K[n+1|0];s=K[n+2|0];l=K[n+3|0];while(1){h=J[h>>2];if(!h){break c}d=J[h+4>>2];if((d|0)!=(f|0)&(d&j)!=(c|0)){break c}d=K[h+8|0];f:{if((d|0)!=(t|0)){d=(d|0)==(t|0);break f}d=K[h+9|0];if((d|0)!=(r|0)){d=(d|0)==(r|0);break f}d=K[h+10|0];if((d|0)!=(s|0)){d=(d|0)==(s|0);break f}d=(l|0)==K[h+11|0]}if(!d){continue}break}c=0;break b}h=oa(16);J[h+8>>2]=J[n>>2];d=J[n+4>>2];J[h+4>>2]=f;J[h+12>>2]=d;J[h>>2]=0;p=Q(J[m+12>>2]+1>>>0);u=N[m+16>>2];g:{if(p>Q(u*Q(g>>>0))?0:g){break g}c=2;d=(g-1&g)!=0|g>>>0<3|g<<1;p=Q(W(Q(p/u)));h:{if(p=Q(0)){l=~~p>>>0;break h}l=0}d=d>>>0>l>>>0?d:l;i:{if((d|0)==1){break i}if(!(d&d-1)){c=d;break i}c=Ha(d);g=J[m+4>>2]}j:{if(c>>>0<=g>>>0){if(c>>>0>=g>>>0){break j}l=g>>>0<3;p=Q(W(Q(Q(M[m+12>>2])/N[m+16>>2])));k:{if(p=Q(0)){d=~~p>>>0;break k}d=0}l:{m:{if(l){break m}if(Kl(g)>>>0>1){break m}d=d>>>0<2?d:1<<32-S(d-1|0);break l}d=Ha(d)}c=c>>>0>d>>>0?c:d;if(g>>>0<=c>>>0){break j}}db(m,c)}g=J[m+4>>2];c=g-1|0;if(!(c&g)){c=c&f;break g}if(f>>>0>>0){c=f;break g}c=(f>>>0)%(g>>>0)|0}f=J[m>>2]+(c<<2)|0;c=J[f>>2];n:{o:{if(!c){c=m+8|0;J[h>>2]=J[c>>2];J[m+8>>2]=h;J[f>>2]=c;c=J[h>>2];if(!c){break n}c=J[c+4>>2];f=g-1|0;p:{if(!(f&g)){c=c&f;break p}if(c>>>0>>0){break p}c=(c>>>0)%(g>>>0)|0}c=J[m>>2]+(c<<2)|0;break o}J[h>>2]=J[c>>2]}J[c>>2]=h}J[m+12>>2]=J[m+12>>2]+1;c=1}H[i+60|0]=c;J[i+56>>2]=h;q:{if(!K[i+60|0]){J[(o<<2)+k>>2]=J[J[i+56>>2]+12>>2];break q}c=J[a+40>>2];ua(J[J[a>>2]>>2]+P(c,q)|0,i+28|0,c);k=J[i+16>>2];J[k+(o<<2)>>2]=q;q=q+1|0}o=o+1|0;e=o?e:e+1|0;j=J[a+80>>2];if(!e&o>>>0>>0){continue}break}if((j|0)!=(q|0)){r:{if(!K[a+84|0]){b=J[a+72>>2];j=J[a+68>>2];if((b|0)==(j|0)){break r}b=b-j>>2;e=b>>>0<=1?1:b;f=e&3;c=0;b=0;if(e-1>>>0>=3){o=e&-4;l=0;while(1){d=b<<2;e=d+j|0;J[e>>2]=J[(J[e>>2]<<2)+k>>2];e=j+(d|4)|0;J[e>>2]=J[(J[e>>2]<<2)+k>>2];e=j+(d|8)|0;J[e>>2]=J[(J[e>>2]<<2)+k>>2];e=j+(d|12)|0;J[e>>2]=J[(J[e>>2]<<2)+k>>2];b=b+4|0;l=l+4|0;if((o|0)!=(l|0)){continue}break}}if(!f){break r}while(1){e=j+(b<<2)|0;J[e>>2]=J[(J[e>>2]<<2)+k>>2];b=b+1|0;c=c+1|0;if((f|0)!=(c|0)){continue}break}break r}H[a+84|0]=0;e=a+68|0;b=J[a+68>>2];c=J[a+72>>2]-b>>2;s:{if(c>>>0>>0){Ma(e,j-c|0,2176);j=J[a+80>>2];break s}if(c>>>0<=j>>>0){break s}J[a+72>>2]=b+(j<<2)}if(!j){break r}d=J[e>>2];c=0;b=0;if(j>>>0>=4){o=j&-4;l=0;while(1){f=b<<2;J[f+d>>2]=J[f+k>>2];e=f|4;J[e+d>>2]=J[e+k>>2];e=f|8;J[e+d>>2]=J[e+k>>2];e=f|12;J[e+d>>2]=J[e+k>>2];b=b+4|0;l=l+4|0;if((o|0)!=(l|0)){continue}break}}o=j&3;if(!o){break r}while(1){e=b<<2;J[e+d>>2]=J[e+k>>2];b=b+1|0;c=c+1|0;if((o|0)!=(c|0)){continue}break}}J[a+80>>2]=q}na(k)}b=J[i+40>>2];if(b){while(1){a=J[b>>2];na(b);b=a;if(b){continue}break}}a=J[i+32>>2];J[i+32>>2]=0;if(a){na(a)}ba=i- -64|0;return q}qa();B()}function Tc(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;e=ba-96|0;ba=e;f=J[a+16>>2];H[e+92|0]=1;J[e+88>>2]=b;J[e+84>>2]=b;J[e+80>>2]=f;j=J[a+20>>2];d=J[j>>2];a:{b:{f=J[J[f+28>>2]+(b<<2)>>2];if(f>>>0>2]-d>>2>>>0){d=J[J[a+8>>2]+(J[d+(f<<2)>>2]<<2)>>2];f=J[a+4>>2];if(!K[f+84|0]){d=J[J[f+68>>2]+(d<<2)>>2]}J[e+72>>2]=0;J[e+76>>2]=0;j=e- -64|0;J[j>>2]=0;J[j+4>>2]=0;J[e+56>>2]=0;J[e+60>>2]=0;hb(f,d,H[f+24|0],e+56|0);if((b|0)!=-1){f=b+1|0;j=(f>>>0)%3|0?f:b-2|0;m=((b>>>0)%3|0?-1:2)+b|0;while(1){d=j;f=m;c:{if(!J[a+28>>2]){break c}f=b+1|0;d=(f>>>0)%3|0?f:b-2|0;f=b-1|0;if((b>>>0)%3|0){break c}f=b+2|0}n=J[a+20>>2];b=J[n>>2];d=J[J[J[a+16>>2]+28>>2]+(d<<2)>>2];if(d>>>0>=J[n+4>>2]-b>>2>>>0){break b}d=J[J[a+8>>2]+(J[b+(d<<2)>>2]<<2)>>2];b=J[a+4>>2];if(!K[b+84|0]){d=J[J[b+68>>2]+(d<<2)>>2]}J[e+48>>2]=0;J[e+52>>2]=0;J[e+40>>2]=0;J[e+44>>2]=0;J[e+32>>2]=0;J[e+36>>2]=0;hb(b,d,H[b+24|0],e+32|0);d=J[a+20>>2];b=J[d>>2];f=J[J[J[a+16>>2]+28>>2]+(f<<2)>>2];if(f>>>0>=J[d+4>>2]-b>>2>>>0){break a}d=J[J[a+8>>2]+(J[b+(f<<2)>>2]<<2)>>2];b=J[a+4>>2];if(!K[b+84|0]){d=J[J[b+68>>2]+(d<<2)>>2]}J[e+24>>2]=0;J[e+28>>2]=0;J[e+16>>2]=0;J[e+20>>2]=0;J[e+8>>2]=0;J[e+12>>2]=0;hb(b,d,H[b+24|0],e+8|0);g=J[e+8>>2];b=J[e+56>>2];d=g-b|0;p=J[e+60>>2];t=J[e+12>>2]-(p+(b>>>0>g>>>0)|0)|0;h=J[e+40>>2];f=J[e+64>>2];n=h-f|0;u=J[e+68>>2];x=J[e+44>>2]-(u+(f>>>0>h>>>0)|0)|0;g=Hl(d,t,n,x);v=o-g|0;w=i-(ca+(g>>>0>o>>>0)|0)|0;i=v;h=J[e+16>>2];g=h-f|0;u=J[e+20>>2]-((f>>>0>h>>>0)+u|0)|0;k=J[e+32>>2];h=k-b|0;v=J[e+36>>2]-((b>>>0>k>>>0)+p|0)|0;b=Hl(g,u,h,v);o=i+b|0;i=ca+w|0;i=b>>>0>o>>>0?i+1|0:i;b=l;l=d;p=t;k=J[e+48>>2];f=J[e+72>>2];d=k-f|0;t=J[e+76>>2];w=J[e+52>>2]-(t+(f>>>0>k>>>0)|0)|0;l=Hl(l,p,d,w);k=b+l|0;b=ca+q|0;b=k>>>0>>0?b+1|0:b;l=J[e+24>>2];p=l-f|0;f=J[e+28>>2]-((f>>>0>l>>>0)+t|0)|0;q=Hl(p,f,h,v);l=k-q|0;q=b-(ca+(k>>>0>>0)|0)|0;b=Hl(g,u,d,w);d=r-b|0;b=s-(ca+(b>>>0>r>>>0)|0)|0;s=Hl(p,f,n,x);r=s+d|0;b=ca+b|0;s=r>>>0>>0?b+1|0:b;b=J[e+88>>2];f=J[e+80>>2];d:{if(K[e+92|0]){e:{f:{g:{h:{if((b|0)==-1){break h}d=b+1|0;b=(d>>>0)%3|0?d:b-2|0;if((b|0)==-1|J[J[f>>2]+(b>>>3&536870908)>>2]>>>b&1){break h}b=J[J[J[f+64>>2]+12>>2]+(b<<2)>>2];if((b|0)!=-1){break g}}J[e+88>>2]=-1;break f}d=b+1|0;b=(d>>>0)%3|0?d:b-2|0;J[e+88>>2]=b;if((b|0)!=-1){break e}}b=J[e+84>>2];d=-1;i:{if((b|0)==-1){break i}j:{if((b>>>0)%3|0){b=b-1|0;break j}b=b+2|0;d=-1;if((b|0)==-1){break i}}d=-1;if(J[J[f>>2]+(b>>>3&536870908)>>2]>>>b&1){break i}b=J[J[J[f+64>>2]+12>>2]+(b<<2)>>2];d=-1;if((b|0)==-1){break i}d=b-1|0;if((b>>>0)%3|0){break i}d=b+2|0}H[e+92|0]=0;J[e+88>>2]=d;break d}if((b|0)!=J[e+84>>2]){break d}J[e+88>>2]=-1;break d}d=-1;k:{if((b|0)==-1){break k}l:{if((b>>>0)%3|0){b=b-1|0;break l}b=b+2|0;d=-1;if((b|0)==-1){break k}}d=-1;if(J[J[f>>2]+(b>>>3&536870908)>>2]>>>b&1){break k}b=J[J[J[f+64>>2]+12>>2]+(b<<2)>>2];d=-1;if((b|0)==-1){break k}d=b-1|0;if((b>>>0)%3|0){break k}d=b+2|0}J[e+88>>2]=d}b=J[e+88>>2];if((b|0)!=-1){continue}break}}b=s>>31;f=b^r;d=f-b|0;b=(b^s)-((b>>>0>f>>>0)+b|0)|0;m=-1;f=2147483647;g=q>>31;h=g^l;j=h-g|0;n=(g^q)-((h>>>0>>0)+g|0)|0;h=n;k=j^-1;g=h^2147483647;n=i;m:{n:{if(!J[a+28>>2]){if((b|0)==(g|0)&d>>>0>k>>>0|b>>>0>g>>>0){break m}b=b+h|0;a=d+j|0;b=a>>>0>>0?b+1|0:b;f=a;g=i;a=g>>31;d=a;m=d^o;a=m-d|0;i=a;d=(d^g)-((d>>>0>m>>>0)+d|0)|0;a=a+f|0;d=d^2147483647;i=(d|0)==(b|0)&(i^-1)>>>0>>0|b>>>0>d>>>0;a=i?-1:a;if(!(i&0)&(a|0)<=536870912|(a|0)<536870912){break m}b=0;a=a>>>29|0;break n}o:{if((b|0)==(g|0)&d>>>0>k>>>0|b>>>0>g>>>0){break o}b=b+h|0;a=d+j|0;b=a>>>0>>0?b+1|0:b;k=i;d=i>>31;h=d^o;i=h-d|0;j=(d^k)-((d>>>0>h>>>0)+d|0)|0;g=j^2147483647;d=a;a=i;if((g|0)==(b|0)&d>>>0>(a^-1)>>>0|b>>>0>g>>>0){break o}b=b+j|0;m=a+d|0;b=m>>>0>>0?b+1|0:b;f=b;if(!b&m>>>0<536870913){break m}}b=f>>>29|0;a=(f&536870911)<<3|m>>>29}o=Il(o,n,a,b);l=Il(l,q,a,b);r=Il(r,s,a,b)}J[c+8>>2]=o;J[c+4>>2]=l;J[c>>2]=r;ba=e+96|0;return}ra();B()}ra();B()}ra();B()}function Kf(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=Q(0),p=0,q=0,r=0,s=Q(0);e=ba+-64|0;ba=e;J[e+40>>2]=0;J[e+44>>2]=0;J[e+32>>2]=0;J[e+36>>2]=0;J[e+48>>2]=1065353216;c=J[a+80>>2];J[e+16>>2]=0;J[e+8>>2]=0;J[e+12>>2]=0;a:{if(c){if(c>>>0>=1073741824){break a}g=c<<2;k=oa(g);J[e+8>>2]=k;c=g+k|0;J[e+16>>2]=c;pa(k,0,g);J[e+12>>2]=c;while(1){d=J[J[b>>2]>>2];g=J[b+48>>2];c=Hl(J[b+40>>2],J[b+44>>2],n,0);h=c;c=c+g|0;c=c+d|0;H[e+30|0]=K[c+2|0];I[e+28>>1]=K[c|0]|K[c+1|0]<<8;g=K[c+2|0];H[e+26|0]=g;c=K[c|0]|K[c+1|0]<<8;I[e+24>>1]=c;H[e+2|0]=g;I[e>>1]=c;J[e+4>>2]=p;c=0;g=K[e+2|0]^(K[e+1|0]^(K[e|0]^318)+239)+239;b:{c:{m=e+32|0;h=J[m+4>>2];if(!h){break c}d=Kl(h);d:{if(d>>>0>=2){c=g;if(c>>>0>=h>>>0){c=(g>>>0)%(h>>>0)|0}i=J[J[m>>2]+(c<<2)>>2];if(!i){break c}if(d>>>0<2){break d}q=K[e|0];j=K[e+1|0];l=K[e+2|0];while(1){i=J[i>>2];if(!i){break c}d=J[i+4>>2];if((d|0)!=(g|0)){if(d>>>0>=h>>>0){d=(d>>>0)%(h>>>0)|0}if((c|0)!=(d|0)){break c}}d=K[i+8|0];e:{if((d|0)!=(q|0)){d=(d|0)==(q|0);break e}d=K[i+9|0];if((d|0)!=(j|0)){d=(d|0)==(j|0);break e}d=(l|0)==K[i+10|0]}if(!d){continue}break}c=0;break b}c=g&h-1;i=J[J[m>>2]+(c<<2)>>2];if(!i){break c}}j=h-1|0;r=K[e|0];q=K[e+1|0];l=K[e+2|0];while(1){i=J[i>>2];if(!i){break c}d=J[i+4>>2];if((d|0)!=(g|0)&(d&j)!=(c|0)){break c}d=K[i+8|0];f:{if((d|0)!=(r|0)){d=(d|0)==(r|0);break f}d=K[i+9|0];if((d|0)!=(q|0)){d=(d|0)==(q|0);break f}d=(l|0)==K[i+10|0]}if(!d){continue}break}c=0;break b}i=oa(16);H[i+10|0]=K[e+2|0];I[i+8>>1]=L[e>>1];d=J[e+4>>2];J[i>>2]=0;J[i+4>>2]=g;J[i+12>>2]=d;o=Q(J[m+12>>2]+1>>>0);s=N[m+16>>2];g:{if(o>Q(s*Q(h>>>0))?0:h){break g}c=2;d=(h-1&h)!=0|h>>>0<3|h<<1;o=Q(W(Q(o/s)));h:{if(o=Q(0)){l=~~o>>>0;break h}l=0}d=d>>>0>l>>>0?d:l;i:{if((d|0)==1){break i}if(!(d&d-1)){c=d;break i}c=Ha(d);h=J[m+4>>2]}j:{if(c>>>0<=h>>>0){if(c>>>0>=h>>>0){break j}l=h>>>0<3;o=Q(W(Q(Q(M[m+12>>2])/N[m+16>>2])));k:{if(o=Q(0)){d=~~o>>>0;break k}d=0}l:{m:{if(l){break m}if(Kl(h)>>>0>1){break m}d=d>>>0<2?d:1<<32-S(d-1|0);break l}d=Ha(d)}c=c>>>0>d>>>0?c:d;if(h>>>0<=c>>>0){break j}}db(m,c)}h=J[m+4>>2];c=h-1|0;if(!(c&h)){c=c&g;break g}if(g>>>0>>0){c=g;break g}c=(g>>>0)%(h>>>0)|0}g=J[m>>2]+(c<<2)|0;c=J[g>>2];n:{o:{if(!c){c=m+8|0;J[i>>2]=J[c>>2];J[m+8>>2]=i;J[g>>2]=c;c=J[i>>2];if(!c){break n}c=J[c+4>>2];g=h-1|0;p:{if(!(g&h)){c=c&g;break p}if(c>>>0>>0){break p}c=(c>>>0)%(h>>>0)|0}c=J[m>>2]+(c<<2)|0;break o}J[i>>2]=J[c>>2]}J[c>>2]=i}J[m+12>>2]=J[m+12>>2]+1;c=1}H[e+60|0]=c;J[e+56>>2]=i;q:{if(!K[e+60|0]){J[(n<<2)+k>>2]=J[J[e+56>>2]+12>>2];break q}c=J[a+40>>2];ua(J[J[a>>2]>>2]+P(c,p)|0,e+28|0,c);k=J[e+8>>2];J[k+(n<<2)>>2]=p;p=p+1|0}n=n+1|0;f=n?f:f+1|0;j=J[a+80>>2];if(!f&n>>>0>>0){continue}break}if((j|0)!=(p|0)){r:{if(!K[a+84|0]){b=J[a+72>>2];j=J[a+68>>2];if((b|0)==(j|0)){break r}b=b-j>>2;f=b>>>0<=1?1:b;g=f&3;c=0;b=0;if(f-1>>>0>=3){n=f&-4;l=0;while(1){d=b<<2;f=d+j|0;J[f>>2]=J[(J[f>>2]<<2)+k>>2];f=j+(d|4)|0;J[f>>2]=J[(J[f>>2]<<2)+k>>2];f=j+(d|8)|0;J[f>>2]=J[(J[f>>2]<<2)+k>>2];f=j+(d|12)|0;J[f>>2]=J[(J[f>>2]<<2)+k>>2];b=b+4|0;l=l+4|0;if((n|0)!=(l|0)){continue}break}}if(!g){break r}while(1){f=j+(b<<2)|0;J[f>>2]=J[(J[f>>2]<<2)+k>>2];b=b+1|0;c=c+1|0;if((g|0)!=(c|0)){continue}break}break r}H[a+84|0]=0;f=a+68|0;b=J[a+68>>2];c=J[a+72>>2]-b>>2;s:{if(c>>>0>>0){Ma(f,j-c|0,2176);j=J[a+80>>2];break s}if(c>>>0<=j>>>0){break s}J[a+72>>2]=b+(j<<2)}if(!j){break r}d=J[f>>2];c=0;b=0;if(j>>>0>=4){n=j&-4;l=0;while(1){g=b<<2;J[g+d>>2]=J[g+k>>2];f=g|4;J[f+d>>2]=J[f+k>>2];f=g|8;J[f+d>>2]=J[f+k>>2];f=g|12;J[f+d>>2]=J[f+k>>2];b=b+4|0;l=l+4|0;if((n|0)!=(l|0)){continue}break}}n=j&3;if(!n){break r}while(1){f=b<<2;J[f+d>>2]=J[f+k>>2];b=b+1|0;c=c+1|0;if((n|0)!=(c|0)){continue}break}}J[a+80>>2]=p}na(k)}b=J[e+40>>2];if(b){while(1){a=J[b>>2];na(b);b=a;if(b){continue}break}}a=J[e+32>>2];J[e+32>>2]=0;if(a){na(a)}ba=e- -64|0;return p}qa();B()}function Rc(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;f=ba-96|0;ba=f;d=J[a+16>>2];H[f+92|0]=1;J[f+88>>2]=b;J[f+84>>2]=b;J[f+80>>2]=d;a:{if((b|0)==-1){break a}j=J[a+20>>2];e=J[j>>2];d=J[J[d>>2]+(b<<2)>>2];if(d>>>0>=J[j+4>>2]-e>>2>>>0){break a}e=J[J[a+8>>2]+(J[e+(d<<2)>>2]<<2)>>2];d=J[a+4>>2];if(!K[d+84|0]){e=J[J[d+68>>2]+(e<<2)>>2]}J[f+72>>2]=0;J[f+76>>2]=0;j=f- -64|0;J[j>>2]=0;J[j+4>>2]=0;J[f+56>>2]=0;J[f+60>>2]=0;hb(d,e,H[d+24|0],f+56|0);d=b+1|0;j=(d>>>0)%3|0?d:b-2|0;m=((b>>>0)%3|0?-1:2)+b|0;b:{c:{while(1){e=j;d=m;d:{if(!J[a+28>>2]){break d}d=b+1|0;e=(d>>>0)%3|0?d:b-2|0;d=b-1|0;if((b>>>0)%3|0){break d}d=b+2|0}if((e|0)==-1){break b}n=J[a+20>>2];b=J[n>>2];e=J[J[J[a+16>>2]>>2]+(e<<2)>>2];if(e>>>0>=J[n+4>>2]-b>>2>>>0){break b}e=J[J[a+8>>2]+(J[b+(e<<2)>>2]<<2)>>2];b=J[a+4>>2];if(!K[b+84|0]){e=J[J[b+68>>2]+(e<<2)>>2]}J[f+48>>2]=0;J[f+52>>2]=0;J[f+40>>2]=0;J[f+44>>2]=0;J[f+32>>2]=0;J[f+36>>2]=0;hb(b,e,H[b+24|0],f+32|0);if((d|0)==-1){break c}e=J[a+20>>2];b=J[e>>2];d=J[J[J[a+16>>2]>>2]+(d<<2)>>2];if(d>>>0>=J[e+4>>2]-b>>2>>>0){break c}e=J[J[a+8>>2]+(J[b+(d<<2)>>2]<<2)>>2];b=J[a+4>>2];if(!K[b+84|0]){e=J[J[b+68>>2]+(e<<2)>>2]}J[f+24>>2]=0;J[f+28>>2]=0;J[f+16>>2]=0;J[f+20>>2]=0;J[f+8>>2]=0;J[f+12>>2]=0;hb(b,e,H[b+24|0],f+8|0);g=J[f+8>>2];b=J[f+56>>2];e=g-b|0;p=J[f+60>>2];t=J[f+12>>2]-(p+(b>>>0>g>>>0)|0)|0;h=J[f+40>>2];d=J[f+64>>2];n=h-d|0;u=J[f+68>>2];x=J[f+44>>2]-(u+(d>>>0>h>>>0)|0)|0;g=Hl(e,t,n,x);v=o-g|0;w=i-(ca+(g>>>0>o>>>0)|0)|0;i=v;h=J[f+16>>2];g=h-d|0;u=J[f+20>>2]-((d>>>0>h>>>0)+u|0)|0;k=J[f+32>>2];h=k-b|0;v=J[f+36>>2]-((b>>>0>k>>>0)+p|0)|0;b=Hl(g,u,h,v);o=i+b|0;i=ca+w|0;i=b>>>0>o>>>0?i+1|0:i;b=l;l=e;p=t;k=J[f+48>>2];d=J[f+72>>2];e=k-d|0;t=J[f+76>>2];w=J[f+52>>2]-(t+(d>>>0>k>>>0)|0)|0;l=Hl(l,p,e,w);k=b+l|0;b=ca+q|0;b=k>>>0>>0?b+1|0:b;l=J[f+24>>2];p=l-d|0;d=J[f+28>>2]-((d>>>0>l>>>0)+t|0)|0;q=Hl(p,d,h,v);l=k-q|0;q=b-(ca+(k>>>0>>0)|0)|0;b=Hl(g,u,e,w);e=r-b|0;b=s-(ca+(b>>>0>r>>>0)|0)|0;s=Hl(p,d,n,x);r=s+e|0;b=ca+b|0;s=r>>>0>>0?b+1|0:b;b=J[f+88>>2];e=J[f+80>>2];e:{if(K[f+92|0]){f:{g:{h:{i:{if((b|0)==-1){break i}d=b+1|0;b=(d>>>0)%3|0?d:b-2|0;if((b|0)==-1){break i}b=J[J[e+12>>2]+(b<<2)>>2];if((b|0)!=-1){break h}}J[f+88>>2]=-1;break g}d=b+1|0;b=(d>>>0)%3|0?d:b-2|0;J[f+88>>2]=b;if((b|0)!=-1){break f}}b=J[f+84>>2];d=-1;j:{if((b|0)==-1){break j}k:{if((b>>>0)%3|0){b=b-1|0;break k}b=b+2|0;d=-1;if((b|0)==-1){break j}}b=J[J[e+12>>2]+(b<<2)>>2];d=-1;if((b|0)==-1){break j}d=b-1|0;if((b>>>0)%3|0){break j}d=b+2|0}H[f+92|0]=0;J[f+88>>2]=d;break e}if((b|0)!=J[f+84>>2]){break e}J[f+88>>2]=-1;break e}d=-1;l:{if((b|0)==-1){break l}m:{if((b>>>0)%3|0){b=b-1|0;break m}b=b+2|0;d=-1;if((b|0)==-1){break l}}b=J[J[e+12>>2]+(b<<2)>>2];d=-1;if((b|0)==-1){break l}d=b-1|0;if((b>>>0)%3|0){break l}d=b+2|0}J[f+88>>2]=d}b=J[f+88>>2];if((b|0)!=-1){continue}break}b=s>>31;d=b^r;e=d-b|0;b=(b^s)-((b>>>0>d>>>0)+b|0)|0;m=-1;d=2147483647;g=q>>31;h=g^l;j=h-g|0;n=(g^q)-((h>>>0>>0)+g|0)|0;h=n;k=j^-1;g=h^2147483647;n=i;n:{o:{if(!J[a+28>>2]){if((b|0)==(g|0)&e>>>0>k>>>0|b>>>0>g>>>0){break n}b=b+h|0;a=e+j|0;b=a>>>0>>0?b+1|0:b;d=a;g=i;a=g>>31;e=a;m=e^o;a=m-e|0;i=a;e=(e^g)-((e>>>0>m>>>0)+e|0)|0;a=a+d|0;e=e^2147483647;i=(e|0)==(b|0)&(i^-1)>>>0>>0|b>>>0>e>>>0;a=i?-1:a;if(!(i&0)&(a|0)<=536870912|(a|0)<536870912){break n}b=0;a=a>>>29|0;break o}p:{if((b|0)==(g|0)&e>>>0>k>>>0|b>>>0>g>>>0){break p}b=b+h|0;a=e+j|0;b=a>>>0>>0?b+1|0:b;k=i;e=i>>31;h=e^o;i=h-e|0;j=(e^k)-((e>>>0>h>>>0)+e|0)|0;g=j^2147483647;e=a;a=i;if((g|0)==(b|0)&e>>>0>(a^-1)>>>0|b>>>0>g>>>0){break p}b=b+j|0;m=a+e|0;b=m>>>0>>0?b+1|0:b;d=b;if(!b&m>>>0<536870913){break n}}b=d>>>29|0;a=(d&536870911)<<3|m>>>29}o=Il(o,n,a,b);l=Il(l,q,a,b);r=Il(r,s,a,b)}J[c+8>>2]=o;J[c+4>>2]=l;J[c>>2]=r;ba=f+96|0;return}ra();B()}ra();B()}ra();B()}function Jd(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=Q(0),o=0,p=0,q=0,r=0,s=0,t=Q(0);h=ba-80|0;ba=h;J[h+56>>2]=0;J[h+60>>2]=0;J[h+48>>2]=0;J[h+52>>2]=0;J[h+64>>2]=1065353216;c=J[a+80>>2];J[h+32>>2]=0;J[h+24>>2]=0;J[h+28>>2]=0;a:{if(c){if(c>>>0>=1073741824){break a}f=c<<2;k=oa(f);J[h+24>>2]=k;c=f+k|0;J[h+32>>2]=c;pa(k,0,f);J[h+28>>2]=c;while(1){d=J[J[b>>2]>>2];f=J[b+48>>2];c=Hl(J[b+40>>2],J[b+44>>2],m,0);g=c;c=c+f|0;c=c+d|0;f=K[c|0]|K[c+1|0]<<8|(K[c+2|0]<<16|K[c+3|0]<<24);c=K[c+4|0]|K[c+5|0]<<8|(K[c+6|0]<<16|K[c+7|0]<<24);J[h+40>>2]=f;J[h+44>>2]=c;J[h+16>>2]=p;J[h+8>>2]=f;J[h+12>>2]=c;c=0;o=h+8|0;f=J[o+4>>2]^(J[o>>2]^318)+239;b:{c:{l=h+48|0;g=J[l+4>>2];if(!g){break c}d=Kl(g);d:{if(d>>>0>=2){c=f;if(c>>>0>=g>>>0){c=(f>>>0)%(g>>>0)|0}j=J[J[l>>2]+(c<<2)>>2];if(!j){break c}if(d>>>0<2){break d}i=J[o+4>>2];r=J[o>>2];while(1){j=J[j>>2];if(!j){break c}d=J[j+4>>2];if((d|0)!=(f|0)){if(d>>>0>=g>>>0){d=(d>>>0)%(g>>>0)|0}if((c|0)!=(d|0)){break c}}d=J[j+8>>2];e:{if((d|0)!=(r|0)){d=(d|0)==(r|0);break e}d=(i|0)==J[j+12>>2]}if(!d){continue}break}c=0;break b}c=f&g-1;j=J[J[l>>2]+(c<<2)>>2];if(!j){break c}}r=g-1|0;i=J[o+4>>2];s=J[o>>2];while(1){j=J[j>>2];if(!j){break c}d=J[j+4>>2];if((d|0)!=(f|0)&(d&r)!=(c|0)){break c}d=J[j+8>>2];f:{if((d|0)!=(s|0)){d=(d|0)==(s|0);break f}d=(i|0)==J[j+12>>2]}if(!d){continue}break}c=0;break b}j=oa(20);d=J[o+4>>2];J[j+8>>2]=J[o>>2];J[j+12>>2]=d;d=J[o+8>>2];J[j+4>>2]=f;J[j+16>>2]=d;J[j>>2]=0;n=Q(J[l+12>>2]+1>>>0);t=N[l+16>>2];g:{if(n>Q(t*Q(g>>>0))?0:g){break g}c=2;d=(g-1&g)!=0|g>>>0<3|g<<1;n=Q(W(Q(n/t)));h:{if(n=Q(0)){i=~~n>>>0;break h}i=0}d=d>>>0>i>>>0?d:i;i:{if((d|0)==1){break i}if(!(d&d-1)){c=d;break i}c=Ha(d);g=J[l+4>>2]}j:{if(c>>>0<=g>>>0){if(c>>>0>=g>>>0){break j}i=g>>>0<3;n=Q(W(Q(Q(M[l+12>>2])/N[l+16>>2])));k:{if(n=Q(0)){d=~~n>>>0;break k}d=0}l:{m:{if(i){break m}if(Kl(g)>>>0>1){break m}d=d>>>0<2?d:1<<32-S(d-1|0);break l}d=Ha(d)}c=c>>>0>d>>>0?c:d;if(g>>>0<=c>>>0){break j}}db(l,c)}g=J[l+4>>2];c=g-1|0;if(!(c&g)){c=c&f;break g}if(f>>>0>>0){c=f;break g}c=(f>>>0)%(g>>>0)|0}f=J[l>>2]+(c<<2)|0;c=J[f>>2];n:{o:{if(!c){c=l+8|0;J[j>>2]=J[c>>2];J[l+8>>2]=j;J[f>>2]=c;c=J[j>>2];if(!c){break n}c=J[c+4>>2];f=g-1|0;p:{if(!(f&g)){c=c&f;break p}if(c>>>0>>0){break p}c=(c>>>0)%(g>>>0)|0}c=J[l>>2]+(c<<2)|0;break o}J[j>>2]=J[c>>2]}J[c>>2]=j}J[l+12>>2]=J[l+12>>2]+1;c=1}H[h+76|0]=c;J[h+72>>2]=j;q:{if(!K[h+76|0]){J[(m<<2)+k>>2]=J[J[h+72>>2]+16>>2];break q}c=J[a+40>>2];ua(J[J[a>>2]>>2]+P(c,p)|0,h+40|0,c);k=J[h+24>>2];J[k+(m<<2)>>2]=p;p=p+1|0}m=m+1|0;e=m?e:e+1|0;i=J[a+80>>2];if(!e&m>>>0>>0){continue}break}if((i|0)!=(p|0)){r:{if(!K[a+84|0]){b=J[a+72>>2];i=J[a+68>>2];if((b|0)==(i|0)){break r}b=b-i>>2;e=b>>>0<=1?1:b;f=e&3;c=0;b=0;if(e-1>>>0>=3){m=e&-4;while(1){d=b<<2;e=d+i|0;J[e>>2]=J[(J[e>>2]<<2)+k>>2];e=i+(d|4)|0;J[e>>2]=J[(J[e>>2]<<2)+k>>2];e=i+(d|8)|0;J[e>>2]=J[(J[e>>2]<<2)+k>>2];e=i+(d|12)|0;J[e>>2]=J[(J[e>>2]<<2)+k>>2];b=b+4|0;q=q+4|0;if((m|0)!=(q|0)){continue}break}}if(!f){break r}while(1){e=i+(b<<2)|0;J[e>>2]=J[(J[e>>2]<<2)+k>>2];b=b+1|0;c=c+1|0;if((f|0)!=(c|0)){continue}break}break r}H[a+84|0]=0;e=a+68|0;b=J[a+68>>2];c=J[a+72>>2]-b>>2;s:{if(c>>>0>>0){Ma(e,i-c|0,2176);i=J[a+80>>2];break s}if(c>>>0<=i>>>0){break s}J[a+72>>2]=b+(i<<2)}if(!i){break r}d=J[e>>2];c=0;b=0;if(i>>>0>=4){m=i&-4;while(1){f=b<<2;J[f+d>>2]=J[f+k>>2];e=f|4;J[e+d>>2]=J[e+k>>2];e=f|8;J[e+d>>2]=J[e+k>>2];e=f|12;J[e+d>>2]=J[e+k>>2];b=b+4|0;q=q+4|0;if((m|0)!=(q|0)){continue}break}}m=i&3;if(!m){break r}while(1){e=b<<2;J[e+d>>2]=J[e+k>>2];b=b+1|0;c=c+1|0;if((m|0)!=(c|0)){continue}break}}J[a+80>>2]=p}na(k)}b=J[h+56>>2];if(b){while(1){a=J[b>>2];na(b);b=a;if(b){continue}break}}a=J[h+48>>2];J[h+48>>2]=0;if(a){na(a)}ba=h+80|0;return p}qa();B()}function fb(a){var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;f=ba-32|0;ba=f;a:{b=J[a+16>>2];b:{if(b>>>0>=113){J[a+16>>2]=b-113;b=J[a+4>>2];j=J[b>>2];c=b+4|0;J[a+4>>2]=c;b=J[a+8>>2];c:{if((b|0)!=J[a+12>>2]){d=b;break c}k=J[a>>2];if(k>>>0>>0){e=((c-k>>2)+1|0)/-2<<2;b=b-c|0;d=ta(e+c|0,c,b)+b|0;J[a+8>>2]=d;J[a+4>>2]=e+J[a+4>>2];break c}d=(b|0)==(k|0)?1:b-k>>1;if(d>>>0>=1073741824){break a}e=d<<2;h=oa(e);l=e+h|0;e=h+(d&-4)|0;d=e;d:{if((b|0)==(c|0)){break d}b=b-c|0;m=b&-4;i=b-4|0;g=(i>>>2|0)+1&7;e:{if(!g){b=e;break e}d=0;b=e;while(1){J[b>>2]=J[c>>2];c=c+4|0;b=b+4|0;d=d+1|0;if((g|0)!=(d|0)){continue}break}}d=e+m|0;if(i>>>0<28){break d}while(1){J[b>>2]=J[c>>2];J[b+4>>2]=J[c+4>>2];J[b+8>>2]=J[c+8>>2];J[b+12>>2]=J[c+12>>2];J[b+16>>2]=J[c+16>>2];J[b+20>>2]=J[c+20>>2];J[b+24>>2]=J[c+24>>2];J[b+28>>2]=J[c+28>>2];c=c+32|0;b=b+32|0;if((d|0)!=(b|0)){continue}break}}J[a+12>>2]=l;J[a+8>>2]=d;J[a+4>>2]=e;J[a>>2]=h;if(!k){break c}na(k);d=J[a+8>>2]}J[d>>2]=j;J[a+8>>2]=J[a+8>>2]+4;break b}c=J[a+8>>2];b=J[a+4>>2];l=c-b|0;h=l>>2;g=J[a+12>>2];d=J[a>>2];e=g-d|0;if(h>>>0>2>>>0){if((c|0)!=(g|0)){n=f,o=oa(4068),J[n+8>>2]=o;d=a;f:{g:{b=J[a+8>>2];h:{if((b|0)!=J[a+12>>2]){e=b;break h}c=J[d+4>>2];h=J[d>>2];if(c>>>0>h>>>0){g=((c-h>>2)+1|0)/-2<<2;a=b-c|0;e=ta(g+c|0,c,a)+a|0;J[d+8>>2]=e;J[d+4>>2]=g+J[d+4>>2];break h}e=(b|0)==(h|0)?1:b-h>>1;if(e>>>0>=1073741824){break g}a=e<<2;j=oa(a);l=a+j|0;a=j+(e&-4)|0;e=a;i:{if((b|0)==(c|0)){break i}b=b-c|0;m=b&-4;i=b-4|0;g=(i>>>2|0)+1&7;j:{if(!g){b=a;break j}e=0;b=a;while(1){J[b>>2]=J[c>>2];c=c+4|0;b=b+4|0;e=e+1|0;if((g|0)!=(e|0)){continue}break}}e=a+m|0;if(i>>>0<28){break i}while(1){J[b>>2]=J[c>>2];J[b+4>>2]=J[c+4>>2];J[b+8>>2]=J[c+8>>2];J[b+12>>2]=J[c+12>>2];J[b+16>>2]=J[c+16>>2];J[b+20>>2]=J[c+20>>2];J[b+24>>2]=J[c+24>>2];J[b+28>>2]=J[c+28>>2];c=c+32|0;b=b+32|0;if((e|0)!=(b|0)){continue}break}}J[d+12>>2]=l;J[d+8>>2]=e;J[d+4>>2]=a;J[d>>2]=j;if(!h){break h}na(h);e=J[d+8>>2]}J[e>>2]=J[f+8>>2];J[d+8>>2]=J[d+8>>2]+4;break f}xa();B()}break b}n=f,o=oa(4068),J[n+8>>2]=o;qe(a,f+8|0);b=J[a+4>>2];j=J[b>>2];c=b+4|0;J[a+4>>2]=c;b=J[a+8>>2];k:{if((b|0)!=J[a+12>>2]){d=b;break k}k=J[a>>2];if(k>>>0>>0){e=((c-k>>2)+1|0)/-2<<2;b=b-c|0;d=ta(e+c|0,c,b)+b|0;J[a+8>>2]=d;J[a+4>>2]=e+J[a+4>>2];break k}d=(b|0)==(k|0)?1:b-k>>1;if(d>>>0>=1073741824){break a}e=d<<2;h=oa(e);l=e+h|0;e=h+(d&-4)|0;d=e;l:{if((b|0)==(c|0)){break l}b=b-c|0;m=b&-4;i=b-4|0;g=(i>>>2|0)+1&7;m:{if(!g){b=e;break m}d=0;b=e;while(1){J[b>>2]=J[c>>2];c=c+4|0;b=b+4|0;d=d+1|0;if((g|0)!=(d|0)){continue}break}}d=e+m|0;if(i>>>0<28){break l}while(1){J[b>>2]=J[c>>2];J[b+4>>2]=J[c+4>>2];J[b+8>>2]=J[c+8>>2];J[b+12>>2]=J[c+12>>2];J[b+16>>2]=J[c+16>>2];J[b+20>>2]=J[c+20>>2];J[b+24>>2]=J[c+24>>2];J[b+28>>2]=J[c+28>>2];c=c+32|0;b=b+32|0;if((d|0)!=(b|0)){continue}break}}J[a+12>>2]=l;J[a+8>>2]=d;J[a+4>>2]=e;J[a>>2]=h;if(!k){break k}na(k);d=J[a+8>>2]}J[d>>2]=j;J[a+8>>2]=J[a+8>>2]+4;break b}J[f+24>>2]=a+12;m=(d|0)==(g|0)?1:e>>1;if(m>>>0>=1073741824){break a}e=m<<2;g=oa(e);J[f+8>>2]=g;j=e+g|0;J[f+20>>2]=j;d=(h<<2)+g|0;J[f+12>>2]=d;i=oa(4068);n:{if((h|0)!=(m|0)){break n}if((l|0)>0){d=((h+1|0)/-2<<2)+d|0;J[f+12>>2]=d;break n}d=(b|0)==(c|0)?1:l>>1;if(d>>>0>=1073741824){break a}b=d<<2;e=oa(b);J[f+8>>2]=e;j=b+e|0;J[f+20>>2]=j;d=e+(d&-4)|0;J[f+12>>2]=d;na(g);b=J[a+4>>2];c=J[a+8>>2];g=e}J[d>>2]=i;i=d+4|0;J[f+16>>2]=i;e=b;if((b|0)!=(c|0)){while(1){c=c-4|0;qe(f+8|0,c);if(J[a+4>>2]!=(c|0)){continue}break}j=J[f+20>>2];i=J[f+16>>2];d=J[f+12>>2];g=J[f+8>>2];e=c;b=J[a+8>>2]}c=J[a>>2];J[a>>2]=g;J[f+8>>2]=c;J[a+4>>2]=d;J[f+12>>2]=e;J[a+8>>2]=i;J[f+16>>2]=b;d=J[a+12>>2];J[a+12>>2]=j;J[f+20>>2]=d;if((b|0)!=(e|0)){J[f+16>>2]=((e-b|0)+3&-4)+b}if(!c){break b}na(c)}ba=f+32|0;return}xa();B()}function _k(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;k=ba-48|0;ba=k;J[a+68>>2]=f;o=a+112|0;za(o);d=J[a+56>>2];e=J[d>>2];d=J[d+4>>2];J[k+40>>2]=0;J[k+32>>2]=0;J[k+36>>2]=0;J[k+16>>2]=0;J[k+20>>2]=0;J[k+8>>2]=0;J[k+12>>2]=0;J[k>>2]=0;J[k+4>>2]=0;a:{d=d-e|0;if((d|0)>0){p=a+60|0;d=d>>>2|0;q=d>>>0<=1?1:d;r=c+4|0;while(1){e=J[a+56>>2];d=J[e>>2];if(J[e+4>>2]-d>>2>>>0<=n>>>0){break a}Tc(p,J[d+(n<<2)>>2],k+32|0);f=J[k+36>>2];d=f>>31;g=J[k+32>>2];e=g>>31;i=(d^f)-d+((e^g)-e)|0;h=J[k+40>>2];d=h>>31;e=(d^h)-d|0;d=0;m=e;e=e+i|0;d=m>>>0>e>>>0?1:d;b:{if(!(d|e)){j=J[a+108>>2];i=j;break b}j=J[a+108>>2];i=j>>31;f=Il(Hl(j,i,f,f>>31),ca,e,d);l=f>>31;i=Il(Hl(j,i,g,g>>31),ca,e,d);d=i>>31;d=(f^l)-l+((d^i)-d)|0;h=(h|0)<0?d-j|0:j-d|0}c:{if((i|0)>=0){e=f+j|0;l=h+j|0;break c}d:{if((f|0)<0){d=h>>31;e=(d^h)-d|0;break d}d=h>>31;e=J[a+100>>2]+(d-(d^h)|0)|0}if((h|0)<0){d=f>>31;l=(d^f)-d|0;break c}d=f>>31;l=J[a+100>>2]+(d-(d^f)|0)|0}d=J[a+100>>2];m=d;g=d;e:{if(!(e|l)){break e}if(!((d|0)!=(l|0)|e)){m=l;g=l;break e}if(!((d|0)!=(e|0)|l)){m=e;g=e;break e}if(!((j|0)>=(l|0)|e)){m=(j<<1)-l|0;g=0;break e}if(!((d|0)!=(e|0)|(j|0)<=(l|0))){m=(j<<1)-l|0;g=e;break e}if(!((d|0)!=(l|0)|(e|0)>=(j|0))){m=l;g=(j<<1)-e|0;break e}if(l){m=l;g=e;break e}m=0;g=e;if((e|0)<=(j|0)){break e}g=(j<<1)-e|0}J[k+28>>2]=m;J[k+24>>2]=g;J[k+40>>2]=0-h;J[k+36>>2]=0-f;J[k+32>>2]=0-i;f:{if((i|0)<=0){i=j-h|0;e=j-f|0;break f}e=f>>31;e=(e^f)-e|0;i=(h|0)>0?e:d-e|0;e=h>>31;e=(e^h)-e|0;e=(f|0)>0?e:d-e|0}g:{if(!(e|i)){i=d;break g}if(!((d|0)!=(i|0)|e)){i=d;break g}f=(d|0)!=(e|0);if(!(i|f)){i=d;break g}if(!((i|0)<=(j|0)|e)){i=(j<<1)-i|0;d=0;break g}if(!((i|0)>=(j|0)|f)){i=(j<<1)-i|0;break g}if(!((d|0)!=(i|0)|(e|0)>=(j|0))){i=d;d=(j<<1)-e|0;break g}if(i){d=e;break g}i=0;if((e|0)<=(j|0)){d=e;break g}d=(j<<1)-e|0}J[k+20>>2]=i;J[k+16>>2]=d;h=J[a+8>>2];h:{if((h|0)<=0){break h}l=(n<<3)+b|0;i=J[a+32>>2];e=0;g=k+24|0;while(1){j=i;if((h|0)>0){j=J[a+32>>2];f=0;while(1){d=f<<2;m=J[d+g>>2];h=J[a+16>>2];i:{if((m|0)>(h|0)){J[d+j>>2]=h;break i}d=d+j|0;h=J[a+12>>2];if((h|0)>(m|0)){J[d>>2]=h;break i}J[d>>2]=m}f=f+1|0;h=J[a+8>>2];if((f|0)<(h|0)){continue}break}}f=e<<2;d=f+(k+8|0)|0;g=J[f+l>>2]-J[f+j>>2]|0;J[d>>2]=g;f=d;d=J[a+28>>2];j:{if((g|0)<(d|0)){g=g+J[a+20>>2]|0}else{if((g|0)<=J[a+24>>2]){break j}g=g-J[a+20>>2]|0}J[f>>2]=g}g=j;e=e+1|0;if((e|0)<(h|0)){continue}break}if((h|0)<=0){break h}i=J[a+32>>2];e=0;g=k+16|0;while(1){j=i;if((h|0)>0){j=J[a+32>>2];f=0;while(1){d=f<<2;m=J[d+g>>2];h=J[a+16>>2];k:{if((m|0)>(h|0)){J[d+j>>2]=h;break k}d=d+j|0;h=J[a+12>>2];if((h|0)>(m|0)){J[d>>2]=h;break k}J[d>>2]=m}f=f+1|0;h=J[a+8>>2];if((f|0)<(h|0)){continue}break}d=J[a+28>>2]}g=e<<2;f=g+k|0;g=J[g+l>>2]-J[j+g>>2]|0;J[f>>2]=g;l:{if((d|0)>(g|0)){g=g+J[a+20>>2]|0}else{if((g|0)<=J[a+24>>2]){break l}g=g-J[a+20>>2]|0}J[f>>2]=g}g=j;e=e+1|0;if((e|0)<(h|0)){continue}break}}f=J[k+8>>2];e=J[a+108>>2];m:{if((f|0)>(e|0)){f=f-J[a+96>>2]|0;break m}if((0-e|0)<=(f|0)){break m}f=J[a+96>>2]+f|0}J[k+8>>2]=f;h=J[k+12>>2];n:{if((e|0)<(h|0)){h=h-J[a+96>>2]|0;break n}if((0-e|0)<=(h|0)){break n}h=J[a+96>>2]+h|0}J[k+12>>2]=h;d=J[k>>2];o:{if((e|0)<(d|0)){d=d-J[a+96>>2]|0;break o}if((0-e|0)<=(d|0)){break o}d=J[a+96>>2]+d|0}g=n<<1;J[k>>2]=d;i=J[k+4>>2];p:{if((e|0)<(i|0)){i=i-J[a+96>>2]|0;break p}if((0-e|0)<=(i|0)){break p}i=J[a+96>>2]+i|0}J[k+4>>2]=i;e=h>>31;e=(e^h)-e|0;l=f>>31;l=(l^f)-l|0;m=l>>>0>(e^2147483647)>>>0?2147483647:e+l|0;e=i>>31;e=(e^i)-e|0;l=d>>31;l=(l^d)-l|0;e=m>>>0>=(l>>>0>(e^2147483647)>>>0?2147483647:e+l|0)>>>0;Ca(o,e);g=g<<2;d=e?d:f;J[g+c>>2]=(J[a+96>>2]&d>>31)+d;d=e?i:h;J[g+r>>2]=(J[a+96>>2]&d>>31)+d;n=n+1|0;if((q|0)!=(n|0)){continue}break}}ba=k+48|0;return 1}ra();B()}function Qk(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;k=ba-48|0;ba=k;J[a+68>>2]=f;o=a+112|0;za(o);d=J[a+56>>2];e=J[d>>2];d=J[d+4>>2];J[k+40>>2]=0;J[k+32>>2]=0;J[k+36>>2]=0;J[k+16>>2]=0;J[k+20>>2]=0;J[k+8>>2]=0;J[k+12>>2]=0;J[k>>2]=0;J[k+4>>2]=0;a:{d=d-e|0;if((d|0)>0){p=a+60|0;d=d>>>2|0;q=d>>>0<=1?1:d;r=c+4|0;while(1){e=J[a+56>>2];d=J[e>>2];if(J[e+4>>2]-d>>2>>>0<=n>>>0){break a}Rc(p,J[d+(n<<2)>>2],k+32|0);f=J[k+36>>2];d=f>>31;g=J[k+32>>2];e=g>>31;i=(d^f)-d+((e^g)-e)|0;h=J[k+40>>2];d=h>>31;e=(d^h)-d|0;d=0;m=e;e=e+i|0;d=m>>>0>e>>>0?1:d;b:{if(!(d|e)){j=J[a+108>>2];i=j;break b}j=J[a+108>>2];i=j>>31;f=Il(Hl(j,i,f,f>>31),ca,e,d);l=f>>31;i=Il(Hl(j,i,g,g>>31),ca,e,d);d=i>>31;d=(f^l)-l+((d^i)-d)|0;h=(h|0)<0?d-j|0:j-d|0}c:{if((i|0)>=0){e=f+j|0;l=h+j|0;break c}d:{if((f|0)<0){d=h>>31;e=(d^h)-d|0;break d}d=h>>31;e=J[a+100>>2]+(d-(d^h)|0)|0}if((h|0)<0){d=f>>31;l=(d^f)-d|0;break c}d=f>>31;l=J[a+100>>2]+(d-(d^f)|0)|0}d=J[a+100>>2];m=d;g=d;e:{if(!(e|l)){break e}if(!((d|0)!=(l|0)|e)){m=l;g=l;break e}if(!((d|0)!=(e|0)|l)){m=e;g=e;break e}if(!((j|0)>=(l|0)|e)){m=(j<<1)-l|0;g=0;break e}if(!((d|0)!=(e|0)|(j|0)<=(l|0))){m=(j<<1)-l|0;g=e;break e}if(!((d|0)!=(l|0)|(e|0)>=(j|0))){m=l;g=(j<<1)-e|0;break e}if(l){m=l;g=e;break e}m=0;g=e;if((e|0)<=(j|0)){break e}g=(j<<1)-e|0}J[k+28>>2]=m;J[k+24>>2]=g;J[k+40>>2]=0-h;J[k+36>>2]=0-f;J[k+32>>2]=0-i;f:{if((i|0)<=0){i=j-h|0;e=j-f|0;break f}e=f>>31;e=(e^f)-e|0;i=(h|0)>0?e:d-e|0;e=h>>31;e=(e^h)-e|0;e=(f|0)>0?e:d-e|0}g:{if(!(e|i)){i=d;break g}if(!((d|0)!=(i|0)|e)){i=d;break g}f=(d|0)!=(e|0);if(!(i|f)){i=d;break g}if(!((i|0)<=(j|0)|e)){i=(j<<1)-i|0;d=0;break g}if(!((i|0)>=(j|0)|f)){i=(j<<1)-i|0;break g}if(!((d|0)!=(i|0)|(e|0)>=(j|0))){i=d;d=(j<<1)-e|0;break g}if(i){d=e;break g}i=0;if((e|0)<=(j|0)){d=e;break g}d=(j<<1)-e|0}J[k+20>>2]=i;J[k+16>>2]=d;h=J[a+8>>2];h:{if((h|0)<=0){break h}l=(n<<3)+b|0;i=J[a+32>>2];e=0;g=k+24|0;while(1){j=i;if((h|0)>0){j=J[a+32>>2];f=0;while(1){d=f<<2;m=J[d+g>>2];h=J[a+16>>2];i:{if((m|0)>(h|0)){J[d+j>>2]=h;break i}d=d+j|0;h=J[a+12>>2];if((h|0)>(m|0)){J[d>>2]=h;break i}J[d>>2]=m}f=f+1|0;h=J[a+8>>2];if((f|0)<(h|0)){continue}break}}f=e<<2;d=f+(k+8|0)|0;g=J[f+l>>2]-J[f+j>>2]|0;J[d>>2]=g;f=d;d=J[a+28>>2];j:{if((g|0)<(d|0)){g=g+J[a+20>>2]|0}else{if((g|0)<=J[a+24>>2]){break j}g=g-J[a+20>>2]|0}J[f>>2]=g}g=j;e=e+1|0;if((e|0)<(h|0)){continue}break}if((h|0)<=0){break h}i=J[a+32>>2];e=0;g=k+16|0;while(1){j=i;if((h|0)>0){j=J[a+32>>2];f=0;while(1){d=f<<2;m=J[d+g>>2];h=J[a+16>>2];k:{if((m|0)>(h|0)){J[d+j>>2]=h;break k}d=d+j|0;h=J[a+12>>2];if((h|0)>(m|0)){J[d>>2]=h;break k}J[d>>2]=m}f=f+1|0;h=J[a+8>>2];if((f|0)<(h|0)){continue}break}d=J[a+28>>2]}g=e<<2;f=g+k|0;g=J[g+l>>2]-J[j+g>>2]|0;J[f>>2]=g;l:{if((d|0)>(g|0)){g=g+J[a+20>>2]|0}else{if((g|0)<=J[a+24>>2]){break l}g=g-J[a+20>>2]|0}J[f>>2]=g}g=j;e=e+1|0;if((e|0)<(h|0)){continue}break}}f=J[k+8>>2];e=J[a+108>>2];m:{if((f|0)>(e|0)){f=f-J[a+96>>2]|0;break m}if((0-e|0)<=(f|0)){break m}f=J[a+96>>2]+f|0}J[k+8>>2]=f;h=J[k+12>>2];n:{if((e|0)<(h|0)){h=h-J[a+96>>2]|0;break n}if((0-e|0)<=(h|0)){break n}h=J[a+96>>2]+h|0}J[k+12>>2]=h;d=J[k>>2];o:{if((e|0)<(d|0)){d=d-J[a+96>>2]|0;break o}if((0-e|0)<=(d|0)){break o}d=J[a+96>>2]+d|0}g=n<<1;J[k>>2]=d;i=J[k+4>>2];p:{if((e|0)<(i|0)){i=i-J[a+96>>2]|0;break p}if((0-e|0)<=(i|0)){break p}i=J[a+96>>2]+i|0}J[k+4>>2]=i;e=h>>31;e=(e^h)-e|0;l=f>>31;l=(l^f)-l|0;m=l>>>0>(e^2147483647)>>>0?2147483647:e+l|0;e=i>>31;e=(e^i)-e|0;l=d>>31;l=(l^d)-l|0;e=m>>>0>=(l>>>0>(e^2147483647)>>>0?2147483647:e+l|0)>>>0;Ca(o,e);g=g<<2;d=e?d:f;J[g+c>>2]=(J[a+96>>2]&d>>31)+d;d=e?i:h;J[g+r>>2]=(J[a+96>>2]&d>>31)+d;n=n+1|0;if((q|0)!=(n|0)){continue}break}}ba=k+48|0;return 1}ra();B()}function Ef(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=Q(0),p=0,q=0,r=0,s=Q(0);h=ba+-64|0;ba=h;J[h+40>>2]=0;J[h+44>>2]=0;J[h+32>>2]=0;J[h+36>>2]=0;J[h+48>>2]=1065353216;c=J[a+80>>2];J[h+24>>2]=0;J[h+16>>2]=0;J[h+20>>2]=0;a:{if(c){if(c>>>0>=1073741824){break a}f=c<<2;k=oa(f);J[h+16>>2]=k;c=f+k|0;J[h+24>>2]=c;pa(k,0,f);J[h+20>>2]=c;while(1){d=J[J[b>>2]>>2];f=J[b+48>>2];c=Hl(J[b+40>>2],J[b+44>>2],n,0);g=c;c=c+f|0;c=c+d|0;c=K[c|0]|K[c+1|0]<<8|(K[c+2|0]<<16|K[c+3|0]<<24);J[h+28>>2]=c;J[h+12>>2]=q;J[h+8>>2]=c;c=0;p=h+8|0;f=L[p+2>>1]^(L[p>>1]^318)+239;b:{c:{m=h+32|0;g=J[m+4>>2];if(!g){break c}d=Kl(g);d:{if(d>>>0>=2){c=f;if(c>>>0>=g>>>0){c=(f>>>0)%(g>>>0)|0}i=J[J[m>>2]+(c<<2)>>2];if(!i){break c}if(d>>>0<2){break d}j=L[p>>1];l=L[p+2>>1];while(1){i=J[i>>2];if(!i){break c}d=J[i+4>>2];if((d|0)!=(f|0)){if(d>>>0>=g>>>0){d=(d>>>0)%(g>>>0)|0}if((c|0)!=(d|0)){break c}}d=L[i+8>>1];e:{if((d|0)!=(j|0)){d=(d|0)==(j|0);break e}d=(l|0)==L[i+10>>1]}if(!d){continue}break}c=0;break b}c=f&g+131071;i=J[J[m>>2]+(c<<2)>>2];if(!i){break c}}j=g-1|0;r=L[p>>1];l=L[p+2>>1];while(1){i=J[i>>2];if(!i){break c}d=J[i+4>>2];if((d|0)!=(f|0)&(d&j)!=(c|0)){break c}d=L[i+8>>1];f:{if((d|0)!=(r|0)){d=(d|0)==(r|0);break f}d=(l|0)==L[i+10>>1]}if(!d){continue}break}c=0;break b}i=oa(16);J[i+8>>2]=J[p>>2];d=J[p+4>>2];J[i+4>>2]=f;J[i+12>>2]=d;J[i>>2]=0;o=Q(J[m+12>>2]+1>>>0);s=N[m+16>>2];g:{if(o>Q(s*Q(g>>>0))?0:g){break g}c=2;d=(g-1&g)!=0|g>>>0<3|g<<1;o=Q(W(Q(o/s)));h:{if(o=Q(0)){l=~~o>>>0;break h}l=0}d=d>>>0>l>>>0?d:l;i:{if((d|0)==1){break i}if(!(d&d-1)){c=d;break i}c=Ha(d);g=J[m+4>>2]}j:{if(c>>>0<=g>>>0){if(c>>>0>=g>>>0){break j}l=g>>>0<3;o=Q(W(Q(Q(M[m+12>>2])/N[m+16>>2])));k:{if(o=Q(0)){d=~~o>>>0;break k}d=0}l:{m:{if(l){break m}if(Kl(g)>>>0>1){break m}d=d>>>0<2?d:1<<32-S(d-1|0);break l}d=Ha(d)}c=c>>>0>d>>>0?c:d;if(g>>>0<=c>>>0){break j}}db(m,c)}g=J[m+4>>2];c=g-1|0;if(!(c&g)){c=c&f;break g}if(f>>>0>>0){c=f;break g}c=(f>>>0)%(g>>>0)|0}f=J[m>>2]+(c<<2)|0;c=J[f>>2];n:{o:{if(!c){c=m+8|0;J[i>>2]=J[c>>2];J[m+8>>2]=i;J[f>>2]=c;c=J[i>>2];if(!c){break n}c=J[c+4>>2];f=g-1|0;p:{if(!(f&g)){c=c&f;break p}if(c>>>0>>0){break p}c=(c>>>0)%(g>>>0)|0}c=J[m>>2]+(c<<2)|0;break o}J[i>>2]=J[c>>2]}J[c>>2]=i}J[m+12>>2]=J[m+12>>2]+1;c=1}H[h+60|0]=c;J[h+56>>2]=i;q:{if(!K[h+60|0]){J[(n<<2)+k>>2]=J[J[h+56>>2]+12>>2];break q}c=J[a+40>>2];ua(J[J[a>>2]>>2]+P(c,q)|0,h+28|0,c);k=J[h+16>>2];J[k+(n<<2)>>2]=q;q=q+1|0}n=n+1|0;e=n?e:e+1|0;j=J[a+80>>2];if(!e&n>>>0>>0){continue}break}if((j|0)!=(q|0)){r:{if(!K[a+84|0]){b=J[a+72>>2];j=J[a+68>>2];if((b|0)==(j|0)){break r}b=b-j>>2;e=b>>>0<=1?1:b;f=e&3;c=0;b=0;if(e-1>>>0>=3){n=e&-4;l=0;while(1){d=b<<2;e=d+j|0;J[e>>2]=J[(J[e>>2]<<2)+k>>2];e=j+(d|4)|0;J[e>>2]=J[(J[e>>2]<<2)+k>>2];e=j+(d|8)|0;J[e>>2]=J[(J[e>>2]<<2)+k>>2];e=j+(d|12)|0;J[e>>2]=J[(J[e>>2]<<2)+k>>2];b=b+4|0;l=l+4|0;if((n|0)!=(l|0)){continue}break}}if(!f){break r}while(1){e=j+(b<<2)|0;J[e>>2]=J[(J[e>>2]<<2)+k>>2];b=b+1|0;c=c+1|0;if((f|0)!=(c|0)){continue}break}break r}H[a+84|0]=0;e=a+68|0;b=J[a+68>>2];c=J[a+72>>2]-b>>2;s:{if(c>>>0>>0){Ma(e,j-c|0,2176);j=J[a+80>>2];break s}if(c>>>0<=j>>>0){break s}J[a+72>>2]=b+(j<<2)}if(!j){break r}d=J[e>>2];c=0;b=0;if(j>>>0>=4){n=j&-4;l=0;while(1){f=b<<2;J[f+d>>2]=J[f+k>>2];e=f|4;J[e+d>>2]=J[e+k>>2];e=f|8;J[e+d>>2]=J[e+k>>2];e=f|12;J[e+d>>2]=J[e+k>>2];b=b+4|0;l=l+4|0;if((n|0)!=(l|0)){continue}break}}n=j&3;if(!n){break r}while(1){e=b<<2;J[e+d>>2]=J[e+k>>2];b=b+1|0;c=c+1|0;if((n|0)!=(c|0)){continue}break}}J[a+80>>2]=q}na(k)}b=J[h+40>>2];if(b){while(1){a=J[b>>2];na(b);b=a;if(b){continue}break}}a=J[h+32>>2];J[h+32>>2]=0;if(a){na(a)}ba=h- -64|0;return q}qa();B()}function Jg(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;p=ba-32|0;ba=p;a:{if((c|0)<=0){break a}t=c&3;b:{if(c>>>0<4){c=0;break b}z=c&-4;c=0;while(1){g=(c<<3)+b|0;s=J[g>>2];u=J[g+4>>2];v=c|1;g=(v<<3)+b|0;i=J[g>>2];w=c|2;h=(w<<3)+b|0;m=J[h>>2];x=c|3;j=(x<<3)+b|0;y=J[j>>2];g=J[g+4>>2];h=J[h+4>>2];j=J[j+4>>2];n=j|y?x:h|m?w:g|i?v:s|u?c:n;f=f+u|0;e=e+s|0;f=(e>>>0>>0?f+1|0:f)+g|0;g=e;e=e+i|0;f=(g>>>0>e>>>0?f+1|0:f)+h|0;g=e;e=e+m|0;f=(g>>>0>e>>>0?f+1|0:f)+j|0;g=e;e=e+y|0;f=g>>>0>e>>>0?f+1|0:f;c=c+4|0;l=l+4|0;if((z|0)!=(l|0)){continue}break}}if(!t){break a}while(1){g=(c<<3)+b|0;i=J[g>>2];g=J[g+4>>2];n=i|g?c:n;c=c+1|0;f=f+g|0;e=e+i|0;f=e>>>0>>0?f+1|0:f;o=o+1|0;if((t|0)!=(o|0)){continue}break}}m=n+1|0;J[a+12>>2]=m;c=J[a>>2];g=J[a+4>>2]-c>>3;c:{if(g>>>0>>0){Wa(a,m-g|0);break c}if(g>>>0<=m>>>0){break c}J[a+4>>2]=c+(m<<3)}j=0;d:{e:{f:{g:{h:{if((n|0)>=0){k=+(e>>>0)+ +(f>>>0)*4294967296;i=J[a>>2];c=0;while(1){f=c<<3;e=f+b|0;h=J[e>>2];e=J[e+4>>2];g=(h|e)!=0;l=f+i|0;r=(+(h>>>0)+ +(e>>>0)*4294967296)/k*4096+.5;i:{if(r<4294967296&r>=0){e=~~r>>>0;break i}e=0}e=e?e:g?1:e;J[l>>2]=e;j=e+j|0;e=(c|0)==(n|0);c=c+1|0;if(!e){continue}break}if((j|0)==4096){break h}}J[p+16>>2]=0;J[p+8>>2]=0;J[p+12>>2]=0;i=0;j:{if(!m){break j}if(m>>>0>=1073741824){break g}g=m<<2;q=oa(g);J[p+8>>2]=q;l=0;h=pa(q,0,g);c=0;if(n>>>0>=7){f=m&-8;while(1){J[h+(c<<2)>>2]=c;e=c|1;J[h+(e<<2)>>2]=e;e=c|2;J[h+(e<<2)>>2]=e;e=c|3;J[h+(e<<2)>>2]=e;e=c|4;J[h+(e<<2)>>2]=e;e=c|5;J[h+(e<<2)>>2]=e;e=c|6;J[h+(e<<2)>>2]=e;e=c|7;J[h+(e<<2)>>2]=e;c=c+8|0;i=i+8|0;if((f|0)!=(i|0)){continue}break}}i=h+g|0;e=m&7;if(!e){break j}while(1){J[h+(c<<2)>>2]=c;c=c+1|0;l=l+1|0;if((e|0)!=(l|0)){continue}break}}J[p+24>>2]=a;c=i-q|0;e=c>>2;k:{l:{if((c|0)>=513){c=e;while(1){f=oa(c<<2);if(f){break l}f=c>>>0>1;c=c>>>1|0;if(f){continue}break}}hc(q,i,p+24|0,e,0,0);break k}hc(q,i,p+24|0,e,f,c);na(f)}if((j|0)<4096){c=J[a>>2]+(J[i-4>>2]<<3)|0;J[c>>2]=(J[c>>2]-j|0)+4096;c=0;break f}if((n|0)>0){f=J[a>>2];o=j-4096|0;while(1){r=4096/+(j|0);l=n;while(1){m:{n:{e=f+(J[(l<<2)+q>>2]<<3)|0;c=J[e>>2];if(c>>>0>=2){h=e;i=c;k=V(r*+(c>>>0));o:{if(R(k)<2147483648){g=~~k;break o}g=-2147483648}e=(c|0)==(g|0)?1:c-g|0;c=(c|0)>(e|0)?e:c-1|0;c=(c|0)<(o|0)?c:o;J[h>>2]=i-c;o=o-c|0;j=j-c|0;if((j|0)!=4096){break n}j=4096;break m}if((n|0)!=(l|0)){break m}c=1;break f}c=(l|0)>1;l=l-1|0;if(c){continue}}break}c=0;if((o|0)>0){continue}break}break f}c=0;if(j>>>0<4097){break f}while(1)continue}if((n|0)<0){break d}break e}qa();B()}e=J[p+8>>2];if(e){na(e)}if((n|0)<0|c){break d}}h=J[a>>2];j=0;o=0;c=0;if(n>>>0>=3){g=m&-4;q=0;while(1){i=o<<3;f=i+h|0;J[f+4>>2]=c;e=h+(i|8)|0;c=J[f>>2]+c|0;J[e+4>>2]=c;f=h+(i|16)|0;c=c+J[e>>2]|0;J[f+4>>2]=c;e=h+(i|24)|0;c=c+J[f>>2]|0;J[e+4>>2]=c;c=c+J[e>>2]|0;o=o+4|0;q=q+4|0;if((g|0)!=(q|0)){continue}break}}f=m&3;if(f){while(1){e=h+(o<<3)|0;J[e+4>>2]=c;o=o+1|0;c=J[e>>2]+c|0;j=j+1|0;if((f|0)!=(j|0)){continue}break}}if((c|0)!=4096){break d}c=0;k=0;p:{if((n|0)<0){break p}h=J[a>>2];if(n){i=m&-2;l=0;while(1){e=c<<3;g=J[e+h>>2];if(g){f=b+e|0;k=(+M[f>>2]+ +M[f+4>>2]*4294967296)*va(+(g>>>0)*.000244140625)+k}e=(c|1)<<3;g=J[e+h>>2];if(g){f=b+e|0;k=(+M[f>>2]+ +M[f+4>>2]*4294967296)*va(+(g>>>0)*.000244140625)+k}c=c+2|0;l=l+2|0;if((i|0)!=(l|0)){continue}break}}if(!(m&1)){break p}c=c<<3;e=J[c+h>>2];if(!e){break p}c=b+c|0;k=(+M[c>>2]+ +M[c+4>>2]*4294967296)*va(+(e>>>0)*.000244140625)+k}k=W(-k);q:{if(k<0x10000000000000000&k>=0){c=~~k>>>0;b=R(k)>=1?~~(k>0?T(V(k*2.3283064365386963e-10),4294967295):W((k-+(~~k>>>0>>>0))*2.3283064365386963e-10))>>>0:0;break q}c=0;b=0}J[a+16>>2]=c;J[a+20>>2]=b;Va(a,d)}ba=p+32|0}function Kk(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;b=ba-48|0;ba=b;g=J[J[a+4>>2]+48>>2];J[b+8>>2]=J[a+12>>2];c=oa(32);J[b+24>>2]=c;J[b+28>>2]=17;J[b+32>>2]=-2147483616;H[c+16|0]=K[1261];f=K[1257]|K[1258]<<8|(K[1259]<<16|K[1260]<<24);e=K[1253]|K[1254]<<8|(K[1255]<<16|K[1256]<<24);H[c+8|0]=e;H[c+9|0]=e>>>8;H[c+10|0]=e>>>16;H[c+11|0]=e>>>24;H[c+12|0]=f;H[c+13|0]=f>>>8;H[c+14|0]=f>>>16;H[c+15|0]=f>>>24;f=K[1249]|K[1250]<<8|(K[1251]<<16|K[1252]<<24);e=K[1245]|K[1246]<<8|(K[1247]<<16|K[1248]<<24);H[c|0]=e;H[c+1|0]=e>>>8;H[c+2|0]=e>>>16;H[c+3|0]=e>>>24;H[c+4|0]=f;H[c+5|0]=f>>>8;H[c+6|0]=f>>>16;H[c+7|0]=f>>>24;H[c+17|0]=0;c=jb(g,b+8|0,b+24|0,-1);if(H[b+35|0]<0){na(J[b+24>>2])}J[b+32>>2]=-1;J[b+36>>2]=1065353216;J[b+24>>2]=-1;J[b+28>>2]=-1;J[b+40>>2]=-1;c=-1<>>0>28){break a}J[b+24>>2]=c+1;c=-2<>2]=c^-1;c=c^-2;J[b+32>>2]=c;J[b+40>>2]=c>>1;N[b+36>>2]=Q(2)/Q(c|0)}g=bh(J[a+12>>2],J[a+4>>2]);h=J[J[a+4>>2]+48>>2];J[b+20>>2]=J[a+12>>2];c=oa(32);J[b+8>>2]=c;J[b+12>>2]=17;J[b+16>>2]=-2147483616;H[c+16|0]=K[1529];f=K[1525]|K[1526]<<8|(K[1527]<<16|K[1528]<<24);e=K[1521]|K[1522]<<8|(K[1523]<<16|K[1524]<<24);H[c+8|0]=e;H[c+9|0]=e>>>8;H[c+10|0]=e>>>16;H[c+11|0]=e>>>24;H[c+12|0]=f;H[c+13|0]=f>>>8;H[c+14|0]=f>>>16;H[c+15|0]=f>>>24;f=K[1517]|K[1518]<<8|(K[1519]<<16|K[1520]<<24);e=K[1513]|K[1514]<<8|(K[1515]<<16|K[1516]<<24);H[c|0]=e;H[c+1|0]=e>>>8;H[c+2|0]=e>>>16;H[c+3|0]=e>>>24;H[c+4|0]=f;H[c+5|0]=f>>>8;H[c+6|0]=f>>>16;H[c+7|0]=f>>>24;H[c+17|0]=0;c=jb(h,b+20|0,b+8|0,g);if(H[b+19|0]<0){na(J[b+8>>2])}b:{c:{d:{switch(c|0){case 6:e=J[a+4>>2];h=J[a+12>>2];a=J[J[J[e+4>>2]+8>>2]+(h<<2)>>2];if((da[J[J[e>>2]+8>>2]](e)|0)!=1){break c}c=b+24|0;f=ba-32|0;ba=f;i=J[J[J[e+4>>2]+8>>2]+(h<<2)>>2];e:{if((da[J[J[e>>2]+8>>2]](e)|0)!=1){break e}j=da[J[J[e>>2]+52>>2]](e)|0;g=da[J[J[e>>2]+60>>2]](e,h)|0;if(!j|!g){break e}d=da[J[J[e>>2]+56>>2]](e,h)|0;if(d){e=J[e+56>>2];J[f+20>>2]=d;J[f+16>>2]=e;J[f+28>>2]=g;J[f+24>>2]=g+12;d=oa(128);J[d+4>>2]=i;e=J[c+4>>2];J[d+8>>2]=J[c>>2];J[d+12>>2]=e;e=J[c+12>>2];J[d+16>>2]=J[c+8>>2];J[d+20>>2]=e;J[d+24>>2]=J[c+16>>2];c=J[f+20>>2];J[d+28>>2]=J[f+16>>2];J[d+32>>2]=c;c=J[f+28>>2];J[d+36>>2]=J[f+24>>2];J[d+40>>2]=c;J[d+48>>2]=0;J[d+52>>2]=0;J[d>>2]=7524;c=J[f+20>>2];J[d+56>>2]=J[f+16>>2];J[d+60>>2]=c;e=J[f+28>>2];c=d- -64|0;J[c>>2]=J[f+24>>2];J[c+4>>2]=e;J[d+88>>2]=1065353216;J[d+92>>2]=-1;J[d+80>>2]=-1;J[d+84>>2]=-1;J[d+72>>2]=1;J[d+76>>2]=-1;J[d+44>>2]=7784;J[d+96>>2]=0;J[d+100>>2]=0;J[d+120>>2]=0;J[d+124>>2]=0;J[d+112>>2]=0;J[d+116>>2]=0;J[d+104>>2]=0;J[d+108>>2]=0;break e}d=J[e+56>>2];J[f+20>>2]=j;J[f+16>>2]=d;J[f+28>>2]=g;J[f+24>>2]=g+12;d=oa(128);J[d+4>>2]=i;e=J[c+4>>2];J[d+8>>2]=J[c>>2];J[d+12>>2]=e;e=J[c+12>>2];J[d+16>>2]=J[c+8>>2];J[d+20>>2]=e;J[d+24>>2]=J[c+16>>2];c=J[f+20>>2];J[d+28>>2]=J[f+16>>2];J[d+32>>2]=c;c=J[f+28>>2];J[d+36>>2]=J[f+24>>2];J[d+40>>2]=c;J[d+48>>2]=0;J[d+52>>2]=0;J[d>>2]=9148;c=J[f+20>>2];J[d+56>>2]=J[f+16>>2];J[d+60>>2]=c;e=J[f+28>>2];c=d- -64|0;J[c>>2]=J[f+24>>2];J[c+4>>2]=e;J[d+88>>2]=1065353216;J[d+92>>2]=-1;J[d+80>>2]=-1;J[d+84>>2]=-1;J[d+72>>2]=1;J[d+76>>2]=-1;J[d+44>>2]=9392;J[d+96>>2]=0;J[d+100>>2]=0;J[d+120>>2]=0;J[d+124>>2]=0;J[d+112>>2]=0;J[d+116>>2]=0;J[d+104>>2]=0;J[d+108>>2]=0}ba=f+32|0;if(!d){break c}break b;case 0:break d;default:break b}}c=J[a+4>>2];a=J[J[J[c+4>>2]+8>>2]+(J[a+12>>2]<<2)>>2];if((da[J[J[c>>2]+8>>2]](c)|0)!=1){break c}da[J[J[c>>2]+8>>2]](c)|0}d=oa(28);J[d+4>>2]=a;a=J[b+28>>2];J[d+8>>2]=J[b+24>>2];J[d+12>>2]=a;a=J[b+36>>2];J[d+16>>2]=J[b+32>>2];J[d+20>>2]=a;J[d+24>>2]=J[b+40>>2];J[d>>2]=9804}ba=b+48|0;return d|0}function Nf(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=Q(0),p=0,q=0,r=0,s=Q(0);h=ba+-64|0;ba=h;J[h+40>>2]=0;J[h+44>>2]=0;J[h+32>>2]=0;J[h+36>>2]=0;J[h+48>>2]=1065353216;c=J[a+80>>2];J[h+24>>2]=0;J[h+16>>2]=0;J[h+20>>2]=0;a:{if(c){if(c>>>0>=1073741824){break a}f=c<<2;k=oa(f);J[h+16>>2]=k;c=f+k|0;J[h+24>>2]=c;pa(k,0,f);J[h+20>>2]=c;while(1){d=J[J[b>>2]>>2];f=J[b+48>>2];c=Hl(J[b+40>>2],J[b+44>>2],n,0);g=c;c=c+f|0;c=c+d|0;c=K[c|0]|K[c+1|0]<<8;I[h+30>>1]=c;J[h+12>>2]=q;I[h+8>>1]=c;c=0;p=h+8|0;f=K[p+1|0]^(K[p|0]^318)+239;b:{c:{m=h+32|0;g=J[m+4>>2];if(!g){break c}d=Kl(g);d:{if(d>>>0>=2){c=f;if(c>>>0>=g>>>0){c=(f>>>0)%(g>>>0)|0}i=J[J[m>>2]+(c<<2)>>2];if(!i){break c}if(d>>>0<2){break d}j=K[p|0];l=K[p+1|0];while(1){i=J[i>>2];if(!i){break c}d=J[i+4>>2];if((d|0)!=(f|0)){if(d>>>0>=g>>>0){d=(d>>>0)%(g>>>0)|0}if((c|0)!=(d|0)){break c}}d=K[i+8|0];e:{if((d|0)!=(j|0)){d=(d|0)==(j|0);break e}d=(l|0)==K[i+9|0]}if(!d){continue}break}c=0;break b}c=f&g+1023;i=J[J[m>>2]+(c<<2)>>2];if(!i){break c}}j=g-1|0;r=K[p|0];l=K[p+1|0];while(1){i=J[i>>2];if(!i){break c}d=J[i+4>>2];if((d|0)!=(f|0)&(d&j)!=(c|0)){break c}d=K[i+8|0];f:{if((d|0)!=(r|0)){d=(d|0)==(r|0);break f}d=(l|0)==K[i+9|0]}if(!d){continue}break}c=0;break b}i=oa(16);I[i+8>>1]=L[p>>1];d=J[p+4>>2];J[i+4>>2]=f;J[i+12>>2]=d;J[i>>2]=0;o=Q(J[m+12>>2]+1>>>0);s=N[m+16>>2];g:{if(o>Q(s*Q(g>>>0))?0:g){break g}c=2;d=(g-1&g)!=0|g>>>0<3|g<<1;o=Q(W(Q(o/s)));h:{if(o=Q(0)){l=~~o>>>0;break h}l=0}d=d>>>0>l>>>0?d:l;i:{if((d|0)==1){break i}if(!(d&d-1)){c=d;break i}c=Ha(d);g=J[m+4>>2]}j:{if(c>>>0<=g>>>0){if(c>>>0>=g>>>0){break j}l=g>>>0<3;o=Q(W(Q(Q(M[m+12>>2])/N[m+16>>2])));k:{if(o=Q(0)){d=~~o>>>0;break k}d=0}l:{m:{if(l){break m}if(Kl(g)>>>0>1){break m}d=d>>>0<2?d:1<<32-S(d-1|0);break l}d=Ha(d)}c=c>>>0>d>>>0?c:d;if(g>>>0<=c>>>0){break j}}db(m,c)}g=J[m+4>>2];c=g-1|0;if(!(c&g)){c=c&f;break g}if(f>>>0>>0){c=f;break g}c=(f>>>0)%(g>>>0)|0}f=J[m>>2]+(c<<2)|0;c=J[f>>2];n:{o:{if(!c){c=m+8|0;J[i>>2]=J[c>>2];J[m+8>>2]=i;J[f>>2]=c;c=J[i>>2];if(!c){break n}c=J[c+4>>2];f=g-1|0;p:{if(!(f&g)){c=c&f;break p}if(c>>>0>>0){break p}c=(c>>>0)%(g>>>0)|0}c=J[m>>2]+(c<<2)|0;break o}J[i>>2]=J[c>>2]}J[c>>2]=i}J[m+12>>2]=J[m+12>>2]+1;c=1}H[h+60|0]=c;J[h+56>>2]=i;q:{if(!K[h+60|0]){J[(n<<2)+k>>2]=J[J[h+56>>2]+12>>2];break q}c=J[a+40>>2];ua(J[J[a>>2]>>2]+P(c,q)|0,h+30|0,c);k=J[h+16>>2];J[k+(n<<2)>>2]=q;q=q+1|0}n=n+1|0;e=n?e:e+1|0;j=J[a+80>>2];if(!e&n>>>0>>0){continue}break}if((j|0)!=(q|0)){r:{if(!K[a+84|0]){b=J[a+72>>2];j=J[a+68>>2];if((b|0)==(j|0)){break r}b=b-j>>2;e=b>>>0<=1?1:b;f=e&3;c=0;b=0;if(e-1>>>0>=3){n=e&-4;l=0;while(1){d=b<<2;e=d+j|0;J[e>>2]=J[(J[e>>2]<<2)+k>>2];e=j+(d|4)|0;J[e>>2]=J[(J[e>>2]<<2)+k>>2];e=j+(d|8)|0;J[e>>2]=J[(J[e>>2]<<2)+k>>2];e=j+(d|12)|0;J[e>>2]=J[(J[e>>2]<<2)+k>>2];b=b+4|0;l=l+4|0;if((n|0)!=(l|0)){continue}break}}if(!f){break r}while(1){e=j+(b<<2)|0;J[e>>2]=J[(J[e>>2]<<2)+k>>2];b=b+1|0;c=c+1|0;if((f|0)!=(c|0)){continue}break}break r}H[a+84|0]=0;e=a+68|0;b=J[a+68>>2];c=J[a+72>>2]-b>>2;s:{if(c>>>0>>0){Ma(e,j-c|0,2176);j=J[a+80>>2];break s}if(c>>>0<=j>>>0){break s}J[a+72>>2]=b+(j<<2)}if(!j){break r}d=J[e>>2];c=0;b=0;if(j>>>0>=4){n=j&-4;l=0;while(1){f=b<<2;J[f+d>>2]=J[f+k>>2];e=f|4;J[e+d>>2]=J[e+k>>2];e=f|8;J[e+d>>2]=J[e+k>>2];e=f|12;J[e+d>>2]=J[e+k>>2];b=b+4|0;l=l+4|0;if((n|0)!=(l|0)){continue}break}}n=j&3;if(!n){break r}while(1){e=b<<2;J[e+d>>2]=J[e+k>>2];b=b+1|0;c=c+1|0;if((n|0)!=(c|0)){continue}break}}J[a+80>>2]=q}na(k)}b=J[h+40>>2];if(b){while(1){a=J[b>>2];na(b);b=a;if(b){continue}break}}a=J[h+32>>2];J[h+32>>2]=0;if(a){na(a)}ba=h- -64|0;return q}qa();B()}function Vg(a,b,c,d,e,f){var g=0,h=0,i=0,j=0,k=0,l=0;h=ba-16|0;ba=h;J[h+12>>2]=b;b=oa(32);J[h>>2]=b;J[h+4>>2]=17;J[h+8>>2]=-2147483616;H[b+16|0]=K[1261];g=K[1257]|K[1258]<<8|(K[1259]<<16|K[1260]<<24);i=K[1253]|K[1254]<<8|(K[1255]<<16|K[1256]<<24);H[b+8|0]=i;H[b+9|0]=i>>>8;H[b+10|0]=i>>>16;H[b+11|0]=i>>>24;H[b+12|0]=g;H[b+13|0]=g>>>8;H[b+14|0]=g>>>16;H[b+15|0]=g>>>24;g=K[1249]|K[1250]<<8|(K[1251]<<16|K[1252]<<24);i=K[1245]|K[1246]<<8|(K[1247]<<16|K[1248]<<24);H[b|0]=i;H[b+1|0]=i>>>8;H[b+2|0]=i>>>16;H[b+3|0]=i>>>24;H[b+4|0]=g;H[b+5|0]=g>>>8;H[b+6|0]=g>>>16;H[b+7|0]=g>>>24;H[b+17|0]=0;i=a+4|0;Wg(i,h+12|0,h,c);if(H[h+11|0]<0){na(J[h>>2])}a=oa(32);J[h>>2]=a;J[h+4>>2]=19;J[h+8>>2]=-2147483616;b=K[1429]|K[1430]<<8|(K[1431]<<16|K[1432]<<24);H[a+15|0]=b;H[a+16|0]=b>>>8;H[a+17|0]=b>>>16;H[a+18|0]=b>>>24;b=K[1426]|K[1427]<<8|(K[1428]<<16|K[1429]<<24);c=K[1422]|K[1423]<<8|(K[1424]<<16|K[1425]<<24);H[a+8|0]=c;H[a+9|0]=c>>>8;H[a+10|0]=c>>>16;H[a+11|0]=c>>>24;H[a+12|0]=b;H[a+13|0]=b>>>8;H[a+14|0]=b>>>16;H[a+15|0]=b>>>24;b=K[1418]|K[1419]<<8|(K[1420]<<16|K[1421]<<24);c=K[1414]|K[1415]<<8|(K[1416]<<16|K[1417]<<24);H[a|0]=c;H[a+1|0]=c>>>8;H[a+2|0]=c>>>16;H[a+3|0]=c>>>24;H[a+4|0]=b;H[a+5|0]=b>>>8;H[a+6|0]=b>>>16;H[a+7|0]=b>>>24;H[a+19|0]=0;g=ba-48|0;ba=g;j=J[h+12>>2];a=i+16|0;c=J[a>>2];a:{b:{if(!c){break b}b=a;while(1){k=(j|0)>J[c+16>>2];b=k?b:c;c=J[(k?c+4|0:c)>>2];if(c){continue}break}if((a|0)==(b|0)){break b}if((j|0)>=J[b+16>>2]){break a}}J[g+28>>2]=0;J[g+32>>2]=0;c=g+24|0;J[g+24>>2]=c|4;a=g+16|0;J[a>>2]=0;J[a+4>>2]=0;J[g+8>>2]=j;J[g+12>>2]=a;a=g+8|0;Oc(g+40|0,i+12|0,a,a);b=J[g+40>>2];Da(a|4,J[g+16>>2]);Da(c,J[g+28>>2])}b=b+20|0;a=ba-48|0;ba=a;J[a+24>>2]=0;J[a+16>>2]=0;J[a+20>>2]=0;c:{if((d|0)<=0){break c}gd(a,N[e>>2]);c=K[a+11|0];j=c<<24>>24<0;jd(a+16|0,j?J[a>>2]:a,j?J[a+4>>2]:c);if(H[a+11|0]<0){na(J[a>>2])}c=1;if((d|0)==1){break c}while(1){j=a+16|0;jd(j,2020,rb(2020));gd(a,N[(c<<2)+e>>2]);l=j;j=K[a+11|0];k=j<<24>>24<0;jd(l,k?J[a>>2]:a,k?J[a+4>>2]:j);if(H[a+11|0]<0){na(J[a>>2])}c=c+1|0;if((d|0)!=(c|0)){continue}break}}J[a+40>>2]=h;ge(a,b,h,a+40|0);d=J[a>>2];b=d+28|0;d:{if((b|0)==(a+16|0)){break d}e=K[a+27|0];c=e<<24>>24;if(H[d+39|0]>=0){if((c|0)>=0){c=J[a+20>>2];J[b>>2]=J[a+16>>2];J[b+4>>2]=c;J[b+8>>2]=J[a+24>>2];break d}hd(b,J[a+16>>2],J[a+20>>2]);break d}d=b;b=(c|0)<0;id(d,b?J[a+16>>2]:a+16|0,b?J[a+20>>2]:e)}if(H[a+27|0]<0){na(J[a+16>>2])}ba=a+48|0;ba=g+48|0;if(H[h+11|0]<0){na(J[h>>2])}a=oa(32);J[h>>2]=a;J[h+4>>2]=18;J[h+8>>2]=-2147483616;b=K[1547]|K[1548]<<8;H[a+16|0]=b;H[a+17|0]=b>>>8;b=K[1543]|K[1544]<<8|(K[1545]<<16|K[1546]<<24);c=K[1539]|K[1540]<<8|(K[1541]<<16|K[1542]<<24);H[a+8|0]=c;H[a+9|0]=c>>>8;H[a+10|0]=c>>>16;H[a+11|0]=c>>>24;H[a+12|0]=b;H[a+13|0]=b>>>8;H[a+14|0]=b>>>16;H[a+15|0]=b>>>24;b=K[1535]|K[1536]<<8|(K[1537]<<16|K[1538]<<24);c=K[1531]|K[1532]<<8|(K[1533]<<16|K[1534]<<24);H[a|0]=c;H[a+1|0]=c>>>8;H[a+2|0]=c>>>16;H[a+3|0]=c>>>24;H[a+4|0]=b;H[a+5|0]=b>>>8;H[a+6|0]=b>>>16;H[a+7|0]=b>>>24;H[a+18|0]=0;b=ba-48|0;ba=b;c=J[h+12>>2];a=i+16|0;e=J[a>>2];e:{f:{if(!e){break f}d=a;while(1){g=(c|0)>J[e+16>>2];d=g?d:e;e=J[(g?e+4|0:e)>>2];if(e){continue}break}if((a|0)==(d|0)){break f}if((c|0)>=J[d+16>>2]){break e}}J[b+28>>2]=0;J[b+32>>2]=0;e=b+24|0;J[b+24>>2]=e|4;a=b+16|0;J[a>>2]=0;J[a+4>>2]=0;J[b+8>>2]=c;J[b+12>>2]=a;a=b+8|0;Oc(b+40|0,i+12|0,a,a);d=J[b+40>>2];Da(a|4,J[b+16>>2]);Da(e,J[b+28>>2])}a=ba-48|0;ba=a;gd(a+8|0,f);J[a+32>>2]=h;ge(a+40|0,d+20|0,h,a+32|0);c=J[a+40>>2];if(H[c+39|0]<0){na(J[c+28>>2])}d=J[a+12>>2];J[c+28>>2]=J[a+8>>2];J[c+32>>2]=d;J[c+36>>2]=J[a+16>>2];ba=a+48|0;ba=b+48|0;if(H[h+11|0]<0){na(J[h>>2])}ba=h+16|0}function lk(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=Q(0);f=ba-32|0;ba=f;J[f+28>>2]=c;a:{if(!me(a,b,c)){break a}i=J[J[J[b+4>>2]+8>>2]+(c<<2)>>2];if(J[i+28>>2]!=9){break a}g=J[b+48>>2];c=oa(32);J[f+16>>2]=c;J[f+20>>2]=17;J[f+24>>2]=-2147483616;H[c+16|0]=K[1261];e=K[1257]|K[1258]<<8|(K[1259]<<16|K[1260]<<24);h=K[1253]|K[1254]<<8|(K[1255]<<16|K[1256]<<24);H[c+8|0]=h;H[c+9|0]=h>>>8;H[c+10|0]=h>>>16;H[c+11|0]=h>>>24;H[c+12|0]=e;H[c+13|0]=e>>>8;H[c+14|0]=e>>>16;H[c+15|0]=e>>>24;e=K[1249]|K[1250]<<8|(K[1251]<<16|K[1252]<<24);h=K[1245]|K[1246]<<8|(K[1247]<<16|K[1248]<<24);H[c|0]=h;H[c+1|0]=h>>>8;H[c+2|0]=h>>>16;H[c+3|0]=h>>>24;H[c+4|0]=e;H[c+5|0]=e>>>8;H[c+6|0]=e>>>16;H[c+7|0]=e>>>24;H[c+17|0]=0;h=jb(g,f+28|0,f+16|0,-1);if(H[f+27|0]<0){na(J[f+16>>2])}if((h|0)<=0){break a}j=J[b+48>>2];c=oa(32);J[f+16>>2]=c;J[f+20>>2]=19;J[f+24>>2]=-2147483616;e=K[1429]|K[1430]<<8|(K[1431]<<16|K[1432]<<24);H[c+15|0]=e;H[c+16|0]=e>>>8;H[c+17|0]=e>>>16;H[c+18|0]=e>>>24;e=K[1426]|K[1427]<<8|(K[1428]<<16|K[1429]<<24);g=K[1422]|K[1423]<<8|(K[1424]<<16|K[1425]<<24);H[c+8|0]=g;H[c+9|0]=g>>>8;H[c+10|0]=g>>>16;H[c+11|0]=g>>>24;H[c+12|0]=e;H[c+13|0]=e>>>8;H[c+14|0]=e>>>16;H[c+15|0]=e>>>24;e=K[1418]|K[1419]<<8|(K[1420]<<16|K[1421]<<24);g=K[1414]|K[1415]<<8|(K[1416]<<16|K[1417]<<24);H[c|0]=g;H[c+1|0]=g>>>8;H[c+2|0]=g>>>16;H[c+3|0]=g>>>24;H[c+4|0]=e;H[c+5|0]=e>>>8;H[c+6|0]=e>>>16;H[c+7|0]=e>>>24;H[c+19|0]=0;b:{if(!yc(j,f+28|0,f+16|0)){break b}g=J[b+48>>2];c=oa(32);J[f>>2]=c;J[f+4>>2]=18;J[f+8>>2]=-2147483616;d=K[1547]|K[1548]<<8;H[c+16|0]=d;H[c+17|0]=d>>>8;d=K[1543]|K[1544]<<8|(K[1545]<<16|K[1546]<<24);e=K[1539]|K[1540]<<8|(K[1541]<<16|K[1542]<<24);H[c+8|0]=e;H[c+9|0]=e>>>8;H[c+10|0]=e>>>16;H[c+11|0]=e>>>24;H[c+12|0]=d;H[c+13|0]=d>>>8;H[c+14|0]=d>>>16;H[c+15|0]=d>>>24;d=K[1535]|K[1536]<<8|(K[1537]<<16|K[1538]<<24);e=K[1531]|K[1532]<<8|(K[1533]<<16|K[1534]<<24);H[c|0]=e;H[c+1|0]=e>>>8;H[c+2|0]=e>>>16;H[c+3|0]=e>>>24;H[c+4|0]=d;H[c+5|0]=d>>>8;H[c+6|0]=d>>>16;H[c+7|0]=d>>>24;H[c+18|0]=0;d=yc(g,f+28|0,f);if(H[f+11|0]>=0){break b}na(J[f>>2])}if(H[f+27|0]<0){na(J[f+16>>2])}c:{if(d){c=0;d=K[i+24|0];if(d){d=d<<2;c=oa(d);pa(c,0,d)}j=J[b+48>>2];d=oa(32);J[f+16>>2]=d;J[f+20>>2]=19;J[f+24>>2]=-2147483616;e=K[1429]|K[1430]<<8|(K[1431]<<16|K[1432]<<24);H[d+15|0]=e;H[d+16|0]=e>>>8;H[d+17|0]=e>>>16;H[d+18|0]=e>>>24;e=K[1426]|K[1427]<<8|(K[1428]<<16|K[1429]<<24);g=K[1422]|K[1423]<<8|(K[1424]<<16|K[1425]<<24);H[d+8|0]=g;H[d+9|0]=g>>>8;H[d+10|0]=g>>>16;H[d+11|0]=g>>>24;H[d+12|0]=e;H[d+13|0]=e>>>8;H[d+14|0]=e>>>16;H[d+15|0]=e>>>24;e=K[1418]|K[1419]<<8|(K[1420]<<16|K[1421]<<24);g=K[1414]|K[1415]<<8|(K[1416]<<16|K[1417]<<24);H[d|0]=g;H[d+1|0]=g>>>8;H[d+2|0]=g>>>16;H[d+3|0]=g>>>24;H[d+4|0]=e;H[d+5|0]=e>>>8;H[d+6|0]=e>>>16;H[d+7|0]=e>>>24;H[d+19|0]=0;De(j,f+28|0,f+16|0,K[i+24|0],c);if(H[f+27|0]<0){na(J[f+16>>2])}g=J[b+48>>2];b=oa(32);J[f+16>>2]=b;J[f+20>>2]=18;J[f+24>>2]=-2147483616;d=K[1547]|K[1548]<<8;H[b+16|0]=d;H[b+17|0]=d>>>8;d=K[1543]|K[1544]<<8|(K[1545]<<16|K[1546]<<24);e=K[1539]|K[1540]<<8|(K[1541]<<16|K[1542]<<24);H[b+8|0]=e;H[b+9|0]=e>>>8;H[b+10|0]=e>>>16;H[b+11|0]=e>>>24;H[b+12|0]=d;H[b+13|0]=d>>>8;H[b+14|0]=d>>>16;H[b+15|0]=d>>>24;d=K[1535]|K[1536]<<8|(K[1537]<<16|K[1538]<<24);e=K[1531]|K[1532]<<8|(K[1533]<<16|K[1534]<<24);H[b|0]=e;H[b+1|0]=e>>>8;H[b+2|0]=e>>>16;H[b+3|0]=e>>>24;H[b+4|0]=d;H[b+5|0]=d>>>8;H[b+6|0]=d>>>16;H[b+7|0]=d>>>24;H[b+18|0]=0;k=Ce(g,f+28|0,f+16|0);if(H[f+27|0]<0){na(J[f+16>>2])}a=ch(a+40|0,h,c,K[i+24|0],k);if(c){na(c)}d=0;if(a){break c}break a}d=0;if(!_g(a+40|0,i,h)){break a}}d=1}ba=f+32|0;return d|0}function _f(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;k=ba-32|0;ba=k;c=J[a+16>>2];J[a+20>>2]=c;a:{b:{c:{d:{e:{f:{g:{if((c|0)!=J[a+24>>2]){J[c>>2]=b;b=c+4|0;J[a+20>>2]=b;d=c;break g}d=oa(4);J[d>>2]=b;b=d+4|0;J[a+24>>2]=b;J[a+20>>2]=b;J[a+16>>2]=d;if(c){break f}}c=J[a+8>>2];c=J[c+100>>2]-J[c+96>>2]|0;break e}na(c);b=J[a+20>>2];d=J[a+16>>2];if((b|0)==(d|0)){break d}c=J[a+8>>2];c=J[c+100>>2]-J[c+96>>2]|0}if((c|0)>0){r=a+120|0;m=a+200|0;c=(c|0)/12|0;s=(c|0)<=1?1:c;while(1){h:{i:{d=b-4|0;b=J[d>>2];if((b|0)==-1){break i}c=(b>>>0)/3|0;if(J[J[a+28>>2]+(c>>>3&268435452)>>2]>>>c&1){break i}n=0;while(1){J[a+164>>2]=J[a+164>>2]+1;e=b;h=(b>>>0)/3|0;g=(b|0)==-1;o=g?-1:h;b=J[a+28>>2]+(o>>>3&536870908)|0;J[b>>2]=J[b>>2]|1<>2];j:{if((b|0)!=J[a+80>>2]){J[b>>2]=e;J[a+76>>2]=b+4;break j}j=J[a+72>>2];l=b-j|0;d=l>>2;i=d+1|0;if(i>>>0>1073741823){break c}c=l>>>1|0;i=l>>>0>=2147483644?1073741823:c>>>0>i>>>0?c:i;if(i){if(i>>>0>1073741823){break a}c=oa(i<<2)}else{c=0}f=c+(d<<2)|0;J[f>>2]=e;d=f+4|0;if((b|0)!=(j|0)){while(1){f=f-4|0;b=b-4|0;J[f>>2]=J[b>>2];if((b|0)!=(j|0)){continue}break}}J[a+80>>2]=c+(i<<2);J[a+76>>2]=d;J[a+72>>2]=f;if(!j){break j}na(j)}J[a+320>>2]=e;b=-1;f=J[a+12>>2];b=(e|0)!=-1?J[J[f>>2]+(e<<2)>>2]:b;i=b<<2;q=J[i+J[a+152>>2]>>2];k:{l:{d=J[a+84>>2]+(b>>>3&536870908)|0;c=J[d>>2];b=1<>2]=b|c;if((q|0)==-1){break l}}m:{if(g){break m}b=-1;c=e+1|0;g=(c>>>0)%3|0?c:e-2|0;if((g|0)!=-1){b=J[J[f+12>>2]+(g<<2)>>2]}j=e-P(h,3)|0;n:{o:{if(j){d=e-1|0;break o}d=e+2|0;c=-1;if((d|0)==-1){break n}}c=J[J[f+12>>2]+(d<<2)>>2]}p=(c|0)==-1;l=p?-1:(c>>>0)/3|0;p:{if((g|0)==-1){break p}h=J[f+12>>2];d=J[h+(g<<2)>>2];if((d|0)==-1){break p}g=J[a+28>>2];d=(d>>>0)/3|0;if(J[g+(d>>>3&268435452)>>2]>>>d&1){break p}q:{r:{if(j){f=e-1|0;break r}f=e+2|0;if((f|0)==-1){break q}}d=J[(f<<2)+h>>2];if((d|0)==-1){break q}d=(d>>>0)/3|0;if(J[g+(d>>>3&268435452)>>2]>>>d&1){break q}oc(m,1);J[a+168>>2]=J[a+168>>2]+1;s:{if((q|0)==-1){break s}d=J[J[a+152>>2]+i>>2];if(J[J[a+140>>2]+(d>>>3&536870908)>>2]>>>d&1){break s}Hc(a,e,0)}e=J[a+164>>2];J[k+4>>2]=o;d=k+4|0;J[k+16>>2]=d;bg(k+24|0,r,d,k+16|0);J[J[k+24>>2]+12>>2]=e;f=J[a+20>>2];J[f-4>>2]=c;if(J[a+24>>2]!=(f|0)){J[f>>2]=b;J[a+20>>2]=f+4;break h}h=J[a+16>>2];g=f-h|0;d=g>>2;e=d+1|0;if(e>>>0>1073741823){break b}c=g>>>1|0;e=g>>>0>=2147483644?1073741823:c>>>0>e>>>0?c:e;if(e){if(e>>>0>1073741823){break a}c=oa(e<<2)}else{c=0}d=c+(d<<2)|0;J[d>>2]=b;b=d+4|0;if((f|0)!=(h|0)){while(1){d=d-4|0;f=f-4|0;J[d>>2]=J[f>>2];if((f|0)!=(h|0)){continue}break}}J[a+24>>2]=c+(e<<2);J[a+20>>2]=b;J[a+16>>2]=d;if(!h){break h}na(h);break h}if(!p){Qb(a,J[a+164>>2],0,l)}oc(m,3);break k}d=(b|0)==-1;if(!d){Qb(a,J[a+164>>2],1,d?-1:(b>>>0)/3|0)}t:{u:{if(j){b=e-1|0;break u}b=e+2|0;if((b|0)==-1){break t}}b=J[J[J[a+12>>2]+12>>2]+(b<<2)>>2];if((b|0)==-1){break t}b=(b>>>0)/3|0;if(J[J[a+28>>2]+(b>>>3&268435452)>>2]>>>b&1){break t}oc(m,5);b=c;break k}if(p){break m}Qb(a,J[a+164>>2],0,l)}oc(m,7);J[a+20>>2]=J[a+20>>2]-4;break h}oc(m,0);b=-1;if((e|0)==-1){break k}c=e+1|0;c=(c>>>0)%3|0?c:e-2|0;if((c|0)==-1){break k}b=J[J[J[a+12>>2]+12>>2]+(c<<2)>>2]}n=n+1|0;if((s|0)!=(n|0)){continue}break}break h}J[a+20>>2]=d}b=J[a+20>>2];if((b|0)!=J[a+16>>2]){continue}break}break d}g=J[a+28>>2];while(1){c=b-4|0;e=J[c>>2];v:{if((e|0)!=-1){e=(e>>>0)/3|0;if(!(J[g+(e>>>3&268435452)>>2]>>>e&1)){break v}}J[a+20>>2]=c;b=c}if((b|0)!=(d|0)){continue}break}}ba=k+32|0;return 1}qa();B()}qa();B()}xa();B()}function Ff(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=Q(0),p=0,q=0,r=Q(0);g=ba+-64|0;ba=g;J[g+40>>2]=0;J[g+44>>2]=0;J[g+32>>2]=0;J[g+36>>2]=0;J[g+48>>2]=1065353216;c=J[a+80>>2];J[g+24>>2]=0;J[g+16>>2]=0;J[g+20>>2]=0;a:{if(c){if(c>>>0>=1073741824){break a}e=c<<2;j=oa(e);J[g+16>>2]=j;c=e+j|0;J[g+24>>2]=c;pa(j,0,e);J[g+20>>2]=c;while(1){d=J[J[b>>2]>>2];e=J[b+48>>2];c=Hl(J[b+40>>2],J[b+44>>2],m,0);f=c;c=c+e|0;c=c+d|0;c=K[c|0]|K[c+1|0]<<8;I[g+30>>1]=c;J[g+12>>2]=p;I[g+8>>1]=c;c=0;q=g+8|0;n=L[q>>1];e=n^318;b:{c:{k=g+32|0;f=J[k+4>>2];if(!f){break c}d=Kl(f);d:{if(d>>>0>=2){c=e;if(f>>>0<=c>>>0){c=(e>>>0)%(f>>>0)|0}h=J[J[k>>2]+(c<<2)>>2];if(!h){break c}if(d>>>0<=1){break d}while(1){h=J[h>>2];if(!h){break c}d=J[h+4>>2];if((d|0)!=(e|0)){if(d>>>0>=f>>>0){d=(d>>>0)%(f>>>0)|0}if((c|0)!=(d|0)){break c}}if(L[h+8>>1]!=(n|0)){continue}break}c=0;break b}c=e&f-1;h=J[J[k>>2]+(c<<2)>>2];if(!h){break c}}l=f-1|0;while(1){h=J[h>>2];if(!h){break c}d=J[h+4>>2];if((e|0)!=(d|0)&(d&l)!=(c|0)){break c}if(L[h+8>>1]!=(n|0)){continue}break}c=0;break b}h=oa(16);I[h+8>>1]=L[q>>1];d=J[q+4>>2];J[h+4>>2]=e;J[h+12>>2]=d;J[h>>2]=0;o=Q(J[k+12>>2]+1>>>0);r=N[k+16>>2];e:{if(o>Q(r*Q(f>>>0))?0:f){break e}c=2;d=(f-1&f)!=0|f>>>0<3|f<<1;o=Q(W(Q(o/r)));f:{if(o=Q(0)){l=~~o>>>0;break f}l=0}d=d>>>0>l>>>0?d:l;g:{if((d|0)==1){break g}if(!(d&d-1)){c=d;break g}c=Ha(d);f=J[k+4>>2]}h:{if(c>>>0<=f>>>0){if(c>>>0>=f>>>0){break h}l=f>>>0<3;o=Q(W(Q(Q(M[k+12>>2])/N[k+16>>2])));i:{if(o=Q(0)){d=~~o>>>0;break i}d=0}j:{k:{if(l){break k}if(Kl(f)>>>0>1){break k}d=d>>>0<2?d:1<<32-S(d-1|0);break j}d=Ha(d)}c=c>>>0>d>>>0?c:d;if(f>>>0<=c>>>0){break h}}db(k,c)}f=J[k+4>>2];c=f-1|0;if(!(c&f)){c=c&e;break e}if(e>>>0>>0){c=e;break e}c=(e>>>0)%(f>>>0)|0}e=J[k>>2]+(c<<2)|0;c=J[e>>2];l:{m:{if(!c){c=k+8|0;J[h>>2]=J[c>>2];J[k+8>>2]=h;J[e>>2]=c;c=J[h>>2];if(!c){break l}c=J[c+4>>2];e=f-1|0;n:{if(!(e&f)){c=c&e;break n}if(c>>>0>>0){break n}c=(c>>>0)%(f>>>0)|0}c=J[k>>2]+(c<<2)|0;break m}J[h>>2]=J[c>>2]}J[c>>2]=h}J[k+12>>2]=J[k+12>>2]+1;c=1}H[g+60|0]=c;J[g+56>>2]=h;o:{if(!K[g+60|0]){J[(m<<2)+j>>2]=J[J[g+56>>2]+12>>2];break o}c=J[a+40>>2];ua(J[J[a>>2]>>2]+P(c,p)|0,g+30|0,c);j=J[g+16>>2];J[j+(m<<2)>>2]=p;p=p+1|0}m=m+1|0;i=m?i:i+1|0;c=J[a+80>>2];if(!i&m>>>0>>0){continue}break}if((c|0)!=(p|0)){p:{if(!K[a+84|0]){b=J[a+72>>2];d=J[a+68>>2];if((b|0)==(d|0)){break p}b=b-d>>2;c=b>>>0<=1?1:b;m=c&3;n=0;b=0;if(c-1>>>0>=3){i=c&-4;l=0;while(1){e=b<<2;c=e+d|0;J[c>>2]=J[(J[c>>2]<<2)+j>>2];c=d+(e|4)|0;J[c>>2]=J[(J[c>>2]<<2)+j>>2];c=d+(e|8)|0;J[c>>2]=J[(J[c>>2]<<2)+j>>2];c=d+(e|12)|0;J[c>>2]=J[(J[c>>2]<<2)+j>>2];b=b+4|0;l=l+4|0;if((i|0)!=(l|0)){continue}break}}if(!m){break p}while(1){c=d+(b<<2)|0;J[c>>2]=J[(J[c>>2]<<2)+j>>2];b=b+1|0;n=n+1|0;if((m|0)!=(n|0)){continue}break}break p}H[a+84|0]=0;m=a+68|0;b=J[a+68>>2];i=J[a+72>>2]-b>>2;q:{if(i>>>0>>0){Ma(m,c-i|0,2176);c=J[a+80>>2];break q}if(c>>>0>=i>>>0){break q}J[a+72>>2]=b+(c<<2)}if(!c){break p}d=J[m>>2];n=0;b=0;if(c>>>0>=4){m=c&-4;l=0;while(1){e=b<<2;J[e+d>>2]=J[e+j>>2];i=e|4;J[i+d>>2]=J[j+i>>2];i=e|8;J[i+d>>2]=J[j+i>>2];i=e|12;J[i+d>>2]=J[j+i>>2];b=b+4|0;l=l+4|0;if((m|0)!=(l|0)){continue}break}}i=c&3;if(!i){break p}while(1){c=b<<2;J[c+d>>2]=J[c+j>>2];b=b+1|0;n=n+1|0;if((i|0)!=(n|0)){continue}break}}J[a+80>>2]=p}na(j)}b=J[g+40>>2];if(b){while(1){a=J[b>>2];na(b);b=a;if(b){continue}break}}a=J[g+32>>2];J[g+32>>2]=0;if(a){na(a)}ba=g- -64|0;return p}qa();B()}function Yk(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;J[a+8>>2]=e;q=a+32|0;f=J[q>>2];h=J[a+36>>2]-f>>2;a:{if(h>>>0>>0){Fa(q,e-h|0);break a}if(e>>>0>=h>>>0){break a}J[a+36>>2]=f+(e<<2)}b:{if(!d){break b}g=J[b>>2];c:{if((d|0)<2){h=g;break c}f=1;h=d-1|0;l=h&1;d:{if((d|0)==2){h=g;break d}o=h&-2;d=0;h=g;while(1){i=(f<<2)+b|0;p=J[i+4>>2];k=J[i>>2];j=(k|0)<(h|0);h=j?k:h;i=(h|0)>(p|0);h=i?p:h;g=j?g:(g|0)<(k|0)?k:g;g=i?g:(g|0)<(p|0)?p:g;f=f+2|0;d=d+2|0;if((o|0)!=(d|0)){continue}break}}if(!l){break c}f=J[(f<<2)+b>>2];d=(f|0)<(h|0);h=d?f:h;g=d?g:(f|0)>(g|0)?f:g}J[a+16>>2]=g;J[a+12>>2]=h;f=(g>>31)-((h>>31)+(g>>>0>>0)|0)|0;d=g-h|0;if(!f&d>>>0>2147483646|f){break b}f=d+1|0;J[a+20>>2]=f;d=f>>>1|0;J[a+24>>2]=d;J[a+28>>2]=0-d;if(f&1){break b}J[a+24>>2]=d-1}s=e<<2;d=e>>>0>1073741823?-1:s;h=pa(oa(d),0,d);d=J[a+56>>2];t=J[d>>2];d=J[d+4>>2]-t|0;if((d|0)>=5){w=J[a+52>>2];u=J[a+48>>2];x=e&-2;y=e&1;v=d>>2;l=v;while(1){o=l;e:{f:{l=l-1|0;if(v>>>0>l>>>0){p=P(e,l);d=J[(l<<2)+t>>2];if((d|0)==-1){break f}g=J[J[u+12>>2]+(d<<2)>>2];if((g|0)==-1){break f}j=J[w>>2];k=J[u>>2];i=J[j+(J[k+(g<<2)>>2]<<2)>>2];d=g+1|0;d=(d>>>0)%3|0?d:g-2|0;if((d|0)!=-1){f=J[k+(d<<2)>>2]}else{f=-1}g:{h:{if((g>>>0)%3|0){g=g-1|0;break h}g=g+2|0;d=-1;if((g|0)==-1){break g}}d=J[k+(g<<2)>>2]}if((i|0)>=(l|0)){break f}f=J[(f<<2)+j>>2];if((f|0)>=(l|0)){break f}d=J[j+(d<<2)>>2];if((d|0)>=(l|0)){break f}i:{if((e|0)<=0){break i}k=P(d,e);j=P(e,f);i=P(e,i);g=0;d=0;if((e|0)!=1){while(1){J[h+(g<<2)>>2]=(J[(g+k<<2)+b>>2]+J[(g+j<<2)+b>>2]|0)-J[(g+i<<2)+b>>2];f=g|1;J[h+(f<<2)>>2]=(J[(f+k<<2)+b>>2]+J[(f+j<<2)+b>>2]|0)-J[(f+i<<2)+b>>2];g=g+2|0;d=d+2|0;if((x|0)!=(d|0)){continue}break}}if(!y){break i}J[h+(g<<2)>>2]=(J[(g+k<<2)+b>>2]+J[(g+j<<2)+b>>2]|0)-J[(g+i<<2)+b>>2]}g=J[a+8>>2];if((g|0)<=0){break e}d=p<<2;p=d+c|0;k=b+d|0;i=J[q>>2];m=0;d=h;while(1){f=i;if((g|0)>0){f=J[q>>2];g=0;while(1){n=g<<2;r=J[n+d>>2];j=J[a+16>>2];j:{if((r|0)>(j|0)){J[f+n>>2]=j;break j}n=f+n|0;j=J[a+12>>2];if((j|0)>(r|0)){J[n>>2]=j;break j}J[n>>2]=r}g=g+1|0;if((g|0)>2]){continue}break}}g=m<<2;d=g+p|0;g=J[g+k>>2]-J[f+g>>2]|0;J[d>>2]=g;k:{if((g|0)>2]){g=g+J[a+20>>2]|0}else{if((g|0)<=J[a+24>>2]){break k}g=g-J[a+20>>2]|0}J[d>>2]=g}d=f;g=J[a+8>>2];m=m+1|0;if((g|0)>(m|0)){continue}break}break e}ra();B()}g=J[a+8>>2];if((g|0)<=0){break e}d=p<<2;p=d+c|0;k=b+d|0;d=(P(o-2|0,e)<<2)+b|0;i=J[q>>2];m=0;while(1){f=i;if((g|0)>0){f=J[q>>2];g=0;while(1){n=g<<2;r=J[n+d>>2];j=J[a+16>>2];l:{if((r|0)>(j|0)){J[f+n>>2]=j;break l}n=f+n|0;j=J[a+12>>2];if((j|0)>(r|0)){J[n>>2]=j;break l}J[n>>2]=r}g=g+1|0;if((g|0)>2]){continue}break}}g=m<<2;d=g+p|0;g=J[g+k>>2]-J[f+g>>2]|0;J[d>>2]=g;m:{if((g|0)>2]){g=g+J[a+20>>2]|0}else{if((g|0)<=J[a+24>>2]){break m}g=g-J[a+20>>2]|0}J[d>>2]=g}d=f;g=J[a+8>>2];m=m+1|0;if((g|0)>(m|0)){continue}break}}if((o|0)>2){continue}break}}if((e|0)>0){pa(h,0,s)}g=J[a+8>>2];if((g|0)>0){e=J[a+32>>2];m=0;d=h;while(1){f=e;if((g|0)>0){f=J[q>>2];g=0;while(1){o=g<<2;l=J[o+d>>2];i=J[a+16>>2];n:{if((l|0)>(i|0)){J[f+o>>2]=i;break n}o=f+o|0;i=J[a+12>>2];if((i|0)>(l|0)){J[o>>2]=i;break n}J[o>>2]=l}g=g+1|0;if((g|0)>2]){continue}break}}g=m<<2;d=g+c|0;g=J[b+g>>2]-J[f+g>>2]|0;J[d>>2]=g;o:{if((g|0)>2]){g=g+J[a+20>>2]|0}else{if((g|0)<=J[a+24>>2]){break o}g=g-J[a+20>>2]|0}J[d>>2]=g}d=f;g=J[a+8>>2];m=m+1|0;if((g|0)>(m|0)){continue}break}}na(h);return 1}function Rf(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=Q(0),p=0,q=0,r=Q(0);g=ba+-64|0;ba=g;J[g+40>>2]=0;J[g+44>>2]=0;J[g+32>>2]=0;J[g+36>>2]=0;J[g+48>>2]=1065353216;c=J[a+80>>2];J[g+24>>2]=0;J[g+16>>2]=0;J[g+20>>2]=0;a:{if(c){if(c>>>0>=1073741824){break a}e=c<<2;j=oa(e);J[g+16>>2]=j;c=e+j|0;J[g+24>>2]=c;pa(j,0,e);J[g+20>>2]=c;while(1){d=J[J[b>>2]>>2];e=J[b+48>>2];c=Hl(J[b+40>>2],J[b+44>>2],m,0);f=c;c=c+e|0;c=K[c+d|0];H[g+31|0]=c;J[g+12>>2]=p;H[g+8|0]=c;c=0;q=g+8|0;n=K[q|0];e=n^318;b:{c:{k=g+32|0;f=J[k+4>>2];if(!f){break c}d=Kl(f);d:{if(d>>>0>=2){c=e;if(f>>>0<=c>>>0){c=(e>>>0)%(f>>>0)|0}h=J[J[k>>2]+(c<<2)>>2];if(!h){break c}if(d>>>0<=1){break d}while(1){h=J[h>>2];if(!h){break c}d=J[h+4>>2];if((d|0)!=(e|0)){if(d>>>0>=f>>>0){d=(d>>>0)%(f>>>0)|0}if((c|0)!=(d|0)){break c}}if(K[h+8|0]!=(n|0)){continue}break}c=0;break b}c=e&f-1;h=J[J[k>>2]+(c<<2)>>2];if(!h){break c}}l=f-1|0;while(1){h=J[h>>2];if(!h){break c}d=J[h+4>>2];if((e|0)!=(d|0)&(d&l)!=(c|0)){break c}if(K[h+8|0]!=(n|0)){continue}break}c=0;break b}h=oa(16);H[h+8|0]=K[q|0];d=J[q+4>>2];J[h+4>>2]=e;J[h+12>>2]=d;J[h>>2]=0;o=Q(J[k+12>>2]+1>>>0);r=N[k+16>>2];e:{if(o>Q(r*Q(f>>>0))?0:f){break e}c=2;d=(f-1&f)!=0|f>>>0<3|f<<1;o=Q(W(Q(o/r)));f:{if(o=Q(0)){l=~~o>>>0;break f}l=0}d=d>>>0>l>>>0?d:l;g:{if((d|0)==1){break g}if(!(d&d-1)){c=d;break g}c=Ha(d);f=J[k+4>>2]}h:{if(c>>>0<=f>>>0){if(c>>>0>=f>>>0){break h}l=f>>>0<3;o=Q(W(Q(Q(M[k+12>>2])/N[k+16>>2])));i:{if(o=Q(0)){d=~~o>>>0;break i}d=0}j:{k:{if(l){break k}if(Kl(f)>>>0>1){break k}d=d>>>0<2?d:1<<32-S(d-1|0);break j}d=Ha(d)}c=c>>>0>d>>>0?c:d;if(f>>>0<=c>>>0){break h}}db(k,c)}f=J[k+4>>2];c=f-1|0;if(!(c&f)){c=c&e;break e}if(e>>>0>>0){c=e;break e}c=(e>>>0)%(f>>>0)|0}e=J[k>>2]+(c<<2)|0;c=J[e>>2];l:{m:{if(!c){c=k+8|0;J[h>>2]=J[c>>2];J[k+8>>2]=h;J[e>>2]=c;c=J[h>>2];if(!c){break l}c=J[c+4>>2];e=f-1|0;n:{if(!(e&f)){c=c&e;break n}if(c>>>0>>0){break n}c=(c>>>0)%(f>>>0)|0}c=J[k>>2]+(c<<2)|0;break m}J[h>>2]=J[c>>2]}J[c>>2]=h}J[k+12>>2]=J[k+12>>2]+1;c=1}H[g+60|0]=c;J[g+56>>2]=h;o:{if(!K[g+60|0]){J[(m<<2)+j>>2]=J[J[g+56>>2]+12>>2];break o}c=J[a+40>>2];ua(J[J[a>>2]>>2]+P(c,p)|0,g+31|0,c);j=J[g+16>>2];J[j+(m<<2)>>2]=p;p=p+1|0}m=m+1|0;i=m?i:i+1|0;c=J[a+80>>2];if(!i&m>>>0>>0){continue}break}if((c|0)!=(p|0)){p:{if(!K[a+84|0]){b=J[a+72>>2];d=J[a+68>>2];if((b|0)==(d|0)){break p}b=b-d>>2;c=b>>>0<=1?1:b;m=c&3;n=0;b=0;if(c-1>>>0>=3){i=c&-4;l=0;while(1){e=b<<2;c=e+d|0;J[c>>2]=J[(J[c>>2]<<2)+j>>2];c=d+(e|4)|0;J[c>>2]=J[(J[c>>2]<<2)+j>>2];c=d+(e|8)|0;J[c>>2]=J[(J[c>>2]<<2)+j>>2];c=d+(e|12)|0;J[c>>2]=J[(J[c>>2]<<2)+j>>2];b=b+4|0;l=l+4|0;if((i|0)!=(l|0)){continue}break}}if(!m){break p}while(1){c=d+(b<<2)|0;J[c>>2]=J[(J[c>>2]<<2)+j>>2];b=b+1|0;n=n+1|0;if((m|0)!=(n|0)){continue}break}break p}H[a+84|0]=0;m=a+68|0;b=J[a+68>>2];i=J[a+72>>2]-b>>2;q:{if(i>>>0>>0){Ma(m,c-i|0,2176);c=J[a+80>>2];break q}if(c>>>0>=i>>>0){break q}J[a+72>>2]=b+(c<<2)}if(!c){break p}d=J[m>>2];n=0;b=0;if(c>>>0>=4){m=c&-4;l=0;while(1){e=b<<2;J[e+d>>2]=J[e+j>>2];i=e|4;J[i+d>>2]=J[j+i>>2];i=e|8;J[i+d>>2]=J[j+i>>2];i=e|12;J[i+d>>2]=J[j+i>>2];b=b+4|0;l=l+4|0;if((m|0)!=(l|0)){continue}break}}i=c&3;if(!i){break p}while(1){c=b<<2;J[c+d>>2]=J[c+j>>2];b=b+1|0;n=n+1|0;if((i|0)!=(n|0)){continue}break}}J[a+80>>2]=p}na(j)}b=J[g+40>>2];if(b){while(1){a=J[b>>2];na(b);b=a;if(b){continue}break}}a=J[g+32>>2];J[g+32>>2]=0;if(a){na(a)}ba=g- -64|0;return p}qa();B()}function gl(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;J[a+8>>2]=e;q=a+32|0;f=J[q>>2];h=J[a+36>>2]-f>>2;a:{if(h>>>0>>0){Fa(q,e-h|0);break a}if(e>>>0>=h>>>0){break a}J[a+36>>2]=f+(e<<2)}b:{if(!d){break b}g=J[b>>2];c:{if((d|0)<2){h=g;break c}f=1;h=d-1|0;l=h&1;d:{if((d|0)==2){h=g;break d}o=h&-2;d=0;h=g;while(1){i=(f<<2)+b|0;m=J[i+4>>2];p=J[i>>2];j=(p|0)<(h|0);h=j?p:h;i=(h|0)>(m|0);h=i?m:h;g=j?g:(g|0)<(p|0)?p:g;g=i?g:(g|0)<(m|0)?m:g;f=f+2|0;d=d+2|0;if((o|0)!=(d|0)){continue}break}}if(!l){break c}f=J[(f<<2)+b>>2];d=(f|0)<(h|0);h=d?f:h;g=d?g:(f|0)>(g|0)?f:g}J[a+16>>2]=g;J[a+12>>2]=h;f=(g>>31)-((h>>31)+(g>>>0>>0)|0)|0;d=g-h|0;if(!f&d>>>0>2147483646|f){break b}f=d+1|0;J[a+20>>2]=f;d=f>>>1|0;J[a+24>>2]=d;J[a+28>>2]=0-d;if(f&1){break b}J[a+24>>2]=d-1}t=e<<2;d=e>>>0>1073741823?-1:t;h=pa(oa(d),0,d);d=J[a+56>>2];u=J[d>>2];d=J[d+4>>2]-u|0;if((d|0)>=5){w=J[a+52>>2];s=J[a+48>>2];x=e&-2;y=e&1;v=d>>2;l=v;while(1){o=l;e:{f:{l=l-1|0;if(v>>>0>l>>>0){p=P(e,l);d=J[(l<<2)+u>>2];if((d|0)==-1|J[J[s>>2]+(d>>>3&536870908)>>2]>>>d&1){break f}m=J[J[J[s+64>>2]+12>>2]+(d<<2)>>2];if((m|0)==-1){break f}i=J[w>>2];j=J[s+28>>2];g=J[i+(J[j+(m<<2)>>2]<<2)>>2];if((g|0)>=(l|0)){break f}d=m+1|0;f=J[i+(J[j+(((d>>>0)%3|0?d:m-2|0)<<2)>>2]<<2)>>2];if((f|0)>=(l|0)){break f}d=J[i+(J[j+(m+((m>>>0)%3|0?-1:2)<<2)>>2]<<2)>>2];if((d|0)>=(l|0)){break f}g:{if((e|0)<=0){break g}j=P(d,e);i=P(e,f);f=P(e,g);g=0;k=0;if((e|0)!=1){while(1){J[h+(g<<2)>>2]=(J[(g+j<<2)+b>>2]+J[(g+i<<2)+b>>2]|0)-J[(f+g<<2)+b>>2];d=g|1;J[h+(d<<2)>>2]=(J[(d+j<<2)+b>>2]+J[(d+i<<2)+b>>2]|0)-J[(d+f<<2)+b>>2];g=g+2|0;k=k+2|0;if((x|0)!=(k|0)){continue}break}}if(!y){break g}J[h+(g<<2)>>2]=(J[(g+j<<2)+b>>2]+J[(g+i<<2)+b>>2]|0)-J[(f+g<<2)+b>>2]}g=J[a+8>>2];if((g|0)<=0){break e}d=p<<2;m=d+c|0;p=b+d|0;i=J[q>>2];k=0;d=h;while(1){f=i;if((g|0)>0){f=J[q>>2];g=0;while(1){n=g<<2;r=J[n+d>>2];j=J[a+16>>2];h:{if((r|0)>(j|0)){J[f+n>>2]=j;break h}n=f+n|0;j=J[a+12>>2];if((j|0)>(r|0)){J[n>>2]=j;break h}J[n>>2]=r}g=g+1|0;if((g|0)>2]){continue}break}}g=k<<2;d=g+m|0;g=J[g+p>>2]-J[f+g>>2]|0;J[d>>2]=g;i:{if((g|0)>2]){g=g+J[a+20>>2]|0}else{if((g|0)<=J[a+24>>2]){break i}g=g-J[a+20>>2]|0}J[d>>2]=g}d=f;g=J[a+8>>2];k=k+1|0;if((g|0)>(k|0)){continue}break}break e}ra();B()}g=J[a+8>>2];if((g|0)<=0){break e}d=p<<2;m=d+c|0;p=b+d|0;d=(P(o-2|0,e)<<2)+b|0;i=J[q>>2];k=0;while(1){f=i;if((g|0)>0){f=J[q>>2];g=0;while(1){n=g<<2;r=J[n+d>>2];j=J[a+16>>2];j:{if((r|0)>(j|0)){J[f+n>>2]=j;break j}n=f+n|0;j=J[a+12>>2];if((j|0)>(r|0)){J[n>>2]=j;break j}J[n>>2]=r}g=g+1|0;if((g|0)>2]){continue}break}}g=k<<2;d=g+m|0;g=J[g+p>>2]-J[f+g>>2]|0;J[d>>2]=g;k:{if((g|0)>2]){g=g+J[a+20>>2]|0}else{if((g|0)<=J[a+24>>2]){break k}g=g-J[a+20>>2]|0}J[d>>2]=g}d=f;g=J[a+8>>2];k=k+1|0;if((g|0)>(k|0)){continue}break}}if((o|0)>2){continue}break}}if((e|0)>0){pa(h,0,t)}g=J[a+8>>2];if((g|0)>0){e=J[a+32>>2];k=0;d=h;while(1){f=e;if((g|0)>0){f=J[q>>2];g=0;while(1){o=g<<2;l=J[o+d>>2];i=J[a+16>>2];l:{if((l|0)>(i|0)){J[f+o>>2]=i;break l}o=f+o|0;i=J[a+12>>2];if((i|0)>(l|0)){J[o>>2]=i;break l}J[o>>2]=l}g=g+1|0;if((g|0)>2]){continue}break}}g=k<<2;d=g+c|0;g=J[b+g>>2]-J[f+g>>2]|0;J[d>>2]=g;m:{if((g|0)>2]){g=g+J[a+20>>2]|0}else{if((g|0)<=J[a+24>>2]){break m}g=g-J[a+20>>2]|0}J[d>>2]=g}d=f;g=J[a+8>>2];k=k+1|0;if((g|0)>(k|0)){continue}break}}na(h);return 1}function je(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=Q(0),f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=Q(0),p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;if(J[c>>2]==J[c+4>>2]){m=J[d+80>>2];u=ba-16|0;ba=u;g=J[a+4>>2];k=K[b+24|0];h=J[d+48>>2];n=J[J[d>>2]>>2];c=u+8|0;J[c>>2]=1065353216;d=c;N[c>>2]=Q(-1<>2];c=oa(k<<2);a:{if(!m|!k){break a}p=h+n|0;o=N[d>>2];n=J[a+8>>2];v=J[b>>2];d=J[b+48>>2];g=J[b+40>>2];w=J[b+44>>2];if(!K[b+84|0]){f=J[b+68>>2];s=k&254;t=k&1;a=0;while(1){b=J[v>>2];l=Hl(g,w,J[f+(i<<2)>>2],0)+d|0;h=ua(c,b+l|0,g);b=0;q=0;if((k|0)!=1){while(1){l=p+(a<<2)|0;j=b<<2;e=Q(V(Q(Q(o*Q(N[j+h>>2]-N[n+j>>2]))+Q(.5))));b:{if(Q(R(e))>2]=r;j=j|4;e=Q(V(Q(Q(o*Q(N[j+h>>2]-N[n+j>>2]))+Q(.5))));c:{if(Q(R(e))>2]=j;b=b+2|0;a=a+2|0;q=q+2|0;if((s|0)!=(q|0)){continue}break}}if(t){l=p+(a<<2)|0;b=b<<2;e=Q(V(Q(Q(o*Q(N[b+h>>2]-N[b+n>>2]))+Q(.5))));d:{if(Q(R(e))>2]=b;a=a+1|0}i=i+1|0;if((m|0)!=(i|0)){continue}break}break a}s=k&254;t=k&1;a=0;while(1){b=J[v>>2];h=Hl(g,w,i,l)+d|0;j=ua(c,b+h|0,g);b=0;q=0;if((k|0)!=1){while(1){h=p+(a<<2)|0;f=b<<2;e=Q(V(Q(Q(o*Q(N[f+j>>2]-N[f+n>>2]))+Q(.5))));e:{if(Q(R(e))>2]=r;f=f|4;e=Q(V(Q(Q(o*Q(N[f+j>>2]-N[f+n>>2]))+Q(.5))));f:{if(Q(R(e))>2]=f;b=b+2|0;a=a+2|0;q=q+2|0;if((s|0)!=(q|0)){continue}break}}if(t){h=p+(a<<2)|0;b=b<<2;e=Q(V(Q(Q(o*Q(N[b+j>>2]-N[b+n>>2]))+Q(.5))));g:{if(Q(R(e))>2]=b;a=a+1|0}b=l;i=i+1|0;b=i?b:b+1|0;l=b;if((i|0)!=(m|0)|b){continue}break}}na(c);ba=u+16|0;return 1}j=ba-16|0;ba=j;m=J[a+4>>2];i=K[b+24|0];g=J[d+48>>2];h=J[J[d>>2]>>2];d=j+8|0;J[d>>2]=1065353216;l=d;N[d>>2]=Q(-1<>2];d=oa(i<<2);m=J[c+4>>2];q=J[c>>2];h:{if(!i|(m|0)==(q|0)){break h}n=h+g|0;c=m-q>>2;u=c>>>0<=1?1:c;o=N[l>>2];h=J[a+8>>2];v=J[b>>2];l=J[b+48>>2];m=J[b+40>>2];w=J[b+44>>2];if(K[b+84|0]){s=i&254;t=i&1;a=0;c=0;while(1){b=J[v>>2];g=Hl(m,w,J[q+(c<<2)>>2],0)+l|0;p=ua(d,b+g|0,m);b=0;k=0;if((i|0)!=1){while(1){g=n+(a<<2)|0;f=b<<2;e=Q(V(Q(Q(o*Q(N[f+p>>2]-N[h+f>>2]))+Q(.5))));i:{if(Q(R(e))>2]=r;f=f|4;e=Q(V(Q(Q(o*Q(N[f+p>>2]-N[h+f>>2]))+Q(.5))));j:{if(Q(R(e))>2]=f;b=b+2|0;a=a+2|0;k=k+2|0;if((s|0)!=(k|0)){continue}break}}if(t){g=n+(a<<2)|0;b=b<<2;e=Q(V(Q(Q(o*Q(N[b+p>>2]-N[b+h>>2]))+Q(.5))));k:{if(Q(R(e))>2]=b;a=a+1|0}c=c+1|0;if((u|0)!=(c|0)){continue}break}break h}s=J[b+68>>2];t=i&254;x=i&1;a=0;c=0;while(1){b=J[v>>2];g=Hl(m,w,J[s+(J[q+(c<<2)>>2]<<2)>>2],0)+l|0;p=ua(d,b+g|0,m);b=0;k=0;if((i|0)!=1){while(1){g=n+(a<<2)|0;f=b<<2;e=Q(V(Q(Q(o*Q(N[f+p>>2]-N[h+f>>2]))+Q(.5))));l:{if(Q(R(e))>2]=r;f=f|4;e=Q(V(Q(Q(o*Q(N[f+p>>2]-N[h+f>>2]))+Q(.5))));m:{if(Q(R(e))>2]=f;b=b+2|0;a=a+2|0;k=k+2|0;if((t|0)!=(k|0)){continue}break}}if(x){g=n+(a<<2)|0;b=b<<2;e=Q(V(Q(Q(o*Q(N[b+p>>2]-N[b+h>>2]))+Q(.5))));n:{if(Q(R(e))>2]=b;a=a+1|0}c=c+1|0;if((u|0)!=(c|0)){continue}break}}na(d);ba=j+16|0;return 1}function bi(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=Q(0);c=1;a:{if(!J[a+80>>2]){break a}f=J[a+8>>2];if((J[a+12>>2]-f|0)<4){break a}while(1){b=J[(n<<2)+f>>2];k=0;l=0;j=0;c=0;f=0;e=-1;b:{c:{d:{e:{switch(J[b+28>>2]-1|0){case 8:f:{switch(K[b+24|0]-1|0){case 0:e=ba+-64|0;ba=e;J[e+40>>2]=0;J[e+44>>2]=0;J[e+32>>2]=0;J[e+36>>2]=0;J[e+48>>2]=1065353216;g=J[b+80>>2];J[e+24>>2]=0;J[e+16>>2]=0;J[e+20>>2]=0;g:{h:{if(g){if(g>>>0>=1073741824){break h}d=g<<2;g=oa(d);J[e+16>>2]=g;h=d+g|0;J[e+24>>2]=h;pa(g,0,d);J[e+20>>2]=h;while(1){d=J[J[b>>2]>>2];h=J[b+48>>2];m=Hl(J[b+40>>2],J[b+44>>2],c,0);h=h+m|0;d=d+h|0;o=(x(2,K[d|0]|K[d+1|0]<<8|(K[d+2|0]<<16|K[d+3|0]<<24)),D());N[e+28>>2]=o;J[e+12>>2]=k;N[e+8>>2]=o;d=e+8|0;qf(e+56|0,e+32|0,d,d);i:{if(!K[e+60|0]){J[(c<<2)+g>>2]=J[J[e+56>>2]+12>>2];break i}g=J[b+40>>2];ua(J[J[b>>2]>>2]+P(g,k)|0,e+28|0,g);g=J[e+16>>2];J[g+(c<<2)>>2]=k;k=k+1|0}c=c+1|0;f=c?f:f+1|0;d=J[b+80>>2];if(!f&c>>>0>>0){continue}break}if((d|0)!=(k|0)){j:{if(!K[b+84|0]){c=J[b+72>>2];f=J[b+68>>2];if((c|0)==(f|0)){break j}c=c-f>>2;d=c>>>0<=1?1:c;h=d&3;c=0;if(d-1>>>0>=3){m=d&-4;while(1){d=c<<2;i=d+f|0;J[i>>2]=J[(J[i>>2]<<2)+g>>2];i=f+(d|4)|0;J[i>>2]=J[(J[i>>2]<<2)+g>>2];i=f+(d|8)|0;J[i>>2]=J[(J[i>>2]<<2)+g>>2];d=f+(d|12)|0;J[d>>2]=J[(J[d>>2]<<2)+g>>2];c=c+4|0;j=j+4|0;if((m|0)!=(j|0)){continue}break}}if(!h){break j}while(1){d=f+(c<<2)|0;J[d>>2]=J[(J[d>>2]<<2)+g>>2];c=c+1|0;l=l+1|0;if((h|0)!=(l|0)){continue}break}break j}H[b+84|0]=0;c=b+68|0;h=J[b+68>>2];f=J[b+72>>2]-h>>2;k:{if(f>>>0>>0){Ma(c,d-f|0,2176);d=J[b+80>>2];break k}if(d>>>0>=f>>>0){break k}J[b+72>>2]=h+(d<<2)}if(!d){break j}f=J[c>>2];c=0;if(d>>>0>=4){m=d&-4;while(1){h=c<<2;J[h+f>>2]=J[g+h>>2];i=h|4;J[i+f>>2]=J[g+i>>2];i=h|8;J[i+f>>2]=J[g+i>>2];h=h|12;J[h+f>>2]=J[g+h>>2];c=c+4|0;j=j+4|0;if((m|0)!=(j|0)){continue}break}}d=d&3;if(!d){break j}while(1){j=c<<2;J[j+f>>2]=J[g+j>>2];c=c+1|0;l=l+1|0;if((d|0)!=(l|0)){continue}break}}J[b+80>>2]=k}na(g)}c=J[e+40>>2];if(c){while(1){f=J[c>>2];na(c);c=f;if(c){continue}break}}c=J[e+32>>2];J[e+32>>2]=0;if(c){na(c)}ba=e- -64|0;c=k;break g}qa();B()}break d;case 1:c=Jd(b,b);break d;case 2:c=Id(b,b);break d;case 3:break f;default:break c}}c=Hd(b,b);break d;case 0:l:{switch(K[b+24|0]-1|0){case 0:c=Rf(b,b);break d;case 1:c=Nf(b,b);break d;case 2:c=Kf(b,b);break d;case 3:break l;default:break c}}c=If(b,b);break d;case 1:case 10:m:{switch(K[b+24|0]-1|0){case 0:c=Rf(b,b);break d;case 1:c=Nf(b,b);break d;case 2:c=Kf(b,b);break d;case 3:break m;default:break c}}c=If(b,b);break d;case 3:n:{switch(K[b+24|0]-1|0){case 0:c=Ff(b,b);break d;case 1:c=Ef(b,b);break d;case 2:c=wf(b,b);break d;case 3:break n;default:break c}}c=vf(b,b);break d;case 2:o:{switch(K[b+24|0]-1|0){case 0:c=Ff(b,b);break d;case 1:c=Ef(b,b);break d;case 2:c=wf(b,b);break d;case 3:break o;default:break c}}c=vf(b,b);break d;case 5:p:{switch(K[b+24|0]-1|0){case 0:c=uf(b,b);break d;case 1:c=Jd(b,b);break d;case 2:c=Id(b,b);break d;case 3:break p;default:break c}}c=Hd(b,b);break d;case 4:break e;default:break b}}q:{switch(K[b+24|0]-1|0){case 0:c=uf(b,b);break d;case 1:c=Jd(b,b);break d;case 2:c=Id(b,b);break d;case 3:break q;default:break c}}c=Hd(b,b)}e=c;if(e){break b}}e=-1}c=(e|0)!=0;if(!e){break a}n=n+1|0;f=J[a+8>>2];if((n|0)>2]-f>>2){continue}break}}return c|0}function ic(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;k=ba-16|0;ba=k;a:{if(!J[a+8>>2]){break a}e=J[a>>2];J[a>>2]=a+4;J[J[a+4>>2]+8>>2]=0;J[a+4>>2]=0;J[a+8>>2]=0;f=J[e+4>>2];e=f?f:e;if(!e){Da(a,e);break a}h=J[e+8>>2];b:{if(!h){break b}f=J[h>>2];if((f|0)==(e|0)){J[h>>2]=0;d=h;f=J[d+4>>2];if(!f){break b}while(1){d=f;f=J[d>>2];if(f){continue}f=J[d+4>>2];if(f){continue}break}break b}J[h+4>>2]=0;d=h;if(!f){break b}while(1){d=f;f=J[d>>2];if(f){continue}f=J[d+4>>2];if(f){continue}break}}c:{if((b|0)==(c|0)){h=e;break c}f=b;while(1){h=d;J[k+12>>2]=e+28;J[k+8>>2]=e+16;b=f+16|0;d=J[k+8>>2];d:{if((b|0)==(d|0)){break d}i=K[b+11|0];g=i<<24>>24;if(H[d+11|0]>=0){if((g|0)>=0){g=J[b+4>>2];J[d>>2]=J[b>>2];J[d+4>>2]=g;J[d+8>>2]=J[b+8>>2];break d}hd(d,J[b>>2],J[b+4>>2]);break d}l=d;d=(g|0)<0;id(l,d?J[b>>2]:b,d?J[b+4>>2]:i)}d=J[k+12>>2];g=b+12|0;if((d|0)!=(g|0)){e:{j=K[b+23|0];i=j<<24>>24;if(H[d+11|0]>=0){if((i|0)>=0){b=J[g+4>>2];J[d>>2]=J[g>>2];J[d+4>>2]=b;J[d+8>>2]=J[g+8>>2];break e}hd(d,J[b+12>>2],J[b+16>>2]);break e}l=d;d=(i|0)<0;id(l,d?J[b+12>>2]:g,d?J[b+16>>2]:j)}}g=J[a+4>>2];f:{if(!g){b=a+4|0;d=b;break f}b=K[e+27|0];d=b<<24>>24<0;j=d?J[e+16>>2]:e+16|0;i=d?J[e+20>>2]:b;while(1){b=g;g=K[b+27|0];d=g<<24>>24<0;g:{h:{i:{g=d?J[b+20>>2]:g;l=g>>>0>>0?g:i;if(l){d=Ba(j,d?J[b+16>>2]:b+16|0,l);if(d){break i}}if(g>>>0>i>>>0){break h}break g}if((d|0)>=0){break g}}d=b;g=J[b>>2];if(g){continue}break f}g=J[b+4>>2];if(g){continue}break}d=b+4|0}J[e+8>>2]=b;J[e>>2]=0;J[e+4>>2]=0;J[d>>2]=e;b=e;e=J[J[a>>2]>>2];if(e){J[a>>2]=e;b=J[d>>2]}sb(J[a+4>>2],b);J[a+8>>2]=J[a+8>>2]+1;d=0;j:{if(!h){break j}e=J[h+8>>2];if(!e){break j}b=J[e>>2];if((h|0)==(b|0)){J[e>>2]=0;d=e;b=J[d+4>>2];if(!b){break j}while(1){d=b;b=J[b>>2];if(b){continue}b=J[d+4>>2];if(b){continue}break}break j}J[e+4>>2]=0;d=e;if(!b){break j}while(1){d=b;b=J[b>>2];if(b){continue}b=J[d+4>>2];if(b){continue}break}}e=J[f+4>>2];k:{if(e){while(1){b=e;e=J[b>>2];if(e){continue}break k}}while(1){b=J[f+8>>2];e=J[b>>2]!=(f|0);f=b;if(e){continue}break}}if(!h){break c}f=b;e=h;if((b|0)!=(c|0)){continue}break}}Da(a,h);if(!d){break a}while(1){e=J[d+8>>2];if(e){d=e;continue}break}Da(a,d)}if((b|0)!=(c|0)){while(1){f=oa(40);g=f+16|0;l:{if(H[b+27|0]>=0){d=J[b+20>>2];J[g>>2]=J[b+16>>2];J[g+4>>2]=d;J[g+8>>2]=J[b+24>>2];break l}Ga(g,J[b+16>>2],J[b+20>>2])}d=a+4|0;e=f+28|0;m:{if(H[b+39|0]>=0){h=J[b+32>>2];J[e>>2]=J[b+28>>2];J[e+4>>2]=h;J[e+8>>2]=J[b+36>>2];break m}Ga(e,J[b+28>>2],J[b+32>>2])}e=d;h=J[d>>2];n:{if(!h){break n}e=K[f+27|0];d=e<<24>>24<0;i=d?J[f+20>>2]:e;g=d?J[f+16>>2]:g;while(1){d=h;h=K[d+27|0];e=h<<24>>24<0;o:{p:{q:{h=e?J[d+20>>2]:h;j=h>>>0>>0?h:i;if(j){e=Ba(g,e?J[d+16>>2]:d+16|0,j);if(e){break q}}if(h>>>0>i>>>0){break p}break o}if((e|0)>=0){break o}}e=d;h=J[d>>2];if(h){continue}break n}h=J[d+4>>2];if(h){continue}break}e=d+4|0}J[f+8>>2]=d;J[f>>2]=0;J[f+4>>2]=0;J[e>>2]=f;d=f;f=J[J[a>>2]>>2];if(f){J[a>>2]=f;d=J[e>>2]}sb(J[a+4>>2],d);J[a+8>>2]=J[a+8>>2]+1;f=J[b+4>>2];r:{if(f){while(1){e=f;f=J[e>>2];if(f){continue}break r}}while(1){e=J[b+8>>2];d=J[e>>2]!=(b|0);b=e;if(d){continue}break}}b=e;if((c|0)!=(b|0)){continue}break}}ba=k+16|0}function ef(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;a:{if((b|0)<0){break a}c=J[a+12>>2];d=J[a+8>>2];if(c-d>>2>>>0<=b>>>0){break a}d=d+(b<<2)|0;e=J[d>>2];i=J[e+60>>2];f=J[e+56>>2];e=d+4|0;if((e|0)!=(c|0)){while(1){h=J[e>>2];J[e>>2]=0;g=J[d>>2];J[d>>2]=h;if(g){Ka(g)}d=d+4|0;e=e+4|0;if((e|0)!=(c|0)){continue}break}c=J[a+12>>2]}if((c|0)!=(d|0)){while(1){c=c-4|0;e=J[c>>2];J[c>>2]=0;if(e){Ka(e)}if((c|0)!=(d|0)){continue}break}}J[a+12>>2]=d;g=J[a+4>>2];b:{if(!g|(i|0)<0){break b}c=J[g+24>>2];d=J[g+28>>2];if((c|0)==(d|0)){break b}while(1){if((i|0)==J[J[c>>2]+24>>2]){d=c+4|0;i=J[g+28>>2];if((d|0)!=(i|0)){while(1){h=J[d>>2];J[d>>2]=0;e=J[c>>2];J[c>>2]=h;if(e){lb(e+12|0,J[e+16>>2]);kb(e,J[e+4>>2]);na(e)}c=c+4|0;d=d+4|0;if((i|0)!=(d|0)){continue}break}d=J[g+28>>2]}if((c|0)!=(d|0)){while(1){d=d-4|0;e=J[d>>2];J[d>>2]=0;if(e){lb(e+12|0,J[e+16>>2]);kb(e,J[e+4>>2]);na(e)}if((c|0)!=(d|0)){continue}break}}J[g+28>>2]=c;break b}c=c+4|0;if((d|0)!=(c|0)){continue}break}}c:{if((f|0)>4){break c}d:{e=P(f,12)+a|0;c=J[e+20>>2];d=J[e+24>>2];if((c|0)==(d|0)){break d}while(1){if(J[c>>2]==(b|0)){break d}c=c+4|0;if((d|0)!=(c|0)){continue}break}break c}if((c|0)==(d|0)){break c}f=c;c=c+4|0;ta(f,c,d-c|0);J[e+24>>2]=d-4}c=J[a+24>>2];d=J[a+20>>2];e:{if((c|0)==(d|0)){break e}e=c-d|0;c=e>>2;g=c>>>0<=1?1:c;i=g&1;c=0;if(e>>>0>=8){g=g&-2;e=0;while(1){f=c<<2;h=f+d|0;j=J[h>>2];if((j|0)>(b|0)){J[h>>2]=j-1}f=d+(f|4)|0;h=J[f>>2];if((h|0)>(b|0)){J[f>>2]=h-1}c=c+2|0;e=e+2|0;if((g|0)!=(e|0)){continue}break}}if(!i){break e}c=d+(c<<2)|0;d=J[c>>2];if((d|0)<=(b|0)){break e}J[c>>2]=d-1}c=J[a+36>>2];d=J[a+32>>2];f:{if((c|0)==(d|0)){break f}e=c-d|0;c=e>>2;g=c>>>0<=1?1:c;i=g&1;c=0;if(e>>>0>=8){g=g&-2;e=0;while(1){f=c<<2;h=f+d|0;j=J[h>>2];if((j|0)>(b|0)){J[h>>2]=j-1}f=d+(f|4)|0;h=J[f>>2];if((h|0)>(b|0)){J[f>>2]=h-1}c=c+2|0;e=e+2|0;if((g|0)!=(e|0)){continue}break}}if(!i){break f}c=d+(c<<2)|0;d=J[c>>2];if((d|0)<=(b|0)){break f}J[c>>2]=d-1}c=J[a+48>>2];d=J[a+44>>2];g:{if((c|0)==(d|0)){break g}e=c-d|0;c=e>>2;g=c>>>0<=1?1:c;i=g&1;c=0;if(e>>>0>=8){g=g&-2;e=0;while(1){f=c<<2;h=f+d|0;j=J[h>>2];if((j|0)>(b|0)){J[h>>2]=j-1}f=d+(f|4)|0;h=J[f>>2];if((h|0)>(b|0)){J[f>>2]=h-1}c=c+2|0;e=e+2|0;if((g|0)!=(e|0)){continue}break}}if(!i){break g}c=d+(c<<2)|0;d=J[c>>2];if((d|0)<=(b|0)){break g}J[c>>2]=d-1}c=J[a+60>>2];d=J[a+56>>2];h:{if((c|0)==(d|0)){break h}e=c-d|0;c=e>>2;g=c>>>0<=1?1:c;i=g&1;c=0;if(e>>>0>=8){g=g&-2;e=0;while(1){f=c<<2;h=f+d|0;j=J[h>>2];if((j|0)>(b|0)){J[h>>2]=j-1}f=d+(f|4)|0;h=J[f>>2];if((h|0)>(b|0)){J[f>>2]=h-1}c=c+2|0;e=e+2|0;if((g|0)!=(e|0)){continue}break}}if(!i){break h}c=d+(c<<2)|0;d=J[c>>2];if((d|0)<=(b|0)){break h}J[c>>2]=d-1}c=J[a+72>>2];a=J[a+68>>2];if((c|0)==(a|0)){break a}d=c-a|0;c=d>>2;e=c>>>0<=1?1:c;g=e&1;c=0;if(d>>>0>=8){d=e&-2;e=0;while(1){i=c<<2;f=i+a|0;h=J[f>>2];if((h|0)>(b|0)){J[f>>2]=h-1}i=a+(i|4)|0;f=J[i>>2];if((f|0)>(b|0)){J[i>>2]=f-1}c=c+2|0;e=e+2|0;if((d|0)!=(e|0)){continue}break}}if(!g){break a}f=b;a=a+(c<<2)|0;b=J[a>>2];if((f|0)>=(b|0)){break a}J[a>>2]=b-1}}function _a(a,b,c,d,e,f,g,h,i){var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;j=ba-112|0;ba=j;k=i&2147483647;a:{b:{l=e&2147483647;m=!(b|c);if(!(d|l?l-2147418112>>>0<2147549184:m)){o=k-2147418112|0;if(!h&(o|0)==-2147418112?f|g:(o|0)==-2147418112&(h|0)!=0|o>>>0>2147549184){break b}}if(!(!d&(l|0)==2147418112?m:l>>>0<2147418112)){h=d;i=e|32768;f=b;g=c;break a}if(!(!h&(k|0)==2147418112?!(f|g):k>>>0<2147418112)){i=i|32768;break a}if(!(b|d|(l^2147418112|c))){n=d;d=!(b^f|d^h|(c^g|e^i^-2147483648));h=d?0:n;i=d?2147450880:e;f=d?0:b;g=d?0:c;break a}if(!(f|h|(k^2147418112|g))){break a}if(!(b|d|(c|l))){if(f|h|(g|k)){break a}f=b&f;g=c&g;h=d&h;i=e&i;break a}if(f|h|(g|k)){break b}f=b;g=c;h=d;i=e;break a}n=(k|0)==(l|0);r=n&(d|0)==(h|0)?(c|0)==(g|0)&b>>>0>>0|c>>>0>>0:n&d>>>0>>0|k>>>0>l>>>0;m=r;l=m?f:b;o=m?g:c;n=m?i:e;s=n;m=m?h:d;q=n&65535;d=r?d:h;e=r?e:i;t=e;n=e>>>16&32767;p=s>>>16&32767;if(!p){e=!(m|q);i=e;k=e?l:m;e=e<<6;h=e;i=S(i?o:q);e=e+((i|0)==32?S(k)+32|0:i)|0;Pa(j+96|0,l,o,m,q,e-15|0);m=J[j+104>>2];q=J[j+108>>2];o=J[j+100>>2];p=16-e|0;l=J[j+96>>2]}f=r?b:f;g=r?c:g;h=d;i=t&65535;if(!n){b=!(h|i);e=b;k=b?f:h;b=b<<6;c=b;e=S(e?g:i);b=b+((e|0)==32?S(k)+32|0:e)|0;Pa(j+80|0,f,g,h,i,b-15|0);n=16-b|0;h=J[j+88>>2];i=J[j+92>>2];g=J[j+84>>2];f=J[j+80>>2]}c=i<<3|h>>>29;b=h<<3|g>>>29;c=c|524288;h=m<<3|o>>>29;i=q<<3|m>>>29;r=s^t;e=g<<3|f>>>29;d=f<<3;c:{if((n|0)==(p|0)){break c}f=p-n|0;if(f>>>0>127){b=0;c=0;e=0;d=1;break c}Pa(j- -64|0,d,e,b,c,128-f|0);Gb(j+48|0,d,e,b,c,f);b=J[j+56>>2];c=J[j+60>>2];e=J[j+52>>2];d=J[j+48>>2]|(J[j+64>>2]|J[j+72>>2]|(J[j+68>>2]|J[j+76>>2]))!=0}m=d;k=e;n=h;q=i|524288;e=o<<3|l>>>29;o=l<<3;l=e;d:{if((r|0)<0){f=0;g=0;h=0;i=0;if(!(m^o|b^n|(k^l|c^q))){break a}d=o-m|0;e=l-((m>>>0>o>>>0)+k|0)|0;f=n-b|0;g=(k|0)==(l|0)&m>>>0>o>>>0|k>>>0>l>>>0;h=f-g|0;b=(q-((b>>>0>n>>>0)+c|0)|0)-(f>>>0>>0)|0;i=b;if(b>>>0>524287){break d}b=!(h|i);f=b;g=b?d:h;b=b<<6;c=b;f=S(f?e:i);b=b+((f|0)==32?S(g)+32|0:f)|0;b=b-12|0;Pa(j+32|0,d,e,h,i,b);p=p-b|0;h=J[j+40>>2];i=J[j+44>>2];d=J[j+32>>2];e=J[j+36>>2];break d}e=k+l|0;d=m+o|0;e=d>>>0>>0?e+1|0:e;f=(k|0)==(e|0)&d>>>0>>0|e>>>0>>0;k=c+q|0;b=b+n|0;k=b>>>0>>0?k+1|0:k;h=b+f|0;i=h>>>0>>0?k+1|0:k;if(!(i&1048576)){break d}d=m&1|((e&1)<<31|d>>>1);e=h<<31|e>>>1;p=p+1|0;h=(i&1)<<31|h>>>1;i=i>>>1|0}c=0;l=s&-2147483648;if((p|0)>=32767){h=c;i=l|2147418112;f=0;g=0;break a}n=0;e:{if((p|0)>0){n=p;break e}Pa(j+16|0,d,e,h,i,p+127|0);Gb(j,d,e,h,i,1-p|0);d=J[j>>2]|(J[j+16>>2]|J[j+24>>2]|(J[j+20>>2]|J[j+28>>2]))!=0;e=J[j+4>>2];h=J[j+8>>2];i=J[j+12>>2]}o=d&7;d=(e&7)<<29|d>>>3;f=(o>>>0>4)+d|0;b=h<<29|e>>>3;g=d>>>0>f>>>0?b+1|0:b;d=(b|0)==(g|0)&d>>>0>f>>>0|b>>>0>g>>>0;b=c|((i&7)<<29|h>>>3);h=d+b|0;i=l|(i>>>3&65535|n<<16);i=b>>>0>h>>>0?i+1|0:i;f:{if((o|0)==4){b=0;k=g+b|0;d=f;c=f&1;f=f+c|0;g=d>>>0>f>>>0?k+1|0:k;b=(b|0)==(g|0)&c>>>0>f>>>0|b>>>0>g>>>0;h=b+h|0;i=b>>>0>h>>>0?i+1|0:i;break f}if(!o){break a}}}J[a>>2]=f;J[a+4>>2]=g;J[a+8>>2]=h;J[a+12>>2]=i;ba=j+112|0}function na(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;a:{if(!a){break a}d=a-8|0;b=J[a-4>>2];a=b&-8;f=d+a|0;b:{if(b&1){break b}if(!(b&3)){break a}b=J[d>>2];d=d-b|0;if(d>>>0>>0<=255){e=J[d+8>>2];b=b>>>3|0;c=J[d+12>>2];if((c|0)==(e|0)){i=19396,j=J[4849]&Ll(b),J[i>>2]=j;break b}J[e+12>>2]=c;J[c+8>>2]=e;break b}h=J[d+24>>2];b=J[d+12>>2];c:{if((d|0)!=(b|0)){c=J[d+8>>2];J[c+12>>2]=b;J[b+8>>2]=c;break c}d:{e=d+20|0;c=J[e>>2];if(c){break d}e=d+16|0;c=J[e>>2];if(c){break d}b=0;break c}while(1){g=e;b=c;e=b+20|0;c=J[e>>2];if(c){continue}e=b+16|0;c=J[b+16>>2];if(c){continue}break}J[g>>2]=0}if(!h){break b}e=J[d+28>>2];c=(e<<2)+19700|0;e:{if(J[c>>2]==(d|0)){J[c>>2]=b;if(b){break e}i=19400,j=J[4850]&Ll(e),J[i>>2]=j;break b}J[h+(J[h+16>>2]==(d|0)?16:20)>>2]=b;if(!b){break b}}J[b+24>>2]=h;c=J[d+16>>2];if(c){J[b+16>>2]=c;J[c+24>>2]=b}c=J[d+20>>2];if(!c){break b}J[b+20>>2]=c;J[c+24>>2]=b;break b}b=J[f+4>>2];if((b&3)!=3){break b}J[4851]=a;J[f+4>>2]=b&-2;J[d+4>>2]=a|1;J[a+d>>2]=a;return}if(d>>>0>=f>>>0){break a}b=J[f+4>>2];if(!(b&1)){break a}f:{if(!(b&2)){if(J[4855]==(f|0)){J[4855]=d;a=J[4852]+a|0;J[4852]=a;J[d+4>>2]=a|1;if(J[4854]!=(d|0)){break a}J[4851]=0;J[4854]=0;return}if(J[4854]==(f|0)){J[4854]=d;a=J[4851]+a|0;J[4851]=a;J[d+4>>2]=a|1;J[a+d>>2]=a;return}a=(b&-8)+a|0;g:{if(b>>>0<=255){e=J[f+8>>2];b=b>>>3|0;c=J[f+12>>2];if((c|0)==(e|0)){i=19396,j=J[4849]&Ll(b),J[i>>2]=j;break g}J[e+12>>2]=c;J[c+8>>2]=e;break g}h=J[f+24>>2];b=J[f+12>>2];h:{if((f|0)!=(b|0)){c=J[f+8>>2];J[c+12>>2]=b;J[b+8>>2]=c;break h}i:{e=f+20|0;c=J[e>>2];if(c){break i}e=f+16|0;c=J[e>>2];if(c){break i}b=0;break h}while(1){g=e;b=c;e=b+20|0;c=J[e>>2];if(c){continue}e=b+16|0;c=J[b+16>>2];if(c){continue}break}J[g>>2]=0}if(!h){break g}e=J[f+28>>2];c=(e<<2)+19700|0;j:{if(J[c>>2]==(f|0)){J[c>>2]=b;if(b){break j}i=19400,j=J[4850]&Ll(e),J[i>>2]=j;break g}J[h+(J[h+16>>2]==(f|0)?16:20)>>2]=b;if(!b){break g}}J[b+24>>2]=h;c=J[f+16>>2];if(c){J[b+16>>2]=c;J[c+24>>2]=b}c=J[f+20>>2];if(!c){break g}J[b+20>>2]=c;J[c+24>>2]=b}J[d+4>>2]=a|1;J[a+d>>2]=a;if(J[4854]!=(d|0)){break f}J[4851]=a;return}J[f+4>>2]=b&-2;J[d+4>>2]=a|1;J[a+d>>2]=a}if(a>>>0<=255){b=(a&-8)+19436|0;c=J[4849];a=1<<(a>>>3);k:{if(!(c&a)){J[4849]=a|c;a=b;break k}a=J[b+8>>2]}J[b+8>>2]=d;J[a+12>>2]=d;J[d+12>>2]=b;J[d+8>>2]=a;return}e=31;if(a>>>0<=16777215){b=S(a>>>8|0);e=((a>>>38-b&1)-(b<<1)|0)+62|0}J[d+28>>2]=e;J[d+16>>2]=0;J[d+20>>2]=0;g=(e<<2)+19700|0;l:{m:{c=J[4850];b=1<>2]=d;J[d+24>>2]=g;break n}e=a<<((e|0)!=31?25-(e>>>1|0)|0:0);b=J[g>>2];while(1){c=b;if((J[b+4>>2]&-8)==(a|0)){break m}b=e>>>29|0;e=e<<1;g=c+(b&4)|0;b=J[g+16>>2];if(b){continue}break}J[g+16>>2]=d;J[d+24>>2]=c}J[d+12>>2]=d;J[d+8>>2]=d;break l}a=J[c+8>>2];J[a+12>>2]=d;J[c+8>>2]=d;J[d+24>>2]=0;J[d+12>>2]=c;J[d+8>>2]=a}a=J[4857]-1|0;J[4857]=a?a:-1}}function xk(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;k=ba-48|0;ba=k;d=J[a+8>>2];if(d-2>>>0<=28){J[a+76>>2]=d;e=-1<>2]=d;J[a+80>>2]=e^-1;J[a+92>>2]=(d|0)/2;N[a+88>>2]=Q(2)/Q(d|0)}J[a+52>>2]=f;o=a+96|0;za(o);d=J[a+40>>2];e=J[d>>2];d=J[d+4>>2];J[k+16>>2]=0;J[k+8>>2]=0;J[k+12>>2]=0;a:{d=d-e|0;if((d|0)>0){p=a+8|0;q=a+44|0;d=d>>>2|0;r=d>>>0<=1?1:d;s=c+4|0;while(1){e=J[a+40>>2];d=J[e>>2];if(J[e+4>>2]-d>>2>>>0<=n>>>0){break a}Tc(q,J[d+(n<<2)>>2],k+8|0);f=J[k+12>>2];d=f>>31;i=J[k+8>>2];e=i>>31;g=(d^f)-d+((e^i)-e)|0;l=J[k+16>>2];d=l>>31;e=(d^l)-d|0;d=0;m=e;e=e+g|0;d=m>>>0>e>>>0?1:d;b:{if(!(d|e)){j=J[a+92>>2];g=j;break b}j=J[a+92>>2];g=j>>31;f=Il(Hl(j,g,f,f>>31),ca,e,d);h=f>>31;g=Il(Hl(j,g,i,i>>31),ca,e,d);d=g>>31;d=(f^h)-h+((d^g)-d)|0;l=(l|0)<0?d-j|0:j-d|0}c:{if((g|0)>=0){i=f+j|0;h=j+l|0;break c}d:{if((f|0)<0){d=l>>31;i=(d^l)-d|0;break d}d=l>>31;i=J[a+84>>2]+(d-(d^l)|0)|0}if((l|0)<0){d=f>>31;h=(d^f)-d|0;break c}d=f>>31;h=J[a+84>>2]+(d-(d^f)|0)|0}d=J[a+84>>2];m=d;e=d;e:{if(!(h|i)){break e}if(!((d|0)!=(h|0)|i)){m=h;e=h;break e}if(!((d|0)!=(i|0)|h)){m=i;e=i;break e}if(!((h|0)<=(j|0)|i)){m=(j<<1)-h|0;e=0;break e}if(!((d|0)!=(i|0)|(h|0)>=(j|0))){m=(j<<1)-h|0;e=i;break e}if(!((d|0)!=(h|0)|(j|0)<=(i|0))){m=h;e=(j<<1)-i|0;break e}if(h){m=h;e=i;break e}m=0;e=i;if((e|0)<=(j|0)){break e}e=(j<<1)-i|0}i=e;J[k+16>>2]=0-l;J[k+12>>2]=0-f;J[k+8>>2]=0-g;f:{if((g|0)<=0){g=j-l|0;e=j-f|0;break f}e=f>>31;e=(e^f)-e|0;g=(l|0)>0?e:d-e|0;e=l>>31;e=(e^l)-e|0;e=(f|0)>0?e:d-e|0}g:{if(!(e|g)){g=d;break g}if(!((d|0)!=(g|0)|e)){g=d;break g}f=(d|0)!=(e|0);if(!(g|f)){g=d;break g}if(!((g|0)<=(j|0)|e)){g=(j<<1)-g|0;d=0;break g}if(!((g|0)>=(j|0)|f)){g=(j<<1)-g|0;break g}if(!((d|0)!=(g|0)|(e|0)>=(j|0))){g=d;d=(j<<1)-e|0;break g}if(g){d=e;break g}g=0;if((e|0)<=(j|0)){d=e;break g}d=(j<<1)-e|0}e=(n<<3)+b|0;f=J[e>>2];h=J[e+4>>2];J[k+28>>2]=m;J[k+24>>2]=i;J[k+32>>2]=f;J[k+36>>2]=h;i=k+40|0;h=k+32|0;m=k+24|0;Ya(i,p,h,m);f=J[k+44>>2];l=J[k+40>>2];j=J[e>>2];e=J[e+4>>2];J[k+28>>2]=g;J[k+24>>2]=d;J[k+32>>2]=j;J[k+36>>2]=e;Ya(i,p,h,m);d=J[k+44>>2];g=J[k+40>>2];e=J[a+92>>2];h:{if((e|0)<(l|0)){l=l-J[a+80>>2]|0;break h}if((0-e|0)<=(l|0)){break h}l=J[a+80>>2]+l|0}i:{if((e|0)<(f|0)){f=f-J[a+80>>2]|0;break i}if((0-e|0)<=(f|0)){break i}f=J[a+80>>2]+f|0}j:{if((e|0)<(g|0)){g=g-J[a+80>>2]|0;break j}if((0-e|0)<=(g|0)){break j}g=J[a+80>>2]+g|0}i=n<<1;k:{if((d|0)>(e|0)){d=d-J[a+80>>2]|0;break k}if((0-e|0)<=(d|0)){break k}d=J[a+80>>2]+d|0}e=f>>31;e=(e^f)-e|0;h=l>>31;h=(h^l)-h|0;m=h>>>0>(e^2147483647)>>>0?2147483647:e+h|0;e=d>>31;e=(e^d)-e|0;h=g>>31;h=(h^g)-h|0;e=m>>>0>=(h>>>0>(e^2147483647)>>>0?2147483647:e+h|0)>>>0;Ca(o,e);i=i<<2;g=e?g:l;J[i+c>>2]=(J[a+80>>2]&g>>31)+g;d=e?d:f;J[i+s>>2]=(J[a+80>>2]&d>>31)+d;n=n+1|0;if((r|0)!=(n|0)){continue}break}}ba=k+48|0;return 1}ra();B()}function nk(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;k=ba-48|0;ba=k;d=J[a+8>>2];if(d-2>>>0<=28){J[a+76>>2]=d;e=-1<>2]=d;J[a+80>>2]=e^-1;J[a+92>>2]=(d|0)/2;N[a+88>>2]=Q(2)/Q(d|0)}J[a+52>>2]=f;o=a+96|0;za(o);d=J[a+40>>2];e=J[d>>2];d=J[d+4>>2];J[k+16>>2]=0;J[k+8>>2]=0;J[k+12>>2]=0;a:{d=d-e|0;if((d|0)>0){p=a+8|0;q=a+44|0;d=d>>>2|0;r=d>>>0<=1?1:d;s=c+4|0;while(1){e=J[a+40>>2];d=J[e>>2];if(J[e+4>>2]-d>>2>>>0<=n>>>0){break a}Rc(q,J[d+(n<<2)>>2],k+8|0);f=J[k+12>>2];d=f>>31;i=J[k+8>>2];e=i>>31;g=(d^f)-d+((e^i)-e)|0;l=J[k+16>>2];d=l>>31;e=(d^l)-d|0;d=0;m=e;e=e+g|0;d=m>>>0>e>>>0?1:d;b:{if(!(d|e)){j=J[a+92>>2];g=j;break b}j=J[a+92>>2];g=j>>31;f=Il(Hl(j,g,f,f>>31),ca,e,d);h=f>>31;g=Il(Hl(j,g,i,i>>31),ca,e,d);d=g>>31;d=(f^h)-h+((d^g)-d)|0;l=(l|0)<0?d-j|0:j-d|0}c:{if((g|0)>=0){i=f+j|0;h=j+l|0;break c}d:{if((f|0)<0){d=l>>31;i=(d^l)-d|0;break d}d=l>>31;i=J[a+84>>2]+(d-(d^l)|0)|0}if((l|0)<0){d=f>>31;h=(d^f)-d|0;break c}d=f>>31;h=J[a+84>>2]+(d-(d^f)|0)|0}d=J[a+84>>2];m=d;e=d;e:{if(!(h|i)){break e}if(!((d|0)!=(h|0)|i)){m=h;e=h;break e}if(!((d|0)!=(i|0)|h)){m=i;e=i;break e}if(!((h|0)<=(j|0)|i)){m=(j<<1)-h|0;e=0;break e}if(!((d|0)!=(i|0)|(h|0)>=(j|0))){m=(j<<1)-h|0;e=i;break e}if(!((d|0)!=(h|0)|(j|0)<=(i|0))){m=h;e=(j<<1)-i|0;break e}if(h){m=h;e=i;break e}m=0;e=i;if((e|0)<=(j|0)){break e}e=(j<<1)-i|0}i=e;J[k+16>>2]=0-l;J[k+12>>2]=0-f;J[k+8>>2]=0-g;f:{if((g|0)<=0){g=j-l|0;e=j-f|0;break f}e=f>>31;e=(e^f)-e|0;g=(l|0)>0?e:d-e|0;e=l>>31;e=(e^l)-e|0;e=(f|0)>0?e:d-e|0}g:{if(!(e|g)){g=d;break g}if(!((d|0)!=(g|0)|e)){g=d;break g}f=(d|0)!=(e|0);if(!(g|f)){g=d;break g}if(!((g|0)<=(j|0)|e)){g=(j<<1)-g|0;d=0;break g}if(!((g|0)>=(j|0)|f)){g=(j<<1)-g|0;break g}if(!((d|0)!=(g|0)|(e|0)>=(j|0))){g=d;d=(j<<1)-e|0;break g}if(g){d=e;break g}g=0;if((e|0)<=(j|0)){d=e;break g}d=(j<<1)-e|0}e=(n<<3)+b|0;f=J[e>>2];h=J[e+4>>2];J[k+28>>2]=m;J[k+24>>2]=i;J[k+32>>2]=f;J[k+36>>2]=h;i=k+40|0;h=k+32|0;m=k+24|0;Ya(i,p,h,m);f=J[k+44>>2];l=J[k+40>>2];j=J[e>>2];e=J[e+4>>2];J[k+28>>2]=g;J[k+24>>2]=d;J[k+32>>2]=j;J[k+36>>2]=e;Ya(i,p,h,m);d=J[k+44>>2];g=J[k+40>>2];e=J[a+92>>2];h:{if((e|0)<(l|0)){l=l-J[a+80>>2]|0;break h}if((0-e|0)<=(l|0)){break h}l=J[a+80>>2]+l|0}i:{if((e|0)<(f|0)){f=f-J[a+80>>2]|0;break i}if((0-e|0)<=(f|0)){break i}f=J[a+80>>2]+f|0}j:{if((e|0)<(g|0)){g=g-J[a+80>>2]|0;break j}if((0-e|0)<=(g|0)){break j}g=J[a+80>>2]+g|0}i=n<<1;k:{if((d|0)>(e|0)){d=d-J[a+80>>2]|0;break k}if((0-e|0)<=(d|0)){break k}d=J[a+80>>2]+d|0}e=f>>31;e=(e^f)-e|0;h=l>>31;h=(h^l)-h|0;m=h>>>0>(e^2147483647)>>>0?2147483647:e+h|0;e=d>>31;e=(e^d)-e|0;h=g>>31;h=(h^g)-h|0;e=m>>>0>=(h>>>0>(e^2147483647)>>>0?2147483647:e+h|0)>>>0;Ca(o,e);i=i<<2;g=e?g:l;J[i+c>>2]=(J[a+80>>2]&g>>31)+g;d=e?d:f;J[i+s>>2]=(J[a+80>>2]&d>>31)+d;n=n+1|0;if((r|0)!=(n|0)){continue}break}}ba=k+48|0;return 1}ra();B()}function Vf(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;if((b|0)==-1){return 1}g=(b>>>0)/3|0;if(!(J[J[a+24>>2]+(g>>>3&268435452)>>2]>>>g&1)){e=J[a+48>>2];J[a+52>>2]=e;a:{if((e|0)!=J[a+56>>2]){J[e>>2]=b;J[a+52>>2]=e+4;break a}d=oa(4);J[d>>2]=b;c=d+4|0;J[a+56>>2]=c;J[a+52>>2]=c;J[a+48>>2]=d;if(!e){break a}na(e)}c=b+1|0;i=(c>>>0)%3|0?c:b-2|0;c=J[J[a+4>>2]+28>>2];k=J[(i<<2)+c>>2];if((k|0)==-1){return 0}e=(b-P(g,3)|0?-1:2)+b|0;j=J[c+(e<<2)>>2];if((j|0)==-1){return 0}b=J[a+36>>2];g=b+(k>>>3&536870908)|0;d=J[g>>2];c=1<>2]=c|d;mb(a+8|0,k,i);b=J[a+36>>2]}d=(j>>>3&536870908)+b|0;c=J[d>>2];b=1<>2]=b|c;mb(a+8|0,j,e)}f=J[a+52>>2];if((f|0)==J[a+48>>2]){return 1}k=a+8|0;while(1){b:{c:{f=f-4|0;b=J[f>>2];if((b|0)==-1){break c}c=(b>>>0)/3|0;g=J[a+24>>2]+(c>>>3&268435452)|0;d=J[g>>2];c=1<>2]=c|d;h=J[a+4>>2];c=J[J[h+28>>2]+(b<<2)>>2];if((c|0)==-1){return 0}while(1){d=b;d:{e:{j=J[a+36>>2]+(c>>>3&536870908)|0;i=J[j>>2];e=1<>2]+(c<<2)>>2];g:{if((g|0)==-1){break g}b=g+1|0;b=(b>>>0)%3|0?b:g-2|0;if((b|0)==-1|J[J[h>>2]+(b>>>3&536870908)>>2]>>>b&1){break g}g=J[J[J[h+64>>2]+12>>2]+(b<<2)>>2];if((g|0)!=-1){break f}}J[j>>2]=e|i;mb(k,c,d);h=J[a+4>>2];break e}J[j>>2]=e|i;mb(k,c,d);h=J[a+4>>2];b=g+1|0;if((((b>>>0)%3|0?b:g-2|0)|0)==-1){break e}b=-1;h:{if((d|0)==-1){break h}c=d+1|0;c=(c>>>0)%3|0?c:d-2|0;if((c|0)==-1|J[J[h>>2]+(c>>>3&536870908)>>2]>>>c&1){break h}b=J[J[J[h+64>>2]+12>>2]+(c<<2)>>2]}c=(b>>>0)/3|0;d=1<>2];e=c>>>5|0;j=J[f+(e<<2)>>2];break d}i:{j:{if((d|0)==-1){break j}c=-1;b=d+1|0;b=(b>>>0)%3|0?b:d-2|0;if(!((b|0)==-1|J[J[h>>2]+(b>>>3&536870908)>>2]>>>b&1)){c=J[J[J[h+64>>2]+12>>2]+(b<<2)>>2]}k:{l:{if((d>>>0)%3|0){f=d-1|0;break l}f=d+2|0;b=-1;if((f|0)==-1){break k}}b=-1;if(J[J[h>>2]+(f>>>3&536870908)>>2]>>>f&1){break k}b=J[J[J[h+64>>2]+12>>2]+(f<<2)>>2]}g=(b|0)==-1;i=g?-1:(b>>>0)/3|0;if((c|0)!=-1){f=J[a+24>>2];d=(c>>>0)/3|0;e=d>>>5|0;j=J[f+(e<<2)>>2];d=1<>2];e=i>>>5|0;j=J[f+(e<<2)>>2];if(!(d&j)){break d}}f=J[a+52>>2]-4|0;J[a+52>>2]=f;break b}if(g){b=c;break d}if(J[(i>>>3&536870908)+f>>2]>>>i&1){b=c;break d}h=J[a+52>>2];J[h-4>>2]=b;if(J[a+56>>2]!=(h|0)){J[h>>2]=c;f=h+4|0;break c}m:{i=J[a+48>>2];e=h-i|0;g=e>>2;d=g+1|0;if(d>>>0<1073741824){b=e>>>1|0;e=e>>>0>=2147483644?1073741823:b>>>0>d>>>0?b:d;if(e){if(e>>>0>=1073741824){break m}d=oa(e<<2)}else{d=0}b=d+(g<<2)|0;J[b>>2]=c;f=b+4|0;if((h|0)!=(i|0)){while(1){b=b-4|0;h=h-4|0;J[b>>2]=J[h>>2];if((h|0)!=(i|0)){continue}break}}J[a+56>>2]=d+(e<<2);J[a+52>>2]=f;J[a+48>>2]=b;if(!i){break b}na(i);f=J[a+52>>2];break b}qa();B()}xa();B()}J[(e<<2)+f>>2]=d|j;c=J[J[h+28>>2]+(b<<2)>>2];if((c|0)!=-1){continue}break}return 0}J[a+52>>2]=f}if(J[a+48>>2]!=(f|0)){continue}break}}return 1}function cg(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;h=J[a+8>>2];d=J[a+4>>2];if((h-d|0)/136>>>0>=b>>>0){a:{if(!b){break a}c=d;f=b&7;if(f){while(1){Ra(c);c=c+136|0;e=e+1|0;if((f|0)!=(e|0)){continue}break}}d=P(b,136)+d|0;if((b-1&536870911)>>>0<7){break a}while(1){Ra(c);Ra(c+136|0);Ra(c+272|0);Ra(c+408|0);Ra(c+544|0);Ra(c+680|0);Ra(c+816|0);Ra(c+952|0);c=c+1088|0;if((c|0)!=(d|0)){continue}break}}J[a+4>>2]=d;return}b:{c:{d:{c=J[a>>2];f=(d-c|0)/136|0;g=f+b|0;if(g>>>0<31580642){d=(h-c|0)/136|0;c=d<<1;g=d>>>0>=15790320?31580641:c>>>0>g>>>0?c:g;if(g){if(g>>>0>=31580642){break d}i=oa(P(g,136))}d=P(f,136)+i|0;c=d;f=b&7;if(f){while(1){Ra(c);c=c+136|0;e=e+1|0;if((f|0)!=(e|0)){continue}break}}h=P(b,136)+d|0;if((b-1&536870911)>>>0>=7){while(1){Ra(c);Ra(c+136|0);Ra(c+272|0);Ra(c+408|0);Ra(c+544|0);Ra(c+680|0);Ra(c+816|0);Ra(c+952|0);c=c+1088|0;if((h|0)!=(c|0)){continue}break}}f=P(g,136)+i|0;c=J[a+4>>2];e=J[a>>2];if((c|0)==(e|0)){break c}while(1){d=d-136|0;c=c-136|0;J[d>>2]=J[c>>2];J[d+4>>2]=J[c+4>>2];J[d+8>>2]=J[c+8>>2];J[d+12>>2]=J[c+12>>2];J[c+12>>2]=0;J[c+4>>2]=0;J[c+8>>2]=0;J[d+16>>2]=J[c+16>>2];J[d+20>>2]=J[c+20>>2];J[d+24>>2]=J[c+24>>2];J[c+24>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;b=K[c+28|0];J[d+40>>2]=0;J[d+32>>2]=0;J[d+36>>2]=0;H[d+28|0]=b;J[d+32>>2]=J[c+32>>2];J[d+36>>2]=J[c+36>>2];J[d+40>>2]=J[c+40>>2];J[c+40>>2]=0;J[c+32>>2]=0;J[c+36>>2]=0;J[d+52>>2]=0;J[d+44>>2]=0;J[d+48>>2]=0;J[d+44>>2]=J[c+44>>2];J[d+48>>2]=J[c+48>>2];J[d+52>>2]=J[c+52>>2];J[c+52>>2]=0;J[c+44>>2]=0;J[c+48>>2]=0;b=d- -64|0;J[b>>2]=0;J[d+56>>2]=0;J[d+60>>2]=0;J[d+56>>2]=J[c+56>>2];J[d+60>>2]=J[c+60>>2];i=b;b=c- -64|0;J[i>>2]=J[b>>2];J[b>>2]=0;J[c+56>>2]=0;J[c+60>>2]=0;J[d+68>>2]=J[c+68>>2];b=J[c+72>>2];J[d+84>>2]=0;J[d+76>>2]=0;J[d+80>>2]=0;J[d+72>>2]=b;J[d+76>>2]=J[c+76>>2];J[d+80>>2]=J[c+80>>2];J[d+84>>2]=J[c+84>>2];J[c+84>>2]=0;J[c+76>>2]=0;J[c+80>>2]=0;J[d+96>>2]=0;J[d+88>>2]=0;J[d+92>>2]=0;J[d+88>>2]=J[c+88>>2];J[d+92>>2]=J[c+92>>2];J[d+96>>2]=J[c+96>>2];J[c+96>>2]=0;J[c+88>>2]=0;J[c+92>>2]=0;b=K[c+100|0];J[d+112>>2]=0;J[d+104>>2]=0;J[d+108>>2]=0;H[d+100|0]=b;J[d+104>>2]=J[c+104>>2];J[d+108>>2]=J[c+108>>2];J[d+112>>2]=J[c+112>>2];J[c+112>>2]=0;J[c+104>>2]=0;J[c+108>>2]=0;J[d+124>>2]=0;J[d+116>>2]=0;J[d+120>>2]=0;J[d+116>>2]=J[c+116>>2];J[d+120>>2]=J[c+120>>2];J[d+124>>2]=J[c+124>>2];J[c+124>>2]=0;J[c+116>>2]=0;J[c+120>>2]=0;J[d+128>>2]=J[c+128>>2];J[d+132>>2]=J[c+132>>2];if((c|0)!=(e|0)){continue}break}J[a+8>>2]=f;e=J[a+4>>2];J[a+4>>2]=h;c=J[a>>2];J[a>>2]=d;if((c|0)==(e|0)){break b}while(1){a=e-136|0;b=J[a+116>>2];if(b){J[e-16>>2]=b;na(b)}b=J[e-32>>2];if(b){J[e-28>>2]=b;na(b)}pc(e-132|0);e=a;if((a|0)!=(c|0)){continue}break}break b}qa();B()}xa();B()}J[a+8>>2]=f;J[a+4>>2]=h;J[a>>2]=d}if(c){na(c)}}function Qj(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;e=ba+-64|0;ba=e;a:{b:{c:{d:{if(!K[a+288|0]){break d}c=1;h=da[J[J[a>>2]+40>>2]](a)|0;if((J[h+12>>2]-J[h+8>>2]|0)<=0){break d}kc(J[J[(da[J[J[a>>2]+40>>2]](a)|0)+8>>2]>>2],b);break c}c=b<<2;f=J[c+J[J[(da[J[J[a>>2]+40>>2]](a)|0)+56>>2]+84>>2]>>2];i=J[c+J[J[(da[J[J[a>>2]+40>>2]](a)|0)+4>>2]+8>>2]>>2];h=-1;c=J[a+176>>2];d=J[a+172>>2];e:{if((c|0)==(d|0)){break e}c=(c-d|0)/136|0;g=c>>>0<=1?1:c;c=0;while(1){if(J[d+P(c,136)>>2]==(b|0)){h=c;break e}c=c+1|0;if((g|0)!=(c|0)){continue}break}}f:{g:{h:{i:{if(!K[a+288|0]){c=J[i+56>>2];if(!(!f|!c)){if(!K[(d+P(h,136)|0)+28|0]|(f|0)!=1){break i}break h}if(c){break h}}c=a+40|0;break g}d=d+P(h,136)|0;c=J[d+56>>2];f=J[d+60>>2];J[e>>2]=-1;wb(d+116|0,f-c>>2,e);c=oa(80);f=J[a+8>>2];J[c+12>>2]=0;J[c+16>>2]=0;J[c>>2]=11984;J[c+4>>2]=0;J[c+20>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+32>>2]=0;J[c+36>>2]=0;J[c+40>>2]=0;J[c+44>>2]=0;J[c+48>>2]=0;J[c+52>>2]=0;J[c+76>>2]=0;i=d+104|0;J[c+72>>2]=i;J[c+68>>2]=f;J[c- -64>>2]=0;g=c+56|0;J[g>>2]=0;J[g+4>>2]=0;J[c+8>>2]=10876;J[e+40>>2]=0;J[e+44>>2]=0;J[e+32>>2]=0;J[e+36>>2]=0;j=e+24|0;J[j>>2]=0;J[j+4>>2]=0;J[e+16>>2]=0;J[e+20>>2]=0;J[e+56>>2]=0;J[e+8>>2]=0;J[e+12>>2]=0;J[e+48>>2]=0;J[e+52>>2]=0;J[e>>2]=10876;l=d+4|0;J[e+4>>2]=l;d=J[d+68>>2];k=J[d>>2];d=J[d+4>>2];H[e+63|0]=0;k=(d-k>>2>>>0)/3|0;d=e+63|0;Na(j,k,d);j=J[e+4>>2];k=J[j+56>>2];j=J[j+52>>2];H[e+63|0]=0;Na(e+36|0,k-j>>2,d);J[e+20>>2]=c;J[e+16>>2]=f;J[e+12>>2]=i;J[e+8>>2]=l;J[c+76>>2]=a+72;Kc(c+8|0,e);Rb(g,J[e+48>>2],J[e+52>>2]);J[e>>2]=10876;d=J[e+48>>2];if(d){J[e+52>>2]=d;na(d)}J[e>>2]=11128;d=J[e+36>>2];if(d){na(d)}d=J[e+24>>2];if(d){na(d)}d=0;break f}c=J[a+12>>2];f=J[c+28>>2];c=J[c+24>>2];J[e>>2]=-1;g=d;d=P(h,136);g=g+d|0;wb(g+116|0,f-c>>2,e);H[(d+J[a+172>>2]|0)+100|0]=0;c=g+104|0}j:{k:{if(cb(J[(da[J[J[a>>2]+40>>2]](a)|0)+48>>2])|J[i+56>>2]){break k}if(K[a+288|0]){d=J[a+8>>2];if((J[d+12>>2]-J[d+8>>2]|0)>4){break k}}d=1;c=ng(a,c);break j}d=0;c=mg(a,c)}if(c){break f}c=0;break c}J[((h|0)==-1?a+68|0:(J[a+172>>2]+P(h,136)|0)+132|0)>>2]=d;i=pe(oa(76),c,b);b=J[a+188>>2];l:{if((b|0)!=J[a+192>>2]){J[b>>2]=h;J[a+188>>2]=b+4;break l}c=b;b=J[a+184>>2];c=c-b|0;g=c>>2;d=g+1|0;if(d>>>0>=1073741824){break b}f=c>>>1|0;d=c>>>0>=2147483644?1073741823:d>>>0>>0?f:d;if(d){if(d>>>0>=1073741824){break a}f=oa(d<<2)}else{f=0}g=f+(g<<2)|0;J[g>>2]=h;c=ta(f,b,c);J[a+192>>2]=c+(d<<2);J[a+188>>2]=g+4;J[a+184>>2]=c;if(!b){break l}na(b)}a=da[J[J[a>>2]+40>>2]](a)|0;J[e>>2]=i;b=J[a+12>>2];m:{if(b>>>0>2]){J[e>>2]=0;J[b>>2]=i;J[a+12>>2]=b+4;break m}Ic(a+8|0,e)}a=J[e>>2];J[e>>2]=0;if(a){da[J[J[a>>2]+4>>2]](a)}c=1}ba=e- -64|0;return c|0}qa();B()}xa();B()}function Lj(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;e=ba+-64|0;ba=e;a:{b:{c:{d:{if(!K[a+352|0]){break d}c=1;h=da[J[J[a>>2]+40>>2]](a)|0;if((J[h+12>>2]-J[h+8>>2]|0)<=0){break d}kc(J[J[(da[J[J[a>>2]+40>>2]](a)|0)+8>>2]>>2],b);break c}c=b<<2;f=J[c+J[J[(da[J[J[a>>2]+40>>2]](a)|0)+56>>2]+84>>2]>>2];i=J[c+J[J[(da[J[J[a>>2]+40>>2]](a)|0)+4>>2]+8>>2]>>2];h=-1;c=J[a+176>>2];d=J[a+172>>2];e:{if((c|0)==(d|0)){break e}c=(c-d|0)/136|0;g=c>>>0<=1?1:c;c=0;while(1){if(J[d+P(c,136)>>2]==(b|0)){h=c;break e}c=c+1|0;if((g|0)!=(c|0)){continue}break}}f:{g:{h:{i:{if(!K[a+352|0]){c=J[i+56>>2];if(!(!f|!c)){if(!K[(d+P(h,136)|0)+28|0]|(f|0)!=1){break i}break h}if(c){break h}}c=a+40|0;break g}d=d+P(h,136)|0;c=J[d+56>>2];f=J[d+60>>2];J[e>>2]=-1;wb(d+116|0,f-c>>2,e);c=oa(80);f=J[a+8>>2];J[c+12>>2]=0;J[c+16>>2]=0;J[c>>2]=11984;J[c+4>>2]=0;J[c+20>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+32>>2]=0;J[c+36>>2]=0;J[c+40>>2]=0;J[c+44>>2]=0;J[c+48>>2]=0;J[c+52>>2]=0;J[c+76>>2]=0;i=d+104|0;J[c+72>>2]=i;J[c+68>>2]=f;J[c- -64>>2]=0;g=c+56|0;J[g>>2]=0;J[g+4>>2]=0;J[c+8>>2]=10876;J[e+40>>2]=0;J[e+44>>2]=0;J[e+32>>2]=0;J[e+36>>2]=0;j=e+24|0;J[j>>2]=0;J[j+4>>2]=0;J[e+16>>2]=0;J[e+20>>2]=0;J[e+56>>2]=0;J[e+8>>2]=0;J[e+12>>2]=0;J[e+48>>2]=0;J[e+52>>2]=0;J[e>>2]=10876;l=d+4|0;J[e+4>>2]=l;d=J[d+68>>2];k=J[d>>2];d=J[d+4>>2];H[e+63|0]=0;k=(d-k>>2>>>0)/3|0;d=e+63|0;Na(j,k,d);j=J[e+4>>2];k=J[j+56>>2];j=J[j+52>>2];H[e+63|0]=0;Na(e+36|0,k-j>>2,d);J[e+20>>2]=c;J[e+16>>2]=f;J[e+12>>2]=i;J[e+8>>2]=l;J[c+76>>2]=a+72;Kc(c+8|0,e);Rb(g,J[e+48>>2],J[e+52>>2]);J[e>>2]=10876;d=J[e+48>>2];if(d){J[e+52>>2]=d;na(d)}J[e>>2]=11128;d=J[e+36>>2];if(d){na(d)}d=J[e+24>>2];if(d){na(d)}d=0;break f}c=J[a+12>>2];f=J[c+28>>2];c=J[c+24>>2];J[e>>2]=-1;g=d;d=P(h,136);g=g+d|0;wb(g+116|0,f-c>>2,e);H[(d+J[a+172>>2]|0)+100|0]=0;c=g+104|0}j:{k:{if(cb(J[(da[J[J[a>>2]+40>>2]](a)|0)+48>>2])|J[i+56>>2]){break k}if(K[a+352|0]){d=J[a+8>>2];if((J[d+12>>2]-J[d+8>>2]|0)>4){break k}}d=1;c=ng(a,c);break j}d=0;c=mg(a,c)}if(c){break f}c=0;break c}J[((h|0)==-1?a+68|0:(J[a+172>>2]+P(h,136)|0)+132|0)>>2]=d;i=pe(oa(76),c,b);b=J[a+188>>2];l:{if((b|0)!=J[a+192>>2]){J[b>>2]=h;J[a+188>>2]=b+4;break l}c=b;b=J[a+184>>2];c=c-b|0;g=c>>2;d=g+1|0;if(d>>>0>=1073741824){break b}f=c>>>1|0;d=c>>>0>=2147483644?1073741823:d>>>0>>0?f:d;if(d){if(d>>>0>=1073741824){break a}f=oa(d<<2)}else{f=0}g=f+(g<<2)|0;J[g>>2]=h;c=ta(f,b,c);J[a+192>>2]=c+(d<<2);J[a+188>>2]=g+4;J[a+184>>2]=c;if(!b){break l}na(b)}a=da[J[J[a>>2]+40>>2]](a)|0;J[e>>2]=i;b=J[a+12>>2];m:{if(b>>>0>2]){J[e>>2]=0;J[b>>2]=i;J[a+12>>2]=b+4;break m}Ic(a+8|0,e)}a=J[e>>2];J[e>>2]=0;if(a){da[J[J[a>>2]+4>>2]](a)}c=1}ba=e- -64|0;return c|0}qa();B()}xa();B()}function oc(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;j=ba-16|0;ba=j;J[a+124>>2]=J[a+124>>2]+1;h=-1;d=J[a+120>>2];c=-1;a:{if((d|0)==-1){break a}c=d+1|0;h=(c>>>0)%3|0?c:d-2|0;c=d-1|0;if((d>>>0)%3|0){break a}c=d+2|0}e=J[a+104>>2];f=J[a+92>>2];g=f+(h<<2)|0;k=e+(J[g>>2]<<2)|0;i=J[k>>2];b:{c:{switch(b|0){case 0:case 1:J[k>>2]=i-1;d=(J[(c<<2)+f>>2]<<2)+e|0;J[d>>2]=J[d>>2]-1;if((b|0)!=1){break b}g=0;d:{if((c|0)==-1){d=0;break d}d=0;c=J[J[J[a+88>>2]+12>>2]+(c<<2)>>2];if((c|0)==-1){break d}while(1){e:{e=J[a+64>>2];if(da[J[J[e>>2]+36>>2]](e,(c>>>0)/3|0)|0){break e}d=d+1|0;e=c+1|0;c=(e>>>0)%3|0?e:c-2|0;if((c|0)==-1){break e}c=J[J[J[a+88>>2]+12>>2]+(c<<2)>>2];if((c|0)!=-1){continue}}break}e=J[a+104>>2];f=J[a+92>>2]}J[(J[(J[a+120>>2]<<2)+f>>2]<<2)+e>>2]=d+1;f:{if((h|0)==-1){break f}c=J[J[J[a+88>>2]+12>>2]+(h<<2)>>2];if((c|0)==-1){break f}e=J[a+108>>2]-e>>2;while(1){f=J[a+64>>2];d=(c>>>0)/3|0;if(da[J[J[f>>2]+36>>2]](f,d)|0){break f}f=c+1|0;J[J[a+92>>2]+(((f>>>0)%3|0?f:c-2|0)<<2)>>2]=e;g=g+1|0;f=J[a+88>>2];g:{if((P(d,3)|0)!=(c|0)){c=c-1|0;break g}c=c+2|0;if((c|0)==-1){break f}}c=J[J[f+12>>2]+(c<<2)>>2];if((c|0)!=-1){continue}break}}J[j+12>>2]=g+1;h:{c=J[a+108>>2];f=J[a+112>>2];if(c>>>0>>0){J[c>>2]=J[j+12>>2];J[a+108>>2]=c+4;break h}i:{d=c;c=J[a+104>>2];d=d-c|0;h=d>>2;e=h+1|0;if(e>>>0<1073741824){f=f-c|0;g=f>>>1|0;e=f>>>0>=2147483644?1073741823:e>>>0>>0?g:e;if(e){if(e>>>0>=1073741824){break i}f=oa(e<<2)}else{f=0}h=f+(h<<2)|0;J[h>>2]=J[j+12>>2];g=e<<2;e=ta(f,c,d);J[a+112>>2]=g+e;J[a+108>>2]=h+4;J[a+104>>2]=e;if(c){na(c)}break h}qa();B()}xa();B()}break b;case 5:d=(J[(d<<2)+f>>2]<<2)+e|0;J[d>>2]=J[d>>2]-1;d=(J[g>>2]<<2)+e|0;J[d>>2]=J[d>>2]-1;c=(J[(c<<2)+f>>2]<<2)+e|0;J[c>>2]=J[c>>2]-2;break b;case 3:d=(J[(d<<2)+f>>2]<<2)+e|0;J[d>>2]=J[d>>2]-1;d=(J[g>>2]<<2)+e|0;J[d>>2]=J[d>>2]-2;c=(J[(c<<2)+f>>2]<<2)+e|0;J[c>>2]=J[c>>2]-1;break b;case 7:break c;default:break b}}d=(J[(d<<2)+f>>2]<<2)+e|0;J[d>>2]=J[d>>2]-2;d=(J[g>>2]<<2)+e|0;J[d>>2]=J[d>>2]-2;c=(J[(c<<2)+f>>2]<<2)+e|0;J[c>>2]=J[c>>2]-2}j:{k:{c=J[a+116>>2];l:{if((c|0)==-1){break l}h=J[(c<<2)+11184>>2];c=J[a+132>>2];d=(c|0)>(i|0)?i:c;c=J[a+128>>2];c=J[a+136>>2]+P((c|0)<=(i|0)?d-c|0:0,12)|0;e=J[c+4>>2];d=J[c+8>>2];if(e>>>0>>0){J[e>>2]=h;J[c+4>>2]=e+4;break l}f=e;e=J[c>>2];i=f-e|0;g=i>>2;f=g+1|0;if(f>>>0>=1073741824){break k}d=d-e|0;k=d>>>1|0;f=d>>>0>=2147483644?1073741823:f>>>0>>0?k:f;if(f){if(f>>>0>=1073741824){break j}d=oa(f<<2)}else{d=0}g=d+(g<<2)|0;J[g>>2]=h;d=ta(d,e,i);J[c>>2]=d;J[c+4>>2]=g+4;J[c+8>>2]=d+(f<<2);if(!e){break l}na(e)}J[a+116>>2]=b;ba=j+16|0;return}qa();B()}xa();B()}function Wf(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;if((b|0)==-1){return 1}g=(b>>>0)/3|0;if(!(J[J[a+24>>2]+(g>>>3&268435452)>>2]>>>g&1)){f=J[a+48>>2];J[a+52>>2]=f;a:{if((f|0)!=J[a+56>>2]){J[f>>2]=b;J[a+52>>2]=f+4;break a}d=oa(4);J[d>>2]=b;c=d+4|0;J[a+56>>2]=c;J[a+52>>2]=c;J[a+48>>2]=d;if(!f){break a}na(f)}e=-1;d=J[a+4>>2];c=b+1|0;i=(c>>>0)%3|0?c:b-2|0;if((i|0)!=-1){e=J[J[d>>2]+(i<<2)>>2]}b:{h=b-P(g,3)|0;if(h){c=b-1|0;break b}c=b+2|0;if((c|0)!=-1){break b}return 0}if((e|0)==-1){return 0}j=J[J[d>>2]+(c<<2)>>2];if((j|0)==-1){return 0}c=J[a+36>>2];f=c+(e>>>3&536870908)|0;g=J[f>>2];d=1<>2]=d|g;mb(a+8|0,e,i);c=J[a+36>>2]}g=(j>>>3&536870908)+c|0;d=J[g>>2];c=1<>2]=c|d;mb(a+8|0,j,(h?-1:2)+b|0)}c=J[a+52>>2];if((c|0)==J[a+48>>2]){return 1}j=a+8|0;while(1){c:{d:{c=c-4|0;b=J[c>>2];if((b|0)==-1){break d}d=(b>>>0)/3|0;f=J[a+24>>2]+(d>>>3&268435452)|0;g=J[f>>2];d=1<>2]=d|g;while(1){i=J[a+4>>2];e=J[J[i>>2]+(b<<2)>>2];if((e|0)==-1){return 0}e:{f:{h=J[a+36>>2]+(e>>>3&536870908)|0;f=J[h>>2];g=1<>2]+(e<<2)>>2];h:{if((d|0)==-1){break h}c=d+1|0;c=(c>>>0)%3|0?c:d-2|0;if((c|0)==-1){break h}d=J[J[i+12>>2]+(c<<2)>>2];if((d|0)!=-1){break g}}J[h>>2]=f|g;mb(j,e,b);break f}J[h>>2]=f|g;mb(j,e,b);c=d+1|0;if((((c>>>0)%3|0?c:d-2|0)|0)==-1){break f}c=b-2|0;d=b+1|0;b=-1;c=(d>>>0)%3|0?d:c;if((c|0)!=-1){b=J[J[J[a+4>>2]+12>>2]+(c<<2)>>2]}c=(b>>>0)/3|0;d=1<>2];f=c>>>5|0;i=J[e+(f<<2)>>2];break e}c=-1;g=J[a+4>>2];d=b+1|0;d=(d>>>0)%3|0?d:b-2|0;if((d|0)!=-1){c=J[J[g+12>>2]+(d<<2)>>2]}i:{j:{if((b>>>0)%3|0){e=b-1|0;break j}e=b+2|0;b=-1;if((e|0)==-1){break i}}b=J[J[g+12>>2]+(e<<2)>>2]}g=(b|0)==-1;h=g?-1:(b>>>0)/3|0;k:{if((c|0)!=-1){e=J[a+24>>2];d=(c>>>0)/3|0;f=d>>>5|0;i=J[e+(f<<2)>>2];d=1<>2];f=h>>>5|0;i=J[e+(f<<2)>>2];if(!(d&i)){break e}}c=J[a+52>>2]-4|0;J[a+52>>2]=c;break c}if(g){b=c;break e}if(J[(h>>>3&536870908)+e>>2]>>>h&1){b=c;break e}e=J[a+52>>2];J[e-4>>2]=b;if(J[a+56>>2]!=(e|0)){J[e>>2]=c;c=e+4|0;break d}l:{h=J[a+48>>2];f=e-h|0;g=f>>2;d=g+1|0;if(d>>>0<1073741824){b=f>>>1|0;f=f>>>0>=2147483644?1073741823:b>>>0>d>>>0?b:d;if(f){if(f>>>0>=1073741824){break l}d=oa(f<<2)}else{d=0}b=d+(g<<2)|0;J[b>>2]=c;c=b+4|0;if((e|0)!=(h|0)){while(1){b=b-4|0;e=e-4|0;J[b>>2]=J[e>>2];if((e|0)!=(h|0)){continue}break}}J[a+56>>2]=d+(f<<2);J[a+52>>2]=c;J[a+48>>2]=b;if(!h){break c}na(h);c=J[a+52>>2];break c}qa();B()}xa();B()}J[(f<<2)+e>>2]=d|i;if((b|0)!=-1){continue}break}return 0}J[a+52>>2]=c}if(J[a+48>>2]!=(c|0)){continue}break}}return 1}function Mg(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;d=a+4|0;if((d|0)!=(b|0)){ic(d,J[b>>2],b+4|0);f=J[b+12>>2];k=b+16|0;d=0;h=a+16|0;a:{if(!J[h+8>>2]){break a}e=J[h>>2];j=h+4|0;J[h>>2]=j;J[J[h+4>>2]+8>>2]=0;J[h+4>>2]=0;J[h+8>>2]=0;c=J[e+4>>2];g=c?c:e;if(!g){nb(h,g);break a}e=J[g+8>>2];b:{if(!e){break b}c=J[e>>2];if((g|0)==(c|0)){J[e>>2]=0;d=e;c=J[e+4>>2];if(!c){break b}while(1){d=c;c=J[c>>2];if(c){continue}c=J[d+4>>2];if(c){continue}break}break b}J[e+4>>2]=0;d=e;if(!c){break b}while(1){d=c;c=J[c>>2];if(c){continue}c=J[d+4>>2];if(c){continue}break}}c:{if((f|0)==(k|0)){i=g;break c}c=f;while(1){i=d;J[g+16>>2]=J[c+16>>2];if((c|0)!=(g|0)){ic(g+20|0,J[c+20>>2],c+24|0)}f=j;d=f;e=J[d>>2];d:{if(!e){break d}l=J[g+16>>2];while(1){f=e;if((l|0)>2]){d=f;e=J[d>>2];if(e){continue}break d}e=J[f+4>>2];if(e){continue}break}d=f+4|0}J[g+8>>2]=f;J[g>>2]=0;J[g+4>>2]=0;J[d>>2]=g;f=J[J[h>>2]>>2];if(f){J[h>>2]=f;g=J[d>>2]}sb(J[h+4>>2],g);J[h+8>>2]=J[h+8>>2]+1;d=0;e:{if(!i){break e}e=J[i+8>>2];if(!e){break e}f=J[e>>2];if((i|0)==(f|0)){J[e>>2]=0;d=e;f=J[e+4>>2];if(!f){break e}while(1){d=f;f=J[d>>2];if(f){continue}f=J[d+4>>2];if(f){continue}break}break e}J[e+4>>2]=0;d=e;if(!f){break e}while(1){d=f;f=J[d>>2];if(f){continue}f=J[d+4>>2];if(f){continue}break}}e=J[c+4>>2];f:{if(e){while(1){f=e;e=J[e>>2];if(e){continue}break f}}while(1){f=J[c+8>>2];e=J[f>>2]!=(c|0);c=f;if(e){continue}break}}if(!i){break c}g=i;c=f;if((k|0)!=(c|0)){continue}break}}nb(h,i);if(!d){break a}while(1){c=J[d+8>>2];if(c){d=c;continue}break}nb(h,d)}if((f|0)!=(k|0)){while(1){n=ba-16|0;ba=n;i=oa(32);g=f+16|0;d=J[g>>2];m=i+24|0;J[m>>2]=0;J[m+4>>2]=0;J[i+16>>2]=d;l=i+20|0;J[l>>2]=m;e=h+4|0;c=J[g+4>>2];j=g+8|0;if((c|0)!=(j|0)){while(1){d=c+16|0;Qg(n+8|0,l,m,d,d);g=J[c+4>>2];g:{if(g){while(1){d=g;g=J[d>>2];if(g){continue}break g}}while(1){d=J[c+8>>2];g=J[d>>2]!=(c|0);c=d;if(g){continue}break}}c=d;if((j|0)!=(c|0)){continue}break}}c=e;d=J[c>>2];h:{if(!d){break h}g=J[i+16>>2];while(1){e=d;if((g|0)>2]){c=e;d=J[c>>2];if(d){continue}break h}d=J[e+4>>2];if(d){continue}break}c=e+4|0}J[i+8>>2]=e;J[i>>2]=0;J[i+4>>2]=0;J[c>>2]=i;d=i;e=J[J[h>>2]>>2];if(e){J[h>>2]=e;d=J[c>>2]}sb(J[h+4>>2],d);J[h+8>>2]=J[h+8>>2]+1;ba=n+16|0;e=J[f+4>>2];i:{if(e){while(1){c=e;e=J[c>>2];if(e){continue}break i}}while(1){c=J[f+8>>2];d=J[c>>2]!=(f|0);f=c;if(d){continue}break}}f=c;if((c|0)!=(k|0)){continue}break}}ic(a+28|0,J[b+24>>2],b+28|0)}}function nl(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;m=ba-16|0;ba=m;f=J[a+4>>2];a:{b:{if(f){if(da[J[J[a>>2]+52>>2]](a,b,J[J[f+4>>2]+80>>2])|0){break b}break a}if(!(da[J[J[a>>2]+52>>2]](a,b,0)|0)){break a}}n=1;if(!K[a+28|0]){break a}d=J[a+32>>2];i=J[a+8>>2];c=J[i+80>>2];f=0;J[m+8>>2]=0;J[m>>2]=0;J[m+4>>2]=0;c:{d:{e:{if(c){if(c>>>0>=1073741824){break e}c=c<<2;f=oa(c);pa(f,0,c)}e=J[b+4>>2];c=J[b>>2];f:{if((e|0)==(c|0)){break f}b=e-c>>2;if(K[i+84|0]){e=b>>>0<=1?1:b;h=e&3;b=0;if(e-1>>>0>=3){j=e&-4;e=0;while(1){J[(J[c+(b<<2)>>2]<<2)+f>>2]=b;k=b|1;J[(J[c+(k<<2)>>2]<<2)+f>>2]=k;k=b|2;J[(J[c+(k<<2)>>2]<<2)+f>>2]=k;k=b|3;J[(J[c+(k<<2)>>2]<<2)+f>>2]=k;b=b+4|0;e=e+4|0;if((j|0)!=(e|0)){continue}break}}if(!h){break f}while(1){J[(J[c+(b<<2)>>2]<<2)+f>>2]=b;b=b+1|0;g=g+1|0;if((h|0)!=(g|0)){continue}break}break f}g=b>>>0<=1?1:b;j=g&3;h=J[i+68>>2];e=0;b=0;if(g-1>>>0>=3){k=g&-4;g=0;while(1){J[(J[h+(J[c+(b<<2)>>2]<<2)>>2]<<2)+f>>2]=b;l=b|1;J[(J[h+(J[c+(l<<2)>>2]<<2)>>2]<<2)+f>>2]=l;l=b|2;J[(J[h+(J[c+(l<<2)>>2]<<2)>>2]<<2)+f>>2]=l;l=b|3;J[(J[h+(J[c+(l<<2)>>2]<<2)>>2]<<2)+f>>2]=l;b=b+4|0;g=g+4|0;if((k|0)!=(g|0)){continue}break}}if(!j){break f}while(1){J[(J[h+(J[c+(b<<2)>>2]<<2)>>2]<<2)+f>>2]=b;b=b+1|0;e=e+1|0;if((j|0)!=(e|0)){continue}break}}b=J[a+4>>2];g:{if(!K[d+84|0]){break g}c=J[J[b+4>>2]+80>>2];H[d+84|0]=0;g=J[d+68>>2];e=J[d+72>>2]-g>>2;if(e>>>0>>0){Ma(d+68|0,c-e|0,2736);b=J[a+4>>2];break g}if(c>>>0>=e>>>0){break g}J[d+72>>2]=g+(c<<2)}h=J[J[b+4>>2]+80>>2];if(!h){break d}c=J[d+68>>2];if(K[i+84|0]){a=0;b=0;if(h>>>0>=4){g=h&-4;e=0;while(1){d=b<<2;J[d+c>>2]=J[f+d>>2];i=d|4;J[i+c>>2]=J[f+i>>2];i=d|8;J[i+c>>2]=J[f+i>>2];d=d|12;J[d+c>>2]=J[f+d>>2];b=b+4|0;e=e+4|0;if((g|0)!=(e|0)){continue}break}}e=h&3;if(!e){break c}while(1){d=b<<2;J[d+c>>2]=J[f+d>>2];b=b+1|0;a=a+1|0;if((e|0)!=(a|0)){continue}break}break c}a=J[i+68>>2];e=0;b=0;if(h>>>0>=4){i=h&-4;g=0;while(1){d=b<<2;J[d+c>>2]=J[(J[a+d>>2]<<2)+f>>2];j=d|4;J[j+c>>2]=J[(J[a+j>>2]<<2)+f>>2];j=d|8;J[j+c>>2]=J[(J[a+j>>2]<<2)+f>>2];d=d|12;J[d+c>>2]=J[(J[a+d>>2]<<2)+f>>2];b=b+4|0;g=g+4|0;if((i|0)!=(g|0)){continue}break}}d=h&3;if(!d){break c}while(1){g=b<<2;J[g+c>>2]=J[(J[a+g>>2]<<2)+f>>2];b=b+1|0;e=e+1|0;if((d|0)!=(e|0)){continue}break}break c}qa();B()}if(!f){break a}}na(f)}ba=m+16|0;return n|0}function Pg(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;a:{b:{c:{d:{e:{f:{i=a+4|0;g:{if((i|0)==(b|0)){break g}f=K[b+27|0];g=f<<24>>24<0;h=K[e+11|0];j=h<<24>>24;k=(j|0)<0;f=g?J[b+20>>2]:f;h=k?J[e+4>>2]:h;l=f>>>0>>0;m=l?f:h;if(m){k=k?J[e>>2]:e;g=g?J[b+16>>2]:b+16|0;n=Ba(k,g,m);if(!n){if(f>>>0>h>>>0){break g}break f}if((n|0)>=0){break f}break g}if(f>>>0<=h>>>0){break e}}d=J[b>>2];h:{f=b;i:{if((f|0)==J[a>>2]){break i}j:{if(!d){a=b;while(1){f=J[a+8>>2];h=J[f>>2]==(a|0);a=f;if(h){continue}break}break j}a=d;while(1){f=a;a=J[f+4>>2];if(a){continue}break}}a=K[e+11|0];k=a<<24>>24;h=(k|0)<0;j=K[f+27|0];g=j<<24>>24<0;k:{a=h?J[e+4>>2]:a;j=g?J[f+20>>2]:j;l=a>>>0>>0?a:j;if(l){h=Ba(g?J[f+16>>2]:f+16|0,h?J[e>>2]:e,l);if(h){break k}}if(a>>>0>j>>>0){break i}break h}if((h|0)>=0){break h}}if(!d){J[c>>2]=b;return b}J[c>>2]=f;return f+4|0}d=J[i>>2];if(!d){J[c>>2]=i;return i}e=(k|0)<0?J[e>>2]:e;b=i;while(1){f=d;d=K[f+27|0];i=d<<24>>24<0;d=i?J[f+20>>2]:d;h=d>>>0>>0;l:{m:{n:{o:{g=h?d:a;p:{if(g){i=i?J[f+16>>2]:f+16|0;j=Ba(e,i,g);if(!j){if(a>>>0>>0){break p}break o}if((j|0)>=0){break o}break p}if(a>>>0>=d>>>0){break n}}b=f;d=J[f>>2];if(d){continue}break b}d=Ba(i,e,g);if(d){break m}}if(h){break l}break b}if((d|0)>=0){break b}}b=f+4|0;d=J[f+4>>2];if(d){continue}break}break b}a=Ba(g,k,m);if(a){break d}}if(l){break c}break a}if((a|0)>=0){break a}}d=J[b+4>>2];q:{if(!d){a=b;while(1){f=J[a+8>>2];g=J[f>>2]!=(a|0);a=f;if(g){continue}break}break q}a=d;while(1){f=a;a=J[f>>2];if(a){continue}break}}r:{s:{if((f|0)==(i|0)){break s}g=K[f+27|0];a=g<<24>>24<0;t:{g=a?J[f+20>>2]:g;k=h>>>0>g>>>0?g:h;if(k){a=Ba((j|0)<0?J[e>>2]:e,a?J[f+16>>2]:f+16|0,k);if(a){break t}}if(h>>>0>>0){break s}break r}if((a|0)>=0){break r}}if(!d){J[c>>2]=b;return b+4|0}J[c>>2]=f;return f}a=J[i>>2];if(!a){J[c>>2]=i;return i}d=(j|0)<0?J[e>>2]:e;b=i;while(1){f=a;a=K[f+27|0];e=a<<24>>24<0;a=e?J[f+20>>2]:a;i=a>>>0>>0;u:{v:{w:{x:{g=i?a:h;y:{if(g){e=e?J[f+16>>2]:f+16|0;j=Ba(d,e,g);if(!j){if(a>>>0>h>>>0){break y}break x}if((j|0)>=0){break x}break y}if(a>>>0<=h>>>0){break w}}b=f;a=J[f>>2];if(a){continue}break b}a=Ba(e,d,g);if(a){break v}}if(i){break u}break b}if((a|0)>=0){break b}}b=f+4|0;a=J[f+4>>2];if(a){continue}break}}J[c>>2]=f;return b}J[c>>2]=b;J[d>>2]=b;return d}function Dc(a,b){var c=0,d=0,e=0,f=0,g=0,h=0;a:{b:{d=b;g=J[b>>2];if(g){c=J[b+4>>2];if(!c){break b}while(1){d=c;c=J[c>>2];if(c){continue}break}}g=J[d+4>>2];if(g){break b}g=0;e=1;break a}J[g+8>>2]=J[d+8>>2];e=0}f=J[d+8>>2];c=J[f>>2];c:{if((d|0)==(c|0)){J[f>>2]=g;if((a|0)==(d|0)){c=0;a=g;break c}c=J[f+4>>2];break c}J[f+4>>2]=g}h=!K[d+12|0];if((b|0)!=(d|0)){f=J[b+8>>2];J[d+8>>2]=f;J[f+((J[J[b+8>>2]>>2]!=(b|0))<<2)>>2]=d;f=J[b>>2];J[d>>2]=f;J[f+8>>2]=d;f=J[b+4>>2];J[d+4>>2]=f;if(f){J[f+8>>2]=d}H[d+12|0]=K[b+12|0];a=(a|0)==(b|0)?d:a}if(!(h|!a)){if(e){while(1){b=K[c+12|0];d:{e=J[c+8>>2];if(J[e>>2]!=(c|0)){if(!b){H[c+12|0]=1;H[e+12|0]=0;d=J[e+4>>2];b=J[d>>2];J[e+4>>2]=b;if(b){J[b+8>>2]=e}J[d+8>>2]=J[e+8>>2];b=J[e+8>>2];J[(((e|0)!=J[b>>2])<<2)+b>>2]=d;J[d>>2]=e;J[e+8>>2]=d;b=J[c>>2];a=(b|0)==(a|0)?c:a;c=J[b+4>>2]}e:{f:{d=J[c>>2];g:{if(!(K[d+12|0]?0:d)){b=J[c+4>>2];if(K[b+12|0]?0:b){break g}H[c+12|0]=0;c=J[c+8>>2];h:{if((c|0)==(a|0)){c=a;break h}if(K[c+12|0]){break d}}H[c+12|0]=1;return}b=J[c+4>>2];if(!b){break f}}if(K[b+12|0]){break f}d=c;break e}H[d+12|0]=1;H[c+12|0]=0;a=J[d+4>>2];J[c>>2]=a;if(a){J[a+8>>2]=c}J[d+8>>2]=J[c+8>>2];a=J[c+8>>2];J[((J[a>>2]!=(c|0))<<2)+a>>2]=d;J[d+4>>2]=c;J[c+8>>2]=d;b=c}c=J[d+8>>2];H[d+12|0]=K[c+12|0];H[c+12|0]=1;H[b+12|0]=1;b=J[c+4>>2];a=J[b>>2];J[c+4>>2]=a;if(a){J[a+8>>2]=c}J[b+8>>2]=J[c+8>>2];a=J[c+8>>2];J[(((c|0)!=J[a>>2])<<2)+a>>2]=b;J[b>>2]=c;J[c+8>>2]=b;return}if(!b){H[c+12|0]=1;H[e+12|0]=0;b=J[c+4>>2];J[e>>2]=b;if(b){J[b+8>>2]=e}J[c+8>>2]=J[e+8>>2];b=J[e+8>>2];J[(((e|0)!=J[b>>2])<<2)+b>>2]=c;J[c+4>>2]=e;J[e+8>>2]=c;a=(a|0)==(e|0)?c:a;c=J[e>>2]}b=J[c>>2];i:{if(!(!b|K[b+12|0])){d=c;break i}d=J[c+4>>2];if(!(K[d+12|0]?0:d)){H[c+12|0]=0;c=J[c+8>>2];if((a|0)!=(c|0)?K[c+12|0]:0){break d}H[c+12|0]=1;return}if(b){if(!K[b+12|0]){d=c;break i}d=J[c+4>>2]}H[d+12|0]=1;H[c+12|0]=0;a=J[d>>2];J[c+4>>2]=a;if(a){J[a+8>>2]=c}J[d+8>>2]=J[c+8>>2];a=J[c+8>>2];J[((J[a>>2]!=(c|0))<<2)+a>>2]=d;J[d>>2]=c;J[c+8>>2]=d;b=c}c=J[d+8>>2];H[d+12|0]=K[c+12|0];H[c+12|0]=1;H[b+12|0]=1;b=J[c>>2];a=J[b+4>>2];J[c>>2]=a;if(a){J[a+8>>2]=c}J[b+8>>2]=J[c+8>>2];a=J[c+8>>2];J[(((c|0)!=J[a>>2])<<2)+a>>2]=b;J[b+4>>2]=c;J[c+8>>2]=b;return}b=J[c+8>>2];c=J[((J[b>>2]==(c|0))<<2)+b>>2];continue}}H[g+12|0]=1}}function wc(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;h=ba-32|0;ba=h;a:{b:{if(J[a+8>>2]<<5>>>0>=b>>>0){break b}if((b|0)<0){break a}b=(b-1>>>5|0)+1|0;c=oa(b<<2);J[h+24>>2]=b;J[h+20>>2]=0;J[h+16>>2]=c;b=J[a>>2];J[h+12>>2]=0;J[h+8>>2]=b;c=J[a+4>>2];J[h+4>>2]=c&31;J[h>>2]=b+(c>>>3&536870908);e=ba-32|0;ba=e;i=J[h+4>>2];g=J[h+12>>2];j=J[h>>2];d=J[h+8>>2];b=(i-g|0)+(j-d<<3)|0;f=J[h+20>>2];c=b+f|0;J[h+20>>2]=c;if(!((c-1^f-1)>>>0<32?f:0)){J[J[h+16>>2]+((c>>>0>=33?c-1>>>5|0:0)<<2)>>2]=0}c=J[h+16>>2]+(f>>>3&536870908)|0;f=f&31;c:{if((f|0)==(g|0)){if((b|0)<=0){break c}if(g){i=32-g|0;f=(b|0)<(i|0)?b:i;i=-1<>>i-f;J[c>>2]=J[c>>2]&(i^-1)|i&J[d>>2];d=d+4|0;c=(g+f>>>3&536870908)+c|0;b=b-f|0}g=(b|0)/32|0;if(b+31>>>0>=63){ta(c,d,g<<2)}b=b-(g<<5)|0;if((b|0)<=0){break c}f=c;c=g<<2;g=f+c|0;b=-1>>>32-b|0;J[g>>2]=J[g>>2]&(b^-1)|b&J[c+d>>2];break c}J[e+28>>2]=g;J[e+24>>2]=d;J[e+20>>2]=i;J[e+16>>2]=j;J[e+12>>2]=f;J[e+8>>2]=c;b=J[e+28>>2];c=J[e+24>>2];g=(J[e+20>>2]-b|0)+(J[e+16>>2]-c<<3)|0;d:{if((g|0)<=0){b=J[e+12>>2];d=J[e+8>>2];break d}e:{if(!b){b=J[e+12>>2];break e}d=J[e+12>>2];j=32-d|0;k=32-b|0;f=(g|0)<(k|0)?g:k;i=f>>>0>j>>>0?j:f;l=J[e+8>>2];m=J[l>>2]&(-1<>>j-i^-1);j=J[c>>2]&(-1<>>k-f);J[l>>2]=m|(b>>>0>>0?j<>>b-d|0);c=d+i|0;b=c&31;J[e+12>>2]=b;d=l+(c>>>3&536870908)|0;J[e+8>>2]=d;c=f-i|0;if((c|0)>0){J[d>>2]=J[d>>2]&(-1>>>32-c^-1)|j>>>i+J[e+28>>2];J[e+12>>2]=c;b=c}g=g-f|0;c=J[e+24>>2]+4|0;J[e+24>>2]=c}i=-1<=32){j=i^-1;while(1){d=J[e+8>>2];c=J[c>>2];J[d>>2]=j&J[d>>2]|c<>2]=d+4;J[d+4>>2]=i&J[d+4>>2]|c>>>f;c=J[e+24>>2]+4|0;J[e+24>>2]=c;d=g>>>0>63;g=g-32|0;if(d){continue}break}}d=J[e+8>>2];if((g|0)<=0){break d}j=f;f=(g|0)>(f|0)?f:g;j=J[d>>2]&(i&-1>>>j-f^-1);i=J[c>>2]&-1>>>32-g;J[d>>2]=j|i<>2]=c;d=(b>>>3&536870908)+d|0;J[e+8>>2]=d;b=g-f|0;if((b|0)<=0){b=c;break d}J[d>>2]=J[d>>2]&(-1>>>32-b^-1)|i>>>f;J[e+12>>2]=b}J[e+4>>2]=b;J[e>>2]=d}ba=e+32|0;b=J[a>>2];J[a>>2]=J[h+16>>2];J[h+16>>2]=b;c=J[a+4>>2];J[a+4>>2]=J[h+20>>2];J[h+20>>2]=c;c=J[a+8>>2];J[a+8>>2]=J[h+24>>2];J[h+24>>2]=c;if(!b){break b}na(b)}ba=h+32|0;return}qa();B()}function Yj(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;g=ba-16|0;ba=g;b=J[a+64>>2];a:{if(!b){break a}i=da[J[J[b>>2]+32>>2]](b)|0;if(!i){break a}n=(J[i+28>>2]-J[i+24>>2]>>2)-J[i+44>>2]|0;b=J[a+56>>2];d=J[b+8>>2];b:{if((J[b+12>>2]-d|0)<5){break b}J[g+8>>2]=0;J[g>>2]=0;J[g+4>>2]=0;c:{d:{while(1){e:{f:{if(!J[J[(c<<2)+d>>2]+56>>2]){break f}j=da[J[J[a>>2]+56>>2]](a,c)|0;if(!j){break f}if(J[g+8>>2]!=(f|0)){J[f>>2]=j;f=f+4|0;J[g+4>>2]=f;break f}b=J[g>>2];h=f-b|0;f=h>>2;d=f+1|0;if(d>>>0>=1073741824){break e}e=h>>>1|0;d=h>>>0>=2147483644?1073741823:d>>>0>>0?e:d;if(d){if(d>>>0>=1073741824){break d}e=oa(d<<2)}else{e=0}f=e+(f<<2)|0;J[f>>2]=j;h=ta(e,b,h);J[g+8>>2]=h+(d<<2);f=f+4|0;J[g+4>>2]=f;J[g>>2]=h;if(!b){break f}na(b)}m=J[a+56>>2];d=J[m+8>>2];c=c+1|0;if((c|0)>2]-d>>2){continue}break c}break}qa();B()}xa();B()}j=J[g>>2];o=J[i+24>>2];b=J[i+28>>2];if((o|0)!=(b|0)){b=b-o>>2;q=b>>>0<=1?1:b;b=f-j>>2;r=b>>>0<=1?1:b;while(1){e=J[(p<<2)+o>>2];if((e|0)!=-1){g:{if((e|0)<0){c=(e>>>0)%3|0;b=-1;break g}b=(e>>>0)/3|0;c=e-P(b,3)|0;b=J[(J[m+96>>2]+P(b,12)|0)+(c<<2)>>2]}h:{i:{if(c){c=e-1|0;break i}c=e+2|0;if((c|0)!=-1){break i}l=0;break h}l=0;c=J[J[i+12>>2]+(c<<2)>>2];if((c|0)==-1){break h}j:{if((c>>>0)%3|0){d=c-1|0;break j}d=c+2|0;if((d|0)==-1){break h}}h=e;while(1){c=(d|0)<0?-1:J[(J[m+96>>2]+P((d>>>0)/3|0,12)|0)+((d>>>0)%3<<2)>>2];k:{if((b|0)==(c|0)){c=0;if((f|0)==(j|0)){c=b;break k}l:{while(1){k=J[J[(c<<2)+j>>2]+28>>2];if(J[k+(d<<2)>>2]!=J[k+(h<<2)>>2]){break l}c=c+1|0;if((r|0)!=(c|0)){continue}break}c=b;break k}c=b}l=l+1|0}if((d|0)==(e|0)|(d|0)==-1){break h}m:{if((d>>>0)%3|0){b=d-1|0;break m}b=d+2|0;if((b|0)==-1){break h}}k=J[J[i+12>>2]+(b<<2)>>2];if((k|0)==-1){break h}b=c;h=d;c=k+((k>>>0)%3|0?-1:2)|0;d=c;if((c|0)!=-1){continue}break}}c=1;b=e+1|0;b=(b>>>0)%3|0?b:e-2|0;n:{if((b|0)==-1){break n}b=J[J[i+12>>2]+(b<<2)>>2];if((b|0)==-1){break n}c=b+1|0;c=(((c>>>0)%3|0?c:b-2|0)|0)==-1}n=(l+n|0)-((c^-1)&(l|0)!=0)|0}p=p+1|0;if((q|0)!=(p|0)){continue}break}}if(!j){break b}na(j)}J[a+52>>2]=n}ba=g+16|0}function Ze(a,b,c,d,e,f,g,h,i){var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;j=ba-128|0;ba=j;a:{b:{c:{if(!Hb(f,g,h,i,0,0,0,0)){break c}l=i&65535;n=i>>>16&32767;d:{e:{if((n|0)!=32767){k=4;if(n){break e}k=f|h|(g|l)?3:2;break d}k=!(f|h|(g|l))}}s=e>>>16|0;o=s&32767;if((o|0)==32767){break c}if(k){break b}}Ea(j+16|0,b,c,d,e,f,g,h,i);b=J[j+16>>2];d=J[j+20>>2];e=J[j+24>>2];c=J[j+28>>2];Ne(j,b,d,e,c,b,d,e,c);d=J[j+8>>2];e=J[j+12>>2];h=J[j>>2];i=J[j+4>>2];break a}k=d;p=e&2147483647;n=h;m=i&2147483647;if((Hb(b,c,k,p,f,g,h,m)|0)<=0){if(Hb(b,c,k,p,f,g,n,m)){h=b;i=c;break a}Ea(j+112|0,b,c,d,e,0,0,0,0);d=J[j+120>>2];e=J[j+124>>2];h=J[j+112>>2];i=J[j+116>>2];break a}q=i>>>16&32767;if(o){i=c;h=b}else{Ea(j+96|0,b,c,k,p,0,0,0,1081540608);k=J[j+104>>2];h=J[j+108>>2];p=h;o=(h>>>16|0)-120|0;i=J[j+100>>2];h=J[j+96>>2]}if(!q){Ea(j+80|0,f,g,n,m,0,0,0,1081540608);n=J[j+88>>2];f=J[j+92>>2];m=f;q=(f>>>16|0)-120|0;g=J[j+84>>2];f=J[j+80>>2]}r=n;t=m&65535|65536;p=p&65535|65536;if((o|0)>(q|0)){while(1){m=k-r|0;l=(g|0)==(i|0)&f>>>0>h>>>0|g>>>0>i>>>0;n=m-l|0;l=(p-((k>>>0>>0)+t|0)|0)-(l>>>0>m>>>0)|0;f:{if((l|0)>0|(l|0)>=0){k=h;h=h-f|0;i=i-((f>>>0>k>>>0)+g|0)|0;if(!(h|n|(i|l))){Ea(j+32|0,b,c,d,e,0,0,0,0);d=J[j+40>>2];e=J[j+44>>2];h=J[j+32>>2];i=J[j+36>>2];break a}l=l<<1|n>>>31;k=n<<1|i>>>31;break f}l=p<<1|k>>>31;k=k<<1|i>>>31}p=l;l=i<<1|h>>>31;h=h<<1;i=l;o=o-1|0;if((o|0)>(q|0)){continue}break}o=q}m=k-r|0;l=(g|0)==(i|0)&f>>>0>h>>>0|g>>>0>i>>>0;n=m-l|0;l=(p-((k>>>0>>0)+t|0)|0)-(l>>>0>m>>>0)|0;m=l;g:{if((l|0)<0){n=k;m=p;break g}k=h;h=h-f|0;i=i-((f>>>0>k>>>0)+g|0)|0;if(h|n|(i|m)){break g}Ea(j+48|0,b,c,d,e,0,0,0,0);d=J[j+56>>2];e=J[j+60>>2];h=J[j+48>>2];i=J[j+52>>2];break a}if((m|0)==65535|m>>>0<65535){while(1){b=i>>>31|0;o=o-1|0;p=i<<1|h>>>31;h=h<<1;i=p;c=b;b=m<<1|n>>>31;n=c|n<<1;m=b;if(b>>>0<65536){continue}break}}b=s&32768;if((o|0)<=0){Ea(j- -64|0,h,i,n,m&65535|(b|o+120)<<16,0,0,0,1065811968);d=J[j+72>>2];e=J[j+76>>2];h=J[j+64>>2];i=J[j+68>>2];break a}d=n;e=m&65535|(b|o)<<16}J[a>>2]=h;J[a+4>>2]=i;J[a+8>>2]=d;J[a+12>>2]=e;ba=j+128|0}function Ki(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0;f=ba+-64|0;ba=f;a:{b:{c:{d:{e:{f:{if(!b){break f}e=rb(c);if(e>>>0>=2147483632){break e}g:{h:{if(e>>>0>=11){a=(e|15)+1|0;g=oa(a);J[f+56>>2]=a|-2147483648;J[f+48>>2]=g;a=e+g|0;break h}H[f+59|0]=e;g=f+48|0;a=e+g|0;if(!e){break g}}ua(g,c,e)}H[a|0]=0;e=rb(d);if(e>>>0>=2147483632){break d}i:{j:{if(e>>>0>=11){a=(e|15)+1|0;g=oa(a);J[f+40>>2]=a|-2147483648;J[f+32>>2]=g;a=e+g|0;break j}H[f+43|0]=e;g=f+32|0;a=e+g|0;if(!e){break i}}ua(g,d,e)}H[a|0]=0;e=rb(c);if(e>>>0>=2147483632){break c}k:{l:{if(e>>>0>=11){a=(e|15)+1|0;g=oa(a);J[f+24>>2]=a|-2147483648;J[f+16>>2]=g;J[f+20>>2]=e;a=e+g|0;break l}H[f+27|0]=e;g=f+16|0;a=e+g|0;if(!e){break k}}ua(g,c,e)}H[a|0]=0;c=rb(d);if(c>>>0>=2147483632){break b}m:{n:{if(c>>>0>=11){e=(c|15)+1|0;a=oa(e);J[f+8>>2]=e|-2147483648;J[f>>2]=a;J[f+4>>2]=c;g=a+c|0;break n}H[f+11|0]=c;g=c+f|0;a=f;if(!c){break m}}ua(a,d,c)}H[g|0]=0;e=ba-48|0;ba=e;d=ob(b,f+16|0);if((d|0)!=(b+4|0)){a=J[d+4>>2];o:{if(!a){a=d;while(1){c=J[a+8>>2];g=J[c>>2]!=(a|0);a=c;if(g){continue}break}break o}while(1){c=a;a=J[a>>2];if(a){continue}break}}if((d|0)==J[b>>2]){J[b>>2]=c}J[b+8>>2]=J[b+8>>2]-1;Dc(J[b+4>>2],d);a=J[d+28>>2];if(a){J[d+32>>2]=a;na(a)}if(H[d+27|0]<0){na(J[d+16>>2])}na(d)}g=0;J[e+8>>2]=0;J[e>>2]=0;J[e+4>>2]=0;c=K[f+11|0];d=c<<24>>24;p:{q:{h=J[f+4>>2];a=(d|0)<0?h:c;if(a){if((a|0)<0){break q}c=a;g=oa(a);a=pa(g,0,a);c=c+a|0;J[e+8>>2]=c;J[e+4>>2]=c;J[e>>2]=a;h=J[f+4>>2];c=K[f+11|0];d=c}a=d<<24>>24<0;ua(g,a?J[f>>2]:f,a?h:c);break p}qa();B()}r:{if(H[f+27|0]>=0){J[e+24>>2]=J[f+24>>2];a=J[f+20>>2];J[e+16>>2]=J[f+16>>2];J[e+20>>2]=a;break r}Ga(e+16|0,J[f+16>>2],J[f+20>>2])}Ob(e+28|0,e);a=e+16|0;Cc(e+40|0,b,a,a);a=J[e+28>>2];if(a){J[e+32>>2]=a;na(a)}if(H[e+27|0]<0){na(J[e+16>>2])}a=J[e>>2];if(a){J[e+4>>2]=a;na(a)}ba=e+48|0;if(H[f+11|0]<0){na(J[f>>2])}if(H[f+27|0]<0){na(J[f+16>>2])}if(H[f+43|0]<0){na(J[f+32>>2])}if(H[f+59|0]>=0){break f}na(J[f+48>>2])}ba=f- -64|0;a=(b|0)!=0;break a}gb();B()}gb();B()}gb();B()}gb();B()}return a|0}function nf(a,b){var c=0,d=0,e=0,f=0;f=ba-16|0;ba=f;e=oa(32);J[f>>2]=e;J[f+4>>2]=30;J[f+8>>2]=-2147483616;c=K[1240]|K[1241]<<8|(K[1242]<<16|K[1243]<<24);d=K[1236]|K[1237]<<8|(K[1238]<<16|K[1239]<<24);H[e+22|0]=d;H[e+23|0]=d>>>8;H[e+24|0]=d>>>16;H[e+25|0]=d>>>24;H[e+26|0]=c;H[e+27|0]=c>>>8;H[e+28|0]=c>>>16;H[e+29|0]=c>>>24;c=K[1234]|K[1235]<<8|(K[1236]<<16|K[1237]<<24);d=K[1230]|K[1231]<<8|(K[1232]<<16|K[1233]<<24);H[e+16|0]=d;H[e+17|0]=d>>>8;H[e+18|0]=d>>>16;H[e+19|0]=d>>>24;H[e+20|0]=c;H[e+21|0]=c>>>8;H[e+22|0]=c>>>16;H[e+23|0]=c>>>24;c=K[1226]|K[1227]<<8|(K[1228]<<16|K[1229]<<24);d=K[1222]|K[1223]<<8|(K[1224]<<16|K[1225]<<24);H[e+8|0]=d;H[e+9|0]=d>>>8;H[e+10|0]=d>>>16;H[e+11|0]=d>>>24;H[e+12|0]=c;H[e+13|0]=c>>>8;H[e+14|0]=c>>>16;H[e+15|0]=c>>>24;c=K[1218]|K[1219]<<8|(K[1220]<<16|K[1221]<<24);d=K[1214]|K[1215]<<8|(K[1216]<<16|K[1217]<<24);H[e|0]=d;H[e+1|0]=d>>>8;H[e+2|0]=d>>>16;H[e+3|0]=d>>>24;H[e+4|0]=c;H[e+5|0]=c>>>8;H[e+6|0]=c>>>16;H[e+7|0]=c>>>24;H[e+30|0]=0;e=a+4|0;vb(e,f,b);if(H[f+11|0]<0){na(J[f>>2])}a=oa(32);J[f>>2]=a;J[f+4>>2]=29;J[f+8>>2]=-2147483616;c=K[1308]|K[1309]<<8|(K[1310]<<16|K[1311]<<24);d=K[1304]|K[1305]<<8|(K[1306]<<16|K[1307]<<24);H[a+21|0]=d;H[a+22|0]=d>>>8;H[a+23|0]=d>>>16;H[a+24|0]=d>>>24;H[a+25|0]=c;H[a+26|0]=c>>>8;H[a+27|0]=c>>>16;H[a+28|0]=c>>>24;c=K[1303]|K[1304]<<8|(K[1305]<<16|K[1306]<<24);d=K[1299]|K[1300]<<8|(K[1301]<<16|K[1302]<<24);H[a+16|0]=d;H[a+17|0]=d>>>8;H[a+18|0]=d>>>16;H[a+19|0]=d>>>24;H[a+20|0]=c;H[a+21|0]=c>>>8;H[a+22|0]=c>>>16;H[a+23|0]=c>>>24;c=K[1295]|K[1296]<<8|(K[1297]<<16|K[1298]<<24);d=K[1291]|K[1292]<<8|(K[1293]<<16|K[1294]<<24);H[a+8|0]=d;H[a+9|0]=d>>>8;H[a+10|0]=d>>>16;H[a+11|0]=d>>>24;H[a+12|0]=c;H[a+13|0]=c>>>8;H[a+14|0]=c>>>16;H[a+15|0]=c>>>24;c=K[1287]|K[1288]<<8|(K[1289]<<16|K[1290]<<24);d=K[1283]|K[1284]<<8|(K[1285]<<16|K[1286]<<24);H[a|0]=d;H[a+1|0]=d>>>8;H[a+2|0]=d>>>16;H[a+3|0]=d>>>24;H[a+4|0]=c;H[a+5|0]=c>>>8;H[a+6|0]=c>>>16;H[a+7|0]=c>>>24;H[a+29|0]=0;vb(e,f,b);if(H[f+11|0]<0){na(J[f>>2])}ba=f+16|0}function sd(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;j=ba-32|0;ba=j;J[a+4>>2]=0;J[a+8>>2]=0;c=a+16|0;J[c>>2]=0;J[c+4>>2]=0;i=a+4|0;J[a>>2]=i;J[a+12>>2]=c;f=J[b>>2];k=b+4|0;if((f|0)!=(k|0)){while(1){g=ba-16|0;ba=g;c=f+16|0;h=Pg(a,i,g+12|0,g+8|0,c);d=J[h>>2];if(d){c=0}else{d=oa(40);e=d+16|0;a:{if(H[c+11|0]>=0){l=J[c+4>>2];J[e>>2]=J[c>>2];J[e+4>>2]=l;J[e+8>>2]=J[c+8>>2];break a}Ga(e,J[c>>2],J[c+4>>2])}Ob(d+28|0,c+12|0);J[d+8>>2]=J[g+12>>2];J[d>>2]=0;J[d+4>>2]=0;J[h>>2]=d;c=d;e=J[J[a>>2]>>2];if(e){J[a>>2]=e;c=J[h>>2]}sb(J[a+4>>2],c);J[a+8>>2]=J[a+8>>2]+1;c=1}H[j+28|0]=c;J[j+24>>2]=d;ba=g+16|0;c=J[f+4>>2];b:{if(c){while(1){f=c;c=J[c>>2];if(c){continue}break b}}while(1){c=f;f=J[f+8>>2];if((c|0)!=J[f>>2]){continue}break}}if((f|0)!=(k|0)){continue}break}}f=J[b+12>>2];l=b+16|0;if((f|0)!=(l|0)){g=a+12|0;while(1){m=oa(24);sd(m,J[f+28>>2]);b=f+16|0;J[j+16>>2]=b;c:{d:{c=J[g+4>>2];e:{if(!c){d=g+4|0;b=d;break e}d=K[b+11|0];e=d<<24>>24<0;h=e?J[b>>2]:b;e=e?J[b+4>>2]:d;while(1){b=c;i=K[c+27|0];d=i<<24>>24<0;c=d?J[c+20>>2]:i;i=c>>>0>>0;f:{g:{h:{i:{k=i?c:e;j:{if(k){d=d?J[b+16>>2]:b+16|0;n=Ba(h,d,k);if(!n){if(c>>>0>e>>>0){break j}break i}if((n|0)>=0){break i}break j}if(c>>>0<=e>>>0){break h}}d=b;c=J[b>>2];if(c){continue}break e}c=Ba(d,h,k);if(c){break g}}if(i){break f}break d}if((c|0)>=0){break d}}c=J[b+4>>2];if(c){continue}break}d=b+4|0}c=oa(32);h=c+16|0;e=J[j+16>>2];k:{if(H[e+11|0]>=0){i=J[e+4>>2];J[h>>2]=J[e>>2];J[h+4>>2]=i;J[h+8>>2]=J[e+8>>2];break k}Ga(h,J[e>>2],J[e+4>>2])}J[c+8>>2]=b;J[c>>2]=0;J[c+4>>2]=0;J[c+28>>2]=0;J[d>>2]=c;b=c;e=J[J[g>>2]>>2];if(e){J[g>>2]=e;b=J[d>>2]}sb(J[g+4>>2],b);J[g+8>>2]=J[g+8>>2]+1;b=1;break c}c=b;b=0}H[j+28|0]=b;J[j+24>>2]=c;c=J[j+24>>2];b=J[c+28>>2];J[c+28>>2]=m;if(b){lb(b+12|0,J[b+16>>2]);kb(b,J[b+4>>2]);na(b)}c=J[f+4>>2];l:{if(c){while(1){f=c;c=J[c>>2];if(c){continue}break l}}while(1){b=f;f=J[f+8>>2];if((b|0)!=J[f>>2]){continue}break}}if((f|0)!=(l|0)){continue}break}}ba=j+32|0;return a}function Pk(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;J[a+8>>2]=e;m=a+32|0;g=J[m>>2];f=J[a+36>>2]-g>>2;a:{if(f>>>0>>0){Fa(m,e-f|0);break a}if(e>>>0>=f>>>0){break a}J[a+36>>2]=g+(e<<2)}b:{if(!d){break b}g=J[b>>2];c:{if((d|0)<2){i=g;break c}f=1;i=d-1|0;q=i&1;d:{if((d|0)==2){i=g;break d}o=i&-2;i=g;while(1){j=(f<<2)+b|0;k=J[j+4>>2];j=J[j>>2];l=(j|0)<(i|0);i=l?j:i;p=(i|0)>(k|0);i=p?k:i;g=l?g:(g|0)<(j|0)?j:g;g=p?g:(g|0)<(k|0)?k:g;f=f+2|0;h=h+2|0;if((o|0)!=(h|0)){continue}break}}if(!q){break c}f=J[(f<<2)+b>>2];h=(f|0)<(i|0);i=h?f:i;g=h?g:(f|0)>(g|0)?f:g}J[a+16>>2]=g;J[a+12>>2]=i;f=g-i|0;g=(g>>31)-((i>>31)+(g>>>0>>0)|0)|0;if(!g&f>>>0>2147483646|g){break b}f=f+1|0;J[a+20>>2]=f;g=f>>>1|0;J[a+24>>2]=g;J[a+28>>2]=0-g;if(f&1){break b}J[a+24>>2]=g-1}k=d-e|0;g=J[a+8>>2];if(!((k|0)<=0|(g|0)<=0)){p=0-e<<2;while(1){if((g|0)>0){d=k<<2;q=d+c|0;o=b+d|0;h=o+p|0;d=J[m>>2];i=0;while(1){f=d;if((g|0)>0){f=J[m>>2];g=0;while(1){j=g<<2;l=J[j+h>>2];n=J[a+16>>2];e:{if((l|0)>(n|0)){J[f+j>>2]=n;break e}j=f+j|0;n=J[a+12>>2];if((n|0)>(l|0)){J[j>>2]=n;break e}J[j>>2]=l}g=g+1|0;if((g|0)>2]){continue}break}}h=i<<2;g=h+q|0;h=J[h+o>>2]-J[f+h>>2]|0;J[g>>2]=h;f:{if((h|0)>2]){h=h+J[a+20>>2]|0}else{if((h|0)<=J[a+24>>2]){break f}h=h-J[a+20>>2]|0}J[g>>2]=h}h=f;g=J[a+8>>2];i=i+1|0;if((g|0)>(i|0)){continue}break}}k=k-e|0;if((k|0)>0){continue}break}}i=0;d=e>>>0>1073741823?-1:e<<2;d=pa(oa(d),0,d);if((g|0)>0){e=J[a+32>>2];h=d;while(1){f=e;if((g|0)>0){f=J[m>>2];g=0;while(1){k=g<<2;j=J[k+h>>2];l=J[a+16>>2];g:{if((j|0)>(l|0)){J[f+k>>2]=l;break g}k=f+k|0;l=J[a+12>>2];if((l|0)>(j|0)){J[k>>2]=l;break g}J[k>>2]=j}g=g+1|0;if((g|0)>2]){continue}break}}h=i<<2;g=h+c|0;h=J[b+h>>2]-J[f+h>>2]|0;J[g>>2]=h;h:{if((h|0)>2]){h=h+J[a+20>>2]|0}else{if((h|0)<=J[a+24>>2]){break h}h=h-J[a+20>>2]|0}J[g>>2]=h}h=f;g=J[a+8>>2];i=i+1|0;if((g|0)>(i|0)){continue}break}}na(d);return 1}function uf(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;d=ba+-64|0;ba=d;J[d+40>>2]=0;J[d+44>>2]=0;J[d+32>>2]=0;J[d+36>>2]=0;J[d+48>>2]=1065353216;e=J[a+80>>2];J[d+24>>2]=0;J[d+16>>2]=0;J[d+20>>2]=0;a:{if(e){if(e>>>0>=1073741824){break a}c=e<<2;e=oa(c);J[d+16>>2]=e;g=c+e|0;J[d+24>>2]=g;pa(e,0,c);J[d+20>>2]=g;while(1){c=J[J[b>>2]>>2];g=J[b+48>>2];h=Hl(J[b+40>>2],J[b+44>>2],f,0);g=g+h|0;c=c+g|0;c=K[c|0]|K[c+1|0]<<8|(K[c+2|0]<<16|K[c+3|0]<<24);J[d+28>>2]=c;J[d+12>>2]=k;J[d+8>>2]=c;c=d+8|0;qf(d+56|0,d+32|0,c,c);b:{if(!K[d+60|0]){J[(f<<2)+e>>2]=J[J[d+56>>2]+12>>2];break b}e=J[a+40>>2];ua(J[J[a>>2]>>2]+P(e,k)|0,d+28|0,e);e=J[d+16>>2];J[e+(f<<2)>>2]=k;k=k+1|0}f=f+1|0;i=f?i:i+1|0;c=J[a+80>>2];if(!i&f>>>0>>0){continue}break}if((c|0)!=(k|0)){c:{if(!K[a+84|0]){b=J[a+72>>2];f=J[a+68>>2];if((b|0)==(f|0)){break c}b=b-f>>2;c=b>>>0<=1?1:b;h=c&3;i=0;b=0;if(c-1>>>0>=3){l=c&-4;g=0;while(1){c=b<<2;j=c+f|0;J[j>>2]=J[(J[j>>2]<<2)+e>>2];j=f+(c|4)|0;J[j>>2]=J[(J[j>>2]<<2)+e>>2];j=f+(c|8)|0;J[j>>2]=J[(J[j>>2]<<2)+e>>2];c=f+(c|12)|0;J[c>>2]=J[(J[c>>2]<<2)+e>>2];b=b+4|0;g=g+4|0;if((l|0)!=(g|0)){continue}break}}if(!h){break c}while(1){c=f+(b<<2)|0;J[c>>2]=J[(J[c>>2]<<2)+e>>2];b=b+1|0;i=i+1|0;if((h|0)!=(i|0)){continue}break}break c}H[a+84|0]=0;b=a+68|0;i=J[a+68>>2];f=J[a+72>>2]-i>>2;d:{if(f>>>0>>0){Ma(b,c-f|0,2176);c=J[a+80>>2];break d}if(c>>>0>=f>>>0){break d}J[a+72>>2]=i+(c<<2)}if(!c){break c}f=J[b>>2];i=0;b=0;if(c>>>0>=4){l=c&-4;g=0;while(1){h=b<<2;J[h+f>>2]=J[e+h>>2];j=h|4;J[j+f>>2]=J[e+j>>2];j=h|8;J[j+f>>2]=J[e+j>>2];h=h|12;J[h+f>>2]=J[e+h>>2];b=b+4|0;g=g+4|0;if((l|0)!=(g|0)){continue}break}}c=c&3;if(!c){break c}while(1){g=b<<2;J[g+f>>2]=J[e+g>>2];b=b+1|0;i=i+1|0;if((c|0)!=(i|0)){continue}break}}J[a+80>>2]=k}na(e)}b=J[d+40>>2];if(b){while(1){a=J[b>>2];na(b);b=a;if(b){continue}break}}a=J[d+32>>2];J[d+32>>2]=0;if(a){na(a)}ba=d- -64|0;return k}qa();B()}function Rj(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;f=ba-16|0;ba=f;J[a+4>>2]=b;J[a+8>>2]=J[b+56>>2];J[a+188>>2]=J[a+184>>2];e=J[b+48>>2];c=oa(32);H[c+19|0]=0;b=K[1278]|K[1279]<<8|(K[1280]<<16|K[1281]<<24);H[c+15|0]=b;H[c+16|0]=b>>>8;H[c+17|0]=b>>>16;H[c+18|0]=b>>>24;b=K[1275]|K[1276]<<8|(K[1277]<<16|K[1278]<<24);d=K[1271]|K[1272]<<8|(K[1273]<<16|K[1274]<<24);H[c+8|0]=d;H[c+9|0]=d>>>8;H[c+10|0]=d>>>16;H[c+11|0]=d>>>24;H[c+12|0]=b;H[c+13|0]=b>>>8;H[c+14|0]=b>>>16;H[c+15|0]=b>>>24;b=K[1267]|K[1268]<<8|(K[1269]<<16|K[1270]<<24);d=K[1263]|K[1264]<<8|(K[1265]<<16|K[1266]<<24);H[c|0]=d;H[c+1|0]=d>>>8;H[c+2|0]=d>>>16;H[c+3|0]=d>>>24;H[c+4|0]=b;H[c+5|0]=b>>>8;H[c+6|0]=b>>>16;H[c+7|0]=b>>>24;a:{b:{b=J[e+4>>2];if(b){while(1){d=K[b+27|0];e=d<<24>>24<0;d=e?J[b+20>>2]:d;h=d>>>0<19;c:{d:{e:{f:{g:{h:{g=h?d:19;if(g){e=e?J[b+16>>2]:b+16|0;i=Ba(c,e,g);if(i){break h}if(d>>>0<=19){break g}break c}if(d>>>0<=19){break f}break c}if((i|0)<0){break c}}d=Ba(e,c,g);if(d){break e}}if(h){break d}break b}if((d|0)>=0){break b}}b=b+4|0}b=J[b>>2];if(b){continue}break}}na(c);if((cb(J[J[a+4>>2]+48>>2])|0)>=6){H[a+288|0]=1;break a}H[a+288|0]=0;break a}na(c);e=J[J[a+4>>2]+48>>2];b=oa(32);J[f>>2]=b;J[f+4>>2]=19;J[f+8>>2]=-2147483616;c=K[1278]|K[1279]<<8|(K[1280]<<16|K[1281]<<24);H[b+15|0]=c;H[b+16|0]=c>>>8;H[b+17|0]=c>>>16;H[b+18|0]=c>>>24;c=K[1275]|K[1276]<<8|(K[1277]<<16|K[1278]<<24);d=K[1271]|K[1272]<<8|(K[1273]<<16|K[1274]<<24);H[b+8|0]=d;H[b+9|0]=d>>>8;H[b+10|0]=d>>>16;H[b+11|0]=d>>>24;H[b+12|0]=c;H[b+13|0]=c>>>8;H[b+14|0]=c>>>16;H[b+15|0]=c>>>24;c=K[1267]|K[1268]<<8|(K[1269]<<16|K[1270]<<24);d=K[1263]|K[1264]<<8|(K[1265]<<16|K[1266]<<24);H[b|0]=d;H[b+1|0]=d>>>8;H[b+2|0]=d>>>16;H[b+3|0]=d>>>24;H[b+4|0]=c;H[b+5|0]=c>>>8;H[b+6|0]=c>>>16;H[b+7|0]=c>>>24;H[b+19|0]=0;j=a,k=Pb(e,f,0),H[j+288|0]=k;if(H[f+11|0]>=0){break a}na(J[f>>2])}ba=f+16|0;return 1}function Mj(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;f=ba-16|0;ba=f;J[a+4>>2]=b;J[a+8>>2]=J[b+56>>2];J[a+188>>2]=J[a+184>>2];e=J[b+48>>2];c=oa(32);H[c+19|0]=0;b=K[1278]|K[1279]<<8|(K[1280]<<16|K[1281]<<24);H[c+15|0]=b;H[c+16|0]=b>>>8;H[c+17|0]=b>>>16;H[c+18|0]=b>>>24;b=K[1275]|K[1276]<<8|(K[1277]<<16|K[1278]<<24);d=K[1271]|K[1272]<<8|(K[1273]<<16|K[1274]<<24);H[c+8|0]=d;H[c+9|0]=d>>>8;H[c+10|0]=d>>>16;H[c+11|0]=d>>>24;H[c+12|0]=b;H[c+13|0]=b>>>8;H[c+14|0]=b>>>16;H[c+15|0]=b>>>24;b=K[1267]|K[1268]<<8|(K[1269]<<16|K[1270]<<24);d=K[1263]|K[1264]<<8|(K[1265]<<16|K[1266]<<24);H[c|0]=d;H[c+1|0]=d>>>8;H[c+2|0]=d>>>16;H[c+3|0]=d>>>24;H[c+4|0]=b;H[c+5|0]=b>>>8;H[c+6|0]=b>>>16;H[c+7|0]=b>>>24;a:{b:{b=J[e+4>>2];if(b){while(1){d=K[b+27|0];e=d<<24>>24<0;d=e?J[b+20>>2]:d;h=d>>>0<19;c:{d:{e:{f:{g:{h:{g=h?d:19;if(g){e=e?J[b+16>>2]:b+16|0;i=Ba(c,e,g);if(i){break h}if(d>>>0<=19){break g}break c}if(d>>>0<=19){break f}break c}if((i|0)<0){break c}}d=Ba(e,c,g);if(d){break e}}if(h){break d}break b}if((d|0)>=0){break b}}b=b+4|0}b=J[b>>2];if(b){continue}break}}na(c);if((cb(J[J[a+4>>2]+48>>2])|0)>=6){H[a+352|0]=1;break a}H[a+352|0]=0;break a}na(c);e=J[J[a+4>>2]+48>>2];b=oa(32);J[f>>2]=b;J[f+4>>2]=19;J[f+8>>2]=-2147483616;c=K[1278]|K[1279]<<8|(K[1280]<<16|K[1281]<<24);H[b+15|0]=c;H[b+16|0]=c>>>8;H[b+17|0]=c>>>16;H[b+18|0]=c>>>24;c=K[1275]|K[1276]<<8|(K[1277]<<16|K[1278]<<24);d=K[1271]|K[1272]<<8|(K[1273]<<16|K[1274]<<24);H[b+8|0]=d;H[b+9|0]=d>>>8;H[b+10|0]=d>>>16;H[b+11|0]=d>>>24;H[b+12|0]=c;H[b+13|0]=c>>>8;H[b+14|0]=c>>>16;H[b+15|0]=c>>>24;c=K[1267]|K[1268]<<8|(K[1269]<<16|K[1270]<<24);d=K[1263]|K[1264]<<8|(K[1265]<<16|K[1266]<<24);H[b|0]=d;H[b+1|0]=d>>>8;H[b+2|0]=d>>>16;H[b+3|0]=d>>>24;H[b+4|0]=c;H[b+5|0]=c>>>8;H[b+6|0]=c>>>16;H[b+7|0]=c>>>24;H[b+19|0]=0;j=a,k=Pb(e,f,0),H[j+352|0]=k;if(H[f+11|0]>=0){break a}na(J[f>>2])}ba=f+16|0;return 1}function uh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;c=ba-32|0;ba=c;d=a- -64|0;Aa(J[d>>2],b);if(J[d>>2]){J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;za(c);d=J[a+64>>2];if((d|0)>0){while(1){f=d-1|0;Ca(c,J[J[a+60>>2]+(f>>>3&536870908)>>2]>>>f&1);e=d>>>0>1;d=f;if(e){continue}break}}ya(c,b);wa(c)}Aa(J[a+76>>2],b);if(J[a+76>>2]){J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;za(c);d=J[a+76>>2];if((d|0)>=2){while(1){f=d-2|0;Ca(c,J[J[a+72>>2]+(f>>>3&536870908)>>2]>>>f&1);e=d-1|0;Ca(c,J[J[a+72>>2]+(e>>>3&536870908)>>2]>>>e&1);e=d>>>0>3;d=f;if(e){continue}break}}ya(c,b);wa(c)}Aa(J[a+88>>2],b);if(J[a+88>>2]){J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;za(c);d=J[a+88>>2];if((d|0)>=3){while(1){f=d-3|0;Ca(c,J[J[a+84>>2]+(f>>>3&536870908)>>2]>>>f&1);e=d-2|0;Ca(c,J[J[a+84>>2]+(e>>>3&536870908)>>2]>>>e&1);e=d-1|0;Ca(c,J[J[a+84>>2]+(e>>>3&536870908)>>2]>>>e&1);e=d>>>0>5;d=f;if(e){continue}break}}ya(c,b);wa(c)}Aa(J[a+100>>2],b);if(J[a+100>>2]){J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;za(c);d=J[a+100>>2];if((d|0)>=4){while(1){f=d-4|0;Ca(c,J[J[a+96>>2]+(f>>>3&536870908)>>2]>>>f&1);e=d-3|0;Ca(c,J[J[a+96>>2]+(e>>>3&536870908)>>2]>>>e&1);e=d-2|0;Ca(c,J[J[a+96>>2]+(e>>>3&536870908)>>2]>>>e&1);e=d-1|0;Ca(c,J[J[a+96>>2]+(e>>>3&536870908)>>2]>>>e&1);e=d>>>0>7;d=f;if(e){continue}break}}ya(c,b);wa(c)}J[c>>2]=J[a+12>>2];d=J[b+20>>2];a:{if(!!J[b+16>>2]&(d|0)>=0|(d|0)>0){break a}f=c+4|0;sa(b,J[b+4>>2],c,f);d=J[b+20>>2];e=J[b+16>>2];J[c>>2]=J[a+16>>2];if(!!e&(d|0)>=0|(d|0)>0){break a}sa(b,J[b+4>>2],c,f)}ba=c+32|0;return 1}function jh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;c=ba-32|0;ba=c;Aa(J[a+48>>2],b);if(J[a+48>>2]){J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;za(c);d=J[a+48>>2];if((d|0)>0){while(1){f=d-1|0;Ca(c,J[J[a+44>>2]+(f>>>3&536870908)>>2]>>>f&1);e=d>>>0>1;d=f;if(e){continue}break}}ya(c,b);wa(c)}Aa(J[a+60>>2],b);if(J[a+60>>2]){J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;za(c);d=J[a+60>>2];if((d|0)>=2){while(1){f=d-2|0;Ca(c,J[J[a+56>>2]+(f>>>3&536870908)>>2]>>>f&1);e=d-1|0;Ca(c,J[J[a+56>>2]+(e>>>3&536870908)>>2]>>>e&1);e=d>>>0>3;d=f;if(e){continue}break}}ya(c,b);wa(c)}Aa(J[a+72>>2],b);if(J[a+72>>2]){J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;za(c);d=J[a+72>>2];if((d|0)>=3){while(1){f=d-3|0;Ca(c,J[J[a+68>>2]+(f>>>3&536870908)>>2]>>>f&1);e=d-2|0;Ca(c,J[J[a+68>>2]+(e>>>3&536870908)>>2]>>>e&1);e=d-1|0;Ca(c,J[J[a+68>>2]+(e>>>3&536870908)>>2]>>>e&1);e=d>>>0>5;d=f;if(e){continue}break}}ya(c,b);wa(c)}Aa(J[a+84>>2],b);if(J[a+84>>2]){J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;za(c);d=J[a+84>>2];if((d|0)>=4){while(1){f=d-4|0;Ca(c,J[J[a+80>>2]+(f>>>3&536870908)>>2]>>>f&1);e=d-3|0;Ca(c,J[J[a+80>>2]+(e>>>3&536870908)>>2]>>>e&1);e=d-2|0;Ca(c,J[J[a+80>>2]+(e>>>3&536870908)>>2]>>>e&1);e=d-1|0;Ca(c,J[J[a+80>>2]+(e>>>3&536870908)>>2]>>>e&1);e=d>>>0>7;d=f;if(e){continue}break}}ya(c,b);wa(c)}J[c>>2]=J[a+12>>2];d=J[b+20>>2];a:{if(!!J[b+16>>2]&(d|0)>=0|(d|0)>0){break a}f=c+4|0;sa(b,J[b+4>>2],c,f);d=J[b+20>>2];e=J[b+16>>2];J[c>>2]=J[a+24>>2];if(!!e&(d|0)>=0|(d|0)>0){break a}sa(b,J[b+4>>2],c,f)}ba=c+32|0;return 1}function wk(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;d=ba-32|0;ba=d;o=e<<2;f=e>>>0>1073741823?-1:o;l=pa(oa(f),0,f);f=J[a+40>>2];f=J[f+4>>2]-J[f>>2]|0;if((f|0)>=5){q=J[a+36>>2];p=J[a+32>>2];r=e&-2;s=e&1;t=a+8|0;f=f>>>2|0;while(1){j=J[a+40>>2];g=J[j>>2];a:{b:{h=J[j+4>>2]-g>>2;j=f-1|0;if(h>>>0>j>>>0){u=P(e,j);g=J[g+(j<<2)>>2];if((g|0)==-1){break b}g=J[J[p+12>>2]+(g<<2)>>2];if((g|0)==-1){break b}k=J[q>>2];h=J[p>>2];m=J[k+(J[h+(g<<2)>>2]<<2)>>2];i=g+1|0;i=(i>>>0)%3|0?i:g-2|0;if((i|0)!=-1){i=J[h+(i<<2)>>2]}else{i=-1}c:{d:{if((g>>>0)%3|0){g=g-1|0;break d}g=g+2|0;n=-1;if((g|0)==-1){break c}}n=J[h+(g<<2)>>2]}if((j|0)<=(m|0)){break b}g=J[(i<<2)+k>>2];if((g|0)>=(j|0)){break b}h=J[k+(n<<2)>>2];if((h|0)>=(j|0)){break b}e:{if((e|0)<=0){break e}h=P(e,h);k=P(e,g);m=P(e,m);g=0;n=0;if((e|0)!=1){while(1){J[(g<<2)+l>>2]=(J[(g+h<<2)+b>>2]+J[(g+k<<2)+b>>2]|0)-J[(g+m<<2)+b>>2];i=g|1;J[(i<<2)+l>>2]=(J[(h+i<<2)+b>>2]+J[(i+k<<2)+b>>2]|0)-J[(i+m<<2)+b>>2];g=g+2|0;n=n+2|0;if((r|0)!=(n|0)){continue}break}}if(!s){break e}J[(g<<2)+l>>2]=(J[(g+h<<2)+b>>2]+J[(g+k<<2)+b>>2]|0)-J[(g+m<<2)+b>>2]}g=J[l>>2];h=J[l+4>>2];break a}ra();B()}h=(P(f-2|0,e)<<2)+b|0;g=J[h>>2];h=J[h+4>>2]}k=u<<2;m=k+b|0;i=J[m+4>>2];J[d+16>>2]=J[m>>2];J[d+20>>2]=i;J[d+8>>2]=g;J[d+12>>2]=h;Ya(d+24|0,t,d+16|0,d+8|0);g=c+k|0;J[g>>2]=J[d+24>>2];J[g+4>>2]=J[d+28>>2];g=(f|0)>2;f=j;if(g){continue}break}}if((e|0)>0){pa(l,0,o)}e=J[l>>2];f=J[l+4>>2];g=J[b+4>>2];J[d+16>>2]=J[b>>2];J[d+20>>2]=g;J[d+8>>2]=e;J[d+12>>2]=f;Ya(d+24|0,a+8|0,d+16|0,d+8|0);J[c>>2]=J[d+24>>2];J[c+4>>2]=J[d+28>>2];na(l);ba=d+32|0;return 1}function fg(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;k=J[a>>2];n=b-k|0;h=(n&-4)+k|0;i=d-c|0;if((i|0)<=0){return}a:{l=i>>2;g=J[a+8>>2];j=J[a+4>>2];if((l|0)<=g-j>>2){f=j-h|0;g=f>>2;if((g|0)>=(l|0)){b=j;g=d;break a}b=j;g=(g<<2)+c|0;if((g|0)!=(d|0)){e=g;while(1){J[b>>2]=J[e>>2];b=b+4|0;e=e+4|0;if((e|0)!=(d|0)){continue}break}}J[a+4>>2]=b;if((f|0)>0){break a}return}b:{f=l+(j-k>>2)|0;if(f>>>0<1073741824){e=g-k|0;g=e>>>1|0;m=e>>>0>=2147483644?1073741823:f>>>0>>0?g:f;if(m){if(m>>>0>=1073741824){break b}g=oa(m<<2)}else{g=0}e=g+(n&-4)|0;f=e;if((c|0)!=(d|0)){f=ua(e,c,i&-4)+(l<<2)|0}c:{if((b|0)==(k|0)){break c}i=n-4|0;d=(i>>>2|0)+1&3;d:{if(!d){b=h;break d}c=0;b=h;while(1){e=e-4|0;b=b-4|0;J[e>>2]=J[b>>2];c=c+1|0;if((d|0)!=(c|0)){continue}break}}if(i>>>0<12){break c}while(1){J[e-4>>2]=J[b-4>>2];J[e-8>>2]=J[b-8>>2];J[e-12>>2]=J[b-12>>2];e=e-16|0;b=b-16|0;J[e>>2]=J[b>>2];if((b|0)!=(k|0)){continue}break}}if((h|0)!=(j|0)){while(1){J[f>>2]=J[h>>2];f=f+4|0;h=h+4|0;if((j|0)!=(h|0)){continue}break}}J[a+8>>2]=(m<<2)+g;J[a+4>>2]=f;J[a>>2]=e;if(k){na(k)}return}qa();B()}xa();B()}d=l<<2;i=d+h|0;f=b;e=b-d|0;if(j>>>0>e>>>0){d=e;while(1){J[f>>2]=J[d>>2];f=f+4|0;d=d+4|0;if(j>>>0>d>>>0){continue}break}}J[a+4>>2]=f;e:{if((b|0)==(i|0)){break e}d=(b-i|0)-4|0;a=(d>>>2|0)+1&3;if(a){f=0;while(1){b=b-4|0;e=e-4|0;J[b>>2]=J[e>>2];f=f+1|0;if((a|0)!=(f|0)){continue}break}}if(d>>>0<12){break e}while(1){J[b-4>>2]=J[e-4>>2];J[b-8>>2]=J[e-8>>2];J[b-12>>2]=J[e-12>>2];b=b-16|0;e=e-16|0;J[b>>2]=J[e>>2];if((e|0)!=(h|0)){continue}break}}if((c|0)==(g|0)){return}b=h;while(1){J[b>>2]=J[c>>2];b=b+4|0;c=c+4|0;if((g|0)!=(c|0)){continue}break}}function ff(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;k=ba-16|0;ba=k;J[k+8>>2]=c;h=J[a+12>>2];d=J[a+8>>2];g=h-d>>2;a:{if((g|0)>(b|0)){break a}e=b+1|0;if(e>>>0>g>>>0){l=e-g|0;f=J[a+16>>2];d=J[a+12>>2];if(l>>>0<=f-d>>2>>>0){if(l){e=d;d=l<<2;d=pa(e,0,d)+d|0}J[a+12>>2]=d;break a}b:{c:{d:{m=J[a+8>>2];g=d-m>>2;i=g+l|0;if(i>>>0<1073741824){e=f-m|0;f=e>>>1|0;e=e>>>0>=2147483644?1073741823:f>>>0>i>>>0?f:i;if(e){if(e>>>0>=1073741824){break d}j=oa(e<<2)}h=(g<<2)+j|0;f=l<<2;i=pa(h,0,f);g=f+i|0;e=(e<<2)+j|0;if((d|0)==(m|0)){break c}while(1){d=d-4|0;f=J[d>>2];J[d>>2]=0;h=h-4|0;J[h>>2]=f;if((d|0)!=(m|0)){continue}break}J[a+16>>2]=e;e=J[a+12>>2];J[a+12>>2]=g;d=J[a+8>>2];J[a+8>>2]=h;if((d|0)==(e|0)){break b}while(1){e=e-4|0;f=J[e>>2];J[e>>2]=0;if(f){Ka(f)}if((d|0)!=(e|0)){continue}break}break b}qa();B()}xa();B()}J[a+16>>2]=e;J[a+12>>2]=g;J[a+8>>2]=i}if(d){na(d)}break a}if(e>>>0>=g>>>0){break a}d=d+(e<<2)|0;if((d|0)!=(h|0)){while(1){h=h-4|0;c=J[h>>2];J[h>>2]=0;if(c){Ka(c)}if((d|0)!=(h|0)){continue}break}c=J[k+8>>2]}J[a+12>>2]=d}e:{f:{d=J[c+56>>2];g:{if((d|0)>4){break g}j=P(d,12)+a|0;d=J[j+24>>2];if((d|0)!=J[j+28>>2]){J[d>>2]=b;J[j+24>>2]=d+4;break g}i=J[j+20>>2];g=d-i|0;f=g>>2;e=f+1|0;if(e>>>0>=1073741824){break f}d=g>>>1|0;e=g>>>0>=2147483644?1073741823:d>>>0>e>>>0?d:e;if(e){if(e>>>0>=1073741824){break e}d=oa(e<<2)}else{d=0}f=d+(f<<2)|0;J[f>>2]=b;d=ta(d,i,g);J[j+20>>2]=d;J[j+24>>2]=f+4;J[j+28>>2]=d+(e<<2);if(!i){break g}na(i)}J[c+60>>2]=b;a=J[a+8>>2];J[k+8>>2]=0;a=a+(b<<2)|0;b=J[a>>2];J[a>>2]=c;if(b){Ka(b)}a=J[k+8>>2];J[k+8>>2]=0;if(a){Ka(a)}ba=k+16|0;return}qa();B()}xa();B()}function qf(a,b,c,d){var e=0,f=0,g=0,h=0,i=Q(0),j=0,k=0,l=Q(0);j=J[c>>2];g=j^318;a:{b:{f=J[b+4>>2];if(!f){break b}h=Kl(f);c:{if(h>>>0>=2){e=g;if(e>>>0>=f>>>0){e=(g>>>0)%(f>>>0)|0}c=J[J[b>>2]+(e<<2)>>2];if(!c){break b}if(h>>>0<=1){break c}while(1){c=J[c>>2];if(!c){break b}h=J[c+4>>2];if((h|0)!=(g|0)){if(f>>>0<=h>>>0){h=(h>>>0)%(f>>>0)|0}if((e|0)!=(h|0)){break b}}if(J[c+8>>2]!=(j|0)){continue}break}b=0;break a}e=f-1&g;c=J[J[b>>2]+(e<<2)>>2];if(!c){break b}}h=f-1|0;while(1){c=J[c>>2];if(!c){break b}k=J[c+4>>2];if((k|0)!=(g|0)&(h&k)!=(e|0)){break b}if(J[c+8>>2]!=(j|0)){continue}break}b=0;break a}c=oa(16);J[c+8>>2]=J[d>>2];d=J[d+4>>2];J[c+4>>2]=g;J[c+12>>2]=d;J[c>>2]=0;i=Q(J[b+12>>2]+1>>>0);l=N[b+16>>2];d:{if(i>Q(l*Q(f>>>0))?0:f){break d}d=2;h=(f-1&f)!=0|f>>>0<3|f<<1;i=Q(W(Q(i/l)));e:{if(i=Q(0)){e=~~i>>>0;break e}e=0}e=e>>>0>>0?h:e;f:{if((e|0)==1){break f}if(!(e&e-1)){d=e;break f}d=Ha(e);f=J[b+4>>2]}g:{if(d>>>0<=f>>>0){if(d>>>0>=f>>>0){break g}h=f>>>0<3;i=Q(W(Q(Q(M[b+12>>2])/N[b+16>>2])));h:{if(i=Q(0)){e=~~i>>>0;break h}e=0}i:{j:{if(h){break j}if(Kl(f)>>>0>1){break j}e=e>>>0<2?e:1<<32-S(e-1|0);break i}e=Ha(e)}d=d>>>0>e>>>0?d:e;if(f>>>0<=d>>>0){break g}}db(b,d)}f=J[b+4>>2];d=f-1|0;if(!(d&f)){e=d&g;break d}if(f>>>0>g>>>0){e=g;break d}e=(g>>>0)%(f>>>0)|0}g=J[b>>2]+(e<<2)|0;d=J[g>>2];k:{l:{if(!d){d=b+8|0;J[c>>2]=J[d>>2];J[b+8>>2]=c;J[g>>2]=d;d=J[c>>2];if(!d){break k}d=J[d+4>>2];g=f-1|0;m:{if(!(g&f)){d=d&g;break m}if(d>>>0>>0){break m}d=(d>>>0)%(f>>>0)|0}d=J[b>>2]+(d<<2)|0;break l}J[c>>2]=J[d>>2]}J[d>>2]=c}J[b+12>>2]=J[b+12>>2]+1;b=1}H[a+4|0]=b;J[a>>2]=c}function bl(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;J[a+8>>2]=e;J[a- -64>>2]=f;o=a+32|0;f=J[o>>2];g=J[a+36>>2]-f>>2;a:{if(g>>>0>>0){Fa(o,e-g|0);break a}if(e>>>0>=g>>>0){break a}J[a+36>>2]=f+(e<<2)}b:{if(!d){break b}f=J[b>>2];c:{if((d|0)<2){d=f;break c}h=1;g=d-1|0;n=g&1;d:{if((d|0)==2){d=f;break d}q=g&-2;g=0;d=f;while(1){j=(h<<2)+b|0;k=J[j+4>>2];l=J[j>>2];i=(l|0)<(d|0);d=i?l:d;j=(d|0)>(k|0);d=j?k:d;f=i?f:(f|0)<(l|0)?l:f;f=j?f:(f|0)<(k|0)?k:f;h=h+2|0;g=g+2|0;if((q|0)!=(g|0)){continue}break}}if(!n){break c}h=J[(h<<2)+b>>2];g=(h|0)<(d|0);d=g?h:d;f=g?f:(f|0)<(h|0)?h:f}J[a+16>>2]=f;J[a+12>>2]=d;g=f-d|0;f=(f>>31)-((d>>31)+(d>>>0>f>>>0)|0)|0;d=g;if(!f&d>>>0>2147483646|f){break b}f=d+1|0;J[a+20>>2]=f;d=f>>>1|0;J[a+24>>2]=d;J[a+28>>2]=0-d;if(f&1){break b}J[a+24>>2]=d-1}r=1;e:{d=J[a+56>>2];d=J[d+4>>2]-J[d>>2]|0;if((d|0)>=4){t=a+60|0;q=a+68|0;n=d>>>2|0;while(1){d=J[a+56>>2];f=J[d>>2];i=n-1|0;if(i>>>0>=J[d+4>>2]-f>>2>>>0){break e}r=qh(t,J[f+(i<<2)>>2],b,i);if(!r){return 0}f=J[a+8>>2];if((f|0)>0){d=P(e,i)<<2;k=d+c|0;l=b+d|0;j=J[o>>2];p=0;g=q;while(1){h=j;if((f|0)>0){h=J[o>>2];f=0;while(1){m=f<<2;s=J[m+g>>2];d=J[a+16>>2];f:{if((s|0)>(d|0)){J[h+m>>2]=d;break f}m=h+m|0;d=J[a+12>>2];if((d|0)>(s|0)){J[m>>2]=d;break f}J[m>>2]=s}f=f+1|0;if((f|0)>2]){continue}break}}f=p<<2;d=f+k|0;f=J[f+l>>2]-J[f+h>>2]|0;J[d>>2]=f;g:{if((f|0)>2]){f=f+J[a+20>>2]|0}else{if((f|0)<=J[a+24>>2]){break g}f=f-J[a+20>>2]|0}J[d>>2]=f}g=h;f=J[a+8>>2];p=p+1|0;if((f|0)>(p|0)){continue}break}}d=(n|0)>1;n=i;if(d){continue}break}}return r|0}ra();B()}function Tk(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;J[a+8>>2]=e;J[a- -64>>2]=f;o=a+32|0;f=J[o>>2];g=J[a+36>>2]-f>>2;a:{if(g>>>0>>0){Fa(o,e-g|0);break a}if(e>>>0>=g>>>0){break a}J[a+36>>2]=f+(e<<2)}b:{if(!d){break b}f=J[b>>2];c:{if((d|0)<2){d=f;break c}h=1;g=d-1|0;n=g&1;d:{if((d|0)==2){d=f;break d}q=g&-2;g=0;d=f;while(1){j=(h<<2)+b|0;k=J[j+4>>2];l=J[j>>2];i=(l|0)<(d|0);d=i?l:d;j=(d|0)>(k|0);d=j?k:d;f=i?f:(f|0)<(l|0)?l:f;f=j?f:(f|0)<(k|0)?k:f;h=h+2|0;g=g+2|0;if((q|0)!=(g|0)){continue}break}}if(!n){break c}h=J[(h<<2)+b>>2];g=(h|0)<(d|0);d=g?h:d;f=g?f:(f|0)<(h|0)?h:f}J[a+16>>2]=f;J[a+12>>2]=d;g=f-d|0;f=(f>>31)-((d>>31)+(d>>>0>f>>>0)|0)|0;d=g;if(!f&d>>>0>2147483646|f){break b}f=d+1|0;J[a+20>>2]=f;d=f>>>1|0;J[a+24>>2]=d;J[a+28>>2]=0-d;if(f&1){break b}J[a+24>>2]=d-1}r=1;e:{d=J[a+56>>2];d=J[d+4>>2]-J[d>>2]|0;if((d|0)>=4){t=a+60|0;q=a+68|0;n=d>>>2|0;while(1){d=J[a+56>>2];f=J[d>>2];i=n-1|0;if(i>>>0>=J[d+4>>2]-f>>2>>>0){break e}r=lh(t,J[f+(i<<2)>>2],b,i);if(!r){return 0}f=J[a+8>>2];if((f|0)>0){d=P(e,i)<<2;k=d+c|0;l=b+d|0;j=J[o>>2];p=0;g=q;while(1){h=j;if((f|0)>0){h=J[o>>2];f=0;while(1){m=f<<2;s=J[m+g>>2];d=J[a+16>>2];f:{if((s|0)>(d|0)){J[h+m>>2]=d;break f}m=h+m|0;d=J[a+12>>2];if((d|0)>(s|0)){J[m>>2]=d;break f}J[m>>2]=s}f=f+1|0;if((f|0)>2]){continue}break}}f=p<<2;d=f+k|0;f=J[f+l>>2]-J[f+h>>2]|0;J[d>>2]=f;g:{if((f|0)>2]){f=f+J[a+20>>2]|0}else{if((f|0)<=J[a+24>>2]){break g}f=f-J[a+20>>2]|0}J[d>>2]=f}g=h;f=J[a+8>>2];p=p+1|0;if((f|0)>(p|0)){continue}break}}d=(n|0)>1;n=i;if(d){continue}break}}return r|0}ra();B()}function bg(a,b,c,d){var e=0,f=0,g=0,h=0,i=Q(0),j=0,k=Q(0);h=J[c>>2];a:{b:{e=J[b+4>>2];if(!e){break b}g=Kl(e);c:{if(g>>>0>=2){f=h;if(f>>>0>=e>>>0){f=(h>>>0)%(e>>>0)|0}c=J[J[b>>2]+(f<<2)>>2];if(!c){break b}if(g>>>0<=1){break c}while(1){c=J[c>>2];if(!c){break b}g=J[c+4>>2];if((g|0)!=(h|0)){if(e>>>0<=g>>>0){g=(g>>>0)%(e>>>0)|0}if((f|0)!=(g|0)){break b}}if(J[c+8>>2]!=(h|0)){continue}break}b=0;break a}f=e-1&h;c=J[J[b>>2]+(f<<2)>>2];if(!c){break b}}g=e-1|0;while(1){c=J[c>>2];if(!c){break b}j=J[c+4>>2];if((j|0)!=(h|0)&(g&j)!=(f|0)){break b}if(J[c+8>>2]!=(h|0)){continue}break}b=0;break a}c=oa(16);d=J[J[d>>2]>>2];J[c+12>>2]=0;J[c+8>>2]=d;J[c+4>>2]=h;J[c>>2]=0;k=Q(J[b+12>>2]+1>>>0);i=N[b+16>>2];d:{if(k>Q(i*Q(e>>>0))?0:e){break d}f=2;g=(e-1&e)!=0|e>>>0<3|e<<1;i=Q(W(Q(k/i)));e:{if(i=Q(0)){d=~~i>>>0;break e}d=0}d=d>>>0>>0?g:d;f:{if((d|0)==1){break f}if(!(d&d-1)){f=d;break f}f=Ha(d);e=J[b+4>>2]}g:{if(e>>>0>=f>>>0){if(e>>>0<=f>>>0){break g}g=e>>>0<3;i=Q(W(Q(Q(M[b+12>>2])/N[b+16>>2])));h:{if(i=Q(0)){d=~~i>>>0;break h}d=0}i:{j:{if(g){break j}if(Kl(e)>>>0>1){break j}d=d>>>0<2?d:1<<32-S(d-1|0);break i}d=Ha(d)}f=d>>>0>>0?f:d;if(f>>>0>=e>>>0){break g}}db(b,f)}e=J[b+4>>2];d=e-1|0;if(!(d&e)){f=d&h;break d}if(e>>>0>h>>>0){f=h;break d}f=(h>>>0)%(e>>>0)|0}f=J[b>>2]+(f<<2)|0;d=J[f>>2];k:{l:{if(!d){d=b+8|0;J[c>>2]=J[d>>2];J[b+8>>2]=c;J[f>>2]=d;d=J[c>>2];if(!d){break k}d=J[d+4>>2];f=e-1|0;m:{if(!(f&e)){d=d&f;break m}if(d>>>0>>0){break m}d=(d>>>0)%(e>>>0)|0}d=J[b>>2]+(d<<2)|0;break l}J[c>>2]=J[d>>2]}J[d>>2]=c}J[b+12>>2]=J[b+12>>2]+1;b=1}H[a+4|0]=b;J[a>>2]=c}function Ik(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;d=ba-32|0;ba=d;p=e<<2;f=e>>>0>1073741823?-1:p;l=pa(oa(f),0,f);f=J[a+40>>2];f=J[f+4>>2]-J[f>>2]|0;if((f|0)>=5){q=J[a+36>>2];n=J[a+32>>2];r=e&-2;s=e&1;t=a+8|0;f=f>>>2|0;while(1){j=J[a+40>>2];g=J[j>>2];a:{b:{h=J[j+4>>2]-g>>2;j=f-1|0;if(h>>>0>j>>>0){u=P(e,j);g=J[g+(j<<2)>>2];if((g|0)==-1|J[J[n>>2]+(g>>>3&536870908)>>2]>>>g&1){break b}g=J[J[J[n+64>>2]+12>>2]+(g<<2)>>2];if((g|0)==-1){break b}k=J[q>>2];h=J[n+28>>2];m=J[k+(J[h+(g<<2)>>2]<<2)>>2];if((m|0)>=(j|0)){break b}i=g+1|0;i=J[k+(J[h+(((i>>>0)%3|0?i:g-2|0)<<2)>>2]<<2)>>2];if((i|0)>=(j|0)){break b}g=J[k+(J[h+(g+((g>>>0)%3|0?-1:2)<<2)>>2]<<2)>>2];if((g|0)>=(j|0)){break b}c:{if((e|0)<=0){break c}h=P(e,g);k=P(e,i);m=P(e,m);g=0;o=0;if((e|0)!=1){while(1){J[(g<<2)+l>>2]=(J[(g+h<<2)+b>>2]+J[(g+k<<2)+b>>2]|0)-J[(g+m<<2)+b>>2];i=g|1;J[(i<<2)+l>>2]=(J[(h+i<<2)+b>>2]+J[(i+k<<2)+b>>2]|0)-J[(i+m<<2)+b>>2];g=g+2|0;o=o+2|0;if((r|0)!=(o|0)){continue}break}}if(!s){break c}J[(g<<2)+l>>2]=(J[(g+h<<2)+b>>2]+J[(g+k<<2)+b>>2]|0)-J[(g+m<<2)+b>>2]}g=J[l>>2];h=J[l+4>>2];break a}ra();B()}h=(P(f-2|0,e)<<2)+b|0;g=J[h>>2];h=J[h+4>>2]}k=u<<2;m=k+b|0;i=J[m+4>>2];J[d+16>>2]=J[m>>2];J[d+20>>2]=i;J[d+8>>2]=g;J[d+12>>2]=h;Ya(d+24|0,t,d+16|0,d+8|0);g=c+k|0;J[g>>2]=J[d+24>>2];J[g+4>>2]=J[d+28>>2];g=(f|0)>2;f=j;if(g){continue}break}}if((e|0)>0){pa(l,0,p)}e=J[l>>2];f=J[l+4>>2];g=J[b+4>>2];J[d+16>>2]=J[b>>2];J[d+20>>2]=g;J[d+8>>2]=e;J[d+12>>2]=f;Ya(d+24|0,a+8|0,d+16|0,d+8|0);J[c>>2]=J[d+24>>2];J[c+4>>2]=J[d+28>>2];na(l);ba=d+32|0;return 1}function ya(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;g=ba-32|0;ba=g;e=J[a>>2];d=J[e>>2];c=J[e+4>>2];k=+(d>>>0)+ +(c>>>0)*4294967296;c=J[e+12>>2]+c|0;i=d;d=J[e+8>>2];e=i+d|0;c=e>>>0>>0?c+1|0:c;i=e;e=!(c|e);k=k/(+((e?1:i)>>>0)+ +((e?0:c)>>>0)*4294967296)*256+.5;a:{if(k<4294967296&k>=0){c=~~k>>>0;break a}c=0}c=c>>>0>=255?255:c;l=!c+c|0;H[g+23|0]=l;j=J[a+16>>2];p=J[a+12>>2];J[g+16>>2]=0;J[g+8>>2]=0;J[g+12>>2]=0;b:{c:{c=(j-p<<1)- -64|0;if(c){if((c|0)<0){break c}h=oa(c);pa(h,0,c)}c=J[a+28>>2]-1|0;if((c|0)<0){d=4096;break b}m=0-l|0;q=m&255;i=J[a+24>>2];d=4096;while(1){n=i&1<>>0<=d>>>0){H[f+h|0]=d;f=f+1|0;d=d>>>8|0}o=(e<<3)+12784|0;Hl(J[o>>2],0,d,0);d=((n?0:q)+d|0)+P(256-e|0,ca+d>>>J[o+4>>2]|0)|0;c=c-1|0;if((c|0)>=0){continue}break}break b}qa();B()}if((j|0)!=(p|0)){m=0-l|0;q=m&255;while(1){j=j-4|0;i=J[j>>2];c=31;while(1){e=c;n=i&1<>>0<=d>>>0){H[f+h|0]=d;f=f+1|0;d=d>>>8|0}o=(c<<3)+12784|0;Hl(J[o>>2],0,d,0);d=((n?0:q)+d|0)+P(256-c|0,ca+d>>>J[o+4>>2]|0)|0;c=e-1|0;if(e){continue}break}if((j|0)!=(p|0)){continue}break}}c=d-4096|0;d:{if(c>>>0<=63){H[f+h|0]=d;f=f+1|0;break d}if(c>>>0<=16383){c=f+h|0;H[c|0]=d;H[c+1|0]=d+12288>>>8;f=f+2|0;break d}if(c>>>0>4194303){break d}c=f+h|0;H[c|0]=d;e=d+8384512|0;H[c+2|0]=e>>>16;H[c+1|0]=e>>>8;f=f+3|0}c=J[b+20>>2];if(!J[b+16>>2]&(c|0)<=0|(c|0)<0){sa(b,J[b+4>>2],g+23|0,g+24|0)}Aa(f,b);c=J[b+20>>2];if(!J[b+16>>2]&(c|0)<=0|(c|0)<0){sa(b,J[b+4>>2],h,f+h|0)}J[g+24>>2]=0;J[g+28>>2]=0;ie(a,g+24|0);J[a+24>>2]=0;J[a+28>>2]=0;J[a+16>>2]=J[a+12>>2];if(h){na(h)}ba=g+32|0}function he(a){var b=0,c=0,d=0,e=0;d=ba-16|0;ba=d;J[a+4>>2]=0;J[a+8>>2]=0;c=a+16|0;b=c;J[b>>2]=0;J[b+4>>2]=0;J[a>>2]=a+4;b=a+28|0;J[b>>2]=0;J[b+4>>2]=0;J[a+12>>2]=c;J[a+24>>2]=b;b=oa(32);J[d>>2]=b;J[d+4>>2]=20;J[d+8>>2]=-2147483616;c=K[1359]|K[1360]<<8|(K[1361]<<16|K[1362]<<24);H[b+16|0]=c;H[b+17|0]=c>>>8;H[b+18|0]=c>>>16;H[b+19|0]=c>>>24;c=K[1355]|K[1356]<<8|(K[1357]<<16|K[1358]<<24);e=K[1351]|K[1352]<<8|(K[1353]<<16|K[1354]<<24);H[b+8|0]=e;H[b+9|0]=e>>>8;H[b+10|0]=e>>>16;H[b+11|0]=e>>>24;H[b+12|0]=c;H[b+13|0]=c>>>8;H[b+14|0]=c>>>16;H[b+15|0]=c>>>24;c=K[1347]|K[1348]<<8|(K[1349]<<16|K[1350]<<24);e=K[1343]|K[1344]<<8|(K[1345]<<16|K[1346]<<24);H[b|0]=e;H[b+1|0]=e>>>8;H[b+2|0]=e>>>16;H[b+3|0]=e>>>24;H[b+4|0]=c;H[b+5|0]=c>>>8;H[b+6|0]=c>>>16;H[b+7|0]=c>>>24;H[b+20|0]=0;e=a+24|0;vb(e,d,1);if(H[d+11|0]<0){na(J[d>>2])}a=oa(32);J[d>>2]=a;J[d+4>>2]=22;J[d+8>>2]=-2147483616;b=K[1338]|K[1339]<<8|(K[1340]<<16|K[1341]<<24);c=K[1334]|K[1335]<<8|(K[1336]<<16|K[1337]<<24);H[a+14|0]=c;H[a+15|0]=c>>>8;H[a+16|0]=c>>>16;H[a+17|0]=c>>>24;H[a+18|0]=b;H[a+19|0]=b>>>8;H[a+20|0]=b>>>16;H[a+21|0]=b>>>24;b=K[1332]|K[1333]<<8|(K[1334]<<16|K[1335]<<24);c=K[1328]|K[1329]<<8|(K[1330]<<16|K[1331]<<24);H[a+8|0]=c;H[a+9|0]=c>>>8;H[a+10|0]=c>>>16;H[a+11|0]=c>>>24;H[a+12|0]=b;H[a+13|0]=b>>>8;H[a+14|0]=b>>>16;H[a+15|0]=b>>>24;b=K[1324]|K[1325]<<8|(K[1326]<<16|K[1327]<<24);c=K[1320]|K[1321]<<8|(K[1322]<<16|K[1323]<<24);H[a|0]=c;H[a+1|0]=c>>>8;H[a+2|0]=c>>>16;H[a+3|0]=c>>>24;H[a+4|0]=b;H[a+5|0]=b>>>8;H[a+6|0]=b>>>16;H[a+7|0]=b>>>24;H[a+22|0]=0;vb(e,d,1);if(H[d+11|0]<0){na(J[d>>2])}ba=d+16|0}function of(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;f=J[a+8>>2];e=J[a+4>>2];if((f-e|0)/12>>>0>=b>>>0){a:{if(!b){break a}d=e;g=P(b,12)-12|0;h=((g>>>0)/12|0)+1&3;if(h){while(1){f=J[c+4>>2];J[d>>2]=J[c>>2];J[d+4>>2]=f;J[d+8>>2]=J[c+8>>2];d=d+12|0;j=j+1|0;if((h|0)!=(j|0)){continue}break}}e=P(b,12)+e|0;if(g>>>0<36){break a}while(1){b=J[c+4>>2];J[d>>2]=J[c>>2];J[d+4>>2]=b;J[d+8>>2]=J[c+8>>2];J[d+20>>2]=J[c+8>>2];b=J[c+4>>2];J[d+12>>2]=J[c>>2];J[d+16>>2]=b;J[d+32>>2]=J[c+8>>2];b=J[c+4>>2];J[d+24>>2]=J[c>>2];J[d+28>>2]=b;b=J[c+4>>2];J[d+36>>2]=J[c>>2];J[d+40>>2]=b;J[d+44>>2]=J[c+8>>2];d=d+48|0;if((e|0)!=(d|0)){continue}break}}J[a+4>>2]=e;return}b:{d=J[a>>2];h=(e-d|0)/12|0;g=h+b|0;if(g>>>0<357913942){f=(f-d|0)/12|0;d=f<<1;k=f>>>0>=178956970?357913941:d>>>0>g>>>0?d:g;if(k){if(k>>>0>=357913942){break b}l=oa(P(k,12))}i=P(h,12)+l|0;d=i;g=P(b,12);h=g-12|0;f=((h>>>0)/12|0)+1&3;if(f){while(1){b=J[c+4>>2];J[d>>2]=J[c>>2];J[d+4>>2]=b;J[d+8>>2]=J[c+8>>2];d=d+12|0;j=j+1|0;if((f|0)!=(j|0)){continue}break}}f=g+i|0;if(h>>>0>=36){while(1){b=J[c+4>>2];J[d>>2]=J[c>>2];J[d+4>>2]=b;J[d+8>>2]=J[c+8>>2];J[d+20>>2]=J[c+8>>2];b=J[c+4>>2];J[d+12>>2]=J[c>>2];J[d+16>>2]=b;J[d+32>>2]=J[c+8>>2];b=J[c+4>>2];J[d+24>>2]=J[c>>2];J[d+28>>2]=b;b=J[c+4>>2];J[d+36>>2]=J[c>>2];J[d+40>>2]=b;J[d+44>>2]=J[c+8>>2];d=d+48|0;if((f|0)!=(d|0)){continue}break}}c=J[a>>2];if((c|0)!=(e|0)){while(1){e=e-12|0;b=J[e+4>>2];i=i-12|0;d=i;J[d>>2]=J[e>>2];J[d+4>>2]=b;J[d+8>>2]=J[e+8>>2];if((c|0)!=(e|0)){continue}break}e=J[a>>2]}J[a+8>>2]=P(k,12)+l;J[a+4>>2]=f;J[a>>2]=i;if(e){na(e)}return}qa();B()}xa();B()}function ng(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;c=ba-112|0;ba=c;d=oa(120);i=J[a+8>>2];J[d+12>>2]=0;J[d+16>>2]=0;J[d>>2]=11224;J[d+4>>2]=0;J[d+20>>2]=0;J[d+24>>2]=0;J[d+28>>2]=0;J[d+32>>2]=0;J[d+36>>2]=0;J[d+40>>2]=0;J[d+44>>2]=0;J[d+48>>2]=0;J[d+52>>2]=0;J[d+56>>2]=0;J[d+60>>2]=0;J[d+8>>2]=11436;e=d- -64|0;J[e>>2]=0;J[e+4>>2]=0;J[d+72>>2]=0;J[d+76>>2]=0;J[d+80>>2]=0;J[d+84>>2]=0;J[d+88>>2]=0;J[d+116>>2]=0;J[d+112>>2]=b;J[d+108>>2]=i;J[d+104>>2]=0;J[d+96>>2]=0;J[d+100>>2]=0;g=J[a+12>>2];J[c+48>>2]=0;J[c+52>>2]=0;J[c+40>>2]=0;J[c+44>>2]=0;f=c+32|0;e=f;J[e>>2]=0;J[e+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;e=c- -64|0;J[e>>2]=0;J[e+4>>2]=0;J[c+72>>2]=0;J[c+76>>2]=0;J[c+80>>2]=0;J[c+84>>2]=0;J[c+88>>2]=0;J[c+104>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+56>>2]=0;J[c+60>>2]=0;J[c+8>>2]=11436;J[c+96>>2]=0;J[c+100>>2]=0;J[c+12>>2]=g;h=J[g>>2];e=J[g+4>>2];H[c+111|0]=0;j=f;f=c+111|0;Na(j,(e-h>>2>>>0)/3|0,f);e=J[c+12>>2];h=J[e+28>>2];e=J[e+24>>2];H[c+111|0]=0;Na(c+44|0,h-e>>2,f);J[c+28>>2]=d;J[c+24>>2]=i;J[c+20>>2]=b;J[c+16>>2]=g;J[d+116>>2]=a+72;a=d+8|0;b=c+8|0;Kc(a,b);a:{if((a|0)==(b|0)){J[d+92>>2]=J[b+84>>2];break a}Rb(d+56|0,J[b+48>>2],J[b+52>>2]);Rb(d+68|0,J[b+60>>2],J[b- -64>>2]);Rb(d+80|0,J[b+72>>2],J[b+76>>2]);J[d+92>>2]=J[b+84>>2];bb(d+96|0,J[b+88>>2],J[b+92>>2])}J[c+8>>2]=11436;a=J[c+96>>2];if(a){J[c+100>>2]=a;na(a)}a=J[c+80>>2];if(a){J[c+84>>2]=a;na(a)}a=J[c+68>>2];if(a){J[c+72>>2]=a;na(a)}a=J[c+56>>2];if(a){J[c+60>>2]=a;na(a)}J[c+8>>2]=11672;a=J[c+44>>2];if(a){na(a)}a=J[c+32>>2];if(a){na(a)}ba=c+112|0;return d}function vb(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;g=ba-48|0;ba=g;f=ba-32|0;ba=f;h=f+21|0;d=h;l=f+32|0;e=l;if(!((d|0)==(e|0)|(c|0)>=0)){H[d|0]=45;d=d+1|0;c=0-c|0}i=e-d|0;a:{if((i|0)<=9){j=P(32-S(c|1)|0,1233)>>12;k=61;if((i|0)<((M[(j<<2)+18192>>2]<=c>>>0)+j|0)){break a}}b:{if(c>>>0<=999999){if(c>>>0<=9999){if(c>>>0<=99){if(c>>>0<=9){H[d|0]=c+48;e=d+1|0;break b}e=Fb(d,c);break b}if(c>>>0<=999){e=(c>>>0)/100|0;H[d|0]=e+48;e=Fb(d+1|0,c-P(e,100)|0);break b}e=fd(d,c);break b}if(c>>>0<=99999){e=(c>>>0)/1e4|0;H[d|0]=e+48;e=fd(d+1|0,c-P(e,1e4)|0);break b}e=ed(d,c);break b}if(c>>>0<=99999999){if(c>>>0<=9999999){e=(c>>>0)/1e6|0;H[d|0]=e+48;e=ed(d+1|0,c-P(e,1e6)|0);break b}e=dd(d,c);break b}if(c>>>0<=999999999){e=(c>>>0)/1e8|0;H[d|0]=e+48;e=dd(d+1|0,c-P(e,1e8)|0);break b}e=d;d=(c>>>0)/1e8|0;e=dd(Fb(e,d),c-P(d,1e8)|0)}k=0}J[f+12>>2]=k;J[f+8>>2]=e;j=ba-16|0;ba=j;e=ba-16|0;ba=e;c=g+8|0;c:{i=J[f+8>>2];f=i-h|0;if(f>>>0<=2147483631){d:{if(f>>>0<11){H[c+11|0]=f|K[c+11|0]&128;H[c+11|0]=K[c+11|0]&127;d=c;break d}k=e+8|0;if(f>>>0>=11){m=f+16&-16;d=m-1|0;d=(d|0)==11?m:d}else{d=10}Ac(k,d+1|0);d=J[e+8>>2];J[c>>2]=d;J[c+8>>2]=J[c+8>>2]&-2147483648|J[e+12>>2]&2147483647;J[c+8>>2]=J[c+8>>2]|-2147483648;J[c+4>>2]=f}while(1){if((h|0)!=(i|0)){H[d|0]=K[h|0];d=d+1|0;h=h+1|0;continue}break}H[e+7|0]=0;H[d|0]=K[e+7|0];ba=e+16|0;break c}gb();B()}ba=j+16|0;ba=l;J[g+32>>2]=b;ge(g+40|0,a,b,g+32|0);a=J[g+40>>2];if(H[a+39|0]<0){na(J[a+28>>2])}b=J[g+12>>2];J[a+28>>2]=J[g+8>>2];J[a+32>>2]=b;J[a+36>>2]=J[g+16>>2];ba=g+48|0}function df(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=Q(0);a:{b:{c:{d:{d=2;e:{if((b|0)==1){break e}d=b;if(!(b-1&b)){break e}d=Ha(b)}b=J[a+4>>2];if(d>>>0<=b>>>0){if(b>>>0<=d>>>0){break a}e=b>>>0<3;i=Q(W(Q(Q(M[a+12>>2])/N[a+20>>2])));f:{if(i=Q(0)){c=~~i>>>0;break f}c=0}g:{h:{if(e){break h}if(Kl(b)>>>0>1){break h}c=c>>>0<2?c:1<<32-S(c-1|0);break g}c=Ha(c)}d=c>>>0>>0?d:c;if(b>>>0<=d>>>0){break a}if(!d){break d}}if(d>>>0>=1073741824){break c}c=oa(d<<2);b=J[a>>2];J[a>>2]=c;if(b){na(b)}J[a+4>>2]=d;e=0;b=0;if(d-1>>>0>=3){g=d&-4;while(1){c=b<<2;J[c+J[a>>2]>>2]=0;J[J[a>>2]+(c|4)>>2]=0;J[J[a>>2]+(c|8)>>2]=0;J[J[a>>2]+(c|12)>>2]=0;b=b+4|0;f=f+4|0;if((g|0)!=(f|0)){continue}break}}c=d&3;if(c){while(1){J[J[a>>2]+(b<<2)>>2]=0;b=b+1|0;e=e+1|0;if((c|0)!=(e|0)){continue}break}}b=J[a+8>>2];if(!b){break a}c=a+8|0;f=J[b+4>>2];e=d-1|0;if(!(e&d)){break b}f=d>>>0<=f>>>0?(f>>>0)%(d>>>0)|0:f;J[J[a>>2]+(f<<2)>>2]=c;while(1){c=J[b>>2];if(!c){break a}e=J[c+4>>2];if(e>>>0>=d>>>0){e=(e>>>0)%(d>>>0)|0}if((e|0)==(f|0)){b=c;continue}g=e<<2;h=g+J[a>>2]|0;if(J[h>>2]){J[b>>2]=J[c>>2];J[c>>2]=J[J[g+J[a>>2]>>2]>>2];J[J[g+J[a>>2]>>2]>>2]=c}else{J[h>>2]=b;b=c;f=e}continue}}b=J[a>>2];J[a>>2]=0;if(b){na(b)}J[a+4>>2]=0;break a}xa();B()}f=e&f;J[J[a>>2]+(f<<2)>>2]=c;while(1){c=J[b>>2];if(!c){break a}d=e&J[c+4>>2];if((d|0)==(f|0)){b=c;continue}g=d<<2;h=g+J[a>>2]|0;if(J[h>>2]){J[b>>2]=J[c>>2];J[c>>2]=J[J[g+J[a>>2]>>2]>>2];J[J[g+J[a>>2]>>2]>>2]=c}else{J[h>>2]=b;b=c;f=d}continue}}}function Be(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;h=ba-32|0;ba=h;e=a+4|0;a=ob(a,b);a:{if((e|0)==(a|0)){break a}b:{if(H[a+39|0]>=0){J[h+24>>2]=J[a+36>>2];b=J[a+32>>2];J[h+16>>2]=J[a+28>>2];J[h+20>>2]=b;break b}Ga(h+16|0,J[a+28>>2],J[a+32>>2])}b=K[h+27|0];a=b<<24>>24;if(!(!((a|0)<0?J[h+20>>2]:b)|(c|0)<=0)){b=0;a=(a|0)<0?J[h+16>>2]:h+16|0;while(1){c:{l=ba-16|0;ba=l;Xe(l,a,h+12|0,0);j=J[l>>2];k=J[l+4>>2];i=ba-32|0;ba=i;n=J[l+12>>2];g=n&2147483647;e=g-1065418752|0;m=g-1082064896|0;f=J[l+8>>2];d:{if((e|0)==(m|0)&f>>>0>>0|e>>>0>>0){g=(n&33554431)<<7|f>>>25;e=0;m=e;f=f&33554431;if(!(!e&(f|0)==16777216?!(j|k):!e&f>>>0<16777216)){e=g+1073741825|0;break d}e=g+1073741824|0;if(f^16777216|j|(k|m)){break d}e=(g&1)+e|0;break d}if(!(!f&(g|0)==2147418112?!(j|k):g>>>0<2147418112)){e=((n&33554431)<<7|f>>>25)&4194303|2143289344;break d}e=2139095040;if(g>>>0>1082064895){break d}e=0;g=g>>>16|0;if(g>>>0<16145){break d}e=n&65535|65536;Pa(i+16|0,j,k,f,e,g-16129|0);Gb(i,j,k,f,e,16257-g|0);f=J[i+8>>2];e=(J[i+12>>2]&33554431)<<7|f>>>25;g=J[i>>2]|(J[i+16>>2]|J[i+24>>2]|(J[i+20>>2]|J[i+28>>2]))!=0;k=J[i+4>>2];j=0;f=f&33554431;if(!(!j&(f|0)==16777216?!(g|k):!j&f>>>0<16777216)){e=e+1|0;break d}if(f^16777216|g|(j|k)){break d}e=(e&1)+e|0}ba=i+32|0;ba=l+16|0;m=a;a=J[h+12>>2];if((m|0)==(a|0)){break c}J[(b<<2)+d>>2]=n&-2147483648|e;b=b+1|0;if((c|0)!=(b|0)){continue}}break}a=K[h+27|0]}if(a<<24>>24>=0){break a}na(J[h+16>>2])}ba=h+32|0}function bh(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;f=J[b+48>>2];d=ba-32|0;ba=d;J[d+28>>2]=a;a=0;a:{if((cb(f)|0)>9){break a}if((da[J[J[b>>2]+8>>2]](b)|0)!=1){break a}a=oa(32);J[d+16>>2]=a;J[d+20>>2]=17;J[d+24>>2]=-2147483616;H[a+16|0]=K[1261];e=K[1257]|K[1258]<<8|(K[1259]<<16|K[1260]<<24);c=K[1253]|K[1254]<<8|(K[1255]<<16|K[1256]<<24);H[a+8|0]=c;H[a+9|0]=c>>>8;H[a+10|0]=c>>>16;H[a+11|0]=c>>>24;H[a+12|0]=e;H[a+13|0]=e>>>8;H[a+14|0]=e>>>16;H[a+15|0]=e>>>24;e=K[1249]|K[1250]<<8|(K[1251]<<16|K[1252]<<24);c=K[1245]|K[1246]<<8|(K[1247]<<16|K[1248]<<24);H[a|0]=c;H[a+1|0]=c>>>8;H[a+2|0]=c>>>16;H[a+3|0]=c>>>24;H[a+4|0]=e;H[a+5|0]=e>>>8;H[a+6|0]=e>>>16;H[a+7|0]=e>>>24;H[a+17|0]=0;a=jb(f,d+28|0,d+16|0,-1);if(H[d+27|0]<0){na(J[d+16>>2])}c=J[b+4>>2];e=J[J[c+8>>2]+(J[d+28>>2]<<2)>>2];b:{if((a|0)==-1|J[e+56>>2]!=3|K[e+24|0]!=2){break b}c=rd(c);if(!c){break b}c=J[c+28>>2];if(!(2558>>>c&c>>>0<12)){h=d,i=Nb(J[b+4>>2],0),J[h+12>>2]=i;c=Pc(d+16|0,1245);g=jb(f,d+12|0,c,-1);if(H[c+11|0]<0){na(J[c>>2])}if((a+(g<<1)|0)>63|g-1>>>0>20){break b}}a=5;if((cb(f)|0)<4){break a}}a=J[e+56>>2];e=cb(f);if((a|0)==1){c:{if((e|0)>3){break c}h=d,i=Nb(J[b+4>>2],0),J[h+12>>2]=i;a=rd(J[b+4>>2]);if(!a){break c}a=J[a+28>>2];if(2558>>>a&a>>>0<12){a=6;break a}a=Pc(d+16|0,1245);b=jb(f,d+12|0,a,-1);if(H[a+11|0]<0){na(J[a>>2])}a=6;if((b|0)>0){break a}}a=0;break a}a=0;if((e|0)>7){break a}a=1;if((cb(f)|0)>1){break a}a=M[J[b+4>>2]+80>>2]<40?1:4}ba=d+32|0;return a}function hc(a,b,c,d,e,f){var g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;e=b-4|0;b=J[e>>2];if(d>>>0<=b>>>0){break c}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break c}if(M[c+(b<<3)>>2]>=M[c+(d<<3)>>2]){break a}J[a>>2]=b;J[e>>2]=d;break a;case 0:case 1:break a;default:break d}}if((d|0)>128){break b}if((a|0)==(b|0)){break a}d=a+4|0;if((d|0)==(b|0)){break a}i=J[c>>2];while(1){f=J[d>>2];e:{e=a;if((e|0)==(d|0)){break e}f:{h=J[i>>2];j=J[i+4>>2]-h>>3;if(j>>>0<=f>>>0){break f}k=h+(f<<3)|0;e=d;while(1){c=e-4|0;g=J[c>>2];if(g>>>0>=j>>>0){break f}if(M[k>>2]>=M[h+(g<<3)>>2]){break e}J[e>>2]=g;e=c;if((e|0)!=(a|0)){continue}break}e=a;break e}ra();B()}J[e>>2]=f;d=d+4|0;if((d|0)!=(b|0)){continue}break}break a}ra();B()}h=d>>>1|0;g=d-h|0;j=h<<2;i=j+a|0;g:{h:{if((d|0)<=(f|0)){Ig(a,i,c,h,e);f=b;b=e+j|0;Ig(i,f,c,g,b);f=(d<<2)+e|0;c=J[c>>2];d=b;while(1){if((d|0)==(f|0)){if((b|0)==(e|0)){break a}while(1){J[a>>2]=J[e>>2];a=a+4|0;e=e+4|0;if((b|0)!=(e|0)){continue}break}break a}i=J[c>>2];g=J[c+4>>2]-i>>3;h=J[d>>2];if(g>>>0<=h>>>0){break h}k=g;g=J[e>>2];if(k>>>0<=g>>>0){break h}j=g;k=h;h=J[i+(h<<3)>>2];i=J[i+(g<<3)>>2];g=h>>>0>=i>>>0;J[a>>2]=g?j:k;d=((i>>>0>h>>>0)<<2)+d|0;a=a+4|0;e=(g<<2)+e|0;if((b|0)!=(e|0)){continue}break}break g}hc(a,i,c,h,e,f);hc(i,b,c,g,e,f);de(a,i,b,c,h,g,e,f);return}ra();B()}if((d|0)==(f|0)){break a}while(1){J[a>>2]=J[d>>2];a=a+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}}}function gc(a,b,c,d,e,f){var g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;e=b-4|0;b=J[e>>2];if(d>>>0<=b>>>0){break c}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break c}if(M[c+(b<<3)>>2]>=M[c+(d<<3)>>2]){break a}J[a>>2]=b;J[e>>2]=d;break a;case 0:case 1:break a;default:break d}}if((d|0)>128){break b}if((a|0)==(b|0)){break a}d=a+4|0;if((d|0)==(b|0)){break a}i=J[c>>2];while(1){f=J[d>>2];e:{e=a;if((e|0)==(d|0)){break e}f:{h=J[i>>2];j=J[i+4>>2]-h>>3;if(j>>>0<=f>>>0){break f}k=h+(f<<3)|0;e=d;while(1){c=e-4|0;g=J[c>>2];if(g>>>0>=j>>>0){break f}if(M[k>>2]>=M[h+(g<<3)>>2]){break e}J[e>>2]=g;e=c;if((e|0)!=(a|0)){continue}break}e=a;break e}ra();B()}J[e>>2]=f;d=d+4|0;if((d|0)!=(b|0)){continue}break}break a}ra();B()}h=d>>>1|0;g=d-h|0;j=h<<2;i=j+a|0;g:{h:{if((d|0)<=(f|0)){Hg(a,i,c,h,e);f=b;b=e+j|0;Hg(i,f,c,g,b);f=(d<<2)+e|0;c=J[c>>2];d=b;while(1){if((d|0)==(f|0)){if((b|0)==(e|0)){break a}while(1){J[a>>2]=J[e>>2];a=a+4|0;e=e+4|0;if((b|0)!=(e|0)){continue}break}break a}i=J[c>>2];g=J[c+4>>2]-i>>3;h=J[d>>2];if(g>>>0<=h>>>0){break h}k=g;g=J[e>>2];if(k>>>0<=g>>>0){break h}j=g;k=h;h=J[i+(h<<3)>>2];i=J[i+(g<<3)>>2];g=h>>>0>=i>>>0;J[a>>2]=g?j:k;d=((i>>>0>h>>>0)<<2)+d|0;a=a+4|0;e=(g<<2)+e|0;if((b|0)!=(e|0)){continue}break}break g}gc(a,i,c,h,e,f);gc(i,b,c,g,e,f);ce(a,i,b,c,h,g,e,f);return}ra();B()}if((d|0)==(f|0)){break a}while(1){J[a>>2]=J[d>>2];a=a+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}}}function fc(a,b,c,d,e,f){var g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;e=b-4|0;b=J[e>>2];if(d>>>0<=b>>>0){break c}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break c}if(M[c+(b<<3)>>2]>=M[c+(d<<3)>>2]){break a}J[a>>2]=b;J[e>>2]=d;break a;case 0:case 1:break a;default:break d}}if((d|0)>128){break b}if((a|0)==(b|0)){break a}d=a+4|0;if((d|0)==(b|0)){break a}i=J[c>>2];while(1){f=J[d>>2];e:{e=a;if((e|0)==(d|0)){break e}f:{h=J[i>>2];j=J[i+4>>2]-h>>3;if(j>>>0<=f>>>0){break f}k=h+(f<<3)|0;e=d;while(1){c=e-4|0;g=J[c>>2];if(g>>>0>=j>>>0){break f}if(M[k>>2]>=M[h+(g<<3)>>2]){break e}J[e>>2]=g;e=c;if((e|0)!=(a|0)){continue}break}e=a;break e}ra();B()}J[e>>2]=f;d=d+4|0;if((d|0)!=(b|0)){continue}break}break a}ra();B()}h=d>>>1|0;g=d-h|0;j=h<<2;i=j+a|0;g:{h:{if((d|0)<=(f|0)){Gg(a,i,c,h,e);f=b;b=e+j|0;Gg(i,f,c,g,b);f=(d<<2)+e|0;c=J[c>>2];d=b;while(1){if((d|0)==(f|0)){if((b|0)==(e|0)){break a}while(1){J[a>>2]=J[e>>2];a=a+4|0;e=e+4|0;if((b|0)!=(e|0)){continue}break}break a}i=J[c>>2];g=J[c+4>>2]-i>>3;h=J[d>>2];if(g>>>0<=h>>>0){break h}k=g;g=J[e>>2];if(k>>>0<=g>>>0){break h}j=g;k=h;h=J[i+(h<<3)>>2];i=J[i+(g<<3)>>2];g=h>>>0>=i>>>0;J[a>>2]=g?j:k;d=((i>>>0>h>>>0)<<2)+d|0;a=a+4|0;e=(g<<2)+e|0;if((b|0)!=(e|0)){continue}break}break g}fc(a,i,c,h,e,f);fc(i,b,c,g,e,f);be(a,i,b,c,h,g,e,f);return}ra();B()}if((d|0)==(f|0)){break a}while(1){J[a>>2]=J[d>>2];a=a+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}}}function ec(a,b,c,d,e,f){var g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;e=b-4|0;b=J[e>>2];if(d>>>0<=b>>>0){break c}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break c}if(M[c+(b<<3)>>2]>=M[c+(d<<3)>>2]){break a}J[a>>2]=b;J[e>>2]=d;break a;case 0:case 1:break a;default:break d}}if((d|0)>128){break b}if((a|0)==(b|0)){break a}d=a+4|0;if((d|0)==(b|0)){break a}i=J[c>>2];while(1){f=J[d>>2];e:{e=a;if((e|0)==(d|0)){break e}f:{h=J[i>>2];j=J[i+4>>2]-h>>3;if(j>>>0<=f>>>0){break f}k=h+(f<<3)|0;e=d;while(1){c=e-4|0;g=J[c>>2];if(g>>>0>=j>>>0){break f}if(M[k>>2]>=M[h+(g<<3)>>2]){break e}J[e>>2]=g;e=c;if((e|0)!=(a|0)){continue}break}e=a;break e}ra();B()}J[e>>2]=f;d=d+4|0;if((d|0)!=(b|0)){continue}break}break a}ra();B()}h=d>>>1|0;g=d-h|0;j=h<<2;i=j+a|0;g:{h:{if((d|0)<=(f|0)){Fg(a,i,c,h,e);f=b;b=e+j|0;Fg(i,f,c,g,b);f=(d<<2)+e|0;c=J[c>>2];d=b;while(1){if((d|0)==(f|0)){if((b|0)==(e|0)){break a}while(1){J[a>>2]=J[e>>2];a=a+4|0;e=e+4|0;if((b|0)!=(e|0)){continue}break}break a}i=J[c>>2];g=J[c+4>>2]-i>>3;h=J[d>>2];if(g>>>0<=h>>>0){break h}k=g;g=J[e>>2];if(k>>>0<=g>>>0){break h}j=g;k=h;h=J[i+(h<<3)>>2];i=J[i+(g<<3)>>2];g=h>>>0>=i>>>0;J[a>>2]=g?j:k;d=((i>>>0>h>>>0)<<2)+d|0;a=a+4|0;e=(g<<2)+e|0;if((b|0)!=(e|0)){continue}break}break g}ec(a,i,c,h,e,f);ec(i,b,c,g,e,f);ae(a,i,b,c,h,g,e,f);return}ra();B()}if((d|0)==(f|0)){break a}while(1){J[a>>2]=J[d>>2];a=a+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}}}function dc(a,b,c,d,e,f){var g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;e=b-4|0;b=J[e>>2];if(d>>>0<=b>>>0){break c}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break c}if(M[c+(b<<3)>>2]>=M[c+(d<<3)>>2]){break a}J[a>>2]=b;J[e>>2]=d;break a;case 0:case 1:break a;default:break d}}if((d|0)>128){break b}if((a|0)==(b|0)){break a}d=a+4|0;if((d|0)==(b|0)){break a}i=J[c>>2];while(1){f=J[d>>2];e:{e=a;if((e|0)==(d|0)){break e}f:{h=J[i>>2];j=J[i+4>>2]-h>>3;if(j>>>0<=f>>>0){break f}k=h+(f<<3)|0;e=d;while(1){c=e-4|0;g=J[c>>2];if(g>>>0>=j>>>0){break f}if(M[k>>2]>=M[h+(g<<3)>>2]){break e}J[e>>2]=g;e=c;if((e|0)!=(a|0)){continue}break}e=a;break e}ra();B()}J[e>>2]=f;d=d+4|0;if((d|0)!=(b|0)){continue}break}break a}ra();B()}h=d>>>1|0;g=d-h|0;j=h<<2;i=j+a|0;g:{h:{if((d|0)<=(f|0)){Eg(a,i,c,h,e);f=b;b=e+j|0;Eg(i,f,c,g,b);f=(d<<2)+e|0;c=J[c>>2];d=b;while(1){if((d|0)==(f|0)){if((b|0)==(e|0)){break a}while(1){J[a>>2]=J[e>>2];a=a+4|0;e=e+4|0;if((b|0)!=(e|0)){continue}break}break a}i=J[c>>2];g=J[c+4>>2]-i>>3;h=J[d>>2];if(g>>>0<=h>>>0){break h}k=g;g=J[e>>2];if(k>>>0<=g>>>0){break h}j=g;k=h;h=J[i+(h<<3)>>2];i=J[i+(g<<3)>>2];g=h>>>0>=i>>>0;J[a>>2]=g?j:k;d=((i>>>0>h>>>0)<<2)+d|0;a=a+4|0;e=(g<<2)+e|0;if((b|0)!=(e|0)){continue}break}break g}dc(a,i,c,h,e,f);dc(i,b,c,g,e,f);$d(a,i,b,c,h,g,e,f);return}ra();B()}if((d|0)==(f|0)){break a}while(1){J[a>>2]=J[d>>2];a=a+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}}}function cc(a,b,c,d,e,f){var g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;e=b-4|0;b=J[e>>2];if(d>>>0<=b>>>0){break c}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break c}if(M[c+(b<<3)>>2]>=M[c+(d<<3)>>2]){break a}J[a>>2]=b;J[e>>2]=d;break a;case 0:case 1:break a;default:break d}}if((d|0)>128){break b}if((a|0)==(b|0)){break a}d=a+4|0;if((d|0)==(b|0)){break a}i=J[c>>2];while(1){f=J[d>>2];e:{e=a;if((e|0)==(d|0)){break e}f:{h=J[i>>2];j=J[i+4>>2]-h>>3;if(j>>>0<=f>>>0){break f}k=h+(f<<3)|0;e=d;while(1){c=e-4|0;g=J[c>>2];if(g>>>0>=j>>>0){break f}if(M[k>>2]>=M[h+(g<<3)>>2]){break e}J[e>>2]=g;e=c;if((e|0)!=(a|0)){continue}break}e=a;break e}ra();B()}J[e>>2]=f;d=d+4|0;if((d|0)!=(b|0)){continue}break}break a}ra();B()}h=d>>>1|0;g=d-h|0;j=h<<2;i=j+a|0;g:{h:{if((d|0)<=(f|0)){Dg(a,i,c,h,e);f=b;b=e+j|0;Dg(i,f,c,g,b);f=(d<<2)+e|0;c=J[c>>2];d=b;while(1){if((d|0)==(f|0)){if((b|0)==(e|0)){break a}while(1){J[a>>2]=J[e>>2];a=a+4|0;e=e+4|0;if((b|0)!=(e|0)){continue}break}break a}i=J[c>>2];g=J[c+4>>2]-i>>3;h=J[d>>2];if(g>>>0<=h>>>0){break h}k=g;g=J[e>>2];if(k>>>0<=g>>>0){break h}j=g;k=h;h=J[i+(h<<3)>>2];i=J[i+(g<<3)>>2];g=h>>>0>=i>>>0;J[a>>2]=g?j:k;d=((i>>>0>h>>>0)<<2)+d|0;a=a+4|0;e=(g<<2)+e|0;if((b|0)!=(e|0)){continue}break}break g}cc(a,i,c,h,e,f);cc(i,b,c,g,e,f);_d(a,i,b,c,h,g,e,f);return}ra();B()}if((d|0)==(f|0)){break a}while(1){J[a>>2]=J[d>>2];a=a+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}}}function bc(a,b,c,d,e,f){var g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;e=b-4|0;b=J[e>>2];if(d>>>0<=b>>>0){break c}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break c}if(M[c+(b<<3)>>2]>=M[c+(d<<3)>>2]){break a}J[a>>2]=b;J[e>>2]=d;break a;case 0:case 1:break a;default:break d}}if((d|0)>128){break b}if((a|0)==(b|0)){break a}d=a+4|0;if((d|0)==(b|0)){break a}i=J[c>>2];while(1){f=J[d>>2];e:{e=a;if((e|0)==(d|0)){break e}f:{h=J[i>>2];j=J[i+4>>2]-h>>3;if(j>>>0<=f>>>0){break f}k=h+(f<<3)|0;e=d;while(1){c=e-4|0;g=J[c>>2];if(g>>>0>=j>>>0){break f}if(M[k>>2]>=M[h+(g<<3)>>2]){break e}J[e>>2]=g;e=c;if((e|0)!=(a|0)){continue}break}e=a;break e}ra();B()}J[e>>2]=f;d=d+4|0;if((d|0)!=(b|0)){continue}break}break a}ra();B()}h=d>>>1|0;g=d-h|0;j=h<<2;i=j+a|0;g:{h:{if((d|0)<=(f|0)){Cg(a,i,c,h,e);f=b;b=e+j|0;Cg(i,f,c,g,b);f=(d<<2)+e|0;c=J[c>>2];d=b;while(1){if((d|0)==(f|0)){if((b|0)==(e|0)){break a}while(1){J[a>>2]=J[e>>2];a=a+4|0;e=e+4|0;if((b|0)!=(e|0)){continue}break}break a}i=J[c>>2];g=J[c+4>>2]-i>>3;h=J[d>>2];if(g>>>0<=h>>>0){break h}k=g;g=J[e>>2];if(k>>>0<=g>>>0){break h}j=g;k=h;h=J[i+(h<<3)>>2];i=J[i+(g<<3)>>2];g=h>>>0>=i>>>0;J[a>>2]=g?j:k;d=((i>>>0>h>>>0)<<2)+d|0;a=a+4|0;e=(g<<2)+e|0;if((b|0)!=(e|0)){continue}break}break g}bc(a,i,c,h,e,f);bc(i,b,c,g,e,f);Zd(a,i,b,c,h,g,e,f);return}ra();B()}if((d|0)==(f|0)){break a}while(1){J[a>>2]=J[d>>2];a=a+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}}}function ac(a,b,c,d,e,f){var g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;e=b-4|0;b=J[e>>2];if(d>>>0<=b>>>0){break c}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break c}if(M[c+(b<<3)>>2]>=M[c+(d<<3)>>2]){break a}J[a>>2]=b;J[e>>2]=d;break a;case 0:case 1:break a;default:break d}}if((d|0)>128){break b}if((a|0)==(b|0)){break a}d=a+4|0;if((d|0)==(b|0)){break a}i=J[c>>2];while(1){f=J[d>>2];e:{e=a;if((e|0)==(d|0)){break e}f:{h=J[i>>2];j=J[i+4>>2]-h>>3;if(j>>>0<=f>>>0){break f}k=h+(f<<3)|0;e=d;while(1){c=e-4|0;g=J[c>>2];if(g>>>0>=j>>>0){break f}if(M[k>>2]>=M[h+(g<<3)>>2]){break e}J[e>>2]=g;e=c;if((e|0)!=(a|0)){continue}break}e=a;break e}ra();B()}J[e>>2]=f;d=d+4|0;if((d|0)!=(b|0)){continue}break}break a}ra();B()}h=d>>>1|0;g=d-h|0;j=h<<2;i=j+a|0;g:{h:{if((d|0)<=(f|0)){Bg(a,i,c,h,e);f=b;b=e+j|0;Bg(i,f,c,g,b);f=(d<<2)+e|0;c=J[c>>2];d=b;while(1){if((d|0)==(f|0)){if((b|0)==(e|0)){break a}while(1){J[a>>2]=J[e>>2];a=a+4|0;e=e+4|0;if((b|0)!=(e|0)){continue}break}break a}i=J[c>>2];g=J[c+4>>2]-i>>3;h=J[d>>2];if(g>>>0<=h>>>0){break h}k=g;g=J[e>>2];if(k>>>0<=g>>>0){break h}j=g;k=h;h=J[i+(h<<3)>>2];i=J[i+(g<<3)>>2];g=h>>>0>=i>>>0;J[a>>2]=g?j:k;d=((i>>>0>h>>>0)<<2)+d|0;a=a+4|0;e=(g<<2)+e|0;if((b|0)!=(e|0)){continue}break}break g}ac(a,i,c,h,e,f);ac(i,b,c,g,e,f);Yd(a,i,b,c,h,g,e,f);return}ra();B()}if((d|0)==(f|0)){break a}while(1){J[a>>2]=J[d>>2];a=a+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}}}function _b(a,b,c,d,e,f){var g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;e=b-4|0;b=J[e>>2];if(d>>>0<=b>>>0){break c}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break c}if(M[c+(b<<3)>>2]>=M[c+(d<<3)>>2]){break a}J[a>>2]=b;J[e>>2]=d;break a;case 0:case 1:break a;default:break d}}if((d|0)>128){break b}if((a|0)==(b|0)){break a}d=a+4|0;if((d|0)==(b|0)){break a}i=J[c>>2];while(1){f=J[d>>2];e:{e=a;if((e|0)==(d|0)){break e}f:{h=J[i>>2];j=J[i+4>>2]-h>>3;if(j>>>0<=f>>>0){break f}k=h+(f<<3)|0;e=d;while(1){c=e-4|0;g=J[c>>2];if(g>>>0>=j>>>0){break f}if(M[k>>2]>=M[h+(g<<3)>>2]){break e}J[e>>2]=g;e=c;if((e|0)!=(a|0)){continue}break}e=a;break e}ra();B()}J[e>>2]=f;d=d+4|0;if((d|0)!=(b|0)){continue}break}break a}ra();B()}h=d>>>1|0;g=d-h|0;j=h<<2;i=j+a|0;g:{h:{if((d|0)<=(f|0)){zg(a,i,c,h,e);f=b;b=e+j|0;zg(i,f,c,g,b);f=(d<<2)+e|0;c=J[c>>2];d=b;while(1){if((d|0)==(f|0)){if((b|0)==(e|0)){break a}while(1){J[a>>2]=J[e>>2];a=a+4|0;e=e+4|0;if((b|0)!=(e|0)){continue}break}break a}i=J[c>>2];g=J[c+4>>2]-i>>3;h=J[d>>2];if(g>>>0<=h>>>0){break h}k=g;g=J[e>>2];if(k>>>0<=g>>>0){break h}j=g;k=h;h=J[i+(h<<3)>>2];i=J[i+(g<<3)>>2];g=h>>>0>=i>>>0;J[a>>2]=g?j:k;d=((i>>>0>h>>>0)<<2)+d|0;a=a+4|0;e=(g<<2)+e|0;if((b|0)!=(e|0)){continue}break}break g}_b(a,i,c,h,e,f);_b(i,b,c,g,e,f);Wd(a,i,b,c,h,g,e,f);return}ra();B()}if((d|0)==(f|0)){break a}while(1){J[a>>2]=J[d>>2];a=a+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}}}function Zb(a,b,c,d,e,f){var g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;e=b-4|0;b=J[e>>2];if(d>>>0<=b>>>0){break c}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break c}if(M[c+(b<<3)>>2]>=M[c+(d<<3)>>2]){break a}J[a>>2]=b;J[e>>2]=d;break a;case 0:case 1:break a;default:break d}}if((d|0)>128){break b}if((a|0)==(b|0)){break a}d=a+4|0;if((d|0)==(b|0)){break a}i=J[c>>2];while(1){f=J[d>>2];e:{e=a;if((e|0)==(d|0)){break e}f:{h=J[i>>2];j=J[i+4>>2]-h>>3;if(j>>>0<=f>>>0){break f}k=h+(f<<3)|0;e=d;while(1){c=e-4|0;g=J[c>>2];if(g>>>0>=j>>>0){break f}if(M[k>>2]>=M[h+(g<<3)>>2]){break e}J[e>>2]=g;e=c;if((e|0)!=(a|0)){continue}break}e=a;break e}ra();B()}J[e>>2]=f;d=d+4|0;if((d|0)!=(b|0)){continue}break}break a}ra();B()}h=d>>>1|0;g=d-h|0;j=h<<2;i=j+a|0;g:{h:{if((d|0)<=(f|0)){yg(a,i,c,h,e);f=b;b=e+j|0;yg(i,f,c,g,b);f=(d<<2)+e|0;c=J[c>>2];d=b;while(1){if((d|0)==(f|0)){if((b|0)==(e|0)){break a}while(1){J[a>>2]=J[e>>2];a=a+4|0;e=e+4|0;if((b|0)!=(e|0)){continue}break}break a}i=J[c>>2];g=J[c+4>>2]-i>>3;h=J[d>>2];if(g>>>0<=h>>>0){break h}k=g;g=J[e>>2];if(k>>>0<=g>>>0){break h}j=g;k=h;h=J[i+(h<<3)>>2];i=J[i+(g<<3)>>2];g=h>>>0>=i>>>0;J[a>>2]=g?j:k;d=((i>>>0>h>>>0)<<2)+d|0;a=a+4|0;e=(g<<2)+e|0;if((b|0)!=(e|0)){continue}break}break g}Zb(a,i,c,h,e,f);Zb(i,b,c,g,e,f);Vd(a,i,b,c,h,g,e,f);return}ra();B()}if((d|0)==(f|0)){break a}while(1){J[a>>2]=J[d>>2];a=a+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}}}function Yb(a,b,c,d,e,f){var g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;e=b-4|0;b=J[e>>2];if(d>>>0<=b>>>0){break c}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break c}if(M[c+(b<<3)>>2]>=M[c+(d<<3)>>2]){break a}J[a>>2]=b;J[e>>2]=d;break a;case 0:case 1:break a;default:break d}}if((d|0)>128){break b}if((a|0)==(b|0)){break a}d=a+4|0;if((d|0)==(b|0)){break a}i=J[c>>2];while(1){f=J[d>>2];e:{e=a;if((e|0)==(d|0)){break e}f:{h=J[i>>2];j=J[i+4>>2]-h>>3;if(j>>>0<=f>>>0){break f}k=h+(f<<3)|0;e=d;while(1){c=e-4|0;g=J[c>>2];if(g>>>0>=j>>>0){break f}if(M[k>>2]>=M[h+(g<<3)>>2]){break e}J[e>>2]=g;e=c;if((e|0)!=(a|0)){continue}break}e=a;break e}ra();B()}J[e>>2]=f;d=d+4|0;if((d|0)!=(b|0)){continue}break}break a}ra();B()}h=d>>>1|0;g=d-h|0;j=h<<2;i=j+a|0;g:{h:{if((d|0)<=(f|0)){wg(a,i,c,h,e);f=b;b=e+j|0;wg(i,f,c,g,b);f=(d<<2)+e|0;c=J[c>>2];d=b;while(1){if((d|0)==(f|0)){if((b|0)==(e|0)){break a}while(1){J[a>>2]=J[e>>2];a=a+4|0;e=e+4|0;if((b|0)!=(e|0)){continue}break}break a}i=J[c>>2];g=J[c+4>>2]-i>>3;h=J[d>>2];if(g>>>0<=h>>>0){break h}k=g;g=J[e>>2];if(k>>>0<=g>>>0){break h}j=g;k=h;h=J[i+(h<<3)>>2];i=J[i+(g<<3)>>2];g=h>>>0>=i>>>0;J[a>>2]=g?j:k;d=((i>>>0>h>>>0)<<2)+d|0;a=a+4|0;e=(g<<2)+e|0;if((b|0)!=(e|0)){continue}break}break g}Yb(a,i,c,h,e,f);Yb(i,b,c,g,e,f);Ud(a,i,b,c,h,g,e,f);return}ra();B()}if((d|0)==(f|0)){break a}while(1){J[a>>2]=J[d>>2];a=a+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}}}function Xb(a,b,c,d,e,f){var g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;e=b-4|0;b=J[e>>2];if(d>>>0<=b>>>0){break c}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break c}if(M[c+(b<<3)>>2]>=M[c+(d<<3)>>2]){break a}J[a>>2]=b;J[e>>2]=d;break a;case 0:case 1:break a;default:break d}}if((d|0)>128){break b}if((a|0)==(b|0)){break a}d=a+4|0;if((d|0)==(b|0)){break a}i=J[c>>2];while(1){f=J[d>>2];e:{e=a;if((e|0)==(d|0)){break e}f:{h=J[i>>2];j=J[i+4>>2]-h>>3;if(j>>>0<=f>>>0){break f}k=h+(f<<3)|0;e=d;while(1){c=e-4|0;g=J[c>>2];if(g>>>0>=j>>>0){break f}if(M[k>>2]>=M[h+(g<<3)>>2]){break e}J[e>>2]=g;e=c;if((e|0)!=(a|0)){continue}break}e=a;break e}ra();B()}J[e>>2]=f;d=d+4|0;if((d|0)!=(b|0)){continue}break}break a}ra();B()}h=d>>>1|0;g=d-h|0;j=h<<2;i=j+a|0;g:{h:{if((d|0)<=(f|0)){vg(a,i,c,h,e);f=b;b=e+j|0;vg(i,f,c,g,b);f=(d<<2)+e|0;c=J[c>>2];d=b;while(1){if((d|0)==(f|0)){if((b|0)==(e|0)){break a}while(1){J[a>>2]=J[e>>2];a=a+4|0;e=e+4|0;if((b|0)!=(e|0)){continue}break}break a}i=J[c>>2];g=J[c+4>>2]-i>>3;h=J[d>>2];if(g>>>0<=h>>>0){break h}k=g;g=J[e>>2];if(k>>>0<=g>>>0){break h}j=g;k=h;h=J[i+(h<<3)>>2];i=J[i+(g<<3)>>2];g=h>>>0>=i>>>0;J[a>>2]=g?j:k;d=((i>>>0>h>>>0)<<2)+d|0;a=a+4|0;e=(g<<2)+e|0;if((b|0)!=(e|0)){continue}break}break g}Xb(a,i,c,h,e,f);Xb(i,b,c,g,e,f);Td(a,i,b,c,h,g,e,f);return}ra();B()}if((d|0)==(f|0)){break a}while(1){J[a>>2]=J[d>>2];a=a+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}}}function Wb(a,b,c,d,e,f){var g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;e=b-4|0;b=J[e>>2];if(d>>>0<=b>>>0){break c}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break c}if(M[c+(b<<3)>>2]>=M[c+(d<<3)>>2]){break a}J[a>>2]=b;J[e>>2]=d;break a;case 0:case 1:break a;default:break d}}if((d|0)>128){break b}if((a|0)==(b|0)){break a}d=a+4|0;if((d|0)==(b|0)){break a}i=J[c>>2];while(1){f=J[d>>2];e:{e=a;if((e|0)==(d|0)){break e}f:{h=J[i>>2];j=J[i+4>>2]-h>>3;if(j>>>0<=f>>>0){break f}k=h+(f<<3)|0;e=d;while(1){c=e-4|0;g=J[c>>2];if(g>>>0>=j>>>0){break f}if(M[k>>2]>=M[h+(g<<3)>>2]){break e}J[e>>2]=g;e=c;if((e|0)!=(a|0)){continue}break}e=a;break e}ra();B()}J[e>>2]=f;d=d+4|0;if((d|0)!=(b|0)){continue}break}break a}ra();B()}h=d>>>1|0;g=d-h|0;j=h<<2;i=j+a|0;g:{h:{if((d|0)<=(f|0)){ug(a,i,c,h,e);f=b;b=e+j|0;ug(i,f,c,g,b);f=(d<<2)+e|0;c=J[c>>2];d=b;while(1){if((d|0)==(f|0)){if((b|0)==(e|0)){break a}while(1){J[a>>2]=J[e>>2];a=a+4|0;e=e+4|0;if((b|0)!=(e|0)){continue}break}break a}i=J[c>>2];g=J[c+4>>2]-i>>3;h=J[d>>2];if(g>>>0<=h>>>0){break h}k=g;g=J[e>>2];if(k>>>0<=g>>>0){break h}j=g;k=h;h=J[i+(h<<3)>>2];i=J[i+(g<<3)>>2];g=h>>>0>=i>>>0;J[a>>2]=g?j:k;d=((i>>>0>h>>>0)<<2)+d|0;a=a+4|0;e=(g<<2)+e|0;if((b|0)!=(e|0)){continue}break}break g}Wb(a,i,c,h,e,f);Wb(i,b,c,g,e,f);Sd(a,i,b,c,h,g,e,f);return}ra();B()}if((d|0)==(f|0)){break a}while(1){J[a>>2]=J[d>>2];a=a+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}}}function Vb(a,b,c,d,e,f){var g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;e=b-4|0;b=J[e>>2];if(d>>>0<=b>>>0){break c}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break c}if(M[c+(b<<3)>>2]>=M[c+(d<<3)>>2]){break a}J[a>>2]=b;J[e>>2]=d;break a;case 0:case 1:break a;default:break d}}if((d|0)>128){break b}if((a|0)==(b|0)){break a}d=a+4|0;if((d|0)==(b|0)){break a}i=J[c>>2];while(1){f=J[d>>2];e:{e=a;if((e|0)==(d|0)){break e}f:{h=J[i>>2];j=J[i+4>>2]-h>>3;if(j>>>0<=f>>>0){break f}k=h+(f<<3)|0;e=d;while(1){c=e-4|0;g=J[c>>2];if(g>>>0>=j>>>0){break f}if(M[k>>2]>=M[h+(g<<3)>>2]){break e}J[e>>2]=g;e=c;if((e|0)!=(a|0)){continue}break}e=a;break e}ra();B()}J[e>>2]=f;d=d+4|0;if((d|0)!=(b|0)){continue}break}break a}ra();B()}h=d>>>1|0;g=d-h|0;j=h<<2;i=j+a|0;g:{h:{if((d|0)<=(f|0)){tg(a,i,c,h,e);f=b;b=e+j|0;tg(i,f,c,g,b);f=(d<<2)+e|0;c=J[c>>2];d=b;while(1){if((d|0)==(f|0)){if((b|0)==(e|0)){break a}while(1){J[a>>2]=J[e>>2];a=a+4|0;e=e+4|0;if((b|0)!=(e|0)){continue}break}break a}i=J[c>>2];g=J[c+4>>2]-i>>3;h=J[d>>2];if(g>>>0<=h>>>0){break h}k=g;g=J[e>>2];if(k>>>0<=g>>>0){break h}j=g;k=h;h=J[i+(h<<3)>>2];i=J[i+(g<<3)>>2];g=h>>>0>=i>>>0;J[a>>2]=g?j:k;d=((i>>>0>h>>>0)<<2)+d|0;a=a+4|0;e=(g<<2)+e|0;if((b|0)!=(e|0)){continue}break}break g}Vb(a,i,c,h,e,f);Vb(i,b,c,g,e,f);Rd(a,i,b,c,h,g,e,f);return}ra();B()}if((d|0)==(f|0)){break a}while(1){J[a>>2]=J[d>>2];a=a+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}}}function Ub(a,b,c,d,e,f){var g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;e=b-4|0;b=J[e>>2];if(d>>>0<=b>>>0){break c}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break c}if(M[c+(b<<3)>>2]>=M[c+(d<<3)>>2]){break a}J[a>>2]=b;J[e>>2]=d;break a;case 0:case 1:break a;default:break d}}if((d|0)>128){break b}if((a|0)==(b|0)){break a}d=a+4|0;if((d|0)==(b|0)){break a}i=J[c>>2];while(1){f=J[d>>2];e:{e=a;if((e|0)==(d|0)){break e}f:{h=J[i>>2];j=J[i+4>>2]-h>>3;if(j>>>0<=f>>>0){break f}k=h+(f<<3)|0;e=d;while(1){c=e-4|0;g=J[c>>2];if(g>>>0>=j>>>0){break f}if(M[k>>2]>=M[h+(g<<3)>>2]){break e}J[e>>2]=g;e=c;if((e|0)!=(a|0)){continue}break}e=a;break e}ra();B()}J[e>>2]=f;d=d+4|0;if((d|0)!=(b|0)){continue}break}break a}ra();B()}h=d>>>1|0;g=d-h|0;j=h<<2;i=j+a|0;g:{h:{if((d|0)<=(f|0)){sg(a,i,c,h,e);f=b;b=e+j|0;sg(i,f,c,g,b);f=(d<<2)+e|0;c=J[c>>2];d=b;while(1){if((d|0)==(f|0)){if((b|0)==(e|0)){break a}while(1){J[a>>2]=J[e>>2];a=a+4|0;e=e+4|0;if((b|0)!=(e|0)){continue}break}break a}i=J[c>>2];g=J[c+4>>2]-i>>3;h=J[d>>2];if(g>>>0<=h>>>0){break h}k=g;g=J[e>>2];if(k>>>0<=g>>>0){break h}j=g;k=h;h=J[i+(h<<3)>>2];i=J[i+(g<<3)>>2];g=h>>>0>=i>>>0;J[a>>2]=g?j:k;d=((i>>>0>h>>>0)<<2)+d|0;a=a+4|0;e=(g<<2)+e|0;if((b|0)!=(e|0)){continue}break}break g}Ub(a,i,c,h,e,f);Ub(i,b,c,g,e,f);Qd(a,i,b,c,h,g,e,f);return}ra();B()}if((d|0)==(f|0)){break a}while(1){J[a>>2]=J[d>>2];a=a+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}}}function Tb(a,b,c,d,e,f){var g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;e=b-4|0;b=J[e>>2];if(d>>>0<=b>>>0){break c}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break c}if(M[c+(b<<3)>>2]>=M[c+(d<<3)>>2]){break a}J[a>>2]=b;J[e>>2]=d;break a;case 0:case 1:break a;default:break d}}if((d|0)>128){break b}if((a|0)==(b|0)){break a}d=a+4|0;if((d|0)==(b|0)){break a}i=J[c>>2];while(1){f=J[d>>2];e:{e=a;if((e|0)==(d|0)){break e}f:{h=J[i>>2];j=J[i+4>>2]-h>>3;if(j>>>0<=f>>>0){break f}k=h+(f<<3)|0;e=d;while(1){c=e-4|0;g=J[c>>2];if(g>>>0>=j>>>0){break f}if(M[k>>2]>=M[h+(g<<3)>>2]){break e}J[e>>2]=g;e=c;if((e|0)!=(a|0)){continue}break}e=a;break e}ra();B()}J[e>>2]=f;d=d+4|0;if((d|0)!=(b|0)){continue}break}break a}ra();B()}h=d>>>1|0;g=d-h|0;j=h<<2;i=j+a|0;g:{h:{if((d|0)<=(f|0)){rg(a,i,c,h,e);f=b;b=e+j|0;rg(i,f,c,g,b);f=(d<<2)+e|0;c=J[c>>2];d=b;while(1){if((d|0)==(f|0)){if((b|0)==(e|0)){break a}while(1){J[a>>2]=J[e>>2];a=a+4|0;e=e+4|0;if((b|0)!=(e|0)){continue}break}break a}i=J[c>>2];g=J[c+4>>2]-i>>3;h=J[d>>2];if(g>>>0<=h>>>0){break h}k=g;g=J[e>>2];if(k>>>0<=g>>>0){break h}j=g;k=h;h=J[i+(h<<3)>>2];i=J[i+(g<<3)>>2];g=h>>>0>=i>>>0;J[a>>2]=g?j:k;d=((i>>>0>h>>>0)<<2)+d|0;a=a+4|0;e=(g<<2)+e|0;if((b|0)!=(e|0)){continue}break}break g}Tb(a,i,c,h,e,f);Tb(i,b,c,g,e,f);Pd(a,i,b,c,h,g,e,f);return}ra();B()}if((d|0)==(f|0)){break a}while(1){J[a>>2]=J[d>>2];a=a+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}}}function Sb(a,b,c,d,e,f){var g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;e=b-4|0;b=J[e>>2];if(d>>>0<=b>>>0){break c}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break c}if(M[c+(b<<3)>>2]>=M[c+(d<<3)>>2]){break a}J[a>>2]=b;J[e>>2]=d;break a;case 0:case 1:break a;default:break d}}if((d|0)>128){break b}if((a|0)==(b|0)){break a}d=a+4|0;if((d|0)==(b|0)){break a}i=J[c>>2];while(1){f=J[d>>2];e:{e=a;if((e|0)==(d|0)){break e}f:{h=J[i>>2];j=J[i+4>>2]-h>>3;if(j>>>0<=f>>>0){break f}k=h+(f<<3)|0;e=d;while(1){c=e-4|0;g=J[c>>2];if(g>>>0>=j>>>0){break f}if(M[k>>2]>=M[h+(g<<3)>>2]){break e}J[e>>2]=g;e=c;if((e|0)!=(a|0)){continue}break}e=a;break e}ra();B()}J[e>>2]=f;d=d+4|0;if((d|0)!=(b|0)){continue}break}break a}ra();B()}h=d>>>1|0;g=d-h|0;j=h<<2;i=j+a|0;g:{h:{if((d|0)<=(f|0)){qg(a,i,c,h,e);f=b;b=e+j|0;qg(i,f,c,g,b);f=(d<<2)+e|0;c=J[c>>2];d=b;while(1){if((d|0)==(f|0)){if((b|0)==(e|0)){break a}while(1){J[a>>2]=J[e>>2];a=a+4|0;e=e+4|0;if((b|0)!=(e|0)){continue}break}break a}i=J[c>>2];g=J[c+4>>2]-i>>3;h=J[d>>2];if(g>>>0<=h>>>0){break h}k=g;g=J[e>>2];if(k>>>0<=g>>>0){break h}j=g;k=h;h=J[i+(h<<3)>>2];i=J[i+(g<<3)>>2];g=h>>>0>=i>>>0;J[a>>2]=g?j:k;d=((i>>>0>h>>>0)<<2)+d|0;a=a+4|0;e=(g<<2)+e|0;if((b|0)!=(e|0)){continue}break}break g}Sb(a,i,c,h,e,f);Sb(i,b,c,g,e,f);Od(a,i,b,c,h,g,e,f);return}ra();B()}if((d|0)==(f|0)){break a}while(1){J[a>>2]=J[d>>2];a=a+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}}}function $b(a,b,c,d,e,f){var g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;e=b-4|0;b=J[e>>2];if(d>>>0<=b>>>0){break c}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break c}if(M[c+(b<<3)>>2]>=M[c+(d<<3)>>2]){break a}J[a>>2]=b;J[e>>2]=d;break a;case 0:case 1:break a;default:break d}}if((d|0)>128){break b}if((a|0)==(b|0)){break a}d=a+4|0;if((d|0)==(b|0)){break a}i=J[c>>2];while(1){f=J[d>>2];e:{e=a;if((e|0)==(d|0)){break e}f:{h=J[i>>2];j=J[i+4>>2]-h>>3;if(j>>>0<=f>>>0){break f}k=h+(f<<3)|0;e=d;while(1){c=e-4|0;g=J[c>>2];if(g>>>0>=j>>>0){break f}if(M[k>>2]>=M[h+(g<<3)>>2]){break e}J[e>>2]=g;e=c;if((e|0)!=(a|0)){continue}break}e=a;break e}ra();B()}J[e>>2]=f;d=d+4|0;if((d|0)!=(b|0)){continue}break}break a}ra();B()}h=d>>>1|0;g=d-h|0;j=h<<2;i=j+a|0;g:{h:{if((d|0)<=(f|0)){Ag(a,i,c,h,e);f=b;b=e+j|0;Ag(i,f,c,g,b);f=(d<<2)+e|0;c=J[c>>2];d=b;while(1){if((d|0)==(f|0)){if((b|0)==(e|0)){break a}while(1){J[a>>2]=J[e>>2];a=a+4|0;e=e+4|0;if((b|0)!=(e|0)){continue}break}break a}i=J[c>>2];g=J[c+4>>2]-i>>3;h=J[d>>2];if(g>>>0<=h>>>0){break h}k=g;g=J[e>>2];if(k>>>0<=g>>>0){break h}j=g;k=h;h=J[i+(h<<3)>>2];i=J[i+(g<<3)>>2];g=h>>>0>=i>>>0;J[a>>2]=g?j:k;d=((i>>>0>h>>>0)<<2)+d|0;a=a+4|0;e=(g<<2)+e|0;if((b|0)!=(e|0)){continue}break}break g}$b(a,i,c,h,e,f);$b(i,b,c,g,e,f);Xd(a,i,b,c,h,g,e,f);return}ra();B()}if((d|0)==(f|0)){break a}while(1){J[a>>2]=J[d>>2];a=a+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}}}function Ii(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0;a=ba-32|0;ba=a;a:{b:{c:{d:{if(!b){break d}f=rb(c);if(f>>>0>=2147483632){break c}e:{f:{if(f>>>0>=11){g=(f|15)+1|0;h=oa(g);J[a+24>>2]=g|-2147483648;J[a+16>>2]=h;J[a+20>>2]=f;g=f+h|0;break f}H[a+27|0]=f;h=a+16|0;g=f+h|0;if(!f){break e}}ua(h,c,f)}H[g|0]=0;J[a+8>>2]=0;J[a>>2]=0;J[a+4>>2]=0;if(e){if((e|0)<0){break b}c=e<<2;e=oa(c);J[a>>2]=e;f=c+e|0;J[a+8>>2]=f;ua(e,d,c);J[a+4>>2]=f}f=ba-48|0;ba=f;e=ob(b,a+16|0);if((e|0)!=(b+4|0)){c=J[e+4>>2];g:{if(!c){c=e;while(1){d=J[c+8>>2];g=J[d>>2]!=(c|0);c=d;if(g){continue}break}break g}while(1){d=c;c=J[c>>2];if(c){continue}break}}if((e|0)==J[b>>2]){J[b>>2]=d}J[b+8>>2]=J[b+8>>2]-1;Dc(J[b+4>>2],e);c=J[e+28>>2];if(c){J[e+32>>2]=c;na(c)}if(H[e+27|0]<0){na(J[e+16>>2])}na(e)}J[f+8>>2]=0;J[f>>2]=0;J[f+4>>2]=0;c=J[a+4>>2];d=J[a>>2];e=c-d|0;g=0;h:{i:{if((c|0)!=(d|0)){if((e|0)<0){break i}g=oa(e);c=pa(g,0,e);h=c+e|0;J[f+8>>2]=h;J[f+4>>2]=h;J[f>>2]=c;c=d}ua(g,c,e);j:{if(H[a+27|0]>=0){J[f+24>>2]=J[a+24>>2];c=J[a+20>>2];J[f+16>>2]=J[a+16>>2];J[f+20>>2]=c;break j}Ga(f+16|0,J[a+16>>2],J[a+20>>2])}Ob(f+28|0,f);c=f+16|0;Cc(f+40|0,b,c,c);c=J[f+28>>2];if(c){J[f+32>>2]=c;na(c)}if(H[f+27|0]<0){na(J[f+16>>2])}c=J[f>>2];if(c){J[f+4>>2]=c;na(c)}ba=f+48|0;break h}qa();B()}c=J[a>>2];if(c){J[a+4>>2]=c;na(c)}if(H[a+27|0]>=0){break d}na(J[a+16>>2])}ba=a+32|0;a=(b|0)!=0;break a}gb();B()}qa();B()}return a|0}function gd(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;d=ba-16|0;ba=d;g=ba-16|0;ba=g;J[d>>2]=0;J[d+4>>2]=0;J[d+8>>2]=0;ba=g+16|0;md(d,K[d+11|0]>>>7|0?(J[d+8>>2]&2147483647)-1|0:10);i=ba-16|0;ba=i;l=+b;if(K[d+11|0]>>>7|0){g=J[d+4>>2]}else{g=K[d+11|0]&127}while(1){a:{if(K[d+11|0]>>>7|0){e=J[d>>2]}else{e=d}O[i>>3]=l;k=ba-16|0;ba=k;J[k+12>>2]=i;c=ba-160|0;ba=c;f=g+1|0;h=f?e:c+158|0;J[c+144>>2]=h;e=-1;j=f-1|0;J[c+148>>2]=f>>>0>=j>>>0?j:0;c=pa(c,0,144);J[c+76>>2]=-1;J[c+36>>2]=371;J[c+80>>2]=-1;J[c+44>>2]=c+159;J[c+84>>2]=c+144;b:{if((f|0)<0){J[4804]=61;break b}H[h|0]=0;h=0;f=ba-208|0;ba=f;J[f+204>>2]=i;e=f+160|0;pa(e,0,40);J[f+200>>2]=J[f+204>>2];c:{if((Ue(0,f+200|0,f+80|0,e)|0)<0){e=-1;break c}m=J[c+76>>2]>=0;j=J[c>>2];if(J[c+72>>2]<=0){J[c>>2]=j&-33}d:{e:{f:{if(!J[c+48>>2]){J[c+48>>2]=80;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;h=J[c+44>>2];J[c+44>>2]=f;break f}if(J[c+16>>2]){break e}}e=-1;if(We(c)){break d}}e=Ue(c,f+200|0,f+80|0,f+160|0)}if(h){da[J[c+36>>2]](c,0,0)|0;J[c+48>>2]=0;J[c+44>>2]=h;J[c+28>>2]=0;h=J[c+20>>2];J[c+16>>2]=0;J[c+20>>2]=0;e=h?e:-1}h=J[c>>2];J[c>>2]=h|j&32;e=h&32?-1:e;if(!m){break c}}ba=f+208|0}ba=c+160|0;ba=k+16|0;g:{if((e|0)>=0){if(e>>>0<=g>>>0){break a}g=e;break g}g=g<<1|1}md(d,g);continue}break}md(d,e);g=J[d+4>>2];J[a>>2]=J[d>>2];J[a+4>>2]=g;J[a+8>>2]=J[d+8>>2];J[d>>2]=0;J[d+4>>2]=0;J[d+8>>2]=0;ba=i+16|0;if(K[d+11|0]>>>7|0){na(J[d>>2])}ba=d+16|0}function tl(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;c=ba-16|0;ba=c;b=J[J[a+4>>2]+(b<<2)>>2];J[c+12>>2]=b;a=J[a+28>>2];e=J[J[J[a+4>>2]+8>>2]+(b<<2)>>2];b=J[e+28>>2];a:{if(b-1>>>0>=6){b:{if((b|0)!=9){break b}f=J[a+48>>2];a=oa(32);J[c>>2]=a;J[c+4>>2]=17;J[c+8>>2]=-2147483616;H[a+16|0]=K[1261];b=K[1257]|K[1258]<<8|(K[1259]<<16|K[1260]<<24);d=K[1253]|K[1254]<<8|(K[1255]<<16|K[1256]<<24);H[a+8|0]=d;H[a+9|0]=d>>>8;H[a+10|0]=d>>>16;H[a+11|0]=d>>>24;H[a+12|0]=b;H[a+13|0]=b>>>8;H[a+14|0]=b>>>16;H[a+15|0]=b>>>24;b=K[1249]|K[1250]<<8|(K[1251]<<16|K[1252]<<24);d=K[1245]|K[1246]<<8|(K[1247]<<16|K[1248]<<24);H[a|0]=d;H[a+1|0]=d>>>8;H[a+2|0]=d>>>16;H[a+3|0]=d>>>24;H[a+4|0]=b;H[a+5|0]=b>>>8;H[a+6|0]=b>>>16;H[a+7|0]=b>>>24;H[a+17|0]=0;a=jb(f,c+12|0,c,-1);if(H[c+11|0]<0){na(J[c>>2])}if((a|0)<=0){break b}if(J[e+56>>2]==1){a=oa(48);J[a>>2]=0;J[a+4>>2]=0;J[a+40>>2]=0;J[a+44>>2]=0;J[a+32>>2]=0;J[a+36>>2]=0;J[a+24>>2]=0;J[a+28>>2]=0;J[a+16>>2]=0;J[a+20>>2]=0;J[a+8>>2]=0;J[a+12>>2]=0;a=ne(a);J[a+40>>2]=1032;J[a>>2]=6308;J[a+44>>2]=-1;break a}a=ne(oa(64));J[a+40>>2]=2032;J[a>>2]=9988;J[a+48>>2]=0;J[a+52>>2]=0;J[a+44>>2]=-1;J[a+56>>2]=0;J[a+60>>2]=0;break a}a=oa(36);J[a+32>>2]=0;J[a+12>>2]=-1;J[a+4>>2]=0;J[a+8>>2]=0;J[a+16>>2]=0;J[a+20>>2]=0;J[a>>2]=2392;H[a+21|0]=0;H[a+22|0]=0;H[a+23|0]=0;H[a+24|0]=0;H[a+25|0]=0;H[a+26|0]=0;H[a+27|0]=0;H[a+28|0]=0;break a}a=ne(oa(40))}ba=c+16|0;return a|0}function ul(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;e=J[a+8>>2]-J[a+4>>2]>>2;b=J[a+40>>2];d=J[a+36>>2];c=b-d>>2;a:{if(e>>>0>c>>>0){g=e-c|0;d=J[a+44>>2];b=J[a+40>>2];if(g>>>0<=d-b>>2>>>0){if(g){i=b;b=g<<2;b=pa(i,0,b)+b|0}J[a+40>>2]=b;break a}b:{c:{d:{j=J[a+36>>2];e=b-j>>2;f=e+g|0;if(f>>>0<1073741824){c=d-j|0;d=c>>>1|0;c=c>>>0>=2147483644?1073741823:d>>>0>f>>>0?d:f;if(c){if(c>>>0>=1073741824){break d}i=oa(c<<2)}h=(e<<2)+i|0;d=g<<2;f=pa(h,0,d);e=d+f|0;c=(c<<2)+i|0;if((b|0)==(j|0)){break c}while(1){b=b-4|0;d=J[b>>2];J[b>>2]=0;h=h-4|0;J[h>>2]=d;if((b|0)!=(j|0)){continue}break}J[a+44>>2]=c;c=J[a+40>>2];J[a+40>>2]=e;b=J[a+36>>2];J[a+36>>2]=h;if((b|0)==(c|0)){break b}while(1){c=c-4|0;d=J[c>>2];J[c>>2]=0;if(d){da[J[J[d>>2]+4>>2]](d)}if((b|0)!=(c|0)){continue}break}break b}qa();B()}xa();B()}J[a+44>>2]=c;J[a+40>>2]=e;J[a+36>>2]=f}if(b){na(b)}break a}if(c>>>0<=e>>>0){break a}d=d+(e<<2)|0;if((d|0)!=(b|0)){while(1){b=b-4|0;c=J[b>>2];J[b>>2]=0;if(c){da[J[J[c>>2]+4>>2]](c)}if((b|0)!=(d|0)){continue}break}}J[a+40>>2]=d}if(J[a+8>>2]==J[a+4>>2]){return 1}b=0;while(1){e=da[J[J[a>>2]+56>>2]](a,b)|0;c=b<<2;d=c+J[a+36>>2]|0;f=J[d>>2];J[d>>2]=e;if(f){da[J[J[f>>2]+4>>2]](f)}c=J[c+J[a+36>>2]>>2];d=(c|0)!=0;if(c){if(!(!(J[J[a+48>>2]+(b>>>3&536870908)>>2]>>>b&1)|M[a+52>>2]<=b>>>0)){H[c+28|0]=1}b=b+1|0;if(b>>>0>2]-J[a+4>>2]>>2>>>0){continue}}break}return d|0}function Yf(a){a=a|0;var b=0,c=0,d=0,e=0,f=0;J[a>>2]=10584;c=a+200|0;d=J[c+136>>2];if(d){b=d;e=J[c+140>>2];if((b|0)!=(e|0)){while(1){b=e-12|0;f=J[b>>2];if(f){J[e-8>>2]=f;na(f)}e=b;if((b|0)!=(d|0)){continue}break}b=J[c+136>>2]}J[c+140>>2]=d;na(b)}b=J[c+104>>2];if(b){J[c+108>>2]=b;na(b)}b=J[c+92>>2];if(b){J[c+96>>2]=b;na(b)}d=J[c+80>>2];J[c+80>>2]=0;if(d){e=d-4|0;b=J[e>>2];if(b){b=d+(b<<5)|0;while(1){b=wa(b-32|0);if((d|0)!=(b|0)){continue}break}}na(e)}b=J[c+68>>2];if(b){J[c+72>>2]=b;na(b)}b=J[c+44>>2];J[c+44>>2]=0;if(b){na(b)}b=J[c+32>>2];if(b){J[c+36>>2]=b;na(b)}wa(c);b=J[a+184>>2];if(b){J[a+188>>2]=b;na(b)}d=J[a+172>>2];if(d){b=J[a+176>>2];e=d;if((b|0)!=(d|0)){while(1){e=b-136|0;f=J[e+116>>2];if(f){J[b-16>>2]=f;na(f)}f=J[b-32>>2];if(f){J[b-28>>2]=f;na(f)}pc(b-132|0);b=e;if((d|0)!=(b|0)){continue}break}e=J[a+172>>2]}J[a+176>>2]=d;na(e)}b=J[a+152>>2];if(b){J[a+156>>2]=b;na(b)}b=J[a+140>>2];if(b){na(b)}b=J[a+128>>2];if(b){while(1){e=J[b>>2];na(b);b=e;if(b){continue}break}}b=J[a+120>>2];J[a+120>>2]=0;if(b){na(b)}b=J[a+108>>2];if(b){J[a+112>>2]=b;na(b)}b=J[a+96>>2];if(b){J[a+100>>2]=b;na(b)}b=J[a+84>>2];if(b){na(b)}b=J[a+72>>2];if(b){J[a+76>>2]=b;na(b)}b=J[a+52>>2];if(b){J[a+56>>2]=b;na(b)}b=J[a+40>>2];if(b){J[a+44>>2]=b;na(b)}b=J[a+28>>2];if(b){na(b)}b=J[a+16>>2];if(b){J[a+20>>2]=b;na(b)}b=J[a+12>>2];J[a+12>>2]=0;if(b){qc(b)}return a|0}function Xd(a,b,c,d,e,f,g,h){var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;s=ba-16|0;ba=s;a:{if(!f){break a}while(1){if(!((e|0)<=(h|0)|(f|0)<=(h|0))){if(!e){break a}i=J[d>>2];o=J[i>>2];b:{c:{p=J[i+4>>2]-o>>3;i=J[b>>2];d:{if(p>>>0<=i>>>0){break d}n=(i<<3)+o|0;while(1){j=J[a>>2];if(j>>>0>=p>>>0){break d}if(M[n>>2]>=M[(j<<3)+o>>2]){a=a+4|0;e=e-1|0;if(e){continue}break a}break}e:{f:{if((e|0)<(f|0)){n=(f|0)/2|0;i=(n<<2)+b|0;g:{if((a|0)==(b|0)){j=b;break g}j=J[i>>2];if(j>>>0>=p>>>0){break d}m=b-a>>2;l=m>>>1|0;q=(l<<2)+a|0;k=J[q>>2];if(k>>>0>=p>>>0){break d}r=q+4|0;q=J[(j<<3)+o>>2];k=q>>>0>2];j=k?a:r;m=k?l:m+(l^-1)|0;if(!m){break g}while(1){l=m>>>1|0;k=(l<<2)+j|0;r=J[k>>2];if(r>>>0>=p>>>0){break d}t=k+4|0;k=q>>>0>2];j=k?j:t;m=k?l:(l^-1)+m|0;if(m){continue}break}}l=j-a>>2;break f}if((e|0)==1){J[a>>2]=i;J[b>>2]=j;break a}l=(e|0)/2|0;j=(l<<2)+a|0;i=c;if((i|0)!=(b|0)){m=c-b>>2;i=J[j>>2];if(i>>>0>=p>>>0){break e}q=(i<<3)+o|0;i=b;while(1){n=m>>>1|0;k=(n<<2)+i|0;r=J[k>>2];if(r>>>0>=p>>>0){break d}t=k+4|0;k=M[(r<<3)+o>>2]>2];i=k?t:i;m=k?(n^-1)+m|0:n;if(m){continue}break}}n=i-b>>2}Ta(s+8|0,j,b,i);b=J[s+8>>2];e=e-l|0;f=f-n|0;if((l+n|0)>=(e+f|0)){break c}Xd(a,j,b,d,l,n,g,h);a=b;b=i;break b}}ra();B()}Xd(b,i,c,d,e,f,g,h);f=n;e=l;c=b;b=j}if(f){continue}break a}break}Sa(a,b,c,d,e,f,g)}ba=s+16|0} function de(a,b,c,d,e,f,g,h){var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;s=ba-16|0;ba=s;a:{if(!f){break a}while(1){if(!((e|0)<=(h|0)|(f|0)<=(h|0))){if(!e){break a}i=J[d>>2];o=J[i>>2];b:{c:{p=J[i+4>>2]-o>>3;i=J[b>>2];d:{if(p>>>0<=i>>>0){break d}n=(i<<3)+o|0;while(1){j=J[a>>2];if(j>>>0>=p>>>0){break d}if(M[n>>2]>=M[(j<<3)+o>>2]){a=a+4|0;e=e-1|0;if(e){continue}break a}break}e:{f:{if((e|0)<(f|0)){n=(f|0)/2|0;i=(n<<2)+b|0;g:{if((a|0)==(b|0)){j=b;break g}j=J[i>>2];if(j>>>0>=p>>>0){break d}m=b-a>>2;l=m>>>1|0;q=(l<<2)+a|0;k=J[q>>2];if(k>>>0>=p>>>0){break d}r=q+4|0;q=J[(j<<3)+o>>2];k=q>>>0>2];j=k?a:r;m=k?l:m+(l^-1)|0;if(!m){break g}while(1){l=m>>>1|0;k=(l<<2)+j|0;r=J[k>>2];if(r>>>0>=p>>>0){break d}t=k+4|0;k=q>>>0>2];j=k?j:t;m=k?l:(l^-1)+m|0;if(m){continue}break}}l=j-a>>2;break f}if((e|0)==1){J[a>>2]=i;J[b>>2]=j;break a}l=(e|0)/2|0;j=(l<<2)+a|0;i=c;if((i|0)!=(b|0)){m=c-b>>2;i=J[j>>2];if(i>>>0>=p>>>0){break e}q=(i<<3)+o|0;i=b;while(1){n=m>>>1|0;k=(n<<2)+i|0;r=J[k>>2];if(r>>>0>=p>>>0){break d}t=k+4|0;k=M[(r<<3)+o>>2]>2];i=k?t:i;m=k?(n^-1)+m|0:n;if(m){continue}break}}n=i-b>>2}Ta(s+8|0,j,b,i);b=J[s+8>>2];e=e-l|0;f=f-n|0;if((l+n|0)>=(e+f|0)){break c}de(a,j,b,d,l,n,g,h);a=b;b=i;break b}}ra();B()}de(b,i,c,d,e,f,g,h);f=n;e=l;c=b;b=j}if(f){continue}break a}break}Sa(a,b,c,d,e,f,g)}ba=s+16|0}function ce(a,b,c,d,e,f,g,h){var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;s=ba-16|0;ba=s;a:{if(!f){break a}while(1){if(!((e|0)<=(h|0)|(f|0)<=(h|0))){if(!e){break a}i=J[d>>2];o=J[i>>2];b:{c:{p=J[i+4>>2]-o>>3;i=J[b>>2];d:{if(p>>>0<=i>>>0){break d}n=(i<<3)+o|0;while(1){j=J[a>>2];if(j>>>0>=p>>>0){break d}if(M[n>>2]>=M[(j<<3)+o>>2]){a=a+4|0;e=e-1|0;if(e){continue}break a}break}e:{f:{if((e|0)<(f|0)){n=(f|0)/2|0;i=(n<<2)+b|0;g:{if((a|0)==(b|0)){j=b;break g}j=J[i>>2];if(j>>>0>=p>>>0){break d}m=b-a>>2;l=m>>>1|0;q=(l<<2)+a|0;k=J[q>>2];if(k>>>0>=p>>>0){break d}r=q+4|0;q=J[(j<<3)+o>>2];k=q>>>0>2];j=k?a:r;m=k?l:m+(l^-1)|0;if(!m){break g}while(1){l=m>>>1|0;k=(l<<2)+j|0;r=J[k>>2];if(r>>>0>=p>>>0){break d}t=k+4|0;k=q>>>0>2];j=k?j:t;m=k?l:(l^-1)+m|0;if(m){continue}break}}l=j-a>>2;break f}if((e|0)==1){J[a>>2]=i;J[b>>2]=j;break a}l=(e|0)/2|0;j=(l<<2)+a|0;i=c;if((i|0)!=(b|0)){m=c-b>>2;i=J[j>>2];if(i>>>0>=p>>>0){break e}q=(i<<3)+o|0;i=b;while(1){n=m>>>1|0;k=(n<<2)+i|0;r=J[k>>2];if(r>>>0>=p>>>0){break d}t=k+4|0;k=M[(r<<3)+o>>2]>2];i=k?t:i;m=k?(n^-1)+m|0:n;if(m){continue}break}}n=i-b>>2}Ta(s+8|0,j,b,i);b=J[s+8>>2];e=e-l|0;f=f-n|0;if((l+n|0)>=(e+f|0)){break c}ce(a,j,b,d,l,n,g,h);a=b;b=i;break b}}ra();B()}ce(b,i,c,d,e,f,g,h);f=n;e=l;c=b;b=j}if(f){continue}break a}break}Sa(a,b,c,d,e,f,g)}ba=s+16|0}function be(a,b,c,d,e,f,g,h){var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;s=ba-16|0;ba=s;a:{if(!f){break a}while(1){if(!((e|0)<=(h|0)|(f|0)<=(h|0))){if(!e){break a}i=J[d>>2];o=J[i>>2];b:{c:{p=J[i+4>>2]-o>>3;i=J[b>>2];d:{if(p>>>0<=i>>>0){break d}n=(i<<3)+o|0;while(1){j=J[a>>2];if(j>>>0>=p>>>0){break d}if(M[n>>2]>=M[(j<<3)+o>>2]){a=a+4|0;e=e-1|0;if(e){continue}break a}break}e:{f:{if((e|0)<(f|0)){n=(f|0)/2|0;i=(n<<2)+b|0;g:{if((a|0)==(b|0)){j=b;break g}j=J[i>>2];if(j>>>0>=p>>>0){break d}m=b-a>>2;l=m>>>1|0;q=(l<<2)+a|0;k=J[q>>2];if(k>>>0>=p>>>0){break d}r=q+4|0;q=J[(j<<3)+o>>2];k=q>>>0>2];j=k?a:r;m=k?l:m+(l^-1)|0;if(!m){break g}while(1){l=m>>>1|0;k=(l<<2)+j|0;r=J[k>>2];if(r>>>0>=p>>>0){break d}t=k+4|0;k=q>>>0>2];j=k?j:t;m=k?l:(l^-1)+m|0;if(m){continue}break}}l=j-a>>2;break f}if((e|0)==1){J[a>>2]=i;J[b>>2]=j;break a}l=(e|0)/2|0;j=(l<<2)+a|0;i=c;if((i|0)!=(b|0)){m=c-b>>2;i=J[j>>2];if(i>>>0>=p>>>0){break e}q=(i<<3)+o|0;i=b;while(1){n=m>>>1|0;k=(n<<2)+i|0;r=J[k>>2];if(r>>>0>=p>>>0){break d}t=k+4|0;k=M[(r<<3)+o>>2]>2];i=k?t:i;m=k?(n^-1)+m|0:n;if(m){continue}break}}n=i-b>>2}Ta(s+8|0,j,b,i);b=J[s+8>>2];e=e-l|0;f=f-n|0;if((l+n|0)>=(e+f|0)){break c}be(a,j,b,d,l,n,g,h);a=b;b=i;break b}}ra();B()}be(b,i,c,d,e,f,g,h);f=n;e=l;c=b;b=j}if(f){continue}break a}break}Sa(a,b,c,d,e,f,g)}ba=s+16|0}function ae(a,b,c,d,e,f,g,h){var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;s=ba-16|0;ba=s;a:{if(!f){break a}while(1){if(!((e|0)<=(h|0)|(f|0)<=(h|0))){if(!e){break a}i=J[d>>2];o=J[i>>2];b:{c:{p=J[i+4>>2]-o>>3;i=J[b>>2];d:{if(p>>>0<=i>>>0){break d}n=(i<<3)+o|0;while(1){j=J[a>>2];if(j>>>0>=p>>>0){break d}if(M[n>>2]>=M[(j<<3)+o>>2]){a=a+4|0;e=e-1|0;if(e){continue}break a}break}e:{f:{if((e|0)<(f|0)){n=(f|0)/2|0;i=(n<<2)+b|0;g:{if((a|0)==(b|0)){j=b;break g}j=J[i>>2];if(j>>>0>=p>>>0){break d}m=b-a>>2;l=m>>>1|0;q=(l<<2)+a|0;k=J[q>>2];if(k>>>0>=p>>>0){break d}r=q+4|0;q=J[(j<<3)+o>>2];k=q>>>0>2];j=k?a:r;m=k?l:m+(l^-1)|0;if(!m){break g}while(1){l=m>>>1|0;k=(l<<2)+j|0;r=J[k>>2];if(r>>>0>=p>>>0){break d}t=k+4|0;k=q>>>0>2];j=k?j:t;m=k?l:(l^-1)+m|0;if(m){continue}break}}l=j-a>>2;break f}if((e|0)==1){J[a>>2]=i;J[b>>2]=j;break a}l=(e|0)/2|0;j=(l<<2)+a|0;i=c;if((i|0)!=(b|0)){m=c-b>>2;i=J[j>>2];if(i>>>0>=p>>>0){break e}q=(i<<3)+o|0;i=b;while(1){n=m>>>1|0;k=(n<<2)+i|0;r=J[k>>2];if(r>>>0>=p>>>0){break d}t=k+4|0;k=M[(r<<3)+o>>2]>2];i=k?t:i;m=k?(n^-1)+m|0:n;if(m){continue}break}}n=i-b>>2}Ta(s+8|0,j,b,i);b=J[s+8>>2];e=e-l|0;f=f-n|0;if((l+n|0)>=(e+f|0)){break c}ae(a,j,b,d,l,n,g,h);a=b;b=i;break b}}ra();B()}ae(b,i,c,d,e,f,g,h);f=n;e=l;c=b;b=j}if(f){continue}break a}break}Sa(a,b,c,d,e,f,g)}ba=s+16|0}function _d(a,b,c,d,e,f,g,h){var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;s=ba-16|0;ba=s;a:{if(!f){break a}while(1){if(!((e|0)<=(h|0)|(f|0)<=(h|0))){if(!e){break a}i=J[d>>2];o=J[i>>2];b:{c:{p=J[i+4>>2]-o>>3;i=J[b>>2];d:{if(p>>>0<=i>>>0){break d}n=(i<<3)+o|0;while(1){j=J[a>>2];if(j>>>0>=p>>>0){break d}if(M[n>>2]>=M[(j<<3)+o>>2]){a=a+4|0;e=e-1|0;if(e){continue}break a}break}e:{f:{if((e|0)<(f|0)){n=(f|0)/2|0;i=(n<<2)+b|0;g:{if((a|0)==(b|0)){j=b;break g}j=J[i>>2];if(j>>>0>=p>>>0){break d}m=b-a>>2;l=m>>>1|0;q=(l<<2)+a|0;k=J[q>>2];if(k>>>0>=p>>>0){break d}r=q+4|0;q=J[(j<<3)+o>>2];k=q>>>0>2];j=k?a:r;m=k?l:m+(l^-1)|0;if(!m){break g}while(1){l=m>>>1|0;k=(l<<2)+j|0;r=J[k>>2];if(r>>>0>=p>>>0){break d}t=k+4|0;k=q>>>0>2];j=k?j:t;m=k?l:(l^-1)+m|0;if(m){continue}break}}l=j-a>>2;break f}if((e|0)==1){J[a>>2]=i;J[b>>2]=j;break a}l=(e|0)/2|0;j=(l<<2)+a|0;i=c;if((i|0)!=(b|0)){m=c-b>>2;i=J[j>>2];if(i>>>0>=p>>>0){break e}q=(i<<3)+o|0;i=b;while(1){n=m>>>1|0;k=(n<<2)+i|0;r=J[k>>2];if(r>>>0>=p>>>0){break d}t=k+4|0;k=M[(r<<3)+o>>2]>2];i=k?t:i;m=k?(n^-1)+m|0:n;if(m){continue}break}}n=i-b>>2}Ta(s+8|0,j,b,i);b=J[s+8>>2];e=e-l|0;f=f-n|0;if((l+n|0)>=(e+f|0)){break c}_d(a,j,b,d,l,n,g,h);a=b;b=i;break b}}ra();B()}_d(b,i,c,d,e,f,g,h);f=n;e=l;c=b;b=j}if(f){continue}break a}break}Sa(a,b,c,d,e,f,g)}ba=s+16|0}function Zd(a,b,c,d,e,f,g,h){var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;s=ba-16|0;ba=s;a:{if(!f){break a}while(1){if(!((e|0)<=(h|0)|(f|0)<=(h|0))){if(!e){break a}i=J[d>>2];o=J[i>>2];b:{c:{p=J[i+4>>2]-o>>3;i=J[b>>2];d:{if(p>>>0<=i>>>0){break d}n=(i<<3)+o|0;while(1){j=J[a>>2];if(j>>>0>=p>>>0){break d}if(M[n>>2]>=M[(j<<3)+o>>2]){a=a+4|0;e=e-1|0;if(e){continue}break a}break}e:{f:{if((e|0)<(f|0)){n=(f|0)/2|0;i=(n<<2)+b|0;g:{if((a|0)==(b|0)){j=b;break g}j=J[i>>2];if(j>>>0>=p>>>0){break d}m=b-a>>2;l=m>>>1|0;q=(l<<2)+a|0;k=J[q>>2];if(k>>>0>=p>>>0){break d}r=q+4|0;q=J[(j<<3)+o>>2];k=q>>>0>2];j=k?a:r;m=k?l:m+(l^-1)|0;if(!m){break g}while(1){l=m>>>1|0;k=(l<<2)+j|0;r=J[k>>2];if(r>>>0>=p>>>0){break d}t=k+4|0;k=q>>>0>2];j=k?j:t;m=k?l:(l^-1)+m|0;if(m){continue}break}}l=j-a>>2;break f}if((e|0)==1){J[a>>2]=i;J[b>>2]=j;break a}l=(e|0)/2|0;j=(l<<2)+a|0;i=c;if((i|0)!=(b|0)){m=c-b>>2;i=J[j>>2];if(i>>>0>=p>>>0){break e}q=(i<<3)+o|0;i=b;while(1){n=m>>>1|0;k=(n<<2)+i|0;r=J[k>>2];if(r>>>0>=p>>>0){break d}t=k+4|0;k=M[(r<<3)+o>>2]>2];i=k?t:i;m=k?(n^-1)+m|0:n;if(m){continue}break}}n=i-b>>2}Ta(s+8|0,j,b,i);b=J[s+8>>2];e=e-l|0;f=f-n|0;if((l+n|0)>=(e+f|0)){break c}Zd(a,j,b,d,l,n,g,h);a=b;b=i;break b}}ra();B()}Zd(b,i,c,d,e,f,g,h);f=n;e=l;c=b;b=j}if(f){continue}break a}break}Sa(a,b,c,d,e,f,g)}ba=s+16|0}function Yd(a,b,c,d,e,f,g,h){var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;s=ba-16|0;ba=s;a:{if(!f){break a}while(1){if(!((e|0)<=(h|0)|(f|0)<=(h|0))){if(!e){break a}i=J[d>>2];o=J[i>>2];b:{c:{p=J[i+4>>2]-o>>3;i=J[b>>2];d:{if(p>>>0<=i>>>0){break d}n=(i<<3)+o|0;while(1){j=J[a>>2];if(j>>>0>=p>>>0){break d}if(M[n>>2]>=M[(j<<3)+o>>2]){a=a+4|0;e=e-1|0;if(e){continue}break a}break}e:{f:{if((e|0)<(f|0)){n=(f|0)/2|0;i=(n<<2)+b|0;g:{if((a|0)==(b|0)){j=b;break g}j=J[i>>2];if(j>>>0>=p>>>0){break d}m=b-a>>2;l=m>>>1|0;q=(l<<2)+a|0;k=J[q>>2];if(k>>>0>=p>>>0){break d}r=q+4|0;q=J[(j<<3)+o>>2];k=q>>>0>2];j=k?a:r;m=k?l:m+(l^-1)|0;if(!m){break g}while(1){l=m>>>1|0;k=(l<<2)+j|0;r=J[k>>2];if(r>>>0>=p>>>0){break d}t=k+4|0;k=q>>>0>2];j=k?j:t;m=k?l:(l^-1)+m|0;if(m){continue}break}}l=j-a>>2;break f}if((e|0)==1){J[a>>2]=i;J[b>>2]=j;break a}l=(e|0)/2|0;j=(l<<2)+a|0;i=c;if((i|0)!=(b|0)){m=c-b>>2;i=J[j>>2];if(i>>>0>=p>>>0){break e}q=(i<<3)+o|0;i=b;while(1){n=m>>>1|0;k=(n<<2)+i|0;r=J[k>>2];if(r>>>0>=p>>>0){break d}t=k+4|0;k=M[(r<<3)+o>>2]>2];i=k?t:i;m=k?(n^-1)+m|0:n;if(m){continue}break}}n=i-b>>2}Ta(s+8|0,j,b,i);b=J[s+8>>2];e=e-l|0;f=f-n|0;if((l+n|0)>=(e+f|0)){break c}Yd(a,j,b,d,l,n,g,h);a=b;b=i;break b}}ra();B()}Yd(b,i,c,d,e,f,g,h);f=n;e=l;c=b;b=j}if(f){continue}break a}break}Sa(a,b,c,d,e,f,g)}ba=s+16|0}function Wd(a,b,c,d,e,f,g,h){var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;s=ba-16|0;ba=s;a:{if(!f){break a}while(1){if(!((e|0)<=(h|0)|(f|0)<=(h|0))){if(!e){break a}i=J[d>>2];o=J[i>>2];b:{c:{p=J[i+4>>2]-o>>3;i=J[b>>2];d:{if(p>>>0<=i>>>0){break d}n=(i<<3)+o|0;while(1){j=J[a>>2];if(j>>>0>=p>>>0){break d}if(M[n>>2]>=M[(j<<3)+o>>2]){a=a+4|0;e=e-1|0;if(e){continue}break a}break}e:{f:{if((e|0)<(f|0)){n=(f|0)/2|0;i=(n<<2)+b|0;g:{if((a|0)==(b|0)){j=b;break g}j=J[i>>2];if(j>>>0>=p>>>0){break d}m=b-a>>2;l=m>>>1|0;q=(l<<2)+a|0;k=J[q>>2];if(k>>>0>=p>>>0){break d}r=q+4|0;q=J[(j<<3)+o>>2];k=q>>>0>2];j=k?a:r;m=k?l:m+(l^-1)|0;if(!m){break g}while(1){l=m>>>1|0;k=(l<<2)+j|0;r=J[k>>2];if(r>>>0>=p>>>0){break d}t=k+4|0;k=q>>>0>2];j=k?j:t;m=k?l:(l^-1)+m|0;if(m){continue}break}}l=j-a>>2;break f}if((e|0)==1){J[a>>2]=i;J[b>>2]=j;break a}l=(e|0)/2|0;j=(l<<2)+a|0;i=c;if((i|0)!=(b|0)){m=c-b>>2;i=J[j>>2];if(i>>>0>=p>>>0){break e}q=(i<<3)+o|0;i=b;while(1){n=m>>>1|0;k=(n<<2)+i|0;r=J[k>>2];if(r>>>0>=p>>>0){break d}t=k+4|0;k=M[(r<<3)+o>>2]>2];i=k?t:i;m=k?(n^-1)+m|0:n;if(m){continue}break}}n=i-b>>2}Ta(s+8|0,j,b,i);b=J[s+8>>2];e=e-l|0;f=f-n|0;if((l+n|0)>=(e+f|0)){break c}Wd(a,j,b,d,l,n,g,h);a=b;b=i;break b}}ra();B()}Wd(b,i,c,d,e,f,g,h);f=n;e=l;c=b;b=j}if(f){continue}break a}break}Sa(a,b,c,d,e,f,g)}ba=s+16|0}function Vd(a,b,c,d,e,f,g,h){var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;s=ba-16|0;ba=s;a:{if(!f){break a}while(1){if(!((e|0)<=(h|0)|(f|0)<=(h|0))){if(!e){break a}i=J[d>>2];o=J[i>>2];b:{c:{p=J[i+4>>2]-o>>3;i=J[b>>2];d:{if(p>>>0<=i>>>0){break d}n=(i<<3)+o|0;while(1){j=J[a>>2];if(j>>>0>=p>>>0){break d}if(M[n>>2]>=M[(j<<3)+o>>2]){a=a+4|0;e=e-1|0;if(e){continue}break a}break}e:{f:{if((e|0)<(f|0)){n=(f|0)/2|0;i=(n<<2)+b|0;g:{if((a|0)==(b|0)){j=b;break g}j=J[i>>2];if(j>>>0>=p>>>0){break d}m=b-a>>2;l=m>>>1|0;q=(l<<2)+a|0;k=J[q>>2];if(k>>>0>=p>>>0){break d}r=q+4|0;q=J[(j<<3)+o>>2];k=q>>>0>2];j=k?a:r;m=k?l:m+(l^-1)|0;if(!m){break g}while(1){l=m>>>1|0;k=(l<<2)+j|0;r=J[k>>2];if(r>>>0>=p>>>0){break d}t=k+4|0;k=q>>>0>2];j=k?j:t;m=k?l:(l^-1)+m|0;if(m){continue}break}}l=j-a>>2;break f}if((e|0)==1){J[a>>2]=i;J[b>>2]=j;break a}l=(e|0)/2|0;j=(l<<2)+a|0;i=c;if((i|0)!=(b|0)){m=c-b>>2;i=J[j>>2];if(i>>>0>=p>>>0){break e}q=(i<<3)+o|0;i=b;while(1){n=m>>>1|0;k=(n<<2)+i|0;r=J[k>>2];if(r>>>0>=p>>>0){break d}t=k+4|0;k=M[(r<<3)+o>>2]>2];i=k?t:i;m=k?(n^-1)+m|0:n;if(m){continue}break}}n=i-b>>2}Ta(s+8|0,j,b,i);b=J[s+8>>2];e=e-l|0;f=f-n|0;if((l+n|0)>=(e+f|0)){break c}Vd(a,j,b,d,l,n,g,h);a=b;b=i;break b}}ra();B()}Vd(b,i,c,d,e,f,g,h);f=n;e=l;c=b;b=j}if(f){continue}break a}break}Sa(a,b,c,d,e,f,g)}ba=s+16|0}function Ud(a,b,c,d,e,f,g,h){var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;s=ba-16|0;ba=s;a:{if(!f){break a}while(1){if(!((e|0)<=(h|0)|(f|0)<=(h|0))){if(!e){break a}i=J[d>>2];o=J[i>>2];b:{c:{p=J[i+4>>2]-o>>3;i=J[b>>2];d:{if(p>>>0<=i>>>0){break d}n=(i<<3)+o|0;while(1){j=J[a>>2];if(j>>>0>=p>>>0){break d}if(M[n>>2]>=M[(j<<3)+o>>2]){a=a+4|0;e=e-1|0;if(e){continue}break a}break}e:{f:{if((e|0)<(f|0)){n=(f|0)/2|0;i=(n<<2)+b|0;g:{if((a|0)==(b|0)){j=b;break g}j=J[i>>2];if(j>>>0>=p>>>0){break d}m=b-a>>2;l=m>>>1|0;q=(l<<2)+a|0;k=J[q>>2];if(k>>>0>=p>>>0){break d}r=q+4|0;q=J[(j<<3)+o>>2];k=q>>>0>2];j=k?a:r;m=k?l:m+(l^-1)|0;if(!m){break g}while(1){l=m>>>1|0;k=(l<<2)+j|0;r=J[k>>2];if(r>>>0>=p>>>0){break d}t=k+4|0;k=q>>>0>2];j=k?j:t;m=k?l:(l^-1)+m|0;if(m){continue}break}}l=j-a>>2;break f}if((e|0)==1){J[a>>2]=i;J[b>>2]=j;break a}l=(e|0)/2|0;j=(l<<2)+a|0;i=c;if((i|0)!=(b|0)){m=c-b>>2;i=J[j>>2];if(i>>>0>=p>>>0){break e}q=(i<<3)+o|0;i=b;while(1){n=m>>>1|0;k=(n<<2)+i|0;r=J[k>>2];if(r>>>0>=p>>>0){break d}t=k+4|0;k=M[(r<<3)+o>>2]>2];i=k?t:i;m=k?(n^-1)+m|0:n;if(m){continue}break}}n=i-b>>2}Ta(s+8|0,j,b,i);b=J[s+8>>2];e=e-l|0;f=f-n|0;if((l+n|0)>=(e+f|0)){break c}Ud(a,j,b,d,l,n,g,h);a=b;b=i;break b}}ra();B()}Ud(b,i,c,d,e,f,g,h);f=n;e=l;c=b;b=j}if(f){continue}break a}break}Sa(a,b,c,d,e,f,g)}ba=s+16|0}function Td(a,b,c,d,e,f,g,h){var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;s=ba-16|0;ba=s;a:{if(!f){break a}while(1){if(!((e|0)<=(h|0)|(f|0)<=(h|0))){if(!e){break a}i=J[d>>2];o=J[i>>2];b:{c:{p=J[i+4>>2]-o>>3;i=J[b>>2];d:{if(p>>>0<=i>>>0){break d}n=(i<<3)+o|0;while(1){j=J[a>>2];if(j>>>0>=p>>>0){break d}if(M[n>>2]>=M[(j<<3)+o>>2]){a=a+4|0;e=e-1|0;if(e){continue}break a}break}e:{f:{if((e|0)<(f|0)){n=(f|0)/2|0;i=(n<<2)+b|0;g:{if((a|0)==(b|0)){j=b;break g}j=J[i>>2];if(j>>>0>=p>>>0){break d}m=b-a>>2;l=m>>>1|0;q=(l<<2)+a|0;k=J[q>>2];if(k>>>0>=p>>>0){break d}r=q+4|0;q=J[(j<<3)+o>>2];k=q>>>0>2];j=k?a:r;m=k?l:m+(l^-1)|0;if(!m){break g}while(1){l=m>>>1|0;k=(l<<2)+j|0;r=J[k>>2];if(r>>>0>=p>>>0){break d}t=k+4|0;k=q>>>0>2];j=k?j:t;m=k?l:(l^-1)+m|0;if(m){continue}break}}l=j-a>>2;break f}if((e|0)==1){J[a>>2]=i;J[b>>2]=j;break a}l=(e|0)/2|0;j=(l<<2)+a|0;i=c;if((i|0)!=(b|0)){m=c-b>>2;i=J[j>>2];if(i>>>0>=p>>>0){break e}q=(i<<3)+o|0;i=b;while(1){n=m>>>1|0;k=(n<<2)+i|0;r=J[k>>2];if(r>>>0>=p>>>0){break d}t=k+4|0;k=M[(r<<3)+o>>2]>2];i=k?t:i;m=k?(n^-1)+m|0:n;if(m){continue}break}}n=i-b>>2}Ta(s+8|0,j,b,i);b=J[s+8>>2];e=e-l|0;f=f-n|0;if((l+n|0)>=(e+f|0)){break c}Td(a,j,b,d,l,n,g,h);a=b;b=i;break b}}ra();B()}Td(b,i,c,d,e,f,g,h);f=n;e=l;c=b;b=j}if(f){continue}break a}break}Sa(a,b,c,d,e,f,g)}ba=s+16|0}function Sd(a,b,c,d,e,f,g,h){var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;s=ba-16|0;ba=s;a:{if(!f){break a}while(1){if(!((e|0)<=(h|0)|(f|0)<=(h|0))){if(!e){break a}i=J[d>>2];o=J[i>>2];b:{c:{p=J[i+4>>2]-o>>3;i=J[b>>2];d:{if(p>>>0<=i>>>0){break d}n=(i<<3)+o|0;while(1){j=J[a>>2];if(j>>>0>=p>>>0){break d}if(M[n>>2]>=M[(j<<3)+o>>2]){a=a+4|0;e=e-1|0;if(e){continue}break a}break}e:{f:{if((e|0)<(f|0)){n=(f|0)/2|0;i=(n<<2)+b|0;g:{if((a|0)==(b|0)){j=b;break g}j=J[i>>2];if(j>>>0>=p>>>0){break d}m=b-a>>2;l=m>>>1|0;q=(l<<2)+a|0;k=J[q>>2];if(k>>>0>=p>>>0){break d}r=q+4|0;q=J[(j<<3)+o>>2];k=q>>>0>2];j=k?a:r;m=k?l:m+(l^-1)|0;if(!m){break g}while(1){l=m>>>1|0;k=(l<<2)+j|0;r=J[k>>2];if(r>>>0>=p>>>0){break d}t=k+4|0;k=q>>>0>2];j=k?j:t;m=k?l:(l^-1)+m|0;if(m){continue}break}}l=j-a>>2;break f}if((e|0)==1){J[a>>2]=i;J[b>>2]=j;break a}l=(e|0)/2|0;j=(l<<2)+a|0;i=c;if((i|0)!=(b|0)){m=c-b>>2;i=J[j>>2];if(i>>>0>=p>>>0){break e}q=(i<<3)+o|0;i=b;while(1){n=m>>>1|0;k=(n<<2)+i|0;r=J[k>>2];if(r>>>0>=p>>>0){break d}t=k+4|0;k=M[(r<<3)+o>>2]>2];i=k?t:i;m=k?(n^-1)+m|0:n;if(m){continue}break}}n=i-b>>2}Ta(s+8|0,j,b,i);b=J[s+8>>2];e=e-l|0;f=f-n|0;if((l+n|0)>=(e+f|0)){break c}Sd(a,j,b,d,l,n,g,h);a=b;b=i;break b}}ra();B()}Sd(b,i,c,d,e,f,g,h);f=n;e=l;c=b;b=j}if(f){continue}break a}break}Sa(a,b,c,d,e,f,g)}ba=s+16|0}function Rd(a,b,c,d,e,f,g,h){var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;s=ba-16|0;ba=s;a:{if(!f){break a}while(1){if(!((e|0)<=(h|0)|(f|0)<=(h|0))){if(!e){break a}i=J[d>>2];o=J[i>>2];b:{c:{p=J[i+4>>2]-o>>3;i=J[b>>2];d:{if(p>>>0<=i>>>0){break d}n=(i<<3)+o|0;while(1){j=J[a>>2];if(j>>>0>=p>>>0){break d}if(M[n>>2]>=M[(j<<3)+o>>2]){a=a+4|0;e=e-1|0;if(e){continue}break a}break}e:{f:{if((e|0)<(f|0)){n=(f|0)/2|0;i=(n<<2)+b|0;g:{if((a|0)==(b|0)){j=b;break g}j=J[i>>2];if(j>>>0>=p>>>0){break d}m=b-a>>2;l=m>>>1|0;q=(l<<2)+a|0;k=J[q>>2];if(k>>>0>=p>>>0){break d}r=q+4|0;q=J[(j<<3)+o>>2];k=q>>>0>2];j=k?a:r;m=k?l:m+(l^-1)|0;if(!m){break g}while(1){l=m>>>1|0;k=(l<<2)+j|0;r=J[k>>2];if(r>>>0>=p>>>0){break d}t=k+4|0;k=q>>>0>2];j=k?j:t;m=k?l:(l^-1)+m|0;if(m){continue}break}}l=j-a>>2;break f}if((e|0)==1){J[a>>2]=i;J[b>>2]=j;break a}l=(e|0)/2|0;j=(l<<2)+a|0;i=c;if((i|0)!=(b|0)){m=c-b>>2;i=J[j>>2];if(i>>>0>=p>>>0){break e}q=(i<<3)+o|0;i=b;while(1){n=m>>>1|0;k=(n<<2)+i|0;r=J[k>>2];if(r>>>0>=p>>>0){break d}t=k+4|0;k=M[(r<<3)+o>>2]>2];i=k?t:i;m=k?(n^-1)+m|0:n;if(m){continue}break}}n=i-b>>2}Ta(s+8|0,j,b,i);b=J[s+8>>2];e=e-l|0;f=f-n|0;if((l+n|0)>=(e+f|0)){break c}Rd(a,j,b,d,l,n,g,h);a=b;b=i;break b}}ra();B()}Rd(b,i,c,d,e,f,g,h);f=n;e=l;c=b;b=j}if(f){continue}break a}break}Sa(a,b,c,d,e,f,g)}ba=s+16|0}function Qd(a,b,c,d,e,f,g,h){var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;s=ba-16|0;ba=s;a:{if(!f){break a}while(1){if(!((e|0)<=(h|0)|(f|0)<=(h|0))){if(!e){break a}i=J[d>>2];o=J[i>>2];b:{c:{p=J[i+4>>2]-o>>3;i=J[b>>2];d:{if(p>>>0<=i>>>0){break d}n=(i<<3)+o|0;while(1){j=J[a>>2];if(j>>>0>=p>>>0){break d}if(M[n>>2]>=M[(j<<3)+o>>2]){a=a+4|0;e=e-1|0;if(e){continue}break a}break}e:{f:{if((e|0)<(f|0)){n=(f|0)/2|0;i=(n<<2)+b|0;g:{if((a|0)==(b|0)){j=b;break g}j=J[i>>2];if(j>>>0>=p>>>0){break d}m=b-a>>2;l=m>>>1|0;q=(l<<2)+a|0;k=J[q>>2];if(k>>>0>=p>>>0){break d}r=q+4|0;q=J[(j<<3)+o>>2];k=q>>>0>2];j=k?a:r;m=k?l:m+(l^-1)|0;if(!m){break g}while(1){l=m>>>1|0;k=(l<<2)+j|0;r=J[k>>2];if(r>>>0>=p>>>0){break d}t=k+4|0;k=q>>>0>2];j=k?j:t;m=k?l:(l^-1)+m|0;if(m){continue}break}}l=j-a>>2;break f}if((e|0)==1){J[a>>2]=i;J[b>>2]=j;break a}l=(e|0)/2|0;j=(l<<2)+a|0;i=c;if((i|0)!=(b|0)){m=c-b>>2;i=J[j>>2];if(i>>>0>=p>>>0){break e}q=(i<<3)+o|0;i=b;while(1){n=m>>>1|0;k=(n<<2)+i|0;r=J[k>>2];if(r>>>0>=p>>>0){break d}t=k+4|0;k=M[(r<<3)+o>>2]>2];i=k?t:i;m=k?(n^-1)+m|0:n;if(m){continue}break}}n=i-b>>2}Ta(s+8|0,j,b,i);b=J[s+8>>2];e=e-l|0;f=f-n|0;if((l+n|0)>=(e+f|0)){break c}Qd(a,j,b,d,l,n,g,h);a=b;b=i;break b}}ra();B()}Qd(b,i,c,d,e,f,g,h);f=n;e=l;c=b;b=j}if(f){continue}break a}break}Sa(a,b,c,d,e,f,g)}ba=s+16|0}function Pd(a,b,c,d,e,f,g,h){var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;s=ba-16|0;ba=s;a:{if(!f){break a}while(1){if(!((e|0)<=(h|0)|(f|0)<=(h|0))){if(!e){break a}i=J[d>>2];o=J[i>>2];b:{c:{p=J[i+4>>2]-o>>3;i=J[b>>2];d:{if(p>>>0<=i>>>0){break d}n=(i<<3)+o|0;while(1){j=J[a>>2];if(j>>>0>=p>>>0){break d}if(M[n>>2]>=M[(j<<3)+o>>2]){a=a+4|0;e=e-1|0;if(e){continue}break a}break}e:{f:{if((e|0)<(f|0)){n=(f|0)/2|0;i=(n<<2)+b|0;g:{if((a|0)==(b|0)){j=b;break g}j=J[i>>2];if(j>>>0>=p>>>0){break d}m=b-a>>2;l=m>>>1|0;q=(l<<2)+a|0;k=J[q>>2];if(k>>>0>=p>>>0){break d}r=q+4|0;q=J[(j<<3)+o>>2];k=q>>>0>2];j=k?a:r;m=k?l:m+(l^-1)|0;if(!m){break g}while(1){l=m>>>1|0;k=(l<<2)+j|0;r=J[k>>2];if(r>>>0>=p>>>0){break d}t=k+4|0;k=q>>>0>2];j=k?j:t;m=k?l:(l^-1)+m|0;if(m){continue}break}}l=j-a>>2;break f}if((e|0)==1){J[a>>2]=i;J[b>>2]=j;break a}l=(e|0)/2|0;j=(l<<2)+a|0;i=c;if((i|0)!=(b|0)){m=c-b>>2;i=J[j>>2];if(i>>>0>=p>>>0){break e}q=(i<<3)+o|0;i=b;while(1){n=m>>>1|0;k=(n<<2)+i|0;r=J[k>>2];if(r>>>0>=p>>>0){break d}t=k+4|0;k=M[(r<<3)+o>>2]>2];i=k?t:i;m=k?(n^-1)+m|0:n;if(m){continue}break}}n=i-b>>2}Ta(s+8|0,j,b,i);b=J[s+8>>2];e=e-l|0;f=f-n|0;if((l+n|0)>=(e+f|0)){break c}Pd(a,j,b,d,l,n,g,h);a=b;b=i;break b}}ra();B()}Pd(b,i,c,d,e,f,g,h);f=n;e=l;c=b;b=j}if(f){continue}break a}break}Sa(a,b,c,d,e,f,g)}ba=s+16|0}function Od(a,b,c,d,e,f,g,h){var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;s=ba-16|0;ba=s;a:{if(!f){break a}while(1){if(!((e|0)<=(h|0)|(f|0)<=(h|0))){if(!e){break a}i=J[d>>2];o=J[i>>2];b:{c:{p=J[i+4>>2]-o>>3;i=J[b>>2];d:{if(p>>>0<=i>>>0){break d}n=(i<<3)+o|0;while(1){j=J[a>>2];if(j>>>0>=p>>>0){break d}if(M[n>>2]>=M[(j<<3)+o>>2]){a=a+4|0;e=e-1|0;if(e){continue}break a}break}e:{f:{if((e|0)<(f|0)){n=(f|0)/2|0;i=(n<<2)+b|0;g:{if((a|0)==(b|0)){j=b;break g}j=J[i>>2];if(j>>>0>=p>>>0){break d}m=b-a>>2;l=m>>>1|0;q=(l<<2)+a|0;k=J[q>>2];if(k>>>0>=p>>>0){break d}r=q+4|0;q=J[(j<<3)+o>>2];k=q>>>0>2];j=k?a:r;m=k?l:m+(l^-1)|0;if(!m){break g}while(1){l=m>>>1|0;k=(l<<2)+j|0;r=J[k>>2];if(r>>>0>=p>>>0){break d}t=k+4|0;k=q>>>0>2];j=k?j:t;m=k?l:(l^-1)+m|0;if(m){continue}break}}l=j-a>>2;break f}if((e|0)==1){J[a>>2]=i;J[b>>2]=j;break a}l=(e|0)/2|0;j=(l<<2)+a|0;i=c;if((i|0)!=(b|0)){m=c-b>>2;i=J[j>>2];if(i>>>0>=p>>>0){break e}q=(i<<3)+o|0;i=b;while(1){n=m>>>1|0;k=(n<<2)+i|0;r=J[k>>2];if(r>>>0>=p>>>0){break d}t=k+4|0;k=M[(r<<3)+o>>2]>2];i=k?t:i;m=k?(n^-1)+m|0:n;if(m){continue}break}}n=i-b>>2}Ta(s+8|0,j,b,i);b=J[s+8>>2];e=e-l|0;f=f-n|0;if((l+n|0)>=(e+f|0)){break c}Od(a,j,b,d,l,n,g,h);a=b;b=i;break b}}ra();B()}Od(b,i,c,d,e,f,g,h);f=n;e=l;c=b;b=j}if(f){continue}break a}break}Sa(a,b,c,d,e,f,g)}ba=s+16|0}function $d(a,b,c,d,e,f,g,h){var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;s=ba-16|0;ba=s;a:{if(!f){break a}while(1){if(!((e|0)<=(h|0)|(f|0)<=(h|0))){if(!e){break a}i=J[d>>2];o=J[i>>2];b:{c:{p=J[i+4>>2]-o>>3;i=J[b>>2];d:{if(p>>>0<=i>>>0){break d}n=(i<<3)+o|0;while(1){j=J[a>>2];if(j>>>0>=p>>>0){break d}if(M[n>>2]>=M[(j<<3)+o>>2]){a=a+4|0;e=e-1|0;if(e){continue}break a}break}e:{f:{if((e|0)<(f|0)){n=(f|0)/2|0;i=(n<<2)+b|0;g:{if((a|0)==(b|0)){j=b;break g}j=J[i>>2];if(j>>>0>=p>>>0){break d}m=b-a>>2;l=m>>>1|0;q=(l<<2)+a|0;k=J[q>>2];if(k>>>0>=p>>>0){break d}r=q+4|0;q=J[(j<<3)+o>>2];k=q>>>0>2];j=k?a:r;m=k?l:m+(l^-1)|0;if(!m){break g}while(1){l=m>>>1|0;k=(l<<2)+j|0;r=J[k>>2];if(r>>>0>=p>>>0){break d}t=k+4|0;k=q>>>0>2];j=k?j:t;m=k?l:(l^-1)+m|0;if(m){continue}break}}l=j-a>>2;break f}if((e|0)==1){J[a>>2]=i;J[b>>2]=j;break a}l=(e|0)/2|0;j=(l<<2)+a|0;i=c;if((i|0)!=(b|0)){m=c-b>>2;i=J[j>>2];if(i>>>0>=p>>>0){break e}q=(i<<3)+o|0;i=b;while(1){n=m>>>1|0;k=(n<<2)+i|0;r=J[k>>2];if(r>>>0>=p>>>0){break d}t=k+4|0;k=M[(r<<3)+o>>2]>2];i=k?t:i;m=k?(n^-1)+m|0:n;if(m){continue}break}}n=i-b>>2}Ta(s+8|0,j,b,i);b=J[s+8>>2];e=e-l|0;f=f-n|0;if((l+n|0)>=(e+f|0)){break c}$d(a,j,b,d,l,n,g,h);a=b;b=i;break b}}ra();B()}$d(b,i,c,d,e,f,g,h);f=n;e=l;c=b;b=j}if(f){continue}break a}break}Sa(a,b,c,d,e,f,g)}ba=s+16|0}function Kg(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;m=ba-16|0;ba=m;f=J[b+28>>2];g=J[b+24>>2];J[a+8>>2]=g;J[a+12>>2]=f;f=J[b+20>>2];J[a>>2]=J[b+16>>2];J[a+4>>2]=f;f=J[b+36>>2];J[a+16>>2]=J[b+32>>2];J[a+20>>2]=f;J[a+8>>2]=d+g;a:{b:{if((d|0)>0){j=J[b>>2];f=J[a+12>>2];n=J[a+16>>2];o=O[a>>3];while(1){i=J[b+4>>2]-j>>2;g=J[(h<<2)+c>>2];c:{if(i>>>0>g>>>0){break c}J[m+12>>2]=0;k=g+1|0;if(k>>>0>i>>>0){jc(b,k-i|0,m+12|0);j=J[b>>2];break c}if(i>>>0<=k>>>0){break c}J[b+4>>2]=(k<<2)+j}k=(g<<2)+j|0;i=J[k>>2];d:{if((i|0)>=2){l=+(i|0);l=va(l)*l;break d}l=0;if(i){break d}n=n+1|0;J[a+16>>2]=n;if(f>>>0>=g>>>0){break d}J[a+12>>2]=g;f=g}g=i+1|0;J[k>>2]=g;p=+(g|0);o=va(p)*p-l+o;O[a>>3]=o;h=h+1|0;if((h|0)!=(d|0)){continue}break}if(e){break b}if((d|0)<=0){break a}a=J[b>>2];j=0;h=0;if(d>>>0>=4){g=d&-4;e=0;while(1){b=h<<2;f=a+(J[b+c>>2]<<2)|0;J[f>>2]=J[f>>2]-1;f=a+(J[(b|4)+c>>2]<<2)|0;J[f>>2]=J[f>>2]-1;f=a+(J[(b|8)+c>>2]<<2)|0;J[f>>2]=J[f>>2]-1;b=a+(J[(b|12)+c>>2]<<2)|0;J[b>>2]=J[b>>2]-1;h=h+4|0;e=e+4|0;if((g|0)!=(e|0)){continue}break}}b=d&3;if(!b){break a}while(1){d=a+(J[(h<<2)+c>>2]<<2)|0;J[d>>2]=J[d>>2]-1;h=h+1|0;j=j+1|0;if((b|0)!=(j|0)){continue}break}break a}if(!e){break a}}c=J[a+4>>2];J[b+16>>2]=J[a>>2];J[b+20>>2]=c;J[b+32>>2]=J[a+16>>2];c=J[a+12>>2];J[b+24>>2]=J[a+8>>2];J[b+28>>2]=c}ba=m+16|0}function Ya(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;e=J[b+16>>2];f=J[c+4>>2]-e|0;J[c>>2]=0|J[c>>2]-e;J[c+4>>2]=f;f=J[d+4>>2]-e|0;e=J[d>>2]-e|0;J[d>>2]=g|e;J[d+4>>2]=f;i=J[b+16>>2];g=f>>31;h=(g^f)-g|0;g=e>>31;if(i>>>0>>0){j=J[c+4>>2];k=J[c>>2];a:{b:{if((k|0)>=0){h=1;g=1;if((j|0)>=0){break a}e=1;h=-1;g=-1;if(k){break b}break a}e=-1;h=-1;g=-1;if((j|0)<=0){break a}}h=(j|0)<=0?-1:1;g=e}f=1;e=-1;l=k<<1;k=P(g,i);l=l-k|0;g=(P(g,h)|0)>=0;h=P(h,i);J[c+4>>2]=((g?0-l|0:l)+h|0)/2;h=(j<<1)-h|0;J[c>>2]=(k+(g?0-h|0:h)|0)/2;g=J[d+4>>2];h=J[d>>2];c:{d:{if((h|0)>=0){e=1;if((g|0)>=0){break c}if(h){break d}f=-1;e=-1;break c}f=-1;if((g|0)<=0){break c}}f=(g|0)<=0?-1:1}i=h<<1;h=J[b+16>>2];j=P(h,e);i=i-j|0;e=(P(f,e)|0)>=0;h=P(f,h);f=((e?0-i|0:i)+h|0)/2|0;J[d+4>>2]=f;g=(g<<1)-h|0;e=(j+(e?0-g|0:g)|0)/2|0;J[d>>2]=e}e:{f:{g:{h:{i:{j:{if(e){if((e|0)>=0){break j}if((f|0)>0){break h}break e}if(f){break i}f=0;e=0;break e}if((f|0)<0){break g}f=0-J[c+4>>2]|0;J[c>>2]=0-J[c>>2];J[c+4>>2]=f;e=0-J[d>>2]|0;f=0-J[d+4>>2]|0;break f}if((f|0)<=0){break g}}f=J[c>>2];J[c>>2]=0-J[c+4>>2];J[c+4>>2]=f;e=0-J[d+4>>2]|0;f=J[d>>2];break f}f=0-J[c>>2]|0;J[c>>2]=J[c+4>>2];J[c+4>>2]=f;e=J[d+4>>2];f=0-J[d>>2]|0}J[d>>2]=e;J[d+4>>2]=f}d=J[c>>2];b=J[b+4>>2];c=J[c+4>>2]-f|0;J[a+4>>2]=(b&c>>31)+c;c=a;a=d-e|0;J[c>>2]=(b&a>>31)+a}function eg(a,b){var c=0,d=0,e=0,f=0,g=0;e=-1;c=(b|0)==-1;d=-1;a:{if(c){break a}d=b+1|0;e=(d>>>0)%3|0?d:b-2|0;d=b-1|0;if((b>>>0)%3|0){break a}d=b+2|0}f=c?-1:(b>>>0)/3|0;g=J[a+28>>2]+(f>>>3&536870908)|0;J[g>>2]=J[g>>2]|1<>2]+12>>2]+(b<<2)>>2];if((c|0)==-1){break b}c=(c>>>0)/3|0;if(J[J[a+28>>2]+(c>>>3&268435452)>>2]>>>c&1){break b}c=J[a+172>>2];if((c|0)==J[a+176>>2]){break b}f=1<>>5<<2;b=0;while(1){Ca(J[a+280>>2]+(b<<5)|0,(f&J[g+J[(P(b,136)+c|0)+4>>2]>>2])!=0);b=b+1|0;c=J[a+172>>2];if(b>>>0<(J[a+176>>2]-c|0)/136>>>0){continue}break}}c:{if((e|0)==-1){break c}b=J[J[J[a+12>>2]+12>>2]+(e<<2)>>2];if((b|0)==-1){break c}b=(b>>>0)/3|0;if(J[J[a+28>>2]+(b>>>3&268435452)>>2]>>>b&1){break c}c=J[a+172>>2];if((c|0)==J[a+176>>2]){break c}f=1<>>5<<2;b=0;while(1){Ca(J[a+280>>2]+(b<<5)|0,(f&J[e+J[(P(b,136)+c|0)+4>>2]>>2])!=0);b=b+1|0;c=J[a+172>>2];if(b>>>0<(J[a+176>>2]-c|0)/136>>>0){continue}break}}d:{if((d|0)==-1){break d}b=J[J[J[a+12>>2]+12>>2]+(d<<2)>>2];if((b|0)==-1){break d}b=(b>>>0)/3|0;if(J[J[a+28>>2]+(b>>>3&268435452)>>2]>>>b&1){break d}c=J[a+172>>2];if((c|0)==J[a+176>>2]){break d}e=1<>>5<<2;b=0;while(1){Ca(J[a+280>>2]+(b<<5)|0,(e&J[d+J[(P(b,136)+c|0)+4>>2]>>2])!=0);b=b+1|0;c=J[a+172>>2];if(b>>>0<(J[a+176>>2]-c|0)/136>>>0){continue}break}}}function yf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0;a=0;a:{if(!d|(!b|(c|0)<0)){break a}f=J[b+8>>2];if(J[b+12>>2]-f>>2<=(c|0)){break a}if(!J[b+4>>2]){a=oa(36);J[a+4>>2]=0;J[a+8>>2]=0;J[a+24>>2]=0;J[a+28>>2]=0;e=a+16|0;J[e>>2]=0;J[e+4>>2]=0;J[a>>2]=a+4;J[a+32>>2]=0;J[a+12>>2]=e;J[b+4>>2]=a}a=J[J[f+(c<<2)>>2]+60>>2];d=sd(oa(28),d);J[d+24>>2]=a;a=J[b+4>>2];c=ba-16|0;ba=c;J[c+8>>2]=d;b:{if(!d){break b}b=J[a+28>>2];c:{if(b>>>0>2]){J[c+8>>2]=0;J[b>>2]=d;J[a+28>>2]=b+4;break c}b=0;d:{e:{f:{e=J[a+24>>2];f=J[a+28>>2]-e>>2;d=f+1|0;if(d>>>0<1073741824){e=J[a+32>>2]-e|0;g=e>>>1|0;e=e>>>0>=2147483644?1073741823:d>>>0>>0?g:d;if(e){if(e>>>0>=1073741824){break f}b=oa(e<<2)}g=J[c+8>>2];J[c+8>>2]=0;d=(f<<2)+b|0;J[d>>2]=g;e=(e<<2)+b|0;f=d+4|0;b=J[a+28>>2];g=J[a+24>>2];if((b|0)==(g|0)){break e}while(1){b=b-4|0;h=J[b>>2];J[b>>2]=0;d=d-4|0;J[d>>2]=h;if((b|0)!=(g|0)){continue}break}J[a+32>>2]=e;e=J[a+28>>2];J[a+28>>2]=f;b=J[a+24>>2];J[a+24>>2]=d;if((b|0)==(e|0)){break d}while(1){e=e-4|0;a=J[e>>2];J[e>>2]=0;if(a){lb(a+12|0,J[a+16>>2]);kb(a,J[a+4>>2]);na(a)}if((b|0)!=(e|0)){continue}break}break d}qa();B()}xa();B()}J[a+32>>2]=e;J[a+28>>2]=f;J[a+24>>2]=d}if(b){na(b)}}a=J[c+8>>2];J[c+8>>2]=0;if(!a){break b}lb(a+12|0,J[a+16>>2]);kb(a,J[a+4>>2]);na(a)}ba=c+16|0;a=1}return a|0}function pl(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0;e=J[a+16>>2];a:{if(J[a+20>>2]-e>>2<=(b|0)){break a}h=J[e+(b<<2)>>2];if((h|0)<0){break a}if(M[a+52>>2]<=h>>>0){b:{b=ba-16|0;ba=b;c:{f=J[a+52>>2];c=h+1|0;d:{if(f>>>0>>0){e=c-f|0;g=J[a+56>>2];d=g<<5;e:{if(!(e>>>0>d>>>0|f>>>0>d-e>>>0)){J[a+52>>2]=c;d=f&31;c=J[a+48>>2]+(f>>>3&536870908)|0;break e}J[b+8>>2]=0;J[b>>2]=0;J[b+4>>2]=0;if((c|0)<0){break c}if(d>>>0<=1073741822){d=g<<6;c=c+31&-32;c=c>>>0>>0?d:c}else{c=2147483647}wc(b,c);d=J[a+52>>2];J[b+4>>2]=d+e;f=J[a+48>>2];c=J[b>>2];f:{if((d|0)<=0){d=0;break f}g=d>>>5|0;if(d>>>0>=32){ta(c,f,g<<2)}g=g<<2;c=g+c|0;d=d&31;if(d){i=-1>>>32-d|0;J[c>>2]=J[c>>2]&(i^-1)|J[f+g>>2]&i}f=J[a+48>>2]}J[a+48>>2]=J[b>>2];J[b>>2]=f;g=J[a+52>>2];J[a+52>>2]=J[b+4>>2];J[b+4>>2]=g;g=J[a+56>>2];J[a+56>>2]=J[b+8>>2];J[b+8>>2]=g;if(!f){break e}na(f)}if(!e){break d}if(d){f=32-d|0;g=e>>>0>f>>>0?f:e;J[c>>2]=J[c>>2]&(-1<>>f-g^-1);e=e-g|0;c=c+4|0}d=e>>>5|0;if(e>>>0>=32){pa(c,0,d<<2)}if((e&-32)==(e|0)){break d}c=(d<<2)+c|0;J[c>>2]=J[c>>2]&(-1>>>32-(e&31)^-1);break d}J[a+52>>2]=c}ba=b+16|0;break b}qa();B()}}c=1;b=J[a+48>>2]+(h>>>3&536870908)|0;J[b>>2]=J[b>>2]|1<>2];a=J[a+36>>2];if(b-a>>2>>>0<=h>>>0){break a}H[J[a+(h<<2)>>2]+28|0]=1}return c|0}function Va(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;g=ba-16|0;ba=g;Aa(J[a+12>>2],b);a:{if(!J[a+12>>2]){break a}n=g+15|0;o=g+16|0;while(1){b:{c:{e=J[a>>2];j=J[e+(h<<3)>>2];c=j>>>0<64;if(!c){d=1;if(j>>>0<16384){break c}d=2;if(j>>>0<=4194303){break c}break a}d=0;if(j){break c}while(1){d:{if(J[(e+(d+h<<3)|0)+8>>2]){c=d;break d}c=d+1|0;if(J[(e+(h+c<<3)|0)+8>>2]){break d}c=d+2|0;if(J[(e+(h+c<<3)|0)+8>>2]){break d}c=63;d=d+3|0;if((d|0)!=63){continue}}break}H[g+15|0]=c<<2|3;d=J[b+20>>2];if(!J[b+16>>2]&(d|0)<=0|(d|0)<0){sa(b,J[b+4>>2],g+15|0,o)}h=c+h|0;break b}H[g+14|0]=j<<2|d;e=J[b+20>>2];if(!J[b+16>>2]&(e|0)<=0|(e|0)<0){sa(b,J[b+4>>2],g+14|0,n)}if(c){break b}c=J[b+20>>2];if(!!J[b+16>>2]&(c|0)>=0|(c|0)>0){break b}p=d>>>0<=1?1:d;d=0;while(1){d=d+1|0;e:{c=J[b+20>>2];if(!!J[b+16>>2]&(c|0)>=0|(c|0)>0){break e}m=j>>>(d<<3)-2|0;f=J[b+8>>2];e=J[b+4>>2];if((f-e|0)>0){H[e|0]=m;J[b+4>>2]=e+1;break e}k=J[b>>2];c=e-k|0;i=c+1|0;if((i|0)>=0){f=f-k|0;l=f<<1;f=f>>>0>=1073741823?2147483647:i>>>0>>0?l:i;if(f){i=oa(f)}else{i=0}l=i+c|0;H[l|0]=m;c=ta(i,k,c);e=ta(l+1|0,e,0);J[b+8>>2]=c+f;J[b+4>>2]=e;J[b>>2]=c;if(!k){break e}na(k);break e}qa();B()}if((d|0)!=(p|0)){continue}break}}h=h+1|0;if(h>>>0>2]){continue}break}}ba=g+16|0}function Ye(a){var b=0,c=0,d=0,e=0,f=0;a:{b:{c:{d:{e:{b=J[a+4>>2];f:{if((b|0)!=J[a+104>>2]){J[a+4>>2]=b+1;b=K[b|0];break f}b=La(a)}switch(b-43|0){case 0:case 2:break e;default:break d}}f=(b|0)==45;b=J[a+4>>2];g:{if((b|0)!=J[a+104>>2]){J[a+4>>2]=b+1;b=K[b|0];break g}b=La(a)}e=b-58|0;if(e>>>0>4294967285){break c}if(J[a+116>>2]<0){break b}J[a+4>>2]=J[a+4>>2]-1;break b}e=b-58|0}if(e>>>0<4294967286){break b}e=b-48|0;if(e>>>0<10){while(1){d=(P(d,10)+b|0)-48|0;c=(d|0)<214748364;b=J[a+4>>2];h:{if((b|0)!=J[a+104>>2]){J[a+4>>2]=b+1;b=K[b|0];break h}b=La(a)}e=b-48|0;if(c&e>>>0<=9){continue}break}c=d>>31}i:{if(e>>>0>=10){break i}while(1){d=Hl(d,c,10,0);b=d+b|0;c=ca;c=b>>>0>>0?c+1|0:c;d=b-48|0;c=c-(b>>>0<48)|0;b=J[a+4>>2];j:{if((b|0)!=J[a+104>>2]){J[a+4>>2]=b+1;b=K[b|0];break j}b=La(a)}e=b-48|0;if(e>>>0>9){break i}if(d>>>0<2061584302&(c|0)<=21474836|(c|0)<21474836){continue}break}}if(e>>>0<10){while(1){b=J[a+4>>2];k:{if((b|0)!=J[a+104>>2]){J[a+4>>2]=b+1;b=K[b|0];break k}b=La(a)}if(b-48>>>0<10){continue}break}}b=J[a+116>>2];if((b|0)>0|(b|0)>=0){J[a+4>>2]=J[a+4>>2]-1}a=d;d=f?0-a|0:a;c=f?0-(((a|0)!=0)+c|0)|0:c;break a}c=-2147483648;if(J[a+116>>2]<0){break a}J[a+4>>2]=J[a+4>>2]-1;ca=-2147483648;return 0}ca=c;return d}function Hi(a,b,c,d){a=a|0;b=b|0;c=c|0;d=+d;var e=0,f=0,g=0,h=0,i=0;g=ba-16|0;ba=g;a:{b:{c:{if(!b){break c}e=rb(c);if(e>>>0>=2147483632){break b}d:{e:{if(e>>>0>=11){f=(e|15)+1|0;a=oa(f);J[g+8>>2]=f|-2147483648;J[g>>2]=a;J[g+4>>2]=e;f=a+e|0;break e}H[g+11|0]=e;f=e+g|0;a=g;if(!e){break d}}ua(a,c,e)}H[f|0]=0;h=ba-16|0;ba=h;O[h+8>>3]=d;f=ba-48|0;ba=f;e=ob(b,g);if((e|0)!=(b+4|0)){a=J[e+4>>2];f:{if(!a){a=e;while(1){c=J[a+8>>2];i=J[c>>2]!=(a|0);a=c;if(i){continue}break}break f}while(1){c=a;a=J[a>>2];if(a){continue}break}}if((e|0)==J[b>>2]){J[b>>2]=c}J[b+8>>2]=J[b+8>>2]-1;Dc(J[b+4>>2],e);a=J[e+28>>2];if(a){J[e+32>>2]=a;na(a)}if(H[e+27|0]<0){na(J[e+16>>2])}na(e)}a=oa(8);J[f>>2]=a;c=a+8|0;J[f+8>>2]=c;J[f+4>>2]=c;c=J[h+12>>2];e=J[h+8>>2];H[a|0]=e;H[a+1|0]=e>>>8;H[a+2|0]=e>>>16;H[a+3|0]=e>>>24;H[a+4|0]=c;H[a+5|0]=c>>>8;H[a+6|0]=c>>>16;H[a+7|0]=c>>>24;g:{if(H[g+11|0]>=0){J[f+24>>2]=J[g+8>>2];a=J[g+4>>2];J[f+16>>2]=J[g>>2];J[f+20>>2]=a;break g}Ga(f+16|0,J[g>>2],J[g+4>>2])}Ob(f+28|0,f);a=f+16|0;Cc(f+40|0,b,a,a);a=J[f+28>>2];if(a){J[f+32>>2]=a;na(a)}if(H[f+27|0]<0){na(J[f+16>>2])}a=J[f>>2];if(a){J[f+4>>2]=a;na(a)}ba=f+48|0;ba=h+16|0;if(H[g+11|0]>=0){break c}na(J[g>>2])}ba=g+16|0;a=(b|0)!=0;break a}gb();B()}return a|0}function ze(a,b){var c=0,d=0,e=0,f=0,g=0;e=ba-16|0;ba=e;J[a+8>>2]=b;J[a>>2]=0;c=a+12|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;J[a+44>>2]=0;J[a+48>>2]=0;J[a+60>>2]=0;J[a+52>>2]=0;J[a+56>>2]=0;c=a- -64|0;J[c>>2]=0;J[c+4>>2]=0;J[c+16>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;J[a+84>>2]=0;J[a+88>>2]=0;J[a+100>>2]=0;J[a+92>>2]=0;J[a+96>>2]=0;J[a+112>>2]=0;J[a+104>>2]=0;J[a+108>>2]=0;g=a+140|0;a:{b:{if(b){if(b>>>0<1073741824){break b}qa();B()}J[a+116>>2]=0;J[a+120>>2]=0;J[a+132>>2]=0;J[a+136>>2]=0;J[a+124>>2]=0;J[a+128>>2]=0;J[e+8>>2]=0;J[e>>2]=0;J[e+4>>2]=0;c=1;break a}c=b<<2;d=oa(c);J[a+104>>2]=d;f=c+d|0;J[a+112>>2]=f;pa(d,0,c);J[a+124>>2]=0;J[a+116>>2]=0;J[a+120>>2]=0;J[a+108>>2]=f;d=oa(c);J[a+116>>2]=d;f=c+d|0;J[a+124>>2]=f;pa(d,0,c);J[a+136>>2]=0;J[a+128>>2]=0;J[a+132>>2]=0;J[a+120>>2]=f;d=oa(c);J[a+128>>2]=d;f=c+d|0;J[a+136>>2]=f;pa(d,0,c);J[a+132>>2]=f;d=oa(c);J[e>>2]=d;f=c+d|0;J[e+8>>2]=f;pa(d,0,c);J[e+4>>2]=f;c=b<<5|1}Jb(g,c,e);d=J[e>>2];if(d){J[e+4>>2]=d;na(d)}J[e+8>>2]=0;J[e>>2]=0;J[e+4>>2]=0;if(b){b=b<<2;d=oa(b);J[e>>2]=d;f=b+d|0;J[e+8>>2]=f;pa(d,0,b);J[e+4>>2]=f}Jb(a+152|0,c,e);b=J[e>>2];if(b){J[e+4>>2]=b;na(b)}ba=e+16|0;return a}function lj(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0;f=ba-16|0;ba=f;da[J[J[b>>2]+64>>2]](a,b);if(!J[a>>2]){if(H[a+15|0]<0){na(J[a+4>>2])}g=J[b+48>>2];c=oa(32);J[f>>2]=c;J[f+4>>2]=29;J[f+8>>2]=-2147483616;d=K[1308]|K[1309]<<8|(K[1310]<<16|K[1311]<<24);e=K[1304]|K[1305]<<8|(K[1306]<<16|K[1307]<<24);H[c+21|0]=e;H[c+22|0]=e>>>8;H[c+23|0]=e>>>16;H[c+24|0]=e>>>24;H[c+25|0]=d;H[c+26|0]=d>>>8;H[c+27|0]=d>>>16;H[c+28|0]=d>>>24;d=K[1303]|K[1304]<<8|(K[1305]<<16|K[1306]<<24);e=K[1299]|K[1300]<<8|(K[1301]<<16|K[1302]<<24);H[c+16|0]=e;H[c+17|0]=e>>>8;H[c+18|0]=e>>>16;H[c+19|0]=e>>>24;H[c+20|0]=d;H[c+21|0]=d>>>8;H[c+22|0]=d>>>16;H[c+23|0]=d>>>24;d=K[1295]|K[1296]<<8|(K[1297]<<16|K[1298]<<24);e=K[1291]|K[1292]<<8|(K[1293]<<16|K[1294]<<24);H[c+8|0]=e;H[c+9|0]=e>>>8;H[c+10|0]=e>>>16;H[c+11|0]=e>>>24;H[c+12|0]=d;H[c+13|0]=d>>>8;H[c+14|0]=d>>>16;H[c+15|0]=d>>>24;d=K[1287]|K[1288]<<8|(K[1289]<<16|K[1290]<<24);e=K[1283]|K[1284]<<8|(K[1285]<<16|K[1286]<<24);H[c|0]=e;H[c+1|0]=e>>>8;H[c+2|0]=e>>>16;H[c+3|0]=e>>>24;H[c+4|0]=d;H[c+5|0]=d>>>8;H[c+6|0]=d>>>16;H[c+7|0]=d>>>24;H[c+29|0]=0;c=Pb(g,f,0);if(H[f+11|0]<0){na(J[f>>2])}if(c){da[J[J[b>>2]+68>>2]](b)}J[a>>2]=0;J[a+4>>2]=0;J[a+8>>2]=0;J[a+12>>2]=0}ba=f+16|0}function db(a,b){var c=0,d=0,e=0,f=0,g=0,h=0;a:{b:{c:{d:{if(b){if(b>>>0>=1073741824){break d}d=oa(b<<2);c=J[a>>2];J[a>>2]=d;if(c){na(c)}J[a+4>>2]=b;c=0;if(b>>>0>=4){d=b&-4;while(1){g=c<<2;J[g+J[a>>2]>>2]=0;J[J[a>>2]+(g|4)>>2]=0;J[J[a>>2]+(g|8)>>2]=0;J[J[a>>2]+(g|12)>>2]=0;c=c+4|0;e=e+4|0;if((d|0)!=(e|0)){continue}break}}d=b&3;if(d){while(1){J[J[a>>2]+(c<<2)>>2]=0;c=c+1|0;f=f+1|0;if((d|0)!=(f|0)){continue}break}}d=J[a+8>>2];if(!d){break a}c=a+8|0;f=J[d+4>>2];e=Kl(b);if(e>>>0<2){break c}f=b>>>0<=f>>>0?(f>>>0)%(b>>>0)|0:f;J[J[a>>2]+(f<<2)>>2]=c;c=J[d>>2];if(!c){break a}if(e>>>0<=1){break b}while(1){e=J[c+4>>2];if(e>>>0>=b>>>0){e=(e>>>0)%(b>>>0)|0}e:{if((f|0)==(e|0)){d=c;break e}h=e<<2;g=h+J[a>>2]|0;if(!J[g>>2]){J[g>>2]=d;d=c;f=e;break e}J[d>>2]=J[c>>2];J[c>>2]=J[J[h+J[a>>2]>>2]>>2];J[J[h+J[a>>2]>>2]>>2]=c}c=J[d>>2];if(c){continue}break}break a}b=J[a>>2];J[a>>2]=0;if(b){na(b)}J[a+4>>2]=0;break a}xa();B()}f=b-1&f;J[J[a>>2]+(f<<2)>>2]=c;c=J[d>>2];if(!c){break a}}g=b-1|0;while(1){b=g&J[c+4>>2];f:{if((b|0)==(f|0)){d=c;break f}h=b<<2;e=h+J[a>>2]|0;if(J[e>>2]){J[d>>2]=J[c>>2];J[c>>2]=J[J[h+J[a>>2]>>2]>>2];J[J[h+J[a>>2]>>2]>>2]=c;break f}J[e>>2]=d;d=c;f=b}c=J[d>>2];if(c){continue}break}}}function cb(a){var b=0,c=0,d=0,e=0,f=0;e=ba-16|0;ba=e;b=oa(16);J[e>>2]=b;J[e+4>>2]=14;J[e+8>>2]=-2147483632;c=K[1602]|K[1603]<<8|(K[1604]<<16|K[1605]<<24);d=K[1598]|K[1599]<<8|(K[1600]<<16|K[1601]<<24);H[b+6|0]=d;H[b+7|0]=d>>>8;H[b+8|0]=d>>>16;H[b+9|0]=d>>>24;H[b+10|0]=c;H[b+11|0]=c>>>8;H[b+12|0]=c>>>16;H[b+13|0]=c>>>24;c=K[1596]|K[1597]<<8|(K[1598]<<16|K[1599]<<24);d=K[1592]|K[1593]<<8|(K[1594]<<16|K[1595]<<24);H[b|0]=d;H[b+1|0]=d>>>8;H[b+2|0]=d>>>16;H[b+3|0]=d>>>24;H[b+4|0]=c;H[b+5|0]=c>>>8;H[b+6|0]=c>>>16;H[b+7|0]=c>>>24;H[b+14|0]=0;f=Bb(a,e,-1);if(H[e+11|0]<0){na(J[e>>2])}b=oa(16);J[e>>2]=b;J[e+4>>2]=14;J[e+8>>2]=-2147483632;c=K[1617]|K[1618]<<8|(K[1619]<<16|K[1620]<<24);d=K[1613]|K[1614]<<8|(K[1615]<<16|K[1616]<<24);H[b+6|0]=d;H[b+7|0]=d>>>8;H[b+8|0]=d>>>16;H[b+9|0]=d>>>24;H[b+10|0]=c;H[b+11|0]=c>>>8;H[b+12|0]=c>>>16;H[b+13|0]=c>>>24;c=K[1611]|K[1612]<<8|(K[1613]<<16|K[1614]<<24);d=K[1607]|K[1608]<<8|(K[1609]<<16|K[1610]<<24);H[b|0]=d;H[b+1|0]=d>>>8;H[b+2|0]=d>>>16;H[b+3|0]=d>>>24;H[b+4|0]=c;H[b+5|0]=c>>>8;H[b+6|0]=c>>>16;H[b+7|0]=c>>>24;H[b+14|0]=0;a=Bb(a,e,-1);if(H[e+11|0]<0){na(J[e>>2])}ba=e+16|0;a=(a|0)<(f|0)?f:a;return(a|0)==-1?5:a}function ei(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;ff(a,b,c);c=J[a+84>>2];d=J[a+88>>2]-c>>2;a:{if((d|0)>(b|0)){break a}b=b+1|0;if(b>>>0>d>>>0){b:{d=b-d|0;e=J[a+92>>2];c=J[a+88>>2];if(d>>>0<=e-c>>2>>>0){c:{if(!d){break c}b=c;e=d&7;if(e){while(1){J[b>>2]=1;b=b+4|0;f=f+1|0;if((e|0)!=(f|0)){continue}break}}c=(d<<2)+c|0;if((d-1&1073741823)>>>0<7){break c}while(1){J[b+24>>2]=1;J[b+28>>2]=1;J[b+16>>2]=1;J[b+20>>2]=1;J[b+8>>2]=1;J[b+12>>2]=1;J[b>>2]=1;J[b+4>>2]=1;b=b+32|0;if((c|0)!=(b|0)){continue}break}}J[a+88>>2]=c;break b}d:{b=c;c=J[a+84>>2];i=b-c|0;g=i>>2;b=g+d|0;if(b>>>0<1073741824){e=e-c|0;h=e>>>1|0;e=e>>>0>=2147483644?1073741823:b>>>0>>0?h:b;if(e){if(e>>>0>=1073741824){break d}j=oa(e<<2)}g=(g<<2)+j|0;b=g;h=d&7;if(h){while(1){J[b>>2]=1;b=b+4|0;f=f+1|0;if((h|0)!=(f|0)){continue}break}}f=g+(d<<2)|0;if((d-1&1073741823)>>>0>=7){while(1){J[b+24>>2]=1;J[b+28>>2]=1;J[b+16>>2]=1;J[b+20>>2]=1;J[b+8>>2]=1;J[b+12>>2]=1;J[b>>2]=1;J[b+4>>2]=1;b=b+32|0;if((f|0)!=(b|0)){continue}break}}b=ta(j,c,i);J[a+88>>2]=f;J[a+84>>2]=b;J[a+92>>2]=b+(e<<2);if(c){na(c)}break b}qa();B()}xa();B()}return}if(b>>>0>=d>>>0){break a}J[a+88>>2]=c+(b<<2)}}function ie(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;a:{c=J[a+8>>2];e=J[a>>2];if(c-e>>3>>>0>=2){f=J[a+4>>2];h=f-e>>3;d=h>>>0>=2?2:h;b:{if(!d){break b}c=e;g=d;i=d&7;if(i){while(1){k=J[b+4>>2];J[c>>2]=J[b>>2];J[c+4>>2]=k;g=g-1|0;c=c+8|0;j=j+1|0;if((j|0)!=(i|0)){continue}break}}if(d>>>0<8){break b}while(1){d=J[b+4>>2];J[c>>2]=J[b>>2];J[c+4>>2]=d;d=J[b+4>>2];J[c+8>>2]=J[b>>2];J[c+12>>2]=d;d=J[b+4>>2];J[c+16>>2]=J[b>>2];J[c+20>>2]=d;d=J[b+4>>2];J[c+24>>2]=J[b>>2];J[c+28>>2]=d;d=J[b+4>>2];J[c+32>>2]=J[b>>2];J[c+36>>2]=d;d=J[b+4>>2];J[c+40>>2]=J[b>>2];J[c+44>>2]=d;d=J[b+4>>2];J[c+48>>2]=J[b>>2];J[c+52>>2]=d;d=J[b+4>>2];J[c+56>>2]=J[b>>2];J[c+60>>2]=d;c=c- -64|0;g=g-8|0;if(g){continue}break}}if(h>>>0<2){c=(2-h<<3)+f|0;while(1){e=J[b+4>>2];J[f>>2]=J[b>>2];J[f+4>>2]=e;f=f+8|0;if((c|0)!=(f|0)){continue}break}J[a+4>>2]=c;return}break a}if(e){J[a+4>>2]=e;na(e);J[a+8>>2]=0;J[a>>2]=0;J[a+4>>2]=0;c=0}e=c>>>2|0;e=c>>>0>=2147483640?536870911:e>>>0<=2?2:e;if(e>>>0<536870912){c=e<<3;e=oa(c);J[a>>2]=e;J[a+8>>2]=c+e;d=J[b>>2];g=J[b+4>>2];c=e;b=0;while(1){J[c>>2]=d;J[c+4>>2]=g;c=c+8|0;b=b+1|0;if((b|0)!=2){continue}break}break a}qa();B()}J[a+4>>2]=e+16}function we(a,b){var c=0,d=0,e=0,f=0,g=0;d=ba-16|0;ba=d;J[a+8>>2]=b;J[a>>2]=0;J[a+12>>2]=0;J[a+16>>2]=0;J[a+28>>2]=0;J[a+20>>2]=0;J[a+24>>2]=0;J[a+32>>2]=0;J[a+36>>2]=0;J[a+48>>2]=0;J[a+40>>2]=0;J[a+44>>2]=0;J[a+52>>2]=0;J[a+56>>2]=0;J[a+68>>2]=0;J[a+60>>2]=0;J[a+64>>2]=0;J[a+72>>2]=0;J[a+76>>2]=0;J[a+88>>2]=0;J[a+80>>2]=0;J[a+84>>2]=0;J[a+100>>2]=0;J[a+92>>2]=0;J[a+96>>2]=0;g=a+128|0;a:{b:{if(b){if(b>>>0<1073741824){break b}qa();B()}J[a+104>>2]=0;J[a+108>>2]=0;J[a+120>>2]=0;J[a+124>>2]=0;J[a+112>>2]=0;J[a+116>>2]=0;J[d+8>>2]=0;J[d>>2]=0;J[d+4>>2]=0;e=1;break a}e=b<<2;c=oa(e);J[a+92>>2]=c;f=c+e|0;J[a+100>>2]=f;pa(c,0,e);J[a+112>>2]=0;J[a+104>>2]=0;J[a+108>>2]=0;J[a+96>>2]=f;c=oa(e);J[a+104>>2]=c;f=c+e|0;J[a+112>>2]=f;pa(c,0,e);J[a+124>>2]=0;J[a+116>>2]=0;J[a+120>>2]=0;J[a+108>>2]=f;c=oa(e);J[a+116>>2]=c;f=c+e|0;J[a+124>>2]=f;pa(c,0,e);J[a+120>>2]=f;c=oa(e);J[d>>2]=c;f=c+e|0;J[d+8>>2]=f;pa(c,0,e);J[d+4>>2]=f;e=b<<5|1}Jb(g,e,d);c=J[d>>2];if(c){J[d+4>>2]=c;na(c)}J[d+8>>2]=0;J[d>>2]=0;J[d+4>>2]=0;if(b){b=b<<2;c=oa(b);J[d>>2]=c;f=b+c|0;J[d+8>>2]=f;pa(c,0,b);J[d+4>>2]=f}Jb(a+140|0,e,d);b=J[d>>2];if(b){J[d+4>>2]=b;na(b)}ba=d+16|0;return a}function Ji(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0;f=ba-16|0;ba=f;a:{b:{c:{if(!b){break c}e=rb(c);if(e>>>0>=2147483632){break b}d:{e:{if(e>>>0>=11){g=(e|15)+1|0;a=oa(g);J[f+8>>2]=g|-2147483648;J[f>>2]=a;J[f+4>>2]=e;g=a+e|0;break e}H[f+11|0]=e;g=e+f|0;a=f;if(!e){break d}}ua(a,c,e)}H[g|0]=0;g=ba-16|0;ba=g;J[g+12>>2]=d;e=ba-48|0;ba=e;d=ob(b,f);if((d|0)!=(b+4|0)){a=J[d+4>>2];f:{if(!a){a=d;while(1){c=J[a+8>>2];h=J[c>>2]!=(a|0);a=c;if(h){continue}break}break f}while(1){c=a;a=J[a>>2];if(a){continue}break}}if((d|0)==J[b>>2]){J[b>>2]=c}J[b+8>>2]=J[b+8>>2]-1;Dc(J[b+4>>2],d);a=J[d+28>>2];if(a){J[d+32>>2]=a;na(a)}if(H[d+27|0]<0){na(J[d+16>>2])}na(d)}a=oa(4);J[e>>2]=a;c=a+4|0;J[e+8>>2]=c;J[e+4>>2]=c;c=J[g+12>>2];H[a|0]=c;H[a+1|0]=c>>>8;H[a+2|0]=c>>>16;H[a+3|0]=c>>>24;g:{if(H[f+11|0]>=0){J[e+24>>2]=J[f+8>>2];a=J[f+4>>2];J[e+16>>2]=J[f>>2];J[e+20>>2]=a;break g}Ga(e+16|0,J[f>>2],J[f+4>>2])}Ob(e+28|0,e);a=e+16|0;Cc(e+40|0,b,a,a);a=J[e+28>>2];if(a){J[e+32>>2]=a;na(a)}if(H[e+27|0]<0){na(J[e+16>>2])}a=J[e>>2];if(a){J[e+4>>2]=a;na(a)}ba=e+48|0;ba=g+16|0;if(H[f+11|0]>=0){break c}na(J[f>>2])}ba=f+16|0;a=(b|0)!=0;break a}gb();B()}return a|0}function wb(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;d=J[a+8>>2];e=J[a>>2];if(d-e>>2>>>0>=b>>>0){f=J[a+4>>2];h=f-e>>2;i=b>>>0>h>>>0?h:b;a:{if(!i){break a}d=e;g=i;j=g&7;if(j){while(1){J[d>>2]=J[c>>2];g=g-1|0;d=d+4|0;k=k+1|0;if((k|0)!=(j|0)){continue}break}}if(i>>>0<8){break a}while(1){J[d>>2]=J[c>>2];J[d+4>>2]=J[c>>2];J[d+8>>2]=J[c>>2];J[d+12>>2]=J[c>>2];J[d+16>>2]=J[c>>2];J[d+20>>2]=J[c>>2];J[d+24>>2]=J[c>>2];J[d+28>>2]=J[c>>2];d=d+32|0;g=g-8|0;if(g){continue}break}}if(b>>>0>h>>>0){b=(b-h<<2)+f|0;while(1){J[f>>2]=J[c>>2];f=f+4|0;if((b|0)!=(f|0)){continue}break}J[a+4>>2]=b;return}J[a+4>>2]=e+(b<<2);return}if(e){J[a+4>>2]=e;na(e);J[a+8>>2]=0;J[a>>2]=0;J[a+4>>2]=0;d=0}b:{if(b>>>0>=1073741824){break b}e=d>>>1|0;d=d>>>0>=2147483644?1073741823:b>>>0>>0?e:b;if(d>>>0>=1073741824){break b}d=d<<2;e=oa(d);J[a>>2]=e;J[a+8>>2]=d+e;c=J[c>>2];d=e;g=b&7;if(g){while(1){J[d>>2]=c;d=d+4|0;f=f+1|0;if((g|0)!=(f|0)){continue}break}}e=e+(b<<2)|0;if((b-1&1073741823)>>>0>=7){while(1){J[d+28>>2]=c;J[d+24>>2]=c;J[d+20>>2]=c;J[d+16>>2]=c;J[d+12>>2]=c;J[d+8>>2]=c;J[d+4>>2]=c;J[d>>2]=c;d=d+32|0;if((e|0)!=(d|0)){continue}break}}J[a+4>>2]=e;return}qa();B()}function Ma(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;d=J[a+8>>2];e=J[a+4>>2];if(d-e>>2>>>0>=b>>>0){a:{if(!b){break a}d=e;g=b&7;if(g){while(1){J[d>>2]=J[c>>2];d=d+4|0;f=f+1|0;if((g|0)!=(f|0)){continue}break}}e=(b<<2)+e|0;if((b-1&1073741823)>>>0<7){break a}while(1){J[d>>2]=J[c>>2];J[d+4>>2]=J[c>>2];J[d+8>>2]=J[c>>2];J[d+12>>2]=J[c>>2];J[d+16>>2]=J[c>>2];J[d+20>>2]=J[c>>2];J[d+24>>2]=J[c>>2];J[d+28>>2]=J[c>>2];d=d+32|0;if((e|0)!=(d|0)){continue}break}}J[a+4>>2]=e;return}b:{i=J[a>>2];f=e-i>>2;h=f+b|0;if(h>>>0<1073741824){j=d-i|0;d=j>>>1|0;h=j>>>0>=2147483644?1073741823:d>>>0>h>>>0?d:h;if(h){if(h>>>0>=1073741824){break b}k=oa(h<<2)}f=(f<<2)+k|0;d=f;j=b&7;if(j){while(1){J[d>>2]=J[c>>2];d=d+4|0;g=g+1|0;if((j|0)!=(g|0)){continue}break}}g=(b<<2)+f|0;if((b-1&1073741823)>>>0>=7){while(1){J[d>>2]=J[c>>2];J[d+4>>2]=J[c>>2];J[d+8>>2]=J[c>>2];J[d+12>>2]=J[c>>2];J[d+16>>2]=J[c>>2];J[d+20>>2]=J[c>>2];J[d+24>>2]=J[c>>2];J[d+28>>2]=J[c>>2];d=d+32|0;if((g|0)!=(d|0)){continue}break}}if((e|0)!=(i|0)){while(1){f=f-4|0;e=e-4|0;J[f>>2]=J[e>>2];if((e|0)!=(i|0)){continue}break}}J[a+8>>2]=(h<<2)+k;J[a+4>>2]=g;J[a>>2]=f;if(i){na(i)}return}qa();B()}xa();B()}function kg(a){var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;a:{b=J[a+12>>2];c=J[b+4>>2];b=J[b>>2];if((c|0)!=(b|0)){b=c-b>>2;j=b>>>0<=1?1:b;k=a+140|0;while(1){b:{if(Fc(J[a+12>>2],(e>>>0)/3|0)){break b}b=J[a+12>>2];if(J[J[b+12>>2]+(e<<2)>>2]!=-1){break b}f=J[a+152>>2];d=e+1|0;d=(d>>>0)%3|0?d:e-2|0;if((d|0)!=-1){b=J[J[b>>2]+(d<<2)>>2]}else{b=-1}c=b<<2;if(J[f+c>>2]!=-1){break b}g=-1;h=J[a+144>>2];b=h;d=J[a+148>>2];if((b|0)==d<<5){if((h+1|0)<0){break a}if(h>>>0<=1073741822){b=d<<6;d=(h&-32)+32|0;b=b>>>0>d>>>0?b:d}else{b=2147483647}wc(k,b);f=J[a+152>>2];g=J[c+f>>2];b=J[a+144>>2]}J[a+144>>2]=b+1;d=J[a+140>>2]+(b>>>3&536870908)|0;i=J[d>>2];m=d,n=Ll(b)&i,J[m>>2]=n;if((g|0)!=-1){break b}c=c+f|0;i=J[a+12>>2];b=e;while(1){d=b;J[c>>2]=h;b=-1;g=-1;c:{if((d|0)==-1){break c}c=d+1|0;c=(c>>>0)%3|0?c:d-2|0;if((c|0)==-1){break c}l=J[i+12>>2];while(1){d=J[(c<<2)+l>>2];if((d|0)!=-1){c=d+1|0;c=(c>>>0)%3|0?c:d-2|0;if((c|0)!=-1){continue}break c}break}b=c+1|0;b=(b>>>0)%3|0?b:c-2|0;if((b|0)!=-1){g=J[J[i>>2]+(b<<2)>>2]}b=c}c=(g<<2)+f|0;if(J[c>>2]==-1){continue}break}}e=e+1|0;if((j|0)!=(e|0)){continue}break}}return 1}qa();B()}function mb(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;f=(c>>>0)/3|0;j=J[(J[J[a+8>>2]+96>>2]+P(f,12)|0)+(c-P(f,3)<<2)>>2];a:{h=J[J[a+12>>2]+4>>2];e=J[h+4>>2];if((e|0)!=J[h+8>>2]){J[e>>2]=j;J[h+4>>2]=e+4;break a}b:{i=J[h>>2];f=e-i|0;g=f>>2;d=g+1|0;if(d>>>0<1073741824){k=g<<2;g=f>>>1|0;g=f>>>0>=2147483644?1073741823:d>>>0>>0?g:d;if(g){if(g>>>0>=1073741824){break b}f=oa(g<<2)}else{f=0}d=k+f|0;J[d>>2]=j;j=d+4|0;if((e|0)!=(i|0)){while(1){d=d-4|0;e=e-4|0;J[d>>2]=J[e>>2];if((e|0)!=(i|0)){continue}break}}J[h+8>>2]=f+(g<<2);J[h+4>>2]=j;J[h>>2]=d;if(i){na(i)}break a}qa();B()}xa();B()}c:{d:{h=J[a+4>>2];e=J[h+4>>2];e:{if((e|0)!=J[h+8>>2]){J[e>>2]=c;J[h+4>>2]=e+4;break e}i=J[h>>2];f=e-i|0;j=f>>2;d=j+1|0;if(d>>>0>=1073741824){break d}g=f>>>1|0;g=f>>>0>=2147483644?1073741823:d>>>0>>0?g:d;if(g){if(g>>>0>=1073741824){break c}f=oa(g<<2)}else{f=0}d=f+(j<<2)|0;J[d>>2]=c;c=d+4|0;if((e|0)!=(i|0)){while(1){d=d-4|0;e=e-4|0;J[d>>2]=J[e>>2];if((e|0)!=(i|0)){continue}break}}J[h+8>>2]=f+(g<<2);J[h+4>>2]=c;J[h>>2]=d;if(!i){break e}na(i)}a=J[a+4>>2];J[J[a+12>>2]+(b<<2)>>2]=J[a+24>>2];J[a+24>>2]=J[a+24>>2]+1;return}qa();B()}xa();B()}function $g(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;i=ba-16|0;ba=i;J[a+4>>2]=0;J[a+8>>2]=0;d=a+16|0;J[d>>2]=0;J[d+4>>2]=0;J[a>>2]=a+4;g=a+28|0;J[g>>2]=0;J[g+4>>2]=0;J[a+12>>2]=d;J[a+24>>2]=g;if((b+4|0)!=(a|0)){ic(a,J[b+4>>2],b+8|0)}d=a+24|0;if((d|0)!=(b+28|0)){ic(d,J[b+28>>2],b+32|0)}J[i+12>>2]=0;h=J[c+12>>2];f=J[c+8>>2];a:{if((h-f|0)<=0){break a}g=b+20|0;if(!J[g>>2]){break a}while(1){b=J[g>>2];b:{if(!b){break b}j=J[J[(e<<2)+f>>2]+56>>2];d=g;while(1){k=(j|0)>J[b+16>>2];d=k?d:b;b=J[(k?b+4|0:b)>>2];if(b){continue}break}if((d|0)==(g|0)|(j|0)>2]){break b}h=d+20|0;e=ba-48|0;ba=e;j=J[i+12>>2];d=a+16|0;f=J[d>>2];c:{d:{if(!f){break d}b=d;while(1){k=(j|0)>J[f+16>>2];b=k?b:f;f=J[(k?f+4|0:f)>>2];if(f){continue}break}if((b|0)==(d|0)){break d}if((j|0)>=J[b+16>>2]){break c}}J[e+28>>2]=0;J[e+32>>2]=0;f=e+24|0;J[e+24>>2]=f|4;b=e+16|0;J[b>>2]=0;J[b+4>>2]=0;J[e+8>>2]=j;J[e+12>>2]=b;d=e+8|0;Oc(e+40|0,a+12|0,d,d);b=J[e+40>>2];Da(d|4,J[e+16>>2]);Da(f,J[e+28>>2])}b=b+20|0;if((b|0)!=(h|0)){ic(b,J[h>>2],h+4|0)}ba=e+48|0;f=J[c+8>>2];h=J[c+12>>2];e=J[i+12>>2]}e=e+1|0;J[i+12>>2]=e;if(h-f>>2>(e|0)){continue}break}}ba=i+16|0}function Yg(a,b,c){var d=0,e=0,f=0,g=0;f=ba-16|0;ba=f;d=oa(16);J[f>>2]=d;J[f+4>>2]=14;J[f+8>>2]=-2147483632;g=K[1602]|K[1603]<<8|(K[1604]<<16|K[1605]<<24);e=K[1598]|K[1599]<<8|(K[1600]<<16|K[1601]<<24);H[d+6|0]=e;H[d+7|0]=e>>>8;H[d+8|0]=e>>>16;H[d+9|0]=e>>>24;H[d+10|0]=g;H[d+11|0]=g>>>8;H[d+12|0]=g>>>16;H[d+13|0]=g>>>24;g=K[1596]|K[1597]<<8|(K[1598]<<16|K[1599]<<24);e=K[1592]|K[1593]<<8|(K[1594]<<16|K[1595]<<24);H[d|0]=e;H[d+1|0]=e>>>8;H[d+2|0]=e>>>16;H[d+3|0]=e>>>24;H[d+4|0]=g;H[d+5|0]=g>>>8;H[d+6|0]=g>>>16;H[d+7|0]=g>>>24;H[d+14|0]=0;d=a+4|0;vb(d,f,b);if(H[f+11|0]<0){na(J[f>>2])}a=oa(16);J[f>>2]=a;J[f+4>>2]=14;J[f+8>>2]=-2147483632;e=K[1617]|K[1618]<<8|(K[1619]<<16|K[1620]<<24);b=K[1613]|K[1614]<<8|(K[1615]<<16|K[1616]<<24);H[a+6|0]=b;H[a+7|0]=b>>>8;H[a+8|0]=b>>>16;H[a+9|0]=b>>>24;H[a+10|0]=e;H[a+11|0]=e>>>8;H[a+12|0]=e>>>16;H[a+13|0]=e>>>24;e=K[1611]|K[1612]<<8|(K[1613]<<16|K[1614]<<24);b=K[1607]|K[1608]<<8|(K[1609]<<16|K[1610]<<24);H[a|0]=b;H[a+1|0]=b>>>8;H[a+2|0]=b>>>16;H[a+3|0]=b>>>24;H[a+4|0]=e;H[a+5|0]=e>>>8;H[a+6|0]=e>>>16;H[a+7|0]=e>>>24;H[a+14|0]=0;vb(d,f,c);if(H[f+11|0]<0){na(J[f>>2])}ba=f+16|0}function sa(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0;h=d-c|0;if((h|0)<=0){return}a:{e=J[a+8>>2];i=J[a+4>>2];if((e-i|0)>=(h|0)){j=i-b|0;if((j|0)>=(h|0)){f=i;g=d;break a}f=i;g=c+j|0;if((g|0)!=(d|0)){e=g;while(1){H[f|0]=K[e|0];f=f+1|0;e=e+1|0;if((e|0)!=(d|0)){continue}break}}J[a+4>>2]=f;if((j|0)>0){break a}return}k=J[a>>2];g=(i-k|0)+h|0;if((g|0)>=0){j=b-k|0;f=e-k|0;e=f<<1;f=f>>>0>=1073741823?2147483647:e>>>0>g>>>0?e:g;if(f){e=oa(f)}else{e=0}g=j+e|0;if((c|0)!=(d|0)){g=ua(g,c,h)+h|0}d=ta(e,k,j);c=i-b|0;b=ta(g,b,c);J[a+8>>2]=e+f;J[a+4>>2]=b+c;J[a>>2]=d;if(k){na(k)}return}qa();B()}e=f;d=e-h|0;if(i>>>0>d>>>0){while(1){H[e|0]=K[d|0];e=e+1|0;d=d+1|0;if(i>>>0>d>>>0){continue}break}}J[a+4>>2]=e;a=b+h|0;if((a|0)!=(f|0)){a=f-a|0;ta(f-a|0,b,a)}if((c|0)==(g|0)){return}f=(c^-1)+g|0;a=g-c&7;b:{if(!a){e=b;break b}d=0;e=b;while(1){H[e|0]=K[c|0];e=e+1|0;c=c+1|0;d=d+1|0;if((a|0)!=(d|0)){continue}break}}if(f>>>0<7){return}while(1){H[e|0]=K[c|0];H[e+1|0]=K[c+1|0];H[e+2|0]=K[c+2|0];H[e+3|0]=K[c+3|0];H[e+4|0]=K[c+4|0];H[e+5|0]=K[c+5|0];H[e+6|0]=K[c+6|0];H[e+7|0]=K[c+7|0];e=e+8|0;c=c+8|0;if((g|0)!=(c|0)){continue}break}}function La(a){var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;b=J[a+112>>2];e=J[a+116>>2];h=(b|e)!=0;c=b;d=J[a+4>>2];g=J[a+44>>2];b=d-g|0;i=b;f=b+J[a+120>>2]|0;b=J[a+124>>2]+(b>>31)|0;a:{b=f>>>0>>0?b+1|0:b;if(!((c>>>0<=f>>>0&(b|0)>=(e|0)|(b|0)>(e|0))&h)){e=ba-16|0;ba=e;d=-1;c=J[a+72>>2];J[a+72>>2]=c-1|c;if(J[a+20>>2]!=J[a+28>>2]){da[J[a+36>>2]](a,0,0)|0}J[a+28>>2]=0;J[a+16>>2]=0;J[a+20>>2]=0;c=J[a>>2];b:{if(c&4){J[a>>2]=c|32;c=-1;break b}g=J[a+44>>2]+J[a+48>>2]|0;J[a+8>>2]=g;J[a+4>>2]=g;c=c<<27>>31}c:{if(c){break c}if((da[J[a+32>>2]](a,e+15|0,1)|0)!=1){break c}d=K[e+15|0]}ba=e+16|0;e=d;if((d|0)>=0){break a}g=J[a+44>>2];d=J[a+4>>2]}J[a+112>>2]=-1;J[a+116>>2]=-1;J[a+104>>2]=d;e=g-d|0;d=e+f|0;b=(e>>31)+b|0;J[a+120>>2]=d;J[a+124>>2]=d>>>0>>0?b+1|0:b;return-1}d=f+1|0;b=d?b:b+1|0;h=J[a+4>>2];g=J[a+8>>2];c=J[a+116>>2];i=c;f=J[a+112>>2];d:{if(!(c|f)){break d}c=f-d|0;f=i-(b+(d>>>0>f>>>0)|0)|0;j=g-h|0;i=j>>31;if((f|0)>=(i|0)&c>>>0>=j>>>0|(f|0)>(i|0)){break d}g=c+h|0}J[a+104>>2]=g;f=J[a+44>>2];c=f-h|0;d=c+d|0;b=(c>>31)+b|0;J[a+120>>2]=d;J[a+124>>2]=d>>>0>>0?b+1|0:b;if(f>>>0>=h>>>0){H[h-1|0]=e}return e}function yc(a,b,c){var d=0,e=0,f=0,g=0,h=0;a:{b:{f=a+16|0;d=J[f>>2];if(!d){break b}g=J[b>>2];b=f;while(1){e=(g|0)>J[d+16>>2];b=e?b:d;d=J[(e?d+4|0:d)>>2];if(d){continue}break}if((b|0)==(f|0)|(g|0)>2]){break b}d=J[b+24>>2];if(!d){break a}a=K[c+11|0];b=a<<24>>24<0;f=b?J[c>>2]:c;a=b?J[c+4>>2]:a;while(1){b=K[d+27|0];c=b<<24>>24<0;b=c?J[d+20>>2]:b;g=b>>>0>>0;c:{d:{e:{f:{g:{h:{e=g?b:a;if(e){c=c?J[d+16>>2]:d+16|0;h=Ba(f,c,e);if(h){break h}if(a>>>0>=b>>>0){break g}break c}if(a>>>0>=b>>>0){break f}break c}if((h|0)<0){break c}}b=Ba(c,f,e);if(b){break e}}if(g){break d}return 1}if((b|0)<0){break d}return 1}d=d+4|0}d=J[d>>2];if(d){continue}break}break a}d=J[a+4>>2];if(!d){break a}a=K[c+11|0];b=a<<24>>24<0;f=b?J[c>>2]:c;a=b?J[c+4>>2]:a;while(1){b=K[d+27|0];c=b<<24>>24<0;b=c?J[d+20>>2]:b;g=b>>>0>>0;i:{j:{k:{l:{m:{n:{e=g?b:a;if(e){c=c?J[d+16>>2]:d+16|0;h=Ba(f,c,e);if(h){break n}if(a>>>0>=b>>>0){break m}break i}if(a>>>0>=b>>>0){break l}break i}if((h|0)<0){break i}}b=Ba(c,f,e);if(b){break k}}if(g){break j}return 1}if((b|0)<0){break j}return 1}d=d+4|0}d=J[d>>2];if(d){continue}break}}return 0}function ua(a,b,c){var d=0,e=0,f=0;if(c>>>0>=512){aa(a|0,b|0,c|0);return a}e=a+c|0;a:{if(!((a^b)&3)){b:{if(!(a&3)){c=a;break b}if(!c){c=a;break b}c=a;while(1){H[c|0]=K[b|0];b=b+1|0;c=c+1|0;if(!(c&3)){break b}if(c>>>0>>0){continue}break}}d=e&-4;c:{if(d>>>0<64){break c}f=d+-64|0;if(f>>>0>>0){break c}while(1){J[c>>2]=J[b>>2];J[c+4>>2]=J[b+4>>2];J[c+8>>2]=J[b+8>>2];J[c+12>>2]=J[b+12>>2];J[c+16>>2]=J[b+16>>2];J[c+20>>2]=J[b+20>>2];J[c+24>>2]=J[b+24>>2];J[c+28>>2]=J[b+28>>2];J[c+32>>2]=J[b+32>>2];J[c+36>>2]=J[b+36>>2];J[c+40>>2]=J[b+40>>2];J[c+44>>2]=J[b+44>>2];J[c+48>>2]=J[b+48>>2];J[c+52>>2]=J[b+52>>2];J[c+56>>2]=J[b+56>>2];J[c+60>>2]=J[b+60>>2];b=b- -64|0;c=c- -64|0;if(f>>>0>=c>>>0){continue}break}}if(c>>>0>=d>>>0){break a}while(1){J[c>>2]=J[b>>2];b=b+4|0;c=c+4|0;if(d>>>0>c>>>0){continue}break}break a}if(e>>>0<4){c=a;break a}d=e-4|0;if(d>>>0>>0){c=a;break a}c=a;while(1){H[c|0]=K[b|0];H[c+1|0]=K[b+1|0];H[c+2|0]=K[b+2|0];H[c+3|0]=K[b+3|0];b=b+4|0;c=c+4|0;if(d>>>0>=c>>>0){continue}break}}if(c>>>0>>0){while(1){H[c|0]=K[b|0];b=b+1|0;c=c+1|0;if((e|0)!=(c|0)){continue}break}}return a}function Zf(a){a=a|0;var b=0,c=0,d=0,e=0;J[a>>2]=10532;c=J[a+280>>2];J[a+280>>2]=0;if(c){d=c-4|0;b=J[d>>2];if(b){b=c+(b<<5)|0;while(1){b=wa(b-32|0);if((c|0)!=(b|0)){continue}break}}na(d)}b=J[a+268>>2];if(b){J[a+272>>2]=b;na(b)}b=J[a+244>>2];J[a+244>>2]=0;if(b){na(b)}b=J[a+232>>2];if(b){J[a+236>>2]=b;na(b)}wa(a+200|0);b=J[a+184>>2];if(b){J[a+188>>2]=b;na(b)}c=J[a+172>>2];if(c){d=c;b=J[a+176>>2];if((c|0)!=(b|0)){while(1){d=b-136|0;e=J[d+116>>2];if(e){J[b-16>>2]=e;na(e)}e=J[b-32>>2];if(e){J[b-28>>2]=e;na(e)}pc(b-132|0);b=d;if((c|0)!=(b|0)){continue}break}d=J[a+172>>2]}J[a+176>>2]=c;na(d)}b=J[a+152>>2];if(b){J[a+156>>2]=b;na(b)}b=J[a+140>>2];if(b){na(b)}b=J[a+128>>2];if(b){while(1){c=J[b>>2];na(b);b=c;if(b){continue}break}}b=J[a+120>>2];J[a+120>>2]=0;if(b){na(b)}b=J[a+108>>2];if(b){J[a+112>>2]=b;na(b)}b=J[a+96>>2];if(b){J[a+100>>2]=b;na(b)}b=J[a+84>>2];if(b){na(b)}b=J[a+72>>2];if(b){J[a+76>>2]=b;na(b)}b=J[a+52>>2];if(b){J[a+56>>2]=b;na(b)}b=J[a+40>>2];if(b){J[a+44>>2]=b;na(b)}b=J[a+28>>2];if(b){na(b)}b=J[a+16>>2];if(b){J[a+20>>2]=b;na(b)}b=J[a+12>>2];J[a+12>>2]=0;if(b){qc(b)}return a|0}function Hc(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0;f=-1;a:{if((b|0)==-1){h=J[a+12>>2];d=1;g=-1;break a}h=J[a+12>>2];b:{c:{if((b>>>0)%3|0){e=b-1|0;break c}e=b+2|0;if((e|0)!=-1){break c}d=1;break b}g=J[h+12>>2];while(1){f=e;d=J[g+(e<<2)>>2];if((d|0)!=-1){f=-1;e=d+1|0;e=(e>>>0)%3|0?e:d-2|0;if((e|0)!=-1){continue}}break}d=(d|0)!=-1;g=-1;if((b|0)==-1){break a}}g=J[J[h>>2]+(b<<2)>>2]}b=0;if(c){b=J[a+84>>2]+(g>>>3&536870908)|0;J[b>>2]=J[b>>2]|1<>2]+(g<<2)>>2];e=J[a+140>>2]+(c>>>3&536870908)|0;J[e>>2]=J[e>>2]|1<>>0)%3|0){e=f-1|0;break e}e=f+2|0;c=-1;if((e|0)==-1){break d}}c=J[J[h>>2]+(e<<2)>>2]}if((g|0)!=(c|0)){i=J[a+84>>2];while(1){a=f;f=(c>>>3&536870908)+i|0;J[f>>2]=J[f>>2]|1<>>0)%3|0?d:a-2|0;if((d|0)==-1){break f}e=J[h+12>>2];while(1){a=J[e+(d<<2)>>2];if((a|0)!=-1){d=a+1|0;d=(d>>>0)%3|0?d:a-2|0;if((d|0)!=-1){continue}break f}break}g:{if((d>>>0)%3|0){e=d-1|0;break g}e=d+2|0;if((e|0)!=-1){break g}f=-3;break f}c=J[J[h>>2]+(e<<2)>>2];f=d}b=b+1|0;if((c|0)!=(g|0)){continue}break}}}function Qb(a,b,c,d){var e=0,f=0,g=0,h=0,i=0;a:{b:{g=J[a+124>>2];c:{if(!g){break c}e=J[a+120>>2];i=Kl(g);h=g-1&d;d:{if(i>>>0<=1){break d}h=d;if(d>>>0>>0){break d}h=(d>>>0)%(g>>>0)|0}e=J[e+(h<<2)>>2];if(!e){break c}f=J[e>>2];if(!f){break c}e:{if(i>>>0<=1){e=g-1|0;while(1){g=J[f+4>>2];f:{if((g|0)!=(d|0)){if((h|0)==(e&g)){break f}break c}if(J[f+8>>2]==(d|0)){break e}}f=J[f>>2];if(f){continue}break}break c}while(1){e=J[f+4>>2];g:{if((e|0)!=(d|0)){if(e>>>0>=g>>>0){e=(e>>>0)%(g>>>0)|0}if((e|0)==(h|0)){break g}break c}if(J[f+8>>2]==(d|0)){break e}}f=J[f>>2];if(f){continue}break}break c}f=J[f+12>>2];if((f|0)==-1){break c}g=c&1;c=J[a+112>>2];if((c|0)!=J[a+116>>2]){H[c+8|0]=g;J[c+4>>2]=b;J[c>>2]=f;J[a+112>>2]=c+12;return}d=J[a+108>>2];i=c-d|0;c=(i|0)/12|0;e=c+1|0;if(e>>>0>=357913942){break b}h=c<<1;e=c>>>0>=178956970?357913941:e>>>0>>0?h:e;if(e){if(e>>>0>=357913942){break a}h=oa(P(e,12))}else{h=0}c=h+P(c,12)|0;H[c+8|0]=g;J[c+4>>2]=b;J[c>>2]=f;b=ta(c+P((i|0)/-12|0,12)|0,d,i);J[a+116>>2]=h+P(e,12);J[a+112>>2]=c+12;J[a+108>>2]=b;if(!d){break c}na(d)}return}qa();B()}xa();B()}function jc(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;d=J[a+8>>2];e=J[a+4>>2];if(d-e>>2>>>0>=b>>>0){a:{if(!b){break a}d=e;f=b&7;if(f){while(1){J[d>>2]=J[c>>2];d=d+4|0;h=h+1|0;if((f|0)!=(h|0)){continue}break}}e=(b<<2)+e|0;if((b-1&1073741823)>>>0<7){break a}while(1){J[d>>2]=J[c>>2];J[d+4>>2]=J[c>>2];J[d+8>>2]=J[c>>2];J[d+12>>2]=J[c>>2];J[d+16>>2]=J[c>>2];J[d+20>>2]=J[c>>2];J[d+24>>2]=J[c>>2];J[d+28>>2]=J[c>>2];d=d+32|0;if((e|0)!=(d|0)){continue}break}}J[a+4>>2]=e;return}b:{i=J[a>>2];j=e-i|0;f=j>>2;g=f+b|0;if(g>>>0<1073741824){d=d-i|0;e=d>>>1|0;g=d>>>0>=2147483644?1073741823:e>>>0>g>>>0?e:g;if(g){if(g>>>0>=1073741824){break b}k=oa(g<<2)}f=(f<<2)+k|0;d=f;e=b&7;if(e){while(1){J[d>>2]=J[c>>2];d=d+4|0;h=h+1|0;if((e|0)!=(h|0)){continue}break}}e=f+(b<<2)|0;if((b-1&1073741823)>>>0>=7){while(1){J[d>>2]=J[c>>2];J[d+4>>2]=J[c>>2];J[d+8>>2]=J[c>>2];J[d+12>>2]=J[c>>2];J[d+16>>2]=J[c>>2];J[d+20>>2]=J[c>>2];J[d+24>>2]=J[c>>2];J[d+28>>2]=J[c>>2];d=d+32|0;if((e|0)!=(d|0)){continue}break}}b=ta(k,i,j);J[a+4>>2]=e;J[a>>2]=b;J[a+8>>2]=b+(g<<2);if(i){na(i)}return}qa();B()}xa();B()}function cf(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;f=J[c>>2];m=J[c+4>>2];a:{if((f|0)==(m|0)){h=J[a+12>>2];b=J[a+8>>2];i=h-b|0;c=0;break a}o=J[b>>2];h=J[a+12>>2];b=J[a+8>>2];i=h-b|0;if((i|0)<=0){c=0;while(1){e=J[(J[f>>2]<<2)+o>>2];c=c>>>0>e>>>0?c:e+1|0;f=f+4|0;if((m|0)!=(f|0)){continue}break}break a}c=i>>>2|0;c=c>>>0<=1?1:c;q=c&1073741822;r=c&1;c=0;s=i>>>0<8;while(1){e=J[f>>2];k=e<<2;l=J[o+k>>2];if(l>>>0>=c>>>0){c=0;j=0;if(!s){while(1){p=c<<2;d=J[p+b>>2];g=J[d+68>>2];d=K[d+84|0]?e:J[g+k>>2];n=g;g=l<<2;J[n+g>>2]=d;n=g;d=J[(p|4)+b>>2];g=J[d+68>>2];J[n+g>>2]=K[d+84|0]?e:J[g+k>>2];c=c+2|0;j=j+2|0;if((q|0)!=(j|0)){continue}break}}if(r){c=J[(c<<2)+b>>2];d=J[c+68>>2];j=d+(l<<2)|0;if(!K[c+84|0]){e=J[d+k>>2]}J[j>>2]=e}c=l+1|0}f=f+4|0;if((m|0)!=(f|0)){continue}break}}d=0;if((i|0)>0){while(1){b=J[(d<<2)+b>>2];H[b+84|0]=0;f=J[b+68>>2];e=J[b+72>>2]-f>>2;b:{if(e>>>0>>0){Ma(b+68|0,c-e|0,15024);h=J[a+12>>2];break b}if(c>>>0>=e>>>0){break b}J[b+72>>2]=f+(c<<2)}d=d+1|0;b=J[a+8>>2];if((d|0)>2){continue}break}}}function me(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0;J[a+4>>2]=b;d=J[J[J[b+4>>2]+8>>2]+(c<<2)>>2];J[a+12>>2]=c;J[a+8>>2]=d;a:{if((da[J[J[a>>2]+32>>2]](a)|0)==1&J[J[a+8>>2]+28>>2]-1>>>0>5){break a}f=J[b+48>>2];d=ba-16|0;ba=d;J[d+12>>2]=c;b=oa(32);J[d>>2]=b;J[d+4>>2]=17;J[d+8>>2]=-2147483616;H[b+16|0]=K[1529];c=K[1525]|K[1526]<<8|(K[1527]<<16|K[1528]<<24);e=K[1521]|K[1522]<<8|(K[1523]<<16|K[1524]<<24);H[b+8|0]=e;H[b+9|0]=e>>>8;H[b+10|0]=e>>>16;H[b+11|0]=e>>>24;H[b+12|0]=c;H[b+13|0]=c>>>8;H[b+14|0]=c>>>16;H[b+15|0]=c>>>24;c=K[1517]|K[1518]<<8|(K[1519]<<16|K[1520]<<24);e=K[1513]|K[1514]<<8|(K[1515]<<16|K[1516]<<24);H[b|0]=e;H[b+1|0]=e>>>8;H[b+2|0]=e>>>16;H[b+3|0]=e>>>24;H[b+4|0]=c;H[b+5|0]=c>>>8;H[b+6|0]=c>>>16;H[b+7|0]=c>>>24;H[b+17|0]=0;b=jb(f,d+12|0,d,-1);if(H[d+11|0]<0){na(J[d>>2])}ba=d+16|0;c=da[J[J[a>>2]+48>>2]](a,(b|0)==-1?-1:b>>>0>6?-2:b)|0;b=J[a+36>>2];J[a+36>>2]=c;e=1;if(b){da[J[J[b>>2]+4>>2]](b);c=J[a+36>>2]}if(!c){break a}if(da[J[J[a>>2]+36>>2]](a,c)|0){break a}b=J[a+36>>2];J[a+36>>2]=0;if(!b){break a}da[J[J[b>>2]+4>>2]](b)}return e|0}function md(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;a:{if(K[a+11|0]>>>7|0){e=J[a+4>>2]}else{e=K[a+11|0]&127}if(e>>>0>>0){h=ba-16|0;ba=h;g=b-e|0;if(g){f=K[a+11|0]>>>7|0?(J[a+8>>2]&2147483647)-1|0:10;if(K[a+11|0]>>>7|0){b=J[a+4>>2]}else{b=K[a+11|0]&127}i=b+g|0;if(f-b>>>0>>0){b:{d=ba-16|0;ba=d;c=i-f|0;if(c>>>0<=2147483631-f>>>0){if(K[a+11|0]>>>7|0){e=J[a>>2]}else{e=a}if(f>>>0<1073741799){J[d+12>>2]=f<<1;J[d>>2]=c+f;c=ba-16|0;ba=c;ba=c+16|0;c=d+12|0;c=J[(M[d>>2]>2]?c:d)>>2];if(c>>>0>=11){j=c+16&-16;c=j-1|0;c=(c|0)==11?j:c}else{c=10}c=c+1|0}else{c=2147483631}Ac(d,c);c=J[d>>2];if(b){Ab(c,e,b)}if((f|0)!=10){na(e)}J[a>>2]=c;J[a+8>>2]=J[a+8>>2]&-2147483648|J[d+4>>2]&2147483647;J[a+8>>2]=J[a+8>>2]|-2147483648;ba=d+16|0;break b}gb();B()}}if(K[a+11|0]>>>7|0){e=J[a>>2]}else{e=a}b=e+b|0;d=ba-16|0;ba=d;H[d+15|0]=0;while(1){if(g){H[b|0]=K[d+15|0];g=g-1|0;b=b+1|0;continue}break}ba=d+16|0;ld(a,i);H[h+15|0]=0;H[e+i|0]=K[h+15|0]}ba=h+16|0;break a}if(K[a+11|0]>>>7|0){e=J[a>>2]}else{e=a}d=ba-16|0;ba=d;ld(a,b);H[d+15|0]=0;H[b+e|0]=K[d+15|0];ba=d+16|0}}function kf(a){var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;f=ba-16|0;ba=f;a:{d=rd(a);b:{if(!d){a=0;break b}e=J[a+100>>2];g=J[a+96>>2];J[f+8>>2]=0;J[f>>2]=0;J[f+4>>2]=0;b=e-g|0;c=(b|0)/12|0;c:{if((e|0)==(g|0)){break c}if(c>>>0>=357913942){break a}e=oa(b);J[f>>2]=e;J[f+8>>2]=e+P(c,12);a=0;h=e;e=b-12|0;b=(e-((e>>>0)%12|0)|0)+12|0;e=pa(h,0,b);J[f+4>>2]=b+e;if(K[d+84|0]){d=c>>>0<=1?1:c;i=d&1;if(c>>>0>=2){j=d&-2;c=0;while(1){b=P(a,12);d=b+g|0;h=J[d>>2];k=J[d+4>>2];b=b+e|0;J[b+8>>2]=J[d+8>>2];J[b>>2]=h;J[b+4>>2]=k;b=P(a|1,12);d=b+g|0;h=J[d>>2];k=J[d+4>>2];b=b+e|0;J[b+8>>2]=J[d+8>>2];J[b>>2]=h;J[b+4>>2]=k;a=a+2|0;c=c+2|0;if((j|0)!=(c|0)){continue}break}}if(!i){break c}c=P(a,12);a=c+g|0;g=J[a+4>>2];d=J[a>>2];c=c+e|0;J[c+8>>2]=J[a+8>>2];J[c>>2]=d;J[c+4>>2]=g;break c}i=c>>>0<=1?1:c;a=J[d+68>>2];c=0;while(1){b=P(c,12);d=b+g|0;j=J[a+(J[d>>2]<<2)>>2];h=J[a+(J[d+4>>2]<<2)>>2];b=b+e|0;J[b+8>>2]=J[a+(J[d+8>>2]<<2)>>2];J[b+4>>2]=h;J[b>>2]=j;c=c+1|0;if((i|0)!=(c|0)){continue}break}}a=mf(f);c=J[f>>2];if(!c){break b}J[f+4>>2]=c;na(c)}ba=f+16|0;return a}qa();B()}function Kd(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;a:{if(J[a+64>>2]){break a}c=oa(32);J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;d=J[a+64>>2];J[a+64>>2]=c;if(!d){break a}c=J[d>>2];if(c){J[d+4>>2]=c;na(c)}na(d)}d=J[a+64>>2];c=J[a+28>>2]-1|0;if(c>>>0<=10){i=J[(c<<2)+14832>>2]}else{i=-1}c=P(i,K[a+24|0]);i=c;k=c>>31;c=Hl(c,k,b,0);b:{if((ca|0)<0){break b}c:{f=J[d+4>>2];e=J[d>>2];g=f-e|0;d:{if(c>>>0>g>>>0){j=c-g|0;h=J[d+8>>2];if(j>>>0<=h-f>>>0){l=d,m=pa(f,0,j)+j|0,J[l+4>>2]=m;break d}if((c|0)<0){break c}f=h-e|0;h=f<<1;f=f>>>0>=1073741823?2147483647:c>>>0>>0?h:c;h=oa(f);pa(h+g|0,0,j);g=ta(h,e,g);J[d+8>>2]=g+f;J[d+4>>2]=c+g;J[d>>2]=g;if(!e){break d}na(e);break d}if(c>>>0>=g>>>0){break d}J[d+4>>2]=c+e}c=J[d+28>>2];e=J[d+24>>2]+1|0;c=e?c:c+1|0;J[d+24>>2]=e;J[d+28>>2]=c;e=1;break b}qa();B()}if(e){c=J[a+64>>2];J[a>>2]=c;d=J[c+20>>2];J[a+8>>2]=J[c+16>>2];J[a+12>>2]=d;d=J[c+24>>2];c=J[c+28>>2];J[a+48>>2]=0;J[a+52>>2]=0;J[a+40>>2]=i;J[a+44>>2]=k;J[a+16>>2]=d;J[a+20>>2]=c;J[a+80>>2]=b}}function _g(a,b,c){var d=0,e=Q(0),f=0,g=Q(0),h=0,i=0,j=Q(0),k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;if(!(J[a+4>>2]!=-1|c-1>>>0>29)){J[a+4>>2]=c;h=K[b+24|0];c=0;J[a+20>>2]=0;if(h){d=h<<2;c=oa(d);f=pa(c,0,d)+d|0}d=J[a+8>>2];if(d){J[a+12>>2]=d;na(d)}J[a+8>>2]=c;J[a+16>>2]=f;J[a+12>>2]=f;d=h<<2;k=oa(d);o=oa(d);d=J[b+40>>2];s=J[b+44>>2];p=d;l=J[b+48>>2];m=J[b>>2];ua(c,l+J[m>>2]|0,d);n=ua(k,l+J[m>>2]|0,d);b=J[b+80>>2];a:{if(!(!h|b>>>0<2)){k=b;d=1;c=0;while(1){b=J[m>>2];f=Hl(d,c,p,s)+l|0;t=ua(o,b+f|0,p);u=J[a+8>>2];f=0;b=0;while(1){i=b<<2;q=t+i|0;e=N[q>>2];if(e!=e){break a}r=i+u|0;if(N[r>>2]>e){N[r>>2]=e;e=N[q>>2]}i=i+n|0;if(N[i>>2]>2]=e}b=b+1|0;if((h|0)!=(b|0)){continue}break}d=d+1|0;c=d?c:c+1|0;if((d|0)!=(k|0)|c){continue}break}}e=N[a+20>>2];if(h){c=J[a+8>>2];f=0;b=0;while(1){d=b<<2;g=N[d+c>>2];if(g!=g|Q(R(g))==Q(Infinity)){break a}j=N[d+n>>2];if(j!=j|Q(R(j))==Q(Infinity)){break a}g=Q(j-g);if(g>e){N[a+20>>2]=g;e=g}b=b+1|0;if((h|0)!=(b|0)){continue}break}}f=1;if(e!=Q(0)){break a}J[a+20>>2]=1065353216}na(o);na(n)}return f}function va(a){var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;A(+a);d=v(1)|0;b=v(0)|0;c=d>>>16|0;f=d-1072604335|0;if((f|0)==135337|f>>>0<135337){if(!b&(d|0)==1072693248){return 0}g=O[1879];a=a+-1;A(+a);b=v(1)|0;v(0)|0;x(0,0);x(1,b|0);h=+z();i=g*h;e=a*a;j=e*(a*O[1888]+O[1887]);k=i+j;l=e*e;return k+(l*(l*(e*(a*O[1896]+O[1895])+(a*O[1894]+O[1893]))+(e*(a*O[1892]+O[1891])+(a*O[1890]+O[1889])))+((a-h)*g+a*O[1880]+(j+(i-k))))}a:{if(c-32752>>>0<=4294934559){if(!(d&2147483647|b)){b=ba-16|0;O[b+8>>3]=-1;return O[b+8>>3]/0}if(!b&(d|0)==2146435072){break a}if(!(!(c&32768)&(c&32752)!=32752)){a=a-a;return a/a}A(+(a*4503599627370496));d=v(1)|0;b=v(0)|0;d=d-54525952|0}c=d-1072037888|0;f=c;c=(c>>>14&63)<<4;g=O[c+15184>>3]+ +(f>>20);h=O[1879];a=O[c+15176>>3];x(0,b-0|0);x(1,d-((f&-1048576)+(b>>>0>>0)|0)|0);a=a*(+z()-O[c+16200>>3]-O[c+16208>>3]);A(+a);b=v(1)|0;v(0)|0;x(0,0);x(1,b|0);i=+z();j=h*i;k=g+j;e=a*a;a=k+(e*(e*e*(a*O[1886]+O[1885])+(e*(a*O[1884]+O[1883])+(a*O[1882]+O[1881])))+((a-i)*h+O[1880]*a+(j+(g-k))))}return a}function Ib(a,b,c){var d=0,e=0,f=0,g=0,h=0;e=32-b|0;c=c<>2];f=32-d|0;c:{if((f|0)>=(b|0)){b=b+d|0;J[a+16>>2]=b;f=J[a+12>>2]|c>>>d;J[a+12>>2]=f;if((b|0)!=32){break c}b=J[a+4>>2];d:{if((b|0)!=J[a+8>>2]){J[b>>2]=f;J[a+4>>2]=b+4;break d}c=b;b=J[a>>2];c=c-b|0;g=c>>2;d=g+1|0;if(d>>>0>=1073741824){break b}e=c>>>1|0;d=c>>>0>=2147483644?1073741823:d>>>0>>0?e:d;if(d){if(d>>>0>=1073741824){break a}e=oa(d<<2)}else{e=0}g=e+(g<<2)|0;J[g>>2]=f;c=ta(e,b,c);J[a+8>>2]=c+(d<<2);J[a+4>>2]=g+4;J[a>>2]=c;if(!b){break d}na(b)}J[a+12>>2]=0;J[a+16>>2]=0;return}b=b-f|0;J[a+16>>2]=b;g=c>>>e|0;f=J[a+12>>2]|g>>>b;J[a+12>>2]=f;b=J[a+4>>2];e:{if((b|0)!=J[a+8>>2]){J[b>>2]=f;J[a+4>>2]=b+4;break e}c=b;b=J[a>>2];c=c-b|0;h=c>>2;d=h+1|0;if(d>>>0>=1073741824){break b}e=c>>>1|0;d=c>>>0>=2147483644?1073741823:d>>>0>>0?e:d;if(d){if(d>>>0>=1073741824){break a}e=oa(d<<2)}else{e=0}h=e+(h<<2)|0;J[h>>2]=f;c=ta(e,b,c);J[a+8>>2]=c+(d<<2);J[a+4>>2]=h+4;J[a>>2]=c;if(!b){break e}na(b)}J[a+12>>2]=g<<32-J[a+16>>2]}return}qa();B()}xa();B()}function sb(a,b){var c=0,d=0,e=0;c=(a|0)==(b|0);H[b+12|0]=c;a:{if(c){break a}while(1){d=J[b+8>>2];if(K[d+12|0]){break a}b:{c=J[d+8>>2];e=J[c>>2];if((e|0)==(d|0)){e=J[c+4>>2];if(!(!e|K[e+12|0])){break b}c:{if(J[d>>2]==(b|0)){b=d;break c}b=J[d+4>>2];a=J[b>>2];J[d+4>>2]=a;if(a){J[a+8>>2]=d;c=J[d+8>>2]}J[b+8>>2]=c;a=J[d+8>>2];J[((J[a>>2]!=(d|0))<<2)+a>>2]=b;J[b>>2]=d;J[d+8>>2]=b;c=J[b+8>>2];d=J[c>>2]}H[b+12|0]=1;H[c+12|0]=0;a=J[d+4>>2];J[c>>2]=a;if(a){J[a+8>>2]=c}J[d+8>>2]=J[c+8>>2];a=J[c+8>>2];J[((J[a>>2]!=(c|0))<<2)+a>>2]=d;J[d+4>>2]=c;J[c+8>>2]=d;return}if(!(K[e+12|0]|!e)){break b}d:{if(J[d>>2]!=(b|0)){b=d;break d}a=J[b+4>>2];J[d>>2]=a;if(a){J[a+8>>2]=d;c=J[d+8>>2]}J[b+8>>2]=c;a=J[d+8>>2];J[((J[a>>2]!=(d|0))<<2)+a>>2]=b;J[b+4>>2]=d;J[d+8>>2]=b;c=J[b+8>>2]}H[b+12|0]=1;H[c+12|0]=0;a=J[c+4>>2];b=J[a>>2];J[c+4>>2]=b;if(b){J[b+8>>2]=c}J[a+8>>2]=J[c+8>>2];b=J[c+8>>2];J[((J[b>>2]!=(c|0))<<2)+b>>2]=a;J[a>>2]=c;J[c+8>>2]=a;break a}H[d+12|0]=1;H[c+12|0]=(a|0)==(c|0);H[e+12|0]=1;b=c;if((c|0)!=(a|0)){continue}break}}}function Jl(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;a:{b:{c:{d:{e:{f:{g:{h:{i:{j:{k:{if(b){if(!c){break k}if(!d){break j}e=S(d)-S(b)|0;if(e>>>0<=31){break i}break c}if((d|0)==1|d>>>0>1){break c}ca=0;a=(a>>>0)/(c>>>0)|0;break a}if(!a){break h}if(!d|d-1&d){break g}a=b>>>Gl(d)|0;ca=0;break a}if(!(c-1&c)){break f}h=(S(c)+33|0)-S(b)|0;g=0-h|0;break d}h=e+1|0;g=63-e|0;break d}ca=0;a=(b>>>0)/(d>>>0)|0;break a}e=S(d)-S(b)|0;if(e>>>0<31){break e}break c}if((c|0)==1){break b}d=Gl(c);c=d&31;if((d&63)>>>0>=32){a=b>>>c|0}else{e=b>>>c|0;a=((1<>>c}ca=e;break a}h=e+1|0;g=63-e|0}e=h&63;f=e&31;if(e>>>0>=32){e=0;i=b>>>f|0}else{e=b>>>f|0;i=((1<>>f}g=g&63;f=g&31;if(g>>>0>=32){b=a<>>32-f|b<>>31;e=i<<1|b>>>31;f=m-(j+(e>>>0>g>>>0)|0)>>31;k=c&f;i=e-k|0;e=j-((d&f)+(e>>>0>>0)|0)|0;b=b<<1|a>>>31;a=l|a<<1;l=f&1;h=h-1|0;if(h){continue}break}}ca=b<<1|a>>>31;a=l|a<<1;break a}a=0;b=0}ca=b}return a}function Lg(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;j=ba-16|0;ba=j;J[j+8>>2]=0;J[j>>2]=0;J[j+4>>2]=0;a:{b:{e=c+1|0;if(e){if(e>>>0>=1073741824){break b}h=oa(e<<2);pa(h,0,(c<<2)+4|0)}c:{if((b|0)<=0){break c}e=0;if(b>>>0>=4){k=b&-4;while(1){f=e<<2;i=(J[f+a>>2]<<2)+h|0;J[i>>2]=J[i>>2]+1;i=(J[(f|4)+a>>2]<<2)+h|0;J[i>>2]=J[i>>2]+1;i=(J[(f|8)+a>>2]<<2)+h|0;J[i>>2]=J[i>>2]+1;f=(J[(f|12)+a>>2]<<2)+h|0;J[f>>2]=J[f>>2]+1;e=e+4|0;l=l+4|0;if((k|0)!=(l|0)){continue}break}}f=b&3;if(!f){break c}while(1){k=(J[(e<<2)+a>>2]<<2)+h|0;J[k>>2]=J[k>>2]+1;e=e+1|0;m=m+1|0;if((f|0)!=(m|0)){continue}break}}e=0;if((c|0)<0){a=0;break a}o=+(b|0);a=0;while(1){b=J[(e<<2)+h>>2];if((b|0)>0){n=+(b|0);g=n*va(n/o)+g;a=a+1|0}b=(c|0)==(e|0);e=e+1|0;if(!b){continue}break}break a}qa();B()}if(d){J[d>>2]=a}if(h){na(h)}g=-g;d:{if(R(g)<0x8000000000000000){b=R(g)>=1?~~(g>0?T(V(g*2.3283064365386963e-10),4294967295):W((g-+(~~g>>>0>>>0))*2.3283064365386963e-10))>>>0:0;a=~~g>>>0;break d}b=-2147483648;a=0}ba=j+16|0;ca=b;return a}function Ig(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{e:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;h=b-4|0;b=J[h>>2];if(d>>>0<=b>>>0){break d}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break d}if(M[c+(b<<3)>>2]>2]){J[e>>2]=b;J[e+4>>2]=J[a>>2];return}J[e>>2]=d;J[e+4>>2]=J[h>>2];return;default:if((d|0)<=8){Ua(a,b,e,c);return}g=d>>>1|0;i=g<<2;h=i+a|0;hc(a,h,c,g,e,g);d=d-g|0;hc(h,b,c,d,e+i|0,d);c=J[c>>2];d=h;while(1){if((b|0)==(d|0)){if((a|0)==(h|0)){break a}while(1){J[e>>2]=J[a>>2];e=e+4|0;a=a+4|0;if((h|0)!=(a|0)){continue}break}break a}g=J[c>>2];f=J[c+4>>2]-g>>3;i=J[d>>2];if(f>>>0<=i>>>0){break c}j=f;f=J[a>>2];if(j>>>0<=f>>>0){break c}j=i;k=f;i=J[g+(i<<3)>>2];g=J[g+(f<<3)>>2];f=i>>>0>>0;J[e>>2]=f?j:k;d=(f<<2)+d|0;e=e+4|0;a=((g>>>0<=i>>>0)<<2)+a|0;if((h|0)!=(a|0)){continue}break};break b;case 0:break a;case 1:break e}}J[e>>2]=J[a>>2];break a}ra();B()}ra();B()}if((b|0)==(d|0)){break a}while(1){J[e>>2]=J[d>>2];e=e+4|0;d=d+4|0;if((d|0)!=(b|0)){continue}break}}} function zg(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{e:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;h=b-4|0;b=J[h>>2];if(d>>>0<=b>>>0){break d}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break d}if(M[c+(b<<3)>>2]>2]){J[e>>2]=b;J[e+4>>2]=J[a>>2];return}J[e>>2]=d;J[e+4>>2]=J[h>>2];return;default:if((d|0)<=8){Ua(a,b,e,c);return}g=d>>>1|0;i=g<<2;h=i+a|0;_b(a,h,c,g,e,g);d=d-g|0;_b(h,b,c,d,e+i|0,d);c=J[c>>2];d=h;while(1){if((b|0)==(d|0)){if((a|0)==(h|0)){break a}while(1){J[e>>2]=J[a>>2];e=e+4|0;a=a+4|0;if((h|0)!=(a|0)){continue}break}break a}g=J[c>>2];f=J[c+4>>2]-g>>3;i=J[d>>2];if(f>>>0<=i>>>0){break c}j=f;f=J[a>>2];if(j>>>0<=f>>>0){break c}j=i;k=f;i=J[g+(i<<3)>>2];g=J[g+(f<<3)>>2];f=i>>>0>>0;J[e>>2]=f?j:k;d=(f<<2)+d|0;e=e+4|0;a=((g>>>0<=i>>>0)<<2)+a|0;if((h|0)!=(a|0)){continue}break};break b;case 0:break a;case 1:break e}}J[e>>2]=J[a>>2];break a}ra();B()}ra();B()}if((b|0)==(d|0)){break a}while(1){J[e>>2]=J[d>>2];e=e+4|0;d=d+4|0;if((d|0)!=(b|0)){continue}break}}}function yg(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{e:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;h=b-4|0;b=J[h>>2];if(d>>>0<=b>>>0){break d}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break d}if(M[c+(b<<3)>>2]>2]){J[e>>2]=b;J[e+4>>2]=J[a>>2];return}J[e>>2]=d;J[e+4>>2]=J[h>>2];return;default:if((d|0)<=8){Ua(a,b,e,c);return}g=d>>>1|0;i=g<<2;h=i+a|0;Zb(a,h,c,g,e,g);d=d-g|0;Zb(h,b,c,d,e+i|0,d);c=J[c>>2];d=h;while(1){if((b|0)==(d|0)){if((a|0)==(h|0)){break a}while(1){J[e>>2]=J[a>>2];e=e+4|0;a=a+4|0;if((h|0)!=(a|0)){continue}break}break a}g=J[c>>2];f=J[c+4>>2]-g>>3;i=J[d>>2];if(f>>>0<=i>>>0){break c}j=f;f=J[a>>2];if(j>>>0<=f>>>0){break c}j=i;k=f;i=J[g+(i<<3)>>2];g=J[g+(f<<3)>>2];f=i>>>0>>0;J[e>>2]=f?j:k;d=(f<<2)+d|0;e=e+4|0;a=((g>>>0<=i>>>0)<<2)+a|0;if((h|0)!=(a|0)){continue}break};break b;case 0:break a;case 1:break e}}J[e>>2]=J[a>>2];break a}ra();B()}ra();B()}if((b|0)==(d|0)){break a}while(1){J[e>>2]=J[d>>2];e=e+4|0;d=d+4|0;if((d|0)!=(b|0)){continue}break}}}function wg(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{e:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;h=b-4|0;b=J[h>>2];if(d>>>0<=b>>>0){break d}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break d}if(M[c+(b<<3)>>2]>2]){J[e>>2]=b;J[e+4>>2]=J[a>>2];return}J[e>>2]=d;J[e+4>>2]=J[h>>2];return;default:if((d|0)<=8){Ua(a,b,e,c);return}g=d>>>1|0;i=g<<2;h=i+a|0;Yb(a,h,c,g,e,g);d=d-g|0;Yb(h,b,c,d,e+i|0,d);c=J[c>>2];d=h;while(1){if((b|0)==(d|0)){if((a|0)==(h|0)){break a}while(1){J[e>>2]=J[a>>2];e=e+4|0;a=a+4|0;if((h|0)!=(a|0)){continue}break}break a}g=J[c>>2];f=J[c+4>>2]-g>>3;i=J[d>>2];if(f>>>0<=i>>>0){break c}j=f;f=J[a>>2];if(j>>>0<=f>>>0){break c}j=i;k=f;i=J[g+(i<<3)>>2];g=J[g+(f<<3)>>2];f=i>>>0>>0;J[e>>2]=f?j:k;d=(f<<2)+d|0;e=e+4|0;a=((g>>>0<=i>>>0)<<2)+a|0;if((h|0)!=(a|0)){continue}break};break b;case 0:break a;case 1:break e}}J[e>>2]=J[a>>2];break a}ra();B()}ra();B()}if((b|0)==(d|0)){break a}while(1){J[e>>2]=J[d>>2];e=e+4|0;d=d+4|0;if((d|0)!=(b|0)){continue}break}}}function vg(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{e:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;h=b-4|0;b=J[h>>2];if(d>>>0<=b>>>0){break d}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break d}if(M[c+(b<<3)>>2]>2]){J[e>>2]=b;J[e+4>>2]=J[a>>2];return}J[e>>2]=d;J[e+4>>2]=J[h>>2];return;default:if((d|0)<=8){Ua(a,b,e,c);return}g=d>>>1|0;i=g<<2;h=i+a|0;Xb(a,h,c,g,e,g);d=d-g|0;Xb(h,b,c,d,e+i|0,d);c=J[c>>2];d=h;while(1){if((b|0)==(d|0)){if((a|0)==(h|0)){break a}while(1){J[e>>2]=J[a>>2];e=e+4|0;a=a+4|0;if((h|0)!=(a|0)){continue}break}break a}g=J[c>>2];f=J[c+4>>2]-g>>3;i=J[d>>2];if(f>>>0<=i>>>0){break c}j=f;f=J[a>>2];if(j>>>0<=f>>>0){break c}j=i;k=f;i=J[g+(i<<3)>>2];g=J[g+(f<<3)>>2];f=i>>>0>>0;J[e>>2]=f?j:k;d=(f<<2)+d|0;e=e+4|0;a=((g>>>0<=i>>>0)<<2)+a|0;if((h|0)!=(a|0)){continue}break};break b;case 0:break a;case 1:break e}}J[e>>2]=J[a>>2];break a}ra();B()}ra();B()}if((b|0)==(d|0)){break a}while(1){J[e>>2]=J[d>>2];e=e+4|0;d=d+4|0;if((d|0)!=(b|0)){continue}break}}}function ug(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{e:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;h=b-4|0;b=J[h>>2];if(d>>>0<=b>>>0){break d}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break d}if(M[c+(b<<3)>>2]>2]){J[e>>2]=b;J[e+4>>2]=J[a>>2];return}J[e>>2]=d;J[e+4>>2]=J[h>>2];return;default:if((d|0)<=8){Ua(a,b,e,c);return}g=d>>>1|0;i=g<<2;h=i+a|0;Wb(a,h,c,g,e,g);d=d-g|0;Wb(h,b,c,d,e+i|0,d);c=J[c>>2];d=h;while(1){if((b|0)==(d|0)){if((a|0)==(h|0)){break a}while(1){J[e>>2]=J[a>>2];e=e+4|0;a=a+4|0;if((h|0)!=(a|0)){continue}break}break a}g=J[c>>2];f=J[c+4>>2]-g>>3;i=J[d>>2];if(f>>>0<=i>>>0){break c}j=f;f=J[a>>2];if(j>>>0<=f>>>0){break c}j=i;k=f;i=J[g+(i<<3)>>2];g=J[g+(f<<3)>>2];f=i>>>0>>0;J[e>>2]=f?j:k;d=(f<<2)+d|0;e=e+4|0;a=((g>>>0<=i>>>0)<<2)+a|0;if((h|0)!=(a|0)){continue}break};break b;case 0:break a;case 1:break e}}J[e>>2]=J[a>>2];break a}ra();B()}ra();B()}if((b|0)==(d|0)){break a}while(1){J[e>>2]=J[d>>2];e=e+4|0;d=d+4|0;if((d|0)!=(b|0)){continue}break}}}function tg(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{e:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;h=b-4|0;b=J[h>>2];if(d>>>0<=b>>>0){break d}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break d}if(M[c+(b<<3)>>2]>2]){J[e>>2]=b;J[e+4>>2]=J[a>>2];return}J[e>>2]=d;J[e+4>>2]=J[h>>2];return;default:if((d|0)<=8){Ua(a,b,e,c);return}g=d>>>1|0;i=g<<2;h=i+a|0;Vb(a,h,c,g,e,g);d=d-g|0;Vb(h,b,c,d,e+i|0,d);c=J[c>>2];d=h;while(1){if((b|0)==(d|0)){if((a|0)==(h|0)){break a}while(1){J[e>>2]=J[a>>2];e=e+4|0;a=a+4|0;if((h|0)!=(a|0)){continue}break}break a}g=J[c>>2];f=J[c+4>>2]-g>>3;i=J[d>>2];if(f>>>0<=i>>>0){break c}j=f;f=J[a>>2];if(j>>>0<=f>>>0){break c}j=i;k=f;i=J[g+(i<<3)>>2];g=J[g+(f<<3)>>2];f=i>>>0>>0;J[e>>2]=f?j:k;d=(f<<2)+d|0;e=e+4|0;a=((g>>>0<=i>>>0)<<2)+a|0;if((h|0)!=(a|0)){continue}break};break b;case 0:break a;case 1:break e}}J[e>>2]=J[a>>2];break a}ra();B()}ra();B()}if((b|0)==(d|0)){break a}while(1){J[e>>2]=J[d>>2];e=e+4|0;d=d+4|0;if((d|0)!=(b|0)){continue}break}}}function sg(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{e:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;h=b-4|0;b=J[h>>2];if(d>>>0<=b>>>0){break d}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break d}if(M[c+(b<<3)>>2]>2]){J[e>>2]=b;J[e+4>>2]=J[a>>2];return}J[e>>2]=d;J[e+4>>2]=J[h>>2];return;default:if((d|0)<=8){Ua(a,b,e,c);return}g=d>>>1|0;i=g<<2;h=i+a|0;Ub(a,h,c,g,e,g);d=d-g|0;Ub(h,b,c,d,e+i|0,d);c=J[c>>2];d=h;while(1){if((b|0)==(d|0)){if((a|0)==(h|0)){break a}while(1){J[e>>2]=J[a>>2];e=e+4|0;a=a+4|0;if((h|0)!=(a|0)){continue}break}break a}g=J[c>>2];f=J[c+4>>2]-g>>3;i=J[d>>2];if(f>>>0<=i>>>0){break c}j=f;f=J[a>>2];if(j>>>0<=f>>>0){break c}j=i;k=f;i=J[g+(i<<3)>>2];g=J[g+(f<<3)>>2];f=i>>>0>>0;J[e>>2]=f?j:k;d=(f<<2)+d|0;e=e+4|0;a=((g>>>0<=i>>>0)<<2)+a|0;if((h|0)!=(a|0)){continue}break};break b;case 0:break a;case 1:break e}}J[e>>2]=J[a>>2];break a}ra();B()}ra();B()}if((b|0)==(d|0)){break a}while(1){J[e>>2]=J[d>>2];e=e+4|0;d=d+4|0;if((d|0)!=(b|0)){continue}break}}}function rg(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{e:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;h=b-4|0;b=J[h>>2];if(d>>>0<=b>>>0){break d}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break d}if(M[c+(b<<3)>>2]>2]){J[e>>2]=b;J[e+4>>2]=J[a>>2];return}J[e>>2]=d;J[e+4>>2]=J[h>>2];return;default:if((d|0)<=8){Ua(a,b,e,c);return}g=d>>>1|0;i=g<<2;h=i+a|0;Tb(a,h,c,g,e,g);d=d-g|0;Tb(h,b,c,d,e+i|0,d);c=J[c>>2];d=h;while(1){if((b|0)==(d|0)){if((a|0)==(h|0)){break a}while(1){J[e>>2]=J[a>>2];e=e+4|0;a=a+4|0;if((h|0)!=(a|0)){continue}break}break a}g=J[c>>2];f=J[c+4>>2]-g>>3;i=J[d>>2];if(f>>>0<=i>>>0){break c}j=f;f=J[a>>2];if(j>>>0<=f>>>0){break c}j=i;k=f;i=J[g+(i<<3)>>2];g=J[g+(f<<3)>>2];f=i>>>0>>0;J[e>>2]=f?j:k;d=(f<<2)+d|0;e=e+4|0;a=((g>>>0<=i>>>0)<<2)+a|0;if((h|0)!=(a|0)){continue}break};break b;case 0:break a;case 1:break e}}J[e>>2]=J[a>>2];break a}ra();B()}ra();B()}if((b|0)==(d|0)){break a}while(1){J[e>>2]=J[d>>2];e=e+4|0;d=d+4|0;if((d|0)!=(b|0)){continue}break}}}function qg(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{e:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;h=b-4|0;b=J[h>>2];if(d>>>0<=b>>>0){break d}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break d}if(M[c+(b<<3)>>2]>2]){J[e>>2]=b;J[e+4>>2]=J[a>>2];return}J[e>>2]=d;J[e+4>>2]=J[h>>2];return;default:if((d|0)<=8){Ua(a,b,e,c);return}g=d>>>1|0;i=g<<2;h=i+a|0;Sb(a,h,c,g,e,g);d=d-g|0;Sb(h,b,c,d,e+i|0,d);c=J[c>>2];d=h;while(1){if((b|0)==(d|0)){if((a|0)==(h|0)){break a}while(1){J[e>>2]=J[a>>2];e=e+4|0;a=a+4|0;if((h|0)!=(a|0)){continue}break}break a}g=J[c>>2];f=J[c+4>>2]-g>>3;i=J[d>>2];if(f>>>0<=i>>>0){break c}j=f;f=J[a>>2];if(j>>>0<=f>>>0){break c}j=i;k=f;i=J[g+(i<<3)>>2];g=J[g+(f<<3)>>2];f=i>>>0>>0;J[e>>2]=f?j:k;d=(f<<2)+d|0;e=e+4|0;a=((g>>>0<=i>>>0)<<2)+a|0;if((h|0)!=(a|0)){continue}break};break b;case 0:break a;case 1:break e}}J[e>>2]=J[a>>2];break a}ra();B()}ra();B()}if((b|0)==(d|0)){break a}while(1){J[e>>2]=J[d>>2];e=e+4|0;d=d+4|0;if((d|0)!=(b|0)){continue}break}}}function Hg(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{e:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;h=b-4|0;b=J[h>>2];if(d>>>0<=b>>>0){break d}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break d}if(M[c+(b<<3)>>2]>2]){J[e>>2]=b;J[e+4>>2]=J[a>>2];return}J[e>>2]=d;J[e+4>>2]=J[h>>2];return;default:if((d|0)<=8){Ua(a,b,e,c);return}g=d>>>1|0;i=g<<2;h=i+a|0;gc(a,h,c,g,e,g);d=d-g|0;gc(h,b,c,d,e+i|0,d);c=J[c>>2];d=h;while(1){if((b|0)==(d|0)){if((a|0)==(h|0)){break a}while(1){J[e>>2]=J[a>>2];e=e+4|0;a=a+4|0;if((h|0)!=(a|0)){continue}break}break a}g=J[c>>2];f=J[c+4>>2]-g>>3;i=J[d>>2];if(f>>>0<=i>>>0){break c}j=f;f=J[a>>2];if(j>>>0<=f>>>0){break c}j=i;k=f;i=J[g+(i<<3)>>2];g=J[g+(f<<3)>>2];f=i>>>0>>0;J[e>>2]=f?j:k;d=(f<<2)+d|0;e=e+4|0;a=((g>>>0<=i>>>0)<<2)+a|0;if((h|0)!=(a|0)){continue}break};break b;case 0:break a;case 1:break e}}J[e>>2]=J[a>>2];break a}ra();B()}ra();B()}if((b|0)==(d|0)){break a}while(1){J[e>>2]=J[d>>2];e=e+4|0;d=d+4|0;if((d|0)!=(b|0)){continue}break}}}function Gg(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{e:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;h=b-4|0;b=J[h>>2];if(d>>>0<=b>>>0){break d}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break d}if(M[c+(b<<3)>>2]>2]){J[e>>2]=b;J[e+4>>2]=J[a>>2];return}J[e>>2]=d;J[e+4>>2]=J[h>>2];return;default:if((d|0)<=8){Ua(a,b,e,c);return}g=d>>>1|0;i=g<<2;h=i+a|0;fc(a,h,c,g,e,g);d=d-g|0;fc(h,b,c,d,e+i|0,d);c=J[c>>2];d=h;while(1){if((b|0)==(d|0)){if((a|0)==(h|0)){break a}while(1){J[e>>2]=J[a>>2];e=e+4|0;a=a+4|0;if((h|0)!=(a|0)){continue}break}break a}g=J[c>>2];f=J[c+4>>2]-g>>3;i=J[d>>2];if(f>>>0<=i>>>0){break c}j=f;f=J[a>>2];if(j>>>0<=f>>>0){break c}j=i;k=f;i=J[g+(i<<3)>>2];g=J[g+(f<<3)>>2];f=i>>>0>>0;J[e>>2]=f?j:k;d=(f<<2)+d|0;e=e+4|0;a=((g>>>0<=i>>>0)<<2)+a|0;if((h|0)!=(a|0)){continue}break};break b;case 0:break a;case 1:break e}}J[e>>2]=J[a>>2];break a}ra();B()}ra();B()}if((b|0)==(d|0)){break a}while(1){J[e>>2]=J[d>>2];e=e+4|0;d=d+4|0;if((d|0)!=(b|0)){continue}break}}}function Fg(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{e:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;h=b-4|0;b=J[h>>2];if(d>>>0<=b>>>0){break d}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break d}if(M[c+(b<<3)>>2]>2]){J[e>>2]=b;J[e+4>>2]=J[a>>2];return}J[e>>2]=d;J[e+4>>2]=J[h>>2];return;default:if((d|0)<=8){Ua(a,b,e,c);return}g=d>>>1|0;i=g<<2;h=i+a|0;ec(a,h,c,g,e,g);d=d-g|0;ec(h,b,c,d,e+i|0,d);c=J[c>>2];d=h;while(1){if((b|0)==(d|0)){if((a|0)==(h|0)){break a}while(1){J[e>>2]=J[a>>2];e=e+4|0;a=a+4|0;if((h|0)!=(a|0)){continue}break}break a}g=J[c>>2];f=J[c+4>>2]-g>>3;i=J[d>>2];if(f>>>0<=i>>>0){break c}j=f;f=J[a>>2];if(j>>>0<=f>>>0){break c}j=i;k=f;i=J[g+(i<<3)>>2];g=J[g+(f<<3)>>2];f=i>>>0>>0;J[e>>2]=f?j:k;d=(f<<2)+d|0;e=e+4|0;a=((g>>>0<=i>>>0)<<2)+a|0;if((h|0)!=(a|0)){continue}break};break b;case 0:break a;case 1:break e}}J[e>>2]=J[a>>2];break a}ra();B()}ra();B()}if((b|0)==(d|0)){break a}while(1){J[e>>2]=J[d>>2];e=e+4|0;d=d+4|0;if((d|0)!=(b|0)){continue}break}}}function Eg(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{e:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;h=b-4|0;b=J[h>>2];if(d>>>0<=b>>>0){break d}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break d}if(M[c+(b<<3)>>2]>2]){J[e>>2]=b;J[e+4>>2]=J[a>>2];return}J[e>>2]=d;J[e+4>>2]=J[h>>2];return;default:if((d|0)<=8){Ua(a,b,e,c);return}g=d>>>1|0;i=g<<2;h=i+a|0;dc(a,h,c,g,e,g);d=d-g|0;dc(h,b,c,d,e+i|0,d);c=J[c>>2];d=h;while(1){if((b|0)==(d|0)){if((a|0)==(h|0)){break a}while(1){J[e>>2]=J[a>>2];e=e+4|0;a=a+4|0;if((h|0)!=(a|0)){continue}break}break a}g=J[c>>2];f=J[c+4>>2]-g>>3;i=J[d>>2];if(f>>>0<=i>>>0){break c}j=f;f=J[a>>2];if(j>>>0<=f>>>0){break c}j=i;k=f;i=J[g+(i<<3)>>2];g=J[g+(f<<3)>>2];f=i>>>0>>0;J[e>>2]=f?j:k;d=(f<<2)+d|0;e=e+4|0;a=((g>>>0<=i>>>0)<<2)+a|0;if((h|0)!=(a|0)){continue}break};break b;case 0:break a;case 1:break e}}J[e>>2]=J[a>>2];break a}ra();B()}ra();B()}if((b|0)==(d|0)){break a}while(1){J[e>>2]=J[d>>2];e=e+4|0;d=d+4|0;if((d|0)!=(b|0)){continue}break}}}function Dg(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{e:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;h=b-4|0;b=J[h>>2];if(d>>>0<=b>>>0){break d}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break d}if(M[c+(b<<3)>>2]>2]){J[e>>2]=b;J[e+4>>2]=J[a>>2];return}J[e>>2]=d;J[e+4>>2]=J[h>>2];return;default:if((d|0)<=8){Ua(a,b,e,c);return}g=d>>>1|0;i=g<<2;h=i+a|0;cc(a,h,c,g,e,g);d=d-g|0;cc(h,b,c,d,e+i|0,d);c=J[c>>2];d=h;while(1){if((b|0)==(d|0)){if((a|0)==(h|0)){break a}while(1){J[e>>2]=J[a>>2];e=e+4|0;a=a+4|0;if((h|0)!=(a|0)){continue}break}break a}g=J[c>>2];f=J[c+4>>2]-g>>3;i=J[d>>2];if(f>>>0<=i>>>0){break c}j=f;f=J[a>>2];if(j>>>0<=f>>>0){break c}j=i;k=f;i=J[g+(i<<3)>>2];g=J[g+(f<<3)>>2];f=i>>>0>>0;J[e>>2]=f?j:k;d=(f<<2)+d|0;e=e+4|0;a=((g>>>0<=i>>>0)<<2)+a|0;if((h|0)!=(a|0)){continue}break};break b;case 0:break a;case 1:break e}}J[e>>2]=J[a>>2];break a}ra();B()}ra();B()}if((b|0)==(d|0)){break a}while(1){J[e>>2]=J[d>>2];e=e+4|0;d=d+4|0;if((d|0)!=(b|0)){continue}break}}}function Cg(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{e:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;h=b-4|0;b=J[h>>2];if(d>>>0<=b>>>0){break d}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break d}if(M[c+(b<<3)>>2]>2]){J[e>>2]=b;J[e+4>>2]=J[a>>2];return}J[e>>2]=d;J[e+4>>2]=J[h>>2];return;default:if((d|0)<=8){Ua(a,b,e,c);return}g=d>>>1|0;i=g<<2;h=i+a|0;bc(a,h,c,g,e,g);d=d-g|0;bc(h,b,c,d,e+i|0,d);c=J[c>>2];d=h;while(1){if((b|0)==(d|0)){if((a|0)==(h|0)){break a}while(1){J[e>>2]=J[a>>2];e=e+4|0;a=a+4|0;if((h|0)!=(a|0)){continue}break}break a}g=J[c>>2];f=J[c+4>>2]-g>>3;i=J[d>>2];if(f>>>0<=i>>>0){break c}j=f;f=J[a>>2];if(j>>>0<=f>>>0){break c}j=i;k=f;i=J[g+(i<<3)>>2];g=J[g+(f<<3)>>2];f=i>>>0>>0;J[e>>2]=f?j:k;d=(f<<2)+d|0;e=e+4|0;a=((g>>>0<=i>>>0)<<2)+a|0;if((h|0)!=(a|0)){continue}break};break b;case 0:break a;case 1:break e}}J[e>>2]=J[a>>2];break a}ra();B()}ra();B()}if((b|0)==(d|0)){break a}while(1){J[e>>2]=J[d>>2];e=e+4|0;d=d+4|0;if((d|0)!=(b|0)){continue}break}}}function Bg(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{e:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;h=b-4|0;b=J[h>>2];if(d>>>0<=b>>>0){break d}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break d}if(M[c+(b<<3)>>2]>2]){J[e>>2]=b;J[e+4>>2]=J[a>>2];return}J[e>>2]=d;J[e+4>>2]=J[h>>2];return;default:if((d|0)<=8){Ua(a,b,e,c);return}g=d>>>1|0;i=g<<2;h=i+a|0;ac(a,h,c,g,e,g);d=d-g|0;ac(h,b,c,d,e+i|0,d);c=J[c>>2];d=h;while(1){if((b|0)==(d|0)){if((a|0)==(h|0)){break a}while(1){J[e>>2]=J[a>>2];e=e+4|0;a=a+4|0;if((h|0)!=(a|0)){continue}break}break a}g=J[c>>2];f=J[c+4>>2]-g>>3;i=J[d>>2];if(f>>>0<=i>>>0){break c}j=f;f=J[a>>2];if(j>>>0<=f>>>0){break c}j=i;k=f;i=J[g+(i<<3)>>2];g=J[g+(f<<3)>>2];f=i>>>0>>0;J[e>>2]=f?j:k;d=(f<<2)+d|0;e=e+4|0;a=((g>>>0<=i>>>0)<<2)+a|0;if((h|0)!=(a|0)){continue}break};break b;case 0:break a;case 1:break e}}J[e>>2]=J[a>>2];break a}ra();B()}ra();B()}if((b|0)==(d|0)){break a}while(1){J[e>>2]=J[d>>2];e=e+4|0;d=d+4|0;if((d|0)!=(b|0)){continue}break}}}function Ag(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{e:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;h=b-4|0;b=J[h>>2];if(d>>>0<=b>>>0){break d}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break d}if(M[c+(b<<3)>>2]>2]){J[e>>2]=b;J[e+4>>2]=J[a>>2];return}J[e>>2]=d;J[e+4>>2]=J[h>>2];return;default:if((d|0)<=8){Ua(a,b,e,c);return}g=d>>>1|0;i=g<<2;h=i+a|0;$b(a,h,c,g,e,g);d=d-g|0;$b(h,b,c,d,e+i|0,d);c=J[c>>2];d=h;while(1){if((b|0)==(d|0)){if((a|0)==(h|0)){break a}while(1){J[e>>2]=J[a>>2];e=e+4|0;a=a+4|0;if((h|0)!=(a|0)){continue}break}break a}g=J[c>>2];f=J[c+4>>2]-g>>3;i=J[d>>2];if(f>>>0<=i>>>0){break c}j=f;f=J[a>>2];if(j>>>0<=f>>>0){break c}j=i;k=f;i=J[g+(i<<3)>>2];g=J[g+(f<<3)>>2];f=i>>>0>>0;J[e>>2]=f?j:k;d=(f<<2)+d|0;e=e+4|0;a=((g>>>0<=i>>>0)<<2)+a|0;if((h|0)!=(a|0)){continue}break};break b;case 0:break a;case 1:break e}}J[e>>2]=J[a>>2];break a}ra();B()}ra();B()}if((b|0)==(d|0)){break a}while(1){J[e>>2]=J[d>>2];e=e+4|0;d=d+4|0;if((d|0)!=(b|0)){continue}break}}}function zj(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0;g=ba-16|0;ba=g;e=J[a+4>>2];d=J[e>>2];a:{b=J[a+12>>2];c=J[b+28>>2]-J[b+24>>2]|0;f=c>>2;b:{if(f>>>0<=J[e+8>>2]-d>>2>>>0){break b}if((c|0)<0){break a}b=J[e+4>>2];c=oa(c);f=c+(f<<2)|0;h=c+(b-d&-4)|0;c=h;if((b|0)!=(d|0)){while(1){c=c-4|0;b=b-4|0;J[c>>2]=J[b>>2];if((b|0)!=(d|0)){continue}break}}J[e+8>>2]=f;J[e+4>>2]=h;J[e>>2]=c;if(!d){break b}na(d)}b=J[a+12>>2];c=J[b+28>>2];b=J[b+24>>2];J[g+12>>2]=0;b=c-b>>2;d=a+96|0;e=J[d>>2];c=J[a+100>>2]-e>>2;c:{if(b>>>0>c>>>0){jc(d,b-c|0,g+12|0);break c}if(b>>>0>=c>>>0){break c}J[a+100>>2]=e+(b<<2)}e=a+8|0;b=J[a+116>>2];d:{if(b){d=J[b>>2];if((d|0)==J[b+4>>2]){c=1;break d}b=0;while(1){c=Xf(e,J[(b<<2)+d>>2]);if(!c){break d}f=J[a+116>>2];d=J[f>>2];b=b+1|0;if(b>>>0>2]-d>>2>>>0){continue}break}break d}c=1;a=J[a+12>>2];a=J[a+4>>2]-J[a>>2]|0;if(a>>>0<12){break d}a=(a>>2>>>0)/3|0;b=0;while(1){c=Xf(e,P(b,3));if(!c){break d}b=b+1|0;if((a|0)!=(b|0)){continue}break}}ba=g+16|0;return c|0}qa();B()}function Zk(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;c=J[b+88>>2];if(!(!c|J[c>>2]!=1)){e=J[c+8>>2];J[a+4>>2]=K[e|0]|K[e+1|0]<<8|(K[e+2|0]<<16|K[e+3|0]<<24);f=a+8|0;d=K[b+24|0];h=J[a+8>>2];g=J[a+12>>2]-h>>2;a:{if(d>>>0>g>>>0){Fa(f,d-g|0);d=K[b+24|0];e=J[c+8>>2];break a}if(d>>>0>=g>>>0){break a}J[a+12>>2]=h+(d<<2)}b:{if(!d){b=4;break b}h=d&3;f=J[f>>2];c:{if(d-1>>>0<3){b=4;d=0;break c}k=d&252;d=0;b=4;while(1){g=d<<2;c=b+e|0;J[g+f>>2]=K[c|0]|K[c+1|0]<<8|(K[c+2|0]<<16|K[c+3|0]<<24);J[f+(g|4)>>2]=K[c+4|0]|K[c+5|0]<<8|(K[c+6|0]<<16|K[c+7|0]<<24);J[f+(g|8)>>2]=K[c+8|0]|K[c+9|0]<<8|(K[c+10|0]<<16|K[c+11|0]<<24);J[f+(g|12)>>2]=K[c+12|0]|K[c+13|0]<<8|(K[c+14|0]<<16|K[c+15|0]<<24);d=d+4|0;b=b+16|0;i=i+4|0;if((k|0)!=(i|0)){continue}break}}if(!h){break b}while(1){c=b+e|0;J[f+(d<<2)>>2]=K[c|0]|K[c+1|0]<<8|(K[c+2|0]<<16|K[c+3|0]<<24);d=d+1|0;b=b+4|0;j=j+1|0;if((h|0)!=(j|0)){continue}break}}d=a;a=b+e|0;J[d+20>>2]=K[a|0]|K[a+1|0]<<8|(K[a+2|0]<<16|K[a+3|0]<<24);d=1}return d|0}function Le(a,b,c,d){var e=0,f=0,g=0,h=0;g=ba-32|0;ba=g;e=d&2147483647;h=e;f=e-1006698496|0;e=e-1140785152|0;a:{if((f|0)==(e|0)&0|e>>>0>f>>>0){e=c<<4|b>>>28;c=d<<4|c>>>28;b=b&268435455;if((b|0)==134217728&(a|0)!=0|b>>>0>134217728){f=c+1073741824|0;e=e+1|0;f=e?f:f+1|0;break a}f=c+1073741824|0;if(a|(b|0)!=134217728){break a}a=e&1;e=a+e|0;f=a>>>0>e>>>0?f+1|0:f;break a}if(!(!c&(h|0)==2147418112?!(a|b):h>>>0<2147418112)){a=d<<4|c>>>28;e=c<<4|b>>>28;f=a&524287|2146959360;break a}e=0;f=2146435072;if(h>>>0>1140785151){break a}f=0;h=h>>>16|0;if(h>>>0<15249){break a}e=d&65535|65536;Pa(g+16|0,a,b,c,e,h-15233|0);Gb(g,a,b,c,e,15361-h|0);b=J[g+8>>2];e=b<<4;b=J[g+12>>2]<<4|b>>>28;c=J[g>>2];f=J[g+4>>2];h=f;e=f>>>28|e;f=b;a=h&268435455;b=c|(J[g+16>>2]|J[g+24>>2]|(J[g+20>>2]|J[g+28>>2]))!=0;if((a|0)==134217728&(b|0)!=0|a>>>0>134217728){e=e+1|0;f=e?f:f+1|0;break a}if(b|(a|0)!=134217728){break a}a=e;e=e+(e&1)|0;f=a>>>0>e>>>0?f+1|0:f}ba=g+32|0;x(0,e|0);x(1,d&-2147483648|f);return+z()}function nj(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;k=J[a+12>>2];c=J[a+68>>2];d=J[c+80>>2];H[b+84|0]=0;n=b+68|0;i=J[b+68>>2];e=J[b+72>>2]-i>>2;a:{if(e>>>0>>0){Ma(n,d-e|0,11424);c=J[a+68>>2];d=J[c+80>>2];break a}if(d>>>0>=e>>>0){break a}J[b+72>>2]=i+(d<<2)}b=J[c+100>>2];e=J[c+96>>2];i=(b-e|0)/12|0;m=1;b:{if((b|0)==(e|0)){break b}k=J[k+28>>2];f=J[k>>2];if((f|0)==-1){return 0}o=i>>>0<=1?1:i;c=e;b=0;m=0;while(1){g=J[c>>2];if(g>>>0>=d>>>0){break b}j=J[J[a+72>>2]+12>>2];h=J[j+(f<<2)>>2];if(h>>>0>=d>>>0){break b}f=J[n>>2];J[f+(g<<2)>>2]=h;g=k+(l<<2)|0;h=J[g+4>>2];if((h|0)==-1){break b}l=J[c+4>>2];if(l>>>0>=d>>>0){break b}h=J[(h<<2)+j>>2];if(h>>>0>=d>>>0){break b}J[f+(l<<2)>>2]=h;g=J[g+8>>2];if((g|0)==-1){break b}c=J[c+8>>2];if(c>>>0>=d>>>0){break b}j=J[(g<<2)+j>>2];if(j>>>0>=d>>>0){break b}J[f+(c<<2)>>2]=j;b=b+1|0;m=i>>>0<=b>>>0;if((b|0)==(o|0)){break b}c=e+P(b,12)|0;l=P(b,3);f=J[k+(l<<2)>>2];if((f|0)!=-1){continue}break}}return m|0}function xg(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;h=J[d+80>>2];e=ba-48|0;ba=e;a=J[a+4>>2];m=a-2|0;a:{if(m>>>0>28){break a}j=J[J[d>>2]>>2]+J[d+48>>2]|0;J[e+16>>2]=a;a=-1<>2]=a^-1;a=-2-a|0;J[e+24>>2]=a;J[e+32>>2]=(a|0)/2;N[e+28>>2]=Q(2)/Q(a|0);f=J[c>>2];if((f|0)!=J[c+4>>2]){a=0;d=0;while(1){g=J[(d<<2)+f>>2];h=e+36|0;k=J[J[b>>2]>>2];l=J[b+48>>2];f=J[b+40>>2];i=J[b+44>>2];if(!K[b+84|0]){g=J[J[b+68>>2]+(g<<2)>>2]}g=Hl(f,i,g,0);i=g;g=g+l|0;ua(h,g+k|0,f);Uf(e+16|0,h,e+12|0,e+8|0);f=a<<2;J[f+j>>2]=J[e+12>>2];J[(f|4)+j>>2]=J[e+8>>2];a=a+2|0;d=d+1|0;f=J[c>>2];if(d>>>0>2]-f>>2>>>0){continue}break}break a}if(!h){break a}d=0;a=0;while(1){k=e+36|0;l=J[J[b>>2]>>2];i=J[b+48>>2];c=J[b+40>>2];f=Hl(c,J[b+44>>2],K[b+84|0]?a:J[J[b+68>>2]+(a<<2)>>2],0);g=f;f=f+i|0;ua(k,f+l|0,c);Uf(e+16|0,k,e+12|0,e+8|0);c=d<<2;J[c+j>>2]=J[e+12>>2];J[(c|4)+j>>2]=J[e+8>>2];d=d+2|0;a=a+1|0;if((h|0)!=(a|0)){continue}break}}ba=e+48|0;return m>>>0<29|0}function yk(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=Q(0),j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;k=ba-16|0;ba=k;if(J[c+28>>2]==9){d=J[a+4>>2];h=K[c+24|0];e=h<<2;f=oa(e);l=k+8|0;J[l>>2]=1065353216;i=N[a+20>>2];d=-1<0){N[l>>2]=i/Q(d|0)}o=(d|0)>0;a:{if(!o){break a}j=J[c+80>>2];if(!j){break a}if(h){p=J[J[b>>2]>>2]+J[b+48>>2]|0;t=h&254;u=h&1;b=0;while(1){m=J[a+8>>2];i=N[l>>2];d=0;n=0;if((h|0)!=1){while(1){g=d<<2;q=(b<<2)+p|0;N[g+f>>2]=Q(i*Q(J[q>>2]))+N[g+m>>2];g=g|4;N[g+f>>2]=Q(i*Q(J[q+4>>2]))+N[g+m>>2];d=d+2|0;b=b+2|0;n=n+2|0;if((t|0)!=(n|0)){continue}break}}if(u){d=d<<2;N[d+f>>2]=Q(i*Q(J[(b<<2)+p>>2]))+N[d+m>>2];b=b+1|0}ua(J[J[c+64>>2]>>2]+r|0,f,e);r=e+r|0;s=s+1|0;if((s|0)!=(j|0)){continue}break}break a}b=0;if((j|0)!=1){a=j&-2;d=0;while(1){ua(J[J[c+64>>2]>>2]+b|0,f,e);b=b+e|0;ua(b+J[J[c+64>>2]>>2]|0,f,e);b=b+e|0;d=d+2|0;if((a|0)!=(d|0)){continue}break}}if(!(j&1)){break a}ua(J[J[c+64>>2]>>2]+b|0,f,e)}na(f)}ba=k+16|0;return o|0}function Aj(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;c=J[a+12>>2];d=J[a+108>>2];e=J[d+80>>2];H[b+84|0]=0;m=b+68|0;h=J[b+68>>2];f=J[b+72>>2]-h>>2;a:{if(f>>>0>>0){Ma(m,e-f|0,11424);d=J[a+108>>2];e=J[d+80>>2];break a}if(e>>>0>=f>>>0){break a}J[b+72>>2]=h+(e<<2)}b=J[d+100>>2];f=J[d+96>>2];h=(b-f|0)/12|0;k=1;b:{if((b|0)==(f|0)){break b}n=h>>>0<=1?1:h;o=J[c>>2];c=0;d=f;b=0;k=0;while(1){c=(c<<2)+o|0;i=J[c>>2];if((i|0)==-1){break b}g=J[d>>2];if(g>>>0>=e>>>0){break b}l=J[J[a+112>>2]+12>>2];j=J[l+(i<<2)>>2];if(j>>>0>=e>>>0){break b}i=J[m>>2];J[i+(g<<2)>>2]=j;g=J[c+4>>2];if((g|0)==-1){break b}j=J[d+4>>2];if(j>>>0>=e>>>0){break b}g=J[(g<<2)+l>>2];if(g>>>0>=e>>>0){break b}J[i+(j<<2)>>2]=g;c=J[c+8>>2];if((c|0)==-1){break b}d=J[d+8>>2];if(d>>>0>=e>>>0){break b}c=J[(c<<2)+l>>2];if(c>>>0>=e>>>0){break b}J[i+(d<<2)>>2]=c;b=b+1|0;k=h>>>0<=b>>>0;if((b|0)==(n|0)){break b}c=P(b,3);d=f+P(b,12)|0;if((b|0)!=1431655765){continue}break}}return k|0}function sj(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;c=J[a+12>>2];d=J[a+68>>2];e=J[d+80>>2];H[b+84|0]=0;m=b+68|0;h=J[b+68>>2];f=J[b+72>>2]-h>>2;a:{if(f>>>0>>0){Ma(m,e-f|0,11424);d=J[a+68>>2];e=J[d+80>>2];break a}if(e>>>0>=f>>>0){break a}J[b+72>>2]=h+(e<<2)}b=J[d+100>>2];f=J[d+96>>2];h=(b-f|0)/12|0;k=1;b:{if((b|0)==(f|0)){break b}n=h>>>0<=1?1:h;o=J[c>>2];c=0;d=f;b=0;k=0;while(1){c=(c<<2)+o|0;i=J[c>>2];if((i|0)==-1){break b}g=J[d>>2];if(g>>>0>=e>>>0){break b}l=J[J[a+72>>2]+12>>2];j=J[l+(i<<2)>>2];if(j>>>0>=e>>>0){break b}i=J[m>>2];J[i+(g<<2)>>2]=j;g=J[c+4>>2];if((g|0)==-1){break b}j=J[d+4>>2];if(j>>>0>=e>>>0){break b}g=J[(g<<2)+l>>2];if(g>>>0>=e>>>0){break b}J[i+(j<<2)>>2]=g;c=J[c+8>>2];if((c|0)==-1){break b}d=J[d+8>>2];if(d>>>0>=e>>>0){break b}c=J[(c<<2)+l>>2];if(c>>>0>=e>>>0){break b}J[i+(d<<2)>>2]=c;b=b+1|0;k=h>>>0<=b>>>0;if((b|0)==(n|0)){break b}c=P(b,3);d=f+P(b,12)|0;if((b|0)!=1431655765){continue}break}}return k|0}function mg(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;c=ba+-64|0;ba=c;d=oa(80);i=J[a+8>>2];J[d+12>>2]=0;J[d+16>>2]=0;J[d>>2]=11692;J[d+4>>2]=0;J[d+20>>2]=0;J[d+24>>2]=0;J[d+28>>2]=0;J[d+32>>2]=0;J[d+36>>2]=0;J[d+40>>2]=0;J[d+44>>2]=0;J[d+48>>2]=0;J[d+52>>2]=0;J[d+76>>2]=0;J[d+72>>2]=b;J[d+68>>2]=i;J[d- -64>>2]=0;j=d+56|0;e=j;J[e>>2]=0;J[e+4>>2]=0;J[d+8>>2]=11856;e=J[a+12>>2];J[c+40>>2]=0;J[c+44>>2]=0;J[c+32>>2]=0;J[c+36>>2]=0;f=c+24|0;J[f>>2]=0;J[f+4>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+56>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;J[c+48>>2]=0;J[c+52>>2]=0;J[c>>2]=11856;J[c+4>>2]=e;g=J[e>>2];h=J[e+4>>2];H[c+63|0]=0;k=f;f=c+63|0;Na(k,(h-g>>2>>>0)/3|0,f);g=J[c+4>>2];h=J[g+28>>2];g=J[g+24>>2];H[c+63|0]=0;Na(c+36|0,h-g>>2,f);J[c+20>>2]=d;J[c+16>>2]=i;J[c+12>>2]=b;J[c+8>>2]=e;J[d+76>>2]=a+72;Kc(d+8|0,c);Rb(j,J[c+48>>2],J[c+52>>2]);J[c>>2]=11856;a=J[c+48>>2];if(a){J[c+52>>2]=a;na(a)}J[c>>2]=11672;a=J[c+36>>2];if(a){na(a)}a=J[c+24>>2];if(a){na(a)}ba=c- -64|0;return d}function Sa(a,b,c,d,e,f,g){var h=0,i=0,j=0,k=0,l=0;a:{b:{if((e|0)<=(f|0)){if((a|0)==(b|0)){break b}f=g;e=a;while(1){J[f>>2]=J[e>>2];f=f+4|0;e=e+4|0;if((e|0)!=(b|0)){continue}break}if((f|0)==(g|0)){break b}d=J[d>>2];while(1){if((b|0)==(c|0)){ta(a,g,f-g|0);return}c:{e=J[d>>2];h=J[d+4>>2]-e>>3;i=J[b>>2];if(h>>>0<=i>>>0){break c}j=h;h=J[g>>2];if(j>>>0<=h>>>0){break c}j=h;k=i;i=J[e+(i<<3)>>2];e=J[e+(h<<3)>>2];h=i>>>0>=e>>>0;J[a>>2]=h?j:k;b=((e>>>0>i>>>0)<<2)+b|0;a=a+4|0;g=(h<<2)+g|0;if((g|0)!=(f|0)){continue}break b}break}ra();B()}if((b|0)==(c|0)){break b}f=g;e=b;while(1){J[f>>2]=J[e>>2];f=f+4|0;e=e+4|0;if((e|0)!=(c|0)){continue}break}if((f|0)==(g|0)){break b}while(1){if((a|0)==(b|0)){a=f-g|0;ta(c-a|0,g,a);return}i=J[d>>2];e=J[i>>2];h=J[i+4>>2]-e>>3;k=f-4|0;i=J[k>>2];if(h>>>0<=i>>>0){break a}j=h;l=b-4|0;h=J[l>>2];if(j>>>0<=h>>>0){break a}c=c-4|0;e=M[e+(i<<3)>>2]>2];J[c>>2]=e?h:i;b=e?l:b;f=e?f:k;if((g|0)!=(f|0)){continue}break}}return}ra();B()}function _c(a){var b=0,c=0,d=0,e=0;c=J[a+1176>>2];if(c){d=c;b=J[a+1180>>2];if((c|0)!=(b|0)){while(1){d=b-12|0;e=J[d>>2];if(e){J[b-8>>2]=e;na(e)}b=d;if((c|0)!=(b|0)){continue}break}d=J[a+1176>>2]}J[a+1180>>2]=c;na(d)}c=J[a+1164>>2];if(c){d=c;b=J[a+1168>>2];if((c|0)!=(b|0)){while(1){d=b-12|0;e=J[d>>2];if(e){J[b-8>>2]=e;na(e)}b=d;if((c|0)!=(b|0)){continue}break}d=J[a+1164>>2]}J[a+1168>>2]=c;na(d)}b=J[a+1152>>2];if(b){J[a+1156>>2]=b;na(b)}b=J[a+1140>>2];if(b){J[a+1144>>2]=b;na(b)}b=J[a+1128>>2];if(b){J[a+1132>>2]=b;na(b)}tb(a+1108|0);tb(a+1088|0);tb(a+1068|0);wa(a+1036|0);a=a+12|0;wa(a+992|0);wa(a+960|0);wa(a+928|0);wa(a+896|0);wa(a+864|0);wa(a+832|0);wa(a+800|0);wa(a+768|0);wa(a+736|0);wa(a+704|0);wa(a+672|0);wa(a+640|0);wa(a+608|0);wa(a+576|0);wa(a+544|0);wa(a+512|0);wa(a+480|0);wa(a+448|0);wa(a+416|0);wa(a+384|0);wa(a+352|0);wa(a+320|0);wa(a+288|0);wa(a+256|0);wa(a+224|0);wa(a+192|0);wa(a+160|0);wa(a+128|0);wa(a+96|0);wa(a- -64|0);wa(a+32|0);wa(a)}function Ed(a){var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;d=ba-32|0;ba=d;a:{b=J[a+16>>2];c=J[a+20>>2];if(!!b&(c|0)>=0|(c|0)>0){e=J[J[a+12>>2]+4>>2]+7|0;f=e>>>0<7?1:f;c=f>>>3|0;f=f<<29|e>>>3;if(K[a+24|0]){e=J[a+4>>2];J[d>>2]=0;J[d+4>>2]=0;H[d+24|0]=0;J[d+16>>2]=0;J[d+20>>2]=0;J[d+8>>2]=0;J[d+12>>2]=0;xb(f,c,d);c=e-b|0;e=c-8|0;b=J[d+4>>2]-J[d>>2]|0;ta(e+b|0,c,f);ua(e,J[d>>2],b);c=8-b|0;b=J[a+20>>2];e=c;c=c+J[a+16>>2]|0;b=e>>>0>c>>>0?b+1|0:b;J[a+16>>2]=c;J[a+20>>2]=b;b=J[d+12>>2];J[d+12>>2]=0;if(b){na(b)}b=J[d>>2];if(b){J[d+4>>2]=b;na(b)}b=J[a+16>>2]}b=f-b|0;g=J[a+4>>2];f=J[a>>2];e=g-f|0;c=b+e|0;b:{if(c>>>0>e>>>0){h=J[a+8>>2];if(h-g>>>0>=b>>>0){i=a,j=pa(g,0,b)+b|0,J[i+4>>2]=j;break b}if((c|0)<0){break a}g=h-f|0;h=g<<1;g=g>>>0>=1073741823?2147483647:c>>>0>>0?h:c;h=oa(g);pa(h+e|0,0,b);b=ta(h,f,e);J[a+8>>2]=b+g;J[a+4>>2]=b+c;J[a>>2]=b;if(!f){break b}na(f);break b}if(c>>>0>=e>>>0){break b}J[a+4>>2]=c+f}J[a+16>>2]=0;J[a+20>>2]=0}ba=d+32|0;return}qa();B()}function dj(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;b=J[a+4>>2];b=J[b+12>>2]-J[b+8>>2]|0;a:{if((b|0)>3){b=0;while(1){if(da[J[J[a>>2]+36>>2]](a,b)|0){b=b+1|0;c=J[a+4>>2];c=J[c+12>>2]-J[c+8>>2]>>2;if((b|0)<(c|0)){continue}break a}break}return 0}c=b>>2}b=a+20|0;d=J[a+20>>2];e=J[a+24>>2]-d>>2;b:{if(e>>>0>>0){Fa(b,c-e|0);break b}if(c>>>0>=e>>>0){break b}J[a+24>>2]=d+(c<<2)}f=J[a+8>>2];a=J[a+12>>2];if((f|0)==(a|0)){return 1}a=a-f>>2;j=a>>>0<=1?1:a;e=J[b>>2];b=0;while(1){a=J[(b<<2)+f>>2];d=J[a+8>>2];c=J[a+4>>2];c:{if((d|0)==(c|0)){break c}a=d-c>>2;d=a>>>0<=1?1:a;i=d&3;g=0;a=0;if(d-1>>>0>=3){k=d&-4;h=0;while(1){d=a<<2;J[e+(J[d+c>>2]<<2)>>2]=b;J[e+(J[c+(d|4)>>2]<<2)>>2]=b;J[e+(J[c+(d|8)>>2]<<2)>>2]=b;J[e+(J[c+(d|12)>>2]<<2)>>2]=b;a=a+4|0;h=h+4|0;if((k|0)!=(h|0)){continue}break}}if(!i){break c}while(1){J[e+(J[c+(a<<2)>>2]<<2)>>2]=b;a=a+1|0;g=g+1|0;if((g|0)!=(i|0)){continue}break}}b=b+1|0;if((j|0)!=(b|0)){continue}break}return 1}function ek(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;e=J[a+12>>2];i=J[a+8>>2];d=e-i>>2;b=K[b+24|0];a:{if(d>>>0>>0){Fa(a+8|0,b-d|0);i=J[a+8>>2];e=J[a+12>>2];break a}if(b>>>0>=d>>>0){break a}e=(b<<2)+i|0;J[a+12>>2]=e}b=0;f=J[c+8>>2];h=J[c+12>>2];j=J[c+20>>2];e=e-i|0;d=J[c+16>>2];g=e+d|0;j=e>>>0>g>>>0?j+1|0:j;b:{if(f>>>0>>0&(h|0)<=(j|0)|(h|0)<(j|0)){break b}ua(i,d+J[c>>2]|0,e);d=J[c+20>>2];g=e;e=e+J[c+16>>2]|0;d=g>>>0>e>>>0?d+1|0:d;J[c+16>>2]=e;J[c+20>>2]=d;f=J[c+8>>2];h=J[c+12>>2];g=e+4|0;d=g>>>0<4?d+1|0:d;if(f>>>0>>0&(d|0)>=(h|0)|(d|0)>(h|0)){break b}d=e+J[c>>2]|0;J[a+20>>2]=K[d|0]|K[d+1|0]<<8|(K[d+2|0]<<16|K[d+3|0]<<24);d=J[c+20>>2];g=d;f=d;e=J[c+16>>2];d=e+4|0;f=d>>>0<4?f+1|0:f;J[c+16>>2]=d;J[c+20>>2]=f;h=J[c+12>>2];if((f|0)>=(h|0)&d>>>0>=M[c+8>>2]|(f|0)>(h|0)){break b}f=K[d+J[c>>2]|0];d=g;e=e+5|0;d=e>>>0<5?d+1|0:d;J[c+16>>2]=e;J[c+20>>2]=d;if(f-1>>>0>29){break b}J[a+4>>2]=f;b=1}return b|0}function qe(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;a:{f=J[a+4>>2];b:{if((f|0)!=J[a>>2]){c=f;break b}g=J[a+8>>2];c=J[a+12>>2];if(g>>>0>>0){e=((c-g>>2)+1|0)/2<<2;c=e+g|0;if((f|0)!=(g|0)){d=g-f|0;c=c-d|0;ta(c,f,d);f=J[a+8>>2]}J[a+4>>2]=c;J[a+8>>2]=e+f;break b}d=(c|0)==(f|0)?1:c-f>>1;if(d>>>0>=1073741824){break a}c=d<<2;i=oa(c);k=i+c|0;c=(d+3&-4)+i|0;h=c;c:{if((f|0)==(g|0)){break c}g=g-f|0;l=g&-4;e=c;d=f;j=g-4|0;g=(j>>>2|0)+1&7;if(g){h=0;while(1){J[e>>2]=J[d>>2];d=d+4|0;e=e+4|0;h=h+1|0;if((g|0)!=(h|0)){continue}break}}h=c+l|0;if(j>>>0<28){break c}while(1){J[e>>2]=J[d>>2];J[e+4>>2]=J[d+4>>2];J[e+8>>2]=J[d+8>>2];J[e+12>>2]=J[d+12>>2];J[e+16>>2]=J[d+16>>2];J[e+20>>2]=J[d+20>>2];J[e+24>>2]=J[d+24>>2];J[e+28>>2]=J[d+28>>2];d=d+32|0;e=e+32|0;if((h|0)!=(e|0)){continue}break}}J[a+12>>2]=k;J[a+8>>2]=h;J[a+4>>2]=c;J[a>>2]=i;if(!f){break b}na(f);c=J[a+4>>2]}J[c-4>>2]=J[b>>2];J[a+4>>2]=J[a+4>>2]-4;return}xa();B()}function vd(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;f=c-b|0;e=J[a+8>>2];d=J[a>>2];if(f>>>0<=e-d>>>0){h=J[a+4>>2]-d|0;e=h+b|0;g=f>>>0>h>>>0?e:c;a:{if((g|0)==(b|0)){break a}k=(b^-1)+g|0;i=g-b&7;if(i){while(1){H[d|0]=K[b|0];d=d+1|0;b=b+1|0;j=j+1|0;if((j|0)!=(i|0)){continue}break}}if(k>>>0<7){break a}while(1){H[d|0]=K[b|0];H[d+1|0]=K[b+1|0];H[d+2|0]=K[b+2|0];H[d+3|0]=K[b+3|0];H[d+4|0]=K[b+4|0];H[d+5|0]=K[b+5|0];H[d+6|0]=K[b+6|0];H[d+7|0]=K[b+7|0];d=d+8|0;b=b+8|0;if((g|0)!=(b|0)){continue}break}}if(f>>>0>h>>>0){b=J[a+4>>2];if((c|0)!=(g|0)){while(1){H[b|0]=K[e|0];b=b+1|0;e=e+1|0;if((e|0)!=(c|0)){continue}break}}J[a+4>>2]=b;return}J[a+4>>2]=d;return}if(d){J[a+4>>2]=d;na(d);J[a+8>>2]=0;J[a>>2]=0;J[a+4>>2]=0;e=0}b:{if((f|0)<0){break b}d=e<<1;e=e>>>0>=1073741823?2147483647:d>>>0>f>>>0?d:f;if((e|0)<0){break b}d=oa(e);J[a+4>>2]=d;J[a>>2]=d;J[a+8>>2]=d+e;if((b|0)!=(c|0)){d=ua(d,b,f)+f|0}J[a+4>>2]=d;return}qa();B()}function Uf(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;j=+N[b>>2];k=+N[b+4>>2];l=+N[b+8>>2];g=R(j)+R(k)+R(l);a:{if(!(g>1e-6)){j=1;k=0;e=0;break a}g=1/g;k=g*k;j=g*j;e=g*l<0}h=J[a+16>>2];l=+(h|0);g=V(j*l+.5);b:{if(R(g)<2147483648){m=~~g;break b}m=-2147483648}f=m>>31;i=(f^m)-f|0;g=V(k*l+.5);c:{if(R(g)<2147483648){f=~~g;break c}f=-2147483648}b=f>>31;b=h-(i+((f^b)-b|0)|0)|0;i=(b|0)>0?b:0;e=e?0-i|0:i;f=f+(b>>31&((f|0)>0?b:0-b|0))|0;d:{if((m|0)>=0){b=e+h|0;a=J[a+8>>2];e=h+f|0;break d}b=f>>31;b=(b^f)-b|0;a=J[a+8>>2];b=(e|0)<0?b:a-b|0;e=(f|0)<0?i:a-i|0}e:{if(!(b|e)){b=a;break e}if(!((a|0)!=(b|0)|e)){b=a;break e}if(!((a|0)!=(e|0)|b)){b=a;break e}if(!((b|0)<=(h|0)|e)){b=(h<<1)-b|0;a=0;break e}if(!((a|0)!=(e|0)|(b|0)>=(h|0))){b=(h<<1)-b|0;break e}if(!((a|0)!=(b|0)|(e|0)>=(h|0))){b=a;a=(h<<1)-e|0;break e}if(b){a=e;break e}b=0;if((e|0)<=(h|0)){a=e;break e}a=(h<<1)-e|0}J[c>>2]=a;J[d>>2]=b}function ge(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0;a:{b:{e=J[b+4>>2];c:{if(!e){f=b+4|0;c=f;break c}f=K[c+11|0];g=f<<24>>24<0;i=g?J[c>>2]:c;g=g?J[c+4>>2]:f;while(1){c=e;h=K[e+27|0];f=h<<24>>24<0;e=f?J[e+20>>2]:h;h=e>>>0>>0;d:{e:{f:{g:{j=h?e:g;h:{if(j){f=f?J[c+16>>2]:c+16|0;k=Ba(i,f,j);if(!k){if(e>>>0>g>>>0){break h}break g}if((k|0)>=0){break g}break h}if(e>>>0<=g>>>0){break f}}f=c;e=J[c>>2];if(e){continue}break c}e=Ba(f,i,j);if(e){break e}}if(h){break d}break b}if((e|0)>=0){break b}}e=J[c+4>>2];if(e){continue}break}f=c+4|0}e=oa(40);g=e+16|0;d=J[d>>2];i:{if(H[d+11|0]>=0){i=J[d+4>>2];J[g>>2]=J[d>>2];J[g+4>>2]=i;J[g+8>>2]=J[d+8>>2];break i}Ga(g,J[d>>2],J[d+4>>2])}J[e+8>>2]=c;J[e>>2]=0;J[e+4>>2]=0;J[e+36>>2]=0;J[e+28>>2]=0;J[e+32>>2]=0;J[f>>2]=e;c=e;d=J[J[b>>2]>>2];if(d){J[b>>2]=d;c=J[f>>2]}sb(J[b+4>>2],c);J[b+8>>2]=J[b+8>>2]+1;b=1;break a}e=c;b=0}H[a+4|0]=b;J[a>>2]=e}function rc(a,b){var c=0,d=0,e=0,f=0,g=0,h=0;d=ba-32|0;ba=d;h=J[b>>2]+J[a+40>>2]|0;e=J[a+32>>2];c=e-4194304|0;a:{if(c>>>0<=63){H[J[a+24>>2]+J[a+28>>2]|0]=e;g=J[a+28>>2]+1|0;break a}if(c>>>0<=16383){c=J[a+24>>2]+J[a+28>>2]|0;H[c+1|0]=e+16384>>>8;H[c|0]=e;g=J[a+28>>2]+2|0;break a}if(c>>>0<=4194303){c=J[a+24>>2]+J[a+28>>2]|0;H[c+2|0]=e+4194304>>>16;H[c+1|0]=e>>>8;H[c|0]=e;g=J[a+28>>2]+3|0;break a}if(c>>>0<=1073741823){f=J[a+24>>2]+J[a+28>>2]|0;c=e-1077936128|0;H[f+3|0]=c>>>24;H[f+2|0]=c>>>16;H[f+1|0]=e>>>8;H[f|0]=e;g=J[a+28>>2]+4|0;break a}g=J[a+28>>2]}f=g;J[d>>2]=0;J[d+4>>2]=0;H[d+24|0]=0;J[d+16>>2]=0;J[d+20>>2]=0;J[d+8>>2]=0;J[d+12>>2]=0;c=f>>31;xb(f,c,d);e=J[d+4>>2]-J[d>>2]|0;ta(e+h|0,h,f);ua(h,J[d>>2],e);h=J[a+40>>2];a=J[a+44>>2];f=e+f|0;c=a+(g>>>0>f>>>0?c+1|0:c)|0;a=f+h|0;Ia(b,a);a=J[d+12>>2];J[d+12>>2]=0;if(a){na(a)}a=J[d>>2];if(a){J[d+4>>2]=a;na(a)}ba=d+32|0}function yb(a,b){var c=0,d=0,e=0,f=0,g=0,h=0;d=ba-32|0;ba=d;h=J[b>>2]+J[a+40>>2]|0;f=J[a+32>>2];c=f-16384|0;a:{if(c>>>0<=63){H[J[a+24>>2]+J[a+28>>2]|0]=f;g=J[a+28>>2]+1|0;break a}if(c>>>0<=16383){c=J[a+24>>2]+J[a+28>>2]|0;H[c|0]=f;H[c+1|0]=f>>>8;g=J[a+28>>2]+2|0;break a}if(c>>>0<=4194303){e=J[a+24>>2]+J[a+28>>2]|0;c=f+8372224|0;H[e+2|0]=c>>>16;H[e+1|0]=c>>>8;H[e|0]=f;g=J[a+28>>2]+3|0;break a}if(c>>>0<=1073741823){e=J[a+24>>2]+J[a+28>>2]|0;c=f-1073758208|0;H[e+3|0]=c>>>24;H[e+2|0]=c>>>16;H[e+1|0]=c>>>8;H[e|0]=f;g=J[a+28>>2]+4|0;break a}g=J[a+28>>2]}e=g;J[d>>2]=0;J[d+4>>2]=0;H[d+24|0]=0;J[d+16>>2]=0;J[d+20>>2]=0;J[d+8>>2]=0;J[d+12>>2]=0;c=e>>31;xb(e,c,d);f=J[d+4>>2]-J[d>>2]|0;ta(f+h|0,h,e);ua(h,J[d>>2],f);h=J[a+40>>2];a=J[a+44>>2];e=e+f|0;c=a+(g>>>0>e>>>0?c+1|0:c)|0;a=e+h|0;Ia(b,a);a=J[d+12>>2];J[d+12>>2]=0;if(a){na(a)}a=J[d>>2];if(a){J[d+4>>2]=a;na(a)}ba=d+32|0}function ii(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=Q(0),f=Q(0),g=Q(0),h=Q(0),i=Q(0),j=0,k=Q(0),l=Q(0),m=Q(0),n=Q(0),o=0;a:{if(J[c+28>>2]!=9|K[c+24|0]!=3){break a}a=J[a+4>>2];if(a-2>>>0>28){break a}o=1;j=J[c+80>>2];if(!j){break a}k=Q(Q(2)/Q((1<>2]>>2]+J[c+48>>2]|0;a=J[J[b>>2]>>2]+J[b+48>>2]|0;b=0;while(1){g=Q(0);l=Q(0);m=Q(0);e=Q(Q(Q(J[a>>2])*k)+Q(-1));f=Q(Q(Q(J[a+4>>2])*k)+Q(-1));i=Q(Q(Q(1)-Q(R(e)))-Q(R(f)));h=Q(U(Q(-i),Q(0)));n=Q(-h);f=Q(f+(f>>8;H[c+10|0]=d>>>16;H[c+11|0]=d>>>24;d=(C(l),v(2));H[c+4|0]=d;H[c+5|0]=d>>>8;H[c+6|0]=d>>>16;H[c+7|0]=d>>>24;d=(C(g),v(2));H[c|0]=d;H[c+1|0]=d>>>8;H[c+2|0]=d>>>16;H[c+3|0]=d>>>24;c=c+12|0;b=b+1|0;if((j|0)!=(b|0)){continue}break}}return o|0}function lg(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;c=ba-16|0;ba=c;b=J[J[a+184>>2]+(b<<2)>>2];H[c+15|0]=b;e=J[J[a+4>>2]+44>>2];d=J[e+20>>2];if(!J[e+16>>2]&(d|0)<=0|(d|0)<0){sa(e,J[e+4>>2],c+15|0,c+16|0);b=K[c+15|0]}a:{b:{c:{if(b<<24>>24<0){e=J[a+68>>2];break c}b=J[J[a+172>>2]+P(b&255,136)>>2];d=da[J[J[a>>2]+40>>2]](a)|0;f=J[a+172>>2]+P(H[c+15|0],136)|0;e=J[f+132>>2];d:{switch(J[J[J[d+56>>2]+84>>2]+(b<<2)>>2]){case 0:break c;case 1:break d;default:break b}}if(!K[f+28|0]){break b}}b=J[J[a+4>>2]+44>>2];H[c+14|0]=0;d=J[b+20>>2];if(!!J[b+16>>2]&(d|0)>=0|(d|0)>0){break a}sa(b,J[b+4>>2],c+14|0,c+15|0);break a}b=J[J[a+4>>2]+44>>2];H[c+13|0]=1;d=J[b+20>>2];if(!!J[b+16>>2]&(d|0)>=0|(d|0)>0){break a}sa(b,J[b+4>>2],c+13|0,c+14|0)}a=J[J[a+4>>2]+44>>2];H[c+12|0]=e;b=J[a+20>>2];if(!J[a+16>>2]&(b|0)<=0|(b|0)<0){sa(a,J[a+4>>2],c+12|0,c+13|0)}ba=c+16|0;return 1}function Cc(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0;a:{b:{e=J[b+4>>2];c:{if(!e){f=b+4|0;c=f;break c}f=K[c+11|0];g=f<<24>>24<0;h=g?J[c>>2]:c;g=g?J[c+4>>2]:f;while(1){c=e;e=K[e+27|0];f=e<<24>>24<0;e=f?J[c+20>>2]:e;j=e>>>0>>0;d:{e:{f:{g:{i=j?e:g;h:{if(i){f=f?J[c+16>>2]:c+16|0;k=Ba(h,f,i);if(!k){if(e>>>0>g>>>0){break h}break g}if((k|0)>=0){break g}break h}if(e>>>0<=g>>>0){break f}}f=c;e=J[c>>2];if(e){continue}break c}e=Ba(f,h,i);if(e){break e}}if(j){break d}break b}if((e|0)>=0){break b}}e=J[c+4>>2];if(e){continue}break}f=c+4|0}e=oa(40);J[e+24>>2]=J[d+8>>2];g=J[d+4>>2];h=J[d>>2];J[e+16>>2]=h;J[e+20>>2]=g;J[d>>2]=0;J[d+4>>2]=0;J[d+8>>2]=0;Ob(e+28|0,d+12|0);J[e+8>>2]=c;J[e>>2]=0;J[e+4>>2]=0;J[f>>2]=e;c=e;d=J[J[b>>2]>>2];if(d){J[b>>2]=d;c=J[f>>2]}sb(J[b+4>>2],c);J[b+8>>2]=J[b+8>>2]+1;b=1;break a}e=c;b=0}H[a+4|0]=b;J[a>>2]=e}function El(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;j=1;a:{b:{c:{if((da[J[J[b>>2]+20>>2]](b)|0)<=0){break c}while(1){e=Nb(J[J[a+4>>2]+4>>2],da[J[J[b>>2]+24>>2]](b,i)|0);j=(e|0)!=-1;if((e|0)==-1){break c}c=J[a+20>>2];d:{if((c|0)!=J[a+24>>2]){J[c>>2]=e;J[a+20>>2]=c+4;break d}f=c;c=J[a+16>>2];d=f-c|0;h=d>>2;g=h+1|0;if(g>>>0>=1073741824){break b}f=d>>>1|0;g=d>>>0>=2147483644?1073741823:g>>>0>>0?f:g;if(g){if(g>>>0>=1073741824){break a}f=oa(g<<2)}else{f=0}h=f+(h<<2)|0;J[h>>2]=e;d=ta(f,c,d);J[a+24>>2]=d+(g<<2);J[a+20>>2]=h+4;J[a+16>>2]=d;if(!c){break d}na(c)}c=J[a+4>>2];e:{if((e|0)<0){break e}d=J[c+4>>2];if(J[d+12>>2]-J[d+8>>2]>>2<=(e|0)){break e}c=J[J[c+8>>2]+(J[J[c+20>>2]+(e<<2)>>2]<<2)>>2];da[J[J[c>>2]+32>>2]](c,e)|0}i=i+1|0;if((da[J[J[b>>2]+20>>2]](b)|0)>(i|0)){continue}break}}return j|0}qa();B()}xa();B()}function Ta(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0;if((b|0)==(c|0)){J[a+4>>2]=d;J[a>>2]=d;return}if((c|0)==(d|0)){J[a+4>>2]=c;J[a>>2]=b;return}a:{if((b+4|0)==(c|0)){f=J[b>>2];e=b;b=d-c|0;c=ta(e,c,b)+b|0;J[c>>2]=f;break a}if((c+4|0)==(d|0)){f=d-4|0;e=J[f>>2];c=d;if((b|0)!=(f|0)){f=f-b|0;c=d-f|0;ta(c,b,f)}J[b>>2]=e;break a}g=c-b>>2;h=d-c>>2;if((g|0)==(h|0)){e=c;while(1){f=J[b>>2];J[b>>2]=J[e>>2];J[e>>2]=f;b=b+4|0;if((c|0)==(b|0)){break a}e=e+4|0;if((e|0)!=(d|0)){continue}break}break a}e=h;f=g;while(1){c=f;f=e;e=(c|0)%(e|0)|0;if(e){continue}break}if(f){e=(f<<2)+b|0;while(1){e=e-4|0;j=g<<2;c=e+j|0;k=J[e>>2];f=e;while(1){i=f;f=c;J[i>>2]=J[c>>2];i=c+j|0;c=d-c>>2;c=(c|0)>(g|0)?i:(g-c<<2)+b|0;if((e|0)!=(c|0)){continue}break}J[f>>2]=k;if((b|0)!=(e|0)){continue}break}}c=(h<<2)+b|0}J[a+4>>2]=d;J[a>>2]=c}function Kc(a,b){var c=0,d=0;c=J[b+8>>2];J[a+4>>2]=J[b+4>>2];J[a+8>>2]=c;J[a+20>>2]=J[b+20>>2];c=J[b+16>>2];J[a+12>>2]=J[b+12>>2];J[a+16>>2]=c;a:{b:{if((a|0)!=(b|0)){c=J[b+28>>2];if(c){d=J[a+24>>2];if(J[a+32>>2]<<5>>>0>>0){if(d){na(d);J[a+32>>2]=0;J[a+24>>2]=0;J[a+28>>2]=0;c=J[b+28>>2]}if((c|0)<0){break b}c=(c-1>>>5|0)+1|0;d=oa(c<<2);J[a+32>>2]=c;J[a+28>>2]=0;J[a+24>>2]=d;c=J[b+28>>2]}ta(d,J[b+24>>2],(c-1>>>3&536870908)+4|0);c=J[b+28>>2]}else{c=0}J[a+28>>2]=c;c=J[b+40>>2];if(c){d=J[a+36>>2];if(J[a+44>>2]<<5>>>0>>0){if(d){na(d);J[a+44>>2]=0;J[a+36>>2]=0;J[a+40>>2]=0;c=J[b+40>>2]}if((c|0)<0){break a}c=(c-1>>>5|0)+1|0;d=oa(c<<2);J[a+44>>2]=c;J[a+40>>2]=0;J[a+36>>2]=d;c=J[b+40>>2]}ta(d,J[b+36>>2],(c-1>>>3&536870908)+4|0);b=J[b+40>>2]}else{b=0}J[a+40>>2]=b}return}qa();B()}qa();B()}function jf(a){var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;f=ba-16|0;ba=f;d=J[a+100>>2];e=J[a+96>>2];J[f+8>>2]=0;J[f>>2]=0;J[f+4>>2]=0;b=d-e|0;g=(b|0)/12|0;a:{b:{if((d|0)==(e|0)){break b}if(g>>>0>=357913942){break a}d=oa(b);J[f>>2]=d;J[f+8>>2]=d+P(g,12);a=0;c=d;d=b-12|0;b=(d-((d>>>0)%12|0)|0)+12|0;d=pa(c,0,b);J[f+4>>2]=b+d;b=g>>>0<=1?1:g;j=b&1;if(g>>>0>=2){k=b&-2;g=0;while(1){c=P(a,12);b=c+e|0;h=J[b>>2];i=J[b+4>>2];c=d+c|0;J[c+8>>2]=J[b+8>>2];J[c>>2]=h;J[c+4>>2]=i;c=P(a|1,12);b=c+e|0;h=J[b>>2];i=J[b+4>>2];c=d+c|0;J[c+8>>2]=J[b+8>>2];J[c>>2]=h;J[c+4>>2]=i;a=a+2|0;g=g+2|0;if((k|0)!=(g|0)){continue}break}}if(!j){break b}c=e;e=P(a,12);a=c+e|0;g=J[a+4>>2];b=J[a>>2];e=d+e|0;J[e+8>>2]=J[a+8>>2];J[e>>2]=b;J[e+4>>2]=g}e=mf(f);a=J[f>>2];if(a){J[f+4>>2]=a;na(a)}ba=f+16|0;return e}qa();B()}function dg(a){var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;d=J[a+112>>2];b=J[a+108>>2];c=(d-b|0)/12|0;Aa(c,J[J[a+4>>2]+44>>2]);if((b|0)!=(d|0)){f=c>>>0<=1?1:c;d=0;while(1){b=J[a+108>>2]+P(d,12)|0;Aa(J[b+4>>2]-g|0,J[J[a+4>>2]+44>>2]);Aa(J[b+4>>2]-J[b>>2]|0,J[J[a+4>>2]+44>>2]);g=J[b+4>>2];d=d+1|0;if((f|0)!=(d|0)){continue}break}d=0;Fd(J[J[a+4>>2]+44>>2],c,0,0);b=J[J[a+4>>2]+44>>2];e=!!J[b+16>>2];b=J[b+20>>2];if(e&(b|0)>=0|(b|0)>0){f=c>>>0<=1?1:c;while(1){c=J[J[a+4>>2]+44>>2];b=J[c+20>>2];if(!!J[c+16>>2]&(b|0)>=0|(b|0)>0){g=K[(J[a+108>>2]+P(d,12)|0)+8|0];c=J[c+12>>2];e=J[c+4>>2];b=e>>>3|0;h=b+J[c>>2]|0;i=K[h|0];e=e&7;j=h,k=Ll(e)&i,H[j|0]=k;b=b+J[c>>2]|0;H[b|0]=K[b|0]|(g&1)<>2]=J[c+4>>2]+1}d=d+1|0;if((f|0)!=(d|0)){continue}break}}Ed(J[J[a+4>>2]+44>>2])}return 1}function mj(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0;e=J[a+4>>2];d=J[e>>2];a:{b=J[a+12>>2];c=J[b+56>>2]-J[b+52>>2]|0;f=c>>2;b:{if(f>>>0<=J[e+8>>2]-d>>2>>>0){break b}if((c|0)<0){break a}b=J[e+4>>2];c=oa(c);f=c+(f<<2)|0;g=c+(b-d&-4)|0;c=g;if((b|0)!=(d|0)){while(1){c=c-4|0;b=b-4|0;J[c>>2]=J[b>>2];if((b|0)!=(d|0)){continue}break}}J[e+8>>2]=f;J[e+4>>2]=g;J[e>>2]=c;if(!d){break b}na(d)}e=a+8|0;b=J[a+76>>2];c:{if(b){d=J[b>>2];if((d|0)==J[b+4>>2]){return 1}b=0;while(1){c=Vf(e,J[(b<<2)+d>>2]);if(!c){break c}f=J[a+76>>2];d=J[f>>2];b=b+1|0;if(b>>>0>2]-d>>2>>>0){continue}break}break c}c=1;a=J[J[a+12>>2]+64>>2];a=J[a+4>>2]-J[a>>2]|0;if(a>>>0<12){break c}a=(a>>2>>>0)/3|0;b=0;while(1){c=Vf(e,P(b,3));if(!c){break c}b=b+1|0;if((a|0)!=(b|0)){continue}break}}return c|0}qa();B()}function rj(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0;e=J[a+4>>2];d=J[e>>2];a:{b=J[a+12>>2];c=J[b+28>>2]-J[b+24>>2]|0;f=c>>2;b:{if(f>>>0<=J[e+8>>2]-d>>2>>>0){break b}if((c|0)<0){break a}b=J[e+4>>2];c=oa(c);f=c+(f<<2)|0;g=c+(b-d&-4)|0;c=g;if((b|0)!=(d|0)){while(1){c=c-4|0;b=b-4|0;J[c>>2]=J[b>>2];if((b|0)!=(d|0)){continue}break}}J[e+8>>2]=f;J[e+4>>2]=g;J[e>>2]=c;if(!d){break b}na(d)}e=a+8|0;b=J[a+76>>2];c:{if(b){d=J[b>>2];if((d|0)==J[b+4>>2]){return 1}b=0;while(1){c=Wf(e,J[(b<<2)+d>>2]);if(!c){break c}f=J[a+76>>2];d=J[f>>2];b=b+1|0;if(b>>>0>2]-d>>2>>>0){continue}break}break c}c=1;a=J[a+12>>2];a=J[a+4>>2]-J[a>>2]|0;if(a>>>0<12){break c}a=(a>>2>>>0)/3|0;b=0;while(1){c=Wf(e,P(b,3));if(!c){break c}b=b+1|0;if((a|0)!=(b|0)){continue}break}}return c|0}qa();B()}function Ok(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;d=ba-16|0;ba=d;J[d+12>>2]=c;a:{if(!me(a,b,c)|K[J[a+8>>2]+24|0]!=3){break a}f=J[b+48>>2];b=oa(32);J[d>>2]=b;J[d+4>>2]=17;J[d+8>>2]=-2147483616;H[b+16|0]=K[1261];c=K[1257]|K[1258]<<8|(K[1259]<<16|K[1260]<<24);e=K[1253]|K[1254]<<8|(K[1255]<<16|K[1256]<<24);H[b+8|0]=e;H[b+9|0]=e>>>8;H[b+10|0]=e>>>16;H[b+11|0]=e>>>24;H[b+12|0]=c;H[b+13|0]=c>>>8;H[b+14|0]=c>>>16;H[b+15|0]=c>>>24;c=K[1249]|K[1250]<<8|(K[1251]<<16|K[1252]<<24);e=K[1245]|K[1246]<<8|(K[1247]<<16|K[1248]<<24);H[b|0]=e;H[b+1|0]=e>>>8;H[b+2|0]=e>>>16;H[b+3|0]=e>>>24;H[b+4|0]=c;H[b+5|0]=c>>>8;H[b+6|0]=c>>>16;H[b+7|0]=c>>>24;H[b+17|0]=0;b=jb(f,d+12|0,d,-1);if(H[d+11|0]<0){na(J[d>>2])}if((b|0)<=0){break a}J[a+44>>2]=b;g=1}ba=d+16|0;return g|0}function Oc(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0;i=ba-16|0;ba=i;e=J[b+4>>2];a:{b:{if(!e){h=b+4|0;g=h;break b}f=J[c>>2];while(1){g=e;c=J[e+16>>2];if((c|0)>(f|0)){h=g;e=J[g>>2];if(e){continue}break b}if((c|0)>=(f|0)){f=g;b=0;break a}e=J[g+4>>2];if(e){continue}break}h=g+4|0}f=oa(32);c=J[d>>2];j=f+24|0;e=j;J[e>>2]=0;J[e+4>>2]=0;J[f+16>>2]=c;k=f+20|0;J[k>>2]=e;e=J[d+4>>2];d=d+8|0;if((e|0)!=(d|0)){while(1){c=e+16|0;Qg(i+8|0,k,j,c,c);c=J[e+4>>2];c:{if(c){while(1){e=c;c=J[e>>2];if(c){continue}break c}}while(1){c=e;e=J[e+8>>2];if((c|0)!=J[e>>2]){continue}break}}if((d|0)!=(e|0)){continue}break}}J[f+8>>2]=g;J[f>>2]=0;J[f+4>>2]=0;J[h>>2]=f;e=f;c=J[J[b>>2]>>2];if(c){J[b>>2]=c;e=J[h>>2]}sb(J[b+4>>2],e);J[b+8>>2]=J[b+8>>2]+1;b=1}H[a+4|0]=b;J[a>>2]=f;ba=i+16|0}function Me(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;c=ba-16|0;ba=c;Aa(J[a+8>>2]-J[a+4>>2]>>2,b);e=J[a+4>>2];if((e|0)!=J[a+8>>2]){h=c+13|0;i=c+14|0;j=c+15|0;k=c+16|0;while(1){e=J[J[J[a+32>>2]+8>>2]+(J[(g<<2)+e>>2]<<2)>>2];H[c+15|0]=J[e+56>>2];d=J[b+20>>2];a:{if(!!J[b+16>>2]&(d|0)>=0|(d|0)>0){break a}sa(b,J[b+4>>2],c+15|0,k);d=J[b+20>>2];f=J[b+16>>2];H[c+14|0]=J[e+28>>2];if(!!f&(d|0)>=0|(d|0)>0){break a}sa(b,J[b+4>>2],c+14|0,j);d=J[b+20>>2];f=J[b+16>>2];H[c+13|0]=K[e+24|0];if(!!f&(d|0)>=0|(d|0)>0){break a}sa(b,J[b+4>>2],c+13|0,i);d=J[b+20>>2];f=J[b+16>>2];H[c+12|0]=K[e+32|0];if(!!f&(d|0)>=0|(d|0)>0){break a}sa(b,J[b+4>>2],c+12|0,h)}Aa(J[e+60>>2],b);g=g+1|0;e=J[a+4>>2];if(g>>>0>2]-e>>2>>>0){continue}break}}ba=c+16|0;return 1}function eb(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;g=ba-16|0;ba=g;a:{b:{c=J[a+4>>2];c:{if((c|0)!=J[a+8>>2]){J[c>>2]=J[a+12>>2];c=c+4|0;J[a+4>>2]=c;break c}e=J[a>>2];c=c-e|0;h=c>>2;d=h+1|0;if(d>>>0>=1073741824){break b}f=c>>>1|0;d=c>>>0>=2147483644?1073741823:d>>>0>>0?f:d;if(d){if(d>>>0>=1073741824){break a}f=oa(d<<2)}else{f=0}h=f+(h<<2)|0;J[h>>2]=J[a+12>>2];i=d<<2;d=ta(f,e,c);J[a+8>>2]=i+d;c=h+4|0;J[a+4>>2]=c;J[a>>2]=d;if(!e){break c}na(e);c=J[a+4>>2]}f=c;c=J[a>>2];J[g+12>>2]=f-c;e=J[b+20>>2];d:{if(!!J[b+16>>2]&(e|0)>=0|(e|0)>0){break d}sa(b,J[b+4>>2],g+12|0,g+16|0);c=J[a>>2];e=J[b+20>>2];if(!!J[b+16>>2]&(e|0)>=0|(e|0)>0){break d}sa(b,J[b+4>>2],c,J[g+12>>2]+c|0);c=J[a>>2]}J[a+12>>2]=0;J[a+16>>2]=0;J[a+4>>2]=c;ba=g+16|0;return}qa();B()}xa();B()}function ta(a,b,c){var d=0,e=0;a:{if((a|0)==(b|0)){break a}e=a+c|0;if(b-e>>>0<=0-(c<<1)>>>0){return ua(a,b,c)}d=(a^b)&3;b:{c:{if(a>>>0>>0){if(d){d=a;break b}if(!(a&3)){d=a;break c}d=a;while(1){if(!c){break a}H[d|0]=K[b|0];b=b+1|0;c=c-1|0;d=d+1|0;if(d&3){continue}break}break c}d:{if(d){break d}if(e&3){while(1){if(!c){break a}c=c-1|0;d=c+a|0;H[d|0]=K[b+c|0];if(d&3){continue}break}}if(c>>>0<=3){break d}while(1){c=c-4|0;J[c+a>>2]=J[b+c>>2];if(c>>>0>3){continue}break}}if(!c){break a}while(1){c=c-1|0;H[c+a|0]=K[b+c|0];if(c){continue}break}break a}if(c>>>0<=3){break b}while(1){J[d>>2]=J[b>>2];b=b+4|0;d=d+4|0;c=c-4|0;if(c>>>0>3){continue}break}}if(!c){break a}while(1){H[d|0]=K[b|0];d=d+1|0;b=b+1|0;c=c-1|0;if(c){continue}break}}return a}function hg(a,b,c){var d=0,e=0,f=0,g=0;a:{b=P(b,3);if((b|0)==-1){break a}b:{e=J[a+12>>2];f=J[e+12>>2];d=b<<2;c:{if(J[f+d>>2]==-1){break c}a=J[a+152>>2];e=J[e>>2];if(J[a+(J[e+d>>2]<<2)>>2]!=-1){break b}d=b+1|0;b=(d>>>0)%3|0?d:b-2|0;if((b|0)==-1){break a}d=b<<2;if(J[d+f>>2]==-1){break c}if(J[a+(J[d+e>>2]<<2)>>2]!=-1){break b}d=b+1|0;b=(d>>>0)%3|0?d:b-2|0;if((b|0)==-1){break a}d=b<<2;if(J[d+f>>2]==-1){break c}if(J[a+(J[d+e>>2]<<2)>>2]!=-1){break b}g=1;a=b+1|0;b=(a>>>0)%3|0?a:b-2|0}J[c>>2]=b;return g}while(1){d:{a=b;e:{if((b>>>0)%3|0){b=a-1|0;break e}b=a+2|0;if((b|0)==-1){break d}}b=J[(b<<2)+f>>2];if((b|0)==-1){break d}b=b+((b>>>0)%3|0?-1:2)|0;if((b|0)!=-1){continue}}break}J[c>>2]=a+((a>>>0)%3|0?-1:2);return 0}J[c>>2]=-1;return 0}function Se(a,b,c){a:{switch(b-9|0){case 0:b=J[c>>2];J[c>>2]=b+4;J[a>>2]=J[b>>2];return;case 6:b=J[c>>2];J[c>>2]=b+4;b=I[b>>1];J[a>>2]=b;J[a+4>>2]=b>>31;return;case 7:b=J[c>>2];J[c>>2]=b+4;J[a>>2]=L[b>>1];J[a+4>>2]=0;return;case 8:b=J[c>>2];J[c>>2]=b+4;b=H[b|0];J[a>>2]=b;J[a+4>>2]=b>>31;return;case 9:b=J[c>>2];J[c>>2]=b+4;J[a>>2]=K[b|0];J[a+4>>2]=0;return;case 16:b=J[c>>2]+7&-8;J[c>>2]=b+8;O[a>>3]=O[b>>3];return;case 17:Qe(a,c);default:return;case 1:case 4:case 14:b=J[c>>2];J[c>>2]=b+4;b=J[b>>2];J[a>>2]=b;J[a+4>>2]=b>>31;return;case 2:case 5:case 11:case 15:b=J[c>>2];J[c>>2]=b+4;J[a>>2]=J[b>>2];J[a+4>>2]=0;return;case 3:case 10:case 12:case 13:break a}}b=J[c>>2]+7&-8;J[c>>2]=b+8;c=J[b+4>>2];J[a>>2]=J[b>>2];J[a+4>>2]=c}function _e(a,b,c,d,e,f){var g=0;g=ba-80|0;ba=g;a:{if((f|0)>=16384){Ea(g+32|0,b,c,d,e,0,0,0,2147352576);d=J[g+40>>2];e=J[g+44>>2];b=J[g+32>>2];c=J[g+36>>2];if(f>>>0<32767){f=f-16383|0;break a}Ea(g+16|0,b,c,d,e,0,0,0,2147352576);f=((f|0)>=49149?49149:f)-32766|0;d=J[g+24>>2];e=J[g+28>>2];b=J[g+16>>2];c=J[g+20>>2];break a}if((f|0)>-16383){break a}Ea(g- -64|0,b,c,d,e,0,0,0,7471104);d=J[g+72>>2];e=J[g+76>>2];b=J[g+64>>2];c=J[g+68>>2];if(f>>>0>4294934644){f=f+16269|0;break a}Ea(g+48|0,b,c,d,e,0,0,0,7471104);f=((f|0)<=-48920?-48920:f)+32538|0;d=J[g+56>>2];e=J[g+60>>2];b=J[g+48>>2];c=J[g+52>>2]}Ea(g,b,c,d,e,0,0,0,f+16383<<16);b=J[g+12>>2];J[a+8>>2]=J[g+8>>2];J[a+12>>2]=b;b=J[g+4>>2];J[a>>2]=J[g>>2];J[a+4>>2]=b;ba=g+80|0}function bd(a,b,c){var d=0,e=0,f=0;d=ba+-64|0;ba=d;f=J[a>>2];e=J[f-4>>2];f=J[f-8>>2];J[d+32>>2]=0;J[d+36>>2]=0;J[d+40>>2]=0;J[d+44>>2]=0;J[d+48>>2]=0;J[d+52>>2]=0;H[d+55|0]=0;H[d+56|0]=0;H[d+57|0]=0;H[d+58|0]=0;H[d+59|0]=0;H[d+60|0]=0;H[d+61|0]=0;H[d+62|0]=0;J[d+24>>2]=0;J[d+28>>2]=0;J[d+20>>2]=0;J[d+16>>2]=b;J[d+12>>2]=a;J[d+8>>2]=c;a=a+f|0;b=0;a:{if(pb(e,c,0)){J[d+56>>2]=1;da[J[J[e>>2]+20>>2]](e,d+8|0,a,a,1,0);b=J[d+32>>2]==1?a:0;break a}da[J[J[e>>2]+24>>2]](e,d+8|0,a,1,0);b:{switch(J[d+44>>2]){case 0:b=J[d+48>>2]==1?J[d+36>>2]==1?J[d+40>>2]==1?J[d+28>>2]:0:0:0;break a;case 1:break b;default:break a}}if(J[d+32>>2]!=1){if(J[d+48>>2]|J[d+36>>2]!=1|J[d+40>>2]!=1){break a}}b=J[d+24>>2]}ba=d- -64|0;return b}function Ca(a,b){var c=0,d=0,e=0,f=0;c=J[a>>2];a:{if(b){b=J[c+12>>2];d=J[c+8>>2]+1|0;b=d?b:b+1|0;J[c+8>>2]=d;J[c+12>>2]=b;b=J[a+28>>2];J[a+24>>2]=J[a+24>>2]|1<>2];d=J[c>>2]+1|0;b=d?b:b+1|0;J[c>>2]=d;J[c+4>>2]=b;b=J[a+28>>2]}b=b+1|0;J[a+28>>2]=b;b:{c:{if((b|0)==32){b=J[a+16>>2];d:{if((b|0)!=J[a+20>>2]){J[b>>2]=J[a+24>>2];J[a+16>>2]=b+4;break d}e=b;b=J[a+12>>2];c=e-b|0;f=c>>2;d=f+1|0;if(d>>>0>=1073741824){break c}e=c>>>1|0;d=c>>>0>=2147483644?1073741823:d>>>0>>0?e:d;if(d){if(d>>>0>=1073741824){break b}e=oa(d<<2)}else{e=0}f=e+(f<<2)|0;J[f>>2]=J[a+24>>2];c=ta(e,b,c);J[a+20>>2]=c+(d<<2);J[a+16>>2]=f+4;J[a+12>>2]=c;if(!b){break d}na(b)}J[a+24>>2]=0;J[a+28>>2]=0}return}qa();B()}xa();B()}function pa(a,b,c){var d=0,e=0,f=0,g=0;a:{if(!c){break a}H[a|0]=b;d=a+c|0;H[d-1|0]=b;if(c>>>0<3){break a}H[a+2|0]=b;H[a+1|0]=b;H[d-3|0]=b;H[d-2|0]=b;if(c>>>0<7){break a}H[a+3|0]=b;H[d-4|0]=b;if(c>>>0<9){break a}d=0-a&3;e=d+a|0;b=P(b&255,16843009);J[e>>2]=b;d=c-d&-4;c=d+e|0;J[c-4>>2]=b;if(d>>>0<9){break a}J[e+8>>2]=b;J[e+4>>2]=b;J[c-8>>2]=b;J[c-12>>2]=b;if(d>>>0<25){break a}J[e+24>>2]=b;J[e+20>>2]=b;J[e+16>>2]=b;J[e+12>>2]=b;J[c-16>>2]=b;J[c-20>>2]=b;J[c-24>>2]=b;J[c-28>>2]=b;g=e&4|24;c=d-g|0;if(c>>>0<32){break a}d=Hl(b,0,1,1);f=ca;b=e+g|0;while(1){J[b+24>>2]=d;J[b+28>>2]=f;J[b+16>>2]=d;J[b+20>>2]=f;J[b+8>>2]=d;J[b+12>>2]=f;J[b>>2]=d;J[b+4>>2]=f;b=b+32|0;c=c-32|0;if(c>>>0>31){continue}break}}return a}function De(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;a:{g=a+16|0;f=J[g>>2];b:{if(!f){break b}i=J[b>>2];b=g;while(1){h=(i|0)>J[f+16>>2];b=h?b:f;f=J[(h?f+4|0:f)>>2];if(f){continue}break}if((b|0)==(g|0)|(i|0)>2]){break b}f=J[b+24>>2];if(!f){break b}m=b+20|0;b=K[c+11|0];g=b<<24>>24<0;i=g?J[c>>2]:c;b=g?J[c+4>>2]:b;while(1){g=K[f+27|0];h=g<<24>>24<0;g=h?J[f+20>>2]:g;k=g>>>0>>0;c:{d:{e:{f:{g:{h:{j=k?g:b;if(j){h=h?J[f+16>>2]:f+16|0;l=Ba(i,h,j);if(l){break h}if(b>>>0>=g>>>0){break g}break c}if(b>>>0>=g>>>0){break f}break c}if((l|0)<0){break c}}g=Ba(h,i,j);if(g){break e}}if(k){break d}break a}if((g|0)<0){break d}break a}f=f+4|0}f=J[f>>2];if(f){continue}break}}Be(a,c,d,e);return}Be(m,c,d,e)}function jb(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;f=a+16|0;e=J[f>>2];a:{if(!e){break a}g=J[b>>2];b=f;while(1){h=(g|0)>J[e+16>>2];b=h?b:e;e=J[(h?e+4|0:e)>>2];if(e){continue}break}if((b|0)==(f|0)|(g|0)>2]){break a}e=J[b+24>>2];if(!e){break a}g=b+20|0;b=K[c+11|0];f=b<<24>>24<0;h=f?J[c>>2]:c;b=f?J[c+4>>2]:b;while(1){f=K[e+27|0];i=f<<24>>24<0;f=i?J[e+20>>2]:f;k=f>>>0>>0;b:{c:{d:{e:{f:{g:{j=k?f:b;if(j){i=i?J[e+16>>2]:e+16|0;l=Ba(h,i,j);if(l){break g}if(b>>>0>=f>>>0){break f}break b}if(b>>>0>=f>>>0){break e}break b}if((l|0)<0){break b}}f=Ba(i,h,j);if(f){break d}}if(k){break c}return Bb(g,c,d)}if((f|0)<0){break c}return Bb(g,c,d)}e=e+4|0}e=J[e>>2];if(e){continue}break}}return Bb(a,c,d)}function Fd(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0;a:{e=J[a+20>>2];b:{if(!((!J[a+16>>2]&(e|0)<=0|(e|0)<0)&(!!b&(c|0)>=0|(c|0)>0))){break b}H[a+24|0]=d;e=b+7|0;c=e>>>0<7?c+1|0:c;e=(c&7)<<29|e>>>3;J[a+16>>2]=e;J[a+20>>2]=c>>>3;f=J[a+4>>2];h=J[a>>2];c=f-h|0;b=c+8|0;d=d?b:c;b=d+e|0;c:{if(b>>>0>c>>>0){e=b-c|0;g=J[a+8>>2];if(e>>>0<=g-f>>>0){i=a,j=pa(f,0,e)+e|0,J[i+4>>2]=j;break c}if((b|0)<0){break a}f=g-h|0;g=f<<1;f=f>>>0>=1073741823?2147483647:b>>>0>>0?g:b;g=oa(f);pa(g+c|0,0,e);c=ta(g,h,c);J[a+8>>2]=c+f;J[a+4>>2]=b+c;J[a>>2]=c;if(!h){break c}na(h);break c}if(b>>>0>=c>>>0){break c}J[a+4>>2]=b+h}c=J[a>>2];b=oa(8);J[b+4>>2]=0;J[b>>2]=c+d;c=J[a+12>>2];J[a+12>>2]=b;if(!c){break b}na(c)}return}qa();B()}function Ce(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;e=a+16|0;d=J[e>>2];a:{if(!d){break a}f=J[b>>2];b=e;while(1){g=(f|0)>J[d+16>>2];b=g?b:d;d=J[(g?d+4|0:d)>>2];if(d){continue}break}if((b|0)==(e|0)|(f|0)>2]){break a}d=J[b+24>>2];if(!d){break a}f=b+20|0;b=K[c+11|0];e=b<<24>>24<0;g=e?J[c>>2]:c;b=e?J[c+4>>2]:b;while(1){e=K[d+27|0];h=e<<24>>24<0;e=h?J[d+20>>2]:e;j=e>>>0>>0;b:{c:{d:{e:{f:{g:{i=j?e:b;if(i){h=h?J[d+16>>2]:d+16|0;k=Ba(g,h,i);if(k){break g}if(b>>>0>=e>>>0){break f}break b}if(b>>>0>=e>>>0){break e}break b}if((k|0)<0){break b}}e=Ba(h,g,i);if(e){break d}}if(j){break c}return Dd(f,c)}if((e|0)<0){break c}return Dd(f,c)}d=d+4|0}d=J[d>>2];if(d){continue}break}}return Dd(a,c)}function td(a,b,c){var d=0,e=0,f=0,g=0;Aa(J[c+8>>2],b);e=J[c>>2];g=c+4|0;if((e|0)!=(g|0)){while(1){if(!hf(b,e+16|0)){return}d=J[e+32>>2]-J[e+28>>2]|0;Aa(d,b);f=J[b+20>>2];if(!J[b+16>>2]&(f|0)<=0|(f|0)<0){f=J[e+28>>2];sa(b,J[b+4>>2],f,d+f|0)}f=J[e+4>>2];a:{if(f){while(1){d=f;f=J[d>>2];if(f){continue}break a}}while(1){d=J[e+8>>2];f=J[d>>2]!=(e|0);e=d;if(f){continue}break}}e=d;if((d|0)!=(g|0)){continue}break}}Aa(J[c+20>>2],b);d=J[c+12>>2];c=c+16|0;if((d|0)==(c|0)){return}while(1){if(!hf(b,d+16|0)){return}td(a,b,J[d+28>>2]);f=d;e=J[d+4>>2];b:{if(e){while(1){d=e;e=J[d>>2];if(e){continue}break b}}while(1){d=J[f+8>>2];e=J[d>>2]!=(f|0);f=d;if(e){continue}break}}if((c|0)!=(d|0)){continue}break}}function kl(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;j=J[b+4>>2]-J[b>>2]>>2;f=J[a+8>>2];i=K[f+24|0];d=i;g=ba+-64|0;ba=g;e=Lc(g);h=P(d,J[3712]);Nd(e,J[J[a+8>>2]+56>>2],0,d,5,h,h>>31);e=jg(oa(96),e);Kd(e,j);d=J[a+32>>2];J[a+32>>2]=e;if(d){Ka(d)}a:{if(!c){break a}d=J[a+32>>2];H[d+84|0]=0;h=J[d+68>>2];e=J[d+72>>2]-h>>2;if(e>>>0>>0){Ma(d+68|0,c-e|0,2736);break a}if(c>>>0>=e>>>0){break a}J[d+72>>2]=h+(c<<2)}ba=g- -64|0;c=J[b>>2];d=J[b+4>>2];if((c|0)==(d|0)){return 1}a=J[a+32>>2];g=J[J[a>>2]>>2]+J[a+48>>2]|0;b=0;while(1){a=J[c>>2];if(!K[f+84|0]){a=J[J[f+68>>2]+(a<<2)>>2]}a=$c(f,a,H[f+24|0],g+(b<<2)|0);if(a){b=b+i|0;c=c+4|0;if((d|0)!=(c|0)){continue}}break}return a|0}function Rb(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0;f=c-b|0;h=f>>2;d=J[a+8>>2];e=J[a>>2];if(h>>>0<=d-e>>2>>>0){d=J[a+4>>2];g=d-e|0;f=g+b|0;i=g>>2;g=i>>>0>>0?f:c;if((g|0)!=(b|0)){while(1){J[e>>2]=J[b>>2];e=e+4|0;b=b+4|0;if((g|0)!=(b|0)){continue}break}}if(h>>>0>i>>>0){if((c|0)!=(g|0)){while(1){J[d>>2]=J[f>>2];d=d+4|0;f=f+4|0;if((f|0)!=(c|0)){continue}break}}J[a+4>>2]=d;return}J[a+4>>2]=e;return}if(e){J[a+4>>2]=e;na(e);J[a+8>>2]=0;J[a>>2]=0;J[a+4>>2]=0;d=0}a:{if((f|0)<0){break a}e=d>>>1|0;d=d>>>0>=2147483644?1073741823:e>>>0>h>>>0?e:h;if(d>>>0>=1073741824){break a}e=d<<2;d=oa(e);J[a>>2]=d;J[a+8>>2]=d+e;if((b|0)!=(c|0)){c=b;b=(f-4&-4)+4|0;d=ua(d,c,b)+b|0}J[a+4>>2]=d;return}qa();B()}function Na(a,b,c){var d=0,e=0,f=0;e=ba-16|0;ba=e;J[a+4>>2]=0;a:{b:{if(!b){break b}f=J[a+8>>2];d=f<<5;c:{if(d>>>0>=b>>>0){J[a+4>>2]=b;break c}J[e+8>>2]=0;J[e>>2]=0;J[e+4>>2]=0;if((b|0)<0){break a}if(d>>>0<=1073741822){f=f<<6;d=b+31&-32;d=d>>>0>>0?f:d}else{d=2147483647}wc(e,d);f=J[a>>2];J[a>>2]=J[e>>2];J[e>>2]=f;d=J[a+4>>2];J[a+4>>2]=b;J[e+4>>2]=d;d=J[a+8>>2];J[a+8>>2]=J[e+8>>2];J[e+8>>2]=d;if(!f){break c}na(f)}d=b>>>5|0;a=J[a>>2];if(K[c|0]){if(b>>>0>=32){pa(a,255,d<<2)}if((b&-32)==(b|0)){break b}a=a+(d<<2)|0;J[a>>2]=J[a>>2]|-1>>>32-(b&31);break b}if(b>>>0>=32){pa(a,0,d<<2)}if((b&-32)==(b|0)){break b}a=a+(d<<2)|0;J[a>>2]=J[a>>2]&(-1>>>32-(b&31)^-1)}ba=e+16|0;return}qa();B()}function kc(a,b){var c=0,d=0,e=0,f=0,g=0,h=0;h=ba-16|0;ba=h;a:{b:{c=J[a+8>>2];c:{if((c|0)!=J[a+12>>2]){J[c>>2]=b;J[a+8>>2]=c+4;break c}f=c;c=J[a+4>>2];e=f-c|0;g=e>>2;d=g+1|0;if(d>>>0>=1073741824){break b}f=e>>>1|0;d=e>>>0>=2147483644?1073741823:d>>>0>>0?f:d;if(d){if(d>>>0>=1073741824){break a}f=oa(d<<2)}else{f=0}g=f+(g<<2)|0;J[g>>2]=b;e=ta(f,c,e);J[a+12>>2]=e+(d<<2);J[a+8>>2]=g+4;J[a+4>>2]=e;if(!c){break c}na(c)}c=J[a+16>>2];e=J[a+20>>2]-c>>2;d:{if((e|0)>(b|0)){break d}J[h+12>>2]=-1;d=b+1|0;if(d>>>0>e>>>0){jc(a+16|0,d-e|0,h+12|0);c=J[a+16>>2];break d}if(d>>>0>=e>>>0){break d}J[a+20>>2]=(d<<2)+c}J[(b<<2)+c>>2]=(J[a+8>>2]-J[a+4>>2]>>2)-1;ba=h+16|0;return}qa();B()}xa();B()}function gh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0;d=ba-48|0;ba=d;J[d+40>>2]=J[a- -64>>2];c=J[b+20>>2];if(!J[b+16>>2]&(c|0)<=0|(c|0)<0){sa(b,J[b+4>>2],d+40|0,d+44|0)}c=d+8|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;za(c);if(J[d+40>>2]>0){f=1;while(1){g=f;f=J[J[a+60>>2]+(e>>>3&536870908)>>2]>>>e|0;Ca(c,(g^f^-1)&1);f=f&1;e=e+1|0;if((e|0)>2]){continue}break}}ya(c,b);J[d+44>>2]=J[a+12>>2];e=J[b+20>>2];a:{if(!!J[b+16>>2]&(e|0)>=0|(e|0)>0){break a}f=d+48|0;sa(b,J[b+4>>2],d+44|0,f);e=J[b+20>>2];g=J[b+16>>2];J[d+44>>2]=J[a+24>>2];if(!!g&(e|0)>=0|(e|0)>0){break a}sa(b,J[b+4>>2],d+44|0,f)}wa(c);ba=d+48|0;return 1}function rh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0;d=ba-48|0;ba=d;J[d+40>>2]=J[a+80>>2];c=J[b+20>>2];if(!J[b+16>>2]&(c|0)<=0|(c|0)<0){sa(b,J[b+4>>2],d+40|0,d+44|0)}c=d+8|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;za(c);if(J[d+40>>2]>0){f=1;while(1){g=f;f=J[J[a+76>>2]+(e>>>3&536870908)>>2]>>>e|0;Ca(c,(g^f^-1)&1);f=f&1;e=e+1|0;if((e|0)>2]){continue}break}}ya(c,b);J[d+44>>2]=J[a+12>>2];e=J[b+20>>2];a:{if(!!J[b+16>>2]&(e|0)>=0|(e|0)>0){break a}f=d+48|0;sa(b,J[b+4>>2],d+44|0,f);e=J[b+20>>2];g=J[b+16>>2];J[d+44>>2]=J[a+16>>2];if(!!g&(e|0)>=0|(e|0)>0){break a}sa(b,J[b+4>>2],d+44|0,f)}wa(c);ba=d+48|0;return 1}function Ic(a,b){var c=0,d=0,e=0,f=0,g=0;a:{b:{c:{e=J[a>>2];f=J[a+4>>2]-e>>2;c=f+1|0;if(c>>>0<1073741824){e=J[a+8>>2]-e|0;g=e>>>1|0;c=e>>>0>=2147483644?1073741823:c>>>0>>0?g:c;if(c){if(c>>>0>=1073741824){break c}d=oa(c<<2)}e=J[b>>2];J[b>>2]=0;b=(f<<2)+d|0;J[b>>2]=e;c=(c<<2)+d|0;e=b+4|0;d=J[a+4>>2];f=J[a>>2];if((d|0)==(f|0)){break b}while(1){d=d-4|0;g=J[d>>2];J[d>>2]=0;b=b-4|0;J[b>>2]=g;if((d|0)!=(f|0)){continue}break}J[a+8>>2]=c;c=J[a+4>>2];J[a+4>>2]=e;d=J[a>>2];J[a>>2]=b;if((c|0)==(d|0)){break a}while(1){c=c-4|0;a=J[c>>2];J[c>>2]=0;if(a){da[J[J[a>>2]+4>>2]](a)}if((c|0)!=(d|0)){continue}break}break a}qa();B()}xa();B()}J[a+8>>2]=c;J[a+4>>2]=e;J[a>>2]=b}if(d){na(d)}}function kd(a,b,c,d,e,f,g,h){var i=0,j=0,k=0;i=ba-16|0;ba=i;if((b^-1)+2147483631>>>0>=c>>>0){if(K[a+11|0]>>>7|0){k=J[a>>2]}else{k=a}if(b>>>0<1073741799){J[i+12>>2]=b<<1;J[i>>2]=b+c;c=ba-16|0;ba=c;ba=c+16|0;c=i+12|0;c=J[(M[i>>2]>2]?c:i)>>2];if(c>>>0>=11){j=c+16&-16;c=j-1|0;c=(c|0)==11?j:c}else{c=10}c=c+1|0}else{c=2147483631}Ac(i,c);c=J[i>>2];if(e){Ab(c,k,e)}if(g){Ab(c+e|0,h,g)}j=e+f|0;h=d-j|0;if((d|0)!=(j|0)){Ab((c+e|0)+g|0,(e+k|0)+f|0,h)}if((b|0)!=10){na(k)}J[a>>2]=c;J[a+8>>2]=J[a+8>>2]&-2147483648|J[i+4>>2]&2147483647;J[a+8>>2]=J[a+8>>2]|-2147483648;b=a;a=h+(e+g|0)|0;J[b+4>>2]=a;H[i+12|0]=0;H[a+c|0]=K[i+12|0];ba=i+16|0;return}gb();B()}function Lk(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0;J[b>>2]=1;f=b+8|0;c=J[b+8>>2];d=J[b+12>>2]-c|0;if(d>>>0<=4294967291){Gc(f,d+4|0);c=J[f>>2]}c=c+d|0;d=J[a+4>>2];H[c|0]=d;H[c+1|0]=d>>>8;H[c+2|0]=d>>>16;H[c+3|0]=d>>>24;c=J[a+8>>2];if((c|0)!=J[a+12>>2]){d=0;while(1){g=(d<<2)+c|0;c=J[b+8>>2];e=J[b+12>>2]-c|0;if(e>>>0<=4294967291){Gc(f,e+4|0);c=J[f>>2]}c=c+e|0;e=J[g>>2];H[c|0]=e;H[c+1|0]=e>>>8;H[c+2|0]=e>>>16;H[c+3|0]=e>>>24;d=d+1|0;c=J[a+8>>2];if(d>>>0>2]-c>>2>>>0){continue}break}}c=J[b+12>>2];b=J[b+8>>2];c=c-b|0;if(c>>>0<=4294967291){Gc(f,c+4|0);b=J[f>>2]}b=b+c|0;a=J[a+20>>2];H[b|0]=a;H[b+1|0]=a>>>8;H[b+2|0]=a>>>16;H[b+3|0]=a>>>24}function bb(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0;f=c-b|0;g=f>>2;d=J[a+8>>2];e=J[a>>2];if(g>>>0<=d-e>>2>>>0){f=J[a+4>>2]-e|0;d=f+b|0;h=f>>2;f=h>>>0>>0?d:c;i=f-b|0;if((b|0)!=(f|0)){ta(e,b,i)}if(g>>>0>h>>>0){b=J[a+4>>2];if((c|0)!=(f|0)){while(1){J[b>>2]=J[d>>2];b=b+4|0;d=d+4|0;if((d|0)!=(c|0)){continue}break}}J[a+4>>2]=b;return}J[a+4>>2]=e+i;return}if(e){J[a+4>>2]=e;na(e);J[a+8>>2]=0;J[a>>2]=0;J[a+4>>2]=0;d=0}a:{if((f|0)<0){break a}e=d>>>1|0;d=d>>>0>=2147483644?1073741823:e>>>0>g>>>0?e:g;if(d>>>0>=1073741824){break a}e=d<<2;d=oa(e);J[a>>2]=d;J[a+8>>2]=d+e;if((b|0)!=(c|0)){c=b;b=(f-4&-4)+4|0;d=ua(d,c,b)+b|0}J[a+4>>2]=d;return}qa();B()}function Xg(a,b,c){var d=0,e=0,f=0;d=ba-16|0;ba=d;J[d+12>>2]=b;b=oa(32);J[d>>2]=b;J[d+4>>2]=17;J[d+8>>2]=-2147483616;H[b+16|0]=K[1261];e=K[1257]|K[1258]<<8|(K[1259]<<16|K[1260]<<24);f=K[1253]|K[1254]<<8|(K[1255]<<16|K[1256]<<24);H[b+8|0]=f;H[b+9|0]=f>>>8;H[b+10|0]=f>>>16;H[b+11|0]=f>>>24;H[b+12|0]=e;H[b+13|0]=e>>>8;H[b+14|0]=e>>>16;H[b+15|0]=e>>>24;e=K[1249]|K[1250]<<8|(K[1251]<<16|K[1252]<<24);f=K[1245]|K[1246]<<8|(K[1247]<<16|K[1248]<<24);H[b|0]=f;H[b+1|0]=f>>>8;H[b+2|0]=f>>>16;H[b+3|0]=f>>>24;H[b+4|0]=e;H[b+5|0]=e>>>8;H[b+6|0]=e>>>16;H[b+7|0]=e>>>24;H[b+17|0]=0;Wg(a+4|0,d+12|0,d,c);if(H[d+11|0]<0){na(J[d>>2])}ba=d+16|0}function Ua(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0;a:{b:{if((a|0)==(b|0)){break b}J[c>>2]=J[a>>2];e=a+4|0;if((e|0)==(b|0)){break b}a=J[d>>2];g=J[a>>2];i=J[a+4>>2]-g>>3;a=c;while(1){d=J[e>>2];if(d>>>0>=i>>>0){break a}f=J[a>>2];if(f>>>0>=i>>>0){break a}j=a+4|0;c:{if(M[(d<<3)+g>>2]>2]){J[a+4>>2]=f;h=c;d:{if((a|0)==(c|0)){break d}while(1){k=J[e>>2];if(k>>>0>=i>>>0){break a}f=a-4|0;d=J[f>>2];if(d>>>0>=i>>>0){break a}h=a;if(M[(k<<3)+g>>2]>=M[(d<<3)+g>>2]){break d}J[a>>2]=d;a=f;if((c|0)!=(a|0)){continue}break}h=c}J[h>>2]=J[e>>2];break c}J[j>>2]=d}a=j;e=e+4|0;if((e|0)!=(b|0)){continue}break}}return}ra();B()}function mk(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0;f=ba-32|0;ba=f;d=d-e|0;if((d|0)>0){i=a+8|0;k=0-e<<2;while(1){j=d<<2;g=j+b|0;h=g+k|0;l=J[h>>2];h=J[h+4>>2];m=J[g+4>>2];J[f+16>>2]=J[g>>2];J[f+20>>2]=m;J[f+8>>2]=l;J[f+12>>2]=h;Ya(f+24|0,i,f+16|0,f+8|0);g=c+j|0;J[g>>2]=J[f+24>>2];J[g+4>>2]=J[f+28>>2];d=d-e|0;if((d|0)>0){continue}break}}d=e>>>0>1073741823?-1:e<<2;d=pa(oa(d),0,d);e=J[d>>2];g=J[d+4>>2];i=J[b+4>>2];J[f+16>>2]=J[b>>2];J[f+20>>2]=i;J[f+8>>2]=e;J[f+12>>2]=g;Ya(f+24|0,a+8|0,f+16|0,f+8|0);J[c>>2]=J[f+24>>2];J[c+4>>2]=J[f+28>>2];na(d);ba=f+32|0;return 1}function qk(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;g=ba-32|0;ba=g;J[a+48>>2]=f;i=1;a:{d=J[a+40>>2];d=J[d+4>>2]-J[d>>2]|0;b:{if((d|0)<4){break b}l=a+44|0;m=a+8|0;f=d>>>2|0;while(1){d=J[a+40>>2];i=J[d>>2];h=J[d+4>>2]-i>>2;d=f-1|0;if(h>>>0<=d>>>0){break a}i=lh(l,J[i+(d<<2)>>2],b,d);if(!i){break b}h=J[a+52>>2];n=J[a+56>>2];j=P(d,e)<<2;k=j+b|0;o=J[k+4>>2];J[g+16>>2]=J[k>>2];J[g+20>>2]=o;J[g+8>>2]=h;J[g+12>>2]=n;Ya(g+24|0,m,g+16|0,g+8|0);h=c+j|0;J[h>>2]=J[g+24>>2];J[h+4>>2]=J[g+28>>2];h=f>>>0>1;f=d;if(h){continue}break}}ba=g+32|0;return i|0}ra();B()}function Ck(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;g=ba-32|0;ba=g;J[a+48>>2]=f;i=1;a:{d=J[a+40>>2];d=J[d+4>>2]-J[d>>2]|0;b:{if((d|0)<4){break b}l=a+44|0;m=a+8|0;f=d>>>2|0;while(1){d=J[a+40>>2];i=J[d>>2];h=J[d+4>>2]-i>>2;d=f-1|0;if(h>>>0<=d>>>0){break a}i=qh(l,J[i+(d<<2)>>2],b,d);if(!i){break b}h=J[a+52>>2];n=J[a+56>>2];j=P(d,e)<<2;k=j+b|0;o=J[k+4>>2];J[g+16>>2]=J[k>>2];J[g+20>>2]=o;J[g+8>>2]=h;J[g+12>>2]=n;Ya(g+24|0,m,g+16|0,g+8|0);h=c+j|0;J[h>>2]=J[g+24>>2];J[h+4>>2]=J[g+28>>2];h=f>>>0>1;f=d;if(h){continue}break}}ba=g+32|0;return i|0}ra();B()}function hi(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;cf(a,b,c);e=J[a+96>>2];a=J[a+100>>2];a:{if((e|0)==(a|0)){break a}d=(a-e|0)/12|0;f=d>>>0<=1?1:d;g=f&1;a=J[b>>2];c=0;if(d>>>0>=2){f=f&-2;d=0;while(1){b=P(c,12)+e|0;J[b>>2]=J[a+(J[b>>2]<<2)>>2];J[b+4>>2]=J[a+(J[b+4>>2]<<2)>>2];J[b+8>>2]=J[a+(J[b+8>>2]<<2)>>2];b=P(c|1,12)+e|0;J[b>>2]=J[a+(J[b>>2]<<2)>>2];J[b+4>>2]=J[a+(J[b+4>>2]<<2)>>2];J[b+8>>2]=J[a+(J[b+8>>2]<<2)>>2];c=c+2|0;d=d+2|0;if((f|0)!=(d|0)){continue}break}}if(!g){break a}b=P(c,12)+e|0;J[b>>2]=J[a+(J[b>>2]<<2)>>2];J[b+4>>2]=J[a+(J[b+4>>2]<<2)>>2];J[b+8>>2]=J[a+(J[b+8>>2]<<2)>>2]}}function Tg(a,b){var c=0,d=0,e=0,f=0;f=ba-16|0;ba=f;c=oa(16);J[f>>2]=c;J[f+4>>2]=15;J[f+8>>2]=-2147483632;d=K[1587]|K[1588]<<8|(K[1589]<<16|K[1590]<<24);e=K[1583]|K[1584]<<8|(K[1585]<<16|K[1586]<<24);H[c+7|0]=e;H[c+8|0]=e>>>8;H[c+9|0]=e>>>16;H[c+10|0]=e>>>24;H[c+11|0]=d;H[c+12|0]=d>>>8;H[c+13|0]=d>>>16;H[c+14|0]=d>>>24;d=K[1580]|K[1581]<<8|(K[1582]<<16|K[1583]<<24);e=K[1576]|K[1577]<<8|(K[1578]<<16|K[1579]<<24);H[c|0]=e;H[c+1|0]=e>>>8;H[c+2|0]=e>>>16;H[c+3|0]=e>>>24;H[c+4|0]=d;H[c+5|0]=d>>>8;H[c+6|0]=d>>>16;H[c+7|0]=d>>>24;H[c+15|0]=0;vb(a+4|0,f,b);if(H[f+11|0]<0){na(J[f>>2])}ba=f+16|0}function Gi(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;a=ba-16|0;ba=a;a:{if(!b){break a}J[a+8>>2]=0;J[a>>2]=0;J[a+4>>2]=0;h=b+96|0;g=J[b+96>>2];e=(J[b+100>>2]-g|0)/12|0;b:{if(e>>>0>>0){of(h,c-e|0,a);break b}if(c>>>0>>0){J[b+100>>2]=g+P(c,12)}if(!c){break a}}g=J[h>>2];e=0;while(1){i=P(e,12);f=i+d|0;j=J[f>>2];k=J[f+8>>2];l=J[f+4>>2];f=(J[b+100>>2]-g|0)/12|0;c:{if(f>>>0>e>>>0){e=e+1|0;break c}J[a+8>>2]=0;J[a>>2]=0;J[a+4>>2]=0;e=e+1|0;of(h,e-f|0,a);g=J[h>>2]}f=g+i|0;J[f+8>>2]=k;J[f+4>>2]=l;J[f>>2]=j;if((c|0)!=(e|0)){continue}break}}ba=a+16|0;return(b|0)!=0|0}function Hb(a,b,c,d,e,f,g,h){var i=0,j=0,k=0,l=0;i=1;j=d&2147483647;l=j;k=(j|0)==2147418112;a:{if(k&!c?a|b:k&(c|0)!=0|j>>>0>2147418112){break a}j=h&2147483647;k=(j|0)==2147418112;if(k&!g?e|f:k&(g|0)!=0|j>>>0>2147418112){break a}if(!(a|e|(c|g)|(b|f|(j|l)))){return 0}i=d&h;if((i|0)>0|(i|0)>=0){i=-1;if((c|0)==(g|0)&(d|0)==(h|0)?(b|0)==(f|0)&a>>>0>>0|b>>>0>>0:c>>>0>>0&(d|0)<=(h|0)|(d|0)<(h|0)){break a}return(a^e|c^g|(b^f|d^h))!=0}i=-1;if((c|0)==(g|0)&(d|0)==(h|0)?(b|0)==(f|0)&a>>>0>e>>>0|b>>>0>f>>>0:c>>>0>g>>>0&(d|0)>=(h|0)|(d|0)>(h|0)){break a}i=(a^e|c^g|(b^f|d^h))!=0}return i}function Jb(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0;J[a+8>>2]=0;J[a>>2]=0;J[a+4>>2]=0;a:{b:{if(b){if(b>>>0>=357913942){break b}b=P(b,12);d=oa(b);J[a+4>>2]=d;J[a>>2]=d;e=b+d|0;J[a+8>>2]=e;f=J[c+4>>2];g=J[c>>2];c:{if((f|0)==(g|0)){b=b-12|0;pa(d,0,(b-((b>>>0)%12|0)|0)+12|0);break c}h=f-g|0;if((h|0)<0){break a}i=h&-4;while(1){J[d+8>>2]=0;J[d>>2]=0;J[d+4>>2]=0;b=oa(h);J[d>>2]=b;J[d+8>>2]=b+i;c=g;while(1){J[b>>2]=J[c>>2];b=b+4|0;c=c+4|0;if((f|0)!=(c|0)){continue}break}J[d+4>>2]=b;d=d+12|0;if((e|0)!=(d|0)){continue}break}}J[a+4>>2]=e}return}qa();B()}J[d+8>>2]=0;J[d>>2]=0;J[d+4>>2]=0;qa();B()}function tc(a,b,c){var d=0,e=0,f=0,g=0,h=0;f=c-b|0;g=f>>2;e=J[a+8>>2];d=J[a>>2];if(g>>>0<=e-d>>2>>>0){e=J[a+4>>2]-d|0;f=e>>2;e=f>>>0>>0?b+e|0:c;h=e-b|0;if((b|0)!=(e|0)){ta(d,b,h)}if(f>>>0>>0){b=c-e|0;d=J[a+4>>2];if((c|0)!=(e|0)){ta(d,e,b)}J[a+4>>2]=b+d;return}J[a+4>>2]=d+h;return}if(d){J[a+4>>2]=d;na(d);J[a+8>>2]=0;J[a>>2]=0;J[a+4>>2]=0;e=0}a:{if((f|0)<0){break a}d=e>>>1|0;d=e>>>0>=2147483644?1073741823:d>>>0>g>>>0?d:g;if(d>>>0>=1073741824){break a}e=d<<2;d=oa(e);J[a+4>>2]=d;J[a>>2]=d;J[a+8>>2]=d+e;if((b|0)!=(c|0)){ua(d,b,f)}J[a+4>>2]=d+(g<<2);return}qa();B()}function jg(a,b){var c=0;c=J[b+4>>2];J[a>>2]=J[b>>2];J[a+4>>2]=c;c=J[b+60>>2];J[a+56>>2]=J[b+56>>2];J[a+60>>2]=c;c=J[b+52>>2];J[a+48>>2]=J[b+48>>2];J[a+52>>2]=c;c=J[b+44>>2];J[a+40>>2]=J[b+40>>2];J[a+44>>2]=c;c=J[b+36>>2];J[a+32>>2]=J[b+32>>2];J[a+36>>2]=c;c=J[b+28>>2];J[a+24>>2]=J[b+24>>2];J[a+28>>2]=c;c=J[b+20>>2];J[a+16>>2]=J[b+16>>2];J[a+20>>2]=c;c=J[b+12>>2];J[a+8>>2]=J[b+8>>2];J[a+12>>2]=c;J[a+88>>2]=0;J[a+64>>2]=0;J[a+68>>2]=0;J[a+72>>2]=0;J[a+76>>2]=0;H[a+77|0]=0;H[a+78|0]=0;H[a+79|0]=0;H[a+80|0]=0;H[a+81|0]=0;H[a+82|0]=0;H[a+83|0]=0;H[a+84|0]=0;return a}function ob(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;f=a+4|0;a=J[a+4>>2];a:{b:{if(!a){break b}d=K[b+11|0];c=d<<24>>24<0;g=c?J[b>>2]:b;d=c?J[b+4>>2]:d;b=f;while(1){e=K[a+27|0];c=e<<24>>24<0;e=c?J[a+20>>2]:e;h=e>>>0>d>>>0;i=h?d:e;c:{if(i){c=Ba(c?J[a+16>>2]:a+16|0,g,i);if(c){break c}}c=d>>>0>e>>>0?-1:h}c=(c|0)<0;b=c?b:a;a=J[(c?a+4|0:a)>>2];if(a){continue}break}if((b|0)==(f|0)){break b}c=K[b+27|0];a=c<<24>>24<0;d:{c=a?J[b+20>>2]:c;e=c>>>0>>0?c:d;if(e){a=Ba(g,a?J[b+16>>2]:b+16|0,e);if(a){break d}}if(c>>>0>d>>>0){break b}break a}if((a|0)>=0){break a}}b=f}return b}function xe(a){var b=0,c=0,d=0,e=0;c=J[a+152>>2];if(c){d=c;b=J[a+156>>2];if((c|0)!=(b|0)){while(1){d=b-12|0;e=J[d>>2];if(e){J[b-8>>2]=e;na(e)}b=d;if((c|0)!=(b|0)){continue}break}d=J[a+152>>2]}J[a+156>>2]=c;na(d)}c=J[a+140>>2];if(c){d=c;b=J[a+144>>2];if((c|0)!=(b|0)){while(1){d=b-12|0;e=J[d>>2];if(e){J[b-8>>2]=e;na(e)}b=d;if((c|0)!=(b|0)){continue}break}d=J[a+140>>2]}J[a+144>>2]=c;na(d)}b=J[a+128>>2];if(b){J[a+132>>2]=b;na(b)}b=J[a+116>>2];if(b){J[a+120>>2]=b;na(b)}b=J[a+104>>2];if(b){J[a+108>>2]=b;na(b)}tb(a+84|0);tb(a- -64|0);tb(a+44|0);wa(a+12|0)}function Uh(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;if(pb(a,J[b+8>>2],e)){if(!(J[b+28>>2]==1|J[b+4>>2]!=(c|0))){J[b+28>>2]=d}return}a:{if(pb(a,J[b>>2],e)){if(!(J[b+16>>2]!=(c|0)&J[b+20>>2]!=(c|0))){if((d|0)!=1){break a}J[b+32>>2]=1;return}J[b+32>>2]=d;b:{if(J[b+44>>2]==4){break b}I[b+52>>1]=0;a=J[a+8>>2];da[J[J[a>>2]+20>>2]](a,b,c,c,1,e);if(K[b+53|0]){J[b+44>>2]=3;if(!K[b+52|0]){break b}break a}J[b+44>>2]=4}J[b+20>>2]=c;J[b+40>>2]=J[b+40>>2]+1;if(J[b+36>>2]!=1|J[b+24>>2]!=2){break a}H[b+54|0]=1;return}a=J[a+8>>2];da[J[J[a>>2]+24>>2]](a,b,c,d,e)}}function xc(a,b){var c=0,d=0,e=0,f=0;c=J[a+16>>2];if(b){J[a+12>>2]=J[a+12>>2]|-2147483648>>>c}b=c+1|0;J[a+16>>2]=b;a:{b:{if((b|0)==32){b=J[a+4>>2];c:{if((b|0)!=J[a+8>>2]){J[b>>2]=J[a+12>>2];J[a+4>>2]=b+4;break c}d=b;b=J[a>>2];c=d-b|0;f=c>>2;e=f+1|0;if(e>>>0>=1073741824){break b}d=c>>>1|0;e=c>>>0>=2147483644?1073741823:e>>>0>>0?d:e;if(e){if(e>>>0>=1073741824){break a}d=oa(e<<2)}else{d=0}f=d+(f<<2)|0;J[f>>2]=J[a+12>>2];c=ta(d,b,c);J[a+8>>2]=c+(e<<2);J[a+4>>2]=f+4;J[a>>2]=c;if(!b){break c}na(b)}J[a+12>>2]=0;J[a+16>>2]=0}return}qa();B()}xa();B()}function ue(a){var b=0,c=0,d=0,e=0;c=J[a+140>>2];if(c){d=c;b=J[a+144>>2];if((c|0)!=(b|0)){while(1){d=b-12|0;e=J[d>>2];if(e){J[b-8>>2]=e;na(e)}b=d;if((c|0)!=(b|0)){continue}break}d=J[a+140>>2]}J[a+144>>2]=c;na(d)}c=J[a+128>>2];if(c){d=c;b=J[a+132>>2];if((c|0)!=(b|0)){while(1){d=b-12|0;e=J[d>>2];if(e){J[b-8>>2]=e;na(e)}b=d;if((c|0)!=(b|0)){continue}break}d=J[a+128>>2]}J[a+132>>2]=c;na(d)}b=J[a+116>>2];if(b){J[a+120>>2]=b;na(b)}b=J[a+104>>2];if(b){J[a+108>>2]=b;na(b)}b=J[a+92>>2];if(b){J[a+96>>2]=b;na(b)}tb(a+72|0);tb(a+52|0);tb(a+32|0);tb(a+12|0)}function Qg(a,b,c,d,e){var f=0,g=0,h=0;f=ba-16|0;ba=f;g=Pg(b,c,f+12|0,f+8|0,d);d=J[g>>2];if(d){b=0}else{d=oa(40);c=d+16|0;a:{if(H[e+11|0]>=0){h=J[e+4>>2];J[c>>2]=J[e>>2];J[c+4>>2]=h;J[c+8>>2]=J[e+8>>2];break a}Ga(c,J[e>>2],J[e+4>>2])}c=d+28|0;b:{if(H[e+23|0]>=0){e=e+12|0;h=J[e+4>>2];J[c>>2]=J[e>>2];J[c+4>>2]=h;J[c+8>>2]=J[e+8>>2];break b}Ga(c,J[e+12>>2],J[e+16>>2])}J[d+8>>2]=J[f+12>>2];J[d>>2]=0;J[d+4>>2]=0;J[g>>2]=d;e=d;c=J[J[b>>2]>>2];if(c){J[b>>2]=c;e=J[g>>2]}sb(J[b+4>>2],e);J[b+8>>2]=J[b+8>>2]+1;b=1}H[a+4|0]=b;J[a>>2]=d;ba=f+16|0}function ig(a){var b=0,c=0,d=0,e=0;za(a);c=J[a+84>>2];a:{if((c|0)<=0){break a}b=c<<5;d=oa(c>>>0>134217727?-1:b|4);J[d>>2]=c;d=d+4|0;c=d+b|0;b=d;while(1){J[b>>2]=0;J[b+4>>2]=0;J[b+24>>2]=0;J[b+28>>2]=0;J[b+16>>2]=0;J[b+20>>2]=0;J[b+8>>2]=0;J[b+12>>2]=0;b=b+32|0;if((c|0)!=(b|0)){continue}break}e=J[a+80>>2];J[a+80>>2]=d;if(e){c=e-4|0;d=J[c>>2];if(d){b=(d<<5)+e|0;while(1){b=wa(b-32|0);if((e|0)!=(b|0)){continue}break}}na(c)}if(J[a+84>>2]<=0){break a}b=0;while(1){za(J[a+80>>2]+(b<<5)|0);b=b+1|0;if((b|0)>2]){continue}break}}}function qb(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;f=ba-16|0;ba=f;A(+b);g=v(1)|0;d=v(0)|0;c=g&2147483647;e=c+-1048576|0;a:{if((e|0)==2145386495|e>>>0<2145386495){h=d<<28;e=c>>>4|0;c=(c&15)<<28|d>>>4;d=e+1006632960|0;break a}if((c|0)==2146435072|c>>>0>2146435072){h=d<<28;c=(g&15)<<28|d>>>4;d=g>>>4|2147418112;break a}if(!(c|d)){c=0;d=0;break a}e=c;c=c?S(c):S(d)+32|0;Pa(f,d,e,0,0,c+49|0);i=J[f>>2];h=J[f+4>>2];e=15372-c<<16;c=J[f+8>>2];d=e|J[f+12>>2]^65536}J[a>>2]=i;J[a+4>>2]=h;J[a+8>>2]=c;J[a+12>>2]=g&-2147483648|d;ba=f+16|0}function yi(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;f=ba-48|0;ba=f;a:{if(!b){a=0;break a}e=f+16|0;J[e>>2]=0;J[e+4>>2]=0;H[e+24|0]=0;J[e+16>>2]=0;J[e+20>>2]=0;J[e+8>>2]=0;J[e+12>>2]=0;g=0;b:{if((Nb(b,0)|0)==-1){break b}if(c){g=0;if(!(da[J[J[b>>2]+16>>2]](b)|0)){break b}da[J[J[b>>2]+20>>2]](b)}ah(f,a,b,e);a=J[f>>2];if(H[f+15|0]<0){na(J[f+4>>2])}g=0;if(a){break b}vd(d,J[e>>2],J[e+4>>2]);g=J[e+4>>2]-J[e>>2]|0}a=g;b=J[e+12>>2];J[e+12>>2]=0;if(b){na(b)}b=J[e>>2];if(!b){break a}J[e+4>>2]=b;na(b)}ba=f+48|0;return a|0}function re(a){a=a|0;var b=0,c=0,d=0;J[a>>2]=2284;d=J[a+60>>2];if(d){b=d;c=J[a- -64>>2];if((b|0)!=(c|0)){while(1){c=c-4|0;b=J[c>>2];J[c>>2]=0;if(b){Ka(b)}if((c|0)!=(d|0)){continue}break}b=J[a+60>>2]}J[a+64>>2]=d;na(b)}b=J[a+48>>2];if(b){J[a+52>>2]=b;na(b)}d=J[a+36>>2];if(d){b=d;c=J[a+40>>2];if((b|0)!=(c|0)){while(1){c=c-24|0;da[J[J[c>>2]>>2]](c)|0;if((c|0)!=(d|0)){continue}break}b=J[a+36>>2]}J[a+40>>2]=d;na(b)}J[a>>2]=2188;b=J[a+16>>2];if(b){J[a+20>>2]=b;na(b)}b=J[a+4>>2];if(b){J[a+8>>2]=b;na(b)}return a|0}function Ld(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;c=J[a+8>>2];d=J[a+4>>2];if(c-d>>2>>>0>=b>>>0){if(b){b=b<<2;d=pa(d,0,b)+b|0}J[a+4>>2]=d;return}a:{f=J[a>>2];g=d-f>>2;e=g+b|0;if(e>>>0<1073741824){c=c-f|0;h=c>>>1|0;e=c>>>0>=2147483644?1073741823:e>>>0>>0?h:e;if(e){if(e>>>0>=1073741824){break a}i=oa(e<<2)}c=(g<<2)+i|0;b=b<<2;b=pa(c,0,b)+b|0;if((d|0)!=(f|0)){while(1){c=c-4|0;d=d-4|0;J[c>>2]=J[d>>2];if((d|0)!=(f|0)){continue}break}}J[a+8>>2]=(e<<2)+i;J[a+4>>2]=b;J[a>>2]=c;if(f){na(f)}return}qa();B()}xa();B()}function zi(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0;e=ba-48|0;ba=e;a:{if(!b){a=0;break a}d=e+16|0;J[d>>2]=0;J[d+4>>2]=0;H[d+24|0]=0;J[d+16>>2]=0;J[d+20>>2]=0;J[d+8>>2]=0;J[d+12>>2]=0;f=0;b:{if((Nb(b,0)|0)==-1){break b}f=0;if(!(da[J[J[b>>2]+16>>2]](b)|0)){break b}da[J[J[b>>2]+20>>2]](b);Zg(e,a,b,d);a=J[e>>2];if(H[e+15|0]<0){na(J[e+4>>2])}f=0;if(a){break b}vd(c,J[d>>2],J[d+4>>2]);f=J[d+4>>2]-J[d>>2]|0}a=f;b=J[d+12>>2];J[d+12>>2]=0;if(b){na(b)}b=J[d>>2];if(!b){break a}J[d+4>>2]=b;na(b)}ba=e+48|0;return a|0}function Gb(a,b,c,d,e,f){var g=0,h=0,i=0,j=0;a:{if(f&64){c=f+-64|0;b=c&31;if((c&63)>>>0>=32){c=0;b=e>>>b|0}else{c=e>>>b|0;b=((1<>>b}d=0;e=0;break a}if(!f){break a}i=d;h=64-f|0;g=h&31;if((h&63)>>>0>=32){h=i<>>32-g|e<>>0>=32){g=0;b=c>>>b|0}else{g=c>>>b|0;b=((1<>>b}b=j|b;c=g|h;g=d;d=f&31;if((f&63)>>>0>=32){h=0;d=e>>>d|0}else{h=e>>>d|0;d=((1<>>d}e=h}J[a>>2]=b;J[a+4>>2]=c;J[a+8>>2]=d;J[a+12>>2]=e}function hf(a,b){var c=0,d=0,e=0,f=0,g=0,h=0;c=ba-16|0;ba=c;e=K[b+11|0];e=e<<24>>24<0?J[b+4>>2]:e;a:{if(e>>>0>255){break a}if(!e){H[c+15|0]=0;b=J[a+20>>2];if(!!J[a+16>>2]&(b|0)>=0|(b|0)>0){break a}sa(a,J[a+4>>2],c+15|0,c+16|0);break a}H[c+14|0]=e;d=J[a+20>>2];if(!!J[a+16>>2]&(d|0)>=0|(d|0)>0){break a}sa(a,J[a+4>>2],c+14|0,c+15|0);d=J[a+20>>2];if(!!J[a+16>>2]&(d|0)>=0|(d|0)>0){break a}g=a;h=J[a+4>>2];a=K[b+11|0];d=a<<24>>24<0;f=d?J[b>>2]:b;sa(g,h,f,(d?J[b+4>>2]:a)+f|0)}ba=c+16|0;return e>>>0<256}function Gc(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;a:{c=J[a+4>>2];e=J[a>>2];d=c-e|0;b:{if(d>>>0>>0){g=b-d|0;f=J[a+8>>2];if(g>>>0<=f-c>>>0){h=a,i=pa(c,0,g)+g|0,J[h+4>>2]=i;break b}if((b|0)<0){break a}c=f-e|0;f=c<<1;c=c>>>0>=1073741823?2147483647:b>>>0>>0?f:b;f=oa(c);pa(f+d|0,0,g);d=ta(f,e,d);J[a+8>>2]=d+c;J[a+4>>2]=b+d;J[a>>2]=d;if(!e){break b}na(e);break b}if(b>>>0>=d>>>0){break b}J[a+4>>2]=b+e}b=J[a+28>>2];c=b;d=b+1|0;b=J[a+24>>2]+1|0;e=b?c:d;J[a+24>>2]=b;J[a+28>>2]=e;return}qa();B()}function pi(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0;d=ba-48|0;ba=d;e=J[a+4>>2];a:{if(!e){break a}if(b){if(!(da[J[J[e>>2]+16>>2]](e)|0)){break a}b=J[a+4>>2];da[J[J[b>>2]+20>>2]](b)}b=d+16|0;J[b>>2]=0;J[b+4>>2]=0;H[b+24|0]=0;J[b+16>>2]=0;J[b+20>>2]=0;J[b+8>>2]=0;J[b+12>>2]=0;fe(d,J[a>>2],b);a=J[d>>2];if(H[d+15|0]<0){na(J[d+4>>2])}if(!a){vd(c,J[b>>2],J[b+4>>2]);f=J[b+4>>2]-J[b>>2]|0}a=J[b+12>>2];J[b+12>>2]=0;if(a){na(a)}a=J[b>>2];if(!a){break a}J[b+4>>2]=a;na(a)}ba=d+48|0;return f|0}function Dl(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0;e=1;a:{if((da[J[J[b>>2]+20>>2]](b)|0)<=0){break a}while(1){e=0;d=Nb(J[J[a+4>>2]+4>>2],da[J[J[b>>2]+24>>2]](b,f)|0);if((d|0)==-1){break a}c=J[a+4>>2];g=0;b:{if((d|0)<0){break b}h=J[c+4>>2];if(J[h+12>>2]-J[h+8>>2]>>2<=(d|0)){break b}c=J[J[c+8>>2]+(J[J[c+20>>2]+(d<<2)>>2]<<2)>>2];g=da[J[J[c>>2]+36>>2]](c,d)|0}if(!(da[J[J[b>>2]+28>>2]](b,g)|0)){break a}e=1;f=f+1|0;if((da[J[J[b>>2]+20>>2]](b)|0)>(f|0)){continue}break}}return e|0}function Pa(a,b,c,d,e,f){var g=0,h=0,i=0;a:{if(f&64){d=b;e=f+-64|0;b=e&31;if((e&63)>>>0>=32){e=d<>>32-b|c<>>0>=32){h=g<>>32-d|e<>>0>=32){e=0;b=c>>>d|0}else{e=c>>>d|0;b=((1<>>d}d=i|b;e=e|h;b=f&31;if((f&63)>>>0>=32){h=g<>>32-b|c<>2]=b;J[a+4>>2]=c;J[a+8>>2]=d;J[a+12>>2]=e}function se(a,b){ya(a,b);ya(a+32|0,b);ya(a- -64|0,b);ya(a+96|0,b);ya(a+128|0,b);ya(a+160|0,b);ya(a+192|0,b);ya(a+224|0,b);ya(a+256|0,b);ya(a+288|0,b);ya(a+320|0,b);ya(a+352|0,b);ya(a+384|0,b);ya(a+416|0,b);ya(a+448|0,b);ya(a+480|0,b);ya(a+512|0,b);ya(a+544|0,b);ya(a+576|0,b);ya(a+608|0,b);ya(a+640|0,b);ya(a+672|0,b);ya(a+704|0,b);ya(a+736|0,b);ya(a+768|0,b);ya(a+800|0,b);ya(a+832|0,b);ya(a+864|0,b);ya(a+896|0,b);ya(a+928|0,b);ya(a+960|0,b);ya(a+992|0,b);ya(a+1024|0,b)}function Ch(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;d=J[J[a+8>>2]+40>>2];h=oa((d|0)<0?-1:d);g=J[b>>2];i=J[b+4>>2];if((g|0)!=(i|0)){k=d+h|0;while(1){e=J[(j<<2)+g>>2];f=J[a+8>>2];if(!K[f+84|0]){e=J[J[f+68>>2]+(e<<2)>>2]}l=J[J[f>>2]>>2];d=J[f+40>>2];e=J[f+48>>2]+Hl(d,J[f+44>>2],e,0)|0;e=ua(h,e+l|0,d);d=J[c+20>>2];if(!J[c+16>>2]&(d|0)<=0|(d|0)<0){sa(c,J[c+4>>2],e,k);g=J[b>>2];i=J[b+4>>2]}j=j+1|0;if(j>>>0>2>>>0){continue}break}}na(h);return 1}function Pe(a,b){if(!a){return 0}a:{b:{if(a){if(b>>>0<=127){break b}c:{if(!J[J[4843]>>2]){if((b&-128)==57216){break b}break c}if(b>>>0<=2047){H[a+1|0]=b&63|128;H[a|0]=b>>>6|192;a=2;break a}if(!((b&-8192)!=57344&b>>>0>=55296)){H[a+2|0]=b&63|128;H[a|0]=b>>>12|224;H[a+1|0]=b>>>6&63|128;a=3;break a}if(b-65536>>>0<=1048575){H[a+3|0]=b&63|128;H[a|0]=b>>>18|240;H[a+2|0]=b>>>6&63|128;H[a+1|0]=b>>>12&63|128;a=4;break a}}J[4804]=25;a=-1}else{a=1}break a}H[a|0]=b;a=1}return a}function Je(a,b,c){var d=0,e=0,f=0,g=0,h=0;f=ba-16|0;ba=f;d=ba-32|0;ba=d;e=ba-16|0;ba=e;J[e+12>>2]=a;J[e+8>>2]=a+b;J[d+24>>2]=J[e+12>>2];J[d+28>>2]=J[e+8>>2];ba=e+16|0;b=ba-16|0;ba=b;h=J[d+28>>2];e=J[d+24>>2];g=h-e|0;if((e|0)!=(h|0)){ta(c,e,g)}J[b+12>>2]=e+g;J[b+8>>2]=c+g;J[d+16>>2]=J[b+12>>2];J[d+20>>2]=J[b+8>>2];ba=b+16|0;J[d+12>>2]=(J[d+16>>2]-a|0)+a;J[d+8>>2]=(J[d+20>>2]-c|0)+c;J[f+8>>2]=J[d+12>>2];J[f+12>>2]=J[d+8>>2];ba=d+32|0;ba=f+16|0;return J[f+12>>2]}function aj(a,b){a=a|0;b=b|0;var c=0,d=0;c=ba-16|0;ba=c;d=J[a+8>>2];a:{if((d|0)==J[a+12>>2]){b=bf(oa(76),b);J[b+36>>2]=0;J[b+40>>2]=0;J[b>>2]=2284;J[b+44>>2]=0;J[b+48>>2]=0;J[b+52>>2]=0;J[b+56>>2]=0;J[b+60>>2]=0;J[b+64>>2]=0;J[b+68>>2]=0;J[b+72>>2]=0;J[c+8>>2]=b;d=J[a+12>>2];b:{if(d>>>0>2]){J[c+8>>2]=0;J[d>>2]=b;J[a+12>>2]=d+4;break b}Ic(a+8|0,c+8|0)}a=J[c+8>>2];J[c+8>>2]=0;if(!a){break a}da[J[J[a>>2]+4>>2]](a);break a}kc(J[d>>2],b)}ba=c+16|0;return 1}function Wg(a,b,c,d){var e=0,f=0,g=0,h=0,i=0;e=ba-48|0;ba=e;h=J[b>>2];f=a+16|0;b=J[f>>2];a:{b:{if(!b){break b}g=f;while(1){i=J[b+16>>2]<(h|0);g=i?g:b;b=J[(i?b+4|0:b)>>2];if(b){continue}break}if((g|0)==(f|0)){break b}if(J[g+16>>2]<=(h|0)){break a}}J[e+28>>2]=0;J[e+32>>2]=0;f=e+24|0;J[e+24>>2]=f|4;b=e+16|0;J[b>>2]=0;J[b+4>>2]=0;J[e+8>>2]=h;J[e+12>>2]=b;b=a+12|0;a=e+8|0;Oc(e+40|0,b,a,a);g=J[e+40>>2];Da(a|4,J[e+16>>2]);Da(f,J[e+28>>2])}vb(g+20|0,c,d);ba=e+48|0}function Ec(a){a=a|0;var b=0,c=0,d=0;J[a>>2]=14964;b=J[a+68>>2];if(b){J[a+72>>2]=b;na(b)}b=J[a+56>>2];if(b){J[a+60>>2]=b;na(b)}b=J[a+44>>2];if(b){J[a+48>>2]=b;na(b)}b=J[a+32>>2];if(b){J[a+36>>2]=b;na(b)}b=J[a+20>>2];if(b){J[a+24>>2]=b;na(b)}b=J[a+8>>2];if(b){d=b;c=J[a+12>>2];if((b|0)!=(c|0)){while(1){c=c-4|0;d=J[c>>2];J[c>>2]=0;if(d){Ka(d)}if((b|0)!=(c|0)){continue}break}d=J[a+8>>2]}J[a+12>>2]=b;na(d)}b=J[a+4>>2];J[a+4>>2]=0;if(b){pf(b)}return a|0}function Ah(a){a=a|0;var b=0,c=0,d=0;J[a>>2]=2496;b=J[a+72>>2];J[a+72>>2]=0;if(b){da[J[J[b>>2]+4>>2]](b)}b=J[a+60>>2];if(b){J[a- -64>>2]=b;na(b)}b=J[a+48>>2];if(b){na(b)}d=J[a+36>>2];if(d){c=J[a+40>>2];b=d;if((c|0)!=(b|0)){while(1){c=c-4|0;b=J[c>>2];J[c>>2]=0;if(b){da[J[J[b>>2]+4>>2]](b)}if((c|0)!=(d|0)){continue}break}b=J[a+36>>2]}J[a+40>>2]=d;na(b)}J[a>>2]=2188;b=J[a+16>>2];if(b){J[a+20>>2]=b;na(b)}b=J[a+4>>2];if(b){J[a+8>>2]=b;na(b)}return a|0}function Ra(a){J[a>>2]=-1;J[a+4>>2]=0;J[a+8>>2]=0;J[a+32>>2]=0;J[a+36>>2]=0;H[a+28|0]=1;J[a+20>>2]=0;J[a+24>>2]=0;J[a+12>>2]=0;J[a+16>>2]=0;J[a+40>>2]=0;J[a+44>>2]=0;J[a+48>>2]=0;J[a+52>>2]=0;J[a+56>>2]=0;J[a+60>>2]=0;J[a+64>>2]=0;J[a+68>>2]=0;J[a+76>>2]=0;J[a+80>>2]=0;J[a+84>>2]=0;J[a+88>>2]=0;J[a+92>>2]=0;J[a+96>>2]=0;J[a+72>>2]=a+4;J[a+104>>2]=0;J[a+108>>2]=0;H[a+100|0]=1;J[a+112>>2]=0;J[a+116>>2]=0;J[a+120>>2]=0;J[a+124>>2]=0;J[a+128>>2]=0}function Fa(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;e=J[a+8>>2];c=J[a+4>>2];if(e-c>>2>>>0>=b>>>0){if(b){b=b<<2;c=pa(c,0,b)+b|0}J[a+4>>2]=c;return}a:{f=c;c=J[a>>2];g=f-c|0;h=g>>2;d=h+b|0;if(d>>>0<1073741824){e=e-c|0;f=e>>>1|0;d=e>>>0>=2147483644?1073741823:d>>>0>>0?f:d;if(d){if(d>>>0>=1073741824){break a}i=oa(d<<2)}b=b<<2;e=pa((h<<2)+i|0,0,b);f=d<<2;d=ta(i,c,g);J[a+8>>2]=f+d;J[a+4>>2]=b+e;J[a>>2]=d;if(c){na(c)}return}qa();B()}xa();B()}function Wa(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;e=J[a+8>>2];c=J[a+4>>2];if(e-c>>3>>>0>=b>>>0){if(b){b=b<<3;c=pa(c,0,b)+b|0}J[a+4>>2]=c;return}a:{f=c;c=J[a>>2];g=f-c|0;h=g>>3;d=h+b|0;if(d>>>0<536870912){e=e-c|0;f=e>>>2|0;d=e>>>0>=2147483640?536870911:d>>>0>>0?f:d;if(d){if(d>>>0>=536870912){break a}i=oa(d<<3)}b=b<<3;e=pa((h<<3)+i|0,0,b);f=d<<3;d=ta(i,c,g);J[a+8>>2]=f+d;J[a+4>>2]=b+e;J[a>>2]=d;if(c){na(c)}return}qa();B()}xa();B()}function Oe(a,b,c,d,e){var f=0,g=0,h=0;h=-1;g=d&2147483647;f=(g|0)==2147418112;a:{if(f&!c?a|b:f&(c|0)!=0|g>>>0>2147418112){break a}f=e&2147483647;if(((f|0)==2147418112&0|f>>>0>2147418112)&(f|0)!=2147418112){break a}if(!(a|c|(f|g|b))){return 0}f=d&e;if((f|0)>0|(f|0)>=0){if(((c|0)!=0|(d|0)!=(e|0))&(d|0)<(e|0)){break a}return(a|c|(d^e|b))!=0}if(!c&(d|0)==(e|0)?a|b:(c|0)!=0&(d|0)>=(e|0)|(d|0)>(e|0)){break a}h=(a|c|(d^e|b))!=0}return h}function Xa(a,b,c,d,e,f,g,h,i){var j=0,k=0,l=0,m=0;i=Hl(b,c,h,i);h=ca;e=Hl(d,e,f,g);i=e+i|0;d=ca+h|0;h=e>>>0>i>>>0?d+1|0:d;j=g;e=0;k=c;d=0;c=Hl(g,e,c,d);g=c+i|0;i=ca+h|0;l=g;c=c>>>0>g>>>0?i+1|0:i;g=Hl(f,0,b,0);h=ca;i=0;d=Hl(f,i,k,d);h=h+d|0;f=ca+i|0;f=d>>>0>h>>>0?f+1|0:f;i=f+l|0;d=c;f=f>>>0>i>>>0?d+1|0:d;c=Hl(b,m,j,e)+h|0;e=ca;e=c>>>0>>0?e+1|0:e;h=e+i|0;i=f;J[a+8>>2]=h;J[a+12>>2]=e>>>0>h>>>0?i+1|0:i;J[a>>2]=g;J[a+4>>2]=c}function Ia(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;a:{c=J[a+4>>2];f=J[a>>2];d=c-f|0;b:{if(d>>>0>>0){g=b-d|0;e=J[a+8>>2];if(g>>>0<=e-c>>>0){h=a,i=pa(c,0,g)+g|0,J[h+4>>2]=i;return}if((b|0)<0){break a}c=e-f|0;e=c<<1;c=c>>>0>=1073741823?2147483647:b>>>0>>0?e:b;e=oa(c);pa(e+d|0,0,g);d=ta(e,f,d);J[a+8>>2]=d+c;J[a+4>>2]=b+d;J[a>>2]=d;if(!f){break b}na(f);return}if(b>>>0>=d>>>0){break b}J[a+4>>2]=b+f}return}qa();B()}function Ug(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;d=ba-16|0;ba=d;e=J[a+4>>2];a:{if((e|0)==-1){break a}c=J[b+20>>2];if(!!J[b+16>>2]&(c|0)>=0|(c|0)>0){break a}sa(b,J[b+4>>2],J[a+8>>2],J[a+12>>2]);c=J[b+20>>2];if(!!J[b+16>>2]&(c|0)>=0|(c|0)>0){break a}sa(b,J[b+4>>2],a+20|0,a+24|0);c=J[b+20>>2];f=J[b+16>>2];H[d+15|0]=J[a+4>>2];if(!!f&(c|0)>=0|(c|0)>0){break a}sa(b,J[b+4>>2],d+15|0,d+16|0)}ba=d+16|0;return(e|0)!=-1|0}function fj(a){a=a|0;var b=0,c=0,d=0,e=0,f=0;a:{b=J[a+8>>2];b:{if((b|0)<0){break b}c=J[a+4>>2];e=J[c>>2];d=J[c+4>>2]-e>>2;c:{if(d>>>0>>0){Ld(c,b-d|0);f=J[a+8>>2];break c}f=b;if(b>>>0>=d>>>0){break c}J[c+4>>2]=e+(b<<2);f=b}d=f;if((d|0)<=0){break b}a=J[a+4>>2];c=J[a>>2];e=J[a+4>>2]-c>>2;a=0;while(1){if((a|0)==(e|0)){break a}J[c+(a<<2)>>2]=a;a=a+1|0;if((d|0)!=(a|0)){continue}break}}return(b^-1)>>>31|0}ra();B()}function te(a){za(a);za(a+32|0);za(a- -64|0);za(a+96|0);za(a+128|0);za(a+160|0);za(a+192|0);za(a+224|0);za(a+256|0);za(a+288|0);za(a+320|0);za(a+352|0);za(a+384|0);za(a+416|0);za(a+448|0);za(a+480|0);za(a+512|0);za(a+544|0);za(a+576|0);za(a+608|0);za(a+640|0);za(a+672|0);za(a+704|0);za(a+736|0);za(a+768|0);za(a+800|0);za(a+832|0);za(a+864|0);za(a+896|0);za(a+928|0);za(a+960|0);za(a+992|0);za(a+1024|0)}function Ga(a,b,c){var d=0,e=0,f=0,g=0;e=ba-16|0;ba=e;a:{b:{if(c>>>0<11){d=a;H[a+11|0]=K[a+11|0]&128|c;H[a+11|0]=K[a+11|0]&127;break b}if(c>>>0>2147483631){break a}g=e+8|0;if(c>>>0>=11){f=c+16&-16;d=f-1|0;d=(d|0)==11?f:d}else{d=10}Ac(g,d+1|0);d=J[e+8>>2];J[a>>2]=d;J[a+8>>2]=J[a+8>>2]&-2147483648|J[e+12>>2]&2147483647;J[a+8>>2]=J[a+8>>2]|-2147483648;J[a+4>>2]=c}Ab(d,b,c+1|0);ba=e+16|0;return}gb();B()}function Zg(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;e=ba-96|0;ba=e;f=Ng(e+40|0,c);$g(e,b,c);Mg(f,e);Da(e+24|0,J[e+28>>2]);nb(e+12|0,J[e+16>>2]);Da(e,J[e+4>>2]);fe(a,f,d);if(!J[a>>2]){if(H[a+15|0]<0){na(J[a+4>>2])}J[b+40>>2]=J[f+40>>2];J[b+44>>2]=J[f+44>>2];J[a+8>>2]=0;J[a+12>>2]=0;J[a>>2]=0;J[a+4>>2]=0}J[f>>2]=10256;Da(f+28|0,J[f+32>>2]);nb(f+16|0,J[f+20>>2]);Da(f+4|0,J[f+8>>2]);ba=e+96|0}function mc(a,b){var c=0,d=0,e=0;c=J[a+4>>2];d=c+b|0;J[a+4>>2]=d;if(!((d-1^c-1)>>>0<32?c:0)){J[J[a>>2]+((d>>>0>=33?d-1>>>5|0:0)<<2)>>2]=0}a:{if(!b){break a}a=J[a>>2]+(c>>>3&536870908)|0;c=c&31;if(c){d=32-c|0;e=b>>>0>d>>>0?d:b;J[a>>2]=J[a>>2]&(-1<>>d-e^-1);b=b-e|0;a=a+4|0}c=b>>>5|0;if(b>>>0>=32){pa(a,0,c<<2)}if((b&-32)==(b|0)){break a}a=(c<<2)+a|0;J[a>>2]=J[a>>2]&(-1>>>32-(b&31)^-1)}}function Oa(a,b,c){var d=0,e=0,f=0;if(!(K[a|0]&32)){a:{d=b;b=a;a=J[b+16>>2];b:{if(!a){if(We(b)){break b}a=J[b+16>>2]}f=J[b+20>>2];if(a-f>>>0>>0){da[J[b+36>>2]](b,d,c)|0;break a}c:{if(J[b+80>>2]<0){break c}a=c;while(1){e=a;if(!a){break c}a=e-1|0;if(K[d+a|0]!=10){continue}break}if(da[J[b+36>>2]](b,d,e)>>>0>>0){break b}d=d+e|0;c=c-e|0;f=J[b+20>>2]}ua(f,d,c);J[b+20>>2]=J[b+20>>2]+c}}}}function Wj(a){a=a|0;var b=0,c=0,d=0;J[a>>2]=10404;b=J[a+64>>2];J[a+64>>2]=0;if(b){da[J[J[b>>2]+4>>2]](b)}J[a>>2]=12468;b=J[a+32>>2];if(b){J[a+36>>2]=b;na(b)}b=J[a+20>>2];if(b){J[a+24>>2]=b;na(b)}d=J[a+8>>2];if(d){c=J[a+12>>2];b=d;if((c|0)!=(b|0)){while(1){c=c-4|0;b=J[c>>2];J[c>>2]=0;if(b){da[J[J[b>>2]+4>>2]](b)}if((c|0)!=(d|0)){continue}break}b=J[a+8>>2]}J[a+12>>2]=d;na(b)}return a|0}function zl(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0;d=ba-16|0;ba=d;f=Me(a,b);a:{if(!f){break a}c=J[a+36>>2];if((c|0)==J[a+40>>2]){break a}g=d+16|0;while(1){c=J[(e<<2)+c>>2];h=d,i=da[J[J[c>>2]+32>>2]](c)|0,H[h+15|0]=i;c=J[b+20>>2];if(!J[b+16>>2]&(c|0)<=0|(c|0)<0){sa(b,J[b+4>>2],d+15|0,g)}e=e+1|0;c=J[a+36>>2];if(e>>>0>2]-c>>2>>>0){continue}break}}ba=d+16|0;return f|0}function Vj(a){a=a|0;var b=0,c=0,d=0;J[a>>2]=10404;b=J[a+64>>2];J[a+64>>2]=0;if(b){da[J[J[b>>2]+4>>2]](b)}J[a>>2]=12468;b=J[a+32>>2];if(b){J[a+36>>2]=b;na(b)}b=J[a+20>>2];if(b){J[a+24>>2]=b;na(b)}d=J[a+8>>2];if(d){c=J[a+12>>2];b=d;if((c|0)!=(b|0)){while(1){c=c-4|0;b=J[c>>2];J[c>>2]=0;if(b){da[J[J[b>>2]+4>>2]](b)}if((c|0)!=(d|0)){continue}break}b=J[a+8>>2]}J[a+12>>2]=d;na(b)}na(a)}function og(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;c=J[a+176>>2];d=J[a+172>>2];e=(c-d|0)/136|0;a:{if((c|0)==(d|0)){break a}c=0;b:{c:{d:{if(J[d>>2]==(b|0)){b=1}else{f=e>>>0<=1?1:e;while(1){c=c+1|0;if((f|0)==(c|0)){break d}if(J[P(c,136)+d>>2]!=(b|0)){continue}break}b=c>>>0>>0}if(b){break c}break a}if(c>>>0>>0){break b}break a}d=(P(c,136)+d|0)+104|0}return d|0}return a+40|0}function Sf(a,b){a=a|0;b=b|0;var c=0,d=0;c=ba-16|0;ba=c;a:{if(!b){d=oa(76);b=oa(12);J[b+8>>2]=J[J[a+4>>2]+80>>2];J[b>>2]=12404;J[b+4>>2]=0;d=pe(d,b,0);J[c+8>>2]=d;b=J[a+12>>2];b:{if(b>>>0>2]){J[c+8>>2]=0;J[b>>2]=d;J[a+12>>2]=b+4;break b}Ic(a+8|0,c+8|0)}a=J[c+8>>2];J[c+8>>2]=0;if(!a){break a}da[J[J[a>>2]+4>>2]](a);break a}kc(J[J[a+8>>2]>>2],b)}ba=c+16|0;return 1}function Jh(a,b){a=a|0;b=b|0;var c=0,d=0;c=J[a+36>>2];if((c|0)!=J[a+40>>2]){while(1){c=P(d,24)+c|0;da[J[J[c>>2]+28>>2]](c,b)|0;d=d+1|0;c=J[a+36>>2];if(d>>>0<(J[a+40>>2]-c|0)/24>>>0){continue}break}}c=J[a+48>>2];if((c|0)!=J[a+52>>2]){d=0;while(1){c=J[(d<<2)+c>>2];Aa((c|0)<0?(c^-1)<<1|1:c<<1,b);d=d+1|0;c=J[a+48>>2];if(d>>>0>2]-c>>2>>>0){continue}break}}return 1}function ud(a,b,c,d,e,f){var g=0,h=0,i=0;i=-1;a:{if(!a){break a}g=Jc(oa(96));Md(g,b,d<<24>>24,f,c);b=qd(a,g);if(c){g=J[J[a+8>>2]+(b<<2)>>2];while(1){f=J[g+40>>2];ua(J[J[g>>2]>>2]+P(f,K[g+84|0]?h:J[J[g+68>>2]+(h<<2)>>2])|0,(P(d,h)<<2)+e|0,f);h=h+1|0;if((h|0)!=(c|0)){continue}break}}d=J[a+80>>2];b:{if(!d){J[a+80>>2]=c;break b}if((c|0)!=(d|0)){break a}}i=b}return i}function rf(a,b,c,d,e,f){var g=0,h=0,i=0;i=-1;a:{if(!a){break a}g=Jc(oa(96));Md(g,b,d<<24>>24,f,c);b=qd(a,g);if(c){g=J[J[a+8>>2]+(b<<2)>>2];while(1){f=J[g+40>>2];ua(J[J[g>>2]>>2]+P(f,K[g+84|0]?h:J[J[g+68>>2]+(h<<2)>>2])|0,(P(d,h)<<1)+e|0,f);h=h+1|0;if((h|0)!=(c|0)){continue}break}}d=J[a+80>>2];b:{if(!d){J[a+80>>2]=c;break b}if((c|0)!=(d|0)){break a}}i=b}return i}function sf(a,b,c,d,e,f){var g=0,h=0,i=0;i=-1;a:{if(!a){break a}g=Jc(oa(96));Md(g,b,d<<24>>24,f,c);b=qd(a,g);if(c){g=J[J[a+8>>2]+(b<<2)>>2];while(1){f=J[g+40>>2];ua(J[J[g>>2]>>2]+P(f,K[g+84|0]?h:J[J[g+68>>2]+(h<<2)>>2])|0,P(d,h)+e|0,f);h=h+1|0;if((h|0)!=(c|0)){continue}break}}d=J[a+80>>2];b:{if(!d){J[a+80>>2]=c;break b}if((c|0)!=(d|0)){break a}}i=b}return i}function Th(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;if(pb(a,J[b+8>>2],e)){if(!(J[b+28>>2]==1|J[b+4>>2]!=(c|0))){J[b+28>>2]=d}return}a:{if(!pb(a,J[b>>2],e)){break a}if(!(J[b+16>>2]!=(c|0)&J[b+20>>2]!=(c|0))){if((d|0)!=1){break a}J[b+32>>2]=1;return}J[b+20>>2]=c;J[b+32>>2]=d;J[b+40>>2]=J[b+40>>2]+1;if(!(J[b+36>>2]!=1|J[b+24>>2]!=2)){H[b+54|0]=1}J[b+44>>2]=4}}function Mc(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0;e=ba+-64|0;ba=e;d=da[J[J[a>>2]+44>>2]](a,b)|0;a=da[J[J[a>>2]+40>>2]](a,b)|0;f=Lc(e);g=J[b+56>>2];h=d&255;i=a;a=a-1|0;if(a>>>0<=10){a=J[(a<<2)+14832>>2]}else{a=-1}d=P(a,d);Nd(f,g,0,h,i,d,d>>31);a=jg(oa(96),f);Kd(a,c);H[a+84|0]=1;J[a+72>>2]=J[a+68>>2];J[a+60>>2]=J[b+60>>2];ba=e- -64|0;return a|0}function Md(a,b,c,d,e){var f=0,g=0,h=0;f=oa(32);J[f+16>>2]=0;J[f+20>>2]=0;J[f+8>>2]=0;J[f>>2]=0;J[f+4>>2]=0;J[f+24>>2]=0;J[f+28>>2]=0;g=J[a+64>>2];J[a+64>>2]=f;if(g){f=J[g>>2];if(f){J[g+4>>2]=f;na(f)}na(g);f=J[a+64>>2]}h=c&255;g=d-1|0;if(g>>>0<=10){g=J[(g<<2)+14832>>2]}else{g=-1}c=P(g,c);Nd(a,b,f,h,d,c,c>>31);Kd(a,e);H[a+84|0]=1;J[a+72>>2]=J[a+68>>2]}function _h(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0;e=J[a+84>>2];f=J[e>>2];d=J[e+4>>2];h=J[a+28>>2];g=J[a+20>>2]-h|0;g=d>>>0>>0?d:g;if(g){ua(f,h,g);f=g+J[e>>2]|0;J[e>>2]=f;d=J[e+4>>2]-g|0;J[e+4>>2]=d}d=c>>>0>d>>>0?d:c;if(d){ua(f,b,d);f=d+J[e>>2]|0;J[e>>2]=f;J[e+4>>2]=J[e+4>>2]-d}H[f|0]=0;b=J[a+44>>2];J[a+28>>2]=b;J[a+20>>2]=b;return c|0}function xb(a,b,c){var d=0,e=0,f=0,g=0;d=ba-16|0;ba=d;H[d+15|0]=a&127;a:{if(!b&a>>>0>=128|b){H[d+15|0]=a|128;e=J[c+20>>2];if(!!J[c+16>>2]&(e|0)>=0|(e|0)>0){break a}sa(c,J[c+4>>2],d+15|0,d+16|0);f=xb((b&127)<<25|a>>>7,b>>>7|0,c);break a}a=J[c+20>>2];if(!!J[c+16>>2]&(a|0)>=0|(a|0)>0){break a}g=1;sa(c,J[c+4>>2],d+15|0,d+16|0)}ba=d+16|0;return g|f}function Fe(a,b,c,d){H[a+53|0]=1;a:{if(J[a+4>>2]!=(c|0)){break a}H[a+52|0]=1;c=J[a+16>>2];b:{if(!c){J[a+36>>2]=1;J[a+24>>2]=d;J[a+16>>2]=b;if((d|0)!=1){break a}if(J[a+48>>2]==1){break b}break a}if((b|0)==(c|0)){c=J[a+24>>2];if((c|0)==2){J[a+24>>2]=d;c=d}if(J[a+48>>2]!=1){break a}if((c|0)==1){break b}break a}J[a+36>>2]=J[a+36>>2]+1}H[a+54|0]=1}}function Fc(a,b){var c=0,d=0,e=0,f=0;d=1;a:{if((b|0)==-1){break a}b=P(b,3);if((b|0)==-1){break a}d=-1;e=J[a>>2];a=e+(b<<2)|0;c=b+1|0;c=(c>>>0)%3|0?c:b-2|0;if((c|0)!=-1){d=J[(c<<2)+e>>2]}a=J[a>>2];f=(a|0)==(d|0);b:{c:{if((b>>>0)%3|0){b=b-1|0;break c}b=b+2|0;c=-1;if((b|0)==-1){break b}}c=J[(b<<2)+e>>2]}d=f|(c|0)==(a|0)|(d|0)==(c|0)}return d}function jd(a,b,c){var d=0,e=0,f=0;f=ba-16|0;ba=f;d=K[a+11|0]>>>7|0?(J[a+8>>2]&2147483647)-1|0:10;if(K[a+11|0]>>>7|0){e=J[a+4>>2]}else{e=K[a+11|0]&127}a:{if(d-e>>>0>=c>>>0){if(!c){break a}if(K[a+11|0]>>>7|0){d=J[a>>2]}else{d=a}Ab(d+e|0,b,c);b=a;a=c+e|0;ld(b,a);H[f+15|0]=0;H[a+d|0]=K[f+15|0];break a}kd(a,d,(c+e|0)-d|0,e,e,0,c,b)}ba=f+16|0}function Xh(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;e=ba+-64|0;ba=e;d=1;a:{if(pb(a,b,0)){break a}d=0;if(!b){break a}b=bd(b,18476,18524);d=0;if(!b){break a}d=e+8|0;pa(d|4,0,52);J[e+56>>2]=1;J[e+20>>2]=-1;J[e+16>>2]=a;J[e+8>>2]=b;da[J[J[b>>2]+28>>2]](b,d,J[c>>2],1);a=J[e+32>>2];if((a|0)==1){J[c>>2]=J[e+24>>2]}d=(a|0)==1}ba=e- -64|0;return d|0}function Al(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0;J[a+32>>2]=c;J[a+28>>2]=b;a:{if(!(da[J[J[a>>2]+52>>2]](a)|0)){break a}e=J[a+4>>2];if((e|0)==J[a+8>>2]){return 1}c=0;while(1){d=c<<2;f=J[d+J[a+36>>2]>>2];d=da[J[J[f>>2]+8>>2]](f,b,J[d+e>>2])|0;if(!d){break a}c=c+1|0;e=J[a+4>>2];if(c>>>0>2]-e>>2>>>0){continue}break}}return d|0}function Pj(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=ba-16|0;ba=d;J[a+4>>2]=b;b=J[b+64>>2];e=J[b>>2];b=J[b+4>>2];H[d+15|0]=0;Na(a+24|0,(b-e>>2>>>0)/3|0,d+15|0);b=J[a+4>>2];e=J[b+56>>2];b=J[b+52>>2];H[d+14|0]=0;Na(a+36|0,e-b>>2,d+14|0);b=J[c+12>>2];J[a+16>>2]=J[c+8>>2];J[a+20>>2]=b;b=J[c+4>>2];J[a+8>>2]=J[c>>2];J[a+12>>2]=b;ba=d+16|0}function Aa(a,b){var c=0,d=0,e=0;c=ba-16|0;ba=c;H[c+15|0]=a&127;a:{if(a>>>0>=128){H[c+15|0]=a|128;d=J[b+20>>2];if(!!J[b+16>>2]&(d|0)>=0|(d|0)>0){a=0;break a}sa(b,J[b+4>>2],c+15|0,c+16|0);a=Aa(a>>>7|0,b);break a}a=0;d=J[b+20>>2];if(!!J[b+16>>2]&(d|0)>=0|(d|0)>0){break a}e=1;sa(b,J[b+4>>2],c+15|0,c+16|0)}ba=c+16|0;return a|e}function Wc(a,b){var c=0,d=0;a:{c=J[a+4>>2];d=J[a+8>>2];if((c|0)==d<<5){if((c+1|0)<0){break a}if(c>>>0<=1073741822){d=d<<6;c=(c&-32)+32|0;c=c>>>0>>0?d:c}else{c=2147483647}wc(a,c);c=J[a+4>>2]}J[a+4>>2]=c+1;d=1<>2]+(c>>>3&536870908)|0;if(K[b|0]){J[a>>2]=d|J[a>>2];return}J[a>>2]=J[a>>2]&(d^-1);return}qa();B()}function Ej(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=ba-16|0;ba=d;J[a+4>>2]=b;e=J[b>>2];b=J[b+4>>2];H[d+15|0]=0;Na(a+24|0,(b-e>>2>>>0)/3|0,d+15|0);b=J[a+4>>2];e=J[b+28>>2];b=J[b+24>>2];H[d+14|0]=0;Na(a+36|0,e-b>>2,d+14|0);b=J[c+12>>2];J[a+16>>2]=J[c+8>>2];J[a+20>>2]=b;b=J[c+4>>2];J[a+8>>2]=J[c>>2];J[a+12>>2]=b;ba=d+16|0}function Bc(a){var b=0,c=0,d=0,e=0;while(1){b=a;a=b+1|0;c=H[b|0];if((c|0)==32|c-9>>>0<5){continue}break}a:{b:{c:{c=H[b|0];switch(c-43|0){case 0:break b;case 2:break c;default:break a}}e=1}c=H[a|0];b=a}if(c-48>>>0<10){while(1){d=(P(d,10)-H[b|0]|0)+48|0;a=H[b+1|0];b=b+1|0;if(a-48>>>0<10){continue}break}}return e?d:0-d|0}function kj(a){a=a|0;var b=0,c=0,d=0;J[a>>2]=12468;b=J[a+32>>2];if(b){J[a+36>>2]=b;na(b)}b=J[a+20>>2];if(b){J[a+24>>2]=b;na(b)}d=J[a+8>>2];if(d){c=J[a+12>>2];b=d;if((c|0)!=(b|0)){while(1){c=c-4|0;b=J[c>>2];J[c>>2]=0;if(b){da[J[J[b>>2]+4>>2]](b)}if((c|0)!=(d|0)){continue}break}b=J[a+8>>2]}J[a+12>>2]=d;na(b)}return a|0}function Gd(a){a=a|0;var b=0,c=0,d=0;J[a>>2]=12468;b=J[a+32>>2];if(b){J[a+36>>2]=b;na(b)}b=J[a+20>>2];if(b){J[a+24>>2]=b;na(b)}d=J[a+8>>2];if(d){c=J[a+12>>2];b=d;if((c|0)!=(b|0)){while(1){c=c-4|0;b=J[c>>2];J[c>>2]=0;if(b){da[J[J[b>>2]+4>>2]](b)}if((c|0)!=(d|0)){continue}break}b=J[a+8>>2]}J[a+12>>2]=d;na(b)}na(a)}function nh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;c=ba-16|0;ba=c;J[c+12>>2]=J[a+12>>2];d=J[b+20>>2];a:{if(!!J[b+16>>2]&(d|0)>=0|(d|0)>0){break a}sa(b,J[b+4>>2],c+12|0,c+16|0);d=J[b+20>>2];e=J[b+16>>2];J[c+8>>2]=J[a+16>>2];if(!!e&(d|0)>=0|(d|0)>0){break a}sa(b,J[b+4>>2],c+8|0,c+12|0)}ya(a+112|0,b);ba=c+16|0;return 1}function pd(a){var b=0;b=1;a:{if((a|0)>=1024){b=898846567431158e293;if(a>>>0<2047){a=a-1023|0;break a}b=Infinity;a=((a|0)>=3069?3069:a)-2046|0;break a}if((a|0)>-1023){break a}b=2004168360008973e-307;if(a>>>0>4294965304){a=a+969|0;break a}b=0;a=((a|0)<=-2960?-2960:a)+1938|0}x(0,0);x(1,a+1023<<20);return b*+z()}function dh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;c=ba-16|0;ba=c;J[c+12>>2]=J[a+12>>2];d=J[b+20>>2];a:{if(!!J[b+16>>2]&(d|0)>=0|(d|0)>0){break a}sa(b,J[b+4>>2],c+12|0,c+16|0);d=J[b+20>>2];e=J[b+16>>2];J[c+8>>2]=J[a+24>>2];if(!!e&(d|0)>=0|(d|0)>0){break a}sa(b,J[b+4>>2],c+8|0,c+12|0)}ya(a+96|0,b);ba=c+16|0;return 1}function hl(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;c=ba-16|0;ba=c;J[c+12>>2]=J[a+12>>2];d=J[b+20>>2];a:{if(!!J[b+16>>2]&(d|0)>=0|(d|0)>0){break a}sa(b,J[b+4>>2],c+12|0,c+16|0);d=J[b+20>>2];e=J[b+16>>2];J[c+8>>2]=J[a+16>>2];if(!!e&(d|0)>=0|(d|0)>0){break a}sa(b,J[b+4>>2],c+8|0,c+12|0)}ba=c+16|0;return 1}function Jk(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;c=ba-16|0;ba=c;J[c+12>>2]=J[a+12>>2];d=J[b+20>>2];a:{if(!!J[b+16>>2]&(d|0)>=0|(d|0)>0){break a}sa(b,J[b+4>>2],c+12|0,c+16|0);d=J[b+20>>2];e=J[b+16>>2];J[c+8>>2]=J[a+24>>2];if(!!e&(d|0)>=0|(d|0)>0){break a}sa(b,J[b+4>>2],c+8|0,c+12|0)}ba=c+16|0;return 1}function Ba(a,b,c){var d=0,e=0;a:{b:{if(c>>>0>=4){if((a|b)&3){break b}while(1){if(J[a>>2]!=J[b>>2]){break b}b=b+4|0;a=a+4|0;c=c-4|0;if(c>>>0>3){continue}break}}if(!c){break a}}while(1){d=K[a|0];e=K[b|0];if((d|0)==(e|0)){b=b+1|0;a=a+1|0;c=c-1|0;if(c){continue}break a}break}return d-e|0}return 0}function $a(a,b){var c=0,d=0,e=0,f=0;d=ba-16|0;ba=d;a:{if(!b){b=0;break a}c=b>>31;e=(c^b)-c|0;c=S(e);Pa(d,e,0,0,0,c+81|0);e=0+J[d+8>>2]|0;c=(J[d+12>>2]^65536)+(16414-c<<16)|0;c=e>>>0>>0?c+1|0:c;f=b&-2147483648|c;c=J[d+4>>2];b=J[d>>2]}J[a>>2]=b;J[a+4>>2]=c;J[a+8>>2]=e;J[a+12>>2]=f;ba=d+16|0}function Cj(a){a=a|0;var b=0;J[a+8>>2]=11436;J[a>>2]=11224;b=J[a+96>>2];if(b){J[a+100>>2]=b;na(b)}b=J[a+80>>2];if(b){J[a+84>>2]=b;na(b)}b=J[a+68>>2];if(b){J[a+72>>2]=b;na(b)}b=J[a+56>>2];if(b){J[a+60>>2]=b;na(b)}J[a+8>>2]=11672;b=J[a+44>>2];if(b){na(b)}b=J[a+32>>2];if(b){na(b)}return a|0}function pf(a){var b=0,c=0,d=0;if(a){d=J[a+24>>2];if(d){b=d;c=J[a+28>>2];if((b|0)!=(c|0)){while(1){c=c-4|0;b=J[c>>2];J[c>>2]=0;if(b){lb(b+12|0,J[b+16>>2]);kb(b,J[b+4>>2]);na(b)}if((c|0)!=(d|0)){continue}break}b=J[a+24>>2]}J[a+28>>2]=d;na(b)}lb(a+12|0,J[a+16>>2]);kb(a,J[a+4>>2]);na(a)}}function vh(a){a=a|0;var b=0;J[a>>2]=3512;b=J[a+152>>2];if(b){J[a+156>>2]=b;na(b)}b=J[a+112>>2];if(b){J[a+116>>2]=b;na(b)}b=J[a+96>>2];if(b){na(b)}b=J[a+84>>2];if(b){na(b)}b=J[a+72>>2];if(b){na(b)}b=J[a+60>>2];if(b){na(b)}J[a>>2]=3456;b=J[a+32>>2];if(b){J[a+36>>2]=b;na(b)}return a|0}function mh(a){a=a|0;var b=0;J[a>>2]=5076;b=J[a+152>>2];if(b){J[a+156>>2]=b;na(b)}b=J[a+112>>2];if(b){J[a+116>>2]=b;na(b)}b=J[a+96>>2];if(b){na(b)}b=J[a+84>>2];if(b){na(b)}b=J[a+72>>2];if(b){na(b)}b=J[a+60>>2];if(b){na(b)}J[a>>2]=3456;b=J[a+32>>2];if(b){J[a+36>>2]=b;na(b)}return a|0}function Bj(a){a=a|0;var b=0;J[a+8>>2]=11436;J[a>>2]=11224;b=J[a+96>>2];if(b){J[a+100>>2]=b;na(b)}b=J[a+80>>2];if(b){J[a+84>>2]=b;na(b)}b=J[a+68>>2];if(b){J[a+72>>2]=b;na(b)}b=J[a+56>>2];if(b){J[a+60>>2]=b;na(b)}J[a+8>>2]=11672;b=J[a+44>>2];if(b){na(b)}b=J[a+32>>2];if(b){na(b)}na(a)}function Hh(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0;h=J[c+8>>2];e=J[c+16>>2];g=J[c+12>>2];f=g;d=J[c+20>>2];if(h>>>0>e>>>0&(f|0)>=(d|0)|(d|0)<(f|0)){b=K[J[c>>2]+e|0];i=e+1|0;f=i?d:d+1|0;J[c+16>>2]=i;J[c+20>>2]=f;J[a+4>>2]=b}return e>>>0>>0&(d|0)<=(g|0)|(d|0)<(g|0)}function pb(a,b,c){var d=0;if(!c){return J[a+4>>2]==J[b+4>>2]}if((a|0)==(b|0)){return 1}d=J[a+4>>2];a=K[d|0];c=J[b+4>>2];b=K[c|0];a:{if(!a|(b|0)!=(a|0)){break a}while(1){b=K[c+1|0];a=K[d+1|0];if(!a){break a}c=c+1|0;d=d+1|0;if((a|0)==(b|0)){continue}break}}return(a|0)==(b|0)}function Cb(a){var b=0,c=0;c=J[a+8>>2];if((c|0)>=2){b=+(c|0);b=W(b*va(b)-O[a>>3]);if(R(b)<0x8000000000000000){ca=R(b)>=1?~~(b>0?T(V(b*2.3283064365386963e-10),4294967295):W((b-+(~~b>>>0>>>0))*2.3283064365386963e-10))>>>0:0;return~~b>>>0}a=-2147483648}else{a=0}ca=a;return 0}function Dj(a){a=a|0;var b=0;J[a>>2]=11436;b=J[a+88>>2];if(b){J[a+92>>2]=b;na(b)}b=J[a+72>>2];if(b){J[a+76>>2]=b;na(b)}b=J[a+60>>2];if(b){J[a- -64>>2]=b;na(b)}b=J[a+48>>2];if(b){J[a+52>>2]=b;na(b)}J[a>>2]=11672;b=J[a+36>>2];if(b){na(b)}b=J[a+24>>2];if(b){na(b)}return a|0}function Ob(a,b){var c=0,d=0,e=0;J[a+8>>2]=0;J[a>>2]=0;J[a+4>>2]=0;a:{c=J[b+4>>2];d=J[b>>2];b:{if((c|0)==(d|0)){a=c;break b}c=c-d|0;if((c|0)<0){break a}d=c;e=oa(c);c=pa(e,0,c);d=d+c|0;J[a+8>>2]=d;J[a+4>>2]=d;J[a>>2]=c;c=J[b>>2];a=J[b+4>>2]}ua(e,c,a-c|0);return}qa();B()}function yj(a){a=a|0;var b=0;J[a>>2]=11436;b=J[a+88>>2];if(b){J[a+92>>2]=b;na(b)}b=J[a+72>>2];if(b){J[a+76>>2]=b;na(b)}b=J[a+60>>2];if(b){J[a- -64>>2]=b;na(b)}b=J[a+48>>2];if(b){J[a+52>>2]=b;na(b)}J[a>>2]=11672;b=J[a+36>>2];if(b){na(b)}b=J[a+24>>2];if(b){na(b)}na(a)}function vi(a){a=a|0;var b=0,c=0;b=oa(8);J[b+4>>2]=a;J[b>>2]=0;a:{b:{c:{if(!a){break c}c=bd(a,15016,14936);if(!c){break c}c=Ng(oa(56),c);a=J[b>>2];J[b>>2]=c;if(a){break b}break a}c=Og(oa(56),a);a=J[b>>2];J[b>>2]=c;if(!a){break a}}da[J[J[a>>2]+4>>2]](a)}return b|0}function ik(a){a=a|0;var b=0;J[a+40>>2]=2032;J[a>>2]=9988;b=J[a+48>>2];if(b){J[a+52>>2]=b;na(b)}J[a>>2]=2624;b=J[a+36>>2];J[a+36>>2]=0;if(b){da[J[J[b>>2]+4>>2]](b)}J[a>>2]=2392;b=J[a+32>>2];J[a+32>>2]=0;if(b){Ka(b)}b=J[a+16>>2];if(b){J[a+20>>2]=b;na(b)}return a|0}function ah(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;e=ba-96|0;ba=e;f=Og(e+40|0,c);$g(e,b,c);Mg(f,e);Da(e+24|0,J[e+28>>2]);nb(e+12|0,J[e+16>>2]);Da(e,J[e+4>>2]);fe(a,f,d);J[f>>2]=10256;Da(f+28|0,J[f+32>>2]);nb(f+16|0,J[f+20>>2]);Da(f+4|0,J[f+8>>2]);ba=e+96|0}function qc(a){var b=0;if(a){b=J[a+76>>2];if(b){J[a+80>>2]=b;na(b)}b=J[a- -64>>2];if(b){J[a+68>>2]=b;na(b)}b=J[a+48>>2];if(b){J[a+52>>2]=b;na(b)}b=J[a+24>>2];if(b){J[a+28>>2]=b;na(b)}b=J[a+12>>2];if(b){J[a+16>>2]=b;na(b)}b=J[a>>2];if(b){J[a+4>>2]=b;na(b)}na(a)}}function Ke(a,b,c){var d=0,e=0,f=0,g=0;f=ba-16|0;ba=f;d=ba-16|0;ba=d;b=b-a>>2;while(1){if(b){J[d+12>>2]=a;e=b>>>1|0;J[d+12>>2]=J[d+12>>2]+(e<<2);g=(e^-1)+b|0;b=e;e=M[J[d+12>>2]>>2]>2];b=e?g:b;a=e?J[d+12>>2]+4|0:a;continue}break}ba=d+16|0;ba=f+16|0;return a}function pc(a){var b=0;b=J[a+84>>2];if(b){J[a+88>>2]=b;na(b)}b=J[a+72>>2];if(b){J[a+76>>2]=b;na(b)}b=J[a+52>>2];if(b){J[a+56>>2]=b;na(b)}b=J[a+40>>2];if(b){J[a+44>>2]=b;na(b)}b=J[a+28>>2];if(b){J[a+32>>2]=b;na(b)}b=J[a+12>>2];if(b){na(b)}a=J[a>>2];if(a){na(a)}}function Lb(a,b){var c=0,d=0,e=0,f=0;c=ba-16|0;ba=c;a:{if(!b){b=0;break a}d=b;b=S(b);Pa(c,d,0,0,0,b+81|0);d=0+J[c+8>>2]|0;b=(J[c+12>>2]^65536)+(16414-b<<16)|0;f=e>>>0>d>>>0?b+1|0:b;e=J[c+4>>2];b=J[c>>2]}J[a>>2]=b;J[a+4>>2]=e;J[a+8>>2]=d;J[a+12>>2]=f;ba=c+16|0}function hk(a){a=a|0;var b=0;J[a+40>>2]=2032;J[a>>2]=9988;b=J[a+48>>2];if(b){J[a+52>>2]=b;na(b)}J[a>>2]=2624;b=J[a+36>>2];J[a+36>>2]=0;if(b){da[J[J[b>>2]+4>>2]](b)}J[a>>2]=2392;b=J[a+32>>2];J[a+32>>2]=0;if(b){Ka(b)}b=J[a+16>>2];if(b){J[a+20>>2]=b;na(b)}na(a)}function Mb(a,b,c){var d=0,e=0,f=0,g=0;if(b){while(1){c=c-1|0;e=a;a=Jl(a,b,10,0);d=ca;f=c,g=e-Hl(a,d,10,0)|48,H[f|0]=g;e=b>>>0>9;b=d;if(e){continue}break}}if(a){while(1){c=c-1|0;b=(a>>>0)/10|0;H[c|0]=a-P(b,10)|48;d=a>>>0>9;a=b;if(d){continue}break}}return c}function yl(a,b){a=a|0;b=b|0;var c=0,d=0;c=J[a+72>>2];a:{if(!c){break a}J[c+4>>2]=a+60;if(!(da[J[J[c>>2]+12>>2]](c)|0)){break a}if(!(da[J[J[a>>2]+40>>2]](a)|0)){break a}if(!(da[J[J[a>>2]+44>>2]](a,b)|0)){break a}d=da[J[J[a>>2]+48>>2]](a,b)|0}return d|0}function pg(a,b){a=a|0;b=b|0;var c=0,d=0;c=J[a+172>>2];a=J[a+176>>2];if((c|0)!=(a|0)){a=(a-c|0)/136|0;d=a>>>0<=1?1:a;a=0;while(1){if(J[P(a,136)+c>>2]==(b|0)){a=P(a,136)+c|0;return(K[a+100|0]?a+4|0:0)|0}a=a+1|0;if((d|0)!=(a|0)){continue}break}}return 0}function jk(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;e=ba-16|0;ba=e;d=a+40|0;c=Mc(d,J[a+8>>2],J[b+4>>2]-J[b>>2]>>2);d=je(d,J[a+8>>2],b,c);a:{if(d){b=J[a+32>>2];J[a+32>>2]=c;if(!b){break a}Ka(b);break a}J[e+8>>2]=0;if(!c){break a}Ka(c)}ba=e+16|0;return d|0}function Mk(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;e=ba-16|0;ba=e;d=a+40|0;c=Mc(d,J[a+8>>2],J[b+4>>2]-J[b>>2]>>2);d=xg(d,J[a+8>>2],b,c);a:{if(d){b=J[a+32>>2];J[a+32>>2]=c;if(!b){break a}Ka(b);break a}J[e+8>>2]=0;if(!c){break a}Ka(c)}ba=e+16|0;return d|0}function rb(a){var b=0,c=0,d=0;b=a;a:{if(b&3){while(1){if(!K[b|0]){break a}b=b+1|0;if(b&3){continue}break}}while(1){c=b;b=b+4|0;d=J[c>>2];if(!((d^-1)&d-16843009&-2139062144)){continue}break}while(1){b=c;c=b+1|0;if(K[b|0]){continue}break}}return b-a|0}function Nd(a,b,c,d,e,f,g){var h=0;J[a>>2]=c;if(c){h=J[c+20>>2];J[a+8>>2]=J[c+16>>2];J[a+12>>2]=h;h=J[c+28>>2];J[a+16>>2]=J[c+24>>2];J[a+20>>2]=h}J[a+56>>2]=b;J[a+48>>2]=0;J[a+52>>2]=0;J[a+40>>2]=f;J[a+44>>2]=g;H[a+32|0]=0;J[a+28>>2]=e;H[a+24|0]=d}function Ve(a,b){var c=0,d=0,e=0;A(+a);d=v(1)|0;e=v(0)|0;c=d>>>20&2047;if((c|0)!=2047){if(!c){if(a==0){c=0}else{a=Ve(a*0x10000000000000000,b);c=J[b>>2]+-64|0}J[b>>2]=c;return a}J[b>>2]=c-1022;x(0,e|0);x(1,d&-2146435073|1071644672);a=+z()}return a}function wl(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;c=J[a+36>>2];if((c|0)==J[a+40>>2]){return 1}f=a+60|0;while(1){c=J[(d<<2)+c>>2];e=da[J[J[c>>2]+20>>2]](c,f,b)|0;if(e){d=d+1|0;c=J[a+36>>2];if(d>>>0>2]-c>>2>>>0){continue}}break}return e|0}function Pc(a,b){var c=0,d=0,e=0;c=rb(b);if(c>>>0<2147483632){a:{b:{if(c>>>0>=11){d=(c|15)+1|0;e=oa(d);J[a+8>>2]=d|-2147483648;J[a>>2]=e;J[a+4>>2]=c;d=c+e|0;break b}H[a+11|0]=c;d=a+c|0;e=a;if(!c){break a}}ta(e,b,c)}H[d|0]=0;return a}gb();B()}function ne(a){J[a+32>>2]=0;J[a+12>>2]=-1;J[a+4>>2]=0;J[a+8>>2]=0;J[a+16>>2]=0;J[a+20>>2]=0;J[a>>2]=2392;H[a+21|0]=0;H[a+22|0]=0;H[a+23|0]=0;H[a+24|0]=0;H[a+25|0]=0;H[a+26|0]=0;H[a+27|0]=0;H[a+28|0]=0;J[a+36>>2]=0;J[a>>2]=2624;return a}function xl(a){a=a|0;var b=0,c=0,d=0,e=0;b=J[a+36>>2];if((b|0)==J[a+40>>2]){return 1}e=a+60|0;while(1){b=J[(c<<2)+b>>2];d=da[J[J[b>>2]+16>>2]](b,e)|0;if(d){c=c+1|0;b=J[a+36>>2];if(c>>>0>2]-b>>2>>>0){continue}}break}return d|0}function vk(a){a=a|0;var b=0;J[a>>2]=8640;b=J[a+136>>2];if(b){J[a+140>>2]=b;na(b)}b=J[a+96>>2];if(b){J[a+100>>2]=b;na(b)}b=J[a+80>>2];if(b){na(b)}b=J[a+68>>2];if(b){na(b)}b=J[a+56>>2];if(b){na(b)}b=J[a+44>>2];if(b){na(b)}return a|0}function Pf(a,b){a=a|0;b=b|0;var c=0,d=0;c=ba-16|0;ba=c;J[c+12>>2]=J[J[b+4>>2]+80>>2];b=J[b+44>>2];d=J[b+20>>2];if(!J[b+16>>2]&(d|0)<=0|(d|0)<0){sa(b,J[b+4>>2],c+12|0,c+16|0)}J[a>>2]=0;J[a+4>>2]=0;J[a+8>>2]=0;J[a+12>>2]=0;ba=c+16|0}function Hk(a){a=a|0;var b=0;J[a>>2]=6992;b=J[a+136>>2];if(b){J[a+140>>2]=b;na(b)}b=J[a+96>>2];if(b){J[a+100>>2]=b;na(b)}b=J[a+80>>2];if(b){na(b)}b=J[a+68>>2];if(b){na(b)}b=J[a+56>>2];if(b){na(b)}b=J[a+44>>2];if(b){na(b)}return a|0}function Ka(a){a=a|0;var b=0,c=0;if(a){b=J[a+88>>2];J[a+88>>2]=0;if(b){c=J[b+8>>2];if(c){J[b+12>>2]=c;na(c)}na(b)}b=J[a+68>>2];if(b){J[a+72>>2]=b;na(b)}b=J[a+64>>2];J[a+64>>2]=0;if(b){c=J[b>>2];if(c){J[b+4>>2]=c;na(c)}na(b)}na(a)}}function Te(a){var b=0,c=0,d=0;if(H[J[a>>2]]-48>>>0>=10){return 0}while(1){d=J[a>>2];c=-1;if(b>>>0<=214748364){c=H[d|0]-48|0;b=P(b,10);c=(c|0)>(b^2147483647)?-1:c+b|0}J[a>>2]=d+1;b=c;if(H[d+1|0]-48>>>0<10){continue}break}return b}function vl(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;c=J[a+36>>2];if((c|0)==J[a+40>>2]){return 1}while(1){c=J[(d<<2)+c>>2];e=da[J[J[c>>2]+24>>2]](c,b)|0;if(e){d=d+1|0;c=J[a+36>>2];if(d>>>0>2]-c>>2>>>0){continue}}break}return e|0}function uk(a){a=a|0;var b=0;J[a>>2]=8640;b=J[a+136>>2];if(b){J[a+140>>2]=b;na(b)}b=J[a+96>>2];if(b){J[a+100>>2]=b;na(b)}b=J[a+80>>2];if(b){na(b)}b=J[a+68>>2];if(b){na(b)}b=J[a+56>>2];if(b){na(b)}b=J[a+44>>2];if(b){na(b)}na(a)}function Gk(a){a=a|0;var b=0;J[a>>2]=6992;b=J[a+136>>2];if(b){J[a+140>>2]=b;na(b)}b=J[a+96>>2];if(b){J[a+100>>2]=b;na(b)}b=J[a+80>>2];if(b){na(b)}b=J[a+68>>2];if(b){na(b)}b=J[a+56>>2];if(b){na(b)}b=J[a+44>>2];if(b){na(b)}na(a)}function cj(a){a=a|0;var b=0,c=0,d=0;b=J[a+32>>2];d=J[a+36>>2];if((b|0)==(d|0)){return 1}while(1){c=J[J[a+8>>2]+(J[b>>2]<<2)>>2];c=da[J[J[c>>2]+20>>2]](c,J[a+44>>2])|0;if(c){b=b+4|0;if((d|0)!=(b|0)){continue}}break}return c|0}function Il(a,b,c,d){var e=0,f=0,g=0,h=0;f=b^d;g=f>>31;e=b>>31;a=a^e;h=a-e|0;e=(b^e)-((a>>>0>>0)+e|0)|0;a=d>>31;b=c^a;f=f>>31;a=Jl(h,e,b-a|0,(a^d)-((a>>>0>b>>>0)+a|0)|0)^f;b=a-f|0;ca=(g^ca)-((a>>>0>>0)+g|0)|0;return b}function id(a,b,c){var d=0,e=0,f=0;e=ba-16|0;ba=e;d=J[a+8>>2]&2147483647;a:{if(d>>>0>c>>>0){d=J[a>>2];J[a+4>>2]=c;Ab(d,b,c);H[e+15|0]=0;H[c+d|0]=K[e+15|0];break a}f=a;a=J[a+4>>2];kd(f,d-1|0,(c-d|0)+1|0,a,0,a,c,b)}ba=e+16|0}function Ge(a,b){a=a|0;b=b|0;var c=0,d=0;c=ba-16|0;ba=c;a=J[a+4>>2];a:{if((a|0)==-1){break a}H[c+15|0]=a;d=J[b+20>>2];if(!!J[b+16>>2]&(d|0)>=0|(d|0)>0){break a}sa(b,J[b+4>>2],c+15|0,c+16|0)}ba=c+16|0;return(a|0)!=-1|0} function hd(a,b,c){var d=0,e=0;d=ba-16|0;ba=d;a:{if(c>>>0<=10){H[a+11|0]=K[a+11|0]&128|c;H[a+11|0]=K[a+11|0]&127;Ab(a,b,c);H[d+15|0]=0;H[a+c|0]=K[d+15|0];break a}e=a;a=K[a+11|0]&127;kd(e,10,c-10|0,a,0,a,c,b)}ba=d+16|0}function Hl(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0;e=c>>>16|0;f=a>>>16|0;j=P(e,f);g=c&65535;h=a&65535;i=P(g,h);f=(i>>>16|0)+P(f,g)|0;e=(f&65535)+P(e,h)|0;ca=(P(b,c)+j|0)+P(a,d)+(f>>>16)+(e>>>16)|0;return i&65535|e<<16}function He(a,b,c){var d=0;d=J[a+16>>2];if(!d){J[a+36>>2]=1;J[a+24>>2]=c;J[a+16>>2]=b;return}a:{if((b|0)==(d|0)){if(J[a+24>>2]!=2){break a}J[a+24>>2]=c;return}H[a+54|0]=1;J[a+24>>2]=2;J[a+36>>2]=J[a+36>>2]+1}}function zk(a,b){a=a|0;b=b|0;var c=0,d=0;J[b>>2]=2;c=J[b+8>>2];d=J[b+12>>2]-c|0;if(d>>>0<=4294967291){Gc(b+8|0,d+4|0);c=J[b+8>>2]}b=c+d|0;a=J[a+4>>2];H[b|0]=a;H[b+1|0]=a>>>8;H[b+2|0]=a>>>16;H[b+3|0]=a>>>24}function Qa(a,b,c,d,e){var f=0;f=ba-256|0;ba=f;if(!(e&73728|(c|0)<=(d|0))){d=c-d|0;c=d>>>0<256;pa(f,b&255,c?d:256);if(!c){while(1){Oa(a,f,256);d=d-256|0;if(d>>>0>255){continue}break}}Oa(a,f,d)}ba=f+256|0}function Dd(a,b){var c=0,d=Q(0),e=0;b=ob(a,b);if((b|0)!=(a+4|0)){a=ba-16|0;ba=a;c=b+28|0;Xe(a,H[b+39|0]<0?J[c>>2]:c,0,1);e=Le(J[a>>2],J[a+4>>2],J[a+8>>2],J[a+12>>2]);ba=a+16|0;d=Q(e)}else{d=Q(1)}return d}function ol(a,b){a=a|0;b=b|0;var c=0,d=0;d=J[a+16>>2];c=0;a:{if(J[a+20>>2]-d>>2<=(b|0)){break a}b=J[(b<<2)+d>>2];c=0;if((b|0)<0){break a}a=J[J[a+36>>2]+(b<<2)>>2];b=J[a+32>>2];c=b?b:J[a+8>>2]}return c|0}function rl(a,b){a=a|0;b=b|0;var c=0,d=0;d=J[a+16>>2];c=0;a:{if(J[a+20>>2]-d>>2<=(b|0)){break a}b=J[(b<<2)+d>>2];c=0;if((b|0)<0){break a}a=J[J[a+36>>2]+(b<<2)>>2];c=J[a+20>>2]-J[a+16>>2]>>2}return c|0}function ql(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=-1;e=J[a+16>>2];a:{if(J[a+20>>2]-e>>2<=(b|0)){break a}b=J[(b<<2)+e>>2];if((b|0)<0){break a}d=J[J[J[J[a+36>>2]+(b<<2)>>2]+16>>2]+(c<<2)>>2]}return d|0}function yh(a){a=a|0;var b=0;J[a>>2]=2624;b=J[a+36>>2];J[a+36>>2]=0;if(b){da[J[J[b>>2]+4>>2]](b)}J[a>>2]=2392;b=J[a+32>>2];J[a+32>>2]=0;if(b){Ka(b)}b=J[a+16>>2];if(b){J[a+20>>2]=b;na(b)}return a|0}function wa(a){var b=0,c=0;c=ba-16|0;ba=c;J[c+8>>2]=0;J[c+12>>2]=0;ie(a,c+8|0);J[a+24>>2]=0;J[a+28>>2]=0;b=J[a+12>>2];J[a+16>>2]=b;if(b){na(b)}b=J[a>>2];if(b){J[a+4>>2]=b;na(b)}ba=c+16|0;return a}function Jc(a){a=Lc(a);J[a+64>>2]=0;J[a+68>>2]=0;J[a+88>>2]=0;J[a+72>>2]=0;J[a+76>>2]=0;H[a+77|0]=0;H[a+78|0]=0;H[a+79|0]=0;H[a+80|0]=0;H[a+81|0]=0;H[a+82|0]=0;H[a+83|0]=0;H[a+84|0]=0;return a}function xh(a){a=a|0;var b=0;J[a>>2]=2624;b=J[a+36>>2];J[a+36>>2]=0;if(b){da[J[J[b>>2]+4>>2]](b)}J[a>>2]=2392;b=J[a+32>>2];J[a+32>>2]=0;if(b){Ka(b)}b=J[a+16>>2];if(b){J[a+20>>2]=b;na(b)}na(a)}function nc(a){J[a+52>>2]=0;J[a+4>>2]=0;J[a+8>>2]=0;J[a>>2]=12468;J[a+12>>2]=0;J[a+16>>2]=0;J[a+20>>2]=0;J[a+24>>2]=0;J[a+28>>2]=0;J[a+32>>2]=0;J[a+36>>2]=0;J[a+40>>2]=0;J[a+44>>2]=0;return a}function We(a){var b=0;b=J[a+72>>2];J[a+72>>2]=b-1|b;b=J[a>>2];if(b&8){J[a>>2]=b|32;return-1}J[a+4>>2]=0;J[a+8>>2]=0;b=J[a+44>>2];J[a+28>>2]=b;J[a+20>>2]=b;J[a+16>>2]=b+J[a+48>>2];return 0}function Lc(a){J[a+8>>2]=0;J[a+12>>2]=0;J[a>>2]=0;J[a+40>>2]=0;J[a+44>>2]=0;J[a+28>>2]=9;H[a+24|0]=1;J[a+56>>2]=-1;J[a+60>>2]=0;J[a+16>>2]=0;J[a+20>>2]=0;J[a+48>>2]=0;J[a+52>>2]=0;return a}function od(a,b,c,d,e,f,g,h,i){var j=0;j=ba-16|0;ba=j;_a(j,b,c,d,e,f,g,h,i^-2147483648);d=J[j>>2];c=J[j+4>>2];b=J[j+12>>2];J[a+8>>2]=J[j+8>>2];J[a+12>>2]=b;J[a>>2]=d;J[a+4>>2]=c;ba=j+16|0}function yd(a,b,c){a=a|0;b=b|0;c=c|0;a=0;a:{if(J[b+4>>2]|!b){break a}a=sd(oa(36),c);J[a+24>>2]=0;J[a+28>>2]=0;J[a+32>>2]=0;c=J[b+4>>2];J[b+4>>2]=a;a=1;if(!c){break a}pf(c)}return a|0}function pe(a,b,c){a=bf(a,c);J[a+36>>2]=0;J[a+40>>2]=0;J[a>>2]=2496;J[a+72>>2]=b;J[a+44>>2]=0;J[a+48>>2]=0;J[a+52>>2]=0;J[a+56>>2]=0;J[a+60>>2]=0;J[a+64>>2]=0;J[a+68>>2]=0;return a}function di(a,b){a=a|0;b=b|0;var c=0,d=0;ef(a,b);a:{if((b|0)<0){break a}d=J[a+88>>2];c=J[a+84>>2];if(d-c>>2<=(b|0)){break a}c=(b<<2)+c|0;b=c+4|0;ta(c,b,d-b|0);J[a+88>>2]=d-4}}function xf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;a=0;a:{if(!b|(c|0)<0){break a}e=J[b+12>>2];b=J[b+8>>2];if(e-b>>2<=(c|0)){break a}H[J[b+(c<<2)>>2]+32|0]=d;a=1}return a|0}function uj(a){a=a|0;var b=0;J[a+8>>2]=11856;J[a>>2]=11692;b=J[a+56>>2];if(b){J[a+60>>2]=b;na(b)}J[a+8>>2]=11672;b=J[a+44>>2];if(b){na(b)}b=J[a+32>>2];if(b){na(b)}return a|0}function pj(a){a=a|0;var b=0;J[a+8>>2]=10876;J[a>>2]=11984;b=J[a+56>>2];if(b){J[a+60>>2]=b;na(b)}J[a+8>>2]=11128;b=J[a+44>>2];if(b){na(b)}b=J[a+32>>2];if(b){na(b)}return a|0}function Kb(a){var b=0,c=0;b=J[4773];c=a+7&-8;a=b+c|0;a:{if(a>>>0<=b>>>0?c:0){break a}if(a>>>0>ea()<<16>>>0){if(!($(a|0)|0)){break a}}J[4773]=a;return b}J[4804]=48;return-1}function tj(a){a=a|0;var b=0;J[a+8>>2]=11856;J[a>>2]=11692;b=J[a+56>>2];if(b){J[a+60>>2]=b;na(b)}J[a+8>>2]=11672;b=J[a+44>>2];if(b){na(b)}b=J[a+32>>2];if(b){na(b)}na(a)}function oj(a){a=a|0;var b=0;J[a+8>>2]=10876;J[a>>2]=11984;b=J[a+56>>2];if(b){J[a+60>>2]=b;na(b)}J[a+8>>2]=11128;b=J[a+44>>2];if(b){na(b)}b=J[a+32>>2];if(b){na(b)}na(a)}function lb(a,b){if(b){lb(a,J[b>>2]);lb(a,J[b+4>>2]);a=J[b+28>>2];J[b+28>>2]=0;if(a){lb(a+12|0,J[a+16>>2]);kb(a,J[a+4>>2]);na(a)}if(H[b+27|0]<0){na(J[b+16>>2])}na(b)}}function Ie(a,b){var c=0,d=0,e=0,f=0;J[a>>2]=18812;J[a>>2]=18924;c=rb(b);d=oa(c+13|0);J[d+8>>2]=0;J[d+4>>2]=c;J[d>>2]=c;e=a,f=ua(d+12|0,b,c+1|0),J[e+4>>2]=f;return a}function Nh(a,b){a=a|0;b=b|0;var c=0;a:{if(!(da[J[J[a>>2]+40>>2]](a)|0)){break a}if(!(da[J[J[a>>2]+44>>2]](a,b)|0)){break a}c=da[J[J[a>>2]+48>>2]](a,b)|0}return c|0}function Xj(a){a=a|0;var b=0;a:{b=J[a+64>>2];if(!b){break a}b=da[J[J[b>>2]+32>>2]](b)|0;if(!b){break a}J[a+60>>2]=((J[b+4>>2]-J[b>>2]>>2>>>0)/3|0)-J[b+40>>2]}}function Fl(a,b){a=a|0;b=b|0;var c=0;b=J[b+88>>2];if(!(!b|J[b>>2]!=2)){c=a;a=J[b+8>>2];J[c+4>>2]=K[a|0]|K[a+1|0]<<8|(K[a+2|0]<<16|K[a+3|0]<<24);c=1}return c|0}function vj(a){a=a|0;var b=0;J[a>>2]=11856;b=J[a+48>>2];if(b){J[a+52>>2]=b;na(b)}J[a>>2]=11672;b=J[a+36>>2];if(b){na(b)}b=J[a+24>>2];if(b){na(b)}return a|0}function Oj(a){a=a|0;var b=0;J[a>>2]=10876;b=J[a+48>>2];if(b){J[a+52>>2]=b;na(b)}J[a>>2]=11128;b=J[a+36>>2];if(b){na(b)}b=J[a+24>>2];if(b){na(b)}return a|0}function Lf(a,b){var c=0;a:{c=a+4|0;a=ob(a,b);if((c|0)==(a|0)){break a}b=a+28|0;a=Bc(H[a+39|0]<0?J[b>>2]:b);if((a|0)==-1){break a}return(a|0)!=0}return 0}function Pb(a,b,c){var d=0;d=a+4|0;a=ob(a,b);a:{if((d|0)==(a|0)){break a}b=a+28|0;a=Bc(H[a+39|0]<0?J[b>>2]:b);if((a|0)==-1){break a}c=(a|0)!=0}return c}function qj(a){a=a|0;var b=0;J[a>>2]=11856;b=J[a+48>>2];if(b){J[a+52>>2]=b;na(b)}J[a>>2]=11672;b=J[a+36>>2];if(b){na(b)}b=J[a+24>>2];if(b){na(b)}na(a)}function Hj(a){a=a|0;var b=0;J[a>>2]=10876;b=J[a+48>>2];if(b){J[a+52>>2]=b;na(b)}J[a>>2]=11128;b=J[a+36>>2];if(b){na(b)}b=J[a+24>>2];if(b){na(b)}na(a)}function bf(a,b){J[a+4>>2]=0;J[a+8>>2]=0;J[a>>2]=2188;J[a+12>>2]=0;J[a+16>>2]=0;J[a+20>>2]=0;J[a+24>>2]=0;J[a+28>>2]=0;J[a+32>>2]=0;kc(a,b);return a}function Sh(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;if(pb(a,J[b+8>>2],f)){Fe(b,c,d,e);return}a=J[a+8>>2];da[J[J[a>>2]+20>>2]](a,b,c,d,e,f)}function ph(a){a=a|0;var b=0;a:{if(!J[a- -64>>2]|!J[a+68>>2]|(!J[a+44>>2]|!J[a+48>>2])){break a}if(!J[a+52>>2]){break a}b=J[a+56>>2]!=0}return b|0}function fh(a){a=a|0;var b=0;a:{if(!J[a+48>>2]|!J[a+52>>2]|(!J[a+28>>2]|!J[a+32>>2])){break a}if(!J[a+36>>2]){break a}b=J[a+40>>2]!=0}return b|0}function rd(a){var b=0,c=0;b=J[a+20>>2];a:{if((J[a+24>>2]-b|0)<=0){break a}b=J[b>>2];if((b|0)==-1){break a}c=J[J[a+8>>2]+(b<<2)>>2]}return c}function Ti(){var a=0;a=gf(oa(108));J[a+84>>2]=0;J[a+88>>2]=0;J[a>>2]=14892;J[a+92>>2]=0;J[a+96>>2]=0;J[a+100>>2]=0;J[a+104>>2]=0;return a|0}function Nb(a,b){var c=0;c=-1;a:{if((b|0)==-1|(b|0)>4){break a}b=P(b,12)+a|0;a=J[b+20>>2];if((J[b+24>>2]-a|0)<=0){break a}c=J[a>>2]}return c}function Qe(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;c=b;b=J[b>>2]+7&-8;J[c>>2]=b+16;d=a,e=Le(J[b>>2],J[b+4>>2],J[b+8>>2],J[b+12>>2]),O[d>>3]=e}function gi(a){a=a|0;var b=0;J[a>>2]=14892;b=J[a+96>>2];if(b){J[a+100>>2]=b;na(b)}b=J[a+84>>2];if(b){J[a+88>>2]=b;na(b)}return Ec(a)|0}function za(a){var b=0;b=ba-16|0;ba=b;J[b+8>>2]=0;J[b+12>>2]=0;ie(a,b+8|0);J[a+24>>2]=0;J[a+28>>2]=0;J[a+16>>2]=J[a+12>>2];ba=b+16|0}function fi(a){a=a|0;var b=0;J[a>>2]=14892;b=J[a+96>>2];if(b){J[a+100>>2]=b;na(b)}b=J[a+84>>2];if(b){J[a+88>>2]=b;na(b)}na(Ec(a))}function kb(a,b){if(b){kb(a,J[b>>2]);kb(a,J[b+4>>2]);a=J[b+28>>2];if(a){J[b+32>>2]=a;na(a)}if(H[b+27|0]<0){na(J[b+16>>2])}na(b)}}function dl(a){a=a|0;var b=0;J[a>>2]=3760;b=J[a+76>>2];if(b){na(b)}J[a>>2]=3456;b=J[a+32>>2];if(b){J[a+36>>2]=b;na(b)}return a|0}function Vk(a){a=a|0;var b=0;J[a>>2]=5312;b=J[a+76>>2];if(b){na(b)}J[a>>2]=3456;b=J[a+32>>2];if(b){J[a+36>>2]=b;na(b)}return a|0}function Cl(a){a=a|0;var b=0;J[a>>2]=2392;b=J[a+32>>2];J[a+32>>2]=0;if(b){Ka(b)}b=J[a+16>>2];if(b){J[a+20>>2]=b;na(b)}return a|0}function Zh(a){a=a|0;var b=0;J[a>>2]=2188;b=J[a+16>>2];if(b){J[a+20>>2]=b;na(b)}b=J[a+4>>2];if(b){J[a+8>>2]=b;na(b)}return a|0}function Vh(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;if(pb(a,J[b+8>>2],0)){He(b,c,d);return}a=J[a+8>>2];da[J[J[a>>2]+28>>2]](a,b,c,d)}function Qi(){var a=0,b=0;a=oa(24);J[a+4>>2]=0;J[a+8>>2]=0;b=a+16|0;J[b>>2]=0;J[b+4>>2]=0;J[a>>2]=a+4;J[a+12>>2]=b;return a|0}function cl(a){a=a|0;var b=0;J[a>>2]=3760;b=J[a+76>>2];if(b){na(b)}J[a>>2]=3456;b=J[a+32>>2];if(b){J[a+36>>2]=b;na(b)}na(a)}function Uk(a){a=a|0;var b=0;J[a>>2]=5312;b=J[a+76>>2];if(b){na(b)}J[a>>2]=3456;b=J[a+32>>2];if(b){J[a+36>>2]=b;na(b)}na(a)}function Bl(a){a=a|0;var b=0;J[a>>2]=2392;b=J[a+32>>2];J[a+32>>2]=0;if(b){Ka(b)}b=J[a+16>>2];if(b){J[a+20>>2]=b;na(b)}na(a)}function oa(a){var b=0;a=a?a:1;a:{while(1){b=nd(a);if(b){break a}b=J[4973];if(b){da[b|0]();continue}break}Z();B()}return b}function Da(a,b){if(b){Da(a,J[b>>2]);Da(a,J[b+4>>2]);if(H[b+39|0]<0){na(J[b+28>>2])}if(H[b+27|0]<0){na(J[b+16>>2])}na(b)}}function Ee(a){a=a|0;var b=0,c=0;J[a>>2]=18924;b=J[a+4>>2]-12|0;c=J[b+8>>2]-1|0;J[b+8>>2]=c;if((c|0)<0){na(b)}return a|0}function ch(a,b,c,d,e){var f=0;f=b-1|0;if(f>>>0<=29){J[a+4>>2]=b;tc(a+8|0,c,(d<<2)+c|0);N[a+20>>2]=e}return f>>>0<30}function al(a){a=a|0;var b=0;J[a>>2]=3996;wa(a+112|0);J[a>>2]=3456;b=J[a+32>>2];if(b){J[a+36>>2]=b;na(b)}return a|0}function Sk(a){a=a|0;var b=0;J[a>>2]=5536;wa(a+112|0);J[a>>2]=3456;b=J[a+32>>2];if(b){J[a+36>>2]=b;na(b)}return a|0}function Og(a,b){J[a>>2]=10256;he(a+4|0);J[a+52>>2]=0;J[a+48>>2]=b;J[a>>2]=10352;J[a+40>>2]=0;J[a+44>>2]=0;return a}function Ng(a,b){J[a>>2]=10256;he(a+4|0);J[a+52>>2]=b;J[a+48>>2]=b;J[a>>2]=10352;J[a+40>>2]=0;J[a+44>>2]=0;return a}function Fh(a,b,c){a=a|0;b=b|0;c=c|0;J[a+4>>2]=b;b=J[J[J[b+4>>2]+8>>2]+(c<<2)>>2];J[a+12>>2]=c;J[a+8>>2]=b;return 1}function $e(a,b,c,d,e,f,g,h,i){J[a>>2]=b;J[a+4>>2]=c;J[a+8>>2]=d;J[a+12>>2]=e&65535|(i>>>16&32768|e>>>16&32767)<<16}function th(a){a=a|0;var b=0;if(!(!J[a+60>>2]|!J[a+44>>2]|(!J[a+48>>2]|!J[a+52>>2]))){b=J[a+56>>2]!=0}return b|0}function ih(a){a=a|0;var b=0;if(!(!J[a+44>>2]|!J[a+28>>2]|(!J[a+32>>2]|!J[a+36>>2]))){b=J[a+40>>2]!=0}return b|0}function wi(a){a=a|0;if(a){J[a>>2]=10332;Da(a+28|0,J[a+32>>2]);sc(a+16|0,J[a+20>>2]);Da(a+4|0,J[a+8>>2]);na(a)}}function Rk(a){a=a|0;var b=0;J[a>>2]=5536;wa(a+112|0);J[a>>2]=3456;b=J[a+32>>2];if(b){J[a+36>>2]=b;na(b)}na(a)}function Mf(a,b){var c=0;c=a+4|0;a=ob(a,b);if((c|0)==(a|0)){return-1}b=a+28|0;return Bc(H[a+39|0]<0?J[b>>2]:b)}function Eb(a,b){var c=0,d=0;if(!(!a|!b|(a|0)==(b|0))){c=+(b>>>0)/+(a>>>0);d=1-c;c=-(c*va(c)+d*va(d))}return c}function $k(a){a=a|0;var b=0;J[a>>2]=3996;wa(a+112|0);J[a>>2]=3456;b=J[a+32>>2];if(b){J[a+36>>2]=b;na(b)}na(a)}function gk(a){a=a|0;J[a>>2]=10256;Da(a+28|0,J[a+32>>2]);nb(a+16|0,J[a+20>>2]);Da(a+4|0,J[a+8>>2]);return a|0}function fk(a){a=a|0;J[a>>2]=10332;Da(a+28|0,J[a+32>>2]);sc(a+16|0,J[a+20>>2]);Da(a+4|0,J[a+8>>2]);return a|0}function Bb(a,b,c){var d=0;d=a+4|0;a=ob(a,b);if((d|0)!=(a|0)){b=a+28|0;c=Bc(H[a+39|0]<0?J[b>>2]:b)}return c}function ld(a,b){if(K[a+11|0]>>>7|0){J[a+4>>2]=b;return}H[a+11|0]=K[a+11|0]&128|b;H[a+11|0]=K[a+11|0]&127}function Fi(){var a=0;a=oa(48);J[a>>2]=10332;he(a+4|0);J[a>>2]=10116;J[a+40>>2]=0;J[a+44>>2]=0;return a|0}function Sg(a){a=a|0;J[a>>2]=10332;Da(a+28|0,J[a+32>>2]);sc(a+16|0,J[a+20>>2]);Da(a+4|0,J[a+8>>2]);na(a)}function Rg(a){a=a|0;J[a>>2]=10256;Da(a+28|0,J[a+32>>2]);nb(a+16|0,J[a+20>>2]);Da(a+4|0,J[a+8>>2]);na(a)}function xj(a){a=a|0;var b=0;J[a>>2]=11672;b=J[a+36>>2];if(b){na(b)}b=J[a+24>>2];if(b){na(b)}return a|0}function Gj(a){a=a|0;var b=0;J[a>>2]=11128;b=J[a+36>>2];if(b){na(b)}b=J[a+24>>2];if(b){na(b)}return a|0}function qd(a,b){da[J[J[a>>2]+8>>2]](a,J[a+12>>2]-J[a+8>>2]>>2,b);return(J[a+12>>2]-J[a+8>>2]>>2)-1|0}function Yc(a){a=a|0;var b=0;if(!(!J[a+52>>2]|(!J[a+44>>2]|!J[a+48>>2]))){b=J[a+56>>2]!=0}return b|0}function Qc(a){a=a|0;var b=0;if(!(!J[a+36>>2]|(!J[a+28>>2]|!J[a+32>>2]))){b=J[a+40>>2]!=0}return b|0}function wj(a){a=a|0;var b=0;J[a>>2]=11672;b=J[a+36>>2];if(b){na(b)}b=J[a+24>>2];if(b){na(b)}na(a)}function Fj(a){a=a|0;var b=0;J[a>>2]=11128;b=J[a+36>>2];if(b){na(b)}b=J[a+24>>2];if(b){na(b)}na(a)}function oh(a,b){a=a|0;b=b|0;var c=0;if(!(J[b+56>>2]|K[b+24|0]!=3)){J[a- -64>>2]=b;c=1}return c|0}function sh(a,b){a=a|0;b=b|0;var c=0;if(!(J[b+56>>2]|K[b+24|0]!=3)){J[a+60>>2]=b;c=1}return c|0}function hh(a,b){a=a|0;b=b|0;var c=0;if(!(J[b+56>>2]|K[b+24|0]!=3)){J[a+44>>2]=b;c=1}return c|0}function eh(a,b){a=a|0;b=b|0;var c=0;if(!(J[b+56>>2]|K[b+24|0]!=3)){J[a+48>>2]=b;c=1}return c|0}function Rh(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;if(pb(a,J[b+8>>2],f)){Fe(b,c,d,e)}}function xa(){var a=0;a=cd(4);J[a>>2]=18812;J[a>>2]=18772;J[a>>2]=18792;_(a|0,18904,14);B()}function mi(a){a=a|0;var b=0;if(a){b=J[a>>2];J[a>>2]=0;if(b){da[J[J[b>>2]+4>>2]](b)}na(a)}}function il(a){a=a|0;var b=0;J[a>>2]=3456;b=J[a+32>>2];if(b){J[a+36>>2]=b;na(b)}return a|0}function dk(a){a=a|0;var b=0;J[a>>2]=2032;b=J[a+8>>2];if(b){J[a+12>>2]=b;na(b)}return a|0}function tb(a){var b=0;J[a+12>>2]=0;J[a+16>>2]=0;b=a;a=J[a>>2];J[b+4>>2]=a;if(a){na(a)}}function hj(a){a=a|0;var b=0;b=a;a=J[a+56>>2];J[b+60>>2]=(J[a+100>>2]-J[a+96>>2]|0)/12}function zf(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return ud(b,c,d,e,f,6)|0}function zd(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return ud(b,c,d,e,f,5)|0}function le(a){a=a|0;var b=0;J[a>>2]=3456;b=J[a+32>>2];if(b){J[a+36>>2]=b;na(b)}na(a)}function Df(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return sf(b,c,d,e,f,1)|0}function Cf(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return sf(b,c,d,e,f,2)|0}function Bf(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return rf(b,c,d,e,f,3)|0}function Af(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return rf(b,c,d,e,f,4)|0}function Ad(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return ud(b,c,d,e,f,9)|0}function ck(a){a=a|0;var b=0;J[a>>2]=2032;b=J[a+8>>2];if(b){J[a+12>>2]=b;na(b)}na(a)}function si(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=Q(f);Vg(J[a>>2],b,c,d,e,f)}function sc(a,b){if(b){sc(a,J[b>>2]);sc(a,J[b+4>>2]);Da(b+20|0,J[b+24>>2]);na(b)}}function nb(a,b){if(b){nb(a,J[b>>2]);nb(a,J[b+4>>2]);Da(b+20|0,J[b+24>>2]);na(b)}}function Zj(a,b){a=a|0;b=b|0;var c=0;c=a;a=J[b+64>>2];da[J[J[a>>2]+28>>2]](c,a)}function Ek(a){a=a|0;var b=0;J[a>>2]=7264;b=J[a+60>>2];if(b){na(b)}return a|0} function sk(a){a=a|0;var b=0;J[a>>2]=8900;b=J[a+60>>2];if(b){na(b)}return a|0}function Wh(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;if(pb(a,J[b+8>>2],0)){He(b,c,d)}}function Kl(a){var b=0;while(1){if(a){a=a-1&a;b=b+1|0;continue}break}return b}function Ci(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=Q(f);Vg(a,b,c,d,e,f)}function fd(a,b){var c=0;c=a;a=(b>>>0)/100|0;return Fb(Fb(c,a),b-P(a,100)|0)}function ed(a,b){var c=0;c=a;a=(b>>>0)/1e4|0;return fd(Fb(c,a),b-P(a,1e4)|0)}function dd(a,b){var c=0;c=a;a=(b>>>0)/1e6|0;return ed(Fb(c,a),b-P(a,1e6)|0)}function _j(a,b){a=a|0;b=b|0;a=J[a+64>>2];return da[J[J[a>>2]+24>>2]](a,b)|0}function Tj(a,b){a=a|0;b=b|0;a=J[a+64>>2];return da[J[J[a>>2]+12>>2]](a,b)|0}function Sj(a,b){a=a|0;b=b|0;a=J[a+64>>2];return da[J[J[a>>2]+16>>2]](a,b)|0}function $j(a,b){a=a|0;b=b|0;a=J[a+64>>2];return da[J[J[a>>2]+20>>2]](a,b)|0}function $f(a,b){a=a|0;b=b|0;return J[J[a+28>>2]+(b>>>3&536870908)>>2]>>>b&1}function bj(a,b){a=a|0;b=b|0;J[a>>2]=0;J[a+4>>2]=0;J[a+8>>2]=0;J[a+12>>2]=0}function Oi(){var a=0;a=oa(12);J[a+8>>2]=0;J[a>>2]=0;J[a+4>>2]=0;return a|0}function Ll(a){var b=0;b=a&31;a=0-a&31;return(-1>>>b&-2)<>>a} function Li(a){a=a|0;var b=0;if(a){b=J[a>>2];if(b){J[a+4>>2]=b;na(b)}na(a)}}function Dh(a,b,c){a=a|0;b=b|0;c=c|0;return da[J[J[a>>2]+44>>2]](a,b,c)|0}function rk(a){a=a|0;var b=0;J[a>>2]=8900;b=J[a+60>>2];if(b){na(b)}na(a)}function Dk(a){a=a|0;var b=0;J[a>>2]=7264;b=J[a+60>>2];if(b){na(b)}na(a)}function ra(){var a=0;a=Ie(cd(8),1313);J[a>>2]=19024;_(a|0,19056,1);B()}function gj(a,b){a=a|0;b=b|0;H[b+84|0]=1;J[b+72>>2]=J[b+68>>2];return 1}function Tf(a){a=nc(a);J[a+56>>2]=0;J[a+60>>2]=0;J[a>>2]=12164;return a}function Sc(a,b){a=a|0;b=b|0;if(b>>>0<=1){J[a+28>>2]=b}return b>>>0<2|0}function Pi(a){a=a|0;if(a){lb(a+12|0,J[a+16>>2]);kb(a,J[a+4>>2]);na(a)}}function $h(a,b,c){a=a|0;b=b|0;c=c|0;J[a+32>>2]=c;J[a+28>>2]=b;return 1}function Qh(a){a=a|0;if(!a){return 0}return(bd(a,18476,18620)|0)!=0|0}function Uj(a){a=a|0;a=J[a+64>>2];return da[J[J[a>>2]+32>>2]](a)|0}function Eh(a,b){a=a|0;b=b|0;J[a+12>>2]=-1;J[a+8>>2]=b;return 1}function ke(a){a=Ie(cd(8),a);J[a>>2]=18972;_(a|0,19004,1);B()}function Si(a){a=a|0;return(J[a+100>>2]-J[a+96>>2]|0)/12|0}function pk(a){a=a|0;J[a>>2]=9148;wa(a+96|0);return a|0}function Bk(a){a=a|0;J[a>>2]=7524;wa(a+96|0);return a|0}function Ac(a,b){var c=0;c=oa(b);J[a+4>>2]=b;J[a>>2]=c}function ti(a,b,c){a=a|0;b=b|0;c=c|0;Xg(J[a>>2],b,c)}function ri(a,b,c){a=a|0;b=b|0;c=c|0;Yg(J[a>>2],b,c)}function gf(a){J[a>>2]=14964;pa(a+4|0,0,80);return a}function ij(a){a=a|0;J[a+52>>2]=J[J[a+56>>2]+80>>2]}function Hf(a){a=a|0;return J[a+12>>2]-J[a+8>>2]>>2}function Gl(a){if(a){return 31-S(a-1^a)|0}return 32}function ok(a){a=a|0;J[a>>2]=9148;wa(a+96|0);na(a)}function kk(a,b){a=a|0;b=b|0;return Ug(a+40|0,b)|0}function Of(a){a=a|0;J[a+52>>2]=J[J[a+4>>2]+80>>2]}function Nk(a,b){a=a|0;b=b|0;return Ge(a+40|0,b)|0}function Ni(a,b){a=a|0;b=b|0;return H[J[a>>2]+b|0]}function Gf(a){a=a|0;if(a){da[J[J[a>>2]+4>>2]](a)}}function Ak(a){a=a|0;J[a>>2]=7524;wa(a+96|0);na(a)}function Mi(a){a=a|0;return J[a+4>>2]-J[a>>2]|0}function Fb(a,b){return Je((b<<1)+18240|0,2,a)}function Di(a,b,c){a=a|0;b=b|0;c=c|0;Xg(a,b,c)}function Bi(a,b,c){a=a|0;b=b|0;c=c|0;Yg(a,b,c)}function bk(a,b){a=a|0;b=b|0;return K[b+24|0]}function Lh(a,b,c){a=a|0;b=b|0;c=c|0;return-1}function oi(a){a=a|0;return J[J[a>>2]+40>>2]}function ni(a){a=a|0;return J[J[a>>2]+44>>2]}function ui(a,b){a=a|0;b=b|0;Tg(J[a>>2],b)}function qi(a,b){a=a|0;b=b|0;nf(J[a>>2],b)}function Ri(a,b){a=a|0;b=b|0;J[a+80>>2]=b}function xi(a){a=a|0;return J[a+44>>2]}function uc(a){a=a|0;return J[a+28>>2]}function ag(a){a=a|0;return J[a+12>>2]}function Zi(a){a=a|0;return J[a+56>>2]}function Wi(a){a=a|0;return J[a+48>>2]}function Vi(a){a=a|0;return J[a+60>>2]}function Jf(a){a=a|0;return J[a+40>>2]}function Cd(a){a=a|0;return J[a+80>>2]}function Bh(){J[4843]=19252;J[4825]=42}function zh(a,b){a=a|0;b=b|0;return 6}function zc(a,b){a=a|0;b=b|0;return 1}function wh(a,b){a=a|0;b=b|0;return-1}function vc(a){a=a|0;return J[a+4>>2]}function jl(a,b){a=a|0;b=b|0;return 2}function cd(a){return nd(a+80|0)+80|0}function Za(a,b){a=a|0;b=b|0;return 0}function Yi(a){a=a|0;return H[a+24|0]}function Xi(a){a=a|0;return K[a+32|0]}function Ei(a,b){a=a|0;b=b|0;Tg(a,b)}function Ai(a,b){a=a|0;b=b|0;nf(a,b)}function Nc(a,b,c,d){Kg(a,b,c,d,1)}function Db(a,b,c,d){Kg(a,b,c,d,0)}function lc(a){a=a|0;if(a){na(a)}}function _i(){return Jc(oa(96))|0}function Ui(){return gf(oa(84))|0}function $i(){return Lc(oa(64))|0}function ad(a){a=a|0;Ee(a);na(a)}function Ph(a){a=a|0;return 1364}function Oh(a){a=a|0;return 1622}function Mh(a){a=a|0;return 1472}function ub(a){a=a|0;return a|0}function sl(a){a=a|0;na(Ah(a))}function fl(a){a=a|0;na(vh(a))}function ai(a){a=a|0;na(Ec(a))}function Xk(a){a=a|0;na(mh(a))}function Jj(a){a=a|0;na(Zf(a))}function Ij(a){a=a|0;na(Yf(a))}function Gh(a){a=a|0;na(re(a))}function oe(a){a=a|0;return 2}function kh(a){a=a|0;return 3}function ib(a){a=a|0;return 0}function Xc(a){a=a|0;return 4}function Vc(a){a=a|0;return 5}function Uc(a){a=a|0;return 6}function Ja(a){a=a|0;return 1}function Bd(){return oa(1)|0}function Ab(a,b,c){Je(b,c,a)}function qa(){ke(1313);B()}function gb(){ke(1493);B()}function ab(a){a=a|0;na(a)}function zb(a){a=a|0;B()}function xd(){return 0}function wd(){return 1}function tf(){return-1}function li(){return 2}function ki(){return 3}function ji(){return 4}function Yh(){Z();B()}function af(a){a=a|0} // EMSCRIPTEN_END_FUNCS e=K;p(q);var da=c([null,Ee,ub,ab,oe,Fl,zk,xg,ii,Ge,Hh,Mc,zh,jl,ub,dk,ck,Ja,Zk,Lk,je,yk,Ug,ek,zh,bk,Zh,zb,$h,Me,Yh,Nh,Za,Lh,Za,Za,Ja,zc,re,Gh,oe,Kh,Ih,Jh,Cl,Bl,Fh,Eh,zc,Dh,zc,ib,ib,El,Dl,Ch,Ah,sl,Al,zl,ib,yl,rl,ql,pl,ol,xl,wl,vl,ul,tl,yh,xh,me,nl,Ja,ll,ml,kl,il,le,Ja,vc,Yc,ib,wh,Za,ib,Ja,hl,gl,zb,zb,vh,fl,Xc,Yc,uh,el,dl,cl,Vc,th,Ja,Za,sh,rh,bl,al,$k,Uc,ph,Ja,Za,oh,nh,_k,ub,ab,Sc,uc,Tc,zb,le,Ja,Yc,Yk,zb,mh,Xk,Xc,Yc,uh,Wk,Vk,Uk,Vc,th,Ja,Za,sh,rh,Tk,Sk,Rk,Uc,ph,Ja,Za,oh,nh,Qk,ub,ab,Sc,uc,Rc,zb,le,ib,Ja,Pk,yh,xh,Ok,Nk,Ja,kh,Kk,Mk,ub,ab,Ja,vc,Qc,ib,wh,Za,Ja,kh,Jk,Ik,Hk,Gk,Xc,Qc,jh,Fk,Ek,Dk,Vc,ih,Ja,Za,hh,gh,Ck,Bk,Ak,Uc,fh,Ja,Za,eh,dh,xk,ub,ab,Sc,uc,Tc,ab,Ja,Qc,wk,vk,uk,Xc,Qc,jh,tk,sk,rk,Vc,ih,Ja,Za,hh,gh,qk,pk,ok,Uc,fh,Ja,Za,eh,dh,nk,ub,ab,Sc,uc,Rc,ab,ib,Ja,mk,ik,hk,lk,kk,Ja,oe,jk,fk,Sg,ah,Zg,gk,Rg,Sg,Rg,Wj,Vj,Ja,Ja,ak,Ja,lj,ej,dj,$j,_j,cj,Yj,Uj,Tj,Sj,Zj,Xj,Zf,Jj,Rj,pg,og,Qj,lg,Nj,ag,$f,vc,Yf,Ij,Mj,pg,og,Lj,lg,Kj,ag,$f,vc,Oj,Hj,Pj,Gj,Fj,Cj,Bj,Aj,zj,Dj,yj,Ej,xj,wj,uj,tj,sj,rj,vj,qj,pj,oj,nj,mj,kj,zb,Ja,zc,ib,Za,Za,Gd,ib,Sf,ij,jj,hj,ub,ab,gj,fj,zb,ib,bj,Gd,Ja,Pf,aj,Of,Gd,ib,Pf,Sf,Of,gi,fi,ei,di,bi,ci,hi,Ec,ai,ff,ef,cf,Re,Qe,_h,ub,ab,af,af,Xh,Rh,Th,Wh,ab,Sh,Uh,Vh,ab,Oh,ab,Mh,ab,Ph,ad,vc,ad,ad]);function ea(){return G.byteLength/65536|0}function ja(ka){ka=ka|0;var fa=ea()|0;var ga=fa+ka|0;if(fa0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&c<=57343){len+=4;++i}else{len+=3}}return len}var HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateMemoryViews(){var b=wasmMemory.buffer;Module["HEAP8"]=HEAP8=new Int8Array(b);Module["HEAP16"]=HEAP16=new Int16Array(b);Module["HEAP32"]=HEAP32=new Int32Array(b);Module["HEAPU8"]=HEAPU8=new Uint8Array(b);Module["HEAPU16"]=HEAPU16=new Uint16Array(b);Module["HEAPU32"]=HEAPU32=new Uint32Array(b);Module["HEAPF32"]=HEAPF32=new Float32Array(b);Module["HEAPF64"]=HEAPF64=new Float64Array(b)}var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||16777216;assert(INITIAL_MEMORY>=65536,"INITIAL_MEMORY should be larger than STACK_SIZE, was "+INITIAL_MEMORY+"! (STACK_SIZE="+65536+")");if(Module["wasmMemory"]){wasmMemory=Module["wasmMemory"]}else{wasmMemory=new WebAssembly.Memory({"initial":INITIAL_MEMORY/65536,"maximum":2147483648/65536})}updateMemoryViews();INITIAL_MEMORY=wasmMemory.buffer.byteLength;var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;function keepRuntimeAlive(){return noExitRuntime}function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function addRunDependency(id){runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}function abort(what){if(Module["onAbort"]){Module["onAbort"](what)}what="Aborted("+what+")";err(what);ABORT=true;EXITSTATUS=1;what+=". Build with -sASSERTIONS for more info.";var e=new WebAssembly.RuntimeError(what);readyPromiseReject(e);throw e}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith("file://")}var wasmBinaryFile;wasmBinaryFile="draco_encoder.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}var binary=tryParseAsDataURI(file);if(binary){return binary}if(readBinary){return readBinary(file)}throw"both async and sync fetching of the wasm failed"}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch=="function"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={"a":wasmImports};function receiveInstance(instance,module){var exports=instance.exports;Module["asm"]=exports;wasmTable=Module["asm"]["g"];addOnInit(Module["asm"]["f"]);removeRunDependency("wasm-instantiate")}addRunDependency("wasm-instantiate");function receiveInstantiationResult(result){receiveInstance(result["instance"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(function(instance){return instance}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming=="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&!ENVIRONMENT_IS_NODE&&typeof fetch=="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);readyPromiseReject(e)}}instantiateAsync().catch(readyPromiseReject);return{}}function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){callbacks.shift()(Module)}}function intArrayToString(array){var ret=[];for(var i=0;i255){chr&=255}ret.push(String.fromCharCode(chr))}return ret.join("")}function ExceptionInfo(excPtr){this.excPtr=excPtr;this.ptr=excPtr-24;this.set_type=function(type){HEAPU32[this.ptr+4>>2]=type};this.get_type=function(){return HEAPU32[this.ptr+4>>2]};this.set_destructor=function(destructor){HEAPU32[this.ptr+8>>2]=destructor};this.get_destructor=function(){return HEAPU32[this.ptr+8>>2]};this.set_refcount=function(refcount){HEAP32[this.ptr>>2]=refcount};this.set_caught=function(caught){caught=caught?1:0;HEAP8[this.ptr+12>>0]=caught};this.get_caught=function(){return HEAP8[this.ptr+12>>0]!=0};this.set_rethrown=function(rethrown){rethrown=rethrown?1:0;HEAP8[this.ptr+13>>0]=rethrown};this.get_rethrown=function(){return HEAP8[this.ptr+13>>0]!=0};this.init=function(type,destructor){this.set_adjusted_ptr(0);this.set_type(type);this.set_destructor(destructor);this.set_refcount(0);this.set_caught(false);this.set_rethrown(false)};this.add_ref=function(){var value=HEAP32[this.ptr>>2];HEAP32[this.ptr>>2]=value+1};this.release_ref=function(){var prev=HEAP32[this.ptr>>2];HEAP32[this.ptr>>2]=prev-1;return prev===1};this.set_adjusted_ptr=function(adjustedPtr){HEAPU32[this.ptr+16>>2]=adjustedPtr};this.get_adjusted_ptr=function(){return HEAPU32[this.ptr+16>>2]};this.get_exception_ptr=function(){var isPointer=___cxa_is_pointer_type(this.get_type());if(isPointer){return HEAPU32[this.excPtr>>2]}var adjusted=this.get_adjusted_ptr();if(adjusted!==0)return adjusted;return this.excPtr}}var exceptionLast=0;var uncaughtExceptionCount=0;function ___cxa_throw(ptr,type,destructor){var info=new ExceptionInfo(ptr);info.init(type,destructor);exceptionLast=ptr;uncaughtExceptionCount++;throw ptr}function _abort(){abort("")}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function getHeapMax(){return 2147483648}function emscripten_realloc_buffer(size){var b=wasmMemory.buffer;try{wasmMemory.grow(size-b.byteLength+65535>>>16);updateMemoryViews();return 1}catch(e){}}function _emscripten_resize_heap(requestedSize){var oldSize=HEAPU8.length;requestedSize=requestedSize>>>0;var maxHeapSize=getHeapMax();if(requestedSize>maxHeapSize){return false}let alignUp=(x,multiple)=>x+(multiple-x%multiple)%multiple;for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignUp(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=emscripten_realloc_buffer(newSize);if(replacement){return true}}return false}function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var decodeBase64=typeof atob=="function"?atob:function(input){var keyStr="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";var output="";var chr1,chr2,chr3;var enc1,enc2,enc3,enc4;var i=0;input=input.replace(/[^A-Za-z0-9\+\/\=]/g,"");do{enc1=keyStr.indexOf(input.charAt(i++));enc2=keyStr.indexOf(input.charAt(i++));enc3=keyStr.indexOf(input.charAt(i++));enc4=keyStr.indexOf(input.charAt(i++));chr1=enc1<<2|enc2>>4;chr2=(enc2&15)<<4|enc3>>2;chr3=(enc3&3)<<6|enc4;output=output+String.fromCharCode(chr1);if(enc3!==64){output=output+String.fromCharCode(chr2)}if(enc4!==64){output=output+String.fromCharCode(chr3)}}while(i0){return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();readyPromiseResolve(Module);if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}run();function WrapperObject(){}WrapperObject.prototype=Object.create(WrapperObject.prototype);WrapperObject.prototype.constructor=WrapperObject;WrapperObject.prototype.__class__=WrapperObject;WrapperObject.__cache__={};Module["WrapperObject"]=WrapperObject;function getCache(__class__){return(__class__||WrapperObject).__cache__}Module["getCache"]=getCache;function wrapPointer(ptr,__class__){var cache=getCache(__class__);var ret=cache[ptr];if(ret)return ret;ret=Object.create((__class__||WrapperObject).prototype);ret.ptr=ptr;return cache[ptr]=ret}Module["wrapPointer"]=wrapPointer;function castObject(obj,__class__){return wrapPointer(obj.ptr,__class__)}Module["castObject"]=castObject;Module["NULL"]=wrapPointer(0);function destroy(obj){if(!obj["__destroy__"])throw"Error: Cannot destroy object. (Did you create it yourself?)";obj["__destroy__"]();delete getCache(obj.__class__)[obj.ptr]}Module["destroy"]=destroy;function compare(obj1,obj2){return obj1.ptr===obj2.ptr}Module["compare"]=compare;function getPointer(obj){return obj.ptr}Module["getPointer"]=getPointer;function getClass(obj){return obj.__class__}Module["getClass"]=getClass;var ensureCache={buffer:0,size:0,pos:0,temps:[],needed:0,prepare:function(){if(ensureCache.needed){for(var i=0;i=ensureCache.size){assert(len>0);ensureCache.needed+=len;ret=Module["_malloc"](len);ensureCache.temps.push(ret)}else{ret=ensureCache.buffer+ensureCache.pos;ensureCache.pos+=len}return ret},copy:function(array,view,offset){offset>>>=0;var bytes=view.BYTES_PER_ELEMENT;switch(bytes){case 2:offset>>>=1;break;case 4:offset>>>=2;break;case 8:offset>>>=3;break}for(var i=0;i>>0,$jscomp.propertyToPolyfillSymbol[k]=$jscomp.IS_SYMBOL_NATIVE? $jscomp.global.Symbol(k):$jscomp.POLYFILL_PREFIX+m+"$"+k),$jscomp.defineProperty(r,$jscomp.propertyToPolyfillSymbol[k],{configurable:!0,writable:!0,value:p})))}; $jscomp.polyfill("Promise",function(l){function p(){this.batch_=null}function m(h){return h instanceof k?h:new k(function(q,w){q(h)})}if(l&&(!($jscomp.FORCE_POLYFILL_PROMISE||$jscomp.FORCE_POLYFILL_PROMISE_WHEN_NO_UNHANDLED_REJECTION&&"undefined"===typeof $jscomp.global.PromiseRejectionEvent)||!$jscomp.global.Promise||-1===$jscomp.global.Promise.toString().indexOf("[native code]")))return l;p.prototype.asyncExecute=function(h){if(null==this.batch_){this.batch_=[];var q=this;this.asyncExecuteFunction(function(){q.executeBatch_()})}this.batch_.push(h)}; var r=$jscomp.global.setTimeout;p.prototype.asyncExecuteFunction=function(h){r(h,0)};p.prototype.executeBatch_=function(){for(;this.batch_&&this.batch_.length;){var h=this.batch_;this.batch_=[];for(var q=0;q=C}},"es6","es3"); $jscomp.polyfill("Array.prototype.copyWithin",function(l){function p(m){m=Number(m);return Infinity===m||-Infinity===m?m:m|0}return l?l:function(m,r,k){var C=this.length;m=p(m);r=p(r);k=void 0===k?C:p(k);m=0>m?Math.max(C+m,0):Math.min(m,C);r=0>r?Math.max(C+r,0):Math.min(r,C);k=0>k?Math.max(C+k,0):Math.min(k,C);if(mr;)--k in this?this[--m]=this[k]:delete this[--m];return this}},"es6","es3"); $jscomp.typedArrayCopyWithin=function(l){return l?l:Array.prototype.copyWithin};$jscomp.polyfill("Int8Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Uint8Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Uint8ClampedArray.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Int16Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5"); $jscomp.polyfill("Uint16Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Int32Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Uint32Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Float32Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Float64Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5"); var DracoEncoderModule=function(){var l="undefined"!==typeof document&&document.currentScript?document.currentScript.src:void 0;"undefined"!==typeof __filename&&(l=l||__filename);return function(p){function m(f){return a.locateFile?a.locateFile(f,L):L+f}function r(){var f=ba.buffer;a.HEAP8=O=new Int8Array(f);a.HEAP16=ea=new Int16Array(f);a.HEAP32=S=new Int32Array(f);a.HEAPU8=fa=new Uint8Array(f);a.HEAPU16=new Uint16Array(f);a.HEAPU32=T=new Uint32Array(f);a.HEAPF32=ha=new Float32Array(f);a.HEAPF64= new Float64Array(f)}function k(f){if(a.onAbort)a.onAbort(f);f="Aborted("+f+")";W(f);na=!0;f=new WebAssembly.RuntimeError(f+". Build with -sASSERTIONS for more info.");ca(f);throw f;}function C(f){try{if(f==K&&X)return new Uint8Array(X);if(ia)return ia(f);throw"both async and sync fetching of the wasm failed";}catch(b){k(b)}}function h(){if(!X&&(oa||Y)){if("function"==typeof fetch&&!K.startsWith("file://"))return fetch(K,{credentials:"same-origin"}).then(function(f){if(!f.ok)throw"failed to load wasm binary file at '"+ K+"'";return f.arrayBuffer()}).catch(function(){return C(K)});if(ja)return new Promise(function(f,b){ja(K,function(c){f(new Uint8Array(c))},b)})}return Promise.resolve().then(function(){return C(K)})}function q(f){for(;0>2]=b};this.get_type=function(){return T[this.ptr+4>>2]};this.set_destructor=function(b){T[this.ptr+8>>2]=b};this.get_destructor=function(){return T[this.ptr+8>>2]};this.set_refcount= function(b){S[this.ptr>>2]=b};this.set_caught=function(b){O[this.ptr+12>>0]=b?1:0};this.get_caught=function(){return 0!=O[this.ptr+12>>0]};this.set_rethrown=function(b){O[this.ptr+13>>0]=b?1:0};this.get_rethrown=function(){return 0!=O[this.ptr+13>>0]};this.init=function(b,c){this.set_adjusted_ptr(0);this.set_type(b);this.set_destructor(c);this.set_refcount(0);this.set_caught(!1);this.set_rethrown(!1)};this.add_ref=function(){S[this.ptr>>2]+=1};this.release_ref=function(){var b=S[this.ptr>>2];S[this.ptr>> 2]=b-1;return 1===b};this.set_adjusted_ptr=function(b){T[this.ptr+16>>2]=b};this.get_adjusted_ptr=function(){return T[this.ptr+16>>2]};this.get_exception_ptr=function(){if(pa(this.get_type()))return T[this.excPtr>>2];var b=this.get_adjusted_ptr();return 0!==b?b:this.excPtr}}function B(){function f(){if(!da&&(da=!0,a.calledRun=!0,!na)){qa=!0;q(ka);ra(a);if(a.onRuntimeInitialized)a.onRuntimeInitialized();if(a.postRun)for("function"==typeof a.postRun&&(a.postRun=[a.postRun]);a.postRun.length;)sa.unshift(a.postRun.shift()); q(sa)}}if(!(0=d?b++:2047>=d?b+=2:55296<=d&&57343>=d?(b+=4,++c):b+=3}b=Array(b+1);c=0;d=b.length;if(0=g){var t=f.charCodeAt(++e);g=65536+((g&1023)<<10)|t&1023}if(127>=g){if(c>=d)break;b[c++]=g}else{if(2047>=g){if(c+1>=d)break;b[c++]=192|g>>6}else{if(65535>=g){if(c+2>=d)break;b[c++]=224|g>>12}else{if(c+3>=d)break;b[c++]=240|g>>18;b[c++]=128|g>>12&63}b[c++]=128|g>>6&63}b[c++]=128|g&63}}b[c]=0}f=n.alloc(b,O);n.copy(b,O,f);return f}return f} function Q(f){if("object"===typeof f){var b=n.alloc(f,O);n.copy(f,O,b);return b}return f}function R(f){if("object"===typeof f){var b=n.alloc(f,ea);n.copy(f,ea,b);return b}return f}function V(f){if("object"===typeof f){var b=n.alloc(f,S);n.copy(f,S,b);return b}return f}function Z(f){if("object"===typeof f){var b=n.alloc(f,ha);n.copy(f,ha,b);return b}return f}function P(){throw"cannot construct a VoidPtr, no constructor in IDL";}function M(){this.ptr=ua();D(M)[this.ptr]=this}function z(){this.ptr=va(); D(z)[this.ptr]=this}function G(){this.ptr=wa();D(G)[this.ptr]=this}function E(){this.ptr=xa();D(E)[this.ptr]=this}function N(){this.ptr=ya();D(N)[this.ptr]=this}function H(){this.ptr=za();D(H)[this.ptr]=this}function F(){this.ptr=Aa();D(F)[this.ptr]=this}function x(){this.ptr=Ba();D(x)[this.ptr]=this}function u(){this.ptr=Ca();D(u)[this.ptr]=this}function y(){this.ptr=Da();D(y)[this.ptr]=this}function A(f){f&&"object"===typeof f&&(f=f.ptr);this.ptr=Ea(f);D(A)[this.ptr]=this}p=void 0===p?{}:p;var a= "undefined"!=typeof p?p:{},ra,ca;a.ready=new Promise(function(f,b){ra=f;ca=b});var Fa=!1,Ga=!1;a.onRuntimeInitialized=function(){Fa=!0;if(Ga&&"function"===typeof a.onModuleLoaded)a.onModuleLoaded(a)};a.onModuleParsed=function(){Ga=!0;if(Fa&&"function"===typeof a.onModuleLoaded)a.onModuleLoaded(a)};a.isVersionSupported=function(f){if("string"!==typeof f)return!1;f=f.split(".");return 2>f.length||3=f[1]?!0:0!=f[0]||10>>=0;if(2147483648=c;c*=2){var d=b*(1+.2/c);d=Math.min(d,f+100663296);var e=Math;d=Math.max(f,d);e=e.min.call(e,2147483648, d+(65536-d%65536)%65536);a:{d=ba.buffer;try{ba.grow(e-d.byteLength+65535>>>16);r();var g=1;break a}catch(t){}g=void 0}if(g)return!0}return!1}};(function(){function f(e,g){a.asm=e.exports;ba=a.asm.e;r();ka.unshift(a.asm.f);U--;a.monitorRunDependencies&&a.monitorRunDependencies(U);0==U&&(null!==ma&&(clearInterval(ma),ma=null),aa&&(e=aa,aa=null,e()))}function b(e){f(e.instance)}function c(e){return h().then(function(g){return WebAssembly.instantiate(g,d)}).then(function(g){return g}).then(e,function(g){W("failed to asynchronously prepare wasm: "+ g);k(g)})}var d={a:qc};U++;a.monitorRunDependencies&&a.monitorRunDependencies(U);if(a.instantiateWasm)try{return a.instantiateWasm(d,f)}catch(e){W("Module.instantiateWasm callback failed with error: "+e),ca(e)}(function(){return X||"function"!=typeof WebAssembly.instantiateStreaming||K.startsWith("data:application/octet-stream;base64,")||K.startsWith("file://")||Ia||"function"!=typeof fetch?c(b):fetch(K,{credentials:"same-origin"}).then(function(e){return WebAssembly.instantiateStreaming(e,d).then(b, function(g){W("wasm streaming compile failed: "+g);W("falling back to ArrayBuffer instantiation");return c(b)})})})().catch(ca);return{}})();var La=a._emscripten_bind_VoidPtr___destroy___0=function(){return(La=a._emscripten_bind_VoidPtr___destroy___0=a.asm.h).apply(null,arguments)},ua=a._emscripten_bind_GeometryAttribute_GeometryAttribute_0=function(){return(ua=a._emscripten_bind_GeometryAttribute_GeometryAttribute_0=a.asm.i).apply(null,arguments)},Ma=a._emscripten_bind_GeometryAttribute___destroy___0= function(){return(Ma=a._emscripten_bind_GeometryAttribute___destroy___0=a.asm.j).apply(null,arguments)},va=a._emscripten_bind_PointAttribute_PointAttribute_0=function(){return(va=a._emscripten_bind_PointAttribute_PointAttribute_0=a.asm.k).apply(null,arguments)},Na=a._emscripten_bind_PointAttribute_size_0=function(){return(Na=a._emscripten_bind_PointAttribute_size_0=a.asm.l).apply(null,arguments)},Oa=a._emscripten_bind_PointAttribute_attribute_type_0=function(){return(Oa=a._emscripten_bind_PointAttribute_attribute_type_0= a.asm.m).apply(null,arguments)},Pa=a._emscripten_bind_PointAttribute_data_type_0=function(){return(Pa=a._emscripten_bind_PointAttribute_data_type_0=a.asm.n).apply(null,arguments)},Qa=a._emscripten_bind_PointAttribute_num_components_0=function(){return(Qa=a._emscripten_bind_PointAttribute_num_components_0=a.asm.o).apply(null,arguments)},Ra=a._emscripten_bind_PointAttribute_normalized_0=function(){return(Ra=a._emscripten_bind_PointAttribute_normalized_0=a.asm.p).apply(null,arguments)},Sa=a._emscripten_bind_PointAttribute_byte_stride_0= function(){return(Sa=a._emscripten_bind_PointAttribute_byte_stride_0=a.asm.q).apply(null,arguments)},Ta=a._emscripten_bind_PointAttribute_byte_offset_0=function(){return(Ta=a._emscripten_bind_PointAttribute_byte_offset_0=a.asm.r).apply(null,arguments)},Ua=a._emscripten_bind_PointAttribute_unique_id_0=function(){return(Ua=a._emscripten_bind_PointAttribute_unique_id_0=a.asm.s).apply(null,arguments)},Va=a._emscripten_bind_PointAttribute___destroy___0=function(){return(Va=a._emscripten_bind_PointAttribute___destroy___0= a.asm.t).apply(null,arguments)},wa=a._emscripten_bind_PointCloud_PointCloud_0=function(){return(wa=a._emscripten_bind_PointCloud_PointCloud_0=a.asm.u).apply(null,arguments)},Wa=a._emscripten_bind_PointCloud_num_attributes_0=function(){return(Wa=a._emscripten_bind_PointCloud_num_attributes_0=a.asm.v).apply(null,arguments)},Xa=a._emscripten_bind_PointCloud_num_points_0=function(){return(Xa=a._emscripten_bind_PointCloud_num_points_0=a.asm.w).apply(null,arguments)},Ya=a._emscripten_bind_PointCloud___destroy___0= function(){return(Ya=a._emscripten_bind_PointCloud___destroy___0=a.asm.x).apply(null,arguments)},xa=a._emscripten_bind_Mesh_Mesh_0=function(){return(xa=a._emscripten_bind_Mesh_Mesh_0=a.asm.y).apply(null,arguments)},Za=a._emscripten_bind_Mesh_num_faces_0=function(){return(Za=a._emscripten_bind_Mesh_num_faces_0=a.asm.z).apply(null,arguments)},$a=a._emscripten_bind_Mesh_num_attributes_0=function(){return($a=a._emscripten_bind_Mesh_num_attributes_0=a.asm.A).apply(null,arguments)},ab=a._emscripten_bind_Mesh_num_points_0= function(){return(ab=a._emscripten_bind_Mesh_num_points_0=a.asm.B).apply(null,arguments)},bb=a._emscripten_bind_Mesh_set_num_points_1=function(){return(bb=a._emscripten_bind_Mesh_set_num_points_1=a.asm.C).apply(null,arguments)},cb=a._emscripten_bind_Mesh___destroy___0=function(){return(cb=a._emscripten_bind_Mesh___destroy___0=a.asm.D).apply(null,arguments)},ya=a._emscripten_bind_Metadata_Metadata_0=function(){return(ya=a._emscripten_bind_Metadata_Metadata_0=a.asm.E).apply(null,arguments)},db=a._emscripten_bind_Metadata___destroy___0= function(){return(db=a._emscripten_bind_Metadata___destroy___0=a.asm.F).apply(null,arguments)},za=a._emscripten_bind_DracoInt8Array_DracoInt8Array_0=function(){return(za=a._emscripten_bind_DracoInt8Array_DracoInt8Array_0=a.asm.G).apply(null,arguments)},eb=a._emscripten_bind_DracoInt8Array_GetValue_1=function(){return(eb=a._emscripten_bind_DracoInt8Array_GetValue_1=a.asm.H).apply(null,arguments)},fb=a._emscripten_bind_DracoInt8Array_size_0=function(){return(fb=a._emscripten_bind_DracoInt8Array_size_0= a.asm.I).apply(null,arguments)},gb=a._emscripten_bind_DracoInt8Array___destroy___0=function(){return(gb=a._emscripten_bind_DracoInt8Array___destroy___0=a.asm.J).apply(null,arguments)},Aa=a._emscripten_bind_MetadataBuilder_MetadataBuilder_0=function(){return(Aa=a._emscripten_bind_MetadataBuilder_MetadataBuilder_0=a.asm.K).apply(null,arguments)},hb=a._emscripten_bind_MetadataBuilder_AddStringEntry_3=function(){return(hb=a._emscripten_bind_MetadataBuilder_AddStringEntry_3=a.asm.L).apply(null,arguments)}, ib=a._emscripten_bind_MetadataBuilder_AddIntEntry_3=function(){return(ib=a._emscripten_bind_MetadataBuilder_AddIntEntry_3=a.asm.M).apply(null,arguments)},jb=a._emscripten_bind_MetadataBuilder_AddIntEntryArray_4=function(){return(jb=a._emscripten_bind_MetadataBuilder_AddIntEntryArray_4=a.asm.N).apply(null,arguments)},kb=a._emscripten_bind_MetadataBuilder_AddDoubleEntry_3=function(){return(kb=a._emscripten_bind_MetadataBuilder_AddDoubleEntry_3=a.asm.O).apply(null,arguments)},lb=a._emscripten_bind_MetadataBuilder___destroy___0= function(){return(lb=a._emscripten_bind_MetadataBuilder___destroy___0=a.asm.P).apply(null,arguments)},Ba=a._emscripten_bind_PointCloudBuilder_PointCloudBuilder_0=function(){return(Ba=a._emscripten_bind_PointCloudBuilder_PointCloudBuilder_0=a.asm.Q).apply(null,arguments)},mb=a._emscripten_bind_PointCloudBuilder_AddFloatAttribute_5=function(){return(mb=a._emscripten_bind_PointCloudBuilder_AddFloatAttribute_5=a.asm.R).apply(null,arguments)},nb=a._emscripten_bind_PointCloudBuilder_AddInt8Attribute_5= function(){return(nb=a._emscripten_bind_PointCloudBuilder_AddInt8Attribute_5=a.asm.S).apply(null,arguments)},ob=a._emscripten_bind_PointCloudBuilder_AddUInt8Attribute_5=function(){return(ob=a._emscripten_bind_PointCloudBuilder_AddUInt8Attribute_5=a.asm.T).apply(null,arguments)},pb=a._emscripten_bind_PointCloudBuilder_AddInt16Attribute_5=function(){return(pb=a._emscripten_bind_PointCloudBuilder_AddInt16Attribute_5=a.asm.U).apply(null,arguments)},qb=a._emscripten_bind_PointCloudBuilder_AddUInt16Attribute_5= function(){return(qb=a._emscripten_bind_PointCloudBuilder_AddUInt16Attribute_5=a.asm.V).apply(null,arguments)},rb=a._emscripten_bind_PointCloudBuilder_AddInt32Attribute_5=function(){return(rb=a._emscripten_bind_PointCloudBuilder_AddInt32Attribute_5=a.asm.W).apply(null,arguments)},sb=a._emscripten_bind_PointCloudBuilder_AddUInt32Attribute_5=function(){return(sb=a._emscripten_bind_PointCloudBuilder_AddUInt32Attribute_5=a.asm.X).apply(null,arguments)},tb=a._emscripten_bind_PointCloudBuilder_AddMetadata_2= function(){return(tb=a._emscripten_bind_PointCloudBuilder_AddMetadata_2=a.asm.Y).apply(null,arguments)},ub=a._emscripten_bind_PointCloudBuilder_SetMetadataForAttribute_3=function(){return(ub=a._emscripten_bind_PointCloudBuilder_SetMetadataForAttribute_3=a.asm.Z).apply(null,arguments)},vb=a._emscripten_bind_PointCloudBuilder_SetNormalizedFlagForAttribute_3=function(){return(vb=a._emscripten_bind_PointCloudBuilder_SetNormalizedFlagForAttribute_3=a.asm._).apply(null,arguments)},wb=a._emscripten_bind_PointCloudBuilder___destroy___0= function(){return(wb=a._emscripten_bind_PointCloudBuilder___destroy___0=a.asm.$).apply(null,arguments)},Ca=a._emscripten_bind_MeshBuilder_MeshBuilder_0=function(){return(Ca=a._emscripten_bind_MeshBuilder_MeshBuilder_0=a.asm.aa).apply(null,arguments)},xb=a._emscripten_bind_MeshBuilder_AddFacesToMesh_3=function(){return(xb=a._emscripten_bind_MeshBuilder_AddFacesToMesh_3=a.asm.ba).apply(null,arguments)},yb=a._emscripten_bind_MeshBuilder_AddFloatAttributeToMesh_5=function(){return(yb=a._emscripten_bind_MeshBuilder_AddFloatAttributeToMesh_5= a.asm.ca).apply(null,arguments)},zb=a._emscripten_bind_MeshBuilder_AddInt32AttributeToMesh_5=function(){return(zb=a._emscripten_bind_MeshBuilder_AddInt32AttributeToMesh_5=a.asm.da).apply(null,arguments)},Ab=a._emscripten_bind_MeshBuilder_AddMetadataToMesh_2=function(){return(Ab=a._emscripten_bind_MeshBuilder_AddMetadataToMesh_2=a.asm.ea).apply(null,arguments)},Bb=a._emscripten_bind_MeshBuilder_AddFloatAttribute_5=function(){return(Bb=a._emscripten_bind_MeshBuilder_AddFloatAttribute_5=a.asm.fa).apply(null, arguments)},Cb=a._emscripten_bind_MeshBuilder_AddInt8Attribute_5=function(){return(Cb=a._emscripten_bind_MeshBuilder_AddInt8Attribute_5=a.asm.ga).apply(null,arguments)},Db=a._emscripten_bind_MeshBuilder_AddUInt8Attribute_5=function(){return(Db=a._emscripten_bind_MeshBuilder_AddUInt8Attribute_5=a.asm.ha).apply(null,arguments)},Eb=a._emscripten_bind_MeshBuilder_AddInt16Attribute_5=function(){return(Eb=a._emscripten_bind_MeshBuilder_AddInt16Attribute_5=a.asm.ia).apply(null,arguments)},Fb=a._emscripten_bind_MeshBuilder_AddUInt16Attribute_5= function(){return(Fb=a._emscripten_bind_MeshBuilder_AddUInt16Attribute_5=a.asm.ja).apply(null,arguments)},Gb=a._emscripten_bind_MeshBuilder_AddInt32Attribute_5=function(){return(Gb=a._emscripten_bind_MeshBuilder_AddInt32Attribute_5=a.asm.ka).apply(null,arguments)},Hb=a._emscripten_bind_MeshBuilder_AddUInt32Attribute_5=function(){return(Hb=a._emscripten_bind_MeshBuilder_AddUInt32Attribute_5=a.asm.la).apply(null,arguments)},Ib=a._emscripten_bind_MeshBuilder_AddMetadata_2=function(){return(Ib=a._emscripten_bind_MeshBuilder_AddMetadata_2= a.asm.ma).apply(null,arguments)},Jb=a._emscripten_bind_MeshBuilder_SetMetadataForAttribute_3=function(){return(Jb=a._emscripten_bind_MeshBuilder_SetMetadataForAttribute_3=a.asm.na).apply(null,arguments)},Kb=a._emscripten_bind_MeshBuilder_SetNormalizedFlagForAttribute_3=function(){return(Kb=a._emscripten_bind_MeshBuilder_SetNormalizedFlagForAttribute_3=a.asm.oa).apply(null,arguments)},Lb=a._emscripten_bind_MeshBuilder___destroy___0=function(){return(Lb=a._emscripten_bind_MeshBuilder___destroy___0= a.asm.pa).apply(null,arguments)},Da=a._emscripten_bind_Encoder_Encoder_0=function(){return(Da=a._emscripten_bind_Encoder_Encoder_0=a.asm.qa).apply(null,arguments)},Mb=a._emscripten_bind_Encoder_SetEncodingMethod_1=function(){return(Mb=a._emscripten_bind_Encoder_SetEncodingMethod_1=a.asm.ra).apply(null,arguments)},Nb=a._emscripten_bind_Encoder_SetAttributeQuantization_2=function(){return(Nb=a._emscripten_bind_Encoder_SetAttributeQuantization_2=a.asm.sa).apply(null,arguments)},Ob=a._emscripten_bind_Encoder_SetAttributeExplicitQuantization_5= function(){return(Ob=a._emscripten_bind_Encoder_SetAttributeExplicitQuantization_5=a.asm.ta).apply(null,arguments)},Pb=a._emscripten_bind_Encoder_SetSpeedOptions_2=function(){return(Pb=a._emscripten_bind_Encoder_SetSpeedOptions_2=a.asm.ua).apply(null,arguments)},Qb=a._emscripten_bind_Encoder_SetTrackEncodedProperties_1=function(){return(Qb=a._emscripten_bind_Encoder_SetTrackEncodedProperties_1=a.asm.va).apply(null,arguments)},Rb=a._emscripten_bind_Encoder_EncodeMeshToDracoBuffer_2=function(){return(Rb= a._emscripten_bind_Encoder_EncodeMeshToDracoBuffer_2=a.asm.wa).apply(null,arguments)},Sb=a._emscripten_bind_Encoder_EncodePointCloudToDracoBuffer_3=function(){return(Sb=a._emscripten_bind_Encoder_EncodePointCloudToDracoBuffer_3=a.asm.xa).apply(null,arguments)},Tb=a._emscripten_bind_Encoder_GetNumberOfEncodedPoints_0=function(){return(Tb=a._emscripten_bind_Encoder_GetNumberOfEncodedPoints_0=a.asm.ya).apply(null,arguments)},Ub=a._emscripten_bind_Encoder_GetNumberOfEncodedFaces_0=function(){return(Ub= a._emscripten_bind_Encoder_GetNumberOfEncodedFaces_0=a.asm.za).apply(null,arguments)},Vb=a._emscripten_bind_Encoder___destroy___0=function(){return(Vb=a._emscripten_bind_Encoder___destroy___0=a.asm.Aa).apply(null,arguments)},Ea=a._emscripten_bind_ExpertEncoder_ExpertEncoder_1=function(){return(Ea=a._emscripten_bind_ExpertEncoder_ExpertEncoder_1=a.asm.Ba).apply(null,arguments)},Wb=a._emscripten_bind_ExpertEncoder_SetEncodingMethod_1=function(){return(Wb=a._emscripten_bind_ExpertEncoder_SetEncodingMethod_1= a.asm.Ca).apply(null,arguments)},Xb=a._emscripten_bind_ExpertEncoder_SetAttributeQuantization_2=function(){return(Xb=a._emscripten_bind_ExpertEncoder_SetAttributeQuantization_2=a.asm.Da).apply(null,arguments)},Yb=a._emscripten_bind_ExpertEncoder_SetAttributeExplicitQuantization_5=function(){return(Yb=a._emscripten_bind_ExpertEncoder_SetAttributeExplicitQuantization_5=a.asm.Ea).apply(null,arguments)},Zb=a._emscripten_bind_ExpertEncoder_SetSpeedOptions_2=function(){return(Zb=a._emscripten_bind_ExpertEncoder_SetSpeedOptions_2= a.asm.Fa).apply(null,arguments)},$b=a._emscripten_bind_ExpertEncoder_SetTrackEncodedProperties_1=function(){return($b=a._emscripten_bind_ExpertEncoder_SetTrackEncodedProperties_1=a.asm.Ga).apply(null,arguments)},ac=a._emscripten_bind_ExpertEncoder_EncodeToDracoBuffer_2=function(){return(ac=a._emscripten_bind_ExpertEncoder_EncodeToDracoBuffer_2=a.asm.Ha).apply(null,arguments)},bc=a._emscripten_bind_ExpertEncoder_GetNumberOfEncodedPoints_0=function(){return(bc=a._emscripten_bind_ExpertEncoder_GetNumberOfEncodedPoints_0= a.asm.Ia).apply(null,arguments)},cc=a._emscripten_bind_ExpertEncoder_GetNumberOfEncodedFaces_0=function(){return(cc=a._emscripten_bind_ExpertEncoder_GetNumberOfEncodedFaces_0=a.asm.Ja).apply(null,arguments)},dc=a._emscripten_bind_ExpertEncoder___destroy___0=function(){return(dc=a._emscripten_bind_ExpertEncoder___destroy___0=a.asm.Ka).apply(null,arguments)},ec=a._emscripten_enum_draco_GeometryAttribute_Type_INVALID=function(){return(ec=a._emscripten_enum_draco_GeometryAttribute_Type_INVALID=a.asm.La).apply(null, arguments)},fc=a._emscripten_enum_draco_GeometryAttribute_Type_POSITION=function(){return(fc=a._emscripten_enum_draco_GeometryAttribute_Type_POSITION=a.asm.Ma).apply(null,arguments)},gc=a._emscripten_enum_draco_GeometryAttribute_Type_NORMAL=function(){return(gc=a._emscripten_enum_draco_GeometryAttribute_Type_NORMAL=a.asm.Na).apply(null,arguments)},hc=a._emscripten_enum_draco_GeometryAttribute_Type_COLOR=function(){return(hc=a._emscripten_enum_draco_GeometryAttribute_Type_COLOR=a.asm.Oa).apply(null, arguments)},ic=a._emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD=function(){return(ic=a._emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD=a.asm.Pa).apply(null,arguments)},jc=a._emscripten_enum_draco_GeometryAttribute_Type_GENERIC=function(){return(jc=a._emscripten_enum_draco_GeometryAttribute_Type_GENERIC=a.asm.Qa).apply(null,arguments)},kc=a._emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE=function(){return(kc=a._emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE= a.asm.Ra).apply(null,arguments)},lc=a._emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD=function(){return(lc=a._emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD=a.asm.Sa).apply(null,arguments)},mc=a._emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH=function(){return(mc=a._emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH=a.asm.Ta).apply(null,arguments)},nc=a._emscripten_enum_draco_MeshEncoderMethod_MESH_SEQUENTIAL_ENCODING=function(){return(nc=a._emscripten_enum_draco_MeshEncoderMethod_MESH_SEQUENTIAL_ENCODING= a.asm.Ua).apply(null,arguments)},oc=a._emscripten_enum_draco_MeshEncoderMethod_MESH_EDGEBREAKER_ENCODING=function(){return(oc=a._emscripten_enum_draco_MeshEncoderMethod_MESH_EDGEBREAKER_ENCODING=a.asm.Va).apply(null,arguments)};a._malloc=function(){return(a._malloc=a.asm.Wa).apply(null,arguments)};a._free=function(){return(a._free=a.asm.Xa).apply(null,arguments)};var pa=function(){return(pa=a.asm.Ya).apply(null,arguments)};a.___start_em_js=19116;a.___stop_em_js=19214;var da;aa=function b(){da||B(); da||(aa=b)};if(a.preInit)for("function"==typeof a.preInit&&(a.preInit=[a.preInit]);0=n.size?(0>>=0;switch(c.BYTES_PER_ELEMENT){case 2:d>>>=1;break;case 4:d>>>=2;break;case 8:d>>>=3}for(var e=0;e>>0,$jscomp.propertyToPolyfillSymbol[h]=$jscomp.IS_SYMBOL_NATIVE? $jscomp.global.Symbol(h):$jscomp.POLYFILL_PREFIX+l+"$"+h),$jscomp.defineProperty(p,$jscomp.propertyToPolyfillSymbol[h],{configurable:!0,writable:!0,value:n})))}; $jscomp.polyfill("Promise",function(k){function n(){this.batch_=null}function l(f){return f instanceof h?f:new h(function(q,v){q(f)})}if(k&&(!($jscomp.FORCE_POLYFILL_PROMISE||$jscomp.FORCE_POLYFILL_PROMISE_WHEN_NO_UNHANDLED_REJECTION&&"undefined"===typeof $jscomp.global.PromiseRejectionEvent)||!$jscomp.global.Promise||-1===$jscomp.global.Promise.toString().indexOf("[native code]")))return k;n.prototype.asyncExecute=function(f){if(null==this.batch_){this.batch_=[];var q=this;this.asyncExecuteFunction(function(){q.executeBatch_()})}this.batch_.push(f)}; var p=$jscomp.global.setTimeout;n.prototype.asyncExecuteFunction=function(f){p(f,0)};n.prototype.executeBatch_=function(){for(;this.batch_&&this.batch_.length;){var f=this.batch_;this.batch_=[];for(var q=0;q=A}},"es6","es3"); $jscomp.polyfill("Array.prototype.copyWithin",function(k){function n(l){l=Number(l);return Infinity===l||-Infinity===l?l:l|0}return k?k:function(l,p,h){var A=this.length;l=n(l);p=n(p);h=void 0===h?A:n(h);l=0>l?Math.max(A+l,0):Math.min(l,A);p=0>p?Math.max(A+p,0):Math.min(p,A);h=0>h?Math.max(A+h,0):Math.min(h,A);if(lp;)--h in this?this[--l]=this[h]:delete this[--l];return this}},"es6","es3"); $jscomp.typedArrayCopyWithin=function(k){return k?k:Array.prototype.copyWithin};$jscomp.polyfill("Int8Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Uint8Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Uint8ClampedArray.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Int16Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5"); $jscomp.polyfill("Uint16Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Int32Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Uint32Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Float32Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Float64Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5"); var DracoDecoderModule=function(){var k="undefined"!==typeof document&&document.currentScript?document.currentScript.src:void 0;"undefined"!==typeof __filename&&(k=k||__filename);return function(n){function l(e){return a.locateFile?a.locateFile(e,U):U+e}function p(e,b,c){var d=b+c;for(c=b;e[c]&&!(c>=d);)++c;if(16g?d+=String.fromCharCode(g):(g-=65536,d+=String.fromCharCode(55296|g>>10,56320|g&1023))}}else d+=String.fromCharCode(g)}return d}function h(e,b){return e?p(ea,e,b):""}function A(){var e=ja.buffer;a.HEAP8=Y=new Int8Array(e);a.HEAP16=new Int16Array(e);a.HEAP32=ca=new Int32Array(e);a.HEAPU8=ea=new Uint8Array(e);a.HEAPU16=new Uint16Array(e);a.HEAPU32=V=new Uint32Array(e);a.HEAPF32=new Float32Array(e);a.HEAPF64=new Float64Array(e)}function f(e){if(a.onAbort)a.onAbort(e); e="Aborted("+e+")";da(e);wa=!0;e=new WebAssembly.RuntimeError(e+". Build with -sASSERTIONS for more info.");ka(e);throw e;}function q(e){try{if(e==P&&fa)return new Uint8Array(fa);if(ma)return ma(e);throw"both async and sync fetching of the wasm failed";}catch(b){f(b)}}function v(){if(!fa&&(xa||ha)){if("function"==typeof fetch&&!P.startsWith("file://"))return fetch(P,{credentials:"same-origin"}).then(function(e){if(!e.ok)throw"failed to load wasm binary file at '"+P+"'";return e.arrayBuffer()}).catch(function(){return q(P)}); if(na)return new Promise(function(e,b){na(P,function(c){e(new Uint8Array(c))},b)})}return Promise.resolve().then(function(){return q(P)})}function z(e){for(;0>2]=b};this.get_type=function(){return V[this.ptr+4>>2]};this.set_destructor=function(b){V[this.ptr+8>>2]=b};this.get_destructor=function(){return V[this.ptr+8>>2]};this.set_refcount=function(b){ca[this.ptr>>2]=b};this.set_caught=function(b){Y[this.ptr+ 12>>0]=b?1:0};this.get_caught=function(){return 0!=Y[this.ptr+12>>0]};this.set_rethrown=function(b){Y[this.ptr+13>>0]=b?1:0};this.get_rethrown=function(){return 0!=Y[this.ptr+13>>0]};this.init=function(b,c){this.set_adjusted_ptr(0);this.set_type(b);this.set_destructor(c);this.set_refcount(0);this.set_caught(!1);this.set_rethrown(!1)};this.add_ref=function(){ca[this.ptr>>2]+=1};this.release_ref=function(){var b=ca[this.ptr>>2];ca[this.ptr>>2]=b-1;return 1===b};this.set_adjusted_ptr=function(b){V[this.ptr+ 16>>2]=b};this.get_adjusted_ptr=function(){return V[this.ptr+16>>2]};this.get_exception_ptr=function(){if(ya(this.get_type()))return V[this.excPtr>>2];var b=this.get_adjusted_ptr();return 0!==b?b:this.excPtr}}function ba(){function e(){if(!la&&(la=!0,a.calledRun=!0,!wa)){za=!0;z(oa);Aa(a);if(a.onRuntimeInitialized)a.onRuntimeInitialized();if(a.postRun)for("function"==typeof a.postRun&&(a.postRun=[a.postRun]);a.postRun.length;)Ba.unshift(a.postRun.shift());z(Ba)}}if(!(0=d?b++:2047>=d?b+=2:55296<=d&&57343>= d?(b+=4,++c):b+=3}b=Array(b+1);c=0;d=b.length;if(0=u){var X=e.charCodeAt(++g);u=65536+((u&1023)<<10)|X&1023}if(127>=u){if(c>=d)break;b[c++]=u}else{if(2047>=u){if(c+1>=d)break;b[c++]=192|u>>6}else{if(65535>=u){if(c+2>=d)break;b[c++]=224|u>>12}else{if(c+3>=d)break;b[c++]=240|u>>18;b[c++]=128|u>>12&63}b[c++]=128|u>>6&63}b[c++]=128|u&63}}b[c]=0}e=r.alloc(b,Y);r.copy(b,Y,e);return e}return e}function pa(e){if("object"===typeof e){var b= r.alloc(e,Y);r.copy(e,Y,b);return b}return e}function Z(){throw"cannot construct a VoidPtr, no constructor in IDL";}function S(){this.ptr=Da();x(S)[this.ptr]=this}function Q(){this.ptr=Ea();x(Q)[this.ptr]=this}function W(){this.ptr=Fa();x(W)[this.ptr]=this}function w(){this.ptr=Ga();x(w)[this.ptr]=this}function C(){this.ptr=Ha();x(C)[this.ptr]=this}function F(){this.ptr=Ia();x(F)[this.ptr]=this}function G(){this.ptr=Ja();x(G)[this.ptr]=this}function E(){this.ptr=Ka();x(E)[this.ptr]=this}function T(){this.ptr= La();x(T)[this.ptr]=this}function B(){throw"cannot construct a Status, no constructor in IDL";}function H(){this.ptr=Ma();x(H)[this.ptr]=this}function I(){this.ptr=Na();x(I)[this.ptr]=this}function J(){this.ptr=Oa();x(J)[this.ptr]=this}function K(){this.ptr=Pa();x(K)[this.ptr]=this}function L(){this.ptr=Qa();x(L)[this.ptr]=this}function M(){this.ptr=Ra();x(M)[this.ptr]=this}function N(){this.ptr=Sa();x(N)[this.ptr]=this}function y(){this.ptr=Ta();x(y)[this.ptr]=this}function m(){this.ptr=Ua();x(m)[this.ptr]= this}n=void 0===n?{}:n;var a="undefined"!=typeof n?n:{},Aa,ka;a.ready=new Promise(function(e,b){Aa=e;ka=b});var Va=!1,Wa=!1;a.onRuntimeInitialized=function(){Va=!0;if(Wa&&"function"===typeof a.onModuleLoaded)a.onModuleLoaded(a)};a.onModuleParsed=function(){Wa=!0;if(Va&&"function"===typeof a.onModuleLoaded)a.onModuleLoaded(a)};a.isVersionSupported=function(e){if("string"!==typeof e)return!1;e=e.split(".");return 2>e.length||3=e[1]?!0:0!=e[0]||10>>=0;if(2147483648=c;c*=2){var d=b*(1+.2/c);d=Math.min(d,e+100663296);var g=Math;d=Math.max(e,d);g=g.min.call(g,2147483648,d+(65536-d%65536)%65536);a:{d=ja.buffer;try{ja.grow(g-d.byteLength+65535>>>16);A();var u=1;break a}catch(X){}u=void 0}if(u)return!0}return!1},f:function(e){return 52},d:function(e,b,c,d,g){return 70},c:function(e,b,c,d){for(var g=0,u=0;u>2],ab=V[b+4>>2];b+=8;for(var sa=0;sa>2]=g;return 0}};(function(){function e(g,u){a.asm=g.exports;ja=a.asm.h;A();oa.unshift(a.asm.i);aa--;a.monitorRunDependencies&&a.monitorRunDependencies(aa);0==aa&&(null!==ra&&(clearInterval(ra),ra=null),ia&&(g=ia,ia=null,g()))}function b(g){e(g.instance)}function c(g){return v().then(function(u){return WebAssembly.instantiate(u,d)}).then(function(u){return u}).then(g,function(u){da("failed to asynchronously prepare wasm: "+u);f(u)})}var d={a:xd};aa++;a.monitorRunDependencies&&a.monitorRunDependencies(aa); if(a.instantiateWasm)try{return a.instantiateWasm(d,e)}catch(g){da("Module.instantiateWasm callback failed with error: "+g),ka(g)}(function(){return fa||"function"!=typeof WebAssembly.instantiateStreaming||P.startsWith("data:application/octet-stream;base64,")||P.startsWith("file://")||Ya||"function"!=typeof fetch?c(b):fetch(P,{credentials:"same-origin"}).then(function(g){return WebAssembly.instantiateStreaming(g,d).then(b,function(u){da("wasm streaming compile failed: "+u);da("falling back to ArrayBuffer instantiation"); return c(b)})})})().catch(ka);return{}})();var bb=a._emscripten_bind_VoidPtr___destroy___0=function(){return(bb=a._emscripten_bind_VoidPtr___destroy___0=a.asm.k).apply(null,arguments)},Da=a._emscripten_bind_DecoderBuffer_DecoderBuffer_0=function(){return(Da=a._emscripten_bind_DecoderBuffer_DecoderBuffer_0=a.asm.l).apply(null,arguments)},cb=a._emscripten_bind_DecoderBuffer_Init_2=function(){return(cb=a._emscripten_bind_DecoderBuffer_Init_2=a.asm.m).apply(null,arguments)},db=a._emscripten_bind_DecoderBuffer___destroy___0= function(){return(db=a._emscripten_bind_DecoderBuffer___destroy___0=a.asm.n).apply(null,arguments)},Ea=a._emscripten_bind_AttributeTransformData_AttributeTransformData_0=function(){return(Ea=a._emscripten_bind_AttributeTransformData_AttributeTransformData_0=a.asm.o).apply(null,arguments)},eb=a._emscripten_bind_AttributeTransformData_transform_type_0=function(){return(eb=a._emscripten_bind_AttributeTransformData_transform_type_0=a.asm.p).apply(null,arguments)},fb=a._emscripten_bind_AttributeTransformData___destroy___0= function(){return(fb=a._emscripten_bind_AttributeTransformData___destroy___0=a.asm.q).apply(null,arguments)},Fa=a._emscripten_bind_GeometryAttribute_GeometryAttribute_0=function(){return(Fa=a._emscripten_bind_GeometryAttribute_GeometryAttribute_0=a.asm.r).apply(null,arguments)},gb=a._emscripten_bind_GeometryAttribute___destroy___0=function(){return(gb=a._emscripten_bind_GeometryAttribute___destroy___0=a.asm.s).apply(null,arguments)},Ga=a._emscripten_bind_PointAttribute_PointAttribute_0=function(){return(Ga= a._emscripten_bind_PointAttribute_PointAttribute_0=a.asm.t).apply(null,arguments)},hb=a._emscripten_bind_PointAttribute_size_0=function(){return(hb=a._emscripten_bind_PointAttribute_size_0=a.asm.u).apply(null,arguments)},ib=a._emscripten_bind_PointAttribute_GetAttributeTransformData_0=function(){return(ib=a._emscripten_bind_PointAttribute_GetAttributeTransformData_0=a.asm.v).apply(null,arguments)},jb=a._emscripten_bind_PointAttribute_attribute_type_0=function(){return(jb=a._emscripten_bind_PointAttribute_attribute_type_0= a.asm.w).apply(null,arguments)},kb=a._emscripten_bind_PointAttribute_data_type_0=function(){return(kb=a._emscripten_bind_PointAttribute_data_type_0=a.asm.x).apply(null,arguments)},lb=a._emscripten_bind_PointAttribute_num_components_0=function(){return(lb=a._emscripten_bind_PointAttribute_num_components_0=a.asm.y).apply(null,arguments)},mb=a._emscripten_bind_PointAttribute_normalized_0=function(){return(mb=a._emscripten_bind_PointAttribute_normalized_0=a.asm.z).apply(null,arguments)},nb=a._emscripten_bind_PointAttribute_byte_stride_0= function(){return(nb=a._emscripten_bind_PointAttribute_byte_stride_0=a.asm.A).apply(null,arguments)},ob=a._emscripten_bind_PointAttribute_byte_offset_0=function(){return(ob=a._emscripten_bind_PointAttribute_byte_offset_0=a.asm.B).apply(null,arguments)},pb=a._emscripten_bind_PointAttribute_unique_id_0=function(){return(pb=a._emscripten_bind_PointAttribute_unique_id_0=a.asm.C).apply(null,arguments)},qb=a._emscripten_bind_PointAttribute___destroy___0=function(){return(qb=a._emscripten_bind_PointAttribute___destroy___0= a.asm.D).apply(null,arguments)},Ha=a._emscripten_bind_AttributeQuantizationTransform_AttributeQuantizationTransform_0=function(){return(Ha=a._emscripten_bind_AttributeQuantizationTransform_AttributeQuantizationTransform_0=a.asm.E).apply(null,arguments)},rb=a._emscripten_bind_AttributeQuantizationTransform_InitFromAttribute_1=function(){return(rb=a._emscripten_bind_AttributeQuantizationTransform_InitFromAttribute_1=a.asm.F).apply(null,arguments)},sb=a._emscripten_bind_AttributeQuantizationTransform_quantization_bits_0= function(){return(sb=a._emscripten_bind_AttributeQuantizationTransform_quantization_bits_0=a.asm.G).apply(null,arguments)},tb=a._emscripten_bind_AttributeQuantizationTransform_min_value_1=function(){return(tb=a._emscripten_bind_AttributeQuantizationTransform_min_value_1=a.asm.H).apply(null,arguments)},ub=a._emscripten_bind_AttributeQuantizationTransform_range_0=function(){return(ub=a._emscripten_bind_AttributeQuantizationTransform_range_0=a.asm.I).apply(null,arguments)},vb=a._emscripten_bind_AttributeQuantizationTransform___destroy___0= function(){return(vb=a._emscripten_bind_AttributeQuantizationTransform___destroy___0=a.asm.J).apply(null,arguments)},Ia=a._emscripten_bind_AttributeOctahedronTransform_AttributeOctahedronTransform_0=function(){return(Ia=a._emscripten_bind_AttributeOctahedronTransform_AttributeOctahedronTransform_0=a.asm.K).apply(null,arguments)},wb=a._emscripten_bind_AttributeOctahedronTransform_InitFromAttribute_1=function(){return(wb=a._emscripten_bind_AttributeOctahedronTransform_InitFromAttribute_1=a.asm.L).apply(null, arguments)},xb=a._emscripten_bind_AttributeOctahedronTransform_quantization_bits_0=function(){return(xb=a._emscripten_bind_AttributeOctahedronTransform_quantization_bits_0=a.asm.M).apply(null,arguments)},yb=a._emscripten_bind_AttributeOctahedronTransform___destroy___0=function(){return(yb=a._emscripten_bind_AttributeOctahedronTransform___destroy___0=a.asm.N).apply(null,arguments)},Ja=a._emscripten_bind_PointCloud_PointCloud_0=function(){return(Ja=a._emscripten_bind_PointCloud_PointCloud_0=a.asm.O).apply(null, arguments)},zb=a._emscripten_bind_PointCloud_num_attributes_0=function(){return(zb=a._emscripten_bind_PointCloud_num_attributes_0=a.asm.P).apply(null,arguments)},Ab=a._emscripten_bind_PointCloud_num_points_0=function(){return(Ab=a._emscripten_bind_PointCloud_num_points_0=a.asm.Q).apply(null,arguments)},Bb=a._emscripten_bind_PointCloud___destroy___0=function(){return(Bb=a._emscripten_bind_PointCloud___destroy___0=a.asm.R).apply(null,arguments)},Ka=a._emscripten_bind_Mesh_Mesh_0=function(){return(Ka= a._emscripten_bind_Mesh_Mesh_0=a.asm.S).apply(null,arguments)},Cb=a._emscripten_bind_Mesh_num_faces_0=function(){return(Cb=a._emscripten_bind_Mesh_num_faces_0=a.asm.T).apply(null,arguments)},Db=a._emscripten_bind_Mesh_num_attributes_0=function(){return(Db=a._emscripten_bind_Mesh_num_attributes_0=a.asm.U).apply(null,arguments)},Eb=a._emscripten_bind_Mesh_num_points_0=function(){return(Eb=a._emscripten_bind_Mesh_num_points_0=a.asm.V).apply(null,arguments)},Fb=a._emscripten_bind_Mesh___destroy___0=function(){return(Fb= a._emscripten_bind_Mesh___destroy___0=a.asm.W).apply(null,arguments)},La=a._emscripten_bind_Metadata_Metadata_0=function(){return(La=a._emscripten_bind_Metadata_Metadata_0=a.asm.X).apply(null,arguments)},Gb=a._emscripten_bind_Metadata___destroy___0=function(){return(Gb=a._emscripten_bind_Metadata___destroy___0=a.asm.Y).apply(null,arguments)},Hb=a._emscripten_bind_Status_code_0=function(){return(Hb=a._emscripten_bind_Status_code_0=a.asm.Z).apply(null,arguments)},Ib=a._emscripten_bind_Status_ok_0=function(){return(Ib= a._emscripten_bind_Status_ok_0=a.asm._).apply(null,arguments)},Jb=a._emscripten_bind_Status_error_msg_0=function(){return(Jb=a._emscripten_bind_Status_error_msg_0=a.asm.$).apply(null,arguments)},Kb=a._emscripten_bind_Status___destroy___0=function(){return(Kb=a._emscripten_bind_Status___destroy___0=a.asm.aa).apply(null,arguments)},Ma=a._emscripten_bind_DracoFloat32Array_DracoFloat32Array_0=function(){return(Ma=a._emscripten_bind_DracoFloat32Array_DracoFloat32Array_0=a.asm.ba).apply(null,arguments)}, Lb=a._emscripten_bind_DracoFloat32Array_GetValue_1=function(){return(Lb=a._emscripten_bind_DracoFloat32Array_GetValue_1=a.asm.ca).apply(null,arguments)},Mb=a._emscripten_bind_DracoFloat32Array_size_0=function(){return(Mb=a._emscripten_bind_DracoFloat32Array_size_0=a.asm.da).apply(null,arguments)},Nb=a._emscripten_bind_DracoFloat32Array___destroy___0=function(){return(Nb=a._emscripten_bind_DracoFloat32Array___destroy___0=a.asm.ea).apply(null,arguments)},Na=a._emscripten_bind_DracoInt8Array_DracoInt8Array_0= function(){return(Na=a._emscripten_bind_DracoInt8Array_DracoInt8Array_0=a.asm.fa).apply(null,arguments)},Ob=a._emscripten_bind_DracoInt8Array_GetValue_1=function(){return(Ob=a._emscripten_bind_DracoInt8Array_GetValue_1=a.asm.ga).apply(null,arguments)},Pb=a._emscripten_bind_DracoInt8Array_size_0=function(){return(Pb=a._emscripten_bind_DracoInt8Array_size_0=a.asm.ha).apply(null,arguments)},Qb=a._emscripten_bind_DracoInt8Array___destroy___0=function(){return(Qb=a._emscripten_bind_DracoInt8Array___destroy___0= a.asm.ia).apply(null,arguments)},Oa=a._emscripten_bind_DracoUInt8Array_DracoUInt8Array_0=function(){return(Oa=a._emscripten_bind_DracoUInt8Array_DracoUInt8Array_0=a.asm.ja).apply(null,arguments)},Rb=a._emscripten_bind_DracoUInt8Array_GetValue_1=function(){return(Rb=a._emscripten_bind_DracoUInt8Array_GetValue_1=a.asm.ka).apply(null,arguments)},Sb=a._emscripten_bind_DracoUInt8Array_size_0=function(){return(Sb=a._emscripten_bind_DracoUInt8Array_size_0=a.asm.la).apply(null,arguments)},Tb=a._emscripten_bind_DracoUInt8Array___destroy___0= function(){return(Tb=a._emscripten_bind_DracoUInt8Array___destroy___0=a.asm.ma).apply(null,arguments)},Pa=a._emscripten_bind_DracoInt16Array_DracoInt16Array_0=function(){return(Pa=a._emscripten_bind_DracoInt16Array_DracoInt16Array_0=a.asm.na).apply(null,arguments)},Ub=a._emscripten_bind_DracoInt16Array_GetValue_1=function(){return(Ub=a._emscripten_bind_DracoInt16Array_GetValue_1=a.asm.oa).apply(null,arguments)},Vb=a._emscripten_bind_DracoInt16Array_size_0=function(){return(Vb=a._emscripten_bind_DracoInt16Array_size_0= a.asm.pa).apply(null,arguments)},Wb=a._emscripten_bind_DracoInt16Array___destroy___0=function(){return(Wb=a._emscripten_bind_DracoInt16Array___destroy___0=a.asm.qa).apply(null,arguments)},Qa=a._emscripten_bind_DracoUInt16Array_DracoUInt16Array_0=function(){return(Qa=a._emscripten_bind_DracoUInt16Array_DracoUInt16Array_0=a.asm.ra).apply(null,arguments)},Xb=a._emscripten_bind_DracoUInt16Array_GetValue_1=function(){return(Xb=a._emscripten_bind_DracoUInt16Array_GetValue_1=a.asm.sa).apply(null,arguments)}, Yb=a._emscripten_bind_DracoUInt16Array_size_0=function(){return(Yb=a._emscripten_bind_DracoUInt16Array_size_0=a.asm.ta).apply(null,arguments)},Zb=a._emscripten_bind_DracoUInt16Array___destroy___0=function(){return(Zb=a._emscripten_bind_DracoUInt16Array___destroy___0=a.asm.ua).apply(null,arguments)},Ra=a._emscripten_bind_DracoInt32Array_DracoInt32Array_0=function(){return(Ra=a._emscripten_bind_DracoInt32Array_DracoInt32Array_0=a.asm.va).apply(null,arguments)},$b=a._emscripten_bind_DracoInt32Array_GetValue_1= function(){return($b=a._emscripten_bind_DracoInt32Array_GetValue_1=a.asm.wa).apply(null,arguments)},ac=a._emscripten_bind_DracoInt32Array_size_0=function(){return(ac=a._emscripten_bind_DracoInt32Array_size_0=a.asm.xa).apply(null,arguments)},bc=a._emscripten_bind_DracoInt32Array___destroy___0=function(){return(bc=a._emscripten_bind_DracoInt32Array___destroy___0=a.asm.ya).apply(null,arguments)},Sa=a._emscripten_bind_DracoUInt32Array_DracoUInt32Array_0=function(){return(Sa=a._emscripten_bind_DracoUInt32Array_DracoUInt32Array_0= a.asm.za).apply(null,arguments)},cc=a._emscripten_bind_DracoUInt32Array_GetValue_1=function(){return(cc=a._emscripten_bind_DracoUInt32Array_GetValue_1=a.asm.Aa).apply(null,arguments)},dc=a._emscripten_bind_DracoUInt32Array_size_0=function(){return(dc=a._emscripten_bind_DracoUInt32Array_size_0=a.asm.Ba).apply(null,arguments)},ec=a._emscripten_bind_DracoUInt32Array___destroy___0=function(){return(ec=a._emscripten_bind_DracoUInt32Array___destroy___0=a.asm.Ca).apply(null,arguments)},Ta=a._emscripten_bind_MetadataQuerier_MetadataQuerier_0= function(){return(Ta=a._emscripten_bind_MetadataQuerier_MetadataQuerier_0=a.asm.Da).apply(null,arguments)},fc=a._emscripten_bind_MetadataQuerier_HasEntry_2=function(){return(fc=a._emscripten_bind_MetadataQuerier_HasEntry_2=a.asm.Ea).apply(null,arguments)},gc=a._emscripten_bind_MetadataQuerier_GetIntEntry_2=function(){return(gc=a._emscripten_bind_MetadataQuerier_GetIntEntry_2=a.asm.Fa).apply(null,arguments)},hc=a._emscripten_bind_MetadataQuerier_GetIntEntryArray_3=function(){return(hc=a._emscripten_bind_MetadataQuerier_GetIntEntryArray_3= a.asm.Ga).apply(null,arguments)},ic=a._emscripten_bind_MetadataQuerier_GetDoubleEntry_2=function(){return(ic=a._emscripten_bind_MetadataQuerier_GetDoubleEntry_2=a.asm.Ha).apply(null,arguments)},jc=a._emscripten_bind_MetadataQuerier_GetStringEntry_2=function(){return(jc=a._emscripten_bind_MetadataQuerier_GetStringEntry_2=a.asm.Ia).apply(null,arguments)},kc=a._emscripten_bind_MetadataQuerier_NumEntries_1=function(){return(kc=a._emscripten_bind_MetadataQuerier_NumEntries_1=a.asm.Ja).apply(null,arguments)}, lc=a._emscripten_bind_MetadataQuerier_GetEntryName_2=function(){return(lc=a._emscripten_bind_MetadataQuerier_GetEntryName_2=a.asm.Ka).apply(null,arguments)},mc=a._emscripten_bind_MetadataQuerier___destroy___0=function(){return(mc=a._emscripten_bind_MetadataQuerier___destroy___0=a.asm.La).apply(null,arguments)},Ua=a._emscripten_bind_Decoder_Decoder_0=function(){return(Ua=a._emscripten_bind_Decoder_Decoder_0=a.asm.Ma).apply(null,arguments)},nc=a._emscripten_bind_Decoder_DecodeArrayToPointCloud_3=function(){return(nc= a._emscripten_bind_Decoder_DecodeArrayToPointCloud_3=a.asm.Na).apply(null,arguments)},oc=a._emscripten_bind_Decoder_DecodeArrayToMesh_3=function(){return(oc=a._emscripten_bind_Decoder_DecodeArrayToMesh_3=a.asm.Oa).apply(null,arguments)},pc=a._emscripten_bind_Decoder_GetAttributeId_2=function(){return(pc=a._emscripten_bind_Decoder_GetAttributeId_2=a.asm.Pa).apply(null,arguments)},qc=a._emscripten_bind_Decoder_GetAttributeIdByName_2=function(){return(qc=a._emscripten_bind_Decoder_GetAttributeIdByName_2= a.asm.Qa).apply(null,arguments)},rc=a._emscripten_bind_Decoder_GetAttributeIdByMetadataEntry_3=function(){return(rc=a._emscripten_bind_Decoder_GetAttributeIdByMetadataEntry_3=a.asm.Ra).apply(null,arguments)},sc=a._emscripten_bind_Decoder_GetAttribute_2=function(){return(sc=a._emscripten_bind_Decoder_GetAttribute_2=a.asm.Sa).apply(null,arguments)},tc=a._emscripten_bind_Decoder_GetAttributeByUniqueId_2=function(){return(tc=a._emscripten_bind_Decoder_GetAttributeByUniqueId_2=a.asm.Ta).apply(null,arguments)}, uc=a._emscripten_bind_Decoder_GetMetadata_1=function(){return(uc=a._emscripten_bind_Decoder_GetMetadata_1=a.asm.Ua).apply(null,arguments)},vc=a._emscripten_bind_Decoder_GetAttributeMetadata_2=function(){return(vc=a._emscripten_bind_Decoder_GetAttributeMetadata_2=a.asm.Va).apply(null,arguments)},wc=a._emscripten_bind_Decoder_GetFaceFromMesh_3=function(){return(wc=a._emscripten_bind_Decoder_GetFaceFromMesh_3=a.asm.Wa).apply(null,arguments)},xc=a._emscripten_bind_Decoder_GetTriangleStripsFromMesh_2= function(){return(xc=a._emscripten_bind_Decoder_GetTriangleStripsFromMesh_2=a.asm.Xa).apply(null,arguments)},yc=a._emscripten_bind_Decoder_GetTrianglesUInt16Array_3=function(){return(yc=a._emscripten_bind_Decoder_GetTrianglesUInt16Array_3=a.asm.Ya).apply(null,arguments)},zc=a._emscripten_bind_Decoder_GetTrianglesUInt32Array_3=function(){return(zc=a._emscripten_bind_Decoder_GetTrianglesUInt32Array_3=a.asm.Za).apply(null,arguments)},Ac=a._emscripten_bind_Decoder_GetAttributeFloat_3=function(){return(Ac= a._emscripten_bind_Decoder_GetAttributeFloat_3=a.asm._a).apply(null,arguments)},Bc=a._emscripten_bind_Decoder_GetAttributeFloatForAllPoints_3=function(){return(Bc=a._emscripten_bind_Decoder_GetAttributeFloatForAllPoints_3=a.asm.$a).apply(null,arguments)},Cc=a._emscripten_bind_Decoder_GetAttributeIntForAllPoints_3=function(){return(Cc=a._emscripten_bind_Decoder_GetAttributeIntForAllPoints_3=a.asm.ab).apply(null,arguments)},Dc=a._emscripten_bind_Decoder_GetAttributeInt8ForAllPoints_3=function(){return(Dc= a._emscripten_bind_Decoder_GetAttributeInt8ForAllPoints_3=a.asm.bb).apply(null,arguments)},Ec=a._emscripten_bind_Decoder_GetAttributeUInt8ForAllPoints_3=function(){return(Ec=a._emscripten_bind_Decoder_GetAttributeUInt8ForAllPoints_3=a.asm.cb).apply(null,arguments)},Fc=a._emscripten_bind_Decoder_GetAttributeInt16ForAllPoints_3=function(){return(Fc=a._emscripten_bind_Decoder_GetAttributeInt16ForAllPoints_3=a.asm.db).apply(null,arguments)},Gc=a._emscripten_bind_Decoder_GetAttributeUInt16ForAllPoints_3= function(){return(Gc=a._emscripten_bind_Decoder_GetAttributeUInt16ForAllPoints_3=a.asm.eb).apply(null,arguments)},Hc=a._emscripten_bind_Decoder_GetAttributeInt32ForAllPoints_3=function(){return(Hc=a._emscripten_bind_Decoder_GetAttributeInt32ForAllPoints_3=a.asm.fb).apply(null,arguments)},Ic=a._emscripten_bind_Decoder_GetAttributeUInt32ForAllPoints_3=function(){return(Ic=a._emscripten_bind_Decoder_GetAttributeUInt32ForAllPoints_3=a.asm.gb).apply(null,arguments)},Jc=a._emscripten_bind_Decoder_GetAttributeDataArrayForAllPoints_5= function(){return(Jc=a._emscripten_bind_Decoder_GetAttributeDataArrayForAllPoints_5=a.asm.hb).apply(null,arguments)},Kc=a._emscripten_bind_Decoder_SkipAttributeTransform_1=function(){return(Kc=a._emscripten_bind_Decoder_SkipAttributeTransform_1=a.asm.ib).apply(null,arguments)},Lc=a._emscripten_bind_Decoder_GetEncodedGeometryType_Deprecated_1=function(){return(Lc=a._emscripten_bind_Decoder_GetEncodedGeometryType_Deprecated_1=a.asm.jb).apply(null,arguments)},Mc=a._emscripten_bind_Decoder_DecodeBufferToPointCloud_2= function(){return(Mc=a._emscripten_bind_Decoder_DecodeBufferToPointCloud_2=a.asm.kb).apply(null,arguments)},Nc=a._emscripten_bind_Decoder_DecodeBufferToMesh_2=function(){return(Nc=a._emscripten_bind_Decoder_DecodeBufferToMesh_2=a.asm.lb).apply(null,arguments)},Oc=a._emscripten_bind_Decoder___destroy___0=function(){return(Oc=a._emscripten_bind_Decoder___destroy___0=a.asm.mb).apply(null,arguments)},Pc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_INVALID_TRANSFORM=function(){return(Pc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_INVALID_TRANSFORM= a.asm.nb).apply(null,arguments)},Qc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_NO_TRANSFORM=function(){return(Qc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_NO_TRANSFORM=a.asm.ob).apply(null,arguments)},Rc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_QUANTIZATION_TRANSFORM=function(){return(Rc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_QUANTIZATION_TRANSFORM=a.asm.pb).apply(null,arguments)},Sc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_OCTAHEDRON_TRANSFORM= function(){return(Sc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_OCTAHEDRON_TRANSFORM=a.asm.qb).apply(null,arguments)},Tc=a._emscripten_enum_draco_GeometryAttribute_Type_INVALID=function(){return(Tc=a._emscripten_enum_draco_GeometryAttribute_Type_INVALID=a.asm.rb).apply(null,arguments)},Uc=a._emscripten_enum_draco_GeometryAttribute_Type_POSITION=function(){return(Uc=a._emscripten_enum_draco_GeometryAttribute_Type_POSITION=a.asm.sb).apply(null,arguments)},Vc=a._emscripten_enum_draco_GeometryAttribute_Type_NORMAL= function(){return(Vc=a._emscripten_enum_draco_GeometryAttribute_Type_NORMAL=a.asm.tb).apply(null,arguments)},Wc=a._emscripten_enum_draco_GeometryAttribute_Type_COLOR=function(){return(Wc=a._emscripten_enum_draco_GeometryAttribute_Type_COLOR=a.asm.ub).apply(null,arguments)},Xc=a._emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD=function(){return(Xc=a._emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD=a.asm.vb).apply(null,arguments)},Yc=a._emscripten_enum_draco_GeometryAttribute_Type_GENERIC= function(){return(Yc=a._emscripten_enum_draco_GeometryAttribute_Type_GENERIC=a.asm.wb).apply(null,arguments)},Zc=a._emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE=function(){return(Zc=a._emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE=a.asm.xb).apply(null,arguments)},$c=a._emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD=function(){return($c=a._emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD=a.asm.yb).apply(null,arguments)},ad=a._emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH= function(){return(ad=a._emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH=a.asm.zb).apply(null,arguments)},bd=a._emscripten_enum_draco_DataType_DT_INVALID=function(){return(bd=a._emscripten_enum_draco_DataType_DT_INVALID=a.asm.Ab).apply(null,arguments)},cd=a._emscripten_enum_draco_DataType_DT_INT8=function(){return(cd=a._emscripten_enum_draco_DataType_DT_INT8=a.asm.Bb).apply(null,arguments)},dd=a._emscripten_enum_draco_DataType_DT_UINT8=function(){return(dd=a._emscripten_enum_draco_DataType_DT_UINT8= a.asm.Cb).apply(null,arguments)},ed=a._emscripten_enum_draco_DataType_DT_INT16=function(){return(ed=a._emscripten_enum_draco_DataType_DT_INT16=a.asm.Db).apply(null,arguments)},fd=a._emscripten_enum_draco_DataType_DT_UINT16=function(){return(fd=a._emscripten_enum_draco_DataType_DT_UINT16=a.asm.Eb).apply(null,arguments)},gd=a._emscripten_enum_draco_DataType_DT_INT32=function(){return(gd=a._emscripten_enum_draco_DataType_DT_INT32=a.asm.Fb).apply(null,arguments)},hd=a._emscripten_enum_draco_DataType_DT_UINT32= function(){return(hd=a._emscripten_enum_draco_DataType_DT_UINT32=a.asm.Gb).apply(null,arguments)},id=a._emscripten_enum_draco_DataType_DT_INT64=function(){return(id=a._emscripten_enum_draco_DataType_DT_INT64=a.asm.Hb).apply(null,arguments)},jd=a._emscripten_enum_draco_DataType_DT_UINT64=function(){return(jd=a._emscripten_enum_draco_DataType_DT_UINT64=a.asm.Ib).apply(null,arguments)},kd=a._emscripten_enum_draco_DataType_DT_FLOAT32=function(){return(kd=a._emscripten_enum_draco_DataType_DT_FLOAT32=a.asm.Jb).apply(null, arguments)},ld=a._emscripten_enum_draco_DataType_DT_FLOAT64=function(){return(ld=a._emscripten_enum_draco_DataType_DT_FLOAT64=a.asm.Kb).apply(null,arguments)},md=a._emscripten_enum_draco_DataType_DT_BOOL=function(){return(md=a._emscripten_enum_draco_DataType_DT_BOOL=a.asm.Lb).apply(null,arguments)},nd=a._emscripten_enum_draco_DataType_DT_TYPES_COUNT=function(){return(nd=a._emscripten_enum_draco_DataType_DT_TYPES_COUNT=a.asm.Mb).apply(null,arguments)},od=a._emscripten_enum_draco_StatusCode_OK=function(){return(od= a._emscripten_enum_draco_StatusCode_OK=a.asm.Nb).apply(null,arguments)},pd=a._emscripten_enum_draco_StatusCode_DRACO_ERROR=function(){return(pd=a._emscripten_enum_draco_StatusCode_DRACO_ERROR=a.asm.Ob).apply(null,arguments)},qd=a._emscripten_enum_draco_StatusCode_IO_ERROR=function(){return(qd=a._emscripten_enum_draco_StatusCode_IO_ERROR=a.asm.Pb).apply(null,arguments)},rd=a._emscripten_enum_draco_StatusCode_INVALID_PARAMETER=function(){return(rd=a._emscripten_enum_draco_StatusCode_INVALID_PARAMETER= a.asm.Qb).apply(null,arguments)},sd=a._emscripten_enum_draco_StatusCode_UNSUPPORTED_VERSION=function(){return(sd=a._emscripten_enum_draco_StatusCode_UNSUPPORTED_VERSION=a.asm.Rb).apply(null,arguments)},td=a._emscripten_enum_draco_StatusCode_UNKNOWN_VERSION=function(){return(td=a._emscripten_enum_draco_StatusCode_UNKNOWN_VERSION=a.asm.Sb).apply(null,arguments)};a._malloc=function(){return(a._malloc=a.asm.Tb).apply(null,arguments)};a._free=function(){return(a._free=a.asm.Ub).apply(null,arguments)}; var ya=function(){return(ya=a.asm.Vb).apply(null,arguments)};a.___start_em_js=15856;a.___stop_em_js=15954;var la;ia=function b(){la||ba();la||(ia=b)};if(a.preInit)for("function"==typeof a.preInit&&(a.preInit=[a.preInit]);0=r.size?(0>>=0;switch(c.BYTES_PER_ELEMENT){case 2:d>>>=1;break;case 4:d>>>=2;break;case 8:d>>>=3}for(var g=0;gb.byteLength)return a.INVALID_GEOMETRY_TYPE;switch(b[7]){case 0:return a.POINT_CLOUD;case 1:return a.TRIANGULAR_MESH;default:return a.INVALID_GEOMETRY_TYPE}};return n.ready}}(); "object"===typeof exports&&"object"===typeof module?module.exports=DracoDecoderModule:"function"===typeof define&&define.amd?define([],function(){return DracoDecoderModule}):"object"===typeof exports&&(exports.DracoDecoderModule=DracoDecoderModule); ================================================ FILE: packages/editor/public/libs/draco/draco_wasm_wrapper_gltf.js ================================================ var $jscomp=$jscomp||{};$jscomp.scope={};$jscomp.arrayIteratorImpl=function(h){var n=0;return function(){return n>>0,$jscomp.propertyToPolyfillSymbol[l]=$jscomp.IS_SYMBOL_NATIVE? $jscomp.global.Symbol(l):$jscomp.POLYFILL_PREFIX+k+"$"+l),$jscomp.defineProperty(p,$jscomp.propertyToPolyfillSymbol[l],{configurable:!0,writable:!0,value:n})))}; $jscomp.polyfill("Promise",function(h){function n(){this.batch_=null}function k(f){return f instanceof l?f:new l(function(q,u){q(f)})}if(h&&(!($jscomp.FORCE_POLYFILL_PROMISE||$jscomp.FORCE_POLYFILL_PROMISE_WHEN_NO_UNHANDLED_REJECTION&&"undefined"===typeof $jscomp.global.PromiseRejectionEvent)||!$jscomp.global.Promise||-1===$jscomp.global.Promise.toString().indexOf("[native code]")))return h;n.prototype.asyncExecute=function(f){if(null==this.batch_){this.batch_=[];var q=this;this.asyncExecuteFunction(function(){q.executeBatch_()})}this.batch_.push(f)}; var p=$jscomp.global.setTimeout;n.prototype.asyncExecuteFunction=function(f){p(f,0)};n.prototype.executeBatch_=function(){for(;this.batch_&&this.batch_.length;){var f=this.batch_;this.batch_=[];for(var q=0;q=y}},"es6","es3"); $jscomp.polyfill("Array.prototype.copyWithin",function(h){function n(k){k=Number(k);return Infinity===k||-Infinity===k?k:k|0}return h?h:function(k,p,l){var y=this.length;k=n(k);p=n(p);l=void 0===l?y:n(l);k=0>k?Math.max(y+k,0):Math.min(k,y);p=0>p?Math.max(y+p,0):Math.min(p,y);l=0>l?Math.max(y+l,0):Math.min(l,y);if(kp;)--l in this?this[--k]=this[l]:delete this[--k];return this}},"es6","es3"); $jscomp.typedArrayCopyWithin=function(h){return h?h:Array.prototype.copyWithin};$jscomp.polyfill("Int8Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Uint8Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Uint8ClampedArray.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Int16Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5"); $jscomp.polyfill("Uint16Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Int32Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Uint32Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Float32Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Float64Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5"); var DracoDecoderModule=function(){var h="undefined"!==typeof document&&document.currentScript?document.currentScript.src:void 0;"undefined"!==typeof __filename&&(h=h||__filename);return function(n){function k(e){return a.locateFile?a.locateFile(e,U):U+e}function p(e,b){if(e){var c=ia;var d=e+b;for(b=e;c[b]&&!(b>=d);)++b;if(16g?d+=String.fromCharCode(g):(g-=65536,d+=String.fromCharCode(55296|g>>10,56320|g&1023))}}else d+=String.fromCharCode(g)}c=d}}else c="";return c}function l(){var e=ja.buffer;a.HEAP8=W=new Int8Array(e);a.HEAP16=new Int16Array(e);a.HEAP32=ca=new Int32Array(e);a.HEAPU8=ia=new Uint8Array(e);a.HEAPU16=new Uint16Array(e);a.HEAPU32=Y=new Uint32Array(e);a.HEAPF32=new Float32Array(e);a.HEAPF64=new Float64Array(e)}function y(e){if(a.onAbort)a.onAbort(e); e="Aborted("+e+")";da(e);sa=!0;e=new WebAssembly.RuntimeError(e+". Build with -sASSERTIONS for more info.");ka(e);throw e;}function f(e){try{if(e==P&&ea)return new Uint8Array(ea);if(ma)return ma(e);throw"both async and sync fetching of the wasm failed";}catch(b){y(b)}}function q(){if(!ea&&(ta||fa)){if("function"==typeof fetch&&!P.startsWith("file://"))return fetch(P,{credentials:"same-origin"}).then(function(e){if(!e.ok)throw"failed to load wasm binary file at '"+P+"'";return e.arrayBuffer()}).catch(function(){return f(P)}); if(na)return new Promise(function(e,b){na(P,function(c){e(new Uint8Array(c))},b)})}return Promise.resolve().then(function(){return f(P)})}function u(e){for(;0>2]=b};this.get_type=function(){return Y[this.ptr+4>>2]};this.set_destructor=function(b){Y[this.ptr+8>>2]=b};this.get_destructor=function(){return Y[this.ptr+8>>2]};this.set_refcount=function(b){ca[this.ptr>>2]=b};this.set_caught=function(b){W[this.ptr+ 12>>0]=b?1:0};this.get_caught=function(){return 0!=W[this.ptr+12>>0]};this.set_rethrown=function(b){W[this.ptr+13>>0]=b?1:0};this.get_rethrown=function(){return 0!=W[this.ptr+13>>0]};this.init=function(b,c){this.set_adjusted_ptr(0);this.set_type(b);this.set_destructor(c);this.set_refcount(0);this.set_caught(!1);this.set_rethrown(!1)};this.add_ref=function(){ca[this.ptr>>2]+=1};this.release_ref=function(){var b=ca[this.ptr>>2];ca[this.ptr>>2]=b-1;return 1===b};this.set_adjusted_ptr=function(b){Y[this.ptr+ 16>>2]=b};this.get_adjusted_ptr=function(){return Y[this.ptr+16>>2]};this.get_exception_ptr=function(){if(ua(this.get_type()))return Y[this.excPtr>>2];var b=this.get_adjusted_ptr();return 0!==b?b:this.excPtr}}function F(){function e(){if(!la&&(la=!0,a.calledRun=!0,!sa)){va=!0;u(oa);wa(a);if(a.onRuntimeInitialized)a.onRuntimeInitialized();if(a.postRun)for("function"==typeof a.postRun&&(a.postRun=[a.postRun]);a.postRun.length;)xa.unshift(a.postRun.shift());u(xa)}}if(!(0=d?b++:2047>=d?b+=2:55296<=d&&57343>= d?(b+=4,++c):b+=3}b=Array(b+1);c=0;d=b.length;if(0=t){var aa=e.charCodeAt(++g);t=65536+((t&1023)<<10)|aa&1023}if(127>=t){if(c>=d)break;b[c++]=t}else{if(2047>=t){if(c+1>=d)break;b[c++]=192|t>>6}else{if(65535>=t){if(c+2>=d)break;b[c++]=224|t>>12}else{if(c+3>=d)break;b[c++]=240|t>>18;b[c++]=128|t>>12&63}b[c++]=128|t>>6&63}b[c++]=128|t&63}}b[c]=0}e=r.alloc(b,W);r.copy(b,W,e);return e}return e}function Z(e){if("object"=== typeof e){var b=r.alloc(e,W);r.copy(e,W,b);return b}return e}function X(){throw"cannot construct a VoidPtr, no constructor in IDL";}function S(){this.ptr=za();w(S)[this.ptr]=this}function Q(){this.ptr=Aa();w(Q)[this.ptr]=this}function V(){this.ptr=Ba();w(V)[this.ptr]=this}function x(){this.ptr=Ca();w(x)[this.ptr]=this}function D(){this.ptr=Da();w(D)[this.ptr]=this}function G(){this.ptr=Ea();w(G)[this.ptr]=this}function H(){this.ptr=Fa();w(H)[this.ptr]=this}function E(){this.ptr=Ga();w(E)[this.ptr]= this}function T(){this.ptr=Ha();w(T)[this.ptr]=this}function C(){throw"cannot construct a Status, no constructor in IDL";}function I(){this.ptr=Ia();w(I)[this.ptr]=this}function J(){this.ptr=Ja();w(J)[this.ptr]=this}function K(){this.ptr=Ka();w(K)[this.ptr]=this}function L(){this.ptr=La();w(L)[this.ptr]=this}function M(){this.ptr=Ma();w(M)[this.ptr]=this}function N(){this.ptr=Na();w(N)[this.ptr]=this}function O(){this.ptr=Oa();w(O)[this.ptr]=this}function z(){this.ptr=Pa();w(z)[this.ptr]=this}function m(){this.ptr= Qa();w(m)[this.ptr]=this}n=void 0===n?{}:n;var a="undefined"!=typeof n?n:{},wa,ka;a.ready=new Promise(function(e,b){wa=e;ka=b});var Ra=!1,Sa=!1;a.onRuntimeInitialized=function(){Ra=!0;if(Sa&&"function"===typeof a.onModuleLoaded)a.onModuleLoaded(a)};a.onModuleParsed=function(){Sa=!0;if(Ra&&"function"===typeof a.onModuleLoaded)a.onModuleLoaded(a)};a.isVersionSupported=function(e){if("string"!==typeof e)return!1;e=e.split(".");return 2>e.length||3=e[1]?!0:0!=e[0]||10< e[1]?!1:!0};var Ta=Object.assign({},a),ta="object"==typeof window,fa="function"==typeof importScripts,Ua="object"==typeof process&&"object"==typeof process.versions&&"string"==typeof process.versions.node,U="";if(Ua){var Va=require("fs"),pa=require("path");U=fa?pa.dirname(U)+"/":__dirname+"/";var Wa=function(e,b){e=e.startsWith("file://")?new URL(e):pa.normalize(e);return Va.readFileSync(e,b?void 0:"utf8")};var ma=function(e){e=Wa(e,!0);e.buffer||(e=new Uint8Array(e));return e};var na=function(e, b,c){e=e.startsWith("file://")?new URL(e):pa.normalize(e);Va.readFile(e,function(d,g){d?c(d):b(g.buffer)})};1>>=0;if(2147483648=c;c*=2){var d=b*(1+.2/c);d=Math.min(d,e+100663296);var g=Math;d=Math.max(e,d);g=g.min.call(g,2147483648,d+(65536-d%65536)%65536);a:{d=ja.buffer;try{ja.grow(g-d.byteLength+65535>>>16);l();var t=1;break a}catch(aa){}t=void 0}if(t)return!0}return!1}};(function(){function e(g,t){a.asm=g.exports;ja=a.asm.e;l();oa.unshift(a.asm.f);ba--;a.monitorRunDependencies&&a.monitorRunDependencies(ba);0==ba&&(null!==qa&&(clearInterval(qa),qa=null),ha&&(g=ha,ha=null,g()))}function b(g){e(g.instance)} function c(g){return q().then(function(t){return WebAssembly.instantiate(t,d)}).then(function(t){return t}).then(g,function(t){da("failed to asynchronously prepare wasm: "+t);y(t)})}var d={a:qd};ba++;a.monitorRunDependencies&&a.monitorRunDependencies(ba);if(a.instantiateWasm)try{return a.instantiateWasm(d,e)}catch(g){da("Module.instantiateWasm callback failed with error: "+g),ka(g)}(function(){return ea||"function"!=typeof WebAssembly.instantiateStreaming||P.startsWith("data:application/octet-stream;base64,")|| P.startsWith("file://")||Ua||"function"!=typeof fetch?c(b):fetch(P,{credentials:"same-origin"}).then(function(g){return WebAssembly.instantiateStreaming(g,d).then(b,function(t){da("wasm streaming compile failed: "+t);da("falling back to ArrayBuffer instantiation");return c(b)})})})().catch(ka);return{}})();var Xa=a._emscripten_bind_VoidPtr___destroy___0=function(){return(Xa=a._emscripten_bind_VoidPtr___destroy___0=a.asm.h).apply(null,arguments)},za=a._emscripten_bind_DecoderBuffer_DecoderBuffer_0= function(){return(za=a._emscripten_bind_DecoderBuffer_DecoderBuffer_0=a.asm.i).apply(null,arguments)},Ya=a._emscripten_bind_DecoderBuffer_Init_2=function(){return(Ya=a._emscripten_bind_DecoderBuffer_Init_2=a.asm.j).apply(null,arguments)},Za=a._emscripten_bind_DecoderBuffer___destroy___0=function(){return(Za=a._emscripten_bind_DecoderBuffer___destroy___0=a.asm.k).apply(null,arguments)},Aa=a._emscripten_bind_AttributeTransformData_AttributeTransformData_0=function(){return(Aa=a._emscripten_bind_AttributeTransformData_AttributeTransformData_0= a.asm.l).apply(null,arguments)},$a=a._emscripten_bind_AttributeTransformData_transform_type_0=function(){return($a=a._emscripten_bind_AttributeTransformData_transform_type_0=a.asm.m).apply(null,arguments)},ab=a._emscripten_bind_AttributeTransformData___destroy___0=function(){return(ab=a._emscripten_bind_AttributeTransformData___destroy___0=a.asm.n).apply(null,arguments)},Ba=a._emscripten_bind_GeometryAttribute_GeometryAttribute_0=function(){return(Ba=a._emscripten_bind_GeometryAttribute_GeometryAttribute_0= a.asm.o).apply(null,arguments)},bb=a._emscripten_bind_GeometryAttribute___destroy___0=function(){return(bb=a._emscripten_bind_GeometryAttribute___destroy___0=a.asm.p).apply(null,arguments)},Ca=a._emscripten_bind_PointAttribute_PointAttribute_0=function(){return(Ca=a._emscripten_bind_PointAttribute_PointAttribute_0=a.asm.q).apply(null,arguments)},cb=a._emscripten_bind_PointAttribute_size_0=function(){return(cb=a._emscripten_bind_PointAttribute_size_0=a.asm.r).apply(null,arguments)},db=a._emscripten_bind_PointAttribute_GetAttributeTransformData_0= function(){return(db=a._emscripten_bind_PointAttribute_GetAttributeTransformData_0=a.asm.s).apply(null,arguments)},eb=a._emscripten_bind_PointAttribute_attribute_type_0=function(){return(eb=a._emscripten_bind_PointAttribute_attribute_type_0=a.asm.t).apply(null,arguments)},fb=a._emscripten_bind_PointAttribute_data_type_0=function(){return(fb=a._emscripten_bind_PointAttribute_data_type_0=a.asm.u).apply(null,arguments)},gb=a._emscripten_bind_PointAttribute_num_components_0=function(){return(gb=a._emscripten_bind_PointAttribute_num_components_0= a.asm.v).apply(null,arguments)},hb=a._emscripten_bind_PointAttribute_normalized_0=function(){return(hb=a._emscripten_bind_PointAttribute_normalized_0=a.asm.w).apply(null,arguments)},ib=a._emscripten_bind_PointAttribute_byte_stride_0=function(){return(ib=a._emscripten_bind_PointAttribute_byte_stride_0=a.asm.x).apply(null,arguments)},jb=a._emscripten_bind_PointAttribute_byte_offset_0=function(){return(jb=a._emscripten_bind_PointAttribute_byte_offset_0=a.asm.y).apply(null,arguments)},kb=a._emscripten_bind_PointAttribute_unique_id_0= function(){return(kb=a._emscripten_bind_PointAttribute_unique_id_0=a.asm.z).apply(null,arguments)},lb=a._emscripten_bind_PointAttribute___destroy___0=function(){return(lb=a._emscripten_bind_PointAttribute___destroy___0=a.asm.A).apply(null,arguments)},Da=a._emscripten_bind_AttributeQuantizationTransform_AttributeQuantizationTransform_0=function(){return(Da=a._emscripten_bind_AttributeQuantizationTransform_AttributeQuantizationTransform_0=a.asm.B).apply(null,arguments)},mb=a._emscripten_bind_AttributeQuantizationTransform_InitFromAttribute_1= function(){return(mb=a._emscripten_bind_AttributeQuantizationTransform_InitFromAttribute_1=a.asm.C).apply(null,arguments)},nb=a._emscripten_bind_AttributeQuantizationTransform_quantization_bits_0=function(){return(nb=a._emscripten_bind_AttributeQuantizationTransform_quantization_bits_0=a.asm.D).apply(null,arguments)},ob=a._emscripten_bind_AttributeQuantizationTransform_min_value_1=function(){return(ob=a._emscripten_bind_AttributeQuantizationTransform_min_value_1=a.asm.E).apply(null,arguments)},pb= a._emscripten_bind_AttributeQuantizationTransform_range_0=function(){return(pb=a._emscripten_bind_AttributeQuantizationTransform_range_0=a.asm.F).apply(null,arguments)},qb=a._emscripten_bind_AttributeQuantizationTransform___destroy___0=function(){return(qb=a._emscripten_bind_AttributeQuantizationTransform___destroy___0=a.asm.G).apply(null,arguments)},Ea=a._emscripten_bind_AttributeOctahedronTransform_AttributeOctahedronTransform_0=function(){return(Ea=a._emscripten_bind_AttributeOctahedronTransform_AttributeOctahedronTransform_0= a.asm.H).apply(null,arguments)},rb=a._emscripten_bind_AttributeOctahedronTransform_InitFromAttribute_1=function(){return(rb=a._emscripten_bind_AttributeOctahedronTransform_InitFromAttribute_1=a.asm.I).apply(null,arguments)},sb=a._emscripten_bind_AttributeOctahedronTransform_quantization_bits_0=function(){return(sb=a._emscripten_bind_AttributeOctahedronTransform_quantization_bits_0=a.asm.J).apply(null,arguments)},tb=a._emscripten_bind_AttributeOctahedronTransform___destroy___0=function(){return(tb= a._emscripten_bind_AttributeOctahedronTransform___destroy___0=a.asm.K).apply(null,arguments)},Fa=a._emscripten_bind_PointCloud_PointCloud_0=function(){return(Fa=a._emscripten_bind_PointCloud_PointCloud_0=a.asm.L).apply(null,arguments)},ub=a._emscripten_bind_PointCloud_num_attributes_0=function(){return(ub=a._emscripten_bind_PointCloud_num_attributes_0=a.asm.M).apply(null,arguments)},vb=a._emscripten_bind_PointCloud_num_points_0=function(){return(vb=a._emscripten_bind_PointCloud_num_points_0=a.asm.N).apply(null, arguments)},wb=a._emscripten_bind_PointCloud___destroy___0=function(){return(wb=a._emscripten_bind_PointCloud___destroy___0=a.asm.O).apply(null,arguments)},Ga=a._emscripten_bind_Mesh_Mesh_0=function(){return(Ga=a._emscripten_bind_Mesh_Mesh_0=a.asm.P).apply(null,arguments)},xb=a._emscripten_bind_Mesh_num_faces_0=function(){return(xb=a._emscripten_bind_Mesh_num_faces_0=a.asm.Q).apply(null,arguments)},yb=a._emscripten_bind_Mesh_num_attributes_0=function(){return(yb=a._emscripten_bind_Mesh_num_attributes_0= a.asm.R).apply(null,arguments)},zb=a._emscripten_bind_Mesh_num_points_0=function(){return(zb=a._emscripten_bind_Mesh_num_points_0=a.asm.S).apply(null,arguments)},Ab=a._emscripten_bind_Mesh___destroy___0=function(){return(Ab=a._emscripten_bind_Mesh___destroy___0=a.asm.T).apply(null,arguments)},Ha=a._emscripten_bind_Metadata_Metadata_0=function(){return(Ha=a._emscripten_bind_Metadata_Metadata_0=a.asm.U).apply(null,arguments)},Bb=a._emscripten_bind_Metadata___destroy___0=function(){return(Bb=a._emscripten_bind_Metadata___destroy___0= a.asm.V).apply(null,arguments)},Cb=a._emscripten_bind_Status_code_0=function(){return(Cb=a._emscripten_bind_Status_code_0=a.asm.W).apply(null,arguments)},Db=a._emscripten_bind_Status_ok_0=function(){return(Db=a._emscripten_bind_Status_ok_0=a.asm.X).apply(null,arguments)},Eb=a._emscripten_bind_Status_error_msg_0=function(){return(Eb=a._emscripten_bind_Status_error_msg_0=a.asm.Y).apply(null,arguments)},Fb=a._emscripten_bind_Status___destroy___0=function(){return(Fb=a._emscripten_bind_Status___destroy___0= a.asm.Z).apply(null,arguments)},Ia=a._emscripten_bind_DracoFloat32Array_DracoFloat32Array_0=function(){return(Ia=a._emscripten_bind_DracoFloat32Array_DracoFloat32Array_0=a.asm._).apply(null,arguments)},Gb=a._emscripten_bind_DracoFloat32Array_GetValue_1=function(){return(Gb=a._emscripten_bind_DracoFloat32Array_GetValue_1=a.asm.$).apply(null,arguments)},Hb=a._emscripten_bind_DracoFloat32Array_size_0=function(){return(Hb=a._emscripten_bind_DracoFloat32Array_size_0=a.asm.aa).apply(null,arguments)},Ib= a._emscripten_bind_DracoFloat32Array___destroy___0=function(){return(Ib=a._emscripten_bind_DracoFloat32Array___destroy___0=a.asm.ba).apply(null,arguments)},Ja=a._emscripten_bind_DracoInt8Array_DracoInt8Array_0=function(){return(Ja=a._emscripten_bind_DracoInt8Array_DracoInt8Array_0=a.asm.ca).apply(null,arguments)},Jb=a._emscripten_bind_DracoInt8Array_GetValue_1=function(){return(Jb=a._emscripten_bind_DracoInt8Array_GetValue_1=a.asm.da).apply(null,arguments)},Kb=a._emscripten_bind_DracoInt8Array_size_0= function(){return(Kb=a._emscripten_bind_DracoInt8Array_size_0=a.asm.ea).apply(null,arguments)},Lb=a._emscripten_bind_DracoInt8Array___destroy___0=function(){return(Lb=a._emscripten_bind_DracoInt8Array___destroy___0=a.asm.fa).apply(null,arguments)},Ka=a._emscripten_bind_DracoUInt8Array_DracoUInt8Array_0=function(){return(Ka=a._emscripten_bind_DracoUInt8Array_DracoUInt8Array_0=a.asm.ga).apply(null,arguments)},Mb=a._emscripten_bind_DracoUInt8Array_GetValue_1=function(){return(Mb=a._emscripten_bind_DracoUInt8Array_GetValue_1= a.asm.ha).apply(null,arguments)},Nb=a._emscripten_bind_DracoUInt8Array_size_0=function(){return(Nb=a._emscripten_bind_DracoUInt8Array_size_0=a.asm.ia).apply(null,arguments)},Ob=a._emscripten_bind_DracoUInt8Array___destroy___0=function(){return(Ob=a._emscripten_bind_DracoUInt8Array___destroy___0=a.asm.ja).apply(null,arguments)},La=a._emscripten_bind_DracoInt16Array_DracoInt16Array_0=function(){return(La=a._emscripten_bind_DracoInt16Array_DracoInt16Array_0=a.asm.ka).apply(null,arguments)},Pb=a._emscripten_bind_DracoInt16Array_GetValue_1= function(){return(Pb=a._emscripten_bind_DracoInt16Array_GetValue_1=a.asm.la).apply(null,arguments)},Qb=a._emscripten_bind_DracoInt16Array_size_0=function(){return(Qb=a._emscripten_bind_DracoInt16Array_size_0=a.asm.ma).apply(null,arguments)},Rb=a._emscripten_bind_DracoInt16Array___destroy___0=function(){return(Rb=a._emscripten_bind_DracoInt16Array___destroy___0=a.asm.na).apply(null,arguments)},Ma=a._emscripten_bind_DracoUInt16Array_DracoUInt16Array_0=function(){return(Ma=a._emscripten_bind_DracoUInt16Array_DracoUInt16Array_0= a.asm.oa).apply(null,arguments)},Sb=a._emscripten_bind_DracoUInt16Array_GetValue_1=function(){return(Sb=a._emscripten_bind_DracoUInt16Array_GetValue_1=a.asm.pa).apply(null,arguments)},Tb=a._emscripten_bind_DracoUInt16Array_size_0=function(){return(Tb=a._emscripten_bind_DracoUInt16Array_size_0=a.asm.qa).apply(null,arguments)},Ub=a._emscripten_bind_DracoUInt16Array___destroy___0=function(){return(Ub=a._emscripten_bind_DracoUInt16Array___destroy___0=a.asm.ra).apply(null,arguments)},Na=a._emscripten_bind_DracoInt32Array_DracoInt32Array_0= function(){return(Na=a._emscripten_bind_DracoInt32Array_DracoInt32Array_0=a.asm.sa).apply(null,arguments)},Vb=a._emscripten_bind_DracoInt32Array_GetValue_1=function(){return(Vb=a._emscripten_bind_DracoInt32Array_GetValue_1=a.asm.ta).apply(null,arguments)},Wb=a._emscripten_bind_DracoInt32Array_size_0=function(){return(Wb=a._emscripten_bind_DracoInt32Array_size_0=a.asm.ua).apply(null,arguments)},Xb=a._emscripten_bind_DracoInt32Array___destroy___0=function(){return(Xb=a._emscripten_bind_DracoInt32Array___destroy___0= a.asm.va).apply(null,arguments)},Oa=a._emscripten_bind_DracoUInt32Array_DracoUInt32Array_0=function(){return(Oa=a._emscripten_bind_DracoUInt32Array_DracoUInt32Array_0=a.asm.wa).apply(null,arguments)},Yb=a._emscripten_bind_DracoUInt32Array_GetValue_1=function(){return(Yb=a._emscripten_bind_DracoUInt32Array_GetValue_1=a.asm.xa).apply(null,arguments)},Zb=a._emscripten_bind_DracoUInt32Array_size_0=function(){return(Zb=a._emscripten_bind_DracoUInt32Array_size_0=a.asm.ya).apply(null,arguments)},$b=a._emscripten_bind_DracoUInt32Array___destroy___0= function(){return($b=a._emscripten_bind_DracoUInt32Array___destroy___0=a.asm.za).apply(null,arguments)},Pa=a._emscripten_bind_MetadataQuerier_MetadataQuerier_0=function(){return(Pa=a._emscripten_bind_MetadataQuerier_MetadataQuerier_0=a.asm.Aa).apply(null,arguments)},ac=a._emscripten_bind_MetadataQuerier_HasEntry_2=function(){return(ac=a._emscripten_bind_MetadataQuerier_HasEntry_2=a.asm.Ba).apply(null,arguments)},bc=a._emscripten_bind_MetadataQuerier_GetIntEntry_2=function(){return(bc=a._emscripten_bind_MetadataQuerier_GetIntEntry_2= a.asm.Ca).apply(null,arguments)},cc=a._emscripten_bind_MetadataQuerier_GetIntEntryArray_3=function(){return(cc=a._emscripten_bind_MetadataQuerier_GetIntEntryArray_3=a.asm.Da).apply(null,arguments)},dc=a._emscripten_bind_MetadataQuerier_GetDoubleEntry_2=function(){return(dc=a._emscripten_bind_MetadataQuerier_GetDoubleEntry_2=a.asm.Ea).apply(null,arguments)},ec=a._emscripten_bind_MetadataQuerier_GetStringEntry_2=function(){return(ec=a._emscripten_bind_MetadataQuerier_GetStringEntry_2=a.asm.Fa).apply(null, arguments)},fc=a._emscripten_bind_MetadataQuerier_NumEntries_1=function(){return(fc=a._emscripten_bind_MetadataQuerier_NumEntries_1=a.asm.Ga).apply(null,arguments)},gc=a._emscripten_bind_MetadataQuerier_GetEntryName_2=function(){return(gc=a._emscripten_bind_MetadataQuerier_GetEntryName_2=a.asm.Ha).apply(null,arguments)},hc=a._emscripten_bind_MetadataQuerier___destroy___0=function(){return(hc=a._emscripten_bind_MetadataQuerier___destroy___0=a.asm.Ia).apply(null,arguments)},Qa=a._emscripten_bind_Decoder_Decoder_0= function(){return(Qa=a._emscripten_bind_Decoder_Decoder_0=a.asm.Ja).apply(null,arguments)},ic=a._emscripten_bind_Decoder_DecodeArrayToPointCloud_3=function(){return(ic=a._emscripten_bind_Decoder_DecodeArrayToPointCloud_3=a.asm.Ka).apply(null,arguments)},jc=a._emscripten_bind_Decoder_DecodeArrayToMesh_3=function(){return(jc=a._emscripten_bind_Decoder_DecodeArrayToMesh_3=a.asm.La).apply(null,arguments)},kc=a._emscripten_bind_Decoder_GetAttributeId_2=function(){return(kc=a._emscripten_bind_Decoder_GetAttributeId_2= a.asm.Ma).apply(null,arguments)},lc=a._emscripten_bind_Decoder_GetAttributeIdByName_2=function(){return(lc=a._emscripten_bind_Decoder_GetAttributeIdByName_2=a.asm.Na).apply(null,arguments)},mc=a._emscripten_bind_Decoder_GetAttributeIdByMetadataEntry_3=function(){return(mc=a._emscripten_bind_Decoder_GetAttributeIdByMetadataEntry_3=a.asm.Oa).apply(null,arguments)},nc=a._emscripten_bind_Decoder_GetAttribute_2=function(){return(nc=a._emscripten_bind_Decoder_GetAttribute_2=a.asm.Pa).apply(null,arguments)}, oc=a._emscripten_bind_Decoder_GetAttributeByUniqueId_2=function(){return(oc=a._emscripten_bind_Decoder_GetAttributeByUniqueId_2=a.asm.Qa).apply(null,arguments)},pc=a._emscripten_bind_Decoder_GetMetadata_1=function(){return(pc=a._emscripten_bind_Decoder_GetMetadata_1=a.asm.Ra).apply(null,arguments)},qc=a._emscripten_bind_Decoder_GetAttributeMetadata_2=function(){return(qc=a._emscripten_bind_Decoder_GetAttributeMetadata_2=a.asm.Sa).apply(null,arguments)},rc=a._emscripten_bind_Decoder_GetFaceFromMesh_3= function(){return(rc=a._emscripten_bind_Decoder_GetFaceFromMesh_3=a.asm.Ta).apply(null,arguments)},sc=a._emscripten_bind_Decoder_GetTriangleStripsFromMesh_2=function(){return(sc=a._emscripten_bind_Decoder_GetTriangleStripsFromMesh_2=a.asm.Ua).apply(null,arguments)},tc=a._emscripten_bind_Decoder_GetTrianglesUInt16Array_3=function(){return(tc=a._emscripten_bind_Decoder_GetTrianglesUInt16Array_3=a.asm.Va).apply(null,arguments)},uc=a._emscripten_bind_Decoder_GetTrianglesUInt32Array_3=function(){return(uc= a._emscripten_bind_Decoder_GetTrianglesUInt32Array_3=a.asm.Wa).apply(null,arguments)},vc=a._emscripten_bind_Decoder_GetAttributeFloat_3=function(){return(vc=a._emscripten_bind_Decoder_GetAttributeFloat_3=a.asm.Xa).apply(null,arguments)},wc=a._emscripten_bind_Decoder_GetAttributeFloatForAllPoints_3=function(){return(wc=a._emscripten_bind_Decoder_GetAttributeFloatForAllPoints_3=a.asm.Ya).apply(null,arguments)},xc=a._emscripten_bind_Decoder_GetAttributeIntForAllPoints_3=function(){return(xc=a._emscripten_bind_Decoder_GetAttributeIntForAllPoints_3= a.asm.Za).apply(null,arguments)},yc=a._emscripten_bind_Decoder_GetAttributeInt8ForAllPoints_3=function(){return(yc=a._emscripten_bind_Decoder_GetAttributeInt8ForAllPoints_3=a.asm._a).apply(null,arguments)},zc=a._emscripten_bind_Decoder_GetAttributeUInt8ForAllPoints_3=function(){return(zc=a._emscripten_bind_Decoder_GetAttributeUInt8ForAllPoints_3=a.asm.$a).apply(null,arguments)},Ac=a._emscripten_bind_Decoder_GetAttributeInt16ForAllPoints_3=function(){return(Ac=a._emscripten_bind_Decoder_GetAttributeInt16ForAllPoints_3= a.asm.ab).apply(null,arguments)},Bc=a._emscripten_bind_Decoder_GetAttributeUInt16ForAllPoints_3=function(){return(Bc=a._emscripten_bind_Decoder_GetAttributeUInt16ForAllPoints_3=a.asm.bb).apply(null,arguments)},Cc=a._emscripten_bind_Decoder_GetAttributeInt32ForAllPoints_3=function(){return(Cc=a._emscripten_bind_Decoder_GetAttributeInt32ForAllPoints_3=a.asm.cb).apply(null,arguments)},Dc=a._emscripten_bind_Decoder_GetAttributeUInt32ForAllPoints_3=function(){return(Dc=a._emscripten_bind_Decoder_GetAttributeUInt32ForAllPoints_3= a.asm.db).apply(null,arguments)},Ec=a._emscripten_bind_Decoder_GetAttributeDataArrayForAllPoints_5=function(){return(Ec=a._emscripten_bind_Decoder_GetAttributeDataArrayForAllPoints_5=a.asm.eb).apply(null,arguments)},Fc=a._emscripten_bind_Decoder_SkipAttributeTransform_1=function(){return(Fc=a._emscripten_bind_Decoder_SkipAttributeTransform_1=a.asm.fb).apply(null,arguments)},Gc=a._emscripten_bind_Decoder_GetEncodedGeometryType_Deprecated_1=function(){return(Gc=a._emscripten_bind_Decoder_GetEncodedGeometryType_Deprecated_1= a.asm.gb).apply(null,arguments)},Hc=a._emscripten_bind_Decoder_DecodeBufferToPointCloud_2=function(){return(Hc=a._emscripten_bind_Decoder_DecodeBufferToPointCloud_2=a.asm.hb).apply(null,arguments)},Ic=a._emscripten_bind_Decoder_DecodeBufferToMesh_2=function(){return(Ic=a._emscripten_bind_Decoder_DecodeBufferToMesh_2=a.asm.ib).apply(null,arguments)},Jc=a._emscripten_bind_Decoder___destroy___0=function(){return(Jc=a._emscripten_bind_Decoder___destroy___0=a.asm.jb).apply(null,arguments)},Kc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_INVALID_TRANSFORM= function(){return(Kc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_INVALID_TRANSFORM=a.asm.kb).apply(null,arguments)},Lc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_NO_TRANSFORM=function(){return(Lc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_NO_TRANSFORM=a.asm.lb).apply(null,arguments)},Mc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_QUANTIZATION_TRANSFORM=function(){return(Mc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_QUANTIZATION_TRANSFORM= a.asm.mb).apply(null,arguments)},Nc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_OCTAHEDRON_TRANSFORM=function(){return(Nc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_OCTAHEDRON_TRANSFORM=a.asm.nb).apply(null,arguments)},Oc=a._emscripten_enum_draco_GeometryAttribute_Type_INVALID=function(){return(Oc=a._emscripten_enum_draco_GeometryAttribute_Type_INVALID=a.asm.ob).apply(null,arguments)},Pc=a._emscripten_enum_draco_GeometryAttribute_Type_POSITION=function(){return(Pc=a._emscripten_enum_draco_GeometryAttribute_Type_POSITION= a.asm.pb).apply(null,arguments)},Qc=a._emscripten_enum_draco_GeometryAttribute_Type_NORMAL=function(){return(Qc=a._emscripten_enum_draco_GeometryAttribute_Type_NORMAL=a.asm.qb).apply(null,arguments)},Rc=a._emscripten_enum_draco_GeometryAttribute_Type_COLOR=function(){return(Rc=a._emscripten_enum_draco_GeometryAttribute_Type_COLOR=a.asm.rb).apply(null,arguments)},Sc=a._emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD=function(){return(Sc=a._emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD= a.asm.sb).apply(null,arguments)},Tc=a._emscripten_enum_draco_GeometryAttribute_Type_GENERIC=function(){return(Tc=a._emscripten_enum_draco_GeometryAttribute_Type_GENERIC=a.asm.tb).apply(null,arguments)},Uc=a._emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE=function(){return(Uc=a._emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE=a.asm.ub).apply(null,arguments)},Vc=a._emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD=function(){return(Vc=a._emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD= a.asm.vb).apply(null,arguments)},Wc=a._emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH=function(){return(Wc=a._emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH=a.asm.wb).apply(null,arguments)},Xc=a._emscripten_enum_draco_DataType_DT_INVALID=function(){return(Xc=a._emscripten_enum_draco_DataType_DT_INVALID=a.asm.xb).apply(null,arguments)},Yc=a._emscripten_enum_draco_DataType_DT_INT8=function(){return(Yc=a._emscripten_enum_draco_DataType_DT_INT8=a.asm.yb).apply(null,arguments)},Zc= a._emscripten_enum_draco_DataType_DT_UINT8=function(){return(Zc=a._emscripten_enum_draco_DataType_DT_UINT8=a.asm.zb).apply(null,arguments)},$c=a._emscripten_enum_draco_DataType_DT_INT16=function(){return($c=a._emscripten_enum_draco_DataType_DT_INT16=a.asm.Ab).apply(null,arguments)},ad=a._emscripten_enum_draco_DataType_DT_UINT16=function(){return(ad=a._emscripten_enum_draco_DataType_DT_UINT16=a.asm.Bb).apply(null,arguments)},bd=a._emscripten_enum_draco_DataType_DT_INT32=function(){return(bd=a._emscripten_enum_draco_DataType_DT_INT32= a.asm.Cb).apply(null,arguments)},cd=a._emscripten_enum_draco_DataType_DT_UINT32=function(){return(cd=a._emscripten_enum_draco_DataType_DT_UINT32=a.asm.Db).apply(null,arguments)},dd=a._emscripten_enum_draco_DataType_DT_INT64=function(){return(dd=a._emscripten_enum_draco_DataType_DT_INT64=a.asm.Eb).apply(null,arguments)},ed=a._emscripten_enum_draco_DataType_DT_UINT64=function(){return(ed=a._emscripten_enum_draco_DataType_DT_UINT64=a.asm.Fb).apply(null,arguments)},fd=a._emscripten_enum_draco_DataType_DT_FLOAT32= function(){return(fd=a._emscripten_enum_draco_DataType_DT_FLOAT32=a.asm.Gb).apply(null,arguments)},gd=a._emscripten_enum_draco_DataType_DT_FLOAT64=function(){return(gd=a._emscripten_enum_draco_DataType_DT_FLOAT64=a.asm.Hb).apply(null,arguments)},hd=a._emscripten_enum_draco_DataType_DT_BOOL=function(){return(hd=a._emscripten_enum_draco_DataType_DT_BOOL=a.asm.Ib).apply(null,arguments)},id=a._emscripten_enum_draco_DataType_DT_TYPES_COUNT=function(){return(id=a._emscripten_enum_draco_DataType_DT_TYPES_COUNT= a.asm.Jb).apply(null,arguments)},jd=a._emscripten_enum_draco_StatusCode_OK=function(){return(jd=a._emscripten_enum_draco_StatusCode_OK=a.asm.Kb).apply(null,arguments)},kd=a._emscripten_enum_draco_StatusCode_DRACO_ERROR=function(){return(kd=a._emscripten_enum_draco_StatusCode_DRACO_ERROR=a.asm.Lb).apply(null,arguments)},ld=a._emscripten_enum_draco_StatusCode_IO_ERROR=function(){return(ld=a._emscripten_enum_draco_StatusCode_IO_ERROR=a.asm.Mb).apply(null,arguments)},md=a._emscripten_enum_draco_StatusCode_INVALID_PARAMETER= function(){return(md=a._emscripten_enum_draco_StatusCode_INVALID_PARAMETER=a.asm.Nb).apply(null,arguments)},nd=a._emscripten_enum_draco_StatusCode_UNSUPPORTED_VERSION=function(){return(nd=a._emscripten_enum_draco_StatusCode_UNSUPPORTED_VERSION=a.asm.Ob).apply(null,arguments)},od=a._emscripten_enum_draco_StatusCode_UNKNOWN_VERSION=function(){return(od=a._emscripten_enum_draco_StatusCode_UNKNOWN_VERSION=a.asm.Pb).apply(null,arguments)};a._malloc=function(){return(a._malloc=a.asm.Qb).apply(null,arguments)}; a._free=function(){return(a._free=a.asm.Rb).apply(null,arguments)};var ua=function(){return(ua=a.asm.Sb).apply(null,arguments)};a.___start_em_js=11660;a.___stop_em_js=11758;var la;ha=function b(){la||F();la||(ha=b)};if(a.preInit)for("function"==typeof a.preInit&&(a.preInit=[a.preInit]);0=r.size?(0>>=0;switch(c.BYTES_PER_ELEMENT){case 2:d>>>=1;break;case 4:d>>>=2;break;case 8:d>>>=3}for(var g=0;gb.byteLength)return a.INVALID_GEOMETRY_TYPE;switch(b[7]){case 0:return a.POINT_CLOUD;case 1:return a.TRIANGULAR_MESH;default:return a.INVALID_GEOMETRY_TYPE}};return n.ready}}();"object"===typeof exports&&"object"===typeof module?module.exports=DracoDecoderModule:"function"===typeof define&&define.amd?define([],function(){return DracoDecoderModule}):"object"===typeof exports&&(exports.DracoDecoderModule=DracoDecoderModule); ================================================ FILE: packages/editor/public/robots.txt ================================================ User-agent: * Allow: / ================================================ FILE: packages/editor/public/static/resource/htmlPanel/technology/factoryEquipment.html ================================================ 工厂设备

================================================ FILE: packages/editor/src/App.vue ================================================ ================================================ FILE: packages/editor/src/assets/color/ChineseColors.json ================================================ [ { "CMYK": [ 4, 5, 18, 0 ], "RGB": [ 249, 244, 220 ], "hex": "#f9f4dc", "name": "\u4e73\u767d", "pinyin": "rubai" }, { "CMYK": [ 3, 8, 30, 0 ], "RGB": [ 249, 236, 195 ], "hex": "#f7e8aa", "name": "\u674f\u4ec1\u9ec4", "pinyin": "xingrenhuang" }, { "CMYK": [ 4, 13, 67, 0 ], "RGB": [ 248, 223, 114 ], "hex": "#f8df72", "name": "\u8309\u8389\u9ec4", "pinyin": "molihuang" }, { "CMYK": [ 5, 14, 68, 1 ], "RGB": [ 248, 223, 112 ], "hex": "#f8df70", "name": "\u9ea6\u79c6\u9ec4", "pinyin": "maiganhuang" }, { "CMYK": [ 2, 16, 84, 0 ], "RGB": [ 251, 218, 65 ], "hex": "#fbda41", "name": "\u6cb9\u83dc\u82b1\u9ec4", "pinyin": "youcaihuahuang" }, { "CMYK": [ 1, 18, 94, 0 ], "RGB": [ 254, 215, 26 ], "hex": "#fed71a", "name": "\u4f5b\u624b\u9ec4", "pinyin": "foshouhuang" }, { "CMYK": [ 3, 16, 50, 0 ], "RGB": [ 247, 222, 152 ], "hex": "#f7de98", "name": "\u7bfe\u9ec4", "pinyin": "miehuang" }, { "CMYK": [ 3, 17, 69, 0 ], "RGB": [ 248, 216, 106 ], "hex": "#f8d86a", "name": "\u8475\u6247\u9ec4", "pinyin": "kuishanhuang" }, { "CMYK": [ 0, 20, 87, 0 ], "RGB": [ 252, 211, 55 ], "hex": "#fcd337", "name": "\u67e0\u6aac\u9ec4", "pinyin": "ningmenghuang" }, { "CMYK": [ 0, 20, 95, 0 ], "RGB": [ 252, 210, 23 ], "hex": "#fcd217", "name": "\u91d1\u74dc\u9ec4", "pinyin": "jinguahuang" }, { "CMYK": [ 0, 21, 94, 0 ], "RGB": [ 254, 209, 16 ], "hex": "#ffd111", "name": "\u85e4\u9ec4", "pinyin": "tenghuang" }, { "CMYK": [ 2, 16, 39, 0 ], "RGB": [ 246, 222, 173 ], "hex": "#f6dead", "name": "\u916a\u9ec4", "pinyin": "laohuang" }, { "CMYK": [ 1, 17, 50, 0 ], "RGB": [ 247, 218, 148 ], "hex": "#f7da94", "name": "\u9999\u6c34\u73ab\u7470\u9ec4", "pinyin": "xiangshuimeiguihuang" }, { "CMYK": [ 1, 21, 70, 0 ], "RGB": [ 249, 211, 103 ], "hex": "#f9d367", "name": "\u6de1\u5bc6\u9ec4", "pinyin": "danmihuang" }, { "CMYK": [ 0, 23, 88, 0 ], "RGB": [ 251, 205, 49 ], "hex": "#fbcd31", "name": "\u5927\u8c46\u9ec4", "pinyin": "dadouhuang" }, { "CMYK": [ 0, 24, 94, 0 ], "RGB": [ 252, 203, 22 ], "hex": "#fccb16", "name": "\u7d20\u99a8\u9ec4", "pinyin": "suxinhuang" }, { "CMYK": [ 0, 24, 94, 0 ], "RGB": [ 254, 204, 17 ], "hex": "#fecc11", "name": "\u5411\u65e5\u8475\u9ec4", "pinyin": "xiangrikuihuang" }, { "CMYK": [ 0, 27, 88, 0 ], "RGB": [ 251, 200, 47 ], "hex": "#fbc82f", "name": "\u96c5\u68a8\u9ec4", "pinyin": "yalihuang" }, { "CMYK": [ 0, 28, 94, 0 ], "RGB": [ 252, 197, 21 ], "hex": "#fcc515", "name": "\u9ec4\u8fde\u9ec4", "pinyin": "huanglianhuang" }, { "CMYK": [ 0, 29, 95, 0 ], "RGB": [ 252, 195, 7 ], "hex": "#fcc307", "name": "\u91d1\u76cf\u9ec4", "pinyin": "jinzhanhuang" }, { "CMYK": [ 0, 32, 52, 0 ], "RGB": [ 248, 195, 135 ], "hex": "#f8c387", "name": "\u86cb\u58f3\u9ec4", "pinyin": "dankehuang" }, { "CMYK": [ 0, 32, 52, 0 ], "RGB": [ 247, 193, 115 ], "hex": "#f7c173", "name": "\u8089\u8272", "pinyin": "rouse" }, { "CMYK": [ 0, 35, 89, 0 ], "RGB": [ 251, 185, 41 ], "hex": "#fbb929", "name": "\u9e45\u638c\u9ec4", "pinyin": "ezhanghuang" }, { "CMYK": [ 0, 36, 93, 0 ], "RGB": [ 251, 182, 18 ], "hex": "#fbb612", "name": "\u9e21\u86cb\u9ec4", "pinyin": "jidanhuang" }, { "CMYK": [ 0, 35, 94, 0 ], "RGB": [ 252, 183, 10 ], "hex": "#fcb70a", "name": "\u9f2c\u9ec4", "pinyin": "youhuang" }, { "CMYK": [ 0, 44, 84, 0 ], "RGB": [ 249, 166, 51 ], "hex": "#f9a633", "name": "\u69b4\u843c\u9ec4", "pinyin": "liuehuang" }, { "CMYK": [ 0, 45, 92, 0 ], "RGB": [ 251, 164, 20 ], "hex": "#fba414", "name": "\u6de1\u6a58\u6a59", "pinyin": "danjucheng" }, { "CMYK": [ 0, 47, 92, 0 ], "RGB": [ 252, 161, 6 ], "hex": "#fca106", "name": "\u6787\u6777\u9ec4", "pinyin": "pipahuang" }, { "CMYK": [ 0, 47, 92, 0 ], "RGB": [ 252, 161, 4 ], "hex": "#fca104", "name": "\u6a59\u76ae\u9ec4", "pinyin": "chengpihuang" }, { "CMYK": [ 0, 56, 87, 0 ], "RGB": [ 252, 140, 35 ], "hex": "#fc8c23", "name": "\u5317\u74dc\u9ec4", "pinyin": "beiguahuang" }, { "CMYK": [ 0, 54, 92, 0 ], "RGB": [ 250, 142, 22 ], "hex": "#f28e16", "name": "\u674f\u9ec4", "pinyin": "xinghuang" }, { "CMYK": [ 0, 51, 91, 0 ], "RGB": [ 255, 153, 0 ], "hex": "#ff9900", "name": "\u96c4\u9ec4", "pinyin": "xionghuang" }, { "CMYK": [ 0, 56, 91, 0 ], "RGB": [ 251, 139, 5 ], "hex": "#fb8b05", "name": "\u4e07\u5bff\u83ca\u9ec4", "pinyin": "wanshoujuhuang" }, { "CMYK": [ 10, 13, 35, 1 ], "RGB": [ 233, 221, 182 ], "hex": "#e9ddb6", "name": "\u83ca\u857e\u767d", "pinyin": "juleibai" }, { "CMYK": [ 8, 19, 84, 1 ], "RGB": [ 238, 208, 69 ], "hex": "#eed045", "name": "\u79cb\u8475\u9ec4", "pinyin": "qiukuihuang" }, { "CMYK": [ 6, 20, 92, 1 ], "RGB": [ 242, 206, 43 ], "hex": "#f2ce2b", "name": "\u786b\u534e\u9ec4", "pinyin": "liuhuahuang" }, { "CMYK": [ 6, 22, 92, 0 ], "RGB": [ 241, 202, 23 ], "hex": "#f1ca17", "name": "\u67da\u9ec4", "pinyin": "youhuang" }, { "CMYK": [ 15, 20, 66, 2 ], "RGB": [ 221, 200, 113 ], "hex": "#ddc871", "name": "\u8292\u679c\u9ec4", "pinyin": "mangguohuang" }, { "CMYK": [ 14, 22, 85, 2 ], "RGB": [ 223, 194, 67 ], "hex": "#dfc243", "name": "\u84bf\u9ec4", "pinyin": "haohuang" }, { "CMYK": [ 12, 24, 95, 2 ], "RGB": [ 226, 192, 39 ], "hex": "#e2c027", "name": "\u59dc\u9ec4", "pinyin": "jianghuang" }, { "CMYK": [ 11, 25, 99, 1 ], "RGB": [ 228, 191, 17 ], "hex": "#e4bf11", "name": "\u9999\u8549\u9ec4", "pinyin": "xiangjiaohuang" }, { "CMYK": [ 17, 27, 94, 4 ], "RGB": [ 210, 180, 44 ], "hex": "#d2b42c", "name": "\u8349\u9ec4", "pinyin": "caohuang" }, { "CMYK": [ 17, 29, 100, 4 ], "RGB": [ 210, 177, 22 ], "hex": "#d2b116", "name": "\u65b0\u79be\u7eff", "pinyin": "xinhelv" }, { "CMYK": [ 28, 26, 45, 7 ], "RGB": [ 183, 174, 143 ], "hex": "#b7ae8f", "name": "\u6708\u7070", "pinyin": "yuehui" }, { "CMYK": [ 30, 30, 70, 12 ], "RGB": [ 173, 158, 85 ], "hex": "#ad9e5f", "name": "\u6de1\u7070\u7eff", "pinyin": "danhuilv" }, { "CMYK": [ 38, 38, 76, 24 ], "RGB": [ 142, 128, 75 ], "hex": "#8e804b", "name": "\u8349\u7070\u7eff", "pinyin": "caohuilv" }, { "CMYK": [ 36, 42, 100, 29 ], "RGB": [ 136, 115, 34 ], "hex": "#887322", "name": "\u82d4\u7eff", "pinyin": "tailv" }, { "CMYK": [ 36, 42, 100, 30 ], "RGB": [ 134, 112, 24 ], "hex": "#867018", "name": "\u78a7\u87ba\u6625\u7eff", "pinyin": "biluochunlv" }, { "CMYK": [ 47, 47, 65, 42 ], "RGB": [ 104, 94, 72 ], "hex": "#685e48", "name": "\u71d5\u7fbd\u7070", "pinyin": "yanyuhui" }, { "CMYK": [ 46, 47, 69, 42 ], "RGB": [ 105, 94, 69 ], "hex": "#695e45", "name": "\u87f9\u58f3\u7070", "pinyin": "xiekehui" }, { "CMYK": [ 48, 48, 100, 45 ], "RGB": [ 100, 88, 34 ], "hex": "#645822", "name": "\u6f6d\u6c34\u7eff", "pinyin": "tanshuilv" }, { "CMYK": [ 50, 50, 10, 48 ], "RGB": [ 94, 83, 20 ], "hex": "#5e5314", "name": "\u6a44\u6984\u7eff", "pinyin": "ganlanlv" }, { "CMYK": [ 2, 6, 18, 0 ], "RGB": [ 249, 241, 219 ], "hex": "#f9f1db", "name": "\u868c\u8089\u767d", "pinyin": "bangroubai" }, { "CMYK": [ 3, 10, 31, 0 ], "RGB": [ 248, 232, 193 ], "hex": "#f8e8c1", "name": "\u8c46\u6c41\u9ec4", "pinyin": "douzhihuang" }, { "CMYK": [ 1, 19, 66, 0 ], "RGB": [ 249, 215, 112 ], "hex": "#f9d770", "name": "\u6de1\u8327\u9ec4", "pinyin": "danjianhuang" }, { "CMYK": [ 0, 26, 94, 0 ], "RGB": [ 255, 201, 12 ], "hex": "#ffc90c", "name": "\u4e73\u9e2d\u9ec4", "pinyin": "ruyahuang" }, { "CMYK": [ 5, 11, 22, 0 ], "RGB": [ 242, 230, 206 ], "hex": "#f2e6ce", "name": "\u8354\u8089\u767d", "pinyin": "liroubai" }, { "CMYK": [ 5, 19, 50, 0 ], "RGB": [ 240, 214, 149 ], "hex": "#f0d695", "name": "\u8c61\u7259\u9ec4", "pinyin": "xiangyahuang" }, { "CMYK": [ 3, 23, 69, 0 ], "RGB": [ 244, 206, 105 ], "hex": "#f4ce69", "name": "\u7092\u7c73\u9ec4", "pinyin": "chaomihuang" }, { "CMYK": [ 0, 30, 95, 0 ], "RGB": [ 249, 193, 22 ], "hex": "#f9c116", "name": "\u6728\u74dc\u9ec4", "pinyin": "muguahuang" }, { "CMYK": [ 0, 32, 95, 0 ], "RGB": [ 249, 189, 16 ], "hex": "#f9bd10", "name": "\u6d45\u70d9\u9ec4", "pinyin": "qianlaohuang" }, { "CMYK": [ 11, 18, 39, 1 ], "RGB": [ 229, 211, 170 ], "hex": "#e5d3aa", "name": "\u83b2\u5b50\u767d", "pinyin": "lianzibai" }, { "CMYK": [ 5, 35, 99, 0 ], "RGB": [ 232, 176, 4 ], "hex": "#e8b004", "name": "\u8c37\u9ec4", "pinyin": "guhuang" }, { "CMYK": [ 3, 36, 99, 0 ], "RGB": [ 235, 177, 13 ], "hex": "#ebb10d", "name": "\u6800\u5b50\u9ec4", "pinyin": "zhizihuang" }, { "CMYK": [ 11, 39, 100, 2 ], "RGB": [ 217, 164, 14 ], "hex": "#d9a40e", "name": "\u82a5\u9ec4", "pinyin": "jiehuang" }, { "CMYK": [ 28, 27, 43, 8 ], "RGB": [ 181, 170, 144 ], "hex": "#b5aa90", "name": "\u94f6\u9f20\u7070", "pinyin": "yinshuhui" }, { "CMYK": [ 26, 31, 57, 10 ], "RGB": [ 182, 164, 118 ], "hex": "#b6a476", "name": "\u5c18\u7070", "pinyin": "chenhui" }, { "CMYK": [ 21, 43, 100, 11 ], "RGB": [ 183, 141, 18 ], "hex": "#b78d12", "name": "\u67af\u7eff", "pinyin": "kulv" }, { "CMYK": [ 35, 44, 80, 30 ], "RGB": [ 135, 114, 62 ], "hex": "#87723e", "name": "\u9c9b\u9752", "pinyin": "jiaoqing" }, { "CMYK": [ 32, 50, 100, 31 ], "RGB": [ 135, 104, 24 ], "hex": "#876818", "name": "\u7cbd\u53f6\u7eff", "pinyin": "zongyelv" }, { "CMYK": [ 31, 51, 100, 30 ], "RGB": [ 138, 105, 19 ], "hex": "#8a6913", "name": "\u7070\u7eff", "pinyin": "huilv" }, { "CMYK": [ 52, 56, 64, 62 ], "RGB": [ 74, 64, 53 ], "hex": "#4a4035", "name": "\u9e64\u7070", "pinyin": "hehui" }, { "CMYK": [ 48, 58, 70, 62 ], "RGB": [ 77, 64, 48 ], "hex": "#4d4030", "name": "\u6de1\u677e\u70df", "pinyin": "dansongyan" }, { "CMYK": [ 45, 56, 100, 56 ], "RGB": [ 88, 71, 23 ], "hex": "#584717", "name": "\u6697\u6d77\u6c34\u7eff", "pinyin": "anhaishuilv" }, { "CMYK": [ 45, 55, 100, 54 ], "RGB": [ 91, 73, 19 ], "hex": "#5b4913", "name": "\u68d5\u6988\u7eff", "pinyin": "zonglvlv" }, { "CMYK": [ 1, 11, 24, 0 ], "RGB": [ 249, 223, 205 ], "hex": "#f9e9cd", "name": "\u7c73\u8272", "pinyin": "mise" }, { "CMYK": [ 1, 15, 38, 0 ], "RGB": [ 248, 224, 176 ], "hex": "#f8e0b0", "name": "\u6de1\u8089\u8272", "pinyin": "danrouse" }, { "CMYK": [ 0, 23, 59, 0 ], "RGB": [ 249, 210, 125 ], "hex": "#f9d27d", "name": "\u9ea6\u82bd\u7cd6\u9ec4", "pinyin": "maiyatanghuang" }, { "CMYK": [ 0, 34, 93, 0 ], "RGB": [ 254, 186, 7 ], "hex": "#feba07", "name": "\u7425\u73c0\u9ec4", "pinyin": "hupohuang" }, { "CMYK": [ 1, 31, 79, 0 ], "RGB": [ 243, 191, 76 ], "hex": "#f3bf4c", "name": "\u7518\u8349\u9ec4", "pinyin": "gancaohuang" }, { "CMYK": [ 0, 33, 83, 0 ], "RGB": [ 248, 188, 49 ], "hex": "#f8bc31", "name": "\u521d\u719f\u674f\u9ec4", "pinyin": "chushuxinghuang" }, { "CMYK": [ 10, 27, 59, 1 ], "RGB": [ 226, 193, 124 ], "hex": "#e2c17c", "name": "\u6d45\u9a7c\u8272", "pinyin": "qiantuose" }, { "CMYK": [ 7, 32, 78, 1 ], "RGB": [ 229, 183, 81 ], "hex": "#e5b751", "name": "\u6c99\u77f3\u9ec4", "pinyin": "shashihuang" }, { "CMYK": [ 3, 38, 97, 0 ], "RGB": [ 234, 173, 26 ], "hex": "#eaad1a", "name": "\u864e\u76ae\u9ec4", "pinyin": "hupihuang" }, { "CMYK": [ 12, 41, 98, 2 ], "RGB": [ 214, 160, 29 ], "hex": "#d6a01d", "name": "\u571f\u9ec4", "pinyin": "tuhuang" }, { "CMYK": [ 28, 28, 41, 9 ], "RGB": [ 180, 169, 146 ], "hex": "#b4a992", "name": "\u767e\u7075\u9e1f\u7070", "pinyin": "bailingniaohui" }, { "CMYK": [ 21, 44, 97, 11 ], "RGB": [ 183, 139, 38 ], "hex": "#b78b26", "name": "\u5c71\u9e21\u9ec4", "pinyin": "shanjihuang" }, { "CMYK": [ 35, 47, 71, 33 ], "RGB": [ 130, 107, 72 ], "hex": "#826b48", "name": "\u9f9f\u80cc\u9ec4", "pinyin": "guibeihuang" }, { "CMYK": [ 34, 52, 85, 35 ], "RGB": [ 128, 99, 50 ], "hex": "#806332", "name": "\u82cd\u9ec4", "pinyin": "canghuang" }, { "CMYK": [ 32, 56, 96, 34 ], "RGB": [ 129, 95, 37 ], "hex": "#815f25", "name": "\u83b1\u9633\u68a8\u9ec4", "pinyin": "laiyanglihuang" }, { "CMYK": [ 31, 57, 100, 33 ], "RGB": [ 131, 94, 29 ], "hex": "#835e1d", "name": "\u8734\u870a\u7eff", "pinyin": "yililv" }, { "CMYK": [ 46, 59, 68, 61 ], "RGB": [ 79, 64, 50 ], "hex": "#4f4032", "name": "\u677e\u9f20\u7070", "pinyin": "songshuhui" }, { "CMYK": [ 44, 61, 76, 62 ], "RGB": [ 80, 62, 42 ], "hex": "#503e2a", "name": "\u6a44\u6984\u7070", "pinyin": "ganlanhui" }, { "CMYK": [ 43, 63, 88, 61 ], "RGB": [ 81, 60, 32 ], "hex": "#513c20", "name": "\u87f9\u58f3\u7eff", "pinyin": "xiekelv" }, { "CMYK": [ 42, 64, 94, 60 ], "RGB": [ 83, 60, 27 ], "hex": "#533c1b", "name": "\u53e4\u94dc\u7eff", "pinyin": "gutonglv" }, { "CMYK": [ 41, 66, 94, 60 ], "RGB": [ 85, 59, 24 ], "hex": "#553b18", "name": "\u7126\u8336\u7eff", "pinyin": "jiaochalv" }, { "CMYK": [ 1, 7, 13, 0 ], "RGB": [ 251, 242, 227 ], "hex": "#fbf2e3", "name": "\u7c89\u767d", "pinyin": "fenbai" }, { "CMYK": [ 1, 12, 22, 0 ], "RGB": [ 249, 232, 208 ], "hex": "#f9e8d0", "name": "\u843d\u82f1\u6de1\u7c89", "pinyin": "luoyingdanfen" }, { "CMYK": [ 0, 27, 51, 0 ], "RGB": [ 249, 203, 139 ], "hex": "#f9cb8b", "name": "\u74dc\u74e4\u7c89", "pinyin": "guarangfen" }, { "CMYK": [ 0, 36, 72, 0 ], "RGB": [ 251, 185, 87 ], "hex": "#fbb957", "name": "\u871c\u9ec4", "pinyin": "mihuang" }, { "CMYK": [ 0, 44, 91, 0 ], "RGB": [ 255, 166, 15 ], "hex": "#ffa60f", "name": "\u91d1\u53f6\u9ec4", "pinyin": "jinyehuang" }, { "CMYK": [ 0, 43, 82, 0 ], "RGB": [ 244, 168, 58 ], "hex": "#f4a83a", "name": "\u91d1\u83ba\u9ec4", "pinyin": "jinyinghuang" }, { "CMYK": [ 8, 31, 50, 1 ], "RGB": [ 227, 189, 141 ], "hex": "#e3bd8d", "name": "\u9e7f\u89d2\u68d5", "pinyin": "lujiaozong" }, { "CMYK": [ 2, 44, 83, 0 ], "RGB": [ 231, 162, 63 ], "hex": "#e7a23f", "name": "\u51cb\u53f6\u68d5", "pinyin": "diaoyezong" }, { "CMYK": [ 10, 41, 72, 1 ], "RGB": [ 218, 164, 90 ], "hex": "#daa45a", "name": "\u73b3\u7441\u9ec4", "pinyin": "daimaohuang" }, { "CMYK": [ 7, 45, 82, 1 ], "RGB": [ 222, 158, 68 ], "hex": "#de9e44", "name": "\u8f6f\u6728\u9ec4", "pinyin": "ruanmuhuang" }, { "CMYK": [ 6, 51, 95, 1 ], "RGB": [ 220, 145, 35 ], "hex": "#dc9123", "name": "\u98ce\u5e06\u9ec4", "pinyin": "fengfanhuang" }, { "CMYK": [ 19, 44, 75, 7 ], "RGB": [ 192, 147, 81 ], "hex": "#c09351", "name": "\u6842\u76ae\u6de1\u68d5", "pinyin": "guipidanzong" }, { "CMYK": [ 32, 40, 53, 22 ], "RGB": [ 151, 132, 108 ], "hex": "#97846c", "name": "\u7334\u6bdb\u7070", "pinyin": "houmaohui" }, { "CMYK": [ 27, 60, 97, 21 ], "RGB": [ 152, 101, 36 ], "hex": "#986524", "name": "\u5c71\u9e21\u8910", "pinyin": "shanjihe" }, { "CMYK": [ 37, 65, 84, 49 ], "RGB": [ 102, 70, 42 ], "hex": "#66462a", "name": "\u9a7c\u8272", "pinyin": "tuose" }, { "CMYK": [ 38, 69, 90, 54 ], "RGB": [ 93, 61, 33 ], "hex": "#5d3d21", "name": "\u8336\u8910", "pinyin": "chahe" }, { "CMYK": [ 37, 74, 96, 55 ], "RGB": [ 92, 55, 25 ], "hex": "#5c3719", "name": "\u53e4\u94dc\u8910", "pinyin": "gutonghe" }, { "CMYK": [ 0, 10, 14, 0 ], "RGB": [ 251, 236, 222 ], "hex": "#fbecde", "name": "\u8377\u82b1\u767d", "pinyin": "hehuabai" }, { "CMYK": [ 0, 40, 52, 0 ], "RGB": [ 248, 179, 127 ], "hex": "#f8b37f", "name": "\u73ab\u7470\u7c89", "pinyin": "meiguifen" }, { "CMYK": [ 0, 62, 88, 0 ], "RGB": [ 249, 125, 28 ], "hex": "#f97d1c", "name": "\u6a58\u6a59", "pinyin": "jucheng" }, { "CMYK": [ 0, 62, 85, 0 ], "RGB": [ 250, 126, 35 ], "hex": "#fa7e23", "name": "\u7f8e\u4eba\u7126\u6a59", "pinyin": "meirenjiaocheng" }, { "CMYK": [ 0, 28, 25, 0 ], "RGB": [ 247, 205, 188 ], "hex": "#f7cdbc", "name": "\u6da6\u7ea2", "pinyin": "runhong" }, { "CMYK": [ 0, 28, 22, 0 ], "RGB": [ 246, 206, 193 ], "hex": "#f6cec1", "name": "\u6de1\u6843\u7ea2", "pinyin": "dantaohong" }, { "CMYK": [ 0, 53, 65, 0 ], "RGB": [ 240, 148, 93 ], "hex": "#f0945d", "name": "\u6d77\u87ba\u6a59", "pinyin": "hailuocheng" }, { "CMYK": [ 0, 44, 32, 0 ], "RGB": [ 240, 173, 160 ], "hex": "#f0ada0", "name": "\u6843\u7ea2", "pinyin": "taohong" }, { "CMYK": [ 0, 45, 34, 0 ], "RGB": [ 238, 170, 156 ], "hex": "#eeaa9c", "name": "\u988a\u7ea2", "pinyin": "jiahong" }, { "CMYK": [ 0, 49, 41, 0 ], "RGB": [ 238, 160, 140 ], "hex": "#eea08c", "name": "\u6de1\u7f42\u7c9f\u7ea2", "pinyin": "danyingsuhong" }, { "CMYK": [ 0, 58, 67, 0 ], "RGB": [ 234, 137, 88 ], "hex": "#ea8958", "name": "\u6668\u66e6\u7ea2", "pinyin": "chenxihong" }, { "CMYK": [ 0, 65, 80, 0 ], "RGB": [ 242, 118, 53 ], "hex": "#f27635", "name": "\u87f9\u58f3\u7ea2", "pinyin": "xiekehong" }, { "CMYK": [ 0, 69, 86, 0 ], "RGB": [ 248, 107, 29 ], "hex": "#f86b1d", "name": "\u91d1\u83b2\u82b1\u6a59", "pinyin": "jinlianhuacheng" }, { "CMYK": [ 0, 69, 70, 0 ], "RGB": [ 239, 111, 72 ], "hex": "#ef6f48", "name": "\u8349\u8393\u7ea2", "pinyin": "caomeihong" }, { "CMYK": [ 0, 72, 82, 0 ], "RGB": [ 239, 99, 43 ], "hex": "#ef632b", "name": "\u9f99\u775b\u9c7c\u7ea2", "pinyin": "longjingyuhong" }, { "CMYK": [ 0, 81, 84, 0 ], "RGB": [ 241, 68, 29 ], "hex": "#f1441d", "name": "\u873b\u8713\u7ea2", "pinyin": "qingtinghong" }, { "CMYK": [ 0, 80, 83, 0 ], "RGB": [ 240, 75, 34 ], "hex": "#f04b22", "name": "\u5927\u7ea2", "pinyin": "dahong" }, { "CMYK": [ 0, 80, 85, 0 ], "RGB": [ 242, 72, 27 ], "hex": "#f2481b", "name": "\u67ff\u7ea2", "pinyin": "shihong" }, { "CMYK": [ 0, 80, 85, 0 ], "RGB": [ 243, 71, 24 ], "hex": "#f34718", "name": "\u69b4\u82b1\u7ea2", "pinyin": "liuhuahong" }, { "CMYK": [ 0, 83, 87, 0 ], "RGB": [ 244, 62, 6 ], "hex": "#f43e06", "name": "\u94f6\u6731", "pinyin": "yinzhu" }, { "CMYK": [ 0, 78, 83, 0 ], "RGB": [ 237, 81, 38 ], "hex": "#ed5126", "name": "\u6731\u7ea2", "pinyin": "zhuhong" }, { "CMYK": [ 0, 50, 68, 0 ], "RGB": [ 240, 156, 90 ], "hex": "#f09c5a", "name": "\u9c91\u9c7c\u7ea2", "pinyin": "guiyuhong" }, { "CMYK": [ 5, 69, 87, 0 ], "RGB": [ 242, 123, 31 ], "hex": "#f26b1f", "name": "\u91d1\u9ec4", "pinyin": "jinhuang" }, { "CMYK": [ 7, 52, 71, 1 ], "RGB": [ 217, 145, 86 ], "hex": "#d99156", "name": "\u9e7f\u76ae\u8910", "pinyin": "lupihe" }, { "CMYK": [ 4, 57, 82, 1 ], "RGB": [ 219, 133, 64 ], "hex": "#db8540", "name": "\u9189\u74dc\u8089", "pinyin": "zuiguarou" }, { "CMYK": [ 0, 64, 93, 0 ], "RGB": [ 222, 118, 34 ], "hex": "#de7622", "name": "\u9e82\u68d5", "pinyin": "jizong" }, { "CMYK": [ 22, 28, 34, 6 ], "RGB": [ 193, 178, 163 ], "hex": "#c1b2a3", "name": "\u6de1\u94f6\u7070", "pinyin": "danyinhui" }, { "CMYK": [ 18, 57, 76, 6 ], "RGB": [ 190, 126, 74 ], "hex": "#be7e4a", "name": "\u6de1\u8d6d", "pinyin": "danzhe" }, { "CMYK": [ 14, 69, 100, 4 ], "RGB": [ 193, 101, 26 ], "hex": "#c1651a", "name": "\u69df\u6994\u7efc", "pinyin": "binglangzong" }, { "CMYK": [ 34, 42, 46, 23 ], "RGB": [ 145, 128, 114 ], "hex": "#918072", "name": "\u94f6\u7070", "pinyin": "yinhui" }, { "CMYK": [ 42, 40, 46, 20 ], "RGB": [ 154, 136, 120 ], "hex": "#9a8878", "name": "\u6d77\u9e25\u7070", "pinyin": "haiouhui" }, { "CMYK": [ 27, 69, 85, 22 ], "RGB": [ 148, 88, 51 ], "hex": "#945833", "name": "\u6de1\u5496\u5561", "pinyin": "dankafei" }, { "CMYK": [ 26, 76, 97, 20 ], "RGB": [ 150, 77, 34 ], "hex": "#964d22", "name": "\u5ca9\u77f3\u68d5", "pinyin": "yanshizong" }, { "CMYK": [ 25, 80, 100, 20 ], "RGB": [ 149, 68, 22 ], "hex": "#954416", "name": "\u8292\u679c\u68d5", "pinyin": "mangguozong" }, { "CMYK": [ 39, 60, 58, 51 ], "RGB": [ 98, 73, 65 ], "hex": "#624941", "name": "\u77f3\u677f\u7070", "pinyin": "shibanhui" }, { "CMYK": [ 38, 63, 63, 50 ], "RGB": [ 100, 72, 61 ], "hex": "#64483d", "name": "\u73e0\u6bcd\u7070", "pinyin": "zhumuhui" }, { "CMYK": [ 32, 83, 96, 41 ], "RGB": [ 113, 54, 29 ], "hex": "#71361d", "name": "\u4e01\u9999\u68d5", "pinyin": "dingxiangzong" }, { "CMYK": [ 30, 87, 100, 38 ], "RGB": [ 117, 49, 23 ], "hex": "#753117", "name": "\u5496\u5561", "pinyin": "kafei" }, { "CMYK": [ 30, 89, 100, 39 ], "RGB": [ 115, 46, 18 ], "hex": "#732e12", "name": "\u7b4d\u76ae\u68d5", "pinyin": "sunpizong" }, { "CMYK": [ 0, 72, 86, 0 ], "RGB": [ 252, 99, 21 ], "hex": "#fc6315", "name": "\u71d5\u9894\u7ea2", "pinyin": "yanhanhong" }, { "CMYK": [ 3, 38, 39, 0 ], "RGB": [ 232, 180, 154 ], "hex": "#e8b49a", "name": "\u7389\u7c89\u7ea2", "pinyin": "yufenhong" }, { "CMYK": [ 0, 70, 87, 0 ], "RGB": [ 228, 104, 40 ], "hex": "#e46828", "name": "\u91d1\u9a7c", "pinyin": "jintuo" }, { "CMYK": [ 0, 76, 97, 0 ], "RGB": [ 216, 89, 22 ], "hex": "#d85916", "name": "\u94c1\u68d5", "pinyin": "tiezong" }, { "CMYK": [ 23, 35, 38, 10 ], "RGB": [ 183, 160, 145 ], "hex": "#b7a091", "name": "\u86db\u7f51\u7070", "pinyin": "zhuwanghui" }, { "CMYK": [ 16, 77, 100, 6 ], "RGB": [ 183, 81, 29 ], "hex": "#b7511d", "name": "\u6de1\u53ef\u53ef\u68d5", "pinyin": "dankekezong" }, { "CMYK": [ 31, 63, 66, 31 ], "RGB": [ 139, 97, 77 ], "hex": "#8b614d", "name": "\u4e2d\u7ea2\u7070", "pinyin": "zhonghonghui" }, { "CMYK": [ 28, 76, 82, 26 ], "RGB": [ 140, 75, 49 ], "hex": "#8c4b31", "name": "\u6de1\u571f\u9ec4", "pinyin": "dantuhuang" }, { "CMYK": [ 28, 83, 92, 28 ], "RGB": [ 135, 61, 36 ], "hex": "#873d24", "name": "\u6de1\u8c46\u6c99", "pinyin": "dandousha" }, { "CMYK": [ 27, 85, 98, 27 ], "RGB": [ 136, 58, 30 ], "hex": "#883a1e", "name": "\u6930\u58f3\u68d5", "pinyin": "yekezong" }, { "CMYK": [ 40, 64, 61, 56 ], "RGB": [ 91, 66, 58 ], "hex": "#5b423a", "name": "\u6de1\u94c1\u7070", "pinyin": "dantiehui" }, { "CMYK": [ 37, 72, 72, 52 ], "RGB": [ 96, 61, 48 ], "hex": "#603d30", "name": "\u4e2d\u7070\u9a7c", "pinyin": "zhonghuituo" }, { "CMYK": [ 34, 82, 85, 47 ], "RGB": [ 103, 52, 36 ], "hex": "#673424", "name": "\u6de1\u6817\u68d5", "pinyin": "danlizong" }, { "CMYK": [ 33, 89, 92, 48 ], "RGB": [ 101, 43, 28 ], "hex": "#652b1c", "name": "\u53ef\u53ef\u68d5", "pinyin": "kekezong" }, { "CMYK": [ 32, 90, 95, 45 ], "RGB": [ 105, 42, 27 ], "hex": "#692a1b", "name": "\u67de\u53f6\u68d5", "pinyin": "zhayezong" }, { "CMYK": [ 0, 53, 59, 0 ], "RGB": [ 251, 153, 104 ], "hex": "#fb9968", "name": "\u91ce\u8537\u8587\u7ea2", "pinyin": "yeqiangweihong" }, { "CMYK": [ 0, 65, 79, 0 ], "RGB": [ 252, 121, 48 ], "hex": "#fc7930", "name": "\u83e0\u841d\u7ea2", "pinyin": "boluohong" }, { "CMYK": [ 2, 31, 31, 0 ], "RGB": [ 237, 195, 174 ], "hex": "#edc3ae", "name": "\u85d5\u8377", "pinyin": "ouhe" }, { "CMYK": [ 0, 70, 91, 0 ], "RGB": [ 225, 103, 35 ], "hex": "#e16723", "name": "\u9676\u74f7\u7ea2", "pinyin": "taocihong" }, { "CMYK": [ 16, 23, 27, 2 ], "RGB": [ 212, 196, 183 ], "hex": "#d4c4b7", "name": "\u6653\u7070", "pinyin": "xiaohui" }, { "CMYK": [ 9, 64, 78, 1 ], "RGB": [ 207, 117, 67 ], "hex": "#cf7543", "name": "\u4f59\u70ec\u7ea2", "pinyin": "yujinhong" }, { "CMYK": [ 8, 72, 93, 1 ], "RGB": [ 205, 98, 39 ], "hex": "#cd6227", "name": "\u706b\u7816\u7ea2", "pinyin": "huozhuanhong" }, { "CMYK": [ 22, 64, 71, 12 ], "RGB": [ 170, 106, 76 ], "hex": "#aa6a4c", "name": "\u706b\u6ce5\u68d5", "pinyin": "huonizong" }, { "CMYK": [ 20, 76, 92, 9 ], "RGB": [ 166, 82, 44 ], "hex": "#a6522c", "name": "\u7ec0\u7ea2", "pinyin": "ganhong" }, { "CMYK": [ 31, 79, 77, 37 ], "RGB": [ 119, 61, 49 ], "hex": "#773d31", "name": "\u6a61\u6811\u68d5", "pinyin": "xiangshuzong" }, { "CMYK": [ 45, 68, 57, 66 ], "RGB": [ 72, 51, 50 ], "hex": "#483332", "name": "\u6d77\u62a5\u7070", "pinyin": "haibaohui" }, { "CMYK": [ 41, 76, 64, 65 ], "RGB": [ 175, 46, 43 ], "hex": "#4b2e2b", "name": "\u73ab\u7470\u7070", "pinyin": "meiguihui" }, { "CMYK": [ 41, 84, 71, 67 ], "RGB": [ 72, 37, 34 ], "hex": "#482522", "name": "\u706b\u5c71\u68d5", "pinyin": "huoshanzong" }, { "CMYK": [ 40, 92, 78, 66 ], "RGB": [ 72, 30, 28 ], "hex": "#481e1c", "name": "\u8c46\u6c99", "pinyin": "dousha" }, { "CMYK": [ 0, 9, 12, 0 ], "RGB": [ 251, 238, 226 ], "hex": "#fbeee2", "name": "\u6de1\u7c73\u7c89", "pinyin": "danmifen" }, { "CMYK": [ 0, 19, 19, 0 ], "RGB": [ 246, 220, 206 ], "hex": "#f6dcce", "name": "\u521d\u6843\u7c89\u7ea2", "pinyin": "chutaofenhong" }, { "CMYK": [ 0, 27, 27, 0 ], "RGB": [ 247, 207, 186 ], "hex": "#f7cfba", "name": "\u4ecb\u58f3\u6de1\u7c89\u7ea2", "pinyin": "jieqiaodanfenhong" }, { "CMYK": [ 0, 43, 43, 0 ], "RGB": [ 246, 173, 143 ], "hex": "#f6ad8f", "name": "\u6de1\u85cf\u82b1\u7ea2", "pinyin": "dancanghuahong" }, { "CMYK": [ 0, 58, 61, 0 ], "RGB": [ 246, 140, 96 ], "hex": "#f68c60", "name": "\u74dc\u74e4\u7ea2", "pinyin": "guaranghong" }, { "CMYK": [ 0, 67, 74, 0 ], "RGB": [ 249, 114, 61 ], "hex": "#f9723d", "name": "\u8299\u84c9\u7ea2", "pinyin": "furonghong" }, { "CMYK": [ 0, 74, 85, 0 ], "RGB": [ 250, 93, 25 ], "hex": "#fa5d19", "name": "\u8393\u9171\u7ea2", "pinyin": "meijianghong" }, { "CMYK": [ 0, 62, 66, 0 ], "RGB": [ 238, 128, 85 ], "hex": "#ee8055", "name": "\u6cd5\u87ba\u7ea2", "pinyin": "faluohong" }, { "CMYK": [ 4, 82, 99, 0 ], "RGB": [ 207, 72, 19 ], "hex": "#cf4813", "name": "\u843d\u971e\u7ea2", "pinyin": "luoxiahong" }, { "CMYK": [ 21, 43, 43, 9 ], "RGB": [ 184, 148, 133 ], "hex": "#b89485", "name": "\u6de1\u73ab\u7470\u7070", "pinyin": "danmeiguihui" }, { "CMYK": [ 18, 80, 92, 7 ], "RGB": [ 177, 75, 40 ], "hex": "#b14b28", "name": "\u87f9\u8765\u7ea2", "pinyin": "xiemaohong" }, { "CMYK": [ 27, 91, 95, 28 ], "RGB": [ 134, 48, 32 ], "hex": "#863020", "name": "\u706b\u5ca9\u68d5", "pinyin": "huoyanzong" }, { "CMYK": [ 27, 96, 100, 27 ], "RGB": [ 134, 38, 23 ], "hex": "#862617", "name": "\u8d6d\u77f3", "pinyin": "zheshi" }, { "CMYK": [ 36, 90, 82, 56 ], "RGB": [ 89, 38, 32 ], "hex": "#592620", "name": "\u6697\u9a7c\u68d5", "pinyin": "antuozong" }, { "CMYK": [ 35, 96, 88, 55 ], "RGB": [ 90, 31, 27 ], "hex": "#5a1f1b", "name": "\u9171\u68d5", "pinyin": "jiangzong" }, { "CMYK": [ 34, 98, 91, 53 ], "RGB": [ 92, 30, 25 ], "hex": "#5c1e19", "name": "\u6817\u68d5", "pinyin": "lizong" }, { "CMYK": [ 0, 31, 24, 0 ], "RGB": [ 244, 199, 186 ], "hex": "#f4c7ba", "name": "\u6d0b\u6c34\u4ed9\u7ea2", "pinyin": "yangshuixianhong" }, { "CMYK": [ 0, 67, 55, 0 ], "RGB": [ 241, 118, 102 ], "hex": "#f17666", "name": "\u8c37\u9798\u7ea2", "pinyin": "guqiaohong" }, { "CMYK": [ 0, 77, 69, 0 ], "RGB": [ 241, 86, 66 ], "hex": "#f15642", "name": "\u82f9\u679c\u7ea2", "pinyin": "pingguohong" }, { "CMYK": [ 0, 84, 82, 0 ], "RGB": [ 245, 57, 28 ], "hex": "#f5391c", "name": "\u94c1\u6c34\u7ea2", "pinyin": "tieshuihong" }, { "CMYK": [ 0, 76, 67, 0 ], "RGB": [ 242, 90, 71 ], "hex": "#f25a47", "name": "\u6842\u7ea2", "pinyin": "guihong" }, { "CMYK": [ 0, 38, 25, 0 ], "RGB": [ 242, 185, 178 ], "hex": "#f2b9b2", "name": "\u7c89\u7ea2", "pinyin": "fenhong" }, { "CMYK": [ 0, 53, 36, 0 ], "RGB": [ 241, 151, 144 ], "hex": "#f19790", "name": "\u820c\u7ea2", "pinyin": "shehong" }, { "CMYK": [ 0, 76, 68, 0 ], "RGB": [ 240, 90, 70 ], "hex": "#f05a46", "name": "\u66f2\u7ea2", "pinyin": "quhong" }, { "CMYK": [ 0, 83, 81, 0 ], "RGB": [ 242, 62, 35 ], "hex": "#f23e23", "name": "\u7ea2\u6c5e\u7ea2", "pinyin": "honggonghong" }, { "CMYK": [ 0, 29, 16, 0 ], "RGB": [ 242, 202, 201 ], "hex": "#f2cac9", "name": "\u6de1\u7eef", "pinyin": "danfei" }, { "CMYK": [ 0, 43, 24, 0 ], "RGB": [ 239, 175, 173 ], "hex": "#efafad", "name": "\u65e0\u82b1\u679c\u7ea2", "pinyin": "wuhuaguohong" }, { "CMYK": [ 0, 57, 36, 0 ], "RGB": [ 241, 144, 140 ], "hex": "#f1908c", "name": "\u69b4\u5b50\u7ea2", "pinyin": "liuzihong" }, { "CMYK": [ 0, 83, 81, 0 ], "RGB": [ 240, 63, 36 ], "hex": "#f03f24", "name": "\u80ed\u8102\u7ea2", "pinyin": "yanzhihong" }, { "CMYK": [ 0, 50, 23, 0 ], "RGB": [ 240, 161, 168 ], "hex": "#f0a1a8", "name": "\u5408\u6b22\u7ea2", "pinyin": "hehuanhong" }, { "CMYK": [ 0, 56, 27, 0 ], "RGB": [ 241, 147, 156 ], "hex": "#f1939c", "name": "\u6625\u6885\u7ea2", "pinyin": "chunmeihong" }, { "CMYK": [ 0, 65, 38, 0 ], "RGB": [ 240, 124, 130 ], "hex": "#f07c82", "name": "\u9999\u53f6\u7ea2", "pinyin": "xiangyehong" }, { "CMYK": [ 0, 80, 72, 0 ], "RGB": [ 240, 74, 58 ], "hex": "#f04a3a", "name": "\u73ca\u745a\u7ea2", "pinyin": "shanhuhong" }, { "CMYK": [ 0, 84, 82, 0 ], "RGB": [ 241, 60, 34 ], "hex": "#f13c22", "name": "\u841d\u535c\u7ea2", "pinyin": "luobohong" }, { "CMYK": [ 0, 65, 29, 0 ], "RGB": [ 231, 124, 142 ], "hex": "#e77c8e", "name": "\u6de1\u831c\u7ea2", "pinyin": "danqianhong" }, { "CMYK": [ 0, 77, 49, 0 ], "RGB": [ 237, 90, 101 ], "hex": "#ed5a65", "name": "\u8273\u7ea2", "pinyin": "yanhong" }, { "CMYK": [ 0, 81, 66, 0 ], "RGB": [ 237, 72, 69 ], "hex": "#ed4845", "name": "\u6de1\u83fd\u7ea2", "pinyin": "danshuhong" }, { "CMYK": [ 0, 84, 76, 0 ], "RGB": [ 237, 59, 47 ], "hex": "#ed3b2f", "name": "\u9c7c\u9cc3\u7ea2", "pinyin": "yusaihong" }, { "CMYK": [ 0, 86, 82, 0 ], "RGB": [ 237, 51, 33 ], "hex": "#ed3321", "name": "\u6a31\u6843\u7ea2", "pinyin": "yingtaohong" }, { "CMYK": [ 0, 82, 44, 0 ], "RGB": [ 238, 72, 102 ], "hex": "#ee4866", "name": "\u6de1\u854a\u9999\u7ea2", "pinyin": "danruixianghong" }, { "CMYK": [ 0, 82, 46, 0 ], "RGB": [ 238, 72, 99 ], "hex": "#ee4863", "name": "\u77f3\u7af9\u7ea2", "pinyin": "shizhuhong" }, { "CMYK": [ 0, 82, 50, 0 ], "RGB": [ 239, 71, 93 ], "hex": "#ef475d", "name": "\u8349\u8309\u8389\u7ea2", "pinyin": "caomolihong" }, { "CMYK": [ 0, 84, 60, 0 ], "RGB": [ 238, 63, 77 ], "hex": "#ee3f4d", "name": "\u8336\u82b1\u7ea2", "pinyin": "chahuahong" }, { "CMYK": [ 0, 86, 74, 0 ], "RGB": [ 237, 51, 51 ], "hex": "#ed3333", "name": "\u67b8\u67a2\u7ea2", "pinyin": "goushuhong" }, { "CMYK": [ 0, 88, 81, 0 ], "RGB": [ 236, 43, 36 ], "hex": "#ec2b24", "name": "\u79cb\u6d77\u68e0\u7ea2", "pinyin": "qiuhaitanghong" }, { "CMYK": [ 0, 89, 84, 0 ], "RGB": [ 235, 38, 26 ], "hex": "#eb261a", "name": "\u4e3d\u6625\u7ea2", "pinyin": "lichunhong" }, { "CMYK": [ 0, 90, 90, 0 ], "RGB": [ 222, 42, 24 ], "hex": "#de2a18", "name": "\u5915\u9633\u7ea2", "pinyin": "xiyanghong" }, { "CMYK": [ 0, 92, 95, 0 ], "RGB": [ 212, 37, 23 ], "hex": "#d42517", "name": "\u9e64\u9876\u7ea2", "pinyin": "hedinghong" }, { "CMYK": [ 19, 89, 85, 9 ], "RGB": [ 171, 55, 47 ], "hex": "#ab372f", "name": "\u9e45\u8840\u77f3\u7ea2", "pinyin": "exueshihong" }, { "CMYK": [ 17, 98, 100, 8 ], "RGB": [ 172, 31, 24 ], "hex": "#ac1f18", "name": "\u8986\u76c6\u5b50\u7ea2", "pinyin": "fupenzihong" }, { "CMYK": [ 36, 81, 64, 54 ], "RGB": [ 93, 49, 49 ], "hex": "#5d3131", "name": "\u8c82\u7d2b", "pinyin": "diaozi" }, { "CMYK": [ 35, 94, 77, 53 ], "RGB": [ 92, 34, 35 ], "hex": "#5c2223", "name": "\u6697\u7389\u7d2b", "pinyin": "anyuzi" }, { "CMYK": [ 35, 100, 85, 54 ], "RGB": [ 90, 25, 27 ], "hex": "#5a191b", "name": "\u6817\u7d2b", "pinyin": "lizi" }, { "CMYK": [ 35, 100, 80, 54 ], "RGB": [ 90, 18, 22 ], "hex": "#5a1216", "name": "\u8461\u8404\u9171\u7d2b", "pinyin": "putaojiangzi" }, { "CMYK": [ 0, 49, 27, 0 ], "RGB": [ 238, 162, 164 ], "hex": "#eea2a4", "name": "\u7261\u4e39\u7c89\u7ea2", "pinyin": "mudanfenhong" }, { "CMYK": [ 0, 78, 44, 0 ], "RGB": [ 237, 85, 106 ], "hex": "#ed556a", "name": "\u5c71\u8336\u7ea2", "pinyin": "shanchahong" }, { "CMYK": [ 0, 86, 55, 0 ], "RGB": [ 240, 55, 82 ], "hex": "#f03752", "name": "\u6d77\u68e0\u7ea2", "pinyin": "haitanghong" }, { "CMYK": [ 13, 83, 62, 3 ], "RGB": [ 192, 72, 81 ], "hex": "#c04851", "name": "\u7389\u7ea2", "pinyin": "yuhong" }, { "CMYK": [ 11, 93, 77, 2 ], "RGB": [ 192, 44, 56 ], "hex": "#c02c38", "name": "\u9ad8\u7cb1\u7ea2", "pinyin": "gaolianghong" }, { "CMYK": [ 22, 76, 54, 12 ], "RGB": [ 167, 83, 90 ], "hex": "#a7535a", "name": "\u6ee1\u6c5f\u7ea2", "pinyin": "manjianghong" }, { "CMYK": [ 28, 100, 86, 33 ], "RGB": [ 124, 24, 35 ], "hex": "#7c1823", "name": "\u67a3\u7ea2", "pinyin": "zaohong" }, { "CMYK": [ 39, 92, 67, 64 ], "RGB": [ 76, 31, 36 ], "hex": "#4c1f24", "name": "\u8461\u8404\u7d2b", "pinyin": "putaozi" }, { "CMYK": [ 39, 100, 79, 63 ], "RGB": [ 77, 16, 24 ], "hex": "#4d1018", "name": "\u9171\u7d2b", "pinyin": "jiangzi" }, { "CMYK": [ 0, 89, 62, 0 ], "RGB": [ 238, 39, 70 ], "hex": "#ee2746", "name": "\u6de1\u66d9\u7ea2", "pinyin": "danshuhong" }, { "CMYK": [ 0, 93, 76, 0 ], "RGB": [ 222, 28, 49 ], "hex": "#de1c31", "name": "\u5510\u83d6\u84b2\u7ea2", "pinyin": "tangchangpuhong" }, { "CMYK": [ 1, 95, 82, 0 ], "RGB": [ 209, 26, 45 ], "hex": "#d11a2d", "name": "\u9e45\u51a0\u7ea2", "pinyin": "eguanhong" }, { "CMYK": [ 13, 76, 50, 2 ], "RGB": [ 196, 90, 101 ], "hex": "#c45a65", "name": "\u8393\u7ea2", "pinyin": "meihong" }, { "CMYK": [ 10, 96, 82, 2 ], "RGB": [ 194, 31, 48 ], "hex": "#c21f30", "name": "\u67ab\u53f6\u7ea2", "pinyin": "fengyehong" }, { "CMYK": [ 19, 99, 86, 11 ], "RGB": [ 166, 27, 41 ], "hex": "#a61b29", "name": "\u82cb\u83dc\u7ea2", "pinyin": "xiancaihong" }, { "CMYK": [ 29, 73, 51, 28 ], "RGB": [ 137, 78, 84 ], "hex": "#894e54", "name": "\u70df\u7ea2", "pinyin": "yanhong" }, { "CMYK": [ 27, 98, 79, 30 ], "RGB": [ 130, 32, 43 ], "hex": "#82202b", "name": "\u6697\u7d2b\u82d1\u7ea2", "pinyin": "anziyuanhong" }, { "CMYK": [ 27, 100, 90, 29 ], "RGB": [ 130, 17, 31 ], "hex": "#82111f", "name": "\u6bb7\u7ea2", "pinyin": "yanhong" }, { "CMYK": [ 36, 95, 71, 59 ], "RGB": [ 84, 30, 36 ], "hex": "#541e24", "name": "\u732a\u809d\u7d2b", "pinyin": "zhuganzi" }, { "CMYK": [ 38, 100, 81, 61 ], "RGB": [ 80, 10, 22 ], "hex": "#500a16", "name": "\u91d1\u9c7c\u7d2b", "pinyin": "jinyuzi" }, { "CMYK": [ 1, 11, 9, 0 ], "RGB": [ 248, 235, 230 ], "hex": "#f8ebe6", "name": "\u8349\u73e0\u7ea2", "pinyin": "caozhuhong" }, { "CMYK": [ 0, 68, 21, 0 ], "RGB": [ 236, 118, 150 ], "hex": "#ec7696", "name": "\u6de1\u7edb\u7ea2", "pinyin": "danjianghong" }, { "CMYK": [ 0, 86, 30, 0 ], "RGB": [ 239, 52, 115 ], "hex": "#ef3473", "name": "\u54c1\u7ea2", "pinyin": "pinhong" }, { "CMYK": [ 0, 69, 22, 0 ], "RGB": [ 234, 114, 147 ], "hex": "#ea7293", "name": "\u51e4\u4ed9\u82b1\u7ea2", "pinyin": "fengxianhuahong" }, { "CMYK": [ 0, 52, 18, 0 ], "RGB": [ 236, 155, 173 ], "hex": "#ec9bad", "name": "\u7c89\u56e2\u82b1\u7ea2", "pinyin": "fentuanhuahong" }, { "CMYK": [ 0, 80, 28, 0 ], "RGB": [ 235, 80, 126 ], "hex": "#eb507e", "name": "\u5939\u7af9\u6843\u7ea2", "pinyin": "jiazhutaohong" }, { "CMYK": [ 0, 88, 36, 0 ], "RGB": [ 237, 47, 106 ], "hex": "#ed2f6a", "name": "\u69b2\u6872\u7ea2", "pinyin": "wenpohong" }, { "CMYK": [ 0, 39, 14, 0 ], "RGB": [ 238, 184, 195 ], "hex": "#eeb8c3", "name": "\u59dc\u7ea2", "pinyin": "jianghong" }, { "CMYK": [ 0, 80, 27, 0 ], "RGB": [ 234, 81, 127 ], "hex": "#ea517f", "name": "\u83b2\u74e3\u7ea2", "pinyin": "lianbanhong" }, { "CMYK": [ 0, 33, 11, 0 ], "RGB": [ 241, 196, 205 ], "hex": "#f1c4cd", "name": "\u6c34\u7ea2", "pinyin": "shuihong" }, { "CMYK": [ 0, 60, 18, 0 ], "RGB": [ 236, 138, 164 ], "hex": "#ec8aa4", "name": "\u62a5\u6625\u7ea2", "pinyin": "baochunhong" }, { "CMYK": [ 8, 78, 35, 1 ], "RGB": [ 206, 87, 109 ], "hex": "#ce5777", "name": "\u6708\u5b63\u7ea2", "pinyin": "yuejihong" }, { "CMYK": [ 0, 52, 15, 0 ], "RGB": [ 237, 157, 178 ], "hex": "#ed9db2", "name": "\u8c47\u8c46\u7ea2", "pinyin": "jiangdouhong" }, { "CMYK": [ 0, 63, 18, 0 ], "RGB": [ 239, 130, 160 ], "hex": "#ef82a0", "name": "\u971e\u5149\u7ea2", "pinyin": "xiaguanghong" }, { "CMYK": [ 0, 85, 33, 0 ], "RGB": [ 235, 60, 112 ], "hex": "#eb3c70", "name": "\u677e\u53f6\u7261\u4e39\u7ea2", "pinyin": "songyemudanhong" }, { "CMYK": [ 0, 88, 40, 0 ], "RGB": [ 236, 44, 100 ], "hex": "#ec2c64", "name": "\u559c\u86cb\u7ea2", "pinyin": "xidanhong" }, { "CMYK": [ 5, 38, 20, 0 ], "RGB": [ 227, 180, 184 ], "hex": "#e3b4b8", "name": "\u9f20\u9f3b\u7ea2", "pinyin": "shubihong" }, { "CMYK": [ 5, 96, 73, 1 ], "RGB": [ 204, 22, 58 ], "hex": "#cc163a", "name": "\u5c16\u6676\u7389\u7ea2", "pinyin": "jianjingyuhong" }, { "CMYK": [ 16, 61, 34, 4 ], "RGB": [ 194, 124, 136 ], "hex": "#c27c88", "name": "\u5c71\u9ece\u8c46\u7ea2", "pinyin": "shanlidouhong" }, { "CMYK": [ 13, 90, 56, 3 ], "RGB": [ 191, 53, 83 ], "hex": "#bf3553", "name": "\u9526\u8475\u7ea2", "pinyin": "jinkuihong" }, { "CMYK": [ 41, 64, 44, 36 ], "RGB": [ 115, 87, 92 ], "hex": "#73575c", "name": "\u9f20\u80cc\u7070", "pinyin": "shubeihui" }, { "CMYK": [ 33, 100, 75, 49 ], "RGB": [ 98, 22, 36 ], "hex": "#621624", "name": "\u7518\u8517\u7d2b", "pinyin": "ganzhezi" }, { "CMYK": [ 32, 100, 84, 49 ], "RGB": [ 99, 7, 28 ], "hex": "#63071c", "name": "\u77f3\u7af9\u7d2b", "pinyin": "shizhuzi" }, { "CMYK": [ 57, 72, 54, 74 ], "RGB": [ 54, 40, 43 ], "hex": "#36282b", "name": "\u82cd\u8747\u7070", "pinyin": "cangyinghui" }, { "CMYK": [ 52, 88, 58, 81 ], "RGB": [ 48, 22, 28 ], "hex": "#30161c", "name": "\u5375\u77f3\u7d2b", "pinyin": "luanshizi" }, { "CMYK": [ 56, 88, 62, 84 ], "RGB": [ 43, 18, 22 ], "hex": "#2b1216", "name": "\u674e\u7d2b", "pinyin": "lizi" }, { "CMYK": [ 58, 90, 63, 83 ], "RGB": [ 45, 12, 19 ], "hex": "#2d0c13", "name": "\u8304\u76ae\u7d2b", "pinyin": "qiepizi" }, { "CMYK": [ 0, 76, 16, 0 ], "RGB": [ 206, 94, 138 ], "hex": "#ce5e8a", "name": "\u540a\u949f\u82b1\u7ea2", "pinyin": "diaozhonghuahong" }, { "CMYK": [ 0, 81, 18, 0 ], "RGB": [ 236, 78, 138 ], "hex": "#ec4e8a", "name": "\u5154\u773c\u7ea2", "pinyin": "tuyanhong" }, { "CMYK": [ 0, 87, 24, 0 ], "RGB": [ 238, 44, 121 ], "hex": "#ee2c79", "name": "\u7d2b\u8346\u7ea2", "pinyin": "zijinghong" }, { "CMYK": [ 24, 99, 52, 19 ], "RGB": [ 149, 28, 72 ], "hex": "#951c48", "name": "\u83dc\u5934\u7d2b", "pinyin": "caitouzi" }, { "CMYK": [ 34, 97, 54, 50 ], "RGB": [ 98, 29, 52 ], "hex": "#621d34", "name": "\u9e5e\u51a0\u7d2b", "pinyin": "yaoguanzi" }, { "CMYK": [ 33, 100, 58, 60 ], "RGB": [ 98, 16, 46 ], "hex": "#62102e", "name": "\u8461\u8404\u9152\u7ea2", "pinyin": "putaojiuhong" }, { "CMYK": [ 53, 81, 50, 74 ], "RGB": [ 56, 33, 41 ], "hex": "#382129", "name": "\u78e8\u77f3\u7d2b", "pinyin": "moshizi" }, { "CMYK": [ 48, 90, 50, 76 ], "RGB": [ 56, 25, 36 ], "hex": "#381924", "name": "\u6a80\u7d2b", "pinyin": "tanzi" }, { "CMYK": [ 50, 91, 54, 79 ], "RGB": [ 51, 20, 30 ], "hex": "#33141e", "name": "\u706b\u9e45\u7d2b", "pinyin": "huoezi" }, { "CMYK": [ 53, 92, 55, 81 ], "RGB": [ 49, 15, 27 ], "hex": "#310f1b", "name": "\u58a8\u7d2b", "pinyin": "mozi" }, { "CMYK": [ 0, 48, 15, 0 ], "RGB": [ 238, 166, 183 ], "hex": "#eea6b7", "name": "\u6676\u7ea2", "pinyin": "jinghong" }, { "CMYK": [ 0, 82, 16, 0 ], "RGB": [ 239, 73, 139 ], "hex": "#ef498b", "name": "\u6241\u8c46\u82b1\u7ea2", "pinyin": "biandouhuahong" }, { "CMYK": [ 2, 66, 22, 0 ], "RGB": [ 222, 120, 151 ], "hex": "#de7897", "name": "\u767d\u82a8\u7ea2", "pinyin": "baijihong" }, { "CMYK": [ 0, 85, 24, 0 ], "RGB": [ 222, 63, 124 ], "hex": "#de3f7c", "name": "\u5ae9\u83f1\u7ea2", "pinyin": "nenlinghong" }, { "CMYK": [ 5, 87, 30, 1 ], "RGB": [ 209, 60, 116 ], "hex": "#d13c74", "name": "\u83e0\u6839\u7ea2", "pinyin": "bogenhong" }, { "CMYK": [ 15, 68, 28, 2 ], "RGB": [ 197, 112, 139 ], "hex": "#c5708b", "name": "\u9162\u9171\u8349\u7ea2", "pinyin": "cujiangcaohong" }, { "CMYK": [ 22, 83, 34, 11 ], "RGB": [ 168, 69, 107 ], "hex": "#a8456b", "name": "\u6d0b\u8471\u7d2b", "pinyin": "yangcongzi" }, { "CMYK": [ 40, 92, 47, 64 ], "RGB": [ 75, 30, 47 ], "hex": "#4b1e2f", "name": "\u6d77\u8c61\u7d2b", "pinyin": "haixiangzi" }, { "CMYK": [ 41, 97, 49, 68 ], "RGB": [ 70, 22, 41 ], "hex": "#461629", "name": "\u7ec0\u7d2b", "pinyin": "ganzi" }, { "CMYK": [ 42, 99, 51, 69 ], "RGB": [ 68, 14, 37 ], "hex": "#440e25", "name": "\u53e4\u94dc\u7d2b", "pinyin": "gutongzi" }, { "CMYK": [ 0, 30, 12, 0 ], "RGB": [ 240, 201, 207 ], "hex": "#f0c9cf", "name": "\u77f3\u854a\u7ea2", "pinyin": "shiruihong" }, { "CMYK": [ 0, 50, 16, 0 ], "RGB": [ 235, 160, 179 ], "hex": "#eba0b3", "name": "\u828d\u836f\u8015\u7ea2", "pinyin": "shaoyaogenghong" }, { "CMYK": [ 0, 88, 23, 0 ], "RGB": [ 236, 45, 122 ], "hex": "#ec2d7a", "name": "\u85cf\u82b1\u7ea2", "pinyin": "canghuahong" }, { "CMYK": [ 0, 71, 18, 0 ], "RGB": [ 225, 108, 150 ], "hex": "#e16c96", "name": "\u521d\u8377\u7ea2", "pinyin": "chuhehong" }, { "CMYK": [ 6, 13, 7, 0 ], "RGB": [ 237, 227, 231 ], "hex": "#ede3e7", "name": "\u9a6c\u97ad\u8349\u7d2b", "pinyin": "mabiancaozi" }, { "CMYK": [ 7, 20, 8, 0 ], "RGB": [ 233, 215, 223 ], "hex": "#e9d7df", "name": "\u4e01\u9999\u6de1\u7d2b", "pinyin": "dingxiangdanzi" }, { "CMYK": [ 7, 79, 18, 0 ], "RGB": [ 210, 86, 140 ], "hex": "#d2568c", "name": "\u4e39\u7d2b\u7ea2", "pinyin": "danzihong" }, { "CMYK": [ 4, 89, 21, 0 ], "RGB": [ 210, 53, 125 ], "hex": "#d2357d", "name": "\u73ab\u7470\u7ea2", "pinyin": "meiguihong" }, { "CMYK": [ 19, 27, 9, 0 ], "RGB": [ 209, 194, 211 ], "hex": "#d1c2d3", "name": "\u6de1\u7275\u725b\u7d2b", "pinyin": "danqianniuzi" }, { "CMYK": [ 21, 37, 12, 0 ], "RGB": [ 200, 173, 196 ], "hex": "#c8adc4", "name": "\u51e4\u4fe1\u7d2b", "pinyin": "fengxinzi" }, { "CMYK": [ 23, 53, 14, 1 ], "RGB": [ 192, 142, 175 ], "hex": "#c08eaf", "name": "\u841d\u5170\u7d2b", "pinyin": "luolanzi" }, { "CMYK": [ 18, 91, 18, 2 ], "RGB": [ 186, 47, 123 ], "hex": "#ba2f7b", "name": "\u73ab\u7470\u7d2b", "pinyin": "meiguizi" }, { "CMYK": [ 58, 56, 17, 2 ], "RGB": [ 128, 118, 163 ], "hex": "#8076a3", "name": "\u85e4\u841d\u7d2b", "pinyin": "tengluozi" }, { "CMYK": [ 57, 62, 16, 2 ], "RGB": [ 128, 109, 158 ], "hex": "#806d9e", "name": "\u69ff\u7d2b", "pinyin": "jinzi" }, { "CMYK": [ 56, 72, 15, 1 ], "RGB": [ 129, 92, 148 ], "hex": "#815c94", "name": "\u8548\u7d2b", "pinyin": "xunzi" }, { "CMYK": [ 54, 89, 12, 1 ], "RGB": [ 129, 60, 133 ], "hex": "#813c85", "name": "\u6854\u6897\u7d2b", "pinyin": "jiegengzi" }, { "CMYK": [ 52, 100, 17, 7 ], "RGB": [ 126, 22, 113 ], "hex": "#7e1671", "name": "\u9b4f\u7d2b", "pinyin": "weizi" }, { "CMYK": [ 3, 26, 10, 0 ], "RGB": [ 233, 204, 211 ], "hex": "#e9ccd3", "name": "\u829d\u5170\u7d2b", "pinyin": "zhilanzi" }, { "CMYK": [ 10, 67, 12, 0 ], "RGB": [ 210, 118, 163 ], "hex": "#d276a3", "name": "\u83f1\u9530\u7ea2", "pinyin": "lingmenghong" }, { "CMYK": [ 11, 97, 10, 0 ], "RGB": [ 204, 85, 149 ], "hex": "#cc5595", "name": "\u9f99\u987b\u7ea2", "pinyin": "longxuhong" }, { "CMYK": [ 8, 22, 12, 0 ], "RGB": [ 230, 210, 213 ], "hex": "#e6d2d5", "name": "\u84df\u7c89\u7ea2", "pinyin": "jifenhong" }, { "CMYK": [ 16, 79, 14, 1 ], "RGB": [ 195, 86, 145 ], "hex": "#c35691", "name": "\u7535\u6c14\u77f3\u7ea2", "pinyin": "dianqishihong" }, { "CMYK": [ 19, 68, 18, 1 ], "RGB": [ 192, 111, 152 ], "hex": "#c06f98", "name": "\u6a31\u8349\u7d2b", "pinyin": "yingcaozi" }, { "CMYK": [ 25, 31, 26, 5 ], "RGB": [ 189, 174, 173 ], "hex": "#bdaead", "name": "\u82a6\u7a57\u7070", "pinyin": "lusuihui" }, { "CMYK": [ 26, 43, 26, 6 ], "RGB": [ 181, 152, 161 ], "hex": "#b598a1", "name": "\u9690\u7ea2\u7070", "pinyin": "yinhonghui" }, { "CMYK": [ 27, 97, 27, 14 ], "RGB": [ 155, 30, 100 ], "hex": "#9b1e64", "name": "\u82cb\u83dc\u7d2b", "pinyin": "xiancaizi" }, { "CMYK": [ 39, 53, 38, 25 ], "RGB": [ 133, 109, 114 ], "hex": "#856d72", "name": "\u82a6\u7070", "pinyin": "luhui" }, { "CMYK": [ 49, 71, 49, 58 ], "RGB": [ 79, 56, 62 ], "hex": "#4f383e", "name": "\u66ae\u4e91\u7070", "pinyin": "muyunhui" }, { "CMYK": [ 49, 82, 46, 63 ], "RGB": [ 72, 41, 54 ], "hex": "#482936", "name": "\u6591\u9e20\u7070", "pinyin": "banjiuhui" }, { "CMYK": [ 4, 11, 9, 0 ], "RGB": [ 242, 231, 229 ], "hex": "#f2e7e5", "name": "\u6de1\u85e4\u841d\u7d2b", "pinyin": "dantengluozi" }, { "CMYK": [ 10, 27, 11, 0 ], "RGB": [ 224, 200, 209 ], "hex": "#e0c8d1", "name": "\u6de1\u9752\u7d2b", "pinyin": "danqingzi" }, { "CMYK": [ 24, 58, 15, 1 ], "RGB": [ 188, 132, 168 ], "hex": "#bc84a8", "name": "\u9752\u86e4\u58f3\u7d2b", "pinyin": "qinghakezi" }, { "CMYK": [ 31, 71, 15, 1 ], "RGB": [ 173, 101, 152 ], "hex": "#ad6598", "name": "\u8c46\u853b\u7d2b", "pinyin": "doukouzi" }, { "CMYK": [ 35, 75, 18, 2 ], "RGB": [ 163, 92, 143 ], "hex": "#a35c8f", "name": "\u6241\u8c46\u7d2b", "pinyin": "biandouzi" }, { "CMYK": [ 39, 91, 15, 3 ], "RGB": [ 152, 54, 128 ], "hex": "#983680", "name": "\u82a5\u82b1\u7d2b", "pinyin": "jiehuazi" }, { "CMYK": [ 43, 97, 19, 8 ], "RGB": [ 139, 38, 113 ], "hex": "#8b2671", "name": "\u9752\u83b2", "pinyin": "qinglian" }, { "CMYK": [ 44, 85, 24, 10 ], "RGB": [ 137, 66, 118 ], "hex": "#894276", "name": "\u8293\u7d2b", "pinyin": "zizi" }, { "CMYK": [ 45, 99, 24, 16 ], "RGB": [ 126, 32, 101 ], "hex": "#7e2065", "name": "\u845b\u5dfe\u7d2b", "pinyin": "gejinzi" }, { "CMYK": [ 49, 100, 29, 32 ], "RGB": [ 104, 23, 82 ], "hex": "#681752", "name": "\u7275\u725b\u7d2b", "pinyin": "qianniuzi" }, { "CMYK": [ 53, 75, 41, 41 ], "RGB": [ 93, 63, 81 ], "hex": "#5d3f51", "name": "\u7d2b\u7070", "pinyin": "zihui" }, { "CMYK": [ 55, 87, 41, 52 ], "RGB": [ 78, 42, 64 ], "hex": "#4e2a40", "name": "\u9f99\u775b\u9c7c\u7d2b", "pinyin": "longjingyuzi" }, { "CMYK": [ 58, 96, 40, 61 ], "RGB": [ 65, 28, 53 ], "hex": "#411c35", "name": "\u8378\u8360\u7d2b", "pinyin": "biqizi" }, { "CMYK": [ 63, 74, 52, 70 ], "RGB": [ 54, 41, 47 ], "hex": "#36292f", "name": "\u53e4\u9f0e\u7070", "pinyin": "gudinghui" }, { "CMYK": [ 81, 87, 54, 84 ], "RGB": [ 30, 19, 29 ], "hex": "#1e131d", "name": "\u4e4c\u6885\u7d2b", "pinyin": "wumeizi" }, { "CMYK": [ 83, 87, 55, 86 ], "RGB": [ 28, 13, 26 ], "hex": "#1c0d1a", "name": "\u6df1\u7275\u725b\u7d2b", "pinyin": "shenqianniuzi" }, { "CMYK": [ 7, 5, 7, 0 ], "RGB": [ 241, 240, 237 ], "hex": "#f1f0ed", "name": "\u94f6\u767d", "pinyin": "yinbai" }, { "CMYK": [ 13, 10, 9, 0 ], "RGB": [ 226, 225, 228 ], "hex": "#e2e1e4", "name": "\u82a1\u98df\u767d", "pinyin": "qianshibai" }, { "CMYK": [ 23, 18, 12, 1 ], "RGB": [ 204, 204, 214 ], "hex": "#ccccd6", "name": "\u8fdc\u5c71\u7d2b", "pinyin": "yuanshanzi" }, { "CMYK": [ 39, 31, 17, 2 ], "RGB": [ 167, 168, 189 ], "hex": "#a7a8bd", "name": "\u6de1\u84dd\u7d2b", "pinyin": "danlanzi" }, { "CMYK": [ 74, 64, 14, 1 ], "RGB": [ 97, 100, 159 ], "hex": "#61649f", "name": "\u5c71\u6897\u7d2b", "pinyin": "shangengzi" }, { "CMYK": [ 63, 53, 22, 5 ], "RGB": [ 116, 117, 155 ], "hex": "#74759b", "name": "\u87ba\u7538\u7d2b", "pinyin": "luodianzi" }, { "CMYK": [ 21, 17, 19, 1 ], "RGB": [ 207, 204, 201 ], "hex": "#cfccc9", "name": "\u739b\u7459\u7070", "pinyin": "manaohui" }, { "CMYK": [ 80, 73, 21, 6 ], "RGB": [ 82, 82, 136 ], "hex": "#525288", "name": "\u91ce\u83ca\u7d2b", "pinyin": "yejuzi" }, { "CMYK": [ 100, 93, 21, 5 ], "RGB": [ 46, 49, 124 ], "hex": "#2e317c", "name": "\u6ee1\u5929\u661f\u7d2b", "pinyin": "mantianxingzi" }, { "CMYK": [ 48, 45, 40, 26 ], "RGB": [ 122, 115, 116 ], "hex": "#7a7374", "name": "\u950c\u7070", "pinyin": "xinhui" }, { "CMYK": [ 91, 84, 40, 43 ], "RGB": [ 48, 47, 75 ], "hex": "#302f4b", "name": "\u91ce\u8461\u8404\u7d2b", "pinyin": "yeputaozi" }, { "CMYK": [ 70, 69, 49, 56 ], "RGB": [ 62, 56, 65 ], "hex": "#3e3841", "name": "\u5251\u950b\u7d2b", "pinyin": "jianfengzi" }, { "CMYK": [ 79, 74, 49, 60 ], "RGB": [ 50, 47, 59 ], "hex": "#322f3b", "name": "\u9f99\u8475\u7d2b", "pinyin": "longkuizi" }, { "CMYK": [ 90, 84, 50, 69 ], "RGB": [ 34, 32, 46 ], "hex": "#22202e", "name": "\u6697\u9f99\u80c6\u7d2b", "pinyin": "anlongdanzi" }, { "CMYK": [ 98, 93, 48, 73 ], "RGB": [ 31, 32, 64 ], "hex": "#1f2040", "name": "\u6676\u77f3\u7d2b", "pinyin": "jingshizi" }, { "CMYK": [ 100, 94, 52, 77 ], "RGB": [ 19, 17, 36 ], "hex": "#131124", "name": "\u6697\u84dd\u7d2b", "pinyin": "anlanzi" }, { "CMYK": [ 95, 46, 10, 1 ], "RGB": [ 39, 117, 182 ], "hex": "#2775b6", "name": "\u666f\u6cf0\u84dd", "pinyin": "jingtailan" }, { "CMYK": [ 96, 47, 11, 1 ], "RGB": [ 36, 116, 181 ], "hex": "#2474b5", "name": "\u5c3c\u7f57\u84dd", "pinyin": "niluolan" }, { "CMYK": [ 25, 6, 10, 0 ], "RGB": [ 208, 223, 230 ], "hex": "#d0dfe6", "name": "\u8fdc\u5929\u84dd", "pinyin": "yuantianlan" }, { "CMYK": [ 53, 19, 15, 1 ], "RGB": [ 147, 181, 207 ], "hex": "#93b5cf", "name": "\u661f\u84dd", "pinyin": "xinglan" }, { "CMYK": [ 74, 27, 16, 2 ], "RGB": [ 97, 154, 195 ], "hex": "#619ac3", "name": "\u7fbd\u6247\u8c46\u84dd", "pinyin": "yushandoulan" }, { "CMYK": [ 95, 45, 10, 1 ], "RGB": [ 35, 118, 183 ], "hex": "#2376b7", "name": "\u82b1\u9752", "pinyin": "huaqing" }, { "CMYK": [ 78, 27, 17, 2 ], "RGB": [ 86, 152, 195 ], "hex": "#5698c3", "name": "\u775b\u84dd", "pinyin": "jinglan" }, { "CMYK": [ 99, 44, 10, 1 ], "RGB": [ 33, 119, 184 ], "hex": "#2177b8", "name": "\u8679\u84dd", "pinyin": "honglan" }, { "CMYK": [ 43, 4, 16, 0 ], "RGB": [ 176, 213, 223 ], "hex": "#b0d5df", "name": "\u6e56\u6c34\u84dd", "pinyin": "hushuilan" }, { "CMYK": [ 59, 12, 19, 0 ], "RGB": [ 138, 188, 209 ], "hex": "#8abcd1", "name": "\u79cb\u6ce2\u84dd", "pinyin": "qiubolan" }, { "CMYK": [ 73, 17, 20, 1 ], "RGB": [ 102, 169, 201 ], "hex": "#66a9c9", "name": "\u6da7\u77f3\u84dd", "pinyin": "jianshilan" }, { "CMYK": [ 93, 36, 15, 2 ], "RGB": [ 41, 131, 187 ], "hex": "#2983bb", "name": "\u6f6e\u84dd", "pinyin": "chaolan" }, { "CMYK": [ 99, 48, 11, 1 ], "RGB": [ 23, 114, 180 ], "hex": "#1772b4", "name": "\u7fa4\u9752", "pinyin": "qunqing" }, { "CMYK": [ 74, 2, 24, 0 ], "RGB": [ 99, 187, 208 ], "hex": "#63bbd0", "name": "\u9701\u9752", "pinyin": "jiqing" }, { "CMYK": [ 77, 7, 24, 0 ], "RGB": [ 92, 179, 204 ], "hex": "#5cb3cc", "name": "\u78a7\u9752", "pinyin": "biqing" }, { "CMYK": [ 94, 32, 17, 3 ], "RGB": [ 36, 134, 185 ], "hex": "#2486b9", "name": "\u5b9d\u77f3\u84dd", "pinyin": "baoshilan" }, { "CMYK": [ 98, 43, 14, 2 ], "RGB": [ 22, 119, 179 ], "hex": "#1677b3", "name": "\u5929\u84dd", "pinyin": "tianlan" }, { "CMYK": [ 100, 52, 11, 1 ], "RGB": [ 18, 107, 174 ], "hex": "#126bae", "name": "\u67cf\u6797\u84dd", "pinyin": "bolinlan" }, { "CMYK": [ 92, 10, 25, 1 ], "RGB": [ 34, 162, 195 ], "hex": "#22a2c3", "name": "\u6d77\u9752", "pinyin": "haiqing" }, { "CMYK": [ 94, 16, 23, 3 ], "RGB": [ 26, 148, 188 ], "hex": "#1a94bc", "name": "\u94b4\u84dd", "pinyin": "gulan" }, { "CMYK": [ 98, 42, 16, 3 ], "RGB": [ 17, 119, 176 ], "hex": "#1177b0", "name": "\u7275\u725b\u82b1\u84dd", "pinyin": "qianniuhualan" }, { "CMYK": [ 100, 65, 11, 1 ], "RGB": [ 15, 89, 164 ], "hex": "#0f59a4", "name": "\u98de\u71d5\u8349\u84dd", "pinyin": "feiyancaolan" }, { "CMYK": [ 95, 47, 14, 2 ], "RGB": [ 43, 115, 175 ], "hex": "#2b73af", "name": "\u54c1\u84dd", "pinyin": "pinlan" }, { "CMYK": [ 24, 14, 16, 1 ], "RGB": [ 205, 209, 211 ], "hex": "#cdd1d3", "name": "\u94f6\u9c7c\u767d", "pinyin": "yinyubai" }, { "CMYK": [ 93, 49, 17, 3 ], "RGB": [ 49, 112, 167 ], "hex": "#3170a7", "name": "\u5b89\u5b89\u84dd", "pinyin": "ananlan" }, { "CMYK": [ 64, 52, 39, 28 ], "RGB": [ 94, 97, 109 ], "hex": "#5e616d", "name": "\u9c7c\u5c3e\u7070", "pinyin": "yuweihui" }, { "CMYK": [ 78, 60, 40, 31 ], "RGB": [ 71, 81, 100 ], "hex": "#475164", "name": "\u9cb8\u9c7c\u7070", "pinyin": "jingyuhui" }, { "CMYK": [ 69, 64, 52, 59 ], "RGB": [ 255, 254, 250 ], "hex": "#fffefa", "name": "\u6d77\u53c2\u7070", "pinyin": "haishenhui" }, { "CMYK": [ 76, 70, 51, 60 ], "RGB": [ 53, 51, 60 ], "hex": "#35333c", "name": "\u6c99\u9c7c\u7070", "pinyin": "shayuhui" }, { "CMYK": [ 100, 89, 54, 79 ], "RGB": [ 15, 20, 35 ], "hex": "#0f1423", "name": "\u94a2\u84dd", "pinyin": "ganglan" }, { "CMYK": [ 35, 13, 13, 0 ], "RGB": [ 186, 204, 217 ], "hex": "#baccd9", "name": "\u4e91\u6c34\u84dd", "pinyin": "yunshuilan" }, { "CMYK": [ 55, 20, 18, 1 ], "RGB": [ 143, 178, 201 ], "hex": "#8fb2c9", "name": "\u6674\u5c71\u84dd", "pinyin": "qingshanlan" }, { "CMYK": [ 100, 60, 8, 1 ], "RGB": [ 22, 97, 171 ], "hex": "#1661ab", "name": "\u975b\u9752", "pinyin": "dianqing" }, { "CMYK": [ 29, 16, 17, 1 ], "RGB": [ 196, 203, 207 ], "hex": "#c4cbcf", "name": "\u5927\u7406\u77f3\u7070", "pinyin": "dalishihui" }, { "CMYK": [ 100, 67, 16, 3 ], "RGB": [ 21, 85, 154 ], "hex": "#15559a", "name": "\u6d77\u6d9b\u84dd", "pinyin": "haitaolan" }, { "CMYK": [ 81, 41, 24, 8 ], "RGB": [ 78, 124, 161 ], "hex": "#4e7ca1", "name": "\u8776\u7fc5\u84dd", "pinyin": "diechilan" }, { "CMYK": [ 93, 50, 21, 6 ], "RGB": [ 52, 108, 156 ], "hex": "#346c9c", "name": "\u6d77\u519b\u84dd", "pinyin": "haijunlan" }, { "CMYK": [ 77, 68, 54, 66 ], "RGB": [ 47, 47, 53 ], "hex": "#2f2f35", "name": "\u6c34\u725b\u7070", "pinyin": "shuiniuhui" }, { "CMYK": [ 80, 70, 53, 65 ], "RGB": [ 45, 46, 54 ], "hex": "#2d2e36", "name": "\u725b\u89d2\u7070", "pinyin": "niujiaohui" }, { "CMYK": [ 100, 86, 54, 78 ], "RGB": [ 19, 24, 36 ], "hex": "#131824", "name": "\u71d5\u9894\u84dd", "pinyin": "yanhanlan" }, { "CMYK": [ 21, 6, 10, 0 ], "RGB": [ 216, 227, 231 ], "hex": "#d8e3e7", "name": "\u4e91\u5cf0\u767d", "pinyin": "yunfengbai" }, { "CMYK": [ 32, 8, 13, 0 ], "RGB": [ 195, 215, 223 ], "hex": "#c3d7df", "name": "\u4e95\u5929\u84dd", "pinyin": "jingtianlan" }, { "CMYK": [ 91, 24, 22, 4 ], "RGB": [ 47, 144, 185 ], "hex": "#2f90b9", "name": "\u4e91\u5c71\u84dd", "pinyin": "yunshanlan" }, { "CMYK": [ 96, 34, 18, 4 ], "RGB": [ 23, 129, 181 ], "hex": "#1781b5", "name": "\u91c9\u84dd", "pinyin": "youlan" }, { "CMYK": [ 28, 12, 17, 0 ], "RGB": [ 199, 210, 212 ], "hex": "#c7d2d4", "name": "\u9e25\u84dd", "pinyin": "oulan" }, { "CMYK": [ 100, 53, 21, 6 ], "RGB": [ 17, 101, 154 ], "hex": "#11659a", "name": "\u642a\u78c1\u84dd", "pinyin": "tangcilan" }, { "CMYK": [ 29, 18, 21, 2 ], "RGB": [ 192, 196, 195 ], "hex": "#c0c4c3", "name": "\u6708\u5f71\u767d", "pinyin": "yueyingbai" }, { "CMYK": [ 36, 20, 23, 2 ], "RGB": [ 178, 187, 190 ], "hex": "#b2bbbe", "name": "\u661f\u7070", "pinyin": "xinghui" }, { "CMYK": [ 70, 38, 36, 18 ], "RGB": [ 94, 121, 135 ], "hex": "#5e7987", "name": "\u6de1\u84dd\u7070", "pinyin": "danlanhui" }, { "CMYK": [ 100, 68, 32, 20 ], "RGB": [ 20, 74, 116 ], "hex": "#144a74", "name": "\u9dc3\u84dd", "pinyin": "yanlan" }, { "CMYK": [ 55, 40, 40, 23 ], "RGB": [ 116, 120, 122 ], "hex": "#74787a", "name": "\u5ae9\u7070", "pinyin": "nenhui" }, { "CMYK": [ 77, 50, 41, 31 ], "RGB": [ 73, 92, 105 ], "hex": "#495c69", "name": "\u6218\u8230\u7070", "pinyin": "zhanjianhui" }, { "CMYK": [ 67, 57, 49, 49 ], "RGB": [ 71, 72, 76 ], "hex": "#47484c", "name": "\u74e6\u7f50\u7070", "pinyin": "waguanhui" }, { "CMYK": [ 87, 69, 51, 58 ], "RGB": [ 43, 51, 62 ], "hex": "#2b333e", "name": "\u9752\u7070", "pinyin": "qinghui" }, { "CMYK": [ 100, 77, 50, 62 ], "RGB": [ 28, 41, 56 ], "hex": "#1c2938", "name": "\u9e3d\u84dd", "pinyin": "gelan" }, { "CMYK": [ 100, 82, 51, 64 ], "RGB": [ 20, 35, 52 ], "hex": "#142334", "name": "\u94a2\u9752", "pinyin": "gangqing" }, { "CMYK": [ 100, 84, 51, 68 ], "RGB": [ 16, 31, 48 ], "hex": "#101f30", "name": "\u6697\u84dd", "pinyin": "anlan" }, { "CMYK": [ 11, 0, 8, 0 ], "RGB": [ 238, 247, 242 ], "hex": "#eef7f2", "name": "\u6708\u767d", "pinyin": "yuebai" }, { "CMYK": [ 33, 0, 14, 0 ], "RGB": [ 198, 230, 232 ], "hex": "#c6e6e8", "name": "\u6d77\u5929\u84dd", "pinyin": "haitianlan" }, { "CMYK": [ 57, 0, 22, 0 ], "RGB": [ 147, 213, 220 ], "hex": "#93d5dc", "name": "\u6e05\u6c34\u84dd", "pinyin": "qingshuilan" }, { "CMYK": [ 79, 0, 27, 0 ], "RGB": [ 81, 196, 211 ], "hex": "#51c4d3", "name": "\u7011\u5e03\u84dd", "pinyin": "pubulan" }, { "CMYK": [ 89, 0, 29, 0 ], "RGB": [ 41, 183, 203 ], "hex": "#29b7cb", "name": "\u851a\u84dd", "pinyin": "weilan" }, { "CMYK": [ 92, 0, 28, 0 ], "RGB": [ 14, 176, 201 ], "hex": "#0eb0c9", "name": "\u5b54\u96c0\u84dd", "pinyin": "kongquelan" }, { "CMYK": [ 93, 0, 31, 0 ], "RGB": [ 16, 174, 194 ], "hex": "#10aec2", "name": "\u7538\u5b50\u84dd", "pinyin": "dianzilan" }, { "CMYK": [ 78, 36, 0, 0 ], "RGB": [ 87, 195, 194 ], "hex": "#57c3c2", "name": "\u77f3\u7eff", "pinyin": "shilv" }, { "CMYK": [ 40, 0, 30, 0 ], "RGB": [ 185, 222, 201 ], "hex": "#b9dec9", "name": "\u7af9\u7bc1\u7eff", "pinyin": "zhuhuanglv" }, { "CMYK": [ 64, 0, 46, 0 ], "RGB": [ 131, 203, 172 ], "hex": "#83cbac", "name": "\u7c89\u7eff", "pinyin": "fenlv" }, { "CMYK": [ 95, 0, 52, 0 ], "RGB": [ 18, 170, 156 ], "hex": "#12aa9c", "name": "\u7f8e\u8776\u7eff", "pinyin": "meidielv" }, { "CMYK": [ 75, 0, 61, 0 ], "RGB": [ 102, 193, 140 ], "hex": "#66c18c", "name": "\u6bdb\u7eff", "pinyin": "maolv" }, { "CMYK": [ 78, 0, 62, 0 ], "RGB": [ 93, 190, 138 ], "hex": "#5dbe8a", "name": "\u853b\u68a2\u7eff", "pinyin": "koushaolv" }, { "CMYK": [ 81, 0, 62, 0 ], "RGB": [ 85, 187, 138 ], "hex": "#55bb8a", "name": "\u9ea6\u82d7\u7eff", "pinyin": "maimiaolv" }, { "CMYK": [ 86, 0, 63, 0 ], "RGB": [ 69, 183, 135 ], "hex": "#45b787", "name": "\u86d9\u7eff", "pinyin": "walv" }, { "CMYK": [ 92, 0, 64, 0 ], "RGB": [ 43, 174, 133 ], "hex": "#2bae85", "name": "\u94dc\u7eff", "pinyin": "tonglv" }, { "CMYK": [ 96, 0, 64, 0 ], "RGB": [ 27, 167, 132 ], "hex": "#1ba784", "name": "\u7af9\u7eff", "pinyin": "zhulv" }, { "CMYK": [ 98, 2, 64, 0 ], "RGB": [ 18, 161, 130 ], "hex": "#12a182", "name": "\u84dd\u7eff", "pinyin": "lanlv" }, { "CMYK": [ 32, 7, 18, 0 ], "RGB": [ 196, 215, 214 ], "hex": "#c4d7d6", "name": "\u7a79\u7070", "pinyin": "qionghui" }, { "CMYK": [ 94, 11, 33, 1 ], "RGB": [ 30, 158, 179 ], "hex": "#1e9eb3", "name": "\u7fe0\u84dd", "pinyin": "cuilan" }, { "CMYK": [ 96, 16, 31, 3 ], "RGB": [ 15, 149, 176 ], "hex": "#0f95b0", "name": "\u80c6\u77fe\u84dd", "pinyin": "danfanlan" }, { "CMYK": [ 96, 18, 34, 4 ], "RGB": [ 20, 145, 168 ], "hex": "#1491a8", "name": "\u6a2b\u9e1f\u84dd", "pinyin": "jianniaolan" }, { "CMYK": [ 64, 18, 32, 2 ], "RGB": [ 124, 171, 177 ], "hex": "#7cabb1", "name": "\u95ea\u84dd", "pinyin": "shanlan" }, { "CMYK": [ 40, 24, 32, 6 ], "RGB": [ 164, 172, 167 ], "hex": "#a4aca7", "name": "\u51b0\u5c71\u84dd", "pinyin": "bingshanlan" }, { "CMYK": [ 56, 26, 36, 7 ], "RGB": [ 134, 157, 157 ], "hex": "#869d9d", "name": "\u867e\u58f3\u9752", "pinyin": "xiakeqing" }, { "CMYK": [ 71, 28, 39, 10 ], "RGB": [ 100, 142, 147 ], "hex": "#648e93", "name": "\u665a\u6ce2\u84dd", "pinyin": "wanbolan" }, { "CMYK": [ 89, 27, 41, 13 ], "RGB": [ 59, 129, 140 ], "hex": "#3b818c", "name": "\u873b\u8713\u84dd", "pinyin": "qingtinglan" }, { "CMYK": [ 99, 33, 38, 21 ], "RGB": [ 18, 110, 130 ], "hex": "#126e82", "name": "\u7389\u922b\u84dd", "pinyin": "yuqinlan" }, { "CMYK": [ 57, 37, 42, 21 ], "RGB": [ 115, 124, 123 ], "hex": "#737c7b", "name": "\u57a9\u7070", "pinyin": "ehui" }, { "CMYK": [ 65, 40, 44, 26 ], "RGB": [ 97, 113, 114 ], "hex": "#617172", "name": "\u590f\u4e91\u7070", "pinyin": "xiayunhui" }, { "CMYK": [ 100, 52, 46, 43 ], "RGB": [ 19, 72, 87 ], "hex": "#134857", "name": "\u82cd\u84dd", "pinyin": "canglan" }, { "CMYK": [ 67, 53, 51, 50 ], "RGB": [ 71, 75, 76 ], "hex": "#474b4c", "name": "\u9ec4\u660f\u7070", "pinyin": "huanghunhui" }, { "CMYK": [ 94, 58, 54, 60 ], "RGB": [ 33, 55, 61 ], "hex": "#21373d", "name": "\u7070\u84dd", "pinyin": "huilan" }, { "CMYK": [ 100, 64, 56, 68 ], "RGB": [ 19, 44, 51 ], "hex": "#132c33", "name": "\u6df1\u7070\u84dd", "pinyin": "shenhuilan" }, { "CMYK": [ 49, 5, 37, 0 ], "RGB": [ 164, 202, 182 ], "hex": "#a4cab6", "name": "\u7389\u7c2a\u7eff", "pinyin": "yuzanlv" }, { "CMYK": [ 96, 12, 66, 2 ], "RGB": [ 44, 150, 120 ], "hex": "#2c9678", "name": "\u9752\u77fe\u7eff", "pinyin": "qingfanlv" }, { "CMYK": [ 52, 11, 37, 0 ], "RGB": [ 154, 190, 175 ], "hex": "#9abeaf", "name": "\u8349\u539f\u8fdc\u7eff", "pinyin": "caoyuanyuanlv" }, { "CMYK": [ 74, 14, 51, 1 ], "RGB": [ 105, 167, 148 ], "hex": "#69a794", "name": "\u68a7\u679d\u7eff", "pinyin": "wuzhilv" }, { "CMYK": [ 55, 16, 40, 1 ], "RGB": [ 146, 179, 165 ], "hex": "#92b3a5", "name": "\u6d6a\u82b1\u7eff", "pinyin": "langhualv" }, { "CMYK": [ 99, 23, 70, 10 ], "RGB": [ 36, 128, 103 ], "hex": "#248067", "name": "\u6d77\u738b\u7eff", "pinyin": "haiwanglv" }, { "CMYK": [ 88, 24, 61, 9 ], "RGB": [ 66, 134, 117 ], "hex": "#428675", "name": "\u4e9a\u4e01\u7eff", "pinyin": "yadinglv" }, { "CMYK": [ 40, 27, 36, 8 ], "RGB": [ 159, 163, 154 ], "hex": "#9fa39a", "name": "\u954d\u7070", "pinyin": "niehui" }, { "CMYK": [ 52, 28, 42, 10 ], "RGB": [ 138, 152, 142 ], "hex": "#8a988e", "name": "\u660e\u7070", "pinyin": "minghui" }, { "CMYK": [ 63, 31, 50, 14 ], "RGB": [ 112, 136, 125 ], "hex": "#70887d", "name": "\u6de1\u7eff\u7070", "pinyin": "danlvhui" }, { "CMYK": [ 82, 32, 60, 20 ], "RGB": [ 73, 117, 104 ], "hex": "#497568", "name": "\u98de\u6cc9\u7eff", "pinyin": "feiquanlv" }, { "CMYK": [ 62, 43, 52, 34 ], "RGB": [ 93, 101, 95 ], "hex": "#5d655f", "name": "\u72fc\u70df\u7070", "pinyin": "langyanhui" }, { "CMYK": [ 85, 44, 64, 52 ], "RGB": [ 49, 74, 67 ], "hex": "#314a43", "name": "\u7eff\u7070", "pinyin": "lvhui" }, { "CMYK": [ 93, 46, 70, 61 ], "RGB": [ 34, 62, 54 ], "hex": "#223e36", "name": "\u82cd\u7eff", "pinyin": "canglv" }, { "CMYK": [ 98, 46, 73, 63 ], "RGB": [ 26, 59, 50 ], "hex": "#1a3b32", "name": "\u6df1\u6d77\u7eff", "pinyin": "shenhailv" }, { "CMYK": [ 67, 60, 57, 68 ], "RGB": [ 54, 52, 51 ], "hex": "#363433", "name": "\u957f\u77f3\u7070", "pinyin": "changshihui" }, { "CMYK": [ 82, 60, 65, 80 ], "RGB": [ 31, 38, 35 ], "hex": "#1f2623", "name": "\u82f7\u84dd\u7eff", "pinyin": "ganlanlv" }, { "CMYK": [ 90, 62, 67, 86 ], "RGB": [ 20, 30, 27 ], "hex": "#141e1b", "name": "\u83bd\u4e1b\u7eff", "pinyin": "mangconglv" }, { "CMYK": [ 33, 1, 29, 0 ], "RGB": [ 198, 223, 200 ], "hex": "#c6dfc8", "name": "\u6de1\u7fe0\u7eff", "pinyin": "dancuilv" }, { "CMYK": [ 53, 1, 44, 0 ], "RGB": [ 158, 204, 171 ], "hex": "#9eccab", "name": "\u660e\u7eff", "pinyin": "minglv" }, { "CMYK": [ 75, 0, 59, 0 ], "RGB": [ 104, 184, 142 ], "hex": "#68b88e", "name": "\u7530\u56ed\u7eff", "pinyin": "tianyuanlv" }, { "CMYK": [ 98, 0, 82, 0 ], "RGB": [ 32, 161, 98 ], "hex": "#20a162", "name": "\u7fe0\u7eff", "pinyin": "cuilv" }, { "CMYK": [ 78, 6, 62, 0 ], "RGB": [ 97, 172, 133 ], "hex": "#61ac85", "name": "\u6de1\u7eff", "pinyin": "danlv" }, { "CMYK": [ 90, 7, 73, 0 ], "RGB": [ 64, 160, 112 ], "hex": "#40a070", "name": "\u8471\u7eff", "pinyin": "conglv" }, { "CMYK": [ 99, 10, 91, 2 ], "RGB": [ 34, 148, 83 ], "hex": "#229453", "name": "\u5b54\u96c0\u7eff", "pinyin": "kongquelv" }, { "CMYK": [ 27, 11, 27, 1 ], "RGB": [ 202, 211, 195 ], "hex": "#cad3c3", "name": "\u827e\u7eff", "pinyin": "ailv" }, { "CMYK": [ 92, 14, 76, 2 ], "RGB": [ 60, 149, 102 ], "hex": "#3c9566", "name": "\u87fe\u7eff", "pinyin": "chanlv" }, { "CMYK": [ 100, 17, 92, 5 ], "RGB": [ 32, 137, 77 ], "hex": "#20894d", "name": "\u5bab\u6bbf\u7eff", "pinyin": "gongdianlv" }, { "CMYK": [ 61, 19, 52, 3 ], "RGB": [ 131, 167, 141 ], "hex": "#83a78d", "name": "\u677e\u971c\u7eff", "pinyin": "songshuanglv" }, { "CMYK": [ 81, 19, 67, 4 ], "RGB": [ 87, 149, 114 ], "hex": "#579572", "name": "\u86cb\u767d\u77f3\u7eff", "pinyin": "danbaishilv" }, { "CMYK": [ 100, 22, 90, 10 ], "RGB": [ 32, 127, 76 ], "hex": "#207f4c", "name": "\u8584\u8377\u7eff", "pinyin": "bohelv" }, { "CMYK": [ 66, 29, 58, 12 ], "RGB": [ 110, 139, 116 ], "hex": "#6e8b74", "name": "\u74e6\u677e\u7eff", "pinyin": "wasonglv" }, { "CMYK": [ 100, 31, 91, 25 ], "RGB": [ 26, 104, 64 ], "hex": "#1a6840", "name": "\u8377\u53f6\u7eff", "pinyin": "heyelv" }, { "CMYK": [ 62, 42, 56, 34 ], "RGB": [ 94, 102, 91 ], "hex": "#5e665b", "name": "\u7530\u87ba\u7eff", "pinyin": "tianluolv" }, { "CMYK": [ 74, 42, 65, 40 ], "RGB": [ 72, 91, 77 ], "hex": "#485b4d", "name": "\u767d\u5c48\u83dc\u7eff", "pinyin": "baiqucailv" }, { "CMYK": [ 64, 57, 60, 67 ], "RGB": [ 57, 55, 51 ], "hex": "#393733", "name": "\u6cb3\u8c5a\u7070", "pinyin": "hetunhui" }, { "CMYK": [ 68, 56, 60, 66 ], "RGB": [ 55, 56, 52 ], "hex": "#373834", "name": "\u84bd\u6cb9\u7eff", "pinyin": "enyoulv" }, { "CMYK": [ 76, 56, 75, 72 ], "RGB": [ 43, 49, 44 ], "hex": "#2b312c", "name": "\u69f2\u5bc4\u751f\u7eff", "pinyin": "hujishenglv" }, { "CMYK": [ 91, 60, 76, 83 ], "RGB": [ 21, 35, 27 ], "hex": "#15231b", "name": "\u4e91\u6749\u7eff", "pinyin": "yunshanlv" }, { "CMYK": [ 9, 1, 14, 0 ], "RGB": [ 240, 245, 229 ], "hex": "#f0f5e5", "name": "\u5ae9\u83ca\u7eff", "pinyin": "nenjulv" }, { "CMYK": [ 20, 1, 23, 0 ], "RGB": [ 223, 236, 213 ], "hex": "#dfecd5", "name": "\u827e\u80cc\u7eff", "pinyin": "aibeilv" }, { "CMYK": [ 47, 0, 49, 0 ], "RGB": [ 173, 213, 162 ], "hex": "#add5a2", "name": "\u5609\u9675\u6c34\u7eff", "pinyin": "jialingshuilv" }, { "CMYK": [ 89, 0, 96, 0 ], "RGB": [ 65, 179, 73 ], "hex": "#41b349", "name": "\u7389\u9ad3\u7eff", "pinyin": "yusuilv" }, { "CMYK": [ 88, 0, 99, 0 ], "RGB": [ 67, 178, 68 ], "hex": "#43b244", "name": "\u9c9c\u7eff", "pinyin": "xianlv" }, { "CMYK": [ 90, 0, 100, 0 ], "RGB": [ 65, 174, 60 ], "hex": "#41ae3c", "name": "\u5b9d\u77f3\u7eff", "pinyin": "baoshilv" }, { "CMYK": [ 18, 4, 33, 0 ], "RGB": [ 226, 231, 191 ], "hex": "#e2e7bf", "name": "\u6d77\u6cac\u7eff", "pinyin": "haimeilv" }, { "CMYK": [ 28, 4, 44, 0 ], "RGB": [ 208, 222, 170 ], "hex": "#d0deaa", "name": "\u59da\u9ec4", "pinyin": "yaohuang" }, { "CMYK": [ 44, 3, 61, 0 ], "RGB": [ 178, 207, 135 ], "hex": "#b2cf87", "name": "\u6a44\u6984\u77f3\u7eff", "pinyin": "ganlanshilv" }, { "CMYK": [ 62, 0, 76, 0 ], "RGB": [ 140, 194, 105 ], "hex": "#8cc269", "name": "\u6c34\u7eff", "pinyin": "shuilv" }, { "CMYK": [ 42, 3, 67, 0 ], "RGB": [ 183, 208, 122 ], "hex": "#b7d07a", "name": "\u82a6\u82c7\u7eff", "pinyin": "luweilv" }, { "CMYK": [ 28, 6, 66, 0 ], "RGB": [ 210, 217, 122 ], "hex": "#d2d97a", "name": "\u69d0\u82b1\u9ec4\u7eff", "pinyin": "huaihuahuanglv" }, { "CMYK": [ 41, 4, 76, 0 ], "RGB": [ 186, 207, 101 ], "hex": "#bacf65", "name": "\u82f9\u679c\u7eff", "pinyin": "pingguolv" }, { "CMYK": [ 58, 1, 88, 0 ], "RGB": [ 150, 194, 78 ], "hex": "#96c24e", "name": "\u82bd\u7eff", "pinyin": "yalv" }, { "CMYK": [ 19, 9, 84, 1 ], "RGB": [ 226, 216, 73 ], "hex": "#e2d849", "name": "\u8776\u9ec4", "pinyin": "diehuang" }, { "CMYK": [ 38, 8, 94, 1 ], "RGB": [ 190, 201, 54 ], "hex": "#bec936", "name": "\u6a44\u6984\u9ec4\u7eff", "pinyin": "ganlanhuanglv" }, { "CMYK": [ 81, 0, 100, 0 ], "RGB": [ 91, 174, 35 ], "hex": "#5bae23", "name": "\u9e66\u9e49\u7eff", "pinyin": "yingwulv" }, { "CMYK": [ 84, 64, 94, 45 ], "RGB": [ 37, 61, 36 ], "hex": "#253d24", "name": "\u6cb9\u7eff", "pinyin": "youlv" }, { "CMYK": [ 0, 1, 4, 0 ], "RGB": [ 255, 254, 248 ], "hex": "#fffef8", "name": "\u8c61\u7259\u767d", "pinyin": "xiangyabai" }, { "CMYK": [ 3, 5, 8, 0 ], "RGB": [ 248, 244, 237 ], "hex": "#f8f4ed", "name": "\u6c49\u767d\u7389", "pinyin": "hanbaiyu" }, { "CMYK": [ 0, 1, 3, 0 ], "RGB": [ 255, 254, 249 ], "hex": "#fffef9", "name": "\u96ea\u767d", "pinyin": "xuebai" }, { "CMYK": [ 4, 4, 8, 0 ], "RGB": [ 247, 244, 237 ], "hex": "#f7f4ed", "name": "\u9c7c\u809a\u767d", "pinyin": "yudubai" }, { "CMYK": [ 12, 12, 16, 0 ], "RGB": [ 228, 223, 215 ], "hex": "#e4dfd7", "name": "\u73cd\u73e0\u7070", "pinyin": "zhenzhuhui" }, { "CMYK": [ 16, 15, 20, 1 ], "RGB": [ 218, 212, 203 ], "hex": "#dad4cb", "name": "\u6d45\u7070", "pinyin": "qianhui" }, { "CMYK": [ 28, 5, 30, 5 ], "RGB": [ 187, 181, 172 ], "hex": "#bbb5ac", "name": "\u94c5\u7070", "pinyin": "qianhui" }, { "CMYK": [ 28, 25, 30, 5 ], "RGB": [ 187, 181, 172 ], "hex": "#bbb5ac", "name": "\u4e2d\u7070", "pinyin": "zhonghui" }, { "CMYK": [ 42, 40, 43, 23 ], "RGB": [ 134, 126, 118 ], "hex": "#867e76", "name": "\u74e6\u7070", "pinyin": "wahui" }, { "CMYK": [ 43, 40, 44, 42 ], "RGB": [ 132, 124, 116 ], "hex": "#847c74", "name": "\u591c\u7070", "pinyin": "yehui" }, { "CMYK": [ 42, 42, 45, 27 ], "RGB": [ 128, 118, 110 ], "hex": "#80766e", "name": "\u96c1\u7070", "pinyin": "yanhui" }, { "CMYK": [ 42, 42, 46, 27 ], "RGB": [ 129, 119, 110 ], "hex": "#81776e", "name": "\u6df1\u7070", "pinyin": "shenhui" } ] ================================================ FILE: packages/editor/src/assets/color/all_in_one.json ================================================ { "red": [ { "id": "255179167", "name": "粉红", "tra_name": "粉紅", "color_series": "red", "pinyin": "fěn hóng", "font_color": "dark", "is_bright": true, "rgb": [ 255, 179, 167 ], "hex": "#FFB3A7", "cmyk": [ 0, 30, 35, 0 ], "desc": "", "figure": "" }, { "id": "2378754", "name": "妃色", "tra_name": "妃色", "color_series": "red", "pinyin": "fēi sè", "font_color": "dark", "is_bright": true, "rgb": [ 237, 87, 54 ], "hex": "#ED5736", "cmyk": [ 0, 63, 77, 7 ], "desc": "", "figure": "" }, { "id": "240086", "name": "品红", "tra_name": "品紅", "color_series": "red", "pinyin": "pǐn hóng", "font_color": "dark", "is_bright": true, "rgb": [ 240, 0, 86 ], "hex": "#F00056", "cmyk": [ 0, 100, 64, 6 ], "desc": "", "figure": "" }, { "id": "244121131", "name": "桃红", "tra_name": "桃紅", "color_series": "red", "pinyin": "táo hóng", "font_color": "dark", "is_bright": true, "rgb": [ 244, 121, 131 ], "hex": "#F47983", "cmyk": [ 0, 50, 46, 4 ], "desc": "", "figure": "" }, { "id": "21990107", "name": "海棠红", "tra_name": "海棠紅", "color_series": "red", "pinyin": "hǎi táng hóng", "font_color": "dark", "is_bright": true, "rgb": [ 219, 90, 107 ], "hex": "#DB5A6B", "cmyk": [ 0, 59, 51, 14 ], "desc": "", "figure": "" }, { "id": "242120", "name": "石榴红", "tra_name": "石榴紅", "color_series": "red", "pinyin": "shí liú hóng", "font_color": "dark", "is_bright": true, "rgb": [ 242, 12, 0 ], "hex": "#F20C00", "cmyk": [ 0, 95, 100, 5 ], "desc": "", "figure": "" }, { "id": "2015586", "name": "樱桃色", "tra_name": "櫻桃色", "color_series": "red", "pinyin": "yīng táo sè", "font_color": "dark", "is_bright": true, "rgb": [ 201, 55, 86 ], "hex": "#C93756", "cmyk": [ 0, 73, 57, 21 ], "desc": "", "figure": "" }, { "id": "2408684", "name": "银红", "tra_name": "銀紅", "color_series": "red", "pinyin": "yín hóng", "font_color": "dark", "is_bright": true, "rgb": [ 240, 86, 84 ], "hex": "#F05654", "cmyk": [ 0, 64, 65, 6 ], "desc": "", "figure": "" }, { "id": "2553333", "name": "大红", "tra_name": "大紅", "color_series": "red", "pinyin": "dà hóng", "font_color": "dark", "is_bright": true, "rgb": [ 255, 33, 33 ], "hex": "#FF2121", "cmyk": [ 0, 87, 87, 0 ], "desc": "", "figure": "" }, { "id": "2006035", "name": "绯红", "tra_name": "緋紅", "color_series": "red", "pinyin": "fēi hóng", "font_color": "dark", "is_bright": true, "rgb": [ 200, 60, 35 ], "hex": "#C83C23", "cmyk": [ 0, 70, 82, 22 ], "desc": "", "figure": "" }, { "id": "1574151", "name": "胭脂", "tra_name": "胭脂", "color_series": "red", "pinyin": "yān zhī", "font_color": "dark", "is_bright": true, "rgb": [ 157, 41, 51 ], "hex": "#9D2933", "cmyk": [ 0, 74, 68, 38 ], "desc": "", "figure": "" }, { "id": "255760", "name": "朱红", "tra_name": "朱紅", "color_series": "red", "pinyin": "zhū hóng", "font_color": "dark", "is_bright": true, "rgb": [ 255, 76, 0 ], "hex": "#FF4C00", "cmyk": [ 0, 70, 100, 0 ], "desc": "", "figure": "" }, { "id": "2557832", "name": "丹", "tra_name": "丹", "color_series": "red", "pinyin": "dān", "font_color": "dark", "is_bright": true, "rgb": [ 255, 78, 32 ], "hex": "#FF4E20", "cmyk": [ 0, 69, 87, 0 ], "desc": "", "figure": "" }, { "id": "2438354", "name": "彤", "tra_name": "彤", "color_series": "red", "pinyin": "tóng", "font_color": "dark", "is_bright": true, "rgb": [ 243, 83, 54 ], "hex": "#F35336", "cmyk": [ 0, 66, 78, 5 ], "desc": "", "figure": "" }, { "id": "2035886", "name": "茜色", "tra_name": "茜色", "color_series": "red", "pinyin": "qiàn sè", "font_color": "dark", "is_bright": true, "rgb": [ 203, 58, 86 ], "hex": "#CB3A56", "cmyk": [ 0, 71, 58, 20 ], "desc": "", "figure": "" }, { "id": "2554581", "name": "火红", "tra_name": "火紅", "color_series": "red", "pinyin": "huǒ hóng", "font_color": "dark", "is_bright": true, "rgb": [ 255, 45, 81 ], "hex": "#FF2D51", "cmyk": [ 0, 82, 68, 0 ], "desc": "", "figure": "" }, { "id": "2013155", "name": "赫赤", "tra_name": "赫赤", "color_series": "red", "pinyin": "hè chì", "font_color": "dark", "is_bright": true, "rgb": [ 201, 31, 55 ], "hex": "#C91F37", "cmyk": [ 0, 85, 73, 21 ], "desc": "", "figure": "" }, { "id": "239122130", "name": "嫣红", "tra_name": "嫣紅", "color_series": "red", "pinyin": "yān hóng", "font_color": "dark", "is_bright": true, "rgb": [ 239, 122, 130 ], "hex": "#EF7A82", "cmyk": [ 0, 49, 46, 6 ], "desc": "", "figure": "" }, { "id": "2550151", "name": "洋红", "tra_name": "洋紅", "color_series": "red", "pinyin": "yáng hóng", "font_color": "dark", "is_bright": true, "rgb": [ 255, 0, 151 ], "hex": "#FF0097", "cmyk": [ 0, 100, 41, 0 ], "desc": "", "figure": "" }, { "id": "255510", "name": "炎", "tra_name": "炎", "color_series": "red", "pinyin": "yán", "font_color": "dark", "is_bright": true, "rgb": [ 255, 51, 0 ], "hex": "#FF3300", "cmyk": [ 0, 80, 100, 0 ], "desc": "", "figure": "" }, { "id": "1953943", "name": "赤", "tra_name": "赤", "color_series": "red", "pinyin": "chì", "font_color": "dark", "is_bright": true, "rgb": [ 195, 39, 43 ], "hex": "#C3272B", "cmyk": [ 0, 80, 78, 24 ], "desc": "", "figure": "" }, { "id": "169129117", "name": "绾", "tra_name": "綰", "color_series": "red", "pinyin": "wǎn", "font_color": "dark", "is_bright": true, "rgb": [ 169, 129, 117 ], "hex": "#A98175", "cmyk": [ 0, 24, 31, 34 ], "desc": "", "figure": "" }, { "id": "1953354", "name": "枣红", "tra_name": "棗紅", "color_series": "red", "pinyin": "zǎo hóng", "font_color": "dark", "is_bright": true, "rgb": [ 195, 33, 54 ], "hex": "#C32136", "cmyk": [ 0, 83, 72, 24 ], "desc": "", "figure": "" }, { "id": "17910997", "name": "檀", "tra_name": "檀", "color_series": "red", "pinyin": "tán", "font_color": "dark", "is_bright": true, "rgb": [ 179, 109, 97 ], "hex": "#B36D61", "cmyk": [ 0, 39, 46, 30 ], "desc": "", "figure": "" }, { "id": "190047", "name": "殷红", "tra_name": "殷紅", "color_series": "red", "pinyin": "yān hóng", "font_color": "dark", "is_bright": true, "rgb": [ 190, 0, 47 ], "hex": "#BE002F", "cmyk": [ 0, 100, 75, 25 ], "desc": "发黑的红色。", "figure": "" }, { "id": "2204835", "name": "酡红", "tra_name": "酡紅", "color_series": "red", "pinyin": "tuó hóng", "font_color": "dark", "is_bright": true, "rgb": [ 220, 48, 35 ], "hex": "#DC3023", "cmyk": [ 0, 78, 84, 14 ], "desc": "", "figure": "" }, { "id": "249144111", "name": "酡颜", "tra_name": "酡顏", "color_series": "red", "pinyin": "tuó yán", "font_color": "dark", "is_bright": true, "rgb": [ 249, 144, 111 ], "hex": "#F9906F", "cmyk": [ 0, 42, 55, 2 ], "desc": "", "figure": "" }, { "id": "25514049", "name": "杏红", "tra_name": "杏紅", "color_series": "red", "pinyin": "xìng hóng", "font_color": "dark", "is_bright": true, "rgb": [ 255, 140, 49 ], "hex": "#FF8C31", "cmyk": [ 0, 45, 81, 0 ], "desc": "", "figure": "" }, { "id": "2551170", "name": "橘红", "tra_name": "橘紅", "color_series": "red", "pinyin": "jú hóng", "font_color": "dark", "is_bright": true, "rgb": [ 255, 117, 0 ], "hex": "#FF7500", "cmyk": [ 0, 54, 100, 0 ], "desc": "", "figure": "" }, { "id": "25014053", "name": "橙色", "tra_name": "橙色", "color_series": "red", "pinyin": "chéng sè", "font_color": "dark", "is_bright": true, "rgb": [ 250, 140, 53 ], "hex": "#FA8C35", "cmyk": [ 0, 44, 79, 2 ], "desc": "", "figure": "" }, { "id": "1799268", "name": "茶色", "tra_name": "茶色", "color_series": "red", "pinyin": "chá sè", "font_color": "dark", "is_bright": true, "rgb": [ 179, 92, 68 ], "hex": "#B35C44", "cmyk": [ 0, 49, 62, 30 ], "desc": "", "figure": "" }, { "id": "16813298", "name": "驼色", "tra_name": "駝色", "color_series": "red", "pinyin": "tuó sè", "font_color": "dark", "is_bright": true, "rgb": [ 168, 132, 98 ], "hex": "#A88462", "cmyk": [ 0, 21, 42, 34 ], "desc": "", "figure": "" }, { "id": "964030", "name": "栗色", "tra_name": "慄色", "color_series": "red", "pinyin": "lì sè", "font_color": "bright", "is_bright": false, "rgb": [ 96, 40, 30 ], "hex": "#60281E", "cmyk": [ 0, 58, 69, 62 ], "desc": "", "figure": "" }, { "id": "1789337", "name": "棕色", "tra_name": "棕色", "color_series": "red", "pinyin": "zōng sè", "font_color": "dark", "is_bright": true, "rgb": [ 178, 93, 37 ], "hex": "#B25D25", "cmyk": [ 0, 48, 79, 30 ], "desc": "", "figure": "" }, { "id": "155680", "name": "棕红", "tra_name": "棕紅", "color_series": "red", "pinyin": "zōng hóng", "font_color": "dark", "is_bright": true, "rgb": [ 155, 68, 0 ], "hex": "#9B4400", "cmyk": [ 0, 56, 100, 39 ], "desc": "", "figure": "" }, { "id": "1568351", "name": "赭", "tra_name": "赭", "color_series": "red", "pinyin": "zhě", "font_color": "dark", "is_bright": true, "rgb": [ 156, 83, 51 ], "hex": "#9C5333", "cmyk": [ 0, 47, 67, 39 ], "desc": "", "figure": "" }, { "id": "1498557", "name": "赭色", "tra_name": "赭色", "color_series": "red", "pinyin": "zhě sè", "font_color": "dark", "is_bright": true, "rgb": [ 149, 85, 57 ], "hex": "#955539", "cmyk": [ 0, 43, 62, 42 ], "desc": "", "figure": "" }, { "id": "20210536", "name": "琥珀", "tra_name": "琥珀", "color_series": "red", "pinyin": "hǔ pò", "font_color": "dark", "is_bright": true, "rgb": [ 202, 105, 36 ], "hex": "#CA6924", "cmyk": [ 0, 48, 82, 21 ], "desc": "", "figure": "" }, { "id": "237209216", "name": "藕色", "tra_name": "藕色", "color_series": "red", "pinyin": "ǒu sè", "font_color": "dark", "is_bright": true, "rgb": [ 237, 209, 216 ], "hex": "#EDD1D8", "cmyk": [ 0, 12, 9, 7 ], "desc": "", "figure": "" }, { "id": "228198208", "name": "藕合色", "tra_name": "藕合色", "color_series": "red", "pinyin": "ǒu hé sè", "font_color": "dark", "is_bright": true, "rgb": [ 228, 198, 208 ], "hex": "#E4C6D0", "cmyk": [ 0, 13, 9, 11 ], "desc": "", "figure": "" }, { "id": "984229", "name": "玄色", "tra_name": "玄色", "color_series": "red", "pinyin": "xuán sè", "font_color": "bright", "is_bright": false, "rgb": [ 98, 42, 29 ], "hex": "#622A1D", "cmyk": [ 0, 57, 70, 62 ], "desc": "", "figure": "" }, { "id": "734949", "name": "缁色", "tra_name": "緇色", "color_series": "red", "pinyin": "zī sè", "font_color": "bright", "is_bright": false, "rgb": [ 73, 49, 49 ], "hex": "#493131", "cmyk": [ 0, 33, 33, 71 ], "desc": "", "figure": "" }, { "id": "493732", "name": "煤黑", "tra_name": "煤黑", "color_series": "red", "pinyin": "méi hēi", "font_color": "bright", "is_bright": false, "rgb": [ 49, 37, 32 ], "hex": "#312520", "cmyk": [ 0, 24, 35, 81 ], "desc": "", "figure": "" }, { "id": "1028787", "name": "黝黑", "tra_name": "黝黑", "color_series": "red", "pinyin": "yǒu hēi", "font_color": "bright", "is_bright": false, "rgb": [ 102, 87, 87 ], "hex": "#665757", "cmyk": [ 0, 15, 15, 60 ], "desc": "", "figure": "" }, { "id": "243211231", "name": "水红", "tra_name": "水紅", "color_series": "red", "pinyin": "shuǐ hóng", "font_color": "dark", "is_bright": true, "rgb": [ 243, 211, 231 ], "hex": "#F3D3E7", "cmyk": [ 0, 13, 5, 5 ], "desc": "", "figure": "hehua2.png?width=18rem" }, { "id": "1027042", "name": "驼色", "tra_name": "駝色", "color_series": "red", "pinyin": "tuó sè", "font_color": "bright", "is_bright": false, "rgb": [ 102, 70, 42 ], "hex": "#66462A", "cmyk": [ 37, 65, 84, 49 ], "desc": "", "figure": "" }, { "id": "936133", "name": "茶褐", "tra_name": "茶褐", "color_series": "red", "pinyin": "chá hè", "font_color": "bright", "is_bright": false, "rgb": [ 93, 61, 33 ], "hex": "#5D3D21", "cmyk": [ 38, 69, 90, 54 ], "desc": "", "figure": "" }, { "id": "925525", "name": "古铜褐", "tra_name": "古銅褐", "color_series": "red", "pinyin": "gǔ tóng hè", "font_color": "bright", "is_bright": false, "rgb": [ 92, 55, 25 ], "hex": "#5C3719", "cmyk": [ 37, 74, 96, 55 ], "desc": "", "figure": "" }, { "id": "248179127", "name": "玫瑰粉", "tra_name": "玫瑰粉", "color_series": "red", "pinyin": "méi guī fěn", "font_color": "dark", "is_bright": true, "rgb": [ 248, 179, 127 ], "hex": "#F8B37F", "cmyk": [ 0, 40, 52, 0 ], "desc": "", "figure": "" }, { "id": "24912528", "name": "橘橙", "tra_name": "橘橙", "color_series": "red", "pinyin": "jú chéng", "font_color": "dark", "is_bright": true, "rgb": [ 249, 125, 28 ], "hex": "#F97D1C", "cmyk": [ 0, 62, 88, 0 ], "desc": "", "figure": "" }, { "id": "25012635", "name": "美人焦橙", "tra_name": "美人焦橙", "color_series": "red", "pinyin": "měi rén jiāo chéng", "font_color": "dark", "is_bright": true, "rgb": [ 250, 126, 35 ], "hex": "#FA7E23", "cmyk": [ 0, 62, 85, 0 ], "desc": "", "figure": "" }, { "id": "247205188", "name": "润红", "tra_name": "潤紅", "color_series": "red", "pinyin": "rùn hóng", "font_color": "dark", "is_bright": true, "rgb": [ 247, 205, 188 ], "hex": "#F7CDBC", "cmyk": [ 0, 28, 25, 0 ], "desc": "", "figure": "" }, { "id": "246206193", "name": "淡桃红", "tra_name": "淡桃紅", "color_series": "red", "pinyin": "dàn táo hóng", "font_color": "dark", "is_bright": true, "rgb": [ 246, 206, 193 ], "hex": "#F6CEC1", "cmyk": [ 0, 28, 22, 0 ], "desc": "", "figure": "" }, { "id": "24014893", "name": "海螺橙", "tra_name": "海螺橙", "color_series": "red", "pinyin": "hǎi luó chéng", "font_color": "dark", "is_bright": true, "rgb": [ 240, 148, 93 ], "hex": "#F0945D", "cmyk": [ 0, 53, 65, 0 ], "desc": "", "figure": "" }, { "id": "240173160", "name": "桃红", "tra_name": "桃紅", "color_series": "red", "pinyin": "táo hóng", "font_color": "dark", "is_bright": true, "rgb": [ 240, 173, 160 ], "hex": "#F0ADA0", "cmyk": [ 0, 44, 32, 0 ], "desc": "", "figure": "" }, { "id": "238170156", "name": "颊红", "tra_name": "頰紅", "color_series": "red", "pinyin": "jiá hóng", "font_color": "dark", "is_bright": true, "rgb": [ 238, 170, 156 ], "hex": "#EEAA9C", "cmyk": [ 0, 45, 34, 0 ], "desc": "", "figure": "" }, { "id": "238160140", "name": "淡罂粟红", "tra_name": "淡罌粟紅", "color_series": "red", "pinyin": "dàn yīng sù hóng", "font_color": "dark", "is_bright": true, "rgb": [ 238, 160, 140 ], "hex": "#EEA08C", "cmyk": [ 0, 49, 41, 0 ], "desc": "", "figure": "" }, { "id": "23413788", "name": "晨曦红", "tra_name": "晨曦紅", "color_series": "red", "pinyin": "chén xī hóng", "font_color": "dark", "is_bright": true, "rgb": [ 234, 137, 88 ], "hex": "#EA8958", "cmyk": [ 0, 58, 67, 0 ], "desc": "", "figure": "" }, { "id": "24211853", "name": "蟹壳红", "tra_name": "蟹殼紅", "color_series": "red", "pinyin": "xiè ké hóng", "font_color": "dark", "is_bright": true, "rgb": [ 242, 118, 53 ], "hex": "#F27635", "cmyk": [ 0, 65, 80, 0 ], "desc": "", "figure": "" }, { "id": "24810729", "name": "金莲花橙", "tra_name": "金蓮花橙", "color_series": "red", "pinyin": "jīn lián huā chéng", "font_color": "dark", "is_bright": true, "rgb": [ 248, 107, 29 ], "hex": "#F86B1D", "cmyk": [ 0, 69, 86, 0 ], "desc": "", "figure": "" }, { "id": "23911172", "name": "草莓红", "tra_name": "草莓紅", "color_series": "red", "pinyin": "cǎo méi hóng", "font_color": "dark", "is_bright": true, "rgb": [ 239, 111, 72 ], "hex": "#EF6F48", "cmyk": [ 0, 69, 70, 0 ], "desc": "", "figure": "" }, { "id": "2399943", "name": "龙睛鱼红", "tra_name": "龍睛魚紅", "color_series": "red", "pinyin": "lóng jīng yú hóng", "font_color": "dark", "is_bright": true, "rgb": [ 239, 99, 43 ], "hex": "#EF632B", "cmyk": [ 0, 72, 82, 0 ], "desc": "", "figure": "" }, { "id": "2416829", "name": "蜻蜓红", "tra_name": "蜻蜓紅", "color_series": "red", "pinyin": "qīng tíng hóng", "font_color": "dark", "is_bright": true, "rgb": [ 241, 68, 29 ], "hex": "#F1441D", "cmyk": [ 0, 81, 84, 0 ], "desc": "", "figure": "" }, { "id": "2407534", "name": "大红", "tra_name": "大紅", "color_series": "red", "pinyin": "dà hóng", "font_color": "dark", "is_bright": true, "rgb": [ 240, 75, 34 ], "hex": "#F04B22", "cmyk": [ 0, 80, 83, 0 ], "desc": "", "figure": "" }, { "id": "2427227", "name": "柿红", "tra_name": "柿紅", "color_series": "red", "pinyin": "shì hóng", "font_color": "dark", "is_bright": true, "rgb": [ 242, 72, 27 ], "hex": "#F2481B", "cmyk": [ 0, 80, 85, 0 ], "desc": "", "figure": "" }, { "id": "2437124", "name": "榴花红", "tra_name": "榴花紅", "color_series": "red", "pinyin": "liú huā hóng", "font_color": "dark", "is_bright": true, "rgb": [ 243, 71, 24 ], "hex": "#F34718", "cmyk": [ 0, 80, 85, 0 ], "desc": "", "figure": "" }, { "id": "244626", "name": "银朱", "tra_name": "銀硃", "color_series": "red", "pinyin": "yín zhū", "font_color": "dark", "is_bright": true, "rgb": [ 244, 62, 6 ], "hex": "#F43E06", "cmyk": [ 0, 83, 87, 0 ], "desc": "", "figure": "" }, { "id": "2378138", "name": "朱红", "tra_name": "朱紅", "color_series": "red", "pinyin": "zhū hóng", "font_color": "dark", "is_bright": true, "rgb": [ 237, 81, 38 ], "hex": "#ED5126", "cmyk": [ 0, 78, 83, 0 ], "desc": "", "figure": "" }, { "id": "24015690", "name": "鲑鱼红", "tra_name": "鮭魚紅", "color_series": "red", "pinyin": "guī yú hóng", "font_color": "dark", "is_bright": true, "rgb": [ 240, 156, 90 ], "hex": "#F09C5A", "cmyk": [ 0, 50, 68, 0 ], "desc": "", "figure": "" }, { "id": "21714586", "name": "鹿皮褐", "tra_name": "鹿皮褐", "color_series": "red", "pinyin": "lù pí hè", "font_color": "dark", "is_bright": true, "rgb": [ 217, 145, 86 ], "hex": "#D99156", "cmyk": [ 7, 52, 71, 1 ], "desc": "", "figure": "" }, { "id": "21913364", "name": "醉瓜肉", "tra_name": "醉瓜肉", "color_series": "red", "pinyin": "zuì guā ròu", "font_color": "dark", "is_bright": true, "rgb": [ 219, 133, 64 ], "hex": "#DB8540", "cmyk": [ 4, 57, 82, 1 ], "desc": "", "figure": "" }, { "id": "22211834", "name": "麂棕", "tra_name": "麂棕", "color_series": "red", "pinyin": "jǐ zōng", "font_color": "dark", "is_bright": true, "rgb": [ 222, 118, 34 ], "hex": "#DE7622", "cmyk": [ 0, 64, 93, 0 ], "desc": "", "figure": "" }, { "id": "19012674", "name": "淡赭", "tra_name": "淡赭", "color_series": "red", "pinyin": "dàn zhě", "font_color": "dark", "is_bright": true, "rgb": [ 190, 126, 74 ], "hex": "#BE7E4A", "cmyk": [ 18, 57, 76, 6 ], "desc": "", "figure": "" }, { "id": "19310126", "name": "槟榔综", "tra_name": "檳榔綜", "color_series": "red", "pinyin": "bīng láng zōng", "font_color": "dark", "is_bright": true, "rgb": [ 193, 101, 26 ], "hex": "#C1651A", "cmyk": [ 14, 69, 100, 4 ], "desc": "", "figure": "" }, { "id": "1488851", "name": "淡咖啡", "tra_name": "淡咖啡", "color_series": "red", "pinyin": "dàn kā fēi", "font_color": "dark", "is_bright": true, "rgb": [ 148, 88, 51 ], "hex": "#945833", "cmyk": [ 27, 69, 85, 22 ], "desc": "", "figure": "" }, { "id": "1507734", "name": "岩石棕", "tra_name": "岩石棕", "color_series": "red", "pinyin": "yán shí zōng", "font_color": "dark", "is_bright": true, "rgb": [ 150, 77, 34 ], "hex": "#964D22", "cmyk": [ 26, 76, 97, 20 ], "desc": "", "figure": "" }, { "id": "1496822", "name": "芒果棕", "tra_name": "芒果棕", "color_series": "red", "pinyin": "máng guǒ zōng", "font_color": "dark", "is_bright": true, "rgb": [ 149, 68, 22 ], "hex": "#954416", "cmyk": [ 25, 80, 100, 20 ], "desc": "", "figure": "" }, { "id": "1135429", "name": "丁香棕", "tra_name": "丁香棕", "color_series": "red", "pinyin": "dīng xiāng zōng", "font_color": "bright", "is_bright": false, "rgb": [ 113, 54, 29 ], "hex": "#71361D", "cmyk": [ 32, 83, 96, 41 ], "desc": "", "figure": "" }, { "id": "1174923", "name": "咖啡", "tra_name": "咖啡", "color_series": "red", "pinyin": "kā fēi", "font_color": "bright", "is_bright": false, "rgb": [ 117, 49, 23 ], "hex": "#753117", "cmyk": [ 30, 87, 100, 38 ], "desc": "", "figure": "" }, { "id": "1154618", "name": "筍皮棕", "tra_name": "筍皮棕", "color_series": "red", "pinyin": "sǔn pí zōng", "font_color": "bright", "is_bright": false, "rgb": [ 115, 46, 18 ], "hex": "#732E12", "cmyk": [ 30, 89, 100, 39 ], "desc": "", "figure": "" }, { "id": "2529921", "name": "燕颔红", "tra_name": "燕頷紅", "color_series": "red", "pinyin": "yàn hàn hóng", "font_color": "dark", "is_bright": true, "rgb": [ 252, 99, 21 ], "hex": "#FC6315", "cmyk": [ 0, 72, 86, 0 ], "desc": "", "figure": "" }, { "id": "232180154", "name": "玉粉红", "tra_name": "玉粉紅", "color_series": "red", "pinyin": "yù fěn hóng", "font_color": "dark", "is_bright": true, "rgb": [ 232, 180, 154 ], "hex": "#E8B49A", "cmyk": [ 3, 38, 39, 0 ], "desc": "", "figure": "" }, { "id": "22810440", "name": "金驼", "tra_name": "金駝", "color_series": "red", "pinyin": "jīn tuó", "font_color": "dark", "is_bright": true, "rgb": [ 228, 104, 40 ], "hex": "#E46828", "cmyk": [ 0, 70, 87, 0 ], "desc": "", "figure": "" }, { "id": "2168922", "name": "铁棕", "tra_name": "鐵棕", "color_series": "red", "pinyin": "tiě zōng", "font_color": "dark", "is_bright": true, "rgb": [ 216, 89, 22 ], "hex": "#D85916", "cmyk": [ 0, 76, 97, 0 ], "desc": "", "figure": "" }, { "id": "1838129", "name": "淡可可棕", "tra_name": "淡可可棕", "color_series": "red", "pinyin": "dàn kě kě zōng", "font_color": "dark", "is_bright": true, "rgb": [ 183, 81, 29 ], "hex": "#B7511D", "cmyk": [ 16, 77, 100, 6 ], "desc": "", "figure": "" }, { "id": "1356136", "name": "淡豆沙", "tra_name": "淡豆沙", "color_series": "red", "pinyin": "dàn dòu shā", "font_color": "dark", "is_bright": true, "rgb": [ 135, 61, 36 ], "hex": "#873D24", "cmyk": [ 28, 83, 92, 28 ], "desc": "", "figure": "" }, { "id": "1365830", "name": "椰壳棕", "tra_name": "椰殼棕", "color_series": "red", "pinyin": "yē ké zōng", "font_color": "dark", "is_bright": true, "rgb": [ 136, 58, 30 ], "hex": "#883A1E", "cmyk": [ 27, 85, 98, 27 ], "desc": "", "figure": "" }, { "id": "1035236", "name": "淡栗棕", "tra_name": "淡慄棕", "color_series": "red", "pinyin": "dàn lì zōng", "font_color": "bright", "is_bright": false, "rgb": [ 103, 52, 36 ], "hex": "#673424", "cmyk": [ 34, 82, 85, 47 ], "desc": "", "figure": "" }, { "id": "1014328", "name": "可可棕", "tra_name": "可可棕", "color_series": "red", "pinyin": "kě kě zōng", "font_color": "bright", "is_bright": false, "rgb": [ 101, 43, 28 ], "hex": "#652B1C", "cmyk": [ 33, 89, 92, 48 ], "desc": "", "figure": "" }, { "id": "1054227", "name": "柞叶棕", "tra_name": "柞葉棕", "color_series": "red", "pinyin": "zhà yè zōng", "font_color": "bright", "is_bright": false, "rgb": [ 105, 42, 27 ], "hex": "#692A1B", "cmyk": [ 32, 90, 95, 45 ], "desc": "", "figure": "" }, { "id": "251153104", "name": "野蔷薇红", "tra_name": "野薔薇紅", "color_series": "red", "pinyin": "yě qiáng wēi hóng", "font_color": "dark", "is_bright": true, "rgb": [ 251, 153, 104 ], "hex": "#FB9968", "cmyk": [ 0, 53, 59, 0 ], "desc": "", "figure": "" }, { "id": "25212148", "name": "菠萝红", "tra_name": "菠蘿紅", "color_series": "red", "pinyin": "bō luó hóng", "font_color": "dark", "is_bright": true, "rgb": [ 252, 121, 48 ], "hex": "#FC7930", "cmyk": [ 0, 65, 79, 0 ], "desc": "", "figure": "" }, { "id": "237195174", "name": "藕荷", "tra_name": "藕荷", "color_series": "red", "pinyin": "ǒu hé", "font_color": "dark", "is_bright": true, "rgb": [ 237, 195, 174 ], "hex": "#EDC3AE", "cmyk": [ 2, 31, 31, 0 ], "desc": "", "figure": "" }, { "id": "22510335", "name": "陶瓷红", "tra_name": "陶瓷紅", "color_series": "red", "pinyin": "táo cí hóng", "font_color": "dark", "is_bright": true, "rgb": [ 225, 103, 35 ], "hex": "#E16723", "cmyk": [ 0, 70, 91, 0 ], "desc": "", "figure": "" }, { "id": "20711767", "name": "余烬红", "tra_name": "餘燼紅", "color_series": "red", "pinyin": "yú jìn hóng", "font_color": "dark", "is_bright": true, "rgb": [ 207, 117, 67 ], "hex": "#CF7543", "cmyk": [ 9, 64, 78, 1 ], "desc": "", "figure": "" }, { "id": "2059839", "name": "火砖红", "tra_name": "火磚紅", "color_series": "red", "pinyin": "huǒ zhuān hóng", "font_color": "dark", "is_bright": true, "rgb": [ 205, 98, 39 ], "hex": "#CD6227", "cmyk": [ 8, 72, 93, 1 ], "desc": "", "figure": "" }, { "id": "17010676", "name": "绀红", "tra_name": "紺紅", "color_series": "red", "pinyin": "gàn hóng", "font_color": "dark", "is_bright": true, "rgb": [ 170, 106, 76 ], "hex": "#AA6A4C", "cmyk": [ 20, 76, 92, 9 ], "desc": "", "figure": "" }, { "id": "1196149", "name": "橡树棕", "tra_name": "橡樹棕", "color_series": "red", "pinyin": "xiàng shù zōng", "font_color": "bright", "is_bright": false, "rgb": [ 119, 61, 49 ], "hex": "#773D31", "cmyk": [ 31, 79, 77, 37 ], "desc": "", "figure": "" }, { "id": "723734", "name": "火山棕", "tra_name": "火山棕", "color_series": "red", "pinyin": "huǒ shān zōng", "font_color": "bright", "is_bright": false, "rgb": [ 72, 37, 34 ], "hex": "#482522", "cmyk": [ 41, 84, 71, 67 ], "desc": "", "figure": "" }, { "id": "723028", "name": "豆沙", "tra_name": "豆沙", "color_series": "red", "pinyin": "dòu shā", "font_color": "bright", "is_bright": false, "rgb": [ 72, 30, 28 ], "hex": "#481E1C", "cmyk": [ 40, 92, 78, 66 ], "desc": "", "figure": "" }, { "id": "246220206", "name": "初桃粉红", "tra_name": "初桃粉紅", "color_series": "red", "pinyin": "chū táo fěn hóng", "font_color": "dark", "is_bright": true, "rgb": [ 246, 220, 206 ], "hex": "#F6DCCE", "cmyk": [ 0, 19, 19, 0 ], "desc": "", "figure": "" }, { "id": "247207186", "name": "介壳淡粉红", "tra_name": "介殼淡粉紅", "color_series": "red", "pinyin": "jiè ké dàn fěn hóng", "font_color": "dark", "is_bright": true, "rgb": [ 247, 207, 186 ], "hex": "#F7CFBA", "cmyk": [ 0, 27, 27, 0 ], "desc": "", "figure": "" }, { "id": "246173143", "name": "淡藏花红", "tra_name": "淡藏花紅", "color_series": "red", "pinyin": "dàn cáng huā hóng", "font_color": "dark", "is_bright": true, "rgb": [ 246, 173, 143 ], "hex": "#F6AD8F", "cmyk": [ 0, 43, 43, 0 ], "desc": "", "figure": "" }, { "id": "24614096", "name": "瓜瓤红", "tra_name": "瓜瓤紅", "color_series": "red", "pinyin": "guā ráng hóng", "font_color": "dark", "is_bright": true, "rgb": [ 246, 140, 96 ], "hex": "#F68C60", "cmyk": [ 0, 58, 61, 0 ], "desc": "", "figure": "" }, { "id": "24911461", "name": "芙蓉红", "tra_name": "芙蓉紅", "color_series": "red", "pinyin": "fú róng hóng", "font_color": "dark", "is_bright": true, "rgb": [ 249, 114, 61 ], "hex": "#F9723D", "cmyk": [ 0, 67, 74, 0 ], "desc": "", "figure": "" }, { "id": "2509325", "name": "莓酱红", "tra_name": "莓醬紅", "color_series": "red", "pinyin": "méi jiàng hóng", "font_color": "dark", "is_bright": true, "rgb": [ 250, 93, 25 ], "hex": "#FA5D19", "cmyk": [ 0, 74, 85, 0 ], "desc": "", "figure": "" }, { "id": "23812885", "name": "法螺红", "tra_name": "法螺紅", "color_series": "red", "pinyin": "fǎ luó hóng", "font_color": "dark", "is_bright": true, "rgb": [ 238, 128, 85 ], "hex": "#EE8055", "cmyk": [ 0, 62, 66, 0 ], "desc": "", "figure": "" }, { "id": "2077219", "name": "落霞红", "tra_name": "落霞紅", "color_series": "red", "pinyin": "luò xiá hóng", "font_color": "dark", "is_bright": true, "rgb": [ 207, 72, 19 ], "hex": "#CF4813", "cmyk": [ 4, 82, 99, 0 ], "desc": "", "figure": "" }, { "id": "1777540", "name": "蟹蝥红", "tra_name": "蟹蝥紅", "color_series": "red", "pinyin": "xiè máo hóng", "font_color": "dark", "is_bright": true, "rgb": [ 177, 75, 40 ], "hex": "#B14B28", "cmyk": [ 18, 80, 92, 7 ], "desc": "", "figure": "" }, { "id": "1344832", "name": "火岩棕", "tra_name": "火岩棕", "color_series": "red", "pinyin": "huǒ yán zōng", "font_color": "dark", "is_bright": true, "rgb": [ 134, 48, 32 ], "hex": "#863020", "cmyk": [ 27, 91, 95, 28 ], "desc": "", "figure": "" }, { "id": "1343823", "name": "赭石", "tra_name": "赭石", "color_series": "red", "pinyin": "zhě shí", "font_color": "dark", "is_bright": true, "rgb": [ 134, 38, 23 ], "hex": "#862617", "cmyk": [ 27, 96, 100, 27 ], "desc": "", "figure": "" }, { "id": "893832", "name": "暗驼棕", "tra_name": "暗駝棕", "color_series": "red", "pinyin": "àn tuó zōng", "font_color": "bright", "is_bright": false, "rgb": [ 89, 38, 32 ], "hex": "#592620", "cmyk": [ 36, 90, 82, 56 ], "desc": "", "figure": "" }, { "id": "903127", "name": "酱棕", "tra_name": "醬棕", "color_series": "red", "pinyin": "jiàng zōng", "font_color": "bright", "is_bright": false, "rgb": [ 90, 31, 27 ], "hex": "#5A1F1B", "cmyk": [ 35, 96, 88, 55 ], "desc": "", "figure": "" }, { "id": "923025", "name": "栗棕", "tra_name": "慄棕", "color_series": "red", "pinyin": "lì zōng", "font_color": "bright", "is_bright": false, "rgb": [ 92, 30, 25 ], "hex": "#5C1E19", "cmyk": [ 34, 98, 91, 53 ], "desc": "", "figure": "" }, { "id": "241118102", "name": "谷鞘红", "tra_name": "谷鞘紅", "color_series": "red", "pinyin": "gǔ qiào hóng", "font_color": "dark", "is_bright": true, "rgb": [ 241, 118, 102 ], "hex": "#F17666", "cmyk": [ 0, 67, 55, 0 ], "desc": "", "figure": "" }, { "id": "2418666", "name": "苹果红", "tra_name": "蘋果紅", "color_series": "red", "pinyin": "píng guǒ hóng", "font_color": "dark", "is_bright": true, "rgb": [ 241, 86, 66 ], "hex": "#F15642", "cmyk": [ 0, 77, 69, 0 ], "desc": "", "figure": "" }, { "id": "2455728", "name": "铁水红", "tra_name": "鐵水紅", "color_series": "red", "pinyin": "tiě shuǐ hóng", "font_color": "dark", "is_bright": true, "rgb": [ 245, 57, 28 ], "hex": "#F5391C", "cmyk": [ 0, 84, 82, 0 ], "desc": "", "figure": "" }, { "id": "2429071", "name": "桂红", "tra_name": "桂紅", "color_series": "red", "pinyin": "guì hóng", "font_color": "dark", "is_bright": true, "rgb": [ 242, 90, 71 ], "hex": "#F25A47", "cmyk": [ 0, 76, 67, 0 ], "desc": "", "figure": "" }, { "id": "2435931", "name": "极光红", "tra_name": "極光紅", "color_series": "red", "pinyin": "jí guāng hóng", "font_color": "dark", "is_bright": true, "rgb": [ 243, 59, 31 ], "hex": "#F33B1F", "cmyk": [ 0, 84, 82, 0 ], "desc": "", "figure": "" }, { "id": "241151144", "name": "舌红", "tra_name": "舌紅", "color_series": "red", "pinyin": "shé hóng", "font_color": "dark", "is_bright": true, "rgb": [ 241, 151, 144 ], "hex": "#F19790", "cmyk": [ 0, 53, 36, 0 ], "desc": "", "figure": "" }, { "id": "2409070", "name": "曲红", "tra_name": "曲紅", "color_series": "red", "pinyin": "qū hóng", "font_color": "dark", "is_bright": true, "rgb": [ 240, 90, 70 ], "hex": "#F05A46", "cmyk": [ 0, 76, 68, 0 ], "desc": "", "figure": "" }, { "id": "2426235", "name": "红汞红", "tra_name": "紅汞紅", "color_series": "red", "pinyin": "hóng gǒng hóng", "font_color": "dark", "is_bright": true, "rgb": [ 242, 62, 35 ], "hex": "#F23E23", "cmyk": [ 0, 83, 81, 0 ], "desc": "", "figure": "" }, { "id": "242202201", "name": "淡绯", "tra_name": "淡緋", "color_series": "red", "pinyin": "dàn fēi", "font_color": "dark", "is_bright": true, "rgb": [ 242, 202, 201 ], "hex": "#F2CAC9", "cmyk": [ 0, 29, 16, 0 ], "desc": "", "figure": "" }, { "id": "239175173", "name": "无花果红", "tra_name": "無花果紅", "color_series": "red", "pinyin": "wú huā guǒ hóng", "font_color": "dark", "is_bright": true, "rgb": [ 239, 175, 173 ], "hex": "#EFAFAD", "cmyk": [ 0, 43, 24, 0 ], "desc": "", "figure": "" }, { "id": "241144140", "name": "榴子红", "tra_name": "榴子紅", "color_series": "red", "pinyin": "liú zi hóng", "font_color": "dark", "is_bright": true, "rgb": [ 241, 144, 140 ], "hex": "#F1908C", "cmyk": [ 0, 57, 36, 0 ], "desc": "", "figure": "" }, { "id": "2406336", "name": "胭脂红", "tra_name": "胭脂紅", "color_series": "red", "pinyin": "yān zhī hóng", "font_color": "dark", "is_bright": true, "rgb": [ 240, 63, 36 ], "hex": "#F03F24", "cmyk": [ 0, 83, 81, 0 ], "desc": "", "figure": "" }, { "id": "240161168", "name": "合欢红", "tra_name": "合歡紅", "color_series": "red", "pinyin": "hé huān hóng", "font_color": "dark", "is_bright": true, "rgb": [ 240, 161, 168 ], "hex": "#F0A1A8", "cmyk": [ 0, 50, 23, 0 ], "desc": "", "figure": "" }, { "id": "241147156", "name": "春梅红", "tra_name": "春梅紅", "color_series": "red", "pinyin": "chūn méi hóng", "font_color": "dark", "is_bright": true, "rgb": [ 241, 147, 156 ], "hex": "#F1939C", "cmyk": [ 0, 56, 27, 0 ], "desc": "", "figure": "" }, { "id": "240124130", "name": "香叶红", "tra_name": "香葉紅", "color_series": "red", "pinyin": "xiāng yè hóng", "font_color": "dark", "is_bright": true, "rgb": [ 240, 124, 130 ], "hex": "#F07C82", "cmyk": [ 0, 65, 38, 0 ], "desc": "", "figure": "" }, { "id": "2407458", "name": "珊瑚红", "tra_name": "珊瑚紅", "color_series": "red", "pinyin": "shān hú hóng", "font_color": "dark", "is_bright": true, "rgb": [ 240, 74, 58 ], "hex": "#F04A3A", "cmyk": [ 0, 80, 72, 0 ], "desc": "", "figure": "" }, { "id": "2416034", "name": "萝卜红", "tra_name": "蘿蔔紅", "color_series": "red", "pinyin": "luó bo hóng", "font_color": "dark", "is_bright": true, "rgb": [ 241, 60, 34 ], "hex": "#F13C22", "cmyk": [ 0, 84, 82, 0 ], "desc": "", "figure": "" }, { "id": "231124142", "name": "淡茜红", "tra_name": "淡茜紅", "color_series": "red", "pinyin": "dàn qiàn hóng", "font_color": "dark", "is_bright": true, "rgb": [ 231, 124, 142 ], "hex": "#E77C8E", "cmyk": [ 0, 65, 29, 0 ], "desc": "", "figure": "" }, { "id": "23790101", "name": "艳红", "tra_name": "艷紅", "color_series": "red", "pinyin": "yàn hóng", "font_color": "dark", "is_bright": true, "rgb": [ 237, 90, 101 ], "hex": "#ED5A65", "cmyk": [ 0, 77, 49, 0 ], "desc": "", "figure": "" }, { "id": "2377269", "name": "淡菽红", "tra_name": "淡菽紅", "color_series": "red", "pinyin": "dàn shū hóng", "font_color": "dark", "is_bright": true, "rgb": [ 237, 72, 69 ], "hex": "#ED4845", "cmyk": [ 0, 81, 66, 0 ], "desc": "", "figure": "" }, { "id": "2375947", "name": "鱼鳃红", "tra_name": "魚鰓紅", "color_series": "red", "pinyin": "yú sāi hóng", "font_color": "dark", "is_bright": true, "rgb": [ 237, 59, 47 ], "hex": "#ED3B2F", "cmyk": [ 0, 84, 76, 0 ], "desc": "", "figure": "" }, { "id": "2375133", "name": "樱桃红", "tra_name": "櫻桃紅", "color_series": "red", "pinyin": "yīng táo hóng", "font_color": "dark", "is_bright": true, "rgb": [ 237, 51, 33 ], "hex": "#ED3321", "cmyk": [ 0, 86, 82, 0 ], "desc": "", "figure": "" }, { "id": "23872102", "name": "淡蕊香红", "tra_name": "淡蕊香紅", "color_series": "red", "pinyin": "dàn ruǐ xiāng hóng", "font_color": "dark", "is_bright": true, "rgb": [ 238, 72, 102 ], "hex": "#EE4866", "cmyk": [ 0, 82, 44, 0 ], "desc": "", "figure": "" }, { "id": "2387299", "name": "石竹红", "tra_name": "石竹紅", "color_series": "red", "pinyin": "shí zhú hóng", "font_color": "dark", "is_bright": true, "rgb": [ 238, 72, 99 ], "hex": "#EE4863", "cmyk": [ 0, 82, 46, 0 ], "desc": "", "figure": "" }, { "id": "2397193", "name": "草茉莉红", "tra_name": "草茉莉紅", "color_series": "red", "pinyin": "cǎo mò lì hóng", "font_color": "dark", "is_bright": true, "rgb": [ 239, 71, 93 ], "hex": "#EF475D", "cmyk": [ 0, 82, 50, 0 ], "desc": "", "figure": "" }, { "id": "2386377", "name": "茶花红", "tra_name": "茶花紅", "color_series": "red", "pinyin": "chá huā hóng", "font_color": "dark", "is_bright": true, "rgb": [ 238, 63, 77 ], "hex": "#EE3F4D", "cmyk": [ 0, 84, 60, 0 ], "desc": "", "figure": "" }, { "id": "2375151", "name": "枸枢红", "tra_name": "枸樞紅", "color_series": "red", "pinyin": "gǒu shū hóng", "font_color": "dark", "is_bright": true, "rgb": [ 237, 51, 51 ], "hex": "#ED3333", "cmyk": [ 0, 86, 74, 0 ], "desc": "", "figure": "" }, { "id": "2364336", "name": "秋海棠红", "tra_name": "秋海棠紅", "color_series": "red", "pinyin": "qiū hǎi táng hóng", "font_color": "dark", "is_bright": true, "rgb": [ 236, 43, 36 ], "hex": "#EC2B24", "cmyk": [ 0, 88, 81, 0 ], "desc": "", "figure": "" }, { "id": "2353826", "name": "丽春红", "tra_name": "麗春紅", "color_series": "red", "pinyin": "lì chūn hóng", "font_color": "dark", "is_bright": true, "rgb": [ 235, 38, 26 ], "hex": "#EB261A", "cmyk": [ 0, 89, 84, 0 ], "desc": "", "figure": "" }, { "id": "2224224", "name": "夕阳红", "tra_name": "夕陽紅", "color_series": "red", "pinyin": "xī yáng hóng", "font_color": "dark", "is_bright": true, "rgb": [ 222, 42, 24 ], "hex": "#DE2A18", "cmyk": [ 0, 90, 90, 0 ], "desc": "", "figure": "" }, { "id": "2123723", "name": "鹤顶红", "tra_name": "鶴頂紅", "color_series": "red", "pinyin": "hè dǐng hóng", "font_color": "dark", "is_bright": true, "rgb": [ 212, 37, 23 ], "hex": "#D42517", "cmyk": [ 0, 92, 95, 0 ], "desc": "", "figure": "" }, { "id": "1715547", "name": "鹅血石红", "tra_name": "鵝血石紅", "color_series": "red", "pinyin": "é xuè shí hóng", "font_color": "dark", "is_bright": true, "rgb": [ 171, 55, 47 ], "hex": "#AB372F", "cmyk": [ 19, 89, 85, 9 ], "desc": "", "figure": "" }, { "id": "1723124", "name": "覆盆子红", "tra_name": "覆盆子紅", "color_series": "red", "pinyin": "fù pén zi hóng", "font_color": "dark", "is_bright": true, "rgb": [ 172, 31, 24 ], "hex": "#AC1F18", "cmyk": [ 17, 98, 100, 8 ], "desc": "", "figure": "" }, { "id": "238162164", "name": "牡丹粉红", "tra_name": "牡丹粉紅", "color_series": "red", "pinyin": "mǔ dān fěn hóng", "font_color": "dark", "is_bright": true, "rgb": [ 238, 162, 164 ], "hex": "#EEA2A4", "cmyk": [ 0, 49, 27, 0 ], "desc": "", "figure": "" }, { "id": "23785106", "name": "山茶红", "tra_name": "山茶紅", "color_series": "red", "pinyin": "shān chá hóng", "font_color": "dark", "is_bright": true, "rgb": [ 237, 85, 106 ], "hex": "#ED556A", "cmyk": [ 0, 78, 44, 0 ], "desc": "", "figure": "" }, { "id": "2405582", "name": "海棠红", "tra_name": "海棠紅", "color_series": "red", "pinyin": "hǎi táng hóng", "font_color": "dark", "is_bright": true, "rgb": [ 240, 55, 82 ], "hex": "#F03752", "cmyk": [ 0, 86, 55, 0 ], "desc": "", "figure": "" }, { "id": "1927281", "name": "玉红", "tra_name": "玉紅", "color_series": "red", "pinyin": "yù hóng", "font_color": "dark", "is_bright": true, "rgb": [ 192, 72, 81 ], "hex": "#C04851", "cmyk": [ 13, 83, 62, 3 ], "desc": "", "figure": "" }, { "id": "1924456", "name": "高粱红", "tra_name": "高粱紅", "color_series": "red", "pinyin": "gāo liáng hóng", "font_color": "dark", "is_bright": true, "rgb": [ 192, 44, 56 ], "hex": "#C02C38", "cmyk": [ 11, 93, 77, 2 ], "desc": "", "figure": "" }, { "id": "1678390", "name": "满江红", "tra_name": "滿江紅", "color_series": "red", "pinyin": "mǎn jiāng hóng", "font_color": "dark", "is_bright": true, "rgb": [ 167, 83, 90 ], "hex": "#A7535A", "cmyk": [ 22, 76, 54, 12 ], "desc": "", "figure": "" }, { "id": "1242435", "name": "枣红", "tra_name": "棗紅", "color_series": "red", "pinyin": "zǎo hóng", "font_color": "bright", "is_bright": false, "rgb": [ 124, 24, 35 ], "hex": "#7C1823", "cmyk": [ 28, 100, 86, 33 ], "desc": "", "figure": "" }, { "id": "2383970", "name": "淡曙红", "tra_name": "淡曙紅", "color_series": "red", "pinyin": "dàn shǔ hóng", "font_color": "dark", "is_bright": true, "rgb": [ 238, 39, 70 ], "hex": "#EE2746", "cmyk": [ 0, 89, 62, 0 ], "desc": "", "figure": "" }, { "id": "2222849", "name": "唐菖蒲红", "tra_name": "唐菖蒲紅", "color_series": "red", "pinyin": "táng chāng pú hóng", "font_color": "dark", "is_bright": true, "rgb": [ 222, 28, 49 ], "hex": "#DE1C31", "cmyk": [ 0, 93, 76, 0 ], "desc": "", "figure": "" }, { "id": "2092645", "name": "鹅冠红", "tra_name": "鵝冠紅", "color_series": "red", "pinyin": "é guān hóng", "font_color": "dark", "is_bright": true, "rgb": [ 209, 26, 45 ], "hex": "#D11A2D", "cmyk": [ 1, 95, 82, 0 ], "desc": "", "figure": "" }, { "id": "19690101", "name": "莓红", "tra_name": "莓紅", "color_series": "red", "pinyin": "méi hóng", "font_color": "dark", "is_bright": true, "rgb": [ 196, 90, 101 ], "hex": "#C45A65", "cmyk": [ 13, 76, 50, 2 ], "desc": "", "figure": "" }, { "id": "1943148", "name": "枫叶红", "tra_name": "楓葉紅", "color_series": "red", "pinyin": "fēng yè hóng", "font_color": "dark", "is_bright": true, "rgb": [ 194, 31, 48 ], "hex": "#C21F30", "cmyk": [ 10, 96, 82, 2 ], "desc": "", "figure": "" }, { "id": "1662741", "name": "苋菜红", "tra_name": "莧菜紅", "color_series": "red", "pinyin": "xiàn cài hóng", "font_color": "dark", "is_bright": true, "rgb": [ 166, 27, 41 ], "hex": "#A61B29", "cmyk": [ 19, 99, 86, 11 ], "desc": "", "figure": "" }, { "id": "1377884", "name": "烟红", "tra_name": "煙紅", "color_series": "red", "pinyin": "yān hóng", "font_color": "dark", "is_bright": true, "rgb": [ 137, 78, 84 ], "hex": "#894E54", "cmyk": [ 29, 73, 51, 28 ], "desc": "", "figure": "" }, { "id": "1303243", "name": "暗紫苑红", "tra_name": "暗紫苑紅", "color_series": "red", "pinyin": "àn zǐ yuàn hóng", "font_color": "dark", "is_bright": true, "rgb": [ 130, 32, 43 ], "hex": "#82202B", "cmyk": [ 27, 98, 79, 30 ], "desc": "", "figure": "" }, { "id": "1301731", "name": "殷红", "tra_name": "殷紅", "color_series": "red", "pinyin": "yān hóng", "font_color": "dark", "is_bright": true, "rgb": [ 130, 17, 31 ], "hex": "#82111F", "cmyk": [ 27, 100, 90, 29 ], "desc": "", "figure": "" }, { "id": "236118150", "name": "淡绛红", "tra_name": "淡絳紅", "color_series": "red", "pinyin": "dàn jiàng hóng", "font_color": "dark", "is_bright": true, "rgb": [ 236, 118, 150 ], "hex": "#EC7696", "cmyk": [ 0, 68, 21, 0 ], "desc": "", "figure": "" }, { "id": "23952115", "name": "品红", "tra_name": "品紅", "color_series": "red", "pinyin": "pǐn hóng", "font_color": "dark", "is_bright": true, "rgb": [ 239, 52, 115 ], "hex": "#EF3473", "cmyk": [ 0, 86, 30, 0 ], "desc": "", "figure": "" }, { "id": "234114147", "name": "凤仙花红", "tra_name": "鳳仙花紅", "color_series": "red", "pinyin": "fèng xiān huā hóng", "font_color": "dark", "is_bright": true, "rgb": [ 234, 114, 147 ], "hex": "#EA7293", "cmyk": [ 0, 69, 22, 0 ], "desc": "", "figure": "" }, { "id": "236155173", "name": "粉团花红", "tra_name": "粉團花紅", "color_series": "red", "pinyin": "fěn tuán huā hóng", "font_color": "dark", "is_bright": true, "rgb": [ 236, 155, 173 ], "hex": "#EC9BAD", "cmyk": [ 0, 52, 18, 0 ], "desc": "", "figure": "" }, { "id": "23580126", "name": "夹竹桃红", "tra_name": "夾竹桃紅", "color_series": "red", "pinyin": "jiā zhú táo hóng", "font_color": "dark", "is_bright": true, "rgb": [ 235, 80, 126 ], "hex": "#EB507E", "cmyk": [ 0, 80, 28, 0 ], "desc": "", "figure": "" }, { "id": "23747106", "name": "榲桲舡", "tra_name": "榲桲舡", "color_series": "red", "pinyin": "wēn po chuán", "font_color": "dark", "is_bright": true, "rgb": [ 237, 47, 106 ], "hex": "#ED2F6A", "cmyk": [ 0, 88, 36, 0 ], "desc": "", "figure": "" }, { "id": "238184195", "name": "姜红", "tra_name": "薑紅", "color_series": "red", "pinyin": "jiāng hóng", "font_color": "dark", "is_bright": true, "rgb": [ 238, 184, 195 ], "hex": "#EEB8C3", "cmyk": [ 0, 39, 14, 0 ], "desc": "", "figure": "" }, { "id": "23481127", "name": "莲瓣红", "tra_name": "蓮瓣紅", "color_series": "red", "pinyin": "lián bàn hóng", "font_color": "dark", "is_bright": true, "rgb": [ 234, 81, 127 ], "hex": "#EA517F", "cmyk": [ 0, 80, 27, 0 ], "desc": "", "figure": "" }, { "id": "241196205", "name": "水红", "tra_name": "水紅", "color_series": "red", "pinyin": "shuǐ hóng", "font_color": "dark", "is_bright": true, "rgb": [ 241, 196, 205 ], "hex": "#F1C4CD", "cmyk": [ 0, 33, 11, 0 ], "desc": "", "figure": "" }, { "id": "236138164", "name": "报春红", "tra_name": "報春紅", "color_series": "red", "pinyin": "bào chūn hóng", "font_color": "dark", "is_bright": true, "rgb": [ 236, 138, 164 ], "hex": "#EC8AA4", "cmyk": [ 0, 60, 18, 0 ], "desc": "", "figure": "" }, { "id": "20687119", "name": "月季红", "tra_name": "月季紅", "color_series": "red", "pinyin": "yuè jì hóng", "font_color": "dark", "is_bright": true, "rgb": [ 206, 87, 109 ], "hex": "#CE5777", "cmyk": [ 8, 78, 35, 1 ], "desc": "", "figure": "" }, { "id": "237157178", "name": "豇豆红", "tra_name": "豇豆紅", "color_series": "red", "pinyin": "jiāng dòu hóng", "font_color": "dark", "is_bright": true, "rgb": [ 237, 157, 178 ], "hex": "#ED9DB2", "cmyk": [ 0, 52, 15, 0 ], "desc": "", "figure": "" }, { "id": "239130160", "name": "霞光红", "tra_name": "霞光紅", "color_series": "red", "pinyin": "xiá guāng hóng", "font_color": "dark", "is_bright": true, "rgb": [ 239, 130, 160 ], "hex": "#EF82A0", "cmyk": [ 0, 63, 18, 0 ], "desc": "", "figure": "" }, { "id": "23560112", "name": "松叶牡丹红", "tra_name": "松葉牡丹紅", "color_series": "red", "pinyin": "sōng yè mǔ dān hóng", "font_color": "dark", "is_bright": true, "rgb": [ 235, 60, 112 ], "hex": "#EB3C70", "cmyk": [ 0, 85, 33, 0 ], "desc": "", "figure": "" }, { "id": "23644100", "name": "喜蛋红", "tra_name": "喜蛋紅", "color_series": "red", "pinyin": "xǐ dàn hóng", "font_color": "dark", "is_bright": true, "rgb": [ 236, 44, 100 ], "hex": "#EC2C64", "cmyk": [ 0, 88, 40, 0 ], "desc": "", "figure": "" }, { "id": "227180184", "name": "鼠鼻红", "tra_name": "鼠鼻紅", "color_series": "red", "pinyin": "shǔ bí hóng", "font_color": "dark", "is_bright": true, "rgb": [ 227, 180, 184 ], "hex": "#E3B4B8", "cmyk": [ 5, 38, 20, 0 ], "desc": "", "figure": "" }, { "id": "2042258", "name": "尖晶玉红", "tra_name": "尖晶玉紅", "color_series": "red", "pinyin": "jiān jīng yù hóng", "font_color": "dark", "is_bright": true, "rgb": [ 204, 22, 58 ], "hex": "#CC163A", "cmyk": [ 5, 96, 73, 1 ], "desc": "", "figure": "" }, { "id": "194124136", "name": "山黎豆红", "tra_name": "山黎豆紅", "color_series": "red", "pinyin": "shān lí dòu hóng", "font_color": "dark", "is_bright": true, "rgb": [ 194, 124, 136 ], "hex": "#C27C88", "cmyk": [ 16, 61, 34, 4 ], "desc": "", "figure": "" }, { "id": "1915383", "name": "锦葵红", "tra_name": "錦葵紅", "color_series": "red", "pinyin": "jǐn kuí hóng", "font_color": "dark", "is_bright": true, "rgb": [ 191, 53, 83 ], "hex": "#BF3553", "cmyk": [ 13, 90, 56, 3 ], "desc": "", "figure": "" }, { "id": "451219", "name": "吊钟花红", "tra_name": "吊鐘花紅", "color_series": "red", "pinyin": "diào zhōng huā hóng", "font_color": "bright", "is_bright": false, "rgb": [ 45, 12, 19 ], "hex": "#2D0C13", "cmyk": [ 0, 76, 16, 0 ], "desc": "", "figure": "" }, { "id": "23678138", "name": "兔眼红", "tra_name": "兔眼紅", "color_series": "red", "pinyin": "tù yǎn hóng", "font_color": "dark", "is_bright": true, "rgb": [ 236, 78, 138 ], "hex": "#EC4E8A", "cmyk": [ 0, 81, 18, 0 ], "desc": "", "figure": "" }, { "id": "23844121", "name": "紫荆红", "tra_name": "紫荊紅", "color_series": "red", "pinyin": "zǐ jīng hóng", "font_color": "dark", "is_bright": true, "rgb": [ 238, 44, 121 ], "hex": "#EE2C79", "cmyk": [ 0, 87, 24, 0 ], "desc": "", "figure": "" }, { "id": "981646", "name": "葡萄酒红", "tra_name": "葡萄酒紅", "color_series": "red", "pinyin": "pú táo jiǔ hóng", "font_color": "bright", "is_bright": false, "rgb": [ 98, 16, 46 ], "hex": "#62102E", "cmyk": [ 33, 100, 58, 60 ], "desc": "", "figure": "" }, { "id": "238166183", "name": "晶红", "tra_name": "晶紅", "color_series": "red", "pinyin": "jīng hóng", "font_color": "dark", "is_bright": true, "rgb": [ 238, 166, 183 ], "hex": "#EEA6B7", "cmyk": [ 0, 48, 15, 0 ], "desc": "", "figure": "" }, { "id": "23973139", "name": "扁豆花红", "tra_name": "扁豆花紅", "color_series": "red", "pinyin": "biǎn dòu huā hóng", "font_color": "dark", "is_bright": true, "rgb": [ 239, 73, 139 ], "hex": "#EF498B", "cmyk": [ 0, 82, 16, 0 ], "desc": "", "figure": "" }, { "id": "222120151", "name": "白芨红", "tra_name": "白芨紅", "color_series": "red", "pinyin": "bái jī hóng", "font_color": "dark", "is_bright": true, "rgb": [ 222, 120, 151 ], "hex": "#DE7897", "cmyk": [ 2, 66, 22, 0 ], "desc": "", "figure": "" }, { "id": "22263124", "name": "嫩菱红", "tra_name": "嫩菱紅", "color_series": "red", "pinyin": "nèn líng hóng", "font_color": "dark", "is_bright": true, "rgb": [ 222, 63, 124 ], "hex": "#DE3F7C", "cmyk": [ 0, 85, 24, 0 ], "desc": "", "figure": "" }, { "id": "20960116", "name": "菠根红", "tra_name": "菠根紅", "color_series": "red", "pinyin": "bō gēn hóng", "font_color": "dark", "is_bright": true, "rgb": [ 209, 60, 116 ], "hex": "#D13C74", "cmyk": [ 5, 87, 30, 1 ], "desc": "", "figure": "" }, { "id": "197112139", "name": "酢酱草红", "tra_name": "酢醬草紅", "color_series": "red", "pinyin": "cù jiàng cǎo hóng", "font_color": "dark", "is_bright": true, "rgb": [ 197, 112, 139 ], "hex": "#C5708B", "cmyk": [ 15, 68, 28, 2 ], "desc": "", "figure": "" }, { "id": "235160179", "name": "芍药耕红", "tra_name": "芍藥耕紅", "color_series": "red", "pinyin": "sháo yào gēng hóng", "font_color": "dark", "is_bright": true, "rgb": [ 235, 160, 179 ], "hex": "#EBA0B3", "cmyk": [ 0, 50, 16, 0 ], "desc": "", "figure": "" }, { "id": "23645122", "name": "藏花红", "tra_name": "藏花紅", "color_series": "red", "pinyin": "cáng huā hóng", "font_color": "dark", "is_bright": true, "rgb": [ 236, 45, 122 ], "hex": "#EC2D7A", "cmyk": [ 0, 88, 23, 0 ], "desc": "", "figure": "" }, { "id": "225108150", "name": "初荷红", "tra_name": "初荷紅", "color_series": "red", "pinyin": "chū hé hóng", "font_color": "dark", "is_bright": true, "rgb": [ 225, 108, 150 ], "hex": "#E16C96", "cmyk": [ 0, 71, 18, 0 ], "desc": "", "figure": "" }, { "id": "21086140", "name": "丹紫红", "tra_name": "丹紫紅", "color_series": "red", "pinyin": "dān zǐ hóng", "font_color": "dark", "is_bright": true, "rgb": [ 210, 86, 140 ], "hex": "#D2568C", "cmyk": [ 7, 79, 18, 0 ], "desc": "", "figure": "" }, { "id": "21053125", "name": "玫瑰红", "tra_name": "玫瑰紅", "color_series": "red", "pinyin": "méi guī hóng", "font_color": "dark", "is_bright": true, "rgb": [ 210, 53, 125 ], "hex": "#D2357D", "cmyk": [ 4, 89, 21, 0 ], "desc": "", "figure": "" }, { "id": "210118163", "name": "菱锰红", "tra_name": "菱錳紅", "color_series": "red", "pinyin": "líng měng hóng", "font_color": "dark", "is_bright": true, "rgb": [ 210, 118, 163 ], "hex": "#D276A3", "cmyk": [ 10, 67, 12, 0 ], "desc": "", "figure": "" }, { "id": "20485149", "name": "龙须红", "tra_name": "龍鬚紅", "color_series": "red", "pinyin": "lóng xū hóng", "font_color": "dark", "is_bright": true, "rgb": [ 204, 85, 149 ], "hex": "#CC5595", "cmyk": [ 11, 97, 10, 0 ], "desc": "", "figure": "" }, { "id": "19586145", "name": "电气石红", "tra_name": "電氣石紅", "color_series": "red", "pinyin": "diàn qì shí hóng", "font_color": "dark", "is_bright": true, "rgb": [ 195, 86, 145 ], "hex": "#C35691", "cmyk": [ 16, 79, 14, 1 ], "desc": "", "figure": "" }, { "id": "234192206", "name": "粉凤仙", "tra_name": "粉鳳仙", "color_series": "red", "pinyin": "fěn fèng xiān", "font_color": "dark", "is_bright": true, "rgb": [ 234, 192, 206 ], "hex": "#EAC0CE", "cmyk": [ 0, 18, 12, 8 ], "desc": "", "figure": "" }, { "id": "229184195", "name": "浅粉", "tra_name": "浅粉", "color_series": "red", "pinyin": "qiǎn fěn", "font_color": "dark", "is_bright": true, "rgb": [ 229, 184, 195 ], "hex": "#E5B8C3", "cmyk": [ 0, 20, 15, 10 ], "desc": "", "figure": "" }, { "id": "232175197", "name": "淡粉", "tra_name": "淡粉", "color_series": "red", "pinyin": "dàn fěn", "font_color": "dark", "is_bright": true, "rgb": [ 232, 175, 197 ], "hex": "#E8AFC5", "cmyk": [ 0, 25, 15, 9 ], "desc": "", "figure": "" }, { "id": "225141172", "name": "暗粉", "tra_name": "暗粉", "color_series": "red", "pinyin": "àn fěn", "font_color": "dark", "is_bright": true, "rgb": [ 225, 141, 172 ], "hex": "#E18DAC", "cmyk": [ 0, 37, 24, 12 ], "desc": "", "figure": "" }, { "id": "235127175", "name": "荷花红", "tra_name": "荷花紅", "color_series": "red", "pinyin": "hé huā hóng", "font_color": "dark", "is_bright": true, "rgb": [ 235, 127, 175 ], "hex": "#EB7FAF", "cmyk": [ 0, 46, 26, 8 ], "desc": "", "figure": "" }, { "id": "21184126", "name": "艶粉", "tra_name": "艶粉", "color_series": "red", "pinyin": "yàn fěn", "font_color": "dark", "is_bright": true, "rgb": [ 211, 84, 126 ], "hex": "#D3547E", "cmyk": [ 0, 60, 40, 17 ], "desc": "", "figure": "" }, { "id": "16538100", "name": "鶏冠花红", "tra_name": "鶏冠花紅", "color_series": "red", "pinyin": "jī guān huā hóng", "font_color": "dark", "is_bright": true, "rgb": [ 165, 38, 100 ], "hex": "#A52664", "cmyk": [ 0, 77, 39, 35 ], "desc": "", "figure": "" }, { "id": "16719104", "name": "品红", "tra_name": "品紅", "color_series": "red", "pinyin": "pǐn hóng", "font_color": "dark", "is_bright": true, "rgb": [ 167, 19, 104 ], "hex": "#A71368", "cmyk": [ 0, 89, 38, 35 ], "desc": "", "figure": "" }, { "id": "17480107", "name": "苏木色", "tra_name": "蘇木色", "color_series": "red", "pinyin": "sū mù sè", "font_color": "dark", "is_bright": true, "rgb": [ 174, 80, 107 ], "hex": "#AE506B", "cmyk": [ 0, 54, 39, 32 ], "desc": "", "figure": "" }, { "id": "1515268", "name": "玫瑰红", "tra_name": "玫瑰紅", "color_series": "red", "pinyin": "méi gūi hóng", "font_color": "dark", "is_bright": true, "rgb": [ 151, 52, 68 ], "hex": "#973444", "cmyk": [ 0, 66, 55, 41 ], "desc": "", "figure": "" }, { "id": "1494658", "name": "臙脂", "tra_name": "臙脂", "color_series": "red", "pinyin": "yān zhī", "font_color": "dark", "is_bright": true, "rgb": [ 149, 46, 58 ], "hex": "#952E3A", "cmyk": [ 0, 69, 61, 42 ], "desc": "", "figure": "" }, { "id": "1759483", "name": "辰沙", "tra_name": "辰沙", "color_series": "red", "pinyin": "chén shā", "font_color": "dark", "is_bright": true, "rgb": [ 175, 94, 83 ], "hex": "#AF5E53", "cmyk": [ 0, 46, 53, 31 ], "desc": "", "figure": "" }, { "id": "1707761", "name": "砖红", "tra_name": "磚紅", "color_series": "red", "pinyin": "zhuān hóng", "font_color": "dark", "is_bright": true, "rgb": [ 170, 77, 61 ], "hex": "#AA4D3D", "cmyk": [ 0, 55, 64, 33 ], "desc": "", "figure": "" }, { "id": "1646579", "name": "殷红", "tra_name": "殷紅", "color_series": "red", "pinyin": "yīn hóng", "font_color": "dark", "is_bright": true, "rgb": [ 164, 65, 79 ], "hex": "#A4414F", "cmyk": [ 0, 60, 52, 36 ], "desc": "", "figure": "" }, { "id": "197105120", "name": "银红", "tra_name": "銀紅", "color_series": "red", "pinyin": "yín hóng", "font_color": "dark", "is_bright": true, "rgb": [ 197, 105, 120 ], "hex": "#C56978", "cmyk": [ 0, 47, 39, 23 ], "desc": "", "figure": "" }, { "id": "193120134", "name": "肉红", "tra_name": "肉紅", "color_series": "red", "pinyin": "ròu hóng", "font_color": "dark", "is_bright": true, "rgb": [ 193, 120, 134 ], "hex": "#C17886", "cmyk": [ 0, 38, 31, 24 ], "desc": "", "figure": "" }, { "id": "1958685", "name": "妃红", "tra_name": "妃紅", "color_series": "red", "pinyin": "fēi hóng", "font_color": "dark", "is_bright": true, "rgb": [ 195, 86, 85 ], "hex": "#C35655", "cmyk": [ 0, 56, 56, 24 ], "desc": "", "figure": "" }, { "id": "1965557", "name": "猩红", "tra_name": "猩紅", "color_series": "red", "pinyin": "xīng hóng", "font_color": "dark", "is_bright": true, "rgb": [ 196, 55, 57 ], "hex": "#C43739", "cmyk": [ 0, 72, 71, 23 ], "desc": "", "figure": "" }, { "id": "1606240", "name": "血红", "tra_name": "血紅", "color_series": "red", "pinyin": "xiě hóng", "font_color": "dark", "is_bright": true, "rgb": [ 160, 62, 40 ], "hex": "#A03E28", "cmyk": [ 0, 61, 75, 37 ], "desc": "", "figure": "" }, { "id": "1872851", "name": "月季红", "tra_name": "月季紅", "color_series": "red", "pinyin": "yuè jì hóng", "font_color": "dark", "is_bright": true, "rgb": [ 187, 28, 51 ], "hex": "#BB1C33", "cmyk": [ 0, 85, 73, 27 ], "desc": "", "figure": "" }, { "id": "1793169", "name": "茉莉花红", "tra_name": "茉莉花紅", "color_series": "red", "pinyin": "mò lì huā hóng", "font_color": "dark", "is_bright": true, "rgb": [ 179, 31, 69 ], "hex": "#B31F45", "cmyk": [ 0, 83, 61, 30 ], "desc": "", "figure": "" }, { "id": "1974061", "name": "乌罗松红", "tra_name": "烏羅松紅", "color_series": "red", "pinyin": "wū luó sōng hóng", "font_color": "dark", "is_bright": true, "rgb": [ 197, 40, 61 ], "hex": "#C5283D", "cmyk": [ 0, 80, 69, 23 ], "desc": "", "figure": "" }, { "id": "2095389", "name": "银星海棠", "tra_name": "銀星海棠", "color_series": "red", "pinyin": "yín xīng hǎi táng", "font_color": "dark", "is_bright": true, "rgb": [ 209, 53, 89 ], "hex": "#D13559", "cmyk": [ 0, 75, 57, 18 ], "desc": "", "figure": "" }, { "id": "1885260", "name": "象牙红", "tra_name": "象牙紅", "color_series": "red", "pinyin": "xiàng yá hóng", "font_color": "dark", "is_bright": true, "rgb": [ 188, 52, 60 ], "hex": "#BC343C", "cmyk": [ 0, 72, 68, 26 ], "desc": "", "figure": "" }, { "id": "1478488", "name": "曙红", "tra_name": "曙紅", "color_series": "red", "pinyin": "shù hóng", "font_color": "dark", "is_bright": true, "rgb": [ 147, 84, 88 ], "hex": "#935458", "cmyk": [ 0, 43, 40, 42 ], "desc": "", "figure": "" }, { "id": "184251", "name": "牡丹红", "tra_name": "牡丹紅", "color_series": "red", "pinyin": "mǔ dān hóng", "font_color": "dark", "is_bright": true, "rgb": [ 184, 2, 51 ], "hex": "#B80233", "cmyk": [ 0, 99, 72, 28 ], "desc": "", "figure": "" }, { "id": "2045354", "name": "艶红", "tra_name": "艶紅", "color_series": "red", "pinyin": "yàn hóng", "font_color": "dark", "is_bright": true, "rgb": [ 204, 53, 54 ], "hex": "#CC3536", "cmyk": [ 0, 74, 74, 20 ], "desc": "", "figure": "" }, { "id": "2074147", "name": "蕉红色", "tra_name": "蕉紅色", "color_series": "red", "pinyin": "jiāo hóng sè", "font_color": "dark", "is_bright": true, "rgb": [ 207, 41, 47 ], "hex": "#CF292F", "cmyk": [ 0, 80, 77, 19 ], "desc": "", "figure": "" }, { "id": "2099394", "name": "银朱", "tra_name": "銀朱", "color_series": "red", "pinyin": "yín zhū", "font_color": "dark", "is_bright": true, "rgb": [ 209, 93, 94 ], "hex": "#D15D5E", "cmyk": [ 0, 56, 55, 18 ], "desc": "", "figure": "" }, { "id": "1847572", "name": "朱砂", "tra_name": "硃砂", "color_series": "red", "pinyin": "zhū shā", "font_color": "dark", "is_bright": true, "rgb": [ 184, 75, 72 ], "hex": "#B84B48", "cmyk": [ 0, 59, 61, 28 ], "desc": "", "figure": "" }, { "id": "1988775", "name": "二朱", "tra_name": "二硃", "color_series": "red", "pinyin": "èr zhū", "font_color": "dark", "is_bright": true, "rgb": [ 198, 87, 75 ], "hex": "#C6574B", "cmyk": [ 0, 56, 62, 22 ], "desc": "", "figure": "" }, { "id": "2279262", "name": "朱膘", "tra_name": "硃膘", "color_series": "red", "pinyin": "zhū piǎo", "font_color": "dark", "is_bright": true, "rgb": [ 227, 92, 62 ], "hex": "#E35C3E", "cmyk": [ 0, 59, 73, 11 ], "desc": "", "figure": "" }, { "id": "23510145", "name": "章丹", "tra_name": "章丹", "color_series": "red", "pinyin": "zhāng dān", "font_color": "dark", "is_bright": true, "rgb": [ 235, 101, 45 ], "hex": "#EB652D", "cmyk": [ 0, 57, 81, 8 ], "desc": "", "figure": "" }, { "id": "1967161", "name": "蕃茄红", "tra_name": "蕃茄紅", "color_series": "red", "pinyin": "fán qié hóng", "font_color": "dark", "is_bright": true, "rgb": [ 196, 71, 61 ], "hex": "#C4473D", "cmyk": [ 0, 64, 69, 23 ], "desc": "", "figure": "" }, { "id": "2137568", "name": "榴花红", "tra_name": "榴花紅", "color_series": "red", "pinyin": "líu huā hóng", "font_color": "dark", "is_bright": true, "rgb": [ 213, 75, 68 ], "hex": "#D54B44", "cmyk": [ 0, 65, 68, 16 ], "desc": "", "figure": "" }, { "id": "23712261", "name": "柿子色", "tra_name": "柿子色", "color_series": "red", "pinyin": "shì zǐ sè", "font_color": "dark", "is_bright": true, "rgb": [ 237, 122, 61 ], "hex": "#ED7A3D", "cmyk": [ 0, 49, 74, 7 ], "desc": "", "figure": "" }, { "id": "23110563", "name": "桔红", "tra_name": "桔紅", "color_series": "red", "pinyin": "jié hóng", "font_color": "dark", "is_bright": true, "rgb": [ 231, 105, 63 ], "hex": "#E7693F", "cmyk": [ 0, 55, 73, 9 ], "desc": "", "figure": "" }, { "id": "23311690", "name": "红扇贝色", "tra_name": "紅扇貝色", "color_series": "red", "pinyin": "hóng shàn bèi sè", "font_color": "dark", "is_bright": true, "rgb": [ 233, 116, 90 ], "hex": "#E9745A", "cmyk": [ 0, 50, 61, 9 ], "desc": "", "figure": "" }, { "id": "24814585", "name": "粉橙色", "tra_name": "粉橙色", "color_series": "red", "pinyin": "fěn chéng sè", "font_color": "dark", "is_bright": true, "rgb": [ 248, 145, 85 ], "hex": "#F89155", "cmyk": [ 0, 42, 66, 3 ], "desc": "", "figure": "" }, { "id": "24011768", "name": "金红", "tra_name": "金紅", "color_series": "red", "pinyin": "jīn hóng", "font_color": "dark", "is_bright": true, "rgb": [ 240, 117, 68 ], "hex": "#F07544", "cmyk": [ 0, 51, 72, 6 ], "desc": "", "figure": "" }, { "id": "22811766", "name": "雄精", "tra_name": "雄精", "color_series": "red", "pinyin": "xióng jīng", "font_color": "dark", "is_bright": true, "rgb": [ 228, 117, 66 ], "hex": "#E47542", "cmyk": [ 0, 49, 71, 11 ], "desc": "", "figure": "" }, { "id": "252177170", "name": "十様锦", "tra_name": "十様錦", "color_series": "red", "pinyin": "shí yàng jǐn", "font_color": "dark", "is_bright": true, "rgb": [ 252, 177, 170 ], "hex": "#FCB1AA", "cmyk": [ 0, 30, 33, 1 ], "desc": "", "figure": "" }, { "id": "244169170", "name": "凤仙粉", "tra_name": "鳳仙粉", "color_series": "red", "pinyin": "fèng xiān fěn", "font_color": "dark", "is_bright": true, "rgb": [ 244, 169, 170 ], "hex": "#F4A9AA", "cmyk": [ 0, 31, 30, 4 ], "desc": "", "figure": "" }, { "id": "241199190", "name": "肉粉", "tra_name": "肉粉", "color_series": "red", "pinyin": "ròu fěn", "font_color": "dark", "is_bright": true, "rgb": [ 241, 199, 190 ], "hex": "#F1C7BE", "cmyk": [ 0, 17, 21, 5 ], "desc": "", "figure": "" }, { "id": "1829170", "name": "釉红", "tra_name": "釉紅", "color_series": "red", "pinyin": "yòu hóng", "font_color": "dark", "is_bright": true, "rgb": [ 182, 91, 70 ], "hex": "#B65B46", "cmyk": [ 0, 50, 62, 29 ], "desc": "", "figure": "" }, { "id": "218149131", "name": "蛤蜊粉", "tra_name": "蛤蜊粉", "color_series": "red", "pinyin": "há lí fěn", "font_color": "dark", "is_bright": true, "rgb": [ 218, 149, 131 ], "hex": "#DA9583", "cmyk": [ 0, 32, 40, 15 ], "desc": "", "figure": "" }, { "id": "772525", "name": "锈红", "tra_name": "銹紅", "color_series": "red", "pinyin": "xìu hóng", "font_color": "bright", "is_bright": false, "rgb": [ 77, 25, 25 ], "hex": "#4D1919", "cmyk": [ 0, 68, 68, 70 ], "desc": "", "figure": "" }, { "id": "1698382", "name": "土红", "tra_name": "土紅", "color_series": "red", "pinyin": "tǔ hóng", "font_color": "dark", "is_bright": true, "rgb": [ 169, 83, 82 ], "hex": "#A95352", "cmyk": [ 0, 51, 51, 34 ], "desc": "", "figure": "" }, { "id": "19210773", "name": "玛瑙色", "tra_name": "瑪瑙色", "color_series": "red", "pinyin": "mǎ nǎo sè", "font_color": "dark", "is_bright": true, "rgb": [ 192, 107, 73 ], "hex": "#C06B49", "cmyk": [ 0, 44, 62, 25 ], "desc": "", "figure": "" }, { "id": "19512695", "name": "赭石色", "tra_name": "赭石色", "color_series": "red", "pinyin": "zhě shí sè", "font_color": "dark", "is_bright": true, "rgb": [ 195, 126, 95 ], "hex": "#C37E5F", "cmyk": [ 0, 35, 51, 24 ], "desc": "", "figure": "" }, { "id": "18111188", "name": "赭红", "tra_name": "赭紅", "color_series": "red", "pinyin": "zhě hóng", "font_color": "dark", "is_bright": true, "rgb": [ 181, 111, 88 ], "hex": "#B56F58", "cmyk": [ 0, 39, 51, 29 ], "desc": "", "figure": "" }, { "id": "19313283", "name": "红狐色", "tra_name": "紅狐色", "color_series": "red", "pinyin": "hóng hú sè", "font_color": "dark", "is_bright": true, "rgb": [ 193, 132, 83 ], "hex": "#C18453", "cmyk": [ 0, 32, 57, 24 ], "desc": "", "figure": "" }, { "id": "15512698", "name": "中驼", "tra_name": "中駝", "color_series": "red", "pinyin": "zhōng tuó", "font_color": "dark", "is_bright": true, "rgb": [ 155, 126, 98 ], "hex": "#9B7E62", "cmyk": [ 0, 19, 37, 39 ], "desc": "", "figure": "" }, { "id": "17911573", "name": "树皮色", "tra_name": "樹皮色", "color_series": "red", "pinyin": "shù pí sè", "font_color": "dark", "is_bright": true, "rgb": [ 179, 115, 73 ], "hex": "#B37349", "cmyk": [ 0, 36, 59, 30 ], "desc": "", "figure": "" }, { "id": "18713393", "name": "桂皮色", "tra_name": "桂皮色", "color_series": "red", "pinyin": "gùi pí sè", "font_color": "dark", "is_bright": true, "rgb": [ 187, 133, 93 ], "hex": "#BB855D", "cmyk": [ 0, 29, 50, 27 ], "desc": "", "figure": "" }, { "id": "227181135", "name": "土布色", "tra_name": "土布色", "color_series": "red", "pinyin": "tǔ bù sè", "font_color": "dark", "is_bright": true, "rgb": [ 227, 181, 135 ], "hex": "#E3B587", "cmyk": [ 0, 20, 41, 11 ], "desc": "", "figure": "" }, { "id": "225189162", "name": "米红", "tra_name": "米紅", "color_series": "red", "pinyin": "mǐ hóng", "font_color": "dark", "is_bright": true, "rgb": [ 225, 189, 162 ], "hex": "#E1BDA2", "cmyk": [ 0, 16, 28, 12 ], "desc": "", "figure": "" }, { "id": "215155117", "name": "玛瑙粉", "tra_name": "瑪瑙粉", "color_series": "red", "pinyin": "mǎ nǎo fěn", "font_color": "dark", "is_bright": true, "rgb": [ 215, 155, 117 ], "hex": "#D79B75", "cmyk": [ 0, 28, 46, 16 ], "desc": "", "figure": "" }, { "id": "216173133", "name": "骆驼色", "tra_name": "駱駝色", "color_series": "red", "pinyin": "luò tuó sè", "font_color": "dark", "is_bright": true, "rgb": [ 216, 173, 133 ], "hex": "#D8AD85", "cmyk": [ 0, 20, 38, 15 ], "desc": "", "figure": "" }, { "id": "234205209", "name": "浅血牙", "tra_name": "浅血牙", "color_series": "red", "pinyin": "qiǎn xiě yá", "font_color": "dark", "is_bright": true, "rgb": [ 234, 205, 209 ], "hex": "#EACDD1", "cmyk": [ 0, 12, 11, 8 ], "desc": "", "figure": "" }, { "id": "218197179", "name": "粉棕", "tra_name": "粉棕", "color_series": "red", "pinyin": "fěn zōng", "font_color": "dark", "is_bright": true, "rgb": [ 218, 197, 179 ], "hex": "#DAC5B3", "cmyk": [ 0, 10, 18, 15 ], "desc": "", "figure": "" }, { "id": "210174140", "name": "肉棕", "tra_name": "肉棕", "color_series": "red", "pinyin": "ròu zōng", "font_color": "dark", "is_bright": true, "rgb": [ 210, 174, 140 ], "hex": "#D2AE8C", "cmyk": [ 0, 17, 33, 18 ], "desc": "", "figure": "" }, { "id": "13710880", "name": "珈琲棕", "tra_name": "珈琲棕", "color_series": "red", "pinyin": "jiā bèi zōng", "font_color": "dark", "is_bright": true, "rgb": [ 137, 108, 80 ], "hex": "#896C50", "cmyk": [ 0, 21, 42, 46 ], "desc": "", "figure": "" }, { "id": "1107764", "name": "烟色", "tra_name": "煙色", "color_series": "red", "pinyin": "yān sè", "font_color": "bright", "is_bright": false, "rgb": [ 110, 77, 64 ], "hex": "#6E4D40", "cmyk": [ 0, 30, 42, 57 ], "desc": "", "figure": "" }, { "id": "1329878", "name": "朱古力色", "tra_name": "朱古力色", "color_series": "red", "pinyin": "zhū gǔ lì sè", "font_color": "dark", "is_bright": true, "rgb": [ 132, 98, 78 ], "hex": "#84624E", "cmyk": [ 0, 26, 41, 48 ], "desc": "", "figure": "" }, { "id": "1374863", "name": "枣红", "tra_name": "棗紅", "color_series": "red", "pinyin": "zǎo hóng", "font_color": "dark", "is_bright": true, "rgb": [ 137, 48, 63 ], "hex": "#89303F", "cmyk": [ 0, 65, 54, 46 ], "desc": "", "figure": "" }, { "id": "1247564", "name": "棕红", "tra_name": "棕紅", "color_series": "red", "pinyin": "zōng hóng", "font_color": "bright", "is_bright": false, "rgb": [ 124, 75, 64 ], "hex": "#7C4B40", "cmyk": [ 0, 40, 48, 51 ], "desc": "", "figure": "" }, { "id": "1196156", "name": "深釉红", "tra_name": "深釉紅", "color_series": "red", "pinyin": "shēn yòu hóng", "font_color": "bright", "is_bright": false, "rgb": [ 119, 61, 56 ], "hex": "#773D38", "cmyk": [ 0, 49, 53, 53 ], "desc": "", "figure": "" }, { "id": "1005265", "name": "深烟红", "tra_name": "深煙紅", "color_series": "red", "pinyin": "shēn yān hóng", "font_color": "bright", "is_bright": false, "rgb": [ 100, 52, 65 ], "hex": "#643441", "cmyk": [ 0, 48, 35, 61 ], "desc": "", "figure": "" }, { "id": "1238680", "name": "珈琲色", "tra_name": "珈琲色", "color_series": "red", "pinyin": "jiā bèi sè", "font_color": "bright", "is_bright": false, "rgb": [ 123, 86, 80 ], "hex": "#7B5650", "cmyk": [ 0, 30, 35, 52 ], "desc": "", "figure": "" }, { "id": "1218283", "name": "豆棕", "tra_name": "豆棕", "color_series": "red", "pinyin": "dòu zōng", "font_color": "bright", "is_bright": false, "rgb": [ 121, 82, 83 ], "hex": "#795253", "cmyk": [ 0, 32, 31, 53 ], "desc": "", "figure": "" }, { "id": "1238663", "name": "罗汉果色", "tra_name": "羅漢果色", "color_series": "red", "pinyin": "luó hàn guǒ sè", "font_color": "bright", "is_bright": false, "rgb": [ 123, 86, 63 ], "hex": "#7B563F", "cmyk": [ 0, 30, 49, 52 ], "desc": "", "figure": "" }, { "id": "1118780", "name": "深栗色", "tra_name": "深栗色", "color_series": "red", "pinyin": "shēn lì sè", "font_color": "bright", "is_bright": false, "rgb": [ 111, 87, 80 ], "hex": "#6F5750", "cmyk": [ 0, 22, 28, 56 ], "desc": "", "figure": "" }, { "id": "1148356", "name": "醤色", "tra_name": "醤色", "color_series": "red", "pinyin": "jiàng sè", "font_color": "bright", "is_bright": false, "rgb": [ 114, 83, 56 ], "hex": "#725338", "cmyk": [ 0, 27, 51, 55 ], "desc": "", "figure": "" }, { "id": "857159", "name": "深褐色", "tra_name": "深褐色", "color_series": "red", "pinyin": "shēn hé sè", "font_color": "bright", "is_bright": false, "rgb": [ 85, 71, 59 ], "hex": "#55473B", "cmyk": [ 0, 16, 31, 67 ], "desc": "", "figure": "" }, { "id": "907676", "name": "深烟", "tra_name": "深煙", "color_series": "red", "pinyin": "shēn yān", "font_color": "bright", "is_bright": false, "rgb": [ 90, 76, 76 ], "hex": "#5A4C4C", "cmyk": [ 0, 16, 16, 65 ], "desc": "", "figure": "" }, { "id": "847271", "name": "烟栗色", "tra_name": "煙栗色", "color_series": "red", "pinyin": "yān lì sè", "font_color": "bright", "is_bright": false, "rgb": [ 84, 72, 71 ], "hex": "#544847", "cmyk": [ 0, 14, 15, 67 ], "desc": "", "figure": "" }, { "id": "798385", "name": "红皀", "tra_name": "紅皀", "color_series": "red", "pinyin": "hóng bī", "font_color": "bright", "is_bright": false, "rgb": [ 79, 83, 85 ], "hex": "#4F5355", "cmyk": [ 7, 2, 0, 67 ], "desc": "", "figure": "" }, { "id": "23012242", "name": "橙色", "tra_name": "橙色", "color_series": "red", "pinyin": "chéng sè", "font_color": "dark", "is_bright": true, "rgb": [ 230, 122, 42 ], "hex": "#E67A2A", "cmyk": [ 0, 47, 82, 10 ], "desc": "", "figure": "" }, { "id": "245193155", "name": "蝶粉", "tra_name": "蝶粉", "color_series": "red", "pinyin": "dié fěn", "font_color": "dark", "is_bright": true, "rgb": [ 245, 193, 155 ], "hex": "#F5C19B", "cmyk": [ 0, 21, 37, 4 ], "desc": "", "figure": "" }, { "id": "245206190", "name": "果肉色", "tra_name": "果肉色", "color_series": "red", "pinyin": "guǒ ròu sè", "font_color": "dark", "is_bright": true, "rgb": [ 245, 206, 190 ], "hex": "#F5CEBE", "cmyk": [ 0, 16, 22, 4 ], "desc": "", "figure": "" }, { "id": "188165144", "name": "纸棕", "tra_name": "紙棕", "color_series": "red", "pinyin": "zhǐ zōng", "font_color": "dark", "is_bright": true, "rgb": [ 188, 165, 144 ], "hex": "#BCA590", "cmyk": [ 0, 12, 23, 26 ], "desc": "", "figure": "" }, { "id": "193162153", "name": "奶棕", "tra_name": "奶棕", "color_series": "red", "pinyin": "nǎi zōng", "font_color": "dark", "is_bright": true, "rgb": [ 193, 162, 153 ], "hex": "#C1A299", "cmyk": [ 0, 16, 21, 24 ], "desc": "", "figure": "" }, { "id": "1329051", "name": "赭石", "tra_name": "赭石", "color_series": "red", "pinyin": "zhě shí", "font_color": "dark", "is_bright": true, "rgb": [ 132, 90, 51 ], "hex": "#845A33", "cmyk": [ 0, 32, 61, 48 ], "desc": "", "figure": "" }, { "id": "2557031", "name": "朱砂", "tra_name": "硃砂", "color_series": "red", "pinyin": "zhū shā", "font_color": "dark", "is_bright": true, "rgb": [ 255, 70, 31 ], "hex": "#FF461F", "cmyk": [ 0, 73, 88, 0 ], "desc": "", "figure": "" }, { "id": "24310456", "name": "朱磦", "tra_name": "朱磦", "color_series": "red", "pinyin": "zhū biāo", "font_color": "dark", "is_bright": true, "rgb": [ 243, 104, 56 ], "hex": "#F36838", "cmyk": [ 0, 57, 77, 5 ], "desc": "", "figure": "" }, { "id": "25571119", "name": "洋粉", "tra_name": "洋粉", "color_series": "red", "pinyin": "yáng fěn", "font_color": "dark", "is_bright": true, "rgb": [ 255, 71, 119 ], "hex": "#FF4777", "cmyk": [ 0, 72, 53, 0 ], "desc": "", "figure": "" }, { "id": "190039", "name": "殷红", "tra_name": "殷紅", "color_series": "red", "pinyin": "yān hóng", "font_color": "dark", "is_bright": true, "rgb": [ 190, 0, 39 ], "hex": "#BE0027", "cmyk": [ 0, 100, 79, 25 ], "desc": "", "figure": "" }, { "id": "1913642", "name": "银朱", "tra_name": "銀硃", "color_series": "red", "pinyin": "yín zhū", "font_color": "dark", "is_bright": true, "rgb": [ 191, 36, 42 ], "hex": "#BF242A", "cmyk": [ 0, 81, 78, 25 ], "desc": "", "figure": "" } ], "purple": [ { "id": "1406786", "name": "绛紫", "tra_name": "絳紫", "color_series": "purple", "pinyin": "jiàng zǐ", "font_color": "dark", "is_bright": true, "rgb": [ 140, 67, 86 ], "hex": "#8C4356", "cmyk": [ 0, 52, 39, 45 ], "desc": "", "figure": "" }, { "id": "8766102", "name": "黛紫", "tra_name": "黛紫", "color_series": "purple", "pinyin": "dài zǐ", "font_color": "bright", "is_bright": false, "rgb": [ 87, 66, 102 ], "hex": "#574266", "cmyk": [ 15, 35, 0, 60 ], "desc": "", "figure": "" }, { "id": "14175187", "name": "紫色", "tra_name": "紫色", "color_series": "purple", "pinyin": "zǐ sè", "font_color": "dark", "is_bright": true, "rgb": [ 141, 75, 187 ], "hex": "#8D4BBB", "cmyk": [ 25, 60, 0, 27 ], "desc": "", "figure": "" }, { "id": "1298499", "name": "紫酱", "tra_name": "紫醬", "color_series": "purple", "pinyin": "zǐ jiàng", "font_color": "dark", "is_bright": true, "rgb": [ 129, 84, 99 ], "hex": "#815463", "cmyk": [ 0, 35, 23, 49 ], "desc": "", "figure": "" }, { "id": "12984118", "name": "酱紫", "tra_name": "醬紫", "color_series": "purple", "pinyin": "jiàng zǐ", "font_color": "dark", "is_bright": true, "rgb": [ 129, 84, 118 ], "hex": "#815476", "cmyk": [ 0, 35, 9, 49 ], "desc": "", "figure": "" }, { "id": "763427", "name": "紫檀", "tra_name": "紫檀", "color_series": "purple", "pinyin": "zǐ tán", "font_color": "bright", "is_bright": false, "rgb": [ 76, 34, 27 ], "hex": "#4C221B", "cmyk": [ 0, 55, 64, 70 ], "desc": "", "figure": "" }, { "id": "86079", "name": "紫棠", "tra_name": "紫棠", "color_series": "purple", "pinyin": "zǐ táng", "font_color": "bright", "is_bright": false, "rgb": [ 86, 0, 79 ], "hex": "#56004F", "cmyk": [ 0, 100, 8, 66 ], "desc": "", "figure": "" }, { "id": "204164227", "name": "丁香色", "tra_name": "丁香色", "color_series": "purple", "pinyin": "dīng xiāng sè", "font_color": "dark", "is_bright": true, "rgb": [ 204, 164, 227 ], "hex": "#CCA4E3", "cmyk": [ 10, 28, 0, 11 ], "desc": "", "figure": "" }, { "id": "11494130", "name": "乌色", "tra_name": "烏色", "color_series": "purple", "pinyin": "wū sè", "font_color": "dark", "is_bright": true, "rgb": [ 114, 94, 130 ], "hex": "#725E82", "cmyk": [ 12, 28, 0, 49 ], "desc": "", "figure": "" }, { "id": "574765", "name": "乌黑", "tra_name": "烏黑", "color_series": "purple", "pinyin": "wū hēi", "font_color": "bright", "is_bright": false, "rgb": [ 57, 47, 65 ], "hex": "#392F41", "cmyk": [ 12, 28, 0, 75 ], "desc": "", "figure": "" }, { "id": "934949", "name": "貂紫", "tra_name": "貂紫", "color_series": "purple", "pinyin": "diāo zǐ", "font_color": "bright", "is_bright": false, "rgb": [ 93, 49, 49 ], "hex": "#5D3131", "cmyk": [ 36, 81, 64, 54 ], "desc": "", "figure": "" }, { "id": "923435", "name": "暗玉紫", "tra_name": "暗玉紫", "color_series": "purple", "pinyin": "àn yù zǐ", "font_color": "bright", "is_bright": false, "rgb": [ 92, 34, 35 ], "hex": "#5C2223", "cmyk": [ 35, 94, 77, 53 ], "desc": "", "figure": "" }, { "id": "902527", "name": "栗紫", "tra_name": "慄紫", "color_series": "purple", "pinyin": "lì zǐ", "font_color": "bright", "is_bright": false, "rgb": [ 90, 25, 27 ], "hex": "#5A191B", "cmyk": [ 35, 100, 85, 54 ], "desc": "", "figure": "" }, { "id": "901822", "name": "葡萄酱紫", "tra_name": "葡萄醬紫", "color_series": "purple", "pinyin": "pú táo jiàng zǐ", "font_color": "bright", "is_bright": false, "rgb": [ 90, 18, 22 ], "hex": "#5A1216", "cmyk": [ 35, 100, 80, 54 ], "desc": "", "figure": "" }, { "id": "763136", "name": "葡萄紫", "tra_name": "葡萄紫", "color_series": "purple", "pinyin": "pú táo zǐ", "font_color": "bright", "is_bright": false, "rgb": [ 76, 31, 36 ], "hex": "#4C1F24", "cmyk": [ 39, 92, 67, 64 ], "desc": "", "figure": "" }, { "id": "771624", "name": "酱紫", "tra_name": "醬紫", "color_series": "purple", "pinyin": "jiàng zǐ", "font_color": "bright", "is_bright": false, "rgb": [ 77, 16, 24 ], "hex": "#4D1018", "cmyk": [ 39, 100, 79, 63 ], "desc": "", "figure": "" }, { "id": "843036", "name": "猪肝紫", "tra_name": "豬肝紫", "color_series": "purple", "pinyin": "zhū gān zǐ", "font_color": "bright", "is_bright": false, "rgb": [ 84, 30, 36 ], "hex": "#541E24", "cmyk": [ 36, 95, 71, 59 ], "desc": "", "figure": "" }, { "id": "801022", "name": "金鱼紫", "tra_name": "金魚紫", "color_series": "purple", "pinyin": "jīn yú zǐ", "font_color": "bright", "is_bright": false, "rgb": [ 80, 10, 22 ], "hex": "#500A16", "cmyk": [ 38, 100, 81, 61 ], "desc": "", "figure": "" }, { "id": "982236", "name": "甘蔗紫", "tra_name": "甘蔗紫", "color_series": "purple", "pinyin": "gān zhè zǐ", "font_color": "bright", "is_bright": false, "rgb": [ 98, 22, 36 ], "hex": "#621624", "cmyk": [ 33, 100, 75, 49 ], "desc": "", "figure": "" }, { "id": "99728", "name": "石竹紫", "tra_name": "石竹紫", "color_series": "purple", "pinyin": "shí zhú zǐ", "font_color": "bright", "is_bright": false, "rgb": [ 99, 7, 28 ], "hex": "#63071C", "cmyk": [ 32, 100, 84, 49 ], "desc": "", "figure": "" }, { "id": "482228", "name": "卵石紫", "tra_name": "卵石紫", "color_series": "purple", "pinyin": "luǎn shí zǐ", "font_color": "bright", "is_bright": false, "rgb": [ 48, 22, 28 ], "hex": "#30161C", "cmyk": [ 52, 88, 58, 81 ], "desc": "", "figure": "" }, { "id": "431822", "name": "李紫", "tra_name": "李紫", "color_series": "purple", "pinyin": "lǐ zǐ", "font_color": "bright", "is_bright": false, "rgb": [ 43, 18, 22 ], "hex": "#2B1216", "cmyk": [ 56, 88, 62, 84 ], "desc": "", "figure": "" }, { "id": "1492872", "name": "菜头紫", "tra_name": "菜頭紫", "color_series": "purple", "pinyin": "cài tóu zǐ", "font_color": "dark", "is_bright": true, "rgb": [ 149, 28, 72 ], "hex": "#951C48", "cmyk": [ 24, 99, 52, 19 ], "desc": "", "figure": "" }, { "id": "982952", "name": "鹞冠紫", "tra_name": "鷂冠紫", "color_series": "purple", "pinyin": "yào guān zǐ", "font_color": "bright", "is_bright": false, "rgb": [ 98, 29, 52 ], "hex": "#621D34", "cmyk": [ 34, 97, 54, 50 ], "desc": "", "figure": "" }, { "id": "563341", "name": "磨石紫", "tra_name": "磨石紫", "color_series": "purple", "pinyin": "mó shí zǐ", "font_color": "bright", "is_bright": false, "rgb": [ 56, 33, 41 ], "hex": "#382129", "cmyk": [ 53, 81, 50, 74 ], "desc": "", "figure": "" }, { "id": "562536", "name": "檀紫", "tra_name": "檀紫", "color_series": "purple", "pinyin": "tán zǐ", "font_color": "bright", "is_bright": false, "rgb": [ 56, 25, 36 ], "hex": "#381924", "cmyk": [ 48, 90, 50, 76 ], "desc": "", "figure": "" }, { "id": "512030", "name": "火鹅紫", "tra_name": "火鵝紫", "color_series": "purple", "pinyin": "huǒ é zǐ", "font_color": "bright", "is_bright": false, "rgb": [ 51, 20, 30 ], "hex": "#33141E", "cmyk": [ 50, 91, 54, 79 ], "desc": "", "figure": "" }, { "id": "491527", "name": "墨紫", "tra_name": "墨紫", "color_series": "purple", "pinyin": "mò zǐ", "font_color": "bright", "is_bright": false, "rgb": [ 49, 15, 27 ], "hex": "#310F1B", "cmyk": [ 53, 92, 55, 81 ], "desc": "", "figure": "" }, { "id": "16869107", "name": "洋葱紫", "tra_name": "洋蔥紫", "color_series": "purple", "pinyin": "yáng cōng zǐ", "font_color": "dark", "is_bright": true, "rgb": [ 168, 69, 107 ], "hex": "#A8456B", "cmyk": [ 22, 83, 34, 11 ], "desc": "", "figure": "" }, { "id": "753047", "name": "海象紫", "tra_name": "海象紫", "color_series": "purple", "pinyin": "hǎi xiàng zǐ", "font_color": "bright", "is_bright": false, "rgb": [ 75, 30, 47 ], "hex": "#4B1E2F", "cmyk": [ 40, 92, 47, 64 ], "desc": "", "figure": "" }, { "id": "702241", "name": "绀紫", "tra_name": "紺紫", "color_series": "purple", "pinyin": "gàn zǐ", "font_color": "bright", "is_bright": false, "rgb": [ 70, 22, 41 ], "hex": "#461629", "cmyk": [ 41, 97, 49, 68 ], "desc": "", "figure": "" }, { "id": "681437", "name": "古铜紫", "tra_name": "古銅紫", "color_series": "purple", "pinyin": "gǔ tóng zǐ", "font_color": "bright", "is_bright": false, "rgb": [ 68, 14, 37 ], "hex": "#440E25", "cmyk": [ 42, 99, 51, 69 ], "desc": "", "figure": "" }, { "id": "233215223", "name": "丁香淡紫", "tra_name": "丁香淡紫", "color_series": "purple", "pinyin": "dīng xiāng dàn zǐ", "font_color": "dark", "is_bright": true, "rgb": [ 233, 215, 223 ], "hex": "#E9D7DF", "cmyk": [ 7, 20, 8, 0 ], "desc": "", "figure": "" }, { "id": "209194211", "name": "淡牵牛紫", "tra_name": "淡牽牛紫", "color_series": "purple", "pinyin": "dàn qiān niú zǐ", "font_color": "dark", "is_bright": true, "rgb": [ 209, 194, 211 ], "hex": "#D1C2D3", "cmyk": [ 19, 27, 9, 0 ], "desc": "", "figure": "" }, { "id": "200173196", "name": "凤信紫", "tra_name": "鳳信紫", "color_series": "purple", "pinyin": "fèng xìn zǐ", "font_color": "dark", "is_bright": true, "rgb": [ 200, 173, 196 ], "hex": "#C8ADC4", "cmyk": [ 21, 37, 12, 0 ], "desc": "", "figure": "" }, { "id": "192142175", "name": "萝兰紫", "tra_name": "蘿蘭紫", "color_series": "purple", "pinyin": "luó lán zǐ", "font_color": "dark", "is_bright": true, "rgb": [ 192, 142, 175 ], "hex": "#C08EAF", "cmyk": [ 23, 53, 14, 1 ], "desc": "", "figure": "" }, { "id": "18647123", "name": "玫瑰紫", "tra_name": "玫瑰紫", "color_series": "purple", "pinyin": "méi guī zǐ", "font_color": "dark", "is_bright": true, "rgb": [ 186, 47, 123 ], "hex": "#BA2F7B", "cmyk": [ 18, 91, 18, 2 ], "desc": "", "figure": "" }, { "id": "128118163", "name": "藤萝紫", "tra_name": "藤蘿紫", "color_series": "purple", "pinyin": "téng luó zǐ", "font_color": "dark", "is_bright": true, "rgb": [ 128, 118, 163 ], "hex": "#8076A3", "cmyk": [ 58, 56, 17, 2 ], "desc": "", "figure": "" }, { "id": "128109158", "name": "槿紫", "tra_name": "槿紫", "color_series": "purple", "pinyin": "jǐn zǐ", "font_color": "dark", "is_bright": true, "rgb": [ 128, 109, 158 ], "hex": "#806D9E", "cmyk": [ 57, 62, 16, 2 ], "desc": "", "figure": "" }, { "id": "12992148", "name": "蕈紫", "tra_name": "蕈紫", "color_series": "purple", "pinyin": "xùn zǐ", "font_color": "dark", "is_bright": true, "rgb": [ 129, 92, 148 ], "hex": "#815C94", "cmyk": [ 56, 72, 15, 1 ], "desc": "", "figure": "" }, { "id": "12960133", "name": "桔梗紫", "tra_name": "桔梗紫", "color_series": "purple", "pinyin": "jié gěng zǐ", "font_color": "dark", "is_bright": true, "rgb": [ 129, 60, 133 ], "hex": "#813C85", "cmyk": [ 54, 89, 12, 1 ], "desc": "", "figure": "" }, { "id": "12622113", "name": "芝兰紫", "tra_name": "芝蘭紫", "color_series": "purple", "pinyin": "zhī lán zǐ", "font_color": "bright", "is_bright": false, "rgb": [ 126, 22, 113 ], "hex": "#7E1671", "cmyk": [ 3, 26, 10, 0 ], "desc": "", "figure": "" }, { "id": "192111152", "name": "樱草紫", "tra_name": "櫻草紫", "color_series": "purple", "pinyin": "yīng cǎo zǐ", "font_color": "dark", "is_bright": true, "rgb": [ 192, 111, 152 ], "hex": "#C06F98", "cmyk": [ 19, 68, 18, 1 ], "desc": "", "figure": "" }, { "id": "15530100", "name": "苋菜紫", "tra_name": "莧菜紫", "color_series": "purple", "pinyin": "xiàn cài zǐ", "font_color": "dark", "is_bright": true, "rgb": [ 155, 30, 100 ], "hex": "#9B1E64", "cmyk": [ 27, 97, 27, 14 ], "desc": "", "figure": "" }, { "id": "224200209", "name": "淡青紫", "tra_name": "淡青紫", "color_series": "purple", "pinyin": "dàn qīng zǐ", "font_color": "dark", "is_bright": true, "rgb": [ 224, 200, 209 ], "hex": "#E0C8D1", "cmyk": [ 10, 27, 11, 0 ], "desc": "", "figure": "" }, { "id": "188132168", "name": "青蛤壳紫", "tra_name": "青蛤殼紫", "color_series": "purple", "pinyin": "qīng há ké zǐ", "font_color": "dark", "is_bright": true, "rgb": [ 188, 132, 168 ], "hex": "#BC84A8", "cmyk": [ 24, 58, 15, 1 ], "desc": "", "figure": "" }, { "id": "173101152", "name": "豆蔻紫", "tra_name": "豆蔻紫", "color_series": "purple", "pinyin": "dòu kòu zǐ", "font_color": "dark", "is_bright": true, "rgb": [ 173, 101, 152 ], "hex": "#AD6598", "cmyk": [ 31, 71, 15, 1 ], "desc": "", "figure": "" }, { "id": "16392143", "name": "扁豆紫", "tra_name": "扁豆紫", "color_series": "purple", "pinyin": "biǎn dòu zǐ", "font_color": "dark", "is_bright": true, "rgb": [ 163, 92, 143 ], "hex": "#A35C8F", "cmyk": [ 35, 75, 18, 2 ], "desc": "", "figure": "" }, { "id": "15254128", "name": "芥花紫", "tra_name": "芥花紫", "color_series": "purple", "pinyin": "jiè huā zǐ", "font_color": "dark", "is_bright": true, "rgb": [ 152, 54, 128 ], "hex": "#983680", "cmyk": [ 39, 91, 15, 3 ], "desc": "", "figure": "" }, { "id": "13766118", "name": "芓紫", "tra_name": "芓紫", "color_series": "purple", "pinyin": "zì zǐ", "font_color": "dark", "is_bright": true, "rgb": [ 137, 66, 118 ], "hex": "#894276", "cmyk": [ 44, 85, 24, 10 ], "desc": "", "figure": "" }, { "id": "12632101", "name": "葛巾紫", "tra_name": "葛巾紫", "color_series": "purple", "pinyin": "gé jīn zǐ", "font_color": "bright", "is_bright": false, "rgb": [ 126, 32, 101 ], "hex": "#7E2065", "cmyk": [ 45, 99, 24, 16 ], "desc": "", "figure": "" }, { "id": "1042382", "name": "牵牛紫", "tra_name": "牽牛紫", "color_series": "purple", "pinyin": "qiān niú zǐ", "font_color": "bright", "is_bright": false, "rgb": [ 104, 23, 82 ], "hex": "#681752", "cmyk": [ 49, 100, 29, 32 ], "desc": "", "figure": "" }, { "id": "784264", "name": "龙睛鱼紫", "tra_name": "龍睛魚紫", "color_series": "purple", "pinyin": "lóng jīng yú zǐ", "font_color": "bright", "is_bright": false, "rgb": [ 78, 42, 64 ], "hex": "#4E2A40", "cmyk": [ 55, 87, 41, 52 ], "desc": "", "figure": "" }, { "id": "652853", "name": "荸荠紫", "tra_name": "荸薺紫", "color_series": "purple", "pinyin": "bí qí zǐ", "font_color": "bright", "is_bright": false, "rgb": [ 65, 28, 53 ], "hex": "#411C35", "cmyk": [ 58, 96, 40, 61 ], "desc": "", "figure": "" }, { "id": "301929", "name": "鸟梅紫", "tra_name": "鳥梅紫", "color_series": "purple", "pinyin": "niǎo méi zǐ", "font_color": "bright", "is_bright": false, "rgb": [ 30, 19, 29 ], "hex": "#1E131D", "cmyk": [ 81, 87, 54, 84 ], "desc": "", "figure": "" }, { "id": "281326", "name": "深牵牛紫", "tra_name": "深牽牛紫", "color_series": "purple", "pinyin": "shēn qiān niú zǐ", "font_color": "bright", "is_bright": false, "rgb": [ 28, 13, 26 ], "hex": "#1C0D1A", "cmyk": [ 83, 87, 55, 86 ], "desc": "", "figure": "" }, { "id": "204204214", "name": "远山紫", "tra_name": "遠山紫", "color_series": "purple", "pinyin": "yuǎn shān zǐ", "font_color": "dark", "is_bright": true, "rgb": [ 204, 204, 214 ], "hex": "#CCCCD6", "cmyk": [ 23, 18, 12, 1 ], "desc": "", "figure": "" }, { "id": "167168189", "name": "淡蓝紫", "tra_name": "淡藍紫", "color_series": "purple", "pinyin": "dàn lán zǐ", "font_color": "dark", "is_bright": true, "rgb": [ 167, 168, 189 ], "hex": "#A7A8BD", "cmyk": [ 39, 31, 17, 2 ], "desc": "", "figure": "" }, { "id": "97100159", "name": "山梗紫", "tra_name": "山梗紫", "color_series": "purple", "pinyin": "shān gěng zǐ", "font_color": "dark", "is_bright": true, "rgb": [ 97, 100, 159 ], "hex": "#61649F", "cmyk": [ 74, 64, 14, 1 ], "desc": "", "figure": "" }, { "id": "116117155", "name": "螺甸紫", "tra_name": "螺甸紫", "color_series": "purple", "pinyin": "luó diān zǐ", "font_color": "dark", "is_bright": true, "rgb": [ 116, 117, 155 ], "hex": "#74759B", "cmyk": [ 63, 53, 22, 5 ], "desc": "", "figure": "" }, { "id": "8282136", "name": "野菊紫", "tra_name": "野菊紫", "color_series": "purple", "pinyin": "yě jú zǐ", "font_color": "dark", "is_bright": true, "rgb": [ 82, 82, 136 ], "hex": "#525288", "cmyk": [ 80, 73, 21, 6 ], "desc": "", "figure": "" }, { "id": "4649124", "name": "满天星紫", "tra_name": "滿天星紫", "color_series": "purple", "pinyin": "mǎn tiān xīng zǐ", "font_color": "bright", "is_bright": false, "rgb": [ 46, 49, 124 ], "hex": "#2E317C", "cmyk": [ 100, 93, 21, 5 ], "desc": "", "figure": "" }, { "id": "484775", "name": "野葡萄紫", "tra_name": "野葡萄紫", "color_series": "purple", "pinyin": "yě pú táo zǐ", "font_color": "bright", "is_bright": false, "rgb": [ 48, 47, 75 ], "hex": "#302F4B", "cmyk": [ 91, 84, 40, 43 ], "desc": "", "figure": "" }, { "id": "625665", "name": "剑锋紫", "tra_name": "劍鋒紫", "color_series": "purple", "pinyin": "jiàn fēng zǐ", "font_color": "bright", "is_bright": false, "rgb": [ 62, 56, 65 ], "hex": "#3E3841", "cmyk": [ 70, 69, 49, 56 ], "desc": "", "figure": "" }, { "id": "504759", "name": "龙葵紫", "tra_name": "龍葵紫", "color_series": "purple", "pinyin": "lóng kuí zǐ", "font_color": "bright", "is_bright": false, "rgb": [ 50, 47, 59 ], "hex": "#322F3B", "cmyk": [ 79, 74, 49, 60 ], "desc": "", "figure": "" }, { "id": "343246", "name": "暗龙胆紫", "tra_name": "暗龍膽紫", "color_series": "purple", "pinyin": "àn lóng dǎn zǐ", "font_color": "bright", "is_bright": false, "rgb": [ 34, 32, 46 ], "hex": "#22202E", "cmyk": [ 90, 84, 50, 69 ], "desc": "", "figure": "" }, { "id": "313264", "name": "晶石紫", "tra_name": "晶石紫", "color_series": "purple", "pinyin": "jīng shí zǐ", "font_color": "bright", "is_bright": false, "rgb": [ 31, 32, 64 ], "hex": "#1F2040", "cmyk": [ 98, 93, 48, 73 ], "desc": "", "figure": "" }, { "id": "191736", "name": "暗蓝紫", "tra_name": "暗藍紫", "color_series": "purple", "pinyin": "àn lán zǐ", "font_color": "bright", "is_bright": false, "rgb": [ 19, 17, 36 ], "hex": "#131124", "cmyk": [ 100, 94, 52, 77 ], "desc": "", "figure": "" }, { "id": "238165209", "name": "紫薇花", "tra_name": "紫薇花", "color_series": "purple", "pinyin": "zǐ wéi huā", "font_color": "dark", "is_bright": true, "rgb": [ 238, 165, 209 ], "hex": "#EEA5D1", "cmyk": [ 0, 31, 12, 7 ], "desc": "", "figure": "" }, { "id": "195166203", "name": "紫水晶", "tra_name": "紫水晶", "color_series": "purple", "pinyin": "zǐ shǔi jīng", "font_color": "dark", "is_bright": true, "rgb": [ 195, 166, 203 ], "hex": "#C3A6CB", "cmyk": [ 4, 18, 0, 20 ], "desc": "", "figure": "" }, { "id": "171150197", "name": "浅石英紫", "tra_name": "浅石英紫", "color_series": "purple", "pinyin": "qiǎn shí yīng zǐ", "font_color": "dark", "is_bright": true, "rgb": [ 171, 150, 197 ], "hex": "#AB96C5", "cmyk": [ 13, 24, 0, 23 ], "desc": "", "figure": "" }, { "id": "210148211", "name": "浅凤仙紫", "tra_name": "浅鳳仙紫", "color_series": "purple", "pinyin": "qiǎn fèng xiān zǐ", "font_color": "dark", "is_bright": true, "rgb": [ 210, 148, 211 ], "hex": "#D294D3", "cmyk": [ 0, 30, 0, 17 ], "desc": "", "figure": "" }, { "id": "163129186", "name": "木槿紫", "tra_name": "木槿紫", "color_series": "purple", "pinyin": "mù jǐn zǐ", "font_color": "dark", "is_bright": true, "rgb": [ 163, 129, 186 ], "hex": "#A381BA", "cmyk": [ 12, 31, 0, 27 ], "desc": "", "figure": "" }, { "id": "222122177", "name": "长春花色", "tra_name": "長春花色", "color_series": "purple", "pinyin": "cháng chūn huā sè", "font_color": "dark", "is_bright": true, "rgb": [ 222, 122, 177 ], "hex": "#DE7AB1", "cmyk": [ 0, 45, 20, 13 ], "desc": "", "figure": "" }, { "id": "156102128", "name": "洋葱紫", "tra_name": "洋葱紫", "color_series": "purple", "pinyin": "yáng cōng zǐ", "font_color": "dark", "is_bright": true, "rgb": [ 156, 102, 128 ], "hex": "#9C6680", "cmyk": [ 0, 35, 18, 39 ], "desc": "", "figure": "" }, { "id": "6649113", "name": "龙胆紫", "tra_name": "龍胆紫", "color_series": "purple", "pinyin": "lóng dǎn zǐ", "font_color": "bright", "is_bright": false, "rgb": [ 66, 49, 113 ], "hex": "#423171", "cmyk": [ 42, 57, 0, 56 ], "desc": "", "figure": "" }, { "id": "1217290", "name": "雪紫", "tra_name": "雪紫", "color_series": "purple", "pinyin": "xuě zǐ", "font_color": "bright", "is_bright": false, "rgb": [ 121, 72, 90 ], "hex": "#79485A", "cmyk": [ 0, 40, 26, 53 ], "desc": "", "figure": "" }, { "id": "1656788", "name": "紫粉", "tra_name": "紫粉", "color_series": "purple", "pinyin": "zǐ fěn", "font_color": "dark", "is_bright": true, "rgb": [ 165, 67, 88 ], "hex": "#A54358", "cmyk": [ 0, 59, 47, 35 ], "desc": "", "figure": "" }, { "id": "14980159", "name": "青莲紫", "tra_name": "青蓮紫", "color_series": "purple", "pinyin": "qīng lián zǐ", "font_color": "dark", "is_bright": true, "rgb": [ 149, 80, 159 ], "hex": "#95509F", "cmyk": [ 6, 50, 0, 38 ], "desc": "", "figure": "" }, { "id": "16232118", "name": "牵牛紫", "tra_name": "牽牛紫", "color_series": "purple", "pinyin": "qiān níu zǐ", "font_color": "dark", "is_bright": true, "rgb": [ 162, 32, 118 ], "hex": "#A22076", "cmyk": [ 0, 80, 27, 36 ], "desc": "", "figure": "" }, { "id": "1144665", "name": "紫绛色", "tra_name": "紫絳色", "color_series": "purple", "pinyin": "zǐ jiàng sè", "font_color": "bright", "is_bright": false, "rgb": [ 114, 46, 65 ], "hex": "#722E41", "cmyk": [ 0, 60, 43, 55 ], "desc": "", "figure": "" }, { "id": "1146169", "name": "紫铜色", "tra_name": "紫銅色", "color_series": "purple", "pinyin": "zǐ tóng sè", "font_color": "bright", "is_bright": false, "rgb": [ 114, 61, 69 ], "hex": "#723D45", "cmyk": [ 0, 46, 39, 55 ], "desc": "", "figure": "" }, { "id": "1054043", "name": "枣紫", "tra_name": "棗紫", "color_series": "purple", "pinyin": "zǎo zǐ", "font_color": "bright", "is_bright": false, "rgb": [ 105, 40, 43 ], "hex": "#69282B", "cmyk": [ 0, 62, 59, 59 ], "desc": "", "figure": "" }, { "id": "803843", "name": "黒紫", "tra_name": "黒紫", "color_series": "purple", "pinyin": "hēi zǐ", "font_color": "bright", "is_bright": false, "rgb": [ 80, 38, 43 ], "hex": "#50262B", "cmyk": [ 0, 52, 46, 69 ], "desc": "", "figure": "" }, { "id": "13590114", "name": "紫扇贝色", "tra_name": "紫扇貝色", "color_series": "purple", "pinyin": "zǐ shàn bèi sè", "font_color": "dark", "is_bright": true, "rgb": [ 135, 90, 114 ], "hex": "#875A72", "cmyk": [ 0, 33, 16, 47 ], "desc": "", "figure": "" }, { "id": "1127778", "name": "绛紫", "tra_name": "絳紫", "color_series": "purple", "pinyin": "jiàng zǐ", "font_color": "bright", "is_bright": false, "rgb": [ 112, 77, 78 ], "hex": "#704D4E", "cmyk": [ 0, 31, 30, 56 ], "desc": "", "figure": "" }, { "id": "1037380", "name": "茄皮紫", "tra_name": "茄皮紫", "color_series": "purple", "pinyin": "qié pí zǐ", "font_color": "bright", "is_bright": false, "rgb": [ 103, 73, 80 ], "hex": "#674950", "cmyk": [ 0, 29, 22, 60 ], "desc": "", "figure": "" }, { "id": "196195203", "name": "浅藤紫", "tra_name": "浅藤紫", "color_series": "purple", "pinyin": "qiǎn téng zǐ", "font_color": "dark", "is_bright": true, "rgb": [ 196, 195, 203 ], "hex": "#C4C3CB", "cmyk": [ 3, 4, 0, 20 ], "desc": "", "figure": "" }, { "id": "139101139", "name": "凤仙紫", "tra_name": "鳳仙紫", "color_series": "purple", "pinyin": "fèng xiān zǐ", "font_color": "dark", "is_bright": true, "rgb": [ 139, 101, 139 ], "hex": "#8B658B", "cmyk": [ 0, 27, 0, 45 ], "desc": "", "figure": "" }, { "id": "10587118", "name": "丁香紫", "tra_name": "丁香紫", "color_series": "purple", "pinyin": "dīng xiāng zǐ", "font_color": "bright", "is_bright": false, "rgb": [ 105, 87, 118 ], "hex": "#695776", "cmyk": [ 11, 26, 0, 54 ], "desc": "", "figure": "" }, { "id": "140144185", "name": "闪蝶紫", "tra_name": "閃蝶紫", "color_series": "purple", "pinyin": "shǎn dié zǐ", "font_color": "dark", "is_bright": true, "rgb": [ 140, 144, 185 ], "hex": "#8C90B9", "cmyk": [ 24, 22, 0, 27 ], "desc": "", "figure": "" } ], "yellow": [ { "id": "25524167", "name": "鹅黄", "tra_name": "鵝黃", "color_series": "yellow", "pinyin": "é huáng", "font_color": "dark", "is_bright": true, "rgb": [ 255, 241, 67 ], "hex": "#FFF143", "cmyk": [ 0, 5, 74, 0 ], "desc": "", "figure": "" }, { "id": "250255114", "name": "鸭黄", "tra_name": "鴨黃", "color_series": "yellow", "pinyin": "yā huáng", "font_color": "dark", "is_bright": true, "rgb": [ 250, 255, 114 ], "hex": "#FAFF72", "cmyk": [ 2, 0, 55, 0 ], "desc": "", "figure": "" }, { "id": "23425586", "name": "樱草色", "tra_name": "櫻草色", "color_series": "yellow", "pinyin": "yīng cǎo sè", "font_color": "dark", "is_bright": true, "rgb": [ 234, 255, 86 ], "hex": "#EAFF56", "cmyk": [ 8, 0, 66, 0 ], "desc": "", "figure": "" }, { "id": "25516649", "name": "杏黄", "tra_name": "杏黃", "color_series": "yellow", "pinyin": "xìng huáng", "font_color": "dark", "is_bright": true, "rgb": [ 255, 166, 49 ], "hex": "#FFA631", "cmyk": [ 0, 35, 81, 0 ], "desc": "", "figure": "" }, { "id": "25513754", "name": "橘黄", "tra_name": "橘黃", "color_series": "yellow", "pinyin": "jú huáng", "font_color": "dark", "is_bright": true, "rgb": [ 255, 137, 54 ], "hex": "#FF8936", "cmyk": [ 0, 46, 79, 0 ], "desc": "", "figure": "" }, { "id": "2551640", "name": "橙黄", "tra_name": "橙黃", "color_series": "yellow", "pinyin": "chéng huáng", "font_color": "dark", "is_bright": true, "rgb": [ 255, 164, 0 ], "hex": "#FFA400", "cmyk": [ 0, 36, 100, 0 ], "desc": "", "figure": "" }, { "id": "255199115", "name": "姜黄", "tra_name": "薑黃", "color_series": "yellow", "pinyin": "jiāng huáng", "font_color": "dark", "is_bright": true, "rgb": [ 255, 199, 115 ], "hex": "#FFC773", "cmyk": [ 0, 22, 55, 0 ], "desc": "", "figure": "" }, { "id": "24019457", "name": "缃色", "tra_name": "緗色", "color_series": "yellow", "pinyin": "xiāng sè", "font_color": "dark", "is_bright": true, "rgb": [ 240, 194, 57 ], "hex": "#F0C239", "cmyk": [ 0, 19, 76, 6 ], "desc": "", "figure": "" }, { "id": "20015564", "name": "昏黄", "tra_name": "昏黃", "color_series": "yellow", "pinyin": "hūn huáng", "font_color": "dark", "is_bright": true, "rgb": [ 200, 155, 64 ], "hex": "#C89B40", "cmyk": [ 0, 23, 68, 22 ], "desc": "", "figure": "" }, { "id": "124750", "name": "棕黑", "tra_name": "棕黑", "color_series": "yellow", "pinyin": "zōng hēi", "font_color": "bright", "is_bright": false, "rgb": [ 124, 75, 0 ], "hex": "#7C4B00", "cmyk": [ 0, 40, 100, 51 ], "desc": "", "figure": "" }, { "id": "1741120", "name": "棕黄", "tra_name": "棕黃", "color_series": "yellow", "pinyin": "zōng huáng", "font_color": "dark", "is_bright": true, "rgb": [ 174, 112, 0 ], "hex": "#AE7000", "cmyk": [ 0, 36, 100, 32 ], "desc": "", "figure": "" }, { "id": "1108130", "name": "褐色", "tra_name": "褐色", "color_series": "yellow", "pinyin": "hè sè", "font_color": "bright", "is_bright": false, "rgb": [ 110, 81, 30 ], "hex": "#6E511E", "cmyk": [ 0, 26, 73, 57 ], "desc": "", "figure": "" }, { "id": "211177125", "name": "枯黄", "tra_name": "枯黃", "color_series": "yellow", "pinyin": "kū huáng", "font_color": "dark", "is_bright": true, "rgb": [ 211, 177, 125 ], "hex": "#D3B17D", "cmyk": [ 0, 16, 41, 17 ], "desc": "", "figure": "" }, { "id": "22615669", "name": "黄栌", "tra_name": "黃櫨", "color_series": "yellow", "pinyin": "huáng lú", "font_color": "dark", "is_bright": true, "rgb": [ 226, 156, 69 ], "hex": "#E29C45", "cmyk": [ 0, 31, 69, 11 ], "desc": "", "figure": "" }, { "id": "13710857", "name": "秋色", "tra_name": "秋色", "color_series": "yellow", "pinyin": "qiū sè", "font_color": "dark", "is_bright": true, "rgb": [ 137, 108, 57 ], "hex": "#896C39", "cmyk": [ 0, 21, 58, 46 ], "desc": "", "figure": "" }, { "id": "21718217", "name": "秋香色", "tra_name": "秋香色", "color_series": "yellow", "pinyin": "qiū xiāng sè", "font_color": "dark", "is_bright": true, "rgb": [ 217, 182, 17 ], "hex": "#D9B611", "cmyk": [ 0, 16, 92, 15 ], "desc": "", "figure": "" }, { "id": "20122134", "name": "柳黄", "tra_name": "柳黃", "color_series": "yellow", "pinyin": "liǔ huáng", "font_color": "dark", "is_bright": true, "rgb": [ 201, 221, 34 ], "hex": "#C9DD22", "cmyk": [ 9, 0, 85, 13 ], "desc": "", "figure": "" }, { "id": "1632170", "name": "葱黄", "tra_name": "蔥黃", "color_series": "yellow", "pinyin": "cōng huáng", "font_color": "dark", "is_bright": true, "rgb": [ 163, 217, 0 ], "hex": "#A3D900", "cmyk": [ 25, 0, 100, 15 ], "desc": "", "figure": "" }, { "id": "188230114", "name": "松花色", "tra_name": "松花色", "color_series": "yellow", "pinyin": "sōng huā sè", "font_color": "dark", "is_bright": true, "rgb": [ 188, 230, 114 ], "hex": "#BCE672", "cmyk": [ 18, 0, 50, 10 ], "desc": "", "figure": "" }, { "id": "938160", "name": "黧", "tra_name": "黧", "color_series": "yellow", "pinyin": "lí", "font_color": "bright", "is_bright": false, "rgb": [ 93, 81, 60 ], "hex": "#5D513C", "cmyk": [ 0, 13, 35, 64 ], "desc": "", "figure": "" }, { "id": "11710277", "name": "黎", "tra_name": "黎", "color_series": "yellow", "pinyin": "lí", "font_color": "bright", "is_bright": false, "rgb": [ 117, 102, 77 ], "hex": "#75664D", "cmyk": [ 0, 13, 34, 54 ], "desc": "", "figure": "" }, { "id": "162155124", "name": "苍黄", "tra_name": "蒼黃", "color_series": "yellow", "pinyin": "cāng huáng", "font_color": "dark", "is_bright": true, "rgb": [ 162, 155, 124 ], "hex": "#A29B7C", "cmyk": [ 0, 4, 23, 36 ], "desc": "", "figure": "guilinshanshui.png" }, { "id": "238222176", "name": "牙色", "tra_name": "牙色", "color_series": "yellow", "pinyin": "yá sè", "font_color": "dark", "is_bright": true, "rgb": [ 238, 222, 176 ], "hex": "#EEDEB0", "cmyk": [ 0, 7, 26, 7 ], "desc": "", "figure": "" }, { "id": "24219069", "name": "赤金", "tra_name": "赤金", "color_series": "yellow", "pinyin": "chì jīn", "font_color": "dark", "is_bright": true, "rgb": [ 242, 190, 69 ], "hex": "#F2BE45", "cmyk": [ 0, 21, 71, 5 ], "desc": "", "figure": "" }, { "id": "234205118", "name": "金色", "tra_name": "金色", "color_series": "yellow", "pinyin": "jīn sè", "font_color": "dark", "is_bright": true, "rgb": [ 234, 205, 118 ], "hex": "#EACD76", "cmyk": [ 0, 12, 50, 8 ], "desc": "", "figure": "" }, { "id": "16714268", "name": "乌金", "tra_name": "烏金", "color_series": "yellow", "pinyin": "wū jīn", "font_color": "dark", "is_bright": true, "rgb": [ 167, 142, 68 ], "hex": "#A78E44", "cmyk": [ 0, 15, 59, 35 ], "desc": "", "figure": "" }, { "id": "247232170", "name": "杏仁黄", "tra_name": "杏仁黃", "color_series": "yellow", "pinyin": "xìng rén huáng", "font_color": "dark", "is_bright": true, "rgb": [ 249, 236, 195 ], "hex": "#F7E8AA", "cmyk": [ 3, 8, 30, 0 ], "desc": "", "figure": "" }, { "id": "248223112", "name": "麦秆黄", "tra_name": "麥稈黃", "color_series": "yellow", "pinyin": "mài gǎn huáng", "font_color": "dark", "is_bright": true, "rgb": [ 248, 223, 112 ], "hex": "#F8DF70", "cmyk": [ 5, 14, 68, 1 ], "desc": "", "figure": "" }, { "id": "25121865", "name": "油菜花黄", "tra_name": "油菜花黃", "color_series": "yellow", "pinyin": "yóu cài huā huáng", "font_color": "dark", "is_bright": true, "rgb": [ 251, 218, 65 ], "hex": "#FBDA41", "cmyk": [ 2, 16, 84, 0 ], "desc": "", "figure": "" }, { "id": "25421526", "name": "佛手黄", "tra_name": "佛手黃", "color_series": "yellow", "pinyin": "fó shǒu huáng", "font_color": "dark", "is_bright": true, "rgb": [ 254, 215, 26 ], "hex": "#FED71A", "cmyk": [ 1, 18, 94, 0 ], "desc": "", "figure": "" }, { "id": "248216106", "name": "葵扇黄", "tra_name": "葵扇黃", "color_series": "yellow", "pinyin": "kuí shàn huáng", "font_color": "dark", "is_bright": true, "rgb": [ 248, 216, 106 ], "hex": "#F8D86A", "cmyk": [ 3, 17, 69, 0 ], "desc": "", "figure": "" }, { "id": "25221155", "name": "柠檬黄", "tra_name": "檸檬黃", "color_series": "yellow", "pinyin": "níng méng huáng", "font_color": "dark", "is_bright": true, "rgb": [ 252, 211, 55 ], "hex": "#FCD337", "cmyk": [ 0, 20, 87, 0 ], "desc": "", "figure": "" }, { "id": "25221023", "name": "金瓜黄", "tra_name": "金瓜黃", "color_series": "yellow", "pinyin": "jīn guā huáng", "font_color": "dark", "is_bright": true, "rgb": [ 252, 210, 23 ], "hex": "#FCD217", "cmyk": [ 0, 20, 95, 0 ], "desc": "", "figure": "" }, { "id": "25520917", "name": "藤黄", "tra_name": "藤黃", "color_series": "yellow", "pinyin": "téng huáng", "font_color": "dark", "is_bright": true, "rgb": [ 254, 209, 16 ], "hex": "#FFD111", "cmyk": [ 0, 21, 94, 0 ], "desc": "", "figure": "" }, { "id": "247218148", "name": "香水玫瑰黄", "tra_name": "香水玫瑰黃", "color_series": "yellow", "pinyin": "xiāng shuǐ méi guī huáng", "font_color": "dark", "is_bright": true, "rgb": [ 247, 218, 148 ], "hex": "#F7DA94", "cmyk": [ 1, 17, 50, 0 ], "desc": "", "figure": "" }, { "id": "25120549", "name": "大豆黄", "tra_name": "大豆黃", "color_series": "yellow", "pinyin": "dà dòu huáng", "font_color": "dark", "is_bright": true, "rgb": [ 251, 205, 49 ], "hex": "#FBCD31", "cmyk": [ 0, 23, 88, 0 ], "desc": "", "figure": "" }, { "id": "25220322", "name": "素馨黄", "tra_name": "素馨黃", "color_series": "yellow", "pinyin": "sù xīn huáng", "font_color": "dark", "is_bright": true, "rgb": [ 252, 203, 22 ], "hex": "#FCCB16", "cmyk": [ 0, 24, 94, 0 ], "desc": "", "figure": "" }, { "id": "25420417", "name": "向日葵黄", "tra_name": "嚮日葵黃", "color_series": "yellow", "pinyin": "xiàng rì kuí huáng", "font_color": "dark", "is_bright": true, "rgb": [ 254, 204, 17 ], "hex": "#FECC11", "cmyk": [ 0, 24, 94, 0 ], "desc": "", "figure": "" }, { "id": "25120047", "name": "雅梨黄", "tra_name": "雅梨黃", "color_series": "yellow", "pinyin": "yǎ lí huáng", "font_color": "dark", "is_bright": true, "rgb": [ 251, 200, 47 ], "hex": "#FBC82F", "cmyk": [ 0, 27, 88, 0 ], "desc": "", "figure": "" }, { "id": "25219721", "name": "黄连黄", "tra_name": "黃連黃", "color_series": "yellow", "pinyin": "huáng lián huáng", "font_color": "dark", "is_bright": true, "rgb": [ 252, 197, 21 ], "hex": "#FCC515", "cmyk": [ 0, 28, 94, 0 ], "desc": "", "figure": "" }, { "id": "2521957", "name": "金盏黄", "tra_name": "金盞黃", "color_series": "yellow", "pinyin": "jīn zhǎn huáng", "font_color": "dark", "is_bright": true, "rgb": [ 252, 195, 7 ], "hex": "#FCC307", "cmyk": [ 0, 29, 95, 0 ], "desc": "", "figure": "" }, { "id": "248195135", "name": "蛋壳黄", "tra_name": "蛋殼黃", "color_series": "yellow", "pinyin": "dàn ké huáng", "font_color": "dark", "is_bright": true, "rgb": [ 248, 195, 135 ], "hex": "#F8C387", "cmyk": [ 0, 32, 52, 0 ], "desc": "", "figure": "" }, { "id": "247193115", "name": "肉色", "tra_name": "肉色", "color_series": "yellow", "pinyin": "ròu sè", "font_color": "dark", "is_bright": true, "rgb": [ 247, 193, 115 ], "hex": "#F7C173", "cmyk": [ 0, 32, 52, 0 ], "desc": "", "figure": "" }, { "id": "25118541", "name": "鹅掌黄", "tra_name": "鵝掌黃", "color_series": "yellow", "pinyin": "é zhǎng huáng", "font_color": "dark", "is_bright": true, "rgb": [ 251, 185, 41 ], "hex": "#FBB929", "cmyk": [ 0, 35, 89, 0 ], "desc": "", "figure": "" }, { "id": "25118218", "name": "鸡蛋黄", "tra_name": "雞蛋黃", "color_series": "yellow", "pinyin": "jī dàn huáng", "font_color": "dark", "is_bright": true, "rgb": [ 251, 182, 18 ], "hex": "#FBB612", "cmyk": [ 0, 36, 93, 0 ], "desc": "", "figure": "" }, { "id": "25218310", "name": "鼬黄", "tra_name": "鼬黃", "color_series": "yellow", "pinyin": "yòu huáng", "font_color": "dark", "is_bright": true, "rgb": [ 252, 183, 10 ], "hex": "#FCB70A", "cmyk": [ 0, 35, 94, 0 ], "desc": "", "figure": "" }, { "id": "24916651", "name": "榴萼黄", "tra_name": "榴萼黃", "color_series": "yellow", "pinyin": "liú è huáng", "font_color": "dark", "is_bright": true, "rgb": [ 249, 166, 51 ], "hex": "#F9A633", "cmyk": [ 0, 44, 84, 0 ], "desc": "", "figure": "" }, { "id": "25116420", "name": "淡橘橙", "tra_name": "淡橘橙", "color_series": "yellow", "pinyin": "dàn jú chéng", "font_color": "dark", "is_bright": true, "rgb": [ 251, 164, 20 ], "hex": "#FBA414", "cmyk": [ 0, 45, 92, 0 ], "desc": "", "figure": "" }, { "id": "2521616", "name": "枇杷黄", "tra_name": "枇杷黃", "color_series": "yellow", "pinyin": "pí pá huáng", "font_color": "dark", "is_bright": true, "rgb": [ 252, 161, 6 ], "hex": "#FCA106", "cmyk": [ 0, 47, 92, 0 ], "desc": "", "figure": "" }, { "id": "2521614", "name": "橙皮黄", "tra_name": "橙皮黃", "color_series": "yellow", "pinyin": "chéng pí huáng", "font_color": "dark", "is_bright": true, "rgb": [ 252, 161, 4 ], "hex": "#FCA104", "cmyk": [ 0, 47, 92, 0 ], "desc": "", "figure": "" }, { "id": "25214035", "name": "北瓜黄", "tra_name": "北瓜黃", "color_series": "yellow", "pinyin": "běi guā huáng", "font_color": "dark", "is_bright": true, "rgb": [ 252, 140, 35 ], "hex": "#FC8C23", "cmyk": [ 0, 56, 87, 0 ], "desc": "", "figure": "" }, { "id": "24214222", "name": "杏黄", "tra_name": "杏黃", "color_series": "yellow", "pinyin": "xìng huáng", "font_color": "dark", "is_bright": true, "rgb": [ 250, 142, 22 ], "hex": "#F28E16", "cmyk": [ 0, 54, 92, 0 ], "desc": "", "figure": "" }, { "id": "2551530", "name": "雄黄", "tra_name": "雄黃", "color_series": "yellow", "pinyin": "xióng huáng", "font_color": "dark", "is_bright": true, "rgb": [ 255, 153, 0 ], "hex": "#FF9900", "cmyk": [ 0, 51, 91, 0 ], "desc": "", "figure": "" }, { "id": "2511395", "name": "万寿菊黄", "tra_name": "萬壽菊黃", "color_series": "yellow", "pinyin": "wàn shòu jú huáng", "font_color": "dark", "is_bright": true, "rgb": [ 251, 139, 5 ], "hex": "#FB8B05", "cmyk": [ 0, 56, 91, 0 ], "desc": "", "figure": "" }, { "id": "23820869", "name": "秋葵黄", "tra_name": "秋葵黃", "color_series": "yellow", "pinyin": "qiū kuí huáng", "font_color": "dark", "is_bright": true, "rgb": [ 238, 208, 69 ], "hex": "#EED045", "cmyk": [ 8, 19, 84, 1 ], "desc": "", "figure": "" }, { "id": "24220643", "name": "硫华黄", "tra_name": "硫華黃", "color_series": "yellow", "pinyin": "liú huá huáng", "font_color": "dark", "is_bright": true, "rgb": [ 242, 206, 43 ], "hex": "#F2CE2B", "cmyk": [ 6, 20, 92, 1 ], "desc": "", "figure": "" }, { "id": "24120223", "name": "柚黄", "tra_name": "柚黃", "color_series": "yellow", "pinyin": "yòu huáng", "font_color": "dark", "is_bright": true, "rgb": [ 241, 202, 23 ], "hex": "#F1CA17", "cmyk": [ 6, 22, 92, 0 ], "desc": "", "figure": "" }, { "id": "221200113", "name": "芒果黄", "tra_name": "芒果黃", "color_series": "yellow", "pinyin": "máng guǒ huáng", "font_color": "dark", "is_bright": true, "rgb": [ 221, 200, 113 ], "hex": "#DDC871", "cmyk": [ 15, 20, 66, 2 ], "desc": "", "figure": "" }, { "id": "22319467", "name": "蒿黄", "tra_name": "蒿黃", "color_series": "yellow", "pinyin": "hāo huáng", "font_color": "dark", "is_bright": true, "rgb": [ 223, 194, 67 ], "hex": "#DFC243", "cmyk": [ 14, 22, 85, 2 ], "desc": "", "figure": "" }, { "id": "22619239", "name": "姜黄", "tra_name": "薑黃", "color_series": "yellow", "pinyin": "jiāng huáng", "font_color": "dark", "is_bright": true, "rgb": [ 226, 192, 39 ], "hex": "#E2C027", "cmyk": [ 12, 24, 95, 2 ], "desc": "", "figure": "" }, { "id": "22819117", "name": "香蕉黄", "tra_name": "香蕉黃", "color_series": "yellow", "pinyin": "xiāng jiāo huáng", "font_color": "dark", "is_bright": true, "rgb": [ 228, 191, 17 ], "hex": "#E4BF11", "cmyk": [ 11, 25, 99, 1 ], "desc": "", "figure": "" }, { "id": "21018044", "name": "草黄", "tra_name": "草黃", "color_series": "yellow", "pinyin": "cǎo huáng", "font_color": "dark", "is_bright": true, "rgb": [ 210, 180, 44 ], "hex": "#D2B42C", "cmyk": [ 17, 27, 94, 4 ], "desc": "", "figure": "" }, { "id": "248232193", "name": "豆汁黄", "tra_name": "豆汁黃", "color_series": "yellow", "pinyin": "dòu zhī huáng", "font_color": "dark", "is_bright": true, "rgb": [ 248, 232, 193 ], "hex": "#F8E8C1", "cmyk": [ 3, 10, 31, 0 ], "desc": "", "figure": "" }, { "id": "25520112", "name": "乳鸭黄", "tra_name": "乳鴨黃", "color_series": "yellow", "pinyin": "rǔ yā huáng", "font_color": "dark", "is_bright": true, "rgb": [ 255, 201, 12 ], "hex": "#FFC90C", "cmyk": [ 0, 26, 94, 0 ], "desc": "", "figure": "" }, { "id": "240214149", "name": "象牙黄", "tra_name": "象牙黃", "color_series": "yellow", "pinyin": "xiàng yá huáng", "font_color": "dark", "is_bright": true, "rgb": [ 240, 214, 149 ], "hex": "#F0D695", "cmyk": [ 5, 19, 50, 0 ], "desc": "", "figure": "" }, { "id": "244206105", "name": "炒米黄", "tra_name": "炒米黃", "color_series": "yellow", "pinyin": "chǎo mǐ huáng", "font_color": "dark", "is_bright": true, "rgb": [ 244, 206, 105 ], "hex": "#F4CE69", "cmyk": [ 3, 23, 69, 0 ], "desc": "", "figure": "" }, { "id": "24619648", "name": "鹦鹉冠黄", "tra_name": "鸚鵡冠黃", "color_series": "yellow", "pinyin": "yīng wǔ guān huáng", "font_color": "dark", "is_bright": true, "rgb": [ 246, 196, 48 ], "hex": "#F6C430", "cmyk": [ 1, 28, 89, 0 ], "desc": "", "figure": "" }, { "id": "24919322", "name": "木瓜黄", "tra_name": "木瓜黃", "color_series": "yellow", "pinyin": "mù guā huáng", "font_color": "dark", "is_bright": true, "rgb": [ 249, 193, 22 ], "hex": "#F9C116", "cmyk": [ 0, 30, 95, 0 ], "desc": "", "figure": "" }, { "id": "24918916", "name": "浅烙黄", "tra_name": "淺烙黃", "color_series": "yellow", "pinyin": "qiǎn lào huáng", "font_color": "dark", "is_bright": true, "rgb": [ 249, 189, 16 ], "hex": "#F9BD10", "cmyk": [ 0, 32, 95, 0 ], "desc": "", "figure": "" }, { "id": "229211170", "name": "莲子白", "tra_name": "蓮子白", "color_series": "yellow", "pinyin": "lián zi bái", "font_color": "dark", "is_bright": true, "rgb": [ 229, 211, 170 ], "hex": "#E5D3AA", "cmyk": [ 11, 18, 39, 1 ], "desc": "", "figure": "" }, { "id": "2321764", "name": "谷黄", "tra_name": "谷黃", "color_series": "yellow", "pinyin": "gǔ huáng", "font_color": "dark", "is_bright": true, "rgb": [ 232, 176, 4 ], "hex": "#E8B004", "cmyk": [ 5, 35, 99, 0 ], "desc": "", "figure": "" }, { "id": "23517713", "name": "栀子黄", "tra_name": "梔子黃", "color_series": "yellow", "pinyin": "zhī zi huáng", "font_color": "dark", "is_bright": true, "rgb": [ 235, 177, 13 ], "hex": "#EBB10D", "cmyk": [ 3, 36, 99, 0 ], "desc": "", "figure": "" }, { "id": "21716414", "name": "芥黄", "tra_name": "芥黃", "color_series": "yellow", "pinyin": "jiè huáng", "font_color": "dark", "is_bright": true, "rgb": [ 217, 164, 14 ], "hex": "#D9A40E", "cmyk": [ 11, 39, 100, 2 ], "desc": "", "figure": "" }, { "id": "776448", "name": "淡松烟", "tra_name": "淡松煙", "color_series": "yellow", "pinyin": "dàn sōng yān", "font_color": "bright", "is_bright": false, "rgb": [ 77, 64, 48 ], "hex": "#4D4030", "cmyk": [ 48, 58, 70, 62 ], "desc": "", "figure": "" }, { "id": "248224176", "name": "淡肉色", "tra_name": "淡肉色", "color_series": "yellow", "pinyin": "dàn ròu sè", "font_color": "dark", "is_bright": true, "rgb": [ 248, 224, 176 ], "hex": "#F8E0B0", "cmyk": [ 1, 15, 38, 0 ], "desc": "", "figure": "" }, { "id": "249210125", "name": "麦芽糖黄", "tra_name": "麥芽糖黃", "color_series": "yellow", "pinyin": "mài yá táng huáng", "font_color": "dark", "is_bright": true, "rgb": [ 249, 210, 125 ], "hex": "#F9D27D", "cmyk": [ 0, 23, 59, 0 ], "desc": "", "figure": "" }, { "id": "2541867", "name": "琥珀黄", "tra_name": "琥珀黃", "color_series": "yellow", "pinyin": "hǔ pò huáng", "font_color": "dark", "is_bright": true, "rgb": [ 254, 186, 7 ], "hex": "#FEBA07", "cmyk": [ 0, 34, 93, 0 ], "desc": "", "figure": "" }, { "id": "24319176", "name": "甘草黄", "tra_name": "甘草黃", "color_series": "yellow", "pinyin": "gān cǎo huáng", "font_color": "dark", "is_bright": true, "rgb": [ 243, 191, 76 ], "hex": "#F3BF4C", "cmyk": [ 1, 31, 79, 0 ], "desc": "", "figure": "" }, { "id": "24818849", "name": "初熟杏黄", "tra_name": "初熟杏黃", "color_series": "yellow", "pinyin": "chū shú xìng huáng", "font_color": "dark", "is_bright": true, "rgb": [ 248, 188, 49 ], "hex": "#F8BC31", "cmyk": [ 0, 33, 83, 0 ], "desc": "", "figure": "" }, { "id": "226193124", "name": "浅驼色", "tra_name": "淺駝色", "color_series": "yellow", "pinyin": "qiǎn tuó sè", "font_color": "dark", "is_bright": true, "rgb": [ 226, 193, 124 ], "hex": "#E2C17C", "cmyk": [ 10, 27, 59, 1 ], "desc": "", "figure": "" }, { "id": "22918381", "name": "沙石黄", "tra_name": "沙石黃", "color_series": "yellow", "pinyin": "shā shí huáng", "font_color": "dark", "is_bright": true, "rgb": [ 229, 183, 81 ], "hex": "#E5B751", "cmyk": [ 7, 32, 78, 1 ], "desc": "", "figure": "" }, { "id": "23417326", "name": "虎皮黄", "tra_name": "虎皮黃", "color_series": "yellow", "pinyin": "hǔ pí huáng", "font_color": "dark", "is_bright": true, "rgb": [ 234, 173, 26 ], "hex": "#EAAD1A", "cmyk": [ 3, 38, 97, 0 ], "desc": "", "figure": "" }, { "id": "21416029", "name": "土黄", "tra_name": "土黃", "color_series": "yellow", "pinyin": "tǔ huáng", "font_color": "dark", "is_bright": true, "rgb": [ 214, 160, 29 ], "hex": "#D6A01D", "cmyk": [ 12, 41, 98, 2 ], "desc": "", "figure": "" }, { "id": "18313938", "name": "山鸡黄", "tra_name": "山雞黃", "color_series": "yellow", "pinyin": "shān jī huáng", "font_color": "dark", "is_bright": true, "rgb": [ 183, 139, 38 ], "hex": "#B78B26", "cmyk": [ 21, 44, 97, 11 ], "desc": "", "figure": "" }, { "id": "13010772", "name": "龟背黄", "tra_name": "龜背黃", "color_series": "yellow", "pinyin": "guī bèi huáng", "font_color": "dark", "is_bright": true, "rgb": [ 130, 107, 72 ], "hex": "#826B48", "cmyk": [ 35, 47, 71, 33 ], "desc": "", "figure": "" }, { "id": "1289950", "name": "苍黄", "tra_name": "蒼黃", "color_series": "yellow", "pinyin": "cāng huáng", "font_color": "dark", "is_bright": true, "rgb": [ 128, 99, 50 ], "hex": "#806332", "cmyk": [ 34, 52, 85, 35 ], "desc": "", "figure": "" }, { "id": "1299537", "name": "莱阳梨黄", "tra_name": "萊陽梨黃", "color_series": "yellow", "pinyin": "lái yáng lí huáng", "font_color": "dark", "is_bright": true, "rgb": [ 129, 95, 37 ], "hex": "#815F25", "cmyk": [ 32, 56, 96, 34 ], "desc": "", "figure": "" }, { "id": "249232208", "name": "落英淡粉", "tra_name": "落英淡粉", "color_series": "yellow", "pinyin": "luò yīng dàn fěn", "font_color": "dark", "is_bright": true, "rgb": [ 249, 232, 208 ], "hex": "#F9E8D0", "cmyk": [ 1, 12, 22, 0 ], "desc": "", "figure": "" }, { "id": "249203139", "name": "瓜瓤粉", "tra_name": "瓜瓤粉", "color_series": "yellow", "pinyin": "guā ráng fěn", "font_color": "dark", "is_bright": true, "rgb": [ 249, 203, 139 ], "hex": "#F9CB8B", "cmyk": [ 0, 27, 51, 0 ], "desc": "", "figure": "" }, { "id": "25118587", "name": "蜜黄", "tra_name": "蜜黃", "color_series": "yellow", "pinyin": "mì huáng", "font_color": "dark", "is_bright": true, "rgb": [ 251, 185, 87 ], "hex": "#FBB957", "cmyk": [ 0, 36, 72, 0 ], "desc": "", "figure": "" }, { "id": "25516615", "name": "金叶黄", "tra_name": "金葉黃", "color_series": "yellow", "pinyin": "jīn yè huáng", "font_color": "dark", "is_bright": true, "rgb": [ 255, 166, 15 ], "hex": "#FFA60F", "cmyk": [ 0, 44, 91, 0 ], "desc": "", "figure": "" }, { "id": "24416858", "name": "金莺黄", "tra_name": "金鶯黃", "color_series": "yellow", "pinyin": "jīn yīng huáng", "font_color": "dark", "is_bright": true, "rgb": [ 244, 168, 58 ], "hex": "#F4A83A", "cmyk": [ 0, 43, 82, 0 ], "desc": "", "figure": "" }, { "id": "227189141", "name": "鹿角棕", "tra_name": "鹿角棕", "color_series": "yellow", "pinyin": "lù jiǎo zōng", "font_color": "dark", "is_bright": true, "rgb": [ 227, 189, 141 ], "hex": "#E3BD8D", "cmyk": [ 8, 31, 50, 1 ], "desc": "", "figure": "" }, { "id": "23116263", "name": "凋叶棕", "tra_name": "凋葉棕", "color_series": "yellow", "pinyin": "diāo yè zōng", "font_color": "dark", "is_bright": true, "rgb": [ 231, 162, 63 ], "hex": "#E7A23F", "cmyk": [ 2, 44, 83, 0 ], "desc": "", "figure": "" }, { "id": "21816490", "name": "玳瑁黄", "tra_name": "玳瑁黃", "color_series": "yellow", "pinyin": "dài mào huáng", "font_color": "dark", "is_bright": true, "rgb": [ 218, 164, 90 ], "hex": "#DAA45A", "cmyk": [ 10, 41, 72, 1 ], "desc": "", "figure": "" }, { "id": "22215868", "name": "软木黄", "tra_name": "軟木黃", "color_series": "yellow", "pinyin": "ruǎn mù huáng", "font_color": "dark", "is_bright": true, "rgb": [ 222, 158, 68 ], "hex": "#DE9E44", "cmyk": [ 7, 45, 82, 1 ], "desc": "", "figure": "" }, { "id": "22014535", "name": "风帆黄", "tra_name": "風帆黃", "color_series": "yellow", "pinyin": "fēng fān huáng", "font_color": "dark", "is_bright": true, "rgb": [ 220, 145, 35 ], "hex": "#DC9123", "cmyk": [ 6, 51, 95, 1 ], "desc": "", "figure": "" }, { "id": "19214781", "name": "桂皮淡棕", "tra_name": "桂皮淡棕", "color_series": "yellow", "pinyin": "guì pí dàn zōng", "font_color": "dark", "is_bright": true, "rgb": [ 192, 147, 81 ], "hex": "#C09351", "cmyk": [ 19, 44, 75, 7 ], "desc": "", "figure": "" }, { "id": "15210136", "name": "山鸡褐", "tra_name": "山雞褐", "color_series": "yellow", "pinyin": "shān jī hè", "font_color": "dark", "is_bright": true, "rgb": [ 152, 101, 36 ], "hex": "#986524", "cmyk": [ 27, 60, 97, 21 ], "desc": "", "figure": "" }, { "id": "24210731", "name": "金黄", "tra_name": "金黃", "color_series": "yellow", "pinyin": "jīn huáng", "font_color": "dark", "is_bright": true, "rgb": [ 242, 123, 31 ], "hex": "#F26B1F", "cmyk": [ 5, 69, 87, 0 ], "desc": "", "figure": "" }, { "id": "1407549", "name": "淡土黄", "tra_name": "淡土黃", "color_series": "yellow", "pinyin": "dàn tǔ huáng", "font_color": "dark", "is_bright": true, "rgb": [ 140, 75, 49 ], "hex": "#8C4B31", "cmyk": [ 28, 76, 82, 26 ], "desc": "", "figure": "" }, { "id": "208222170", "name": "姚黄", "tra_name": "姚黃", "color_series": "yellow", "pinyin": "yáo huáng", "font_color": "dark", "is_bright": true, "rgb": [ 208, 222, 170 ], "hex": "#D0DEAA", "cmyk": [ 28, 4, 44, 0 ], "desc": "", "figure": "" }, { "id": "22621673", "name": "蝶黄", "tra_name": "蝶黃", "color_series": "yellow", "pinyin": "dié huáng", "font_color": "dark", "is_bright": true, "rgb": [ 226, 216, 73 ], "hex": "#E2D849", "cmyk": [ 19, 9, 84, 1 ], "desc": "", "figure": "" }, { "id": "23213359", "name": "桔黄", "tra_name": "桔黄", "color_series": "yellow", "pinyin": "jié huáng", "font_color": "dark", "is_bright": true, "rgb": [ 232, 133, 59 ], "hex": "#E8853B", "cmyk": [ 0, 43, 75, 9 ], "desc": "", "figure": "" }, { "id": "19912258", "name": "金黄", "tra_name": "金黄", "color_series": "yellow", "pinyin": "jīn huáng", "font_color": "dark", "is_bright": true, "rgb": [ 199, 122, 58 ], "hex": "#C77A3A", "cmyk": [ 0, 39, 71, 22 ], "desc": "", "figure": "" }, { "id": "20813361", "name": "雄黄", "tra_name": "雄黄", "color_series": "yellow", "pinyin": "xióng huáng", "font_color": "dark", "is_bright": true, "rgb": [ 208, 133, 61 ], "hex": "#D0853D", "cmyk": [ 0, 36, 71, 18 ], "desc": "", "figure": "" }, { "id": "22516177", "name": "虾黄", "tra_name": "蝦黄", "color_series": "yellow", "pinyin": "xiā huáng", "font_color": "dark", "is_bright": true, "rgb": [ 225, 161, 77 ], "hex": "#E1A14D", "cmyk": [ 0, 28, 66, 12 ], "desc": "", "figure": "" }, { "id": "2251615", "name": "艶黄", "tra_name": "艶黄", "color_series": "yellow", "pinyin": "yàn huáng", "font_color": "dark", "is_bright": true, "rgb": [ 225, 161, 5 ], "hex": "#E1A105", "cmyk": [ 0, 28, 98, 12 ], "desc": "", "figure": "" }, { "id": "24516331", "name": "鹅黄", "tra_name": "鵝黄", "color_series": "yellow", "pinyin": "é huáng", "font_color": "dark", "is_bright": true, "rgb": [ 245, 163, 31 ], "hex": "#F5A31F", "cmyk": [ 0, 33, 87, 4 ], "desc": "", "figure": "" }, { "id": "240182157", "name": "肉黄", "tra_name": "肉黄", "color_series": "yellow", "pinyin": "ròu huáng", "font_color": "dark", "is_bright": true, "rgb": [ 240, 182, 157 ], "hex": "#F0B69D", "cmyk": [ 0, 24, 35, 6 ], "desc": "", "figure": "" }, { "id": "16513394", "name": "黄棕色", "tra_name": "黄棕色", "color_series": "yellow", "pinyin": "huáng zōng sè", "font_color": "dark", "is_bright": true, "rgb": [ 165, 133, 94 ], "hex": "#A5855E", "cmyk": [ 0, 19, 43, 35 ], "desc": "", "figure": "" }, { "id": "18413279", "name": "棕茶", "tra_name": "棕茶", "color_series": "yellow", "pinyin": "zōng chá", "font_color": "dark", "is_bright": true, "rgb": [ 184, 132, 79 ], "hex": "#B8844F", "cmyk": [ 0, 28, 57, 28 ], "desc": "", "figure": "" }, { "id": "20614753", "name": "土黄", "tra_name": "土黄", "color_series": "yellow", "pinyin": "tǔ huáng", "font_color": "dark", "is_bright": true, "rgb": [ 206, 147, 53 ], "hex": "#CE9335", "cmyk": [ 0, 29, 74, 19 ], "desc": "", "figure": "" }, { "id": "22617569", "name": "黄琉璃", "tra_name": "黄琉璃", "color_series": "yellow", "pinyin": "huáng líu lí", "font_color": "dark", "is_bright": true, "rgb": [ 226, 175, 69 ], "hex": "#E2AF45", "cmyk": [ 0, 23, 69, 11 ], "desc": "", "figure": "" }, { "id": "19614157", "name": "琉璃色", "tra_name": "琉璃色", "color_series": "yellow", "pinyin": "líu lí sè", "font_color": "dark", "is_bright": true, "rgb": [ 196, 141, 57 ], "hex": "#C48D39", "cmyk": [ 0, 28, 71, 23 ], "desc": "", "figure": "" }, { "id": "22014859", "name": "檀香色", "tra_name": "檀香色", "color_series": "yellow", "pinyin": "tán xiāng sè", "font_color": "dark", "is_bright": true, "rgb": [ 220, 148, 59 ], "hex": "#DC943B", "cmyk": [ 0, 33, 73, 14 ], "desc": "", "figure": "" }, { "id": "198836", "name": "苍黄", "tra_name": "蒼黄", "color_series": "yellow", "pinyin": "cāng huáng", "font_color": "dark", "is_bright": true, "rgb": [ 198, 83, 6 ], "hex": "#C65306", "cmyk": [ 0, 58, 97, 22 ], "desc": "", "figure": "" }, { "id": "244185116", "name": "向日黄", "tra_name": "向日黄", "color_series": "yellow", "pinyin": "xiàng rì huáng", "font_color": "dark", "is_bright": true, "rgb": [ 244, 185, 116 ], "hex": "#F4B974", "cmyk": [ 0, 24, 52, 4 ], "desc": "", "figure": "" }, { "id": "222168122", "name": "浅黄棕", "tra_name": "浅黄棕", "color_series": "yellow", "pinyin": "qiǎn huáng zōng", "font_color": "dark", "is_bright": true, "rgb": [ 222, 168, 122 ], "hex": "#DEA87A", "cmyk": [ 0, 24, 45, 13 ], "desc": "", "figure": "" }, { "id": "241182127", "name": "南瓜黄", "tra_name": "南瓜黄", "color_series": "yellow", "pinyin": "nán guā huáng", "font_color": "dark", "is_bright": true, "rgb": [ 241, 182, 127 ], "hex": "#F1B67F", "cmyk": [ 0, 24, 47, 5 ], "desc": "", "figure": "" }, { "id": "226194164", "name": "芦黄", "tra_name": "芦黄", "color_series": "yellow", "pinyin": "lú huáng", "font_color": "dark", "is_bright": true, "rgb": [ 226, 194, 164 ], "hex": "#E2C2A4", "cmyk": [ 0, 14, 27, 11 ], "desc": "", "figure": "" }, { "id": "21814988", "name": "浅桔黄", "tra_name": "浅桔黄", "color_series": "yellow", "pinyin": "qiǎn jié huáng", "font_color": "dark", "is_bright": true, "rgb": [ 218, 149, 88 ], "hex": "#DA9558", "cmyk": [ 0, 32, 60, 15 ], "desc": "", "figure": "" }, { "id": "231187124", "name": "鹿皮色", "tra_name": "鹿皮色", "color_series": "yellow", "pinyin": "lù pí sè", "font_color": "dark", "is_bright": true, "rgb": [ 231, 187, 124 ], "hex": "#E7BB7C", "cmyk": [ 0, 19, 46, 9 ], "desc": "", "figure": "" }, { "id": "18715185", "name": "鹿皮棕", "tra_name": "鹿皮棕", "color_series": "yellow", "pinyin": "lù pí zōng", "font_color": "dark", "is_bright": true, "rgb": [ 187, 151, 85 ], "hex": "#BB9755", "cmyk": [ 0, 19, 55, 27 ], "desc": "", "figure": "" }, { "id": "244215180", "name": "真丝绸色", "tra_name": "真絲綢色", "color_series": "yellow", "pinyin": "zhēn sī chóu sè", "font_color": "dark", "is_bright": true, "rgb": [ 244, 215, 180 ], "hex": "#F4D7B4", "cmyk": [ 0, 12, 26, 4 ], "desc": "", "figure": "" }, { "id": "240214172", "name": "富春纺色", "tra_name": "富春紡色", "color_series": "yellow", "pinyin": "fù chūn fǎng sè", "font_color": "dark", "is_bright": true, "rgb": [ 240, 214, 172 ], "hex": "#F0D6AC", "cmyk": [ 0, 11, 28, 6 ], "desc": "", "figure": "" }, { "id": "238225202", "name": "乳白色", "tra_name": "乳白色", "color_series": "yellow", "pinyin": "rǔ bái sè", "font_color": "dark", "is_bright": true, "rgb": [ 238, 225, 202 ], "hex": "#EEE1CA", "cmyk": [ 0, 5, 15, 7 ], "desc": "", "figure": "" }, { "id": "239224185", "name": "乳黄色", "tra_name": "乳黄色", "color_series": "yellow", "pinyin": "rǔ huáng sè", "font_color": "dark", "is_bright": true, "rgb": [ 239, 224, 185 ], "hex": "#EFE0B9", "cmyk": [ 0, 6, 23, 6 ], "desc": "", "figure": "" }, { "id": "238222204", "name": "浅肉粉", "tra_name": "浅肉粉", "color_series": "yellow", "pinyin": "qiǎn ròu fěn", "font_color": "dark", "is_bright": true, "rgb": [ 238, 222, 204 ], "hex": "#EEDECC", "cmyk": [ 0, 7, 14, 7 ], "desc": "", "figure": "" }, { "id": "201174140", "name": "浅驼色", "tra_name": "浅駝色", "color_series": "yellow", "pinyin": "qiǎn tuó sè", "font_color": "dark", "is_bright": true, "rgb": [ 201, 174, 140 ], "hex": "#C9AE8C", "cmyk": [ 0, 13, 30, 21 ], "desc": "", "figure": "" }, { "id": "176160133", "name": "浅棕茶", "tra_name": "浅棕茶", "color_series": "yellow", "pinyin": "qiǎn zōng chá", "font_color": "dark", "is_bright": true, "rgb": [ 176, 160, 133 ], "hex": "#B0A085", "cmyk": [ 0, 9, 24, 31 ], "desc": "", "figure": "" }, { "id": "1559663", "name": "黄鸭色", "tra_name": "黄鴨色", "color_series": "yellow", "pinyin": "huáng yā sè", "font_color": "dark", "is_bright": true, "rgb": [ 155, 96, 63 ], "hex": "#9B603F", "cmyk": [ 0, 38, 59, 39 ], "desc": "", "figure": "" }, { "id": "36290", "name": "将校呢", "tra_name": "将校呢", "color_series": "yellow", "pinyin": "jiāng xiào ní", "font_color": "bright", "is_bright": false, "rgb": [ 36, 29, 0 ], "hex": "#241D00", "cmyk": [ 0, 19, 100, 86 ], "desc": "", "figure": "" }, { "id": "1099774", "name": "将校呢", "tra_name": "将校呢", "color_series": "yellow", "pinyin": "jiāng xiào ní", "font_color": "bright", "is_bright": false, "rgb": [ 109, 97, 74 ], "hex": "#6D614A", "cmyk": [ 0, 11, 32, 57 ], "desc": "", "figure": "" }, { "id": "18014854", "name": "姜黄", "tra_name": "姜黄", "color_series": "yellow", "pinyin": "jiāng huáng", "font_color": "dark", "is_bright": true, "rgb": [ 180, 148, 54 ], "hex": "#B49436", "cmyk": [ 0, 18, 70, 29 ], "desc": "", "figure": "" }, { "id": "18016797", "name": "新芽色", "tra_name": "新芽色", "color_series": "yellow", "pinyin": "xīn yá sè", "font_color": "dark", "is_bright": true, "rgb": [ 180, 167, 97 ], "hex": "#B4A761", "cmyk": [ 0, 7, 46, 29 ], "desc": "", "figure": "" }, { "id": "213184132", "name": "卡其黄", "tra_name": "卡其黄", "color_series": "yellow", "pinyin": "qiǎ qí huáng", "font_color": "dark", "is_bright": true, "rgb": [ 213, 184, 132 ], "hex": "#D5B884", "cmyk": [ 0, 14, 38, 16 ], "desc": "", "figure": "" }, { "id": "24219277", "name": "石黄", "tra_name": "石黄", "color_series": "yellow", "pinyin": "shí huáng", "font_color": "dark", "is_bright": true, "rgb": [ 242, 192, 77 ], "hex": "#F2C04D", "cmyk": [ 0, 21, 68, 5 ], "desc": "", "figure": "" }, { "id": "201180129", "name": "乳棕", "tra_name": "乳棕", "color_series": "yellow", "pinyin": "rǔ zōng", "font_color": "dark", "is_bright": true, "rgb": [ 201, 180, 129 ], "hex": "#C9B481", "cmyk": [ 0, 10, 36, 21 ], "desc": "", "figure": "" }, { "id": "235225189", "name": "蝋黄", "tra_name": "蝋黄", "color_series": "yellow", "pinyin": "là huáng", "font_color": "dark", "is_bright": true, "rgb": [ 235, 225, 189 ], "hex": "#EBE1BD", "cmyk": [ 0, 4, 20, 8 ], "desc": "", "figure": "" }, { "id": "235225178", "name": "牙黄", "tra_name": "牙黄", "color_series": "yellow", "pinyin": "yá huáng", "font_color": "dark", "is_bright": true, "rgb": [ 235, 225, 178 ], "hex": "#EBE1B2", "cmyk": [ 0, 4, 24, 8 ], "desc": "", "figure": "" }, { "id": "219199166", "name": "枝黄", "tra_name": "枝黄", "color_series": "yellow", "pinyin": "zhī huáng", "font_color": "dark", "is_bright": true, "rgb": [ 219, 199, 166 ], "hex": "#DBC7A6", "cmyk": [ 0, 9, 24, 14 ], "desc": "", "figure": "" }, { "id": "215193107", "name": "丹东石", "tra_name": "丹東石", "color_series": "yellow", "pinyin": "dān dōng shí", "font_color": "dark", "is_bright": true, "rgb": [ 215, 193, 107 ], "hex": "#D7C16B", "cmyk": [ 0, 10, 50, 16 ], "desc": "", "figure": "" }, { "id": "204204102", "name": "黄金色", "tra_name": "黄金色", "color_series": "yellow", "pinyin": "huáng jīn sè", "font_color": "dark", "is_bright": true, "rgb": [ 204, 204, 102 ], "hex": "#CCCC66", "cmyk": [ 0, 0, 50, 20 ], "desc": "", "figure": "" }, { "id": "242222118", "name": "藤黄", "tra_name": "藤黄", "color_series": "yellow", "pinyin": "téng huáng", "font_color": "dark", "is_bright": true, "rgb": [ 242, 222, 118 ], "hex": "#F2DE76", "cmyk": [ 0, 8, 51, 5 ], "desc": "", "figure": "" }, { "id": "23118191", "name": "蛋黄", "tra_name": "蛋黄", "color_series": "yellow", "pinyin": "dàn huáng", "font_color": "dark", "is_bright": true, "rgb": [ 231, 181, 91 ], "hex": "#E7B55B", "cmyk": [ 0, 22, 61, 9 ], "desc": "", "figure": "" }, { "id": "23922882", "name": "槐黄", "tra_name": "槐黄", "color_series": "yellow", "pinyin": "huái huáng", "font_color": "dark", "is_bright": true, "rgb": [ 239, 228, 82 ], "hex": "#EFE452", "cmyk": [ 0, 5, 66, 6 ], "desc": "", "figure": "" }, { "id": "24019873", "name": "明黄", "tra_name": "明黄", "color_series": "yellow", "pinyin": "míng huáng", "font_color": "dark", "is_bright": true, "rgb": [ 240, 198, 73 ], "hex": "#F0C649", "cmyk": [ 0, 17, 70, 6 ], "desc": "", "figure": "" }, { "id": "24721380", "name": "丝瓜花黄", "tra_name": "絲瓜花黄", "color_series": "yellow", "pinyin": "sī guā huā huáng", "font_color": "dark", "is_bright": true, "rgb": [ 247, 213, 80 ], "hex": "#F7D550", "cmyk": [ 0, 14, 68, 3 ], "desc": "", "figure": "" }, { "id": "22618959", "name": "嫩姜黄", "tra_name": "嫩姜黄", "color_series": "yellow", "pinyin": "nèn jiāng huáng", "font_color": "dark", "is_bright": true, "rgb": [ 226, 189, 59 ], "hex": "#E2BD3B", "cmyk": [ 0, 16, 74, 11 ], "desc": "", "figure": "" }, { "id": "228207142", "name": "甘草黄", "tra_name": "甘草黄", "color_series": "yellow", "pinyin": "gān cǎo huáng", "font_color": "dark", "is_bright": true, "rgb": [ 228, 207, 142 ], "hex": "#E4CF8E", "cmyk": [ 0, 9, 38, 11 ], "desc": "", "figure": "" }, { "id": "227210137", "name": "小鶏黄", "tra_name": "小鶏黄", "color_series": "yellow", "pinyin": "xiǎo jī huáng", "font_color": "dark", "is_bright": true, "rgb": [ 227, 210, 137 ], "hex": "#E3D289", "cmyk": [ 0, 7, 40, 11 ], "desc": "", "figure": "" }, { "id": "23321957", "name": "柠檬黄", "tra_name": "檸檬黄", "color_series": "yellow", "pinyin": "níng méng huáng", "font_color": "dark", "is_bright": true, "rgb": [ 233, 219, 57 ], "hex": "#E9DB39", "cmyk": [ 0, 6, 76, 9 ], "desc": "", "figure": "" }, { "id": "212213112", "name": "杨桃色", "tra_name": "楊桃色", "color_series": "yellow", "pinyin": "yáng táo sè", "font_color": "dark", "is_bright": true, "rgb": [ 212, 213, 112 ], "hex": "#D4D570", "cmyk": [ 0, 0, 47, 16 ], "desc": "", "figure": "" }, { "id": "234227179", "name": "淡黄", "tra_name": "淡黄", "color_series": "yellow", "pinyin": "dàn huáng", "font_color": "dark", "is_bright": true, "rgb": [ 234, 227, 179 ], "hex": "#EAE3B3", "cmyk": [ 0, 3, 24, 8 ], "desc": "", "figure": "" }, { "id": "233230197", "name": "淡米色", "tra_name": "淡米色", "color_series": "yellow", "pinyin": "dàn mǐ sè", "font_color": "dark", "is_bright": true, "rgb": [ 233, 230, 197 ], "hex": "#E9E6C5", "cmyk": [ 0, 1, 15, 9 ], "desc": "", "figure": "" }, { "id": "21920684", "name": "草黄", "tra_name": "草黄", "color_series": "yellow", "pinyin": "cǎo huáng", "font_color": "dark", "is_bright": true, "rgb": [ 219, 206, 84 ], "hex": "#DBCE54", "cmyk": [ 0, 6, 62, 14 ], "desc": "", "figure": "" }, { "id": "190210182", "name": "水黄", "tra_name": "水黄", "color_series": "yellow", "pinyin": "shǔi huáng", "font_color": "dark", "is_bright": true, "rgb": [ 190, 210, 182 ], "hex": "#BED2B6", "cmyk": [ 10, 0, 13, 18 ], "desc": "", "figure": "" }, { "id": "145148129", "name": "法国梧桐皮色", "tra_name": "法国梧桐皮色", "color_series": "yellow", "pinyin": "fǎ guó wú tóng pí sè", "font_color": "dark", "is_bright": true, "rgb": [ 145, 148, 129 ], "hex": "#919481", "cmyk": [ 2, 0, 13, 42 ], "desc": "", "figure": "" }, { "id": "929070", "name": "焦茶色", "tra_name": "焦茶色", "color_series": "yellow", "pinyin": "jiāo chá sè", "font_color": "bright", "is_bright": false, "rgb": [ 92, 90, 70 ], "hex": "#5C5A46", "cmyk": [ 0, 2, 24, 64 ], "desc": "", "figure": "" }, { "id": "10911588", "name": "大赤金", "tra_name": "大赤金", "color_series": "yellow", "pinyin": "dà chì jīn", "font_color": "bright", "is_bright": false, "rgb": [ 109, 115, 88 ], "hex": "#6D7358", "cmyk": [ 5, 0, 23, 55 ], "desc": "", "figure": "" }, { "id": "13312179", "name": "库金", "tra_name": "庫金", "color_series": "yellow", "pinyin": "kù jīn", "font_color": "dark", "is_bright": true, "rgb": [ 133, 121, 79 ], "hex": "#85794F", "cmyk": [ 0, 9, 41, 48 ], "desc": "", "figure": "" }, { "id": "12111184", "name": "选金", "tra_name": "選金", "color_series": "yellow", "pinyin": "xuǎn jīn", "font_color": "bright", "is_bright": false, "rgb": [ 121, 111, 84 ], "hex": "#796F54", "cmyk": [ 0, 8, 31, 53 ], "desc": "", "figure": "" }, { "id": "185152109", "name": "獣皮色", "tra_name": "獣皮色", "color_series": "yellow", "pinyin": "獣 pí sè", "font_color": "dark", "is_bright": true, "rgb": [ 185, 152, 109 ], "hex": "#B9986D", "cmyk": [ 0, 18, 41, 27 ], "desc": "", "figure": "" }, { "id": "25518230", "name": "藤黄", "tra_name": "藤黃", "color_series": "yellow", "pinyin": "téng huáng", "font_color": "dark", "is_bright": true, "rgb": [ 255, 182, 30 ], "hex": "#FFB61E", "cmyk": [ 0, 29, 88, 0 ], "desc": "", "figure": "" }, { "id": "25519875", "name": "雌黄", "tra_name": "雌黃", "color_series": "yellow", "pinyin": "cí huáng", "font_color": "dark", "is_bright": true, "rgb": [ 255, 198, 75 ], "hex": "#FFC64B", "cmyk": [ 0, 22, 71, 0 ], "desc": "", "figure": "" }, { "id": "23318729", "name": "雄黄", "tra_name": "雄黃", "color_series": "yellow", "pinyin": "xióng huáng", "font_color": "dark", "is_bright": true, "rgb": [ 233, 187, 29 ], "hex": "#E9BB1D", "cmyk": [ 0, 20, 88, 9 ], "desc": "", "figure": "" } ], "green": [ { "id": "1301130", "name": "棕绿", "tra_name": "棕綠", "color_series": "green", "pinyin": "zōng lǜ", "font_color": "dark", "is_bright": true, "rgb": [ 130, 113, 0 ], "hex": "#827100", "cmyk": [ 0, 13, 100, 49 ], "desc": "", "figure": "" }, { "id": "18922134", "name": "嫩绿", "tra_name": "嫩綠", "color_series": "green", "pinyin": "nèn lǜ", "font_color": "dark", "is_bright": true, "rgb": [ 189, 221, 34 ], "hex": "#BDDD22", "cmyk": [ 14, 0, 85, 13 ], "desc": "", "figure": "" }, { "id": "17522134", "name": "柳绿", "tra_name": "柳綠", "color_series": "green", "pinyin": "liǔ lǜ", "font_color": "dark", "is_bright": true, "rgb": [ 175, 221, 34 ], "hex": "#AFDD22", "cmyk": [ 21, 0, 85, 13 ], "desc": "", "figure": "" }, { "id": "1582170", "name": "葱绿", "tra_name": "蔥綠", "color_series": "green", "pinyin": "cōng lǜ", "font_color": "dark", "is_bright": true, "rgb": [ 158, 217, 0 ], "hex": "#9ED900", "cmyk": [ 27, 0, 100, 15 ], "desc": "", "figure": "" }, { "id": "1418464", "name": "葱倩", "tra_name": "蔥倩", "color_series": "green", "pinyin": "cōng qiàn", "font_color": "dark", "is_bright": true, "rgb": [ 14, 184, 64 ], "hex": "#0EB840", "cmyk": [ 92, 0, 65, 28 ], "desc": "青绿色", "figure": "" }, { "id": "018818", "name": "油绿", "tra_name": "油綠", "color_series": "green", "pinyin": "yóu lǜ", "font_color": "dark", "is_bright": true, "rgb": [ 0, 188, 18 ], "hex": "#00BC12", "cmyk": [ 100, 0, 90, 26 ], "desc": "", "figure": "" }, { "id": "1213724", "name": "绿沈", "tra_name": "綠沈", "color_series": "green", "pinyin": "lǜ shěn", "font_color": "dark", "is_bright": true, "rgb": [ 12, 137, 24 ], "hex": "#0C8918", "cmyk": [ 91, 0, 82, 46 ], "desc": "", "figure": "" }, { "id": "42221156", "name": "碧绿", "tra_name": "碧綠", "color_series": "green", "pinyin": "bì lǜ", "font_color": "dark", "is_bright": true, "rgb": [ 42, 221, 156 ], "hex": "#2ADD9C", "cmyk": [ 81, 0, 29, 13 ], "desc": "", "figure": "" }, { "id": "61225173", "name": "翡翠绿", "tra_name": "翡翠綠", "color_series": "green", "pinyin": "fěi cuì lǜ", "font_color": "dark", "is_bright": true, "rgb": [ 61, 225, 173 ], "hex": "#3DE1AD", "cmyk": [ 73, 0, 23, 12 ], "desc": "", "figure": "" }, { "id": "6422290", "name": "草绿", "tra_name": "草綠", "color_series": "green", "pinyin": "cǎo lǜ", "font_color": "dark", "is_bright": true, "rgb": [ 64, 222, 90 ], "hex": "#40DE5A", "cmyk": [ 71, 0, 59, 13 ], "desc": "", "figure": "" }, { "id": "02290", "name": "绿色", "tra_name": "綠色", "color_series": "green", "pinyin": "lǜ sè", "font_color": "dark", "is_bright": true, "rgb": [ 0, 229, 0 ], "hex": "#00E500", "cmyk": [ 100, 0, 100, 10 ], "desc": "", "figure": "" }, { "id": "15820872", "name": "豆绿", "tra_name": "豆綠", "color_series": "green", "pinyin": "dòu lǜ", "font_color": "dark", "is_bright": true, "rgb": [ 158, 208, 72 ], "hex": "#9ED048", "cmyk": [ 24, 0, 65, 18 ], "desc": "", "figure": "" }, { "id": "123207166", "name": "石绿", "tra_name": "石綠", "color_series": "green", "pinyin": "shí lǜ", "font_color": "dark", "is_bright": true, "rgb": [ 123, 207, 166 ], "hex": "#7BCFA6", "cmyk": [ 41, 0, 20, 19 ], "desc": "", "figure": "" }, { "id": "127236173", "name": "缥", "tra_name": "縹", "color_series": "green", "pinyin": "piāo", "font_color": "dark", "is_bright": true, "rgb": [ 127, 236, 173 ], "hex": "#7FECAD", "cmyk": [ 46, 0, 27, 7 ], "desc": "", "figure": "" }, { "id": "164226198", "name": "艾绿", "tra_name": "艾綠", "color_series": "green", "pinyin": "ài lǜ", "font_color": "dark", "is_bright": true, "rgb": [ 164, 226, 198 ], "hex": "#A4E2C6", "cmyk": [ 27, 0, 12, 11 ], "desc": "", "figure": "" }, { "id": "33166117", "name": "松柏绿", "tra_name": "松柏綠", "color_series": "green", "pinyin": "sōng bǎi lǜ", "font_color": "dark", "is_bright": true, "rgb": [ 33, 166, 117 ], "hex": "#21A675", "cmyk": [ 80, 0, 30, 35 ], "desc": "", "figure": "" }, { "id": "511972", "name": "松花绿", "tra_name": "松花綠", "color_series": "green", "pinyin": "sōng huā lǜ", "font_color": "bright", "is_bright": false, "rgb": [ 5, 119, 72 ], "hex": "#057748", "cmyk": [ 96, 0, 39, 53 ], "desc": "", "figure": "" }, { "id": "66102102", "name": "黛绿", "tra_name": "黛綠", "color_series": "green", "pinyin": "dài lǜ", "font_color": "bright", "is_bright": false, "rgb": [ 66, 102, 102 ], "hex": "#426666", "cmyk": [ 35, 0, 0, 60 ], "desc": "", "figure": "" }, { "id": "81154115", "name": "苍翠", "tra_name": "蒼翠", "color_series": "green", "pinyin": "cāng cuì", "font_color": "dark", "is_bright": true, "rgb": [ 81, 154, 115 ], "hex": "#519A73", "cmyk": [ 47, 0, 25, 40 ], "desc": "", "figure": "lvzhu.png?width=18rem" }, { "id": "212242231", "name": "水绿", "tra_name": "水綠", "color_series": "green", "pinyin": "shuǐ lǜ", "font_color": "dark", "is_bright": true, "rgb": [ 212, 242, 231 ], "hex": "#D4F2E7", "cmyk": [ 12, 0, 5, 5 ], "desc": "", "figure": "yu.png?width=17rem" }, { "id": "37248203", "name": "湖绿", "tra_name": "湖綠", "color_series": "green", "pinyin": "hú lǜ", "font_color": "dark", "is_bright": true, "rgb": [ 37, 248, 203 ], "hex": "#25F8CB", "cmyk": [ 85, 0, 18, 3 ], "desc": "皆是浅色。深色淡色,颜色深的或浅的,不再一一列出。", "figure": "hehua.caise.png" }, { "id": "84150136", "name": "铜绿", "tra_name": "銅綠", "color_series": "green", "pinyin": "tóng lǜ", "font_color": "dark", "is_bright": true, "rgb": [ 84, 150, 136 ], "hex": "#549688", "cmyk": [ 44, 0, 9, 41 ], "desc": "", "figure": "" }, { "id": "21017722", "name": "新禾绿", "tra_name": "新禾綠", "color_series": "green", "pinyin": "xīn hé lǜ", "font_color": "dark", "is_bright": true, "rgb": [ 210, 177, 22 ], "hex": "#D2B116", "cmyk": [ 17, 29, 100, 4 ], "desc": "", "figure": "" }, { "id": "17315895", "name": "淡灰绿", "tra_name": "淡灰綠", "color_series": "green", "pinyin": "dàn huī lǜ", "font_color": "dark", "is_bright": true, "rgb": [ 173, 158, 85 ], "hex": "#AD9E5F", "cmyk": [ 30, 30, 70, 12 ], "desc": "", "figure": "" }, { "id": "14212875", "name": "草灰绿", "tra_name": "草灰綠", "color_series": "green", "pinyin": "cǎo huī lǜ", "font_color": "dark", "is_bright": true, "rgb": [ 142, 128, 75 ], "hex": "#8E804B", "cmyk": [ 38, 38, 76, 24 ], "desc": "", "figure": "" }, { "id": "13611534", "name": "苔绿", "tra_name": "苔綠", "color_series": "green", "pinyin": "tái lǜ", "font_color": "dark", "is_bright": true, "rgb": [ 136, 115, 34 ], "hex": "#887322", "cmyk": [ 36, 42, 100, 29 ], "desc": "", "figure": "" }, { "id": "13411224", "name": "碧螺春绿", "tra_name": "碧螺春綠", "color_series": "green", "pinyin": "bì luó chūn lǜ", "font_color": "dark", "is_bright": true, "rgb": [ 134, 112, 24 ], "hex": "#867018", "cmyk": [ 36, 42, 100, 30 ], "desc": "", "figure": "" }, { "id": "1008834", "name": "潭水绿", "tra_name": "潭水綠", "color_series": "green", "pinyin": "tán shuǐ lǜ", "font_color": "bright", "is_bright": false, "rgb": [ 100, 88, 34 ], "hex": "#645822", "cmyk": [ 48, 48, 100, 45 ], "desc": "", "figure": "" }, { "id": "948320", "name": "橄榄绿", "tra_name": "橄欖綠", "color_series": "green", "pinyin": "gǎn lǎn lǜ", "font_color": "bright", "is_bright": false, "rgb": [ 94, 83, 20 ], "hex": "#5E5314", "cmyk": [ 50, 50, 10, 48 ], "desc": "", "figure": "" }, { "id": "18314118", "name": "枯绿", "tra_name": "枯綠", "color_series": "green", "pinyin": "kū lǜ", "font_color": "dark", "is_bright": true, "rgb": [ 183, 141, 18 ], "hex": "#B78D12", "cmyk": [ 21, 43, 100, 11 ], "desc": "", "figure": "" }, { "id": "13510424", "name": "粽叶绿", "tra_name": "粽葉綠", "color_series": "green", "pinyin": "zòng yè lǜ", "font_color": "dark", "is_bright": true, "rgb": [ 135, 104, 24 ], "hex": "#876818", "cmyk": [ 32, 50, 100, 31 ], "desc": "", "figure": "" }, { "id": "13810519", "name": "灰绿", "tra_name": "灰綠", "color_series": "green", "pinyin": "huī lǜ", "font_color": "dark", "is_bright": true, "rgb": [ 138, 105, 19 ], "hex": "#8A6913", "cmyk": [ 31, 51, 100, 30 ], "desc": "", "figure": "" }, { "id": "887123", "name": "暗海水绿", "tra_name": "暗海水綠", "color_series": "green", "pinyin": "àn hǎi shuǐ lǜ", "font_color": "bright", "is_bright": false, "rgb": [ 88, 71, 23 ], "hex": "#584717", "cmyk": [ 45, 56, 100, 56 ], "desc": "", "figure": "" }, { "id": "917319", "name": "棕榈绿", "tra_name": "棕櫚綠", "color_series": "green", "pinyin": "zōng lǘ lǜ", "font_color": "bright", "is_bright": false, "rgb": [ 91, 73, 19 ], "hex": "#5B4913", "cmyk": [ 45, 55, 100, 54 ], "desc": "", "figure": "" }, { "id": "1319429", "name": "蜴蜊绿", "tra_name": "蜴蜊綠", "color_series": "green", "pinyin": "yì lí lǜ", "font_color": "dark", "is_bright": true, "rgb": [ 131, 94, 29 ], "hex": "#835E1D", "cmyk": [ 31, 57, 100, 33 ], "desc": "", "figure": "" }, { "id": "816032", "name": "蟹壳绿", "tra_name": "蟹殼綠", "color_series": "green", "pinyin": "xiè ké lǜ", "font_color": "bright", "is_bright": false, "rgb": [ 81, 60, 32 ], "hex": "#513C20", "cmyk": [ 43, 63, 88, 61 ], "desc": "", "figure": "" }, { "id": "836027", "name": "古铜绿", "tra_name": "古銅綠", "color_series": "green", "pinyin": "gǔ tóng lǜ", "font_color": "bright", "is_bright": false, "rgb": [ 83, 60, 27 ], "hex": "#533C1B", "cmyk": [ 42, 64, 94, 60 ], "desc": "", "figure": "" }, { "id": "855924", "name": "焦茶绿", "tra_name": "焦茶綠", "color_series": "green", "pinyin": "jiāo chá lǜ", "font_color": "bright", "is_bright": false, "rgb": [ 85, 59, 24 ], "hex": "#553B18", "cmyk": [ 41, 66, 94, 60 ], "desc": "", "figure": "" }, { "id": "87195194", "name": "石绿", "tra_name": "石綠", "color_series": "green", "pinyin": "shí lǜ", "font_color": "dark", "is_bright": true, "rgb": [ 87, 195, 194 ], "hex": "#57C3C2", "cmyk": [ 78, 36, 0, 0 ], "desc": "", "figure": "" }, { "id": "185222201", "name": "竹篁绿", "tra_name": "竹篁綠", "color_series": "green", "pinyin": "zhú huáng lǜ", "font_color": "dark", "is_bright": true, "rgb": [ 185, 222, 201 ], "hex": "#B9DEC9", "cmyk": [ 40, 0, 30, 0 ], "desc": "", "figure": "" }, { "id": "131203172", "name": "粉绿", "tra_name": "粉綠", "color_series": "green", "pinyin": "fěn lǜ", "font_color": "dark", "is_bright": true, "rgb": [ 131, 203, 172 ], "hex": "#83CBAC", "cmyk": [ 64, 0, 46, 0 ], "desc": "", "figure": "" }, { "id": "18170156", "name": "美蝶绿", "tra_name": "美蝶綠", "color_series": "green", "pinyin": "měi dié lǜ", "font_color": "dark", "is_bright": true, "rgb": [ 18, 170, 156 ], "hex": "#12AA9C", "cmyk": [ 95, 0, 52, 0 ], "desc": "", "figure": "" }, { "id": "102193140", "name": "毛绿", "tra_name": "毛綠", "color_series": "green", "pinyin": "máo lǜ", "font_color": "dark", "is_bright": true, "rgb": [ 102, 193, 140 ], "hex": "#66C18C", "cmyk": [ 75, 0, 61, 0 ], "desc": "", "figure": "" }, { "id": "93190138", "name": "蔻梢绿", "tra_name": "蔻梢綠", "color_series": "green", "pinyin": "kòu shāo lǜ", "font_color": "dark", "is_bright": true, "rgb": [ 93, 190, 138 ], "hex": "#5DBE8A", "cmyk": [ 78, 0, 62, 0 ], "desc": "", "figure": "" }, { "id": "85187138", "name": "麦苗绿", "tra_name": "麥苗綠", "color_series": "green", "pinyin": "mài miáo lǜ", "font_color": "dark", "is_bright": true, "rgb": [ 85, 187, 138 ], "hex": "#55BB8A", "cmyk": [ 81, 0, 62, 0 ], "desc": "", "figure": "" }, { "id": "69183135", "name": "蛙绿", "tra_name": "蛙綠", "color_series": "green", "pinyin": "wā lǜ", "font_color": "dark", "is_bright": true, "rgb": [ 69, 183, 135 ], "hex": "#45B787", "cmyk": [ 86, 0, 63, 0 ], "desc": "", "figure": "" }, { "id": "43174133", "name": "铜绿", "tra_name": "銅綠", "color_series": "green", "pinyin": "tóng lǜ", "font_color": "dark", "is_bright": true, "rgb": [ 43, 174, 133 ], "hex": "#2BAE85", "cmyk": [ 92, 0, 64, 0 ], "desc": "", "figure": "" }, { "id": "27167132", "name": "竹绿", "tra_name": "竹綠", "color_series": "green", "pinyin": "zhú lǜ", "font_color": "dark", "is_bright": true, "rgb": [ 27, 167, 132 ], "hex": "#1BA784", "cmyk": [ 96, 0, 64, 0 ], "desc": "", "figure": "" }, { "id": "18161130", "name": "蓝绿", "tra_name": "藍綠", "color_series": "green", "pinyin": "lán lǜ", "font_color": "dark", "is_bright": true, "rgb": [ 18, 161, 130 ], "hex": "#12A182", "cmyk": [ 98, 2, 64, 0 ], "desc": "", "figure": "" }, { "id": "164202182", "name": "玉簪绿", "tra_name": "玉簪綠", "color_series": "green", "pinyin": "yù zān lǜ", "font_color": "dark", "is_bright": true, "rgb": [ 164, 202, 182 ], "hex": "#A4CAB6", "cmyk": [ 49, 5, 37, 0 ], "desc": "", "figure": "" }, { "id": "44150120", "name": "青矾绿", "tra_name": "青礬綠", "color_series": "green", "pinyin": "qīng fán lǜ", "font_color": "dark", "is_bright": true, "rgb": [ 44, 150, 120 ], "hex": "#2C9678", "cmyk": [ 96, 12, 66, 2 ], "desc": "", "figure": "" }, { "id": "154190175", "name": "草原远绿", "tra_name": "草原遠綠", "color_series": "green", "pinyin": "cǎo yuán yuǎn lǜ", "font_color": "dark", "is_bright": true, "rgb": [ 154, 190, 175 ], "hex": "#9ABEAF", "cmyk": [ 52, 11, 37, 0 ], "desc": "", "figure": "" }, { "id": "105167148", "name": "梧枝绿", "tra_name": "梧枝綠", "color_series": "green", "pinyin": "wú zhī lǜ", "font_color": "dark", "is_bright": true, "rgb": [ 105, 167, 148 ], "hex": "#69A794", "cmyk": [ 74, 14, 51, 1 ], "desc": "", "figure": "" }, { "id": "146179165", "name": "浪花绿", "tra_name": "浪花綠", "color_series": "green", "pinyin": "làng huā lǜ", "font_color": "dark", "is_bright": true, "rgb": [ 146, 179, 165 ], "hex": "#92B3A5", "cmyk": [ 55, 16, 40, 1 ], "desc": "", "figure": "" }, { "id": "36128103", "name": "海王绿", "tra_name": "海王綠", "color_series": "green", "pinyin": "hǎi wáng lǜ", "font_color": "dark", "is_bright": true, "rgb": [ 36, 128, 103 ], "hex": "#248067", "cmyk": [ 99, 23, 70, 10 ], "desc": "", "figure": "" }, { "id": "66134117", "name": "亚丁绿", "tra_name": "亞丁綠", "color_series": "green", "pinyin": "yà dīng lǜ", "font_color": "dark", "is_bright": true, "rgb": [ 66, 134, 117 ], "hex": "#428675", "cmyk": [ 88, 24, 61, 9 ], "desc": "", "figure": "" }, { "id": "73117104", "name": "飞泉绿", "tra_name": "飛泉綠", "color_series": "green", "pinyin": "fēi quán lǜ", "font_color": "bright", "is_bright": false, "rgb": [ 73, 117, 104 ], "hex": "#497568", "cmyk": [ 82, 32, 60, 20 ], "desc": "", "figure": "" }, { "id": "346254", "name": "苍绿", "tra_name": "蒼綠", "color_series": "green", "pinyin": "cāng lǜ", "font_color": "bright", "is_bright": false, "rgb": [ 34, 62, 54 ], "hex": "#223E36", "cmyk": [ 93, 46, 70, 61 ], "desc": "", "figure": "" }, { "id": "265950", "name": "深海绿", "tra_name": "深海綠", "color_series": "green", "pinyin": "shēn hǎi lǜ", "font_color": "bright", "is_bright": false, "rgb": [ 26, 59, 50 ], "hex": "#1A3B32", "cmyk": [ 98, 46, 73, 63 ], "desc": "", "figure": "" }, { "id": "313835", "name": "苷蓝绿", "tra_name": "苷藍綠", "color_series": "green", "pinyin": "gān lán lǜ", "font_color": "bright", "is_bright": false, "rgb": [ 31, 38, 35 ], "hex": "#1F2623", "cmyk": [ 82, 60, 65, 80 ], "desc": "", "figure": "" }, { "id": "203027", "name": "莽丛绿", "tra_name": "莽叢綠", "color_series": "green", "pinyin": "mǎng cóng lǜ", "font_color": "bright", "is_bright": false, "rgb": [ 20, 30, 27 ], "hex": "#141E1B", "cmyk": [ 90, 62, 67, 86 ], "desc": "", "figure": "" }, { "id": "158204171", "name": "明绿", "tra_name": "明綠", "color_series": "green", "pinyin": "míng lǜ", "font_color": "dark", "is_bright": true, "rgb": [ 158, 204, 171 ], "hex": "#9ECCAB", "cmyk": [ 53, 1, 44, 0 ], "desc": "", "figure": "" }, { "id": "104184142", "name": "田园绿", "tra_name": "田園綠", "color_series": "green", "pinyin": "tián yuán lǜ", "font_color": "dark", "is_bright": true, "rgb": [ 104, 184, 142 ], "hex": "#68B88E", "cmyk": [ 75, 0, 59, 0 ], "desc": "", "figure": "" }, { "id": "3216198", "name": "翠绿", "tra_name": "翠綠", "color_series": "green", "pinyin": "cuì lǜ", "font_color": "dark", "is_bright": true, "rgb": [ 32, 161, 98 ], "hex": "#20A162", "cmyk": [ 98, 0, 82, 0 ], "desc": "", "figure": "" }, { "id": "97172133", "name": "淡绿", "tra_name": "淡綠", "color_series": "green", "pinyin": "dàn lǜ", "font_color": "dark", "is_bright": true, "rgb": [ 97, 172, 133 ], "hex": "#61AC85", "cmyk": [ 78, 6, 62, 0 ], "desc": "", "figure": "" }, { "id": "64160112", "name": "葱绿", "tra_name": "蔥綠", "color_series": "green", "pinyin": "cōng lǜ", "font_color": "dark", "is_bright": true, "rgb": [ 64, 160, 112 ], "hex": "#40A070", "cmyk": [ 90, 7, 73, 0 ], "desc": "", "figure": "" }, { "id": "3414883", "name": "孔雀绿", "tra_name": "孔雀綠", "color_series": "green", "pinyin": "kǒng què lǜ", "font_color": "dark", "is_bright": true, "rgb": [ 34, 148, 83 ], "hex": "#229453", "cmyk": [ 99, 10, 91, 2 ], "desc": "", "figure": "" }, { "id": "60149102", "name": "蟾绿", "tra_name": "蟾綠", "color_series": "green", "pinyin": "chán lǜ", "font_color": "dark", "is_bright": true, "rgb": [ 60, 149, 102 ], "hex": "#3C9566", "cmyk": [ 92, 14, 76, 2 ], "desc": "", "figure": "" }, { "id": "3213777", "name": "宫殿绿", "tra_name": "宮殿綠", "color_series": "green", "pinyin": "gōng diàn lǜ", "font_color": "dark", "is_bright": true, "rgb": [ 32, 137, 77 ], "hex": "#20894D", "cmyk": [ 100, 17, 92, 5 ], "desc": "", "figure": "" }, { "id": "131167141", "name": "松霜绿", "tra_name": "松霜綠", "color_series": "green", "pinyin": "sōng shuāng lǜ", "font_color": "dark", "is_bright": true, "rgb": [ 131, 167, 141 ], "hex": "#83A78D", "cmyk": [ 61, 19, 52, 3 ], "desc": "", "figure": "" }, { "id": "87149114", "name": "蛋白石绿", "tra_name": "蛋白石綠", "color_series": "green", "pinyin": "dàn bái shí lǜ", "font_color": "dark", "is_bright": true, "rgb": [ 87, 149, 114 ], "hex": "#579572", "cmyk": [ 81, 19, 67, 4 ], "desc": "", "figure": "" }, { "id": "3212776", "name": "薄荷绿", "tra_name": "薄荷綠", "color_series": "green", "pinyin": "bò he lǜ", "font_color": "bright", "is_bright": false, "rgb": [ 32, 127, 76 ], "hex": "#207F4C", "cmyk": [ 100, 22, 90, 10 ], "desc": "", "figure": "" }, { "id": "110139116", "name": "瓦松绿", "tra_name": "瓦松綠", "color_series": "green", "pinyin": "wǎ sōng lǜ", "font_color": "dark", "is_bright": true, "rgb": [ 110, 139, 116 ], "hex": "#6E8B74", "cmyk": [ 66, 29, 58, 12 ], "desc": "", "figure": "" }, { "id": "2610464", "name": "荷叶绿", "tra_name": "荷葉綠", "color_series": "green", "pinyin": "hé yè lǜ", "font_color": "bright", "is_bright": false, "rgb": [ 26, 104, 64 ], "hex": "#1A6840", "cmyk": [ 100, 31, 91, 25 ], "desc": "", "figure": "" }, { "id": "9410291", "name": "田螺绿", "tra_name": "田螺綠", "color_series": "green", "pinyin": "tián luó lǜ", "font_color": "bright", "is_bright": false, "rgb": [ 94, 102, 91 ], "hex": "#5E665B", "cmyk": [ 62, 42, 56, 34 ], "desc": "", "figure": "" }, { "id": "729177", "name": "白屈菜绿", "tra_name": "白屈菜綠", "color_series": "green", "pinyin": "bái qū cài lǜ", "font_color": "bright", "is_bright": false, "rgb": [ 72, 91, 77 ], "hex": "#485B4D", "cmyk": [ 74, 42, 65, 40 ], "desc": "", "figure": "" }, { "id": "555652", "name": "蒽油绿", "tra_name": "蒽油綠", "color_series": "green", "pinyin": "ēn yóu lǜ", "font_color": "bright", "is_bright": false, "rgb": [ 55, 56, 52 ], "hex": "#373834", "cmyk": [ 68, 56, 60, 66 ], "desc": "", "figure": "" }, { "id": "434944", "name": "槲寄生绿", "tra_name": "槲寄生綠", "color_series": "green", "pinyin": "hú jì shēng lǜ", "font_color": "bright", "is_bright": false, "rgb": [ 43, 49, 44 ], "hex": "#2B312C", "cmyk": [ 76, 56, 75, 72 ], "desc": "", "figure": "" }, { "id": "213527", "name": "云杉绿", "tra_name": "雲杉綠", "color_series": "green", "pinyin": "yún shān lǜ", "font_color": "bright", "is_bright": false, "rgb": [ 21, 35, 27 ], "hex": "#15231B", "cmyk": [ 91, 60, 76, 83 ], "desc": "", "figure": "" }, { "id": "223236213", "name": "艾背绿", "tra_name": "艾背綠", "color_series": "green", "pinyin": "ài bèi lǜ", "font_color": "dark", "is_bright": true, "rgb": [ 223, 236, 213 ], "hex": "#DFECD5", "cmyk": [ 20, 1, 23, 0 ], "desc": "", "figure": "" }, { "id": "173213162", "name": "嘉陵水绿", "tra_name": "嘉陵水綠", "color_series": "green", "pinyin": "jiā líng shuǐ lǜ", "font_color": "dark", "is_bright": true, "rgb": [ 173, 213, 162 ], "hex": "#ADD5A2", "cmyk": [ 47, 0, 49, 0 ], "desc": "", "figure": "" }, { "id": "6517973", "name": "玉髓绿", "tra_name": "玉髓綠", "color_series": "green", "pinyin": "yù suǐ lǜ", "font_color": "dark", "is_bright": true, "rgb": [ 65, 179, 73 ], "hex": "#41B349", "cmyk": [ 89, 0, 96, 0 ], "desc": "", "figure": "" }, { "id": "6717868", "name": "鲜绿", "tra_name": "鮮綠", "color_series": "green", "pinyin": "xiān lǜ", "font_color": "dark", "is_bright": true, "rgb": [ 67, 178, 68 ], "hex": "#43B244", "cmyk": [ 88, 0, 99, 0 ], "desc": "", "figure": "" }, { "id": "6517460", "name": "宝石绿", "tra_name": "寶石綠", "color_series": "green", "pinyin": "bǎo shí lǜ", "font_color": "dark", "is_bright": true, "rgb": [ 65, 174, 60 ], "hex": "#41AE3C", "cmyk": [ 90, 0, 100, 0 ], "desc": "", "figure": "" }, { "id": "178207135", "name": "橄榄石绿", "tra_name": "橄欖石綠", "color_series": "green", "pinyin": "gǎn lǎn shí lǜ", "font_color": "dark", "is_bright": true, "rgb": [ 178, 207, 135 ], "hex": "#B2CF87", "cmyk": [ 44, 3, 61, 0 ], "desc": "", "figure": "" }, { "id": "140194105", "name": "水绿", "tra_name": "水綠", "color_series": "green", "pinyin": "shuǐ lǜ", "font_color": "dark", "is_bright": true, "rgb": [ 140, 194, 105 ], "hex": "#8CC269", "cmyk": [ 62, 0, 76, 0 ], "desc": "", "figure": "" }, { "id": "183208122", "name": "芦苇绿", "tra_name": "蘆葦綠", "color_series": "green", "pinyin": "lú wěi lǜ", "font_color": "dark", "is_bright": true, "rgb": [ 183, 208, 122 ], "hex": "#B7D07A", "cmyk": [ 42, 3, 67, 0 ], "desc": "", "figure": "" }, { "id": "210217122", "name": "槐花黄绿", "tra_name": "槐花黃綠", "color_series": "green", "pinyin": "huái huā huáng lǜ", "font_color": "dark", "is_bright": true, "rgb": [ 210, 217, 122 ], "hex": "#D2D97A", "cmyk": [ 28, 6, 66, 0 ], "desc": "", "figure": "" }, { "id": "186207101", "name": "苹果绿", "tra_name": "蘋果綠", "color_series": "green", "pinyin": "píng guǒ lǜ", "font_color": "dark", "is_bright": true, "rgb": [ 186, 207, 101 ], "hex": "#BACF65", "cmyk": [ 41, 4, 76, 0 ], "desc": "", "figure": "" }, { "id": "15019478", "name": "芽绿", "tra_name": "芽綠", "color_series": "green", "pinyin": "yá lǜ", "font_color": "dark", "is_bright": true, "rgb": [ 150, 194, 78 ], "hex": "#96C24E", "cmyk": [ 58, 1, 88, 0 ], "desc": "", "figure": "" }, { "id": "19020154", "name": "橄榄黄绿", "tra_name": "橄欖黃綠", "color_series": "green", "pinyin": "gǎn lǎn huáng lǜ", "font_color": "dark", "is_bright": true, "rgb": [ 190, 201, 54 ], "hex": "#BEC936", "cmyk": [ 38, 8, 94, 1 ], "desc": "", "figure": "" }, { "id": "9117435", "name": "鹦鹉绿", "tra_name": "鸚鵡綠", "color_series": "green", "pinyin": "yīng wǔ lǜ", "font_color": "dark", "is_bright": true, "rgb": [ 91, 174, 35 ], "hex": "#5BAE23", "cmyk": [ 81, 0, 100, 0 ], "desc": "", "figure": "" }, { "id": "376136", "name": "油绿", "tra_name": "油綠", "color_series": "green", "pinyin": "yóu lǜ", "font_color": "bright", "is_bright": false, "rgb": [ 37, 61, 36 ], "hex": "#253D24", "cmyk": [ 84, 64, 94, 45 ], "desc": "", "figure": "" }, { "id": "217227150", "name": "牙绿", "tra_name": "牙緑", "color_series": "green", "pinyin": "yá lv̀", "font_color": "dark", "is_bright": true, "rgb": [ 217, 227, 150 ], "hex": "#D9E396", "cmyk": [ 4, 0, 34, 11 ], "desc": "", "figure": "" }, { "id": "205219143", "name": "苦瓜绿", "tra_name": "苦瓜緑", "color_series": "green", "pinyin": "kǔ guā lv̀", "font_color": "dark", "is_bright": true, "rgb": [ 205, 219, 143 ], "hex": "#CDDB8F", "cmyk": [ 6, 0, 35, 14 ], "desc": "", "figure": "" }, { "id": "183178120", "name": "枯绿", "tra_name": "枯緑", "color_series": "green", "pinyin": "kū lv̀", "font_color": "dark", "is_bright": true, "rgb": [ 183, 178, 120 ], "hex": "#B7B278", "cmyk": [ 0, 3, 34, 28 ], "desc": "", "figure": "" }, { "id": "126161116", "name": "嫩草绿", "tra_name": "嫩草緑", "color_series": "green", "pinyin": "nèn cǎo lv̀", "font_color": "dark", "is_bright": true, "rgb": [ 126, 161, 116 ], "hex": "#7EA174", "cmyk": [ 22, 0, 28, 37 ], "desc": "", "figure": "" }, { "id": "171204137", "name": "浅草绿", "tra_name": "浅草緑", "color_series": "green", "pinyin": "qiǎn cǎo lv̀", "font_color": "dark", "is_bright": true, "rgb": [ 171, 204, 137 ], "hex": "#ABCC89", "cmyk": [ 16, 0, 33, 20 ], "desc": "", "figure": "" }, { "id": "165183149", "name": "铜绿色", "tra_name": "銅緑色", "color_series": "green", "pinyin": "tóng lv̀ sè", "font_color": "dark", "is_bright": true, "rgb": [ 165, 183, 149 ], "hex": "#A5B795", "cmyk": [ 10, 0, 19, 28 ], "desc": "", "figure": "" }, { "id": "14816687", "name": "黄绿", "tra_name": "黄緑", "color_series": "green", "pinyin": "huáng lv̀", "font_color": "dark", "is_bright": true, "rgb": [ 148, 166, 87 ], "hex": "#94A657", "cmyk": [ 11, 0, 48, 35 ], "desc": "", "figure": "" }, { "id": "14015054", "name": "深芽绿", "tra_name": "深芽緑", "color_series": "green", "pinyin": "shēn yá lv̀", "font_color": "dark", "is_bright": true, "rgb": [ 140, 150, 54 ], "hex": "#8C9636", "cmyk": [ 7, 0, 64, 41 ], "desc": "", "figure": "" }, { "id": "148198107", "name": "葱绿", "tra_name": "葱緑", "color_series": "green", "pinyin": "cōng lv̀", "font_color": "dark", "is_bright": true, "rgb": [ 148, 198, 107 ], "hex": "#94C66B", "cmyk": [ 25, 0, 46, 22 ], "desc": "", "figure": "" }, { "id": "9011395", "name": "夜绿色", "tra_name": "夜緑色", "color_series": "green", "pinyin": "yè lv̀ sè", "font_color": "bright", "is_bright": false, "rgb": [ 90, 113, 95 ], "hex": "#5A715F", "cmyk": [ 20, 0, 16, 56 ], "desc": "", "figure": "" }, { "id": "202212186", "name": "军绿", "tra_name": "軍緑", "color_series": "green", "pinyin": "jūn lv̀", "font_color": "dark", "is_bright": true, "rgb": [ 202, 212, 186 ], "hex": "#CAD4BA", "cmyk": [ 5, 0, 12, 17 ], "desc": "", "figure": "" }, { "id": "789569", "name": "苍绿", "tra_name": "蒼緑", "color_series": "green", "pinyin": "cāng lv̀", "font_color": "bright", "is_bright": false, "rgb": [ 78, 95, 69 ], "hex": "#4E5F45", "cmyk": [ 18, 0, 27, 63 ], "desc": "", "figure": "" }, { "id": "10610452", "name": "橄榄绿", "tra_name": "橄欖緑", "color_series": "green", "pinyin": "gǎn lǎn lv̀", "font_color": "bright", "is_bright": false, "rgb": [ 106, 104, 52 ], "hex": "#6A6834", "cmyk": [ 0, 2, 51, 58 ], "desc": "", "figure": "" }, { "id": "81150112", "name": "冬瓜绿", "tra_name": "冬瓜緑", "color_series": "green", "pinyin": "dōng guā lv̀", "font_color": "dark", "is_bright": true, "rgb": [ 81, 150, 112 ], "hex": "#519670", "cmyk": [ 46, 0, 25, 41 ], "desc": "", "figure": "" }, { "id": "150187143", "name": "荷茎绿", "tra_name": "荷茎緑", "color_series": "green", "pinyin": "hé jīng lv̀", "font_color": "dark", "is_bright": true, "rgb": [ 150, 187, 143 ], "hex": "#96BB8F", "cmyk": [ 20, 0, 24, 27 ], "desc": "", "figure": "" }, { "id": "7912687", "name": "绿琉璃色", "tra_name": "緑琉璃色", "color_series": "green", "pinyin": "lv̀ líu lí sè", "font_color": "bright", "is_bright": false, "rgb": [ 79, 126, 87 ], "hex": "#4F7E57", "cmyk": [ 37, 0, 31, 51 ], "desc": "", "figure": "" }, { "id": "147180105", "name": "嫩葱绿", "tra_name": "嫩葱緑", "color_series": "green", "pinyin": "nèn cōng lv̀", "font_color": "dark", "is_bright": true, "rgb": [ 147, 180, 105 ], "hex": "#93B469", "cmyk": [ 18, 0, 42, 29 ], "desc": "", "figure": "" }, { "id": "014289", "name": "鹦鹉绿", "tra_name": "鸚鵡緑", "color_series": "green", "pinyin": "yīng wǔ lv̀", "font_color": "dark", "is_bright": true, "rgb": [ 0, 142, 89 ], "hex": "#008E59", "cmyk": [ 100, 0, 37, 44 ], "desc": "", "figure": "" }, { "id": "011095", "name": "翠绿", "tra_name": "翠緑", "color_series": "green", "pinyin": "cùi lv̀", "font_color": "bright", "is_bright": false, "rgb": [ 0, 110, 95 ], "hex": "#006E5F", "cmyk": [ 100, 0, 14, 57 ], "desc": "", "figure": "" }, { "id": "70129126", "name": "湖绿", "tra_name": "湖緑", "color_series": "green", "pinyin": "hú lv̀", "font_color": "dark", "is_bright": true, "rgb": [ 70, 129, 126 ], "hex": "#46817E", "cmyk": [ 46, 0, 2, 49 ], "desc": "", "figure": "" }, { "id": "22133112", "name": "粗孔雀绿", "tra_name": "粗孔雀緑", "color_series": "green", "pinyin": "cū kǒng què lv̀", "font_color": "dark", "is_bright": true, "rgb": [ 22, 133, 112 ], "hex": "#168570", "cmyk": [ 83, 0, 16, 48 ], "desc": "", "figure": "" }, { "id": "47143109", "name": "深绿宝石", "tra_name": "深緑宝石", "color_series": "green", "pinyin": "shēn lv̀ bǎo shí", "font_color": "dark", "is_bright": true, "rgb": [ 47, 143, 109 ], "hex": "#2F8F6D", "cmyk": [ 67, 0, 24, 44 ], "desc": "", "figure": "" }, { "id": "92137135", "name": "灰绿", "tra_name": "灰緑", "color_series": "green", "pinyin": "hūi lv̀", "font_color": "dark", "is_bright": true, "rgb": [ 92, 137, 135 ], "hex": "#5C8987", "cmyk": [ 33, 0, 1, 46 ], "desc": "", "figure": "" }, { "id": "104146125", "name": "冬绿", "tra_name": "冬緑", "color_series": "green", "pinyin": "dōng lv̀", "font_color": "dark", "is_bright": true, "rgb": [ 104, 146, 125 ], "hex": "#68927D", "cmyk": [ 29, 0, 14, 43 ], "desc": "", "figure": "" }, { "id": "0180131", "name": "巴黎绿", "tra_name": "巴黎緑", "color_series": "green", "pinyin": "bā lí lv̀", "font_color": "dark", "is_bright": true, "rgb": [ 0, 180, 131 ], "hex": "#00B483", "cmyk": [ 100, 0, 27, 29 ], "desc": "", "figure": "" }, { "id": "138194142", "name": "果绿", "tra_name": "果緑", "color_series": "green", "pinyin": "guǒ lv̀", "font_color": "dark", "is_bright": true, "rgb": [ 138, 194, 142 ], "hex": "#8AC28E", "cmyk": [ 29, 0, 27, 24 ], "desc": "", "figure": "" }, { "id": "136213185", "name": "玉绿", "tra_name": "玉緑", "color_series": "green", "pinyin": "yù lv̀", "font_color": "dark", "is_bright": true, "rgb": [ 136, 213, 185 ], "hex": "#88D5B9", "cmyk": [ 36, 0, 13, 16 ], "desc": "", "figure": "" }, { "id": "132192190", "name": "浅松绿", "tra_name": "浅松緑", "color_series": "green", "pinyin": "qiǎn sōng lv̀", "font_color": "dark", "is_bright": true, "rgb": [ 132, 192, 190 ], "hex": "#84C0BE", "cmyk": [ 31, 0, 1, 25 ], "desc": "", "figure": "" }, { "id": "103180176", "name": "深松绿", "tra_name": "深松緑", "color_series": "green", "pinyin": "shēn sōng lv̀", "font_color": "dark", "is_bright": true, "rgb": [ 103, 180, 176 ], "hex": "#67B4B0", "cmyk": [ 43, 0, 2, 29 ], "desc": "", "figure": "" }, { "id": "169225211", "name": "浅鲜绿", "tra_name": "浅鮮緑", "color_series": "green", "pinyin": "qiǎn xiān lv̀", "font_color": "dark", "is_bright": true, "rgb": [ 169, 225, 211 ], "hex": "#A9E1D3", "cmyk": [ 25, 0, 6, 12 ], "desc": "", "figure": "" }, { "id": "144202175", "name": "三绿", "tra_name": "三緑", "color_series": "green", "pinyin": "sān lv̀", "font_color": "dark", "is_bright": true, "rgb": [ 144, 202, 175 ], "hex": "#90CAAF", "cmyk": [ 29, 0, 13, 21 ], "desc": "", "figure": "" }, { "id": "186222209", "name": "枝绿", "tra_name": "枝緑", "color_series": "green", "pinyin": "zhī lv̀", "font_color": "dark", "is_bright": true, "rgb": [ 186, 222, 209 ], "hex": "#BADED1", "cmyk": [ 16, 0, 6, 13 ], "desc": "", "figure": "" }, { "id": "174196183", "name": "淡灰绿", "tra_name": "淡灰緑", "color_series": "green", "pinyin": "dàn hūi lv̀", "font_color": "dark", "is_bright": true, "rgb": [ 174, 196, 183 ], "hex": "#AEC4B7", "cmyk": [ 11, 0, 7, 23 ], "desc": "", "figure": "" }, { "id": "184214194", "name": "淡绿", "tra_name": "淡緑", "color_series": "green", "pinyin": "dàn lv̀", "font_color": "dark", "is_bright": true, "rgb": [ 184, 214, 194 ], "hex": "#B8D6C2", "cmyk": [ 14, 0, 9, 16 ], "desc": "", "figure": "" }, { "id": "187226214", "name": "浅水绿", "tra_name": "浅水緑", "color_series": "green", "pinyin": "qiǎn shǔi lv̀", "font_color": "dark", "is_bright": true, "rgb": [ 187, 226, 214 ], "hex": "#BBE2D6", "cmyk": [ 17, 0, 5, 11 ], "desc": "", "figure": "" }, { "id": "227239209", "name": "春绿", "tra_name": "春緑", "color_series": "green", "pinyin": "chūn lv̀", "font_color": "dark", "is_bright": true, "rgb": [ 227, 239, 209 ], "hex": "#E3EFD1", "cmyk": [ 5, 0, 13, 6 ], "desc": "", "figure": "" }, { "id": "184200183", "name": "锈绿", "tra_name": "銹緑", "color_series": "green", "pinyin": "xìu lv̀", "font_color": "dark", "is_bright": true, "rgb": [ 184, 200, 183 ], "hex": "#B8C8B7", "cmyk": [ 8, 0, 8, 22 ], "desc": "", "figure": "" }, { "id": "127135122", "name": "中条虾绿", "tra_name": "中条蝦緑", "color_series": "green", "pinyin": "zhōng tiáo xiā lv̀", "font_color": "dark", "is_bright": true, "rgb": [ 127, 135, 122 ], "hex": "#7F877A", "cmyk": [ 6, 0, 10, 47 ], "desc": "", "figure": "" }, { "id": "190197181", "name": "松绿色", "tra_name": "松緑色", "color_series": "green", "pinyin": "sōng lv̀ sè", "font_color": "dark", "is_bright": true, "rgb": [ 190, 197, 181 ], "hex": "#BEC5B5", "cmyk": [ 4, 0, 8, 23 ], "desc": "", "figure": "" }, { "id": "100115112", "name": "卡其绿", "tra_name": "卡其緑", "color_series": "green", "pinyin": "qiǎ qí lv̀", "font_color": "bright", "is_bright": false, "rgb": [ 100, 115, 112 ], "hex": "#647370", "cmyk": [ 13, 0, 3, 55 ], "desc": "", "figure": "" }, { "id": "6111083", "name": "老绿", "tra_name": "老緑", "color_series": "green", "pinyin": "lǎo lv̀", "font_color": "bright", "is_bright": false, "rgb": [ 61, 110, 83 ], "hex": "#3D6E53", "cmyk": [ 45, 0, 25, 57 ], "desc": "", "figure": "" }, { "id": "639180", "name": "墨绿", "tra_name": "墨緑", "color_series": "green", "pinyin": "mò lv̀", "font_color": "bright", "is_bright": false, "rgb": [ 63, 91, 80 ], "hex": "#3F5B50", "cmyk": [ 31, 0, 12, 64 ], "desc": "", "figure": "" }, { "id": "929779", "name": "茶绿", "tra_name": "茶緑", "color_series": "green", "pinyin": "chá lv̀", "font_color": "bright", "is_bright": false, "rgb": [ 92, 97, 79 ], "hex": "#5C614F", "cmyk": [ 5, 0, 19, 62 ], "desc": "", "figure": "" }, { "id": "949666", "name": "鉄绿", "tra_name": "鉄緑", "color_series": "green", "pinyin": "tiě lv̀", "font_color": "bright", "is_bright": false, "rgb": [ 94, 96, 66 ], "hex": "#5E6042", "cmyk": [ 2, 0, 31, 62 ], "desc": "", "figure": "" }, { "id": "698574", "name": "油绿", "tra_name": "油緑", "color_series": "green", "pinyin": "yóu lv̀", "font_color": "bright", "is_bright": false, "rgb": [ 69, 85, 74 ], "hex": "#45554A", "cmyk": [ 19, 0, 13, 67 ], "desc": "", "figure": "" }, { "id": "7411193", "name": "暗苔绿", "tra_name": "暗苔緑", "color_series": "green", "pinyin": "àn tái lv̀", "font_color": "bright", "is_bright": false, "rgb": [ 74, 111, 93 ], "hex": "#4A6F5D", "cmyk": [ 33, 0, 16, 56 ], "desc": "", "figure": "" }, { "id": "218497", "name": "毛绿", "tra_name": "毛緑", "color_series": "green", "pinyin": "máo lv̀", "font_color": "bright", "is_bright": false, "rgb": [ 21, 84, 97 ], "hex": "#155461", "cmyk": [ 78, 13, 0, 62 ], "desc": "", "figure": "" }, { "id": "0130139", "name": "品绿", "tra_name": "品緑", "color_series": "green", "pinyin": "pǐn lv̀", "font_color": "dark", "is_bright": true, "rgb": [ 0, 130, 139 ], "hex": "#00828B", "cmyk": [ 100, 6, 0, 45 ], "desc": "", "figure": "" }, { "id": "09190", "name": "沙绿", "tra_name": "沙緑", "color_series": "green", "pinyin": "shā lv̀", "font_color": "bright", "is_bright": false, "rgb": [ 0, 91, 90 ], "hex": "#005B5A", "cmyk": [ 100, 0, 1, 64 ], "desc": "", "figure": "" }, { "id": "175200186", "name": "奶绿", "tra_name": "奶緑", "color_series": "green", "pinyin": "nǎi lv̀", "font_color": "dark", "is_bright": true, "rgb": [ 175, 200, 186 ], "hex": "#AFC8BA", "cmyk": [ 12, 0, 7, 22 ], "desc": "", "figure": "" }, { "id": "2216981", "name": "石绿", "tra_name": "石綠", "color_series": "green", "pinyin": "shí lǜ", "font_color": "dark", "is_bright": true, "rgb": [ 22, 169, 81 ], "hex": "#16A951", "cmyk": [ 87, 0, 52, 34 ], "desc": "", "figure": "" } ], "cyan": [ { "id": "12014698", "name": "竹青", "tra_name": "竹青", "color_series": "cyan", "pinyin": "zhú qīng", "font_color": "dark", "is_bright": true, "rgb": [ 120, 146, 98 ], "hex": "#789262", "cmyk": [ 18, 0, 33, 43 ], "desc": "", "figure": "" }, { "id": "1418458", "name": "葱青", "tra_name": "蔥青", "color_series": "cyan", "pinyin": "cōng qīng", "font_color": "dark", "is_bright": true, "rgb": [ 14, 184, 58 ], "hex": "#0EB83A", "cmyk": [ 92, 0, 68, 28 ], "desc": "", "figure": "" }, { "id": "1016368", "name": "青葱", "tra_name": "青蔥", "color_series": "cyan", "pinyin": "qīng cōng", "font_color": "dark", "is_bright": true, "rgb": [ 10, 163, 68 ], "hex": "#0AA344", "cmyk": [ 94, 0, 58, 36 ], "desc": "", "figure": "" }, { "id": "27209165", "name": "碧色", "tra_name": "碧色", "color_series": "cyan", "pinyin": "bì sè", "font_color": "dark", "is_bright": true, "rgb": [ 27, 209, 165 ], "hex": "#1BD1A5", "cmyk": [ 87, 0, 21, 18 ], "desc": "", "figure": "" }, { "id": "72192163", "name": "青碧", "tra_name": "青碧", "color_series": "cyan", "pinyin": "qīng bì", "font_color": "dark", "is_bright": true, "rgb": [ 72, 192, 163 ], "hex": "#48C0A3", "cmyk": [ 62, 0, 15, 25 ], "desc": "", "figure": "" }, { "id": "0224158", "name": "青色", "tra_name": "青色", "color_series": "cyan", "pinyin": "qīng sè", "font_color": "dark", "is_bright": true, "rgb": [ 0, 224, 158 ], "hex": "#00E09E", "cmyk": [ 100, 0, 29, 12 ], "desc": "", "figure": "" }, { "id": "0224121", "name": "青翠", "tra_name": "青翠", "color_series": "cyan", "pinyin": "qīng cuì", "font_color": "dark", "is_bright": true, "rgb": [ 0, 224, 121 ], "hex": "#00E079", "cmyk": [ 100, 0, 46, 12 ], "desc": "", "figure": "" }, { "id": "192235215", "name": "青白", "tra_name": "青白", "color_series": "cyan", "pinyin": "qīng bái", "font_color": "dark", "is_bright": true, "rgb": [ 192, 235, 215 ], "hex": "#C0EBD7", "cmyk": [ 18, 0, 9, 8 ], "desc": "", "figure": "" }, { "id": "224238232", "name": "鸭卵青", "tra_name": "鴨卵青", "color_series": "cyan", "pinyin": "yā luǎn qīng", "font_color": "dark", "is_bright": true, "rgb": [ 224, 238, 232 ], "hex": "#E0EEE8", "cmyk": [ 6, 0, 3, 7 ], "desc": "", "figure": "" }, { "id": "187205197", "name": "蟹壳青", "tra_name": "蟹殼青", "color_series": "cyan", "pinyin": "xiè ké qīng", "font_color": "dark", "is_bright": true, "rgb": [ 187, 205, 197 ], "hex": "#BBCDC5", "cmyk": [ 9, 0, 4, 20 ], "desc": "", "figure": "" }, { "id": "667680", "name": "鸦青", "tra_name": "鴉青", "color_series": "cyan", "pinyin": "yā qīng", "font_color": "bright", "is_bright": false, "rgb": [ 66, 76, 80 ], "hex": "#424C50", "cmyk": [ 18, 5, 0, 69 ], "desc": "", "figure": "" }, { "id": "15020684", "name": "豆青", "tra_name": "豆青", "color_series": "cyan", "pinyin": "dòu qīng", "font_color": "dark", "is_bright": true, "rgb": [ 150, 206, 84 ], "hex": "#96CE54", "cmyk": [ 27, 0, 59, 19 ], "desc": "", "figure": "" }, { "id": "46223163", "name": "玉色", "tra_name": "玉色", "color_series": "cyan", "pinyin": "yù sè", "font_color": "dark", "is_bright": true, "rgb": [ 46, 223, 163 ], "hex": "#2EDFA3", "cmyk": [ 79, 0, 27, 13 ], "desc": "", "figure": "" }, { "id": "23124176", "name": "靛青", "tra_name": "靛青", "color_series": "cyan", "pinyin": "diàn qīng", "font_color": "dark", "is_bright": true, "rgb": [ 23, 124, 176 ], "hex": "#177CB0", "cmyk": [ 87, 30, 0, 31 ], "desc": "", "figure": "" }, { "id": "4678126", "name": "藏青", "tra_name": "藏青", "color_series": "cyan", "pinyin": "zàng qīng", "font_color": "bright", "is_bright": false, "rgb": [ 46, 78, 126 ], "hex": "#2E4E7E", "cmyk": [ 63, 38, 0, 51 ], "desc": "", "figure": "" }, { "id": "051113", "name": "绀青", "tra_name": "紺青", "color_series": "cyan", "pinyin": "gàn qīng", "font_color": "bright", "is_bright": false, "rgb": [ 0, 51, 113 ], "hex": "#003371", "cmyk": [ 100, 55, 0, 56 ], "desc": "", "figure": "" }, { "id": "12829174", "name": "青莲", "tra_name": "青蓮", "color_series": "cyan", "pinyin": "qīng lián", "font_color": "dark", "is_bright": true, "rgb": [ 128, 29, 174 ], "hex": "#801DAE", "cmyk": [ 26, 83, 0, 32 ], "desc": "", "figure": "" }, { "id": "76141174", "name": "群青", "tra_name": "群青", "color_series": "cyan", "pinyin": "qún qīng", "font_color": "dark", "is_bright": true, "rgb": [ 76, 141, 174 ], "hex": "#4C8DAE", "cmyk": [ 56, 19, 0, 32 ], "desc": "", "figure": "" }, { "id": "176164227", "name": "雪青", "tra_name": "雪青", "color_series": "cyan", "pinyin": "xuě qīng", "font_color": "dark", "is_bright": true, "rgb": [ 176, 164, 227 ], "hex": "#B0A4E3", "cmyk": [ 22, 28, 0, 11 ], "desc": "", "figure": "" }, { "id": "615979", "name": "玄青", "tra_name": "玄青", "color_series": "cyan", "pinyin": "xuán qīng", "font_color": "bright", "is_bright": false, "rgb": [ 61, 59, 79 ], "hex": "#3D3B4F", "cmyk": [ 23, 25, 0, 69 ], "desc": "", "figure": "" }, { "id": "8097109", "name": "墨色", "tra_name": "墨色", "color_series": "cyan", "pinyin": "mò sè", "font_color": "bright", "is_bright": false, "rgb": [ 80, 97, 109 ], "hex": "#50616D", "cmyk": [ 27, 11, 0, 57 ], "desc": "", "figure": "" }, { "id": "658593", "name": "黯", "tra_name": "黯", "color_series": "cyan", "pinyin": "àn", "font_color": "bright", "is_bright": false, "rgb": [ 65, 85, 93 ], "hex": "#41555D", "cmyk": [ 30, 9, 0, 64 ], "desc": "", "figure": "" }, { "id": "117135138", "name": "苍色", "tra_name": "蒼色", "color_series": "cyan", "pinyin": "cāng sè", "font_color": "dark", "is_bright": true, "rgb": [ 117, 135, 138 ], "hex": "#75878A", "cmyk": [ 15, 2, 0, 46 ], "desc": "", "figure": "" }, { "id": "115151171", "name": "苍青", "tra_name": "蒼青", "color_series": "cyan", "pinyin": "cāng qīng", "font_color": "dark", "is_bright": true, "rgb": [ 115, 151, 171 ], "hex": "#7397AB", "cmyk": [ 33, 12, 0, 33 ], "desc": "", "figure": "liangduohua.png?width=12rem" }, { "id": "578296", "name": "苍黑", "tra_name": "蒼黑", "color_series": "cyan", "pinyin": "cāng hēi", "font_color": "bright", "is_bright": false, "rgb": [ 57, 82, 96 ], "hex": "#395260", "cmyk": [ 41, 15, 0, 62 ], "desc": "", "figure": "sundown.png" }, { "id": "136173166", "name": "水色", "tra_name": "水色", "color_series": "cyan", "pinyin": "shuǐ sè", "font_color": "dark", "is_bright": true, "rgb": [ 136, 173, 166 ], "hex": "#88ADA6", "cmyk": [ 21, 0, 4, 32 ], "desc": "", "figure": "" }, { "id": "211224243", "name": "淡青", "tra_name": "淡青", "color_series": "cyan", "pinyin": "dàn qīng", "font_color": "dark", "is_bright": true, "rgb": [ 211, 224, 243 ], "hex": "#D3E0F3", "cmyk": [ 13, 8, 0, 5 ], "desc": "", "figure": "huaping.png?width=18rem" }, { "id": "214236240", "name": "月白", "tra_name": "月白", "color_series": "cyan", "pinyin": "yuè bái", "font_color": "dark", "is_bright": true, "rgb": [ 214, 236, 240 ], "hex": "#D6ECF0", "cmyk": [ 11, 2, 0, 6 ], "desc": "", "figure": "" }, { "id": "227249253", "name": "莹白", "tra_name": "瑩白", "color_series": "cyan", "pinyin": "yíng bái", "font_color": "dark", "is_bright": true, "rgb": [ 227, 249, 253 ], "hex": "#E3F9FD", "cmyk": [ 10, 2, 0, 1 ], "desc": "", "figure": "" }, { "id": "13511462", "name": "鲛青", "tra_name": "鮫青", "color_series": "cyan", "pinyin": "jiāo qīng", "font_color": "dark", "is_bright": true, "rgb": [ 135, 114, 62 ], "hex": "#87723E", "cmyk": [ 35, 44, 80, 30 ], "desc": "", "figure": "" }, { "id": "13938113", "name": "青莲", "tra_name": "青蓮", "color_series": "cyan", "pinyin": "qīng lián", "font_color": "dark", "is_bright": true, "rgb": [ 139, 38, 113 ], "hex": "#8B2671", "cmyk": [ 43, 97, 19, 8 ], "desc": "", "figure": "" }, { "id": "35118183", "name": "花青", "tra_name": "花青", "color_series": "cyan", "pinyin": "huā qīng", "font_color": "dark", "is_bright": true, "rgb": [ 35, 118, 183 ], "hex": "#2376B7", "cmyk": [ 95, 45, 10, 1 ], "desc": "", "figure": "" }, { "id": "23114180", "name": "群青", "tra_name": "群青", "color_series": "cyan", "pinyin": "qún qīng", "font_color": "dark", "is_bright": true, "rgb": [ 23, 114, 180 ], "hex": "#1772B4", "cmyk": [ 99, 48, 11, 1 ], "desc": "", "figure": "" }, { "id": "99187208", "name": "霁青", "tra_name": "霽青", "color_series": "cyan", "pinyin": "jì qīng", "font_color": "dark", "is_bright": true, "rgb": [ 99, 187, 208 ], "hex": "#63BBD0", "cmyk": [ 74, 2, 24, 0 ], "desc": "", "figure": "" }, { "id": "92179204", "name": "碧青", "tra_name": "碧青", "color_series": "cyan", "pinyin": "bì qīng", "font_color": "dark", "is_bright": true, "rgb": [ 92, 179, 204 ], "hex": "#5CB3CC", "cmyk": [ 77, 7, 24, 0 ], "desc": "", "figure": "" }, { "id": "34162195", "name": "海青", "tra_name": "海青", "color_series": "cyan", "pinyin": "hǎi qīng", "font_color": "dark", "is_bright": true, "rgb": [ 34, 162, 195 ], "hex": "#22A2C3", "cmyk": [ 92, 10, 25, 1 ], "desc": "", "figure": "" }, { "id": "2297171", "name": "靛青", "tra_name": "靛青", "color_series": "cyan", "pinyin": "diàn qīng", "font_color": "dark", "is_bright": true, "rgb": [ 22, 97, 171 ], "hex": "#1661AB", "cmyk": [ 100, 60, 8, 1 ], "desc": "", "figure": "" }, { "id": "203552", "name": "钢青", "tra_name": "鋼青", "color_series": "cyan", "pinyin": "gāng qīng", "font_color": "bright", "is_bright": false, "rgb": [ 20, 35, 52 ], "hex": "#142334", "cmyk": [ 100, 82, 51, 64 ], "desc": "", "figure": "" }, { "id": "134157157", "name": "虾壳青", "tra_name": "蝦殼青", "color_series": "cyan", "pinyin": "xiā ké qīng", "font_color": "dark", "is_bright": true, "rgb": [ 134, 157, 157 ], "hex": "#869D9D", "cmyk": [ 56, 26, 36, 7 ], "desc": "", "figure": "" }, { "id": "155174134", "name": "青豆色", "tra_name": "青豆色", "color_series": "cyan", "pinyin": "qīng dòu sè", "font_color": "dark", "is_bright": true, "rgb": [ 155, 174, 134 ], "hex": "#9BAE86", "cmyk": [ 11, 0, 23, 32 ], "desc": "", "figure": "" }, { "id": "86149151", "name": "碧玉石", "tra_name": "碧玉石", "color_series": "cyan", "pinyin": "bì yù shí", "font_color": "dark", "is_bright": true, "rgb": [ 86, 149, 151 ], "hex": "#569597", "cmyk": [ 43, 1, 0, 41 ], "desc": "", "figure": "" }, { "id": "209227219", "name": "鸭蛋青", "tra_name": "鴨蛋青", "color_series": "cyan", "pinyin": "yā dàn qīng", "font_color": "dark", "is_bright": true, "rgb": [ 209, 227, 219 ], "hex": "#D1E3DB", "cmyk": [ 8, 0, 4, 11 ], "desc": "", "figure": "" }, { "id": "202221213", "name": "浅青瓷釉色", "tra_name": "浅青瓷釉色", "color_series": "cyan", "pinyin": "qiǎn qīng cí yòu sè", "font_color": "dark", "is_bright": true, "rgb": [ 202, 221, 213 ], "hex": "#CADDD5", "cmyk": [ 9, 0, 4, 13 ], "desc": "", "figure": "" }, { "id": "177197180", "name": "龙泉青瓷釉色", "tra_name": "龍泉青瓷釉色", "color_series": "cyan", "pinyin": "lóng quán qīng cí yòu sè", "font_color": "dark", "is_bright": true, "rgb": [ 177, 197, 180 ], "hex": "#B1C5B4", "cmyk": [ 10, 0, 9, 23 ], "desc": "", "figure": "" }, { "id": "122152142", "name": "蟹青", "tra_name": "蟹青", "color_series": "cyan", "pinyin": "xiè qīng", "font_color": "dark", "is_bright": true, "rgb": [ 122, 152, 142 ], "hex": "#7A988E", "cmyk": [ 20, 0, 7, 40 ], "desc": "", "figure": "" }, { "id": "122152139", "name": "青虾色", "tra_name": "青蝦色", "color_series": "cyan", "pinyin": "qīng xiā sè", "font_color": "dark", "is_bright": true, "rgb": [ 122, 152, 139 ], "hex": "#7A988B", "cmyk": [ 20, 0, 9, 40 ], "desc": "", "figure": "" }, { "id": "94144184", "name": "竹月色", "tra_name": "竹月色", "color_series": "cyan", "pinyin": "zhú yuè sè", "font_color": "dark", "is_bright": true, "rgb": [ 94, 144, 184 ], "hex": "#5E90B8", "cmyk": [ 49, 22, 0, 28 ], "desc": "", "figure": "" }, { "id": "37120181", "name": "深竹月", "tra_name": "深竹月", "color_series": "cyan", "pinyin": "shēn zhú yuè", "font_color": "dark", "is_bright": true, "rgb": [ 37, 120, 181 ], "hex": "#2578B5", "cmyk": [ 80, 34, 0, 29 ], "desc": "", "figure": "" }, { "id": "58137176", "name": "毛月色", "tra_name": "毛月色", "color_series": "cyan", "pinyin": "máo yuè sè", "font_color": "dark", "is_bright": true, "rgb": [ 58, 137, 176 ], "hex": "#3A89B0", "cmyk": [ 67, 22, 0, 31 ], "desc": "", "figure": "" }, { "id": "4395142", "name": "深毛月色", "tra_name": "深毛月色", "color_series": "cyan", "pinyin": "shēn máo yuè sè", "font_color": "dark", "is_bright": true, "rgb": [ 43, 95, 142 ], "hex": "#2B5F8E", "cmyk": [ 70, 33, 0, 44 ], "desc": "", "figure": "" }, { "id": "868149", "name": "群青", "tra_name": "群青", "color_series": "cyan", "pinyin": "qún qīng", "font_color": "dark", "is_bright": true, "rgb": [ 8, 68, 149 ], "hex": "#084495", "cmyk": [ 95, 54, 0, 42 ], "desc": "", "figure": "" }, { "id": "6372108", "name": "绀青", "tra_name": "紺青", "color_series": "cyan", "pinyin": "gàn qīng", "font_color": "bright", "is_bright": false, "rgb": [ 63, 72, 108 ], "hex": "#3F486C", "cmyk": [ 42, 33, 0, 58 ], "desc": "", "figure": "" }, { "id": "626061", "name": "元青", "tra_name": "元青", "color_series": "cyan", "pinyin": "yuán qīng", "font_color": "bright", "is_bright": false, "rgb": [ 62, 60, 61 ], "hex": "#3E3C3D", "cmyk": [ 0, 3, 2, 76 ], "desc": "", "figure": "" }, { "id": "647487", "name": "鉄青", "tra_name": "鉄青", "color_series": "cyan", "pinyin": "tiě qīng", "font_color": "bright", "is_bright": false, "rgb": [ 64, 74, 87 ], "hex": "#404A57", "cmyk": [ 26, 15, 0, 66 ], "desc": "", "figure": "" }, { "id": "104127165", "name": "青金色", "tra_name": "青金色", "color_series": "cyan", "pinyin": "qīng jīn sè", "font_color": "dark", "is_bright": true, "rgb": [ 104, 127, 165 ], "hex": "#687FA5", "cmyk": [ 37, 23, 0, 35 ], "desc": "", "figure": "" }, { "id": "84107131", "name": "花青", "tra_name": "花青", "color_series": "cyan", "pinyin": "huā qīng", "font_color": "dark", "is_bright": true, "rgb": [ 84, 107, 131 ], "hex": "#546B83", "cmyk": [ 36, 18, 0, 49 ], "desc": "", "figure": "" }, { "id": "4394125", "name": "沙青", "tra_name": "沙青", "color_series": "cyan", "pinyin": "shā qīng", "font_color": "bright", "is_bright": false, "rgb": [ 43, 94, 125 ], "hex": "#2B5E7D", "cmyk": [ 66, 25, 0, 51 ], "desc": "", "figure": "" }, { "id": "22133169", "name": "石青", "tra_name": "石青", "color_series": "cyan", "pinyin": "shí qīng", "font_color": "dark", "is_bright": true, "rgb": [ 22, 133, 169 ], "hex": "#1685A9", "cmyk": [ 87, 21, 0, 34 ], "desc": "", "figure": "" }, { "id": "052114", "name": "花青", "tra_name": "花青", "color_series": "cyan", "pinyin": "huā qīng", "font_color": "bright", "is_bright": false, "rgb": [ 0, 52, 114 ], "hex": "#003472", "cmyk": [ 100, 54, 0, 55 ], "desc": "", "figure": "" } ], "blue": [ { "id": "68206246", "name": "蓝", "tra_name": "藍", "color_series": "blue", "pinyin": "lán", "font_color": "dark", "is_bright": true, "rgb": [ 68, 206, 246 ], "hex": "#44CEF6", "cmyk": [ 72, 16, 0, 4 ], "desc": "", "figure": "" }, { "id": "682121", "name": "靛蓝", "tra_name": "靛藍", "color_series": "blue", "pinyin": "diàn lán", "font_color": "bright", "is_bright": false, "rgb": [ 6, 82, 121 ], "hex": "#065279", "cmyk": [ 95, 32, 0, 53 ], "desc": "", "figure": "" }, { "id": "62237231", "name": "碧蓝", "tra_name": "碧藍", "color_series": "blue", "pinyin": "bì lán", "font_color": "dark", "is_bright": true, "rgb": [ 62, 237, 231 ], "hex": "#3EEDE7", "cmyk": [ 74, 0, 3, 7 ], "desc": "", "figure": "" }, { "id": "112243255", "name": "蔚蓝", "tra_name": "蔚藍", "color_series": "blue", "pinyin": "wèi lán", "font_color": "dark", "is_bright": true, "rgb": [ 112, 243, 255 ], "hex": "#70F3FF", "cmyk": [ 56, 5, 0, 0 ], "desc": "", "figure": "" }, { "id": "7592196", "name": "宝蓝", "tra_name": "寶藍", "color_series": "blue", "pinyin": "bǎo lán", "font_color": "dark", "is_bright": true, "rgb": [ 75, 92, 196 ], "hex": "#4B5CC4", "cmyk": [ 62, 53, 0, 23 ], "desc": "", "figure": "" }, { "id": "5946126", "name": "藏蓝", "tra_name": "藏藍", "color_series": "blue", "pinyin": "zàng lán", "font_color": "bright", "is_bright": false, "rgb": [ 59, 46, 126 ], "hex": "#3B2E7E", "cmyk": [ 53, 63, 0, 51 ], "desc": "", "figure": "" }, { "id": "7466102", "name": "黛", "tra_name": "黛", "color_series": "blue", "pinyin": "dài", "font_color": "bright", "is_bright": false, "rgb": [ 74, 66, 102 ], "hex": "#4A4266", "cmyk": [ 27, 35, 0, 60 ], "desc": "", "figure": "" }, { "id": "6680102", "name": "黛蓝", "tra_name": "黛藍", "color_series": "blue", "pinyin": "dài lán", "font_color": "bright", "is_bright": false, "rgb": [ 66, 80, 102 ], "hex": "#425066", "cmyk": [ 35, 22, 0, 60 ], "desc": "", "figure": "" }, { "id": "222435", "name": "漆黑", "tra_name": "漆黑", "color_series": "blue", "pinyin": "qī hēi", "font_color": "bright", "is_bright": false, "rgb": [ 22, 24, 35 ], "hex": "#161823", "cmyk": [ 37, 31, 0, 86 ], "desc": "", "figure": "" }, { "id": "107104130", "name": "黝", "tra_name": "黝", "color_series": "blue", "pinyin": "yǒu", "font_color": "dark", "is_bright": true, "rgb": [ 107, 104, 130 ], "hex": "#6B6882", "cmyk": [ 18, 20, 0, 49 ], "desc": "", "figure": "" }, { "id": "210240244", "name": "水蓝", "tra_name": "水藍", "color_series": "blue", "pinyin": "shuǐ lán", "font_color": "dark", "is_bright": true, "rgb": [ 210, 240, 244 ], "hex": "#D2F0F4", "cmyk": [ 14, 2, 0, 4 ], "desc": "", "figure": "moon.png?width=18rem" }, { "id": "48223243", "name": "湖蓝", "tra_name": "湖藍", "color_series": "blue", "pinyin": "hú lán", "font_color": "dark", "is_bright": true, "rgb": [ 48, 223, 243 ], "hex": "#30DFF3", "cmyk": [ 80, 8, 0, 5 ], "desc": "", "figure": "shuanghe.png" }, { "id": "39117182", "name": "景泰蓝", "tra_name": "景泰藍", "color_series": "blue", "pinyin": "jǐng tài lán", "font_color": "dark", "is_bright": true, "rgb": [ 39, 117, 182 ], "hex": "#2775B6", "cmyk": [ 95, 46, 10, 1 ], "desc": "", "figure": "" }, { "id": "36116181", "name": "尼罗蓝", "tra_name": "尼羅藍", "color_series": "blue", "pinyin": "ní luó lán", "font_color": "dark", "is_bright": true, "rgb": [ 36, 116, 181 ], "hex": "#2474B5", "cmyk": [ 96, 47, 11, 1 ], "desc": "", "figure": "" }, { "id": "147181207", "name": "星蓝", "tra_name": "星藍", "color_series": "blue", "pinyin": "xīng lán", "font_color": "dark", "is_bright": true, "rgb": [ 147, 181, 207 ], "hex": "#93B5CF", "cmyk": [ 53, 19, 15, 1 ], "desc": "", "figure": "" }, { "id": "97154195", "name": "羽扇豆蓝", "tra_name": "羽扇豆藍", "color_series": "blue", "pinyin": "yǔ shàn dòu lán", "font_color": "dark", "is_bright": true, "rgb": [ 97, 154, 195 ], "hex": "#619AC3", "cmyk": [ 74, 27, 16, 2 ], "desc": "", "figure": "" }, { "id": "86152195", "name": "睛蓝", "tra_name": "睛藍", "color_series": "blue", "pinyin": "jīng lán", "font_color": "dark", "is_bright": true, "rgb": [ 86, 152, 195 ], "hex": "#5698C3", "cmyk": [ 78, 27, 17, 2 ], "desc": "", "figure": "" }, { "id": "33119184", "name": "虹蓝", "tra_name": "虹藍", "color_series": "blue", "pinyin": "hóng lán", "font_color": "dark", "is_bright": true, "rgb": [ 33, 119, 184 ], "hex": "#2177B8", "cmyk": [ 99, 44, 10, 1 ], "desc": "", "figure": "" }, { "id": "176213223", "name": "湖水蓝", "tra_name": "湖水藍", "color_series": "blue", "pinyin": "hú shuǐ lán", "font_color": "dark", "is_bright": true, "rgb": [ 176, 213, 223 ], "hex": "#B0D5DF", "cmyk": [ 43, 4, 16, 0 ], "desc": "", "figure": "" }, { "id": "138188209", "name": "秋波蓝", "tra_name": "秋波藍", "color_series": "blue", "pinyin": "qiū bō lán", "font_color": "dark", "is_bright": true, "rgb": [ 138, 188, 209 ], "hex": "#8ABCD1", "cmyk": [ 59, 12, 19, 0 ], "desc": "", "figure": "" }, { "id": "102169201", "name": "涧石蓝", "tra_name": "澗石藍", "color_series": "blue", "pinyin": "jiàn shí lán", "font_color": "dark", "is_bright": true, "rgb": [ 102, 169, 201 ], "hex": "#66A9C9", "cmyk": [ 73, 17, 20, 1 ], "desc": "", "figure": "" }, { "id": "41131187", "name": "潮蓝", "tra_name": "潮藍", "color_series": "blue", "pinyin": "cháo lán", "font_color": "dark", "is_bright": true, "rgb": [ 41, 131, 187 ], "hex": "#2983BB", "cmyk": [ 93, 36, 15, 2 ], "desc": "", "figure": "" }, { "id": "36134185", "name": "宝石蓝", "tra_name": "寶石藍", "color_series": "blue", "pinyin": "bǎo shí lán", "font_color": "dark", "is_bright": true, "rgb": [ 36, 134, 185 ], "hex": "#2486B9", "cmyk": [ 94, 32, 17, 3 ], "desc": "", "figure": "" }, { "id": "22119179", "name": "天蓝", "tra_name": "天藍", "color_series": "blue", "pinyin": "tiān lán", "font_color": "dark", "is_bright": true, "rgb": [ 22, 119, 179 ], "hex": "#1677B3", "cmyk": [ 98, 43, 14, 2 ], "desc": "", "figure": "" }, { "id": "18107174", "name": "柏林蓝", "tra_name": "柏林藍", "color_series": "blue", "pinyin": "bó lín lán", "font_color": "dark", "is_bright": true, "rgb": [ 18, 107, 174 ], "hex": "#126BAE", "cmyk": [ 100, 52, 11, 1 ], "desc": "", "figure": "" }, { "id": "26148188", "name": "钴蓝", "tra_name": "鈷藍", "color_series": "blue", "pinyin": "gǔ lán", "font_color": "dark", "is_bright": true, "rgb": [ 26, 148, 188 ], "hex": "#1A94BC", "cmyk": [ 94, 16, 23, 3 ], "desc": "", "figure": "" }, { "id": "21139184", "name": "鸢尾蓝", "tra_name": "鳶尾藍", "color_series": "blue", "pinyin": "yuān wěi lán", "font_color": "dark", "is_bright": true, "rgb": [ 21, 139, 184 ], "hex": "#158BB8", "cmyk": [ 95, 25, 20, 4 ], "desc": "", "figure": "" }, { "id": "17119176", "name": "牵牛花蓝", "tra_name": "牽牛花藍", "color_series": "blue", "pinyin": "qiān niú huā lán", "font_color": "dark", "is_bright": true, "rgb": [ 17, 119, 176 ], "hex": "#1177B0", "cmyk": [ 98, 42, 16, 3 ], "desc": "", "figure": "" }, { "id": "1589164", "name": "飞燕草蓝", "tra_name": "飛燕草藍", "color_series": "blue", "pinyin": "fēi yàn cǎo lán", "font_color": "dark", "is_bright": true, "rgb": [ 15, 89, 164 ], "hex": "#0F59A4", "cmyk": [ 100, 65, 11, 1 ], "desc": "", "figure": "" }, { "id": "43115175", "name": "品蓝", "tra_name": "品藍", "color_series": "blue", "pinyin": "pǐn lán", "font_color": "dark", "is_bright": true, "rgb": [ 43, 115, 175 ], "hex": "#2B73AF", "cmyk": [ 95, 47, 14, 2 ], "desc": "", "figure": "" }, { "id": "49112167", "name": "安安蓝", "tra_name": "安安藍", "color_series": "blue", "pinyin": "ān ān lán", "font_color": "dark", "is_bright": true, "rgb": [ 49, 112, 167 ], "hex": "#3170A7", "cmyk": [ 93, 49, 17, 3 ], "desc": "", "figure": "" }, { "id": "152035", "name": "钢蓝", "tra_name": "鋼藍", "color_series": "blue", "pinyin": "gāng lán", "font_color": "bright", "is_bright": false, "rgb": [ 15, 20, 35 ], "hex": "#0F1423", "cmyk": [ 100, 89, 54, 79 ], "desc": "", "figure": "" }, { "id": "186204217", "name": "云水蓝", "tra_name": "雲水藍", "color_series": "blue", "pinyin": "yún shuǐ lán", "font_color": "dark", "is_bright": true, "rgb": [ 186, 204, 217 ], "hex": "#BACCD9", "cmyk": [ 35, 13, 13, 0 ], "desc": "", "figure": "" }, { "id": "143178201", "name": "晴山蓝", "tra_name": "晴山藍", "color_series": "blue", "pinyin": "qíng shān lán", "font_color": "dark", "is_bright": true, "rgb": [ 143, 178, 201 ], "hex": "#8FB2C9", "cmyk": [ 55, 20, 18, 1 ], "desc": "", "figure": "" }, { "id": "2185154", "name": "海涛蓝", "tra_name": "海濤藍", "color_series": "blue", "pinyin": "hǎi tāo lán", "font_color": "dark", "is_bright": true, "rgb": [ 21, 85, 154 ], "hex": "#15559A", "cmyk": [ 100, 67, 16, 3 ], "desc": "", "figure": "" }, { "id": "78124161", "name": "蝶翅蓝", "tra_name": "蝶翅藍", "color_series": "blue", "pinyin": "dié chì lán", "font_color": "dark", "is_bright": true, "rgb": [ 78, 124, 161 ], "hex": "#4E7CA1", "cmyk": [ 81, 41, 24, 8 ], "desc": "", "figure": "" }, { "id": "52108156", "name": "海军蓝", "tra_name": "海軍藍", "color_series": "blue", "pinyin": "hǎi jūn lán", "font_color": "dark", "is_bright": true, "rgb": [ 52, 108, 156 ], "hex": "#346C9C", "cmyk": [ 93, 50, 21, 6 ], "desc": "", "figure": "" }, { "id": "192436", "name": "燕颔蓝", "tra_name": "燕頷藍", "color_series": "blue", "pinyin": "yàn hàn lán", "font_color": "bright", "is_bright": false, "rgb": [ 19, 24, 36 ], "hex": "#131824", "cmyk": [ 100, 86, 54, 78 ], "desc": "", "figure": "" }, { "id": "195215223", "name": "井天蓝", "tra_name": "井天藍", "color_series": "blue", "pinyin": "jǐng tiān lán", "font_color": "dark", "is_bright": true, "rgb": [ 195, 215, 223 ], "hex": "#C3D7DF", "cmyk": [ 32, 8, 13, 0 ], "desc": "", "figure": "" }, { "id": "47144185", "name": "云山蓝", "tra_name": "雲山藍", "color_series": "blue", "pinyin": "yún shān lán", "font_color": "dark", "is_bright": true, "rgb": [ 47, 144, 185 ], "hex": "#2F90B9", "cmyk": [ 91, 24, 22, 4 ], "desc": "", "figure": "" }, { "id": "23129181", "name": "釉蓝", "tra_name": "釉藍", "color_series": "blue", "pinyin": "yòu lán", "font_color": "dark", "is_bright": true, "rgb": [ 23, 129, 181 ], "hex": "#1781B5", "cmyk": [ 96, 34, 18, 4 ], "desc": "", "figure": "" }, { "id": "17101154", "name": "搪磁蓝", "tra_name": "搪磁藍", "color_series": "blue", "pinyin": "táng cí lán", "font_color": "dark", "is_bright": true, "rgb": [ 17, 101, 154 ], "hex": "#11659A", "cmyk": [ 100, 53, 21, 6 ], "desc": "", "figure": "" }, { "id": "2074116", "name": "鷃蓝", "tra_name": "鷃藍", "color_series": "blue", "pinyin": "yàn lán", "font_color": "bright", "is_bright": false, "rgb": [ 20, 74, 116 ], "hex": "#144A74", "cmyk": [ 100, 68, 32, 20 ], "desc": "", "figure": "" }, { "id": "284156", "name": "鸽蓝", "tra_name": "鴿藍", "color_series": "blue", "pinyin": "gē lán", "font_color": "bright", "is_bright": false, "rgb": [ 28, 41, 56 ], "hex": "#1C2938", "cmyk": [ 100, 77, 50, 62 ], "desc": "", "figure": "" }, { "id": "163148", "name": "暗蓝", "tra_name": "暗藍", "color_series": "blue", "pinyin": "àn lán", "font_color": "bright", "is_bright": false, "rgb": [ 16, 31, 48 ], "hex": "#101F30", "cmyk": [ 100, 84, 51, 68 ], "desc": "", "figure": "" }, { "id": "198230232", "name": "海天蓝", "tra_name": "海天藍", "color_series": "blue", "pinyin": "hǎi tiān lán", "font_color": "dark", "is_bright": true, "rgb": [ 198, 230, 232 ], "hex": "#C6E6E8", "cmyk": [ 33, 0, 14, 0 ], "desc": "", "figure": "" }, { "id": "147213220", "name": "清水蓝", "tra_name": "清水藍", "color_series": "blue", "pinyin": "qīng shuǐ lán", "font_color": "dark", "is_bright": true, "rgb": [ 147, 213, 220 ], "hex": "#93D5DC", "cmyk": [ 57, 0, 22, 0 ], "desc": "", "figure": "" }, { "id": "81196211", "name": "瀑布蓝", "tra_name": "瀑布藍", "color_series": "blue", "pinyin": "pù bù lán", "font_color": "dark", "is_bright": true, "rgb": [ 81, 196, 211 ], "hex": "#51C4D3", "cmyk": [ 79, 0, 27, 0 ], "desc": "", "figure": "" }, { "id": "41183203", "name": "蔚蓝", "tra_name": "蔚藍", "color_series": "blue", "pinyin": "wèi lán", "font_color": "dark", "is_bright": true, "rgb": [ 41, 183, 203 ], "hex": "#29B7CB", "cmyk": [ 89, 0, 29, 0 ], "desc": "", "figure": "" }, { "id": "14176201", "name": "孔雀蓝", "tra_name": "孔雀藍", "color_series": "blue", "pinyin": "kǒng què lán", "font_color": "dark", "is_bright": true, "rgb": [ 14, 176, 201 ], "hex": "#0EB0C9", "cmyk": [ 92, 0, 28, 0 ], "desc": "", "figure": "" }, { "id": "16174194", "name": "甸子蓝", "tra_name": "甸子藍", "color_series": "blue", "pinyin": "diàn zǐ lán", "font_color": "dark", "is_bright": true, "rgb": [ 16, 174, 194 ], "hex": "#10AEC2", "cmyk": [ 93, 0, 31, 0 ], "desc": "", "figure": "" }, { "id": "30158179", "name": "翠蓝", "tra_name": "翠藍", "color_series": "blue", "pinyin": "cuì lán", "font_color": "dark", "is_bright": true, "rgb": [ 30, 158, 179 ], "hex": "#1E9EB3", "cmyk": [ 94, 11, 33, 1 ], "desc": "", "figure": "" }, { "id": "15149176", "name": "胆矾蓝", "tra_name": "膽礬藍", "color_series": "blue", "pinyin": "dǎn fán lán", "font_color": "dark", "is_bright": true, "rgb": [ 15, 149, 176 ], "hex": "#0F95B0", "cmyk": [ 96, 16, 31, 3 ], "desc": "", "figure": "" }, { "id": "20145168", "name": "樫鸟蓝", "tra_name": "樫鳥藍", "color_series": "blue", "pinyin": "jiān niǎo lán", "font_color": "dark", "is_bright": true, "rgb": [ 20, 145, 168 ], "hex": "#1491A8", "cmyk": [ 96, 18, 34, 4 ], "desc": "", "figure": "" }, { "id": "124171177", "name": "闪蓝", "tra_name": "閃藍", "color_series": "blue", "pinyin": "shǎn lán", "font_color": "dark", "is_bright": true, "rgb": [ 124, 171, 177 ], "hex": "#7CABB1", "cmyk": [ 64, 18, 32, 2 ], "desc": "", "figure": "" }, { "id": "164172167", "name": "冰山蓝", "tra_name": "冰山藍", "color_series": "blue", "pinyin": "bīng shān lán", "font_color": "dark", "is_bright": true, "rgb": [ 164, 172, 167 ], "hex": "#A4ACA7", "cmyk": [ 40, 24, 32, 6 ], "desc": "", "figure": "" }, { "id": "100142147", "name": "晚波蓝", "tra_name": "晚波藍", "color_series": "blue", "pinyin": "wǎn bō lán", "font_color": "dark", "is_bright": true, "rgb": [ 100, 142, 147 ], "hex": "#648E93", "cmyk": [ 71, 28, 39, 10 ], "desc": "", "figure": "" }, { "id": "59129140", "name": "蜻蜓蓝", "tra_name": "蜻蜓藍", "color_series": "blue", "pinyin": "qīng tíng lán", "font_color": "dark", "is_bright": true, "rgb": [ 59, 129, 140 ], "hex": "#3B818C", "cmyk": [ 89, 27, 41, 13 ], "desc": "", "figure": "" }, { "id": "18110130", "name": "玉鈫蓝", "tra_name": "玉鈫藍", "color_series": "blue", "pinyin": "yù qín lán", "font_color": "dark", "is_bright": true, "rgb": [ 18, 110, 130 ], "hex": "#126E82", "cmyk": [ 99, 33, 38, 21 ], "desc": "", "figure": "" }, { "id": "197287", "name": "苍蓝", "tra_name": "蒼藍", "color_series": "blue", "pinyin": "cāng lán", "font_color": "bright", "is_bright": false, "rgb": [ 19, 72, 87 ], "hex": "#134857", "cmyk": [ 100, 52, 46, 43 ], "desc": "", "figure": "" }, { "id": "335561", "name": "灰蓝", "tra_name": "灰藍", "color_series": "blue", "pinyin": "huī lán", "font_color": "bright", "is_bright": false, "rgb": [ 33, 55, 61 ], "hex": "#21373D", "cmyk": [ 94, 58, 54, 60 ], "desc": "", "figure": "" }, { "id": "194451", "name": "深灰蓝", "tra_name": "深灰藍", "color_series": "blue", "pinyin": "shēn huī lán", "font_color": "bright", "is_bright": false, "rgb": [ 19, 44, 51 ], "hex": "#132C33", "cmyk": [ 100, 64, 56, 68 ], "desc": "", "figure": "" }, { "id": "11546126", "name": "紫罗蓝", "tra_name": "紫羅藍", "color_series": "blue", "pinyin": "zǐ luó lán", "font_color": "bright", "is_bright": false, "rgb": [ 115, 46, 126 ], "hex": "#732E7E", "cmyk": [ 9, 63, 0, 51 ], "desc": "", "figure": "" }, { "id": "80120131", "name": "玉石蓝", "tra_name": "玉石藍", "color_series": "blue", "pinyin": "yù shí lán", "font_color": "dark", "is_bright": true, "rgb": [ 80, 120, 131 ], "hex": "#507883", "cmyk": [ 39, 8, 0, 49 ], "desc": "", "figure": "" }, { "id": "101138152", "name": "蟹蓝", "tra_name": "蟹藍", "color_series": "blue", "pinyin": "xiè lán", "font_color": "dark", "is_bright": true, "rgb": [ 101, 138, 152 ], "hex": "#658A98", "cmyk": [ 34, 9, 0, 40 ], "desc": "", "figure": "" }, { "id": "123161168", "name": "春蓝", "tra_name": "春藍", "color_series": "blue", "pinyin": "chūn lán", "font_color": "dark", "is_bright": true, "rgb": [ 123, 161, 168 ], "hex": "#7BA1A8", "cmyk": [ 27, 4, 0, 34 ], "desc": "", "figure": "" }, { "id": "93130138", "name": "灰蓝", "tra_name": "灰藍", "color_series": "blue", "pinyin": "hūi lán", "font_color": "dark", "is_bright": true, "rgb": [ 93, 130, 138 ], "hex": "#5D828A", "cmyk": [ 33, 6, 0, 46 ], "desc": "", "figure": "" }, { "id": "100147175", "name": "钴蓝", "tra_name": "鈷藍", "color_series": "blue", "pinyin": "gǔ lán", "font_color": "dark", "is_bright": true, "rgb": [ 100, 147, 175 ], "hex": "#6493AF", "cmyk": [ 43, 16, 0, 31 ], "desc": "", "figure": "" }, { "id": "2699138", "name": "琉璃蓝", "tra_name": "琉璃藍", "color_series": "blue", "pinyin": "líu lí lán", "font_color": "dark", "is_bright": true, "rgb": [ 26, 99, 138 ], "hex": "#1A638A", "cmyk": [ 81, 28, 0, 46 ], "desc": "", "figure": "" }, { "id": "7824146", "name": "柏坊灰蓝", "tra_name": "柏坊灰藍", "color_series": "blue", "pinyin": "bǎi fāng hūi lán", "font_color": "dark", "is_bright": true, "rgb": [ 78, 24, 146 ], "hex": "#4E1892", "cmyk": [ 47, 84, 0, 43 ], "desc": "", "figure": "" }, { "id": "3185116", "name": "浅土蓝", "tra_name": "浅土藍", "color_series": "blue", "pinyin": "qiǎn tǔ lán", "font_color": "bright", "is_bright": false, "rgb": [ 31, 85, 116 ], "hex": "#1F5574", "cmyk": [ 73, 27, 0, 55 ], "desc": "", "figure": "" }, { "id": "39104147", "name": "北京毛蓝", "tra_name": "北京毛藍", "color_series": "blue", "pinyin": "běi jīng máo lán", "font_color": "dark", "is_bright": true, "rgb": [ 39, 104, 147 ], "hex": "#276893", "cmyk": [ 73, 29, 0, 42 ], "desc": "", "figure": "" }, { "id": "49103141", "name": "绒蓝", "tra_name": "絨藍", "color_series": "blue", "pinyin": "róng lán", "font_color": "dark", "is_bright": true, "rgb": [ 49, 103, 141 ], "hex": "#31678D", "cmyk": [ 65, 27, 0, 45 ], "desc": "", "figure": "" }, { "id": "6094145", "name": "浅海昌蓝", "tra_name": "浅海昌藍", "color_series": "blue", "pinyin": "qiǎn hǎi chāng lán", "font_color": "dark", "is_bright": true, "rgb": [ 60, 94, 145 ], "hex": "#3C5E91", "cmyk": [ 59, 35, 0, 43 ], "desc": "", "figure": "" }, { "id": "2380125", "name": "海蓝", "tra_name": "海藍", "color_series": "blue", "pinyin": "hǎi lán", "font_color": "bright", "is_bright": false, "rgb": [ 23, 80, 125 ], "hex": "#17507D", "cmyk": [ 82, 36, 0, 51 ], "desc": "", "figure": "" }, { "id": "366898", "name": "深毛蓝", "tra_name": "深毛藍", "color_series": "blue", "pinyin": "shēn máo lán", "font_color": "bright", "is_bright": false, "rgb": [ 36, 68, 98 ], "hex": "#244462", "cmyk": [ 63, 31, 0, 62 ], "desc": "", "figure": "" }, { "id": "336198", "name": "深蓝", "tra_name": "深藍", "color_series": "blue", "pinyin": "shēn lán", "font_color": "bright", "is_bright": false, "rgb": [ 33, 61, 98 ], "hex": "#213D62", "cmyk": [ 66, 38, 0, 62 ], "desc": "", "figure": "" }, { "id": "414980", "name": "靛蓝", "tra_name": "靛藍", "color_series": "blue", "pinyin": "diàn lán", "font_color": "bright", "is_bright": false, "rgb": [ 41, 49, 80 ], "hex": "#293150", "cmyk": [ 49, 39, 0, 69 ], "desc": "", "figure": "" }, { "id": "3768107", "name": "労働布色", "tra_name": "労働布色", "color_series": "blue", "pinyin": "láo dòng bù sè", "font_color": "bright", "is_bright": false, "rgb": [ 37, 68, 107 ], "hex": "#25446B", "cmyk": [ 65, 36, 0, 58 ], "desc": "", "figure": "" }, { "id": "487188", "name": "黛蓝", "tra_name": "黛藍", "color_series": "blue", "pinyin": "dài lán", "font_color": "bright", "is_bright": false, "rgb": [ 48, 71, 88 ], "hex": "#304758", "cmyk": [ 45, 19, 0, 65 ], "desc": "", "figure": "" }, { "id": "3756107", "name": "蔵蓝", "tra_name": "蔵藍", "color_series": "blue", "pinyin": "zāng lán", "font_color": "bright", "is_bright": false, "rgb": [ 37, 56, 107 ], "hex": "#25386B", "cmyk": [ 65, 48, 0, 58 ], "desc": "", "figure": "" }, { "id": "077181", "name": "鲜蓝", "tra_name": "鮮藍", "color_series": "blue", "pinyin": "xiān lán", "font_color": "dark", "is_bright": true, "rgb": [ 0, 77, 181 ], "hex": "#004DB5", "cmyk": [ 100, 57, 0, 29 ], "desc": "", "figure": "" }, { "id": "065165", "name": "孔雀蓝", "tra_name": "孔雀藍", "color_series": "blue", "pinyin": "kǒng què lán", "font_color": "dark", "is_bright": true, "rgb": [ 0, 65, 165 ], "hex": "#0041A5", "cmyk": [ 100, 61, 0, 35 ], "desc": "", "figure": "" }, { "id": "3154150", "name": "宝石蓝", "tra_name": "宝石藍", "color_series": "blue", "pinyin": "bǎo shí lán", "font_color": "dark", "is_bright": true, "rgb": [ 31, 54, 150 ], "hex": "#1F3696", "cmyk": [ 79, 64, 0, 41 ], "desc": "", "figure": "" }, { "id": "404685", "name": "钛鉄", "tra_name": "鈦鉄", "color_series": "blue", "pinyin": "tài tiě", "font_color": "bright", "is_bright": false, "rgb": [ 40, 46, 85 ], "hex": "#282E55", "cmyk": [ 53, 46, 0, 67 ], "desc": "", "figure": "" }, { "id": "555276", "name": "蔵黒蓝", "tra_name": "蔵黒藍", "color_series": "blue", "pinyin": "zāng hēi lán", "font_color": "bright", "is_bright": false, "rgb": [ 55, 52, 76 ], "hex": "#37344C", "cmyk": [ 28, 32, 0, 70 ], "desc": "", "figure": "" }, { "id": "181193207", "name": "银蓝", "tra_name": "銀藍", "color_series": "blue", "pinyin": "yín lán", "font_color": "dark", "is_bright": true, "rgb": [ 181, 193, 207 ], "hex": "#B5C1CF", "cmyk": [ 13, 7, 0, 19 ], "desc": "", "figure": "" }, { "id": "121145209", "name": "雪蓝", "tra_name": "雪藍", "color_series": "blue", "pinyin": "xuě lán", "font_color": "dark", "is_bright": true, "rgb": [ 121, 145, 209 ], "hex": "#7991D1", "cmyk": [ 42, 31, 0, 18 ], "desc": "", "figure": "" } ], "gray": [ { "id": "161175201", "name": "蓝灰色", "tra_name": "藍灰色", "color_series": "gray", "pinyin": "lán huī sè", "font_color": "dark", "is_bright": true, "rgb": [ 161, 175, 201 ], "hex": "#A1AFC9", "cmyk": [ 20, 13, 0, 21 ], "desc": "", "figure": "" }, { "id": "117138153", "name": "墨灰", "tra_name": "墨灰", "color_series": "gray", "pinyin": "mò huī", "font_color": "dark", "is_bright": true, "rgb": [ 117, 138, 153 ], "hex": "#758A99", "cmyk": [ 24, 10, 0, 40 ], "desc": "", "figure": "" }, { "id": "128128128", "name": "灰色", "tra_name": "灰色", "color_series": "gray", "pinyin": "huī sè", "font_color": "dark", "is_bright": true, "rgb": [ 128, 128, 128 ], "hex": "#808080", "cmyk": [ 0, 0, 0, 50 ], "desc": "", "figure": "" }, { "id": "183174143", "name": "月灰", "tra_name": "月灰", "color_series": "gray", "pinyin": "yuè huī", "font_color": "dark", "is_bright": true, "rgb": [ 183, 174, 143 ], "hex": "#B7AE8F", "cmyk": [ 28, 26, 45, 7 ], "desc": "", "figure": "" }, { "id": "1049472", "name": "燕羽灰", "tra_name": "燕羽灰", "color_series": "gray", "pinyin": "yàn yǔ huī", "font_color": "bright", "is_bright": false, "rgb": [ 104, 94, 72 ], "hex": "#685E48", "cmyk": [ 47, 47, 65, 42 ], "desc": "", "figure": "" }, { "id": "1059469", "name": "蟹壳灰", "tra_name": "蟹殼灰", "color_series": "gray", "pinyin": "xiè ké huī", "font_color": "bright", "is_bright": false, "rgb": [ 105, 94, 69 ], "hex": "#695E45", "cmyk": [ 46, 47, 69, 42 ], "desc": "", "figure": "" }, { "id": "181170144", "name": "银鼠灰", "tra_name": "銀鼠灰", "color_series": "gray", "pinyin": "yín shǔ huī", "font_color": "dark", "is_bright": true, "rgb": [ 181, 170, 144 ], "hex": "#B5AA90", "cmyk": [ 28, 27, 43, 8 ], "desc": "", "figure": "" }, { "id": "182164118", "name": "尘灰", "tra_name": "塵灰", "color_series": "gray", "pinyin": "chén huī", "font_color": "dark", "is_bright": true, "rgb": [ 182, 164, 118 ], "hex": "#B6A476", "cmyk": [ 26, 31, 57, 10 ], "desc": "", "figure": "" }, { "id": "746453", "name": "鹤灰", "tra_name": "鶴灰", "color_series": "gray", "pinyin": "hè huī", "font_color": "bright", "is_bright": false, "rgb": [ 74, 64, 53 ], "hex": "#4A4035", "cmyk": [ 52, 56, 64, 62 ], "desc": "", "figure": "" }, { "id": "180169146", "name": "百灵鸟灰", "tra_name": "百靈鳥灰", "color_series": "gray", "pinyin": "bǎi líng niǎo huī", "font_color": "dark", "is_bright": true, "rgb": [ 180, 169, 146 ], "hex": "#B4A992", "cmyk": [ 28, 28, 41, 9 ], "desc": "", "figure": "" }, { "id": "796450", "name": "松鼠灰", "tra_name": "松鼠灰", "color_series": "gray", "pinyin": "sōng shǔ huī", "font_color": "bright", "is_bright": false, "rgb": [ 79, 64, 50 ], "hex": "#4F4032", "cmyk": [ 46, 59, 68, 61 ], "desc": "", "figure": "" }, { "id": "806242", "name": "橄榄灰", "tra_name": "橄欖灰", "color_series": "gray", "pinyin": "gǎn lǎn huī", "font_color": "bright", "is_bright": false, "rgb": [ 80, 62, 42 ], "hex": "#503E2A", "cmyk": [ 44, 61, 76, 62 ], "desc": "", "figure": "" }, { "id": "151132108", "name": "猴毛灰", "tra_name": "猴毛灰", "color_series": "gray", "pinyin": "hóu máo huī", "font_color": "dark", "is_bright": true, "rgb": [ 151, 132, 108 ], "hex": "#97846C", "cmyk": [ 32, 40, 53, 22 ], "desc": "", "figure": "" }, { "id": "193178163", "name": "淡银灰", "tra_name": "淡銀灰", "color_series": "gray", "pinyin": "dàn yín huī", "font_color": "dark", "is_bright": true, "rgb": [ 193, 178, 163 ], "hex": "#C1B2A3", "cmyk": [ 22, 28, 34, 6 ], "desc": "", "figure": "" }, { "id": "145128114", "name": "银灰", "tra_name": "銀灰", "color_series": "gray", "pinyin": "yín huī", "font_color": "dark", "is_bright": true, "rgb": [ 145, 128, 114 ], "hex": "#918072", "cmyk": [ 34, 42, 46, 23 ], "desc": "", "figure": "" }, { "id": "154136120", "name": "海鸥灰", "tra_name": "海鷗灰", "color_series": "gray", "pinyin": "hǎi ōu huī", "font_color": "dark", "is_bright": true, "rgb": [ 154, 136, 120 ], "hex": "#9A8878", "cmyk": [ 42, 40, 46, 20 ], "desc": "", "figure": "" }, { "id": "987365", "name": "石板灰", "tra_name": "石板灰", "color_series": "gray", "pinyin": "shí bǎn huī", "font_color": "bright", "is_bright": false, "rgb": [ 98, 73, 65 ], "hex": "#624941", "cmyk": [ 39, 60, 58, 51 ], "desc": "", "figure": "" }, { "id": "1007261", "name": "珠母灰", "tra_name": "珠母灰", "color_series": "gray", "pinyin": "zhū mǔ huī", "font_color": "bright", "is_bright": false, "rgb": [ 100, 72, 61 ], "hex": "#64483D", "cmyk": [ 38, 63, 63, 50 ], "desc": "", "figure": "" }, { "id": "183160145", "name": "蛛网灰", "tra_name": "蛛網灰", "color_series": "gray", "pinyin": "zhū wǎng huī", "font_color": "dark", "is_bright": true, "rgb": [ 183, 160, 145 ], "hex": "#B7A091", "cmyk": [ 23, 35, 38, 10 ], "desc": "", "figure": "" }, { "id": "1399777", "name": "中红灰", "tra_name": "中紅灰", "color_series": "gray", "pinyin": "zhōng hóng huī", "font_color": "dark", "is_bright": true, "rgb": [ 139, 97, 77 ], "hex": "#8B614D", "cmyk": [ 31, 63, 66, 31 ], "desc": "", "figure": "" }, { "id": "916658", "name": "淡铁灰", "tra_name": "淡鐵灰", "color_series": "gray", "pinyin": "dàn tiě huī", "font_color": "bright", "is_bright": false, "rgb": [ 91, 66, 58 ], "hex": "#5B423A", "cmyk": [ 40, 64, 61, 56 ], "desc": "", "figure": "" }, { "id": "966148", "name": "中灰驼", "tra_name": "中灰駝", "color_series": "gray", "pinyin": "zhōng huī tuó", "font_color": "bright", "is_bright": false, "rgb": [ 96, 61, 48 ], "hex": "#603D30", "cmyk": [ 37, 72, 72, 52 ], "desc": "", "figure": "" }, { "id": "725150", "name": "海报灰", "tra_name": "海報灰", "color_series": "gray", "pinyin": "hǎi bào huī", "font_color": "bright", "is_bright": false, "rgb": [ 72, 51, 50 ], "hex": "#483332", "cmyk": [ 45, 68, 57, 66 ], "desc": "", "figure": "" }, { "id": "754643", "name": "玫瑰灰", "tra_name": "玫瑰灰", "color_series": "gray", "pinyin": "méi guī huī", "font_color": "dark", "is_bright": true, "rgb": [ 175, 46, 43 ], "hex": "#4B2E2B", "cmyk": [ 41, 76, 64, 65 ], "desc": "", "figure": "" }, { "id": "184148133", "name": "淡玫瑰灰", "tra_name": "淡玫瑰灰", "color_series": "gray", "pinyin": "dàn méi guī huī", "font_color": "dark", "is_bright": true, "rgb": [ 184, 148, 133 ], "hex": "#B89485", "cmyk": [ 21, 43, 43, 9 ], "desc": "", "figure": "" }, { "id": "1158792", "name": "鼠背灰", "tra_name": "鼠背灰", "color_series": "gray", "pinyin": "shǔ bèi huī", "font_color": "bright", "is_bright": false, "rgb": [ 115, 87, 92 ], "hex": "#73575C", "cmyk": [ 41, 64, 44, 36 ], "desc": "", "figure": "" }, { "id": "544043", "name": "苍蝇灰", "tra_name": "蒼蠅灰", "color_series": "gray", "pinyin": "cāng yíng huī", "font_color": "bright", "is_bright": false, "rgb": [ 54, 40, 43 ], "hex": "#36282B", "cmyk": [ 57, 72, 54, 74 ], "desc": "", "figure": "" }, { "id": "189174173", "name": "芦穗灰", "tra_name": "蘆穗灰", "color_series": "gray", "pinyin": "lú suì huī", "font_color": "dark", "is_bright": true, "rgb": [ 189, 174, 173 ], "hex": "#BDAEAD", "cmyk": [ 25, 31, 26, 5 ], "desc": "", "figure": "" }, { "id": "181152161", "name": "隐红灰", "tra_name": "隱紅灰", "color_series": "gray", "pinyin": "yǐn hóng huī", "font_color": "dark", "is_bright": true, "rgb": [ 181, 152, 161 ], "hex": "#B598A1", "cmyk": [ 26, 43, 26, 6 ], "desc": "", "figure": "" }, { "id": "133109114", "name": "芦灰", "tra_name": "蘆灰", "color_series": "gray", "pinyin": "lú huī", "font_color": "dark", "is_bright": true, "rgb": [ 133, 109, 114 ], "hex": "#856D72", "cmyk": [ 39, 53, 38, 25 ], "desc": "", "figure": "" }, { "id": "795662", "name": "暮云灰", "tra_name": "暮雲灰", "color_series": "gray", "pinyin": "mù yún huī", "font_color": "bright", "is_bright": false, "rgb": [ 79, 56, 62 ], "hex": "#4F383E", "cmyk": [ 49, 71, 49, 58 ], "desc": "", "figure": "" }, { "id": "724154", "name": "斑鸠灰", "tra_name": "斑鳩灰", "color_series": "gray", "pinyin": "bān jiū huī", "font_color": "bright", "is_bright": false, "rgb": [ 72, 41, 54 ], "hex": "#482936", "cmyk": [ 49, 82, 46, 63 ], "desc": "", "figure": "" }, { "id": "936381", "name": "紫灰", "tra_name": "紫灰", "color_series": "gray", "pinyin": "zǐ huī", "font_color": "bright", "is_bright": false, "rgb": [ 93, 63, 81 ], "hex": "#5D3F51", "cmyk": [ 53, 75, 41, 41 ], "desc": "", "figure": "" }, { "id": "544147", "name": "古鼎灰", "tra_name": "古鼎灰", "color_series": "gray", "pinyin": "gǔ dǐng huī", "font_color": "bright", "is_bright": false, "rgb": [ 54, 41, 47 ], "hex": "#36292F", "cmyk": [ 63, 74, 52, 70 ], "desc": "", "figure": "" }, { "id": "122115116", "name": "锌灰", "tra_name": "鋅灰", "color_series": "gray", "pinyin": "xīn huī", "font_color": "bright", "is_bright": false, "rgb": [ 122, 115, 116 ], "hex": "#7A7374", "cmyk": [ 48, 45, 40, 26 ], "desc": "", "figure": "" }, { "id": "9497109", "name": "鱼尾灰", "tra_name": "魚尾灰", "color_series": "gray", "pinyin": "yú wěi huī", "font_color": "bright", "is_bright": false, "rgb": [ 94, 97, 109 ], "hex": "#5E616D", "cmyk": [ 64, 52, 39, 28 ], "desc": "", "figure": "" }, { "id": "7181100", "name": "鲸鱼灰", "tra_name": "鯨魚灰", "color_series": "gray", "pinyin": "jīng yú huī", "font_color": "bright", "is_bright": false, "rgb": [ 71, 81, 100 ], "hex": "#475164", "cmyk": [ 78, 60, 40, 31 ], "desc": "", "figure": "" }, { "id": "535160", "name": "沙鱼灰", "tra_name": "沙魚灰", "color_series": "gray", "pinyin": "shā yú huī", "font_color": "bright", "is_bright": false, "rgb": [ 53, 51, 60 ], "hex": "#35333C", "cmyk": [ 76, 70, 51, 60 ], "desc": "", "figure": "" }, { "id": "196203207", "name": "大理石灰", "tra_name": "大理石灰", "color_series": "gray", "pinyin": "dà lǐ shí huī", "font_color": "dark", "is_bright": true, "rgb": [ 196, 203, 207 ], "hex": "#C4CBCF", "cmyk": [ 29, 16, 17, 1 ], "desc": "", "figure": "" }, { "id": "474753", "name": "水牛灰", "tra_name": "水牛灰", "color_series": "gray", "pinyin": "shuǐ niú huī", "font_color": "bright", "is_bright": false, "rgb": [ 47, 47, 53 ], "hex": "#2F2F35", "cmyk": [ 77, 68, 54, 66 ], "desc": "", "figure": "" }, { "id": "454654", "name": "牛角灰", "tra_name": "牛角灰", "color_series": "gray", "pinyin": "niú jiǎo huī", "font_color": "bright", "is_bright": false, "rgb": [ 45, 46, 54 ], "hex": "#2D2E36", "cmyk": [ 80, 70, 53, 65 ], "desc": "", "figure": "" }, { "id": "178187190", "name": "星灰", "tra_name": "星灰", "color_series": "gray", "pinyin": "xīng huī", "font_color": "dark", "is_bright": true, "rgb": [ 178, 187, 190 ], "hex": "#B2BBBE", "cmyk": [ 36, 20, 23, 2 ], "desc": "", "figure": "" }, { "id": "94121135", "name": "淡蓝灰", "tra_name": "淡藍灰", "color_series": "gray", "pinyin": "dàn lán huī", "font_color": "dark", "is_bright": true, "rgb": [ 94, 121, 135 ], "hex": "#5E7987", "cmyk": [ 70, 38, 36, 18 ], "desc": "", "figure": "" }, { "id": "116120122", "name": "嫩灰", "tra_name": "嫩灰", "color_series": "gray", "pinyin": "nèn huī", "font_color": "bright", "is_bright": false, "rgb": [ 116, 120, 122 ], "hex": "#74787A", "cmyk": [ 55, 40, 40, 23 ], "desc": "", "figure": "" }, { "id": "7392105", "name": "战舰灰", "tra_name": "戰艦灰", "color_series": "gray", "pinyin": "zhàn jiàn huī", "font_color": "bright", "is_bright": false, "rgb": [ 73, 92, 105 ], "hex": "#495C69", "cmyk": [ 77, 50, 41, 31 ], "desc": "", "figure": "" }, { "id": "717276", "name": "瓦罐灰", "tra_name": "瓦罐灰", "color_series": "gray", "pinyin": "wǎ guàn huī", "font_color": "bright", "is_bright": false, "rgb": [ 71, 72, 76 ], "hex": "#47484C", "cmyk": [ 67, 57, 49, 49 ], "desc": "", "figure": "" }, { "id": "435162", "name": "青灰", "tra_name": "青灰", "color_series": "gray", "pinyin": "qīng huī", "font_color": "bright", "is_bright": false, "rgb": [ 43, 51, 62 ], "hex": "#2B333E", "cmyk": [ 87, 69, 51, 58 ], "desc": "", "figure": "" }, { "id": "115124123", "name": "垩灰", "tra_name": "堊灰", "color_series": "gray", "pinyin": "è huī", "font_color": "bright", "is_bright": false, "rgb": [ 115, 124, 123 ], "hex": "#737C7B", "cmyk": [ 57, 37, 42, 21 ], "desc": "", "figure": "" }, { "id": "97113114", "name": "夏云灰", "tra_name": "夏雲灰", "color_series": "gray", "pinyin": "xià yún huī", "font_color": "bright", "is_bright": false, "rgb": [ 97, 113, 114 ], "hex": "#617172", "cmyk": [ 65, 40, 44, 26 ], "desc": "", "figure": "" }, { "id": "717576", "name": "黄昏灰", "tra_name": "黃昏灰", "color_series": "gray", "pinyin": "huáng hūn huī", "font_color": "bright", "is_bright": false, "rgb": [ 71, 75, 76 ], "hex": "#474B4C", "cmyk": [ 67, 53, 51, 50 ], "desc": "", "figure": "" }, { "id": "159163154", "name": "镍灰", "tra_name": "鎳灰", "color_series": "gray", "pinyin": "niè huī", "font_color": "dark", "is_bright": true, "rgb": [ 159, 163, 154 ], "hex": "#9FA39A", "cmyk": [ 40, 27, 36, 8 ], "desc": "", "figure": "" }, { "id": "138152142", "name": "明灰", "tra_name": "明灰", "color_series": "gray", "pinyin": "míng huī", "font_color": "dark", "is_bright": true, "rgb": [ 138, 152, 142 ], "hex": "#8A988E", "cmyk": [ 52, 28, 42, 10 ], "desc": "", "figure": "" }, { "id": "112136125", "name": "淡绿灰", "tra_name": "淡綠灰", "color_series": "gray", "pinyin": "dàn lǜ huī", "font_color": "dark", "is_bright": true, "rgb": [ 112, 136, 125 ], "hex": "#70887D", "cmyk": [ 63, 31, 50, 14 ], "desc": "", "figure": "" }, { "id": "9310195", "name": "狼烟灰", "tra_name": "狼煙灰", "color_series": "gray", "pinyin": "láng yān huī", "font_color": "bright", "is_bright": false, "rgb": [ 93, 101, 95 ], "hex": "#5D655F", "cmyk": [ 62, 43, 52, 34 ], "desc": "", "figure": "" }, { "id": "497467", "name": "绿灰", "tra_name": "綠灰", "color_series": "gray", "pinyin": "lǜ huī", "font_color": "bright", "is_bright": false, "rgb": [ 49, 74, 67 ], "hex": "#314A43", "cmyk": [ 85, 44, 64, 52 ], "desc": "", "figure": "" }, { "id": "545251", "name": "长石灰", "tra_name": "長石灰", "color_series": "gray", "pinyin": "cháng shí huī", "font_color": "bright", "is_bright": false, "rgb": [ 54, 52, 51 ], "hex": "#363433", "cmyk": [ 67, 60, 57, 68 ], "desc": "", "figure": "" }, { "id": "575551", "name": "河豚灰", "tra_name": "河豚灰", "color_series": "gray", "pinyin": "hé tún huī", "font_color": "bright", "is_bright": false, "rgb": [ 57, 55, 51 ], "hex": "#393733", "cmyk": [ 64, 57, 60, 67 ], "desc": "", "figure": "" }, { "id": "218212203", "name": "浅灰", "tra_name": "淺灰", "color_series": "gray", "pinyin": "qiǎn huī", "font_color": "dark", "is_bright": true, "rgb": [ 218, 212, 203 ], "hex": "#DAD4CB", "cmyk": [ 16, 15, 20, 1 ], "desc": "", "figure": "" }, { "id": "187181172", "name": "中灰", "tra_name": "中灰", "color_series": "gray", "pinyin": "zhōng huī", "font_color": "dark", "is_bright": true, "rgb": [ 187, 181, 172 ], "hex": "#BBB5AC", "cmyk": [ 28, 25, 30, 5 ], "desc": "", "figure": "" }, { "id": "134126118", "name": "瓦灰", "tra_name": "瓦灰", "color_series": "gray", "pinyin": "wǎ huī", "font_color": "dark", "is_bright": true, "rgb": [ 134, 126, 118 ], "hex": "#867E76", "cmyk": [ 42, 40, 43, 23 ], "desc": "", "figure": "" }, { "id": "132124116", "name": "夜灰", "tra_name": "夜灰", "color_series": "gray", "pinyin": "yè huī", "font_color": "dark", "is_bright": true, "rgb": [ 132, 124, 116 ], "hex": "#847C74", "cmyk": [ 43, 40, 44, 42 ], "desc": "", "figure": "" }, { "id": "128118110", "name": "雁灰", "tra_name": "雁灰", "color_series": "gray", "pinyin": "yàn huī", "font_color": "dark", "is_bright": true, "rgb": [ 128, 118, 110 ], "hex": "#80766E", "cmyk": [ 42, 42, 45, 27 ], "desc": "", "figure": "" }, { "id": "19996121", "name": "红莲灰", "tra_name": "紅蓮灰", "color_series": "gray", "pinyin": "hóng lián hūi", "font_color": "dark", "is_bright": true, "rgb": [ 199, 96, 121 ], "hex": "#C76079", "cmyk": [ 0, 52, 39, 22 ], "desc": "", "figure": "" }, { "id": "1216186", "name": "玫瑰灰", "tra_name": "玫瑰灰", "color_series": "gray", "pinyin": "méi gūi hūi", "font_color": "bright", "is_bright": false, "rgb": [ 121, 61, 86 ], "hex": "#793D56", "cmyk": [ 0, 50, 29, 53 ], "desc": "", "figure": "" }, { "id": "187132140", "name": "红灰莲", "tra_name": "紅灰蓮", "color_series": "gray", "pinyin": "hóng hūi lián", "font_color": "dark", "is_bright": true, "rgb": [ 187, 132, 140 ], "hex": "#BB848C", "cmyk": [ 0, 29, 25, 27 ], "desc": "", "figure": "" }, { "id": "225219205", "name": "浅棕灰", "tra_name": "浅棕灰", "color_series": "gray", "pinyin": "qiǎn zōng hūi", "font_color": "dark", "is_bright": true, "rgb": [ 225, 219, 205 ], "hex": "#E1DBCD", "cmyk": [ 0, 3, 9, 12 ], "desc": "", "figure": "" }, { "id": "184154131", "name": "肉棕灰", "tra_name": "肉棕灰", "color_series": "gray", "pinyin": "ròu zōng hūi", "font_color": "dark", "is_bright": true, "rgb": [ 184, 154, 131 ], "hex": "#B89A83", "cmyk": [ 0, 16, 29, 28 ], "desc": "", "figure": "" }, { "id": "1097786", "name": "葡萄灰", "tra_name": "葡萄灰", "color_series": "gray", "pinyin": "pú táo hūi", "font_color": "bright", "is_bright": false, "rgb": [ 109, 77, 86 ], "hex": "#6D4D56", "cmyk": [ 0, 29, 21, 57 ], "desc": "", "figure": "" }, { "id": "169152124", "name": "中棕灰", "tra_name": "中棕灰", "color_series": "gray", "pinyin": "zhōng zōng hūi", "font_color": "dark", "is_bright": true, "rgb": [ 169, 152, 124 ], "hex": "#A9987C", "cmyk": [ 0, 10, 27, 34 ], "desc": "", "figure": "" }, { "id": "197187163", "name": "乳灰", "tra_name": "乳灰", "color_series": "gray", "pinyin": "rǔ hūi", "font_color": "dark", "is_bright": true, "rgb": [ 197, 187, 163 ], "hex": "#C5BBA3", "cmyk": [ 0, 5, 17, 23 ], "desc": "", "figure": "" }, { "id": "178174155", "name": "深银灰", "tra_name": "深銀灰", "color_series": "gray", "pinyin": "shēn yín hūi", "font_color": "dark", "is_bright": true, "rgb": [ 178, 174, 155 ], "hex": "#B2AE9B", "cmyk": [ 0, 2, 13, 30 ], "desc": "", "figure": "" }, { "id": "197191173", "name": "米灰", "tra_name": "米灰", "color_series": "gray", "pinyin": "mǐ hūi", "font_color": "dark", "is_bright": true, "rgb": [ 197, 191, 173 ], "hex": "#C5BFAD", "cmyk": [ 0, 3, 12, 23 ], "desc": "", "figure": "" }, { "id": "204195170", "name": "芽灰", "tra_name": "芽灰", "color_series": "gray", "pinyin": "yá hūi", "font_color": "dark", "is_bright": true, "rgb": [ 204, 195, 170 ], "hex": "#CCC3AA", "cmyk": [ 0, 4, 17, 20 ], "desc": "", "figure": "" }, { "id": "136174163", "name": "果灰", "tra_name": "果灰", "color_series": "gray", "pinyin": "guǒ hūi", "font_color": "dark", "is_bright": true, "rgb": [ 136, 174, 163 ], "hex": "#88AEA3", "cmyk": [ 22, 0, 6, 32 ], "desc": "", "figure": "" }, { "id": "169176143", "name": "芦灰", "tra_name": "芦灰", "color_series": "gray", "pinyin": "lú hūi", "font_color": "dark", "is_bright": true, "rgb": [ 169, 176, 143 ], "hex": "#A9B08F", "cmyk": [ 4, 0, 19, 31 ], "desc": "", "figure": "" }, { "id": "183185156", "name": "虾灰", "tra_name": "蝦灰", "color_series": "gray", "pinyin": "xiā hūi", "font_color": "dark", "is_bright": true, "rgb": [ 183, 185, 156 ], "hex": "#B7B99C", "cmyk": [ 1, 0, 16, 27 ], "desc": "", "figure": "" }, { "id": "182177150", "name": "灰米", "tra_name": "灰米", "color_series": "gray", "pinyin": "hūi mǐ", "font_color": "dark", "is_bright": true, "rgb": [ 182, 177, 150 ], "hex": "#B6B196", "cmyk": [ 0, 3, 18, 29 ], "desc": "", "figure": "" }, { "id": "100115114", "name": "暗灰", "tra_name": "暗灰", "color_series": "gray", "pinyin": "àn hūi", "font_color": "bright", "is_bright": false, "rgb": [ 100, 115, 114 ], "hex": "#647372", "cmyk": [ 13, 0, 1, 55 ], "desc": "", "figure": "" }, { "id": "124146131", "name": "橄榄灰", "tra_name": "橄欖灰", "color_series": "gray", "pinyin": "gǎn lǎn hūi", "font_color": "dark", "is_bright": true, "rgb": [ 124, 146, 131 ], "hex": "#7C9283", "cmyk": [ 15, 0, 10, 43 ], "desc": "", "figure": "" }, { "id": "1039170", "name": "草灰色", "tra_name": "草灰色", "color_series": "gray", "pinyin": "cǎo hūi sè", "font_color": "bright", "is_bright": false, "rgb": [ 103, 91, 70 ], "hex": "#675B46", "cmyk": [ 0, 12, 32, 60 ], "desc": "", "figure": "" }, { "id": "87103104", "name": "深灰", "tra_name": "深灰", "color_series": "gray", "pinyin": "shēn hūi", "font_color": "bright", "is_bright": false, "rgb": [ 87, 103, 104 ], "hex": "#576768", "cmyk": [ 16, 1, 0, 59 ], "desc": "", "figure": "" }, { "id": "6986103", "name": "鹊灰", "tra_name": "鵲灰", "color_series": "gray", "pinyin": "què hūi", "font_color": "bright", "is_bright": false, "rgb": [ 69, 86, 103 ], "hex": "#455667", "cmyk": [ 33, 17, 0, 60 ], "desc": "", "figure": "" }, { "id": "99113121", "name": "深瓦灰", "tra_name": "深瓦灰", "color_series": "gray", "pinyin": "shēn wǎ hūi", "font_color": "bright", "is_bright": false, "rgb": [ 99, 113, 121 ], "hex": "#637179", "cmyk": [ 18, 7, 0, 53 ], "desc": "", "figure": "" }, { "id": "8810294", "name": "苔灰", "tra_name": "苔灰", "color_series": "gray", "pinyin": "tái hūi", "font_color": "bright", "is_bright": false, "rgb": [ 88, 102, 94 ], "hex": "#58665E", "cmyk": [ 14, 0, 8, 60 ], "desc": "", "figure": "" }, { "id": "109129125", "name": "冬灰色", "tra_name": "冬灰色", "color_series": "gray", "pinyin": "dōng hūi sè", "font_color": "dark", "is_bright": true, "rgb": [ 109, 129, 125 ], "hex": "#6D817D", "cmyk": [ 16, 0, 3, 49 ], "desc": "", "figure": "" }, { "id": "170194196", "name": "云灰", "tra_name": "雲灰", "color_series": "gray", "pinyin": "yún hūi", "font_color": "dark", "is_bright": true, "rgb": [ 170, 194, 196 ], "hex": "#AAC2C4", "cmyk": [ 13, 1, 0, 23 ], "desc": "", "figure": "" }, { "id": "149177186", "name": "鸽灰", "tra_name": "鴿灰", "color_series": "gray", "pinyin": "gē hūi", "font_color": "dark", "is_bright": true, "rgb": [ 149, 177, 186 ], "hex": "#95B1BA", "cmyk": [ 20, 5, 0, 27 ], "desc": "", "figure": "" }, { "id": "138164168", "name": "蓝灰色", "tra_name": "藍灰色", "color_series": "gray", "pinyin": "lán hūi sè", "font_color": "dark", "is_bright": true, "rgb": [ 138, 164, 168 ], "hex": "#8AA4A8", "cmyk": [ 18, 2, 0, 34 ], "desc": "", "figure": "" }, { "id": "148156151", "name": "水貂灰", "tra_name": "水貂灰", "color_series": "gray", "pinyin": "shǔi diāo hūi", "font_color": "dark", "is_bright": true, "rgb": [ 148, 156, 151 ], "hex": "#949C97", "cmyk": [ 5, 0, 3, 39 ], "desc": "", "figure": "" }, { "id": "89128142", "name": "湖蓝灰", "tra_name": "湖藍灰", "color_series": "gray", "pinyin": "hú lán hūi", "font_color": "dark", "is_bright": true, "rgb": [ 89, 128, 142 ], "hex": "#59808E", "cmyk": [ 37, 10, 0, 44 ], "desc": "", "figure": "" }, { "id": "545350", "name": "灯草灰", "tra_name": "灯草灰", "color_series": "gray", "pinyin": "dēng cǎo hūi", "font_color": "bright", "is_bright": false, "rgb": [ 54, 53, 50 ], "hex": "#363532", "cmyk": [ 0, 2, 7, 79 ], "desc": "", "figure": "" }, { "id": "556875", "name": "鉄灰", "tra_name": "鉄灰", "color_series": "gray", "pinyin": "tiě hūi", "font_color": "bright", "is_bright": false, "rgb": [ 55, 68, 75 ], "hex": "#37444B", "cmyk": [ 27, 9, 0, 71 ], "desc": "", "figure": "" }, { "id": "202208211", "name": "雪灰", "tra_name": "雪灰", "color_series": "gray", "pinyin": "xuě hūi", "font_color": "dark", "is_bright": true, "rgb": [ 202, 208, 211 ], "hex": "#CAD0D3", "cmyk": [ 4, 1, 0, 17 ], "desc": "", "figure": "" }, { "id": "168166185", "name": "莲灰", "tra_name": "蓮灰", "color_series": "gray", "pinyin": "lián hūi", "font_color": "dark", "is_bright": true, "rgb": [ 168, 166, 185 ], "hex": "#A8A6B9", "cmyk": [ 9, 10, 0, 27 ], "desc": "", "figure": "" }, { "id": "145152174", "name": "雪青灰", "tra_name": "雪青灰", "color_series": "gray", "pinyin": "xuě qīng hūi", "font_color": "dark", "is_bright": true, "rgb": [ 145, 152, 174 ], "hex": "#9198AE", "cmyk": [ 17, 13, 0, 32 ], "desc": "", "figure": "" }, { "id": "133126149", "name": "紫藤灰", "tra_name": "紫藤灰", "color_series": "gray", "pinyin": "zǐ téng hūi", "font_color": "dark", "is_bright": true, "rgb": [ 133, 126, 149 ], "hex": "#857E95", "cmyk": [ 11, 15, 0, 42 ], "desc": "", "figure": "" }, { "id": "879093", "name": "青灰色", "tra_name": "青灰色", "color_series": "gray", "pinyin": "qīng hūi sè", "font_color": "bright", "is_bright": false, "rgb": [ 87, 90, 93 ], "hex": "#575A5D", "cmyk": [ 6, 3, 0, 64 ], "desc": "", "figure": "" }, { "id": "909291", "name": "承徳皀", "tra_name": "承徳皀", "color_series": "gray", "pinyin": "chéng dé bī", "font_color": "bright", "is_bright": false, "rgb": [ 90, 92, 91 ], "hex": "#5A5C5B", "cmyk": [ 2, 0, 1, 64 ], "desc": "", "figure": "" }, { "id": "117117112", "name": "承徳灰", "tra_name": "承徳灰", "color_series": "gray", "pinyin": "chéng dé hūi", "font_color": "bright", "is_bright": false, "rgb": [ 117, 117, 112 ], "hex": "#757570", "cmyk": [ 0, 0, 4, 54 ], "desc": "", "figure": "" }, { "id": "129124110", "name": "庭院瓦灰色", "tra_name": "庭院瓦灰色", "color_series": "gray", "pinyin": "tíng yuàn wǎ hūi sè", "font_color": "dark", "is_bright": true, "rgb": [ 129, 124, 110 ], "hex": "#817C6E", "cmyk": [ 0, 4, 15, 49 ], "desc": "", "figure": "" }, { "id": "989282", "name": "相思灰", "tra_name": "相思灰", "color_series": "gray", "pinyin": "xiāng sī hūi", "font_color": "bright", "is_bright": false, "rgb": [ 98, 92, 82 ], "hex": "#625C52", "cmyk": [ 0, 6, 16, 62 ], "desc": "", "figure": "" }, { "id": "113114122", "name": "银鼠灰", "tra_name": "銀鼠灰", "color_series": "gray", "pinyin": "yín shǔ hūi", "font_color": "bright", "is_bright": false, "rgb": [ 113, 114, 122 ], "hex": "#71727A", "cmyk": [ 7, 7, 0, 52 ], "desc": "", "figure": "" }, { "id": "147162169", "name": "正灰", "tra_name": "正灰", "color_series": "gray", "pinyin": "zhèng hūi", "font_color": "dark", "is_bright": true, "rgb": [ 147, 162, 169 ], "hex": "#93A2A9", "cmyk": [ 13, 4, 0, 34 ], "desc": "", "figure": "" }, { "id": "116138141", "name": "织绵灰", "tra_name": "織綿灰", "color_series": "gray", "pinyin": "zhī mián hūi", "font_color": "dark", "is_bright": true, "rgb": [ 116, 138, 141 ], "hex": "#748A8D", "cmyk": [ 18, 2, 0, 45 ], "desc": "", "figure": "" }, { "id": "107124135", "name": "石板灰", "tra_name": "石板灰", "color_series": "gray", "pinyin": "shí bǎn hūi", "font_color": "dark", "is_bright": true, "rgb": [ 107, 124, 135 ], "hex": "#6B7C87", "cmyk": [ 21, 8, 0, 47 ], "desc": "", "figure": "" }, { "id": "7980109", "name": "罗蓝灰", "tra_name": "羅藍灰", "color_series": "gray", "pinyin": "luó lán hūi", "font_color": "bright", "is_bright": false, "rgb": [ 79, 80, 109 ], "hex": "#4F506D", "cmyk": [ 28, 27, 0, 57 ], "desc": "", "figure": "" }, { "id": "889087", "name": "银箔", "tra_name": "銀箔", "color_series": "gray", "pinyin": "yín bó", "font_color": "bright", "is_bright": false, "rgb": [ 88, 90, 87 ], "hex": "#585A57", "cmyk": [ 2, 0, 3, 65 ], "desc": "", "figure": "" }, { "id": "130135140", "name": "红灰", "tra_name": "紅灰", "color_series": "gray", "pinyin": "hóng hūi", "font_color": "dark", "is_bright": true, "rgb": [ 130, 135, 140 ], "hex": "#82878C", "cmyk": [ 7, 4, 0, 45 ], "desc": "", "figure": "" }, { "id": "176183172", "name": "黄灰", "tra_name": "黄灰", "color_series": "gray", "pinyin": "huáng hūi", "font_color": "dark", "is_bright": true, "rgb": [ 176, 183, 172 ], "hex": "#B0B7AC", "cmyk": [ 4, 0, 6, 28 ], "desc": "", "figure": "" } ], "black": [ { "id": "000", "name": "黑色", "tra_name": "黑色", "color_series": "black", "pinyin": "hēi sè", "font_color": "bright", "is_bright": false, "rgb": [ 0, 0, 0 ], "hex": "#000000", "cmyk": [ 0, 0, 0, 100 ], "desc": "", "figure": "" }, { "id": "676974", "name": "粗晶皀", "tra_name": "粗晶皀", "color_series": "black", "pinyin": "cū jīng bī", "font_color": "bright", "is_bright": false, "rgb": [ 67, 69, 74 ], "hex": "#43454A", "cmyk": [ 9, 7, 0, 71 ], "desc": "", "figure": "" }, { "id": "484848", "name": "百草霜", "tra_name": "百草霜", "color_series": "black", "pinyin": "bǎi cǎo shuāng", "font_color": "bright", "is_bright": false, "rgb": [ 48, 48, 48 ], "hex": "#303030", "cmyk": [ 0, 0, 0, 81 ], "desc": "", "figure": "" }, { "id": "636360", "name": "油烟墨", "tra_name": "油煙墨", "color_series": "black", "pinyin": "yóu yān mò", "font_color": "bright", "is_bright": false, "rgb": [ 63, 63, 60 ], "hex": "#3F3F3C", "cmyk": [ 0, 0, 5, 75 ], "desc": "", "figure": "" } ], "white": [ { "id": "209217224", "name": "苍白", "tra_name": "蒼白", "color_series": "white", "pinyin": "cāng bái", "font_color": "dark", "is_bright": true, "rgb": [ 209, 217, 224 ], "hex": "#D1D9E0", "cmyk": [ 7, 3, 0, 12 ], "desc": "准确的说是掺入不同灰度级别的灰色", "figure": "fanchuan.png" }, { "id": "255255255", "name": "精白", "tra_name": "精白", "color_series": "white", "pinyin": "jīng bái", "font_color": "dark", "is_bright": true, "rgb": [ 255, 255, 255 ], "hex": "#FFFFFF", "cmyk": [ 0, 0, 0, 0 ], "desc": "", "figure": "" }, { "id": "255251240", "name": "象牙白", "tra_name": "象牙白", "color_series": "white", "pinyin": "xiàng yá bái", "font_color": "dark", "is_bright": true, "rgb": [ 255, 251, 240 ], "hex": "#FFFBF0", "cmyk": [ 0, 2, 6, 0 ], "desc": "", "figure": "" }, { "id": "242253255", "name": "雪白", "tra_name": "雪白", "color_series": "white", "pinyin": "xuě bái", "font_color": "dark", "is_bright": true, "rgb": [ 242, 253, 255 ], "hex": "#F2FDFF", "cmyk": [ 5, 1, 0, 0 ], "desc": "如雪般洁白", "figure": "meihua.pink.png" }, { "id": "242236222", "name": "缟", "tra_name": "縞", "color_series": "white", "pinyin": "gǎo", "font_color": "dark", "is_bright": true, "rgb": [ 242, 236, 222 ], "hex": "#F2ECDE", "cmyk": [ 0, 2, 8, 5 ], "desc": "", "figure": "" }, { "id": "224240233", "name": "素", "tra_name": "素", "color_series": "white", "pinyin": "sù", "font_color": "dark", "is_bright": true, "rgb": [ 224, 240, 233 ], "hex": "#E0F0E9", "cmyk": [ 7, 0, 3, 6 ], "desc": "", "figure": "" }, { "id": "243249241", "name": "茶白", "tra_name": "茶白", "color_series": "white", "pinyin": "chá bái", "font_color": "dark", "is_bright": true, "rgb": [ 243, 249, 241 ], "hex": "#F3F9F1", "cmyk": [ 2, 0, 3, 2 ], "desc": "", "figure": "" }, { "id": "233241246", "name": "霜色", "tra_name": "霜色", "color_series": "white", "pinyin": "shuāng sè", "font_color": "dark", "is_bright": true, "rgb": [ 233, 241, 246 ], "hex": "#E9F1F6", "cmyk": [ 5, 2, 0, 4 ], "desc": "", "figure": "" }, { "id": "194204208", "name": "花白", "tra_name": "花白", "color_series": "white", "pinyin": "huā bái", "font_color": "dark", "is_bright": true, "rgb": [ 194, 204, 208 ], "hex": "#C2CCD0", "cmyk": [ 7, 2, 0, 18 ], "desc": "", "figure": "" }, { "id": "252239232", "name": "鱼肚白", "tra_name": "魚肚白", "color_series": "white", "pinyin": "yú dǔ bái", "font_color": "dark", "is_bright": true, "rgb": [ 252, 239, 232 ], "hex": "#FCEFE8", "cmyk": [ 0, 5, 8, 1 ], "desc": "", "figure": "" }, { "id": "240240244", "name": "铅白", "tra_name": "鉛白", "color_series": "white", "pinyin": "qiān bái", "font_color": "dark", "is_bright": true, "rgb": [ 240, 240, 244 ], "hex": "#F0F0F4", "cmyk": [ 2, 2, 0, 4 ], "desc": "", "figure": "" }, { "id": "233231239", "name": "银白", "tra_name": "銀白", "color_series": "white", "pinyin": "yín bái", "font_color": "dark", "is_bright": true, "rgb": [ 233, 231, 239 ], "hex": "#E9E7EF", "cmyk": [ 3, 3, 0, 6 ], "desc": "", "figure": "" }, { "id": "186202198", "name": "老银", "tra_name": "老銀", "color_series": "white", "pinyin": "lǎo yín", "font_color": "dark", "is_bright": true, "rgb": [ 186, 202, 198 ], "hex": "#BACAC6", "cmyk": [ 8, 0, 2, 21 ], "desc": "", "figure": "" }, { "id": "226225228", "name": "芡食白", "tra_name": "芡食白", "color_series": "white", "pinyin": "qiàn shí bái", "font_color": "dark", "is_bright": true, "rgb": [ 226, 225, 228 ], "hex": "#E2E1E4", "cmyk": [ 13, 10, 9, 0 ], "desc": "", "figure": "" }, { "id": "192196195", "name": "月影白", "tra_name": "月影白", "color_series": "white", "pinyin": "yuè yǐng bái", "font_color": "dark", "is_bright": true, "rgb": [ 192, 196, 195 ], "hex": "#C0C4C3", "cmyk": [ 29, 18, 21, 2 ], "desc": "", "figure": "" }, { "id": "234220214", "name": "甘石粉", "tra_name": "甘石粉", "color_series": "white", "pinyin": "gān shí fěn", "font_color": "dark", "is_bright": true, "rgb": [ 234, 220, 214 ], "hex": "#EADCD6", "cmyk": [ 0, 6, 9, 8 ], "desc": "", "figure": "" }, { "id": "235232219", "name": "胡粉", "tra_name": "胡粉", "color_series": "white", "pinyin": "hú fěn", "font_color": "dark", "is_bright": true, "rgb": [ 235, 232, 219 ], "hex": "#EBE8DB", "cmyk": [ 0, 1, 7, 8 ], "desc": "", "figure": "" }, { "id": "237234220", "name": "蛤粉", "tra_name": "蛤粉", "color_series": "white", "pinyin": "há fěn", "font_color": "dark", "is_bright": true, "rgb": [ 237, 234, 220 ], "hex": "#EDEADC", "cmyk": [ 0, 1, 7, 7 ], "desc": "", "figure": "" }, { "id": "237235224", "name": "立徳粉", "tra_name": "立徳粉", "color_series": "white", "pinyin": "lì dé fěn", "font_color": "dark", "is_bright": true, "rgb": [ 237, 235, 224 ], "hex": "#EDEBE0", "cmyk": [ 0, 1, 5, 7 ], "desc": "", "figure": "" }, { "id": "209226222", "name": "月白色", "tra_name": "月白色", "color_series": "white", "pinyin": "yuè bái sè", "font_color": "dark", "is_bright": true, "rgb": [ 209, 226, 222 ], "hex": "#D1E2DE", "cmyk": [ 8, 0, 2, 11 ], "desc": "", "figure": "" }, { "id": "231229208", "name": "蝋白", "tra_name": "蝋白", "color_series": "white", "pinyin": "là bái", "font_color": "dark", "is_bright": true, "rgb": [ 231, 229, 208 ], "hex": "#E7E5D0", "cmyk": [ 0, 1, 10, 9 ], "desc": "", "figure": "" }, { "id": "162178169", "name": "大理石色", "tra_name": "大理石色", "color_series": "white", "pinyin": "dà lǐ shí sè", "font_color": "dark", "is_bright": true, "rgb": [ 162, 178, 169 ], "hex": "#A2B2A9", "cmyk": [ 9, 0, 5, 30 ], "desc": "", "figure": "" }, { "id": "213204211", "name": "淡藕合", "tra_name": "淡藕合", "color_series": "white", "pinyin": "dàn ǒu hé", "font_color": "dark", "is_bright": true, "rgb": [ 213, 204, 211 ], "hex": "#D5CCD3", "cmyk": [ 0, 4, 1, 16 ], "desc": "", "figure": "" }, { "id": "235229213", "name": "银白色", "tra_name": "銀白色", "color_series": "white", "pinyin": "yín bái sè", "font_color": "dark", "is_bright": true, "rgb": [ 235, 229, 213 ], "hex": "#EBE5D5", "cmyk": [ 0, 3, 9, 8 ], "desc": "", "figure": "" }, { "id": "240252255", "name": "雪白", "tra_name": "雪白", "color_series": "white", "pinyin": "xuě bái", "font_color": "dark", "is_bright": true, "rgb": [ 240, 252, 255 ], "hex": "#F0FCFF", "cmyk": [ 6, 1, 0, 0 ], "desc": "", "figure": "" }, { "id": "255242253", "name": "白粉", "tra_name": "白粉", "color_series": "white", "pinyin": "bái fěn", "font_color": "dark", "is_bright": true, "rgb": [ 255, 242, 253 ], "hex": "#FFF2FD", "cmyk": [ 0, 5, 1, 0 ], "desc": "", "figure": "" } ] } ================================================ FILE: packages/editor/src/assets/color/recommend.json ================================================ [ { "CMYK": [56, 0, 19, 11], "RGB": [99, 226, 183], "hex": "#63E2B7", "hexHover": "#63E2B7", "hexPressed": "#63E2B7", "hexSuppl": "#63E2B7", "name": "\u9e23\u7fe0\u67f3", "pinyin": "mingcuiliu" }, { "CMYK": [ 95, 25, 20, 4 ], "RGB": [ 21, 139, 184 ], "hex": "#158bb8", "name": "\u9e22\u5c3e\u84dd", "pinyin": "yuanweilan" }, { "CMYK": [ 0, 84, 82, 0 ], "RGB": [ 243, 59, 31 ], "hex": "#f33b1f", "name": "\u6781\u5149\u7ea2", "pinyin": "jiguanghong" }, { "CMYK": [ 1, 28, 89, 0 ], "RGB": [ 246, 196, 48 ], "hex": "#f6c430", "name": "\u9e66\u9e49\u51a0\u9ec4", "pinyin": "yingwuguanhuang" } ] ================================================ FILE: packages/editor/src/assets/less/common.less ================================================ .sidebar-config-item{ display: flex; align-items: center; padding: 0 1rem 0.5rem 1rem; width: calc(100% - 2rem); & > :first-child{ width: 30%; } & > :last-child{ width: 70%; } } .es-upload-card { .n-upload-file-list { &--grid { grid-template-columns:repeat(1, 100%); width: 100%; min-height: 120px; } .n-upload-trigger { &--image-card { width: 100%; height: 100%; border-radius: 0.25rem; display: flex; justify-content: center; align-items: center; cursor: pointer; transition: all 0.3s ease-in-out; .n-icon { margin-bottom: 12px; margin-left: 1rem; } .n-text { font-size: 0.7rem; margin-right: 1rem; } } } .n-upload-file { width: 100%; height: 100%; } } &-dragger { display: flex; flex-direction: column; justify-content: center; align-items: center; } } ================================================ FILE: packages/editor/src/assets/less/index.less ================================================ @import './reset.less'; @import './common.less'; @import './viewport.cube.less'; ================================================ FILE: packages/editor/src/assets/less/reset.less ================================================ :root { --header-height: 50px; --footer-height: 40px; // scene下方扩展面板顶部高度 --scene-extend-header-height: 38px; --animate-duration: .25s; } * { padding: 0; margin: 0; } html, body:first-child, #app { width: 100vw; height: 100vh; overflow: hidden; } /*去除a标签所有默认样式*/ a,a:link,a:visited,a:hover,a:active{ text-decoration: none; color:inherit; } /*顶部菜单弹出框样式*/ .n-dropdown-menu { /* max-height: 25rem; overflow-y: auto; */ } /* 减小form表单item上下间距 */ .n-form-item-feedback-wrapper { min-height: 0.6rem !important; } ::-webkit-scrollbar { width: .25rem; height: .25rem; } /*定义滚动条轨道 内阴影+圆角*/ ::-webkit-scrollbar-track { border-radius: .5rem; background-color: rgba(58, 51, 51, 0.075); } /*定义滑块 内阴影+圆角*/ ::-webkit-scrollbar-thumb { border-radius: 10px; box-shadow: inset 0 0 .3rem rgba(0, 0, 0, .2); background-color: rgba(0, 0, 0, 0.2); } ================================================ FILE: packages/editor/src/assets/less/viewport.cube.less ================================================ #es-view-cube-container { width: 120px; height: 120px; margin: 10px; perspective: 600px; position: absolute; right: 0; bottom: 0; z-index: 1000; display: block; .es-view-cube { width: 100px; height: 100px; position: relative; transform-style: preserve-3d; transform: translateZ(-300px); text-transform: uppercase; .es-view-cube-face { display: flex; justify-content: center; align-items: center; position: absolute; width: 120px; height: 120px; border: 1px dashed #808080; line-height: 100px; font-size: 25px; font-weight: bold; color: #7d7d7d; text-align: center; background: #fff; transition: all 0.1s; cursor: pointer; user-select: none; &:hover { background: #adadad; color: #fff; } } .es-view-cube-face--top { transform: rotateY(0deg) rotateX(90deg) translateZ(-60px); } .es-view-cube-face--bottom { transform: rotateX(270deg) translateZ(-60px); } .es-view-cube-face--left { transform: rotateY(-90deg) rotateX(180deg) rotateZ(0deg) translateZ(-60px); } .es-view-cube-face--right { transform: rotateY(90deg) rotateX(180deg) rotateZ(0deg) translateZ(-60px); } .es-view-cube-face--front { transform: rotateX(180deg) translateZ(-60px); } .es-view-cube-face--back { transform: rotateZ(180deg) translateZ(-60px); } } } ================================================ FILE: packages/editor/src/components/code/CodeEditor.vue ================================================ ================================================ FILE: packages/editor/src/components/code/HtmlPanelCode.vue ================================================ ================================================ FILE: packages/editor/src/components/code/JSONEditor.vue ================================================ ================================================ FILE: packages/editor/src/components/code/SQLEditor.vue ================================================ ================================================ FILE: packages/editor/src/components/code/Script.vue ================================================ ================================================ FILE: packages/editor/src/components/code/UserData.vue ================================================ ================================================ FILE: packages/editor/src/components/drawing/Drawing.vue ================================================ ================================================ FILE: packages/editor/src/components/drawing/toolbar/CAD.vue ================================================ ================================================ FILE: packages/editor/src/components/drawing/toolbar/CadLayers.vue ================================================ ================================================ FILE: packages/editor/src/components/drawing/toolbar/Image.vue ================================================ ================================================ FILE: packages/editor/src/components/es/EsContextmenu.vue ================================================ ================================================ FILE: packages/editor/src/components/es/EsCubeLoading.vue ================================================ ================================================ FILE: packages/editor/src/components/es/EsDocument.vue ================================================ ================================================ FILE: packages/editor/src/components/es/EsFormItemHelpLabel.vue ================================================ ================================================ FILE: packages/editor/src/components/es/EsInput.vue ================================================ ================================================ FILE: packages/editor/src/components/es/EsInputNumber.vue ================================================ ================================================ FILE: packages/editor/src/components/es/EsKeyFrame.vue ================================================ ================================================ FILE: packages/editor/src/components/es/EsParticleEasing.vue ================================================ ================================================ FILE: packages/editor/src/components/es/EsPlugin.vue ================================================ ================================================ FILE: packages/editor/src/components/es/EsPopTreeSelect.vue ================================================ ================================================ FILE: packages/editor/src/components/es/EsTexture.vue ================================================ ================================================ FILE: packages/editor/src/components/es/EsTip.vue ================================================ ================================================ FILE: packages/editor/src/components/es/plugin/EsPluginDialog.vue ================================================ ================================================ FILE: packages/editor/src/components/es/plugin/EsPluginList.vue ================================================ ================================================ FILE: packages/editor/src/components/es/plugin/builtin/EarthGenerator.vue ================================================ ================================================ FILE: packages/editor/src/components/es/plugin/builtin/GLTFHandler.vue ================================================ ================================================ FILE: packages/editor/src/components/es/plugin/builtin/PointCloudReconstructor.vue ================================================ ================================================ FILE: packages/editor/src/components/es/plugin/builtin/glTFHandler/GLTFHandlerForm.vue ================================================ ================================================ FILE: packages/editor/src/components/es/plugin/builtin/pointCloudReconstructor/ReconstructorForm.vue ================================================ ================================================ FILE: packages/editor/src/components/header/Logo.vue ================================================ ================================================ FILE: packages/editor/src/components/header/NavigationOperation.vue ================================================ ================================================ FILE: packages/editor/src/components/header/RightOperation.vue ================================================ ================================================ FILE: packages/editor/src/components/header/navigation/Clear.vue ================================================ ================================================ FILE: packages/editor/src/components/header/navigation/Copy.vue ================================================ ================================================ FILE: packages/editor/src/components/header/navigation/Delete.vue ================================================ ================================================ FILE: packages/editor/src/components/header/navigation/Do.vue ================================================ ================================================ FILE: packages/editor/src/components/header/navigation/Fullscreen.vue ================================================ ================================================ FILE: packages/editor/src/components/header/navigation/ImportExport.vue ================================================ ================================================ FILE: packages/editor/src/components/header/right/SaveToService.vue ================================================ ================================================ FILE: packages/editor/src/components/header/right/XR.vue ================================================ ================================================ FILE: packages/editor/src/components/preview/AssetPreview.vue ================================================ ================================================ FILE: packages/editor/src/components/preview/CommonPreview.vue ================================================ ================================================ FILE: packages/editor/src/components/preview/CommonPreview_backup.vue ================================================ ================================================ FILE: packages/editor/src/components/project/ProjectInfoForm.vue ================================================ ================================================ FILE: packages/editor/src/components/setting/Setting.vue ================================================ ================================================ FILE: packages/editor/src/components/setting/common/Color.vue ================================================ ================================================ FILE: packages/editor/src/components/setting/common/Locale.vue ================================================ ================================================ FILE: packages/editor/src/components/setting/common/SettingCenter.vue ================================================ ================================================ FILE: packages/editor/src/components/setting/common/Theme.vue ================================================ ================================================ FILE: packages/editor/src/components/setting/components/PreviewSetting.vue ================================================ ================================================ FILE: packages/editor/src/components/setting/components/SettingTabs.vue ================================================ ================================================ FILE: packages/editor/src/components/setting/components/Shortcuts.vue ================================================ ================================================ FILE: packages/editor/src/components/setting/components/SystemSetting.vue ================================================ ================================================ FILE: packages/editor/src/components/tree/SceneTree.vue ================================================ ================================================ FILE: packages/editor/src/config/service.ts ================================================ /** 错误信息的显示时间 */ export const ERROR_MSG_DURATION = 3 * 1000; /** 默认的请求错误code */ export const DEFAULT_REQUEST_ERROR_CODE = 'DEFAULT'; /** 默认的请求错误文本 */ export const DEFAULT_REQUEST_ERROR_MSG = '请求错误~'; /** 请求超时的错误code(为固定值:ECONNABORTED) */ export const REQUEST_TIMEOUT_CODE = 'ECONNABORTED'; /** 请求超时的错误文本 */ export const REQUEST_TIMEOUT_MSG = '请求超时~'; /** 网络不可用的code */ export const NETWORK_ERROR_CODE = 'NETWORK_ERROR'; /** 网络不可用的错误文本 */ export const NETWORK_ERROR_MSG = '网络不可用~'; /** 请求不成功各种状态的错误 */ export const ERROR_STATUS = { 400: '400: 请求出现语法错误~', 401: '401: 用户未授权~', 403: '403: 服务器拒绝访问~', 404: '404: 请求的资源不存在~', 405: '405: 请求方法未允许~', 408: '408: 网络请求超时~', 500: '500: 服务器内部错误~', 501: '501: 服务器未实现请求功能~', 502: '502: 错误网关~', 503: '503: 服务不可用~', 504: '504: 网关超时~', 505: '505: http版本不支持该请求~', [DEFAULT_REQUEST_ERROR_CODE]: DEFAULT_REQUEST_ERROR_MSG }; /** 不弹出错误信息的code */ export const NO_ERROR_MSG_CODE: (string | number)[] = []; /** token失效需要刷新token的code */ export const REFRESH_TOKEN_CODE: (string | number)[] = [978, 998, 999]; ================================================ FILE: packages/editor/src/core/AssetPreview.ts ================================================ import {Preview,Utils} from "@astral3d/engine"; export class AssetPreview { static #instance:AssetPreview; // 静态私有属性存储唯一实例 previewer: Preview; private container: HTMLElement; static getInstance(container?:HTMLElement) { if (!AssetPreview.#instance) { AssetPreview.#instance = new AssetPreview(container); }else if(container && container !== AssetPreview.#instance.container){ AssetPreview.#instance.updateContainer(container); } return AssetPreview.#instance; } constructor(container?:HTMLElement) { if (AssetPreview.#instance) { throw new Error("Use AssetPreview.getInstance() instead"); } this.container = container || Utils.createDivContainer(); this.previewer = new Preview({ container: this.container, hdr: "/static/resource/hdr/cloudy.hdr", request: { baseUrl:"/file/static/" } }); } updateContainer(container:HTMLElement){ if(container === this.previewer.container) return; this.container = container; this.previewer.container = container; } /** * 加载预览项 */ load(fileOrUrl:string | File,type:string = "Model"){ return this.previewer.load(fileOrUrl,type); } clear(){ this.previewer.clear(); } dispose(){ this.previewer.dispose(); //@ts-ignore this.previewer = null; //@ts-ignore AssetPreview.#instance = null; } } ================================================ FILE: packages/editor/src/hooks/index.ts ================================================ import useBoolean from './useBoolean'; import useLoading from './useLoading'; export { useBoolean, useLoading }; ================================================ FILE: packages/editor/src/hooks/useBoolean.ts ================================================ import { ref } from 'vue'; /** * boolean组合式函数 * @param initValue 初始值 */ export default function useBoolean(initValue = false) { const bool = ref(initValue); function setBool(value: boolean) { bool.value = value; } function setTrue() { setBool(true); } function setFalse() { setBool(false); } function toggle() { setBool(!bool.value); } return { bool, setBool, setTrue, setFalse, toggle }; } ================================================ FILE: packages/editor/src/hooks/useLoading.ts ================================================ import useBoolean from './useBoolean'; export default function useLoading(initValue = false) { const { bool: loading, setTrue: startLoading, setFalse: endLoading } = useBoolean(initValue); return { loading, startLoading, endLoading }; } ================================================ FILE: packages/editor/src/hooks/useWebSocket.ts ================================================ /** * @author MaHaiBing * @email mlt131220@163.com * @date 2023/11/29 10:10 * @description websocket hook;使用store管理websocket保证全局唯一性 */ import {unref} from 'vue'; import { useWebSocket as $useWebSocket } from '@vueuse/core' import {App} from '@astral3d/engine'; import {useWebsocketStoreWithOut} from "@/store/modules/websocket"; import {MathUtils} from 'three'; const websocketStore = useWebsocketStoreWithOut(); const listeners = new Map(); /** * 开启 WebSocket 链接,全局只需执行一次 * @param url */ export function connectWebSocket(url) { if(url.substring(0,3).indexOf('ws') === -1){ if(url.indexOf('http') !== -1){ url = url.replace("http", "ws") }else{ url = location.origin.replace("http", "ws") + url; } } if (!websocketStore.getIsOpen()) { // 设置订阅者标识 let wsUname; if(!websocketStore.uname){ wsUname = MathUtils.generateUUID(); websocketStore.setUname(wsUname); }else{ wsUname = websocketStore.uname; } const ws = $useWebSocket(`${url}?uname=${wsUname}`, { // 在错误时自动重连 autoReconnect:{ // 最大重试次数。 retries: 3, // 重新连接的延迟,以毫秒为单位 delay:2000, // 已达到最大重试次数。 onFailed(){ App.log.error("[WebSocket] 连接重试次数超限,连接失败!"); } }, // 定时发送 ping 消息 heartbeat: { // @ts-ignore message: new Uint8Array([0x9]), interval: 10 * 1000, pongTimeout: 10 * 1000, }, onConnected: () => { App.log.info('[WebSocket] 连接成功'); }, onDisconnected: () => { App.log.info('[WebSocket] 连接关闭'); }, onMessage: (_,event) => { onMessage(event); }, onError: () => { App.log.error('[WebSocket] 连接错误'); } }); websocketStore.setWebsocket(ws); } } function onMessage(e: MessageEvent) { if (e.data === 'ping' || e.data === 'heartbeat' || e.data === 'pong' || e.data instanceof Blob) { return; } App.log.debug(`[WebSocket] 收到消息: ${e.data}`); try { const data = JSON.parse(e.data); for (const callback of listeners.keys()) { try { callback(data); } catch (err) { console.error(err); } } } catch (err) { App.log.error(`[WebSocket] data解析失败: ${err}`); } } /** * 添加 WebSocket 消息监听 * @param callback */ export function onWebSocket(callback: (data: object) => any) { if (!listeners.has(callback)) { if (typeof callback === 'function') { listeners.set(callback, null); } else { console.debug('[WebSocket] 添加 WebSocket 消息监听失败:传入的参数不是一个方法'); } } } /** * 解除 WebSocket 消息监听 * * @param callback */ export function offWebSocket(callback: (data: object) => any) { listeners.delete(callback); } export function useWebSocket() { return unref(websocketStore.ws); } export function send(message: string | ArrayBuffer | Blob) { websocketStore.send(message); } ================================================ FILE: packages/editor/src/http/api/assetsCategory.ts ================================================ import {request} from "@/http/request"; /** * 获取资产分类树 */ export function fetchAssetsCategoryTreeList(params = {type: ''}){ return request.get(`/assets/assetsCategory/treeList`,{params}); } ================================================ FILE: packages/editor/src/http/api/assetsInfo.ts ================================================ import {request} from "@/http/request"; /** * 获取资产列表 */ export function fetchGetAssetsList(params:Service.ListPageQueryParams){ return request.get>(`/assets/assetsInfo/getAll`,{params}); } /** * 新增资产 */ export function fetchAddAsset(data:IAssets.Item){ return request.post(`/assets/assetsInfo`,data); } /** * 更新资产 */ export function fetchUpdateAsset(data:IAssets.Item){ return request.put(`/assets/assetsInfo`,data); } /** * 移除资产 */ export function fetchRemoveAsset(id:IAssets.Item['id']){ return request.delete(`/assets/assetsInfo/${id}`,{}); } /** * 获取分类下的资产tags */ export function fetchGetAssetCategoryTags(type:IAssets.SupportType, category: string){ return request.get(`/assets/assetsInfo/selectTags`, { params:{ type, category } }); } ================================================ FILE: packages/editor/src/http/api/bim.ts ================================================ import {request} from "@/http/request"; import {useWebsocketStore} from "@/store/modules/websocket"; const websocketStore = useWebsocketStore(); /** * 获取bim转换列表 */ export function fetchGetBim2GltfList(params) { return request.get>('/editor3d/bim2gltf/getAll',{params}); } /** * 上传bim文件 */ export function fetchUploadRvt(data) { return request.post('/editor3d//bim2gltf/uploadRvt',data,{headers:{"Content-Type":"multipart/form-data"}}); } /** * 添加数据并启动revit转换( 需传入接收结果的websocket uname) */ export function fetchAddBim2Gltf(data) { return request.post('/editor3d/bim2gltf/addAndConversion',data,{params:{uname:websocketStore.uname}}); } ================================================ FILE: packages/editor/src/http/api/cad.ts ================================================ import {request} from "@/http/request"; import {useWebsocketStore} from "@/store/modules/websocket"; const websocketStore = useWebsocketStore(); /** * 获取cad列表 */ export function fetchGetCadList(params) { return request.get>('/editor3d/cad/getAll',{params}); } /** * 添加数据并启动cad解析( 需传入接收结果的websocket uname) */ export function fetchAddDwg2dxf(data) { return request.post('/editor3d/cad/dwg2dxf',data,{params:{uname:websocketStore.uname},headers:{"Content-Type":"multipart/form-data"}}); } ================================================ FILE: packages/editor/src/http/api/sceneExample.ts ================================================ /** * @author MaHaiBing * @email mlt131220@163.com * @date 2024/7/28 14:54 * @description 示例场景 */ import {request} from "@/http/request"; import {Service} from "~/network"; /** * 获取所有示例场景 */ export function fetchSceneExampleList(params) { return request.get>("/editor3d/sceneExample",{params}); } /** * 获取示例场景 */ export function fetchSceneExample(id) { return request.get(`/editor3d/sceneExample/${id}`); } /** * 新增示例场景 */ export function fetchAddSceneExample(data) { return request.post(`/editor3d/sceneExample`,data); } /** * 删除示例场景 * @param {number} id */ export function fetchDeleteSceneExample(id: number) { return request.delete(`/editor3d/sceneExample/${id}`,{}); } ================================================ FILE: packages/editor/src/http/api/scenes.ts ================================================ import {request} from "@/http/request"; /** * 获取所有工程信息 */ export function fetchGetAllScenes(params:Service.ListPageQueryParams) { return request.get>("/editor3d/scenes/getAll",{params}); } /** * 获取工程 */ export function fetchGetOneScene(id:string) { return request.get(`/editor3d/scenes/get/${id}`); } /** * 保存工程 */ export function fetchAddScene(data) { return request.post(`/editor3d/scenes/add`,data); } /** * 更新工程 */ export function fetchUpdateScene(id:string,data:ISceneFetchData) { return request.put(`/editor3d/scenes/update/${id}`,data); } /** * 删除工程 * @param {number} id */ export function fetchDeleteScenes(id: string) { return request.delete(`/editor3d/scenes/del/${id}`,{}); } ================================================ FILE: packages/editor/src/http/api/sys.ts ================================================ import {request} from "@/http/request"; /** * 上传 */ export function fetchUpload(data:{file:File,biz:string,type?:string}) { return request.post(`/common/upload`,data,{headers:{"Content-Type":"multipart/form-data"}}); } ================================================ FILE: packages/editor/src/http/request/ConcurrencyManager.ts ================================================ const ConcurrencyManager = (axios, MAX_CONCURRENT = 10) => { if (MAX_CONCURRENT < 1) throw "并发管理器错误: 最小并发请求数为 1"; let instance = { queue: [], running: [], shiftInitial: () => { setTimeout(() => { if (instance.running.length < MAX_CONCURRENT) { instance.shift(); } }, 0); }, push: reqHandler => { instance.queue.push(reqHandler); instance.shiftInitial(); }, shift: () => { if (instance.queue.length) { const queued = instance.queue.shift(); queued.resolver(queued.request); instance.running.push(queued); } }, // 用作拦截器。将传出请求排队 requestHandler: req => { return new Promise(resolve => { instance.push({ request: req, resolver: resolve }); }); }, // 用作拦截器。在收到响应时执行排队的请求 responseHandler: res => { instance.running.shift(); instance.shift(); return res; }, responseErrorHandler: res => { return Promise.reject(instance.responseHandler(res)); }, interceptors: { request: null, response: null }, detach: () => { axios.interceptors.request.eject(instance.interceptors.request); axios.interceptors.response.eject(instance.interceptors.response); } }; // 对并发请求进行排队 instance.interceptors.request = axios.interceptors.request.use( instance.requestHandler ); instance.interceptors.response = axios.interceptors.response.use( instance.responseHandler, instance.responseErrorHandler, ); return instance; }; export default ConcurrencyManager; ================================================ FILE: packages/editor/src/http/request/index.ts ================================================ import {createRequest} from "./request"; export const request = createRequest({ baseURL:"/api" }); ================================================ FILE: packages/editor/src/http/request/instance.ts ================================================ import axios from 'axios'; import type {AxiosError, AxiosInstance, AxiosRequestConfig} from 'axios'; import { handleAxiosError, handleBackendError, handleResponseError, handleServiceResult, } from '@/utils/service'; import {Service} from "../../../types/network"; import ConcurrencyManager from "./ConcurrencyManager"; /** * 封装axios请求类 * @author Soybean */ const MAX_CONCURRENT_REQUESTS = 6; export default class CustomAxiosInstance { instance: AxiosInstance; backendConfig: Service.BackendResultConfig; manager: any; /** * * @param axiosConfig - axios配置 * @param backendConfig - 后端返回的数据配置 */ constructor( axiosConfig: AxiosRequestConfig, backendConfig: Service.BackendResultConfig = { codeKey: 'code', dataKey: 'result', msgKey: 'message', successCode: 200 } ) { this.backendConfig = backendConfig; this.instance = axios.create(axiosConfig); this.manager = ConcurrencyManager(this.instance, MAX_CONCURRENT_REQUESTS); this.setInterceptor(); } /** 设置请求拦截器 */ setInterceptor() { this.instance.interceptors.request.use( async config => { const handleConfig = {...config}; if (handleConfig.headers) { } return handleConfig; }, (axiosError: AxiosError) => { const error = handleAxiosError(axiosError); return handleServiceResult(error, null); } ); this.instance.interceptors.response.use( async response => { const {status} = response; if (status === 200 || status < 300 || status === 304) { const backend = response.data; // 判断返回文件流的情况 if (response.headers['content-type'].includes('application/octet-stream')) { return handleServiceResult(null, backend); } const {codeKey, dataKey, successCode} = this.backendConfig; // 请求成功 if (backend[codeKey] === successCode) { const keyArr = Object.values(this.backendConfig); const other = {}; Object.keys(backend).forEach(item => { if (!keyArr.includes(item)) { other[item] = backend[item]; } }); return handleServiceResult(null, backend[dataKey], other); } const error = handleBackendError(backend, this.backendConfig); return handleServiceResult(error, null); } const error = handleResponseError(response); return handleServiceResult(error, null); }, (axiosError: AxiosError) => { const error = handleAxiosError(axiosError); return handleServiceResult(error, null); } ); } } ================================================ FILE: packages/editor/src/http/request/request.ts ================================================ import { ref } from 'vue'; import type { Ref } from 'vue'; import type { AxiosInstance, AxiosRequestConfig } from 'axios'; import { useBoolean, useLoading } from '@/hooks/index'; import CustomAxiosInstance from './instance'; import {Service} from "../../../types/network"; type RequestMethod = 'get' | 'post' | 'put' | 'delete'; interface RequestParam { url: string; method?: RequestMethod; data?: any; axiosConfig?: AxiosRequestConfig; } /** * 创建请求 * @param axiosConfig - axios配置 * @param backendConfig - 后端接口字段配置 */ export function createRequest(axiosConfig: AxiosRequestConfig, backendConfig?: Service.BackendResultConfig) { const customInstance = new CustomAxiosInstance(axiosConfig, backendConfig); /** * 异步promise请求 * @param param - 请求参数 * - url: 请求地址 * - method: 请求方法(默认get) * - data: 请求的body的data * - axiosConfig: axios配置 */ async function asyncRequest(param: RequestParam): Promise> { const { url } = param; const method = param.method || 'get'; const { instance } = customInstance; const res = (await getRequestResponse({ instance, method, url, data: param.data, config: param.axiosConfig })) as Service.RequestResult; return res; } /** * get请求 * @param url - 请求地址 * @param config - axios配置 */ function get(url: string, config?: AxiosRequestConfig) { return asyncRequest({ url, method: 'get', axiosConfig: config }); } /** * post请求 * @param url - 请求地址 * @param data - 请求的body的data * @param config - axios配置 */ function post(url: string, data?: any, config?: AxiosRequestConfig) { return asyncRequest({ url, method: 'post', data, axiosConfig: config }); } /** * put请求 * @param url - 请求地址 * @param data - 请求的body的data * @param config - axios配置 */ function put(url: string, data?: any, config?: AxiosRequestConfig) { return asyncRequest({ url, method: 'put', data, axiosConfig: config }); } /** * delete请求 * @param url - 请求地址 * @param config - axios配置 */ function handleDelete(url: string, config: AxiosRequestConfig) { return asyncRequest({ url, method: 'delete', axiosConfig: config }); } return { get, post, put, delete: handleDelete }; } interface RequestResultHook { data: Ref; error: Ref; loading: Ref; network: Ref; } /** * 创建hooks请求 * @param axiosConfig - axios配置 * @param backendConfig - 后端接口字段配置 */ export function createHookRequest(axiosConfig: AxiosRequestConfig, backendConfig?: Service.BackendResultConfig) { const customInstance = new CustomAxiosInstance(axiosConfig, backendConfig); /** * hooks请求 * @param param - 请求参数 * - url: 请求地址 * - method: 请求方法(默认get) * - data: 请求的body的data * - axiosConfig: axios配置 */ function useRequest(param: RequestParam): RequestResultHook { const { loading, startLoading, endLoading } = useLoading(); const { bool: network, setBool: setNetwork } = useBoolean(window.navigator.onLine); startLoading(); const data = ref(null) as Ref; const error = ref(null); function handleRequestResult(response: any) { const res = response as Service.RequestResult; data.value = res.data; error.value = res.error; endLoading(); setNetwork(window.navigator.onLine); } const { url } = param; const method = param.method || 'get'; const { instance } = customInstance; getRequestResponse({ instance, method, url, data: param.data, config: param.axiosConfig }).then( handleRequestResult ); return { data, error, loading, network }; } /** * get请求 * @param url - 请求地址 * @param config - axios配置 */ function get(url: string, config?: AxiosRequestConfig) { return useRequest({ url, method: 'get', axiosConfig: config }); } /** * post请求 * @param url - 请求地址 * @param data - 请求的body的data * @param config - axios配置 */ function post(url: string, data?: any, config?: AxiosRequestConfig) { return useRequest({ url, method: 'post', data, axiosConfig: config }); } /** * put请求 * @param url - 请求地址 * @param data - 请求的body的data * @param config - axios配置 */ function put(url: string, data?: any, config?: AxiosRequestConfig) { return useRequest({ url, method: 'put', data, axiosConfig: config }); } /** * delete请求 * @param url - 请求地址 * @param config - axios配置 */ function handleDelete(url: string, config: AxiosRequestConfig) { return useRequest({ url, method: 'delete', axiosConfig: config }); } return { get, post, put, delete: handleDelete }; } async function getRequestResponse(params: { instance: AxiosInstance; method: RequestMethod; url: string; data?: any; config?: AxiosRequestConfig; }) { const { instance, method, url, data, config } = params; let res: any; if (method === 'get' || method === 'delete') { res = await instance[method](url, config); } else { res = await instance[method](url, data, config); } return res; } ================================================ FILE: packages/editor/src/language/index.ts ================================================ import type { App } from 'vue'; import { computed,ComputedRef } from 'vue'; import { createI18n } from 'vue-i18n'; import {useGlobalConfigStoreWithOut} from "@/store/modules/globalConfig"; const globalConfigStore = useGlobalConfigStoreWithOut(); //引入同级目录下所有语言文件 const modules = (import.meta as any).glob('./*.ts', {eager: true}); type Message = { [s: string]: {} | undefined } type ReturnMessage = { 'zh-CN': {}, 'en-US': {}, [s: string]: {} } const getLangAll = (): ReturnMessage => { let message: Message = {}; getLangFiles(modules, message); return message as ReturnMessage; } type LangFilesList = { [s: string]: { default: { [s: string]: string } } } /** * 获取所有语言文件 * @param {Object} langFilesList * @param {Object} msg */ const getLangFiles = (langFilesList: LangFilesList, msg: Message) => { for (let path in langFilesList) { if (langFilesList[path].default) { //判断中英文混合文件是否存在 if (/zh-CN-en-US/.test(path)) { type LocaleObj = { [s: string]: any } let localeObj: LocaleObj = { 'zh-CN': langFilesList[path].default, 'en-US': {} } let enUSLangList = JSON.parse(JSON.stringify(langFilesList[path].default)); recursionSetLeaf(enUSLangList); localeObj['en-US'] = enUSLangList; // 合并 for (let i in localeObj) { msg[i] = msg[i] ? { ...msg[i], ...localeObj[i] } : localeObj[i]; } } else { //获取文件名 const fileName = path.substr(path.lastIndexOf('/') + 1, 5); msg[fileName] = msg[fileName] ? { ...langFilesList[fileName], ...langFilesList[path].default } : langFilesList[path].default; } } } } type LangObj = { [propName:string]:any } /** * 递归设置叶子节点的值为键名,即英文 * @param {LangObj} obj * */ const recursionSetLeaf = (obj:LangObj) =>{ for (let i in obj) { if(typeof obj[i] === 'string'){ obj[i] = i; }else{ recursionSetLeaf(obj[i]); } } } //注册i8n实例并引入语言文件 const i18n = createI18n({ legacy: false, locale: globalConfigStore.locale, messages: getLangAll(), sync: true }) //ts/js文件中使用 window.$t = i18n.global.t; window.$cpt = (key: string):ComputedRef => computed(() => i18n.global.t(key)); export function setupI18n(app: App) { app.use(i18n); } export function t(key: string):string { return i18n.global.t(key); } export function cpt(key: string): ComputedRef { return computed(() => i18n.global.t(key)); } export function setLocale(locale: IConfig.Locale) { i18n.global.locale.value = locale; globalConfigStore.setLocale(locale); } ================================================ FILE: packages/editor/src/language/zh-CN-en-US.ts ================================================ export default { ErSan:"二三", home: { 'Project': "项目", 'Data Center': "数据中心", 'Resource Center': "资源中心", 'Setting Center': "设置中心", 'Usage Document': "使用文档", "Details": "详情", "Rename": "重命名", "Delete": "删除", "Release": "发布", "Preview": '预览', "Loading": "加载中", 'Scroll to load more': "滚动加载更多", 'No more': "没有更多了", /* 项目 */ 'My Project': "我的项目", 'Shared Project': "共享项目", 'New project': "新建项目", "Template": "模板", 'Empty project': "空项目", 'A blank project without any scene elements': '不含任何场景元素的空白项目', 'Project default settings': '项目默认设置', /* 数据中心 */ "Data sources":"数据源", "Data sets":"数据集", "Add data source":"添加数据源", "Add data set":"添加数据集", "Data source config":"数据源配置", "Data set config":"数据集配置", "Data source name":"数据源名称", "Data source type":"数据源类型", "Connection string":"连接字符串", "Username":"用户名", "Password":"密码", "Test the connection":"测试连接", "Data set name":"数据集名称", "Data set group":"数据集分组", "Data set type":"数据集类型", "Method":"请求方式", "API interface":"API接口", "Query only":"仅查询", "Parameter is passed as ":"参数传递形式:", "For example:":"例如:", "Data set group config":"数据集分组配置", "Parent group":"父组", "Group name":"组名称", /* 资源中心 */ 'assets':{ // 主分类 "Model": "模型", "Material": "材质", "Texture": "纹理", "Billboard": "广告牌", "HDR": "HDR", // 上传 "Upload asset":"上传资源", "Edit asset":"编辑资源", "By previewing the screenshots":"通过预览截图", // 主体顶部 "Search for assets": "搜索资源", // 详情 "Name": "名称", "Type": "类型", "Category": "分类", "Size": "大小", "Tags": "标签" } }, layout: { header: { File: '文件', /* File 下的选项 */ 'Clear Out': "清空", Import: '导入', Export: '导出', 'Export Object': '导出物体', 'Export Scene': '导出场景', 'PLY (Binary)': 'PLY(二进制)', 'STL (Binary)': 'STL(二进制)', /* File 下的选项 End */ /* Edit 下的选项 */ Clone: '拷贝', 'Delete(Del)': '删除(Del)', /* Edit 下的选项 End */ /* Add 下的选项 */ AmbientLight: '环境光', DirectionalLight: '平行光', HemisphereLight: '半球光', PointLight: '点光源', SpotLight: '聚光灯', OrthographicCamera: '正交相机', PerspectiveCamera: '透视相机', /* 中间快捷操作 */ Fullscreen: '全屏', 'Exit fullscreen': '退出全屏', /* 右侧操作 */ 'Save': '保存', 'Save locally': '本地保存', "Use system theme": "跟随系统", Undertint: '浅色', Dark: '深色', 'Main color': '主色调', }, scene: { toolbar: { "Six views":"六视图", Top: "顶视图", Bottom: "底视图", Left: "左视图", Right: "右视图", Front: "前视图", Back: "后视图", "Scene camera": "场景相机", Realistic: "真实", Solid: '原色', Normals: '法向', Wireframe: '线框', local: '本地坐标', world: '世界坐标', "Status monitoring":"状态监控", }, viewportInfo: { Objects: '物体', Vertices: '顶点', Triangles: '三角面', 'Frame time': '帧时', }, }, sider: { Scene: '场景', Project: '项目', scene: { Search: '搜索', 'Click Upload': '点击上传', // 几何组件tab Center: '居中', Width: "宽度", Height: "高度", Depth: "深度", "Width segments": "宽度分段", "Height segments": "高度分段", "Depth segments": "深度分段", Radius: "半径", Length: "长度", "Cap segments": "胶囊分段", "Radial segments": "径向分段", Segments: "分段", "Theta start": "弧度起点", "Theta length": "弧度长度", "Radius top": "顶部半径", "Radius bottom": "底部半径", "Open ended": "开端", "Facet segments": "面片分段", 'Curve Segments': "曲线段", Steps: "细分点数", 'Enabled bevel': "启用斜角", 'Bevel thickness': "斜角厚度", 'Bevel size': "斜角大小", 'Bevel offset': "斜角偏移量", 'Bevel segments': "斜角分段", 'Convert to Shape': "转换图形", Path: "路径", 'Tubular segments': '管厚分段', Closed: "闭合", 'Curve type': "曲线类型", Tension: '张力', 'Phi start': "经度起点", 'Phi length': "经度长度", Points: "点", 'Inner radius': "内半径", 'Outer radius': '外半径', 'Theta segments': '弧度分段', 'Phi segments': '经度分段', Extrude: "拉伸", Tube: '管厚', Arc: "弧度", P: "管长弧度", Q: "扭曲弧度", }, project: { 'please enter the scene name': '请输入场景名称', 'please enter the scene introduction': '请输入场景描述', VR: '虚拟现实', materials: '材质', 'select material': '选择材质', assign: '应用', }, // ------------- 20240325:重新布局 ---------------- "Scene config": '场景配置', sceneConfig: { "Project information": "项目信息", Background: '背景', Environment: '环境', Grid: '网格', Helpers: '辅助', }, "Renderer config": '渲染器配置', rendererConfig: { Antialias: '抗锯齿', 'Tone mapping': '色调映射', 'Frame rate limit': '帧率限制', 'Low FPS': '低帧率', 'Medium FPS': '中等帧率', 'High FPS': '高帧率', 'Ultra high FPS': '超高帧率', 'Unlimited': '不设限', shadows: '阴影', Type: '类型', "Global illumination":"全局光影", Fade:"淡出", "Shadow far":"阴影远距", "Frustum split mode":"视锥体分割", "Shadow map":"阴影贴图", "Light intensity":"光强度", "Light color":"光颜色", "Light direction x":"光方向X", "Light direction y":"光方向Y", "Light direction z":"光方向Z", }, "Post processing": "后期处理", postProcessing: { "Anti-aliasing": "抗锯齿", "Outline": "描边线", "Edge Strength": "边缘强度", "Edge Glow": "边缘发光", "Edge Thickness": "边缘厚度", "Pulse Period": "闪烁频率", "Visible Edge": "可见边缘", "Hidden Edge": "不可见边缘", "Glow": "辉光", "Radius": "半径", "Threshold": "阈值", "Strength": "强度", "LUT Color filter":"LUT 颜色滤镜", "Intensity":"强度", "Afterimage":"运动残影", "Damp":"衰减", "Bokeh": "变焦", "Focus": "焦距", "Aperture": "孔径", "MaxBlur": "最大模糊", "Pixelate": "像素风", "PixelSize": "像素大小", "NormalEdgeStrength": "法向边缘强度", "DepthEdgeStrength": "深度边缘强度", "Use a solid color background to achieve the best rendering effect":"使用纯色背景以获取最佳渲染效果", "Halftoning": "半色调", "Shape": "形状", "Dot": "点", "Ellipse": "椭圆", "Line": "线", "Square": "正方形", "RotateR": "R色旋转", "RotateG": "G色旋转", "RotateB": "B色旋转", "Scatter": "散射", "Blending": "混合度", "BlendingMode": "混合模式", "Linear": "线性", "Multiply": "相乘", "Add": "相加", "Lighter": "明亮", "Darker": "昏暗", "Greyscale": "灰度", }, Weather: '天气', weather: { Fog: '雾', Type: '类型', Color: '颜色', Far: '远点', Near: '近点', Density: '密度', Rain: '雨', Speed: '速度', Size: '大小', Radian: "弧度", Alpha: '透明度', Snow: '雪', Accumulation: "堆积" }, History: '历史记录', history: { persistent: '本地存储', 'Clear History': '清空历史记录', }, Object: '对象', object: { type: '类型', uuid: '识别码', name: '名称', position: '位置', rotation: '旋转', scale: '缩放', fov: '视角', left: '左', right: '右', top: '上', bottom: '下', near: '近点', far: '远点', intensity: '强度', color: '颜色', groundcolor: '基色', distance: '距离', angle: '角度', penumbra: '边缘', decay: '衰减', shadow: '阴影', shadowBias: '阴影偏移', shadowNormalBias: '阴影法线偏移', shadowRadius: '阴影边缘半径', shadowIntensity: '阴影强度', cast: '产生', receive: '接受', visible: '可见性', frustumcull: '视锥体裁剪', renderorder: '渲染次序', userdata: '自定义数据', }, Geometry: '几何', geometry: { 'Compute Vertex Normals': '计算顶点法线', 'Afficher normales': '显示顶点法线', bounds: '界限', attributes: '属性', index: '索引', }, Material: '材质', material: { slot: '插槽', Programme: '程序', Info: '信息', Vert: '顶点', Frag: '片元', Color: '颜色', Specular: '高光', Shininess: '高光大小', Emissive: '自发光', Reflectivity: '反射率', Roughness: '粗糙度', Metalness: '金属度', Clearcoat: '清漆', 'Clearcoat Roughness': '清漆粗糙度', Iridescence: '彩虹色', 'Thin-Film IOR': '彩虹色折射率', 'Thin-Film Thickness': '彩虹色厚度', Sheen: 'Sheen', 'Sheen Roughness': 'Sheen Roughness', 'Sheen Color': 'Sheen Color', Transmission: '透光', 'Attenuation Distance': '衰减距离', 'Attenuation Color': '衰减色', Thickness: '厚度', 'Vertex Colors': '顶点颜色', 'Depth Packing': '深度包装', Map: '贴图', 'Specular Map': '高光贴图', 'Emissive Map': '自发光贴图', Matcap: '材质捕获', 'Alpha Map': '透明贴图', 'Bump Map': '凹凸贴图', 'Normal Map': '法线贴图', 'Clearcoat Normal Map': '清漆法线贴图', 'Displace Map': '置换贴图', 'Rough Map': '粗糙贴图', 'Metal Map': '金属贴图', 'Irid Map': '彩虹色贴图', 'Sheen Color Map': 'Sheen Color Map', 'Sheen Rough. Map': 'Sheen Rough. Map', 'Thin-Film Thickness Map': '彩虹色厚度贴图', 'Env Map': '环境贴图', 'Light Map': '光照贴图', 'AO Map': '环境遮挡贴图', 'Gradient Map': '渐变贴图', 'Transmission Map': '透光贴图', 'Thickness Map': '厚度贴图', repeat: "重复", "repetitive mode": "重复模式", "Repeat wrapping": "简单重复", "Edge stretching": "边缘拉伸", "Mirror duplication": "镜像重复", Side: '面', Size: '大小', 'Size Attenuation': '大小衰减', 'Flat Shading': '平面着色', Blending: '混合', Opacity: '透明度', Transparent: '透明性', 'Alpha Test': 'α测试', 'Depth Test': '深度测试', 'Depth Write': '深度缓冲', Wireframe: '线框', }, Animations: '动画', animation: { Play: '播放', Pause: '暂停', Continue: '继续', Stop: '停止', 'Time scale': "时间缩放" }, Script: '脚本', script: { Edit: '编辑', Remove: '移除', New: '新建', 'Please enter the script name': '请输入脚本名称', 'The script name already exists': '脚本名称已存在', }, 'Scene drawing': "场景图纸", drawing: { 'Click to select or drag the drawing to this area': '点击选择或拖拽图纸到此区域', }, Particle: "粒子", particle: { Attributes: "属性", Initializers: "初始设定", Behaviours: "行为", 'Total Emit Times': "总发射次数", 'Emitter Damping': "发射阻尼", Duration: "持续时间", 'Quantitative range': "数量范围", 'The number range of emitted particles': "发射粒子的数量范围", 'Time interval': "时间间隔", 'The time interval between each particle emission': "每次粒子发射之间的时间间隔", Mass: "质量", Average: "平均", 'Determines whether to average the mass value': "确定是否对质量值进行平均", Life: "生命周期", 'Determines whether to average the life value': "确定是否对寿命值进行平均", Radius: "半径", 'Determines whether to average the radius value': "确定是否对半径值进行平均", Rotation: "旋转", 'Follow parent': "跟随父级", "Determines if we should use the emitter's rotation as the starting rotation": "确定是否使用发射器的旋转作为起始旋转", 'Generation region': "生成区域", Type: '类型', Box: '盒', Line: '线', Mesh: '模型', Point: '点', Sphere: '球', 'Start point': '起点', 'End point': '终点', Velocity: '速度', 'Velocity radius': '速度半径', Direction: '方向', Radial: '径向', Polar: '极坐标', Theta: '俯仰角', Phi: '方位角', Vector: '矢量', Body: '主体', Picture: '图片', 'Mesh source': "模型来源", 'Built-in': '内置', 'A behaviour which mutates the color of a particle over time': "随时间改变粒子颜色的行为", 'Start color': "起始颜色", 'End color': "结束颜色", Easing: '缓动', 'Ease linear': "线性缓动", 'Ease in quad': "二次方缓入", 'Ease out quad': "二次方缓出", 'Ease in out quad': "二次方缓入缓出", 'Ease in cubic': "三次方缓入", 'Ease out cubic': "三次方缓出", 'Ease in out cubic': "三次方缓入缓出", 'Ease in quart': "四次方缓入", 'Ease out quart': "四次方缓出", 'Ease in out quart': "四次方缓入缓出", 'Ease in sine': "正弦缓入", 'Ease out sine': "正弦缓出", 'Ease in out sine': "正弦缓入缓出", 'Ease in expo': "指数缓入", 'Ease out expo': "指数缓出", 'Ease in out expo': "指数缓入缓出", 'Ease in circ': "圆形缓入", 'Ease out circ': "圆形缓出", 'Ease in out circ': "圆形缓入缓出", 'Ease in back': "回弹缓入", 'Ease out back': "回弹缓出", 'Ease in out back': "回弹缓入缓出", Scale: '缩放', 'Start scale': "起始缩放", 'End scale': "结束缩放", 'Behaviour that applies an alpha transition effect to particles': "对粒子应用alpha过度效果", 'Start alpha': "起始Alpha", 'End alpha': "结束Alpha", Force: '力', 'Behaviour that forces particles along a specific axis': "迫使粒子沿特定轴线运动的行为", Rotate: '旋转', 'Random drift': '随机漂移', 'Random force': '随机力', Delay: '延迟', 'Behaviour that causes particles to drift to random coordinates in 3D space': "使粒子在三维空间中随机坐标漂移的行为", Spring: '弹跳', 'Behaviour that causes particles to spring': "使粒子弹跳的行为", Factor: '系数', Friction: '摩擦', Attraction: '吸引力', 'Behaviour that causes particles to be attracted to a target position': "使粒子被吸引到目标位置的行为", 'Target position': '目标位置', Collision: '碰撞', 'Behaviour that causes particles to move away from other particles they collide with': "使粒子远离与其碰撞的其他粒子的行为", 'Mass related': '质量相关', 'Consider mass when calculating collision displacement': "在计算碰撞位移时考虑质量", }, Billboard:"广告牌", billboard: { Image: "图片", "Set top":"置顶", Margin: "间距", Position: "位置", Left: "左", Right: "右", Top: "上", Bottom: "下", Center: "居中", Text: "文本", Content: "内容", Size: "大小", Color: "颜色", Weight: "粗细", Italic: "斜体", 'Line gap': "行距", Padding: "内边距", Align: "水平对齐", 'Vertical align': "垂直对齐", 'Stroke width': "描边宽度", 'Stroke color': "描边颜色", Fill: "背景填充", 'Fill color': "填充颜色", }, "Html panel":"Html面板", htmlPanel: { Content: "内容" }, }, assets: { 'Drawing library': "图纸库", 'Scene library': "场景库", } }, setting: { 'Setting': '设置', Shortcuts: '快捷键', shortcuts: { 'Please press a key': '请按下一个键位', Translate: '移动', Rotate: '旋转', Scale: '缩放', Undo: '撤销', Redo: '重做', Focus: '聚焦', }, 'System Setting': "系统设置", system: { 'No system Settings are available': "暂无系统设置项" }, 'Preview Setting': "预览设置", preview:{ 'Roaming character':"漫游角色" } }, core: { 'Any unsaved data will be lost. Are you sure?': '任何未保存的数据都将丢失。你确定吗?', // 此场景任何未保存的数据都将丢失,是否继续? 'Any unsaved data in this scenario will be lost. Do you want to continue?': '任何未保存的数据都将丢失。你想继续吗?', editor: { "Default Camera": "默认相机", "Default Scene": "默认场景", } }, other: { warning: '警告', Tips: '提示', Ok: '确定', Cancel: '取消', undo: "撤销", redo: "重做", delete: "删除", Action: "操作", Version: "版本", Loading: "请稍后", Load: "加载", Open: "开启", Close: "关闭", Enable: "启用", Minimum: "最小值", Maximum: "最大值", Width: "宽度", Height: "高度", Depth: "深度", Coordinate: '坐标', Apply: "应用", 'Query failed': "查询失败", 'Related document': "相关文档", Copy: "复制", Focus: '聚焦', Support: '支持', Upload: '上传', Debug:"调试", }, /* 提示 */ prompt: { 'Disable this function in the demonstration environment!': '演示环境下禁用该功能!', 'The project is created successfully. Do you want to enter?': "项目创建成功,是否进入?", 'Failed to save the cover image': "封面图保存失败", 'Drag or double click to add to scene': '拖拽或双击添加至场景中', 'Right-click on the preview': '右键点击预览', 'No object selected.': '未选择任何对象。', 'No geometric data for the time being': '暂无几何数据', 'No material data for the time being': '暂无材质数据', 'No animation data for the time being': '暂无动画数据', "The selected object doesn't have geometry.": '所选对象没有几何体。', 'No mesh selected': '未选择Mesh', 'The Undo/Redo History will be cleared. Are you sure?': '撤消/重做 历史记录将被清除。你确定吗?', 'The history will be preserved across sessions. This can have an impact on performance when working with textures.': '历史记录将在多个会话之间保留。这可能会影响处理纹理时的性能。', 'Import of glTF asset not possible. Only versions >= 2.0 are supported. Please try to upgrade the file to glTF 2.0 using glTF-Pipeline': "无法导入gltf资产。仅支持大于等于2.0的版本。请尝试使用gltf-Pipeline将文件升级到gltf 2.0", 'Are you sure to delete the scene?': "您确定要删除该场景吗?", 'Are you sure to update the scene?': "确定更新该场景吗?", 'Uploading': "正在上传中", 'Please try again later!': "请稍后重试!", "Load fail,Please try again later!": "加载失败,请稍后重试", 'There are grammatical errors!': "存在语法错误!", 'Saved successfully!': "保存成功!", 'Parameter error!': "参数错误!", "Parse failed": "解析失败", "Related modules are under development, unstable versions.": "相关模块正在开发中,非稳定版本。", "Left click to confirm the drawing point, and right click to complete the drawing.": "单击左键确认绘制点,单击右键完成此次绘制", "Your browser does not support the Clipboard API, please use another browser": "您的浏览器不支持 Clipboard API,请使用其他浏览器", "Successfully copied to clipboard": "已成功复制到剪贴板", "Failed to copy to clipboard": "复制到剪贴板失败。", "Please enter the animation name": "请输入动画名称", "The name already exists": "该名称已存在", "Failed to create animation": "创建动画失败", "Please select an animation": "请先选择一个动画", "The animation is running, please stop the animation before performing operations": "当前动画正在运行中,请先停止动画再进行操作", "Can not be applied to the current object":"无法应用至当前物体", 'Please enter the text': '请输入文本', 'Click to select or drag the file to this area': '点击选择或拖拽文件到此区域', 'Uploading a new file will completely overwrite the original content, do you want to continue?':"上传新文件将完全覆盖原来的内容,是否继续?", 'Are you sure you want to delete this resource?': "您确定要删除该资源吗?", 'Are you sure you want to delete it?': "您确定要删除吗?", 'Please enter a data source name': "请输入数据源名称", 'Please enter a name for the dataset': "请输入数据集名称", 'Please enter a grouping name for the dataset': "请输入数据集分组名称", 'This format is not supported, please upload again! Supported formats are:':"不支持该格式,请重新上传!支持格式为:", 'The entry can not be null':"该项不能为空", 'Only Chinese characters, Chinese and English case, numbers, and underscores can be included':"只能包含汉字、中英文大小写、数字和下划线", 'Failed to upload': "上传失败", 'Success to upload': "上传成功", 'Success to update': "更新成功", 'Success to delete': "删除成功", 'Screenshots fail': "截图失败", }, /* 三维场景相关 */ scene: { 'All Projects': "全部工程", 'Type': "场景类型", 'Name': "场景名称", 'Introduction': "场景说明", 'Classification': "场景分类", 'Project type': "项目类型", 'Cover Picture': "封面", 'Screenshot': "截图", 'Include drawings': "包含图纸", 'Scene data volume': "场景数据量", 'Create time': '创建时间', 'Update time': '更新时间', 'Get the scene data': "获取场景数据中", 'Failed to get scene data': "获取场景数据失败", 'Generate scene data, please wait': "生成场景数据,请稍后", 'Scene data is being regenerated, please wait': "场景数据正在重新生成,请稍后", 'Scene information is being saved': "场景信息保存中", 'Getting texture': "正在获取贴图", 'Getting geometries': '正在获取几何体数据', 'Getting models': '正在获取模型', 'Parsing to editor': "正在解析至编辑器中", 'Loading completed!': "加载完成!", 'Failed to save project!': "保存工程失败!", 'Scene is packing...': "场景正在打包...", 'Scene is unpacking...': "场景正在解包...", 'Scene is being compressed...': "场景正在压缩...", 'The project does not exist!': "该工程不存在!", }, /* 图纸相关 */ drawing: { Drawing: "图纸", "Get the drawing data": "获取图纸数据中", "This operation will overwrite the current drawing, and any unsaved data will be lost. Do you want to continue?": "此操作会覆盖当前图纸,任何未保存的数据都将丢失,是否继续?", "adds the current model tag": "新增当前模型标记", 'Please select the model you want to tag': '请选择您想要标记的模型', "The current model has been tagged": "当前模型已被标记", "Left-drag to add a mark": "按住左键拖动以添加标记", "drawing reset": "图纸复位", "Are you sure you want to delete the drawing?": "确定要删除图纸吗?", "Select the mark whose color you want to change!": "请选择要修改颜色的标记!", 'Please upload the drawing file': "请上传图纸文件", "This format is not supported, please upload again! Supported formats are:": "不支持该格式,请重新上传!支持格式为:", toolbar: { "Mark color": "标记颜色", "Reset": "复位", "Layer": "图层", "Add mark": "新增标记", "Delete": "删除", "Setting": "设置" } }, bim: { "BIM lightweight": "BIM轻量化", "BIM lightweight is in progress": "BIM轻量化正在进行中", "BIM lightweight completed": "BIM轻量化完成", "BIM lightweight failed": "BIM轻量化失败", Thumbnail: "缩略图", 'BIM file': "BIM文件", "Click or drag the file to this area.Supported formats are:": "点击或者拖动文件到该区域,支持格式为:", "File name": "文件名", "Please enter the BIM file name": "请输入BIM文件名称", 'Please upload the BIM file': "请上传BIM文件", "Upload and lightweight": "上传并轻量化", "Failed to upload thumbnail": "缩略图上传失败", 'Failed to upload BIM file': "BIM文件上传失败", In: "用时", seconds: "秒", "Whether to load the BIM model into the scene?": "是否加载该BIM模型至场景中?", "New lightweight BIM model received, do you want to view it?": "接收到新的轻量化BIM模型,是否查看?", "Conversion configuration": "转换配置", "Extreme lightweight": "极致轻量化", "Export Property": "导出属性", "Conversion view": "转换视图", "View name": "视图名称", "Please enter the conversion view name": "请输入转换视图名称", "Display style": "视觉样式", "Colour": "着色", "Realistic": "真实", "View default": "视图默认", "Coordinate reference": "坐标参考", "Origin": "原点", "Project base point": "项目基点", "Measuring point": "测量点" }, cad: { "CAD parse": "CAD解析", "CAD upload and parse": "CAD上传解析", "CAD file": "CAD 文件", "Upload and parse": "上传并解析", "CAD parse is in progress": "CAD正在解析中", "Failed to upload CAD file": "上传CAD文件失败", "CAD parse completed": "CAD解析完成", "Do you want to load the preview?": "是否加载预览?", "CAD parse failed": "CAD解析失败", }, preview: { "Scene Tree": "场景树", // 操作栏 "Main view": "主视角", "Auto rotation": "自动旋转", 'Cutting': "剖切", 'Measure': "测量", 'Distance': "距离", 'Area': "面积", 'Angle': "角度", 'Clear measuring result': "清空测量结果", 'Explode': "爆炸", 'Roaming': "漫游", 'Mini map': "小地图", 'Settings': "设置", // 操作栏相关 "Rotational speed": "旋转速度", 'Explode scalar': "爆炸因子", "Please select initial position": "请选择初始位置", }, plugin: { "Optional plug-in": "可选插件", gltfHandler: { "The model is being optimized...": "模型正在优化中...", "Select the.glb/.gltf file": "选择.glb/.gltf文件", "Batch processing is supported (up to 10)": "支持批量处理(最多10个)", "You can upload a maximum of 10 files": "最多只能上传10个文件", // form表单项 "Compress": "压缩方式", "Floating point compression method.": "浮点压缩方法。", "compresses": "压缩", "Meshopt compression level": "Meshopt压缩级别", "Instance": "实例化网格", "Use GPU instancing with shared mesh references.": "使用GPU实例化技术共享网格引用", "Instance min": "实例化网格界限", "Number of instances required for instancing.": "实例化网格所需的实例数,实例数低于该值的网格将不会实例化", "Flatten": "展平场景树", "Flatten scene graph.": "将场景内子模型对象全部展平到场景根节点。", "This item cannot be closed when opening Join": "开启合并网格时此项无法关闭", "Join": "合并网格", "Join meshes and reduce draw calls.": "合并网格以减少渲染调用,合并后的网格无法单独选中。", "Prerequisites: Flatten is enabled": "前置条件:开启展平场景树", "Palette": "合并纹理", "Creates palette textures and merges materials.": "创建调色板纹理并合并材质。", "Palette min": "合并纹理界限", "Minimum number of blocks in the palette texture. If fewer unique material values are found, no palettes will be generated.": "合并纹理所需的纹理数,纹理数低于该值将不会合并", "Prune": "修剪", "Removes properties from the file if they are not referenced by a Scene.": "从文件中删除未被场景引用的属性。", "Prune attributes": "修剪顶点", "Whether to prune unused vertex attributes.": "是否修剪未使用的顶点属性", "Prune leaves": "修剪子节点", "Whether to prune empty leaf nodes.": "是否修剪空的叶子节点", "Prune solid textures": "修剪纹理", "Whether to prune solid (single-color) textures,converting them to material factors.": "是否修剪实体(单色)纹理,将其转换为材质元素", "Weld": "合并同位顶点", "Merge equivalent vertices.": "合并按位相同的顶点。合并和索引后,顶点之间的数据共享效率更高。文件大小可以减小,GPU 可以更高效地使用顶点缓存。", "This item cannot be closed when opening Simplify": "开启简化网格时此项无法关闭", "Simplify": "简化网格", "Simplify mesh geometry with meshoptimizer.": "基于 meshoptimizer 的简化算法,生成具有较少三角形和顶点的网格。简化是有损的,但该算法旨在针对给定的参数尽可能地保持视觉质量。", "Prerequisites: Weld is enabled": "前置条件:开启合并同位顶点", "Simplify error": "简化误差界限", "Simplification error tolerance, as a fraction of mesh extent.": "简化网格误差容忍度,以网格尺寸的百分比表示", "Simplify lock border": "简化锁定边界", "Whether to lock topological borders of the mesh.": "是否锁定网格的拓扑边界,拓扑结构(尤其是分割顶点)会限制简化器", "Simplify ratio": "简化比率", "Target ratio (0-1) of vertices to keep.": "要保留的顶点的比率(0-1)", "Texture compress": "纹理压缩", "AVIF and WebP optimize transfer size;": "AVIF和WebP优化传输大小;", "Auto Compresses in the original format;": "Auto按原始格式进行压缩;", "none Does not compress.": "none表示不压缩纹理。", "Texture size": "纹理最大尺寸", "Maximum texture dimensions, in pixels.": "超过该尺寸的纹理将被压缩", "Optimize": "优化", // 相关提示 "Draco encoder load fail,Refresh the page and try again.": "Draco encoder加载失败,请刷新页面重试", "Draco decoder load fail,Refresh the page and try again.": "Draco decoder加载失败,请刷新页面重试", "Re-selecting the file will clear the previous optimization result. Do you want to continue?": "重新选择文件将会清空上一个优化结果,是否继续?", "This operation will clear the relevant optimization results. Do you want to continue?": "该操作会清空相关优化结果,是否继续?", "Import scene": "导入场景", "Download": "下载", "Import success!": "导入成功!" }, pointCloudReconstructor: { "The point cloud is being reconstructed...": "点云正在重建中...", "Select the Point Cloud model file": "选择点云模型文件", "Please semantically segment the point cloud first": "请先对点云进行语义化分割", "The model is not a point cloud": "该模型不是点云集合", "This operation will empty the associated reconstructions. Do you want to continue?": "该操作会清空相关重建结果,是否继续?", "Re-selecting the file will empty the previous reconstruction. Do you want to continue?": "重新选择文件将会清空上一个重建结果,是否继续?", "Color tolerance":"颜色容差", "Color similarity processing, the larger the value, the wider the range of cluster color values.":"颜色相近度处理,值越大,聚类颜色值范围越广。", "Distance threshold":"距离阈值", "Control the sensitivity of object separation, that is, spatial clustering distance threshold.":"控制物体分离的敏感度,即空间聚类距离阈值。", "Min cluster size":"最小簇大小", "Minimum number of cluster points, filtering noise points and small clusters.":"最小聚类点数,过滤噪声点和小簇。", "Downsample resolution":"点云抽稀", "The grid space division method is used to reduce the number of points, so as to reduce the amount of calculation in the subsequent processing.":"使用网格空间划分方法减少点数,以减少后续处理的计算量。", "Reconstruction":"重建", } }, extra: { "New animation": "新增动画", "Add keyframe": "添加关键帧", "Locked": "已锁定", "Unlocked": "已解锁", "Delete selected keyframes": "删除选中关键帧", "Jump to first frame": "跳转至第一帧", "Jump to last frame": "跳转至最后一帧", resource: { model: { /* 模型分类 */ "Shape": "形状", "Building": "建筑", "Person": "人物", "Plant": "植物", "Animal": "动物", "Vehicle": "交通工具", "Machine": "机械设备", "Furniture": "室内用品", "Outdoor": "室外用品", "Other": "其他", /* 模型列表 */ // 形状 "Group": '组', "Sprite": '精灵', "General": '通用', "Box": '正方体', "Circle": '圆', "Torus": '圆环体', "Cylinder": '圆柱体', "Sphere": '球体', "Plane": '平面', "Ring": '环', "Tetrahedron": '四面体', "Octahedron": '八面体', "Dodecahedron": '十二面体', "Icosahedron": '二十面体', "Capsule": '胶囊', 'Double cone': "双锥", "TorusKnot": '环面扭结体', "Tube": '管', "Teapot": '茶壶', // 建筑 "Stall": "货摊", // 植物 "Grass": "草", "Maple tree": "枫树", "Dragon spruce": "云杉", "Small tree": "小树", "Small flower": "小花", "Lemon": "柠檬", // 动物 "Rat": "老鼠", // 交通工具 "Covered car": "遮盖车", // 机械设备 "Drill": "钻孔机", // 室内用品 "Sofa": "沙发", "Wooden stool": "木凳", // 室外用品 "Wooden dining table": "木餐桌", // 其他 "Baseball": "棒球", }, material:{ /* 材质分类 */ "Wall brick":"墙砖", "Metal":"金属", /* 材质列表 */ // 墙砖 "Red brick":"红砖", "Red sandstone":"红砂岩", "Rustic stone wall":"乡村石墙", // 金属 "Rusty":"锈蚀", "Gold":"金", // Shader "Diffused color line":"扩散彩线", "Dynamic checkerboard":"动态格子", "Slow smoke":"缓动烟雾", "Flow line":"流动线", "Flicker":"闪烁", }, billboard:{ /* 广告牌分类 */ "Icon":"图标", "Text":"文本", /* 广告牌列表 */ // 图标 'Location':'位置', 'Heart':'心', 'Flag':'旗帜', 'Bookmark':'书签', 'Error':'错误', 'Correct':'正确', 'Warn':'警告', 'Notification':'通告', 'Notification message':'通告消息', 'Home':'家', 'Lightbulb':'灯泡', 'Comment':'评论', 'Add':'添加', 'Read':'阅读', 'Book':'书', 'Clock':'钟', 'Animal paw print':'动物脚印', 'Edit':'编辑', 'Drafts':'草稿', 'Refresh':'刷新', 'Document':'文档', 'Building':'建筑', 'Building-multiple':'多建筑', 'Store':'商店', 'Question':'问号', 'Download':'下载', 'Share':'分享', 'Image':'图像', 'Globe':'全球', 'Link':'链接', 'Chat':'聊天', 'Send':'发送', 'Send clock':'定时发送', 'Mail':'邮件', 'Cloud':'云', 'Database':'数据库', 'Diamond':'钻石', 'Area chart':'面积图', 'Bar chart':'柱状图', 'Line chart':'折线图', 'Pie chart':'饼图', 'Scatter chart':'散点图', 'Trending chart':'趋势图', 'Camera':'相机', 'Bot':'机器人', 'Person':'人员', 'People':'人群', 'Team':'团队', 'Beach':'海滩', 'Setting':'设置', 'Webcam':'网络摄像头', 'Speaker':'扬声器', 'Mic':'麦克风', 'Printer':'打印机', 'Elevator':'电梯', 'Room for mother and infant':'母婴室', 'Restroom':'卫生间', 'Water closet':'水厕', 'Parking lot':'停车场', 'Right arrow':'向右', 'Down arrow':'向下', 'Right arrow curving down':'向下', 'Right arrow curving left':'调头向左', 'Left arrow':'向左', 'Down left arrow':'左下方', 'Down right arrow':'右下方', 'Up left arrow':'左上方', 'Up right arrow':'右上方', 'Up arrow':'向上', 'Right arrow curving up':'向上', 'Bus stop':'公交站台', 'Bus':'公交车', 'Delivery truck':'货车', 'Taxi':'出租车', 'Private car':'私家车', 'Automobile':'小汽车', 'Ambulance':'救护车', 'Tram':'有轨电车', 'Train':'火车', 'Airplane':'飞机', 'ATM':'自助取款机', 'Factory':'工厂', 'Fire extinguisher':'灭火器', 'No smoking':'禁止吸烟', 'No entry':'禁止通行', // 文本 'Background':"信息背景", 'Background2':"信息背景2", 'Background3':"信息背景3", }, "Html panel":"Html面板", htmlPanel:{ /* 分类 */ Technology:"科技风", // 科技风 'Factory equipment':"工厂设备" }, particle:{ // 内置粒子列表 Smoke: '烟雾', Fire: '火焰', 'Fire line': "火线", 'Fire fly': '萤火虫', Fireworks: '烟花', }, "Light": '灯光', "Camera": '相机', } } }; ================================================ FILE: packages/editor/src/main.ts ================================================ import '@/utils/common/init'; import { createApp } from 'vue'; import App from './App.vue'; import { setupStore } from '@/store'; import 'virtual:uno.css'; import "animate.css/animate.min.css"; import '@/assets/less/index.less'; import {setupI18n} from '@/language'; import {setupRouter} from "@/router"; import DisableDevtool from 'disable-devtool'; async function main() { const app = createApp(App); setupRouter(app); // 配置存储 setupStore(app); // 多语言配置 setupI18n(app); app.mount('#app'); if (import.meta.env.PROD){ DisableDevtool({ clearLog:true }); } } main(); ================================================ FILE: packages/editor/src/plugin/glTFHandler/Listr.ts ================================================ /** * @author ErSan * @email mlt131220@163.com * @date 2024/9/18 22:24 * @description */ export class ListrTask { // @ts-ignore private title: any; private taskFn: any; isFailed: boolean; constructor(title, taskFn) { this.title = title; this.taskFn = taskFn; this.isFailed = false; } async run() { try { await this.taskFn(this); } catch (error) { this.isFailed = true; throw error; } } } export class Listr { private tasks: ListrTask[]; constructor(tasks: { title:string,task:(task: any) => Promise }[]) { this.tasks = tasks.map(task => new ListrTask(task.title, task.task)); } async run() { for (const task of this.tasks) { await task.run(); if (task.isFailed) { break; // 如果任务失败,停止执行后续任务 } } } } ================================================ FILE: packages/editor/src/plugin/glTFHandler/glTFHandler.ts ================================================ /** * @author ErSan * @email mlt131220@163.com * @date 2024/9/16 23:19 * @description glTF处理器插件 */ import {h, ref} from "vue"; import type {ModalReactive} from "naive-ui"; import {t} from "@/language"; import type {Plugin} from "@astral3d/engine"; import GLTFHandlerComponent from "@/components/es/plugin/builtin/GLTFHandler.vue"; import { MeshoptEncoder, MeshoptSimplifier } from 'meshoptimizer'; // @ts-ignore import { ready as resampleReady, resample as resampleWASM } from 'keyframe-resample'; import { Logger,WebIO, Transform } from '@gltf-transform/core'; import { dedup, instance, prune, quantize, resample, weld, meshopt, draco, simplify, textureCompress, flatten, join, sparse, palette, } from '@gltf-transform/functions'; import { ALL_EXTENSIONS } from '@gltf-transform/extensions'; import {Session} from "./session"; import {loadScript} from "@/utils/common/utils"; import { optimizePNG } from "@/plugin/glTFHandler/optimizePng"; //使用'micromatch',因为'contains: true'没有像预期的那样在minimatch中工作。需要确保'*'匹配的模式,如'image/png'。 export const MICROMATCH_OPTIONS = { nocase: true, contains: true }; export default class GLTFHandler implements Plugin{ icon= ""; name = "glTF处理器"; version = 1; logger = new Logger(Logger.Verbosity.INFO); io = new WebIO({credentials: 'include'}).registerExtensions(ALL_EXTENSIONS); modalInstance:ModalReactive | undefined = undefined; GLTFHandlerComponentRef = ref(); dracoScript = new Proxy({ encoder:false, decoder:false, failMsg:"" },{ set:(target: {decoder: boolean;encoder: boolean;failMsg: string;}, p: string | symbol, newValue: any): boolean => { target[p] = newValue; if(p === "failMsg"){ window.$message?.error(newValue) return true; } if(target.encoder && target.decoder){ this.registerDependencies() } return true; } }) async install() { // console.log(`%c glTF处理器 %c 版本:1.0.0`, 'background: #35495e; padding: 4px; border-radius: 3px 0 0 3px; color: #fff', // 'background: #41b883; padding: 4px; border-radius: 0 3px 3px 0; color: #fff'); } async run() { // 运行时再加载draco相关js if(!this.dracoScript.encoder){ loadScript("/libs/draco/draco_encoder.js",false).then(() => { this.dracoScript.encoder = true; }).catch(() => { this.dracoScript.failMsg = t("plugin.gltfHandler['Draco encoder load fail,Refresh the page and try again.']"); }) } if(!this.dracoScript.decoder) { loadScript("/libs/draco/draco_decoder.js", false).then(() => { this.dracoScript.decoder = true; }).catch(() => { this.dracoScript.failMsg = t("plugin.gltfHandler['Draco decoder load fail,Refresh the page and try again.']"); }) } this.GLTFHandlerComponentRef = ref(); this.modalInstance = window.$modal.create({ title: this.name, preset:"card", maskClosable:false, style: { width: '90%', maxWidth: '800px' }, onAfterLeave: () => this.finish(), content: () => { return h(GLTFHandlerComponent,{ onOptimize: this.optimize.bind(this), onFinish: () => this.finish(), ref: this.GLTFHandlerComponentRef },"") }, }) } // 关闭插件 finish(){ this.modalInstance && this.modalInstance.destroy(); this.GLTFHandlerComponentRef = ref(); } uninstall(): void {} setLogger(log:string){ if(!this.GLTFHandlerComponentRef.value) return; this.GLTFHandlerComponentRef.value.addLog(log); } async registerDependencies(){ this.io.registerDependencies({ // @ts-ignore 'draco3d.encoder': await new DracoEncoderModule(), // @ts-ignore 'draco3d.decoder': await new DracoDecoderModule(), }) } /* 下面是实现的自定义的处理器方法 */ async optimize(opts:IPlugin.GLTFHandlerOptimizeModel,inputFile:File,outputFileName = ""){ this.setLogger(`Optimize ${inputFile.name}`); if(this.dracoScript.failMsg){ window.$message?.error(this.dracoScript.failMsg); return; } if(!this.dracoScript.encoder || !this.dracoScript.decoder){ setTimeout(()=>this.optimize(opts,inputFile,outputFileName),1000) return; } /* 文件准备就绪,开始优化 */ const transforms: Transform[] = [ optimizePNG(), dedup() ]; if (opts.instance) transforms.push(instance({ min: opts.instanceMin })); if (opts.palette) { transforms.push( palette({ min: opts.paletteMin, keepAttributes: !opts.prune || !opts.pruneAttributes, }), ); } if (opts.flatten) transforms.push(flatten()); if (opts.join) transforms.push(join()); if (opts.weld) transforms.push(weld()); if (opts.simplify) { transforms.push( simplify({ simplifier: MeshoptSimplifier, // simplifyError 用%显示时扩大了100倍,需要高精度计算减小100倍 error: opts.simplifyError / 100, ratio: opts.simplifyRatio, lockBorder: opts.simplifyLockBorder, }), ); } // 重新采样动画通道,无损地删除重复的关键帧以减小文件大小。重复的关键帧通常出现在由创作软件“烘焙”的动画中,以应用 IK 约束或其他软件特定功能。 transforms.push(resample({ ready: resampleReady, resample: resampleWASM })); if (opts.prune) { transforms.push( prune({ keepAttributes: !opts.pruneAttributes, keepIndices: false, keepLeaves: !opts.pruneLeaves, keepSolidTextures: !opts.pruneSolidTextures, }), ); } transforms.push(sparse()); if (opts.textureCompress !== 'none') { transforms.push( textureCompress({ resize: [opts.textureSize, opts.textureSize], targetFormat: opts.textureCompress === 'auto' ? undefined : opts.textureCompress, // limitInputPixels: options.limitInputPixels as boolean, limitInputPixels: false, }), ); } // 最后进行网格压缩 if (opts.compress === 'draco') { transforms.push(draco()); } else if (opts.compress === 'meshopt') { transforms.push(meshopt({ encoder: MeshoptEncoder, level: opts.meshoptLevel })); } else if (opts.compress === 'quantize') { transforms.push(quantize()); } // 设置输出文件名 if(!outputFileName){ const format = inputFile.name.split(".").pop(); outputFileName = inputFile.name.replace(`.${format}`,`_astral3d.optimize.${format}`) } // 生成临时 URL const inputFileUrl = URL.createObjectURL(inputFile); let outputFile:File | undefined = undefined try { outputFile = await Session.create(this,inputFileUrl, inputFile.name, outputFileName) .setDisplay(true) .transform(...transforms); this.setLogger(`Optimize ${inputFile.name} success!`); }catch (e:unknown){ if (e instanceof Error) { window.$message?.error(e.message); this.setLogger(`Optimize ${inputFile.name} error: ${e.message}`); } else { window.$message?.error(e as string); this.setLogger(`Optimize ${inputFile.name} error: ${e}`); } } return outputFile; } } ================================================ FILE: packages/editor/src/plugin/glTFHandler/optimizePng.ts ================================================ import type { Transform } from '@gltf-transform/core'; import { encodePNG } from './util'; function asUint8Array(data: unknown): Uint8Array { if (data instanceof Uint8Array) return data; if (data instanceof ArrayBuffer) return new Uint8Array(data); throw new Error('Unsupported texture image type'); } export const optimizePNG = (): Transform => async (doc) => { const textures = doc.getRoot().listTextures(); for (const tex of textures) { // 仅处理 PNG if (tex.getMimeType() !== 'image/png') continue; const image = tex.getImage(); if (!image || image.byteLength === 0) continue; // 归一化为 Uint8Array const imgU8 = asUint8Array(image); const stamped = await encodePNG(imgU8); tex.setImage(stamped); tex.setMimeType('image/png'); } }; ================================================ FILE: packages/editor/src/plugin/glTFHandler/session.ts ================================================ import { Document, WebIO, FileUtils, Transform, Format, Logger } from '@gltf-transform/core'; import type { Packet, KHRXMP } from '@gltf-transform/extensions'; import { unpartition } from '@gltf-transform/functions'; import { Listr } from "./Listr"; import { formatBytes, encodeGLB, XMPContext } from './util.js'; import GLTFHandler from "./glTFHandler"; export class Session { private _outputFormat: Format; private _display = false; constructor( private _io: WebIO, private _logger: Logger, private setLogger: (log: string) => void, private _input: string, private _inputName: string, private _output: string, ) { _io.setLogger(_logger); this._outputFormat = FileUtils.extension(_output) === 'glb' ? Format.GLB : Format.GLTF; } public static create(handler: GLTFHandler, inputFileUrl: string, inputName: string, output: string): Session { return new Session(handler.io, handler.logger, handler.setLogger.bind(handler), inputFileUrl, inputName, output); } public setDisplay(display: boolean): this { this._display = display; return this; } public async transform(...transforms: Transform[]): Promise { this.setLogger("Start"); let _document = this._input ? (await this._io.read(this._input)).setLogger(this._logger) : new Document().setLogger(this._logger); // 警告和消除有损压缩,以避免增加往返的损失。 for (const extensionName of ['KHR_draco_mesh_compression', 'EXT_meshopt_compression']) { const extension = _document .getRoot() .listExtensionsUsed() .find((extension) => extension.extensionName === extensionName); if (extension) { extension.dispose(); this._logger.warn(`Decoded ${extensionName}. Further compression will be lossy.`); } } if (this._display) { const tasks = [] as { title: string, task: (task: any) => Promise }[]; for (const transform of transforms) { tasks.push({ title: transform.name, task: async (task) => { try { this.setLogger(task.title) let time = performance.now(); _document = await _document.transform(transform); time = Math.round(performance.now() - time); this.setLogger(task.title.padEnd(20) + ` ${time}ms`) } catch (error: unknown) { // @ts-ignore this.setLogger(`${task.title} run fail: ${error?.message || error}`) } }, }); } await new Listr(tasks).run(); } else { await _document.transform(...transforms); } await _document.transform(updateMetadata); if (this._outputFormat === Format.GLB) { await _document.transform(unpartition()); } const rawU8 = await this._io.writeBinary(_document); let outputUint8Array = rawU8; try { outputUint8Array = await encodeGLB(rawU8, {}); } catch (e: any) { this._logger.warn('EncodeGLB skipped: ' + (e?.message || e)); } // Uint8Array转file const mimeType = this._outputFormat === Format.GLB ? "model/gltf-binary" : "model/gltf+json"; const blob = new Blob([outputUint8Array], { type: mimeType }); const outputFile = new File([blob], this._output, { type: mimeType }); const { lastReadBytes } = this._io; const lastWriteBytes = outputUint8Array.byteLength; if (!this._input) { const output = FileUtils.basename(this._output) + '.' + FileUtils.extension(this._output); this._logger.info(`${output} (${formatBytes(lastWriteBytes)})`); } else { const input = FileUtils.basename(this._inputName) + '.' + FileUtils.extension(this._inputName); const output = FileUtils.basename(this._output) + '.' + FileUtils.extension(this._output); this._logger.info( `${input} (${formatBytes(lastReadBytes)})` + ` → ${output} (${formatBytes(lastWriteBytes)})`, ); } this.setLogger("Done") return outputFile; } } function updateMetadata(_document: Document): void { const root = _document.getRoot(); const xmpExtension = root .listExtensionsUsed() .find((ext) => ext.extensionName === 'KHR_xmp_json_ld') as KHRXMP | null; // 不要将KHR_xmp_json_ld添加到尚未使用它的资产中。 if (!xmpExtension) return; const rootPacket = root.getExtension('KHR_xmp_json_ld') || xmpExtension.createPacket(); // xmp:MetadataDate should be the same as, or more recent than, xmp:ModifyDate. // https://github.com/adobe/xmp-docs/blob/master/XMPNamespaces/xmp.md const date = new Date().toISOString().substring(0, 10); rootPacket .setContext({ ...rootPacket.getContext(), xmp: XMPContext.xmp }) .setProperty('xmp:ModifyDate', date) .setProperty('xmp:MetadataDate', date); } ================================================ FILE: packages/editor/src/plugin/glTFHandler/util.ts ================================================ import { Utils } from "@astral3d/engine"; export const XMPContext: Record = { dc: 'http://purl.org/dc/elements/1.1/', model3d: 'https://schema.khronos.org/model3d/xsd/1.0/', rdf: 'http://www.w3.org/1999/02/22-rdf-syntax-ns#', xmp: 'http://ns.adobe.com/xap/1.0/', xmpRights: 'http://ns.adobe.com/xap/1.0/rights/', }; export function formatLong(x: number): string { return x.toString(); } export function formatBytes(bytes: number, decimals = 2): string { if (bytes === 0) return '0 Bytes'; const k = 1000; const dm = decimals < 0 ? 0 : decimals; const sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB']; const i = Math.floor(Math.log(bytes) / Math.log(k)); return parseFloat((bytes / Math.pow(k, i)).toFixed(dm)) + ' ' + sizes[i]; } export function dim(str: string): string { return `\x1b[2m${str}\x1b[0m`; } /* wasm内优化处理 */ let wasmReady = false; async function ensureWasmReady() { if (wasmReady) return; await Utils.injectWasm({ wasmUrl: "/wasm/Astral3DglTFHandler.wasm" }); wasmReady = true; } export async function encodeGLB(u8: Uint8Array, meta: Record = {}) { await ensureWasmReady(); const out = window.glTFHandlerEncodeGLB(u8, JSON.stringify(meta || {})); return new Uint8Array(out.buffer, out.byteOffset, out.byteLength); } export async function encodePNG(png: Uint8Array) { await ensureWasmReady(); const out = window.glTFHandlerEncodePNG(png); return new Uint8Array(out.buffer, out.byteOffset, out.byteLength); } /* wasm内优化处理 End */ ================================================ FILE: packages/editor/src/plugin/index.ts ================================================ import GLTFHandler from "./glTFHandler/glTFHandler"; import PointCloudReconstructor from "./pointCloudReconstructor/PointCloudReconstructor"; // 注册内置插件 export const installBuiltinPlugin = (viewer) => { //glTF处理器 viewer.modules.plugin.use(new GLTFHandler()); // 语义化点云重建 viewer.modules.plugin.use(new PointCloudReconstructor()); } ================================================ FILE: packages/editor/src/plugin/pointCloudReconstructor/PointCloudReconstructor.ts ================================================ /** * @author ErSan * @email mlt131220@163.com * @date 2025/07/03 14:20 * @description 语义化点云重建 */ import { h, ref } from "vue"; import type { ModalReactive } from "naive-ui"; import type { Plugin } from "@astral3d/engine"; import PointCloudReconstructorComponent from "@/components/es/plugin/builtin/PointCloudReconstructor.vue"; export default class PointCloudReconstructor implements Plugin { icon = ""; name = "语义化点云重建"; version = 0.1; modalInstance: ModalReactive | undefined = undefined; componentRef = ref(); async install() { // console.log(`%c 语义化点云重建 %c 版本:0.1.0`, 'background: #35495e; padding: 4px; border-radius: 3px 0 0 3px; color: #fff', // 'background: #41b883; padding: 4px; border-radius: 0 3px 3px 0; color: #fff'); } async run() { this.componentRef = ref(); this.modalInstance = window.$modal.create({ title: this.name, preset: "card", maskClosable: false, style: { width: '90%', maxWidth: '800px' }, onAfterLeave: () => { this.componentRef.value.handleClose(); this.finish(); }, content: () => { return h(PointCloudReconstructorComponent, { ref: this.componentRef }, "") }, }) } // 关闭插件 finish() { this.modalInstance && this.modalInstance.destroy(); this.componentRef = ref(); } uninstall(): void { } } ================================================ FILE: packages/editor/src/router/index.ts ================================================ import type { App } from 'vue'; import {createRouter, createWebHashHistory} from 'vue-router'; import {routes} from "@/router/routes"; export const router = createRouter({ history: createWebHashHistory(), routes, // 是否应该禁止尾部斜杠。默认为假 strict: true, scrollBehavior: () => ({left: 0, top: 0}), }); export function setupRouter(app: App) { app.use(router); } ================================================ FILE: packages/editor/src/router/routes.ts ================================================ export const routes = [ { path: '/', name: 'Home', component: () => import('@/views/home/index.vue') }, { path: '/editor/:id', name: 'Editor', component: () => import('@/views/editor/index.vue') }, { path: '/preview/:id', name: 'Preview', component: () => import('@/views/preview/index.vue') } ]; ================================================ FILE: packages/editor/src/store/index.ts ================================================ import type { App } from 'vue'; import { createPinia } from 'pinia'; const store = createPinia(); export function setupStore(app: App) { app.use(store); } export { store }; ================================================ FILE: packages/editor/src/store/modules/animation.ts ================================================ import {reactive, toRefs, h,computed} from "vue"; import {NIcon} from 'naive-ui'; import type {TreeOption} from 'naive-ui' import {defineStore} from 'pinia'; import {ConditionPoint} from '@vicons/carbon'; import {store} from '@/store'; import {t} from "@/language"; import type {TimelineTrack,ITimelineRow} from "@astral3d/engine"; import {App} from "@astral3d/engine"; export interface IAnimationItem { name: string, uuid: string, isRunning: boolean, isPaused: boolean, } interface IAnimationState { // 选中模型的动画列表 list: Array, // 动画编辑器当前选中的动画 current: IAnimationItem | null, // 当前选中动画的所有轨道 trackTree: TreeOption[], // 全局的动画播放速率 mixerTimeScale: number, // 当前播放的时间(毫秒) currentTime: number, // 当前action总时长(毫秒) duration: number, } // 动画轨道类实例 let timelineInstance: TimelineTrack, waitRows: ITimelineRow[] = []; /** * 模型动画(动画编辑器) */ export const useAnimationStore = defineStore('model-animation', () => { const state = reactive({ list: [], current: null, trackTree: [], mixerTimeScale: 1.0, currentTime: 0, duration: 0 }) /** * getter **/ // 动画时间帧一步的长度,默认一步走过一个像素代表1000ms (即1px代表多少ms) const getStepVal = () => { if (timelineInstance) { return (timelineInstance.timeline._options.stepVal) * timelineInstance.timeline._currentZoom / (timelineInstance.timeline._options.zoom); } else { return 1000; } }; // 获取格式化后的总时长 00:00:00 const getFormattedDuration = computed(() => { const _time = state.duration / 1000; const hours = Math.floor(_time / 3600); const minutes = Math.floor((_time - hours * 3600) / 60); const seconds = _time - hours * 3600 - minutes * 60; return `${hours.toString().padStart(2, "0")}:${minutes.toString().padStart(2, "0")}:${seconds.toFixed(0).padStart(2, "0")}`; }); // 获取格式化后的播放时间 00:00:00 const getFormattedCurrentTime = computed(() => { const _time = state.currentTime / 1000; const hours = Math.floor(_time / 3600); const minutes = Math.floor((_time - hours * 3600) / 60); const seconds = (_time- hours * 3600 - minutes * 60).toFixed(0); return `${hours.toString().padStart(2, "0")}:${minutes.toString().padStart(2, "0")}:${seconds.padStart(2, "0")}`; }); /** * actions **/ const setTimelineInstance = (instance: TimelineTrack) => { timelineInstance = instance; if (waitRows.length) { timelineInstance.setRows(waitRows); waitRows = []; const action = App.animationManager.actionMap.get(state.current?.uuid as string); if (!action) return; timelineInstance.bindAction = action; } } // 设置动画列表 const setList = (_list: Array, _current: IAnimationItem | null = null) => { state.list = _list; if (_current) { setCurrent(_current); } else { setCurrent(_list.length ? _list[0] : null); } } // 设置当前选中的动画(会刷新树列表及动画轨道) const setCurrent = (value: IAnimationItem | null) => { state.current = value; if (!value) { state.trackTree = []; state.currentTime = 0; state.duration = 0; if (timelineInstance) { timelineInstance.setRows([]); timelineInstance.bindAction = null; waitRows = []; } return; } // 取出当前动画下的所有轨道组织rows关系 const action = App.animationManager.actionMap.get(value.uuid); if (!action) return; const actionClip = action.getClip(); const actionObject = action.getRoot(); state.duration = actionClip.duration * 1000; // 取出所有轨道并按名称排序 const tracks = [...actionClip.tracks].sort((a, b) => a.name.localeCompare(b.name)); const _trackTree: TreeOption = { key: actionObject.uuid, label: actionObject.name, children: [], isLeaf: false }; waitRows = [{ id: actionObject.uuid, name: actionObject.name }]; const pathMap = new Map(); // 用于记录已有路径 // 处理每个轨道 tracks.forEach(track => { const parts = track.name.split('.'); let currentPath = ''; let parentNode: TreeOption | null = null; parts.forEach((part, index) => { const isLeaf = index === parts.length - 1; const nodePath = currentPath ? `${currentPath}!!${part}` : part; if (index === 0 && (part === actionObject.name || part === actionObject.uuid)) return; // 如果节点已存在则直接使用 if (pathMap.has(nodePath)) { parentNode = pathMap.get(nodePath); currentPath = nodePath; return; } // 记录到rows const _row: ITimelineRow = { id: nodePath, name: part } // 创建新节点 const newNode: TreeOption = { key: nodePath, label: part, children: [], ...(isLeaf && { isLeaf: true, suffix: () => h( NIcon, { size: 16, onClick: () => { // 取最后一段(如 'nodeName.property[accessor]') const lastSegment = parts[parts.length - 1]; // 再按 '[' 分割,取第一部分(如 'property') let attr = lastSegment?.split('[')[0]; // 如果parts倒数第二个元素为material,则添加至前面 if(parts.length > 1 && parts[parts.length - 2] ==='material'){ attr = `material.${attr}`; } addKeyframe(attr); } }, {default: () => h(ConditionPoint)} ), }) }; // 如果是叶子节点,则写入关键帧值 if (isLeaf) { _row.keyframes = []; // 每个关键帧的值的长度 const dataLength = Math.floor(track.values.length / track.times.length); track.times.forEach((time, i) => { _row.keyframes?.push({ val: time * 1000, // @ts-ignore data: track.values.slice(i * dataLength, (i + 1) * dataLength) }) }) _row.track = track; } waitRows.push(_row); // 挂载到父节点或根 if (parentNode) { parentNode.children?.push(newNode); } else { _trackTree.children?.push(newNode); } // 更新路径记录 pathMap.set(nodePath, newNode); parentNode = newNode; currentPath = nodePath; }); }); state.trackTree = [_trackTree]; if (timelineInstance) { timelineInstance.setRows(waitRows); timelineInstance.bindAction = action; waitRows = []; state.duration = timelineInstance._maxDuration; } } const play = () => { if (!state.current) return; if (timelineInstance) { timelineInstance.play(); } else { const action = App.animationManager.actionMap.get(state.current.uuid); if (!action) return; action.play(); action.paused = false; } state.current.isPaused = false; state.current.isRunning = true; } const pause = () => { if (!state.current) return; if (timelineInstance) { timelineInstance.pause(); } else { const action = App.animationManager.actionMap.get(state.current.uuid); if (!action) return; action.paused = !state.current.isPaused; } state.current.isPaused = !state.current.isPaused; } const stop = () => { if (!state.current) return; if (timelineInstance) { timelineInstance.stop(); } else { const action = App.animationManager.actionMap.get(state.current.uuid); if (!action) return; action.stop(); } state.current.isPaused = false; state.current.isRunning = false; } // 跳转至开始 const jumpToStart = () => { if (!timelineInstance) return; timelineInstance.timeline.setTime(0); } // 跳转至最后 const jumpToEnd = () => { if (!timelineInstance) return; timelineInstance.timeline.setTime(state.duration); } // 添加关键帧 const addKeyframe = (attr: string) => { if (!state.current) { window.$message?.error(t("prompt.Please select an animation")); return; } if (state.current.isRunning) { window.$message?.error(t("prompt['The animation is running, please stop the animation before performing operations']")); return; } if (timelineInstance) { timelineInstance.addKeyframe(attr); state.duration = timelineInstance._maxDuration; } } // 设置动画播放时间(单位:ms) const setPlayTime = (time: number) => { if (timelineInstance) { timelineInstance.timeline.setTime(time); } }; return { ...toRefs(state), getStepVal, getFormattedDuration, getFormattedCurrentTime, setTimelineInstance, setList, setCurrent, play, pause, stop, jumpToStart, jumpToEnd, addKeyframe, setPlayTime } }); // setup 之外使用 export function useAnimationStoreWithOut() { return useAnimationStore(store); } ================================================ FILE: packages/editor/src/store/modules/assets.ts ================================================ import {reactive, toRefs,markRaw} from "vue"; import {defineStore} from 'pinia'; import {Hdr, ImageReference, LocationHeart, ModelAlt, Opacity} from '@vicons/carbon'; import {store} from '@/store'; import {cpt} from "@/language"; import {fetchAssetsCategoryTreeList} from "@/http/api/assetsCategory"; import {markLeafNodes} from "@/utils/common/utils"; interface IAssetsState { // 资产分类树 categories: IAssets.MainCategory[], } /** * 资产管理 */ export const useAssetsStore = defineStore('assets-manager', () => { const state = reactive({ categories: [ { key: 'Model', label: cpt("home.assets.Model"), icon: markRaw(ModelAlt), children:[] }, { key: 'Material', label: cpt("home.assets.Material"), icon: markRaw(Opacity), children:[] }, { key: 'Texture', label: cpt("home.assets.Texture"), icon: markRaw(ImageReference), children:[] }, { key: 'Billboard', label: cpt("home.assets.Billboard"), icon: markRaw(LocationHeart), children:[] }, { key: 'HDR', label: 'HDR', icon: markRaw(Hdr), children:[] } ], }) /** * getter **/ /** * actions **/ // 获取顶层分类子级 const getCategoryChildren = (category: string) => { const c = state.categories.find(c => c.key === category); if(!c) return [] as IAssets.Category[]; //@ts-ignore markLeafNodes(category.children); return c.children as IAssets.Category[]; } // 获取资产分类树 const fetchCategory = async () => { const res = await fetchAssetsCategoryTreeList(); if(res.error){ window.$message?.error(res.error); return; } state.categories.forEach(c => { c.children = []; }) res.data.forEach((item:IAssets.Category) => { const category = state.categories.find(c => c.key === item.type); if(!category) return; (category.children as IAssets.Category[]).push(item); }) } return { ...toRefs(state), getCategoryChildren, fetchCategory } }); // setup 之外使用 export function useAssetsStoreWithOut() { return useAssetsStore(store); } ================================================ FILE: packages/editor/src/store/modules/drag.ts ================================================ import { defineStore } from 'pinia'; import {Vector2} from "three"; import { store } from '@/store'; interface IDragState { data: any, actionTarget: "" | "addToScene", endArea:"" | "Drawing" | "Scene", endPosition: Vector2 } /** * 拖拽相关 */ export const useDragStore = defineStore({ id: 'drag', state: () => ({ // 拖拽的数据 data: {}, // 拖拽行为目的 actionTarget:"", // 鼠标释放时的区域 endArea:"", // 鼠标释放时的区域屏幕坐标 endPosition: new Vector2() }), getters:{ getData:state=> state.data, getActionTarget:state=> state.actionTarget, }, actions: { setData(data:any){ this.data = data; }, setActionTarget(actionTarget){ this.actionTarget = actionTarget; }, setEndArea(area){ this.endArea = area; } } }); // setup 之外使用 export function useDragStoreWithOut() { return useDragStore(store); } ================================================ FILE: packages/editor/src/store/modules/globalConfig.ts ================================================ import {ref} from 'vue'; import {defineStore} from 'pinia'; import {darkTheme, useOsTheme} from "naive-ui"; import type {GlobalTheme} from 'naive-ui'; import { useStorage } from '@vueuse/core'; import {store} from '@/store'; import {generate} from '@ant-design/colors' import {App} from "@astral3d/engine"; const osThemeRef = useOsTheme(); /** * 全局配置 */ export const useGlobalConfigStore = defineStore('global-config', () => { /* 主题 */ const themeLocal = useStorage("astral-theme", "darkTheme"); const getProviderTheme = (): GlobalTheme => (themeLocal.value === 'osTheme' ? (osThemeRef.value === 'dark' ? darkTheme : null) : themeLocal.value === 'lightTheme' ? null : darkTheme); const themeLink = { 'osTheme': { next: 'lightTheme', prev: 'darkTheme' }, 'lightTheme': { next: 'darkTheme', prev: 'osTheme' }, 'darkTheme': { next: 'osTheme', prev: 'lightTheme' } } const setTheme = () => { const current = themeLocal.value || 'darkTheme'; const next = themeLink[current].next; themeLocal.value = next; App.config.setKey("theme", next.replace("Theme", "")); if (window.viewer) { // 设置viewHelper外观 window.viewer.modules.viewHelper.setConfig(); } } /* i18n */ const localeLocal = useStorage("astral-locale", "zh-CN"); const setLocaleLocal = (local:IConfig.Locale) => { localeLocal.value = local; } /* 主色 */ const mainColor = useStorage("astral-main-color", { "CMYK": [56, 0, 19, 11], "RGB": [99, 226, 183], "hex": "#63E2B7", "hexHover": "#7FE7C4", "hexPressed": "#5ACEA7", "hexSuppl": "#2A947D", "name": "\u9e23\u7fe0\u67f3", "pinyin": "mingcuiliu" }); const setPrimaryColor = (color: IConfig.Color) => { const colors = generate(color.hex); color.hexHover = colors[4] // Hover浅一些,取第5个颜色 color.hexSuppl = colors[6] // 比主色深一档,取第7个颜色 color.hexPressed = colors[7] mainColor.value = color; App.config.setKey("mainColor",color.hexHover); if (window.viewer) { // 设置viewer grid中心校以及边线颜色 window.viewer.initGrid(); // 设置viewHelper外观 window.viewer.modules.viewHelper.setConfig(); } } /* 全局Loading */ const loading = ref(false); const loadingText = ref(""); return { theme: themeLocal, locale: localeLocal, mainColor, loading, loadingText, getProviderTheme, setTheme, setLocale: setLocaleLocal, setPrimaryColor } }); // setup 之外使用 export function useGlobalConfigStoreWithOut() { return useGlobalConfigStore(store); } ================================================ FILE: packages/editor/src/store/modules/plugin.ts ================================================ /** * @author ErSan * @email mlt131220@163.com * @date 2024/9/16 0:36 * @description */ import { defineStore } from 'pinia'; import { store } from '@/store'; import {computed, reactive, toRefs} from "vue"; interface IPluginState { // 已安装(可用)插件的列表 plugins:{[name:string]:IPlugin.Item} } export const usePluginStore = defineStore("plugin",() => { const state = reactive({ plugins:{} }) const getPluginsList = () => computed(() => Object.values(state.plugins)); const setPlugins = (_plugins:IPlugin.Item[]) => { state.plugins = {}; _plugins.forEach(plugin => { state.plugins[plugin.name] = { name:plugin.name, icon:plugin.icon } }) } const addPlugin = (plugin:IPlugin.Item) => { state.plugins[plugin.name] = { name:plugin.name, icon:plugin.icon } } const removePlugin = (pluginName:string) => { delete state.plugins[pluginName]; } return { ...toRefs(state), getPluginsList, setPlugins, addPlugin, removePlugin } }) export function usePluginStoreWithOut() { return usePluginStore(store); } ================================================ FILE: packages/editor/src/store/modules/previewOperation.ts ================================================ import type {Component} from 'vue' import {defineStore} from 'pinia'; import {store} from '@/store'; import { Home, Rotate, CutOut, RulerAlt, Ruler, Angle, AreaCustom, Pedestrian, Map, Settings, Clean, EdgeCluster } from '@vicons/carbon'; import {ContractOutline, ExpandOutline} from "@vicons/ionicons5"; import {t} from "@/language"; export interface IPreviewOperation { name: string, active?: boolean, disabled?: boolean, loading?: boolean, show?: boolean, icon: Component, children?: { [key: string]: IPreviewOperation } } interface IPreviewOperationState { menuList: { [key: string]: IPreviewOperation }, autoRotateSpeed: number, explodeScalar:number } export const usePreviewOperationStore = defineStore('previewOperation', { state: () => ({ menuList: { toHome: {name: t("preview.Main view"), active: false, disabled: false, show: true, icon: Home}, autoRotate: {name: t("preview.Auto rotation"), active: false, disabled: false, show: true, icon: Rotate}, cutting: {name: t("preview.Cutting"), active: false, disabled: false, show: true, icon: CutOut}, measure: { name: t("preview.Measure"), active: false, disabled: false, show: true, icon: RulerAlt, children: { distance: {name: t("preview.Distance"), active: false, show: true, icon: Ruler}, angle: {name: t("preview.Angle"), active: false, show: true, icon: Angle}, area: {name: t("preview.Area"), active: false, show: true, icon: AreaCustom}, clearMeasure: { name: t("preview.Clear measuring result"), active: false, disabled: true, show: true, icon: Clean } } }, explode: {name: t("preview.Explode"), active: false, disabled: false, show: true, icon: EdgeCluster}, roaming: { name: t("preview.Roaming"), active: false, disabled: false, loading: true, show: true, icon: Pedestrian }, miniMap: {name: t("preview.Mini map"), active: false, disabled: false, show: true, icon: Map}, settings: {name: t("preview.Settings"), active: false, disabled: false, show: true, icon: Settings}, fullscreen: { name: t("layout.header.Fullscreen"), active: false, disabled: false, show: true, icon: ExpandOutline }, exitFullscreen: { name: t("layout.header.Exit fullscreen"), active: false, disabled: false, show: false, icon: ContractOutline }, }, autoRotateSpeed: 20, explodeScalar: 1.0, }), getters: {}, actions: {}, }); export function usePreviewOperationStoreWithOut() { return usePreviewOperationStore(store); } ================================================ FILE: packages/editor/src/store/modules/websocket.ts ================================================ import {reactive, toRefs} from "vue"; import { defineStore } from 'pinia'; import { useStorage } from '@vueuse/core' import { store } from '@/store'; import type {UseWebSocketReturn} from "@vueuse/core"; interface IWebsocketState { ws: null | UseWebSocketReturn, uname:string } /** * websocket相关 */ export const useWebsocketStore = defineStore('websocket',()=>{ const unameLocal = useStorage('WS_UNAME', ""); const state = reactive>({ // websocket实例 ws: null, // uname uname:unameLocal.value as string }) /** * getter **/ const getIsOpen = () => state.ws && state.ws.status === "OPEN"; /** * actions **/ const setWebsocket = (websocket) => { state.ws = websocket; } const setUname = (uname:string) => { unameLocal.value = uname; state.uname = uname; } // 发送websocket消息 const send = (message: string | ArrayBuffer | Blob) => { if (getIsOpen()) { state.ws?.send(message,true); } } return { ...toRefs(state), getIsOpen, setWebsocket, setUname, send } }); // setup 之外使用 export function useWebsocketStoreWithOut() { return useWebsocketStore(store); } ================================================ FILE: packages/editor/src/utils/common/base64.ts ================================================ /** * byte数组转换成base64 数据 * @param {Array} buffer * @return {string} base64 string */ export function _arrayBufferToBase64(buffer) { let binary = ''; const bytes = new Uint8Array(buffer); const len = bytes.byteLength; for (let i = 0; i < len; i++) { binary += String.fromCharCode( bytes[ i ] ); } return window.btoa( binary ); } /** * base64数据转换成byte数组 * @param {string} base64 * @return {string} buffer */ export function _base64ToArrayBuffer(base64) { const binary_string = window.atob(base64); const len = binary_string.length; const bytes = new Uint8Array(len); for (let i = 0; i < len; i++) { bytes[i] = binary_string.charCodeAt(i); } return bytes.buffer; } ================================================ FILE: packages/editor/src/utils/common/color.ts ================================================ // 10进制转rgba export function decToRgb(number:number) { const blue = number & 0xff; const green = number >> 8 & 0xff; const red = number >> 16 & 0xff; return `rgb(${red}, ${green}, ${blue})`; } ================================================ FILE: packages/editor/src/utils/common/constant.ts ================================================ /** * @author ErSan * @email mlt131220@163.com * @date 2024/3/26 9:57 * @description 全局常量 */ // 支持的模型格式 export const MODEL_SUPPORT_TYPE = [ // 普通模型格式 "gltf","glb","fbx","obj","mtl", "3dm","3ds", "3mf","amf", "dae","drc", "kmz","ldr", "mpd","md2", "pcd","ply", "stl","svg", "usdz","vox","vtk","vtp", "wrl", "xyz", "json","zip", // 自解析格式 "rvt","rfa","ifc", //"osgb", // "rvm", // "dgn", /*"jt"*/ // "shp", // "stp","step" ]; // 资源中心支持上传的格式 export const ASSET_UPLOAD_SUPPORT_TYPE = { 'Model': ['glb','gltf','fbx','obj'], 'Material': ['zip'], 'Texture': ['png','jpg','jpeg','webp'], 'Billboard': ['png','jpg','jpeg','webp','svg'], 'HDR': ['hdr','exr'], } // 需要转换的BIM模型格式 export const NEED_CONVERT_BIM_MODEL = ["rvt", "rfa"]; // 支持的图纸文件类型 export const DRAWING_SUPPORT_TYPE = ["dwg", "dxf", "png", "jpg", "jpeg"]; // 需要转换的图纸格式 export const NEED_CONVERT_DRAWING = ["dwg"]; // 支持的文档类型 export const DOC_SUPPORT_TYPE = ["doc","docx","xls","xlsx","xlsm","ppt",'pptx',"pdf","txt"]; export const SCENE_TYPE = [ {label:"城市",value:"城市"}, {label:"园区",value:"园区"}, {label:"工厂",value:"工厂"}, {label:"楼宇",value:"楼宇"}, {label:"设备",value:"设备"}, {label:"其他",value:"其他"}, ] // 截屏占位图 export const DefaultScreenshot = "/static/images/placeholder/截屏占位图.png"; ================================================ FILE: packages/editor/src/utils/common/dateTime.ts ================================================ export function dateTimeFormat(fmt) { let myDate = new Date(); let o = { "M+": myDate.getMonth() + 1, //月份 "d+": myDate.getDate(), //日 "H+": myDate.getHours(), //小时 "m+": myDate.getMinutes(), //分 "s+": myDate.getSeconds(), //秒 "q+": Math.floor((myDate.getMonth() + 3) / 3), //季度 "S": myDate.getMilliseconds() //毫秒 }; if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (myDate.getFullYear() + "").substr(4 - RegExp.$1.length)); for (let k in o) if (new RegExp("(" + k + ")").test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length))); return fmt; } ================================================ FILE: packages/editor/src/utils/common/file.ts ================================================ import {pow1024} from "./utils"; /** * 通过Fetch API下载文件/图片(支持跨域/Blob处理) * @param {string} url 文件地址 * @param {string} filename 保存的文件名 */ export async function downloadWithFetch(url:string, filename:string = "") { try { const response = await fetch(url); if (!response.ok) throw new Error('The network is responding abnormally'); const blob = await response.blob(); const blobUrl = URL.createObjectURL(blob); if(!filename){ filename = url.substring(url.lastIndexOf("/") + 1); } const link = document.createElement('a'); link.href = blobUrl; link.download = filename; document.body.appendChild(link); link.click(); // 清理内存 setTimeout(() => { URL.revokeObjectURL(blobUrl); document.body.removeChild(link); }, 100); } catch (error) { console.error('下载失败:', error); } } /** * 文件大小 字节转换单位 * @param {number} size * @returns {string|*} */ export const filterSize = (size:number): string | any => { if (!size) return '0B'; if (size < pow1024(1)) return size + ' B'; if (size < pow1024(2)) return (size / pow1024(1)).toFixed(2) + ' KB'; if (size < pow1024(3)) return (size / pow1024(2)).toFixed(2) + ' MB'; if (size < pow1024(4)) return (size / pow1024(3)).toFixed(2) + ' GB'; return (size / pow1024(4)).toFixed(2) + ' TB' } export const getServiceStaticFile = (url:string):string => { if(!url) return ""; if(url.startsWith("blob:") || url.startsWith("data:") || url.startsWith("http:") || url.startsWith("https:") || url.startsWith('/file/static')) return url; return `/file/static` + (url[0] === '/' ? '' : '/') + url; } ================================================ FILE: packages/editor/src/utils/common/init.ts ================================================ import "../signals/signalRegister"; window.URL = window.URL || window.webkitURL; // @ts-ignore window.BlobBuilder = window.BlobBuilder || window.WebKitBlobBuilder || window.MozBlobBuilder; Number.prototype.format = function () { return this.toString().replace(/(\d)(?=(\d{3})+(?!\d))/g, '$1,'); }; /*添加自执行函数,为rem设置自适应的根DOM字体大小,1920px下默认1rem = 20px */ (function () { change(); function change() { const w = document.documentElement.clientWidth > 1280 ? document.documentElement.clientWidth : 1280; document.documentElement.style.fontSize = w * 20 / 1920 + "px"; } /*监听窗口大小的改变*/ window.addEventListener("resize", change, false); })() //屏蔽选中 document.onselectstart = function (event) { if (window.event) { event = window.event; } try { const the = event.srcElement; // @ts-ignore return (the.tagName === "INPUT" && the.type.toLowerCase() === "text") || the.tagName === "TEXTAREA"; } catch (e) { return false; } } // 禁止浏览器默认右键菜单 document.addEventListener('contextmenu', (event) => { event.preventDefault(); }); // 保存原始方法 const originalStringify = JSON.stringify; const originalParse = JSON.parse; // 重写 JSON.stringify JSON.stringify = function (value: any, ...args: any[]) { return originalStringify(value, function (key, val) { // 如果有自定义的 replacer 函数,先执行它 if (args[0]) { val = args[0](key, val); } if (val === Infinity) return "Infinity"; if (val === -Infinity) return "-Infinity"; return val; }, args[1]); // args[1] 是 space 参数 }; // 重写 JSON.parse JSON.parse = function (text: string, reviver?: (key: any, value: any) => any) { return originalParse(text, function (key, value) { // 处理 Infinity if (value === "Infinity") return Infinity; if (value === "-Infinity") return -Infinity; // 如果有自定义的 reviver 函数,执行它 return reviver ? reviver(key, value) : value; }); }; ================================================ FILE: packages/editor/src/utils/common/render.ts ================================================ import { h } from 'vue'; import type { Component } from 'vue' import { NIcon } from 'naive-ui'; /** * 渲染icon * @param icon vicons * @returns */ export function renderIcon(icon: Component) { return () => h(NIcon, null, { default: () => h(icon) }); } ================================================ FILE: packages/editor/src/utils/common/scenes.ts ================================================ import * as THREE from 'three'; import { OrbitControls } from 'three/examples/jsm/Addons'; import { App } from "@astral3d/engine"; export interface IModel extends THREE.Object3D { metadata: Object; } export function getMaterialName(material) { if (Array.isArray(material)) { const array: any = []; for (let i = 0; i < material.length; i++) { array.push(material[i].name); } return array.join(','); } return material.name; } export function getObjectType(object) { if (object.isScene) return 'Scene'; if (object.isCamera) return 'Camera'; if (object.isLight) return 'Light'; if (object.isMesh) return 'Mesh'; if (object.isLine) return 'Line'; if (object.isPoints) return 'Points'; return 'Object3D'; } /** * 获取当前选中模型 path */ export function getSelectedModelPath() { let pathArr: string[] = []; function getPath(obj) { if (obj.parent) { pathArr.unshift(obj.parent.name); getPath(obj.parent); } } getPath(App.selected); return pathArr.join(' !! '); } // 屏幕坐标转世界坐标 export function screenToWorld(x: number, y: number) { const vector = new THREE.Vector3(); vector.set( (x / window.viewer.container.offsetWidth) * 2 - 1, -(y / window.viewer.container.offsetHeight) * 2 + 1, 0.5 ); vector.unproject(App.camera); const dir = vector.sub(App.camera.position).normalize(); const distance = -App.camera.position.z / dir.z; return App.camera.position.clone().add(dir.multiplyScalar(distance)); } export function reBufferGeometryUv(geometry: THREE.BufferGeometry) { const uv = geometry.attributes.uv; if (!uv) return; // 获取u和v的范围 const box = { min: new THREE.Vector2(Infinity, Infinity), max: new THREE.Vector2(-Infinity, -Infinity), }; for (let i = 0; i < uv.count; i++) { const u = uv.getX(i); const v = uv.getY(i); box.min.x = Math.min(box.min.x, u); box.min.y = Math.min(box.min.y, v); box.max.x = Math.max(box.max.x, u); box.max.y = Math.max(box.max.y, v); } // 计算偏移量和范围 const offset = new THREE.Vector2(0 - box.min.x, 0 - box.min.y); const range = new THREE.Vector2(box.max.x - box.min.x, box.max.y - box.min.y); // 遍历顶点,修改uv for (let i = 0; i < uv.count; i++) { const u = uv.getX(i); const v = uv.getY(i); // 计算新的u和v const newU = (u + offset.x) / range.x; const newV = (v + offset.y) / range.y; // 写入新的uv uv.setXY(i, newU, newV); } // 通知three.js更新 uv.needsUpdate = true; } export function setUserData(object: IModel, key: string, value: any) { // key按照.分割,设置到object的userData中 const keys = key.split('.'); let obj = object.userData; for (let i = 0; i < keys.length - 1; i++) { const k = keys[i]; if (!obj[k]) { obj[k] = {}; } obj = obj[k]; } obj[keys[keys.length - 1]] = value; } export function setMetaData(object: IModel, key: string, value: any) { // key按照.分割,设置到object的metaData中 const keys = key.split('.'); let metadata = object.metadata; if (!metadata) { metadata = {}; object.metadata = metadata; } for (let i = 0; i < keys.length - 1; i++) { const k = keys[i]; if (!metadata[k]) { metadata[k] = {}; } metadata = metadata[k]; } metadata[keys[keys.length - 1]] = value; } /** * 创建基础场景(会用于轻量展示) */ export function createBasicScene(container: HTMLElement) { let scene = new THREE.Scene(); let camera = new THREE.PerspectiveCamera(60, container.offsetWidth / container.offsetHeight, 0.1, 1000); camera.position.set(0, 2, 8); camera.lookAt(0, 0, 0); let renderer = new THREE.WebGLRenderer({ antialias: true, powerPreference: "high-performance" }); renderer.setSize(container.offsetWidth, container.offsetHeight); renderer.setClearColor(0x0c1126); renderer.setPixelRatio(window.devicePixelRatio); container.appendChild(renderer.domElement); // 添加光源 const ambientLight = new THREE.AmbientLight(0x404040, 2); scene.add(ambientLight); const directionalLight = new THREE.DirectionalLight(0xffffff, 1); directionalLight.position.set(5, 5, 5); scene.add(directionalLight); const backLight = new THREE.DirectionalLight(0xffffff, 0.5); backLight.position.set(-5, -5, -5); scene.add(backLight); // 初始化轨道控制器 let controls = new OrbitControls(camera, renderer.domElement); controls.enableDamping = true; controls.dampingFactor = 0.05; controls.screenSpacePanning = true; // @ts-ignore监听视窗变化(节流) let timer: NodeJS.Timeout | null = null; let resizeObserver = new ResizeObserver(() => { if (timer) return; timer = setTimeout(function () { camera.aspect = container.offsetWidth / container.offsetHeight; camera.updateProjectionMatrix(); renderer.setSize(container.offsetWidth, container.offsetHeight); timer = null; }, 16) }); resizeObserver.observe(container); const animate = () => { controls.update(); renderer.render(scene, camera); } renderer.setAnimationLoop(animate); const dispose = () => { resizeObserver.unobserve(container); resizeObserver.disconnect(); // @ts-ignore resizeObserver = null; renderer.setAnimationLoop(null); renderer.dispose(); // @ts-ignore renderer = null; controls.dispose(); // @ts-ignore controls = null; camera.clear(); // @ts-ignore camera = null; scene.clear(); // @ts-ignore scene = null; } return { scene, camera, renderer, controls, dispose } } ================================================ FILE: packages/editor/src/utils/common/utils.ts ================================================ import type { TreeOption } from 'naive-ui'; import {BASE64_TYPES} from "@astral3d/engine"; import {t} from "@/language"; // 替换字符 export function escapeHTML(html:string) { if (typeof html !== "string") return html; return html .replace(/&/g, '&') .replace(/"/g, '"') .replace(/'/g, ''') .replace(//g, '>'); } /** * naive UI树结构寻找对应节点位置及所处父节点 * @param node 目标节点 * @param nodes 树数据 */ export function findSiblingsAndIndex(node: TreeOption, nodes?: TreeOption[]): [TreeOption[], number] | [null, null] { if (!nodes) return [null, null]; for (let i = 0; i < nodes.length; ++i) { const siblingNode = nodes[i]; if (siblingNode.key === node.key) return [nodes, i]; const [siblings, index] = findSiblingsAndIndex(node, siblingNode.children) if (siblings && index !== null) return [siblings, index]; } return [null, null]; } // base64 转 File export function base64ToFile(dataurl, filename) { let arr = dataurl.split(','); let mime = arr[0].match(/:(.*?);/)[1]; let bstr = atob(arr[1]); let n = bstr.length; let u8arr = new Uint8Array(n); while (n--) { u8arr[n] = bstr.charCodeAt(n); } return new File([u8arr], `${filename}.${BASE64_TYPES[arr[0]]}`, {type: mime}); } /** * 求次幂 */ export function pow1024(num) { return Math.pow(1024, num) } /** * 动态添加script * @param src * @param async */ export function loadScript(src:string,async:boolean = true){ return new Promise((resolve,reject) => { const script = document.createElement('script'); script.src = src; script.async = async; script.onload = () => { resolve(""); }; script.onerror = () => { reject(`${src} 加载失败!`); }; document.head.appendChild(script); }) } /** * 复制到剪切板 * @param text */ export function copyToClipboard(text: string) { return new Promise((resolve, reject) => { // 检查浏览器是否支持 Clipboard API if (!navigator.clipboard) { reject(t("prompt['Your browser does not support the Clipboard API, please use another browser']")); return; } // 使用 Clipboard API 复制文本 navigator.clipboard.writeText(text).then(() => { resolve(t("prompt['Successfully copied to clipboard']")); }).catch(err => { resolve(`${t("prompt['Failed to copy to clipboard']")}: ${err}`); }); }) } /** * 获取rem的px值 */ export function remToPxNumber(rem: number): number { const f = parseFloat(document.documentElement.style.fontSize); return f * rem; } /** * 动态注入脚本,并监听执行完毕事件 * @param {string} src */ export function injectJS(src) { return new Promise(resolve => { // Warn:script.src !== script.getAttribute('src') const loaded = Array.from(document.scripts).some(it => it.getAttribute('src') === src); if (loaded) { resolve(src); return; } const script = document.createElement('script'); script.src = src; document.head.insertBefore(script, document.head.firstElementChild); script.addEventListener('load', () => { resolve(src); }); }) } /** * 在树形结构中查找指定 key 的节点(深度优先搜索) */ export function findTreeNode(tree:TreeOption[], targetKey:string | number):TreeOption | null { // 检查树数据是否为数组 if (!Array.isArray(tree)) return null; for (const node of tree) { // 检查当前节点是否匹配 if (node.key === targetKey) { return node; } // 递归搜索子节点 if (node.children && node.children.length > 0) { const result = findTreeNode(node.children, targetKey); if (result) return result; } } return null; } /** * 使用深度优先遍历(DFS)递归算法,为没有子节点的节点添加 isLeaf: true 属性 */ export function markLeafNodes(tree:TreeOption[]) { if (!tree || !Array.isArray(tree)) return; for (const node of tree) { // 如果有children数组且不为空 if (node.children && node.children.length > 0) { // 递归处理子节点 markLeafNodes(node.children); } // 如果children不存在,或者存在但为空数组 else { // 设置 isLeaf 属性(不覆盖已存在的值) if (!node.hasOwnProperty('isLeaf')) { node.isLeaf = true; } } } } ================================================ FILE: packages/editor/src/utils/common/verify.ts ================================================ /** * 用于验证的工具函数集合 */ import {t} from "@/language"; export function formItemIsFile(_, value:File | null){ return new Promise((resolve, reject) => { // 判断value是否是File类型 if (!value || !(value instanceof File)) { reject(Error(t("prompt.The entry can not be null"))) } else { resolve() } }) } export function formItemNotNil(_, value:any){ return new Promise((resolve, reject) => { if (value === null || value === undefined) { reject(Error(t("prompt.The entry can not be null"))) } else { resolve() } }) } ================================================ FILE: packages/editor/src/utils/drawing/drawRect.ts ================================================ import {App,Utils,Hooks} from "@astral3d/engine"; import {getSelectedModelPath} from "@/utils/common/scenes"; let canvasMouseWheelFn: EventListenerOrEventListenerObject; /** * 画布中绘制矩形 * @param {HTMLCanvasElement} canvas 画布对象 * @param {Array} list 矩形数组 **/ export class DrawRect { private canvas: HTMLCanvasElement; private parentElement: HTMLDivElement; private ctx: CanvasRenderingContext2D; private readonly list: Array; // 当前选中的矩形下标 public selectRectIndex: number = -1; // 当前鼠标经过的矩形的下标 private hoverRectIndex: number = -1; private sX: number = 0; private sY: number = 0; // 鼠标按下时的clientXY private downClientX: number = 0; private downClientY: number = 0; private zoom: number = 100; // 鼠标左键是否按下 private leftMouseDown: boolean = false; // 画布是否处于拖动状态 private isCanvasDrag: boolean = false; // 画布拖动后的偏移量 private canvasOffsetX: number = 0; private canvasOffsetY: number = 0; // rect是否处于拖动状态 private isDrag: boolean = false; private isDraged: boolean = false; //杂项 public rectColor: string = "#15FF00"; public rectSelectColor: string = "#ff0000"; // 拖动的rect的初始数据 private dragRect: IDrawingMark = {x: 0, y: 0, w: 0, h: 0,color:this.rectColor}; constructor(canvas: HTMLCanvasElement, parentElement: HTMLDivElement) { this.canvas = canvas; this.parentElement = parentElement; this.list = App.project.getKey("drawing.markList"); this.ctx = this.canvas.getContext('2d') as CanvasRenderingContext2D; this.ctx.strokeStyle = this.rectColor; this.ctx.lineWidth = 1; this.canvas.onmousemove = Utils.throttle(this.onmousemove.bind(this), 10); this.canvas.onmousedown = this.onmousedown.bind(this); this.canvas.onmouseup = this.onmouseup.bind(this); this.canvas.onmouseleave = this.onmouseleave.bind(this); canvasMouseWheelFn = this.onmousewheel.bind(this); this.canvas.addEventListener("mousewheel", canvasMouseWheelFn); const drawingDiv = this.parentElement.parentElement as HTMLDivElement; drawingDiv.onmousedown = this.onParentMouseDown.bind(this); drawingDiv.onmousemove = Utils.throttle(this.onParentMouseMove.bind(this),16); drawingDiv.onmouseup = this.onParentMouseUp.bind(this); drawingDiv.onmouseleave = this.onParentMouseLeave.bind(this); this.init(); } init(){ // 若list长度不为0, 则显示已标记框 if (this.list.length !== 0) { this.list.forEach((value: IDrawingMark) => { this.ctx.beginPath(); this.ctx.strokeStyle = value.color as string; // 遍历绘制所有标记框 this.ctx.rect(value.x, value.y, value.w, value.h); this.ctx.stroke(); }); } } /** * 准备开始画矩形标记框 * @public */ public addRect() { this.canvas.style.cursor = "crosshair"; // 进入绘制流程 App.project.setKey("drawing.isDrawingRect",true); } /* * 退出绘制矩形标记框 */ public exitRect() { this.canvas.style.cursor = "default"; // 退出绘制流程 App.project.setKey("drawing.isDrawingRect",false); } /** * 删除rect */ public deleteRect() { this.list.splice(this.selectRectIndex, 1); this.hoverRectIndex = -1; this.selectRectIndex = -1; this.reDrawCanvas(); } /** * 图纸复位 */ public canvasReset(){ this.parentElement.style.left = "0px"; this.parentElement.style.top = "0px"; this.canvasOffsetX = 0; this.canvasOffsetY = 0; this.canvas.style.transform = "scale(1)"; this.zoom = 100; } /** * 修改当前绘制的颜色 * @param {string} color 颜色 */ public setRectColor(color: string) { this.rectColor = color; this.list[this.selectRectIndex].color = color; this.reDrawCanvas(true); setTimeout(()=>{ this.reDrawCanvas(false); },800) } get selectRectColor(){ return this.list[this.selectRectIndex]?.color; } /** * 高亮选中的模型对应的rect * @param {string} uuid modelUuid */ public selectRect(uuid: string) { this.selectRectIndex = -1; this.list.forEach((item, index) => { if (item.modelUuid !== uuid) return; this.selectRectIndex = index; if(this.isDrag) return; const translate = (zoom:number) => { setTimeout(() => { // 移动画布,使对应标记居中放大显示(按当前缩放比) const x = item.x + item.w / 2; const y = item.y + item.h / 2; this.parentElement.style.transition = "all .6s"; this.canvasOffsetX = (-x + this.canvas.offsetWidth / 2) * zoom; this.canvasOffsetY = (-y + this.canvas.offsetHeight / 2) * zoom; this.parentElement.style.left = this.canvasOffsetX + "px"; this.parentElement.style.top = this.canvasOffsetY + "px"; setTimeout(() => { this.parentElement.style.transition = "none"; this.canvas.style.transition = "transform 16ms"; }, 600) }, 200) } // 对应标记框如果宽高最大值小于100px,则显示为100像素大小 const max = Math.max(item.w, item.h); if (max < 100) { const z = 100 * 100 / max; this.zoom = z < 50 ? 50 : (z > 800 ? 800 : z); }else{ this.zoom = 100; } const zoom = this.zoom / 100; this.canvas.style.transition = "transform .35s"; this.canvas.style.transform = "scale(" + zoom + ")"; translate(zoom); }) this.reDrawCanvas(); App.project.setKey("drawing.selectedRectIndex",this.selectRectIndex); } private onmousemove(em) { if(em.button !== 0) return; if (this.isCanvasDrag)return; // 如果处于绘制流程中 if (App.project.getKey("drawing.isDrawingRect")) { this.canvas.style.cursor = "crosshair"; if (this.leftMouseDown) { // 正在绘制矩形 // 如果是处于修改矩形流程中 if (this.selectRectIndex !== -1) { this.list.splice(this.selectRectIndex, 1, { x: this.sX, y: this.sY, w: em.offsetX - this.sX, h: em.offsetY - this.sY, color:this.list[this.selectRectIndex].color, modelUuid: this.list[this.selectRectIndex].modelUuid, modelPath: this.list[this.selectRectIndex].modelPath }); this.reDrawCanvas(); } else { this.reDrawCanvas(); // 设置边框为虚线 this.ctx.beginPath(); this.ctx.setLineDash([8, 4]); this.ctx.rect(this.sX, this.sY, em.offsetX - this.sX, em.offsetY - this.sY); this.ctx.stroke(); } } return; } /** rect 正在拖动 **/ if (this.isDrag) { this.list.splice(this.selectRectIndex, 1, { x: this.dragRect.x + (em.offsetX - this.sX), y: this.dragRect.y + (em.offsetY - this.sY), w: this.dragRect.w, h: this.dragRect.h, color:this.dragRect.color, modelUuid: this.dragRect.modelUuid, modelPath: this.dragRect.modelPath }); this.reDrawCanvas(); this.isDraged = true; return; } this.sX = em.offsetX; this.sY = em.offsetY; /** 界面上无矩形 **/ if (this.list.length === 0) return; /** 界面上有矩形 **/ this.list.forEach((item, index) => { let path = new Path2D(); if (this.selectRectIndex === index) { path.rect(item.x - 4, item.y - 4, item.w + 8, item.h + 8); } else { path.rect(item.x, item.y, item.w, item.h); } if (this.ctx.isPointInPath(path, em.offsetX, em.offsetY)) { // 鼠标在矩形内 this.hoverRectIndex = index; this.canvas.style.cursor = "pointer"; } else { // 如果鼠标不在之前所在的矩形内,清除hoverRectIndex if (this.hoverRectIndex === index) { this.hoverRectIndex = -1; } this.canvas.style.cursor = "default"; } this.reDrawCanvas(); }); } /** * 鼠标按下时 * @param ed * @private */ private onmousedown(ed) { ed.stopPropagation(); if(ed.button !== 0) return; this.isDraged = false; this.leftMouseDown = true; // 记录按下位置(矩形绘制起始位置) this.sX = ed.offsetX; this.sY = ed.offsetY; this.downClientX = ed.clientX; this.downClientY = ed.clientY; // 如果处于绘制流程中 if (App.project.getKey("drawing.isDrawingRect")) return; /** 如果鼠标按下时鼠标在矩形内 **/ if (this.hoverRectIndex !== -1) { // 还未选中过模型 或者 此时点击的不是之前选中的模型 if (this.selectRectIndex === -1 || this.hoverRectIndex !== this.selectRectIndex) { // 选中矩形 this.hoverRectIndex this.selectRectIndex = this.hoverRectIndex; } this.handleMouseDown(ed.offsetX, ed.offsetY); } else { this.selectRectIndex = -1; // 如果鼠标按下时鼠标不在矩形内,拖动画布 this.isCanvasDrag = true; } App.project.setKey("drawing.selectedRectIndex",this.selectRectIndex); this.reDrawCanvas(); } private handleMouseDown(offsetX, offsetY) { const selectRect = this.list[this.selectRectIndex]; // 判断鼠标点击的是四个角(缩放)还是其他区域(拖动) const x = offsetX - selectRect.x; const y = offsetY - selectRect.y; if (x < 5 && y < 5) { // 左上角 this.sX = selectRect.x + selectRect.w; this.sY = selectRect.y + selectRect.h; App.project.setKey("drawing.isDrawingRect",true); } else if (x > this.list[this.selectRectIndex].w - 5 && y < 5) { // 右上角 this.sX = selectRect.x; this.sY = selectRect.y + selectRect.h; App.project.setKey("drawing.isDrawingRect",true); } else if (x < 10 && y > this.list[this.selectRectIndex].h - 5) { // 左下角 this.sX = selectRect.x + selectRect.w; this.sY = selectRect.y; App.project.setKey("drawing.isDrawingRect",true); } else if (x > this.list[this.selectRectIndex].w - 5 && y > this.list[this.selectRectIndex].h - 5) { // 右下角 this.sX = selectRect.x; this.sY = selectRect.y; App.project.setKey("drawing.isDrawingRect",true); } else { // 拖动 this.canvas.style.cursor = "move"; this.dragRect = selectRect; this.isDrag = true; // 三维场景定位模型 if(selectRect.modelUuid){ const model = App.getObjectByUuid(selectRect.modelUuid); Hooks.useDispatchSignal("objectFocused",model); Hooks.useDispatchSignal("objectSelected",model); } } } /** * 鼠标抬起时 * @private */ private onmouseup(eu) { if(eu.button !== 0) return; this.leftMouseDown = false; this.isCanvasDrag = false; // 如果处于绘制流程中 if (App.project.getKey("drawing.isDrawingRect")) { // 判断是新建矩形还是修改 if (this.selectRectIndex === -1) { const w = eu.offsetX - this.sX; const h = eu.offsetY - this.sY; // 矩形w,h都大于5时才添加 if (Math.abs(w) > 5 && Math.abs(h) > 5) { // 全取左上角点x,y,使得w,h为正数 const rectItem = { x: w > 0 ? this.sX : this.sX + w, y: h > 0 ? this.sY : this.sY + h, w: Math.abs(w), h: Math.abs(h), color:this.rectColor, modelUuid: App.selected?.uuid, modelPath:getSelectedModelPath(), } this.list.push(rectItem); Hooks.useDispatchSignal("drawingMarkDone","add",rectItem); } } else { const rectItem = { // 全取左上角点x,y,使得w,h为正数 x: this.list[this.selectRectIndex].w > 0 ? this.sX : this.sX + this.list[this.selectRectIndex].w, y: this.list[this.selectRectIndex].h > 0 ? this.sY : this.sY + this.list[this.selectRectIndex].h, w: Math.abs(this.list[this.selectRectIndex].w), h: Math.abs(this.list[this.selectRectIndex].h), color:this.list[this.selectRectIndex].color, modelUuid: this.list[this.selectRectIndex].modelUuid, modelPath: this.list[this.selectRectIndex].modelPath, } this.list.splice(this.selectRectIndex, 1, rectItem); Hooks.useDispatchSignal("drawingMarkDone","update",rectItem); } this.reDrawCanvas(); //退出绘制流 this.exitRect(); return; } // 如果处于拖动流程中 if (this.isDrag) { if(this.isDraged){ Hooks.useDispatchSignal("drawingMarkDone","update",this.list[this.selectRectIndex]); } this.isDrag = false; this.canvas.style.cursor = "default"; return; } } private onmouseleave(){ this.isDrag = false; } private onmousewheel(event){ /** * 获取当前页面的缩放比 * 若未设置zoom缩放比,则为默认100%,即1,原图大小 */ /* event.wheelDelta 获取滚轮滚动值并将滚动值叠加给缩放比zoom wheelDelta统一为±120,其中正数表示为向上滚动,负数表示向下滚动 */ let z = event.wheelDelta; if (Math.abs(event.wheelDelta) > 120) { z = event.wheelDelta > 0 ? 120 : -120; } const lastZoom = this.zoom; this.zoom += z / 12; /* 最小范围 和 最大范围 的图片缩放尺度 */ if ( this.zoom >= 50 && this.zoom <= 800) { this.canvas.style.transform = "scale(" + this.zoom / 100 + ")"; }else{ this.zoom = lastZoom; } return false; } /** * 重新绘制画布 */ reDrawCanvas(showSelectLineColor = false) { this.ctx.setLineDash([8, 0]); this.ctx.clearRect(0, 0, this.canvas.width, this.canvas.height); this.list.forEach((value, index) => { if (index === this.selectRectIndex) { const r = value.w > 10 ? 4 : 2; /* 绘制选中部分 */ /* 绘制方框 */ this.ctx.beginPath(); this.ctx.strokeStyle = showSelectLineColor ? value.color as string : this.rectSelectColor; this.ctx.rect(value.x, value.y, value.w, value.h); this.ctx.fillStyle = 'RGBA(102,102,102,0.2)' this.ctx.fillRect(value.x, value.y, value.w, value.h); this.ctx.stroke(); /* 绘制四个角的点 */ this.ctx.beginPath(); this.ctx.strokeStyle = this.rectSelectColor; this.ctx.arc(value.x, value.y, r, 0, Math.PI * 2) this.ctx.fillStyle = this.rectSelectColor; this.ctx.fill();// 画起点实心圆 this.ctx.stroke(); this.ctx.beginPath(); this.ctx.arc(value.x, value.y + value.h, r, 0, Math.PI * 2); this.ctx.fillStyle = this.rectSelectColor; this.ctx.fill();// 画起点纵向实心圆 this.ctx.stroke(); this.ctx.beginPath(); this.ctx.arc(value.x + value.w, value.y + value.h, r, 0, Math.PI * 2); this.ctx.fillStyle = this.rectSelectColor; this.ctx.fill();// 画起点横向实心圆 this.ctx.stroke(); this.ctx.beginPath(); this.ctx.arc(value.x + value.w, value.y, r, 0, Math.PI * 2); this.ctx.fillStyle = this.rectSelectColor; this.ctx.fill();// 画终点实心圆 this.ctx.stroke(); } else if (this.hoverRectIndex === index) { /* 绘制鼠标经过部分 */ this.ctx.beginPath(); this.ctx.strokeStyle = value.color as string; this.ctx.rect(value.x, value.y, value.w, value.h); this.ctx.fillStyle = 'RGBA(102,102,102,0.2)'; this.ctx.fillRect(value.x, value.y, value.w, value.h); this.ctx.stroke(); } else { /* 绘制未选中部分 */ this.ctx.beginPath(); this.ctx.strokeStyle = value.color as string; this.ctx.rect(value.x, value.y, value.w, value.h); this.ctx.stroke(); } }); App.project.setKey("drawing.markList",this.list); } /* 父级相关事件监听 */ private onParentMouseDown(e){ this.downClientX = e.clientX; this.downClientY = e.clientY; this.isCanvasDrag = true; } private onParentMouseUp(){ this.isCanvasDrag = false; this.canvasOffsetX = this.parentElement.offsetLeft; this.canvasOffsetY = this.parentElement.offsetTop; } private onParentMouseMove(e){ /** 画布正在拖动 **/ if (this.isCanvasDrag) { this.parentElement.style.left = this.canvasOffsetX + e.clientX - this.downClientX + "px"; this.parentElement.style.top = this.canvasOffsetY + e.clientY - this.downClientY + "px"; return; } } private onParentMouseLeave(){ this.isCanvasDrag = false; } dispose() { this.canvas.onmousemove = null; this.canvas.onmousedown = null; this.canvas.onmouseup = null; this.canvas.onmouseleave = null; this.canvas.removeEventListener("mousewheel", canvasMouseWheelFn); const drawingDiv = this.parentElement.parentElement as HTMLDivElement; drawingDiv.onmousedown = null; drawingDiv.onmousemove = null; drawingDiv.onmouseup = null; drawingDiv.onmouseleave = null; } } ================================================ FILE: packages/editor/src/utils/preview/menuOperation.ts ================================================ /** * @author ErSan * @email mlt131220@163.com * @date 2024/8/22 * @description 预览菜单操作 */ import { useFullscreen } from '@vueuse/core' import { IPreviewOperation, usePreviewOperationStoreWithOut } from "@/store/modules/previewOperation"; import * as THREE from 'three'; import { App,Hooks,ClippedEdgesBox,Measure,MeasureMode,ModelExplode,Roaming,MiniMap } from "@astral3d/engine"; import { t } from "@/language"; const operationStore = usePreviewOperationStoreWithOut(); const { enter:enterFullscreen,exit:exitFullscreen } = useFullscreen(); let roamPdFn, pointerlockFn; export class MenuOperation { // 初始化控制器状态 static InitControlsState: string = "{}"; // 开始漫游前的相机位置 static lastRoadCameraPos = new THREE.Vector3(); // 开始漫游前的相机目标位置 static lastRoadCameraTarget = new THREE.Vector3(); // 模型爆炸专用图层 static explodeLayer = 10; // 当前爆炸的模型 static explodeModel:THREE.Object3D | null = null; // 剖切盒子 static _clippedEdgesBox:ClippedEdgesBox | null = null; // 测量类 static _measure:Measure | null = null; // 爆炸类 static _explode:ModelExplode | null = null; // 漫游类 static _roaming:Roaming | null = null; // 小地图 static _miniMap:MiniMap | null = null; static Init(key: string) { if (MenuOperation[key]) { MenuOperation[key](); } else { window.$message?.warning("相关模块正在开发中...") } } static get ClippedEdgesBox(){ if(!MenuOperation._clippedEdgesBox){ MenuOperation._clippedEdgesBox = new ClippedEdgesBox(window.viewer); } return MenuOperation._clippedEdgesBox; } static get Measure():Measure{ if(!MenuOperation._measure){ MenuOperation._measure = new Measure(window.viewer,MeasureMode.Distance); MenuOperation._measure.addEventListener("complete",() => { if(!MenuOperation._measure) return; // 激活清除测量按钮 if (!MenuOperation._measure.isClose && MenuOperation._measure.measureGroup.children.length > 0) { (<{ [key: string]: IPreviewOperation }>operationStore.menuList.measure.children).clearMeasure.disabled = false; } }) } return MenuOperation._measure; } static get Explode():ModelExplode{ if(!MenuOperation._explode){ MenuOperation._explode = new ModelExplode(); } return MenuOperation._explode; } static get Roaming():Roaming{ if(!MenuOperation._roaming){ MenuOperation._roaming = new Roaming(window.viewer); } return MenuOperation._roaming; } static get MiniMap():MiniMap{ if(!MenuOperation._miniMap){ MenuOperation._miniMap = new MiniMap(window.viewer,{ mapSize: 100, mapRenderSize: 350, followTarget: window.viewer.camera, isShow: false, }); } return MenuOperation._miniMap; } /** * 还原视角 */ static toHome() { if (MenuOperation.InitControlsState === "{}") { window.$message?.warning("缺失初始视角信息") return; } window.viewer.modules.controls.fromJSON(MenuOperation.InitControlsState, true); } /** * 自动旋转 */ static autoRotate() { operationStore.menuList.autoRotate.active = !operationStore.menuList.autoRotate.active; } /** * 剖切 */ static cutting() { operationStore.menuList.cutting.active = !operationStore.menuList.cutting.active; if (operationStore.menuList.cutting.active) { MenuOperation.ClippedEdgesBox.open(); } else { MenuOperation.ClippedEdgesBox.close(); } } // 测距 static distance() { // 上一个测量也许未完成 if (!MenuOperation.Measure.isCompleted) { MenuOperation.Measure.complete(); } window.$message?.info(t("prompt['Left click to confirm the drawing point, and right click to complete the drawing.']"),{ duration: 1500 }) MenuOperation.Measure.mode = MeasureMode.Distance; MenuOperation.Measure.open(); operationStore.menuList.measure.active = true; } // 测角度 static angle() { if (!MenuOperation.Measure.isCompleted) { MenuOperation.Measure.complete(); } window.$message?.info(t("prompt['Left click to confirm the drawing point, and right click to complete the drawing.']"),{ duration: 1500 }) MenuOperation.Measure.mode = MeasureMode.Angle; MenuOperation.Measure.open(); operationStore.menuList.measure.active = true; } // 测面积 static area() { if (!MenuOperation.Measure.isCompleted) { MenuOperation.Measure.complete(); } window.$message?.info(t("prompt['Left click to confirm the drawing point, and right click to complete the drawing.']"),{ duration: 1500 }) MenuOperation.Measure.mode = MeasureMode.Area; MenuOperation.Measure.open(); operationStore.menuList.measure.active = true; } // 清除测量结果 static clearMeasure() { (<{ [key: string]: IPreviewOperation }>operationStore.menuList.measure.children).clearMeasure.disabled = true; MenuOperation.Measure.clear(); operationStore.menuList.measure.active = false; } // 爆炸 static explode(){ if(!App.selected && !MenuOperation.explodeModel){ window.$message?.warning(t("prompt['No object selected.']")); return; } operationStore.menuList.explode.active = !operationStore.menuList.explode.active; if (operationStore.menuList.explode.active){ if(!App.selected) return; App.selected.traverse(obj => obj.layers.set(MenuOperation.explodeLayer)); window.viewer.camera.layers.set(MenuOperation.explodeLayer); MenuOperation.Explode.explodeModel(App.selected,operationStore.explodeScalar); MenuOperation.explodeModel = App.selected; }else{ if(!MenuOperation.explodeModel) return; MenuOperation.explodeModel.traverse(obj => obj.layers.set(0)); window.viewer.camera.layers.set(0); MenuOperation.Explode.restore(); MenuOperation.explodeModel = null; } } // 漫游 static roaming() { if (!MenuOperation.Roaming) return; operationStore.menuList.roaming.active = !operationStore.menuList.roaming.active; if (operationStore.menuList.roaming.active) { MenuOperation.enterRoaming(); } else { MenuOperation.leaveRoaming(); } } // 选点进入漫游 static enterRoaming() { window.$message?.info(t("preview.Please select initial position")); const canvas = window.viewer.renderer.domElement; const handlePointerDown = (e: MouseEvent) => { const raycaster = new THREE.Raycaster(); const x = e.offsetX; const y = e.offsetY; const mouse = new THREE.Vector2(); mouse.x = (x / canvas.offsetWidth) * 2 - 1; mouse.y = -(y / canvas.offsetHeight) * 2 + 1; raycaster.setFromCamera(mouse, window.viewer.camera); raycaster.firstHitOnly = true; const intersectObjects:THREE.Object3D[] = [MenuOperation.Roaming.group]; let intersects = raycaster.intersectObjects(intersectObjects, true) || []; if (intersects && intersects.length > 0) { const intersect = intersects[0]; // 锁定鼠标指针 window.viewer.modules.controls.lockPointer(); canvas.removeEventListener("pointerdown", roamPdFn); roamPdFn = undefined; window.viewer.modules.controls.getTarget(MenuOperation.lastRoadCameraTarget); window.viewer.modules.controls.getPosition(MenuOperation.lastRoadCameraPos); const point = new THREE.Vector3(intersect.point.x, intersect.point.y + 2, intersect.point.z); MenuOperation.Roaming.playerInitPos.copy(point); MenuOperation.Roaming.startRoaming(); // 第三人称 window.viewer.modules.controls.maxPolarAngle = Math.PI / 2; window.viewer.modules.controls.minDistance = 0.8; window.viewer.modules.controls.maxDistance = 0.8; window.viewer.modules.controls.distance = 0.8; Hooks.useDispatchSignal("sceneGraphChanged"); } return null; } pointerlockFn = () => { if (document.pointerLockElement) { // console.log("指针被锁定到:", document.pointerLockElement); } else { // console.log("指针锁定状态现已解锁"); MenuOperation.roaming(); } } // 监听鼠标锁定取消 document.addEventListener("pointerlockchange", pointerlockFn); // 监听选取初始位置 roamPdFn = handlePointerDown.bind(this); canvas.addEventListener("pointerdown", roamPdFn); } // 退出漫游 static leaveRoaming() { MenuOperation.Roaming.exitRoaming(MenuOperation.lastRoadCameraPos,MenuOperation.lastRoadCameraTarget); if (roamPdFn) { window.viewer.renderer.domElement.removeEventListener("pointerdown", roamPdFn); roamPdFn = null; } if (pointerlockFn) { document.removeEventListener("pointerlockchange", pointerlockFn); pointerlockFn = null; } } // 小地图 static miniMap() { if (MenuOperation.MiniMap.isShow) { operationStore.menuList.miniMap.active = false; MenuOperation.MiniMap.close(); } else { operationStore.menuList.miniMap.active = true; MenuOperation.MiniMap.open(); } } // 设置 static settings(){ operationStore.menuList.settings.active = !operationStore.menuList.settings.active; } static fullscreen() { operationStore.menuList.fullscreen.show = false; operationStore.menuList.exitFullscreen.show = true; enterFullscreen(); } static exitFullscreen() { operationStore.menuList.fullscreen.show = true; operationStore.menuList.exitFullscreen.show = false; exitFullscreen(); } } ================================================ FILE: packages/editor/src/utils/service/error.ts ================================================ import type { AxiosError, AxiosResponse } from 'axios'; import { DEFAULT_REQUEST_ERROR_CODE, DEFAULT_REQUEST_ERROR_MSG, ERROR_STATUS, NETWORK_ERROR_CODE, NETWORK_ERROR_MSG, REQUEST_TIMEOUT_CODE, REQUEST_TIMEOUT_MSG } from '@/config/service'; import { showErrorMsg } from './msg'; import {Service} from "../../../types/network"; type ErrorStatus = keyof typeof ERROR_STATUS; /** * 策略模式 * @param actions 每一种可能执行的操作 */ export function exeStrategyActions(actions: Common.StrategyAction[]) { actions.some(item => { const [flag, action] = item; if (flag) { action(); } return flag; }); } /** * 处理axios请求失败的错误 * @param axiosError - 错误 */ export function handleAxiosError(axiosError: AxiosError) { const error: Service.RequestError = { type: 'axios', code: DEFAULT_REQUEST_ERROR_CODE, msg: DEFAULT_REQUEST_ERROR_MSG }; const actions: Common.StrategyAction[] = [ [ // 网路错误 !window.navigator.onLine || axiosError.message === 'Network Error', () => { Object.assign(error, { code: NETWORK_ERROR_CODE, msg: NETWORK_ERROR_MSG }); } ], [ // 超时错误 axiosError.code === REQUEST_TIMEOUT_CODE && axiosError.message.includes('timeout'), () => { Object.assign(error, { code: REQUEST_TIMEOUT_CODE, msg: REQUEST_TIMEOUT_MSG }); } ], [ // 请求不成功的错误 Boolean(axiosError.response), () => { const errorCode: ErrorStatus = (axiosError.response?.status as ErrorStatus) || 'DEFAULT'; // @ts-ignore const msg = axiosError.response?.data?.message || ERROR_STATUS[errorCode] || DEFAULT_REQUEST_ERROR_MSG; Object.assign(error, { code: errorCode, msg }); } ] ]; exeStrategyActions(actions); showErrorMsg(error); return error; } /** * 处理请求成功后的错误 * @param response - 请求的响应 */ export function handleResponseError(response: AxiosResponse) { const error: Service.RequestError = { type: 'axios', code: DEFAULT_REQUEST_ERROR_CODE, msg: DEFAULT_REQUEST_ERROR_MSG }; if (!window.navigator.onLine) { // 网路错误 Object.assign(error, { code: NETWORK_ERROR_CODE, msg: NETWORK_ERROR_MSG }); } else { // 请求成功的状态码非200的错误 const errorCode: ErrorStatus = response.status as ErrorStatus; const msg = response.data.message || ERROR_STATUS[errorCode] || DEFAULT_REQUEST_ERROR_MSG; Object.assign(error, { type: 'http', code: errorCode, msg }); } showErrorMsg(error); return error; } /** * 处理后端返回的错误(业务错误) * @param backendResult - 后端接口的响应数据 */ export function handleBackendError(backendResult: Record, config: Service.BackendResultConfig) { const { codeKey, msgKey } = config; const error: Service.RequestError = { type: 'backend', code: backendResult[codeKey], msg: backendResult[msgKey] }; showErrorMsg(error); return error; } ================================================ FILE: packages/editor/src/utils/service/fetchController.ts ================================================ /** * 创建一个handlerFetch * * @param limit 并发控制 * @param timeout 超时设 * @return function 返回一个函数 */ export function fetchController (limit:number, timeout:number | boolean) { limit = limit || 1; timeout = timeout || false; let count = 0, pool:any = []; return function (url:string, options?:any) { // 通过AbortController 控制 取消fetch 请求 let controller = new AbortController(); let signal = controller.signal; // 判断是否需要超时 let isTimeout = options && options.timeout || timeout; // 控制请求超时 let timeoutPromise = () => { return new Promise((reject) => { setTimeout(() => { // resolve('请求超时'); reject('请求超时'); controller.abort(); }, options?.timeout || timeout) }) } // 返回fetch 本身 let taskPromise = () => new Promise((resolve, reject) => { fetch(url, { signal, ...options }).then(res => { resolve(res); }).catch(err => { reject(err) }) }); // 通过Promise.race可以控制超时,并在访问结果中 去继续调用等待池中的请求 let task = () => (isTimeout ? Promise.race([timeoutPromise(), taskPromise()]) : taskPromise()) .then((res) => { options.onSuccess && options.onSuccess(res) next(); }) .catch((err) => { options.onError && options.onError(err) next(); }); // 定一个next 控制等待队列中的请求继续并发调用 let next = () => { // 每执行一次next count - 1,然后比较当前的count 与 limit // 如果小于limit 循环执行limit-count 次 count--; if (count < limit && pool.length) { let n = limit - count; for (let i = 0; i < n; i++) { let curTask:any = pool.shift(); curTask(); ++count; } } }; // 比较count与limit 大于等于limit的推入等待队列 小于limit的 count + 1,并执行fetch请求 if (count >= limit) { pool.push(task); } else { ++count; task(); } } } ================================================ FILE: packages/editor/src/utils/service/handler.ts ================================================ import {Service} from "~/network"; /** 统一失败和成功的请求结果的数据类型 */ export async function handleServiceResult(error: Service.RequestError | null, data: any, other?: any) { if (error) { const fail: Service.FailedResult = { error, data: null }; return fail; } const success: any = { error: null, data, other }; return success; } /** 请求结果的适配器:用于接收适配器函数和请求结果 */ export function adapter( adapterFun: T, ...args: Service.MultiRequestResult ): Service.RequestResult> { let result: Service.RequestResult | undefined; const hasError = args.some((item:any) => { const flag = Boolean(item.error); if (flag) { result = { error: item.error, data: null }; } return flag; }); if (!hasError) { const adapterFunArgs = args.map(item => item.data); result = { error: null, data: adapterFun(...adapterFunArgs) }; } return result!; } ================================================ FILE: packages/editor/src/utils/service/index.ts ================================================ export * from './error'; export * from './handler'; ================================================ FILE: packages/editor/src/utils/service/msg.ts ================================================ import { ERROR_MSG_DURATION, NO_ERROR_MSG_CODE } from '@/config/service'; /** 错误消息栈,防止同一错误同时出现 */ const errorMsgStack = new Map([]); function addErrorMsg(error: Service.RequestError) { errorMsgStack.set(error.code, error.msg); } function removeErrorMsg(error: Service.RequestError) { errorMsgStack.delete(error.code); } function hasErrorMsg(error: Service.RequestError) { return errorMsgStack.has(error.code); } /** * 显示错误信息 * @param error */ export function showErrorMsg(error: Service.RequestError) { if (!error.msg || NO_ERROR_MSG_CODE.includes(error.code) || hasErrorMsg(error)) return; addErrorMsg(error); window.console.warn(error.code, error.msg); window.$message?.error(error.msg, { duration: ERROR_MSG_DURATION }); setTimeout(() => { removeErrorMsg(error); }, ERROR_MSG_DURATION); } ================================================ FILE: packages/editor/src/utils/signals/signalRegister.ts ================================================ import {Utils} from '@astral3d/engine'; /** * 其他不便分类的 */ const otherSignal = [ // 编辑脚本 "editScript", // 场景树变化 "sceneTreeChange", ] Utils.SignalsRegisterFn([ ...otherSignal ]) ================================================ FILE: packages/editor/src/utils/storage/config.ts ================================================ import type {Storage} from "@astral3d/engine"; export default class Config { private static storage: Storage; public static config: { [s: string]: any }; static initialize(storage: Storage) { Config.storage = storage; Config.config = { // 场景界面与扩展面板分割大小 sceneSplitSize: 0.8, // 图纸绘制区 cad:{ bgColor:0x000000 } }; for (let key of Object.keys(Config.config)) { Config.storage.getConfigItem(key).then(_value => { if (_value === null) { Config.storage.setConfigItem(key, Config.config[key]); } else { let newVal = _value; // 有可能会在代码开发过程中增加新的配置项 if (Config.config[key] && typeof Config.config[key] === "object") { newVal = Object.assign({}, Config.config[key], _value); } Config.config[key] = newVal; if (newVal !== _value) { Config.storage.setConfigItem(key, newVal); } } }).catch(() => { Config.storage.setConfigItem(key, Config.config[key]); }); } } static getKey(key: string) { return Config.config[key]; } static setKey(...args: any[]) { // key, value, key, value ... for (let i = 0, l = args.length; i < l; i += 2) { const key = args[i]; const value = args[i + 1]; Config.config[key] = value; Config.storage.setConfigItem(key, value); } } static clear() { for (let key of Object.keys(Config.config)) { Config.storage.removeConfigItem(key); } } } // 初始化配置 export const initializeConfig = (storage) => Config.initialize(storage); ================================================ FILE: packages/editor/src/views/editor/components/extraPane/ExtraPane.vue ================================================ ================================================ FILE: packages/editor/src/views/editor/components/extraPane/animation/Animation.vue ================================================ ================================================ FILE: packages/editor/src/views/editor/components/extraPane/animation/AnimationList.vue ================================================ ================================================ FILE: packages/editor/src/views/editor/components/extraPane/animation/index.vue ================================================ ================================================ FILE: packages/editor/src/views/editor/components/extraPane/log/index.vue ================================================ ================================================ FILE: packages/editor/src/views/editor/components/extraPane/resource/builtin/Billboard.vue ================================================ ================================================ FILE: packages/editor/src/views/editor/components/extraPane/resource/builtin/Cameras.vue ================================================ ================================================ FILE: packages/editor/src/views/editor/components/extraPane/resource/builtin/HtmlPanel.vue ================================================ ================================================ FILE: packages/editor/src/views/editor/components/extraPane/resource/builtin/Lights.vue ================================================ ================================================ FILE: packages/editor/src/views/editor/components/extraPane/resource/builtin/Materials.vue ================================================ ================================================ FILE: packages/editor/src/views/editor/components/extraPane/resource/builtin/Models.vue ================================================ ================================================ FILE: packages/editor/src/views/editor/components/extraPane/resource/builtin/Particles.vue ================================================ ================================================ FILE: packages/editor/src/views/editor/components/extraPane/resource/builtin/components/ModelCard.vue ================================================ ================================================ FILE: packages/editor/src/views/editor/components/extraPane/resource/builtin/index.vue ================================================ ================================================ FILE: packages/editor/src/views/editor/components/extraPane/resource/index.vue ================================================ ================================================ FILE: packages/editor/src/views/editor/components/extraPane/resource/public/AssetsList.vue ================================================ ================================================ FILE: packages/editor/src/views/editor/components/extraPane/resource/public/index.vue ================================================ ================================================ FILE: packages/editor/src/views/editor/index.vue ================================================ ================================================ FILE: packages/editor/src/views/editor/layouts/Assets.vue ================================================ ================================================ FILE: packages/editor/src/views/editor/layouts/Footer.vue ================================================ ================================================ FILE: packages/editor/src/views/editor/layouts/Header.vue ================================================ ================================================ FILE: packages/editor/src/views/editor/layouts/Scene.vue ================================================ ================================================ FILE: packages/editor/src/views/editor/layouts/Sidebar.vue ================================================ ================================================ FILE: packages/editor/src/views/editor/layouts/assets/CadLibrary.vue ================================================ ================================================ FILE: packages/editor/src/views/editor/layouts/assets/cadLibrary/CadUploadDialog.vue ================================================ ================================================ FILE: packages/editor/src/views/editor/layouts/index.ts ================================================ import Header from "./Header.vue"; import Footer from "./Footer.vue"; import Scene from "./Scene.vue"; // import Cesium from "./Cesium.vue"; import Sidebar from "./Sidebar.vue"; import Assets from "./Assets.vue"; export { Header, Footer, Scene,Sidebar,Assets }; ================================================ FILE: packages/editor/src/views/editor/layouts/sidebar/SidebarAnimations.vue ================================================ ================================================ FILE: packages/editor/src/views/editor/layouts/sidebar/SidebarBillboard.vue ================================================ ================================================ FILE: packages/editor/src/views/editor/layouts/sidebar/SidebarDrawing.vue ================================================ ================================================ FILE: packages/editor/src/views/editor/layouts/sidebar/SidebarEffect.vue ================================================ ================================================ FILE: packages/editor/src/views/editor/layouts/sidebar/SidebarGeometry.vue ================================================ ================================================ FILE: packages/editor/src/views/editor/layouts/sidebar/SidebarHistory.vue ================================================ ================================================ FILE: packages/editor/src/views/editor/layouts/sidebar/SidebarHtmlPanel.vue ================================================ ================================================ FILE: packages/editor/src/views/editor/layouts/sidebar/SidebarMaterial.vue ================================================ ================================================ FILE: packages/editor/src/views/editor/layouts/sidebar/SidebarObject.vue ================================================ ================================================ FILE: packages/editor/src/views/editor/layouts/sidebar/SidebarParticle.vue ================================================ ================================================ FILE: packages/editor/src/views/editor/layouts/sidebar/SidebarRenderer.vue ================================================ ================================================ FILE: packages/editor/src/views/editor/layouts/sidebar/SidebarScene.vue ================================================ ================================================ FILE: packages/editor/src/views/editor/layouts/sidebar/SidebarScript.vue ================================================ ================================================ FILE: packages/editor/src/views/editor/layouts/sidebar/SidebarWeather.vue ================================================ ================================================ FILE: packages/editor/src/views/editor/layouts/sidebar/billboard/Sidebar.Billboard.Image.vue ================================================ ================================================ FILE: packages/editor/src/views/editor/layouts/sidebar/billboard/Sidebar.Billboard.Text.vue ================================================ ================================================ FILE: packages/editor/src/views/editor/layouts/sidebar/effect/Sidebar.Effect.Afterimage.vue ================================================ ================================================ FILE: packages/editor/src/views/editor/layouts/sidebar/effect/Sidebar.Effect.Bokeh.vue ================================================ ================================================ FILE: packages/editor/src/views/editor/layouts/sidebar/effect/Sidebar.Effect.FXAA.vue ================================================ ================================================ FILE: packages/editor/src/views/editor/layouts/sidebar/effect/Sidebar.Effect.Halftone.vue ================================================ ================================================ FILE: packages/editor/src/views/editor/layouts/sidebar/effect/Sidebar.Effect.LUT.vue ================================================ ================================================ FILE: packages/editor/src/views/editor/layouts/sidebar/effect/Sidebar.Effect.Outline.vue ================================================ ================================================ FILE: packages/editor/src/views/editor/layouts/sidebar/effect/Sidebar.Effect.Pixelate.vue ================================================ ================================================ FILE: packages/editor/src/views/editor/layouts/sidebar/effect/Sidebar.Effect.UnrealBloom.vue ================================================ ================================================ FILE: packages/editor/src/views/editor/layouts/sidebar/geometry/Sidebar.Geometry.BoxGeometry.vue ================================================ ================================================ FILE: packages/editor/src/views/editor/layouts/sidebar/geometry/Sidebar.Geometry.BufferGeometry.vue ================================================ ================================================ FILE: packages/editor/src/views/editor/layouts/sidebar/geometry/Sidebar.Geometry.CapsuleGeometry.vue ================================================ ================================================ FILE: packages/editor/src/views/editor/layouts/sidebar/geometry/Sidebar.Geometry.CircleGeometry.vue ================================================ ================================================ FILE: packages/editor/src/views/editor/layouts/sidebar/geometry/Sidebar.Geometry.CylinderGeometry.vue ================================================ ================================================ FILE: packages/editor/src/views/editor/layouts/sidebar/geometry/Sidebar.Geometry.DodecahedronGeometry.vue ================================================ ================================================ FILE: packages/editor/src/views/editor/layouts/sidebar/geometry/Sidebar.Geometry.ExtrudeGeometry.vue ================================================ ================================================ FILE: packages/editor/src/views/editor/layouts/sidebar/geometry/Sidebar.Geometry.IcosahedronGeometry.vue ================================================ ================================================ FILE: packages/editor/src/views/editor/layouts/sidebar/geometry/Sidebar.Geometry.LatheGeometry.vue ================================================ ================================================ FILE: packages/editor/src/views/editor/layouts/sidebar/geometry/Sidebar.Geometry.Modifiers.vue ================================================ ================================================ FILE: packages/editor/src/views/editor/layouts/sidebar/geometry/Sidebar.Geometry.OctahedronGeometry.vue ================================================ ================================================ FILE: packages/editor/src/views/editor/layouts/sidebar/geometry/Sidebar.Geometry.PlaneGeometry.vue ================================================ ================================================ FILE: packages/editor/src/views/editor/layouts/sidebar/geometry/Sidebar.Geometry.RingGeometry.vue ================================================ ================================================ FILE: packages/editor/src/views/editor/layouts/sidebar/geometry/Sidebar.Geometry.ShapeGeometry.vue ================================================ ================================================ FILE: packages/editor/src/views/editor/layouts/sidebar/geometry/Sidebar.Geometry.SphereGeometry.vue ================================================ ================================================ FILE: packages/editor/src/views/editor/layouts/sidebar/geometry/Sidebar.Geometry.TeapotGeometry.vue ================================================ ================================================ FILE: packages/editor/src/views/editor/layouts/sidebar/geometry/Sidebar.Geometry.TetrahedronGeometry.vue ================================================ ================================================ FILE: packages/editor/src/views/editor/layouts/sidebar/geometry/Sidebar.Geometry.TorusGeometry.vue ================================================ ================================================ FILE: packages/editor/src/views/editor/layouts/sidebar/geometry/Sidebar.Geometry.TorusKnotGeometry.vue ================================================ ================================================ FILE: packages/editor/src/views/editor/layouts/sidebar/geometry/Sidebar.Geometry.TubeGeometry.vue ================================================ ================================================ FILE: packages/editor/src/views/editor/layouts/sidebar/material/SceneAllMaterials.vue ================================================ ================================================ FILE: packages/editor/src/views/editor/layouts/sidebar/material/SidebarMaterialBooleanProperty.vue ================================================ ================================================ FILE: packages/editor/src/views/editor/layouts/sidebar/material/SidebarMaterialColorProperty.vue ================================================ ================================================ FILE: packages/editor/src/views/editor/layouts/sidebar/material/SidebarMaterialConstantProperty.vue ================================================ ================================================ FILE: packages/editor/src/views/editor/layouts/sidebar/material/SidebarMaterialMapProperty.vue ================================================ ================================================ FILE: packages/editor/src/views/editor/layouts/sidebar/material/SidebarMaterialNumberProperty.vue ================================================ ================================================ FILE: packages/editor/src/views/editor/layouts/sidebar/material/SidebarMaterialProgram.vue ================================================ ================================================ FILE: packages/editor/src/views/editor/layouts/sidebar/material/SidebarMaterialRangeValueProperty.vue ================================================ ================================================ FILE: packages/editor/src/views/editor/layouts/sidebar/particle/Sidebar.Particle.Attribute.vue ================================================ ================================================ FILE: packages/editor/src/views/editor/layouts/sidebar/particle/Sidebar.Particle.Behaviour.vue ================================================ ================================================ FILE: packages/editor/src/views/editor/layouts/sidebar/particle/Sidebar.Particle.Initializer.vue ================================================ ================================================ FILE: packages/editor/src/views/editor/layouts/sidebar/particle/initializer/Sidebar.Particle.Initializer.Body.vue ================================================ ================================================ FILE: packages/editor/src/views/editor/layouts/sidebar/particle/initializer/Sidebar.Particle.Initializer.Velocity.vue ================================================ ================================================ FILE: packages/editor/src/views/editor/layouts/sidebar/particle/initializer/Sidebar.Particle.Initializer.Zones.vue ================================================ ================================================ FILE: packages/editor/src/views/editor/layouts/sidebar/renderer/Sidebar.Renderer.CSM.vue ================================================ ================================================ FILE: packages/editor/src/views/editor/layouts/sidebar/scene/Sidebar.Scene.ProjectSetting.vue ================================================ ================================================ FILE: packages/editor/src/views/editor/layouts/sidebar/scene/Sidebar.Scene.Setting.vue ================================================ ================================================ FILE: packages/editor/src/views/editor/layouts/sidebar/weather/Sidebar.Weather.Fog.vue ================================================ ================================================ FILE: packages/editor/src/views/editor/layouts/sidebar/weather/Sidebar.Weather.Rain.vue ================================================ ================================================ FILE: packages/editor/src/views/editor/layouts/sidebar/weather/Sidebar.Weather.Snow.vue ================================================ ================================================ FILE: packages/editor/src/views/editor/layouts/viewport/BIMProperties.vue ================================================ ================================================ FILE: packages/editor/src/views/editor/layouts/viewport/IFCProperties.vue ================================================ ================================================ FILE: packages/editor/src/views/editor/layouts/viewport/Toolbar.vue ================================================ ================================================ FILE: packages/editor/src/views/editor/layouts/viewport/Viewport.vue ================================================ ================================================ FILE: packages/editor/src/views/editor/layouts/viewport/ViewportCamera.vue ================================================ ================================================ FILE: packages/editor/src/views/editor/layouts/viewport/ViewportInfo.vue ================================================ ================================================ FILE: packages/editor/src/views/editor/layouts/viewport/ViewportShading.vue ================================================ ================================================ FILE: packages/editor/src/views/home/assetsCenter/AssetsList.vue ================================================ ================================================ FILE: packages/editor/src/views/home/assetsCenter/UploadAsset.vue ================================================ ================================================ FILE: packages/editor/src/views/home/assetsCenter/components/AssetDetail.vue ================================================ ================================================ FILE: packages/editor/src/views/home/assetsCenter/components/CardAction.vue ================================================ ================================================ FILE: packages/editor/src/views/home/components/HeaderCarousel.vue ================================================ ================================================ FILE: packages/editor/src/views/home/components/SidebarBottomInfo.vue ================================================ ================================================ FILE: packages/editor/src/views/home/components/SidebarTopInfo.vue ================================================ ================================================ FILE: packages/editor/src/views/home/container/AssetsCenter.vue ================================================ ================================================ FILE: packages/editor/src/views/home/container/DataCenter.vue ================================================ ================================================ FILE: packages/editor/src/views/home/container/Project.vue ================================================ ================================================ FILE: packages/editor/src/views/home/container/SettingCenter.vue ================================================ ================================================ FILE: packages/editor/src/views/home/index.vue ================================================ ================================================ FILE: packages/editor/src/views/home/project/MyProject.vue ================================================ ================================================ FILE: packages/editor/src/views/home/project/SharedProject.vue ================================================ ================================================ FILE: packages/editor/src/views/home/project/components/CardAction.vue ================================================ ================================================ FILE: packages/editor/src/views/home/project/components/CreateProject.vue ================================================ ================================================ FILE: packages/editor/src/views/home/project/components/ProjectDetail.vue ================================================ ================================================ FILE: packages/editor/src/views/index.vue ================================================ ================================================ FILE: packages/editor/src/views/preview/components/OperationItem.vue ================================================ ================================================ FILE: packages/editor/src/views/preview/components/Operations.vue ================================================ ================================================ FILE: packages/editor/src/views/preview/components/PreviewSceneTree.vue ================================================ ================================================ FILE: packages/editor/src/views/preview/components/operationConfigModal/AutoRotate.vue ================================================ ================================================ FILE: packages/editor/src/views/preview/components/operationConfigModal/ModelExplode.vue ================================================ ================================================ FILE: packages/editor/src/views/preview/components/operationConfigModal/index.vue ================================================ ================================================ FILE: packages/editor/src/views/preview/index.vue ================================================ ================================================ FILE: packages/editor/tsconfig.json ================================================ { "compilerOptions": { "useDefineForClassFields": true, "target": "esnext", "module": "esnext", "moduleResolution": "node", "strict": true, "forceConsistentCasingInFileNames": true, "allowSyntheticDefaultImports": true, "strictFunctionTypes": false, "jsx": "preserve", "baseUrl": ".", "allowJs": true, "sourceMap": false, "esModuleInterop": true, "resolveJsonModule": true, "noUnusedLocals": true, "noUnusedParameters": true, "experimentalDecorators": true, "lib": ["dom", "esnext"], "types": ["vite/client"], "typeRoots": ["./node_modules/@types/", "./types"], "noImplicitAny": false, "skipLibCheck": true, "paths": { "~/*": [ "types/*" ], "@/*": [ "src/*" ] }, "emitDeclarationOnly": true, // 只输出声明文件(ts 产物) "declaration": true, // 自动生成声明文件 "declarationDir": "types", // 声明文件生成的目录 }, "include": [ "src/**/*.ts", "src/**/*.d.ts", "src/**/*.tsx", "src/**/*.vue", "types/*.d.ts", "types/**/*.d.ts", "build/**/*.ts", "public/sdk/**/*.d.ts" ], "exclude": ["node_modules", "dist"] } ================================================ FILE: packages/editor/types/assets.d.ts ================================================ declare namespace IAssets { type SupportType = 'Model' | 'Material' | 'Texture' | 'Billboard' | 'HDR'; interface MainCategory { key: IAssets.SupportType; label:string | ComputedRef; icon:any; children:IAssets.Category[]; } interface Category { id:string | number; key:string; label:string; pkey:string | null; sortNum:number; type: IAssets.SupportType; children:IAssets.Category[]; } interface Item { id?: number; name: string; type: IAssets.SupportType; category: string; categoryName?: string; thumbnail: string; size: number; tags?: string; // 标签,英文逗号分割。比如 ["含骨骼", "含动画", "静态"] file: string; // 文件地址 createTime?:string; updateTime?:string; } } ================================================ FILE: packages/editor/types/billboard.d.ts ================================================ declare namespace IBillboard { interface options { name: string; position: number[], image:{ url?:string, visible:boolean, width:number, height:number, rotate:number, margin:number, position:string, top:boolean, }, text:{ value:string, visible:boolean, fontSize:number, fontColor:string, fontFamily?:string, fontWeight:string | number, fontStyle:string, lineGap:number, padding:number, align:string, baseline:string, strokeWidth:number, strokeColor:string, fill:boolean, fillColor:string, } } } ================================================ FILE: packages/editor/types/bim.d.ts ================================================ declare interface IBIMData { id:number bimFilePath:string, bimFileSize:number, thumbnail:string, conversionDuration:number, conversionStatus :number createTime :string, fileName :string, fileSourceIp :string, gltfFilePath:string, gltfFileSize:number, } ================================================ FILE: packages/editor/types/config.d.ts ================================================ declare namespace IConfig { type Theme = 'osTheme' |'lightTheme' | 'darkTheme'; type Locale = 'zh-CN' |'en-US'; interface Color { CMYK:number[]; RGB:number[]; hex:string; hexHover?:string; hexPressed?:string; hexSuppl?:string; name:string; pinyin:string; } } ================================================ FILE: packages/editor/types/data-source.d.ts ================================================ declare namespace IDataSource { interface Item { id: string; name: string; type: string; connectionString: string; username:string; password:string; } } declare namespace IDataSet { interface Item { id: string; groupId: string; name: string; type: string; method?: "GET" | "POST"; api?: string; dataSource?: string; sql?: string; json?: string; } interface IGroup { id: string; pid?: string; name: string; children?: IGroup[]; } } ================================================ FILE: packages/editor/types/drawing.d.ts ================================================ declare interface IDrawingMark { x: number, y: number, w: number, h: number, color?:string, modelUuid?: string, modelPath?: string } declare interface IDrawingImgInfo { width: number, height: number } declare interface IDrawing { isUploaded: boolean; imgSrc:string; isCad: boolean; layers: ICad.DxfLayers; isDrawingRect:boolean; selectedRectIndex: number; markList: DrawingMark[]; imgInfo: DrawingImgInfo; } declare namespace ICad{ interface DxfLayer{ name: string, color: number, colorIndex: number, frozen: boolean, // 冻结 visible: boolean, //entities: any[] } interface DxfLayers{ [name:string]: DxfLayer } interface Data { id:number, fileName :string, thumbnail:string, filePath:string, converterFilePath:string, conversionStatus :number, createTime :string, } } ================================================ FILE: packages/editor/types/env.d.ts ================================================ /// declare module '*.vue' { import { DefineComponent } from 'vue' // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/ban-types const component: DefineComponent<{}, {}, any> export default component } ================================================ FILE: packages/editor/types/ignore.d.ts ================================================ declare module '*.js'; ================================================ FILE: packages/editor/types/naive-ui.d.ts ================================================ //naive ui 上传组件 declare interface UploadFileInfo { id: string | number, //文件 id,需要唯一 name: string, //文件名 status: string, //'pending' | 'uploading' | 'error' | 'finished' | 'removed' 上传的状态 percentage: number, //文件上传进度百分比,在 uploading 状态下生效 file?: File | null, //文件对应的浏览器 File 对象 thumbnailUrl?: string | null, //缩略图 URL type?: string | null, //MIME 类型 url?: string | null } declare interface uploadOption { file: UploadFileInfo, fileList: Array, event?: Event } ================================================ FILE: packages/editor/types/network.d.ts ================================================ declare namespace Service { /** * 请求的错误类型: * - axios: axios错误:网络错误, 请求超时, 默认的兜底错误 * - http: 请求成功,响应的http状态码非200的错误 * - backend: 请求成功,响应的http状态码为200,由后端定义的业务错误 */ type RequestErrorType = 'axios' | 'http' | 'backend'; /** 请求错误 */ interface RequestError { /** 请求服务的错误类型 */ type: RequestErrorType; /** 错误码 */ code: string | number; /** 错误信息 */ msg: string; } /** 后端接口返回的数据结构配置 */ interface BackendResultConfig { /** 表示后端请求状态码的属性字段 */ codeKey: string; /** 表示后端请求数据的属性字段 */ dataKey: string; /** 表示后端消息的属性字段 */ msgKey: string; /** 后端业务上定义的成功请求的状态 */ successCode: number | string; } /** 自定义的请求成功结果 */ interface SuccessResult { /** 请求错误 */ error: null; /** 请求数据 */ data: T; } /** 自定义的请求失败结果 */ interface FailedResult { /** 请求错误 */ error: RequestError; /** 请求数据 */ data: null; } /** 自定义的请求结果 */ type RequestResult = SuccessResult | FailedResult; /** 多个请求数据结果 */ type MultiRequestResult = T extends [infer First, ...infer Rest] ? [First] extends [any] ? Rest extends any[] ? [Service.RequestResult, ...MultiRequestResult] : [Service.RequestResult] : Rest extends any[] ? MultiRequestResult : [] : []; /** 请求结果的适配器函数 */ type ServiceAdapter = (...args: A) => T; /* 列表分页查询后端返回的数据类型 */ interface ListPageResult { current:number; items:T[]; pageSize:number; pages:number; total:number; } /* 分页查询参数类型 */ interface ListPageQueryParams { offset: number, limit: number, sortby: string, order: "desc" | "asc", query?: string, search?: string, } } declare interface WebSocketMessage{ /** * 消息类型 * bim2gltf:bim模型轻量化 | message:普通消息 | error:错误信息 * chatroom-join:加入聊天室 | chatroom-leave:离开聊天室 | chatroom-message:聊天室消息 **/ type:"bim2gltf" | "message" | "error" | "chatroom-join" | "chatroom-leave" | "chatroom-message", // 消息订阅者(uname) subscriber:string, data:T } declare interface Bim2GltfWsData{ conversionStatus:"progress" | "completed" | "failed", item:IBIMData } ================================================ FILE: packages/editor/types/particle.d.ts ================================================ declare namespace IParticle { interface Config { attr: { position: { x: number, y: number, z: number }, rotation: { x: number, y: number, z: number }, scale: number, // 总发射次数 totalEmitTimes: number; // 发射器的阻尼系数 damping: number; // 发射器的寿命(ms) life: number; // 发射粒子的数量范围 numPan: { min: number; max: number; }, // 每次粒子发射之间的时间间隔(s) timePan: { a: number; b: number; } }, init: { // 粒子质量 mass: { min: number; max: number; // 确定是否对质量值进行平均 center: boolean; isEnabled: boolean; }, // 粒子的生命值属性 life: { min: number; max: number; center: boolean; isEnabled: boolean; }, // 粒子的半径属性 radius: { width: number; height: number; center: boolean; isEnabled: boolean; }, // 粒子的旋转属性 rotation: { x: number; y: number; z: number; useEmitterRotation: boolean; isEnabled: boolean; }, // 粒子起始区域(从此区域中随机设置初始化粒子的起始位置属性) position: { isEnabled: boolean; // 可生成起始粒子的区域 zone: BoxZone | LineZone | MeshZone | PointZone | SphereZone | null }, // 粒子的速度属性 velocity: { isEnabled: boolean; velocity: RadialVelocity | PolarVelocity | VectorVelocity | null } // 粒子主体 body: { isEnabled: boolean; body: { // 粒子的形状,Sprite | Mesh | Point type: 'Sprite' | 'Mesh' | 'Point'; uuid: string; } | null; } }, // 行为类(behaviours)负责管理粒子在被发射之后的行为。也就是说,粒子在被发射出来之后,它的运动轨迹、速度变化、颜色变化等行为特征是由这些行为类来控制和管理的 behaviour: { // 随时间改变粒子颜色的行为。 color: { colorA: number | string; colorB: number | string; life: number; easing: string; isEnabled: boolean; }, // 缩放粒子的行为 scale: { scaleA: number; scaleB: number; life: number; easing: string; isEnabled: boolean; }, // 对粒子应用阿尔法转换效果的行为 alpha: { alphaA: number; alphaB: number; life: number; easing: string; isEnabled: boolean; }, // 迫使粒子沿特定轴线运动的行为,fx,fy,fz在计算时会 * 100 force: { fx: number; fy: number; fz: number; life: number; easing: string; isEnabled: boolean; }, // 旋转粒子的行为 rotate: { x: number; y: number; z: number; life: number; easing: string; isEnabled: boolean; }, // 导致粒子在三维空间中随机坐标漂移的行为 randomDrift: { driftX: number; driftY: number; driftZ: number; delay: number; life: number; easing: string; isEnabled: boolean; }, // 使粒子弹起的行为 spring: { x: number; y: number; z: number; // 弹跳系数 spring: number; // 弹跳摩擦 friction: number; life: number; easing: string; isEnabled: boolean; }, // 使粒子被吸引到目标位置的行为 attraction:{ x: number; y: number; z: number; force: number; radius: number; life: number; easing: string; isEnabled: boolean; }, // 使粒子远离与其碰撞的其他粒子的行为 collision:{ useMass: boolean; life: number; easing: string; isEnabled: boolean; } }, } interface Object3DJSON { uuid: string; type: string; name: string; // 粒子发射器JSON emitter: { // 粒子发射器配置 config: Config; // 粒子发射器系统名称 system: string; // 粒子发射器用到的初始化器类型 useInitializers: string[]; // 粒子发射器初始化器对象中用到的Sprite或Mesh JSON bodyObjectJSON: import('three').Object3DJSON | null; // 粒子发射器用到的行为类型 useBehaviours: string[]; }; children: []; } // 盒型区域 interface BoxZone { type: 'BoxZone'; depth: number; height: number; width: number; x: number; y: number; z: number; } // 线性区域 interface LineZone { type: 'LineZone'; x1: number; x2: number; y1: number; y2: number; z1: number; z2: number; } // 网格(Mesh)区域 interface MeshZone { type: 'MeshZone'; mesh: any; scale: number; } // 点区域 interface PointZone { type: 'PointZone'; x: number; y: number; z: number; } // 球区域 interface SphereZone { type: 'SphereZone'; radius: number; x: number; y: number; z: number; } // 径向速度:物体在其半径矢量方向上的速度分量 interface RadialVelocity { type: 'RadialVelocity'; radius: number; x: number; y: number; z: number; theta: number; } // 极坐标速度 interface PolarVelocity { type: 'PolarVelocity'; radius: number; theta: number; phi: number; tha: number; } // 矢量速度 interface VectorVelocity { type: 'VectorVelocity'; x: number; y: number; z: number; theta: number; } } ================================================ FILE: packages/editor/types/plugin.d.ts ================================================ declare namespace IPlugin{ interface Item { // 插件名称 name:string; // 插件icon icon:string; // 插件ems js地址 src?:string; } // 内置glTF处理器优化参数 interface GLTFHandlerOptimizeModel { instance: boolean; instanceMin: number; meshoptLevel: 'medium' | 'high'; palette: boolean; paletteMin: number; simplify: boolean; simplifyError: number; simplifyRatio: number; simplifyLockBorder: boolean; prune: boolean; pruneAttributes: boolean; pruneLeaves: boolean; pruneSolidTextures: boolean; compress: 'draco' | 'meshopt' | 'quantize' | "false"; textureCompress: 'webp' | 'avif' | 'auto' | "none"; // 暂不支持 'ktx2' textureSize: number; flatten: boolean; join: boolean; weld: boolean; } // 内置语义化点云点云重建参数 interface PointCloudReconstructorModel { // 颜色容差 colorTolerance: number; // 距离阈值 distanceThreshold: number; // 最小簇大小 minClusterSize: number; // 点云抽稀 downsampleResolution: number; } } ================================================ FILE: packages/editor/types/scene.d.ts ================================================ declare interface ISceneInfo { id: string; sceneType: string; sceneName: string; sceneIntroduction: string; sceneVersion: number; projectType: number; coverPicture: string; hasDrawing: boolean; zip: string, zipSize: string, cesiumConfig?: { token: "", mapType: 'satellite' | 'vector', map: "Amap" | "Tianditu", // 是否需要标记图 markMap: boolean, // 底图是天地图时的天地图密匙 tiandituTk: string }; } declare interface ISceneScript { "name": string, "source": string } declare interface ISceneJson { metadata: {}, camera: { "metadata": { "version": number, "type": "Object", "generator": "Object3D.toJSON" }, "object": { "uuid": string, "type": "PerspectiveCamera", "name": string, "layers": number, "matrix": number[], "up": [0 | 1, 0 | 1, 0 | 1], "fov": number, "zoom": number, "near": number, "far": number, "focus": number, "aspect": number, "filmGauge": number, "filmOffset": number } }, scene: { "uuid": string, "metadata": { "version": number, "type": "Object", "generator": "Object3D.toJSON" }, "textures": Array, "images": string[], "object": { "uuid": string, "type": "Scene", "name": string, "layers": number, "matrix": number[], "up": [0 | 1, 0 | 1, 0 | 1], "background": string, "environment": string, "backgroundRotation": [number, number, number, string], "environmentRotation": [number, number, number, string], "children": Array }, "geometries"?: Array }, scripts: { [uuid: string]: ISceneScript[] }, controls: { state: string }, totalZipNumber: number, sceneInfo: ISceneInfo, } declare interface ISceneFetchData extends ISceneInfo { exampleSceneId?: string, // 所使用的示例场景id createTime?: string, updateTime?: string, } ================================================ FILE: packages/editor/types/script.d.ts ================================================ declare namespace IScript { interface IStruct { name: string; source: string; } } ================================================ FILE: packages/editor/types/three.d.ts ================================================ /** * 扩展three.js类型声明 */ import * as THREE from 'three'; declare module 'three' { interface Object3D extends THREE.Object3D{ /* 强制解决three本身类型声明产生的各种问题 */ [key:string]:any; } } ================================================ FILE: packages/editor/types/window.d.ts ================================================ declare interface Window { $t:(s: string)=>string; $cpt:(s: string)=>ComputedRef; $loadingBar?: import("naive-ui").LoadingBarProviderInst; $dialog: import('naive-ui').DialogProviderInst; $modal: import('naive-ui').ModalProviderInst; $message?: import('naive-ui').MessageProviderInst; $notification: import('naive-ui').NotificationProviderInst; viewer: import('@astral3d/engine').Viewer; DrawViewer: any; VRButton: any; log: import('loglevel').RootLogger; // wasm glTFHandlerEncodeGLB: (u: Uint8Array, jsonStr: string) => Uint8Array glTFHandlerEncodePNG: (png: Uint8Array) => Uint8Array } declare interface Number{ format:()=>string } declare namespace Common { /** * 策略模式 * [状态, 为true时执行的回调函数] */ type StrategyAction = [boolean, () => void]; } ================================================ FILE: packages/editor/uno.config.ts ================================================ import { defineConfig, presetAttributify, presetUno, presetIcons } from 'unocss' export default defineConfig({ presets: [ presetUno(), presetAttributify(), presetIcons() ], rules: [ ['no-wrap', { 'white-space': 'nowrap' }], [/^h-calc-\[?(.*?)\]?$/, ([, size]) => ({ height: `calc(100% - ${size})` })], [/^max-h-calc-\[?(.*?)\]?$/, ([, size]) => ({ 'max-height': `calc(100% - ${size})` })], [/^w-calc-\[?(.*?)\]?$/, ([, size]) => ({ width: `calc(100% - ${size})` })], ], shortcuts: [ { 'flex-center': 'flex items-center justify-center', }, ] }) ================================================ FILE: packages/editor/vite.config.ts ================================================ import {defineConfig, loadEnv} from 'vite'; import path from 'path'; import dotenv from "dotenv"; import vue from '@vitejs/plugin-vue'; import Unocss from 'unocss/vite'; import mkcert from 'vite-plugin-mkcert'; import { viteStaticCopy } from 'vite-plugin-static-copy'; // 自动按需引入Naive UI组件 import Components from 'unplugin-vue-components/vite'; import { NaiveUiResolver } from 'unplugin-vue-components/resolvers'; import {wrapperEnv, createPlugins} from "@astral3d/build-vite-plugins"; export default defineConfig(async ({mode, command}) => { const root = process.cwd(); const env = loadEnv(mode, root); //LoadEnv读取的布尔类型是一个字符串。此函数可以转换为布尔类型 const viteEnv = wrapperEnv(env); const { VITE_PORT, VITE_PUBLIC_PATH, VITE_BUILD_COMPRESS, VITE_BUILD_COMPRESS_DELETE_ORIGIN_FILE, VITE_ENABLE_ANALYZE, VITE_ENABLE_CONFIG_GENERATE } = viteEnv; const isBuild = command === 'build'; const plugins = await createPlugins({ isBuild, root, compress: { compress: VITE_BUILD_COMPRESS, deleteOriginFile: VITE_BUILD_COMPRESS_DELETE_ORIGIN_FILE, }, enableAnalyze: VITE_ENABLE_ANALYZE, enableConfig:VITE_ENABLE_CONFIG_GENERATE }); // 为@monaco-editor定义define const define:any = { "process.env": process.env }; if (mode === "development") { dotenv.config({ path: ".env.development" }); define.global = {}; } else if (mode === "production") { dotenv.config({ path: ".env.production" }); } return { define: define, base: VITE_PUBLIC_PATH, build: { outDir: "dist", terserOptions: { compress: { // 生产环境移除console drop_console: false, }, }, sourcemap: false, // 启用 CSS 代码拆分 cssCodeSplit: true, // 禁用 gzip 压缩大小报告。压缩大型输出文件可能会很慢,因此禁用该功能可能会提高大型项目的构建性能。 reportCompressedSize: false, // 规定触发警告的 chunk 大小。(以 kbs 为单位) chunkSizeWarningLimit: 1024 * 6, // 自定义底层的 Rollup 打包配置 rollupOptions: { output: { manualChunks: { vue: ['vue', 'vue-router', 'pinia'], i18n: ['vue-i18n'], ui: ['naive-ui'], astral3d: ['@astral3d/engine'] }, } } }, root, plugins:[ vue(), Unocss(), Components({ resolvers: [NaiveUiResolver()] }), // 本地开发https证书 mkcert(), viteStaticCopy({ targets: [ { src: 'node_modules/@astral3d/engine/dist/libs/*', dest: 'assets/libs' } ], }), ...plugins ], resolve: { alias: { '~': path.resolve(__dirname, './types'), '@': path.resolve(__dirname, './src'), }, extensions: ['.mjs', '.js', '.ts', '.jsx', '.tsx', '.json', '.vue'] }, optimizeDeps: { exclude: ['keyframe-resample','draco3dgltf'], }, server: { host: true, port: VITE_PORT, //设置 server.hmr.overlay 为 false 可以禁用开发服务器错误的屏蔽 // hmr: { overlay: false }, headers: { 'Cross-Origin-Embedder-Policy': 'require-corp', 'Cross-Origin-Opener-Policy': 'same-origin', }, cors: { origin: "*", credentials: true }, proxy: { '^/api': { target: env.VITE_PROXY_URL, changeOrigin: true, rewrite: (path) => path.replace(new RegExp(`^/api`), '/api') }, "^/file/static": { target: env.VITE_PROXY_URL, changeOrigin: true, rewrite: (path) => path.replace(new RegExp(`^/file/static`), '/api/common/static') }, } } } }) ================================================ FILE: packages/sdk/.gitignore ================================================ # Logs logs *.log npm-debug.log* yarn-debug.log* yarn-error.log* pnpm-debug.log* lerna-debug.log* node_modules dist dist-ssr *.local # Editor directories and files .vscode/* !.vscode/extensions.json .idea .DS_Store *.suo *.ntvs* *.njsproj *.sln *.sw? ================================================ FILE: packages/sdk/index.html ================================================ Vite App
================================================ FILE: packages/sdk/lib/constant/enum.ts ================================================ /** * 位置 */ export const POSITION = { BOTTOM_LEFT: "bottom-left", BOTTOM: "bottom", BOTTOM_CENTER: "bottom", BOTTOM_RIGHT: "bottom-right", TOP_LEFT: "top-left", TOP: "top", TOP_CENTER: "top", TOP_RIGHT: "top-right", LEFT: "left", RIGHT: "right", CENTER: "center" } /** * FPS */ export const FPS_OPTIONS = { // 不设限 NO_UPPER_LIMIT:0, // 低帧率 LOW: 24, // 中帧率 MEDIUM: 30, // 高帧率 HIGH:60, // 超高帧率 ULTRA_HIGH: 120, } /** * 可选漫游角色 */ export const ROAMING_CHARACTERS = { JACKIE: "Jackie", WORK_MAN: "Workman", X_BOT: "X_Bot", Y_BOT: "Y_Bot", } ================================================ FILE: packages/sdk/lib/constant/index.ts ================================================ export * from './type'; export * from './enum'; ================================================ FILE: packages/sdk/lib/constant/type.ts ================================================ import * as THREE from 'three'; export const TYPED_ARRAYS = { Int8Array: Int8Array, Uint8Array: Uint8Array, Uint8ClampedArray: Uint8ClampedArray, Int16Array: Int16Array, Uint16Array: Uint16Array, Int32Array: Int32Array, Uint32Array: Uint32Array, Float32Array: Float32Array, Float64Array: Float64Array }; // base64对应的类型 export const BASE64_TYPES = { "data:image/png;base64": "png", "data:image/jpeg;base64": "jpg", "data:image/gif;base64": "gif", "data:image/x-icon;base64": "ico", "data:image/svg+xml;base64": "svg", "data:image/webp;base64": "webp", "data:audio/wav;base64": "wav", "data:audio/mpeg;base64": "mp3", "data:video/mp4;base64": "mp4", "data:video/webm;base64": "webm", "data:font/woff;base64": "woff", "data:font/woff2;base64": "woff2", "data:application/vnd.ms-fontobject;base64": "eot", "data:application/x-font-ttf;base64": "ttf", "data:application/octet-stream;base64": "ttf", "data:application/font-woff;base64": "woff", "data:application/font-woff2;base64": "woff2" } export const TEXTURE_MAPPING = { UVMapping: THREE.UVMapping, CubeReflectionMapping: THREE.CubeReflectionMapping, CubeRefractionMapping: THREE.CubeRefractionMapping, EquirectangularReflectionMapping: THREE.EquirectangularReflectionMapping, EquirectangularRefractionMapping: THREE.EquirectangularRefractionMapping, CubeUVReflectionMapping: THREE.CubeUVReflectionMapping }; export const TEXTURE_WRAPPING = { RepeatWrapping: THREE.RepeatWrapping, ClampToEdgeWrapping: THREE.ClampToEdgeWrapping, MirroredRepeatWrapping: THREE.MirroredRepeatWrapping }; export const TEXTURE_FILTER = { NearestFilter: THREE.NearestFilter, NearestMipmapNearestFilter: THREE.NearestMipmapNearestFilter, NearestMipmapLinearFilter: THREE.NearestMipmapLinearFilter, LinearFilter: THREE.LinearFilter, LinearMipmapNearestFilter: THREE.LinearMipmapNearestFilter, LinearMipmapLinearFilter: THREE.LinearMipmapLinearFilter }; ================================================ FILE: packages/sdk/lib/core/animation/AnimationManager.ts ================================================ import * as THREE from 'three'; import { useDispatchSignal } from '@/hooks'; import { escapeRegExp } from "@/utils"; import App from "@/core/app/App"; let prevActionsInUse = 0, needsUpdate = false; export class AnimationManager { // 场景中的动画混合器集合 public mixerMap: Map = new Map(); // 场景中的动画action集合 public actionMap: Map = new Map(); constructor() {} /** * 检查动画剪辑上是否已存在当前object的相应轨道,存在则返回该轨道 * @param clip 动画剪辑 * @param prop 需要检查的属性名称 * @param object 需要检查的对象 */ hasExistingTrack(clip: THREE.AnimationClip, prop: string, object: THREE.Object3D | null = null) { if (!object) { object = App.selected; if (!object) return false; } const possiblePatterns = [ // 基础属性匹配 `${escapeRegExp(object.name)}\\.${prop}(\$$.*\$$)?$`, `${escapeRegExp(object.uuid)}\\.${prop}(\$$.*\$$)?$`, // 层级结构匹配 `([^/]+/)*${escapeRegExp(object.name)}\\.${prop}(\$$.*\$$)?$`, // 材质属性匹配 `${escapeRegExp(object.name)}\\.material\\.${prop}(\$$.*\$$)?$`, `${escapeRegExp(object.uuid)}\\.material\\.${prop}(\$$.*\$$)?$`, // 骨骼动画匹配 `\\.bone\$$${escapeRegExp(object.name)}[^\$$]*\\]\\.${prop}$`, // 带命名空间的场景对象匹配 `scene:[^:]+:${escapeRegExp(object.name)}\\.${prop}$` ]; const fullPattern = new RegExp( `^(?:${possiblePatterns.join('|')})`, 'i' ); return clip.tracks.find(track => fullPattern.test(track.name)); } /** * 创建空动画对象 * @param name 动画对象名称 * @param object 绑定动画的对象 */ createEmptyAnimation(name: string, object: THREE.Object3D | null = null) { if (!object) { object = App.selected; if (!object) return; } let mixer = this.mixerMap.get(object.uuid); if (!mixer) { mixer = new THREE.AnimationMixer(object); this.mixerMap.set(object.uuid, mixer); } const clip = new THREE.AnimationClip(name, 0, []); const clipAction = mixer.clipAction(clip); // @ts-ignore object.animations.push(clipAction); this.actionMap.set(clip.uuid, clipAction); return clipAction; } /** * 重新剪辑action * @param action 动画action * @param currentTime 动画停住的时间点 * @returns action 重剪辑后的action */ reClipAction(action: THREE.AnimationAction, currentTime = 0) { const currentClip = action.getClip(); const currentObject = action.getRoot(); const currentMixer = action.getMixer(); // 重剪辑前动画是否是激活的 const isScheduled = action.isScheduled(); const actionIndex = currentObject.animations.findIndex((a: THREE.AnimationAction | THREE.AnimationClip) => (a === action || a === currentClip)); const property = { time: currentTime || action.time, timeScale: action.timeScale, clampWhenFinished: action.clampWhenFinished, loop: action.loop, weight: action.weight, enabled: action.enabled, paused: action.paused, repetitions: action.repetitions, zeroSlopeAtEnd: action.zeroSlopeAtEnd, zeroSlopeAtStart: action.zeroSlopeAtStart, }; action.stop(); currentMixer.uncacheClip(currentClip); const newAction = currentMixer.clipAction(currentClip, currentObject); // 同步属性 Object.assign(newAction, property); // @ts-ignore currentObject.animations.splice(actionIndex, 1, newAction); action = newAction; this.actionMap.set(currentClip.uuid, newAction); // 如果动作没激活过则激活一次 if (isScheduled && !action.isScheduled()) { action.play(); action.paused = true; } return action; } update(delta: number) { needsUpdate = false; this.mixerMap.forEach(mixer => { // @ts-ignore const actions = mixer.stats.actions; if (actions.inUse > 0) { prevActionsInUse = actions.inUse; mixer.update(delta); useDispatchSignal("animationMixerUpdate", mixer, delta) needsUpdate = true; } }) if (!needsUpdate && prevActionsInUse > 0) { prevActionsInUse = 0; needsUpdate = true; } return needsUpdate; } } /** * 关键帧轨道创建工厂函数 * @param name 轨道名称 * @param times 关键帧时间点数组 * @param values 关键帧值数组 * @param interpolation 插值类型 */ export const KeyframeTrackFactory = (name: string, times: number[], values: any[], interpolation: THREE.InterpolationModes = THREE.InterpolateLinear) => { // 按 '.' 分割,取最后一段(如 'nodeName.property[accessor]') const lastSegment = name.split('.').pop(); // 再按 '[' 分割,取第一部分(如 'property') const attr = lastSegment?.split('[')[0]; if (!attr) { return new THREE.KeyframeTrack(name, times, values, interpolation); } switch (attr) { case 'position': case 'rotation': case 'scale': return new THREE.VectorKeyframeTrack(name, times, values, interpolation); case 'quaternion': return new THREE.QuaternionKeyframeTrack(name, times, values, interpolation); case 'visible': // 启用 alpha 覆盖 case 'alphaToCoverage': // 是否渲染材质的颜色 case 'colorWrite': // 是否在渲染此材质时启用深度测试 case 'depthTest': // 渲染此材质是否对深度缓冲区有任何影响 case 'depthWrite': // 定义这个材质是否会被渲染器的toneMapping设置所影响 case 'toneMapped': // 定义此材质是否透明 case 'transparent': // 是否使用顶点着色 case 'vertexColors': // 大小衰减 case 'sizeAttenuation': // 平面着色 case 'flatShading': // 线框模式 case 'wireframe': return new THREE.BooleanKeyframeTrack(name, times, values); case 'color': // 高光 case 'specular': // 自发光 case 'emissive': // 光泽颜色 case 'sheenColor': // 衰减色 case 'attenuationColor': // 表示恒定混合颜色的 RGB 值 case 'blendColor': // TODO: 待补充说明 case 'groundcolor': return new THREE.ColorKeyframeTrack(name, times, values, interpolation); // 在0.0 - 1.0的范围内的浮点数,表明材质的透明度。值0.0表示完全透明,1.0表示完全不透明 case 'opacity': // 表示光源的强度 case 'intensity': // 表示恒定混合颜色的 alpha 值 case 'blendAlpha': // 设置运行alphaTest时要使用的alpha值 case 'alphaTest': // 定义将要渲染哪一面 - 正面,背面或两者 case 'side': // 摄像机视锥体垂直视野角度,从视图的底部到顶部,以角度来表示 case 'fov': // 用于立体视觉和景深效果的物体的距离 case 'focus': // 摄像机的远端面 case 'far': // 摄像机的近端面 case 'near': // 摄像机视锥体的长宽比 case 'aspect': // 获取或者设置摄像机的缩放倍数 case 'zoom': // TODO: 待补充说明 case 'distance': // 渲染顺序 case 'renderOrder': // 高光大小 case 'shininess': // 反射率 case 'reflectivity': // 粗糙度 case 'roughness': // 金属度 case 'metalness': // 清漆 case 'clearcoat': // 清漆粗糙度 case 'clearcoatRoughness': // 彩虹色 case 'iridescence': // 彩虹色折射率 case 'iridescenceIOR': // 光泽 case 'sheen': // 光泽粗糙度 case 'sheenRoughness': // 透光度 case 'transmission': // 衰减距离 case 'attenuationDistance': // 厚度 case 'thickness': // 大小 case 'size': return new THREE.NumberKeyframeTrack(name, times, values, interpolation); // 此处仅为占位说明还有 StringKeyframeTrack // case "uuid": // return new THREE.StringKeyframeTrack(name, times, values); default: return new THREE.KeyframeTrack(name, times, values, interpolation); } } ================================================ FILE: packages/sdk/lib/core/animation/TimelineTrack.ts ================================================ import * as THREE from "three"; import { Timeline, TimelineRow, TimelineModel, TimelineOptions, TimelineKeyframe, TimelineInteractionMode, TimelineKeyframeChangedEvent, TimelineClickEvent } from "@/core/libs/astral-timeline/animation-timeline"; import {useAddSignal, useDispatchSignal} from "@/hooks"; import { getParentPath,debounce, deepAssign, getNestedProperty } from "@/utils"; import { KeyframeTrackFactory } from "@/core/animation/AnimationManager"; import App from "@/core/app/App"; export interface ITimelineKeyframe extends TimelineKeyframe { data: number[] | boolean[] } export interface ITimelineRow extends TimelineRow { id: string; name: string; keyframes?: ITimelineKeyframe[]; track?: THREE.KeyframeTrack; } export interface ITimelineModel extends TimelineModel { rows: ITimelineRow[] } // 定义事件类型 type CustomEvents = { 'contextmenu': { args: TimelineClickEvent }; 'mousedown': { args: TimelineClickEvent }; }; let _aniamtionMixerUpdateFn; class TimelineTrack extends THREE.EventDispatcher { container: HTMLDivElement; outlineContainer: HTMLDivElement; timeline: Timeline; model: ITimelineModel; options: TimelineOptions; /** * 动画编辑轨道当前正在处理的(绑定的)动画 */ bindAction: THREE.AnimationAction | null = null; private resizeObserver: ResizeObserver; constructor(container: HTMLDivElement, outlineContainer: HTMLDivElement, _options: TimelineOptions) { super(); this.container = container; this.outlineContainer = outlineContainer; this.model = {rows: []} as ITimelineModel; this.options = { id: container, headerHeight: 40, font: "0.7rem sans-serif", leftMargin: 22, headerFillColor: "#00000066", fillColor: "#333333", labelsColor: "#FFFFFFCC", tickColor: "#FFFFFF4C", // 选中矩形颜色 selectionColor: "blue", zoom: 120, zoomMin: 30, zoomMax: 120, // 一步的长度,默认一步一个像素代表1000ms stepVal: 1000, rowsStyle: { height: 40, fillColor: "#252526", marginBottom: 2, // 关键帧样式 keyframesStyle: { fillColor: "#9A9A9A" }, // 组的样式。关键帧组也可以单独设置样式。 groupsStyle: { text: { label: "", isStroke: false, font: "1.5rem sans-serif", textAlign: "center", textBaseline: "top", direction: "inherit", fillColor: "#fff" } } }, // 时间轴指示器样式(竖线) timelineStyle: { marginTop: 0, fillColor: "#00ff00", strokeColor: "#00ff00", cursor: "e-resize", // 顶帽样式 capStyle: { width: 8, height: 12, fillColor: "#00ff00", capType: "rect" } }, // 关键帧组可拖动 groupsDraggable: true, // 关键帧可拖动 keyframesDraggable: true, // 用于确定要呈现的仪表“漂亮”数字的分母数组。 denominators: [1, 6] } as TimelineOptions; deepAssign(this.options, _options); this.timeline = this.init(); this.updateTrackLength(); this.initEvent(); this.resizeObserver = new ResizeObserver(this.resize.bind(this)); this.resizeObserver.observe(container); } // 当前所有关键帧中的最大值,单位为ms get _maxDuration() { let max = 0; this.model.rows.forEach((row) => { if (!row.keyframes) return; row.keyframes.forEach((kf) => { if (kf.val > max) { max = kf.val; } }); }); return max; } init() { // const dpr = window.devicePixelRatio || 1; // this.container.style.width = this.container.width / scale + 'px'; // this.container.style.height = this.container.height / scale + 'px'; const tl = new Timeline(this.options, this.model); // 可横向拖动 tl.setInteractionMode(TimelineInteractionMode.Pan); //重写方法来更改显示的单位文本,显示为 00:00 tl._formatUnitsText = (val) => { const v = Math.floor(val / 1000); const minutes = Math.floor(v / 60); const seconds = v - minutes * 60; return `${minutes.toString().padStart(2, "0")}:${seconds.toString().padStart(2, "0")}`; }; if (window.devicePixelRatio !== 1) { tl._pixelRatio = window.devicePixelRatio; const scale = 1 / tl._pixelRatio; const translate = (1 - scale) * 100 / 2 * window.devicePixelRatio; if (tl._canvas) { tl._canvas.style.transform = `scale(${scale}) translate(-${translate}%, -${translate}%)`; } } return tl; } initEvent() { this.timeline.onScroll((args) => { //滚动同步 if (this.outlineContainer) { this.outlineContainer.style.minHeight = args.scrollHeight + "px"; if (this.outlineContainer.parentElement) { this.outlineContainer.parentElement.scrollTop = args.scrollTop; } } }); // this.timeline.onScrollFinished((args) => {}); // 关键帧被改变时触发(防抖) const _keyframeChanged = debounce(this.onKeyframeChanged.bind(this), 100); this.timeline.onKeyframeChanged(_keyframeChanged); // this.timeline.onSelected((args) => {}); this.timeline.onContextMenu(async (args) => { // 禁用默认右键菜单 (args.args as MouseEvent).preventDefault(); if (args.elements.length === 0) return; this.dispatchEvent({type: "contextmenu", args: args}); }); this.timeline.onMouseDown((args) => { const e = args.args as MouseEvent; e.stopPropagation(); if (e.button === 2) return; this.dispatchEvent({type: "mousedown", args: args}); }); this.timeline.onTimeChanged((args) => { useDispatchSignal("timelineTimeChanged", args); if (!this.bindAction) return; this.bindAction.enabled = true; const _second = args.val / 1000; const duration = this.bindAction.getClip().duration; if (_second > duration) { this.bindAction.time = duration; } else { this.bindAction.time = _second; } // 如果动作没激活过则激活一次 if (!this.bindAction.isScheduled()) { this.bindAction.play(); this.bindAction.paused = true; } this.bindAction.getMixer().update(0.016); // this.bindAction.getRoot() 获取到的对象可能是editor.locked对象,需要获取正在操作的对象 if (App.selected){ useDispatchSignal("objectChanged", App.selected); useDispatchSignal("materialChanged", App.selected.material); } }); // this.timeline.onDrag((args) => {}); _aniamtionMixerUpdateFn = this.handleMixerUpdate.bind(this); useAddSignal("animationMixerUpdate", _aniamtionMixerUpdateFn) } /** * 改变时间轴长度,可视区域默认一分钟 */ updateTrackLength() { this.options.stepVal = 60 * 1000 / (this.timeline._canvasClientWidth() - (this.options.leftMargin || 30)); this.timeline.setOptions(this.options); } /** * 设置轨道行,this.model.rows 永远都只通过此方法变更 */ setRows(rows: Array) { const newRows: Array = []; rows.forEach((row) => { newRows.push(row); }); this.model.rows = newRows; this.timeline.setModel(this.model); } /** * 设置节点是否可见 * @param keys 节点id数组 * @param visible 是否可见 */ setRowIsVisible(keys: string[], visible: boolean) { this.model.rows.forEach(row => { if (keys.includes(row.id)) { row.hidden = !visible; } }) this.timeline.redraw(); } /** * 动画混合器更新渲染 * @param mixer d * @param delta */ handleMixerUpdate(mixer: THREE.AnimationMixer, delta: number) { if (!this.bindAction || !mixer || !delta) return; if (!this.bindAction.isRunning()) return; if (this.bindAction.getMixer() !== mixer) return; const fromPx = this.timeline.scrollLeft; const toPx = this.timeline.scrollLeft + this.timeline.getClientWidth(); const positionInPixels = this.timeline.valToPx(this.timeline.getTime()) + this.timeline._leftMargin(); // 如果时间轴超出界限,则滚动至时间轴位置: if (positionInPixels <= fromPx || positionInPixels >= toPx) { this.timeline.scrollLeft = positionInPixels; } this.timeline.setTime(this.bindAction.time * 1000); } /** * 删除轨道行 * @param row 轨道行 */ deleteRow(row: ITimelineRow) { const track = row.track; if (!this.bindAction || !track) return; const clip = this.bindAction.getClip(); clip.tracks.splice(clip.tracks.indexOf(track), 1); // 更新剪辑时间 clip.resetDuration(); // 重新剪辑action this.bindAction = App.animationManager.reClipAction(this.bindAction,this.timeline.getTime() / 1000) as THREE.AnimationAction; this.model.rows.splice(this.model.rows.indexOf(row), 1); // 刷新 this.timeline.redraw(); this.bindAction.getMixer().update(0.016); useDispatchSignal("sceneGraphChanged"); useDispatchSignal("timelineRowChanged", row, "remove"); } /** * 添加关键帧 * @param attr 动画属性名 ('position' | 'rotation' | 'quaternion' |'scale') */ addKeyframe(attr: string) { if (!this.bindAction || !App.selected) return; // 当前时间轴时间(秒) const currentTime = this.timeline.getTime() / 1000; const currentClip = this.bindAction.getClip(); // this.bindAction.getRoot() 获取到的对象可能是editor.locked对象,需要获取正在操作的对象 let val = getNestedProperty(App.selected,attr); const insertValue = (valueTrack: number[] | boolean[], index: number, delLength: number = 0) => { let keyData: any[]; switch (attr) { case "position": case "rotation": case "scale": keyData = [val.x, val.y, val.z]; valueTrack.splice(index, delLength, ...keyData); break; case "quaternion": keyData = [val.x, val.y, val.z, val.w]; valueTrack.splice(index, delLength, ...keyData); break; case "visible": case "fov": case "near": case "far": case "intensity": case "distance": case "renderOrder": case "material.shininess": case "material.reflectivity": case "material.roughness": case "material.metalness": case "material.clearcoat": case "material.clearcoatRoughness": case "material.iridescence": case "material.iridescenceIOR": case "material.sheen": case "material.sheenRoughness": case "material.transmission": case "material.attenuationDistance": case "material.thickness": case "material.size": case "material.opacity": case "material.alphaTest": // boolean case "material.vertexColors": case "material.sizeAttenuation": case "material.flatShading": case "material.transparent": case "material.depthTest": case "material.depthWrite": case "material.wireframe": keyData = [val]; valueTrack.splice(index, delLength, ...keyData); break; case "color": case "groundcolor": case "material.color": case "material.specular": case "material.emissive": case "material.sheenColor": case "material.attenuationColor": if(!(val instanceof THREE.Color)){ val = new THREE.Color(val); } keyData = [val.r, val.g, val.b]; valueTrack.splice(index, delLength, ...keyData); break; default: keyData = [val]; valueTrack.splice(index, delLength, ...keyData); break; } return keyData; } // 获取当前添加关键帧的模型的属性轨道 let track = App.animationManager.hasExistingTrack(currentClip, attr) as THREE.KeyframeTrack; // 如果不存在当前属性轨道,则新增轨道 if (!track) { // 先获取锁定对象到选中对象路径 let path = App.selected?.name; if (App.locked && App.selected && App.locked !== App.selected) { path = getParentPath(App.locked, App.selected); } let _times = [currentTime], _values: any[] = []; const keyData = insertValue(_values, 0); const _row: ITimelineRow = { id: `${path}.${attr}`, name: `${path}.${attr}`, keyframes: [ { val: this.timeline.getTime(), data: keyData, selected: true } ] } // 如果新建轨道默认关键帧不在0位则补0 if (currentTime !== 0) { _times.unshift(0); _values.unshift(...keyData); _row.keyframes?.unshift({ val:0, data: keyData, selected: true }) } track = KeyframeTrackFactory(`${path}.${attr}`, _times, _values); // 新增轨道 currentClip.tracks.push(track); _row.track = track; this.model.rows.push(_row) useDispatchSignal("timelineRowChanged", _row, "add"); } else { const _times: number[] = Array.from(track.times); const _values: number[] = Array.from(track.values); const dataLength = Math.floor(_values.length / _times.length); const row = this.model.rows.find(row => row.track === track) as ITimelineRow; // 判断当前时间是否已存在关键帧 let index = _times.findIndex(time => time === currentTime); let keyData; if (index !== -1) { // 更新当前时间的关键帧数据 keyData = insertValue(_values, index, dataLength); // 动画轨道UI修改关键帧值 if (row && row.keyframes) { row.keyframes.splice(index, 1, { val: this.timeline.getTime(), data: keyData, selected: true }); } } else { // 获取关键帧数据插入位置 index = _times.length; for (let i = 0; i < _times.length; i++) { if (_times[i] > currentTime) { index = i; break; } } // 插入关键帧时间 _times.splice(index, 0, currentTime); // 插入关键帧数据 keyData = insertValue(_values, index * dataLength); // 动画轨道UI添加关键帧 if (row && row.keyframes) { row.keyframes.splice(index, 0, { val: this.timeline.getTime(), data: keyData, selected: true }); } } // 创建新的关键帧轨道替换 const newTrack = KeyframeTrackFactory(track.name, _times, _values, track.getInterpolation()); currentClip.tracks.splice(currentClip.tracks.indexOf(track), 1, newTrack); row.track = newTrack; } // 更新剪辑时间 currentClip.resetDuration(); // 重新剪辑action this.bindAction = App.animationManager.reClipAction(this.bindAction,currentTime) as THREE.AnimationAction; // 刷新 this.timeline.redraw(); this.bindAction.getMixer().update(0.016); useDispatchSignal("sceneGraphChanged"); } /** * 关键帧被改变时触发(关键帧被拖动) */ onKeyframeChanged(args:TimelineKeyframeChangedEvent) { const row = args.target?.row as ITimelineRow; const track = row.track; if (!this.bindAction || !track || !row.keyframes?.length) return; const clip = this.bindAction.getClip(); // 确保完整,直接重建轨道 const _times: number[] = [], _values: any = []; row.keyframes.forEach((kf) => { _times.push(kf.val / 1000); _values.push(...kf.data); }) // 创建新的关键帧轨道替换 const newTrack = KeyframeTrackFactory(track.name, _times, _values, track.getInterpolation()); clip.tracks.splice(clip.tracks.indexOf(track), 1, newTrack); row.track = newTrack; // 更新剪辑时间 clip.resetDuration(); // 重新剪辑action this.bindAction = App.animationManager.reClipAction(this.bindAction,this.timeline.getTime() / 1000) as THREE.AnimationAction; // 刷新 this.timeline.redraw(); this.bindAction.getMixer().update(0.016); useDispatchSignal("sceneGraphChanged"); } /** * 删除选中的关键帧 */ deleteSelectedKeyframes() { if (!this.bindAction) return; const selectedRows = this.model.rows.filter(row => row.keyframes?.some(kf => kf.selected)); selectedRows.forEach(row => { if(!row.keyframes) return; // 先删除关键帧 row.keyframes = row.keyframes.filter(kf => !kf.selected); // 如果关键帧为空,则删除轨道 if (row.keyframes.length === 0) { this.deleteRow(row); return; } // @ts-ignore this.onKeyframeChanged({target:{row: row}}); }); } resize() { if (!this.timeline) return; this.timeline._handleWindowResizeEvent(); } /** * 播放action */ play() { if (!this.bindAction) return; // 不允许在播放过程中操纵时间轴(可选)。 this.timeline.setOptions({ timelineDraggable: false, groupsDraggable: false, keyframesDraggable: false, zoom: this.timeline._currentZoom }); this.bindAction.play(); this.bindAction.paused = false; } /** * 暂停/继续播放action */ pause() { if (!this.bindAction) return; if (this.bindAction.paused) { this.bindAction.paused = false; this.timeline.setOptions({ timelineDraggable: false, groupsDraggable: false, keyframesDraggable: false, zoom: this.timeline._currentZoom }); } else { this.bindAction.paused = true; this.timeline.setOptions({ timelineDraggable: true, groupsDraggable: true, keyframesDraggable: true, zoom: this.timeline._currentZoom }); } } /** * 停止播放action */ stop() { if (!this.bindAction) return; this.timeline.setOptions({ timelineDraggable: true, groupsDraggable: true, keyframesDraggable: true, zoom: this.timeline._currentZoom }); this.timeline.scrollLeft = 0; this.timeline.setTime(0); this.bindAction.stop(); } /** * 更新配置 */ setOptions(_options: TimelineOptions) { deepAssign(this.options, _options); this.timeline.setOptions(this.options); } dispose() { this.resizeObserver.disconnect(); this.timeline?.dispose(); } } export {TimelineTrack} ================================================ FILE: packages/sdk/lib/core/app/App.ts ================================================ /** * @author ErSan * @email mlt131220@163.com * @date 2025/4/22 10:16 * @description 静态类,全局场景管理 */ import * as THREE from 'three'; // 原生three的扩展 import '../expansion'; import Logger from "@/utils/log/Logger"; import { Config, Storage, Project, Selector, History as _History, Resource, CSM } from "./modules"; import { AnimationManager } from "../animation/AnimationManager"; import { useAddSignal, useDispatchSignal, useSetSignalActive } from '@/hooks'; import Loader from "@/core/loader/Loader.ts"; import { AddScriptCommand, RemoveScriptCommand } from "@/core/commands/Commands.ts"; import Viewer from "@/core/viewer/Viewer.ts"; const _DEFAULT_CAMERA = new THREE.PerspectiveCamera(45, 1, 0.01, 100 * 1000); _DEFAULT_CAMERA.name = "默认相机"; _DEFAULT_CAMERA.position.set(0, 5, 10); _DEFAULT_CAMERA.lookAt(new THREE.Vector3()); export class App { /** * 默认场景 */ public scene: THREE.Scene = new THREE.Scene(); /** * 辅助场景 */ public sceneHelpers: THREE.Scene = new THREE.Scene(); /** * 场景默认相机 */ public camera: THREE.PerspectiveCamera = _DEFAULT_CAMERA.clone(); /** * 当前视口正在使用的相机 */ public viewportCamera: THREE.Camera = this.camera; /** * 当前视口渲染模式 */ public viewportShading: string = 'default'; /** * 场景中的几何数据集合 */ public geometries: { [uuid: string]: THREE.BufferGeometry } = {}; /** * 场景中的材质集合 */ public materials: { [uuid: string]: THREE.Material } = {}; /** * 场景中的贴图集合 */ public textures: { [uuid: string]: THREE.Texture } = {}; /** * 场景中的脚本集合 */ public scripts: ISceneJson['scripts'] = {}; /** * 场景中的辅助集合 */ public helpers: Record = {}; /** * 场景中的相机集合 */ public cameras: { [uuid: string]: THREE.Camera } = {}; /** * 场景元数据(即记录更改前的数据以等待还原) */ public metadata: Record = {}; /** * 跟踪材质使用的频率 */ protected materialsRefCounter: Map = new Map(); /** * 场景选中的模型 */ public selected: THREE.Object3D | null = null; /** * 场景锁定的模型 */ public locked: THREE.Object3D | null = null; /** * 日志记录 */ public log: typeof Logger = Logger; /** * 本地indexDB */ public storage: Storage = new Storage(); /** * 配置项 */ public config: Config = new Config(this.storage); /** * 当前工程相关,包括当前工程配置 */ public project: Project = new Project(this); /** * 模型选择器 */ public selector: Selector = new Selector(); /** * 历史记录 */ public history: _History = new _History(); /** * 资源管理 */ public resource: Resource = new Resource(); /** * 全局动画管理 */ public animationManager: AnimationManager = new AnimationManager(); /** * 级联阴影映射 */ public csm: CSM = new CSM(this.project.getKey("csm") as IAppProject.CSM); /** * 间隔多长时间渲染渲染一次,用于固定fps上限(单位秒) */ public singleFrameTime: number = 1 / this.FPS; /** * 当前视口示例,实例化视口时赋值 */ public viewer: Viewer | null = null; constructor() { this.scene.name = "默认场景"; this.addCamera(this.camera); useAddSignal("objectFocusByUuid", this.focusByUuid.bind(this)) } /** * 获取渲染帧率上限 */ get FPS(): number { return this.project.getKey("renderer.fps"); } /** * 设置渲染帧率上限 * @param fps */ set FPS(fps: number) { this.project.setKey("renderer.fps", fps, false); this.singleFrameTime = fps ? (1 / fps) : 0; } /** * 设置初始配置 */ setConfig(_config: Record) { this.config.setConfig(_config); } /** * 生成场景 * @param scene */ setScene(scene: THREE.Scene) { this.scene.copy(scene, false) // copy方法不会复制uuid,需要手动赋值 this.scene.uuid = scene.uuid; if (this.scene.animations && this.scene.animations.length > 0) this.clipAction(this.scene); // 避免对象渲染 useSetSignalActive('sceneGraphChanged', false); while (scene.children.length > 0) { this.addObject(scene.children[0]); } useSetSignalActive('sceneGraphChanged', true); useDispatchSignal('sceneGraphChanged'); return this.scene; } /** * 剪辑动画 * @param object */ clipAction(object: THREE.Object3D) { if (!object.animations || !object.animations.length) return; // 每个包含动画的模型都会有自己的混合器,因为如果采用共用scene混合器方案会造成全场景动画播放进度统一的情况 let mixer = this.animationManager.mixerMap.get(object.uuid); if (!mixer) { mixer = new THREE.AnimationMixer(object); this.animationManager.mixerMap.set(object.uuid, mixer); } object.animations.forEach((animation, index) => { if ((animation instanceof THREE.AnimationAction) && animation.getClip()) { this.animationManager.actionMap.set(animation.getClip().uuid, animation) return; } if (!(animation instanceof THREE.AnimationClip)) return; const action = (mixer).clipAction(animation, object); // @ts-ignore object.animations[index] = action; this.animationManager.actionMap.set(animation.uuid, action); }) } /** * 添加模型 * @param object * @param parent * @param index */ addObject(object: THREE.Object3D, parent?: THREE.Object3D, index?: number) { // 使用自己版本threejs(比如插件)创建的物体调用此方法时需要递归修复原型链 const fixPrototypeChain = (obj: THREE.Object3D) => { if (!obj.traverseByCondition) { Object.setPrototypeOf(obj, THREE.Object3D.prototype); } obj.children.forEach(child => child.traverse(c => fixPrototypeChain(c))); }; fixPrototypeChain(object); object.traverseByCondition((child) => { if (child.animations && child.animations.length > 0) this.clipAction(child); if (child.geometry !== undefined) this.addGeometry(child.geometry); if (child.material !== undefined) this.addMaterial(child.material); this.addCamera(child); this.addHelper(child); // 20250325: 除灯光外默认全打开接收与投射阴影 if (child.isLight) return; child.castShadow = true; child.receiveShadow = true; }, (child) => !child.ignore); if (parent === undefined) { this.scene.add(object); } else { parent.children.splice(index || 0, 0, object); object.parent = parent; } useDispatchSignal('objectAdded', object); useDispatchSignal('sceneGraphChanged'); } /** * 移动模型 * @param object * @param parent * @param before */ moveObject(object: THREE.Object3D, parent: THREE.Object3D, before: THREE.Object3D) { if (parent === undefined) { parent = this.scene; } parent.add(object); // 对子数组进行排序 if (before !== undefined) { const index = parent.children.indexOf(before); parent.children.splice(index, 0, object); parent.children.pop(); } useDispatchSignal('sceneGraphChanged'); } /** * 重命名模型 * @param object * @param name */ nameObject(object: THREE.Object3D, name: string) { object.name = name; useDispatchSignal('sceneGraphChanged'); } /** * 移除模型 * @param object */ removeObject(object: THREE.Object3D) { // 由于含有ignore属性的对象与业务关联,不受scene管控 // object.parent === null避免删除相机或场景 if (object.parent === null || object.ignore) return; object.traverseByCondition((child: THREE.Object3D) => { this.removeCamera(child); this.removeHelper(child); if (child.material !== undefined) this.removeMaterial(child.material); }, (child: THREE.Object3D) => !child.ignore); object.parent.remove(object); useDispatchSignal('objectRemoved', object); useDispatchSignal('sceneGraphChanged'); } /** * 添加几何数据 * @param geometry */ addGeometry(geometry: THREE.BufferGeometry) { this.geometries[geometry.uuid] = geometry; } /** * 设置几何名称 * @param geometry * @param name */ setGeometryName(geometry: THREE.BufferGeometry, name: string) { geometry.name = name; useDispatchSignal('sceneGraphChanged'); } /** * 场景中新增材质 * @param material */ addMaterial(material: THREE.Material | THREE.Material[]) { if (Array.isArray(material)) { for (let i = 0, l = material.length; i < l; i++) { this.addMaterialToRefCounter(material[i]); } } else { this.addMaterialToRefCounter(material); } useDispatchSignal('materialAdded'); } /** * 新增材质的使用计数 * @param material */ addMaterialToRefCounter(material: THREE.Material) { let materialsRefCounter = this.materialsRefCounter; let count = materialsRefCounter.get(material); if (count === undefined) { materialsRefCounter.set(material, 1); this.materials[material.uuid] = material; // 材质添加到csm this.csm.setupMaterial(material); material.needsUpdate = true; } else { count++; materialsRefCounter.set(material, count); } } /** * 场景中移除材质 * @param material */ removeMaterial(material: THREE.Material | THREE.Material[]) { if (Array.isArray(material)) { for (let i = 0, l = material.length; i < l; i++) { this.removeMaterialFromRefCounter(material[i]); } } else { this.removeMaterialFromRefCounter(material); } useDispatchSignal('materialRemoved'); } /** * 移除材质时减少对应材质使用计数 * @param material */ removeMaterialFromRefCounter(material: THREE.Material) { let materialsRefCounter = this.materialsRefCounter; let count = materialsRefCounter.get(material) as number; count--; if (count === 0) { materialsRefCounter.delete(material); delete this.materials[material.uuid]; } else { materialsRefCounter.set(material, count); } } /** * 通过材质uuid获取材质 * @param uuid */ getMaterialByUuid(uuid: string) { return this.materials[uuid]; } /** * 设置材质名称 * @param material * @param name */ setMaterialName(material: THREE.Material, name: string) { material.name = name; useDispatchSignal('sceneGraphChanged'); } /** * 场景中新增贴图 * @param texture */ addTexture(texture: THREE.Texture) { this.textures[texture.uuid] = texture; } /** * 场景中新增相机 * @param camera */ addCamera(camera: THREE.Camera) { if (camera.isCamera) { this.cameras[camera.uuid] = camera; useDispatchSignal('cameraAdded', camera); } } /** * 场景中移除相机 * @param camera */ removeCamera(camera: THREE.Camera | THREE.Object3D) { if (this.cameras[camera.uuid] !== undefined) { delete this.cameras[camera.uuid]; useDispatchSignal('cameraRemoved', camera); } } /** * 场景中新增三维辅助工具 * @param object * @param helper */ addHelper(object: any, helper?: THREE.Object3D) { if (helper === undefined) { if (object.isCamera) { helper = new THREE.CameraHelper(object); } else if (object.isPointLight) { helper = new THREE.PointLightHelper(object, 1); } else if (object.isDirectionalLight) { helper = new THREE.DirectionalLightHelper(object, 1); } else if (object.isSpotLight) { helper = new THREE.SpotLightHelper(object); } else if (object.isHemisphereLight) { helper = new THREE.HemisphereLightHelper(object, 1); } else if (object.isSkinnedMesh && object.skeleton?.bones) { helper = new THREE.SkeletonHelper(object.skeleton.bones[0]); } else if (object.isBone && object.parent?.isBone !== true) { helper = new THREE.SkeletonHelper(object); } else { // no helper for this object type return; } let geometry = new THREE.SphereGeometry(2, 4, 2); let material = new THREE.MeshBasicMaterial({ color: 0xff0000, visible: false }); const picker = new THREE.Mesh(geometry, material); picker.name = 'picker'; picker.proxy = object; helper.add(picker); } this.sceneHelpers.add(helper); this.helpers[object.id] = helper; } /** * 移除某个模型上的三维辅助工具 * @param object */ removeHelper(object: THREE.Object3D) { if (this.helpers[object.id] !== undefined) { const helper = this.helpers[object.id]; helper.parent?.remove(helper); delete this.helpers[object.id]; } } /** * 新增脚本 * @param object * @param script */ addScript(object: THREE.Object3D, script: ISceneScript) { this.execute(new AddScriptCommand(object, script)); } /** * 移除脚本 * @param object * @param script */ removeScript(object: THREE.Object3D, script: ISceneScript) { this.execute(new RemoveScriptCommand(object, script)); } /** * 获取模型材质 * @param object * @param slot */ getObjectMaterial(object: THREE.Object3D, slot: number) { let material = object.material; if (Array.isArray(material) && slot !== undefined) { material = material[slot]; } return material; } /** * 设置模型材质 * @param object * @param slot * @param newMaterial */ setObjectMaterial(object: THREE.Object3D, slot: number | undefined, newMaterial: THREE.Material) { if (Array.isArray(object.material) && slot !== undefined) { object.material[slot] = newMaterial; } else { object.material = newMaterial; } } /** * 设置当前视图相机 * @param uuid */ setViewportCamera(uuid: string) { this.viewportCamera = this.cameras[uuid]; useDispatchSignal('viewportCameraChanged'); } /** * 设置当前视图渲染方式 * @param value */ setViewportShading(value: string) { this.viewportShading = value; useDispatchSignal("viewportShadingChanged"); } /** * 选中模型 * @param object */ select(object: THREE.Object3D) { this.selector.select(object); } /** * 通过模型id选中模型 * @param id */ selectById(id: number) { if (id === this.camera.id) { this.select(this.camera); return; } const obj = this.scene.getObjectById(id); obj && this.select(obj); } /** * 通过模型uuid选中模型 * @param uuid */ selectByUuid(uuid: string) { const scope = this; this.scene.traverse(function (child: THREE.Object3D) { if (child.uuid === uuid) { scope.select(child); } }); } /** * 取消模型选中状态 */ deselect() { this.selector.deselect(); } /** * 锁定模型 * @param object */ lock(object?: THREE.Object3D | null) { if (!object) { object = this.selected; } if (object) { this.locked = object; useDispatchSignal('objectLocked', object); } } /** * 取消模型锁定状态 */ unlock() { this.locked = null; useDispatchSignal('objectUnlocked'); } /** * 相机聚焦模型 * @param object */ focus(object: THREE.Object3D) { if (object !== undefined) { useDispatchSignal('objectFocused', object); } } /** * 通过id聚焦模型 * @param id */ focusById(id: number) { const obj = this.scene.getObjectById(id); obj && this.focus(obj); } /** * 通过uuid聚焦模型 * @param uuid */ focusByUuid(uuid: string) { if (uuid === undefined) { this.deselect(); return; } const obj = this.getObjectByUuid(uuid); obj && this.focus(obj); } /** * 通过uuid获取模型 * @param uuid */ getObjectByUuid(uuid: string) { return this.scene.getObjectByProperty('uuid', uuid); } /** * 遍历平铺所有子级mesh * @param object */ traverseMeshToArr(object: THREE.Object3D) { if (object.isMesh) return [object]; const arr: THREE.Mesh[] = []; object.traverse((item: THREE.Object3D) => { if (item.isMesh) { arr.push(item as THREE.Mesh); } }) return arr; } /** * 获取不包含ignore属性模型的scene */ getSceneWithoutIgnore() { const newScene = this.scene.clone(false); newScene.uuid = this.scene.uuid; this.scene.children.forEach((item) => { if (!item.ignore) { const model = item.clone(); model.uuid = item.uuid; newScene.add(model); } }) return newScene; } /** * 创建PBR材质 * @param textures * @param properties */ createPBRMaterial(textures: { [type: string]: string | THREE.Texture } = {}, properties: any = {}): Promise { return new Promise((resolve, reject) => { const material = new THREE.MeshStandardMaterial({ // 位移贴图对网格的影响程度默认设置为0 displacementScale: 0 }); properties && Object.keys(properties).forEach(key => { material[key] = properties[key]; }); const num = new Proxy({ value: 10 }, { set(target: { value: number }, p: string | symbol, newValue: any): boolean { target[p] = newValue; if (p === 'value' && newValue === 0) { resolve(material); } return true; } }) // 基础颜色贴图(高光反射/光泽度工作流:diffuse, 金属/粗糙度工作流:baseColor) if (textures.baseColor) { this.resource.loadURLTexture(textures.baseColor, (texture => { material.map = texture; num.value--; }), err => { reject(err); }); } else { num.value--; } // 法线贴图 if (textures.normal) { this.resource.loadURLTexture(textures.normal, (texture => { material.normalMap = texture; num.value--; }), err => { reject(err); }); } else if (textures.bump) { // 凹凸贴图(如果定义了法线贴图,则将忽略该贴图) this.resource.loadURLTexture(textures.bump, (texture => { material.bumpMap = texture; num.value--; }), err => { reject(err); }); } else { num.value--; } // 置换贴图(位移贴图) if (textures.displacement) { this.resource.loadURLTexture(textures.displacement, (texture => { material.displacementMap = texture; num.value--; }), err => { reject(err); }); } else { num.value--; } // 粗糙度贴图 if (textures.roughness) { this.resource.loadURLTexture(textures.roughness, (texture => { material.roughnessMap = texture; num.value--; }), err => { reject(err); }); } else { num.value--; } // 金属度贴图 if (textures.metalness) { this.resource.loadURLTexture(textures.metalness, (texture => { material.metalnessMap = texture; num.value--; }), err => { reject(err); }); } else { num.value--; } // 环境遮挡贴图 if (textures.ao) { this.resource.loadURLTexture(textures.ao, (texture => { material.aoMap = texture; num.value--; }), err => { reject(err); }); } else { num.value--; } // 自发光贴图 if (textures.emissive) { this.resource.loadURLTexture(textures.emissive, (texture => { material.emissiveMap = texture; num.value--; }), err => { reject(err); }); } else { num.value--; } // 透明贴图 if (textures.alpha) { this.resource.loadURLTexture(textures.alpha, (texture => { material.alphaMap = texture; num.value--; }), err => { reject(err); }); } else { num.value--; } // 环境贴图(一般不会设置,因为会使用scene.environment) if (textures.env) { this.resource.loadURLTexture(textures.env, (texture => { material.envMap = texture; num.value--; }), err => { reject(err); }); } else { num.value--; } // 光照贴图 if (textures.light) { this.resource.loadURLTexture(textures.light, (texture => { material.lightMap = texture; num.value--; }), err => { reject(err); }); } else { num.value--; } }) } /** * 清空场景 */ clear() { this.history.clear(); this.camera.copy(_DEFAULT_CAMERA); useDispatchSignal('cameraReset'); this.scene.name = '默认场景'; this.scene.position.set(0, 0, 0); this.scene.rotation.set(0, 0, 0); this.scene.userData = {}; this.scene.background = null; this.scene.environment = null; this.scene.fog = null; for (let i = this.scene.children.length - 1; i >= 0; i--) { this.removeObject(this.scene.children[i]); } this.geometries = {}; this.materials = {}; this.textures = {}; this.scripts = {}; this.materialsRefCounter.clear(); this.animationManager.mixerMap.forEach(mixer => mixer.stopAllAction()); this.deselect(); useDispatchSignal('sceneCleared'); } /** * 从json数据生成场景 * @param sceneJson */ async fromJSON(sceneJson: ISceneJson) { //先清空场景 this.clear(); // 清除图纸状态 this.project.resetDrawing(); this.metadata = sceneJson.metadata || {}; sceneJson.metadata = {}; let loader = Loader.objectLoader; let camera = await loader.parseAsync(sceneJson.camera) as THREE.Camera; this.camera.copy(camera as THREE.PerspectiveCamera); useDispatchSignal('cameraReset'); if (sceneJson.scripts) { this.scripts = sceneJson.scripts; } const scene = this.setScene(await loader.parseAsync(sceneJson.scene) as THREE.Scene); // 20250718: 环境类型是ModelViewer时需要手动设置,因为scene.toJSON()不会处理renderTargetTexture switch (sceneJson.scene.object.environmentType) { case "ModelViewer": useDispatchSignal("sceneEnvironmentChanged", 'ModelViewer'); useDispatchSignal("sceneGraphChanged"); break } return scene; } /** * 场景信息转JSON */ toJSON() { // 脚本清理 let scene = this.scene; let scripts = this.scripts; for (let key in scripts) { let script = scripts[key]; if (script.length === 0 || scene.getObjectByProperty('uuid', key) === undefined) { delete scripts[key]; } } const projectRender = this.project.getKey("renderer"); return { metadata: {}, project: { xr: this.project.getKey("xr"), antialias: projectRender.antialias, shadows: projectRender.shadows.enabled, shadowType: projectRender.shadows.type, toneMapping: projectRender.shadows.toneMapping, toneMappingExposure: projectRender.shadows.toneMappingExposure, }, camera: this.camera.toJSON(), scene: this.scene.toJSON(), scripts: this.scripts, //history: this.history.toJSON(), }; } /** * 执行历史记录中的命令 * @param cmd * @param optionalName */ execute(cmd, optionalName?: string) { this.history.execute(cmd, optionalName); } /** * 撤销 */ undo() { this.history.undo(); } /** * 重做 */ redo() { this.history.redo(); } } const app = new App(); export default app; ================================================ FILE: packages/sdk/lib/core/app/modules/CSM.ts ================================================ import * as THREE from 'three'; import { CSM as _CSM } from 'three/examples/jsm/csm/CSM.js'; import { useDispatchSignal } from '@/hooks'; import App from "@/core/app/App"; // Cascaded Shadow Maps(级联阴影映射,CSM) class CSM { instance:_CSM | null = null; constructor(options:IAppProject.CSM){ this.enabled = options.enabled; } get enabled(){ return !!this.instance; } set enabled(isEnabled:boolean){ if (!isEnabled){ if(!this.instance) return; // 移除csm创建的对象 this.instance.remove(); // 销毁csm插入的shader this.instance.dispose(); this.instance = null; useDispatchSignal("sceneGraphChanged"); return; } /* 以下是启用csm的逻辑 */ if(this.instance){ this.reset(); return; } const _config = App.project.getKey("csm"); this.instance = new _CSM({ maxFar: _config.maxFar, cascades: 4, mode: _config.mode, shadowMapSize: _config.shadowMapSize, lightDirection: new THREE.Vector3(_config.lightDirectionX, _config.lightDirectionY, _config.lightDirectionZ).normalize(), lightIntensity: _config.lightIntensity, lightNear: 0.1, lightFar: _config.maxFar * 2, lightMargin: 200, camera: App.viewportCamera, parent: App.scene }); this.instance.fade = true; this.instance.lights.forEach(light => { // 忽略对csm相关object的处理 light.ignore = true; light.target.ignore = true; // 设置的灯光颜色 light.color = new THREE.Color(_config.lightColor); light.shadow.bias = -0.00001; }) // 将场景中的全部材质添加到csm Object.values(App.materials).forEach(material => { this.setupMaterial(material); }) this.instance.updateFrustums(); useDispatchSignal("sceneGraphChanged"); } reset() { if (!this.instance) return; this.enabled = false; this.enabled = true; } // 材质添加到csm setupMaterial(material:THREE.Material){ if(!this.instance) return; material.shadowSide = THREE.BackSide; this.instance.setupMaterial(material); } updateProperty(key,value){ if (!this.instance) return; this.instance[key] = value; this.instance.updateFrustums(); useDispatchSignal("sceneGraphChanged"); } updateLightColor(color: string){ if (!this.instance) return; this.instance.lights.forEach(light => { light.color = new THREE.Color(color); }) useDispatchSignal("sceneGraphChanged"); } updateLightIntensity(intensity: number){ if (!this.instance) return; this.instance.lightIntensity = intensity; this.instance.lights.forEach(light => { light.intensity = intensity; }) useDispatchSignal("sceneGraphChanged"); } updateLightDirection(direction: "x" | "y" | "z", value: number){ if (!this.instance) return; this.instance.lightDirection[direction] = value; useDispatchSignal("sceneGraphChanged"); } updateFrustums(){ if (!this.instance) return; this.instance.updateFrustums(); useDispatchSignal("sceneGraphChanged"); } update(){ if (!this.instance) return; App.viewportCamera.updateMatrixWorld(); this.instance.update(); } } export {CSM} ================================================ FILE: packages/sdk/lib/core/app/modules/Config.ts ================================================ /** * @author ErSan * @email mlt131220@163.com * @date 2025/4/26 13:59 * @description 应用的全局配置,会存储在本地缓存 */ import {Storage} from "./Storage"; import {deepAssign, getNestedProperty} from "@/utils"; import {ROAMING_CHARACTERS} from "@/constant"; class Config { protected storage: Storage; public config: IAppConfig.Config; constructor(storage: Storage) { this.storage = storage; this.config = { // UI相关配置 theme: 'os', mainColor: '#7FE7C4', // 历史记录功能是否启用 history: false, // 快捷键相关配置 shortcuts: { translate: 'w', rotate: 'e', scale: 'r', undo: 'z', focus: 'f', }, //漫游角色 roamingCharacter: ROAMING_CHARACTERS.JACKIE }; this.syncStorage(); } /** * 设置初始配置 */ setConfig(_config:Record){ deepAssign(this.config,_config); this.syncStorage(); } /** * 和本地存储中的配置同步 */ syncStorage(){ for (let key of Object.keys(this.config)) { this.storage.getConfigItem(key).then(_value => { if(_value === null){ this.storage.setConfigItem(key, this.config[key]) }else{ let newVal = _value; // 有可能会在代码开发过程中增加新的配置项 if(this.config[key] && typeof this.config[key] === "object"){ newVal = Object.assign({},this.config[key],_value); } this.config[key] = newVal; if(newVal !== _value){ this.storage.setConfigItem(key, newVal) } } }).catch(() => { this.storage.setConfigItem(key, this.config[key]) }) } } /** * 获取配置 * @param {string} key 可以多层级,需用.分割,如a.b.c */ getKey(key:string): any { return getNestedProperty(this.config,key); } /** * 设置配置项 * @param {string} key 可以多层级,需用.分割,如a.b.c * @param {unknown} value 配置项的值 */ setKey(key:string,value:unknown) { const keys = key.split("."); if(keys.length === 1){ this.config[key] = value; this.storage.setConfigItem(key,value); return; } let obj = this.config; for (let i = 0; i < keys.length; i++){ if(keys.length - i === 1){ obj[keys[i]] = value; break; } obj = obj[keys[i]]; } this.storage.setConfigItem(keys[0],this.config[keys[0]]); } /** * 获取快捷键配置 * @param {string} key */ getShortcutItem(key: string) { return this.config.shortcuts[key]; } /** * 设置快捷键 * @param {string} key * @param {any} value */ setShortcutItem(key: string,value:any) { this.config.shortcuts[key] = value; return this.storage.setConfigItem("shortcuts", this.config.shortcuts) } clear() { for (let key of Object.keys(this.config)) { this.storage.removeConfigItem(key); } } } export {Config}; ================================================ FILE: packages/sdk/lib/core/app/modules/History.ts ================================================ import type { Object3D } from 'three'; import * as Commands from '@/core/commands/Commands'; import {useSignal} from "@/hooks"; import App from "@/core/app/App"; const {dispatch:useDispathSignal,setActive} = useSignal(); interface Undos{ id:number, name?:string, updatable:boolean, object:Object3D, type:string, script, attributeName:string, inMemory:boolean, json:string, update:(T)=>void, toJSON:()=>string, fromJSON:(string)=>void, undo:()=>void, execute:()=>void, } class History { public undos:Array; public redos:Array; protected lastCmdTime:number; protected idCounter:number; constructor() { this.undos = []; this.redos = []; this.lastCmdTime = Date.now(); this.idCounter = 0; } execute( cmd, optionalName ) { const lastCmd = this.undos[this.undos.length - 1]; const timeDifference = Date.now() - this.lastCmdTime; const isUpdatableCmd = lastCmd && lastCmd.updatable && cmd.updatable && lastCmd.object === cmd.object && lastCmd.type === cmd.type && lastCmd.script === cmd.script && lastCmd.attributeName === cmd.attributeName; if ( isUpdatableCmd && cmd.type === 'SetScriptValueCommand' ) { // 当cmd.type为“SetScriptValueCommand”时,将忽略时间差异 lastCmd.update( cmd ); cmd = lastCmd; } else if ( isUpdatableCmd && timeDifference < 500 ) { lastCmd.update( cmd ); cmd = lastCmd; } else { // 该命令不可更新,并作为历史记录的新部分添加 this.undos.push( cmd ); cmd.id = ++ this.idCounter; } cmd.name = ( optionalName !== undefined ) ? optionalName : cmd.name; cmd.execute(); cmd.inMemory = true; if (App.config.getKey('history')) { //在执行后立即序列化cmd,并将json附加到cmd cmd.json = cmd.toJSON(); } this.lastCmdTime = Date.now(); // 清除所有redo命令 this.redos = []; useDispathSignal("historyChanged",cmd); } undo() { let cmd:Undos | undefined = undefined; if (this.undos.length > 0) { cmd = this.undos.pop() as Undos; if ( cmd.inMemory === false ) { cmd.fromJSON( cmd.json ); } } if ( cmd !== undefined ) { cmd.undo(); this.redos.push( cmd ); useDispathSignal("historyChanged",cmd); } return cmd; } redo():Undos |undefined { let cmd:Undos |undefined = undefined; if ( this.redos.length > 0 ) { cmd = this.redos.pop() as Undos; if ( cmd.inMemory === false ) { cmd.fromJSON( cmd.json ); } } if ( cmd !== undefined ) { cmd.execute(); this.undos.push( cmd ); useDispathSignal( "historyChanged",cmd ); } return cmd; } toJSON() { const history:{undos?:Array,redos?:Array} = {}; history.undos = []; history.redos = []; if (!App.config.getKey('history')) return history; //将Undos附加到历史记录 for ( let i = 0; i < this.undos.length; i ++ ) { if (this.undos[ i ].hasOwnProperty( 'json' )) { history.undos.push(this.undos[i].json); } } //将Redos附加到历史记录 for ( let i = 0; i < this.redos.length; i ++ ) { if (this.redos[ i ].hasOwnProperty( 'json' )) { history.redos.push(this.redos[ i ].json); } } return history; } fromJSON( json ) { if ( json === undefined ) return; for ( let i = 0; i < json.undos.length; i ++ ) { const cmdJSON = json.undos[ i ]; //创建一个类型为"json.type"的新对象 const cmd = new Commands[cmdJSON.type](App); cmd.json = cmdJSON; cmd.id = cmdJSON.id; cmd.name = cmdJSON.name; this.undos.push( cmd ); //设置最后使用的idCounter this.idCounter = ( cmdJSON.id > this.idCounter ) ? cmdJSON.id : this.idCounter; } for ( let i = 0; i < json.redos.length; i ++ ) { const cmdJSON = json.redos[ i ]; const cmd = new Commands[cmdJSON.type](App); cmd.json = cmdJSON; cmd.id = cmdJSON.id; cmd.name = cmdJSON.name; this.redos.push( cmd ); this.idCounter = ( cmdJSON.id > this.idCounter ) ? cmdJSON.id : this.idCounter; } // 选择最后执行的undo命令 useDispathSignal( "historyChanged",this.undos[ this.undos.length - 1 ] ); } clear() { this.undos = []; this.redos = []; this.idCounter = 0; useDispathSignal("historyChanged"); } goToState( id:number ) { setActive("sceneGraphChanged",false); setActive("historyChanged",false); //下一个弹出的CMD let cmd:Undos |undefined = this.undos.length > 0 ? this.undos[ this.undos.length - 1 ] : undefined; if ( cmd === undefined || id > cmd.id ) { cmd = this.redo(); while ( cmd !== undefined && id > cmd.id ) { cmd = this.redo(); } } else { while ( true ) { cmd = this.undos[ this.undos.length - 1 ]; if ( cmd === undefined || id === cmd.id ) break; this.undo(); } } setActive("sceneGraphChanged",true); setActive("historyChanged",true); useDispathSignal("sceneGraphChanged"); useDispathSignal("historyChanged",cmd); } enableSerialization( id ) { /** * 因为可能有命令在 this.undos && this.redos * 没有被.toJSON()序列化的,我们返回 */ this.goToState(-1); setActive("sceneGraphChanged",false); setActive("historyChanged",false); let cmd:Undos |undefined = this.redo(); while ( cmd !== undefined ) { if (!cmd.hasOwnProperty('json')) { cmd.json = cmd.toJSON(); } cmd = this.redo(); } setActive("sceneGraphChanged",true); setActive("historyChanged",true); this.goToState( id ); } } export { History }; ================================================ FILE: packages/sdk/lib/core/app/modules/Project.ts ================================================ /** * @author ErSan * @email mlt131220@163.com * @date 2025/4/26 13:59 * @description 当前项目相关信息 */ import * as THREE from 'three'; import {getNestedProperty} from "@/utils"; import type {App} from "../App"; import {useRemoveSignal, useAddSignal, useDispatchSignal} from '@/hooks'; import {FPS_OPTIONS} from "@/constant"; export const defaultProjectInfo = (): IAppProject.Info => ({ // 项目运行是否启用xr xr: false, // 渲染器相关配置 renderer: { // 渲染帧率上限,默认60 fps: FPS_OPTIONS.HIGH, antialias: true, toneMapping: THREE.ACESFilmicToneMapping, toneMappingExposure: 1, shadow: { enabled: true, type: THREE.PCFSoftShadowMap, }, }, // 级联阴影映射 csm: { enabled: false, fade: false, maxFar: 1000, mode: "practical", shadowMapSize: 2048, lightDirectionX: -1, lightDirectionY: -1, lightDirectionZ: -1, lightIntensity: 1, lightColor: "#ffffff" }, // 后处理 effect: { enabled: false, // 描边线 Outline: { enabled: true, // 边缘的强度,值越高边框范围越大 edgeStrength: Number(3.0), // 发光强度 edgeGlow: Number(0.2), // 边缘浓度 edgeThickness: Number(1.0), // 闪烁频率,值越大频率越低 pulsePeriod: Number(0.0), // 禁用纹理以获得纯线的效果 usePatternTexture: false, // 可见边缘的颜色 visibleEdgeColor: "#ffee00", // 不可见边缘的颜色 hiddenEdgeColor: "#ff6a00" }, // 抗锯齿 FXAA: { enabled: true, }, // 辉光 UnrealBloom: { enabled: false, // 光晕阈值,值越小,效果越明显 threshold: 0, // 光晕强度 strength: 1, // 光晕半径 radius: 0 }, // 背景虚化 Bokeh: { enabled: false, // 焦距,调整远近,对焦时才会清晰 focus: 500.0, // 孔径,类似相机孔径调节 aperture: 0.00005, // 最大模糊程度 maxblur: 0.01 }, // 像素风 Pixelate: { enabled: false, // 像素大小 pixelSize: 6, // 法向边缘强度 normalEdgeStrength: 0.3, // 深度边缘强度 depthEdgeStrength: 0.4, }, // 半色调 Halftone: { enabled: false, // 形状:点,椭圆,线,正方形 shape: 1, // 半径 radius: 4, // R色旋转 rotateR: Math.PI / 12, // G色旋转 rotateG: Math.PI / 12 * 2, // B色旋转 rotateB: Math.PI / 12 * 3, // 分散度 scatter: 0, // 混合度 blending: 1, // 混合模式:线性,相乘,相加,明亮,昏暗 blendingMode: 1, // 灰度 greyscale: false, }, // LUT颜色滤镜 LUT: { enabled: false, lut: 'Bourbon 64.CUBE', intensity: 1 }, // 运动残影 Afterimage: { enabled: false, damp: 0.95 } }, // 天气 weather: { fog: { enabled: false, type: "Fog", // Fog, FogExp2 color: "#ffffff", near: 0.10, far: 50.0, density: 0.05, }, rain: { enabled: false, speed: 0.4, color: "#ffffff", size: 0.5, radian: 95, alpha: 0.4 }, snow: { enabled: false, size: 0.5, density: 1.0, speed: 1.0, alpha: 0.5, accumulation: false, } }, // 场景信息 sceneInfo: { // 场景id,使用uuid id: "", // 场景名称 sceneName: "", // 场景分类 城市、园区、工厂、楼宇、设备、其他... sceneType: "其他", // 场景描述 sceneIntroduction: "", // 场景版本 sceneVersion: 1, // 项目类型。0:Web3D-THREE 1:WebGIS-Cesium projectType: 0, // 场景封面图 coverPicture: "", // 场景是否包含图纸 hasDrawing: false, // 场景zip包地址 zip: "", // 场景zip包大小 zipSize: "0", // WebGIS-Cesium 类型项目的基础Cesium配置 cesiumConfig: undefined }, // 图纸 drawing: { // 是否已上传图纸 isUploaded: false, // 图片base64 / cad文件路径 imgSrc: "", // 是否cad isCad: false, // cad图层信息 layers: {}, // 是否正在绘制矩形标记 isDrawingRect: false, // 选中的矩形索引 selectedRectIndex: -1, // 标记列表 markList: [], // 标记图纸时的图纸属性信息 imgInfo: { width: 0, height: 0 } } }) let drawingMarkDoneFn: null | ((type: "add" | "update", rect: IAppProject.DrawingMark) => void) = null; class Project { public app: App public info: IAppProject.Info; constructor(app: App) { this.app = app; this.info = defaultProjectInfo(); drawingMarkDoneFn = this.drawingMarkListChange.bind(this); useAddSignal("drawingMarkDone", drawingMarkDoneFn); } /** * 获取配置 * @param {string} key 可以多层级,需用.分割,如a.b.c */ getKey(key: string): any { return getNestedProperty(this.info, key); } /** * 设置配置项,配置变更自动执行相应处理 * @param {string} key 可以多层级,需用.分割,如a.b.c * @param {unknown} value 配置项的值 * @param {boolean} executeAction 是否自动执行相应处理 */ setKey(key: string, value: unknown,executeAction: boolean = true) { const keys = key.split("."); if (keys.length === 1) { this.info[key] = value; } else { let obj = this.info; for (let i = 0; i < keys.length; i++) { if (keys.length - i === 1) { obj[keys[i]] = value; break; } obj = obj[keys[i]]; } } /* 执行相应处理 */ if(!executeAction || ["xr","sceneInfo","drawing"].includes(keys[0])) return; const secondProperty = keys[1]; // 如果setKey传入的是第一层级的变更且不是特殊单层处理的属性,则遍历为第二层级递归以执行相应处理 if(!secondProperty && !["renderer"].includes(key)) { const propertyValue = this.info[key]; Object.keys(propertyValue).forEach(secondKey => { this.setKey(`${key}.${secondKey}`, propertyValue[secondKey]); }) return; } if (key.startsWith("renderer")) { if(!this.app.viewer) return; if (["renderer.antialias","renderer"].includes(key)) { this.app.viewer.createEngine(); } else { this.app.viewer.renderer.shadowMap.enabled = this.info.renderer.shadow.enabled; this.app.viewer.renderer.shadowMap.type = this.info.renderer.shadow.type; this.app.viewer.renderer.toneMapping = this.info.renderer.toneMapping; this.app.viewer.renderer.toneMappingExposure = this.info.renderer.toneMappingExposure; this.app.FPS = this.info.renderer.fps; useDispatchSignal("rendererUpdated"); } } else if (key.startsWith("csm")) { switch (key) { case "csm.enabled": this.app.csm.enabled = this.info.csm.enabled; break; case "csm.fade": case "csm.maxFar": case "csm.mode": this.app.csm.updateProperty(secondProperty, this.info.csm[secondProperty]); break; case "csm.shadowMapSize": this.app.csm.reset(); break; case "csm.lightColor": this.app.csm.updateLightColor(this.info.csm.lightColor); break; case "csm.lightIntensity": this.app.csm.updateLightIntensity(this.info.csm.lightIntensity); break; case "csm.lightDirectionX": this.app.csm.updateLightDirection('x',this.info.csm.lightDirectionX); break; case "csm.lightDirectionY": this.app.csm.updateLightDirection('y',this.info.csm.lightDirectionY); break; case "csm.lightDirectionZ": this.app.csm.updateLightDirection('z',this.info.csm.lightDirectionZ); break; } }else if(key.startsWith("effect")){ if(key === "effect.enabled"){ useDispatchSignal("effectEnabledChange",this.info.effect.enabled); }else{ useDispatchSignal("effectPassConfigChange",secondProperty,this.info.effect[secondProperty]); } }else if(key.startsWith("weather")){ switch (key){ case "weather.fog": useDispatchSignal("sceneFogSettingsChanged"); break; case "weather.rain": useDispatchSignal("sceneRainSettingsChanged"); break; case "weather.snow": useDispatchSignal("sceneSnowSettingsChanged"); break; } } } /** * 设置图纸src */ setDrawingSrc(src: string) { this.info.drawing.isCad = src.split(".").pop() === "dxf"; this.info.drawing.imgSrc = src; } /** * 设置图纸图层显示隐藏 * @param layerName * @param visible */ setDrawingLayerVisible(layerName: string, visible: boolean) { this.info.drawing.layers[layerName].visible = visible; } /** * 设置图纸所有图层显示隐藏 * @param visible */ setDrawingLayerAllVisible(visible: boolean) { for (let key in this.info.drawing.layers) { this.info.drawing.layers[key].visible = visible; } } /** * 图纸标记变更 * @param type * @param rect */ drawingMarkListChange(type: "add" | "update", rect: IAppProject.DrawingMark) { switch (type) { case "add": this.info.drawing.markList.push(rect); break; case "update": const index = this.info.drawing.markList.findIndex(item => item.modelUuid === rect.modelUuid); if (index !== -1) { this.info.drawing.markList[index] = rect; } break; } } /** * 重置图纸配置,一般用于清除图纸状态 */ resetDrawing() { this.info.drawing = defaultProjectInfo().drawing; } // /** // * 清空所有项目配置 // */ // clear(){ // const sceneInfo = {...this.info.sceneInfo}; // // this.info = defaultProjectInfo(); // // this.info.sceneInfo = sceneInfo; // } dispose() { if (drawingMarkDoneFn) { useRemoveSignal("drawingMarkDone", drawingMarkDoneFn); drawingMarkDoneFn = null; } } } export {Project}; ================================================ FILE: packages/sdk/lib/core/app/modules/Resource.ts ================================================ import * as THREE from 'three'; import Loader from "@/core/loader/Loader"; class Resource{ constructor() { } loadURLTexture(url: string | THREE.Texture, onload: (tex: THREE.Texture) => void = ()=>{}, onerror: (err: any) => void = ()=>{}) { if(url instanceof THREE.Texture) { onload(url); return url; } const extension = url.split(".").pop()?.toLowerCase() as string; return Loader.loadUrlTexture(extension, url, onload,onerror); } } export {Resource}; ================================================ FILE: packages/sdk/lib/core/app/modules/Selector.ts ================================================ import {useDispatchSignal, useAddSignal} from '@/hooks'; import { MeshLambertMaterial } from "three"; import App from "@/core/app/App.ts"; import Loader from "@/core/loader/Loader.ts"; import * as THREE from "three"; class Selector { public lastIsIFC = false; // 上一次选中的是否是IFC模型 public lastIFCModelID :number | null = null; // 上一次选中的IFC模型ID private preselectMat = new MeshLambertMaterial({ transparent: true, opacity: 0.6, color: 0xff88ff, depthTest: false, }); constructor() { // signals useAddSignal("intersectionsDetected",async (intersects) => { if(this.lastIFCModelID !== null){ // 移除之前IFC模型的高亮部分 Loader._ifcLoader.ifcManager.removeSubset(this.lastIFCModelID, this.preselectMat); this.lastIFCModelID = null; } if (intersects.length > 0) { const object = intersects[0].object; // ---- 2023/8/10 添加IFC模型检测判断----- if(object.isIFC){ const index = intersects[0].faceIndex; const geometry = object.geometry; const ifc = Loader._ifcLoader.ifcManager; const id = ifc.getExpressId(geometry, index); this.lastIFCModelID = object.modelID; const props = await ifc.getItemProperties(this.lastIFCModelID as number, id,true); useDispatchSignal("IFCPropertiesVisible",true,props) this.lastIsIFC = true; // TODO 部件选中 // 创建子集 Loader._ifcLoader.ifcManager.createSubset({ modelID: this.lastIFCModelID as number, ids: [id], material: this.preselectMat, scene: App.scene, removePrevious: true, }); return } if(this.lastIsIFC){ useDispatchSignal("IFCPropertiesVisible",false) this.lastIsIFC = false; } if(object.proxy){ this.select(object.proxy); } else { this.select(object); } } else { this.select( null ); } }) } select(object:THREE.Object3D | null) { if (App.selected === object) return; App.selected = object; useDispatchSignal("objectSelected",object, App.locked); useDispatchSignal("sceneGraphChanged"); } deselect() { this.select(null); } } export {Selector}; ================================================ FILE: packages/sdk/lib/core/app/modules/Storage.ts ================================================ import localforage from 'localforage'; class Storage { public dbs: { modelsDB: LocalForage,otherDB:LocalForage,configDB:LocalForage }; constructor() { this.dbs = this.initDB(); } initDB(){ return { modelsDB: localforage.createInstance({ name: 'modelsDB', }), otherDB: localforage.createInstance({ name: 'otherDB' }), configDB: localforage.createInstance({ name: 'configDB' }) } } setModel(key: string, value: any){ this.dbs.modelsDB.setItem(key, value); } async getModel(key: string){ return await this.dbs.modelsDB.getItem(key); } removeModel(key: string){ return this.dbs.modelsDB.removeItem(key); } setOtherItem(key: string, value: any){ this.dbs.otherDB.setItem(key, value); } async getOtherItem(key:string){ return await this.dbs.otherDB.getItem(key); } removeOtherItem(key: string){ return this.dbs.otherDB.removeItem(key); } setConfigItem(key: string, value: any){ return this.dbs.configDB.setItem(key, value); } async getConfigItem(key:string){ return await this.dbs.configDB.getItem(key); } removeConfigItem(key: string){ return this.dbs.configDB.removeItem(key); } } export {Storage}; ================================================ FILE: packages/sdk/lib/core/app/modules/index.ts ================================================ export {Config} from "./Config"; export {CSM} from "./CSM"; export {History} from "./History"; export {Project,defaultProjectInfo} from "./Project"; export {Resource} from "./Resource"; export {Selector} from "./Selector"; export {Storage} from "./Storage"; ================================================ FILE: packages/sdk/lib/core/built-in/assets/BasicObject3D.ts ================================================ import * as THREE from 'three'; import { TeapotGeometry } from '@/core/geometries/TeapotGeometry.js'; import App from "@/core/app/App"; //组 export function Group() { const group = new THREE.Group(); group.name = 'Group'; return group; } //正方体 export function Box() { const geometry = new THREE.BoxGeometry(1, 1, 1, 1, 1, 1); const mesh = new THREE.Mesh(geometry, new THREE.MeshStandardMaterial()); mesh.name = 'Box'; return mesh; } //胶囊 export function Capsule() { const geometry = new THREE.CapsuleGeometry(1, 1, 4, 8); const material = new THREE.MeshStandardMaterial(); const mesh = new THREE.Mesh(geometry, material); mesh.name = 'Capsule'; return mesh; } //圆 export function Circle() { const geometry = new THREE.CircleGeometry(1, 8, 0, Math.PI * 2); const mesh = new THREE.Mesh(geometry, new THREE.MeshStandardMaterial()); mesh.name = 'Circle'; return mesh; } //圆柱体 export function Cylinder() { const geometry = new THREE.CylinderGeometry(1, 1, 1, 8, 1, false, 0, Math.PI * 2); const mesh = new THREE.Mesh(geometry, new THREE.MeshStandardMaterial()); mesh.name = 'Cylinder'; return mesh; } //十二面体 export function Dodecahedron() { const geometry = new THREE.DodecahedronGeometry(1, 0); const mesh = new THREE.Mesh(geometry, new THREE.MeshStandardMaterial()); mesh.name = 'Dodecahedron'; return mesh; } //二十面体 export function Icosahedron() { const geometry = new THREE.IcosahedronGeometry(1, 0); const mesh = new THREE.Mesh(geometry, new THREE.MeshStandardMaterial()); mesh.name = 'Icosahedron'; return mesh; } //双锥 export function DoubleCone() { const geometry = new THREE.LatheGeometry(); const mesh = new THREE.Mesh( geometry, new THREE.MeshStandardMaterial({side: THREE.DoubleSide}) ); mesh.name = 'DoubleCone'; return mesh; } //八面体 export function Octahedron() { const geometry = new THREE.OctahedronGeometry(1, 0); const mesh = new THREE.Mesh(geometry, new THREE.MeshStandardMaterial()); mesh.name = 'Octahedron'; return mesh; } //平面 export function Plane() { const geometry = new THREE.PlaneGeometry(1, 1, 1, 1); const material = new THREE.MeshStandardMaterial(); const mesh = new THREE.Mesh(geometry, material); mesh.name = 'Plane'; return mesh; } //环 export function Ring() { const geometry = new THREE.RingGeometry(0.5, 1, 8, 1, 0, Math.PI * 2); const mesh = new THREE.Mesh(geometry, new THREE.MeshStandardMaterial()); mesh.name = 'Ring'; return mesh; } //球体 export function Sphere() { const geometry = new THREE.SphereGeometry(1, 32, 16, 0, Math.PI * 2, 0, Math.PI); const mesh = new THREE.Mesh(geometry, new THREE.MeshStandardMaterial()); mesh.name = 'Sphere'; return mesh; } //精灵 export function Sprite() { const sprite = new THREE.Sprite(new THREE.SpriteMaterial()); sprite.name = 'Sprite'; return sprite; } //四面体 export function Tetrahedron() { const geometry = new THREE.TetrahedronGeometry(1, 0); const mesh = new THREE.Mesh(geometry, new THREE.MeshStandardMaterial()); mesh.name = 'Tetrahedron'; return mesh; } //圆环体 export function Torus() { const geometry = new THREE.TorusGeometry(1, 0.4, 8, 6, Math.PI * 2); const mesh = new THREE.Mesh(geometry, new THREE.MeshStandardMaterial()); mesh.name = 'Torus'; return mesh; } //环面扭结体 export function TorusKnot() { const geometry = new THREE.TorusKnotGeometry(1, 0.4, 64, 8, 2, 3); const mesh = new THREE.Mesh(geometry, new THREE.MeshStandardMaterial()); mesh.name = 'TorusKnot'; return mesh; } //管 export function Tube() { const path = new THREE.CatmullRomCurve3([ new THREE.Vector3(2, 2, -2), new THREE.Vector3(2, -2, -0.6666666666666667), new THREE.Vector3(-2, -2, 0.6666666666666667), new THREE.Vector3(-2, 2, 2), ]); const geometry = new THREE.TubeGeometry(path, 64, 1, 8, false); const mesh = new THREE.Mesh(geometry, new THREE.MeshStandardMaterial()); mesh.name = 'Tube'; return mesh; } //茶壶 export function Teapot() { let size = 2; let segments = 10; let bottom = true; let lid = true; let body = true; let fitLid = false; let blinn = 1; let material = new THREE.MeshStandardMaterial(); // @ts-ignore let geometry = new TeapotGeometry(size, segments, bottom, lid, body, fitLid, blinn); let mesh = new THREE.Mesh(geometry, material); mesh.name = 'Teapot'; return mesh; } //环境光 export function AmbientLight() { const color = 0xffffff; const light = new THREE.AmbientLight(color); light.name = 'AmbientLight'; return light; } //平行光 export function DirectionalLight() { const color = 0xffffff; const intensity = 1; const light = new THREE.DirectionalLight(color, intensity); light.name = 'DirectionalLight'; light.target.name = 'DirectionalLight Target'; light.position.set(5, 10, 7.5); return light; } //半球光 export function HemisphereLight() { const skyColor = 0x00aaff; const groundColor = 0xffaa00; const intensity = 1; const light = new THREE.HemisphereLight(skyColor, groundColor, intensity); light.name = 'HemisphereLight'; light.position.set(0, 10, 0); return light; } //点光源 export function PointLight() { const color = 0xffffff; const intensity = 1; const distance = 0; const light = new THREE.PointLight(color, intensity, distance); light.name = 'PointLight'; return light; } //聚光灯 export function Spotlight() { const color = 0xffffff; const intensity = 1; const distance = 0; const angle = Math.PI * 0.1; const penumbra = 0; const light = new THREE.SpotLight(color, intensity, distance, angle, penumbra); light.name = 'SpotLight'; light.target.name = 'SpotLight Target'; light.position.set(5, 10, 7.5); return light; } /*******************************************相机********************************************************/ //正交相机 export function OrthographicCamera() { const aspect = App.camera.aspect; const camera = new THREE.OrthographicCamera(-aspect, aspect); camera.name = 'OrthographicCamera'; return camera; } //透视相机 export function PerspectiveCamera() { const camera = new THREE.PerspectiveCamera(); camera.name = 'PerspectiveCamera'; return camera; } ================================================ FILE: packages/sdk/lib/core/built-in/assets/Particles.ts ================================================ import * as THREE from 'three'; import * as _Particle from '@/core/libs/three-nebula'; export class Particles { static DotImageUrl = new URL(import.meta.env.BASE_URL + 'resource/textures/dot.png', import.meta.url).href; static SmokeImageUrl = new URL(import.meta.env.BASE_URL + 'resource/textures/smoke.png', import.meta.url).href; constructor() { } // 烟雾 static smoke(initPosition = { x: 0, y: 0, z: 0 }) { const map = new THREE.TextureLoader().load(Particles.DotImageUrl); const material = new THREE.SpriteMaterial({ map: map, color: 0x000000, // fog: true, }); const body = new THREE.Sprite(material); const emitter = new _Particle.Emitter(); emitter.damping = 0.008; const position = new _Particle.Position(); position.addZone(new _Particle.PointZone(0, 0, 0)); emitter .setRate( new _Particle.Rate( new _Particle.Span(20, 40), // 发射粒子的数量范围 new _Particle.Span(0.01, 0.02) //每次粒子发射之间的时间间隔 ) ) // 设置粒子发射的速率 .setInitializers([ new _Particle.Mass(30, 10, true, true), // 设置初始化粒子的质量属性 new _Particle.Life(1, 3, false, true), // 设置初始化粒子的生命值属性 new _Particle.Body(body), // 设置初始化粒子的主体属性 new _Particle.Radius(1, 1, true, true), // 设置初始化粒子的半径属性 new _Particle.Rotation(0, 0, 0, true, true), // 设置初始化粒子的旋转属性 position, new _Particle.VectorVelocity(new _Particle.Vector3D(1, 2, 1), 60, true), // 设置初始化粒子的速度属性 ]) //设置发射器的粒子初始化器 .setBehaviours([ new _Particle.Alpha(1, 0, Infinity, _Particle.ease.easeOutCubic, true), // 对粒子应用阿尔法转换效果的行为 new _Particle.Color("#000000", "#0E0E0E", Infinity, _Particle.ease.easeOutCubic, true), // 一种随时间改变粒子颜色的行为 //new _Particle.Scale(1, 0.5, Infinity, _Particle.ease.easeLinear, true), // 缩放粒子的行为 new _Particle.Force(0, 2, 0, Infinity, _Particle.ease.easeLinear, true), // 迫使粒子沿特定轴线运动的行为 //new _Particle.Rotate(45, 0, 0, Infinity, _Particle.ease.easeLinear, true), // 旋转粒子的行为 new _Particle.RandomDrift(1, 2, 1, 0.7, Infinity, _Particle.ease.easeLinear), // 导致粒子漂移到三维空间随机坐标的行为 //new _Particle.Spring(1, 5, 0, 0.01, 1, Infinity, _Particle.ease.easeLinear, true) // 使粒子弹起的行为 ]) .setPosition({ ...initPosition }) .setRotation({ x: 0, y: 0, z: 0, }) .emit() // 可以接收两个参数来设置发射器发射粒子的总次数以及发射器的寿命。同时初始化发射器速率。这样发射器就能发射粒子。 .setTotalEmitTimes(Infinity) // 设置发射器的总发射次数 .setLife(Infinity) // 设置发射器的寿命(毫秒) return {emitter,body}; } // 火焰 static fire(initPosition = { x: 0, y: 0, z: 0 }) { const map = new THREE.TextureLoader().load(Particles.SmokeImageUrl); const material = new THREE.SpriteMaterial({ map: map, color: 0xffffff, // fog: true, }); const body = new THREE.Sprite(material); const emitter = new _Particle.Emitter(); emitter.damping = 0.02; const position = new _Particle.Position(); position.addZone(new _Particle.PointZone(0, 0, 0)); emitter .setRate( new _Particle.Rate( new _Particle.Span(20, 30), new _Particle.Span(0.01, 0.02) ) ) // 设置粒子发射的速率 .setInitializers([ new _Particle.Mass(30, 10, true, true), new _Particle.Life(1, 3, false, true), new _Particle.Body(body), new _Particle.Radius(1, 1, false, true), new _Particle.Rotation(0, 0, 0, true, true), position, new _Particle.RadialVelocity(4, new _Particle.Vector3D(0, 1, 0), 45, true), ]) //设置发射器的粒子初始化器 .setBehaviours([ new _Particle.Alpha(1, 0, Infinity, _Particle.ease.easeOutQuad, true), new _Particle.Color("#FF2D08", "#560000", Infinity, _Particle.ease.easeOutBack, true), new _Particle.Force(0, 2, 0, Infinity, _Particle.ease.easeLinear, true), new _Particle.Rotate(0, 0, 5, Infinity, _Particle.ease.easeLinear, true), ]) .setPosition({ ...initPosition }) .setRotation({ x: 0, y: 0, z: 0, }) .emit() .setTotalEmitTimes(Infinity) .setLife(Infinity) return {emitter,body}; } // 火线 static fireLine(initPosition = { x: 0, y: 0, z: 0 }) { const map = new THREE.TextureLoader().load(Particles.SmokeImageUrl); const material = new THREE.SpriteMaterial({ map: map, color: 0xffffff, // fog: true, }); const body = new THREE.Sprite(material); const emitter = new _Particle.Emitter(); emitter.damping = 0.02; const position = new _Particle.Position(); position.addZone( new _Particle.LineZone( 5, 0, 0, -5, 0, 0, ) ); emitter .setRate( new _Particle.Rate( new _Particle.Span(30, 50), new _Particle.Span(0.01, 0.02) ) ) // 设置粒子发射的速率 .setInitializers([ new _Particle.Mass(60, 50, false, true), new _Particle.Life(1, 3, false, true), new _Particle.Body(body), new _Particle.Radius(1, 1, false, true), new _Particle.Rotation(0, 0, 0, true, true), position, ]) //设置发射器的粒子初始化器 .setBehaviours([ new _Particle.Alpha(1, 0, Infinity, _Particle.ease.easeOutQuad, true), new _Particle.Color("#FF2D08", "#560000", Infinity, _Particle.ease.easeOutBack, true), new _Particle.Force(0, 2, 0, Infinity, _Particle.ease.easeLinear, true), ]) .setPosition({ ...initPosition }) .setRotation({ x: 0, y: 0, z: 0, }) .emit() .setTotalEmitTimes(Infinity) .setLife(Infinity) return {emitter,body}; } // 萤火虫 static firefly(initPosition = { x: 0, y: 0, z: 0 }) { const map = new THREE.TextureLoader().load(Particles.DotImageUrl); const material = new THREE.SpriteMaterial({ map: map, color: 0x000000, // fog: true, }); const body = new THREE.Sprite(material); const emitter = new _Particle.Emitter(); emitter.damping = 1; const position = new _Particle.Position(); position.addZone( new _Particle.BoxZone( 0, 0, 0, 100, 100, 100, ) ); emitter .setRate( new _Particle.Rate( new _Particle.Span(10, 20), new _Particle.Span(0.01, 0.02) ) ) .setInitializers([ new _Particle.Life(1, 3, false, true), new _Particle.Body(body), new _Particle.Radius(0.5, 0.5, false, true), position, ]) .setBehaviours([ new _Particle.Alpha(1, 0.1, Infinity, _Particle.ease.easeOutQuad, true), new _Particle.Color("#3EF506", "#E6D200", Infinity, _Particle.ease.easeLinear, true), new _Particle.RandomDrift(1, 2, 1, 0.7, Infinity, _Particle.ease.easeLinear), ]) .setPosition({ ...initPosition }) .setRotation({ x: 0, y: 0, z: 0, }) .emit() .setTotalEmitTimes(Infinity) .setLife(Infinity) return {emitter,body}; } // 烟花 static fireworks(initPosition = { x: 0, y: 0, z: 0 }) { const map = new THREE.TextureLoader().load(Particles.DotImageUrl); const material = new THREE.SpriteMaterial({ map: map, color: 0xff0000, blending: THREE.AdditiveBlending, // fog: true, }); const body = new THREE.Sprite(material); const emitter = new _Particle.Emitter(); const position = new _Particle.Position(); position.addZone(new _Particle.SphereZone(0, 0, 0, 1)); emitter .setRate( new _Particle.Rate( new _Particle.Span(30, 50), new _Particle.Span(0.05, 0.1) ) ) .setInitializers([ new _Particle.Mass(1,1, false, true), new _Particle.Life(1, 3, false, true), new _Particle.Body(body), new _Particle.Radius(1, 1, false, true), position, new _Particle.RadialVelocity(new _Particle.Span(50, 80), new _Particle.Vector3D(0, 1, 0), 30), ]) .setBehaviours([ new _Particle.Scale(new _Particle.Span(2, 2.5), 0, Infinity, _Particle.ease.easeLinear, true), new _Particle.Color('#FF0026', '#ffff11', Infinity, _Particle.ease.easeOutSine, true), new _Particle.Force(0, -0.6, 0, Infinity, _Particle.ease.easeLinear, true), new _Particle.RandomDrift(1, 1, 1, 0.5, Infinity, _Particle.ease.easeLinear), ]) .setPosition({ ...initPosition }) .setRotation({ x: 0, y: 0, z: 0, }) .emit() .setTotalEmitTimes(Infinity) .setLife(Infinity) return {emitter,body}; } } ================================================ FILE: packages/sdk/lib/core/commands/AddObjectCommand.ts ================================================ import { Command } from './Command'; import { ObjectLoader } from '../loader/ObjectLoader'; import App from "../app/App"; /** * @param object THREE.Object3D * @constructor */ class AddObjectCommand extends Command { public object; constructor( object ) { super(); this.type = 'AddObjectCommand'; this.object = object; if ( object !== undefined ) { this.name = `Add object`; } } execute() { App.addObject(this.object); App.select(this.object); } undo() { App.removeObject( this.object ); App.deselect(); } toJSON() { const output = super.toJSON(); output.object = this.object.toJSON(); return output; } fromJSON( json ) { super.fromJSON( json ); this.object = App.getObjectByUuid( json.object.object.uuid ); if ( this.object === undefined ) { const loader = new ObjectLoader(); this.object = loader.parse( json.object ); } } } export { AddObjectCommand }; ================================================ FILE: packages/sdk/lib/core/commands/AddScriptCommand.ts ================================================ import {Object3D} from "three"; import { Command } from './Command'; import { useDispatchSignal } from "@/hooks"; import App from "../app/App"; /** * @param object THREE.Object3D * @param script javascript object * @constructor */ class AddScriptCommand extends Command { private object: Object3D; private script: any; constructor(object:Object3D, script) { super(); this.type = 'AddScriptCommand'; this.name = 'Add script'; this.object = object; this.script = script; } execute() { if (App.scripts[this.object.uuid] === undefined) { App.scripts[this.object.uuid] = []; } App.scripts[this.object.uuid].push(this.script); useDispatchSignal("scriptAdded", this.object,this.script); } undo() { if (App.scripts[ this.object.uuid ] === undefined ) return; const index = App.scripts[ this.object.uuid ].indexOf( this.script ); if (index !== -1) { App.scripts[ this.object.uuid ].splice( index, 1 ); } useDispatchSignal("scriptRemoved", this.object,this.script); } toJSON() { const output = super.toJSON(); output.objectUuid = this.object.uuid; output.script = this.script; return output; } fromJSON(json) { super.fromJSON( json ); this.script = json.script; this.object = App.getObjectByUuid(json.objectUuid) as Object3D; } } export { AddScriptCommand }; ================================================ FILE: packages/sdk/lib/core/commands/Command.ts ================================================ /** * @constructor */ class Command { protected id:number; protected inMemory:boolean; public updatable:boolean; protected type:string; protected name:string; constructor() { this.id = - 1; this.inMemory = false; this.updatable = false; this.type = ''; this.name = ''; } toJSON() { const output:any = {}; output.type = this.type; output.id = this.id; output.name = this.name; return output; } fromJSON( json ) { this.inMemory = true; this.type = json.type; this.id = json.id; this.name = json.name; } } export { Command }; ================================================ FILE: packages/sdk/lib/core/commands/Commands.ts ================================================ export { AddObjectCommand } from './AddObjectCommand'; export { AddScriptCommand } from './AddScriptCommand'; export { MoveObjectCommand } from './MoveObjectCommand'; export { RemoveObjectCommand } from './RemoveObjectCommand'; export { RemoveScriptCommand } from './RemoveScriptCommand'; export { SetColorCommand } from './SetColorCommand'; export { SetGeometryCommand } from './SetGeometryCommand'; export { SetGeometryValueCommand } from './SetGeometryValueCommand'; export { SetMaterialColorCommand } from './SetMaterialColorCommand'; export { SetMaterialCommand } from './SetMaterialCommand'; export { SetMaterialMapCommand } from './SetMaterialMapCommand'; export { SetMaterialRangeCommand } from './SetMaterialRangeCommand'; export { SetMaterialValueCommand } from './SetMaterialValueCommand'; export { SetMaterialVectorCommand } from './SetMaterialVectorCommand'; export { SetPositionCommand } from './SetPositionCommand'; export { SetRotationCommand } from './SetRotationCommand'; export { SetScaleCommand } from './SetScaleCommand'; export { SetSceneCommand } from './SetSceneCommand'; export { SetScriptValueCommand } from './SetScriptValueCommand'; export { SetUuidCommand } from './SetUuidCommand'; export { SetValueCommand } from './SetValueCommand'; ================================================ FILE: packages/sdk/lib/core/commands/MoveObjectCommand.ts ================================================ import { Command } from './Command'; import { useDispatchSignal } from "@/hooks"; import App from "../app/App"; /** * @param object THREE.Object3D * @param newParent THREE.Object3D * @param newBefore THREE.Object3D * @constructor */ class MoveObjectCommand extends Command { public object; public oldParent; public oldIndex; public newParent; public newIndex; public newBefore; constructor(object, newParent, newBefore ) { super(); this.type = 'MoveObjectCommand'; this.name = 'Move object'; this.object = object; this.oldParent = ( object !== undefined ) ? object.parent : undefined; this.oldIndex = ( this.oldParent !== undefined ) ? this.oldParent.children.indexOf( this.object ) : undefined; this.newParent = newParent; if ( newBefore !== undefined ) { this.newIndex = ( newParent !== undefined ) ? newParent.children.indexOf( newBefore ) : undefined; } else { this.newIndex = ( newParent !== undefined ) ? newParent.children.length : undefined; } if ( this.oldParent === this.newParent && this.newIndex > this.oldIndex ) { this.newIndex--; } this.newBefore = newBefore; } execute() { this.oldParent.remove(this.object); /** 放置到新组下时不改变世界坐标 **/ // this.newParent.updateWorldMatrix(true, false); // const _m1 = new Matrix4(); // _m1.copy(this.newParent.matrixWorld).invert(); // if (this.object.parent !== null) { // this.object.parent.updateWorldMatrix( true, false ); // _m1.multiply( this.object.parent.matrixWorld ); // } // this.object.applyMatrix4( _m1 ); /** 放置到新组下时不改变世界坐标 End **/ const children = this.newParent.children; children.splice( this.newIndex, 0, this.object ); this.object.parent = this.newParent; /** 放置到新组下时不改变世界坐标 **/ // this.object.updateWorldMatrix( false, true ); /** 放置到新组下时不改变世界坐标 End **/ this.object.dispatchEvent({ type: 'added' }); useDispatchSignal("sceneGraphChanged"); } undo() { this.newParent.remove(this.object); /** 撤销时不改变世界坐标 **/ // this.oldParent.updateWorldMatrix(true, false); // const _m1 = new Matrix4(); // _m1.copy(this.oldParent.matrixWorld).invert(); // if (this.object.parent !== null) { // this.object.parent.updateWorldMatrix(true, false); // _m1.multiply( this.object.parent.matrixWorld ); // } // this.object.applyMatrix4(_m1); /** 撤销时不改变世界坐标 End **/ const children = this.oldParent.children; children.splice( this.oldIndex, 0, this.object ); this.object.parent = this.oldParent; /** 撤销时不改变世界坐标 **/ // this.object.updateWorldMatrix( false, true ); /** 撤销时不改变世界坐标 End **/ this.object.dispatchEvent( { type: 'added' } ); useDispatchSignal("sceneGraphChanged"); } toJSON() { const output = super.toJSON(); output.objectUuid = this.object.uuid; output.newParentUuid = this.newParent.uuid; output.oldParentUuid = this.oldParent.uuid; output.newIndex = this.newIndex; output.oldIndex = this.oldIndex; return output; } fromJSON(json) { super.fromJSON(json); this.object = App.getObjectByUuid(json.objectUuid); this.oldParent = App.getObjectByUuid(json.oldParentUuid); if (this.oldParent === undefined) { this.oldParent = App.scene; } this.newParent = App.getObjectByUuid(json.newParentUuid); if (this.newParent === undefined) { this.newParent = App.scene; } this.newIndex = json.newIndex; this.oldIndex = json.oldIndex; } } export { MoveObjectCommand }; ================================================ FILE: packages/sdk/lib/core/commands/RemoveObjectCommand.ts ================================================ import { Command } from './Command'; import { ObjectLoader } from '../loader/ObjectLoader'; import App from "../app/App"; /** * @param object THREE.Object3D * @constructor */ class RemoveObjectCommand extends Command { public object; public parent; public index; constructor( object ) { super(); this.type = 'RemoveObjectCommand'; this.name = 'Remove object'; this.object = object; this.parent = ( object !== undefined ) ? object.parent : undefined; if ( this.parent !== undefined ) { this.index = this.parent.children.indexOf( this.object ); } } execute() { App.removeObject( this.object ); App.deselect(); } undo() { App.addObject( this.object, this.parent, this.index ); App.select( this.object ); } toJSON() { const output = super.toJSON(); output.object = this.object.toJSON(); output.index = this.index; output.parentUuid = this.parent.uuid; return output; } fromJSON( json ) { super.fromJSON( json ); this.parent = App.getObjectByUuid( json.parentUuid ); if ( this.parent === undefined ) { this.parent = App.scene; } this.index = json.index; this.object = App.getObjectByUuid( json.object.object.uuid ); if ( this.object === undefined ) { const loader = new ObjectLoader(); this.object = loader.parse( json.object ); } } } export { RemoveObjectCommand }; ================================================ FILE: packages/sdk/lib/core/commands/RemoveScriptCommand.ts ================================================ import {Object3D} from "three"; import { Command } from './Command'; import { useDispatchSignal } from "@/hooks"; import App from "../app/App"; /** * @param object THREE.Object3D * @param script javascript object * @constructor */ class RemoveScriptCommand extends Command { private object: Object3D; private script: any; private index: number = -1; constructor(object:Object3D, script) { super(); this.type = 'RemoveScriptCommand'; this.name = 'Remove script'; this.object = object; this.script = script; if (this.object && this.script) { this.index = App.scripts[this.object.uuid].findIndex((i) => i.name === this.script.name); } } execute() { if (App.scripts[ this.object.uuid ] === undefined) return; if (this.index !== -1) { App.scripts[this.object.uuid].splice( this.index, 1 ); } useDispatchSignal("scriptRemoved",this.object,this.script); } undo() { if (App.scripts[ this.object.uuid ] === undefined) { App.scripts[ this.object.uuid ] = []; } App.scripts[this.object.uuid].splice(this.index, 0, this.script); useDispatchSignal("scriptAdded",this.object,this.script); } toJSON() { const output = super.toJSON(); output.objectUuid = this.object.uuid; output.script = this.script; output.index = this.index; return output; } fromJSON(json) { super.fromJSON( json ); this.script = json.script; this.index = json.index; this.object = App.getObjectByUuid(json.objectUuid) as Object3D; } } export { RemoveScriptCommand }; ================================================ FILE: packages/sdk/lib/core/commands/SetColorCommand.ts ================================================ import { Command } from './Command'; import { useDispatchSignal } from "@/hooks/useSignal"; import App from "../app/App"; /** * @param object THREE.Object3D * @param attributeName string * @param newValue integer representing a hex color value * @constructor */ class SetColorCommand extends Command { public object; public attributeName; public oldValue; public newValue; constructor(object, attributeName, newValue ) { super(); this.type = 'SetColorCommand'; this.name = `Set ${attributeName}`; this.updatable = true; this.object = object; this.attributeName = attributeName; this.oldValue = (object !== undefined) ? this.object[this.attributeName].getStyle() : undefined; this.newValue = newValue; } execute() { this.object[ this.attributeName ].setStyle(this.newValue); useDispatchSignal("objectChanged",this.object); } undo() { this.object[ this.attributeName ].setStyle(this.oldValue); useDispatchSignal("objectChanged",this.object); } update( cmd ) { this.newValue = cmd.newValue; } toJSON() { const output = super.toJSON(); output.objectUuid = this.object.uuid; output.attributeName = this.attributeName; output.oldValue = this.oldValue; output.newValue = this.newValue; return output; } fromJSON( json ) { super.fromJSON( json ); this.object = App.getObjectByUuid( json.objectUuid ); this.attributeName = json.attributeName; this.oldValue = json.oldValue; this.newValue = json.newValue; } } export { SetColorCommand }; ================================================ FILE: packages/sdk/lib/core/commands/SetGeometryCommand.ts ================================================ import { Command } from './Command'; import { BufferGeometry,Mesh, InstancedBufferGeometry} from 'three'; import { ObjectLoader } from '../loader/ObjectLoader'; import {useDispatchSignal} from "@/hooks"; import App from "../app/App"; /** * @param editor Editor * @param object THREE.Object3D * @param newGeometry THREE.Geometry * @constructor */ class SetGeometryCommand extends Command { object:Mesh; private oldGeometry: BufferGeometry | InstancedBufferGeometry | undefined; private newGeometry: BufferGeometry | InstancedBufferGeometry constructor(object:Mesh, newGeometry:BufferGeometry) { super(); this.type = 'SetGeometryCommand'; this.name = 'Set geometry'; this.updatable = true; this.object = object; this.oldGeometry = ( object !== undefined ) ? object.geometry : undefined; this.newGeometry = newGeometry; } execute() { this.object.geometry.dispose(); this.object.geometry = this.newGeometry; this.object.geometry.computeBoundingSphere(); useDispatchSignal("geometryChanged",this.object); useDispatchSignal("sceneGraphChanged"); } undo() { this.object.geometry.dispose(); this.oldGeometry && (this.object.geometry = this.oldGeometry); this.object.geometry.computeBoundingSphere(); useDispatchSignal("geometryChanged",this.object); useDispatchSignal("sceneGraphChanged"); } update(cmd: { newGeometry: BufferGeometry | InstancedBufferGeometry; }) { this.newGeometry = cmd.newGeometry; } toJSON() { const output = super.toJSON(); output.objectUuid = this.object.uuid; output.oldGeometry = this.object.geometry.toJSON(); output.newGeometry = this.newGeometry.toJSON(); return output; } fromJSON( json ) { super.fromJSON( json ); this.object = App.getObjectByUuid( json.objectUuid ) as Mesh; this.oldGeometry = parseGeometry( json.oldGeometry ); this.newGeometry = parseGeometry( json.newGeometry ); function parseGeometry(data) { const loader = new ObjectLoader(); return loader.parseGeometries( [ data ] )[ data.uuid ]; } } } export { SetGeometryCommand }; ================================================ FILE: packages/sdk/lib/core/commands/SetGeometryValueCommand.ts ================================================ import { Command } from './Command'; import { useDispatchSignal } from "@/hooks/useSignal"; import App from "../app/App"; /** * @param object THREE.Object3D * @param attributeName string * @param newValue number, string, boolean or object * @constructor */ class SetGeometryValueCommand extends Command { public object; public attributeName; public oldValue; public newValue; constructor(object, attributeName, newValue ) { super(); this.type = 'SetGeometryValueCommand'; this.name = `Set geometry.${attributeName}`; this.object = object; this.attributeName = attributeName; this.oldValue = ( object !== undefined ) ? object.geometry[ attributeName ] : undefined; this.newValue = newValue; } execute() { this.object.geometry[ this.attributeName ] = this.newValue; useDispatchSignal("objectChanged",this.object); useDispatchSignal("geometryChanged",this.object); useDispatchSignal("sceneGraphChanged"); } undo() { this.object.geometry[ this.attributeName ] = this.oldValue; useDispatchSignal("objectChanged",this.object); useDispatchSignal("geometryChanged",this.object); useDispatchSignal("sceneGraphChanged"); } toJSON() { const output = super.toJSON(); output.objectUuid = this.object.uuid; output.attributeName = this.attributeName; output.oldValue = this.oldValue; output.newValue = this.newValue; return output; } fromJSON( json ) { super.fromJSON( json ); this.object = App.getObjectByUuid( json.objectUuid ); this.attributeName = json.attributeName; this.oldValue = json.oldValue; this.newValue = json.newValue; } } export { SetGeometryValueCommand }; ================================================ FILE: packages/sdk/lib/core/commands/SetMaterialColorCommand.ts ================================================ import { Command } from './Command'; import { useDispatchSignal } from "@/hooks"; import App from "../app/App"; /** * @param object THREE.Object3D * @param attributeName string * @param newValue integer representing a hex color value * @constructor */ class SetMaterialColorCommand extends Command { public object; public material; public oldValue; public newValue; public attributeName; constructor(object, attributeName, newValue, materialSlot ) { super(); this.type = 'SetMaterialColorCommand'; this.name = `Set material.${attributeName}`; this.updatable = true; this.object = object; this.material = (this.object !== undefined) ? App.getObjectMaterial(object, materialSlot) : undefined; this.oldValue = (this.material !== undefined) ? this.material[attributeName].getHex() : undefined; this.newValue = newValue; this.attributeName = attributeName; } execute() { this.material[ this.attributeName ].setHex( this.newValue ); useDispatchSignal("materialChanged",this.material); } undo() { this.material[ this.attributeName ].setHex( this.oldValue ); useDispatchSignal("materialChanged",this.material); } update( cmd ) { this.newValue = cmd.newValue; } toJSON() { const output = super.toJSON(); output.objectUuid = this.object.uuid; output.attributeName = this.attributeName; output.oldValue = this.oldValue; output.newValue = this.newValue; return output; } fromJSON( json ) { super.fromJSON( json ); this.object = App.getObjectByUuid( json.objectUuid ); this.attributeName = json.attributeName; this.oldValue = json.oldValue; this.newValue = json.newValue; } } export { SetMaterialColorCommand }; ================================================ FILE: packages/sdk/lib/core/commands/SetMaterialCommand.ts ================================================ import { Command } from './Command'; import { ObjectLoader } from '../loader/ObjectLoader'; import {useDispatchSignal} from "@/hooks"; import App from "../app/App"; /** * @param object THREE.Object3D * @param newMaterial THREE.Material * @constructor */ class SetMaterialCommand extends Command { private object; private materialSlot; private oldMaterial; private newMaterial; constructor(object, newMaterial, materialSlot? ) { super(); this.type = 'SetMaterialCommand'; this.name = 'Set new material'; this.object = object; this.materialSlot = materialSlot; this.oldMaterial = App.getObjectMaterial( object, materialSlot ); this.newMaterial = newMaterial; } execute() { App.setObjectMaterial( this.object, this.materialSlot, this.newMaterial ); useDispatchSignal("materialChanged",this.newMaterial); } undo() { App.setObjectMaterial( this.object, this.materialSlot, this.oldMaterial ); useDispatchSignal("materialChanged",this.oldMaterial); } toJSON() { const output = super.toJSON(); output.objectUuid = this.object.uuid; output.oldMaterial = this.oldMaterial.toJSON(); output.newMaterial = this.newMaterial.toJSON(); return output; } fromJSON( json ) { super.fromJSON( json ); this.object = App.getObjectByUuid( json.objectUuid ); this.oldMaterial = parseMaterial( json.oldMaterial ); this.newMaterial = parseMaterial( json.newMaterial ); function parseMaterial( json ) { const loader = new ObjectLoader(); //@ts-ignore const images = loader.parseImages( json.images ); const textures = loader.parseTextures( json.textures, images ); const materials = loader.parseMaterials( [ json ], textures ); return materials[ json.uuid ]; } } } export { SetMaterialCommand }; ================================================ FILE: packages/sdk/lib/core/commands/SetMaterialMapCommand.ts ================================================ import { Command } from './Command'; import { ObjectLoader } from '../loader/ObjectLoader'; import { useDispatchSignal } from "@/hooks"; import App from "../app/App"; /** * @param object THREE.Object3D * @param mapName string * @param newMap THREE.Texture * @constructor */ class SetMaterialMapCommand extends Command { public object; private material; private oldMap; private newMap; private mapName; constructor( object, mapName, newMap, materialSlot ) { super(); this.type = 'SetMaterialMapCommand'; this.name = `Set material.${mapName}`; this.object = object; this.material = App.getObjectMaterial( object, materialSlot ); this.oldMap = ( object !== undefined ) ? this.material[ mapName ] : undefined; this.newMap = newMap; this.mapName = mapName; } execute() { if ( this.oldMap !== null && this.oldMap !== undefined ) this.oldMap.dispose(); this.material[ this.mapName ] = this.newMap; this.material.needsUpdate = true; useDispatchSignal("materialChanged",this.material) } undo() { this.material[ this.mapName ] = this.oldMap; this.material.needsUpdate = true; useDispatchSignal("materialChanged",this.material) } toJSON() { const output = super.toJSON(); output.objectUuid = this.object.uuid; output.mapName = this.mapName; output.newMap = serializeMap( this.newMap ); output.oldMap = serializeMap( this.oldMap ); return output; // serializes a map (THREE.Texture) function serializeMap( map ) { if ( map === null || map === undefined ) return null; const meta = { geometries: {}, materials: {}, textures: {}, images: {} }; const json = map.toJSON( meta ); const images = extractFromCache( meta.images ); if ( images.length > 0 ) json.images = images; json.sourceFile = map.sourceFile; return json; } // Note: The function 'extractFromCache' is copied from Object3D.toJSON() // extract data from the cache hash // remove metadata on each item // and return as array function extractFromCache( cache ) { const values:any = []; for ( const key in cache ) { const data = cache[ key ]; delete data.metadata; values.push( data ); } return values; } } fromJSON( json ) { super.fromJSON( json ); this.object = App.getObjectByUuid( json.objectUuid ); this.mapName = json.mapName; this.oldMap = parseTexture( json.oldMap ); this.newMap = parseTexture( json.newMap ); function parseTexture( json ) { let map; if ( json !== null ) { const loader = new ObjectLoader(); const images = loader.parseImages( json.images,()=>{} ); const textures = loader.parseTextures( [ json ], images ); map = textures[ json.uuid ]; map.sourceFile = json.sourceFile; } return map; } } } export { SetMaterialMapCommand }; ================================================ FILE: packages/sdk/lib/core/commands/SetMaterialRangeCommand.ts ================================================ import { Command } from './Command'; import { useDispatchSignal } from "@/hooks"; import App from "../app/App"; /** * @param object THREE.Object3D * @param attributeName string * @param newMinValue number * @param newMaxValue number * @constructor */ class SetMaterialRangeCommand extends Command { public object; public material; public oldValue; public newValue; public attributeName; constructor(object, attributeName, newMinValue, newMaxValue, materialSlot ) { super(); this.type = 'SetMaterialRangeCommand'; this.name = `Set material.${attributeName}`; this.updatable = true; this.object = object; this.material = App.getObjectMaterial( object, materialSlot ); this.oldValue = ( this.material !== undefined && this.material[ attributeName ] !== undefined ) ? [ ...this.material[ attributeName ] ] : undefined; this.newValue = [ newMinValue, newMaxValue ]; this.attributeName = attributeName; } execute() { this.material[ this.attributeName ] = [ ...this.newValue ]; this.material.needsUpdate = true; useDispatchSignal("objectChanged",this.object); useDispatchSignal("materialChanged",this.material); } undo() { this.material[ this.attributeName ] = [ ...this.oldValue ]; this.material.needsUpdate = true; useDispatchSignal("objectChanged",this.object); useDispatchSignal("materialChanged",this.material); } update( cmd ) { this.newValue = [ ...cmd.newValue ]; } toJSON() { const output = super.toJSON(); output.objectUuid = this.object.uuid; output.attributeName = this.attributeName; output.oldValue = [ ...this.oldValue ]; output.newValue = [ ...this.newValue ]; return output; } fromJSON( json ) { super.fromJSON( json ); this.attributeName = json.attributeName; this.oldValue = [ ...json.oldValue ]; this.newValue = [ ...json.newValue ]; this.object = App.getObjectByUuid( json.objectUuid ); } } export { SetMaterialRangeCommand }; ================================================ FILE: packages/sdk/lib/core/commands/SetMaterialValueCommand.ts ================================================ import { Command } from './Command'; import { useDispatchSignal } from "@/hooks"; import App from "../app/App"; /** * @param object THREE.Object3D * @param attributeName string * @param newValue number, string, boolean or object * @constructor */ class SetMaterialValueCommand extends Command { public object; public material; public oldValue; public newValue; public attributeName; constructor(object, attributeName, newValue, materialSlot = 0 ) { super(); this.type = 'SetMaterialValueCommand'; this.name = `Set material.${attributeName}`; this.updatable = true; this.object = object; this.material = App.getObjectMaterial( object, materialSlot ); this.oldValue = ( this.material !== undefined ) ? this.material[ attributeName ] : undefined; this.newValue = newValue; this.attributeName = attributeName; } execute() { this.material[ this.attributeName ] = this.newValue; this.material.needsUpdate = true; useDispatchSignal("objectChanged",this.object); useDispatchSignal("materialChanged",this.material); } undo() { this.material[ this.attributeName ] = this.oldValue; this.material.needsUpdate = true; useDispatchSignal("objectChanged",this.object); useDispatchSignal("materialChanged",this.material); } update( cmd ) { this.newValue = cmd.newValue; } toJSON() { const output = super.toJSON(); output.objectUuid = this.object.uuid; output.attributeName = this.attributeName; output.oldValue = this.oldValue; output.newValue = this.newValue; return output; } fromJSON( json ) { super.fromJSON( json ); this.attributeName = json.attributeName; this.oldValue = json.oldValue; this.newValue = json.newValue; this.object = App.getObjectByUuid( json.objectUuid ); } } export { SetMaterialValueCommand }; ================================================ FILE: packages/sdk/lib/core/commands/SetMaterialVectorCommand.ts ================================================ import { Command } from './Command'; import { useDispatchSignal } from "@/hooks"; import App from "../app/App"; class SetMaterialVectorCommand extends Command { public object; private material; private oldValue; private newValue; private attributeName; constructor(object, attributeName, newValue, materialSlot) { super(); this.type = 'SetMaterialColorCommand'; this.name = `Set material.${attributeName}`; this.updatable = true; this.object = object; this.material = App.getObjectMaterial( object, materialSlot ); this.attributeName = attributeName; this.oldValue = (this.material !== undefined) ? this.attribute.toArray() : undefined; this.newValue = newValue; } get attribute() { return this.attributeName.split('.').reduce((obj, key) => obj[key], this.material); } execute() { this.attribute.fromArray(this.newValue); useDispatchSignal("materialChanged",this.material) } undo() { this.attribute.fromArray(this.oldValue); useDispatchSignal("materialChanged",this.material) } update( cmd ) { this.newValue = cmd.newValue; } toJSON() { const output = super.toJSON(); output.objectUuid = this.object.uuid; output.attributeName = this.attributeName; output.oldValue = this.oldValue; output.newValue = this.newValue; return output; } fromJSON( json ) { super.fromJSON( json ); this.object = App.getObjectByUuid( json.objectUuid ); this.attributeName = json.attributeName; this.oldValue = json.oldValue; this.newValue = json.newValue; } } export { SetMaterialVectorCommand }; ================================================ FILE: packages/sdk/lib/core/commands/SetPositionCommand.ts ================================================ import { Vector3 } from 'three'; import { Command } from './Command'; import { useDispatchSignal } from '@/hooks'; import App from "../app/App"; /** * @param object THREE.Object3D * @param newValue THREE.Vector3 * @param optionaloldValue THREE.Vector3 * @constructor */ class SetPositionCommand extends Command { public object; public oldValue; public newValue; constructor(object, newValue, optionaloldValue? ) { super(); this.type = 'SetPositionCommand'; this.name = `Set position`; this.updatable = true; this.object = object; if ( object !== undefined && newValue !== undefined ) { this.oldValue = object.position.clone(); this.newValue = newValue.clone(); } if ( optionaloldValue !== undefined ) { this.oldValue = optionaloldValue.clone(); } } execute() { this.object.position.copy( this.newValue ); this.object.updateMatrixWorld( true ); useDispatchSignal("objectChanged",this.object) } undo() { this.object.position.copy( this.oldValue ); this.object.updateMatrixWorld( true ); useDispatchSignal("objectChanged",this.object); } update( command ) { this.newValue.copy( command.newValue ); } toJSON() { const output = super.toJSON(); output.objectUuid = this.object.uuid; output.oldValue = this.oldValue.toArray(); output.newValue = this.newValue.toArray(); return output; } fromJSON( json ) { super.fromJSON( json ); this.object = App.getObjectByUuid( json.objectUuid ); this.oldValue = new Vector3().fromArray( json.oldValue ); this.newValue = new Vector3().fromArray( json.newValue ); } } export { SetPositionCommand }; ================================================ FILE: packages/sdk/lib/core/commands/SetRotationCommand.ts ================================================ import { Euler } from 'three'; import { Command } from './Command'; import { useDispatchSignal } from "@/hooks"; import App from "../app/App"; /** * @param object THREE.Object3D * @param newValue THREE.Euler * @param optionaloldValue THREE.Euler * @constructor */ class SetRotationCommand extends Command { public object; public oldValue; public newValue; constructor(object, newValue, optionaloldValue ) { super(); this.type = 'SetRotationCommand'; this.name = `Set rotation`; this.updatable = true; this.object = object; if ( object !== undefined && newValue !== undefined ) { this.oldValue = object.rotation.clone(); this.newValue = newValue.clone(); } if ( optionaloldValue !== undefined ) { this.oldValue = optionaloldValue.clone(); } } execute() { this.object.rotation.copy( this.newValue ); this.object.updateMatrixWorld( true ); useDispatchSignal("objectChanged",this.object); } undo() { this.object.rotation.copy( this.oldValue ); this.object.updateMatrixWorld( true ); useDispatchSignal("objectChanged",this.object); } update( command ) { this.newValue.copy( command.newValue ); } toJSON() { const output = super.toJSON(); output.objectUuid = this.object.uuid; output.oldValue = this.oldValue.toArray(); output.newValue = this.newValue.toArray(); return output; } fromJSON( json ) { super.fromJSON( json ); this.object = App.getObjectByUuid( json.objectUuid ); this.oldValue = new Euler().fromArray( json.oldValue ); this.newValue = new Euler().fromArray( json.newValue ); } } export { SetRotationCommand }; ================================================ FILE: packages/sdk/lib/core/commands/SetScaleCommand.ts ================================================ import { Vector3 } from 'three'; import { Command } from './Command'; import { useDispatchSignal } from "@/hooks/useSignal"; import App from "../app/App"; /** * @param object THREE.Object3D * @param newValue THREE.Vector3 * @param optionaloldValue THREE.Vector3 * @constructor */ class SetScaleCommand extends Command { public object; public oldValue; public newValue; constructor(object, newValue, optionaloldValue ) { super(); this.type = 'SetScaleCommand'; this.name = `Set scale`; this.updatable = true; this.object = object; if ( object !== undefined && newValue !== undefined ) { this.oldValue = object.scale.clone(); this.newValue = newValue.clone(); } if ( optionaloldValue !== undefined ) { this.oldValue = optionaloldValue.clone(); } } execute() { this.object.scale.copy( this.newValue ); this.object.updateMatrixWorld( true ); useDispatchSignal("objectChanged",this.object); } undo() { this.object.scale.copy( this.oldValue ); this.object.updateMatrixWorld( true ); useDispatchSignal("objectChanged",this.object); } update( command ) { this.newValue.copy( command.newValue ); } toJSON() { const output = super.toJSON(); output.objectUuid = this.object.uuid; output.oldValue = this.oldValue.toArray(); output.newValue = this.newValue.toArray(); return output; } fromJSON( json ) { super.fromJSON( json ); this.object = App.getObjectByUuid( json.objectUuid ); this.oldValue = new Vector3().fromArray( json.oldValue ); this.newValue = new Vector3().fromArray( json.newValue ); } } export { SetScaleCommand }; ================================================ FILE: packages/sdk/lib/core/commands/SetSceneCommand.ts ================================================ import {Scene} from "three"; import { Command } from './Command'; import { SetUuidCommand } from './SetUuidCommand'; import { SetValueCommand } from './SetValueCommand'; import { AddObjectCommand } from './AddObjectCommand'; import {useSignal} from "@/hooks"; import App from "../app/App"; const {setActive,dispatch} = useSignal(); /** * @param scene containing children to import * @constructor */ class SetSceneCommand extends Command { private cmdArray: any[]; constructor(scene:Scene) { super(); this.type = 'SetSceneCommand'; this.name = 'Set scene'; this.cmdArray = []; if (scene !== undefined) { this.cmdArray.push( new SetUuidCommand(App.scene, scene.uuid)); this.cmdArray.push( new SetValueCommand(App.scene, 'name', scene.name)); this.cmdArray.push( new SetValueCommand(App.scene, 'userData', JSON.parse(JSON.stringify(scene.userData)))); while ( scene.children.length > 0 ) { const child = scene.children.pop(); this.cmdArray.push(new AddObjectCommand(child)); } } } execute() { setActive("sceneGraphChanged",false); for (let i = 0; i < this.cmdArray.length; i++) { this.cmdArray[i].execute(); } setActive("sceneGraphChanged",true); dispatch("sceneGraphChanged"); } undo() { setActive("sceneGraphChanged",false); for (let i = this.cmdArray.length - 1; i >= 0; i--) { this.cmdArray[i].undo(); } setActive("sceneGraphChanged",true); dispatch("sceneGraphChanged"); } toJSON() { const output = super.toJSON(); const cmds:string[] = []; for ( let i = 0; i < this.cmdArray.length; i ++ ) { cmds.push(this.cmdArray[ i ].toJSON()); } output.cmds = cmds; return output; } fromJSON(json) { super.fromJSON( json ); const cmds = json.cmds; for ( let i = 0; i < cmds.length; i ++ ) { // @ts-ignore const cmd = new window[cmds[i].type](); // 创建类型为“json.type”的新对象 cmd.fromJSON(cmds[i]); this.cmdArray.push(cmd); } } } export { SetSceneCommand }; ================================================ FILE: packages/sdk/lib/core/commands/SetScriptValueCommand.ts ================================================ import { Object3D } from 'three'; import { Command } from './Command'; import { useDispatchSignal } from "@/hooks"; import App from "../app/App"; /** * @param object THREE.Object3D * @param script javascript object * @param attributeName string * @param newValue string, object * @constructor */ class SetScriptValueCommand extends Command { private object: Object3D; private script: IScript.IStruct; private attributeName: string; private oldValue: any; private newValue: string; constructor(object:Object3D, script:IScript.IStruct, attributeName:string, newValue:string) { super(); this.type = 'SetScriptValueCommand'; this.name = `Set script.${attributeName}`; this.updatable = true; this.object = object; this.script = script; this.attributeName = attributeName; this.oldValue = ( script !== undefined ) ? script[ this.attributeName ] : undefined; this.newValue = newValue; } execute() { this.script[this.attributeName] = this.newValue; useDispatchSignal("scriptChanged",this.attributeName,this.object,this.script); } undo() { this.script[this.attributeName] = this.oldValue; useDispatchSignal("scriptChanged",this.attributeName,this.object,this.script); } update(cmd) { this.newValue = cmd.newValue; } toJSON() { const output = super.toJSON(); output.objectUuid = this.object.uuid; output.index = App.scripts[this.object.uuid].indexOf(this.script); output.attributeName = this.attributeName; output.oldValue = this.oldValue; output.newValue = this.newValue; return output; } fromJSON(json) { super.fromJSON(json); this.oldValue = json.oldValue; this.newValue = json.newValue; this.attributeName = json.attributeName; this.object = App.getObjectByUuid(json.objectUuid) as Object3D; this.script = App.scripts[json.objectUuid][json.index]; } } export { SetScriptValueCommand }; ================================================ FILE: packages/sdk/lib/core/commands/SetUuidCommand.ts ================================================ import { Command } from './Command'; import { useDispatchSignal } from "@/hooks"; import App from "../app/App"; /** * @param object THREE.Object3D * @param newValue string * @constructor */ class SetUuidCommand extends Command { public object; public oldValue; public newValue; constructor(object, newValue ) { super(); this.type = 'SetUuidCommand'; this.name = `Update uuid`; this.object = object; this.oldValue = ( object !== undefined ) ? object.uuid : undefined; this.newValue = newValue; } execute() { this.object.uuid = this.newValue; useDispatchSignal("objectChanged",this.object); useDispatchSignal("sceneGraphChanged"); } undo() { this.object.uuid = this.oldValue; useDispatchSignal("objectChanged",this.object); useDispatchSignal("sceneGraphChanged"); } toJSON() { const output = super.toJSON(); output.oldValue = this.oldValue; output.newValue = this.newValue; return output; } fromJSON( json ) { super.fromJSON( json ); this.oldValue = json.oldValue; this.newValue = json.newValue; this.object = App.getObjectByUuid( json.oldValue ); if ( this.object === undefined ) { this.object = App.getObjectByUuid( json.newValue ); } } } export { SetUuidCommand }; ================================================ FILE: packages/sdk/lib/core/commands/SetValueCommand.ts ================================================ import { Command } from './Command'; import { useDispatchSignal } from "@/hooks"; import App from "../app/App"; /** * @param object THREE.Object3D * @param attributeName string * @param newValue number, string, boolean or object * @constructor */ class SetValueCommand extends Command { public object; public attributeName; public oldValue; public newValue; constructor(object, attributeName, newValue) { super(); this.type = 'SetValueCommand'; this.name = `Set ${attributeName}`; this.updatable = true; this.object = object; this.attributeName = attributeName; this.oldValue = ( object !== undefined ) ? object[ attributeName ] : undefined; this.newValue = newValue; } execute() { this.object[ this.attributeName ] = this.newValue; useDispatchSignal("objectChanged",this.object); useDispatchSignal("sceneGraphChanged"); } undo() { this.object[ this.attributeName ] = this.oldValue; useDispatchSignal("objectChanged",this.object); useDispatchSignal("sceneGraphChanged"); } update( cmd ) { this.newValue = cmd.newValue; } toJSON() { const output = super.toJSON(); output.objectUuid = this.object.uuid; output.attributeName = this.attributeName; output.oldValue = this.oldValue; output.newValue = this.newValue; return output; } fromJSON( json ) { super.fromJSON( json ); this.attributeName = json.attributeName; this.oldValue = json.oldValue; this.newValue = json.newValue; this.object = App.getObjectByUuid( json.objectUuid ); } } export { SetValueCommand }; ================================================ FILE: packages/sdk/lib/core/controls/DragControls.js ================================================ import { EventDispatcher, Matrix4, Plane, Raycaster, Vector2, Vector3 } from 'three'; const _plane = new Plane(); const _raycaster = new Raycaster(); const _pointer = new Vector2(); const _offset = new Vector3(); const _intersection = new Vector3(); const _worldPosition = new Vector3(); const _inverseMatrix = new Matrix4(); class DragControls extends EventDispatcher { constructor( _objects, _camera, _domElement ) { super(); _domElement.style.touchAction = 'none'; // disable touch scroll let _selected = null, _hovered = null; const _intersections = []; // let isMove = false; const scope = this; function activate() { _domElement.addEventListener( 'pointermove', onPointerMove ); _domElement.addEventListener( 'pointerdown', onPointerDown ); _domElement.addEventListener( 'pointerup', onPointerCancel ); _domElement.addEventListener( 'pointerleave', onPointerCancel ); } function deactivate() { _domElement.removeEventListener( 'pointermove', onPointerMove ); _domElement.removeEventListener( 'pointerdown', onPointerDown ); _domElement.removeEventListener( 'pointerup', onPointerCancel ); _domElement.removeEventListener( 'pointerleave', onPointerCancel ); _domElement.style.cursor = ''; } function dispose() { deactivate(); } function setObjects( objects ) { _objects = objects; } function getObjects() { return _objects; } function getRaycaster() { return _raycaster; } function onPointerMove( event ) { if ( !scope.enabled || !scope.enabledMove) return; isMove = true; updatePointer( event ); _raycaster.setFromCamera( _pointer, _camera ); if ( _selected ) { if ( _raycaster.ray.intersectPlane( _plane, _intersection ) ) { _selected.position.copy( _intersection.sub( _offset ).applyMatrix4( _inverseMatrix ) ); } scope.dispatchEvent( { type: 'drag', object: _selected } ); return; } // hover support if ( event.pointerType === 'mouse' || event.pointerType === 'pen' ) { _intersections.length = 0; _raycaster.setFromCamera( _pointer, _camera ); _raycaster.intersectObjects( _objects, true, _intersections ); if ( _intersections.length > 0 ) { const object = _intersections[ 0 ].object; _plane.setFromNormalAndCoplanarPoint( _camera.getWorldDirection( _plane.normal ), _worldPosition.setFromMatrixPosition( object.matrixWorld ) ); if ( _hovered !== object && _hovered !== null ) { scope.dispatchEvent( { type: 'hoveroff', object: _hovered } ); _domElement.style.cursor = 'auto'; _hovered = null; } if ( _hovered !== object ) { scope.dispatchEvent( { type: 'hoveron', object: object } ); _domElement.style.cursor = 'pointer'; _hovered = object; } } else { if ( _hovered !== null ) { scope.dispatchEvent( { type: 'hoveroff', object: _hovered } ); _domElement.style.cursor = 'auto'; _hovered = null; } } } } function onPointerDown( event ) { if (scope.enabled === false) return; updatePointer(event); _intersections.length = 0; _raycaster.setFromCamera( _pointer, _camera ); let objects = _objects; if(window.viewer.modules.transformControls){ if(window.viewer.modules.transformControls.object && window.viewer.modules.transformControls._gizmo){ // 如果有transformControls,就把transformControls的gizmo(仅箭头)也加进来 objects = objects.concat(Object.values(window.viewer.modules.transformControls._gizmo.picker)); } } _raycaster.intersectObjects( objects, true, _intersections ); if (_intersections.length > 0) { _selected = (scope.transformGroup === true) ? _objects[ 0 ] : _intersections[0].object; if(scope.enabledMove) { _plane.setFromNormalAndCoplanarPoint(_camera.getWorldDirection(_plane.normal), _worldPosition.setFromMatrixPosition(_selected.matrixWorld)); if (_raycaster.ray.intersectPlane(_plane, _intersection)) { _inverseMatrix.copy(_selected.parent.matrixWorld).invert(); _offset.copy(_intersection).sub(_worldPosition.setFromMatrixPosition(_selected.matrixWorld)); } _domElement.style.cursor = 'move'; } scope.dispatchEvent( { type: 'dragstart', object: _selected,e:event } ); } isMove = false; } function onPointerCancel(event) { if ( scope.enabled === false ) return; if ( _selected ) { scope.dispatchEvent( { type: 'dragend', object: _selected,e:event } ); _selected = null; }else if(!isMove){ // 添加点击空白处的事件 scope.dispatchEvent( { type: 'clickblank',e:event } ); } _domElement.style.cursor = _hovered ? 'pointer' : 'auto'; } function updatePointer( event ) { const rect = _domElement.getBoundingClientRect(); _pointer.x = ( event.clientX - rect.left ) / rect.width * 2 - 1; _pointer.y = - ( event.clientY - rect.top ) / rect.height * 2 + 1; } activate(); // API this.enabled = true; this.enabledMove = true; this.transformGroup = false; this.activate = activate; this.deactivate = deactivate; this.dispose = dispose; this.setObjects = setObjects; this.getObjects = getObjects; this.getRaycaster = getRaycaster; this.setDomElement = (domElement) => { _domElement = domElement; _domElement.style.touchAction = 'none'; deactivate(); activate(); } } } export { DragControls }; ================================================ FILE: packages/sdk/lib/core/expansion/Material.ts ================================================ import { Material } from "three"; /** * 从另一个材质中复制相同的属性(材质类型可能不同) * @param source - 用于被复制属性的材质,属性为引用 */ Material.prototype.copyAttr = function (source) { if (!source.isMaterial) return; Object.keys(source).forEach(key => { if (this.hasOwnProperty(key)){ this[key] = source[key]; } }) } ================================================ FILE: packages/sdk/lib/core/expansion/Object3D.ts ================================================ import * as THREE from "three"; /** * 在对象以及后代中执行的回调函数,仅对满足条件的对象执行 * @param callback - 以一个object3D对象作为第一个参数的函数。 * @param condition - 需要满足该条件才继续后续回调的条件函数 */ THREE.Object3D.prototype.traverseByCondition = function (callback, condition) { if (!condition(this)) return; callback(this); const children = this.children; // 优先使用子对象的traverseByCondition方法,如果没有则降级兜底 const fallbackFn = (child) => { if (condition(child)) { callback(child); } child.children.forEach(grandChild => fallbackFn(grandChild)); } for (let i = 0, l = children.length; i < l; i++) { // @ts-ignore if (children[i].traverseByCondition) { children[i].traverseByCondition(callback, condition); } else { // 降级兜底 fallbackFn(children[i]); } } } /** * 判断 parentObj 是否是 当前对象 的任意层级祖先(包括祖父、曾祖父等) * @param parentObj - 可能是祖先的对象 */ THREE.Object3D.prototype.isAncestor = function (parentObj) { let current: THREE.Object3D | null = this; while (current) { if (current === parentObj) return true; current = current.parent; } return false; } /** * 重写toJSON方法 */ THREE.Object3D.prototype.toJSON = function (meta: any) { // 当从JSON.stringify调用时,meta是一个字符串 const isRootObject = (meta === undefined || typeof meta === 'string'); // @ts-ignore const output: any = {}; // meta是一个散列,用于收集几何图形,材料。不提供它意味着这是被序列化的根对象。 if (isRootObject) { meta = { geometries: {}, materials: {}, textures: {}, images: {}, shapes: {}, skeletons: {}, animations: {}, nodes: {} }; output.metadata = { version: 4.6, type: 'Object', generator: 'Astral.Object3D.toJSON' }; } // 标准Object3D序列化 const object: any = { uuid: this.uuid, type: this.type }; if (this.name !== '') object.name = this.name; if (this.castShadow === true) object.castShadow = true; if (this.receiveShadow === true) object.receiveShadow = true; if (this.visible === false) object.visible = false; if (this.frustumCulled === false) object.frustumCulled = false; if (this.renderOrder !== 0) object.renderOrder = this.renderOrder; if (Object.keys(this.userData).length > 0) object.userData = this.userData; object.layers = this.layers.mask; object.matrix = this.matrix.toArray(); object.up = this.up.toArray(); if (this.matrixAutoUpdate === false) object.matrixAutoUpdate = false; // 对象特定属性 if (this.isInstancedMesh) { object.type = 'InstancedMesh'; object.count = this.count; object.instanceMatrix = this.instanceMatrix?.toJSON(); if (this.instanceColor !== null) object.instanceColor = this.instanceColor?.toJSON(); } if (this.isBatchedMesh) { object.type = 'BatchedMesh'; object.perObjectFrustumCulled = this.perObjectFrustumCulled; object.sortObjects = this.sortObjects; object.drawRanges = this._drawRanges; object.reservedRanges = this._reservedRanges; object.visibility = this._visibility; object.active = this._active; object.bounds = this._bounds.map(bound => ({ boxInitialized: bound.boxInitialized, boxMin: bound.box.min.toArray(), boxMax: bound.box.max.toArray(), sphereInitialized: bound.sphereInitialized, sphereRadius: bound.sphere.radius, sphereCenter: bound.sphere.center.toArray() })); object.maxInstanceCount = this._maxInstanceCount; object.maxVertexCount = this._maxVertexCount; object.maxIndexCount = this._maxIndexCount; object.geometryInitialized = this._geometryInitialized; object.geometryCount = this._geometryCount; object.matricesTexture = this._matricesTexture?.toJSON(meta); if (this._colorsTexture !== null) object.colorsTexture = this._colorsTexture?.toJSON(meta); if (this.boundingSphere !== null) { object.boundingSphere = { center: object.boundingSphere.center.toArray(), radius: object.boundingSphere.radius }; } if (this.boundingBox !== null) { object.boundingBox = { min: object.boundingBox.min.toArray(), max: object.boundingBox.max.toArray() }; } } function serialize(library, element) { if (library[element.uuid] === undefined) { library[element.uuid] = element.toJSON(meta); } return element.uuid; } if (this.isScene) { if (this.background) { if (this.background.isColor) { object.background = this.background.toJSON(); } else if (this.background.isTexture) { object.background = this.background.toJSON(meta).uuid; } } if (this.environment && this.environment.isTexture && this.environment.isRenderTargetTexture !== true) { object.environment = this.environment.toJSON(meta).uuid; } } else if (this.isMesh || this.isLine || this.isPoints) { object.geometry = serialize(meta.geometries, this.geometry); const parameters = this.geometry.parameters; if (parameters !== undefined && parameters.shapes !== undefined) { const shapes = parameters.shapes; if (Array.isArray(shapes)) { for (let i = 0, l = shapes.length; i < l; i++) { const shape = shapes[i]; serialize(meta.shapes, shape); } } else { serialize(meta.shapes, shapes); } } } if (this.isSkinnedMesh) { object.bindMode = this.bindMode; object.bindMatrix = this.bindMatrix.toArray(); if (this.skeleton !== undefined) { serialize(meta.skeletons, this.skeleton); object.skeleton = this.skeleton.uuid; } } if (this.material !== undefined) { // 判断元数据是否含有材质 // 创建新变量替代,不然正在使用的材质被还原回this.metaData.material会造成播放异常 let _material = this.material; if (this.metaData?.material) { if (this.metaData.material instanceof THREE.Material) { _material = this.metaData.material; } } if (Array.isArray(_material)) { const uuids: string[] = []; for (let i = 0, l = _material.length; i < l; i++) { uuids.push(serialize(meta.materials, _material[i])); } object.material = uuids; } else { object.material = serialize(meta.materials, _material); } } if (this.children.length > 0) { object.children = []; for (let i = 0; i < this.children.length; i++) { object.children.push(this.children[i].toJSON(meta).object); } } if (this.animations.length > 0) { object.animations = []; for (let i = 0; i < this.animations.length; i++) { let animation = this.animations[i]; // 20250306 修复动画导出问题(代码中处理了object3D.animations,此属性下是AnimationAction数组) if (animation instanceof THREE.AnimationAction) { animation = animation.getClip(); } if (!animation) continue; object.animations.push(serialize(meta.animations, animation)); } } if (isRootObject) { const geometries = extractFromCache(meta.geometries); const materials = extractFromCache(meta.materials); const textures = extractFromCache(meta.textures); const images = extractFromCache(meta.images); const shapes = extractFromCache(meta.shapes); const skeletons = extractFromCache(meta.skeletons); const animations = extractFromCache(meta.animations); const nodes = extractFromCache(meta.nodes); if (geometries.length > 0) output.geometries = geometries; if (materials.length > 0) output.materials = materials; if (textures.length > 0) output.textures = textures; if (images.length > 0) output.images = images; if (shapes.length > 0) output.shapes = shapes; if (skeletons.length > 0) output.skeletons = skeletons; if (animations.length > 0) output.animations = animations.map(animation => { animation.tracks = animation.tracks.map(track => { if (!track.type) { track.type = 'vector'; } return track; }); return animation; }); if (nodes.length > 0) output.nodes = nodes; } output.object = object; return output; // 从缓存哈希中提取数据,删除每个项目上的元数据并作为数组返回 function extractFromCache(cache) { const values: any = []; for (const key in cache) { const data = cache[key]; delete data.metadata; values.push(data); } return values; } } ================================================ FILE: packages/sdk/lib/core/expansion/index.ts ================================================ /** * @author ErSan * @email mlt131220@163.com * @date 2025/01/08 * @description 从原型链扩充原threejs对象方法 */ import './Object3D'; import './Material'; ================================================ FILE: packages/sdk/lib/core/geometries/TeapotGeometry.ts ================================================ /** * @author ErSan * @email mlt131220@163.com * @date 2024/3/11 10:18 * @description 茶壶几何,修改于 three/examples/jsm/geometries/TeapotGeometry.js */ import { BufferAttribute, BufferGeometry, Matrix4, Vector3, Vector4 } from 'three'; class TeapotGeometry extends BufferGeometry { private _parameters: { size: number; bottom: boolean; lid: boolean; blinn: boolean; body: boolean; fitLid: boolean; segments: number }; get parameters(): { size: number; bottom: boolean; lid: boolean; blinn: boolean; body: boolean; fitLid: boolean; segments: number } { return this._parameters; } constructor( size = 50, segments = 10, bottom = true, lid = true, body = true, fitLid = true, blinn = true ) { // 32 * 4 * 4 Bezier spline patches const teapotPatches = [ /*rim*/ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 3, 16, 17, 18, 7, 19, 20, 21, 11, 22, 23, 24, 15, 25, 26, 27, 18, 28, 29, 30, 21, 31, 32, 33, 24, 34, 35, 36, 27, 37, 38, 39, 30, 40, 41, 0, 33, 42, 43, 4, 36, 44, 45, 8, 39, 46, 47, 12, /*body*/ 12, 13, 14, 15, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 15, 25, 26, 27, 51, 60, 61, 62, 55, 63, 64, 65, 59, 66, 67, 68, 27, 37, 38, 39, 62, 69, 70, 71, 65, 72, 73, 74, 68, 75, 76, 77, 39, 46, 47, 12, 71, 78, 79, 48, 74, 80, 81, 52, 77, 82, 83, 56, 56, 57, 58, 59, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 59, 66, 67, 68, 87, 96, 97, 98, 91, 99, 100, 101, 95, 102, 103, 104, 68, 75, 76, 77, 98, 105, 106, 107, 101, 108, 109, 110, 104, 111, 112, 113, 77, 82, 83, 56, 107, 114, 115, 84, 110, 116, 117, 88, 113, 118, 119, 92, /*handle*/ 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 123, 136, 137, 120, 127, 138, 139, 124, 131, 140, 141, 128, 135, 142, 143, 132, 132, 133, 134, 135, 144, 145, 146, 147, 148, 149, 150, 151, 68, 152, 153, 154, 135, 142, 143, 132, 147, 155, 156, 144, 151, 157, 158, 148, 154, 159, 160, 68, /*spout*/ 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 164, 177, 178, 161, 168, 179, 180, 165, 172, 181, 182, 169, 176, 183, 184, 173, 173, 174, 175, 176, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 176, 183, 184, 173, 188, 197, 198, 185, 192, 199, 200, 189, 196, 201, 202, 193, /*lid*/ 203, 203, 203, 203, 204, 205, 206, 207, 208, 208, 208, 208, 209, 210, 211, 212, 203, 203, 203, 203, 207, 213, 214, 215, 208, 208, 208, 208, 212, 216, 217, 218, 203, 203, 203, 203, 215, 219, 220, 221, 208, 208, 208, 208, 218, 222, 223, 224, 203, 203, 203, 203, 221, 225, 226, 204, 208, 208, 208, 208, 224, 227, 228, 209, 209, 210, 211, 212, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 212, 216, 217, 218, 232, 241, 242, 243, 236, 244, 245, 246, 240, 247, 248, 249, 218, 222, 223, 224, 243, 250, 251, 252, 246, 253, 254, 255, 249, 256, 257, 258, 224, 227, 228, 209, 252, 259, 260, 229, 255, 261, 262, 233, 258, 263, 264, 237, /*bottom*/ 265, 265, 265, 265, 266, 267, 268, 269, 270, 271, 272, 273, 92, 119, 118, 113, 265, 265, 265, 265, 269, 274, 275, 276, 273, 277, 278, 279, 113, 112, 111, 104, 265, 265, 265, 265, 276, 280, 281, 282, 279, 283, 284, 285, 104, 103, 102, 95, 265, 265, 265, 265, 282, 286, 287, 266, 285, 288, 289, 270, 95, 94, 93, 92 ]; const teapotVertices = [ 1.4, 0, 2.4, 1.4, - 0.784, 2.4, 0.784, - 1.4, 2.4, 0, - 1.4, 2.4, 1.3375, 0, 2.53125, 1.3375, - 0.749, 2.53125, 0.749, - 1.3375, 2.53125, 0, - 1.3375, 2.53125, 1.4375, 0, 2.53125, 1.4375, - 0.805, 2.53125, 0.805, - 1.4375, 2.53125, 0, - 1.4375, 2.53125, 1.5, 0, 2.4, 1.5, - 0.84, 2.4, 0.84, - 1.5, 2.4, 0, - 1.5, 2.4, - 0.784, - 1.4, 2.4, - 1.4, - 0.784, 2.4, - 1.4, 0, 2.4, - 0.749, - 1.3375, 2.53125, - 1.3375, - 0.749, 2.53125, - 1.3375, 0, 2.53125, - 0.805, - 1.4375, 2.53125, - 1.4375, - 0.805, 2.53125, - 1.4375, 0, 2.53125, - 0.84, - 1.5, 2.4, - 1.5, - 0.84, 2.4, - 1.5, 0, 2.4, - 1.4, 0.784, 2.4, - 0.784, 1.4, 2.4, 0, 1.4, 2.4, - 1.3375, 0.749, 2.53125, - 0.749, 1.3375, 2.53125, 0, 1.3375, 2.53125, - 1.4375, 0.805, 2.53125, - 0.805, 1.4375, 2.53125, 0, 1.4375, 2.53125, - 1.5, 0.84, 2.4, - 0.84, 1.5, 2.4, 0, 1.5, 2.4, 0.784, 1.4, 2.4, 1.4, 0.784, 2.4, 0.749, 1.3375, 2.53125, 1.3375, 0.749, 2.53125, 0.805, 1.4375, 2.53125, 1.4375, 0.805, 2.53125, 0.84, 1.5, 2.4, 1.5, 0.84, 2.4, 1.75, 0, 1.875, 1.75, - 0.98, 1.875, 0.98, - 1.75, 1.875, 0, - 1.75, 1.875, 2, 0, 1.35, 2, - 1.12, 1.35, 1.12, - 2, 1.35, 0, - 2, 1.35, 2, 0, 0.9, 2, - 1.12, 0.9, 1.12, - 2, 0.9, 0, - 2, 0.9, - 0.98, - 1.75, 1.875, - 1.75, - 0.98, 1.875, - 1.75, 0, 1.875, - 1.12, - 2, 1.35, - 2, - 1.12, 1.35, - 2, 0, 1.35, - 1.12, - 2, 0.9, - 2, - 1.12, 0.9, - 2, 0, 0.9, - 1.75, 0.98, 1.875, - 0.98, 1.75, 1.875, 0, 1.75, 1.875, - 2, 1.12, 1.35, - 1.12, 2, 1.35, 0, 2, 1.35, - 2, 1.12, 0.9, - 1.12, 2, 0.9, 0, 2, 0.9, 0.98, 1.75, 1.875, 1.75, 0.98, 1.875, 1.12, 2, 1.35, 2, 1.12, 1.35, 1.12, 2, 0.9, 2, 1.12, 0.9, 2, 0, 0.45, 2, - 1.12, 0.45, 1.12, - 2, 0.45, 0, - 2, 0.45, 1.5, 0, 0.225, 1.5, - 0.84, 0.225, 0.84, - 1.5, 0.225, 0, - 1.5, 0.225, 1.5, 0, 0.15, 1.5, - 0.84, 0.15, 0.84, - 1.5, 0.15, 0, - 1.5, 0.15, - 1.12, - 2, 0.45, - 2, - 1.12, 0.45, - 2, 0, 0.45, - 0.84, - 1.5, 0.225, - 1.5, - 0.84, 0.225, - 1.5, 0, 0.225, - 0.84, - 1.5, 0.15, - 1.5, - 0.84, 0.15, - 1.5, 0, 0.15, - 2, 1.12, 0.45, - 1.12, 2, 0.45, 0, 2, 0.45, - 1.5, 0.84, 0.225, - 0.84, 1.5, 0.225, 0, 1.5, 0.225, - 1.5, 0.84, 0.15, - 0.84, 1.5, 0.15, 0, 1.5, 0.15, 1.12, 2, 0.45, 2, 1.12, 0.45, 0.84, 1.5, 0.225, 1.5, 0.84, 0.225, 0.84, 1.5, 0.15, 1.5, 0.84, 0.15, - 1.6, 0, 2.025, - 1.6, - 0.3, 2.025, - 1.5, - 0.3, 2.25, - 1.5, 0, 2.25, - 2.3, 0, 2.025, - 2.3, - 0.3, 2.025, - 2.5, - 0.3, 2.25, - 2.5, 0, 2.25, - 2.7, 0, 2.025, - 2.7, - 0.3, 2.025, - 3, - 0.3, 2.25, - 3, 0, 2.25, - 2.7, 0, 1.8, - 2.7, - 0.3, 1.8, - 3, - 0.3, 1.8, - 3, 0, 1.8, - 1.5, 0.3, 2.25, - 1.6, 0.3, 2.025, - 2.5, 0.3, 2.25, - 2.3, 0.3, 2.025, - 3, 0.3, 2.25, - 2.7, 0.3, 2.025, - 3, 0.3, 1.8, - 2.7, 0.3, 1.8, - 2.7, 0, 1.575, - 2.7, - 0.3, 1.575, - 3, - 0.3, 1.35, - 3, 0, 1.35, - 2.5, 0, 1.125, - 2.5, - 0.3, 1.125, - 2.65, - 0.3, 0.9375, - 2.65, 0, 0.9375, - 2, - 0.3, 0.9, - 1.9, - 0.3, 0.6, - 1.9, 0, 0.6, - 3, 0.3, 1.35, - 2.7, 0.3, 1.575, - 2.65, 0.3, 0.9375, - 2.5, 0.3, 1.125, - 1.9, 0.3, 0.6, - 2, 0.3, 0.9, 1.7, 0, 1.425, 1.7, - 0.66, 1.425, 1.7, - 0.66, 0.6, 1.7, 0, 0.6, 2.6, 0, 1.425, 2.6, - 0.66, 1.425, 3.1, - 0.66, 0.825, 3.1, 0, 0.825, 2.3, 0, 2.1, 2.3, - 0.25, 2.1, 2.4, - 0.25, 2.025, 2.4, 0, 2.025, 2.7, 0, 2.4, 2.7, - 0.25, 2.4, 3.3, - 0.25, 2.4, 3.3, 0, 2.4, 1.7, 0.66, 0.6, 1.7, 0.66, 1.425, 3.1, 0.66, 0.825, 2.6, 0.66, 1.425, 2.4, 0.25, 2.025, 2.3, 0.25, 2.1, 3.3, 0.25, 2.4, 2.7, 0.25, 2.4, 2.8, 0, 2.475, 2.8, - 0.25, 2.475, 3.525, - 0.25, 2.49375, 3.525, 0, 2.49375, 2.9, 0, 2.475, 2.9, - 0.15, 2.475, 3.45, - 0.15, 2.5125, 3.45, 0, 2.5125, 2.8, 0, 2.4, 2.8, - 0.15, 2.4, 3.2, - 0.15, 2.4, 3.2, 0, 2.4, 3.525, 0.25, 2.49375, 2.8, 0.25, 2.475, 3.45, 0.15, 2.5125, 2.9, 0.15, 2.475, 3.2, 0.15, 2.4, 2.8, 0.15, 2.4, 0, 0, 3.15, 0.8, 0, 3.15, 0.8, - 0.45, 3.15, 0.45, - 0.8, 3.15, 0, - 0.8, 3.15, 0, 0, 2.85, 0.2, 0, 2.7, 0.2, - 0.112, 2.7, 0.112, - 0.2, 2.7, 0, - 0.2, 2.7, - 0.45, - 0.8, 3.15, - 0.8, - 0.45, 3.15, - 0.8, 0, 3.15, - 0.112, - 0.2, 2.7, - 0.2, - 0.112, 2.7, - 0.2, 0, 2.7, - 0.8, 0.45, 3.15, - 0.45, 0.8, 3.15, 0, 0.8, 3.15, - 0.2, 0.112, 2.7, - 0.112, 0.2, 2.7, 0, 0.2, 2.7, 0.45, 0.8, 3.15, 0.8, 0.45, 3.15, 0.112, 0.2, 2.7, 0.2, 0.112, 2.7, 0.4, 0, 2.55, 0.4, - 0.224, 2.55, 0.224, - 0.4, 2.55, 0, - 0.4, 2.55, 1.3, 0, 2.55, 1.3, - 0.728, 2.55, 0.728, - 1.3, 2.55, 0, - 1.3, 2.55, 1.3, 0, 2.4, 1.3, - 0.728, 2.4, 0.728, - 1.3, 2.4, 0, - 1.3, 2.4, - 0.224, - 0.4, 2.55, - 0.4, - 0.224, 2.55, - 0.4, 0, 2.55, - 0.728, - 1.3, 2.55, - 1.3, - 0.728, 2.55, - 1.3, 0, 2.55, - 0.728, - 1.3, 2.4, - 1.3, - 0.728, 2.4, - 1.3, 0, 2.4, - 0.4, 0.224, 2.55, - 0.224, 0.4, 2.55, 0, 0.4, 2.55, - 1.3, 0.728, 2.55, - 0.728, 1.3, 2.55, 0, 1.3, 2.55, - 1.3, 0.728, 2.4, - 0.728, 1.3, 2.4, 0, 1.3, 2.4, 0.224, 0.4, 2.55, 0.4, 0.224, 2.55, 0.728, 1.3, 2.55, 1.3, 0.728, 2.55, 0.728, 1.3, 2.4, 1.3, 0.728, 2.4, 0, 0, 0, 1.425, 0, 0, 1.425, 0.798, 0, 0.798, 1.425, 0, 0, 1.425, 0, 1.5, 0, 0.075, 1.5, 0.84, 0.075, 0.84, 1.5, 0.075, 0, 1.5, 0.075, - 0.798, 1.425, 0, - 1.425, 0.798, 0, - 1.425, 0, 0, - 0.84, 1.5, 0.075, - 1.5, 0.84, 0.075, - 1.5, 0, 0.075, - 1.425, - 0.798, 0, - 0.798, - 1.425, 0, 0, - 1.425, 0, - 1.5, - 0.84, 0.075, - 0.84, - 1.5, 0.075, 0, - 1.5, 0.075, 0.798, - 1.425, 0, 1.425, - 0.798, 0, 0.84, - 1.5, 0.075, 1.5, - 0.84, 0.075 ]; super(); // @ts-ignore this.type = "TeapotGeometry"; this._parameters = { size: size, segments: segments, bottom: bottom, lid: lid, body: body, fitLid: fitLid, blinn: blinn, }; // number of segments per patch segments = Math.max( 2, Math.floor( segments ) ); // Jim Blinn scaled the teapot down in size by about 1.3 for // some rendering tests. He liked the new proportions that he kept // the data in this form. The model was distributed with these new // proportions and became the norm. Trivia: comparing images of the // real teapot and the computer model, the ratio for the bowl of the // real teapot is more like 1.25, but since 1.3 is the traditional // value given, we use it here. const blinnScale = 1.3; // scale the size to be the real scaling factor const maxHeight = 3.15 * ( blinn ? 1 : blinnScale ); const maxHeight2 = maxHeight / 2; const trueSize = size / maxHeight2; // Number of elements depends on what is needed. Subtract degenerate // triangles at tip of bottom and lid out in advance. let numTriangles = bottom ? ( 8 * segments - 4 ) * segments : 0; numTriangles += lid ? ( 16 * segments - 4 ) * segments : 0; numTriangles += body ? 40 * segments * segments : 0; const indices = new Uint32Array( numTriangles * 3 ); let numVertices = bottom ? 4 : 0; numVertices += lid ? 8 : 0; numVertices += body ? 20 : 0; numVertices *= ( segments + 1 ) * ( segments + 1 ); const vertices = new Float32Array( numVertices * 3 ); const normals = new Float32Array( numVertices * 3 ); const uvs = new Float32Array( numVertices * 2 ); // Bezier form const ms = new Matrix4(); ms.set( - 1.0, 3.0, - 3.0, 1.0, 3.0, - 6.0, 3.0, 0.0, - 3.0, 3.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0 ); const g:number[] = []; const sp:number[] = []; const tp:number[] = []; const dsp:number[] = []; const dtp:number[] = []; // M * G * M matrix, sort of see // http://www.cs.helsinki.fi/group/goa/mallinnus/curves/surfaces.html const mgm:Matrix4[] = []; const vert:number[] = []; const sdir:number[] = []; const tdir:number[] = []; const norm = new Vector3(); let tcoord: Vector4; let sval:number; let tval:number; let p; let dsval = 0; let dtval = 0; const normOut = new Vector3(); const gmx = new Matrix4(); const tmtx = new Matrix4(); const vsp = new Vector4(); const vtp = new Vector4(); const vdsp = new Vector4(); const vdtp = new Vector4(); const vsdir = new Vector3(); const vtdir = new Vector3(); const mst = ms.clone(); mst.transpose(); // internal function: test if triangle has any matching vertices; // if so, don't save triangle, since it won't display anything. const notDegenerate = ( vtx1, vtx2, vtx3 ) => // if any vertex matches, return false ! ( ( ( vertices[ vtx1 * 3 ] === vertices[ vtx2 * 3 ] ) && ( vertices[ vtx1 * 3 + 1 ] === vertices[ vtx2 * 3 + 1 ] ) && ( vertices[ vtx1 * 3 + 2 ] === vertices[ vtx2 * 3 + 2 ] ) ) || ( ( vertices[ vtx1 * 3 ] === vertices[ vtx3 * 3 ] ) && ( vertices[ vtx1 * 3 + 1 ] === vertices[ vtx3 * 3 + 1 ] ) && ( vertices[ vtx1 * 3 + 2 ] === vertices[ vtx3 * 3 + 2 ] ) ) || ( vertices[ vtx2 * 3 ] === vertices[ vtx3 * 3 ] ) && ( vertices[ vtx2 * 3 + 1 ] === vertices[ vtx3 * 3 + 1 ] ) && ( vertices[ vtx2 * 3 + 2 ] === vertices[ vtx3 * 3 + 2 ] ) ); for ( let i = 0; i < 3; i ++ ) { mgm[ i ] = new Matrix4(); } const minPatches = body ? 0 : 20; const maxPatches = bottom ? 32 : 28; const vertPerRow = segments + 1; let surfCount = 0; let vertCount = 0; let normCount = 0; let uvCount = 0; let indexCount = 0; for ( let surf = minPatches; surf < maxPatches; surf ++ ) { // lid is in the middle of the data, patches 20-27, // so ignore it for this part of the loop if the lid is not desired if ( lid || ( surf < 20 || surf >= 28 ) ) { // get M * G * M matrix for x,y,z for ( let i = 0; i < 3; i ++ ) { // get control patches for ( let r = 0; r < 4; r ++ ) { for ( let c = 0; c < 4; c ++ ) { // transposed g[ c * 4 + r ] = teapotVertices[ teapotPatches[ surf * 16 + r * 4 + c ] * 3 + i ]; // is the lid to be made larger, and is this a point on the lid // that is X or Y? if ( fitLid && ( surf >= 20 && surf < 28 ) && ( i !== 2 ) ) { // increase XY size by 7.7%, found empirically. I don't // increase Z so that the teapot will continue to fit in the // space -1 to 1 for Y (Y is up for the final model). g[ c * 4 + r ] *= 1.077; } // Blinn "fixed" the teapot by dividing Z by blinnScale, and that's the // data we now use. The original teapot is taller. Fix it: if ( ! blinn && ( i === 2 ) ) { g[ c * 4 + r ] *= blinnScale; } } } gmx.set( g[ 0 ], g[ 1 ], g[ 2 ], g[ 3 ], g[ 4 ], g[ 5 ], g[ 6 ], g[ 7 ], g[ 8 ], g[ 9 ], g[ 10 ], g[ 11 ], g[ 12 ], g[ 13 ], g[ 14 ], g[ 15 ] ); tmtx.multiplyMatrices( gmx, ms ); mgm[ i ].multiplyMatrices( mst, tmtx ); } // step along, get points, and output for ( let sstep = 0; sstep <= segments; sstep ++ ) { const s = sstep / segments; for ( let tstep = 0; tstep <= segments; tstep ++ ) { const t = tstep / segments; // point from basis // get power vectors and their derivatives for ( p = 4, sval = tval = 1.0; p --; ) { sp[ p ] = sval; tp[ p ] = tval; sval *= s; tval *= t; if ( p === 3 ) { dsp[ p ] = dtp[ p ] = 0.0; dsval = dtval = 1.0; } else { dsp[ p ] = dsval * ( 3 - p ); dtp[ p ] = dtval * ( 3 - p ); dsval *= s; dtval *= t; } } vsp.fromArray( sp ); vtp.fromArray( tp ); vdsp.fromArray( dsp ); vdtp.fromArray( dtp ); // do for x,y,z for ( let i = 0; i < 3; i ++ ) { // multiply power vectors times matrix to get value tcoord = vsp.clone(); tcoord.applyMatrix4( mgm[ i ] ); vert[ i ] = tcoord.dot( vtp ); // get s and t tangent vectors tcoord = vdsp.clone(); tcoord.applyMatrix4( mgm[ i ] ); sdir[ i ] = tcoord.dot( vtp ); tcoord = vsp.clone(); tcoord.applyMatrix4( mgm[ i ] ); tdir[ i ] = tcoord.dot( vdtp ); } // find normal vsdir.fromArray( sdir ); vtdir.fromArray( tdir ); norm.crossVectors( vtdir, vsdir ); norm.normalize(); // if X and Z length is 0, at the cusp, so point the normal up or down, depending on patch number if ( vert[ 0 ] === 0 && vert[ 1 ] === 0 ) { // if above the middle of the teapot, normal points up, else down normOut.set( 0, vert[ 2 ] > maxHeight2 ? 1 : - 1, 0 ); } else { // standard output: rotate on X axis normOut.set( norm.x, norm.z, - norm.y ); } // store it all vertices[ vertCount ++ ] = trueSize * vert[ 0 ]; vertices[ vertCount ++ ] = trueSize * ( vert[ 2 ] - maxHeight2 ); vertices[ vertCount ++ ] = - trueSize * vert[ 1 ]; normals[ normCount ++ ] = normOut.x; normals[ normCount ++ ] = normOut.y; normals[ normCount ++ ] = normOut.z; uvs[ uvCount ++ ] = 1 - t; uvs[ uvCount ++ ] = 1 - s; } } // save the faces for ( let sstep = 0; sstep < segments; sstep ++ ) { for ( let tstep = 0; tstep < segments; tstep ++ ) { const v1 = surfCount * vertPerRow * vertPerRow + sstep * vertPerRow + tstep; const v2 = v1 + 1; const v3 = v2 + vertPerRow; const v4 = v1 + vertPerRow; // Normals and UVs cannot be shared. Without clone(), you can see the consequences // of sharing if you call geometry.applyMatrix4( matrix ). if ( notDegenerate( v1, v2, v3 ) ) { indices[ indexCount ++ ] = v1; indices[ indexCount ++ ] = v2; indices[ indexCount ++ ] = v3; } if ( notDegenerate( v1, v3, v4 ) ) { indices[ indexCount ++ ] = v1; indices[ indexCount ++ ] = v3; indices[ indexCount ++ ] = v4; } } } // increment only if a surface was used surfCount ++; } } this.setIndex( new BufferAttribute( indices, 1 ) ); this.setAttribute( 'position', new BufferAttribute( vertices, 3 ) ); this.setAttribute( 'normal', new BufferAttribute( normals, 3 ) ); this.setAttribute( 'uv', new BufferAttribute( uvs, 2 ) ); this.computeBoundingSphere(); } copy( source ) { super.copy( source ); this._parameters = Object.assign( {}, source.parameters ); return this; } static fromJSON(data) { return new TeapotGeometry(data.size, data.segments, data.bottom, data.lid, data.body, data.fitLid, data.blinn); } } export { TeapotGeometry }; ================================================ FILE: packages/sdk/lib/core/geometries/index.ts ================================================ export {TeapotGeometry} from "./TeapotGeometry"; ================================================ FILE: packages/sdk/lib/core/libs/astral-timeline/animation-timeline.ts ================================================ // bundle entry point export * from './timeline'; export * from './timelineEventsEmitter'; export * from './settings/timelineConsts'; // @ public timeline models. export * from './models/timelineRanged'; export * from './models/timelineModel'; export * from './models/timelineRow'; export * from './models/timelineKeyframe'; // @public styles export * from './settings/timelineOptions'; export * from './settings/styles/timelineKeyframeStyle'; export * from './settings/styles/timelineRowStyle'; export * from './settings/styles/timelineStyle'; export * from './settings/styles/timelineGroupStyle'; export * from './utils/timelineStyleUtils'; export * from './utils/timelineUtils'; export * from './utils/timelineElement'; // @private helper containers. export * from './utils/timelineSelectable'; export * from './utils/timelineCutBoundsRectResults'; export * from './utils/timelineSelectionResults'; export * from './utils/timelinePoint'; export * from './utils/timelineMouseData'; export * from './utils/timelineElementDragState'; export * from './utils/timelineDraggableData'; // @private virtual model export * from './viewModels/timelineGroupViewModel'; export * from './viewModels/timelineKeyframeViewModel'; export * from './viewModels/timelineRowViewModel'; export * from './viewModels/timelineViewModel'; // @public events export * from './utils/events/timelineKeyframeChangedEvent'; export * from './utils/events/timelineTimeChangedEvent'; export * from './utils/events/timelineSelectedEvent'; export * from './utils/events/timelineScrollEvent'; export * from './utils/events/timelineClickEvent'; export * from './utils/events/timelineDragEvent'; // @public enums export * from './enums/timelineKeyframeShape'; export * from './enums/timelineInteractionMode'; export * from './enums/timelineScrollSource'; export * from './enums/timelineElementType'; export * from './enums/timelineCursorType'; export * from './enums/timelineCapShape'; export * from './enums/timelineEventSource'; export * from './enums/timelineSelectionMode'; export * from './enums/timelineEvents'; // @private defaults are exposed: export * from './settings/defaults/defaultTimelineStyle'; export * from './settings/defaults/defaultTimelineRowStyle'; export * from './settings/defaults/defaultTimelineOptions'; export * from './settings/defaults/defaultTimelineKeyframeStyle'; export * from './settings/defaults/defaultTimelineConsts'; export * from './settings/defaults/defaultGroupStyle'; ================================================ FILE: packages/sdk/lib/core/libs/astral-timeline/enums/timelineCapShape.ts ================================================ export enum TimelineCapShape { None = 'none', Triangle = 'triangle', Rect = 'rect', } ================================================ FILE: packages/sdk/lib/core/libs/astral-timeline/enums/timelineCursorType.ts ================================================ export enum TimelineCursorType { Alias = 'alias', AllScroll = 'all-scroll', Auto = 'auto', Cell = 'cell', ContextMenu = 'context-menu', ColResize = 'col-resize', Copy = 'copy', Crosshair = 'crosshair', Default = 'default', EResize = 'e-resize', EWResize = 'ew-resize', Grab = 'grab', Grabbing = 'grabbing', Help = 'help', Move = 'move', NResize = 'n-resize', NEResize = 'ne-resize', NESWResize = 'nesw-resize', NSResize = 'ns-resize', NWResize = 'nw-resize', NWSEResize = 'nwse-resize', NoDrop = 'no-drop', None = 'none', NotAllowed = 'not-allowed', Pointer = 'pointer', Progress = 'progress', RowResize = 'row-resize', SResize = 's-resize', SEResize = 'se-resize', SWResize = 'sw-resize', Text = 'text', WResize = 'w-resize', Wait = 'wait', ZoomIn = 'zoom-in', ZoomOut = 'zoom-out', } ================================================ FILE: packages/sdk/lib/core/libs/astral-timeline/enums/timelineElementType.ts ================================================ /** * Internal element type. */ export enum TimelineElementType { /** * Timeline */ Timeline = 'timeline', /** * Keyframes */ Keyframe = 'keyframe', /** * Keyframes connected and presenting one group. */ Group = 'group', /** * Timeline row. */ Row = 'row', None = 'none', } ================================================ FILE: packages/sdk/lib/core/libs/astral-timeline/enums/timelineEventSource.ts ================================================ export enum TimelineEventSource { /** * Changed by user interaction events. */ User = 'user', /** * Changed programmatically. */ Programmatically = 'programmatically', /** * Changed by the set time function. */ SetTimeMethod = 'setTimeMethod', } ================================================ FILE: packages/sdk/lib/core/libs/astral-timeline/enums/timelineEvents.ts ================================================ /** * Event names of the component. */ export enum TimelineEvents { Selected = 'selected', TimeChanged = 'timechanged', KeyframeChanged = 'keyframeChanged', DragStarted = 'dragStarted', Drag = 'drag', DragFinished = 'dragFinished', Scroll = 'scroll', ScrollFinished = 'scrollFinished', ContextMenu = 'onContextMenu', DoubleClick = 'doubleClick', MouseDown = 'mouseDown', Zoom = 'zoom', } ================================================ FILE: packages/sdk/lib/core/libs/astral-timeline/enums/timelineInteractionMode.ts ================================================ export enum TimelineInteractionMode { /** * Keyframe selection tool selecting single or group of keyframes. */ Selection = 'selection', /** * Pan tool with the possibility to select keyframes. */ Pan = 'pan', /** * Allow only pan without any keyframes interaction. * Timeline still can be moved and controlled by option 'timelineDraggable'. */ NonInteractivePan = 'nonInteractivePan', /** * Zoom tool. */ Zoom = 'zoom', /** * No iteraction, except moving a timeline. * Timeline still can be moved and controlled by option 'timelineDraggable'. */ None = 'none', } ================================================ FILE: packages/sdk/lib/core/libs/astral-timeline/enums/timelineKeyframeShape.ts ================================================ export enum TimelineKeyframeShape { None = 'none', Rhomb = 'rhomb', Circle = 'circle', Rect = 'rect', } ================================================ FILE: packages/sdk/lib/core/libs/astral-timeline/enums/timelineScrollSource.ts ================================================ export enum TimelineScrollSource { DefaultMode = 'none', ZoomMode = 'zoom', ScrollBySelection = 'scrollBySelection', } ================================================ FILE: packages/sdk/lib/core/libs/astral-timeline/enums/timelineSelectionEventSource.ts ================================================ /** * Timeline selection event type. */ export enum TimelineSelectionEventSource { /** * Keyframe selection is performed. */ Keyframes = 'keyframes', } ================================================ FILE: packages/sdk/lib/core/libs/astral-timeline/enums/timelineSelectionMode.ts ================================================ /** * Timeline selection mode. */ export enum TimelineSelectionMode { /** * Select new items. deselect changed. */ Normal = 'normal', /** * Append current selection. */ Append = 'append', /** * Revert selection of a specified nodes. */ Revert = 'revert', } ================================================ FILE: packages/sdk/lib/core/libs/astral-timeline/models/timelineGroup.ts ================================================ import { TimelineKeyframeStyle } from '../settings/styles/timelineKeyframeStyle'; import { TimelineGroupStyle } from '../settings/styles/timelineGroupStyle'; /** * Timeline group view model. */ export interface TimelineGroup { /** * Group style. */ style: TimelineGroupStyle; /** * Child keyframes style. */ keyframesStyle?: TimelineKeyframeStyle; /** * Whether group is draggable. * Considered to be false when really set as false. */ draggable?: boolean; /** * Whether group keyframes are draggable. */ keyframesDraggable?: boolean; /** * Whether group is hidden. */ hidden?: boolean; } ================================================ FILE: packages/sdk/lib/core/libs/astral-timeline/models/timelineKeyframe.ts ================================================ import { TimelineKeyframeStyle } from '../settings/styles/timelineKeyframeStyle'; import { TimelineSelectable } from '../utils/timelineSelectable'; import { TimelineRanged } from './timelineRanged'; import { TimelineGroup } from './timelineGroup'; export interface TimelineKeyframe extends TimelineSelectable, TimelineRanged { /** * Keyframe value. */ val: number; /** * Related keyframe group. * Timeline keyframes groups are rendered as one instance. */ group?: string | TimelineGroup; /** * Keyframe style. */ style?: TimelineKeyframeStyle; /** * Whether keyframe is hidden. */ hidden?: boolean; /** * Whether group is draggable. * Considered to be false when really set as false. */ draggable?: boolean; } ================================================ FILE: packages/sdk/lib/core/libs/astral-timeline/models/timelineModel.ts ================================================ import { TimelineRow } from './timelineRow'; export interface TimelineModel { rows: TimelineRow[]; } ================================================ FILE: packages/sdk/lib/core/libs/astral-timeline/models/timelineRanged.ts ================================================ export interface TimelineRanged { /** * min */ min?: number | null; /** * max. */ max?: number | null; } ================================================ FILE: packages/sdk/lib/core/libs/astral-timeline/models/timelineRow.ts ================================================ import { TimelineKeyframe } from './timelineKeyframe'; import { TimelineRowStyle } from '../settings/styles/timelineRowStyle'; import { TimelineRanged } from './timelineRanged'; export interface TimelineRow extends TimelineRanged { style?: TimelineRowStyle; keyframes?: TimelineKeyframe[] | null; hidden?: boolean; /** * Whether group keyframes are draggable. */ keyframesDraggable?: boolean; groupsDraggable?: boolean; } ================================================ FILE: packages/sdk/lib/core/libs/astral-timeline/settings/defaults/defaultGroupStyle.ts ================================================ import { TimelineGroupStyle } from '../styles/timelineGroupStyle'; export const defaultRowHeight = 24; const margin = 4; export const defaultGroupStyle = { height: 'auto', marginTop: margin, /** * Default group fill color. */ fillColor: '#094771', /** * 组默认文本设置 */ text: { label: "", isStroke:false, font: '10px sans-serif', textAlign: 'center', textBaseline: 'middle', direction:"inherit", fillColor: '#fff' } } as TimelineGroupStyle; ================================================ FILE: packages/sdk/lib/core/libs/astral-timeline/settings/defaults/defaultTimelineConsts.ts ================================================ import { TimelineConsts } from '../timelineConsts'; export const defaultTimelineConsts: TimelineConsts = { /** * Private. Auto pan speed. */ autoPanSpeed: 50, /** * Private. scroll speed when mouse drag is used (from 0 to 1) */ scrollByDragSpeed: 0.12, /** * Private. Determine whether item was clicked. */ clickDetectionMs: 120, /** * Private. Timeout to detect double click. */ doubleClickTimeoutMs: 400, /** * Private. Time in ms used to refresh scrollbars when pan is finished. */ scrollFinishedTimeoutMs: 500, /** * Private. Auto pan padding */ autoPanByScrollPadding: 10, /** * Private. Click threshold */ clickThreshold: 3, /** * Private. Private.Click min radius for the elements detection. */ clickDetectionMinRadius: 2, /** * Private. Skip some auto pan/scroll actions if they are executed more rapid than this value. */ autoPanSpeedLimit: 10, /** * Private. Default auto size for the group. It's percents. */ defaultGroupHeight: 0.7, } as TimelineConsts; ================================================ FILE: packages/sdk/lib/core/libs/astral-timeline/settings/defaults/defaultTimelineKeyframeStyle.ts ================================================ import { TimelineKeyframeShape } from '../../enums/timelineKeyframeShape'; import { TimelineKeyframeStyle } from '../styles/timelineKeyframeStyle'; export const defaultTimelineKeyframeStyle = { /** * keyframe fill color. */ fillColor: 'DarkOrange', shape: TimelineKeyframeShape.Rhomb, /** * Selected keyframe fill color. */ selectedFillColor: 'red', strokeColor: 'black', selectedStrokeColor: 'black', strokeThickness: 0.2, height: 'auto', width: 'auto', } as TimelineKeyframeStyle; ================================================ FILE: packages/sdk/lib/core/libs/astral-timeline/settings/defaults/defaultTimelineOptions.ts ================================================ import { TimelineOptions } from '../timelineOptions'; import { defaultGroupStyle } from './defaultGroupStyle'; import { defaultTimelineKeyframeStyle } from './defaultTimelineKeyframeStyle'; import { defaultTimelineRowStyle } from './defaultTimelineRowStyle'; import { defaultTimelineStyle } from './defaultTimelineStyle'; export const defaultTimelineOptions = { /** * Snap all selected keyframes as a bundle during the drag. */ snapAllKeyframesOnMove: false, /** * Check whether snapping is enabled. */ snapEnabled: true, /** * Timeline style. */ timelineStyle: defaultTimelineStyle, /** * approximate step for the timeline in pixels for 1 second */ stepPx: 120, /** * Number of units that should fit into one stepPx. (1 second by a default) */ stepVal: 1000, stepSmallPx: 30, /** * Snap step in units. from 0 to stepVal */ snapStep: 200, /** * additional left margin in pixels to start the line gauge from. */ leftMargin: 25, headerFillColor: '#101011', fillColor: '#101011', labelsColor: '#D5D5D5', /** * Header gauge tick color. */ tickColor: '#D5D5D5', /** * Selection rectangle color. */ selectionColor: 'White', /** * Default rows style. * Can be overridden by setting style individually for each row. */ rowsStyle: defaultTimelineRowStyle, /** * Style for the all keyframes in a current row. * Individual keyframe can have own style. */ keyframesStyle: defaultTimelineKeyframeStyle, /** * Style of the groups. */ groupsStyle: defaultGroupStyle, /** * Header height in pixels */ headerHeight: 30, font: '11px sans-serif', /** * Default zoom level = 1. where screen pixels are equals to the corresponding stepVal stepPx. */ zoom: 1, /** * Default zoom speed. */ zoomSpeed: 0.1, /** * Max zoom value. */ zoomMin: 0.1, /** * Min zoom value. */ zoomMax: 8, /** * Set this to true in a MAC OS environment: The Meta key will be used instead of the Ctrl key. */ controlKeyIsMetaKey: false, /** * Access the scroll container via this class for e.g. scroll bar styling. */ scrollContainerClass: 'scroll-container', /** * keyframes group is draggable. */ groupsDraggable: true, /** * keyframes are draggable. */ keyframesDraggable: true, /** * Timeline can be dragged or position can be changed by user interaction. Default: true */ timelineDraggable: true, /** * Start drawing timeline from this min point. * Bounds for the keyframe dragging. */ min: 0, /** * Max bounds timeline can navigate to. */ max: Number.MAX_VALUE, } as TimelineOptions; ================================================ FILE: packages/sdk/lib/core/libs/astral-timeline/settings/defaults/defaultTimelineRowStyle.ts ================================================ import { TimelineRowStyle } from '../styles/timelineRowStyle'; import { defaultGroupStyle, defaultRowHeight } from './defaultGroupStyle'; import { defaultTimelineKeyframeStyle } from './defaultTimelineKeyframeStyle'; export const defaultTimelineRowStyle = { /** * Row height in pixels. */ height: defaultRowHeight, marginBottom: 2, fillColor: '#252526', /** * Style for the all keyframes in a current row. * Individual keyframe can have own style. */ keyframesStyle: defaultTimelineKeyframeStyle, /** * Style of the groups. */ groupsStyle: defaultGroupStyle, } as TimelineRowStyle; ================================================ FILE: packages/sdk/lib/core/libs/astral-timeline/settings/defaults/defaultTimelineStyle.ts ================================================ import { TimelineCapShape } from '../../enums/timelineCapShape'; import { TimelineCursorType } from '../../enums/timelineCursorType'; import { TimelineStyle } from '../styles/timelineStyle'; export const defaultTimelineStyle = { width: 2, marginTop: 15, marginBottom: 0, strokeColor: 'DarkOrange', fillColor: 'DarkOrange', capStyle: { width: 4, height: 10, /** * Draw timeline rectangular cap. */ capType: TimelineCapShape.Rect, strokeColor: 'DarkOrange', fillColor: 'DarkOrange', }, cursor: TimelineCursorType.EWResize, } as TimelineStyle; ================================================ FILE: packages/sdk/lib/core/libs/astral-timeline/settings/styles/timelineCapStyle.ts ================================================ import { TimelineCapShape } from '../../enums/timelineCapShape'; /** * Timeline active/current value indicator style. */ export interface TimelineCapStyle { /** * Cap style width in pixels. */ width?: number; /** * Cap style height in pixels. */ height?: number; /** * Cap stroke color. */ strokeColor?: string; /** * Cap fill color. */ fillColor?: string; /** * Cap type */ capType?: TimelineCapShape; } ================================================ FILE: packages/sdk/lib/core/libs/astral-timeline/settings/styles/timelineGroupStyle.ts ================================================ import { TimelineCursorType } from '../../enums/timelineCursorType'; import { TimelineKeyframeStyle } from '../styles/timelineKeyframeStyle'; /** * Timeline group style. */ export interface TimelineGroupStyle { /** * Keyframes style height in pixels. * 'auto' to automatically calculate. */ height?: number | string; /** * Group stroke color. */ strokeColor?: string; /** * Group stroke thickness. */ strokeThickness?: number | null; /** * Group border radius. See canvas roundRect official documentation. */ radii?: number | DOMPointInit | Iterable; /** * Group fill color. */ fillColor?: string; /** * Group mouse over cursor style. */ cursor?: TimelineCursorType; /** * Margin top in px or 'auto' to center element. */ marginTop?: number | string; /** * Style for all the keyframes in the current group. */ keyframesStyle?: TimelineKeyframeStyle; /** * 组默认文本设置 */ text?: { label?: string, isStroke?: boolean, font?: string, textAlign?: "start" | "end" | "left" | "right" | "center", textBaseline?: "top" | "hanging" | "middle" | "alphabetic" | "ideographic" | "bottom", direction?: "ltr" | "rtl" | "inherit", fillColor?: string, } } ================================================ FILE: packages/sdk/lib/core/libs/astral-timeline/settings/styles/timelineKeyframeStyle.ts ================================================ import { TimelineCursorType } from '../../enums/timelineCursorType'; import { TimelineKeyframeShape } from '../../enums/timelineKeyframeShape'; export interface TimelineKeyframeStyle { /** * Timeline cursor style. */ cursor?: TimelineCursorType; /** * Timeline keyframe shape */ shape?: TimelineKeyframeShape; /** * keyframe size, number or text 'auto' */ height?: number | string; /** * keyframe size, number or text 'auto' */ width?: number | string; /** * Keyframe fill color */ fillColor?: string | null; /** * Keyframe selected fill color. */ selectedFillColor?: string | null; /** * Keyframe stroke color. */ strokeColor?: string | null; /** * Keyframe selected stroke color. */ selectedStrokeColor?: string | null; /** * Keyframe stroke Thickness. */ strokeThickness?: number | null; } ================================================ FILE: packages/sdk/lib/core/libs/astral-timeline/settings/styles/timelineRowStyle.ts ================================================ import { TimelineGroupStyle } from './timelineGroupStyle'; import { TimelineKeyframeStyle } from './timelineKeyframeStyle'; /** * Style of the row. */ export interface TimelineRowStyle { /** * Size of the row in pixels. */ height?: number; /** * Track fill color. */ fillColor?: string; /** * Row margin bottom in pixels between tracks/rows. */ marginBottom?: number; /** * Style for the all keyframes in a current row. * Individual keyframe can have own style. */ keyframesStyle?: TimelineKeyframeStyle; /** * Style of the groups. Keyframe groups can be also styles separately. */ groupsStyle?: TimelineGroupStyle; } ================================================ FILE: packages/sdk/lib/core/libs/astral-timeline/settings/styles/timelineStyle.ts ================================================ import { TimelineCursorType } from '../../enums/timelineCursorType'; import { TimelineCapStyle } from './timelineCapStyle'; /** * Timeline active/current value indicator style. */ export interface TimelineStyle { width?: number; /** * Margin top in pixels. */ marginTop?: number; /** * Margin bottom in pixels. */ marginBottom?: number; /** * Timeline top cap style. */ capStyle?: TimelineCapStyle; /** * Timeline indicator stroke color. */ strokeColor?: string; /** * Timeline fill color. */ fillColor?: string; /** * Timeline cursor. */ cursor?: TimelineCursorType; } ================================================ FILE: packages/sdk/lib/core/libs/astral-timeline/settings/timelineConsts.ts ================================================ /** * Internal components consts. * Still can be changed thru private property _consts but this is discouraged. */ export interface TimelineConsts { /** * Auto pan speed. */ autoPanSpeed: number; /** * scroll speed when mouse drag is used (from 0 to 1) */ scrollByDragSpeed: number; /** * Determine whether item was clicked. */ clickDetectionMs: number; /** * Timeout to detect double click. */ doubleClickTimeoutMs: number; /** * Time in ms used to refresh scrollbars when pan is finished. */ scrollFinishedTimeoutMs: number; /** * Auto pan padding */ autoPanByScrollPadding: number; /** * Click threshold */ clickThreshold: number; /** * Click min radius for the elements detection. */ clickDetectionMinRadius: number; /** * Default auto size for the group. It's percents. */ autoPanSpeedLimit: number; /** * Default auto size for the group. It's percents. */ defaultGroupHeight: number; } ================================================ FILE: packages/sdk/lib/core/libs/astral-timeline/settings/timelineOptions.ts ================================================ import { TimelineRowStyle } from './styles/timelineRowStyle'; import { TimelineStyle } from './styles/timelineStyle'; import { TimelineRanged } from '../models/timelineRanged'; export interface TimelineOptions extends TimelineRanged { /** * Id 或时间轴容器的 HTMLElement */ id?: string | HTMLElement | null; /** * 检查是否启用了捕捉 */ snapEnabled?: boolean; /** * 拖动时将所有选定的关键帧合并为一个包. */ snapAllKeyframesOnMove?: boolean; /** * 以像素为单位的时间轴的近似步长为1秒 */ stepPx?: number; /** * 一个步骤中应该包含的点的个数。 */ stepVal?: number; stepSmallPx?: number; /** * 以单位表示。从0到stepVal */ snapStep?: number; /** * 以像素为单位增加左页边距,从该值开始计算行距. */ leftMargin?: number; /** * 组件header背景颜色. */ headerFillColor?: string; /** * 组件背景颜色. */ fillColor?: string; /** * 标题标签颜色. */ labelsColor?: string; /** * 标题刻度条颜色. */ tickColor?: string; /** * 选择矩形颜色. */ selectionColor?: string; /** * 标题高度(以像素为单位)。 */ headerHeight?: number; /** * Header ticks font */ font?: string; /** * Default zoom level = 1. where screen pixels are equals to the corresponding stepVal stepPx. */ zoom?: number; /** * Default zoom speed. */ zoomSpeed?: number; /** * Max zoom value. */ zoomMin?: number; /** * Min zoom value. */ zoomMax?: number; /** * Set this to true in a MAC OS environment: The Meta key will be used instead of the Ctrl key. */ controlKeyIsMetaKey?: boolean; /** * Access the scroll container via this class for e.g. scroll bar styling. */ scrollContainerClass?: string; /** * Default rows style. * Can be overridden by setting style individually for each row. */ rowsStyle?: TimelineRowStyle; /** * Timeline indicator style. */ timelineStyle?: TimelineStyle; /** * keyframes group is draggable. Default: true */ groupsDraggable?: boolean; /** * keyframes group is draggable. Default: true */ keyframesDraggable?: boolean; /** * Timeline can be dragged or position can be changed by user interaction. Default: true */ timelineDraggable?: boolean; /** * Array of the denominators used to determine 'beautiful' numbers to be rendered for the gauge. * Default: [1, 2, 5, 10]; */ denominators?: number[]; } ================================================ FILE: packages/sdk/lib/core/libs/astral-timeline/timeline.ts ================================================ /* eslint-disable @typescript-eslint/no-explicit-any */ // bundle entry point import { TimelineEventsEmitter } from './timelineEventsEmitter'; import { TimelineConsts } from './settings/timelineConsts'; // @public timeline models import { TimelineRanged } from './models/timelineRanged'; import { TimelineModel } from './models/timelineModel'; import { TimelineRow } from './models/timelineRow'; import { TimelineKeyframe } from './models/timelineKeyframe'; // @public styles import { TimelineOptions } from './settings/timelineOptions'; import { TimelineStyleUtils } from './utils/timelineStyleUtils'; import { TimelineUtils } from './utils/timelineUtils'; import { TimelineElement } from './utils/timelineElement'; // @private helper containers. import { TimelineCutBoundsRectResults } from './utils/timelineCutBoundsRectResults'; import { TimelineSelectionResults } from './utils/timelineSelectionResults'; import { TimelineMouseData } from './utils/timelineMouseData'; import { TimelineElementDragState } from './utils/timelineElementDragState'; import { TimelineDraggableData } from './utils/timelineDraggableData'; // @private virtual model import { TimelineGroupViewModel } from './viewModels/timelineGroupViewModel'; import { TimelineKeyframeViewModel } from './viewModels/timelineKeyframeViewModel'; import { TimelineRowViewModel } from './viewModels/timelineRowViewModel'; import { TimelineViewModel } from './viewModels/timelineViewModel'; // @public events import { TimelineKeyframeChangedEvent } from './utils/events/timelineKeyframeChangedEvent'; import { TimelineTimeChangedEvent } from './utils/events/timelineTimeChangedEvent'; import { TimelineSelectedEvent } from './utils/events/timelineSelectedEvent'; import { TimelineScrollEvent } from './utils/events/timelineScrollEvent'; import { TimelineClickEvent } from './utils/events/timelineClickEvent'; import { TimelineDragEvent } from './utils/events/timelineDragEvent'; // @public enums import { TimelineKeyframeShape } from './enums/timelineKeyframeShape'; import { TimelineInteractionMode } from './enums/timelineInteractionMode'; import { TimelineElementType } from './enums/timelineElementType'; import { TimelineCursorType } from './enums/timelineCursorType'; import { TimelineCapShape } from './enums/timelineCapShape'; import { TimelineEventSource } from './enums/timelineEventSource'; import { TimelineSelectionMode } from './enums/timelineSelectionMode'; import { TimelineEvents } from './enums/timelineEvents'; // @private defaults are exposed: import { TimelineScrollSource } from './enums/timelineScrollSource'; import { defaultTimelineConsts } from './settings/defaults/defaultTimelineConsts'; import { defaultTimelineOptions } from './settings/defaults/defaultTimelineOptions'; import { remToPxNumber } from "@/utils"; export class Timeline extends TimelineEventsEmitter { /** * component container. */ _container: HTMLElement | null = null; /** * Dynamically generated canvas inside of the container. */ _canvas: HTMLCanvasElement | null = null; /** * Dynamically generated scroll container. */ _scrollContainer: HTMLElement | null = null; /** * Dynamically generated virtual scroll content. * While canvas has no real size, this element is used to create virtual scroll on the parent element. */ _scrollContent: HTMLElement | null = null; /** * Rendering context */ _ctx: CanvasRenderingContext2D | null = null; /** * Components settings */ _options!: TimelineOptions; /** * Drag start position. */ _startPosMouseArgs: TimelineMouseData | null = null; /** * Drag scroll started position. */ _scrollStartPos: DOMPoint | null = null; /** * Private. Current mouse position that is used to track values between mouse up/down events. * Can be null, use public methods and properties instead. */ _currentPos: TimelineMouseData | null = null; /** * Private. Current active mouse area selection rectangle displayed during the mouse up/down drag events. */ _selectionRect: DOMRect | null = null; /** * Private. Whether selection rectangle is displayed. */ _selectionRectEnabled = false; /** * Private. Information in regard of current active drag state. */ _drag: TimelineDraggableData | null = null; _startedDragWithCtrl = false; _startedDragWithShiftKey = false; _scrollProgrammatically = false; _clickTimeout: number | null = null; _lastClickTime = 0; _lastClickPoint: DOMPoint | null = null; _consts: TimelineConsts = defaultTimelineConsts; /** * Private. whether click is allowed. */ _clickAllowed = false; /** * Private. scroll finished timer reference. */ _scrollFinishedTimerRef?: number | null = null; /** * Private.Current timeline position. * Please use public get\set methods to properly change the timeline position. */ _val = 0; _pixelRatio = 1; /** * Private. Current zoom level. Please use publicly available properties to set zoom levels. */ _currentZoom = 0; /** * Private. Ref for the auto pan scroll interval. */ _intervalRef?: number | null = null; /** * Private. * When last auto pan scroll action was started. */ _autoPanLastActionDate = 0; /** * Private. * Is pan mouse interactions are started. */ _isPanStarted = false; /** * Private. * Component interaction mode. Please use publicly available methods. */ _interactionMode = TimelineInteractionMode.Selection; _lastUsedArgs: MouseEvent | TouchEvent | null = null; /** * Private. * Current set timeline model. */ _model: TimelineModel | null = null; /** * Private. * Indication when scroll are drag or click is started. */ _scrollAreaClickOrDragStarted = false; /** * Create Timeline instance * @param options Timeline settings. * @param model Timeline model. */ constructor(options: TimelineOptions | null = null, model: TimelineModel | null = null) { super(); this._options = TimelineUtils.cloneOptions(defaultTimelineOptions); // Allow to create instance without an error to perform tests. if (options || model) { this.initialize(options, model); } } /** * Initialize Timeline * @param options Timeline settings. * @param model Timeline model. */ public initialize = (options: TimelineOptions | null, model: TimelineModel | null): void => { this._model = model; if (!options || !options.id) { throw new Error(`Element cannot be empty. Should be string or DOM element.`); } this._generateContainers(options.id); this._options = TimelineUtils.cloneOptions(defaultTimelineOptions); if (options) { this._options = this._setOptions(options); } this._subscribeComponentEvents(); this.rescale(); this.redraw(); }; /** * Generate component html. * @param id container. */ _generateContainers = (id: string | HTMLElement): void => { if (id instanceof HTMLElement) { this._container = id as HTMLElement; } else { this._container = document.getElementById(id); } if (!this._container) { throw new Error(`Element cannot be empty. Should be string or DOM element.`); } this._scrollContainer = document.createElement('div'); this._scrollContent = document.createElement('div'); this._canvas = document.createElement('canvas'); if (!this._canvas || !this._canvas.getContext) { console.log('Cannot initialize canvas context.'); return; } this._container.innerHTML = ''; this._container.style.position = 'relative'; // Generate size container: this._canvas.style.cssText = 'image-rendering: -moz-crisp-edges;' + 'image-rendering: -webkit-crisp-edges;' + 'image-rendering: pixelated;' + 'image-rendering: crisp-edges;' + 'user-select: none;' + '-webkit-user-select: none;' + '-khtml-user-select: none;' + '-moz-user-select: none;' + '-o-user-select: none;' + 'user-select: none;' + 'touch-action: none;' + 'position: relative;' + '-webkit-user-drag: none;' + '-khtml-user-drag: none;' + '-moz-user-drag: none;' + '-o-user-drag: none;' + 'user-drag: none;' + 'padding: inherit'; // Those styles are hardcoded and required for the proper scrolling. this._scrollContainer.style.cssText = 'overflow: scroll;' + 'position: absolute;' + 'width: 100%;' + 'height: 100%;'; this._scrollContent.style.width = this._scrollContent.style.height = '100%'; // add the text node to the created div this._scrollContainer.appendChild(this._scrollContent); this._container.appendChild(this._scrollContainer); const scrollBarWidth = this._scrollContainer.offsetWidth - this._scrollContent.clientWidth; // Calculate current browser scrollbar size and add offset for the canvas this._canvas.style.width = this._canvas.style.height = 'calc(100% -' + (scrollBarWidth || 17) + 'px)'; this._container.appendChild(this._canvas); this._ctx = this._getCtx(); }; /** * Get drawing context */ _getCtx(): CanvasRenderingContext2D | null { if (!this._canvas) { return null; } if (this._ctx) { return this._ctx; } this._ctx = this._canvas.getContext('2d'); return this._ctx; } /** * Subscribe current component on the related events. * Private. Use initialize method instead. */ _subscribeComponentEvents = (): void => { // Allow to call event multiple times, revoke current subscription and subscribe again. this._unsubscribeComponentEvents(); if (!this._container || !this._scrollContainer || !this._canvas) { throw Error(`Cannot subscribe on scroll events while one of the containers is null or empty. Please call initialize method first`); } if (this._container) { this._container.addEventListener('wheel', this._handleWheelEvent); } if (this._scrollContainer) { this._scrollContainer.addEventListener('scroll', this._handleScrollEvent); this._scrollContainer.addEventListener('touchstart', this._handleScrollMouseDownEvent); this._scrollContainer.addEventListener('mousedown', this._handleScrollMouseDownEvent); } document.addEventListener('keyup', this._handleKeyUp, false); document.addEventListener('keydown', this._handleKeyDown, false); window.addEventListener('blur', this._handleBlurEvent, false); window.addEventListener('resize', this._handleWindowResizeEvent, false); if (this._canvas) { this._canvas.addEventListener('touchstart', this._handleMouseDownEvent, false); this._canvas.addEventListener('mousedown', this._handleMouseDownEvent, false); this._canvas.addEventListener('contextmenu', this._handleContextMenu, false); } window.addEventListener('mousemove', this._handleMouseMoveEvent, false); window.addEventListener('touchmove', this._handleMouseMoveEvent, false); window.addEventListener('mouseup', this._handleMouseUpEvent, false); window.addEventListener('touchend', this._handleMouseUpEvent, false); }; /** * Private. Use dispose method instead. */ _unsubscribeComponentEvents = (): void => { this._container?.removeEventListener('wheel', this._handleWheelEvent); if (this._scrollContainer) { this._scrollContainer.removeEventListener('scroll', this._handleScrollEvent); this._scrollContainer.removeEventListener('touchstart', this._handleScrollMouseDownEvent); this._scrollContainer.removeEventListener('mousedown', this._handleScrollMouseDownEvent); } else { console.warn(`Cannot unsubscribe scroll while it's already empty`); } window.removeEventListener('blur', this._handleBlurEvent); window.removeEventListener('resize', this._handleWindowResizeEvent); document.removeEventListener('keydown', this._handleKeyDown); document.removeEventListener('keyup', this._handleKeyUp); if (this._canvas) { this._canvas.removeEventListener('touchstart', this._handleMouseDownEvent); this._canvas.removeEventListener('mousedown', this._handleMouseDownEvent); this._canvas.removeEventListener('contextmenu', this._handleContextMenu); } else { console.warn(`Cannot unsubscribe canvas while it's already empty`); } window.removeEventListener('mousemove', this._handleMouseMoveEvent); window.removeEventListener('touchmove', this._handleMouseMoveEvent); window.removeEventListener('mouseup', this._handleMouseUpEvent); window.removeEventListener('touchend', this._handleMouseUpEvent); }; /** * Dispose current component: unsubscribe component and user events. */ public dispose = (): void => { // Unsubscribe all user events. this.offAll(); // Stop times this._stopAutoPan(); this._clearScrollFinishedTimer(); this._unsubscribeComponentEvents(); if (this._container) { this._container.innerHTML = ''; } this._container = null; this._canvas = null; this._scrollContainer = null; this._scrollContent = null; this._ctx = null; this._cleanUpSelection(); }; /** * On key up is received. */ _handleKeyUp = (event: KeyboardEvent): void => { if (this._interactionMode === TimelineInteractionMode.Zoom) { this._setZoomCursor(event); } }; /** * On key down is received. */ _handleKeyDown = (event: KeyboardEvent): void => { if (this._interactionMode === TimelineInteractionMode.Zoom) { this._setZoomCursor(event); } }; _setZoomCursor = (e: MouseEvent | KeyboardEvent): void => { if (this._controlKeyPressed(e)) { this._setCursor(TimelineCursorType.ZoomOut); } else { this._setCursor(TimelineCursorType.ZoomIn); } }; _handleBlurEvent = (): void => { this._cleanUpSelection(true); }; _handleWindowResizeEvent = (): void => { // Rescale and redraw this.rescale(); this.redraw(); }; _clearScrollFinishedTimer = (): void => { if (this._scrollFinishedTimerRef) { clearTimeout(this._scrollFinishedTimerRef); this._scrollFinishedTimerRef = null; } }; _handleScrollMouseDownEvent = (): void => { this._scrollAreaClickOrDragStarted = true; }; _handleScrollEvent = (args: Event): void => { const scrollProgrammatically = this._scrollProgrammatically; if (this._scrollProgrammatically) { this._scrollProgrammatically = false; } // Stop previous running timeout. this._clearScrollFinishedTimer(); // Set a timeout to run event 'scrolling end'. // Auto scroll is used to repeat scroll when drag element or select items outside of the visible area. this._scrollFinishedTimerRef = window.setTimeout(() => { if (!this._isPanStarted) { this._clearScrollFinishedTimer(); this.rescale(); this.redraw(); } this._emitScrollEvent(args, scrollProgrammatically, TimelineEvents.ScrollFinished); }, this._consts.scrollFinishedTimeoutMs); this.redraw(); this._emitScrollEvent(args, scrollProgrammatically); }; _controlKeyPressed = (e: MouseEvent | KeyboardEvent | TouchEvent): boolean => { if (!this._options || this._options.controlKeyIsMetaKey === undefined) { return e.metaKey || e.ctrlKey; } return this._options.controlKeyIsMetaKey || this._options.controlKeyIsMetaKey ? e.metaKey : e.ctrlKey; }; _handleWheelEvent = (event: WheelEvent): void => { if (!this._scrollContainer || !this._canvas) { // Component is not initialized yet. return; } if (this._controlKeyPressed(event)) { event.preventDefault(); const mousePosArguments = this._getMousePos(this._canvas, event); const mousePos = Math.max(0, mousePosArguments.pos.x || 0); this._zoom(TimelineUtils.sign(event.deltaY), this._options.zoomSpeed || 0, mousePos); } else { this.scrollTop = this._scrollContainer.scrollTop + event.deltaY; event.preventDefault(); } }; _zoom = (direction: number, speed: number, x: number): void => { if (speed && speed > 0 && speed <= 1) { const deltaSpeed = TimelineUtils.getDistance(this._canvasClientWidth() / 2, x) * 0.2; x = x + deltaSpeed; const diff = this._canvasClientWidth() / x; const val = this._fromScreen(x); const zoom = direction * this._currentZoom * speed; //this._options.zoom this._currentZoom = this._setZoom(this._currentZoom + zoom); // Get only after zoom is set const zoomCenter = this.valToPx(val); let newScrollLeft = Math.round(zoomCenter - this._canvasClientWidth() / diff); if (newScrollLeft <= 0) { newScrollLeft = 0; } this._rescaleInternal(newScrollLeft + this._canvasClientWidth(), null, TimelineScrollSource.ZoomMode); this.scrollLeft = newScrollLeft; this.emit(TimelineEvents.Zoom, { zoom: this._currentZoom, zoomCenter: zoomCenter }); this.redraw(); } }; /** * Zoom in * @param speed value from 0 to 1 */ public zoomIn = (speed = this._options.zoomSpeed): void => { const width = this._scrollContainer?.clientWidth || 0; if (speed && width) { this._zoom(1, speed, width / 2); } }; /** * Zoom out. * @param speed value from 0 to 1 */ public zoomOut = (speed = this._options.zoomSpeed): void => { const width = this._scrollContainer?.clientWidth || 0; if (speed && width) { this._zoom(-1, speed, width / 2); } }; /** * Set direct zoom value. * @param zoom zoom value to set. percent 0-1 and etc. * @param min min zoom. * @param max max zoom. * @return normalized value. */ _setZoom = (zoom: number, min: number | null | undefined = null, max: number | null | undefined = null): number => { min = TimelineUtils.isNumber(min) ? min : this._options?.zoomMin; max = TimelineUtils.isNumber(max) ? max : this._options?.zoomMax; if (TimelineUtils.isNumber(zoom)) { zoom = TimelineUtils.keepInBounds(zoom, min, max); zoom = zoom || 1; this._currentZoom = zoom; return zoom; } return zoom; }; /** * Set direct zoom value. * @public * @param zoom zoom value to set. percent 0-1 and etc. * @return normalized value. */ setZoom = (zoom: number): number => { const prevZoom = this.getZoom(); if (prevZoom !== zoom) { const zoomSet = this._setZoom(zoom); if (prevZoom != zoomSet) { this.rescale(); this.redraw(); return zoomSet; } } return prevZoom; }; /** * Get current zoom level. */ getZoom = (): number => { if (TimelineUtils.isNumber(this._currentZoom)) { return this._currentZoom || 1; } return 1; }; _getClickDetectionRadius = (point: TimelineMouseData): number => { const defaultValue = this._consts.clickDetectionMinRadius || 1; return Math.max(defaultValue, point?.radius || defaultValue); }; _handleContextMenu = (args: MouseEvent | TouchEvent): void => { // Prevent drag of the canvas if canvas is selected as text: TimelineUtils.clearBrowserSelection(); if (!this._canvas || !this._scrollContainer) { this._cleanUpSelection(); return; } const mousePosTimeline = this._trackMousePos(this._canvas, args); const clickRadius = this._getClickDetectionRadius(mousePosTimeline); const elements = this.elementFromPoint(mousePosTimeline.pos, clickRadius, []); const target = this._findDraggableElement(elements, mousePosTimeline.val); // Create click event const event = new TimelineClickEvent(); event.point = mousePosTimeline; event.args = args; // all elements under the click: event.elements = elements; // target element. event.target = target; super.emit(TimelineEvents.ContextMenu, event); }; /** * @param args */ _handleMouseDownEvent = (args: MouseEvent | TouchEvent): void => { // 20250306: 右键点击不触发mousedown if((args).button === 2) return; // Prevent drag of the canvas if canvas is selected as text: TimelineUtils.clearBrowserSelection(); if (!this._canvas || !this._scrollContainer) { this._cleanUpSelection(); return; } this._startPosMouseArgs = this._trackMousePos(this._canvas, args); if (!this._startPosMouseArgs) { return; } let isDoubleClick = Date.now() - this._lastClickTime < this._consts.doubleClickTimeoutMs; // Don't allow to perform double click if mouse was moved to far. if ( this._lastClickPoint && this._startPosMouseArgs && TimelineUtils.getDistance(this._lastClickPoint.x, this._lastClickPoint.y, this._startPosMouseArgs.pos.x, this._startPosMouseArgs.pos.y) > this._consts.clickThreshold ) { isDoubleClick = false; } this._lastClickPoint = this._startPosMouseArgs.pos; this._scrollStartPos = { x: this._scrollContainer.scrollLeft, y: this._scrollContainer.scrollTop } as DOMPoint; this._clickAllowed = true; let onlyElements: TimelineElementType[] | null = null; if (this._interactionMode === TimelineInteractionMode.NonInteractivePan || this._interactionMode === TimelineInteractionMode.None) { // Allow to select only timeline. Timeline position can be disabled/enabled by properties. onlyElements = [TimelineElementType.Timeline]; } const clickRadius = this._getClickDetectionRadius(this._startPosMouseArgs); const elements = this.elementFromPoint(this._startPosMouseArgs.pos, clickRadius, onlyElements); const target = this._findDraggableElement(elements, this._startPosMouseArgs.val); // Create click event const event = new TimelineClickEvent(); event.point = this._startPosMouseArgs; event.args = args; // all elements under the click: event.elements = elements; // target element. event.target = target; if (isDoubleClick) { super.emit(TimelineEvents.DoubleClick, event); return; } super.emit(TimelineEvents.MouseDown, event); this._clickTimeout = Date.now(); this._lastClickTime = Date.now(); if (event.isPrevented()) { // Mouse up will be also prevented this._cleanUpSelection(); return; } this._currentPos = this._startPosMouseArgs; // Select keyframes on mouse down if (target && this._interactionMode !== TimelineInteractionMode.Zoom) { this._drag = new TimelineDraggableData(); this._drag.val = target.val; this._drag.type = target.type; this._drag.target = this._setElementDragState(target, target.val); if (target.type === TimelineElementType.Keyframe) { this._startedDragWithCtrl = this._controlKeyPressed(args); this._startedDragWithShiftKey = args.shiftKey; // get all related selected keyframes if we are selecting one. if (target?.keyframe && !target?.keyframe?.selected && !this._controlKeyPressed(args)) { this._selectInternal(target.keyframe); } // Allow to drag all selected keyframes on a screen this._drag.elements = this.getSelectedElements().map((element) => { return this._setElementDragState(element, element.val); }); } else if (target.type === TimelineElementType.Group) { const keyframes = this._drag.target.keyframes; if (keyframes && Array.isArray(keyframes)) { this._drag.elements = keyframes.map((keyframe) => { return this._setElementDragState(this._convertToTimelineElement(this._drag?.target.row || null, keyframe), keyframe.val); }); } } else { this._drag.elements = [this._drag.target]; } } this.redraw(); }; _setElementDragState = (element: TimelineElement | TimelineElementDragState, val: number): TimelineElementDragState => { const state = element as TimelineElementDragState; state.prevVal = state.val; if (state.startedVal === undefined || state.startedVal === null) { state.startedVal = val; } if (state.prevVal === undefined || state.prevVal === null) { state.prevVal = val; } state.val = val; return state; }; /** * Check is mouse left button is clicked. */ isLeftButtonClicked = (args: MouseEvent | TouchEvent | any): boolean => { return !!args && args.buttons == 1; }; /** * Browser mouse move handler. */ _handleMouseMoveEvent = (args: MouseEvent | TouchEvent | null): void => { if (!args) { args = this._lastUsedArgs; } else { this._lastUsedArgs = args; } if (!args || !this._canvas) { return; } const touchEventArgs = args as TouchEvent; const isTouch = touchEventArgs.changedTouches && touchEventArgs.changedTouches.length > 0; this._currentPos = this._trackMousePos(this._canvas, args); if (!this._isPanStarted && this._selectionRect && this._clickTimeoutIsOver()) { // TODO: implement selection by rect if (this._interactionMode === TimelineInteractionMode.None || this._interactionMode === TimelineInteractionMode.Zoom || this._interactionMode === TimelineInteractionMode.NonInteractivePan) { this._selectionRectEnabled = false; } else { this._selectionRectEnabled = true; } } else { this._selectionRectEnabled = false; } args = args as MouseEvent; const isLeftClicked = this.isLeftButtonClicked(args); if (!isLeftClicked) { this._scrollAreaClickOrDragStarted = false; } // On dragging is started. if (this._startPosMouseArgs) { // On left button is on hold by the user if (isLeftClicked || isTouch) { if (this._drag && !this._startedDragWithCtrl) { const convertedVal = this._currentPos.val; if (this._drag.type === TimelineElementType.Timeline) { this._setTimeInternal(convertedVal, TimelineEventSource.User); } else if ((this._drag.type == TimelineElementType.Keyframe || this._drag.type == TimelineElementType.Group) && this._drag.elements) { const offset = Math.floor(convertedVal - this._drag.val); const movedOffset = this._moveElements(offset, this._drag.elements, TimelineEventSource.User); if (movedOffset !== 0) { if (!this._drag.changed) { this._drag.prevVal = this._drag.val; const eventArgs = this._emitDragStartedEvent(this._drag); if (!eventArgs || eventArgs.isPrevented()) { // Cleanup drag here, so drag finished will be ignored. this._cleanUpSelection(true); this._drag = null; return; } } this._drag.changed = true; this._drag.val += offset; this._emitDragEvent(this._drag); } } } if ((this._interactionMode === TimelineInteractionMode.Pan || this._interactionMode === TimelineInteractionMode.NonInteractivePan) && !this._drag) { this._isPanStarted = true; this._setCursor(TimelineCursorType.Grabbing); // Track scroll by drag. this._scrollByPan(this._startPosMouseArgs.pos, this._currentPos.pos, this._scrollStartPos); } else { if (this._interactionMode !== TimelineInteractionMode.None) { // Track scroll by mouse or touch out of the area. this._scrollBySelectionOutOfBounds(this._currentPos.pos); } } this.redraw(); } else { // Fallback. Cancel mouse move when focus was lost and mouse down is still counted. this._cleanUpSelection(true); this.redraw(); } } else if (!isTouch) { // Set mouse over cursors let onlyElements: TimelineElementType[] | null = null; if (this._interactionMode === TimelineInteractionMode.NonInteractivePan || this._interactionMode === TimelineInteractionMode.None) { // Allow to select only timeline. Timeline position can be disabled/enabled by properties. onlyElements = [TimelineElementType.Timeline]; } const clickRadius = this._getClickDetectionRadius(this._currentPos); const elements = this.elementFromPoint(this._currentPos.pos, clickRadius, onlyElements); const target = this._findDraggableElement(elements, this._currentPos.val); if (this._isPanStarted || this._interactionMode === TimelineInteractionMode.Pan || this._interactionMode === TimelineInteractionMode.NonInteractivePan) { if (isLeftClicked) { this._setCursor(TimelineCursorType.Grabbing); } else { this._setCursor(TimelineCursorType.Grab); } } else { if (this._interactionMode === TimelineInteractionMode.Zoom) { this._setZoomCursor(args); return; } else { this._setCursor(TimelineCursorType.Default); } } if (target) { let cursor: TimelineCursorType | null = null; if (target.type === TimelineElementType.Group) { cursor = cursor || TimelineCursorType.EWResize; } else if (target.type == TimelineElementType.Keyframe) { cursor = cursor || TimelineCursorType.Pointer; } else if (target.type == TimelineElementType.Timeline) { cursor = cursor || this._options?.timelineStyle?.cursor || null; } if (cursor) { this._setCursor(cursor); } } } if (isTouch) { args.preventDefault(); } }; /** * Move elements * @param offset vector to move elements along. * @param elements Element to move. * @returns real moved value. */ _moveElements(offset: number, elements: TimelineElementDragState[], source: TimelineEventSource = TimelineEventSource.Programmatically): number { if (!elements) { return 0; } let isChanged = false; if (Math.abs(offset) > 0) { // Find drag min and max bounds: let bounds = { min: Number.MIN_SAFE_INTEGER, max: Number.MAX_SAFE_INTEGER } as TimelineRanged; // Set min max from the options. bounds = TimelineUtils.setMinMax(bounds, this._options); elements.forEach((p) => { if (!p || !p.keyframe) { return; } // find allowed bounds for the draggable items. // find for each row and keyframe separately. const currentBounds = TimelineUtils.setMinMax(TimelineUtils.setMinMax({ min: bounds.min, max: bounds.max }, p.keyframe), p.row || null); const expectedKeyframeValue = this._options?.snapAllKeyframesOnMove ? this.snapVal(p.keyframe.val) : p.keyframe.val; const newPosition = expectedKeyframeValue + offset; // Check that move offset will hit min bounds if ((currentBounds.min || currentBounds.min === 0) && TimelineUtils.isNumber(currentBounds.min) && newPosition < currentBounds.min) { // Return to the bounds: offset = offset + TimelineUtils.getDistance(currentBounds.min, newPosition); } if ((currentBounds.max || currentBounds.max === 0) && TimelineUtils.isNumber(currentBounds.max) && newPosition > currentBounds.max) { // Return to the bounds: offset = offset - TimelineUtils.getDistance(currentBounds.max, newPosition); } }); if (Math.abs(offset) > 0) { // don't allow to move less than zero offset. elements.forEach((element) => { if (!element?.keyframe) { return; } const prevVal = element.keyframe.val; const toSet = prevVal + offset; const newValue = this._setKeyframePos(element, toSet, source); isChanged = newValue !== prevVal; }); } if (isChanged) { return offset; } } return 0; } /** * Mouse up handler. */ _handleMouseUpEvent = (args: MouseEvent | TouchEvent): void => { this._scrollAreaClickOrDragStarted = false; if (!this._canvas) { return; } if (this._startPosMouseArgs) { //window.releaseCapture(); const pos = this._trackMousePos(this._canvas, args); // Click detection. if (this._clickAllowed || !this._clickTimeoutIsOver() || (this._drag && (this._startedDragWithCtrl || this._startedDragWithShiftKey))) { if (this._options && this._interactionMode === TimelineInteractionMode.Zoom) { const direction = this._controlKeyPressed(args) ? 1 : -1; const mouseArgs = this._getMousePos(this._canvas, args); const mousePos = Math.max(0, mouseArgs.pos.x || 0); this._zoom(direction, this._options.zoomSpeed || 0, mousePos); } else { this._performClick(pos, this._drag); } } else if (!this._drag && this._selectionRect && this._selectionRectEnabled) { if (this._interactionMode === TimelineInteractionMode.Zoom) { // TODO: implement zoom by screen rect. } else if (this._interactionMode !== TimelineInteractionMode.None) { const keyframes = this._getKeyframesByRectangle(this._selectionRect); const selectionMode = args.shiftKey ? TimelineSelectionMode.Append : TimelineSelectionMode.Normal; this.select(keyframes, selectionMode); } } this._cleanUpSelection(); this.redraw(); } }; /** * Canvas client height. */ _canvasClientHeight = (): number => { if (this._canvas) { return this._canvas.clientHeight; } return 0; }; /** * Canvas client width. */ _canvasClientWidth = (): number => { if (this._canvas) { return this._canvas.clientWidth; } return 0; }; /** * Get all keyframes under the screen rectangle. * @param screenRect screen coordinates to get keyframes. */ _getKeyframesByRectangle = (screenRect: DOMRect): TimelineKeyframe[] => { const keyframesModels: Array = []; this._forEachKeyframe((keyframeViewModel) => { const intersects = keyframeViewModel.shape === TimelineKeyframeShape.Rect ? TimelineUtils.isRectIntersects(keyframeViewModel.size, screenRect) : TimelineUtils.isOverlap(keyframeViewModel.size.x, keyframeViewModel.size.y, screenRect); if (intersects) { keyframesModels.push(keyframeViewModel.model); } }); return keyframesModels; }; /** * Private. * Perform timeline click. */ _performClick = (pos: TimelineMouseData, drag: TimelineDraggableData | null): boolean => { let isChanged = false; if (drag && drag.type === TimelineElementType.Keyframe) { let mode = TimelineSelectionMode.Normal; if (this._startedDragWithCtrl && this._controlKeyPressed(pos.args)) { if (this._controlKeyPressed(pos.args)) { mode = TimelineSelectionMode.Revert; } } else if (this._startedDragWithShiftKey && pos.args.shiftKey) { mode = TimelineSelectionMode.Append; } // Reverse selected keyframe selection by a click: isChanged = this._selectInternal(drag?.target?.keyframe || null, mode).selectionChanged || isChanged; if (pos.args.shiftKey && this._options?.timelineDraggable !== false) { // Set current timeline position if it's not a drag or selection rect small or fast click. isChanged = this._setTimeInternal(pos.val, TimelineEventSource.User) || isChanged; } } else { // deselect keyframes if any: isChanged = this._selectInternal(null).selectionChanged || isChanged; if (this._options?.timelineDraggable !== false) { // change timeline pos: // Set current timeline position if it's not a drag or selection rect small or fast click. isChanged = this._setTimeInternal(pos.val, TimelineEventSource.User) || isChanged; } } return isChanged; }; /** * Set keyframe value. * @param keyframe * @param value * @return set value. */ _setKeyframePos = (element: TimelineElementDragState, value: number, source: TimelineEventSource = TimelineEventSource.Programmatically): number => { if (!element || !element.keyframe) { return value; } value = Math.floor(value); if (element.keyframe && element.keyframe.val != value) { element.prevVal = element.val; element.val = value; element.keyframe.val = value; const event = this._emitKeyframeChanged(element, source); if (event.isPrevented()) { element.val = event.prevVal; element.keyframe.val = event.prevVal; } return value; } return value; }; /** * @param cursor to set. */ _setCursor = (cursor: string): void => { if (this._canvas && this._canvas.style.cursor != cursor) { this._canvas.style.cursor = cursor; } }; /** * Set component interaction mode. */ public setInteractionMode = (mode: TimelineInteractionMode): void => { if (this._interactionMode != mode) { this._interactionMode = mode; // Avoid any conflicts with other modes, clean current state. this._cleanUpSelection(true); this.redraw(); } }; /** * Get current interaction mode. */ public getInteractionMode = (): TimelineInteractionMode => { return this._interactionMode; }; /** * Private. * Helper method. Convert model element to timeline element. */ _convertToTimelineElement = (rowModel: TimelineRow | null, keyframe: TimelineKeyframe): TimelineElement => { const data = { type: TimelineElementType.Keyframe, val: keyframe.val, keyframe: keyframe, row: rowModel, } as TimelineElement; return data; }; public getSelectedKeyframes = (): TimelineKeyframe[] => { const selected = this.getSelectedElements(); return selected.map((p) => p.keyframe) as TimelineKeyframe[]; }; /** * Get selected timeline elements. */ public getSelectedElements = (): TimelineElement[] => { const selected: TimelineElement[] = []; this._forEachKeyframe((keyframe): void => { if (keyframe && keyframe.model.selected) { selected.push(this._convertToTimelineElement(keyframe.rowViewModel.model, keyframe.model)); } return; }); return selected; }; /** * Get all keyframe models available in the model. */ public getAllKeyframes = (): TimelineKeyframe[] => { const keyframes: TimelineKeyframe[] = []; this._forEachKeyframe((keyframe): void => { keyframes.push(keyframe.model); }); return keyframes; }; public selectAllKeyframes = (): TimelineSelectionResults => { return this.select(this.getAllKeyframes(), TimelineSelectionMode.Normal); }; public deselectAll = (): TimelineSelectionResults => { return this.select(null); }; private _changeNodeState = (state: TimelineSelectionResults, node: TimelineKeyframe, value: boolean): boolean => { if (node.selected !== value) { const selectable = typeof node.selectable === 'boolean' ? node.selectable : true; if (!value || (value && selectable)) { node.selected = value; state.changed.push(node); return true; } } return false; }; public select = (nodes: TimelineKeyframe[] | TimelineKeyframe | null, mode = TimelineSelectionMode.Normal): TimelineSelectionResults => { const results = this._selectInternal(nodes, mode); if (results.selectionChanged) { this.redraw(); } return results; }; /** * Select keyframes * @param nodes keyframe or list of the keyframes to be selected. * @param mode selection mode. */ public _selectInternal = (nodes: TimelineKeyframe[] | TimelineKeyframe | null, mode = TimelineSelectionMode.Normal): TimelineSelectionResults => { if (!nodes) { nodes = []; } if (!Array.isArray(nodes)) { nodes = [nodes]; } const state = { selectionChanged: false, selected: this.getSelectedKeyframes(), changed: [] as Array, } as TimelineSelectionResults; const nodesArray = nodes as TimelineKeyframe[]; //const state = this.selectedSubject.getValue(); if (nodesArray && mode === TimelineSelectionMode.Append) { nodes.forEach((node) => { const changed = this._changeNodeState(state, node, true); if (changed && node.selected) { state.selected.push(node); } }); } else if (nodesArray && mode === TimelineSelectionMode.Revert) { nodes.forEach((node) => { if (state.selected.indexOf(node) >= 0) { this._changeNodeState(state, node, false); TimelineUtils.deleteElement(state.selected, node); } else { this._changeNodeState(state, node, true); if (node.selected) { state.selected.push(node); } } }); } else if (mode === TimelineSelectionMode.Normal) { const selectedItems: Array = []; if (nodes) { nodes.forEach((node) => { this._changeNodeState(state, node, true); if (node.selected) { selectedItems.push(node); } }); } state.selected.forEach((node) => { const exists = nodesArray.indexOf(node) >= 0; // Deselect if (!exists) { this._changeNodeState(state, node, false); } }); if (state.changed.length > 0) { if (selectedItems) { state.selected = selectedItems; } else { state.selected.length = 0; } } } if (state.changed.length > 0) { state.selectionChanged = true; this._emitKeyframesSelected(state); } return state; }; /** * foreach visible keyframe. */ _forEachKeyframe(callback: (keyframe: TimelineKeyframeViewModel, index?: number, newRow?: boolean) => void, onRowCallback?: (rowViewModel: TimelineRowViewModel) => void): void { if (!callback && !onRowCallback) { return; } if (!this._model) { return; } const calculatedModel = this._generateViewModel(); if (!calculatedModel) { return; } calculatedModel?.rowsViewModels?.forEach((rowViewModel) => { if (!rowViewModel) { return; } onRowCallback && onRowCallback(rowViewModel); let nextRow = true; if (callback) { rowViewModel.keyframesViewModels.forEach((keyframeViewModel, keyframeIndex) => { if (keyframeViewModel) { callback(keyframeViewModel, keyframeIndex, nextRow); } nextRow = false; }); } }); } /** * Private. * Create extended mouse position and calculate size of the selection rectangle. */ _trackMousePos(canvas: HTMLCanvasElement, mouseArgs: MouseEvent | TouchEvent): TimelineMouseData { const clickArgs = this._getMousePos(canvas, mouseArgs); const pos = clickArgs.pos; clickArgs.originalVal = this._mousePosToVal(pos.x, false); clickArgs.snapVal = this._mousePosToVal(pos.x, true); clickArgs.val = clickArgs.originalVal; if (this._options && this._options.snapEnabled) { clickArgs.val = clickArgs.snapVal; } if (this._startPosMouseArgs) { if (!this._selectionRect) { this._selectionRect = {} as DOMRect; } const startPos = this._startPosMouseArgs.pos; // get the pos with the virtualization: const x = Math.floor(startPos.x + ((this._scrollStartPos?.x || 0) - this.scrollLeft)); const y = Math.floor(startPos.y + ((this._scrollStartPos?.y || 0) - this.scrollTop)); this._selectionRect.x = Math.min(x, pos.x); this._selectionRect.y = Math.min(y, pos.y); this._selectionRect.width = Math.max(x, pos.x) - this._selectionRect.x; this._selectionRect.height = Math.max(y, pos.y) - this._selectionRect.y; // Once mouse was moved outside of the bounds it's not a click anymore if (this._clickAllowed) { this._clickAllowed = this._selectionRect.height <= this._consts.clickThreshold && this._selectionRect.width <= this._consts.clickThreshold; } } return clickArgs; } /** * Get scroll container client width. */ getClientWidth(): number { return this._scrollContainer?.clientWidth || 0; } /** * Get scroll container client height. */ getClientHeight(): number { return this._scrollContainer?.clientHeight || 0; } _cleanUpSelection(forcePrevent = false): void { if (this._drag) { this._emitDragFinishedEvent(this._drag, forcePrevent); } this._startPosMouseArgs = null; this._drag = null; this._scrollAreaClickOrDragStarted = false; this._startedDragWithCtrl = false; this._startedDragWithShiftKey = false; this._selectionRect = null; this._clickTimeout = null; this._scrollStartPos = null; this._isPanStarted = false; this._clickAllowed = false; this._stopAutoPan(); } /** * Check whether click timeout is over. */ _clickTimeoutIsOver(): boolean { // Duration before the selection can be tracked. if (this._clickTimeout && Date.now() - this._clickTimeout > this._consts.clickDetectionMs) { return true; } return false; } /** * Automatically pan. Scroll canvas when selection is made and mouse outside of the bounds. */ _startAutoPan = (): void => { if (this._consts.autoPanSpeed) { if (!this._intervalRef) { // Repeat move calls to this._intervalRef = window.setInterval(() => { this._handleMouseMoveEvent(null); }, this._consts.autoPanSpeed); } } }; /** * Stop current running auto pan */ _stopAutoPan = (): void => { if (this._intervalRef) { clearInterval(this._intervalRef); this._intervalRef = null; } this._autoPanLastActionDate = 0; }; /** * Check whether auto pan should be slowed down a bit. */ _checkUpdateSpeedTooFast(): boolean { // Slow down updated a bit. if (this._autoPanLastActionDate && Date.now() - this._autoPanLastActionDate <= this._consts.autoPanSpeedLimit) { return true; } this._autoPanLastActionDate = Date.now(); return false; } /** * Scroll virtual canvas when pan mode is enabled. */ _scrollByPan(start: DOMPoint, pos: DOMPoint, scrollStartPos: DOMPoint | null): void { if (!start || !pos || !this._scrollContainer) { return; } let x = 0; let y = 0; if (scrollStartPos) { x = scrollStartPos.x; y = scrollStartPos.y; } const offsetX = Math.round(start.x - pos.x); const newLeft = x + offsetX; if (offsetX > 0) { this._rescaleInternal(newLeft + this._canvasClientWidth()); } if (offsetX > 0 && newLeft + this._canvasClientWidth() >= this._scrollContainer.scrollWidth - 5) { this.scrollLeft = this._scrollContainer.scrollWidth; } else { this.scrollLeft = newLeft; } this.scrollTop = Math.round(y + start.y - pos.y); } _scrollBySelectionOutOfBounds(pos: DOMPoint): boolean { if (!this._scrollContainer) { return false; } const x = pos.x; const y = pos.y; let isChanged = false; let speedX = 0; let speedY = 0; // Small offset to start auto pan earlier. const bounds = this._consts.autoPanByScrollPadding; const isLeft = x <= bounds; const isRight = x >= this._canvasClientWidth() - bounds; const isTop = y <= bounds; const isBottom = y >= this._canvasClientHeight() - bounds; let newWidth:number | null = null; let newHeight: number | null = null; if (isLeft || isRight || isTop || isBottom) { // Auto move init this._startAutoPan(); if (this._checkUpdateSpeedTooFast()) { return false; } const scrollSpeedMultiplier = isNaN(this._consts.scrollByDragSpeed) ? 1 : this._consts.scrollByDragSpeed; if (isLeft) { // Get normalized speed. speedX = -TimelineUtils.getDistance(x, bounds) * scrollSpeedMultiplier; } else if (isRight) { // Get normalized speed: speedX = TimelineUtils.getDistance(x, this._canvasClientWidth() - bounds) * scrollSpeedMultiplier; newWidth = this.scrollLeft + this._canvasClientWidth() + speedX; } if (isTop) { // Get normalized speed. speedY = (-TimelineUtils.getDistance(x, bounds) * scrollSpeedMultiplier) / 4; } else if (isBottom) { // Get normalized speed: speedY = (TimelineUtils.getDistance(x, this._canvasClientHeight() - bounds) * scrollSpeedMultiplier) / 4; newHeight = this._scrollContainer.scrollTop + this._canvasClientHeight(); } } else { this._stopAutoPan(); } if (newWidth || newHeight) { this._rescaleInternal(newWidth, newHeight, TimelineScrollSource.ScrollBySelection); } if (Math.abs(speedX) > 0) { this.scrollLeft = this._scrollContainer.scrollLeft + speedX; isChanged = true; } if (Math.abs(speedY) > 0) { this.scrollTop = this._scrollContainer.scrollTop + speedY; isChanged = true; } return isChanged; } /** * Convert screen pixel to value. */ public pxToVal(px: number): number { if (!this._options) { return px; } let min = this._options.min || 0; if (!TimelineUtils.isNumber(min)) { min = 0; } const stepPx = this._options.stepPx || 0; if (stepPx === 0) { return px; } min *= this._currentZoom || 1; const steps = (this._options.stepVal || 0) * this._currentZoom || 1; const val = min + (px / stepPx) * steps; return val; } /** * Convert value to local screen component coordinates. */ _toScreenPx = (val: number): number => { return this.valToPx(val) - this.scrollLeft + this._leftMargin(); }; /** * Convert screen local coordinates to a global value info. */ _fromScreen = (px: number): number => { return this.pxToVal(this.scrollLeft + px - this._leftMargin()); }; /** * 将面积值转换为全局屏幕像素坐标。 */ public valToPx = (val: number): number => { if (!this._options || !this._options.stepPx) { return val; } let min = this._options.min || 0; if (!TimelineUtils.isNumber(min)) { min = 0; } min *= this._currentZoom || 1; const steps = (this._options.stepVal || 0) * this._currentZoom || 1; return (-min + val) * (this._options.stepPx / steps); }; /** * 将值捕捉到最近的网格点。 */ public snapVal(val: number): number { // Snap a value if configured. if (this._options && this._options.snapEnabled && this._options.snapStep) { const stops = this._options.snapStep; const step = val / stops; const stepsFit = Math.round(step); const minSteps = Math.abs(this._options.min || 0) / this._options.snapStep; const minOffset = TimelineUtils.sign(this._options.min || 1) * (minSteps - Math.floor(minSteps)) * this._options.snapStep; val = Math.round(minOffset) + Math.round(stepsFit * stops); } val = TimelineUtils.keepInBounds(val, this._options.min, this._options.max); return val; } /** * Convert mouse position to the timeline units considering all the scrolling and offsets. */ _mousePosToVal = (x: number, snapEnabled = false): number => { const mousePos = Math.min(x, this._canvasClientWidth()); let convertedVal = this._fromScreen(mousePos); convertedVal = Math.round(convertedVal); if (snapEnabled) { convertedVal = this.snapVal(convertedVal); } return convertedVal; }; /** * Format line gauge text. * Default formatting is HMS * @param ms milliseconds to convert. * @param isSeconds whether seconds are passed. */ _formatUnitsText = (ms: number): string => { const sign = TimelineUtils.sign(ms) < 0 ? '-' : ''; ms = Math.abs(ms); // 1- Convert to seconds: let seconds = ms / 1000; const year = Math.floor(seconds / (365 * 86400)); seconds = seconds % (365 * 86400); const days = Math.floor(seconds / 86400); seconds = seconds % 86400; // 2- Extract hours: const hours = Math.floor(seconds / 3600); // 3,600 seconds in 1 hour seconds = seconds % 3600; // seconds remaining after extracting hours // 3- Extract minutes: const minutes = Math.floor(seconds / 60); // 60 seconds in 1 minute // 4- Keep only seconds not extracted to minutes: seconds = seconds % 60; let str = ''; if (year) { str += year + ':'; } if (days) { str += days + ':'; } if (hours) { str += hours + ':'; } if (minutes) { str += hours ? TimelineUtils.timePadZero(minutes) : minutes + ':'; } if (!isNaN(seconds)) { str += minutes ? TimelineUtils.timePadZero(seconds) : seconds; } return sign + str; }; /** * Left padding of the timeline. */ _leftMargin = (): number => { return this._options?.leftMargin || 0; }; /** * Private. * Render line gauge ticks. */ _renderTicks = (): void => { if (!this._ctx || !this._ctx.canvas || this._ctx.canvas.clientWidth <= 0 || this._ctx.canvas.clientHeight <= 0 || !this._options || !this._options.stepPx) { return; } const screenWidth = this._canvasClientWidth() - this._leftMargin(); let from = this.pxToVal(this.scrollLeft); let to = this.pxToVal(this.scrollLeft + screenWidth); if (isNaN(from) || isNaN(to) || from === to) { return; } if (to < from) { const wasToVal = to; to = from; from = wasToVal; } const valDistance = TimelineUtils.getDistance(from, to); if (valDistance <= 0) { return; } // Find the nearest 'beautiful' step for a gauge. // 'beautiful' step. Ex: should be dividable by 1/2/5/10! const step = TimelineUtils.findGoodStep(valDistance / (screenWidth / this._options.stepPx), 0, this._options?.denominators); // Find beautiful start point: const fromVal = Math.floor(from / step) * step; // Find a beautiful end point: const toVal = Math.ceil(to / step) * step + step; if (!TimelineUtils.isNumber(step) || step <= 0 || Math.abs(toVal - fromVal) === 0) { return; } let smallStep = 0; if (this._options.stepSmallPx) { smallStep = TimelineUtils.findGoodStep(valDistance / (screenWidth / this._options.stepSmallPx), 0, this._options?.denominators); } let lastTextStart = 0; this._ctx.save(); const headerHeight = TimelineStyleUtils.headerHeight(this._options); const tickHeight = headerHeight / 2; const smallTickHeight = headerHeight / 1.3; for (let i = fromVal; i <= toVal; i += step) { // local const sharpPos = this._getSharp(this._toScreenPx(i)); this._ctx.save(); this._ctx.beginPath(); this._ctx.setLineDash([4]); this._ctx.lineWidth = 1; if (this._options.tickColor) { this._ctx.strokeStyle = this._options.tickColor; } TimelineUtils.drawLine(this._ctx, sharpPos, tickHeight, sharpPos, headerHeight); this._ctx.stroke(); if (this._options.labelsColor) { this._ctx.fillStyle = this._options.labelsColor; } if (this._options.font) { this._ctx.font = this._options.font; } const text = this._formatUnitsText(i); const textSize = this._ctx.measureText(text); const textX = sharpPos - textSize.width / 2; // skip text render if there is no space for it. if (isNaN(lastTextStart) || lastTextStart <= textX) { lastTextStart = textX + textSize.width; this._ctx.fillText(text, textX, remToPxNumber(1.1)); } this._ctx.restore(); if (!TimelineUtils.isNumber(smallStep) || smallStep <= 0) { continue; } // Draw small steps for (let x = i + smallStep; x < i + step; x += smallStep) { // local const nextSharpPos = this._getSharp(this._toScreenPx(x)); this._ctx.beginPath(); this._ctx.lineWidth = this._pixelRatio; if (this._options.tickColor) { this._ctx.strokeStyle = this._options.tickColor; } TimelineUtils.drawLine(this._ctx, nextSharpPos, smallTickHeight, nextSharpPos, headerHeight); this._ctx.stroke(); } } this._ctx.restore(); }; /** * Private. * Calculate virtual view model. * Determine screen positions for the model elements given. */ _generateViewModel = (): TimelineViewModel => { const toReturn = { size: { x: 0, y: 0, width: 0, height: 0, } as DOMRect, min: null, max: null, rowsViewModels: [], keyframesViewModels: [], } as TimelineViewModel; if (!this._model) { return toReturn; } const rows = this._model.rows; if (!rows || !Array.isArray(rows) || rows.length <= 0) { return toReturn; } let rowAbsoluteHeight = TimelineStyleUtils.headerHeight(this._options); rows.forEach((row, index) => { if (!row || row.hidden) { return; } // draw with scroll virtualization: const rowHeight = TimelineStyleUtils.getRowHeight(row.style || null, this._options); const marginBottom = TimelineStyleUtils.getRowMarginBottom(row.style || null, this._options); const currentRowY = rowAbsoluteHeight - (this._scrollContainer ? this._scrollContainer.scrollTop : 0); rowAbsoluteHeight += rowHeight + marginBottom; if (index == 0) { toReturn.size.y = currentRowY; } toReturn.size.height = Math.max(rowAbsoluteHeight + rowHeight, toReturn.size.height); const rowSize = { x: 0, y: currentRowY, width: this._canvasClientWidth(), height: rowHeight } as DOMRect; const rowViewModel = { size: rowSize, marginBottom: marginBottom, model: row, index: index, min: null, max: null, groupsViewModels: [], keyframesViewModels: [], } as TimelineRowViewModel; toReturn.rowsViewModels.push(rowViewModel); if (!row.keyframes || !row.keyframes.forEach || row.keyframes.length <= 0) { return; } // Get min and max ms to draw keyframe rows: if (row && row.keyframes) { row.keyframes.forEach((keyframe) => { if (!keyframe || !TimelineUtils.isNumber(keyframe.val)) { console.log('Unexpected null keyframe or having invalid value'); return; } if (keyframe.hidden) { return; } let groupViewModel: TimelineGroupViewModel | null = rowViewModel.groupsViewModels?.find((p) => keyframe.group === p.groupModel) || null; if (!groupViewModel) { groupViewModel = { min: keyframe.val, max: keyframe.val, size: null, groupModel: keyframe.group, keyframesViewModels: [], } as TimelineGroupViewModel; // TimelineStyleUtils.groupFillColor(rowViewModel.model.style || null, this._options); rowViewModel.groupsViewModels.push(groupViewModel); } const keyframeShape = TimelineStyleUtils.keyframeShape(keyframe, keyframe.group, row.style || null, this._options); const keyframeSize = this._getKeyframePosition(keyframe, groupViewModel, rowViewModel, keyframeShape); const keyframeViewModel = { model: keyframe, rowViewModel: rowViewModel, groupViewModel: groupViewModel, size: keyframeSize, shape: keyframeShape, } as TimelineKeyframeViewModel; const min = groupViewModel.min === null ? keyframe.val : Math.min(keyframe.val, groupViewModel.min); const max = groupViewModel.max === null ? keyframe.val : Math.max(keyframe.val, groupViewModel.max); if (TimelineUtils.isNumber(min)) { groupViewModel.min = min; } if (TimelineUtils.isNumber(max)) { groupViewModel.max = max; } // All keyframes in the row rowViewModel.keyframesViewModels.push(keyframeViewModel); // All keyframes in the group groupViewModel.keyframesViewModels.push(keyframeViewModel); // All keyframes in the component toReturn.keyframesViewModels.push(keyframeViewModel); }); } rowViewModel.groupsViewModels.forEach((groupViewModel) => { // Extend row min max bounds by a group bounds. It's used to notify needed visible bounds for the row. TimelineUtils.setMinMax(rowViewModel, groupViewModel, true); // get group screen coords const groupRect = this._getKeyframesGroupSize(groupViewModel, rowViewModel); groupViewModel.size = groupRect; }); // Extend screen bounds by a current calculation: TimelineUtils.setMinMax(toReturn, rowViewModel, true); }); if (TimelineUtils.isNumber(toReturn.max) && (toReturn.max || toReturn.max === 0)) { toReturn.size.width = this.valToPx(toReturn.max); } return toReturn; }; /** * Render timeline rows. */ _renderRows = (): void => { if (!this._ctx) { return; } const viewModel = this._generateViewModel(); if (!viewModel?.rowsViewModels) { return; } try { this._ctx.save(); viewModel.rowsViewModels.forEach((rowViewModel) => { if (!rowViewModel || !this._ctx) { return; } this._ctx.fillStyle = TimelineStyleUtils.getRowFillColor(rowViewModel.model.style || null, this._options); //this._ctx.fillRect(data.areaRect.x, data.areaRect.y, data.areaRect.w, data.areaRect.h); // Note: bounds used instead of the clip while clip is slow! const bounds = this._cutBounds(rowViewModel.size); if (bounds?.rect) { const rect = bounds?.rect; this._ctx.fillRect(rect.x, rect.y, rect.width, rect.height); } this._renderGroupBounds(rowViewModel); }); } finally { this._ctx.restore(); } }; /** * Render group for the row. */ _renderGroupBounds = (rowViewModel: TimelineRowViewModel): void => { if (!rowViewModel || !this._ctx) { return; } rowViewModel?.groupsViewModels?.forEach((groupsViewModels) => { if (!this._ctx) { return; } if ((groupsViewModels?.keyframesViewModels?.length || 0) <= 1) { return; } const groupFillColor = TimelineStyleUtils.groupFillColor(this._options, groupsViewModels.groupModel, rowViewModel?.model?.style); const strokeColor = TimelineStyleUtils.groupStrokeColor(this._options, groupsViewModels.groupModel, rowViewModel?.model?.style); let groupStrokeThickness = TimelineStyleUtils.groupStrokeThickness(this._options, groupsViewModels.groupModel, rowViewModel?.model?.style); const groupsRadii = TimelineStyleUtils.groupsRadii(this._options, groupsViewModels.groupModel, rowViewModel?.model?.style); if (!groupsViewModels.size) { console.log('Size of the group cannot be calculated'); return; } try { this._ctx.save(); // 获得画布的界限 const rectBounds = this._cutBounds(groupsViewModels.size); if (rectBounds?.rect) { const rect = rectBounds.rect; if (!strokeColor) { groupStrokeThickness = 0; } // Manipulate it again this._ctx.strokeStyle = groupStrokeThickness > 0 ? strokeColor : ''; this._ctx.fillStyle = groupFillColor; this._ctx.lineWidth = groupStrokeThickness; // Different radii for each corner, top-left clockwise to bottom-left this._ctx.beginPath(); // @ts-ignore this._ctx.roundRect(rect.x + groupStrokeThickness, rect.y + groupStrokeThickness, rect.width - groupStrokeThickness, rect.height - groupStrokeThickness, groupsRadii); this._ctx.fill(); if (groupStrokeThickness > 0) { this._ctx.stroke(); } // 20240813 组内容添加文本 const groupText = TimelineStyleUtils.groupText(this._options, groupsViewModels.groupModel, rowViewModel?.model?.style); if (groupText && groupText.label) { this._ctx.font = groupText.font || '10px sans-serif'; this._ctx.textBaseline = groupText.textBaseline || 'middle'; this._ctx.textAlign = groupText.textAlign || 'center'; this._ctx.direction = groupText.direction || 'inherit'; this._ctx.fillStyle = groupText.fillColor || "white"; // 预测量文本宽度 //const text = this._ctx.measureText(groupText.label); if (groupText.isStroke) { this._ctx.strokeText(groupText.label, rect.x + rect.width / 2, rect.y + rect.height / 2, rect.width - groupStrokeThickness); } else { this._ctx.fillText(groupText.label, rect.x + rect.width / 2, rect.y + rect.height / 2, rect.width - groupStrokeThickness); } } } } finally { this._ctx.restore(); } }); }; /** * Method is used for the canvas drawing optimization. * Bounds are cut to draw only visible parts for the active canvas. */ _cutBounds = (rect: DOMRect): TimelineCutBoundsRectResults | null => { if (!rect) { return null; } // default bounds: minX, maxX, minY, maxY const testOffset = 0; const minX = 0 + testOffset; const maxX = this._canvasClientWidth() - testOffset; const minY = TimelineStyleUtils.headerHeight(this._options) + testOffset; const maxY = this._canvasClientHeight() - testOffset; return this._cutBoundsWhenOverlap(rect, minX, maxX, minY, maxY); }; _cutBoundsWhenOverlap = (rect: DOMRect, minX: number, maxX: number, minY: number, maxY: number): TimelineCutBoundsRectResults | null => { if (!rect) { return null; } if ( // At the moment it's a check of top and left intersection. TimelineUtils.isRectIntersects(rect, { x: minX, y: minY, width: TimelineUtils.getDistance(minX, maxX), height: TimelineUtils.getDistance(minY, maxY), } as DOMRect) ) { const y = Math.max(rect.y, minY); const x = Math.max(rect.x, minX); const offsetW = rect.x - x; const offsetH = rect.y - y; return { rect: { height: rect.height + offsetH, width: rect.width + offsetW, x: x, y: y }, overlapY: Math.abs(offsetH) > 0, overlapX: Math.abs(offsetW) > 0, } as TimelineCutBoundsRectResults; } return null; }; /** * Calculate keyframe group screen rect size that is used during the rendering. * @param row * @param rowY row screen coords y position */ _getKeyframesGroupSize = (groupViewModel: TimelineGroupViewModel, rowViewModel: TimelineRowViewModel): DOMRect => { const rowY = rowViewModel.size.y; const rowHeight = rowViewModel.size.height; const groupModel = groupViewModel.groupModel || null; let groupHeight = TimelineStyleUtils.groupHeight(this._options, groupModel, rowViewModel?.model?.style); let marginTop = TimelineStyleUtils.groupMarginTop(this._options, groupModel, rowViewModel?.model?.style); const isAutoHeight = groupHeight === 'auto'; if (!groupHeight || isAutoHeight) { groupHeight = Math.floor(rowHeight); } groupHeight = typeof groupHeight === 'string' ? parseInt(groupHeight) : groupHeight; if (groupHeight > rowHeight) { groupHeight = rowHeight; } const isAutoMargin = marginTop === 'auto'; if (typeof marginTop === 'string') { if (isAutoMargin) { marginTop = (rowHeight - groupHeight) / 2; } else { marginTop = parseInt(marginTop) || 0; } } if (!isAutoMargin) { if (isAutoHeight) { groupHeight -= marginTop * 2; } } // draw keyframes rows. const xMin = this._toScreenPx(groupViewModel.min); // local const xMax = this._toScreenPx(groupViewModel.max); // local return { x: xMin, y: rowY + marginTop, height: groupHeight, width: TimelineUtils.getDistance(xMin, xMax), } as DOMRect; }; _getKeyframePosition = (keyframe: TimelineKeyframe, groupViewModel: TimelineGroupViewModel, rowViewModel: TimelineRowViewModel, keyframeShape: TimelineKeyframeShape): DOMRect | null => { if (!keyframe) { console.log('keyframe should be defined.'); return null; } const val = keyframe.val; if (!TimelineUtils.isNumber(val)) { return null; } const rowSize = rowViewModel.size; // get center of the lane: let y = rowSize.y + rowSize.height / 2; const groupModel = groupViewModel?.groupModel || null; let height: number | string = TimelineStyleUtils.keyframeHeight(keyframe, groupModel, rowViewModel?.model?.style, this._options); let width: number | string = TimelineStyleUtils.keyframeWidth(keyframe, groupModel, rowViewModel?.model?.style, this._options); if (height === 'auto') { height = rowSize.height / 3; } if (width === 'auto') { width = height; } height = Number(height); if (!Number.isNaN(height) && height && (height as number) > 0) { const x = Math.floor(this._toScreenPx(val)); y = Math.floor(y); const rect = { x: x, // local y: y, height: height, width: width, } as DOMRect; // Rect we are drawing in the center if (keyframeShape === TimelineKeyframeShape.Rect) { rect.y = rect.y - rect.height / 2; rect.x = rect.x - rect.width / 2; } return rect; } return null; }; _renderKeyframes = (): void => { this._forEachKeyframe((keyframeViewModel) => { if (!this._ctx) { return; } const size = keyframeViewModel.size; if (size) { const x = this._getSharp(size.x); const y = size.y; const bounds = this._cutBounds({ x: x - size.width / 2, y: y - size.height / 2, width: size.width, height: size.height, } as DOMRect); if (!bounds) { return; } this._ctx.save(); try { // Performance FIX: use clip only when we are in the collision! Clip is slow! // Other keyframes should be hidden by bounds check. // Note: clip with just render part of the keyframe if (bounds && bounds.overlapY) { this._ctx.beginPath(); this._ctx.rect(0, TimelineStyleUtils.headerHeight(this._options), this._canvasClientWidth(), this._canvasClientWidth()); this._ctx.clip(); } this._renderKeyframe(this._ctx, keyframeViewModel); } finally { this._ctx.restore(); } } }); }; _renderKeyframe = (ctx: CanvasRenderingContext2D, keyframeViewModel: TimelineKeyframeViewModel): void => { const shape = keyframeViewModel.shape; if (shape === TimelineKeyframeShape.None) { return; } const size = keyframeViewModel.size; const x = this._getSharp(size.x); const y = size.y; const keyframe = keyframeViewModel.model; const row = keyframeViewModel.rowViewModel.model; const rowStyle = row.style || null; const groupModel = keyframeViewModel?.groupViewModel?.groupModel || null; const keyframeColor = keyframe.selected ? TimelineStyleUtils.keyframeSelectedFillColor(keyframe, groupModel, rowStyle, this._options) : TimelineStyleUtils.keyframeFillColor(keyframe, groupModel, rowStyle, this._options); const border = TimelineStyleUtils.keyframeStrokeThickness(keyframe, groupModel, rowStyle, this._options); let strokeColor = ''; if (border > 0) { if (keyframe.selected) { strokeColor = TimelineStyleUtils.keyframeSelectedStrokeColor(keyframe, groupModel, rowStyle, this._options); } else { strokeColor = TimelineStyleUtils.keyframeStrokeColor(keyframe, groupModel, rowStyle, this._options); } } if (shape == TimelineKeyframeShape.Rhomb) { ctx.beginPath(); ctx.translate(x, y); ctx.rotate((45 * Math.PI) / 180); if (border > 0 && strokeColor) { ctx.fillStyle = strokeColor; ctx.rect(-size.width / 2, -size.height / 2, size.width, size.height); ctx.fill(); } ctx.fillStyle = keyframeColor; // draw main keyframe data with offset. ctx.translate(border, border); ctx.rect(-size.width / 2, -size.height / 2, size.width - border * 2, size.height - border * 2); ctx.fill(); } else if (shape == TimelineKeyframeShape.Circle) { ctx.beginPath(); if (border > 0 && strokeColor) { ctx.fillStyle = strokeColor; ctx.arc(x, y, size.height, 0, 2 * Math.PI); } ctx.fillStyle = keyframeColor; ctx.arc(x, y, size.height - border, 0, 2 * Math.PI); ctx.fill(); } else if (shape == TimelineKeyframeShape.Rect) { ctx.beginPath(); if (border > 0 && strokeColor) { ctx.fillStyle = strokeColor; ctx.rect(x, y, size.width, size.height); ctx.fill(); } ctx.fillStyle = keyframeColor; ctx.rect(x + border, y + border, size.width - border, size.height - border); ctx.fill(); } }; _renderSelectionRect = (): void => { if (this._drag || !this._ctx || !this._canvas) { return; } this._ctx.save(); const thickness = 1; if (this._selectionRect && this._selectionRectEnabled) { this._ctx.setLineDash([4]); this._ctx.lineWidth = this._pixelRatio; const selectionColor = this._options.selectionColor; if (selectionColor) { this._ctx.strokeStyle = selectionColor; } this._ctx.strokeRect( this._getSharp(this._selectionRect.x, thickness), this._getSharp(this._selectionRect.y, thickness), Math.floor(this._selectionRect.width), Math.floor(this._selectionRect.height), ); } this._ctx.restore(); }; _renderBackground = (): void => { if (!this._ctx || !this._canvas) { return; } if (this._options.fillColor) { this._ctx.save(); this._ctx.beginPath(); this._ctx.rect(0, 0, this._canvasClientWidth(), this._canvasClientHeight()); this._ctx.fillStyle = this._options.fillColor; this._ctx.fill(); this._ctx.restore(); } else { // Clear if bg not set. this._ctx.clearRect(0, 0, this._canvas.width, this._canvas.height); } }; _renderTimeline = (): void => { if (!this._ctx || !this._options || !this._options.timelineStyle) { return; } const style = this._options.timelineStyle; this._ctx.save(); try { const thickness = style.width || 1; this._ctx.lineWidth = thickness * this._pixelRatio; const timeLinePos = this._getSharp(this._toScreenPx(this._val), thickness); if (style.strokeColor) { this._ctx.strokeStyle = style.strokeColor; } if (style.fillColor) { this._ctx.fillStyle = style.fillColor; } const y = style.marginTop || 0; const yBottom = style.marginBottom || 0; this._ctx.beginPath(); const canvasHeight = this._canvasClientHeight() - yBottom; TimelineUtils.drawLine(this._ctx, timeLinePos, y, timeLinePos, canvasHeight); this._ctx.stroke(); this._renderTimelineCap(timeLinePos, y); } finally { this._ctx.restore(); } }; /** * Render timeline cap top. */ _renderTimelineCap = (timeLinePos: number, y: number): void => { const capStyle = this._options?.timelineStyle?.capStyle; if (!this._ctx || !capStyle) { return; } if (capStyle.capType === TimelineCapShape.None) { return; } this._ctx.save(); try { const capSize = capStyle.width || 0; const capHeight = capStyle.height || 0; if (capSize && capHeight) { this._ctx.strokeStyle = capStyle.strokeColor || ''; this._ctx.fillStyle = capStyle.fillColor || 'white'; if (capStyle.capType === TimelineCapShape.Triangle) { this._ctx.beginPath(); this._ctx.moveTo(timeLinePos - capSize / 2, y); this._ctx.lineTo(timeLinePos + capSize / 2, y); this._ctx.lineTo(timeLinePos, capHeight); this._ctx.closePath(); this._ctx.stroke(); } else if (capStyle.capType === TimelineCapShape.Rect) { this._ctx.fillRect(timeLinePos - capSize / 2, y, capSize, capHeight); this._ctx.fill(); } } } finally { this._ctx.restore(); } }; _renderHeaderBackground = (): void => { if (!this._ctx || !this._options) { return; } if (TimelineStyleUtils.headerHeight(this._options)) { this._ctx.save(); // draw ticks background this._ctx.lineWidth = this._pixelRatio; if (this._options.headerFillColor) { // draw ticks background this._ctx.lineWidth = this._pixelRatio; // draw header background this._ctx.fillStyle = this._options.headerFillColor; this._ctx.fillRect(0, 0, this._canvasClientWidth(), TimelineStyleUtils.headerHeight(this._options)); } else { this._ctx.clearRect(0, 0, this._canvasClientWidth(), TimelineStyleUtils.headerHeight(this._options)); } this._ctx.restore(); } }; redraw = (): void => { if (window?.requestAnimationFrame) { window.requestAnimationFrame(this._redrawInternal); } else { this._redrawInternal(); } }; /** * perform scroll to max right. */ public scrollToRightBounds = (): void => { if (this._scrollContainer && this._scrollContainer.scrollLeft !== this._scrollContainer.scrollWidth) { this.scrollLeft = this._scrollContainer.scrollWidth; } }; /** * Redraw parts of the component in the specific order. */ _redrawInternal = (): void => { if (!this._ctx || !this._scrollContainer) { console.log('Context is not initialized'); return; } // Rescale when animation is played out of the bounds. if (this.valToPx(this._val) > this._scrollContainer.scrollWidth) { this.rescale(); if (!this._isPanStarted && this._drag && this._drag.type !== TimelineElementType.Timeline) { this.scrollToRightBounds(); } } this._renderBackground(); this._renderRows(); // Render after rows this._renderHeaderBackground(); this._renderTicks(); this._renderKeyframes(); this._renderSelectionRect(); this._renderTimeline(); }; /** * Find sharp pixel position */ _getSharp = (pos: number, thickness = 1): number => { pos = Math.round(pos); if (thickness % 2 == 0) { return pos; } return pos + this._pixelRatio / 2; }; /** * Get current time: */ public getTime = (): number => { return this._val; }; /** * Set current time internal * @param val value. * @param source event source. */ _setTimeInternal = (val: number, source: TimelineEventSource = TimelineEventSource.Programmatically): boolean => { if (!this._options) { return false; } val = Math.round(val); val = TimelineUtils.keepInBounds(val, this._options.min); if (this._val != val) { const prevVal = this._val; const timelineEvent = new TimelineTimeChangedEvent(); timelineEvent.val = val; timelineEvent.prevVal = prevVal; timelineEvent.source = source; this._val = val; this.emit(TimelineEvents.TimeChanged, timelineEvent); if (timelineEvent.isPrevented()) { this._val = prevVal; return false; } return true; } return false; }; public setTime = (val: number): boolean => { // don't allow to change time during drag: if (this._drag && this._drag.type === TimelineElementType.Timeline) { return false; } const isChanged = this._setTimeInternal(val, TimelineEventSource.SetTimeMethod); if (isChanged) { this.rescale(); this.redraw(); } return isChanged; }; public getOptions = (): TimelineOptions => { return this._options; }; /** * Current scroll left position. */ public get scrollLeft(): number { return this._scrollContainer?.scrollLeft || 0; } public set scrollLeft(value: number) { if (this._scrollContainer && this._scrollContainer.scrollLeft !== value) { this._scrollProgrammatically = true; this._scrollContainer.scrollLeft = value; } } public get scrollTop(): number { return this._scrollContainer?.scrollTop || 0; } public set scrollTop(value: number) { if (this._scrollContainer && this._scrollContainer.scrollTop !== value) { this._scrollProgrammatically = true; this._scrollContainer.scrollTop = value; } } /** * Set options and render the component. * Note: Options will be merged\appended with the defaults and component will be invalidated/rendered again. */ public setOptions = (toSet: TimelineOptions): TimelineOptions => { this._options = this._setOptions(toSet); this.rescale(); this.redraw(); // Merged options: return this._options; }; /** * Private. Apply html container styles from options if any is set. */ _applyContainersStyles = (): void => { if (this._scrollContainer && this._options) { const classList = this._scrollContainer.classList; if (this._options.scrollContainerClass && !classList.contains(this._options.scrollContainerClass)) { classList.add(this._options.scrollContainerClass); } if (this._options.fillColor) { this._scrollContainer.style.background = this._options.fillColor; } } }; _setOptions = (toSet: TimelineOptions): TimelineOptions => { if (!toSet) { return this._options || {}; } this._options = TimelineUtils.mergeOptions(this._options, toSet); // Normalize and validate spans per value. this._options.snapStep = TimelineUtils.keepInBounds(this._options.snapStep || 0, 0, this._options.stepVal || 0); this._currentZoom = this._setZoom(this._options.zoom || 0, this._options.zoomMin, this._options.zoomMax); this._options.min = TimelineUtils.isNumber(this._options.min) ? this._options.min : 0; this._options.max = TimelineUtils.isNumber(this._options.max) ? this._options.max : Number.MAX_VALUE; this._applyContainersStyles(); // Prevent current active dragging of the timeline, while it's set that it's not allowed anymore. if (toSet.timelineDraggable === false) { if (this._drag && this._drag.type === TimelineElementType.Timeline) { this._cleanUpSelection(); } } return this._options; }; /** * Get current model. */ public getModel = (): TimelineModel | null => { return this._model; }; /** * Set model and redraw application. * @param data */ public setModel = (data: TimelineModel): void => { this._model = data; this.rescale(); this.redraw(); }; _getMousePos = (canvas: HTMLCanvasElement, e: TouchEvent | MouseEvent | any): TimelineMouseData => { let radius = 1; let clientX = 0; let clientY = 0; if (e.changedTouches && e.changedTouches.length > 0) { // TODO: implement better touch support const touch = e.changedTouches[0]; clientX = touch.clientX; clientY = touch.clientY; radius = Math.max(radius, touch.radiusX, touch.radiusY); } else { clientX = e.clientX; clientY = e.clientY; } const rect = canvas.getBoundingClientRect(), // abs. size of element scaleX = canvas.width / this._pixelRatio / rect.width, // relationship bitmap vs. element for X scaleY = canvas.height / this._pixelRatio / rect.height; // relationship bitmap vs. element for Y const x = (clientX - rect.left) * scaleX; const y = (clientY - rect.top) * scaleY; // scale mouse coordinates after they have been adjusted to be relative to element return { pos: { x, y } as DOMPoint, radius, args: e, } as TimelineMouseData; }; /** * Apply container div size to the container on changes detected. */ _updateCanvasScale = (): boolean => { if (!this._scrollContainer || !this._container || !this._ctx) { console.log('Component should be initialized first.'); return false; } let changed = false; const width = this._scrollContainer.clientWidth * this._pixelRatio; const height = this._scrollContainer.clientHeight * this._pixelRatio; if (Math.floor(width) != Math.floor(this._ctx.canvas.width)) { this._ctx.canvas.width = width; changed = true; } if (Math.floor(height) != Math.floor(this._ctx.canvas.height)) { this._ctx.canvas.height = height; changed = true; } if (changed) { this._ctx.setTransform(this._pixelRatio, 0, 0, this._pixelRatio, 0, 0); } return changed; }; /** * Rescale and update size of the container. */ public rescale = (): boolean => { return this._rescaleInternal(); }; /** * This method is used to draw additional space when after there are no keyframes. * When scrolled we should allow to indefinitely scroll right, so space should be extended to drag keyframes outside of the current size bounds. */ _rescaleInternal = (newWidth: number | null = null, newHeight: number | null = null, scrollMode = TimelineScrollSource.DefaultMode): boolean => { let changed = this._updateCanvasScale(); if (!this._scrollContent) { return changed; } const data = this._generateViewModel(); if (data && data.size) { const additionalOffset = this._options.stepPx || 0; newWidth = newWidth || 0; // content should be not less than current timeline position + width of the timeline const timelineGlobalPos = this.valToPx(this._val) + this._leftMargin(); let timelinePos = 0; const rightPosition = this.scrollLeft + this.getClientWidth(); if (timelineGlobalPos >= rightPosition) { if (scrollMode == TimelineScrollSource.ScrollBySelection) { // When item (timeline, selection rectangle) is just dragged to the right corner. timelinePos = Math.floor(timelineGlobalPos + this._leftMargin()); } else { // When timeline is playing and we need to add next screen (when timeline goes out of the bounds.) timelinePos = Math.floor(timelineGlobalPos + this.getClientWidth() + this._leftMargin()); } } const keyframeW = data.size.width + this._leftMargin() + additionalOffset; newWidth = Math.max( // New expected component width. newWidth, // keyframes max width keyframeW, // not less than current scroll position rightPosition, timelinePos, ); const minWidthPx = Math.floor(newWidth) + 'px'; if (minWidthPx != this._scrollContent.style.minWidth) { this._scrollContent.style.minWidth = minWidthPx; changed = true; } newHeight = Math.max( // active size Math.floor(data.size.height + this._canvasClientHeight() * 0.2), (this._scrollContainer?.scrollTop || 0) + this._canvasClientHeight() - 1, Math.round(newHeight || 0), ); const h = Math.floor(newHeight) + 'px'; if (this._scrollContent.style.minHeight != h) { this._scrollContent.style.minHeight = h; return changed; } } return changed; }; /** * Filter elements that can be dragged. * Filtration is done based on the timeline styles and options. */ _filterDraggableElements = (elements: TimelineElement[]): TimelineElement[] => { // filter and sort: Timeline, individual keyframes, groups (distance). const filteredElements = elements.filter((element) => { if (!element) { return false; } if (element.type === TimelineElementType.Keyframe) { if (!TimelineStyleUtils.keyframeDraggable(element.keyframe || null, element.keyframe?.group || null, element?.row || null, this._options)) { return false; } } else if (element.type === TimelineElementType.Group) { if (!TimelineStyleUtils.groupDraggable(element.group || null, element.row || null, this._options)) { return false; } } else if (element.type === TimelineElementType.Timeline) { if (this._options?.timelineDraggable === false) { return false; } } else if (element.type === TimelineElementType.Row) { return false; } return true; }); return filteredElements; }; /** * Filter and sort draggable elements by the priority to get first draggable element closest to the passed value. */ _findDraggableElement = (elements: TimelineElement[], val: number | null = null): TimelineElement | null => { // filter and sort: Timeline, individual keyframes, groups (distance). const getPriority = (type: TimelineElementType): number => { if (type === TimelineElementType.Timeline) { return 1; } else if (type === TimelineElementType.Keyframe) { return 2; } else if (type === TimelineElementType.Group) { return 3; } return -1; }; const sortDraggable = (a: TimelineElement, b: TimelineElement): number => { let prioA = getPriority(a.type); let prioB = getPriority(b.type); if (prioA === prioB) { if (val === null) { return 0; } // Sort by distance prioA = TimelineUtils.getDistance(a.val, val); prioB = TimelineUtils.getDistance(b.val, val); if (prioA === prioB) { return 0; } return prioA < prioB ? 1 : -1; } return prioA < prioB ? 1 : -1; }; const sorted = this._filterDraggableElements(elements).sort(sortDraggable); if (sorted.length > 0) { return sorted[sorted.length - 1]; } return null; }; /** * get all clickable elements by the given local screen coordinate. */ public elementFromPoint = (pos: DOMPoint, clickRadius: number, onlyTypes?: TimelineElementType[] | null): TimelineElement[] => { clickRadius = Math.max(clickRadius, 1); const toReturn: TimelineElement[] = []; if (!pos) { return toReturn; } const headerHeight = TimelineStyleUtils.headerHeight(this._options); // Check whether we can drag timeline. const timeLinePos = this._toScreenPx(this._val); let width = 0; const timelineStyle = this._options?.timelineStyle; if (timelineStyle) { width = Math.max((timelineStyle.width || 1) * this._pixelRatio, (timelineStyle?.capStyle?.width || 0) * this._pixelRatio || 1) + clickRadius; } // Allow to select timeline only by half of a header to allow select by a selector top most keyframes row. if (pos.y <= headerHeight * 0.5 || (pos.x >= timeLinePos - width / 2 && pos.x <= timeLinePos + width / 2)) { toReturn.push({ val: this._val, type: TimelineElementType.Timeline, } as TimelineElement); } const snap = this._options.snapEnabled; if (pos.y >= headerHeight && this._options.keyframesDraggable) { this._forEachKeyframe( (keyframeViewModel, _, isNextRow): void => { const rowViewModel = keyframeViewModel.rowViewModel; // Check keyframes group overlap if (isNextRow) { if (rowViewModel.groupsViewModels) { rowViewModel.groupsViewModels.forEach((groupViewModel) => { if (!groupViewModel?.size) { return; } const keyframesGroupOverlapped = TimelineUtils.isOverlap(pos.x, pos.y, groupViewModel.size); if (keyframesGroupOverlapped) { const keyframesModels = groupViewModel?.keyframesViewModels.map((p) => p.model) || []; const groupElement = { // TODO: val: this._mousePosToVal(pos.x, snap), type: TimelineElementType.Group, group: groupViewModel.groupModel, row: rowViewModel.model, keyframes: keyframesModels, } as TimelineElement; const snapped = this.snapVal(groupViewModel.min); // get snapped mouse pos based on a min value. groupElement.val += groupViewModel.min - snapped; toReturn.push(groupElement); } }); } } const keyframePosRect = keyframeViewModel.size; if (keyframePosRect) { let isMouseOver = false; if (keyframeViewModel.shape === TimelineKeyframeShape.Rect) { const extendedMouseRect = TimelineUtils.shrinkSelf({ x: pos.x, y: pos.y, height: clickRadius, width: clickRadius } as DOMRect, clickRadius); isMouseOver = TimelineUtils.isRectIntersects(extendedMouseRect, keyframePosRect, true); } else { const dist = TimelineUtils.getDistance(keyframePosRect.x, keyframePosRect.y, pos.x, pos.y); isMouseOver = dist <= keyframePosRect.height + clickRadius; } if (isMouseOver) { toReturn.push({ keyframe: keyframeViewModel.model, keyframes: [keyframeViewModel.model], val: keyframeViewModel.model.val, row: keyframeViewModel.rowViewModel.model, type: TimelineElementType.Keyframe, } as TimelineElement); } } }, (rowViewModel) => { const rowOverlapped = TimelineUtils.isOverlap(pos.x, pos.y, rowViewModel.size); if (rowOverlapped) { const row = { val: this._mousePosToVal(pos.x, snap), keyframes: rowViewModel.model.keyframes, type: TimelineElementType.Row, row: rowViewModel.model, } as TimelineElement; toReturn.push(row); } }, ); } if (!onlyTypes || onlyTypes.length === 0) { return toReturn; } else { return toReturn.filter((p) => onlyTypes && onlyTypes.includes(p.type)); } }; /** * Subscribe user callback on time changed. */ public onTimeChanged = (callback: (eventArgs: TimelineTimeChangedEvent) => void): void => { this.on(TimelineEvents.TimeChanged, callback); }; /** * Subscribe user callback on drag started event. */ public onDragStarted = (callback: (eventArgs: TimelineDragEvent) => void): void => { this.on(TimelineEvents.DragStarted, callback); }; /** * Subscribe user callback on drag event. */ public onDrag = (callback: (eventArgs: TimelineDragEvent) => void): void => { this.on(TimelineEvents.Drag, callback); }; /** * Subscribe user callback on drag finished event. */ public onDragFinished = (callback: (eventArgs: TimelineDragEvent) => void): void => { this.on(TimelineEvents.DragFinished, callback); }; /** * Subscribe user callback on double click. */ public onDoubleClick = (callback: (eventArgs: TimelineClickEvent) => void): void => { this.on(TimelineEvents.DoubleClick, callback); }; /** * Subscribe user callback on keyframe changed event. */ public onKeyframeChanged = (callback: (eventArgs: TimelineKeyframeChangedEvent) => void): void => { this.on(TimelineEvents.KeyframeChanged, callback); }; /** * Subscribe user callback on drag finished event. */ public onMouseDown = (callback: (eventArgs: TimelineClickEvent) => void): void => { this.on(TimelineEvents.MouseDown, callback); }; /** * Subscribe user callback on selected. */ public onSelected = (callback: (eventArgs: TimelineSelectedEvent) => void): void => { this.on(TimelineEvents.Selected, callback); }; /** * Subscribe user callback on scroll event */ public onScroll = (callback: (eventArgs: TimelineScrollEvent) => void): void => { this.on(TimelineEvents.Scroll, callback); }; /** * Subscribe on scroll finished event. */ public onScrollFinished = (callback: (eventArgs: TimelineScrollEvent) => void): void => { this.on(TimelineEvents.ScrollFinished, callback); }; /** * Subscribe on canvas context menu event. */ public onContextMenu = (callback: (eventArgs: TimelineClickEvent) => void): void => { this.on(TimelineEvents.ContextMenu, callback); }; /** * Private. * Emit internally scroll eve */ _emitScrollEvent = (args: Event | null, scrollProgrammatically: boolean, eventType = TimelineEvents.Scroll): TimelineScrollEvent => { const scrollEvent = { args: args, scrollProgrammatically: scrollProgrammatically, scrollLeft: this.scrollLeft, scrollTop: this.scrollTop, scrollHeight: this._scrollContainer?.scrollHeight || 0, scrollWidth: this._scrollContainer?.scrollWidth || 0, } as TimelineScrollEvent; super.emit(eventType, scrollEvent); return scrollEvent; }; _emitKeyframeChanged = (element: TimelineElementDragState, source: TimelineEventSource = TimelineEventSource.Programmatically): TimelineKeyframeChangedEvent => { const args = new TimelineKeyframeChangedEvent(); args.val = element.val; args.prevVal = element.prevVal; args.target = element; args.source = source; this.emit(TimelineEvents.KeyframeChanged, args); return args; }; _emitDragStartedEvent = (dragState: TimelineDraggableData): TimelineDragEvent | null => { if (!dragState) { return null; } const args = this._getDragEventArgs(dragState, this._currentPos); this.emit(TimelineEvents.DragStarted, args); if (args.isPrevented()) { this._preventDrag(args, dragState, true); } return args; }; /** * Private emit timeline event that dragging element is finished. * @param forcePrevent - needed when during dragging components set to the state when they cannot be dragged anymore. (used only as recovery state). * @returns */ _emitDragFinishedEvent = (dragState: TimelineDraggableData, forcePrevent = false): TimelineDragEvent | null => { if (!dragState || !dragState.changed) { return null; } const args = this._getDragEventArgs(dragState, this._currentPos); if (forcePrevent) { args.preventDefault(); } this.emit(TimelineEvents.DragFinished, args); if (args.isPrevented()) { this._preventDrag(args, dragState, true); } return args; }; _preventDrag = (dragArgs: TimelineDragEvent, data: TimelineDraggableData, toStart = false): void => { if (dragArgs.elements) { dragArgs.elements.forEach((element) => { const toSet = toStart ? element.startedVal : element.prevVal; this._setKeyframePos(element, toSet); }); } data.val = data.prevVal; // Set prev active point dragArgs.point = dragArgs.prevPoint; }; _emitDragEvent = (dragState: TimelineDraggableData): TimelineDragEvent | null => { if (!dragState) { return null; } const args = this._getDragEventArgs(dragState, this._currentPos); this.emit(TimelineEvents.Drag, args); if (args.isPrevented()) { this._preventDrag(args, dragState, false); } return args; }; _emitKeyframesSelected = (state: TimelineSelectionResults): TimelineSelectedEvent => { const args = new TimelineSelectedEvent(); args.selected = state.selected; args.changed = state.changed; this.emit(TimelineEvents.Selected, args); return args; }; _getDragEventArgs = (dragState: TimelineDraggableData, point: TimelineMouseData | null): TimelineDragEvent => { const draggableArguments = new TimelineDragEvent(); draggableArguments.point = point; // Get cloned list draggableArguments.elements = [...(dragState.elements || [])]; draggableArguments.target = dragState?.target || null; return draggableArguments; }; } ================================================ FILE: packages/sdk/lib/core/libs/astral-timeline/timelineEventsEmitter.ts ================================================ /* eslint-disable @typescript-eslint/no-explicit-any */ interface TimelineEvent { topic: string; callback: (args: any) => void; } /** * Timeline events emitter. */ export class TimelineEventsEmitter { /** * Active events subscriptions. */ _subscriptions: TimelineEvent[] = []; /** * Subscribe event. * @param topic event name. * @param callback callback to be added. */ on(topic: string, callback: (args: T) => void): boolean { if (!callback) { return false; } this._subscriptions.push({ topic: topic, callback: callback, } as TimelineEvent); return true; } /** * Remove an event from the subscriptions list. */ off(topic: string, callback: (args: T) => void): boolean { const before = this._subscriptions.length; this._subscriptions = this._subscriptions.filter((event) => { return event && event.callback != callback && event.topic != topic; }); return before !== this._subscriptions.length; } /** * Unsubscribe all */ offAll(): void { // Remove all callbacks from array. this._subscriptions.length = 0; } /** * Emit event. * @param topic Event name. * @param args Event arguments. */ emit(topic: string, args: T): void { this._subscriptions.forEach((event) => { if (event?.topic === topic && event?.callback) { event.callback(args); } }); } } ================================================ FILE: packages/sdk/lib/core/libs/astral-timeline/utils/events/timelineBaseEvent.ts ================================================ /** * Timeline base preventable event. */ export class TimelineBaseEvent { private _prevented = false; /** * Prevent default click logic. */ preventDefault(): void { this._prevented = true; } isPrevented(): boolean { return this._prevented; } } ================================================ FILE: packages/sdk/lib/core/libs/astral-timeline/utils/events/timelineClickEvent.ts ================================================ import { TimelineElement } from '../timelineElement'; import { TimelinePoint } from '../timelinePoint'; import { TimelineBaseEvent } from './timelineBaseEvent'; export class TimelineClickEvent extends TimelineBaseEvent { args: MouseEvent | TouchEvent | null = null; /** * Clicked screen position. */ get pos(): DOMPoint | null { return this.point?.pos || null; } get val(): number { if (this.point) { return this.point.val; } return NaN; } /** * All elements located under current mouse activity. */ elements: TimelineElement[] = []; /** * Element that selected as target under the click. */ target: TimelineElement | null = null; /** * Timeline current active drag position. */ point: TimelinePoint | null = null; } ================================================ FILE: packages/sdk/lib/core/libs/astral-timeline/utils/events/timelineDragEvent.ts ================================================ import { TimelinePoint } from '../timelinePoint'; import { TimelineBaseEvent } from './timelineBaseEvent'; import { TimelineElementDragState } from '../timelineElementDragState'; export class TimelineDragEvent extends TimelineBaseEvent { args: MouseEvent | TouchEvent | null = null; get pos(): DOMPoint | null { return this.point?.pos || null; } /** * Elements to be dragged as a group. */ elements: TimelineElementDragState[] | null = null; /** * Target element */ target: TimelineElementDragState | null = null; /** * Timeline current active drag position. */ point: TimelinePoint | null = null; /** * Timeline previous drag position. */ prevPoint: TimelinePoint | null = null; } ================================================ FILE: packages/sdk/lib/core/libs/astral-timeline/utils/events/timelineKeyframeChangedEvent.ts ================================================ import { TimelineBaseEvent } from './timelineBaseEvent'; import { TimelineElement } from '../timelineElement'; import { TimelineEventSource } from '../../enums/timelineEventSource'; export class TimelineKeyframeChangedEvent extends TimelineBaseEvent { /** * Value to be used. */ val!: number; /** * Previous value. */ prevVal!: number; /** * Target element */ target!: TimelineElement; /** * Event source. */ source!: TimelineEventSource; } ================================================ FILE: packages/sdk/lib/core/libs/astral-timeline/utils/events/timelineScrollEvent.ts ================================================ export interface TimelineScrollEvent { args: MouseEvent; /** * Whether scroll was component or user initiated. */ scrollProgrammatically: boolean; scrollLeft: number; scrollTop: number; scrollHeight: number; scrollWidth: number; } ================================================ FILE: packages/sdk/lib/core/libs/astral-timeline/utils/events/timelineSelectedEvent.ts ================================================ import { TimelineSelectionEventSource } from '../../enums/timelineSelectionEventSource'; import { TimelineKeyframe } from '../../models/timelineKeyframe'; export class TimelineSelectedEvent { /** * Selected Keyframes list. */ selected: TimelineKeyframe[] = []; /** * Changed selection. */ changed: TimelineKeyframe[] = []; /** * Selection mode. */ mode: TimelineSelectionEventSource = TimelineSelectionEventSource.Keyframes; } ================================================ FILE: packages/sdk/lib/core/libs/astral-timeline/utils/events/timelineTimeChangedEvent.ts ================================================ import { TimelineBaseEvent } from './timelineBaseEvent'; import { TimelineEventSource } from '../../enums/timelineEventSource'; export class TimelineTimeChangedEvent extends TimelineBaseEvent { /** * New value to be set if not prevented. */ val = 0; /** * previous value, that actually set at the moment. */ prevVal = 0; /** * Source of the change. */ source: TimelineEventSource = TimelineEventSource.User; } ================================================ FILE: packages/sdk/lib/core/libs/astral-timeline/utils/timelineCutBoundsRectResults.ts ================================================ /** * Helper container. Cut bounds method results. */ export interface TimelineCutBoundsRectResults { rect: DOMRect; overlapY: boolean; overlapX: boolean; } ================================================ FILE: packages/sdk/lib/core/libs/astral-timeline/utils/timelineDraggableData.ts ================================================ import { TimelineElementType } from '../enums/timelineElementType'; import { TimelineElementDragState } from './timelineElementDragState'; /** * Information about current drag state. */ export class TimelineDraggableData { /** * Whether position was changed. */ changed = false; /** * Drag initial click target. */ target!: TimelineElementDragState; /** * Elements to be dragged. * Can be multiple elements, but drag will be started with target. */ elements!: TimelineElementDragState[]; /** * Dragging type. */ type: TimelineElementType = TimelineElementType.None; /** * Prev value. */ val!: number; /** * Prev value. */ prevVal!: number; } ================================================ FILE: packages/sdk/lib/core/libs/astral-timeline/utils/timelineElement.ts ================================================ import { TimelineKeyframe } from '../models/timelineKeyframe'; import { TimelineElementType } from '../enums/timelineElementType'; import { TimelineRow } from '../models/timelineRow'; import { TimelineGroup } from '../models/timelineGroup'; /** * Timeline clickable element. */ export interface TimelineElement { type: TimelineElementType; /** * Timeline value, */ val: number; /** * Related keyframe model. */ keyframe?: TimelineKeyframe; /** * Related row model. */ row?: TimelineRow; /** * Current group. */ group?: string | TimelineGroup; /** * List of the selected, grouped, row keyframes. */ keyframes?: TimelineKeyframe[]; } ================================================ FILE: packages/sdk/lib/core/libs/astral-timeline/utils/timelineElementDragState.ts ================================================ import { TimelineElement } from './timelineElement'; export interface TimelineElementDragState extends TimelineElement { /** * Value that preserved before dragging is started. */ startedVal: number; /** * Value before change. */ prevVal: number; } ================================================ FILE: packages/sdk/lib/core/libs/astral-timeline/utils/timelineMouseData.ts ================================================ import { TimelinePoint } from './timelinePoint'; /** * Mouse data helper container. */ export interface TimelineMouseData extends TimelinePoint { /** * Originated event args. */ args: TouchEvent | MouseEvent; /** * Click radius. */ radius?: number; } ================================================ FILE: packages/sdk/lib/core/libs/astral-timeline/utils/timelinePoint.ts ================================================ /** * Timeline values interface. */ export interface TimelinePoint { /** * Value used for the visualization. * It can be snapped or original. */ val: number; /** * Snapped value if snapping is enabled. In other case corresponding to original value. */ snapVal: number; /** * Unsnapped original value. */ originalVal: number; /** * Screen click point. */ pos: DOMPoint; } ================================================ FILE: packages/sdk/lib/core/libs/astral-timeline/utils/timelineSelectable.ts ================================================ /** * Timeline selectable element. */ export interface TimelineSelectable { selected?: boolean; selectable?: boolean; } ================================================ FILE: packages/sdk/lib/core/libs/astral-timeline/utils/timelineSelectionResults.ts ================================================ import { TimelineKeyframe } from '../models/timelineKeyframe'; export interface TimelineSelectionResults { /** * Changed nodes. */ changed: TimelineKeyframe[]; /** * Selected nodes. */ selected: TimelineKeyframe[]; /** * Whether data was changed. */ selectionChanged: boolean; } ================================================ FILE: packages/sdk/lib/core/libs/astral-timeline/utils/timelineStyleUtils.ts ================================================ import { TimelineOptions } from '../settings/timelineOptions'; import { TimelineRowStyle } from '../settings/styles/timelineRowStyle'; import { TimelineKeyframeShape } from '../enums/timelineKeyframeShape'; import { TimelineUtils } from './timelineUtils'; import { TimelineGroupStyle } from '../settings/styles/timelineGroupStyle'; import { TimelineKeyframe } from '../models/timelineKeyframe'; import { TimelineGroup } from '../models/timelineGroup'; import { TimelineRow } from '../models/timelineRow'; import { defaultGroupStyle } from '../settings/defaults/defaultGroupStyle'; import { defaultTimelineKeyframeStyle } from '../settings/defaults/defaultTimelineKeyframeStyle'; import { defaultTimelineRowStyle } from '../settings/defaults/defaultTimelineRowStyle'; const undefinedConst = typeof undefined; // TODO: create merged style for each element instead of getting per property. export class TimelineStyleUtils { static getGroup(groupModel: TimelineGroup | string | null | undefined): TimelineGroup | null { const style = groupModel; if (style && typeof style === 'string') { return null; } return (style || null) as TimelineGroup; } static getGroupStyle(groupModel: TimelineGroup | string | null | undefined): TimelineGroupStyle | null { return TimelineStyleUtils.getGroup(groupModel)?.style || null; } static getFirstSet(defaultValue: T, ...params: Array): T { return TimelineStyleUtils.getValue(defaultValue, false, ...params); } /** * Get first value set or default. * @param defaultValue default value in a case when no value is set. * @param returnFalseIfAnyFalse - find first negative bool and return false. * @param params collection of values to check. * @returns value. */ static getValue(defaultValue: T, returnFalseIfAnyFalse = false, ...params: Array): T { const valuesFound: T[] = []; let found = false; params.forEach((value: T | undefined | null) => { if (found) { return; } if (typeof value === undefinedConst) { return; } else if (typeof value === 'number') { if (!TimelineUtils.isNumber(value)) { return; } } else if (typeof value === 'boolean') { valuesFound.push(value as T); // No need to search for other values. First false is turning off current bool functionality. if (returnFalseIfAnyFalse && value === false) { found = true; } return; } else if (!value) { return; } valuesFound.push(value as T); }); const toReturn = valuesFound && valuesFound.length > 0 ? valuesFound[0] : defaultValue; if (found) { return false as T; } return TimelineStyleUtils.getValueOrDefault(toReturn, defaultValue) as T; } static getValueOrDefault(value: T, defaultValue: T): T | undefined { if (typeof value === undefinedConst) { return defaultValue; } else if (typeof value == 'boolean') { // variable is a boolean return value as T; } else if (typeof value == 'number') { // variable is a boolean if (value || value === 0) { return value as T; } else { return defaultValue; } } return value || defaultValue; } static keyframeWidth( keyframe: TimelineKeyframe | null | undefined, group: TimelineGroup | string | null | undefined, rowStyle: TimelineRowStyle | null | undefined, options: TimelineOptions | null | undefined, ): number | string { return TimelineStyleUtils.getFirstSet( // default value defaultTimelineKeyframeStyle.width || '', keyframe?.style?.width, // exact style TimelineStyleUtils.getGroupStyle(group)?.keyframesStyle?.width, rowStyle?.keyframesStyle?.width, rowStyle?.groupsStyle?.keyframesStyle?.width, // global styles options?.rowsStyle?.groupsStyle?.keyframesStyle?.width, // default keyframe style options?.rowsStyle?.keyframesStyle?.width, ); } static keyframeHeight( keyframe: TimelineKeyframe | null | undefined, group: TimelineGroup | string | null | undefined, rowStyle: TimelineRowStyle | null | undefined, options: TimelineOptions | null | undefined, ): number | string { return TimelineStyleUtils.getFirstSet( // default value defaultTimelineKeyframeStyle.height || '', keyframe?.style?.height, // exact style TimelineStyleUtils.getGroupStyle(group)?.keyframesStyle?.height, rowStyle?.keyframesStyle?.height, rowStyle?.groupsStyle?.keyframesStyle?.height, // global styles options?.rowsStyle?.groupsStyle?.keyframesStyle?.height, // default keyframe style options?.rowsStyle?.keyframesStyle?.height, ); } static keyframeShape(keyframe: TimelineKeyframe | null, group: TimelineGroup | string | null | undefined, rowStyle: TimelineRowStyle | null, options: TimelineOptions | null): TimelineKeyframeShape { const defaultValue = defaultTimelineKeyframeStyle.shape || TimelineKeyframeShape.Rhomb; return TimelineStyleUtils.getFirstSet( // default value defaultValue, // exact style keyframe?.style?.shape, // style set by keyframe group TimelineStyleUtils.getGroupStyle(group)?.keyframesStyle?.shape, // style from the keyframe group rowStyle?.groupsStyle?.keyframesStyle?.shape, // style set by keyframe style rowStyle?.keyframesStyle?.shape, // style set by keyframe group style, applied when group is set group ? options?.rowsStyle?.groupsStyle?.keyframesStyle?.shape : undefined, // Style set by global options options?.rowsStyle?.keyframesStyle?.shape, ); } static keyframeFillColor(keyframe: TimelineKeyframe | null, group: TimelineGroup | string | null | undefined, rowStyle: TimelineRowStyle | null, options: TimelineOptions | null): string { const defaultValue = defaultTimelineKeyframeStyle.fillColor || ''; return TimelineStyleUtils.getFirstSet( // default value defaultValue, // exact style keyframe?.style?.fillColor, // style set by keyframe group TimelineStyleUtils.getGroupStyle(group)?.keyframesStyle?.fillColor, // style from the keyframe group rowStyle?.groupsStyle?.keyframesStyle?.fillColor, // style set by keyframe style rowStyle?.keyframesStyle?.fillColor, // style set by keyframe group style, applied when group is set group ? options?.rowsStyle?.groupsStyle?.keyframesStyle?.fillColor : undefined, // Style set by global options options?.rowsStyle?.keyframesStyle?.fillColor, ); } static keyframeSelectedFillColor(keyframe: TimelineKeyframe | null, group: TimelineGroup | string | null | undefined, rowStyle: TimelineRowStyle | null, options: TimelineOptions | null): string { const defaultValue = defaultTimelineKeyframeStyle.selectedFillColor || ''; return TimelineStyleUtils.getFirstSet( // default value defaultValue, // exact style keyframe?.style?.selectedFillColor, // style set by keyframe group TimelineStyleUtils.getGroupStyle(group)?.keyframesStyle?.selectedFillColor, // style from the keyframe group rowStyle?.groupsStyle?.keyframesStyle?.selectedFillColor, // style set by keyframe style rowStyle?.keyframesStyle?.selectedFillColor, // style set by keyframe group style, applied when group is set group ? options?.rowsStyle?.groupsStyle?.keyframesStyle?.selectedFillColor : undefined, // Style set by global options options?.rowsStyle?.keyframesStyle?.selectedFillColor, ); } static keyframeStrokeThickness(keyframe: TimelineKeyframe | null, group: TimelineGroup | string | null | undefined, rowStyle: TimelineRowStyle | null, options: TimelineOptions | null): number { const defaultValue = defaultTimelineKeyframeStyle.strokeThickness || 0; return TimelineStyleUtils.getFirstSet( // default value defaultValue, // exact style keyframe?.style?.strokeThickness, // style set by keyframe group TimelineStyleUtils.getGroupStyle(group)?.keyframesStyle?.strokeThickness, // style from the keyframe group rowStyle?.groupsStyle?.keyframesStyle?.strokeThickness, // style set by keyframe style rowStyle?.keyframesStyle?.strokeThickness, // style set by keyframe group style, applied when group is set group ? options?.rowsStyle?.groupsStyle?.keyframesStyle?.strokeThickness : undefined, // Style set by global options options?.rowsStyle?.keyframesStyle?.strokeThickness, ); } static keyframeStrokeColor(keyframe: TimelineKeyframe | null, group: TimelineGroup | string | null | undefined, rowStyle: TimelineRowStyle | null, options: TimelineOptions | null): string { const defaultValue = defaultTimelineKeyframeStyle.strokeColor || ''; return TimelineStyleUtils.getFirstSet( // default value defaultValue, // exact style keyframe?.style?.strokeColor, // style set by keyframe group TimelineStyleUtils.getGroupStyle(group)?.keyframesStyle?.strokeColor, // style from the keyframe group rowStyle?.groupsStyle?.keyframesStyle?.strokeColor, // style set by keyframe style rowStyle?.keyframesStyle?.strokeColor, // style set by keyframe group style, applied when group is set group ? options?.rowsStyle?.groupsStyle?.keyframesStyle?.strokeColor : undefined, // Style set by global options options?.rowsStyle?.keyframesStyle?.strokeColor, ); } static keyframeSelectedStrokeColor(keyframe: TimelineKeyframe | null, group: TimelineGroup | string | null, rowStyle: TimelineRowStyle | null, options: TimelineOptions | null): string { const defaultValue = defaultTimelineKeyframeStyle.selectedStrokeColor || ''; return TimelineStyleUtils.getFirstSet( // default value defaultValue, // exact style keyframe?.style?.selectedStrokeColor, // style set by keyframe group TimelineStyleUtils.getGroupStyle(group)?.keyframesStyle?.selectedStrokeColor, // style from the keyframe group rowStyle?.groupsStyle?.keyframesStyle?.selectedStrokeColor, // style set by keyframe style rowStyle?.keyframesStyle?.selectedStrokeColor, // style set by keyframe group style, applied when group is set group ? options?.rowsStyle?.groupsStyle?.keyframesStyle?.selectedStrokeColor : undefined, // Style set by global options options?.rowsStyle?.keyframesStyle?.selectedStrokeColor, ); } static groupHeight(options: TimelineOptions | null | undefined, group: TimelineGroup | string | null | undefined, rowStyle: TimelineRowStyle | null | undefined): number | string { return TimelineStyleUtils.getFirstSet( // default value defaultGroupStyle.height || 'auto', // exact group style TimelineStyleUtils.getGroupStyle(group)?.height, // Row row style rowStyle?.groupsStyle?.height, // global styles options?.rowsStyle?.groupsStyle?.height, ); } static groupMarginTop(options: TimelineOptions | null | undefined, group: TimelineGroup | string | null | undefined, rowStyle: TimelineRowStyle | null | undefined): number | string { return TimelineStyleUtils.getFirstSet( // default value defaultGroupStyle.marginTop || 'auto', // exact style TimelineStyleUtils.getGroupStyle(group)?.marginTop, // Row row style rowStyle?.groupsStyle?.marginTop, // global styles options?.rowsStyle?.groupsStyle?.marginTop, ); } static groupFillColor(options: TimelineOptions | null | undefined, group: TimelineGroup | string | null | undefined, rowStyle: TimelineRowStyle | null | undefined): string { return TimelineStyleUtils.getFirstSet( // default value defaultGroupStyle.fillColor || '', // exact style TimelineStyleUtils.getGroupStyle(group)?.fillColor, // Row row style rowStyle?.groupsStyle?.fillColor, // global styles options?.rowsStyle?.groupsStyle?.fillColor, ); } static groupStrokeColor(options: TimelineOptions | null | undefined, group: TimelineGroup | string | null | undefined, rowStyle: TimelineRowStyle | null | undefined): string { return TimelineStyleUtils.getFirstSet( // default value defaultGroupStyle.strokeColor || '', // exact style TimelineStyleUtils.getGroupStyle(group)?.strokeColor, // Row row style rowStyle?.groupsStyle?.strokeColor, // global styles options?.rowsStyle?.groupsStyle?.strokeColor, ); } static groupStrokeThickness(options: TimelineOptions | null | undefined, group: TimelineGroup | string | null | undefined, rowStyle: TimelineRowStyle | null | undefined): number { return ( TimelineStyleUtils.getFirstSet( // default value defaultGroupStyle.strokeThickness || '', // exact style TimelineStyleUtils.getGroupStyle(group)?.strokeThickness, // Row row style rowStyle?.groupsStyle?.strokeThickness, // global styles options?.rowsStyle?.groupsStyle?.strokeThickness, ) || 0 ); } static groupsRadii( options: TimelineOptions | null | undefined, group: TimelineGroup | string | null | undefined, rowStyle: TimelineRowStyle | null | undefined, ): number | DOMPointInit | Iterable { return ( TimelineStyleUtils.getFirstSet( // default value defaultGroupStyle.radii || '', // exact style TimelineStyleUtils.getGroupStyle(group)?.radii, // Row row style rowStyle?.groupsStyle?.radii, // global styles options?.rowsStyle?.groupsStyle?.radii, ) || 0 ); } static groupText(options: TimelineOptions | null | undefined, group: TimelineGroup | string | null | undefined, rowStyle: TimelineRowStyle | null | undefined): TimelineGroupStyle["text"] { return TimelineStyleUtils.getFirstSet( // default value defaultGroupStyle.text || { label:"" }, // exact style TimelineStyleUtils.getGroupStyle(group)?.text, // Row row style rowStyle?.groupsStyle?.text, // global styles options?.rowsStyle?.groupsStyle?.text, ); } /** * Get current row height from styles */ static getRowHeight(rowStyle: TimelineRowStyle | null, options: TimelineOptions | null): number { const defaultValue = defaultTimelineRowStyle.height || 0; return TimelineStyleUtils.getFirstSet( // default value defaultValue, // exact style rowStyle?.height, // Style set by global options options?.rowsStyle?.height, ); } static getRowMarginBottom(rowStyle: TimelineRowStyle | null, options: TimelineOptions | null): number { const defaultValue = defaultTimelineRowStyle.marginBottom || 0; return TimelineStyleUtils.getFirstSet( // default value defaultValue, // exact style rowStyle?.marginBottom, // Style set by global options options?.rowsStyle?.marginBottom, ); } static getRowFillColor(rowStyle: TimelineRowStyle | null, options: TimelineOptions | null): string { const defaultValue = defaultTimelineRowStyle.fillColor || ''; return TimelineStyleUtils.getFirstSet( // default value defaultValue, // exact style rowStyle?.fillColor, // Style set by global options options?.rowsStyle?.fillColor, ); } static headerHeight(options: TimelineOptions | null, defaultRowHeight = 30): number { return options?.headerHeight || defaultRowHeight; } static keyframeDraggable(keyframe: TimelineKeyframe | null, group: TimelineGroup | string | null, row: TimelineRow | null, options: TimelineOptions | null, defaultValue = true): boolean { const findFirstNegativeBool = true; const boolResult = TimelineStyleUtils.getValue( defaultValue, findFirstNegativeBool, // Keyframe settings keyframe?.draggable, // Group settings TimelineStyleUtils.getGroup(group)?.keyframesDraggable, // Row settings row?.keyframesDraggable, // Start from global settings first. options?.keyframesDraggable, ); return boolResult; } static groupDraggable(group: TimelineGroup | string | null | undefined, row: TimelineRow | null, options: TimelineOptions): boolean { const findFirstNegativeBool = true; const boolResult = TimelineStyleUtils.getValue( true, findFirstNegativeBool, // Group settings TimelineStyleUtils.getGroup(group)?.draggable, // Row settings row?.groupsDraggable, // Start from global settings first. options?.groupsDraggable, ); return boolResult; } } ================================================ FILE: packages/sdk/lib/core/libs/astral-timeline/utils/timelineUtils.ts ================================================ import { TimelineRanged } from '../models/timelineRanged'; import { TimelineOptions } from '../settings/timelineOptions'; const defaultDenominators = [1, 2, 5, 10]; export class TimelineUtils { static drawLine(ctx: CanvasRenderingContext2D, x1: number, y1: number, x2: number, y2: number): void { ctx.moveTo(x1, y1); ctx.lineTo(x2, y2); } /** * Check is valid number. */ static isNumber(val?: number | null): boolean { if (typeof val === 'number' && (val || val === 0) && !isNaN(val) && Number.isFinite(val)) { return true; } return false; } static deleteElement(array: Array, element: T): Array { const index: number = array.indexOf(element); if (index !== -1) { return array.splice(index, 1); } return array; } /** * Check rectangle overlap x,y */ static isOverlap(x: number, y: number, rectangle: DOMRect): boolean { if (!rectangle) { return false; } if (rectangle.x <= x && rectangle.x + rectangle.width >= x && rectangle.y <= y && rectangle.y + rectangle.height >= y) { return true; } return false; } /** * Find beautiful step for the header line gauge. */ static findGoodStep(originalStep: number, divisionCheck = 0, denominators: number[] = defaultDenominators): number { if (!denominators) { denominators = defaultDenominators; } if (originalStep <= 0 || isNaN(originalStep) || !Number.isFinite(originalStep)) { return originalStep; } let step = originalStep; let lastDistance:number | null = null; const pow = TimelineUtils.getPowArgument(originalStep); for (let i = 0; i < denominators.length; i++) { const denominator = denominators[i]; const calculatedStep = denominator * Math.pow(10, pow); if (divisionCheck && divisionCheck % calculatedStep != 0) { continue; } const distance = TimelineUtils.getDistance(originalStep, calculatedStep); if (distance == 0 || (distance <= 0.1 && pow > 0)) { lastDistance = distance; step = calculatedStep; break; } else if (!lastDistance || lastDistance > distance) { lastDistance = distance; step = calculatedStep; } } return step; } /** * Keep value in min, max bounds. */ static keepInBounds(value: number, min: number | null | undefined = null, max: number | null | undefined = null): number { if (TimelineUtils.isNumber(value)) { if (TimelineUtils.isNumber(min) && (min || min === 0)) { value = Math.max(value, min); } if (TimelineUtils.isNumber(max) && (max || max === 0)) { value = Math.min(value, max); } } return value; } static setMinMax(to: TimelineRanged, from: TimelineRanged | null, shrink = false): TimelineRanged { if (!from || !to) { return to; } const fromMin = from ? from.min : Number.NaN; const toMin = to.min; const isFromMinNumber = (fromMin || fromMin === 0) && TimelineUtils.isNumber(fromMin); const isToMinNumber = (toMin || toMin === 0) && TimelineUtils.isNumber(toMin); // get absolute min and max bounds: if (isFromMinNumber && isToMinNumber) { to.min = shrink ? Math.min(fromMin, toMin) : Math.max(fromMin, toMin); } else if (isFromMinNumber) { to.min = fromMin; } const fromMax = from ? from.max : Number.NaN; const toMax = to.max; const isFromMaxNumber = (fromMax || fromMax === 0) && TimelineUtils.isNumber(fromMax); const isToMaxNumber = (toMax || toMax === 0) && TimelineUtils.isNumber(toMax); if (isFromMaxNumber && isToMaxNumber) { to.max = shrink ? Math.max(fromMax, toMax) : Math.min(fromMax, toMax); } else if (isFromMaxNumber) { to.max = fromMax; } return to; } static shrinkSelf(rect: DOMRect, value: number): DOMRect { if (!rect) { return rect; } rect.x -= value; rect.y -= value; rect.width += value; rect.height += value; return rect; } /** * Check whether rectangle intersects another rectangle */ static isRectIntersects(rect: DOMRect, rect2: DOMRect, touch = false): boolean { if (!rect || !rect2) { console.log('Rectangles cannot be empty'); return false; } const right = rect2.x + rect2.width; const bottom = rect2.y + rect2.height; if (touch) { if ( // Left rect.x <= right && // Right rect2.x <= rect.x + rect.width && // Top rect.y <= bottom && // Bottom rect2.y <= rect.y + rect.height ) { return true; } else { return false; } } else { if ( // Left rect.x < right && // Right rect2.x < rect.x + rect.width && // Top rect.y < bottom && // Bottom rect2.y < rect.y + rect.height ) { return true; } else { return false; } } } static getDistance(x1: number, y1: number, x2?: number, y2?: number): number { if (x2 != undefined && y2 != undefined) { return Math.sqrt(Math.pow(x1 - x2, 2) + Math.pow(y1 - y2, 2)); } else { return Math.abs(x1 - y1); } } /** * Get sign of the number. 1 or -1. */ static sign(p: number): number { return p >= 0 ? 1 : -1; } /** * Clear browser text selection. */ static clearBrowserSelection(): void { if (!window) { return; } if (window.getSelection) { const selection = window.getSelection(); if (selection) { selection.removeAllRanges(); } } else { // eslint-disable-next-line @typescript-eslint/no-explicit-any const doc: any = window.document; if (doc.selection) { doc.selection.empty(); } } } static getPowArgument(toCheck: number): number { if (!toCheck || toCheck === 0 || !isFinite(toCheck)) { return 1; } // some optimization for numbers: if (toCheck >= 10 && toCheck < 100) { return 1; } else if (toCheck >= 100 && toCheck < 1000) { return 2; } else if (toCheck >= 1000 && toCheck < 10000) { return 3; } toCheck = Math.abs(toCheck); let category = 0; const s = this.sign(toCheck); if (toCheck > 1) { while (toCheck >= 1) { toCheck = Math.floor(toCheck / 10.0); category++; } return s * category - 1; } else if (toCheck > 0.0) { // Get number of zeros before the number. const zerosCount = Math.floor(Math.log(toCheck) / Math.log(10) + 1) - 1; return zerosCount; } else { return 1; } } static deepClone = (previousOptions: T): T => { return JSON.parse(JSON.stringify(previousOptions)) as T; }; static cloneOptions = (previousOptions: TimelineOptions): TimelineOptions => { const clonedValue = JSON.parse( JSON.stringify(previousOptions, (key, value) => { // No need to clone HTML element passed as ID. return key === 'id' ? undefined : value; }), ); clonedValue.id = previousOptions.id; return clonedValue; }; /** * Merge options. New keys will be added. */ static mergeOptions(previousOptions: TimelineOptions, newOptions: TimelineOptions): TimelineOptions { newOptions = newOptions || ({} as TimelineOptions); // Apply incoming options to default. (override default) // Deep clone default options: const toArg = TimelineUtils.cloneOptions(previousOptions); // Merge options with the default. // eslint-disable-next-line @typescript-eslint/no-explicit-any const mergeOptionsDeep = (to: any, from: any): void => { if (!to || !from) { return; } // eslint-disable-next-line prefer-const for (let key in from) { if (Object.prototype.hasOwnProperty.call(from, key)) { if (from[key] !== undefined) { if (typeof from[key] === 'object') { if (key === 'id') { if (from[key] && from[key] !== to[key]) { to[key] = from[key]; } } else { if (!to[key]) { to[key] = from[key]; } else { mergeOptionsDeep(to[key], from[key]); } } } else { to[key] = from[key]; } } } } }; mergeOptionsDeep(toArg, newOptions); return toArg; } /** * Format numbers with len */ static timePadZero(num: number, len = 2): string { let str = String(num); const threshold = Math.pow(10, len - 1); if (num < threshold) { while (String(threshold).length > str.length) { str = `0${num}`; } } return str; } } ================================================ FILE: packages/sdk/lib/core/libs/astral-timeline/viewModels/timelineGroupViewModel.ts ================================================ import { TimelineGroup } from '../models/timelineGroup'; import { TimelineKeyframeViewModel } from './timelineKeyframeViewModel'; export interface TimelineGroupViewModel { /** * Size of the element in screen coordinates. */ size: DOMRect | null; /** * From value in the timeline keyframes collection. */ min: number; /** * To value in the timeline keyframes collection. */ max: number; /** * Related Group Model. */ groupModel: string | TimelineGroup; /** * Related Grouped keyframes view models. */ keyframesViewModels: TimelineKeyframeViewModel[]; } ================================================ FILE: packages/sdk/lib/core/libs/astral-timeline/viewModels/timelineKeyframeViewModel.ts ================================================ import { TimelineKeyframeShape } from '../enums/timelineKeyframeShape'; import { TimelineKeyframe } from '../models/timelineKeyframe'; import { TimelineGroupViewModel } from './timelineGroupViewModel'; import { TimelineRowViewModel } from './timelineRowViewModel'; /** * Timeline calculated view model. */ export interface TimelineKeyframeViewModel { /** * Size of the keyframe. */ size: DOMRect; shape: TimelineKeyframeShape; /** * Related keyframe model. */ model: TimelineKeyframe; /** * Related calculated parent row view model. */ rowViewModel: TimelineRowViewModel; /** * Related calculated parent group view model. */ groupViewModel: TimelineGroupViewModel; } ================================================ FILE: packages/sdk/lib/core/libs/astral-timeline/viewModels/timelineRowViewModel.ts ================================================ import { TimelineRow } from '../models/timelineRow'; import { TimelineGroupViewModel } from './timelineGroupViewModel'; import { TimelineKeyframeViewModel } from './timelineKeyframeViewModel'; export interface TimelineRowViewModel { /** * Screen coordinates of the element. */ size: DOMRect; /** * Related row model. */ model: TimelineRow; /** * Current row index. */ index: number; /** * Row margin bottom */ marginBottom: number; /** * Collection of the keyframes groups view models exists in the current row. */ groupsViewModels: TimelineGroupViewModel[]; /** * All keyframes in the current row. */ keyframesViewModels: TimelineKeyframeViewModel[]; min: number | null; max: number | null; } ================================================ FILE: packages/sdk/lib/core/libs/astral-timeline/viewModels/timelineViewModel.ts ================================================ import { TimelineKeyframeViewModel } from './timelineKeyframeViewModel'; import { TimelineRowViewModel } from './timelineRowViewModel'; export interface TimelineViewModel { /** * Screen coordinates of the element. */ size: DOMRect; /** * Keyframes view models. */ keyframesViewModels: TimelineKeyframeViewModel[]; /** * Collection of the rows sizes. */ rowsViewModels: TimelineRowViewModel[]; min: number | null; max: number | null; } ================================================ FILE: packages/sdk/lib/core/libs/three-nebula/behaviour/Alpha.js ================================================ import { MathUtils, createSpan } from '../math'; import Behaviour from './Behaviour'; import { PARTICLE_ALPHA_THRESHOLD } from './constants'; import { getEasingByName } from '../ease'; import { BEHAVIOUR_TYPE_ALPHA as type } from './types'; /** * Behaviour that applies an alpha transition effect to particles. * */ export default class Alpha extends Behaviour { /** * Constructs an Alpha behaviour instance. * * @param {number} alphaA - The starting alpha value * @param {?number} alphaB - The ending alpha value * @param {number} life - The life of the behaviour * @param {function} easing - The easing equation to use for transforms * @param {boolean} [isEnabled=true] - Determines if the behaviour will be applied or not * @return void */ constructor(alphaA = 1, alphaB = null, life = Infinity, easing, isEnabled = true) { super(life, easing, type, isEnabled); /** * @desc The starting alpha value * @type {number|Span} */ this.alphaA = alphaA; /** * @desc The ending alpha value * @type {number|Span} */ this.alphaB = alphaB; this.reset(alphaA, alphaB); } /** * Gets the _same property which determines if the alpha are the same. * * @return {boolean} */ get same() { return this._same; } /** * Sets the _same property which determines if the alpha are the same. * * @param {boolean} same * @return {boolean} */ set same(same) { /** * @type {boolean} */ this._same = same; } /** * Resets the behaviour properties. * * @param {number} alphaA - the starting alpha value * @param {?number} alphaB - the ending alpha value * @param {number} life - the life of the behaviour * @param {function} easing - the easing equation to use for transforms * @return void */ reset(alphaA = 1, alphaB = null, life, easing) { this.same = alphaB === null || alphaB === undefined ? true : false; this.alphaA = createSpan(alphaA); this.alphaB = createSpan(alphaB); life && super.reset(life, easing); } /** * Initializes the behaviour on a particle. * * @param {object} particle - the particle to initialize the behaviour on * @return void */ initialize(particle) { particle.useAlpha = true; particle.transform.alphaA = this.alphaA.getValue(); particle.transform.alphaB = this.same ? particle.transform.alphaA : this.alphaB.getValue(); } /** * Mutates the target's alpha/opacity property. * * @param {object} particle - the particle to apply the behaviour to * @param {number} time - engine time * @param {integer} index - the particle index * @return void */ mutate(particle, time, index) { this.energize(particle, time, index); particle.alpha = MathUtils.lerp(particle.transform.alphaA, particle.transform.alphaB, this.energy); if (particle.alpha < PARTICLE_ALPHA_THRESHOLD) { particle.alpha = 0; } } /** * Creates a Body initializer from JSON. * * @param {object} json - The JSON to construct the instance from. * @property {number} json.alphaA - The starting alpha value * @property {number} json.alphaB - The ending alpha value * @property {number} json.life - The life of the behaviour * @property {string} json.easing - The easing equation to use for transforms * @return {Body} */ static fromJSON(json) { const { alphaA, alphaB, life, easing, isEnabled = true } = json; return new Alpha(alphaA, alphaB, life, getEasingByName(easing), isEnabled); } } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9iZWhhdmlvdXIvQWxwaGEuanMiXSwibmFtZXMiOlsiTWF0aFV0aWxzIiwiY3JlYXRlU3BhbiIsIkJlaGF2aW91ciIsIlBBUlRJQ0xFX0FMUEhBX1RIUkVTSE9MRCIsImdldEVhc2luZ0J5TmFtZSIsIkJFSEFWSU9VUl9UWVBFX0FMUEhBIiwidHlwZSIsIkFscGhhIiwiY29uc3RydWN0b3IiLCJhbHBoYUEiLCJhbHBoYUIiLCJsaWZlIiwiZWFzaW5nIiwiaXNFbmFibGVkIiwicmVzZXQiLCJzYW1lIiwiX3NhbWUiLCJ1bmRlZmluZWQiLCJpbml0aWFsaXplIiwicGFydGljbGUiLCJ1c2VBbHBoYSIsInRyYW5zZm9ybSIsImdldFZhbHVlIiwibXV0YXRlIiwidGltZSIsImluZGV4IiwiZW5lcmdpemUiLCJhbHBoYSIsImxlcnAiLCJlbmVyZ3kiLCJmcm9tSlNPTiIsImpzb24iXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLFNBQVQsRUFBb0JDLFVBQXBCLFFBQXNDLFNBQXRDO0FBRUEsT0FBT0MsU0FBUCxNQUFzQixhQUF0QjtBQUNBLFNBQVNDLHdCQUFULFFBQXlDLGFBQXpDO0FBQ0EsU0FBU0MsZUFBVCxRQUFnQyxTQUFoQztBQUNBLFNBQVNDLG9CQUFvQixJQUFJQyxJQUFqQyxRQUE2QyxTQUE3QztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUNBLGVBQWUsTUFBTUMsS0FBTixTQUFvQkwsU0FBcEIsQ0FBOEI7QUFDM0M7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDRU0sRUFBQUEsV0FBVyxDQUFDQyxNQUFNLEdBQUcsQ0FBVixFQUFhQyxNQUFNLEdBQUcsSUFBdEIsRUFBNEJDLElBQTVCLEVBQWtDQyxNQUFsQyxFQUEwQ0MsU0FBUyxHQUFHLElBQXRELEVBQTREO0FBQ3JFLFVBQU1GLElBQU4sRUFBWUMsTUFBWixFQUFvQk4sSUFBcEIsRUFBMEJPLFNBQTFCO0FBRUE7QUFDSjtBQUNBO0FBQ0E7O0FBQ0ksU0FBS0osTUFBTCxHQUFjQSxNQUFkO0FBRUE7QUFDSjtBQUNBO0FBQ0E7O0FBQ0ksU0FBS0MsTUFBTCxHQUFjQSxNQUFkO0FBRUEsU0FBS0ksS0FBTCxDQUFXTCxNQUFYLEVBQW1CQyxNQUFuQjtBQUNEO0FBRUQ7QUFDRjtBQUNBO0FBQ0E7QUFDQTs7O0FBQ1UsTUFBSkssSUFBSSxHQUFHO0FBQ1QsV0FBTyxLQUFLQyxLQUFaO0FBQ0Q7QUFFRDtBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUNVLE1BQUpELElBQUksQ0FBQ0EsSUFBRCxFQUFPO0FBQ2I7QUFDSjtBQUNBO0FBQ0ksU0FBS0MsS0FBTCxHQUFhRCxJQUFiO0FBQ0Q7QUFFRDtBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUNFRCxFQUFBQSxLQUFLLENBQUNMLE1BQU0sR0FBRyxDQUFWLEVBQWFDLE1BQU0sR0FBRyxJQUF0QixFQUE0QkMsSUFBNUIsRUFBa0NDLE1BQWxDLEVBQTBDO0FBQzdDLFNBQUtHLElBQUwsR0FBWUwsTUFBTSxLQUFLLElBQVgsSUFBbUJBLE1BQU0sS0FBS08sU0FBOUIsR0FBMEMsSUFBMUMsR0FBaUQsS0FBN0Q7QUFDQSxTQUFLUixNQUFMLEdBQWNSLFVBQVUsQ0FBQ1EsTUFBRCxDQUF4QjtBQUNBLFNBQUtDLE1BQUwsR0FBY1QsVUFBVSxDQUFDUyxNQUFELENBQXhCO0FBRUFDLElBQUFBLElBQUksSUFBSSxNQUFNRyxLQUFOLENBQVlILElBQVosRUFBa0JDLE1BQWxCLENBQVI7QUFDRDtBQUVEO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQ0VNLEVBQUFBLFVBQVUsQ0FBQ0MsUUFBRCxFQUFXO0FBQ25CQSxJQUFBQSxRQUFRLENBQUNDLFFBQVQsR0FBb0IsSUFBcEI7QUFDQUQsSUFBQUEsUUFBUSxDQUFDRSxTQUFULENBQW1CWixNQUFuQixHQUE0QixLQUFLQSxNQUFMLENBQVlhLFFBQVosRUFBNUI7QUFFQUgsSUFBQUEsUUFBUSxDQUFDRSxTQUFULENBQW1CWCxNQUFuQixHQUE0QixLQUFLSyxJQUFMLEdBQ3hCSSxRQUFRLENBQUNFLFNBQVQsQ0FBbUJaLE1BREssR0FFeEIsS0FBS0MsTUFBTCxDQUFZWSxRQUFaLEVBRko7QUFHRDtBQUVEO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUNFQyxFQUFBQSxNQUFNLENBQUNKLFFBQUQsRUFBV0ssSUFBWCxFQUFpQkMsS0FBakIsRUFBd0I7QUFDNUIsU0FBS0MsUUFBTCxDQUFjUCxRQUFkLEVBQXdCSyxJQUF4QixFQUE4QkMsS0FBOUI7QUFFQU4sSUFBQUEsUUFBUSxDQUFDUSxLQUFULEdBQWlCM0IsU0FBUyxDQUFDNEIsSUFBVixDQUNmVCxRQUFRLENBQUNFLFNBQVQsQ0FBbUJaLE1BREosRUFFZlUsUUFBUSxDQUFDRSxTQUFULENBQW1CWCxNQUZKLEVBR2YsS0FBS21CLE1BSFUsQ0FBakI7O0FBTUEsUUFBSVYsUUFBUSxDQUFDUSxLQUFULEdBQWlCeEIsd0JBQXJCLEVBQStDO0FBQzdDZ0IsTUFBQUEsUUFBUSxDQUFDUSxLQUFULEdBQWlCLENBQWpCO0FBQ0Q7QUFDRjtBQUVEO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFDaUIsU0FBUkcsUUFBUSxDQUFDQyxJQUFELEVBQU87QUFDcEIsVUFBTTtBQUFFdEIsTUFBQUEsTUFBRjtBQUFVQyxNQUFBQSxNQUFWO0FBQWtCQyxNQUFBQSxJQUFsQjtBQUF3QkMsTUFBQUEsTUFBeEI7QUFBZ0NDLE1BQUFBLFNBQVMsR0FBRztBQUE1QyxRQUFxRGtCLElBQTNEO0FBRUEsV0FBTyxJQUFJeEIsS0FBSixDQUFVRSxNQUFWLEVBQWtCQyxNQUFsQixFQUEwQkMsSUFBMUIsRUFBZ0NQLGVBQWUsQ0FBQ1EsTUFBRCxDQUEvQyxFQUF5REMsU0FBekQsQ0FBUDtBQUNEOztBQXZIMEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNYXRoVXRpbHMsIGNyZWF0ZVNwYW4gfSBmcm9tICcuLi9tYXRoJztcblxuaW1wb3J0IEJlaGF2aW91ciBmcm9tICcuL0JlaGF2aW91cic7XG5pbXBvcnQgeyBQQVJUSUNMRV9BTFBIQV9USFJFU0hPTEQgfSBmcm9tICcuL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBnZXRFYXNpbmdCeU5hbWUgfSBmcm9tICcuLi9lYXNlJztcbmltcG9ydCB7IEJFSEFWSU9VUl9UWVBFX0FMUEhBIGFzIHR5cGUgfSBmcm9tICcuL3R5cGVzJztcblxuLyoqXG4gKiBCZWhhdmlvdXIgdGhhdCBhcHBsaWVzIGFuIGFscGhhIHRyYW5zaXRpb24gZWZmZWN0IHRvIHBhcnRpY2xlcy5cbiAqXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEFscGhhIGV4dGVuZHMgQmVoYXZpb3VyIHtcbiAgLyoqXG4gICAqIENvbnN0cnVjdHMgYW4gQWxwaGEgYmVoYXZpb3VyIGluc3RhbmNlLlxuICAgKlxuICAgKiBAcGFyYW0ge251bWJlcn0gYWxwaGFBIC0gVGhlIHN0YXJ0aW5nIGFscGhhIHZhbHVlXG4gICAqIEBwYXJhbSB7P251bWJlcn0gYWxwaGFCIC0gVGhlIGVuZGluZyBhbHBoYSB2YWx1ZVxuICAgKiBAcGFyYW0ge251bWJlcn0gbGlmZSAtIFRoZSBsaWZlIG9mIHRoZSBiZWhhdmlvdXJcbiAgICogQHBhcmFtIHtmdW5jdGlvbn0gZWFzaW5nIC0gVGhlIGVhc2luZyBlcXVhdGlvbiB0byB1c2UgZm9yIHRyYW5zZm9ybXNcbiAgICogQHBhcmFtIHtib29sZWFufSBbaXNFbmFibGVkPXRydWVdIC0gRGV0ZXJtaW5lcyBpZiB0aGUgYmVoYXZpb3VyIHdpbGwgYmUgYXBwbGllZCBvciBub3RcbiAgICogQHJldHVybiB2b2lkXG4gICAqL1xuICBjb25zdHJ1Y3RvcihhbHBoYUEgPSAxLCBhbHBoYUIgPSBudWxsLCBsaWZlLCBlYXNpbmcsIGlzRW5hYmxlZCA9IHRydWUpIHtcbiAgICBzdXBlcihsaWZlLCBlYXNpbmcsIHR5cGUsIGlzRW5hYmxlZCk7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzYyBUaGUgc3RhcnRpbmcgYWxwaGEgdmFsdWVcbiAgICAgKiBAdHlwZSB7bnVtYmVyfFNwYW59XG4gICAgICovXG4gICAgdGhpcy5hbHBoYUEgPSBhbHBoYUE7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzYyBUaGUgZW5kaW5nIGFscGhhIHZhbHVlXG4gICAgICogQHR5cGUge251bWJlcnxTcGFufVxuICAgICAqL1xuICAgIHRoaXMuYWxwaGFCID0gYWxwaGFCO1xuXG4gICAgdGhpcy5yZXNldChhbHBoYUEsIGFscGhhQik7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgX3NhbWUgcHJvcGVydHkgd2hpY2ggZGV0ZXJtaW5lcyBpZiB0aGUgYWxwaGEgYXJlIHRoZSBzYW1lLlxuICAgKlxuICAgKiBAcmV0dXJuIHtib29sZWFufVxuICAgKi9cbiAgZ2V0IHNhbWUoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3NhbWU7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgX3NhbWUgcHJvcGVydHkgd2hpY2ggZGV0ZXJtaW5lcyBpZiB0aGUgYWxwaGEgYXJlIHRoZSBzYW1lLlxuICAgKlxuICAgKiBAcGFyYW0ge2Jvb2xlYW59IHNhbWVcbiAgICogQHJldHVybiB7Ym9vbGVhbn1cbiAgICovXG4gIHNldCBzYW1lKHNhbWUpIHtcbiAgICAvKipcbiAgICAgKiBAdHlwZSB7Ym9vbGVhbn1cbiAgICAgKi9cbiAgICB0aGlzLl9zYW1lID0gc2FtZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXNldHMgdGhlIGJlaGF2aW91ciBwcm9wZXJ0aWVzLlxuICAgKlxuICAgKiBAcGFyYW0ge251bWJlcn0gYWxwaGFBIC0gdGhlIHN0YXJ0aW5nIGFscGhhIHZhbHVlXG4gICAqIEBwYXJhbSB7P251bWJlcn0gYWxwaGFCIC0gdGhlIGVuZGluZyBhbHBoYSB2YWx1ZVxuICAgKiBAcGFyYW0ge251bWJlcn0gbGlmZSAtIHRoZSBsaWZlIG9mIHRoZSBiZWhhdmlvdXJcbiAgICogQHBhcmFtIHtmdW5jdGlvbn0gZWFzaW5nIC0gdGhlIGVhc2luZyBlcXVhdGlvbiB0byB1c2UgZm9yIHRyYW5zZm9ybXNcbiAgICogQHJldHVybiB2b2lkXG4gICAqL1xuICByZXNldChhbHBoYUEgPSAxLCBhbHBoYUIgPSBudWxsLCBsaWZlLCBlYXNpbmcpIHtcbiAgICB0aGlzLnNhbWUgPSBhbHBoYUIgPT09IG51bGwgfHwgYWxwaGFCID09PSB1bmRlZmluZWQgPyB0cnVlIDogZmFsc2U7XG4gICAgdGhpcy5hbHBoYUEgPSBjcmVhdGVTcGFuKGFscGhhQSk7XG4gICAgdGhpcy5hbHBoYUIgPSBjcmVhdGVTcGFuKGFscGhhQik7XG5cbiAgICBsaWZlICYmIHN1cGVyLnJlc2V0KGxpZmUsIGVhc2luZyk7XG4gIH1cblxuICAvKipcbiAgICogSW5pdGlhbGl6ZXMgdGhlIGJlaGF2aW91ciBvbiBhIHBhcnRpY2xlLlxuICAgKlxuICAgKiBAcGFyYW0ge29iamVjdH0gcGFydGljbGUgLSB0aGUgcGFydGljbGUgdG8gaW5pdGlhbGl6ZSB0aGUgYmVoYXZpb3VyIG9uXG4gICAqIEByZXR1cm4gdm9pZFxuICAgKi9cbiAgaW5pdGlhbGl6ZShwYXJ0aWNsZSkge1xuICAgIHBhcnRpY2xlLnVzZUFscGhhID0gdHJ1ZTtcbiAgICBwYXJ0aWNsZS50cmFuc2Zvcm0uYWxwaGFBID0gdGhpcy5hbHBoYUEuZ2V0VmFsdWUoKTtcblxuICAgIHBhcnRpY2xlLnRyYW5zZm9ybS5hbHBoYUIgPSB0aGlzLnNhbWVcbiAgICAgID8gcGFydGljbGUudHJhbnNmb3JtLmFscGhhQVxuICAgICAgOiB0aGlzLmFscGhhQi5nZXRWYWx1ZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIE11dGF0ZXMgdGhlIHRhcmdldCdzIGFscGhhL29wYWNpdHkgcHJvcGVydHkuXG4gICAqXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBwYXJ0aWNsZSAtIHRoZSBwYXJ0aWNsZSB0byBhcHBseSB0aGUgYmVoYXZpb3VyIHRvXG4gICAqIEBwYXJhbSB7bnVtYmVyfSB0aW1lIC0gZW5naW5lIHRpbWVcbiAgICogQHBhcmFtIHtpbnRlZ2VyfSBpbmRleCAtIHRoZSBwYXJ0aWNsZSBpbmRleFxuICAgKiBAcmV0dXJuIHZvaWRcbiAgICovXG4gIG11dGF0ZShwYXJ0aWNsZSwgdGltZSwgaW5kZXgpIHtcbiAgICB0aGlzLmVuZXJnaXplKHBhcnRpY2xlLCB0aW1lLCBpbmRleCk7XG5cbiAgICBwYXJ0aWNsZS5hbHBoYSA9IE1hdGhVdGlscy5sZXJwKFxuICAgICAgcGFydGljbGUudHJhbnNmb3JtLmFscGhhQSxcbiAgICAgIHBhcnRpY2xlLnRyYW5zZm9ybS5hbHBoYUIsXG4gICAgICB0aGlzLmVuZXJneVxuICAgICk7XG5cbiAgICBpZiAocGFydGljbGUuYWxwaGEgPCBQQVJUSUNMRV9BTFBIQV9USFJFU0hPTEQpIHtcbiAgICAgIHBhcnRpY2xlLmFscGhhID0gMDtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIEJvZHkgaW5pdGlhbGl6ZXIgZnJvbSBKU09OLlxuICAgKlxuICAgKiBAcGFyYW0ge29iamVjdH0ganNvbiAtIFRoZSBKU09OIHRvIGNvbnN0cnVjdCB0aGUgaW5zdGFuY2UgZnJvbS5cbiAgICogQHByb3BlcnR5IHtudW1iZXJ9IGpzb24uYWxwaGFBIC0gVGhlIHN0YXJ0aW5nIGFscGhhIHZhbHVlXG4gICAqIEBwcm9wZXJ0eSB7bnVtYmVyfSBqc29uLmFscGhhQiAtIFRoZSBlbmRpbmcgYWxwaGEgdmFsdWVcbiAgICogQHByb3BlcnR5IHtudW1iZXJ9IGpzb24ubGlmZSAtIFRoZSBsaWZlIG9mIHRoZSBiZWhhdmlvdXJcbiAgICogQHByb3BlcnR5IHtzdHJpbmd9IGpzb24uZWFzaW5nIC0gVGhlIGVhc2luZyBlcXVhdGlvbiB0byB1c2UgZm9yIHRyYW5zZm9ybXNcbiAgICogQHJldHVybiB7Qm9keX1cbiAgICovXG4gIHN0YXRpYyBmcm9tSlNPTihqc29uKSB7XG4gICAgY29uc3QgeyBhbHBoYUEsIGFscGhhQiwgbGlmZSwgZWFzaW5nLCBpc0VuYWJsZWQgPSB0cnVlIH0gPSBqc29uO1xuXG4gICAgcmV0dXJuIG5ldyBBbHBoYShhbHBoYUEsIGFscGhhQiwgbGlmZSwgZ2V0RWFzaW5nQnlOYW1lKGVhc2luZyksIGlzRW5hYmxlZCk7XG4gIH1cbn1cbiJdfQ== ================================================ FILE: packages/sdk/lib/core/libs/three-nebula/behaviour/Attraction.js ================================================ import { DEFAULT_ATTRACITON_RADIUS, DEFAULT_ATTRACTION_FORCE_SCALAR, DEFAULT_BEHAVIOUR_EASING, DEFAULT_LIFE, PARTICLE_LENGTH_SQ_THRESHOLD } from './constants'; import Behaviour from './Behaviour'; import { Vector3D } from '../math'; import { getEasingByName } from '../ease'; import { BEHAVIOUR_TYPE_ATTRACTION as type } from './types'; /** * Behaviour that causes particles to be attracted to a target position. * */ export default class Attraction extends Behaviour { /** * Constructs an Attraction behaviour instance. * * @param {Vector3D} targetPosition - The position the particles will be attracted to * @param {number} force - The attraction force scalar multiplier * @param {number} radius - The attraction radius * @param {number} [life=DEFAULT_LIFE] - The life of the particle * @param {function} [easing=DEFAULT_BEHAVIOUR_EASING] - The behaviour's decaying trend * @param {boolean} [isEnabled=true] - Determines if the behaviour will be applied or not * @return void */ constructor(targetPosition = new Vector3D(), force = DEFAULT_ATTRACTION_FORCE_SCALAR, radius = DEFAULT_ATTRACITON_RADIUS, life = DEFAULT_LIFE, easing = DEFAULT_BEHAVIOUR_EASING, isEnabled = true) { super(life, easing, type, isEnabled); /** * @desc The position the particles will be attracted to * @type {Vector3D} */ this.targetPosition = targetPosition; /** * @desc The attraction radius * @type {number} - the attraction radius */ this.radius = radius; /** * @desc The attraction force scalar multiplier * @type {number} */ this.force = this.normalizeValue(force); /** * @desc The radius of the attraction squared * @type {number} */ this.radiusSq = this.radius * this.radius; /** * @desc The attraction force in 3D space * @type {Vector3D} */ this.attractionForce = new Vector3D(); /** * @desc The linear attraction force * @type {number} */ this.lengthSq = 0; } /** * Resets the behaviour properties. * * @param {Vector3D} targetPosition - the position the particles will be attracted to * @param {number} force - the attraction force multiplier * @param {number} radius - the attraction radius * @param {number} life - the life of the particle * @param {function} easing - The behaviour's decaying trend * @return void */ reset(targetPosition = new Vector3D(), force = DEFAULT_ATTRACTION_FORCE_SCALAR, radius = DEFAULT_ATTRACITON_RADIUS, life, easing) { this.targetPosition = targetPosition; this.radius = radius; this.force = this.normalizeValue(force); this.radiusSq = this.radius * this.radius; this.attractionForce = new Vector3D(); this.lengthSq = 0; life && super.reset(life, easing); } /** * Mutates particle acceleration. * * @param {Particle} particle - the particle to apply the behaviour to * @param {number} time - particle engine time * @param {integer} index - the particle index * @return void */ mutate(particle, time, index) { this.energize(particle, time, index); this.attractionForce.copy(this.targetPosition); this.attractionForce.sub(particle.position); this.lengthSq = this.attractionForce.lengthSq(); if (this.lengthSq > PARTICLE_LENGTH_SQ_THRESHOLD && this.lengthSq < this.radiusSq) { this.attractionForce.normalize(); this.attractionForce.scalar(1 - this.lengthSq / this.radiusSq); this.attractionForce.scalar(this.force); particle.acceleration.add(this.attractionForce); } } /** * Creates a Body initializer from JSON. * * @param {object} json - The JSON to construct the instance from. * @property {number} json.x - The target position x value * @property {number} json.y - The target position y value * @property {number} json.z - The target position z value * @property {number} json.force - The attraction force scalar multiplier * @property {number} json.life - The life of the particle * @property {string} json.easing - The behaviour's decaying trend * @return {Body} */ static fromJSON(json) { const { x, y, z, force, radius, life, easing, isEnabled = true } = json; return new Attraction(new Vector3D(x, y, z), force, radius, life, getEasingByName(easing), isEnabled); } } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9iZWhhdmlvdXIvQXR0cmFjdGlvbi5qcyJdLCJuYW1lcyI6WyJERUZBVUxUX0FUVFJBQ0lUT05fUkFESVVTIiwiREVGQVVMVF9BVFRSQUNUSU9OX0ZPUkNFX1NDQUxBUiIsIkRFRkFVTFRfQkVIQVZJT1VSX0VBU0lORyIsIkRFRkFVTFRfTElGRSIsIlBBUlRJQ0xFX0xFTkdUSF9TUV9USFJFU0hPTEQiLCJCZWhhdmlvdXIiLCJWZWN0b3IzRCIsImdldEVhc2luZ0J5TmFtZSIsIkJFSEFWSU9VUl9UWVBFX0FUVFJBQ1RJT04iLCJ0eXBlIiwiQXR0cmFjdGlvbiIsImNvbnN0cnVjdG9yIiwidGFyZ2V0UG9zaXRpb24iLCJmb3JjZSIsInJhZGl1cyIsImxpZmUiLCJlYXNpbmciLCJpc0VuYWJsZWQiLCJub3JtYWxpemVWYWx1ZSIsInJhZGl1c1NxIiwiYXR0cmFjdGlvbkZvcmNlIiwibGVuZ3RoU3EiLCJyZXNldCIsIm11dGF0ZSIsInBhcnRpY2xlIiwidGltZSIsImluZGV4IiwiZW5lcmdpemUiLCJjb3B5Iiwic3ViIiwicG9zaXRpb24iLCJub3JtYWxpemUiLCJzY2FsYXIiLCJhY2NlbGVyYXRpb24iLCJhZGQiLCJmcm9tSlNPTiIsImpzb24iLCJ4IiwieSIsInoiXSwibWFwcGluZ3MiOiJBQUFBLFNBQ0VBLHlCQURGLEVBRUVDLCtCQUZGLEVBR0VDLHdCQUhGLEVBSUVDLFlBSkYsRUFLRUMsNEJBTEYsUUFNTyxhQU5QO0FBUUEsT0FBT0MsU0FBUCxNQUFzQixhQUF0QjtBQUNBLFNBQVNDLFFBQVQsUUFBeUIsU0FBekI7QUFDQSxTQUFTQyxlQUFULFFBQWdDLFNBQWhDO0FBQ0EsU0FBU0MseUJBQXlCLElBQUlDLElBQXRDLFFBQWtELFNBQWxEO0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBQ0EsZUFBZSxNQUFNQyxVQUFOLFNBQXlCTCxTQUF6QixDQUFtQztBQUNoRDtBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0VNLEVBQUFBLFdBQVcsQ0FDVEMsY0FBYyxHQUFHLElBQUlOLFFBQUosRUFEUixFQUVUTyxLQUFLLEdBQUdaLCtCQUZDLEVBR1RhLE1BQU0sR0FBR2QseUJBSEEsRUFJVGUsSUFBSSxHQUFHWixZQUpFLEVBS1RhLE1BQU0sR0FBR2Qsd0JBTEEsRUFNVGUsU0FBUyxHQUFHLElBTkgsRUFPVDtBQUNBLFVBQU1GLElBQU4sRUFBWUMsTUFBWixFQUFvQlAsSUFBcEIsRUFBMEJRLFNBQTFCO0FBRUE7QUFDSjtBQUNBO0FBQ0E7O0FBQ0ksU0FBS0wsY0FBTCxHQUFzQkEsY0FBdEI7QUFFQTtBQUNKO0FBQ0E7QUFDQTs7QUFDSSxTQUFLRSxNQUFMLEdBQWNBLE1BQWQ7QUFFQTtBQUNKO0FBQ0E7QUFDQTs7QUFDSSxTQUFLRCxLQUFMLEdBQWEsS0FBS0ssY0FBTCxDQUFvQkwsS0FBcEIsQ0FBYjtBQUVBO0FBQ0o7QUFDQTtBQUNBOztBQUNJLFNBQUtNLFFBQUwsR0FBZ0IsS0FBS0wsTUFBTCxHQUFjLEtBQUtBLE1BQW5DO0FBRUE7QUFDSjtBQUNBO0FBQ0E7O0FBQ0ksU0FBS00sZUFBTCxHQUF1QixJQUFJZCxRQUFKLEVBQXZCO0FBRUE7QUFDSjtBQUNBO0FBQ0E7O0FBQ0ksU0FBS2UsUUFBTCxHQUFnQixDQUFoQjtBQUNEO0FBRUQ7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUNFQyxFQUFBQSxLQUFLLENBQ0hWLGNBQWMsR0FBRyxJQUFJTixRQUFKLEVBRGQsRUFFSE8sS0FBSyxHQUFHWiwrQkFGTCxFQUdIYSxNQUFNLEdBQUdkLHlCQUhOLEVBSUhlLElBSkcsRUFLSEMsTUFMRyxFQU1IO0FBQ0EsU0FBS0osY0FBTCxHQUFzQkEsY0FBdEI7QUFDQSxTQUFLRSxNQUFMLEdBQWNBLE1BQWQ7QUFDQSxTQUFLRCxLQUFMLEdBQWEsS0FBS0ssY0FBTCxDQUFvQkwsS0FBcEIsQ0FBYjtBQUNBLFNBQUtNLFFBQUwsR0FBZ0IsS0FBS0wsTUFBTCxHQUFjLEtBQUtBLE1BQW5DO0FBQ0EsU0FBS00sZUFBTCxHQUF1QixJQUFJZCxRQUFKLEVBQXZCO0FBQ0EsU0FBS2UsUUFBTCxHQUFnQixDQUFoQjtBQUVBTixJQUFBQSxJQUFJLElBQUksTUFBTU8sS0FBTixDQUFZUCxJQUFaLEVBQWtCQyxNQUFsQixDQUFSO0FBQ0Q7QUFFRDtBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFDRU8sRUFBQUEsTUFBTSxDQUFDQyxRQUFELEVBQVdDLElBQVgsRUFBaUJDLEtBQWpCLEVBQXdCO0FBQzVCLFNBQUtDLFFBQUwsQ0FBY0gsUUFBZCxFQUF3QkMsSUFBeEIsRUFBOEJDLEtBQTlCO0FBRUEsU0FBS04sZUFBTCxDQUFxQlEsSUFBckIsQ0FBMEIsS0FBS2hCLGNBQS9CO0FBQ0EsU0FBS1EsZUFBTCxDQUFxQlMsR0FBckIsQ0FBeUJMLFFBQVEsQ0FBQ00sUUFBbEM7QUFFQSxTQUFLVCxRQUFMLEdBQWdCLEtBQUtELGVBQUwsQ0FBcUJDLFFBQXJCLEVBQWhCOztBQUVBLFFBQ0UsS0FBS0EsUUFBTCxHQUFnQmpCLDRCQUFoQixJQUNBLEtBQUtpQixRQUFMLEdBQWdCLEtBQUtGLFFBRnZCLEVBR0U7QUFDQSxXQUFLQyxlQUFMLENBQXFCVyxTQUFyQjtBQUNBLFdBQUtYLGVBQUwsQ0FBcUJZLE1BQXJCLENBQTRCLElBQUksS0FBS1gsUUFBTCxHQUFnQixLQUFLRixRQUFyRDtBQUNBLFdBQUtDLGVBQUwsQ0FBcUJZLE1BQXJCLENBQTRCLEtBQUtuQixLQUFqQztBQUVBVyxNQUFBQSxRQUFRLENBQUNTLFlBQVQsQ0FBc0JDLEdBQXRCLENBQTBCLEtBQUtkLGVBQS9CO0FBQ0Q7QUFDRjtBQUVEO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQ2lCLFNBQVJlLFFBQVEsQ0FBQ0MsSUFBRCxFQUFPO0FBQ3BCLFVBQU07QUFBRUMsTUFBQUEsQ0FBRjtBQUFLQyxNQUFBQSxDQUFMO0FBQVFDLE1BQUFBLENBQVI7QUFBVzFCLE1BQUFBLEtBQVg7QUFBa0JDLE1BQUFBLE1BQWxCO0FBQTBCQyxNQUFBQSxJQUExQjtBQUFnQ0MsTUFBQUEsTUFBaEM7QUFBd0NDLE1BQUFBLFNBQVMsR0FBRztBQUFwRCxRQUE2RG1CLElBQW5FO0FBRUEsV0FBTyxJQUFJMUIsVUFBSixDQUNMLElBQUlKLFFBQUosQ0FBYStCLENBQWIsRUFBZ0JDLENBQWhCLEVBQW1CQyxDQUFuQixDQURLLEVBRUwxQixLQUZLLEVBR0xDLE1BSEssRUFJTEMsSUFKSyxFQUtMUixlQUFlLENBQUNTLE1BQUQsQ0FMVixFQU1MQyxTQU5LLENBQVA7QUFRRDs7QUF6SStDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgREVGQVVMVF9BVFRSQUNJVE9OX1JBRElVUyxcbiAgREVGQVVMVF9BVFRSQUNUSU9OX0ZPUkNFX1NDQUxBUixcbiAgREVGQVVMVF9CRUhBVklPVVJfRUFTSU5HLFxuICBERUZBVUxUX0xJRkUsXG4gIFBBUlRJQ0xFX0xFTkdUSF9TUV9USFJFU0hPTEQsXG59IGZyb20gJy4vY29uc3RhbnRzJztcblxuaW1wb3J0IEJlaGF2aW91ciBmcm9tICcuL0JlaGF2aW91cic7XG5pbXBvcnQgeyBWZWN0b3IzRCB9IGZyb20gJy4uL21hdGgnO1xuaW1wb3J0IHsgZ2V0RWFzaW5nQnlOYW1lIH0gZnJvbSAnLi4vZWFzZSc7XG5pbXBvcnQgeyBCRUhBVklPVVJfVFlQRV9BVFRSQUNUSU9OIGFzIHR5cGUgfSBmcm9tICcuL3R5cGVzJztcblxuLyoqXG4gKiBCZWhhdmlvdXIgdGhhdCBjYXVzZXMgcGFydGljbGVzIHRvIGJlIGF0dHJhY3RlZCB0byBhIHRhcmdldCBwb3NpdGlvbi5cbiAqXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEF0dHJhY3Rpb24gZXh0ZW5kcyBCZWhhdmlvdXIge1xuICAvKipcbiAgICogQ29uc3RydWN0cyBhbiBBdHRyYWN0aW9uIGJlaGF2aW91ciBpbnN0YW5jZS5cbiAgICpcbiAgICogQHBhcmFtIHtWZWN0b3IzRH0gdGFyZ2V0UG9zaXRpb24gLSBUaGUgcG9zaXRpb24gdGhlIHBhcnRpY2xlcyB3aWxsIGJlIGF0dHJhY3RlZCB0b1xuICAgKiBAcGFyYW0ge251bWJlcn0gZm9yY2UgLSBUaGUgYXR0cmFjdGlvbiBmb3JjZSBzY2FsYXIgbXVsdGlwbGllclxuICAgKiBAcGFyYW0ge251bWJlcn0gcmFkaXVzIC0gVGhlIGF0dHJhY3Rpb24gcmFkaXVzXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBbbGlmZT1ERUZBVUxUX0xJRkVdIC0gVGhlIGxpZmUgb2YgdGhlIHBhcnRpY2xlXG4gICAqIEBwYXJhbSB7ZnVuY3Rpb259IFtlYXNpbmc9REVGQVVMVF9CRUhBVklPVVJfRUFTSU5HXSAtIFRoZSBiZWhhdmlvdXIncyBkZWNheWluZyB0cmVuZFxuICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtpc0VuYWJsZWQ9dHJ1ZV0gLSBEZXRlcm1pbmVzIGlmIHRoZSBiZWhhdmlvdXIgd2lsbCBiZSBhcHBsaWVkIG9yIG5vdFxuICAgKiBAcmV0dXJuIHZvaWRcbiAgICovXG4gIGNvbnN0cnVjdG9yKFxuICAgIHRhcmdldFBvc2l0aW9uID0gbmV3IFZlY3RvcjNEKCksXG4gICAgZm9yY2UgPSBERUZBVUxUX0FUVFJBQ1RJT05fRk9SQ0VfU0NBTEFSLFxuICAgIHJhZGl1cyA9IERFRkFVTFRfQVRUUkFDSVRPTl9SQURJVVMsXG4gICAgbGlmZSA9IERFRkFVTFRfTElGRSxcbiAgICBlYXNpbmcgPSBERUZBVUxUX0JFSEFWSU9VUl9FQVNJTkcsXG4gICAgaXNFbmFibGVkID0gdHJ1ZVxuICApIHtcbiAgICBzdXBlcihsaWZlLCBlYXNpbmcsIHR5cGUsIGlzRW5hYmxlZCk7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzYyBUaGUgcG9zaXRpb24gdGhlIHBhcnRpY2xlcyB3aWxsIGJlIGF0dHJhY3RlZCB0b1xuICAgICAqIEB0eXBlIHtWZWN0b3IzRH1cbiAgICAgKi9cbiAgICB0aGlzLnRhcmdldFBvc2l0aW9uID0gdGFyZ2V0UG9zaXRpb247XG5cbiAgICAvKipcbiAgICAgKiBAZGVzYyBUaGUgYXR0cmFjdGlvbiByYWRpdXNcbiAgICAgKiBAdHlwZSB7bnVtYmVyfSAtIHRoZSBhdHRyYWN0aW9uIHJhZGl1c1xuICAgICAqL1xuICAgIHRoaXMucmFkaXVzID0gcmFkaXVzO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2MgVGhlIGF0dHJhY3Rpb24gZm9yY2Ugc2NhbGFyIG11bHRpcGxpZXJcbiAgICAgKiBAdHlwZSB7bnVtYmVyfVxuICAgICAqL1xuICAgIHRoaXMuZm9yY2UgPSB0aGlzLm5vcm1hbGl6ZVZhbHVlKGZvcmNlKTtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjIFRoZSByYWRpdXMgb2YgdGhlIGF0dHJhY3Rpb24gc3F1YXJlZFxuICAgICAqIEB0eXBlIHtudW1iZXJ9XG4gICAgICovXG4gICAgdGhpcy5yYWRpdXNTcSA9IHRoaXMucmFkaXVzICogdGhpcy5yYWRpdXM7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzYyBUaGUgYXR0cmFjdGlvbiBmb3JjZSBpbiAzRCBzcGFjZVxuICAgICAqIEB0eXBlIHtWZWN0b3IzRH1cbiAgICAgKi9cbiAgICB0aGlzLmF0dHJhY3Rpb25Gb3JjZSA9IG5ldyBWZWN0b3IzRCgpO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2MgVGhlIGxpbmVhciBhdHRyYWN0aW9uIGZvcmNlXG4gICAgICogQHR5cGUge251bWJlcn1cbiAgICAgKi9cbiAgICB0aGlzLmxlbmd0aFNxID0gMDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXNldHMgdGhlIGJlaGF2aW91ciBwcm9wZXJ0aWVzLlxuICAgKlxuICAgKiBAcGFyYW0ge1ZlY3RvcjNEfSB0YXJnZXRQb3NpdGlvbiAtIHRoZSBwb3NpdGlvbiB0aGUgcGFydGljbGVzIHdpbGwgYmUgYXR0cmFjdGVkIHRvXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBmb3JjZSAtIHRoZSBhdHRyYWN0aW9uIGZvcmNlIG11bHRpcGxpZXJcbiAgICogQHBhcmFtIHtudW1iZXJ9IHJhZGl1cyAtIHRoZSBhdHRyYWN0aW9uIHJhZGl1c1xuICAgKiBAcGFyYW0ge251bWJlcn0gbGlmZSAtIHRoZSBsaWZlIG9mIHRoZSBwYXJ0aWNsZVxuICAgKiBAcGFyYW0ge2Z1bmN0aW9ufSBlYXNpbmcgLSBUaGUgYmVoYXZpb3VyJ3MgZGVjYXlpbmcgdHJlbmRcbiAgICogQHJldHVybiB2b2lkXG4gICAqL1xuICByZXNldChcbiAgICB0YXJnZXRQb3NpdGlvbiA9IG5ldyBWZWN0b3IzRCgpLFxuICAgIGZvcmNlID0gREVGQVVMVF9BVFRSQUNUSU9OX0ZPUkNFX1NDQUxBUixcbiAgICByYWRpdXMgPSBERUZBVUxUX0FUVFJBQ0lUT05fUkFESVVTLFxuICAgIGxpZmUsXG4gICAgZWFzaW5nXG4gICkge1xuICAgIHRoaXMudGFyZ2V0UG9zaXRpb24gPSB0YXJnZXRQb3NpdGlvbjtcbiAgICB0aGlzLnJhZGl1cyA9IHJhZGl1cztcbiAgICB0aGlzLmZvcmNlID0gdGhpcy5ub3JtYWxpemVWYWx1ZShmb3JjZSk7XG4gICAgdGhpcy5yYWRpdXNTcSA9IHRoaXMucmFkaXVzICogdGhpcy5yYWRpdXM7XG4gICAgdGhpcy5hdHRyYWN0aW9uRm9yY2UgPSBuZXcgVmVjdG9yM0QoKTtcbiAgICB0aGlzLmxlbmd0aFNxID0gMDtcblxuICAgIGxpZmUgJiYgc3VwZXIucmVzZXQobGlmZSwgZWFzaW5nKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNdXRhdGVzIHBhcnRpY2xlIGFjY2VsZXJhdGlvbi5cbiAgICpcbiAgICogQHBhcmFtIHtQYXJ0aWNsZX0gcGFydGljbGUgLSB0aGUgcGFydGljbGUgdG8gYXBwbHkgdGhlIGJlaGF2aW91ciB0b1xuICAgKiBAcGFyYW0ge251bWJlcn0gdGltZSAtIHBhcnRpY2xlIGVuZ2luZSB0aW1lXG4gICAqIEBwYXJhbSB7aW50ZWdlcn0gaW5kZXggLSB0aGUgcGFydGljbGUgaW5kZXhcbiAgICogQHJldHVybiB2b2lkXG4gICAqL1xuICBtdXRhdGUocGFydGljbGUsIHRpbWUsIGluZGV4KSB7XG4gICAgdGhpcy5lbmVyZ2l6ZShwYXJ0aWNsZSwgdGltZSwgaW5kZXgpO1xuXG4gICAgdGhpcy5hdHRyYWN0aW9uRm9yY2UuY29weSh0aGlzLnRhcmdldFBvc2l0aW9uKTtcbiAgICB0aGlzLmF0dHJhY3Rpb25Gb3JjZS5zdWIocGFydGljbGUucG9zaXRpb24pO1xuXG4gICAgdGhpcy5sZW5ndGhTcSA9IHRoaXMuYXR0cmFjdGlvbkZvcmNlLmxlbmd0aFNxKCk7XG5cbiAgICBpZiAoXG4gICAgICB0aGlzLmxlbmd0aFNxID4gUEFSVElDTEVfTEVOR1RIX1NRX1RIUkVTSE9MRCAmJlxuICAgICAgdGhpcy5sZW5ndGhTcSA8IHRoaXMucmFkaXVzU3FcbiAgICApIHtcbiAgICAgIHRoaXMuYXR0cmFjdGlvbkZvcmNlLm5vcm1hbGl6ZSgpO1xuICAgICAgdGhpcy5hdHRyYWN0aW9uRm9yY2Uuc2NhbGFyKDEgLSB0aGlzLmxlbmd0aFNxIC8gdGhpcy5yYWRpdXNTcSk7XG4gICAgICB0aGlzLmF0dHJhY3Rpb25Gb3JjZS5zY2FsYXIodGhpcy5mb3JjZSk7XG5cbiAgICAgIHBhcnRpY2xlLmFjY2VsZXJhdGlvbi5hZGQodGhpcy5hdHRyYWN0aW9uRm9yY2UpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgQm9keSBpbml0aWFsaXplciBmcm9tIEpTT04uXG4gICAqXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBqc29uIC0gVGhlIEpTT04gdG8gY29uc3RydWN0IHRoZSBpbnN0YW5jZSBmcm9tLlxuICAgKiBAcHJvcGVydHkge251bWJlcn0ganNvbi54IC0gVGhlIHRhcmdldCBwb3NpdGlvbiB4IHZhbHVlXG4gICAqIEBwcm9wZXJ0eSB7bnVtYmVyfSBqc29uLnkgLSBUaGUgdGFyZ2V0IHBvc2l0aW9uIHkgdmFsdWVcbiAgICogQHByb3BlcnR5IHtudW1iZXJ9IGpzb24ueiAtIFRoZSB0YXJnZXQgcG9zaXRpb24geiB2YWx1ZVxuICAgKiBAcHJvcGVydHkge251bWJlcn0ganNvbi5mb3JjZSAtIFRoZSBhdHRyYWN0aW9uIGZvcmNlIHNjYWxhciBtdWx0aXBsaWVyXG4gICAqIEBwcm9wZXJ0eSB7bnVtYmVyfSBqc29uLmxpZmUgLSBUaGUgbGlmZSBvZiB0aGUgcGFydGljbGVcbiAgICogQHByb3BlcnR5IHtzdHJpbmd9IGpzb24uZWFzaW5nIC0gVGhlIGJlaGF2aW91cidzIGRlY2F5aW5nIHRyZW5kXG4gICAqIEByZXR1cm4ge0JvZHl9XG4gICAqL1xuICBzdGF0aWMgZnJvbUpTT04oanNvbikge1xuICAgIGNvbnN0IHsgeCwgeSwgeiwgZm9yY2UsIHJhZGl1cywgbGlmZSwgZWFzaW5nLCBpc0VuYWJsZWQgPSB0cnVlIH0gPSBqc29uO1xuXG4gICAgcmV0dXJuIG5ldyBBdHRyYWN0aW9uKFxuICAgICAgbmV3IFZlY3RvcjNEKHgsIHksIHopLFxuICAgICAgZm9yY2UsXG4gICAgICByYWRpdXMsXG4gICAgICBsaWZlLFxuICAgICAgZ2V0RWFzaW5nQnlOYW1lKGVhc2luZyksXG4gICAgICBpc0VuYWJsZWRcbiAgICApO1xuICB9XG59XG4iXX0= ================================================ FILE: packages/sdk/lib/core/libs/three-nebula/behaviour/Behaviour.js ================================================ import { DEFAULT_BEHAVIOUR_EASING, DEFAULT_LIFE } from './constants'; import { BEHAVIOUR_TYPE_ABSTRACT } from './types'; import { MEASURE } from '../constants'; import isNumber from '../utils/isNumber.js'; import { uid } from '../utils'; /** * The base behaviour class. * Behaviours manage a particle's behaviour after they have been emitted. * */ export default class Behaviour { /** * Constructs a Behaviour instance. * * @param {number} [life=Infinity] - The life of the behaviour * @param {function} [easing=DEFAULT_BEHAVIOUR_EASING] - The behaviour's decaying trend * @param {string} [type=BEHAVIOUR_TYPE_ABSTRACT] - The behaviour type * @param {boolean} [isEnabled=true] - Determines if the behaviour will be applied or not * @return void */ constructor(life = Infinity, easing = DEFAULT_BEHAVIOUR_EASING, type = BEHAVIOUR_TYPE_ABSTRACT, isEnabled = true) { /** * @desc The class type. * @type {string} */ this.type = type; /** * @desc Determines if the behaviour will be applied or not * @type {boolean} */ this.isEnabled = isEnabled; /** * @desc The behaviour's id * @type {string} id */ this.id = `behaviour-${uid()}`; /** * @desc The life of the behaviour * @type {number} */ this.life = life; /** * @desc The behaviour's decaying trend * @type {function} */ this.easing = easing; /** * @desc The age of the behaviour * @type {number} */ this.age = 0; /** * @desc The energy of the behaviour * @type {number} */ this.energy = 1; /** * Determines if the behaviour is dead or not * @type {boolean} */ this.dead = false; } /** * Reset this behaviour's parameters * * @param {number} [life=DEFAULT_LIFE] - The life of the behaviour * @param {function} [easing=DEFAULT_BEHAVIOUR_EASING] - The behaviour's decaying trend */ reset(life = DEFAULT_LIFE, easing = DEFAULT_BEHAVIOUR_EASING) { this.life = life; this.easing = easing || DEFAULT_BEHAVIOUR_EASING; } /** * Ensures that life is infinity if an invalid value is supplied. * * @return void */ set life(life) { this._life = isNumber(life) ? life : DEFAULT_LIFE; } /** * Gets the behaviour's life. * * @return {Number} */ get life() { return this._life; } /** * Normalize a force by 1:100; * * @param {Vector3D} force - The force to normalize. * @return {Vector3D} */ normalizeForce(force) { return force.scalar(MEASURE); } /** * Normalize a value by 1:100; * * @param {number} value - The value to normalize * @return {number} */ normalizeValue(value) { return value * MEASURE; } /** * Set the behaviour's initial properties on the particle. * * @param {Particle} particle * @abstract */ initialize(particle) {} // eslint-disable-line /** * Apply behaviour to the target as a factor of time. * Internally calls the mutate method to change properties on the target * Will not do so if the behaviour is disabled * * @abstract * @param {Particle|Emitter} target - The particle or emitter to apply the behaviour to * @param {Number} time - the system integration time * @param {integer} index - the target index * @return mixed */ applyBehaviour(target, time, index) { if (!this.isEnabled) { return; } this.mutate(target, time, index); } /** * Change the target's properties according to specific behaviour logic. * * @abstract * @param {Particle|Emitter} target - The particle or emitter to apply the behaviour to * @param {Number} time - the system integration time * @return mixed */ mutate(target, time, index) {} // eslint-disable-line /** * Compares the age of the behaviour vs integration time and determines * if the behaviour should be set to dead or not. * Sets the behaviour energy as a factor of particle age and life. * * @param {Particle} particle - The particle to apply the behaviour to * @param {Number} time - the system integration time * @return void */ energize(particle, time) { if (this.dead) { return; } this.age += time; if (this.age >= this.life) { this.energy = 0; this.dead = true; return; } const scale = this.easing(particle.age / particle.life); this.energy = Math.max(1 - scale, 0); } /** * Destory this behaviour. * * @abstract */ destroy() {} /** * Returns a new instance of the behaviour from the JSON object passed. * * @abstract * @param {object} json - JSON object containing the required constructor properties * @return {Behaviour} */ fromJSON(json) {} // eslint-disable-line } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9iZWhhdmlvdXIvQmVoYXZpb3VyLmpzIl0sIm5hbWVzIjpbIkRFRkFVTFRfQkVIQVZJT1VSX0VBU0lORyIsIkRFRkFVTFRfTElGRSIsIkJFSEFWSU9VUl9UWVBFX0FCU1RSQUNUIiwiTUVBU1VSRSIsImlzTnVtYmVyIiwidWlkIiwiQmVoYXZpb3VyIiwiY29uc3RydWN0b3IiLCJsaWZlIiwiSW5maW5pdHkiLCJlYXNpbmciLCJ0eXBlIiwiaXNFbmFibGVkIiwiaWQiLCJhZ2UiLCJlbmVyZ3kiLCJkZWFkIiwicmVzZXQiLCJfbGlmZSIsIm5vcm1hbGl6ZUZvcmNlIiwiZm9yY2UiLCJzY2FsYXIiLCJub3JtYWxpemVWYWx1ZSIsInZhbHVlIiwiaW5pdGlhbGl6ZSIsInBhcnRpY2xlIiwiYXBwbHlCZWhhdmlvdXIiLCJ0YXJnZXQiLCJ0aW1lIiwiaW5kZXgiLCJtdXRhdGUiLCJlbmVyZ2l6ZSIsInNjYWxlIiwiTWF0aCIsIm1heCIsImRlc3Ryb3kiLCJmcm9tSlNPTiIsImpzb24iXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLHdCQUFULEVBQW1DQyxZQUFuQyxRQUF1RCxhQUF2RDtBQUVBLFNBQVNDLHVCQUFULFFBQXdDLFNBQXhDO0FBQ0EsU0FBU0MsT0FBVCxRQUF3QixjQUF4QjtBQUNBLE9BQU9DLFFBQVAsTUFBcUIsaUJBQXJCO0FBQ0EsU0FBU0MsR0FBVCxRQUFvQixVQUFwQjtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBQ0EsZUFBZSxNQUFNQyxTQUFOLENBQWdCO0FBQzdCO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNFQyxFQUFBQSxXQUFXLENBQ1RDLElBQUksR0FBR0MsUUFERSxFQUVUQyxNQUFNLEdBQUdWLHdCQUZBLEVBR1RXLElBQUksR0FBR1QsdUJBSEUsRUFJVFUsU0FBUyxHQUFHLElBSkgsRUFLVDtBQUNBO0FBQ0o7QUFDQTtBQUNBO0FBQ0ksU0FBS0QsSUFBTCxHQUFZQSxJQUFaO0FBRUE7QUFDSjtBQUNBO0FBQ0E7O0FBQ0ksU0FBS0MsU0FBTCxHQUFpQkEsU0FBakI7QUFFQTtBQUNKO0FBQ0E7QUFDQTs7QUFDSSxTQUFLQyxFQUFMLEdBQVcsYUFBWVIsR0FBRyxFQUFHLEVBQTdCO0FBRUE7QUFDSjtBQUNBO0FBQ0E7O0FBQ0ksU0FBS0csSUFBTCxHQUFZQSxJQUFaO0FBRUE7QUFDSjtBQUNBO0FBQ0E7O0FBQ0ksU0FBS0UsTUFBTCxHQUFjQSxNQUFkO0FBRUE7QUFDSjtBQUNBO0FBQ0E7O0FBQ0ksU0FBS0ksR0FBTCxHQUFXLENBQVg7QUFFQTtBQUNKO0FBQ0E7QUFDQTs7QUFDSSxTQUFLQyxNQUFMLEdBQWMsQ0FBZDtBQUVBO0FBQ0o7QUFDQTtBQUNBOztBQUNJLFNBQUtDLElBQUwsR0FBWSxLQUFaO0FBQ0Q7QUFFRDtBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUNFQyxFQUFBQSxLQUFLLENBQUNULElBQUksR0FBR1AsWUFBUixFQUFzQlMsTUFBTSxHQUFHVix3QkFBL0IsRUFBeUQ7QUFDNUQsU0FBS1EsSUFBTCxHQUFZQSxJQUFaO0FBQ0EsU0FBS0UsTUFBTCxHQUFjQSxNQUFNLElBQUlWLHdCQUF4QjtBQUNEO0FBRUQ7QUFDRjtBQUNBO0FBQ0E7QUFDQTs7O0FBQ1UsTUFBSlEsSUFBSSxDQUFDQSxJQUFELEVBQU87QUFDYixTQUFLVSxLQUFMLEdBQWFkLFFBQVEsQ0FBQ0ksSUFBRCxDQUFSLEdBQWlCQSxJQUFqQixHQUF3QlAsWUFBckM7QUFDRDtBQUVEO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7OztBQUNVLE1BQUpPLElBQUksR0FBRztBQUNULFdBQU8sS0FBS1UsS0FBWjtBQUNEO0FBRUQ7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFDRUMsRUFBQUEsY0FBYyxDQUFDQyxLQUFELEVBQVE7QUFDcEIsV0FBT0EsS0FBSyxDQUFDQyxNQUFOLENBQWFsQixPQUFiLENBQVA7QUFDRDtBQUVEO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQ0VtQixFQUFBQSxjQUFjLENBQUNDLEtBQUQsRUFBUTtBQUNwQixXQUFPQSxLQUFLLEdBQUdwQixPQUFmO0FBQ0Q7QUFFRDtBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUNFcUIsRUFBQUEsVUFBVSxDQUFDQyxRQUFELEVBQVcsQ0FBRSxDQXhITSxDQXdITDs7QUFFeEI7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQ0VDLEVBQUFBLGNBQWMsQ0FBQ0MsTUFBRCxFQUFTQyxJQUFULEVBQWVDLEtBQWYsRUFBc0I7QUFDbEMsUUFBSSxDQUFDLEtBQUtqQixTQUFWLEVBQXFCO0FBQ25CO0FBQ0Q7O0FBRUQsU0FBS2tCLE1BQUwsQ0FBWUgsTUFBWixFQUFvQkMsSUFBcEIsRUFBMEJDLEtBQTFCO0FBQ0Q7QUFFRDtBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFDRUMsRUFBQUEsTUFBTSxDQUFDSCxNQUFELEVBQVNDLElBQVQsRUFBZUMsS0FBZixFQUFzQixDQUFFLENBckpELENBcUpFOztBQUUvQjtBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUNFRSxFQUFBQSxRQUFRLENBQUNOLFFBQUQsRUFBV0csSUFBWCxFQUFpQjtBQUN2QixRQUFJLEtBQUtaLElBQVQsRUFBZTtBQUNiO0FBQ0Q7O0FBRUQsU0FBS0YsR0FBTCxJQUFZYyxJQUFaOztBQUVBLFFBQUksS0FBS2QsR0FBTCxJQUFZLEtBQUtOLElBQXJCLEVBQTJCO0FBQ3pCLFdBQUtPLE1BQUwsR0FBYyxDQUFkO0FBQ0EsV0FBS0MsSUFBTCxHQUFZLElBQVo7QUFFQTtBQUNEOztBQUVELFVBQU1nQixLQUFLLEdBQUcsS0FBS3RCLE1BQUwsQ0FBWWUsUUFBUSxDQUFDWCxHQUFULEdBQWVXLFFBQVEsQ0FBQ2pCLElBQXBDLENBQWQ7QUFFQSxTQUFLTyxNQUFMLEdBQWNrQixJQUFJLENBQUNDLEdBQUwsQ0FBUyxJQUFJRixLQUFiLEVBQW9CLENBQXBCLENBQWQ7QUFDRDtBQUVEO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7OztBQUNFRyxFQUFBQSxPQUFPLEdBQUcsQ0FBRTtBQUVaO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFDRUMsRUFBQUEsUUFBUSxDQUFDQyxJQUFELEVBQU8sQ0FBRSxDQWpNWSxDQWlNWDs7O0FBak1XIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgREVGQVVMVF9CRUhBVklPVVJfRUFTSU5HLCBERUZBVUxUX0xJRkUgfSBmcm9tICcuL2NvbnN0YW50cyc7XG5cbmltcG9ydCB7IEJFSEFWSU9VUl9UWVBFX0FCU1RSQUNUIH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBNRUFTVVJFIH0gZnJvbSAnLi4vY29uc3RhbnRzJztcbmltcG9ydCBpc051bWJlciBmcm9tICdsb2Rhc2gvaXNOdW1iZXInO1xuaW1wb3J0IHsgdWlkIH0gZnJvbSAnLi4vdXRpbHMnO1xuXG4vKipcbiAqIFRoZSBiYXNlIGJlaGF2aW91ciBjbGFzcy5cbiAqIEJlaGF2aW91cnMgbWFuYWdlIGEgcGFydGljbGUncyBiZWhhdmlvdXIgYWZ0ZXIgdGhleSBoYXZlIGJlZW4gZW1pdHRlZC5cbiAqXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEJlaGF2aW91ciB7XG4gIC8qKlxuICAgKiBDb25zdHJ1Y3RzIGEgQmVoYXZpb3VyIGluc3RhbmNlLlxuICAgKlxuICAgKiBAcGFyYW0ge251bWJlcn0gW2xpZmU9SW5maW5pdHldIC0gVGhlIGxpZmUgb2YgdGhlIGJlaGF2aW91clxuICAgKiBAcGFyYW0ge2Z1bmN0aW9ufSBbZWFzaW5nPURFRkFVTFRfQkVIQVZJT1VSX0VBU0lOR10gLSBUaGUgYmVoYXZpb3VyJ3MgZGVjYXlpbmcgdHJlbmRcbiAgICogQHBhcmFtIHtzdHJpbmd9IFt0eXBlPUJFSEFWSU9VUl9UWVBFX0FCU1RSQUNUXSAtIFRoZSBiZWhhdmlvdXIgdHlwZVxuICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtpc0VuYWJsZWQ9dHJ1ZV0gLSBEZXRlcm1pbmVzIGlmIHRoZSBiZWhhdmlvdXIgd2lsbCBiZSBhcHBsaWVkIG9yIG5vdFxuICAgKiBAcmV0dXJuIHZvaWRcbiAgICovXG4gIGNvbnN0cnVjdG9yKFxuICAgIGxpZmUgPSBJbmZpbml0eSxcbiAgICBlYXNpbmcgPSBERUZBVUxUX0JFSEFWSU9VUl9FQVNJTkcsXG4gICAgdHlwZSA9IEJFSEFWSU9VUl9UWVBFX0FCU1RSQUNULFxuICAgIGlzRW5hYmxlZCA9IHRydWVcbiAgKSB7XG4gICAgLyoqXG4gICAgICogQGRlc2MgVGhlIGNsYXNzIHR5cGUuXG4gICAgICogQHR5cGUge3N0cmluZ31cbiAgICAgKi9cbiAgICB0aGlzLnR5cGUgPSB0eXBlO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2MgRGV0ZXJtaW5lcyBpZiB0aGUgYmVoYXZpb3VyIHdpbGwgYmUgYXBwbGllZCBvciBub3RcbiAgICAgKiBAdHlwZSB7Ym9vbGVhbn1cbiAgICAgKi9cbiAgICB0aGlzLmlzRW5hYmxlZCA9IGlzRW5hYmxlZDtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjIFRoZSBiZWhhdmlvdXIncyBpZFxuICAgICAqIEB0eXBlIHtzdHJpbmd9IGlkXG4gICAgICovXG4gICAgdGhpcy5pZCA9IGBiZWhhdmlvdXItJHt1aWQoKX1gO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2MgVGhlIGxpZmUgb2YgdGhlIGJlaGF2aW91clxuICAgICAqIEB0eXBlIHtudW1iZXJ9XG4gICAgICovXG4gICAgdGhpcy5saWZlID0gbGlmZTtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjIFRoZSBiZWhhdmlvdXIncyBkZWNheWluZyB0cmVuZFxuICAgICAqIEB0eXBlIHtmdW5jdGlvbn1cbiAgICAgKi9cbiAgICB0aGlzLmVhc2luZyA9IGVhc2luZztcblxuICAgIC8qKlxuICAgICAqIEBkZXNjIFRoZSBhZ2Ugb2YgdGhlIGJlaGF2aW91clxuICAgICAqIEB0eXBlIHtudW1iZXJ9XG4gICAgICovXG4gICAgdGhpcy5hZ2UgPSAwO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2MgVGhlIGVuZXJneSBvZiB0aGUgYmVoYXZpb3VyXG4gICAgICogQHR5cGUge251bWJlcn1cbiAgICAgKi9cbiAgICB0aGlzLmVuZXJneSA9IDE7XG5cbiAgICAvKipcbiAgICAgKiBEZXRlcm1pbmVzIGlmIHRoZSBiZWhhdmlvdXIgaXMgZGVhZCBvciBub3RcbiAgICAgKiBAdHlwZSB7Ym9vbGVhbn1cbiAgICAgKi9cbiAgICB0aGlzLmRlYWQgPSBmYWxzZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXNldCB0aGlzIGJlaGF2aW91cidzIHBhcmFtZXRlcnNcbiAgICpcbiAgICogQHBhcmFtIHtudW1iZXJ9IFtsaWZlPURFRkFVTFRfTElGRV0gLSBUaGUgbGlmZSBvZiB0aGUgYmVoYXZpb3VyXG4gICAqIEBwYXJhbSB7ZnVuY3Rpb259IFtlYXNpbmc9REVGQVVMVF9CRUhBVklPVVJfRUFTSU5HXSAtIFRoZSBiZWhhdmlvdXIncyBkZWNheWluZyB0cmVuZFxuICAgKi9cbiAgcmVzZXQobGlmZSA9IERFRkFVTFRfTElGRSwgZWFzaW5nID0gREVGQVVMVF9CRUhBVklPVVJfRUFTSU5HKSB7XG4gICAgdGhpcy5saWZlID0gbGlmZTtcbiAgICB0aGlzLmVhc2luZyA9IGVhc2luZyB8fCBERUZBVUxUX0JFSEFWSU9VUl9FQVNJTkc7XG4gIH1cblxuICAvKipcbiAgICogRW5zdXJlcyB0aGF0IGxpZmUgaXMgaW5maW5pdHkgaWYgYW4gaW52YWxpZCB2YWx1ZSBpcyBzdXBwbGllZC5cbiAgICpcbiAgICogQHJldHVybiB2b2lkXG4gICAqL1xuICBzZXQgbGlmZShsaWZlKSB7XG4gICAgdGhpcy5fbGlmZSA9IGlzTnVtYmVyKGxpZmUpID8gbGlmZSA6IERFRkFVTFRfTElGRTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBiZWhhdmlvdXIncyBsaWZlLlxuICAgKlxuICAgKiBAcmV0dXJuIHtOdW1iZXJ9XG4gICAqL1xuICBnZXQgbGlmZSgpIHtcbiAgICByZXR1cm4gdGhpcy5fbGlmZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBOb3JtYWxpemUgYSBmb3JjZSBieSAxOjEwMDtcbiAgICpcbiAgICogQHBhcmFtIHtWZWN0b3IzRH0gZm9yY2UgLSBUaGUgZm9yY2UgdG8gbm9ybWFsaXplLlxuICAgKiBAcmV0dXJuIHtWZWN0b3IzRH1cbiAgICovXG4gIG5vcm1hbGl6ZUZvcmNlKGZvcmNlKSB7XG4gICAgcmV0dXJuIGZvcmNlLnNjYWxhcihNRUFTVVJFKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBOb3JtYWxpemUgYSB2YWx1ZSBieSAxOjEwMDtcbiAgICpcbiAgICogQHBhcmFtIHtudW1iZXJ9IHZhbHVlIC0gVGhlIHZhbHVlIHRvIG5vcm1hbGl6ZVxuICAgKiBAcmV0dXJuIHtudW1iZXJ9XG4gICAqL1xuICBub3JtYWxpemVWYWx1ZSh2YWx1ZSkge1xuICAgIHJldHVybiB2YWx1ZSAqIE1FQVNVUkU7XG4gIH1cblxuICAvKipcbiAgICogU2V0IHRoZSBiZWhhdmlvdXIncyBpbml0aWFsIHByb3BlcnRpZXMgb24gdGhlIHBhcnRpY2xlLlxuICAgKlxuICAgKiBAcGFyYW0ge1BhcnRpY2xlfSBwYXJ0aWNsZVxuICAgKiBAYWJzdHJhY3RcbiAgICovXG4gIGluaXRpYWxpemUocGFydGljbGUpIHt9IC8vIGVzbGludC1kaXNhYmxlLWxpbmVcblxuICAvKipcbiAgICogQXBwbHkgYmVoYXZpb3VyIHRvIHRoZSB0YXJnZXQgYXMgYSBmYWN0b3Igb2YgdGltZS5cbiAgICogSW50ZXJuYWxseSBjYWxscyB0aGUgbXV0YXRlIG1ldGhvZCB0byBjaGFuZ2UgcHJvcGVydGllcyBvbiB0aGUgdGFyZ2V0XG4gICAqIFdpbGwgbm90IGRvIHNvIGlmIHRoZSBiZWhhdmlvdXIgaXMgZGlzYWJsZWRcbiAgICpcbiAgICogQGFic3RyYWN0XG4gICAqIEBwYXJhbSB7UGFydGljbGV8RW1pdHRlcn0gdGFyZ2V0IC0gVGhlIHBhcnRpY2xlIG9yIGVtaXR0ZXIgdG8gYXBwbHkgdGhlIGJlaGF2aW91ciB0b1xuICAgKiBAcGFyYW0ge051bWJlcn0gdGltZSAtIHRoZSBzeXN0ZW0gaW50ZWdyYXRpb24gdGltZVxuICAgKiBAcGFyYW0ge2ludGVnZXJ9IGluZGV4IC0gdGhlIHRhcmdldCBpbmRleFxuICAgKiBAcmV0dXJuIG1peGVkXG4gICAqL1xuICBhcHBseUJlaGF2aW91cih0YXJnZXQsIHRpbWUsIGluZGV4KSB7XG4gICAgaWYgKCF0aGlzLmlzRW5hYmxlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMubXV0YXRlKHRhcmdldCwgdGltZSwgaW5kZXgpO1xuICB9XG5cbiAgLyoqXG4gICAqIENoYW5nZSB0aGUgdGFyZ2V0J3MgcHJvcGVydGllcyBhY2NvcmRpbmcgdG8gc3BlY2lmaWMgYmVoYXZpb3VyIGxvZ2ljLlxuICAgKlxuICAgKiBAYWJzdHJhY3RcbiAgICogQHBhcmFtIHtQYXJ0aWNsZXxFbWl0dGVyfSB0YXJnZXQgLSBUaGUgcGFydGljbGUgb3IgZW1pdHRlciB0byBhcHBseSB0aGUgYmVoYXZpb3VyIHRvXG4gICAqIEBwYXJhbSB7TnVtYmVyfSB0aW1lIC0gdGhlIHN5c3RlbSBpbnRlZ3JhdGlvbiB0aW1lXG4gICAqIEByZXR1cm4gbWl4ZWRcbiAgICovXG4gIG11dGF0ZSh0YXJnZXQsIHRpbWUsIGluZGV4KSB7fSAvLyBlc2xpbnQtZGlzYWJsZS1saW5lXG5cbiAgLyoqXG4gICAqIENvbXBhcmVzIHRoZSBhZ2Ugb2YgdGhlIGJlaGF2aW91ciB2cyBpbnRlZ3JhdGlvbiB0aW1lIGFuZCBkZXRlcm1pbmVzXG4gICAqIGlmIHRoZSBiZWhhdmlvdXIgc2hvdWxkIGJlIHNldCB0byBkZWFkIG9yIG5vdC5cbiAgICogU2V0cyB0aGUgYmVoYXZpb3VyIGVuZXJneSBhcyBhIGZhY3RvciBvZiBwYXJ0aWNsZSBhZ2UgYW5kIGxpZmUuXG4gICAqXG4gICAqIEBwYXJhbSB7UGFydGljbGV9IHBhcnRpY2xlIC0gVGhlIHBhcnRpY2xlIHRvIGFwcGx5IHRoZSBiZWhhdmlvdXIgdG9cbiAgICogQHBhcmFtIHtOdW1iZXJ9IHRpbWUgLSB0aGUgc3lzdGVtIGludGVncmF0aW9uIHRpbWVcbiAgICogQHJldHVybiB2b2lkXG4gICAqL1xuICBlbmVyZ2l6ZShwYXJ0aWNsZSwgdGltZSkge1xuICAgIGlmICh0aGlzLmRlYWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmFnZSArPSB0aW1lO1xuXG4gICAgaWYgKHRoaXMuYWdlID49IHRoaXMubGlmZSkge1xuICAgICAgdGhpcy5lbmVyZ3kgPSAwO1xuICAgICAgdGhpcy5kZWFkID0gdHJ1ZTtcblxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHNjYWxlID0gdGhpcy5lYXNpbmcocGFydGljbGUuYWdlIC8gcGFydGljbGUubGlmZSk7XG5cbiAgICB0aGlzLmVuZXJneSA9IE1hdGgubWF4KDEgLSBzY2FsZSwgMCk7XG4gIH1cblxuICAvKipcbiAgICogRGVzdG9yeSB0aGlzIGJlaGF2aW91ci5cbiAgICpcbiAgICogQGFic3RyYWN0XG4gICAqL1xuICBkZXN0cm95KCkge31cblxuICAvKipcbiAgICogUmV0dXJucyBhIG5ldyBpbnN0YW5jZSBvZiB0aGUgYmVoYXZpb3VyIGZyb20gdGhlIEpTT04gb2JqZWN0IHBhc3NlZC5cbiAgICpcbiAgICogQGFic3RyYWN0XG4gICAqIEBwYXJhbSB7b2JqZWN0fSBqc29uIC0gSlNPTiBvYmplY3QgY29udGFpbmluZyB0aGUgcmVxdWlyZWQgY29uc3RydWN0b3IgcHJvcGVydGllc1xuICAgKiBAcmV0dXJuIHtCZWhhdmlvdXJ9XG4gICAqL1xuICBmcm9tSlNPTihqc29uKSB7fSAvLyBlc2xpbnQtZGlzYWJsZS1saW5lXG59XG4iXX0= ================================================ FILE: packages/sdk/lib/core/libs/three-nebula/behaviour/Collision.js ================================================ import Behaviour from './Behaviour'; import { Vector3D } from '../math'; import { BEHAVIOUR_TYPE_COLLISION as type } from './types'; /** * Behaviour that causes particles to move away from other particles they collide with. */ export default class Collision extends Behaviour { /** * Constructs a Collision behaviour instance. * * @param {Emitter} emitter - The emitter containing the particles to detect collisions against * @param {boolean} useMass - Determiens whether to use mass or not * @param {function} onCollide - Function to call when particles collide * @param {number} life - The life of the particle * @param {function} easing - The behaviour's decaying trend * @param {boolean} [isEnabled=true] - Determines if the behaviour will be applied or not * @return void */ constructor(emitter, useMass, onCollide, life, easing, isEnabled = true) { super(life, easing, type, isEnabled); this.reset(emitter, useMass, onCollide); } /** * Resets the behaviour properties. * * @param {Emitter} emitter - The emitter containing the particles to detect collisions against * @param {boolean} useMass - Determiens whether to use mass or not * @param {function} onCollide - Function to call when particles collide * @param {number} life - The life of the particle * @param {function} easing - The behaviour's decaying trend * @return void */ reset(emitter, useMass, onCollide, life, easing) { this.emitter = emitter; this.useMass = useMass; this.onCollide = onCollide; this.particles = []; this.delta = new Vector3D(); life && super.reset(life, easing); } /** * Detects collisions with other particles and calls the * onCollide function on colliding particles. * * @param {Particle} particle - the particle to apply the behaviour to * @param {number} time - particle engine time * @param {integer} index - the particle index * @return void */ mutate(particle, time, index) { const particles = this.emitter ? this.emitter.particles.slice(index) : this.particles.slice(index); let otherParticle, lengthSq, overlap, distance, averageMass1, averageMass2; let i = particles.length; while (i--) { otherParticle = particles[i]; if (otherParticle == particle) { continue; } this.delta.copy(otherParticle.position).sub(particle.position); lengthSq = this.delta.lengthSq(); distance = particle.radius + otherParticle.radius; if (lengthSq <= distance * distance) { overlap = distance - Math.sqrt(lengthSq); overlap += 0.5; averageMass1 = this._getAverageMass(particle, otherParticle); averageMass2 = this._getAverageMass(otherParticle, particle); particle.position.add(this.delta.clone().normalize().scalar(overlap * -averageMass1)); otherParticle.position.add(this.delta.normalize().scalar(overlap * averageMass2)); this.onCollide && this.onCollide(particle, otherParticle); } } } /** * Gets the average mass of both particles. * * @param {Particle} particleA - The first particle * @param {Particle} particleB - The second particle * @return {number} */ _getAverageMass(particleA, particleB) { return this.useMass ? particleB.mass / (particleA.mass + particleB.mass) : 0.5; } // TODO fromJSON(json) {} // eslint-disable-line } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9iZWhhdmlvdXIvQ29sbGlzaW9uLmpzIl0sIm5hbWVzIjpbIkJlaGF2aW91ciIsIlZlY3RvcjNEIiwiQkVIQVZJT1VSX1RZUEVfQ09MTElTSU9OIiwidHlwZSIsIkNvbGxpc2lvbiIsImNvbnN0cnVjdG9yIiwiZW1pdHRlciIsInVzZU1hc3MiLCJvbkNvbGxpZGUiLCJsaWZlIiwiZWFzaW5nIiwiaXNFbmFibGVkIiwicmVzZXQiLCJwYXJ0aWNsZXMiLCJkZWx0YSIsIm11dGF0ZSIsInBhcnRpY2xlIiwidGltZSIsImluZGV4Iiwic2xpY2UiLCJvdGhlclBhcnRpY2xlIiwibGVuZ3RoU3EiLCJvdmVybGFwIiwiZGlzdGFuY2UiLCJhdmVyYWdlTWFzczEiLCJhdmVyYWdlTWFzczIiLCJpIiwibGVuZ3RoIiwiY29weSIsInBvc2l0aW9uIiwic3ViIiwicmFkaXVzIiwiTWF0aCIsInNxcnQiLCJfZ2V0QXZlcmFnZU1hc3MiLCJhZGQiLCJjbG9uZSIsIm5vcm1hbGl6ZSIsInNjYWxhciIsInBhcnRpY2xlQSIsInBhcnRpY2xlQiIsIm1hc3MiLCJmcm9tSlNPTiIsImpzb24iXSwibWFwcGluZ3MiOiJBQUFBLE9BQU9BLFNBQVAsTUFBc0IsYUFBdEI7QUFDQSxTQUFTQyxRQUFULFFBQXlCLFNBQXpCO0FBQ0EsU0FBU0Msd0JBQXdCLElBQUlDLElBQXJDLFFBQWlELFNBQWpEO0FBRUE7QUFDQTtBQUNBOztBQUNBLGVBQWUsTUFBTUMsU0FBTixTQUF3QkosU0FBeEIsQ0FBa0M7QUFDL0M7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNFSyxFQUFBQSxXQUFXLENBQUNDLE9BQUQsRUFBVUMsT0FBVixFQUFtQkMsU0FBbkIsRUFBOEJDLElBQTlCLEVBQW9DQyxNQUFwQyxFQUE0Q0MsU0FBUyxHQUFHLElBQXhELEVBQThEO0FBQ3ZFLFVBQU1GLElBQU4sRUFBWUMsTUFBWixFQUFvQlAsSUFBcEIsRUFBMEJRLFNBQTFCO0FBRUEsU0FBS0MsS0FBTCxDQUFXTixPQUFYLEVBQW9CQyxPQUFwQixFQUE2QkMsU0FBN0I7QUFDRDtBQUVEO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFDRUksRUFBQUEsS0FBSyxDQUFDTixPQUFELEVBQVVDLE9BQVYsRUFBbUJDLFNBQW5CLEVBQThCQyxJQUE5QixFQUFvQ0MsTUFBcEMsRUFBNEM7QUFDL0MsU0FBS0osT0FBTCxHQUFlQSxPQUFmO0FBQ0EsU0FBS0MsT0FBTCxHQUFlQSxPQUFmO0FBQ0EsU0FBS0MsU0FBTCxHQUFpQkEsU0FBakI7QUFDQSxTQUFLSyxTQUFMLEdBQWlCLEVBQWpCO0FBQ0EsU0FBS0MsS0FBTCxHQUFhLElBQUliLFFBQUosRUFBYjtBQUVBUSxJQUFBQSxJQUFJLElBQUksTUFBTUcsS0FBTixDQUFZSCxJQUFaLEVBQWtCQyxNQUFsQixDQUFSO0FBQ0Q7QUFFRDtBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUNFSyxFQUFBQSxNQUFNLENBQUNDLFFBQUQsRUFBV0MsSUFBWCxFQUFpQkMsS0FBakIsRUFBd0I7QUFDNUIsVUFBTUwsU0FBUyxHQUFHLEtBQUtQLE9BQUwsR0FDZCxLQUFLQSxPQUFMLENBQWFPLFNBQWIsQ0FBdUJNLEtBQXZCLENBQTZCRCxLQUE3QixDQURjLEdBRWQsS0FBS0wsU0FBTCxDQUFlTSxLQUFmLENBQXFCRCxLQUFyQixDQUZKO0FBSUEsUUFBSUUsYUFBSixFQUFtQkMsUUFBbkIsRUFBNkJDLE9BQTdCLEVBQXNDQyxRQUF0QyxFQUFnREMsWUFBaEQsRUFBOERDLFlBQTlEO0FBRUEsUUFBSUMsQ0FBQyxHQUFHYixTQUFTLENBQUNjLE1BQWxCOztBQUVBLFdBQU9ELENBQUMsRUFBUixFQUFZO0FBQ1ZOLE1BQUFBLGFBQWEsR0FBR1AsU0FBUyxDQUFDYSxDQUFELENBQXpCOztBQUVBLFVBQUlOLGFBQWEsSUFBSUosUUFBckIsRUFBK0I7QUFDN0I7QUFDRDs7QUFFRCxXQUFLRixLQUFMLENBQVdjLElBQVgsQ0FBZ0JSLGFBQWEsQ0FBQ1MsUUFBOUIsRUFBd0NDLEdBQXhDLENBQTRDZCxRQUFRLENBQUNhLFFBQXJEO0FBRUFSLE1BQUFBLFFBQVEsR0FBRyxLQUFLUCxLQUFMLENBQVdPLFFBQVgsRUFBWDtBQUNBRSxNQUFBQSxRQUFRLEdBQUdQLFFBQVEsQ0FBQ2UsTUFBVCxHQUFrQlgsYUFBYSxDQUFDVyxNQUEzQzs7QUFFQSxVQUFJVixRQUFRLElBQUlFLFFBQVEsR0FBR0EsUUFBM0IsRUFBcUM7QUFDbkNELFFBQUFBLE9BQU8sR0FBR0MsUUFBUSxHQUFHUyxJQUFJLENBQUNDLElBQUwsQ0FBVVosUUFBVixDQUFyQjtBQUNBQyxRQUFBQSxPQUFPLElBQUksR0FBWDtBQUVBRSxRQUFBQSxZQUFZLEdBQUcsS0FBS1UsZUFBTCxDQUFxQmxCLFFBQXJCLEVBQStCSSxhQUEvQixDQUFmO0FBQ0FLLFFBQUFBLFlBQVksR0FBRyxLQUFLUyxlQUFMLENBQXFCZCxhQUFyQixFQUFvQ0osUUFBcEMsQ0FBZjtBQUVBQSxRQUFBQSxRQUFRLENBQUNhLFFBQVQsQ0FBa0JNLEdBQWxCLENBQ0UsS0FBS3JCLEtBQUwsQ0FDR3NCLEtBREgsR0FFR0MsU0FGSCxHQUdHQyxNQUhILENBR1VoQixPQUFPLEdBQUcsQ0FBQ0UsWUFIckIsQ0FERjtBQU9BSixRQUFBQSxhQUFhLENBQUNTLFFBQWQsQ0FBdUJNLEdBQXZCLENBQ0UsS0FBS3JCLEtBQUwsQ0FBV3VCLFNBQVgsR0FBdUJDLE1BQXZCLENBQThCaEIsT0FBTyxHQUFHRyxZQUF4QyxDQURGO0FBSUEsYUFBS2pCLFNBQUwsSUFBa0IsS0FBS0EsU0FBTCxDQUFlUSxRQUFmLEVBQXlCSSxhQUF6QixDQUFsQjtBQUNEO0FBQ0Y7QUFDRjtBQUVEO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFDRWMsRUFBQUEsZUFBZSxDQUFDSyxTQUFELEVBQVlDLFNBQVosRUFBdUI7QUFDcEMsV0FBTyxLQUFLakMsT0FBTCxHQUNIaUMsU0FBUyxDQUFDQyxJQUFWLElBQWtCRixTQUFTLENBQUNFLElBQVYsR0FBaUJELFNBQVMsQ0FBQ0MsSUFBN0MsQ0FERyxHQUVILEdBRko7QUFHRCxHQXRHOEMsQ0F3Ry9DOzs7QUFDQUMsRUFBQUEsUUFBUSxDQUFDQyxJQUFELEVBQU8sQ0FBRSxDQXpHOEIsQ0F5RzdCOzs7QUF6RzZCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEJlaGF2aW91ciBmcm9tICcuL0JlaGF2aW91cic7XG5pbXBvcnQgeyBWZWN0b3IzRCB9IGZyb20gJy4uL21hdGgnO1xuaW1wb3J0IHsgQkVIQVZJT1VSX1RZUEVfQ09MTElTSU9OIGFzIHR5cGUgfSBmcm9tICcuL3R5cGVzJztcblxuLyoqXG4gKiBCZWhhdmlvdXIgdGhhdCBjYXVzZXMgcGFydGljbGVzIHRvIG1vdmUgYXdheSBmcm9tIG90aGVyIHBhcnRpY2xlcyB0aGV5IGNvbGxpZGUgd2l0aC5cbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQ29sbGlzaW9uIGV4dGVuZHMgQmVoYXZpb3VyIHtcbiAgLyoqXG4gICAqIENvbnN0cnVjdHMgYSBDb2xsaXNpb24gYmVoYXZpb3VyIGluc3RhbmNlLlxuICAgKlxuICAgKiBAcGFyYW0ge0VtaXR0ZXJ9IGVtaXR0ZXIgLSBUaGUgZW1pdHRlciBjb250YWluaW5nIHRoZSBwYXJ0aWNsZXMgdG8gZGV0ZWN0IGNvbGxpc2lvbnMgYWdhaW5zdFxuICAgKiBAcGFyYW0ge2Jvb2xlYW59IHVzZU1hc3MgLSBEZXRlcm1pZW5zIHdoZXRoZXIgdG8gdXNlIG1hc3Mgb3Igbm90XG4gICAqIEBwYXJhbSB7ZnVuY3Rpb259IG9uQ29sbGlkZSAtIEZ1bmN0aW9uIHRvIGNhbGwgd2hlbiBwYXJ0aWNsZXMgY29sbGlkZVxuICAgKiBAcGFyYW0ge251bWJlcn0gbGlmZSAtIFRoZSBsaWZlIG9mIHRoZSBwYXJ0aWNsZVxuICAgKiBAcGFyYW0ge2Z1bmN0aW9ufSBlYXNpbmcgLSBUaGUgYmVoYXZpb3VyJ3MgZGVjYXlpbmcgdHJlbmRcbiAgICogQHBhcmFtIHtib29sZWFufSBbaXNFbmFibGVkPXRydWVdIC0gRGV0ZXJtaW5lcyBpZiB0aGUgYmVoYXZpb3VyIHdpbGwgYmUgYXBwbGllZCBvciBub3RcbiAgICogQHJldHVybiB2b2lkXG4gICAqL1xuICBjb25zdHJ1Y3RvcihlbWl0dGVyLCB1c2VNYXNzLCBvbkNvbGxpZGUsIGxpZmUsIGVhc2luZywgaXNFbmFibGVkID0gdHJ1ZSkge1xuICAgIHN1cGVyKGxpZmUsIGVhc2luZywgdHlwZSwgaXNFbmFibGVkKTtcblxuICAgIHRoaXMucmVzZXQoZW1pdHRlciwgdXNlTWFzcywgb25Db2xsaWRlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXNldHMgdGhlIGJlaGF2aW91ciBwcm9wZXJ0aWVzLlxuICAgKlxuICAgKiBAcGFyYW0ge0VtaXR0ZXJ9IGVtaXR0ZXIgLSBUaGUgZW1pdHRlciBjb250YWluaW5nIHRoZSBwYXJ0aWNsZXMgdG8gZGV0ZWN0IGNvbGxpc2lvbnMgYWdhaW5zdFxuICAgKiBAcGFyYW0ge2Jvb2xlYW59IHVzZU1hc3MgLSBEZXRlcm1pZW5zIHdoZXRoZXIgdG8gdXNlIG1hc3Mgb3Igbm90XG4gICAqIEBwYXJhbSB7ZnVuY3Rpb259IG9uQ29sbGlkZSAtIEZ1bmN0aW9uIHRvIGNhbGwgd2hlbiBwYXJ0aWNsZXMgY29sbGlkZVxuICAgKiBAcGFyYW0ge251bWJlcn0gbGlmZSAtIFRoZSBsaWZlIG9mIHRoZSBwYXJ0aWNsZVxuICAgKiBAcGFyYW0ge2Z1bmN0aW9ufSBlYXNpbmcgLSBUaGUgYmVoYXZpb3VyJ3MgZGVjYXlpbmcgdHJlbmRcbiAgICogQHJldHVybiB2b2lkXG4gICAqL1xuICByZXNldChlbWl0dGVyLCB1c2VNYXNzLCBvbkNvbGxpZGUsIGxpZmUsIGVhc2luZykge1xuICAgIHRoaXMuZW1pdHRlciA9IGVtaXR0ZXI7XG4gICAgdGhpcy51c2VNYXNzID0gdXNlTWFzcztcbiAgICB0aGlzLm9uQ29sbGlkZSA9IG9uQ29sbGlkZTtcbiAgICB0aGlzLnBhcnRpY2xlcyA9IFtdO1xuICAgIHRoaXMuZGVsdGEgPSBuZXcgVmVjdG9yM0QoKTtcblxuICAgIGxpZmUgJiYgc3VwZXIucmVzZXQobGlmZSwgZWFzaW5nKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZXRlY3RzIGNvbGxpc2lvbnMgd2l0aCBvdGhlciBwYXJ0aWNsZXMgYW5kIGNhbGxzIHRoZVxuICAgKiBvbkNvbGxpZGUgZnVuY3Rpb24gb24gY29sbGlkaW5nIHBhcnRpY2xlcy5cbiAgICpcbiAgICogQHBhcmFtIHtQYXJ0aWNsZX0gcGFydGljbGUgLSB0aGUgcGFydGljbGUgdG8gYXBwbHkgdGhlIGJlaGF2aW91ciB0b1xuICAgKiBAcGFyYW0ge251bWJlcn0gdGltZSAtIHBhcnRpY2xlIGVuZ2luZSB0aW1lXG4gICAqIEBwYXJhbSB7aW50ZWdlcn0gaW5kZXggLSB0aGUgcGFydGljbGUgaW5kZXhcbiAgICogQHJldHVybiB2b2lkXG4gICAqL1xuICBtdXRhdGUocGFydGljbGUsIHRpbWUsIGluZGV4KSB7XG4gICAgY29uc3QgcGFydGljbGVzID0gdGhpcy5lbWl0dGVyXG4gICAgICA/IHRoaXMuZW1pdHRlci5wYXJ0aWNsZXMuc2xpY2UoaW5kZXgpXG4gICAgICA6IHRoaXMucGFydGljbGVzLnNsaWNlKGluZGV4KTtcblxuICAgIGxldCBvdGhlclBhcnRpY2xlLCBsZW5ndGhTcSwgb3ZlcmxhcCwgZGlzdGFuY2UsIGF2ZXJhZ2VNYXNzMSwgYXZlcmFnZU1hc3MyO1xuXG4gICAgbGV0IGkgPSBwYXJ0aWNsZXMubGVuZ3RoO1xuXG4gICAgd2hpbGUgKGktLSkge1xuICAgICAgb3RoZXJQYXJ0aWNsZSA9IHBhcnRpY2xlc1tpXTtcblxuICAgICAgaWYgKG90aGVyUGFydGljbGUgPT0gcGFydGljbGUpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuZGVsdGEuY29weShvdGhlclBhcnRpY2xlLnBvc2l0aW9uKS5zdWIocGFydGljbGUucG9zaXRpb24pO1xuXG4gICAgICBsZW5ndGhTcSA9IHRoaXMuZGVsdGEubGVuZ3RoU3EoKTtcbiAgICAgIGRpc3RhbmNlID0gcGFydGljbGUucmFkaXVzICsgb3RoZXJQYXJ0aWNsZS5yYWRpdXM7XG5cbiAgICAgIGlmIChsZW5ndGhTcSA8PSBkaXN0YW5jZSAqIGRpc3RhbmNlKSB7XG4gICAgICAgIG92ZXJsYXAgPSBkaXN0YW5jZSAtIE1hdGguc3FydChsZW5ndGhTcSk7XG4gICAgICAgIG92ZXJsYXAgKz0gMC41O1xuXG4gICAgICAgIGF2ZXJhZ2VNYXNzMSA9IHRoaXMuX2dldEF2ZXJhZ2VNYXNzKHBhcnRpY2xlLCBvdGhlclBhcnRpY2xlKTtcbiAgICAgICAgYXZlcmFnZU1hc3MyID0gdGhpcy5fZ2V0QXZlcmFnZU1hc3Mob3RoZXJQYXJ0aWNsZSwgcGFydGljbGUpO1xuXG4gICAgICAgIHBhcnRpY2xlLnBvc2l0aW9uLmFkZChcbiAgICAgICAgICB0aGlzLmRlbHRhXG4gICAgICAgICAgICAuY2xvbmUoKVxuICAgICAgICAgICAgLm5vcm1hbGl6ZSgpXG4gICAgICAgICAgICAuc2NhbGFyKG92ZXJsYXAgKiAtYXZlcmFnZU1hc3MxKVxuICAgICAgICApO1xuXG4gICAgICAgIG90aGVyUGFydGljbGUucG9zaXRpb24uYWRkKFxuICAgICAgICAgIHRoaXMuZGVsdGEubm9ybWFsaXplKCkuc2NhbGFyKG92ZXJsYXAgKiBhdmVyYWdlTWFzczIpXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5vbkNvbGxpZGUgJiYgdGhpcy5vbkNvbGxpZGUocGFydGljbGUsIG90aGVyUGFydGljbGUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBhdmVyYWdlIG1hc3Mgb2YgYm90aCBwYXJ0aWNsZXMuXG4gICAqXG4gICAqIEBwYXJhbSB7UGFydGljbGV9IHBhcnRpY2xlQSAtIFRoZSBmaXJzdCBwYXJ0aWNsZVxuICAgKiBAcGFyYW0ge1BhcnRpY2xlfSBwYXJ0aWNsZUIgLSBUaGUgc2Vjb25kIHBhcnRpY2xlXG4gICAqIEByZXR1cm4ge251bWJlcn1cbiAgICovXG4gIF9nZXRBdmVyYWdlTWFzcyhwYXJ0aWNsZUEsIHBhcnRpY2xlQikge1xuICAgIHJldHVybiB0aGlzLnVzZU1hc3NcbiAgICAgID8gcGFydGljbGVCLm1hc3MgLyAocGFydGljbGVBLm1hc3MgKyBwYXJ0aWNsZUIubWFzcylcbiAgICAgIDogMC41O1xuICB9XG5cbiAgLy8gVE9ET1xuICBmcm9tSlNPTihqc29uKSB7fSAvLyBlc2xpbnQtZGlzYWJsZS1saW5lXG59XG4iXX0= ================================================ FILE: packages/sdk/lib/core/libs/three-nebula/behaviour/Color.js ================================================ import { MathUtils, createColorSpan } from '../math'; import Behaviour from './Behaviour'; import { ColorUtil } from '../utils'; import { getEasingByName } from '../ease'; import { BEHAVIOUR_TYPE_COLOR as type } from './types'; /** * A behaviour which mutates the color of a particle over time. * */ export default class Color extends Behaviour { /** * Constructs a Color behaviour instance. * * @param {number|string} colorA - the starting color * @param {number|string} colorB - the ending color * @param {number} life - the life of the particle * @param {function} easing - The behaviour's decaying trend * @param {boolean} [isEnabled=true] - Determines if the behaviour will be applied or not * @return void */ constructor(colorA, colorB, life=Infinity, easing, isEnabled = true) { super(life, easing, type, isEnabled); this.reset(colorA, colorB); } /** * Gets the _same property which determines if the alpha are the same. * * @return {boolean} */ get same() { return this._same; } /** * Sets the _same property which determines if the alpha are the same. * * @param {boolean} same * @return {boolean} */ set same(same) { /** * @type {boolean} */ this._same = same; } reset(colorA, colorB, life, easing) { this.same = colorB === null || colorB === undefined ? true : false; this.colorA = createColorSpan(colorA); this.colorB = createColorSpan(colorB); life && super.reset(life, easing); } initialize(particle) { particle.transform.colorA = ColorUtil.getRGB(this.colorA.getValue()); particle.useColor = true; particle.transform.colorB = this.same ? particle.transform.colorA : ColorUtil.getRGB(this.colorB.getValue()); } mutate(particle, time, index) { this.energize(particle, time, index); if (!this._same) { particle.color.r = MathUtils.lerp(particle.transform.colorA.r, particle.transform.colorB.r, this.energy); particle.color.g = MathUtils.lerp(particle.transform.colorA.g, particle.transform.colorB.g, this.energy); particle.color.b = MathUtils.lerp(particle.transform.colorA.b, particle.transform.colorB.b, this.energy); } else { particle.color.r = particle.transform.colorA.r; particle.color.g = particle.transform.colorA.g; particle.color.b = particle.transform.colorA.b; } } /** * Creates a Color initializer from JSON. * * @param {object} json - The JSON to construct the instance from. * @property {number} json.colorA - The starting color * @property {number} json.colorB - The ending color * @property {number} json.life - The life of the particle * @property {string} json.easing - The behaviour's decaying trend * @return {Color} */ static fromJSON(json) { const { colorA, colorB, life, easing, isEnabled = true } = json; return new Color(colorA, colorB, life, getEasingByName(easing), isEnabled); } } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9iZWhhdmlvdXIvQ29sb3IuanMiXSwibmFtZXMiOlsiTWF0aFV0aWxzIiwiY3JlYXRlQ29sb3JTcGFuIiwiQmVoYXZpb3VyIiwiQ29sb3JVdGlsIiwiZ2V0RWFzaW5nQnlOYW1lIiwiQkVIQVZJT1VSX1RZUEVfQ09MT1IiLCJ0eXBlIiwiQ29sb3IiLCJjb25zdHJ1Y3RvciIsImNvbG9yQSIsImNvbG9yQiIsImxpZmUiLCJlYXNpbmciLCJpc0VuYWJsZWQiLCJyZXNldCIsInNhbWUiLCJfc2FtZSIsInVuZGVmaW5lZCIsImluaXRpYWxpemUiLCJwYXJ0aWNsZSIsInRyYW5zZm9ybSIsImdldFJHQiIsImdldFZhbHVlIiwidXNlQ29sb3IiLCJtdXRhdGUiLCJ0aW1lIiwiaW5kZXgiLCJlbmVyZ2l6ZSIsImNvbG9yIiwiciIsImxlcnAiLCJlbmVyZ3kiLCJnIiwiYiIsImZyb21KU09OIiwianNvbiJdLCJtYXBwaW5ncyI6IkFBQUEsU0FBU0EsU0FBVCxFQUFvQkMsZUFBcEIsUUFBMkMsU0FBM0M7QUFFQSxPQUFPQyxTQUFQLE1BQXNCLGFBQXRCO0FBQ0EsU0FBU0MsU0FBVCxRQUEwQixVQUExQjtBQUNBLFNBQVNDLGVBQVQsUUFBZ0MsU0FBaEM7QUFDQSxTQUFTQyxvQkFBb0IsSUFBSUMsSUFBakMsUUFBNkMsU0FBN0M7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFDQSxlQUFlLE1BQU1DLEtBQU4sU0FBb0JMLFNBQXBCLENBQThCO0FBQzNDO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0VNLEVBQUFBLFdBQVcsQ0FBQ0MsTUFBRCxFQUFTQyxNQUFULEVBQWlCQyxJQUFqQixFQUF1QkMsTUFBdkIsRUFBK0JDLFNBQVMsR0FBRyxJQUEzQyxFQUFpRDtBQUMxRCxVQUFNRixJQUFOLEVBQVlDLE1BQVosRUFBb0JOLElBQXBCLEVBQTBCTyxTQUExQjtBQUVBLFNBQUtDLEtBQUwsQ0FBV0wsTUFBWCxFQUFtQkMsTUFBbkI7QUFDRDtBQUVEO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7OztBQUNVLE1BQUpLLElBQUksR0FBRztBQUNULFdBQU8sS0FBS0MsS0FBWjtBQUNEO0FBRUQ7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFDVSxNQUFKRCxJQUFJLENBQUNBLElBQUQsRUFBTztBQUNiO0FBQ0o7QUFDQTtBQUNJLFNBQUtDLEtBQUwsR0FBYUQsSUFBYjtBQUNEOztBQUVERCxFQUFBQSxLQUFLLENBQUNMLE1BQUQsRUFBU0MsTUFBVCxFQUFpQkMsSUFBakIsRUFBdUJDLE1BQXZCLEVBQStCO0FBQ2xDLFNBQUtHLElBQUwsR0FBWUwsTUFBTSxLQUFLLElBQVgsSUFBbUJBLE1BQU0sS0FBS08sU0FBOUIsR0FBMEMsSUFBMUMsR0FBaUQsS0FBN0Q7QUFFQSxTQUFLUixNQUFMLEdBQWNSLGVBQWUsQ0FBQ1EsTUFBRCxDQUE3QjtBQUNBLFNBQUtDLE1BQUwsR0FBY1QsZUFBZSxDQUFDUyxNQUFELENBQTdCO0FBQ0FDLElBQUFBLElBQUksSUFBSSxNQUFNRyxLQUFOLENBQVlILElBQVosRUFBa0JDLE1BQWxCLENBQVI7QUFDRDs7QUFFRE0sRUFBQUEsVUFBVSxDQUFDQyxRQUFELEVBQVc7QUFDbkJBLElBQUFBLFFBQVEsQ0FBQ0MsU0FBVCxDQUFtQlgsTUFBbkIsR0FBNEJOLFNBQVMsQ0FBQ2tCLE1BQVYsQ0FBaUIsS0FBS1osTUFBTCxDQUFZYSxRQUFaLEVBQWpCLENBQTVCO0FBRUFILElBQUFBLFFBQVEsQ0FBQ0ksUUFBVCxHQUFvQixJQUFwQjtBQUNBSixJQUFBQSxRQUFRLENBQUNDLFNBQVQsQ0FBbUJWLE1BQW5CLEdBQTRCLEtBQUtLLElBQUwsR0FDeEJJLFFBQVEsQ0FBQ0MsU0FBVCxDQUFtQlgsTUFESyxHQUV4Qk4sU0FBUyxDQUFDa0IsTUFBVixDQUFpQixLQUFLWCxNQUFMLENBQVlZLFFBQVosRUFBakIsQ0FGSjtBQUdEOztBQUVERSxFQUFBQSxNQUFNLENBQUNMLFFBQUQsRUFBV00sSUFBWCxFQUFpQkMsS0FBakIsRUFBd0I7QUFDNUIsU0FBS0MsUUFBTCxDQUFjUixRQUFkLEVBQXdCTSxJQUF4QixFQUE4QkMsS0FBOUI7O0FBRUEsUUFBSSxDQUFDLEtBQUtWLEtBQVYsRUFBaUI7QUFDZkcsTUFBQUEsUUFBUSxDQUFDUyxLQUFULENBQWVDLENBQWYsR0FBbUI3QixTQUFTLENBQUM4QixJQUFWLENBQ2pCWCxRQUFRLENBQUNDLFNBQVQsQ0FBbUJYLE1BQW5CLENBQTBCb0IsQ0FEVCxFQUVqQlYsUUFBUSxDQUFDQyxTQUFULENBQW1CVixNQUFuQixDQUEwQm1CLENBRlQsRUFHakIsS0FBS0UsTUFIWSxDQUFuQjtBQUtBWixNQUFBQSxRQUFRLENBQUNTLEtBQVQsQ0FBZUksQ0FBZixHQUFtQmhDLFNBQVMsQ0FBQzhCLElBQVYsQ0FDakJYLFFBQVEsQ0FBQ0MsU0FBVCxDQUFtQlgsTUFBbkIsQ0FBMEJ1QixDQURULEVBRWpCYixRQUFRLENBQUNDLFNBQVQsQ0FBbUJWLE1BQW5CLENBQTBCc0IsQ0FGVCxFQUdqQixLQUFLRCxNQUhZLENBQW5CO0FBS0FaLE1BQUFBLFFBQVEsQ0FBQ1MsS0FBVCxDQUFlSyxDQUFmLEdBQW1CakMsU0FBUyxDQUFDOEIsSUFBVixDQUNqQlgsUUFBUSxDQUFDQyxTQUFULENBQW1CWCxNQUFuQixDQUEwQndCLENBRFQsRUFFakJkLFFBQVEsQ0FBQ0MsU0FBVCxDQUFtQlYsTUFBbkIsQ0FBMEJ1QixDQUZULEVBR2pCLEtBQUtGLE1BSFksQ0FBbkI7QUFLRCxLQWhCRCxNQWdCTztBQUNMWixNQUFBQSxRQUFRLENBQUNTLEtBQVQsQ0FBZUMsQ0FBZixHQUFtQlYsUUFBUSxDQUFDQyxTQUFULENBQW1CWCxNQUFuQixDQUEwQm9CLENBQTdDO0FBQ0FWLE1BQUFBLFFBQVEsQ0FBQ1MsS0FBVCxDQUFlSSxDQUFmLEdBQW1CYixRQUFRLENBQUNDLFNBQVQsQ0FBbUJYLE1BQW5CLENBQTBCdUIsQ0FBN0M7QUFDQWIsTUFBQUEsUUFBUSxDQUFDUyxLQUFULENBQWVLLENBQWYsR0FBbUJkLFFBQVEsQ0FBQ0MsU0FBVCxDQUFtQlgsTUFBbkIsQ0FBMEJ3QixDQUE3QztBQUNEO0FBQ0Y7QUFFRDtBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQ2lCLFNBQVJDLFFBQVEsQ0FBQ0MsSUFBRCxFQUFPO0FBQ3BCLFVBQU07QUFBRTFCLE1BQUFBLE1BQUY7QUFBVUMsTUFBQUEsTUFBVjtBQUFrQkMsTUFBQUEsSUFBbEI7QUFBd0JDLE1BQUFBLE1BQXhCO0FBQWdDQyxNQUFBQSxTQUFTLEdBQUc7QUFBNUMsUUFBcURzQixJQUEzRDtBQUVBLFdBQU8sSUFBSTVCLEtBQUosQ0FBVUUsTUFBVixFQUFrQkMsTUFBbEIsRUFBMEJDLElBQTFCLEVBQWdDUCxlQUFlLENBQUNRLE1BQUQsQ0FBL0MsRUFBeURDLFNBQXpELENBQVA7QUFDRDs7QUFoRzBDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTWF0aFV0aWxzLCBjcmVhdGVDb2xvclNwYW4gfSBmcm9tICcuLi9tYXRoJztcblxuaW1wb3J0IEJlaGF2aW91ciBmcm9tICcuL0JlaGF2aW91cic7XG5pbXBvcnQgeyBDb2xvclV0aWwgfSBmcm9tICcuLi91dGlscyc7XG5pbXBvcnQgeyBnZXRFYXNpbmdCeU5hbWUgfSBmcm9tICcuLi9lYXNlJztcbmltcG9ydCB7IEJFSEFWSU9VUl9UWVBFX0NPTE9SIGFzIHR5cGUgfSBmcm9tICcuL3R5cGVzJztcblxuLyoqXG4gKiBBIGJlaGF2aW91ciB3aGljaCBtdXRhdGVzIHRoZSBjb2xvciBvZiBhIHBhcnRpY2xlIG92ZXIgdGltZS5cbiAqXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIENvbG9yIGV4dGVuZHMgQmVoYXZpb3VyIHtcbiAgLyoqXG4gICAqIENvbnN0cnVjdHMgYSBDb2xvciBiZWhhdmlvdXIgaW5zdGFuY2UuXG4gICAqXG4gICAqIEBwYXJhbSB7bnVtYmVyfHN0cmluZ30gY29sb3JBIC0gdGhlIHN0YXJ0aW5nIGNvbG9yXG4gICAqIEBwYXJhbSB7bnVtYmVyfHN0cmluZ30gY29sb3JCIC0gdGhlIGVuZGluZyBjb2xvclxuICAgKiBAcGFyYW0ge251bWJlcn0gbGlmZSAtIHRoZSBsaWZlIG9mIHRoZSBwYXJ0aWNsZVxuICAgKiBAcGFyYW0ge2Z1bmN0aW9ufSBlYXNpbmcgLSBUaGUgYmVoYXZpb3VyJ3MgZGVjYXlpbmcgdHJlbmRcbiAgICogQHBhcmFtIHtib29sZWFufSBbaXNFbmFibGVkPXRydWVdIC0gRGV0ZXJtaW5lcyBpZiB0aGUgYmVoYXZpb3VyIHdpbGwgYmUgYXBwbGllZCBvciBub3RcbiAgICogQHJldHVybiB2b2lkXG4gICAqL1xuICBjb25zdHJ1Y3Rvcihjb2xvckEsIGNvbG9yQiwgbGlmZSwgZWFzaW5nLCBpc0VuYWJsZWQgPSB0cnVlKSB7XG4gICAgc3VwZXIobGlmZSwgZWFzaW5nLCB0eXBlLCBpc0VuYWJsZWQpO1xuXG4gICAgdGhpcy5yZXNldChjb2xvckEsIGNvbG9yQik7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgX3NhbWUgcHJvcGVydHkgd2hpY2ggZGV0ZXJtaW5lcyBpZiB0aGUgYWxwaGEgYXJlIHRoZSBzYW1lLlxuICAgKlxuICAgKiBAcmV0dXJuIHtib29sZWFufVxuICAgKi9cbiAgZ2V0IHNhbWUoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3NhbWU7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgX3NhbWUgcHJvcGVydHkgd2hpY2ggZGV0ZXJtaW5lcyBpZiB0aGUgYWxwaGEgYXJlIHRoZSBzYW1lLlxuICAgKlxuICAgKiBAcGFyYW0ge2Jvb2xlYW59IHNhbWVcbiAgICogQHJldHVybiB7Ym9vbGVhbn1cbiAgICovXG4gIHNldCBzYW1lKHNhbWUpIHtcbiAgICAvKipcbiAgICAgKiBAdHlwZSB7Ym9vbGVhbn1cbiAgICAgKi9cbiAgICB0aGlzLl9zYW1lID0gc2FtZTtcbiAgfVxuXG4gIHJlc2V0KGNvbG9yQSwgY29sb3JCLCBsaWZlLCBlYXNpbmcpIHtcbiAgICB0aGlzLnNhbWUgPSBjb2xvckIgPT09IG51bGwgfHwgY29sb3JCID09PSB1bmRlZmluZWQgPyB0cnVlIDogZmFsc2U7XG5cbiAgICB0aGlzLmNvbG9yQSA9IGNyZWF0ZUNvbG9yU3Bhbihjb2xvckEpO1xuICAgIHRoaXMuY29sb3JCID0gY3JlYXRlQ29sb3JTcGFuKGNvbG9yQik7XG4gICAgbGlmZSAmJiBzdXBlci5yZXNldChsaWZlLCBlYXNpbmcpO1xuICB9XG5cbiAgaW5pdGlhbGl6ZShwYXJ0aWNsZSkge1xuICAgIHBhcnRpY2xlLnRyYW5zZm9ybS5jb2xvckEgPSBDb2xvclV0aWwuZ2V0UkdCKHRoaXMuY29sb3JBLmdldFZhbHVlKCkpO1xuXG4gICAgcGFydGljbGUudXNlQ29sb3IgPSB0cnVlO1xuICAgIHBhcnRpY2xlLnRyYW5zZm9ybS5jb2xvckIgPSB0aGlzLnNhbWVcbiAgICAgID8gcGFydGljbGUudHJhbnNmb3JtLmNvbG9yQVxuICAgICAgOiBDb2xvclV0aWwuZ2V0UkdCKHRoaXMuY29sb3JCLmdldFZhbHVlKCkpO1xuICB9XG5cbiAgbXV0YXRlKHBhcnRpY2xlLCB0aW1lLCBpbmRleCkge1xuICAgIHRoaXMuZW5lcmdpemUocGFydGljbGUsIHRpbWUsIGluZGV4KTtcblxuICAgIGlmICghdGhpcy5fc2FtZSkge1xuICAgICAgcGFydGljbGUuY29sb3IuciA9IE1hdGhVdGlscy5sZXJwKFxuICAgICAgICBwYXJ0aWNsZS50cmFuc2Zvcm0uY29sb3JBLnIsXG4gICAgICAgIHBhcnRpY2xlLnRyYW5zZm9ybS5jb2xvckIucixcbiAgICAgICAgdGhpcy5lbmVyZ3lcbiAgICAgICk7XG4gICAgICBwYXJ0aWNsZS5jb2xvci5nID0gTWF0aFV0aWxzLmxlcnAoXG4gICAgICAgIHBhcnRpY2xlLnRyYW5zZm9ybS5jb2xvckEuZyxcbiAgICAgICAgcGFydGljbGUudHJhbnNmb3JtLmNvbG9yQi5nLFxuICAgICAgICB0aGlzLmVuZXJneVxuICAgICAgKTtcbiAgICAgIHBhcnRpY2xlLmNvbG9yLmIgPSBNYXRoVXRpbHMubGVycChcbiAgICAgICAgcGFydGljbGUudHJhbnNmb3JtLmNvbG9yQS5iLFxuICAgICAgICBwYXJ0aWNsZS50cmFuc2Zvcm0uY29sb3JCLmIsXG4gICAgICAgIHRoaXMuZW5lcmd5XG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICBwYXJ0aWNsZS5jb2xvci5yID0gcGFydGljbGUudHJhbnNmb3JtLmNvbG9yQS5yO1xuICAgICAgcGFydGljbGUuY29sb3IuZyA9IHBhcnRpY2xlLnRyYW5zZm9ybS5jb2xvckEuZztcbiAgICAgIHBhcnRpY2xlLmNvbG9yLmIgPSBwYXJ0aWNsZS50cmFuc2Zvcm0uY29sb3JBLmI7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBDb2xvciBpbml0aWFsaXplciBmcm9tIEpTT04uXG4gICAqXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBqc29uIC0gVGhlIEpTT04gdG8gY29uc3RydWN0IHRoZSBpbnN0YW5jZSBmcm9tLlxuICAgKiBAcHJvcGVydHkge251bWJlcn0ganNvbi5jb2xvckEgLSBUaGUgc3RhcnRpbmcgY29sb3JcbiAgICogQHByb3BlcnR5IHtudW1iZXJ9IGpzb24uY29sb3JCIC0gVGhlIGVuZGluZyBjb2xvclxuICAgKiBAcHJvcGVydHkge251bWJlcn0ganNvbi5saWZlIC0gVGhlIGxpZmUgb2YgdGhlIHBhcnRpY2xlXG4gICAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBqc29uLmVhc2luZyAtIFRoZSBiZWhhdmlvdXIncyBkZWNheWluZyB0cmVuZFxuICAgKiBAcmV0dXJuIHtDb2xvcn1cbiAgICovXG4gIHN0YXRpYyBmcm9tSlNPTihqc29uKSB7XG4gICAgY29uc3QgeyBjb2xvckEsIGNvbG9yQiwgbGlmZSwgZWFzaW5nLCBpc0VuYWJsZWQgPSB0cnVlIH0gPSBqc29uO1xuXG4gICAgcmV0dXJuIG5ldyBDb2xvcihjb2xvckEsIGNvbG9yQiwgbGlmZSwgZ2V0RWFzaW5nQnlOYW1lKGVhc2luZyksIGlzRW5hYmxlZCk7XG4gIH1cbn1cbiJdfQ== ================================================ FILE: packages/sdk/lib/core/libs/three-nebula/behaviour/CrossZone.js ================================================ import * as Zone from '../zone'; import Behaviour from './Behaviour'; import { DEFAULT_CROSS_TYPE } from './constants'; import { getEasingByName } from '../ease'; import { BEHAVIOUR_TYPE_CROSS_ZONE as type } from './types'; /** * Behaviour that allows for specific functions to be called on particles when * they interact with a zone. * */ export default class CrossZone extends Behaviour { /** * Constructs a CrossZone behaviour instance. * * @param {Zone} zone - the zone used to apply to particles with this behaviour * @param {string} [crossType=DEFAULT_CROSS_TYPE] - enum of cross types, valid strings include 'dead', 'bound', 'cross' * @param {number} life - The life of the particle * @param {function} easing - The behaviour's decaying trend * @param {boolean} [isEnabled=true] - Determines if the behaviour will be applied or not */ constructor(zone, crossType, life, easing, isEnabled) { super(life, easing, type, isEnabled); this.reset(zone, crossType); } /** * Resets the behaviour properties. * * @param {Zone} zone - the zone used to apply to particles with this behaviour * @param {string} [crossType=DEFAULT_CROSS_TYPE] - enum of cross types, valid strings include 'dead', 'bound', 'cross' * @param {number} life - The life of the particle * @param {function} easing - The behaviour's decaying trend */ reset(zone, crossType = DEFAULT_CROSS_TYPE, life, easing) { /** * @desc The zone used to apply to particles with this behaviour * @type {Zone} */ this.zone = zone; this.zone.crossType = crossType; life && super.reset(life, easing); } /** * Applies the behaviour to the particle. * * @see {@link '../zone/Zone.js'} crossing * @param {object} particle - the particle to apply the behaviour to * @param {number} time - engine time * @param {integer} index - the particle index * @return void */ mutate(particle, time, index) { this.energize(particle, time, index); this.zone.crossing.call(this.zone, particle); } /** * Creates a CrossZone initializer from JSON. * * @param {object} json - The JSON to construct the instance from. * @return {CrossZone} */ static fromJSON(json) { const { zoneType, zoneParams, crossType, life, easing, isEnabled = true } = json; const zone = new Zone[zoneType](...Object.values(zoneParams)); return new CrossZone(zone, crossType, life, getEasingByName(easing), isEnabled); } } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9iZWhhdmlvdXIvQ3Jvc3Nab25lLmpzIl0sIm5hbWVzIjpbIlpvbmUiLCJCZWhhdmlvdXIiLCJERUZBVUxUX0NST1NTX1RZUEUiLCJnZXRFYXNpbmdCeU5hbWUiLCJCRUhBVklPVVJfVFlQRV9DUk9TU19aT05FIiwidHlwZSIsIkNyb3NzWm9uZSIsImNvbnN0cnVjdG9yIiwiem9uZSIsImNyb3NzVHlwZSIsImxpZmUiLCJlYXNpbmciLCJpc0VuYWJsZWQiLCJyZXNldCIsIm11dGF0ZSIsInBhcnRpY2xlIiwidGltZSIsImluZGV4IiwiZW5lcmdpemUiLCJjcm9zc2luZyIsImNhbGwiLCJmcm9tSlNPTiIsImpzb24iLCJ6b25lVHlwZSIsInpvbmVQYXJhbXMiLCJPYmplY3QiLCJ2YWx1ZXMiXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBS0EsSUFBWixNQUFzQixTQUF0QjtBQUVBLE9BQU9DLFNBQVAsTUFBc0IsYUFBdEI7QUFDQSxTQUFTQyxrQkFBVCxRQUFtQyxhQUFuQztBQUNBLFNBQVNDLGVBQVQsUUFBZ0MsU0FBaEM7QUFDQSxTQUFTQyx5QkFBeUIsSUFBSUMsSUFBdEMsUUFBa0QsU0FBbEQ7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUNBLGVBQWUsTUFBTUMsU0FBTixTQUF3QkwsU0FBeEIsQ0FBa0M7QUFDL0M7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0VNLEVBQUFBLFdBQVcsQ0FBQ0MsSUFBRCxFQUFPQyxTQUFQLEVBQWtCQyxJQUFsQixFQUF3QkMsTUFBeEIsRUFBZ0NDLFNBQWhDLEVBQTJDO0FBQ3BELFVBQU1GLElBQU4sRUFBWUMsTUFBWixFQUFvQk4sSUFBcEIsRUFBMEJPLFNBQTFCO0FBRUEsU0FBS0MsS0FBTCxDQUFXTCxJQUFYLEVBQWlCQyxTQUFqQjtBQUNEO0FBRUQ7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQ0VJLEVBQUFBLEtBQUssQ0FBQ0wsSUFBRCxFQUFPQyxTQUFTLEdBQUdQLGtCQUFuQixFQUF1Q1EsSUFBdkMsRUFBNkNDLE1BQTdDLEVBQXFEO0FBQ3hEO0FBQ0o7QUFDQTtBQUNBO0FBQ0ksU0FBS0gsSUFBTCxHQUFZQSxJQUFaO0FBQ0EsU0FBS0EsSUFBTCxDQUFVQyxTQUFWLEdBQXNCQSxTQUF0QjtBQUVBQyxJQUFBQSxJQUFJLElBQUksTUFBTUcsS0FBTixDQUFZSCxJQUFaLEVBQWtCQyxNQUFsQixDQUFSO0FBQ0Q7QUFFRDtBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUNFRyxFQUFBQSxNQUFNLENBQUNDLFFBQUQsRUFBV0MsSUFBWCxFQUFpQkMsS0FBakIsRUFBd0I7QUFDNUIsU0FBS0MsUUFBTCxDQUFjSCxRQUFkLEVBQXdCQyxJQUF4QixFQUE4QkMsS0FBOUI7QUFFQSxTQUFLVCxJQUFMLENBQVVXLFFBQVYsQ0FBbUJDLElBQW5CLENBQXdCLEtBQUtaLElBQTdCLEVBQW1DTyxRQUFuQztBQUNEO0FBRUQ7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFDaUIsU0FBUk0sUUFBUSxDQUFDQyxJQUFELEVBQU87QUFDcEIsVUFBTTtBQUNKQyxNQUFBQSxRQURJO0FBRUpDLE1BQUFBLFVBRkk7QUFHSmYsTUFBQUEsU0FISTtBQUlKQyxNQUFBQSxJQUpJO0FBS0pDLE1BQUFBLE1BTEk7QUFNSkMsTUFBQUEsU0FBUyxHQUFHO0FBTlIsUUFPRlUsSUFQSjtBQVNBLFVBQU1kLElBQUksR0FBRyxJQUFJUixJQUFJLENBQUN1QixRQUFELENBQVIsQ0FBbUIsR0FBR0UsTUFBTSxDQUFDQyxNQUFQLENBQWNGLFVBQWQsQ0FBdEIsQ0FBYjtBQUVBLFdBQU8sSUFBSWxCLFNBQUosQ0FDTEUsSUFESyxFQUVMQyxTQUZLLEVBR0xDLElBSEssRUFJTFAsZUFBZSxDQUFDUSxNQUFELENBSlYsRUFLTEMsU0FMSyxDQUFQO0FBT0Q7O0FBM0U4QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIFpvbmUgZnJvbSAnLi4vem9uZSc7XG5cbmltcG9ydCBCZWhhdmlvdXIgZnJvbSAnLi9CZWhhdmlvdXInO1xuaW1wb3J0IHsgREVGQVVMVF9DUk9TU19UWVBFIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgZ2V0RWFzaW5nQnlOYW1lIH0gZnJvbSAnLi4vZWFzZSc7XG5pbXBvcnQgeyBCRUhBVklPVVJfVFlQRV9DUk9TU19aT05FIGFzIHR5cGUgfSBmcm9tICcuL3R5cGVzJztcblxuLyoqXG4gKiBCZWhhdmlvdXIgdGhhdCBhbGxvd3MgZm9yIHNwZWNpZmljIGZ1bmN0aW9ucyB0byBiZSBjYWxsZWQgb24gcGFydGljbGVzIHdoZW5cbiAqIHRoZXkgaW50ZXJhY3Qgd2l0aCBhIHpvbmUuXG4gKlxuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBDcm9zc1pvbmUgZXh0ZW5kcyBCZWhhdmlvdXIge1xuICAvKipcbiAgICogQ29uc3RydWN0cyBhIENyb3NzWm9uZSBiZWhhdmlvdXIgaW5zdGFuY2UuXG4gICAqXG4gICAqIEBwYXJhbSB7Wm9uZX0gem9uZSAtIHRoZSB6b25lIHVzZWQgdG8gYXBwbHkgdG8gcGFydGljbGVzIHdpdGggdGhpcyBiZWhhdmlvdXJcbiAgICogQHBhcmFtIHtzdHJpbmd9IFtjcm9zc1R5cGU9REVGQVVMVF9DUk9TU19UWVBFXSAtIGVudW0gb2YgY3Jvc3MgdHlwZXMsIHZhbGlkIHN0cmluZ3MgaW5jbHVkZSAnZGVhZCcsICdib3VuZCcsICdjcm9zcydcbiAgICogQHBhcmFtIHtudW1iZXJ9IGxpZmUgLSBUaGUgbGlmZSBvZiB0aGUgcGFydGljbGVcbiAgICogQHBhcmFtIHtmdW5jdGlvbn0gZWFzaW5nIC0gVGhlIGJlaGF2aW91cidzIGRlY2F5aW5nIHRyZW5kXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gW2lzRW5hYmxlZD10cnVlXSAtIERldGVybWluZXMgaWYgdGhlIGJlaGF2aW91ciB3aWxsIGJlIGFwcGxpZWQgb3Igbm90XG4gICAqL1xuICBjb25zdHJ1Y3Rvcih6b25lLCBjcm9zc1R5cGUsIGxpZmUsIGVhc2luZywgaXNFbmFibGVkKSB7XG4gICAgc3VwZXIobGlmZSwgZWFzaW5nLCB0eXBlLCBpc0VuYWJsZWQpO1xuXG4gICAgdGhpcy5yZXNldCh6b25lLCBjcm9zc1R5cGUpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlc2V0cyB0aGUgYmVoYXZpb3VyIHByb3BlcnRpZXMuXG4gICAqXG4gICAqIEBwYXJhbSB7Wm9uZX0gem9uZSAtIHRoZSB6b25lIHVzZWQgdG8gYXBwbHkgdG8gcGFydGljbGVzIHdpdGggdGhpcyBiZWhhdmlvdXJcbiAgICogQHBhcmFtIHtzdHJpbmd9IFtjcm9zc1R5cGU9REVGQVVMVF9DUk9TU19UWVBFXSAtIGVudW0gb2YgY3Jvc3MgdHlwZXMsIHZhbGlkIHN0cmluZ3MgaW5jbHVkZSAnZGVhZCcsICdib3VuZCcsICdjcm9zcydcbiAgICogQHBhcmFtIHtudW1iZXJ9IGxpZmUgLSBUaGUgbGlmZSBvZiB0aGUgcGFydGljbGVcbiAgICogQHBhcmFtIHtmdW5jdGlvbn0gZWFzaW5nIC0gVGhlIGJlaGF2aW91cidzIGRlY2F5aW5nIHRyZW5kXG4gICAqL1xuICByZXNldCh6b25lLCBjcm9zc1R5cGUgPSBERUZBVUxUX0NST1NTX1RZUEUsIGxpZmUsIGVhc2luZykge1xuICAgIC8qKlxuICAgICAqIEBkZXNjIFRoZSB6b25lIHVzZWQgdG8gYXBwbHkgdG8gcGFydGljbGVzIHdpdGggdGhpcyBiZWhhdmlvdXJcbiAgICAgKiBAdHlwZSB7Wm9uZX1cbiAgICAgKi9cbiAgICB0aGlzLnpvbmUgPSB6b25lO1xuICAgIHRoaXMuem9uZS5jcm9zc1R5cGUgPSBjcm9zc1R5cGU7XG5cbiAgICBsaWZlICYmIHN1cGVyLnJlc2V0KGxpZmUsIGVhc2luZyk7XG4gIH1cblxuICAvKipcbiAgICogQXBwbGllcyB0aGUgYmVoYXZpb3VyIHRvIHRoZSBwYXJ0aWNsZS5cbiAgICpcbiAgICogQHNlZSB7QGxpbmsgJy4uL3pvbmUvWm9uZS5qcyd9IGNyb3NzaW5nXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBwYXJ0aWNsZSAtIHRoZSBwYXJ0aWNsZSB0byBhcHBseSB0aGUgYmVoYXZpb3VyIHRvXG4gICAqIEBwYXJhbSB7bnVtYmVyfSB0aW1lIC0gZW5naW5lIHRpbWVcbiAgICogQHBhcmFtIHtpbnRlZ2VyfSBpbmRleCAtIHRoZSBwYXJ0aWNsZSBpbmRleFxuICAgKiBAcmV0dXJuIHZvaWRcbiAgICovXG4gIG11dGF0ZShwYXJ0aWNsZSwgdGltZSwgaW5kZXgpIHtcbiAgICB0aGlzLmVuZXJnaXplKHBhcnRpY2xlLCB0aW1lLCBpbmRleCk7XG5cbiAgICB0aGlzLnpvbmUuY3Jvc3NpbmcuY2FsbCh0aGlzLnpvbmUsIHBhcnRpY2xlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgQ3Jvc3Nab25lIGluaXRpYWxpemVyIGZyb20gSlNPTi5cbiAgICpcbiAgICogQHBhcmFtIHtvYmplY3R9IGpzb24gLSBUaGUgSlNPTiB0byBjb25zdHJ1Y3QgdGhlIGluc3RhbmNlIGZyb20uXG4gICAqIEByZXR1cm4ge0Nyb3NzWm9uZX1cbiAgICovXG4gIHN0YXRpYyBmcm9tSlNPTihqc29uKSB7XG4gICAgY29uc3Qge1xuICAgICAgem9uZVR5cGUsXG4gICAgICB6b25lUGFyYW1zLFxuICAgICAgY3Jvc3NUeXBlLFxuICAgICAgbGlmZSxcbiAgICAgIGVhc2luZyxcbiAgICAgIGlzRW5hYmxlZCA9IHRydWUsXG4gICAgfSA9IGpzb247XG5cbiAgICBjb25zdCB6b25lID0gbmV3IFpvbmVbem9uZVR5cGVdKC4uLk9iamVjdC52YWx1ZXMoem9uZVBhcmFtcykpO1xuXG4gICAgcmV0dXJuIG5ldyBDcm9zc1pvbmUoXG4gICAgICB6b25lLFxuICAgICAgY3Jvc3NUeXBlLFxuICAgICAgbGlmZSxcbiAgICAgIGdldEVhc2luZ0J5TmFtZShlYXNpbmcpLFxuICAgICAgaXNFbmFibGVkXG4gICAgKTtcbiAgfVxufVxuIl19 ================================================ FILE: packages/sdk/lib/core/libs/three-nebula/behaviour/Force.js ================================================ import Behaviour from './Behaviour'; import { Vector3D } from '../math'; import { getEasingByName } from '../ease'; import { BEHAVIOUR_TYPE_FORCE as type } from './types'; /** * Behaviour that forces particles along a specific axis. * */ export default class Force extends Behaviour { /** * Constructs a Force behaviour instance. * * @param {number} fx - the x axis force * @param {number} fy - the y axis force * @param {number} fz - the z axis force * @param {number} life - the life of the particle * @param {function} easing - The behaviour's decaying trend * @param {boolean} [isEnabled=true] - Determines if the behaviour will be applied or not * @return void */ constructor(fx, fy, fz, life = Infinity, easing, isEnabled = true) { super(life, easing, type, isEnabled); this.reset(fx, fy, fz); } /** * Resets the behaviour properties. * * @param {number} fx - the x axis force * @param {number} fy - the y axis force * @param {number} fz - the z axis force */ reset(fx, fy, fz) { /** * @desc The normalized force to exert on the particle in * @type {Vector3D} */ this.force = this.normalizeForce(new Vector3D(fx, fy, fz)); /** * @desc The id of the force vector * @property {number} this.force.id */ this.force.id = Math.random(); } /** * Mutates the particle.acceleration property. * * @param {object} particle - the particle to apply the behaviour to * @param {number} time - engine time * @param {integer} index - the particle index * @return void */ mutate(particle, time, index) { this.energize(particle, time, index); particle.acceleration.add(this.force); } /** * Creates a Force initializer from JSON. * * @param {object} json - The JSON to construct the instance from. * @return {Force} */ static fromJSON(json) { const { fx, fy, fz, life, easing, isEnabled = true } = json; return new Force(fx, fy, fz, life, getEasingByName(easing), isEnabled); } } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9iZWhhdmlvdXIvRm9yY2UuanMiXSwibmFtZXMiOlsiQmVoYXZpb3VyIiwiVmVjdG9yM0QiLCJnZXRFYXNpbmdCeU5hbWUiLCJCRUhBVklPVVJfVFlQRV9GT1JDRSIsInR5cGUiLCJGb3JjZSIsImNvbnN0cnVjdG9yIiwiZngiLCJmeSIsImZ6IiwibGlmZSIsImVhc2luZyIsImlzRW5hYmxlZCIsInJlc2V0IiwiZm9yY2UiLCJub3JtYWxpemVGb3JjZSIsImlkIiwiTWF0aCIsInJhbmRvbSIsIm11dGF0ZSIsInBhcnRpY2xlIiwidGltZSIsImluZGV4IiwiZW5lcmdpemUiLCJhY2NlbGVyYXRpb24iLCJhZGQiLCJmcm9tSlNPTiIsImpzb24iXSwibWFwcGluZ3MiOiJBQUFBLE9BQU9BLFNBQVAsTUFBc0IsYUFBdEI7QUFDQSxTQUFTQyxRQUFULFFBQXlCLFNBQXpCO0FBQ0EsU0FBU0MsZUFBVCxRQUFnQyxTQUFoQztBQUNBLFNBQVNDLG9CQUFvQixJQUFJQyxJQUFqQyxRQUE2QyxTQUE3QztBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUNBLGVBQWUsTUFBTUMsS0FBTixTQUFvQkwsU0FBcEIsQ0FBOEI7QUFDM0M7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNFTSxFQUFBQSxXQUFXLENBQUNDLEVBQUQsRUFBS0MsRUFBTCxFQUFTQyxFQUFULEVBQWFDLElBQWIsRUFBbUJDLE1BQW5CLEVBQTJCQyxTQUFTLEdBQUcsSUFBdkMsRUFBNkM7QUFDdEQsVUFBTUYsSUFBTixFQUFZQyxNQUFaLEVBQW9CUCxJQUFwQixFQUEwQlEsU0FBMUI7QUFFQSxTQUFLQyxLQUFMLENBQVdOLEVBQVgsRUFBZUMsRUFBZixFQUFtQkMsRUFBbkI7QUFDRDtBQUVEO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFDRUksRUFBQUEsS0FBSyxDQUFDTixFQUFELEVBQUtDLEVBQUwsRUFBU0MsRUFBVCxFQUFhO0FBQ2hCO0FBQ0o7QUFDQTtBQUNBO0FBQ0ksU0FBS0ssS0FBTCxHQUFhLEtBQUtDLGNBQUwsQ0FBb0IsSUFBSWQsUUFBSixDQUFhTSxFQUFiLEVBQWlCQyxFQUFqQixFQUFxQkMsRUFBckIsQ0FBcEIsQ0FBYjtBQUVBO0FBQ0o7QUFDQTtBQUNBOztBQUNJLFNBQUtLLEtBQUwsQ0FBV0UsRUFBWCxHQUFnQkMsSUFBSSxDQUFDQyxNQUFMLEVBQWhCO0FBQ0Q7QUFFRDtBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFDRUMsRUFBQUEsTUFBTSxDQUFDQyxRQUFELEVBQVdDLElBQVgsRUFBaUJDLEtBQWpCLEVBQXdCO0FBQzVCLFNBQUtDLFFBQUwsQ0FBY0gsUUFBZCxFQUF3QkMsSUFBeEIsRUFBOEJDLEtBQTlCO0FBRUFGLElBQUFBLFFBQVEsQ0FBQ0ksWUFBVCxDQUFzQkMsR0FBdEIsQ0FBMEIsS0FBS1gsS0FBL0I7QUFDRDtBQUVEO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQ2lCLFNBQVJZLFFBQVEsQ0FBQ0MsSUFBRCxFQUFPO0FBQ3BCLFVBQU07QUFBRXBCLE1BQUFBLEVBQUY7QUFBTUMsTUFBQUEsRUFBTjtBQUFVQyxNQUFBQSxFQUFWO0FBQWNDLE1BQUFBLElBQWQ7QUFBb0JDLE1BQUFBLE1BQXBCO0FBQTRCQyxNQUFBQSxTQUFTLEdBQUc7QUFBeEMsUUFBaURlLElBQXZEO0FBRUEsV0FBTyxJQUFJdEIsS0FBSixDQUFVRSxFQUFWLEVBQWNDLEVBQWQsRUFBa0JDLEVBQWxCLEVBQXNCQyxJQUF0QixFQUE0QlIsZUFBZSxDQUFDUyxNQUFELENBQTNDLEVBQXFEQyxTQUFyRCxDQUFQO0FBQ0Q7O0FBL0QwQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBCZWhhdmlvdXIgZnJvbSAnLi9CZWhhdmlvdXInO1xuaW1wb3J0IHsgVmVjdG9yM0QgfSBmcm9tICcuLi9tYXRoJztcbmltcG9ydCB7IGdldEVhc2luZ0J5TmFtZSB9IGZyb20gJy4uL2Vhc2UnO1xuaW1wb3J0IHsgQkVIQVZJT1VSX1RZUEVfRk9SQ0UgYXMgdHlwZSB9IGZyb20gJy4vdHlwZXMnO1xuLyoqXG4gKiBCZWhhdmlvdXIgdGhhdCBmb3JjZXMgcGFydGljbGVzIGFsb25nIGEgc3BlY2lmaWMgYXhpcy5cbiAqXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEZvcmNlIGV4dGVuZHMgQmVoYXZpb3VyIHtcbiAgLyoqXG4gICAqIENvbnN0cnVjdHMgYSBGb3JjZSBiZWhhdmlvdXIgaW5zdGFuY2UuXG4gICAqXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBmeCAtIHRoZSB4IGF4aXMgZm9yY2VcbiAgICogQHBhcmFtIHtudW1iZXJ9IGZ5IC0gdGhlIHkgYXhpcyBmb3JjZVxuICAgKiBAcGFyYW0ge251bWJlcn0gZnogLSB0aGUgeiBheGlzIGZvcmNlXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBsaWZlIC0gdGhlIGxpZmUgb2YgdGhlIHBhcnRpY2xlXG4gICAqIEBwYXJhbSB7ZnVuY3Rpb259IGVhc2luZyAtIFRoZSBiZWhhdmlvdXIncyBkZWNheWluZyB0cmVuZFxuICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtpc0VuYWJsZWQ9dHJ1ZV0gLSBEZXRlcm1pbmVzIGlmIHRoZSBiZWhhdmlvdXIgd2lsbCBiZSBhcHBsaWVkIG9yIG5vdFxuICAgKiBAcmV0dXJuIHZvaWRcbiAgICovXG4gIGNvbnN0cnVjdG9yKGZ4LCBmeSwgZnosIGxpZmUsIGVhc2luZywgaXNFbmFibGVkID0gdHJ1ZSkge1xuICAgIHN1cGVyKGxpZmUsIGVhc2luZywgdHlwZSwgaXNFbmFibGVkKTtcblxuICAgIHRoaXMucmVzZXQoZngsIGZ5LCBmeik7XG4gIH1cblxuICAvKipcbiAgICogUmVzZXRzIHRoZSBiZWhhdmlvdXIgcHJvcGVydGllcy5cbiAgICpcbiAgICogQHBhcmFtIHtudW1iZXJ9IGZ4IC0gdGhlIHggYXhpcyBmb3JjZVxuICAgKiBAcGFyYW0ge251bWJlcn0gZnkgLSB0aGUgeSBheGlzIGZvcmNlXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBmeiAtIHRoZSB6IGF4aXMgZm9yY2VcbiAgICovXG4gIHJlc2V0KGZ4LCBmeSwgZnopIHtcbiAgICAvKipcbiAgICAgKiBAZGVzYyBUaGUgbm9ybWFsaXplZCBmb3JjZSB0byBleGVydCBvbiB0aGUgcGFydGljbGUgaW5cbiAgICAgKiBAdHlwZSB7VmVjdG9yM0R9XG4gICAgICovXG4gICAgdGhpcy5mb3JjZSA9IHRoaXMubm9ybWFsaXplRm9yY2UobmV3IFZlY3RvcjNEKGZ4LCBmeSwgZnopKTtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjIFRoZSBpZCBvZiB0aGUgZm9yY2UgdmVjdG9yXG4gICAgICogQHByb3BlcnR5IHtudW1iZXJ9IHRoaXMuZm9yY2UuaWRcbiAgICAgKi9cbiAgICB0aGlzLmZvcmNlLmlkID0gTWF0aC5yYW5kb20oKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNdXRhdGVzIHRoZSBwYXJ0aWNsZS5hY2NlbGVyYXRpb24gcHJvcGVydHkuXG4gICAqXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBwYXJ0aWNsZSAtIHRoZSBwYXJ0aWNsZSB0byBhcHBseSB0aGUgYmVoYXZpb3VyIHRvXG4gICAqIEBwYXJhbSB7bnVtYmVyfSB0aW1lIC0gZW5naW5lIHRpbWVcbiAgICogQHBhcmFtIHtpbnRlZ2VyfSBpbmRleCAtIHRoZSBwYXJ0aWNsZSBpbmRleFxuICAgKiBAcmV0dXJuIHZvaWRcbiAgICovXG4gIG11dGF0ZShwYXJ0aWNsZSwgdGltZSwgaW5kZXgpIHtcbiAgICB0aGlzLmVuZXJnaXplKHBhcnRpY2xlLCB0aW1lLCBpbmRleCk7XG5cbiAgICBwYXJ0aWNsZS5hY2NlbGVyYXRpb24uYWRkKHRoaXMuZm9yY2UpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBGb3JjZSBpbml0aWFsaXplciBmcm9tIEpTT04uXG4gICAqXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBqc29uIC0gVGhlIEpTT04gdG8gY29uc3RydWN0IHRoZSBpbnN0YW5jZSBmcm9tLlxuICAgKiBAcmV0dXJuIHtGb3JjZX1cbiAgICovXG4gIHN0YXRpYyBmcm9tSlNPTihqc29uKSB7XG4gICAgY29uc3QgeyBmeCwgZnksIGZ6LCBsaWZlLCBlYXNpbmcsIGlzRW5hYmxlZCA9IHRydWUgfSA9IGpzb247XG5cbiAgICByZXR1cm4gbmV3IEZvcmNlKGZ4LCBmeSwgZnosIGxpZmUsIGdldEVhc2luZ0J5TmFtZShlYXNpbmcpLCBpc0VuYWJsZWQpO1xuICB9XG59XG4iXX0= ================================================ FILE: packages/sdk/lib/core/libs/three-nebula/behaviour/Gravity.js ================================================ import Force from './Force'; import { getEasingByName } from '../ease'; import { BEHAVIOUR_TYPE_GRAVITY as type } from './types'; /** * Behaviour that forces particles down the y axis. * */ export default class Gravity extends Force { /** * Constructs a Gravity behaviour instance. * * @param {number} gravity - the force to pull the particle down the y axis * @param {number} life - the life of the particle * @param {function} easing - The behaviour's decaying trend * @param {boolean} [isEnabled=true] - Determines if the behaviour will be applied or not * @return void */ constructor(gravity, life, easing, isEnabled = true) { super(0, -gravity, 0, life, easing, isEnabled); /** * @desc The class type. * @type {string} */ this.type = type; } static fromJSON(json) { const { gravity, life, easing, isEnabled = true } = json; return new Gravity(gravity, life, getEasingByName(easing), isEnabled); } } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9iZWhhdmlvdXIvR3Jhdml0eS5qcyJdLCJuYW1lcyI6WyJGb3JjZSIsImdldEVhc2luZ0J5TmFtZSIsIkJFSEFWSU9VUl9UWVBFX0dSQVZJVFkiLCJ0eXBlIiwiR3Jhdml0eSIsImNvbnN0cnVjdG9yIiwiZ3Jhdml0eSIsImxpZmUiLCJlYXNpbmciLCJpc0VuYWJsZWQiLCJmcm9tSlNPTiIsImpzb24iXSwibWFwcGluZ3MiOiJBQUFBLE9BQU9BLEtBQVAsTUFBa0IsU0FBbEI7QUFDQSxTQUFTQyxlQUFULFFBQWdDLFNBQWhDO0FBQ0EsU0FBU0Msc0JBQXNCLElBQUlDLElBQW5DLFFBQStDLFNBQS9DO0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBQ0EsZUFBZSxNQUFNQyxPQUFOLFNBQXNCSixLQUF0QixDQUE0QjtBQUN6QztBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDRUssRUFBQUEsV0FBVyxDQUFDQyxPQUFELEVBQVVDLElBQVYsRUFBZ0JDLE1BQWhCLEVBQXdCQyxTQUFTLEdBQUcsSUFBcEMsRUFBMEM7QUFDbkQsVUFBTSxDQUFOLEVBQVMsQ0FBQ0gsT0FBVixFQUFtQixDQUFuQixFQUFzQkMsSUFBdEIsRUFBNEJDLE1BQTVCLEVBQW9DQyxTQUFwQztBQUVBO0FBQ0o7QUFDQTtBQUNBOztBQUNJLFNBQUtOLElBQUwsR0FBWUEsSUFBWjtBQUNEOztBQUVjLFNBQVJPLFFBQVEsQ0FBQ0MsSUFBRCxFQUFPO0FBQ3BCLFVBQU07QUFBRUwsTUFBQUEsT0FBRjtBQUFXQyxNQUFBQSxJQUFYO0FBQWlCQyxNQUFBQSxNQUFqQjtBQUF5QkMsTUFBQUEsU0FBUyxHQUFHO0FBQXJDLFFBQThDRSxJQUFwRDtBQUVBLFdBQU8sSUFBSVAsT0FBSixDQUFZRSxPQUFaLEVBQXFCQyxJQUFyQixFQUEyQk4sZUFBZSxDQUFDTyxNQUFELENBQTFDLEVBQW9EQyxTQUFwRCxDQUFQO0FBQ0Q7O0FBeEJ3QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBGb3JjZSBmcm9tICcuL0ZvcmNlJztcbmltcG9ydCB7IGdldEVhc2luZ0J5TmFtZSB9IGZyb20gJy4uL2Vhc2UnO1xuaW1wb3J0IHsgQkVIQVZJT1VSX1RZUEVfR1JBVklUWSBhcyB0eXBlIH0gZnJvbSAnLi90eXBlcyc7XG5cbi8qKlxuICogQmVoYXZpb3VyIHRoYXQgZm9yY2VzIHBhcnRpY2xlcyBkb3duIHRoZSB5IGF4aXMuXG4gKlxuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBHcmF2aXR5IGV4dGVuZHMgRm9yY2Uge1xuICAvKipcbiAgICogQ29uc3RydWN0cyBhIEdyYXZpdHkgYmVoYXZpb3VyIGluc3RhbmNlLlxuICAgKlxuICAgKiBAcGFyYW0ge251bWJlcn0gZ3Jhdml0eSAtIHRoZSBmb3JjZSB0byBwdWxsIHRoZSBwYXJ0aWNsZSBkb3duIHRoZSB5IGF4aXNcbiAgICogQHBhcmFtIHtudW1iZXJ9IGxpZmUgLSB0aGUgbGlmZSBvZiB0aGUgcGFydGljbGVcbiAgICogQHBhcmFtIHtzdHJpbmd9IGVhc2luZyAtIHRoZSBlYXNpbmcgZXF1YXRpb24gdG8gdXNlXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gW2lzRW5hYmxlZD10cnVlXSAtIERldGVybWluZXMgaWYgdGhlIGJlaGF2aW91ciB3aWxsIGJlIGFwcGxpZWQgb3Igbm90XG4gICAqIEByZXR1cm4gdm9pZFxuICAgKi9cbiAgY29uc3RydWN0b3IoZ3Jhdml0eSwgbGlmZSwgZWFzaW5nLCBpc0VuYWJsZWQgPSB0cnVlKSB7XG4gICAgc3VwZXIoMCwgLWdyYXZpdHksIDAsIGxpZmUsIGVhc2luZywgaXNFbmFibGVkKTtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjIFRoZSBjbGFzcyB0eXBlLlxuICAgICAqIEB0eXBlIHtzdHJpbmd9XG4gICAgICovXG4gICAgdGhpcy50eXBlID0gdHlwZTtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tSlNPTihqc29uKSB7XG4gICAgY29uc3QgeyBncmF2aXR5LCBsaWZlLCBlYXNpbmcsIGlzRW5hYmxlZCA9IHRydWUgfSA9IGpzb247XG5cbiAgICByZXR1cm4gbmV3IEdyYXZpdHkoZ3Jhdml0eSwgbGlmZSwgZ2V0RWFzaW5nQnlOYW1lKGVhc2luZyksIGlzRW5hYmxlZCk7XG4gIH1cbn1cbiJdfQ== ================================================ FILE: packages/sdk/lib/core/libs/three-nebula/behaviour/RandomDrift.js ================================================ import { MathUtils, Vector3D, createSpan } from '../math'; import Behaviour from './Behaviour'; import { DEFAULT_RANDOM_DRIFT_DELAY } from './constants'; import { getEasingByName } from '../ease'; import { BEHAVIOUR_TYPE_RANDOM_DRIFT as type } from './types'; /** * Behaviour that causes particles to drift to random coordinates in 3D space. * */ export default class RandomDrift extends Behaviour { /** * Constructs a RandomDrift behaviour instance. * * @param {number} driftX - x axis drift * @param {number} driftY - y axis drift * @param {number} driftZ - z axis drift * @param {number} [delay=DEFAULT_RANDOM_DRIFT_DELAY] - drift delay * @param {number} life - The life of the particle * @param {function} easing - The behaviour's decaying trend * @return void */ constructor(driftX, driftY, driftZ, delay = DEFAULT_RANDOM_DRIFT_DELAY, life = Infinity, easing, isEnabled = true) { super(life, easing, type, isEnabled); this.reset(driftX, driftY, driftZ, delay); /** * @desc Internal time used for calculating drift vs internal delay. * @type {number} */ this.time = 0; } /** * Resets the behaviour properties. * * @param {number} driftX - x axis drift * @param {number} driftY - y axis drift * @param {number} driftZ - z axis drift * @param {number} [delay=DEFAULT_RANDOM_DRIFT_DELAY] - drift delay * @param {number} life - The life of the particle * @param {function} easing - The behaviour's decaying trend */ reset(driftX, driftY, driftZ, delay = DEFAULT_RANDOM_DRIFT_DELAY, life, easing) { /** * @desc A Vector3D that stores the drift properties. * @type {Vector3D} */ this.randomForce = this.normalizeForce(new Vector3D(driftX, driftY, driftZ)); /** * @desc A Span containing the delay supplied. * @type {Span} */ this.delayPan = createSpan(delay); this.time = 0; life && super.reset(life, easing); } /** * Mutates the particle.acceleration property. * * @param {object} particle - the particle to apply the behaviour to * @param {number} time - engine time * @param {integer} index - the particle index * @return void */ mutate(particle, time, index) { this.energize(particle, time, index); this.time += time; if (this.time >= this.delayPan.getValue()) { const ax = MathUtils.randomAToB(-this.randomForce.x, this.randomForce.x); const ay = MathUtils.randomAToB(-this.randomForce.y, this.randomForce.y); const az = MathUtils.randomAToB(-this.randomForce.z, this.randomForce.z); particle.acceleration.addValue(ax, ay, az); this.time = 0; } } static fromJSON(json) { const { x, y, z, delay, life, easing, isEnabled = true } = json; return new RandomDrift(x, y, z, delay, life, getEasingByName(easing), isEnabled); } } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9iZWhhdmlvdXIvUmFuZG9tRHJpZnQuanMiXSwibmFtZXMiOlsiTWF0aFV0aWxzIiwiVmVjdG9yM0QiLCJjcmVhdGVTcGFuIiwiQmVoYXZpb3VyIiwiREVGQVVMVF9SQU5ET01fRFJJRlRfREVMQVkiLCJnZXRFYXNpbmdCeU5hbWUiLCJCRUhBVklPVVJfVFlQRV9SQU5ET01fRFJJRlQiLCJ0eXBlIiwiUmFuZG9tRHJpZnQiLCJjb25zdHJ1Y3RvciIsImRyaWZ0WCIsImRyaWZ0WSIsImRyaWZ0WiIsImRlbGF5IiwibGlmZSIsImVhc2luZyIsImlzRW5hYmxlZCIsInJlc2V0IiwidGltZSIsInJhbmRvbUZvcmNlIiwibm9ybWFsaXplRm9yY2UiLCJkZWxheVBhbiIsIm11dGF0ZSIsInBhcnRpY2xlIiwiaW5kZXgiLCJlbmVyZ2l6ZSIsImdldFZhbHVlIiwiYXgiLCJyYW5kb21BVG9CIiwieCIsImF5IiwieSIsImF6IiwieiIsImFjY2VsZXJhdGlvbiIsImFkZFZhbHVlIiwiZnJvbUpTT04iLCJqc29uIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUFTQSxTQUFULEVBQW9CQyxRQUFwQixFQUE4QkMsVUFBOUIsUUFBZ0QsU0FBaEQ7QUFFQSxPQUFPQyxTQUFQLE1BQXNCLGFBQXRCO0FBQ0EsU0FBU0MsMEJBQVQsUUFBMkMsYUFBM0M7QUFDQSxTQUFTQyxlQUFULFFBQWdDLFNBQWhDO0FBQ0EsU0FBU0MsMkJBQTJCLElBQUlDLElBQXhDLFFBQW9ELFNBQXBEO0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBQ0EsZUFBZSxNQUFNQyxXQUFOLFNBQTBCTCxTQUExQixDQUFvQztBQUNqRDtBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0VNLEVBQUFBLFdBQVcsQ0FDVEMsTUFEUyxFQUVUQyxNQUZTLEVBR1RDLE1BSFMsRUFJVEMsS0FBSyxHQUFHVCwwQkFKQyxFQUtUVSxJQUxTLEVBTVRDLE1BTlMsRUFPVEMsU0FBUyxHQUFHLElBUEgsRUFRVDtBQUNBLFVBQU1GLElBQU4sRUFBWUMsTUFBWixFQUFvQlIsSUFBcEIsRUFBMEJTLFNBQTFCO0FBRUEsU0FBS0MsS0FBTCxDQUFXUCxNQUFYLEVBQW1CQyxNQUFuQixFQUEyQkMsTUFBM0IsRUFBbUNDLEtBQW5DO0FBRUE7QUFDSjtBQUNBO0FBQ0E7O0FBQ0ksU0FBS0ssSUFBTCxHQUFZLENBQVo7QUFDRDtBQUVEO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFDRUQsRUFBQUEsS0FBSyxDQUNIUCxNQURHLEVBRUhDLE1BRkcsRUFHSEMsTUFIRyxFQUlIQyxLQUFLLEdBQUdULDBCQUpMLEVBS0hVLElBTEcsRUFNSEMsTUFORyxFQU9IO0FBQ0E7QUFDSjtBQUNBO0FBQ0E7QUFDSSxTQUFLSSxXQUFMLEdBQW1CLEtBQUtDLGNBQUwsQ0FDakIsSUFBSW5CLFFBQUosQ0FBYVMsTUFBYixFQUFxQkMsTUFBckIsRUFBNkJDLE1BQTdCLENBRGlCLENBQW5CO0FBR0E7QUFDSjtBQUNBO0FBQ0E7O0FBQ0ksU0FBS1MsUUFBTCxHQUFnQm5CLFVBQVUsQ0FBQ1csS0FBRCxDQUExQjtBQUNBLFNBQUtLLElBQUwsR0FBWSxDQUFaO0FBRUFKLElBQUFBLElBQUksSUFBSSxNQUFNRyxLQUFOLENBQVlILElBQVosRUFBa0JDLE1BQWxCLENBQVI7QUFDRDtBQUVEO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUNFTyxFQUFBQSxNQUFNLENBQUNDLFFBQUQsRUFBV0wsSUFBWCxFQUFpQk0sS0FBakIsRUFBd0I7QUFDNUIsU0FBS0MsUUFBTCxDQUFjRixRQUFkLEVBQXdCTCxJQUF4QixFQUE4Qk0sS0FBOUI7QUFFQSxTQUFLTixJQUFMLElBQWFBLElBQWI7O0FBRUEsUUFBSSxLQUFLQSxJQUFMLElBQWEsS0FBS0csUUFBTCxDQUFjSyxRQUFkLEVBQWpCLEVBQTJDO0FBQ3pDLFlBQU1DLEVBQUUsR0FBRzNCLFNBQVMsQ0FBQzRCLFVBQVYsQ0FBcUIsQ0FBQyxLQUFLVCxXQUFMLENBQWlCVSxDQUF2QyxFQUEwQyxLQUFLVixXQUFMLENBQWlCVSxDQUEzRCxDQUFYO0FBQ0EsWUFBTUMsRUFBRSxHQUFHOUIsU0FBUyxDQUFDNEIsVUFBVixDQUFxQixDQUFDLEtBQUtULFdBQUwsQ0FBaUJZLENBQXZDLEVBQTBDLEtBQUtaLFdBQUwsQ0FBaUJZLENBQTNELENBQVg7QUFDQSxZQUFNQyxFQUFFLEdBQUdoQyxTQUFTLENBQUM0QixVQUFWLENBQXFCLENBQUMsS0FBS1QsV0FBTCxDQUFpQmMsQ0FBdkMsRUFBMEMsS0FBS2QsV0FBTCxDQUFpQmMsQ0FBM0QsQ0FBWDtBQUVBVixNQUFBQSxRQUFRLENBQUNXLFlBQVQsQ0FBc0JDLFFBQXRCLENBQStCUixFQUEvQixFQUFtQ0csRUFBbkMsRUFBdUNFLEVBQXZDO0FBRUEsV0FBS2QsSUFBTCxHQUFZLENBQVo7QUFDRDtBQUNGOztBQUVjLFNBQVJrQixRQUFRLENBQUNDLElBQUQsRUFBTztBQUNwQixVQUFNO0FBQUVSLE1BQUFBLENBQUY7QUFBS0UsTUFBQUEsQ0FBTDtBQUFRRSxNQUFBQSxDQUFSO0FBQVdwQixNQUFBQSxLQUFYO0FBQWtCQyxNQUFBQSxJQUFsQjtBQUF3QkMsTUFBQUEsTUFBeEI7QUFBZ0NDLE1BQUFBLFNBQVMsR0FBRztBQUE1QyxRQUFxRHFCLElBQTNEO0FBRUEsV0FBTyxJQUFJN0IsV0FBSixDQUNMcUIsQ0FESyxFQUVMRSxDQUZLLEVBR0xFLENBSEssRUFJTHBCLEtBSkssRUFLTEMsSUFMSyxFQU1MVCxlQUFlLENBQUNVLE1BQUQsQ0FOVixFQU9MQyxTQVBLLENBQVA7QUFTRDs7QUF2R2dEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTWF0aFV0aWxzLCBWZWN0b3IzRCwgY3JlYXRlU3BhbiB9IGZyb20gJy4uL21hdGgnO1xuXG5pbXBvcnQgQmVoYXZpb3VyIGZyb20gJy4vQmVoYXZpb3VyJztcbmltcG9ydCB7IERFRkFVTFRfUkFORE9NX0RSSUZUX0RFTEFZIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgZ2V0RWFzaW5nQnlOYW1lIH0gZnJvbSAnLi4vZWFzZSc7XG5pbXBvcnQgeyBCRUhBVklPVVJfVFlQRV9SQU5ET01fRFJJRlQgYXMgdHlwZSB9IGZyb20gJy4vdHlwZXMnO1xuXG4vKipcbiAqIEJlaGF2aW91ciB0aGF0IGNhdXNlcyBwYXJ0aWNsZXMgdG8gZHJpZnQgdG8gcmFuZG9tIGNvb3JkaW5hdGVzIGluIDNEIHNwYWNlLlxuICpcbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgUmFuZG9tRHJpZnQgZXh0ZW5kcyBCZWhhdmlvdXIge1xuICAvKipcbiAgICogQ29uc3RydWN0cyBhIFJhbmRvbURyaWZ0IGJlaGF2aW91ciBpbnN0YW5jZS5cbiAgICpcbiAgICogQHBhcmFtIHtudW1iZXJ9IGRyaWZ0WCAtIHggYXhpcyBkcmlmdFxuICAgKiBAcGFyYW0ge251bWJlcn0gZHJpZnRZIC0geSBheGlzIGRyaWZ0XG4gICAqIEBwYXJhbSB7bnVtYmVyfSBkcmlmdFogLSB6IGF4aXMgZHJpZnRcbiAgICogQHBhcmFtIHtudW1iZXJ9IFtkZWxheT1ERUZBVUxUX1JBTkRPTV9EUklGVF9ERUxBWV0gLSBkcmlmdCBkZWxheVxuICAgKiBAcGFyYW0ge251bWJlcn0gbGlmZSAtIFRoZSBsaWZlIG9mIHRoZSBwYXJ0aWNsZVxuICAgKiBAcGFyYW0ge2Z1bmN0aW9ufSBlYXNpbmcgLSBUaGUgYmVoYXZpb3VyJ3MgZGVjYXlpbmcgdHJlbmRcbiAgICogQHJldHVybiB2b2lkXG4gICAqL1xuICBjb25zdHJ1Y3RvcihcbiAgICBkcmlmdFgsXG4gICAgZHJpZnRZLFxuICAgIGRyaWZ0WixcbiAgICBkZWxheSA9IERFRkFVTFRfUkFORE9NX0RSSUZUX0RFTEFZLFxuICAgIGxpZmUsXG4gICAgZWFzaW5nLFxuICAgIGlzRW5hYmxlZCA9IHRydWVcbiAgKSB7XG4gICAgc3VwZXIobGlmZSwgZWFzaW5nLCB0eXBlLCBpc0VuYWJsZWQpO1xuXG4gICAgdGhpcy5yZXNldChkcmlmdFgsIGRyaWZ0WSwgZHJpZnRaLCBkZWxheSk7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzYyBJbnRlcm5hbCB0aW1lIHVzZWQgZm9yIGNhbGN1bGF0aW5nIGRyaWZ0IHZzIGludGVybmFsIGRlbGF5LlxuICAgICAqIEB0eXBlIHtudW1iZXJ9XG4gICAgICovXG4gICAgdGhpcy50aW1lID0gMDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXNldHMgdGhlIGJlaGF2aW91ciBwcm9wZXJ0aWVzLlxuICAgKlxuICAgKiBAcGFyYW0ge251bWJlcn0gZHJpZnRYIC0geCBheGlzIGRyaWZ0XG4gICAqIEBwYXJhbSB7bnVtYmVyfSBkcmlmdFkgLSB5IGF4aXMgZHJpZnRcbiAgICogQHBhcmFtIHtudW1iZXJ9IGRyaWZ0WiAtIHogYXhpcyBkcmlmdFxuICAgKiBAcGFyYW0ge251bWJlcn0gW2RlbGF5PURFRkFVTFRfUkFORE9NX0RSSUZUX0RFTEFZXSAtIGRyaWZ0IGRlbGF5XG4gICAqIEBwYXJhbSB7bnVtYmVyfSBsaWZlIC0gVGhlIGxpZmUgb2YgdGhlIHBhcnRpY2xlXG4gICAqIEBwYXJhbSB7ZnVuY3Rpb259IGVhc2luZyAtIFRoZSBiZWhhdmlvdXIncyBkZWNheWluZyB0cmVuZFxuICAgKi9cbiAgcmVzZXQoXG4gICAgZHJpZnRYLFxuICAgIGRyaWZ0WSxcbiAgICBkcmlmdFosXG4gICAgZGVsYXkgPSBERUZBVUxUX1JBTkRPTV9EUklGVF9ERUxBWSxcbiAgICBsaWZlLFxuICAgIGVhc2luZ1xuICApIHtcbiAgICAvKipcbiAgICAgKiBAZGVzYyBBIFZlY3RvcjNEIHRoYXQgc3RvcmVzIHRoZSBkcmlmdCBwcm9wZXJ0aWVzLlxuICAgICAqIEB0eXBlIHtWZWN0b3IzRH1cbiAgICAgKi9cbiAgICB0aGlzLnJhbmRvbUZvcmNlID0gdGhpcy5ub3JtYWxpemVGb3JjZShcbiAgICAgIG5ldyBWZWN0b3IzRChkcmlmdFgsIGRyaWZ0WSwgZHJpZnRaKVxuICAgICk7XG4gICAgLyoqXG4gICAgICogQGRlc2MgQSBTcGFuIGNvbnRhaW5pbmcgdGhlIGRlbGF5IHN1cHBsaWVkLlxuICAgICAqIEB0eXBlIHtTcGFufVxuICAgICAqL1xuICAgIHRoaXMuZGVsYXlQYW4gPSBjcmVhdGVTcGFuKGRlbGF5KTtcbiAgICB0aGlzLnRpbWUgPSAwO1xuXG4gICAgbGlmZSAmJiBzdXBlci5yZXNldChsaWZlLCBlYXNpbmcpO1xuICB9XG5cbiAgLyoqXG4gICAqIE11dGF0ZXMgdGhlIHBhcnRpY2xlLmFjY2VsZXJhdGlvbiBwcm9wZXJ0eS5cbiAgICpcbiAgICogQHBhcmFtIHtvYmplY3R9IHBhcnRpY2xlIC0gdGhlIHBhcnRpY2xlIHRvIGFwcGx5IHRoZSBiZWhhdmlvdXIgdG9cbiAgICogQHBhcmFtIHtudW1iZXJ9IHRpbWUgLSBlbmdpbmUgdGltZVxuICAgKiBAcGFyYW0ge2ludGVnZXJ9IGluZGV4IC0gdGhlIHBhcnRpY2xlIGluZGV4XG4gICAqIEByZXR1cm4gdm9pZFxuICAgKi9cbiAgbXV0YXRlKHBhcnRpY2xlLCB0aW1lLCBpbmRleCkge1xuICAgIHRoaXMuZW5lcmdpemUocGFydGljbGUsIHRpbWUsIGluZGV4KTtcblxuICAgIHRoaXMudGltZSArPSB0aW1lO1xuXG4gICAgaWYgKHRoaXMudGltZSA+PSB0aGlzLmRlbGF5UGFuLmdldFZhbHVlKCkpIHtcbiAgICAgIGNvbnN0IGF4ID0gTWF0aFV0aWxzLnJhbmRvbUFUb0IoLXRoaXMucmFuZG9tRm9yY2UueCwgdGhpcy5yYW5kb21Gb3JjZS54KTtcbiAgICAgIGNvbnN0IGF5ID0gTWF0aFV0aWxzLnJhbmRvbUFUb0IoLXRoaXMucmFuZG9tRm9yY2UueSwgdGhpcy5yYW5kb21Gb3JjZS55KTtcbiAgICAgIGNvbnN0IGF6ID0gTWF0aFV0aWxzLnJhbmRvbUFUb0IoLXRoaXMucmFuZG9tRm9yY2UueiwgdGhpcy5yYW5kb21Gb3JjZS56KTtcblxuICAgICAgcGFydGljbGUuYWNjZWxlcmF0aW9uLmFkZFZhbHVlKGF4LCBheSwgYXopO1xuXG4gICAgICB0aGlzLnRpbWUgPSAwO1xuICAgIH1cbiAgfVxuXG4gIHN0YXRpYyBmcm9tSlNPTihqc29uKSB7XG4gICAgY29uc3QgeyB4LCB5LCB6LCBkZWxheSwgbGlmZSwgZWFzaW5nLCBpc0VuYWJsZWQgPSB0cnVlIH0gPSBqc29uO1xuXG4gICAgcmV0dXJuIG5ldyBSYW5kb21EcmlmdChcbiAgICAgIHgsXG4gICAgICB5LFxuICAgICAgeixcbiAgICAgIGRlbGF5LFxuICAgICAgbGlmZSxcbiAgICAgIGdldEVhc2luZ0J5TmFtZShlYXNpbmcpLFxuICAgICAgaXNFbmFibGVkXG4gICAgKTtcbiAgfVxufVxuIl19 ================================================ FILE: packages/sdk/lib/core/libs/three-nebula/behaviour/Repulsion.js ================================================ import Attraction from './Attraction'; import { Vector3D } from '../math'; import { getEasingByName } from '../ease'; import { BEHAVIOUR_TYPE_REPULSION as type } from './types'; /** * Behaviour that causes particles to be repelled from a target position. * */ export default class Repulsion extends Attraction { /** * Constructs an Repulsion behaviour instance. * * @param {Vector3D} targetPosition - The position the particles will be repelled from * @param {number} force - The repulsion force scalar multiplier * @param {number} radius - The repulsion radius * @param {number} life - The life of the particle * @param {function} easing - The behaviour's decaying trend * @return void */ constructor(targetPosition, force, radius, life, easing, isEnabled = true) { super(targetPosition, force, radius, life, easing, isEnabled); /** * @desc Repulsion is attraction with negative force. * @type {number} */ this.force *= -1; /** * @desc The class type. * @type {string} */ this.type = type; } /** * Resets the behaviour properties. * * @param {Vector3D} targetPosition - the position the particles will be attracted to * @param {number} force - the attraction force multiplier * @param {number} radius - the attraction radius * @param {number} life - the life of the particle * @param {function} easing - The behaviour's decaying trend * @return void */ reset(targetPosition, force, radius, life, easing) { super.reset(targetPosition, force, radius, life, easing); this.force *= -1; } /** * Creates a Body initializer from JSON. * * @param {object} json - The JSON to construct the instance from. * @property {number} json.x - The target position x value * @property {number} json.y - The target position y value * @property {number} json.z - The target position z value * @property {number} json.force - The attraction force scalar multiplier * @property {number} json.life - The life of the particle * @property {string} json.easing - The behaviour's decaying trend * @return {Body} */ static fromJSON(json) { const { x, y, z, force, radius, life, easing, isEnabled = true } = json; return new Repulsion(new Vector3D(x, y, z), force, radius, life, getEasingByName(easing), isEnabled); } } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9iZWhhdmlvdXIvUmVwdWxzaW9uLmpzIl0sIm5hbWVzIjpbIkF0dHJhY3Rpb24iLCJWZWN0b3IzRCIsImdldEVhc2luZ0J5TmFtZSIsIkJFSEFWSU9VUl9UWVBFX1JFUFVMU0lPTiIsInR5cGUiLCJSZXB1bHNpb24iLCJjb25zdHJ1Y3RvciIsInRhcmdldFBvc2l0aW9uIiwiZm9yY2UiLCJyYWRpdXMiLCJsaWZlIiwiZWFzaW5nIiwiaXNFbmFibGVkIiwicmVzZXQiLCJmcm9tSlNPTiIsImpzb24iLCJ4IiwieSIsInoiXSwibWFwcGluZ3MiOiJBQUFBLE9BQU9BLFVBQVAsTUFBdUIsY0FBdkI7QUFDQSxTQUFTQyxRQUFULFFBQXlCLFNBQXpCO0FBQ0EsU0FBU0MsZUFBVCxRQUFnQyxTQUFoQztBQUNBLFNBQVNDLHdCQUF3QixJQUFJQyxJQUFyQyxRQUFpRCxTQUFqRDtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUNBLGVBQWUsTUFBTUMsU0FBTixTQUF3QkwsVUFBeEIsQ0FBbUM7QUFDaEQ7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDRU0sRUFBQUEsV0FBVyxDQUFDQyxjQUFELEVBQWlCQyxLQUFqQixFQUF3QkMsTUFBeEIsRUFBZ0NDLElBQWhDLEVBQXNDQyxNQUF0QyxFQUE4Q0MsU0FBUyxHQUFHLElBQTFELEVBQWdFO0FBQ3pFLFVBQU1MLGNBQU4sRUFBc0JDLEtBQXRCLEVBQTZCQyxNQUE3QixFQUFxQ0MsSUFBckMsRUFBMkNDLE1BQTNDLEVBQW1EQyxTQUFuRDtBQUVBO0FBQ0o7QUFDQTtBQUNBOztBQUNJLFNBQUtKLEtBQUwsSUFBYyxDQUFDLENBQWY7QUFFQTtBQUNKO0FBQ0E7QUFDQTs7QUFDSSxTQUFLSixJQUFMLEdBQVlBLElBQVo7QUFDRDtBQUVEO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFDRVMsRUFBQUEsS0FBSyxDQUFDTixjQUFELEVBQWlCQyxLQUFqQixFQUF3QkMsTUFBeEIsRUFBZ0NDLElBQWhDLEVBQXNDQyxNQUF0QyxFQUE4QztBQUNqRCxVQUFNRSxLQUFOLENBQVlOLGNBQVosRUFBNEJDLEtBQTVCLEVBQW1DQyxNQUFuQyxFQUEyQ0MsSUFBM0MsRUFBaURDLE1BQWpEO0FBQ0EsU0FBS0gsS0FBTCxJQUFjLENBQUMsQ0FBZjtBQUNEO0FBRUQ7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFDaUIsU0FBUk0sUUFBUSxDQUFDQyxJQUFELEVBQU87QUFDcEIsVUFBTTtBQUFFQyxNQUFBQSxDQUFGO0FBQUtDLE1BQUFBLENBQUw7QUFBUUMsTUFBQUEsQ0FBUjtBQUFXVixNQUFBQSxLQUFYO0FBQWtCQyxNQUFBQSxNQUFsQjtBQUEwQkMsTUFBQUEsSUFBMUI7QUFBZ0NDLE1BQUFBLE1BQWhDO0FBQXdDQyxNQUFBQSxTQUFTLEdBQUc7QUFBcEQsUUFBNkRHLElBQW5FO0FBRUEsV0FBTyxJQUFJVixTQUFKLENBQ0wsSUFBSUosUUFBSixDQUFhZSxDQUFiLEVBQWdCQyxDQUFoQixFQUFtQkMsQ0FBbkIsQ0FESyxFQUVMVixLQUZLLEVBR0xDLE1BSEssRUFJTEMsSUFKSyxFQUtMUixlQUFlLENBQUNTLE1BQUQsQ0FMVixFQU1MQyxTQU5LLENBQVA7QUFRRDs7QUFqRStDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEF0dHJhY3Rpb24gZnJvbSAnLi9BdHRyYWN0aW9uJztcbmltcG9ydCB7IFZlY3RvcjNEIH0gZnJvbSAnLi4vbWF0aCc7XG5pbXBvcnQgeyBnZXRFYXNpbmdCeU5hbWUgfSBmcm9tICcuLi9lYXNlJztcbmltcG9ydCB7IEJFSEFWSU9VUl9UWVBFX1JFUFVMU0lPTiBhcyB0eXBlIH0gZnJvbSAnLi90eXBlcyc7XG4vKipcbiAqIEJlaGF2aW91ciB0aGF0IGNhdXNlcyBwYXJ0aWNsZXMgdG8gYmUgcmVwZWxsZWQgZnJvbSBhIHRhcmdldCBwb3NpdGlvbi5cbiAqXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFJlcHVsc2lvbiBleHRlbmRzIEF0dHJhY3Rpb24ge1xuICAvKipcbiAgICogQ29uc3RydWN0cyBhbiBSZXB1bHNpb24gYmVoYXZpb3VyIGluc3RhbmNlLlxuICAgKlxuICAgKiBAcGFyYW0ge1ZlY3RvcjNEfSB0YXJnZXRQb3NpdGlvbiAtIFRoZSBwb3NpdGlvbiB0aGUgcGFydGljbGVzIHdpbGwgYmUgcmVwZWxsZWQgZnJvbVxuICAgKiBAcGFyYW0ge251bWJlcn0gZm9yY2UgLSBUaGUgcmVwdWxzaW9uIGZvcmNlIHNjYWxhciBtdWx0aXBsaWVyXG4gICAqIEBwYXJhbSB7bnVtYmVyfSByYWRpdXMgLSBUaGUgcmVwdWxzaW9uIHJhZGl1c1xuICAgKiBAcGFyYW0ge251bWJlcn0gbGlmZSAtIFRoZSBsaWZlIG9mIHRoZSBwYXJ0aWNsZVxuICAgKiBAcGFyYW0ge2Z1bmN0aW9ufSBlYXNpbmcgLSBUaGUgYmVoYXZpb3VyJ3MgZGVjYXlpbmcgdHJlbmRcbiAgICogQHJldHVybiB2b2lkXG4gICAqL1xuICBjb25zdHJ1Y3Rvcih0YXJnZXRQb3NpdGlvbiwgZm9yY2UsIHJhZGl1cywgbGlmZSwgZWFzaW5nLCBpc0VuYWJsZWQgPSB0cnVlKSB7XG4gICAgc3VwZXIodGFyZ2V0UG9zaXRpb24sIGZvcmNlLCByYWRpdXMsIGxpZmUsIGVhc2luZywgaXNFbmFibGVkKTtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjIFJlcHVsc2lvbiBpcyBhdHRyYWN0aW9uIHdpdGggbmVnYXRpdmUgZm9yY2UuXG4gICAgICogQHR5cGUge251bWJlcn1cbiAgICAgKi9cbiAgICB0aGlzLmZvcmNlICo9IC0xO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2MgVGhlIGNsYXNzIHR5cGUuXG4gICAgICogQHR5cGUge3N0cmluZ31cbiAgICAgKi9cbiAgICB0aGlzLnR5cGUgPSB0eXBlO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlc2V0cyB0aGUgYmVoYXZpb3VyIHByb3BlcnRpZXMuXG4gICAqXG4gICAqIEBwYXJhbSB7VmVjdG9yM0R9IHRhcmdldFBvc2l0aW9uIC0gdGhlIHBvc2l0aW9uIHRoZSBwYXJ0aWNsZXMgd2lsbCBiZSBhdHRyYWN0ZWQgdG9cbiAgICogQHBhcmFtIHtudW1iZXJ9IGZvcmNlIC0gdGhlIGF0dHJhY3Rpb24gZm9yY2UgbXVsdGlwbGllclxuICAgKiBAcGFyYW0ge251bWJlcn0gcmFkaXVzIC0gdGhlIGF0dHJhY3Rpb24gcmFkaXVzXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBsaWZlIC0gdGhlIGxpZmUgb2YgdGhlIHBhcnRpY2xlXG4gICAqIEBwYXJhbSB7ZnVuY3Rpb259IGVhc2luZyAtIFRoZSBiZWhhdmlvdXIncyBkZWNheWluZyB0cmVuZFxuICAgKiBAcmV0dXJuIHZvaWRcbiAgICovXG4gIHJlc2V0KHRhcmdldFBvc2l0aW9uLCBmb3JjZSwgcmFkaXVzLCBsaWZlLCBlYXNpbmcpIHtcbiAgICBzdXBlci5yZXNldCh0YXJnZXRQb3NpdGlvbiwgZm9yY2UsIHJhZGl1cywgbGlmZSwgZWFzaW5nKTtcbiAgICB0aGlzLmZvcmNlICo9IC0xO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBCb2R5IGluaXRpYWxpemVyIGZyb20gSlNPTi5cbiAgICpcbiAgICogQHBhcmFtIHtvYmplY3R9IGpzb24gLSBUaGUgSlNPTiB0byBjb25zdHJ1Y3QgdGhlIGluc3RhbmNlIGZyb20uXG4gICAqIEBwcm9wZXJ0eSB7bnVtYmVyfSBqc29uLnggLSBUaGUgdGFyZ2V0IHBvc2l0aW9uIHggdmFsdWVcbiAgICogQHByb3BlcnR5IHtudW1iZXJ9IGpzb24ueSAtIFRoZSB0YXJnZXQgcG9zaXRpb24geSB2YWx1ZVxuICAgKiBAcHJvcGVydHkge251bWJlcn0ganNvbi56IC0gVGhlIHRhcmdldCBwb3NpdGlvbiB6IHZhbHVlXG4gICAqIEBwcm9wZXJ0eSB7bnVtYmVyfSBqc29uLmZvcmNlIC0gVGhlIGF0dHJhY3Rpb24gZm9yY2Ugc2NhbGFyIG11bHRpcGxpZXJcbiAgICogQHByb3BlcnR5IHtudW1iZXJ9IGpzb24ubGlmZSAtIFRoZSBsaWZlIG9mIHRoZSBwYXJ0aWNsZVxuICAgKiBAcHJvcGVydHkge3N0cmluZ30ganNvbi5lYXNpbmcgLSBUaGUgYmVoYXZpb3VyJ3MgZGVjYXlpbmcgdHJlbmRcbiAgICogQHJldHVybiB7Qm9keX1cbiAgICovXG4gIHN0YXRpYyBmcm9tSlNPTihqc29uKSB7XG4gICAgY29uc3QgeyB4LCB5LCB6LCBmb3JjZSwgcmFkaXVzLCBsaWZlLCBlYXNpbmcsIGlzRW5hYmxlZCA9IHRydWUgfSA9IGpzb247XG5cbiAgICByZXR1cm4gbmV3IFJlcHVsc2lvbihcbiAgICAgIG5ldyBWZWN0b3IzRCh4LCB5LCB6KSxcbiAgICAgIGZvcmNlLFxuICAgICAgcmFkaXVzLFxuICAgICAgbGlmZSxcbiAgICAgIGdldEVhc2luZ0J5TmFtZShlYXNpbmcpLFxuICAgICAgaXNFbmFibGVkXG4gICAgKTtcbiAgfVxufVxuIl19 ================================================ FILE: packages/sdk/lib/core/libs/three-nebula/behaviour/Rotate.js ================================================ import { DR, PI } from '../constants'; import { MathUtils, Vector3D, createSpan } from '../math'; import Behaviour from './Behaviour'; import { getEasingByName } from '../ease'; import { BEHAVIOUR_TYPE_ROTATE as type } from './types'; /** * Behaviour that rotates particles. */ export default class Rotate extends Behaviour { /** * Constructs a Rotate behaviour instance. * * @param {number} x - X axis rotation * @param {number} y - Y axis rotation * @param {number} z - Z axis rotation * @param {number} life - The life of the behaviour * @param {function} easing - The easing equation to use for transforms * @param {boolean} [isEnabled=true] - Determines if the behaviour will be applied or not * @return void */ constructor(x, y, z, life = Infinity, easing, isEnabled = true) { super(life, easing, type, isEnabled); this.reset(x, y, z); } /** * Gets the rotation type. * * @return {string} */ get rotationType() { return this._rotationType; } /** * Sets the rotation type. * * @param {string} * @return void */ set rotationType(rotationType) { /** * @desc The rotation type. ENUM of ['same', 'set', 'to', 'add']. * @type {string} */ this._rotationType = rotationType; } /** * Resets the behaviour properties. * * @param {number} x - X axis rotation * @param {number} y - Y axis rotation * @param {number} z - Z axis rotation * @param {number} life - the life of the behaviour * @param {function} easing - the easing equation to use for transforms * @return void */ reset(x, y, z, life, easing) { /** * @desc X axis rotation. * @type {number|Span} */ this.x = x || 0; /** * @desc Y axis rotation. * @type {number|Span} */ this.y = y || 0; /** * @desc Z axis rotation. * @type {number|Span} */ this.z = z || 0; if (x === undefined || x == 'same') { this.rotationType = 'same'; } else if (y == undefined) { this.rotationType = 'set'; } else if (z === undefined) { this.rotationType = 'to'; } else { this.rotationType = 'add'; this.x = createSpan(this.x * DR); this.y = createSpan(this.y * DR); this.z = createSpan(this.z * DR); } life && super.reset(life, easing); } /** * Initializes the behaviour on a particle. * * @param {object} particle - the particle to initialize the behaviour on * @return void */ initialize(particle) { switch (this.rotationType) { case 'same': break; case 'set': this._setRotation(particle.rotation, this.x); break; case 'to': particle.transform.fR = particle.transform.fR || new Vector3D(); particle.transform.tR = particle.transform.tR || new Vector3D(); this._setRotation(particle.transform.fR, this.x); this._setRotation(particle.transform.tR, this.y); break; case 'add': particle.transform.addR = new Vector3D(this.x.getValue(), this.y.getValue(), this.z.getValue()); break; } } /** * Sets the particle's rotation prior to the behaviour being applied. * * NOTE It's hard to see here, but this is mutating the particle's rotation * even though the particle is not being passed in directly. * * NOTE the else if below will never be reached because the value being passed in * will never be of type Vector3D. * * @param {Vector3D} particleRotation - the particle's rotation vector * @param {string|number} value - the value to set the rotation value to, if 'random' * rotation is randomised * @return void */ _setRotation(particleRotation, value) { particleRotation = particleRotation || new Vector3D(); if (value == 'random') { var x = MathUtils.randomAToB(-PI, PI); var y = MathUtils.randomAToB(-PI, PI); var z = MathUtils.randomAToB(-PI, PI); particleRotation.set(x, y, z); } // we can't ever get here because value will never be a Vector3D! // consider refactoring to // if (value instance of Span) { vec3.add(value.getValue()); } else if (value instanceof Vector3D) { particleRotation.copy(value); } } /** * Mutates the particle.rotation property. * * @see http://stackoverflow.com/questions/21622956/how-to-convert-direction-vector-to-euler-angles * @param {object} particle - the particle to apply the behaviour to * @param {number} time - engine time * @param {integer} index - the particle index * @return void */ mutate(particle, time, index) { this.energize(particle, time, index); switch (this.rotationType) { // orients the particle in the direction it is moving case 'same': if (!particle.rotation) { particle.rotation = new Vector3D(); } particle.rotation.copy(particle.velocity); break; case 'set': // break; case 'to': particle.rotation.x = MathUtils.lerp(particle.transform.fR.x, particle.transform.tR.x, this.energy); particle.rotation.y = MathUtils.lerp(particle.transform.fR.y, particle.transform.tR.y, this.energy); particle.rotation.z = MathUtils.lerp(particle.transform.fR.z, particle.transform.tR.z, this.energy); break; case 'add': particle.rotation.add(particle.transform.addR); break; } } static fromJSON(json) { const { x, y, z, life, easing, isEnabled = true } = json; return new Rotate(x, y, z, life, getEasingByName(easing), isEnabled); } } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9iZWhhdmlvdXIvUm90YXRlLmpzIl0sIm5hbWVzIjpbIkRSIiwiUEkiLCJNYXRoVXRpbHMiLCJWZWN0b3IzRCIsImNyZWF0ZVNwYW4iLCJCZWhhdmlvdXIiLCJnZXRFYXNpbmdCeU5hbWUiLCJCRUhBVklPVVJfVFlQRV9ST1RBVEUiLCJ0eXBlIiwiUm90YXRlIiwiY29uc3RydWN0b3IiLCJ4IiwieSIsInoiLCJsaWZlIiwiZWFzaW5nIiwiaXNFbmFibGVkIiwicmVzZXQiLCJyb3RhdGlvblR5cGUiLCJfcm90YXRpb25UeXBlIiwidW5kZWZpbmVkIiwiaW5pdGlhbGl6ZSIsInBhcnRpY2xlIiwiX3NldFJvdGF0aW9uIiwicm90YXRpb24iLCJ0cmFuc2Zvcm0iLCJmUiIsInRSIiwiYWRkUiIsImdldFZhbHVlIiwicGFydGljbGVSb3RhdGlvbiIsInZhbHVlIiwicmFuZG9tQVRvQiIsInNldCIsImNvcHkiLCJtdXRhdGUiLCJ0aW1lIiwiaW5kZXgiLCJlbmVyZ2l6ZSIsInZlbG9jaXR5IiwibGVycCIsImVuZXJneSIsImFkZCIsImZyb21KU09OIiwianNvbiJdLCJtYXBwaW5ncyI6IkFBQUEsU0FBU0EsRUFBVCxFQUFhQyxFQUFiLFFBQXVCLGNBQXZCO0FBQ0EsU0FBU0MsU0FBVCxFQUFvQkMsUUFBcEIsRUFBOEJDLFVBQTlCLFFBQWdELFNBQWhEO0FBRUEsT0FBT0MsU0FBUCxNQUFzQixhQUF0QjtBQUNBLFNBQVNDLGVBQVQsUUFBZ0MsU0FBaEM7QUFDQSxTQUFTQyxxQkFBcUIsSUFBSUMsSUFBbEMsUUFBOEMsU0FBOUM7QUFFQTtBQUNBO0FBQ0E7O0FBQ0EsZUFBZSxNQUFNQyxNQUFOLFNBQXFCSixTQUFyQixDQUErQjtBQUM1QztBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0VLLEVBQUFBLFdBQVcsQ0FBQ0MsQ0FBRCxFQUFJQyxDQUFKLEVBQU9DLENBQVAsRUFBVUMsSUFBVixFQUFnQkMsTUFBaEIsRUFBd0JDLFNBQVMsR0FBRyxJQUFwQyxFQUEwQztBQUNuRCxVQUFNRixJQUFOLEVBQVlDLE1BQVosRUFBb0JQLElBQXBCLEVBQTBCUSxTQUExQjtBQUVBLFNBQUtDLEtBQUwsQ0FBV04sQ0FBWCxFQUFjQyxDQUFkLEVBQWlCQyxDQUFqQjtBQUNEO0FBRUQ7QUFDRjtBQUNBO0FBQ0E7QUFDQTs7O0FBQ2tCLE1BQVpLLFlBQVksR0FBRztBQUNqQixXQUFPLEtBQUtDLGFBQVo7QUFDRDtBQUVEO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQ2tCLE1BQVpELFlBQVksQ0FBQ0EsWUFBRCxFQUFlO0FBQzdCO0FBQ0o7QUFDQTtBQUNBO0FBQ0ksU0FBS0MsYUFBTCxHQUFxQkQsWUFBckI7QUFDRDtBQUVEO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFDRUQsRUFBQUEsS0FBSyxDQUFDTixDQUFELEVBQUlDLENBQUosRUFBT0MsQ0FBUCxFQUFVQyxJQUFWLEVBQWdCQyxNQUFoQixFQUF3QjtBQUMzQjtBQUNKO0FBQ0E7QUFDQTtBQUNJLFNBQUtKLENBQUwsR0FBU0EsQ0FBQyxJQUFJLENBQWQ7QUFFQTtBQUNKO0FBQ0E7QUFDQTs7QUFDSSxTQUFLQyxDQUFMLEdBQVNBLENBQUMsSUFBSSxDQUFkO0FBRUE7QUFDSjtBQUNBO0FBQ0E7O0FBQ0ksU0FBS0MsQ0FBTCxHQUFTQSxDQUFDLElBQUksQ0FBZDs7QUFFQSxRQUFJRixDQUFDLEtBQUtTLFNBQU4sSUFBbUJULENBQUMsSUFBSSxNQUE1QixFQUFvQztBQUNsQyxXQUFLTyxZQUFMLEdBQW9CLE1BQXBCO0FBQ0QsS0FGRCxNQUVPLElBQUlOLENBQUMsSUFBSVEsU0FBVCxFQUFvQjtBQUN6QixXQUFLRixZQUFMLEdBQW9CLEtBQXBCO0FBQ0QsS0FGTSxNQUVBLElBQUlMLENBQUMsS0FBS08sU0FBVixFQUFxQjtBQUMxQixXQUFLRixZQUFMLEdBQW9CLElBQXBCO0FBQ0QsS0FGTSxNQUVBO0FBQ0wsV0FBS0EsWUFBTCxHQUFvQixLQUFwQjtBQUNBLFdBQUtQLENBQUwsR0FBU1AsVUFBVSxDQUFDLEtBQUtPLENBQUwsR0FBU1gsRUFBVixDQUFuQjtBQUNBLFdBQUtZLENBQUwsR0FBU1IsVUFBVSxDQUFDLEtBQUtRLENBQUwsR0FBU1osRUFBVixDQUFuQjtBQUNBLFdBQUthLENBQUwsR0FBU1QsVUFBVSxDQUFDLEtBQUtTLENBQUwsR0FBU2IsRUFBVixDQUFuQjtBQUNEOztBQUVEYyxJQUFBQSxJQUFJLElBQUksTUFBTUcsS0FBTixDQUFZSCxJQUFaLEVBQWtCQyxNQUFsQixDQUFSO0FBQ0Q7QUFFRDtBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUNFTSxFQUFBQSxVQUFVLENBQUNDLFFBQUQsRUFBVztBQUNuQixZQUFRLEtBQUtKLFlBQWI7QUFDRSxXQUFLLE1BQUw7QUFDRTs7QUFFRixXQUFLLEtBQUw7QUFDRSxhQUFLSyxZQUFMLENBQWtCRCxRQUFRLENBQUNFLFFBQTNCLEVBQXFDLEtBQUtiLENBQTFDOztBQUNBOztBQUVGLFdBQUssSUFBTDtBQUNFVyxRQUFBQSxRQUFRLENBQUNHLFNBQVQsQ0FBbUJDLEVBQW5CLEdBQXdCSixRQUFRLENBQUNHLFNBQVQsQ0FBbUJDLEVBQW5CLElBQXlCLElBQUl2QixRQUFKLEVBQWpEO0FBQ0FtQixRQUFBQSxRQUFRLENBQUNHLFNBQVQsQ0FBbUJFLEVBQW5CLEdBQXdCTCxRQUFRLENBQUNHLFNBQVQsQ0FBbUJFLEVBQW5CLElBQXlCLElBQUl4QixRQUFKLEVBQWpEOztBQUNBLGFBQUtvQixZQUFMLENBQWtCRCxRQUFRLENBQUNHLFNBQVQsQ0FBbUJDLEVBQXJDLEVBQXlDLEtBQUtmLENBQTlDOztBQUNBLGFBQUtZLFlBQUwsQ0FBa0JELFFBQVEsQ0FBQ0csU0FBVCxDQUFtQkUsRUFBckMsRUFBeUMsS0FBS2YsQ0FBOUM7O0FBQ0E7O0FBRUYsV0FBSyxLQUFMO0FBQ0VVLFFBQUFBLFFBQVEsQ0FBQ0csU0FBVCxDQUFtQkcsSUFBbkIsR0FBMEIsSUFBSXpCLFFBQUosQ0FDeEIsS0FBS1EsQ0FBTCxDQUFPa0IsUUFBUCxFQUR3QixFQUV4QixLQUFLakIsQ0FBTCxDQUFPaUIsUUFBUCxFQUZ3QixFQUd4QixLQUFLaEIsQ0FBTCxDQUFPZ0IsUUFBUCxFQUh3QixDQUExQjtBQUtBO0FBckJKO0FBdUJEO0FBRUQ7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQ0VOLEVBQUFBLFlBQVksQ0FBQ08sZ0JBQUQsRUFBbUJDLEtBQW5CLEVBQTBCO0FBQ3BDRCxJQUFBQSxnQkFBZ0IsR0FBR0EsZ0JBQWdCLElBQUksSUFBSTNCLFFBQUosRUFBdkM7O0FBQ0EsUUFBSTRCLEtBQUssSUFBSSxRQUFiLEVBQXVCO0FBQ3JCLFVBQUlwQixDQUFDLEdBQUdULFNBQVMsQ0FBQzhCLFVBQVYsQ0FBcUIsQ0FBQy9CLEVBQXRCLEVBQTBCQSxFQUExQixDQUFSO0FBQ0EsVUFBSVcsQ0FBQyxHQUFHVixTQUFTLENBQUM4QixVQUFWLENBQXFCLENBQUMvQixFQUF0QixFQUEwQkEsRUFBMUIsQ0FBUjtBQUNBLFVBQUlZLENBQUMsR0FBR1gsU0FBUyxDQUFDOEIsVUFBVixDQUFxQixDQUFDL0IsRUFBdEIsRUFBMEJBLEVBQTFCLENBQVI7QUFFQTZCLE1BQUFBLGdCQUFnQixDQUFDRyxHQUFqQixDQUFxQnRCLENBQXJCLEVBQXdCQyxDQUF4QixFQUEyQkMsQ0FBM0I7QUFDRCxLQU5ELENBT0E7QUFDQTtBQUNBO0FBVEEsU0FVSyxJQUFJa0IsS0FBSyxZQUFZNUIsUUFBckIsRUFBK0I7QUFDbEMyQixNQUFBQSxnQkFBZ0IsQ0FBQ0ksSUFBakIsQ0FBc0JILEtBQXRCO0FBQ0Q7QUFDRjtBQUVEO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQ0VJLEVBQUFBLE1BQU0sQ0FBQ2IsUUFBRCxFQUFXYyxJQUFYLEVBQWlCQyxLQUFqQixFQUF3QjtBQUM1QixTQUFLQyxRQUFMLENBQWNoQixRQUFkLEVBQXdCYyxJQUF4QixFQUE4QkMsS0FBOUI7O0FBRUEsWUFBUSxLQUFLbkIsWUFBYjtBQUNFO0FBQ0EsV0FBSyxNQUFMO0FBQ0UsWUFBSSxDQUFDSSxRQUFRLENBQUNFLFFBQWQsRUFBd0I7QUFDdEJGLFVBQUFBLFFBQVEsQ0FBQ0UsUUFBVCxHQUFvQixJQUFJckIsUUFBSixFQUFwQjtBQUNEOztBQUVEbUIsUUFBQUEsUUFBUSxDQUFDRSxRQUFULENBQWtCVSxJQUFsQixDQUF1QlosUUFBUSxDQUFDaUIsUUFBaEM7QUFDQTs7QUFFRixXQUFLLEtBQUw7QUFDRTtBQUNBOztBQUVGLFdBQUssSUFBTDtBQUNFakIsUUFBQUEsUUFBUSxDQUFDRSxRQUFULENBQWtCYixDQUFsQixHQUFzQlQsU0FBUyxDQUFDc0MsSUFBVixDQUNwQmxCLFFBQVEsQ0FBQ0csU0FBVCxDQUFtQkMsRUFBbkIsQ0FBc0JmLENBREYsRUFFcEJXLFFBQVEsQ0FBQ0csU0FBVCxDQUFtQkUsRUFBbkIsQ0FBc0JoQixDQUZGLEVBR3BCLEtBQUs4QixNQUhlLENBQXRCO0FBS0FuQixRQUFBQSxRQUFRLENBQUNFLFFBQVQsQ0FBa0JaLENBQWxCLEdBQXNCVixTQUFTLENBQUNzQyxJQUFWLENBQ3BCbEIsUUFBUSxDQUFDRyxTQUFULENBQW1CQyxFQUFuQixDQUFzQmQsQ0FERixFQUVwQlUsUUFBUSxDQUFDRyxTQUFULENBQW1CRSxFQUFuQixDQUFzQmYsQ0FGRixFQUdwQixLQUFLNkIsTUFIZSxDQUF0QjtBQUtBbkIsUUFBQUEsUUFBUSxDQUFDRSxRQUFULENBQWtCWCxDQUFsQixHQUFzQlgsU0FBUyxDQUFDc0MsSUFBVixDQUNwQmxCLFFBQVEsQ0FBQ0csU0FBVCxDQUFtQkMsRUFBbkIsQ0FBc0JiLENBREYsRUFFcEJTLFFBQVEsQ0FBQ0csU0FBVCxDQUFtQkUsRUFBbkIsQ0FBc0JkLENBRkYsRUFHcEIsS0FBSzRCLE1BSGUsQ0FBdEI7QUFLQTs7QUFFRixXQUFLLEtBQUw7QUFDRW5CLFFBQUFBLFFBQVEsQ0FBQ0UsUUFBVCxDQUFrQmtCLEdBQWxCLENBQXNCcEIsUUFBUSxDQUFDRyxTQUFULENBQW1CRyxJQUF6QztBQUNBO0FBbENKO0FBb0NEOztBQUVjLFNBQVJlLFFBQVEsQ0FBQ0MsSUFBRCxFQUFPO0FBQ3BCLFVBQU07QUFBRWpDLE1BQUFBLENBQUY7QUFBS0MsTUFBQUEsQ0FBTDtBQUFRQyxNQUFBQSxDQUFSO0FBQVdDLE1BQUFBLElBQVg7QUFBaUJDLE1BQUFBLE1BQWpCO0FBQXlCQyxNQUFBQSxTQUFTLEdBQUc7QUFBckMsUUFBOEM0QixJQUFwRDtBQUVBLFdBQU8sSUFBSW5DLE1BQUosQ0FBV0UsQ0FBWCxFQUFjQyxDQUFkLEVBQWlCQyxDQUFqQixFQUFvQkMsSUFBcEIsRUFBMEJSLGVBQWUsQ0FBQ1MsTUFBRCxDQUF6QyxFQUFtREMsU0FBbkQsQ0FBUDtBQUNEOztBQTNNMkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEUiwgUEkgfSBmcm9tICcuLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgTWF0aFV0aWxzLCBWZWN0b3IzRCwgY3JlYXRlU3BhbiB9IGZyb20gJy4uL21hdGgnO1xuXG5pbXBvcnQgQmVoYXZpb3VyIGZyb20gJy4vQmVoYXZpb3VyJztcbmltcG9ydCB7IGdldEVhc2luZ0J5TmFtZSB9IGZyb20gJy4uL2Vhc2UnO1xuaW1wb3J0IHsgQkVIQVZJT1VSX1RZUEVfUk9UQVRFIGFzIHR5cGUgfSBmcm9tICcuL3R5cGVzJztcblxuLyoqXG4gKiBCZWhhdmlvdXIgdGhhdCByb3RhdGVzIHBhcnRpY2xlcy5cbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgUm90YXRlIGV4dGVuZHMgQmVoYXZpb3VyIHtcbiAgLyoqXG4gICAqIENvbnN0cnVjdHMgYSBSb3RhdGUgYmVoYXZpb3VyIGluc3RhbmNlLlxuICAgKlxuICAgKiBAcGFyYW0ge251bWJlcn0geCAtIFggYXhpcyByb3RhdGlvblxuICAgKiBAcGFyYW0ge251bWJlcn0geSAtIFkgYXhpcyByb3RhdGlvblxuICAgKiBAcGFyYW0ge251bWJlcn0geiAtIFogYXhpcyByb3RhdGlvblxuICAgKiBAcGFyYW0ge251bWJlcn0gbGlmZSAtIFRoZSBsaWZlIG9mIHRoZSBiZWhhdmlvdXJcbiAgICogQHBhcmFtIHtmdW5jdGlvbn0gZWFzaW5nIC0gVGhlIGVhc2luZyBlcXVhdGlvbiB0byB1c2UgZm9yIHRyYW5zZm9ybXNcbiAgICogQHBhcmFtIHtib29sZWFufSBbaXNFbmFibGVkPXRydWVdIC0gRGV0ZXJtaW5lcyBpZiB0aGUgYmVoYXZpb3VyIHdpbGwgYmUgYXBwbGllZCBvciBub3RcbiAgICogQHJldHVybiB2b2lkXG4gICAqL1xuICBjb25zdHJ1Y3Rvcih4LCB5LCB6LCBsaWZlLCBlYXNpbmcsIGlzRW5hYmxlZCA9IHRydWUpIHtcbiAgICBzdXBlcihsaWZlLCBlYXNpbmcsIHR5cGUsIGlzRW5hYmxlZCk7XG5cbiAgICB0aGlzLnJlc2V0KHgsIHksIHopO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIHJvdGF0aW9uIHR5cGUuXG4gICAqXG4gICAqIEByZXR1cm4ge3N0cmluZ31cbiAgICovXG4gIGdldCByb3RhdGlvblR5cGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3JvdGF0aW9uVHlwZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSByb3RhdGlvbiB0eXBlLlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ31cbiAgICogQHJldHVybiB2b2lkXG4gICAqL1xuICBzZXQgcm90YXRpb25UeXBlKHJvdGF0aW9uVHlwZSkge1xuICAgIC8qKlxuICAgICAqIEBkZXNjIFRoZSByb3RhdGlvbiB0eXBlLiBFTlVNIG9mIFsnc2FtZScsICdzZXQnLCAndG8nLCAnYWRkJ10uXG4gICAgICogQHR5cGUge3N0cmluZ31cbiAgICAgKi9cbiAgICB0aGlzLl9yb3RhdGlvblR5cGUgPSByb3RhdGlvblR5cGU7XG4gIH1cblxuICAvKipcbiAgICogUmVzZXRzIHRoZSBiZWhhdmlvdXIgcHJvcGVydGllcy5cbiAgICpcbiAgICogQHBhcmFtIHtudW1iZXJ9IHggLSBYIGF4aXMgcm90YXRpb25cbiAgICogQHBhcmFtIHtudW1iZXJ9IHkgLSBZIGF4aXMgcm90YXRpb25cbiAgICogQHBhcmFtIHtudW1iZXJ9IHogLSBaIGF4aXMgcm90YXRpb25cbiAgICogQHBhcmFtIHtudW1iZXJ9IGxpZmUgLSB0aGUgbGlmZSBvZiB0aGUgYmVoYXZpb3VyXG4gICAqIEBwYXJhbSB7ZnVuY3Rpb259IGVhc2luZyAtIHRoZSBlYXNpbmcgZXF1YXRpb24gdG8gdXNlIGZvciB0cmFuc2Zvcm1zXG4gICAqIEByZXR1cm4gdm9pZFxuICAgKi9cbiAgcmVzZXQoeCwgeSwgeiwgbGlmZSwgZWFzaW5nKSB7XG4gICAgLyoqXG4gICAgICogQGRlc2MgWCBheGlzIHJvdGF0aW9uLlxuICAgICAqIEB0eXBlIHtudW1iZXJ8U3Bhbn1cbiAgICAgKi9cbiAgICB0aGlzLnggPSB4IHx8IDA7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzYyBZIGF4aXMgcm90YXRpb24uXG4gICAgICogQHR5cGUge251bWJlcnxTcGFufVxuICAgICAqL1xuICAgIHRoaXMueSA9IHkgfHwgMDtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjIFogYXhpcyByb3RhdGlvbi5cbiAgICAgKiBAdHlwZSB7bnVtYmVyfFNwYW59XG4gICAgICovXG4gICAgdGhpcy56ID0geiB8fCAwO1xuXG4gICAgaWYgKHggPT09IHVuZGVmaW5lZCB8fCB4ID09ICdzYW1lJykge1xuICAgICAgdGhpcy5yb3RhdGlvblR5cGUgPSAnc2FtZSc7XG4gICAgfSBlbHNlIGlmICh5ID09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5yb3RhdGlvblR5cGUgPSAnc2V0JztcbiAgICB9IGVsc2UgaWYgKHogPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5yb3RhdGlvblR5cGUgPSAndG8nO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnJvdGF0aW9uVHlwZSA9ICdhZGQnO1xuICAgICAgdGhpcy54ID0gY3JlYXRlU3Bhbih0aGlzLnggKiBEUik7XG4gICAgICB0aGlzLnkgPSBjcmVhdGVTcGFuKHRoaXMueSAqIERSKTtcbiAgICAgIHRoaXMueiA9IGNyZWF0ZVNwYW4odGhpcy56ICogRFIpO1xuICAgIH1cblxuICAgIGxpZmUgJiYgc3VwZXIucmVzZXQobGlmZSwgZWFzaW5nKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbml0aWFsaXplcyB0aGUgYmVoYXZpb3VyIG9uIGEgcGFydGljbGUuXG4gICAqXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBwYXJ0aWNsZSAtIHRoZSBwYXJ0aWNsZSB0byBpbml0aWFsaXplIHRoZSBiZWhhdmlvdXIgb25cbiAgICogQHJldHVybiB2b2lkXG4gICAqL1xuICBpbml0aWFsaXplKHBhcnRpY2xlKSB7XG4gICAgc3dpdGNoICh0aGlzLnJvdGF0aW9uVHlwZSkge1xuICAgICAgY2FzZSAnc2FtZSc6XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlICdzZXQnOlxuICAgICAgICB0aGlzLl9zZXRSb3RhdGlvbihwYXJ0aWNsZS5yb3RhdGlvbiwgdGhpcy54KTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgJ3RvJzpcbiAgICAgICAgcGFydGljbGUudHJhbnNmb3JtLmZSID0gcGFydGljbGUudHJhbnNmb3JtLmZSIHx8IG5ldyBWZWN0b3IzRCgpO1xuICAgICAgICBwYXJ0aWNsZS50cmFuc2Zvcm0udFIgPSBwYXJ0aWNsZS50cmFuc2Zvcm0udFIgfHwgbmV3IFZlY3RvcjNEKCk7XG4gICAgICAgIHRoaXMuX3NldFJvdGF0aW9uKHBhcnRpY2xlLnRyYW5zZm9ybS5mUiwgdGhpcy54KTtcbiAgICAgICAgdGhpcy5fc2V0Um90YXRpb24ocGFydGljbGUudHJhbnNmb3JtLnRSLCB0aGlzLnkpO1xuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSAnYWRkJzpcbiAgICAgICAgcGFydGljbGUudHJhbnNmb3JtLmFkZFIgPSBuZXcgVmVjdG9yM0QoXG4gICAgICAgICAgdGhpcy54LmdldFZhbHVlKCksXG4gICAgICAgICAgdGhpcy55LmdldFZhbHVlKCksXG4gICAgICAgICAgdGhpcy56LmdldFZhbHVlKClcbiAgICAgICAgKTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIHBhcnRpY2xlJ3Mgcm90YXRpb24gcHJpb3IgdG8gdGhlIGJlaGF2aW91ciBiZWluZyBhcHBsaWVkLlxuICAgKlxuICAgKiBOT1RFIEl0J3MgaGFyZCB0byBzZWUgaGVyZSwgYnV0IHRoaXMgaXMgbXV0YXRpbmcgdGhlIHBhcnRpY2xlJ3Mgcm90YXRpb25cbiAgICogZXZlbiB0aG91Z2ggdGhlIHBhcnRpY2xlIGlzIG5vdCBiZWluZyBwYXNzZWQgaW4gZGlyZWN0bHkuXG4gICAqXG4gICAqIE5PVEUgdGhlIGVsc2UgaWYgYmVsb3cgd2lsbCBuZXZlciBiZSByZWFjaGVkIGJlY2F1c2UgdGhlIHZhbHVlIGJlaW5nIHBhc3NlZCBpblxuICAgKiB3aWxsIG5ldmVyIGJlIG9mIHR5cGUgVmVjdG9yM0QuXG4gICAqXG4gICAqIEBwYXJhbSB7VmVjdG9yM0R9IHBhcnRpY2xlUm90YXRpb24gLSB0aGUgcGFydGljbGUncyByb3RhdGlvbiB2ZWN0b3JcbiAgICogQHBhcmFtIHtzdHJpbmd8bnVtYmVyfSB2YWx1ZSAtIHRoZSB2YWx1ZSB0byBzZXQgdGhlIHJvdGF0aW9uIHZhbHVlIHRvLCBpZiAncmFuZG9tJ1xuICAgKiByb3RhdGlvbiBpcyByYW5kb21pc2VkXG4gICAqIEByZXR1cm4gdm9pZFxuICAgKi9cbiAgX3NldFJvdGF0aW9uKHBhcnRpY2xlUm90YXRpb24sIHZhbHVlKSB7XG4gICAgcGFydGljbGVSb3RhdGlvbiA9IHBhcnRpY2xlUm90YXRpb24gfHwgbmV3IFZlY3RvcjNEKCk7XG4gICAgaWYgKHZhbHVlID09ICdyYW5kb20nKSB7XG4gICAgICB2YXIgeCA9IE1hdGhVdGlscy5yYW5kb21BVG9CKC1QSSwgUEkpO1xuICAgICAgdmFyIHkgPSBNYXRoVXRpbHMucmFuZG9tQVRvQigtUEksIFBJKTtcbiAgICAgIHZhciB6ID0gTWF0aFV0aWxzLnJhbmRvbUFUb0IoLVBJLCBQSSk7XG5cbiAgICAgIHBhcnRpY2xlUm90YXRpb24uc2V0KHgsIHksIHopO1xuICAgIH1cbiAgICAvLyB3ZSBjYW4ndCBldmVyIGdldCBoZXJlIGJlY2F1c2UgdmFsdWUgd2lsbCBuZXZlciBiZSBhIFZlY3RvcjNEIVxuICAgIC8vIGNvbnNpZGVyIHJlZmFjdG9yaW5nIHRvXG4gICAgLy8gIGlmICh2YWx1ZSBpbnN0YW5jZSBvZiBTcGFuKSB7IHZlYzMuYWRkKHZhbHVlLmdldFZhbHVlKCkpOyB9XG4gICAgZWxzZSBpZiAodmFsdWUgaW5zdGFuY2VvZiBWZWN0b3IzRCkge1xuICAgICAgcGFydGljbGVSb3RhdGlvbi5jb3B5KHZhbHVlKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogTXV0YXRlcyB0aGUgcGFydGljbGUucm90YXRpb24gcHJvcGVydHkuXG4gICAqXG4gICAqIEBzZWUgaHR0cDovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy8yMTYyMjk1Ni9ob3ctdG8tY29udmVydC1kaXJlY3Rpb24tdmVjdG9yLXRvLWV1bGVyLWFuZ2xlc1xuICAgKiBAcGFyYW0ge29iamVjdH0gcGFydGljbGUgLSB0aGUgcGFydGljbGUgdG8gYXBwbHkgdGhlIGJlaGF2aW91ciB0b1xuICAgKiBAcGFyYW0ge251bWJlcn0gdGltZSAtIGVuZ2luZSB0aW1lXG4gICAqIEBwYXJhbSB7aW50ZWdlcn0gaW5kZXggLSB0aGUgcGFydGljbGUgaW5kZXhcbiAgICogQHJldHVybiB2b2lkXG4gICAqL1xuICBtdXRhdGUocGFydGljbGUsIHRpbWUsIGluZGV4KSB7XG4gICAgdGhpcy5lbmVyZ2l6ZShwYXJ0aWNsZSwgdGltZSwgaW5kZXgpO1xuXG4gICAgc3dpdGNoICh0aGlzLnJvdGF0aW9uVHlwZSkge1xuICAgICAgLy8gb3JpZW50cyB0aGUgcGFydGljbGUgaW4gdGhlIGRpcmVjdGlvbiBpdCBpcyBtb3ZpbmdcbiAgICAgIGNhc2UgJ3NhbWUnOlxuICAgICAgICBpZiAoIXBhcnRpY2xlLnJvdGF0aW9uKSB7XG4gICAgICAgICAgcGFydGljbGUucm90YXRpb24gPSBuZXcgVmVjdG9yM0QoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHBhcnRpY2xlLnJvdGF0aW9uLmNvcHkocGFydGljbGUudmVsb2NpdHkpO1xuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSAnc2V0JzpcbiAgICAgICAgLy9cbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgJ3RvJzpcbiAgICAgICAgcGFydGljbGUucm90YXRpb24ueCA9IE1hdGhVdGlscy5sZXJwKFxuICAgICAgICAgIHBhcnRpY2xlLnRyYW5zZm9ybS5mUi54LFxuICAgICAgICAgIHBhcnRpY2xlLnRyYW5zZm9ybS50Ui54LFxuICAgICAgICAgIHRoaXMuZW5lcmd5XG4gICAgICAgICk7XG4gICAgICAgIHBhcnRpY2xlLnJvdGF0aW9uLnkgPSBNYXRoVXRpbHMubGVycChcbiAgICAgICAgICBwYXJ0aWNsZS50cmFuc2Zvcm0uZlIueSxcbiAgICAgICAgICBwYXJ0aWNsZS50cmFuc2Zvcm0udFIueSxcbiAgICAgICAgICB0aGlzLmVuZXJneVxuICAgICAgICApO1xuICAgICAgICBwYXJ0aWNsZS5yb3RhdGlvbi56ID0gTWF0aFV0aWxzLmxlcnAoXG4gICAgICAgICAgcGFydGljbGUudHJhbnNmb3JtLmZSLnosXG4gICAgICAgICAgcGFydGljbGUudHJhbnNmb3JtLnRSLnosXG4gICAgICAgICAgdGhpcy5lbmVyZ3lcbiAgICAgICAgKTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgJ2FkZCc6XG4gICAgICAgIHBhcnRpY2xlLnJvdGF0aW9uLmFkZChwYXJ0aWNsZS50cmFuc2Zvcm0uYWRkUik7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIHN0YXRpYyBmcm9tSlNPTihqc29uKSB7XG4gICAgY29uc3QgeyB4LCB5LCB6LCBsaWZlLCBlYXNpbmcsIGlzRW5hYmxlZCA9IHRydWUgfSA9IGpzb247XG5cbiAgICByZXR1cm4gbmV3IFJvdGF0ZSh4LCB5LCB6LCBsaWZlLCBnZXRFYXNpbmdCeU5hbWUoZWFzaW5nKSwgaXNFbmFibGVkKTtcbiAgfVxufVxuIl19 ================================================ FILE: packages/sdk/lib/core/libs/three-nebula/behaviour/Scale.js ================================================ import { MathUtils, createSpan } from '../math'; import Behaviour from './Behaviour'; import { getEasingByName } from '../ease'; import { BEHAVIOUR_TYPE_SCALE as type } from './types'; /** * Behaviour that scales particles. * */ export default class Scale extends Behaviour { /** * Constructs a Scale behaviour instance. * * @param {number | Span} scaleA - the starting scale value * @param {?number} scaleB - the ending scale value * @param {number} life - the life of the behaviour * @param {function} easing - the easing equation to use for transforms * @param {boolean} [isEnabled=true] - Determines if the behaviour will be applied or not * @return void */ constructor(scaleA, scaleB, life=Infinity, easing, isEnabled = true) { super(life, easing, type, isEnabled); this.reset(scaleA, scaleB); } /** * Gets the _same property which determines if the scale props are the same. * * @return {boolean} */ get same() { return this._same; } /** * Sets the _same property which determines if the scale props are the same. * * @param {boolean} same * @return {boolean} */ set same(same) { /** * @type {boolean} */ this._same = same; } /** * Resets the behaviour properties. * * @param {number} scaleA - the starting scale value * @param {?number} scaleB - the ending scale value * @param {number} life - the life of the behaviour * @param {function} easing - the easing equation to use for transforms * @return void */ reset(scaleA, scaleB, life, easing) { this.same = scaleB === null || scaleB === undefined ? true : false; /** * @desc The starting scale. * @type {Span} */ this.scaleA = createSpan(scaleA || 1); /** * @desc The ending scale. * @type {Span} */ this.scaleB = createSpan(scaleB); life && super.reset(life, easing); } /** * Initializes the behaviour on a particle. * Stores initial values for comparison and mutation in the applyBehaviour method. * * @param {object} particle - the particle to initialize the behaviour on * @return void */ initialize(particle) { particle.transform.scaleA = this.scaleA.getValue(); particle.transform.oldRadius = particle.radius; particle.transform.scaleB = this.same ? particle.transform.scaleA : this.scaleB.getValue(); } /** * Applies the behaviour to the particle. * Mutates the particle's scale and its radius according to this scale. * * @param {object} particle - the particle to apply the behaviour to * @param {number} time - engine time * @param {integer} index - the particle index * @return void */ mutate(particle, time, index) { this.energize(particle, time, index); particle.scale = MathUtils.lerp(particle.transform.scaleA, particle.transform.scaleB, this.energy); if (particle.scale < 0.0005) { particle.scale = 0; } particle.radius = particle.transform.oldRadius * particle.scale; } /** * Returns a new instance of the behaviour from the JSON object passed. * * @param {object} json - JSON object containing the required constructor properties * @return {Spring} */ static fromJSON(json) { const { scaleA, scaleB, life, easing, isEnabled = true } = json; return new Scale(scaleA, scaleB, life, getEasingByName(easing), isEnabled); } } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9iZWhhdmlvdXIvU2NhbGUuanMiXSwibmFtZXMiOlsiTWF0aFV0aWxzIiwiY3JlYXRlU3BhbiIsIkJlaGF2aW91ciIsImdldEVhc2luZ0J5TmFtZSIsIkJFSEFWSU9VUl9UWVBFX1NDQUxFIiwidHlwZSIsIlNjYWxlIiwiY29uc3RydWN0b3IiLCJzY2FsZUEiLCJzY2FsZUIiLCJsaWZlIiwiZWFzaW5nIiwiaXNFbmFibGVkIiwicmVzZXQiLCJzYW1lIiwiX3NhbWUiLCJ1bmRlZmluZWQiLCJpbml0aWFsaXplIiwicGFydGljbGUiLCJ0cmFuc2Zvcm0iLCJnZXRWYWx1ZSIsIm9sZFJhZGl1cyIsInJhZGl1cyIsIm11dGF0ZSIsInRpbWUiLCJpbmRleCIsImVuZXJnaXplIiwic2NhbGUiLCJsZXJwIiwiZW5lcmd5IiwiZnJvbUpTT04iLCJqc29uIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUFTQSxTQUFULEVBQW9CQyxVQUFwQixRQUFzQyxTQUF0QztBQUVBLE9BQU9DLFNBQVAsTUFBc0IsYUFBdEI7QUFDQSxTQUFTQyxlQUFULFFBQWdDLFNBQWhDO0FBQ0EsU0FBU0Msb0JBQW9CLElBQUlDLElBQWpDLFFBQTZDLFNBQTdDO0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBQ0EsZUFBZSxNQUFNQyxLQUFOLFNBQW9CSixTQUFwQixDQUE4QjtBQUMzQztBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNFSyxFQUFBQSxXQUFXLENBQUNDLE1BQUQsRUFBU0MsTUFBVCxFQUFpQkMsSUFBakIsRUFBdUJDLE1BQXZCLEVBQStCQyxTQUFTLEdBQUcsSUFBM0MsRUFBaUQ7QUFDMUQsVUFBTUYsSUFBTixFQUFZQyxNQUFaLEVBQW9CTixJQUFwQixFQUEwQk8sU0FBMUI7QUFFQSxTQUFLQyxLQUFMLENBQVdMLE1BQVgsRUFBbUJDLE1BQW5CO0FBQ0Q7QUFFRDtBQUNGO0FBQ0E7QUFDQTtBQUNBOzs7QUFDVSxNQUFKSyxJQUFJLEdBQUc7QUFDVCxXQUFPLEtBQUtDLEtBQVo7QUFDRDtBQUVEO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQ1UsTUFBSkQsSUFBSSxDQUFDQSxJQUFELEVBQU87QUFDYjtBQUNKO0FBQ0E7QUFDSSxTQUFLQyxLQUFMLEdBQWFELElBQWI7QUFDRDtBQUVEO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQ0VELEVBQUFBLEtBQUssQ0FBQ0wsTUFBRCxFQUFTQyxNQUFULEVBQWlCQyxJQUFqQixFQUF1QkMsTUFBdkIsRUFBK0I7QUFDbEMsU0FBS0csSUFBTCxHQUFZTCxNQUFNLEtBQUssSUFBWCxJQUFtQkEsTUFBTSxLQUFLTyxTQUE5QixHQUEwQyxJQUExQyxHQUFpRCxLQUE3RDtBQUVBO0FBQ0o7QUFDQTtBQUNBOztBQUNJLFNBQUtSLE1BQUwsR0FBY1AsVUFBVSxDQUFDTyxNQUFNLElBQUksQ0FBWCxDQUF4QjtBQUVBO0FBQ0o7QUFDQTtBQUNBOztBQUNJLFNBQUtDLE1BQUwsR0FBY1IsVUFBVSxDQUFDUSxNQUFELENBQXhCO0FBRUFDLElBQUFBLElBQUksSUFBSSxNQUFNRyxLQUFOLENBQVlILElBQVosRUFBa0JDLE1BQWxCLENBQVI7QUFDRDtBQUVEO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFDRU0sRUFBQUEsVUFBVSxDQUFDQyxRQUFELEVBQVc7QUFDbkJBLElBQUFBLFFBQVEsQ0FBQ0MsU0FBVCxDQUFtQlgsTUFBbkIsR0FBNEIsS0FBS0EsTUFBTCxDQUFZWSxRQUFaLEVBQTVCO0FBQ0FGLElBQUFBLFFBQVEsQ0FBQ0MsU0FBVCxDQUFtQkUsU0FBbkIsR0FBK0JILFFBQVEsQ0FBQ0ksTUFBeEM7QUFFQUosSUFBQUEsUUFBUSxDQUFDQyxTQUFULENBQW1CVixNQUFuQixHQUE0QixLQUFLSyxJQUFMLEdBQ3hCSSxRQUFRLENBQUNDLFNBQVQsQ0FBbUJYLE1BREssR0FFeEIsS0FBS0MsTUFBTCxDQUFZVyxRQUFaLEVBRko7QUFHRDtBQUVEO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQ0VHLEVBQUFBLE1BQU0sQ0FBQ0wsUUFBRCxFQUFXTSxJQUFYLEVBQWlCQyxLQUFqQixFQUF3QjtBQUM1QixTQUFLQyxRQUFMLENBQWNSLFFBQWQsRUFBd0JNLElBQXhCLEVBQThCQyxLQUE5QjtBQUVBUCxJQUFBQSxRQUFRLENBQUNTLEtBQVQsR0FBaUIzQixTQUFTLENBQUM0QixJQUFWLENBQ2ZWLFFBQVEsQ0FBQ0MsU0FBVCxDQUFtQlgsTUFESixFQUVmVSxRQUFRLENBQUNDLFNBQVQsQ0FBbUJWLE1BRkosRUFHZixLQUFLb0IsTUFIVSxDQUFqQjs7QUFNQSxRQUFJWCxRQUFRLENBQUNTLEtBQVQsR0FBaUIsTUFBckIsRUFBNkI7QUFDM0JULE1BQUFBLFFBQVEsQ0FBQ1MsS0FBVCxHQUFpQixDQUFqQjtBQUNEOztBQUVEVCxJQUFBQSxRQUFRLENBQUNJLE1BQVQsR0FBa0JKLFFBQVEsQ0FBQ0MsU0FBVCxDQUFtQkUsU0FBbkIsR0FBK0JILFFBQVEsQ0FBQ1MsS0FBMUQ7QUFDRDtBQUVEO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQ2lCLFNBQVJHLFFBQVEsQ0FBQ0MsSUFBRCxFQUFPO0FBQ3BCLFVBQU07QUFBRXZCLE1BQUFBLE1BQUY7QUFBVUMsTUFBQUEsTUFBVjtBQUFrQkMsTUFBQUEsSUFBbEI7QUFBd0JDLE1BQUFBLE1BQXhCO0FBQWdDQyxNQUFBQSxTQUFTLEdBQUc7QUFBNUMsUUFBcURtQixJQUEzRDtBQUVBLFdBQU8sSUFBSXpCLEtBQUosQ0FBVUUsTUFBVixFQUFrQkMsTUFBbEIsRUFBMEJDLElBQTFCLEVBQWdDUCxlQUFlLENBQUNRLE1BQUQsQ0FBL0MsRUFBeURDLFNBQXpELENBQVA7QUFDRDs7QUFySDBDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTWF0aFV0aWxzLCBjcmVhdGVTcGFuIH0gZnJvbSAnLi4vbWF0aCc7XG5cbmltcG9ydCBCZWhhdmlvdXIgZnJvbSAnLi9CZWhhdmlvdXInO1xuaW1wb3J0IHsgZ2V0RWFzaW5nQnlOYW1lIH0gZnJvbSAnLi4vZWFzZSc7XG5pbXBvcnQgeyBCRUhBVklPVVJfVFlQRV9TQ0FMRSBhcyB0eXBlIH0gZnJvbSAnLi90eXBlcyc7XG5cbi8qKlxuICogQmVoYXZpb3VyIHRoYXQgc2NhbGVzIHBhcnRpY2xlcy5cbiAqXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFNjYWxlIGV4dGVuZHMgQmVoYXZpb3VyIHtcbiAgLyoqXG4gICAqIENvbnN0cnVjdHMgYSBTY2FsZSBiZWhhdmlvdXIgaW5zdGFuY2UuXG4gICAqXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBzY2FsZUEgLSB0aGUgc3RhcnRpbmcgc2NhbGUgdmFsdWVcbiAgICogQHBhcmFtIHs/bnVtYmVyfSBzY2FsZUIgLSB0aGUgZW5kaW5nIHNjYWxlIHZhbHVlXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBsaWZlIC0gdGhlIGxpZmUgb2YgdGhlIGJlaGF2aW91clxuICAgKiBAcGFyYW0ge2Z1bmN0aW9ufSBlYXNpbmcgLSB0aGUgZWFzaW5nIGVxdWF0aW9uIHRvIHVzZSBmb3IgdHJhbnNmb3Jtc1xuICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtpc0VuYWJsZWQ9dHJ1ZV0gLSBEZXRlcm1pbmVzIGlmIHRoZSBiZWhhdmlvdXIgd2lsbCBiZSBhcHBsaWVkIG9yIG5vdFxuICAgKiBAcmV0dXJuIHZvaWRcbiAgICovXG4gIGNvbnN0cnVjdG9yKHNjYWxlQSwgc2NhbGVCLCBsaWZlLCBlYXNpbmcsIGlzRW5hYmxlZCA9IHRydWUpIHtcbiAgICBzdXBlcihsaWZlLCBlYXNpbmcsIHR5cGUsIGlzRW5hYmxlZCk7XG5cbiAgICB0aGlzLnJlc2V0KHNjYWxlQSwgc2NhbGVCKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBfc2FtZSBwcm9wZXJ0eSB3aGljaCBkZXRlcm1pbmVzIGlmIHRoZSBzY2FsZSBwcm9wcyBhcmUgdGhlIHNhbWUuXG4gICAqXG4gICAqIEByZXR1cm4ge2Jvb2xlYW59XG4gICAqL1xuICBnZXQgc2FtZSgpIHtcbiAgICByZXR1cm4gdGhpcy5fc2FtZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBfc2FtZSBwcm9wZXJ0eSB3aGljaCBkZXRlcm1pbmVzIGlmIHRoZSBzY2FsZSBwcm9wcyBhcmUgdGhlIHNhbWUuXG4gICAqXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gc2FtZVxuICAgKiBAcmV0dXJuIHtib29sZWFufVxuICAgKi9cbiAgc2V0IHNhbWUoc2FtZSkge1xuICAgIC8qKlxuICAgICAqIEB0eXBlIHtib29sZWFufVxuICAgICAqL1xuICAgIHRoaXMuX3NhbWUgPSBzYW1lO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlc2V0cyB0aGUgYmVoYXZpb3VyIHByb3BlcnRpZXMuXG4gICAqXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBzY2FsZUEgLSB0aGUgc3RhcnRpbmcgc2NhbGUgdmFsdWVcbiAgICogQHBhcmFtIHs/bnVtYmVyfSBzY2FsZUIgLSB0aGUgZW5kaW5nIHNjYWxlIHZhbHVlXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBsaWZlIC0gdGhlIGxpZmUgb2YgdGhlIGJlaGF2aW91clxuICAgKiBAcGFyYW0ge2Z1bmN0aW9ufSBlYXNpbmcgLSB0aGUgZWFzaW5nIGVxdWF0aW9uIHRvIHVzZSBmb3IgdHJhbnNmb3Jtc1xuICAgKiBAcmV0dXJuIHZvaWRcbiAgICovXG4gIHJlc2V0KHNjYWxlQSwgc2NhbGVCLCBsaWZlLCBlYXNpbmcpIHtcbiAgICB0aGlzLnNhbWUgPSBzY2FsZUIgPT09IG51bGwgfHwgc2NhbGVCID09PSB1bmRlZmluZWQgPyB0cnVlIDogZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzYyBUaGUgc3RhcnRpbmcgc2NhbGUuXG4gICAgICogQHR5cGUge1NwYW59XG4gICAgICovXG4gICAgdGhpcy5zY2FsZUEgPSBjcmVhdGVTcGFuKHNjYWxlQSB8fCAxKTtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjIFRoZSBlbmRpbmcgc2NhbGUuXG4gICAgICogQHR5cGUge1NwYW59XG4gICAgICovXG4gICAgdGhpcy5zY2FsZUIgPSBjcmVhdGVTcGFuKHNjYWxlQik7XG5cbiAgICBsaWZlICYmIHN1cGVyLnJlc2V0KGxpZmUsIGVhc2luZyk7XG4gIH1cblxuICAvKipcbiAgICogSW5pdGlhbGl6ZXMgdGhlIGJlaGF2aW91ciBvbiBhIHBhcnRpY2xlLlxuICAgKiBTdG9yZXMgaW5pdGlhbCB2YWx1ZXMgZm9yIGNvbXBhcmlzb24gYW5kIG11dGF0aW9uIGluIHRoZSBhcHBseUJlaGF2aW91ciBtZXRob2QuXG4gICAqXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBwYXJ0aWNsZSAtIHRoZSBwYXJ0aWNsZSB0byBpbml0aWFsaXplIHRoZSBiZWhhdmlvdXIgb25cbiAgICogQHJldHVybiB2b2lkXG4gICAqL1xuICBpbml0aWFsaXplKHBhcnRpY2xlKSB7XG4gICAgcGFydGljbGUudHJhbnNmb3JtLnNjYWxlQSA9IHRoaXMuc2NhbGVBLmdldFZhbHVlKCk7XG4gICAgcGFydGljbGUudHJhbnNmb3JtLm9sZFJhZGl1cyA9IHBhcnRpY2xlLnJhZGl1cztcblxuICAgIHBhcnRpY2xlLnRyYW5zZm9ybS5zY2FsZUIgPSB0aGlzLnNhbWVcbiAgICAgID8gcGFydGljbGUudHJhbnNmb3JtLnNjYWxlQVxuICAgICAgOiB0aGlzLnNjYWxlQi5nZXRWYWx1ZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFwcGxpZXMgdGhlIGJlaGF2aW91ciB0byB0aGUgcGFydGljbGUuXG4gICAqIE11dGF0ZXMgdGhlIHBhcnRpY2xlJ3Mgc2NhbGUgYW5kIGl0cyByYWRpdXMgYWNjb3JkaW5nIHRvIHRoaXMgc2NhbGUuXG4gICAqXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBwYXJ0aWNsZSAtIHRoZSBwYXJ0aWNsZSB0byBhcHBseSB0aGUgYmVoYXZpb3VyIHRvXG4gICAqIEBwYXJhbSB7bnVtYmVyfSB0aW1lIC0gZW5naW5lIHRpbWVcbiAgICogQHBhcmFtIHtpbnRlZ2VyfSBpbmRleCAtIHRoZSBwYXJ0aWNsZSBpbmRleFxuICAgKiBAcmV0dXJuIHZvaWRcbiAgICovXG4gIG11dGF0ZShwYXJ0aWNsZSwgdGltZSwgaW5kZXgpIHtcbiAgICB0aGlzLmVuZXJnaXplKHBhcnRpY2xlLCB0aW1lLCBpbmRleCk7XG5cbiAgICBwYXJ0aWNsZS5zY2FsZSA9IE1hdGhVdGlscy5sZXJwKFxuICAgICAgcGFydGljbGUudHJhbnNmb3JtLnNjYWxlQSxcbiAgICAgIHBhcnRpY2xlLnRyYW5zZm9ybS5zY2FsZUIsXG4gICAgICB0aGlzLmVuZXJneVxuICAgICk7XG5cbiAgICBpZiAocGFydGljbGUuc2NhbGUgPCAwLjAwMDUpIHtcbiAgICAgIHBhcnRpY2xlLnNjYWxlID0gMDtcbiAgICB9XG5cbiAgICBwYXJ0aWNsZS5yYWRpdXMgPSBwYXJ0aWNsZS50cmFuc2Zvcm0ub2xkUmFkaXVzICogcGFydGljbGUuc2NhbGU7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhIG5ldyBpbnN0YW5jZSBvZiB0aGUgYmVoYXZpb3VyIGZyb20gdGhlIEpTT04gb2JqZWN0IHBhc3NlZC5cbiAgICpcbiAgICogQHBhcmFtIHtvYmplY3R9IGpzb24gLSBKU09OIG9iamVjdCBjb250YWluaW5nIHRoZSByZXF1aXJlZCBjb25zdHJ1Y3RvciBwcm9wZXJ0aWVzXG4gICAqIEByZXR1cm4ge1NwcmluZ31cbiAgICovXG4gIHN0YXRpYyBmcm9tSlNPTihqc29uKSB7XG4gICAgY29uc3QgeyBzY2FsZUEsIHNjYWxlQiwgbGlmZSwgZWFzaW5nLCBpc0VuYWJsZWQgPSB0cnVlIH0gPSBqc29uO1xuXG4gICAgcmV0dXJuIG5ldyBTY2FsZShzY2FsZUEsIHNjYWxlQiwgbGlmZSwgZ2V0RWFzaW5nQnlOYW1lKGVhc2luZyksIGlzRW5hYmxlZCk7XG4gIH1cbn1cbiJdfQ== ================================================ FILE: packages/sdk/lib/core/libs/three-nebula/behaviour/Spring.js ================================================ import Behaviour from './Behaviour'; import { Vector3D } from '../math'; import { getEasingByName } from '../ease'; import { BEHAVIOUR_TYPE_SPRING as type } from './types'; /** * Behaviour that causes particles to spring. * */ export default class Spring extends Behaviour { /** * Constructs a Spring behaviour instance. * * @param {number} x - X axis spring * @param {number} y - Y axis spring * @param {number} z - Z axis spring * @param {number} spring - Spring factor * @param {number} friction - Spring friction * @param {number} life - The life of the behaviour * @param {function} easing - The easing equation to use for transforms * @param {boolean} [isEnabled=true] - Determines if the behaviour will be applied or not * @return void */ constructor(x, y, z, spring, friction, life = Infinity, easing, isEnabled = true) { super(life, easing, type, isEnabled); this.reset(x, y, z, spring, friction); } /** * Resets the behaviour properties. * * @param {number} x - X axis spring * @param {number} y - Y axis spring * @param {number} z - Z axis spring * @param {number} spring - Spring factor * @param {number} friction - Spring friction * @return void */ reset(x, y, z, spring, friction) { if (!this.pos) { this.pos = new Vector3D(x, y, z); } else { this.pos.set(x, y, z); } this.spring = spring || 0.1; this.friction = friction || 0.98; } /** * Applies the behaviour to the particle. * Mutates the particle's velocity according to this.pos and this.spring. * * @param {object} particle - the particle to apply the behaviour to * @param {number} time - engine time * @param {integer} index - the particle index * @return void */ mutate(particle, time, index) { this.energize(particle, time, index); particle.velocity.x += (this.pos.x - particle.position.x) * this.spring; particle.velocity.y += (this.pos.y - particle.position.y) * this.spring; particle.velocity.z += (this.pos.z - particle.position.z) * this.spring; } /** * Returns a new instance of the behaviour from the JSON object passed. * * @param {object} json - JSON object containing the required constructor properties * @return {Spring} */ static fromJSON(json) { const { x, y, z, spring, friction, life, easing, isEnabled = true } = json; return new Spring(x, y, z, spring, friction, life, getEasingByName(easing), isEnabled); } } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9iZWhhdmlvdXIvU3ByaW5nLmpzIl0sIm5hbWVzIjpbIkJlaGF2aW91ciIsIlZlY3RvcjNEIiwiZ2V0RWFzaW5nQnlOYW1lIiwiQkVIQVZJT1VSX1RZUEVfU1BSSU5HIiwidHlwZSIsIlNwcmluZyIsImNvbnN0cnVjdG9yIiwieCIsInkiLCJ6Iiwic3ByaW5nIiwiZnJpY3Rpb24iLCJsaWZlIiwiZWFzaW5nIiwiaXNFbmFibGVkIiwicmVzZXQiLCJwb3MiLCJzZXQiLCJtdXRhdGUiLCJwYXJ0aWNsZSIsInRpbWUiLCJpbmRleCIsImVuZXJnaXplIiwidmVsb2NpdHkiLCJwb3NpdGlvbiIsImZyb21KU09OIiwianNvbiJdLCJtYXBwaW5ncyI6IkFBQUEsT0FBT0EsU0FBUCxNQUFzQixhQUF0QjtBQUNBLFNBQVNDLFFBQVQsUUFBeUIsU0FBekI7QUFDQSxTQUFTQyxlQUFULFFBQWdDLFNBQWhDO0FBQ0EsU0FBU0MscUJBQXFCLElBQUlDLElBQWxDLFFBQThDLFNBQTlDO0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBQ0EsZUFBZSxNQUFNQyxNQUFOLFNBQXFCTCxTQUFyQixDQUErQjtBQUM1QztBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNFTSxFQUFBQSxXQUFXLENBQUNDLENBQUQsRUFBSUMsQ0FBSixFQUFPQyxDQUFQLEVBQVVDLE1BQVYsRUFBa0JDLFFBQWxCLEVBQTRCQyxJQUE1QixFQUFrQ0MsTUFBbEMsRUFBMENDLFNBQVMsR0FBRyxJQUF0RCxFQUE0RDtBQUNyRSxVQUFNRixJQUFOLEVBQVlDLE1BQVosRUFBb0JULElBQXBCLEVBQTBCVSxTQUExQjtBQUVBLFNBQUtDLEtBQUwsQ0FBV1IsQ0FBWCxFQUFjQyxDQUFkLEVBQWlCQyxDQUFqQixFQUFvQkMsTUFBcEIsRUFBNEJDLFFBQTVCO0FBQ0Q7QUFFRDtBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQ0VJLEVBQUFBLEtBQUssQ0FBQ1IsQ0FBRCxFQUFJQyxDQUFKLEVBQU9DLENBQVAsRUFBVUMsTUFBVixFQUFrQkMsUUFBbEIsRUFBNEI7QUFDL0IsUUFBSSxDQUFDLEtBQUtLLEdBQVYsRUFBZTtBQUNiLFdBQUtBLEdBQUwsR0FBVyxJQUFJZixRQUFKLENBQWFNLENBQWIsRUFBZ0JDLENBQWhCLEVBQW1CQyxDQUFuQixDQUFYO0FBQ0QsS0FGRCxNQUVPO0FBQ0wsV0FBS08sR0FBTCxDQUFTQyxHQUFULENBQWFWLENBQWIsRUFBZ0JDLENBQWhCLEVBQW1CQyxDQUFuQjtBQUNEOztBQUVELFNBQUtDLE1BQUwsR0FBY0EsTUFBTSxJQUFJLEdBQXhCO0FBQ0EsU0FBS0MsUUFBTCxHQUFnQkEsUUFBUSxJQUFJLElBQTVCO0FBQ0Q7QUFFRDtBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUNFTyxFQUFBQSxNQUFNLENBQUNDLFFBQUQsRUFBV0MsSUFBWCxFQUFpQkMsS0FBakIsRUFBd0I7QUFDNUIsU0FBS0MsUUFBTCxDQUFjSCxRQUFkLEVBQXdCQyxJQUF4QixFQUE4QkMsS0FBOUI7QUFFQUYsSUFBQUEsUUFBUSxDQUFDSSxRQUFULENBQWtCaEIsQ0FBbEIsSUFBdUIsQ0FBQyxLQUFLUyxHQUFMLENBQVNULENBQVQsR0FBYVksUUFBUSxDQUFDSyxRQUFULENBQWtCakIsQ0FBaEMsSUFBcUMsS0FBS0csTUFBakU7QUFDQVMsSUFBQUEsUUFBUSxDQUFDSSxRQUFULENBQWtCZixDQUFsQixJQUF1QixDQUFDLEtBQUtRLEdBQUwsQ0FBU1IsQ0FBVCxHQUFhVyxRQUFRLENBQUNLLFFBQVQsQ0FBa0JoQixDQUFoQyxJQUFxQyxLQUFLRSxNQUFqRTtBQUNBUyxJQUFBQSxRQUFRLENBQUNJLFFBQVQsQ0FBa0JkLENBQWxCLElBQXVCLENBQUMsS0FBS08sR0FBTCxDQUFTUCxDQUFULEdBQWFVLFFBQVEsQ0FBQ0ssUUFBVCxDQUFrQmYsQ0FBaEMsSUFBcUMsS0FBS0MsTUFBakU7QUFDRDtBQUVEO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQ2lCLFNBQVJlLFFBQVEsQ0FBQ0MsSUFBRCxFQUFPO0FBQ3BCLFVBQU07QUFBRW5CLE1BQUFBLENBQUY7QUFBS0MsTUFBQUEsQ0FBTDtBQUFRQyxNQUFBQSxDQUFSO0FBQVdDLE1BQUFBLE1BQVg7QUFBbUJDLE1BQUFBLFFBQW5CO0FBQTZCQyxNQUFBQSxJQUE3QjtBQUFtQ0MsTUFBQUEsTUFBbkM7QUFBMkNDLE1BQUFBLFNBQVMsR0FBRztBQUF2RCxRQUFnRVksSUFBdEU7QUFFQSxXQUFPLElBQUlyQixNQUFKLENBQ0xFLENBREssRUFFTEMsQ0FGSyxFQUdMQyxDQUhLLEVBSUxDLE1BSkssRUFLTEMsUUFMSyxFQU1MQyxJQU5LLEVBT0xWLGVBQWUsQ0FBQ1csTUFBRCxDQVBWLEVBUUxDLFNBUkssQ0FBUDtBQVVEOztBQTdFMkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQmVoYXZpb3VyIGZyb20gJy4vQmVoYXZpb3VyJztcbmltcG9ydCB7IFZlY3RvcjNEIH0gZnJvbSAnLi4vbWF0aCc7XG5pbXBvcnQgeyBnZXRFYXNpbmdCeU5hbWUgfSBmcm9tICcuLi9lYXNlJztcbmltcG9ydCB7IEJFSEFWSU9VUl9UWVBFX1NQUklORyBhcyB0eXBlIH0gZnJvbSAnLi90eXBlcyc7XG5cbi8qKlxuICogQmVoYXZpb3VyIHRoYXQgY2F1c2VzIHBhcnRpY2xlcyB0byBzcHJpbmcuXG4gKlxuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBTcHJpbmcgZXh0ZW5kcyBCZWhhdmlvdXIge1xuICAvKipcbiAgICogQ29uc3RydWN0cyBhIFNwcmluZyBiZWhhdmlvdXIgaW5zdGFuY2UuXG4gICAqXG4gICAqIEBwYXJhbSB7bnVtYmVyfSB4IC0gWCBheGlzIHNwcmluZ1xuICAgKiBAcGFyYW0ge251bWJlcn0geSAtIFkgYXhpcyBzcHJpbmdcbiAgICogQHBhcmFtIHtudW1iZXJ9IHogLSBaIGF4aXMgc3ByaW5nXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBzcHJpbmcgLSBTcHJpbmcgZmFjdG9yXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBmcmljdGlvbiAtIFNwcmluZyBmcmljdGlvblxuICAgKiBAcGFyYW0ge251bWJlcn0gbGlmZSAtIFRoZSBsaWZlIG9mIHRoZSBiZWhhdmlvdXJcbiAgICogQHBhcmFtIHtmdW5jdGlvbn0gZWFzaW5nIC0gVGhlIGVhc2luZyBlcXVhdGlvbiB0byB1c2UgZm9yIHRyYW5zZm9ybXNcbiAgICogQHBhcmFtIHtib29sZWFufSBbaXNFbmFibGVkPXRydWVdIC0gRGV0ZXJtaW5lcyBpZiB0aGUgYmVoYXZpb3VyIHdpbGwgYmUgYXBwbGllZCBvciBub3RcbiAgICogQHJldHVybiB2b2lkXG4gICAqL1xuICBjb25zdHJ1Y3Rvcih4LCB5LCB6LCBzcHJpbmcsIGZyaWN0aW9uLCBsaWZlLCBlYXNpbmcsIGlzRW5hYmxlZCA9IHRydWUpIHtcbiAgICBzdXBlcihsaWZlLCBlYXNpbmcsIHR5cGUsIGlzRW5hYmxlZCk7XG5cbiAgICB0aGlzLnJlc2V0KHgsIHksIHosIHNwcmluZywgZnJpY3Rpb24pO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlc2V0cyB0aGUgYmVoYXZpb3VyIHByb3BlcnRpZXMuXG4gICAqXG4gICAqIEBwYXJhbSB7bnVtYmVyfSB4IC0gWCBheGlzIHNwcmluZ1xuICAgKiBAcGFyYW0ge251bWJlcn0geSAtIFkgYXhpcyBzcHJpbmdcbiAgICogQHBhcmFtIHtudW1iZXJ9IHogLSBaIGF4aXMgc3ByaW5nXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBzcHJpbmcgLSBTcHJpbmcgZmFjdG9yXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBmcmljdGlvbiAtIFNwcmluZyBmcmljdGlvblxuICAgKiBAcmV0dXJuIHZvaWRcbiAgICovXG4gIHJlc2V0KHgsIHksIHosIHNwcmluZywgZnJpY3Rpb24pIHtcbiAgICBpZiAoIXRoaXMucG9zKSB7XG4gICAgICB0aGlzLnBvcyA9IG5ldyBWZWN0b3IzRCh4LCB5LCB6KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5wb3Muc2V0KHgsIHksIHopO1xuICAgIH1cblxuICAgIHRoaXMuc3ByaW5nID0gc3ByaW5nIHx8IDAuMTtcbiAgICB0aGlzLmZyaWN0aW9uID0gZnJpY3Rpb24gfHwgMC45ODtcbiAgfVxuXG4gIC8qKlxuICAgKiBBcHBsaWVzIHRoZSBiZWhhdmlvdXIgdG8gdGhlIHBhcnRpY2xlLlxuICAgKiBNdXRhdGVzIHRoZSBwYXJ0aWNsZSdzIHZlbG9jaXR5IGFjY29yZGluZyB0byB0aGlzLnBvcyBhbmQgdGhpcy5zcHJpbmcuXG4gICAqXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBwYXJ0aWNsZSAtIHRoZSBwYXJ0aWNsZSB0byBhcHBseSB0aGUgYmVoYXZpb3VyIHRvXG4gICAqIEBwYXJhbSB7bnVtYmVyfSB0aW1lIC0gZW5naW5lIHRpbWVcbiAgICogQHBhcmFtIHtpbnRlZ2VyfSBpbmRleCAtIHRoZSBwYXJ0aWNsZSBpbmRleFxuICAgKiBAcmV0dXJuIHZvaWRcbiAgICovXG4gIG11dGF0ZShwYXJ0aWNsZSwgdGltZSwgaW5kZXgpIHtcbiAgICB0aGlzLmVuZXJnaXplKHBhcnRpY2xlLCB0aW1lLCBpbmRleCk7XG5cbiAgICBwYXJ0aWNsZS52ZWxvY2l0eS54ICs9ICh0aGlzLnBvcy54IC0gcGFydGljbGUucG9zaXRpb24ueCkgKiB0aGlzLnNwcmluZztcbiAgICBwYXJ0aWNsZS52ZWxvY2l0eS55ICs9ICh0aGlzLnBvcy55IC0gcGFydGljbGUucG9zaXRpb24ueSkgKiB0aGlzLnNwcmluZztcbiAgICBwYXJ0aWNsZS52ZWxvY2l0eS56ICs9ICh0aGlzLnBvcy56IC0gcGFydGljbGUucG9zaXRpb24ueikgKiB0aGlzLnNwcmluZztcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGEgbmV3IGluc3RhbmNlIG9mIHRoZSBiZWhhdmlvdXIgZnJvbSB0aGUgSlNPTiBvYmplY3QgcGFzc2VkLlxuICAgKlxuICAgKiBAcGFyYW0ge29iamVjdH0ganNvbiAtIEpTT04gb2JqZWN0IGNvbnRhaW5pbmcgdGhlIHJlcXVpcmVkIGNvbnN0cnVjdG9yIHByb3BlcnRpZXNcbiAgICogQHJldHVybiB7U3ByaW5nfVxuICAgKi9cbiAgc3RhdGljIGZyb21KU09OKGpzb24pIHtcbiAgICBjb25zdCB7IHgsIHksIHosIHNwcmluZywgZnJpY3Rpb24sIGxpZmUsIGVhc2luZywgaXNFbmFibGVkID0gdHJ1ZSB9ID0ganNvbjtcblxuICAgIHJldHVybiBuZXcgU3ByaW5nKFxuICAgICAgeCxcbiAgICAgIHksXG4gICAgICB6LFxuICAgICAgc3ByaW5nLFxuICAgICAgZnJpY3Rpb24sXG4gICAgICBsaWZlLFxuICAgICAgZ2V0RWFzaW5nQnlOYW1lKGVhc2luZyksXG4gICAgICBpc0VuYWJsZWRcbiAgICApO1xuICB9XG59XG4iXX0= ================================================ FILE: packages/sdk/lib/core/libs/three-nebula/behaviour/constants.js ================================================ import { easeLinear } from '../ease'; export const DEFAULT_LIFE = Infinity; export const DEFAULT_ATTRACITON_RADIUS = 1000; export const DEFAULT_ATTRACTION_FORCE_SCALAR = 100; export const DEFAULT_BEHAVIOUR_EASING = easeLinear; export const DEFAULT_BEHAVIOUR_EASING_TYPE = 'easeLinear'; export const DEFAULT_RANDOM_DRIFT_DELAY = 0.03; export const PARTICLE_ALPHA_THRESHOLD = 0.002; export const PARTICLE_LENGTH_SQ_THRESHOLD = 0.000004; export const DEFAULT_CROSS_TYPE = 'dead'; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9iZWhhdmlvdXIvY29uc3RhbnRzLmpzIl0sIm5hbWVzIjpbImVhc2VMaW5lYXIiLCJERUZBVUxUX0xJRkUiLCJJbmZpbml0eSIsIkRFRkFVTFRfQVRUUkFDSVRPTl9SQURJVVMiLCJERUZBVUxUX0FUVFJBQ1RJT05fRk9SQ0VfU0NBTEFSIiwiREVGQVVMVF9CRUhBVklPVVJfRUFTSU5HIiwiREVGQVVMVF9CRUhBVklPVVJfRUFTSU5HX1RZUEUiLCJERUZBVUxUX1JBTkRPTV9EUklGVF9ERUxBWSIsIlBBUlRJQ0xFX0FMUEhBX1RIUkVTSE9MRCIsIlBBUlRJQ0xFX0xFTkdUSF9TUV9USFJFU0hPTEQiLCJERUZBVUxUX0NST1NTX1RZUEUiXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLFVBQVQsUUFBMkIsU0FBM0I7QUFFQSxPQUFPLE1BQU1DLFlBQVksR0FBR0MsUUFBckI7QUFDUCxPQUFPLE1BQU1DLHlCQUF5QixHQUFHLElBQWxDO0FBQ1AsT0FBTyxNQUFNQywrQkFBK0IsR0FBRyxHQUF4QztBQUNQLE9BQU8sTUFBTUMsd0JBQXdCLEdBQUdMLFVBQWpDO0FBQ1AsT0FBTyxNQUFNTSw2QkFBNkIsR0FBRyxZQUF0QztBQUNQLE9BQU8sTUFBTUMsMEJBQTBCLEdBQUcsSUFBbkM7QUFDUCxPQUFPLE1BQU1DLHdCQUF3QixHQUFHLEtBQWpDO0FBQ1AsT0FBTyxNQUFNQyw0QkFBNEIsR0FBRyxRQUFyQztBQUNQLE9BQU8sTUFBTUMsa0JBQWtCLEdBQUcsTUFBM0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBlYXNlTGluZWFyIH0gZnJvbSAnLi4vZWFzZSc7XG5cbmV4cG9ydCBjb25zdCBERUZBVUxUX0xJRkUgPSBJbmZpbml0eTtcbmV4cG9ydCBjb25zdCBERUZBVUxUX0FUVFJBQ0lUT05fUkFESVVTID0gMTAwMDtcbmV4cG9ydCBjb25zdCBERUZBVUxUX0FUVFJBQ1RJT05fRk9SQ0VfU0NBTEFSID0gMTAwO1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfQkVIQVZJT1VSX0VBU0lORyA9IGVhc2VMaW5lYXI7XG5leHBvcnQgY29uc3QgREVGQVVMVF9CRUhBVklPVVJfRUFTSU5HX1RZUEUgPSAnZWFzZUxpbmVhcic7XG5leHBvcnQgY29uc3QgREVGQVVMVF9SQU5ET01fRFJJRlRfREVMQVkgPSAwLjAzO1xuZXhwb3J0IGNvbnN0IFBBUlRJQ0xFX0FMUEhBX1RIUkVTSE9MRCA9IDAuMDAyO1xuZXhwb3J0IGNvbnN0IFBBUlRJQ0xFX0xFTkdUSF9TUV9USFJFU0hPTEQgPSAwLjAwMDAwNDtcbmV4cG9ydCBjb25zdCBERUZBVUxUX0NST1NTX1RZUEUgPSAnZGVhZCc7XG4iXX0= ================================================ FILE: packages/sdk/lib/core/libs/three-nebula/behaviour/index.js ================================================ export { default as Alpha } from './Alpha'; export { default as Attraction } from './Attraction'; export { default as Collision } from './Collision'; export { default as Color } from './Color'; export { default as CrossZone } from './CrossZone'; export { default as Force } from './Force'; export { default as Gravity } from './Gravity'; export { default as RandomDrift } from './RandomDrift'; export { default as Repulsion } from './Repulsion'; export { default as Rotate } from './Rotate'; export { default as Scale } from './Scale'; export { default as Spring } from './Spring'; export { default as Behaviour } from './Behaviour'; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9iZWhhdmlvdXIvaW5kZXguanMiXSwibmFtZXMiOlsiZGVmYXVsdCIsIkFscGhhIiwiQXR0cmFjdGlvbiIsIkNvbGxpc2lvbiIsIkNvbG9yIiwiQ3Jvc3Nab25lIiwiRm9yY2UiLCJHcmF2aXR5IiwiUmFuZG9tRHJpZnQiLCJSZXB1bHNpb24iLCJSb3RhdGUiLCJTY2FsZSIsIlNwcmluZyIsIkJlaGF2aW91ciJdLCJtYXBwaW5ncyI6IkFBQUEsU0FBU0EsT0FBTyxJQUFJQyxLQUFwQixRQUFpQyxTQUFqQztBQUNBLFNBQVNELE9BQU8sSUFBSUUsVUFBcEIsUUFBc0MsY0FBdEM7QUFDQSxTQUFTRixPQUFPLElBQUlHLFNBQXBCLFFBQXFDLGFBQXJDO0FBQ0EsU0FBU0gsT0FBTyxJQUFJSSxLQUFwQixRQUFpQyxTQUFqQztBQUNBLFNBQVNKLE9BQU8sSUFBSUssU0FBcEIsUUFBcUMsYUFBckM7QUFDQSxTQUFTTCxPQUFPLElBQUlNLEtBQXBCLFFBQWlDLFNBQWpDO0FBQ0EsU0FBU04sT0FBTyxJQUFJTyxPQUFwQixRQUFtQyxXQUFuQztBQUNBLFNBQVNQLE9BQU8sSUFBSVEsV0FBcEIsUUFBdUMsZUFBdkM7QUFDQSxTQUFTUixPQUFPLElBQUlTLFNBQXBCLFFBQXFDLGFBQXJDO0FBQ0EsU0FBU1QsT0FBTyxJQUFJVSxNQUFwQixRQUFrQyxVQUFsQztBQUNBLFNBQVNWLE9BQU8sSUFBSVcsS0FBcEIsUUFBaUMsU0FBakM7QUFDQSxTQUFTWCxPQUFPLElBQUlZLE1BQXBCLFFBQWtDLFVBQWxDO0FBQ0EsU0FBU1osT0FBTyxJQUFJYSxTQUFwQixRQUFxQyxhQUFyQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IGRlZmF1bHQgYXMgQWxwaGEgfSBmcm9tICcuL0FscGhhJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQXR0cmFjdGlvbiB9IGZyb20gJy4vQXR0cmFjdGlvbic7XG5leHBvcnQgeyBkZWZhdWx0IGFzIENvbGxpc2lvbiB9IGZyb20gJy4vQ29sbGlzaW9uJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQ29sb3IgfSBmcm9tICcuL0NvbG9yJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQ3Jvc3Nab25lIH0gZnJvbSAnLi9Dcm9zc1pvbmUnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBGb3JjZSB9IGZyb20gJy4vRm9yY2UnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBHcmF2aXR5IH0gZnJvbSAnLi9HcmF2aXR5JztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgUmFuZG9tRHJpZnQgfSBmcm9tICcuL1JhbmRvbURyaWZ0JztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgUmVwdWxzaW9uIH0gZnJvbSAnLi9SZXB1bHNpb24nO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBSb3RhdGUgfSBmcm9tICcuL1JvdGF0ZSc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFNjYWxlIH0gZnJvbSAnLi9TY2FsZSc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFNwcmluZyB9IGZyb20gJy4vU3ByaW5nJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQmVoYXZpb3VyIH0gZnJvbSAnLi9CZWhhdmlvdXInO1xuIl19 ================================================ FILE: packages/sdk/lib/core/libs/three-nebula/behaviour/types.js ================================================ export const BEHAVIOUR_TYPE_ABSTRACT = 'Behaviour'; export const BEHAVIOUR_TYPE_ALPHA = 'Alpha'; export const BEHAVIOUR_TYPE_ATTRACTION = 'Attraction'; export const BEHAVIOUR_TYPE_COLLISION = 'Collision'; export const BEHAVIOUR_TYPE_COLOR = 'Color'; export const BEHAVIOUR_TYPE_CROSS_ZONE = 'CrossZone'; export const BEHAVIOUR_TYPE_FORCE = 'Force'; export const BEHAVIOUR_TYPE_GRAVITY = 'Gravity'; export const BEHAVIOUR_TYPE_RANDOM_DRIFT = 'RandomDrift'; export const BEHAVIOUR_TYPE_REPULSION = 'Repulsion'; export const BEHAVIOUR_TYPE_ROTATE = 'Rotate'; export const BEHAVIOUR_TYPE_SCALE = 'Scale'; export const BEHAVIOUR_TYPE_SPRING = 'Spring'; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9iZWhhdmlvdXIvdHlwZXMuanMiXSwibmFtZXMiOlsiQkVIQVZJT1VSX1RZUEVfQUJTVFJBQ1QiLCJCRUhBVklPVVJfVFlQRV9BTFBIQSIsIkJFSEFWSU9VUl9UWVBFX0FUVFJBQ1RJT04iLCJCRUhBVklPVVJfVFlQRV9DT0xMSVNJT04iLCJCRUhBVklPVVJfVFlQRV9DT0xPUiIsIkJFSEFWSU9VUl9UWVBFX0NST1NTX1pPTkUiLCJCRUhBVklPVVJfVFlQRV9GT1JDRSIsIkJFSEFWSU9VUl9UWVBFX0dSQVZJVFkiLCJCRUhBVklPVVJfVFlQRV9SQU5ET01fRFJJRlQiLCJCRUhBVklPVVJfVFlQRV9SRVBVTFNJT04iLCJCRUhBVklPVVJfVFlQRV9ST1RBVEUiLCJCRUhBVklPVVJfVFlQRV9TQ0FMRSIsIkJFSEFWSU9VUl9UWVBFX1NQUklORyJdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxNQUFNQSx1QkFBdUIsR0FBRyxXQUFoQztBQUNQLE9BQU8sTUFBTUMsb0JBQW9CLEdBQUcsT0FBN0I7QUFDUCxPQUFPLE1BQU1DLHlCQUF5QixHQUFHLFlBQWxDO0FBQ1AsT0FBTyxNQUFNQyx3QkFBd0IsR0FBRyxXQUFqQztBQUNQLE9BQU8sTUFBTUMsb0JBQW9CLEdBQUcsT0FBN0I7QUFDUCxPQUFPLE1BQU1DLHlCQUF5QixHQUFHLFdBQWxDO0FBQ1AsT0FBTyxNQUFNQyxvQkFBb0IsR0FBRyxPQUE3QjtBQUNQLE9BQU8sTUFBTUMsc0JBQXNCLEdBQUcsU0FBL0I7QUFDUCxPQUFPLE1BQU1DLDJCQUEyQixHQUFHLGFBQXBDO0FBQ1AsT0FBTyxNQUFNQyx3QkFBd0IsR0FBRyxXQUFqQztBQUNQLE9BQU8sTUFBTUMscUJBQXFCLEdBQUcsUUFBOUI7QUFDUCxPQUFPLE1BQU1DLG9CQUFvQixHQUFHLE9BQTdCO0FBQ1AsT0FBTyxNQUFNQyxxQkFBcUIsR0FBRyxRQUE5QiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBCRUhBVklPVVJfVFlQRV9BQlNUUkFDVCA9ICdCZWhhdmlvdXInO1xuZXhwb3J0IGNvbnN0IEJFSEFWSU9VUl9UWVBFX0FMUEhBID0gJ0FscGhhJztcbmV4cG9ydCBjb25zdCBCRUhBVklPVVJfVFlQRV9BVFRSQUNUSU9OID0gJ0F0dHJhY3Rpb24nO1xuZXhwb3J0IGNvbnN0IEJFSEFWSU9VUl9UWVBFX0NPTExJU0lPTiA9ICdDb2xsaXNpb24nO1xuZXhwb3J0IGNvbnN0IEJFSEFWSU9VUl9UWVBFX0NPTE9SID0gJ0NvbG9yJztcbmV4cG9ydCBjb25zdCBCRUhBVklPVVJfVFlQRV9DUk9TU19aT05FID0gJ0Nyb3NzWm9uZSc7XG5leHBvcnQgY29uc3QgQkVIQVZJT1VSX1RZUEVfRk9SQ0UgPSAnRm9yY2UnO1xuZXhwb3J0IGNvbnN0IEJFSEFWSU9VUl9UWVBFX0dSQVZJVFkgPSAnR3Jhdml0eSc7XG5leHBvcnQgY29uc3QgQkVIQVZJT1VSX1RZUEVfUkFORE9NX0RSSUZUID0gJ1JhbmRvbURyaWZ0JztcbmV4cG9ydCBjb25zdCBCRUhBVklPVVJfVFlQRV9SRVBVTFNJT04gPSAnUmVwdWxzaW9uJztcbmV4cG9ydCBjb25zdCBCRUhBVklPVVJfVFlQRV9ST1RBVEUgPSAnUm90YXRlJztcbmV4cG9ydCBjb25zdCBCRUhBVklPVVJfVFlQRV9TQ0FMRSA9ICdTY2FsZSc7XG5leHBvcnQgY29uc3QgQkVIQVZJT1VSX1RZUEVfU1BSSU5HID0gJ1NwcmluZyc7XG4iXX0= ================================================ FILE: packages/sdk/lib/core/libs/three-nebula/constants/index.js ================================================ // export const PI = 3.142; export const PI = Math.PI; /** * The max particle number in pool. * * @const {integer} */ export const POOL_MAX = 500; export const TIME_STEP = 60; export const DR = PI / 180; /** * 1:100 * * @const {integer} */ export const MEASURE = 100; export const EULER = 'euler'; export const RK2 = 'runge-kutta2'; export const RK4 = 'runge-kutta4'; export const VERLET = 'verlet'; export const BIND_EMITTER_EVENT = false; export const __DEV__ = () => { if (!process) { return false; } if (!process.env) { return false; } if (!process.env.NODE_ENV) { return false; } if (process.env.NODE_ENV !== 'development') { return false; } return true; }; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb25zdGFudHMvaW5kZXguanMiXSwibmFtZXMiOlsiUEkiLCJQT09MX01BWCIsIlRJTUVfU1RFUCIsIkRSIiwiTUVBU1VSRSIsIkVVTEVSIiwiUksyIiwiUks0IiwiVkVSTEVUIiwiQklORF9FTUlUVEVSX0VWRU5UIiwiX19ERVZfXyIsInByb2Nlc3MiLCJlbnYiLCJOT0RFX0VOViJdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxNQUFNQSxFQUFFLEdBQUcsS0FBWDtBQUVQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBQ0EsT0FBTyxNQUFNQyxRQUFRLEdBQUcsR0FBakI7QUFDUCxPQUFPLE1BQU1DLFNBQVMsR0FBRyxFQUFsQjtBQUNQLE9BQU8sTUFBTUMsRUFBRSxHQUFHSCxFQUFFLEdBQUcsR0FBaEI7QUFFUDtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUNBLE9BQU8sTUFBTUksT0FBTyxHQUFHLEdBQWhCO0FBQ1AsT0FBTyxNQUFNQyxLQUFLLEdBQUcsT0FBZDtBQUNQLE9BQU8sTUFBTUMsR0FBRyxHQUFHLGNBQVo7QUFDUCxPQUFPLE1BQU1DLEdBQUcsR0FBRyxjQUFaO0FBQ1AsT0FBTyxNQUFNQyxNQUFNLEdBQUcsUUFBZjtBQUNQLE9BQU8sTUFBTUMsa0JBQWtCLEdBQUcsS0FBM0I7QUFFUCxPQUFPLE1BQU1DLE9BQU8sR0FBRyxNQUFNO0FBQzNCLE1BQUksQ0FBQ0MsT0FBTCxFQUFjO0FBQ1osV0FBTyxLQUFQO0FBQ0Q7O0FBRUQsTUFBSSxDQUFDQSxPQUFPLENBQUNDLEdBQWIsRUFBa0I7QUFDaEIsV0FBTyxLQUFQO0FBQ0Q7O0FBRUQsTUFBSSxDQUFDRCxPQUFPLENBQUNDLEdBQVIsQ0FBWUMsUUFBakIsRUFBMkI7QUFDekIsV0FBTyxLQUFQO0FBQ0Q7O0FBRUQsTUFBSUYsT0FBTyxDQUFDQyxHQUFSLENBQVlDLFFBQVosS0FBeUIsYUFBN0IsRUFBNEM7QUFDMUMsV0FBTyxLQUFQO0FBQ0Q7O0FBRUQsU0FBTyxJQUFQO0FBQ0QsQ0FsQk0iLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgUEkgPSAzLjE0MjtcblxuLyoqXG4gKiBUaGUgbWF4IHBhcnRpY2xlIG51bWJlciBpbiBwb29sLlxuICpcbiAqIEBjb25zdCB7aW50ZWdlcn1cbiAqL1xuZXhwb3J0IGNvbnN0IFBPT0xfTUFYID0gNTAwO1xuZXhwb3J0IGNvbnN0IFRJTUVfU1RFUCA9IDYwO1xuZXhwb3J0IGNvbnN0IERSID0gUEkgLyAxODA7XG5cbi8qKlxuICogMToxMDBcbiAqXG4gKiBAY29uc3Qge2ludGVnZXJ9XG4gKi9cbmV4cG9ydCBjb25zdCBNRUFTVVJFID0gMTAwO1xuZXhwb3J0IGNvbnN0IEVVTEVSID0gJ2V1bGVyJztcbmV4cG9ydCBjb25zdCBSSzIgPSAncnVuZ2Uta3V0dGEyJztcbmV4cG9ydCBjb25zdCBSSzQgPSAncnVuZ2Uta3V0dGE0JztcbmV4cG9ydCBjb25zdCBWRVJMRVQgPSAndmVybGV0JztcbmV4cG9ydCBjb25zdCBCSU5EX0VNSVRURVJfRVZFTlQgPSBmYWxzZTtcblxuZXhwb3J0IGNvbnN0IF9fREVWX18gPSAoKSA9PiB7XG4gIGlmICghcHJvY2Vzcykge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGlmICghcHJvY2Vzcy5lbnYpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpZiAoIXByb2Nlc3MuZW52Lk5PREVfRU5WKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAnZGV2ZWxvcG1lbnQnKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcmV0dXJuIHRydWU7XG59O1xuIl19 ================================================ FILE: packages/sdk/lib/core/libs/three-nebula/core/Particle.js ================================================ import { DEFAULT_AGE, DEFAULT_ALPHA, DEFAULT_BODY, DEFAULT_DEAD, DEFAULT_EASING, DEFAULT_ENERGY, DEFAULT_LIFE, DEFAULT_MASS, DEFAULT_PARENT, DEFAULT_RADIUS, DEFAULT_SCALE, DEFAULT_SLEEP, DEFAULT_USE_ALPHA, DEFAULT_USE_COLOR } from './constants'; import { Util, uid } from '../utils'; import { PI } from '../constants'; import { Vector3D } from '../math'; import { CORE_TYPE_PARTICLE as type } from './types'; /** * A Particle is an object that is emitted by an emitter. * */ export default class Particle { /** * Constructs a Particle instance. * * @param {object} properties - The properties to instantiate the particle with * @property {number} properties.life - The particle's life * @property {number} properties.age - The particle's age * @property {number} properties.energy - The particle's energy loss * @property {boolean} properties.dead - Determines if the particle is dead or not * @property {boolean} properties.sleep - Determines if the particle is sleeping or not * @property {object} properties.target - The particle's target * @property {object} properties.body - The particle's body * @property {number} properties.mass - The particle's mass * @property {number} properties.radius - The particle's radius * @property {number} properties.alpha - The particle's alpha * @property {number} properties.scale - The particle's scale * @property {Vector3D} properties.rotation - The particle's rotation * @property {string|number} properties.color - The particle's color * @property {function} properties.easing - The particle's easing * @property {Vector3D} properties.position - The particle's position * @property {Vector3D} properties.velocity - The particle's velocity * @property {Vector3D} properties.acceleration - The particle's acceleration * @property {array} properties.behaviours - The particle's behaviours array * @property {object} properties.transform - The particle's transform collection * @return void */ constructor(properties) { /** * @desc The particle's unique id * @type {number} */ this.id = `particle-${uid()}`; /** * @desc The class type. * @type {string} */ this.type = type; /** * @desc The particle's life * @type {number} */ this.life = DEFAULT_LIFE; /** * @desc The particle's age * @type {number} */ this.age = DEFAULT_AGE; /** * @desc The particle's energy loss * @type {number} */ this.energy = DEFAULT_ENERGY; /** * @desc Determines if the particle is dead or not * @type {number} */ this.dead = DEFAULT_DEAD; /** * @desc Determines if the particle is sleeping or not * @type {number} */ this.sleep = DEFAULT_SLEEP; /** * @desc The particle's body * @type {object} */ this.body = DEFAULT_BODY; /** * @desc The particle's parent * @type {?Emitter} */ this.parent = DEFAULT_PARENT; /** * @desc The particle's mass * @type {number} */ this.mass = DEFAULT_MASS; /** * @desc The particle's radius * @type {number} */ this.radius = DEFAULT_RADIUS; /** * @desc The particle's alpha * @type {number} */ this.alpha = DEFAULT_ALPHA; /** * @desc The particle's scale * @type {number} */ this.scale = DEFAULT_SCALE; /** * @desc Determines whether to use color or not * @type {boolean} */ this.useColor = DEFAULT_USE_COLOR; /** * @desc Determines whether to use alpha or not * @type {boolean} */ this.useAlpha = DEFAULT_USE_ALPHA; /** * @desc The particle's easing * @type {string} */ this.easing = DEFAULT_EASING; /** * @desc The particle's position * @type {Vector3D} */ this.position = new Vector3D(); /** * @desc The particle's velocity * @type {Vector3D} */ this.velocity = new Vector3D(); /** * @desc The particle's acceleration * @type {Vector3D} */ this.acceleration = new Vector3D(); /** * @desc The particle's last position, velocity and acceleration * @type {Vector3D} */ this.old = {}; /** * @desc The particle's old position * @type {Vector3D} */ this.old.position = this.position.clone(); /** * @desc The particle's old velocity * @type {Vector3D} */ this.old.velocity = this.velocity.clone(); /** * @desc The particle's old acceleration * @type {Vector3D} */ this.old.acceleration = this.acceleration.clone(); /** * @desc The particle's behaviours array * @type {array} */ this.behaviours = []; /** * @desc The particle's transform collection * @type {object} */ this.transform = {}; /** * @desc The particle's color store * @type {object} */ this.color = { r: 0, g: 0, b: 0 }; /** * @desc The particle's rotation * @type {Vector3D} */ this.rotation = new Vector3D(); /** * @desc The particle's distance to the camera, only set by the GPURenderer for depth sorting purposes. * @type {number} */ this.distanceToCamera = 0; // override constructor props with passed properties. Util.setPrototypeByObj(this, properties); } /** * Gets the particle's current direction. * * @return {number} */ getDirection() { return Math.atan2(this.velocity.x, -this.velocity.y) * (180 / PI); } /** * Resets the particle's default properties and clear's its particle's position, * velocity, acceleration, color and rotation. Also destroy's the particle's * transform collection & removes all behaviours. * * @return {Particle} */ reset() { this.life = DEFAULT_LIFE; this.age = DEFAULT_AGE; this.energy = DEFAULT_ENERGY; this.dead = DEFAULT_DEAD; this.sleep = DEFAULT_SLEEP; this.body = DEFAULT_BODY; this.parent = DEFAULT_PARENT; this.mass = DEFAULT_MASS; this.radius = DEFAULT_RADIUS; this.alpha = DEFAULT_ALPHA; this.scale = DEFAULT_SCALE; this.useColor = DEFAULT_USE_COLOR; this.useAlpha = DEFAULT_USE_ALPHA; this.easing = DEFAULT_EASING; this.position.set(0, 0, 0); this.velocity.set(0, 0, 0); this.acceleration.set(0, 0, 0); this.old.position.set(0, 0, 0); this.old.velocity.set(0, 0, 0); this.old.acceleration.set(0, 0, 0); this.color.r = 0; this.color.g = 0; this.color.b = 0; this.rotation.clear(); Util.destroyObject(this.transform); this.removeAllBehaviours(); return this; } /** * Updates the particle's properties by applying each behaviour to the particle. * Will also update the particle's energy, unless it's age is greater than it's life * in which case it will be destroyed. * * @param {number} time - Integration time * @param {integer} index - Particle index * @return void */ update(time, index) { if (!this.sleep) { this.age += time; let i = this.behaviours.length; while (i--) { let behaviour = this.behaviours[i]; //behaviour && behaviour.applyBehaviour(this, time, index); } } if (this.age >= this.life) { this.destroy(); } else { const scale = this.easing(this.age / this.life); this.energy = Math.max(1 - scale, 0); } } /** * Adds a behaviour to the particle. * * @param {Behaviour} behaviour - The behaviour to add to the particle * @return void */ addBehaviour(behaviour) { this.behaviours.push(behaviour); behaviour.initialize(this); } /** * Adds multiple behaviours to the particle. * * @param {array} behaviours - An array of behaviours to add to the particle * @return void */ addBehaviours(behaviours) { let i = behaviours.length; while (i--) { this.addBehaviour(behaviours[i]); } } /** * Removes the behaviour from the particle. * * @param {Behaviour} behaviour - The behaviour to remove from the particle * @return void */ removeBehaviour(behaviour) { const index = this.behaviours.indexOf(behaviour); if (index > -1) { this.behaviours.splice(index, 1); } } /** * Removes all behaviours from the particle. * * @return void */ removeAllBehaviours() { Util.destroyArray(this.behaviours); } /** * Destroys the particle. * * @return void */ destroy() { this.removeAllBehaviours(); this.energy = 0; this.dead = true; this.parent = null; } } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb3JlL1BhcnRpY2xlLmpzIl0sIm5hbWVzIjpbIkRFRkFVTFRfQUdFIiwiREVGQVVMVF9BTFBIQSIsIkRFRkFVTFRfQk9EWSIsIkRFRkFVTFRfREVBRCIsIkRFRkFVTFRfRUFTSU5HIiwiREVGQVVMVF9FTkVSR1kiLCJERUZBVUxUX0xJRkUiLCJERUZBVUxUX01BU1MiLCJERUZBVUxUX1BBUkVOVCIsIkRFRkFVTFRfUkFESVVTIiwiREVGQVVMVF9TQ0FMRSIsIkRFRkFVTFRfU0xFRVAiLCJERUZBVUxUX1VTRV9BTFBIQSIsIkRFRkFVTFRfVVNFX0NPTE9SIiwiVXRpbCIsInVpZCIsIlBJIiwiVmVjdG9yM0QiLCJDT1JFX1RZUEVfUEFSVElDTEUiLCJ0eXBlIiwiUGFydGljbGUiLCJjb25zdHJ1Y3RvciIsInByb3BlcnRpZXMiLCJpZCIsImxpZmUiLCJhZ2UiLCJlbmVyZ3kiLCJkZWFkIiwic2xlZXAiLCJib2R5IiwicGFyZW50IiwibWFzcyIsInJhZGl1cyIsImFscGhhIiwic2NhbGUiLCJ1c2VDb2xvciIsInVzZUFscGhhIiwiZWFzaW5nIiwicG9zaXRpb24iLCJ2ZWxvY2l0eSIsImFjY2VsZXJhdGlvbiIsIm9sZCIsImNsb25lIiwiYmVoYXZpb3VycyIsInRyYW5zZm9ybSIsImNvbG9yIiwiciIsImciLCJiIiwicm90YXRpb24iLCJkaXN0YW5jZVRvQ2FtZXJhIiwic2V0UHJvdG90eXBlQnlPYmoiLCJnZXREaXJlY3Rpb24iLCJNYXRoIiwiYXRhbjIiLCJ4IiwieSIsInJlc2V0Iiwic2V0IiwiY2xlYXIiLCJkZXN0cm95T2JqZWN0IiwicmVtb3ZlQWxsQmVoYXZpb3VycyIsInVwZGF0ZSIsInRpbWUiLCJpbmRleCIsImkiLCJsZW5ndGgiLCJiZWhhdmlvdXIiLCJhcHBseUJlaGF2aW91ciIsImRlc3Ryb3kiLCJtYXgiLCJhZGRCZWhhdmlvdXIiLCJwdXNoIiwiaW5pdGlhbGl6ZSIsImFkZEJlaGF2aW91cnMiLCJyZW1vdmVCZWhhdmlvdXIiLCJpbmRleE9mIiwic3BsaWNlIiwiZGVzdHJveUFycmF5Il0sIm1hcHBpbmdzIjoiQUFBQSxTQUNFQSxXQURGLEVBRUVDLGFBRkYsRUFHRUMsWUFIRixFQUlFQyxZQUpGLEVBS0VDLGNBTEYsRUFNRUMsY0FORixFQU9FQyxZQVBGLEVBUUVDLFlBUkYsRUFTRUMsY0FURixFQVVFQyxjQVZGLEVBV0VDLGFBWEYsRUFZRUMsYUFaRixFQWFFQyxpQkFiRixFQWNFQyxpQkFkRixRQWVPLGFBZlA7QUFnQkEsU0FBU0MsSUFBVCxFQUFlQyxHQUFmLFFBQTBCLFVBQTFCO0FBRUEsU0FBU0MsRUFBVCxRQUFtQixjQUFuQjtBQUNBLFNBQVNDLFFBQVQsUUFBeUIsU0FBekI7QUFDQSxTQUFTQyxrQkFBa0IsSUFBSUMsSUFBL0IsUUFBMkMsU0FBM0M7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFDQSxlQUFlLE1BQU1DLFFBQU4sQ0FBZTtBQUM1QjtBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNFQyxFQUFBQSxXQUFXLENBQUNDLFVBQUQsRUFBYTtBQUN0QjtBQUNKO0FBQ0E7QUFDQTtBQUNJLFNBQUtDLEVBQUwsR0FBVyxZQUFXUixHQUFHLEVBQUcsRUFBNUI7QUFFQTtBQUNKO0FBQ0E7QUFDQTs7QUFDSSxTQUFLSSxJQUFMLEdBQVlBLElBQVo7QUFDQTtBQUNKO0FBQ0E7QUFDQTs7QUFDSSxTQUFLSyxJQUFMLEdBQVlsQixZQUFaO0FBQ0E7QUFDSjtBQUNBO0FBQ0E7O0FBQ0ksU0FBS21CLEdBQUwsR0FBV3pCLFdBQVg7QUFDQTtBQUNKO0FBQ0E7QUFDQTs7QUFDSSxTQUFLMEIsTUFBTCxHQUFjckIsY0FBZDtBQUNBO0FBQ0o7QUFDQTtBQUNBOztBQUNJLFNBQUtzQixJQUFMLEdBQVl4QixZQUFaO0FBQ0E7QUFDSjtBQUNBO0FBQ0E7O0FBQ0ksU0FBS3lCLEtBQUwsR0FBYWpCLGFBQWI7QUFDQTtBQUNKO0FBQ0E7QUFDQTs7QUFDSSxTQUFLa0IsSUFBTCxHQUFZM0IsWUFBWjtBQUNBO0FBQ0o7QUFDQTtBQUNBOztBQUNJLFNBQUs0QixNQUFMLEdBQWN0QixjQUFkO0FBQ0E7QUFDSjtBQUNBO0FBQ0E7O0FBQ0ksU0FBS3VCLElBQUwsR0FBWXhCLFlBQVo7QUFDQTtBQUNKO0FBQ0E7QUFDQTs7QUFDSSxTQUFLeUIsTUFBTCxHQUFjdkIsY0FBZDtBQUNBO0FBQ0o7QUFDQTtBQUNBOztBQUNJLFNBQUt3QixLQUFMLEdBQWFoQyxhQUFiO0FBQ0E7QUFDSjtBQUNBO0FBQ0E7O0FBQ0ksU0FBS2lDLEtBQUwsR0FBYXhCLGFBQWI7QUFDQTtBQUNKO0FBQ0E7QUFDQTs7QUFDSSxTQUFLeUIsUUFBTCxHQUFnQnRCLGlCQUFoQjtBQUNBO0FBQ0o7QUFDQTtBQUNBOztBQUNJLFNBQUt1QixRQUFMLEdBQWdCeEIsaUJBQWhCO0FBQ0E7QUFDSjtBQUNBO0FBQ0E7O0FBQ0ksU0FBS3lCLE1BQUwsR0FBY2pDLGNBQWQ7QUFDQTtBQUNKO0FBQ0E7QUFDQTs7QUFDSSxTQUFLa0MsUUFBTCxHQUFnQixJQUFJckIsUUFBSixFQUFoQjtBQUNBO0FBQ0o7QUFDQTtBQUNBOztBQUNJLFNBQUtzQixRQUFMLEdBQWdCLElBQUl0QixRQUFKLEVBQWhCO0FBQ0E7QUFDSjtBQUNBO0FBQ0E7O0FBQ0ksU0FBS3VCLFlBQUwsR0FBb0IsSUFBSXZCLFFBQUosRUFBcEI7QUFDQTtBQUNKO0FBQ0E7QUFDQTs7QUFDSSxTQUFLd0IsR0FBTCxHQUFXLEVBQVg7QUFDQTtBQUNKO0FBQ0E7QUFDQTs7QUFDSSxTQUFLQSxHQUFMLENBQVNILFFBQVQsR0FBb0IsS0FBS0EsUUFBTCxDQUFjSSxLQUFkLEVBQXBCO0FBQ0E7QUFDSjtBQUNBO0FBQ0E7O0FBQ0ksU0FBS0QsR0FBTCxDQUFTRixRQUFULEdBQW9CLEtBQUtBLFFBQUwsQ0FBY0csS0FBZCxFQUFwQjtBQUNBO0FBQ0o7QUFDQTtBQUNBOztBQUNJLFNBQUtELEdBQUwsQ0FBU0QsWUFBVCxHQUF3QixLQUFLQSxZQUFMLENBQWtCRSxLQUFsQixFQUF4QjtBQUNBO0FBQ0o7QUFDQTtBQUNBOztBQUNJLFNBQUtDLFVBQUwsR0FBa0IsRUFBbEI7QUFDQTtBQUNKO0FBQ0E7QUFDQTs7QUFDSSxTQUFLQyxTQUFMLEdBQWlCLEVBQWpCO0FBQ0E7QUFDSjtBQUNBO0FBQ0E7O0FBQ0ksU0FBS0MsS0FBTCxHQUFhO0FBQUVDLE1BQUFBLENBQUMsRUFBRSxDQUFMO0FBQVFDLE1BQUFBLENBQUMsRUFBRSxDQUFYO0FBQWNDLE1BQUFBLENBQUMsRUFBRTtBQUFqQixLQUFiO0FBQ0E7QUFDSjtBQUNBO0FBQ0E7O0FBQ0ksU0FBS0MsUUFBTCxHQUFnQixJQUFJaEMsUUFBSixFQUFoQjtBQUVBO0FBQ0o7QUFDQTtBQUNBOztBQUNJLFNBQUtpQyxnQkFBTCxHQUF3QixDQUF4QixDQTlJc0IsQ0FnSnRCOztBQUNBcEMsSUFBQUEsSUFBSSxDQUFDcUMsaUJBQUwsQ0FBdUIsSUFBdkIsRUFBNkI3QixVQUE3QjtBQUNEO0FBRUQ7QUFDRjtBQUNBO0FBQ0E7QUFDQTs7O0FBQ0U4QixFQUFBQSxZQUFZLEdBQUc7QUFDYixXQUFPQyxJQUFJLENBQUNDLEtBQUwsQ0FBVyxLQUFLZixRQUFMLENBQWNnQixDQUF6QixFQUE0QixDQUFDLEtBQUtoQixRQUFMLENBQWNpQixDQUEzQyxLQUFpRCxNQUFNeEMsRUFBdkQsQ0FBUDtBQUNEO0FBRUQ7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUNFeUMsRUFBQUEsS0FBSyxHQUFHO0FBQ04sU0FBS2pDLElBQUwsR0FBWWxCLFlBQVo7QUFDQSxTQUFLbUIsR0FBTCxHQUFXekIsV0FBWDtBQUNBLFNBQUswQixNQUFMLEdBQWNyQixjQUFkO0FBQ0EsU0FBS3NCLElBQUwsR0FBWXhCLFlBQVo7QUFDQSxTQUFLeUIsS0FBTCxHQUFhakIsYUFBYjtBQUNBLFNBQUtrQixJQUFMLEdBQVkzQixZQUFaO0FBQ0EsU0FBSzRCLE1BQUwsR0FBY3RCLGNBQWQ7QUFDQSxTQUFLdUIsSUFBTCxHQUFZeEIsWUFBWjtBQUNBLFNBQUt5QixNQUFMLEdBQWN2QixjQUFkO0FBQ0EsU0FBS3dCLEtBQUwsR0FBYWhDLGFBQWI7QUFDQSxTQUFLaUMsS0FBTCxHQUFheEIsYUFBYjtBQUNBLFNBQUt5QixRQUFMLEdBQWdCdEIsaUJBQWhCO0FBQ0EsU0FBS3VCLFFBQUwsR0FBZ0J4QixpQkFBaEI7QUFDQSxTQUFLeUIsTUFBTCxHQUFjakMsY0FBZDtBQUNBLFNBQUtrQyxRQUFMLENBQWNvQixHQUFkLENBQWtCLENBQWxCLEVBQXFCLENBQXJCLEVBQXdCLENBQXhCO0FBQ0EsU0FBS25CLFFBQUwsQ0FBY21CLEdBQWQsQ0FBa0IsQ0FBbEIsRUFBcUIsQ0FBckIsRUFBd0IsQ0FBeEI7QUFDQSxTQUFLbEIsWUFBTCxDQUFrQmtCLEdBQWxCLENBQXNCLENBQXRCLEVBQXlCLENBQXpCLEVBQTRCLENBQTVCO0FBQ0EsU0FBS2pCLEdBQUwsQ0FBU0gsUUFBVCxDQUFrQm9CLEdBQWxCLENBQXNCLENBQXRCLEVBQXlCLENBQXpCLEVBQTRCLENBQTVCO0FBQ0EsU0FBS2pCLEdBQUwsQ0FBU0YsUUFBVCxDQUFrQm1CLEdBQWxCLENBQXNCLENBQXRCLEVBQXlCLENBQXpCLEVBQTRCLENBQTVCO0FBQ0EsU0FBS2pCLEdBQUwsQ0FBU0QsWUFBVCxDQUFzQmtCLEdBQXRCLENBQTBCLENBQTFCLEVBQTZCLENBQTdCLEVBQWdDLENBQWhDO0FBQ0EsU0FBS2IsS0FBTCxDQUFXQyxDQUFYLEdBQWUsQ0FBZjtBQUNBLFNBQUtELEtBQUwsQ0FBV0UsQ0FBWCxHQUFlLENBQWY7QUFDQSxTQUFLRixLQUFMLENBQVdHLENBQVgsR0FBZSxDQUFmO0FBRUEsU0FBS0MsUUFBTCxDQUFjVSxLQUFkO0FBQ0E3QyxJQUFBQSxJQUFJLENBQUM4QyxhQUFMLENBQW1CLEtBQUtoQixTQUF4QjtBQUNBLFNBQUtpQixtQkFBTDtBQUVBLFdBQU8sSUFBUDtBQUNEO0FBRUQ7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFDRUMsRUFBQUEsTUFBTSxDQUFDQyxJQUFELEVBQU9DLEtBQVAsRUFBYztBQUNsQixRQUFJLENBQUMsS0FBS3BDLEtBQVYsRUFBaUI7QUFDZixXQUFLSCxHQUFMLElBQVlzQyxJQUFaO0FBRUEsVUFBSUUsQ0FBQyxHQUFHLEtBQUt0QixVQUFMLENBQWdCdUIsTUFBeEI7O0FBRUEsYUFBT0QsQ0FBQyxFQUFSLEVBQVk7QUFDVixZQUFJRSxTQUFTLEdBQUcsS0FBS3hCLFVBQUwsQ0FBZ0JzQixDQUFoQixDQUFoQixDQURVLENBR1Y7O0FBQ0FFLFFBQUFBLFNBQVMsQ0FBQ0MsY0FBVixDQUF5QixJQUF6QixFQUErQkwsSUFBL0IsRUFBcUNDLEtBQXJDO0FBQ0Q7QUFDRjs7QUFFRCxRQUFJLEtBQUt2QyxHQUFMLElBQVksS0FBS0QsSUFBckIsRUFBMkI7QUFDekIsV0FBSzZDLE9BQUw7QUFDRCxLQUZELE1BRU87QUFDTCxZQUFNbkMsS0FBSyxHQUFHLEtBQUtHLE1BQUwsQ0FBWSxLQUFLWixHQUFMLEdBQVcsS0FBS0QsSUFBNUIsQ0FBZDtBQUVBLFdBQUtFLE1BQUwsR0FBYzJCLElBQUksQ0FBQ2lCLEdBQUwsQ0FBUyxJQUFJcEMsS0FBYixFQUFvQixDQUFwQixDQUFkO0FBQ0Q7QUFDRjtBQUVEO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQ0VxQyxFQUFBQSxZQUFZLENBQUNKLFNBQUQsRUFBWTtBQUN0QixTQUFLeEIsVUFBTCxDQUFnQjZCLElBQWhCLENBQXFCTCxTQUFyQjtBQUNBQSxJQUFBQSxTQUFTLENBQUNNLFVBQVYsQ0FBcUIsSUFBckI7QUFDRDtBQUVEO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQ0VDLEVBQUFBLGFBQWEsQ0FBQy9CLFVBQUQsRUFBYTtBQUN4QixRQUFJc0IsQ0FBQyxHQUFHdEIsVUFBVSxDQUFDdUIsTUFBbkI7O0FBRUEsV0FBT0QsQ0FBQyxFQUFSLEVBQVk7QUFDVixXQUFLTSxZQUFMLENBQWtCNUIsVUFBVSxDQUFDc0IsQ0FBRCxDQUE1QjtBQUNEO0FBQ0Y7QUFFRDtBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUNFVSxFQUFBQSxlQUFlLENBQUNSLFNBQUQsRUFBWTtBQUN6QixVQUFNSCxLQUFLLEdBQUcsS0FBS3JCLFVBQUwsQ0FBZ0JpQyxPQUFoQixDQUF3QlQsU0FBeEIsQ0FBZDs7QUFFQSxRQUFJSCxLQUFLLEdBQUcsQ0FBQyxDQUFiLEVBQWdCO0FBQ2QsV0FBS3JCLFVBQUwsQ0FBZ0JrQyxNQUFoQixDQUF1QmIsS0FBdkIsRUFBOEIsQ0FBOUI7QUFDRDtBQUNGO0FBRUQ7QUFDRjtBQUNBO0FBQ0E7QUFDQTs7O0FBQ0VILEVBQUFBLG1CQUFtQixHQUFHO0FBQ3BCL0MsSUFBQUEsSUFBSSxDQUFDZ0UsWUFBTCxDQUFrQixLQUFLbkMsVUFBdkI7QUFDRDtBQUVEO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7OztBQUNFMEIsRUFBQUEsT0FBTyxHQUFHO0FBQ1IsU0FBS1IsbUJBQUw7QUFDQSxTQUFLbkMsTUFBTCxHQUFjLENBQWQ7QUFDQSxTQUFLQyxJQUFMLEdBQVksSUFBWjtBQUNBLFNBQUtHLE1BQUwsR0FBYyxJQUFkO0FBQ0Q7O0FBeFQyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIERFRkFVTFRfQUdFLFxuICBERUZBVUxUX0FMUEhBLFxuICBERUZBVUxUX0JPRFksXG4gIERFRkFVTFRfREVBRCxcbiAgREVGQVVMVF9FQVNJTkcsXG4gIERFRkFVTFRfRU5FUkdZLFxuICBERUZBVUxUX0xJRkUsXG4gIERFRkFVTFRfTUFTUyxcbiAgREVGQVVMVF9QQVJFTlQsXG4gIERFRkFVTFRfUkFESVVTLFxuICBERUZBVUxUX1NDQUxFLFxuICBERUZBVUxUX1NMRUVQLFxuICBERUZBVUxUX1VTRV9BTFBIQSxcbiAgREVGQVVMVF9VU0VfQ09MT1IsXG59IGZyb20gJy4vY29uc3RhbnRzJztcbmltcG9ydCB7IFV0aWwsIHVpZCB9IGZyb20gJy4uL3V0aWxzJztcblxuaW1wb3J0IHsgUEkgfSBmcm9tICcuLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgVmVjdG9yM0QgfSBmcm9tICcuLi9tYXRoJztcbmltcG9ydCB7IENPUkVfVFlQRV9QQVJUSUNMRSBhcyB0eXBlIH0gZnJvbSAnLi90eXBlcyc7XG5cbi8qKlxuICogQSBQYXJ0aWNsZSBpcyBhbiBvYmplY3QgdGhhdCBpcyBlbWl0dGVkIGJ5IGFuIGVtaXR0ZXIuXG4gKlxuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBQYXJ0aWNsZSB7XG4gIC8qKlxuICAgKiBDb25zdHJ1Y3RzIGEgUGFydGljbGUgaW5zdGFuY2UuXG4gICAqXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBwcm9wZXJ0aWVzIC0gVGhlIHByb3BlcnRpZXMgdG8gaW5zdGFudGlhdGUgdGhlIHBhcnRpY2xlIHdpdGhcbiAgICogQHByb3BlcnR5IHtudW1iZXJ9IHByb3BlcnRpZXMubGlmZSAtIFRoZSBwYXJ0aWNsZSdzIGxpZmVcbiAgICogQHByb3BlcnR5IHtudW1iZXJ9IHByb3BlcnRpZXMuYWdlIC0gVGhlIHBhcnRpY2xlJ3MgYWdlXG4gICAqIEBwcm9wZXJ0eSB7bnVtYmVyfSBwcm9wZXJ0aWVzLmVuZXJneSAtIFRoZSBwYXJ0aWNsZSdzIGVuZXJneSBsb3NzXG4gICAqIEBwcm9wZXJ0eSB7Ym9vbGVhbn0gcHJvcGVydGllcy5kZWFkIC0gRGV0ZXJtaW5lcyBpZiB0aGUgcGFydGljbGUgaXMgZGVhZCBvciBub3RcbiAgICogQHByb3BlcnR5IHtib29sZWFufSBwcm9wZXJ0aWVzLnNsZWVwIC0gRGV0ZXJtaW5lcyBpZiB0aGUgcGFydGljbGUgaXMgc2xlZXBpbmcgb3Igbm90XG4gICAqIEBwcm9wZXJ0eSB7b2JqZWN0fSBwcm9wZXJ0aWVzLnRhcmdldCAtIFRoZSBwYXJ0aWNsZSdzIHRhcmdldFxuICAgKiBAcHJvcGVydHkge29iamVjdH0gcHJvcGVydGllcy5ib2R5IC0gVGhlIHBhcnRpY2xlJ3MgYm9keVxuICAgKiBAcHJvcGVydHkge251bWJlcn0gcHJvcGVydGllcy5tYXNzIC0gVGhlIHBhcnRpY2xlJ3MgbWFzc1xuICAgKiBAcHJvcGVydHkge251bWJlcn0gcHJvcGVydGllcy5yYWRpdXMgLSBUaGUgcGFydGljbGUncyByYWRpdXNcbiAgICogQHByb3BlcnR5IHtudW1iZXJ9IHByb3BlcnRpZXMuYWxwaGEgLSBUaGUgcGFydGljbGUncyBhbHBoYVxuICAgKiBAcHJvcGVydHkge251bWJlcn0gcHJvcGVydGllcy5zY2FsZSAtIFRoZSBwYXJ0aWNsZSdzIHNjYWxlXG4gICAqIEBwcm9wZXJ0eSB7bnVtYmVyfSBwcm9wZXJ0aWVzLnJvdGF0aW9uIC0gVGhlIHBhcnRpY2xlJ3Mgcm90YXRpb25cbiAgICogQHByb3BlcnR5IHtzdHJpbmd8bnVtYmVyfSBwcm9wZXJ0aWVzLmNvbG9yIC0gVGhlIHBhcnRpY2xlJ3MgY29sb3JcbiAgICogQHByb3BlcnR5IHtmdW5jdGlvbn0gcHJvcGVydGllcy5lYXNpbmcgLSBUaGUgcGFydGljbGUncyBlYXNpbmdcbiAgICogQHByb3BlcnR5IHtWZWN0b3IzRH0gcHJvcGVydGllcy5wb3NpdGlvbiAtIFRoZSBwYXJ0aWNsZSdzIHBvc2l0aW9uXG4gICAqIEBwcm9wZXJ0eSB7VmVjdG9yM0R9IHByb3BlcnRpZXMudmVsb2NpdHkgLSBUaGUgcGFydGljbGUncyB2ZWxvY2l0eVxuICAgKiBAcHJvcGVydHkge1ZlY3RvcjNEfSBwcm9wZXJ0aWVzLmFjY2VsZXJhdGlvbiAtIFRoZSBwYXJ0aWNsZSdzIGFjY2VsZXJhdGlvblxuICAgKiBAcHJvcGVydHkge2FycmF5fSBwcm9wZXJ0aWVzLmJlaGF2aW91cnMgLSBUaGUgcGFydGljbGUncyBiZWhhdmlvdXJzIGFycmF5XG4gICAqIEBwcm9wZXJ0eSB7b2JqZWN0fSBwcm9wZXJ0aWVzLnRyYW5zZm9ybSAtIFRoZSBwYXJ0aWNsZSdzIHRyYW5zZm9ybSBjb2xsZWN0aW9uXG4gICAqIEByZXR1cm4gdm9pZFxuICAgKi9cbiAgY29uc3RydWN0b3IocHJvcGVydGllcykge1xuICAgIC8qKlxuICAgICAqIEBkZXNjIFRoZSBwYXJ0aWNsZSdzIHVuaXF1ZSBpZFxuICAgICAqIEB0eXBlIHtudW1iZXJ9XG4gICAgICovXG4gICAgdGhpcy5pZCA9IGBwYXJ0aWNsZS0ke3VpZCgpfWA7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzYyBUaGUgY2xhc3MgdHlwZS5cbiAgICAgKiBAdHlwZSB7c3RyaW5nfVxuICAgICAqL1xuICAgIHRoaXMudHlwZSA9IHR5cGU7XG4gICAgLyoqXG4gICAgICogQGRlc2MgVGhlIHBhcnRpY2xlJ3MgbGlmZVxuICAgICAqIEB0eXBlIHtudW1iZXJ9XG4gICAgICovXG4gICAgdGhpcy5saWZlID0gREVGQVVMVF9MSUZFO1xuICAgIC8qKlxuICAgICAqIEBkZXNjIFRoZSBwYXJ0aWNsZSdzIGFnZVxuICAgICAqIEB0eXBlIHtudW1iZXJ9XG4gICAgICovXG4gICAgdGhpcy5hZ2UgPSBERUZBVUxUX0FHRTtcbiAgICAvKipcbiAgICAgKiBAZGVzYyBUaGUgcGFydGljbGUncyBlbmVyZ3kgbG9zc1xuICAgICAqIEB0eXBlIHtudW1iZXJ9XG4gICAgICovXG4gICAgdGhpcy5lbmVyZ3kgPSBERUZBVUxUX0VORVJHWTtcbiAgICAvKipcbiAgICAgKiBAZGVzYyBEZXRlcm1pbmVzIGlmIHRoZSBwYXJ0aWNsZSBpcyBkZWFkIG9yIG5vdFxuICAgICAqIEB0eXBlIHtudW1iZXJ9XG4gICAgICovXG4gICAgdGhpcy5kZWFkID0gREVGQVVMVF9ERUFEO1xuICAgIC8qKlxuICAgICAqIEBkZXNjIERldGVybWluZXMgaWYgdGhlIHBhcnRpY2xlIGlzIHNsZWVwaW5nIG9yIG5vdFxuICAgICAqIEB0eXBlIHtudW1iZXJ9XG4gICAgICovXG4gICAgdGhpcy5zbGVlcCA9IERFRkFVTFRfU0xFRVA7XG4gICAgLyoqXG4gICAgICogQGRlc2MgVGhlIHBhcnRpY2xlJ3MgYm9keVxuICAgICAqIEB0eXBlIHtvYmplY3R9XG4gICAgICovXG4gICAgdGhpcy5ib2R5ID0gREVGQVVMVF9CT0RZO1xuICAgIC8qKlxuICAgICAqIEBkZXNjIFRoZSBwYXJ0aWNsZSdzIHBhcmVudFxuICAgICAqIEB0eXBlIHs/RW1pdHRlcn1cbiAgICAgKi9cbiAgICB0aGlzLnBhcmVudCA9IERFRkFVTFRfUEFSRU5UO1xuICAgIC8qKlxuICAgICAqIEBkZXNjIFRoZSBwYXJ0aWNsZSdzIG1hc3NcbiAgICAgKiBAdHlwZSB7bnVtYmVyfVxuICAgICAqL1xuICAgIHRoaXMubWFzcyA9IERFRkFVTFRfTUFTUztcbiAgICAvKipcbiAgICAgKiBAZGVzYyBUaGUgcGFydGljbGUncyByYWRpdXNcbiAgICAgKiBAdHlwZSB7bnVtYmVyfVxuICAgICAqL1xuICAgIHRoaXMucmFkaXVzID0gREVGQVVMVF9SQURJVVM7XG4gICAgLyoqXG4gICAgICogQGRlc2MgVGhlIHBhcnRpY2xlJ3MgYWxwaGFcbiAgICAgKiBAdHlwZSB7bnVtYmVyfVxuICAgICAqL1xuICAgIHRoaXMuYWxwaGEgPSBERUZBVUxUX0FMUEhBO1xuICAgIC8qKlxuICAgICAqIEBkZXNjIFRoZSBwYXJ0aWNsZSdzIHNjYWxlXG4gICAgICogQHR5cGUge251bWJlcn1cbiAgICAgKi9cbiAgICB0aGlzLnNjYWxlID0gREVGQVVMVF9TQ0FMRTtcbiAgICAvKipcbiAgICAgKiBAZGVzYyBEZXRlcm1pbmVzIHdoZXRoZXIgdG8gdXNlIGNvbG9yIG9yIG5vdFxuICAgICAqIEB0eXBlIHtib29sZWFufVxuICAgICAqL1xuICAgIHRoaXMudXNlQ29sb3IgPSBERUZBVUxUX1VTRV9DT0xPUjtcbiAgICAvKipcbiAgICAgKiBAZGVzYyBEZXRlcm1pbmVzIHdoZXRoZXIgdG8gdXNlIGFscGhhIG9yIG5vdFxuICAgICAqIEB0eXBlIHtib29sZWFufVxuICAgICAqL1xuICAgIHRoaXMudXNlQWxwaGEgPSBERUZBVUxUX1VTRV9BTFBIQTtcbiAgICAvKipcbiAgICAgKiBAZGVzYyBUaGUgcGFydGljbGUncyBlYXNpbmdcbiAgICAgKiBAdHlwZSB7c3RyaW5nfVxuICAgICAqL1xuICAgIHRoaXMuZWFzaW5nID0gREVGQVVMVF9FQVNJTkc7XG4gICAgLyoqXG4gICAgICogQGRlc2MgVGhlIHBhcnRpY2xlJ3MgcG9zaXRpb25cbiAgICAgKiBAdHlwZSB7VmVjdG9yM0R9XG4gICAgICovXG4gICAgdGhpcy5wb3NpdGlvbiA9IG5ldyBWZWN0b3IzRCgpO1xuICAgIC8qKlxuICAgICAqIEBkZXNjIFRoZSBwYXJ0aWNsZSdzIHZlbG9jaXR5XG4gICAgICogQHR5cGUge1ZlY3RvcjNEfVxuICAgICAqL1xuICAgIHRoaXMudmVsb2NpdHkgPSBuZXcgVmVjdG9yM0QoKTtcbiAgICAvKipcbiAgICAgKiBAZGVzYyBUaGUgcGFydGljbGUncyBhY2NlbGVyYXRpb25cbiAgICAgKiBAdHlwZSB7VmVjdG9yM0R9XG4gICAgICovXG4gICAgdGhpcy5hY2NlbGVyYXRpb24gPSBuZXcgVmVjdG9yM0QoKTtcbiAgICAvKipcbiAgICAgKiBAZGVzYyBUaGUgcGFydGljbGUncyBsYXN0IHBvc2l0aW9uLCB2ZWxvY2l0eSBhbmQgYWNjZWxlcmF0aW9uXG4gICAgICogQHR5cGUge1ZlY3RvcjNEfVxuICAgICAqL1xuICAgIHRoaXMub2xkID0ge307XG4gICAgLyoqXG4gICAgICogQGRlc2MgVGhlIHBhcnRpY2xlJ3Mgb2xkIHBvc2l0aW9uXG4gICAgICogQHR5cGUge1ZlY3RvcjNEfVxuICAgICAqL1xuICAgIHRoaXMub2xkLnBvc2l0aW9uID0gdGhpcy5wb3NpdGlvbi5jbG9uZSgpO1xuICAgIC8qKlxuICAgICAqIEBkZXNjIFRoZSBwYXJ0aWNsZSdzIG9sZCB2ZWxvY2l0eVxuICAgICAqIEB0eXBlIHtWZWN0b3IzRH1cbiAgICAgKi9cbiAgICB0aGlzLm9sZC52ZWxvY2l0eSA9IHRoaXMudmVsb2NpdHkuY2xvbmUoKTtcbiAgICAvKipcbiAgICAgKiBAZGVzYyBUaGUgcGFydGljbGUncyBvbGQgYWNjZWxlcmF0aW9uXG4gICAgICogQHR5cGUge1ZlY3RvcjNEfVxuICAgICAqL1xuICAgIHRoaXMub2xkLmFjY2VsZXJhdGlvbiA9IHRoaXMuYWNjZWxlcmF0aW9uLmNsb25lKCk7XG4gICAgLyoqXG4gICAgICogQGRlc2MgVGhlIHBhcnRpY2xlJ3MgYmVoYXZpb3VycyBhcnJheVxuICAgICAqIEB0eXBlIHthcnJheX1cbiAgICAgKi9cbiAgICB0aGlzLmJlaGF2aW91cnMgPSBbXTtcbiAgICAvKipcbiAgICAgKiBAZGVzYyBUaGUgcGFydGljbGUncyB0cmFuc2Zvcm0gY29sbGVjdGlvblxuICAgICAqIEB0eXBlIHtvYmplY3R9XG4gICAgICovXG4gICAgdGhpcy50cmFuc2Zvcm0gPSB7fTtcbiAgICAvKipcbiAgICAgKiBAZGVzYyBUaGUgcGFydGljbGUncyBjb2xvciBzdG9yZVxuICAgICAqIEB0eXBlIHtvYmplY3R9XG4gICAgICovXG4gICAgdGhpcy5jb2xvciA9IHsgcjogMCwgZzogMCwgYjogMCB9O1xuICAgIC8qKlxuICAgICAqIEBkZXNjIFRoZSBwYXJ0aWNsZSdzIHJvdGF0aW9uXG4gICAgICogQHR5cGUge251bWJlcn1cbiAgICAgKi9cbiAgICB0aGlzLnJvdGF0aW9uID0gbmV3IFZlY3RvcjNEKCk7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzYyBUaGUgcGFydGljbGUncyBkaXN0YW5jZSB0byB0aGUgY2FtZXJhLCBvbmx5IHNldCBieSB0aGUgR1BVUmVuZGVyZXIgZm9yIGRlcHRoIHNvcnRpbmcgcHVycG9zZXMuXG4gICAgICogQHR5cGUge251bWJlcn1cbiAgICAgKi9cbiAgICB0aGlzLmRpc3RhbmNlVG9DYW1lcmEgPSAwO1xuXG4gICAgLy8gb3ZlcnJpZGUgY29uc3RydWN0b3IgcHJvcHMgd2l0aCBwYXNzZWQgcHJvcGVydGllcy5cbiAgICBVdGlsLnNldFByb3RvdHlwZUJ5T2JqKHRoaXMsIHByb3BlcnRpZXMpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIHBhcnRpY2xlJ3MgY3VycmVudCBkaXJlY3Rpb24uXG4gICAqXG4gICAqIEByZXR1cm4ge251bWJlcn1cbiAgICovXG4gIGdldERpcmVjdGlvbigpIHtcbiAgICByZXR1cm4gTWF0aC5hdGFuMih0aGlzLnZlbG9jaXR5LngsIC10aGlzLnZlbG9jaXR5LnkpICogKDE4MCAvIFBJKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXNldHMgdGhlIHBhcnRpY2xlJ3MgZGVmYXVsdCBwcm9wZXJ0aWVzIGFuZCBjbGVhcidzIGl0cyBwYXJ0aWNsZSdzIHBvc2l0aW9uLFxuICAgKiB2ZWxvY2l0eSwgYWNjZWxlcmF0aW9uLCBjb2xvciBhbmQgcm90YXRpb24uIEFsc28gZGVzdHJveSdzIHRoZSBwYXJ0aWNsZSdzXG4gICAqIHRyYW5zZm9ybSBjb2xsZWN0aW9uICYgcmVtb3ZlcyBhbGwgYmVoYXZpb3Vycy5cbiAgICpcbiAgICogQHJldHVybiB7UGFydGljbGV9XG4gICAqL1xuICByZXNldCgpIHtcbiAgICB0aGlzLmxpZmUgPSBERUZBVUxUX0xJRkU7XG4gICAgdGhpcy5hZ2UgPSBERUZBVUxUX0FHRTtcbiAgICB0aGlzLmVuZXJneSA9IERFRkFVTFRfRU5FUkdZO1xuICAgIHRoaXMuZGVhZCA9IERFRkFVTFRfREVBRDtcbiAgICB0aGlzLnNsZWVwID0gREVGQVVMVF9TTEVFUDtcbiAgICB0aGlzLmJvZHkgPSBERUZBVUxUX0JPRFk7XG4gICAgdGhpcy5wYXJlbnQgPSBERUZBVUxUX1BBUkVOVDtcbiAgICB0aGlzLm1hc3MgPSBERUZBVUxUX01BU1M7XG4gICAgdGhpcy5yYWRpdXMgPSBERUZBVUxUX1JBRElVUztcbiAgICB0aGlzLmFscGhhID0gREVGQVVMVF9BTFBIQTtcbiAgICB0aGlzLnNjYWxlID0gREVGQVVMVF9TQ0FMRTtcbiAgICB0aGlzLnVzZUNvbG9yID0gREVGQVVMVF9VU0VfQ09MT1I7XG4gICAgdGhpcy51c2VBbHBoYSA9IERFRkFVTFRfVVNFX0FMUEhBO1xuICAgIHRoaXMuZWFzaW5nID0gREVGQVVMVF9FQVNJTkc7XG4gICAgdGhpcy5wb3NpdGlvbi5zZXQoMCwgMCwgMCk7XG4gICAgdGhpcy52ZWxvY2l0eS5zZXQoMCwgMCwgMCk7XG4gICAgdGhpcy5hY2NlbGVyYXRpb24uc2V0KDAsIDAsIDApO1xuICAgIHRoaXMub2xkLnBvc2l0aW9uLnNldCgwLCAwLCAwKTtcbiAgICB0aGlzLm9sZC52ZWxvY2l0eS5zZXQoMCwgMCwgMCk7XG4gICAgdGhpcy5vbGQuYWNjZWxlcmF0aW9uLnNldCgwLCAwLCAwKTtcbiAgICB0aGlzLmNvbG9yLnIgPSAwO1xuICAgIHRoaXMuY29sb3IuZyA9IDA7XG4gICAgdGhpcy5jb2xvci5iID0gMDtcblxuICAgIHRoaXMucm90YXRpb24uY2xlYXIoKTtcbiAgICBVdGlsLmRlc3Ryb3lPYmplY3QodGhpcy50cmFuc2Zvcm0pO1xuICAgIHRoaXMucmVtb3ZlQWxsQmVoYXZpb3VycygpO1xuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlcyB0aGUgcGFydGljbGUncyBwcm9wZXJ0aWVzIGJ5IGFwcGx5aW5nIGVhY2ggYmVoYXZpb3VyIHRvIHRoZSBwYXJ0aWNsZS5cbiAgICogV2lsbCBhbHNvIHVwZGF0ZSB0aGUgcGFydGljbGUncyBlbmVyZ3ksIHVubGVzcyBpdCdzIGFnZSBpcyBncmVhdGVyIHRoYW4gaXQncyBsaWZlXG4gICAqIGluIHdoaWNoIGNhc2UgaXQgd2lsbCBiZSBkZXN0cm95ZWQuXG4gICAqXG4gICAqIEBwYXJhbSB7bnVtYmVyfSB0aW1lIC0gSW50ZWdyYXRpb24gdGltZVxuICAgKiBAcGFyYW0ge2ludGVnZXJ9IGluZGV4IC0gUGFydGljbGUgaW5kZXhcbiAgICogQHJldHVybiB2b2lkXG4gICAqL1xuICB1cGRhdGUodGltZSwgaW5kZXgpIHtcbiAgICBpZiAoIXRoaXMuc2xlZXApIHtcbiAgICAgIHRoaXMuYWdlICs9IHRpbWU7XG5cbiAgICAgIGxldCBpID0gdGhpcy5iZWhhdmlvdXJzLmxlbmd0aDtcblxuICAgICAgd2hpbGUgKGktLSkge1xuICAgICAgICBsZXQgYmVoYXZpb3VyID0gdGhpcy5iZWhhdmlvdXJzW2ldO1xuXG4gICAgICAgIC8vYmVoYXZpb3VyICYmIFxuICAgICAgICBiZWhhdmlvdXIuYXBwbHlCZWhhdmlvdXIodGhpcywgdGltZSwgaW5kZXgpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh0aGlzLmFnZSA+PSB0aGlzLmxpZmUpIHtcbiAgICAgIHRoaXMuZGVzdHJveSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBzY2FsZSA9IHRoaXMuZWFzaW5nKHRoaXMuYWdlIC8gdGhpcy5saWZlKTtcblxuICAgICAgdGhpcy5lbmVyZ3kgPSBNYXRoLm1heCgxIC0gc2NhbGUsIDApO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGEgYmVoYXZpb3VyIHRvIHRoZSBwYXJ0aWNsZS5cbiAgICpcbiAgICogQHBhcmFtIHtCZWhhdmlvdXJ9IGJlaGF2aW91ciAtIFRoZSBiZWhhdmlvdXIgdG8gYWRkIHRvIHRoZSBwYXJ0aWNsZVxuICAgKiBAcmV0dXJuIHZvaWRcbiAgICovXG4gIGFkZEJlaGF2aW91cihiZWhhdmlvdXIpIHtcbiAgICB0aGlzLmJlaGF2aW91cnMucHVzaChiZWhhdmlvdXIpO1xuICAgIGJlaGF2aW91ci5pbml0aWFsaXplKHRoaXMpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgbXVsdGlwbGUgYmVoYXZpb3VycyB0byB0aGUgcGFydGljbGUuXG4gICAqXG4gICAqIEBwYXJhbSB7YXJyYXk8QmVoYXZpb3VyPn0gYmVoYXZpb3VycyAtIEFuIGFycmF5IG9mIGJlaGF2aW91cnMgdG8gYWRkIHRvIHRoZSBwYXJ0aWNsZVxuICAgKiBAcmV0dXJuIHZvaWRcbiAgICovXG4gIGFkZEJlaGF2aW91cnMoYmVoYXZpb3Vycykge1xuICAgIGxldCBpID0gYmVoYXZpb3Vycy5sZW5ndGg7XG5cbiAgICB3aGlsZSAoaS0tKSB7XG4gICAgICB0aGlzLmFkZEJlaGF2aW91cihiZWhhdmlvdXJzW2ldKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlcyB0aGUgYmVoYXZpb3VyIGZyb20gdGhlIHBhcnRpY2xlLlxuICAgKlxuICAgKiBAcGFyYW0ge0JlaGF2aW91cn0gYmVoYXZpb3VyIC0gVGhlIGJlaGF2aW91ciB0byByZW1vdmUgZnJvbSB0aGUgcGFydGljbGVcbiAgICogQHJldHVybiB2b2lkXG4gICAqL1xuICByZW1vdmVCZWhhdmlvdXIoYmVoYXZpb3VyKSB7XG4gICAgY29uc3QgaW5kZXggPSB0aGlzLmJlaGF2aW91cnMuaW5kZXhPZihiZWhhdmlvdXIpO1xuXG4gICAgaWYgKGluZGV4ID4gLTEpIHtcbiAgICAgIHRoaXMuYmVoYXZpb3Vycy5zcGxpY2UoaW5kZXgsIDEpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZW1vdmVzIGFsbCBiZWhhdmlvdXJzIGZyb20gdGhlIHBhcnRpY2xlLlxuICAgKlxuICAgKiBAcmV0dXJuIHZvaWRcbiAgICovXG4gIHJlbW92ZUFsbEJlaGF2aW91cnMoKSB7XG4gICAgVXRpbC5kZXN0cm95QXJyYXkodGhpcy5iZWhhdmlvdXJzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZXN0cm95cyB0aGUgcGFydGljbGUuXG4gICAqXG4gICAqIEByZXR1cm4gdm9pZFxuICAgKi9cbiAgZGVzdHJveSgpIHtcbiAgICB0aGlzLnJlbW92ZUFsbEJlaGF2aW91cnMoKTtcbiAgICB0aGlzLmVuZXJneSA9IDA7XG4gICAgdGhpcy5kZWFkID0gdHJ1ZTtcbiAgICB0aGlzLnBhcmVudCA9IG51bGw7XG4gIH1cbn1cbiJdfQ== ================================================ FILE: packages/sdk/lib/core/libs/three-nebula/core/Pool.js ================================================ import PUID from '../utils/PUID'; import { CORE_TYPE_POOL as type } from './types'; /** * An object pool implementation. Used for pooling objects to avoid unnecessary * garbage collection. * */ export default class Pool { /** * Constructs a Pool instance. * * @return void */ constructor() { /** * @desc The class type. * @type {string} */ this.type = type; /** * @desc Incrementing id that keeps a count of the number of objects created * @type {integer} */ this.cID = 0; /** * @desc Map of pools in the format of PUID: pool * @type {object} */ this.list = {}; } /** * Attempts to create a new object either by creating a new instance or calling its * clone method. * * TODO COVERAGE - for the constructorArgs * @param {function|object} functionOrObject - The object to instantiate or clone * @return {object|undefined} */ create(functionOrObject, ...constructorArgs) { if (!this.canCreateNewObject(functionOrObject)) { throw new Error('The pool is unable to create or clone the object supplied'); } this.cID++; if (this.canInstantiateObject(functionOrObject)) { return new functionOrObject(...constructorArgs); } if (this.canCloneObject(functionOrObject)) { return functionOrObject.clone(); } } /** * Determines if the object is able to be instantiated or not. * * @param {object} object - The object to check * @return {boolean} */ canInstantiateObject(object) { return typeof object === 'function'; } /** * Determines if the object is able to be cloned or not. * * @param {object} object - The object to check * @return {boolean} */ canCloneObject(object) { return object.clone && typeof object.clone === 'function'; } /** * Determines if a new object is able to be created. * * @param {object} object - The object to check * @return {boolean} */ canCreateNewObject(object) { return this.canInstantiateObject(object) || this.canCloneObject(object) ? true : false; } /** * Gets a count of all objects in the pool. * * @return {integer} */ getCount() { var count = 0; for (var id in this.list) count += this.list[id].length; return count++; } /** * Gets an object either by creating a new one or retrieving it from the pool. * * @param {function|object} obj - The function or object to get * @param {array} args - The args to pass to the function on creation * @return {object} */ get(obj, ...args) { var p, puid = obj.__puid || PUID.id(obj); if (this.list[puid] && this.list[puid].length > 0) p = this.list[puid].pop();else p = this.create(obj, ...args); p.__puid = obj.__puid || puid; return p; } /** * Pushes an object into the pool. * * @param {object} obj - The object to expire * @return {integer} */ expire(obj) { return this._getList(obj.__puid).push(obj); } /** * Destroys all pools. * * @return void */ destroy() { for (var id in this.list) { this.list[id].length = 0; delete this.list[id]; } } /** * Gets the pool mapped to the UID. * * @param {string} uid - The pool uid * @return {array} */ _getList(uid) { uid = uid || 'default'; if (!this.list[uid]) this.list[uid] = []; return this.list[uid]; } } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb3JlL1Bvb2wuanMiXSwibmFtZXMiOlsiUFVJRCIsIkNPUkVfVFlQRV9QT09MIiwidHlwZSIsIlBvb2wiLCJjb25zdHJ1Y3RvciIsImNJRCIsImxpc3QiLCJjcmVhdGUiLCJmdW5jdGlvbk9yT2JqZWN0IiwiY29uc3RydWN0b3JBcmdzIiwiY2FuQ3JlYXRlTmV3T2JqZWN0IiwiRXJyb3IiLCJjYW5JbnN0YW50aWF0ZU9iamVjdCIsImNhbkNsb25lT2JqZWN0IiwiY2xvbmUiLCJvYmplY3QiLCJnZXRDb3VudCIsImNvdW50IiwiaWQiLCJsZW5ndGgiLCJnZXQiLCJvYmoiLCJhcmdzIiwicCIsInB1aWQiLCJfX3B1aWQiLCJwb3AiLCJleHBpcmUiLCJfZ2V0TGlzdCIsInB1c2giLCJkZXN0cm95IiwidWlkIl0sIm1hcHBpbmdzIjoiQUFBQSxPQUFPQSxJQUFQLE1BQWlCLGVBQWpCO0FBQ0EsU0FBU0MsY0FBYyxJQUFJQyxJQUEzQixRQUF1QyxTQUF2QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBQ0EsZUFBZSxNQUFNQyxJQUFOLENBQVc7QUFDeEI7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNFQyxFQUFBQSxXQUFXLEdBQUc7QUFDWjtBQUNKO0FBQ0E7QUFDQTtBQUNJLFNBQUtGLElBQUwsR0FBWUEsSUFBWjtBQUNBO0FBQ0o7QUFDQTtBQUNBOztBQUNJLFNBQUtHLEdBQUwsR0FBVyxDQUFYO0FBRUE7QUFDSjtBQUNBO0FBQ0E7O0FBQ0ksU0FBS0MsSUFBTCxHQUFZLEVBQVo7QUFDRDtBQUVEO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUNFQyxFQUFBQSxNQUFNLENBQUNDLGdCQUFELEVBQW1CLEdBQUdDLGVBQXRCLEVBQXVDO0FBQzNDLFFBQUksQ0FBQyxLQUFLQyxrQkFBTCxDQUF3QkYsZ0JBQXhCLENBQUwsRUFBZ0Q7QUFDOUMsWUFBTSxJQUFJRyxLQUFKLENBQ0osMkRBREksQ0FBTjtBQUdEOztBQUVELFNBQUtOLEdBQUw7O0FBRUEsUUFBSSxLQUFLTyxvQkFBTCxDQUEwQkosZ0JBQTFCLENBQUosRUFBaUQ7QUFDL0MsYUFBTyxJQUFJQSxnQkFBSixDQUFxQixHQUFHQyxlQUF4QixDQUFQO0FBQ0Q7O0FBRUQsUUFBSSxLQUFLSSxjQUFMLENBQW9CTCxnQkFBcEIsQ0FBSixFQUEyQztBQUN6QyxhQUFPQSxnQkFBZ0IsQ0FBQ00sS0FBakIsRUFBUDtBQUNEO0FBQ0Y7QUFFRDtBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUNFRixFQUFBQSxvQkFBb0IsQ0FBQ0csTUFBRCxFQUFTO0FBQzNCLFdBQU8sT0FBT0EsTUFBUCxLQUFrQixVQUF6QjtBQUNEO0FBRUQ7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFDRUYsRUFBQUEsY0FBYyxDQUFDRSxNQUFELEVBQVM7QUFDckIsV0FBT0EsTUFBTSxDQUFDRCxLQUFQLElBQWdCLE9BQU9DLE1BQU0sQ0FBQ0QsS0FBZCxLQUF3QixVQUEvQztBQUNEO0FBRUQ7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFDRUosRUFBQUEsa0JBQWtCLENBQUNLLE1BQUQsRUFBUztBQUN6QixXQUFPLEtBQUtILG9CQUFMLENBQTBCRyxNQUExQixLQUFxQyxLQUFLRixjQUFMLENBQW9CRSxNQUFwQixDQUFyQyxHQUNILElBREcsR0FFSCxLQUZKO0FBR0Q7QUFFRDtBQUNGO0FBQ0E7QUFDQTtBQUNBOzs7QUFDRUMsRUFBQUEsUUFBUSxHQUFHO0FBQ1QsUUFBSUMsS0FBSyxHQUFHLENBQVo7O0FBRUEsU0FBSyxJQUFJQyxFQUFULElBQWUsS0FBS1osSUFBcEIsRUFBMEJXLEtBQUssSUFBSSxLQUFLWCxJQUFMLENBQVVZLEVBQVYsRUFBY0MsTUFBdkI7O0FBRTFCLFdBQU9GLEtBQUssRUFBWjtBQUNEO0FBRUQ7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUNFRyxFQUFBQSxHQUFHLENBQUNDLEdBQUQsRUFBTSxHQUFHQyxJQUFULEVBQWU7QUFDaEIsUUFBSUMsQ0FBSjtBQUFBLFFBQ0VDLElBQUksR0FBR0gsR0FBRyxDQUFDSSxNQUFKLElBQWN6QixJQUFJLENBQUNrQixFQUFMLENBQVFHLEdBQVIsQ0FEdkI7QUFHQSxRQUFJLEtBQUtmLElBQUwsQ0FBVWtCLElBQVYsS0FBbUIsS0FBS2xCLElBQUwsQ0FBVWtCLElBQVYsRUFBZ0JMLE1BQWhCLEdBQXlCLENBQWhELEVBQ0VJLENBQUMsR0FBRyxLQUFLakIsSUFBTCxDQUFVa0IsSUFBVixFQUFnQkUsR0FBaEIsRUFBSixDQURGLEtBRUtILENBQUMsR0FBRyxLQUFLaEIsTUFBTCxDQUFZYyxHQUFaLEVBQWlCLEdBQUdDLElBQXBCLENBQUo7QUFFTEMsSUFBQUEsQ0FBQyxDQUFDRSxNQUFGLEdBQVdKLEdBQUcsQ0FBQ0ksTUFBSixJQUFjRCxJQUF6QjtBQUVBLFdBQU9ELENBQVA7QUFDRDtBQUVEO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQ0VJLEVBQUFBLE1BQU0sQ0FBQ04sR0FBRCxFQUFNO0FBQ1YsV0FBTyxLQUFLTyxRQUFMLENBQWNQLEdBQUcsQ0FBQ0ksTUFBbEIsRUFBMEJJLElBQTFCLENBQStCUixHQUEvQixDQUFQO0FBQ0Q7QUFFRDtBQUNGO0FBQ0E7QUFDQTtBQUNBOzs7QUFDRVMsRUFBQUEsT0FBTyxHQUFHO0FBQ1IsU0FBSyxJQUFJWixFQUFULElBQWUsS0FBS1osSUFBcEIsRUFBMEI7QUFDeEIsV0FBS0EsSUFBTCxDQUFVWSxFQUFWLEVBQWNDLE1BQWQsR0FBdUIsQ0FBdkI7QUFDQSxhQUFPLEtBQUtiLElBQUwsQ0FBVVksRUFBVixDQUFQO0FBQ0Q7QUFDRjtBQUVEO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQ0VVLEVBQUFBLFFBQVEsQ0FBQ0csR0FBRCxFQUFNO0FBQ1pBLElBQUFBLEdBQUcsR0FBR0EsR0FBRyxJQUFJLFNBQWI7QUFDQSxRQUFJLENBQUMsS0FBS3pCLElBQUwsQ0FBVXlCLEdBQVYsQ0FBTCxFQUFxQixLQUFLekIsSUFBTCxDQUFVeUIsR0FBVixJQUFpQixFQUFqQjtBQUVyQixXQUFPLEtBQUt6QixJQUFMLENBQVV5QixHQUFWLENBQVA7QUFDRDs7QUFySnVCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFBVSUQgZnJvbSAnLi4vdXRpbHMvUFVJRCc7XG5pbXBvcnQgeyBDT1JFX1RZUEVfUE9PTCBhcyB0eXBlIH0gZnJvbSAnLi90eXBlcyc7XG4vKipcbiAqIEFuIG9iamVjdCBwb29sIGltcGxlbWVudGF0aW9uLiBVc2VkIGZvciBwb29saW5nIG9iamVjdHMgdG8gYXZvaWQgdW5uZWNlc3NhcnlcbiAqIGdhcmJhZ2UgY29sbGVjdGlvbi5cbiAqXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFBvb2wge1xuICAvKipcbiAgICogQ29uc3RydWN0cyBhIFBvb2wgaW5zdGFuY2UuXG4gICAqXG4gICAqIEByZXR1cm4gdm9pZFxuICAgKi9cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgLyoqXG4gICAgICogQGRlc2MgVGhlIGNsYXNzIHR5cGUuXG4gICAgICogQHR5cGUge3N0cmluZ31cbiAgICAgKi9cbiAgICB0aGlzLnR5cGUgPSB0eXBlO1xuICAgIC8qKlxuICAgICAqIEBkZXNjIEluY3JlbWVudGluZyBpZCB0aGF0IGtlZXBzIGEgY291bnQgb2YgdGhlIG51bWJlciBvZiBvYmplY3RzIGNyZWF0ZWRcbiAgICAgKiBAdHlwZSB7aW50ZWdlcn1cbiAgICAgKi9cbiAgICB0aGlzLmNJRCA9IDA7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzYyBNYXAgb2YgcG9vbHMgaW4gdGhlIGZvcm1hdCBvZiBQVUlEPFN0cmluZz46IHBvb2w8QXJyYXk+XG4gICAgICogQHR5cGUge29iamVjdH1cbiAgICAgKi9cbiAgICB0aGlzLmxpc3QgPSB7fTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBdHRlbXB0cyB0byBjcmVhdGUgYSBuZXcgb2JqZWN0IGVpdGhlciBieSBjcmVhdGluZyBhIG5ldyBpbnN0YW5jZSBvciBjYWxsaW5nIGl0c1xuICAgKiBjbG9uZSBtZXRob2QuXG4gICAqXG4gICAqIFRPRE8gQ09WRVJBR0UgLSBmb3IgdGhlIGNvbnN0cnVjdG9yQXJnc1xuICAgKiBAcGFyYW0ge2Z1bmN0aW9ufG9iamVjdH0gZnVuY3Rpb25Pck9iamVjdCAtIFRoZSBvYmplY3QgdG8gaW5zdGFudGlhdGUgb3IgY2xvbmVcbiAgICogQHJldHVybiB7b2JqZWN0fHVuZGVmaW5lZH1cbiAgICovXG4gIGNyZWF0ZShmdW5jdGlvbk9yT2JqZWN0LCAuLi5jb25zdHJ1Y3RvckFyZ3MpIHtcbiAgICBpZiAoIXRoaXMuY2FuQ3JlYXRlTmV3T2JqZWN0KGZ1bmN0aW9uT3JPYmplY3QpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICdUaGUgcG9vbCBpcyB1bmFibGUgdG8gY3JlYXRlIG9yIGNsb25lIHRoZSBvYmplY3Qgc3VwcGxpZWQnXG4gICAgICApO1xuICAgIH1cblxuICAgIHRoaXMuY0lEKys7XG5cbiAgICBpZiAodGhpcy5jYW5JbnN0YW50aWF0ZU9iamVjdChmdW5jdGlvbk9yT2JqZWN0KSkge1xuICAgICAgcmV0dXJuIG5ldyBmdW5jdGlvbk9yT2JqZWN0KC4uLmNvbnN0cnVjdG9yQXJncyk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuY2FuQ2xvbmVPYmplY3QoZnVuY3Rpb25Pck9iamVjdCkpIHtcbiAgICAgIHJldHVybiBmdW5jdGlvbk9yT2JqZWN0LmNsb25lKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIERldGVybWluZXMgaWYgdGhlIG9iamVjdCBpcyBhYmxlIHRvIGJlIGluc3RhbnRpYXRlZCBvciBub3QuXG4gICAqXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBvYmplY3QgLSBUaGUgb2JqZWN0IHRvIGNoZWNrXG4gICAqIEByZXR1cm4ge2Jvb2xlYW59XG4gICAqL1xuICBjYW5JbnN0YW50aWF0ZU9iamVjdChvYmplY3QpIHtcbiAgICByZXR1cm4gdHlwZW9mIG9iamVjdCA9PT0gJ2Z1bmN0aW9uJztcbiAgfVxuXG4gIC8qKlxuICAgKiBEZXRlcm1pbmVzIGlmIHRoZSBvYmplY3QgaXMgYWJsZSB0byBiZSBjbG9uZWQgb3Igbm90LlxuICAgKlxuICAgKiBAcGFyYW0ge29iamVjdH0gb2JqZWN0IC0gVGhlIG9iamVjdCB0byBjaGVja1xuICAgKiBAcmV0dXJuIHtib29sZWFufVxuICAgKi9cbiAgY2FuQ2xvbmVPYmplY3Qob2JqZWN0KSB7XG4gICAgcmV0dXJuIG9iamVjdC5jbG9uZSAmJiB0eXBlb2Ygb2JqZWN0LmNsb25lID09PSAnZnVuY3Rpb24nO1xuICB9XG5cbiAgLyoqXG4gICAqIERldGVybWluZXMgaWYgYSBuZXcgb2JqZWN0IGlzIGFibGUgdG8gYmUgY3JlYXRlZC5cbiAgICpcbiAgICogQHBhcmFtIHtvYmplY3R9IG9iamVjdCAtIFRoZSBvYmplY3QgdG8gY2hlY2tcbiAgICogQHJldHVybiB7Ym9vbGVhbn1cbiAgICovXG4gIGNhbkNyZWF0ZU5ld09iamVjdChvYmplY3QpIHtcbiAgICByZXR1cm4gdGhpcy5jYW5JbnN0YW50aWF0ZU9iamVjdChvYmplY3QpIHx8IHRoaXMuY2FuQ2xvbmVPYmplY3Qob2JqZWN0KVxuICAgICAgPyB0cnVlXG4gICAgICA6IGZhbHNlO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgYSBjb3VudCBvZiBhbGwgb2JqZWN0cyBpbiB0aGUgcG9vbC5cbiAgICpcbiAgICogQHJldHVybiB7aW50ZWdlcn1cbiAgICovXG4gIGdldENvdW50KCkge1xuICAgIHZhciBjb3VudCA9IDA7XG5cbiAgICBmb3IgKHZhciBpZCBpbiB0aGlzLmxpc3QpIGNvdW50ICs9IHRoaXMubGlzdFtpZF0ubGVuZ3RoO1xuXG4gICAgcmV0dXJuIGNvdW50Kys7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyBhbiBvYmplY3QgZWl0aGVyIGJ5IGNyZWF0aW5nIGEgbmV3IG9uZSBvciByZXRyaWV2aW5nIGl0IGZyb20gdGhlIHBvb2wuXG4gICAqXG4gICAqIEBwYXJhbSB7ZnVuY3Rpb258b2JqZWN0fSBvYmogLSBUaGUgZnVuY3Rpb24gb3Igb2JqZWN0IHRvIGdldFxuICAgKiBAcGFyYW0ge2FycmF5fSBhcmdzIC0gVGhlIGFyZ3MgdG8gcGFzcyB0byB0aGUgZnVuY3Rpb24gb24gY3JlYXRpb25cbiAgICogQHJldHVybiB7b2JqZWN0fVxuICAgKi9cbiAgZ2V0KG9iaiwgLi4uYXJncykge1xuICAgIHZhciBwLFxuICAgICAgcHVpZCA9IG9iai5fX3B1aWQgfHwgUFVJRC5pZChvYmopO1xuXG4gICAgaWYgKHRoaXMubGlzdFtwdWlkXSAmJiB0aGlzLmxpc3RbcHVpZF0ubGVuZ3RoID4gMClcbiAgICAgIHAgPSB0aGlzLmxpc3RbcHVpZF0ucG9wKCk7XG4gICAgZWxzZSBwID0gdGhpcy5jcmVhdGUob2JqLCAuLi5hcmdzKTtcblxuICAgIHAuX19wdWlkID0gb2JqLl9fcHVpZCB8fCBwdWlkO1xuXG4gICAgcmV0dXJuIHA7XG4gIH1cblxuICAvKipcbiAgICogUHVzaGVzIGFuIG9iamVjdCBpbnRvIHRoZSBwb29sLlxuICAgKlxuICAgKiBAcGFyYW0ge29iamVjdH0gb2JqIC0gVGhlIG9iamVjdCB0byBleHBpcmVcbiAgICogQHJldHVybiB7aW50ZWdlcn1cbiAgICovXG4gIGV4cGlyZShvYmopIHtcbiAgICByZXR1cm4gdGhpcy5fZ2V0TGlzdChvYmouX19wdWlkKS5wdXNoKG9iaik7XG4gIH1cblxuICAvKipcbiAgICogRGVzdHJveXMgYWxsIHBvb2xzLlxuICAgKlxuICAgKiBAcmV0dXJuIHZvaWRcbiAgICovXG4gIGRlc3Ryb3koKSB7XG4gICAgZm9yICh2YXIgaWQgaW4gdGhpcy5saXN0KSB7XG4gICAgICB0aGlzLmxpc3RbaWRdLmxlbmd0aCA9IDA7XG4gICAgICBkZWxldGUgdGhpcy5saXN0W2lkXTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgcG9vbCBtYXBwZWQgdG8gdGhlIFVJRC5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IHVpZCAtIFRoZSBwb29sIHVpZFxuICAgKiBAcmV0dXJuIHthcnJheX1cbiAgICovXG4gIF9nZXRMaXN0KHVpZCkge1xuICAgIHVpZCA9IHVpZCB8fCAnZGVmYXVsdCc7XG4gICAgaWYgKCF0aGlzLmxpc3RbdWlkXSkgdGhpcy5saXN0W3VpZF0gPSBbXTtcblxuICAgIHJldHVybiB0aGlzLmxpc3RbdWlkXTtcbiAgfVxufVxuIl19 ================================================ FILE: packages/sdk/lib/core/libs/three-nebula/core/System.js ================================================ import EventDispatcher, { EMITTER_ADDED, EMITTER_REMOVED, SYSTEM_UPDATE, SYSTEM_UPDATE_AFTER } from '../events'; import { DEFAULT_SYSTEM_DELTA } from './constants'; import Emitter from '../emitter/Emitter'; import { INTEGRATION_TYPE_EULER } from '../math/constants'; import { POOL_MAX } from '../constants'; import Pool from './Pool'; import fromJSON from './fromJSON'; import fromJSONAsync from './fromJSONAsync'; import { CORE_TYPE_SYSTEM as type } from './types'; /** * The core of the three-system particle engine. * A System instance can contain multiple emitters, each with their own initializers * and behaviours. * */ export default class System { /** * Constructs a System instance. * * @param {object} THREE - ThreeJs * @param {number} [preParticles=POOL_MAX] - The number of particles to start with * @param {string} [integrationType=INTEGRATION_TYPE_EULER] - The integration type to use * @return void */ constructor(preParticles = POOL_MAX, integrationType = INTEGRATION_TYPE_EULER) { /** * @desc The class type. * @type {string} */ this.type = type; /** * @desc The system name. * @type {string} */ this.name = ''; /** * @desc Determines if the system can update or not. Set to false when destroying * to ensure that external calls to update do not throw errors. * @type {boolean} */ this.canUpdate = true; /** * @desc The number of particles to start with. * @type {number} */ this.preParticles = preParticles; /** * @desc The integration algorithm type to use. * @param {string} */ this.integrationType = integrationType; /** * @desc The emitters in the particle system. * @type {array} */ this.emitters = []; /** * @desc The renderers for the system. * @type {array} */ this.renderers = []; /** * @desc A pool used to manage the internal system cache of objects * @type {Pool} */ this.pool = new Pool(); /** * @desc Internal event dispatcher * @type {EventDispatcher} */ this.eventDispatcher = new EventDispatcher(); } /** * Creates a System instance from a JSON object. * * @param {object} json - The JSON to create the System instance from * @param {object} THREE - The Web GL Api to use eg., THREE * @return {System} * * @deprecated use fromJSONAsync instead */ static fromJSON(json, THREE) { return fromJSON(json, THREE, System, Emitter); } /** * Loads a System instance from JSON asynchronously. Ensures all textures are * fully loaded before resolving with the instantiated System instance. * * @param {object} json - The JSON to create the System instance from * @param {object} THREE - The Web GL Api to use eg., THREE * @param {?object} options - Optional config options * @return {Promise} */ static fromJSONAsync(json, THREE, options) { return fromJSONAsync(json, THREE, System, Emitter, options); } /** * Proxy method for the internal event dispatcher's dispatchEvent method. * * @param {string} event - The event to dispatch * @param {object} [target=this] - The event target */ dispatch(event, target = this) { this.eventDispatcher.dispatchEvent(event, target); } /** * Adds a renderer to the System instance and initializes it. * * @param {Renderer} renderer - The renderer to add * @return {System} */ addRenderer(renderer) { this.renderers.push(renderer); renderer.init(this); return this; } /** * Removes a renderer from the System instance. * * @param {Renderer} renderer * @return {System} */ removeRenderer(renderer) { this.renderers.splice(this.renderers.indexOf(renderer), 1); renderer.remove(this); return this; } /** * Adds an emitter to the System instance. * Dispatches the EMITTER_ADDED event. * * @param {Emitter} emitter - The emitter to add * @return {System} */ addEmitter(emitter) { const index = this.emitters.length; emitter.parent = this; emitter.index = index; this.emitters.push(emitter); this.dispatch(EMITTER_ADDED, emitter); return this; } /** * Removes an emitter from the System instance. * Dispatches the EMITTER_REMOVED event. * * @param {Emitter} emitter - The emitter to remove * @return {System} */ removeEmitter(emitter) { if (emitter.parent !== this) { return this; } emitter.parent = null; emitter.index = undefined; this.emitters.splice(this.emitters.indexOf(emitter), 1); this.dispatch(EMITTER_REMOVED, emitter); return this; } /** * Wires up life cycle methods and causes a system's emitters to emit particles. * Expects emitters to have their totalEmitTimes and life set already. * Inifnite systems will resolve immediately. * * @param {object} hooks - Functions to hook into the life cycle API * @param {function} hooks.onStart - Called when the system starts to emit particles * @param {function} hooks.onUpdate - Called each time the system updates * @param {function} hooks.onEnd - Called when the system's emitters have all died * @return {Promise} */ emit({ onStart, onUpdate, onEnd }) { if (onStart) { onStart(); } if (onUpdate) { this.eventDispatcher.addEventListener(SYSTEM_UPDATE, onUpdate); } const emitters = this.emitters.map(emitter => { const { life } = emitter; if (life === Infinity) { if (onEnd) { onEnd(); } emitter.experimental_emit(); return Promise.resolve(); } return new Promise(resolve => { emitter.addOnEmitterDeadEventListener(() => { if (onEnd) { onEnd(); } resolve(); }); emitter.experimental_emit(); }); }); try { return Promise.all(emitters); } catch (e) { console.warn(e); } } /** * Updates the particle system based on the delta passed. * * @example * animate = () => { * threeRenderer.render(threeScene, threeCamera); * system.update(); * requestAnimationFrame(animate); * } * animate(); * * @param {number} delta - Delta time * @return {Promise} */ update(delta = DEFAULT_SYSTEM_DELTA) { const d = delta || DEFAULT_SYSTEM_DELTA; if (this.canUpdate) { if (d > 0) { let i = this.emitters.length; while (i--) { const emitter = this.emitters[i]; emitter.update(d); emitter.particles.length && this.dispatch(SYSTEM_UPDATE); } } this.dispatch(SYSTEM_UPDATE_AFTER); } return Promise.resolve(); } /** * Gets a count of the total number of particles in the system. * * @return {integer} */ getCount() { const length = this.emitters.length; let total = 0; let i; for (i = 0; i < length; i++) { total += this.emitters[i].particles.length; } return total; } /** * Destroys all emitters, renderers and the Nebula pool. * Ensures that this.update will not perform any operations while the system * is being destroyed. * * @return void */ destroy() { const length = this.emitters.length; this.canUpdate = false; for (let e = 0; e < length; e++) { this.emitters[e] && this.emitters[e].destroy(); delete this.emitters[e]; } for (let r = 0; r < length; r++) { if (this.renderers[r] && this.renderers[r].destroy) { this.renderers[r].destroy(); delete this.renderers[r]; } } this.emitters.length = 0; this.pool.destroy(); this.canUpdate = true; } } ================================================ FILE: packages/sdk/lib/core/libs/three-nebula/core/constants.js ================================================ import { BEHAVIOUR_TYPE_ALPHA, BEHAVIOUR_TYPE_ATTRACTION, BEHAVIOUR_TYPE_COLOR, BEHAVIOUR_TYPE_CROSS_ZONE, BEHAVIOUR_TYPE_FORCE, BEHAVIOUR_TYPE_GRAVITY, BEHAVIOUR_TYPE_RANDOM_DRIFT, BEHAVIOUR_TYPE_REPULSION, BEHAVIOUR_TYPE_ROTATE, BEHAVIOUR_TYPE_SCALE, BEHAVIOUR_TYPE_SPRING } from '../behaviour/types'; import { INITIALIZER_TYPE_BODY, INITIALIZER_TYPE_BODY_SPRITE, INITIALIZER_TYPE_LIFE, INITIALIZER_TYPE_MASS, INITIALIZER_TYPE_POLAR_VELOCITY, INITIALIZER_TYPE_POSITION, INITIALIZER_TYPE_ROTATION, INITIALIZER_TYPE_RADIAL_VELOCITY, INITIALIZER_TYPE_RADIUS, INITIALIZER_TYPE_TEXTURE, INITIALIZER_TYPE_VECTOR_VELOCITY } from '../initializer/types'; import { ZONE_TYPE_BOX, ZONE_TYPE_LINE, ZONE_TYPE_MESH, ZONE_TYPE_POINT, ZONE_TYPE_SPHERE } from '../zone/types'; import { RENDERER_TYPE_SPRITE } from '../renderer/types'; import { easeLinear } from '../ease'; /** * @desc Default particle life * @type {number} */ export const DEFAULT_LIFE = Infinity; /** * @desc Default particle age * @type {number} */ export const DEFAULT_AGE = 0; /** * @desc Default particle energy * @type {number} */ export const DEFAULT_ENERGY = 1; /** * @desc Default particle dead * @type {boolean} */ export const DEFAULT_DEAD = false; /** * @desc Default particle sleep * @type {boolean} */ export const DEFAULT_SLEEP = false; /** * @desc Default particle index * @type {number} */ export const DEFAULT_INDEX = 0; /** * @desc Default particle body * @type {?object} */ export const DEFAULT_BODY = null; /** * @desc Default particle parent * @type {?Emitter} */ export const DEFAULT_PARENT = null; /** * @desc Default particle mass * @type {number} */ export const DEFAULT_MASS = 1; /** * @desc Default particle radius * @type {number} */ export const DEFAULT_RADIUS = 10; /** * @desc Default particle alpha * @type {number} */ export const DEFAULT_ALPHA = 1; /** * @desc Default particle scale * @type {number} */ export const DEFAULT_SCALE = 1; /** * @desc Default particle useColor * @type {boolean} */ export const DEFAULT_USE_COLOR = false; /** * @desc Default particle useAlpha * @type {boolean} */ export const DEFAULT_USE_ALPHA = false; /** * @desc Default particle easing * @type {function} */ export const DEFAULT_EASING = easeLinear; /** * @desc The default delta provided to the System instance * @type {number} */ export const DEFAULT_SYSTEM_DELTA = 0.0167; /** * @desc The types of initializers supported by the System.fromJSON method. * @type {array} */ export const SUPPORTED_JSON_INITIALIZER_TYPES = [INITIALIZER_TYPE_POSITION, INITIALIZER_TYPE_ROTATION, INITIALIZER_TYPE_LIFE, INITIALIZER_TYPE_RADIUS, INITIALIZER_TYPE_MASS, INITIALIZER_TYPE_BODY, INITIALIZER_TYPE_BODY_SPRITE, INITIALIZER_TYPE_TEXTURE, INITIALIZER_TYPE_POLAR_VELOCITY, INITIALIZER_TYPE_RADIAL_VELOCITY, INITIALIZER_TYPE_VECTOR_VELOCITY]; /** * @desc The types of behaviours supported by the System.fromJSON method. * @type {array} */ export const SUPPORTED_JSON_BEHAVIOUR_TYPES = [BEHAVIOUR_TYPE_ALPHA, BEHAVIOUR_TYPE_ATTRACTION, BEHAVIOUR_TYPE_COLOR, BEHAVIOUR_TYPE_CROSS_ZONE, BEHAVIOUR_TYPE_FORCE, BEHAVIOUR_TYPE_GRAVITY, BEHAVIOUR_TYPE_RANDOM_DRIFT, BEHAVIOUR_TYPE_REPULSION, BEHAVIOUR_TYPE_ROTATE, BEHAVIOUR_TYPE_SCALE, BEHAVIOUR_TYPE_SPRING]; /** * @desc The types of renderers supported by the System.fromJSON method. * @type {array} */ export const SUPPORTED_JSON_RENDERER_TYPES = [RENDERER_TYPE_SPRITE]; /** * @desc The types of zones supported by the System.fromJSON method. * @type {array} */ export const SUPPORTED_JSON_ZONE_TYPES = [ZONE_TYPE_BOX, ZONE_TYPE_LINE, ZONE_TYPE_MESH, ZONE_TYPE_POINT, ZONE_TYPE_SPHERE]; export { INITIALIZER_TYPES_THAT_REQUIRE_THREE } from '../initializer/types'; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb3JlL2NvbnN0YW50cy5qcyJdLCJuYW1lcyI6WyJCRUhBVklPVVJfVFlQRV9BTFBIQSIsIkJFSEFWSU9VUl9UWVBFX0FUVFJBQ1RJT04iLCJCRUhBVklPVVJfVFlQRV9DT0xPUiIsIkJFSEFWSU9VUl9UWVBFX0NST1NTX1pPTkUiLCJCRUhBVklPVVJfVFlQRV9GT1JDRSIsIkJFSEFWSU9VUl9UWVBFX0dSQVZJVFkiLCJCRUhBVklPVVJfVFlQRV9SQU5ET01fRFJJRlQiLCJCRUhBVklPVVJfVFlQRV9SRVBVTFNJT04iLCJCRUhBVklPVVJfVFlQRV9ST1RBVEUiLCJCRUhBVklPVVJfVFlQRV9TQ0FMRSIsIkJFSEFWSU9VUl9UWVBFX1NQUklORyIsIklOSVRJQUxJWkVSX1RZUEVfQk9EWSIsIklOSVRJQUxJWkVSX1RZUEVfQk9EWV9TUFJJVEUiLCJJTklUSUFMSVpFUl9UWVBFX0xJRkUiLCJJTklUSUFMSVpFUl9UWVBFX01BU1MiLCJJTklUSUFMSVpFUl9UWVBFX1BPTEFSX1ZFTE9DSVRZIiwiSU5JVElBTElaRVJfVFlQRV9QT1NJVElPTiIsIklOSVRJQUxJWkVSX1RZUEVfUk9UQVRJT04iLCJJTklUSUFMSVpFUl9UWVBFX1JBRElBTF9WRUxPQ0lUWSIsIklOSVRJQUxJWkVSX1RZUEVfUkFESVVTIiwiSU5JVElBTElaRVJfVFlQRV9URVhUVVJFIiwiSU5JVElBTElaRVJfVFlQRV9WRUNUT1JfVkVMT0NJVFkiLCJaT05FX1RZUEVfQk9YIiwiWk9ORV9UWVBFX0xJTkUiLCJaT05FX1RZUEVfTUVTSCIsIlpPTkVfVFlQRV9QT0lOVCIsIlpPTkVfVFlQRV9TUEhFUkUiLCJSRU5ERVJFUl9UWVBFX1NQUklURSIsImVhc2VMaW5lYXIiLCJERUZBVUxUX0xJRkUiLCJJbmZpbml0eSIsIkRFRkFVTFRfQUdFIiwiREVGQVVMVF9FTkVSR1kiLCJERUZBVUxUX0RFQUQiLCJERUZBVUxUX1NMRUVQIiwiREVGQVVMVF9JTkRFWCIsIkRFRkFVTFRfQk9EWSIsIkRFRkFVTFRfUEFSRU5UIiwiREVGQVVMVF9NQVNTIiwiREVGQVVMVF9SQURJVVMiLCJERUZBVUxUX0FMUEhBIiwiREVGQVVMVF9TQ0FMRSIsIkRFRkFVTFRfVVNFX0NPTE9SIiwiREVGQVVMVF9VU0VfQUxQSEEiLCJERUZBVUxUX0VBU0lORyIsIkRFRkFVTFRfU1lTVEVNX0RFTFRBIiwiU1VQUE9SVEVEX0pTT05fSU5JVElBTElaRVJfVFlQRVMiLCJTVVBQT1JURURfSlNPTl9CRUhBVklPVVJfVFlQRVMiLCJTVVBQT1JURURfSlNPTl9SRU5ERVJFUl9UWVBFUyIsIlNVUFBPUlRFRF9KU09OX1pPTkVfVFlQRVMiLCJJTklUSUFMSVpFUl9UWVBFU19USEFUX1JFUVVJUkVfVEhSRUUiXSwibWFwcGluZ3MiOiJBQUFBLFNBQ0VBLG9CQURGLEVBRUVDLHlCQUZGLEVBR0VDLG9CQUhGLEVBSUVDLHlCQUpGLEVBS0VDLG9CQUxGLEVBTUVDLHNCQU5GLEVBT0VDLDJCQVBGLEVBUUVDLHdCQVJGLEVBU0VDLHFCQVRGLEVBVUVDLG9CQVZGLEVBV0VDLHFCQVhGLFFBWU8sb0JBWlA7QUFhQSxTQUNFQyxxQkFERixFQUVFQyw0QkFGRixFQUdFQyxxQkFIRixFQUlFQyxxQkFKRixFQUtFQywrQkFMRixFQU1FQyx5QkFORixFQU9FQyx5QkFQRixFQVFFQyxnQ0FSRixFQVNFQyx1QkFURixFQVVFQyx3QkFWRixFQVdFQyxnQ0FYRixRQVlPLHNCQVpQO0FBYUEsU0FDRUMsYUFERixFQUVFQyxjQUZGLEVBR0VDLGNBSEYsRUFJRUMsZUFKRixFQUtFQyxnQkFMRixRQU1PLGVBTlA7QUFRQSxTQUFTQyxvQkFBVCxRQUFxQyxtQkFBckM7QUFDQSxTQUFTQyxVQUFULFFBQTJCLFNBQTNCO0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBQ0EsT0FBTyxNQUFNQyxZQUFZLEdBQUdDLFFBQXJCO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7O0FBQ0EsT0FBTyxNQUFNQyxXQUFXLEdBQUcsQ0FBcEI7QUFDUDtBQUNBO0FBQ0E7QUFDQTs7QUFDQSxPQUFPLE1BQU1DLGNBQWMsR0FBRyxDQUF2QjtBQUNQO0FBQ0E7QUFDQTtBQUNBOztBQUNBLE9BQU8sTUFBTUMsWUFBWSxHQUFHLEtBQXJCO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7O0FBQ0EsT0FBTyxNQUFNQyxhQUFhLEdBQUcsS0FBdEI7QUFFUDtBQUNBO0FBQ0E7QUFDQTs7QUFDQSxPQUFPLE1BQU1DLGFBQWEsR0FBRyxDQUF0QjtBQUNQO0FBQ0E7QUFDQTtBQUNBOztBQUNBLE9BQU8sTUFBTUMsWUFBWSxHQUFHLElBQXJCO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7O0FBQ0EsT0FBTyxNQUFNQyxjQUFjLEdBQUcsSUFBdkI7QUFDUDtBQUNBO0FBQ0E7QUFDQTs7QUFDQSxPQUFPLE1BQU1DLFlBQVksR0FBRyxDQUFyQjtBQUNQO0FBQ0E7QUFDQTtBQUNBOztBQUNBLE9BQU8sTUFBTUMsY0FBYyxHQUFHLEVBQXZCO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7O0FBQ0EsT0FBTyxNQUFNQyxhQUFhLEdBQUcsQ0FBdEI7QUFDUDtBQUNBO0FBQ0E7QUFDQTs7QUFDQSxPQUFPLE1BQU1DLGFBQWEsR0FBRyxDQUF0QjtBQUNQO0FBQ0E7QUFDQTtBQUNBOztBQUNBLE9BQU8sTUFBTUMsaUJBQWlCLEdBQUcsS0FBMUI7QUFDUDtBQUNBO0FBQ0E7QUFDQTs7QUFDQSxPQUFPLE1BQU1DLGlCQUFpQixHQUFHLEtBQTFCO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7O0FBQ0EsT0FBTyxNQUFNQyxjQUFjLEdBQUdoQixVQUF2QjtBQUVQO0FBQ0E7QUFDQTtBQUNBOztBQUNBLE9BQU8sTUFBTWlCLG9CQUFvQixHQUFHLE1BQTdCO0FBRVA7QUFDQTtBQUNBO0FBQ0E7O0FBQ0EsT0FBTyxNQUFNQyxnQ0FBZ0MsR0FBRyxDQUM5QzlCLHlCQUQ4QyxFQUU5Q0MseUJBRjhDLEVBRzlDSixxQkFIOEMsRUFJOUNNLHVCQUo4QyxFQUs5Q0wscUJBTDhDLEVBTTlDSCxxQkFOOEMsRUFPOUNDLDRCQVA4QyxFQVE5Q1Esd0JBUjhDLEVBUzlDTCwrQkFUOEMsRUFVOUNHLGdDQVY4QyxFQVc5Q0csZ0NBWDhDLENBQXpDO0FBY1A7QUFDQTtBQUNBO0FBQ0E7O0FBQ0EsT0FBTyxNQUFNMEIsOEJBQThCLEdBQUcsQ0FDNUMvQyxvQkFENEMsRUFFNUNDLHlCQUY0QyxFQUc1Q0Msb0JBSDRDLEVBSTVDQyx5QkFKNEMsRUFLNUNDLG9CQUw0QyxFQU01Q0Msc0JBTjRDLEVBTzVDQywyQkFQNEMsRUFRNUNDLHdCQVI0QyxFQVM1Q0MscUJBVDRDLEVBVTVDQyxvQkFWNEMsRUFXNUNDLHFCQVg0QyxDQUF2QztBQWNQO0FBQ0E7QUFDQTtBQUNBOztBQUNBLE9BQU8sTUFBTXNDLDZCQUE2QixHQUFHLENBQUNyQixvQkFBRCxDQUF0QztBQUVQO0FBQ0E7QUFDQTtBQUNBOztBQUNBLE9BQU8sTUFBTXNCLHlCQUF5QixHQUFHLENBQ3ZDM0IsYUFEdUMsRUFFdkNDLGNBRnVDLEVBR3ZDQyxjQUh1QyxFQUl2Q0MsZUFKdUMsRUFLdkNDLGdCQUx1QyxDQUFsQztBQVFQLFNBQVN3QixvQ0FBVCxRQUFxRCxzQkFBckQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBCRUhBVklPVVJfVFlQRV9BTFBIQSxcbiAgQkVIQVZJT1VSX1RZUEVfQVRUUkFDVElPTixcbiAgQkVIQVZJT1VSX1RZUEVfQ09MT1IsXG4gIEJFSEFWSU9VUl9UWVBFX0NST1NTX1pPTkUsXG4gIEJFSEFWSU9VUl9UWVBFX0ZPUkNFLFxuICBCRUhBVklPVVJfVFlQRV9HUkFWSVRZLFxuICBCRUhBVklPVVJfVFlQRV9SQU5ET01fRFJJRlQsXG4gIEJFSEFWSU9VUl9UWVBFX1JFUFVMU0lPTixcbiAgQkVIQVZJT1VSX1RZUEVfUk9UQVRFLFxuICBCRUhBVklPVVJfVFlQRV9TQ0FMRSxcbiAgQkVIQVZJT1VSX1RZUEVfU1BSSU5HLFxufSBmcm9tICcuLi9iZWhhdmlvdXIvdHlwZXMnO1xuaW1wb3J0IHtcbiAgSU5JVElBTElaRVJfVFlQRV9CT0RZLFxuICBJTklUSUFMSVpFUl9UWVBFX0JPRFlfU1BSSVRFLFxuICBJTklUSUFMSVpFUl9UWVBFX0xJRkUsXG4gIElOSVRJQUxJWkVSX1RZUEVfTUFTUyxcbiAgSU5JVElBTElaRVJfVFlQRV9QT0xBUl9WRUxPQ0lUWSxcbiAgSU5JVElBTElaRVJfVFlQRV9QT1NJVElPTixcbiAgSU5JVElBTElaRVJfVFlQRV9ST1RBVElPTixcbiAgSU5JVElBTElaRVJfVFlQRV9SQURJQUxfVkVMT0NJVFksXG4gIElOSVRJQUxJWkVSX1RZUEVfUkFESVVTLFxuICBJTklUSUFMSVpFUl9UWVBFX1RFWFRVUkUsXG4gIElOSVRJQUxJWkVSX1RZUEVfVkVDVE9SX1ZFTE9DSVRZLFxufSBmcm9tICcuLi9pbml0aWFsaXplci90eXBlcyc7XG5pbXBvcnQge1xuICBaT05FX1RZUEVfQk9YLFxuICBaT05FX1RZUEVfTElORSxcbiAgWk9ORV9UWVBFX01FU0gsXG4gIFpPTkVfVFlQRV9QT0lOVCxcbiAgWk9ORV9UWVBFX1NQSEVSRSxcbn0gZnJvbSAnLi4vem9uZS90eXBlcyc7XG5cbmltcG9ydCB7IFJFTkRFUkVSX1RZUEVfU1BSSVRFIH0gZnJvbSAnLi4vcmVuZGVyZXIvdHlwZXMnO1xuaW1wb3J0IHsgZWFzZUxpbmVhciB9IGZyb20gJy4uL2Vhc2UnO1xuXG4vKipcbiAqIEBkZXNjIERlZmF1bHQgcGFydGljbGUgbGlmZVxuICogQHR5cGUge251bWJlcn1cbiAqL1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfTElGRSA9IEluZmluaXR5O1xuLyoqXG4gKiBAZGVzYyBEZWZhdWx0IHBhcnRpY2xlIGFnZVxuICogQHR5cGUge251bWJlcn1cbiAqL1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfQUdFID0gMDtcbi8qKlxuICogQGRlc2MgRGVmYXVsdCBwYXJ0aWNsZSBlbmVyZ3lcbiAqIEB0eXBlIHtudW1iZXJ9XG4gKi9cbmV4cG9ydCBjb25zdCBERUZBVUxUX0VORVJHWSA9IDE7XG4vKipcbiAqIEBkZXNjIERlZmF1bHQgcGFydGljbGUgZGVhZFxuICogQHR5cGUge2Jvb2xlYW59XG4gKi9cbmV4cG9ydCBjb25zdCBERUZBVUxUX0RFQUQgPSBmYWxzZTtcbi8qKlxuICogQGRlc2MgRGVmYXVsdCBwYXJ0aWNsZSBzbGVlcFxuICogQHR5cGUge2Jvb2xlYW59XG4gKi9cbmV4cG9ydCBjb25zdCBERUZBVUxUX1NMRUVQID0gZmFsc2U7XG5cbi8qKlxuICogQGRlc2MgRGVmYXVsdCBwYXJ0aWNsZSBpbmRleFxuICogQHR5cGUge251bWJlcn1cbiAqL1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfSU5ERVggPSAwO1xuLyoqXG4gKiBAZGVzYyBEZWZhdWx0IHBhcnRpY2xlIGJvZHlcbiAqIEB0eXBlIHs/b2JqZWN0fVxuICovXG5leHBvcnQgY29uc3QgREVGQVVMVF9CT0RZID0gbnVsbDtcbi8qKlxuICogQGRlc2MgRGVmYXVsdCBwYXJ0aWNsZSBwYXJlbnRcbiAqIEB0eXBlIHs/RW1pdHRlcn1cbiAqL1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfUEFSRU5UID0gbnVsbDtcbi8qKlxuICogQGRlc2MgRGVmYXVsdCBwYXJ0aWNsZSBtYXNzXG4gKiBAdHlwZSB7bnVtYmVyfVxuICovXG5leHBvcnQgY29uc3QgREVGQVVMVF9NQVNTID0gMTtcbi8qKlxuICogQGRlc2MgRGVmYXVsdCBwYXJ0aWNsZSByYWRpdXNcbiAqIEB0eXBlIHtudW1iZXJ9XG4gKi9cbmV4cG9ydCBjb25zdCBERUZBVUxUX1JBRElVUyA9IDEwO1xuLyoqXG4gKiBAZGVzYyBEZWZhdWx0IHBhcnRpY2xlIGFscGhhXG4gKiBAdHlwZSB7bnVtYmVyfVxuICovXG5leHBvcnQgY29uc3QgREVGQVVMVF9BTFBIQSA9IDE7XG4vKipcbiAqIEBkZXNjIERlZmF1bHQgcGFydGljbGUgc2NhbGVcbiAqIEB0eXBlIHtudW1iZXJ9XG4gKi9cbmV4cG9ydCBjb25zdCBERUZBVUxUX1NDQUxFID0gMTtcbi8qKlxuICogQGRlc2MgRGVmYXVsdCBwYXJ0aWNsZSB1c2VDb2xvclxuICogQHR5cGUge2Jvb2xlYW59XG4gKi9cbmV4cG9ydCBjb25zdCBERUZBVUxUX1VTRV9DT0xPUiA9IGZhbHNlO1xuLyoqXG4gKiBAZGVzYyBEZWZhdWx0IHBhcnRpY2xlIHVzZUFscGhhXG4gKiBAdHlwZSB7Ym9vbGVhbn1cbiAqL1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfVVNFX0FMUEhBID0gZmFsc2U7XG4vKipcbiAqIEBkZXNjIERlZmF1bHQgcGFydGljbGUgZWFzaW5nXG4gKiBAdHlwZSB7ZnVuY3Rpb259XG4gKi9cbmV4cG9ydCBjb25zdCBERUZBVUxUX0VBU0lORyA9IGVhc2VMaW5lYXI7XG5cbi8qKlxuICogQGRlc2MgVGhlIGRlZmF1bHQgZGVsdGEgcHJvdmlkZWQgdG8gdGhlIFN5c3RlbSBpbnN0YW5jZVxuICogQHR5cGUge251bWJlcn1cbiAqL1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfU1lTVEVNX0RFTFRBID0gMC4wMTY3O1xuXG4vKipcbiAqIEBkZXNjIFRoZSB0eXBlcyBvZiBpbml0aWFsaXplcnMgc3VwcG9ydGVkIGJ5IHRoZSBTeXN0ZW0uZnJvbUpTT04gbWV0aG9kLlxuICogQHR5cGUge2FycmF5PHN0cmluZz59XG4gKi9cbmV4cG9ydCBjb25zdCBTVVBQT1JURURfSlNPTl9JTklUSUFMSVpFUl9UWVBFUyA9IFtcbiAgSU5JVElBTElaRVJfVFlQRV9QT1NJVElPTixcbiAgSU5JVElBTElaRVJfVFlQRV9ST1RBVElPTixcbiAgSU5JVElBTElaRVJfVFlQRV9MSUZFLFxuICBJTklUSUFMSVpFUl9UWVBFX1JBRElVUyxcbiAgSU5JVElBTElaRVJfVFlQRV9NQVNTLFxuICBJTklUSUFMSVpFUl9UWVBFX0JPRFksXG4gIElOSVRJQUxJWkVSX1RZUEVfQk9EWV9TUFJJVEUsXG4gIElOSVRJQUxJWkVSX1RZUEVfVEVYVFVSRSxcbiAgSU5JVElBTElaRVJfVFlQRV9QT0xBUl9WRUxPQ0lUWSxcbiAgSU5JVElBTElaRVJfVFlQRV9SQURJQUxfVkVMT0NJVFksXG4gIElOSVRJQUxJWkVSX1RZUEVfVkVDVE9SX1ZFTE9DSVRZLFxuXTtcblxuLyoqXG4gKiBAZGVzYyBUaGUgdHlwZXMgb2YgYmVoYXZpb3VycyBzdXBwb3J0ZWQgYnkgdGhlIFN5c3RlbS5mcm9tSlNPTiBtZXRob2QuXG4gKiBAdHlwZSB7YXJyYXk8c3RyaW5nPn1cbiAqL1xuZXhwb3J0IGNvbnN0IFNVUFBPUlRFRF9KU09OX0JFSEFWSU9VUl9UWVBFUyA9IFtcbiAgQkVIQVZJT1VSX1RZUEVfQUxQSEEsXG4gIEJFSEFWSU9VUl9UWVBFX0FUVFJBQ1RJT04sXG4gIEJFSEFWSU9VUl9UWVBFX0NPTE9SLFxuICBCRUhBVklPVVJfVFlQRV9DUk9TU19aT05FLFxuICBCRUhBVklPVVJfVFlQRV9GT1JDRSxcbiAgQkVIQVZJT1VSX1RZUEVfR1JBVklUWSxcbiAgQkVIQVZJT1VSX1RZUEVfUkFORE9NX0RSSUZULFxuICBCRUhBVklPVVJfVFlQRV9SRVBVTFNJT04sXG4gIEJFSEFWSU9VUl9UWVBFX1JPVEFURSxcbiAgQkVIQVZJT1VSX1RZUEVfU0NBTEUsXG4gIEJFSEFWSU9VUl9UWVBFX1NQUklORyxcbl07XG5cbi8qKlxuICogQGRlc2MgVGhlIHR5cGVzIG9mIHJlbmRlcmVycyBzdXBwb3J0ZWQgYnkgdGhlIFN5c3RlbS5mcm9tSlNPTiBtZXRob2QuXG4gKiBAdHlwZSB7YXJyYXk8c3RyaW5nPn1cbiAqL1xuZXhwb3J0IGNvbnN0IFNVUFBPUlRFRF9KU09OX1JFTkRFUkVSX1RZUEVTID0gW1JFTkRFUkVSX1RZUEVfU1BSSVRFXTtcblxuLyoqXG4gKiBAZGVzYyBUaGUgdHlwZXMgb2Ygem9uZXMgc3VwcG9ydGVkIGJ5IHRoZSBTeXN0ZW0uZnJvbUpTT04gbWV0aG9kLlxuICogQHR5cGUge2FycmF5PHN0cmluZz59XG4gKi9cbmV4cG9ydCBjb25zdCBTVVBQT1JURURfSlNPTl9aT05FX1RZUEVTID0gW1xuICBaT05FX1RZUEVfQk9YLFxuICBaT05FX1RZUEVfTElORSxcbiAgWk9ORV9UWVBFX01FU0gsXG4gIFpPTkVfVFlQRV9QT0lOVCxcbiAgWk9ORV9UWVBFX1NQSEVSRSxcbl07XG5cbmV4cG9ydCB7IElOSVRJQUxJWkVSX1RZUEVTX1RIQVRfUkVRVUlSRV9USFJFRSB9IGZyb20gJy4uL2luaXRpYWxpemVyL3R5cGVzJztcbiJdfQ== ================================================ FILE: packages/sdk/lib/core/libs/three-nebula/core/fromJSON.js ================================================ import * as Behaviour from '../behaviour'; import * as Initializer from '../initializer'; import { EULER, POOL_MAX } from '../constants'; import { INITIALIZER_TYPES_THAT_REQUIRE_THREE, SUPPORTED_JSON_BEHAVIOUR_TYPES, SUPPORTED_JSON_INITIALIZER_TYPES } from './constants'; import Rate from '../initializer/Rate'; /** * Makes a rate instance. * * @param {object} json - The data required to construct a Rate instance * @return {Rate} */ const makeRate = json => Rate.fromJSON(json); /** * Makes initializers from json items. * * @param {array} items - An array of objects which provide initializer constructor params * @param {object} THREE - The Web GL Api to use * @return {array} */ const makeInitializers = (items, THREE) => { const initializers = []; items.forEach(data => { const { type, properties } = data; if (!SUPPORTED_JSON_INITIALIZER_TYPES.includes(type)) { throw new Error(`The initializer type ${type} is invalid or not yet supported`); } if (INITIALIZER_TYPES_THAT_REQUIRE_THREE.includes(type)) { initializers.push(Initializer[type].fromJSON(properties, THREE)); } else { initializers.push(Initializer[type].fromJSON(properties)); } }); return initializers; }; /** * Makes behaviours from json items. * * @param {array} items - An array of objects which provide behaviour constructor params * @return {array} */ const makeBehaviours = items => { const behaviours = []; items.forEach(data => { const { type, properties } = data; if (!SUPPORTED_JSON_BEHAVIOUR_TYPES.includes(type)) { throw new Error(`The behaviour type ${type} is invalid or not yet supported`); } behaviours.push(Behaviour[type].fromJSON(properties)); }); return behaviours; }; /** * Creates a System instance from a JSON object. * * @deprecated Use fromJSONAsync instead. * * @param {object} json - The JSON to create the System instance from * @param {object} THREE - The Web GL Api to use * @param {function} System - The system class * @param {function} Emitter - The emitter class * @param {number} json.preParticles - The predetermined number of particles * @param {string} json.integrationType - The integration algorithm to use * @param {array} json.emitters - The emitters for the system instance * @return {System} */ export default ((json, THREE, System, Emitter) => { const { preParticles = POOL_MAX, integrationType = EULER, emitters = [] } = json; const system = new System(THREE, preParticles, integrationType); emitters.forEach(data => { const emitter = new Emitter(); const { rate, rotation, initializers, behaviours, emitterBehaviours = [], position, totalEmitTimes = Infinity, life = Infinity } = data; emitter.setRate(makeRate(rate)).setRotation(rotation).setInitializers(makeInitializers(initializers, THREE)).setBehaviours(makeBehaviours(behaviours)).setEmitterBehaviours(makeBehaviours(emitterBehaviours)).setPosition(position).emit(totalEmitTimes, life); system.addEmitter(emitter); }); return system; }); //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb3JlL2Zyb21KU09OLmpzIl0sIm5hbWVzIjpbIkJlaGF2aW91ciIsIkluaXRpYWxpemVyIiwiRVVMRVIiLCJQT09MX01BWCIsIklOSVRJQUxJWkVSX1RZUEVTX1RIQVRfUkVRVUlSRV9USFJFRSIsIlNVUFBPUlRFRF9KU09OX0JFSEFWSU9VUl9UWVBFUyIsIlNVUFBPUlRFRF9KU09OX0lOSVRJQUxJWkVSX1RZUEVTIiwiUmF0ZSIsIm1ha2VSYXRlIiwianNvbiIsImZyb21KU09OIiwibWFrZUluaXRpYWxpemVycyIsIml0ZW1zIiwiVEhSRUUiLCJpbml0aWFsaXplcnMiLCJmb3JFYWNoIiwiZGF0YSIsInR5cGUiLCJwcm9wZXJ0aWVzIiwiaW5jbHVkZXMiLCJFcnJvciIsInB1c2giLCJtYWtlQmVoYXZpb3VycyIsImJlaGF2aW91cnMiLCJTeXN0ZW0iLCJFbWl0dGVyIiwicHJlUGFydGljbGVzIiwiaW50ZWdyYXRpb25UeXBlIiwiZW1pdHRlcnMiLCJzeXN0ZW0iLCJlbWl0dGVyIiwicmF0ZSIsInJvdGF0aW9uIiwiZW1pdHRlckJlaGF2aW91cnMiLCJwb3NpdGlvbiIsInRvdGFsRW1pdFRpbWVzIiwiSW5maW5pdHkiLCJsaWZlIiwic2V0UmF0ZSIsInNldFJvdGF0aW9uIiwic2V0SW5pdGlhbGl6ZXJzIiwic2V0QmVoYXZpb3VycyIsInNldEVtaXR0ZXJCZWhhdmlvdXJzIiwic2V0UG9zaXRpb24iLCJlbWl0IiwiYWRkRW1pdHRlciJdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLQSxTQUFaLE1BQTJCLGNBQTNCO0FBQ0EsT0FBTyxLQUFLQyxXQUFaLE1BQTZCLGdCQUE3QjtBQUVBLFNBQVNDLEtBQVQsRUFBZ0JDLFFBQWhCLFFBQWdDLGNBQWhDO0FBQ0EsU0FDRUMsb0NBREYsRUFFRUMsOEJBRkYsRUFHRUMsZ0NBSEYsUUFJTyxhQUpQO0FBTUEsT0FBT0MsSUFBUCxNQUFpQixxQkFBakI7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBQ0EsTUFBTUMsUUFBUSxHQUFHQyxJQUFJLElBQUlGLElBQUksQ0FBQ0csUUFBTCxDQUFjRCxJQUFkLENBQXpCO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUNBLE1BQU1FLGdCQUFnQixHQUFHLENBQUNDLEtBQUQsRUFBUUMsS0FBUixLQUFrQjtBQUN6QyxRQUFNQyxZQUFZLEdBQUcsRUFBckI7QUFFQUYsRUFBQUEsS0FBSyxDQUFDRyxPQUFOLENBQWNDLElBQUksSUFBSTtBQUNwQixVQUFNO0FBQUVDLE1BQUFBLElBQUY7QUFBUUMsTUFBQUE7QUFBUixRQUF1QkYsSUFBN0I7O0FBRUEsUUFBSSxDQUFDVixnQ0FBZ0MsQ0FBQ2EsUUFBakMsQ0FBMENGLElBQTFDLENBQUwsRUFBc0Q7QUFDcEQsWUFBTSxJQUFJRyxLQUFKLENBQ0gsd0JBQXVCSCxJQUFLLGtDQUR6QixDQUFOO0FBR0Q7O0FBRUQsUUFBSWIsb0NBQW9DLENBQUNlLFFBQXJDLENBQThDRixJQUE5QyxDQUFKLEVBQXlEO0FBQ3ZESCxNQUFBQSxZQUFZLENBQUNPLElBQWIsQ0FBa0JwQixXQUFXLENBQUNnQixJQUFELENBQVgsQ0FBa0JQLFFBQWxCLENBQTJCUSxVQUEzQixFQUF1Q0wsS0FBdkMsQ0FBbEI7QUFDRCxLQUZELE1BRU87QUFDTEMsTUFBQUEsWUFBWSxDQUFDTyxJQUFiLENBQWtCcEIsV0FBVyxDQUFDZ0IsSUFBRCxDQUFYLENBQWtCUCxRQUFsQixDQUEyQlEsVUFBM0IsQ0FBbEI7QUFDRDtBQUNGLEdBZEQ7QUFnQkEsU0FBT0osWUFBUDtBQUNELENBcEJEO0FBc0JBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQ0EsTUFBTVEsY0FBYyxHQUFHVixLQUFLLElBQUk7QUFDOUIsUUFBTVcsVUFBVSxHQUFHLEVBQW5CO0FBRUFYLEVBQUFBLEtBQUssQ0FBQ0csT0FBTixDQUFjQyxJQUFJLElBQUk7QUFDcEIsVUFBTTtBQUFFQyxNQUFBQSxJQUFGO0FBQVFDLE1BQUFBO0FBQVIsUUFBdUJGLElBQTdCOztBQUVBLFFBQUksQ0FBQ1gsOEJBQThCLENBQUNjLFFBQS9CLENBQXdDRixJQUF4QyxDQUFMLEVBQW9EO0FBQ2xELFlBQU0sSUFBSUcsS0FBSixDQUNILHNCQUFxQkgsSUFBSyxrQ0FEdkIsQ0FBTjtBQUdEOztBQUVETSxJQUFBQSxVQUFVLENBQUNGLElBQVgsQ0FBZ0JyQixTQUFTLENBQUNpQixJQUFELENBQVQsQ0FBZ0JQLFFBQWhCLENBQXlCUSxVQUF6QixDQUFoQjtBQUNELEdBVkQ7QUFZQSxTQUFPSyxVQUFQO0FBQ0QsQ0FoQkQ7QUFrQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQ0EsZ0JBQWUsQ0FBQ2QsSUFBRCxFQUFPSSxLQUFQLEVBQWNXLE1BQWQsRUFBc0JDLE9BQXRCLEtBQWtDO0FBQy9DLFFBQU07QUFDSkMsSUFBQUEsWUFBWSxHQUFHdkIsUUFEWDtBQUVKd0IsSUFBQUEsZUFBZSxHQUFHekIsS0FGZDtBQUdKMEIsSUFBQUEsUUFBUSxHQUFHO0FBSFAsTUFJRm5CLElBSko7QUFLQSxRQUFNb0IsTUFBTSxHQUFHLElBQUlMLE1BQUosQ0FBV1gsS0FBWCxFQUFrQmEsWUFBbEIsRUFBZ0NDLGVBQWhDLENBQWY7QUFFQUMsRUFBQUEsUUFBUSxDQUFDYixPQUFULENBQWlCQyxJQUFJLElBQUk7QUFDdkIsVUFBTWMsT0FBTyxHQUFHLElBQUlMLE9BQUosRUFBaEI7QUFDQSxVQUFNO0FBQ0pNLE1BQUFBLElBREk7QUFFSkMsTUFBQUEsUUFGSTtBQUdKbEIsTUFBQUEsWUFISTtBQUlKUyxNQUFBQSxVQUpJO0FBS0pVLE1BQUFBLGlCQUFpQixHQUFHLEVBTGhCO0FBTUpDLE1BQUFBLFFBTkk7QUFPSkMsTUFBQUEsY0FBYyxHQUFHQyxRQVBiO0FBUUpDLE1BQUFBLElBQUksR0FBR0Q7QUFSSCxRQVNGcEIsSUFUSjtBQVdBYyxJQUFBQSxPQUFPLENBQ0pRLE9BREgsQ0FDVzlCLFFBQVEsQ0FBQ3VCLElBQUQsQ0FEbkIsRUFFR1EsV0FGSCxDQUVlUCxRQUZmLEVBR0dRLGVBSEgsQ0FHbUI3QixnQkFBZ0IsQ0FBQ0csWUFBRCxFQUFlRCxLQUFmLENBSG5DLEVBSUc0QixhQUpILENBSWlCbkIsY0FBYyxDQUFDQyxVQUFELENBSi9CLEVBS0dtQixvQkFMSCxDQUt3QnBCLGNBQWMsQ0FBQ1csaUJBQUQsQ0FMdEMsRUFNR1UsV0FOSCxDQU1lVCxRQU5mLEVBT0dVLElBUEgsQ0FPUVQsY0FQUixFQU93QkUsSUFQeEI7QUFTQVIsSUFBQUEsTUFBTSxDQUFDZ0IsVUFBUCxDQUFrQmYsT0FBbEI7QUFDRCxHQXZCRDtBQXlCQSxTQUFPRCxNQUFQO0FBQ0QsQ0FsQ0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBCZWhhdmlvdXIgZnJvbSAnLi4vYmVoYXZpb3VyJztcbmltcG9ydCAqIGFzIEluaXRpYWxpemVyIGZyb20gJy4uL2luaXRpYWxpemVyJztcblxuaW1wb3J0IHsgRVVMRVIsIFBPT0xfTUFYIH0gZnJvbSAnLi4vY29uc3RhbnRzJztcbmltcG9ydCB7XG4gIElOSVRJQUxJWkVSX1RZUEVTX1RIQVRfUkVRVUlSRV9USFJFRSxcbiAgU1VQUE9SVEVEX0pTT05fQkVIQVZJT1VSX1RZUEVTLFxuICBTVVBQT1JURURfSlNPTl9JTklUSUFMSVpFUl9UWVBFUyxcbn0gZnJvbSAnLi9jb25zdGFudHMnO1xuXG5pbXBvcnQgUmF0ZSBmcm9tICcuLi9pbml0aWFsaXplci9SYXRlJztcblxuLyoqXG4gKiBNYWtlcyBhIHJhdGUgaW5zdGFuY2UuXG4gKlxuICogQHBhcmFtIHtvYmplY3R9IGpzb24gLSBUaGUgZGF0YSByZXF1aXJlZCB0byBjb25zdHJ1Y3QgYSBSYXRlIGluc3RhbmNlXG4gKiBAcmV0dXJuIHtSYXRlfVxuICovXG5jb25zdCBtYWtlUmF0ZSA9IGpzb24gPT4gUmF0ZS5mcm9tSlNPTihqc29uKTtcblxuLyoqXG4gKiBNYWtlcyBpbml0aWFsaXplcnMgZnJvbSBqc29uIGl0ZW1zLlxuICpcbiAqIEBwYXJhbSB7YXJyYXk8b2JqZWN0Pn0gaXRlbXMgLSBBbiBhcnJheSBvZiBvYmplY3RzIHdoaWNoIHByb3ZpZGUgaW5pdGlhbGl6ZXIgY29uc3RydWN0b3IgcGFyYW1zXG4gKiBAcGFyYW0ge29iamVjdH0gVEhSRUUgLSBUaGUgV2ViIEdMIEFwaSB0byB1c2VcbiAqIEByZXR1cm4ge2FycmF5PEluaXRpYWxpemVyPn1cbiAqL1xuY29uc3QgbWFrZUluaXRpYWxpemVycyA9IChpdGVtcywgVEhSRUUpID0+IHtcbiAgY29uc3QgaW5pdGlhbGl6ZXJzID0gW107XG5cbiAgaXRlbXMuZm9yRWFjaChkYXRhID0+IHtcbiAgICBjb25zdCB7IHR5cGUsIHByb3BlcnRpZXMgfSA9IGRhdGE7XG5cbiAgICBpZiAoIVNVUFBPUlRFRF9KU09OX0lOSVRJQUxJWkVSX1RZUEVTLmluY2x1ZGVzKHR5cGUpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBUaGUgaW5pdGlhbGl6ZXIgdHlwZSAke3R5cGV9IGlzIGludmFsaWQgb3Igbm90IHlldCBzdXBwb3J0ZWRgXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmIChJTklUSUFMSVpFUl9UWVBFU19USEFUX1JFUVVJUkVfVEhSRUUuaW5jbHVkZXModHlwZSkpIHtcbiAgICAgIGluaXRpYWxpemVycy5wdXNoKEluaXRpYWxpemVyW3R5cGVdLmZyb21KU09OKHByb3BlcnRpZXMsIFRIUkVFKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGluaXRpYWxpemVycy5wdXNoKEluaXRpYWxpemVyW3R5cGVdLmZyb21KU09OKHByb3BlcnRpZXMpKTtcbiAgICB9XG4gIH0pO1xuXG4gIHJldHVybiBpbml0aWFsaXplcnM7XG59O1xuXG4vKipcbiAqIE1ha2VzIGJlaGF2aW91cnMgZnJvbSBqc29uIGl0ZW1zLlxuICpcbiAqIEBwYXJhbSB7YXJyYXk8b2JqZWN0Pn0gaXRlbXMgLSBBbiBhcnJheSBvZiBvYmplY3RzIHdoaWNoIHByb3ZpZGUgYmVoYXZpb3VyIGNvbnN0cnVjdG9yIHBhcmFtc1xuICogQHJldHVybiB7YXJyYXk8QmVoYXZpb3VyPn1cbiAqL1xuY29uc3QgbWFrZUJlaGF2aW91cnMgPSBpdGVtcyA9PiB7XG4gIGNvbnN0IGJlaGF2aW91cnMgPSBbXTtcblxuICBpdGVtcy5mb3JFYWNoKGRhdGEgPT4ge1xuICAgIGNvbnN0IHsgdHlwZSwgcHJvcGVydGllcyB9ID0gZGF0YTtcblxuICAgIGlmICghU1VQUE9SVEVEX0pTT05fQkVIQVZJT1VSX1RZUEVTLmluY2x1ZGVzKHR5cGUpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBUaGUgYmVoYXZpb3VyIHR5cGUgJHt0eXBlfSBpcyBpbnZhbGlkIG9yIG5vdCB5ZXQgc3VwcG9ydGVkYFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBiZWhhdmlvdXJzLnB1c2goQmVoYXZpb3VyW3R5cGVdLmZyb21KU09OKHByb3BlcnRpZXMpKTtcbiAgfSk7XG5cbiAgcmV0dXJuIGJlaGF2aW91cnM7XG59O1xuXG4vKipcbiAqIENyZWF0ZXMgYSBTeXN0ZW0gaW5zdGFuY2UgZnJvbSBhIEpTT04gb2JqZWN0LlxuICpcbiAqIEBkZXByZWNhdGVkIFVzZSBmcm9tSlNPTkFzeW5jIGluc3RlYWQuXG4gKlxuICogQHBhcmFtIHtvYmplY3R9IGpzb24gLSBUaGUgSlNPTiB0byBjcmVhdGUgdGhlIFN5c3RlbSBpbnN0YW5jZSBmcm9tXG4gKiBAcGFyYW0ge29iamVjdH0gVEhSRUUgLSBUaGUgV2ViIEdMIEFwaSB0byB1c2VcbiAqIEBwYXJhbSB7ZnVuY3Rpb259IFN5c3RlbSAtIFRoZSBzeXN0ZW0gY2xhc3NcbiAqIEBwYXJhbSB7ZnVuY3Rpb259IEVtaXR0ZXIgLSBUaGUgZW1pdHRlciBjbGFzc1xuICogQHBhcmFtIHtudW1iZXJ9IGpzb24ucHJlUGFydGljbGVzIC0gVGhlIHByZWRldGVybWluZWQgbnVtYmVyIG9mIHBhcnRpY2xlc1xuICogQHBhcmFtIHtzdHJpbmd9IGpzb24uaW50ZWdyYXRpb25UeXBlIC0gVGhlIGludGVncmF0aW9uIGFsZ29yaXRobSB0byB1c2VcbiAqIEBwYXJhbSB7YXJyYXk8b2JqZWN0Pn0ganNvbi5lbWl0dGVycyAtIFRoZSBlbWl0dGVycyBmb3IgdGhlIHN5c3RlbSBpbnN0YW5jZVxuICogQHJldHVybiB7U3lzdGVtfVxuICovXG5leHBvcnQgZGVmYXVsdCAoanNvbiwgVEhSRUUsIFN5c3RlbSwgRW1pdHRlcikgPT4ge1xuICBjb25zdCB7XG4gICAgcHJlUGFydGljbGVzID0gUE9PTF9NQVgsXG4gICAgaW50ZWdyYXRpb25UeXBlID0gRVVMRVIsXG4gICAgZW1pdHRlcnMgPSBbXSxcbiAgfSA9IGpzb247XG4gIGNvbnN0IHN5c3RlbSA9IG5ldyBTeXN0ZW0oVEhSRUUsIHByZVBhcnRpY2xlcywgaW50ZWdyYXRpb25UeXBlKTtcblxuICBlbWl0dGVycy5mb3JFYWNoKGRhdGEgPT4ge1xuICAgIGNvbnN0IGVtaXR0ZXIgPSBuZXcgRW1pdHRlcigpO1xuICAgIGNvbnN0IHtcbiAgICAgIHJhdGUsXG4gICAgICByb3RhdGlvbixcbiAgICAgIGluaXRpYWxpemVycyxcbiAgICAgIGJlaGF2aW91cnMsXG4gICAgICBlbWl0dGVyQmVoYXZpb3VycyA9IFtdLFxuICAgICAgcG9zaXRpb24sXG4gICAgICB0b3RhbEVtaXRUaW1lcyA9IEluZmluaXR5LFxuICAgICAgbGlmZSA9IEluZmluaXR5LFxuICAgIH0gPSBkYXRhO1xuXG4gICAgZW1pdHRlclxuICAgICAgLnNldFJhdGUobWFrZVJhdGUocmF0ZSkpXG4gICAgICAuc2V0Um90YXRpb24ocm90YXRpb24pXG4gICAgICAuc2V0SW5pdGlhbGl6ZXJzKG1ha2VJbml0aWFsaXplcnMoaW5pdGlhbGl6ZXJzLCBUSFJFRSkpXG4gICAgICAuc2V0QmVoYXZpb3VycyhtYWtlQmVoYXZpb3VycyhiZWhhdmlvdXJzKSlcbiAgICAgIC5zZXRFbWl0dGVyQmVoYXZpb3VycyhtYWtlQmVoYXZpb3VycyhlbWl0dGVyQmVoYXZpb3VycykpXG4gICAgICAuc2V0UG9zaXRpb24ocG9zaXRpb24pXG4gICAgICAuZW1pdCh0b3RhbEVtaXRUaW1lcywgbGlmZSk7XG5cbiAgICBzeXN0ZW0uYWRkRW1pdHRlcihlbWl0dGVyKTtcbiAgfSk7XG5cbiAgcmV0dXJuIHN5c3RlbTtcbn07XG4iXX0= ================================================ FILE: packages/sdk/lib/core/libs/three-nebula/core/fromJSONAsync.js ================================================ import _defineProperty from "@babel/runtime/helpers/defineProperty"; function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; } function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } import * as Behaviour from '../behaviour'; import * as Initializer from '../initializer'; import { EULER, POOL_MAX } from '../constants'; import { INITIALIZER_TYPES_THAT_REQUIRE_THREE, SUPPORTED_JSON_BEHAVIOUR_TYPES, SUPPORTED_JSON_INITIALIZER_TYPES } from './constants'; import Rate from '../initializer/Rate'; import TextureInitializer from '../initializer/Texture'; const DEFAULT_OPTIONS = { shouldAutoEmit: true }; /** * Makes a rate instance. * * @param {object} json - The data required to construct a Rate instance * @return {Rate} */ const makeRate = json => Rate.fromJSON(json); /** * Makes initializers from json items. * * @param {array} items - An array of objects which provide initializer constructor params * @param {object} THREE - The Web GL Api to use * @return {array} */ const makeInitializers = (items, THREE) => new Promise((resolve, reject) => { if (!items.length) { return resolve([]); } const numberOfInitializers = items.length; const madeInitializers = []; const doNotRequireTextureLoading = items.filter(({ properties }) => !properties.texture); const doRequireTextureLoading = items.filter(({ properties }) => properties.texture); doNotRequireTextureLoading.forEach(data => { const { type, properties } = data; if (!SUPPORTED_JSON_INITIALIZER_TYPES.includes(type)) { return reject(`The initializer type ${type} is invalid or not yet supported`); } if (INITIALIZER_TYPES_THAT_REQUIRE_THREE.includes(type)) { madeInitializers.push(Initializer[type].fromJSON(properties, THREE)); } else { madeInitializers.push(Initializer[type].fromJSON(properties)); } if (madeInitializers.length === numberOfInitializers) { return resolve(madeInitializers); } }); doRequireTextureLoading.forEach(data => { const { type, properties, properties: { texture } } = data; const textureLoader = new THREE.TextureLoader(); if (!SUPPORTED_JSON_INITIALIZER_TYPES.includes(type)) { return reject(`The initializer type ${type} is invalid or not yet supported`); } textureLoader.load(texture, loadedTexture => { madeInitializers.push(TextureInitializer.fromJSON(_objectSpread(_objectSpread({}, properties), {}, { loadedTexture }), THREE)); if (madeInitializers.length === numberOfInitializers) { return resolve(madeInitializers); } }, undefined, reject); }); }); /** * Makes behaviours from json items. * * @param {array} items - An array of objects which provide behaviour constructor params * @return {Promise} */ const makeBehaviours = items => new Promise((resolve, reject) => { if (!items.length) { return resolve([]); } const numberOfBehaviours = items.length; const madeBehaviours = []; items.forEach(data => { const { type, properties } = data; if (!SUPPORTED_JSON_BEHAVIOUR_TYPES.includes(type)) { return reject(`The behaviour type ${type} is invalid or not yet supported`); } madeBehaviours.push(Behaviour[type].fromJSON(properties)); if (madeBehaviours.length === numberOfBehaviours) { return resolve(madeBehaviours); } }); }); const makeEmitters = (emitters, Emitter, THREE, shouldAutoEmit) => new Promise((resolve, reject) => { if (!emitters.length) { return resolve([]); } const madeEmitters = []; const numberOfEmitters = emitters.length; if (!numberOfEmitters) { return resolve(madeEmitters); } emitters.forEach(data => { const emitter = new Emitter(); const { rate, rotation, initializers, behaviours, emitterBehaviours = [], position, totalEmitTimes = Infinity, life = Infinity } = data; emitter.setRate(makeRate(rate)).setRotation(rotation).setPosition(position); makeInitializers(initializers, THREE).then(madeInitializers => { emitter.setInitializers(madeInitializers); return makeBehaviours(behaviours); }).then(madeBehaviours => { emitter.setBehaviours(madeBehaviours); return makeBehaviours(emitterBehaviours); }).then(madeEmitterBehaviours => { emitter.setEmitterBehaviours(madeEmitterBehaviours); return Promise.resolve(emitter); }).then(emitter => { madeEmitters.push(shouldAutoEmit ? emitter.emit(totalEmitTimes, life) : emitter.setTotalEmitTimes(totalEmitTimes).setLife(life)); if (madeEmitters.length === numberOfEmitters) { return resolve(madeEmitters); } }).catch(reject); }); }); /** * Creates a System instance from a JSON object. * * @param {object} json - The JSON to create the System instance from * @param {number} json.preParticles - The predetermined number of particles * @param {string} json.integrationType - The integration algorithm to use * @param {array} json.emitters - The emitters for the system instance * @param {object} THREE - The Web GL Api to use * @param {function} System - The system class * @param {function} Emitter - The emitter class * @param {object} [options={}] - Optional config options * @return {Promise} */ export default ((json, THREE, System, Emitter, options = {}) => new Promise((resolve, reject) => { const { preParticles = POOL_MAX, integrationType = EULER, emitters = [] } = json; const system = new System(preParticles, integrationType); const { shouldAutoEmit } = _objectSpread(_objectSpread({}, DEFAULT_OPTIONS), options); makeEmitters(emitters, Emitter, THREE, shouldAutoEmit).then(madeEmitters => { const numberOfEmitters = madeEmitters.length; if (!numberOfEmitters) { return resolve(system); } madeEmitters.forEach(madeEmitter => { system.addEmitter(madeEmitter); if (system.emitters.length === numberOfEmitters) { resolve(system); } }); }).catch(reject); })); //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb3JlL2Zyb21KU09OQXN5bmMuanMiXSwibmFtZXMiOlsiQmVoYXZpb3VyIiwiSW5pdGlhbGl6ZXIiLCJFVUxFUiIsIlBPT0xfTUFYIiwiSU5JVElBTElaRVJfVFlQRVNfVEhBVF9SRVFVSVJFX1RIUkVFIiwiU1VQUE9SVEVEX0pTT05fQkVIQVZJT1VSX1RZUEVTIiwiU1VQUE9SVEVEX0pTT05fSU5JVElBTElaRVJfVFlQRVMiLCJSYXRlIiwiVGV4dHVyZUluaXRpYWxpemVyIiwiREVGQVVMVF9PUFRJT05TIiwic2hvdWxkQXV0b0VtaXQiLCJtYWtlUmF0ZSIsImpzb24iLCJmcm9tSlNPTiIsIm1ha2VJbml0aWFsaXplcnMiLCJpdGVtcyIsIlRIUkVFIiwiUHJvbWlzZSIsInJlc29sdmUiLCJyZWplY3QiLCJsZW5ndGgiLCJudW1iZXJPZkluaXRpYWxpemVycyIsIm1hZGVJbml0aWFsaXplcnMiLCJkb05vdFJlcXVpcmVUZXh0dXJlTG9hZGluZyIsImZpbHRlciIsInByb3BlcnRpZXMiLCJ0ZXh0dXJlIiwiZG9SZXF1aXJlVGV4dHVyZUxvYWRpbmciLCJmb3JFYWNoIiwiZGF0YSIsInR5cGUiLCJpbmNsdWRlcyIsInB1c2giLCJ0ZXh0dXJlTG9hZGVyIiwiVGV4dHVyZUxvYWRlciIsImxvYWQiLCJsb2FkZWRUZXh0dXJlIiwidW5kZWZpbmVkIiwibWFrZUJlaGF2aW91cnMiLCJudW1iZXJPZkJlaGF2aW91cnMiLCJtYWRlQmVoYXZpb3VycyIsIm1ha2VFbWl0dGVycyIsImVtaXR0ZXJzIiwiRW1pdHRlciIsIm1hZGVFbWl0dGVycyIsIm51bWJlck9mRW1pdHRlcnMiLCJlbWl0dGVyIiwicmF0ZSIsInJvdGF0aW9uIiwiaW5pdGlhbGl6ZXJzIiwiYmVoYXZpb3VycyIsImVtaXR0ZXJCZWhhdmlvdXJzIiwicG9zaXRpb24iLCJ0b3RhbEVtaXRUaW1lcyIsIkluZmluaXR5IiwibGlmZSIsInNldFJhdGUiLCJzZXRSb3RhdGlvbiIsInNldFBvc2l0aW9uIiwidGhlbiIsInNldEluaXRpYWxpemVycyIsInNldEJlaGF2aW91cnMiLCJtYWRlRW1pdHRlckJlaGF2aW91cnMiLCJzZXRFbWl0dGVyQmVoYXZpb3VycyIsImVtaXQiLCJzZXRUb3RhbEVtaXRUaW1lcyIsInNldExpZmUiLCJjYXRjaCIsIlN5c3RlbSIsIm9wdGlvbnMiLCJwcmVQYXJ0aWNsZXMiLCJpbnRlZ3JhdGlvblR5cGUiLCJzeXN0ZW0iLCJtYWRlRW1pdHRlciIsImFkZEVtaXR0ZXIiXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLE9BQU8sS0FBS0EsU0FBWixNQUEyQixjQUEzQjtBQUNBLE9BQU8sS0FBS0MsV0FBWixNQUE2QixnQkFBN0I7QUFFQSxTQUFTQyxLQUFULEVBQWdCQyxRQUFoQixRQUFnQyxjQUFoQztBQUNBLFNBQ0VDLG9DQURGLEVBRUVDLDhCQUZGLEVBR0VDLGdDQUhGLFFBSU8sYUFKUDtBQU1BLE9BQU9DLElBQVAsTUFBaUIscUJBQWpCO0FBQ0EsT0FBT0Msa0JBQVAsTUFBK0Isd0JBQS9CO0FBRUEsTUFBTUMsZUFBZSxHQUFHO0FBQUVDLEVBQUFBLGNBQWMsRUFBRTtBQUFsQixDQUF4QjtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFDQSxNQUFNQyxRQUFRLEdBQUdDLElBQUksSUFBSUwsSUFBSSxDQUFDTSxRQUFMLENBQWNELElBQWQsQ0FBekI7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQ0EsTUFBTUUsZ0JBQWdCLEdBQUcsQ0FBQ0MsS0FBRCxFQUFRQyxLQUFSLEtBQ3ZCLElBQUlDLE9BQUosQ0FBWSxDQUFDQyxPQUFELEVBQVVDLE1BQVYsS0FBcUI7QUFDL0IsTUFBSSxDQUFDSixLQUFLLENBQUNLLE1BQVgsRUFBbUI7QUFDakIsV0FBT0YsT0FBTyxDQUFDLEVBQUQsQ0FBZDtBQUNEOztBQUVELFFBQU1HLG9CQUFvQixHQUFHTixLQUFLLENBQUNLLE1BQW5DO0FBQ0EsUUFBTUUsZ0JBQWdCLEdBQUcsRUFBekI7QUFDQSxRQUFNQywwQkFBMEIsR0FBR1IsS0FBSyxDQUFDUyxNQUFOLENBQ2pDLENBQUM7QUFBRUMsSUFBQUE7QUFBRixHQUFELEtBQW9CLENBQUNBLFVBQVUsQ0FBQ0MsT0FEQyxDQUFuQztBQUdBLFFBQU1DLHVCQUF1QixHQUFHWixLQUFLLENBQUNTLE1BQU4sQ0FDOUIsQ0FBQztBQUFFQyxJQUFBQTtBQUFGLEdBQUQsS0FBb0JBLFVBQVUsQ0FBQ0MsT0FERCxDQUFoQztBQUlBSCxFQUFBQSwwQkFBMEIsQ0FBQ0ssT0FBM0IsQ0FBbUNDLElBQUksSUFBSTtBQUN6QyxVQUFNO0FBQUVDLE1BQUFBLElBQUY7QUFBUUwsTUFBQUE7QUFBUixRQUF1QkksSUFBN0I7O0FBRUEsUUFBSSxDQUFDdkIsZ0NBQWdDLENBQUN5QixRQUFqQyxDQUEwQ0QsSUFBMUMsQ0FBTCxFQUFzRDtBQUNwRCxhQUFPWCxNQUFNLENBQ1Ysd0JBQXVCVyxJQUFLLGtDQURsQixDQUFiO0FBR0Q7O0FBRUQsUUFBSTFCLG9DQUFvQyxDQUFDMkIsUUFBckMsQ0FBOENELElBQTlDLENBQUosRUFBeUQ7QUFDdkRSLE1BQUFBLGdCQUFnQixDQUFDVSxJQUFqQixDQUFzQi9CLFdBQVcsQ0FBQzZCLElBQUQsQ0FBWCxDQUFrQmpCLFFBQWxCLENBQTJCWSxVQUEzQixFQUF1Q1QsS0FBdkMsQ0FBdEI7QUFDRCxLQUZELE1BRU87QUFDTE0sTUFBQUEsZ0JBQWdCLENBQUNVLElBQWpCLENBQXNCL0IsV0FBVyxDQUFDNkIsSUFBRCxDQUFYLENBQWtCakIsUUFBbEIsQ0FBMkJZLFVBQTNCLENBQXRCO0FBQ0Q7O0FBRUQsUUFBSUgsZ0JBQWdCLENBQUNGLE1BQWpCLEtBQTRCQyxvQkFBaEMsRUFBc0Q7QUFDcEQsYUFBT0gsT0FBTyxDQUFDSSxnQkFBRCxDQUFkO0FBQ0Q7QUFDRixHQWxCRDtBQW9CQUssRUFBQUEsdUJBQXVCLENBQUNDLE9BQXhCLENBQWdDQyxJQUFJLElBQUk7QUFDdEMsVUFBTTtBQUNKQyxNQUFBQSxJQURJO0FBRUpMLE1BQUFBLFVBRkk7QUFHSkEsTUFBQUEsVUFBVSxFQUFFO0FBQUVDLFFBQUFBO0FBQUY7QUFIUixRQUlGRyxJQUpKO0FBS0EsVUFBTUksYUFBYSxHQUFHLElBQUlqQixLQUFLLENBQUNrQixhQUFWLEVBQXRCOztBQUVBLFFBQUksQ0FBQzVCLGdDQUFnQyxDQUFDeUIsUUFBakMsQ0FBMENELElBQTFDLENBQUwsRUFBc0Q7QUFDcEQsYUFBT1gsTUFBTSxDQUNWLHdCQUF1QlcsSUFBSyxrQ0FEbEIsQ0FBYjtBQUdEOztBQUVERyxJQUFBQSxhQUFhLENBQUNFLElBQWQsQ0FDRVQsT0FERixFQUVFVSxhQUFhLElBQUk7QUFDZmQsTUFBQUEsZ0JBQWdCLENBQUNVLElBQWpCLENBQ0V4QixrQkFBa0IsQ0FBQ0ssUUFBbkIsaUNBRU9ZLFVBRlA7QUFHSVcsUUFBQUE7QUFISixVQUtFcEIsS0FMRixDQURGOztBQVVBLFVBQUlNLGdCQUFnQixDQUFDRixNQUFqQixLQUE0QkMsb0JBQWhDLEVBQXNEO0FBQ3BELGVBQU9ILE9BQU8sQ0FBQ0ksZ0JBQUQsQ0FBZDtBQUNEO0FBQ0YsS0FoQkgsRUFpQkVlLFNBakJGLEVBa0JFbEIsTUFsQkY7QUFvQkQsR0FsQ0Q7QUFtQ0QsQ0FyRUQsQ0FERjtBQXdFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUNBLE1BQU1tQixjQUFjLEdBQUd2QixLQUFLLElBQzFCLElBQUlFLE9BQUosQ0FBWSxDQUFDQyxPQUFELEVBQVVDLE1BQVYsS0FBcUI7QUFDL0IsTUFBSSxDQUFDSixLQUFLLENBQUNLLE1BQVgsRUFBbUI7QUFDakIsV0FBT0YsT0FBTyxDQUFDLEVBQUQsQ0FBZDtBQUNEOztBQUVELFFBQU1xQixrQkFBa0IsR0FBR3hCLEtBQUssQ0FBQ0ssTUFBakM7QUFDQSxRQUFNb0IsY0FBYyxHQUFHLEVBQXZCO0FBRUF6QixFQUFBQSxLQUFLLENBQUNhLE9BQU4sQ0FBY0MsSUFBSSxJQUFJO0FBQ3BCLFVBQU07QUFBRUMsTUFBQUEsSUFBRjtBQUFRTCxNQUFBQTtBQUFSLFFBQXVCSSxJQUE3Qjs7QUFFQSxRQUFJLENBQUN4Qiw4QkFBOEIsQ0FBQzBCLFFBQS9CLENBQXdDRCxJQUF4QyxDQUFMLEVBQW9EO0FBQ2xELGFBQU9YLE1BQU0sQ0FDVixzQkFBcUJXLElBQUssa0NBRGhCLENBQWI7QUFHRDs7QUFFRFUsSUFBQUEsY0FBYyxDQUFDUixJQUFmLENBQW9CaEMsU0FBUyxDQUFDOEIsSUFBRCxDQUFULENBQWdCakIsUUFBaEIsQ0FBeUJZLFVBQXpCLENBQXBCOztBQUVBLFFBQUllLGNBQWMsQ0FBQ3BCLE1BQWYsS0FBMEJtQixrQkFBOUIsRUFBa0Q7QUFDaEQsYUFBT3JCLE9BQU8sQ0FBQ3NCLGNBQUQsQ0FBZDtBQUNEO0FBQ0YsR0FkRDtBQWVELENBdkJELENBREY7O0FBMEJBLE1BQU1DLFlBQVksR0FBRyxDQUFDQyxRQUFELEVBQVdDLE9BQVgsRUFBb0IzQixLQUFwQixFQUEyQk4sY0FBM0IsS0FDbkIsSUFBSU8sT0FBSixDQUFZLENBQUNDLE9BQUQsRUFBVUMsTUFBVixLQUFxQjtBQUMvQixNQUFJLENBQUN1QixRQUFRLENBQUN0QixNQUFkLEVBQXNCO0FBQ3BCLFdBQU9GLE9BQU8sQ0FBQyxFQUFELENBQWQ7QUFDRDs7QUFFRCxRQUFNMEIsWUFBWSxHQUFHLEVBQXJCO0FBQ0EsUUFBTUMsZ0JBQWdCLEdBQUdILFFBQVEsQ0FBQ3RCLE1BQWxDOztBQUVBLE1BQUksQ0FBQ3lCLGdCQUFMLEVBQXVCO0FBQ3JCLFdBQU8zQixPQUFPLENBQUMwQixZQUFELENBQWQ7QUFDRDs7QUFFREYsRUFBQUEsUUFBUSxDQUFDZCxPQUFULENBQWlCQyxJQUFJLElBQUk7QUFDdkIsVUFBTWlCLE9BQU8sR0FBRyxJQUFJSCxPQUFKLEVBQWhCO0FBQ0EsVUFBTTtBQUNKSSxNQUFBQSxJQURJO0FBRUpDLE1BQUFBLFFBRkk7QUFHSkMsTUFBQUEsWUFISTtBQUlKQyxNQUFBQSxVQUpJO0FBS0pDLE1BQUFBLGlCQUFpQixHQUFHLEVBTGhCO0FBTUpDLE1BQUFBLFFBTkk7QUFPSkMsTUFBQUEsY0FBYyxHQUFHQyxRQVBiO0FBUUpDLE1BQUFBLElBQUksR0FBR0Q7QUFSSCxRQVNGekIsSUFUSjtBQVdBaUIsSUFBQUEsT0FBTyxDQUNKVSxPQURILENBQ1c3QyxRQUFRLENBQUNvQyxJQUFELENBRG5CLEVBRUdVLFdBRkgsQ0FFZVQsUUFGZixFQUdHVSxXQUhILENBR2VOLFFBSGY7QUFLQXRDLElBQUFBLGdCQUFnQixDQUFDbUMsWUFBRCxFQUFlakMsS0FBZixDQUFoQixDQUNHMkMsSUFESCxDQUNRckMsZ0JBQWdCLElBQUk7QUFDeEJ3QixNQUFBQSxPQUFPLENBQUNjLGVBQVIsQ0FBd0J0QyxnQkFBeEI7QUFFQSxhQUFPZ0IsY0FBYyxDQUFDWSxVQUFELENBQXJCO0FBQ0QsS0FMSCxFQU1HUyxJQU5ILENBTVFuQixjQUFjLElBQUk7QUFDdEJNLE1BQUFBLE9BQU8sQ0FBQ2UsYUFBUixDQUFzQnJCLGNBQXRCO0FBRUEsYUFBT0YsY0FBYyxDQUFDYSxpQkFBRCxDQUFyQjtBQUNELEtBVkgsRUFXR1EsSUFYSCxDQVdRRyxxQkFBcUIsSUFBSTtBQUM3QmhCLE1BQUFBLE9BQU8sQ0FBQ2lCLG9CQUFSLENBQTZCRCxxQkFBN0I7QUFFQSxhQUFPN0MsT0FBTyxDQUFDQyxPQUFSLENBQWdCNEIsT0FBaEIsQ0FBUDtBQUNELEtBZkgsRUFnQkdhLElBaEJILENBZ0JRYixPQUFPLElBQUk7QUFDZkYsTUFBQUEsWUFBWSxDQUFDWixJQUFiLENBQ0V0QixjQUFjLEdBQ1ZvQyxPQUFPLENBQUNrQixJQUFSLENBQWFYLGNBQWIsRUFBNkJFLElBQTdCLENBRFUsR0FFVlQsT0FBTyxDQUFDbUIsaUJBQVIsQ0FBMEJaLGNBQTFCLEVBQTBDYSxPQUExQyxDQUFrRFgsSUFBbEQsQ0FITjs7QUFNQSxVQUFJWCxZQUFZLENBQUN4QixNQUFiLEtBQXdCeUIsZ0JBQTVCLEVBQThDO0FBQzVDLGVBQU8zQixPQUFPLENBQUMwQixZQUFELENBQWQ7QUFDRDtBQUNGLEtBMUJILEVBMkJHdUIsS0EzQkgsQ0EyQlNoRCxNQTNCVDtBQTRCRCxHQTlDRDtBQStDRCxDQTNERCxDQURGO0FBOERBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFDQSxnQkFBZSxDQUFDUCxJQUFELEVBQU9JLEtBQVAsRUFBY29ELE1BQWQsRUFBc0J6QixPQUF0QixFQUErQjBCLE9BQU8sR0FBRyxFQUF6QyxLQUNiLElBQUlwRCxPQUFKLENBQVksQ0FBQ0MsT0FBRCxFQUFVQyxNQUFWLEtBQXFCO0FBQy9CLFFBQU07QUFDSm1ELElBQUFBLFlBQVksR0FBR25FLFFBRFg7QUFFSm9FLElBQUFBLGVBQWUsR0FBR3JFLEtBRmQ7QUFHSndDLElBQUFBLFFBQVEsR0FBRztBQUhQLE1BSUY5QixJQUpKO0FBS0EsUUFBTTRELE1BQU0sR0FBRyxJQUFJSixNQUFKLENBQVdFLFlBQVgsRUFBeUJDLGVBQXpCLENBQWY7O0FBQ0EsUUFBTTtBQUFFN0QsSUFBQUE7QUFBRixzQ0FBMEJELGVBQTFCLEdBQThDNEQsT0FBOUMsQ0FBTjs7QUFFQTVCLEVBQUFBLFlBQVksQ0FBQ0MsUUFBRCxFQUFXQyxPQUFYLEVBQW9CM0IsS0FBcEIsRUFBMkJOLGNBQTNCLENBQVosQ0FDR2lELElBREgsQ0FDUWYsWUFBWSxJQUFJO0FBQ3BCLFVBQU1DLGdCQUFnQixHQUFHRCxZQUFZLENBQUN4QixNQUF0Qzs7QUFFQSxRQUFJLENBQUN5QixnQkFBTCxFQUF1QjtBQUNyQixhQUFPM0IsT0FBTyxDQUFDc0QsTUFBRCxDQUFkO0FBQ0Q7O0FBRUQ1QixJQUFBQSxZQUFZLENBQUNoQixPQUFiLENBQXFCNkMsV0FBVyxJQUFJO0FBQ2xDRCxNQUFBQSxNQUFNLENBQUNFLFVBQVAsQ0FBa0JELFdBQWxCOztBQUVBLFVBQUlELE1BQU0sQ0FBQzlCLFFBQVAsQ0FBZ0J0QixNQUFoQixLQUEyQnlCLGdCQUEvQixFQUFpRDtBQUMvQzNCLFFBQUFBLE9BQU8sQ0FBQ3NELE1BQUQsQ0FBUDtBQUNEO0FBQ0YsS0FORDtBQU9ELEdBZkgsRUFnQkdMLEtBaEJILENBZ0JTaEQsTUFoQlQ7QUFpQkQsQ0ExQkQsQ0FERiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIEJlaGF2aW91ciBmcm9tICcuLi9iZWhhdmlvdXInO1xuaW1wb3J0ICogYXMgSW5pdGlhbGl6ZXIgZnJvbSAnLi4vaW5pdGlhbGl6ZXInO1xuXG5pbXBvcnQgeyBFVUxFUiwgUE9PTF9NQVggfSBmcm9tICcuLi9jb25zdGFudHMnO1xuaW1wb3J0IHtcbiAgSU5JVElBTElaRVJfVFlQRVNfVEhBVF9SRVFVSVJFX1RIUkVFLFxuICBTVVBQT1JURURfSlNPTl9CRUhBVklPVVJfVFlQRVMsXG4gIFNVUFBPUlRFRF9KU09OX0lOSVRJQUxJWkVSX1RZUEVTLFxufSBmcm9tICcuL2NvbnN0YW50cyc7XG5cbmltcG9ydCBSYXRlIGZyb20gJy4uL2luaXRpYWxpemVyL1JhdGUnO1xuaW1wb3J0IFRleHR1cmVJbml0aWFsaXplciBmcm9tICcuLi9pbml0aWFsaXplci9UZXh0dXJlJztcblxuY29uc3QgREVGQVVMVF9PUFRJT05TID0geyBzaG91bGRBdXRvRW1pdDogdHJ1ZSB9O1xuXG4vKipcbiAqIE1ha2VzIGEgcmF0ZSBpbnN0YW5jZS5cbiAqXG4gKiBAcGFyYW0ge29iamVjdH0ganNvbiAtIFRoZSBkYXRhIHJlcXVpcmVkIHRvIGNvbnN0cnVjdCBhIFJhdGUgaW5zdGFuY2VcbiAqIEByZXR1cm4ge1JhdGV9XG4gKi9cbmNvbnN0IG1ha2VSYXRlID0ganNvbiA9PiBSYXRlLmZyb21KU09OKGpzb24pO1xuXG4vKipcbiAqIE1ha2VzIGluaXRpYWxpemVycyBmcm9tIGpzb24gaXRlbXMuXG4gKlxuICogQHBhcmFtIHthcnJheTxvYmplY3Q+fSBpdGVtcyAtIEFuIGFycmF5IG9mIG9iamVjdHMgd2hpY2ggcHJvdmlkZSBpbml0aWFsaXplciBjb25zdHJ1Y3RvciBwYXJhbXNcbiAqIEBwYXJhbSB7b2JqZWN0fSBUSFJFRSAtIFRoZSBXZWIgR0wgQXBpIHRvIHVzZVxuICogQHJldHVybiB7YXJyYXk8SW5pdGlhbGl6ZXI+fVxuICovXG5jb25zdCBtYWtlSW5pdGlhbGl6ZXJzID0gKGl0ZW1zLCBUSFJFRSkgPT5cbiAgbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgIGlmICghaXRlbXMubGVuZ3RoKSB7XG4gICAgICByZXR1cm4gcmVzb2x2ZShbXSk7XG4gICAgfVxuXG4gICAgY29uc3QgbnVtYmVyT2ZJbml0aWFsaXplcnMgPSBpdGVtcy5sZW5ndGg7XG4gICAgY29uc3QgbWFkZUluaXRpYWxpemVycyA9IFtdO1xuICAgIGNvbnN0IGRvTm90UmVxdWlyZVRleHR1cmVMb2FkaW5nID0gaXRlbXMuZmlsdGVyKFxuICAgICAgKHsgcHJvcGVydGllcyB9KSA9PiAhcHJvcGVydGllcy50ZXh0dXJlXG4gICAgKTtcbiAgICBjb25zdCBkb1JlcXVpcmVUZXh0dXJlTG9hZGluZyA9IGl0ZW1zLmZpbHRlcihcbiAgICAgICh7IHByb3BlcnRpZXMgfSkgPT4gcHJvcGVydGllcy50ZXh0dXJlXG4gICAgKTtcblxuICAgIGRvTm90UmVxdWlyZVRleHR1cmVMb2FkaW5nLmZvckVhY2goZGF0YSA9PiB7XG4gICAgICBjb25zdCB7IHR5cGUsIHByb3BlcnRpZXMgfSA9IGRhdGE7XG5cbiAgICAgIGlmICghU1VQUE9SVEVEX0pTT05fSU5JVElBTElaRVJfVFlQRVMuaW5jbHVkZXModHlwZSkpIHtcbiAgICAgICAgcmV0dXJuIHJlamVjdChcbiAgICAgICAgICBgVGhlIGluaXRpYWxpemVyIHR5cGUgJHt0eXBlfSBpcyBpbnZhbGlkIG9yIG5vdCB5ZXQgc3VwcG9ydGVkYFxuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICBpZiAoSU5JVElBTElaRVJfVFlQRVNfVEhBVF9SRVFVSVJFX1RIUkVFLmluY2x1ZGVzKHR5cGUpKSB7XG4gICAgICAgIG1hZGVJbml0aWFsaXplcnMucHVzaChJbml0aWFsaXplclt0eXBlXS5mcm9tSlNPTihwcm9wZXJ0aWVzLCBUSFJFRSkpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbWFkZUluaXRpYWxpemVycy5wdXNoKEluaXRpYWxpemVyW3R5cGVdLmZyb21KU09OKHByb3BlcnRpZXMpKTtcbiAgICAgIH1cblxuICAgICAgaWYgKG1hZGVJbml0aWFsaXplcnMubGVuZ3RoID09PSBudW1iZXJPZkluaXRpYWxpemVycykge1xuICAgICAgICByZXR1cm4gcmVzb2x2ZShtYWRlSW5pdGlhbGl6ZXJzKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGRvUmVxdWlyZVRleHR1cmVMb2FkaW5nLmZvckVhY2goZGF0YSA9PiB7XG4gICAgICBjb25zdCB7XG4gICAgICAgIHR5cGUsXG4gICAgICAgIHByb3BlcnRpZXMsXG4gICAgICAgIHByb3BlcnRpZXM6IHsgdGV4dHVyZSB9LFxuICAgICAgfSA9IGRhdGE7XG4gICAgICBjb25zdCB0ZXh0dXJlTG9hZGVyID0gbmV3IFRIUkVFLlRleHR1cmVMb2FkZXIoKTtcblxuICAgICAgaWYgKCFTVVBQT1JURURfSlNPTl9JTklUSUFMSVpFUl9UWVBFUy5pbmNsdWRlcyh0eXBlKSkge1xuICAgICAgICByZXR1cm4gcmVqZWN0KFxuICAgICAgICAgIGBUaGUgaW5pdGlhbGl6ZXIgdHlwZSAke3R5cGV9IGlzIGludmFsaWQgb3Igbm90IHlldCBzdXBwb3J0ZWRgXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIHRleHR1cmVMb2FkZXIubG9hZChcbiAgICAgICAgdGV4dHVyZSxcbiAgICAgICAgbG9hZGVkVGV4dHVyZSA9PiB7XG4gICAgICAgICAgbWFkZUluaXRpYWxpemVycy5wdXNoKFxuICAgICAgICAgICAgVGV4dHVyZUluaXRpYWxpemVyLmZyb21KU09OKFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgLi4ucHJvcGVydGllcyxcbiAgICAgICAgICAgICAgICBsb2FkZWRUZXh0dXJlLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBUSFJFRVxuICAgICAgICAgICAgKVxuICAgICAgICAgICk7XG5cbiAgICAgICAgICBpZiAobWFkZUluaXRpYWxpemVycy5sZW5ndGggPT09IG51bWJlck9mSW5pdGlhbGl6ZXJzKSB7XG4gICAgICAgICAgICByZXR1cm4gcmVzb2x2ZShtYWRlSW5pdGlhbGl6ZXJzKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHVuZGVmaW5lZCxcbiAgICAgICAgcmVqZWN0XG4gICAgICApO1xuICAgIH0pO1xuICB9KTtcblxuLyoqXG4gKiBNYWtlcyBiZWhhdmlvdXJzIGZyb20ganNvbiBpdGVtcy5cbiAqXG4gKiBAcGFyYW0ge2FycmF5PG9iamVjdD59IGl0ZW1zIC0gQW4gYXJyYXkgb2Ygb2JqZWN0cyB3aGljaCBwcm92aWRlIGJlaGF2aW91ciBjb25zdHJ1Y3RvciBwYXJhbXNcbiAqIEByZXR1cm4ge1Byb21pc2U8YXJyYXk+fVxuICovXG5jb25zdCBtYWtlQmVoYXZpb3VycyA9IGl0ZW1zID0+XG4gIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICBpZiAoIWl0ZW1zLmxlbmd0aCkge1xuICAgICAgcmV0dXJuIHJlc29sdmUoW10pO1xuICAgIH1cblxuICAgIGNvbnN0IG51bWJlck9mQmVoYXZpb3VycyA9IGl0ZW1zLmxlbmd0aDtcbiAgICBjb25zdCBtYWRlQmVoYXZpb3VycyA9IFtdO1xuXG4gICAgaXRlbXMuZm9yRWFjaChkYXRhID0+IHtcbiAgICAgIGNvbnN0IHsgdHlwZSwgcHJvcGVydGllcyB9ID0gZGF0YTtcblxuICAgICAgaWYgKCFTVVBQT1JURURfSlNPTl9CRUhBVklPVVJfVFlQRVMuaW5jbHVkZXModHlwZSkpIHtcbiAgICAgICAgcmV0dXJuIHJlamVjdChcbiAgICAgICAgICBgVGhlIGJlaGF2aW91ciB0eXBlICR7dHlwZX0gaXMgaW52YWxpZCBvciBub3QgeWV0IHN1cHBvcnRlZGBcbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgbWFkZUJlaGF2aW91cnMucHVzaChCZWhhdmlvdXJbdHlwZV0uZnJvbUpTT04ocHJvcGVydGllcykpO1xuXG4gICAgICBpZiAobWFkZUJlaGF2aW91cnMubGVuZ3RoID09PSBudW1iZXJPZkJlaGF2aW91cnMpIHtcbiAgICAgICAgcmV0dXJuIHJlc29sdmUobWFkZUJlaGF2aW91cnMpO1xuICAgICAgfVxuICAgIH0pO1xuICB9KTtcblxuY29uc3QgbWFrZUVtaXR0ZXJzID0gKGVtaXR0ZXJzLCBFbWl0dGVyLCBUSFJFRSwgc2hvdWxkQXV0b0VtaXQpID0+XG4gIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICBpZiAoIWVtaXR0ZXJzLmxlbmd0aCkge1xuICAgICAgcmV0dXJuIHJlc29sdmUoW10pO1xuICAgIH1cblxuICAgIGNvbnN0IG1hZGVFbWl0dGVycyA9IFtdO1xuICAgIGNvbnN0IG51bWJlck9mRW1pdHRlcnMgPSBlbWl0dGVycy5sZW5ndGg7XG5cbiAgICBpZiAoIW51bWJlck9mRW1pdHRlcnMpIHtcbiAgICAgIHJldHVybiByZXNvbHZlKG1hZGVFbWl0dGVycyk7XG4gICAgfVxuXG4gICAgZW1pdHRlcnMuZm9yRWFjaChkYXRhID0+IHtcbiAgICAgIGNvbnN0IGVtaXR0ZXIgPSBuZXcgRW1pdHRlcigpO1xuICAgICAgY29uc3Qge1xuICAgICAgICByYXRlLFxuICAgICAgICByb3RhdGlvbixcbiAgICAgICAgaW5pdGlhbGl6ZXJzLFxuICAgICAgICBiZWhhdmlvdXJzLFxuICAgICAgICBlbWl0dGVyQmVoYXZpb3VycyA9IFtdLFxuICAgICAgICBwb3NpdGlvbixcbiAgICAgICAgdG90YWxFbWl0VGltZXMgPSBJbmZpbml0eSxcbiAgICAgICAgbGlmZSA9IEluZmluaXR5LFxuICAgICAgfSA9IGRhdGE7XG5cbiAgICAgIGVtaXR0ZXJcbiAgICAgICAgLnNldFJhdGUobWFrZVJhdGUocmF0ZSkpXG4gICAgICAgIC5zZXRSb3RhdGlvbihyb3RhdGlvbilcbiAgICAgICAgLnNldFBvc2l0aW9uKHBvc2l0aW9uKTtcblxuICAgICAgbWFrZUluaXRpYWxpemVycyhpbml0aWFsaXplcnMsIFRIUkVFKVxuICAgICAgICAudGhlbihtYWRlSW5pdGlhbGl6ZXJzID0+IHtcbiAgICAgICAgICBlbWl0dGVyLnNldEluaXRpYWxpemVycyhtYWRlSW5pdGlhbGl6ZXJzKTtcblxuICAgICAgICAgIHJldHVybiBtYWtlQmVoYXZpb3VycyhiZWhhdmlvdXJzKTtcbiAgICAgICAgfSlcbiAgICAgICAgLnRoZW4obWFkZUJlaGF2aW91cnMgPT4ge1xuICAgICAgICAgIGVtaXR0ZXIuc2V0QmVoYXZpb3VycyhtYWRlQmVoYXZpb3Vycyk7XG5cbiAgICAgICAgICByZXR1cm4gbWFrZUJlaGF2aW91cnMoZW1pdHRlckJlaGF2aW91cnMpO1xuICAgICAgICB9KVxuICAgICAgICAudGhlbihtYWRlRW1pdHRlckJlaGF2aW91cnMgPT4ge1xuICAgICAgICAgIGVtaXR0ZXIuc2V0RW1pdHRlckJlaGF2aW91cnMobWFkZUVtaXR0ZXJCZWhhdmlvdXJzKTtcblxuICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoZW1pdHRlcik7XG4gICAgICAgIH0pXG4gICAgICAgIC50aGVuKGVtaXR0ZXIgPT4ge1xuICAgICAgICAgIG1hZGVFbWl0dGVycy5wdXNoKFxuICAgICAgICAgICAgc2hvdWxkQXV0b0VtaXRcbiAgICAgICAgICAgICAgPyBlbWl0dGVyLmVtaXQodG90YWxFbWl0VGltZXMsIGxpZmUpXG4gICAgICAgICAgICAgIDogZW1pdHRlci5zZXRUb3RhbEVtaXRUaW1lcyh0b3RhbEVtaXRUaW1lcykuc2V0TGlmZShsaWZlKVxuICAgICAgICAgICk7XG5cbiAgICAgICAgICBpZiAobWFkZUVtaXR0ZXJzLmxlbmd0aCA9PT0gbnVtYmVyT2ZFbWl0dGVycykge1xuICAgICAgICAgICAgcmV0dXJuIHJlc29sdmUobWFkZUVtaXR0ZXJzKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgICAgIC5jYXRjaChyZWplY3QpO1xuICAgIH0pO1xuICB9KTtcblxuLyoqXG4gKiBDcmVhdGVzIGEgU3lzdGVtIGluc3RhbmNlIGZyb20gYSBKU09OIG9iamVjdC5cbiAqXG4gKiBAcGFyYW0ge29iamVjdH0ganNvbiAtIFRoZSBKU09OIHRvIGNyZWF0ZSB0aGUgU3lzdGVtIGluc3RhbmNlIGZyb21cbiAqIEBwYXJhbSB7bnVtYmVyfSBqc29uLnByZVBhcnRpY2xlcyAtIFRoZSBwcmVkZXRlcm1pbmVkIG51bWJlciBvZiBwYXJ0aWNsZXNcbiAqIEBwYXJhbSB7c3RyaW5nfSBqc29uLmludGVncmF0aW9uVHlwZSAtIFRoZSBpbnRlZ3JhdGlvbiBhbGdvcml0aG0gdG8gdXNlXG4gKiBAcGFyYW0ge2FycmF5PG9iamVjdD59IGpzb24uZW1pdHRlcnMgLSBUaGUgZW1pdHRlcnMgZm9yIHRoZSBzeXN0ZW0gaW5zdGFuY2VcbiAqIEBwYXJhbSB7b2JqZWN0fSBUSFJFRSAtIFRoZSBXZWIgR0wgQXBpIHRvIHVzZVxuICogQHBhcmFtIHtmdW5jdGlvbn0gU3lzdGVtIC0gVGhlIHN5c3RlbSBjbGFzc1xuICogQHBhcmFtIHtmdW5jdGlvbn0gRW1pdHRlciAtIFRoZSBlbWl0dGVyIGNsYXNzXG4gKiBAcGFyYW0ge29iamVjdH0gW29wdGlvbnM9e31dIC0gT3B0aW9uYWwgY29uZmlnIG9wdGlvbnNcbiAqIEByZXR1cm4ge1Byb21pc2U8U3lzdGVtPn1cbiAqL1xuZXhwb3J0IGRlZmF1bHQgKGpzb24sIFRIUkVFLCBTeXN0ZW0sIEVtaXR0ZXIsIG9wdGlvbnMgPSB7fSkgPT5cbiAgbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgIGNvbnN0IHtcbiAgICAgIHByZVBhcnRpY2xlcyA9IFBPT0xfTUFYLFxuICAgICAgaW50ZWdyYXRpb25UeXBlID0gRVVMRVIsXG4gICAgICBlbWl0dGVycyA9IFtdLFxuICAgIH0gPSBqc29uO1xuICAgIGNvbnN0IHN5c3RlbSA9IG5ldyBTeXN0ZW0ocHJlUGFydGljbGVzLCBpbnRlZ3JhdGlvblR5cGUpO1xuICAgIGNvbnN0IHsgc2hvdWxkQXV0b0VtaXQgfSA9IHsgLi4uREVGQVVMVF9PUFRJT05TLCAuLi5vcHRpb25zIH07XG5cbiAgICBtYWtlRW1pdHRlcnMoZW1pdHRlcnMsIEVtaXR0ZXIsIFRIUkVFLCBzaG91bGRBdXRvRW1pdClcbiAgICAgIC50aGVuKG1hZGVFbWl0dGVycyA9PiB7XG4gICAgICAgIGNvbnN0IG51bWJlck9mRW1pdHRlcnMgPSBtYWRlRW1pdHRlcnMubGVuZ3RoO1xuXG4gICAgICAgIGlmICghbnVtYmVyT2ZFbWl0dGVycykge1xuICAgICAgICAgIHJldHVybiByZXNvbHZlKHN5c3RlbSk7XG4gICAgICAgIH1cblxuICAgICAgICBtYWRlRW1pdHRlcnMuZm9yRWFjaChtYWRlRW1pdHRlciA9PiB7XG4gICAgICAgICAgc3lzdGVtLmFkZEVtaXR0ZXIobWFkZUVtaXR0ZXIpO1xuXG4gICAgICAgICAgaWYgKHN5c3RlbS5lbWl0dGVycy5sZW5ndGggPT09IG51bWJlck9mRW1pdHRlcnMpIHtcbiAgICAgICAgICAgIHJlc29sdmUoc3lzdGVtKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfSlcbiAgICAgIC5jYXRjaChyZWplY3QpO1xuICB9KTtcbiJdfQ== ================================================ FILE: packages/sdk/lib/core/libs/three-nebula/core/index.js ================================================ export { default as Particle } from './Particle'; export { default as Pool } from './Pool'; export { default as System } from './System'; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb3JlL2luZGV4LmpzIl0sIm5hbWVzIjpbImRlZmF1bHQiLCJQYXJ0aWNsZSIsIlBvb2wiLCJTeXN0ZW0iXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLE9BQU8sSUFBSUMsUUFBcEIsUUFBb0MsWUFBcEM7QUFDQSxTQUFTRCxPQUFPLElBQUlFLElBQXBCLFFBQWdDLFFBQWhDO0FBQ0EsU0FBU0YsT0FBTyxJQUFJRyxNQUFwQixRQUFrQyxVQUFsQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IGRlZmF1bHQgYXMgUGFydGljbGUgfSBmcm9tICcuL1BhcnRpY2xlJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgUG9vbCB9IGZyb20gJy4vUG9vbCc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFN5c3RlbSB9IGZyb20gJy4vU3lzdGVtJztcbiJdfQ== ================================================ FILE: packages/sdk/lib/core/libs/three-nebula/core/three/Euler.js ================================================ import { Quaternion } from './Quaternion.js'; import { Vector3 } from './Vector3.js'; import { Matrix4 } from './Matrix4.js'; import { _Math } from './Math.js'; /** * @author mrdoob / http://mrdoob.com/ * @author WestLangley / http://github.com/WestLangley * @author bhouston / http://clara.io */ function Euler(x, y, z, order) { this._x = x || 0; this._y = y || 0; this._z = z || 0; this._order = order || Euler.DefaultOrder; } Euler.RotationOrders = ['XYZ', 'YZX', 'ZXY', 'XZY', 'YXZ', 'ZYX']; Euler.DefaultOrder = 'XYZ'; Object.defineProperties(Euler.prototype, { x: { get: function () { return this._x; }, set: function (value) { this._x = value; this._onChangeCallback(); } }, y: { get: function () { return this._y; }, set: function (value) { this._y = value; this._onChangeCallback(); } }, z: { get: function () { return this._z; }, set: function (value) { this._z = value; this._onChangeCallback(); } }, order: { get: function () { return this._order; }, set: function (value) { this._order = value; this._onChangeCallback(); } } }); Object.assign(Euler.prototype, { isEuler: true, set: function (x, y, z, order) { this._x = x; this._y = y; this._z = z; this._order = order || this._order; this._onChangeCallback(); return this; }, clone: function () { return new this.constructor(this._x, this._y, this._z, this._order); }, copy: function (euler) { this._x = euler._x; this._y = euler._y; this._z = euler._z; this._order = euler._order; this._onChangeCallback(); return this; }, setFromRotationMatrix: function (m, order, update) { var clamp = _Math.clamp; // assumes the upper 3x3 of m is a pure rotation matrix (i.e, unscaled) var te = m.elements; var m11 = te[0], m12 = te[4], m13 = te[8]; var m21 = te[1], m22 = te[5], m23 = te[9]; var m31 = te[2], m32 = te[6], m33 = te[10]; order = order || this._order; if (order === 'XYZ') { this._y = Math.asin(clamp(m13, -1, 1)); if (Math.abs(m13) < 0.99999) { this._x = Math.atan2(-m23, m33); this._z = Math.atan2(-m12, m11); } else { this._x = Math.atan2(m32, m22); this._z = 0; } } else if (order === 'YXZ') { this._x = Math.asin(-clamp(m23, -1, 1)); if (Math.abs(m23) < 0.99999) { this._y = Math.atan2(m13, m33); this._z = Math.atan2(m21, m22); } else { this._y = Math.atan2(-m31, m11); this._z = 0; } } else if (order === 'ZXY') { this._x = Math.asin(clamp(m32, -1, 1)); if (Math.abs(m32) < 0.99999) { this._y = Math.atan2(-m31, m33); this._z = Math.atan2(-m12, m22); } else { this._y = 0; this._z = Math.atan2(m21, m11); } } else if (order === 'ZYX') { this._y = Math.asin(-clamp(m31, -1, 1)); if (Math.abs(m31) < 0.99999) { this._x = Math.atan2(m32, m33); this._z = Math.atan2(m21, m11); } else { this._x = 0; this._z = Math.atan2(-m12, m22); } } else if (order === 'YZX') { this._z = Math.asin(clamp(m21, -1, 1)); if (Math.abs(m21) < 0.99999) { this._x = Math.atan2(-m23, m22); this._y = Math.atan2(-m31, m11); } else { this._x = 0; this._y = Math.atan2(m13, m33); } } else if (order === 'XZY') { this._z = Math.asin(-clamp(m12, -1, 1)); if (Math.abs(m12) < 0.99999) { this._x = Math.atan2(m32, m22); this._y = Math.atan2(m13, m11); } else { this._x = Math.atan2(-m23, m33); this._y = 0; } } else { console.warn('THREE.Euler: .setFromRotationMatrix() given unsupported order: ' + order); } this._order = order; if (update !== false) this._onChangeCallback(); return this; }, setFromQuaternion: function () { var matrix = new Matrix4(); return function setFromQuaternion(q, order, update) { matrix.makeRotationFromQuaternion(q); return this.setFromRotationMatrix(matrix, order, update); }; }(), setFromVector3: function (v, order) { return this.set(v.x, v.y, v.z, order || this._order); }, reorder: function () { // WARNING: this discards revolution information -bhouston var q = new Quaternion(); return function reorder(newOrder) { q.setFromEuler(this); return this.setFromQuaternion(q, newOrder); }; }(), equals: function (euler) { return euler._x === this._x && euler._y === this._y && euler._z === this._z && euler._order === this._order; }, fromArray: function (array) { this._x = array[0]; this._y = array[1]; this._z = array[2]; if (array[3] !== undefined) this._order = array[3]; this._onChangeCallback(); return this; }, toArray: function (array, offset) { if (array === undefined) array = []; if (offset === undefined) offset = 0; array[offset] = this._x; array[offset + 1] = this._y; array[offset + 2] = this._z; array[offset + 3] = this._order; return array; }, toVector3: function (optionalResult) { if (optionalResult) { return optionalResult.set(this._x, this._y, this._z); } else { return new Vector3(this._x, this._y, this._z); } }, _onChange: function (callback) { this._onChangeCallback = callback; return this; }, _onChangeCallback: function () {} }); export { Euler }; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb3JlL3RocmVlL0V1bGVyLmpzIl0sIm5hbWVzIjpbIlF1YXRlcm5pb24iLCJWZWN0b3IzIiwiTWF0cml4NCIsIl9NYXRoIiwiRXVsZXIiLCJ4IiwieSIsInoiLCJvcmRlciIsIl94IiwiX3kiLCJfeiIsIl9vcmRlciIsIkRlZmF1bHRPcmRlciIsIlJvdGF0aW9uT3JkZXJzIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydGllcyIsInByb3RvdHlwZSIsImdldCIsInNldCIsInZhbHVlIiwiX29uQ2hhbmdlQ2FsbGJhY2siLCJhc3NpZ24iLCJpc0V1bGVyIiwiY2xvbmUiLCJjb25zdHJ1Y3RvciIsImNvcHkiLCJldWxlciIsInNldEZyb21Sb3RhdGlvbk1hdHJpeCIsIm0iLCJ1cGRhdGUiLCJjbGFtcCIsInRlIiwiZWxlbWVudHMiLCJtMTEiLCJtMTIiLCJtMTMiLCJtMjEiLCJtMjIiLCJtMjMiLCJtMzEiLCJtMzIiLCJtMzMiLCJNYXRoIiwiYXNpbiIsImFicyIsImF0YW4yIiwiY29uc29sZSIsIndhcm4iLCJzZXRGcm9tUXVhdGVybmlvbiIsIm1hdHJpeCIsInEiLCJtYWtlUm90YXRpb25Gcm9tUXVhdGVybmlvbiIsInNldEZyb21WZWN0b3IzIiwidiIsInJlb3JkZXIiLCJuZXdPcmRlciIsInNldEZyb21FdWxlciIsImVxdWFscyIsImZyb21BcnJheSIsImFycmF5IiwidW5kZWZpbmVkIiwidG9BcnJheSIsIm9mZnNldCIsInRvVmVjdG9yMyIsIm9wdGlvbmFsUmVzdWx0IiwiX29uQ2hhbmdlIiwiY2FsbGJhY2siXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLFVBQVQsUUFBMkIsaUJBQTNCO0FBQ0EsU0FBU0MsT0FBVCxRQUF3QixjQUF4QjtBQUNBLFNBQVNDLE9BQVQsUUFBd0IsY0FBeEI7QUFDQSxTQUFTQyxLQUFULFFBQXNCLFdBQXRCO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxTQUFTQyxLQUFULENBQWdCQyxDQUFoQixFQUFtQkMsQ0FBbkIsRUFBc0JDLENBQXRCLEVBQXlCQyxLQUF6QixFQUFpQztBQUVoQyxPQUFLQyxFQUFMLEdBQVVKLENBQUMsSUFBSSxDQUFmO0FBQ0EsT0FBS0ssRUFBTCxHQUFVSixDQUFDLElBQUksQ0FBZjtBQUNBLE9BQUtLLEVBQUwsR0FBVUosQ0FBQyxJQUFJLENBQWY7QUFDQSxPQUFLSyxNQUFMLEdBQWNKLEtBQUssSUFBSUosS0FBSyxDQUFDUyxZQUE3QjtBQUVBOztBQUVEVCxLQUFLLENBQUNVLGNBQU4sR0FBdUIsQ0FBRSxLQUFGLEVBQVMsS0FBVCxFQUFnQixLQUFoQixFQUF1QixLQUF2QixFQUE4QixLQUE5QixFQUFxQyxLQUFyQyxDQUF2QjtBQUVBVixLQUFLLENBQUNTLFlBQU4sR0FBcUIsS0FBckI7QUFFQUUsTUFBTSxDQUFDQyxnQkFBUCxDQUF5QlosS0FBSyxDQUFDYSxTQUEvQixFQUEwQztBQUV6Q1osRUFBQUEsQ0FBQyxFQUFFO0FBRUZhLElBQUFBLEdBQUcsRUFBRSxZQUFZO0FBRWhCLGFBQU8sS0FBS1QsRUFBWjtBQUVBLEtBTkM7QUFRRlUsSUFBQUEsR0FBRyxFQUFFLFVBQVdDLEtBQVgsRUFBbUI7QUFFdkIsV0FBS1gsRUFBTCxHQUFVVyxLQUFWOztBQUNBLFdBQUtDLGlCQUFMO0FBRUE7QUFiQyxHQUZzQztBQW1CekNmLEVBQUFBLENBQUMsRUFBRTtBQUVGWSxJQUFBQSxHQUFHLEVBQUUsWUFBWTtBQUVoQixhQUFPLEtBQUtSLEVBQVo7QUFFQSxLQU5DO0FBUUZTLElBQUFBLEdBQUcsRUFBRSxVQUFXQyxLQUFYLEVBQW1CO0FBRXZCLFdBQUtWLEVBQUwsR0FBVVUsS0FBVjs7QUFDQSxXQUFLQyxpQkFBTDtBQUVBO0FBYkMsR0FuQnNDO0FBb0N6Q2QsRUFBQUEsQ0FBQyxFQUFFO0FBRUZXLElBQUFBLEdBQUcsRUFBRSxZQUFZO0FBRWhCLGFBQU8sS0FBS1AsRUFBWjtBQUVBLEtBTkM7QUFRRlEsSUFBQUEsR0FBRyxFQUFFLFVBQVdDLEtBQVgsRUFBbUI7QUFFdkIsV0FBS1QsRUFBTCxHQUFVUyxLQUFWOztBQUNBLFdBQUtDLGlCQUFMO0FBRUE7QUFiQyxHQXBDc0M7QUFxRHpDYixFQUFBQSxLQUFLLEVBQUU7QUFFTlUsSUFBQUEsR0FBRyxFQUFFLFlBQVk7QUFFaEIsYUFBTyxLQUFLTixNQUFaO0FBRUEsS0FOSztBQVFOTyxJQUFBQSxHQUFHLEVBQUUsVUFBV0MsS0FBWCxFQUFtQjtBQUV2QixXQUFLUixNQUFMLEdBQWNRLEtBQWQ7O0FBQ0EsV0FBS0MsaUJBQUw7QUFFQTtBQWJLO0FBckRrQyxDQUExQztBQXdFQU4sTUFBTSxDQUFDTyxNQUFQLENBQWVsQixLQUFLLENBQUNhLFNBQXJCLEVBQWdDO0FBRS9CTSxFQUFBQSxPQUFPLEVBQUUsSUFGc0I7QUFJL0JKLEVBQUFBLEdBQUcsRUFBRSxVQUFXZCxDQUFYLEVBQWNDLENBQWQsRUFBaUJDLENBQWpCLEVBQW9CQyxLQUFwQixFQUE0QjtBQUVoQyxTQUFLQyxFQUFMLEdBQVVKLENBQVY7QUFDQSxTQUFLSyxFQUFMLEdBQVVKLENBQVY7QUFDQSxTQUFLSyxFQUFMLEdBQVVKLENBQVY7QUFDQSxTQUFLSyxNQUFMLEdBQWNKLEtBQUssSUFBSSxLQUFLSSxNQUE1Qjs7QUFFQSxTQUFLUyxpQkFBTDs7QUFFQSxXQUFPLElBQVA7QUFFQSxHQWY4QjtBQWlCL0JHLEVBQUFBLEtBQUssRUFBRSxZQUFZO0FBRWxCLFdBQU8sSUFBSSxLQUFLQyxXQUFULENBQXNCLEtBQUtoQixFQUEzQixFQUErQixLQUFLQyxFQUFwQyxFQUF3QyxLQUFLQyxFQUE3QyxFQUFpRCxLQUFLQyxNQUF0RCxDQUFQO0FBRUEsR0FyQjhCO0FBdUIvQmMsRUFBQUEsSUFBSSxFQUFFLFVBQVdDLEtBQVgsRUFBbUI7QUFFeEIsU0FBS2xCLEVBQUwsR0FBVWtCLEtBQUssQ0FBQ2xCLEVBQWhCO0FBQ0EsU0FBS0MsRUFBTCxHQUFVaUIsS0FBSyxDQUFDakIsRUFBaEI7QUFDQSxTQUFLQyxFQUFMLEdBQVVnQixLQUFLLENBQUNoQixFQUFoQjtBQUNBLFNBQUtDLE1BQUwsR0FBY2UsS0FBSyxDQUFDZixNQUFwQjs7QUFFQSxTQUFLUyxpQkFBTDs7QUFFQSxXQUFPLElBQVA7QUFFQSxHQWxDOEI7QUFvQy9CTyxFQUFBQSxxQkFBcUIsRUFBRSxVQUFXQyxDQUFYLEVBQWNyQixLQUFkLEVBQXFCc0IsTUFBckIsRUFBOEI7QUFFcEQsUUFBSUMsS0FBSyxHQUFHNUIsS0FBSyxDQUFDNEIsS0FBbEIsQ0FGb0QsQ0FJcEQ7O0FBRUEsUUFBSUMsRUFBRSxHQUFHSCxDQUFDLENBQUNJLFFBQVg7QUFDQSxRQUFJQyxHQUFHLEdBQUdGLEVBQUUsQ0FBRSxDQUFGLENBQVo7QUFBQSxRQUFtQkcsR0FBRyxHQUFHSCxFQUFFLENBQUUsQ0FBRixDQUEzQjtBQUFBLFFBQWtDSSxHQUFHLEdBQUdKLEVBQUUsQ0FBRSxDQUFGLENBQTFDO0FBQ0EsUUFBSUssR0FBRyxHQUFHTCxFQUFFLENBQUUsQ0FBRixDQUFaO0FBQUEsUUFBbUJNLEdBQUcsR0FBR04sRUFBRSxDQUFFLENBQUYsQ0FBM0I7QUFBQSxRQUFrQ08sR0FBRyxHQUFHUCxFQUFFLENBQUUsQ0FBRixDQUExQztBQUNBLFFBQUlRLEdBQUcsR0FBR1IsRUFBRSxDQUFFLENBQUYsQ0FBWjtBQUFBLFFBQW1CUyxHQUFHLEdBQUdULEVBQUUsQ0FBRSxDQUFGLENBQTNCO0FBQUEsUUFBa0NVLEdBQUcsR0FBR1YsRUFBRSxDQUFFLEVBQUYsQ0FBMUM7QUFFQXhCLElBQUFBLEtBQUssR0FBR0EsS0FBSyxJQUFJLEtBQUtJLE1BQXRCOztBQUVBLFFBQUtKLEtBQUssS0FBSyxLQUFmLEVBQXVCO0FBRXRCLFdBQUtFLEVBQUwsR0FBVWlDLElBQUksQ0FBQ0MsSUFBTCxDQUFXYixLQUFLLENBQUVLLEdBQUYsRUFBTyxDQUFFLENBQVQsRUFBWSxDQUFaLENBQWhCLENBQVY7O0FBRUEsVUFBS08sSUFBSSxDQUFDRSxHQUFMLENBQVVULEdBQVYsSUFBa0IsT0FBdkIsRUFBaUM7QUFFaEMsYUFBSzNCLEVBQUwsR0FBVWtDLElBQUksQ0FBQ0csS0FBTCxDQUFZLENBQUVQLEdBQWQsRUFBbUJHLEdBQW5CLENBQVY7QUFDQSxhQUFLL0IsRUFBTCxHQUFVZ0MsSUFBSSxDQUFDRyxLQUFMLENBQVksQ0FBRVgsR0FBZCxFQUFtQkQsR0FBbkIsQ0FBVjtBQUVBLE9BTEQsTUFLTztBQUVOLGFBQUt6QixFQUFMLEdBQVVrQyxJQUFJLENBQUNHLEtBQUwsQ0FBWUwsR0FBWixFQUFpQkgsR0FBakIsQ0FBVjtBQUNBLGFBQUszQixFQUFMLEdBQVUsQ0FBVjtBQUVBO0FBRUQsS0FoQkQsTUFnQk8sSUFBS0gsS0FBSyxLQUFLLEtBQWYsRUFBdUI7QUFFN0IsV0FBS0MsRUFBTCxHQUFVa0MsSUFBSSxDQUFDQyxJQUFMLENBQVcsQ0FBRWIsS0FBSyxDQUFFUSxHQUFGLEVBQU8sQ0FBRSxDQUFULEVBQVksQ0FBWixDQUFsQixDQUFWOztBQUVBLFVBQUtJLElBQUksQ0FBQ0UsR0FBTCxDQUFVTixHQUFWLElBQWtCLE9BQXZCLEVBQWlDO0FBRWhDLGFBQUs3QixFQUFMLEdBQVVpQyxJQUFJLENBQUNHLEtBQUwsQ0FBWVYsR0FBWixFQUFpQk0sR0FBakIsQ0FBVjtBQUNBLGFBQUsvQixFQUFMLEdBQVVnQyxJQUFJLENBQUNHLEtBQUwsQ0FBWVQsR0FBWixFQUFpQkMsR0FBakIsQ0FBVjtBQUVBLE9BTEQsTUFLTztBQUVOLGFBQUs1QixFQUFMLEdBQVVpQyxJQUFJLENBQUNHLEtBQUwsQ0FBWSxDQUFFTixHQUFkLEVBQW1CTixHQUFuQixDQUFWO0FBQ0EsYUFBS3ZCLEVBQUwsR0FBVSxDQUFWO0FBRUE7QUFFRCxLQWhCTSxNQWdCQSxJQUFLSCxLQUFLLEtBQUssS0FBZixFQUF1QjtBQUU3QixXQUFLQyxFQUFMLEdBQVVrQyxJQUFJLENBQUNDLElBQUwsQ0FBV2IsS0FBSyxDQUFFVSxHQUFGLEVBQU8sQ0FBRSxDQUFULEVBQVksQ0FBWixDQUFoQixDQUFWOztBQUVBLFVBQUtFLElBQUksQ0FBQ0UsR0FBTCxDQUFVSixHQUFWLElBQWtCLE9BQXZCLEVBQWlDO0FBRWhDLGFBQUsvQixFQUFMLEdBQVVpQyxJQUFJLENBQUNHLEtBQUwsQ0FBWSxDQUFFTixHQUFkLEVBQW1CRSxHQUFuQixDQUFWO0FBQ0EsYUFBSy9CLEVBQUwsR0FBVWdDLElBQUksQ0FBQ0csS0FBTCxDQUFZLENBQUVYLEdBQWQsRUFBbUJHLEdBQW5CLENBQVY7QUFFQSxPQUxELE1BS087QUFFTixhQUFLNUIsRUFBTCxHQUFVLENBQVY7QUFDQSxhQUFLQyxFQUFMLEdBQVVnQyxJQUFJLENBQUNHLEtBQUwsQ0FBWVQsR0FBWixFQUFpQkgsR0FBakIsQ0FBVjtBQUVBO0FBRUQsS0FoQk0sTUFnQkEsSUFBSzFCLEtBQUssS0FBSyxLQUFmLEVBQXVCO0FBRTdCLFdBQUtFLEVBQUwsR0FBVWlDLElBQUksQ0FBQ0MsSUFBTCxDQUFXLENBQUViLEtBQUssQ0FBRVMsR0FBRixFQUFPLENBQUUsQ0FBVCxFQUFZLENBQVosQ0FBbEIsQ0FBVjs7QUFFQSxVQUFLRyxJQUFJLENBQUNFLEdBQUwsQ0FBVUwsR0FBVixJQUFrQixPQUF2QixFQUFpQztBQUVoQyxhQUFLL0IsRUFBTCxHQUFVa0MsSUFBSSxDQUFDRyxLQUFMLENBQVlMLEdBQVosRUFBaUJDLEdBQWpCLENBQVY7QUFDQSxhQUFLL0IsRUFBTCxHQUFVZ0MsSUFBSSxDQUFDRyxLQUFMLENBQVlULEdBQVosRUFBaUJILEdBQWpCLENBQVY7QUFFQSxPQUxELE1BS087QUFFTixhQUFLekIsRUFBTCxHQUFVLENBQVY7QUFDQSxhQUFLRSxFQUFMLEdBQVVnQyxJQUFJLENBQUNHLEtBQUwsQ0FBWSxDQUFFWCxHQUFkLEVBQW1CRyxHQUFuQixDQUFWO0FBRUE7QUFFRCxLQWhCTSxNQWdCQSxJQUFLOUIsS0FBSyxLQUFLLEtBQWYsRUFBdUI7QUFFN0IsV0FBS0csRUFBTCxHQUFVZ0MsSUFBSSxDQUFDQyxJQUFMLENBQVdiLEtBQUssQ0FBRU0sR0FBRixFQUFPLENBQUUsQ0FBVCxFQUFZLENBQVosQ0FBaEIsQ0FBVjs7QUFFQSxVQUFLTSxJQUFJLENBQUNFLEdBQUwsQ0FBVVIsR0FBVixJQUFrQixPQUF2QixFQUFpQztBQUVoQyxhQUFLNUIsRUFBTCxHQUFVa0MsSUFBSSxDQUFDRyxLQUFMLENBQVksQ0FBRVAsR0FBZCxFQUFtQkQsR0FBbkIsQ0FBVjtBQUNBLGFBQUs1QixFQUFMLEdBQVVpQyxJQUFJLENBQUNHLEtBQUwsQ0FBWSxDQUFFTixHQUFkLEVBQW1CTixHQUFuQixDQUFWO0FBRUEsT0FMRCxNQUtPO0FBRU4sYUFBS3pCLEVBQUwsR0FBVSxDQUFWO0FBQ0EsYUFBS0MsRUFBTCxHQUFVaUMsSUFBSSxDQUFDRyxLQUFMLENBQVlWLEdBQVosRUFBaUJNLEdBQWpCLENBQVY7QUFFQTtBQUVELEtBaEJNLE1BZ0JBLElBQUtsQyxLQUFLLEtBQUssS0FBZixFQUF1QjtBQUU3QixXQUFLRyxFQUFMLEdBQVVnQyxJQUFJLENBQUNDLElBQUwsQ0FBVyxDQUFFYixLQUFLLENBQUVJLEdBQUYsRUFBTyxDQUFFLENBQVQsRUFBWSxDQUFaLENBQWxCLENBQVY7O0FBRUEsVUFBS1EsSUFBSSxDQUFDRSxHQUFMLENBQVVWLEdBQVYsSUFBa0IsT0FBdkIsRUFBaUM7QUFFaEMsYUFBSzFCLEVBQUwsR0FBVWtDLElBQUksQ0FBQ0csS0FBTCxDQUFZTCxHQUFaLEVBQWlCSCxHQUFqQixDQUFWO0FBQ0EsYUFBSzVCLEVBQUwsR0FBVWlDLElBQUksQ0FBQ0csS0FBTCxDQUFZVixHQUFaLEVBQWlCRixHQUFqQixDQUFWO0FBRUEsT0FMRCxNQUtPO0FBRU4sYUFBS3pCLEVBQUwsR0FBVWtDLElBQUksQ0FBQ0csS0FBTCxDQUFZLENBQUVQLEdBQWQsRUFBbUJHLEdBQW5CLENBQVY7QUFDQSxhQUFLaEMsRUFBTCxHQUFVLENBQVY7QUFFQTtBQUVELEtBaEJNLE1BZ0JBO0FBRU5xQyxNQUFBQSxPQUFPLENBQUNDLElBQVIsQ0FBYyxvRUFBb0V4QyxLQUFsRjtBQUVBOztBQUVELFNBQUtJLE1BQUwsR0FBY0osS0FBZDtBQUVBLFFBQUtzQixNQUFNLEtBQUssS0FBaEIsRUFBd0IsS0FBS1QsaUJBQUw7QUFFeEIsV0FBTyxJQUFQO0FBRUEsR0E3SjhCO0FBK0ovQjRCLEVBQUFBLGlCQUFpQixFQUFFLFlBQVk7QUFFOUIsUUFBSUMsTUFBTSxHQUFHLElBQUloRCxPQUFKLEVBQWI7QUFFQSxXQUFPLFNBQVMrQyxpQkFBVCxDQUE0QkUsQ0FBNUIsRUFBK0IzQyxLQUEvQixFQUFzQ3NCLE1BQXRDLEVBQStDO0FBRXJEb0IsTUFBQUEsTUFBTSxDQUFDRSwwQkFBUCxDQUFtQ0QsQ0FBbkM7QUFFQSxhQUFPLEtBQUt2QixxQkFBTCxDQUE0QnNCLE1BQTVCLEVBQW9DMUMsS0FBcEMsRUFBMkNzQixNQUEzQyxDQUFQO0FBRUEsS0FORDtBQVFBLEdBWmtCLEVBL0pZO0FBNksvQnVCLEVBQUFBLGNBQWMsRUFBRSxVQUFXQyxDQUFYLEVBQWM5QyxLQUFkLEVBQXNCO0FBRXJDLFdBQU8sS0FBS1csR0FBTCxDQUFVbUMsQ0FBQyxDQUFDakQsQ0FBWixFQUFlaUQsQ0FBQyxDQUFDaEQsQ0FBakIsRUFBb0JnRCxDQUFDLENBQUMvQyxDQUF0QixFQUF5QkMsS0FBSyxJQUFJLEtBQUtJLE1BQXZDLENBQVA7QUFFQSxHQWpMOEI7QUFtTC9CMkMsRUFBQUEsT0FBTyxFQUFFLFlBQVk7QUFFcEI7QUFFQSxRQUFJSixDQUFDLEdBQUcsSUFBSW5ELFVBQUosRUFBUjtBQUVBLFdBQU8sU0FBU3VELE9BQVQsQ0FBa0JDLFFBQWxCLEVBQTZCO0FBRW5DTCxNQUFBQSxDQUFDLENBQUNNLFlBQUYsQ0FBZ0IsSUFBaEI7QUFFQSxhQUFPLEtBQUtSLGlCQUFMLENBQXdCRSxDQUF4QixFQUEyQkssUUFBM0IsQ0FBUDtBQUVBLEtBTkQ7QUFRQSxHQWRRLEVBbkxzQjtBQW1NL0JFLEVBQUFBLE1BQU0sRUFBRSxVQUFXL0IsS0FBWCxFQUFtQjtBQUUxQixXQUFTQSxLQUFLLENBQUNsQixFQUFOLEtBQWEsS0FBS0EsRUFBcEIsSUFBOEJrQixLQUFLLENBQUNqQixFQUFOLEtBQWEsS0FBS0EsRUFBaEQsSUFBMERpQixLQUFLLENBQUNoQixFQUFOLEtBQWEsS0FBS0EsRUFBNUUsSUFBc0ZnQixLQUFLLENBQUNmLE1BQU4sS0FBaUIsS0FBS0EsTUFBbkg7QUFFQSxHQXZNOEI7QUF5TS9CK0MsRUFBQUEsU0FBUyxFQUFFLFVBQVdDLEtBQVgsRUFBbUI7QUFFN0IsU0FBS25ELEVBQUwsR0FBVW1ELEtBQUssQ0FBRSxDQUFGLENBQWY7QUFDQSxTQUFLbEQsRUFBTCxHQUFVa0QsS0FBSyxDQUFFLENBQUYsQ0FBZjtBQUNBLFNBQUtqRCxFQUFMLEdBQVVpRCxLQUFLLENBQUUsQ0FBRixDQUFmO0FBQ0EsUUFBS0EsS0FBSyxDQUFFLENBQUYsQ0FBTCxLQUFlQyxTQUFwQixFQUFnQyxLQUFLakQsTUFBTCxHQUFjZ0QsS0FBSyxDQUFFLENBQUYsQ0FBbkI7O0FBRWhDLFNBQUt2QyxpQkFBTDs7QUFFQSxXQUFPLElBQVA7QUFFQSxHQXBOOEI7QUFzTi9CeUMsRUFBQUEsT0FBTyxFQUFFLFVBQVdGLEtBQVgsRUFBa0JHLE1BQWxCLEVBQTJCO0FBRW5DLFFBQUtILEtBQUssS0FBS0MsU0FBZixFQUEyQkQsS0FBSyxHQUFHLEVBQVI7QUFDM0IsUUFBS0csTUFBTSxLQUFLRixTQUFoQixFQUE0QkUsTUFBTSxHQUFHLENBQVQ7QUFFNUJILElBQUFBLEtBQUssQ0FBRUcsTUFBRixDQUFMLEdBQWtCLEtBQUt0RCxFQUF2QjtBQUNBbUQsSUFBQUEsS0FBSyxDQUFFRyxNQUFNLEdBQUcsQ0FBWCxDQUFMLEdBQXNCLEtBQUtyRCxFQUEzQjtBQUNBa0QsSUFBQUEsS0FBSyxDQUFFRyxNQUFNLEdBQUcsQ0FBWCxDQUFMLEdBQXNCLEtBQUtwRCxFQUEzQjtBQUNBaUQsSUFBQUEsS0FBSyxDQUFFRyxNQUFNLEdBQUcsQ0FBWCxDQUFMLEdBQXNCLEtBQUtuRCxNQUEzQjtBQUVBLFdBQU9nRCxLQUFQO0FBRUEsR0FsTzhCO0FBb08vQkksRUFBQUEsU0FBUyxFQUFFLFVBQVdDLGNBQVgsRUFBNEI7QUFFdEMsUUFBS0EsY0FBTCxFQUFzQjtBQUVyQixhQUFPQSxjQUFjLENBQUM5QyxHQUFmLENBQW9CLEtBQUtWLEVBQXpCLEVBQTZCLEtBQUtDLEVBQWxDLEVBQXNDLEtBQUtDLEVBQTNDLENBQVA7QUFFQSxLQUpELE1BSU87QUFFTixhQUFPLElBQUlWLE9BQUosQ0FBYSxLQUFLUSxFQUFsQixFQUFzQixLQUFLQyxFQUEzQixFQUErQixLQUFLQyxFQUFwQyxDQUFQO0FBRUE7QUFFRCxHQWhQOEI7QUFrUC9CdUQsRUFBQUEsU0FBUyxFQUFFLFVBQVdDLFFBQVgsRUFBc0I7QUFFaEMsU0FBSzlDLGlCQUFMLEdBQXlCOEMsUUFBekI7QUFFQSxXQUFPLElBQVA7QUFFQSxHQXhQOEI7QUEwUC9COUMsRUFBQUEsaUJBQWlCLEVBQUUsWUFBWSxDQUFFO0FBMVBGLENBQWhDO0FBK1BBLFNBQVNqQixLQUFUIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUXVhdGVybmlvbiB9IGZyb20gJy4vUXVhdGVybmlvbi5qcyc7XG5pbXBvcnQgeyBWZWN0b3IzIH0gZnJvbSAnLi9WZWN0b3IzLmpzJztcbmltcG9ydCB7IE1hdHJpeDQgfSBmcm9tICcuL01hdHJpeDQuanMnO1xuaW1wb3J0IHsgX01hdGggfSBmcm9tICcuL01hdGguanMnO1xuXG4vKipcbiAqIEBhdXRob3IgbXJkb29iIC8gaHR0cDovL21yZG9vYi5jb20vXG4gKiBAYXV0aG9yIFdlc3RMYW5nbGV5IC8gaHR0cDovL2dpdGh1Yi5jb20vV2VzdExhbmdsZXlcbiAqIEBhdXRob3IgYmhvdXN0b24gLyBodHRwOi8vY2xhcmEuaW9cbiAqL1xuXG5mdW5jdGlvbiBFdWxlciggeCwgeSwgeiwgb3JkZXIgKSB7XG5cblx0dGhpcy5feCA9IHggfHwgMDtcblx0dGhpcy5feSA9IHkgfHwgMDtcblx0dGhpcy5feiA9IHogfHwgMDtcblx0dGhpcy5fb3JkZXIgPSBvcmRlciB8fCBFdWxlci5EZWZhdWx0T3JkZXI7XG5cbn1cblxuRXVsZXIuUm90YXRpb25PcmRlcnMgPSBbICdYWVonLCAnWVpYJywgJ1pYWScsICdYWlknLCAnWVhaJywgJ1pZWCcgXTtcblxuRXVsZXIuRGVmYXVsdE9yZGVyID0gJ1hZWic7XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKCBFdWxlci5wcm90b3R5cGUsIHtcblxuXHR4OiB7XG5cblx0XHRnZXQ6IGZ1bmN0aW9uICgpIHtcblxuXHRcdFx0cmV0dXJuIHRoaXMuX3g7XG5cblx0XHR9LFxuXG5cdFx0c2V0OiBmdW5jdGlvbiAoIHZhbHVlICkge1xuXG5cdFx0XHR0aGlzLl94ID0gdmFsdWU7XG5cdFx0XHR0aGlzLl9vbkNoYW5nZUNhbGxiYWNrKCk7XG5cblx0XHR9XG5cblx0fSxcblxuXHR5OiB7XG5cblx0XHRnZXQ6IGZ1bmN0aW9uICgpIHtcblxuXHRcdFx0cmV0dXJuIHRoaXMuX3k7XG5cblx0XHR9LFxuXG5cdFx0c2V0OiBmdW5jdGlvbiAoIHZhbHVlICkge1xuXG5cdFx0XHR0aGlzLl95ID0gdmFsdWU7XG5cdFx0XHR0aGlzLl9vbkNoYW5nZUNhbGxiYWNrKCk7XG5cblx0XHR9XG5cblx0fSxcblxuXHR6OiB7XG5cblx0XHRnZXQ6IGZ1bmN0aW9uICgpIHtcblxuXHRcdFx0cmV0dXJuIHRoaXMuX3o7XG5cblx0XHR9LFxuXG5cdFx0c2V0OiBmdW5jdGlvbiAoIHZhbHVlICkge1xuXG5cdFx0XHR0aGlzLl96ID0gdmFsdWU7XG5cdFx0XHR0aGlzLl9vbkNoYW5nZUNhbGxiYWNrKCk7XG5cblx0XHR9XG5cblx0fSxcblxuXHRvcmRlcjoge1xuXG5cdFx0Z2V0OiBmdW5jdGlvbiAoKSB7XG5cblx0XHRcdHJldHVybiB0aGlzLl9vcmRlcjtcblxuXHRcdH0sXG5cblx0XHRzZXQ6IGZ1bmN0aW9uICggdmFsdWUgKSB7XG5cblx0XHRcdHRoaXMuX29yZGVyID0gdmFsdWU7XG5cdFx0XHR0aGlzLl9vbkNoYW5nZUNhbGxiYWNrKCk7XG5cblx0XHR9XG5cblx0fVxuXG59ICk7XG5cbk9iamVjdC5hc3NpZ24oIEV1bGVyLnByb3RvdHlwZSwge1xuXG5cdGlzRXVsZXI6IHRydWUsXG5cblx0c2V0OiBmdW5jdGlvbiAoIHgsIHksIHosIG9yZGVyICkge1xuXG5cdFx0dGhpcy5feCA9IHg7XG5cdFx0dGhpcy5feSA9IHk7XG5cdFx0dGhpcy5feiA9IHo7XG5cdFx0dGhpcy5fb3JkZXIgPSBvcmRlciB8fCB0aGlzLl9vcmRlcjtcblxuXHRcdHRoaXMuX29uQ2hhbmdlQ2FsbGJhY2soKTtcblxuXHRcdHJldHVybiB0aGlzO1xuXG5cdH0sXG5cblx0Y2xvbmU6IGZ1bmN0aW9uICgpIHtcblxuXHRcdHJldHVybiBuZXcgdGhpcy5jb25zdHJ1Y3RvciggdGhpcy5feCwgdGhpcy5feSwgdGhpcy5feiwgdGhpcy5fb3JkZXIgKTtcblxuXHR9LFxuXG5cdGNvcHk6IGZ1bmN0aW9uICggZXVsZXIgKSB7XG5cblx0XHR0aGlzLl94ID0gZXVsZXIuX3g7XG5cdFx0dGhpcy5feSA9IGV1bGVyLl95O1xuXHRcdHRoaXMuX3ogPSBldWxlci5fejtcblx0XHR0aGlzLl9vcmRlciA9IGV1bGVyLl9vcmRlcjtcblxuXHRcdHRoaXMuX29uQ2hhbmdlQ2FsbGJhY2soKTtcblxuXHRcdHJldHVybiB0aGlzO1xuXG5cdH0sXG5cblx0c2V0RnJvbVJvdGF0aW9uTWF0cml4OiBmdW5jdGlvbiAoIG0sIG9yZGVyLCB1cGRhdGUgKSB7XG5cblx0XHR2YXIgY2xhbXAgPSBfTWF0aC5jbGFtcDtcblxuXHRcdC8vIGFzc3VtZXMgdGhlIHVwcGVyIDN4MyBvZiBtIGlzIGEgcHVyZSByb3RhdGlvbiBtYXRyaXggKGkuZSwgdW5zY2FsZWQpXG5cblx0XHR2YXIgdGUgPSBtLmVsZW1lbnRzO1xuXHRcdHZhciBtMTEgPSB0ZVsgMCBdLCBtMTIgPSB0ZVsgNCBdLCBtMTMgPSB0ZVsgOCBdO1xuXHRcdHZhciBtMjEgPSB0ZVsgMSBdLCBtMjIgPSB0ZVsgNSBdLCBtMjMgPSB0ZVsgOSBdO1xuXHRcdHZhciBtMzEgPSB0ZVsgMiBdLCBtMzIgPSB0ZVsgNiBdLCBtMzMgPSB0ZVsgMTAgXTtcblxuXHRcdG9yZGVyID0gb3JkZXIgfHwgdGhpcy5fb3JkZXI7XG5cblx0XHRpZiAoIG9yZGVyID09PSAnWFlaJyApIHtcblxuXHRcdFx0dGhpcy5feSA9IE1hdGguYXNpbiggY2xhbXAoIG0xMywgLSAxLCAxICkgKTtcblxuXHRcdFx0aWYgKCBNYXRoLmFicyggbTEzICkgPCAwLjk5OTk5ICkge1xuXG5cdFx0XHRcdHRoaXMuX3ggPSBNYXRoLmF0YW4yKCAtIG0yMywgbTMzICk7XG5cdFx0XHRcdHRoaXMuX3ogPSBNYXRoLmF0YW4yKCAtIG0xMiwgbTExICk7XG5cblx0XHRcdH0gZWxzZSB7XG5cblx0XHRcdFx0dGhpcy5feCA9IE1hdGguYXRhbjIoIG0zMiwgbTIyICk7XG5cdFx0XHRcdHRoaXMuX3ogPSAwO1xuXG5cdFx0XHR9XG5cblx0XHR9IGVsc2UgaWYgKCBvcmRlciA9PT0gJ1lYWicgKSB7XG5cblx0XHRcdHRoaXMuX3ggPSBNYXRoLmFzaW4oIC0gY2xhbXAoIG0yMywgLSAxLCAxICkgKTtcblxuXHRcdFx0aWYgKCBNYXRoLmFicyggbTIzICkgPCAwLjk5OTk5ICkge1xuXG5cdFx0XHRcdHRoaXMuX3kgPSBNYXRoLmF0YW4yKCBtMTMsIG0zMyApO1xuXHRcdFx0XHR0aGlzLl96ID0gTWF0aC5hdGFuMiggbTIxLCBtMjIgKTtcblxuXHRcdFx0fSBlbHNlIHtcblxuXHRcdFx0XHR0aGlzLl95ID0gTWF0aC5hdGFuMiggLSBtMzEsIG0xMSApO1xuXHRcdFx0XHR0aGlzLl96ID0gMDtcblxuXHRcdFx0fVxuXG5cdFx0fSBlbHNlIGlmICggb3JkZXIgPT09ICdaWFknICkge1xuXG5cdFx0XHR0aGlzLl94ID0gTWF0aC5hc2luKCBjbGFtcCggbTMyLCAtIDEsIDEgKSApO1xuXG5cdFx0XHRpZiAoIE1hdGguYWJzKCBtMzIgKSA8IDAuOTk5OTkgKSB7XG5cblx0XHRcdFx0dGhpcy5feSA9IE1hdGguYXRhbjIoIC0gbTMxLCBtMzMgKTtcblx0XHRcdFx0dGhpcy5feiA9IE1hdGguYXRhbjIoIC0gbTEyLCBtMjIgKTtcblxuXHRcdFx0fSBlbHNlIHtcblxuXHRcdFx0XHR0aGlzLl95ID0gMDtcblx0XHRcdFx0dGhpcy5feiA9IE1hdGguYXRhbjIoIG0yMSwgbTExICk7XG5cblx0XHRcdH1cblxuXHRcdH0gZWxzZSBpZiAoIG9yZGVyID09PSAnWllYJyApIHtcblxuXHRcdFx0dGhpcy5feSA9IE1hdGguYXNpbiggLSBjbGFtcCggbTMxLCAtIDEsIDEgKSApO1xuXG5cdFx0XHRpZiAoIE1hdGguYWJzKCBtMzEgKSA8IDAuOTk5OTkgKSB7XG5cblx0XHRcdFx0dGhpcy5feCA9IE1hdGguYXRhbjIoIG0zMiwgbTMzICk7XG5cdFx0XHRcdHRoaXMuX3ogPSBNYXRoLmF0YW4yKCBtMjEsIG0xMSApO1xuXG5cdFx0XHR9IGVsc2Uge1xuXG5cdFx0XHRcdHRoaXMuX3ggPSAwO1xuXHRcdFx0XHR0aGlzLl96ID0gTWF0aC5hdGFuMiggLSBtMTIsIG0yMiApO1xuXG5cdFx0XHR9XG5cblx0XHR9IGVsc2UgaWYgKCBvcmRlciA9PT0gJ1laWCcgKSB7XG5cblx0XHRcdHRoaXMuX3ogPSBNYXRoLmFzaW4oIGNsYW1wKCBtMjEsIC0gMSwgMSApICk7XG5cblx0XHRcdGlmICggTWF0aC5hYnMoIG0yMSApIDwgMC45OTk5OSApIHtcblxuXHRcdFx0XHR0aGlzLl94ID0gTWF0aC5hdGFuMiggLSBtMjMsIG0yMiApO1xuXHRcdFx0XHR0aGlzLl95ID0gTWF0aC5hdGFuMiggLSBtMzEsIG0xMSApO1xuXG5cdFx0XHR9IGVsc2Uge1xuXG5cdFx0XHRcdHRoaXMuX3ggPSAwO1xuXHRcdFx0XHR0aGlzLl95ID0gTWF0aC5hdGFuMiggbTEzLCBtMzMgKTtcblxuXHRcdFx0fVxuXG5cdFx0fSBlbHNlIGlmICggb3JkZXIgPT09ICdYWlknICkge1xuXG5cdFx0XHR0aGlzLl96ID0gTWF0aC5hc2luKCAtIGNsYW1wKCBtMTIsIC0gMSwgMSApICk7XG5cblx0XHRcdGlmICggTWF0aC5hYnMoIG0xMiApIDwgMC45OTk5OSApIHtcblxuXHRcdFx0XHR0aGlzLl94ID0gTWF0aC5hdGFuMiggbTMyLCBtMjIgKTtcblx0XHRcdFx0dGhpcy5feSA9IE1hdGguYXRhbjIoIG0xMywgbTExICk7XG5cblx0XHRcdH0gZWxzZSB7XG5cblx0XHRcdFx0dGhpcy5feCA9IE1hdGguYXRhbjIoIC0gbTIzLCBtMzMgKTtcblx0XHRcdFx0dGhpcy5feSA9IDA7XG5cblx0XHRcdH1cblxuXHRcdH0gZWxzZSB7XG5cblx0XHRcdGNvbnNvbGUud2FybiggJ1RIUkVFLkV1bGVyOiAuc2V0RnJvbVJvdGF0aW9uTWF0cml4KCkgZ2l2ZW4gdW5zdXBwb3J0ZWQgb3JkZXI6ICcgKyBvcmRlciApO1xuXG5cdFx0fVxuXG5cdFx0dGhpcy5fb3JkZXIgPSBvcmRlcjtcblxuXHRcdGlmICggdXBkYXRlICE9PSBmYWxzZSApIHRoaXMuX29uQ2hhbmdlQ2FsbGJhY2soKTtcblxuXHRcdHJldHVybiB0aGlzO1xuXG5cdH0sXG5cblx0c2V0RnJvbVF1YXRlcm5pb246IGZ1bmN0aW9uICgpIHtcblxuXHRcdHZhciBtYXRyaXggPSBuZXcgTWF0cml4NCgpO1xuXG5cdFx0cmV0dXJuIGZ1bmN0aW9uIHNldEZyb21RdWF0ZXJuaW9uKCBxLCBvcmRlciwgdXBkYXRlICkge1xuXG5cdFx0XHRtYXRyaXgubWFrZVJvdGF0aW9uRnJvbVF1YXRlcm5pb24oIHEgKTtcblxuXHRcdFx0cmV0dXJuIHRoaXMuc2V0RnJvbVJvdGF0aW9uTWF0cml4KCBtYXRyaXgsIG9yZGVyLCB1cGRhdGUgKTtcblxuXHRcdH07XG5cblx0fSgpLFxuXG5cdHNldEZyb21WZWN0b3IzOiBmdW5jdGlvbiAoIHYsIG9yZGVyICkge1xuXG5cdFx0cmV0dXJuIHRoaXMuc2V0KCB2LngsIHYueSwgdi56LCBvcmRlciB8fCB0aGlzLl9vcmRlciApO1xuXG5cdH0sXG5cblx0cmVvcmRlcjogZnVuY3Rpb24gKCkge1xuXG5cdFx0Ly8gV0FSTklORzogdGhpcyBkaXNjYXJkcyByZXZvbHV0aW9uIGluZm9ybWF0aW9uIC1iaG91c3RvblxuXG5cdFx0dmFyIHEgPSBuZXcgUXVhdGVybmlvbigpO1xuXG5cdFx0cmV0dXJuIGZ1bmN0aW9uIHJlb3JkZXIoIG5ld09yZGVyICkge1xuXG5cdFx0XHRxLnNldEZyb21FdWxlciggdGhpcyApO1xuXG5cdFx0XHRyZXR1cm4gdGhpcy5zZXRGcm9tUXVhdGVybmlvbiggcSwgbmV3T3JkZXIgKTtcblxuXHRcdH07XG5cblx0fSgpLFxuXG5cdGVxdWFsczogZnVuY3Rpb24gKCBldWxlciApIHtcblxuXHRcdHJldHVybiAoIGV1bGVyLl94ID09PSB0aGlzLl94ICkgJiYgKCBldWxlci5feSA9PT0gdGhpcy5feSApICYmICggZXVsZXIuX3ogPT09IHRoaXMuX3ogKSAmJiAoIGV1bGVyLl9vcmRlciA9PT0gdGhpcy5fb3JkZXIgKTtcblxuXHR9LFxuXG5cdGZyb21BcnJheTogZnVuY3Rpb24gKCBhcnJheSApIHtcblxuXHRcdHRoaXMuX3ggPSBhcnJheVsgMCBdO1xuXHRcdHRoaXMuX3kgPSBhcnJheVsgMSBdO1xuXHRcdHRoaXMuX3ogPSBhcnJheVsgMiBdO1xuXHRcdGlmICggYXJyYXlbIDMgXSAhPT0gdW5kZWZpbmVkICkgdGhpcy5fb3JkZXIgPSBhcnJheVsgMyBdO1xuXG5cdFx0dGhpcy5fb25DaGFuZ2VDYWxsYmFjaygpO1xuXG5cdFx0cmV0dXJuIHRoaXM7XG5cblx0fSxcblxuXHR0b0FycmF5OiBmdW5jdGlvbiAoIGFycmF5LCBvZmZzZXQgKSB7XG5cblx0XHRpZiAoIGFycmF5ID09PSB1bmRlZmluZWQgKSBhcnJheSA9IFtdO1xuXHRcdGlmICggb2Zmc2V0ID09PSB1bmRlZmluZWQgKSBvZmZzZXQgPSAwO1xuXG5cdFx0YXJyYXlbIG9mZnNldCBdID0gdGhpcy5feDtcblx0XHRhcnJheVsgb2Zmc2V0ICsgMSBdID0gdGhpcy5feTtcblx0XHRhcnJheVsgb2Zmc2V0ICsgMiBdID0gdGhpcy5fejtcblx0XHRhcnJheVsgb2Zmc2V0ICsgMyBdID0gdGhpcy5fb3JkZXI7XG5cblx0XHRyZXR1cm4gYXJyYXk7XG5cblx0fSxcblxuXHR0b1ZlY3RvcjM6IGZ1bmN0aW9uICggb3B0aW9uYWxSZXN1bHQgKSB7XG5cblx0XHRpZiAoIG9wdGlvbmFsUmVzdWx0ICkge1xuXG5cdFx0XHRyZXR1cm4gb3B0aW9uYWxSZXN1bHQuc2V0KCB0aGlzLl94LCB0aGlzLl95LCB0aGlzLl96ICk7XG5cblx0XHR9IGVsc2Uge1xuXG5cdFx0XHRyZXR1cm4gbmV3IFZlY3RvcjMoIHRoaXMuX3gsIHRoaXMuX3ksIHRoaXMuX3ogKTtcblxuXHRcdH1cblxuXHR9LFxuXG5cdF9vbkNoYW5nZTogZnVuY3Rpb24gKCBjYWxsYmFjayApIHtcblxuXHRcdHRoaXMuX29uQ2hhbmdlQ2FsbGJhY2sgPSBjYWxsYmFjaztcblxuXHRcdHJldHVybiB0aGlzO1xuXG5cdH0sXG5cblx0X29uQ2hhbmdlQ2FsbGJhY2s6IGZ1bmN0aW9uICgpIHt9XG5cbn0gKTtcblxuXG5leHBvcnQgeyBFdWxlciB9OyJdfQ== ================================================ FILE: packages/sdk/lib/core/libs/three-nebula/core/three/Math.js ================================================ /** * @author alteredq / http://alteredqualia.com/ * @author mrdoob / http://mrdoob.com/ */ var _Math = { DEG2RAD: Math.PI / 180, RAD2DEG: 180 / Math.PI, generateUUID: function () { // http://stackoverflow.com/questions/105034/how-to-create-a-guid-uuid-in-javascript/21963136#21963136 var lut = []; for (var i = 0; i < 256; i++) { lut[i] = (i < 16 ? '0' : '') + i.toString(16); } return function generateUUID() { var d0 = Math.random() * 0xffffffff | 0; var d1 = Math.random() * 0xffffffff | 0; var d2 = Math.random() * 0xffffffff | 0; var d3 = Math.random() * 0xffffffff | 0; var uuid = lut[d0 & 0xff] + lut[d0 >> 8 & 0xff] + lut[d0 >> 16 & 0xff] + lut[d0 >> 24 & 0xff] + '-' + lut[d1 & 0xff] + lut[d1 >> 8 & 0xff] + '-' + lut[d1 >> 16 & 0x0f | 0x40] + lut[d1 >> 24 & 0xff] + '-' + lut[d2 & 0x3f | 0x80] + lut[d2 >> 8 & 0xff] + '-' + lut[d2 >> 16 & 0xff] + lut[d2 >> 24 & 0xff] + lut[d3 & 0xff] + lut[d3 >> 8 & 0xff] + lut[d3 >> 16 & 0xff] + lut[d3 >> 24 & 0xff]; // .toUpperCase() here flattens concatenated strings to save heap memory space. return uuid.toUpperCase(); }; }(), clamp: function (value, min, max) { return Math.max(min, Math.min(max, value)); }, // compute euclidian modulo of m % n // https://en.wikipedia.org/wiki/Modulo_operation euclideanModulo: function (n, m) { return (n % m + m) % m; }, // Linear mapping from range to range mapLinear: function (x, a1, a2, b1, b2) { return b1 + (x - a1) * (b2 - b1) / (a2 - a1); }, // https://en.wikipedia.org/wiki/Linear_interpolation lerp: function (x, y, t) { return (1 - t) * x + t * y; }, // http://en.wikipedia.org/wiki/Smoothstep smoothstep: function (x, min, max) { if (x <= min) return 0; if (x >= max) return 1; x = (x - min) / (max - min); return x * x * (3 - 2 * x); }, smootherstep: function (x, min, max) { if (x <= min) return 0; if (x >= max) return 1; x = (x - min) / (max - min); return x * x * x * (x * (x * 6 - 15) + 10); }, // Random integer from interval randInt: function (low, high) { return low + Math.floor(Math.random() * (high - low + 1)); }, // Random float from interval randFloat: function (low, high) { return low + Math.random() * (high - low); }, // Random float from <-range/2, range/2> interval randFloatSpread: function (range) { return range * (0.5 - Math.random()); }, degToRad: function (degrees) { return degrees * _Math.DEG2RAD; }, radToDeg: function (radians) { return radians * _Math.RAD2DEG; }, isPowerOfTwo: function (value) { return (value & value - 1) === 0 && value !== 0; }, ceilPowerOfTwo: function (value) { return Math.pow(2, Math.ceil(Math.log(value) / Math.LN2)); }, floorPowerOfTwo: function (value) { return Math.pow(2, Math.floor(Math.log(value) / Math.LN2)); } }; export { _Math }; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb3JlL3RocmVlL01hdGguanMiXSwibmFtZXMiOlsiX01hdGgiLCJERUcyUkFEIiwiTWF0aCIsIlBJIiwiUkFEMkRFRyIsImdlbmVyYXRlVVVJRCIsImx1dCIsImkiLCJ0b1N0cmluZyIsImQwIiwicmFuZG9tIiwiZDEiLCJkMiIsImQzIiwidXVpZCIsInRvVXBwZXJDYXNlIiwiY2xhbXAiLCJ2YWx1ZSIsIm1pbiIsIm1heCIsImV1Y2xpZGVhbk1vZHVsbyIsIm4iLCJtIiwibWFwTGluZWFyIiwieCIsImExIiwiYTIiLCJiMSIsImIyIiwibGVycCIsInkiLCJ0Iiwic21vb3Roc3RlcCIsInNtb290aGVyc3RlcCIsInJhbmRJbnQiLCJsb3ciLCJoaWdoIiwiZmxvb3IiLCJyYW5kRmxvYXQiLCJyYW5kRmxvYXRTcHJlYWQiLCJyYW5nZSIsImRlZ1RvUmFkIiwiZGVncmVlcyIsInJhZFRvRGVnIiwicmFkaWFucyIsImlzUG93ZXJPZlR3byIsImNlaWxQb3dlck9mVHdvIiwicG93IiwiY2VpbCIsImxvZyIsIkxOMiIsImZsb29yUG93ZXJPZlR3byJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFFQSxJQUFJQSxLQUFLLEdBQUc7QUFFWEMsRUFBQUEsT0FBTyxFQUFFQyxJQUFJLENBQUNDLEVBQUwsR0FBVSxHQUZSO0FBR1hDLEVBQUFBLE9BQU8sRUFBRSxNQUFNRixJQUFJLENBQUNDLEVBSFQ7QUFLWEUsRUFBQUEsWUFBWSxFQUFJLFlBQVk7QUFFM0I7QUFFQSxRQUFJQyxHQUFHLEdBQUcsRUFBVjs7QUFFQSxTQUFNLElBQUlDLENBQUMsR0FBRyxDQUFkLEVBQWlCQSxDQUFDLEdBQUcsR0FBckIsRUFBMEJBLENBQUMsRUFBM0IsRUFBaUM7QUFFaENELE1BQUFBLEdBQUcsQ0FBRUMsQ0FBRixDQUFILEdBQVcsQ0FBRUEsQ0FBQyxHQUFHLEVBQUosR0FBUyxHQUFULEdBQWUsRUFBakIsSUFBMEJBLENBQUYsQ0FBTUMsUUFBTixDQUFnQixFQUFoQixDQUFuQztBQUVBOztBQUVELFdBQU8sU0FBU0gsWUFBVCxHQUF3QjtBQUU5QixVQUFJSSxFQUFFLEdBQUdQLElBQUksQ0FBQ1EsTUFBTCxLQUFnQixVQUFoQixHQUE2QixDQUF0QztBQUNBLFVBQUlDLEVBQUUsR0FBR1QsSUFBSSxDQUFDUSxNQUFMLEtBQWdCLFVBQWhCLEdBQTZCLENBQXRDO0FBQ0EsVUFBSUUsRUFBRSxHQUFHVixJQUFJLENBQUNRLE1BQUwsS0FBZ0IsVUFBaEIsR0FBNkIsQ0FBdEM7QUFDQSxVQUFJRyxFQUFFLEdBQUdYLElBQUksQ0FBQ1EsTUFBTCxLQUFnQixVQUFoQixHQUE2QixDQUF0QztBQUNBLFVBQUlJLElBQUksR0FBR1IsR0FBRyxDQUFFRyxFQUFFLEdBQUcsSUFBUCxDQUFILEdBQW1CSCxHQUFHLENBQUVHLEVBQUUsSUFBSSxDQUFOLEdBQVUsSUFBWixDQUF0QixHQUEyQ0gsR0FBRyxDQUFFRyxFQUFFLElBQUksRUFBTixHQUFXLElBQWIsQ0FBOUMsR0FBb0VILEdBQUcsQ0FBRUcsRUFBRSxJQUFJLEVBQU4sR0FBVyxJQUFiLENBQXZFLEdBQTZGLEdBQTdGLEdBQ1ZILEdBQUcsQ0FBRUssRUFBRSxHQUFHLElBQVAsQ0FETyxHQUNTTCxHQUFHLENBQUVLLEVBQUUsSUFBSSxDQUFOLEdBQVUsSUFBWixDQURaLEdBQ2lDLEdBRGpDLEdBQ3VDTCxHQUFHLENBQUVLLEVBQUUsSUFBSSxFQUFOLEdBQVcsSUFBWCxHQUFrQixJQUFwQixDQUQxQyxHQUN1RUwsR0FBRyxDQUFFSyxFQUFFLElBQUksRUFBTixHQUFXLElBQWIsQ0FEMUUsR0FDZ0csR0FEaEcsR0FFVkwsR0FBRyxDQUFFTSxFQUFFLEdBQUcsSUFBTCxHQUFZLElBQWQsQ0FGTyxHQUVnQk4sR0FBRyxDQUFFTSxFQUFFLElBQUksQ0FBTixHQUFVLElBQVosQ0FGbkIsR0FFd0MsR0FGeEMsR0FFOENOLEdBQUcsQ0FBRU0sRUFBRSxJQUFJLEVBQU4sR0FBVyxJQUFiLENBRmpELEdBRXVFTixHQUFHLENBQUVNLEVBQUUsSUFBSSxFQUFOLEdBQVcsSUFBYixDQUYxRSxHQUdWTixHQUFHLENBQUVPLEVBQUUsR0FBRyxJQUFQLENBSE8sR0FHU1AsR0FBRyxDQUFFTyxFQUFFLElBQUksQ0FBTixHQUFVLElBQVosQ0FIWixHQUdpQ1AsR0FBRyxDQUFFTyxFQUFFLElBQUksRUFBTixHQUFXLElBQWIsQ0FIcEMsR0FHMERQLEdBQUcsQ0FBRU8sRUFBRSxJQUFJLEVBQU4sR0FBVyxJQUFiLENBSHhFLENBTjhCLENBVzlCOztBQUNBLGFBQU9DLElBQUksQ0FBQ0MsV0FBTCxFQUFQO0FBRUEsS0FkRDtBQWdCQSxHQTVCYSxFQUxIO0FBbUNYQyxFQUFBQSxLQUFLLEVBQUUsVUFBV0MsS0FBWCxFQUFrQkMsR0FBbEIsRUFBdUJDLEdBQXZCLEVBQTZCO0FBRW5DLFdBQU9qQixJQUFJLENBQUNpQixHQUFMLENBQVVELEdBQVYsRUFBZWhCLElBQUksQ0FBQ2dCLEdBQUwsQ0FBVUMsR0FBVixFQUFlRixLQUFmLENBQWYsQ0FBUDtBQUVBLEdBdkNVO0FBeUNYO0FBQ0E7QUFFQUcsRUFBQUEsZUFBZSxFQUFFLFVBQVdDLENBQVgsRUFBY0MsQ0FBZCxFQUFrQjtBQUVsQyxXQUFPLENBQUlELENBQUMsR0FBR0MsQ0FBTixHQUFZQSxDQUFkLElBQW9CQSxDQUEzQjtBQUVBLEdBaERVO0FBa0RYO0FBRUFDLEVBQUFBLFNBQVMsRUFBRSxVQUFXQyxDQUFYLEVBQWNDLEVBQWQsRUFBa0JDLEVBQWxCLEVBQXNCQyxFQUF0QixFQUEwQkMsRUFBMUIsRUFBK0I7QUFFekMsV0FBT0QsRUFBRSxHQUFHLENBQUVILENBQUMsR0FBR0MsRUFBTixLQUFlRyxFQUFFLEdBQUdELEVBQXBCLEtBQTZCRCxFQUFFLEdBQUdELEVBQWxDLENBQVo7QUFFQSxHQXhEVTtBQTBEWDtBQUVBSSxFQUFBQSxJQUFJLEVBQUUsVUFBV0wsQ0FBWCxFQUFjTSxDQUFkLEVBQWlCQyxDQUFqQixFQUFxQjtBQUUxQixXQUFPLENBQUUsSUFBSUEsQ0FBTixJQUFZUCxDQUFaLEdBQWdCTyxDQUFDLEdBQUdELENBQTNCO0FBRUEsR0FoRVU7QUFrRVg7QUFFQUUsRUFBQUEsVUFBVSxFQUFFLFVBQVdSLENBQVgsRUFBY04sR0FBZCxFQUFtQkMsR0FBbkIsRUFBeUI7QUFFcEMsUUFBS0ssQ0FBQyxJQUFJTixHQUFWLEVBQWdCLE9BQU8sQ0FBUDtBQUNoQixRQUFLTSxDQUFDLElBQUlMLEdBQVYsRUFBZ0IsT0FBTyxDQUFQO0FBRWhCSyxJQUFBQSxDQUFDLEdBQUcsQ0FBRUEsQ0FBQyxHQUFHTixHQUFOLEtBQWdCQyxHQUFHLEdBQUdELEdBQXRCLENBQUo7QUFFQSxXQUFPTSxDQUFDLEdBQUdBLENBQUosSUFBVSxJQUFJLElBQUlBLENBQWxCLENBQVA7QUFFQSxHQTdFVTtBQStFWFMsRUFBQUEsWUFBWSxFQUFFLFVBQVdULENBQVgsRUFBY04sR0FBZCxFQUFtQkMsR0FBbkIsRUFBeUI7QUFFdEMsUUFBS0ssQ0FBQyxJQUFJTixHQUFWLEVBQWdCLE9BQU8sQ0FBUDtBQUNoQixRQUFLTSxDQUFDLElBQUlMLEdBQVYsRUFBZ0IsT0FBTyxDQUFQO0FBRWhCSyxJQUFBQSxDQUFDLEdBQUcsQ0FBRUEsQ0FBQyxHQUFHTixHQUFOLEtBQWdCQyxHQUFHLEdBQUdELEdBQXRCLENBQUo7QUFFQSxXQUFPTSxDQUFDLEdBQUdBLENBQUosR0FBUUEsQ0FBUixJQUFjQSxDQUFDLElBQUtBLENBQUMsR0FBRyxDQUFKLEdBQVEsRUFBYixDQUFELEdBQXFCLEVBQW5DLENBQVA7QUFFQSxHQXhGVTtBQTBGWDtBQUVBVSxFQUFBQSxPQUFPLEVBQUUsVUFBV0MsR0FBWCxFQUFnQkMsSUFBaEIsRUFBdUI7QUFFL0IsV0FBT0QsR0FBRyxHQUFHakMsSUFBSSxDQUFDbUMsS0FBTCxDQUFZbkMsSUFBSSxDQUFDUSxNQUFMLE1BQWtCMEIsSUFBSSxHQUFHRCxHQUFQLEdBQWEsQ0FBL0IsQ0FBWixDQUFiO0FBRUEsR0FoR1U7QUFrR1g7QUFFQUcsRUFBQUEsU0FBUyxFQUFFLFVBQVdILEdBQVgsRUFBZ0JDLElBQWhCLEVBQXVCO0FBRWpDLFdBQU9ELEdBQUcsR0FBR2pDLElBQUksQ0FBQ1EsTUFBTCxNQUFrQjBCLElBQUksR0FBR0QsR0FBekIsQ0FBYjtBQUVBLEdBeEdVO0FBMEdYO0FBRUFJLEVBQUFBLGVBQWUsRUFBRSxVQUFXQyxLQUFYLEVBQW1CO0FBRW5DLFdBQU9BLEtBQUssSUFBSyxNQUFNdEMsSUFBSSxDQUFDUSxNQUFMLEVBQVgsQ0FBWjtBQUVBLEdBaEhVO0FBa0hYK0IsRUFBQUEsUUFBUSxFQUFFLFVBQVdDLE9BQVgsRUFBcUI7QUFFOUIsV0FBT0EsT0FBTyxHQUFHMUMsS0FBSyxDQUFDQyxPQUF2QjtBQUVBLEdBdEhVO0FBd0hYMEMsRUFBQUEsUUFBUSxFQUFFLFVBQVdDLE9BQVgsRUFBcUI7QUFFOUIsV0FBT0EsT0FBTyxHQUFHNUMsS0FBSyxDQUFDSSxPQUF2QjtBQUVBLEdBNUhVO0FBOEhYeUMsRUFBQUEsWUFBWSxFQUFFLFVBQVc1QixLQUFYLEVBQW1CO0FBRWhDLFdBQU8sQ0FBRUEsS0FBSyxHQUFLQSxLQUFLLEdBQUcsQ0FBcEIsTUFBOEIsQ0FBOUIsSUFBbUNBLEtBQUssS0FBSyxDQUFwRDtBQUVBLEdBbElVO0FBb0lYNkIsRUFBQUEsY0FBYyxFQUFFLFVBQVc3QixLQUFYLEVBQW1CO0FBRWxDLFdBQU9mLElBQUksQ0FBQzZDLEdBQUwsQ0FBVSxDQUFWLEVBQWE3QyxJQUFJLENBQUM4QyxJQUFMLENBQVc5QyxJQUFJLENBQUMrQyxHQUFMLENBQVVoQyxLQUFWLElBQW9CZixJQUFJLENBQUNnRCxHQUFwQyxDQUFiLENBQVA7QUFFQSxHQXhJVTtBQTBJWEMsRUFBQUEsZUFBZSxFQUFFLFVBQVdsQyxLQUFYLEVBQW1CO0FBRW5DLFdBQU9mLElBQUksQ0FBQzZDLEdBQUwsQ0FBVSxDQUFWLEVBQWE3QyxJQUFJLENBQUNtQyxLQUFMLENBQVluQyxJQUFJLENBQUMrQyxHQUFMLENBQVVoQyxLQUFWLElBQW9CZixJQUFJLENBQUNnRCxHQUFyQyxDQUFiLENBQVA7QUFFQTtBQTlJVSxDQUFaO0FBbUpBLFNBQVNsRCxLQUFUIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAYXV0aG9yIGFsdGVyZWRxIC8gaHR0cDovL2FsdGVyZWRxdWFsaWEuY29tL1xuICogQGF1dGhvciBtcmRvb2IgLyBodHRwOi8vbXJkb29iLmNvbS9cbiAqL1xuXG52YXIgX01hdGggPSB7XG5cblx0REVHMlJBRDogTWF0aC5QSSAvIDE4MCxcblx0UkFEMkRFRzogMTgwIC8gTWF0aC5QSSxcblxuXHRnZW5lcmF0ZVVVSUQ6ICggZnVuY3Rpb24gKCkge1xuXG5cdFx0Ly8gaHR0cDovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy8xMDUwMzQvaG93LXRvLWNyZWF0ZS1hLWd1aWQtdXVpZC1pbi1qYXZhc2NyaXB0LzIxOTYzMTM2IzIxOTYzMTM2XG5cblx0XHR2YXIgbHV0ID0gW107XG5cblx0XHRmb3IgKCB2YXIgaSA9IDA7IGkgPCAyNTY7IGkgKysgKSB7XG5cblx0XHRcdGx1dFsgaSBdID0gKCBpIDwgMTYgPyAnMCcgOiAnJyApICsgKCBpICkudG9TdHJpbmcoIDE2ICk7XG5cblx0XHR9XG5cblx0XHRyZXR1cm4gZnVuY3Rpb24gZ2VuZXJhdGVVVUlEKCkge1xuXG5cdFx0XHR2YXIgZDAgPSBNYXRoLnJhbmRvbSgpICogMHhmZmZmZmZmZiB8IDA7XG5cdFx0XHR2YXIgZDEgPSBNYXRoLnJhbmRvbSgpICogMHhmZmZmZmZmZiB8IDA7XG5cdFx0XHR2YXIgZDIgPSBNYXRoLnJhbmRvbSgpICogMHhmZmZmZmZmZiB8IDA7XG5cdFx0XHR2YXIgZDMgPSBNYXRoLnJhbmRvbSgpICogMHhmZmZmZmZmZiB8IDA7XG5cdFx0XHR2YXIgdXVpZCA9IGx1dFsgZDAgJiAweGZmIF0gKyBsdXRbIGQwID4+IDggJiAweGZmIF0gKyBsdXRbIGQwID4+IDE2ICYgMHhmZiBdICsgbHV0WyBkMCA+PiAyNCAmIDB4ZmYgXSArICctJyArXG5cdFx0XHRcdGx1dFsgZDEgJiAweGZmIF0gKyBsdXRbIGQxID4+IDggJiAweGZmIF0gKyAnLScgKyBsdXRbIGQxID4+IDE2ICYgMHgwZiB8IDB4NDAgXSArIGx1dFsgZDEgPj4gMjQgJiAweGZmIF0gKyAnLScgK1xuXHRcdFx0XHRsdXRbIGQyICYgMHgzZiB8IDB4ODAgXSArIGx1dFsgZDIgPj4gOCAmIDB4ZmYgXSArICctJyArIGx1dFsgZDIgPj4gMTYgJiAweGZmIF0gKyBsdXRbIGQyID4+IDI0ICYgMHhmZiBdICtcblx0XHRcdFx0bHV0WyBkMyAmIDB4ZmYgXSArIGx1dFsgZDMgPj4gOCAmIDB4ZmYgXSArIGx1dFsgZDMgPj4gMTYgJiAweGZmIF0gKyBsdXRbIGQzID4+IDI0ICYgMHhmZiBdO1xuXG5cdFx0XHQvLyAudG9VcHBlckNhc2UoKSBoZXJlIGZsYXR0ZW5zIGNvbmNhdGVuYXRlZCBzdHJpbmdzIHRvIHNhdmUgaGVhcCBtZW1vcnkgc3BhY2UuXG5cdFx0XHRyZXR1cm4gdXVpZC50b1VwcGVyQ2FzZSgpO1xuXG5cdFx0fTtcblxuXHR9ICkoKSxcblxuXHRjbGFtcDogZnVuY3Rpb24gKCB2YWx1ZSwgbWluLCBtYXggKSB7XG5cblx0XHRyZXR1cm4gTWF0aC5tYXgoIG1pbiwgTWF0aC5taW4oIG1heCwgdmFsdWUgKSApO1xuXG5cdH0sXG5cblx0Ly8gY29tcHV0ZSBldWNsaWRpYW4gbW9kdWxvIG9mIG0gJSBuXG5cdC8vIGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL01vZHVsb19vcGVyYXRpb25cblxuXHRldWNsaWRlYW5Nb2R1bG86IGZ1bmN0aW9uICggbiwgbSApIHtcblxuXHRcdHJldHVybiAoICggbiAlIG0gKSArIG0gKSAlIG07XG5cblx0fSxcblxuXHQvLyBMaW5lYXIgbWFwcGluZyBmcm9tIHJhbmdlIDxhMSwgYTI+IHRvIHJhbmdlIDxiMSwgYjI+XG5cblx0bWFwTGluZWFyOiBmdW5jdGlvbiAoIHgsIGExLCBhMiwgYjEsIGIyICkge1xuXG5cdFx0cmV0dXJuIGIxICsgKCB4IC0gYTEgKSAqICggYjIgLSBiMSApIC8gKCBhMiAtIGExICk7XG5cblx0fSxcblxuXHQvLyBodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9MaW5lYXJfaW50ZXJwb2xhdGlvblxuXG5cdGxlcnA6IGZ1bmN0aW9uICggeCwgeSwgdCApIHtcblxuXHRcdHJldHVybiAoIDEgLSB0ICkgKiB4ICsgdCAqIHk7XG5cblx0fSxcblxuXHQvLyBodHRwOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL1Ntb290aHN0ZXBcblxuXHRzbW9vdGhzdGVwOiBmdW5jdGlvbiAoIHgsIG1pbiwgbWF4ICkge1xuXG5cdFx0aWYgKCB4IDw9IG1pbiApIHJldHVybiAwO1xuXHRcdGlmICggeCA+PSBtYXggKSByZXR1cm4gMTtcblxuXHRcdHggPSAoIHggLSBtaW4gKSAvICggbWF4IC0gbWluICk7XG5cblx0XHRyZXR1cm4geCAqIHggKiAoIDMgLSAyICogeCApO1xuXG5cdH0sXG5cblx0c21vb3RoZXJzdGVwOiBmdW5jdGlvbiAoIHgsIG1pbiwgbWF4ICkge1xuXG5cdFx0aWYgKCB4IDw9IG1pbiApIHJldHVybiAwO1xuXHRcdGlmICggeCA+PSBtYXggKSByZXR1cm4gMTtcblxuXHRcdHggPSAoIHggLSBtaW4gKSAvICggbWF4IC0gbWluICk7XG5cblx0XHRyZXR1cm4geCAqIHggKiB4ICogKCB4ICogKCB4ICogNiAtIDE1ICkgKyAxMCApO1xuXG5cdH0sXG5cblx0Ly8gUmFuZG9tIGludGVnZXIgZnJvbSA8bG93LCBoaWdoPiBpbnRlcnZhbFxuXG5cdHJhbmRJbnQ6IGZ1bmN0aW9uICggbG93LCBoaWdoICkge1xuXG5cdFx0cmV0dXJuIGxvdyArIE1hdGguZmxvb3IoIE1hdGgucmFuZG9tKCkgKiAoIGhpZ2ggLSBsb3cgKyAxICkgKTtcblxuXHR9LFxuXG5cdC8vIFJhbmRvbSBmbG9hdCBmcm9tIDxsb3csIGhpZ2g+IGludGVydmFsXG5cblx0cmFuZEZsb2F0OiBmdW5jdGlvbiAoIGxvdywgaGlnaCApIHtcblxuXHRcdHJldHVybiBsb3cgKyBNYXRoLnJhbmRvbSgpICogKCBoaWdoIC0gbG93ICk7XG5cblx0fSxcblxuXHQvLyBSYW5kb20gZmxvYXQgZnJvbSA8LXJhbmdlLzIsIHJhbmdlLzI+IGludGVydmFsXG5cblx0cmFuZEZsb2F0U3ByZWFkOiBmdW5jdGlvbiAoIHJhbmdlICkge1xuXG5cdFx0cmV0dXJuIHJhbmdlICogKCAwLjUgLSBNYXRoLnJhbmRvbSgpICk7XG5cblx0fSxcblxuXHRkZWdUb1JhZDogZnVuY3Rpb24gKCBkZWdyZWVzICkge1xuXG5cdFx0cmV0dXJuIGRlZ3JlZXMgKiBfTWF0aC5ERUcyUkFEO1xuXG5cdH0sXG5cblx0cmFkVG9EZWc6IGZ1bmN0aW9uICggcmFkaWFucyApIHtcblxuXHRcdHJldHVybiByYWRpYW5zICogX01hdGguUkFEMkRFRztcblxuXHR9LFxuXG5cdGlzUG93ZXJPZlR3bzogZnVuY3Rpb24gKCB2YWx1ZSApIHtcblxuXHRcdHJldHVybiAoIHZhbHVlICYgKCB2YWx1ZSAtIDEgKSApID09PSAwICYmIHZhbHVlICE9PSAwO1xuXG5cdH0sXG5cblx0Y2VpbFBvd2VyT2ZUd286IGZ1bmN0aW9uICggdmFsdWUgKSB7XG5cblx0XHRyZXR1cm4gTWF0aC5wb3coIDIsIE1hdGguY2VpbCggTWF0aC5sb2coIHZhbHVlICkgLyBNYXRoLkxOMiApICk7XG5cblx0fSxcblxuXHRmbG9vclBvd2VyT2ZUd286IGZ1bmN0aW9uICggdmFsdWUgKSB7XG5cblx0XHRyZXR1cm4gTWF0aC5wb3coIDIsIE1hdGguZmxvb3IoIE1hdGgubG9nKCB2YWx1ZSApIC8gTWF0aC5MTjIgKSApO1xuXG5cdH1cblxufTtcblxuXG5leHBvcnQgeyBfTWF0aCB9OyJdfQ== ================================================ FILE: packages/sdk/lib/core/libs/three-nebula/core/three/Matrix4.js ================================================ import { Vector3 } from './Vector3.js'; /** * @author mrdoob / http://mrdoob.com/ * @author supereggbert / http://www.paulbrunt.co.uk/ * @author philogb / http://blog.thejit.org/ * @author jordi_ros / http://plattsoft.com * @author D1plo1d / http://github.com/D1plo1d * @author alteredq / http://alteredqualia.com/ * @author mikael emtinger / http://gomo.se/ * @author timknip / http://www.floorplanner.com/ * @author bhouston / http://clara.io * @author WestLangley / http://github.com/WestLangley */ function Matrix4() { this.elements = [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1]; if (arguments.length > 0) { console.error('THREE.Matrix4: the constructor no longer reads arguments. use .set() instead.'); } } Object.assign(Matrix4.prototype, { isMatrix4: true, set: function (n11, n12, n13, n14, n21, n22, n23, n24, n31, n32, n33, n34, n41, n42, n43, n44) { var te = this.elements; te[0] = n11; te[4] = n12; te[8] = n13; te[12] = n14; te[1] = n21; te[5] = n22; te[9] = n23; te[13] = n24; te[2] = n31; te[6] = n32; te[10] = n33; te[14] = n34; te[3] = n41; te[7] = n42; te[11] = n43; te[15] = n44; return this; }, identity: function () { this.set(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); return this; }, clone: function () { return new Matrix4().fromArray(this.elements); }, copy: function (m) { var te = this.elements; var me = m.elements; te[0] = me[0]; te[1] = me[1]; te[2] = me[2]; te[3] = me[3]; te[4] = me[4]; te[5] = me[5]; te[6] = me[6]; te[7] = me[7]; te[8] = me[8]; te[9] = me[9]; te[10] = me[10]; te[11] = me[11]; te[12] = me[12]; te[13] = me[13]; te[14] = me[14]; te[15] = me[15]; return this; }, copyPosition: function (m) { var te = this.elements, me = m.elements; te[12] = me[12]; te[13] = me[13]; te[14] = me[14]; return this; }, extractBasis: function (xAxis, yAxis, zAxis) { xAxis.setFromMatrixColumn(this, 0); yAxis.setFromMatrixColumn(this, 1); zAxis.setFromMatrixColumn(this, 2); return this; }, makeBasis: function (xAxis, yAxis, zAxis) { this.set(xAxis.x, yAxis.x, zAxis.x, 0, xAxis.y, yAxis.y, zAxis.y, 0, xAxis.z, yAxis.z, zAxis.z, 0, 0, 0, 0, 1); return this; }, extractRotation: function () { var v1 = new Vector3(); return function extractRotation(m) { // this method does not support reflection matrices var te = this.elements; var me = m.elements; var scaleX = 1 / v1.setFromMatrixColumn(m, 0).length(); var scaleY = 1 / v1.setFromMatrixColumn(m, 1).length(); var scaleZ = 1 / v1.setFromMatrixColumn(m, 2).length(); te[0] = me[0] * scaleX; te[1] = me[1] * scaleX; te[2] = me[2] * scaleX; te[3] = 0; te[4] = me[4] * scaleY; te[5] = me[5] * scaleY; te[6] = me[6] * scaleY; te[7] = 0; te[8] = me[8] * scaleZ; te[9] = me[9] * scaleZ; te[10] = me[10] * scaleZ; te[11] = 0; te[12] = 0; te[13] = 0; te[14] = 0; te[15] = 1; return this; }; }(), makeRotationFromEuler: function (euler) { if (!(euler && euler.isEuler)) { console.error('THREE.Matrix4: .makeRotationFromEuler() now expects a Euler rotation rather than a Vector3 and order.'); } var te = this.elements; var x = euler.x, y = euler.y, z = euler.z; var a = Math.cos(x), b = Math.sin(x); var c = Math.cos(y), d = Math.sin(y); var e = Math.cos(z), f = Math.sin(z); if (euler.order === 'XYZ') { var ae = a * e, af = a * f, be = b * e, bf = b * f; te[0] = c * e; te[4] = -c * f; te[8] = d; te[1] = af + be * d; te[5] = ae - bf * d; te[9] = -b * c; te[2] = bf - ae * d; te[6] = be + af * d; te[10] = a * c; } else if (euler.order === 'YXZ') { var ce = c * e, cf = c * f, de = d * e, df = d * f; te[0] = ce + df * b; te[4] = de * b - cf; te[8] = a * d; te[1] = a * f; te[5] = a * e; te[9] = -b; te[2] = cf * b - de; te[6] = df + ce * b; te[10] = a * c; } else if (euler.order === 'ZXY') { var ce = c * e, cf = c * f, de = d * e, df = d * f; te[0] = ce - df * b; te[4] = -a * f; te[8] = de + cf * b; te[1] = cf + de * b; te[5] = a * e; te[9] = df - ce * b; te[2] = -a * d; te[6] = b; te[10] = a * c; } else if (euler.order === 'ZYX') { var ae = a * e, af = a * f, be = b * e, bf = b * f; te[0] = c * e; te[4] = be * d - af; te[8] = ae * d + bf; te[1] = c * f; te[5] = bf * d + ae; te[9] = af * d - be; te[2] = -d; te[6] = b * c; te[10] = a * c; } else if (euler.order === 'YZX') { var ac = a * c, ad = a * d, bc = b * c, bd = b * d; te[0] = c * e; te[4] = bd - ac * f; te[8] = bc * f + ad; te[1] = f; te[5] = a * e; te[9] = -b * e; te[2] = -d * e; te[6] = ad * f + bc; te[10] = ac - bd * f; } else if (euler.order === 'XZY') { var ac = a * c, ad = a * d, bc = b * c, bd = b * d; te[0] = c * e; te[4] = -f; te[8] = d * e; te[1] = ac * f + bd; te[5] = a * e; te[9] = ad * f - bc; te[2] = bc * f - ad; te[6] = b * e; te[10] = bd * f + ac; } // bottom row te[3] = 0; te[7] = 0; te[11] = 0; // last column te[12] = 0; te[13] = 0; te[14] = 0; te[15] = 1; return this; }, makeRotationFromQuaternion: function () { var zero = new Vector3(0, 0, 0); var one = new Vector3(1, 1, 1); return function makeRotationFromQuaternion(q) { return this.compose(zero, q, one); }; }(), lookAt: function () { var x = new Vector3(); var y = new Vector3(); var z = new Vector3(); return function lookAt(eye, target, up) { var te = this.elements; z.subVectors(eye, target); if (z.lengthSq() === 0) { // eye and target are in the same position z.z = 1; } z.normalize(); x.crossVectors(up, z); if (x.lengthSq() === 0) { // up and z are parallel if (Math.abs(up.z) === 1) { z.x += 0.0001; } else { z.z += 0.0001; } z.normalize(); x.crossVectors(up, z); } x.normalize(); y.crossVectors(z, x); te[0] = x.x; te[4] = y.x; te[8] = z.x; te[1] = x.y; te[5] = y.y; te[9] = z.y; te[2] = x.z; te[6] = y.z; te[10] = z.z; return this; }; }(), multiply: function (m, n) { if (n !== undefined) { console.warn('THREE.Matrix4: .multiply() now only accepts one argument. Use .multiplyMatrices( a, b ) instead.'); return this.multiplyMatrices(m, n); } return this.multiplyMatrices(this, m); }, premultiply: function (m) { return this.multiplyMatrices(m, this); }, multiplyMatrices: function (a, b) { var ae = a.elements; var be = b.elements; var te = this.elements; var a11 = ae[0], a12 = ae[4], a13 = ae[8], a14 = ae[12]; var a21 = ae[1], a22 = ae[5], a23 = ae[9], a24 = ae[13]; var a31 = ae[2], a32 = ae[6], a33 = ae[10], a34 = ae[14]; var a41 = ae[3], a42 = ae[7], a43 = ae[11], a44 = ae[15]; var b11 = be[0], b12 = be[4], b13 = be[8], b14 = be[12]; var b21 = be[1], b22 = be[5], b23 = be[9], b24 = be[13]; var b31 = be[2], b32 = be[6], b33 = be[10], b34 = be[14]; var b41 = be[3], b42 = be[7], b43 = be[11], b44 = be[15]; te[0] = a11 * b11 + a12 * b21 + a13 * b31 + a14 * b41; te[4] = a11 * b12 + a12 * b22 + a13 * b32 + a14 * b42; te[8] = a11 * b13 + a12 * b23 + a13 * b33 + a14 * b43; te[12] = a11 * b14 + a12 * b24 + a13 * b34 + a14 * b44; te[1] = a21 * b11 + a22 * b21 + a23 * b31 + a24 * b41; te[5] = a21 * b12 + a22 * b22 + a23 * b32 + a24 * b42; te[9] = a21 * b13 + a22 * b23 + a23 * b33 + a24 * b43; te[13] = a21 * b14 + a22 * b24 + a23 * b34 + a24 * b44; te[2] = a31 * b11 + a32 * b21 + a33 * b31 + a34 * b41; te[6] = a31 * b12 + a32 * b22 + a33 * b32 + a34 * b42; te[10] = a31 * b13 + a32 * b23 + a33 * b33 + a34 * b43; te[14] = a31 * b14 + a32 * b24 + a33 * b34 + a34 * b44; te[3] = a41 * b11 + a42 * b21 + a43 * b31 + a44 * b41; te[7] = a41 * b12 + a42 * b22 + a43 * b32 + a44 * b42; te[11] = a41 * b13 + a42 * b23 + a43 * b33 + a44 * b43; te[15] = a41 * b14 + a42 * b24 + a43 * b34 + a44 * b44; return this; }, multiplyScalar: function (s) { var te = this.elements; te[0] *= s; te[4] *= s; te[8] *= s; te[12] *= s; te[1] *= s; te[5] *= s; te[9] *= s; te[13] *= s; te[2] *= s; te[6] *= s; te[10] *= s; te[14] *= s; te[3] *= s; te[7] *= s; te[11] *= s; te[15] *= s; return this; }, applyToBufferAttribute: function () { var v1 = new Vector3(); return function applyToBufferAttribute(attribute) { for (var i = 0, l = attribute.count; i < l; i++) { v1.x = attribute.getX(i); v1.y = attribute.getY(i); v1.z = attribute.getZ(i); v1.applyMatrix4(this); attribute.setXYZ(i, v1.x, v1.y, v1.z); } return attribute; }; }(), determinant: function () { var te = this.elements; var n11 = te[0], n12 = te[4], n13 = te[8], n14 = te[12]; var n21 = te[1], n22 = te[5], n23 = te[9], n24 = te[13]; var n31 = te[2], n32 = te[6], n33 = te[10], n34 = te[14]; var n41 = te[3], n42 = te[7], n43 = te[11], n44 = te[15]; //TODO: make this more efficient //( based on http://www.euclideanspace.com/maths/algebra/matrix/functions/inverse/fourD/index.htm ) return n41 * (+n14 * n23 * n32 - n13 * n24 * n32 - n14 * n22 * n33 + n12 * n24 * n33 + n13 * n22 * n34 - n12 * n23 * n34) + n42 * (+n11 * n23 * n34 - n11 * n24 * n33 + n14 * n21 * n33 - n13 * n21 * n34 + n13 * n24 * n31 - n14 * n23 * n31) + n43 * (+n11 * n24 * n32 - n11 * n22 * n34 - n14 * n21 * n32 + n12 * n21 * n34 + n14 * n22 * n31 - n12 * n24 * n31) + n44 * (-n13 * n22 * n31 - n11 * n23 * n32 + n11 * n22 * n33 + n13 * n21 * n32 - n12 * n21 * n33 + n12 * n23 * n31); }, transpose: function () { var te = this.elements; var tmp; tmp = te[1]; te[1] = te[4]; te[4] = tmp; tmp = te[2]; te[2] = te[8]; te[8] = tmp; tmp = te[6]; te[6] = te[9]; te[9] = tmp; tmp = te[3]; te[3] = te[12]; te[12] = tmp; tmp = te[7]; te[7] = te[13]; te[13] = tmp; tmp = te[11]; te[11] = te[14]; te[14] = tmp; return this; }, setPosition: function (x, y, z) { var te = this.elements; if (x.isVector3) { te[12] = x.x; te[13] = x.y; te[14] = x.z; } else { te[12] = x; te[13] = y; te[14] = z; } return this; }, getInverse: function (m, throwOnDegenerate) { // based on http://www.euclideanspace.com/maths/algebra/matrix/functions/inverse/fourD/index.htm var te = this.elements, me = m.elements, n11 = me[0], n21 = me[1], n31 = me[2], n41 = me[3], n12 = me[4], n22 = me[5], n32 = me[6], n42 = me[7], n13 = me[8], n23 = me[9], n33 = me[10], n43 = me[11], n14 = me[12], n24 = me[13], n34 = me[14], n44 = me[15], t11 = n23 * n34 * n42 - n24 * n33 * n42 + n24 * n32 * n43 - n22 * n34 * n43 - n23 * n32 * n44 + n22 * n33 * n44, t12 = n14 * n33 * n42 - n13 * n34 * n42 - n14 * n32 * n43 + n12 * n34 * n43 + n13 * n32 * n44 - n12 * n33 * n44, t13 = n13 * n24 * n42 - n14 * n23 * n42 + n14 * n22 * n43 - n12 * n24 * n43 - n13 * n22 * n44 + n12 * n23 * n44, t14 = n14 * n23 * n32 - n13 * n24 * n32 - n14 * n22 * n33 + n12 * n24 * n33 + n13 * n22 * n34 - n12 * n23 * n34; var det = n11 * t11 + n21 * t12 + n31 * t13 + n41 * t14; if (det === 0) { var msg = "THREE.Matrix4: .getInverse() can't invert matrix, determinant is 0"; if (throwOnDegenerate === true) { throw new Error(msg); } else { console.warn(msg); } return this.identity(); } var detInv = 1 / det; te[0] = t11 * detInv; te[1] = (n24 * n33 * n41 - n23 * n34 * n41 - n24 * n31 * n43 + n21 * n34 * n43 + n23 * n31 * n44 - n21 * n33 * n44) * detInv; te[2] = (n22 * n34 * n41 - n24 * n32 * n41 + n24 * n31 * n42 - n21 * n34 * n42 - n22 * n31 * n44 + n21 * n32 * n44) * detInv; te[3] = (n23 * n32 * n41 - n22 * n33 * n41 - n23 * n31 * n42 + n21 * n33 * n42 + n22 * n31 * n43 - n21 * n32 * n43) * detInv; te[4] = t12 * detInv; te[5] = (n13 * n34 * n41 - n14 * n33 * n41 + n14 * n31 * n43 - n11 * n34 * n43 - n13 * n31 * n44 + n11 * n33 * n44) * detInv; te[6] = (n14 * n32 * n41 - n12 * n34 * n41 - n14 * n31 * n42 + n11 * n34 * n42 + n12 * n31 * n44 - n11 * n32 * n44) * detInv; te[7] = (n12 * n33 * n41 - n13 * n32 * n41 + n13 * n31 * n42 - n11 * n33 * n42 - n12 * n31 * n43 + n11 * n32 * n43) * detInv; te[8] = t13 * detInv; te[9] = (n14 * n23 * n41 - n13 * n24 * n41 - n14 * n21 * n43 + n11 * n24 * n43 + n13 * n21 * n44 - n11 * n23 * n44) * detInv; te[10] = (n12 * n24 * n41 - n14 * n22 * n41 + n14 * n21 * n42 - n11 * n24 * n42 - n12 * n21 * n44 + n11 * n22 * n44) * detInv; te[11] = (n13 * n22 * n41 - n12 * n23 * n41 - n13 * n21 * n42 + n11 * n23 * n42 + n12 * n21 * n43 - n11 * n22 * n43) * detInv; te[12] = t14 * detInv; te[13] = (n13 * n24 * n31 - n14 * n23 * n31 + n14 * n21 * n33 - n11 * n24 * n33 - n13 * n21 * n34 + n11 * n23 * n34) * detInv; te[14] = (n14 * n22 * n31 - n12 * n24 * n31 - n14 * n21 * n32 + n11 * n24 * n32 + n12 * n21 * n34 - n11 * n22 * n34) * detInv; te[15] = (n12 * n23 * n31 - n13 * n22 * n31 + n13 * n21 * n32 - n11 * n23 * n32 - n12 * n21 * n33 + n11 * n22 * n33) * detInv; return this; }, scale: function (v) { var te = this.elements; var x = v.x, y = v.y, z = v.z; te[0] *= x; te[4] *= y; te[8] *= z; te[1] *= x; te[5] *= y; te[9] *= z; te[2] *= x; te[6] *= y; te[10] *= z; te[3] *= x; te[7] *= y; te[11] *= z; return this; }, getMaxScaleOnAxis: function () { var te = this.elements; var scaleXSq = te[0] * te[0] + te[1] * te[1] + te[2] * te[2]; var scaleYSq = te[4] * te[4] + te[5] * te[5] + te[6] * te[6]; var scaleZSq = te[8] * te[8] + te[9] * te[9] + te[10] * te[10]; return Math.sqrt(Math.max(scaleXSq, scaleYSq, scaleZSq)); }, makeTranslation: function (x, y, z) { this.set(1, 0, 0, x, 0, 1, 0, y, 0, 0, 1, z, 0, 0, 0, 1); return this; }, makeRotationX: function (theta) { var c = Math.cos(theta), s = Math.sin(theta); this.set(1, 0, 0, 0, 0, c, -s, 0, 0, s, c, 0, 0, 0, 0, 1); return this; }, makeRotationY: function (theta) { var c = Math.cos(theta), s = Math.sin(theta); this.set(c, 0, s, 0, 0, 1, 0, 0, -s, 0, c, 0, 0, 0, 0, 1); return this; }, makeRotationZ: function (theta) { var c = Math.cos(theta), s = Math.sin(theta); this.set(c, -s, 0, 0, s, c, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); return this; }, makeRotationAxis: function (axis, angle) { // Based on http://www.gamedev.net/reference/articles/article1199.asp var c = Math.cos(angle); var s = Math.sin(angle); var t = 1 - c; var x = axis.x, y = axis.y, z = axis.z; var tx = t * x, ty = t * y; this.set(tx * x + c, tx * y - s * z, tx * z + s * y, 0, tx * y + s * z, ty * y + c, ty * z - s * x, 0, tx * z - s * y, ty * z + s * x, t * z * z + c, 0, 0, 0, 0, 1); return this; }, makeScale: function (x, y, z) { this.set(x, 0, 0, 0, 0, y, 0, 0, 0, 0, z, 0, 0, 0, 0, 1); return this; }, makeShear: function (x, y, z) { this.set(1, y, z, 0, x, 1, z, 0, x, y, 1, 0, 0, 0, 0, 1); return this; }, compose: function (position, quaternion, scale) { var te = this.elements; var x = quaternion._x, y = quaternion._y, z = quaternion._z, w = quaternion._w; var x2 = x + x, y2 = y + y, z2 = z + z; var xx = x * x2, xy = x * y2, xz = x * z2; var yy = y * y2, yz = y * z2, zz = z * z2; var wx = w * x2, wy = w * y2, wz = w * z2; var sx = scale.x, sy = scale.y, sz = scale.z; te[0] = (1 - (yy + zz)) * sx; te[1] = (xy + wz) * sx; te[2] = (xz - wy) * sx; te[3] = 0; te[4] = (xy - wz) * sy; te[5] = (1 - (xx + zz)) * sy; te[6] = (yz + wx) * sy; te[7] = 0; te[8] = (xz + wy) * sz; te[9] = (yz - wx) * sz; te[10] = (1 - (xx + yy)) * sz; te[11] = 0; te[12] = position.x; te[13] = position.y; te[14] = position.z; te[15] = 1; return this; }, decompose: function () { var vector = new Vector3(); var matrix = new Matrix4(); return function decompose(position, quaternion, scale) { var te = this.elements; var sx = vector.set(te[0], te[1], te[2]).length(); var sy = vector.set(te[4], te[5], te[6]).length(); var sz = vector.set(te[8], te[9], te[10]).length(); // if determine is negative, we need to invert one scale var det = this.determinant(); if (det < 0) sx = -sx; position.x = te[12]; position.y = te[13]; position.z = te[14]; // scale the rotation part matrix.copy(this); var invSX = 1 / sx; var invSY = 1 / sy; var invSZ = 1 / sz; matrix.elements[0] *= invSX; matrix.elements[1] *= invSX; matrix.elements[2] *= invSX; matrix.elements[4] *= invSY; matrix.elements[5] *= invSY; matrix.elements[6] *= invSY; matrix.elements[8] *= invSZ; matrix.elements[9] *= invSZ; matrix.elements[10] *= invSZ; quaternion.setFromRotationMatrix(matrix); scale.x = sx; scale.y = sy; scale.z = sz; return this; }; }(), makePerspective: function (left, right, top, bottom, near, far) { if (far === undefined) { console.warn('THREE.Matrix4: .makePerspective() has been redefined and has a new signature. Please check the docs.'); } var te = this.elements; var x = 2 * near / (right - left); var y = 2 * near / (top - bottom); var a = (right + left) / (right - left); var b = (top + bottom) / (top - bottom); var c = -(far + near) / (far - near); var d = -2 * far * near / (far - near); te[0] = x; te[4] = 0; te[8] = a; te[12] = 0; te[1] = 0; te[5] = y; te[9] = b; te[13] = 0; te[2] = 0; te[6] = 0; te[10] = c; te[14] = d; te[3] = 0; te[7] = 0; te[11] = -1; te[15] = 0; return this; }, makeOrthographic: function (left, right, top, bottom, near, far) { var te = this.elements; var w = 1.0 / (right - left); var h = 1.0 / (top - bottom); var p = 1.0 / (far - near); var x = (right + left) * w; var y = (top + bottom) * h; var z = (far + near) * p; te[0] = 2 * w; te[4] = 0; te[8] = 0; te[12] = -x; te[1] = 0; te[5] = 2 * h; te[9] = 0; te[13] = -y; te[2] = 0; te[6] = 0; te[10] = -2 * p; te[14] = -z; te[3] = 0; te[7] = 0; te[11] = 0; te[15] = 1; return this; }, equals: function (matrix) { var te = this.elements; var me = matrix.elements; for (var i = 0; i < 16; i++) { if (te[i] !== me[i]) return false; } return true; }, fromArray: function (array, offset) { if (offset === undefined) offset = 0; for (var i = 0; i < 16; i++) { this.elements[i] = array[i + offset]; } return this; }, toArray: function (array, offset) { if (array === undefined) array = []; if (offset === undefined) offset = 0; var te = this.elements; array[offset] = te[0]; array[offset + 1] = te[1]; array[offset + 2] = te[2]; array[offset + 3] = te[3]; array[offset + 4] = te[4]; array[offset + 5] = te[5]; array[offset + 6] = te[6]; array[offset + 7] = te[7]; array[offset + 8] = te[8]; array[offset + 9] = te[9]; array[offset + 10] = te[10]; array[offset + 11] = te[11]; array[offset + 12] = te[12]; array[offset + 13] = te[13]; array[offset + 14] = te[14]; array[offset + 15] = te[15]; return array; } }); export { Matrix4 }; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb3JlL3RocmVlL01hdHJpeDQuanMiXSwibmFtZXMiOlsiVmVjdG9yMyIsIk1hdHJpeDQiLCJlbGVtZW50cyIsImFyZ3VtZW50cyIsImxlbmd0aCIsImNvbnNvbGUiLCJlcnJvciIsIk9iamVjdCIsImFzc2lnbiIsInByb3RvdHlwZSIsImlzTWF0cml4NCIsInNldCIsIm4xMSIsIm4xMiIsIm4xMyIsIm4xNCIsIm4yMSIsIm4yMiIsIm4yMyIsIm4yNCIsIm4zMSIsIm4zMiIsIm4zMyIsIm4zNCIsIm40MSIsIm40MiIsIm40MyIsIm40NCIsInRlIiwiaWRlbnRpdHkiLCJjbG9uZSIsImZyb21BcnJheSIsImNvcHkiLCJtIiwibWUiLCJjb3B5UG9zaXRpb24iLCJleHRyYWN0QmFzaXMiLCJ4QXhpcyIsInlBeGlzIiwiekF4aXMiLCJzZXRGcm9tTWF0cml4Q29sdW1uIiwibWFrZUJhc2lzIiwieCIsInkiLCJ6IiwiZXh0cmFjdFJvdGF0aW9uIiwidjEiLCJzY2FsZVgiLCJzY2FsZVkiLCJzY2FsZVoiLCJtYWtlUm90YXRpb25Gcm9tRXVsZXIiLCJldWxlciIsImlzRXVsZXIiLCJhIiwiTWF0aCIsImNvcyIsImIiLCJzaW4iLCJjIiwiZCIsImUiLCJmIiwib3JkZXIiLCJhZSIsImFmIiwiYmUiLCJiZiIsImNlIiwiY2YiLCJkZSIsImRmIiwiYWMiLCJhZCIsImJjIiwiYmQiLCJtYWtlUm90YXRpb25Gcm9tUXVhdGVybmlvbiIsInplcm8iLCJvbmUiLCJxIiwiY29tcG9zZSIsImxvb2tBdCIsImV5ZSIsInRhcmdldCIsInVwIiwic3ViVmVjdG9ycyIsImxlbmd0aFNxIiwibm9ybWFsaXplIiwiY3Jvc3NWZWN0b3JzIiwiYWJzIiwibXVsdGlwbHkiLCJuIiwidW5kZWZpbmVkIiwid2FybiIsIm11bHRpcGx5TWF0cmljZXMiLCJwcmVtdWx0aXBseSIsImExMSIsImExMiIsImExMyIsImExNCIsImEyMSIsImEyMiIsImEyMyIsImEyNCIsImEzMSIsImEzMiIsImEzMyIsImEzNCIsImE0MSIsImE0MiIsImE0MyIsImE0NCIsImIxMSIsImIxMiIsImIxMyIsImIxNCIsImIyMSIsImIyMiIsImIyMyIsImIyNCIsImIzMSIsImIzMiIsImIzMyIsImIzNCIsImI0MSIsImI0MiIsImI0MyIsImI0NCIsIm11bHRpcGx5U2NhbGFyIiwicyIsImFwcGx5VG9CdWZmZXJBdHRyaWJ1dGUiLCJhdHRyaWJ1dGUiLCJpIiwibCIsImNvdW50IiwiZ2V0WCIsImdldFkiLCJnZXRaIiwiYXBwbHlNYXRyaXg0Iiwic2V0WFlaIiwiZGV0ZXJtaW5hbnQiLCJ0cmFuc3Bvc2UiLCJ0bXAiLCJzZXRQb3NpdGlvbiIsImlzVmVjdG9yMyIsImdldEludmVyc2UiLCJ0aHJvd09uRGVnZW5lcmF0ZSIsInQxMSIsInQxMiIsInQxMyIsInQxNCIsImRldCIsIm1zZyIsIkVycm9yIiwiZGV0SW52Iiwic2NhbGUiLCJ2IiwiZ2V0TWF4U2NhbGVPbkF4aXMiLCJzY2FsZVhTcSIsInNjYWxlWVNxIiwic2NhbGVaU3EiLCJzcXJ0IiwibWF4IiwibWFrZVRyYW5zbGF0aW9uIiwibWFrZVJvdGF0aW9uWCIsInRoZXRhIiwibWFrZVJvdGF0aW9uWSIsIm1ha2VSb3RhdGlvbloiLCJtYWtlUm90YXRpb25BeGlzIiwiYXhpcyIsImFuZ2xlIiwidCIsInR4IiwidHkiLCJtYWtlU2NhbGUiLCJtYWtlU2hlYXIiLCJwb3NpdGlvbiIsInF1YXRlcm5pb24iLCJfeCIsIl95IiwiX3oiLCJ3IiwiX3ciLCJ4MiIsInkyIiwiejIiLCJ4eCIsInh5IiwieHoiLCJ5eSIsInl6IiwienoiLCJ3eCIsInd5Iiwid3oiLCJzeCIsInN5Iiwic3oiLCJkZWNvbXBvc2UiLCJ2ZWN0b3IiLCJtYXRyaXgiLCJpbnZTWCIsImludlNZIiwiaW52U1oiLCJzZXRGcm9tUm90YXRpb25NYXRyaXgiLCJtYWtlUGVyc3BlY3RpdmUiLCJsZWZ0IiwicmlnaHQiLCJ0b3AiLCJib3R0b20iLCJuZWFyIiwiZmFyIiwibWFrZU9ydGhvZ3JhcGhpYyIsImgiLCJwIiwiZXF1YWxzIiwiYXJyYXkiLCJvZmZzZXQiLCJ0b0FycmF5Il0sIm1hcHBpbmdzIjoiQUFBQSxTQUFTQSxPQUFULFFBQXdCLGNBQXhCO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLFNBQVNDLE9BQVQsR0FBbUI7QUFFbEIsT0FBS0MsUUFBTCxHQUFnQixDQUVmLENBRmUsRUFFWixDQUZZLEVBRVQsQ0FGUyxFQUVOLENBRk0sRUFHZixDQUhlLEVBR1osQ0FIWSxFQUdULENBSFMsRUFHTixDQUhNLEVBSWYsQ0FKZSxFQUlaLENBSlksRUFJVCxDQUpTLEVBSU4sQ0FKTSxFQUtmLENBTGUsRUFLWixDQUxZLEVBS1QsQ0FMUyxFQUtOLENBTE0sQ0FBaEI7O0FBU0EsTUFBS0MsU0FBUyxDQUFDQyxNQUFWLEdBQW1CLENBQXhCLEVBQTRCO0FBRTNCQyxJQUFBQSxPQUFPLENBQUNDLEtBQVIsQ0FBZSwrRUFBZjtBQUVBO0FBRUQ7O0FBRURDLE1BQU0sQ0FBQ0MsTUFBUCxDQUFlUCxPQUFPLENBQUNRLFNBQXZCLEVBQWtDO0FBRWpDQyxFQUFBQSxTQUFTLEVBQUUsSUFGc0I7QUFJakNDLEVBQUFBLEdBQUcsRUFBRSxVQUFXQyxHQUFYLEVBQWdCQyxHQUFoQixFQUFxQkMsR0FBckIsRUFBMEJDLEdBQTFCLEVBQStCQyxHQUEvQixFQUFvQ0MsR0FBcEMsRUFBeUNDLEdBQXpDLEVBQThDQyxHQUE5QyxFQUFtREMsR0FBbkQsRUFBd0RDLEdBQXhELEVBQTZEQyxHQUE3RCxFQUFrRUMsR0FBbEUsRUFBdUVDLEdBQXZFLEVBQTRFQyxHQUE1RSxFQUFpRkMsR0FBakYsRUFBc0ZDLEdBQXRGLEVBQTRGO0FBRWhHLFFBQUlDLEVBQUUsR0FBRyxLQUFLMUIsUUFBZDtBQUVBMEIsSUFBQUEsRUFBRSxDQUFFLENBQUYsQ0FBRixHQUFVaEIsR0FBVjtBQUFlZ0IsSUFBQUEsRUFBRSxDQUFFLENBQUYsQ0FBRixHQUFVZixHQUFWO0FBQWVlLElBQUFBLEVBQUUsQ0FBRSxDQUFGLENBQUYsR0FBVWQsR0FBVjtBQUFlYyxJQUFBQSxFQUFFLENBQUUsRUFBRixDQUFGLEdBQVdiLEdBQVg7QUFDN0NhLElBQUFBLEVBQUUsQ0FBRSxDQUFGLENBQUYsR0FBVVosR0FBVjtBQUFlWSxJQUFBQSxFQUFFLENBQUUsQ0FBRixDQUFGLEdBQVVYLEdBQVY7QUFBZVcsSUFBQUEsRUFBRSxDQUFFLENBQUYsQ0FBRixHQUFVVixHQUFWO0FBQWVVLElBQUFBLEVBQUUsQ0FBRSxFQUFGLENBQUYsR0FBV1QsR0FBWDtBQUM3Q1MsSUFBQUEsRUFBRSxDQUFFLENBQUYsQ0FBRixHQUFVUixHQUFWO0FBQWVRLElBQUFBLEVBQUUsQ0FBRSxDQUFGLENBQUYsR0FBVVAsR0FBVjtBQUFlTyxJQUFBQSxFQUFFLENBQUUsRUFBRixDQUFGLEdBQVdOLEdBQVg7QUFBZ0JNLElBQUFBLEVBQUUsQ0FBRSxFQUFGLENBQUYsR0FBV0wsR0FBWDtBQUM5Q0ssSUFBQUEsRUFBRSxDQUFFLENBQUYsQ0FBRixHQUFVSixHQUFWO0FBQWVJLElBQUFBLEVBQUUsQ0FBRSxDQUFGLENBQUYsR0FBVUgsR0FBVjtBQUFlRyxJQUFBQSxFQUFFLENBQUUsRUFBRixDQUFGLEdBQVdGLEdBQVg7QUFBZ0JFLElBQUFBLEVBQUUsQ0FBRSxFQUFGLENBQUYsR0FBV0QsR0FBWDtBQUU5QyxXQUFPLElBQVA7QUFFQSxHQWZnQztBQWlCakNFLEVBQUFBLFFBQVEsRUFBRSxZQUFZO0FBRXJCLFNBQUtsQixHQUFMLENBRUMsQ0FGRCxFQUVJLENBRkosRUFFTyxDQUZQLEVBRVUsQ0FGVixFQUdDLENBSEQsRUFHSSxDQUhKLEVBR08sQ0FIUCxFQUdVLENBSFYsRUFJQyxDQUpELEVBSUksQ0FKSixFQUlPLENBSlAsRUFJVSxDQUpWLEVBS0MsQ0FMRCxFQUtJLENBTEosRUFLTyxDQUxQLEVBS1UsQ0FMVjtBQVNBLFdBQU8sSUFBUDtBQUVBLEdBOUJnQztBQWdDakNtQixFQUFBQSxLQUFLLEVBQUUsWUFBWTtBQUVsQixXQUFPLElBQUk3QixPQUFKLEdBQWM4QixTQUFkLENBQXlCLEtBQUs3QixRQUE5QixDQUFQO0FBRUEsR0FwQ2dDO0FBc0NqQzhCLEVBQUFBLElBQUksRUFBRSxVQUFXQyxDQUFYLEVBQWU7QUFFcEIsUUFBSUwsRUFBRSxHQUFHLEtBQUsxQixRQUFkO0FBQ0EsUUFBSWdDLEVBQUUsR0FBR0QsQ0FBQyxDQUFDL0IsUUFBWDtBQUVBMEIsSUFBQUEsRUFBRSxDQUFFLENBQUYsQ0FBRixHQUFVTSxFQUFFLENBQUUsQ0FBRixDQUFaO0FBQW1CTixJQUFBQSxFQUFFLENBQUUsQ0FBRixDQUFGLEdBQVVNLEVBQUUsQ0FBRSxDQUFGLENBQVo7QUFBbUJOLElBQUFBLEVBQUUsQ0FBRSxDQUFGLENBQUYsR0FBVU0sRUFBRSxDQUFFLENBQUYsQ0FBWjtBQUFtQk4sSUFBQUEsRUFBRSxDQUFFLENBQUYsQ0FBRixHQUFVTSxFQUFFLENBQUUsQ0FBRixDQUFaO0FBQ3pETixJQUFBQSxFQUFFLENBQUUsQ0FBRixDQUFGLEdBQVVNLEVBQUUsQ0FBRSxDQUFGLENBQVo7QUFBbUJOLElBQUFBLEVBQUUsQ0FBRSxDQUFGLENBQUYsR0FBVU0sRUFBRSxDQUFFLENBQUYsQ0FBWjtBQUFtQk4sSUFBQUEsRUFBRSxDQUFFLENBQUYsQ0FBRixHQUFVTSxFQUFFLENBQUUsQ0FBRixDQUFaO0FBQW1CTixJQUFBQSxFQUFFLENBQUUsQ0FBRixDQUFGLEdBQVVNLEVBQUUsQ0FBRSxDQUFGLENBQVo7QUFDekROLElBQUFBLEVBQUUsQ0FBRSxDQUFGLENBQUYsR0FBVU0sRUFBRSxDQUFFLENBQUYsQ0FBWjtBQUFtQk4sSUFBQUEsRUFBRSxDQUFFLENBQUYsQ0FBRixHQUFVTSxFQUFFLENBQUUsQ0FBRixDQUFaO0FBQW1CTixJQUFBQSxFQUFFLENBQUUsRUFBRixDQUFGLEdBQVdNLEVBQUUsQ0FBRSxFQUFGLENBQWI7QUFBcUJOLElBQUFBLEVBQUUsQ0FBRSxFQUFGLENBQUYsR0FBV00sRUFBRSxDQUFFLEVBQUYsQ0FBYjtBQUMzRE4sSUFBQUEsRUFBRSxDQUFFLEVBQUYsQ0FBRixHQUFXTSxFQUFFLENBQUUsRUFBRixDQUFiO0FBQXFCTixJQUFBQSxFQUFFLENBQUUsRUFBRixDQUFGLEdBQVdNLEVBQUUsQ0FBRSxFQUFGLENBQWI7QUFBcUJOLElBQUFBLEVBQUUsQ0FBRSxFQUFGLENBQUYsR0FBV00sRUFBRSxDQUFFLEVBQUYsQ0FBYjtBQUFxQk4sSUFBQUEsRUFBRSxDQUFFLEVBQUYsQ0FBRixHQUFXTSxFQUFFLENBQUUsRUFBRixDQUFiO0FBRS9ELFdBQU8sSUFBUDtBQUVBLEdBbERnQztBQW9EakNDLEVBQUFBLFlBQVksRUFBRSxVQUFXRixDQUFYLEVBQWU7QUFFNUIsUUFBSUwsRUFBRSxHQUFHLEtBQUsxQixRQUFkO0FBQUEsUUFBd0JnQyxFQUFFLEdBQUdELENBQUMsQ0FBQy9CLFFBQS9CO0FBRUEwQixJQUFBQSxFQUFFLENBQUUsRUFBRixDQUFGLEdBQVdNLEVBQUUsQ0FBRSxFQUFGLENBQWI7QUFDQU4sSUFBQUEsRUFBRSxDQUFFLEVBQUYsQ0FBRixHQUFXTSxFQUFFLENBQUUsRUFBRixDQUFiO0FBQ0FOLElBQUFBLEVBQUUsQ0FBRSxFQUFGLENBQUYsR0FBV00sRUFBRSxDQUFFLEVBQUYsQ0FBYjtBQUVBLFdBQU8sSUFBUDtBQUVBLEdBOURnQztBQWdFakNFLEVBQUFBLFlBQVksRUFBRSxVQUFXQyxLQUFYLEVBQWtCQyxLQUFsQixFQUF5QkMsS0FBekIsRUFBaUM7QUFFOUNGLElBQUFBLEtBQUssQ0FBQ0csbUJBQU4sQ0FBMkIsSUFBM0IsRUFBaUMsQ0FBakM7QUFDQUYsSUFBQUEsS0FBSyxDQUFDRSxtQkFBTixDQUEyQixJQUEzQixFQUFpQyxDQUFqQztBQUNBRCxJQUFBQSxLQUFLLENBQUNDLG1CQUFOLENBQTJCLElBQTNCLEVBQWlDLENBQWpDO0FBRUEsV0FBTyxJQUFQO0FBRUEsR0F4RWdDO0FBMEVqQ0MsRUFBQUEsU0FBUyxFQUFFLFVBQVdKLEtBQVgsRUFBa0JDLEtBQWxCLEVBQXlCQyxLQUF6QixFQUFpQztBQUUzQyxTQUFLNUIsR0FBTCxDQUNDMEIsS0FBSyxDQUFDSyxDQURQLEVBQ1VKLEtBQUssQ0FBQ0ksQ0FEaEIsRUFDbUJILEtBQUssQ0FBQ0csQ0FEekIsRUFDNEIsQ0FENUIsRUFFQ0wsS0FBSyxDQUFDTSxDQUZQLEVBRVVMLEtBQUssQ0FBQ0ssQ0FGaEIsRUFFbUJKLEtBQUssQ0FBQ0ksQ0FGekIsRUFFNEIsQ0FGNUIsRUFHQ04sS0FBSyxDQUFDTyxDQUhQLEVBR1VOLEtBQUssQ0FBQ00sQ0FIaEIsRUFHbUJMLEtBQUssQ0FBQ0ssQ0FIekIsRUFHNEIsQ0FINUIsRUFJQyxDQUpELEVBSUksQ0FKSixFQUlPLENBSlAsRUFJVSxDQUpWO0FBT0EsV0FBTyxJQUFQO0FBRUEsR0FyRmdDO0FBdUZqQ0MsRUFBQUEsZUFBZSxFQUFFLFlBQVk7QUFFNUIsUUFBSUMsRUFBRSxHQUFHLElBQUk5QyxPQUFKLEVBQVQ7QUFFQSxXQUFPLFNBQVM2QyxlQUFULENBQTBCWixDQUExQixFQUE4QjtBQUVwQztBQUVBLFVBQUlMLEVBQUUsR0FBRyxLQUFLMUIsUUFBZDtBQUNBLFVBQUlnQyxFQUFFLEdBQUdELENBQUMsQ0FBQy9CLFFBQVg7QUFFQSxVQUFJNkMsTUFBTSxHQUFHLElBQUlELEVBQUUsQ0FBQ04sbUJBQUgsQ0FBd0JQLENBQXhCLEVBQTJCLENBQTNCLEVBQStCN0IsTUFBL0IsRUFBakI7QUFDQSxVQUFJNEMsTUFBTSxHQUFHLElBQUlGLEVBQUUsQ0FBQ04sbUJBQUgsQ0FBd0JQLENBQXhCLEVBQTJCLENBQTNCLEVBQStCN0IsTUFBL0IsRUFBakI7QUFDQSxVQUFJNkMsTUFBTSxHQUFHLElBQUlILEVBQUUsQ0FBQ04sbUJBQUgsQ0FBd0JQLENBQXhCLEVBQTJCLENBQTNCLEVBQStCN0IsTUFBL0IsRUFBakI7QUFFQXdCLE1BQUFBLEVBQUUsQ0FBRSxDQUFGLENBQUYsR0FBVU0sRUFBRSxDQUFFLENBQUYsQ0FBRixHQUFVYSxNQUFwQjtBQUNBbkIsTUFBQUEsRUFBRSxDQUFFLENBQUYsQ0FBRixHQUFVTSxFQUFFLENBQUUsQ0FBRixDQUFGLEdBQVVhLE1BQXBCO0FBQ0FuQixNQUFBQSxFQUFFLENBQUUsQ0FBRixDQUFGLEdBQVVNLEVBQUUsQ0FBRSxDQUFGLENBQUYsR0FBVWEsTUFBcEI7QUFDQW5CLE1BQUFBLEVBQUUsQ0FBRSxDQUFGLENBQUYsR0FBVSxDQUFWO0FBRUFBLE1BQUFBLEVBQUUsQ0FBRSxDQUFGLENBQUYsR0FBVU0sRUFBRSxDQUFFLENBQUYsQ0FBRixHQUFVYyxNQUFwQjtBQUNBcEIsTUFBQUEsRUFBRSxDQUFFLENBQUYsQ0FBRixHQUFVTSxFQUFFLENBQUUsQ0FBRixDQUFGLEdBQVVjLE1BQXBCO0FBQ0FwQixNQUFBQSxFQUFFLENBQUUsQ0FBRixDQUFGLEdBQVVNLEVBQUUsQ0FBRSxDQUFGLENBQUYsR0FBVWMsTUFBcEI7QUFDQXBCLE1BQUFBLEVBQUUsQ0FBRSxDQUFGLENBQUYsR0FBVSxDQUFWO0FBRUFBLE1BQUFBLEVBQUUsQ0FBRSxDQUFGLENBQUYsR0FBVU0sRUFBRSxDQUFFLENBQUYsQ0FBRixHQUFVZSxNQUFwQjtBQUNBckIsTUFBQUEsRUFBRSxDQUFFLENBQUYsQ0FBRixHQUFVTSxFQUFFLENBQUUsQ0FBRixDQUFGLEdBQVVlLE1BQXBCO0FBQ0FyQixNQUFBQSxFQUFFLENBQUUsRUFBRixDQUFGLEdBQVdNLEVBQUUsQ0FBRSxFQUFGLENBQUYsR0FBV2UsTUFBdEI7QUFDQXJCLE1BQUFBLEVBQUUsQ0FBRSxFQUFGLENBQUYsR0FBVyxDQUFYO0FBRUFBLE1BQUFBLEVBQUUsQ0FBRSxFQUFGLENBQUYsR0FBVyxDQUFYO0FBQ0FBLE1BQUFBLEVBQUUsQ0FBRSxFQUFGLENBQUYsR0FBVyxDQUFYO0FBQ0FBLE1BQUFBLEVBQUUsQ0FBRSxFQUFGLENBQUYsR0FBVyxDQUFYO0FBQ0FBLE1BQUFBLEVBQUUsQ0FBRSxFQUFGLENBQUYsR0FBVyxDQUFYO0FBRUEsYUFBTyxJQUFQO0FBRUEsS0FqQ0Q7QUFtQ0EsR0F2Q2dCLEVBdkZnQjtBQWdJakNzQixFQUFBQSxxQkFBcUIsRUFBRSxVQUFXQyxLQUFYLEVBQW1CO0FBRXpDLFFBQUssRUFBSUEsS0FBSyxJQUFJQSxLQUFLLENBQUNDLE9BQW5CLENBQUwsRUFBb0M7QUFFbkMvQyxNQUFBQSxPQUFPLENBQUNDLEtBQVIsQ0FBZSx1R0FBZjtBQUVBOztBQUVELFFBQUlzQixFQUFFLEdBQUcsS0FBSzFCLFFBQWQ7QUFFQSxRQUFJd0MsQ0FBQyxHQUFHUyxLQUFLLENBQUNULENBQWQ7QUFBQSxRQUFpQkMsQ0FBQyxHQUFHUSxLQUFLLENBQUNSLENBQTNCO0FBQUEsUUFBOEJDLENBQUMsR0FBR08sS0FBSyxDQUFDUCxDQUF4QztBQUNBLFFBQUlTLENBQUMsR0FBR0MsSUFBSSxDQUFDQyxHQUFMLENBQVViLENBQVYsQ0FBUjtBQUFBLFFBQXVCYyxDQUFDLEdBQUdGLElBQUksQ0FBQ0csR0FBTCxDQUFVZixDQUFWLENBQTNCO0FBQ0EsUUFBSWdCLENBQUMsR0FBR0osSUFBSSxDQUFDQyxHQUFMLENBQVVaLENBQVYsQ0FBUjtBQUFBLFFBQXVCZ0IsQ0FBQyxHQUFHTCxJQUFJLENBQUNHLEdBQUwsQ0FBVWQsQ0FBVixDQUEzQjtBQUNBLFFBQUlpQixDQUFDLEdBQUdOLElBQUksQ0FBQ0MsR0FBTCxDQUFVWCxDQUFWLENBQVI7QUFBQSxRQUF1QmlCLENBQUMsR0FBR1AsSUFBSSxDQUFDRyxHQUFMLENBQVViLENBQVYsQ0FBM0I7O0FBRUEsUUFBS08sS0FBSyxDQUFDVyxLQUFOLEtBQWdCLEtBQXJCLEVBQTZCO0FBRTVCLFVBQUlDLEVBQUUsR0FBR1YsQ0FBQyxHQUFHTyxDQUFiO0FBQUEsVUFBZ0JJLEVBQUUsR0FBR1gsQ0FBQyxHQUFHUSxDQUF6QjtBQUFBLFVBQTRCSSxFQUFFLEdBQUdULENBQUMsR0FBR0ksQ0FBckM7QUFBQSxVQUF3Q00sRUFBRSxHQUFHVixDQUFDLEdBQUdLLENBQWpEO0FBRUFqQyxNQUFBQSxFQUFFLENBQUUsQ0FBRixDQUFGLEdBQVU4QixDQUFDLEdBQUdFLENBQWQ7QUFDQWhDLE1BQUFBLEVBQUUsQ0FBRSxDQUFGLENBQUYsR0FBVSxDQUFFOEIsQ0FBRixHQUFNRyxDQUFoQjtBQUNBakMsTUFBQUEsRUFBRSxDQUFFLENBQUYsQ0FBRixHQUFVK0IsQ0FBVjtBQUVBL0IsTUFBQUEsRUFBRSxDQUFFLENBQUYsQ0FBRixHQUFVb0MsRUFBRSxHQUFHQyxFQUFFLEdBQUdOLENBQXBCO0FBQ0EvQixNQUFBQSxFQUFFLENBQUUsQ0FBRixDQUFGLEdBQVVtQyxFQUFFLEdBQUdHLEVBQUUsR0FBR1AsQ0FBcEI7QUFDQS9CLE1BQUFBLEVBQUUsQ0FBRSxDQUFGLENBQUYsR0FBVSxDQUFFNEIsQ0FBRixHQUFNRSxDQUFoQjtBQUVBOUIsTUFBQUEsRUFBRSxDQUFFLENBQUYsQ0FBRixHQUFVc0MsRUFBRSxHQUFHSCxFQUFFLEdBQUdKLENBQXBCO0FBQ0EvQixNQUFBQSxFQUFFLENBQUUsQ0FBRixDQUFGLEdBQVVxQyxFQUFFLEdBQUdELEVBQUUsR0FBR0wsQ0FBcEI7QUFDQS9CLE1BQUFBLEVBQUUsQ0FBRSxFQUFGLENBQUYsR0FBV3lCLENBQUMsR0FBR0ssQ0FBZjtBQUVBLEtBaEJELE1BZ0JPLElBQUtQLEtBQUssQ0FBQ1csS0FBTixLQUFnQixLQUFyQixFQUE2QjtBQUVuQyxVQUFJSyxFQUFFLEdBQUdULENBQUMsR0FBR0UsQ0FBYjtBQUFBLFVBQWdCUSxFQUFFLEdBQUdWLENBQUMsR0FBR0csQ0FBekI7QUFBQSxVQUE0QlEsRUFBRSxHQUFHVixDQUFDLEdBQUdDLENBQXJDO0FBQUEsVUFBd0NVLEVBQUUsR0FBR1gsQ0FBQyxHQUFHRSxDQUFqRDtBQUVBakMsTUFBQUEsRUFBRSxDQUFFLENBQUYsQ0FBRixHQUFVdUMsRUFBRSxHQUFHRyxFQUFFLEdBQUdkLENBQXBCO0FBQ0E1QixNQUFBQSxFQUFFLENBQUUsQ0FBRixDQUFGLEdBQVV5QyxFQUFFLEdBQUdiLENBQUwsR0FBU1ksRUFBbkI7QUFDQXhDLE1BQUFBLEVBQUUsQ0FBRSxDQUFGLENBQUYsR0FBVXlCLENBQUMsR0FBR00sQ0FBZDtBQUVBL0IsTUFBQUEsRUFBRSxDQUFFLENBQUYsQ0FBRixHQUFVeUIsQ0FBQyxHQUFHUSxDQUFkO0FBQ0FqQyxNQUFBQSxFQUFFLENBQUUsQ0FBRixDQUFGLEdBQVV5QixDQUFDLEdBQUdPLENBQWQ7QUFDQWhDLE1BQUFBLEVBQUUsQ0FBRSxDQUFGLENBQUYsR0FBVSxDQUFFNEIsQ0FBWjtBQUVBNUIsTUFBQUEsRUFBRSxDQUFFLENBQUYsQ0FBRixHQUFVd0MsRUFBRSxHQUFHWixDQUFMLEdBQVNhLEVBQW5CO0FBQ0F6QyxNQUFBQSxFQUFFLENBQUUsQ0FBRixDQUFGLEdBQVUwQyxFQUFFLEdBQUdILEVBQUUsR0FBR1gsQ0FBcEI7QUFDQTVCLE1BQUFBLEVBQUUsQ0FBRSxFQUFGLENBQUYsR0FBV3lCLENBQUMsR0FBR0ssQ0FBZjtBQUVBLEtBaEJNLE1BZ0JBLElBQUtQLEtBQUssQ0FBQ1csS0FBTixLQUFnQixLQUFyQixFQUE2QjtBQUVuQyxVQUFJSyxFQUFFLEdBQUdULENBQUMsR0FBR0UsQ0FBYjtBQUFBLFVBQWdCUSxFQUFFLEdBQUdWLENBQUMsR0FBR0csQ0FBekI7QUFBQSxVQUE0QlEsRUFBRSxHQUFHVixDQUFDLEdBQUdDLENBQXJDO0FBQUEsVUFBd0NVLEVBQUUsR0FBR1gsQ0FBQyxHQUFHRSxDQUFqRDtBQUVBakMsTUFBQUEsRUFBRSxDQUFFLENBQUYsQ0FBRixHQUFVdUMsRUFBRSxHQUFHRyxFQUFFLEdBQUdkLENBQXBCO0FBQ0E1QixNQUFBQSxFQUFFLENBQUUsQ0FBRixDQUFGLEdBQVUsQ0FBRXlCLENBQUYsR0FBTVEsQ0FBaEI7QUFDQWpDLE1BQUFBLEVBQUUsQ0FBRSxDQUFGLENBQUYsR0FBVXlDLEVBQUUsR0FBR0QsRUFBRSxHQUFHWixDQUFwQjtBQUVBNUIsTUFBQUEsRUFBRSxDQUFFLENBQUYsQ0FBRixHQUFVd0MsRUFBRSxHQUFHQyxFQUFFLEdBQUdiLENBQXBCO0FBQ0E1QixNQUFBQSxFQUFFLENBQUUsQ0FBRixDQUFGLEdBQVV5QixDQUFDLEdBQUdPLENBQWQ7QUFDQWhDLE1BQUFBLEVBQUUsQ0FBRSxDQUFGLENBQUYsR0FBVTBDLEVBQUUsR0FBR0gsRUFBRSxHQUFHWCxDQUFwQjtBQUVBNUIsTUFBQUEsRUFBRSxDQUFFLENBQUYsQ0FBRixHQUFVLENBQUV5QixDQUFGLEdBQU1NLENBQWhCO0FBQ0EvQixNQUFBQSxFQUFFLENBQUUsQ0FBRixDQUFGLEdBQVU0QixDQUFWO0FBQ0E1QixNQUFBQSxFQUFFLENBQUUsRUFBRixDQUFGLEdBQVd5QixDQUFDLEdBQUdLLENBQWY7QUFFQSxLQWhCTSxNQWdCQSxJQUFLUCxLQUFLLENBQUNXLEtBQU4sS0FBZ0IsS0FBckIsRUFBNkI7QUFFbkMsVUFBSUMsRUFBRSxHQUFHVixDQUFDLEdBQUdPLENBQWI7QUFBQSxVQUFnQkksRUFBRSxHQUFHWCxDQUFDLEdBQUdRLENBQXpCO0FBQUEsVUFBNEJJLEVBQUUsR0FBR1QsQ0FBQyxHQUFHSSxDQUFyQztBQUFBLFVBQXdDTSxFQUFFLEdBQUdWLENBQUMsR0FBR0ssQ0FBakQ7QUFFQWpDLE1BQUFBLEVBQUUsQ0FBRSxDQUFGLENBQUYsR0FBVThCLENBQUMsR0FBR0UsQ0FBZDtBQUNBaEMsTUFBQUEsRUFBRSxDQUFFLENBQUYsQ0FBRixHQUFVcUMsRUFBRSxHQUFHTixDQUFMLEdBQVNLLEVBQW5CO0FBQ0FwQyxNQUFBQSxFQUFFLENBQUUsQ0FBRixDQUFGLEdBQVVtQyxFQUFFLEdBQUdKLENBQUwsR0FBU08sRUFBbkI7QUFFQXRDLE1BQUFBLEVBQUUsQ0FBRSxDQUFGLENBQUYsR0FBVThCLENBQUMsR0FBR0csQ0FBZDtBQUNBakMsTUFBQUEsRUFBRSxDQUFFLENBQUYsQ0FBRixHQUFVc0MsRUFBRSxHQUFHUCxDQUFMLEdBQVNJLEVBQW5CO0FBQ0FuQyxNQUFBQSxFQUFFLENBQUUsQ0FBRixDQUFGLEdBQVVvQyxFQUFFLEdBQUdMLENBQUwsR0FBU00sRUFBbkI7QUFFQXJDLE1BQUFBLEVBQUUsQ0FBRSxDQUFGLENBQUYsR0FBVSxDQUFFK0IsQ0FBWjtBQUNBL0IsTUFBQUEsRUFBRSxDQUFFLENBQUYsQ0FBRixHQUFVNEIsQ0FBQyxHQUFHRSxDQUFkO0FBQ0E5QixNQUFBQSxFQUFFLENBQUUsRUFBRixDQUFGLEdBQVd5QixDQUFDLEdBQUdLLENBQWY7QUFFQSxLQWhCTSxNQWdCQSxJQUFLUCxLQUFLLENBQUNXLEtBQU4sS0FBZ0IsS0FBckIsRUFBNkI7QUFFbkMsVUFBSVMsRUFBRSxHQUFHbEIsQ0FBQyxHQUFHSyxDQUFiO0FBQUEsVUFBZ0JjLEVBQUUsR0FBR25CLENBQUMsR0FBR00sQ0FBekI7QUFBQSxVQUE0QmMsRUFBRSxHQUFHakIsQ0FBQyxHQUFHRSxDQUFyQztBQUFBLFVBQXdDZ0IsRUFBRSxHQUFHbEIsQ0FBQyxHQUFHRyxDQUFqRDtBQUVBL0IsTUFBQUEsRUFBRSxDQUFFLENBQUYsQ0FBRixHQUFVOEIsQ0FBQyxHQUFHRSxDQUFkO0FBQ0FoQyxNQUFBQSxFQUFFLENBQUUsQ0FBRixDQUFGLEdBQVU4QyxFQUFFLEdBQUdILEVBQUUsR0FBR1YsQ0FBcEI7QUFDQWpDLE1BQUFBLEVBQUUsQ0FBRSxDQUFGLENBQUYsR0FBVTZDLEVBQUUsR0FBR1osQ0FBTCxHQUFTVyxFQUFuQjtBQUVBNUMsTUFBQUEsRUFBRSxDQUFFLENBQUYsQ0FBRixHQUFVaUMsQ0FBVjtBQUNBakMsTUFBQUEsRUFBRSxDQUFFLENBQUYsQ0FBRixHQUFVeUIsQ0FBQyxHQUFHTyxDQUFkO0FBQ0FoQyxNQUFBQSxFQUFFLENBQUUsQ0FBRixDQUFGLEdBQVUsQ0FBRTRCLENBQUYsR0FBTUksQ0FBaEI7QUFFQWhDLE1BQUFBLEVBQUUsQ0FBRSxDQUFGLENBQUYsR0FBVSxDQUFFK0IsQ0FBRixHQUFNQyxDQUFoQjtBQUNBaEMsTUFBQUEsRUFBRSxDQUFFLENBQUYsQ0FBRixHQUFVNEMsRUFBRSxHQUFHWCxDQUFMLEdBQVNZLEVBQW5CO0FBQ0E3QyxNQUFBQSxFQUFFLENBQUUsRUFBRixDQUFGLEdBQVcyQyxFQUFFLEdBQUdHLEVBQUUsR0FBR2IsQ0FBckI7QUFFQSxLQWhCTSxNQWdCQSxJQUFLVixLQUFLLENBQUNXLEtBQU4sS0FBZ0IsS0FBckIsRUFBNkI7QUFFbkMsVUFBSVMsRUFBRSxHQUFHbEIsQ0FBQyxHQUFHSyxDQUFiO0FBQUEsVUFBZ0JjLEVBQUUsR0FBR25CLENBQUMsR0FBR00sQ0FBekI7QUFBQSxVQUE0QmMsRUFBRSxHQUFHakIsQ0FBQyxHQUFHRSxDQUFyQztBQUFBLFVBQXdDZ0IsRUFBRSxHQUFHbEIsQ0FBQyxHQUFHRyxDQUFqRDtBQUVBL0IsTUFBQUEsRUFBRSxDQUFFLENBQUYsQ0FBRixHQUFVOEIsQ0FBQyxHQUFHRSxDQUFkO0FBQ0FoQyxNQUFBQSxFQUFFLENBQUUsQ0FBRixDQUFGLEdBQVUsQ0FBRWlDLENBQVo7QUFDQWpDLE1BQUFBLEVBQUUsQ0FBRSxDQUFGLENBQUYsR0FBVStCLENBQUMsR0FBR0MsQ0FBZDtBQUVBaEMsTUFBQUEsRUFBRSxDQUFFLENBQUYsQ0FBRixHQUFVMkMsRUFBRSxHQUFHVixDQUFMLEdBQVNhLEVBQW5CO0FBQ0E5QyxNQUFBQSxFQUFFLENBQUUsQ0FBRixDQUFGLEdBQVV5QixDQUFDLEdBQUdPLENBQWQ7QUFDQWhDLE1BQUFBLEVBQUUsQ0FBRSxDQUFGLENBQUYsR0FBVTRDLEVBQUUsR0FBR1gsQ0FBTCxHQUFTWSxFQUFuQjtBQUVBN0MsTUFBQUEsRUFBRSxDQUFFLENBQUYsQ0FBRixHQUFVNkMsRUFBRSxHQUFHWixDQUFMLEdBQVNXLEVBQW5CO0FBQ0E1QyxNQUFBQSxFQUFFLENBQUUsQ0FBRixDQUFGLEdBQVU0QixDQUFDLEdBQUdJLENBQWQ7QUFDQWhDLE1BQUFBLEVBQUUsQ0FBRSxFQUFGLENBQUYsR0FBVzhDLEVBQUUsR0FBR2IsQ0FBTCxHQUFTVSxFQUFwQjtBQUVBLEtBL0d3QyxDQWlIekM7OztBQUNBM0MsSUFBQUEsRUFBRSxDQUFFLENBQUYsQ0FBRixHQUFVLENBQVY7QUFDQUEsSUFBQUEsRUFBRSxDQUFFLENBQUYsQ0FBRixHQUFVLENBQVY7QUFDQUEsSUFBQUEsRUFBRSxDQUFFLEVBQUYsQ0FBRixHQUFXLENBQVgsQ0FwSHlDLENBc0h6Qzs7QUFDQUEsSUFBQUEsRUFBRSxDQUFFLEVBQUYsQ0FBRixHQUFXLENBQVg7QUFDQUEsSUFBQUEsRUFBRSxDQUFFLEVBQUYsQ0FBRixHQUFXLENBQVg7QUFDQUEsSUFBQUEsRUFBRSxDQUFFLEVBQUYsQ0FBRixHQUFXLENBQVg7QUFDQUEsSUFBQUEsRUFBRSxDQUFFLEVBQUYsQ0FBRixHQUFXLENBQVg7QUFFQSxXQUFPLElBQVA7QUFFQSxHQTlQZ0M7QUFnUWpDK0MsRUFBQUEsMEJBQTBCLEVBQUUsWUFBWTtBQUV2QyxRQUFJQyxJQUFJLEdBQUcsSUFBSTVFLE9BQUosQ0FBYSxDQUFiLEVBQWdCLENBQWhCLEVBQW1CLENBQW5CLENBQVg7QUFDQSxRQUFJNkUsR0FBRyxHQUFHLElBQUk3RSxPQUFKLENBQWEsQ0FBYixFQUFnQixDQUFoQixFQUFtQixDQUFuQixDQUFWO0FBRUEsV0FBTyxTQUFTMkUsMEJBQVQsQ0FBcUNHLENBQXJDLEVBQXlDO0FBRS9DLGFBQU8sS0FBS0MsT0FBTCxDQUFjSCxJQUFkLEVBQW9CRSxDQUFwQixFQUF1QkQsR0FBdkIsQ0FBUDtBQUVBLEtBSkQ7QUFNQSxHQVgyQixFQWhRSztBQTZRakNHLEVBQUFBLE1BQU0sRUFBRSxZQUFZO0FBRW5CLFFBQUl0QyxDQUFDLEdBQUcsSUFBSTFDLE9BQUosRUFBUjtBQUNBLFFBQUkyQyxDQUFDLEdBQUcsSUFBSTNDLE9BQUosRUFBUjtBQUNBLFFBQUk0QyxDQUFDLEdBQUcsSUFBSTVDLE9BQUosRUFBUjtBQUVBLFdBQU8sU0FBU2dGLE1BQVQsQ0FBaUJDLEdBQWpCLEVBQXNCQyxNQUF0QixFQUE4QkMsRUFBOUIsRUFBbUM7QUFFekMsVUFBSXZELEVBQUUsR0FBRyxLQUFLMUIsUUFBZDtBQUVBMEMsTUFBQUEsQ0FBQyxDQUFDd0MsVUFBRixDQUFjSCxHQUFkLEVBQW1CQyxNQUFuQjs7QUFFQSxVQUFLdEMsQ0FBQyxDQUFDeUMsUUFBRixPQUFpQixDQUF0QixFQUEwQjtBQUV6QjtBQUVBekMsUUFBQUEsQ0FBQyxDQUFDQSxDQUFGLEdBQU0sQ0FBTjtBQUVBOztBQUVEQSxNQUFBQSxDQUFDLENBQUMwQyxTQUFGO0FBQ0E1QyxNQUFBQSxDQUFDLENBQUM2QyxZQUFGLENBQWdCSixFQUFoQixFQUFvQnZDLENBQXBCOztBQUVBLFVBQUtGLENBQUMsQ0FBQzJDLFFBQUYsT0FBaUIsQ0FBdEIsRUFBMEI7QUFFekI7QUFFQSxZQUFLL0IsSUFBSSxDQUFDa0MsR0FBTCxDQUFVTCxFQUFFLENBQUN2QyxDQUFiLE1BQXFCLENBQTFCLEVBQThCO0FBRTdCQSxVQUFBQSxDQUFDLENBQUNGLENBQUYsSUFBTyxNQUFQO0FBRUEsU0FKRCxNQUlPO0FBRU5FLFVBQUFBLENBQUMsQ0FBQ0EsQ0FBRixJQUFPLE1BQVA7QUFFQTs7QUFFREEsUUFBQUEsQ0FBQyxDQUFDMEMsU0FBRjtBQUNBNUMsUUFBQUEsQ0FBQyxDQUFDNkMsWUFBRixDQUFnQkosRUFBaEIsRUFBb0J2QyxDQUFwQjtBQUVBOztBQUVERixNQUFBQSxDQUFDLENBQUM0QyxTQUFGO0FBQ0EzQyxNQUFBQSxDQUFDLENBQUM0QyxZQUFGLENBQWdCM0MsQ0FBaEIsRUFBbUJGLENBQW5CO0FBRUFkLE1BQUFBLEVBQUUsQ0FBRSxDQUFGLENBQUYsR0FBVWMsQ0FBQyxDQUFDQSxDQUFaO0FBQWVkLE1BQUFBLEVBQUUsQ0FBRSxDQUFGLENBQUYsR0FBVWUsQ0FBQyxDQUFDRCxDQUFaO0FBQWVkLE1BQUFBLEVBQUUsQ0FBRSxDQUFGLENBQUYsR0FBVWdCLENBQUMsQ0FBQ0YsQ0FBWjtBQUM5QmQsTUFBQUEsRUFBRSxDQUFFLENBQUYsQ0FBRixHQUFVYyxDQUFDLENBQUNDLENBQVo7QUFBZWYsTUFBQUEsRUFBRSxDQUFFLENBQUYsQ0FBRixHQUFVZSxDQUFDLENBQUNBLENBQVo7QUFBZWYsTUFBQUEsRUFBRSxDQUFFLENBQUYsQ0FBRixHQUFVZ0IsQ0FBQyxDQUFDRCxDQUFaO0FBQzlCZixNQUFBQSxFQUFFLENBQUUsQ0FBRixDQUFGLEdBQVVjLENBQUMsQ0FBQ0UsQ0FBWjtBQUFlaEIsTUFBQUEsRUFBRSxDQUFFLENBQUYsQ0FBRixHQUFVZSxDQUFDLENBQUNDLENBQVo7QUFBZWhCLE1BQUFBLEVBQUUsQ0FBRSxFQUFGLENBQUYsR0FBV2dCLENBQUMsQ0FBQ0EsQ0FBYjtBQUU5QixhQUFPLElBQVA7QUFFQSxLQTdDRDtBQStDQSxHQXJETyxFQTdReUI7QUFvVWpDNkMsRUFBQUEsUUFBUSxFQUFFLFVBQVd4RCxDQUFYLEVBQWN5RCxDQUFkLEVBQWtCO0FBRTNCLFFBQUtBLENBQUMsS0FBS0MsU0FBWCxFQUF1QjtBQUV0QnRGLE1BQUFBLE9BQU8sQ0FBQ3VGLElBQVIsQ0FBYyxrR0FBZDtBQUNBLGFBQU8sS0FBS0MsZ0JBQUwsQ0FBdUI1RCxDQUF2QixFQUEwQnlELENBQTFCLENBQVA7QUFFQTs7QUFFRCxXQUFPLEtBQUtHLGdCQUFMLENBQXVCLElBQXZCLEVBQTZCNUQsQ0FBN0IsQ0FBUDtBQUVBLEdBL1VnQztBQWlWakM2RCxFQUFBQSxXQUFXLEVBQUUsVUFBVzdELENBQVgsRUFBZTtBQUUzQixXQUFPLEtBQUs0RCxnQkFBTCxDQUF1QjVELENBQXZCLEVBQTBCLElBQTFCLENBQVA7QUFFQSxHQXJWZ0M7QUF1VmpDNEQsRUFBQUEsZ0JBQWdCLEVBQUUsVUFBV3hDLENBQVgsRUFBY0csQ0FBZCxFQUFrQjtBQUVuQyxRQUFJTyxFQUFFLEdBQUdWLENBQUMsQ0FBQ25ELFFBQVg7QUFDQSxRQUFJK0QsRUFBRSxHQUFHVCxDQUFDLENBQUN0RCxRQUFYO0FBQ0EsUUFBSTBCLEVBQUUsR0FBRyxLQUFLMUIsUUFBZDtBQUVBLFFBQUk2RixHQUFHLEdBQUdoQyxFQUFFLENBQUUsQ0FBRixDQUFaO0FBQUEsUUFBbUJpQyxHQUFHLEdBQUdqQyxFQUFFLENBQUUsQ0FBRixDQUEzQjtBQUFBLFFBQWtDa0MsR0FBRyxHQUFHbEMsRUFBRSxDQUFFLENBQUYsQ0FBMUM7QUFBQSxRQUFpRG1DLEdBQUcsR0FBR25DLEVBQUUsQ0FBRSxFQUFGLENBQXpEO0FBQ0EsUUFBSW9DLEdBQUcsR0FBR3BDLEVBQUUsQ0FBRSxDQUFGLENBQVo7QUFBQSxRQUFtQnFDLEdBQUcsR0FBR3JDLEVBQUUsQ0FBRSxDQUFGLENBQTNCO0FBQUEsUUFBa0NzQyxHQUFHLEdBQUd0QyxFQUFFLENBQUUsQ0FBRixDQUExQztBQUFBLFFBQWlEdUMsR0FBRyxHQUFHdkMsRUFBRSxDQUFFLEVBQUYsQ0FBekQ7QUFDQSxRQUFJd0MsR0FBRyxHQUFHeEMsRUFBRSxDQUFFLENBQUYsQ0FBWjtBQUFBLFFBQW1CeUMsR0FBRyxHQUFHekMsRUFBRSxDQUFFLENBQUYsQ0FBM0I7QUFBQSxRQUFrQzBDLEdBQUcsR0FBRzFDLEVBQUUsQ0FBRSxFQUFGLENBQTFDO0FBQUEsUUFBa0QyQyxHQUFHLEdBQUczQyxFQUFFLENBQUUsRUFBRixDQUExRDtBQUNBLFFBQUk0QyxHQUFHLEdBQUc1QyxFQUFFLENBQUUsQ0FBRixDQUFaO0FBQUEsUUFBbUI2QyxHQUFHLEdBQUc3QyxFQUFFLENBQUUsQ0FBRixDQUEzQjtBQUFBLFFBQWtDOEMsR0FBRyxHQUFHOUMsRUFBRSxDQUFFLEVBQUYsQ0FBMUM7QUFBQSxRQUFrRCtDLEdBQUcsR0FBRy9DLEVBQUUsQ0FBRSxFQUFGLENBQTFEO0FBRUEsUUFBSWdELEdBQUcsR0FBRzlDLEVBQUUsQ0FBRSxDQUFGLENBQVo7QUFBQSxRQUFtQitDLEdBQUcsR0FBRy9DLEVBQUUsQ0FBRSxDQUFGLENBQTNCO0FBQUEsUUFBa0NnRCxHQUFHLEdBQUdoRCxFQUFFLENBQUUsQ0FBRixDQUExQztBQUFBLFFBQWlEaUQsR0FBRyxHQUFHakQsRUFBRSxDQUFFLEVBQUYsQ0FBekQ7QUFDQSxRQUFJa0QsR0FBRyxHQUFHbEQsRUFBRSxDQUFFLENBQUYsQ0FBWjtBQUFBLFFBQW1CbUQsR0FBRyxHQUFHbkQsRUFBRSxDQUFFLENBQUYsQ0FBM0I7QUFBQSxRQUFrQ29ELEdBQUcsR0FBR3BELEVBQUUsQ0FBRSxDQUFGLENBQTFDO0FBQUEsUUFBaURxRCxHQUFHLEdBQUdyRCxFQUFFLENBQUUsRUFBRixDQUF6RDtBQUNBLFFBQUlzRCxHQUFHLEdBQUd0RCxFQUFFLENBQUUsQ0FBRixDQUFaO0FBQUEsUUFBbUJ1RCxHQUFHLEdBQUd2RCxFQUFFLENBQUUsQ0FBRixDQUEzQjtBQUFBLFFBQWtDd0QsR0FBRyxHQUFHeEQsRUFBRSxDQUFFLEVBQUYsQ0FBMUM7QUFBQSxRQUFrRHlELEdBQUcsR0FBR3pELEVBQUUsQ0FBRSxFQUFGLENBQTFEO0FBQ0EsUUFBSTBELEdBQUcsR0FBRzFELEVBQUUsQ0FBRSxDQUFGLENBQVo7QUFBQSxRQUFtQjJELEdBQUcsR0FBRzNELEVBQUUsQ0FBRSxDQUFGLENBQTNCO0FBQUEsUUFBa0M0RCxHQUFHLEdBQUc1RCxFQUFFLENBQUUsRUFBRixDQUExQztBQUFBLFFBQWtENkQsR0FBRyxHQUFHN0QsRUFBRSxDQUFFLEVBQUYsQ0FBMUQ7QUFFQXJDLElBQUFBLEVBQUUsQ0FBRSxDQUFGLENBQUYsR0FBVW1FLEdBQUcsR0FBR2dCLEdBQU4sR0FBWWYsR0FBRyxHQUFHbUIsR0FBbEIsR0FBd0JsQixHQUFHLEdBQUdzQixHQUE5QixHQUFvQ3JCLEdBQUcsR0FBR3lCLEdBQXBEO0FBQ0EvRixJQUFBQSxFQUFFLENBQUUsQ0FBRixDQUFGLEdBQVVtRSxHQUFHLEdBQUdpQixHQUFOLEdBQVloQixHQUFHLEdBQUdvQixHQUFsQixHQUF3Qm5CLEdBQUcsR0FBR3VCLEdBQTlCLEdBQW9DdEIsR0FBRyxHQUFHMEIsR0FBcEQ7QUFDQWhHLElBQUFBLEVBQUUsQ0FBRSxDQUFGLENBQUYsR0FBVW1FLEdBQUcsR0FBR2tCLEdBQU4sR0FBWWpCLEdBQUcsR0FBR3FCLEdBQWxCLEdBQXdCcEIsR0FBRyxHQUFHd0IsR0FBOUIsR0FBb0N2QixHQUFHLEdBQUcyQixHQUFwRDtBQUNBakcsSUFBQUEsRUFBRSxDQUFFLEVBQUYsQ0FBRixHQUFXbUUsR0FBRyxHQUFHbUIsR0FBTixHQUFZbEIsR0FBRyxHQUFHc0IsR0FBbEIsR0FBd0JyQixHQUFHLEdBQUd5QixHQUE5QixHQUFvQ3hCLEdBQUcsR0FBRzRCLEdBQXJEO0FBRUFsRyxJQUFBQSxFQUFFLENBQUUsQ0FBRixDQUFGLEdBQVV1RSxHQUFHLEdBQUdZLEdBQU4sR0FBWVgsR0FBRyxHQUFHZSxHQUFsQixHQUF3QmQsR0FBRyxHQUFHa0IsR0FBOUIsR0FBb0NqQixHQUFHLEdBQUdxQixHQUFwRDtBQUNBL0YsSUFBQUEsRUFBRSxDQUFFLENBQUYsQ0FBRixHQUFVdUUsR0FBRyxHQUFHYSxHQUFOLEdBQVlaLEdBQUcsR0FBR2dCLEdBQWxCLEdBQXdCZixHQUFHLEdBQUdtQixHQUE5QixHQUFvQ2xCLEdBQUcsR0FBR3NCLEdBQXBEO0FBQ0FoRyxJQUFBQSxFQUFFLENBQUUsQ0FBRixDQUFGLEdBQVV1RSxHQUFHLEdBQUdjLEdBQU4sR0FBWWIsR0FBRyxHQUFHaUIsR0FBbEIsR0FBd0JoQixHQUFHLEdBQUdvQixHQUE5QixHQUFvQ25CLEdBQUcsR0FBR3VCLEdBQXBEO0FBQ0FqRyxJQUFBQSxFQUFFLENBQUUsRUFBRixDQUFGLEdBQVd1RSxHQUFHLEdBQUdlLEdBQU4sR0FBWWQsR0FBRyxHQUFHa0IsR0FBbEIsR0FBd0JqQixHQUFHLEdBQUdxQixHQUE5QixHQUFvQ3BCLEdBQUcsR0FBR3dCLEdBQXJEO0FBRUFsRyxJQUFBQSxFQUFFLENBQUUsQ0FBRixDQUFGLEdBQVUyRSxHQUFHLEdBQUdRLEdBQU4sR0FBWVAsR0FBRyxHQUFHVyxHQUFsQixHQUF3QlYsR0FBRyxHQUFHYyxHQUE5QixHQUFvQ2IsR0FBRyxHQUFHaUIsR0FBcEQ7QUFDQS9GLElBQUFBLEVBQUUsQ0FBRSxDQUFGLENBQUYsR0FBVTJFLEdBQUcsR0FBR1MsR0FBTixHQUFZUixHQUFHLEdBQUdZLEdBQWxCLEdBQXdCWCxHQUFHLEdBQUdlLEdBQTlCLEdBQW9DZCxHQUFHLEdBQUdrQixHQUFwRDtBQUNBaEcsSUFBQUEsRUFBRSxDQUFFLEVBQUYsQ0FBRixHQUFXMkUsR0FBRyxHQUFHVSxHQUFOLEdBQVlULEdBQUcsR0FBR2EsR0FBbEIsR0FBd0JaLEdBQUcsR0FBR2dCLEdBQTlCLEdBQW9DZixHQUFHLEdBQUdtQixHQUFyRDtBQUNBakcsSUFBQUEsRUFBRSxDQUFFLEVBQUYsQ0FBRixHQUFXMkUsR0FBRyxHQUFHVyxHQUFOLEdBQVlWLEdBQUcsR0FBR2MsR0FBbEIsR0FBd0JiLEdBQUcsR0FBR2lCLEdBQTlCLEdBQW9DaEIsR0FBRyxHQUFHb0IsR0FBckQ7QUFFQWxHLElBQUFBLEVBQUUsQ0FBRSxDQUFGLENBQUYsR0FBVStFLEdBQUcsR0FBR0ksR0FBTixHQUFZSCxHQUFHLEdBQUdPLEdBQWxCLEdBQXdCTixHQUFHLEdBQUdVLEdBQTlCLEdBQW9DVCxHQUFHLEdBQUdhLEdBQXBEO0FBQ0EvRixJQUFBQSxFQUFFLENBQUUsQ0FBRixDQUFGLEdBQVUrRSxHQUFHLEdBQUdLLEdBQU4sR0FBWUosR0FBRyxHQUFHUSxHQUFsQixHQUF3QlAsR0FBRyxHQUFHVyxHQUE5QixHQUFvQ1YsR0FBRyxHQUFHYyxHQUFwRDtBQUNBaEcsSUFBQUEsRUFBRSxDQUFFLEVBQUYsQ0FBRixHQUFXK0UsR0FBRyxHQUFHTSxHQUFOLEdBQVlMLEdBQUcsR0FBR1MsR0FBbEIsR0FBd0JSLEdBQUcsR0FBR1ksR0FBOUIsR0FBb0NYLEdBQUcsR0FBR2UsR0FBckQ7QUFDQWpHLElBQUFBLEVBQUUsQ0FBRSxFQUFGLENBQUYsR0FBVytFLEdBQUcsR0FBR08sR0FBTixHQUFZTixHQUFHLEdBQUdVLEdBQWxCLEdBQXdCVCxHQUFHLEdBQUdhLEdBQTlCLEdBQW9DWixHQUFHLEdBQUdnQixHQUFyRDtBQUVBLFdBQU8sSUFBUDtBQUVBLEdBN1hnQztBQStYakNDLEVBQUFBLGNBQWMsRUFBRSxVQUFXQyxDQUFYLEVBQWU7QUFFOUIsUUFBSXBHLEVBQUUsR0FBRyxLQUFLMUIsUUFBZDtBQUVBMEIsSUFBQUEsRUFBRSxDQUFFLENBQUYsQ0FBRixJQUFXb0csQ0FBWDtBQUFjcEcsSUFBQUEsRUFBRSxDQUFFLENBQUYsQ0FBRixJQUFXb0csQ0FBWDtBQUFjcEcsSUFBQUEsRUFBRSxDQUFFLENBQUYsQ0FBRixJQUFXb0csQ0FBWDtBQUFjcEcsSUFBQUEsRUFBRSxDQUFFLEVBQUYsQ0FBRixJQUFZb0csQ0FBWjtBQUMxQ3BHLElBQUFBLEVBQUUsQ0FBRSxDQUFGLENBQUYsSUFBV29HLENBQVg7QUFBY3BHLElBQUFBLEVBQUUsQ0FBRSxDQUFGLENBQUYsSUFBV29HLENBQVg7QUFBY3BHLElBQUFBLEVBQUUsQ0FBRSxDQUFGLENBQUYsSUFBV29HLENBQVg7QUFBY3BHLElBQUFBLEVBQUUsQ0FBRSxFQUFGLENBQUYsSUFBWW9HLENBQVo7QUFDMUNwRyxJQUFBQSxFQUFFLENBQUUsQ0FBRixDQUFGLElBQVdvRyxDQUFYO0FBQWNwRyxJQUFBQSxFQUFFLENBQUUsQ0FBRixDQUFGLElBQVdvRyxDQUFYO0FBQWNwRyxJQUFBQSxFQUFFLENBQUUsRUFBRixDQUFGLElBQVlvRyxDQUFaO0FBQWVwRyxJQUFBQSxFQUFFLENBQUUsRUFBRixDQUFGLElBQVlvRyxDQUFaO0FBQzNDcEcsSUFBQUEsRUFBRSxDQUFFLENBQUYsQ0FBRixJQUFXb0csQ0FBWDtBQUFjcEcsSUFBQUEsRUFBRSxDQUFFLENBQUYsQ0FBRixJQUFXb0csQ0FBWDtBQUFjcEcsSUFBQUEsRUFBRSxDQUFFLEVBQUYsQ0FBRixJQUFZb0csQ0FBWjtBQUFlcEcsSUFBQUEsRUFBRSxDQUFFLEVBQUYsQ0FBRixJQUFZb0csQ0FBWjtBQUUzQyxXQUFPLElBQVA7QUFFQSxHQTFZZ0M7QUE0WWpDQyxFQUFBQSxzQkFBc0IsRUFBRSxZQUFZO0FBRW5DLFFBQUluRixFQUFFLEdBQUcsSUFBSTlDLE9BQUosRUFBVDtBQUVBLFdBQU8sU0FBU2lJLHNCQUFULENBQWlDQyxTQUFqQyxFQUE2QztBQUVuRCxXQUFNLElBQUlDLENBQUMsR0FBRyxDQUFSLEVBQVdDLENBQUMsR0FBR0YsU0FBUyxDQUFDRyxLQUEvQixFQUFzQ0YsQ0FBQyxHQUFHQyxDQUExQyxFQUE2Q0QsQ0FBQyxFQUE5QyxFQUFvRDtBQUVuRHJGLFFBQUFBLEVBQUUsQ0FBQ0osQ0FBSCxHQUFPd0YsU0FBUyxDQUFDSSxJQUFWLENBQWdCSCxDQUFoQixDQUFQO0FBQ0FyRixRQUFBQSxFQUFFLENBQUNILENBQUgsR0FBT3VGLFNBQVMsQ0FBQ0ssSUFBVixDQUFnQkosQ0FBaEIsQ0FBUDtBQUNBckYsUUFBQUEsRUFBRSxDQUFDRixDQUFILEdBQU9zRixTQUFTLENBQUNNLElBQVYsQ0FBZ0JMLENBQWhCLENBQVA7QUFFQXJGLFFBQUFBLEVBQUUsQ0FBQzJGLFlBQUgsQ0FBaUIsSUFBakI7QUFFQVAsUUFBQUEsU0FBUyxDQUFDUSxNQUFWLENBQWtCUCxDQUFsQixFQUFxQnJGLEVBQUUsQ0FBQ0osQ0FBeEIsRUFBMkJJLEVBQUUsQ0FBQ0gsQ0FBOUIsRUFBaUNHLEVBQUUsQ0FBQ0YsQ0FBcEM7QUFFQTs7QUFFRCxhQUFPc0YsU0FBUDtBQUVBLEtBaEJEO0FBa0JBLEdBdEJ1QixFQTVZUztBQW9hakNTLEVBQUFBLFdBQVcsRUFBRSxZQUFZO0FBRXhCLFFBQUkvRyxFQUFFLEdBQUcsS0FBSzFCLFFBQWQ7QUFFQSxRQUFJVSxHQUFHLEdBQUdnQixFQUFFLENBQUUsQ0FBRixDQUFaO0FBQUEsUUFBbUJmLEdBQUcsR0FBR2UsRUFBRSxDQUFFLENBQUYsQ0FBM0I7QUFBQSxRQUFrQ2QsR0FBRyxHQUFHYyxFQUFFLENBQUUsQ0FBRixDQUExQztBQUFBLFFBQWlEYixHQUFHLEdBQUdhLEVBQUUsQ0FBRSxFQUFGLENBQXpEO0FBQ0EsUUFBSVosR0FBRyxHQUFHWSxFQUFFLENBQUUsQ0FBRixDQUFaO0FBQUEsUUFBbUJYLEdBQUcsR0FBR1csRUFBRSxDQUFFLENBQUYsQ0FBM0I7QUFBQSxRQUFrQ1YsR0FBRyxHQUFHVSxFQUFFLENBQUUsQ0FBRixDQUExQztBQUFBLFFBQWlEVCxHQUFHLEdBQUdTLEVBQUUsQ0FBRSxFQUFGLENBQXpEO0FBQ0EsUUFBSVIsR0FBRyxHQUFHUSxFQUFFLENBQUUsQ0FBRixDQUFaO0FBQUEsUUFBbUJQLEdBQUcsR0FBR08sRUFBRSxDQUFFLENBQUYsQ0FBM0I7QUFBQSxRQUFrQ04sR0FBRyxHQUFHTSxFQUFFLENBQUUsRUFBRixDQUExQztBQUFBLFFBQWtETCxHQUFHLEdBQUdLLEVBQUUsQ0FBRSxFQUFGLENBQTFEO0FBQ0EsUUFBSUosR0FBRyxHQUFHSSxFQUFFLENBQUUsQ0FBRixDQUFaO0FBQUEsUUFBbUJILEdBQUcsR0FBR0csRUFBRSxDQUFFLENBQUYsQ0FBM0I7QUFBQSxRQUFrQ0YsR0FBRyxHQUFHRSxFQUFFLENBQUUsRUFBRixDQUExQztBQUFBLFFBQWtERCxHQUFHLEdBQUdDLEVBQUUsQ0FBRSxFQUFGLENBQTFELENBUHdCLENBU3hCO0FBQ0E7O0FBRUEsV0FDQ0osR0FBRyxJQUNGLENBQUVULEdBQUYsR0FBUUcsR0FBUixHQUFjRyxHQUFkLEdBQ0dQLEdBQUcsR0FBR0ssR0FBTixHQUFZRSxHQURmLEdBRUdOLEdBQUcsR0FBR0UsR0FBTixHQUFZSyxHQUZmLEdBR0dULEdBQUcsR0FBR00sR0FBTixHQUFZRyxHQUhmLEdBSUdSLEdBQUcsR0FBR0csR0FBTixHQUFZTSxHQUpmLEdBS0dWLEdBQUcsR0FBR0ssR0FBTixHQUFZSyxHQU5iLENBQUgsR0FRQUUsR0FBRyxJQUNGLENBQUViLEdBQUYsR0FBUU0sR0FBUixHQUFjSyxHQUFkLEdBQ0dYLEdBQUcsR0FBR08sR0FBTixHQUFZRyxHQURmLEdBRUdQLEdBQUcsR0FBR0MsR0FBTixHQUFZTSxHQUZmLEdBR0dSLEdBQUcsR0FBR0UsR0FBTixHQUFZTyxHQUhmLEdBSUdULEdBQUcsR0FBR0ssR0FBTixHQUFZQyxHQUpmLEdBS0dMLEdBQUcsR0FBR0csR0FBTixHQUFZRSxHQU5iLENBUkgsR0FnQkFNLEdBQUcsSUFDRixDQUFFZCxHQUFGLEdBQVFPLEdBQVIsR0FBY0UsR0FBZCxHQUNHVCxHQUFHLEdBQUdLLEdBQU4sR0FBWU0sR0FEZixHQUVHUixHQUFHLEdBQUdDLEdBQU4sR0FBWUssR0FGZixHQUdHUixHQUFHLEdBQUdHLEdBQU4sR0FBWU8sR0FIZixHQUlHUixHQUFHLEdBQUdFLEdBQU4sR0FBWUcsR0FKZixHQUtHUCxHQUFHLEdBQUdNLEdBQU4sR0FBWUMsR0FOYixDQWhCSCxHQXdCQU8sR0FBRyxJQUNGLENBQUViLEdBQUYsR0FBUUcsR0FBUixHQUFjRyxHQUFkLEdBQ0dSLEdBQUcsR0FBR00sR0FBTixHQUFZRyxHQURmLEdBRUdULEdBQUcsR0FBR0ssR0FBTixHQUFZSyxHQUZmLEdBR0dSLEdBQUcsR0FBR0UsR0FBTixHQUFZSyxHQUhmLEdBSUdSLEdBQUcsR0FBR0csR0FBTixHQUFZTSxHQUpmLEdBS0dULEdBQUcsR0FBR0ssR0FBTixHQUFZRSxHQU5iLENBekJKO0FBb0NBLEdBcGRnQztBQXNkakN3SCxFQUFBQSxTQUFTLEVBQUUsWUFBWTtBQUV0QixRQUFJaEgsRUFBRSxHQUFHLEtBQUsxQixRQUFkO0FBQ0EsUUFBSTJJLEdBQUo7QUFFQUEsSUFBQUEsR0FBRyxHQUFHakgsRUFBRSxDQUFFLENBQUYsQ0FBUjtBQUFlQSxJQUFBQSxFQUFFLENBQUUsQ0FBRixDQUFGLEdBQVVBLEVBQUUsQ0FBRSxDQUFGLENBQVo7QUFBbUJBLElBQUFBLEVBQUUsQ0FBRSxDQUFGLENBQUYsR0FBVWlILEdBQVY7QUFDbENBLElBQUFBLEdBQUcsR0FBR2pILEVBQUUsQ0FBRSxDQUFGLENBQVI7QUFBZUEsSUFBQUEsRUFBRSxDQUFFLENBQUYsQ0FBRixHQUFVQSxFQUFFLENBQUUsQ0FBRixDQUFaO0FBQW1CQSxJQUFBQSxFQUFFLENBQUUsQ0FBRixDQUFGLEdBQVVpSCxHQUFWO0FBQ2xDQSxJQUFBQSxHQUFHLEdBQUdqSCxFQUFFLENBQUUsQ0FBRixDQUFSO0FBQWVBLElBQUFBLEVBQUUsQ0FBRSxDQUFGLENBQUYsR0FBVUEsRUFBRSxDQUFFLENBQUYsQ0FBWjtBQUFtQkEsSUFBQUEsRUFBRSxDQUFFLENBQUYsQ0FBRixHQUFVaUgsR0FBVjtBQUVsQ0EsSUFBQUEsR0FBRyxHQUFHakgsRUFBRSxDQUFFLENBQUYsQ0FBUjtBQUFlQSxJQUFBQSxFQUFFLENBQUUsQ0FBRixDQUFGLEdBQVVBLEVBQUUsQ0FBRSxFQUFGLENBQVo7QUFBb0JBLElBQUFBLEVBQUUsQ0FBRSxFQUFGLENBQUYsR0FBV2lILEdBQVg7QUFDbkNBLElBQUFBLEdBQUcsR0FBR2pILEVBQUUsQ0FBRSxDQUFGLENBQVI7QUFBZUEsSUFBQUEsRUFBRSxDQUFFLENBQUYsQ0FBRixHQUFVQSxFQUFFLENBQUUsRUFBRixDQUFaO0FBQW9CQSxJQUFBQSxFQUFFLENBQUUsRUFBRixDQUFGLEdBQVdpSCxHQUFYO0FBQ25DQSxJQUFBQSxHQUFHLEdBQUdqSCxFQUFFLENBQUUsRUFBRixDQUFSO0FBQWdCQSxJQUFBQSxFQUFFLENBQUUsRUFBRixDQUFGLEdBQVdBLEVBQUUsQ0FBRSxFQUFGLENBQWI7QUFBcUJBLElBQUFBLEVBQUUsQ0FBRSxFQUFGLENBQUYsR0FBV2lILEdBQVg7QUFFckMsV0FBTyxJQUFQO0FBRUEsR0FyZWdDO0FBdWVqQ0MsRUFBQUEsV0FBVyxFQUFFLFVBQVdwRyxDQUFYLEVBQWNDLENBQWQsRUFBaUJDLENBQWpCLEVBQXFCO0FBRWpDLFFBQUloQixFQUFFLEdBQUcsS0FBSzFCLFFBQWQ7O0FBRUEsUUFBS3dDLENBQUMsQ0FBQ3FHLFNBQVAsRUFBbUI7QUFFbEJuSCxNQUFBQSxFQUFFLENBQUUsRUFBRixDQUFGLEdBQVdjLENBQUMsQ0FBQ0EsQ0FBYjtBQUNBZCxNQUFBQSxFQUFFLENBQUUsRUFBRixDQUFGLEdBQVdjLENBQUMsQ0FBQ0MsQ0FBYjtBQUNBZixNQUFBQSxFQUFFLENBQUUsRUFBRixDQUFGLEdBQVdjLENBQUMsQ0FBQ0UsQ0FBYjtBQUVBLEtBTkQsTUFNTztBQUVOaEIsTUFBQUEsRUFBRSxDQUFFLEVBQUYsQ0FBRixHQUFXYyxDQUFYO0FBQ0FkLE1BQUFBLEVBQUUsQ0FBRSxFQUFGLENBQUYsR0FBV2UsQ0FBWDtBQUNBZixNQUFBQSxFQUFFLENBQUUsRUFBRixDQUFGLEdBQVdnQixDQUFYO0FBRUE7O0FBRUQsV0FBTyxJQUFQO0FBRUEsR0EzZmdDO0FBNmZqQ29HLEVBQUFBLFVBQVUsRUFBRSxVQUFXL0csQ0FBWCxFQUFjZ0gsaUJBQWQsRUFBa0M7QUFFN0M7QUFDQSxRQUFJckgsRUFBRSxHQUFHLEtBQUsxQixRQUFkO0FBQUEsUUFDQ2dDLEVBQUUsR0FBR0QsQ0FBQyxDQUFDL0IsUUFEUjtBQUFBLFFBR0NVLEdBQUcsR0FBR3NCLEVBQUUsQ0FBRSxDQUFGLENBSFQ7QUFBQSxRQUdnQmxCLEdBQUcsR0FBR2tCLEVBQUUsQ0FBRSxDQUFGLENBSHhCO0FBQUEsUUFHK0JkLEdBQUcsR0FBR2MsRUFBRSxDQUFFLENBQUYsQ0FIdkM7QUFBQSxRQUc4Q1YsR0FBRyxHQUFHVSxFQUFFLENBQUUsQ0FBRixDQUh0RDtBQUFBLFFBSUNyQixHQUFHLEdBQUdxQixFQUFFLENBQUUsQ0FBRixDQUpUO0FBQUEsUUFJZ0JqQixHQUFHLEdBQUdpQixFQUFFLENBQUUsQ0FBRixDQUp4QjtBQUFBLFFBSStCYixHQUFHLEdBQUdhLEVBQUUsQ0FBRSxDQUFGLENBSnZDO0FBQUEsUUFJOENULEdBQUcsR0FBR1MsRUFBRSxDQUFFLENBQUYsQ0FKdEQ7QUFBQSxRQUtDcEIsR0FBRyxHQUFHb0IsRUFBRSxDQUFFLENBQUYsQ0FMVDtBQUFBLFFBS2dCaEIsR0FBRyxHQUFHZ0IsRUFBRSxDQUFFLENBQUYsQ0FMeEI7QUFBQSxRQUsrQlosR0FBRyxHQUFHWSxFQUFFLENBQUUsRUFBRixDQUx2QztBQUFBLFFBSytDUixHQUFHLEdBQUdRLEVBQUUsQ0FBRSxFQUFGLENBTHZEO0FBQUEsUUFNQ25CLEdBQUcsR0FBR21CLEVBQUUsQ0FBRSxFQUFGLENBTlQ7QUFBQSxRQU1pQmYsR0FBRyxHQUFHZSxFQUFFLENBQUUsRUFBRixDQU56QjtBQUFBLFFBTWlDWCxHQUFHLEdBQUdXLEVBQUUsQ0FBRSxFQUFGLENBTnpDO0FBQUEsUUFNaURQLEdBQUcsR0FBR08sRUFBRSxDQUFFLEVBQUYsQ0FOekQ7QUFBQSxRQVFDZ0gsR0FBRyxHQUFHaEksR0FBRyxHQUFHSyxHQUFOLEdBQVlFLEdBQVosR0FBa0JOLEdBQUcsR0FBR0csR0FBTixHQUFZRyxHQUE5QixHQUFvQ04sR0FBRyxHQUFHRSxHQUFOLEdBQVlLLEdBQWhELEdBQXNEVCxHQUFHLEdBQUdNLEdBQU4sR0FBWUcsR0FBbEUsR0FBd0VSLEdBQUcsR0FBR0csR0FBTixHQUFZTSxHQUFwRixHQUEwRlYsR0FBRyxHQUFHSyxHQUFOLEdBQVlLLEdBUjdHO0FBQUEsUUFTQ3dILEdBQUcsR0FBR3BJLEdBQUcsR0FBR08sR0FBTixHQUFZRyxHQUFaLEdBQWtCWCxHQUFHLEdBQUdTLEdBQU4sR0FBWUUsR0FBOUIsR0FBb0NWLEdBQUcsR0FBR00sR0FBTixHQUFZSyxHQUFoRCxHQUFzRGIsR0FBRyxHQUFHVSxHQUFOLEdBQVlHLEdBQWxFLEdBQXdFWixHQUFHLEdBQUdPLEdBQU4sR0FBWU0sR0FBcEYsR0FBMEZkLEdBQUcsR0FBR1MsR0FBTixHQUFZSyxHQVQ3RztBQUFBLFFBVUN5SCxHQUFHLEdBQUd0SSxHQUFHLEdBQUdLLEdBQU4sR0FBWU0sR0FBWixHQUFrQlYsR0FBRyxHQUFHRyxHQUFOLEdBQVlPLEdBQTlCLEdBQW9DVixHQUFHLEdBQUdFLEdBQU4sR0FBWVMsR0FBaEQsR0FBc0RiLEdBQUcsR0FBR00sR0FBTixHQUFZTyxHQUFsRSxHQUF3RVosR0FBRyxHQUFHRyxHQUFOLEdBQVlVLEdBQXBGLEdBQTBGZCxHQUFHLEdBQUdLLEdBQU4sR0FBWVMsR0FWN0c7QUFBQSxRQVdDMEgsR0FBRyxHQUFHdEksR0FBRyxHQUFHRyxHQUFOLEdBQVlHLEdBQVosR0FBa0JQLEdBQUcsR0FBR0ssR0FBTixHQUFZRSxHQUE5QixHQUFvQ04sR0FBRyxHQUFHRSxHQUFOLEdBQVlLLEdBQWhELEdBQXNEVCxHQUFHLEdBQUdNLEdBQU4sR0FBWUcsR0FBbEUsR0FBd0VSLEdBQUcsR0FBR0csR0FBTixHQUFZTSxHQUFwRixHQUEwRlYsR0FBRyxHQUFHSyxHQUFOLEdBQVlLLEdBWDdHO0FBYUEsUUFBSStILEdBQUcsR0FBRzFJLEdBQUcsR0FBR3NJLEdBQU4sR0FBWWxJLEdBQUcsR0FBR21JLEdBQWxCLEdBQXdCL0gsR0FBRyxHQUFHZ0ksR0FBOUIsR0FBb0M1SCxHQUFHLEdBQUc2SCxHQUFwRDs7QUFFQSxRQUFLQyxHQUFHLEtBQUssQ0FBYixFQUFpQjtBQUVoQixVQUFJQyxHQUFHLEdBQUcsb0VBQVY7O0FBRUEsVUFBS04saUJBQWlCLEtBQUssSUFBM0IsRUFBa0M7QUFFakMsY0FBTSxJQUFJTyxLQUFKLENBQVdELEdBQVgsQ0FBTjtBQUVBLE9BSkQsTUFJTztBQUVObEosUUFBQUEsT0FBTyxDQUFDdUYsSUFBUixDQUFjMkQsR0FBZDtBQUVBOztBQUVELGFBQU8sS0FBSzFILFFBQUwsRUFBUDtBQUVBOztBQUVELFFBQUk0SCxNQUFNLEdBQUcsSUFBSUgsR0FBakI7QUFFQTFILElBQUFBLEVBQUUsQ0FBRSxDQUFGLENBQUYsR0FBVXNILEdBQUcsR0FBR08sTUFBaEI7QUFDQTdILElBQUFBLEVBQUUsQ0FBRSxDQUFGLENBQUYsR0FBVSxDQUFFVCxHQUFHLEdBQUdHLEdBQU4sR0FBWUUsR0FBWixHQUFrQk4sR0FBRyxHQUFHSyxHQUFOLEdBQVlDLEdBQTlCLEdBQW9DTCxHQUFHLEdBQUdDLEdBQU4sR0FBWU0sR0FBaEQsR0FBc0RWLEdBQUcsR0FBR08sR0FBTixHQUFZRyxHQUFsRSxHQUF3RVIsR0FBRyxHQUFHRSxHQUFOLEdBQVlPLEdBQXBGLEdBQTBGWCxHQUFHLEdBQUdNLEdBQU4sR0FBWUssR0FBeEcsSUFBZ0g4SCxNQUExSDtBQUNBN0gsSUFBQUEsRUFBRSxDQUFFLENBQUYsQ0FBRixHQUFVLENBQUVYLEdBQUcsR0FBR00sR0FBTixHQUFZQyxHQUFaLEdBQWtCTCxHQUFHLEdBQUdFLEdBQU4sR0FBWUcsR0FBOUIsR0FBb0NMLEdBQUcsR0FBR0MsR0FBTixHQUFZSyxHQUFoRCxHQUFzRFQsR0FBRyxHQUFHTyxHQUFOLEdBQVlFLEdBQWxFLEdBQXdFUixHQUFHLEdBQUdHLEdBQU4sR0FBWU8sR0FBcEYsR0FBMEZYLEdBQUcsR0FBR0ssR0FBTixHQUFZTSxHQUF4RyxJQUFnSDhILE1BQTFIO0FBQ0E3SCxJQUFBQSxFQUFFLENBQUUsQ0FBRixDQUFGLEdBQVUsQ0FBRVYsR0FBRyxHQUFHRyxHQUFOLEdBQVlHLEdBQVosR0FBa0JQLEdBQUcsR0FBR0ssR0FBTixHQUFZRSxHQUE5QixHQUFvQ04sR0FBRyxHQUFHRSxHQUFOLEdBQVlLLEdBQWhELEdBQXNEVCxHQUFHLEdBQUdNLEdBQU4sR0FBWUcsR0FBbEUsR0FBd0VSLEdBQUcsR0FBR0csR0FBTixHQUFZTSxHQUFwRixHQUEwRlYsR0FBRyxHQUFHSyxHQUFOLEdBQVlLLEdBQXhHLElBQWdIK0gsTUFBMUg7QUFFQTdILElBQUFBLEVBQUUsQ0FBRSxDQUFGLENBQUYsR0FBVXVILEdBQUcsR0FBR00sTUFBaEI7QUFDQTdILElBQUFBLEVBQUUsQ0FBRSxDQUFGLENBQUYsR0FBVSxDQUFFZCxHQUFHLEdBQUdTLEdBQU4sR0FBWUMsR0FBWixHQUFrQlQsR0FBRyxHQUFHTyxHQUFOLEdBQVlFLEdBQTlCLEdBQW9DVCxHQUFHLEdBQUdLLEdBQU4sR0FBWU0sR0FBaEQsR0FBc0RkLEdBQUcsR0FBR1csR0FBTixHQUFZRyxHQUFsRSxHQUF3RVosR0FBRyxHQUFHTSxHQUFOLEdBQVlPLEdBQXBGLEdBQTBGZixHQUFHLEdBQUdVLEdBQU4sR0FBWUssR0FBeEcsSUFBZ0g4SCxNQUExSDtBQUNBN0gsSUFBQUEsRUFBRSxDQUFFLENBQUYsQ0FBRixHQUFVLENBQUViLEdBQUcsR0FBR00sR0FBTixHQUFZRyxHQUFaLEdBQWtCWCxHQUFHLEdBQUdVLEdBQU4sR0FBWUMsR0FBOUIsR0FBb0NULEdBQUcsR0FBR0ssR0FBTixHQUFZSyxHQUFoRCxHQUFzRGIsR0FBRyxHQUFHVyxHQUFOLEdBQVlFLEdBQWxFLEdBQXdFWixHQUFHLEdBQUdPLEdBQU4sR0FBWU8sR0FBcEYsR0FBMEZmLEdBQUcsR0FBR1MsR0FBTixHQUFZTSxHQUF4RyxJQUFnSDhILE1BQTFIO0FBQ0E3SCxJQUFBQSxFQUFFLENBQUUsQ0FBRixDQUFGLEdBQVUsQ0FBRWYsR0FBRyxHQUFHUyxHQUFOLEdBQVlFLEdBQVosR0FBa0JWLEdBQUcsR0FBR08sR0FBTixHQUFZRyxHQUE5QixHQUFvQ1YsR0FBRyxHQUFHTSxHQUFOLEdBQVlLLEdBQWhELEdBQXNEYixHQUFHLEdBQUdVLEdBQU4sR0FBWUcsR0FBbEUsR0FBd0VaLEdBQUcsR0FBR08sR0FBTixHQUFZTSxHQUFwRixHQUEwRmQsR0FBRyxHQUFHUyxHQUFOLEdBQVlLLEdBQXhHLElBQWdIK0gsTUFBMUg7QUFFQTdILElBQUFBLEVBQUUsQ0FBRSxDQUFGLENBQUYsR0FBVXdILEdBQUcsR0FBR0ssTUFBaEI7QUFDQTdILElBQUFBLEVBQUUsQ0FBRSxDQUFGLENBQUYsR0FBVSxDQUFFYixHQUFHLEdBQUdHLEdBQU4sR0FBWU0sR0FBWixHQUFrQlYsR0FBRyxHQUFHSyxHQUFOLEdBQVlLLEdBQTlCLEdBQW9DVCxHQUFHLEdBQUdDLEdBQU4sR0FBWVUsR0FBaEQsR0FBc0RkLEdBQUcsR0FBR08sR0FBTixHQUFZTyxHQUFsRSxHQUF3RVosR0FBRyxHQUFHRSxHQUFOLEdBQVlXLEdBQXBGLEdBQTBGZixHQUFHLEdBQUdNLEdBQU4sR0FBWVMsR0FBeEcsSUFBZ0g4SCxNQUExSDtBQUNBN0gsSUFBQUEsRUFBRSxDQUFFLEVBQUYsQ0FBRixHQUFXLENBQUVmLEdBQUcsR0FBR00sR0FBTixHQUFZSyxHQUFaLEdBQWtCVCxHQUFHLEdBQUdFLEdBQU4sR0FBWU8sR0FBOUIsR0FBb0NULEdBQUcsR0FBR0MsR0FBTixHQUFZUyxHQUFoRCxHQUFzRGIsR0FBRyxHQUFHTyxHQUFOLEdBQVlNLEdBQWxFLEdBQXdFWixHQUFHLEdBQUdHLEdBQU4sR0FBWVcsR0FBcEYsR0FBMEZmLEdBQUcsR0FBR0ssR0FBTixHQUFZVSxHQUF4RyxJQUFnSDhILE1BQTNIO0FBQ0E3SCxJQUFBQSxFQUFFLENBQUUsRUFBRixDQUFGLEdBQVcsQ0FBRWQsR0FBRyxHQUFHRyxHQUFOLEdBQVlPLEdBQVosR0FBa0JYLEdBQUcsR0FBR0ssR0FBTixHQUFZTSxHQUE5QixHQUFvQ1YsR0FBRyxHQUFHRSxHQUFOLEdBQVlTLEdBQWhELEdBQXNEYixHQUFHLEdBQUdNLEdBQU4sR0FBWU8sR0FBbEUsR0FBd0VaLEdBQUcsR0FBR0csR0FBTixHQUFZVSxHQUFwRixHQUEwRmQsR0FBRyxHQUFHSyxHQUFOLEdBQVlTLEdBQXhHLElBQWdIK0gsTUFBM0g7QUFFQTdILElBQUFBLEVBQUUsQ0FBRSxFQUFGLENBQUYsR0FBV3lILEdBQUcsR0FBR0ksTUFBakI7QUFDQTdILElBQUFBLEVBQUUsQ0FBRSxFQUFGLENBQUYsR0FBVyxDQUFFZCxHQUFHLEdBQUdLLEdBQU4sR0FBWUMsR0FBWixHQUFrQkwsR0FBRyxHQUFHRyxHQUFOLEdBQVlFLEdBQTlCLEdBQW9DTCxHQUFHLEdBQUdDLEdBQU4sR0FBWU0sR0FBaEQsR0FBc0RWLEdBQUcsR0FBR08sR0FBTixHQUFZRyxHQUFsRSxHQUF3RVIsR0FBRyxHQUFHRSxHQUFOLEdBQVlPLEdBQXBGLEdBQTBGWCxHQUFHLEdBQUdNLEdBQU4sR0FBWUssR0FBeEcsSUFBZ0hrSSxNQUEzSDtBQUNBN0gsSUFBQUEsRUFBRSxDQUFFLEVBQUYsQ0FBRixHQUFXLENBQUViLEdBQUcsR0FBR0UsR0FBTixHQUFZRyxHQUFaLEdBQWtCUCxHQUFHLEdBQUdNLEdBQU4sR0FBWUMsR0FBOUIsR0FBb0NMLEdBQUcsR0FBR0MsR0FBTixHQUFZSyxHQUFoRCxHQUFzRFQsR0FBRyxHQUFHTyxHQUFOLEdBQVlFLEdBQWxFLEdBQXdFUixHQUFHLEdBQUdHLEdBQU4sR0FBWU8sR0FBcEYsR0FBMEZYLEdBQUcsR0FBR0ssR0FBTixHQUFZTSxHQUF4RyxJQUFnSGtJLE1BQTNIO0FBQ0E3SCxJQUFBQSxFQUFFLENBQUUsRUFBRixDQUFGLEdBQVcsQ0FBRWYsR0FBRyxHQUFHSyxHQUFOLEdBQVlFLEdBQVosR0FBa0JOLEdBQUcsR0FBR0csR0FBTixHQUFZRyxHQUE5QixHQUFvQ04sR0FBRyxHQUFHRSxHQUFOLEdBQVlLLEdBQWhELEdBQXNEVCxHQUFHLEdBQUdNLEdBQU4sR0FBWUcsR0FBbEUsR0FBd0VSLEdBQUcsR0FBR0csR0FBTixHQUFZTSxHQUFwRixHQUEwRlYsR0FBRyxHQUFHSyxHQUFOLEdBQVlLLEdBQXhHLElBQWdIbUksTUFBM0g7QUFFQSxXQUFPLElBQVA7QUFFQSxHQXpqQmdDO0FBMmpCakNDLEVBQUFBLEtBQUssRUFBRSxVQUFXQyxDQUFYLEVBQWU7QUFFckIsUUFBSS9ILEVBQUUsR0FBRyxLQUFLMUIsUUFBZDtBQUNBLFFBQUl3QyxDQUFDLEdBQUdpSCxDQUFDLENBQUNqSCxDQUFWO0FBQUEsUUFBYUMsQ0FBQyxHQUFHZ0gsQ0FBQyxDQUFDaEgsQ0FBbkI7QUFBQSxRQUFzQkMsQ0FBQyxHQUFHK0csQ0FBQyxDQUFDL0csQ0FBNUI7QUFFQWhCLElBQUFBLEVBQUUsQ0FBRSxDQUFGLENBQUYsSUFBV2MsQ0FBWDtBQUFjZCxJQUFBQSxFQUFFLENBQUUsQ0FBRixDQUFGLElBQVdlLENBQVg7QUFBY2YsSUFBQUEsRUFBRSxDQUFFLENBQUYsQ0FBRixJQUFXZ0IsQ0FBWDtBQUM1QmhCLElBQUFBLEVBQUUsQ0FBRSxDQUFGLENBQUYsSUFBV2MsQ0FBWDtBQUFjZCxJQUFBQSxFQUFFLENBQUUsQ0FBRixDQUFGLElBQVdlLENBQVg7QUFBY2YsSUFBQUEsRUFBRSxDQUFFLENBQUYsQ0FBRixJQUFXZ0IsQ0FBWDtBQUM1QmhCLElBQUFBLEVBQUUsQ0FBRSxDQUFGLENBQUYsSUFBV2MsQ0FBWDtBQUFjZCxJQUFBQSxFQUFFLENBQUUsQ0FBRixDQUFGLElBQVdlLENBQVg7QUFBY2YsSUFBQUEsRUFBRSxDQUFFLEVBQUYsQ0FBRixJQUFZZ0IsQ0FBWjtBQUM1QmhCLElBQUFBLEVBQUUsQ0FBRSxDQUFGLENBQUYsSUFBV2MsQ0FBWDtBQUFjZCxJQUFBQSxFQUFFLENBQUUsQ0FBRixDQUFGLElBQVdlLENBQVg7QUFBY2YsSUFBQUEsRUFBRSxDQUFFLEVBQUYsQ0FBRixJQUFZZ0IsQ0FBWjtBQUU1QixXQUFPLElBQVA7QUFFQSxHQXZrQmdDO0FBeWtCakNnSCxFQUFBQSxpQkFBaUIsRUFBRSxZQUFZO0FBRTlCLFFBQUloSSxFQUFFLEdBQUcsS0FBSzFCLFFBQWQ7QUFFQSxRQUFJMkosUUFBUSxHQUFHakksRUFBRSxDQUFFLENBQUYsQ0FBRixHQUFVQSxFQUFFLENBQUUsQ0FBRixDQUFaLEdBQW9CQSxFQUFFLENBQUUsQ0FBRixDQUFGLEdBQVVBLEVBQUUsQ0FBRSxDQUFGLENBQWhDLEdBQXdDQSxFQUFFLENBQUUsQ0FBRixDQUFGLEdBQVVBLEVBQUUsQ0FBRSxDQUFGLENBQW5FO0FBQ0EsUUFBSWtJLFFBQVEsR0FBR2xJLEVBQUUsQ0FBRSxDQUFGLENBQUYsR0FBVUEsRUFBRSxDQUFFLENBQUYsQ0FBWixHQUFvQkEsRUFBRSxDQUFFLENBQUYsQ0FBRixHQUFVQSxFQUFFLENBQUUsQ0FBRixDQUFoQyxHQUF3Q0EsRUFBRSxDQUFFLENBQUYsQ0FBRixHQUFVQSxFQUFFLENBQUUsQ0FBRixDQUFuRTtBQUNBLFFBQUltSSxRQUFRLEdBQUduSSxFQUFFLENBQUUsQ0FBRixDQUFGLEdBQVVBLEVBQUUsQ0FBRSxDQUFGLENBQVosR0FBb0JBLEVBQUUsQ0FBRSxDQUFGLENBQUYsR0FBVUEsRUFBRSxDQUFFLENBQUYsQ0FBaEMsR0FBd0NBLEVBQUUsQ0FBRSxFQUFGLENBQUYsR0FBV0EsRUFBRSxDQUFFLEVBQUYsQ0FBcEU7QUFFQSxXQUFPMEIsSUFBSSxDQUFDMEcsSUFBTCxDQUFXMUcsSUFBSSxDQUFDMkcsR0FBTCxDQUFVSixRQUFWLEVBQW9CQyxRQUFwQixFQUE4QkMsUUFBOUIsQ0FBWCxDQUFQO0FBRUEsR0FubEJnQztBQXFsQmpDRyxFQUFBQSxlQUFlLEVBQUUsVUFBV3hILENBQVgsRUFBY0MsQ0FBZCxFQUFpQkMsQ0FBakIsRUFBcUI7QUFFckMsU0FBS2pDLEdBQUwsQ0FFQyxDQUZELEVBRUksQ0FGSixFQUVPLENBRlAsRUFFVStCLENBRlYsRUFHQyxDQUhELEVBR0ksQ0FISixFQUdPLENBSFAsRUFHVUMsQ0FIVixFQUlDLENBSkQsRUFJSSxDQUpKLEVBSU8sQ0FKUCxFQUlVQyxDQUpWLEVBS0MsQ0FMRCxFQUtJLENBTEosRUFLTyxDQUxQLEVBS1UsQ0FMVjtBQVNBLFdBQU8sSUFBUDtBQUVBLEdBbG1CZ0M7QUFvbUJqQ3VILEVBQUFBLGFBQWEsRUFBRSxVQUFXQyxLQUFYLEVBQW1CO0FBRWpDLFFBQUkxRyxDQUFDLEdBQUdKLElBQUksQ0FBQ0MsR0FBTCxDQUFVNkcsS0FBVixDQUFSO0FBQUEsUUFBMkJwQyxDQUFDLEdBQUcxRSxJQUFJLENBQUNHLEdBQUwsQ0FBVTJHLEtBQVYsQ0FBL0I7QUFFQSxTQUFLekosR0FBTCxDQUVDLENBRkQsRUFFSSxDQUZKLEVBRU8sQ0FGUCxFQUVVLENBRlYsRUFHQyxDQUhELEVBR0krQyxDQUhKLEVBR08sQ0FBRXNFLENBSFQsRUFHWSxDQUhaLEVBSUMsQ0FKRCxFQUlJQSxDQUpKLEVBSU90RSxDQUpQLEVBSVUsQ0FKVixFQUtDLENBTEQsRUFLSSxDQUxKLEVBS08sQ0FMUCxFQUtVLENBTFY7QUFTQSxXQUFPLElBQVA7QUFFQSxHQW5uQmdDO0FBcW5CakMyRyxFQUFBQSxhQUFhLEVBQUUsVUFBV0QsS0FBWCxFQUFtQjtBQUVqQyxRQUFJMUcsQ0FBQyxHQUFHSixJQUFJLENBQUNDLEdBQUwsQ0FBVTZHLEtBQVYsQ0FBUjtBQUFBLFFBQTJCcEMsQ0FBQyxHQUFHMUUsSUFBSSxDQUFDRyxHQUFMLENBQVUyRyxLQUFWLENBQS9CO0FBRUEsU0FBS3pKLEdBQUwsQ0FFRStDLENBRkYsRUFFSyxDQUZMLEVBRVFzRSxDQUZSLEVBRVcsQ0FGWCxFQUdFLENBSEYsRUFHSyxDQUhMLEVBR1EsQ0FIUixFQUdXLENBSFgsRUFJQyxDQUFFQSxDQUpILEVBSU0sQ0FKTixFQUlTdEUsQ0FKVCxFQUlZLENBSlosRUFLRSxDQUxGLEVBS0ssQ0FMTCxFQUtRLENBTFIsRUFLVyxDQUxYO0FBU0EsV0FBTyxJQUFQO0FBRUEsR0Fwb0JnQztBQXNvQmpDNEcsRUFBQUEsYUFBYSxFQUFFLFVBQVdGLEtBQVgsRUFBbUI7QUFFakMsUUFBSTFHLENBQUMsR0FBR0osSUFBSSxDQUFDQyxHQUFMLENBQVU2RyxLQUFWLENBQVI7QUFBQSxRQUEyQnBDLENBQUMsR0FBRzFFLElBQUksQ0FBQ0csR0FBTCxDQUFVMkcsS0FBVixDQUEvQjtBQUVBLFNBQUt6SixHQUFMLENBRUMrQyxDQUZELEVBRUksQ0FBRXNFLENBRk4sRUFFUyxDQUZULEVBRVksQ0FGWixFQUdDQSxDQUhELEVBR0l0RSxDQUhKLEVBR08sQ0FIUCxFQUdVLENBSFYsRUFJQyxDQUpELEVBSUksQ0FKSixFQUlPLENBSlAsRUFJVSxDQUpWLEVBS0MsQ0FMRCxFQUtJLENBTEosRUFLTyxDQUxQLEVBS1UsQ0FMVjtBQVNBLFdBQU8sSUFBUDtBQUVBLEdBcnBCZ0M7QUF1cEJqQzZHLEVBQUFBLGdCQUFnQixFQUFFLFVBQVdDLElBQVgsRUFBaUJDLEtBQWpCLEVBQXlCO0FBRTFDO0FBRUEsUUFBSS9HLENBQUMsR0FBR0osSUFBSSxDQUFDQyxHQUFMLENBQVVrSCxLQUFWLENBQVI7QUFDQSxRQUFJekMsQ0FBQyxHQUFHMUUsSUFBSSxDQUFDRyxHQUFMLENBQVVnSCxLQUFWLENBQVI7QUFDQSxRQUFJQyxDQUFDLEdBQUcsSUFBSWhILENBQVo7QUFDQSxRQUFJaEIsQ0FBQyxHQUFHOEgsSUFBSSxDQUFDOUgsQ0FBYjtBQUFBLFFBQWdCQyxDQUFDLEdBQUc2SCxJQUFJLENBQUM3SCxDQUF6QjtBQUFBLFFBQTRCQyxDQUFDLEdBQUc0SCxJQUFJLENBQUM1SCxDQUFyQztBQUNBLFFBQUkrSCxFQUFFLEdBQUdELENBQUMsR0FBR2hJLENBQWI7QUFBQSxRQUFnQmtJLEVBQUUsR0FBR0YsQ0FBQyxHQUFHL0gsQ0FBekI7QUFFQSxTQUFLaEMsR0FBTCxDQUVDZ0ssRUFBRSxHQUFHakksQ0FBTCxHQUFTZ0IsQ0FGVixFQUVhaUgsRUFBRSxHQUFHaEksQ0FBTCxHQUFTcUYsQ0FBQyxHQUFHcEYsQ0FGMUIsRUFFNkIrSCxFQUFFLEdBQUcvSCxDQUFMLEdBQVNvRixDQUFDLEdBQUdyRixDQUYxQyxFQUU2QyxDQUY3QyxFQUdDZ0ksRUFBRSxHQUFHaEksQ0FBTCxHQUFTcUYsQ0FBQyxHQUFHcEYsQ0FIZCxFQUdpQmdJLEVBQUUsR0FBR2pJLENBQUwsR0FBU2UsQ0FIMUIsRUFHNkJrSCxFQUFFLEdBQUdoSSxDQUFMLEdBQVNvRixDQUFDLEdBQUd0RixDQUgxQyxFQUc2QyxDQUg3QyxFQUlDaUksRUFBRSxHQUFHL0gsQ0FBTCxHQUFTb0YsQ0FBQyxHQUFHckYsQ0FKZCxFQUlpQmlJLEVBQUUsR0FBR2hJLENBQUwsR0FBU29GLENBQUMsR0FBR3RGLENBSjlCLEVBSWlDZ0ksQ0FBQyxHQUFHOUgsQ0FBSixHQUFRQSxDQUFSLEdBQVljLENBSjdDLEVBSWdELENBSmhELEVBS0MsQ0FMRCxFQUtJLENBTEosRUFLTyxDQUxQLEVBS1UsQ0FMVjtBQVNDLFdBQU8sSUFBUDtBQUVELEdBNXFCZ0M7QUE4cUJqQ21ILEVBQUFBLFNBQVMsRUFBRSxVQUFXbkksQ0FBWCxFQUFjQyxDQUFkLEVBQWlCQyxDQUFqQixFQUFxQjtBQUUvQixTQUFLakMsR0FBTCxDQUVDK0IsQ0FGRCxFQUVJLENBRkosRUFFTyxDQUZQLEVBRVUsQ0FGVixFQUdDLENBSEQsRUFHSUMsQ0FISixFQUdPLENBSFAsRUFHVSxDQUhWLEVBSUMsQ0FKRCxFQUlJLENBSkosRUFJT0MsQ0FKUCxFQUlVLENBSlYsRUFLQyxDQUxELEVBS0ksQ0FMSixFQUtPLENBTFAsRUFLVSxDQUxWO0FBU0EsV0FBTyxJQUFQO0FBRUEsR0EzckJnQztBQTZyQmpDa0ksRUFBQUEsU0FBUyxFQUFFLFVBQVdwSSxDQUFYLEVBQWNDLENBQWQsRUFBaUJDLENBQWpCLEVBQXFCO0FBRS9CLFNBQUtqQyxHQUFMLENBRUMsQ0FGRCxFQUVJZ0MsQ0FGSixFQUVPQyxDQUZQLEVBRVUsQ0FGVixFQUdDRixDQUhELEVBR0ksQ0FISixFQUdPRSxDQUhQLEVBR1UsQ0FIVixFQUlDRixDQUpELEVBSUlDLENBSkosRUFJTyxDQUpQLEVBSVUsQ0FKVixFQUtDLENBTEQsRUFLSSxDQUxKLEVBS08sQ0FMUCxFQUtVLENBTFY7QUFTQSxXQUFPLElBQVA7QUFFQSxHQTFzQmdDO0FBNHNCakNvQyxFQUFBQSxPQUFPLEVBQUUsVUFBV2dHLFFBQVgsRUFBcUJDLFVBQXJCLEVBQWlDdEIsS0FBakMsRUFBeUM7QUFFakQsUUFBSTlILEVBQUUsR0FBRyxLQUFLMUIsUUFBZDtBQUVBLFFBQUl3QyxDQUFDLEdBQUdzSSxVQUFVLENBQUNDLEVBQW5CO0FBQUEsUUFBdUJ0SSxDQUFDLEdBQUdxSSxVQUFVLENBQUNFLEVBQXRDO0FBQUEsUUFBMEN0SSxDQUFDLEdBQUdvSSxVQUFVLENBQUNHLEVBQXpEO0FBQUEsUUFBNkRDLENBQUMsR0FBR0osVUFBVSxDQUFDSyxFQUE1RTtBQUNBLFFBQUlDLEVBQUUsR0FBRzVJLENBQUMsR0FBR0EsQ0FBYjtBQUFBLFFBQWdCNkksRUFBRSxHQUFHNUksQ0FBQyxHQUFHQSxDQUF6QjtBQUFBLFFBQTRCNkksRUFBRSxHQUFHNUksQ0FBQyxHQUFHQSxDQUFyQztBQUNBLFFBQUk2SSxFQUFFLEdBQUcvSSxDQUFDLEdBQUc0SSxFQUFiO0FBQUEsUUFBaUJJLEVBQUUsR0FBR2hKLENBQUMsR0FBRzZJLEVBQTFCO0FBQUEsUUFBOEJJLEVBQUUsR0FBR2pKLENBQUMsR0FBRzhJLEVBQXZDO0FBQ0EsUUFBSUksRUFBRSxHQUFHakosQ0FBQyxHQUFHNEksRUFBYjtBQUFBLFFBQWlCTSxFQUFFLEdBQUdsSixDQUFDLEdBQUc2SSxFQUExQjtBQUFBLFFBQThCTSxFQUFFLEdBQUdsSixDQUFDLEdBQUc0SSxFQUF2QztBQUNBLFFBQUlPLEVBQUUsR0FBR1gsQ0FBQyxHQUFHRSxFQUFiO0FBQUEsUUFBaUJVLEVBQUUsR0FBR1osQ0FBQyxHQUFHRyxFQUExQjtBQUFBLFFBQThCVSxFQUFFLEdBQUdiLENBQUMsR0FBR0ksRUFBdkM7QUFFQSxRQUFJVSxFQUFFLEdBQUd4QyxLQUFLLENBQUNoSCxDQUFmO0FBQUEsUUFBa0J5SixFQUFFLEdBQUd6QyxLQUFLLENBQUMvRyxDQUE3QjtBQUFBLFFBQWdDeUosRUFBRSxHQUFHMUMsS0FBSyxDQUFDOUcsQ0FBM0M7QUFFQWhCLElBQUFBLEVBQUUsQ0FBRSxDQUFGLENBQUYsR0FBVSxDQUFFLEtBQU1nSyxFQUFFLEdBQUdFLEVBQVgsQ0FBRixJQUFzQkksRUFBaEM7QUFDQXRLLElBQUFBLEVBQUUsQ0FBRSxDQUFGLENBQUYsR0FBVSxDQUFFOEosRUFBRSxHQUFHTyxFQUFQLElBQWNDLEVBQXhCO0FBQ0F0SyxJQUFBQSxFQUFFLENBQUUsQ0FBRixDQUFGLEdBQVUsQ0FBRStKLEVBQUUsR0FBR0ssRUFBUCxJQUFjRSxFQUF4QjtBQUNBdEssSUFBQUEsRUFBRSxDQUFFLENBQUYsQ0FBRixHQUFVLENBQVY7QUFFQUEsSUFBQUEsRUFBRSxDQUFFLENBQUYsQ0FBRixHQUFVLENBQUU4SixFQUFFLEdBQUdPLEVBQVAsSUFBY0UsRUFBeEI7QUFDQXZLLElBQUFBLEVBQUUsQ0FBRSxDQUFGLENBQUYsR0FBVSxDQUFFLEtBQU02SixFQUFFLEdBQUdLLEVBQVgsQ0FBRixJQUFzQkssRUFBaEM7QUFDQXZLLElBQUFBLEVBQUUsQ0FBRSxDQUFGLENBQUYsR0FBVSxDQUFFaUssRUFBRSxHQUFHRSxFQUFQLElBQWNJLEVBQXhCO0FBQ0F2SyxJQUFBQSxFQUFFLENBQUUsQ0FBRixDQUFGLEdBQVUsQ0FBVjtBQUVBQSxJQUFBQSxFQUFFLENBQUUsQ0FBRixDQUFGLEdBQVUsQ0FBRStKLEVBQUUsR0FBR0ssRUFBUCxJQUFjSSxFQUF4QjtBQUNBeEssSUFBQUEsRUFBRSxDQUFFLENBQUYsQ0FBRixHQUFVLENBQUVpSyxFQUFFLEdBQUdFLEVBQVAsSUFBY0ssRUFBeEI7QUFDQXhLLElBQUFBLEVBQUUsQ0FBRSxFQUFGLENBQUYsR0FBVyxDQUFFLEtBQU02SixFQUFFLEdBQUdHLEVBQVgsQ0FBRixJQUFzQlEsRUFBakM7QUFDQXhLLElBQUFBLEVBQUUsQ0FBRSxFQUFGLENBQUYsR0FBVyxDQUFYO0FBRUFBLElBQUFBLEVBQUUsQ0FBRSxFQUFGLENBQUYsR0FBV21KLFFBQVEsQ0FBQ3JJLENBQXBCO0FBQ0FkLElBQUFBLEVBQUUsQ0FBRSxFQUFGLENBQUYsR0FBV21KLFFBQVEsQ0FBQ3BJLENBQXBCO0FBQ0FmLElBQUFBLEVBQUUsQ0FBRSxFQUFGLENBQUYsR0FBV21KLFFBQVEsQ0FBQ25JLENBQXBCO0FBQ0FoQixJQUFBQSxFQUFFLENBQUUsRUFBRixDQUFGLEdBQVcsQ0FBWDtBQUVBLFdBQU8sSUFBUDtBQUVBLEdBOXVCZ0M7QUFndkJqQ3lLLEVBQUFBLFNBQVMsRUFBRSxZQUFZO0FBRXRCLFFBQUlDLE1BQU0sR0FBRyxJQUFJdE0sT0FBSixFQUFiO0FBQ0EsUUFBSXVNLE1BQU0sR0FBRyxJQUFJdE0sT0FBSixFQUFiO0FBRUEsV0FBTyxTQUFTb00sU0FBVCxDQUFvQnRCLFFBQXBCLEVBQThCQyxVQUE5QixFQUEwQ3RCLEtBQTFDLEVBQWtEO0FBRXhELFVBQUk5SCxFQUFFLEdBQUcsS0FBSzFCLFFBQWQ7QUFFQSxVQUFJZ00sRUFBRSxHQUFHSSxNQUFNLENBQUMzTCxHQUFQLENBQVlpQixFQUFFLENBQUUsQ0FBRixDQUFkLEVBQXFCQSxFQUFFLENBQUUsQ0FBRixDQUF2QixFQUE4QkEsRUFBRSxDQUFFLENBQUYsQ0FBaEMsRUFBd0N4QixNQUF4QyxFQUFUO0FBQ0EsVUFBSStMLEVBQUUsR0FBR0csTUFBTSxDQUFDM0wsR0FBUCxDQUFZaUIsRUFBRSxDQUFFLENBQUYsQ0FBZCxFQUFxQkEsRUFBRSxDQUFFLENBQUYsQ0FBdkIsRUFBOEJBLEVBQUUsQ0FBRSxDQUFGLENBQWhDLEVBQXdDeEIsTUFBeEMsRUFBVDtBQUNBLFVBQUlnTSxFQUFFLEdBQUdFLE1BQU0sQ0FBQzNMLEdBQVAsQ0FBWWlCLEVBQUUsQ0FBRSxDQUFGLENBQWQsRUFBcUJBLEVBQUUsQ0FBRSxDQUFGLENBQXZCLEVBQThCQSxFQUFFLENBQUUsRUFBRixDQUFoQyxFQUF5Q3hCLE1BQXpDLEVBQVQsQ0FOd0QsQ0FReEQ7O0FBQ0EsVUFBSWtKLEdBQUcsR0FBRyxLQUFLWCxXQUFMLEVBQVY7QUFDQSxVQUFLVyxHQUFHLEdBQUcsQ0FBWCxFQUFlNEMsRUFBRSxHQUFHLENBQUVBLEVBQVA7QUFFZm5CLE1BQUFBLFFBQVEsQ0FBQ3JJLENBQVQsR0FBYWQsRUFBRSxDQUFFLEVBQUYsQ0FBZjtBQUNBbUosTUFBQUEsUUFBUSxDQUFDcEksQ0FBVCxHQUFhZixFQUFFLENBQUUsRUFBRixDQUFmO0FBQ0FtSixNQUFBQSxRQUFRLENBQUNuSSxDQUFULEdBQWFoQixFQUFFLENBQUUsRUFBRixDQUFmLENBZHdELENBZ0J4RDs7QUFDQTJLLE1BQUFBLE1BQU0sQ0FBQ3ZLLElBQVAsQ0FBYSxJQUFiO0FBRUEsVUFBSXdLLEtBQUssR0FBRyxJQUFJTixFQUFoQjtBQUNBLFVBQUlPLEtBQUssR0FBRyxJQUFJTixFQUFoQjtBQUNBLFVBQUlPLEtBQUssR0FBRyxJQUFJTixFQUFoQjtBQUVBRyxNQUFBQSxNQUFNLENBQUNyTSxRQUFQLENBQWlCLENBQWpCLEtBQXdCc00sS0FBeEI7QUFDQUQsTUFBQUEsTUFBTSxDQUFDck0sUUFBUCxDQUFpQixDQUFqQixLQUF3QnNNLEtBQXhCO0FBQ0FELE1BQUFBLE1BQU0sQ0FBQ3JNLFFBQVAsQ0FBaUIsQ0FBakIsS0FBd0JzTSxLQUF4QjtBQUVBRCxNQUFBQSxNQUFNLENBQUNyTSxRQUFQLENBQWlCLENBQWpCLEtBQXdCdU0sS0FBeEI7QUFDQUYsTUFBQUEsTUFBTSxDQUFDck0sUUFBUCxDQUFpQixDQUFqQixLQUF3QnVNLEtBQXhCO0FBQ0FGLE1BQUFBLE1BQU0sQ0FBQ3JNLFFBQVAsQ0FBaUIsQ0FBakIsS0FBd0J1TSxLQUF4QjtBQUVBRixNQUFBQSxNQUFNLENBQUNyTSxRQUFQLENBQWlCLENBQWpCLEtBQXdCd00sS0FBeEI7QUFDQUgsTUFBQUEsTUFBTSxDQUFDck0sUUFBUCxDQUFpQixDQUFqQixLQUF3QndNLEtBQXhCO0FBQ0FILE1BQUFBLE1BQU0sQ0FBQ3JNLFFBQVAsQ0FBaUIsRUFBakIsS0FBeUJ3TSxLQUF6QjtBQUVBMUIsTUFBQUEsVUFBVSxDQUFDMkIscUJBQVgsQ0FBa0NKLE1BQWxDO0FBRUE3QyxNQUFBQSxLQUFLLENBQUNoSCxDQUFOLEdBQVV3SixFQUFWO0FBQ0F4QyxNQUFBQSxLQUFLLENBQUMvRyxDQUFOLEdBQVV3SixFQUFWO0FBQ0F6QyxNQUFBQSxLQUFLLENBQUM5RyxDQUFOLEdBQVV3SixFQUFWO0FBRUEsYUFBTyxJQUFQO0FBRUEsS0EzQ0Q7QUE2Q0EsR0FsRFUsRUFodkJzQjtBQW95QmpDUSxFQUFBQSxlQUFlLEVBQUUsVUFBV0MsSUFBWCxFQUFpQkMsS0FBakIsRUFBd0JDLEdBQXhCLEVBQTZCQyxNQUE3QixFQUFxQ0MsSUFBckMsRUFBMkNDLEdBQTNDLEVBQWlEO0FBRWpFLFFBQUtBLEdBQUcsS0FBS3ZILFNBQWIsRUFBeUI7QUFFeEJ0RixNQUFBQSxPQUFPLENBQUN1RixJQUFSLENBQWMsc0dBQWQ7QUFFQTs7QUFFRCxRQUFJaEUsRUFBRSxHQUFHLEtBQUsxQixRQUFkO0FBQ0EsUUFBSXdDLENBQUMsR0FBRyxJQUFJdUssSUFBSixJQUFhSCxLQUFLLEdBQUdELElBQXJCLENBQVI7QUFDQSxRQUFJbEssQ0FBQyxHQUFHLElBQUlzSyxJQUFKLElBQWFGLEdBQUcsR0FBR0MsTUFBbkIsQ0FBUjtBQUVBLFFBQUkzSixDQUFDLEdBQUcsQ0FBRXlKLEtBQUssR0FBR0QsSUFBVixLQUFxQkMsS0FBSyxHQUFHRCxJQUE3QixDQUFSO0FBQ0EsUUFBSXJKLENBQUMsR0FBRyxDQUFFdUosR0FBRyxHQUFHQyxNQUFSLEtBQXFCRCxHQUFHLEdBQUdDLE1BQTNCLENBQVI7QUFDQSxRQUFJdEosQ0FBQyxHQUFHLEVBQUl3SixHQUFHLEdBQUdELElBQVYsS0FBcUJDLEdBQUcsR0FBR0QsSUFBM0IsQ0FBUjtBQUNBLFFBQUl0SixDQUFDLEdBQUcsQ0FBRSxDQUFGLEdBQU11SixHQUFOLEdBQVlELElBQVosSUFBcUJDLEdBQUcsR0FBR0QsSUFBM0IsQ0FBUjtBQUVBckwsSUFBQUEsRUFBRSxDQUFFLENBQUYsQ0FBRixHQUFVYyxDQUFWO0FBQWFkLElBQUFBLEVBQUUsQ0FBRSxDQUFGLENBQUYsR0FBVSxDQUFWO0FBQWFBLElBQUFBLEVBQUUsQ0FBRSxDQUFGLENBQUYsR0FBVXlCLENBQVY7QUFBYXpCLElBQUFBLEVBQUUsQ0FBRSxFQUFGLENBQUYsR0FBVyxDQUFYO0FBQ3ZDQSxJQUFBQSxFQUFFLENBQUUsQ0FBRixDQUFGLEdBQVUsQ0FBVjtBQUFhQSxJQUFBQSxFQUFFLENBQUUsQ0FBRixDQUFGLEdBQVVlLENBQVY7QUFBYWYsSUFBQUEsRUFBRSxDQUFFLENBQUYsQ0FBRixHQUFVNEIsQ0FBVjtBQUFhNUIsSUFBQUEsRUFBRSxDQUFFLEVBQUYsQ0FBRixHQUFXLENBQVg7QUFDdkNBLElBQUFBLEVBQUUsQ0FBRSxDQUFGLENBQUYsR0FBVSxDQUFWO0FBQWFBLElBQUFBLEVBQUUsQ0FBRSxDQUFGLENBQUYsR0FBVSxDQUFWO0FBQWFBLElBQUFBLEVBQUUsQ0FBRSxFQUFGLENBQUYsR0FBVzhCLENBQVg7QUFBYzlCLElBQUFBLEVBQUUsQ0FBRSxFQUFGLENBQUYsR0FBVytCLENBQVg7QUFDeEMvQixJQUFBQSxFQUFFLENBQUUsQ0FBRixDQUFGLEdBQVUsQ0FBVjtBQUFhQSxJQUFBQSxFQUFFLENBQUUsQ0FBRixDQUFGLEdBQVUsQ0FBVjtBQUFhQSxJQUFBQSxFQUFFLENBQUUsRUFBRixDQUFGLEdBQVcsQ0FBRSxDQUFiO0FBQWdCQSxJQUFBQSxFQUFFLENBQUUsRUFBRixDQUFGLEdBQVcsQ0FBWDtBQUUxQyxXQUFPLElBQVA7QUFFQSxHQTV6QmdDO0FBOHpCakN1TCxFQUFBQSxnQkFBZ0IsRUFBRSxVQUFXTixJQUFYLEVBQWlCQyxLQUFqQixFQUF3QkMsR0FBeEIsRUFBNkJDLE1BQTdCLEVBQXFDQyxJQUFyQyxFQUEyQ0MsR0FBM0MsRUFBaUQ7QUFFbEUsUUFBSXRMLEVBQUUsR0FBRyxLQUFLMUIsUUFBZDtBQUNBLFFBQUlrTCxDQUFDLEdBQUcsT0FBUTBCLEtBQUssR0FBR0QsSUFBaEIsQ0FBUjtBQUNBLFFBQUlPLENBQUMsR0FBRyxPQUFRTCxHQUFHLEdBQUdDLE1BQWQsQ0FBUjtBQUNBLFFBQUlLLENBQUMsR0FBRyxPQUFRSCxHQUFHLEdBQUdELElBQWQsQ0FBUjtBQUVBLFFBQUl2SyxDQUFDLEdBQUcsQ0FBRW9LLEtBQUssR0FBR0QsSUFBVixJQUFtQnpCLENBQTNCO0FBQ0EsUUFBSXpJLENBQUMsR0FBRyxDQUFFb0ssR0FBRyxHQUFHQyxNQUFSLElBQW1CSSxDQUEzQjtBQUNBLFFBQUl4SyxDQUFDLEdBQUcsQ0FBRXNLLEdBQUcsR0FBR0QsSUFBUixJQUFpQkksQ0FBekI7QUFFQXpMLElBQUFBLEVBQUUsQ0FBRSxDQUFGLENBQUYsR0FBVSxJQUFJd0osQ0FBZDtBQUFpQnhKLElBQUFBLEVBQUUsQ0FBRSxDQUFGLENBQUYsR0FBVSxDQUFWO0FBQWFBLElBQUFBLEVBQUUsQ0FBRSxDQUFGLENBQUYsR0FBVSxDQUFWO0FBQWFBLElBQUFBLEVBQUUsQ0FBRSxFQUFGLENBQUYsR0FBVyxDQUFFYyxDQUFiO0FBQzNDZCxJQUFBQSxFQUFFLENBQUUsQ0FBRixDQUFGLEdBQVUsQ0FBVjtBQUFhQSxJQUFBQSxFQUFFLENBQUUsQ0FBRixDQUFGLEdBQVUsSUFBSXdMLENBQWQ7QUFBaUJ4TCxJQUFBQSxFQUFFLENBQUUsQ0FBRixDQUFGLEdBQVUsQ0FBVjtBQUFhQSxJQUFBQSxFQUFFLENBQUUsRUFBRixDQUFGLEdBQVcsQ0FBRWUsQ0FBYjtBQUMzQ2YsSUFBQUEsRUFBRSxDQUFFLENBQUYsQ0FBRixHQUFVLENBQVY7QUFBYUEsSUFBQUEsRUFBRSxDQUFFLENBQUYsQ0FBRixHQUFVLENBQVY7QUFBYUEsSUFBQUEsRUFBRSxDQUFFLEVBQUYsQ0FBRixHQUFXLENBQUUsQ0FBRixHQUFNeUwsQ0FBakI7QUFBb0J6TCxJQUFBQSxFQUFFLENBQUUsRUFBRixDQUFGLEdBQVcsQ0FBRWdCLENBQWI7QUFDOUNoQixJQUFBQSxFQUFFLENBQUUsQ0FBRixDQUFGLEdBQVUsQ0FBVjtBQUFhQSxJQUFBQSxFQUFFLENBQUUsQ0FBRixDQUFGLEdBQVUsQ0FBVjtBQUFhQSxJQUFBQSxFQUFFLENBQUUsRUFBRixDQUFGLEdBQVcsQ0FBWDtBQUFjQSxJQUFBQSxFQUFFLENBQUUsRUFBRixDQUFGLEdBQVcsQ0FBWDtBQUV4QyxXQUFPLElBQVA7QUFFQSxHQWgxQmdDO0FBazFCakMwTCxFQUFBQSxNQUFNLEVBQUUsVUFBV2YsTUFBWCxFQUFvQjtBQUUzQixRQUFJM0ssRUFBRSxHQUFHLEtBQUsxQixRQUFkO0FBQ0EsUUFBSWdDLEVBQUUsR0FBR3FLLE1BQU0sQ0FBQ3JNLFFBQWhCOztBQUVBLFNBQU0sSUFBSWlJLENBQUMsR0FBRyxDQUFkLEVBQWlCQSxDQUFDLEdBQUcsRUFBckIsRUFBeUJBLENBQUMsRUFBMUIsRUFBZ0M7QUFFL0IsVUFBS3ZHLEVBQUUsQ0FBRXVHLENBQUYsQ0FBRixLQUFZakcsRUFBRSxDQUFFaUcsQ0FBRixDQUFuQixFQUEyQixPQUFPLEtBQVA7QUFFM0I7O0FBRUQsV0FBTyxJQUFQO0FBRUEsR0EvMUJnQztBQWkyQmpDcEcsRUFBQUEsU0FBUyxFQUFFLFVBQVd3TCxLQUFYLEVBQWtCQyxNQUFsQixFQUEyQjtBQUVyQyxRQUFLQSxNQUFNLEtBQUs3SCxTQUFoQixFQUE0QjZILE1BQU0sR0FBRyxDQUFUOztBQUU1QixTQUFNLElBQUlyRixDQUFDLEdBQUcsQ0FBZCxFQUFpQkEsQ0FBQyxHQUFHLEVBQXJCLEVBQXlCQSxDQUFDLEVBQTFCLEVBQWdDO0FBRS9CLFdBQUtqSSxRQUFMLENBQWVpSSxDQUFmLElBQXFCb0YsS0FBSyxDQUFFcEYsQ0FBQyxHQUFHcUYsTUFBTixDQUExQjtBQUVBOztBQUVELFdBQU8sSUFBUDtBQUVBLEdBNzJCZ0M7QUErMkJqQ0MsRUFBQUEsT0FBTyxFQUFFLFVBQVdGLEtBQVgsRUFBa0JDLE1BQWxCLEVBQTJCO0FBRW5DLFFBQUtELEtBQUssS0FBSzVILFNBQWYsRUFBMkI0SCxLQUFLLEdBQUcsRUFBUjtBQUMzQixRQUFLQyxNQUFNLEtBQUs3SCxTQUFoQixFQUE0QjZILE1BQU0sR0FBRyxDQUFUO0FBRTVCLFFBQUk1TCxFQUFFLEdBQUcsS0FBSzFCLFFBQWQ7QUFFQXFOLElBQUFBLEtBQUssQ0FBRUMsTUFBRixDQUFMLEdBQWtCNUwsRUFBRSxDQUFFLENBQUYsQ0FBcEI7QUFDQTJMLElBQUFBLEtBQUssQ0FBRUMsTUFBTSxHQUFHLENBQVgsQ0FBTCxHQUFzQjVMLEVBQUUsQ0FBRSxDQUFGLENBQXhCO0FBQ0EyTCxJQUFBQSxLQUFLLENBQUVDLE1BQU0sR0FBRyxDQUFYLENBQUwsR0FBc0I1TCxFQUFFLENBQUUsQ0FBRixDQUF4QjtBQUNBMkwsSUFBQUEsS0FBSyxDQUFFQyxNQUFNLEdBQUcsQ0FBWCxDQUFMLEdBQXNCNUwsRUFBRSxDQUFFLENBQUYsQ0FBeEI7QUFFQTJMLElBQUFBLEtBQUssQ0FBRUMsTUFBTSxHQUFHLENBQVgsQ0FBTCxHQUFzQjVMLEVBQUUsQ0FBRSxDQUFGLENBQXhCO0FBQ0EyTCxJQUFBQSxLQUFLLENBQUVDLE1BQU0sR0FBRyxDQUFYLENBQUwsR0FBc0I1TCxFQUFFLENBQUUsQ0FBRixDQUF4QjtBQUNBMkwsSUFBQUEsS0FBSyxDQUFFQyxNQUFNLEdBQUcsQ0FBWCxDQUFMLEdBQXNCNUwsRUFBRSxDQUFFLENBQUYsQ0FBeEI7QUFDQTJMLElBQUFBLEtBQUssQ0FBRUMsTUFBTSxHQUFHLENBQVgsQ0FBTCxHQUFzQjVMLEVBQUUsQ0FBRSxDQUFGLENBQXhCO0FBRUEyTCxJQUFBQSxLQUFLLENBQUVDLE1BQU0sR0FBRyxDQUFYLENBQUwsR0FBc0I1TCxFQUFFLENBQUUsQ0FBRixDQUF4QjtBQUNBMkwsSUFBQUEsS0FBSyxDQUFFQyxNQUFNLEdBQUcsQ0FBWCxDQUFMLEdBQXNCNUwsRUFBRSxDQUFFLENBQUYsQ0FBeEI7QUFDQTJMLElBQUFBLEtBQUssQ0FBRUMsTUFBTSxHQUFHLEVBQVgsQ0FBTCxHQUF1QjVMLEVBQUUsQ0FBRSxFQUFGLENBQXpCO0FBQ0EyTCxJQUFBQSxLQUFLLENBQUVDLE1BQU0sR0FBRyxFQUFYLENBQUwsR0FBdUI1TCxFQUFFLENBQUUsRUFBRixDQUF6QjtBQUVBMkwsSUFBQUEsS0FBSyxDQUFFQyxNQUFNLEdBQUcsRUFBWCxDQUFMLEdBQXVCNUwsRUFBRSxDQUFFLEVBQUYsQ0FBekI7QUFDQTJMLElBQUFBLEtBQUssQ0FBRUMsTUFBTSxHQUFHLEVBQVgsQ0FBTCxHQUF1QjVMLEVBQUUsQ0FBRSxFQUFGLENBQXpCO0FBQ0EyTCxJQUFBQSxLQUFLLENBQUVDLE1BQU0sR0FBRyxFQUFYLENBQUwsR0FBdUI1TCxFQUFFLENBQUUsRUFBRixDQUF6QjtBQUNBMkwsSUFBQUEsS0FBSyxDQUFFQyxNQUFNLEdBQUcsRUFBWCxDQUFMLEdBQXVCNUwsRUFBRSxDQUFFLEVBQUYsQ0FBekI7QUFFQSxXQUFPMkwsS0FBUDtBQUVBO0FBNTRCZ0MsQ0FBbEM7QUFpNUJBLFNBQVN0TixPQUFUIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVmVjdG9yMyB9IGZyb20gJy4vVmVjdG9yMy5qcyc7XG5cbi8qKlxuICogQGF1dGhvciBtcmRvb2IgLyBodHRwOi8vbXJkb29iLmNvbS9cbiAqIEBhdXRob3Igc3VwZXJlZ2diZXJ0IC8gaHR0cDovL3d3dy5wYXVsYnJ1bnQuY28udWsvXG4gKiBAYXV0aG9yIHBoaWxvZ2IgLyBodHRwOi8vYmxvZy50aGVqaXQub3JnL1xuICogQGF1dGhvciBqb3JkaV9yb3MgLyBodHRwOi8vcGxhdHRzb2Z0LmNvbVxuICogQGF1dGhvciBEMXBsbzFkIC8gaHR0cDovL2dpdGh1Yi5jb20vRDFwbG8xZFxuICogQGF1dGhvciBhbHRlcmVkcSAvIGh0dHA6Ly9hbHRlcmVkcXVhbGlhLmNvbS9cbiAqIEBhdXRob3IgbWlrYWVsIGVtdGluZ2VyIC8gaHR0cDovL2dvbW8uc2UvXG4gKiBAYXV0aG9yIHRpbWtuaXAgLyBodHRwOi8vd3d3LmZsb29ycGxhbm5lci5jb20vXG4gKiBAYXV0aG9yIGJob3VzdG9uIC8gaHR0cDovL2NsYXJhLmlvXG4gKiBAYXV0aG9yIFdlc3RMYW5nbGV5IC8gaHR0cDovL2dpdGh1Yi5jb20vV2VzdExhbmdsZXlcbiAqL1xuXG5mdW5jdGlvbiBNYXRyaXg0KCkge1xuXG5cdHRoaXMuZWxlbWVudHMgPSBbXG5cblx0XHQxLCAwLCAwLCAwLFxuXHRcdDAsIDEsIDAsIDAsXG5cdFx0MCwgMCwgMSwgMCxcblx0XHQwLCAwLCAwLCAxXG5cblx0XTtcblxuXHRpZiAoIGFyZ3VtZW50cy5sZW5ndGggPiAwICkge1xuXG5cdFx0Y29uc29sZS5lcnJvciggJ1RIUkVFLk1hdHJpeDQ6IHRoZSBjb25zdHJ1Y3RvciBubyBsb25nZXIgcmVhZHMgYXJndW1lbnRzLiB1c2UgLnNldCgpIGluc3RlYWQuJyApO1xuXG5cdH1cblxufVxuXG5PYmplY3QuYXNzaWduKCBNYXRyaXg0LnByb3RvdHlwZSwge1xuXG5cdGlzTWF0cml4NDogdHJ1ZSxcblxuXHRzZXQ6IGZ1bmN0aW9uICggbjExLCBuMTIsIG4xMywgbjE0LCBuMjEsIG4yMiwgbjIzLCBuMjQsIG4zMSwgbjMyLCBuMzMsIG4zNCwgbjQxLCBuNDIsIG40MywgbjQ0ICkge1xuXG5cdFx0dmFyIHRlID0gdGhpcy5lbGVtZW50cztcblxuXHRcdHRlWyAwIF0gPSBuMTE7IHRlWyA0IF0gPSBuMTI7IHRlWyA4IF0gPSBuMTM7IHRlWyAxMiBdID0gbjE0O1xuXHRcdHRlWyAxIF0gPSBuMjE7IHRlWyA1IF0gPSBuMjI7IHRlWyA5IF0gPSBuMjM7IHRlWyAxMyBdID0gbjI0O1xuXHRcdHRlWyAyIF0gPSBuMzE7IHRlWyA2IF0gPSBuMzI7IHRlWyAxMCBdID0gbjMzOyB0ZVsgMTQgXSA9IG4zNDtcblx0XHR0ZVsgMyBdID0gbjQxOyB0ZVsgNyBdID0gbjQyOyB0ZVsgMTEgXSA9IG40MzsgdGVbIDE1IF0gPSBuNDQ7XG5cblx0XHRyZXR1cm4gdGhpcztcblxuXHR9LFxuXG5cdGlkZW50aXR5OiBmdW5jdGlvbiAoKSB7XG5cblx0XHR0aGlzLnNldChcblxuXHRcdFx0MSwgMCwgMCwgMCxcblx0XHRcdDAsIDEsIDAsIDAsXG5cdFx0XHQwLCAwLCAxLCAwLFxuXHRcdFx0MCwgMCwgMCwgMVxuXG5cdFx0KTtcblxuXHRcdHJldHVybiB0aGlzO1xuXG5cdH0sXG5cblx0Y2xvbmU6IGZ1bmN0aW9uICgpIHtcblxuXHRcdHJldHVybiBuZXcgTWF0cml4NCgpLmZyb21BcnJheSggdGhpcy5lbGVtZW50cyApO1xuXG5cdH0sXG5cblx0Y29weTogZnVuY3Rpb24gKCBtICkge1xuXG5cdFx0dmFyIHRlID0gdGhpcy5lbGVtZW50cztcblx0XHR2YXIgbWUgPSBtLmVsZW1lbnRzO1xuXG5cdFx0dGVbIDAgXSA9IG1lWyAwIF07IHRlWyAxIF0gPSBtZVsgMSBdOyB0ZVsgMiBdID0gbWVbIDIgXTsgdGVbIDMgXSA9IG1lWyAzIF07XG5cdFx0dGVbIDQgXSA9IG1lWyA0IF07IHRlWyA1IF0gPSBtZVsgNSBdOyB0ZVsgNiBdID0gbWVbIDYgXTsgdGVbIDcgXSA9IG1lWyA3IF07XG5cdFx0dGVbIDggXSA9IG1lWyA4IF07IHRlWyA5IF0gPSBtZVsgOSBdOyB0ZVsgMTAgXSA9IG1lWyAxMCBdOyB0ZVsgMTEgXSA9IG1lWyAxMSBdO1xuXHRcdHRlWyAxMiBdID0gbWVbIDEyIF07IHRlWyAxMyBdID0gbWVbIDEzIF07IHRlWyAxNCBdID0gbWVbIDE0IF07IHRlWyAxNSBdID0gbWVbIDE1IF07XG5cblx0XHRyZXR1cm4gdGhpcztcblxuXHR9LFxuXG5cdGNvcHlQb3NpdGlvbjogZnVuY3Rpb24gKCBtICkge1xuXG5cdFx0dmFyIHRlID0gdGhpcy5lbGVtZW50cywgbWUgPSBtLmVsZW1lbnRzO1xuXG5cdFx0dGVbIDEyIF0gPSBtZVsgMTIgXTtcblx0XHR0ZVsgMTMgXSA9IG1lWyAxMyBdO1xuXHRcdHRlWyAxNCBdID0gbWVbIDE0IF07XG5cblx0XHRyZXR1cm4gdGhpcztcblxuXHR9LFxuXG5cdGV4dHJhY3RCYXNpczogZnVuY3Rpb24gKCB4QXhpcywgeUF4aXMsIHpBeGlzICkge1xuXG5cdFx0eEF4aXMuc2V0RnJvbU1hdHJpeENvbHVtbiggdGhpcywgMCApO1xuXHRcdHlBeGlzLnNldEZyb21NYXRyaXhDb2x1bW4oIHRoaXMsIDEgKTtcblx0XHR6QXhpcy5zZXRGcm9tTWF0cml4Q29sdW1uKCB0aGlzLCAyICk7XG5cblx0XHRyZXR1cm4gdGhpcztcblxuXHR9LFxuXG5cdG1ha2VCYXNpczogZnVuY3Rpb24gKCB4QXhpcywgeUF4aXMsIHpBeGlzICkge1xuXG5cdFx0dGhpcy5zZXQoXG5cdFx0XHR4QXhpcy54LCB5QXhpcy54LCB6QXhpcy54LCAwLFxuXHRcdFx0eEF4aXMueSwgeUF4aXMueSwgekF4aXMueSwgMCxcblx0XHRcdHhBeGlzLnosIHlBeGlzLnosIHpBeGlzLnosIDAsXG5cdFx0XHQwLCAwLCAwLCAxXG5cdFx0KTtcblxuXHRcdHJldHVybiB0aGlzO1xuXG5cdH0sXG5cblx0ZXh0cmFjdFJvdGF0aW9uOiBmdW5jdGlvbiAoKSB7XG5cblx0XHR2YXIgdjEgPSBuZXcgVmVjdG9yMygpO1xuXG5cdFx0cmV0dXJuIGZ1bmN0aW9uIGV4dHJhY3RSb3RhdGlvbiggbSApIHtcblxuXHRcdFx0Ly8gdGhpcyBtZXRob2QgZG9lcyBub3Qgc3VwcG9ydCByZWZsZWN0aW9uIG1hdHJpY2VzXG5cblx0XHRcdHZhciB0ZSA9IHRoaXMuZWxlbWVudHM7XG5cdFx0XHR2YXIgbWUgPSBtLmVsZW1lbnRzO1xuXG5cdFx0XHR2YXIgc2NhbGVYID0gMSAvIHYxLnNldEZyb21NYXRyaXhDb2x1bW4oIG0sIDAgKS5sZW5ndGgoKTtcblx0XHRcdHZhciBzY2FsZVkgPSAxIC8gdjEuc2V0RnJvbU1hdHJpeENvbHVtbiggbSwgMSApLmxlbmd0aCgpO1xuXHRcdFx0dmFyIHNjYWxlWiA9IDEgLyB2MS5zZXRGcm9tTWF0cml4Q29sdW1uKCBtLCAyICkubGVuZ3RoKCk7XG5cblx0XHRcdHRlWyAwIF0gPSBtZVsgMCBdICogc2NhbGVYO1xuXHRcdFx0dGVbIDEgXSA9IG1lWyAxIF0gKiBzY2FsZVg7XG5cdFx0XHR0ZVsgMiBdID0gbWVbIDIgXSAqIHNjYWxlWDtcblx0XHRcdHRlWyAzIF0gPSAwO1xuXG5cdFx0XHR0ZVsgNCBdID0gbWVbIDQgXSAqIHNjYWxlWTtcblx0XHRcdHRlWyA1IF0gPSBtZVsgNSBdICogc2NhbGVZO1xuXHRcdFx0dGVbIDYgXSA9IG1lWyA2IF0gKiBzY2FsZVk7XG5cdFx0XHR0ZVsgNyBdID0gMDtcblxuXHRcdFx0dGVbIDggXSA9IG1lWyA4IF0gKiBzY2FsZVo7XG5cdFx0XHR0ZVsgOSBdID0gbWVbIDkgXSAqIHNjYWxlWjtcblx0XHRcdHRlWyAxMCBdID0gbWVbIDEwIF0gKiBzY2FsZVo7XG5cdFx0XHR0ZVsgMTEgXSA9IDA7XG5cblx0XHRcdHRlWyAxMiBdID0gMDtcblx0XHRcdHRlWyAxMyBdID0gMDtcblx0XHRcdHRlWyAxNCBdID0gMDtcblx0XHRcdHRlWyAxNSBdID0gMTtcblxuXHRcdFx0cmV0dXJuIHRoaXM7XG5cblx0XHR9O1xuXG5cdH0oKSxcblxuXHRtYWtlUm90YXRpb25Gcm9tRXVsZXI6IGZ1bmN0aW9uICggZXVsZXIgKSB7XG5cblx0XHRpZiAoICEgKCBldWxlciAmJiBldWxlci5pc0V1bGVyICkgKSB7XG5cblx0XHRcdGNvbnNvbGUuZXJyb3IoICdUSFJFRS5NYXRyaXg0OiAubWFrZVJvdGF0aW9uRnJvbUV1bGVyKCkgbm93IGV4cGVjdHMgYSBFdWxlciByb3RhdGlvbiByYXRoZXIgdGhhbiBhIFZlY3RvcjMgYW5kIG9yZGVyLicgKTtcblxuXHRcdH1cblxuXHRcdHZhciB0ZSA9IHRoaXMuZWxlbWVudHM7XG5cblx0XHR2YXIgeCA9IGV1bGVyLngsIHkgPSBldWxlci55LCB6ID0gZXVsZXIuejtcblx0XHR2YXIgYSA9IE1hdGguY29zKCB4ICksIGIgPSBNYXRoLnNpbiggeCApO1xuXHRcdHZhciBjID0gTWF0aC5jb3MoIHkgKSwgZCA9IE1hdGguc2luKCB5ICk7XG5cdFx0dmFyIGUgPSBNYXRoLmNvcyggeiApLCBmID0gTWF0aC5zaW4oIHogKTtcblxuXHRcdGlmICggZXVsZXIub3JkZXIgPT09ICdYWVonICkge1xuXG5cdFx0XHR2YXIgYWUgPSBhICogZSwgYWYgPSBhICogZiwgYmUgPSBiICogZSwgYmYgPSBiICogZjtcblxuXHRcdFx0dGVbIDAgXSA9IGMgKiBlO1xuXHRcdFx0dGVbIDQgXSA9IC0gYyAqIGY7XG5cdFx0XHR0ZVsgOCBdID0gZDtcblxuXHRcdFx0dGVbIDEgXSA9IGFmICsgYmUgKiBkO1xuXHRcdFx0dGVbIDUgXSA9IGFlIC0gYmYgKiBkO1xuXHRcdFx0dGVbIDkgXSA9IC0gYiAqIGM7XG5cblx0XHRcdHRlWyAyIF0gPSBiZiAtIGFlICogZDtcblx0XHRcdHRlWyA2IF0gPSBiZSArIGFmICogZDtcblx0XHRcdHRlWyAxMCBdID0gYSAqIGM7XG5cblx0XHR9IGVsc2UgaWYgKCBldWxlci5vcmRlciA9PT0gJ1lYWicgKSB7XG5cblx0XHRcdHZhciBjZSA9IGMgKiBlLCBjZiA9IGMgKiBmLCBkZSA9IGQgKiBlLCBkZiA9IGQgKiBmO1xuXG5cdFx0XHR0ZVsgMCBdID0gY2UgKyBkZiAqIGI7XG5cdFx0XHR0ZVsgNCBdID0gZGUgKiBiIC0gY2Y7XG5cdFx0XHR0ZVsgOCBdID0gYSAqIGQ7XG5cblx0XHRcdHRlWyAxIF0gPSBhICogZjtcblx0XHRcdHRlWyA1IF0gPSBhICogZTtcblx0XHRcdHRlWyA5IF0gPSAtIGI7XG5cblx0XHRcdHRlWyAyIF0gPSBjZiAqIGIgLSBkZTtcblx0XHRcdHRlWyA2IF0gPSBkZiArIGNlICogYjtcblx0XHRcdHRlWyAxMCBdID0gYSAqIGM7XG5cblx0XHR9IGVsc2UgaWYgKCBldWxlci5vcmRlciA9PT0gJ1pYWScgKSB7XG5cblx0XHRcdHZhciBjZSA9IGMgKiBlLCBjZiA9IGMgKiBmLCBkZSA9IGQgKiBlLCBkZiA9IGQgKiBmO1xuXG5cdFx0XHR0ZVsgMCBdID0gY2UgLSBkZiAqIGI7XG5cdFx0XHR0ZVsgNCBdID0gLSBhICogZjtcblx0XHRcdHRlWyA4IF0gPSBkZSArIGNmICogYjtcblxuXHRcdFx0dGVbIDEgXSA9IGNmICsgZGUgKiBiO1xuXHRcdFx0dGVbIDUgXSA9IGEgKiBlO1xuXHRcdFx0dGVbIDkgXSA9IGRmIC0gY2UgKiBiO1xuXG5cdFx0XHR0ZVsgMiBdID0gLSBhICogZDtcblx0XHRcdHRlWyA2IF0gPSBiO1xuXHRcdFx0dGVbIDEwIF0gPSBhICogYztcblxuXHRcdH0gZWxzZSBpZiAoIGV1bGVyLm9yZGVyID09PSAnWllYJyApIHtcblxuXHRcdFx0dmFyIGFlID0gYSAqIGUsIGFmID0gYSAqIGYsIGJlID0gYiAqIGUsIGJmID0gYiAqIGY7XG5cblx0XHRcdHRlWyAwIF0gPSBjICogZTtcblx0XHRcdHRlWyA0IF0gPSBiZSAqIGQgLSBhZjtcblx0XHRcdHRlWyA4IF0gPSBhZSAqIGQgKyBiZjtcblxuXHRcdFx0dGVbIDEgXSA9IGMgKiBmO1xuXHRcdFx0dGVbIDUgXSA9IGJmICogZCArIGFlO1xuXHRcdFx0dGVbIDkgXSA9IGFmICogZCAtIGJlO1xuXG5cdFx0XHR0ZVsgMiBdID0gLSBkO1xuXHRcdFx0dGVbIDYgXSA9IGIgKiBjO1xuXHRcdFx0dGVbIDEwIF0gPSBhICogYztcblxuXHRcdH0gZWxzZSBpZiAoIGV1bGVyLm9yZGVyID09PSAnWVpYJyApIHtcblxuXHRcdFx0dmFyIGFjID0gYSAqIGMsIGFkID0gYSAqIGQsIGJjID0gYiAqIGMsIGJkID0gYiAqIGQ7XG5cblx0XHRcdHRlWyAwIF0gPSBjICogZTtcblx0XHRcdHRlWyA0IF0gPSBiZCAtIGFjICogZjtcblx0XHRcdHRlWyA4IF0gPSBiYyAqIGYgKyBhZDtcblxuXHRcdFx0dGVbIDEgXSA9IGY7XG5cdFx0XHR0ZVsgNSBdID0gYSAqIGU7XG5cdFx0XHR0ZVsgOSBdID0gLSBiICogZTtcblxuXHRcdFx0dGVbIDIgXSA9IC0gZCAqIGU7XG5cdFx0XHR0ZVsgNiBdID0gYWQgKiBmICsgYmM7XG5cdFx0XHR0ZVsgMTAgXSA9IGFjIC0gYmQgKiBmO1xuXG5cdFx0fSBlbHNlIGlmICggZXVsZXIub3JkZXIgPT09ICdYWlknICkge1xuXG5cdFx0XHR2YXIgYWMgPSBhICogYywgYWQgPSBhICogZCwgYmMgPSBiICogYywgYmQgPSBiICogZDtcblxuXHRcdFx0dGVbIDAgXSA9IGMgKiBlO1xuXHRcdFx0dGVbIDQgXSA9IC0gZjtcblx0XHRcdHRlWyA4IF0gPSBkICogZTtcblxuXHRcdFx0dGVbIDEgXSA9IGFjICogZiArIGJkO1xuXHRcdFx0dGVbIDUgXSA9IGEgKiBlO1xuXHRcdFx0dGVbIDkgXSA9IGFkICogZiAtIGJjO1xuXG5cdFx0XHR0ZVsgMiBdID0gYmMgKiBmIC0gYWQ7XG5cdFx0XHR0ZVsgNiBdID0gYiAqIGU7XG5cdFx0XHR0ZVsgMTAgXSA9IGJkICogZiArIGFjO1xuXG5cdFx0fVxuXG5cdFx0Ly8gYm90dG9tIHJvd1xuXHRcdHRlWyAzIF0gPSAwO1xuXHRcdHRlWyA3IF0gPSAwO1xuXHRcdHRlWyAxMSBdID0gMDtcblxuXHRcdC8vIGxhc3QgY29sdW1uXG5cdFx0dGVbIDEyIF0gPSAwO1xuXHRcdHRlWyAxMyBdID0gMDtcblx0XHR0ZVsgMTQgXSA9IDA7XG5cdFx0dGVbIDE1IF0gPSAxO1xuXG5cdFx0cmV0dXJuIHRoaXM7XG5cblx0fSxcblxuXHRtYWtlUm90YXRpb25Gcm9tUXVhdGVybmlvbjogZnVuY3Rpb24gKCkge1xuXG5cdFx0dmFyIHplcm8gPSBuZXcgVmVjdG9yMyggMCwgMCwgMCApO1xuXHRcdHZhciBvbmUgPSBuZXcgVmVjdG9yMyggMSwgMSwgMSApO1xuXG5cdFx0cmV0dXJuIGZ1bmN0aW9uIG1ha2VSb3RhdGlvbkZyb21RdWF0ZXJuaW9uKCBxICkge1xuXG5cdFx0XHRyZXR1cm4gdGhpcy5jb21wb3NlKCB6ZXJvLCBxLCBvbmUgKTtcblxuXHRcdH07XG5cblx0fSgpLFxuXG5cdGxvb2tBdDogZnVuY3Rpb24gKCkge1xuXG5cdFx0dmFyIHggPSBuZXcgVmVjdG9yMygpO1xuXHRcdHZhciB5ID0gbmV3IFZlY3RvcjMoKTtcblx0XHR2YXIgeiA9IG5ldyBWZWN0b3IzKCk7XG5cblx0XHRyZXR1cm4gZnVuY3Rpb24gbG9va0F0KCBleWUsIHRhcmdldCwgdXAgKSB7XG5cblx0XHRcdHZhciB0ZSA9IHRoaXMuZWxlbWVudHM7XG5cblx0XHRcdHouc3ViVmVjdG9ycyggZXllLCB0YXJnZXQgKTtcblxuXHRcdFx0aWYgKCB6Lmxlbmd0aFNxKCkgPT09IDAgKSB7XG5cblx0XHRcdFx0Ly8gZXllIGFuZCB0YXJnZXQgYXJlIGluIHRoZSBzYW1lIHBvc2l0aW9uXG5cblx0XHRcdFx0ei56ID0gMTtcblxuXHRcdFx0fVxuXG5cdFx0XHR6Lm5vcm1hbGl6ZSgpO1xuXHRcdFx0eC5jcm9zc1ZlY3RvcnMoIHVwLCB6ICk7XG5cblx0XHRcdGlmICggeC5sZW5ndGhTcSgpID09PSAwICkge1xuXG5cdFx0XHRcdC8vIHVwIGFuZCB6IGFyZSBwYXJhbGxlbFxuXG5cdFx0XHRcdGlmICggTWF0aC5hYnMoIHVwLnogKSA9PT0gMSApIHtcblxuXHRcdFx0XHRcdHoueCArPSAwLjAwMDE7XG5cblx0XHRcdFx0fSBlbHNlIHtcblxuXHRcdFx0XHRcdHoueiArPSAwLjAwMDE7XG5cblx0XHRcdFx0fVxuXG5cdFx0XHRcdHoubm9ybWFsaXplKCk7XG5cdFx0XHRcdHguY3Jvc3NWZWN0b3JzKCB1cCwgeiApO1xuXG5cdFx0XHR9XG5cblx0XHRcdHgubm9ybWFsaXplKCk7XG5cdFx0XHR5LmNyb3NzVmVjdG9ycyggeiwgeCApO1xuXG5cdFx0XHR0ZVsgMCBdID0geC54OyB0ZVsgNCBdID0geS54OyB0ZVsgOCBdID0gei54O1xuXHRcdFx0dGVbIDEgXSA9IHgueTsgdGVbIDUgXSA9IHkueTsgdGVbIDkgXSA9IHoueTtcblx0XHRcdHRlWyAyIF0gPSB4Lno7IHRlWyA2IF0gPSB5Lno7IHRlWyAxMCBdID0gei56O1xuXG5cdFx0XHRyZXR1cm4gdGhpcztcblxuXHRcdH07XG5cblx0fSgpLFxuXG5cdG11bHRpcGx5OiBmdW5jdGlvbiAoIG0sIG4gKSB7XG5cblx0XHRpZiAoIG4gIT09IHVuZGVmaW5lZCApIHtcblxuXHRcdFx0Y29uc29sZS53YXJuKCAnVEhSRUUuTWF0cml4NDogLm11bHRpcGx5KCkgbm93IG9ubHkgYWNjZXB0cyBvbmUgYXJndW1lbnQuIFVzZSAubXVsdGlwbHlNYXRyaWNlcyggYSwgYiApIGluc3RlYWQuJyApO1xuXHRcdFx0cmV0dXJuIHRoaXMubXVsdGlwbHlNYXRyaWNlcyggbSwgbiApO1xuXG5cdFx0fVxuXG5cdFx0cmV0dXJuIHRoaXMubXVsdGlwbHlNYXRyaWNlcyggdGhpcywgbSApO1xuXG5cdH0sXG5cblx0cHJlbXVsdGlwbHk6IGZ1bmN0aW9uICggbSApIHtcblxuXHRcdHJldHVybiB0aGlzLm11bHRpcGx5TWF0cmljZXMoIG0sIHRoaXMgKTtcblxuXHR9LFxuXG5cdG11bHRpcGx5TWF0cmljZXM6IGZ1bmN0aW9uICggYSwgYiApIHtcblxuXHRcdHZhciBhZSA9IGEuZWxlbWVudHM7XG5cdFx0dmFyIGJlID0gYi5lbGVtZW50cztcblx0XHR2YXIgdGUgPSB0aGlzLmVsZW1lbnRzO1xuXG5cdFx0dmFyIGExMSA9IGFlWyAwIF0sIGExMiA9IGFlWyA0IF0sIGExMyA9IGFlWyA4IF0sIGExNCA9IGFlWyAxMiBdO1xuXHRcdHZhciBhMjEgPSBhZVsgMSBdLCBhMjIgPSBhZVsgNSBdLCBhMjMgPSBhZVsgOSBdLCBhMjQgPSBhZVsgMTMgXTtcblx0XHR2YXIgYTMxID0gYWVbIDIgXSwgYTMyID0gYWVbIDYgXSwgYTMzID0gYWVbIDEwIF0sIGEzNCA9IGFlWyAxNCBdO1xuXHRcdHZhciBhNDEgPSBhZVsgMyBdLCBhNDIgPSBhZVsgNyBdLCBhNDMgPSBhZVsgMTEgXSwgYTQ0ID0gYWVbIDE1IF07XG5cblx0XHR2YXIgYjExID0gYmVbIDAgXSwgYjEyID0gYmVbIDQgXSwgYjEzID0gYmVbIDggXSwgYjE0ID0gYmVbIDEyIF07XG5cdFx0dmFyIGIyMSA9IGJlWyAxIF0sIGIyMiA9IGJlWyA1IF0sIGIyMyA9IGJlWyA5IF0sIGIyNCA9IGJlWyAxMyBdO1xuXHRcdHZhciBiMzEgPSBiZVsgMiBdLCBiMzIgPSBiZVsgNiBdLCBiMzMgPSBiZVsgMTAgXSwgYjM0ID0gYmVbIDE0IF07XG5cdFx0dmFyIGI0MSA9IGJlWyAzIF0sIGI0MiA9IGJlWyA3IF0sIGI0MyA9IGJlWyAxMSBdLCBiNDQgPSBiZVsgMTUgXTtcblxuXHRcdHRlWyAwIF0gPSBhMTEgKiBiMTEgKyBhMTIgKiBiMjEgKyBhMTMgKiBiMzEgKyBhMTQgKiBiNDE7XG5cdFx0dGVbIDQgXSA9IGExMSAqIGIxMiArIGExMiAqIGIyMiArIGExMyAqIGIzMiArIGExNCAqIGI0Mjtcblx0XHR0ZVsgOCBdID0gYTExICogYjEzICsgYTEyICogYjIzICsgYTEzICogYjMzICsgYTE0ICogYjQzO1xuXHRcdHRlWyAxMiBdID0gYTExICogYjE0ICsgYTEyICogYjI0ICsgYTEzICogYjM0ICsgYTE0ICogYjQ0O1xuXG5cdFx0dGVbIDEgXSA9IGEyMSAqIGIxMSArIGEyMiAqIGIyMSArIGEyMyAqIGIzMSArIGEyNCAqIGI0MTtcblx0XHR0ZVsgNSBdID0gYTIxICogYjEyICsgYTIyICogYjIyICsgYTIzICogYjMyICsgYTI0ICogYjQyO1xuXHRcdHRlWyA5IF0gPSBhMjEgKiBiMTMgKyBhMjIgKiBiMjMgKyBhMjMgKiBiMzMgKyBhMjQgKiBiNDM7XG5cdFx0dGVbIDEzIF0gPSBhMjEgKiBiMTQgKyBhMjIgKiBiMjQgKyBhMjMgKiBiMzQgKyBhMjQgKiBiNDQ7XG5cblx0XHR0ZVsgMiBdID0gYTMxICogYjExICsgYTMyICogYjIxICsgYTMzICogYjMxICsgYTM0ICogYjQxO1xuXHRcdHRlWyA2IF0gPSBhMzEgKiBiMTIgKyBhMzIgKiBiMjIgKyBhMzMgKiBiMzIgKyBhMzQgKiBiNDI7XG5cdFx0dGVbIDEwIF0gPSBhMzEgKiBiMTMgKyBhMzIgKiBiMjMgKyBhMzMgKiBiMzMgKyBhMzQgKiBiNDM7XG5cdFx0dGVbIDE0IF0gPSBhMzEgKiBiMTQgKyBhMzIgKiBiMjQgKyBhMzMgKiBiMzQgKyBhMzQgKiBiNDQ7XG5cblx0XHR0ZVsgMyBdID0gYTQxICogYjExICsgYTQyICogYjIxICsgYTQzICogYjMxICsgYTQ0ICogYjQxO1xuXHRcdHRlWyA3IF0gPSBhNDEgKiBiMTIgKyBhNDIgKiBiMjIgKyBhNDMgKiBiMzIgKyBhNDQgKiBiNDI7XG5cdFx0dGVbIDExIF0gPSBhNDEgKiBiMTMgKyBhNDIgKiBiMjMgKyBhNDMgKiBiMzMgKyBhNDQgKiBiNDM7XG5cdFx0dGVbIDE1IF0gPSBhNDEgKiBiMTQgKyBhNDIgKiBiMjQgKyBhNDMgKiBiMzQgKyBhNDQgKiBiNDQ7XG5cblx0XHRyZXR1cm4gdGhpcztcblxuXHR9LFxuXG5cdG11bHRpcGx5U2NhbGFyOiBmdW5jdGlvbiAoIHMgKSB7XG5cblx0XHR2YXIgdGUgPSB0aGlzLmVsZW1lbnRzO1xuXG5cdFx0dGVbIDAgXSAqPSBzOyB0ZVsgNCBdICo9IHM7IHRlWyA4IF0gKj0gczsgdGVbIDEyIF0gKj0gcztcblx0XHR0ZVsgMSBdICo9IHM7IHRlWyA1IF0gKj0gczsgdGVbIDkgXSAqPSBzOyB0ZVsgMTMgXSAqPSBzO1xuXHRcdHRlWyAyIF0gKj0gczsgdGVbIDYgXSAqPSBzOyB0ZVsgMTAgXSAqPSBzOyB0ZVsgMTQgXSAqPSBzO1xuXHRcdHRlWyAzIF0gKj0gczsgdGVbIDcgXSAqPSBzOyB0ZVsgMTEgXSAqPSBzOyB0ZVsgMTUgXSAqPSBzO1xuXG5cdFx0cmV0dXJuIHRoaXM7XG5cblx0fSxcblxuXHRhcHBseVRvQnVmZmVyQXR0cmlidXRlOiBmdW5jdGlvbiAoKSB7XG5cblx0XHR2YXIgdjEgPSBuZXcgVmVjdG9yMygpO1xuXG5cdFx0cmV0dXJuIGZ1bmN0aW9uIGFwcGx5VG9CdWZmZXJBdHRyaWJ1dGUoIGF0dHJpYnV0ZSApIHtcblxuXHRcdFx0Zm9yICggdmFyIGkgPSAwLCBsID0gYXR0cmlidXRlLmNvdW50OyBpIDwgbDsgaSArKyApIHtcblxuXHRcdFx0XHR2MS54ID0gYXR0cmlidXRlLmdldFgoIGkgKTtcblx0XHRcdFx0djEueSA9IGF0dHJpYnV0ZS5nZXRZKCBpICk7XG5cdFx0XHRcdHYxLnogPSBhdHRyaWJ1dGUuZ2V0WiggaSApO1xuXG5cdFx0XHRcdHYxLmFwcGx5TWF0cml4NCggdGhpcyApO1xuXG5cdFx0XHRcdGF0dHJpYnV0ZS5zZXRYWVooIGksIHYxLngsIHYxLnksIHYxLnogKTtcblxuXHRcdFx0fVxuXG5cdFx0XHRyZXR1cm4gYXR0cmlidXRlO1xuXG5cdFx0fTtcblxuXHR9KCksXG5cblx0ZGV0ZXJtaW5hbnQ6IGZ1bmN0aW9uICgpIHtcblxuXHRcdHZhciB0ZSA9IHRoaXMuZWxlbWVudHM7XG5cblx0XHR2YXIgbjExID0gdGVbIDAgXSwgbjEyID0gdGVbIDQgXSwgbjEzID0gdGVbIDggXSwgbjE0ID0gdGVbIDEyIF07XG5cdFx0dmFyIG4yMSA9IHRlWyAxIF0sIG4yMiA9IHRlWyA1IF0sIG4yMyA9IHRlWyA5IF0sIG4yNCA9IHRlWyAxMyBdO1xuXHRcdHZhciBuMzEgPSB0ZVsgMiBdLCBuMzIgPSB0ZVsgNiBdLCBuMzMgPSB0ZVsgMTAgXSwgbjM0ID0gdGVbIDE0IF07XG5cdFx0dmFyIG40MSA9IHRlWyAzIF0sIG40MiA9IHRlWyA3IF0sIG40MyA9IHRlWyAxMSBdLCBuNDQgPSB0ZVsgMTUgXTtcblxuXHRcdC8vVE9ETzogbWFrZSB0aGlzIG1vcmUgZWZmaWNpZW50XG5cdFx0Ly8oIGJhc2VkIG9uIGh0dHA6Ly93d3cuZXVjbGlkZWFuc3BhY2UuY29tL21hdGhzL2FsZ2VicmEvbWF0cml4L2Z1bmN0aW9ucy9pbnZlcnNlL2ZvdXJEL2luZGV4Lmh0bSApXG5cblx0XHRyZXR1cm4gKFxuXHRcdFx0bjQxICogKFxuXHRcdFx0XHQrIG4xNCAqIG4yMyAqIG4zMlxuXHRcdFx0XHQgLSBuMTMgKiBuMjQgKiBuMzJcblx0XHRcdFx0IC0gbjE0ICogbjIyICogbjMzXG5cdFx0XHRcdCArIG4xMiAqIG4yNCAqIG4zM1xuXHRcdFx0XHQgKyBuMTMgKiBuMjIgKiBuMzRcblx0XHRcdFx0IC0gbjEyICogbjIzICogbjM0XG5cdFx0XHQpICtcblx0XHRcdG40MiAqIChcblx0XHRcdFx0KyBuMTEgKiBuMjMgKiBuMzRcblx0XHRcdFx0IC0gbjExICogbjI0ICogbjMzXG5cdFx0XHRcdCArIG4xNCAqIG4yMSAqIG4zM1xuXHRcdFx0XHQgLSBuMTMgKiBuMjEgKiBuMzRcblx0XHRcdFx0ICsgbjEzICogbjI0ICogbjMxXG5cdFx0XHRcdCAtIG4xNCAqIG4yMyAqIG4zMVxuXHRcdFx0KSArXG5cdFx0XHRuNDMgKiAoXG5cdFx0XHRcdCsgbjExICogbjI0ICogbjMyXG5cdFx0XHRcdCAtIG4xMSAqIG4yMiAqIG4zNFxuXHRcdFx0XHQgLSBuMTQgKiBuMjEgKiBuMzJcblx0XHRcdFx0ICsgbjEyICogbjIxICogbjM0XG5cdFx0XHRcdCArIG4xNCAqIG4yMiAqIG4zMVxuXHRcdFx0XHQgLSBuMTIgKiBuMjQgKiBuMzFcblx0XHRcdCkgK1xuXHRcdFx0bjQ0ICogKFxuXHRcdFx0XHQtIG4xMyAqIG4yMiAqIG4zMVxuXHRcdFx0XHQgLSBuMTEgKiBuMjMgKiBuMzJcblx0XHRcdFx0ICsgbjExICogbjIyICogbjMzXG5cdFx0XHRcdCArIG4xMyAqIG4yMSAqIG4zMlxuXHRcdFx0XHQgLSBuMTIgKiBuMjEgKiBuMzNcblx0XHRcdFx0ICsgbjEyICogbjIzICogbjMxXG5cdFx0XHQpXG5cblx0XHQpO1xuXG5cdH0sXG5cblx0dHJhbnNwb3NlOiBmdW5jdGlvbiAoKSB7XG5cblx0XHR2YXIgdGUgPSB0aGlzLmVsZW1lbnRzO1xuXHRcdHZhciB0bXA7XG5cblx0XHR0bXAgPSB0ZVsgMSBdOyB0ZVsgMSBdID0gdGVbIDQgXTsgdGVbIDQgXSA9IHRtcDtcblx0XHR0bXAgPSB0ZVsgMiBdOyB0ZVsgMiBdID0gdGVbIDggXTsgdGVbIDggXSA9IHRtcDtcblx0XHR0bXAgPSB0ZVsgNiBdOyB0ZVsgNiBdID0gdGVbIDkgXTsgdGVbIDkgXSA9IHRtcDtcblxuXHRcdHRtcCA9IHRlWyAzIF07IHRlWyAzIF0gPSB0ZVsgMTIgXTsgdGVbIDEyIF0gPSB0bXA7XG5cdFx0dG1wID0gdGVbIDcgXTsgdGVbIDcgXSA9IHRlWyAxMyBdOyB0ZVsgMTMgXSA9IHRtcDtcblx0XHR0bXAgPSB0ZVsgMTEgXTsgdGVbIDExIF0gPSB0ZVsgMTQgXTsgdGVbIDE0IF0gPSB0bXA7XG5cblx0XHRyZXR1cm4gdGhpcztcblxuXHR9LFxuXG5cdHNldFBvc2l0aW9uOiBmdW5jdGlvbiAoIHgsIHksIHogKSB7XG5cblx0XHR2YXIgdGUgPSB0aGlzLmVsZW1lbnRzO1xuXG5cdFx0aWYgKCB4LmlzVmVjdG9yMyApIHtcblxuXHRcdFx0dGVbIDEyIF0gPSB4Lng7XG5cdFx0XHR0ZVsgMTMgXSA9IHgueTtcblx0XHRcdHRlWyAxNCBdID0geC56O1xuXG5cdFx0fSBlbHNlIHtcblxuXHRcdFx0dGVbIDEyIF0gPSB4O1xuXHRcdFx0dGVbIDEzIF0gPSB5O1xuXHRcdFx0dGVbIDE0IF0gPSB6O1xuXG5cdFx0fVxuXG5cdFx0cmV0dXJuIHRoaXM7XG5cblx0fSxcblxuXHRnZXRJbnZlcnNlOiBmdW5jdGlvbiAoIG0sIHRocm93T25EZWdlbmVyYXRlICkge1xuXG5cdFx0Ly8gYmFzZWQgb24gaHR0cDovL3d3dy5ldWNsaWRlYW5zcGFjZS5jb20vbWF0aHMvYWxnZWJyYS9tYXRyaXgvZnVuY3Rpb25zL2ludmVyc2UvZm91ckQvaW5kZXguaHRtXG5cdFx0dmFyIHRlID0gdGhpcy5lbGVtZW50cyxcblx0XHRcdG1lID0gbS5lbGVtZW50cyxcblxuXHRcdFx0bjExID0gbWVbIDAgXSwgbjIxID0gbWVbIDEgXSwgbjMxID0gbWVbIDIgXSwgbjQxID0gbWVbIDMgXSxcblx0XHRcdG4xMiA9IG1lWyA0IF0sIG4yMiA9IG1lWyA1IF0sIG4zMiA9IG1lWyA2IF0sIG40MiA9IG1lWyA3IF0sXG5cdFx0XHRuMTMgPSBtZVsgOCBdLCBuMjMgPSBtZVsgOSBdLCBuMzMgPSBtZVsgMTAgXSwgbjQzID0gbWVbIDExIF0sXG5cdFx0XHRuMTQgPSBtZVsgMTIgXSwgbjI0ID0gbWVbIDEzIF0sIG4zNCA9IG1lWyAxNCBdLCBuNDQgPSBtZVsgMTUgXSxcblxuXHRcdFx0dDExID0gbjIzICogbjM0ICogbjQyIC0gbjI0ICogbjMzICogbjQyICsgbjI0ICogbjMyICogbjQzIC0gbjIyICogbjM0ICogbjQzIC0gbjIzICogbjMyICogbjQ0ICsgbjIyICogbjMzICogbjQ0LFxuXHRcdFx0dDEyID0gbjE0ICogbjMzICogbjQyIC0gbjEzICogbjM0ICogbjQyIC0gbjE0ICogbjMyICogbjQzICsgbjEyICogbjM0ICogbjQzICsgbjEzICogbjMyICogbjQ0IC0gbjEyICogbjMzICogbjQ0LFxuXHRcdFx0dDEzID0gbjEzICogbjI0ICogbjQyIC0gbjE0ICogbjIzICogbjQyICsgbjE0ICogbjIyICogbjQzIC0gbjEyICogbjI0ICogbjQzIC0gbjEzICogbjIyICogbjQ0ICsgbjEyICogbjIzICogbjQ0LFxuXHRcdFx0dDE0ID0gbjE0ICogbjIzICogbjMyIC0gbjEzICogbjI0ICogbjMyIC0gbjE0ICogbjIyICogbjMzICsgbjEyICogbjI0ICogbjMzICsgbjEzICogbjIyICogbjM0IC0gbjEyICogbjIzICogbjM0O1xuXG5cdFx0dmFyIGRldCA9IG4xMSAqIHQxMSArIG4yMSAqIHQxMiArIG4zMSAqIHQxMyArIG40MSAqIHQxNDtcblxuXHRcdGlmICggZGV0ID09PSAwICkge1xuXG5cdFx0XHR2YXIgbXNnID0gXCJUSFJFRS5NYXRyaXg0OiAuZ2V0SW52ZXJzZSgpIGNhbid0IGludmVydCBtYXRyaXgsIGRldGVybWluYW50IGlzIDBcIjtcblxuXHRcdFx0aWYgKCB0aHJvd09uRGVnZW5lcmF0ZSA9PT0gdHJ1ZSApIHtcblxuXHRcdFx0XHR0aHJvdyBuZXcgRXJyb3IoIG1zZyApO1xuXG5cdFx0XHR9IGVsc2Uge1xuXG5cdFx0XHRcdGNvbnNvbGUud2FybiggbXNnICk7XG5cblx0XHRcdH1cblxuXHRcdFx0cmV0dXJuIHRoaXMuaWRlbnRpdHkoKTtcblxuXHRcdH1cblxuXHRcdHZhciBkZXRJbnYgPSAxIC8gZGV0O1xuXG5cdFx0dGVbIDAgXSA9IHQxMSAqIGRldEludjtcblx0XHR0ZVsgMSBdID0gKCBuMjQgKiBuMzMgKiBuNDEgLSBuMjMgKiBuMzQgKiBuNDEgLSBuMjQgKiBuMzEgKiBuNDMgKyBuMjEgKiBuMzQgKiBuNDMgKyBuMjMgKiBuMzEgKiBuNDQgLSBuMjEgKiBuMzMgKiBuNDQgKSAqIGRldEludjtcblx0XHR0ZVsgMiBdID0gKCBuMjIgKiBuMzQgKiBuNDEgLSBuMjQgKiBuMzIgKiBuNDEgKyBuMjQgKiBuMzEgKiBuNDIgLSBuMjEgKiBuMzQgKiBuNDIgLSBuMjIgKiBuMzEgKiBuNDQgKyBuMjEgKiBuMzIgKiBuNDQgKSAqIGRldEludjtcblx0XHR0ZVsgMyBdID0gKCBuMjMgKiBuMzIgKiBuNDEgLSBuMjIgKiBuMzMgKiBuNDEgLSBuMjMgKiBuMzEgKiBuNDIgKyBuMjEgKiBuMzMgKiBuNDIgKyBuMjIgKiBuMzEgKiBuNDMgLSBuMjEgKiBuMzIgKiBuNDMgKSAqIGRldEludjtcblxuXHRcdHRlWyA0IF0gPSB0MTIgKiBkZXRJbnY7XG5cdFx0dGVbIDUgXSA9ICggbjEzICogbjM0ICogbjQxIC0gbjE0ICogbjMzICogbjQxICsgbjE0ICogbjMxICogbjQzIC0gbjExICogbjM0ICogbjQzIC0gbjEzICogbjMxICogbjQ0ICsgbjExICogbjMzICogbjQ0ICkgKiBkZXRJbnY7XG5cdFx0dGVbIDYgXSA9ICggbjE0ICogbjMyICogbjQxIC0gbjEyICogbjM0ICogbjQxIC0gbjE0ICogbjMxICogbjQyICsgbjExICogbjM0ICogbjQyICsgbjEyICogbjMxICogbjQ0IC0gbjExICogbjMyICogbjQ0ICkgKiBkZXRJbnY7XG5cdFx0dGVbIDcgXSA9ICggbjEyICogbjMzICogbjQxIC0gbjEzICogbjMyICogbjQxICsgbjEzICogbjMxICogbjQyIC0gbjExICogbjMzICogbjQyIC0gbjEyICogbjMxICogbjQzICsgbjExICogbjMyICogbjQzICkgKiBkZXRJbnY7XG5cblx0XHR0ZVsgOCBdID0gdDEzICogZGV0SW52O1xuXHRcdHRlWyA5IF0gPSAoIG4xNCAqIG4yMyAqIG40MSAtIG4xMyAqIG4yNCAqIG40MSAtIG4xNCAqIG4yMSAqIG40MyArIG4xMSAqIG4yNCAqIG40MyArIG4xMyAqIG4yMSAqIG40NCAtIG4xMSAqIG4yMyAqIG40NCApICogZGV0SW52O1xuXHRcdHRlWyAxMCBdID0gKCBuMTIgKiBuMjQgKiBuNDEgLSBuMTQgKiBuMjIgKiBuNDEgKyBuMTQgKiBuMjEgKiBuNDIgLSBuMTEgKiBuMjQgKiBuNDIgLSBuMTIgKiBuMjEgKiBuNDQgKyBuMTEgKiBuMjIgKiBuNDQgKSAqIGRldEludjtcblx0XHR0ZVsgMTEgXSA9ICggbjEzICogbjIyICogbjQxIC0gbjEyICogbjIzICogbjQxIC0gbjEzICogbjIxICogbjQyICsgbjExICogbjIzICogbjQyICsgbjEyICogbjIxICogbjQzIC0gbjExICogbjIyICogbjQzICkgKiBkZXRJbnY7XG5cblx0XHR0ZVsgMTIgXSA9IHQxNCAqIGRldEludjtcblx0XHR0ZVsgMTMgXSA9ICggbjEzICogbjI0ICogbjMxIC0gbjE0ICogbjIzICogbjMxICsgbjE0ICogbjIxICogbjMzIC0gbjExICogbjI0ICogbjMzIC0gbjEzICogbjIxICogbjM0ICsgbjExICogbjIzICogbjM0ICkgKiBkZXRJbnY7XG5cdFx0dGVbIDE0IF0gPSAoIG4xNCAqIG4yMiAqIG4zMSAtIG4xMiAqIG4yNCAqIG4zMSAtIG4xNCAqIG4yMSAqIG4zMiArIG4xMSAqIG4yNCAqIG4zMiArIG4xMiAqIG4yMSAqIG4zNCAtIG4xMSAqIG4yMiAqIG4zNCApICogZGV0SW52O1xuXHRcdHRlWyAxNSBdID0gKCBuMTIgKiBuMjMgKiBuMzEgLSBuMTMgKiBuMjIgKiBuMzEgKyBuMTMgKiBuMjEgKiBuMzIgLSBuMTEgKiBuMjMgKiBuMzIgLSBuMTIgKiBuMjEgKiBuMzMgKyBuMTEgKiBuMjIgKiBuMzMgKSAqIGRldEludjtcblxuXHRcdHJldHVybiB0aGlzO1xuXG5cdH0sXG5cblx0c2NhbGU6IGZ1bmN0aW9uICggdiApIHtcblxuXHRcdHZhciB0ZSA9IHRoaXMuZWxlbWVudHM7XG5cdFx0dmFyIHggPSB2LngsIHkgPSB2LnksIHogPSB2Lno7XG5cblx0XHR0ZVsgMCBdICo9IHg7IHRlWyA0IF0gKj0geTsgdGVbIDggXSAqPSB6O1xuXHRcdHRlWyAxIF0gKj0geDsgdGVbIDUgXSAqPSB5OyB0ZVsgOSBdICo9IHo7XG5cdFx0dGVbIDIgXSAqPSB4OyB0ZVsgNiBdICo9IHk7IHRlWyAxMCBdICo9IHo7XG5cdFx0dGVbIDMgXSAqPSB4OyB0ZVsgNyBdICo9IHk7IHRlWyAxMSBdICo9IHo7XG5cblx0XHRyZXR1cm4gdGhpcztcblxuXHR9LFxuXG5cdGdldE1heFNjYWxlT25BeGlzOiBmdW5jdGlvbiAoKSB7XG5cblx0XHR2YXIgdGUgPSB0aGlzLmVsZW1lbnRzO1xuXG5cdFx0dmFyIHNjYWxlWFNxID0gdGVbIDAgXSAqIHRlWyAwIF0gKyB0ZVsgMSBdICogdGVbIDEgXSArIHRlWyAyIF0gKiB0ZVsgMiBdO1xuXHRcdHZhciBzY2FsZVlTcSA9IHRlWyA0IF0gKiB0ZVsgNCBdICsgdGVbIDUgXSAqIHRlWyA1IF0gKyB0ZVsgNiBdICogdGVbIDYgXTtcblx0XHR2YXIgc2NhbGVaU3EgPSB0ZVsgOCBdICogdGVbIDggXSArIHRlWyA5IF0gKiB0ZVsgOSBdICsgdGVbIDEwIF0gKiB0ZVsgMTAgXTtcblxuXHRcdHJldHVybiBNYXRoLnNxcnQoIE1hdGgubWF4KCBzY2FsZVhTcSwgc2NhbGVZU3EsIHNjYWxlWlNxICkgKTtcblxuXHR9LFxuXG5cdG1ha2VUcmFuc2xhdGlvbjogZnVuY3Rpb24gKCB4LCB5LCB6ICkge1xuXG5cdFx0dGhpcy5zZXQoXG5cblx0XHRcdDEsIDAsIDAsIHgsXG5cdFx0XHQwLCAxLCAwLCB5LFxuXHRcdFx0MCwgMCwgMSwgeixcblx0XHRcdDAsIDAsIDAsIDFcblxuXHRcdCk7XG5cblx0XHRyZXR1cm4gdGhpcztcblxuXHR9LFxuXG5cdG1ha2VSb3RhdGlvblg6IGZ1bmN0aW9uICggdGhldGEgKSB7XG5cblx0XHR2YXIgYyA9IE1hdGguY29zKCB0aGV0YSApLCBzID0gTWF0aC5zaW4oIHRoZXRhICk7XG5cblx0XHR0aGlzLnNldChcblxuXHRcdFx0MSwgMCwgMCwgMCxcblx0XHRcdDAsIGMsIC0gcywgMCxcblx0XHRcdDAsIHMsIGMsIDAsXG5cdFx0XHQwLCAwLCAwLCAxXG5cblx0XHQpO1xuXG5cdFx0cmV0dXJuIHRoaXM7XG5cblx0fSxcblxuXHRtYWtlUm90YXRpb25ZOiBmdW5jdGlvbiAoIHRoZXRhICkge1xuXG5cdFx0dmFyIGMgPSBNYXRoLmNvcyggdGhldGEgKSwgcyA9IE1hdGguc2luKCB0aGV0YSApO1xuXG5cdFx0dGhpcy5zZXQoXG5cblx0XHRcdCBjLCAwLCBzLCAwLFxuXHRcdFx0IDAsIDEsIDAsIDAsXG5cdFx0XHQtIHMsIDAsIGMsIDAsXG5cdFx0XHQgMCwgMCwgMCwgMVxuXG5cdFx0KTtcblxuXHRcdHJldHVybiB0aGlzO1xuXG5cdH0sXG5cblx0bWFrZVJvdGF0aW9uWjogZnVuY3Rpb24gKCB0aGV0YSApIHtcblxuXHRcdHZhciBjID0gTWF0aC5jb3MoIHRoZXRhICksIHMgPSBNYXRoLnNpbiggdGhldGEgKTtcblxuXHRcdHRoaXMuc2V0KFxuXG5cdFx0XHRjLCAtIHMsIDAsIDAsXG5cdFx0XHRzLCBjLCAwLCAwLFxuXHRcdFx0MCwgMCwgMSwgMCxcblx0XHRcdDAsIDAsIDAsIDFcblxuXHRcdCk7XG5cblx0XHRyZXR1cm4gdGhpcztcblxuXHR9LFxuXG5cdG1ha2VSb3RhdGlvbkF4aXM6IGZ1bmN0aW9uICggYXhpcywgYW5nbGUgKSB7XG5cblx0XHQvLyBCYXNlZCBvbiBodHRwOi8vd3d3LmdhbWVkZXYubmV0L3JlZmVyZW5jZS9hcnRpY2xlcy9hcnRpY2xlMTE5OS5hc3BcblxuXHRcdHZhciBjID0gTWF0aC5jb3MoIGFuZ2xlICk7XG5cdFx0dmFyIHMgPSBNYXRoLnNpbiggYW5nbGUgKTtcblx0XHR2YXIgdCA9IDEgLSBjO1xuXHRcdHZhciB4ID0gYXhpcy54LCB5ID0gYXhpcy55LCB6ID0gYXhpcy56O1xuXHRcdHZhciB0eCA9IHQgKiB4LCB0eSA9IHQgKiB5O1xuXG5cdFx0dGhpcy5zZXQoXG5cblx0XHRcdHR4ICogeCArIGMsIHR4ICogeSAtIHMgKiB6LCB0eCAqIHogKyBzICogeSwgMCxcblx0XHRcdHR4ICogeSArIHMgKiB6LCB0eSAqIHkgKyBjLCB0eSAqIHogLSBzICogeCwgMCxcblx0XHRcdHR4ICogeiAtIHMgKiB5LCB0eSAqIHogKyBzICogeCwgdCAqIHogKiB6ICsgYywgMCxcblx0XHRcdDAsIDAsIDAsIDFcblxuXHRcdCk7XG5cblx0XHQgcmV0dXJuIHRoaXM7XG5cblx0fSxcblxuXHRtYWtlU2NhbGU6IGZ1bmN0aW9uICggeCwgeSwgeiApIHtcblxuXHRcdHRoaXMuc2V0KFxuXG5cdFx0XHR4LCAwLCAwLCAwLFxuXHRcdFx0MCwgeSwgMCwgMCxcblx0XHRcdDAsIDAsIHosIDAsXG5cdFx0XHQwLCAwLCAwLCAxXG5cblx0XHQpO1xuXG5cdFx0cmV0dXJuIHRoaXM7XG5cblx0fSxcblxuXHRtYWtlU2hlYXI6IGZ1bmN0aW9uICggeCwgeSwgeiApIHtcblxuXHRcdHRoaXMuc2V0KFxuXG5cdFx0XHQxLCB5LCB6LCAwLFxuXHRcdFx0eCwgMSwgeiwgMCxcblx0XHRcdHgsIHksIDEsIDAsXG5cdFx0XHQwLCAwLCAwLCAxXG5cblx0XHQpO1xuXG5cdFx0cmV0dXJuIHRoaXM7XG5cblx0fSxcblxuXHRjb21wb3NlOiBmdW5jdGlvbiAoIHBvc2l0aW9uLCBxdWF0ZXJuaW9uLCBzY2FsZSApIHtcblxuXHRcdHZhciB0ZSA9IHRoaXMuZWxlbWVudHM7XG5cblx0XHR2YXIgeCA9IHF1YXRlcm5pb24uX3gsIHkgPSBxdWF0ZXJuaW9uLl95LCB6ID0gcXVhdGVybmlvbi5feiwgdyA9IHF1YXRlcm5pb24uX3c7XG5cdFx0dmFyIHgyID0geCArIHgsXHR5MiA9IHkgKyB5LCB6MiA9IHogKyB6O1xuXHRcdHZhciB4eCA9IHggKiB4MiwgeHkgPSB4ICogeTIsIHh6ID0geCAqIHoyO1xuXHRcdHZhciB5eSA9IHkgKiB5MiwgeXogPSB5ICogejIsIHp6ID0geiAqIHoyO1xuXHRcdHZhciB3eCA9IHcgKiB4Miwgd3kgPSB3ICogeTIsIHd6ID0gdyAqIHoyO1xuXG5cdFx0dmFyIHN4ID0gc2NhbGUueCwgc3kgPSBzY2FsZS55LCBzeiA9IHNjYWxlLno7XG5cblx0XHR0ZVsgMCBdID0gKCAxIC0gKCB5eSArIHp6ICkgKSAqIHN4O1xuXHRcdHRlWyAxIF0gPSAoIHh5ICsgd3ogKSAqIHN4O1xuXHRcdHRlWyAyIF0gPSAoIHh6IC0gd3kgKSAqIHN4O1xuXHRcdHRlWyAzIF0gPSAwO1xuXG5cdFx0dGVbIDQgXSA9ICggeHkgLSB3eiApICogc3k7XG5cdFx0dGVbIDUgXSA9ICggMSAtICggeHggKyB6eiApICkgKiBzeTtcblx0XHR0ZVsgNiBdID0gKCB5eiArIHd4ICkgKiBzeTtcblx0XHR0ZVsgNyBdID0gMDtcblxuXHRcdHRlWyA4IF0gPSAoIHh6ICsgd3kgKSAqIHN6O1xuXHRcdHRlWyA5IF0gPSAoIHl6IC0gd3ggKSAqIHN6O1xuXHRcdHRlWyAxMCBdID0gKCAxIC0gKCB4eCArIHl5ICkgKSAqIHN6O1xuXHRcdHRlWyAxMSBdID0gMDtcblxuXHRcdHRlWyAxMiBdID0gcG9zaXRpb24ueDtcblx0XHR0ZVsgMTMgXSA9IHBvc2l0aW9uLnk7XG5cdFx0dGVbIDE0IF0gPSBwb3NpdGlvbi56O1xuXHRcdHRlWyAxNSBdID0gMTtcblxuXHRcdHJldHVybiB0aGlzO1xuXG5cdH0sXG5cblx0ZGVjb21wb3NlOiBmdW5jdGlvbiAoKSB7XG5cblx0XHR2YXIgdmVjdG9yID0gbmV3IFZlY3RvcjMoKTtcblx0XHR2YXIgbWF0cml4ID0gbmV3IE1hdHJpeDQoKTtcblxuXHRcdHJldHVybiBmdW5jdGlvbiBkZWNvbXBvc2UoIHBvc2l0aW9uLCBxdWF0ZXJuaW9uLCBzY2FsZSApIHtcblxuXHRcdFx0dmFyIHRlID0gdGhpcy5lbGVtZW50cztcblxuXHRcdFx0dmFyIHN4ID0gdmVjdG9yLnNldCggdGVbIDAgXSwgdGVbIDEgXSwgdGVbIDIgXSApLmxlbmd0aCgpO1xuXHRcdFx0dmFyIHN5ID0gdmVjdG9yLnNldCggdGVbIDQgXSwgdGVbIDUgXSwgdGVbIDYgXSApLmxlbmd0aCgpO1xuXHRcdFx0dmFyIHN6ID0gdmVjdG9yLnNldCggdGVbIDggXSwgdGVbIDkgXSwgdGVbIDEwIF0gKS5sZW5ndGgoKTtcblxuXHRcdFx0Ly8gaWYgZGV0ZXJtaW5lIGlzIG5lZ2F0aXZlLCB3ZSBuZWVkIHRvIGludmVydCBvbmUgc2NhbGVcblx0XHRcdHZhciBkZXQgPSB0aGlzLmRldGVybWluYW50KCk7XG5cdFx0XHRpZiAoIGRldCA8IDAgKSBzeCA9IC0gc3g7XG5cblx0XHRcdHBvc2l0aW9uLnggPSB0ZVsgMTIgXTtcblx0XHRcdHBvc2l0aW9uLnkgPSB0ZVsgMTMgXTtcblx0XHRcdHBvc2l0aW9uLnogPSB0ZVsgMTQgXTtcblxuXHRcdFx0Ly8gc2NhbGUgdGhlIHJvdGF0aW9uIHBhcnRcblx0XHRcdG1hdHJpeC5jb3B5KCB0aGlzICk7XG5cblx0XHRcdHZhciBpbnZTWCA9IDEgLyBzeDtcblx0XHRcdHZhciBpbnZTWSA9IDEgLyBzeTtcblx0XHRcdHZhciBpbnZTWiA9IDEgLyBzejtcblxuXHRcdFx0bWF0cml4LmVsZW1lbnRzWyAwIF0gKj0gaW52U1g7XG5cdFx0XHRtYXRyaXguZWxlbWVudHNbIDEgXSAqPSBpbnZTWDtcblx0XHRcdG1hdHJpeC5lbGVtZW50c1sgMiBdICo9IGludlNYO1xuXG5cdFx0XHRtYXRyaXguZWxlbWVudHNbIDQgXSAqPSBpbnZTWTtcblx0XHRcdG1hdHJpeC5lbGVtZW50c1sgNSBdICo9IGludlNZO1xuXHRcdFx0bWF0cml4LmVsZW1lbnRzWyA2IF0gKj0gaW52U1k7XG5cblx0XHRcdG1hdHJpeC5lbGVtZW50c1sgOCBdICo9IGludlNaO1xuXHRcdFx0bWF0cml4LmVsZW1lbnRzWyA5IF0gKj0gaW52U1o7XG5cdFx0XHRtYXRyaXguZWxlbWVudHNbIDEwIF0gKj0gaW52U1o7XG5cblx0XHRcdHF1YXRlcm5pb24uc2V0RnJvbVJvdGF0aW9uTWF0cml4KCBtYXRyaXggKTtcblxuXHRcdFx0c2NhbGUueCA9IHN4O1xuXHRcdFx0c2NhbGUueSA9IHN5O1xuXHRcdFx0c2NhbGUueiA9IHN6O1xuXG5cdFx0XHRyZXR1cm4gdGhpcztcblxuXHRcdH07XG5cblx0fSgpLFxuXG5cdG1ha2VQZXJzcGVjdGl2ZTogZnVuY3Rpb24gKCBsZWZ0LCByaWdodCwgdG9wLCBib3R0b20sIG5lYXIsIGZhciApIHtcblxuXHRcdGlmICggZmFyID09PSB1bmRlZmluZWQgKSB7XG5cblx0XHRcdGNvbnNvbGUud2FybiggJ1RIUkVFLk1hdHJpeDQ6IC5tYWtlUGVyc3BlY3RpdmUoKSBoYXMgYmVlbiByZWRlZmluZWQgYW5kIGhhcyBhIG5ldyBzaWduYXR1cmUuIFBsZWFzZSBjaGVjayB0aGUgZG9jcy4nICk7XG5cblx0XHR9XG5cblx0XHR2YXIgdGUgPSB0aGlzLmVsZW1lbnRzO1xuXHRcdHZhciB4ID0gMiAqIG5lYXIgLyAoIHJpZ2h0IC0gbGVmdCApO1xuXHRcdHZhciB5ID0gMiAqIG5lYXIgLyAoIHRvcCAtIGJvdHRvbSApO1xuXG5cdFx0dmFyIGEgPSAoIHJpZ2h0ICsgbGVmdCApIC8gKCByaWdodCAtIGxlZnQgKTtcblx0XHR2YXIgYiA9ICggdG9wICsgYm90dG9tICkgLyAoIHRvcCAtIGJvdHRvbSApO1xuXHRcdHZhciBjID0gLSAoIGZhciArIG5lYXIgKSAvICggZmFyIC0gbmVhciApO1xuXHRcdHZhciBkID0gLSAyICogZmFyICogbmVhciAvICggZmFyIC0gbmVhciApO1xuXG5cdFx0dGVbIDAgXSA9IHg7XHR0ZVsgNCBdID0gMDtcdHRlWyA4IF0gPSBhO1x0dGVbIDEyIF0gPSAwO1xuXHRcdHRlWyAxIF0gPSAwO1x0dGVbIDUgXSA9IHk7XHR0ZVsgOSBdID0gYjtcdHRlWyAxMyBdID0gMDtcblx0XHR0ZVsgMiBdID0gMDtcdHRlWyA2IF0gPSAwO1x0dGVbIDEwIF0gPSBjO1x0dGVbIDE0IF0gPSBkO1xuXHRcdHRlWyAzIF0gPSAwO1x0dGVbIDcgXSA9IDA7XHR0ZVsgMTEgXSA9IC0gMTtcdHRlWyAxNSBdID0gMDtcblxuXHRcdHJldHVybiB0aGlzO1xuXG5cdH0sXG5cblx0bWFrZU9ydGhvZ3JhcGhpYzogZnVuY3Rpb24gKCBsZWZ0LCByaWdodCwgdG9wLCBib3R0b20sIG5lYXIsIGZhciApIHtcblxuXHRcdHZhciB0ZSA9IHRoaXMuZWxlbWVudHM7XG5cdFx0dmFyIHcgPSAxLjAgLyAoIHJpZ2h0IC0gbGVmdCApO1xuXHRcdHZhciBoID0gMS4wIC8gKCB0b3AgLSBib3R0b20gKTtcblx0XHR2YXIgcCA9IDEuMCAvICggZmFyIC0gbmVhciApO1xuXG5cdFx0dmFyIHggPSAoIHJpZ2h0ICsgbGVmdCApICogdztcblx0XHR2YXIgeSA9ICggdG9wICsgYm90dG9tICkgKiBoO1xuXHRcdHZhciB6ID0gKCBmYXIgKyBuZWFyICkgKiBwO1xuXG5cdFx0dGVbIDAgXSA9IDIgKiB3O1x0dGVbIDQgXSA9IDA7XHR0ZVsgOCBdID0gMDtcdHRlWyAxMiBdID0gLSB4O1xuXHRcdHRlWyAxIF0gPSAwO1x0dGVbIDUgXSA9IDIgKiBoO1x0dGVbIDkgXSA9IDA7XHR0ZVsgMTMgXSA9IC0geTtcblx0XHR0ZVsgMiBdID0gMDtcdHRlWyA2IF0gPSAwO1x0dGVbIDEwIF0gPSAtIDIgKiBwO1x0dGVbIDE0IF0gPSAtIHo7XG5cdFx0dGVbIDMgXSA9IDA7XHR0ZVsgNyBdID0gMDtcdHRlWyAxMSBdID0gMDtcdHRlWyAxNSBdID0gMTtcblxuXHRcdHJldHVybiB0aGlzO1xuXG5cdH0sXG5cblx0ZXF1YWxzOiBmdW5jdGlvbiAoIG1hdHJpeCApIHtcblxuXHRcdHZhciB0ZSA9IHRoaXMuZWxlbWVudHM7XG5cdFx0dmFyIG1lID0gbWF0cml4LmVsZW1lbnRzO1xuXG5cdFx0Zm9yICggdmFyIGkgPSAwOyBpIDwgMTY7IGkgKysgKSB7XG5cblx0XHRcdGlmICggdGVbIGkgXSAhPT0gbWVbIGkgXSApIHJldHVybiBmYWxzZTtcblxuXHRcdH1cblxuXHRcdHJldHVybiB0cnVlO1xuXG5cdH0sXG5cblx0ZnJvbUFycmF5OiBmdW5jdGlvbiAoIGFycmF5LCBvZmZzZXQgKSB7XG5cblx0XHRpZiAoIG9mZnNldCA9PT0gdW5kZWZpbmVkICkgb2Zmc2V0ID0gMDtcblxuXHRcdGZvciAoIHZhciBpID0gMDsgaSA8IDE2OyBpICsrICkge1xuXG5cdFx0XHR0aGlzLmVsZW1lbnRzWyBpIF0gPSBhcnJheVsgaSArIG9mZnNldCBdO1xuXG5cdFx0fVxuXG5cdFx0cmV0dXJuIHRoaXM7XG5cblx0fSxcblxuXHR0b0FycmF5OiBmdW5jdGlvbiAoIGFycmF5LCBvZmZzZXQgKSB7XG5cblx0XHRpZiAoIGFycmF5ID09PSB1bmRlZmluZWQgKSBhcnJheSA9IFtdO1xuXHRcdGlmICggb2Zmc2V0ID09PSB1bmRlZmluZWQgKSBvZmZzZXQgPSAwO1xuXG5cdFx0dmFyIHRlID0gdGhpcy5lbGVtZW50cztcblxuXHRcdGFycmF5WyBvZmZzZXQgXSA9IHRlWyAwIF07XG5cdFx0YXJyYXlbIG9mZnNldCArIDEgXSA9IHRlWyAxIF07XG5cdFx0YXJyYXlbIG9mZnNldCArIDIgXSA9IHRlWyAyIF07XG5cdFx0YXJyYXlbIG9mZnNldCArIDMgXSA9IHRlWyAzIF07XG5cblx0XHRhcnJheVsgb2Zmc2V0ICsgNCBdID0gdGVbIDQgXTtcblx0XHRhcnJheVsgb2Zmc2V0ICsgNSBdID0gdGVbIDUgXTtcblx0XHRhcnJheVsgb2Zmc2V0ICsgNiBdID0gdGVbIDYgXTtcblx0XHRhcnJheVsgb2Zmc2V0ICsgNyBdID0gdGVbIDcgXTtcblxuXHRcdGFycmF5WyBvZmZzZXQgKyA4IF0gPSB0ZVsgOCBdO1xuXHRcdGFycmF5WyBvZmZzZXQgKyA5IF0gPSB0ZVsgOSBdO1xuXHRcdGFycmF5WyBvZmZzZXQgKyAxMCBdID0gdGVbIDEwIF07XG5cdFx0YXJyYXlbIG9mZnNldCArIDExIF0gPSB0ZVsgMTEgXTtcblxuXHRcdGFycmF5WyBvZmZzZXQgKyAxMiBdID0gdGVbIDEyIF07XG5cdFx0YXJyYXlbIG9mZnNldCArIDEzIF0gPSB0ZVsgMTMgXTtcblx0XHRhcnJheVsgb2Zmc2V0ICsgMTQgXSA9IHRlWyAxNCBdO1xuXHRcdGFycmF5WyBvZmZzZXQgKyAxNSBdID0gdGVbIDE1IF07XG5cblx0XHRyZXR1cm4gYXJyYXk7XG5cblx0fVxuXG59ICk7XG5cblxuZXhwb3J0IHsgTWF0cml4NCB9OyJdfQ== ================================================ FILE: packages/sdk/lib/core/libs/three-nebula/core/three/Quaternion.js ================================================ /** * @author mikael emtinger / http://gomo.se/ * @author alteredq / http://alteredqualia.com/ * @author WestLangley / http://github.com/WestLangley * @author bhouston / http://clara.io */ import { _Math } from './Math.js'; function Quaternion(x, y, z, w) { this._x = x || 0; this._y = y || 0; this._z = z || 0; this._w = w !== undefined ? w : 1; } Object.assign(Quaternion, { slerp: function (qa, qb, qm, t) { return qm.copy(qa).slerp(qb, t); }, slerpFlat: function (dst, dstOffset, src0, srcOffset0, src1, srcOffset1, t) { // fuzz-free, array-based Quaternion SLERP operation var x0 = src0[srcOffset0 + 0], y0 = src0[srcOffset0 + 1], z0 = src0[srcOffset0 + 2], w0 = src0[srcOffset0 + 3], x1 = src1[srcOffset1 + 0], y1 = src1[srcOffset1 + 1], z1 = src1[srcOffset1 + 2], w1 = src1[srcOffset1 + 3]; if (w0 !== w1 || x0 !== x1 || y0 !== y1 || z0 !== z1) { var s = 1 - t, cos = x0 * x1 + y0 * y1 + z0 * z1 + w0 * w1, dir = cos >= 0 ? 1 : -1, sqrSin = 1 - cos * cos; // Skip the Slerp for tiny steps to avoid numeric problems: if (sqrSin > Number.EPSILON) { var sin = Math.sqrt(sqrSin), len = Math.atan2(sin, cos * dir); s = Math.sin(s * len) / sin; t = Math.sin(t * len) / sin; } var tDir = t * dir; x0 = x0 * s + x1 * tDir; y0 = y0 * s + y1 * tDir; z0 = z0 * s + z1 * tDir; w0 = w0 * s + w1 * tDir; // Normalize in case we just did a lerp: if (s === 1 - t) { var f = 1 / Math.sqrt(x0 * x0 + y0 * y0 + z0 * z0 + w0 * w0); x0 *= f; y0 *= f; z0 *= f; w0 *= f; } } dst[dstOffset] = x0; dst[dstOffset + 1] = y0; dst[dstOffset + 2] = z0; dst[dstOffset + 3] = w0; } }); Object.defineProperties(Quaternion.prototype, { x: { get: function () { return this._x; }, set: function (value) { this._x = value; this._onChangeCallback(); } }, y: { get: function () { return this._y; }, set: function (value) { this._y = value; this._onChangeCallback(); } }, z: { get: function () { return this._z; }, set: function (value) { this._z = value; this._onChangeCallback(); } }, w: { get: function () { return this._w; }, set: function (value) { this._w = value; this._onChangeCallback(); } } }); Object.assign(Quaternion.prototype, { isQuaternion: true, set: function (x, y, z, w) { this._x = x; this._y = y; this._z = z; this._w = w; this._onChangeCallback(); return this; }, clone: function () { return new this.constructor(this._x, this._y, this._z, this._w); }, copy: function (quaternion) { this._x = quaternion.x; this._y = quaternion.y; this._z = quaternion.z; this._w = quaternion.w; this._onChangeCallback(); return this; }, setFromEuler: function (euler, update) { if (!(euler && euler.isEuler)) { throw new Error('THREE.Quaternion: .setFromEuler() now expects an Euler rotation rather than a Vector3 and order.'); } var x = euler._x, y = euler._y, z = euler._z, order = euler.order; // http://www.mathworks.com/matlabcentral/fileexchange/ // 20696-function-to-convert-between-dcm-euler-angles-quaternions-and-euler-vectors/ // content/SpinCalc.m var cos = Math.cos; var sin = Math.sin; var c1 = cos(x / 2); var c2 = cos(y / 2); var c3 = cos(z / 2); var s1 = sin(x / 2); var s2 = sin(y / 2); var s3 = sin(z / 2); if (order === 'XYZ') { this._x = s1 * c2 * c3 + c1 * s2 * s3; this._y = c1 * s2 * c3 - s1 * c2 * s3; this._z = c1 * c2 * s3 + s1 * s2 * c3; this._w = c1 * c2 * c3 - s1 * s2 * s3; } else if (order === 'YXZ') { this._x = s1 * c2 * c3 + c1 * s2 * s3; this._y = c1 * s2 * c3 - s1 * c2 * s3; this._z = c1 * c2 * s3 - s1 * s2 * c3; this._w = c1 * c2 * c3 + s1 * s2 * s3; } else if (order === 'ZXY') { this._x = s1 * c2 * c3 - c1 * s2 * s3; this._y = c1 * s2 * c3 + s1 * c2 * s3; this._z = c1 * c2 * s3 + s1 * s2 * c3; this._w = c1 * c2 * c3 - s1 * s2 * s3; } else if (order === 'ZYX') { this._x = s1 * c2 * c3 - c1 * s2 * s3; this._y = c1 * s2 * c3 + s1 * c2 * s3; this._z = c1 * c2 * s3 - s1 * s2 * c3; this._w = c1 * c2 * c3 + s1 * s2 * s3; } else if (order === 'YZX') { this._x = s1 * c2 * c3 + c1 * s2 * s3; this._y = c1 * s2 * c3 + s1 * c2 * s3; this._z = c1 * c2 * s3 - s1 * s2 * c3; this._w = c1 * c2 * c3 - s1 * s2 * s3; } else if (order === 'XZY') { this._x = s1 * c2 * c3 - c1 * s2 * s3; this._y = c1 * s2 * c3 - s1 * c2 * s3; this._z = c1 * c2 * s3 + s1 * s2 * c3; this._w = c1 * c2 * c3 + s1 * s2 * s3; } if (update !== false) this._onChangeCallback(); return this; }, setFromAxisAngle: function (axis, angle) { // http://www.euclideanspace.com/maths/geometry/rotations/conversions/angleToQuaternion/index.htm // assumes axis is normalized var halfAngle = angle / 2, s = Math.sin(halfAngle); this._x = axis.x * s; this._y = axis.y * s; this._z = axis.z * s; this._w = Math.cos(halfAngle); this._onChangeCallback(); return this; }, setFromRotationMatrix: function (m) { // http://www.euclideanspace.com/maths/geometry/rotations/conversions/matrixToQuaternion/index.htm // assumes the upper 3x3 of m is a pure rotation matrix (i.e, unscaled) var te = m.elements, m11 = te[0], m12 = te[4], m13 = te[8], m21 = te[1], m22 = te[5], m23 = te[9], m31 = te[2], m32 = te[6], m33 = te[10], trace = m11 + m22 + m33, s; if (trace > 0) { s = 0.5 / Math.sqrt(trace + 1.0); this._w = 0.25 / s; this._x = (m32 - m23) * s; this._y = (m13 - m31) * s; this._z = (m21 - m12) * s; } else if (m11 > m22 && m11 > m33) { s = 2.0 * Math.sqrt(1.0 + m11 - m22 - m33); this._w = (m32 - m23) / s; this._x = 0.25 * s; this._y = (m12 + m21) / s; this._z = (m13 + m31) / s; } else if (m22 > m33) { s = 2.0 * Math.sqrt(1.0 + m22 - m11 - m33); this._w = (m13 - m31) / s; this._x = (m12 + m21) / s; this._y = 0.25 * s; this._z = (m23 + m32) / s; } else { s = 2.0 * Math.sqrt(1.0 + m33 - m11 - m22); this._w = (m21 - m12) / s; this._x = (m13 + m31) / s; this._y = (m23 + m32) / s; this._z = 0.25 * s; } this._onChangeCallback(); return this; }, setFromUnitVectors: function (vFrom, vTo) { // assumes direction vectors vFrom and vTo are normalized var EPS = 0.000001; var r = vFrom.dot(vTo) + 1; if (r < EPS) { r = 0; if (Math.abs(vFrom.x) > Math.abs(vFrom.z)) { this._x = -vFrom.y; this._y = vFrom.x; this._z = 0; this._w = r; } else { this._x = 0; this._y = -vFrom.z; this._z = vFrom.y; this._w = r; } } else { // crossVectors( vFrom, vTo ); // inlined to avoid cyclic dependency on Vector3 this._x = vFrom.y * vTo.z - vFrom.z * vTo.y; this._y = vFrom.z * vTo.x - vFrom.x * vTo.z; this._z = vFrom.x * vTo.y - vFrom.y * vTo.x; this._w = r; } return this.normalize(); }, angleTo: function (q) { return 2 * Math.acos(Math.abs(_Math.clamp(this.dot(q), -1, 1))); }, rotateTowards: function (q, step) { var angle = this.angleTo(q); if (angle === 0) return this; var t = Math.min(1, step / angle); this.slerp(q, t); return this; }, inverse: function () { // quaternion is assumed to have unit length return this.conjugate(); }, conjugate: function () { this._x *= -1; this._y *= -1; this._z *= -1; this._onChangeCallback(); return this; }, dot: function (v) { return this._x * v._x + this._y * v._y + this._z * v._z + this._w * v._w; }, lengthSq: function () { return this._x * this._x + this._y * this._y + this._z * this._z + this._w * this._w; }, length: function () { return Math.sqrt(this._x * this._x + this._y * this._y + this._z * this._z + this._w * this._w); }, normalize: function () { var l = this.length(); if (l === 0) { this._x = 0; this._y = 0; this._z = 0; this._w = 1; } else { l = 1 / l; this._x = this._x * l; this._y = this._y * l; this._z = this._z * l; this._w = this._w * l; } this._onChangeCallback(); return this; }, multiply: function (q, p) { if (p !== undefined) { console.warn('THREE.Quaternion: .multiply() now only accepts one argument. Use .multiplyQuaternions( a, b ) instead.'); return this.multiplyQuaternions(q, p); } return this.multiplyQuaternions(this, q); }, premultiply: function (q) { return this.multiplyQuaternions(q, this); }, multiplyQuaternions: function (a, b) { // from http://www.euclideanspace.com/maths/algebra/realNormedAlgebra/quaternions/code/index.htm var qax = a._x, qay = a._y, qaz = a._z, qaw = a._w; var qbx = b._x, qby = b._y, qbz = b._z, qbw = b._w; this._x = qax * qbw + qaw * qbx + qay * qbz - qaz * qby; this._y = qay * qbw + qaw * qby + qaz * qbx - qax * qbz; this._z = qaz * qbw + qaw * qbz + qax * qby - qay * qbx; this._w = qaw * qbw - qax * qbx - qay * qby - qaz * qbz; this._onChangeCallback(); return this; }, slerp: function (qb, t) { if (t === 0) return this; if (t === 1) return this.copy(qb); var x = this._x, y = this._y, z = this._z, w = this._w; // http://www.euclideanspace.com/maths/algebra/realNormedAlgebra/quaternions/slerp/ var cosHalfTheta = w * qb._w + x * qb._x + y * qb._y + z * qb._z; if (cosHalfTheta < 0) { this._w = -qb._w; this._x = -qb._x; this._y = -qb._y; this._z = -qb._z; cosHalfTheta = -cosHalfTheta; } else { this.copy(qb); } if (cosHalfTheta >= 1.0) { this._w = w; this._x = x; this._y = y; this._z = z; return this; } var sqrSinHalfTheta = 1.0 - cosHalfTheta * cosHalfTheta; if (sqrSinHalfTheta <= Number.EPSILON) { var s = 1 - t; this._w = s * w + t * this._w; this._x = s * x + t * this._x; this._y = s * y + t * this._y; this._z = s * z + t * this._z; this.normalize(); this._onChangeCallback(); return this; } var sinHalfTheta = Math.sqrt(sqrSinHalfTheta); var halfTheta = Math.atan2(sinHalfTheta, cosHalfTheta); var ratioA = Math.sin((1 - t) * halfTheta) / sinHalfTheta, ratioB = Math.sin(t * halfTheta) / sinHalfTheta; this._w = w * ratioA + this._w * ratioB; this._x = x * ratioA + this._x * ratioB; this._y = y * ratioA + this._y * ratioB; this._z = z * ratioA + this._z * ratioB; this._onChangeCallback(); return this; }, equals: function (quaternion) { return quaternion._x === this._x && quaternion._y === this._y && quaternion._z === this._z && quaternion._w === this._w; }, fromArray: function (array, offset) { if (offset === undefined) offset = 0; this._x = array[offset]; this._y = array[offset + 1]; this._z = array[offset + 2]; this._w = array[offset + 3]; this._onChangeCallback(); return this; }, toArray: function (array, offset) { if (array === undefined) array = []; if (offset === undefined) offset = 0; array[offset] = this._x; array[offset + 1] = this._y; array[offset + 2] = this._z; array[offset + 3] = this._w; return array; }, _onChange: function (callback) { this._onChangeCallback = callback; return this; }, _onChangeCallback: function () {} }); export { Quaternion }; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb3JlL3RocmVlL1F1YXRlcm5pb24uanMiXSwibmFtZXMiOlsiX01hdGgiLCJRdWF0ZXJuaW9uIiwieCIsInkiLCJ6IiwidyIsIl94IiwiX3kiLCJfeiIsIl93IiwidW5kZWZpbmVkIiwiT2JqZWN0IiwiYXNzaWduIiwic2xlcnAiLCJxYSIsInFiIiwicW0iLCJ0IiwiY29weSIsInNsZXJwRmxhdCIsImRzdCIsImRzdE9mZnNldCIsInNyYzAiLCJzcmNPZmZzZXQwIiwic3JjMSIsInNyY09mZnNldDEiLCJ4MCIsInkwIiwiejAiLCJ3MCIsIngxIiwieTEiLCJ6MSIsIncxIiwicyIsImNvcyIsImRpciIsInNxclNpbiIsIk51bWJlciIsIkVQU0lMT04iLCJzaW4iLCJNYXRoIiwic3FydCIsImxlbiIsImF0YW4yIiwidERpciIsImYiLCJkZWZpbmVQcm9wZXJ0aWVzIiwicHJvdG90eXBlIiwiZ2V0Iiwic2V0IiwidmFsdWUiLCJfb25DaGFuZ2VDYWxsYmFjayIsImlzUXVhdGVybmlvbiIsImNsb25lIiwiY29uc3RydWN0b3IiLCJxdWF0ZXJuaW9uIiwic2V0RnJvbUV1bGVyIiwiZXVsZXIiLCJ1cGRhdGUiLCJpc0V1bGVyIiwiRXJyb3IiLCJvcmRlciIsImMxIiwiYzIiLCJjMyIsInMxIiwiczIiLCJzMyIsInNldEZyb21BeGlzQW5nbGUiLCJheGlzIiwiYW5nbGUiLCJoYWxmQW5nbGUiLCJzZXRGcm9tUm90YXRpb25NYXRyaXgiLCJtIiwidGUiLCJlbGVtZW50cyIsIm0xMSIsIm0xMiIsIm0xMyIsIm0yMSIsIm0yMiIsIm0yMyIsIm0zMSIsIm0zMiIsIm0zMyIsInRyYWNlIiwic2V0RnJvbVVuaXRWZWN0b3JzIiwidkZyb20iLCJ2VG8iLCJFUFMiLCJyIiwiZG90IiwiYWJzIiwibm9ybWFsaXplIiwiYW5nbGVUbyIsInEiLCJhY29zIiwiY2xhbXAiLCJyb3RhdGVUb3dhcmRzIiwic3RlcCIsIm1pbiIsImludmVyc2UiLCJjb25qdWdhdGUiLCJ2IiwibGVuZ3RoU3EiLCJsZW5ndGgiLCJsIiwibXVsdGlwbHkiLCJwIiwiY29uc29sZSIsIndhcm4iLCJtdWx0aXBseVF1YXRlcm5pb25zIiwicHJlbXVsdGlwbHkiLCJhIiwiYiIsInFheCIsInFheSIsInFheiIsInFhdyIsInFieCIsInFieSIsInFieiIsInFidyIsImNvc0hhbGZUaGV0YSIsInNxclNpbkhhbGZUaGV0YSIsInNpbkhhbGZUaGV0YSIsImhhbGZUaGV0YSIsInJhdGlvQSIsInJhdGlvQiIsImVxdWFscyIsImZyb21BcnJheSIsImFycmF5Iiwib2Zmc2V0IiwidG9BcnJheSIsIl9vbkNoYW5nZSIsImNhbGxiYWNrIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQSxTQUFTQSxLQUFULFFBQXNCLFdBQXRCOztBQUVBLFNBQVNDLFVBQVQsQ0FBcUJDLENBQXJCLEVBQXdCQyxDQUF4QixFQUEyQkMsQ0FBM0IsRUFBOEJDLENBQTlCLEVBQWtDO0FBRWpDLE9BQUtDLEVBQUwsR0FBVUosQ0FBQyxJQUFJLENBQWY7QUFDQSxPQUFLSyxFQUFMLEdBQVVKLENBQUMsSUFBSSxDQUFmO0FBQ0EsT0FBS0ssRUFBTCxHQUFVSixDQUFDLElBQUksQ0FBZjtBQUNBLE9BQUtLLEVBQUwsR0FBWUosQ0FBQyxLQUFLSyxTQUFSLEdBQXNCTCxDQUF0QixHQUEwQixDQUFwQztBQUVBOztBQUVETSxNQUFNLENBQUNDLE1BQVAsQ0FBZVgsVUFBZixFQUEyQjtBQUUxQlksRUFBQUEsS0FBSyxFQUFFLFVBQVdDLEVBQVgsRUFBZUMsRUFBZixFQUFtQkMsRUFBbkIsRUFBdUJDLENBQXZCLEVBQTJCO0FBRWpDLFdBQU9ELEVBQUUsQ0FBQ0UsSUFBSCxDQUFTSixFQUFULEVBQWNELEtBQWQsQ0FBcUJFLEVBQXJCLEVBQXlCRSxDQUF6QixDQUFQO0FBRUEsR0FOeUI7QUFRMUJFLEVBQUFBLFNBQVMsRUFBRSxVQUFXQyxHQUFYLEVBQWdCQyxTQUFoQixFQUEyQkMsSUFBM0IsRUFBaUNDLFVBQWpDLEVBQTZDQyxJQUE3QyxFQUFtREMsVUFBbkQsRUFBK0RSLENBQS9ELEVBQW1FO0FBRTdFO0FBRUEsUUFBSVMsRUFBRSxHQUFHSixJQUFJLENBQUVDLFVBQVUsR0FBRyxDQUFmLENBQWI7QUFBQSxRQUNDSSxFQUFFLEdBQUdMLElBQUksQ0FBRUMsVUFBVSxHQUFHLENBQWYsQ0FEVjtBQUFBLFFBRUNLLEVBQUUsR0FBR04sSUFBSSxDQUFFQyxVQUFVLEdBQUcsQ0FBZixDQUZWO0FBQUEsUUFHQ00sRUFBRSxHQUFHUCxJQUFJLENBQUVDLFVBQVUsR0FBRyxDQUFmLENBSFY7QUFBQSxRQUtDTyxFQUFFLEdBQUdOLElBQUksQ0FBRUMsVUFBVSxHQUFHLENBQWYsQ0FMVjtBQUFBLFFBTUNNLEVBQUUsR0FBR1AsSUFBSSxDQUFFQyxVQUFVLEdBQUcsQ0FBZixDQU5WO0FBQUEsUUFPQ08sRUFBRSxHQUFHUixJQUFJLENBQUVDLFVBQVUsR0FBRyxDQUFmLENBUFY7QUFBQSxRQVFDUSxFQUFFLEdBQUdULElBQUksQ0FBRUMsVUFBVSxHQUFHLENBQWYsQ0FSVjs7QUFVQSxRQUFLSSxFQUFFLEtBQUtJLEVBQVAsSUFBYVAsRUFBRSxLQUFLSSxFQUFwQixJQUEwQkgsRUFBRSxLQUFLSSxFQUFqQyxJQUF1Q0gsRUFBRSxLQUFLSSxFQUFuRCxFQUF3RDtBQUV2RCxVQUFJRSxDQUFDLEdBQUcsSUFBSWpCLENBQVo7QUFBQSxVQUVDa0IsR0FBRyxHQUFHVCxFQUFFLEdBQUdJLEVBQUwsR0FBVUgsRUFBRSxHQUFHSSxFQUFmLEdBQW9CSCxFQUFFLEdBQUdJLEVBQXpCLEdBQThCSCxFQUFFLEdBQUdJLEVBRjFDO0FBQUEsVUFJQ0csR0FBRyxHQUFLRCxHQUFHLElBQUksQ0FBUCxHQUFXLENBQVgsR0FBZSxDQUFFLENBSjFCO0FBQUEsVUFLQ0UsTUFBTSxHQUFHLElBQUlGLEdBQUcsR0FBR0EsR0FMcEIsQ0FGdUQsQ0FTdkQ7O0FBQ0EsVUFBS0UsTUFBTSxHQUFHQyxNQUFNLENBQUNDLE9BQXJCLEVBQStCO0FBRTlCLFlBQUlDLEdBQUcsR0FBR0MsSUFBSSxDQUFDQyxJQUFMLENBQVdMLE1BQVgsQ0FBVjtBQUFBLFlBQ0NNLEdBQUcsR0FBR0YsSUFBSSxDQUFDRyxLQUFMLENBQVlKLEdBQVosRUFBaUJMLEdBQUcsR0FBR0MsR0FBdkIsQ0FEUDtBQUdBRixRQUFBQSxDQUFDLEdBQUdPLElBQUksQ0FBQ0QsR0FBTCxDQUFVTixDQUFDLEdBQUdTLEdBQWQsSUFBc0JILEdBQTFCO0FBQ0F2QixRQUFBQSxDQUFDLEdBQUd3QixJQUFJLENBQUNELEdBQUwsQ0FBVXZCLENBQUMsR0FBRzBCLEdBQWQsSUFBc0JILEdBQTFCO0FBRUE7O0FBRUQsVUFBSUssSUFBSSxHQUFHNUIsQ0FBQyxHQUFHbUIsR0FBZjtBQUVBVixNQUFBQSxFQUFFLEdBQUdBLEVBQUUsR0FBR1EsQ0FBTCxHQUFTSixFQUFFLEdBQUdlLElBQW5CO0FBQ0FsQixNQUFBQSxFQUFFLEdBQUdBLEVBQUUsR0FBR08sQ0FBTCxHQUFTSCxFQUFFLEdBQUdjLElBQW5CO0FBQ0FqQixNQUFBQSxFQUFFLEdBQUdBLEVBQUUsR0FBR00sQ0FBTCxHQUFTRixFQUFFLEdBQUdhLElBQW5CO0FBQ0FoQixNQUFBQSxFQUFFLEdBQUdBLEVBQUUsR0FBR0ssQ0FBTCxHQUFTRCxFQUFFLEdBQUdZLElBQW5CLENBekJ1RCxDQTJCdkQ7O0FBQ0EsVUFBS1gsQ0FBQyxLQUFLLElBQUlqQixDQUFmLEVBQW1CO0FBRWxCLFlBQUk2QixDQUFDLEdBQUcsSUFBSUwsSUFBSSxDQUFDQyxJQUFMLENBQVdoQixFQUFFLEdBQUdBLEVBQUwsR0FBVUMsRUFBRSxHQUFHQSxFQUFmLEdBQW9CQyxFQUFFLEdBQUdBLEVBQXpCLEdBQThCQyxFQUFFLEdBQUdBLEVBQTlDLENBQVo7QUFFQUgsUUFBQUEsRUFBRSxJQUFJb0IsQ0FBTjtBQUNBbkIsUUFBQUEsRUFBRSxJQUFJbUIsQ0FBTjtBQUNBbEIsUUFBQUEsRUFBRSxJQUFJa0IsQ0FBTjtBQUNBakIsUUFBQUEsRUFBRSxJQUFJaUIsQ0FBTjtBQUVBO0FBRUQ7O0FBRUQxQixJQUFBQSxHQUFHLENBQUVDLFNBQUYsQ0FBSCxHQUFtQkssRUFBbkI7QUFDQU4sSUFBQUEsR0FBRyxDQUFFQyxTQUFTLEdBQUcsQ0FBZCxDQUFILEdBQXVCTSxFQUF2QjtBQUNBUCxJQUFBQSxHQUFHLENBQUVDLFNBQVMsR0FBRyxDQUFkLENBQUgsR0FBdUJPLEVBQXZCO0FBQ0FSLElBQUFBLEdBQUcsQ0FBRUMsU0FBUyxHQUFHLENBQWQsQ0FBSCxHQUF1QlEsRUFBdkI7QUFFQTtBQXBFeUIsQ0FBM0I7QUF3RUFsQixNQUFNLENBQUNvQyxnQkFBUCxDQUF5QjlDLFVBQVUsQ0FBQytDLFNBQXBDLEVBQStDO0FBRTlDOUMsRUFBQUEsQ0FBQyxFQUFFO0FBRUYrQyxJQUFBQSxHQUFHLEVBQUUsWUFBWTtBQUVoQixhQUFPLEtBQUszQyxFQUFaO0FBRUEsS0FOQztBQVFGNEMsSUFBQUEsR0FBRyxFQUFFLFVBQVdDLEtBQVgsRUFBbUI7QUFFdkIsV0FBSzdDLEVBQUwsR0FBVTZDLEtBQVY7O0FBQ0EsV0FBS0MsaUJBQUw7QUFFQTtBQWJDLEdBRjJDO0FBbUI5Q2pELEVBQUFBLENBQUMsRUFBRTtBQUVGOEMsSUFBQUEsR0FBRyxFQUFFLFlBQVk7QUFFaEIsYUFBTyxLQUFLMUMsRUFBWjtBQUVBLEtBTkM7QUFRRjJDLElBQUFBLEdBQUcsRUFBRSxVQUFXQyxLQUFYLEVBQW1CO0FBRXZCLFdBQUs1QyxFQUFMLEdBQVU0QyxLQUFWOztBQUNBLFdBQUtDLGlCQUFMO0FBRUE7QUFiQyxHQW5CMkM7QUFvQzlDaEQsRUFBQUEsQ0FBQyxFQUFFO0FBRUY2QyxJQUFBQSxHQUFHLEVBQUUsWUFBWTtBQUVoQixhQUFPLEtBQUt6QyxFQUFaO0FBRUEsS0FOQztBQVFGMEMsSUFBQUEsR0FBRyxFQUFFLFVBQVdDLEtBQVgsRUFBbUI7QUFFdkIsV0FBSzNDLEVBQUwsR0FBVTJDLEtBQVY7O0FBQ0EsV0FBS0MsaUJBQUw7QUFFQTtBQWJDLEdBcEMyQztBQXFEOUMvQyxFQUFBQSxDQUFDLEVBQUU7QUFFRjRDLElBQUFBLEdBQUcsRUFBRSxZQUFZO0FBRWhCLGFBQU8sS0FBS3hDLEVBQVo7QUFFQSxLQU5DO0FBUUZ5QyxJQUFBQSxHQUFHLEVBQUUsVUFBV0MsS0FBWCxFQUFtQjtBQUV2QixXQUFLMUMsRUFBTCxHQUFVMEMsS0FBVjs7QUFDQSxXQUFLQyxpQkFBTDtBQUVBO0FBYkM7QUFyRDJDLENBQS9DO0FBd0VBekMsTUFBTSxDQUFDQyxNQUFQLENBQWVYLFVBQVUsQ0FBQytDLFNBQTFCLEVBQXFDO0FBRXBDSyxFQUFBQSxZQUFZLEVBQUUsSUFGc0I7QUFJcENILEVBQUFBLEdBQUcsRUFBRSxVQUFXaEQsQ0FBWCxFQUFjQyxDQUFkLEVBQWlCQyxDQUFqQixFQUFvQkMsQ0FBcEIsRUFBd0I7QUFFNUIsU0FBS0MsRUFBTCxHQUFVSixDQUFWO0FBQ0EsU0FBS0ssRUFBTCxHQUFVSixDQUFWO0FBQ0EsU0FBS0ssRUFBTCxHQUFVSixDQUFWO0FBQ0EsU0FBS0ssRUFBTCxHQUFVSixDQUFWOztBQUVBLFNBQUsrQyxpQkFBTDs7QUFFQSxXQUFPLElBQVA7QUFFQSxHQWZtQztBQWlCcENFLEVBQUFBLEtBQUssRUFBRSxZQUFZO0FBRWxCLFdBQU8sSUFBSSxLQUFLQyxXQUFULENBQXNCLEtBQUtqRCxFQUEzQixFQUErQixLQUFLQyxFQUFwQyxFQUF3QyxLQUFLQyxFQUE3QyxFQUFpRCxLQUFLQyxFQUF0RCxDQUFQO0FBRUEsR0FyQm1DO0FBdUJwQ1MsRUFBQUEsSUFBSSxFQUFFLFVBQVdzQyxVQUFYLEVBQXdCO0FBRTdCLFNBQUtsRCxFQUFMLEdBQVVrRCxVQUFVLENBQUN0RCxDQUFyQjtBQUNBLFNBQUtLLEVBQUwsR0FBVWlELFVBQVUsQ0FBQ3JELENBQXJCO0FBQ0EsU0FBS0ssRUFBTCxHQUFVZ0QsVUFBVSxDQUFDcEQsQ0FBckI7QUFDQSxTQUFLSyxFQUFMLEdBQVUrQyxVQUFVLENBQUNuRCxDQUFyQjs7QUFFQSxTQUFLK0MsaUJBQUw7O0FBRUEsV0FBTyxJQUFQO0FBRUEsR0FsQ21DO0FBb0NwQ0ssRUFBQUEsWUFBWSxFQUFFLFVBQVdDLEtBQVgsRUFBa0JDLE1BQWxCLEVBQTJCO0FBRXhDLFFBQUssRUFBSUQsS0FBSyxJQUFJQSxLQUFLLENBQUNFLE9BQW5CLENBQUwsRUFBb0M7QUFFbkMsWUFBTSxJQUFJQyxLQUFKLENBQVcsa0dBQVgsQ0FBTjtBQUVBOztBQUVELFFBQUkzRCxDQUFDLEdBQUd3RCxLQUFLLENBQUNwRCxFQUFkO0FBQUEsUUFBa0JILENBQUMsR0FBR3VELEtBQUssQ0FBQ25ELEVBQTVCO0FBQUEsUUFBZ0NILENBQUMsR0FBR3NELEtBQUssQ0FBQ2xELEVBQTFDO0FBQUEsUUFBOENzRCxLQUFLLEdBQUdKLEtBQUssQ0FBQ0ksS0FBNUQsQ0FSd0MsQ0FVeEM7QUFDQTtBQUNBOztBQUVBLFFBQUkzQixHQUFHLEdBQUdNLElBQUksQ0FBQ04sR0FBZjtBQUNBLFFBQUlLLEdBQUcsR0FBR0MsSUFBSSxDQUFDRCxHQUFmO0FBRUEsUUFBSXVCLEVBQUUsR0FBRzVCLEdBQUcsQ0FBRWpDLENBQUMsR0FBRyxDQUFOLENBQVo7QUFDQSxRQUFJOEQsRUFBRSxHQUFHN0IsR0FBRyxDQUFFaEMsQ0FBQyxHQUFHLENBQU4sQ0FBWjtBQUNBLFFBQUk4RCxFQUFFLEdBQUc5QixHQUFHLENBQUUvQixDQUFDLEdBQUcsQ0FBTixDQUFaO0FBRUEsUUFBSThELEVBQUUsR0FBRzFCLEdBQUcsQ0FBRXRDLENBQUMsR0FBRyxDQUFOLENBQVo7QUFDQSxRQUFJaUUsRUFBRSxHQUFHM0IsR0FBRyxDQUFFckMsQ0FBQyxHQUFHLENBQU4sQ0FBWjtBQUNBLFFBQUlpRSxFQUFFLEdBQUc1QixHQUFHLENBQUVwQyxDQUFDLEdBQUcsQ0FBTixDQUFaOztBQUVBLFFBQUswRCxLQUFLLEtBQUssS0FBZixFQUF1QjtBQUV0QixXQUFLeEQsRUFBTCxHQUFVNEQsRUFBRSxHQUFHRixFQUFMLEdBQVVDLEVBQVYsR0FBZUYsRUFBRSxHQUFHSSxFQUFMLEdBQVVDLEVBQW5DO0FBQ0EsV0FBSzdELEVBQUwsR0FBVXdELEVBQUUsR0FBR0ksRUFBTCxHQUFVRixFQUFWLEdBQWVDLEVBQUUsR0FBR0YsRUFBTCxHQUFVSSxFQUFuQztBQUNBLFdBQUs1RCxFQUFMLEdBQVV1RCxFQUFFLEdBQUdDLEVBQUwsR0FBVUksRUFBVixHQUFlRixFQUFFLEdBQUdDLEVBQUwsR0FBVUYsRUFBbkM7QUFDQSxXQUFLeEQsRUFBTCxHQUFVc0QsRUFBRSxHQUFHQyxFQUFMLEdBQVVDLEVBQVYsR0FBZUMsRUFBRSxHQUFHQyxFQUFMLEdBQVVDLEVBQW5DO0FBRUEsS0FQRCxNQU9PLElBQUtOLEtBQUssS0FBSyxLQUFmLEVBQXVCO0FBRTdCLFdBQUt4RCxFQUFMLEdBQVU0RCxFQUFFLEdBQUdGLEVBQUwsR0FBVUMsRUFBVixHQUFlRixFQUFFLEdBQUdJLEVBQUwsR0FBVUMsRUFBbkM7QUFDQSxXQUFLN0QsRUFBTCxHQUFVd0QsRUFBRSxHQUFHSSxFQUFMLEdBQVVGLEVBQVYsR0FBZUMsRUFBRSxHQUFHRixFQUFMLEdBQVVJLEVBQW5DO0FBQ0EsV0FBSzVELEVBQUwsR0FBVXVELEVBQUUsR0FBR0MsRUFBTCxHQUFVSSxFQUFWLEdBQWVGLEVBQUUsR0FBR0MsRUFBTCxHQUFVRixFQUFuQztBQUNBLFdBQUt4RCxFQUFMLEdBQVVzRCxFQUFFLEdBQUdDLEVBQUwsR0FBVUMsRUFBVixHQUFlQyxFQUFFLEdBQUdDLEVBQUwsR0FBVUMsRUFBbkM7QUFFQSxLQVBNLE1BT0EsSUFBS04sS0FBSyxLQUFLLEtBQWYsRUFBdUI7QUFFN0IsV0FBS3hELEVBQUwsR0FBVTRELEVBQUUsR0FBR0YsRUFBTCxHQUFVQyxFQUFWLEdBQWVGLEVBQUUsR0FBR0ksRUFBTCxHQUFVQyxFQUFuQztBQUNBLFdBQUs3RCxFQUFMLEdBQVV3RCxFQUFFLEdBQUdJLEVBQUwsR0FBVUYsRUFBVixHQUFlQyxFQUFFLEdBQUdGLEVBQUwsR0FBVUksRUFBbkM7QUFDQSxXQUFLNUQsRUFBTCxHQUFVdUQsRUFBRSxHQUFHQyxFQUFMLEdBQVVJLEVBQVYsR0FBZUYsRUFBRSxHQUFHQyxFQUFMLEdBQVVGLEVBQW5DO0FBQ0EsV0FBS3hELEVBQUwsR0FBVXNELEVBQUUsR0FBR0MsRUFBTCxHQUFVQyxFQUFWLEdBQWVDLEVBQUUsR0FBR0MsRUFBTCxHQUFVQyxFQUFuQztBQUVBLEtBUE0sTUFPQSxJQUFLTixLQUFLLEtBQUssS0FBZixFQUF1QjtBQUU3QixXQUFLeEQsRUFBTCxHQUFVNEQsRUFBRSxHQUFHRixFQUFMLEdBQVVDLEVBQVYsR0FBZUYsRUFBRSxHQUFHSSxFQUFMLEdBQVVDLEVBQW5DO0FBQ0EsV0FBSzdELEVBQUwsR0FBVXdELEVBQUUsR0FBR0ksRUFBTCxHQUFVRixFQUFWLEdBQWVDLEVBQUUsR0FBR0YsRUFBTCxHQUFVSSxFQUFuQztBQUNBLFdBQUs1RCxFQUFMLEdBQVV1RCxFQUFFLEdBQUdDLEVBQUwsR0FBVUksRUFBVixHQUFlRixFQUFFLEdBQUdDLEVBQUwsR0FBVUYsRUFBbkM7QUFDQSxXQUFLeEQsRUFBTCxHQUFVc0QsRUFBRSxHQUFHQyxFQUFMLEdBQVVDLEVBQVYsR0FBZUMsRUFBRSxHQUFHQyxFQUFMLEdBQVVDLEVBQW5DO0FBRUEsS0FQTSxNQU9BLElBQUtOLEtBQUssS0FBSyxLQUFmLEVBQXVCO0FBRTdCLFdBQUt4RCxFQUFMLEdBQVU0RCxFQUFFLEdBQUdGLEVBQUwsR0FBVUMsRUFBVixHQUFlRixFQUFFLEdBQUdJLEVBQUwsR0FBVUMsRUFBbkM7QUFDQSxXQUFLN0QsRUFBTCxHQUFVd0QsRUFBRSxHQUFHSSxFQUFMLEdBQVVGLEVBQVYsR0FBZUMsRUFBRSxHQUFHRixFQUFMLEdBQVVJLEVBQW5DO0FBQ0EsV0FBSzVELEVBQUwsR0FBVXVELEVBQUUsR0FBR0MsRUFBTCxHQUFVSSxFQUFWLEdBQWVGLEVBQUUsR0FBR0MsRUFBTCxHQUFVRixFQUFuQztBQUNBLFdBQUt4RCxFQUFMLEdBQVVzRCxFQUFFLEdBQUdDLEVBQUwsR0FBVUMsRUFBVixHQUFlQyxFQUFFLEdBQUdDLEVBQUwsR0FBVUMsRUFBbkM7QUFFQSxLQVBNLE1BT0EsSUFBS04sS0FBSyxLQUFLLEtBQWYsRUFBdUI7QUFFN0IsV0FBS3hELEVBQUwsR0FBVTRELEVBQUUsR0FBR0YsRUFBTCxHQUFVQyxFQUFWLEdBQWVGLEVBQUUsR0FBR0ksRUFBTCxHQUFVQyxFQUFuQztBQUNBLFdBQUs3RCxFQUFMLEdBQVV3RCxFQUFFLEdBQUdJLEVBQUwsR0FBVUYsRUFBVixHQUFlQyxFQUFFLEdBQUdGLEVBQUwsR0FBVUksRUFBbkM7QUFDQSxXQUFLNUQsRUFBTCxHQUFVdUQsRUFBRSxHQUFHQyxFQUFMLEdBQVVJLEVBQVYsR0FBZUYsRUFBRSxHQUFHQyxFQUFMLEdBQVVGLEVBQW5DO0FBQ0EsV0FBS3hELEVBQUwsR0FBVXNELEVBQUUsR0FBR0MsRUFBTCxHQUFVQyxFQUFWLEdBQWVDLEVBQUUsR0FBR0MsRUFBTCxHQUFVQyxFQUFuQztBQUVBOztBQUVELFFBQUtULE1BQU0sS0FBSyxLQUFoQixFQUF3QixLQUFLUCxpQkFBTDtBQUV4QixXQUFPLElBQVA7QUFFQSxHQTdHbUM7QUErR3BDaUIsRUFBQUEsZ0JBQWdCLEVBQUUsVUFBV0MsSUFBWCxFQUFpQkMsS0FBakIsRUFBeUI7QUFFMUM7QUFFQTtBQUVBLFFBQUlDLFNBQVMsR0FBR0QsS0FBSyxHQUFHLENBQXhCO0FBQUEsUUFBMkJyQyxDQUFDLEdBQUdPLElBQUksQ0FBQ0QsR0FBTCxDQUFVZ0MsU0FBVixDQUEvQjtBQUVBLFNBQUtsRSxFQUFMLEdBQVVnRSxJQUFJLENBQUNwRSxDQUFMLEdBQVNnQyxDQUFuQjtBQUNBLFNBQUszQixFQUFMLEdBQVUrRCxJQUFJLENBQUNuRSxDQUFMLEdBQVMrQixDQUFuQjtBQUNBLFNBQUsxQixFQUFMLEdBQVU4RCxJQUFJLENBQUNsRSxDQUFMLEdBQVM4QixDQUFuQjtBQUNBLFNBQUt6QixFQUFMLEdBQVVnQyxJQUFJLENBQUNOLEdBQUwsQ0FBVXFDLFNBQVYsQ0FBVjs7QUFFQSxTQUFLcEIsaUJBQUw7O0FBRUEsV0FBTyxJQUFQO0FBRUEsR0FoSW1DO0FBa0lwQ3FCLEVBQUFBLHFCQUFxQixFQUFFLFVBQVdDLENBQVgsRUFBZTtBQUVyQztBQUVBO0FBRUEsUUFBSUMsRUFBRSxHQUFHRCxDQUFDLENBQUNFLFFBQVg7QUFBQSxRQUVDQyxHQUFHLEdBQUdGLEVBQUUsQ0FBRSxDQUFGLENBRlQ7QUFBQSxRQUVnQkcsR0FBRyxHQUFHSCxFQUFFLENBQUUsQ0FBRixDQUZ4QjtBQUFBLFFBRStCSSxHQUFHLEdBQUdKLEVBQUUsQ0FBRSxDQUFGLENBRnZDO0FBQUEsUUFHQ0ssR0FBRyxHQUFHTCxFQUFFLENBQUUsQ0FBRixDQUhUO0FBQUEsUUFHZ0JNLEdBQUcsR0FBR04sRUFBRSxDQUFFLENBQUYsQ0FIeEI7QUFBQSxRQUcrQk8sR0FBRyxHQUFHUCxFQUFFLENBQUUsQ0FBRixDQUh2QztBQUFBLFFBSUNRLEdBQUcsR0FBR1IsRUFBRSxDQUFFLENBQUYsQ0FKVDtBQUFBLFFBSWdCUyxHQUFHLEdBQUdULEVBQUUsQ0FBRSxDQUFGLENBSnhCO0FBQUEsUUFJK0JVLEdBQUcsR0FBR1YsRUFBRSxDQUFFLEVBQUYsQ0FKdkM7QUFBQSxRQU1DVyxLQUFLLEdBQUdULEdBQUcsR0FBR0ksR0FBTixHQUFZSSxHQU5yQjtBQUFBLFFBT0NuRCxDQVBEOztBQVNBLFFBQUtvRCxLQUFLLEdBQUcsQ0FBYixFQUFpQjtBQUVoQnBELE1BQUFBLENBQUMsR0FBRyxNQUFNTyxJQUFJLENBQUNDLElBQUwsQ0FBVzRDLEtBQUssR0FBRyxHQUFuQixDQUFWO0FBRUEsV0FBSzdFLEVBQUwsR0FBVSxPQUFPeUIsQ0FBakI7QUFDQSxXQUFLNUIsRUFBTCxHQUFVLENBQUU4RSxHQUFHLEdBQUdGLEdBQVIsSUFBZ0JoRCxDQUExQjtBQUNBLFdBQUszQixFQUFMLEdBQVUsQ0FBRXdFLEdBQUcsR0FBR0ksR0FBUixJQUFnQmpELENBQTFCO0FBQ0EsV0FBSzFCLEVBQUwsR0FBVSxDQUFFd0UsR0FBRyxHQUFHRixHQUFSLElBQWdCNUMsQ0FBMUI7QUFFQSxLQVRELE1BU08sSUFBSzJDLEdBQUcsR0FBR0ksR0FBTixJQUFhSixHQUFHLEdBQUdRLEdBQXhCLEVBQThCO0FBRXBDbkQsTUFBQUEsQ0FBQyxHQUFHLE1BQU1PLElBQUksQ0FBQ0MsSUFBTCxDQUFXLE1BQU1tQyxHQUFOLEdBQVlJLEdBQVosR0FBa0JJLEdBQTdCLENBQVY7QUFFQSxXQUFLNUUsRUFBTCxHQUFVLENBQUUyRSxHQUFHLEdBQUdGLEdBQVIsSUFBZ0JoRCxDQUExQjtBQUNBLFdBQUs1QixFQUFMLEdBQVUsT0FBTzRCLENBQWpCO0FBQ0EsV0FBSzNCLEVBQUwsR0FBVSxDQUFFdUUsR0FBRyxHQUFHRSxHQUFSLElBQWdCOUMsQ0FBMUI7QUFDQSxXQUFLMUIsRUFBTCxHQUFVLENBQUV1RSxHQUFHLEdBQUdJLEdBQVIsSUFBZ0JqRCxDQUExQjtBQUVBLEtBVE0sTUFTQSxJQUFLK0MsR0FBRyxHQUFHSSxHQUFYLEVBQWlCO0FBRXZCbkQsTUFBQUEsQ0FBQyxHQUFHLE1BQU1PLElBQUksQ0FBQ0MsSUFBTCxDQUFXLE1BQU11QyxHQUFOLEdBQVlKLEdBQVosR0FBa0JRLEdBQTdCLENBQVY7QUFFQSxXQUFLNUUsRUFBTCxHQUFVLENBQUVzRSxHQUFHLEdBQUdJLEdBQVIsSUFBZ0JqRCxDQUExQjtBQUNBLFdBQUs1QixFQUFMLEdBQVUsQ0FBRXdFLEdBQUcsR0FBR0UsR0FBUixJQUFnQjlDLENBQTFCO0FBQ0EsV0FBSzNCLEVBQUwsR0FBVSxPQUFPMkIsQ0FBakI7QUFDQSxXQUFLMUIsRUFBTCxHQUFVLENBQUUwRSxHQUFHLEdBQUdFLEdBQVIsSUFBZ0JsRCxDQUExQjtBQUVBLEtBVE0sTUFTQTtBQUVOQSxNQUFBQSxDQUFDLEdBQUcsTUFBTU8sSUFBSSxDQUFDQyxJQUFMLENBQVcsTUFBTTJDLEdBQU4sR0FBWVIsR0FBWixHQUFrQkksR0FBN0IsQ0FBVjtBQUVBLFdBQUt4RSxFQUFMLEdBQVUsQ0FBRXVFLEdBQUcsR0FBR0YsR0FBUixJQUFnQjVDLENBQTFCO0FBQ0EsV0FBSzVCLEVBQUwsR0FBVSxDQUFFeUUsR0FBRyxHQUFHSSxHQUFSLElBQWdCakQsQ0FBMUI7QUFDQSxXQUFLM0IsRUFBTCxHQUFVLENBQUUyRSxHQUFHLEdBQUdFLEdBQVIsSUFBZ0JsRCxDQUExQjtBQUNBLFdBQUsxQixFQUFMLEdBQVUsT0FBTzBCLENBQWpCO0FBRUE7O0FBRUQsU0FBS2tCLGlCQUFMOztBQUVBLFdBQU8sSUFBUDtBQUVBLEdBM0xtQztBQTZMcENtQyxFQUFBQSxrQkFBa0IsRUFBRSxVQUFXQyxLQUFYLEVBQWtCQyxHQUFsQixFQUF3QjtBQUUzQztBQUVBLFFBQUlDLEdBQUcsR0FBRyxRQUFWO0FBRUEsUUFBSUMsQ0FBQyxHQUFHSCxLQUFLLENBQUNJLEdBQU4sQ0FBV0gsR0FBWCxJQUFtQixDQUEzQjs7QUFFQSxRQUFLRSxDQUFDLEdBQUdELEdBQVQsRUFBZTtBQUVkQyxNQUFBQSxDQUFDLEdBQUcsQ0FBSjs7QUFFQSxVQUFLbEQsSUFBSSxDQUFDb0QsR0FBTCxDQUFVTCxLQUFLLENBQUN0RixDQUFoQixJQUFzQnVDLElBQUksQ0FBQ29ELEdBQUwsQ0FBVUwsS0FBSyxDQUFDcEYsQ0FBaEIsQ0FBM0IsRUFBaUQ7QUFFaEQsYUFBS0UsRUFBTCxHQUFVLENBQUVrRixLQUFLLENBQUNyRixDQUFsQjtBQUNBLGFBQUtJLEVBQUwsR0FBVWlGLEtBQUssQ0FBQ3RGLENBQWhCO0FBQ0EsYUFBS00sRUFBTCxHQUFVLENBQVY7QUFDQSxhQUFLQyxFQUFMLEdBQVVrRixDQUFWO0FBRUEsT0FQRCxNQU9PO0FBRU4sYUFBS3JGLEVBQUwsR0FBVSxDQUFWO0FBQ0EsYUFBS0MsRUFBTCxHQUFVLENBQUVpRixLQUFLLENBQUNwRixDQUFsQjtBQUNBLGFBQUtJLEVBQUwsR0FBVWdGLEtBQUssQ0FBQ3JGLENBQWhCO0FBQ0EsYUFBS00sRUFBTCxHQUFVa0YsQ0FBVjtBQUVBO0FBRUQsS0FwQkQsTUFvQk87QUFFTjtBQUVBLFdBQUtyRixFQUFMLEdBQVVrRixLQUFLLENBQUNyRixDQUFOLEdBQVVzRixHQUFHLENBQUNyRixDQUFkLEdBQWtCb0YsS0FBSyxDQUFDcEYsQ0FBTixHQUFVcUYsR0FBRyxDQUFDdEYsQ0FBMUM7QUFDQSxXQUFLSSxFQUFMLEdBQVVpRixLQUFLLENBQUNwRixDQUFOLEdBQVVxRixHQUFHLENBQUN2RixDQUFkLEdBQWtCc0YsS0FBSyxDQUFDdEYsQ0FBTixHQUFVdUYsR0FBRyxDQUFDckYsQ0FBMUM7QUFDQSxXQUFLSSxFQUFMLEdBQVVnRixLQUFLLENBQUN0RixDQUFOLEdBQVV1RixHQUFHLENBQUN0RixDQUFkLEdBQWtCcUYsS0FBSyxDQUFDckYsQ0FBTixHQUFVc0YsR0FBRyxDQUFDdkYsQ0FBMUM7QUFDQSxXQUFLTyxFQUFMLEdBQVVrRixDQUFWO0FBRUE7O0FBRUQsV0FBTyxLQUFLRyxTQUFMLEVBQVA7QUFFQSxHQXRPbUM7QUF3T3BDQyxFQUFBQSxPQUFPLEVBQUUsVUFBV0MsQ0FBWCxFQUFlO0FBRXZCLFdBQU8sSUFBSXZELElBQUksQ0FBQ3dELElBQUwsQ0FBV3hELElBQUksQ0FBQ29ELEdBQUwsQ0FBVTdGLEtBQUssQ0FBQ2tHLEtBQU4sQ0FBYSxLQUFLTixHQUFMLENBQVVJLENBQVYsQ0FBYixFQUE0QixDQUFFLENBQTlCLEVBQWlDLENBQWpDLENBQVYsQ0FBWCxDQUFYO0FBRUEsR0E1T21DO0FBOE9wQ0csRUFBQUEsYUFBYSxFQUFFLFVBQVdILENBQVgsRUFBY0ksSUFBZCxFQUFxQjtBQUVuQyxRQUFJN0IsS0FBSyxHQUFHLEtBQUt3QixPQUFMLENBQWNDLENBQWQsQ0FBWjtBQUVBLFFBQUt6QixLQUFLLEtBQUssQ0FBZixFQUFtQixPQUFPLElBQVA7QUFFbkIsUUFBSXRELENBQUMsR0FBR3dCLElBQUksQ0FBQzRELEdBQUwsQ0FBVSxDQUFWLEVBQWFELElBQUksR0FBRzdCLEtBQXBCLENBQVI7QUFFQSxTQUFLMUQsS0FBTCxDQUFZbUYsQ0FBWixFQUFlL0UsQ0FBZjtBQUVBLFdBQU8sSUFBUDtBQUVBLEdBMVBtQztBQTRQcENxRixFQUFBQSxPQUFPLEVBQUUsWUFBWTtBQUVwQjtBQUVBLFdBQU8sS0FBS0MsU0FBTCxFQUFQO0FBRUEsR0FsUW1DO0FBb1FwQ0EsRUFBQUEsU0FBUyxFQUFFLFlBQVk7QUFFdEIsU0FBS2pHLEVBQUwsSUFBVyxDQUFFLENBQWI7QUFDQSxTQUFLQyxFQUFMLElBQVcsQ0FBRSxDQUFiO0FBQ0EsU0FBS0MsRUFBTCxJQUFXLENBQUUsQ0FBYjs7QUFFQSxTQUFLNEMsaUJBQUw7O0FBRUEsV0FBTyxJQUFQO0FBRUEsR0E5UW1DO0FBZ1JwQ3dDLEVBQUFBLEdBQUcsRUFBRSxVQUFXWSxDQUFYLEVBQWU7QUFFbkIsV0FBTyxLQUFLbEcsRUFBTCxHQUFVa0csQ0FBQyxDQUFDbEcsRUFBWixHQUFpQixLQUFLQyxFQUFMLEdBQVVpRyxDQUFDLENBQUNqRyxFQUE3QixHQUFrQyxLQUFLQyxFQUFMLEdBQVVnRyxDQUFDLENBQUNoRyxFQUE5QyxHQUFtRCxLQUFLQyxFQUFMLEdBQVUrRixDQUFDLENBQUMvRixFQUF0RTtBQUVBLEdBcFJtQztBQXNScENnRyxFQUFBQSxRQUFRLEVBQUUsWUFBWTtBQUVyQixXQUFPLEtBQUtuRyxFQUFMLEdBQVUsS0FBS0EsRUFBZixHQUFvQixLQUFLQyxFQUFMLEdBQVUsS0FBS0EsRUFBbkMsR0FBd0MsS0FBS0MsRUFBTCxHQUFVLEtBQUtBLEVBQXZELEdBQTRELEtBQUtDLEVBQUwsR0FBVSxLQUFLQSxFQUFsRjtBQUVBLEdBMVJtQztBQTRScENpRyxFQUFBQSxNQUFNLEVBQUUsWUFBWTtBQUVuQixXQUFPakUsSUFBSSxDQUFDQyxJQUFMLENBQVcsS0FBS3BDLEVBQUwsR0FBVSxLQUFLQSxFQUFmLEdBQW9CLEtBQUtDLEVBQUwsR0FBVSxLQUFLQSxFQUFuQyxHQUF3QyxLQUFLQyxFQUFMLEdBQVUsS0FBS0EsRUFBdkQsR0FBNEQsS0FBS0MsRUFBTCxHQUFVLEtBQUtBLEVBQXRGLENBQVA7QUFFQSxHQWhTbUM7QUFrU3BDcUYsRUFBQUEsU0FBUyxFQUFFLFlBQVk7QUFFdEIsUUFBSWEsQ0FBQyxHQUFHLEtBQUtELE1BQUwsRUFBUjs7QUFFQSxRQUFLQyxDQUFDLEtBQUssQ0FBWCxFQUFlO0FBRWQsV0FBS3JHLEVBQUwsR0FBVSxDQUFWO0FBQ0EsV0FBS0MsRUFBTCxHQUFVLENBQVY7QUFDQSxXQUFLQyxFQUFMLEdBQVUsQ0FBVjtBQUNBLFdBQUtDLEVBQUwsR0FBVSxDQUFWO0FBRUEsS0FQRCxNQU9PO0FBRU5rRyxNQUFBQSxDQUFDLEdBQUcsSUFBSUEsQ0FBUjtBQUVBLFdBQUtyRyxFQUFMLEdBQVUsS0FBS0EsRUFBTCxHQUFVcUcsQ0FBcEI7QUFDQSxXQUFLcEcsRUFBTCxHQUFVLEtBQUtBLEVBQUwsR0FBVW9HLENBQXBCO0FBQ0EsV0FBS25HLEVBQUwsR0FBVSxLQUFLQSxFQUFMLEdBQVVtRyxDQUFwQjtBQUNBLFdBQUtsRyxFQUFMLEdBQVUsS0FBS0EsRUFBTCxHQUFVa0csQ0FBcEI7QUFFQTs7QUFFRCxTQUFLdkQsaUJBQUw7O0FBRUEsV0FBTyxJQUFQO0FBRUEsR0E1VG1DO0FBOFRwQ3dELEVBQUFBLFFBQVEsRUFBRSxVQUFXWixDQUFYLEVBQWNhLENBQWQsRUFBa0I7QUFFM0IsUUFBS0EsQ0FBQyxLQUFLbkcsU0FBWCxFQUF1QjtBQUV0Qm9HLE1BQUFBLE9BQU8sQ0FBQ0MsSUFBUixDQUFjLHdHQUFkO0FBQ0EsYUFBTyxLQUFLQyxtQkFBTCxDQUEwQmhCLENBQTFCLEVBQTZCYSxDQUE3QixDQUFQO0FBRUE7O0FBRUQsV0FBTyxLQUFLRyxtQkFBTCxDQUEwQixJQUExQixFQUFnQ2hCLENBQWhDLENBQVA7QUFFQSxHQXpVbUM7QUEyVXBDaUIsRUFBQUEsV0FBVyxFQUFFLFVBQVdqQixDQUFYLEVBQWU7QUFFM0IsV0FBTyxLQUFLZ0IsbUJBQUwsQ0FBMEJoQixDQUExQixFQUE2QixJQUE3QixDQUFQO0FBRUEsR0EvVW1DO0FBaVZwQ2dCLEVBQUFBLG1CQUFtQixFQUFFLFVBQVdFLENBQVgsRUFBY0MsQ0FBZCxFQUFrQjtBQUV0QztBQUVBLFFBQUlDLEdBQUcsR0FBR0YsQ0FBQyxDQUFDNUcsRUFBWjtBQUFBLFFBQWdCK0csR0FBRyxHQUFHSCxDQUFDLENBQUMzRyxFQUF4QjtBQUFBLFFBQTRCK0csR0FBRyxHQUFHSixDQUFDLENBQUMxRyxFQUFwQztBQUFBLFFBQXdDK0csR0FBRyxHQUFHTCxDQUFDLENBQUN6RyxFQUFoRDtBQUNBLFFBQUkrRyxHQUFHLEdBQUdMLENBQUMsQ0FBQzdHLEVBQVo7QUFBQSxRQUFnQm1ILEdBQUcsR0FBR04sQ0FBQyxDQUFDNUcsRUFBeEI7QUFBQSxRQUE0Qm1ILEdBQUcsR0FBR1AsQ0FBQyxDQUFDM0csRUFBcEM7QUFBQSxRQUF3Q21ILEdBQUcsR0FBR1IsQ0FBQyxDQUFDMUcsRUFBaEQ7QUFFQSxTQUFLSCxFQUFMLEdBQVU4RyxHQUFHLEdBQUdPLEdBQU4sR0FBWUosR0FBRyxHQUFHQyxHQUFsQixHQUF3QkgsR0FBRyxHQUFHSyxHQUE5QixHQUFvQ0osR0FBRyxHQUFHRyxHQUFwRDtBQUNBLFNBQUtsSCxFQUFMLEdBQVU4RyxHQUFHLEdBQUdNLEdBQU4sR0FBWUosR0FBRyxHQUFHRSxHQUFsQixHQUF3QkgsR0FBRyxHQUFHRSxHQUE5QixHQUFvQ0osR0FBRyxHQUFHTSxHQUFwRDtBQUNBLFNBQUtsSCxFQUFMLEdBQVU4RyxHQUFHLEdBQUdLLEdBQU4sR0FBWUosR0FBRyxHQUFHRyxHQUFsQixHQUF3Qk4sR0FBRyxHQUFHSyxHQUE5QixHQUFvQ0osR0FBRyxHQUFHRyxHQUFwRDtBQUNBLFNBQUsvRyxFQUFMLEdBQVU4RyxHQUFHLEdBQUdJLEdBQU4sR0FBWVAsR0FBRyxHQUFHSSxHQUFsQixHQUF3QkgsR0FBRyxHQUFHSSxHQUE5QixHQUFvQ0gsR0FBRyxHQUFHSSxHQUFwRDs7QUFFQSxTQUFLdEUsaUJBQUw7O0FBRUEsV0FBTyxJQUFQO0FBRUEsR0FqV21DO0FBbVdwQ3ZDLEVBQUFBLEtBQUssRUFBRSxVQUFXRSxFQUFYLEVBQWVFLENBQWYsRUFBbUI7QUFFekIsUUFBS0EsQ0FBQyxLQUFLLENBQVgsRUFBZSxPQUFPLElBQVA7QUFDZixRQUFLQSxDQUFDLEtBQUssQ0FBWCxFQUFlLE9BQU8sS0FBS0MsSUFBTCxDQUFXSCxFQUFYLENBQVA7QUFFZixRQUFJYixDQUFDLEdBQUcsS0FBS0ksRUFBYjtBQUFBLFFBQWlCSCxDQUFDLEdBQUcsS0FBS0ksRUFBMUI7QUFBQSxRQUE4QkgsQ0FBQyxHQUFHLEtBQUtJLEVBQXZDO0FBQUEsUUFBMkNILENBQUMsR0FBRyxLQUFLSSxFQUFwRCxDQUx5QixDQU96Qjs7QUFFQSxRQUFJbUgsWUFBWSxHQUFHdkgsQ0FBQyxHQUFHVSxFQUFFLENBQUNOLEVBQVAsR0FBWVAsQ0FBQyxHQUFHYSxFQUFFLENBQUNULEVBQW5CLEdBQXdCSCxDQUFDLEdBQUdZLEVBQUUsQ0FBQ1IsRUFBL0IsR0FBb0NILENBQUMsR0FBR1csRUFBRSxDQUFDUCxFQUE5RDs7QUFFQSxRQUFLb0gsWUFBWSxHQUFHLENBQXBCLEVBQXdCO0FBRXZCLFdBQUtuSCxFQUFMLEdBQVUsQ0FBRU0sRUFBRSxDQUFDTixFQUFmO0FBQ0EsV0FBS0gsRUFBTCxHQUFVLENBQUVTLEVBQUUsQ0FBQ1QsRUFBZjtBQUNBLFdBQUtDLEVBQUwsR0FBVSxDQUFFUSxFQUFFLENBQUNSLEVBQWY7QUFDQSxXQUFLQyxFQUFMLEdBQVUsQ0FBRU8sRUFBRSxDQUFDUCxFQUFmO0FBRUFvSCxNQUFBQSxZQUFZLEdBQUcsQ0FBRUEsWUFBakI7QUFFQSxLQVRELE1BU087QUFFTixXQUFLMUcsSUFBTCxDQUFXSCxFQUFYO0FBRUE7O0FBRUQsUUFBSzZHLFlBQVksSUFBSSxHQUFyQixFQUEyQjtBQUUxQixXQUFLbkgsRUFBTCxHQUFVSixDQUFWO0FBQ0EsV0FBS0MsRUFBTCxHQUFVSixDQUFWO0FBQ0EsV0FBS0ssRUFBTCxHQUFVSixDQUFWO0FBQ0EsV0FBS0ssRUFBTCxHQUFVSixDQUFWO0FBRUEsYUFBTyxJQUFQO0FBRUE7O0FBRUQsUUFBSXlILGVBQWUsR0FBRyxNQUFNRCxZQUFZLEdBQUdBLFlBQTNDOztBQUVBLFFBQUtDLGVBQWUsSUFBSXZGLE1BQU0sQ0FBQ0MsT0FBL0IsRUFBeUM7QUFFeEMsVUFBSUwsQ0FBQyxHQUFHLElBQUlqQixDQUFaO0FBQ0EsV0FBS1IsRUFBTCxHQUFVeUIsQ0FBQyxHQUFHN0IsQ0FBSixHQUFRWSxDQUFDLEdBQUcsS0FBS1IsRUFBM0I7QUFDQSxXQUFLSCxFQUFMLEdBQVU0QixDQUFDLEdBQUdoQyxDQUFKLEdBQVFlLENBQUMsR0FBRyxLQUFLWCxFQUEzQjtBQUNBLFdBQUtDLEVBQUwsR0FBVTJCLENBQUMsR0FBRy9CLENBQUosR0FBUWMsQ0FBQyxHQUFHLEtBQUtWLEVBQTNCO0FBQ0EsV0FBS0MsRUFBTCxHQUFVMEIsQ0FBQyxHQUFHOUIsQ0FBSixHQUFRYSxDQUFDLEdBQUcsS0FBS1QsRUFBM0I7QUFFQSxXQUFLc0YsU0FBTDs7QUFDQSxXQUFLMUMsaUJBQUw7O0FBRUEsYUFBTyxJQUFQO0FBRUE7O0FBRUQsUUFBSTBFLFlBQVksR0FBR3JGLElBQUksQ0FBQ0MsSUFBTCxDQUFXbUYsZUFBWCxDQUFuQjtBQUNBLFFBQUlFLFNBQVMsR0FBR3RGLElBQUksQ0FBQ0csS0FBTCxDQUFZa0YsWUFBWixFQUEwQkYsWUFBMUIsQ0FBaEI7QUFDQSxRQUFJSSxNQUFNLEdBQUd2RixJQUFJLENBQUNELEdBQUwsQ0FBVSxDQUFFLElBQUl2QixDQUFOLElBQVk4RyxTQUF0QixJQUFvQ0QsWUFBakQ7QUFBQSxRQUNDRyxNQUFNLEdBQUd4RixJQUFJLENBQUNELEdBQUwsQ0FBVXZCLENBQUMsR0FBRzhHLFNBQWQsSUFBNEJELFlBRHRDO0FBR0EsU0FBS3JILEVBQUwsR0FBWUosQ0FBQyxHQUFHMkgsTUFBSixHQUFhLEtBQUt2SCxFQUFMLEdBQVV3SCxNQUFuQztBQUNBLFNBQUszSCxFQUFMLEdBQVlKLENBQUMsR0FBRzhILE1BQUosR0FBYSxLQUFLMUgsRUFBTCxHQUFVMkgsTUFBbkM7QUFDQSxTQUFLMUgsRUFBTCxHQUFZSixDQUFDLEdBQUc2SCxNQUFKLEdBQWEsS0FBS3pILEVBQUwsR0FBVTBILE1BQW5DO0FBQ0EsU0FBS3pILEVBQUwsR0FBWUosQ0FBQyxHQUFHNEgsTUFBSixHQUFhLEtBQUt4SCxFQUFMLEdBQVV5SCxNQUFuQzs7QUFFQSxTQUFLN0UsaUJBQUw7O0FBRUEsV0FBTyxJQUFQO0FBRUEsR0F2YW1DO0FBeWFwQzhFLEVBQUFBLE1BQU0sRUFBRSxVQUFXMUUsVUFBWCxFQUF3QjtBQUUvQixXQUFTQSxVQUFVLENBQUNsRCxFQUFYLEtBQWtCLEtBQUtBLEVBQXpCLElBQW1Da0QsVUFBVSxDQUFDakQsRUFBWCxLQUFrQixLQUFLQSxFQUExRCxJQUFvRWlELFVBQVUsQ0FBQ2hELEVBQVgsS0FBa0IsS0FBS0EsRUFBM0YsSUFBcUdnRCxVQUFVLENBQUMvQyxFQUFYLEtBQWtCLEtBQUtBLEVBQW5JO0FBRUEsR0E3YW1DO0FBK2FwQzBILEVBQUFBLFNBQVMsRUFBRSxVQUFXQyxLQUFYLEVBQWtCQyxNQUFsQixFQUEyQjtBQUVyQyxRQUFLQSxNQUFNLEtBQUszSCxTQUFoQixFQUE0QjJILE1BQU0sR0FBRyxDQUFUO0FBRTVCLFNBQUsvSCxFQUFMLEdBQVU4SCxLQUFLLENBQUVDLE1BQUYsQ0FBZjtBQUNBLFNBQUs5SCxFQUFMLEdBQVU2SCxLQUFLLENBQUVDLE1BQU0sR0FBRyxDQUFYLENBQWY7QUFDQSxTQUFLN0gsRUFBTCxHQUFVNEgsS0FBSyxDQUFFQyxNQUFNLEdBQUcsQ0FBWCxDQUFmO0FBQ0EsU0FBSzVILEVBQUwsR0FBVTJILEtBQUssQ0FBRUMsTUFBTSxHQUFHLENBQVgsQ0FBZjs7QUFFQSxTQUFLakYsaUJBQUw7O0FBRUEsV0FBTyxJQUFQO0FBRUEsR0E1Ym1DO0FBOGJwQ2tGLEVBQUFBLE9BQU8sRUFBRSxVQUFXRixLQUFYLEVBQWtCQyxNQUFsQixFQUEyQjtBQUVuQyxRQUFLRCxLQUFLLEtBQUsxSCxTQUFmLEVBQTJCMEgsS0FBSyxHQUFHLEVBQVI7QUFDM0IsUUFBS0MsTUFBTSxLQUFLM0gsU0FBaEIsRUFBNEIySCxNQUFNLEdBQUcsQ0FBVDtBQUU1QkQsSUFBQUEsS0FBSyxDQUFFQyxNQUFGLENBQUwsR0FBa0IsS0FBSy9ILEVBQXZCO0FBQ0E4SCxJQUFBQSxLQUFLLENBQUVDLE1BQU0sR0FBRyxDQUFYLENBQUwsR0FBc0IsS0FBSzlILEVBQTNCO0FBQ0E2SCxJQUFBQSxLQUFLLENBQUVDLE1BQU0sR0FBRyxDQUFYLENBQUwsR0FBc0IsS0FBSzdILEVBQTNCO0FBQ0E0SCxJQUFBQSxLQUFLLENBQUVDLE1BQU0sR0FBRyxDQUFYLENBQUwsR0FBc0IsS0FBSzVILEVBQTNCO0FBRUEsV0FBTzJILEtBQVA7QUFFQSxHQTFjbUM7QUE0Y3BDRyxFQUFBQSxTQUFTLEVBQUUsVUFBV0MsUUFBWCxFQUFzQjtBQUVoQyxTQUFLcEYsaUJBQUwsR0FBeUJvRixRQUF6QjtBQUVBLFdBQU8sSUFBUDtBQUVBLEdBbGRtQztBQW9kcENwRixFQUFBQSxpQkFBaUIsRUFBRSxZQUFZLENBQUU7QUFwZEcsQ0FBckM7QUF5ZEEsU0FBU25ELFVBQVQiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBhdXRob3IgbWlrYWVsIGVtdGluZ2VyIC8gaHR0cDovL2dvbW8uc2UvXG4gKiBAYXV0aG9yIGFsdGVyZWRxIC8gaHR0cDovL2FsdGVyZWRxdWFsaWEuY29tL1xuICogQGF1dGhvciBXZXN0TGFuZ2xleSAvIGh0dHA6Ly9naXRodWIuY29tL1dlc3RMYW5nbGV5XG4gKiBAYXV0aG9yIGJob3VzdG9uIC8gaHR0cDovL2NsYXJhLmlvXG4gKi9cblxuaW1wb3J0IHsgX01hdGggfSBmcm9tICcuL01hdGguanMnO1xuXG5mdW5jdGlvbiBRdWF0ZXJuaW9uKCB4LCB5LCB6LCB3ICkge1xuXG5cdHRoaXMuX3ggPSB4IHx8IDA7XG5cdHRoaXMuX3kgPSB5IHx8IDA7XG5cdHRoaXMuX3ogPSB6IHx8IDA7XG5cdHRoaXMuX3cgPSAoIHcgIT09IHVuZGVmaW5lZCApID8gdyA6IDE7XG5cbn1cblxuT2JqZWN0LmFzc2lnbiggUXVhdGVybmlvbiwge1xuXG5cdHNsZXJwOiBmdW5jdGlvbiAoIHFhLCBxYiwgcW0sIHQgKSB7XG5cblx0XHRyZXR1cm4gcW0uY29weSggcWEgKS5zbGVycCggcWIsIHQgKTtcblxuXHR9LFxuXG5cdHNsZXJwRmxhdDogZnVuY3Rpb24gKCBkc3QsIGRzdE9mZnNldCwgc3JjMCwgc3JjT2Zmc2V0MCwgc3JjMSwgc3JjT2Zmc2V0MSwgdCApIHtcblxuXHRcdC8vIGZ1enotZnJlZSwgYXJyYXktYmFzZWQgUXVhdGVybmlvbiBTTEVSUCBvcGVyYXRpb25cblxuXHRcdHZhciB4MCA9IHNyYzBbIHNyY09mZnNldDAgKyAwIF0sXG5cdFx0XHR5MCA9IHNyYzBbIHNyY09mZnNldDAgKyAxIF0sXG5cdFx0XHR6MCA9IHNyYzBbIHNyY09mZnNldDAgKyAyIF0sXG5cdFx0XHR3MCA9IHNyYzBbIHNyY09mZnNldDAgKyAzIF0sXG5cblx0XHRcdHgxID0gc3JjMVsgc3JjT2Zmc2V0MSArIDAgXSxcblx0XHRcdHkxID0gc3JjMVsgc3JjT2Zmc2V0MSArIDEgXSxcblx0XHRcdHoxID0gc3JjMVsgc3JjT2Zmc2V0MSArIDIgXSxcblx0XHRcdHcxID0gc3JjMVsgc3JjT2Zmc2V0MSArIDMgXTtcblxuXHRcdGlmICggdzAgIT09IHcxIHx8IHgwICE9PSB4MSB8fCB5MCAhPT0geTEgfHwgejAgIT09IHoxICkge1xuXG5cdFx0XHR2YXIgcyA9IDEgLSB0LFxuXG5cdFx0XHRcdGNvcyA9IHgwICogeDEgKyB5MCAqIHkxICsgejAgKiB6MSArIHcwICogdzEsXG5cblx0XHRcdFx0ZGlyID0gKCBjb3MgPj0gMCA/IDEgOiAtIDEgKSxcblx0XHRcdFx0c3FyU2luID0gMSAtIGNvcyAqIGNvcztcblxuXHRcdFx0Ly8gU2tpcCB0aGUgU2xlcnAgZm9yIHRpbnkgc3RlcHMgdG8gYXZvaWQgbnVtZXJpYyBwcm9ibGVtczpcblx0XHRcdGlmICggc3FyU2luID4gTnVtYmVyLkVQU0lMT04gKSB7XG5cblx0XHRcdFx0dmFyIHNpbiA9IE1hdGguc3FydCggc3FyU2luICksXG5cdFx0XHRcdFx0bGVuID0gTWF0aC5hdGFuMiggc2luLCBjb3MgKiBkaXIgKTtcblxuXHRcdFx0XHRzID0gTWF0aC5zaW4oIHMgKiBsZW4gKSAvIHNpbjtcblx0XHRcdFx0dCA9IE1hdGguc2luKCB0ICogbGVuICkgLyBzaW47XG5cblx0XHRcdH1cblxuXHRcdFx0dmFyIHREaXIgPSB0ICogZGlyO1xuXG5cdFx0XHR4MCA9IHgwICogcyArIHgxICogdERpcjtcblx0XHRcdHkwID0geTAgKiBzICsgeTEgKiB0RGlyO1xuXHRcdFx0ejAgPSB6MCAqIHMgKyB6MSAqIHREaXI7XG5cdFx0XHR3MCA9IHcwICogcyArIHcxICogdERpcjtcblxuXHRcdFx0Ly8gTm9ybWFsaXplIGluIGNhc2Ugd2UganVzdCBkaWQgYSBsZXJwOlxuXHRcdFx0aWYgKCBzID09PSAxIC0gdCApIHtcblxuXHRcdFx0XHR2YXIgZiA9IDEgLyBNYXRoLnNxcnQoIHgwICogeDAgKyB5MCAqIHkwICsgejAgKiB6MCArIHcwICogdzAgKTtcblxuXHRcdFx0XHR4MCAqPSBmO1xuXHRcdFx0XHR5MCAqPSBmO1xuXHRcdFx0XHR6MCAqPSBmO1xuXHRcdFx0XHR3MCAqPSBmO1xuXG5cdFx0XHR9XG5cblx0XHR9XG5cblx0XHRkc3RbIGRzdE9mZnNldCBdID0geDA7XG5cdFx0ZHN0WyBkc3RPZmZzZXQgKyAxIF0gPSB5MDtcblx0XHRkc3RbIGRzdE9mZnNldCArIDIgXSA9IHowO1xuXHRcdGRzdFsgZHN0T2Zmc2V0ICsgMyBdID0gdzA7XG5cblx0fVxuXG59ICk7XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKCBRdWF0ZXJuaW9uLnByb3RvdHlwZSwge1xuXG5cdHg6IHtcblxuXHRcdGdldDogZnVuY3Rpb24gKCkge1xuXG5cdFx0XHRyZXR1cm4gdGhpcy5feDtcblxuXHRcdH0sXG5cblx0XHRzZXQ6IGZ1bmN0aW9uICggdmFsdWUgKSB7XG5cblx0XHRcdHRoaXMuX3ggPSB2YWx1ZTtcblx0XHRcdHRoaXMuX29uQ2hhbmdlQ2FsbGJhY2soKTtcblxuXHRcdH1cblxuXHR9LFxuXG5cdHk6IHtcblxuXHRcdGdldDogZnVuY3Rpb24gKCkge1xuXG5cdFx0XHRyZXR1cm4gdGhpcy5feTtcblxuXHRcdH0sXG5cblx0XHRzZXQ6IGZ1bmN0aW9uICggdmFsdWUgKSB7XG5cblx0XHRcdHRoaXMuX3kgPSB2YWx1ZTtcblx0XHRcdHRoaXMuX29uQ2hhbmdlQ2FsbGJhY2soKTtcblxuXHRcdH1cblxuXHR9LFxuXG5cdHo6IHtcblxuXHRcdGdldDogZnVuY3Rpb24gKCkge1xuXG5cdFx0XHRyZXR1cm4gdGhpcy5fejtcblxuXHRcdH0sXG5cblx0XHRzZXQ6IGZ1bmN0aW9uICggdmFsdWUgKSB7XG5cblx0XHRcdHRoaXMuX3ogPSB2YWx1ZTtcblx0XHRcdHRoaXMuX29uQ2hhbmdlQ2FsbGJhY2soKTtcblxuXHRcdH1cblxuXHR9LFxuXG5cdHc6IHtcblxuXHRcdGdldDogZnVuY3Rpb24gKCkge1xuXG5cdFx0XHRyZXR1cm4gdGhpcy5fdztcblxuXHRcdH0sXG5cblx0XHRzZXQ6IGZ1bmN0aW9uICggdmFsdWUgKSB7XG5cblx0XHRcdHRoaXMuX3cgPSB2YWx1ZTtcblx0XHRcdHRoaXMuX29uQ2hhbmdlQ2FsbGJhY2soKTtcblxuXHRcdH1cblxuXHR9XG5cbn0gKTtcblxuT2JqZWN0LmFzc2lnbiggUXVhdGVybmlvbi5wcm90b3R5cGUsIHtcblxuXHRpc1F1YXRlcm5pb246IHRydWUsXG5cblx0c2V0OiBmdW5jdGlvbiAoIHgsIHksIHosIHcgKSB7XG5cblx0XHR0aGlzLl94ID0geDtcblx0XHR0aGlzLl95ID0geTtcblx0XHR0aGlzLl96ID0gejtcblx0XHR0aGlzLl93ID0gdztcblxuXHRcdHRoaXMuX29uQ2hhbmdlQ2FsbGJhY2soKTtcblxuXHRcdHJldHVybiB0aGlzO1xuXG5cdH0sXG5cblx0Y2xvbmU6IGZ1bmN0aW9uICgpIHtcblxuXHRcdHJldHVybiBuZXcgdGhpcy5jb25zdHJ1Y3RvciggdGhpcy5feCwgdGhpcy5feSwgdGhpcy5feiwgdGhpcy5fdyApO1xuXG5cdH0sXG5cblx0Y29weTogZnVuY3Rpb24gKCBxdWF0ZXJuaW9uICkge1xuXG5cdFx0dGhpcy5feCA9IHF1YXRlcm5pb24ueDtcblx0XHR0aGlzLl95ID0gcXVhdGVybmlvbi55O1xuXHRcdHRoaXMuX3ogPSBxdWF0ZXJuaW9uLno7XG5cdFx0dGhpcy5fdyA9IHF1YXRlcm5pb24udztcblxuXHRcdHRoaXMuX29uQ2hhbmdlQ2FsbGJhY2soKTtcblxuXHRcdHJldHVybiB0aGlzO1xuXG5cdH0sXG5cblx0c2V0RnJvbUV1bGVyOiBmdW5jdGlvbiAoIGV1bGVyLCB1cGRhdGUgKSB7XG5cblx0XHRpZiAoICEgKCBldWxlciAmJiBldWxlci5pc0V1bGVyICkgKSB7XG5cblx0XHRcdHRocm93IG5ldyBFcnJvciggJ1RIUkVFLlF1YXRlcm5pb246IC5zZXRGcm9tRXVsZXIoKSBub3cgZXhwZWN0cyBhbiBFdWxlciByb3RhdGlvbiByYXRoZXIgdGhhbiBhIFZlY3RvcjMgYW5kIG9yZGVyLicgKTtcblxuXHRcdH1cblxuXHRcdHZhciB4ID0gZXVsZXIuX3gsIHkgPSBldWxlci5feSwgeiA9IGV1bGVyLl96LCBvcmRlciA9IGV1bGVyLm9yZGVyO1xuXG5cdFx0Ly8gaHR0cDovL3d3dy5tYXRod29ya3MuY29tL21hdGxhYmNlbnRyYWwvZmlsZWV4Y2hhbmdlL1xuXHRcdC8vIFx0MjA2OTYtZnVuY3Rpb24tdG8tY29udmVydC1iZXR3ZWVuLWRjbS1ldWxlci1hbmdsZXMtcXVhdGVybmlvbnMtYW5kLWV1bGVyLXZlY3RvcnMvXG5cdFx0Ly9cdGNvbnRlbnQvU3BpbkNhbGMubVxuXG5cdFx0dmFyIGNvcyA9IE1hdGguY29zO1xuXHRcdHZhciBzaW4gPSBNYXRoLnNpbjtcblxuXHRcdHZhciBjMSA9IGNvcyggeCAvIDIgKTtcblx0XHR2YXIgYzIgPSBjb3MoIHkgLyAyICk7XG5cdFx0dmFyIGMzID0gY29zKCB6IC8gMiApO1xuXG5cdFx0dmFyIHMxID0gc2luKCB4IC8gMiApO1xuXHRcdHZhciBzMiA9IHNpbiggeSAvIDIgKTtcblx0XHR2YXIgczMgPSBzaW4oIHogLyAyICk7XG5cblx0XHRpZiAoIG9yZGVyID09PSAnWFlaJyApIHtcblxuXHRcdFx0dGhpcy5feCA9IHMxICogYzIgKiBjMyArIGMxICogczIgKiBzMztcblx0XHRcdHRoaXMuX3kgPSBjMSAqIHMyICogYzMgLSBzMSAqIGMyICogczM7XG5cdFx0XHR0aGlzLl96ID0gYzEgKiBjMiAqIHMzICsgczEgKiBzMiAqIGMzO1xuXHRcdFx0dGhpcy5fdyA9IGMxICogYzIgKiBjMyAtIHMxICogczIgKiBzMztcblxuXHRcdH0gZWxzZSBpZiAoIG9yZGVyID09PSAnWVhaJyApIHtcblxuXHRcdFx0dGhpcy5feCA9IHMxICogYzIgKiBjMyArIGMxICogczIgKiBzMztcblx0XHRcdHRoaXMuX3kgPSBjMSAqIHMyICogYzMgLSBzMSAqIGMyICogczM7XG5cdFx0XHR0aGlzLl96ID0gYzEgKiBjMiAqIHMzIC0gczEgKiBzMiAqIGMzO1xuXHRcdFx0dGhpcy5fdyA9IGMxICogYzIgKiBjMyArIHMxICogczIgKiBzMztcblxuXHRcdH0gZWxzZSBpZiAoIG9yZGVyID09PSAnWlhZJyApIHtcblxuXHRcdFx0dGhpcy5feCA9IHMxICogYzIgKiBjMyAtIGMxICogczIgKiBzMztcblx0XHRcdHRoaXMuX3kgPSBjMSAqIHMyICogYzMgKyBzMSAqIGMyICogczM7XG5cdFx0XHR0aGlzLl96ID0gYzEgKiBjMiAqIHMzICsgczEgKiBzMiAqIGMzO1xuXHRcdFx0dGhpcy5fdyA9IGMxICogYzIgKiBjMyAtIHMxICogczIgKiBzMztcblxuXHRcdH0gZWxzZSBpZiAoIG9yZGVyID09PSAnWllYJyApIHtcblxuXHRcdFx0dGhpcy5feCA9IHMxICogYzIgKiBjMyAtIGMxICogczIgKiBzMztcblx0XHRcdHRoaXMuX3kgPSBjMSAqIHMyICogYzMgKyBzMSAqIGMyICogczM7XG5cdFx0XHR0aGlzLl96ID0gYzEgKiBjMiAqIHMzIC0gczEgKiBzMiAqIGMzO1xuXHRcdFx0dGhpcy5fdyA9IGMxICogYzIgKiBjMyArIHMxICogczIgKiBzMztcblxuXHRcdH0gZWxzZSBpZiAoIG9yZGVyID09PSAnWVpYJyApIHtcblxuXHRcdFx0dGhpcy5feCA9IHMxICogYzIgKiBjMyArIGMxICogczIgKiBzMztcblx0XHRcdHRoaXMuX3kgPSBjMSAqIHMyICogYzMgKyBzMSAqIGMyICogczM7XG5cdFx0XHR0aGlzLl96ID0gYzEgKiBjMiAqIHMzIC0gczEgKiBzMiAqIGMzO1xuXHRcdFx0dGhpcy5fdyA9IGMxICogYzIgKiBjMyAtIHMxICogczIgKiBzMztcblxuXHRcdH0gZWxzZSBpZiAoIG9yZGVyID09PSAnWFpZJyApIHtcblxuXHRcdFx0dGhpcy5feCA9IHMxICogYzIgKiBjMyAtIGMxICogczIgKiBzMztcblx0XHRcdHRoaXMuX3kgPSBjMSAqIHMyICogYzMgLSBzMSAqIGMyICogczM7XG5cdFx0XHR0aGlzLl96ID0gYzEgKiBjMiAqIHMzICsgczEgKiBzMiAqIGMzO1xuXHRcdFx0dGhpcy5fdyA9IGMxICogYzIgKiBjMyArIHMxICogczIgKiBzMztcblxuXHRcdH1cblxuXHRcdGlmICggdXBkYXRlICE9PSBmYWxzZSApIHRoaXMuX29uQ2hhbmdlQ2FsbGJhY2soKTtcblxuXHRcdHJldHVybiB0aGlzO1xuXG5cdH0sXG5cblx0c2V0RnJvbUF4aXNBbmdsZTogZnVuY3Rpb24gKCBheGlzLCBhbmdsZSApIHtcblxuXHRcdC8vIGh0dHA6Ly93d3cuZXVjbGlkZWFuc3BhY2UuY29tL21hdGhzL2dlb21ldHJ5L3JvdGF0aW9ucy9jb252ZXJzaW9ucy9hbmdsZVRvUXVhdGVybmlvbi9pbmRleC5odG1cblxuXHRcdC8vIGFzc3VtZXMgYXhpcyBpcyBub3JtYWxpemVkXG5cblx0XHR2YXIgaGFsZkFuZ2xlID0gYW5nbGUgLyAyLCBzID0gTWF0aC5zaW4oIGhhbGZBbmdsZSApO1xuXG5cdFx0dGhpcy5feCA9IGF4aXMueCAqIHM7XG5cdFx0dGhpcy5feSA9IGF4aXMueSAqIHM7XG5cdFx0dGhpcy5feiA9IGF4aXMueiAqIHM7XG5cdFx0dGhpcy5fdyA9IE1hdGguY29zKCBoYWxmQW5nbGUgKTtcblxuXHRcdHRoaXMuX29uQ2hhbmdlQ2FsbGJhY2soKTtcblxuXHRcdHJldHVybiB0aGlzO1xuXG5cdH0sXG5cblx0c2V0RnJvbVJvdGF0aW9uTWF0cml4OiBmdW5jdGlvbiAoIG0gKSB7XG5cblx0XHQvLyBodHRwOi8vd3d3LmV1Y2xpZGVhbnNwYWNlLmNvbS9tYXRocy9nZW9tZXRyeS9yb3RhdGlvbnMvY29udmVyc2lvbnMvbWF0cml4VG9RdWF0ZXJuaW9uL2luZGV4Lmh0bVxuXG5cdFx0Ly8gYXNzdW1lcyB0aGUgdXBwZXIgM3gzIG9mIG0gaXMgYSBwdXJlIHJvdGF0aW9uIG1hdHJpeCAoaS5lLCB1bnNjYWxlZClcblxuXHRcdHZhciB0ZSA9IG0uZWxlbWVudHMsXG5cblx0XHRcdG0xMSA9IHRlWyAwIF0sIG0xMiA9IHRlWyA0IF0sIG0xMyA9IHRlWyA4IF0sXG5cdFx0XHRtMjEgPSB0ZVsgMSBdLCBtMjIgPSB0ZVsgNSBdLCBtMjMgPSB0ZVsgOSBdLFxuXHRcdFx0bTMxID0gdGVbIDIgXSwgbTMyID0gdGVbIDYgXSwgbTMzID0gdGVbIDEwIF0sXG5cblx0XHRcdHRyYWNlID0gbTExICsgbTIyICsgbTMzLFxuXHRcdFx0cztcblxuXHRcdGlmICggdHJhY2UgPiAwICkge1xuXG5cdFx0XHRzID0gMC41IC8gTWF0aC5zcXJ0KCB0cmFjZSArIDEuMCApO1xuXG5cdFx0XHR0aGlzLl93ID0gMC4yNSAvIHM7XG5cdFx0XHR0aGlzLl94ID0gKCBtMzIgLSBtMjMgKSAqIHM7XG5cdFx0XHR0aGlzLl95ID0gKCBtMTMgLSBtMzEgKSAqIHM7XG5cdFx0XHR0aGlzLl96ID0gKCBtMjEgLSBtMTIgKSAqIHM7XG5cblx0XHR9IGVsc2UgaWYgKCBtMTEgPiBtMjIgJiYgbTExID4gbTMzICkge1xuXG5cdFx0XHRzID0gMi4wICogTWF0aC5zcXJ0KCAxLjAgKyBtMTEgLSBtMjIgLSBtMzMgKTtcblxuXHRcdFx0dGhpcy5fdyA9ICggbTMyIC0gbTIzICkgLyBzO1xuXHRcdFx0dGhpcy5feCA9IDAuMjUgKiBzO1xuXHRcdFx0dGhpcy5feSA9ICggbTEyICsgbTIxICkgLyBzO1xuXHRcdFx0dGhpcy5feiA9ICggbTEzICsgbTMxICkgLyBzO1xuXG5cdFx0fSBlbHNlIGlmICggbTIyID4gbTMzICkge1xuXG5cdFx0XHRzID0gMi4wICogTWF0aC5zcXJ0KCAxLjAgKyBtMjIgLSBtMTEgLSBtMzMgKTtcblxuXHRcdFx0dGhpcy5fdyA9ICggbTEzIC0gbTMxICkgLyBzO1xuXHRcdFx0dGhpcy5feCA9ICggbTEyICsgbTIxICkgLyBzO1xuXHRcdFx0dGhpcy5feSA9IDAuMjUgKiBzO1xuXHRcdFx0dGhpcy5feiA9ICggbTIzICsgbTMyICkgLyBzO1xuXG5cdFx0fSBlbHNlIHtcblxuXHRcdFx0cyA9IDIuMCAqIE1hdGguc3FydCggMS4wICsgbTMzIC0gbTExIC0gbTIyICk7XG5cblx0XHRcdHRoaXMuX3cgPSAoIG0yMSAtIG0xMiApIC8gcztcblx0XHRcdHRoaXMuX3ggPSAoIG0xMyArIG0zMSApIC8gcztcblx0XHRcdHRoaXMuX3kgPSAoIG0yMyArIG0zMiApIC8gcztcblx0XHRcdHRoaXMuX3ogPSAwLjI1ICogcztcblxuXHRcdH1cblxuXHRcdHRoaXMuX29uQ2hhbmdlQ2FsbGJhY2soKTtcblxuXHRcdHJldHVybiB0aGlzO1xuXG5cdH0sXG5cblx0c2V0RnJvbVVuaXRWZWN0b3JzOiBmdW5jdGlvbiAoIHZGcm9tLCB2VG8gKSB7XG5cblx0XHQvLyBhc3N1bWVzIGRpcmVjdGlvbiB2ZWN0b3JzIHZGcm9tIGFuZCB2VG8gYXJlIG5vcm1hbGl6ZWRcblxuXHRcdHZhciBFUFMgPSAwLjAwMDAwMTtcblxuXHRcdHZhciByID0gdkZyb20uZG90KCB2VG8gKSArIDE7XG5cblx0XHRpZiAoIHIgPCBFUFMgKSB7XG5cblx0XHRcdHIgPSAwO1xuXG5cdFx0XHRpZiAoIE1hdGguYWJzKCB2RnJvbS54ICkgPiBNYXRoLmFicyggdkZyb20ueiApICkge1xuXG5cdFx0XHRcdHRoaXMuX3ggPSAtIHZGcm9tLnk7XG5cdFx0XHRcdHRoaXMuX3kgPSB2RnJvbS54O1xuXHRcdFx0XHR0aGlzLl96ID0gMDtcblx0XHRcdFx0dGhpcy5fdyA9IHI7XG5cblx0XHRcdH0gZWxzZSB7XG5cblx0XHRcdFx0dGhpcy5feCA9IDA7XG5cdFx0XHRcdHRoaXMuX3kgPSAtIHZGcm9tLno7XG5cdFx0XHRcdHRoaXMuX3ogPSB2RnJvbS55O1xuXHRcdFx0XHR0aGlzLl93ID0gcjtcblxuXHRcdFx0fVxuXG5cdFx0fSBlbHNlIHtcblxuXHRcdFx0Ly8gY3Jvc3NWZWN0b3JzKCB2RnJvbSwgdlRvICk7IC8vIGlubGluZWQgdG8gYXZvaWQgY3ljbGljIGRlcGVuZGVuY3kgb24gVmVjdG9yM1xuXG5cdFx0XHR0aGlzLl94ID0gdkZyb20ueSAqIHZUby56IC0gdkZyb20ueiAqIHZUby55O1xuXHRcdFx0dGhpcy5feSA9IHZGcm9tLnogKiB2VG8ueCAtIHZGcm9tLnggKiB2VG8uejtcblx0XHRcdHRoaXMuX3ogPSB2RnJvbS54ICogdlRvLnkgLSB2RnJvbS55ICogdlRvLng7XG5cdFx0XHR0aGlzLl93ID0gcjtcblxuXHRcdH1cblxuXHRcdHJldHVybiB0aGlzLm5vcm1hbGl6ZSgpO1xuXG5cdH0sXG5cblx0YW5nbGVUbzogZnVuY3Rpb24gKCBxICkge1xuXG5cdFx0cmV0dXJuIDIgKiBNYXRoLmFjb3MoIE1hdGguYWJzKCBfTWF0aC5jbGFtcCggdGhpcy5kb3QoIHEgKSwgLSAxLCAxICkgKSApO1xuXG5cdH0sXG5cblx0cm90YXRlVG93YXJkczogZnVuY3Rpb24gKCBxLCBzdGVwICkge1xuXG5cdFx0dmFyIGFuZ2xlID0gdGhpcy5hbmdsZVRvKCBxICk7XG5cblx0XHRpZiAoIGFuZ2xlID09PSAwICkgcmV0dXJuIHRoaXM7XG5cblx0XHR2YXIgdCA9IE1hdGgubWluKCAxLCBzdGVwIC8gYW5nbGUgKTtcblxuXHRcdHRoaXMuc2xlcnAoIHEsIHQgKTtcblxuXHRcdHJldHVybiB0aGlzO1xuXG5cdH0sXG5cblx0aW52ZXJzZTogZnVuY3Rpb24gKCkge1xuXG5cdFx0Ly8gcXVhdGVybmlvbiBpcyBhc3N1bWVkIHRvIGhhdmUgdW5pdCBsZW5ndGhcblxuXHRcdHJldHVybiB0aGlzLmNvbmp1Z2F0ZSgpO1xuXG5cdH0sXG5cblx0Y29uanVnYXRlOiBmdW5jdGlvbiAoKSB7XG5cblx0XHR0aGlzLl94ICo9IC0gMTtcblx0XHR0aGlzLl95ICo9IC0gMTtcblx0XHR0aGlzLl96ICo9IC0gMTtcblxuXHRcdHRoaXMuX29uQ2hhbmdlQ2FsbGJhY2soKTtcblxuXHRcdHJldHVybiB0aGlzO1xuXG5cdH0sXG5cblx0ZG90OiBmdW5jdGlvbiAoIHYgKSB7XG5cblx0XHRyZXR1cm4gdGhpcy5feCAqIHYuX3ggKyB0aGlzLl95ICogdi5feSArIHRoaXMuX3ogKiB2Ll96ICsgdGhpcy5fdyAqIHYuX3c7XG5cblx0fSxcblxuXHRsZW5ndGhTcTogZnVuY3Rpb24gKCkge1xuXG5cdFx0cmV0dXJuIHRoaXMuX3ggKiB0aGlzLl94ICsgdGhpcy5feSAqIHRoaXMuX3kgKyB0aGlzLl96ICogdGhpcy5feiArIHRoaXMuX3cgKiB0aGlzLl93O1xuXG5cdH0sXG5cblx0bGVuZ3RoOiBmdW5jdGlvbiAoKSB7XG5cblx0XHRyZXR1cm4gTWF0aC5zcXJ0KCB0aGlzLl94ICogdGhpcy5feCArIHRoaXMuX3kgKiB0aGlzLl95ICsgdGhpcy5feiAqIHRoaXMuX3ogKyB0aGlzLl93ICogdGhpcy5fdyApO1xuXG5cdH0sXG5cblx0bm9ybWFsaXplOiBmdW5jdGlvbiAoKSB7XG5cblx0XHR2YXIgbCA9IHRoaXMubGVuZ3RoKCk7XG5cblx0XHRpZiAoIGwgPT09IDAgKSB7XG5cblx0XHRcdHRoaXMuX3ggPSAwO1xuXHRcdFx0dGhpcy5feSA9IDA7XG5cdFx0XHR0aGlzLl96ID0gMDtcblx0XHRcdHRoaXMuX3cgPSAxO1xuXG5cdFx0fSBlbHNlIHtcblxuXHRcdFx0bCA9IDEgLyBsO1xuXG5cdFx0XHR0aGlzLl94ID0gdGhpcy5feCAqIGw7XG5cdFx0XHR0aGlzLl95ID0gdGhpcy5feSAqIGw7XG5cdFx0XHR0aGlzLl96ID0gdGhpcy5feiAqIGw7XG5cdFx0XHR0aGlzLl93ID0gdGhpcy5fdyAqIGw7XG5cblx0XHR9XG5cblx0XHR0aGlzLl9vbkNoYW5nZUNhbGxiYWNrKCk7XG5cblx0XHRyZXR1cm4gdGhpcztcblxuXHR9LFxuXG5cdG11bHRpcGx5OiBmdW5jdGlvbiAoIHEsIHAgKSB7XG5cblx0XHRpZiAoIHAgIT09IHVuZGVmaW5lZCApIHtcblxuXHRcdFx0Y29uc29sZS53YXJuKCAnVEhSRUUuUXVhdGVybmlvbjogLm11bHRpcGx5KCkgbm93IG9ubHkgYWNjZXB0cyBvbmUgYXJndW1lbnQuIFVzZSAubXVsdGlwbHlRdWF0ZXJuaW9ucyggYSwgYiApIGluc3RlYWQuJyApO1xuXHRcdFx0cmV0dXJuIHRoaXMubXVsdGlwbHlRdWF0ZXJuaW9ucyggcSwgcCApO1xuXG5cdFx0fVxuXG5cdFx0cmV0dXJuIHRoaXMubXVsdGlwbHlRdWF0ZXJuaW9ucyggdGhpcywgcSApO1xuXG5cdH0sXG5cblx0cHJlbXVsdGlwbHk6IGZ1bmN0aW9uICggcSApIHtcblxuXHRcdHJldHVybiB0aGlzLm11bHRpcGx5UXVhdGVybmlvbnMoIHEsIHRoaXMgKTtcblxuXHR9LFxuXG5cdG11bHRpcGx5UXVhdGVybmlvbnM6IGZ1bmN0aW9uICggYSwgYiApIHtcblxuXHRcdC8vIGZyb20gaHR0cDovL3d3dy5ldWNsaWRlYW5zcGFjZS5jb20vbWF0aHMvYWxnZWJyYS9yZWFsTm9ybWVkQWxnZWJyYS9xdWF0ZXJuaW9ucy9jb2RlL2luZGV4Lmh0bVxuXG5cdFx0dmFyIHFheCA9IGEuX3gsIHFheSA9IGEuX3ksIHFheiA9IGEuX3osIHFhdyA9IGEuX3c7XG5cdFx0dmFyIHFieCA9IGIuX3gsIHFieSA9IGIuX3ksIHFieiA9IGIuX3osIHFidyA9IGIuX3c7XG5cblx0XHR0aGlzLl94ID0gcWF4ICogcWJ3ICsgcWF3ICogcWJ4ICsgcWF5ICogcWJ6IC0gcWF6ICogcWJ5O1xuXHRcdHRoaXMuX3kgPSBxYXkgKiBxYncgKyBxYXcgKiBxYnkgKyBxYXogKiBxYnggLSBxYXggKiBxYno7XG5cdFx0dGhpcy5feiA9IHFheiAqIHFidyArIHFhdyAqIHFieiArIHFheCAqIHFieSAtIHFheSAqIHFieDtcblx0XHR0aGlzLl93ID0gcWF3ICogcWJ3IC0gcWF4ICogcWJ4IC0gcWF5ICogcWJ5IC0gcWF6ICogcWJ6O1xuXG5cdFx0dGhpcy5fb25DaGFuZ2VDYWxsYmFjaygpO1xuXG5cdFx0cmV0dXJuIHRoaXM7XG5cblx0fSxcblxuXHRzbGVycDogZnVuY3Rpb24gKCBxYiwgdCApIHtcblxuXHRcdGlmICggdCA9PT0gMCApIHJldHVybiB0aGlzO1xuXHRcdGlmICggdCA9PT0gMSApIHJldHVybiB0aGlzLmNvcHkoIHFiICk7XG5cblx0XHR2YXIgeCA9IHRoaXMuX3gsIHkgPSB0aGlzLl95LCB6ID0gdGhpcy5feiwgdyA9IHRoaXMuX3c7XG5cblx0XHQvLyBodHRwOi8vd3d3LmV1Y2xpZGVhbnNwYWNlLmNvbS9tYXRocy9hbGdlYnJhL3JlYWxOb3JtZWRBbGdlYnJhL3F1YXRlcm5pb25zL3NsZXJwL1xuXG5cdFx0dmFyIGNvc0hhbGZUaGV0YSA9IHcgKiBxYi5fdyArIHggKiBxYi5feCArIHkgKiBxYi5feSArIHogKiBxYi5fejtcblxuXHRcdGlmICggY29zSGFsZlRoZXRhIDwgMCApIHtcblxuXHRcdFx0dGhpcy5fdyA9IC0gcWIuX3c7XG5cdFx0XHR0aGlzLl94ID0gLSBxYi5feDtcblx0XHRcdHRoaXMuX3kgPSAtIHFiLl95O1xuXHRcdFx0dGhpcy5feiA9IC0gcWIuX3o7XG5cblx0XHRcdGNvc0hhbGZUaGV0YSA9IC0gY29zSGFsZlRoZXRhO1xuXG5cdFx0fSBlbHNlIHtcblxuXHRcdFx0dGhpcy5jb3B5KCBxYiApO1xuXG5cdFx0fVxuXG5cdFx0aWYgKCBjb3NIYWxmVGhldGEgPj0gMS4wICkge1xuXG5cdFx0XHR0aGlzLl93ID0gdztcblx0XHRcdHRoaXMuX3ggPSB4O1xuXHRcdFx0dGhpcy5feSA9IHk7XG5cdFx0XHR0aGlzLl96ID0gejtcblxuXHRcdFx0cmV0dXJuIHRoaXM7XG5cblx0XHR9XG5cblx0XHR2YXIgc3FyU2luSGFsZlRoZXRhID0gMS4wIC0gY29zSGFsZlRoZXRhICogY29zSGFsZlRoZXRhO1xuXG5cdFx0aWYgKCBzcXJTaW5IYWxmVGhldGEgPD0gTnVtYmVyLkVQU0lMT04gKSB7XG5cblx0XHRcdHZhciBzID0gMSAtIHQ7XG5cdFx0XHR0aGlzLl93ID0gcyAqIHcgKyB0ICogdGhpcy5fdztcblx0XHRcdHRoaXMuX3ggPSBzICogeCArIHQgKiB0aGlzLl94O1xuXHRcdFx0dGhpcy5feSA9IHMgKiB5ICsgdCAqIHRoaXMuX3k7XG5cdFx0XHR0aGlzLl96ID0gcyAqIHogKyB0ICogdGhpcy5fejtcblxuXHRcdFx0dGhpcy5ub3JtYWxpemUoKTtcblx0XHRcdHRoaXMuX29uQ2hhbmdlQ2FsbGJhY2soKTtcblxuXHRcdFx0cmV0dXJuIHRoaXM7XG5cblx0XHR9XG5cblx0XHR2YXIgc2luSGFsZlRoZXRhID0gTWF0aC5zcXJ0KCBzcXJTaW5IYWxmVGhldGEgKTtcblx0XHR2YXIgaGFsZlRoZXRhID0gTWF0aC5hdGFuMiggc2luSGFsZlRoZXRhLCBjb3NIYWxmVGhldGEgKTtcblx0XHR2YXIgcmF0aW9BID0gTWF0aC5zaW4oICggMSAtIHQgKSAqIGhhbGZUaGV0YSApIC8gc2luSGFsZlRoZXRhLFxuXHRcdFx0cmF0aW9CID0gTWF0aC5zaW4oIHQgKiBoYWxmVGhldGEgKSAvIHNpbkhhbGZUaGV0YTtcblxuXHRcdHRoaXMuX3cgPSAoIHcgKiByYXRpb0EgKyB0aGlzLl93ICogcmF0aW9CICk7XG5cdFx0dGhpcy5feCA9ICggeCAqIHJhdGlvQSArIHRoaXMuX3ggKiByYXRpb0IgKTtcblx0XHR0aGlzLl95ID0gKCB5ICogcmF0aW9BICsgdGhpcy5feSAqIHJhdGlvQiApO1xuXHRcdHRoaXMuX3ogPSAoIHogKiByYXRpb0EgKyB0aGlzLl96ICogcmF0aW9CICk7XG5cblx0XHR0aGlzLl9vbkNoYW5nZUNhbGxiYWNrKCk7XG5cblx0XHRyZXR1cm4gdGhpcztcblxuXHR9LFxuXG5cdGVxdWFsczogZnVuY3Rpb24gKCBxdWF0ZXJuaW9uICkge1xuXG5cdFx0cmV0dXJuICggcXVhdGVybmlvbi5feCA9PT0gdGhpcy5feCApICYmICggcXVhdGVybmlvbi5feSA9PT0gdGhpcy5feSApICYmICggcXVhdGVybmlvbi5feiA9PT0gdGhpcy5feiApICYmICggcXVhdGVybmlvbi5fdyA9PT0gdGhpcy5fdyApO1xuXG5cdH0sXG5cblx0ZnJvbUFycmF5OiBmdW5jdGlvbiAoIGFycmF5LCBvZmZzZXQgKSB7XG5cblx0XHRpZiAoIG9mZnNldCA9PT0gdW5kZWZpbmVkICkgb2Zmc2V0ID0gMDtcblxuXHRcdHRoaXMuX3ggPSBhcnJheVsgb2Zmc2V0IF07XG5cdFx0dGhpcy5feSA9IGFycmF5WyBvZmZzZXQgKyAxIF07XG5cdFx0dGhpcy5feiA9IGFycmF5WyBvZmZzZXQgKyAyIF07XG5cdFx0dGhpcy5fdyA9IGFycmF5WyBvZmZzZXQgKyAzIF07XG5cblx0XHR0aGlzLl9vbkNoYW5nZUNhbGxiYWNrKCk7XG5cblx0XHRyZXR1cm4gdGhpcztcblxuXHR9LFxuXG5cdHRvQXJyYXk6IGZ1bmN0aW9uICggYXJyYXksIG9mZnNldCApIHtcblxuXHRcdGlmICggYXJyYXkgPT09IHVuZGVmaW5lZCApIGFycmF5ID0gW107XG5cdFx0aWYgKCBvZmZzZXQgPT09IHVuZGVmaW5lZCApIG9mZnNldCA9IDA7XG5cblx0XHRhcnJheVsgb2Zmc2V0IF0gPSB0aGlzLl94O1xuXHRcdGFycmF5WyBvZmZzZXQgKyAxIF0gPSB0aGlzLl95O1xuXHRcdGFycmF5WyBvZmZzZXQgKyAyIF0gPSB0aGlzLl96O1xuXHRcdGFycmF5WyBvZmZzZXQgKyAzIF0gPSB0aGlzLl93O1xuXG5cdFx0cmV0dXJuIGFycmF5O1xuXG5cdH0sXG5cblx0X29uQ2hhbmdlOiBmdW5jdGlvbiAoIGNhbGxiYWNrICkge1xuXG5cdFx0dGhpcy5fb25DaGFuZ2VDYWxsYmFjayA9IGNhbGxiYWNrO1xuXG5cdFx0cmV0dXJuIHRoaXM7XG5cblx0fSxcblxuXHRfb25DaGFuZ2VDYWxsYmFjazogZnVuY3Rpb24gKCkge31cblxufSApO1xuXG5cbmV4cG9ydCB7IFF1YXRlcm5pb24gfTsiXX0= ================================================ FILE: packages/sdk/lib/core/libs/three-nebula/core/three/Vector3.js ================================================ import { _Math } from './Math.js'; import { Quaternion } from './Quaternion.js'; /** * @author mrdoob / http://mrdoob.com/ * @author kile / http://kile.stravaganza.org/ * @author philogb / http://blog.thejit.org/ * @author mikael emtinger / http://gomo.se/ * @author egraether / http://egraether.com/ * @author WestLangley / http://github.com/WestLangley */ function Vector3(x, y, z) { this.x = x || 0; this.y = y || 0; this.z = z || 0; } Object.assign(Vector3.prototype, { isVector3: true, set: function (x, y, z) { this.x = x; this.y = y; this.z = z; return this; }, setScalar: function (scalar) { this.x = scalar; this.y = scalar; this.z = scalar; return this; }, setX: function (x) { this.x = x; return this; }, setY: function (y) { this.y = y; return this; }, setZ: function (z) { this.z = z; return this; }, setComponent: function (index, value) { switch (index) { case 0: this.x = value; break; case 1: this.y = value; break; case 2: this.z = value; break; default: throw new Error('index is out of range: ' + index); } return this; }, getComponent: function (index) { switch (index) { case 0: return this.x; case 1: return this.y; case 2: return this.z; default: throw new Error('index is out of range: ' + index); } }, clone: function () { return new this.constructor(this.x, this.y, this.z); }, copy: function (v) { this.x = v.x; this.y = v.y; this.z = v.z; return this; }, add: function (v, w) { if (w !== undefined) { console.warn('THREE.Vector3: .add() now only accepts one argument. Use .addVectors( a, b ) instead.'); return this.addVectors(v, w); } this.x += v.x; this.y += v.y; this.z += v.z; return this; }, addScalar: function (s) { this.x += s; this.y += s; this.z += s; return this; }, addVectors: function (a, b) { this.x = a.x + b.x; this.y = a.y + b.y; this.z = a.z + b.z; return this; }, addScaledVector: function (v, s) { this.x += v.x * s; this.y += v.y * s; this.z += v.z * s; return this; }, sub: function (v, w) { if (w !== undefined) { console.warn('THREE.Vector3: .sub() now only accepts one argument. Use .subVectors( a, b ) instead.'); return this.subVectors(v, w); } this.x -= v.x; this.y -= v.y; this.z -= v.z; return this; }, subScalar: function (s) { this.x -= s; this.y -= s; this.z -= s; return this; }, subVectors: function (a, b) { this.x = a.x - b.x; this.y = a.y - b.y; this.z = a.z - b.z; return this; }, multiply: function (v, w) { if (w !== undefined) { console.warn('THREE.Vector3: .multiply() now only accepts one argument. Use .multiplyVectors( a, b ) instead.'); return this.multiplyVectors(v, w); } this.x *= v.x; this.y *= v.y; this.z *= v.z; return this; }, multiplyScalar: function (scalar) { this.x *= scalar; this.y *= scalar; this.z *= scalar; return this; }, multiplyVectors: function (a, b) { this.x = a.x * b.x; this.y = a.y * b.y; this.z = a.z * b.z; return this; }, applyEuler: function () { var quaternion = new Quaternion(); return function applyEuler(euler) { if (!(euler && euler.isEuler)) { console.error('THREE.Vector3: .applyEuler() now expects an Euler rotation rather than a Vector3 and order.'); } return this.applyQuaternion(quaternion.setFromEuler(euler)); }; }(), applyAxisAngle: function () { var quaternion = new Quaternion(); return function applyAxisAngle(axis, angle) { return this.applyQuaternion(quaternion.setFromAxisAngle(axis, angle)); }; }(), applyMatrix3: function (m) { var x = this.x, y = this.y, z = this.z; var e = m.elements; this.x = e[0] * x + e[3] * y + e[6] * z; this.y = e[1] * x + e[4] * y + e[7] * z; this.z = e[2] * x + e[5] * y + e[8] * z; return this; }, applyMatrix4: function (m) { var x = this.x, y = this.y, z = this.z; var e = m.elements; var w = 1 / (e[3] * x + e[7] * y + e[11] * z + e[15]); this.x = (e[0] * x + e[4] * y + e[8] * z + e[12]) * w; this.y = (e[1] * x + e[5] * y + e[9] * z + e[13]) * w; this.z = (e[2] * x + e[6] * y + e[10] * z + e[14]) * w; return this; }, applyQuaternion: function (q) { var x = this.x, y = this.y, z = this.z; var qx = q.x, qy = q.y, qz = q.z, qw = q.w; // calculate quat * vector var ix = qw * x + qy * z - qz * y; var iy = qw * y + qz * x - qx * z; var iz = qw * z + qx * y - qy * x; var iw = -qx * x - qy * y - qz * z; // calculate result * inverse quat this.x = ix * qw + iw * -qx + iy * -qz - iz * -qy; this.y = iy * qw + iw * -qy + iz * -qx - ix * -qz; this.z = iz * qw + iw * -qz + ix * -qy - iy * -qx; return this; }, project: function (camera) { return this.applyMatrix4(camera.matrixWorldInverse).applyMatrix4(camera.projectionMatrix); }, unproject: function (camera) { return this.applyMatrix4(camera.projectionMatrixInverse).applyMatrix4(camera.matrixWorld); }, transformDirection: function (m) { // input: THREE.Matrix4 affine matrix // vector interpreted as a direction var x = this.x, y = this.y, z = this.z; var e = m.elements; this.x = e[0] * x + e[4] * y + e[8] * z; this.y = e[1] * x + e[5] * y + e[9] * z; this.z = e[2] * x + e[6] * y + e[10] * z; return this.normalize(); }, divide: function (v) { this.x /= v.x; this.y /= v.y; this.z /= v.z; return this; }, divideScalar: function (scalar) { return this.multiplyScalar(1 / scalar); }, min: function (v) { this.x = Math.min(this.x, v.x); this.y = Math.min(this.y, v.y); this.z = Math.min(this.z, v.z); return this; }, max: function (v) { this.x = Math.max(this.x, v.x); this.y = Math.max(this.y, v.y); this.z = Math.max(this.z, v.z); return this; }, clamp: function (min, max) { // assumes min < max, componentwise this.x = Math.max(min.x, Math.min(max.x, this.x)); this.y = Math.max(min.y, Math.min(max.y, this.y)); this.z = Math.max(min.z, Math.min(max.z, this.z)); return this; }, clampScalar: function (minVal, maxVal) { this.x = Math.max(minVal, Math.min(maxVal, this.x)); this.y = Math.max(minVal, Math.min(maxVal, this.y)); this.z = Math.max(minVal, Math.min(maxVal, this.z)); return this; }, clampLength: function (min, max) { var length = this.length(); return this.divideScalar(length || 1).multiplyScalar(Math.max(min, Math.min(max, length))); }, floor: function () { this.x = Math.floor(this.x); this.y = Math.floor(this.y); this.z = Math.floor(this.z); return this; }, ceil: function () { this.x = Math.ceil(this.x); this.y = Math.ceil(this.y); this.z = Math.ceil(this.z); return this; }, round: function () { this.x = Math.round(this.x); this.y = Math.round(this.y); this.z = Math.round(this.z); return this; }, roundToZero: function () { this.x = this.x < 0 ? Math.ceil(this.x) : Math.floor(this.x); this.y = this.y < 0 ? Math.ceil(this.y) : Math.floor(this.y); this.z = this.z < 0 ? Math.ceil(this.z) : Math.floor(this.z); return this; }, negate: function () { this.x = -this.x; this.y = -this.y; this.z = -this.z; return this; }, dot: function (v) { return this.x * v.x + this.y * v.y + this.z * v.z; }, // TODO lengthSquared? lengthSq: function () { return this.x * this.x + this.y * this.y + this.z * this.z; }, length: function () { return Math.sqrt(this.x * this.x + this.y * this.y + this.z * this.z); }, manhattanLength: function () { return Math.abs(this.x) + Math.abs(this.y) + Math.abs(this.z); }, normalize: function () { return this.divideScalar(this.length() || 1); }, setLength: function (length) { return this.normalize().multiplyScalar(length); }, lerp: function (v, alpha) { this.x += (v.x - this.x) * alpha; this.y += (v.y - this.y) * alpha; this.z += (v.z - this.z) * alpha; return this; }, lerpVectors: function (v1, v2, alpha) { return this.subVectors(v2, v1).multiplyScalar(alpha).add(v1); }, cross: function (v, w) { if (w !== undefined) { console.warn('THREE.Vector3: .cross() now only accepts one argument. Use .crossVectors( a, b ) instead.'); return this.crossVectors(v, w); } return this.crossVectors(this, v); }, crossVectors: function (a, b) { var ax = a.x, ay = a.y, az = a.z; var bx = b.x, by = b.y, bz = b.z; this.x = ay * bz - az * by; this.y = az * bx - ax * bz; this.z = ax * by - ay * bx; return this; }, projectOnVector: function (vector) { var scalar = vector.dot(this) / vector.lengthSq(); return this.copy(vector).multiplyScalar(scalar); }, projectOnPlane: function () { var v1 = new Vector3(); return function projectOnPlane(planeNormal) { v1.copy(this).projectOnVector(planeNormal); return this.sub(v1); }; }(), reflect: function () { // reflect incident vector off plane orthogonal to normal // normal is assumed to have unit length var v1 = new Vector3(); return function reflect(normal) { return this.sub(v1.copy(normal).multiplyScalar(2 * this.dot(normal))); }; }(), angleTo: function (v) { var theta = this.dot(v) / Math.sqrt(this.lengthSq() * v.lengthSq()); // clamp, to handle numerical problems return Math.acos(_Math.clamp(theta, -1, 1)); }, distanceTo: function (v) { return Math.sqrt(this.distanceToSquared(v)); }, distanceToSquared: function (v) { var dx = this.x - v.x, dy = this.y - v.y, dz = this.z - v.z; return dx * dx + dy * dy + dz * dz; }, manhattanDistanceTo: function (v) { return Math.abs(this.x - v.x) + Math.abs(this.y - v.y) + Math.abs(this.z - v.z); }, setFromSpherical: function (s) { return this.setFromSphericalCoords(s.radius, s.phi, s.theta); }, setFromSphericalCoords: function (radius, phi, theta) { var sinPhiRadius = Math.sin(phi) * radius; this.x = sinPhiRadius * Math.sin(theta); this.y = Math.cos(phi) * radius; this.z = sinPhiRadius * Math.cos(theta); return this; }, setFromCylindrical: function (c) { return this.setFromCylindricalCoords(c.radius, c.theta, c.y); }, setFromCylindricalCoords: function (radius, theta, y) { this.x = radius * Math.sin(theta); this.y = y; this.z = radius * Math.cos(theta); return this; }, setFromMatrixPosition: function (m) { var e = m.elements; this.x = e[12]; this.y = e[13]; this.z = e[14]; return this; }, setFromMatrixScale: function (m) { var sx = this.setFromMatrixColumn(m, 0).length(); var sy = this.setFromMatrixColumn(m, 1).length(); var sz = this.setFromMatrixColumn(m, 2).length(); this.x = sx; this.y = sy; this.z = sz; return this; }, setFromMatrixColumn: function (m, index) { return this.fromArray(m.elements, index * 4); }, equals: function (v) { return v.x === this.x && v.y === this.y && v.z === this.z; }, fromArray: function (array, offset) { if (offset === undefined) offset = 0; this.x = array[offset]; this.y = array[offset + 1]; this.z = array[offset + 2]; return this; }, toArray: function (array, offset) { if (array === undefined) array = []; if (offset === undefined) offset = 0; array[offset] = this.x; array[offset + 1] = this.y; array[offset + 2] = this.z; return array; }, fromBufferAttribute: function (attribute, index, offset) { if (offset !== undefined) { console.warn('THREE.Vector3: offset has been removed from .fromBufferAttribute().'); } this.x = attribute.getX(index); this.y = attribute.getY(index); this.z = attribute.getZ(index); return this; } }); export { Vector3 }; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb3JlL3RocmVlL1ZlY3RvcjMuanMiXSwibmFtZXMiOlsiX01hdGgiLCJRdWF0ZXJuaW9uIiwiVmVjdG9yMyIsIngiLCJ5IiwieiIsIk9iamVjdCIsImFzc2lnbiIsInByb3RvdHlwZSIsImlzVmVjdG9yMyIsInNldCIsInNldFNjYWxhciIsInNjYWxhciIsInNldFgiLCJzZXRZIiwic2V0WiIsInNldENvbXBvbmVudCIsImluZGV4IiwidmFsdWUiLCJFcnJvciIsImdldENvbXBvbmVudCIsImNsb25lIiwiY29uc3RydWN0b3IiLCJjb3B5IiwidiIsImFkZCIsInciLCJ1bmRlZmluZWQiLCJjb25zb2xlIiwid2FybiIsImFkZFZlY3RvcnMiLCJhZGRTY2FsYXIiLCJzIiwiYSIsImIiLCJhZGRTY2FsZWRWZWN0b3IiLCJzdWIiLCJzdWJWZWN0b3JzIiwic3ViU2NhbGFyIiwibXVsdGlwbHkiLCJtdWx0aXBseVZlY3RvcnMiLCJtdWx0aXBseVNjYWxhciIsImFwcGx5RXVsZXIiLCJxdWF0ZXJuaW9uIiwiZXVsZXIiLCJpc0V1bGVyIiwiZXJyb3IiLCJhcHBseVF1YXRlcm5pb24iLCJzZXRGcm9tRXVsZXIiLCJhcHBseUF4aXNBbmdsZSIsImF4aXMiLCJhbmdsZSIsInNldEZyb21BeGlzQW5nbGUiLCJhcHBseU1hdHJpeDMiLCJtIiwiZSIsImVsZW1lbnRzIiwiYXBwbHlNYXRyaXg0IiwicSIsInF4IiwicXkiLCJxeiIsInF3IiwiaXgiLCJpeSIsIml6IiwiaXciLCJwcm9qZWN0IiwiY2FtZXJhIiwibWF0cml4V29ybGRJbnZlcnNlIiwicHJvamVjdGlvbk1hdHJpeCIsInVucHJvamVjdCIsInByb2plY3Rpb25NYXRyaXhJbnZlcnNlIiwibWF0cml4V29ybGQiLCJ0cmFuc2Zvcm1EaXJlY3Rpb24iLCJub3JtYWxpemUiLCJkaXZpZGUiLCJkaXZpZGVTY2FsYXIiLCJtaW4iLCJNYXRoIiwibWF4IiwiY2xhbXAiLCJjbGFtcFNjYWxhciIsIm1pblZhbCIsIm1heFZhbCIsImNsYW1wTGVuZ3RoIiwibGVuZ3RoIiwiZmxvb3IiLCJjZWlsIiwicm91bmQiLCJyb3VuZFRvWmVybyIsIm5lZ2F0ZSIsImRvdCIsImxlbmd0aFNxIiwic3FydCIsIm1hbmhhdHRhbkxlbmd0aCIsImFicyIsInNldExlbmd0aCIsImxlcnAiLCJhbHBoYSIsImxlcnBWZWN0b3JzIiwidjEiLCJ2MiIsImNyb3NzIiwiY3Jvc3NWZWN0b3JzIiwiYXgiLCJheSIsImF6IiwiYngiLCJieSIsImJ6IiwicHJvamVjdE9uVmVjdG9yIiwidmVjdG9yIiwicHJvamVjdE9uUGxhbmUiLCJwbGFuZU5vcm1hbCIsInJlZmxlY3QiLCJub3JtYWwiLCJhbmdsZVRvIiwidGhldGEiLCJhY29zIiwiZGlzdGFuY2VUbyIsImRpc3RhbmNlVG9TcXVhcmVkIiwiZHgiLCJkeSIsImR6IiwibWFuaGF0dGFuRGlzdGFuY2VUbyIsInNldEZyb21TcGhlcmljYWwiLCJzZXRGcm9tU3BoZXJpY2FsQ29vcmRzIiwicmFkaXVzIiwicGhpIiwic2luUGhpUmFkaXVzIiwic2luIiwiY29zIiwic2V0RnJvbUN5bGluZHJpY2FsIiwiYyIsInNldEZyb21DeWxpbmRyaWNhbENvb3JkcyIsInNldEZyb21NYXRyaXhQb3NpdGlvbiIsInNldEZyb21NYXRyaXhTY2FsZSIsInN4Iiwic2V0RnJvbU1hdHJpeENvbHVtbiIsInN5Iiwic3oiLCJmcm9tQXJyYXkiLCJlcXVhbHMiLCJhcnJheSIsIm9mZnNldCIsInRvQXJyYXkiLCJmcm9tQnVmZmVyQXR0cmlidXRlIiwiYXR0cmlidXRlIiwiZ2V0WCIsImdldFkiLCJnZXRaIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUFTQSxLQUFULFFBQXNCLFdBQXRCO0FBQ0EsU0FBU0MsVUFBVCxRQUEyQixpQkFBM0I7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLFNBQVNDLE9BQVQsQ0FBa0JDLENBQWxCLEVBQXFCQyxDQUFyQixFQUF3QkMsQ0FBeEIsRUFBNEI7QUFFM0IsT0FBS0YsQ0FBTCxHQUFTQSxDQUFDLElBQUksQ0FBZDtBQUNBLE9BQUtDLENBQUwsR0FBU0EsQ0FBQyxJQUFJLENBQWQ7QUFDQSxPQUFLQyxDQUFMLEdBQVNBLENBQUMsSUFBSSxDQUFkO0FBRUE7O0FBRURDLE1BQU0sQ0FBQ0MsTUFBUCxDQUFlTCxPQUFPLENBQUNNLFNBQXZCLEVBQWtDO0FBRWpDQyxFQUFBQSxTQUFTLEVBQUUsSUFGc0I7QUFJakNDLEVBQUFBLEdBQUcsRUFBRSxVQUFXUCxDQUFYLEVBQWNDLENBQWQsRUFBaUJDLENBQWpCLEVBQXFCO0FBRXpCLFNBQUtGLENBQUwsR0FBU0EsQ0FBVDtBQUNBLFNBQUtDLENBQUwsR0FBU0EsQ0FBVDtBQUNBLFNBQUtDLENBQUwsR0FBU0EsQ0FBVDtBQUVBLFdBQU8sSUFBUDtBQUVBLEdBWmdDO0FBY2pDTSxFQUFBQSxTQUFTLEVBQUUsVUFBV0MsTUFBWCxFQUFvQjtBQUU5QixTQUFLVCxDQUFMLEdBQVNTLE1BQVQ7QUFDQSxTQUFLUixDQUFMLEdBQVNRLE1BQVQ7QUFDQSxTQUFLUCxDQUFMLEdBQVNPLE1BQVQ7QUFFQSxXQUFPLElBQVA7QUFFQSxHQXRCZ0M7QUF3QmpDQyxFQUFBQSxJQUFJLEVBQUUsVUFBV1YsQ0FBWCxFQUFlO0FBRXBCLFNBQUtBLENBQUwsR0FBU0EsQ0FBVDtBQUVBLFdBQU8sSUFBUDtBQUVBLEdBOUJnQztBQWdDakNXLEVBQUFBLElBQUksRUFBRSxVQUFXVixDQUFYLEVBQWU7QUFFcEIsU0FBS0EsQ0FBTCxHQUFTQSxDQUFUO0FBRUEsV0FBTyxJQUFQO0FBRUEsR0F0Q2dDO0FBd0NqQ1csRUFBQUEsSUFBSSxFQUFFLFVBQVdWLENBQVgsRUFBZTtBQUVwQixTQUFLQSxDQUFMLEdBQVNBLENBQVQ7QUFFQSxXQUFPLElBQVA7QUFFQSxHQTlDZ0M7QUFnRGpDVyxFQUFBQSxZQUFZLEVBQUUsVUFBV0MsS0FBWCxFQUFrQkMsS0FBbEIsRUFBMEI7QUFFdkMsWUFBU0QsS0FBVDtBQUVDLFdBQUssQ0FBTDtBQUFRLGFBQUtkLENBQUwsR0FBU2UsS0FBVDtBQUFnQjs7QUFDeEIsV0FBSyxDQUFMO0FBQVEsYUFBS2QsQ0FBTCxHQUFTYyxLQUFUO0FBQWdCOztBQUN4QixXQUFLLENBQUw7QUFBUSxhQUFLYixDQUFMLEdBQVNhLEtBQVQ7QUFBZ0I7O0FBQ3hCO0FBQVMsY0FBTSxJQUFJQyxLQUFKLENBQVcsNEJBQTRCRixLQUF2QyxDQUFOO0FBTFY7O0FBU0EsV0FBTyxJQUFQO0FBRUEsR0E3RGdDO0FBK0RqQ0csRUFBQUEsWUFBWSxFQUFFLFVBQVdILEtBQVgsRUFBbUI7QUFFaEMsWUFBU0EsS0FBVDtBQUVDLFdBQUssQ0FBTDtBQUFRLGVBQU8sS0FBS2QsQ0FBWjs7QUFDUixXQUFLLENBQUw7QUFBUSxlQUFPLEtBQUtDLENBQVo7O0FBQ1IsV0FBSyxDQUFMO0FBQVEsZUFBTyxLQUFLQyxDQUFaOztBQUNSO0FBQVMsY0FBTSxJQUFJYyxLQUFKLENBQVcsNEJBQTRCRixLQUF2QyxDQUFOO0FBTFY7QUFTQSxHQTFFZ0M7QUE0RWpDSSxFQUFBQSxLQUFLLEVBQUUsWUFBWTtBQUVsQixXQUFPLElBQUksS0FBS0MsV0FBVCxDQUFzQixLQUFLbkIsQ0FBM0IsRUFBOEIsS0FBS0MsQ0FBbkMsRUFBc0MsS0FBS0MsQ0FBM0MsQ0FBUDtBQUVBLEdBaEZnQztBQWtGakNrQixFQUFBQSxJQUFJLEVBQUUsVUFBV0MsQ0FBWCxFQUFlO0FBRXBCLFNBQUtyQixDQUFMLEdBQVNxQixDQUFDLENBQUNyQixDQUFYO0FBQ0EsU0FBS0MsQ0FBTCxHQUFTb0IsQ0FBQyxDQUFDcEIsQ0FBWDtBQUNBLFNBQUtDLENBQUwsR0FBU21CLENBQUMsQ0FBQ25CLENBQVg7QUFFQSxXQUFPLElBQVA7QUFFQSxHQTFGZ0M7QUE0RmpDb0IsRUFBQUEsR0FBRyxFQUFFLFVBQVdELENBQVgsRUFBY0UsQ0FBZCxFQUFrQjtBQUV0QixRQUFLQSxDQUFDLEtBQUtDLFNBQVgsRUFBdUI7QUFFdEJDLE1BQUFBLE9BQU8sQ0FBQ0MsSUFBUixDQUFjLHVGQUFkO0FBQ0EsYUFBTyxLQUFLQyxVQUFMLENBQWlCTixDQUFqQixFQUFvQkUsQ0FBcEIsQ0FBUDtBQUVBOztBQUVELFNBQUt2QixDQUFMLElBQVVxQixDQUFDLENBQUNyQixDQUFaO0FBQ0EsU0FBS0MsQ0FBTCxJQUFVb0IsQ0FBQyxDQUFDcEIsQ0FBWjtBQUNBLFNBQUtDLENBQUwsSUFBVW1CLENBQUMsQ0FBQ25CLENBQVo7QUFFQSxXQUFPLElBQVA7QUFFQSxHQTNHZ0M7QUE2R2pDMEIsRUFBQUEsU0FBUyxFQUFFLFVBQVdDLENBQVgsRUFBZTtBQUV6QixTQUFLN0IsQ0FBTCxJQUFVNkIsQ0FBVjtBQUNBLFNBQUs1QixDQUFMLElBQVU0QixDQUFWO0FBQ0EsU0FBSzNCLENBQUwsSUFBVTJCLENBQVY7QUFFQSxXQUFPLElBQVA7QUFFQSxHQXJIZ0M7QUF1SGpDRixFQUFBQSxVQUFVLEVBQUUsVUFBV0csQ0FBWCxFQUFjQyxDQUFkLEVBQWtCO0FBRTdCLFNBQUsvQixDQUFMLEdBQVM4QixDQUFDLENBQUM5QixDQUFGLEdBQU0rQixDQUFDLENBQUMvQixDQUFqQjtBQUNBLFNBQUtDLENBQUwsR0FBUzZCLENBQUMsQ0FBQzdCLENBQUYsR0FBTThCLENBQUMsQ0FBQzlCLENBQWpCO0FBQ0EsU0FBS0MsQ0FBTCxHQUFTNEIsQ0FBQyxDQUFDNUIsQ0FBRixHQUFNNkIsQ0FBQyxDQUFDN0IsQ0FBakI7QUFFQSxXQUFPLElBQVA7QUFFQSxHQS9IZ0M7QUFpSWpDOEIsRUFBQUEsZUFBZSxFQUFFLFVBQVdYLENBQVgsRUFBY1EsQ0FBZCxFQUFrQjtBQUVsQyxTQUFLN0IsQ0FBTCxJQUFVcUIsQ0FBQyxDQUFDckIsQ0FBRixHQUFNNkIsQ0FBaEI7QUFDQSxTQUFLNUIsQ0FBTCxJQUFVb0IsQ0FBQyxDQUFDcEIsQ0FBRixHQUFNNEIsQ0FBaEI7QUFDQSxTQUFLM0IsQ0FBTCxJQUFVbUIsQ0FBQyxDQUFDbkIsQ0FBRixHQUFNMkIsQ0FBaEI7QUFFQSxXQUFPLElBQVA7QUFFQSxHQXpJZ0M7QUEySWpDSSxFQUFBQSxHQUFHLEVBQUUsVUFBV1osQ0FBWCxFQUFjRSxDQUFkLEVBQWtCO0FBRXRCLFFBQUtBLENBQUMsS0FBS0MsU0FBWCxFQUF1QjtBQUV0QkMsTUFBQUEsT0FBTyxDQUFDQyxJQUFSLENBQWMsdUZBQWQ7QUFDQSxhQUFPLEtBQUtRLFVBQUwsQ0FBaUJiLENBQWpCLEVBQW9CRSxDQUFwQixDQUFQO0FBRUE7O0FBRUQsU0FBS3ZCLENBQUwsSUFBVXFCLENBQUMsQ0FBQ3JCLENBQVo7QUFDQSxTQUFLQyxDQUFMLElBQVVvQixDQUFDLENBQUNwQixDQUFaO0FBQ0EsU0FBS0MsQ0FBTCxJQUFVbUIsQ0FBQyxDQUFDbkIsQ0FBWjtBQUVBLFdBQU8sSUFBUDtBQUVBLEdBMUpnQztBQTRKakNpQyxFQUFBQSxTQUFTLEVBQUUsVUFBV04sQ0FBWCxFQUFlO0FBRXpCLFNBQUs3QixDQUFMLElBQVU2QixDQUFWO0FBQ0EsU0FBSzVCLENBQUwsSUFBVTRCLENBQVY7QUFDQSxTQUFLM0IsQ0FBTCxJQUFVMkIsQ0FBVjtBQUVBLFdBQU8sSUFBUDtBQUVBLEdBcEtnQztBQXNLakNLLEVBQUFBLFVBQVUsRUFBRSxVQUFXSixDQUFYLEVBQWNDLENBQWQsRUFBa0I7QUFFN0IsU0FBSy9CLENBQUwsR0FBUzhCLENBQUMsQ0FBQzlCLENBQUYsR0FBTStCLENBQUMsQ0FBQy9CLENBQWpCO0FBQ0EsU0FBS0MsQ0FBTCxHQUFTNkIsQ0FBQyxDQUFDN0IsQ0FBRixHQUFNOEIsQ0FBQyxDQUFDOUIsQ0FBakI7QUFDQSxTQUFLQyxDQUFMLEdBQVM0QixDQUFDLENBQUM1QixDQUFGLEdBQU02QixDQUFDLENBQUM3QixDQUFqQjtBQUVBLFdBQU8sSUFBUDtBQUVBLEdBOUtnQztBQWdMakNrQyxFQUFBQSxRQUFRLEVBQUUsVUFBV2YsQ0FBWCxFQUFjRSxDQUFkLEVBQWtCO0FBRTNCLFFBQUtBLENBQUMsS0FBS0MsU0FBWCxFQUF1QjtBQUV0QkMsTUFBQUEsT0FBTyxDQUFDQyxJQUFSLENBQWMsaUdBQWQ7QUFDQSxhQUFPLEtBQUtXLGVBQUwsQ0FBc0JoQixDQUF0QixFQUF5QkUsQ0FBekIsQ0FBUDtBQUVBOztBQUVELFNBQUt2QixDQUFMLElBQVVxQixDQUFDLENBQUNyQixDQUFaO0FBQ0EsU0FBS0MsQ0FBTCxJQUFVb0IsQ0FBQyxDQUFDcEIsQ0FBWjtBQUNBLFNBQUtDLENBQUwsSUFBVW1CLENBQUMsQ0FBQ25CLENBQVo7QUFFQSxXQUFPLElBQVA7QUFFQSxHQS9MZ0M7QUFpTWpDb0MsRUFBQUEsY0FBYyxFQUFFLFVBQVc3QixNQUFYLEVBQW9CO0FBRW5DLFNBQUtULENBQUwsSUFBVVMsTUFBVjtBQUNBLFNBQUtSLENBQUwsSUFBVVEsTUFBVjtBQUNBLFNBQUtQLENBQUwsSUFBVU8sTUFBVjtBQUVBLFdBQU8sSUFBUDtBQUVBLEdBek1nQztBQTJNakM0QixFQUFBQSxlQUFlLEVBQUUsVUFBV1AsQ0FBWCxFQUFjQyxDQUFkLEVBQWtCO0FBRWxDLFNBQUsvQixDQUFMLEdBQVM4QixDQUFDLENBQUM5QixDQUFGLEdBQU0rQixDQUFDLENBQUMvQixDQUFqQjtBQUNBLFNBQUtDLENBQUwsR0FBUzZCLENBQUMsQ0FBQzdCLENBQUYsR0FBTThCLENBQUMsQ0FBQzlCLENBQWpCO0FBQ0EsU0FBS0MsQ0FBTCxHQUFTNEIsQ0FBQyxDQUFDNUIsQ0FBRixHQUFNNkIsQ0FBQyxDQUFDN0IsQ0FBakI7QUFFQSxXQUFPLElBQVA7QUFFQSxHQW5OZ0M7QUFxTmpDcUMsRUFBQUEsVUFBVSxFQUFFLFlBQVk7QUFFdkIsUUFBSUMsVUFBVSxHQUFHLElBQUkxQyxVQUFKLEVBQWpCO0FBRUEsV0FBTyxTQUFTeUMsVUFBVCxDQUFxQkUsS0FBckIsRUFBNkI7QUFFbkMsVUFBSyxFQUFJQSxLQUFLLElBQUlBLEtBQUssQ0FBQ0MsT0FBbkIsQ0FBTCxFQUFvQztBQUVuQ2pCLFFBQUFBLE9BQU8sQ0FBQ2tCLEtBQVIsQ0FBZSw2RkFBZjtBQUVBOztBQUVELGFBQU8sS0FBS0MsZUFBTCxDQUFzQkosVUFBVSxDQUFDSyxZQUFYLENBQXlCSixLQUF6QixDQUF0QixDQUFQO0FBRUEsS0FWRDtBQVlBLEdBaEJXLEVBck5xQjtBQXVPakNLLEVBQUFBLGNBQWMsRUFBRSxZQUFZO0FBRTNCLFFBQUlOLFVBQVUsR0FBRyxJQUFJMUMsVUFBSixFQUFqQjtBQUVBLFdBQU8sU0FBU2dELGNBQVQsQ0FBeUJDLElBQXpCLEVBQStCQyxLQUEvQixFQUF1QztBQUU3QyxhQUFPLEtBQUtKLGVBQUwsQ0FBc0JKLFVBQVUsQ0FBQ1MsZ0JBQVgsQ0FBNkJGLElBQTdCLEVBQW1DQyxLQUFuQyxDQUF0QixDQUFQO0FBRUEsS0FKRDtBQU1BLEdBVmUsRUF2T2lCO0FBbVBqQ0UsRUFBQUEsWUFBWSxFQUFFLFVBQVdDLENBQVgsRUFBZTtBQUU1QixRQUFJbkQsQ0FBQyxHQUFHLEtBQUtBLENBQWI7QUFBQSxRQUFnQkMsQ0FBQyxHQUFHLEtBQUtBLENBQXpCO0FBQUEsUUFBNEJDLENBQUMsR0FBRyxLQUFLQSxDQUFyQztBQUNBLFFBQUlrRCxDQUFDLEdBQUdELENBQUMsQ0FBQ0UsUUFBVjtBQUVBLFNBQUtyRCxDQUFMLEdBQVNvRCxDQUFDLENBQUUsQ0FBRixDQUFELEdBQVNwRCxDQUFULEdBQWFvRCxDQUFDLENBQUUsQ0FBRixDQUFELEdBQVNuRCxDQUF0QixHQUEwQm1ELENBQUMsQ0FBRSxDQUFGLENBQUQsR0FBU2xELENBQTVDO0FBQ0EsU0FBS0QsQ0FBTCxHQUFTbUQsQ0FBQyxDQUFFLENBQUYsQ0FBRCxHQUFTcEQsQ0FBVCxHQUFhb0QsQ0FBQyxDQUFFLENBQUYsQ0FBRCxHQUFTbkQsQ0FBdEIsR0FBMEJtRCxDQUFDLENBQUUsQ0FBRixDQUFELEdBQVNsRCxDQUE1QztBQUNBLFNBQUtBLENBQUwsR0FBU2tELENBQUMsQ0FBRSxDQUFGLENBQUQsR0FBU3BELENBQVQsR0FBYW9ELENBQUMsQ0FBRSxDQUFGLENBQUQsR0FBU25ELENBQXRCLEdBQTBCbUQsQ0FBQyxDQUFFLENBQUYsQ0FBRCxHQUFTbEQsQ0FBNUM7QUFFQSxXQUFPLElBQVA7QUFFQSxHQTlQZ0M7QUFnUWpDb0QsRUFBQUEsWUFBWSxFQUFFLFVBQVdILENBQVgsRUFBZTtBQUU1QixRQUFJbkQsQ0FBQyxHQUFHLEtBQUtBLENBQWI7QUFBQSxRQUFnQkMsQ0FBQyxHQUFHLEtBQUtBLENBQXpCO0FBQUEsUUFBNEJDLENBQUMsR0FBRyxLQUFLQSxDQUFyQztBQUNBLFFBQUlrRCxDQUFDLEdBQUdELENBQUMsQ0FBQ0UsUUFBVjtBQUVBLFFBQUk5QixDQUFDLEdBQUcsS0FBTTZCLENBQUMsQ0FBRSxDQUFGLENBQUQsR0FBU3BELENBQVQsR0FBYW9ELENBQUMsQ0FBRSxDQUFGLENBQUQsR0FBU25ELENBQXRCLEdBQTBCbUQsQ0FBQyxDQUFFLEVBQUYsQ0FBRCxHQUFVbEQsQ0FBcEMsR0FBd0NrRCxDQUFDLENBQUUsRUFBRixDQUEvQyxDQUFSO0FBRUEsU0FBS3BELENBQUwsR0FBUyxDQUFFb0QsQ0FBQyxDQUFFLENBQUYsQ0FBRCxHQUFTcEQsQ0FBVCxHQUFhb0QsQ0FBQyxDQUFFLENBQUYsQ0FBRCxHQUFTbkQsQ0FBdEIsR0FBMEJtRCxDQUFDLENBQUUsQ0FBRixDQUFELEdBQVNsRCxDQUFuQyxHQUF1Q2tELENBQUMsQ0FBRSxFQUFGLENBQTFDLElBQXFEN0IsQ0FBOUQ7QUFDQSxTQUFLdEIsQ0FBTCxHQUFTLENBQUVtRCxDQUFDLENBQUUsQ0FBRixDQUFELEdBQVNwRCxDQUFULEdBQWFvRCxDQUFDLENBQUUsQ0FBRixDQUFELEdBQVNuRCxDQUF0QixHQUEwQm1ELENBQUMsQ0FBRSxDQUFGLENBQUQsR0FBU2xELENBQW5DLEdBQXVDa0QsQ0FBQyxDQUFFLEVBQUYsQ0FBMUMsSUFBcUQ3QixDQUE5RDtBQUNBLFNBQUtyQixDQUFMLEdBQVMsQ0FBRWtELENBQUMsQ0FBRSxDQUFGLENBQUQsR0FBU3BELENBQVQsR0FBYW9ELENBQUMsQ0FBRSxDQUFGLENBQUQsR0FBU25ELENBQXRCLEdBQTBCbUQsQ0FBQyxDQUFFLEVBQUYsQ0FBRCxHQUFVbEQsQ0FBcEMsR0FBd0NrRCxDQUFDLENBQUUsRUFBRixDQUEzQyxJQUFzRDdCLENBQS9EO0FBRUEsV0FBTyxJQUFQO0FBRUEsR0E3UWdDO0FBK1FqQ3FCLEVBQUFBLGVBQWUsRUFBRSxVQUFXVyxDQUFYLEVBQWU7QUFFL0IsUUFBSXZELENBQUMsR0FBRyxLQUFLQSxDQUFiO0FBQUEsUUFBZ0JDLENBQUMsR0FBRyxLQUFLQSxDQUF6QjtBQUFBLFFBQTRCQyxDQUFDLEdBQUcsS0FBS0EsQ0FBckM7QUFDQSxRQUFJc0QsRUFBRSxHQUFHRCxDQUFDLENBQUN2RCxDQUFYO0FBQUEsUUFBY3lELEVBQUUsR0FBR0YsQ0FBQyxDQUFDdEQsQ0FBckI7QUFBQSxRQUF3QnlELEVBQUUsR0FBR0gsQ0FBQyxDQUFDckQsQ0FBL0I7QUFBQSxRQUFrQ3lELEVBQUUsR0FBR0osQ0FBQyxDQUFDaEMsQ0FBekMsQ0FIK0IsQ0FLL0I7O0FBRUEsUUFBSXFDLEVBQUUsR0FBR0QsRUFBRSxHQUFHM0QsQ0FBTCxHQUFTeUQsRUFBRSxHQUFHdkQsQ0FBZCxHQUFrQndELEVBQUUsR0FBR3pELENBQWhDO0FBQ0EsUUFBSTRELEVBQUUsR0FBR0YsRUFBRSxHQUFHMUQsQ0FBTCxHQUFTeUQsRUFBRSxHQUFHMUQsQ0FBZCxHQUFrQndELEVBQUUsR0FBR3RELENBQWhDO0FBQ0EsUUFBSTRELEVBQUUsR0FBR0gsRUFBRSxHQUFHekQsQ0FBTCxHQUFTc0QsRUFBRSxHQUFHdkQsQ0FBZCxHQUFrQndELEVBQUUsR0FBR3pELENBQWhDO0FBQ0EsUUFBSStELEVBQUUsR0FBRyxDQUFFUCxFQUFGLEdBQU94RCxDQUFQLEdBQVd5RCxFQUFFLEdBQUd4RCxDQUFoQixHQUFvQnlELEVBQUUsR0FBR3hELENBQWxDLENBVitCLENBWS9COztBQUVBLFNBQUtGLENBQUwsR0FBUzRELEVBQUUsR0FBR0QsRUFBTCxHQUFVSSxFQUFFLEdBQUcsQ0FBRVAsRUFBakIsR0FBc0JLLEVBQUUsR0FBRyxDQUFFSCxFQUE3QixHQUFrQ0ksRUFBRSxHQUFHLENBQUVMLEVBQWxEO0FBQ0EsU0FBS3hELENBQUwsR0FBUzRELEVBQUUsR0FBR0YsRUFBTCxHQUFVSSxFQUFFLEdBQUcsQ0FBRU4sRUFBakIsR0FBc0JLLEVBQUUsR0FBRyxDQUFFTixFQUE3QixHQUFrQ0ksRUFBRSxHQUFHLENBQUVGLEVBQWxEO0FBQ0EsU0FBS3hELENBQUwsR0FBUzRELEVBQUUsR0FBR0gsRUFBTCxHQUFVSSxFQUFFLEdBQUcsQ0FBRUwsRUFBakIsR0FBc0JFLEVBQUUsR0FBRyxDQUFFSCxFQUE3QixHQUFrQ0ksRUFBRSxHQUFHLENBQUVMLEVBQWxEO0FBRUEsV0FBTyxJQUFQO0FBRUEsR0FuU2dDO0FBcVNqQ1EsRUFBQUEsT0FBTyxFQUFFLFVBQVdDLE1BQVgsRUFBb0I7QUFFNUIsV0FBTyxLQUFLWCxZQUFMLENBQW1CVyxNQUFNLENBQUNDLGtCQUExQixFQUErQ1osWUFBL0MsQ0FBNkRXLE1BQU0sQ0FBQ0UsZ0JBQXBFLENBQVA7QUFFQSxHQXpTZ0M7QUEyU2pDQyxFQUFBQSxTQUFTLEVBQUUsVUFBV0gsTUFBWCxFQUFvQjtBQUU5QixXQUFPLEtBQUtYLFlBQUwsQ0FBbUJXLE1BQU0sQ0FBQ0ksdUJBQTFCLEVBQW9EZixZQUFwRCxDQUFrRVcsTUFBTSxDQUFDSyxXQUF6RSxDQUFQO0FBRUEsR0EvU2dDO0FBaVRqQ0MsRUFBQUEsa0JBQWtCLEVBQUUsVUFBV3BCLENBQVgsRUFBZTtBQUVsQztBQUNBO0FBRUEsUUFBSW5ELENBQUMsR0FBRyxLQUFLQSxDQUFiO0FBQUEsUUFBZ0JDLENBQUMsR0FBRyxLQUFLQSxDQUF6QjtBQUFBLFFBQTRCQyxDQUFDLEdBQUcsS0FBS0EsQ0FBckM7QUFDQSxRQUFJa0QsQ0FBQyxHQUFHRCxDQUFDLENBQUNFLFFBQVY7QUFFQSxTQUFLckQsQ0FBTCxHQUFTb0QsQ0FBQyxDQUFFLENBQUYsQ0FBRCxHQUFTcEQsQ0FBVCxHQUFhb0QsQ0FBQyxDQUFFLENBQUYsQ0FBRCxHQUFTbkQsQ0FBdEIsR0FBMEJtRCxDQUFDLENBQUUsQ0FBRixDQUFELEdBQVNsRCxDQUE1QztBQUNBLFNBQUtELENBQUwsR0FBU21ELENBQUMsQ0FBRSxDQUFGLENBQUQsR0FBU3BELENBQVQsR0FBYW9ELENBQUMsQ0FBRSxDQUFGLENBQUQsR0FBU25ELENBQXRCLEdBQTBCbUQsQ0FBQyxDQUFFLENBQUYsQ0FBRCxHQUFTbEQsQ0FBNUM7QUFDQSxTQUFLQSxDQUFMLEdBQVNrRCxDQUFDLENBQUUsQ0FBRixDQUFELEdBQVNwRCxDQUFULEdBQWFvRCxDQUFDLENBQUUsQ0FBRixDQUFELEdBQVNuRCxDQUF0QixHQUEwQm1ELENBQUMsQ0FBRSxFQUFGLENBQUQsR0FBVWxELENBQTdDO0FBRUEsV0FBTyxLQUFLc0UsU0FBTCxFQUFQO0FBRUEsR0EvVGdDO0FBaVVqQ0MsRUFBQUEsTUFBTSxFQUFFLFVBQVdwRCxDQUFYLEVBQWU7QUFFdEIsU0FBS3JCLENBQUwsSUFBVXFCLENBQUMsQ0FBQ3JCLENBQVo7QUFDQSxTQUFLQyxDQUFMLElBQVVvQixDQUFDLENBQUNwQixDQUFaO0FBQ0EsU0FBS0MsQ0FBTCxJQUFVbUIsQ0FBQyxDQUFDbkIsQ0FBWjtBQUVBLFdBQU8sSUFBUDtBQUVBLEdBelVnQztBQTJVakN3RSxFQUFBQSxZQUFZLEVBQUUsVUFBV2pFLE1BQVgsRUFBb0I7QUFFakMsV0FBTyxLQUFLNkIsY0FBTCxDQUFxQixJQUFJN0IsTUFBekIsQ0FBUDtBQUVBLEdBL1VnQztBQWlWakNrRSxFQUFBQSxHQUFHLEVBQUUsVUFBV3RELENBQVgsRUFBZTtBQUVuQixTQUFLckIsQ0FBTCxHQUFTNEUsSUFBSSxDQUFDRCxHQUFMLENBQVUsS0FBSzNFLENBQWYsRUFBa0JxQixDQUFDLENBQUNyQixDQUFwQixDQUFUO0FBQ0EsU0FBS0MsQ0FBTCxHQUFTMkUsSUFBSSxDQUFDRCxHQUFMLENBQVUsS0FBSzFFLENBQWYsRUFBa0JvQixDQUFDLENBQUNwQixDQUFwQixDQUFUO0FBQ0EsU0FBS0MsQ0FBTCxHQUFTMEUsSUFBSSxDQUFDRCxHQUFMLENBQVUsS0FBS3pFLENBQWYsRUFBa0JtQixDQUFDLENBQUNuQixDQUFwQixDQUFUO0FBRUEsV0FBTyxJQUFQO0FBRUEsR0F6VmdDO0FBMlZqQzJFLEVBQUFBLEdBQUcsRUFBRSxVQUFXeEQsQ0FBWCxFQUFlO0FBRW5CLFNBQUtyQixDQUFMLEdBQVM0RSxJQUFJLENBQUNDLEdBQUwsQ0FBVSxLQUFLN0UsQ0FBZixFQUFrQnFCLENBQUMsQ0FBQ3JCLENBQXBCLENBQVQ7QUFDQSxTQUFLQyxDQUFMLEdBQVMyRSxJQUFJLENBQUNDLEdBQUwsQ0FBVSxLQUFLNUUsQ0FBZixFQUFrQm9CLENBQUMsQ0FBQ3BCLENBQXBCLENBQVQ7QUFDQSxTQUFLQyxDQUFMLEdBQVMwRSxJQUFJLENBQUNDLEdBQUwsQ0FBVSxLQUFLM0UsQ0FBZixFQUFrQm1CLENBQUMsQ0FBQ25CLENBQXBCLENBQVQ7QUFFQSxXQUFPLElBQVA7QUFFQSxHQW5XZ0M7QUFxV2pDNEUsRUFBQUEsS0FBSyxFQUFFLFVBQVdILEdBQVgsRUFBZ0JFLEdBQWhCLEVBQXNCO0FBRTVCO0FBRUEsU0FBSzdFLENBQUwsR0FBUzRFLElBQUksQ0FBQ0MsR0FBTCxDQUFVRixHQUFHLENBQUMzRSxDQUFkLEVBQWlCNEUsSUFBSSxDQUFDRCxHQUFMLENBQVVFLEdBQUcsQ0FBQzdFLENBQWQsRUFBaUIsS0FBS0EsQ0FBdEIsQ0FBakIsQ0FBVDtBQUNBLFNBQUtDLENBQUwsR0FBUzJFLElBQUksQ0FBQ0MsR0FBTCxDQUFVRixHQUFHLENBQUMxRSxDQUFkLEVBQWlCMkUsSUFBSSxDQUFDRCxHQUFMLENBQVVFLEdBQUcsQ0FBQzVFLENBQWQsRUFBaUIsS0FBS0EsQ0FBdEIsQ0FBakIsQ0FBVDtBQUNBLFNBQUtDLENBQUwsR0FBUzBFLElBQUksQ0FBQ0MsR0FBTCxDQUFVRixHQUFHLENBQUN6RSxDQUFkLEVBQWlCMEUsSUFBSSxDQUFDRCxHQUFMLENBQVVFLEdBQUcsQ0FBQzNFLENBQWQsRUFBaUIsS0FBS0EsQ0FBdEIsQ0FBakIsQ0FBVDtBQUVBLFdBQU8sSUFBUDtBQUVBLEdBL1dnQztBQWlYakM2RSxFQUFBQSxXQUFXLEVBQUUsVUFBV0MsTUFBWCxFQUFtQkMsTUFBbkIsRUFBNEI7QUFFeEMsU0FBS2pGLENBQUwsR0FBUzRFLElBQUksQ0FBQ0MsR0FBTCxDQUFVRyxNQUFWLEVBQWtCSixJQUFJLENBQUNELEdBQUwsQ0FBVU0sTUFBVixFQUFrQixLQUFLakYsQ0FBdkIsQ0FBbEIsQ0FBVDtBQUNBLFNBQUtDLENBQUwsR0FBUzJFLElBQUksQ0FBQ0MsR0FBTCxDQUFVRyxNQUFWLEVBQWtCSixJQUFJLENBQUNELEdBQUwsQ0FBVU0sTUFBVixFQUFrQixLQUFLaEYsQ0FBdkIsQ0FBbEIsQ0FBVDtBQUNBLFNBQUtDLENBQUwsR0FBUzBFLElBQUksQ0FBQ0MsR0FBTCxDQUFVRyxNQUFWLEVBQWtCSixJQUFJLENBQUNELEdBQUwsQ0FBVU0sTUFBVixFQUFrQixLQUFLL0UsQ0FBdkIsQ0FBbEIsQ0FBVDtBQUVBLFdBQU8sSUFBUDtBQUVBLEdBelhnQztBQTJYakNnRixFQUFBQSxXQUFXLEVBQUUsVUFBV1AsR0FBWCxFQUFnQkUsR0FBaEIsRUFBc0I7QUFFbEMsUUFBSU0sTUFBTSxHQUFHLEtBQUtBLE1BQUwsRUFBYjtBQUVBLFdBQU8sS0FBS1QsWUFBTCxDQUFtQlMsTUFBTSxJQUFJLENBQTdCLEVBQWlDN0MsY0FBakMsQ0FBaURzQyxJQUFJLENBQUNDLEdBQUwsQ0FBVUYsR0FBVixFQUFlQyxJQUFJLENBQUNELEdBQUwsQ0FBVUUsR0FBVixFQUFlTSxNQUFmLENBQWYsQ0FBakQsQ0FBUDtBQUVBLEdBallnQztBQW1ZakNDLEVBQUFBLEtBQUssRUFBRSxZQUFZO0FBRWxCLFNBQUtwRixDQUFMLEdBQVM0RSxJQUFJLENBQUNRLEtBQUwsQ0FBWSxLQUFLcEYsQ0FBakIsQ0FBVDtBQUNBLFNBQUtDLENBQUwsR0FBUzJFLElBQUksQ0FBQ1EsS0FBTCxDQUFZLEtBQUtuRixDQUFqQixDQUFUO0FBQ0EsU0FBS0MsQ0FBTCxHQUFTMEUsSUFBSSxDQUFDUSxLQUFMLENBQVksS0FBS2xGLENBQWpCLENBQVQ7QUFFQSxXQUFPLElBQVA7QUFFQSxHQTNZZ0M7QUE2WWpDbUYsRUFBQUEsSUFBSSxFQUFFLFlBQVk7QUFFakIsU0FBS3JGLENBQUwsR0FBUzRFLElBQUksQ0FBQ1MsSUFBTCxDQUFXLEtBQUtyRixDQUFoQixDQUFUO0FBQ0EsU0FBS0MsQ0FBTCxHQUFTMkUsSUFBSSxDQUFDUyxJQUFMLENBQVcsS0FBS3BGLENBQWhCLENBQVQ7QUFDQSxTQUFLQyxDQUFMLEdBQVMwRSxJQUFJLENBQUNTLElBQUwsQ0FBVyxLQUFLbkYsQ0FBaEIsQ0FBVDtBQUVBLFdBQU8sSUFBUDtBQUVBLEdBclpnQztBQXVaakNvRixFQUFBQSxLQUFLLEVBQUUsWUFBWTtBQUVsQixTQUFLdEYsQ0FBTCxHQUFTNEUsSUFBSSxDQUFDVSxLQUFMLENBQVksS0FBS3RGLENBQWpCLENBQVQ7QUFDQSxTQUFLQyxDQUFMLEdBQVMyRSxJQUFJLENBQUNVLEtBQUwsQ0FBWSxLQUFLckYsQ0FBakIsQ0FBVDtBQUNBLFNBQUtDLENBQUwsR0FBUzBFLElBQUksQ0FBQ1UsS0FBTCxDQUFZLEtBQUtwRixDQUFqQixDQUFUO0FBRUEsV0FBTyxJQUFQO0FBRUEsR0EvWmdDO0FBaWFqQ3FGLEVBQUFBLFdBQVcsRUFBRSxZQUFZO0FBRXhCLFNBQUt2RixDQUFMLEdBQVcsS0FBS0EsQ0FBTCxHQUFTLENBQVgsR0FBaUI0RSxJQUFJLENBQUNTLElBQUwsQ0FBVyxLQUFLckYsQ0FBaEIsQ0FBakIsR0FBdUM0RSxJQUFJLENBQUNRLEtBQUwsQ0FBWSxLQUFLcEYsQ0FBakIsQ0FBaEQ7QUFDQSxTQUFLQyxDQUFMLEdBQVcsS0FBS0EsQ0FBTCxHQUFTLENBQVgsR0FBaUIyRSxJQUFJLENBQUNTLElBQUwsQ0FBVyxLQUFLcEYsQ0FBaEIsQ0FBakIsR0FBdUMyRSxJQUFJLENBQUNRLEtBQUwsQ0FBWSxLQUFLbkYsQ0FBakIsQ0FBaEQ7QUFDQSxTQUFLQyxDQUFMLEdBQVcsS0FBS0EsQ0FBTCxHQUFTLENBQVgsR0FBaUIwRSxJQUFJLENBQUNTLElBQUwsQ0FBVyxLQUFLbkYsQ0FBaEIsQ0FBakIsR0FBdUMwRSxJQUFJLENBQUNRLEtBQUwsQ0FBWSxLQUFLbEYsQ0FBakIsQ0FBaEQ7QUFFQSxXQUFPLElBQVA7QUFFQSxHQXphZ0M7QUEyYWpDc0YsRUFBQUEsTUFBTSxFQUFFLFlBQVk7QUFFbkIsU0FBS3hGLENBQUwsR0FBUyxDQUFFLEtBQUtBLENBQWhCO0FBQ0EsU0FBS0MsQ0FBTCxHQUFTLENBQUUsS0FBS0EsQ0FBaEI7QUFDQSxTQUFLQyxDQUFMLEdBQVMsQ0FBRSxLQUFLQSxDQUFoQjtBQUVBLFdBQU8sSUFBUDtBQUVBLEdBbmJnQztBQXFiakN1RixFQUFBQSxHQUFHLEVBQUUsVUFBV3BFLENBQVgsRUFBZTtBQUVuQixXQUFPLEtBQUtyQixDQUFMLEdBQVNxQixDQUFDLENBQUNyQixDQUFYLEdBQWUsS0FBS0MsQ0FBTCxHQUFTb0IsQ0FBQyxDQUFDcEIsQ0FBMUIsR0FBOEIsS0FBS0MsQ0FBTCxHQUFTbUIsQ0FBQyxDQUFDbkIsQ0FBaEQ7QUFFQSxHQXpiZ0M7QUEyYmpDO0FBRUF3RixFQUFBQSxRQUFRLEVBQUUsWUFBWTtBQUVyQixXQUFPLEtBQUsxRixDQUFMLEdBQVMsS0FBS0EsQ0FBZCxHQUFrQixLQUFLQyxDQUFMLEdBQVMsS0FBS0EsQ0FBaEMsR0FBb0MsS0FBS0MsQ0FBTCxHQUFTLEtBQUtBLENBQXpEO0FBRUEsR0FqY2dDO0FBbWNqQ2lGLEVBQUFBLE1BQU0sRUFBRSxZQUFZO0FBRW5CLFdBQU9QLElBQUksQ0FBQ2UsSUFBTCxDQUFXLEtBQUszRixDQUFMLEdBQVMsS0FBS0EsQ0FBZCxHQUFrQixLQUFLQyxDQUFMLEdBQVMsS0FBS0EsQ0FBaEMsR0FBb0MsS0FBS0MsQ0FBTCxHQUFTLEtBQUtBLENBQTdELENBQVA7QUFFQSxHQXZjZ0M7QUF5Y2pDMEYsRUFBQUEsZUFBZSxFQUFFLFlBQVk7QUFFNUIsV0FBT2hCLElBQUksQ0FBQ2lCLEdBQUwsQ0FBVSxLQUFLN0YsQ0FBZixJQUFxQjRFLElBQUksQ0FBQ2lCLEdBQUwsQ0FBVSxLQUFLNUYsQ0FBZixDQUFyQixHQUEwQzJFLElBQUksQ0FBQ2lCLEdBQUwsQ0FBVSxLQUFLM0YsQ0FBZixDQUFqRDtBQUVBLEdBN2NnQztBQStjakNzRSxFQUFBQSxTQUFTLEVBQUUsWUFBWTtBQUV0QixXQUFPLEtBQUtFLFlBQUwsQ0FBbUIsS0FBS1MsTUFBTCxNQUFpQixDQUFwQyxDQUFQO0FBRUEsR0FuZGdDO0FBcWRqQ1csRUFBQUEsU0FBUyxFQUFFLFVBQVdYLE1BQVgsRUFBb0I7QUFFOUIsV0FBTyxLQUFLWCxTQUFMLEdBQWlCbEMsY0FBakIsQ0FBaUM2QyxNQUFqQyxDQUFQO0FBRUEsR0F6ZGdDO0FBMmRqQ1ksRUFBQUEsSUFBSSxFQUFFLFVBQVcxRSxDQUFYLEVBQWMyRSxLQUFkLEVBQXNCO0FBRTNCLFNBQUtoRyxDQUFMLElBQVUsQ0FBRXFCLENBQUMsQ0FBQ3JCLENBQUYsR0FBTSxLQUFLQSxDQUFiLElBQW1CZ0csS0FBN0I7QUFDQSxTQUFLL0YsQ0FBTCxJQUFVLENBQUVvQixDQUFDLENBQUNwQixDQUFGLEdBQU0sS0FBS0EsQ0FBYixJQUFtQitGLEtBQTdCO0FBQ0EsU0FBSzlGLENBQUwsSUFBVSxDQUFFbUIsQ0FBQyxDQUFDbkIsQ0FBRixHQUFNLEtBQUtBLENBQWIsSUFBbUI4RixLQUE3QjtBQUVBLFdBQU8sSUFBUDtBQUVBLEdBbmVnQztBQXFlakNDLEVBQUFBLFdBQVcsRUFBRSxVQUFXQyxFQUFYLEVBQWVDLEVBQWYsRUFBbUJILEtBQW5CLEVBQTJCO0FBRXZDLFdBQU8sS0FBSzlELFVBQUwsQ0FBaUJpRSxFQUFqQixFQUFxQkQsRUFBckIsRUFBMEI1RCxjQUExQixDQUEwQzBELEtBQTFDLEVBQWtEMUUsR0FBbEQsQ0FBdUQ0RSxFQUF2RCxDQUFQO0FBRUEsR0F6ZWdDO0FBMmVqQ0UsRUFBQUEsS0FBSyxFQUFFLFVBQVcvRSxDQUFYLEVBQWNFLENBQWQsRUFBa0I7QUFFeEIsUUFBS0EsQ0FBQyxLQUFLQyxTQUFYLEVBQXVCO0FBRXRCQyxNQUFBQSxPQUFPLENBQUNDLElBQVIsQ0FBYywyRkFBZDtBQUNBLGFBQU8sS0FBSzJFLFlBQUwsQ0FBbUJoRixDQUFuQixFQUFzQkUsQ0FBdEIsQ0FBUDtBQUVBOztBQUVELFdBQU8sS0FBSzhFLFlBQUwsQ0FBbUIsSUFBbkIsRUFBeUJoRixDQUF6QixDQUFQO0FBRUEsR0F0ZmdDO0FBd2ZqQ2dGLEVBQUFBLFlBQVksRUFBRSxVQUFXdkUsQ0FBWCxFQUFjQyxDQUFkLEVBQWtCO0FBRS9CLFFBQUl1RSxFQUFFLEdBQUd4RSxDQUFDLENBQUM5QixDQUFYO0FBQUEsUUFBY3VHLEVBQUUsR0FBR3pFLENBQUMsQ0FBQzdCLENBQXJCO0FBQUEsUUFBd0J1RyxFQUFFLEdBQUcxRSxDQUFDLENBQUM1QixDQUEvQjtBQUNBLFFBQUl1RyxFQUFFLEdBQUcxRSxDQUFDLENBQUMvQixDQUFYO0FBQUEsUUFBYzBHLEVBQUUsR0FBRzNFLENBQUMsQ0FBQzlCLENBQXJCO0FBQUEsUUFBd0IwRyxFQUFFLEdBQUc1RSxDQUFDLENBQUM3QixDQUEvQjtBQUVBLFNBQUtGLENBQUwsR0FBU3VHLEVBQUUsR0FBR0ksRUFBTCxHQUFVSCxFQUFFLEdBQUdFLEVBQXhCO0FBQ0EsU0FBS3pHLENBQUwsR0FBU3VHLEVBQUUsR0FBR0MsRUFBTCxHQUFVSCxFQUFFLEdBQUdLLEVBQXhCO0FBQ0EsU0FBS3pHLENBQUwsR0FBU29HLEVBQUUsR0FBR0ksRUFBTCxHQUFVSCxFQUFFLEdBQUdFLEVBQXhCO0FBRUEsV0FBTyxJQUFQO0FBRUEsR0FuZ0JnQztBQXFnQmpDRyxFQUFBQSxlQUFlLEVBQUUsVUFBV0MsTUFBWCxFQUFvQjtBQUVwQyxRQUFJcEcsTUFBTSxHQUFHb0csTUFBTSxDQUFDcEIsR0FBUCxDQUFZLElBQVosSUFBcUJvQixNQUFNLENBQUNuQixRQUFQLEVBQWxDO0FBRUEsV0FBTyxLQUFLdEUsSUFBTCxDQUFXeUYsTUFBWCxFQUFvQnZFLGNBQXBCLENBQW9DN0IsTUFBcEMsQ0FBUDtBQUVBLEdBM2dCZ0M7QUE2Z0JqQ3FHLEVBQUFBLGNBQWMsRUFBRSxZQUFZO0FBRTNCLFFBQUlaLEVBQUUsR0FBRyxJQUFJbkcsT0FBSixFQUFUO0FBRUEsV0FBTyxTQUFTK0csY0FBVCxDQUF5QkMsV0FBekIsRUFBdUM7QUFFN0NiLE1BQUFBLEVBQUUsQ0FBQzlFLElBQUgsQ0FBUyxJQUFULEVBQWdCd0YsZUFBaEIsQ0FBaUNHLFdBQWpDO0FBRUEsYUFBTyxLQUFLOUUsR0FBTCxDQUFVaUUsRUFBVixDQUFQO0FBRUEsS0FORDtBQVFBLEdBWmUsRUE3Z0JpQjtBQTJoQmpDYyxFQUFBQSxPQUFPLEVBQUUsWUFBWTtBQUVwQjtBQUNBO0FBRUEsUUFBSWQsRUFBRSxHQUFHLElBQUluRyxPQUFKLEVBQVQ7QUFFQSxXQUFPLFNBQVNpSCxPQUFULENBQWtCQyxNQUFsQixFQUEyQjtBQUVqQyxhQUFPLEtBQUtoRixHQUFMLENBQVVpRSxFQUFFLENBQUM5RSxJQUFILENBQVM2RixNQUFULEVBQWtCM0UsY0FBbEIsQ0FBa0MsSUFBSSxLQUFLbUQsR0FBTCxDQUFVd0IsTUFBVixDQUF0QyxDQUFWLENBQVA7QUFFQSxLQUpEO0FBTUEsR0FiUSxFQTNoQndCO0FBMGlCakNDLEVBQUFBLE9BQU8sRUFBRSxVQUFXN0YsQ0FBWCxFQUFlO0FBRXZCLFFBQUk4RixLQUFLLEdBQUcsS0FBSzFCLEdBQUwsQ0FBVXBFLENBQVYsSUFBa0J1RCxJQUFJLENBQUNlLElBQUwsQ0FBVyxLQUFLRCxRQUFMLEtBQWtCckUsQ0FBQyxDQUFDcUUsUUFBRixFQUE3QixDQUE5QixDQUZ1QixDQUl2Qjs7QUFFQSxXQUFPZCxJQUFJLENBQUN3QyxJQUFMLENBQVd2SCxLQUFLLENBQUNpRixLQUFOLENBQWFxQyxLQUFiLEVBQW9CLENBQUUsQ0FBdEIsRUFBeUIsQ0FBekIsQ0FBWCxDQUFQO0FBRUEsR0FsakJnQztBQW9qQmpDRSxFQUFBQSxVQUFVLEVBQUUsVUFBV2hHLENBQVgsRUFBZTtBQUUxQixXQUFPdUQsSUFBSSxDQUFDZSxJQUFMLENBQVcsS0FBSzJCLGlCQUFMLENBQXdCakcsQ0FBeEIsQ0FBWCxDQUFQO0FBRUEsR0F4akJnQztBQTBqQmpDaUcsRUFBQUEsaUJBQWlCLEVBQUUsVUFBV2pHLENBQVgsRUFBZTtBQUVqQyxRQUFJa0csRUFBRSxHQUFHLEtBQUt2SCxDQUFMLEdBQVNxQixDQUFDLENBQUNyQixDQUFwQjtBQUFBLFFBQXVCd0gsRUFBRSxHQUFHLEtBQUt2SCxDQUFMLEdBQVNvQixDQUFDLENBQUNwQixDQUF2QztBQUFBLFFBQTBDd0gsRUFBRSxHQUFHLEtBQUt2SCxDQUFMLEdBQVNtQixDQUFDLENBQUNuQixDQUExRDtBQUVBLFdBQU9xSCxFQUFFLEdBQUdBLEVBQUwsR0FBVUMsRUFBRSxHQUFHQSxFQUFmLEdBQW9CQyxFQUFFLEdBQUdBLEVBQWhDO0FBRUEsR0Foa0JnQztBQWtrQmpDQyxFQUFBQSxtQkFBbUIsRUFBRSxVQUFXckcsQ0FBWCxFQUFlO0FBRW5DLFdBQU91RCxJQUFJLENBQUNpQixHQUFMLENBQVUsS0FBSzdGLENBQUwsR0FBU3FCLENBQUMsQ0FBQ3JCLENBQXJCLElBQTJCNEUsSUFBSSxDQUFDaUIsR0FBTCxDQUFVLEtBQUs1RixDQUFMLEdBQVNvQixDQUFDLENBQUNwQixDQUFyQixDQUEzQixHQUFzRDJFLElBQUksQ0FBQ2lCLEdBQUwsQ0FBVSxLQUFLM0YsQ0FBTCxHQUFTbUIsQ0FBQyxDQUFDbkIsQ0FBckIsQ0FBN0Q7QUFFQSxHQXRrQmdDO0FBd2tCakN5SCxFQUFBQSxnQkFBZ0IsRUFBRSxVQUFXOUYsQ0FBWCxFQUFlO0FBRWhDLFdBQU8sS0FBSytGLHNCQUFMLENBQTZCL0YsQ0FBQyxDQUFDZ0csTUFBL0IsRUFBdUNoRyxDQUFDLENBQUNpRyxHQUF6QyxFQUE4Q2pHLENBQUMsQ0FBQ3NGLEtBQWhELENBQVA7QUFFQSxHQTVrQmdDO0FBOGtCakNTLEVBQUFBLHNCQUFzQixFQUFFLFVBQVdDLE1BQVgsRUFBbUJDLEdBQW5CLEVBQXdCWCxLQUF4QixFQUFnQztBQUV2RCxRQUFJWSxZQUFZLEdBQUduRCxJQUFJLENBQUNvRCxHQUFMLENBQVVGLEdBQVYsSUFBa0JELE1BQXJDO0FBRUEsU0FBSzdILENBQUwsR0FBUytILFlBQVksR0FBR25ELElBQUksQ0FBQ29ELEdBQUwsQ0FBVWIsS0FBVixDQUF4QjtBQUNBLFNBQUtsSCxDQUFMLEdBQVMyRSxJQUFJLENBQUNxRCxHQUFMLENBQVVILEdBQVYsSUFBa0JELE1BQTNCO0FBQ0EsU0FBSzNILENBQUwsR0FBUzZILFlBQVksR0FBR25ELElBQUksQ0FBQ3FELEdBQUwsQ0FBVWQsS0FBVixDQUF4QjtBQUVBLFdBQU8sSUFBUDtBQUVBLEdBeGxCZ0M7QUEwbEJqQ2UsRUFBQUEsa0JBQWtCLEVBQUUsVUFBV0MsQ0FBWCxFQUFlO0FBRWxDLFdBQU8sS0FBS0Msd0JBQUwsQ0FBK0JELENBQUMsQ0FBQ04sTUFBakMsRUFBeUNNLENBQUMsQ0FBQ2hCLEtBQTNDLEVBQWtEZ0IsQ0FBQyxDQUFDbEksQ0FBcEQsQ0FBUDtBQUVBLEdBOWxCZ0M7QUFnbUJqQ21JLEVBQUFBLHdCQUF3QixFQUFFLFVBQVdQLE1BQVgsRUFBbUJWLEtBQW5CLEVBQTBCbEgsQ0FBMUIsRUFBOEI7QUFFdkQsU0FBS0QsQ0FBTCxHQUFTNkgsTUFBTSxHQUFHakQsSUFBSSxDQUFDb0QsR0FBTCxDQUFVYixLQUFWLENBQWxCO0FBQ0EsU0FBS2xILENBQUwsR0FBU0EsQ0FBVDtBQUNBLFNBQUtDLENBQUwsR0FBUzJILE1BQU0sR0FBR2pELElBQUksQ0FBQ3FELEdBQUwsQ0FBVWQsS0FBVixDQUFsQjtBQUVBLFdBQU8sSUFBUDtBQUVBLEdBeG1CZ0M7QUEwbUJqQ2tCLEVBQUFBLHFCQUFxQixFQUFFLFVBQVdsRixDQUFYLEVBQWU7QUFFckMsUUFBSUMsQ0FBQyxHQUFHRCxDQUFDLENBQUNFLFFBQVY7QUFFQSxTQUFLckQsQ0FBTCxHQUFTb0QsQ0FBQyxDQUFFLEVBQUYsQ0FBVjtBQUNBLFNBQUtuRCxDQUFMLEdBQVNtRCxDQUFDLENBQUUsRUFBRixDQUFWO0FBQ0EsU0FBS2xELENBQUwsR0FBU2tELENBQUMsQ0FBRSxFQUFGLENBQVY7QUFFQSxXQUFPLElBQVA7QUFFQSxHQXBuQmdDO0FBc25CakNrRixFQUFBQSxrQkFBa0IsRUFBRSxVQUFXbkYsQ0FBWCxFQUFlO0FBRWxDLFFBQUlvRixFQUFFLEdBQUcsS0FBS0MsbUJBQUwsQ0FBMEJyRixDQUExQixFQUE2QixDQUE3QixFQUFpQ2dDLE1BQWpDLEVBQVQ7QUFDQSxRQUFJc0QsRUFBRSxHQUFHLEtBQUtELG1CQUFMLENBQTBCckYsQ0FBMUIsRUFBNkIsQ0FBN0IsRUFBaUNnQyxNQUFqQyxFQUFUO0FBQ0EsUUFBSXVELEVBQUUsR0FBRyxLQUFLRixtQkFBTCxDQUEwQnJGLENBQTFCLEVBQTZCLENBQTdCLEVBQWlDZ0MsTUFBakMsRUFBVDtBQUVBLFNBQUtuRixDQUFMLEdBQVN1SSxFQUFUO0FBQ0EsU0FBS3RJLENBQUwsR0FBU3dJLEVBQVQ7QUFDQSxTQUFLdkksQ0FBTCxHQUFTd0ksRUFBVDtBQUVBLFdBQU8sSUFBUDtBQUVBLEdBbG9CZ0M7QUFvb0JqQ0YsRUFBQUEsbUJBQW1CLEVBQUUsVUFBV3JGLENBQVgsRUFBY3JDLEtBQWQsRUFBc0I7QUFFMUMsV0FBTyxLQUFLNkgsU0FBTCxDQUFnQnhGLENBQUMsQ0FBQ0UsUUFBbEIsRUFBNEJ2QyxLQUFLLEdBQUcsQ0FBcEMsQ0FBUDtBQUVBLEdBeG9CZ0M7QUEwb0JqQzhILEVBQUFBLE1BQU0sRUFBRSxVQUFXdkgsQ0FBWCxFQUFlO0FBRXRCLFdBQVdBLENBQUMsQ0FBQ3JCLENBQUYsS0FBUSxLQUFLQSxDQUFmLElBQXdCcUIsQ0FBQyxDQUFDcEIsQ0FBRixLQUFRLEtBQUtBLENBQXJDLElBQThDb0IsQ0FBQyxDQUFDbkIsQ0FBRixLQUFRLEtBQUtBLENBQXBFO0FBRUEsR0E5b0JnQztBQWdwQmpDeUksRUFBQUEsU0FBUyxFQUFFLFVBQVdFLEtBQVgsRUFBa0JDLE1BQWxCLEVBQTJCO0FBRXJDLFFBQUtBLE1BQU0sS0FBS3RILFNBQWhCLEVBQTRCc0gsTUFBTSxHQUFHLENBQVQ7QUFFNUIsU0FBSzlJLENBQUwsR0FBUzZJLEtBQUssQ0FBRUMsTUFBRixDQUFkO0FBQ0EsU0FBSzdJLENBQUwsR0FBUzRJLEtBQUssQ0FBRUMsTUFBTSxHQUFHLENBQVgsQ0FBZDtBQUNBLFNBQUs1SSxDQUFMLEdBQVMySSxLQUFLLENBQUVDLE1BQU0sR0FBRyxDQUFYLENBQWQ7QUFFQSxXQUFPLElBQVA7QUFFQSxHQTFwQmdDO0FBNHBCakNDLEVBQUFBLE9BQU8sRUFBRSxVQUFXRixLQUFYLEVBQWtCQyxNQUFsQixFQUEyQjtBQUVuQyxRQUFLRCxLQUFLLEtBQUtySCxTQUFmLEVBQTJCcUgsS0FBSyxHQUFHLEVBQVI7QUFDM0IsUUFBS0MsTUFBTSxLQUFLdEgsU0FBaEIsRUFBNEJzSCxNQUFNLEdBQUcsQ0FBVDtBQUU1QkQsSUFBQUEsS0FBSyxDQUFFQyxNQUFGLENBQUwsR0FBa0IsS0FBSzlJLENBQXZCO0FBQ0E2SSxJQUFBQSxLQUFLLENBQUVDLE1BQU0sR0FBRyxDQUFYLENBQUwsR0FBc0IsS0FBSzdJLENBQTNCO0FBQ0E0SSxJQUFBQSxLQUFLLENBQUVDLE1BQU0sR0FBRyxDQUFYLENBQUwsR0FBc0IsS0FBSzVJLENBQTNCO0FBRUEsV0FBTzJJLEtBQVA7QUFFQSxHQXZxQmdDO0FBeXFCakNHLEVBQUFBLG1CQUFtQixFQUFFLFVBQVdDLFNBQVgsRUFBc0JuSSxLQUF0QixFQUE2QmdJLE1BQTdCLEVBQXNDO0FBRTFELFFBQUtBLE1BQU0sS0FBS3RILFNBQWhCLEVBQTRCO0FBRTNCQyxNQUFBQSxPQUFPLENBQUNDLElBQVIsQ0FBYyxxRUFBZDtBQUVBOztBQUVELFNBQUsxQixDQUFMLEdBQVNpSixTQUFTLENBQUNDLElBQVYsQ0FBZ0JwSSxLQUFoQixDQUFUO0FBQ0EsU0FBS2IsQ0FBTCxHQUFTZ0osU0FBUyxDQUFDRSxJQUFWLENBQWdCckksS0FBaEIsQ0FBVDtBQUNBLFNBQUtaLENBQUwsR0FBUytJLFNBQVMsQ0FBQ0csSUFBVixDQUFnQnRJLEtBQWhCLENBQVQ7QUFFQSxXQUFPLElBQVA7QUFFQTtBQXZyQmdDLENBQWxDO0FBNHJCQSxTQUFTZixPQUFUIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgX01hdGggfSBmcm9tICcuL01hdGguanMnO1xuaW1wb3J0IHsgUXVhdGVybmlvbiB9IGZyb20gJy4vUXVhdGVybmlvbi5qcyc7XG5cbi8qKlxuICogQGF1dGhvciBtcmRvb2IgLyBodHRwOi8vbXJkb29iLmNvbS9cbiAqIEBhdXRob3Iga2lsZSAvIGh0dHA6Ly9raWxlLnN0cmF2YWdhbnphLm9yZy9cbiAqIEBhdXRob3IgcGhpbG9nYiAvIGh0dHA6Ly9ibG9nLnRoZWppdC5vcmcvXG4gKiBAYXV0aG9yIG1pa2FlbCBlbXRpbmdlciAvIGh0dHA6Ly9nb21vLnNlL1xuICogQGF1dGhvciBlZ3JhZXRoZXIgLyBodHRwOi8vZWdyYWV0aGVyLmNvbS9cbiAqIEBhdXRob3IgV2VzdExhbmdsZXkgLyBodHRwOi8vZ2l0aHViLmNvbS9XZXN0TGFuZ2xleVxuICovXG5cbmZ1bmN0aW9uIFZlY3RvcjMoIHgsIHksIHogKSB7XG5cblx0dGhpcy54ID0geCB8fCAwO1xuXHR0aGlzLnkgPSB5IHx8IDA7XG5cdHRoaXMueiA9IHogfHwgMDtcblxufVxuXG5PYmplY3QuYXNzaWduKCBWZWN0b3IzLnByb3RvdHlwZSwge1xuXG5cdGlzVmVjdG9yMzogdHJ1ZSxcblxuXHRzZXQ6IGZ1bmN0aW9uICggeCwgeSwgeiApIHtcblxuXHRcdHRoaXMueCA9IHg7XG5cdFx0dGhpcy55ID0geTtcblx0XHR0aGlzLnogPSB6O1xuXG5cdFx0cmV0dXJuIHRoaXM7XG5cblx0fSxcblxuXHRzZXRTY2FsYXI6IGZ1bmN0aW9uICggc2NhbGFyICkge1xuXG5cdFx0dGhpcy54ID0gc2NhbGFyO1xuXHRcdHRoaXMueSA9IHNjYWxhcjtcblx0XHR0aGlzLnogPSBzY2FsYXI7XG5cblx0XHRyZXR1cm4gdGhpcztcblxuXHR9LFxuXG5cdHNldFg6IGZ1bmN0aW9uICggeCApIHtcblxuXHRcdHRoaXMueCA9IHg7XG5cblx0XHRyZXR1cm4gdGhpcztcblxuXHR9LFxuXG5cdHNldFk6IGZ1bmN0aW9uICggeSApIHtcblxuXHRcdHRoaXMueSA9IHk7XG5cblx0XHRyZXR1cm4gdGhpcztcblxuXHR9LFxuXG5cdHNldFo6IGZ1bmN0aW9uICggeiApIHtcblxuXHRcdHRoaXMueiA9IHo7XG5cblx0XHRyZXR1cm4gdGhpcztcblxuXHR9LFxuXG5cdHNldENvbXBvbmVudDogZnVuY3Rpb24gKCBpbmRleCwgdmFsdWUgKSB7XG5cblx0XHRzd2l0Y2ggKCBpbmRleCApIHtcblxuXHRcdFx0Y2FzZSAwOiB0aGlzLnggPSB2YWx1ZTsgYnJlYWs7XG5cdFx0XHRjYXNlIDE6IHRoaXMueSA9IHZhbHVlOyBicmVhaztcblx0XHRcdGNhc2UgMjogdGhpcy56ID0gdmFsdWU7IGJyZWFrO1xuXHRcdFx0ZGVmYXVsdDogdGhyb3cgbmV3IEVycm9yKCAnaW5kZXggaXMgb3V0IG9mIHJhbmdlOiAnICsgaW5kZXggKTtcblxuXHRcdH1cblxuXHRcdHJldHVybiB0aGlzO1xuXG5cdH0sXG5cblx0Z2V0Q29tcG9uZW50OiBmdW5jdGlvbiAoIGluZGV4ICkge1xuXG5cdFx0c3dpdGNoICggaW5kZXggKSB7XG5cblx0XHRcdGNhc2UgMDogcmV0dXJuIHRoaXMueDtcblx0XHRcdGNhc2UgMTogcmV0dXJuIHRoaXMueTtcblx0XHRcdGNhc2UgMjogcmV0dXJuIHRoaXMuejtcblx0XHRcdGRlZmF1bHQ6IHRocm93IG5ldyBFcnJvciggJ2luZGV4IGlzIG91dCBvZiByYW5nZTogJyArIGluZGV4ICk7XG5cblx0XHR9XG5cblx0fSxcblxuXHRjbG9uZTogZnVuY3Rpb24gKCkge1xuXG5cdFx0cmV0dXJuIG5ldyB0aGlzLmNvbnN0cnVjdG9yKCB0aGlzLngsIHRoaXMueSwgdGhpcy56ICk7XG5cblx0fSxcblxuXHRjb3B5OiBmdW5jdGlvbiAoIHYgKSB7XG5cblx0XHR0aGlzLnggPSB2Lng7XG5cdFx0dGhpcy55ID0gdi55O1xuXHRcdHRoaXMueiA9IHYuejtcblxuXHRcdHJldHVybiB0aGlzO1xuXG5cdH0sXG5cblx0YWRkOiBmdW5jdGlvbiAoIHYsIHcgKSB7XG5cblx0XHRpZiAoIHcgIT09IHVuZGVmaW5lZCApIHtcblxuXHRcdFx0Y29uc29sZS53YXJuKCAnVEhSRUUuVmVjdG9yMzogLmFkZCgpIG5vdyBvbmx5IGFjY2VwdHMgb25lIGFyZ3VtZW50LiBVc2UgLmFkZFZlY3RvcnMoIGEsIGIgKSBpbnN0ZWFkLicgKTtcblx0XHRcdHJldHVybiB0aGlzLmFkZFZlY3RvcnMoIHYsIHcgKTtcblxuXHRcdH1cblxuXHRcdHRoaXMueCArPSB2Lng7XG5cdFx0dGhpcy55ICs9IHYueTtcblx0XHR0aGlzLnogKz0gdi56O1xuXG5cdFx0cmV0dXJuIHRoaXM7XG5cblx0fSxcblxuXHRhZGRTY2FsYXI6IGZ1bmN0aW9uICggcyApIHtcblxuXHRcdHRoaXMueCArPSBzO1xuXHRcdHRoaXMueSArPSBzO1xuXHRcdHRoaXMueiArPSBzO1xuXG5cdFx0cmV0dXJuIHRoaXM7XG5cblx0fSxcblxuXHRhZGRWZWN0b3JzOiBmdW5jdGlvbiAoIGEsIGIgKSB7XG5cblx0XHR0aGlzLnggPSBhLnggKyBiLng7XG5cdFx0dGhpcy55ID0gYS55ICsgYi55O1xuXHRcdHRoaXMueiA9IGEueiArIGIuejtcblxuXHRcdHJldHVybiB0aGlzO1xuXG5cdH0sXG5cblx0YWRkU2NhbGVkVmVjdG9yOiBmdW5jdGlvbiAoIHYsIHMgKSB7XG5cblx0XHR0aGlzLnggKz0gdi54ICogcztcblx0XHR0aGlzLnkgKz0gdi55ICogcztcblx0XHR0aGlzLnogKz0gdi56ICogcztcblxuXHRcdHJldHVybiB0aGlzO1xuXG5cdH0sXG5cblx0c3ViOiBmdW5jdGlvbiAoIHYsIHcgKSB7XG5cblx0XHRpZiAoIHcgIT09IHVuZGVmaW5lZCApIHtcblxuXHRcdFx0Y29uc29sZS53YXJuKCAnVEhSRUUuVmVjdG9yMzogLnN1YigpIG5vdyBvbmx5IGFjY2VwdHMgb25lIGFyZ3VtZW50LiBVc2UgLnN1YlZlY3RvcnMoIGEsIGIgKSBpbnN0ZWFkLicgKTtcblx0XHRcdHJldHVybiB0aGlzLnN1YlZlY3RvcnMoIHYsIHcgKTtcblxuXHRcdH1cblxuXHRcdHRoaXMueCAtPSB2Lng7XG5cdFx0dGhpcy55IC09IHYueTtcblx0XHR0aGlzLnogLT0gdi56O1xuXG5cdFx0cmV0dXJuIHRoaXM7XG5cblx0fSxcblxuXHRzdWJTY2FsYXI6IGZ1bmN0aW9uICggcyApIHtcblxuXHRcdHRoaXMueCAtPSBzO1xuXHRcdHRoaXMueSAtPSBzO1xuXHRcdHRoaXMueiAtPSBzO1xuXG5cdFx0cmV0dXJuIHRoaXM7XG5cblx0fSxcblxuXHRzdWJWZWN0b3JzOiBmdW5jdGlvbiAoIGEsIGIgKSB7XG5cblx0XHR0aGlzLnggPSBhLnggLSBiLng7XG5cdFx0dGhpcy55ID0gYS55IC0gYi55O1xuXHRcdHRoaXMueiA9IGEueiAtIGIuejtcblxuXHRcdHJldHVybiB0aGlzO1xuXG5cdH0sXG5cblx0bXVsdGlwbHk6IGZ1bmN0aW9uICggdiwgdyApIHtcblxuXHRcdGlmICggdyAhPT0gdW5kZWZpbmVkICkge1xuXG5cdFx0XHRjb25zb2xlLndhcm4oICdUSFJFRS5WZWN0b3IzOiAubXVsdGlwbHkoKSBub3cgb25seSBhY2NlcHRzIG9uZSBhcmd1bWVudC4gVXNlIC5tdWx0aXBseVZlY3RvcnMoIGEsIGIgKSBpbnN0ZWFkLicgKTtcblx0XHRcdHJldHVybiB0aGlzLm11bHRpcGx5VmVjdG9ycyggdiwgdyApO1xuXG5cdFx0fVxuXG5cdFx0dGhpcy54ICo9IHYueDtcblx0XHR0aGlzLnkgKj0gdi55O1xuXHRcdHRoaXMueiAqPSB2Lno7XG5cblx0XHRyZXR1cm4gdGhpcztcblxuXHR9LFxuXG5cdG11bHRpcGx5U2NhbGFyOiBmdW5jdGlvbiAoIHNjYWxhciApIHtcblxuXHRcdHRoaXMueCAqPSBzY2FsYXI7XG5cdFx0dGhpcy55ICo9IHNjYWxhcjtcblx0XHR0aGlzLnogKj0gc2NhbGFyO1xuXG5cdFx0cmV0dXJuIHRoaXM7XG5cblx0fSxcblxuXHRtdWx0aXBseVZlY3RvcnM6IGZ1bmN0aW9uICggYSwgYiApIHtcblxuXHRcdHRoaXMueCA9IGEueCAqIGIueDtcblx0XHR0aGlzLnkgPSBhLnkgKiBiLnk7XG5cdFx0dGhpcy56ID0gYS56ICogYi56O1xuXG5cdFx0cmV0dXJuIHRoaXM7XG5cblx0fSxcblxuXHRhcHBseUV1bGVyOiBmdW5jdGlvbiAoKSB7XG5cblx0XHR2YXIgcXVhdGVybmlvbiA9IG5ldyBRdWF0ZXJuaW9uKCk7XG5cblx0XHRyZXR1cm4gZnVuY3Rpb24gYXBwbHlFdWxlciggZXVsZXIgKSB7XG5cblx0XHRcdGlmICggISAoIGV1bGVyICYmIGV1bGVyLmlzRXVsZXIgKSApIHtcblxuXHRcdFx0XHRjb25zb2xlLmVycm9yKCAnVEhSRUUuVmVjdG9yMzogLmFwcGx5RXVsZXIoKSBub3cgZXhwZWN0cyBhbiBFdWxlciByb3RhdGlvbiByYXRoZXIgdGhhbiBhIFZlY3RvcjMgYW5kIG9yZGVyLicgKTtcblxuXHRcdFx0fVxuXG5cdFx0XHRyZXR1cm4gdGhpcy5hcHBseVF1YXRlcm5pb24oIHF1YXRlcm5pb24uc2V0RnJvbUV1bGVyKCBldWxlciApICk7XG5cblx0XHR9O1xuXG5cdH0oKSxcblxuXHRhcHBseUF4aXNBbmdsZTogZnVuY3Rpb24gKCkge1xuXG5cdFx0dmFyIHF1YXRlcm5pb24gPSBuZXcgUXVhdGVybmlvbigpO1xuXG5cdFx0cmV0dXJuIGZ1bmN0aW9uIGFwcGx5QXhpc0FuZ2xlKCBheGlzLCBhbmdsZSApIHtcblxuXHRcdFx0cmV0dXJuIHRoaXMuYXBwbHlRdWF0ZXJuaW9uKCBxdWF0ZXJuaW9uLnNldEZyb21BeGlzQW5nbGUoIGF4aXMsIGFuZ2xlICkgKTtcblxuXHRcdH07XG5cblx0fSgpLFxuXG5cdGFwcGx5TWF0cml4MzogZnVuY3Rpb24gKCBtICkge1xuXG5cdFx0dmFyIHggPSB0aGlzLngsIHkgPSB0aGlzLnksIHogPSB0aGlzLno7XG5cdFx0dmFyIGUgPSBtLmVsZW1lbnRzO1xuXG5cdFx0dGhpcy54ID0gZVsgMCBdICogeCArIGVbIDMgXSAqIHkgKyBlWyA2IF0gKiB6O1xuXHRcdHRoaXMueSA9IGVbIDEgXSAqIHggKyBlWyA0IF0gKiB5ICsgZVsgNyBdICogejtcblx0XHR0aGlzLnogPSBlWyAyIF0gKiB4ICsgZVsgNSBdICogeSArIGVbIDggXSAqIHo7XG5cblx0XHRyZXR1cm4gdGhpcztcblxuXHR9LFxuXG5cdGFwcGx5TWF0cml4NDogZnVuY3Rpb24gKCBtICkge1xuXG5cdFx0dmFyIHggPSB0aGlzLngsIHkgPSB0aGlzLnksIHogPSB0aGlzLno7XG5cdFx0dmFyIGUgPSBtLmVsZW1lbnRzO1xuXG5cdFx0dmFyIHcgPSAxIC8gKCBlWyAzIF0gKiB4ICsgZVsgNyBdICogeSArIGVbIDExIF0gKiB6ICsgZVsgMTUgXSApO1xuXG5cdFx0dGhpcy54ID0gKCBlWyAwIF0gKiB4ICsgZVsgNCBdICogeSArIGVbIDggXSAqIHogKyBlWyAxMiBdICkgKiB3O1xuXHRcdHRoaXMueSA9ICggZVsgMSBdICogeCArIGVbIDUgXSAqIHkgKyBlWyA5IF0gKiB6ICsgZVsgMTMgXSApICogdztcblx0XHR0aGlzLnogPSAoIGVbIDIgXSAqIHggKyBlWyA2IF0gKiB5ICsgZVsgMTAgXSAqIHogKyBlWyAxNCBdICkgKiB3O1xuXG5cdFx0cmV0dXJuIHRoaXM7XG5cblx0fSxcblxuXHRhcHBseVF1YXRlcm5pb246IGZ1bmN0aW9uICggcSApIHtcblxuXHRcdHZhciB4ID0gdGhpcy54LCB5ID0gdGhpcy55LCB6ID0gdGhpcy56O1xuXHRcdHZhciBxeCA9IHEueCwgcXkgPSBxLnksIHF6ID0gcS56LCBxdyA9IHEudztcblxuXHRcdC8vIGNhbGN1bGF0ZSBxdWF0ICogdmVjdG9yXG5cblx0XHR2YXIgaXggPSBxdyAqIHggKyBxeSAqIHogLSBxeiAqIHk7XG5cdFx0dmFyIGl5ID0gcXcgKiB5ICsgcXogKiB4IC0gcXggKiB6O1xuXHRcdHZhciBpeiA9IHF3ICogeiArIHF4ICogeSAtIHF5ICogeDtcblx0XHR2YXIgaXcgPSAtIHF4ICogeCAtIHF5ICogeSAtIHF6ICogejtcblxuXHRcdC8vIGNhbGN1bGF0ZSByZXN1bHQgKiBpbnZlcnNlIHF1YXRcblxuXHRcdHRoaXMueCA9IGl4ICogcXcgKyBpdyAqIC0gcXggKyBpeSAqIC0gcXogLSBpeiAqIC0gcXk7XG5cdFx0dGhpcy55ID0gaXkgKiBxdyArIGl3ICogLSBxeSArIGl6ICogLSBxeCAtIGl4ICogLSBxejtcblx0XHR0aGlzLnogPSBpeiAqIHF3ICsgaXcgKiAtIHF6ICsgaXggKiAtIHF5IC0gaXkgKiAtIHF4O1xuXG5cdFx0cmV0dXJuIHRoaXM7XG5cblx0fSxcblxuXHRwcm9qZWN0OiBmdW5jdGlvbiAoIGNhbWVyYSApIHtcblxuXHRcdHJldHVybiB0aGlzLmFwcGx5TWF0cml4NCggY2FtZXJhLm1hdHJpeFdvcmxkSW52ZXJzZSApLmFwcGx5TWF0cml4NCggY2FtZXJhLnByb2plY3Rpb25NYXRyaXggKTtcblxuXHR9LFxuXG5cdHVucHJvamVjdDogZnVuY3Rpb24gKCBjYW1lcmEgKSB7XG5cblx0XHRyZXR1cm4gdGhpcy5hcHBseU1hdHJpeDQoIGNhbWVyYS5wcm9qZWN0aW9uTWF0cml4SW52ZXJzZSApLmFwcGx5TWF0cml4NCggY2FtZXJhLm1hdHJpeFdvcmxkICk7XG5cblx0fSxcblxuXHR0cmFuc2Zvcm1EaXJlY3Rpb246IGZ1bmN0aW9uICggbSApIHtcblxuXHRcdC8vIGlucHV0OiBUSFJFRS5NYXRyaXg0IGFmZmluZSBtYXRyaXhcblx0XHQvLyB2ZWN0b3IgaW50ZXJwcmV0ZWQgYXMgYSBkaXJlY3Rpb25cblxuXHRcdHZhciB4ID0gdGhpcy54LCB5ID0gdGhpcy55LCB6ID0gdGhpcy56O1xuXHRcdHZhciBlID0gbS5lbGVtZW50cztcblxuXHRcdHRoaXMueCA9IGVbIDAgXSAqIHggKyBlWyA0IF0gKiB5ICsgZVsgOCBdICogejtcblx0XHR0aGlzLnkgPSBlWyAxIF0gKiB4ICsgZVsgNSBdICogeSArIGVbIDkgXSAqIHo7XG5cdFx0dGhpcy56ID0gZVsgMiBdICogeCArIGVbIDYgXSAqIHkgKyBlWyAxMCBdICogejtcblxuXHRcdHJldHVybiB0aGlzLm5vcm1hbGl6ZSgpO1xuXG5cdH0sXG5cblx0ZGl2aWRlOiBmdW5jdGlvbiAoIHYgKSB7XG5cblx0XHR0aGlzLnggLz0gdi54O1xuXHRcdHRoaXMueSAvPSB2Lnk7XG5cdFx0dGhpcy56IC89IHYuejtcblxuXHRcdHJldHVybiB0aGlzO1xuXG5cdH0sXG5cblx0ZGl2aWRlU2NhbGFyOiBmdW5jdGlvbiAoIHNjYWxhciApIHtcblxuXHRcdHJldHVybiB0aGlzLm11bHRpcGx5U2NhbGFyKCAxIC8gc2NhbGFyICk7XG5cblx0fSxcblxuXHRtaW46IGZ1bmN0aW9uICggdiApIHtcblxuXHRcdHRoaXMueCA9IE1hdGgubWluKCB0aGlzLngsIHYueCApO1xuXHRcdHRoaXMueSA9IE1hdGgubWluKCB0aGlzLnksIHYueSApO1xuXHRcdHRoaXMueiA9IE1hdGgubWluKCB0aGlzLnosIHYueiApO1xuXG5cdFx0cmV0dXJuIHRoaXM7XG5cblx0fSxcblxuXHRtYXg6IGZ1bmN0aW9uICggdiApIHtcblxuXHRcdHRoaXMueCA9IE1hdGgubWF4KCB0aGlzLngsIHYueCApO1xuXHRcdHRoaXMueSA9IE1hdGgubWF4KCB0aGlzLnksIHYueSApO1xuXHRcdHRoaXMueiA9IE1hdGgubWF4KCB0aGlzLnosIHYueiApO1xuXG5cdFx0cmV0dXJuIHRoaXM7XG5cblx0fSxcblxuXHRjbGFtcDogZnVuY3Rpb24gKCBtaW4sIG1heCApIHtcblxuXHRcdC8vIGFzc3VtZXMgbWluIDwgbWF4LCBjb21wb25lbnR3aXNlXG5cblx0XHR0aGlzLnggPSBNYXRoLm1heCggbWluLngsIE1hdGgubWluKCBtYXgueCwgdGhpcy54ICkgKTtcblx0XHR0aGlzLnkgPSBNYXRoLm1heCggbWluLnksIE1hdGgubWluKCBtYXgueSwgdGhpcy55ICkgKTtcblx0XHR0aGlzLnogPSBNYXRoLm1heCggbWluLnosIE1hdGgubWluKCBtYXgueiwgdGhpcy56ICkgKTtcblxuXHRcdHJldHVybiB0aGlzO1xuXG5cdH0sXG5cblx0Y2xhbXBTY2FsYXI6IGZ1bmN0aW9uICggbWluVmFsLCBtYXhWYWwgKSB7XG5cblx0XHR0aGlzLnggPSBNYXRoLm1heCggbWluVmFsLCBNYXRoLm1pbiggbWF4VmFsLCB0aGlzLnggKSApO1xuXHRcdHRoaXMueSA9IE1hdGgubWF4KCBtaW5WYWwsIE1hdGgubWluKCBtYXhWYWwsIHRoaXMueSApICk7XG5cdFx0dGhpcy56ID0gTWF0aC5tYXgoIG1pblZhbCwgTWF0aC5taW4oIG1heFZhbCwgdGhpcy56ICkgKTtcblxuXHRcdHJldHVybiB0aGlzO1xuXG5cdH0sXG5cblx0Y2xhbXBMZW5ndGg6IGZ1bmN0aW9uICggbWluLCBtYXggKSB7XG5cblx0XHR2YXIgbGVuZ3RoID0gdGhpcy5sZW5ndGgoKTtcblxuXHRcdHJldHVybiB0aGlzLmRpdmlkZVNjYWxhciggbGVuZ3RoIHx8IDEgKS5tdWx0aXBseVNjYWxhciggTWF0aC5tYXgoIG1pbiwgTWF0aC5taW4oIG1heCwgbGVuZ3RoICkgKSApO1xuXG5cdH0sXG5cblx0Zmxvb3I6IGZ1bmN0aW9uICgpIHtcblxuXHRcdHRoaXMueCA9IE1hdGguZmxvb3IoIHRoaXMueCApO1xuXHRcdHRoaXMueSA9IE1hdGguZmxvb3IoIHRoaXMueSApO1xuXHRcdHRoaXMueiA9IE1hdGguZmxvb3IoIHRoaXMueiApO1xuXG5cdFx0cmV0dXJuIHRoaXM7XG5cblx0fSxcblxuXHRjZWlsOiBmdW5jdGlvbiAoKSB7XG5cblx0XHR0aGlzLnggPSBNYXRoLmNlaWwoIHRoaXMueCApO1xuXHRcdHRoaXMueSA9IE1hdGguY2VpbCggdGhpcy55ICk7XG5cdFx0dGhpcy56ID0gTWF0aC5jZWlsKCB0aGlzLnogKTtcblxuXHRcdHJldHVybiB0aGlzO1xuXG5cdH0sXG5cblx0cm91bmQ6IGZ1bmN0aW9uICgpIHtcblxuXHRcdHRoaXMueCA9IE1hdGgucm91bmQoIHRoaXMueCApO1xuXHRcdHRoaXMueSA9IE1hdGgucm91bmQoIHRoaXMueSApO1xuXHRcdHRoaXMueiA9IE1hdGgucm91bmQoIHRoaXMueiApO1xuXG5cdFx0cmV0dXJuIHRoaXM7XG5cblx0fSxcblxuXHRyb3VuZFRvWmVybzogZnVuY3Rpb24gKCkge1xuXG5cdFx0dGhpcy54ID0gKCB0aGlzLnggPCAwICkgPyBNYXRoLmNlaWwoIHRoaXMueCApIDogTWF0aC5mbG9vciggdGhpcy54ICk7XG5cdFx0dGhpcy55ID0gKCB0aGlzLnkgPCAwICkgPyBNYXRoLmNlaWwoIHRoaXMueSApIDogTWF0aC5mbG9vciggdGhpcy55ICk7XG5cdFx0dGhpcy56ID0gKCB0aGlzLnogPCAwICkgPyBNYXRoLmNlaWwoIHRoaXMueiApIDogTWF0aC5mbG9vciggdGhpcy56ICk7XG5cblx0XHRyZXR1cm4gdGhpcztcblxuXHR9LFxuXG5cdG5lZ2F0ZTogZnVuY3Rpb24gKCkge1xuXG5cdFx0dGhpcy54ID0gLSB0aGlzLng7XG5cdFx0dGhpcy55ID0gLSB0aGlzLnk7XG5cdFx0dGhpcy56ID0gLSB0aGlzLno7XG5cblx0XHRyZXR1cm4gdGhpcztcblxuXHR9LFxuXG5cdGRvdDogZnVuY3Rpb24gKCB2ICkge1xuXG5cdFx0cmV0dXJuIHRoaXMueCAqIHYueCArIHRoaXMueSAqIHYueSArIHRoaXMueiAqIHYuejtcblxuXHR9LFxuXG5cdC8vIFRPRE8gbGVuZ3RoU3F1YXJlZD9cblxuXHRsZW5ndGhTcTogZnVuY3Rpb24gKCkge1xuXG5cdFx0cmV0dXJuIHRoaXMueCAqIHRoaXMueCArIHRoaXMueSAqIHRoaXMueSArIHRoaXMueiAqIHRoaXMuejtcblxuXHR9LFxuXG5cdGxlbmd0aDogZnVuY3Rpb24gKCkge1xuXG5cdFx0cmV0dXJuIE1hdGguc3FydCggdGhpcy54ICogdGhpcy54ICsgdGhpcy55ICogdGhpcy55ICsgdGhpcy56ICogdGhpcy56ICk7XG5cblx0fSxcblxuXHRtYW5oYXR0YW5MZW5ndGg6IGZ1bmN0aW9uICgpIHtcblxuXHRcdHJldHVybiBNYXRoLmFicyggdGhpcy54ICkgKyBNYXRoLmFicyggdGhpcy55ICkgKyBNYXRoLmFicyggdGhpcy56ICk7XG5cblx0fSxcblxuXHRub3JtYWxpemU6IGZ1bmN0aW9uICgpIHtcblxuXHRcdHJldHVybiB0aGlzLmRpdmlkZVNjYWxhciggdGhpcy5sZW5ndGgoKSB8fCAxICk7XG5cblx0fSxcblxuXHRzZXRMZW5ndGg6IGZ1bmN0aW9uICggbGVuZ3RoICkge1xuXG5cdFx0cmV0dXJuIHRoaXMubm9ybWFsaXplKCkubXVsdGlwbHlTY2FsYXIoIGxlbmd0aCApO1xuXG5cdH0sXG5cblx0bGVycDogZnVuY3Rpb24gKCB2LCBhbHBoYSApIHtcblxuXHRcdHRoaXMueCArPSAoIHYueCAtIHRoaXMueCApICogYWxwaGE7XG5cdFx0dGhpcy55ICs9ICggdi55IC0gdGhpcy55ICkgKiBhbHBoYTtcblx0XHR0aGlzLnogKz0gKCB2LnogLSB0aGlzLnogKSAqIGFscGhhO1xuXG5cdFx0cmV0dXJuIHRoaXM7XG5cblx0fSxcblxuXHRsZXJwVmVjdG9yczogZnVuY3Rpb24gKCB2MSwgdjIsIGFscGhhICkge1xuXG5cdFx0cmV0dXJuIHRoaXMuc3ViVmVjdG9ycyggdjIsIHYxICkubXVsdGlwbHlTY2FsYXIoIGFscGhhICkuYWRkKCB2MSApO1xuXG5cdH0sXG5cblx0Y3Jvc3M6IGZ1bmN0aW9uICggdiwgdyApIHtcblxuXHRcdGlmICggdyAhPT0gdW5kZWZpbmVkICkge1xuXG5cdFx0XHRjb25zb2xlLndhcm4oICdUSFJFRS5WZWN0b3IzOiAuY3Jvc3MoKSBub3cgb25seSBhY2NlcHRzIG9uZSBhcmd1bWVudC4gVXNlIC5jcm9zc1ZlY3RvcnMoIGEsIGIgKSBpbnN0ZWFkLicgKTtcblx0XHRcdHJldHVybiB0aGlzLmNyb3NzVmVjdG9ycyggdiwgdyApO1xuXG5cdFx0fVxuXG5cdFx0cmV0dXJuIHRoaXMuY3Jvc3NWZWN0b3JzKCB0aGlzLCB2ICk7XG5cblx0fSxcblxuXHRjcm9zc1ZlY3RvcnM6IGZ1bmN0aW9uICggYSwgYiApIHtcblxuXHRcdHZhciBheCA9IGEueCwgYXkgPSBhLnksIGF6ID0gYS56O1xuXHRcdHZhciBieCA9IGIueCwgYnkgPSBiLnksIGJ6ID0gYi56O1xuXG5cdFx0dGhpcy54ID0gYXkgKiBieiAtIGF6ICogYnk7XG5cdFx0dGhpcy55ID0gYXogKiBieCAtIGF4ICogYno7XG5cdFx0dGhpcy56ID0gYXggKiBieSAtIGF5ICogYng7XG5cblx0XHRyZXR1cm4gdGhpcztcblxuXHR9LFxuXG5cdHByb2plY3RPblZlY3RvcjogZnVuY3Rpb24gKCB2ZWN0b3IgKSB7XG5cblx0XHR2YXIgc2NhbGFyID0gdmVjdG9yLmRvdCggdGhpcyApIC8gdmVjdG9yLmxlbmd0aFNxKCk7XG5cblx0XHRyZXR1cm4gdGhpcy5jb3B5KCB2ZWN0b3IgKS5tdWx0aXBseVNjYWxhciggc2NhbGFyICk7XG5cblx0fSxcblxuXHRwcm9qZWN0T25QbGFuZTogZnVuY3Rpb24gKCkge1xuXG5cdFx0dmFyIHYxID0gbmV3IFZlY3RvcjMoKTtcblxuXHRcdHJldHVybiBmdW5jdGlvbiBwcm9qZWN0T25QbGFuZSggcGxhbmVOb3JtYWwgKSB7XG5cblx0XHRcdHYxLmNvcHkoIHRoaXMgKS5wcm9qZWN0T25WZWN0b3IoIHBsYW5lTm9ybWFsICk7XG5cblx0XHRcdHJldHVybiB0aGlzLnN1YiggdjEgKTtcblxuXHRcdH07XG5cblx0fSgpLFxuXG5cdHJlZmxlY3Q6IGZ1bmN0aW9uICgpIHtcblxuXHRcdC8vIHJlZmxlY3QgaW5jaWRlbnQgdmVjdG9yIG9mZiBwbGFuZSBvcnRob2dvbmFsIHRvIG5vcm1hbFxuXHRcdC8vIG5vcm1hbCBpcyBhc3N1bWVkIHRvIGhhdmUgdW5pdCBsZW5ndGhcblxuXHRcdHZhciB2MSA9IG5ldyBWZWN0b3IzKCk7XG5cblx0XHRyZXR1cm4gZnVuY3Rpb24gcmVmbGVjdCggbm9ybWFsICkge1xuXG5cdFx0XHRyZXR1cm4gdGhpcy5zdWIoIHYxLmNvcHkoIG5vcm1hbCApLm11bHRpcGx5U2NhbGFyKCAyICogdGhpcy5kb3QoIG5vcm1hbCApICkgKTtcblxuXHRcdH07XG5cblx0fSgpLFxuXG5cdGFuZ2xlVG86IGZ1bmN0aW9uICggdiApIHtcblxuXHRcdHZhciB0aGV0YSA9IHRoaXMuZG90KCB2ICkgLyAoIE1hdGguc3FydCggdGhpcy5sZW5ndGhTcSgpICogdi5sZW5ndGhTcSgpICkgKTtcblxuXHRcdC8vIGNsYW1wLCB0byBoYW5kbGUgbnVtZXJpY2FsIHByb2JsZW1zXG5cblx0XHRyZXR1cm4gTWF0aC5hY29zKCBfTWF0aC5jbGFtcCggdGhldGEsIC0gMSwgMSApICk7XG5cblx0fSxcblxuXHRkaXN0YW5jZVRvOiBmdW5jdGlvbiAoIHYgKSB7XG5cblx0XHRyZXR1cm4gTWF0aC5zcXJ0KCB0aGlzLmRpc3RhbmNlVG9TcXVhcmVkKCB2ICkgKTtcblxuXHR9LFxuXG5cdGRpc3RhbmNlVG9TcXVhcmVkOiBmdW5jdGlvbiAoIHYgKSB7XG5cblx0XHR2YXIgZHggPSB0aGlzLnggLSB2LngsIGR5ID0gdGhpcy55IC0gdi55LCBkeiA9IHRoaXMueiAtIHYuejtcblxuXHRcdHJldHVybiBkeCAqIGR4ICsgZHkgKiBkeSArIGR6ICogZHo7XG5cblx0fSxcblxuXHRtYW5oYXR0YW5EaXN0YW5jZVRvOiBmdW5jdGlvbiAoIHYgKSB7XG5cblx0XHRyZXR1cm4gTWF0aC5hYnMoIHRoaXMueCAtIHYueCApICsgTWF0aC5hYnMoIHRoaXMueSAtIHYueSApICsgTWF0aC5hYnMoIHRoaXMueiAtIHYueiApO1xuXG5cdH0sXG5cblx0c2V0RnJvbVNwaGVyaWNhbDogZnVuY3Rpb24gKCBzICkge1xuXG5cdFx0cmV0dXJuIHRoaXMuc2V0RnJvbVNwaGVyaWNhbENvb3Jkcyggcy5yYWRpdXMsIHMucGhpLCBzLnRoZXRhICk7XG5cblx0fSxcblxuXHRzZXRGcm9tU3BoZXJpY2FsQ29vcmRzOiBmdW5jdGlvbiAoIHJhZGl1cywgcGhpLCB0aGV0YSApIHtcblxuXHRcdHZhciBzaW5QaGlSYWRpdXMgPSBNYXRoLnNpbiggcGhpICkgKiByYWRpdXM7XG5cblx0XHR0aGlzLnggPSBzaW5QaGlSYWRpdXMgKiBNYXRoLnNpbiggdGhldGEgKTtcblx0XHR0aGlzLnkgPSBNYXRoLmNvcyggcGhpICkgKiByYWRpdXM7XG5cdFx0dGhpcy56ID0gc2luUGhpUmFkaXVzICogTWF0aC5jb3MoIHRoZXRhICk7XG5cblx0XHRyZXR1cm4gdGhpcztcblxuXHR9LFxuXG5cdHNldEZyb21DeWxpbmRyaWNhbDogZnVuY3Rpb24gKCBjICkge1xuXG5cdFx0cmV0dXJuIHRoaXMuc2V0RnJvbUN5bGluZHJpY2FsQ29vcmRzKCBjLnJhZGl1cywgYy50aGV0YSwgYy55ICk7XG5cblx0fSxcblxuXHRzZXRGcm9tQ3lsaW5kcmljYWxDb29yZHM6IGZ1bmN0aW9uICggcmFkaXVzLCB0aGV0YSwgeSApIHtcblxuXHRcdHRoaXMueCA9IHJhZGl1cyAqIE1hdGguc2luKCB0aGV0YSApO1xuXHRcdHRoaXMueSA9IHk7XG5cdFx0dGhpcy56ID0gcmFkaXVzICogTWF0aC5jb3MoIHRoZXRhICk7XG5cblx0XHRyZXR1cm4gdGhpcztcblxuXHR9LFxuXG5cdHNldEZyb21NYXRyaXhQb3NpdGlvbjogZnVuY3Rpb24gKCBtICkge1xuXG5cdFx0dmFyIGUgPSBtLmVsZW1lbnRzO1xuXG5cdFx0dGhpcy54ID0gZVsgMTIgXTtcblx0XHR0aGlzLnkgPSBlWyAxMyBdO1xuXHRcdHRoaXMueiA9IGVbIDE0IF07XG5cblx0XHRyZXR1cm4gdGhpcztcblxuXHR9LFxuXG5cdHNldEZyb21NYXRyaXhTY2FsZTogZnVuY3Rpb24gKCBtICkge1xuXG5cdFx0dmFyIHN4ID0gdGhpcy5zZXRGcm9tTWF0cml4Q29sdW1uKCBtLCAwICkubGVuZ3RoKCk7XG5cdFx0dmFyIHN5ID0gdGhpcy5zZXRGcm9tTWF0cml4Q29sdW1uKCBtLCAxICkubGVuZ3RoKCk7XG5cdFx0dmFyIHN6ID0gdGhpcy5zZXRGcm9tTWF0cml4Q29sdW1uKCBtLCAyICkubGVuZ3RoKCk7XG5cblx0XHR0aGlzLnggPSBzeDtcblx0XHR0aGlzLnkgPSBzeTtcblx0XHR0aGlzLnogPSBzejtcblxuXHRcdHJldHVybiB0aGlzO1xuXG5cdH0sXG5cblx0c2V0RnJvbU1hdHJpeENvbHVtbjogZnVuY3Rpb24gKCBtLCBpbmRleCApIHtcblxuXHRcdHJldHVybiB0aGlzLmZyb21BcnJheSggbS5lbGVtZW50cywgaW5kZXggKiA0ICk7XG5cblx0fSxcblxuXHRlcXVhbHM6IGZ1bmN0aW9uICggdiApIHtcblxuXHRcdHJldHVybiAoICggdi54ID09PSB0aGlzLnggKSAmJiAoIHYueSA9PT0gdGhpcy55ICkgJiYgKCB2LnogPT09IHRoaXMueiApICk7XG5cblx0fSxcblxuXHRmcm9tQXJyYXk6IGZ1bmN0aW9uICggYXJyYXksIG9mZnNldCApIHtcblxuXHRcdGlmICggb2Zmc2V0ID09PSB1bmRlZmluZWQgKSBvZmZzZXQgPSAwO1xuXG5cdFx0dGhpcy54ID0gYXJyYXlbIG9mZnNldCBdO1xuXHRcdHRoaXMueSA9IGFycmF5WyBvZmZzZXQgKyAxIF07XG5cdFx0dGhpcy56ID0gYXJyYXlbIG9mZnNldCArIDIgXTtcblxuXHRcdHJldHVybiB0aGlzO1xuXG5cdH0sXG5cblx0dG9BcnJheTogZnVuY3Rpb24gKCBhcnJheSwgb2Zmc2V0ICkge1xuXG5cdFx0aWYgKCBhcnJheSA9PT0gdW5kZWZpbmVkICkgYXJyYXkgPSBbXTtcblx0XHRpZiAoIG9mZnNldCA9PT0gdW5kZWZpbmVkICkgb2Zmc2V0ID0gMDtcblxuXHRcdGFycmF5WyBvZmZzZXQgXSA9IHRoaXMueDtcblx0XHRhcnJheVsgb2Zmc2V0ICsgMSBdID0gdGhpcy55O1xuXHRcdGFycmF5WyBvZmZzZXQgKyAyIF0gPSB0aGlzLno7XG5cblx0XHRyZXR1cm4gYXJyYXk7XG5cblx0fSxcblxuXHRmcm9tQnVmZmVyQXR0cmlidXRlOiBmdW5jdGlvbiAoIGF0dHJpYnV0ZSwgaW5kZXgsIG9mZnNldCApIHtcblxuXHRcdGlmICggb2Zmc2V0ICE9PSB1bmRlZmluZWQgKSB7XG5cblx0XHRcdGNvbnNvbGUud2FybiggJ1RIUkVFLlZlY3RvcjM6IG9mZnNldCBoYXMgYmVlbiByZW1vdmVkIGZyb20gLmZyb21CdWZmZXJBdHRyaWJ1dGUoKS4nICk7XG5cblx0XHR9XG5cblx0XHR0aGlzLnggPSBhdHRyaWJ1dGUuZ2V0WCggaW5kZXggKTtcblx0XHR0aGlzLnkgPSBhdHRyaWJ1dGUuZ2V0WSggaW5kZXggKTtcblx0XHR0aGlzLnogPSBhdHRyaWJ1dGUuZ2V0WiggaW5kZXggKTtcblxuXHRcdHJldHVybiB0aGlzO1xuXG5cdH1cblxufSApO1xuXG5cbmV4cG9ydCB7IFZlY3RvcjMgfTsiXX0= ================================================ FILE: packages/sdk/lib/core/libs/three-nebula/core/three/constants.js ================================================ export var REVISION = '106'; export var MOUSE = { LEFT: 0, MIDDLE: 1, RIGHT: 2 }; export var CullFaceNone = 0; export var CullFaceBack = 1; export var CullFaceFront = 2; export var CullFaceFrontBack = 3; export var FrontFaceDirectionCW = 0; export var FrontFaceDirectionCCW = 1; export var BasicShadowMap = 0; export var PCFShadowMap = 1; export var PCFSoftShadowMap = 2; export var FrontSide = 0; export var BackSide = 1; export var DoubleSide = 2; export var FlatShading = 1; export var SmoothShading = 2; export var NoColors = 0; export var FaceColors = 1; export var VertexColors = 2; export var NoBlending = 0; export var NormalBlending = 1; export var AdditiveBlending = 2; export var SubtractiveBlending = 3; export var MultiplyBlending = 4; export var CustomBlending = 5; export var AddEquation = 100; export var SubtractEquation = 101; export var ReverseSubtractEquation = 102; export var MinEquation = 103; export var MaxEquation = 104; export var ZeroFactor = 200; export var OneFactor = 201; export var SrcColorFactor = 202; export var OneMinusSrcColorFactor = 203; export var SrcAlphaFactor = 204; export var OneMinusSrcAlphaFactor = 205; export var DstAlphaFactor = 206; export var OneMinusDstAlphaFactor = 207; export var DstColorFactor = 208; export var OneMinusDstColorFactor = 209; export var SrcAlphaSaturateFactor = 210; export var NeverDepth = 0; export var AlwaysDepth = 1; export var LessDepth = 2; export var LessEqualDepth = 3; export var EqualDepth = 4; export var GreaterEqualDepth = 5; export var GreaterDepth = 6; export var NotEqualDepth = 7; export var MultiplyOperation = 0; export var MixOperation = 1; export var AddOperation = 2; export var NoToneMapping = 0; export var LinearToneMapping = 1; export var ReinhardToneMapping = 2; export var Uncharted2ToneMapping = 3; export var CineonToneMapping = 4; export var ACESFilmicToneMapping = 5; export var UVMapping = 300; export var CubeReflectionMapping = 301; export var CubeRefractionMapping = 302; export var EquirectangularReflectionMapping = 303; export var EquirectangularRefractionMapping = 304; export var SphericalReflectionMapping = 305; export var CubeUVReflectionMapping = 306; export var CubeUVRefractionMapping = 307; export var RepeatWrapping = 1000; export var ClampToEdgeWrapping = 1001; export var MirroredRepeatWrapping = 1002; export var NearestFilter = 1003; export var NearestMipMapNearestFilter = 1004; export var NearestMipMapLinearFilter = 1005; export var LinearFilter = 1006; export var LinearMipMapNearestFilter = 1007; export var LinearMipMapLinearFilter = 1008; export var UnsignedByteType = 1009; export var ByteType = 1010; export var ShortType = 1011; export var UnsignedShortType = 1012; export var IntType = 1013; export var UnsignedIntType = 1014; export var FloatType = 1015; export var HalfFloatType = 1016; export var UnsignedShort4444Type = 1017; export var UnsignedShort5551Type = 1018; export var UnsignedShort565Type = 1019; export var UnsignedInt248Type = 1020; export var AlphaFormat = 1021; export var RGBFormat = 1022; export var RGBAFormat = 1023; export var LuminanceFormat = 1024; export var LuminanceAlphaFormat = 1025; export var RGBEFormat = RGBAFormat; export var DepthFormat = 1026; export var DepthStencilFormat = 1027; export var RedFormat = 1028; export var RGB_S3TC_DXT1_Format = 33776; export var RGBA_S3TC_DXT1_Format = 33777; export var RGBA_S3TC_DXT3_Format = 33778; export var RGBA_S3TC_DXT5_Format = 33779; export var RGB_PVRTC_4BPPV1_Format = 35840; export var RGB_PVRTC_2BPPV1_Format = 35841; export var RGBA_PVRTC_4BPPV1_Format = 35842; export var RGBA_PVRTC_2BPPV1_Format = 35843; export var RGB_ETC1_Format = 36196; export var RGBA_ASTC_4x4_Format = 37808; export var RGBA_ASTC_5x4_Format = 37809; export var RGBA_ASTC_5x5_Format = 37810; export var RGBA_ASTC_6x5_Format = 37811; export var RGBA_ASTC_6x6_Format = 37812; export var RGBA_ASTC_8x5_Format = 37813; export var RGBA_ASTC_8x6_Format = 37814; export var RGBA_ASTC_8x8_Format = 37815; export var RGBA_ASTC_10x5_Format = 37816; export var RGBA_ASTC_10x6_Format = 37817; export var RGBA_ASTC_10x8_Format = 37818; export var RGBA_ASTC_10x10_Format = 37819; export var RGBA_ASTC_12x10_Format = 37820; export var RGBA_ASTC_12x12_Format = 37821; export var LoopOnce = 2200; export var LoopRepeat = 2201; export var LoopPingPong = 2202; export var InterpolateDiscrete = 2300; export var InterpolateLinear = 2301; export var InterpolateSmooth = 2302; export var ZeroCurvatureEnding = 2400; export var ZeroSlopeEnding = 2401; export var WrapAroundEnding = 2402; export var TrianglesDrawMode = 0; export var TriangleStripDrawMode = 1; export var TriangleFanDrawMode = 2; export var LinearEncoding = 3000; export var sRGBEncoding = 3001; export var GammaEncoding = 3007; export var RGBEEncoding = 3002; export var LogLuvEncoding = 3003; export var RGBM7Encoding = 3004; export var RGBM16Encoding = 3005; export var RGBDEncoding = 3006; export var BasicDepthPacking = 3200; export var RGBADepthPacking = 3201; export var TangentSpaceNormalMap = 0; export var ObjectSpaceNormalMap = 1; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb3JlL3RocmVlL2NvbnN0YW50cy5qcyJdLCJuYW1lcyI6WyJSRVZJU0lPTiIsIk1PVVNFIiwiTEVGVCIsIk1JRERMRSIsIlJJR0hUIiwiQ3VsbEZhY2VOb25lIiwiQ3VsbEZhY2VCYWNrIiwiQ3VsbEZhY2VGcm9udCIsIkN1bGxGYWNlRnJvbnRCYWNrIiwiRnJvbnRGYWNlRGlyZWN0aW9uQ1ciLCJGcm9udEZhY2VEaXJlY3Rpb25DQ1ciLCJCYXNpY1NoYWRvd01hcCIsIlBDRlNoYWRvd01hcCIsIlBDRlNvZnRTaGFkb3dNYXAiLCJGcm9udFNpZGUiLCJCYWNrU2lkZSIsIkRvdWJsZVNpZGUiLCJGbGF0U2hhZGluZyIsIlNtb290aFNoYWRpbmciLCJOb0NvbG9ycyIsIkZhY2VDb2xvcnMiLCJWZXJ0ZXhDb2xvcnMiLCJOb0JsZW5kaW5nIiwiTm9ybWFsQmxlbmRpbmciLCJBZGRpdGl2ZUJsZW5kaW5nIiwiU3VidHJhY3RpdmVCbGVuZGluZyIsIk11bHRpcGx5QmxlbmRpbmciLCJDdXN0b21CbGVuZGluZyIsIkFkZEVxdWF0aW9uIiwiU3VidHJhY3RFcXVhdGlvbiIsIlJldmVyc2VTdWJ0cmFjdEVxdWF0aW9uIiwiTWluRXF1YXRpb24iLCJNYXhFcXVhdGlvbiIsIlplcm9GYWN0b3IiLCJPbmVGYWN0b3IiLCJTcmNDb2xvckZhY3RvciIsIk9uZU1pbnVzU3JjQ29sb3JGYWN0b3IiLCJTcmNBbHBoYUZhY3RvciIsIk9uZU1pbnVzU3JjQWxwaGFGYWN0b3IiLCJEc3RBbHBoYUZhY3RvciIsIk9uZU1pbnVzRHN0QWxwaGFGYWN0b3IiLCJEc3RDb2xvckZhY3RvciIsIk9uZU1pbnVzRHN0Q29sb3JGYWN0b3IiLCJTcmNBbHBoYVNhdHVyYXRlRmFjdG9yIiwiTmV2ZXJEZXB0aCIsIkFsd2F5c0RlcHRoIiwiTGVzc0RlcHRoIiwiTGVzc0VxdWFsRGVwdGgiLCJFcXVhbERlcHRoIiwiR3JlYXRlckVxdWFsRGVwdGgiLCJHcmVhdGVyRGVwdGgiLCJOb3RFcXVhbERlcHRoIiwiTXVsdGlwbHlPcGVyYXRpb24iLCJNaXhPcGVyYXRpb24iLCJBZGRPcGVyYXRpb24iLCJOb1RvbmVNYXBwaW5nIiwiTGluZWFyVG9uZU1hcHBpbmciLCJSZWluaGFyZFRvbmVNYXBwaW5nIiwiVW5jaGFydGVkMlRvbmVNYXBwaW5nIiwiQ2luZW9uVG9uZU1hcHBpbmciLCJBQ0VTRmlsbWljVG9uZU1hcHBpbmciLCJVVk1hcHBpbmciLCJDdWJlUmVmbGVjdGlvbk1hcHBpbmciLCJDdWJlUmVmcmFjdGlvbk1hcHBpbmciLCJFcXVpcmVjdGFuZ3VsYXJSZWZsZWN0aW9uTWFwcGluZyIsIkVxdWlyZWN0YW5ndWxhclJlZnJhY3Rpb25NYXBwaW5nIiwiU3BoZXJpY2FsUmVmbGVjdGlvbk1hcHBpbmciLCJDdWJlVVZSZWZsZWN0aW9uTWFwcGluZyIsIkN1YmVVVlJlZnJhY3Rpb25NYXBwaW5nIiwiUmVwZWF0V3JhcHBpbmciLCJDbGFtcFRvRWRnZVdyYXBwaW5nIiwiTWlycm9yZWRSZXBlYXRXcmFwcGluZyIsIk5lYXJlc3RGaWx0ZXIiLCJOZWFyZXN0TWlwTWFwTmVhcmVzdEZpbHRlciIsIk5lYXJlc3RNaXBNYXBMaW5lYXJGaWx0ZXIiLCJMaW5lYXJGaWx0ZXIiLCJMaW5lYXJNaXBNYXBOZWFyZXN0RmlsdGVyIiwiTGluZWFyTWlwTWFwTGluZWFyRmlsdGVyIiwiVW5zaWduZWRCeXRlVHlwZSIsIkJ5dGVUeXBlIiwiU2hvcnRUeXBlIiwiVW5zaWduZWRTaG9ydFR5cGUiLCJJbnRUeXBlIiwiVW5zaWduZWRJbnRUeXBlIiwiRmxvYXRUeXBlIiwiSGFsZkZsb2F0VHlwZSIsIlVuc2lnbmVkU2hvcnQ0NDQ0VHlwZSIsIlVuc2lnbmVkU2hvcnQ1NTUxVHlwZSIsIlVuc2lnbmVkU2hvcnQ1NjVUeXBlIiwiVW5zaWduZWRJbnQyNDhUeXBlIiwiQWxwaGFGb3JtYXQiLCJSR0JGb3JtYXQiLCJSR0JBRm9ybWF0IiwiTHVtaW5hbmNlRm9ybWF0IiwiTHVtaW5hbmNlQWxwaGFGb3JtYXQiLCJSR0JFRm9ybWF0IiwiRGVwdGhGb3JtYXQiLCJEZXB0aFN0ZW5jaWxGb3JtYXQiLCJSZWRGb3JtYXQiLCJSR0JfUzNUQ19EWFQxX0Zvcm1hdCIsIlJHQkFfUzNUQ19EWFQxX0Zvcm1hdCIsIlJHQkFfUzNUQ19EWFQzX0Zvcm1hdCIsIlJHQkFfUzNUQ19EWFQ1X0Zvcm1hdCIsIlJHQl9QVlJUQ180QlBQVjFfRm9ybWF0IiwiUkdCX1BWUlRDXzJCUFBWMV9Gb3JtYXQiLCJSR0JBX1BWUlRDXzRCUFBWMV9Gb3JtYXQiLCJSR0JBX1BWUlRDXzJCUFBWMV9Gb3JtYXQiLCJSR0JfRVRDMV9Gb3JtYXQiLCJSR0JBX0FTVENfNHg0X0Zvcm1hdCIsIlJHQkFfQVNUQ181eDRfRm9ybWF0IiwiUkdCQV9BU1RDXzV4NV9Gb3JtYXQiLCJSR0JBX0FTVENfNng1X0Zvcm1hdCIsIlJHQkFfQVNUQ182eDZfRm9ybWF0IiwiUkdCQV9BU1RDXzh4NV9Gb3JtYXQiLCJSR0JBX0FTVENfOHg2X0Zvcm1hdCIsIlJHQkFfQVNUQ184eDhfRm9ybWF0IiwiUkdCQV9BU1RDXzEweDVfRm9ybWF0IiwiUkdCQV9BU1RDXzEweDZfRm9ybWF0IiwiUkdCQV9BU1RDXzEweDhfRm9ybWF0IiwiUkdCQV9BU1RDXzEweDEwX0Zvcm1hdCIsIlJHQkFfQVNUQ18xMngxMF9Gb3JtYXQiLCJSR0JBX0FTVENfMTJ4MTJfRm9ybWF0IiwiTG9vcE9uY2UiLCJMb29wUmVwZWF0IiwiTG9vcFBpbmdQb25nIiwiSW50ZXJwb2xhdGVEaXNjcmV0ZSIsIkludGVycG9sYXRlTGluZWFyIiwiSW50ZXJwb2xhdGVTbW9vdGgiLCJaZXJvQ3VydmF0dXJlRW5kaW5nIiwiWmVyb1Nsb3BlRW5kaW5nIiwiV3JhcEFyb3VuZEVuZGluZyIsIlRyaWFuZ2xlc0RyYXdNb2RlIiwiVHJpYW5nbGVTdHJpcERyYXdNb2RlIiwiVHJpYW5nbGVGYW5EcmF3TW9kZSIsIkxpbmVhckVuY29kaW5nIiwic1JHQkVuY29kaW5nIiwiR2FtbWFFbmNvZGluZyIsIlJHQkVFbmNvZGluZyIsIkxvZ0x1dkVuY29kaW5nIiwiUkdCTTdFbmNvZGluZyIsIlJHQk0xNkVuY29kaW5nIiwiUkdCREVuY29kaW5nIiwiQmFzaWNEZXB0aFBhY2tpbmciLCJSR0JBRGVwdGhQYWNraW5nIiwiVGFuZ2VudFNwYWNlTm9ybWFsTWFwIiwiT2JqZWN0U3BhY2VOb3JtYWxNYXAiXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sSUFBSUEsUUFBUSxHQUFHLEtBQWY7QUFDUCxPQUFPLElBQUlDLEtBQUssR0FBRztBQUFFQyxFQUFBQSxJQUFJLEVBQUUsQ0FBUjtBQUFXQyxFQUFBQSxNQUFNLEVBQUUsQ0FBbkI7QUFBc0JDLEVBQUFBLEtBQUssRUFBRTtBQUE3QixDQUFaO0FBQ1AsT0FBTyxJQUFJQyxZQUFZLEdBQUcsQ0FBbkI7QUFDUCxPQUFPLElBQUlDLFlBQVksR0FBRyxDQUFuQjtBQUNQLE9BQU8sSUFBSUMsYUFBYSxHQUFHLENBQXBCO0FBQ1AsT0FBTyxJQUFJQyxpQkFBaUIsR0FBRyxDQUF4QjtBQUNQLE9BQU8sSUFBSUMsb0JBQW9CLEdBQUcsQ0FBM0I7QUFDUCxPQUFPLElBQUlDLHFCQUFxQixHQUFHLENBQTVCO0FBQ1AsT0FBTyxJQUFJQyxjQUFjLEdBQUcsQ0FBckI7QUFDUCxPQUFPLElBQUlDLFlBQVksR0FBRyxDQUFuQjtBQUNQLE9BQU8sSUFBSUMsZ0JBQWdCLEdBQUcsQ0FBdkI7QUFDUCxPQUFPLElBQUlDLFNBQVMsR0FBRyxDQUFoQjtBQUNQLE9BQU8sSUFBSUMsUUFBUSxHQUFHLENBQWY7QUFDUCxPQUFPLElBQUlDLFVBQVUsR0FBRyxDQUFqQjtBQUNQLE9BQU8sSUFBSUMsV0FBVyxHQUFHLENBQWxCO0FBQ1AsT0FBTyxJQUFJQyxhQUFhLEdBQUcsQ0FBcEI7QUFDUCxPQUFPLElBQUlDLFFBQVEsR0FBRyxDQUFmO0FBQ1AsT0FBTyxJQUFJQyxVQUFVLEdBQUcsQ0FBakI7QUFDUCxPQUFPLElBQUlDLFlBQVksR0FBRyxDQUFuQjtBQUNQLE9BQU8sSUFBSUMsVUFBVSxHQUFHLENBQWpCO0FBQ1AsT0FBTyxJQUFJQyxjQUFjLEdBQUcsQ0FBckI7QUFDUCxPQUFPLElBQUlDLGdCQUFnQixHQUFHLENBQXZCO0FBQ1AsT0FBTyxJQUFJQyxtQkFBbUIsR0FBRyxDQUExQjtBQUNQLE9BQU8sSUFBSUMsZ0JBQWdCLEdBQUcsQ0FBdkI7QUFDUCxPQUFPLElBQUlDLGNBQWMsR0FBRyxDQUFyQjtBQUNQLE9BQU8sSUFBSUMsV0FBVyxHQUFHLEdBQWxCO0FBQ1AsT0FBTyxJQUFJQyxnQkFBZ0IsR0FBRyxHQUF2QjtBQUNQLE9BQU8sSUFBSUMsdUJBQXVCLEdBQUcsR0FBOUI7QUFDUCxPQUFPLElBQUlDLFdBQVcsR0FBRyxHQUFsQjtBQUNQLE9BQU8sSUFBSUMsV0FBVyxHQUFHLEdBQWxCO0FBQ1AsT0FBTyxJQUFJQyxVQUFVLEdBQUcsR0FBakI7QUFDUCxPQUFPLElBQUlDLFNBQVMsR0FBRyxHQUFoQjtBQUNQLE9BQU8sSUFBSUMsY0FBYyxHQUFHLEdBQXJCO0FBQ1AsT0FBTyxJQUFJQyxzQkFBc0IsR0FBRyxHQUE3QjtBQUNQLE9BQU8sSUFBSUMsY0FBYyxHQUFHLEdBQXJCO0FBQ1AsT0FBTyxJQUFJQyxzQkFBc0IsR0FBRyxHQUE3QjtBQUNQLE9BQU8sSUFBSUMsY0FBYyxHQUFHLEdBQXJCO0FBQ1AsT0FBTyxJQUFJQyxzQkFBc0IsR0FBRyxHQUE3QjtBQUNQLE9BQU8sSUFBSUMsY0FBYyxHQUFHLEdBQXJCO0FBQ1AsT0FBTyxJQUFJQyxzQkFBc0IsR0FBRyxHQUE3QjtBQUNQLE9BQU8sSUFBSUMsc0JBQXNCLEdBQUcsR0FBN0I7QUFDUCxPQUFPLElBQUlDLFVBQVUsR0FBRyxDQUFqQjtBQUNQLE9BQU8sSUFBSUMsV0FBVyxHQUFHLENBQWxCO0FBQ1AsT0FBTyxJQUFJQyxTQUFTLEdBQUcsQ0FBaEI7QUFDUCxPQUFPLElBQUlDLGNBQWMsR0FBRyxDQUFyQjtBQUNQLE9BQU8sSUFBSUMsVUFBVSxHQUFHLENBQWpCO0FBQ1AsT0FBTyxJQUFJQyxpQkFBaUIsR0FBRyxDQUF4QjtBQUNQLE9BQU8sSUFBSUMsWUFBWSxHQUFHLENBQW5CO0FBQ1AsT0FBTyxJQUFJQyxhQUFhLEdBQUcsQ0FBcEI7QUFDUCxPQUFPLElBQUlDLGlCQUFpQixHQUFHLENBQXhCO0FBQ1AsT0FBTyxJQUFJQyxZQUFZLEdBQUcsQ0FBbkI7QUFDUCxPQUFPLElBQUlDLFlBQVksR0FBRyxDQUFuQjtBQUNQLE9BQU8sSUFBSUMsYUFBYSxHQUFHLENBQXBCO0FBQ1AsT0FBTyxJQUFJQyxpQkFBaUIsR0FBRyxDQUF4QjtBQUNQLE9BQU8sSUFBSUMsbUJBQW1CLEdBQUcsQ0FBMUI7QUFDUCxPQUFPLElBQUlDLHFCQUFxQixHQUFHLENBQTVCO0FBQ1AsT0FBTyxJQUFJQyxpQkFBaUIsR0FBRyxDQUF4QjtBQUNQLE9BQU8sSUFBSUMscUJBQXFCLEdBQUcsQ0FBNUI7QUFFUCxPQUFPLElBQUlDLFNBQVMsR0FBRyxHQUFoQjtBQUNQLE9BQU8sSUFBSUMscUJBQXFCLEdBQUcsR0FBNUI7QUFDUCxPQUFPLElBQUlDLHFCQUFxQixHQUFHLEdBQTVCO0FBQ1AsT0FBTyxJQUFJQyxnQ0FBZ0MsR0FBRyxHQUF2QztBQUNQLE9BQU8sSUFBSUMsZ0NBQWdDLEdBQUcsR0FBdkM7QUFDUCxPQUFPLElBQUlDLDBCQUEwQixHQUFHLEdBQWpDO0FBQ1AsT0FBTyxJQUFJQyx1QkFBdUIsR0FBRyxHQUE5QjtBQUNQLE9BQU8sSUFBSUMsdUJBQXVCLEdBQUcsR0FBOUI7QUFDUCxPQUFPLElBQUlDLGNBQWMsR0FBRyxJQUFyQjtBQUNQLE9BQU8sSUFBSUMsbUJBQW1CLEdBQUcsSUFBMUI7QUFDUCxPQUFPLElBQUlDLHNCQUFzQixHQUFHLElBQTdCO0FBQ1AsT0FBTyxJQUFJQyxhQUFhLEdBQUcsSUFBcEI7QUFDUCxPQUFPLElBQUlDLDBCQUEwQixHQUFHLElBQWpDO0FBQ1AsT0FBTyxJQUFJQyx5QkFBeUIsR0FBRyxJQUFoQztBQUNQLE9BQU8sSUFBSUMsWUFBWSxHQUFHLElBQW5CO0FBQ1AsT0FBTyxJQUFJQyx5QkFBeUIsR0FBRyxJQUFoQztBQUNQLE9BQU8sSUFBSUMsd0JBQXdCLEdBQUcsSUFBL0I7QUFDUCxPQUFPLElBQUlDLGdCQUFnQixHQUFHLElBQXZCO0FBQ1AsT0FBTyxJQUFJQyxRQUFRLEdBQUcsSUFBZjtBQUNQLE9BQU8sSUFBSUMsU0FBUyxHQUFHLElBQWhCO0FBQ1AsT0FBTyxJQUFJQyxpQkFBaUIsR0FBRyxJQUF4QjtBQUNQLE9BQU8sSUFBSUMsT0FBTyxHQUFHLElBQWQ7QUFDUCxPQUFPLElBQUlDLGVBQWUsR0FBRyxJQUF0QjtBQUNQLE9BQU8sSUFBSUMsU0FBUyxHQUFHLElBQWhCO0FBQ1AsT0FBTyxJQUFJQyxhQUFhLEdBQUcsSUFBcEI7QUFDUCxPQUFPLElBQUlDLHFCQUFxQixHQUFHLElBQTVCO0FBQ1AsT0FBTyxJQUFJQyxxQkFBcUIsR0FBRyxJQUE1QjtBQUNQLE9BQU8sSUFBSUMsb0JBQW9CLEdBQUcsSUFBM0I7QUFDUCxPQUFPLElBQUlDLGtCQUFrQixHQUFHLElBQXpCO0FBQ1AsT0FBTyxJQUFJQyxXQUFXLEdBQUcsSUFBbEI7QUFDUCxPQUFPLElBQUlDLFNBQVMsR0FBRyxJQUFoQjtBQUNQLE9BQU8sSUFBSUMsVUFBVSxHQUFHLElBQWpCO0FBQ1AsT0FBTyxJQUFJQyxlQUFlLEdBQUcsSUFBdEI7QUFDUCxPQUFPLElBQUlDLG9CQUFvQixHQUFHLElBQTNCO0FBQ1AsT0FBTyxJQUFJQyxVQUFVLEdBQUdILFVBQWpCO0FBQ1AsT0FBTyxJQUFJSSxXQUFXLEdBQUcsSUFBbEI7QUFDUCxPQUFPLElBQUlDLGtCQUFrQixHQUFHLElBQXpCO0FBQ1AsT0FBTyxJQUFJQyxTQUFTLEdBQUcsSUFBaEI7QUFDUCxPQUFPLElBQUlDLG9CQUFvQixHQUFHLEtBQTNCO0FBQ1AsT0FBTyxJQUFJQyxxQkFBcUIsR0FBRyxLQUE1QjtBQUNQLE9BQU8sSUFBSUMscUJBQXFCLEdBQUcsS0FBNUI7QUFDUCxPQUFPLElBQUlDLHFCQUFxQixHQUFHLEtBQTVCO0FBQ1AsT0FBTyxJQUFJQyx1QkFBdUIsR0FBRyxLQUE5QjtBQUNQLE9BQU8sSUFBSUMsdUJBQXVCLEdBQUcsS0FBOUI7QUFDUCxPQUFPLElBQUlDLHdCQUF3QixHQUFHLEtBQS9CO0FBQ1AsT0FBTyxJQUFJQyx3QkFBd0IsR0FBRyxLQUEvQjtBQUNQLE9BQU8sSUFBSUMsZUFBZSxHQUFHLEtBQXRCO0FBQ1AsT0FBTyxJQUFJQyxvQkFBb0IsR0FBRyxLQUEzQjtBQUNQLE9BQU8sSUFBSUMsb0JBQW9CLEdBQUcsS0FBM0I7QUFDUCxPQUFPLElBQUlDLG9CQUFvQixHQUFHLEtBQTNCO0FBQ1AsT0FBTyxJQUFJQyxvQkFBb0IsR0FBRyxLQUEzQjtBQUNQLE9BQU8sSUFBSUMsb0JBQW9CLEdBQUcsS0FBM0I7QUFDUCxPQUFPLElBQUlDLG9CQUFvQixHQUFHLEtBQTNCO0FBQ1AsT0FBTyxJQUFJQyxvQkFBb0IsR0FBRyxLQUEzQjtBQUNQLE9BQU8sSUFBSUMsb0JBQW9CLEdBQUcsS0FBM0I7QUFDUCxPQUFPLElBQUlDLHFCQUFxQixHQUFHLEtBQTVCO0FBQ1AsT0FBTyxJQUFJQyxxQkFBcUIsR0FBRyxLQUE1QjtBQUNQLE9BQU8sSUFBSUMscUJBQXFCLEdBQUcsS0FBNUI7QUFDUCxPQUFPLElBQUlDLHNCQUFzQixHQUFHLEtBQTdCO0FBQ1AsT0FBTyxJQUFJQyxzQkFBc0IsR0FBRyxLQUE3QjtBQUNQLE9BQU8sSUFBSUMsc0JBQXNCLEdBQUcsS0FBN0I7QUFDUCxPQUFPLElBQUlDLFFBQVEsR0FBRyxJQUFmO0FBQ1AsT0FBTyxJQUFJQyxVQUFVLEdBQUcsSUFBakI7QUFDUCxPQUFPLElBQUlDLFlBQVksR0FBRyxJQUFuQjtBQUNQLE9BQU8sSUFBSUMsbUJBQW1CLEdBQUcsSUFBMUI7QUFDUCxPQUFPLElBQUlDLGlCQUFpQixHQUFHLElBQXhCO0FBQ1AsT0FBTyxJQUFJQyxpQkFBaUIsR0FBRyxJQUF4QjtBQUNQLE9BQU8sSUFBSUMsbUJBQW1CLEdBQUcsSUFBMUI7QUFDUCxPQUFPLElBQUlDLGVBQWUsR0FBRyxJQUF0QjtBQUNQLE9BQU8sSUFBSUMsZ0JBQWdCLEdBQUcsSUFBdkI7QUFDUCxPQUFPLElBQUlDLGlCQUFpQixHQUFHLENBQXhCO0FBQ1AsT0FBTyxJQUFJQyxxQkFBcUIsR0FBRyxDQUE1QjtBQUNQLE9BQU8sSUFBSUMsbUJBQW1CLEdBQUcsQ0FBMUI7QUFDUCxPQUFPLElBQUlDLGNBQWMsR0FBRyxJQUFyQjtBQUNQLE9BQU8sSUFBSUMsWUFBWSxHQUFHLElBQW5CO0FBQ1AsT0FBTyxJQUFJQyxhQUFhLEdBQUcsSUFBcEI7QUFDUCxPQUFPLElBQUlDLFlBQVksR0FBRyxJQUFuQjtBQUNQLE9BQU8sSUFBSUMsY0FBYyxHQUFHLElBQXJCO0FBQ1AsT0FBTyxJQUFJQyxhQUFhLEdBQUcsSUFBcEI7QUFDUCxPQUFPLElBQUlDLGNBQWMsR0FBRyxJQUFyQjtBQUNQLE9BQU8sSUFBSUMsWUFBWSxHQUFHLElBQW5CO0FBQ1AsT0FBTyxJQUFJQyxpQkFBaUIsR0FBRyxJQUF4QjtBQUNQLE9BQU8sSUFBSUMsZ0JBQWdCLEdBQUcsSUFBdkI7QUFDUCxPQUFPLElBQUlDLHFCQUFxQixHQUFHLENBQTVCO0FBQ1AsT0FBTyxJQUFJQyxvQkFBb0IsR0FBRyxDQUEzQiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB2YXIgUkVWSVNJT04gPSAnMTA2JztcbmV4cG9ydCB2YXIgTU9VU0UgPSB7IExFRlQ6IDAsIE1JRERMRTogMSwgUklHSFQ6IDIgfTtcbmV4cG9ydCB2YXIgQ3VsbEZhY2VOb25lID0gMDtcbmV4cG9ydCB2YXIgQ3VsbEZhY2VCYWNrID0gMTtcbmV4cG9ydCB2YXIgQ3VsbEZhY2VGcm9udCA9IDI7XG5leHBvcnQgdmFyIEN1bGxGYWNlRnJvbnRCYWNrID0gMztcbmV4cG9ydCB2YXIgRnJvbnRGYWNlRGlyZWN0aW9uQ1cgPSAwO1xuZXhwb3J0IHZhciBGcm9udEZhY2VEaXJlY3Rpb25DQ1cgPSAxO1xuZXhwb3J0IHZhciBCYXNpY1NoYWRvd01hcCA9IDA7XG5leHBvcnQgdmFyIFBDRlNoYWRvd01hcCA9IDE7XG5leHBvcnQgdmFyIFBDRlNvZnRTaGFkb3dNYXAgPSAyO1xuZXhwb3J0IHZhciBGcm9udFNpZGUgPSAwO1xuZXhwb3J0IHZhciBCYWNrU2lkZSA9IDE7XG5leHBvcnQgdmFyIERvdWJsZVNpZGUgPSAyO1xuZXhwb3J0IHZhciBGbGF0U2hhZGluZyA9IDE7XG5leHBvcnQgdmFyIFNtb290aFNoYWRpbmcgPSAyO1xuZXhwb3J0IHZhciBOb0NvbG9ycyA9IDA7XG5leHBvcnQgdmFyIEZhY2VDb2xvcnMgPSAxO1xuZXhwb3J0IHZhciBWZXJ0ZXhDb2xvcnMgPSAyO1xuZXhwb3J0IHZhciBOb0JsZW5kaW5nID0gMDtcbmV4cG9ydCB2YXIgTm9ybWFsQmxlbmRpbmcgPSAxO1xuZXhwb3J0IHZhciBBZGRpdGl2ZUJsZW5kaW5nID0gMjtcbmV4cG9ydCB2YXIgU3VidHJhY3RpdmVCbGVuZGluZyA9IDM7XG5leHBvcnQgdmFyIE11bHRpcGx5QmxlbmRpbmcgPSA0O1xuZXhwb3J0IHZhciBDdXN0b21CbGVuZGluZyA9IDU7XG5leHBvcnQgdmFyIEFkZEVxdWF0aW9uID0gMTAwO1xuZXhwb3J0IHZhciBTdWJ0cmFjdEVxdWF0aW9uID0gMTAxO1xuZXhwb3J0IHZhciBSZXZlcnNlU3VidHJhY3RFcXVhdGlvbiA9IDEwMjtcbmV4cG9ydCB2YXIgTWluRXF1YXRpb24gPSAxMDM7XG5leHBvcnQgdmFyIE1heEVxdWF0aW9uID0gMTA0O1xuZXhwb3J0IHZhciBaZXJvRmFjdG9yID0gMjAwO1xuZXhwb3J0IHZhciBPbmVGYWN0b3IgPSAyMDE7XG5leHBvcnQgdmFyIFNyY0NvbG9yRmFjdG9yID0gMjAyO1xuZXhwb3J0IHZhciBPbmVNaW51c1NyY0NvbG9yRmFjdG9yID0gMjAzO1xuZXhwb3J0IHZhciBTcmNBbHBoYUZhY3RvciA9IDIwNDtcbmV4cG9ydCB2YXIgT25lTWludXNTcmNBbHBoYUZhY3RvciA9IDIwNTtcbmV4cG9ydCB2YXIgRHN0QWxwaGFGYWN0b3IgPSAyMDY7XG5leHBvcnQgdmFyIE9uZU1pbnVzRHN0QWxwaGFGYWN0b3IgPSAyMDc7XG5leHBvcnQgdmFyIERzdENvbG9yRmFjdG9yID0gMjA4O1xuZXhwb3J0IHZhciBPbmVNaW51c0RzdENvbG9yRmFjdG9yID0gMjA5O1xuZXhwb3J0IHZhciBTcmNBbHBoYVNhdHVyYXRlRmFjdG9yID0gMjEwO1xuZXhwb3J0IHZhciBOZXZlckRlcHRoID0gMDtcbmV4cG9ydCB2YXIgQWx3YXlzRGVwdGggPSAxO1xuZXhwb3J0IHZhciBMZXNzRGVwdGggPSAyO1xuZXhwb3J0IHZhciBMZXNzRXF1YWxEZXB0aCA9IDM7XG5leHBvcnQgdmFyIEVxdWFsRGVwdGggPSA0O1xuZXhwb3J0IHZhciBHcmVhdGVyRXF1YWxEZXB0aCA9IDU7XG5leHBvcnQgdmFyIEdyZWF0ZXJEZXB0aCA9IDY7XG5leHBvcnQgdmFyIE5vdEVxdWFsRGVwdGggPSA3O1xuZXhwb3J0IHZhciBNdWx0aXBseU9wZXJhdGlvbiA9IDA7XG5leHBvcnQgdmFyIE1peE9wZXJhdGlvbiA9IDE7XG5leHBvcnQgdmFyIEFkZE9wZXJhdGlvbiA9IDI7XG5leHBvcnQgdmFyIE5vVG9uZU1hcHBpbmcgPSAwO1xuZXhwb3J0IHZhciBMaW5lYXJUb25lTWFwcGluZyA9IDE7XG5leHBvcnQgdmFyIFJlaW5oYXJkVG9uZU1hcHBpbmcgPSAyO1xuZXhwb3J0IHZhciBVbmNoYXJ0ZWQyVG9uZU1hcHBpbmcgPSAzO1xuZXhwb3J0IHZhciBDaW5lb25Ub25lTWFwcGluZyA9IDQ7XG5leHBvcnQgdmFyIEFDRVNGaWxtaWNUb25lTWFwcGluZyA9IDU7XG5cbmV4cG9ydCB2YXIgVVZNYXBwaW5nID0gMzAwO1xuZXhwb3J0IHZhciBDdWJlUmVmbGVjdGlvbk1hcHBpbmcgPSAzMDE7XG5leHBvcnQgdmFyIEN1YmVSZWZyYWN0aW9uTWFwcGluZyA9IDMwMjtcbmV4cG9ydCB2YXIgRXF1aXJlY3Rhbmd1bGFyUmVmbGVjdGlvbk1hcHBpbmcgPSAzMDM7XG5leHBvcnQgdmFyIEVxdWlyZWN0YW5ndWxhclJlZnJhY3Rpb25NYXBwaW5nID0gMzA0O1xuZXhwb3J0IHZhciBTcGhlcmljYWxSZWZsZWN0aW9uTWFwcGluZyA9IDMwNTtcbmV4cG9ydCB2YXIgQ3ViZVVWUmVmbGVjdGlvbk1hcHBpbmcgPSAzMDY7XG5leHBvcnQgdmFyIEN1YmVVVlJlZnJhY3Rpb25NYXBwaW5nID0gMzA3O1xuZXhwb3J0IHZhciBSZXBlYXRXcmFwcGluZyA9IDEwMDA7XG5leHBvcnQgdmFyIENsYW1wVG9FZGdlV3JhcHBpbmcgPSAxMDAxO1xuZXhwb3J0IHZhciBNaXJyb3JlZFJlcGVhdFdyYXBwaW5nID0gMTAwMjtcbmV4cG9ydCB2YXIgTmVhcmVzdEZpbHRlciA9IDEwMDM7XG5leHBvcnQgdmFyIE5lYXJlc3RNaXBNYXBOZWFyZXN0RmlsdGVyID0gMTAwNDtcbmV4cG9ydCB2YXIgTmVhcmVzdE1pcE1hcExpbmVhckZpbHRlciA9IDEwMDU7XG5leHBvcnQgdmFyIExpbmVhckZpbHRlciA9IDEwMDY7XG5leHBvcnQgdmFyIExpbmVhck1pcE1hcE5lYXJlc3RGaWx0ZXIgPSAxMDA3O1xuZXhwb3J0IHZhciBMaW5lYXJNaXBNYXBMaW5lYXJGaWx0ZXIgPSAxMDA4O1xuZXhwb3J0IHZhciBVbnNpZ25lZEJ5dGVUeXBlID0gMTAwOTtcbmV4cG9ydCB2YXIgQnl0ZVR5cGUgPSAxMDEwO1xuZXhwb3J0IHZhciBTaG9ydFR5cGUgPSAxMDExO1xuZXhwb3J0IHZhciBVbnNpZ25lZFNob3J0VHlwZSA9IDEwMTI7XG5leHBvcnQgdmFyIEludFR5cGUgPSAxMDEzO1xuZXhwb3J0IHZhciBVbnNpZ25lZEludFR5cGUgPSAxMDE0O1xuZXhwb3J0IHZhciBGbG9hdFR5cGUgPSAxMDE1O1xuZXhwb3J0IHZhciBIYWxmRmxvYXRUeXBlID0gMTAxNjtcbmV4cG9ydCB2YXIgVW5zaWduZWRTaG9ydDQ0NDRUeXBlID0gMTAxNztcbmV4cG9ydCB2YXIgVW5zaWduZWRTaG9ydDU1NTFUeXBlID0gMTAxODtcbmV4cG9ydCB2YXIgVW5zaWduZWRTaG9ydDU2NVR5cGUgPSAxMDE5O1xuZXhwb3J0IHZhciBVbnNpZ25lZEludDI0OFR5cGUgPSAxMDIwO1xuZXhwb3J0IHZhciBBbHBoYUZvcm1hdCA9IDEwMjE7XG5leHBvcnQgdmFyIFJHQkZvcm1hdCA9IDEwMjI7XG5leHBvcnQgdmFyIFJHQkFGb3JtYXQgPSAxMDIzO1xuZXhwb3J0IHZhciBMdW1pbmFuY2VGb3JtYXQgPSAxMDI0O1xuZXhwb3J0IHZhciBMdW1pbmFuY2VBbHBoYUZvcm1hdCA9IDEwMjU7XG5leHBvcnQgdmFyIFJHQkVGb3JtYXQgPSBSR0JBRm9ybWF0O1xuZXhwb3J0IHZhciBEZXB0aEZvcm1hdCA9IDEwMjY7XG5leHBvcnQgdmFyIERlcHRoU3RlbmNpbEZvcm1hdCA9IDEwMjc7XG5leHBvcnQgdmFyIFJlZEZvcm1hdCA9IDEwMjg7XG5leHBvcnQgdmFyIFJHQl9TM1RDX0RYVDFfRm9ybWF0ID0gMzM3NzY7XG5leHBvcnQgdmFyIFJHQkFfUzNUQ19EWFQxX0Zvcm1hdCA9IDMzNzc3O1xuZXhwb3J0IHZhciBSR0JBX1MzVENfRFhUM19Gb3JtYXQgPSAzMzc3ODtcbmV4cG9ydCB2YXIgUkdCQV9TM1RDX0RYVDVfRm9ybWF0ID0gMzM3Nzk7XG5leHBvcnQgdmFyIFJHQl9QVlJUQ180QlBQVjFfRm9ybWF0ID0gMzU4NDA7XG5leHBvcnQgdmFyIFJHQl9QVlJUQ18yQlBQVjFfRm9ybWF0ID0gMzU4NDE7XG5leHBvcnQgdmFyIFJHQkFfUFZSVENfNEJQUFYxX0Zvcm1hdCA9IDM1ODQyO1xuZXhwb3J0IHZhciBSR0JBX1BWUlRDXzJCUFBWMV9Gb3JtYXQgPSAzNTg0MztcbmV4cG9ydCB2YXIgUkdCX0VUQzFfRm9ybWF0ID0gMzYxOTY7XG5leHBvcnQgdmFyIFJHQkFfQVNUQ180eDRfRm9ybWF0ID0gMzc4MDg7XG5leHBvcnQgdmFyIFJHQkFfQVNUQ181eDRfRm9ybWF0ID0gMzc4MDk7XG5leHBvcnQgdmFyIFJHQkFfQVNUQ181eDVfRm9ybWF0ID0gMzc4MTA7XG5leHBvcnQgdmFyIFJHQkFfQVNUQ182eDVfRm9ybWF0ID0gMzc4MTE7XG5leHBvcnQgdmFyIFJHQkFfQVNUQ182eDZfRm9ybWF0ID0gMzc4MTI7XG5leHBvcnQgdmFyIFJHQkFfQVNUQ184eDVfRm9ybWF0ID0gMzc4MTM7XG5leHBvcnQgdmFyIFJHQkFfQVNUQ184eDZfRm9ybWF0ID0gMzc4MTQ7XG5leHBvcnQgdmFyIFJHQkFfQVNUQ184eDhfRm9ybWF0ID0gMzc4MTU7XG5leHBvcnQgdmFyIFJHQkFfQVNUQ18xMHg1X0Zvcm1hdCA9IDM3ODE2O1xuZXhwb3J0IHZhciBSR0JBX0FTVENfMTB4Nl9Gb3JtYXQgPSAzNzgxNztcbmV4cG9ydCB2YXIgUkdCQV9BU1RDXzEweDhfRm9ybWF0ID0gMzc4MTg7XG5leHBvcnQgdmFyIFJHQkFfQVNUQ18xMHgxMF9Gb3JtYXQgPSAzNzgxOTtcbmV4cG9ydCB2YXIgUkdCQV9BU1RDXzEyeDEwX0Zvcm1hdCA9IDM3ODIwO1xuZXhwb3J0IHZhciBSR0JBX0FTVENfMTJ4MTJfRm9ybWF0ID0gMzc4MjE7XG5leHBvcnQgdmFyIExvb3BPbmNlID0gMjIwMDtcbmV4cG9ydCB2YXIgTG9vcFJlcGVhdCA9IDIyMDE7XG5leHBvcnQgdmFyIExvb3BQaW5nUG9uZyA9IDIyMDI7XG5leHBvcnQgdmFyIEludGVycG9sYXRlRGlzY3JldGUgPSAyMzAwO1xuZXhwb3J0IHZhciBJbnRlcnBvbGF0ZUxpbmVhciA9IDIzMDE7XG5leHBvcnQgdmFyIEludGVycG9sYXRlU21vb3RoID0gMjMwMjtcbmV4cG9ydCB2YXIgWmVyb0N1cnZhdHVyZUVuZGluZyA9IDI0MDA7XG5leHBvcnQgdmFyIFplcm9TbG9wZUVuZGluZyA9IDI0MDE7XG5leHBvcnQgdmFyIFdyYXBBcm91bmRFbmRpbmcgPSAyNDAyO1xuZXhwb3J0IHZhciBUcmlhbmdsZXNEcmF3TW9kZSA9IDA7XG5leHBvcnQgdmFyIFRyaWFuZ2xlU3RyaXBEcmF3TW9kZSA9IDE7XG5leHBvcnQgdmFyIFRyaWFuZ2xlRmFuRHJhd01vZGUgPSAyO1xuZXhwb3J0IHZhciBMaW5lYXJFbmNvZGluZyA9IDMwMDA7XG5leHBvcnQgdmFyIHNSR0JFbmNvZGluZyA9IDMwMDE7XG5leHBvcnQgdmFyIEdhbW1hRW5jb2RpbmcgPSAzMDA3O1xuZXhwb3J0IHZhciBSR0JFRW5jb2RpbmcgPSAzMDAyO1xuZXhwb3J0IHZhciBMb2dMdXZFbmNvZGluZyA9IDMwMDM7XG5leHBvcnQgdmFyIFJHQk03RW5jb2RpbmcgPSAzMDA0O1xuZXhwb3J0IHZhciBSR0JNMTZFbmNvZGluZyA9IDMwMDU7XG5leHBvcnQgdmFyIFJHQkRFbmNvZGluZyA9IDMwMDY7XG5leHBvcnQgdmFyIEJhc2ljRGVwdGhQYWNraW5nID0gMzIwMDtcbmV4cG9ydCB2YXIgUkdCQURlcHRoUGFja2luZyA9IDMyMDE7XG5leHBvcnQgdmFyIFRhbmdlbnRTcGFjZU5vcm1hbE1hcCA9IDA7XG5leHBvcnQgdmFyIE9iamVjdFNwYWNlTm9ybWFsTWFwID0gMTtcbiJdfQ== ================================================ FILE: packages/sdk/lib/core/libs/three-nebula/core/three/index.js ================================================ export { Vector3 } from './Vector3'; export { Quaternion } from './Quaternion'; export { Euler } from './Euler'; export * from './constants'; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb3JlL3RocmVlL2luZGV4LmpzIl0sIm5hbWVzIjpbIlZlY3RvcjMiLCJRdWF0ZXJuaW9uIiwiRXVsZXIiXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLE9BQVQsUUFBd0IsV0FBeEI7QUFDQSxTQUFTQyxVQUFULFFBQTJCLGNBQTNCO0FBQ0EsU0FBU0MsS0FBVCxRQUFzQixTQUF0QjtBQUNBLGNBQWMsYUFBZCIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IFZlY3RvcjMgfSBmcm9tICcuL1ZlY3RvcjMnO1xuZXhwb3J0IHsgUXVhdGVybmlvbiB9IGZyb20gJy4vUXVhdGVybmlvbic7XG5leHBvcnQgeyBFdWxlciB9IGZyb20gJy4vRXVsZXInO1xuZXhwb3J0ICogZnJvbSAnLi9jb25zdGFudHMnO1xuIl19 ================================================ FILE: packages/sdk/lib/core/libs/three-nebula/core/types.js ================================================ export const CORE_TYPE_PARTICLE = 'Particle'; export const CORE_TYPE_POOL = 'Pool'; export const CORE_TYPE_SYSTEM = 'System'; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb3JlL3R5cGVzLmpzIl0sIm5hbWVzIjpbIkNPUkVfVFlQRV9QQVJUSUNMRSIsIkNPUkVfVFlQRV9QT09MIiwiQ09SRV9UWVBFX1NZU1RFTSJdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxNQUFNQSxrQkFBa0IsR0FBRyxVQUEzQjtBQUNQLE9BQU8sTUFBTUMsY0FBYyxHQUFHLE1BQXZCO0FBQ1AsT0FBTyxNQUFNQyxnQkFBZ0IsR0FBRyxRQUF6QiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBDT1JFX1RZUEVfUEFSVElDTEUgPSAnUGFydGljbGUnO1xuZXhwb3J0IGNvbnN0IENPUkVfVFlQRV9QT09MID0gJ1Bvb2wnO1xuZXhwb3J0IGNvbnN0IENPUkVfVFlQRV9TWVNURU0gPSAnU3lzdGVtJztcbiJdfQ== ================================================ FILE: packages/sdk/lib/core/libs/three-nebula/debug/Debug.js ================================================ import { DEFAULT_POSITION, DEFAULT_SIZE as size } from './constants'; /** * @exports Debug - methods and helpers for debugging System emitters, zones and particles. * @requires THREE - { SphereGeometry, BoxGeometry, MeshBasicMaterial, OctahedronGeometry, Mesh } */ export default { /** * Adds an event listener to the system instance's SYSTEM_UPDATE event. * * @param {System} system - the system instance * @param {function} onSystemUpdated - the function to call when system has been updated * @return {Debug} */ addEventListener: function (system, onSystemUpdated) { system.eventDispatcher.addEventListener('SYSTEM_UPDATE', onSystemUpdated); return this; }, /** * Draws a wireframe mesh around the zone for debugging purposes. * * @param {System} system - the system instance * @param {object} container - a three Object3D (usually the scene) * @param {Zone} zone - a Zone instance * @return void */ drawZone: function (THREE, system, container, zone = {}) { const color = '#2194ce'; const wireframe = true; const { width = size, height = size, depth = size, radius = size, x = DEFAULT_POSITION, y = DEFAULT_POSITION, z = DEFAULT_POSITION } = zone; let geometry; if (zone.isPointZone()) { geometry = new THREE.SphereGeometry(15); } if (zone.isLineZone()) {// TODO } if (zone.isBoxZone()) { geometry = new THREE.BoxGeometry(width, height, depth); } if (zone.isSphereZone()) { geometry = new THREE.SphereGeometry(radius, size, size); } if (zone.isMeshZone()) { geometry = zone.geometry.geometry ? zone.geometry.geometry.clone() : zone.geometry.clone(); } if (!geometry) { geometry = new THREE.BoxGeometry(width, height, depth); } const material = new THREE.MeshBasicMaterial({ color, wireframe }); // NOTE! geometry.clone is required for UNKNOWN reasons, // three does not render the mesh correctly without doing this since r88 const mesh = new THREE.Mesh(geometry.clone(), material); container.add(mesh); this.addEventListener(system, function () { mesh.position.set(x, y, z); }); }, /** * Draws a mesh for each particle emitted in order to help debug particles. * * @param {object} system - the system instance * @param {object} container - a three Object3D (usually the scene) * @param {object} emitter - the emitter to debug * @param {string} color - the color for the debug mesh material * @return void */ drawEmitter: function (THREE, system, container, emitter, color) { const geometry = new THREE.OctahedronGeometry(size); const material = new THREE.MeshBasicMaterial({ color: color || '#aaa', wireframe: true }); // NOTE! geometry.clone is required for UNKNOWN reasons, // three does not render the mesh correctly without doing this since r88 const mesh = new THREE.Mesh(geometry.clone(), material); container.add(mesh); this.addEventListener(system, function () { mesh.position.copy(emitter.position); mesh.rotation.set(emitter.rotation.x, emitter.rotation.y, emitter.rotation.z); }); }, /** * Renders emitter / particle information into the info element. * * @param {object} system - the system instance * @param {integer} style - style to apply (see the addInfo method's switch statement) * @return void */ renderInfo: function () { function getCreatedNumber(type, system) { var pool = type == 'material' ? '_materialPool' : '_targetPool'; var renderer = system.renderers[0]; return renderer[pool].cID; } function getEmitterPos(system) { var e = system.emitters[0]; return Math.round(e.p.x) + ',' + Math.round(e.p.y) + ',' + Math.round(e.p.z); } return function (system, style) { this.addInfo(style); var str = ''; switch (this._infoType) { case 2: str += 'emitter:' + system.emitters.length + '
'; str += 'em speed:' + system.emitters[0].cID + '
'; str += 'pos:' + getEmitterPos(system); break; case 3: str += system.renderers[0].name + '
'; str += 'target:' + getCreatedNumber('target') + '
'; str += 'material:' + getCreatedNumber('material'); break; default: str += 'particles:' + system.getCount() + '
'; str += 'pool:' + system.pool.getCount() + '
'; str += 'total:' + (system.getCount() + system.pool.getCount()); } this._infoCon.innerHTML = str; }; }(), /** * Appends the info element into the dom. * * @param {integer} style - the style type to apply * @return void */ addInfo: function () { return function (style) { var self = this; if (!this._infoCon) { this._infoCon = document.createElement('div'); this._infoCon.style.cssText = ['position:fixed;bottom:0px;left:0;cursor:pointer;', 'opacity:0.9;z-index:10000;padding:10px;font-size:12px;', 'width:120px;height:50px;background-color:#002;color:#0ff;'].join(''); this._infoType = 1; this._infoCon.addEventListener('click', function () { self._infoType++; if (self._infoType > 3) self._infoType = 1; }, false); var bg, color; switch (style) { case 2: bg = '#201'; color = '#f08'; break; case 3: bg = '#020'; color = '#0f0'; break; default: bg = '#002'; color = '#0ff'; } this._infoCon.style['background-color'] = bg; this._infoCon.style['color'] = color; } if (!this._infoCon.parentNode) document.body.appendChild(this._infoCon); }; }() }; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9kZWJ1Zy9EZWJ1Zy5qcyJdLCJuYW1lcyI6WyJERUZBVUxUX1BPU0lUSU9OIiwiREVGQVVMVF9TSVpFIiwic2l6ZSIsImFkZEV2ZW50TGlzdGVuZXIiLCJzeXN0ZW0iLCJvblN5c3RlbVVwZGF0ZWQiLCJldmVudERpc3BhdGNoZXIiLCJkcmF3Wm9uZSIsIlRIUkVFIiwiY29udGFpbmVyIiwiem9uZSIsImNvbG9yIiwid2lyZWZyYW1lIiwid2lkdGgiLCJoZWlnaHQiLCJkZXB0aCIsInJhZGl1cyIsIngiLCJ5IiwieiIsImdlb21ldHJ5IiwiaXNQb2ludFpvbmUiLCJTcGhlcmVHZW9tZXRyeSIsImlzTGluZVpvbmUiLCJpc0JveFpvbmUiLCJCb3hHZW9tZXRyeSIsImlzU3BoZXJlWm9uZSIsImlzTWVzaFpvbmUiLCJjbG9uZSIsIm1hdGVyaWFsIiwiTWVzaEJhc2ljTWF0ZXJpYWwiLCJtZXNoIiwiTWVzaCIsImFkZCIsInBvc2l0aW9uIiwic2V0IiwiZHJhd0VtaXR0ZXIiLCJlbWl0dGVyIiwiT2N0YWhlZHJvbkdlb21ldHJ5IiwiY29weSIsInJvdGF0aW9uIiwicmVuZGVySW5mbyIsImdldENyZWF0ZWROdW1iZXIiLCJ0eXBlIiwicG9vbCIsInJlbmRlcmVyIiwicmVuZGVyZXJzIiwiY0lEIiwiZ2V0RW1pdHRlclBvcyIsImUiLCJlbWl0dGVycyIsIk1hdGgiLCJyb3VuZCIsInAiLCJzdHlsZSIsImFkZEluZm8iLCJzdHIiLCJfaW5mb1R5cGUiLCJsZW5ndGgiLCJuYW1lIiwiZ2V0Q291bnQiLCJfaW5mb0NvbiIsImlubmVySFRNTCIsInNlbGYiLCJkb2N1bWVudCIsImNyZWF0ZUVsZW1lbnQiLCJjc3NUZXh0Iiwiam9pbiIsImJnIiwicGFyZW50Tm9kZSIsImJvZHkiLCJhcHBlbmRDaGlsZCJdLCJtYXBwaW5ncyI6IkFBQUEsU0FBU0EsZ0JBQVQsRUFBMkJDLFlBQVksSUFBSUMsSUFBM0MsUUFBdUQsYUFBdkQ7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFDQSxlQUFlO0FBQ2I7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDRUMsRUFBQUEsZ0JBQWdCLEVBQUUsVUFBU0MsTUFBVCxFQUFpQkMsZUFBakIsRUFBa0M7QUFDbERELElBQUFBLE1BQU0sQ0FBQ0UsZUFBUCxDQUF1QkgsZ0JBQXZCLENBQXdDLGVBQXhDLEVBQXlERSxlQUF6RDtBQUVBLFdBQU8sSUFBUDtBQUNELEdBWlk7O0FBY2I7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNFRSxFQUFBQSxRQUFRLEVBQUUsVUFBU0MsS0FBVCxFQUFnQkosTUFBaEIsRUFBd0JLLFNBQXhCLEVBQW1DQyxJQUFJLEdBQUcsRUFBMUMsRUFBOEM7QUFDdEQsVUFBTUMsS0FBSyxHQUFHLFNBQWQ7QUFDQSxVQUFNQyxTQUFTLEdBQUcsSUFBbEI7QUFDQSxVQUFNO0FBQ0pDLE1BQUFBLEtBQUssR0FBR1gsSUFESjtBQUVKWSxNQUFBQSxNQUFNLEdBQUdaLElBRkw7QUFHSmEsTUFBQUEsS0FBSyxHQUFHYixJQUhKO0FBSUpjLE1BQUFBLE1BQU0sR0FBR2QsSUFKTDtBQUtKZSxNQUFBQSxDQUFDLEdBQUdqQixnQkFMQTtBQU1Ka0IsTUFBQUEsQ0FBQyxHQUFHbEIsZ0JBTkE7QUFPSm1CLE1BQUFBLENBQUMsR0FBR25CO0FBUEEsUUFRRlUsSUFSSjtBQVVBLFFBQUlVLFFBQUo7O0FBRUEsUUFBSVYsSUFBSSxDQUFDVyxXQUFMLEVBQUosRUFBd0I7QUFDdEJELE1BQUFBLFFBQVEsR0FBRyxJQUFJWixLQUFLLENBQUNjLGNBQVYsQ0FBeUIsRUFBekIsQ0FBWDtBQUNEOztBQUVELFFBQUlaLElBQUksQ0FBQ2EsVUFBTCxFQUFKLEVBQXVCLENBQ3JCO0FBQ0Q7O0FBRUQsUUFBSWIsSUFBSSxDQUFDYyxTQUFMLEVBQUosRUFBc0I7QUFDcEJKLE1BQUFBLFFBQVEsR0FBRyxJQUFJWixLQUFLLENBQUNpQixXQUFWLENBQXNCWixLQUF0QixFQUE2QkMsTUFBN0IsRUFBcUNDLEtBQXJDLENBQVg7QUFDRDs7QUFFRCxRQUFJTCxJQUFJLENBQUNnQixZQUFMLEVBQUosRUFBeUI7QUFDdkJOLE1BQUFBLFFBQVEsR0FBRyxJQUFJWixLQUFLLENBQUNjLGNBQVYsQ0FBeUJOLE1BQXpCLEVBQWlDZCxJQUFqQyxFQUF1Q0EsSUFBdkMsQ0FBWDtBQUNEOztBQUVELFFBQUlRLElBQUksQ0FBQ2lCLFVBQUwsRUFBSixFQUF1QjtBQUNyQlAsTUFBQUEsUUFBUSxHQUFHVixJQUFJLENBQUNVLFFBQUwsQ0FBY0EsUUFBZCxHQUNQVixJQUFJLENBQUNVLFFBQUwsQ0FBY0EsUUFBZCxDQUF1QlEsS0FBdkIsRUFETyxHQUVQbEIsSUFBSSxDQUFDVSxRQUFMLENBQWNRLEtBQWQsRUFGSjtBQUdEOztBQUVELFFBQUksQ0FBQ1IsUUFBTCxFQUFlO0FBQ2JBLE1BQUFBLFFBQVEsR0FBRyxJQUFJWixLQUFLLENBQUNpQixXQUFWLENBQXNCWixLQUF0QixFQUE2QkMsTUFBN0IsRUFBcUNDLEtBQXJDLENBQVg7QUFDRDs7QUFFRCxVQUFNYyxRQUFRLEdBQUcsSUFBSXJCLEtBQUssQ0FBQ3NCLGlCQUFWLENBQTRCO0FBQUVuQixNQUFBQSxLQUFGO0FBQVNDLE1BQUFBO0FBQVQsS0FBNUIsQ0FBakIsQ0F6Q3NELENBMEN0RDtBQUNBOztBQUNBLFVBQU1tQixJQUFJLEdBQUcsSUFBSXZCLEtBQUssQ0FBQ3dCLElBQVYsQ0FBZVosUUFBUSxDQUFDUSxLQUFULEVBQWYsRUFBaUNDLFFBQWpDLENBQWI7QUFFQXBCLElBQUFBLFNBQVMsQ0FBQ3dCLEdBQVYsQ0FBY0YsSUFBZDtBQUVBLFNBQUs1QixnQkFBTCxDQUFzQkMsTUFBdEIsRUFBOEIsWUFBVztBQUN2QzJCLE1BQUFBLElBQUksQ0FBQ0csUUFBTCxDQUFjQyxHQUFkLENBQWtCbEIsQ0FBbEIsRUFBcUJDLENBQXJCLEVBQXdCQyxDQUF4QjtBQUNELEtBRkQ7QUFHRCxHQXpFWTs7QUEyRWI7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0VpQixFQUFBQSxXQUFXLEVBQUUsVUFBUzVCLEtBQVQsRUFBZ0JKLE1BQWhCLEVBQXdCSyxTQUF4QixFQUFtQzRCLE9BQW5DLEVBQTRDMUIsS0FBNUMsRUFBbUQ7QUFDOUQsVUFBTVMsUUFBUSxHQUFHLElBQUlaLEtBQUssQ0FBQzhCLGtCQUFWLENBQTZCcEMsSUFBN0IsQ0FBakI7QUFDQSxVQUFNMkIsUUFBUSxHQUFHLElBQUlyQixLQUFLLENBQUNzQixpQkFBVixDQUE0QjtBQUMzQ25CLE1BQUFBLEtBQUssRUFBRUEsS0FBSyxJQUFJLE1BRDJCO0FBRTNDQyxNQUFBQSxTQUFTLEVBQUU7QUFGZ0MsS0FBNUIsQ0FBakIsQ0FGOEQsQ0FNOUQ7QUFDQTs7QUFDQSxVQUFNbUIsSUFBSSxHQUFHLElBQUl2QixLQUFLLENBQUN3QixJQUFWLENBQWVaLFFBQVEsQ0FBQ1EsS0FBVCxFQUFmLEVBQWlDQyxRQUFqQyxDQUFiO0FBRUFwQixJQUFBQSxTQUFTLENBQUN3QixHQUFWLENBQWNGLElBQWQ7QUFFQSxTQUFLNUIsZ0JBQUwsQ0FBc0JDLE1BQXRCLEVBQThCLFlBQVc7QUFDdkMyQixNQUFBQSxJQUFJLENBQUNHLFFBQUwsQ0FBY0ssSUFBZCxDQUFtQkYsT0FBTyxDQUFDSCxRQUEzQjtBQUNBSCxNQUFBQSxJQUFJLENBQUNTLFFBQUwsQ0FBY0wsR0FBZCxDQUNFRSxPQUFPLENBQUNHLFFBQVIsQ0FBaUJ2QixDQURuQixFQUVFb0IsT0FBTyxDQUFDRyxRQUFSLENBQWlCdEIsQ0FGbkIsRUFHRW1CLE9BQU8sQ0FBQ0csUUFBUixDQUFpQnJCLENBSG5CO0FBS0QsS0FQRDtBQVFELEdBeEdZOztBQTBHYjtBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNFc0IsRUFBQUEsVUFBVSxFQUFHLFlBQVc7QUFDdEIsYUFBU0MsZ0JBQVQsQ0FBMEJDLElBQTFCLEVBQWdDdkMsTUFBaEMsRUFBd0M7QUFDdEMsVUFBSXdDLElBQUksR0FBR0QsSUFBSSxJQUFJLFVBQVIsR0FBcUIsZUFBckIsR0FBdUMsYUFBbEQ7QUFDQSxVQUFJRSxRQUFRLEdBQUd6QyxNQUFNLENBQUMwQyxTQUFQLENBQWlCLENBQWpCLENBQWY7QUFFQSxhQUFPRCxRQUFRLENBQUNELElBQUQsQ0FBUixDQUFlRyxHQUF0QjtBQUNEOztBQUVELGFBQVNDLGFBQVQsQ0FBdUI1QyxNQUF2QixFQUErQjtBQUM3QixVQUFJNkMsQ0FBQyxHQUFHN0MsTUFBTSxDQUFDOEMsUUFBUCxDQUFnQixDQUFoQixDQUFSO0FBRUEsYUFDRUMsSUFBSSxDQUFDQyxLQUFMLENBQVdILENBQUMsQ0FBQ0ksQ0FBRixDQUFJcEMsQ0FBZixJQUFvQixHQUFwQixHQUEwQmtDLElBQUksQ0FBQ0MsS0FBTCxDQUFXSCxDQUFDLENBQUNJLENBQUYsQ0FBSW5DLENBQWYsQ0FBMUIsR0FBOEMsR0FBOUMsR0FBb0RpQyxJQUFJLENBQUNDLEtBQUwsQ0FBV0gsQ0FBQyxDQUFDSSxDQUFGLENBQUlsQyxDQUFmLENBRHREO0FBR0Q7O0FBRUQsV0FBTyxVQUFTZixNQUFULEVBQWlCa0QsS0FBakIsRUFBd0I7QUFDN0IsV0FBS0MsT0FBTCxDQUFhRCxLQUFiO0FBQ0EsVUFBSUUsR0FBRyxHQUFHLEVBQVY7O0FBRUEsY0FBUSxLQUFLQyxTQUFiO0FBQ0UsYUFBSyxDQUFMO0FBQ0VELFVBQUFBLEdBQUcsSUFBSSxhQUFhcEQsTUFBTSxDQUFDOEMsUUFBUCxDQUFnQlEsTUFBN0IsR0FBc0MsTUFBN0M7QUFDQUYsVUFBQUEsR0FBRyxJQUFJLGNBQWNwRCxNQUFNLENBQUM4QyxRQUFQLENBQWdCLENBQWhCLEVBQW1CSCxHQUFqQyxHQUF1QyxNQUE5QztBQUNBUyxVQUFBQSxHQUFHLElBQUksU0FBU1IsYUFBYSxDQUFDNUMsTUFBRCxDQUE3QjtBQUNBOztBQUVGLGFBQUssQ0FBTDtBQUNFb0QsVUFBQUEsR0FBRyxJQUFJcEQsTUFBTSxDQUFDMEMsU0FBUCxDQUFpQixDQUFqQixFQUFvQmEsSUFBcEIsR0FBMkIsTUFBbEM7QUFDQUgsVUFBQUEsR0FBRyxJQUFJLFlBQVlkLGdCQUFnQixDQUFDLFFBQUQsQ0FBNUIsR0FBeUMsTUFBaEQ7QUFDQWMsVUFBQUEsR0FBRyxJQUFJLGNBQWNkLGdCQUFnQixDQUFDLFVBQUQsQ0FBckM7QUFDQTs7QUFFRjtBQUNFYyxVQUFBQSxHQUFHLElBQUksZUFBZXBELE1BQU0sQ0FBQ3dELFFBQVAsRUFBZixHQUFtQyxNQUExQztBQUNBSixVQUFBQSxHQUFHLElBQUksVUFBVXBELE1BQU0sQ0FBQ3dDLElBQVAsQ0FBWWdCLFFBQVosRUFBVixHQUFtQyxNQUExQztBQUNBSixVQUFBQSxHQUFHLElBQUksWUFBWXBELE1BQU0sQ0FBQ3dELFFBQVAsS0FBb0J4RCxNQUFNLENBQUN3QyxJQUFQLENBQVlnQixRQUFaLEVBQWhDLENBQVA7QUFoQko7O0FBa0JBLFdBQUtDLFFBQUwsQ0FBY0MsU0FBZCxHQUEwQk4sR0FBMUI7QUFDRCxLQXZCRDtBQXdCRCxHQXhDVyxFQWpIQzs7QUEySmI7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0VELEVBQUFBLE9BQU8sRUFBRyxZQUFXO0FBQ25CLFdBQU8sVUFBU0QsS0FBVCxFQUFnQjtBQUNyQixVQUFJUyxJQUFJLEdBQUcsSUFBWDs7QUFFQSxVQUFJLENBQUMsS0FBS0YsUUFBVixFQUFvQjtBQUNsQixhQUFLQSxRQUFMLEdBQWdCRyxRQUFRLENBQUNDLGFBQVQsQ0FBdUIsS0FBdkIsQ0FBaEI7QUFDQSxhQUFLSixRQUFMLENBQWNQLEtBQWQsQ0FBb0JZLE9BQXBCLEdBQThCLENBQzVCLGtEQUQ0QixFQUU1Qix3REFGNEIsRUFHNUIsMkRBSDRCLEVBSTVCQyxJQUo0QixDQUl2QixFQUp1QixDQUE5QjtBQU1BLGFBQUtWLFNBQUwsR0FBaUIsQ0FBakI7O0FBQ0EsYUFBS0ksUUFBTCxDQUFjMUQsZ0JBQWQsQ0FDRSxPQURGLEVBRUUsWUFBVztBQUNUNEQsVUFBQUEsSUFBSSxDQUFDTixTQUFMO0FBQ0EsY0FBSU0sSUFBSSxDQUFDTixTQUFMLEdBQWlCLENBQXJCLEVBQXdCTSxJQUFJLENBQUNOLFNBQUwsR0FBaUIsQ0FBakI7QUFDekIsU0FMSCxFQU1FLEtBTkY7O0FBU0EsWUFBSVcsRUFBSixFQUFRekQsS0FBUjs7QUFFQSxnQkFBUTJDLEtBQVI7QUFDRSxlQUFLLENBQUw7QUFDRWMsWUFBQUEsRUFBRSxHQUFHLE1BQUw7QUFDQXpELFlBQUFBLEtBQUssR0FBRyxNQUFSO0FBQ0E7O0FBRUYsZUFBSyxDQUFMO0FBQ0V5RCxZQUFBQSxFQUFFLEdBQUcsTUFBTDtBQUNBekQsWUFBQUEsS0FBSyxHQUFHLE1BQVI7QUFDQTs7QUFFRjtBQUNFeUQsWUFBQUEsRUFBRSxHQUFHLE1BQUw7QUFDQXpELFlBQUFBLEtBQUssR0FBRyxNQUFSO0FBYko7O0FBZ0JBLGFBQUtrRCxRQUFMLENBQWNQLEtBQWQsQ0FBb0Isa0JBQXBCLElBQTBDYyxFQUExQztBQUNBLGFBQUtQLFFBQUwsQ0FBY1AsS0FBZCxDQUFvQixPQUFwQixJQUErQjNDLEtBQS9CO0FBQ0Q7O0FBRUQsVUFBSSxDQUFDLEtBQUtrRCxRQUFMLENBQWNRLFVBQW5CLEVBQStCTCxRQUFRLENBQUNNLElBQVQsQ0FBY0MsV0FBZCxDQUEwQixLQUFLVixRQUEvQjtBQUNoQyxLQTVDRDtBQTZDRCxHQTlDUTtBQWpLSSxDQUFmIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgREVGQVVMVF9QT1NJVElPTiwgREVGQVVMVF9TSVpFIGFzIHNpemUgfSBmcm9tICcuL2NvbnN0YW50cyc7XG5cbi8qKlxuICogQGV4cG9ydHMgRGVidWcgLSBtZXRob2RzIGFuZCBoZWxwZXJzIGZvciBkZWJ1Z2dpbmcgU3lzdGVtIGVtaXR0ZXJzLCB6b25lcyBhbmQgcGFydGljbGVzLlxuICogQHJlcXVpcmVzIFRIUkVFIC0geyBTcGhlcmVHZW9tZXRyeSwgQm94R2VvbWV0cnksIE1lc2hCYXNpY01hdGVyaWFsLCBPY3RhaGVkcm9uR2VvbWV0cnksIE1lc2ggfVxuICovXG5leHBvcnQgZGVmYXVsdCB7XG4gIC8qKlxuICAgKiBBZGRzIGFuIGV2ZW50IGxpc3RlbmVyIHRvIHRoZSBzeXN0ZW0gaW5zdGFuY2UncyBTWVNURU1fVVBEQVRFIGV2ZW50LlxuICAgKlxuICAgKiBAcGFyYW0ge1N5c3RlbX0gc3lzdGVtIC0gdGhlIHN5c3RlbSBpbnN0YW5jZVxuICAgKiBAcGFyYW0ge2Z1bmN0aW9ufSBvblN5c3RlbVVwZGF0ZWQgLSB0aGUgZnVuY3Rpb24gdG8gY2FsbCB3aGVuIHN5c3RlbSBoYXMgYmVlbiB1cGRhdGVkXG4gICAqIEByZXR1cm4ge0RlYnVnfVxuICAgKi9cbiAgYWRkRXZlbnRMaXN0ZW5lcjogZnVuY3Rpb24oc3lzdGVtLCBvblN5c3RlbVVwZGF0ZWQpIHtcbiAgICBzeXN0ZW0uZXZlbnREaXNwYXRjaGVyLmFkZEV2ZW50TGlzdGVuZXIoJ1NZU1RFTV9VUERBVEUnLCBvblN5c3RlbVVwZGF0ZWQpO1xuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH0sXG5cbiAgLyoqXG4gICAqIERyYXdzIGEgd2lyZWZyYW1lIG1lc2ggYXJvdW5kIHRoZSB6b25lIGZvciBkZWJ1Z2dpbmcgcHVycG9zZXMuXG4gICAqXG4gICAqIEBwYXJhbSB7U3lzdGVtfSBzeXN0ZW0gLSB0aGUgc3lzdGVtIGluc3RhbmNlXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBjb250YWluZXIgLSBhIHRocmVlIE9iamVjdDNEICh1c3VhbGx5IHRoZSBzY2VuZSlcbiAgICogQHBhcmFtIHtab25lfSB6b25lIC0gYSBab25lIGluc3RhbmNlXG4gICAqIEByZXR1cm4gdm9pZFxuICAgKi9cbiAgZHJhd1pvbmU6IGZ1bmN0aW9uKFRIUkVFLCBzeXN0ZW0sIGNvbnRhaW5lciwgem9uZSA9IHt9KSB7XG4gICAgY29uc3QgY29sb3IgPSAnIzIxOTRjZSc7XG4gICAgY29uc3Qgd2lyZWZyYW1lID0gdHJ1ZTtcbiAgICBjb25zdCB7XG4gICAgICB3aWR0aCA9IHNpemUsXG4gICAgICBoZWlnaHQgPSBzaXplLFxuICAgICAgZGVwdGggPSBzaXplLFxuICAgICAgcmFkaXVzID0gc2l6ZSxcbiAgICAgIHggPSBERUZBVUxUX1BPU0lUSU9OLFxuICAgICAgeSA9IERFRkFVTFRfUE9TSVRJT04sXG4gICAgICB6ID0gREVGQVVMVF9QT1NJVElPTixcbiAgICB9ID0gem9uZTtcblxuICAgIGxldCBnZW9tZXRyeTtcblxuICAgIGlmICh6b25lLmlzUG9pbnRab25lKCkpIHtcbiAgICAgIGdlb21ldHJ5ID0gbmV3IFRIUkVFLlNwaGVyZUdlb21ldHJ5KDE1KTtcbiAgICB9XG5cbiAgICBpZiAoem9uZS5pc0xpbmVab25lKCkpIHtcbiAgICAgIC8vIFRPRE9cbiAgICB9XG5cbiAgICBpZiAoem9uZS5pc0JveFpvbmUoKSkge1xuICAgICAgZ2VvbWV0cnkgPSBuZXcgVEhSRUUuQm94R2VvbWV0cnkod2lkdGgsIGhlaWdodCwgZGVwdGgpO1xuICAgIH1cblxuICAgIGlmICh6b25lLmlzU3BoZXJlWm9uZSgpKSB7XG4gICAgICBnZW9tZXRyeSA9IG5ldyBUSFJFRS5TcGhlcmVHZW9tZXRyeShyYWRpdXMsIHNpemUsIHNpemUpO1xuICAgIH1cblxuICAgIGlmICh6b25lLmlzTWVzaFpvbmUoKSkge1xuICAgICAgZ2VvbWV0cnkgPSB6b25lLmdlb21ldHJ5Lmdlb21ldHJ5XG4gICAgICAgID8gem9uZS5nZW9tZXRyeS5nZW9tZXRyeS5jbG9uZSgpXG4gICAgICAgIDogem9uZS5nZW9tZXRyeS5jbG9uZSgpO1xuICAgIH1cblxuICAgIGlmICghZ2VvbWV0cnkpIHtcbiAgICAgIGdlb21ldHJ5ID0gbmV3IFRIUkVFLkJveEdlb21ldHJ5KHdpZHRoLCBoZWlnaHQsIGRlcHRoKTtcbiAgICB9XG5cbiAgICBjb25zdCBtYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCh7IGNvbG9yLCB3aXJlZnJhbWUgfSk7XG4gICAgLy8gTk9URSEgZ2VvbWV0cnkuY2xvbmUgaXMgcmVxdWlyZWQgZm9yIFVOS05PV04gcmVhc29ucyxcbiAgICAvLyB0aHJlZSBkb2VzIG5vdCByZW5kZXIgdGhlIG1lc2ggY29ycmVjdGx5IHdpdGhvdXQgZG9pbmcgdGhpcyBzaW5jZSByODhcbiAgICBjb25zdCBtZXNoID0gbmV3IFRIUkVFLk1lc2goZ2VvbWV0cnkuY2xvbmUoKSwgbWF0ZXJpYWwpO1xuXG4gICAgY29udGFpbmVyLmFkZChtZXNoKTtcblxuICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcihzeXN0ZW0sIGZ1bmN0aW9uKCkge1xuICAgICAgbWVzaC5wb3NpdGlvbi5zZXQoeCwgeSwgeik7XG4gICAgfSk7XG4gIH0sXG5cbiAgLyoqXG4gICAqIERyYXdzIGEgbWVzaCBmb3IgZWFjaCBwYXJ0aWNsZSBlbWl0dGVkIGluIG9yZGVyIHRvIGhlbHAgZGVidWcgcGFydGljbGVzLlxuICAgKlxuICAgKiBAcGFyYW0ge29iamVjdH0gc3lzdGVtIC0gdGhlIHN5c3RlbSBpbnN0YW5jZVxuICAgKiBAcGFyYW0ge29iamVjdH0gY29udGFpbmVyIC0gYSB0aHJlZSBPYmplY3QzRCAodXN1YWxseSB0aGUgc2NlbmUpXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBlbWl0dGVyIC0gdGhlIGVtaXR0ZXIgdG8gZGVidWdcbiAgICogQHBhcmFtIHtzdHJpbmd9IGNvbG9yIC0gdGhlIGNvbG9yIGZvciB0aGUgZGVidWcgbWVzaCBtYXRlcmlhbFxuICAgKiBAcmV0dXJuIHZvaWRcbiAgICovXG4gIGRyYXdFbWl0dGVyOiBmdW5jdGlvbihUSFJFRSwgc3lzdGVtLCBjb250YWluZXIsIGVtaXR0ZXIsIGNvbG9yKSB7XG4gICAgY29uc3QgZ2VvbWV0cnkgPSBuZXcgVEhSRUUuT2N0YWhlZHJvbkdlb21ldHJ5KHNpemUpO1xuICAgIGNvbnN0IG1hdGVyaWFsID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKHtcbiAgICAgIGNvbG9yOiBjb2xvciB8fCAnI2FhYScsXG4gICAgICB3aXJlZnJhbWU6IHRydWUsXG4gICAgfSk7XG4gICAgLy8gTk9URSEgZ2VvbWV0cnkuY2xvbmUgaXMgcmVxdWlyZWQgZm9yIFVOS05PV04gcmVhc29ucyxcbiAgICAvLyB0aHJlZSBkb2VzIG5vdCByZW5kZXIgdGhlIG1lc2ggY29ycmVjdGx5IHdpdGhvdXQgZG9pbmcgdGhpcyBzaW5jZSByODhcbiAgICBjb25zdCBtZXNoID0gbmV3IFRIUkVFLk1lc2goZ2VvbWV0cnkuY2xvbmUoKSwgbWF0ZXJpYWwpO1xuXG4gICAgY29udGFpbmVyLmFkZChtZXNoKTtcblxuICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcihzeXN0ZW0sIGZ1bmN0aW9uKCkge1xuICAgICAgbWVzaC5wb3NpdGlvbi5jb3B5KGVtaXR0ZXIucG9zaXRpb24pO1xuICAgICAgbWVzaC5yb3RhdGlvbi5zZXQoXG4gICAgICAgIGVtaXR0ZXIucm90YXRpb24ueCxcbiAgICAgICAgZW1pdHRlci5yb3RhdGlvbi55LFxuICAgICAgICBlbWl0dGVyLnJvdGF0aW9uLnpcbiAgICAgICk7XG4gICAgfSk7XG4gIH0sXG5cbiAgLyoqXG4gICAqIFJlbmRlcnMgZW1pdHRlciAvIHBhcnRpY2xlIGluZm9ybWF0aW9uIGludG8gdGhlIGluZm8gZWxlbWVudC5cbiAgICpcbiAgICogQHBhcmFtIHtvYmplY3R9IHN5c3RlbSAtIHRoZSBzeXN0ZW0gaW5zdGFuY2VcbiAgICogQHBhcmFtIHtpbnRlZ2VyfSBzdHlsZSAtIHN0eWxlIHRvIGFwcGx5IChzZWUgdGhlIGFkZEluZm8gbWV0aG9kJ3Mgc3dpdGNoIHN0YXRlbWVudClcbiAgICogQHJldHVybiB2b2lkXG4gICAqL1xuICByZW5kZXJJbmZvOiAoZnVuY3Rpb24oKSB7XG4gICAgZnVuY3Rpb24gZ2V0Q3JlYXRlZE51bWJlcih0eXBlLCBzeXN0ZW0pIHtcbiAgICAgIHZhciBwb29sID0gdHlwZSA9PSAnbWF0ZXJpYWwnID8gJ19tYXRlcmlhbFBvb2wnIDogJ190YXJnZXRQb29sJztcbiAgICAgIHZhciByZW5kZXJlciA9IHN5c3RlbS5yZW5kZXJlcnNbMF07XG5cbiAgICAgIHJldHVybiByZW5kZXJlcltwb29sXS5jSUQ7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZ2V0RW1pdHRlclBvcyhzeXN0ZW0pIHtcbiAgICAgIHZhciBlID0gc3lzdGVtLmVtaXR0ZXJzWzBdO1xuXG4gICAgICByZXR1cm4gKFxuICAgICAgICBNYXRoLnJvdW5kKGUucC54KSArICcsJyArIE1hdGgucm91bmQoZS5wLnkpICsgJywnICsgTWF0aC5yb3VuZChlLnAueilcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZ1bmN0aW9uKHN5c3RlbSwgc3R5bGUpIHtcbiAgICAgIHRoaXMuYWRkSW5mbyhzdHlsZSk7XG4gICAgICB2YXIgc3RyID0gJyc7XG5cbiAgICAgIHN3aXRjaCAodGhpcy5faW5mb1R5cGUpIHtcbiAgICAgICAgY2FzZSAyOlxuICAgICAgICAgIHN0ciArPSAnZW1pdHRlcjonICsgc3lzdGVtLmVtaXR0ZXJzLmxlbmd0aCArICc8YnI+JztcbiAgICAgICAgICBzdHIgKz0gJ2VtIHNwZWVkOicgKyBzeXN0ZW0uZW1pdHRlcnNbMF0uY0lEICsgJzxicj4nO1xuICAgICAgICAgIHN0ciArPSAncG9zOicgKyBnZXRFbWl0dGVyUG9zKHN5c3RlbSk7XG4gICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgY2FzZSAzOlxuICAgICAgICAgIHN0ciArPSBzeXN0ZW0ucmVuZGVyZXJzWzBdLm5hbWUgKyAnPGJyPic7XG4gICAgICAgICAgc3RyICs9ICd0YXJnZXQ6JyArIGdldENyZWF0ZWROdW1iZXIoJ3RhcmdldCcpICsgJzxicj4nO1xuICAgICAgICAgIHN0ciArPSAnbWF0ZXJpYWw6JyArIGdldENyZWF0ZWROdW1iZXIoJ21hdGVyaWFsJyk7XG4gICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICBzdHIgKz0gJ3BhcnRpY2xlczonICsgc3lzdGVtLmdldENvdW50KCkgKyAnPGJyPic7XG4gICAgICAgICAgc3RyICs9ICdwb29sOicgKyBzeXN0ZW0ucG9vbC5nZXRDb3VudCgpICsgJzxicj4nO1xuICAgICAgICAgIHN0ciArPSAndG90YWw6JyArIChzeXN0ZW0uZ2V0Q291bnQoKSArIHN5c3RlbS5wb29sLmdldENvdW50KCkpO1xuICAgICAgfVxuICAgICAgdGhpcy5faW5mb0Nvbi5pbm5lckhUTUwgPSBzdHI7XG4gICAgfTtcbiAgfSkoKSxcblxuICAvKipcbiAgICogQXBwZW5kcyB0aGUgaW5mbyBlbGVtZW50IGludG8gdGhlIGRvbS5cbiAgICpcbiAgICogQHBhcmFtIHtpbnRlZ2VyfSBzdHlsZSAtIHRoZSBzdHlsZSB0eXBlIHRvIGFwcGx5XG4gICAqIEByZXR1cm4gdm9pZFxuICAgKi9cbiAgYWRkSW5mbzogKGZ1bmN0aW9uKCkge1xuICAgIHJldHVybiBmdW5jdGlvbihzdHlsZSkge1xuICAgICAgdmFyIHNlbGYgPSB0aGlzO1xuXG4gICAgICBpZiAoIXRoaXMuX2luZm9Db24pIHtcbiAgICAgICAgdGhpcy5faW5mb0NvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgICAgICB0aGlzLl9pbmZvQ29uLnN0eWxlLmNzc1RleHQgPSBbXG4gICAgICAgICAgJ3Bvc2l0aW9uOmZpeGVkO2JvdHRvbTowcHg7bGVmdDowO2N1cnNvcjpwb2ludGVyOycsXG4gICAgICAgICAgJ29wYWNpdHk6MC45O3otaW5kZXg6MTAwMDA7cGFkZGluZzoxMHB4O2ZvbnQtc2l6ZToxMnB4OycsXG4gICAgICAgICAgJ3dpZHRoOjEyMHB4O2hlaWdodDo1MHB4O2JhY2tncm91bmQtY29sb3I6IzAwMjtjb2xvcjojMGZmOycsXG4gICAgICAgIF0uam9pbignJyk7XG5cbiAgICAgICAgdGhpcy5faW5mb1R5cGUgPSAxO1xuICAgICAgICB0aGlzLl9pbmZvQ29uLmFkZEV2ZW50TGlzdGVuZXIoXG4gICAgICAgICAgJ2NsaWNrJyxcbiAgICAgICAgICBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIHNlbGYuX2luZm9UeXBlKys7XG4gICAgICAgICAgICBpZiAoc2VsZi5faW5mb1R5cGUgPiAzKSBzZWxmLl9pbmZvVHlwZSA9IDE7XG4gICAgICAgICAgfSxcbiAgICAgICAgICBmYWxzZVxuICAgICAgICApO1xuXG4gICAgICAgIHZhciBiZywgY29sb3I7XG5cbiAgICAgICAgc3dpdGNoIChzdHlsZSkge1xuICAgICAgICAgIGNhc2UgMjpcbiAgICAgICAgICAgIGJnID0gJyMyMDEnO1xuICAgICAgICAgICAgY29sb3IgPSAnI2YwOCc7XG4gICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgIGNhc2UgMzpcbiAgICAgICAgICAgIGJnID0gJyMwMjAnO1xuICAgICAgICAgICAgY29sb3IgPSAnIzBmMCc7XG4gICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICBiZyA9ICcjMDAyJztcbiAgICAgICAgICAgIGNvbG9yID0gJyMwZmYnO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5faW5mb0Nvbi5zdHlsZVsnYmFja2dyb3VuZC1jb2xvciddID0gYmc7XG4gICAgICAgIHRoaXMuX2luZm9Db24uc3R5bGVbJ2NvbG9yJ10gPSBjb2xvcjtcbiAgICAgIH1cblxuICAgICAgaWYgKCF0aGlzLl9pbmZvQ29uLnBhcmVudE5vZGUpIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodGhpcy5faW5mb0Nvbik7XG4gICAgfTtcbiAgfSkoKSxcbn07XG4iXX0= ================================================ FILE: packages/sdk/lib/core/libs/three-nebula/debug/constants.js ================================================ export const DEFAULT_WIDTH = 10; export const DEFAULT_HEIGHT = 10; export const DEFAULT_DEPTH = 10; export const DEFAULT_RADIUS = 15; export const DEFAULT_SIZE = 15; export const DEFAULT_POSITION = 0; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9kZWJ1Zy9jb25zdGFudHMuanMiXSwibmFtZXMiOlsiREVGQVVMVF9XSURUSCIsIkRFRkFVTFRfSEVJR0hUIiwiREVGQVVMVF9ERVBUSCIsIkRFRkFVTFRfUkFESVVTIiwiREVGQVVMVF9TSVpFIiwiREVGQVVMVF9QT1NJVElPTiJdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxNQUFNQSxhQUFhLEdBQUcsRUFBdEI7QUFDUCxPQUFPLE1BQU1DLGNBQWMsR0FBRyxFQUF2QjtBQUNQLE9BQU8sTUFBTUMsYUFBYSxHQUFHLEVBQXRCO0FBQ1AsT0FBTyxNQUFNQyxjQUFjLEdBQUcsRUFBdkI7QUFDUCxPQUFPLE1BQU1DLFlBQVksR0FBRyxFQUFyQjtBQUNQLE9BQU8sTUFBTUMsZ0JBQWdCLEdBQUcsQ0FBekIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgREVGQVVMVF9XSURUSCA9IDEwO1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfSEVJR0hUID0gMTA7XG5leHBvcnQgY29uc3QgREVGQVVMVF9ERVBUSCA9IDEwO1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfUkFESVVTID0gMTU7XG5leHBvcnQgY29uc3QgREVGQVVMVF9TSVpFID0gMTU7XG5leHBvcnQgY29uc3QgREVGQVVMVF9QT1NJVElPTiA9IDA7XG4iXX0= ================================================ FILE: packages/sdk/lib/core/libs/three-nebula/debug/index.js ================================================ export { default as Debug } from './Debug'; export { default as log } from './log'; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9kZWJ1Zy9pbmRleC5qcyJdLCJuYW1lcyI6WyJkZWZhdWx0IiwiRGVidWciLCJsb2ciXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLE9BQU8sSUFBSUMsS0FBcEIsUUFBaUMsU0FBakM7QUFDQSxTQUFTRCxPQUFPLElBQUlFLEdBQXBCLFFBQStCLE9BQS9CIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgZGVmYXVsdCBhcyBEZWJ1ZyB9IGZyb20gJy4vRGVidWcnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBsb2cgfSBmcm9tICcuL2xvZyc7XG4iXX0= ================================================ FILE: packages/sdk/lib/core/libs/three-nebula/debug/log.js ================================================ /** * You can use this emit particles. * * This method will console.log the fixed number of your info in updata or requestAnimationFrame * * use like this log('+12',mc); log 12 times * * @return void */ export default function () { let once = 0; if (window.console && window.console.trace) { var arg = Array.prototype.slice.call(arguments); var s1 = arguments[0] + ''; if (s1.indexOf('+') == 0) { var n = parseInt(arguments[0]); if (once < n) { arg.shift(); console.trace.apply(console, arg); once++; } } else { arg.unshift('+15'); this.apply(console, arg); } } } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9kZWJ1Zy9sb2cuanMiXSwibmFtZXMiOlsib25jZSIsIndpbmRvdyIsImNvbnNvbGUiLCJ0cmFjZSIsImFyZyIsIkFycmF5IiwicHJvdG90eXBlIiwic2xpY2UiLCJjYWxsIiwiYXJndW1lbnRzIiwiczEiLCJpbmRleE9mIiwibiIsInBhcnNlSW50Iiwic2hpZnQiLCJhcHBseSIsInVuc2hpZnQiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGVBQWUsWUFBVztBQUN4QixNQUFJQSxJQUFJLEdBQUcsQ0FBWDs7QUFFQSxNQUFJQyxNQUFNLENBQUNDLE9BQVAsSUFBa0JELE1BQU0sQ0FBQ0MsT0FBUCxDQUFlQyxLQUFyQyxFQUE0QztBQUMxQyxRQUFJQyxHQUFHLEdBQUdDLEtBQUssQ0FBQ0MsU0FBTixDQUFnQkMsS0FBaEIsQ0FBc0JDLElBQXRCLENBQTJCQyxTQUEzQixDQUFWO0FBQ0EsUUFBSUMsRUFBRSxHQUFHRCxTQUFTLENBQUMsQ0FBRCxDQUFULEdBQWUsRUFBeEI7O0FBRUEsUUFBSUMsRUFBRSxDQUFDQyxPQUFILENBQVcsR0FBWCxLQUFtQixDQUF2QixFQUEwQjtBQUN4QixVQUFJQyxDQUFDLEdBQUdDLFFBQVEsQ0FBQ0osU0FBUyxDQUFDLENBQUQsQ0FBVixDQUFoQjs7QUFFQSxVQUFJVCxJQUFJLEdBQUdZLENBQVgsRUFBYztBQUNaUixRQUFBQSxHQUFHLENBQUNVLEtBQUo7QUFDQVosUUFBQUEsT0FBTyxDQUFDQyxLQUFSLENBQWNZLEtBQWQsQ0FBb0JiLE9BQXBCLEVBQTZCRSxHQUE3QjtBQUNBSixRQUFBQSxJQUFJO0FBQ0w7QUFDRixLQVJELE1BUU87QUFDTEksTUFBQUEsR0FBRyxDQUFDWSxPQUFKLENBQVksS0FBWjtBQUNBLFdBQUtELEtBQUwsQ0FBV2IsT0FBWCxFQUFvQkUsR0FBcEI7QUFDRDtBQUNGO0FBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFlvdSBjYW4gdXNlIHRoaXMgZW1pdCBwYXJ0aWNsZXMuXG4gKlxuICogVGhpcyBtZXRob2Qgd2lsbCBjb25zb2xlLmxvZyB0aGUgZml4ZWQgbnVtYmVyIG9mIHlvdXIgaW5mbyAgaW4gdXBkYXRhIG9yIHJlcXVlc3RBbmltYXRpb25GcmFtZVxuICpcbiAqIHVzZSBsaWtlIHRoaXMgbG9nKCcrMTInLG1jKTsgbG9nIDEyIHRpbWVzXG4gKlxuICogQHJldHVybiB2b2lkXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKCkge1xuICBsZXQgb25jZSA9IDA7XG5cbiAgaWYgKHdpbmRvdy5jb25zb2xlICYmIHdpbmRvdy5jb25zb2xlLnRyYWNlKSB7XG4gICAgdmFyIGFyZyA9IEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cyk7XG4gICAgdmFyIHMxID0gYXJndW1lbnRzWzBdICsgJyc7XG5cbiAgICBpZiAoczEuaW5kZXhPZignKycpID09IDApIHtcbiAgICAgIHZhciBuID0gcGFyc2VJbnQoYXJndW1lbnRzWzBdKTtcblxuICAgICAgaWYgKG9uY2UgPCBuKSB7XG4gICAgICAgIGFyZy5zaGlmdCgpO1xuICAgICAgICBjb25zb2xlLnRyYWNlLmFwcGx5KGNvbnNvbGUsIGFyZyk7XG4gICAgICAgIG9uY2UrKztcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgYXJnLnVuc2hpZnQoJysxNScpO1xuICAgICAgdGhpcy5hcHBseShjb25zb2xlLCBhcmcpO1xuICAgIH1cbiAgfVxufVxuIl19 ================================================ FILE: packages/sdk/lib/core/libs/three-nebula/ease/index.js ================================================ import { PI } from '../constants'; /** * The Ease class provides a collection of easing functions for use with System */ export const ease = { easeLinear: function (value) { return value; }, easeInQuad: function (value) { return Math.pow(value, 2); }, easeOutQuad: function (value) { return -(Math.pow(value - 1, 2) - 1); }, easeInOutQuad: function (value) { if ((value /= 0.5) < 1) return 0.5 * Math.pow(value, 2); return -0.5 * ((value -= 2) * value - 2); }, easeInCubic: function (value) { return Math.pow(value, 3); }, easeOutCubic: function (value) { return Math.pow(value - 1, 3) + 1; }, easeInOutCubic: function (value) { if ((value /= 0.5) < 1) return 0.5 * Math.pow(value, 3); return 0.5 * (Math.pow(value - 2, 3) + 2); }, easeInQuart: function (value) { return Math.pow(value, 4); }, easeOutQuart: function (value) { return -(Math.pow(value - 1, 4) - 1); }, easeInOutQuart: function (value) { if ((value /= 0.5) < 1) return 0.5 * Math.pow(value, 4); return -0.5 * ((value -= 2) * Math.pow(value, 3) - 2); }, easeInSine: function (value) { return -Math.cos(value * (PI / 2)) + 1; }, easeOutSine: function (value) { return Math.sin(value * (PI / 2)); }, easeInOutSine: function (value) { return -0.5 * (Math.cos(PI * value) - 1); }, easeInExpo: function (value) { return value === 0 ? 0 : Math.pow(2, 10 * (value - 1)); }, easeOutExpo: function (value) { return value === 1 ? 1 : -Math.pow(2, -10 * value) + 1; }, easeInOutExpo: function (value) { if (value === 0) return 0; if (value === 1) return 1; if ((value /= 0.5) < 1) return 0.5 * Math.pow(2, 10 * (value - 1)); return 0.5 * (-Math.pow(2, -10 * --value) + 2); }, easeInCirc: function (value) { return -(Math.sqrt(1 - value * value) - 1); }, easeOutCirc: function (value) { return Math.sqrt(1 - Math.pow(value - 1, 2)); }, easeInOutCirc: function (value) { if ((value /= 0.5) < 1) return -0.5 * (Math.sqrt(1 - value * value) - 1); return 0.5 * (Math.sqrt(1 - (value -= 2) * value) + 1); }, easeInBack: function (value) { var s = 1.70158; return value * value * ((s + 1) * value - s); }, easeOutBack: function (value) { var s = 1.70158; return (value = value - 1) * value * ((s + 1) * value + s) + 1; }, easeInOutBack: function (value) { var s = 1.70158; if ((value /= 0.5) < 1) return 0.5 * (value * value * (((s *= 1.525) + 1) * value - s)); return 0.5 * ((value -= 2) * value * (((s *= 1.525) + 1) * value + s) + 2); } }; export const { easeLinear, easeInQuad, easeOutQuad, easeInOutQuad, easeInCubic, easeOutCubic, easeInOutCubic, easeInQuart, easeOutQuart, easeInOutQuart, easeInSine, easeOutSine, easeInOutSine, easeInExpo, easeOutExpo, easeInOutExpo, easeInCirc, easeOutCirc, easeInOutCirc, easeInBack, easeOutBack, easeInOutBack } = ease; export const setEasingByName = easeName => { if (ease[easeName]) return ease[easeName];else return ease.easeLinear; }; export const getEasingByName = name => ease[name] ? ease[name] : ease.easeLinear; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lYXNlL2luZGV4LmpzIl0sIm5hbWVzIjpbIlBJIiwiZWFzZSIsImVhc2VMaW5lYXIiLCJ2YWx1ZSIsImVhc2VJblF1YWQiLCJNYXRoIiwicG93IiwiZWFzZU91dFF1YWQiLCJlYXNlSW5PdXRRdWFkIiwiZWFzZUluQ3ViaWMiLCJlYXNlT3V0Q3ViaWMiLCJlYXNlSW5PdXRDdWJpYyIsImVhc2VJblF1YXJ0IiwiZWFzZU91dFF1YXJ0IiwiZWFzZUluT3V0UXVhcnQiLCJlYXNlSW5TaW5lIiwiY29zIiwiZWFzZU91dFNpbmUiLCJzaW4iLCJlYXNlSW5PdXRTaW5lIiwiZWFzZUluRXhwbyIsImVhc2VPdXRFeHBvIiwiZWFzZUluT3V0RXhwbyIsImVhc2VJbkNpcmMiLCJzcXJ0IiwiZWFzZU91dENpcmMiLCJlYXNlSW5PdXRDaXJjIiwiZWFzZUluQmFjayIsInMiLCJlYXNlT3V0QmFjayIsImVhc2VJbk91dEJhY2siLCJzZXRFYXNpbmdCeU5hbWUiLCJlYXNlTmFtZSIsImdldEVhc2luZ0J5TmFtZSIsIm5hbWUiXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLEVBQVQsUUFBbUIsY0FBbkI7QUFFQTtBQUNBO0FBQ0E7O0FBQ0EsT0FBTyxNQUFNQyxJQUFJLEdBQUc7QUFDbEJDLEVBQUFBLFVBQVUsRUFBRSxVQUFTQyxLQUFULEVBQWdCO0FBQzFCLFdBQU9BLEtBQVA7QUFDRCxHQUhpQjtBQUtsQkMsRUFBQUEsVUFBVSxFQUFFLFVBQVNELEtBQVQsRUFBZ0I7QUFDMUIsV0FBT0UsSUFBSSxDQUFDQyxHQUFMLENBQVNILEtBQVQsRUFBZ0IsQ0FBaEIsQ0FBUDtBQUNELEdBUGlCO0FBU2xCSSxFQUFBQSxXQUFXLEVBQUUsVUFBU0osS0FBVCxFQUFnQjtBQUMzQixXQUFPLEVBQUVFLElBQUksQ0FBQ0MsR0FBTCxDQUFTSCxLQUFLLEdBQUcsQ0FBakIsRUFBb0IsQ0FBcEIsSUFBeUIsQ0FBM0IsQ0FBUDtBQUNELEdBWGlCO0FBYWxCSyxFQUFBQSxhQUFhLEVBQUUsVUFBU0wsS0FBVCxFQUFnQjtBQUM3QixRQUFJLENBQUNBLEtBQUssSUFBSSxHQUFWLElBQWlCLENBQXJCLEVBQXdCLE9BQU8sTUFBTUUsSUFBSSxDQUFDQyxHQUFMLENBQVNILEtBQVQsRUFBZ0IsQ0FBaEIsQ0FBYjtBQUV4QixXQUFPLENBQUMsR0FBRCxJQUFRLENBQUNBLEtBQUssSUFBSSxDQUFWLElBQWVBLEtBQWYsR0FBdUIsQ0FBL0IsQ0FBUDtBQUNELEdBakJpQjtBQW1CbEJNLEVBQUFBLFdBQVcsRUFBRSxVQUFTTixLQUFULEVBQWdCO0FBQzNCLFdBQU9FLElBQUksQ0FBQ0MsR0FBTCxDQUFTSCxLQUFULEVBQWdCLENBQWhCLENBQVA7QUFDRCxHQXJCaUI7QUF1QmxCTyxFQUFBQSxZQUFZLEVBQUUsVUFBU1AsS0FBVCxFQUFnQjtBQUM1QixXQUFPRSxJQUFJLENBQUNDLEdBQUwsQ0FBU0gsS0FBSyxHQUFHLENBQWpCLEVBQW9CLENBQXBCLElBQXlCLENBQWhDO0FBQ0QsR0F6QmlCO0FBMkJsQlEsRUFBQUEsY0FBYyxFQUFFLFVBQVNSLEtBQVQsRUFBZ0I7QUFDOUIsUUFBSSxDQUFDQSxLQUFLLElBQUksR0FBVixJQUFpQixDQUFyQixFQUF3QixPQUFPLE1BQU1FLElBQUksQ0FBQ0MsR0FBTCxDQUFTSCxLQUFULEVBQWdCLENBQWhCLENBQWI7QUFFeEIsV0FBTyxPQUFPRSxJQUFJLENBQUNDLEdBQUwsQ0FBU0gsS0FBSyxHQUFHLENBQWpCLEVBQW9CLENBQXBCLElBQXlCLENBQWhDLENBQVA7QUFDRCxHQS9CaUI7QUFpQ2xCUyxFQUFBQSxXQUFXLEVBQUUsVUFBU1QsS0FBVCxFQUFnQjtBQUMzQixXQUFPRSxJQUFJLENBQUNDLEdBQUwsQ0FBU0gsS0FBVCxFQUFnQixDQUFoQixDQUFQO0FBQ0QsR0FuQ2lCO0FBcUNsQlUsRUFBQUEsWUFBWSxFQUFFLFVBQVNWLEtBQVQsRUFBZ0I7QUFDNUIsV0FBTyxFQUFFRSxJQUFJLENBQUNDLEdBQUwsQ0FBU0gsS0FBSyxHQUFHLENBQWpCLEVBQW9CLENBQXBCLElBQXlCLENBQTNCLENBQVA7QUFDRCxHQXZDaUI7QUF5Q2xCVyxFQUFBQSxjQUFjLEVBQUUsVUFBU1gsS0FBVCxFQUFnQjtBQUM5QixRQUFJLENBQUNBLEtBQUssSUFBSSxHQUFWLElBQWlCLENBQXJCLEVBQXdCLE9BQU8sTUFBTUUsSUFBSSxDQUFDQyxHQUFMLENBQVNILEtBQVQsRUFBZ0IsQ0FBaEIsQ0FBYjtBQUV4QixXQUFPLENBQUMsR0FBRCxJQUFRLENBQUNBLEtBQUssSUFBSSxDQUFWLElBQWVFLElBQUksQ0FBQ0MsR0FBTCxDQUFTSCxLQUFULEVBQWdCLENBQWhCLENBQWYsR0FBb0MsQ0FBNUMsQ0FBUDtBQUNELEdBN0NpQjtBQStDbEJZLEVBQUFBLFVBQVUsRUFBRSxVQUFTWixLQUFULEVBQWdCO0FBQzFCLFdBQU8sQ0FBQ0UsSUFBSSxDQUFDVyxHQUFMLENBQVNiLEtBQUssSUFBSUgsRUFBRSxHQUFHLENBQVQsQ0FBZCxDQUFELEdBQThCLENBQXJDO0FBQ0QsR0FqRGlCO0FBbURsQmlCLEVBQUFBLFdBQVcsRUFBRSxVQUFTZCxLQUFULEVBQWdCO0FBQzNCLFdBQU9FLElBQUksQ0FBQ2EsR0FBTCxDQUFTZixLQUFLLElBQUlILEVBQUUsR0FBRyxDQUFULENBQWQsQ0FBUDtBQUNELEdBckRpQjtBQXVEbEJtQixFQUFBQSxhQUFhLEVBQUUsVUFBU2hCLEtBQVQsRUFBZ0I7QUFDN0IsV0FBTyxDQUFDLEdBQUQsSUFBUUUsSUFBSSxDQUFDVyxHQUFMLENBQVNoQixFQUFFLEdBQUdHLEtBQWQsSUFBdUIsQ0FBL0IsQ0FBUDtBQUNELEdBekRpQjtBQTJEbEJpQixFQUFBQSxVQUFVLEVBQUUsVUFBU2pCLEtBQVQsRUFBZ0I7QUFDMUIsV0FBT0EsS0FBSyxLQUFLLENBQVYsR0FBYyxDQUFkLEdBQWtCRSxJQUFJLENBQUNDLEdBQUwsQ0FBUyxDQUFULEVBQVksTUFBTUgsS0FBSyxHQUFHLENBQWQsQ0FBWixDQUF6QjtBQUNELEdBN0RpQjtBQStEbEJrQixFQUFBQSxXQUFXLEVBQUUsVUFBU2xCLEtBQVQsRUFBZ0I7QUFDM0IsV0FBT0EsS0FBSyxLQUFLLENBQVYsR0FBYyxDQUFkLEdBQWtCLENBQUNFLElBQUksQ0FBQ0MsR0FBTCxDQUFTLENBQVQsRUFBWSxDQUFDLEVBQUQsR0FBTUgsS0FBbEIsQ0FBRCxHQUE0QixDQUFyRDtBQUNELEdBakVpQjtBQW1FbEJtQixFQUFBQSxhQUFhLEVBQUUsVUFBU25CLEtBQVQsRUFBZ0I7QUFDN0IsUUFBSUEsS0FBSyxLQUFLLENBQWQsRUFBaUIsT0FBTyxDQUFQO0FBQ2pCLFFBQUlBLEtBQUssS0FBSyxDQUFkLEVBQWlCLE9BQU8sQ0FBUDtBQUNqQixRQUFJLENBQUNBLEtBQUssSUFBSSxHQUFWLElBQWlCLENBQXJCLEVBQXdCLE9BQU8sTUFBTUUsSUFBSSxDQUFDQyxHQUFMLENBQVMsQ0FBVCxFQUFZLE1BQU1ILEtBQUssR0FBRyxDQUFkLENBQVosQ0FBYjtBQUV4QixXQUFPLE9BQU8sQ0FBQ0UsSUFBSSxDQUFDQyxHQUFMLENBQVMsQ0FBVCxFQUFZLENBQUMsRUFBRCxHQUFNLEVBQUVILEtBQXBCLENBQUQsR0FBOEIsQ0FBckMsQ0FBUDtBQUNELEdBekVpQjtBQTJFbEJvQixFQUFBQSxVQUFVLEVBQUUsVUFBU3BCLEtBQVQsRUFBZ0I7QUFDMUIsV0FBTyxFQUFFRSxJQUFJLENBQUNtQixJQUFMLENBQVUsSUFBSXJCLEtBQUssR0FBR0EsS0FBdEIsSUFBK0IsQ0FBakMsQ0FBUDtBQUNELEdBN0VpQjtBQStFbEJzQixFQUFBQSxXQUFXLEVBQUUsVUFBU3RCLEtBQVQsRUFBZ0I7QUFDM0IsV0FBT0UsSUFBSSxDQUFDbUIsSUFBTCxDQUFVLElBQUluQixJQUFJLENBQUNDLEdBQUwsQ0FBU0gsS0FBSyxHQUFHLENBQWpCLEVBQW9CLENBQXBCLENBQWQsQ0FBUDtBQUNELEdBakZpQjtBQW1GbEJ1QixFQUFBQSxhQUFhLEVBQUUsVUFBU3ZCLEtBQVQsRUFBZ0I7QUFDN0IsUUFBSSxDQUFDQSxLQUFLLElBQUksR0FBVixJQUFpQixDQUFyQixFQUF3QixPQUFPLENBQUMsR0FBRCxJQUFRRSxJQUFJLENBQUNtQixJQUFMLENBQVUsSUFBSXJCLEtBQUssR0FBR0EsS0FBdEIsSUFBK0IsQ0FBdkMsQ0FBUDtBQUV4QixXQUFPLE9BQU9FLElBQUksQ0FBQ21CLElBQUwsQ0FBVSxJQUFJLENBQUNyQixLQUFLLElBQUksQ0FBVixJQUFlQSxLQUE3QixJQUFzQyxDQUE3QyxDQUFQO0FBQ0QsR0F2RmlCO0FBeUZsQndCLEVBQUFBLFVBQVUsRUFBRSxVQUFTeEIsS0FBVCxFQUFnQjtBQUMxQixRQUFJeUIsQ0FBQyxHQUFHLE9BQVI7QUFFQSxXQUFPekIsS0FBSyxHQUFHQSxLQUFSLElBQWlCLENBQUN5QixDQUFDLEdBQUcsQ0FBTCxJQUFVekIsS0FBVixHQUFrQnlCLENBQW5DLENBQVA7QUFDRCxHQTdGaUI7QUErRmxCQyxFQUFBQSxXQUFXLEVBQUUsVUFBUzFCLEtBQVQsRUFBZ0I7QUFDM0IsUUFBSXlCLENBQUMsR0FBRyxPQUFSO0FBRUEsV0FBTyxDQUFDekIsS0FBSyxHQUFHQSxLQUFLLEdBQUcsQ0FBakIsSUFBc0JBLEtBQXRCLElBQStCLENBQUN5QixDQUFDLEdBQUcsQ0FBTCxJQUFVekIsS0FBVixHQUFrQnlCLENBQWpELElBQXNELENBQTdEO0FBQ0QsR0FuR2lCO0FBcUdsQkUsRUFBQUEsYUFBYSxFQUFFLFVBQVMzQixLQUFULEVBQWdCO0FBQzdCLFFBQUl5QixDQUFDLEdBQUcsT0FBUjtBQUVBLFFBQUksQ0FBQ3pCLEtBQUssSUFBSSxHQUFWLElBQWlCLENBQXJCLEVBQ0UsT0FBTyxPQUFPQSxLQUFLLEdBQUdBLEtBQVIsSUFBaUIsQ0FBQyxDQUFDeUIsQ0FBQyxJQUFJLEtBQU4sSUFBZSxDQUFoQixJQUFxQnpCLEtBQXJCLEdBQTZCeUIsQ0FBOUMsQ0FBUCxDQUFQO0FBRUYsV0FBTyxPQUFPLENBQUN6QixLQUFLLElBQUksQ0FBVixJQUFlQSxLQUFmLElBQXdCLENBQUMsQ0FBQ3lCLENBQUMsSUFBSSxLQUFOLElBQWUsQ0FBaEIsSUFBcUJ6QixLQUFyQixHQUE2QnlCLENBQXJELElBQTBELENBQWpFLENBQVA7QUFDRDtBQTVHaUIsQ0FBYjtBQStHUCxPQUFPLE1BQU07QUFDWDFCLEVBQUFBLFVBRFc7QUFFWEUsRUFBQUEsVUFGVztBQUdYRyxFQUFBQSxXQUhXO0FBSVhDLEVBQUFBLGFBSlc7QUFLWEMsRUFBQUEsV0FMVztBQU1YQyxFQUFBQSxZQU5XO0FBT1hDLEVBQUFBLGNBUFc7QUFRWEMsRUFBQUEsV0FSVztBQVNYQyxFQUFBQSxZQVRXO0FBVVhDLEVBQUFBLGNBVlc7QUFXWEMsRUFBQUEsVUFYVztBQVlYRSxFQUFBQSxXQVpXO0FBYVhFLEVBQUFBLGFBYlc7QUFjWEMsRUFBQUEsVUFkVztBQWVYQyxFQUFBQSxXQWZXO0FBZ0JYQyxFQUFBQSxhQWhCVztBQWlCWEMsRUFBQUEsVUFqQlc7QUFrQlhFLEVBQUFBLFdBbEJXO0FBbUJYQyxFQUFBQSxhQW5CVztBQW9CWEMsRUFBQUEsVUFwQlc7QUFxQlhFLEVBQUFBLFdBckJXO0FBc0JYQyxFQUFBQTtBQXRCVyxJQXVCVDdCLElBdkJHO0FBeUJQLE9BQU8sTUFBTThCLGVBQWUsR0FBR0MsUUFBUSxJQUFJO0FBQ3pDLE1BQUkvQixJQUFJLENBQUMrQixRQUFELENBQVIsRUFBb0IsT0FBTy9CLElBQUksQ0FBQytCLFFBQUQsQ0FBWCxDQUFwQixLQUNLLE9BQU8vQixJQUFJLENBQUNDLFVBQVo7QUFDTixDQUhNO0FBS1AsT0FBTyxNQUFNK0IsZUFBZSxHQUFHQyxJQUFJLElBQ2pDakMsSUFBSSxDQUFDaUMsSUFBRCxDQUFKLEdBQWFqQyxJQUFJLENBQUNpQyxJQUFELENBQWpCLEdBQTBCakMsSUFBSSxDQUFDQyxVQUQxQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBJIH0gZnJvbSAnLi4vY29uc3RhbnRzJztcblxuLyoqXG4gKiBUaGUgRWFzZSBjbGFzcyBwcm92aWRlcyBhIGNvbGxlY3Rpb24gb2YgZWFzaW5nIGZ1bmN0aW9ucyBmb3IgdXNlIHdpdGggU3lzdGVtXG4gKi9cbmV4cG9ydCBjb25zdCBlYXNlID0ge1xuICBlYXNlTGluZWFyOiBmdW5jdGlvbih2YWx1ZSkge1xuICAgIHJldHVybiB2YWx1ZTtcbiAgfSxcblxuICBlYXNlSW5RdWFkOiBmdW5jdGlvbih2YWx1ZSkge1xuICAgIHJldHVybiBNYXRoLnBvdyh2YWx1ZSwgMik7XG4gIH0sXG5cbiAgZWFzZU91dFF1YWQ6IGZ1bmN0aW9uKHZhbHVlKSB7XG4gICAgcmV0dXJuIC0oTWF0aC5wb3codmFsdWUgLSAxLCAyKSAtIDEpO1xuICB9LFxuXG4gIGVhc2VJbk91dFF1YWQ6IGZ1bmN0aW9uKHZhbHVlKSB7XG4gICAgaWYgKCh2YWx1ZSAvPSAwLjUpIDwgMSkgcmV0dXJuIDAuNSAqIE1hdGgucG93KHZhbHVlLCAyKTtcblxuICAgIHJldHVybiAtMC41ICogKCh2YWx1ZSAtPSAyKSAqIHZhbHVlIC0gMik7XG4gIH0sXG5cbiAgZWFzZUluQ3ViaWM6IGZ1bmN0aW9uKHZhbHVlKSB7XG4gICAgcmV0dXJuIE1hdGgucG93KHZhbHVlLCAzKTtcbiAgfSxcblxuICBlYXNlT3V0Q3ViaWM6IGZ1bmN0aW9uKHZhbHVlKSB7XG4gICAgcmV0dXJuIE1hdGgucG93KHZhbHVlIC0gMSwgMykgKyAxO1xuICB9LFxuXG4gIGVhc2VJbk91dEN1YmljOiBmdW5jdGlvbih2YWx1ZSkge1xuICAgIGlmICgodmFsdWUgLz0gMC41KSA8IDEpIHJldHVybiAwLjUgKiBNYXRoLnBvdyh2YWx1ZSwgMyk7XG5cbiAgICByZXR1cm4gMC41ICogKE1hdGgucG93KHZhbHVlIC0gMiwgMykgKyAyKTtcbiAgfSxcblxuICBlYXNlSW5RdWFydDogZnVuY3Rpb24odmFsdWUpIHtcbiAgICByZXR1cm4gTWF0aC5wb3codmFsdWUsIDQpO1xuICB9LFxuXG4gIGVhc2VPdXRRdWFydDogZnVuY3Rpb24odmFsdWUpIHtcbiAgICByZXR1cm4gLShNYXRoLnBvdyh2YWx1ZSAtIDEsIDQpIC0gMSk7XG4gIH0sXG5cbiAgZWFzZUluT3V0UXVhcnQ6IGZ1bmN0aW9uKHZhbHVlKSB7XG4gICAgaWYgKCh2YWx1ZSAvPSAwLjUpIDwgMSkgcmV0dXJuIDAuNSAqIE1hdGgucG93KHZhbHVlLCA0KTtcblxuICAgIHJldHVybiAtMC41ICogKCh2YWx1ZSAtPSAyKSAqIE1hdGgucG93KHZhbHVlLCAzKSAtIDIpO1xuICB9LFxuXG4gIGVhc2VJblNpbmU6IGZ1bmN0aW9uKHZhbHVlKSB7XG4gICAgcmV0dXJuIC1NYXRoLmNvcyh2YWx1ZSAqIChQSSAvIDIpKSArIDE7XG4gIH0sXG5cbiAgZWFzZU91dFNpbmU6IGZ1bmN0aW9uKHZhbHVlKSB7XG4gICAgcmV0dXJuIE1hdGguc2luKHZhbHVlICogKFBJIC8gMikpO1xuICB9LFxuXG4gIGVhc2VJbk91dFNpbmU6IGZ1bmN0aW9uKHZhbHVlKSB7XG4gICAgcmV0dXJuIC0wLjUgKiAoTWF0aC5jb3MoUEkgKiB2YWx1ZSkgLSAxKTtcbiAgfSxcblxuICBlYXNlSW5FeHBvOiBmdW5jdGlvbih2YWx1ZSkge1xuICAgIHJldHVybiB2YWx1ZSA9PT0gMCA/IDAgOiBNYXRoLnBvdygyLCAxMCAqICh2YWx1ZSAtIDEpKTtcbiAgfSxcblxuICBlYXNlT3V0RXhwbzogZnVuY3Rpb24odmFsdWUpIHtcbiAgICByZXR1cm4gdmFsdWUgPT09IDEgPyAxIDogLU1hdGgucG93KDIsIC0xMCAqIHZhbHVlKSArIDE7XG4gIH0sXG5cbiAgZWFzZUluT3V0RXhwbzogZnVuY3Rpb24odmFsdWUpIHtcbiAgICBpZiAodmFsdWUgPT09IDApIHJldHVybiAwO1xuICAgIGlmICh2YWx1ZSA9PT0gMSkgcmV0dXJuIDE7XG4gICAgaWYgKCh2YWx1ZSAvPSAwLjUpIDwgMSkgcmV0dXJuIDAuNSAqIE1hdGgucG93KDIsIDEwICogKHZhbHVlIC0gMSkpO1xuXG4gICAgcmV0dXJuIDAuNSAqICgtTWF0aC5wb3coMiwgLTEwICogLS12YWx1ZSkgKyAyKTtcbiAgfSxcblxuICBlYXNlSW5DaXJjOiBmdW5jdGlvbih2YWx1ZSkge1xuICAgIHJldHVybiAtKE1hdGguc3FydCgxIC0gdmFsdWUgKiB2YWx1ZSkgLSAxKTtcbiAgfSxcblxuICBlYXNlT3V0Q2lyYzogZnVuY3Rpb24odmFsdWUpIHtcbiAgICByZXR1cm4gTWF0aC5zcXJ0KDEgLSBNYXRoLnBvdyh2YWx1ZSAtIDEsIDIpKTtcbiAgfSxcblxuICBlYXNlSW5PdXRDaXJjOiBmdW5jdGlvbih2YWx1ZSkge1xuICAgIGlmICgodmFsdWUgLz0gMC41KSA8IDEpIHJldHVybiAtMC41ICogKE1hdGguc3FydCgxIC0gdmFsdWUgKiB2YWx1ZSkgLSAxKTtcblxuICAgIHJldHVybiAwLjUgKiAoTWF0aC5zcXJ0KDEgLSAodmFsdWUgLT0gMikgKiB2YWx1ZSkgKyAxKTtcbiAgfSxcblxuICBlYXNlSW5CYWNrOiBmdW5jdGlvbih2YWx1ZSkge1xuICAgIHZhciBzID0gMS43MDE1ODtcblxuICAgIHJldHVybiB2YWx1ZSAqIHZhbHVlICogKChzICsgMSkgKiB2YWx1ZSAtIHMpO1xuICB9LFxuXG4gIGVhc2VPdXRCYWNrOiBmdW5jdGlvbih2YWx1ZSkge1xuICAgIHZhciBzID0gMS43MDE1ODtcblxuICAgIHJldHVybiAodmFsdWUgPSB2YWx1ZSAtIDEpICogdmFsdWUgKiAoKHMgKyAxKSAqIHZhbHVlICsgcykgKyAxO1xuICB9LFxuXG4gIGVhc2VJbk91dEJhY2s6IGZ1bmN0aW9uKHZhbHVlKSB7XG4gICAgdmFyIHMgPSAxLjcwMTU4O1xuXG4gICAgaWYgKCh2YWx1ZSAvPSAwLjUpIDwgMSlcbiAgICAgIHJldHVybiAwLjUgKiAodmFsdWUgKiB2YWx1ZSAqICgoKHMgKj0gMS41MjUpICsgMSkgKiB2YWx1ZSAtIHMpKTtcblxuICAgIHJldHVybiAwLjUgKiAoKHZhbHVlIC09IDIpICogdmFsdWUgKiAoKChzICo9IDEuNTI1KSArIDEpICogdmFsdWUgKyBzKSArIDIpO1xuICB9XG59O1xuXG5leHBvcnQgY29uc3Qge1xuICBlYXNlTGluZWFyLFxuICBlYXNlSW5RdWFkLFxuICBlYXNlT3V0UXVhZCxcbiAgZWFzZUluT3V0UXVhZCxcbiAgZWFzZUluQ3ViaWMsXG4gIGVhc2VPdXRDdWJpYyxcbiAgZWFzZUluT3V0Q3ViaWMsXG4gIGVhc2VJblF1YXJ0LFxuICBlYXNlT3V0UXVhcnQsXG4gIGVhc2VJbk91dFF1YXJ0LFxuICBlYXNlSW5TaW5lLFxuICBlYXNlT3V0U2luZSxcbiAgZWFzZUluT3V0U2luZSxcbiAgZWFzZUluRXhwbyxcbiAgZWFzZU91dEV4cG8sXG4gIGVhc2VJbk91dEV4cG8sXG4gIGVhc2VJbkNpcmMsXG4gIGVhc2VPdXRDaXJjLFxuICBlYXNlSW5PdXRDaXJjLFxuICBlYXNlSW5CYWNrLFxuICBlYXNlT3V0QmFjayxcbiAgZWFzZUluT3V0QmFja1xufSA9IGVhc2U7XG5cbmV4cG9ydCBjb25zdCBzZXRFYXNpbmdCeU5hbWUgPSBlYXNlTmFtZSA9PiB7XG4gIGlmIChlYXNlW2Vhc2VOYW1lXSkgcmV0dXJuIGVhc2VbZWFzZU5hbWVdO1xuICBlbHNlIHJldHVybiBlYXNlLmVhc2VMaW5lYXI7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0RWFzaW5nQnlOYW1lID0gbmFtZSA9PlxuICBlYXNlW25hbWVdID8gZWFzZVtuYW1lXSA6IGVhc2UuZWFzZUxpbmVhcjtcbiJdfQ== ================================================ FILE: packages/sdk/lib/core/libs/three-nebula/emitter/Emitter.js ================================================ import { DEFAULT_BIND_EMITTER, DEFAULT_BIND_EMITTER_EVENT, DEFAULT_DAMPING, DEFAULT_EMITTER_INDEX, DEFAULT_EMITTER_RATE } from './constants'; import EventDispatcher, { EMITTER_DEAD, PARTICLE_CREATED, PARTICLE_DEAD, PARTICLE_UPDATE, SYSTEM_UPDATE } from '../events'; import { INTEGRATION_TYPE_EULER, integrate } from '../math'; import { Util, uid } from '../utils'; import { InitializerUtil } from '../initializer'; import Particle from '../core/Particle'; import isNumber from '../utils/isNumber.js'; import { EMITTER_TYPE_EMITTER as type } from './types'; /** * Emitters are the System engine's particle factories. They cause particles to * be rendered by emitting them, and store all particle initializers and behaviours. * */ export default class Emitter extends Particle { /** * Constructs an Emitter instance. * * @param {object} properties - The properties to instantiate the emitter with * @return void */ constructor(properties = {}) { super(properties); /** * @desc The class type. * @type {string} */ this.type = type; /** * @desc The particles emitted by this emitter. * @type {array} */ this.particles = []; /** * @desc The initializers for particles emitted by this emitter. * @type {array} */ this.initializers = []; /** * @desc The behaviours for particles emitted by this emitter. * @type {array} */ this.behaviours = []; /** * @desc The behaviours for the emitter. * @type {array} */ this.emitterBehaviours = []; /** * @desc The current emit iteration. * @type {integer} */ this.currentEmitTime = 0; /** * @desc The total number of times the emitter should emit particles. * @type {integer} */ this.totalEmitTimes = -1; /** * @desc The friction coefficient for all particle to emit by. * @type {number} */ this.damping = DEFAULT_DAMPING; /** * @desc Ensures that particles emitted by this emitter are positioned * according to the emitter's properties. * @type {boolean} */ this.bindEmitter = DEFAULT_BIND_EMITTER; /** * @desc Determines if the emitter will dispatch internal events. Defaults * to false * @type {boolean} */ this.bindEmitterEvent = DEFAULT_BIND_EMITTER_EVENT; /** * @desc The number of particles to emit per second (a [particle]/b [s]) * @type {Rate} */ this.rate = DEFAULT_EMITTER_RATE; /** * @desc Determines if the emitter is emitting particles or not. * @type {boolean} */ this.isEmitting = false; /** * @desc The emitter's id. * @type {string} */ this.id = `emitter-${uid()}`; this.cID = 0; this.name = 'Emitter'; /** * @desc The index of the emitter as it is added to the system. * @type {number|undefined} */ this.index = DEFAULT_EMITTER_INDEX; /** * @desc The emitter's internal event dispatcher. * @type {EventDispatcher} */ this.eventDispatcher = new EventDispatcher(); } /** * Proxy method for the internal event dispatcher's dispatchEvent method. * * @param {string} event - The event to dispatch * @param {object} [target=this] - The event target */ dispatch(event, target = this) { this.eventDispatcher.dispatchEvent(event, target); } /** * Sets the emitter rate. * * @param {Rate} rate - a rate initializer object * @return {Emitter} */ setRate(rate) { this.rate = rate; return this; } /** * Sets the position of the emitter. * * @param {object} newPosition - an object the new x, y and z props * @return {Emitter} */ setPosition(newPosition = {}) { const { position } = this; const { x = position.x, y = position.y, z = position.z } = newPosition; this.position.set(x, y, z); return this; } /** * Sets the rotation of the emitter. * * @param {object} newRotation - an object the new x, y and z props * @return {Emitter} */ setRotation(newRotation = {}) { const { rotation } = this; const { x = rotation.x, y = rotation.y, z = rotation.z } = newRotation; this.rotation.set(x, y, z); return this; } /** * Sets the total number of times the emitter should emit particles as well as * the emitter's life. Also intializes the emitter rate. * This enables the emitter to emit particles. * * @param {number} [totalEmitTimes=Infinity] - the total number of times to emit particles * @param {number} [life=Infinity] - the life of this emitter in milliseconds * @return {Emitter} */ emit(totalEmitTimes = Infinity, life = Infinity) { this.currentEmitTime = 0; this.totalEmitTimes = isNumber(totalEmitTimes) ? totalEmitTimes : Infinity; if (totalEmitTimes === 1) { this.life = totalEmitTimes; } else { this.life = isNumber(life) ? life : Infinity; } this.rate.init(); this.isEmitting = true; return this; } /** * Experimental emit method that is designed to be called from the System.emit method. * * @return {Emitter} */ experimental_emit() { const { isEmitting, totalEmitTimes, life } = this; if (!isEmitting) { this.currentEmitTime = 0; if (!totalEmitTimes) { this.setTotalEmitTimes(Infinity); } if (!life) { this.setLife(Infinity); } this.rate.init(); this.isEmitting = true; } return this; } /** * Sets the total emit times for the emitter. * * @param {number} [totalEmitTimes=Infinity] - the total number of times to emit particles * @return {Emitter} */ setTotalEmitTimes(totalEmitTimes = Infinity) { this.totalEmitTimes = isNumber(totalEmitTimes) ? totalEmitTimes : Infinity; return this; } /** * Sets the life of the emitter. * * @param {number} [life=Infinity] - the life of this emitter in milliseconds * @return {Emitter} */ setLife(life = Infinity) { if (this.totalEmitTimes === 1) { this.life = this.totalEmitTimes; } else { this.life = isNumber(life) ? life : Infinity; } return this; } /** * Stops the emitter from emitting particles. * * @return void */ stopEmit() { this.totalEmitTimes = -1; this.currentEmitTime = 0; this.isEmitting = false; } /** * Kills all of the emitter's particles. * * @return void */ removeAllParticles() { let i = this.particles.length; while (i--) { this.particles[i].dead = true; } } /** * Adds a particle initializer to the emitter. * Each initializer is run on each particle when they are created. * * @param {Initializer} initializer - The initializer to add * @return {Emitter} */ addInitializer(initializer) { this.initializers.push(initializer); return this; } /** * Adds multiple particle initializers to the emitter. * * @param {array} initializers - an array of particle initializers * @return {Emitter} */ addInitializers(initializers) { let i = initializers.length; while (i--) { this.addInitializer(initializers[i]); } return this; } /** * Sets the emitter's particle initializers. * * @param {array} initializers - an array of particle initializers * @return {Emitter} */ setInitializers(initializers) { this.initializers = initializers; return this; } /** * Removes an initializer from the emitter's initializers array. * * @param {Initializer} initializer - The initializer to remove * @return {Emitter} */ removeInitializer(initializer) { const index = this.initializers.indexOf(initializer); if (index > -1) { this.initializers.splice(index, 1); } return this; } /** * Removes all initializers. * * @return {Emitter} */ removeAllInitializers() { Util.destroyArray(this.initializers); return this; } /** * Adds a behaviour to the emitter. All emitter behaviours are added to each particle when * they are emitted. * * @param {Behaviour} behaviour - The behaviour to add to the emitter * @return {Emitter} */ addBehaviour(behaviour) { this.behaviours.push(behaviour); return this; } /** * Adds multiple behaviours to the emitter. * * @param {array} behaviours - an array of emitter behaviours * @return {Emitter} */ addBehaviours(behaviours) { let i = behaviours.length; while (i--) { this.addBehaviour(behaviours[i]); } return this; } /** * Sets the emitter's behaviours. * * @param {array} behaviours - an array of emitter behaviours * @return {Emitter} */ setBehaviours(behaviours) { this.behaviours = behaviours; return this; } /** * Removes the behaviour from the emitter's behaviours array. * * @param {Behaviour} behaviour - The behaviour to remove * @return {Emitter} */ removeBehaviour(behaviour) { const index = this.behaviours.indexOf(behaviour); if (index > -1) { this.behaviours.splice(index, 1); } return this; } /** * Removes all behaviours from the emitter. * * @return {Emitter} */ removeAllBehaviours() { Util.destroyArray(this.behaviours); return this; } /** * Adds an emitter behaviour to the emitter. * * @param {Behaviour} behaviour - The behaviour to add to the emitter * @return {Emitter} */ addEmitterBehaviour(behaviour) { this.emitterBehaviours.push(behaviour); behaviour.initialize(this); return this; } /** * Adds multiple behaviours to the emitter. * * @param {array} behaviours - an array of emitter behaviours * @return {Emitter} */ addEmitterBehaviours(behaviours) { let i = behaviours.length; while (i--) { this.addEmitterBehaviour(behaviours[i]); } return this; } /** * Sets the emitter's behaviours. * * @param {array} behaviours - an array of emitter behaviours * @return {Emitter} */ setEmitterBehaviours(behaviours) { const length = behaviours.length; this.emitterBehaviours = behaviours; for (let i = 0; i < length; i++) { this.emitterBehaviours[i].initialize(this); } return this; } /** * Removes the behaviour from the emitter's behaviours array. * * @param {Behaviour} behaviour - The behaviour to remove * @return {Emitter} */ removeEmitterBehaviour(behaviour) { const index = this.emitterBehaviours.indexOf(behaviour); if (index > -1) { this.emitterBehaviours.splice(index, 1); } return this; } /** * Removes all behaviours from the emitter. * * @return {Emitter} */ removeAllEmitterBehaviours() { Util.destroyArray(this.emitterBehaviours); return this; } /** * Adds the event listener for the EMITTER_DEAD event. * * @param {onEmitterDead} - The function to call when the EMITTER_DEAD is dispatched. * @return {Emitter} */ addOnEmitterDeadEventListener(onEmitterDead) { this.eventDispatcher.addEventListener(`${this.id}_${EMITTER_DEAD}`, () => onEmitterDead()); return this; } /** * Creates a particle by retreiving one from the pool and setting it up with * the supplied initializer and behaviour. * * @return {Emitter} */ createParticle() { const particle = this.parent.pool.get(Particle); const index = this.particles.length; this.setupParticle(particle, index); this.parent && this.parent.dispatch(PARTICLE_CREATED, particle); this.bindEmitterEvent && this.dispatch(PARTICLE_CREATED, particle); return particle; } /** * Sets up a particle by running all initializers on it and setting its behaviours. * Also adds the particle to this.particles. * * @param {Particle} particle - The particle to setup * @return void */ setupParticle(particle, index) { const { initializers, behaviours } = this; InitializerUtil.initialize(this, particle, initializers); particle.addBehaviours(behaviours); particle.parent = this; particle.index = index; this.particles.push(particle); } /** * Updates the emitter according to the time passed by calling the generate * and integrate methods. The generate method creates particles, the integrate * method updates existing particles. * * If the emitter age is greater than time, the emitter is killed. * * This method also indexes/deindexes particles. * * @param {number} time - System engine time * @return void */ update(time) { if (!this.isEmitting && this.particles.length === 0) { return; } this.age += time; if (this.dead || this.age >= this.life) { this.destroy(); } if (this.isEmitting) { this.generate(time); } this.integrate(time); let i = this.particles.length; while (i--) { const particle = this.particles[i]; if (particle.dead) { this.parent && this.parent.dispatch(PARTICLE_DEAD, particle); this.bindEmitterEvent && this.dispatch(PARTICLE_DEAD, particle); this.parent.pool.expire(particle.reset()); this.particles.splice(i, 1); if (this.particles.length === 0) { this.parent && this.parent.dispatch(SYSTEM_UPDATE); } } } this.updateEmitterBehaviours(time); } /** * Updates the emitter's emitter behaviours. * * @param {number} time - System engine time * @return void */ updateEmitterBehaviours(time) { if (this.sleep) { return; } const length = this.emitterBehaviours.length; for (let i = 0; i < length; i++) { this.emitterBehaviours[i].applyBehaviour(this, time, i); } } /** * Runs the integration algorithm on the emitter and all particles. * Updates the particles with the timstamp passed. * * @param {number} time - System engine time * @return void */ integrate(time) { const integrationType = this.parent ? this.parent.integrationType : INTEGRATION_TYPE_EULER; const damping = 1 - this.damping; integrate(this, time, damping, integrationType); let index = this.particles.length; while (index--) { const particle = this.particles[index]; particle.update(time, index); integrate(particle, time, damping, integrationType); this.parent && this.parent.dispatch(PARTICLE_UPDATE, particle); this.bindEmitterEvent && this.dispatch(PARTICLE_UPDATE, particle); } } /** * Generates new particles. * * @param {number} time - System engine time * @return void */ generate(time) { if (this.totalEmitTimes === 1) { let i = this.rate.getValue(99999); if (i > 0) { this.cID = i; } while (i--) { this.createParticle(); } this.totalEmitTimes = 0; return; } this.currentEmitTime += time; if (this.currentEmitTime < this.totalEmitTimes) { let i = this.rate.getValue(time); if (i > 0) { this.cID = i; } while (i--) { this.createParticle(); } } } /** * Kills the emitter. * * @return void */ destroy() { this.dead = true; this.energy = 0; this.totalEmitTimes = -1; if (this.particles.length == 0) { this.isEmitting = false; this.removeAllInitializers(); this.removeAllBehaviours(); this.dispatch(`${this.id}_${EMITTER_DEAD}`); this.parent && this.parent.removeEmitter(this); } } } ================================================ FILE: packages/sdk/lib/core/libs/three-nebula/emitter/FollowEmitter.js ================================================ import Emitter from './Emitter'; import THREEUtil from '../utils/THREEUtil'; import Util from '../utils/Util'; import { EMITTER_TYPE_FOLLOW as type } from './types'; export default class FollowEmitter extends Emitter { /** * The FollowEmitter class inherits from System.Emitter * * use the FollowEmitter will emit particle when mousemoving * * @class System.FollowEmitter * @constructor * @param {Element} mouseTarget mouseevent's target; * @param {Number} ease the easing of following speed; * @default 0.7 * @param {Object} pObj the parameters object; */ constructor(mouseTarget, ease, pObj) { super(pObj); /** * @desc The class type. * @type {string} */ this.type = type; this.mouseTarget = Util.initValue(mouseTarget, window); this.ease = Util.initValue(ease, 0.7); this._allowEmitting = false; this.initEventHandler(); } initEventHandler() { var self = this; this.mousemoveHandler = function (e) { self.mousemove.call(self, e); }; this.mousedownHandler = function (e) { self.mousedown.call(self, e); }; this.mouseupHandler = function (e) { self.mouseup.call(self, e); }; this.mouseTarget.addEventListener('mousemove', this.mousemoveHandler, false); } /** * start emit particle * @method emit */ emit() { this._allowEmitting = true; } /** * stop emiting * @method stopEmit */ stopEmit() { this._allowEmitting = false; } setCameraAndCanvas(camera, canvas) { this.camera = camera; this.canvas = canvas; } mousemove(e) { if (e.layerX || e.layerX == 0) { this.position.x += (e.layerX - this.position.x) * this.ease; this.position.y += (e.layerY - this.position.y) * this.ease; } else if (e.offsetX || e.offsetX == 0) { this.position.x += (e.offsetX - this.position.x) * this.ease; this.position.y += (e.offsetY - this.position.y) * this.ease; } this.position.copy(THREEUtil.toSpacePos(this.position, this.camera, this.canvas)); if (this._allowEmitting) super.emit('once'); } /** * Destory this Emitter * @method destroy */ destroy() { super.destroy(); this.mouseTarget.removeEventListener('mousemove', this.mousemoveHandler, false); } } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbWl0dGVyL0ZvbGxvd0VtaXR0ZXIuanMiXSwibmFtZXMiOlsiRW1pdHRlciIsIlRIUkVFVXRpbCIsIlV0aWwiLCJFTUlUVEVSX1RZUEVfRk9MTE9XIiwidHlwZSIsIkZvbGxvd0VtaXR0ZXIiLCJjb25zdHJ1Y3RvciIsIm1vdXNlVGFyZ2V0IiwiZWFzZSIsInBPYmoiLCJpbml0VmFsdWUiLCJ3aW5kb3ciLCJfYWxsb3dFbWl0dGluZyIsImluaXRFdmVudEhhbmRsZXIiLCJzZWxmIiwibW91c2Vtb3ZlSGFuZGxlciIsImUiLCJtb3VzZW1vdmUiLCJjYWxsIiwibW91c2Vkb3duSGFuZGxlciIsIm1vdXNlZG93biIsIm1vdXNldXBIYW5kbGVyIiwibW91c2V1cCIsImFkZEV2ZW50TGlzdGVuZXIiLCJlbWl0Iiwic3RvcEVtaXQiLCJzZXRDYW1lcmFBbmRDYW52YXMiLCJjYW1lcmEiLCJjYW52YXMiLCJsYXllclgiLCJwb3NpdGlvbiIsIngiLCJ5IiwibGF5ZXJZIiwib2Zmc2V0WCIsIm9mZnNldFkiLCJjb3B5IiwidG9TcGFjZVBvcyIsImRlc3Ryb3kiLCJyZW1vdmVFdmVudExpc3RlbmVyIl0sIm1hcHBpbmdzIjoiQUFBQSxPQUFPQSxPQUFQLE1BQW9CLFdBQXBCO0FBQ0EsT0FBT0MsU0FBUCxNQUFzQixvQkFBdEI7QUFDQSxPQUFPQyxJQUFQLE1BQWlCLGVBQWpCO0FBQ0EsU0FBU0MsbUJBQW1CLElBQUlDLElBQWhDLFFBQTRDLFNBQTVDO0FBRUEsZUFBZSxNQUFNQyxhQUFOLFNBQTRCTCxPQUE1QixDQUFvQztBQUNqRDtBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDRU0sRUFBQUEsV0FBVyxDQUFDQyxXQUFELEVBQWNDLElBQWQsRUFBb0JDLElBQXBCLEVBQTBCO0FBQ25DLFVBQU1BLElBQU47QUFFQTtBQUNKO0FBQ0E7QUFDQTs7QUFDSSxTQUFLTCxJQUFMLEdBQVlBLElBQVo7QUFDQSxTQUFLRyxXQUFMLEdBQW1CTCxJQUFJLENBQUNRLFNBQUwsQ0FBZUgsV0FBZixFQUE0QkksTUFBNUIsQ0FBbkI7QUFDQSxTQUFLSCxJQUFMLEdBQVlOLElBQUksQ0FBQ1EsU0FBTCxDQUFlRixJQUFmLEVBQXFCLEdBQXJCLENBQVo7QUFDQSxTQUFLSSxjQUFMLEdBQXNCLEtBQXRCO0FBQ0EsU0FBS0MsZ0JBQUw7QUFDRDs7QUFFREEsRUFBQUEsZ0JBQWdCLEdBQUc7QUFDakIsUUFBSUMsSUFBSSxHQUFHLElBQVg7O0FBRUEsU0FBS0MsZ0JBQUwsR0FBd0IsVUFBU0MsQ0FBVCxFQUFZO0FBQ2xDRixNQUFBQSxJQUFJLENBQUNHLFNBQUwsQ0FBZUMsSUFBZixDQUFvQkosSUFBcEIsRUFBMEJFLENBQTFCO0FBQ0QsS0FGRDs7QUFJQSxTQUFLRyxnQkFBTCxHQUF3QixVQUFTSCxDQUFULEVBQVk7QUFDbENGLE1BQUFBLElBQUksQ0FBQ00sU0FBTCxDQUFlRixJQUFmLENBQW9CSixJQUFwQixFQUEwQkUsQ0FBMUI7QUFDRCxLQUZEOztBQUlBLFNBQUtLLGNBQUwsR0FBc0IsVUFBU0wsQ0FBVCxFQUFZO0FBQ2hDRixNQUFBQSxJQUFJLENBQUNRLE9BQUwsQ0FBYUosSUFBYixDQUFrQkosSUFBbEIsRUFBd0JFLENBQXhCO0FBQ0QsS0FGRDs7QUFJQSxTQUFLVCxXQUFMLENBQWlCZ0IsZ0JBQWpCLENBQ0UsV0FERixFQUVFLEtBQUtSLGdCQUZQLEVBR0UsS0FIRjtBQUtEO0FBRUQ7QUFDRjtBQUNBO0FBQ0E7OztBQUNFUyxFQUFBQSxJQUFJLEdBQUc7QUFDTCxTQUFLWixjQUFMLEdBQXNCLElBQXRCO0FBQ0Q7QUFFRDtBQUNGO0FBQ0E7QUFDQTs7O0FBQ0VhLEVBQUFBLFFBQVEsR0FBRztBQUNULFNBQUtiLGNBQUwsR0FBc0IsS0FBdEI7QUFDRDs7QUFFRGMsRUFBQUEsa0JBQWtCLENBQUNDLE1BQUQsRUFBU0MsTUFBVCxFQUFpQjtBQUNqQyxTQUFLRCxNQUFMLEdBQWNBLE1BQWQ7QUFDQSxTQUFLQyxNQUFMLEdBQWNBLE1BQWQ7QUFDRDs7QUFFRFgsRUFBQUEsU0FBUyxDQUFDRCxDQUFELEVBQUk7QUFDWCxRQUFJQSxDQUFDLENBQUNhLE1BQUYsSUFBWWIsQ0FBQyxDQUFDYSxNQUFGLElBQVksQ0FBNUIsRUFBK0I7QUFDN0IsV0FBS0MsUUFBTCxDQUFjQyxDQUFkLElBQW1CLENBQUNmLENBQUMsQ0FBQ2EsTUFBRixHQUFXLEtBQUtDLFFBQUwsQ0FBY0MsQ0FBMUIsSUFBK0IsS0FBS3ZCLElBQXZEO0FBQ0EsV0FBS3NCLFFBQUwsQ0FBY0UsQ0FBZCxJQUFtQixDQUFDaEIsQ0FBQyxDQUFDaUIsTUFBRixHQUFXLEtBQUtILFFBQUwsQ0FBY0UsQ0FBMUIsSUFBK0IsS0FBS3hCLElBQXZEO0FBQ0QsS0FIRCxNQUdPLElBQUlRLENBQUMsQ0FBQ2tCLE9BQUYsSUFBYWxCLENBQUMsQ0FBQ2tCLE9BQUYsSUFBYSxDQUE5QixFQUFpQztBQUN0QyxXQUFLSixRQUFMLENBQWNDLENBQWQsSUFBbUIsQ0FBQ2YsQ0FBQyxDQUFDa0IsT0FBRixHQUFZLEtBQUtKLFFBQUwsQ0FBY0MsQ0FBM0IsSUFBZ0MsS0FBS3ZCLElBQXhEO0FBQ0EsV0FBS3NCLFFBQUwsQ0FBY0UsQ0FBZCxJQUFtQixDQUFDaEIsQ0FBQyxDQUFDbUIsT0FBRixHQUFZLEtBQUtMLFFBQUwsQ0FBY0UsQ0FBM0IsSUFBZ0MsS0FBS3hCLElBQXhEO0FBQ0Q7O0FBRUQsU0FBS3NCLFFBQUwsQ0FBY00sSUFBZCxDQUNFbkMsU0FBUyxDQUFDb0MsVUFBVixDQUFxQixLQUFLUCxRQUExQixFQUFvQyxLQUFLSCxNQUF6QyxFQUFpRCxLQUFLQyxNQUF0RCxDQURGO0FBSUEsUUFBSSxLQUFLaEIsY0FBVCxFQUF5QixNQUFNWSxJQUFOLENBQVcsTUFBWDtBQUMxQjtBQUVEO0FBQ0Y7QUFDQTtBQUNBOzs7QUFDRWMsRUFBQUEsT0FBTyxHQUFHO0FBQ1IsVUFBTUEsT0FBTjtBQUNBLFNBQUsvQixXQUFMLENBQWlCZ0MsbUJBQWpCLENBQ0UsV0FERixFQUVFLEtBQUt4QixnQkFGUCxFQUdFLEtBSEY7QUFLRDs7QUFqR2dEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEVtaXR0ZXIgZnJvbSAnLi9FbWl0dGVyJztcbmltcG9ydCBUSFJFRVV0aWwgZnJvbSAnLi4vdXRpbHMvVEhSRUVVdGlsJztcbmltcG9ydCBVdGlsIGZyb20gJy4uL3V0aWxzL1V0aWwnO1xuaW1wb3J0IHsgRU1JVFRFUl9UWVBFX0ZPTExPVyBhcyB0eXBlIH0gZnJvbSAnLi90eXBlcyc7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEZvbGxvd0VtaXR0ZXIgZXh0ZW5kcyBFbWl0dGVyIHtcbiAgLyoqXG4gICAqIFRoZSBGb2xsb3dFbWl0dGVyIGNsYXNzIGluaGVyaXRzIGZyb20gU3lzdGVtLkVtaXR0ZXJcbiAgICpcbiAgICogdXNlIHRoZSBGb2xsb3dFbWl0dGVyIHdpbGwgZW1pdCBwYXJ0aWNsZSB3aGVuIG1vdXNlbW92aW5nXG4gICAqXG4gICAqIEBjbGFzcyBTeXN0ZW0uRm9sbG93RW1pdHRlclxuICAgKiBAY29uc3RydWN0b3JcbiAgICogQHBhcmFtIHtFbGVtZW50fSBtb3VzZVRhcmdldCBtb3VzZWV2ZW50J3MgdGFyZ2V0O1xuICAgKiBAcGFyYW0ge051bWJlcn0gZWFzZSB0aGUgZWFzaW5nIG9mIGZvbGxvd2luZyBzcGVlZDtcbiAgICogQGRlZmF1bHQgMC43XG4gICAqIEBwYXJhbSB7T2JqZWN0fSBwT2JqIHRoZSBwYXJhbWV0ZXJzIG9iamVjdDtcbiAgICovXG4gIGNvbnN0cnVjdG9yKG1vdXNlVGFyZ2V0LCBlYXNlLCBwT2JqKSB7XG4gICAgc3VwZXIocE9iaik7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzYyBUaGUgY2xhc3MgdHlwZS5cbiAgICAgKiBAdHlwZSB7c3RyaW5nfVxuICAgICAqL1xuICAgIHRoaXMudHlwZSA9IHR5cGU7XG4gICAgdGhpcy5tb3VzZVRhcmdldCA9IFV0aWwuaW5pdFZhbHVlKG1vdXNlVGFyZ2V0LCB3aW5kb3cpO1xuICAgIHRoaXMuZWFzZSA9IFV0aWwuaW5pdFZhbHVlKGVhc2UsIDAuNyk7XG4gICAgdGhpcy5fYWxsb3dFbWl0dGluZyA9IGZhbHNlO1xuICAgIHRoaXMuaW5pdEV2ZW50SGFuZGxlcigpO1xuICB9XG5cbiAgaW5pdEV2ZW50SGFuZGxlcigpIHtcbiAgICB2YXIgc2VsZiA9IHRoaXM7XG5cbiAgICB0aGlzLm1vdXNlbW92ZUhhbmRsZXIgPSBmdW5jdGlvbihlKSB7XG4gICAgICBzZWxmLm1vdXNlbW92ZS5jYWxsKHNlbGYsIGUpO1xuICAgIH07XG5cbiAgICB0aGlzLm1vdXNlZG93bkhhbmRsZXIgPSBmdW5jdGlvbihlKSB7XG4gICAgICBzZWxmLm1vdXNlZG93bi5jYWxsKHNlbGYsIGUpO1xuICAgIH07XG5cbiAgICB0aGlzLm1vdXNldXBIYW5kbGVyID0gZnVuY3Rpb24oZSkge1xuICAgICAgc2VsZi5tb3VzZXVwLmNhbGwoc2VsZiwgZSk7XG4gICAgfTtcblxuICAgIHRoaXMubW91c2VUYXJnZXQuYWRkRXZlbnRMaXN0ZW5lcihcbiAgICAgICdtb3VzZW1vdmUnLFxuICAgICAgdGhpcy5tb3VzZW1vdmVIYW5kbGVyLFxuICAgICAgZmFsc2VcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIHN0YXJ0IGVtaXQgcGFydGljbGVcbiAgICogQG1ldGhvZCBlbWl0XG4gICAqL1xuICBlbWl0KCkge1xuICAgIHRoaXMuX2FsbG93RW1pdHRpbmcgPSB0cnVlO1xuICB9XG5cbiAgLyoqXG4gICAqIHN0b3AgZW1pdGluZ1xuICAgKiBAbWV0aG9kIHN0b3BFbWl0XG4gICAqL1xuICBzdG9wRW1pdCgpIHtcbiAgICB0aGlzLl9hbGxvd0VtaXR0aW5nID0gZmFsc2U7XG4gIH1cblxuICBzZXRDYW1lcmFBbmRDYW52YXMoY2FtZXJhLCBjYW52YXMpIHtcbiAgICB0aGlzLmNhbWVyYSA9IGNhbWVyYTtcbiAgICB0aGlzLmNhbnZhcyA9IGNhbnZhcztcbiAgfVxuXG4gIG1vdXNlbW92ZShlKSB7XG4gICAgaWYgKGUubGF5ZXJYIHx8IGUubGF5ZXJYID09IDApIHtcbiAgICAgIHRoaXMucG9zaXRpb24ueCArPSAoZS5sYXllclggLSB0aGlzLnBvc2l0aW9uLngpICogdGhpcy5lYXNlO1xuICAgICAgdGhpcy5wb3NpdGlvbi55ICs9IChlLmxheWVyWSAtIHRoaXMucG9zaXRpb24ueSkgKiB0aGlzLmVhc2U7XG4gICAgfSBlbHNlIGlmIChlLm9mZnNldFggfHwgZS5vZmZzZXRYID09IDApIHtcbiAgICAgIHRoaXMucG9zaXRpb24ueCArPSAoZS5vZmZzZXRYIC0gdGhpcy5wb3NpdGlvbi54KSAqIHRoaXMuZWFzZTtcbiAgICAgIHRoaXMucG9zaXRpb24ueSArPSAoZS5vZmZzZXRZIC0gdGhpcy5wb3NpdGlvbi55KSAqIHRoaXMuZWFzZTtcbiAgICB9XG5cbiAgICB0aGlzLnBvc2l0aW9uLmNvcHkoXG4gICAgICBUSFJFRVV0aWwudG9TcGFjZVBvcyh0aGlzLnBvc2l0aW9uLCB0aGlzLmNhbWVyYSwgdGhpcy5jYW52YXMpXG4gICAgKTtcblxuICAgIGlmICh0aGlzLl9hbGxvd0VtaXR0aW5nKSBzdXBlci5lbWl0KCdvbmNlJyk7XG4gIH1cblxuICAvKipcbiAgICogRGVzdG9yeSB0aGlzIEVtaXR0ZXJcbiAgICogQG1ldGhvZCBkZXN0cm95XG4gICAqL1xuICBkZXN0cm95KCkge1xuICAgIHN1cGVyLmRlc3Ryb3koKTtcbiAgICB0aGlzLm1vdXNlVGFyZ2V0LnJlbW92ZUV2ZW50TGlzdGVuZXIoXG4gICAgICAnbW91c2Vtb3ZlJyxcbiAgICAgIHRoaXMubW91c2Vtb3ZlSGFuZGxlcixcbiAgICAgIGZhbHNlXG4gICAgKTtcbiAgfVxufVxuIl19 ================================================ FILE: packages/sdk/lib/core/libs/three-nebula/emitter/constants.js ================================================ import { Rate } from '../initializer'; export const DEFAULT_DAMPING = 0.006; export const DEFAULT_BIND_EMITTER = true; export const DEFAULT_EMITTER_RATE = new Rate(1, 0.1); export const DEFAULT_BIND_EMITTER_EVENT = false; export const DEFAULT_EMITTER_INDEX = undefined; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbWl0dGVyL2NvbnN0YW50cy5qcyJdLCJuYW1lcyI6WyJSYXRlIiwiREVGQVVMVF9EQU1QSU5HIiwiREVGQVVMVF9CSU5EX0VNSVRURVIiLCJERUZBVUxUX0VNSVRURVJfUkFURSIsIkRFRkFVTFRfQklORF9FTUlUVEVSX0VWRU5UIiwiREVGQVVMVF9FTUlUVEVSX0lOREVYIiwidW5kZWZpbmVkIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUFTQSxJQUFULFFBQXFCLGdCQUFyQjtBQUVBLE9BQU8sTUFBTUMsZUFBZSxHQUFHLEtBQXhCO0FBQ1AsT0FBTyxNQUFNQyxvQkFBb0IsR0FBRyxJQUE3QjtBQUNQLE9BQU8sTUFBTUMsb0JBQW9CLEdBQUcsSUFBSUgsSUFBSixDQUFTLENBQVQsRUFBWSxHQUFaLENBQTdCO0FBQ1AsT0FBTyxNQUFNSSwwQkFBMEIsR0FBRyxLQUFuQztBQUNQLE9BQU8sTUFBTUMscUJBQXFCLEdBQUdDLFNBQTlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUmF0ZSB9IGZyb20gJy4uL2luaXRpYWxpemVyJztcblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfREFNUElORyA9IDAuMDA2O1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfQklORF9FTUlUVEVSID0gdHJ1ZTtcbmV4cG9ydCBjb25zdCBERUZBVUxUX0VNSVRURVJfUkFURSA9IG5ldyBSYXRlKDEsIDAuMSk7XG5leHBvcnQgY29uc3QgREVGQVVMVF9CSU5EX0VNSVRURVJfRVZFTlQgPSBmYWxzZTtcbmV4cG9ydCBjb25zdCBERUZBVUxUX0VNSVRURVJfSU5ERVggPSB1bmRlZmluZWQ7XG4iXX0= ================================================ FILE: packages/sdk/lib/core/libs/three-nebula/emitter/index.js ================================================ export { default as FollowEmitter } from './FollowEmitter'; export { default as Emitter } from './Emitter'; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbWl0dGVyL2luZGV4LmpzIl0sIm5hbWVzIjpbImRlZmF1bHQiLCJGb2xsb3dFbWl0dGVyIiwiRW1pdHRlciJdLCJtYXBwaW5ncyI6IkFBQUEsU0FBU0EsT0FBTyxJQUFJQyxhQUFwQixRQUF5QyxpQkFBekM7QUFDQSxTQUFTRCxPQUFPLElBQUlFLE9BQXBCLFFBQW1DLFdBQW5DIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgZGVmYXVsdCBhcyBGb2xsb3dFbWl0dGVyIH0gZnJvbSAnLi9Gb2xsb3dFbWl0dGVyJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgRW1pdHRlciB9IGZyb20gJy4vRW1pdHRlcic7XG4iXX0= ================================================ FILE: packages/sdk/lib/core/libs/three-nebula/emitter/types.js ================================================ export const EMITTER_TYPE_EMITTER = 'Emitter'; export const EMITTER_TYPE_FOLLOW = 'FollowEmitter'; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbWl0dGVyL3R5cGVzLmpzIl0sIm5hbWVzIjpbIkVNSVRURVJfVFlQRV9FTUlUVEVSIiwiRU1JVFRFUl9UWVBFX0ZPTExPVyJdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxNQUFNQSxvQkFBb0IsR0FBRyxTQUE3QjtBQUNQLE9BQU8sTUFBTUMsbUJBQW1CLEdBQUcsZUFBNUIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgRU1JVFRFUl9UWVBFX0VNSVRURVIgPSAnRW1pdHRlcic7XG5leHBvcnQgY29uc3QgRU1JVFRFUl9UWVBFX0ZPTExPVyA9ICdGb2xsb3dFbWl0dGVyJztcbiJdfQ== ================================================ FILE: packages/sdk/lib/core/libs/three-nebula/events/EventDispatcher.js ================================================ /* * EventDispatcher * Visit http://createjs.com/ for documentation, updates and examples. * **/ export default class EventDispatcher { constructor() { this.listeners = null; } set listeners(listeners) { this._listeners = listeners; } get listeners() { return this._listeners; } /** * 添加事件监听器 * @param {*} type 事件类型 * @param {*} listener 事件监听器 * @param {*} toTop 是否在顶部添加(因为监听的事件在触发时安装反序执行,添加到顶部会最后执行) * @returns */ addEventListener(type, listener,toTop = false) { if (!this.listeners) { this.listeners = {}; } else { this.removeEventListener(type, listener); } if (!this.listeners[type]) this.listeners[type] = []; if(toTop){ this.listeners[type].unshift(listener); }else{ this.listeners[type].push(listener); } return listener; } removeEventListener(type, listener) { if (!this.listeners) return; if (!this.listeners[type]) return; var arr = this.listeners[type]; for (var i = 0, l = arr.length; i < l; i++) { if (arr[i] == listener) { if (l == 1) { delete this.listeners[type]; } // allows for faster checks. else { arr.splice(i, 1); } break; } } } removeAllEventListeners(type) { if (!type) this.listeners = null;else if (this.listeners) delete this.listeners[type]; } dispatchEvent(eventName, eventTarget) { var ret = false, listeners = this.listeners; if (eventName && listeners) { var arr = listeners[eventName]; if (!arr) return ret; arr = arr.slice(); //Should use a copy into a temporary here instead... // to avoid issues with items being removed or added during the dispatch var handler, i = arr.length; while (i--) { handler = arr[i]; ret = ret || handler(eventTarget); } } return !!ret; } hasEventListener(type) { var listeners = this.listeners; return !!(listeners && listeners[type]); } } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9ldmVudHMvRXZlbnREaXNwYXRjaGVyLmpzIl0sIm5hbWVzIjpbIkV2ZW50RGlzcGF0Y2hlciIsImNvbnN0cnVjdG9yIiwibGlzdGVuZXJzIiwiX2xpc3RlbmVycyIsImFkZEV2ZW50TGlzdGVuZXIiLCJ0eXBlIiwibGlzdGVuZXIiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwicHVzaCIsImFyciIsImkiLCJsIiwibGVuZ3RoIiwic3BsaWNlIiwicmVtb3ZlQWxsRXZlbnRMaXN0ZW5lcnMiLCJkaXNwYXRjaEV2ZW50IiwiZXZlbnROYW1lIiwiZXZlbnRUYXJnZXQiLCJyZXQiLCJzbGljZSIsImhhbmRsZXIiLCJoYXNFdmVudExpc3RlbmVyIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUEsZUFBZSxNQUFNQSxlQUFOLENBQXNCO0FBQ25DQyxFQUFBQSxXQUFXLEdBQUc7QUFDWixTQUFLQyxTQUFMLEdBQWlCLElBQWpCO0FBQ0Q7O0FBRVksTUFBVEEsU0FBUyxDQUFDQSxTQUFELEVBQVk7QUFDdkIsU0FBS0MsVUFBTCxHQUFrQkQsU0FBbEI7QUFDRDs7QUFFWSxNQUFUQSxTQUFTLEdBQUc7QUFDZCxXQUFPLEtBQUtDLFVBQVo7QUFDRDs7QUFFREMsRUFBQUEsZ0JBQWdCLENBQUNDLElBQUQsRUFBT0MsUUFBUCxFQUFpQjtBQUMvQixRQUFJLENBQUMsS0FBS0osU0FBVixFQUFxQjtBQUNuQixXQUFLQSxTQUFMLEdBQWlCLEVBQWpCO0FBQ0QsS0FGRCxNQUVPO0FBQ0wsV0FBS0ssbUJBQUwsQ0FBeUJGLElBQXpCLEVBQStCQyxRQUEvQjtBQUNEOztBQUVELFFBQUksQ0FBQyxLQUFLSixTQUFMLENBQWVHLElBQWYsQ0FBTCxFQUEyQixLQUFLSCxTQUFMLENBQWVHLElBQWYsSUFBdUIsRUFBdkI7QUFDM0IsU0FBS0gsU0FBTCxDQUFlRyxJQUFmLEVBQXFCRyxJQUFyQixDQUEwQkYsUUFBMUI7QUFFQSxXQUFPQSxRQUFQO0FBQ0Q7O0FBRURDLEVBQUFBLG1CQUFtQixDQUFDRixJQUFELEVBQU9DLFFBQVAsRUFBaUI7QUFDbEMsUUFBSSxDQUFDLEtBQUtKLFNBQVYsRUFBcUI7QUFDckIsUUFBSSxDQUFDLEtBQUtBLFNBQUwsQ0FBZUcsSUFBZixDQUFMLEVBQTJCO0FBRTNCLFFBQUlJLEdBQUcsR0FBRyxLQUFLUCxTQUFMLENBQWVHLElBQWYsQ0FBVjs7QUFFQSxTQUFLLElBQUlLLENBQUMsR0FBRyxDQUFSLEVBQVdDLENBQUMsR0FBR0YsR0FBRyxDQUFDRyxNQUF4QixFQUFnQ0YsQ0FBQyxHQUFHQyxDQUFwQyxFQUF1Q0QsQ0FBQyxFQUF4QyxFQUE0QztBQUMxQyxVQUFJRCxHQUFHLENBQUNDLENBQUQsQ0FBSCxJQUFVSixRQUFkLEVBQXdCO0FBQ3RCLFlBQUlLLENBQUMsSUFBSSxDQUFULEVBQVk7QUFDVixpQkFBTyxLQUFLVCxTQUFMLENBQWVHLElBQWYsQ0FBUDtBQUNELFNBRkQsQ0FHQTtBQUhBLGFBSUs7QUFDSEksVUFBQUEsR0FBRyxDQUFDSSxNQUFKLENBQVdILENBQVgsRUFBYyxDQUFkO0FBQ0Q7O0FBQ0Q7QUFDRDtBQUNGO0FBQ0Y7O0FBRURJLEVBQUFBLHVCQUF1QixDQUFDVCxJQUFELEVBQU87QUFDNUIsUUFBSSxDQUFDQSxJQUFMLEVBQVcsS0FBS0gsU0FBTCxHQUFpQixJQUFqQixDQUFYLEtBQ0ssSUFBSSxLQUFLQSxTQUFULEVBQW9CLE9BQU8sS0FBS0EsU0FBTCxDQUFlRyxJQUFmLENBQVA7QUFDMUI7O0FBRURVLEVBQUFBLGFBQWEsQ0FBQ0MsU0FBRCxFQUFZQyxXQUFaLEVBQXlCO0FBQ3BDLFFBQUlDLEdBQUcsR0FBRyxLQUFWO0FBQUEsUUFDRWhCLFNBQVMsR0FBRyxLQUFLQSxTQURuQjs7QUFHQSxRQUFJYyxTQUFTLElBQUlkLFNBQWpCLEVBQTRCO0FBQzFCLFVBQUlPLEdBQUcsR0FBR1AsU0FBUyxDQUFDYyxTQUFELENBQW5CO0FBRUEsVUFBSSxDQUFDUCxHQUFMLEVBQVUsT0FBT1MsR0FBUDtBQUVWVCxNQUFBQSxHQUFHLEdBQUdBLEdBQUcsQ0FBQ1UsS0FBSixFQUFOLENBTDBCLENBS0E7QUFDMUI7O0FBRUEsVUFBSUMsT0FBSjtBQUFBLFVBQ0VWLENBQUMsR0FBR0QsR0FBRyxDQUFDRyxNQURWOztBQUdBLGFBQU9GLENBQUMsRUFBUixFQUFZO0FBQ1ZVLFFBQUFBLE9BQU8sR0FBR1gsR0FBRyxDQUFDQyxDQUFELENBQWI7QUFFQVEsUUFBQUEsR0FBRyxHQUFHQSxHQUFHLElBQUlFLE9BQU8sQ0FBQ0gsV0FBRCxDQUFwQjtBQUNEO0FBQ0Y7O0FBRUQsV0FBTyxDQUFDLENBQUNDLEdBQVQ7QUFDRDs7QUFFREcsRUFBQUEsZ0JBQWdCLENBQUNoQixJQUFELEVBQU87QUFDckIsUUFBSUgsU0FBUyxHQUFHLEtBQUtBLFNBQXJCO0FBRUEsV0FBTyxDQUFDLEVBQUVBLFNBQVMsSUFBSUEsU0FBUyxDQUFDRyxJQUFELENBQXhCLENBQVI7QUFDRDs7QUFoRmtDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIEV2ZW50RGlzcGF0Y2hlclxuICogVmlzaXQgaHR0cDovL2NyZWF0ZWpzLmNvbS8gZm9yIGRvY3VtZW50YXRpb24sIHVwZGF0ZXMgYW5kIGV4YW1wbGVzLlxuICpcbiAqKi9cblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgRXZlbnREaXNwYXRjaGVyIHtcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5saXN0ZW5lcnMgPSBudWxsO1xuICB9XG5cbiAgc2V0IGxpc3RlbmVycyhsaXN0ZW5lcnMpIHtcbiAgICB0aGlzLl9saXN0ZW5lcnMgPSBsaXN0ZW5lcnM7XG4gIH1cblxuICBnZXQgbGlzdGVuZXJzKCkge1xuICAgIHJldHVybiB0aGlzLl9saXN0ZW5lcnM7XG4gIH1cblxuICBhZGRFdmVudExpc3RlbmVyKHR5cGUsIGxpc3RlbmVyKSB7XG4gICAgaWYgKCF0aGlzLmxpc3RlbmVycykge1xuICAgICAgdGhpcy5saXN0ZW5lcnMgPSB7fTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5yZW1vdmVFdmVudExpc3RlbmVyKHR5cGUsIGxpc3RlbmVyKTtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMubGlzdGVuZXJzW3R5cGVdKSB0aGlzLmxpc3RlbmVyc1t0eXBlXSA9IFtdO1xuICAgIHRoaXMubGlzdGVuZXJzW3R5cGVdLnB1c2gobGlzdGVuZXIpO1xuXG4gICAgcmV0dXJuIGxpc3RlbmVyO1xuICB9XG5cbiAgcmVtb3ZlRXZlbnRMaXN0ZW5lcih0eXBlLCBsaXN0ZW5lcikge1xuICAgIGlmICghdGhpcy5saXN0ZW5lcnMpIHJldHVybjtcbiAgICBpZiAoIXRoaXMubGlzdGVuZXJzW3R5cGVdKSByZXR1cm47XG5cbiAgICB2YXIgYXJyID0gdGhpcy5saXN0ZW5lcnNbdHlwZV07XG5cbiAgICBmb3IgKHZhciBpID0gMCwgbCA9IGFyci5sZW5ndGg7IGkgPCBsOyBpKyspIHtcbiAgICAgIGlmIChhcnJbaV0gPT0gbGlzdGVuZXIpIHtcbiAgICAgICAgaWYgKGwgPT0gMSkge1xuICAgICAgICAgIGRlbGV0ZSB0aGlzLmxpc3RlbmVyc1t0eXBlXTtcbiAgICAgICAgfVxuICAgICAgICAvLyBhbGxvd3MgZm9yIGZhc3RlciBjaGVja3MuXG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgIGFyci5zcGxpY2UoaSwgMSk7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmVtb3ZlQWxsRXZlbnRMaXN0ZW5lcnModHlwZSkge1xuICAgIGlmICghdHlwZSkgdGhpcy5saXN0ZW5lcnMgPSBudWxsO1xuICAgIGVsc2UgaWYgKHRoaXMubGlzdGVuZXJzKSBkZWxldGUgdGhpcy5saXN0ZW5lcnNbdHlwZV07XG4gIH1cblxuICBkaXNwYXRjaEV2ZW50KGV2ZW50TmFtZSwgZXZlbnRUYXJnZXQpIHtcbiAgICB2YXIgcmV0ID0gZmFsc2UsXG4gICAgICBsaXN0ZW5lcnMgPSB0aGlzLmxpc3RlbmVycztcblxuICAgIGlmIChldmVudE5hbWUgJiYgbGlzdGVuZXJzKSB7XG4gICAgICB2YXIgYXJyID0gbGlzdGVuZXJzW2V2ZW50TmFtZV07XG5cbiAgICAgIGlmICghYXJyKSByZXR1cm4gcmV0O1xuXG4gICAgICBhcnIgPSBhcnIuc2xpY2UoKTsgICAgICAgIC8vU2hvdWxkIHVzZSBhIGNvcHkgaW50byBhIHRlbXBvcmFyeSBoZXJlIGluc3RlYWQuLi5cbiAgICAgIC8vIHRvIGF2b2lkIGlzc3VlcyB3aXRoIGl0ZW1zIGJlaW5nIHJlbW92ZWQgb3IgYWRkZWQgZHVyaW5nIHRoZSBkaXNwYXRjaFxuXG4gICAgICB2YXIgaGFuZGxlcixcbiAgICAgICAgaSA9IGFyci5sZW5ndGg7XG5cbiAgICAgIHdoaWxlIChpLS0pIHtcbiAgICAgICAgaGFuZGxlciA9IGFycltpXTtcblxuICAgICAgICByZXQgPSByZXQgfHwgaGFuZGxlcihldmVudFRhcmdldCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuICEhcmV0O1xuICB9XG5cbiAgaGFzRXZlbnRMaXN0ZW5lcih0eXBlKSB7XG4gICAgdmFyIGxpc3RlbmVycyA9IHRoaXMubGlzdGVuZXJzO1xuXG4gICAgcmV0dXJuICEhKGxpc3RlbmVycyAmJiBsaXN0ZW5lcnNbdHlwZV0pO1xuICB9XG59XG4iXX0= ================================================ FILE: packages/sdk/lib/core/libs/three-nebula/events/constants.js ================================================ export const SYSTEM_UPDATE = 'SYSTEM_UPDATE'; export const PARTICLE_CREATED = 'PARTICLE_CREATED'; export const PARTICLE_UPDATE = 'PARTICLE_UPDATE'; export const PARTICLE_DEAD = 'PARTICLE_DEAD'; export const EMITTER_ADDED = 'EMITTER_ADDED'; export const EMITTER_REMOVED = 'EMITTER_REMOVED'; export const EMITTER_DEAD = 'EMITTER_DEAD'; export const SYSTEM_UPDATE_AFTER = 'SYSTEM_UPDATE_AFTER'; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9ldmVudHMvY29uc3RhbnRzLmpzIl0sIm5hbWVzIjpbIlNZU1RFTV9VUERBVEUiLCJQQVJUSUNMRV9DUkVBVEVEIiwiUEFSVElDTEVfVVBEQVRFIiwiUEFSVElDTEVfREVBRCIsIkVNSVRURVJfQURERUQiLCJFTUlUVEVSX1JFTU9WRUQiLCJFTUlUVEVSX0RFQUQiLCJTWVNURU1fVVBEQVRFX0FGVEVSIl0sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLE1BQU1BLGFBQWEsR0FBRyxlQUF0QjtBQUNQLE9BQU8sTUFBTUMsZ0JBQWdCLEdBQUcsa0JBQXpCO0FBQ1AsT0FBTyxNQUFNQyxlQUFlLEdBQUcsaUJBQXhCO0FBQ1AsT0FBTyxNQUFNQyxhQUFhLEdBQUcsZUFBdEI7QUFDUCxPQUFPLE1BQU1DLGFBQWEsR0FBRyxlQUF0QjtBQUNQLE9BQU8sTUFBTUMsZUFBZSxHQUFHLGlCQUF4QjtBQUNQLE9BQU8sTUFBTUMsWUFBWSxHQUFHLGNBQXJCO0FBQ1AsT0FBTyxNQUFNQyxtQkFBbUIsR0FBRyxxQkFBNUIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgU1lTVEVNX1VQREFURSA9ICdTWVNURU1fVVBEQVRFJztcbmV4cG9ydCBjb25zdCBQQVJUSUNMRV9DUkVBVEVEID0gJ1BBUlRJQ0xFX0NSRUFURUQnO1xuZXhwb3J0IGNvbnN0IFBBUlRJQ0xFX1VQREFURSA9ICdQQVJUSUNMRV9VUERBVEUnO1xuZXhwb3J0IGNvbnN0IFBBUlRJQ0xFX0RFQUQgPSAnUEFSVElDTEVfREVBRCc7XG5leHBvcnQgY29uc3QgRU1JVFRFUl9BRERFRCA9ICdFTUlUVEVSX0FEREVEJztcbmV4cG9ydCBjb25zdCBFTUlUVEVSX1JFTU9WRUQgPSAnRU1JVFRFUl9SRU1PVkVEJztcbmV4cG9ydCBjb25zdCBFTUlUVEVSX0RFQUQgPSAnRU1JVFRFUl9ERUFEJztcbmV4cG9ydCBjb25zdCBTWVNURU1fVVBEQVRFX0FGVEVSID0gJ1NZU1RFTV9VUERBVEVfQUZURVInO1xuIl19 ================================================ FILE: packages/sdk/lib/core/libs/three-nebula/events/index.js ================================================ import EventDispatcher from './EventDispatcher'; export default EventDispatcher; export * from './constants'; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9ldmVudHMvaW5kZXguanMiXSwibmFtZXMiOlsiRXZlbnREaXNwYXRjaGVyIl0sIm1hcHBpbmdzIjoiQUFBQSxPQUFPQSxlQUFQLE1BQTRCLG1CQUE1QjtBQUVBLGVBQWVBLGVBQWY7QUFDQSxjQUFjLGFBQWQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgRXZlbnREaXNwYXRjaGVyIGZyb20gJy4vRXZlbnREaXNwYXRjaGVyJztcblxuZXhwb3J0IGRlZmF1bHQgRXZlbnREaXNwYXRjaGVyO1xuZXhwb3J0ICogZnJvbSAnLi9jb25zdGFudHMnO1xuIl19 ================================================ FILE: packages/sdk/lib/core/libs/three-nebula/index.js ================================================ import { System } from './core'; export * from './behaviour'; export * from './debug'; export * from './ease'; export * from './emitter'; export * from './initializer'; export * from './math'; export * from './renderer'; export * from './utils'; export * from './zone'; export { System, Particle, Pool } from './core'; export default System; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9pbmRleC5qcyJdLCJuYW1lcyI6WyJTeXN0ZW0iLCJQYXJ0aWNsZSIsIlBvb2wiXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLE1BQVQsUUFBdUIsUUFBdkI7QUFFQSxjQUFjLGFBQWQ7QUFDQSxjQUFjLFNBQWQ7QUFDQSxjQUFjLFFBQWQ7QUFDQSxjQUFjLFdBQWQ7QUFDQSxjQUFjLGVBQWQ7QUFDQSxjQUFjLFFBQWQ7QUFDQSxjQUFjLFlBQWQ7QUFDQSxjQUFjLFNBQWQ7QUFDQSxjQUFjLFFBQWQ7QUFDQSxTQUFTQSxNQUFULEVBQWlCQyxRQUFqQixFQUEyQkMsSUFBM0IsUUFBdUMsUUFBdkM7QUFDQSxlQUFlRixNQUFmIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU3lzdGVtIH0gZnJvbSAnLi9jb3JlJztcblxuZXhwb3J0ICogZnJvbSAnLi9iZWhhdmlvdXInO1xuZXhwb3J0ICogZnJvbSAnLi9kZWJ1Zyc7XG5leHBvcnQgKiBmcm9tICcuL2Vhc2UnO1xuZXhwb3J0ICogZnJvbSAnLi9lbWl0dGVyJztcbmV4cG9ydCAqIGZyb20gJy4vaW5pdGlhbGl6ZXInO1xuZXhwb3J0ICogZnJvbSAnLi9tYXRoJztcbmV4cG9ydCAqIGZyb20gJy4vcmVuZGVyZXInO1xuZXhwb3J0ICogZnJvbSAnLi91dGlscyc7XG5leHBvcnQgKiBmcm9tICcuL3pvbmUnO1xuZXhwb3J0IHsgU3lzdGVtLCBQYXJ0aWNsZSwgUG9vbCB9IGZyb20gJy4vY29yZSc7XG5leHBvcnQgZGVmYXVsdCBTeXN0ZW07XG4iXX0= ================================================ FILE: packages/sdk/lib/core/libs/three-nebula/initializer/Body.js ================================================ import Initializer from './Initializer'; import { createArraySpan } from '../math'; import { INITIALIZER_TYPE_BODY as type } from './types'; /** * Sets the body property on initialized particles. * */ export default class Body extends Initializer { /** * Constructs a Body initalizer instance. * * @param {string|number|object} body - The content for the particle body, can * be a color or an object (mesh) * @param {?number} w - The width of the particle body * @param {?number} h - The height of the particle body * @return void */ constructor(body, w=null, h=null, isEnabled = true) { super(type, isEnabled); /** * @desc The content for the particle body * @type {ArraySpan} */ this.body = createArraySpan(body); /** * @desc The width of the particle Body * @type {number} */ this.w = w; /** * @desc The height of the particle Body * @type {number} */ this.h = h || w; } /** * Sets the particle's initial body. * * @param {Particle} particle - the particle to initialize the property on * @return void */ initialize(particle) { var body = this.body.getValue(); if (this.w) { particle.body = { width: this.w, height: this.h, body: body }; } else { particle.body = body; } } /** * Creates a Body initializer from JSON. * * @param {object} json - The JSON to construct the instance from. * @property {number} json.body - The color for the particle body * @property {number} json.width - The width of the particle body * @property {number} json.height - The height of the particle body * @return {Body} */ static fromJSON(json) { const { body, width, height, isEnabled = true } = json; return new Body(body, width, height, isEnabled); } } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9pbml0aWFsaXplci9Cb2R5LmpzIl0sIm5hbWVzIjpbIkluaXRpYWxpemVyIiwiY3JlYXRlQXJyYXlTcGFuIiwiSU5JVElBTElaRVJfVFlQRV9CT0RZIiwidHlwZSIsIkJvZHkiLCJjb25zdHJ1Y3RvciIsImJvZHkiLCJ3IiwiaCIsImlzRW5hYmxlZCIsImluaXRpYWxpemUiLCJwYXJ0aWNsZSIsImdldFZhbHVlIiwid2lkdGgiLCJoZWlnaHQiLCJmcm9tSlNPTiIsImpzb24iXSwibWFwcGluZ3MiOiJBQUFBLE9BQU9BLFdBQVAsTUFBd0IsZUFBeEI7QUFDQSxTQUFTQyxlQUFULFFBQWdDLFNBQWhDO0FBQ0EsU0FBU0MscUJBQXFCLElBQUlDLElBQWxDLFFBQThDLFNBQTlDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBQ0EsZUFBZSxNQUFNQyxJQUFOLFNBQW1CSixXQUFuQixDQUErQjtBQUM1QztBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDRUssRUFBQUEsV0FBVyxDQUFDQyxJQUFELEVBQU9DLENBQVAsRUFBVUMsQ0FBVixFQUFhQyxTQUFTLEdBQUcsSUFBekIsRUFBK0I7QUFDeEMsVUFBTU4sSUFBTixFQUFZTSxTQUFaO0FBRUE7QUFDSjtBQUNBO0FBQ0E7O0FBQ0ksU0FBS0gsSUFBTCxHQUFZTCxlQUFlLENBQUNLLElBQUQsQ0FBM0I7QUFFQTtBQUNKO0FBQ0E7QUFDQTs7QUFDSSxTQUFLQyxDQUFMLEdBQVNBLENBQVQ7QUFFQTtBQUNKO0FBQ0E7QUFDQTs7QUFDSSxTQUFLQyxDQUFMLEdBQVNBLENBQUMsSUFBSUQsQ0FBZDtBQUNEO0FBRUQ7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFDRUcsRUFBQUEsVUFBVSxDQUFDQyxRQUFELEVBQVc7QUFDbkIsUUFBSUwsSUFBSSxHQUFHLEtBQUtBLElBQUwsQ0FBVU0sUUFBVixFQUFYOztBQUVBLFFBQUksS0FBS0wsQ0FBVCxFQUFZO0FBQ1ZJLE1BQUFBLFFBQVEsQ0FBQ0wsSUFBVCxHQUFnQjtBQUNkTyxRQUFBQSxLQUFLLEVBQUUsS0FBS04sQ0FERTtBQUVkTyxRQUFBQSxNQUFNLEVBQUUsS0FBS04sQ0FGQztBQUdkRixRQUFBQSxJQUFJLEVBQUVBO0FBSFEsT0FBaEI7QUFLRCxLQU5ELE1BTU87QUFDTEssTUFBQUEsUUFBUSxDQUFDTCxJQUFULEdBQWdCQSxJQUFoQjtBQUNEO0FBQ0Y7QUFFRDtBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUNpQixTQUFSUyxRQUFRLENBQUNDLElBQUQsRUFBTztBQUNwQixVQUFNO0FBQUVWLE1BQUFBLElBQUY7QUFBUU8sTUFBQUEsS0FBUjtBQUFlQyxNQUFBQSxNQUFmO0FBQXVCTCxNQUFBQSxTQUFTLEdBQUc7QUFBbkMsUUFBNENPLElBQWxEO0FBRUEsV0FBTyxJQUFJWixJQUFKLENBQVNFLElBQVQsRUFBZU8sS0FBZixFQUFzQkMsTUFBdEIsRUFBOEJMLFNBQTlCLENBQVA7QUFDRDs7QUFqRTJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEluaXRpYWxpemVyIGZyb20gJy4vSW5pdGlhbGl6ZXInO1xuaW1wb3J0IHsgY3JlYXRlQXJyYXlTcGFuIH0gZnJvbSAnLi4vbWF0aCc7XG5pbXBvcnQgeyBJTklUSUFMSVpFUl9UWVBFX0JPRFkgYXMgdHlwZSB9IGZyb20gJy4vdHlwZXMnO1xuLyoqXG4gKiBTZXRzIHRoZSBib2R5IHByb3BlcnR5IG9uIGluaXRpYWxpemVkIHBhcnRpY2xlcy5cbiAqXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEJvZHkgZXh0ZW5kcyBJbml0aWFsaXplciB7XG4gIC8qKlxuICAgKiBDb25zdHJ1Y3RzIGEgQm9keSBpbml0YWxpemVyIGluc3RhbmNlLlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ3xudW1iZXJ8b2JqZWN0fSBib2R5IC0gVGhlIGNvbnRlbnQgZm9yIHRoZSBwYXJ0aWNsZSBib2R5LCBjYW5cbiAgICogYmUgYSBjb2xvciBvciBhbiBvYmplY3QgKG1lc2gpXG4gICAqIEBwYXJhbSB7P251bWJlcn0gdyAtIFRoZSB3aWR0aCBvZiB0aGUgcGFydGljbGUgYm9keVxuICAgKiBAcGFyYW0gez9udW1iZXJ9IGggLSBUaGUgaGVpZ2h0IG9mIHRoZSBwYXJ0aWNsZSBib2R5XG4gICAqIEByZXR1cm4gdm9pZFxuICAgKi9cbiAgY29uc3RydWN0b3IoYm9keSwgdywgaCwgaXNFbmFibGVkID0gdHJ1ZSkge1xuICAgIHN1cGVyKHR5cGUsIGlzRW5hYmxlZCk7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzYyBUaGUgY29udGVudCBmb3IgdGhlIHBhcnRpY2xlIGJvZHlcbiAgICAgKiBAdHlwZSB7QXJyYXlTcGFufVxuICAgICAqL1xuICAgIHRoaXMuYm9keSA9IGNyZWF0ZUFycmF5U3Bhbihib2R5KTtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjIFRoZSB3aWR0aCBvZiB0aGUgcGFydGljbGUgQm9keVxuICAgICAqIEB0eXBlIHtudW1iZXJ9XG4gICAgICovXG4gICAgdGhpcy53ID0gdztcblxuICAgIC8qKlxuICAgICAqIEBkZXNjIFRoZSBoZWlnaHQgb2YgdGhlIHBhcnRpY2xlIEJvZHlcbiAgICAgKiBAdHlwZSB7bnVtYmVyfVxuICAgICAqL1xuICAgIHRoaXMuaCA9IGggfHwgdztcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBwYXJ0aWNsZSdzIGluaXRpYWwgYm9keS5cbiAgICpcbiAgICogQHBhcmFtIHtQYXJ0aWNsZX0gcGFydGljbGUgLSB0aGUgcGFydGljbGUgdG8gaW5pdGlhbGl6ZSB0aGUgcHJvcGVydHkgb25cbiAgICogQHJldHVybiB2b2lkXG4gICAqL1xuICBpbml0aWFsaXplKHBhcnRpY2xlKSB7XG4gICAgdmFyIGJvZHkgPSB0aGlzLmJvZHkuZ2V0VmFsdWUoKTtcblxuICAgIGlmICh0aGlzLncpIHtcbiAgICAgIHBhcnRpY2xlLmJvZHkgPSB7XG4gICAgICAgIHdpZHRoOiB0aGlzLncsXG4gICAgICAgIGhlaWdodDogdGhpcy5oLFxuICAgICAgICBib2R5OiBib2R5LFxuICAgICAgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgcGFydGljbGUuYm9keSA9IGJvZHk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBCb2R5IGluaXRpYWxpemVyIGZyb20gSlNPTi5cbiAgICpcbiAgICogQHBhcmFtIHtvYmplY3R9IGpzb24gLSBUaGUgSlNPTiB0byBjb25zdHJ1Y3QgdGhlIGluc3RhbmNlIGZyb20uXG4gICAqIEBwcm9wZXJ0eSB7bnVtYmVyfSBqc29uLmJvZHkgLSBUaGUgY29sb3IgZm9yIHRoZSBwYXJ0aWNsZSBib2R5XG4gICAqIEBwcm9wZXJ0eSB7bnVtYmVyfSBqc29uLndpZHRoIC0gVGhlIHdpZHRoIG9mIHRoZSBwYXJ0aWNsZSBib2R5XG4gICAqIEBwcm9wZXJ0eSB7bnVtYmVyfSBqc29uLmhlaWdodCAtIFRoZSBoZWlnaHQgb2YgdGhlIHBhcnRpY2xlIGJvZHlcbiAgICogQHJldHVybiB7Qm9keX1cbiAgICovXG4gIHN0YXRpYyBmcm9tSlNPTihqc29uKSB7XG4gICAgY29uc3QgeyBib2R5LCB3aWR0aCwgaGVpZ2h0LCBpc0VuYWJsZWQgPSB0cnVlIH0gPSBqc29uO1xuXG4gICAgcmV0dXJuIG5ldyBCb2R5KGJvZHksIHdpZHRoLCBoZWlnaHQsIGlzRW5hYmxlZCk7XG4gIH1cbn1cbiJdfQ== ================================================ FILE: packages/sdk/lib/core/libs/three-nebula/initializer/BodySprite.js ================================================ import _defineProperty from "@babel/runtime/helpers/defineProperty"; function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; } function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } import { DEFAULT_JSON_MATERIAL_PROPERTIES, DEFAULT_MATERIAL_PROPERTIES, SUPPORTED_MATERIAL_BLENDING_MODES } from './constants'; import Initializer from './Initializer'; import { INITIALIZER_TYPE_BODY_SPRITE as type } from './types'; import { withDefaults } from '../utils'; /** * Sets the body property to be a THREE.Sprite on initialized particles. * * NOTE The texture map MUST be set on the SpriteMaterial in the TextureLoader.load * callback. Not doing so will cause WebGL buffer errors. */ export default class BodySprite extends Initializer { /** * Constructs a BodySprite initializer. * * @param {object} THREE - The Web GL API we are using eg., THREE * @param {string} texture - The sprite texture * @param {object} materialProperties - The sprite material properties * @throws {Error} If the TextureLoader fails to load the supplied texture * @return void */ constructor(THREE, texture, materialProperties = DEFAULT_MATERIAL_PROPERTIES, isEnabled = true) { super(type, isEnabled); const { Sprite, SpriteMaterial, TextureLoader } = THREE; /** * @desc The material properties for this object's SpriteMaterial * NOTE This is required for testing purposes * @type {object} */ this.materialProperties = withDefaults(DEFAULT_MATERIAL_PROPERTIES, materialProperties); new TextureLoader().load(texture, map => { /** * @desc The texture for the THREE.SpriteMaterial map. * @type {Texture} */ this.texture = map; /** * @desc THREE.SpriteMaterial instance. * @type {SpriteMaterial} */ this.material = new SpriteMaterial(_objectSpread(_objectSpread({}, { map }), this.materialProperties)); /** * @desc THREE.Sprite instance. * @type {Sprite} */ this.sprite = new Sprite(this.material); }, undefined, error => { throw new Error(error); }); } /** * Sets the particle body to the sprite. * * @param {Particle} particle - The particle to set the body of * @return void */ initialize(particle) { particle.body = this.sprite; } /** * Creates a BodySprite initializer from JSON. * * @param {object} json - The JSON to construct the instance from * @param {object} THREE - The Web GL API we are using eg., THREE * @param {string} json.texture - The sprite texture * @param {object} json.materialProperties - The sprite material properties * @return {BodySprite} */ static fromJSON(json, THREE) { const { texture, materialProperties = DEFAULT_JSON_MATERIAL_PROPERTIES, isEnabled = true } = json; const ensureMappedBlendingMode = properties => { const { blending } = properties; return _objectSpread(_objectSpread({}, properties), {}, { blending: blending ? SUPPORTED_MATERIAL_BLENDING_MODES[blending] : SUPPORTED_MATERIAL_BLENDING_MODES[DEFAULT_JSON_MATERIAL_PROPERTIES.blending] }); }; return new BodySprite(THREE, texture, withDefaults(DEFAULT_JSON_MATERIAL_PROPERTIES, ensureMappedBlendingMode(materialProperties)), isEnabled); } } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9pbml0aWFsaXplci9Cb2R5U3ByaXRlLmpzIl0sIm5hbWVzIjpbIkRFRkFVTFRfSlNPTl9NQVRFUklBTF9QUk9QRVJUSUVTIiwiREVGQVVMVF9NQVRFUklBTF9QUk9QRVJUSUVTIiwiU1VQUE9SVEVEX01BVEVSSUFMX0JMRU5ESU5HX01PREVTIiwiSW5pdGlhbGl6ZXIiLCJJTklUSUFMSVpFUl9UWVBFX0JPRFlfU1BSSVRFIiwidHlwZSIsIndpdGhEZWZhdWx0cyIsIkJvZHlTcHJpdGUiLCJjb25zdHJ1Y3RvciIsIlRIUkVFIiwidGV4dHVyZSIsIm1hdGVyaWFsUHJvcGVydGllcyIsImlzRW5hYmxlZCIsIlNwcml0ZSIsIlNwcml0ZU1hdGVyaWFsIiwiVGV4dHVyZUxvYWRlciIsImxvYWQiLCJtYXAiLCJtYXRlcmlhbCIsInNwcml0ZSIsInVuZGVmaW5lZCIsImVycm9yIiwiRXJyb3IiLCJpbml0aWFsaXplIiwicGFydGljbGUiLCJib2R5IiwiZnJvbUpTT04iLCJqc29uIiwiZW5zdXJlTWFwcGVkQmxlbmRpbmdNb2RlIiwicHJvcGVydGllcyIsImJsZW5kaW5nIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxTQUNFQSxnQ0FERixFQUVFQywyQkFGRixFQUdFQyxpQ0FIRixRQUlPLGFBSlA7QUFNQSxPQUFPQyxXQUFQLE1BQXdCLGVBQXhCO0FBQ0EsU0FBU0MsNEJBQTRCLElBQUlDLElBQXpDLFFBQXFELFNBQXJEO0FBQ0EsU0FBU0MsWUFBVCxRQUE2QixVQUE3QjtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFDQSxlQUFlLE1BQU1DLFVBQU4sU0FBeUJKLFdBQXpCLENBQXFDO0FBQ2xEO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNFSyxFQUFBQSxXQUFXLENBQ1RDLEtBRFMsRUFFVEMsT0FGUyxFQUdUQyxrQkFBa0IsR0FBR1YsMkJBSFosRUFJVFcsU0FBUyxHQUFHLElBSkgsRUFLVDtBQUNBLFVBQU1QLElBQU4sRUFBWU8sU0FBWjtBQUVBLFVBQU07QUFBRUMsTUFBQUEsTUFBRjtBQUFVQyxNQUFBQSxjQUFWO0FBQTBCQyxNQUFBQTtBQUExQixRQUE0Q04sS0FBbEQ7QUFFQTtBQUNKO0FBQ0E7QUFDQTtBQUNBOztBQUNJLFNBQUtFLGtCQUFMLEdBQTBCTCxZQUFZLENBQ3BDTCwyQkFEb0MsRUFFcENVLGtCQUZvQyxDQUF0QztBQUtBLFFBQUlJLGFBQUosR0FBb0JDLElBQXBCLENBQ0VOLE9BREYsRUFFRU8sR0FBRyxJQUFJO0FBQ0w7QUFDUjtBQUNBO0FBQ0E7QUFDUSxXQUFLUCxPQUFMLEdBQWVPLEdBQWY7QUFFQTtBQUNSO0FBQ0E7QUFDQTs7QUFDUSxXQUFLQyxRQUFMLEdBQWdCLElBQUlKLGNBQUosaUNBQ1g7QUFBRUcsUUFBQUE7QUFBRixPQURXLEdBRVgsS0FBS04sa0JBRk0sRUFBaEI7QUFLQTtBQUNSO0FBQ0E7QUFDQTs7QUFDUSxXQUFLUSxNQUFMLEdBQWMsSUFBSU4sTUFBSixDQUFXLEtBQUtLLFFBQWhCLENBQWQ7QUFDRCxLQXZCSCxFQXdCRUUsU0F4QkYsRUF5QkVDLEtBQUssSUFBSTtBQUNQLFlBQU0sSUFBSUMsS0FBSixDQUFVRCxLQUFWLENBQU47QUFDRCxLQTNCSDtBQTZCRDtBQUVEO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQ0VFLEVBQUFBLFVBQVUsQ0FBQ0MsUUFBRCxFQUFXO0FBQ25CQSxJQUFBQSxRQUFRLENBQUNDLElBQVQsR0FBZ0IsS0FBS04sTUFBckI7QUFDRDtBQUVEO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQ2lCLFNBQVJPLFFBQVEsQ0FBQ0MsSUFBRCxFQUFPbEIsS0FBUCxFQUFjO0FBQzNCLFVBQU07QUFDSkMsTUFBQUEsT0FESTtBQUVKQyxNQUFBQSxrQkFBa0IsR0FBR1gsZ0NBRmpCO0FBR0pZLE1BQUFBLFNBQVMsR0FBRztBQUhSLFFBSUZlLElBSko7O0FBTUEsVUFBTUMsd0JBQXdCLEdBQUdDLFVBQVUsSUFBSTtBQUM3QyxZQUFNO0FBQUVDLFFBQUFBO0FBQUYsVUFBZUQsVUFBckI7QUFFQSw2Q0FDS0EsVUFETDtBQUVFQyxRQUFBQSxRQUFRLEVBQUVBLFFBQVEsR0FDZDVCLGlDQUFpQyxDQUFDNEIsUUFBRCxDQURuQixHQUVkNUIsaUNBQWlDLENBQ2pDRixnQ0FBZ0MsQ0FBQzhCLFFBREE7QUFKdkM7QUFRRCxLQVhEOztBQWFBLFdBQU8sSUFBSXZCLFVBQUosQ0FDTEUsS0FESyxFQUVMQyxPQUZLLEVBR0xKLFlBQVksQ0FDVk4sZ0NBRFUsRUFFVjRCLHdCQUF3QixDQUFDakIsa0JBQUQsQ0FGZCxDQUhQLEVBT0xDLFNBUEssQ0FBUDtBQVNEOztBQTdHaUQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBERUZBVUxUX0pTT05fTUFURVJJQUxfUFJPUEVSVElFUyxcbiAgREVGQVVMVF9NQVRFUklBTF9QUk9QRVJUSUVTLFxuICBTVVBQT1JURURfTUFURVJJQUxfQkxFTkRJTkdfTU9ERVMsXG59IGZyb20gJy4vY29uc3RhbnRzJztcblxuaW1wb3J0IEluaXRpYWxpemVyIGZyb20gJy4vSW5pdGlhbGl6ZXInO1xuaW1wb3J0IHsgSU5JVElBTElaRVJfVFlQRV9CT0RZX1NQUklURSBhcyB0eXBlIH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyB3aXRoRGVmYXVsdHMgfSBmcm9tICcuLi91dGlscyc7XG5cbi8qKlxuICogU2V0cyB0aGUgYm9keSBwcm9wZXJ0eSB0byBiZSBhIFRIUkVFLlNwcml0ZSBvbiBpbml0aWFsaXplZCBwYXJ0aWNsZXMuXG4gKlxuICogTk9URSBUaGUgdGV4dHVyZSBtYXAgTVVTVCBiZSBzZXQgb24gdGhlIFNwcml0ZU1hdGVyaWFsIGluIHRoZSBUZXh0dXJlTG9hZGVyLmxvYWRcbiAqIGNhbGxiYWNrLiBOb3QgZG9pbmcgc28gd2lsbCBjYXVzZSBXZWJHTCBidWZmZXIgZXJyb3JzLlxuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBCb2R5U3ByaXRlIGV4dGVuZHMgSW5pdGlhbGl6ZXIge1xuICAvKipcbiAgICogQ29uc3RydWN0cyBhIEJvZHlTcHJpdGUgaW5pdGlhbGl6ZXIuXG4gICAqXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBUSFJFRSAtIFRoZSBXZWIgR0wgQVBJIHdlIGFyZSB1c2luZyBlZy4sIFRIUkVFXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB0ZXh0dXJlIC0gVGhlIHNwcml0ZSB0ZXh0dXJlXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBtYXRlcmlhbFByb3BlcnRpZXMgLSBUaGUgc3ByaXRlIG1hdGVyaWFsIHByb3BlcnRpZXNcbiAgICogQHRocm93cyB7RXJyb3J9IElmIHRoZSBUZXh0dXJlTG9hZGVyIGZhaWxzIHRvIGxvYWQgdGhlIHN1cHBsaWVkIHRleHR1cmVcbiAgICogQHJldHVybiB2b2lkXG4gICAqL1xuICBjb25zdHJ1Y3RvcihcbiAgICBUSFJFRSxcbiAgICB0ZXh0dXJlLFxuICAgIG1hdGVyaWFsUHJvcGVydGllcyA9IERFRkFVTFRfTUFURVJJQUxfUFJPUEVSVElFUyxcbiAgICBpc0VuYWJsZWQgPSB0cnVlXG4gICkge1xuICAgIHN1cGVyKHR5cGUsIGlzRW5hYmxlZCk7XG5cbiAgICBjb25zdCB7IFNwcml0ZSwgU3ByaXRlTWF0ZXJpYWwsIFRleHR1cmVMb2FkZXIgfSA9IFRIUkVFO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2MgVGhlIG1hdGVyaWFsIHByb3BlcnRpZXMgZm9yIHRoaXMgb2JqZWN0J3MgU3ByaXRlTWF0ZXJpYWxcbiAgICAgKiBOT1RFIFRoaXMgaXMgcmVxdWlyZWQgZm9yIHRlc3RpbmcgcHVycG9zZXNcbiAgICAgKiBAdHlwZSB7b2JqZWN0fVxuICAgICAqL1xuICAgIHRoaXMubWF0ZXJpYWxQcm9wZXJ0aWVzID0gd2l0aERlZmF1bHRzKFxuICAgICAgREVGQVVMVF9NQVRFUklBTF9QUk9QRVJUSUVTLFxuICAgICAgbWF0ZXJpYWxQcm9wZXJ0aWVzXG4gICAgKTtcblxuICAgIG5ldyBUZXh0dXJlTG9hZGVyKCkubG9hZChcbiAgICAgIHRleHR1cmUsXG4gICAgICBtYXAgPT4ge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2MgVGhlIHRleHR1cmUgZm9yIHRoZSBUSFJFRS5TcHJpdGVNYXRlcmlhbCBtYXAuXG4gICAgICAgICAqIEB0eXBlIHtUZXh0dXJlfVxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy50ZXh0dXJlID0gbWFwO1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzYyBUSFJFRS5TcHJpdGVNYXRlcmlhbCBpbnN0YW5jZS5cbiAgICAgICAgICogQHR5cGUge1Nwcml0ZU1hdGVyaWFsfVxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy5tYXRlcmlhbCA9IG5ldyBTcHJpdGVNYXRlcmlhbCh7XG4gICAgICAgICAgLi4ueyBtYXAgfSxcbiAgICAgICAgICAuLi50aGlzLm1hdGVyaWFsUHJvcGVydGllcyxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjIFRIUkVFLlNwcml0ZSBpbnN0YW5jZS5cbiAgICAgICAgICogQHR5cGUge1Nwcml0ZX1cbiAgICAgICAgICovXG4gICAgICAgIHRoaXMuc3ByaXRlID0gbmV3IFNwcml0ZSh0aGlzLm1hdGVyaWFsKTtcbiAgICAgIH0sXG4gICAgICB1bmRlZmluZWQsXG4gICAgICBlcnJvciA9PiB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihlcnJvcik7XG4gICAgICB9XG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBwYXJ0aWNsZSBib2R5IHRvIHRoZSBzcHJpdGUuXG4gICAqXG4gICAqIEBwYXJhbSB7UGFydGljbGV9IHBhcnRpY2xlIC0gVGhlIHBhcnRpY2xlIHRvIHNldCB0aGUgYm9keSBvZlxuICAgKiBAcmV0dXJuIHZvaWRcbiAgICovXG4gIGluaXRpYWxpemUocGFydGljbGUpIHtcbiAgICBwYXJ0aWNsZS5ib2R5ID0gdGhpcy5zcHJpdGU7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIEJvZHlTcHJpdGUgaW5pdGlhbGl6ZXIgZnJvbSBKU09OLlxuICAgKlxuICAgKiBAcGFyYW0ge29iamVjdH0ganNvbiAtIFRoZSBKU09OIHRvIGNvbnN0cnVjdCB0aGUgaW5zdGFuY2UgZnJvbVxuICAgKiBAcGFyYW0ge29iamVjdH0gVEhSRUUgLSBUaGUgV2ViIEdMIEFQSSB3ZSBhcmUgdXNpbmcgZWcuLCBUSFJFRVxuICAgKiBAcGFyYW0ge3N0cmluZ30ganNvbi50ZXh0dXJlIC0gVGhlIHNwcml0ZSB0ZXh0dXJlXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBqc29uLm1hdGVyaWFsUHJvcGVydGllcyAtIFRoZSBzcHJpdGUgbWF0ZXJpYWwgcHJvcGVydGllc1xuICAgKiBAcmV0dXJuIHtCb2R5U3ByaXRlfVxuICAgKi9cbiAgc3RhdGljIGZyb21KU09OKGpzb24sIFRIUkVFKSB7XG4gICAgY29uc3Qge1xuICAgICAgdGV4dHVyZSxcbiAgICAgIG1hdGVyaWFsUHJvcGVydGllcyA9IERFRkFVTFRfSlNPTl9NQVRFUklBTF9QUk9QRVJUSUVTLFxuICAgICAgaXNFbmFibGVkID0gdHJ1ZSxcbiAgICB9ID0ganNvbjtcblxuICAgIGNvbnN0IGVuc3VyZU1hcHBlZEJsZW5kaW5nTW9kZSA9IHByb3BlcnRpZXMgPT4ge1xuICAgICAgY29uc3QgeyBibGVuZGluZyB9ID0gcHJvcGVydGllcztcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4ucHJvcGVydGllcyxcbiAgICAgICAgYmxlbmRpbmc6IGJsZW5kaW5nXG4gICAgICAgICAgPyBTVVBQT1JURURfTUFURVJJQUxfQkxFTkRJTkdfTU9ERVNbYmxlbmRpbmddXG4gICAgICAgICAgOiBTVVBQT1JURURfTUFURVJJQUxfQkxFTkRJTkdfTU9ERVNbXG4gICAgICAgICAgICBERUZBVUxUX0pTT05fTUFURVJJQUxfUFJPUEVSVElFUy5ibGVuZGluZ1xuICAgICAgICAgIF0sXG4gICAgICB9O1xuICAgIH07XG5cbiAgICByZXR1cm4gbmV3IEJvZHlTcHJpdGUoXG4gICAgICBUSFJFRSxcbiAgICAgIHRleHR1cmUsXG4gICAgICB3aXRoRGVmYXVsdHMoXG4gICAgICAgIERFRkFVTFRfSlNPTl9NQVRFUklBTF9QUk9QRVJUSUVTLFxuICAgICAgICBlbnN1cmVNYXBwZWRCbGVuZGluZ01vZGUobWF0ZXJpYWxQcm9wZXJ0aWVzKVxuICAgICAgKSxcbiAgICAgIGlzRW5hYmxlZFxuICAgICk7XG4gIH1cbn1cbiJdfQ== ================================================ FILE: packages/sdk/lib/core/libs/three-nebula/initializer/Initializer.js ================================================ import { INITIALIZER_TYPE_ABSTRACT } from './types'; /** * The base Emitter / Particle property class. * * @abstract */ export default class Initializer { /** * Constructs an Initializer instance. * * @param {string} [type=INITIALIZER_TYPE_ABSTRACT] - The intiializer type * @param {boolean} [isEnabled=true] - Determines if the initializer should be enabled or not * @return void */ constructor(type = INITIALIZER_TYPE_ABSTRACT, isEnabled = true) { this.type = type; this.isEnabled = isEnabled; } /** * Initializes the property on the emitter or particle. * * @see {@link '../emitter/emitter.js'} setupParticle * @param {Emitter} emitter - the emitter to initialize the property on * @param {Particle} particle - the particle to intiialize the property on * @return void */ init(emitter, particle) { if (!this.isEnabled) { return; } if (particle) { this.initialize(particle); particle.hasBeenInitialized = true; } else { this.initialize(emitter); emitter.hasBeenInitialized = true; } } /** * @abstract */ reset() {} /** * Place custom property initialization code in this method in the subclass. * * @param {object} target - either an Emitter or a Particle * @abstract */ initialize(target) {} // eslint-disable-line /** * Determines if the initializer requires a Web GL API to be provided to its constructor. * If true, the WebGL API will need to be provided as the first argument to the constructor * and fromJSON methods. * * @return {boolean} */ static requiresWebGlApi() { return false; } /** * Returns a new instance of the initializer from the JSON object passed. * * @abstract * @param {object} json - JSON object containing the required constructor properties * @return {Behaviour} */ static fromJSON(json) {} // eslint-disable-line } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9pbml0aWFsaXplci9Jbml0aWFsaXplci5qcyJdLCJuYW1lcyI6WyJJTklUSUFMSVpFUl9UWVBFX0FCU1RSQUNUIiwiSW5pdGlhbGl6ZXIiLCJjb25zdHJ1Y3RvciIsInR5cGUiLCJpc0VuYWJsZWQiLCJpbml0IiwiZW1pdHRlciIsInBhcnRpY2xlIiwiaW5pdGlhbGl6ZSIsImhhc0JlZW5Jbml0aWFsaXplZCIsInJlc2V0IiwidGFyZ2V0IiwicmVxdWlyZXNXZWJHbEFwaSIsImZyb21KU09OIiwianNvbiJdLCJtYXBwaW5ncyI6IkFBQUEsU0FBU0EseUJBQVQsUUFBMEMsU0FBMUM7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUNBLGVBQWUsTUFBTUMsV0FBTixDQUFrQjtBQUMvQjtBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVFQyxFQUFBQSxXQUFXLENBQUNDLElBQUksR0FBR0gseUJBQVIsRUFBbUNJLFNBQVMsR0FBRyxJQUEvQyxFQUFxRDtBQUM5RCxTQUFLRCxJQUFMLEdBQVlBLElBQVo7QUFDQSxTQUFLQyxTQUFMLEdBQWlCQSxTQUFqQjtBQUNEO0FBRUQ7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQ0VDLEVBQUFBLElBQUksQ0FBQ0MsT0FBRCxFQUFVQyxRQUFWLEVBQW9CO0FBQ3RCLFFBQUksQ0FBQyxLQUFLSCxTQUFWLEVBQXFCO0FBQ25CO0FBQ0Q7O0FBRUQsUUFBSUcsUUFBSixFQUFjO0FBQ1osV0FBS0MsVUFBTCxDQUFnQkQsUUFBaEI7QUFDQUEsTUFBQUEsUUFBUSxDQUFDRSxrQkFBVCxHQUE4QixJQUE5QjtBQUNELEtBSEQsTUFHTztBQUNMLFdBQUtELFVBQUwsQ0FBZ0JGLE9BQWhCO0FBQ0FBLE1BQUFBLE9BQU8sQ0FBQ0csa0JBQVIsR0FBNkIsSUFBN0I7QUFDRDtBQUNGO0FBRUQ7QUFDRjtBQUNBOzs7QUFDRUMsRUFBQUEsS0FBSyxHQUFHLENBQUU7QUFFVjtBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUNFRixFQUFBQSxVQUFVLENBQUNHLE1BQUQsRUFBUyxDQUFFLENBL0NVLENBK0NUOztBQUV0QjtBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQ3lCLFNBQWhCQyxnQkFBZ0IsR0FBRztBQUN4QixXQUFPLEtBQVA7QUFDRDtBQUVEO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFDaUIsU0FBUkMsUUFBUSxDQUFDQyxJQUFELEVBQU8sQ0FBRSxDQW5FTyxDQW1FTjs7O0FBbkVNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSU5JVElBTElaRVJfVFlQRV9BQlNUUkFDVCB9IGZyb20gJy4vdHlwZXMnO1xuXG4vKipcbiAqIFRoZSBiYXNlIEVtaXR0ZXIgLyBQYXJ0aWNsZSBwcm9wZXJ0eSBjbGFzcy5cbiAqXG4gKiBAYWJzdHJhY3RcbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgSW5pdGlhbGl6ZXIge1xuICAvKipcbiAgICogQ29uc3RydWN0cyBhbiBJbml0aWFsaXplciBpbnN0YW5jZS5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IFt0eXBlPUlOSVRJQUxJWkVSX1RZUEVfQUJTVFJBQ1RdIC0gVGhlIGludGlpYWxpemVyIHR5cGVcbiAgICogQHBhcmFtIHtib29sZWFufSBbaXNFbmFibGVkPXRydWVdIC0gRGV0ZXJtaW5lcyBpZiB0aGUgaW5pdGlhbGl6ZXIgc2hvdWxkIGJlIGVuYWJsZWQgb3Igbm90XG5cbiAgICogQHJldHVybiB2b2lkXG4gICAqL1xuICBjb25zdHJ1Y3Rvcih0eXBlID0gSU5JVElBTElaRVJfVFlQRV9BQlNUUkFDVCwgaXNFbmFibGVkID0gdHJ1ZSkge1xuICAgIHRoaXMudHlwZSA9IHR5cGU7XG4gICAgdGhpcy5pc0VuYWJsZWQgPSBpc0VuYWJsZWQ7XG4gIH1cblxuICAvKipcbiAgICogSW5pdGlhbGl6ZXMgdGhlIHByb3BlcnR5IG9uIHRoZSBlbWl0dGVyIG9yIHBhcnRpY2xlLlxuICAgKlxuICAgKiBAc2VlIHtAbGluayAnLi4vZW1pdHRlci9lbWl0dGVyLmpzJ30gc2V0dXBQYXJ0aWNsZVxuICAgKiBAcGFyYW0ge0VtaXR0ZXJ9IGVtaXR0ZXIgLSB0aGUgZW1pdHRlciB0byBpbml0aWFsaXplIHRoZSBwcm9wZXJ0eSBvblxuICAgKiBAcGFyYW0ge1BhcnRpY2xlfSBwYXJ0aWNsZSAtIHRoZSBwYXJ0aWNsZSB0byBpbnRpaWFsaXplIHRoZSBwcm9wZXJ0eSBvblxuICAgKiBAcmV0dXJuIHZvaWRcbiAgICovXG4gIGluaXQoZW1pdHRlciwgcGFydGljbGUpIHtcbiAgICBpZiAoIXRoaXMuaXNFbmFibGVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHBhcnRpY2xlKSB7XG4gICAgICB0aGlzLmluaXRpYWxpemUocGFydGljbGUpO1xuICAgICAgcGFydGljbGUuaGFzQmVlbkluaXRpYWxpemVkID0gdHJ1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5pbml0aWFsaXplKGVtaXR0ZXIpO1xuICAgICAgZW1pdHRlci5oYXNCZWVuSW5pdGlhbGl6ZWQgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBAYWJzdHJhY3RcbiAgICovXG4gIHJlc2V0KCkge31cblxuICAvKipcbiAgICogUGxhY2UgY3VzdG9tIHByb3BlcnR5IGluaXRpYWxpemF0aW9uIGNvZGUgaW4gdGhpcyBtZXRob2QgaW4gdGhlIHN1YmNsYXNzLlxuICAgKlxuICAgKiBAcGFyYW0ge29iamVjdH0gdGFyZ2V0IC0gZWl0aGVyIGFuIEVtaXR0ZXIgb3IgYSBQYXJ0aWNsZVxuICAgKiBAYWJzdHJhY3RcbiAgICovXG4gIGluaXRpYWxpemUodGFyZ2V0KSB7fSAvLyBlc2xpbnQtZGlzYWJsZS1saW5lXG5cbiAgLyoqXG4gICAqIERldGVybWluZXMgaWYgdGhlIGluaXRpYWxpemVyIHJlcXVpcmVzIGEgV2ViIEdMIEFQSSB0byBiZSBwcm92aWRlZCB0byBpdHMgY29uc3RydWN0b3IuXG4gICAqIElmIHRydWUsIHRoZSBXZWJHTCBBUEkgd2lsbCBuZWVkIHRvIGJlIHByb3ZpZGVkIGFzIHRoZSBmaXJzdCBhcmd1bWVudCB0byB0aGUgY29uc3RydWN0b3JcbiAgICogYW5kIGZyb21KU09OIG1ldGhvZHMuXG4gICAqXG4gICAqIEByZXR1cm4ge2Jvb2xlYW59XG4gICAqL1xuICBzdGF0aWMgcmVxdWlyZXNXZWJHbEFwaSgpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhIG5ldyBpbnN0YW5jZSBvZiB0aGUgaW5pdGlhbGl6ZXIgZnJvbSB0aGUgSlNPTiBvYmplY3QgcGFzc2VkLlxuICAgKlxuICAgKiBAYWJzdHJhY3RcbiAgICogQHBhcmFtIHtvYmplY3R9IGpzb24gLSBKU09OIG9iamVjdCBjb250YWluaW5nIHRoZSByZXF1aXJlZCBjb25zdHJ1Y3RvciBwcm9wZXJ0aWVzXG4gICAqIEByZXR1cm4ge0JlaGF2aW91cn1cbiAgICovXG4gIHN0YXRpYyBmcm9tSlNPTihqc29uKSB7fSAvLyBlc2xpbnQtZGlzYWJsZS1saW5lXG59XG4iXX0= ================================================ FILE: packages/sdk/lib/core/libs/three-nebula/initializer/InitializerUtil.js ================================================ import { Euler } from '../core/three/'; const particleEuler = new Euler(); export default { particleEuler: null, /** * Loops through the initializers array and calls each initializer's initialize method * on the supplied particle. This sets the particle's initial properties. * * @see {@link '../emitter/Emitter'} setupParticle * @param {Emitter} emitter - The emitter that has called this method * @param {Particle} particle - The particle that has just been created * @param {array} initializers - All of the emitter's initializers * @return void */ initialize: function (emitter, particle, initializers) { let i = initializers.length; while (i--) { initializers[i].init(emitter, particle); } emitter.bindEmitter && this.bindEmitter(emitter, particle); }, /** * Ensures that the emitter's position, velocity and accleration are added * to each created particle. * * @param {Emitter} emitter - The emitter that is emitting the particles * @param {Particle} particle - The newly created particle * @return void */ bindEmitter: function (emitter, particle) { const { rotation: { x, y, z } } = emitter; particle.position.add(emitter.position); particle.velocity.add(emitter.velocity); particle.acceleration.add(emitter.acceleration); particle.velocity.applyEuler(particleEuler.set(x, y, z)); } }; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9pbml0aWFsaXplci9Jbml0aWFsaXplclV0aWwuanMiXSwibmFtZXMiOlsiRXVsZXIiLCJwYXJ0aWNsZUV1bGVyIiwiaW5pdGlhbGl6ZSIsImVtaXR0ZXIiLCJwYXJ0aWNsZSIsImluaXRpYWxpemVycyIsImkiLCJsZW5ndGgiLCJpbml0IiwiYmluZEVtaXR0ZXIiLCJyb3RhdGlvbiIsIngiLCJ5IiwieiIsInBvc2l0aW9uIiwiYWRkIiwidmVsb2NpdHkiLCJhY2NlbGVyYXRpb24iLCJhcHBseUV1bGVyIiwic2V0Il0sIm1hcHBpbmdzIjoiQUFBQSxTQUFTQSxLQUFULFFBQXNCLGdCQUF0QjtBQUVBLE1BQU1DLGFBQWEsR0FBRyxJQUFJRCxLQUFKLEVBQXRCO0FBRUEsZUFBZTtBQUNiQyxFQUFBQSxhQUFhLEVBQUUsSUFERjs7QUFFYjtBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNFQyxFQUFBQSxVQUFVLEVBQUUsVUFBU0MsT0FBVCxFQUFrQkMsUUFBbEIsRUFBNEJDLFlBQTVCLEVBQTBDO0FBQ3BELFFBQUlDLENBQUMsR0FBR0QsWUFBWSxDQUFDRSxNQUFyQjs7QUFFQSxXQUFPRCxDQUFDLEVBQVIsRUFBWTtBQUNWRCxNQUFBQSxZQUFZLENBQUNDLENBQUQsQ0FBWixDQUFnQkUsSUFBaEIsQ0FBcUJMLE9BQXJCLEVBQThCQyxRQUE5QjtBQUNEOztBQUVERCxJQUFBQSxPQUFPLENBQUNNLFdBQVIsSUFBdUIsS0FBS0EsV0FBTCxDQUFpQk4sT0FBakIsRUFBMEJDLFFBQTFCLENBQXZCO0FBQ0QsR0FwQlk7O0FBc0JiO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDRUssRUFBQUEsV0FBVyxFQUFFLFVBQVNOLE9BQVQsRUFBa0JDLFFBQWxCLEVBQTRCO0FBQ3ZDLFVBQU07QUFDSk0sTUFBQUEsUUFBUSxFQUFFO0FBQUVDLFFBQUFBLENBQUY7QUFBS0MsUUFBQUEsQ0FBTDtBQUFRQyxRQUFBQTtBQUFSO0FBRE4sUUFFRlYsT0FGSjtBQUlBQyxJQUFBQSxRQUFRLENBQUNVLFFBQVQsQ0FBa0JDLEdBQWxCLENBQXNCWixPQUFPLENBQUNXLFFBQTlCO0FBQ0FWLElBQUFBLFFBQVEsQ0FBQ1ksUUFBVCxDQUFrQkQsR0FBbEIsQ0FBc0JaLE9BQU8sQ0FBQ2EsUUFBOUI7QUFDQVosSUFBQUEsUUFBUSxDQUFDYSxZQUFULENBQXNCRixHQUF0QixDQUEwQlosT0FBTyxDQUFDYyxZQUFsQztBQUNBYixJQUFBQSxRQUFRLENBQUNZLFFBQVQsQ0FBa0JFLFVBQWxCLENBQTZCakIsYUFBYSxDQUFDa0IsR0FBZCxDQUFrQlIsQ0FBbEIsRUFBcUJDLENBQXJCLEVBQXdCQyxDQUF4QixDQUE3QjtBQUNEO0FBdkNZLENBQWYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFdWxlciB9IGZyb20gJy4uL2NvcmUvdGhyZWUvJztcblxuY29uc3QgcGFydGljbGVFdWxlciA9IG5ldyBFdWxlcigpO1xuXG5leHBvcnQgZGVmYXVsdCB7XG4gIHBhcnRpY2xlRXVsZXI6IG51bGwsXG4gIC8qKlxuICAgKiBMb29wcyB0aHJvdWdoIHRoZSBpbml0aWFsaXplcnMgYXJyYXkgYW5kIGNhbGxzIGVhY2ggaW5pdGlhbGl6ZXIncyBpbml0aWFsaXplIG1ldGhvZFxuICAgKiBvbiB0aGUgc3VwcGxpZWQgcGFydGljbGUuIFRoaXMgc2V0cyB0aGUgcGFydGljbGUncyBpbml0aWFsIHByb3BlcnRpZXMuXG4gICAqXG4gICAqIEBzZWUge0BsaW5rICcuLi9lbWl0dGVyL0VtaXR0ZXInfSBzZXR1cFBhcnRpY2xlXG4gICAqIEBwYXJhbSB7RW1pdHRlcn0gZW1pdHRlciAtIFRoZSBlbWl0dGVyIHRoYXQgaGFzIGNhbGxlZCB0aGlzIG1ldGhvZFxuICAgKiBAcGFyYW0ge1BhcnRpY2xlfSBwYXJ0aWNsZSAtIFRoZSBwYXJ0aWNsZSB0aGF0IGhhcyBqdXN0IGJlZW4gY3JlYXRlZFxuICAgKiBAcGFyYW0ge2FycmF5PEluaXRpYWxpemVyPn0gaW5pdGlhbGl6ZXJzIC0gQWxsIG9mIHRoZSBlbWl0dGVyJ3MgaW5pdGlhbGl6ZXJzXG4gICAqIEByZXR1cm4gdm9pZFxuICAgKi9cbiAgaW5pdGlhbGl6ZTogZnVuY3Rpb24oZW1pdHRlciwgcGFydGljbGUsIGluaXRpYWxpemVycykge1xuICAgIGxldCBpID0gaW5pdGlhbGl6ZXJzLmxlbmd0aDtcblxuICAgIHdoaWxlIChpLS0pIHtcbiAgICAgIGluaXRpYWxpemVyc1tpXS5pbml0KGVtaXR0ZXIsIHBhcnRpY2xlKTtcbiAgICB9XG5cbiAgICBlbWl0dGVyLmJpbmRFbWl0dGVyICYmIHRoaXMuYmluZEVtaXR0ZXIoZW1pdHRlciwgcGFydGljbGUpO1xuICB9LFxuXG4gIC8qKlxuICAgKiBFbnN1cmVzIHRoYXQgdGhlIGVtaXR0ZXIncyBwb3NpdGlvbiwgdmVsb2NpdHkgYW5kIGFjY2xlcmF0aW9uIGFyZSBhZGRlZFxuICAgKiB0byBlYWNoIGNyZWF0ZWQgcGFydGljbGUuXG4gICAqXG4gICAqIEBwYXJhbSB7RW1pdHRlcn0gZW1pdHRlciAtIFRoZSBlbWl0dGVyIHRoYXQgaXMgZW1pdHRpbmcgdGhlIHBhcnRpY2xlc1xuICAgKiBAcGFyYW0ge1BhcnRpY2xlfSBwYXJ0aWNsZSAtIFRoZSBuZXdseSBjcmVhdGVkIHBhcnRpY2xlXG4gICAqIEByZXR1cm4gdm9pZFxuICAgKi9cbiAgYmluZEVtaXR0ZXI6IGZ1bmN0aW9uKGVtaXR0ZXIsIHBhcnRpY2xlKSB7XG4gICAgY29uc3Qge1xuICAgICAgcm90YXRpb246IHsgeCwgeSwgeiB9LFxuICAgIH0gPSBlbWl0dGVyO1xuXG4gICAgcGFydGljbGUucG9zaXRpb24uYWRkKGVtaXR0ZXIucG9zaXRpb24pO1xuICAgIHBhcnRpY2xlLnZlbG9jaXR5LmFkZChlbWl0dGVyLnZlbG9jaXR5KTtcbiAgICBwYXJ0aWNsZS5hY2NlbGVyYXRpb24uYWRkKGVtaXR0ZXIuYWNjZWxlcmF0aW9uKTtcbiAgICBwYXJ0aWNsZS52ZWxvY2l0eS5hcHBseUV1bGVyKHBhcnRpY2xlRXVsZXIuc2V0KHgsIHksIHopKTtcbiAgfSxcbn07XG4iXX0= ================================================ FILE: packages/sdk/lib/core/libs/three-nebula/initializer/Life.js ================================================ import Initializer from './Initializer'; import { createSpan } from '../math'; import { INITIALIZER_TYPE_LIFE as type } from './types'; /** * Sets the life property on initialized particles. * */ export default class Life extends Initializer { /** * Constructs a Life property instance. * * @param {number} min - The minimum life * @param {number} max - The maximum life * @param {boolean} [center] - Determines whether to average the life value * @param {boolean} [isEnabled=true] - Determines if the initializer should be enabled or not * @return void */ constructor(min, max, center, isEnabled = true) { super(type, isEnabled); /** * @desc The life span of the particle. * @type {Span} */ this.lifePan = createSpan(min, max, center); } /** * Sets the particle's initial life. * * @param {Particle} particle - the particle to initialize the property on * @return void */ initialize(particle) { if (this.lifePan.a == Infinity || this.lifePan.a == 'infi') { particle.life = Infinity; } else { particle.life = this.lifePan.getValue(); } } /** * Creates a Life initializer from JSON. * * @param {object} json - The JSON to construct the instance from. * @param {number} json.min - The minimum life time * @param {number} json.max - The maximum life time * @param {number} json.center - The center of the life time * @param {boolean} [json.isEnabled=true] - Determines if the initializer should be enabled or not * @return {Life} */ static fromJSON(json) { const { min, max, center = false, isEnabled = true } = json; return new Life(min, max, center, isEnabled); } } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9pbml0aWFsaXplci9MaWZlLmpzIl0sIm5hbWVzIjpbIkluaXRpYWxpemVyIiwiY3JlYXRlU3BhbiIsIklOSVRJQUxJWkVSX1RZUEVfTElGRSIsInR5cGUiLCJMaWZlIiwiY29uc3RydWN0b3IiLCJtaW4iLCJtYXgiLCJjZW50ZXIiLCJpc0VuYWJsZWQiLCJsaWZlUGFuIiwiaW5pdGlhbGl6ZSIsInBhcnRpY2xlIiwiYSIsIkluZmluaXR5IiwibGlmZSIsImdldFZhbHVlIiwiZnJvbUpTT04iLCJqc29uIl0sIm1hcHBpbmdzIjoiQUFBQSxPQUFPQSxXQUFQLE1BQXdCLGVBQXhCO0FBQ0EsU0FBU0MsVUFBVCxRQUEyQixTQUEzQjtBQUNBLFNBQVNDLHFCQUFxQixJQUFJQyxJQUFsQyxRQUE4QyxTQUE5QztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUNBLGVBQWUsTUFBTUMsSUFBTixTQUFtQkosV0FBbkIsQ0FBK0I7QUFDNUM7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0VLLEVBQUFBLFdBQVcsQ0FBQ0MsR0FBRCxFQUFNQyxHQUFOLEVBQVdDLE1BQVgsRUFBbUJDLFNBQVMsR0FBRyxJQUEvQixFQUFxQztBQUM5QyxVQUFNTixJQUFOLEVBQVlNLFNBQVo7QUFFQTtBQUNKO0FBQ0E7QUFDQTs7QUFDSSxTQUFLQyxPQUFMLEdBQWVULFVBQVUsQ0FBQ0ssR0FBRCxFQUFNQyxHQUFOLEVBQVdDLE1BQVgsQ0FBekI7QUFDRDtBQUVEO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQ0VHLEVBQUFBLFVBQVUsQ0FBQ0MsUUFBRCxFQUFXO0FBQ25CLFFBQUksS0FBS0YsT0FBTCxDQUFhRyxDQUFiLElBQWtCQyxRQUFsQixJQUE4QixLQUFLSixPQUFMLENBQWFHLENBQWIsSUFBa0IsTUFBcEQsRUFBNEQ7QUFDMURELE1BQUFBLFFBQVEsQ0FBQ0csSUFBVCxHQUFnQkQsUUFBaEI7QUFDRCxLQUZELE1BRU87QUFDTEYsTUFBQUEsUUFBUSxDQUFDRyxJQUFULEdBQWdCLEtBQUtMLE9BQUwsQ0FBYU0sUUFBYixFQUFoQjtBQUNEO0FBQ0Y7QUFFRDtBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQ2lCLFNBQVJDLFFBQVEsQ0FBQ0MsSUFBRCxFQUFPO0FBQ3BCLFVBQU07QUFBRVosTUFBQUEsR0FBRjtBQUFPQyxNQUFBQSxHQUFQO0FBQVlDLE1BQUFBLE1BQU0sR0FBRyxLQUFyQjtBQUE0QkMsTUFBQUEsU0FBUyxHQUFHO0FBQXhDLFFBQWlEUyxJQUF2RDtBQUVBLFdBQU8sSUFBSWQsSUFBSixDQUFTRSxHQUFULEVBQWNDLEdBQWQsRUFBbUJDLE1BQW5CLEVBQTJCQyxTQUEzQixDQUFQO0FBQ0Q7O0FBaEQyQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBJbml0aWFsaXplciBmcm9tICcuL0luaXRpYWxpemVyJztcbmltcG9ydCB7IGNyZWF0ZVNwYW4gfSBmcm9tICcuLi9tYXRoJztcbmltcG9ydCB7IElOSVRJQUxJWkVSX1RZUEVfTElGRSBhcyB0eXBlIH0gZnJvbSAnLi90eXBlcyc7XG5cbi8qKlxuICogU2V0cyB0aGUgbGlmZSBwcm9wZXJ0eSBvbiBpbml0aWFsaXplZCBwYXJ0aWNsZXMuXG4gKlxuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBMaWZlIGV4dGVuZHMgSW5pdGlhbGl6ZXIge1xuICAvKipcbiAgICogQ29uc3RydWN0cyBhIExpZmUgcHJvcGVydHkgaW5zdGFuY2UuXG4gICAqXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBtaW4gLSBUaGUgbWluaW11bSBsaWZlXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBtYXggLSBUaGUgbWF4aW11bSBsaWZlXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gW2NlbnRlcl0gLSBEZXRlcm1pbmVzIHdoZXRoZXIgdG8gYXZlcmFnZSB0aGUgbGlmZSB2YWx1ZVxuICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtpc0VuYWJsZWQ9dHJ1ZV0gLSBEZXRlcm1pbmVzIGlmIHRoZSBpbml0aWFsaXplciBzaG91bGQgYmUgZW5hYmxlZCBvciBub3RcbiAgICogQHJldHVybiB2b2lkXG4gICAqL1xuICBjb25zdHJ1Y3RvcihtaW4sIG1heCwgY2VudGVyLCBpc0VuYWJsZWQgPSB0cnVlKSB7XG4gICAgc3VwZXIodHlwZSwgaXNFbmFibGVkKTtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjIFRoZSBsaWZlIHNwYW4gb2YgdGhlIHBhcnRpY2xlLlxuICAgICAqIEB0eXBlIHtTcGFufVxuICAgICAqL1xuICAgIHRoaXMubGlmZVBhbiA9IGNyZWF0ZVNwYW4obWluLCBtYXgsIGNlbnRlcik7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgcGFydGljbGUncyBpbml0aWFsIGxpZmUuXG4gICAqXG4gICAqIEBwYXJhbSB7UGFydGljbGV9IHBhcnRpY2xlIC0gdGhlIHBhcnRpY2xlIHRvIGluaXRpYWxpemUgdGhlIHByb3BlcnR5IG9uXG4gICAqIEByZXR1cm4gdm9pZFxuICAgKi9cbiAgaW5pdGlhbGl6ZShwYXJ0aWNsZSkge1xuICAgIGlmICh0aGlzLmxpZmVQYW4uYSA9PSBJbmZpbml0eSB8fCB0aGlzLmxpZmVQYW4uYSA9PSAnaW5maScpIHtcbiAgICAgIHBhcnRpY2xlLmxpZmUgPSBJbmZpbml0eTtcbiAgICB9IGVsc2Uge1xuICAgICAgcGFydGljbGUubGlmZSA9IHRoaXMubGlmZVBhbi5nZXRWYWx1ZSgpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgTGlmZSBpbml0aWFsaXplciBmcm9tIEpTT04uXG4gICAqXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBqc29uIC0gVGhlIEpTT04gdG8gY29uc3RydWN0IHRoZSBpbnN0YW5jZSBmcm9tLlxuICAgKiBAcGFyYW0ge251bWJlcn0ganNvbi5taW4gLSBUaGUgbWluaW11bSBsaWZlIHRpbWVcbiAgICogQHBhcmFtIHtudW1iZXJ9IGpzb24ubWF4IC0gVGhlIG1heGltdW0gbGlmZSB0aW1lXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBqc29uLmNlbnRlciAtIFRoZSBjZW50ZXIgb2YgdGhlIGxpZmUgdGltZVxuICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtqc29uLmlzRW5hYmxlZD10cnVlXSAtIERldGVybWluZXMgaWYgdGhlIGluaXRpYWxpemVyIHNob3VsZCBiZSBlbmFibGVkIG9yIG5vdFxuICAgKiBAcmV0dXJuIHtMaWZlfVxuICAgKi9cbiAgc3RhdGljIGZyb21KU09OKGpzb24pIHtcbiAgICBjb25zdCB7IG1pbiwgbWF4LCBjZW50ZXIgPSBmYWxzZSwgaXNFbmFibGVkID0gdHJ1ZSB9ID0ganNvbjtcblxuICAgIHJldHVybiBuZXcgTGlmZShtaW4sIG1heCwgY2VudGVyLCBpc0VuYWJsZWQpO1xuICB9XG59XG4iXX0= ================================================ FILE: packages/sdk/lib/core/libs/three-nebula/initializer/Mass.js ================================================ import Initializer from './Initializer'; import { createSpan } from '../math'; import { INITIALIZER_TYPE_MASS as type } from './types'; /** * Sets the mass property on initialized particles. * */ export default class Mass extends Initializer { /** * Constructs a Mass initializer instance. * * @param {number} min - The minumum mass for the particle * @param {number} max - The maximum mass for the particle * @param {boolean} [center] - Determines whether to average the mass value * @return void */ constructor(min, max, center = false, isEnabled = true) { super(type, isEnabled); /** * @desc The mass span which is used to set the particle mass value. * @type {Span} */ this.massPan = createSpan(min, max, center); } /** * Sets the particle's initial mass. * * @param {Particle} particle - the particle to initialize the property on * @return void */ initialize(particle) { particle.mass = this.massPan.getValue(); } /** * Creates a Mass initializer from JSON. * * @param {object} json - The JSON to construct the instance from. * @property {number} json.min - The minimum mass * @property {number} json.max - The maximum mass * @property {number} json.center - The center of the mass * @return {Mass} */ static fromJSON(json) { const { min, max, center = false, isEnabled = true } = json; return new Mass(min, max, center, isEnabled); } } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9pbml0aWFsaXplci9NYXNzLmpzIl0sIm5hbWVzIjpbIkluaXRpYWxpemVyIiwiY3JlYXRlU3BhbiIsIklOSVRJQUxJWkVSX1RZUEVfTUFTUyIsInR5cGUiLCJNYXNzIiwiY29uc3RydWN0b3IiLCJtaW4iLCJtYXgiLCJjZW50ZXIiLCJpc0VuYWJsZWQiLCJtYXNzUGFuIiwiaW5pdGlhbGl6ZSIsInBhcnRpY2xlIiwibWFzcyIsImdldFZhbHVlIiwiZnJvbUpTT04iLCJqc29uIl0sIm1hcHBpbmdzIjoiQUFBQSxPQUFPQSxXQUFQLE1BQXdCLGVBQXhCO0FBQ0EsU0FBU0MsVUFBVCxRQUEyQixTQUEzQjtBQUNBLFNBQVNDLHFCQUFxQixJQUFJQyxJQUFsQyxRQUE4QyxTQUE5QztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUNBLGVBQWUsTUFBTUMsSUFBTixTQUFtQkosV0FBbkIsQ0FBK0I7QUFDNUM7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNFSyxFQUFBQSxXQUFXLENBQUNDLEdBQUQsRUFBTUMsR0FBTixFQUFXQyxNQUFNLEdBQUcsS0FBcEIsRUFBMkJDLFNBQVMsR0FBRyxJQUF2QyxFQUE2QztBQUN0RCxVQUFNTixJQUFOLEVBQVlNLFNBQVo7QUFFQTtBQUNKO0FBQ0E7QUFDQTs7QUFDSSxTQUFLQyxPQUFMLEdBQWVULFVBQVUsQ0FBQ0ssR0FBRCxFQUFNQyxHQUFOLEVBQVdDLE1BQVgsQ0FBekI7QUFDRDtBQUVEO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQ0VHLEVBQUFBLFVBQVUsQ0FBQ0MsUUFBRCxFQUFXO0FBQ25CQSxJQUFBQSxRQUFRLENBQUNDLElBQVQsR0FBZ0IsS0FBS0gsT0FBTCxDQUFhSSxRQUFiLEVBQWhCO0FBQ0Q7QUFFRDtBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUNpQixTQUFSQyxRQUFRLENBQUNDLElBQUQsRUFBTztBQUNwQixVQUFNO0FBQUVWLE1BQUFBLEdBQUY7QUFBT0MsTUFBQUEsR0FBUDtBQUFZQyxNQUFBQSxNQUFNLEdBQUcsS0FBckI7QUFBNEJDLE1BQUFBLFNBQVMsR0FBRztBQUF4QyxRQUFpRE8sSUFBdkQ7QUFFQSxXQUFPLElBQUlaLElBQUosQ0FBU0UsR0FBVCxFQUFjQyxHQUFkLEVBQW1CQyxNQUFuQixFQUEyQkMsU0FBM0IsQ0FBUDtBQUNEOztBQTFDMkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgSW5pdGlhbGl6ZXIgZnJvbSAnLi9Jbml0aWFsaXplcic7XG5pbXBvcnQgeyBjcmVhdGVTcGFuIH0gZnJvbSAnLi4vbWF0aCc7XG5pbXBvcnQgeyBJTklUSUFMSVpFUl9UWVBFX01BU1MgYXMgdHlwZSB9IGZyb20gJy4vdHlwZXMnO1xuXG4vKipcbiAqIFNldHMgdGhlIG1hc3MgcHJvcGVydHkgb24gaW5pdGlhbGl6ZWQgcGFydGljbGVzLlxuICpcbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgTWFzcyBleHRlbmRzIEluaXRpYWxpemVyIHtcbiAgLyoqXG4gICAqIENvbnN0cnVjdHMgYSBNYXNzIGluaXRpYWxpemVyIGluc3RhbmNlLlxuICAgKlxuICAgKiBAcGFyYW0ge251bWJlcn0gbWluIC0gVGhlIG1pbnVtdW0gbWFzcyBmb3IgdGhlIHBhcnRpY2xlXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBtYXggLSBUaGUgbWF4aW11bSBtYXNzIGZvciB0aGUgcGFydGljbGVcbiAgICogQHBhcmFtIHtib29sZWFufSBbY2VudGVyXSAtIERldGVybWluZXMgd2hldGhlciB0byBhdmVyYWdlIHRoZSBtYXNzIHZhbHVlXG4gICAqIEByZXR1cm4gdm9pZFxuICAgKi9cbiAgY29uc3RydWN0b3IobWluLCBtYXgsIGNlbnRlciA9IGZhbHNlLCBpc0VuYWJsZWQgPSB0cnVlKSB7XG4gICAgc3VwZXIodHlwZSwgaXNFbmFibGVkKTtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjIFRoZSBtYXNzIHNwYW4gd2hpY2ggaXMgdXNlZCB0byBzZXQgdGhlIHBhcnRpY2xlIG1hc3MgdmFsdWUuXG4gICAgICogQHR5cGUge1NwYW59XG4gICAgICovXG4gICAgdGhpcy5tYXNzUGFuID0gY3JlYXRlU3BhbihtaW4sIG1heCwgY2VudGVyKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBwYXJ0aWNsZSdzIGluaXRpYWwgbWFzcy5cbiAgICpcbiAgICogQHBhcmFtIHtQYXJ0aWNsZX0gcGFydGljbGUgLSB0aGUgcGFydGljbGUgdG8gaW5pdGlhbGl6ZSB0aGUgcHJvcGVydHkgb25cbiAgICogQHJldHVybiB2b2lkXG4gICAqL1xuICBpbml0aWFsaXplKHBhcnRpY2xlKSB7XG4gICAgcGFydGljbGUubWFzcyA9IHRoaXMubWFzc1Bhbi5nZXRWYWx1ZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBNYXNzIGluaXRpYWxpemVyIGZyb20gSlNPTi5cbiAgICpcbiAgICogQHBhcmFtIHtvYmplY3R9IGpzb24gLSBUaGUgSlNPTiB0byBjb25zdHJ1Y3QgdGhlIGluc3RhbmNlIGZyb20uXG4gICAqIEBwcm9wZXJ0eSB7bnVtYmVyfSBqc29uLm1pbiAtIFRoZSBtaW5pbXVtIG1hc3NcbiAgICogQHByb3BlcnR5IHtudW1iZXJ9IGpzb24ubWF4IC0gVGhlIG1heGltdW0gbWFzc1xuICAgKiBAcHJvcGVydHkge251bWJlcn0ganNvbi5jZW50ZXIgLSBUaGUgY2VudGVyIG9mIHRoZSBtYXNzXG4gICAqIEByZXR1cm4ge01hc3N9XG4gICAqL1xuICBzdGF0aWMgZnJvbUpTT04oanNvbikge1xuICAgIGNvbnN0IHsgbWluLCBtYXgsIGNlbnRlciA9IGZhbHNlLCBpc0VuYWJsZWQgPSB0cnVlIH0gPSBqc29uO1xuXG4gICAgcmV0dXJuIG5ldyBNYXNzKG1pbiwgbWF4LCBjZW50ZXIsIGlzRW5hYmxlZCk7XG4gIH1cbn1cbiJdfQ== ================================================ FILE: packages/sdk/lib/core/libs/three-nebula/initializer/Position.js ================================================ import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties"; const _excluded = ["zoneType"]; import * as Zone from '../zone'; import Initializer from './Initializer'; import { SUPPORTED_JSON_ZONE_TYPES } from '../core/constants'; import { INITIALIZER_TYPE_POSITION as type } from './types'; /** * Sets the starting position property for initialized particles. * This is derived from a zone randomly chosen from those supplied to the constructor. * */ export default class Position extends Initializer { /** * Constructs a Position initializer instance. * * @param {Zone|array} * @return void */ constructor() { super(type); this.reset.apply(this, arguments); } /** * Resets the initializer properties. * Clears all previously set zones and resets the zones according to args passed. * * @param {Zone|array} * @return void */ reset() { if (!this.zones) { this.zones = []; } else { this.zones.length = 0; } /** * @desc The zones to use as bounds for calculating the particle's starting position. * @type {array} */ this.zones = this.zones.concat(Array.prototype.slice.call(arguments)); } /** * Adds a zone or zones to this.zones. * * @param {Zone|array} * @return void */ addZone() { this.zones = this.zones.concat(Array.prototype.slice.call(arguments)); } /** * Creates a Position initializer from JSON. * * @param {object} json - The JSON to construct the instance from. * @param {string} json.zoneType - The type of zone to use for initial position * @return {Position} */ static fromJSON(json) { const { zoneType } = json, params = _objectWithoutProperties(json, _excluded); if (!SUPPORTED_JSON_ZONE_TYPES.includes(zoneType)) { throw new Error(`The zone type ${zoneType} is invalid or not yet supported`); } return new Position(new Zone[zoneType](...Object.values(params))); } } /** * Sets the particle's initial position. * * @param {Particle} particle - the particle to initialize the property on * @return void */ Position.prototype.initialize = function () { let zone; return function (target) { zone = this.zones[Math.random() * this.zones.length >> 0]; zone.getPosition(); target.position.x = zone.vector.x; target.position.y = zone.vector.y; target.position.z = zone.vector.z; }; }(); //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9pbml0aWFsaXplci9Qb3NpdGlvbi5qcyJdLCJuYW1lcyI6WyJab25lIiwiSW5pdGlhbGl6ZXIiLCJTVVBQT1JURURfSlNPTl9aT05FX1RZUEVTIiwiSU5JVElBTElaRVJfVFlQRV9QT1NJVElPTiIsInR5cGUiLCJQb3NpdGlvbiIsImNvbnN0cnVjdG9yIiwicmVzZXQiLCJhcHBseSIsImFyZ3VtZW50cyIsInpvbmVzIiwibGVuZ3RoIiwiY29uY2F0IiwiQXJyYXkiLCJwcm90b3R5cGUiLCJzbGljZSIsImNhbGwiLCJhZGRab25lIiwiZnJvbUpTT04iLCJqc29uIiwiem9uZVR5cGUiLCJwYXJhbXMiLCJpbmNsdWRlcyIsIkVycm9yIiwiT2JqZWN0IiwidmFsdWVzIiwiaW5pdGlhbGl6ZSIsInpvbmUiLCJ0YXJnZXQiLCJNYXRoIiwicmFuZG9tIiwiZ2V0UG9zaXRpb24iLCJwb3NpdGlvbiIsIngiLCJ2ZWN0b3IiLCJ5IiwieiJdLCJtYXBwaW5ncyI6Ijs7QUFBQSxPQUFPLEtBQUtBLElBQVosTUFBc0IsU0FBdEI7QUFFQSxPQUFPQyxXQUFQLE1BQXdCLGVBQXhCO0FBQ0EsU0FBU0MseUJBQVQsUUFBMEMsbUJBQTFDO0FBQ0EsU0FBU0MseUJBQXlCLElBQUlDLElBQXRDLFFBQWtELFNBQWxEO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFDQSxlQUFlLE1BQU1DLFFBQU4sU0FBdUJKLFdBQXZCLENBQW1DO0FBQ2hEO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNFSyxFQUFBQSxXQUFXLEdBQUc7QUFDWixVQUFNRixJQUFOO0FBRUEsU0FBS0csS0FBTCxDQUFXQyxLQUFYLENBQWlCLElBQWpCLEVBQXVCQyxTQUF2QjtBQUNEO0FBRUQ7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUNFRixFQUFBQSxLQUFLLEdBQUc7QUFDTixRQUFJLENBQUMsS0FBS0csS0FBVixFQUFpQjtBQUNmLFdBQUtBLEtBQUwsR0FBYSxFQUFiO0FBQ0QsS0FGRCxNQUVPO0FBQ0wsV0FBS0EsS0FBTCxDQUFXQyxNQUFYLEdBQW9CLENBQXBCO0FBQ0Q7QUFFRDtBQUNKO0FBQ0E7QUFDQTs7O0FBQ0ksU0FBS0QsS0FBTCxHQUFhLEtBQUtBLEtBQUwsQ0FBV0UsTUFBWCxDQUFrQkMsS0FBSyxDQUFDQyxTQUFOLENBQWdCQyxLQUFoQixDQUFzQkMsSUFBdEIsQ0FBMkJQLFNBQTNCLENBQWxCLENBQWI7QUFDRDtBQUVEO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQ0VRLEVBQUFBLE9BQU8sR0FBRztBQUNSLFNBQUtQLEtBQUwsR0FBYSxLQUFLQSxLQUFMLENBQVdFLE1BQVgsQ0FBa0JDLEtBQUssQ0FBQ0MsU0FBTixDQUFnQkMsS0FBaEIsQ0FBc0JDLElBQXRCLENBQTJCUCxTQUEzQixDQUFsQixDQUFiO0FBQ0Q7QUFFRDtBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQ2lCLFNBQVJTLFFBQVEsQ0FBQ0MsSUFBRCxFQUFPO0FBQ3BCLFVBQU07QUFBRUMsTUFBQUE7QUFBRixRQUEwQkQsSUFBaEM7QUFBQSxVQUFxQkUsTUFBckIsNEJBQWdDRixJQUFoQzs7QUFFQSxRQUFJLENBQUNqQix5QkFBeUIsQ0FBQ29CLFFBQTFCLENBQW1DRixRQUFuQyxDQUFMLEVBQW1EO0FBQ2pELFlBQU0sSUFBSUcsS0FBSixDQUNILGlCQUFnQkgsUUFBUyxrQ0FEdEIsQ0FBTjtBQUdEOztBQUVELFdBQU8sSUFBSWYsUUFBSixDQUFhLElBQUlMLElBQUksQ0FBQ29CLFFBQUQsQ0FBUixDQUFtQixHQUFHSSxNQUFNLENBQUNDLE1BQVAsQ0FBY0osTUFBZCxDQUF0QixDQUFiLENBQVA7QUFDRDs7QUE3RCtDO0FBZ0VsRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBQ0FoQixRQUFRLENBQUNTLFNBQVQsQ0FBbUJZLFVBQW5CLEdBQWlDLFlBQVc7QUFDMUMsTUFBSUMsSUFBSjtBQUVBLFNBQU8sVUFBU0MsTUFBVCxFQUFpQjtBQUN0QkQsSUFBQUEsSUFBSSxHQUFHLEtBQUtqQixLQUFMLENBQVltQixJQUFJLENBQUNDLE1BQUwsS0FBZ0IsS0FBS3BCLEtBQUwsQ0FBV0MsTUFBNUIsSUFBdUMsQ0FBbEQsQ0FBUDtBQUVBZ0IsSUFBQUEsSUFBSSxDQUFDSSxXQUFMO0FBRUFILElBQUFBLE1BQU0sQ0FBQ0ksUUFBUCxDQUFnQkMsQ0FBaEIsR0FBb0JOLElBQUksQ0FBQ08sTUFBTCxDQUFZRCxDQUFoQztBQUNBTCxJQUFBQSxNQUFNLENBQUNJLFFBQVAsQ0FBZ0JHLENBQWhCLEdBQW9CUixJQUFJLENBQUNPLE1BQUwsQ0FBWUMsQ0FBaEM7QUFDQVAsSUFBQUEsTUFBTSxDQUFDSSxRQUFQLENBQWdCSSxDQUFoQixHQUFvQlQsSUFBSSxDQUFDTyxNQUFMLENBQVlFLENBQWhDO0FBQ0QsR0FSRDtBQVNELENBWitCLEVBQWhDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgWm9uZSBmcm9tICcuLi96b25lJztcblxuaW1wb3J0IEluaXRpYWxpemVyIGZyb20gJy4vSW5pdGlhbGl6ZXInO1xuaW1wb3J0IHsgU1VQUE9SVEVEX0pTT05fWk9ORV9UWVBFUyB9IGZyb20gJy4uL2NvcmUvY29uc3RhbnRzJztcbmltcG9ydCB7IElOSVRJQUxJWkVSX1RZUEVfUE9TSVRJT04gYXMgdHlwZSB9IGZyb20gJy4vdHlwZXMnO1xuXG4vKipcbiAqIFNldHMgdGhlIHN0YXJ0aW5nIHBvc2l0aW9uIHByb3BlcnR5IGZvciBpbml0aWFsaXplZCBwYXJ0aWNsZXMuXG4gKiBUaGlzIGlzIGRlcml2ZWQgZnJvbSBhIHpvbmUgcmFuZG9tbHkgY2hvc2VuIGZyb20gdGhvc2Ugc3VwcGxpZWQgdG8gdGhlIGNvbnN0cnVjdG9yLlxuICpcbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgUG9zaXRpb24gZXh0ZW5kcyBJbml0aWFsaXplciB7XG4gIC8qKlxuICAgKiBDb25zdHJ1Y3RzIGEgUG9zaXRpb24gaW5pdGlhbGl6ZXIgaW5zdGFuY2UuXG4gICAqXG4gICAqIEBwYXJhbSB7Wm9uZXxhcnJheTxab25lPn1cbiAgICogQHJldHVybiB2b2lkXG4gICAqL1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcih0eXBlKTtcblxuICAgIHRoaXMucmVzZXQuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXNldHMgdGhlIGluaXRpYWxpemVyIHByb3BlcnRpZXMuXG4gICAqIENsZWFycyBhbGwgcHJldmlvdXNseSBzZXQgem9uZXMgYW5kIHJlc2V0cyB0aGUgem9uZXMgYWNjb3JkaW5nIHRvIGFyZ3MgcGFzc2VkLlxuICAgKlxuICAgKiBAcGFyYW0ge1pvbmV8YXJyYXk8Wm9uZT59XG4gICAqIEByZXR1cm4gdm9pZFxuICAgKi9cbiAgcmVzZXQoKSB7XG4gICAgaWYgKCF0aGlzLnpvbmVzKSB7XG4gICAgICB0aGlzLnpvbmVzID0gW107XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuem9uZXMubGVuZ3RoID0gMDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAZGVzYyBUaGUgem9uZXMgdG8gdXNlIGFzIGJvdW5kcyBmb3IgY2FsY3VsYXRpbmcgdGhlIHBhcnRpY2xlJ3Mgc3RhcnRpbmcgcG9zaXRpb24uXG4gICAgICogQHR5cGUge2FycmF5PFpvbmU+fVxuICAgICAqL1xuICAgIHRoaXMuem9uZXMgPSB0aGlzLnpvbmVzLmNvbmNhdChBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGEgem9uZSBvciB6b25lcyB0byB0aGlzLnpvbmVzLlxuICAgKlxuICAgKiBAcGFyYW0ge1pvbmV8YXJyYXk8Wm9uZT59XG4gICAqIEByZXR1cm4gdm9pZFxuICAgKi9cbiAgYWRkWm9uZSgpIHtcbiAgICB0aGlzLnpvbmVzID0gdGhpcy56b25lcy5jb25jYXQoQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzKSk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIFBvc2l0aW9uIGluaXRpYWxpemVyIGZyb20gSlNPTi5cbiAgICpcbiAgICogQHBhcmFtIHtvYmplY3R9IGpzb24gLSBUaGUgSlNPTiB0byBjb25zdHJ1Y3QgdGhlIGluc3RhbmNlIGZyb20uXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBqc29uLnpvbmVUeXBlIC0gVGhlIHR5cGUgb2Ygem9uZSB0byB1c2UgZm9yIGluaXRpYWwgcG9zaXRpb25cbiAgICogQHJldHVybiB7UG9zaXRpb259XG4gICAqL1xuICBzdGF0aWMgZnJvbUpTT04oanNvbikge1xuICAgIGNvbnN0IHsgem9uZVR5cGUsIC4uLnBhcmFtcyB9ID0ganNvbjtcblxuICAgIGlmICghU1VQUE9SVEVEX0pTT05fWk9ORV9UWVBFUy5pbmNsdWRlcyh6b25lVHlwZSkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYFRoZSB6b25lIHR5cGUgJHt6b25lVHlwZX0gaXMgaW52YWxpZCBvciBub3QgeWV0IHN1cHBvcnRlZGBcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5ldyBQb3NpdGlvbihuZXcgWm9uZVt6b25lVHlwZV0oLi4uT2JqZWN0LnZhbHVlcyhwYXJhbXMpKSk7XG4gIH1cbn1cblxuLyoqXG4gKiBTZXRzIHRoZSBwYXJ0aWNsZSdzIGluaXRpYWwgcG9zaXRpb24uXG4gKlxuICogQHBhcmFtIHtQYXJ0aWNsZX0gcGFydGljbGUgLSB0aGUgcGFydGljbGUgdG8gaW5pdGlhbGl6ZSB0aGUgcHJvcGVydHkgb25cbiAqIEByZXR1cm4gdm9pZFxuICovXG5Qb3NpdGlvbi5wcm90b3R5cGUuaW5pdGlhbGl6ZSA9IChmdW5jdGlvbigpIHtcbiAgbGV0IHpvbmU7XG5cbiAgcmV0dXJuIGZ1bmN0aW9uKHRhcmdldCkge1xuICAgIHpvbmUgPSB0aGlzLnpvbmVzWyhNYXRoLnJhbmRvbSgpICogdGhpcy56b25lcy5sZW5ndGgpID4+IDBdO1xuXG4gICAgem9uZS5nZXRQb3NpdGlvbigpO1xuXG4gICAgdGFyZ2V0LnBvc2l0aW9uLnggPSB6b25lLnZlY3Rvci54O1xuICAgIHRhcmdldC5wb3NpdGlvbi55ID0gem9uZS52ZWN0b3IueTtcbiAgICB0YXJnZXQucG9zaXRpb24ueiA9IHpvbmUudmVjdG9yLno7XG4gIH07XG59KSgpO1xuIl19 ================================================ FILE: packages/sdk/lib/core/libs/three-nebula/initializer/Radius.js ================================================ import Initializer from './Initializer'; import { createSpan } from '../math'; import { INITIALIZER_TYPE_RADIUS as type } from './types'; /** * Sets the radius property on initialized particles. * */ export default class Radius extends Initializer { /** * Constructs a Radius initializer instance. * * @param {number} width - The width of the particle radius * @param {number} height - The height of the particle radius * @param {boolean} [center=false] - Determines whether to average the radius value * @return void */ constructor(width, height, center = false, isEnabled = true) { super(type, isEnabled); /** * @desc The radius span which is used to set the particle radius value. * @type {Span} */ this.radius = createSpan(width, height, center); } /** * Resets the initializer properties. * Clears all previously set zones and resets the zones according to args passed. * * @param {number} width - The width of the particle radius * @param {number} height - The height of the particle radius * @param {boolean} [center=false] - Determines whether to average the radius value * @return void */ reset(width, height, center = false) { this.radius = createSpan(width, height, center); } /** * Sets the particle's initial radius. * * @param {Particle} particle - the particle to initialize the property on * @return void */ initialize(particle) { particle.radius = this.radius.getValue(); particle.transform.oldRadius = particle.radius; } /** * Creates a Radius initializer from JSON. * * @param {object} json - The JSON to construct the instance from. * @property {number} json.width - The width of the particle radius * @property {number} json.height - The height of the particle radius * @property {number} json.center - The center of the particle radius * @return {Radius} */ static fromJSON(json) { const { width, height, center = false, isEnabled = true } = json; return new Radius(width, height, center, isEnabled); } } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9pbml0aWFsaXplci9SYWRpdXMuanMiXSwibmFtZXMiOlsiSW5pdGlhbGl6ZXIiLCJjcmVhdGVTcGFuIiwiSU5JVElBTElaRVJfVFlQRV9SQURJVVMiLCJ0eXBlIiwiUmFkaXVzIiwiY29uc3RydWN0b3IiLCJ3aWR0aCIsImhlaWdodCIsImNlbnRlciIsImlzRW5hYmxlZCIsInJhZGl1cyIsInJlc2V0IiwiaW5pdGlhbGl6ZSIsInBhcnRpY2xlIiwiZ2V0VmFsdWUiLCJ0cmFuc2Zvcm0iLCJvbGRSYWRpdXMiLCJmcm9tSlNPTiIsImpzb24iXSwibWFwcGluZ3MiOiJBQUFBLE9BQU9BLFdBQVAsTUFBd0IsZUFBeEI7QUFDQSxTQUFTQyxVQUFULFFBQTJCLFNBQTNCO0FBQ0EsU0FBU0MsdUJBQXVCLElBQUlDLElBQXBDLFFBQWdELFNBQWhEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBQ0EsZUFBZSxNQUFNQyxNQUFOLFNBQXFCSixXQUFyQixDQUFpQztBQUM5QztBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0VLLEVBQUFBLFdBQVcsQ0FBQ0MsS0FBRCxFQUFRQyxNQUFSLEVBQWdCQyxNQUFNLEdBQUcsS0FBekIsRUFBZ0NDLFNBQVMsR0FBRyxJQUE1QyxFQUFrRDtBQUMzRCxVQUFNTixJQUFOLEVBQVlNLFNBQVo7QUFFQTtBQUNKO0FBQ0E7QUFDQTs7QUFDSSxTQUFLQyxNQUFMLEdBQWNULFVBQVUsQ0FBQ0ssS0FBRCxFQUFRQyxNQUFSLEVBQWdCQyxNQUFoQixDQUF4QjtBQUNEO0FBRUQ7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFDRUcsRUFBQUEsS0FBSyxDQUFDTCxLQUFELEVBQVFDLE1BQVIsRUFBZ0JDLE1BQU0sR0FBRyxLQUF6QixFQUFnQztBQUNuQyxTQUFLRSxNQUFMLEdBQWNULFVBQVUsQ0FBQ0ssS0FBRCxFQUFRQyxNQUFSLEVBQWdCQyxNQUFoQixDQUF4QjtBQUNEO0FBRUQ7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFDRUksRUFBQUEsVUFBVSxDQUFDQyxRQUFELEVBQVc7QUFDbkJBLElBQUFBLFFBQVEsQ0FBQ0gsTUFBVCxHQUFrQixLQUFLQSxNQUFMLENBQVlJLFFBQVosRUFBbEI7QUFDQUQsSUFBQUEsUUFBUSxDQUFDRSxTQUFULENBQW1CQyxTQUFuQixHQUErQkgsUUFBUSxDQUFDSCxNQUF4QztBQUNEO0FBRUQ7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFDaUIsU0FBUk8sUUFBUSxDQUFDQyxJQUFELEVBQU87QUFDcEIsVUFBTTtBQUFFWixNQUFBQSxLQUFGO0FBQVNDLE1BQUFBLE1BQVQ7QUFBaUJDLE1BQUFBLE1BQU0sR0FBRyxLQUExQjtBQUFpQ0MsTUFBQUEsU0FBUyxHQUFHO0FBQTdDLFFBQXNEUyxJQUE1RDtBQUVBLFdBQU8sSUFBSWQsTUFBSixDQUFXRSxLQUFYLEVBQWtCQyxNQUFsQixFQUEwQkMsTUFBMUIsRUFBa0NDLFNBQWxDLENBQVA7QUFDRDs7QUF4RDZDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEluaXRpYWxpemVyIGZyb20gJy4vSW5pdGlhbGl6ZXInO1xuaW1wb3J0IHsgY3JlYXRlU3BhbiB9IGZyb20gJy4uL21hdGgnO1xuaW1wb3J0IHsgSU5JVElBTElaRVJfVFlQRV9SQURJVVMgYXMgdHlwZSB9IGZyb20gJy4vdHlwZXMnO1xuLyoqXG4gKiBTZXRzIHRoZSByYWRpdXMgcHJvcGVydHkgb24gaW5pdGlhbGl6ZWQgcGFydGljbGVzLlxuICpcbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgUmFkaXVzIGV4dGVuZHMgSW5pdGlhbGl6ZXIge1xuICAvKipcbiAgICogQ29uc3RydWN0cyBhIFJhZGl1cyBpbml0aWFsaXplciBpbnN0YW5jZS5cbiAgICpcbiAgICogQHBhcmFtIHtudW1iZXJ9IHdpZHRoIC0gVGhlIHdpZHRoIG9mIHRoZSBwYXJ0aWNsZSByYWRpdXNcbiAgICogQHBhcmFtIHtudW1iZXJ9IGhlaWdodCAtIFRoZSBoZWlnaHQgb2YgdGhlIHBhcnRpY2xlIHJhZGl1c1xuICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtjZW50ZXI9ZmFsc2VdIC0gRGV0ZXJtaW5lcyB3aGV0aGVyIHRvIGF2ZXJhZ2UgdGhlIHJhZGl1cyB2YWx1ZVxuICAgKiBAcmV0dXJuIHZvaWRcbiAgICovXG4gIGNvbnN0cnVjdG9yKHdpZHRoLCBoZWlnaHQsIGNlbnRlciA9IGZhbHNlLCBpc0VuYWJsZWQgPSB0cnVlKSB7XG4gICAgc3VwZXIodHlwZSwgaXNFbmFibGVkKTtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjIFRoZSByYWRpdXMgc3BhbiB3aGljaCBpcyB1c2VkIHRvIHNldCB0aGUgcGFydGljbGUgcmFkaXVzIHZhbHVlLlxuICAgICAqIEB0eXBlIHtTcGFufVxuICAgICAqL1xuICAgIHRoaXMucmFkaXVzID0gY3JlYXRlU3Bhbih3aWR0aCwgaGVpZ2h0LCBjZW50ZXIpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlc2V0cyB0aGUgaW5pdGlhbGl6ZXIgcHJvcGVydGllcy5cbiAgICogQ2xlYXJzIGFsbCBwcmV2aW91c2x5IHNldCB6b25lcyBhbmQgcmVzZXRzIHRoZSB6b25lcyBhY2NvcmRpbmcgdG8gYXJncyBwYXNzZWQuXG4gICAqXG4gICAqIEBwYXJhbSB7bnVtYmVyfSB3aWR0aCAtIFRoZSB3aWR0aCBvZiB0aGUgcGFydGljbGUgcmFkaXVzXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBoZWlnaHQgLSBUaGUgaGVpZ2h0IG9mIHRoZSBwYXJ0aWNsZSByYWRpdXNcbiAgICogQHBhcmFtIHtib29sZWFufSBbY2VudGVyPWZhbHNlXSAtIERldGVybWluZXMgd2hldGhlciB0byBhdmVyYWdlIHRoZSByYWRpdXMgdmFsdWVcbiAgICogQHJldHVybiB2b2lkXG4gICAqL1xuICByZXNldCh3aWR0aCwgaGVpZ2h0LCBjZW50ZXIgPSBmYWxzZSkge1xuICAgIHRoaXMucmFkaXVzID0gY3JlYXRlU3Bhbih3aWR0aCwgaGVpZ2h0LCBjZW50ZXIpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIHBhcnRpY2xlJ3MgaW5pdGlhbCByYWRpdXMuXG4gICAqXG4gICAqIEBwYXJhbSB7UGFydGljbGV9IHBhcnRpY2xlIC0gdGhlIHBhcnRpY2xlIHRvIGluaXRpYWxpemUgdGhlIHByb3BlcnR5IG9uXG4gICAqIEByZXR1cm4gdm9pZFxuICAgKi9cbiAgaW5pdGlhbGl6ZShwYXJ0aWNsZSkge1xuICAgIHBhcnRpY2xlLnJhZGl1cyA9IHRoaXMucmFkaXVzLmdldFZhbHVlKCk7XG4gICAgcGFydGljbGUudHJhbnNmb3JtLm9sZFJhZGl1cyA9IHBhcnRpY2xlLnJhZGl1cztcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgUmFkaXVzIGluaXRpYWxpemVyIGZyb20gSlNPTi5cbiAgICpcbiAgICogQHBhcmFtIHtvYmplY3R9IGpzb24gLSBUaGUgSlNPTiB0byBjb25zdHJ1Y3QgdGhlIGluc3RhbmNlIGZyb20uXG4gICAqIEBwcm9wZXJ0eSB7bnVtYmVyfSBqc29uLndpZHRoIC0gVGhlIHdpZHRoIG9mIHRoZSBwYXJ0aWNsZSByYWRpdXNcbiAgICogQHByb3BlcnR5IHtudW1iZXJ9IGpzb24uaGVpZ2h0IC0gVGhlIGhlaWdodCBvZiB0aGUgcGFydGljbGUgcmFkaXVzXG4gICAqIEBwcm9wZXJ0eSB7bnVtYmVyfSBqc29uLmNlbnRlciAtIFRoZSBjZW50ZXIgb2YgdGhlIHBhcnRpY2xlIHJhZGl1c1xuICAgKiBAcmV0dXJuIHtSYWRpdXN9XG4gICAqL1xuICBzdGF0aWMgZnJvbUpTT04oanNvbikge1xuICAgIGNvbnN0IHsgd2lkdGgsIGhlaWdodCwgY2VudGVyID0gZmFsc2UsIGlzRW5hYmxlZCA9IHRydWUgfSA9IGpzb247XG5cbiAgICByZXR1cm4gbmV3IFJhZGl1cyh3aWR0aCwgaGVpZ2h0LCBjZW50ZXIsIGlzRW5hYmxlZCk7XG4gIH1cbn1cbiJdfQ== ================================================ FILE: packages/sdk/lib/core/libs/three-nebula/initializer/Rate.js ================================================ import { DEFAULT_RATE_NUM_PAN, DEFAULT_RATE_TIME_PAN } from './constants'; import { Span, createSpan } from '../math'; import Initializer from './Initializer'; import { INITIALIZER_TYPE_RATE as type } from './types'; /** * Calculates the rate of particle emission. * * NOTE This doesn't need to be an initializer, it doesn't have an initialize * method, it overrides the base init method and it is only relevent to the Emitter class. * It would be better to move this to the Emitter module itself as a standalone class. * */ export default class Rate extends Initializer { /** * Constructs a Rate instance. * * @param {number|array|Span} numPan - The number of particles to emit * @param {number|array|Span} timePan - The time between each particle emission * @return void */ constructor(numPan = DEFAULT_RATE_NUM_PAN, timePan = DEFAULT_RATE_TIME_PAN) { super(type); /** * @desc Sets the number of particles to emit. * @type {Span} */ this.numPan = createSpan(numPan); /** * @desc Sets the time between each particle emission. * @type {Span} */ this.timePan = createSpan(timePan); /** * @desc The rate's start time. * @type {number} */ this.startTime = 0; /** * @desc The rate's next time. * @type {number} */ this.nextTime = 0; this.init(); } /** * Sets the startTime and nextTime properties. * * @return void */ init() { this.startTime = 0; this.nextTime = this.timePan.getValue(); } /** * Gets the number of particles to emit. * * @param {number} time - Current particle engine time * @return {number} */ getValue(time) { this.startTime += time; if (this.startTime >= this.nextTime) { this.init(); if (this.numPan.b == 1) { if (this.numPan.getValue('Float') > 0.5) return 1;else return 0; } else { return this.numPan.getValue('Int'); } } return 0; } /** * Creates a Rate initializer from JSON. * * @param {object} json - The JSON to construct the instance from. * @property {number} json.particlesMin - The minimum number of particles to emit * @property {number} json.particlesMax - The maximum number of particles to emit * @property {number} json.perSecondMin - The minimum per second emit rate * @property {number} json.perSecondMax - The maximum per second emit rate * @return {Rate} */ static fromJSON(json) { const { particlesMin, particlesMax, perSecondMin, perSecondMax } = json; return new Rate(new Span(particlesMin, particlesMax), new Span(perSecondMin, perSecondMax)); } } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9pbml0aWFsaXplci9SYXRlLmpzIl0sIm5hbWVzIjpbIkRFRkFVTFRfUkFURV9OVU1fUEFOIiwiREVGQVVMVF9SQVRFX1RJTUVfUEFOIiwiU3BhbiIsImNyZWF0ZVNwYW4iLCJJbml0aWFsaXplciIsIklOSVRJQUxJWkVSX1RZUEVfUkFURSIsInR5cGUiLCJSYXRlIiwiY29uc3RydWN0b3IiLCJudW1QYW4iLCJ0aW1lUGFuIiwic3RhcnRUaW1lIiwibmV4dFRpbWUiLCJpbml0IiwiZ2V0VmFsdWUiLCJ0aW1lIiwiYiIsImZyb21KU09OIiwianNvbiIsInBhcnRpY2xlc01pbiIsInBhcnRpY2xlc01heCIsInBlclNlY29uZE1pbiIsInBlclNlY29uZE1heCJdLCJtYXBwaW5ncyI6IkFBQUEsU0FBU0Esb0JBQVQsRUFBK0JDLHFCQUEvQixRQUE0RCxhQUE1RDtBQUNBLFNBQVNDLElBQVQsRUFBZUMsVUFBZixRQUFpQyxTQUFqQztBQUVBLE9BQU9DLFdBQVAsTUFBd0IsZUFBeEI7QUFDQSxTQUFTQyxxQkFBcUIsSUFBSUMsSUFBbEMsUUFBOEMsU0FBOUM7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUNBLGVBQWUsTUFBTUMsSUFBTixTQUFtQkgsV0FBbkIsQ0FBK0I7QUFDNUM7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDRUksRUFBQUEsV0FBVyxDQUFDQyxNQUFNLEdBQUdULG9CQUFWLEVBQWdDVSxPQUFPLEdBQUdULHFCQUExQyxFQUFpRTtBQUMxRSxVQUFNSyxJQUFOO0FBRUE7QUFDSjtBQUNBO0FBQ0E7O0FBQ0ksU0FBS0csTUFBTCxHQUFjTixVQUFVLENBQUNNLE1BQUQsQ0FBeEI7QUFFQTtBQUNKO0FBQ0E7QUFDQTs7QUFDSSxTQUFLQyxPQUFMLEdBQWVQLFVBQVUsQ0FBQ08sT0FBRCxDQUF6QjtBQUVBO0FBQ0o7QUFDQTtBQUNBOztBQUNJLFNBQUtDLFNBQUwsR0FBaUIsQ0FBakI7QUFFQTtBQUNKO0FBQ0E7QUFDQTs7QUFDSSxTQUFLQyxRQUFMLEdBQWdCLENBQWhCO0FBRUEsU0FBS0MsSUFBTDtBQUNEO0FBRUQ7QUFDRjtBQUNBO0FBQ0E7QUFDQTs7O0FBQ0VBLEVBQUFBLElBQUksR0FBRztBQUNMLFNBQUtGLFNBQUwsR0FBaUIsQ0FBakI7QUFDQSxTQUFLQyxRQUFMLEdBQWdCLEtBQUtGLE9BQUwsQ0FBYUksUUFBYixFQUFoQjtBQUNEO0FBRUQ7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFDRUEsRUFBQUEsUUFBUSxDQUFDQyxJQUFELEVBQU87QUFDYixTQUFLSixTQUFMLElBQWtCSSxJQUFsQjs7QUFFQSxRQUFJLEtBQUtKLFNBQUwsSUFBa0IsS0FBS0MsUUFBM0IsRUFBcUM7QUFDbkMsV0FBS0MsSUFBTDs7QUFFQSxVQUFJLEtBQUtKLE1BQUwsQ0FBWU8sQ0FBWixJQUFpQixDQUFyQixFQUF3QjtBQUN0QixZQUFJLEtBQUtQLE1BQUwsQ0FBWUssUUFBWixDQUFxQixPQUFyQixJQUFnQyxHQUFwQyxFQUF5QyxPQUFPLENBQVAsQ0FBekMsS0FDSyxPQUFPLENBQVA7QUFDTixPQUhELE1BR087QUFDTCxlQUFPLEtBQUtMLE1BQUwsQ0FBWUssUUFBWixDQUFxQixLQUFyQixDQUFQO0FBQ0Q7QUFDRjs7QUFFRCxXQUFPLENBQVA7QUFDRDtBQUVEO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFDaUIsU0FBUkcsUUFBUSxDQUFDQyxJQUFELEVBQU87QUFDcEIsVUFBTTtBQUFFQyxNQUFBQSxZQUFGO0FBQWdCQyxNQUFBQSxZQUFoQjtBQUE4QkMsTUFBQUEsWUFBOUI7QUFBNENDLE1BQUFBO0FBQTVDLFFBQTZESixJQUFuRTtBQUVBLFdBQU8sSUFBSVgsSUFBSixDQUNMLElBQUlMLElBQUosQ0FBU2lCLFlBQVQsRUFBdUJDLFlBQXZCLENBREssRUFFTCxJQUFJbEIsSUFBSixDQUFTbUIsWUFBVCxFQUF1QkMsWUFBdkIsQ0FGSyxDQUFQO0FBSUQ7O0FBeEYyQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERFRkFVTFRfUkFURV9OVU1fUEFOLCBERUZBVUxUX1JBVEVfVElNRV9QQU4gfSBmcm9tICcuL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBTcGFuLCBjcmVhdGVTcGFuIH0gZnJvbSAnLi4vbWF0aCc7XG5cbmltcG9ydCBJbml0aWFsaXplciBmcm9tICcuL0luaXRpYWxpemVyJztcbmltcG9ydCB7IElOSVRJQUxJWkVSX1RZUEVfUkFURSBhcyB0eXBlIH0gZnJvbSAnLi90eXBlcyc7XG5cbi8qKlxuICogQ2FsY3VsYXRlcyB0aGUgcmF0ZSBvZiBwYXJ0aWNsZSBlbWlzc2lvbi5cbiAqXG4gKiBOT1RFIFRoaXMgZG9lc24ndCBuZWVkIHRvIGJlIGFuIGluaXRpYWxpemVyLCBpdCBkb2Vzbid0IGhhdmUgYW4gaW5pdGlhbGl6ZVxuICogbWV0aG9kLCBpdCBvdmVycmlkZXMgdGhlIGJhc2UgaW5pdCBtZXRob2QgYW5kIGl0IGlzIG9ubHkgcmVsZXZlbnQgdG8gdGhlIEVtaXR0ZXIgY2xhc3MuXG4gKiBJdCB3b3VsZCBiZSBiZXR0ZXIgdG8gbW92ZSB0aGlzIHRvIHRoZSBFbWl0dGVyIG1vZHVsZSBpdHNlbGYgYXMgYSBzdGFuZGFsb25lIGNsYXNzLlxuICpcbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgUmF0ZSBleHRlbmRzIEluaXRpYWxpemVyIHtcbiAgLyoqXG4gICAqIENvbnN0cnVjdHMgYSBSYXRlIGluc3RhbmNlLlxuICAgKlxuICAgKiBAcGFyYW0ge251bWJlcnxhcnJheXxTcGFufSBudW1QYW4gLSBUaGUgbnVtYmVyIG9mIHBhcnRpY2xlcyB0byBlbWl0XG4gICAqIEBwYXJhbSB7bnVtYmVyfGFycmF5fFNwYW59IHRpbWVQYW4gLSBUaGUgdGltZSBiZXR3ZWVuIGVhY2ggcGFydGljbGUgZW1pc3Npb25cbiAgICogQHJldHVybiB2b2lkXG4gICAqL1xuICBjb25zdHJ1Y3RvcihudW1QYW4gPSBERUZBVUxUX1JBVEVfTlVNX1BBTiwgdGltZVBhbiA9IERFRkFVTFRfUkFURV9USU1FX1BBTikge1xuICAgIHN1cGVyKHR5cGUpO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2MgU2V0cyB0aGUgbnVtYmVyIG9mIHBhcnRpY2xlcyB0byBlbWl0LlxuICAgICAqIEB0eXBlIHtTcGFufVxuICAgICAqL1xuICAgIHRoaXMubnVtUGFuID0gY3JlYXRlU3BhbihudW1QYW4pO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2MgU2V0cyB0aGUgdGltZSBiZXR3ZWVuIGVhY2ggcGFydGljbGUgZW1pc3Npb24uXG4gICAgICogQHR5cGUge1NwYW59XG4gICAgICovXG4gICAgdGhpcy50aW1lUGFuID0gY3JlYXRlU3Bhbih0aW1lUGFuKTtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjIFRoZSByYXRlJ3Mgc3RhcnQgdGltZS5cbiAgICAgKiBAdHlwZSB7bnVtYmVyfVxuICAgICAqL1xuICAgIHRoaXMuc3RhcnRUaW1lID0gMDtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjIFRoZSByYXRlJ3MgbmV4dCB0aW1lLlxuICAgICAqIEB0eXBlIHtudW1iZXJ9XG4gICAgICovXG4gICAgdGhpcy5uZXh0VGltZSA9IDA7XG5cbiAgICB0aGlzLmluaXQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBzdGFydFRpbWUgYW5kIG5leHRUaW1lIHByb3BlcnRpZXMuXG4gICAqXG4gICAqIEByZXR1cm4gdm9pZFxuICAgKi9cbiAgaW5pdCgpIHtcbiAgICB0aGlzLnN0YXJ0VGltZSA9IDA7XG4gICAgdGhpcy5uZXh0VGltZSA9IHRoaXMudGltZVBhbi5nZXRWYWx1ZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIG51bWJlciBvZiBwYXJ0aWNsZXMgdG8gZW1pdC5cbiAgICpcbiAgICogQHBhcmFtIHtudW1iZXJ9IHRpbWUgLSBDdXJyZW50IHBhcnRpY2xlIGVuZ2luZSB0aW1lXG4gICAqIEByZXR1cm4ge251bWJlcn1cbiAgICovXG4gIGdldFZhbHVlKHRpbWUpIHtcbiAgICB0aGlzLnN0YXJ0VGltZSArPSB0aW1lO1xuXG4gICAgaWYgKHRoaXMuc3RhcnRUaW1lID49IHRoaXMubmV4dFRpbWUpIHtcbiAgICAgIHRoaXMuaW5pdCgpO1xuXG4gICAgICBpZiAodGhpcy5udW1QYW4uYiA9PSAxKSB7XG4gICAgICAgIGlmICh0aGlzLm51bVBhbi5nZXRWYWx1ZSgnRmxvYXQnKSA+IDAuNSkgcmV0dXJuIDE7XG4gICAgICAgIGVsc2UgcmV0dXJuIDA7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gdGhpcy5udW1QYW4uZ2V0VmFsdWUoJ0ludCcpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiAwO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBSYXRlIGluaXRpYWxpemVyIGZyb20gSlNPTi5cbiAgICpcbiAgICogQHBhcmFtIHtvYmplY3R9IGpzb24gLSBUaGUgSlNPTiB0byBjb25zdHJ1Y3QgdGhlIGluc3RhbmNlIGZyb20uXG4gICAqIEBwcm9wZXJ0eSB7bnVtYmVyfSBqc29uLnBhcnRpY2xlc01pbiAtIFRoZSBtaW5pbXVtIG51bWJlciBvZiBwYXJ0aWNsZXMgdG8gZW1pdFxuICAgKiBAcHJvcGVydHkge251bWJlcn0ganNvbi5wYXJ0aWNsZXNNYXggLSBUaGUgbWF4aW11bSBudW1iZXIgb2YgcGFydGljbGVzIHRvIGVtaXRcbiAgICogQHByb3BlcnR5IHtudW1iZXJ9IGpzb24ucGVyU2Vjb25kTWluIC0gVGhlIG1pbmltdW0gcGVyIHNlY29uZCBlbWl0IHJhdGVcbiAgICogQHByb3BlcnR5IHtudW1iZXJ9IGpzb24ucGVyU2Vjb25kTWF4IC0gVGhlIG1heGltdW0gcGVyIHNlY29uZCBlbWl0IHJhdGVcbiAgICogQHJldHVybiB7UmF0ZX1cbiAgICovXG4gIHN0YXRpYyBmcm9tSlNPTihqc29uKSB7XG4gICAgY29uc3QgeyBwYXJ0aWNsZXNNaW4sIHBhcnRpY2xlc01heCwgcGVyU2Vjb25kTWluLCBwZXJTZWNvbmRNYXggfSA9IGpzb247XG5cbiAgICByZXR1cm4gbmV3IFJhdGUoXG4gICAgICBuZXcgU3BhbihwYXJ0aWNsZXNNaW4sIHBhcnRpY2xlc01heCksXG4gICAgICBuZXcgU3BhbihwZXJTZWNvbmRNaW4sIHBlclNlY29uZE1heClcbiAgICApO1xuICB9XG59XG4iXX0= ================================================ FILE: packages/sdk/lib/core/libs/three-nebula/initializer/Rotation.js ================================================ import { Vector3 } from '../core/three'; import Initializer from './Initializer'; import { INITIALIZER_TYPE_ROTATION as type } from './types'; /** * Sets the rotation property on initialized particles. * */ export default class Rotation extends Initializer { /** * Constructs a Rotation property instance. * * @param {number} x - X axis rotation * @param {number} y - Y axis rotation * @param {number} z - Z axis rotation * @param {boolean} [useEmitterRotation=true] - Determines if we should use the emitter's rotation as the starting rotation * @param {boolean} [isEnabled=true] - Determines if the initializer should be enabled or not * @return void */ constructor(x, y, z, useEmitterRotation = true, isEnabled = true) { super(type, isEnabled); this.rotation = new Vector3(x, y, z); this.useEmitterRotation = useEmitterRotation; } /** * Sets the particle's initial rotation. * * @param {Particle} particle - the particle to initialize the property on * @return void */ initialize(particle) { if (this.useEmitterRotation && particle.parent) { // set initial particle rotation to that of the particle's emitter then add our set rotation particle.rotation.copy(particle.parent.rotation).add(this.rotation); } else { particle.rotation.copy(this.rotation); } } static fromJSON(json) { const { x, y, z, useEmitterRotation = true, isEnabled = true } = json; return new Rotation(x, y, z, useEmitterRotation, isEnabled); } } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9pbml0aWFsaXplci9Sb3RhdGlvbi5qcyJdLCJuYW1lcyI6WyJWZWN0b3IzIiwiSW5pdGlhbGl6ZXIiLCJJTklUSUFMSVpFUl9UWVBFX1JPVEFUSU9OIiwidHlwZSIsIlJvdGF0aW9uIiwiY29uc3RydWN0b3IiLCJ4IiwieSIsInoiLCJ1c2VFbWl0dGVyUm90YXRpb24iLCJpc0VuYWJsZWQiLCJyb3RhdGlvbiIsImluaXRpYWxpemUiLCJwYXJ0aWNsZSIsImNvcHkiLCJwYXJlbnQiLCJhZGQiLCJmcm9tSlNPTiIsImpzb24iXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLE9BQVQsUUFBd0IsZUFBeEI7QUFDQSxPQUFPQyxXQUFQLE1BQXdCLGVBQXhCO0FBQ0EsU0FBU0MseUJBQXlCLElBQUlDLElBQXRDLFFBQWtELFNBQWxEO0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBQ0EsZUFBZSxNQUFNQyxRQUFOLFNBQXVCSCxXQUF2QixDQUFtQztBQUNoRDtBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNFSSxFQUFBQSxXQUFXLENBQUNDLENBQUQsRUFBSUMsQ0FBSixFQUFPQyxDQUFQLEVBQVVDLGtCQUFrQixHQUFDLElBQTdCLEVBQW1DQyxTQUFTLEdBQUcsSUFBL0MsRUFBcUQ7QUFDOUQsVUFBTVAsSUFBTixFQUFZTyxTQUFaO0FBQ0EsU0FBS0MsUUFBTCxHQUFnQixJQUFJWCxPQUFKLENBQVlNLENBQVosRUFBY0MsQ0FBZCxFQUFnQkMsQ0FBaEIsQ0FBaEI7QUFDQSxTQUFLQyxrQkFBTCxHQUEwQkEsa0JBQTFCO0FBQ0Q7QUFFRDtBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUNFRyxFQUFBQSxVQUFVLENBQUNDLFFBQUQsRUFBVztBQUNuQixRQUFHLEtBQUtKLGtCQUFSLEVBQ0E7QUFDRTtBQUNBSSxNQUFBQSxRQUFRLENBQUNGLFFBQVQsQ0FBa0JHLElBQWxCLENBQXVCRCxRQUFRLENBQUNFLE1BQVQsQ0FBZ0JKLFFBQXZDLEVBQWlESyxHQUFqRCxDQUFxRCxLQUFLTCxRQUExRDtBQUNELEtBSkQsTUFNQTtBQUNFRSxNQUFBQSxRQUFRLENBQUNGLFFBQVQsQ0FBa0JHLElBQWxCLENBQXVCLEtBQUtILFFBQTVCO0FBQ0Q7QUFDRjs7QUFFYyxTQUFSTSxRQUFRLENBQUNDLElBQUQsRUFBTztBQUNwQixVQUFNO0FBQUVaLE1BQUFBLENBQUY7QUFBS0MsTUFBQUEsQ0FBTDtBQUFRQyxNQUFBQSxDQUFSO0FBQVdDLE1BQUFBLGtCQUFrQixHQUFHLElBQWhDO0FBQXNDQyxNQUFBQSxTQUFTLEdBQUc7QUFBbEQsUUFBMkRRLElBQWpFO0FBRUEsV0FBTyxJQUFJZCxRQUFKLENBQWFFLENBQWIsRUFBZ0JDLENBQWhCLEVBQW1CQyxDQUFuQixFQUFzQkMsa0JBQXRCLEVBQTBDQyxTQUExQyxDQUFQO0FBQ0Q7O0FBdkMrQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFZlY3RvcjMgfSBmcm9tICcuLi9jb3JlL3RocmVlJztcbmltcG9ydCBJbml0aWFsaXplciBmcm9tICcuL0luaXRpYWxpemVyJztcbmltcG9ydCB7IElOSVRJQUxJWkVSX1RZUEVfUk9UQVRJT04gYXMgdHlwZSB9IGZyb20gJy4vdHlwZXMnO1xuXG4vKipcbiAqIFNldHMgdGhlIHJvdGF0aW9uIHByb3BlcnR5IG9uIGluaXRpYWxpemVkIHBhcnRpY2xlcy5cbiAqXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFJvdGF0aW9uIGV4dGVuZHMgSW5pdGlhbGl6ZXIge1xuICAvKipcbiAgICogQ29uc3RydWN0cyBhIFJvdGF0aW9uIHByb3BlcnR5IGluc3RhbmNlLlxuICAgKlxuICAgKiBAcGFyYW0ge251bWJlcn0geCAtIFggYXhpcyByb3RhdGlvblxuICAgKiBAcGFyYW0ge251bWJlcn0geSAtIFkgYXhpcyByb3RhdGlvblxuICAgKiBAcGFyYW0ge251bWJlcn0geiAtIFogYXhpcyByb3RhdGlvblxuICAgKiBAcGFyYW0ge2Jvb2xlYW59IFt1c2VFbWl0dGVyUm90YXRpb249dHJ1ZV0gLSBEZXRlcm1pbmVzIGlmIHdlIHNob3VsZCB1c2UgdGhlIGVtaXR0ZXIncyByb3RhdGlvbiBhcyB0aGUgc3RhcnRpbmcgcm90YXRpb25cbiAgICogQHBhcmFtIHtib29sZWFufSBbaXNFbmFibGVkPXRydWVdIC0gRGV0ZXJtaW5lcyBpZiB0aGUgaW5pdGlhbGl6ZXIgc2hvdWxkIGJlIGVuYWJsZWQgb3Igbm90XG4gICAqIEByZXR1cm4gdm9pZFxuICAgKi9cbiAgY29uc3RydWN0b3IoeCwgeSwgeiwgdXNlRW1pdHRlclJvdGF0aW9uPXRydWUsIGlzRW5hYmxlZCA9IHRydWUpIHtcbiAgICBzdXBlcih0eXBlLCBpc0VuYWJsZWQpO1xuICAgIHRoaXMucm90YXRpb24gPSBuZXcgVmVjdG9yMyh4LHkseik7XG4gICAgdGhpcy51c2VFbWl0dGVyUm90YXRpb24gPSB1c2VFbWl0dGVyUm90YXRpb247XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgcGFydGljbGUncyBpbml0aWFsIHJvdGF0aW9uLlxuICAgKlxuICAgKiBAcGFyYW0ge1BhcnRpY2xlfSBwYXJ0aWNsZSAtIHRoZSBwYXJ0aWNsZSB0byBpbml0aWFsaXplIHRoZSBwcm9wZXJ0eSBvblxuICAgKiBAcmV0dXJuIHZvaWRcbiAgICovXG4gIGluaXRpYWxpemUocGFydGljbGUpIHtcbiAgICBpZih0aGlzLnVzZUVtaXR0ZXJSb3RhdGlvbilcbiAgICB7XG4gICAgICAvLyBzZXQgaW5pdGlhbCBwYXJ0aWNsZSByb3RhdGlvbiB0byB0aGF0IG9mIHRoZSBwYXJ0aWNsZSdzIGVtaXR0ZXIgdGhlbiBhZGQgb3VyIHNldCByb3RhdGlvblxuICAgICAgcGFydGljbGUucm90YXRpb24uY29weShwYXJ0aWNsZS5wYXJlbnQucm90YXRpb24pLmFkZCh0aGlzLnJvdGF0aW9uKTtcbiAgICB9XG4gICAgZWxzZVxuICAgIHtcbiAgICAgIHBhcnRpY2xlLnJvdGF0aW9uLmNvcHkodGhpcy5yb3RhdGlvbik7XG4gICAgfVxuICB9XG5cbiAgc3RhdGljIGZyb21KU09OKGpzb24pIHtcbiAgICBjb25zdCB7IHgsIHksIHosIHVzZUVtaXR0ZXJSb3RhdGlvbiA9IHRydWUsIGlzRW5hYmxlZCA9IHRydWUgfSA9IGpzb247XG5cbiAgICByZXR1cm4gbmV3IFJvdGF0aW9uKHgsIHksIHosIHVzZUVtaXR0ZXJSb3RhdGlvbiwgaXNFbmFibGVkKTtcbiAgfVxufSJdfQ== ================================================ FILE: packages/sdk/lib/core/libs/three-nebula/initializer/Texture.js ================================================ import _defineProperty from "@babel/runtime/helpers/defineProperty"; function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; } function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } import { DEFAULT_JSON_MATERIAL_PROPERTIES, DEFAULT_MATERIAL_PROPERTIES, SUPPORTED_MATERIAL_BLENDING_MODES } from './constants'; import Initializer from './Initializer'; import { INITIALIZER_TYPE_TEXTURE as type } from './types'; import { withDefaults } from '../utils'; /** * Sets the body property to be a THREE.Sprite with a texture map on initialized particles. * */ export default class Texture extends Initializer { /** * Constructs an Texture initializer. * * @param {object} THREE - The Web GL API we are using eg., THREE * @param {string} texture - The sprite texture * @param {object|undefined} materialProperties - The sprite material properties * @param {?Texture} loadedTexture - Preloaded THREE.Texture instance */ constructor(THREE, loadedTexture, materialProperties = DEFAULT_MATERIAL_PROPERTIES, isEnabled = true) { super(type, isEnabled); const { Sprite, SpriteMaterial } = THREE; /** * @desc The material properties for this object's SpriteMaterial * NOTE This is required for testing purposes * @type {object} */ this.materialProperties = withDefaults(DEFAULT_MATERIAL_PROPERTIES, materialProperties); /** * @desc The texture for the THREE.SpriteMaterial map. * @type {Texture} */ this.texture = loadedTexture; /** * @desc THREE.SpriteMaterial instance. * @type {SpriteMaterial} */ this.material = new SpriteMaterial(_objectSpread(_objectSpread({}, { map: loadedTexture }), this.materialProperties)); /** * @desc THREE.Sprite instance. * @type {Sprite} */ this.sprite = new Sprite(this.material); } /** * Sets the particle body to the sprite. * * @param {Particle} particle - The particle to set the body of * @return void */ initialize(particle) { particle.body = this.sprite; } /** * Creates a Texture initializer from JSON. * * @param {object} json - The JSON to construct the instance from * @param {object} THREE - The Web GL API we are using eg., THREE * @param {Texture} json.loadedTexture - The loaded sprite texture * @param {object} json.materialProperties - The sprite material properties * @return {BodySprite} */ static fromJSON(json, THREE) { const { loadedTexture, materialProperties = DEFAULT_JSON_MATERIAL_PROPERTIES, isEnabled = true } = json; const ensureMappedBlendingMode = properties => { const { blending } = properties; return _objectSpread(_objectSpread({}, properties), {}, { blending: blending ? SUPPORTED_MATERIAL_BLENDING_MODES[blending] : SUPPORTED_MATERIAL_BLENDING_MODES[DEFAULT_JSON_MATERIAL_PROPERTIES.blending] }); }; return new Texture(THREE, loadedTexture, withDefaults(DEFAULT_JSON_MATERIAL_PROPERTIES, ensureMappedBlendingMode(materialProperties)), isEnabled); } } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9pbml0aWFsaXplci9UZXh0dXJlLmpzIl0sIm5hbWVzIjpbIkRFRkFVTFRfSlNPTl9NQVRFUklBTF9QUk9QRVJUSUVTIiwiREVGQVVMVF9NQVRFUklBTF9QUk9QRVJUSUVTIiwiU1VQUE9SVEVEX01BVEVSSUFMX0JMRU5ESU5HX01PREVTIiwiSW5pdGlhbGl6ZXIiLCJJTklUSUFMSVpFUl9UWVBFX1RFWFRVUkUiLCJ0eXBlIiwid2l0aERlZmF1bHRzIiwiVGV4dHVyZSIsImNvbnN0cnVjdG9yIiwiVEhSRUUiLCJsb2FkZWRUZXh0dXJlIiwibWF0ZXJpYWxQcm9wZXJ0aWVzIiwiaXNFbmFibGVkIiwiU3ByaXRlIiwiU3ByaXRlTWF0ZXJpYWwiLCJ0ZXh0dXJlIiwibWF0ZXJpYWwiLCJtYXAiLCJzcHJpdGUiLCJpbml0aWFsaXplIiwicGFydGljbGUiLCJib2R5IiwiZnJvbUpTT04iLCJqc29uIiwiZW5zdXJlTWFwcGVkQmxlbmRpbmdNb2RlIiwicHJvcGVydGllcyIsImJsZW5kaW5nIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxTQUNFQSxnQ0FERixFQUVFQywyQkFGRixFQUdFQyxpQ0FIRixRQUlPLGFBSlA7QUFNQSxPQUFPQyxXQUFQLE1BQXdCLGVBQXhCO0FBQ0EsU0FBU0Msd0JBQXdCLElBQUlDLElBQXJDLFFBQWlELFNBQWpEO0FBQ0EsU0FBU0MsWUFBVCxRQUE2QixVQUE3QjtBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUNBLGVBQWUsTUFBTUMsT0FBTixTQUFzQkosV0FBdEIsQ0FBa0M7QUFDL0M7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNFSyxFQUFBQSxXQUFXLENBQ1RDLEtBRFMsRUFFVEMsYUFGUyxFQUdUQyxrQkFBa0IsR0FBR1YsMkJBSFosRUFJVFcsU0FBUyxHQUFHLElBSkgsRUFLVDtBQUNBLFVBQU1QLElBQU4sRUFBWU8sU0FBWjtBQUVBLFVBQU07QUFBRUMsTUFBQUEsTUFBRjtBQUFVQyxNQUFBQTtBQUFWLFFBQTZCTCxLQUFuQztBQUVBO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7O0FBQ0ksU0FBS0Usa0JBQUwsR0FBMEJMLFlBQVksQ0FDcENMLDJCQURvQyxFQUVwQ1Usa0JBRm9DLENBQXRDO0FBS0E7QUFDSjtBQUNBO0FBQ0E7O0FBQ0ksU0FBS0ksT0FBTCxHQUFlTCxhQUFmO0FBRUE7QUFDSjtBQUNBO0FBQ0E7O0FBQ0ksU0FBS00sUUFBTCxHQUFnQixJQUFJRixjQUFKLGlDQUNYO0FBQUVHLE1BQUFBLEdBQUcsRUFBRVA7QUFBUCxLQURXLEdBRVgsS0FBS0Msa0JBRk0sRUFBaEI7QUFLQTtBQUNKO0FBQ0E7QUFDQTs7QUFDSSxTQUFLTyxNQUFMLEdBQWMsSUFBSUwsTUFBSixDQUFXLEtBQUtHLFFBQWhCLENBQWQ7QUFDRDtBQUVEO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQ0VHLEVBQUFBLFVBQVUsQ0FBQ0MsUUFBRCxFQUFXO0FBQ25CQSxJQUFBQSxRQUFRLENBQUNDLElBQVQsR0FBZ0IsS0FBS0gsTUFBckI7QUFDRDtBQUVEO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQ2lCLFNBQVJJLFFBQVEsQ0FBQ0MsSUFBRCxFQUFPZCxLQUFQLEVBQWM7QUFDM0IsVUFBTTtBQUNKQyxNQUFBQSxhQURJO0FBRUpDLE1BQUFBLGtCQUFrQixHQUFHWCxnQ0FGakI7QUFHSlksTUFBQUEsU0FBUyxHQUFHO0FBSFIsUUFJRlcsSUFKSjs7QUFNQSxVQUFNQyx3QkFBd0IsR0FBR0MsVUFBVSxJQUFJO0FBQzdDLFlBQU07QUFBRUMsUUFBQUE7QUFBRixVQUFlRCxVQUFyQjtBQUVBLDZDQUNLQSxVQURMO0FBRUVDLFFBQUFBLFFBQVEsRUFBRUEsUUFBUSxHQUNkeEIsaUNBQWlDLENBQUN3QixRQUFELENBRG5CLEdBRWR4QixpQ0FBaUMsQ0FDakNGLGdDQUFnQyxDQUFDMEIsUUFEQTtBQUp2QztBQVFELEtBWEQ7O0FBYUEsV0FBTyxJQUFJbkIsT0FBSixDQUNMRSxLQURLLEVBRUxDLGFBRkssRUFHTEosWUFBWSxDQUNWTixnQ0FEVSxFQUVWd0Isd0JBQXdCLENBQUNiLGtCQUFELENBRmQsQ0FIUCxFQU9MQyxTQVBLLENBQVA7QUFTRDs7QUFuRzhDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgREVGQVVMVF9KU09OX01BVEVSSUFMX1BST1BFUlRJRVMsXG4gIERFRkFVTFRfTUFURVJJQUxfUFJPUEVSVElFUyxcbiAgU1VQUE9SVEVEX01BVEVSSUFMX0JMRU5ESU5HX01PREVTLFxufSBmcm9tICcuL2NvbnN0YW50cyc7XG5cbmltcG9ydCBJbml0aWFsaXplciBmcm9tICcuL0luaXRpYWxpemVyJztcbmltcG9ydCB7IElOSVRJQUxJWkVSX1RZUEVfVEVYVFVSRSBhcyB0eXBlIH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyB3aXRoRGVmYXVsdHMgfSBmcm9tICcuLi91dGlscyc7XG5cbi8qKlxuICogU2V0cyB0aGUgYm9keSBwcm9wZXJ0eSB0byBiZSBhIFRIUkVFLlNwcml0ZSB3aXRoIGEgdGV4dHVyZSBtYXAgb24gaW5pdGlhbGl6ZWQgcGFydGljbGVzLlxuICpcbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgVGV4dHVyZSBleHRlbmRzIEluaXRpYWxpemVyIHtcbiAgLyoqXG4gICAqIENvbnN0cnVjdHMgYW4gVGV4dHVyZSBpbml0aWFsaXplci5cbiAgICpcbiAgICogQHBhcmFtIHtvYmplY3R9IFRIUkVFIC0gVGhlIFdlYiBHTCBBUEkgd2UgYXJlIHVzaW5nIGVnLiwgVEhSRUVcbiAgICogQHBhcmFtIHtzdHJpbmd9IHRleHR1cmUgLSBUaGUgc3ByaXRlIHRleHR1cmVcbiAgICogQHBhcmFtIHtvYmplY3R8dW5kZWZpbmVkfSBtYXRlcmlhbFByb3BlcnRpZXMgLSBUaGUgc3ByaXRlIG1hdGVyaWFsIHByb3BlcnRpZXNcbiAgICogQHBhcmFtIHs/VGV4dHVyZX0gbG9hZGVkVGV4dHVyZSAtIFByZWxvYWRlZCBUSFJFRS5UZXh0dXJlIGluc3RhbmNlXG4gICAqL1xuICBjb25zdHJ1Y3RvcihcbiAgICBUSFJFRSxcbiAgICBsb2FkZWRUZXh0dXJlLFxuICAgIG1hdGVyaWFsUHJvcGVydGllcyA9IERFRkFVTFRfTUFURVJJQUxfUFJPUEVSVElFUyxcbiAgICBpc0VuYWJsZWQgPSB0cnVlXG4gICkge1xuICAgIHN1cGVyKHR5cGUsIGlzRW5hYmxlZCk7XG5cbiAgICBjb25zdCB7IFNwcml0ZSwgU3ByaXRlTWF0ZXJpYWwgfSA9IFRIUkVFO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2MgVGhlIG1hdGVyaWFsIHByb3BlcnRpZXMgZm9yIHRoaXMgb2JqZWN0J3MgU3ByaXRlTWF0ZXJpYWxcbiAgICAgKiBOT1RFIFRoaXMgaXMgcmVxdWlyZWQgZm9yIHRlc3RpbmcgcHVycG9zZXNcbiAgICAgKiBAdHlwZSB7b2JqZWN0fVxuICAgICAqL1xuICAgIHRoaXMubWF0ZXJpYWxQcm9wZXJ0aWVzID0gd2l0aERlZmF1bHRzKFxuICAgICAgREVGQVVMVF9NQVRFUklBTF9QUk9QRVJUSUVTLFxuICAgICAgbWF0ZXJpYWxQcm9wZXJ0aWVzXG4gICAgKTtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjIFRoZSB0ZXh0dXJlIGZvciB0aGUgVEhSRUUuU3ByaXRlTWF0ZXJpYWwgbWFwLlxuICAgICAqIEB0eXBlIHtUZXh0dXJlfVxuICAgICAqL1xuICAgIHRoaXMudGV4dHVyZSA9IGxvYWRlZFRleHR1cmU7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzYyBUSFJFRS5TcHJpdGVNYXRlcmlhbCBpbnN0YW5jZS5cbiAgICAgKiBAdHlwZSB7U3ByaXRlTWF0ZXJpYWx9XG4gICAgICovXG4gICAgdGhpcy5tYXRlcmlhbCA9IG5ldyBTcHJpdGVNYXRlcmlhbCh7XG4gICAgICAuLi57IG1hcDogbG9hZGVkVGV4dHVyZSB9LFxuICAgICAgLi4udGhpcy5tYXRlcmlhbFByb3BlcnRpZXMsXG4gICAgfSk7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzYyBUSFJFRS5TcHJpdGUgaW5zdGFuY2UuXG4gICAgICogQHR5cGUge1Nwcml0ZX1cbiAgICAgKi9cbiAgICB0aGlzLnNwcml0ZSA9IG5ldyBTcHJpdGUodGhpcy5tYXRlcmlhbCk7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgcGFydGljbGUgYm9keSB0byB0aGUgc3ByaXRlLlxuICAgKlxuICAgKiBAcGFyYW0ge1BhcnRpY2xlfSBwYXJ0aWNsZSAtIFRoZSBwYXJ0aWNsZSB0byBzZXQgdGhlIGJvZHkgb2ZcbiAgICogQHJldHVybiB2b2lkXG4gICAqL1xuICBpbml0aWFsaXplKHBhcnRpY2xlKSB7XG4gICAgcGFydGljbGUuYm9keSA9IHRoaXMuc3ByaXRlO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBUZXh0dXJlIGluaXRpYWxpemVyIGZyb20gSlNPTi5cbiAgICpcbiAgICogQHBhcmFtIHtvYmplY3R9IGpzb24gLSBUaGUgSlNPTiB0byBjb25zdHJ1Y3QgdGhlIGluc3RhbmNlIGZyb21cbiAgICogQHBhcmFtIHtvYmplY3R9IFRIUkVFIC0gVGhlIFdlYiBHTCBBUEkgd2UgYXJlIHVzaW5nIGVnLiwgVEhSRUVcbiAgICogQHBhcmFtIHtUZXh0dXJlfSBqc29uLmxvYWRlZFRleHR1cmUgLSBUaGUgbG9hZGVkIHNwcml0ZSB0ZXh0dXJlXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBqc29uLm1hdGVyaWFsUHJvcGVydGllcyAtIFRoZSBzcHJpdGUgbWF0ZXJpYWwgcHJvcGVydGllc1xuICAgKiBAcmV0dXJuIHtCb2R5U3ByaXRlfVxuICAgKi9cbiAgc3RhdGljIGZyb21KU09OKGpzb24sIFRIUkVFKSB7XG4gICAgY29uc3Qge1xuICAgICAgbG9hZGVkVGV4dHVyZSxcbiAgICAgIG1hdGVyaWFsUHJvcGVydGllcyA9IERFRkFVTFRfSlNPTl9NQVRFUklBTF9QUk9QRVJUSUVTLFxuICAgICAgaXNFbmFibGVkID0gdHJ1ZSxcbiAgICB9ID0ganNvbjtcblxuICAgIGNvbnN0IGVuc3VyZU1hcHBlZEJsZW5kaW5nTW9kZSA9IHByb3BlcnRpZXMgPT4ge1xuICAgICAgY29uc3QgeyBibGVuZGluZyB9ID0gcHJvcGVydGllcztcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4ucHJvcGVydGllcyxcbiAgICAgICAgYmxlbmRpbmc6IGJsZW5kaW5nXG4gICAgICAgICAgPyBTVVBQT1JURURfTUFURVJJQUxfQkxFTkRJTkdfTU9ERVNbYmxlbmRpbmddXG4gICAgICAgICAgOiBTVVBQT1JURURfTUFURVJJQUxfQkxFTkRJTkdfTU9ERVNbXG4gICAgICAgICAgICBERUZBVUxUX0pTT05fTUFURVJJQUxfUFJPUEVSVElFUy5ibGVuZGluZ1xuICAgICAgICAgIF0sXG4gICAgICB9O1xuICAgIH07XG5cbiAgICByZXR1cm4gbmV3IFRleHR1cmUoXG4gICAgICBUSFJFRSxcbiAgICAgIGxvYWRlZFRleHR1cmUsXG4gICAgICB3aXRoRGVmYXVsdHMoXG4gICAgICAgIERFRkFVTFRfSlNPTl9NQVRFUklBTF9QUk9QRVJUSUVTLFxuICAgICAgICBlbnN1cmVNYXBwZWRCbGVuZGluZ01vZGUobWF0ZXJpYWxQcm9wZXJ0aWVzKVxuICAgICAgKSxcbiAgICAgIGlzRW5hYmxlZFxuICAgICk7XG4gIH1cbn1cbiJdfQ== ================================================ FILE: packages/sdk/lib/core/libs/three-nebula/initializer/Velocity/PolarVelocity.js ================================================ import { DR } from '../../constants'; import { Polar3D } from '../../math'; import Velocity from './Velocity'; import { INITIALIZER_TYPE_POLAR_VELOCITY as type } from '../types'; /** * Sets the velocity property on initialized particles. * */ export default class PolarVelocity extends Velocity { /** * Constructs a PolarVelocity initializer. * * @param {Polar3D} polar3d - The polar vector for the velocity * @param {number} theta - The theta angle to use * @return void */ constructor(polar3d, theta, isEnabled = true) { super(type, isEnabled); /** * @desc Theta. * @type {number} */ this.tha = theta * DR; this._polar = polar3d; /** * @desc Directional vector * @type {Vector3D} */ this.dirVec = this._polar.toVector3D(); /** * @desc Determines whether to use the directional vector or not. * @type {boolean} */ this._useV = false; } /** * Creates a PolarVelocity initializer from JSON. * * @param {object} json - The JSON to construct the instance from. * @param {number} json.polarRadius - The Polar3D radius * @param {number} json.polarTheta - The Polar3D theta * @param {number} json.polarPhi - The Polar3D phi * @param {number} json.velocityTheta - The velocity theta * @return {PolarVelocity} */ static fromJSON(json) { const { polarRadius, polarTheta, polarPhi, velocityTheta, isEnabled = true } = json; return new PolarVelocity(new Polar3D(polarRadius, polarTheta, polarPhi), velocityTheta, isEnabled); } } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9pbml0aWFsaXplci9WZWxvY2l0eS9Qb2xhclZlbG9jaXR5LmpzIl0sIm5hbWVzIjpbIkRSIiwiUG9sYXIzRCIsIlZlbG9jaXR5IiwiSU5JVElBTElaRVJfVFlQRV9QT0xBUl9WRUxPQ0lUWSIsInR5cGUiLCJQb2xhclZlbG9jaXR5IiwiY29uc3RydWN0b3IiLCJwb2xhcjNkIiwidGhldGEiLCJpc0VuYWJsZWQiLCJ0aGEiLCJkaXJWZWMiLCJ0b1ZlY3RvcjNEIiwiX3VzZVYiLCJmcm9tSlNPTiIsImpzb24iLCJwb2xhclJhZGl1cyIsInBvbGFyVGhldGEiLCJwb2xhclBoaSIsInZlbG9jaXR5VGhldGEiXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLEVBQVQsUUFBbUIsaUJBQW5CO0FBQ0EsU0FBU0MsT0FBVCxRQUF3QixZQUF4QjtBQUNBLE9BQU9DLFFBQVAsTUFBcUIsWUFBckI7QUFDQSxTQUFTQywrQkFBK0IsSUFBSUMsSUFBNUMsUUFBd0QsVUFBeEQ7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFDQSxlQUFlLE1BQU1DLGFBQU4sU0FBNEJILFFBQTVCLENBQXFDO0FBQ2xEO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0VJLEVBQUFBLFdBQVcsQ0FBQ0MsT0FBRCxFQUFVQyxLQUFWLEVBQWlCQyxTQUFTLEdBQUcsSUFBN0IsRUFBbUM7QUFDNUMsVUFBTUwsSUFBTixFQUFZSyxTQUFaO0FBRUE7QUFDSjtBQUNBO0FBQ0E7O0FBQ0ksU0FBS0MsR0FBTCxHQUFXRixLQUFLLEdBQUdSLEVBQW5CO0FBRUE7QUFDSjtBQUNBO0FBQ0E7O0FBQ0ksU0FBS1csTUFBTCxHQUFjSixPQUFPLENBQUNLLFVBQVIsRUFBZDtBQUVBO0FBQ0o7QUFDQTtBQUNBOztBQUNJLFNBQUtDLEtBQUwsR0FBYSxLQUFiO0FBQ0Q7QUFFRDtBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQ2lCLFNBQVJDLFFBQVEsQ0FBQ0MsSUFBRCxFQUFPO0FBQ3BCLFVBQU07QUFDSkMsTUFBQUEsV0FESTtBQUVKQyxNQUFBQSxVQUZJO0FBR0pDLE1BQUFBLFFBSEk7QUFJSkMsTUFBQUEsYUFKSTtBQUtKVixNQUFBQSxTQUFTLEdBQUc7QUFMUixRQU1GTSxJQU5KO0FBUUEsV0FBTyxJQUFJVixhQUFKLENBQ0wsSUFBSUosT0FBSixDQUFZZSxXQUFaLEVBQXlCQyxVQUF6QixFQUFxQ0MsUUFBckMsQ0FESyxFQUVMQyxhQUZLLEVBR0xWLFNBSEssQ0FBUDtBQUtEOztBQXREaUQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEUiB9IGZyb20gJy4uLy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBQb2xhcjNEIH0gZnJvbSAnLi4vLi4vbWF0aCc7XG5pbXBvcnQgVmVsb2NpdHkgZnJvbSAnLi9WZWxvY2l0eSc7XG5pbXBvcnQgeyBJTklUSUFMSVpFUl9UWVBFX1BPTEFSX1ZFTE9DSVRZIGFzIHR5cGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogU2V0cyB0aGUgdmVsb2NpdHkgcHJvcGVydHkgb24gaW5pdGlhbGl6ZWQgcGFydGljbGVzLlxuICpcbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgUG9sYXJWZWxvY2l0eSBleHRlbmRzIFZlbG9jaXR5IHtcbiAgLyoqXG4gICAqIENvbnN0cnVjdHMgYSBQb2xhclZlbG9jaXR5IGluaXRpYWxpemVyLlxuICAgKlxuICAgKiBAcGFyYW0ge1BvbGFyM0R9IHBvbGFyM2QgLSBUaGUgcG9sYXIgdmVjdG9yIGZvciB0aGUgdmVsb2NpdHlcbiAgICogQHBhcmFtIHtudW1iZXJ9IHRoZXRhIC0gVGhlIHRoZXRhIGFuZ2xlIHRvIHVzZVxuICAgKiBAcmV0dXJuIHZvaWRcbiAgICovXG4gIGNvbnN0cnVjdG9yKHBvbGFyM2QsIHRoZXRhLCBpc0VuYWJsZWQgPSB0cnVlKSB7XG4gICAgc3VwZXIodHlwZSwgaXNFbmFibGVkKTtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjIFRoZXRhLlxuICAgICAqIEB0eXBlIHtudW1iZXJ9XG4gICAgICovXG4gICAgdGhpcy50aGEgPSB0aGV0YSAqIERSO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2MgRGlyZWN0aW9uYWwgdmVjdG9yXG4gICAgICogQHR5cGUge1ZlY3RvcjNEfVxuICAgICAqL1xuICAgIHRoaXMuZGlyVmVjID0gcG9sYXIzZC50b1ZlY3RvcjNEKCk7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzYyBEZXRlcm1pbmVzIHdoZXRoZXIgdG8gdXNlIHRoZSBkaXJlY3Rpb25hbCB2ZWN0b3Igb3Igbm90LlxuICAgICAqIEB0eXBlIHtib29sZWFufVxuICAgICAqL1xuICAgIHRoaXMuX3VzZVYgPSBmYWxzZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgUG9sYXJWZWxvY2l0eSBpbml0aWFsaXplciBmcm9tIEpTT04uXG4gICAqXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBqc29uIC0gVGhlIEpTT04gdG8gY29uc3RydWN0IHRoZSBpbnN0YW5jZSBmcm9tLlxuICAgKiBAcGFyYW0ge251bWJlcn0ganNvbi5wb2xhclJhZGl1cyAtIFRoZSBQb2xhcjNEIHJhZGl1c1xuICAgKiBAcGFyYW0ge251bWJlcn0ganNvbi5wb2xhclRoZXRhIC0gVGhlIFBvbGFyM0QgdGhldGFcbiAgICogQHBhcmFtIHtudW1iZXJ9IGpzb24ucG9sYXJQaGkgLSBUaGUgUG9sYXIzRCBwaGlcbiAgICogQHBhcmFtIHtudW1iZXJ9IGpzb24udmVsb2NpdHlUaGV0YSAtIFRoZSB2ZWxvY2l0eSB0aGV0YVxuICAgKiBAcmV0dXJuIHtQb2xhclZlbG9jaXR5fVxuICAgKi9cbiAgc3RhdGljIGZyb21KU09OKGpzb24pIHtcbiAgICBjb25zdCB7XG4gICAgICBwb2xhclJhZGl1cyxcbiAgICAgIHBvbGFyVGhldGEsXG4gICAgICBwb2xhclBoaSxcbiAgICAgIHZlbG9jaXR5VGhldGEsXG4gICAgICBpc0VuYWJsZWQgPSB0cnVlLFxuICAgIH0gPSBqc29uO1xuXG4gICAgcmV0dXJuIG5ldyBQb2xhclZlbG9jaXR5KFxuICAgICAgbmV3IFBvbGFyM0QocG9sYXJSYWRpdXMsIHBvbGFyVGhldGEsIHBvbGFyUGhpKSxcbiAgICAgIHZlbG9jaXR5VGhldGEsXG4gICAgICBpc0VuYWJsZWRcbiAgICApO1xuICB9XG59XG4iXX0= ================================================ FILE: packages/sdk/lib/core/libs/three-nebula/initializer/Velocity/RadialVelocity.js ================================================ import { Vector3D, createSpan } from '../../math'; import { DR } from '../../constants'; import Velocity from './Velocity'; import { INITIALIZER_TYPE_RADIAL_VELOCITY as type } from '../types'; /** * Sets the velocity property on initialized particles. * */ export default class RadialVelocity extends Velocity { /** * Constructs a RadialVelocity initializer. * * @param {number|Span} radius - The velocity radius * @param {Vector3D} vector3d - The directional vector for the velocity * @param {number} theta - The theta angle to use * @return void */ constructor(radius, vector3d, theta, isEnabled = true) { super(type, isEnabled); /** * @desc Velocity radius span. * @type {Span} */ this.radiusPan = createSpan(radius); /** * @desc Direction vector. * @type {Vector3D} */ this.dir = vector3d.clone().normalize(); /** * @desc Theta. * @type {number} */ this.tha = theta * DR; /** * @desc Determines whether to use the directional vector or not. * @type {boolean} */ this._useV = true; } /** * Creates a RadialVelocity initializer from JSON. * * @param {object} json - The JSON to construct the instance from. * @param {number} json.radius - The velocity radius * @param {number} json.x - The velocity x axis direction * @param {number} json.y - The velocity y axis direction * @param {number} json.z - The velocity z axis direction * @param {number} json.theta - The velocity theta * @return {RadialVelocity} */ static fromJSON(json) { const { radius, x, y, z, theta, isEnabled = true } = json; return new RadialVelocity(radius, new Vector3D(x, y, z), theta, isEnabled); } } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9pbml0aWFsaXplci9WZWxvY2l0eS9SYWRpYWxWZWxvY2l0eS5qcyJdLCJuYW1lcyI6WyJWZWN0b3IzRCIsImNyZWF0ZVNwYW4iLCJEUiIsIlZlbG9jaXR5IiwiSU5JVElBTElaRVJfVFlQRV9SQURJQUxfVkVMT0NJVFkiLCJ0eXBlIiwiUmFkaWFsVmVsb2NpdHkiLCJjb25zdHJ1Y3RvciIsInJhZGl1cyIsInZlY3RvcjNkIiwidGhldGEiLCJpc0VuYWJsZWQiLCJyYWRpdXNQYW4iLCJkaXIiLCJjbG9uZSIsIm5vcm1hbGl6ZSIsInRoYSIsIl91c2VWIiwiZnJvbUpTT04iLCJqc29uIiwieCIsInkiLCJ6Il0sIm1hcHBpbmdzIjoiQUFBQSxTQUFTQSxRQUFULEVBQW1CQyxVQUFuQixRQUFxQyxZQUFyQztBQUVBLFNBQVNDLEVBQVQsUUFBbUIsaUJBQW5CO0FBQ0EsT0FBT0MsUUFBUCxNQUFxQixZQUFyQjtBQUNBLFNBQVNDLGdDQUFnQyxJQUFJQyxJQUE3QyxRQUF5RCxVQUF6RDtBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUNBLGVBQWUsTUFBTUMsY0FBTixTQUE2QkgsUUFBN0IsQ0FBc0M7QUFDbkQ7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNFSSxFQUFBQSxXQUFXLENBQUNDLE1BQUQsRUFBU0MsUUFBVCxFQUFtQkMsS0FBbkIsRUFBMEJDLFNBQVMsR0FBRyxJQUF0QyxFQUE0QztBQUNyRCxVQUFNTixJQUFOLEVBQVlNLFNBQVo7QUFFQTtBQUNKO0FBQ0E7QUFDQTs7QUFDSSxTQUFLQyxTQUFMLEdBQWlCWCxVQUFVLENBQUNPLE1BQUQsQ0FBM0I7QUFFQTtBQUNKO0FBQ0E7QUFDQTs7QUFDSSxTQUFLSyxHQUFMLEdBQVdKLFFBQVEsQ0FBQ0ssS0FBVCxHQUFpQkMsU0FBakIsRUFBWDtBQUVBO0FBQ0o7QUFDQTtBQUNBOztBQUNJLFNBQUtDLEdBQUwsR0FBV04sS0FBSyxHQUFHUixFQUFuQjtBQUVBO0FBQ0o7QUFDQTtBQUNBOztBQUNJLFNBQUtlLEtBQUwsR0FBYSxJQUFiO0FBQ0Q7QUFFRDtBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFDaUIsU0FBUkMsUUFBUSxDQUFDQyxJQUFELEVBQU87QUFDcEIsVUFBTTtBQUFFWCxNQUFBQSxNQUFGO0FBQVVZLE1BQUFBLENBQVY7QUFBYUMsTUFBQUEsQ0FBYjtBQUFnQkMsTUFBQUEsQ0FBaEI7QUFBbUJaLE1BQUFBLEtBQW5CO0FBQTBCQyxNQUFBQSxTQUFTLEdBQUc7QUFBdEMsUUFBK0NRLElBQXJEO0FBRUEsV0FBTyxJQUFJYixjQUFKLENBQW1CRSxNQUFuQixFQUEyQixJQUFJUixRQUFKLENBQWFvQixDQUFiLEVBQWdCQyxDQUFoQixFQUFtQkMsQ0FBbkIsQ0FBM0IsRUFBa0RaLEtBQWxELEVBQXlEQyxTQUF6RCxDQUFQO0FBQ0Q7O0FBcERrRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFZlY3RvcjNELCBjcmVhdGVTcGFuIH0gZnJvbSAnLi4vLi4vbWF0aCc7XG5cbmltcG9ydCB7IERSIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzJztcbmltcG9ydCBWZWxvY2l0eSBmcm9tICcuL1ZlbG9jaXR5JztcbmltcG9ydCB7IElOSVRJQUxJWkVSX1RZUEVfUkFESUFMX1ZFTE9DSVRZIGFzIHR5cGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogU2V0cyB0aGUgdmVsb2NpdHkgcHJvcGVydHkgb24gaW5pdGlhbGl6ZWQgcGFydGljbGVzLlxuICpcbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgUmFkaWFsVmVsb2NpdHkgZXh0ZW5kcyBWZWxvY2l0eSB7XG4gIC8qKlxuICAgKiBDb25zdHJ1Y3RzIGEgUmFkaWFsVmVsb2NpdHkgaW5pdGlhbGl6ZXIuXG4gICAqXG4gICAqIEBwYXJhbSB7bnVtYmVyfFNwYW59IHJhZGl1cyAtIFRoZSB2ZWxvY2l0eSByYWRpdXNcbiAgICogQHBhcmFtIHtWZWN0b3IzRH0gdmVjdG9yM2QgLSBUaGUgZGlyZWN0aW9uYWwgdmVjdG9yIGZvciB0aGUgdmVsb2NpdHlcbiAgICogQHBhcmFtIHtudW1iZXJ9IHRoZXRhIC0gVGhlIHRoZXRhIGFuZ2xlIHRvIHVzZVxuICAgKiBAcmV0dXJuIHZvaWRcbiAgICovXG4gIGNvbnN0cnVjdG9yKHJhZGl1cywgdmVjdG9yM2QsIHRoZXRhLCBpc0VuYWJsZWQgPSB0cnVlKSB7XG4gICAgc3VwZXIodHlwZSwgaXNFbmFibGVkKTtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjIFZlbG9jaXR5IHJhZGl1cyBzcGFuLlxuICAgICAqIEB0eXBlIHtTcGFufVxuICAgICAqL1xuICAgIHRoaXMucmFkaXVzUGFuID0gY3JlYXRlU3BhbihyYWRpdXMpO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2MgRGlyZWN0aW9uIHZlY3Rvci5cbiAgICAgKiBAdHlwZSB7VmVjdG9yM0R9XG4gICAgICovXG4gICAgdGhpcy5kaXIgPSB2ZWN0b3IzZC5jbG9uZSgpLm5vcm1hbGl6ZSgpO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2MgVGhldGEuXG4gICAgICogQHR5cGUge251bWJlcn1cbiAgICAgKi9cbiAgICB0aGlzLnRoYSA9IHRoZXRhICogRFI7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzYyBEZXRlcm1pbmVzIHdoZXRoZXIgdG8gdXNlIHRoZSBkaXJlY3Rpb25hbCB2ZWN0b3Igb3Igbm90LlxuICAgICAqIEB0eXBlIHtib29sZWFufVxuICAgICAqL1xuICAgIHRoaXMuX3VzZVYgPSB0cnVlO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBSYWRpYWxWZWxvY2l0eSBpbml0aWFsaXplciBmcm9tIEpTT04uXG4gICAqXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBqc29uIC0gVGhlIEpTT04gdG8gY29uc3RydWN0IHRoZSBpbnN0YW5jZSBmcm9tLlxuICAgKiBAcGFyYW0ge251bWJlcn0ganNvbi5yYWRpdXMgLSBUaGUgdmVsb2NpdHkgcmFkaXVzXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBqc29uLnggLSBUaGUgdmVsb2NpdHkgeCBheGlzIGRpcmVjdGlvblxuICAgKiBAcGFyYW0ge251bWJlcn0ganNvbi55IC0gVGhlIHZlbG9jaXR5IHkgYXhpcyBkaXJlY3Rpb25cbiAgICogQHBhcmFtIHtudW1iZXJ9IGpzb24ueiAtIFRoZSB2ZWxvY2l0eSB6IGF4aXMgZGlyZWN0aW9uXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBqc29uLnRoZXRhIC0gVGhlIHZlbG9jaXR5IHRoZXRhXG4gICAqIEByZXR1cm4ge1JhZGlhbFZlbG9jaXR5fVxuICAgKi9cbiAgc3RhdGljIGZyb21KU09OKGpzb24pIHtcbiAgICBjb25zdCB7IHJhZGl1cywgeCwgeSwgeiwgdGhldGEsIGlzRW5hYmxlZCA9IHRydWUgfSA9IGpzb247XG5cbiAgICByZXR1cm4gbmV3IFJhZGlhbFZlbG9jaXR5KHJhZGl1cywgbmV3IFZlY3RvcjNEKHgsIHksIHopLCB0aGV0YSwgaXNFbmFibGVkKTtcbiAgfVxufVxuIl19 ================================================ FILE: packages/sdk/lib/core/libs/three-nebula/initializer/Velocity/VectorVelocity.js ================================================ import { Vector3D, createSpan } from '../../math'; import { DR } from '../../constants'; import Velocity from './Velocity'; import { INITIALIZER_TYPE_VECTOR_VELOCITY as type } from '../types'; /** * Sets the velocity property on initialized particles. * */ export default class VectorVelocity extends Velocity { /** * Constructs a VectorVelocity initializer. * * @param {Vector3D} vector3d - The directional vector for the velocity * @param {number} theta - The theta angle to use * @return void */ constructor(vector3d, theta, isEnabled = true) { super(type, isEnabled); /** * @desc Velocity radius span. * @type {Span} */ this.radiusPan = createSpan(1); /** * @desc Direction vector. * @type {Vector3D} */ this.dir = vector3d.clone(); /** * @desc Theta. * @type {number} */ this.tha = theta * DR; /** * @desc Determines whether to use the directional vector or not. * @type {boolean} */ this._useV = true; } /** * Creates a VectorVelocity initializer from JSON. * * @param {object} json - The JSON to construct the instance from. * @param {number} json.x - The velocity x axis direction * @param {number} json.y - The velocity y axis direction * @param {number} json.z - The velocity z axis direction * @param {number} json.theta - The velocity theta * @return {VectorVelocity} */ static fromJSON(json) { const { x, y, z, theta, isEnabled = true } = json; return new VectorVelocity(new Vector3D(x, y, z), theta, isEnabled); } } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9pbml0aWFsaXplci9WZWxvY2l0eS9WZWN0b3JWZWxvY2l0eS5qcyJdLCJuYW1lcyI6WyJWZWN0b3IzRCIsImNyZWF0ZVNwYW4iLCJEUiIsIlZlbG9jaXR5IiwiSU5JVElBTElaRVJfVFlQRV9WRUNUT1JfVkVMT0NJVFkiLCJ0eXBlIiwiVmVjdG9yVmVsb2NpdHkiLCJjb25zdHJ1Y3RvciIsInZlY3RvcjNkIiwidGhldGEiLCJpc0VuYWJsZWQiLCJyYWRpdXNQYW4iLCJkaXIiLCJjbG9uZSIsInRoYSIsIl91c2VWIiwiZnJvbUpTT04iLCJqc29uIiwieCIsInkiLCJ6Il0sIm1hcHBpbmdzIjoiQUFBQSxTQUFTQSxRQUFULEVBQW1CQyxVQUFuQixRQUFxQyxZQUFyQztBQUVBLFNBQVNDLEVBQVQsUUFBbUIsaUJBQW5CO0FBQ0EsT0FBT0MsUUFBUCxNQUFxQixZQUFyQjtBQUNBLFNBQVNDLGdDQUFnQyxJQUFJQyxJQUE3QyxRQUF5RCxVQUF6RDtBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUNBLGVBQWUsTUFBTUMsY0FBTixTQUE2QkgsUUFBN0IsQ0FBc0M7QUFDbkQ7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDRUksRUFBQUEsV0FBVyxDQUFDQyxRQUFELEVBQVdDLEtBQVgsRUFBa0JDLFNBQVMsR0FBRyxJQUE5QixFQUFvQztBQUM3QyxVQUFNTCxJQUFOLEVBQVlLLFNBQVo7QUFFQTtBQUNKO0FBQ0E7QUFDQTs7QUFDSSxTQUFLQyxTQUFMLEdBQWlCVixVQUFVLENBQUMsQ0FBRCxDQUEzQjtBQUVBO0FBQ0o7QUFDQTtBQUNBOztBQUNJLFNBQUtXLEdBQUwsR0FBV0osUUFBUSxDQUFDSyxLQUFULEVBQVg7QUFFQTtBQUNKO0FBQ0E7QUFDQTs7QUFDSSxTQUFLQyxHQUFMLEdBQVdMLEtBQUssR0FBR1AsRUFBbkI7QUFFQTtBQUNKO0FBQ0E7QUFDQTs7QUFDSSxTQUFLYSxLQUFMLEdBQWEsSUFBYjtBQUNEO0FBRUQ7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUNpQixTQUFSQyxRQUFRLENBQUNDLElBQUQsRUFBTztBQUNwQixVQUFNO0FBQUVDLE1BQUFBLENBQUY7QUFBS0MsTUFBQUEsQ0FBTDtBQUFRQyxNQUFBQSxDQUFSO0FBQVdYLE1BQUFBLEtBQVg7QUFBa0JDLE1BQUFBLFNBQVMsR0FBRztBQUE5QixRQUF1Q08sSUFBN0M7QUFFQSxXQUFPLElBQUlYLGNBQUosQ0FBbUIsSUFBSU4sUUFBSixDQUFha0IsQ0FBYixFQUFnQkMsQ0FBaEIsRUFBbUJDLENBQW5CLENBQW5CLEVBQTBDWCxLQUExQyxFQUFpREMsU0FBakQsQ0FBUDtBQUNEOztBQWxEa0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBWZWN0b3IzRCwgY3JlYXRlU3BhbiB9IGZyb20gJy4uLy4uL21hdGgnO1xuXG5pbXBvcnQgeyBEUiB9IGZyb20gJy4uLy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgVmVsb2NpdHkgZnJvbSAnLi9WZWxvY2l0eSc7XG5pbXBvcnQgeyBJTklUSUFMSVpFUl9UWVBFX1ZFQ1RPUl9WRUxPQ0lUWSBhcyB0eXBlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIFNldHMgdGhlIHZlbG9jaXR5IHByb3BlcnR5IG9uIGluaXRpYWxpemVkIHBhcnRpY2xlcy5cbiAqXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFZlY3RvclZlbG9jaXR5IGV4dGVuZHMgVmVsb2NpdHkge1xuICAvKipcbiAgICogQ29uc3RydWN0cyBhIFZlY3RvclZlbG9jaXR5IGluaXRpYWxpemVyLlxuICAgKlxuICAgKiBAcGFyYW0ge1ZlY3RvcjNEfSB2ZWN0b3IzZCAtIFRoZSBkaXJlY3Rpb25hbCB2ZWN0b3IgZm9yIHRoZSB2ZWxvY2l0eVxuICAgKiBAcGFyYW0ge251bWJlcn0gdGhldGEgLSBUaGUgdGhldGEgYW5nbGUgdG8gdXNlXG4gICAqIEByZXR1cm4gdm9pZFxuICAgKi9cbiAgY29uc3RydWN0b3IodmVjdG9yM2QsIHRoZXRhLCBpc0VuYWJsZWQgPSB0cnVlKSB7XG4gICAgc3VwZXIodHlwZSwgaXNFbmFibGVkKTtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjIFZlbG9jaXR5IHJhZGl1cyBzcGFuLlxuICAgICAqIEB0eXBlIHtTcGFufVxuICAgICAqL1xuICAgIHRoaXMucmFkaXVzUGFuID0gY3JlYXRlU3BhbigxKTtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjIERpcmVjdGlvbiB2ZWN0b3IuXG4gICAgICogQHR5cGUge1ZlY3RvcjNEfVxuICAgICAqL1xuICAgIHRoaXMuZGlyID0gdmVjdG9yM2QuY2xvbmUoKTtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjIFRoZXRhLlxuICAgICAqIEB0eXBlIHtudW1iZXJ9XG4gICAgICovXG4gICAgdGhpcy50aGEgPSB0aGV0YSAqIERSO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2MgRGV0ZXJtaW5lcyB3aGV0aGVyIHRvIHVzZSB0aGUgZGlyZWN0aW9uYWwgdmVjdG9yIG9yIG5vdC5cbiAgICAgKiBAdHlwZSB7Ym9vbGVhbn1cbiAgICAgKi9cbiAgICB0aGlzLl91c2VWID0gdHJ1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgVmVjdG9yVmVsb2NpdHkgaW5pdGlhbGl6ZXIgZnJvbSBKU09OLlxuICAgKlxuICAgKiBAcGFyYW0ge29iamVjdH0ganNvbiAtIFRoZSBKU09OIHRvIGNvbnN0cnVjdCB0aGUgaW5zdGFuY2UgZnJvbS5cbiAgICogQHBhcmFtIHtudW1iZXJ9IGpzb24ueCAtIFRoZSB2ZWxvY2l0eSB4IGF4aXMgZGlyZWN0aW9uXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBqc29uLnkgLSBUaGUgdmVsb2NpdHkgeSBheGlzIGRpcmVjdGlvblxuICAgKiBAcGFyYW0ge251bWJlcn0ganNvbi56IC0gVGhlIHZlbG9jaXR5IHogYXhpcyBkaXJlY3Rpb25cbiAgICogQHBhcmFtIHtudW1iZXJ9IGpzb24udGhldGEgLSBUaGUgdmVsb2NpdHkgdGhldGFcbiAgICogQHJldHVybiB7VmVjdG9yVmVsb2NpdHl9XG4gICAqL1xuICBzdGF0aWMgZnJvbUpTT04oanNvbikge1xuICAgIGNvbnN0IHsgeCwgeSwgeiwgdGhldGEsIGlzRW5hYmxlZCA9IHRydWUgfSA9IGpzb247XG5cbiAgICByZXR1cm4gbmV3IFZlY3RvclZlbG9jaXR5KG5ldyBWZWN0b3IzRCh4LCB5LCB6KSwgdGhldGEsIGlzRW5hYmxlZCk7XG4gIH1cbn1cbiJdfQ== ================================================ FILE: packages/sdk/lib/core/libs/three-nebula/initializer/Velocity/Velocity.js ================================================ import { MEASURE, PI } from '../../constants'; import { MathUtils, Vector3D } from '../../math'; import Initializer from '../Initializer'; /** * Abstract class for Velocity initializers. * */ export default class Velocity extends Initializer { /** * Constructs a Velocity intitializer instance. * * @return void */ constructor(type, isEnabled = true) { super(type, isEnabled); /** * @desc Directional vector * @type {Vector3D} */ this.dirVec = new Vector3D(0, 0, 0); } normalize(vr) { return vr * MEASURE; } } /** * Sets the particle's initial velocity. * * @singleton * @param {Particle} particle - the particle to initialize the property on * @return void */ Velocity.prototype.initialize = function () { var tha; var normal = new Vector3D(0, 0, 1); var v = new Vector3D(0, 0, 0); return function initialize(particle) { tha = this.tha * Math.random(); this._useV && this.dirVec.copy(this.dir).scalar(this.radiusPan.getValue()); MathUtils.getNormal(this.dirVec, normal); v.copy(this.dirVec).applyAxisAngle(normal, tha); v.applyAxisAngle(this.dirVec.normalize(), Math.random() * PI * 2); particle.velocity.copy(v); return this; }; }(); //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9pbml0aWFsaXplci9WZWxvY2l0eS9WZWxvY2l0eS5qcyJdLCJuYW1lcyI6WyJNRUFTVVJFIiwiUEkiLCJNYXRoVXRpbHMiLCJWZWN0b3IzRCIsIkluaXRpYWxpemVyIiwiVmVsb2NpdHkiLCJjb25zdHJ1Y3RvciIsInR5cGUiLCJpc0VuYWJsZWQiLCJkaXJWZWMiLCJub3JtYWxpemUiLCJ2ciIsInByb3RvdHlwZSIsImluaXRpYWxpemUiLCJ0aGEiLCJub3JtYWwiLCJ2IiwicGFydGljbGUiLCJNYXRoIiwicmFuZG9tIiwiX3VzZVYiLCJjb3B5IiwiZGlyIiwic2NhbGFyIiwicmFkaXVzUGFuIiwiZ2V0VmFsdWUiLCJnZXROb3JtYWwiLCJhcHBseUF4aXNBbmdsZSIsInZlbG9jaXR5Il0sIm1hcHBpbmdzIjoiQUFBQSxTQUFTQSxPQUFULEVBQWtCQyxFQUFsQixRQUE0QixpQkFBNUI7QUFDQSxTQUFTQyxTQUFULEVBQW9CQyxRQUFwQixRQUFvQyxZQUFwQztBQUVBLE9BQU9DLFdBQVAsTUFBd0IsZ0JBQXhCO0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBQ0EsZUFBZSxNQUFNQyxRQUFOLFNBQXVCRCxXQUF2QixDQUFtQztBQUNoRDtBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0VFLEVBQUFBLFdBQVcsQ0FBQ0MsSUFBRCxFQUFPQyxTQUFTLEdBQUcsSUFBbkIsRUFBeUI7QUFDbEMsVUFBTUQsSUFBTixFQUFZQyxTQUFaO0FBRUE7QUFDSjtBQUNBO0FBQ0E7O0FBQ0ksU0FBS0MsTUFBTCxHQUFjLElBQUlOLFFBQUosQ0FBYSxDQUFiLEVBQWdCLENBQWhCLEVBQW1CLENBQW5CLENBQWQ7QUFDRDs7QUFFRE8sRUFBQUEsU0FBUyxDQUFDQyxFQUFELEVBQUs7QUFDWixXQUFPQSxFQUFFLEdBQUdYLE9BQVo7QUFDRDs7QUFsQitDO0FBcUJsRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFDQUssUUFBUSxDQUFDTyxTQUFULENBQW1CQyxVQUFuQixHQUFpQyxZQUFXO0FBQzFDLE1BQUlDLEdBQUo7QUFDQSxNQUFJQyxNQUFNLEdBQUcsSUFBSVosUUFBSixDQUFhLENBQWIsRUFBZ0IsQ0FBaEIsRUFBbUIsQ0FBbkIsQ0FBYjtBQUNBLE1BQUlhLENBQUMsR0FBRyxJQUFJYixRQUFKLENBQWEsQ0FBYixFQUFnQixDQUFoQixFQUFtQixDQUFuQixDQUFSO0FBRUEsU0FBTyxTQUFTVSxVQUFULENBQW9CSSxRQUFwQixFQUE4QjtBQUNuQ0gsSUFBQUEsR0FBRyxHQUFHLEtBQUtBLEdBQUwsR0FBV0ksSUFBSSxDQUFDQyxNQUFMLEVBQWpCO0FBQ0EsU0FBS0MsS0FBTCxJQUFjLEtBQUtYLE1BQUwsQ0FBWVksSUFBWixDQUFpQixLQUFLQyxHQUF0QixFQUEyQkMsTUFBM0IsQ0FBa0MsS0FBS0MsU0FBTCxDQUFlQyxRQUFmLEVBQWxDLENBQWQ7QUFFQXZCLElBQUFBLFNBQVMsQ0FBQ3dCLFNBQVYsQ0FBb0IsS0FBS2pCLE1BQXpCLEVBQWlDTSxNQUFqQztBQUNBQyxJQUFBQSxDQUFDLENBQUNLLElBQUYsQ0FBTyxLQUFLWixNQUFaLEVBQW9Ca0IsY0FBcEIsQ0FBbUNaLE1BQW5DLEVBQTJDRCxHQUEzQztBQUNBRSxJQUFBQSxDQUFDLENBQUNXLGNBQUYsQ0FBaUIsS0FBS2xCLE1BQUwsQ0FBWUMsU0FBWixFQUFqQixFQUEwQ1EsSUFBSSxDQUFDQyxNQUFMLEtBQWdCbEIsRUFBaEIsR0FBcUIsQ0FBL0Q7QUFFQWdCLElBQUFBLFFBQVEsQ0FBQ1csUUFBVCxDQUFrQlAsSUFBbEIsQ0FBdUJMLENBQXZCO0FBRUEsV0FBTyxJQUFQO0FBQ0QsR0FYRDtBQVlELENBakIrQixFQUFoQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1FQVNVUkUsIFBJIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzJztcbmltcG9ydCB7IE1hdGhVdGlscywgVmVjdG9yM0QgfSBmcm9tICcuLi8uLi9tYXRoJztcblxuaW1wb3J0IEluaXRpYWxpemVyIGZyb20gJy4uL0luaXRpYWxpemVyJztcblxuLyoqXG4gKiBBYnN0cmFjdCBjbGFzcyBmb3IgVmVsb2NpdHkgaW5pdGlhbGl6ZXJzLlxuICpcbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgVmVsb2NpdHkgZXh0ZW5kcyBJbml0aWFsaXplciB7XG4gIC8qKlxuICAgKiBDb25zdHJ1Y3RzIGEgVmVsb2NpdHkgaW50aXRpYWxpemVyIGluc3RhbmNlLlxuICAgKlxuICAgKiBAcmV0dXJuIHZvaWRcbiAgICovXG4gIGNvbnN0cnVjdG9yKHR5cGUsIGlzRW5hYmxlZCA9IHRydWUpIHtcbiAgICBzdXBlcih0eXBlLCBpc0VuYWJsZWQpO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2MgRGlyZWN0aW9uYWwgdmVjdG9yXG4gICAgICogQHR5cGUge1ZlY3RvcjNEfVxuICAgICAqL1xuICAgIHRoaXMuZGlyVmVjID0gbmV3IFZlY3RvcjNEKDAsIDAsIDApO1xuICB9XG5cbiAgbm9ybWFsaXplKHZyKSB7XG4gICAgcmV0dXJuIHZyICogTUVBU1VSRTtcbiAgfVxufVxuXG4vKipcbiAqIFNldHMgdGhlIHBhcnRpY2xlJ3MgaW5pdGlhbCB2ZWxvY2l0eS5cbiAqXG4gKiBAc2luZ2xldG9uXG4gKiBAcGFyYW0ge1BhcnRpY2xlfSBwYXJ0aWNsZSAtIHRoZSBwYXJ0aWNsZSB0byBpbml0aWFsaXplIHRoZSBwcm9wZXJ0eSBvblxuICogQHJldHVybiB2b2lkXG4gKi9cblZlbG9jaXR5LnByb3RvdHlwZS5pbml0aWFsaXplID0gKGZ1bmN0aW9uKCkge1xuICB2YXIgdGhhO1xuICB2YXIgbm9ybWFsID0gbmV3IFZlY3RvcjNEKDAsIDAsIDEpO1xuICB2YXIgdiA9IG5ldyBWZWN0b3IzRCgwLCAwLCAwKTtcblxuICByZXR1cm4gZnVuY3Rpb24gaW5pdGlhbGl6ZShwYXJ0aWNsZSkge1xuICAgIHRoYSA9IHRoaXMudGhhICogTWF0aC5yYW5kb20oKTtcbiAgICB0aGlzLl91c2VWICYmIHRoaXMuZGlyVmVjLmNvcHkodGhpcy5kaXIpLnNjYWxhcih0aGlzLnJhZGl1c1Bhbi5nZXRWYWx1ZSgpKTtcblxuICAgIE1hdGhVdGlscy5nZXROb3JtYWwodGhpcy5kaXJWZWMsIG5vcm1hbCk7XG4gICAgdi5jb3B5KHRoaXMuZGlyVmVjKS5hcHBseUF4aXNBbmdsZShub3JtYWwsIHRoYSk7XG4gICAgdi5hcHBseUF4aXNBbmdsZSh0aGlzLmRpclZlYy5ub3JtYWxpemUoKSwgTWF0aC5yYW5kb20oKSAqIFBJICogMik7XG5cbiAgICBwYXJ0aWNsZS52ZWxvY2l0eS5jb3B5KHYpO1xuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH07XG59KSgpO1xuIl19 ================================================ FILE: packages/sdk/lib/core/libs/three-nebula/initializer/Velocity/index.js ================================================ export { default as PolarVelocity } from './PolarVelocity'; export { default as RadialVelocity } from './RadialVelocity'; export { default as VectorVelocity } from './VectorVelocity'; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9pbml0aWFsaXplci9WZWxvY2l0eS9pbmRleC5qcyJdLCJuYW1lcyI6WyJkZWZhdWx0IiwiUG9sYXJWZWxvY2l0eSIsIlJhZGlhbFZlbG9jaXR5IiwiVmVjdG9yVmVsb2NpdHkiXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLE9BQU8sSUFBSUMsYUFBcEIsUUFBeUMsaUJBQXpDO0FBQ0EsU0FBU0QsT0FBTyxJQUFJRSxjQUFwQixRQUEwQyxrQkFBMUM7QUFDQSxTQUFTRixPQUFPLElBQUlHLGNBQXBCLFFBQTBDLGtCQUExQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IGRlZmF1bHQgYXMgUG9sYXJWZWxvY2l0eSB9IGZyb20gJy4vUG9sYXJWZWxvY2l0eSc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFJhZGlhbFZlbG9jaXR5IH0gZnJvbSAnLi9SYWRpYWxWZWxvY2l0eSc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFZlY3RvclZlbG9jaXR5IH0gZnJvbSAnLi9WZWN0b3JWZWxvY2l0eSc7XG4iXX0= ================================================ FILE: packages/sdk/lib/core/libs/three-nebula/initializer/constants.js ================================================ import _defineProperty from "@babel/runtime/helpers/defineProperty"; function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; } function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } import { AdditiveBlending, CustomBlending, MultiplyBlending, NoBlending, NormalBlending, SubtractiveBlending } from '../core/three/'; export const SUPPORTED_MATERIAL_BLENDING_MODES = { AdditiveBlending, CustomBlending, MultiplyBlending, NoBlending, NormalBlending, SubtractiveBlending }; export const DEFAULT_MATERIAL_PROPERTIES = { color: 0xff0000, blending: AdditiveBlending, fog: true }; export const DEFAULT_JSON_MATERIAL_PROPERTIES = _objectSpread(_objectSpread({}, DEFAULT_MATERIAL_PROPERTIES), {}, { blending: 'AdditiveBlending' }); export const DEFAULT_RATE_NUM_PAN = 1; export const DEFAULT_RATE_TIME_PAN = 1; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9pbml0aWFsaXplci9jb25zdGFudHMuanMiXSwibmFtZXMiOlsiQWRkaXRpdmVCbGVuZGluZyIsIkN1c3RvbUJsZW5kaW5nIiwiTXVsdGlwbHlCbGVuZGluZyIsIk5vQmxlbmRpbmciLCJOb3JtYWxCbGVuZGluZyIsIlN1YnRyYWN0aXZlQmxlbmRpbmciLCJTVVBQT1JURURfTUFURVJJQUxfQkxFTkRJTkdfTU9ERVMiLCJERUZBVUxUX01BVEVSSUFMX1BST1BFUlRJRVMiLCJjb2xvciIsImJsZW5kaW5nIiwiZm9nIiwiREVGQVVMVF9KU09OX01BVEVSSUFMX1BST1BFUlRJRVMiLCJERUZBVUxUX1JBVEVfTlVNX1BBTiIsIkRFRkFVTFRfUkFURV9USU1FX1BBTiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsU0FDRUEsZ0JBREYsRUFFRUMsY0FGRixFQUdFQyxnQkFIRixFQUlFQyxVQUpGLEVBS0VDLGNBTEYsRUFNRUMsbUJBTkYsUUFPTyxnQkFQUDtBQVNBLE9BQU8sTUFBTUMsaUNBQWlDLEdBQUc7QUFDL0NOLEVBQUFBLGdCQUQrQztBQUUvQ0MsRUFBQUEsY0FGK0M7QUFHL0NDLEVBQUFBLGdCQUgrQztBQUkvQ0MsRUFBQUEsVUFKK0M7QUFLL0NDLEVBQUFBLGNBTCtDO0FBTS9DQyxFQUFBQTtBQU4rQyxDQUExQztBQVNQLE9BQU8sTUFBTUUsMkJBQTJCLEdBQUc7QUFDekNDLEVBQUFBLEtBQUssRUFBRSxRQURrQztBQUV6Q0MsRUFBQUEsUUFBUSxFQUFFVCxnQkFGK0I7QUFHekNVLEVBQUFBLEdBQUcsRUFBRTtBQUhvQyxDQUFwQztBQUtQLE9BQU8sTUFBTUMsZ0NBQWdDLG1DQUN4Q0osMkJBRHdDO0FBRTNDRSxFQUFBQSxRQUFRLEVBQUU7QUFGaUMsRUFBdEM7QUFJUCxPQUFPLE1BQU1HLG9CQUFvQixHQUFHLENBQTdCO0FBQ1AsT0FBTyxNQUFNQyxxQkFBcUIsR0FBRyxDQUE5QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFkZGl0aXZlQmxlbmRpbmcsXG4gIEN1c3RvbUJsZW5kaW5nLFxuICBNdWx0aXBseUJsZW5kaW5nLFxuICBOb0JsZW5kaW5nLFxuICBOb3JtYWxCbGVuZGluZyxcbiAgU3VidHJhY3RpdmVCbGVuZGluZyxcbn0gZnJvbSAnLi4vY29yZS90aHJlZS8nO1xuXG5leHBvcnQgY29uc3QgU1VQUE9SVEVEX01BVEVSSUFMX0JMRU5ESU5HX01PREVTID0ge1xuICBBZGRpdGl2ZUJsZW5kaW5nLFxuICBDdXN0b21CbGVuZGluZyxcbiAgTXVsdGlwbHlCbGVuZGluZyxcbiAgTm9CbGVuZGluZyxcbiAgTm9ybWFsQmxlbmRpbmcsXG4gIFN1YnRyYWN0aXZlQmxlbmRpbmcsXG59O1xuXG5leHBvcnQgY29uc3QgREVGQVVMVF9NQVRFUklBTF9QUk9QRVJUSUVTID0ge1xuICBjb2xvcjogMHhmZjAwMDAsXG4gIGJsZW5kaW5nOiBBZGRpdGl2ZUJsZW5kaW5nLFxuICBmb2c6IHRydWUsXG59O1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfSlNPTl9NQVRFUklBTF9QUk9QRVJUSUVTID0ge1xuICAuLi5ERUZBVUxUX01BVEVSSUFMX1BST1BFUlRJRVMsXG4gIGJsZW5kaW5nOiAnQWRkaXRpdmVCbGVuZGluZycsXG59O1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfUkFURV9OVU1fUEFOID0gMTtcbmV4cG9ydCBjb25zdCBERUZBVUxUX1JBVEVfVElNRV9QQU4gPSAxO1xuIl19 ================================================ FILE: packages/sdk/lib/core/libs/three-nebula/initializer/index.js ================================================ export { default as Body } from './Body'; export { default as BodySprite } from './BodySprite'; export { default as InitializerUtil } from './InitializerUtil'; export { default as Life } from './Life'; export { default as Mass } from './Mass'; export { default as Position } from './Position'; export { default as Rotation } from './Rotation'; export { default as Radius } from './Radius'; export { default as Rate } from './Rate'; export { default as Texture } from './Texture'; export { VectorVelocity, PolarVelocity, RadialVelocity } from './Velocity'; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9pbml0aWFsaXplci9pbmRleC5qcyJdLCJuYW1lcyI6WyJkZWZhdWx0IiwiQm9keSIsIkJvZHlTcHJpdGUiLCJJbml0aWFsaXplclV0aWwiLCJMaWZlIiwiTWFzcyIsIlBvc2l0aW9uIiwiUm90YXRpb24iLCJSYWRpdXMiLCJSYXRlIiwiVGV4dHVyZSIsIlZlY3RvclZlbG9jaXR5IiwiUG9sYXJWZWxvY2l0eSIsIlJhZGlhbFZlbG9jaXR5Il0sIm1hcHBpbmdzIjoiQUFBQSxTQUFTQSxPQUFPLElBQUlDLElBQXBCLFFBQWdDLFFBQWhDO0FBQ0EsU0FBU0QsT0FBTyxJQUFJRSxVQUFwQixRQUFzQyxjQUF0QztBQUNBLFNBQVNGLE9BQU8sSUFBSUcsZUFBcEIsUUFBMkMsbUJBQTNDO0FBQ0EsU0FBU0gsT0FBTyxJQUFJSSxJQUFwQixRQUFnQyxRQUFoQztBQUNBLFNBQVNKLE9BQU8sSUFBSUssSUFBcEIsUUFBZ0MsUUFBaEM7QUFDQSxTQUFTTCxPQUFPLElBQUlNLFFBQXBCLFFBQW9DLFlBQXBDO0FBQ0EsU0FBU04sT0FBTyxJQUFJTyxRQUFwQixRQUFvQyxZQUFwQztBQUNBLFNBQVNQLE9BQU8sSUFBSVEsTUFBcEIsUUFBa0MsVUFBbEM7QUFDQSxTQUFTUixPQUFPLElBQUlTLElBQXBCLFFBQWdDLFFBQWhDO0FBQ0EsU0FBU1QsT0FBTyxJQUFJVSxPQUFwQixRQUFtQyxXQUFuQztBQUNBLFNBQVNDLGNBQVQsRUFBeUJDLGFBQXpCLEVBQXdDQyxjQUF4QyxRQUE4RCxZQUE5RCIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IGRlZmF1bHQgYXMgQm9keSB9IGZyb20gJy4vQm9keSc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEJvZHlTcHJpdGUgfSBmcm9tICcuL0JvZHlTcHJpdGUnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBJbml0aWFsaXplclV0aWwgfSBmcm9tICcuL0luaXRpYWxpemVyVXRpbCc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIExpZmUgfSBmcm9tICcuL0xpZmUnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBNYXNzIH0gZnJvbSAnLi9NYXNzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgUG9zaXRpb24gfSBmcm9tICcuL1Bvc2l0aW9uJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgUm90YXRpb24gfSBmcm9tICcuL1JvdGF0aW9uJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgUmFkaXVzIH0gZnJvbSAnLi9SYWRpdXMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBSYXRlIH0gZnJvbSAnLi9SYXRlJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgVGV4dHVyZSB9IGZyb20gJy4vVGV4dHVyZSc7XG5leHBvcnQgeyBWZWN0b3JWZWxvY2l0eSwgUG9sYXJWZWxvY2l0eSwgUmFkaWFsVmVsb2NpdHkgfSBmcm9tICcuL1ZlbG9jaXR5JztcbiJdfQ== ================================================ FILE: packages/sdk/lib/core/libs/three-nebula/initializer/types.js ================================================ export const INITIALIZER_TYPE_ABSTRACT = 'Initializer'; export const INITIALIZER_TYPE_BODY = 'Body'; export const INITIALIZER_TYPE_BODY_SPRITE = 'BodySprite'; export const INITIALIZER_TYPE_TEXTURE = 'Texture'; export const INITIALIZER_TYPE_LIFE = 'Life'; export const INITIALIZER_TYPE_MASS = 'Mass'; export const INITIALIZER_TYPE_POSITION = 'Position'; export const INITIALIZER_TYPE_ROTATION = 'Rotation'; export const INITIALIZER_TYPE_RADIUS = 'Radius'; export const INITIALIZER_TYPE_ZONE = 'Zone'; export const INITIALIZER_TYPE_VECTOR_VELOCITY = 'VectorVelocity'; export const INITIALIZER_TYPE_POLAR_VELOCITY = 'PolarVelocity'; export const INITIALIZER_TYPE_RADIAL_VELOCITY = 'RadialVelocity'; export const INITIALIZER_TYPE_RATE = 'Rate'; export const INITIALIZER_TYPES_THAT_REQUIRE_THREE = [INITIALIZER_TYPE_BODY_SPRITE, INITIALIZER_TYPE_TEXTURE]; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9pbml0aWFsaXplci90eXBlcy5qcyJdLCJuYW1lcyI6WyJJTklUSUFMSVpFUl9UWVBFX0FCU1RSQUNUIiwiSU5JVElBTElaRVJfVFlQRV9CT0RZIiwiSU5JVElBTElaRVJfVFlQRV9CT0RZX1NQUklURSIsIklOSVRJQUxJWkVSX1RZUEVfVEVYVFVSRSIsIklOSVRJQUxJWkVSX1RZUEVfTElGRSIsIklOSVRJQUxJWkVSX1RZUEVfTUFTUyIsIklOSVRJQUxJWkVSX1RZUEVfUE9TSVRJT04iLCJJTklUSUFMSVpFUl9UWVBFX1JPVEFUSU9OIiwiSU5JVElBTElaRVJfVFlQRV9SQURJVVMiLCJJTklUSUFMSVpFUl9UWVBFX1pPTkUiLCJJTklUSUFMSVpFUl9UWVBFX1ZFQ1RPUl9WRUxPQ0lUWSIsIklOSVRJQUxJWkVSX1RZUEVfUE9MQVJfVkVMT0NJVFkiLCJJTklUSUFMSVpFUl9UWVBFX1JBRElBTF9WRUxPQ0lUWSIsIklOSVRJQUxJWkVSX1RZUEVfUkFURSIsIklOSVRJQUxJWkVSX1RZUEVTX1RIQVRfUkVRVUlSRV9USFJFRSJdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxNQUFNQSx5QkFBeUIsR0FBRyxhQUFsQztBQUNQLE9BQU8sTUFBTUMscUJBQXFCLEdBQUcsTUFBOUI7QUFDUCxPQUFPLE1BQU1DLDRCQUE0QixHQUFHLFlBQXJDO0FBQ1AsT0FBTyxNQUFNQyx3QkFBd0IsR0FBRyxTQUFqQztBQUNQLE9BQU8sTUFBTUMscUJBQXFCLEdBQUcsTUFBOUI7QUFDUCxPQUFPLE1BQU1DLHFCQUFxQixHQUFHLE1BQTlCO0FBQ1AsT0FBTyxNQUFNQyx5QkFBeUIsR0FBRyxVQUFsQztBQUNQLE9BQU8sTUFBTUMseUJBQXlCLEdBQUcsVUFBbEM7QUFDUCxPQUFPLE1BQU1DLHVCQUF1QixHQUFHLFFBQWhDO0FBQ1AsT0FBTyxNQUFNQyxxQkFBcUIsR0FBRyxNQUE5QjtBQUNQLE9BQU8sTUFBTUMsZ0NBQWdDLEdBQUcsZ0JBQXpDO0FBQ1AsT0FBTyxNQUFNQywrQkFBK0IsR0FBRyxlQUF4QztBQUNQLE9BQU8sTUFBTUMsZ0NBQWdDLEdBQUcsZ0JBQXpDO0FBQ1AsT0FBTyxNQUFNQyxxQkFBcUIsR0FBRyxNQUE5QjtBQUNQLE9BQU8sTUFBTUMsb0NBQW9DLEdBQUcsQ0FDbERaLDRCQURrRCxFQUVsREMsd0JBRmtELENBQTdDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IElOSVRJQUxJWkVSX1RZUEVfQUJTVFJBQ1QgPSAnSW5pdGlhbGl6ZXInO1xuZXhwb3J0IGNvbnN0IElOSVRJQUxJWkVSX1RZUEVfQk9EWSA9ICdCb2R5JztcbmV4cG9ydCBjb25zdCBJTklUSUFMSVpFUl9UWVBFX0JPRFlfU1BSSVRFID0gJ0JvZHlTcHJpdGUnO1xuZXhwb3J0IGNvbnN0IElOSVRJQUxJWkVSX1RZUEVfVEVYVFVSRSA9ICdUZXh0dXJlJztcbmV4cG9ydCBjb25zdCBJTklUSUFMSVpFUl9UWVBFX0xJRkUgPSAnTGlmZSc7XG5leHBvcnQgY29uc3QgSU5JVElBTElaRVJfVFlQRV9NQVNTID0gJ01hc3MnO1xuZXhwb3J0IGNvbnN0IElOSVRJQUxJWkVSX1RZUEVfUE9TSVRJT04gPSAnUG9zaXRpb24nO1xuZXhwb3J0IGNvbnN0IElOSVRJQUxJWkVSX1RZUEVfUk9UQVRJT04gPSAnUm90YXRpb24nO1xuZXhwb3J0IGNvbnN0IElOSVRJQUxJWkVSX1RZUEVfUkFESVVTID0gJ1JhZGl1cyc7XG5leHBvcnQgY29uc3QgSU5JVElBTElaRVJfVFlQRV9aT05FID0gJ1pvbmUnO1xuZXhwb3J0IGNvbnN0IElOSVRJQUxJWkVSX1RZUEVfVkVDVE9SX1ZFTE9DSVRZID0gJ1ZlY3RvclZlbG9jaXR5JztcbmV4cG9ydCBjb25zdCBJTklUSUFMSVpFUl9UWVBFX1BPTEFSX1ZFTE9DSVRZID0gJ1BvbGFyVmVsb2NpdHknO1xuZXhwb3J0IGNvbnN0IElOSVRJQUxJWkVSX1RZUEVfUkFESUFMX1ZFTE9DSVRZID0gJ1JhZGlhbFZlbG9jaXR5JztcbmV4cG9ydCBjb25zdCBJTklUSUFMSVpFUl9UWVBFX1JBVEUgPSAnUmF0ZSc7XG5leHBvcnQgY29uc3QgSU5JVElBTElaRVJfVFlQRVNfVEhBVF9SRVFVSVJFX1RIUkVFID0gW1xuICBJTklUSUFMSVpFUl9UWVBFX0JPRFlfU1BSSVRFLFxuICBJTklUSUFMSVpFUl9UWVBFX1RFWFRVUkUsXG5dO1xuIl19 ================================================ FILE: packages/sdk/lib/core/libs/three-nebula/math/ArraySpan.js ================================================ import Span from './Span'; import sample from '../utils/sample.js'; import { MATH_TYPE_ARRAY_SPAN as type } from './types'; /** * Class for storing items of mixed type and fetching a randomised * value from these items. * */ export default class ArraySpan extends Span { /** * Constructs an ArraySpan instance. * * @param {mixed|array} items - Items * @return void */ constructor(items) { super(); /** * @desc The class type. * @type {string} */ this.type = type; /** * @desc An array of colors * @type {array} */ this.items = Array.isArray(items) ? items : [items]; } /** * Gets a random item. * * @return {mixed} */ getValue() { return sample(this.items); } } /** * Attempts to create an ArraySpan from the items provided. * * @param {mixed} items - Items to try and create an ArraySpan from * @return {?ArraySpan} */ export const createArraySpan = items => { if (!items) { return null; } if (items instanceof ArraySpan) { return items; } return new ArraySpan(items); }; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9tYXRoL0FycmF5U3Bhbi5qcyJdLCJuYW1lcyI6WyJTcGFuIiwic2FtcGxlIiwiTUFUSF9UWVBFX0FSUkFZX1NQQU4iLCJ0eXBlIiwiQXJyYXlTcGFuIiwiY29uc3RydWN0b3IiLCJpdGVtcyIsIkFycmF5IiwiaXNBcnJheSIsImdldFZhbHVlIiwiY3JlYXRlQXJyYXlTcGFuIl0sIm1hcHBpbmdzIjoiQUFBQSxPQUFPQSxJQUFQLE1BQWlCLFFBQWpCO0FBQ0EsT0FBT0MsTUFBUCxNQUFtQixlQUFuQjtBQUNBLFNBQVNDLG9CQUFvQixJQUFJQyxJQUFqQyxRQUE2QyxTQUE3QztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBQ0EsZUFBZSxNQUFNQyxTQUFOLFNBQXdCSixJQUF4QixDQUE2QjtBQUMxQztBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDRUssRUFBQUEsV0FBVyxDQUFDQyxLQUFELEVBQVE7QUFDakI7QUFFQTtBQUNKO0FBQ0E7QUFDQTs7QUFDSSxTQUFLSCxJQUFMLEdBQVlBLElBQVo7QUFFQTtBQUNKO0FBQ0E7QUFDQTs7QUFDSSxTQUFLRyxLQUFMLEdBQWFDLEtBQUssQ0FBQ0MsT0FBTixDQUFjRixLQUFkLElBQXVCQSxLQUF2QixHQUErQixDQUFDQSxLQUFELENBQTVDO0FBQ0Q7QUFFRDtBQUNGO0FBQ0E7QUFDQTtBQUNBOzs7QUFDRUcsRUFBQUEsUUFBUSxHQUFHO0FBQ1QsV0FBT1IsTUFBTSxDQUFDLEtBQUtLLEtBQU4sQ0FBYjtBQUNEOztBQTlCeUM7QUFpQzVDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFDQSxPQUFPLE1BQU1JLGVBQWUsR0FBR0osS0FBSyxJQUFJO0FBQ3RDLE1BQUksQ0FBQ0EsS0FBTCxFQUFZO0FBQ1YsV0FBTyxJQUFQO0FBQ0Q7O0FBRUQsTUFBSUEsS0FBSyxZQUFZRixTQUFyQixFQUFnQztBQUM5QixXQUFPRSxLQUFQO0FBQ0Q7O0FBRUQsU0FBTyxJQUFJRixTQUFKLENBQWNFLEtBQWQsQ0FBUDtBQUNELENBVk0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgU3BhbiBmcm9tICcuL1NwYW4nO1xuaW1wb3J0IHNhbXBsZSBmcm9tICdsb2Rhc2gvc2FtcGxlJztcbmltcG9ydCB7IE1BVEhfVFlQRV9BUlJBWV9TUEFOIGFzIHR5cGUgfSBmcm9tICcuL3R5cGVzJztcblxuLyoqXG4gKiBDbGFzcyBmb3Igc3RvcmluZyBpdGVtcyBvZiBtaXhlZCB0eXBlIGFuZCBmZXRjaGluZyBhIHJhbmRvbWlzZWRcbiAqIHZhbHVlIGZyb20gdGhlc2UgaXRlbXMuXG4gKlxuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBBcnJheVNwYW4gZXh0ZW5kcyBTcGFuIHtcbiAgLyoqXG4gICAqIENvbnN0cnVjdHMgYW4gQXJyYXlTcGFuIGluc3RhbmNlLlxuICAgKlxuICAgKiBAcGFyYW0ge21peGVkfGFycmF5PG1peGVkPn0gaXRlbXMgLSBJdGVtc1xuICAgKiBAcmV0dXJuIHZvaWRcbiAgICovXG4gIGNvbnN0cnVjdG9yKGl0ZW1zKSB7XG4gICAgc3VwZXIoKTtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjIFRoZSBjbGFzcyB0eXBlLlxuICAgICAqIEB0eXBlIHtzdHJpbmd9XG4gICAgICovXG4gICAgdGhpcy50eXBlID0gdHlwZTtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjIEFuIGFycmF5IG9mIGNvbG9yc1xuICAgICAqIEB0eXBlIHthcnJheX1cbiAgICAgKi9cbiAgICB0aGlzLml0ZW1zID0gQXJyYXkuaXNBcnJheShpdGVtcykgPyBpdGVtcyA6IFtpdGVtc107XG4gIH1cblxuICAvKipcbiAgICogR2V0cyBhIHJhbmRvbSBpdGVtLlxuICAgKlxuICAgKiBAcmV0dXJuIHttaXhlZH1cbiAgICovXG4gIGdldFZhbHVlKCkge1xuICAgIHJldHVybiBzYW1wbGUodGhpcy5pdGVtcyk7XG4gIH1cbn1cblxuLyoqXG4gKiBBdHRlbXB0cyB0byBjcmVhdGUgYW4gQXJyYXlTcGFuIGZyb20gdGhlIGl0ZW1zIHByb3ZpZGVkLlxuICpcbiAqIEBwYXJhbSB7bWl4ZWR9IGl0ZW1zIC0gSXRlbXMgdG8gdHJ5IGFuZCBjcmVhdGUgYW4gQXJyYXlTcGFuIGZyb21cbiAqIEByZXR1cm4gez9BcnJheVNwYW59XG4gKi9cbmV4cG9ydCBjb25zdCBjcmVhdGVBcnJheVNwYW4gPSBpdGVtcyA9PiB7XG4gIGlmICghaXRlbXMpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGlmIChpdGVtcyBpbnN0YW5jZW9mIEFycmF5U3Bhbikge1xuICAgIHJldHVybiBpdGVtcztcbiAgfVxuXG4gIHJldHVybiBuZXcgQXJyYXlTcGFuKGl0ZW1zKTtcbn07XG4iXX0= ================================================ FILE: packages/sdk/lib/core/libs/three-nebula/math/Box.js ================================================ import { MATH_TYPE_BOX as type } from './types'; export default class Box { constructor(x, y, z, w, h, d) { /** * @desc The class type. * @type {string} */ this.type = type; this.x = x; this.y = y; this.z = z; this.width = w; this.height = h; this.depth = d; this.bottom = this.y + this.height; this.right = this.x + this.width; this.right = this.x + this.width; } contains(x, y, z) { if (x <= this.right && x >= this.x && y <= this.bottom && y >= this.y && z <= this.depth && z >= this.z) return true;else return false; } } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9tYXRoL0JveC5qcyJdLCJuYW1lcyI6WyJNQVRIX1RZUEVfQk9YIiwidHlwZSIsIkJveCIsImNvbnN0cnVjdG9yIiwieCIsInkiLCJ6IiwidyIsImgiLCJkIiwid2lkdGgiLCJoZWlnaHQiLCJkZXB0aCIsImJvdHRvbSIsInJpZ2h0IiwiY29udGFpbnMiXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLGFBQWEsSUFBSUMsSUFBMUIsUUFBc0MsU0FBdEM7QUFFQSxlQUFlLE1BQU1DLEdBQU4sQ0FBVTtBQUN2QkMsRUFBQUEsV0FBVyxDQUFDQyxDQUFELEVBQUlDLENBQUosRUFBT0MsQ0FBUCxFQUFVQyxDQUFWLEVBQWFDLENBQWIsRUFBZ0JDLENBQWhCLEVBQW1CO0FBQzVCO0FBQ0o7QUFDQTtBQUNBO0FBQ0ksU0FBS1IsSUFBTCxHQUFZQSxJQUFaO0FBQ0EsU0FBS0csQ0FBTCxHQUFTQSxDQUFUO0FBQ0EsU0FBS0MsQ0FBTCxHQUFTQSxDQUFUO0FBQ0EsU0FBS0MsQ0FBTCxHQUFTQSxDQUFUO0FBQ0EsU0FBS0ksS0FBTCxHQUFhSCxDQUFiO0FBQ0EsU0FBS0ksTUFBTCxHQUFjSCxDQUFkO0FBQ0EsU0FBS0ksS0FBTCxHQUFhSCxDQUFiO0FBQ0EsU0FBS0ksTUFBTCxHQUFjLEtBQUtSLENBQUwsR0FBUyxLQUFLTSxNQUE1QjtBQUNBLFNBQUtHLEtBQUwsR0FBYSxLQUFLVixDQUFMLEdBQVMsS0FBS00sS0FBM0I7QUFDQSxTQUFLSSxLQUFMLEdBQWEsS0FBS1YsQ0FBTCxHQUFTLEtBQUtNLEtBQTNCO0FBQ0Q7O0FBRURLLEVBQUFBLFFBQVEsQ0FBQ1gsQ0FBRCxFQUFJQyxDQUFKLEVBQU9DLENBQVAsRUFBVTtBQUNoQixRQUNFRixDQUFDLElBQUksS0FBS1UsS0FBVixJQUNBVixDQUFDLElBQUksS0FBS0EsQ0FEVixJQUVBQyxDQUFDLElBQUksS0FBS1EsTUFGVixJQUdBUixDQUFDLElBQUksS0FBS0EsQ0FIVixJQUlBQyxDQUFDLElBQUksS0FBS00sS0FKVixJQUtBTixDQUFDLElBQUksS0FBS0EsQ0FOWixFQVFFLE9BQU8sSUFBUCxDQVJGLEtBU0ssT0FBTyxLQUFQO0FBQ047O0FBN0JzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1BVEhfVFlQRV9CT1ggYXMgdHlwZSB9IGZyb20gJy4vdHlwZXMnO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBCb3gge1xuICBjb25zdHJ1Y3Rvcih4LCB5LCB6LCB3LCBoLCBkKSB7XG4gICAgLyoqXG4gICAgICogQGRlc2MgVGhlIGNsYXNzIHR5cGUuXG4gICAgICogQHR5cGUge3N0cmluZ31cbiAgICAgKi9cbiAgICB0aGlzLnR5cGUgPSB0eXBlO1xuICAgIHRoaXMueCA9IHg7XG4gICAgdGhpcy55ID0geTtcbiAgICB0aGlzLnogPSB6O1xuICAgIHRoaXMud2lkdGggPSB3O1xuICAgIHRoaXMuaGVpZ2h0ID0gaDtcbiAgICB0aGlzLmRlcHRoID0gZDtcbiAgICB0aGlzLmJvdHRvbSA9IHRoaXMueSArIHRoaXMuaGVpZ2h0O1xuICAgIHRoaXMucmlnaHQgPSB0aGlzLnggKyB0aGlzLndpZHRoO1xuICAgIHRoaXMucmlnaHQgPSB0aGlzLnggKyB0aGlzLndpZHRoO1xuICB9XG5cbiAgY29udGFpbnMoeCwgeSwgeikge1xuICAgIGlmIChcbiAgICAgIHggPD0gdGhpcy5yaWdodCAmJlxuICAgICAgeCA+PSB0aGlzLnggJiZcbiAgICAgIHkgPD0gdGhpcy5ib3R0b20gJiZcbiAgICAgIHkgPj0gdGhpcy55ICYmXG4gICAgICB6IDw9IHRoaXMuZGVwdGggJiZcbiAgICAgIHogPj0gdGhpcy56XG4gICAgKVxuICAgICAgcmV0dXJuIHRydWU7XG4gICAgZWxzZSByZXR1cm4gZmFsc2U7XG4gIH1cbn1cbiJdfQ== ================================================ FILE: packages/sdk/lib/core/libs/three-nebula/math/ColorSpan.js ================================================ import MathUtils from './MathUtils'; import Span from './Span'; import sample from '../utils/sample.js'; import { MATH_TYPE_COLOR_SPAN as type } from './types'; /** * Class for storing and interacting with an array of colours. * */ export default class ColorSpan extends Span { /** * Constructs a ColorSpan instance. * * @param {string|array} colors - A color or array of colors. If the * string 'random' is provided, a random color will be returned from getValue * @return void */ constructor(colors) { super(); /** * @desc The class type. * @type {string} */ this.type = type; /** * @desc Determines if a random color should be returned from the getValue method. * @type {boolean} */ this.shouldRandomize = colors === 'random' ? true : false; /** * @desc An array of colors to select from * @type {array} */ this.colors = Array.isArray(colors) ? colors : [colors]; } /** * Gets a color from the color array * or a random color if this.shouldRandomize is true. * * @return {string} a hex color */ getValue() { return this.shouldRandomize ? MathUtils.randomColor() : sample(this.colors); } } /** * Attempts to create an ArraySpan from the colors provided. * * @param {mixed} colors - colors to try and create an ArraySpan from * @return {?ColorSpan} */ export const createColorSpan = colors => { if (!colors) { console.warn(`Invalid colors argument ${colors} passed to createColorSpan. Defaulting to 'random'.`); colors = 'random'; } if (colors instanceof ColorSpan) { return colors; } return new ColorSpan(colors); }; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9tYXRoL0NvbG9yU3Bhbi5qcyJdLCJuYW1lcyI6WyJNYXRoVXRpbHMiLCJTcGFuIiwic2FtcGxlIiwiTUFUSF9UWVBFX0NPTE9SX1NQQU4iLCJ0eXBlIiwiQ29sb3JTcGFuIiwiY29uc3RydWN0b3IiLCJjb2xvcnMiLCJzaG91bGRSYW5kb21pemUiLCJBcnJheSIsImlzQXJyYXkiLCJnZXRWYWx1ZSIsInJhbmRvbUNvbG9yIiwiY3JlYXRlQ29sb3JTcGFuIiwiY29uc29sZSIsIndhcm4iXSwibWFwcGluZ3MiOiJBQUFBLE9BQU9BLFNBQVAsTUFBc0IsYUFBdEI7QUFDQSxPQUFPQyxJQUFQLE1BQWlCLFFBQWpCO0FBQ0EsT0FBT0MsTUFBUCxNQUFtQixlQUFuQjtBQUNBLFNBQVNDLG9CQUFvQixJQUFJQyxJQUFqQyxRQUE2QyxTQUE3QztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUNBLGVBQWUsTUFBTUMsU0FBTixTQUF3QkosSUFBeEIsQ0FBNkI7QUFDMUM7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDRUssRUFBQUEsV0FBVyxDQUFDQyxNQUFELEVBQVM7QUFDbEI7QUFFQTtBQUNKO0FBQ0E7QUFDQTs7QUFDSSxTQUFLSCxJQUFMLEdBQVlBLElBQVo7QUFFQTtBQUNKO0FBQ0E7QUFDQTs7QUFDSSxTQUFLSSxlQUFMLEdBQXVCRCxNQUFNLEtBQUssUUFBWCxHQUFzQixJQUF0QixHQUE2QixLQUFwRDtBQUVBO0FBQ0o7QUFDQTtBQUNBOztBQUNJLFNBQUtBLE1BQUwsR0FBY0UsS0FBSyxDQUFDQyxPQUFOLENBQWNILE1BQWQsSUFBd0JBLE1BQXhCLEdBQWlDLENBQUNBLE1BQUQsQ0FBL0M7QUFDRDtBQUVEO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQ0VJLEVBQUFBLFFBQVEsR0FBRztBQUNULFdBQU8sS0FBS0gsZUFBTCxHQUF1QlIsU0FBUyxDQUFDWSxXQUFWLEVBQXZCLEdBQWlEVixNQUFNLENBQUMsS0FBS0ssTUFBTixDQUE5RDtBQUNEOztBQXRDeUM7QUF5QzVDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFDQSxPQUFPLE1BQU1NLGVBQWUsR0FBR04sTUFBTSxJQUFJO0FBQ3ZDLE1BQUksQ0FBQ0EsTUFBTCxFQUFhO0FBQ1hPLElBQUFBLE9BQU8sQ0FBQ0MsSUFBUixDQUNHLDJCQUEwQlIsTUFBTyxxREFEcEM7QUFJQUEsSUFBQUEsTUFBTSxHQUFHLFFBQVQ7QUFDRDs7QUFFRCxNQUFJQSxNQUFNLFlBQVlGLFNBQXRCLEVBQWlDO0FBQy9CLFdBQU9FLE1BQVA7QUFDRDs7QUFFRCxTQUFPLElBQUlGLFNBQUosQ0FBY0UsTUFBZCxDQUFQO0FBQ0QsQ0FkTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBNYXRoVXRpbHMgZnJvbSAnLi9NYXRoVXRpbHMnO1xuaW1wb3J0IFNwYW4gZnJvbSAnLi9TcGFuJztcbmltcG9ydCBzYW1wbGUgZnJvbSAnbG9kYXNoL3NhbXBsZSc7XG5pbXBvcnQgeyBNQVRIX1RZUEVfQ09MT1JfU1BBTiBhcyB0eXBlIH0gZnJvbSAnLi90eXBlcyc7XG5cbi8qKlxuICogQ2xhc3MgZm9yIHN0b3JpbmcgYW5kIGludGVyYWN0aW5nIHdpdGggYW4gYXJyYXkgb2YgY29sb3Vycy5cbiAqXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIENvbG9yU3BhbiBleHRlbmRzIFNwYW4ge1xuICAvKipcbiAgICogQ29uc3RydWN0cyBhIENvbG9yU3BhbiBpbnN0YW5jZS5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd8YXJyYXk8c3RyaW5nPn0gY29sb3JzIC0gQSBjb2xvciBvciBhcnJheSBvZiBjb2xvcnMuIElmIHRoZVxuICAgKiBzdHJpbmcgJ3JhbmRvbScgaXMgcHJvdmlkZWQsIGEgcmFuZG9tIGNvbG9yIHdpbGwgYmUgcmV0dXJuZWQgZnJvbSBnZXRWYWx1ZVxuICAgKiBAcmV0dXJuIHZvaWRcbiAgICovXG4gIGNvbnN0cnVjdG9yKGNvbG9ycykge1xuICAgIHN1cGVyKCk7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzYyBUaGUgY2xhc3MgdHlwZS5cbiAgICAgKiBAdHlwZSB7c3RyaW5nfVxuICAgICAqL1xuICAgIHRoaXMudHlwZSA9IHR5cGU7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzYyBEZXRlcm1pbmVzIGlmIGEgcmFuZG9tIGNvbG9yIHNob3VsZCBiZSByZXR1cm5lZCBmcm9tIHRoZSBnZXRWYWx1ZSBtZXRob2QuXG4gICAgICogQHR5cGUge2Jvb2xlYW59XG4gICAgICovXG4gICAgdGhpcy5zaG91bGRSYW5kb21pemUgPSBjb2xvcnMgPT09ICdyYW5kb20nID8gdHJ1ZSA6IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2MgQW4gYXJyYXkgb2YgY29sb3JzIHRvIHNlbGVjdCBmcm9tXG4gICAgICogQHR5cGUge2FycmF5PHN0cmluZz59XG4gICAgICovXG4gICAgdGhpcy5jb2xvcnMgPSBBcnJheS5pc0FycmF5KGNvbG9ycykgPyBjb2xvcnMgOiBbY29sb3JzXTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIGEgY29sb3IgZnJvbSB0aGUgY29sb3IgYXJyYXlcbiAgICogb3IgYSByYW5kb20gY29sb3IgaWYgdGhpcy5zaG91bGRSYW5kb21pemUgaXMgdHJ1ZS5cbiAgICpcbiAgICogQHJldHVybiB7c3RyaW5nfSBhIGhleCBjb2xvclxuICAgKi9cbiAgZ2V0VmFsdWUoKSB7XG4gICAgcmV0dXJuIHRoaXMuc2hvdWxkUmFuZG9taXplID8gTWF0aFV0aWxzLnJhbmRvbUNvbG9yKCkgOiBzYW1wbGUodGhpcy5jb2xvcnMpO1xuICB9XG59XG5cbi8qKlxuICogQXR0ZW1wdHMgdG8gY3JlYXRlIGFuIEFycmF5U3BhbiBmcm9tIHRoZSBjb2xvcnMgcHJvdmlkZWQuXG4gKlxuICogQHBhcmFtIHttaXhlZH0gY29sb3JzIC0gY29sb3JzIHRvIHRyeSBhbmQgY3JlYXRlIGFuIEFycmF5U3BhbiBmcm9tXG4gKiBAcmV0dXJuIHs/Q29sb3JTcGFufVxuICovXG5leHBvcnQgY29uc3QgY3JlYXRlQ29sb3JTcGFuID0gY29sb3JzID0+IHtcbiAgaWYgKCFjb2xvcnMpIHtcbiAgICBjb25zb2xlLndhcm4oXG4gICAgICBgSW52YWxpZCBjb2xvcnMgYXJndW1lbnQgJHtjb2xvcnN9IHBhc3NlZCB0byBjcmVhdGVDb2xvclNwYW4uIERlZmF1bHRpbmcgdG8gJ3JhbmRvbScuYFxuICAgICk7XG5cbiAgICBjb2xvcnMgPSAncmFuZG9tJztcbiAgfVxuXG4gIGlmIChjb2xvcnMgaW5zdGFuY2VvZiBDb2xvclNwYW4pIHtcbiAgICByZXR1cm4gY29sb3JzO1xuICB9XG5cbiAgcmV0dXJuIG5ldyBDb2xvclNwYW4oY29sb3JzKTtcbn07XG4iXX0= ================================================ FILE: packages/sdk/lib/core/libs/three-nebula/math/MathUtils.js ================================================ import { PI } from '../constants'; export default { randomAToB: function (a, b, INT) { if (!INT) return a + Math.random() * (b - a);else return (Math.random() * (b - a) >> 0) + a; }, randomFloating: function (center, f, INT) { return this.randomAToB(center - f, center + f, INT); }, randomZone: function (display) {}, //eslint-disable-line degreeTransform: function (a) { return a * PI / 180; }, toColor16: function getRGB(num) { return '#' + num.toString(16); }, randomColor: function () { return '#' + ('00000' + (Math.random() * 0x1000000 << 0).toString(16)).slice(-6); }, lerp: function (a, b, energy) { return b + (a - b) * energy; }, getNormal: function (v, n) { if (v.x == 0 && v.y == 0) { if (v.z == 0) n.set(1, 0, 1);else n.set(1, 1, -v.y / v.z); } else { if (v.x == 0) n.set(1, 0, 1);else n.set(-v.y / v.x, 1, 1); } return n.normalize(); }, /** * Rodrigues' Rotation Formula * https://en.wikipedia.org/wiki/Rodrigues%27_rotation_formula * v′ = vcos(θ) + k(k⋅v)(1−cos(θ)) + (k*v)sin(θ) */ axisRotate: function (v0, v, k, tha) { var cos = Math.cos(tha); var sin = Math.sin(tha); var p = k.dot(v) * (1 - cos); v0.copy(k); v0.cross(v).scalar(sin); v0.addValue(v.x * cos, v.y * cos, v.z * cos); v0.addValue(k.x * p, k.y * p, k.z * p); } }; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9tYXRoL01hdGhVdGlscy5qcyJdLCJuYW1lcyI6WyJQSSIsInJhbmRvbUFUb0IiLCJhIiwiYiIsIklOVCIsIk1hdGgiLCJyYW5kb20iLCJyYW5kb21GbG9hdGluZyIsImNlbnRlciIsImYiLCJyYW5kb21ab25lIiwiZGlzcGxheSIsImRlZ3JlZVRyYW5zZm9ybSIsInRvQ29sb3IxNiIsImdldFJHQiIsIm51bSIsInRvU3RyaW5nIiwicmFuZG9tQ29sb3IiLCJzbGljZSIsImxlcnAiLCJlbmVyZ3kiLCJnZXROb3JtYWwiLCJ2IiwibiIsIngiLCJ5IiwieiIsInNldCIsIm5vcm1hbGl6ZSIsImF4aXNSb3RhdGUiLCJ2MCIsImsiLCJ0aGEiLCJjb3MiLCJzaW4iLCJwIiwiZG90IiwiY29weSIsImNyb3NzIiwic2NhbGFyIiwiYWRkVmFsdWUiXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLEVBQVQsUUFBbUIsY0FBbkI7QUFFQSxlQUFlO0FBQ2JDLEVBQUFBLFVBQVUsRUFBRSxVQUFTQyxDQUFULEVBQVlDLENBQVosRUFBZUMsR0FBZixFQUFvQjtBQUM5QixRQUFJLENBQUNBLEdBQUwsRUFBVSxPQUFPRixDQUFDLEdBQUdHLElBQUksQ0FBQ0MsTUFBTCxNQUFpQkgsQ0FBQyxHQUFHRCxDQUFyQixDQUFYLENBQVYsS0FDSyxPQUFPLENBQUVHLElBQUksQ0FBQ0MsTUFBTCxNQUFpQkgsQ0FBQyxHQUFHRCxDQUFyQixDQUFELElBQTZCLENBQTlCLElBQW1DQSxDQUExQztBQUNOLEdBSlk7QUFLYkssRUFBQUEsY0FBYyxFQUFFLFVBQVNDLE1BQVQsRUFBaUJDLENBQWpCLEVBQW9CTCxHQUFwQixFQUF5QjtBQUN2QyxXQUFPLEtBQUtILFVBQUwsQ0FBZ0JPLE1BQU0sR0FBR0MsQ0FBekIsRUFBNEJELE1BQU0sR0FBR0MsQ0FBckMsRUFBd0NMLEdBQXhDLENBQVA7QUFDRCxHQVBZO0FBU2JNLEVBQUFBLFVBQVUsRUFBRSxVQUFTQyxPQUFULEVBQWtCLENBQUUsQ0FUbkI7QUFTcUI7QUFFbENDLEVBQUFBLGVBQWUsRUFBRSxVQUFTVixDQUFULEVBQVk7QUFDM0IsV0FBUUEsQ0FBQyxHQUFHRixFQUFMLEdBQVcsR0FBbEI7QUFDRCxHQWJZO0FBZWJhLEVBQUFBLFNBQVMsRUFBRSxTQUFTQyxNQUFULENBQWdCQyxHQUFoQixFQUFxQjtBQUM5QixXQUFPLE1BQU1BLEdBQUcsQ0FBQ0MsUUFBSixDQUFhLEVBQWIsQ0FBYjtBQUNELEdBakJZO0FBbUJiQyxFQUFBQSxXQUFXLEVBQUUsWUFBVztBQUN0QixXQUNFLE1BQ0EsQ0FBQyxVQUFVLENBQUVaLElBQUksQ0FBQ0MsTUFBTCxLQUFnQixTQUFqQixJQUErQixDQUFoQyxFQUFtQ1UsUUFBbkMsQ0FBNEMsRUFBNUMsQ0FBWCxFQUE0REUsS0FBNUQsQ0FBa0UsQ0FBQyxDQUFuRSxDQUZGO0FBSUQsR0F4Qlk7QUEwQmJDLEVBQUFBLElBQUksRUFBRSxVQUFTakIsQ0FBVCxFQUFZQyxDQUFaLEVBQWVpQixNQUFmLEVBQXVCO0FBQzNCLFdBQU9qQixDQUFDLEdBQUcsQ0FBQ0QsQ0FBQyxHQUFHQyxDQUFMLElBQVVpQixNQUFyQjtBQUNELEdBNUJZO0FBOEJiQyxFQUFBQSxTQUFTLEVBQUUsVUFBU0MsQ0FBVCxFQUFZQyxDQUFaLEVBQWU7QUFDeEIsUUFBSUQsQ0FBQyxDQUFDRSxDQUFGLElBQU8sQ0FBUCxJQUFZRixDQUFDLENBQUNHLENBQUYsSUFBTyxDQUF2QixFQUEwQjtBQUN4QixVQUFJSCxDQUFDLENBQUNJLENBQUYsSUFBTyxDQUFYLEVBQWNILENBQUMsQ0FBQ0ksR0FBRixDQUFNLENBQU4sRUFBUyxDQUFULEVBQVksQ0FBWixFQUFkLEtBQ0tKLENBQUMsQ0FBQ0ksR0FBRixDQUFNLENBQU4sRUFBUyxDQUFULEVBQVksQ0FBQ0wsQ0FBQyxDQUFDRyxDQUFILEdBQU9ILENBQUMsQ0FBQ0ksQ0FBckI7QUFDTixLQUhELE1BR087QUFDTCxVQUFJSixDQUFDLENBQUNFLENBQUYsSUFBTyxDQUFYLEVBQWNELENBQUMsQ0FBQ0ksR0FBRixDQUFNLENBQU4sRUFBUyxDQUFULEVBQVksQ0FBWixFQUFkLEtBQ0tKLENBQUMsQ0FBQ0ksR0FBRixDQUFNLENBQUNMLENBQUMsQ0FBQ0csQ0FBSCxHQUFPSCxDQUFDLENBQUNFLENBQWYsRUFBa0IsQ0FBbEIsRUFBcUIsQ0FBckI7QUFDTjs7QUFFRCxXQUFPRCxDQUFDLENBQUNLLFNBQUYsRUFBUDtBQUNELEdBeENZOztBQTBDYjtBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0VDLEVBQUFBLFVBQVUsRUFBRSxVQUFTQyxFQUFULEVBQWFSLENBQWIsRUFBZ0JTLENBQWhCLEVBQW1CQyxHQUFuQixFQUF3QjtBQUNsQyxRQUFJQyxHQUFHLEdBQUc1QixJQUFJLENBQUM0QixHQUFMLENBQVNELEdBQVQsQ0FBVjtBQUNBLFFBQUlFLEdBQUcsR0FBRzdCLElBQUksQ0FBQzZCLEdBQUwsQ0FBU0YsR0FBVCxDQUFWO0FBQ0EsUUFBSUcsQ0FBQyxHQUFHSixDQUFDLENBQUNLLEdBQUYsQ0FBTWQsQ0FBTixLQUFZLElBQUlXLEdBQWhCLENBQVI7QUFFQUgsSUFBQUEsRUFBRSxDQUFDTyxJQUFILENBQVFOLENBQVI7QUFDQUQsSUFBQUEsRUFBRSxDQUFDUSxLQUFILENBQVNoQixDQUFULEVBQVlpQixNQUFaLENBQW1CTCxHQUFuQjtBQUNBSixJQUFBQSxFQUFFLENBQUNVLFFBQUgsQ0FBWWxCLENBQUMsQ0FBQ0UsQ0FBRixHQUFNUyxHQUFsQixFQUF1QlgsQ0FBQyxDQUFDRyxDQUFGLEdBQU1RLEdBQTdCLEVBQWtDWCxDQUFDLENBQUNJLENBQUYsR0FBTU8sR0FBeEM7QUFDQUgsSUFBQUEsRUFBRSxDQUFDVSxRQUFILENBQVlULENBQUMsQ0FBQ1AsQ0FBRixHQUFNVyxDQUFsQixFQUFxQkosQ0FBQyxDQUFDTixDQUFGLEdBQU1VLENBQTNCLEVBQThCSixDQUFDLENBQUNMLENBQUYsR0FBTVMsQ0FBcEM7QUFDRDtBQXhEWSxDQUFmIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUEkgfSBmcm9tICcuLi9jb25zdGFudHMnO1xuXG5leHBvcnQgZGVmYXVsdCB7XG4gIHJhbmRvbUFUb0I6IGZ1bmN0aW9uKGEsIGIsIElOVCkge1xuICAgIGlmICghSU5UKSByZXR1cm4gYSArIE1hdGgucmFuZG9tKCkgKiAoYiAtIGEpO1xuICAgIGVsc2UgcmV0dXJuICgoTWF0aC5yYW5kb20oKSAqIChiIC0gYSkpID4+IDApICsgYTtcbiAgfSxcbiAgcmFuZG9tRmxvYXRpbmc6IGZ1bmN0aW9uKGNlbnRlciwgZiwgSU5UKSB7XG4gICAgcmV0dXJuIHRoaXMucmFuZG9tQVRvQihjZW50ZXIgLSBmLCBjZW50ZXIgKyBmLCBJTlQpO1xuICB9LFxuXG4gIHJhbmRvbVpvbmU6IGZ1bmN0aW9uKGRpc3BsYXkpIHt9LCAvL2VzbGludC1kaXNhYmxlLWxpbmVcblxuICBkZWdyZWVUcmFuc2Zvcm06IGZ1bmN0aW9uKGEpIHtcbiAgICByZXR1cm4gKGEgKiBQSSkgLyAxODA7XG4gIH0sXG5cbiAgdG9Db2xvcjE2OiBmdW5jdGlvbiBnZXRSR0IobnVtKSB7XG4gICAgcmV0dXJuICcjJyArIG51bS50b1N0cmluZygxNik7XG4gIH0sXG5cbiAgcmFuZG9tQ29sb3I6IGZ1bmN0aW9uKCkge1xuICAgIHJldHVybiAoXG4gICAgICAnIycgK1xuICAgICAgKCcwMDAwMCcgKyAoKE1hdGgucmFuZG9tKCkgKiAweDEwMDAwMDApIDw8IDApLnRvU3RyaW5nKDE2KSkuc2xpY2UoLTYpXG4gICAgKTtcbiAgfSxcblxuICBsZXJwOiBmdW5jdGlvbihhLCBiLCBlbmVyZ3kpIHtcbiAgICByZXR1cm4gYiArIChhIC0gYikgKiBlbmVyZ3k7XG4gIH0sXG5cbiAgZ2V0Tm9ybWFsOiBmdW5jdGlvbih2LCBuKSB7XG4gICAgaWYgKHYueCA9PSAwICYmIHYueSA9PSAwKSB7XG4gICAgICBpZiAodi56ID09IDApIG4uc2V0KDEsIDAsIDEpO1xuICAgICAgZWxzZSBuLnNldCgxLCAxLCAtdi55IC8gdi56KTtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHYueCA9PSAwKSBuLnNldCgxLCAwLCAxKTtcbiAgICAgIGVsc2Ugbi5zZXQoLXYueSAvIHYueCwgMSwgMSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG4ubm9ybWFsaXplKCk7XG4gIH0sXG5cbiAgLyoqXG4gICAqIFJvZHJpZ3VlcycgUm90YXRpb24gRm9ybXVsYVxuICAgKiBodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9Sb2RyaWd1ZXMlMjdfcm90YXRpb25fZm9ybXVsYVxuICAgKiB24oCyID0gdmNvcyjOuCkgKyBrKGvii4V2KSgx4oiSY29zKM64KSkgKyAoayp2KXNpbijOuClcbiAgICovXG4gIGF4aXNSb3RhdGU6IGZ1bmN0aW9uKHYwLCB2LCBrLCB0aGEpIHtcbiAgICB2YXIgY29zID0gTWF0aC5jb3ModGhhKTtcbiAgICB2YXIgc2luID0gTWF0aC5zaW4odGhhKTtcbiAgICB2YXIgcCA9IGsuZG90KHYpICogKDEgLSBjb3MpO1xuXG4gICAgdjAuY29weShrKTtcbiAgICB2MC5jcm9zcyh2KS5zY2FsYXIoc2luKTtcbiAgICB2MC5hZGRWYWx1ZSh2LnggKiBjb3MsIHYueSAqIGNvcywgdi56ICogY29zKTtcbiAgICB2MC5hZGRWYWx1ZShrLnggKiBwLCBrLnkgKiBwLCBrLnogKiBwKTtcbiAgfVxufTtcbiJdfQ== ================================================ FILE: packages/sdk/lib/core/libs/three-nebula/math/Polar3D.js ================================================ import Vector3D from './Vector3D'; import { MATH_TYPE_POLAR_3D as type } from './types'; export default class Polar3D { constructor(radius, theta, phi) { /** * @desc The class type. * @type {string} */ this.type = type; this.radius = radius || 1; this.phi = phi || 0; this.theta = theta || 0; } set(radius, theta, phi) { this.radius = radius || 1; this.phi = phi || 0; this.theta = theta || 0; return this; } setRadius(radius) { this.radius = radius; return this; } setPhi(phi) { this.phi = phi; return this; } setTheta(theta) { this.theta = theta; return this; } copy(p) { this.radius = p.radius; this.phi = p.phi; this.theta = p.theta; return this; } toVector3D() { return new Vector3D(this.getX(), this.getY(), this.getZ()); } getX() { return this.radius * Math.sin(this.theta) * Math.cos(this.phi); } getY() { return -this.radius * Math.sin(this.theta) * Math.sin(this.phi); } getZ() { return this.radius * Math.cos(this.theta); } normalize() { this.radius = 1; return this; } equals(v) { return v.radius === this.radius && v.phi === this.phi && v.theta === this.theta; } clear() { this.radius = 0.0; this.phi = 0.0; this.theta = 0.0; return this; } clone() { return new Polar3D(this.radius, this.phi, this.theta); } } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9tYXRoL1BvbGFyM0QuanMiXSwibmFtZXMiOlsiVmVjdG9yM0QiLCJNQVRIX1RZUEVfUE9MQVJfM0QiLCJ0eXBlIiwiUG9sYXIzRCIsImNvbnN0cnVjdG9yIiwicmFkaXVzIiwidGhldGEiLCJwaGkiLCJzZXQiLCJzZXRSYWRpdXMiLCJzZXRQaGkiLCJzZXRUaGV0YSIsImNvcHkiLCJwIiwidG9WZWN0b3IzRCIsImdldFgiLCJnZXRZIiwiZ2V0WiIsIk1hdGgiLCJzaW4iLCJjb3MiLCJub3JtYWxpemUiLCJlcXVhbHMiLCJ2IiwiY2xlYXIiLCJjbG9uZSJdLCJtYXBwaW5ncyI6IkFBQUEsT0FBT0EsUUFBUCxNQUFxQixZQUFyQjtBQUNBLFNBQVNDLGtCQUFrQixJQUFJQyxJQUEvQixRQUEyQyxTQUEzQztBQUVBLGVBQWUsTUFBTUMsT0FBTixDQUFjO0FBQzNCQyxFQUFBQSxXQUFXLENBQUNDLE1BQUQsRUFBU0MsS0FBVCxFQUFnQkMsR0FBaEIsRUFBcUI7QUFDOUI7QUFDSjtBQUNBO0FBQ0E7QUFDSSxTQUFLTCxJQUFMLEdBQVlBLElBQVo7QUFDQSxTQUFLRyxNQUFMLEdBQWNBLE1BQU0sSUFBSSxDQUF4QjtBQUNBLFNBQUtFLEdBQUwsR0FBV0EsR0FBRyxJQUFJLENBQWxCO0FBQ0EsU0FBS0QsS0FBTCxHQUFhQSxLQUFLLElBQUksQ0FBdEI7QUFDRDs7QUFFREUsRUFBQUEsR0FBRyxDQUFDSCxNQUFELEVBQVNDLEtBQVQsRUFBZ0JDLEdBQWhCLEVBQXFCO0FBQ3RCLFNBQUtGLE1BQUwsR0FBY0EsTUFBTSxJQUFJLENBQXhCO0FBQ0EsU0FBS0UsR0FBTCxHQUFXQSxHQUFHLElBQUksQ0FBbEI7QUFDQSxTQUFLRCxLQUFMLEdBQWFBLEtBQUssSUFBSSxDQUF0QjtBQUVBLFdBQU8sSUFBUDtBQUNEOztBQUVERyxFQUFBQSxTQUFTLENBQUNKLE1BQUQsRUFBUztBQUNoQixTQUFLQSxNQUFMLEdBQWNBLE1BQWQ7QUFFQSxXQUFPLElBQVA7QUFDRDs7QUFFREssRUFBQUEsTUFBTSxDQUFDSCxHQUFELEVBQU07QUFDVixTQUFLQSxHQUFMLEdBQVdBLEdBQVg7QUFFQSxXQUFPLElBQVA7QUFDRDs7QUFFREksRUFBQUEsUUFBUSxDQUFDTCxLQUFELEVBQVE7QUFDZCxTQUFLQSxLQUFMLEdBQWFBLEtBQWI7QUFFQSxXQUFPLElBQVA7QUFDRDs7QUFFRE0sRUFBQUEsSUFBSSxDQUFDQyxDQUFELEVBQUk7QUFDTixTQUFLUixNQUFMLEdBQWNRLENBQUMsQ0FBQ1IsTUFBaEI7QUFDQSxTQUFLRSxHQUFMLEdBQVdNLENBQUMsQ0FBQ04sR0FBYjtBQUNBLFNBQUtELEtBQUwsR0FBYU8sQ0FBQyxDQUFDUCxLQUFmO0FBRUEsV0FBTyxJQUFQO0FBQ0Q7O0FBRURRLEVBQUFBLFVBQVUsR0FBRztBQUNYLFdBQU8sSUFBSWQsUUFBSixDQUFhLEtBQUtlLElBQUwsRUFBYixFQUEwQixLQUFLQyxJQUFMLEVBQTFCLEVBQXVDLEtBQUtDLElBQUwsRUFBdkMsQ0FBUDtBQUNEOztBQUVERixFQUFBQSxJQUFJLEdBQUc7QUFDTCxXQUFPLEtBQUtWLE1BQUwsR0FBY2EsSUFBSSxDQUFDQyxHQUFMLENBQVMsS0FBS2IsS0FBZCxDQUFkLEdBQXFDWSxJQUFJLENBQUNFLEdBQUwsQ0FBUyxLQUFLYixHQUFkLENBQTVDO0FBQ0Q7O0FBRURTLEVBQUFBLElBQUksR0FBRztBQUNMLFdBQU8sQ0FBQyxLQUFLWCxNQUFOLEdBQWVhLElBQUksQ0FBQ0MsR0FBTCxDQUFTLEtBQUtiLEtBQWQsQ0FBZixHQUFzQ1ksSUFBSSxDQUFDQyxHQUFMLENBQVMsS0FBS1osR0FBZCxDQUE3QztBQUNEOztBQUVEVSxFQUFBQSxJQUFJLEdBQUc7QUFDTCxXQUFPLEtBQUtaLE1BQUwsR0FBY2EsSUFBSSxDQUFDRSxHQUFMLENBQVMsS0FBS2QsS0FBZCxDQUFyQjtBQUNEOztBQUVEZSxFQUFBQSxTQUFTLEdBQUc7QUFDVixTQUFLaEIsTUFBTCxHQUFjLENBQWQ7QUFFQSxXQUFPLElBQVA7QUFDRDs7QUFFRGlCLEVBQUFBLE1BQU0sQ0FBQ0MsQ0FBRCxFQUFJO0FBQ1IsV0FDRUEsQ0FBQyxDQUFDbEIsTUFBRixLQUFhLEtBQUtBLE1BQWxCLElBQTRCa0IsQ0FBQyxDQUFDaEIsR0FBRixLQUFVLEtBQUtBLEdBQTNDLElBQWtEZ0IsQ0FBQyxDQUFDakIsS0FBRixLQUFZLEtBQUtBLEtBRHJFO0FBR0Q7O0FBRURrQixFQUFBQSxLQUFLLEdBQUc7QUFDTixTQUFLbkIsTUFBTCxHQUFjLEdBQWQ7QUFDQSxTQUFLRSxHQUFMLEdBQVcsR0FBWDtBQUNBLFNBQUtELEtBQUwsR0FBYSxHQUFiO0FBRUEsV0FBTyxJQUFQO0FBQ0Q7O0FBRURtQixFQUFBQSxLQUFLLEdBQUc7QUFDTixXQUFPLElBQUl0QixPQUFKLENBQVksS0FBS0UsTUFBakIsRUFBeUIsS0FBS0UsR0FBOUIsRUFBbUMsS0FBS0QsS0FBeEMsQ0FBUDtBQUNEOztBQXBGMEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgVmVjdG9yM0QgZnJvbSAnLi9WZWN0b3IzRCc7XG5pbXBvcnQgeyBNQVRIX1RZUEVfUE9MQVJfM0QgYXMgdHlwZSB9IGZyb20gJy4vdHlwZXMnO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBQb2xhcjNEIHtcbiAgY29uc3RydWN0b3IocmFkaXVzLCB0aGV0YSwgcGhpKSB7XG4gICAgLyoqXG4gICAgICogQGRlc2MgVGhlIGNsYXNzIHR5cGUuXG4gICAgICogQHR5cGUge3N0cmluZ31cbiAgICAgKi9cbiAgICB0aGlzLnR5cGUgPSB0eXBlO1xuICAgIHRoaXMucmFkaXVzID0gcmFkaXVzIHx8IDE7XG4gICAgdGhpcy5waGkgPSBwaGkgfHwgMDtcbiAgICB0aGlzLnRoZXRhID0gdGhldGEgfHwgMDtcbiAgfVxuXG4gIHNldChyYWRpdXMsIHRoZXRhLCBwaGkpIHtcbiAgICB0aGlzLnJhZGl1cyA9IHJhZGl1cyB8fCAxO1xuICAgIHRoaXMucGhpID0gcGhpIHx8IDA7XG4gICAgdGhpcy50aGV0YSA9IHRoZXRhIHx8IDA7XG5cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHNldFJhZGl1cyhyYWRpdXMpIHtcbiAgICB0aGlzLnJhZGl1cyA9IHJhZGl1cztcblxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgc2V0UGhpKHBoaSkge1xuICAgIHRoaXMucGhpID0gcGhpO1xuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBzZXRUaGV0YSh0aGV0YSkge1xuICAgIHRoaXMudGhldGEgPSB0aGV0YTtcblxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgY29weShwKSB7XG4gICAgdGhpcy5yYWRpdXMgPSBwLnJhZGl1cztcbiAgICB0aGlzLnBoaSA9IHAucGhpO1xuICAgIHRoaXMudGhldGEgPSBwLnRoZXRhO1xuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICB0b1ZlY3RvcjNEKCkge1xuICAgIHJldHVybiBuZXcgVmVjdG9yM0QodGhpcy5nZXRYKCksIHRoaXMuZ2V0WSgpLCB0aGlzLmdldFooKSk7XG4gIH1cblxuICBnZXRYKCkge1xuICAgIHJldHVybiB0aGlzLnJhZGl1cyAqIE1hdGguc2luKHRoaXMudGhldGEpICogTWF0aC5jb3ModGhpcy5waGkpO1xuICB9XG5cbiAgZ2V0WSgpIHtcbiAgICByZXR1cm4gLXRoaXMucmFkaXVzICogTWF0aC5zaW4odGhpcy50aGV0YSkgKiBNYXRoLnNpbih0aGlzLnBoaSk7XG4gIH1cblxuICBnZXRaKCkge1xuICAgIHJldHVybiB0aGlzLnJhZGl1cyAqIE1hdGguY29zKHRoaXMudGhldGEpO1xuICB9XG5cbiAgbm9ybWFsaXplKCkge1xuICAgIHRoaXMucmFkaXVzID0gMTtcblxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgZXF1YWxzKHYpIHtcbiAgICByZXR1cm4gKFxuICAgICAgdi5yYWRpdXMgPT09IHRoaXMucmFkaXVzICYmIHYucGhpID09PSB0aGlzLnBoaSAmJiB2LnRoZXRhID09PSB0aGlzLnRoZXRhXG4gICAgKTtcbiAgfVxuXG4gIGNsZWFyKCkge1xuICAgIHRoaXMucmFkaXVzID0gMC4wO1xuICAgIHRoaXMucGhpID0gMC4wO1xuICAgIHRoaXMudGhldGEgPSAwLjA7XG5cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIGNsb25lKCkge1xuICAgIHJldHVybiBuZXcgUG9sYXIzRCh0aGlzLnJhZGl1cywgdGhpcy5waGksIHRoaXMudGhldGEpO1xuICB9XG59XG4iXX0= ================================================ FILE: packages/sdk/lib/core/libs/three-nebula/math/Span.js ================================================ import MathUtils from './MathUtils'; import Util from '../utils/Util'; import { MATH_TYPE_SPAN as type } from './types'; export default class Span { /** * Span Class. Get a random Number from a to b. Or from c-a to c+b * @param {Number|Array} a - min number * @param {Number} b - max number * @param {Number} center - the center's z value * @example * var span = new Span(0,30); * or * var span = new Span(["#fff","#ff0","#000"]); * or * var span = new Span(5,1,"center"); * @extends {Zone} * @constructor */ constructor(a, b, center = false) { this._isArray = false; /** * @desc The class type. * @type {string} */ this.type = type; if (Util.isArray(a)) { this._isArray = true; this.a = a; } else { this.a = Util.initValue(a, 1); this.b = Util.initValue(b, this.a); this._center = Util.initValue(center, false); } } /** * Span.getValue function * @name get a random Number from a to b. Or get a random Number from c-a to c+b * @param {number} INT or int * @return {number} a random Number */ getValue(INT) { if (this._isArray) { return this.a[this.a.length * Math.random() >> 0]; } else { if (!this._center) return MathUtils.randomAToB(this.a, this.b, INT);else return MathUtils.randomFloating(this.a, this.b, INT); } } } export const createSpan = (a, b, c) => { if (a instanceof Span) return a; if (b === undefined) { return new Span(a); } else { if (c === undefined) return new Span(a, b);else return new Span(a, b, c); } }; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9tYXRoL1NwYW4uanMiXSwibmFtZXMiOlsiTWF0aFV0aWxzIiwiVXRpbCIsIk1BVEhfVFlQRV9TUEFOIiwidHlwZSIsIlNwYW4iLCJjb25zdHJ1Y3RvciIsImEiLCJiIiwiY2VudGVyIiwiX2lzQXJyYXkiLCJpc0FycmF5IiwiaW5pdFZhbHVlIiwiX2NlbnRlciIsImdldFZhbHVlIiwiSU5UIiwibGVuZ3RoIiwiTWF0aCIsInJhbmRvbSIsInJhbmRvbUFUb0IiLCJyYW5kb21GbG9hdGluZyIsImNyZWF0ZVNwYW4iLCJjIiwidW5kZWZpbmVkIl0sIm1hcHBpbmdzIjoiQUFBQSxPQUFPQSxTQUFQLE1BQXNCLGFBQXRCO0FBQ0EsT0FBT0MsSUFBUCxNQUFpQixlQUFqQjtBQUNBLFNBQVNDLGNBQWMsSUFBSUMsSUFBM0IsUUFBdUMsU0FBdkM7QUFFQSxlQUFlLE1BQU1DLElBQU4sQ0FBVztBQUN4QjtBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0VDLEVBQUFBLFdBQVcsQ0FBQ0MsQ0FBRCxFQUFJQyxDQUFKLEVBQU9DLE1BQVAsRUFBZTtBQUN4QixTQUFLQyxRQUFMLEdBQWdCLEtBQWhCO0FBRUE7QUFDSjtBQUNBO0FBQ0E7O0FBQ0ksU0FBS04sSUFBTCxHQUFZQSxJQUFaOztBQUVBLFFBQUlGLElBQUksQ0FBQ1MsT0FBTCxDQUFhSixDQUFiLENBQUosRUFBcUI7QUFDbkIsV0FBS0csUUFBTCxHQUFnQixJQUFoQjtBQUNBLFdBQUtILENBQUwsR0FBU0EsQ0FBVDtBQUNELEtBSEQsTUFHTztBQUNMLFdBQUtBLENBQUwsR0FBU0wsSUFBSSxDQUFDVSxTQUFMLENBQWVMLENBQWYsRUFBa0IsQ0FBbEIsQ0FBVDtBQUNBLFdBQUtDLENBQUwsR0FBU04sSUFBSSxDQUFDVSxTQUFMLENBQWVKLENBQWYsRUFBa0IsS0FBS0QsQ0FBdkIsQ0FBVDtBQUNBLFdBQUtNLE9BQUwsR0FBZVgsSUFBSSxDQUFDVSxTQUFMLENBQWVILE1BQWYsRUFBdUIsS0FBdkIsQ0FBZjtBQUNEO0FBQ0Y7QUFFRDtBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUNFSyxFQUFBQSxRQUFRLENBQUNDLEdBQUQsRUFBTTtBQUNaLFFBQUksS0FBS0wsUUFBVCxFQUFtQjtBQUNqQixhQUFPLEtBQUtILENBQUwsQ0FBUSxLQUFLQSxDQUFMLENBQU9TLE1BQVAsR0FBZ0JDLElBQUksQ0FBQ0MsTUFBTCxFQUFqQixJQUFtQyxDQUExQyxDQUFQO0FBQ0QsS0FGRCxNQUVPO0FBQ0wsVUFBSSxDQUFDLEtBQUtMLE9BQVYsRUFBbUIsT0FBT1osU0FBUyxDQUFDa0IsVUFBVixDQUFxQixLQUFLWixDQUExQixFQUE2QixLQUFLQyxDQUFsQyxFQUFxQ08sR0FBckMsQ0FBUCxDQUFuQixLQUNLLE9BQU9kLFNBQVMsQ0FBQ21CLGNBQVYsQ0FBeUIsS0FBS2IsQ0FBOUIsRUFBaUMsS0FBS0MsQ0FBdEMsRUFBeUNPLEdBQXpDLENBQVA7QUFDTjtBQUNGOztBQS9DdUI7QUFrRDFCLE9BQU8sTUFBTU0sVUFBVSxHQUFHLENBQUNkLENBQUQsRUFBSUMsQ0FBSixFQUFPYyxDQUFQLEtBQWE7QUFDckMsTUFBSWYsQ0FBQyxZQUFZRixJQUFqQixFQUF1QixPQUFPRSxDQUFQOztBQUV2QixNQUFJQyxDQUFDLEtBQUtlLFNBQVYsRUFBcUI7QUFDbkIsV0FBTyxJQUFJbEIsSUFBSixDQUFTRSxDQUFULENBQVA7QUFDRCxHQUZELE1BRU87QUFDTCxRQUFJZSxDQUFDLEtBQUtDLFNBQVYsRUFBcUIsT0FBTyxJQUFJbEIsSUFBSixDQUFTRSxDQUFULEVBQVlDLENBQVosQ0FBUCxDQUFyQixLQUNLLE9BQU8sSUFBSUgsSUFBSixDQUFTRSxDQUFULEVBQVlDLENBQVosRUFBZWMsQ0FBZixDQUFQO0FBQ047QUFDRixDQVRNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IE1hdGhVdGlscyBmcm9tICcuL01hdGhVdGlscyc7XG5pbXBvcnQgVXRpbCBmcm9tICcuLi91dGlscy9VdGlsJztcbmltcG9ydCB7IE1BVEhfVFlQRV9TUEFOIGFzIHR5cGUgfSBmcm9tICcuL3R5cGVzJztcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgU3BhbiB7XG4gIC8qKlxuICAgKiBTcGFuIENsYXNzLiBHZXQgYSByYW5kb20gTnVtYmVyIGZyb20gYSB0byBiLiBPciBmcm9tIGMtYSB0byBjK2JcbiAgICogQHBhcmFtIHtOdW1iZXJ8QXJyYXl9IGEgLSBtaW4gbnVtYmVyXG4gICAqIEBwYXJhbSB7TnVtYmVyfSBiIC0gbWF4IG51bWJlclxuICAgKiBAcGFyYW0ge051bWJlcn0gY2VudGVyIC0gdGhlIGNlbnRlcidzIHogdmFsdWVcbiAgICogQGV4YW1wbGVcbiAgICogdmFyIHNwYW4gPSBuZXcgU3BhbigwLDMwKTtcbiAgICogb3JcbiAgICogdmFyIHNwYW4gPSBuZXcgU3BhbihbXCIjZmZmXCIsXCIjZmYwXCIsXCIjMDAwXCJdKTtcbiAgICogb3JcbiAgICogdmFyIHNwYW4gPSBuZXcgU3Bhbig1LDEsXCJjZW50ZXJcIik7XG4gICAqIEBleHRlbmRzIHtab25lfVxuICAgKiBAY29uc3RydWN0b3JcbiAgICovXG4gIGNvbnN0cnVjdG9yKGEsIGIsIGNlbnRlcikge1xuICAgIHRoaXMuX2lzQXJyYXkgPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjIFRoZSBjbGFzcyB0eXBlLlxuICAgICAqIEB0eXBlIHtzdHJpbmd9XG4gICAgICovXG4gICAgdGhpcy50eXBlID0gdHlwZTtcblxuICAgIGlmIChVdGlsLmlzQXJyYXkoYSkpIHtcbiAgICAgIHRoaXMuX2lzQXJyYXkgPSB0cnVlO1xuICAgICAgdGhpcy5hID0gYTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5hID0gVXRpbC5pbml0VmFsdWUoYSwgMSk7XG4gICAgICB0aGlzLmIgPSBVdGlsLmluaXRWYWx1ZShiLCB0aGlzLmEpO1xuICAgICAgdGhpcy5fY2VudGVyID0gVXRpbC5pbml0VmFsdWUoY2VudGVyLCBmYWxzZSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFNwYW4uZ2V0VmFsdWUgZnVuY3Rpb25cbiAgICogQG5hbWUgZ2V0IGEgcmFuZG9tIE51bWJlciBmcm9tIGEgdG8gYi4gT3IgZ2V0IGEgcmFuZG9tIE51bWJlciBmcm9tIGMtYSB0byBjK2JcbiAgICogQHBhcmFtIHtudW1iZXJ9IElOVCBvciBpbnRcbiAgICogQHJldHVybiB7bnVtYmVyfSBhIHJhbmRvbSBOdW1iZXJcbiAgICovXG4gIGdldFZhbHVlKElOVCkge1xuICAgIGlmICh0aGlzLl9pc0FycmF5KSB7XG4gICAgICByZXR1cm4gdGhpcy5hWyh0aGlzLmEubGVuZ3RoICogTWF0aC5yYW5kb20oKSkgPj4gMF07XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICghdGhpcy5fY2VudGVyKSByZXR1cm4gTWF0aFV0aWxzLnJhbmRvbUFUb0IodGhpcy5hLCB0aGlzLmIsIElOVCk7XG4gICAgICBlbHNlIHJldHVybiBNYXRoVXRpbHMucmFuZG9tRmxvYXRpbmcodGhpcy5hLCB0aGlzLmIsIElOVCk7XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBjb25zdCBjcmVhdGVTcGFuID0gKGEsIGIsIGMpID0+IHtcbiAgaWYgKGEgaW5zdGFuY2VvZiBTcGFuKSByZXR1cm4gYTtcblxuICBpZiAoYiA9PT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIG5ldyBTcGFuKGEpO1xuICB9IGVsc2Uge1xuICAgIGlmIChjID09PSB1bmRlZmluZWQpIHJldHVybiBuZXcgU3BhbihhLCBiKTtcbiAgICBlbHNlIHJldHVybiBuZXcgU3BhbihhLCBiLCBjKTtcbiAgfVxufTtcbiJdfQ== ================================================ FILE: packages/sdk/lib/core/libs/three-nebula/math/Vector3D.js ================================================ import { Euler, Vector3 } from '../core/three/'; export default class Vector3D extends Vector3 { clear() { this.x = 0.0; this.y = 0.0; this.z = 0.0; return this; } scalar(s) { this.x *= s; this.y *= s; this.z *= s; return this; } addValue(a, b, c) { this.x += a; this.y += b; this.z += c; return this; } toString() { return 'x:' + this.x + 'y:' + this.y + 'z:' + this.z; } eulerFromDir(vector3D) { const euler = new Euler(); return euler.setFromVector3(vector3D); } } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9tYXRoL1ZlY3RvcjNELmpzIl0sIm5hbWVzIjpbIkV1bGVyIiwiVmVjdG9yMyIsIlZlY3RvcjNEIiwiY2xlYXIiLCJ4IiwieSIsInoiLCJzY2FsYXIiLCJzIiwiYWRkVmFsdWUiLCJhIiwiYiIsImMiLCJ0b1N0cmluZyIsImV1bGVyRnJvbURpciIsInZlY3RvcjNEIiwiZXVsZXIiLCJzZXRGcm9tVmVjdG9yMyJdLCJtYXBwaW5ncyI6IkFBQUEsU0FBU0EsS0FBVCxFQUFnQkMsT0FBaEIsUUFBK0IsZ0JBQS9CO0FBRUEsZUFBZSxNQUFNQyxRQUFOLFNBQXVCRCxPQUF2QixDQUErQjtBQUM1Q0UsRUFBQUEsS0FBSyxHQUFHO0FBQ04sU0FBS0MsQ0FBTCxHQUFTLEdBQVQ7QUFDQSxTQUFLQyxDQUFMLEdBQVMsR0FBVDtBQUNBLFNBQUtDLENBQUwsR0FBUyxHQUFUO0FBRUEsV0FBTyxJQUFQO0FBQ0Q7O0FBRURDLEVBQUFBLE1BQU0sQ0FBQ0MsQ0FBRCxFQUFJO0FBQ1IsU0FBS0osQ0FBTCxJQUFVSSxDQUFWO0FBQ0EsU0FBS0gsQ0FBTCxJQUFVRyxDQUFWO0FBQ0EsU0FBS0YsQ0FBTCxJQUFVRSxDQUFWO0FBRUEsV0FBTyxJQUFQO0FBQ0Q7O0FBRURDLEVBQUFBLFFBQVEsQ0FBQ0MsQ0FBRCxFQUFJQyxDQUFKLEVBQU9DLENBQVAsRUFBVTtBQUNoQixTQUFLUixDQUFMLElBQVVNLENBQVY7QUFDQSxTQUFLTCxDQUFMLElBQVVNLENBQVY7QUFDQSxTQUFLTCxDQUFMLElBQVVNLENBQVY7QUFFQSxXQUFPLElBQVA7QUFDRDs7QUFFREMsRUFBQUEsUUFBUSxHQUFHO0FBQ1QsV0FBTyxPQUFPLEtBQUtULENBQVosR0FBZ0IsSUFBaEIsR0FBdUIsS0FBS0MsQ0FBNUIsR0FBZ0MsSUFBaEMsR0FBdUMsS0FBS0MsQ0FBbkQ7QUFDRDs7QUFFRFEsRUFBQUEsWUFBWSxDQUFDQyxRQUFELEVBQVc7QUFDckIsVUFBTUMsS0FBSyxHQUFHLElBQUloQixLQUFKLEVBQWQ7QUFFQSxXQUFPZ0IsS0FBSyxDQUFDQyxjQUFOLENBQXFCRixRQUFyQixDQUFQO0FBQ0Q7O0FBakMyQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEV1bGVyLCBWZWN0b3IzIH0gZnJvbSAnLi4vY29yZS90aHJlZS8nO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBWZWN0b3IzRCBleHRlbmRzIFZlY3RvcjMge1xuICBjbGVhcigpIHtcbiAgICB0aGlzLnggPSAwLjA7XG4gICAgdGhpcy55ID0gMC4wO1xuICAgIHRoaXMueiA9IDAuMDtcblxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgc2NhbGFyKHMpIHtcbiAgICB0aGlzLnggKj0gcztcbiAgICB0aGlzLnkgKj0gcztcbiAgICB0aGlzLnogKj0gcztcblxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgYWRkVmFsdWUoYSwgYiwgYykge1xuICAgIHRoaXMueCArPSBhO1xuICAgIHRoaXMueSArPSBiO1xuICAgIHRoaXMueiArPSBjO1xuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICB0b1N0cmluZygpIHtcbiAgICByZXR1cm4gJ3g6JyArIHRoaXMueCArICd5OicgKyB0aGlzLnkgKyAnejonICsgdGhpcy56O1xuICB9XG5cbiAgZXVsZXJGcm9tRGlyKHZlY3RvcjNEKSB7XG4gICAgY29uc3QgZXVsZXIgPSBuZXcgRXVsZXIoKTtcblxuICAgIHJldHVybiBldWxlci5zZXRGcm9tVmVjdG9yMyh2ZWN0b3IzRCk7XG4gIH1cbn1cbiJdfQ== ================================================ FILE: packages/sdk/lib/core/libs/three-nebula/math/constants.js ================================================ /** * @see https://en.wikipedia.org/wiki/Euler_method * @type {string} */ export const INTEGRATION_TYPE_EULER = 'EULER'; /** * @see http://web.mit.edu/10.001/Web/Course_Notes/Differential_Equations_Notes/node5.html * @type {string} */ export const INTEGRATION_TYPE_RK2 = 'RUNGE_KUTTA_2'; /** * @see http://web.mit.edu/10.001/Web/Course_Notes/Differential_Equations_Notes/node5.html * @type {string} */ export const INTEGRATION_TYPE_RK4 = 'RUNGE_KUTTA_4'; /** * @see https://en.wikipedia.org/wiki/Verlet_integration * @type {string} */ export const INTEGRATION_TYPE_VERLET = 'VERLET'; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9tYXRoL2NvbnN0YW50cy5qcyJdLCJuYW1lcyI6WyJJTlRFR1JBVElPTl9UWVBFX0VVTEVSIiwiSU5URUdSQVRJT05fVFlQRV9SSzIiLCJJTlRFR1JBVElPTl9UWVBFX1JLNCIsIklOVEVHUkFUSU9OX1RZUEVfVkVSTEVUIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU8sTUFBTUEsc0JBQXNCLEdBQUcsT0FBL0I7QUFFUDtBQUNBO0FBQ0E7QUFDQTs7QUFDQSxPQUFPLE1BQU1DLG9CQUFvQixHQUFHLGVBQTdCO0FBRVA7QUFDQTtBQUNBO0FBQ0E7O0FBQ0EsT0FBTyxNQUFNQyxvQkFBb0IsR0FBRyxlQUE3QjtBQUVQO0FBQ0E7QUFDQTtBQUNBOztBQUNBLE9BQU8sTUFBTUMsdUJBQXVCLEdBQUcsUUFBaEMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBzZWUgaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvRXVsZXJfbWV0aG9kXG4gKiBAdHlwZSB7c3RyaW5nfVxuICovXG5leHBvcnQgY29uc3QgSU5URUdSQVRJT05fVFlQRV9FVUxFUiA9ICdFVUxFUic7XG5cbi8qKlxuICogQHNlZSBodHRwOi8vd2ViLm1pdC5lZHUvMTAuMDAxL1dlYi9Db3Vyc2VfTm90ZXMvRGlmZmVyZW50aWFsX0VxdWF0aW9uc19Ob3Rlcy9ub2RlNS5odG1sXG4gKiBAdHlwZSB7c3RyaW5nfVxuICovXG5leHBvcnQgY29uc3QgSU5URUdSQVRJT05fVFlQRV9SSzIgPSAnUlVOR0VfS1VUVEFfMic7XG5cbi8qKlxuICogQHNlZSBodHRwOi8vd2ViLm1pdC5lZHUvMTAuMDAxL1dlYi9Db3Vyc2VfTm90ZXMvRGlmZmVyZW50aWFsX0VxdWF0aW9uc19Ob3Rlcy9ub2RlNS5odG1sXG4gKiBAdHlwZSB7c3RyaW5nfVxuICovXG5leHBvcnQgY29uc3QgSU5URUdSQVRJT05fVFlQRV9SSzQgPSAnUlVOR0VfS1VUVEFfNCc7XG5cbi8qKlxuICogQHNlZSBodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9WZXJsZXRfaW50ZWdyYXRpb25cbiAqIEB0eXBlIHtzdHJpbmd9XG4gKi9cbmV4cG9ydCBjb25zdCBJTlRFR1JBVElPTl9UWVBFX1ZFUkxFVCA9ICdWRVJMRVQnO1xuIl19 ================================================ FILE: packages/sdk/lib/core/libs/three-nebula/math/index.js ================================================ export { default as ArraySpan, createArraySpan } from './ArraySpan'; export { default as ColorSpan, createColorSpan } from './ColorSpan'; export { default as Box } from './Box'; export { integrate } from './integration'; export { default as MathUtils } from './MathUtils'; export { default as Polar3D } from './Polar3D'; export { default as Span, createSpan } from './Span'; export { default as Vector3D } from './Vector3D'; export { INTEGRATION_TYPE_EULER, INTEGRATION_TYPE_RK2, INTEGRATION_TYPE_RK4, INTEGRATION_TYPE_VERLET } from './constants'; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9tYXRoL2luZGV4LmpzIl0sIm5hbWVzIjpbImRlZmF1bHQiLCJBcnJheVNwYW4iLCJjcmVhdGVBcnJheVNwYW4iLCJDb2xvclNwYW4iLCJjcmVhdGVDb2xvclNwYW4iLCJCb3giLCJpbnRlZ3JhdGUiLCJNYXRoVXRpbHMiLCJQb2xhcjNEIiwiU3BhbiIsImNyZWF0ZVNwYW4iLCJWZWN0b3IzRCIsIklOVEVHUkFUSU9OX1RZUEVfRVVMRVIiLCJJTlRFR1JBVElPTl9UWVBFX1JLMiIsIklOVEVHUkFUSU9OX1RZUEVfUks0IiwiSU5URUdSQVRJT05fVFlQRV9WRVJMRVQiXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLE9BQU8sSUFBSUMsU0FBcEIsRUFBK0JDLGVBQS9CLFFBQXNELGFBQXREO0FBQ0EsU0FBU0YsT0FBTyxJQUFJRyxTQUFwQixFQUErQkMsZUFBL0IsUUFBc0QsYUFBdEQ7QUFDQSxTQUFTSixPQUFPLElBQUlLLEdBQXBCLFFBQStCLE9BQS9CO0FBQ0EsU0FBU0MsU0FBVCxRQUEwQixlQUExQjtBQUNBLFNBQVNOLE9BQU8sSUFBSU8sU0FBcEIsUUFBcUMsYUFBckM7QUFDQSxTQUFTUCxPQUFPLElBQUlRLE9BQXBCLFFBQW1DLFdBQW5DO0FBQ0EsU0FBU1IsT0FBTyxJQUFJUyxJQUFwQixFQUEwQkMsVUFBMUIsUUFBNEMsUUFBNUM7QUFDQSxTQUFTVixPQUFPLElBQUlXLFFBQXBCLFFBQW9DLFlBQXBDO0FBQ0EsU0FDRUMsc0JBREYsRUFFRUMsb0JBRkYsRUFHRUMsb0JBSEYsRUFJRUMsdUJBSkYsUUFLTyxhQUxQIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgZGVmYXVsdCBhcyBBcnJheVNwYW4sIGNyZWF0ZUFycmF5U3BhbiB9IGZyb20gJy4vQXJyYXlTcGFuJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQ29sb3JTcGFuLCBjcmVhdGVDb2xvclNwYW4gfSBmcm9tICcuL0NvbG9yU3Bhbic7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEJveCB9IGZyb20gJy4vQm94JztcbmV4cG9ydCB7IGludGVncmF0ZSB9IGZyb20gJy4vaW50ZWdyYXRpb24nO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBNYXRoVXRpbHMgfSBmcm9tICcuL01hdGhVdGlscyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFBvbGFyM0QgfSBmcm9tICcuL1BvbGFyM0QnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBTcGFuLCBjcmVhdGVTcGFuIH0gZnJvbSAnLi9TcGFuJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgVmVjdG9yM0QgfSBmcm9tICcuL1ZlY3RvcjNEJztcbmV4cG9ydCB7XG4gIElOVEVHUkFUSU9OX1RZUEVfRVVMRVIsXG4gIElOVEVHUkFUSU9OX1RZUEVfUksyLFxuICBJTlRFR1JBVElPTl9UWVBFX1JLNCxcbiAgSU5URUdSQVRJT05fVFlQRV9WRVJMRVRcbn0gZnJvbSAnLi9jb25zdGFudHMnO1xuIl19 ================================================ FILE: packages/sdk/lib/core/libs/three-nebula/math/integration.js ================================================ import { INTEGRATION_TYPE_EULER } from './constants'; import { DEFAULT_SYSTEM_DELTA } from '../core/constants'; /** * Performs euler integration on the particle. * * @param {Particle} particle - The particle to integrate * @param {number} time - The factor of time to use * @param {number} damping - The damping to use * @return void */ const eulerIntegration = (particle, time, damping) => { if (particle.sleep) { return; } particle.old.position.copy(particle.position); particle.old.velocity.copy(particle.velocity); particle.acceleration.scalar(1 / particle.mass); particle.velocity.add(particle.acceleration.scalar(time)); particle.position.add(particle.old.velocity.scalar(time)); damping && particle.velocity.scalar(Math.pow(damping, time / DEFAULT_SYSTEM_DELTA)); particle.acceleration.clear(); }; /** * Performs the chosen integration on the particle. * Defaults to euler integration. * * @param {Particle} particle - The particle to integrate * @param {number} time - The factor of time to use * @param {number} damping - The damping to use * @param {string} [type=INTEGRATION_TYPE_EULER] - The algorithm to use * @return void */ export const integrate = (particle, time, damping, type = INTEGRATION_TYPE_EULER) => { switch (type) { case INTEGRATION_TYPE_EULER: eulerIntegration(particle, time, damping); break; default: eulerIntegration(particle, time, damping); } }; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9tYXRoL2ludGVncmF0aW9uLmpzIl0sIm5hbWVzIjpbIklOVEVHUkFUSU9OX1RZUEVfRVVMRVIiLCJERUZBVUxUX1NZU1RFTV9ERUxUQSIsImV1bGVySW50ZWdyYXRpb24iLCJwYXJ0aWNsZSIsInRpbWUiLCJkYW1waW5nIiwic2xlZXAiLCJvbGQiLCJwb3NpdGlvbiIsImNvcHkiLCJ2ZWxvY2l0eSIsImFjY2VsZXJhdGlvbiIsInNjYWxhciIsIm1hc3MiLCJhZGQiLCJNYXRoIiwicG93IiwiY2xlYXIiLCJpbnRlZ3JhdGUiLCJ0eXBlIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUFTQSxzQkFBVCxRQUF1QyxhQUF2QztBQUNBLFNBQVNDLG9CQUFULFFBQXFDLG1CQUFyQztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBQ0EsTUFBTUMsZ0JBQWdCLEdBQUcsQ0FBQ0MsUUFBRCxFQUFXQyxJQUFYLEVBQWlCQyxPQUFqQixLQUE2QjtBQUNwRCxNQUFJRixRQUFRLENBQUNHLEtBQWIsRUFBb0I7QUFDbEI7QUFDRDs7QUFFREgsRUFBQUEsUUFBUSxDQUFDSSxHQUFULENBQWFDLFFBQWIsQ0FBc0JDLElBQXRCLENBQTJCTixRQUFRLENBQUNLLFFBQXBDO0FBQ0FMLEVBQUFBLFFBQVEsQ0FBQ0ksR0FBVCxDQUFhRyxRQUFiLENBQXNCRCxJQUF0QixDQUEyQk4sUUFBUSxDQUFDTyxRQUFwQztBQUNBUCxFQUFBQSxRQUFRLENBQUNRLFlBQVQsQ0FBc0JDLE1BQXRCLENBQTZCLElBQUlULFFBQVEsQ0FBQ1UsSUFBMUM7QUFDQVYsRUFBQUEsUUFBUSxDQUFDTyxRQUFULENBQWtCSSxHQUFsQixDQUFzQlgsUUFBUSxDQUFDUSxZQUFULENBQXNCQyxNQUF0QixDQUE2QlIsSUFBN0IsQ0FBdEI7QUFDQUQsRUFBQUEsUUFBUSxDQUFDSyxRQUFULENBQWtCTSxHQUFsQixDQUFzQlgsUUFBUSxDQUFDSSxHQUFULENBQWFHLFFBQWIsQ0FBc0JFLE1BQXRCLENBQTZCUixJQUE3QixDQUF0QjtBQUNBQyxFQUFBQSxPQUFPLElBQ0xGLFFBQVEsQ0FBQ08sUUFBVCxDQUFrQkUsTUFBbEIsQ0FBeUJHLElBQUksQ0FBQ0MsR0FBTCxDQUFTWCxPQUFULEVBQWtCRCxJQUFJLEdBQUdILG9CQUF6QixDQUF6QixDQURGO0FBRUFFLEVBQUFBLFFBQVEsQ0FBQ1EsWUFBVCxDQUFzQk0sS0FBdEI7QUFDRCxDQWJEO0FBZUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUNBLE9BQU8sTUFBTUMsU0FBUyxHQUFHLENBQ3ZCZixRQUR1QixFQUV2QkMsSUFGdUIsRUFHdkJDLE9BSHVCLEVBSXZCYyxJQUFJLEdBQUduQixzQkFKZ0IsS0FLcEI7QUFDSCxVQUFRbUIsSUFBUjtBQUNFLFNBQUtuQixzQkFBTDtBQUNFRSxNQUFBQSxnQkFBZ0IsQ0FBQ0MsUUFBRCxFQUFXQyxJQUFYLEVBQWlCQyxPQUFqQixDQUFoQjtBQUNBOztBQUNGO0FBQ0VILE1BQUFBLGdCQUFnQixDQUFDQyxRQUFELEVBQVdDLElBQVgsRUFBaUJDLE9BQWpCLENBQWhCO0FBTEo7QUFPRCxDQWJNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSU5URUdSQVRJT05fVFlQRV9FVUxFUiB9IGZyb20gJy4vY29uc3RhbnRzJztcbmltcG9ydCB7IERFRkFVTFRfU1lTVEVNX0RFTFRBIH0gZnJvbSAnLi4vY29yZS9jb25zdGFudHMnO1xuXG4vKipcbiAqIFBlcmZvcm1zIGV1bGVyIGludGVncmF0aW9uIG9uIHRoZSBwYXJ0aWNsZS5cbiAqXG4gKiBAcGFyYW0ge1BhcnRpY2xlfSBwYXJ0aWNsZSAtIFRoZSBwYXJ0aWNsZSB0byBpbnRlZ3JhdGVcbiAqIEBwYXJhbSB7bnVtYmVyfSB0aW1lIC0gVGhlIGZhY3RvciBvZiB0aW1lIHRvIHVzZVxuICogQHBhcmFtIHtudW1iZXJ9IGRhbXBpbmcgLSBUaGUgZGFtcGluZyB0byB1c2VcbiAqIEByZXR1cm4gdm9pZFxuICovXG5jb25zdCBldWxlckludGVncmF0aW9uID0gKHBhcnRpY2xlLCB0aW1lLCBkYW1waW5nKSA9PiB7XG4gIGlmIChwYXJ0aWNsZS5zbGVlcCkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIHBhcnRpY2xlLm9sZC5wb3NpdGlvbi5jb3B5KHBhcnRpY2xlLnBvc2l0aW9uKTtcbiAgcGFydGljbGUub2xkLnZlbG9jaXR5LmNvcHkocGFydGljbGUudmVsb2NpdHkpO1xuICBwYXJ0aWNsZS5hY2NlbGVyYXRpb24uc2NhbGFyKDEgLyBwYXJ0aWNsZS5tYXNzKTtcbiAgcGFydGljbGUudmVsb2NpdHkuYWRkKHBhcnRpY2xlLmFjY2VsZXJhdGlvbi5zY2FsYXIodGltZSkpO1xuICBwYXJ0aWNsZS5wb3NpdGlvbi5hZGQocGFydGljbGUub2xkLnZlbG9jaXR5LnNjYWxhcih0aW1lKSk7XG4gIGRhbXBpbmcgJiZcbiAgICBwYXJ0aWNsZS52ZWxvY2l0eS5zY2FsYXIoTWF0aC5wb3coZGFtcGluZywgdGltZSAvIERFRkFVTFRfU1lTVEVNX0RFTFRBKSk7XG4gIHBhcnRpY2xlLmFjY2VsZXJhdGlvbi5jbGVhcigpO1xufTtcblxuLyoqXG4gKiBQZXJmb3JtcyB0aGUgY2hvc2VuIGludGVncmF0aW9uIG9uIHRoZSBwYXJ0aWNsZS5cbiAqIERlZmF1bHRzIHRvIGV1bGVyIGludGVncmF0aW9uLlxuICpcbiAqIEBwYXJhbSB7UGFydGljbGV9IHBhcnRpY2xlIC0gVGhlIHBhcnRpY2xlIHRvIGludGVncmF0ZVxuICogQHBhcmFtIHtudW1iZXJ9IHRpbWUgLSBUaGUgZmFjdG9yIG9mIHRpbWUgdG8gdXNlXG4gKiBAcGFyYW0ge251bWJlcn0gZGFtcGluZyAtIFRoZSBkYW1waW5nIHRvIHVzZVxuICogQHBhcmFtIHtzdHJpbmd9IFt0eXBlPUlOVEVHUkFUSU9OX1RZUEVfRVVMRVJdIC0gVGhlIGFsZ29yaXRobSB0byB1c2VcbiAqIEByZXR1cm4gdm9pZFxuICovXG5leHBvcnQgY29uc3QgaW50ZWdyYXRlID0gKFxuICBwYXJ0aWNsZSxcbiAgdGltZSxcbiAgZGFtcGluZyxcbiAgdHlwZSA9IElOVEVHUkFUSU9OX1RZUEVfRVVMRVJcbikgPT4ge1xuICBzd2l0Y2ggKHR5cGUpIHtcbiAgICBjYXNlIElOVEVHUkFUSU9OX1RZUEVfRVVMRVI6XG4gICAgICBldWxlckludGVncmF0aW9uKHBhcnRpY2xlLCB0aW1lLCBkYW1waW5nKTtcbiAgICAgIGJyZWFrO1xuICAgIGRlZmF1bHQ6XG4gICAgICBldWxlckludGVncmF0aW9uKHBhcnRpY2xlLCB0aW1lLCBkYW1waW5nKTtcbiAgfVxufTtcbiJdfQ== ================================================ FILE: packages/sdk/lib/core/libs/three-nebula/math/types.js ================================================ export const MATH_TYPE_ARRAY_SPAN = 'ArraySpan'; export const MATH_TYPE_COLOR_SPAN = 'ColorSpan'; export const MATH_TYPE_BOX = 'Box'; export const MATH_TYPE_POLAR_3D = 'Polar3D'; export const MATH_TYPE_SPAN = 'Span'; export const MATH_TYPE_VECTOR_3D = 'Vector3D'; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9tYXRoL3R5cGVzLmpzIl0sIm5hbWVzIjpbIk1BVEhfVFlQRV9BUlJBWV9TUEFOIiwiTUFUSF9UWVBFX0NPTE9SX1NQQU4iLCJNQVRIX1RZUEVfQk9YIiwiTUFUSF9UWVBFX1BPTEFSXzNEIiwiTUFUSF9UWVBFX1NQQU4iLCJNQVRIX1RZUEVfVkVDVE9SXzNEIl0sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLE1BQU1BLG9CQUFvQixHQUFHLFdBQTdCO0FBQ1AsT0FBTyxNQUFNQyxvQkFBb0IsR0FBRyxXQUE3QjtBQUNQLE9BQU8sTUFBTUMsYUFBYSxHQUFHLEtBQXRCO0FBQ1AsT0FBTyxNQUFNQyxrQkFBa0IsR0FBRyxTQUEzQjtBQUNQLE9BQU8sTUFBTUMsY0FBYyxHQUFHLE1BQXZCO0FBQ1AsT0FBTyxNQUFNQyxtQkFBbUIsR0FBRyxVQUE1QiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBNQVRIX1RZUEVfQVJSQVlfU1BBTiA9ICdBcnJheVNwYW4nO1xuZXhwb3J0IGNvbnN0IE1BVEhfVFlQRV9DT0xPUl9TUEFOID0gJ0NvbG9yU3Bhbic7XG5leHBvcnQgY29uc3QgTUFUSF9UWVBFX0JPWCA9ICdCb3gnO1xuZXhwb3J0IGNvbnN0IE1BVEhfVFlQRV9QT0xBUl8zRCA9ICdQb2xhcjNEJztcbmV4cG9ydCBjb25zdCBNQVRIX1RZUEVfU1BBTiA9ICdTcGFuJztcbmV4cG9ydCBjb25zdCBNQVRIX1RZUEVfVkVDVE9SXzNEID0gJ1ZlY3RvcjNEJztcbiJdfQ== ================================================ FILE: packages/sdk/lib/core/libs/three-nebula/renderer/BaseRenderer.js ================================================ import { PARTICLE_CREATED, PARTICLE_DEAD, PARTICLE_UPDATE, SYSTEM_UPDATE } from '../events/constants'; import { RENDERER_TYPE_BASE } from './types'; import { __DEV__ } from '../constants'; export default class BaseRenderer { constructor(type = RENDERER_TYPE_BASE) { /** * @desc The class type. * @type {string} */ this.type = type; } init(system) { var self = this; this.system = system; this.system.eventDispatcher.addEventListener(SYSTEM_UPDATE, function (system) { self.onSystemUpdate.call(self, system); }); this.system.eventDispatcher.addEventListener(PARTICLE_CREATED, function (particle) { self.onParticleCreated.call(self, particle); }); this.system.eventDispatcher.addEventListener(PARTICLE_UPDATE, function (particle) { self.onParticleUpdate.call(self, particle); }); this.system.eventDispatcher.addEventListener(PARTICLE_DEAD, function (particle) { self.onParticleDead.call(self, particle); }); this.logRendererType(); } remove() { this.system = null; } /** * @abstract */ onParticleCreated(particle) {} // eslint-disable-line /** * @abstract */ onParticleUpdate(particle) {} // eslint-disable-line /** * @abstract */ onParticleDead(particle) {} // eslint-disable-line /** * @abstract */ onSystemUpdate(system) {} // eslint-disable-line /** * Logs the renderer type being used when in development mode. * * @return void */ logRendererType() { if (!__DEV__) { return; } } } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9yZW5kZXJlci9CYXNlUmVuZGVyZXIuanMiXSwibmFtZXMiOlsiUEFSVElDTEVfQ1JFQVRFRCIsIlBBUlRJQ0xFX0RFQUQiLCJQQVJUSUNMRV9VUERBVEUiLCJTWVNURU1fVVBEQVRFIiwiUkVOREVSRVJfVFlQRV9CQVNFIiwiX19ERVZfXyIsIkJhc2VSZW5kZXJlciIsImNvbnN0cnVjdG9yIiwidHlwZSIsImluaXQiLCJzeXN0ZW0iLCJzZWxmIiwiZXZlbnREaXNwYXRjaGVyIiwiYWRkRXZlbnRMaXN0ZW5lciIsIm9uU3lzdGVtVXBkYXRlIiwiY2FsbCIsInBhcnRpY2xlIiwib25QYXJ0aWNsZUNyZWF0ZWQiLCJvblBhcnRpY2xlVXBkYXRlIiwib25QYXJ0aWNsZURlYWQiLCJsb2dSZW5kZXJlclR5cGUiLCJyZW1vdmUiLCJjb25zb2xlIiwibG9nIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUNFQSxnQkFERixFQUVFQyxhQUZGLEVBR0VDLGVBSEYsRUFJRUMsYUFKRixRQUtPLHFCQUxQO0FBT0EsU0FBU0Msa0JBQVQsUUFBbUMsU0FBbkM7QUFDQSxTQUFTQyxPQUFULFFBQXdCLGNBQXhCO0FBRUEsZUFBZSxNQUFNQyxZQUFOLENBQW1CO0FBQ2hDQyxFQUFBQSxXQUFXLENBQUNDLElBQUksR0FBR0osa0JBQVIsRUFBNEI7QUFDckM7QUFDSjtBQUNBO0FBQ0E7QUFDSSxTQUFLSSxJQUFMLEdBQVlBLElBQVo7QUFDRDs7QUFFREMsRUFBQUEsSUFBSSxDQUFDQyxNQUFELEVBQVM7QUFDWCxRQUFJQyxJQUFJLEdBQUcsSUFBWDtBQUVBLFNBQUtELE1BQUwsR0FBY0EsTUFBZDtBQUVBLFNBQUtBLE1BQUwsQ0FBWUUsZUFBWixDQUE0QkMsZ0JBQTVCLENBQTZDVixhQUE3QyxFQUE0RCxVQUMxRE8sTUFEMEQsRUFFMUQ7QUFDQUMsTUFBQUEsSUFBSSxDQUFDRyxjQUFMLENBQW9CQyxJQUFwQixDQUF5QkosSUFBekIsRUFBK0JELE1BQS9CO0FBQ0QsS0FKRDtBQU1BLFNBQUtBLE1BQUwsQ0FBWUUsZUFBWixDQUE0QkMsZ0JBQTVCLENBQTZDYixnQkFBN0MsRUFBK0QsVUFDN0RnQixRQUQ2RCxFQUU3RDtBQUNBTCxNQUFBQSxJQUFJLENBQUNNLGlCQUFMLENBQXVCRixJQUF2QixDQUE0QkosSUFBNUIsRUFBa0NLLFFBQWxDO0FBQ0QsS0FKRDtBQU1BLFNBQUtOLE1BQUwsQ0FBWUUsZUFBWixDQUE0QkMsZ0JBQTVCLENBQTZDWCxlQUE3QyxFQUE4RCxVQUM1RGMsUUFENEQsRUFFNUQ7QUFDQUwsTUFBQUEsSUFBSSxDQUFDTyxnQkFBTCxDQUFzQkgsSUFBdEIsQ0FBMkJKLElBQTNCLEVBQWlDSyxRQUFqQztBQUNELEtBSkQ7QUFNQSxTQUFLTixNQUFMLENBQVlFLGVBQVosQ0FBNEJDLGdCQUE1QixDQUE2Q1osYUFBN0MsRUFBNEQsVUFDMURlLFFBRDBELEVBRTFEO0FBQ0FMLE1BQUFBLElBQUksQ0FBQ1EsY0FBTCxDQUFvQkosSUFBcEIsQ0FBeUJKLElBQXpCLEVBQStCSyxRQUEvQjtBQUNELEtBSkQ7QUFNQSxTQUFLSSxlQUFMO0FBQ0Q7O0FBRURDLEVBQUFBLE1BQU0sR0FBRztBQUNQLFNBQUtYLE1BQUwsR0FBYyxJQUFkO0FBQ0Q7QUFFRDtBQUNGO0FBQ0E7OztBQUNFTyxFQUFBQSxpQkFBaUIsQ0FBQ0QsUUFBRCxFQUFXLENBQUUsQ0FoREUsQ0FnREQ7O0FBRS9CO0FBQ0Y7QUFDQTs7O0FBQ0VFLEVBQUFBLGdCQUFnQixDQUFDRixRQUFELEVBQVcsQ0FBRSxDQXJERyxDQXFERjs7QUFFOUI7QUFDRjtBQUNBOzs7QUFDRUcsRUFBQUEsY0FBYyxDQUFDSCxRQUFELEVBQVcsQ0FBRSxDQTFESyxDQTBESjs7QUFFNUI7QUFDRjtBQUNBOzs7QUFDRUYsRUFBQUEsY0FBYyxDQUFDSixNQUFELEVBQVMsQ0FBRSxDQS9ETyxDQStETjs7QUFFMUI7QUFDRjtBQUNBO0FBQ0E7QUFDQTs7O0FBQ0VVLEVBQUFBLGVBQWUsR0FBRztBQUNoQixRQUFJLENBQUNmLE9BQUwsRUFBYztBQUNaO0FBQ0Q7O0FBRURpQixJQUFBQSxPQUFPLENBQUNDLEdBQVIsQ0FBYSxHQUFFLEtBQUtmLElBQUssRUFBekI7QUFDRDs7QUE1RStCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgUEFSVElDTEVfQ1JFQVRFRCxcbiAgUEFSVElDTEVfREVBRCxcbiAgUEFSVElDTEVfVVBEQVRFLFxuICBTWVNURU1fVVBEQVRFLFxufSBmcm9tICcuLi9ldmVudHMvY29uc3RhbnRzJztcblxuaW1wb3J0IHsgUkVOREVSRVJfVFlQRV9CQVNFIH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBfX0RFVl9fIH0gZnJvbSAnLi4vY29uc3RhbnRzJztcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQmFzZVJlbmRlcmVyIHtcbiAgY29uc3RydWN0b3IodHlwZSA9IFJFTkRFUkVSX1RZUEVfQkFTRSkge1xuICAgIC8qKlxuICAgICAqIEBkZXNjIFRoZSBjbGFzcyB0eXBlLlxuICAgICAqIEB0eXBlIHtzdHJpbmd9XG4gICAgICovXG4gICAgdGhpcy50eXBlID0gdHlwZTtcbiAgfVxuXG4gIGluaXQoc3lzdGVtKSB7XG4gICAgdmFyIHNlbGYgPSB0aGlzO1xuXG4gICAgdGhpcy5zeXN0ZW0gPSBzeXN0ZW07XG5cbiAgICB0aGlzLnN5c3RlbS5ldmVudERpc3BhdGNoZXIuYWRkRXZlbnRMaXN0ZW5lcihTWVNURU1fVVBEQVRFLCBmdW5jdGlvbihcbiAgICAgIHN5c3RlbVxuICAgICkge1xuICAgICAgc2VsZi5vblN5c3RlbVVwZGF0ZS5jYWxsKHNlbGYsIHN5c3RlbSk7XG4gICAgfSk7XG5cbiAgICB0aGlzLnN5c3RlbS5ldmVudERpc3BhdGNoZXIuYWRkRXZlbnRMaXN0ZW5lcihQQVJUSUNMRV9DUkVBVEVELCBmdW5jdGlvbihcbiAgICAgIHBhcnRpY2xlXG4gICAgKSB7XG4gICAgICBzZWxmLm9uUGFydGljbGVDcmVhdGVkLmNhbGwoc2VsZiwgcGFydGljbGUpO1xuICAgIH0pO1xuXG4gICAgdGhpcy5zeXN0ZW0uZXZlbnREaXNwYXRjaGVyLmFkZEV2ZW50TGlzdGVuZXIoUEFSVElDTEVfVVBEQVRFLCBmdW5jdGlvbihcbiAgICAgIHBhcnRpY2xlXG4gICAgKSB7XG4gICAgICBzZWxmLm9uUGFydGljbGVVcGRhdGUuY2FsbChzZWxmLCBwYXJ0aWNsZSk7XG4gICAgfSk7XG5cbiAgICB0aGlzLnN5c3RlbS5ldmVudERpc3BhdGNoZXIuYWRkRXZlbnRMaXN0ZW5lcihQQVJUSUNMRV9ERUFELCBmdW5jdGlvbihcbiAgICAgIHBhcnRpY2xlXG4gICAgKSB7XG4gICAgICBzZWxmLm9uUGFydGljbGVEZWFkLmNhbGwoc2VsZiwgcGFydGljbGUpO1xuICAgIH0pO1xuXG4gICAgdGhpcy5sb2dSZW5kZXJlclR5cGUoKTtcbiAgfVxuXG4gIHJlbW92ZSgpIHtcbiAgICB0aGlzLnN5c3RlbSA9IG51bGw7XG4gIH1cblxuICAvKipcbiAgICogQGFic3RyYWN0XG4gICAqL1xuICBvblBhcnRpY2xlQ3JlYXRlZChwYXJ0aWNsZSkge30gLy8gZXNsaW50LWRpc2FibGUtbGluZVxuXG4gIC8qKlxuICAgKiBAYWJzdHJhY3RcbiAgICovXG4gIG9uUGFydGljbGVVcGRhdGUocGFydGljbGUpIHt9IC8vIGVzbGludC1kaXNhYmxlLWxpbmVcblxuICAvKipcbiAgICogQGFic3RyYWN0XG4gICAqL1xuICBvblBhcnRpY2xlRGVhZChwYXJ0aWNsZSkge30gLy8gZXNsaW50LWRpc2FibGUtbGluZVxuXG4gIC8qKlxuICAgKiBAYWJzdHJhY3RcbiAgICovXG4gIG9uU3lzdGVtVXBkYXRlKHN5c3RlbSkge30gLy8gZXNsaW50LWRpc2FibGUtbGluZVxuXG4gIC8qKlxuICAgKiBMb2dzIHRoZSByZW5kZXJlciB0eXBlIGJlaW5nIHVzZWQgd2hlbiBpbiBkZXZlbG9wbWVudCBtb2RlLlxuICAgKlxuICAgKiBAcmV0dXJuIHZvaWRcbiAgICovXG4gIGxvZ1JlbmRlcmVyVHlwZSgpIHtcbiAgICBpZiAoIV9fREVWX18pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zb2xlLmxvZyhgJHt0aGlzLnR5cGV9YCk7XG4gIH1cbn1cbiJdfQ== ================================================ FILE: packages/sdk/lib/core/libs/three-nebula/renderer/CustomRenderer.js ================================================ import BaseRenderer from './BaseRenderer'; import { Pool } from '../core'; import { RENDERER_TYPE_CUSTOM as type } from './types'; export default class CustomRenderer extends BaseRenderer { constructor() { super(type); this.targetPool = new Pool(); this.materialPool = new Pool(); } onSystemUpdate() {} onParticleCreated(particle) {} // eslint-disable-line onParticleUpdate(particle) {} // eslint-disable-line onParticleDead(particle) {} // eslint-disable-line } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9yZW5kZXJlci9DdXN0b21SZW5kZXJlci5qcyJdLCJuYW1lcyI6WyJCYXNlUmVuZGVyZXIiLCJQb29sIiwiUkVOREVSRVJfVFlQRV9DVVNUT00iLCJ0eXBlIiwiQ3VzdG9tUmVuZGVyZXIiLCJjb25zdHJ1Y3RvciIsInRhcmdldFBvb2wiLCJtYXRlcmlhbFBvb2wiLCJvblN5c3RlbVVwZGF0ZSIsIm9uUGFydGljbGVDcmVhdGVkIiwicGFydGljbGUiLCJvblBhcnRpY2xlVXBkYXRlIiwib25QYXJ0aWNsZURlYWQiXSwibWFwcGluZ3MiOiJBQUFBLE9BQU9BLFlBQVAsTUFBeUIsZ0JBQXpCO0FBQ0EsU0FBU0MsSUFBVCxRQUFxQixTQUFyQjtBQUNBLFNBQVNDLG9CQUFvQixJQUFJQyxJQUFqQyxRQUE2QyxTQUE3QztBQUVBLGVBQWUsTUFBTUMsY0FBTixTQUE2QkosWUFBN0IsQ0FBMEM7QUFDdkRLLEVBQUFBLFdBQVcsR0FBRztBQUNaLFVBQU1GLElBQU47QUFFQSxTQUFLRyxVQUFMLEdBQWtCLElBQUlMLElBQUosRUFBbEI7QUFDQSxTQUFLTSxZQUFMLEdBQW9CLElBQUlOLElBQUosRUFBcEI7QUFDRDs7QUFFRE8sRUFBQUEsY0FBYyxHQUFHLENBQUU7O0FBRW5CQyxFQUFBQSxpQkFBaUIsQ0FBQ0MsUUFBRCxFQUFXLENBQUUsQ0FWeUIsQ0FVeEI7OztBQUUvQkMsRUFBQUEsZ0JBQWdCLENBQUNELFFBQUQsRUFBVyxDQUFFLENBWjBCLENBWXpCOzs7QUFFOUJFLEVBQUFBLGNBQWMsQ0FBQ0YsUUFBRCxFQUFXLENBQUUsQ0FkNEIsQ0FjM0I7OztBQWQyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBCYXNlUmVuZGVyZXIgZnJvbSAnLi9CYXNlUmVuZGVyZXInO1xuaW1wb3J0IHsgUG9vbCB9IGZyb20gJy4uL2NvcmUnO1xuaW1wb3J0IHsgUkVOREVSRVJfVFlQRV9DVVNUT00gYXMgdHlwZSB9IGZyb20gJy4vdHlwZXMnO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBDdXN0b21SZW5kZXJlciBleHRlbmRzIEJhc2VSZW5kZXJlciB7XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKHR5cGUpO1xuXG4gICAgdGhpcy50YXJnZXRQb29sID0gbmV3IFBvb2woKTtcbiAgICB0aGlzLm1hdGVyaWFsUG9vbCA9IG5ldyBQb29sKCk7XG4gIH1cblxuICBvblN5c3RlbVVwZGF0ZSgpIHt9XG5cbiAgb25QYXJ0aWNsZUNyZWF0ZWQocGFydGljbGUpIHt9IC8vIGVzbGludC1kaXNhYmxlLWxpbmVcblxuICBvblBhcnRpY2xlVXBkYXRlKHBhcnRpY2xlKSB7fSAvLyBlc2xpbnQtZGlzYWJsZS1saW5lXG5cbiAgb25QYXJ0aWNsZURlYWQocGFydGljbGUpIHt9IC8vIGVzbGludC1kaXNhYmxlLWxpbmVcbn1cbiJdfQ== ================================================ FILE: packages/sdk/lib/core/libs/three-nebula/renderer/GPURenderer/Desktop/index.js ================================================ import _defineProperty from "@babel/runtime/helpers/defineProperty"; function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; } function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } import { ParticleBuffer, Target, TextureAtlas, UniqueList } from '../common'; import { fragmentShader, vertexShader } from './shaders'; import BaseRenderer from '../../BaseRenderer'; import { DEFAULT_RENDERER_OPTIONS } from '../common/constants'; import { Pool } from '../../../core'; import { RENDERER_TYPE_GPU_DESKTOP } from '../../types'; let THREE; /** * GPURenderer for devices that support floating point textures. * * @author thrax * @author rohan-deshpande */ export default class DesktopGPURenderer extends BaseRenderer { constructor(container, three, options = DEFAULT_RENDERER_OPTIONS) { super(RENDERER_TYPE_GPU_DESKTOP); THREE = this.three = three; const props = _objectSpread(_objectSpread({}, DEFAULT_RENDERER_OPTIONS), options); const { camera, maxParticles, baseColor, blending, depthTest, depthWrite, transparent, shouldDebugTextureAtlas } = props; const particleBuffer = new ParticleBuffer(maxParticles, THREE); const material = new THREE.ShaderMaterial({ uniforms: { baseColor: { value: new THREE.Color(baseColor) }, uTexture: { value: null }, atlasIndex: { value: null } }, vertexShader: vertexShader(), fragmentShader: fragmentShader(), blending: THREE[blending], depthTest, depthWrite, transparent }); this.container = container; this.camera = camera; this.targetPool = new Pool(); this.uniqueList = new UniqueList(maxParticles); this.particleBuffer = particleBuffer; this.buffer = particleBuffer.buffer; this.stride = particleBuffer.stride; this.geometry = particleBuffer.geometry; this.material = material; this.points = new THREE.Points(this.geometry, this.material); this.points.frustumCulled = false; this.shouldDebugTextureAtlas = shouldDebugTextureAtlas; this.container.add(this.points); } onSystemUpdate(system) { super.onSystemUpdate(system); this.buffer.needsUpdate = true; this.textureAtlas && this.textureAtlas.update(); } /** * Pools the particle target if it does not exist. * Updates the target and maps particle properties to the point. * * @param {Particle} */ onParticleCreated(particle) { if (!particle.target) { particle.target = this.targetPool.get(Target, THREE); this.uniqueList.add(particle.id); } this.updateTarget(particle).mapParticleTargetPropsToPoint(particle); } /** * Maps particle properties to the point if the particle has a target. * * @param {Particle} */ onParticleUpdate(particle) { if (!particle.target) { return; } this.updateTarget(particle).mapParticleTargetPropsToPoint(particle); } /** * Resets and clears the particle target. * * @param {Particle} */ onParticleDead(particle) { if (!particle.target) { return; } particle.target.reset(); this.mapParticleTargetPropsToPoint(particle); particle.target = null; } /** * Maps all mutable properties from the particle to the target. * * @param {Particle} * @return {DesktopGPURenderer} */ updateTarget(particle) { const { position, rotation, scale, radius, color, alpha, body, id } = particle; const { r, g, b } = color; particle.target.position.copy(position); particle.target.rotation.copy(rotation); particle.target.size = scale * radius; particle.target.color.setRGB(r, g, b); particle.target.alpha = alpha; particle.target.index = this.uniqueList.find(id); if (body && body instanceof THREE.Sprite) { const { map } = body.material; particle.target.texture = map; particle.target.textureIndex = this.getTextureID(map, this.shouldDebugTextureAtlas); } return this; } /** * Entry point for mapping particle properties to buffer geometry points. * * @param {Particle} particle - The particle containing the properties to map * @return {DesktopGPURenderer} */ mapParticleTargetPropsToPoint(particle) { this.updatePointPosition(particle).updatePointSize(particle).updatePointRotation(particle).updatePointColor(particle).updatePointAlpha(particle).updatePointTextureIndex(particle); return this; } /** * Updates the point's position according to the particle's target position. * * @param {Particle} particle - The particle containing the target position. * @return {DesktopGPURenderer} */ updatePointPosition(particle) { const attribute = 'position'; const { geometry, stride, buffer } = this; const { target } = particle; const { offset } = geometry.attributes[attribute]; buffer.array[target.index * stride + offset + 0] = target.position.x; buffer.array[target.index * stride + offset + 1] = target.position.y; buffer.array[target.index * stride + offset + 2] = target.position.z; return this; } /** * Updates the point's size relative to the particle's target scale and radius. * * @param {Particle} particle - The particle containing the target scale. * @return {DesktopGPURenderer} */ updatePointSize(particle) { const attribute = 'size'; const { geometry, stride, buffer } = this; const { target } = particle; const { offset } = geometry.attributes[attribute]; buffer.array[target.index * stride + offset + 0] = target.size; return this; } /** * Updates the point's rotation. * * @param {Particle} particle - The particle containing the target rotation. * @return {DesktopGPURenderer} */ updatePointRotation(particle) { const attribute = 'rotation'; const { geometry, stride, buffer } = this; const { target } = particle; const { offset } = geometry.attributes[attribute]; buffer.array[target.index * stride + offset + 0] = target.rotation.z; return this; } /** * Updates the point's color attribute according with the particle's target color. * * @param {Particle} particle - The particle containing the target color and alpha. * @return {DesktopGPURenderer} */ updatePointColor(particle) { const attribute = 'color'; const { geometry, stride, buffer } = this; const { target } = particle; const { offset } = geometry.attributes[attribute]; buffer.array[target.index * stride + offset + 0] = target.color.r; buffer.array[target.index * stride + offset + 1] = target.color.g; buffer.array[target.index * stride + offset + 2] = target.color.b; return this; } /** * Updates the point alpha attribute with the particle's target alpha. * * @param {Particle} particle - The particle containing the target alpha. * @return {DesktopGPURenderer} */ updatePointAlpha(particle) { const attribute = 'alpha'; const { geometry, stride, buffer } = this; const { target } = particle; const { offset } = geometry.attributes[attribute]; buffer.array[target.index * stride + offset + 0] = target.alpha; return this; } /** * Updates the point texture attribute with the particle's target texture. * * @param {Particle} particle - The particle containing the target texture. * @return {DesktopGPURenderer} */ updatePointTextureIndex(particle) { const attribute = 'texID'; const { geometry, stride, buffer } = this; const { target } = particle; const { offset } = geometry.attributes[attribute]; buffer.array[target.index * stride + offset + 0] = target.textureIndex; return this; } getTextureID(texture, debug) { if (texture.textureIndex === undefined) { if (!this.textureAtlas) { this.textureAtlas = new TextureAtlas(this, debug); } this.textureAtlas.addTexture(texture); } return texture.textureIndex; } /** * Tears down the GPURenderer. * * @return void */ destroy() { const { container, points, textureAtlas, uniqueList } = this; container.remove(points); uniqueList.destroy(); textureAtlas && textureAtlas.destroy(); } } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9yZW5kZXJlci9HUFVSZW5kZXJlci9EZXNrdG9wL2luZGV4LmpzIl0sIm5hbWVzIjpbIlBhcnRpY2xlQnVmZmVyIiwiVGFyZ2V0IiwiVGV4dHVyZUF0bGFzIiwiVW5pcXVlTGlzdCIsImZyYWdtZW50U2hhZGVyIiwidmVydGV4U2hhZGVyIiwiQmFzZVJlbmRlcmVyIiwiREVGQVVMVF9SRU5ERVJFUl9PUFRJT05TIiwiUG9vbCIsIlJFTkRFUkVSX1RZUEVfR1BVX0RFU0tUT1AiLCJUSFJFRSIsIkRlc2t0b3BHUFVSZW5kZXJlciIsImNvbnN0cnVjdG9yIiwiY29udGFpbmVyIiwidGhyZWUiLCJvcHRpb25zIiwicHJvcHMiLCJjYW1lcmEiLCJtYXhQYXJ0aWNsZXMiLCJiYXNlQ29sb3IiLCJibGVuZGluZyIsImRlcHRoVGVzdCIsImRlcHRoV3JpdGUiLCJ0cmFuc3BhcmVudCIsInNob3VsZERlYnVnVGV4dHVyZUF0bGFzIiwicGFydGljbGVCdWZmZXIiLCJtYXRlcmlhbCIsIlNoYWRlck1hdGVyaWFsIiwidW5pZm9ybXMiLCJ2YWx1ZSIsIkNvbG9yIiwidVRleHR1cmUiLCJhdGxhc0luZGV4IiwidGFyZ2V0UG9vbCIsInVuaXF1ZUxpc3QiLCJidWZmZXIiLCJzdHJpZGUiLCJnZW9tZXRyeSIsInBvaW50cyIsIlBvaW50cyIsImZydXN0dW1DdWxsZWQiLCJhZGQiLCJvblN5c3RlbVVwZGF0ZSIsInN5c3RlbSIsIm5lZWRzVXBkYXRlIiwidGV4dHVyZUF0bGFzIiwidXBkYXRlIiwib25QYXJ0aWNsZUNyZWF0ZWQiLCJwYXJ0aWNsZSIsInRhcmdldCIsImdldCIsImlkIiwidXBkYXRlVGFyZ2V0IiwibWFwUGFydGljbGVUYXJnZXRQcm9wc1RvUG9pbnQiLCJvblBhcnRpY2xlVXBkYXRlIiwib25QYXJ0aWNsZURlYWQiLCJyZXNldCIsInBvc2l0aW9uIiwicm90YXRpb24iLCJzY2FsZSIsInJhZGl1cyIsImNvbG9yIiwiYWxwaGEiLCJib2R5IiwiciIsImciLCJiIiwiY29weSIsInNpemUiLCJzZXRSR0IiLCJpbmRleCIsImZpbmQiLCJTcHJpdGUiLCJtYXAiLCJ0ZXh0dXJlIiwidGV4dHVyZUluZGV4IiwiZ2V0VGV4dHVyZUlEIiwidXBkYXRlUG9pbnRQb3NpdGlvbiIsInVwZGF0ZVBvaW50U2l6ZSIsInVwZGF0ZVBvaW50Um90YXRpb24iLCJ1cGRhdGVQb2ludENvbG9yIiwidXBkYXRlUG9pbnRBbHBoYSIsInVwZGF0ZVBvaW50VGV4dHVyZUluZGV4IiwiYXR0cmlidXRlIiwib2Zmc2V0IiwiYXR0cmlidXRlcyIsImFycmF5IiwieCIsInkiLCJ6IiwiZGVidWciLCJ1bmRlZmluZWQiLCJhZGRUZXh0dXJlIiwiZGVzdHJveSIsInJlbW92ZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsU0FBU0EsY0FBVCxFQUF5QkMsTUFBekIsRUFBaUNDLFlBQWpDLEVBQStDQyxVQUEvQyxRQUFpRSxXQUFqRTtBQUNBLFNBQVNDLGNBQVQsRUFBeUJDLFlBQXpCLFFBQTZDLFdBQTdDO0FBRUEsT0FBT0MsWUFBUCxNQUF5QixvQkFBekI7QUFDQSxTQUFTQyx3QkFBVCxRQUF5QyxxQkFBekM7QUFDQSxTQUFTQyxJQUFULFFBQXFCLGVBQXJCO0FBQ0EsU0FBU0MseUJBQVQsUUFBMEMsYUFBMUM7QUFFQSxJQUFJQyxLQUFKO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUNBLGVBQWUsTUFBTUMsa0JBQU4sU0FBaUNMLFlBQWpDLENBQThDO0FBQzNETSxFQUFBQSxXQUFXLENBQUNDLFNBQUQsRUFBWUMsS0FBWixFQUFtQkMsT0FBTyxHQUFHUix3QkFBN0IsRUFBdUQ7QUFDaEUsVUFBTUUseUJBQU47QUFFQUMsSUFBQUEsS0FBSyxHQUFHLEtBQUtJLEtBQUwsR0FBYUEsS0FBckI7O0FBQ0EsVUFBTUUsS0FBSyxtQ0FBUVQsd0JBQVIsR0FBcUNRLE9BQXJDLENBQVg7O0FBQ0EsVUFBTTtBQUNKRSxNQUFBQSxNQURJO0FBRUpDLE1BQUFBLFlBRkk7QUFHSkMsTUFBQUEsU0FISTtBQUlKQyxNQUFBQSxRQUpJO0FBS0pDLE1BQUFBLFNBTEk7QUFNSkMsTUFBQUEsVUFOSTtBQU9KQyxNQUFBQSxXQVBJO0FBUUpDLE1BQUFBO0FBUkksUUFTRlIsS0FUSjtBQVVBLFVBQU1TLGNBQWMsR0FBRyxJQUFJekIsY0FBSixDQUFtQmtCLFlBQW5CLEVBQWlDUixLQUFqQyxDQUF2QjtBQUNBLFVBQU1nQixRQUFRLEdBQUcsSUFBSWhCLEtBQUssQ0FBQ2lCLGNBQVYsQ0FBeUI7QUFDeENDLE1BQUFBLFFBQVEsRUFBRTtBQUNSVCxRQUFBQSxTQUFTLEVBQUU7QUFBRVUsVUFBQUEsS0FBSyxFQUFFLElBQUluQixLQUFLLENBQUNvQixLQUFWLENBQWdCWCxTQUFoQjtBQUFULFNBREg7QUFFUlksUUFBQUEsUUFBUSxFQUFFO0FBQUVGLFVBQUFBLEtBQUssRUFBRTtBQUFULFNBRkY7QUFHUkcsUUFBQUEsVUFBVSxFQUFFO0FBQUVILFVBQUFBLEtBQUssRUFBRTtBQUFUO0FBSEosT0FEOEI7QUFNeEN4QixNQUFBQSxZQUFZLEVBQUVBLFlBQVksRUFOYztBQU94Q0QsTUFBQUEsY0FBYyxFQUFFQSxjQUFjLEVBUFU7QUFReENnQixNQUFBQSxRQUFRLEVBQUVWLEtBQUssQ0FBQ1UsUUFBRCxDQVJ5QjtBQVN4Q0MsTUFBQUEsU0FUd0M7QUFVeENDLE1BQUFBLFVBVndDO0FBV3hDQyxNQUFBQTtBQVh3QyxLQUF6QixDQUFqQjtBQWNBLFNBQUtWLFNBQUwsR0FBaUJBLFNBQWpCO0FBQ0EsU0FBS0ksTUFBTCxHQUFjQSxNQUFkO0FBQ0EsU0FBS2dCLFVBQUwsR0FBa0IsSUFBSXpCLElBQUosRUFBbEI7QUFDQSxTQUFLMEIsVUFBTCxHQUFrQixJQUFJL0IsVUFBSixDQUFlZSxZQUFmLENBQWxCO0FBQ0EsU0FBS08sY0FBTCxHQUFzQkEsY0FBdEI7QUFDQSxTQUFLVSxNQUFMLEdBQWNWLGNBQWMsQ0FBQ1UsTUFBN0I7QUFDQSxTQUFLQyxNQUFMLEdBQWNYLGNBQWMsQ0FBQ1csTUFBN0I7QUFDQSxTQUFLQyxRQUFMLEdBQWdCWixjQUFjLENBQUNZLFFBQS9CO0FBQ0EsU0FBS1gsUUFBTCxHQUFnQkEsUUFBaEI7QUFDQSxTQUFLWSxNQUFMLEdBQWMsSUFBSTVCLEtBQUssQ0FBQzZCLE1BQVYsQ0FBaUIsS0FBS0YsUUFBdEIsRUFBZ0MsS0FBS1gsUUFBckMsQ0FBZDtBQUNBLFNBQUtZLE1BQUwsQ0FBWUUsYUFBWixHQUE0QixLQUE1QjtBQUNBLFNBQUtoQix1QkFBTCxHQUErQkEsdUJBQS9CO0FBRUEsU0FBS1gsU0FBTCxDQUFlNEIsR0FBZixDQUFtQixLQUFLSCxNQUF4QjtBQUNEOztBQUVESSxFQUFBQSxjQUFjLENBQUNDLE1BQUQsRUFBUztBQUNyQixVQUFNRCxjQUFOLENBQXFCQyxNQUFyQjtBQUVBLFNBQUtSLE1BQUwsQ0FBWVMsV0FBWixHQUEwQixJQUExQjtBQUVBLFNBQUtDLFlBQUwsSUFBcUIsS0FBS0EsWUFBTCxDQUFrQkMsTUFBbEIsRUFBckI7QUFDRDtBQUVEO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQ0VDLEVBQUFBLGlCQUFpQixDQUFDQyxRQUFELEVBQVc7QUFDMUIsUUFBSSxDQUFDQSxRQUFRLENBQUNDLE1BQWQsRUFBc0I7QUFDcEJELE1BQUFBLFFBQVEsQ0FBQ0MsTUFBVCxHQUFrQixLQUFLaEIsVUFBTCxDQUFnQmlCLEdBQWhCLENBQW9CakQsTUFBcEIsRUFBNEJTLEtBQTVCLENBQWxCO0FBQ0EsV0FBS3dCLFVBQUwsQ0FBZ0JPLEdBQWhCLENBQW9CTyxRQUFRLENBQUNHLEVBQTdCO0FBQ0Q7O0FBRUQsU0FBS0MsWUFBTCxDQUFrQkosUUFBbEIsRUFBNEJLLDZCQUE1QixDQUEwREwsUUFBMUQ7QUFDRDtBQUVEO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7OztBQUNFTSxFQUFBQSxnQkFBZ0IsQ0FBQ04sUUFBRCxFQUFXO0FBQ3pCLFFBQUksQ0FBQ0EsUUFBUSxDQUFDQyxNQUFkLEVBQXNCO0FBQ3BCO0FBQ0Q7O0FBRUQsU0FBS0csWUFBTCxDQUFrQkosUUFBbEIsRUFBNEJLLDZCQUE1QixDQUEwREwsUUFBMUQ7QUFDRDtBQUVEO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7OztBQUNFTyxFQUFBQSxjQUFjLENBQUNQLFFBQUQsRUFBVztBQUN2QixRQUFJLENBQUNBLFFBQVEsQ0FBQ0MsTUFBZCxFQUFzQjtBQUNwQjtBQUNEOztBQUVERCxJQUFBQSxRQUFRLENBQUNDLE1BQVQsQ0FBZ0JPLEtBQWhCO0FBQ0EsU0FBS0gsNkJBQUwsQ0FBbUNMLFFBQW5DO0FBRUFBLElBQUFBLFFBQVEsQ0FBQ0MsTUFBVCxHQUFrQixJQUFsQjtBQUNEO0FBRUQ7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFDRUcsRUFBQUEsWUFBWSxDQUFDSixRQUFELEVBQVc7QUFDckIsVUFBTTtBQUFFUyxNQUFBQSxRQUFGO0FBQVlDLE1BQUFBLFFBQVo7QUFBc0JDLE1BQUFBLEtBQXRCO0FBQTZCQyxNQUFBQSxNQUE3QjtBQUFxQ0MsTUFBQUEsS0FBckM7QUFBNENDLE1BQUFBLEtBQTVDO0FBQW1EQyxNQUFBQSxJQUFuRDtBQUF5RFosTUFBQUE7QUFBekQsUUFBZ0VILFFBQXRFO0FBQ0EsVUFBTTtBQUFFZ0IsTUFBQUEsQ0FBRjtBQUFLQyxNQUFBQSxDQUFMO0FBQVFDLE1BQUFBO0FBQVIsUUFBY0wsS0FBcEI7QUFFQWIsSUFBQUEsUUFBUSxDQUFDQyxNQUFULENBQWdCUSxRQUFoQixDQUF5QlUsSUFBekIsQ0FBOEJWLFFBQTlCO0FBQ0FULElBQUFBLFFBQVEsQ0FBQ0MsTUFBVCxDQUFnQlMsUUFBaEIsQ0FBeUJTLElBQXpCLENBQThCVCxRQUE5QjtBQUNBVixJQUFBQSxRQUFRLENBQUNDLE1BQVQsQ0FBZ0JtQixJQUFoQixHQUF1QlQsS0FBSyxHQUFHQyxNQUEvQjtBQUNBWixJQUFBQSxRQUFRLENBQUNDLE1BQVQsQ0FBZ0JZLEtBQWhCLENBQXNCUSxNQUF0QixDQUE2QkwsQ0FBN0IsRUFBZ0NDLENBQWhDLEVBQW1DQyxDQUFuQztBQUNBbEIsSUFBQUEsUUFBUSxDQUFDQyxNQUFULENBQWdCYSxLQUFoQixHQUF3QkEsS0FBeEI7QUFDQWQsSUFBQUEsUUFBUSxDQUFDQyxNQUFULENBQWdCcUIsS0FBaEIsR0FBd0IsS0FBS3BDLFVBQUwsQ0FBZ0JxQyxJQUFoQixDQUFxQnBCLEVBQXJCLENBQXhCOztBQUVBLFFBQUlZLElBQUksSUFBSUEsSUFBSSxZQUFZckQsS0FBSyxDQUFDOEQsTUFBbEMsRUFBMEM7QUFDeEMsWUFBTTtBQUFFQyxRQUFBQTtBQUFGLFVBQVVWLElBQUksQ0FBQ3JDLFFBQXJCO0FBRUFzQixNQUFBQSxRQUFRLENBQUNDLE1BQVQsQ0FBZ0J5QixPQUFoQixHQUEwQkQsR0FBMUI7QUFDQXpCLE1BQUFBLFFBQVEsQ0FBQ0MsTUFBVCxDQUFnQjBCLFlBQWhCLEdBQStCLEtBQUtDLFlBQUwsQ0FDN0JILEdBRDZCLEVBRTdCLEtBQUtqRCx1QkFGd0IsQ0FBL0I7QUFJRDs7QUFFRCxXQUFPLElBQVA7QUFDRDtBQUVEO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQ0U2QixFQUFBQSw2QkFBNkIsQ0FBQ0wsUUFBRCxFQUFXO0FBQ3RDLFNBQUs2QixtQkFBTCxDQUF5QjdCLFFBQXpCLEVBQ0c4QixlQURILENBQ21COUIsUUFEbkIsRUFFRytCLG1CQUZILENBRXVCL0IsUUFGdkIsRUFHR2dDLGdCQUhILENBR29CaEMsUUFIcEIsRUFJR2lDLGdCQUpILENBSW9CakMsUUFKcEIsRUFLR2tDLHVCQUxILENBSzJCbEMsUUFMM0I7QUFPQSxXQUFPLElBQVA7QUFDRDtBQUVEO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQ0U2QixFQUFBQSxtQkFBbUIsQ0FBQzdCLFFBQUQsRUFBVztBQUM1QixVQUFNbUMsU0FBUyxHQUFHLFVBQWxCO0FBQ0EsVUFBTTtBQUFFOUMsTUFBQUEsUUFBRjtBQUFZRCxNQUFBQSxNQUFaO0FBQW9CRCxNQUFBQTtBQUFwQixRQUErQixJQUFyQztBQUNBLFVBQU07QUFBRWMsTUFBQUE7QUFBRixRQUFhRCxRQUFuQjtBQUNBLFVBQU07QUFBRW9DLE1BQUFBO0FBQUYsUUFBYS9DLFFBQVEsQ0FBQ2dELFVBQVQsQ0FBb0JGLFNBQXBCLENBQW5CO0FBRUFoRCxJQUFBQSxNQUFNLENBQUNtRCxLQUFQLENBQWFyQyxNQUFNLENBQUNxQixLQUFQLEdBQWVsQyxNQUFmLEdBQXdCZ0QsTUFBeEIsR0FBaUMsQ0FBOUMsSUFBbURuQyxNQUFNLENBQUNRLFFBQVAsQ0FBZ0I4QixDQUFuRTtBQUNBcEQsSUFBQUEsTUFBTSxDQUFDbUQsS0FBUCxDQUFhckMsTUFBTSxDQUFDcUIsS0FBUCxHQUFlbEMsTUFBZixHQUF3QmdELE1BQXhCLEdBQWlDLENBQTlDLElBQW1EbkMsTUFBTSxDQUFDUSxRQUFQLENBQWdCK0IsQ0FBbkU7QUFDQXJELElBQUFBLE1BQU0sQ0FBQ21ELEtBQVAsQ0FBYXJDLE1BQU0sQ0FBQ3FCLEtBQVAsR0FBZWxDLE1BQWYsR0FBd0JnRCxNQUF4QixHQUFpQyxDQUE5QyxJQUFtRG5DLE1BQU0sQ0FBQ1EsUUFBUCxDQUFnQmdDLENBQW5FO0FBRUEsV0FBTyxJQUFQO0FBQ0Q7QUFFRDtBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUNFWCxFQUFBQSxlQUFlLENBQUM5QixRQUFELEVBQVc7QUFDeEIsVUFBTW1DLFNBQVMsR0FBRyxNQUFsQjtBQUNBLFVBQU07QUFBRTlDLE1BQUFBLFFBQUY7QUFBWUQsTUFBQUEsTUFBWjtBQUFvQkQsTUFBQUE7QUFBcEIsUUFBK0IsSUFBckM7QUFDQSxVQUFNO0FBQUVjLE1BQUFBO0FBQUYsUUFBYUQsUUFBbkI7QUFDQSxVQUFNO0FBQUVvQyxNQUFBQTtBQUFGLFFBQWEvQyxRQUFRLENBQUNnRCxVQUFULENBQW9CRixTQUFwQixDQUFuQjtBQUVBaEQsSUFBQUEsTUFBTSxDQUFDbUQsS0FBUCxDQUFhckMsTUFBTSxDQUFDcUIsS0FBUCxHQUFlbEMsTUFBZixHQUF3QmdELE1BQXhCLEdBQWlDLENBQTlDLElBQW1EbkMsTUFBTSxDQUFDbUIsSUFBMUQ7QUFFQSxXQUFPLElBQVA7QUFDRDtBQUVEO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQ0VXLEVBQUFBLG1CQUFtQixDQUFDL0IsUUFBRCxFQUFXO0FBQzVCLFVBQU1tQyxTQUFTLEdBQUcsVUFBbEI7QUFDQSxVQUFNO0FBQUU5QyxNQUFBQSxRQUFGO0FBQVlELE1BQUFBLE1BQVo7QUFBb0JELE1BQUFBO0FBQXBCLFFBQStCLElBQXJDO0FBQ0EsVUFBTTtBQUFFYyxNQUFBQTtBQUFGLFFBQWFELFFBQW5CO0FBQ0EsVUFBTTtBQUFFb0MsTUFBQUE7QUFBRixRQUFhL0MsUUFBUSxDQUFDZ0QsVUFBVCxDQUFvQkYsU0FBcEIsQ0FBbkI7QUFFQWhELElBQUFBLE1BQU0sQ0FBQ21ELEtBQVAsQ0FBYXJDLE1BQU0sQ0FBQ3FCLEtBQVAsR0FBZWxDLE1BQWYsR0FBd0JnRCxNQUF4QixHQUFpQyxDQUE5QyxJQUFtRG5DLE1BQU0sQ0FBQ1MsUUFBUCxDQUFnQitCLENBQW5FO0FBRUEsV0FBTyxJQUFQO0FBQ0Q7QUFFRDtBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUNFVCxFQUFBQSxnQkFBZ0IsQ0FBQ2hDLFFBQUQsRUFBVztBQUN6QixVQUFNbUMsU0FBUyxHQUFHLE9BQWxCO0FBQ0EsVUFBTTtBQUFFOUMsTUFBQUEsUUFBRjtBQUFZRCxNQUFBQSxNQUFaO0FBQW9CRCxNQUFBQTtBQUFwQixRQUErQixJQUFyQztBQUNBLFVBQU07QUFBRWMsTUFBQUE7QUFBRixRQUFhRCxRQUFuQjtBQUNBLFVBQU07QUFBRW9DLE1BQUFBO0FBQUYsUUFBYS9DLFFBQVEsQ0FBQ2dELFVBQVQsQ0FBb0JGLFNBQXBCLENBQW5CO0FBRUFoRCxJQUFBQSxNQUFNLENBQUNtRCxLQUFQLENBQWFyQyxNQUFNLENBQUNxQixLQUFQLEdBQWVsQyxNQUFmLEdBQXdCZ0QsTUFBeEIsR0FBaUMsQ0FBOUMsSUFBbURuQyxNQUFNLENBQUNZLEtBQVAsQ0FBYUcsQ0FBaEU7QUFDQTdCLElBQUFBLE1BQU0sQ0FBQ21ELEtBQVAsQ0FBYXJDLE1BQU0sQ0FBQ3FCLEtBQVAsR0FBZWxDLE1BQWYsR0FBd0JnRCxNQUF4QixHQUFpQyxDQUE5QyxJQUFtRG5DLE1BQU0sQ0FBQ1ksS0FBUCxDQUFhSSxDQUFoRTtBQUNBOUIsSUFBQUEsTUFBTSxDQUFDbUQsS0FBUCxDQUFhckMsTUFBTSxDQUFDcUIsS0FBUCxHQUFlbEMsTUFBZixHQUF3QmdELE1BQXhCLEdBQWlDLENBQTlDLElBQW1EbkMsTUFBTSxDQUFDWSxLQUFQLENBQWFLLENBQWhFO0FBRUEsV0FBTyxJQUFQO0FBQ0Q7QUFFRDtBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUNFZSxFQUFBQSxnQkFBZ0IsQ0FBQ2pDLFFBQUQsRUFBVztBQUN6QixVQUFNbUMsU0FBUyxHQUFHLE9BQWxCO0FBQ0EsVUFBTTtBQUFFOUMsTUFBQUEsUUFBRjtBQUFZRCxNQUFBQSxNQUFaO0FBQW9CRCxNQUFBQTtBQUFwQixRQUErQixJQUFyQztBQUNBLFVBQU07QUFBRWMsTUFBQUE7QUFBRixRQUFhRCxRQUFuQjtBQUNBLFVBQU07QUFBRW9DLE1BQUFBO0FBQUYsUUFBYS9DLFFBQVEsQ0FBQ2dELFVBQVQsQ0FBb0JGLFNBQXBCLENBQW5CO0FBRUFoRCxJQUFBQSxNQUFNLENBQUNtRCxLQUFQLENBQWFyQyxNQUFNLENBQUNxQixLQUFQLEdBQWVsQyxNQUFmLEdBQXdCZ0QsTUFBeEIsR0FBaUMsQ0FBOUMsSUFBbURuQyxNQUFNLENBQUNhLEtBQTFEO0FBRUEsV0FBTyxJQUFQO0FBQ0Q7QUFFRDtBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUNFb0IsRUFBQUEsdUJBQXVCLENBQUNsQyxRQUFELEVBQVc7QUFDaEMsVUFBTW1DLFNBQVMsR0FBRyxPQUFsQjtBQUNBLFVBQU07QUFBRTlDLE1BQUFBLFFBQUY7QUFBWUQsTUFBQUEsTUFBWjtBQUFvQkQsTUFBQUE7QUFBcEIsUUFBK0IsSUFBckM7QUFDQSxVQUFNO0FBQUVjLE1BQUFBO0FBQUYsUUFBYUQsUUFBbkI7QUFDQSxVQUFNO0FBQUVvQyxNQUFBQTtBQUFGLFFBQWEvQyxRQUFRLENBQUNnRCxVQUFULENBQW9CRixTQUFwQixDQUFuQjtBQUVBaEQsSUFBQUEsTUFBTSxDQUFDbUQsS0FBUCxDQUFhckMsTUFBTSxDQUFDcUIsS0FBUCxHQUFlbEMsTUFBZixHQUF3QmdELE1BQXhCLEdBQWlDLENBQTlDLElBQW1EbkMsTUFBTSxDQUFDMEIsWUFBMUQ7QUFFQSxXQUFPLElBQVA7QUFDRDs7QUFFREMsRUFBQUEsWUFBWSxDQUFDRixPQUFELEVBQVVnQixLQUFWLEVBQWlCO0FBQzNCLFFBQUloQixPQUFPLENBQUNDLFlBQVIsS0FBeUJnQixTQUE3QixFQUF3QztBQUN0QyxVQUFJLENBQUMsS0FBSzlDLFlBQVYsRUFBd0I7QUFDdEIsYUFBS0EsWUFBTCxHQUFvQixJQUFJM0MsWUFBSixDQUFpQixJQUFqQixFQUF1QndGLEtBQXZCLENBQXBCO0FBQ0Q7O0FBRUQsV0FBSzdDLFlBQUwsQ0FBa0IrQyxVQUFsQixDQUE2QmxCLE9BQTdCO0FBQ0Q7O0FBRUQsV0FBT0EsT0FBTyxDQUFDQyxZQUFmO0FBQ0Q7QUFFRDtBQUNGO0FBQ0E7QUFDQTtBQUNBOzs7QUFDRWtCLEVBQUFBLE9BQU8sR0FBRztBQUNSLFVBQU07QUFBRWhGLE1BQUFBLFNBQUY7QUFBYXlCLE1BQUFBLE1BQWI7QUFBcUJPLE1BQUFBLFlBQXJCO0FBQW1DWCxNQUFBQTtBQUFuQyxRQUFrRCxJQUF4RDtBQUVBckIsSUFBQUEsU0FBUyxDQUFDaUYsTUFBVixDQUFpQnhELE1BQWpCO0FBQ0FKLElBQUFBLFVBQVUsQ0FBQzJELE9BQVg7QUFDQWhELElBQUFBLFlBQVksSUFBSUEsWUFBWSxDQUFDZ0QsT0FBYixFQUFoQjtBQUNEOztBQW5SMEQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQYXJ0aWNsZUJ1ZmZlciwgVGFyZ2V0LCBUZXh0dXJlQXRsYXMsIFVuaXF1ZUxpc3QgfSBmcm9tICcuLi9jb21tb24nO1xuaW1wb3J0IHsgZnJhZ21lbnRTaGFkZXIsIHZlcnRleFNoYWRlciB9IGZyb20gJy4vc2hhZGVycyc7XG5cbmltcG9ydCBCYXNlUmVuZGVyZXIgZnJvbSAnLi4vLi4vQmFzZVJlbmRlcmVyJztcbmltcG9ydCB7IERFRkFVTFRfUkVOREVSRVJfT1BUSU9OUyB9IGZyb20gJy4uL2NvbW1vbi9jb25zdGFudHMnO1xuaW1wb3J0IHsgUG9vbCB9IGZyb20gJy4uLy4uLy4uL2NvcmUnO1xuaW1wb3J0IHsgUkVOREVSRVJfVFlQRV9HUFVfREVTS1RPUCB9IGZyb20gJy4uLy4uL3R5cGVzJztcblxubGV0IFRIUkVFO1xuXG4vKipcbiAqIEdQVVJlbmRlcmVyIGZvciBkZXZpY2VzIHRoYXQgc3VwcG9ydCBmbG9hdGluZyBwb2ludCB0ZXh0dXJlcy5cbiAqXG4gKiBAYXV0aG9yIHRocmF4IDxtYW50aHJheEBnbWFpbC5jb20+XG4gKiBAYXV0aG9yIHJvaGFuLWRlc2hwYW5kZSA8cm9oYW5AY3JlYXRpdmVsaWZlZm9ybS5jb20+XG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIERlc2t0b3BHUFVSZW5kZXJlciBleHRlbmRzIEJhc2VSZW5kZXJlciB7XG4gIGNvbnN0cnVjdG9yKGNvbnRhaW5lciwgdGhyZWUsIG9wdGlvbnMgPSBERUZBVUxUX1JFTkRFUkVSX09QVElPTlMpIHtcbiAgICBzdXBlcihSRU5ERVJFUl9UWVBFX0dQVV9ERVNLVE9QKTtcblxuICAgIFRIUkVFID0gdGhpcy50aHJlZSA9IHRocmVlO1xuICAgIGNvbnN0IHByb3BzID0geyAuLi5ERUZBVUxUX1JFTkRFUkVSX09QVElPTlMsIC4uLm9wdGlvbnMgfTtcbiAgICBjb25zdCB7XG4gICAgICBjYW1lcmEsXG4gICAgICBtYXhQYXJ0aWNsZXMsXG4gICAgICBiYXNlQ29sb3IsXG4gICAgICBibGVuZGluZyxcbiAgICAgIGRlcHRoVGVzdCxcbiAgICAgIGRlcHRoV3JpdGUsXG4gICAgICB0cmFuc3BhcmVudCxcbiAgICAgIHNob3VsZERlYnVnVGV4dHVyZUF0bGFzLFxuICAgIH0gPSBwcm9wcztcbiAgICBjb25zdCBwYXJ0aWNsZUJ1ZmZlciA9IG5ldyBQYXJ0aWNsZUJ1ZmZlcihtYXhQYXJ0aWNsZXMsIFRIUkVFKTtcbiAgICBjb25zdCBtYXRlcmlhbCA9IG5ldyBUSFJFRS5TaGFkZXJNYXRlcmlhbCh7XG4gICAgICB1bmlmb3Jtczoge1xuICAgICAgICBiYXNlQ29sb3I6IHsgdmFsdWU6IG5ldyBUSFJFRS5Db2xvcihiYXNlQ29sb3IpIH0sXG4gICAgICAgIHVUZXh0dXJlOiB7IHZhbHVlOiBudWxsIH0sXG4gICAgICAgIGF0bGFzSW5kZXg6IHsgdmFsdWU6IG51bGwgfSxcbiAgICAgIH0sXG4gICAgICB2ZXJ0ZXhTaGFkZXI6IHZlcnRleFNoYWRlcigpLFxuICAgICAgZnJhZ21lbnRTaGFkZXI6IGZyYWdtZW50U2hhZGVyKCksXG4gICAgICBibGVuZGluZzogVEhSRUVbYmxlbmRpbmddLFxuICAgICAgZGVwdGhUZXN0LFxuICAgICAgZGVwdGhXcml0ZSxcbiAgICAgIHRyYW5zcGFyZW50LFxuICAgIH0pO1xuXG4gICAgdGhpcy5jb250YWluZXIgPSBjb250YWluZXI7XG4gICAgdGhpcy5jYW1lcmEgPSBjYW1lcmE7XG4gICAgdGhpcy50YXJnZXRQb29sID0gbmV3IFBvb2woKTtcbiAgICB0aGlzLnVuaXF1ZUxpc3QgPSBuZXcgVW5pcXVlTGlzdChtYXhQYXJ0aWNsZXMpO1xuICAgIHRoaXMucGFydGljbGVCdWZmZXIgPSBwYXJ0aWNsZUJ1ZmZlcjtcbiAgICB0aGlzLmJ1ZmZlciA9IHBhcnRpY2xlQnVmZmVyLmJ1ZmZlcjtcbiAgICB0aGlzLnN0cmlkZSA9IHBhcnRpY2xlQnVmZmVyLnN0cmlkZTtcbiAgICB0aGlzLmdlb21ldHJ5ID0gcGFydGljbGVCdWZmZXIuZ2VvbWV0cnk7XG4gICAgdGhpcy5tYXRlcmlhbCA9IG1hdGVyaWFsO1xuICAgIHRoaXMucG9pbnRzID0gbmV3IFRIUkVFLlBvaW50cyh0aGlzLmdlb21ldHJ5LCB0aGlzLm1hdGVyaWFsKTtcbiAgICB0aGlzLnBvaW50cy5mcnVzdHVtQ3VsbGVkID0gZmFsc2U7XG4gICAgdGhpcy5zaG91bGREZWJ1Z1RleHR1cmVBdGxhcyA9IHNob3VsZERlYnVnVGV4dHVyZUF0bGFzO1xuXG4gICAgdGhpcy5jb250YWluZXIuYWRkKHRoaXMucG9pbnRzKTtcbiAgfVxuXG4gIG9uU3lzdGVtVXBkYXRlKHN5c3RlbSkge1xuICAgIHN1cGVyLm9uU3lzdGVtVXBkYXRlKHN5c3RlbSk7XG5cbiAgICB0aGlzLmJ1ZmZlci5uZWVkc1VwZGF0ZSA9IHRydWU7XG5cbiAgICB0aGlzLnRleHR1cmVBdGxhcyAmJiB0aGlzLnRleHR1cmVBdGxhcy51cGRhdGUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQb29scyB0aGUgcGFydGljbGUgdGFyZ2V0IGlmIGl0IGRvZXMgbm90IGV4aXN0LlxuICAgKiBVcGRhdGVzIHRoZSB0YXJnZXQgYW5kIG1hcHMgcGFydGljbGUgcHJvcGVydGllcyB0byB0aGUgcG9pbnQuXG4gICAqXG4gICAqIEBwYXJhbSB7UGFydGljbGV9XG4gICAqL1xuICBvblBhcnRpY2xlQ3JlYXRlZChwYXJ0aWNsZSkge1xuICAgIGlmICghcGFydGljbGUudGFyZ2V0KSB7XG4gICAgICBwYXJ0aWNsZS50YXJnZXQgPSB0aGlzLnRhcmdldFBvb2wuZ2V0KFRhcmdldCwgVEhSRUUpO1xuICAgICAgdGhpcy51bmlxdWVMaXN0LmFkZChwYXJ0aWNsZS5pZCk7XG4gICAgfVxuXG4gICAgdGhpcy51cGRhdGVUYXJnZXQocGFydGljbGUpLm1hcFBhcnRpY2xlVGFyZ2V0UHJvcHNUb1BvaW50KHBhcnRpY2xlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNYXBzIHBhcnRpY2xlIHByb3BlcnRpZXMgdG8gdGhlIHBvaW50IGlmIHRoZSBwYXJ0aWNsZSBoYXMgYSB0YXJnZXQuXG4gICAqXG4gICAqIEBwYXJhbSB7UGFydGljbGV9XG4gICAqL1xuICBvblBhcnRpY2xlVXBkYXRlKHBhcnRpY2xlKSB7XG4gICAgaWYgKCFwYXJ0aWNsZS50YXJnZXQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnVwZGF0ZVRhcmdldChwYXJ0aWNsZSkubWFwUGFydGljbGVUYXJnZXRQcm9wc1RvUG9pbnQocGFydGljbGUpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlc2V0cyBhbmQgY2xlYXJzIHRoZSBwYXJ0aWNsZSB0YXJnZXQuXG4gICAqXG4gICAqIEBwYXJhbSB7UGFydGljbGV9XG4gICAqL1xuICBvblBhcnRpY2xlRGVhZChwYXJ0aWNsZSkge1xuICAgIGlmICghcGFydGljbGUudGFyZ2V0KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgcGFydGljbGUudGFyZ2V0LnJlc2V0KCk7XG4gICAgdGhpcy5tYXBQYXJ0aWNsZVRhcmdldFByb3BzVG9Qb2ludChwYXJ0aWNsZSk7XG5cbiAgICBwYXJ0aWNsZS50YXJnZXQgPSBudWxsO1xuICB9XG5cbiAgLyoqXG4gICAqIE1hcHMgYWxsIG11dGFibGUgcHJvcGVydGllcyBmcm9tIHRoZSBwYXJ0aWNsZSB0byB0aGUgdGFyZ2V0LlxuICAgKlxuICAgKiBAcGFyYW0ge1BhcnRpY2xlfVxuICAgKiBAcmV0dXJuIHtEZXNrdG9wR1BVUmVuZGVyZXJ9XG4gICAqL1xuICB1cGRhdGVUYXJnZXQocGFydGljbGUpIHtcbiAgICBjb25zdCB7IHBvc2l0aW9uLCByb3RhdGlvbiwgc2NhbGUsIHJhZGl1cywgY29sb3IsIGFscGhhLCBib2R5LCBpZCB9ID0gcGFydGljbGU7XG4gICAgY29uc3QgeyByLCBnLCBiIH0gPSBjb2xvcjtcblxuICAgIHBhcnRpY2xlLnRhcmdldC5wb3NpdGlvbi5jb3B5KHBvc2l0aW9uKTtcbiAgICBwYXJ0aWNsZS50YXJnZXQucm90YXRpb24uY29weShyb3RhdGlvbik7XG4gICAgcGFydGljbGUudGFyZ2V0LnNpemUgPSBzY2FsZSAqIHJhZGl1cztcbiAgICBwYXJ0aWNsZS50YXJnZXQuY29sb3Iuc2V0UkdCKHIsIGcsIGIpO1xuICAgIHBhcnRpY2xlLnRhcmdldC5hbHBoYSA9IGFscGhhO1xuICAgIHBhcnRpY2xlLnRhcmdldC5pbmRleCA9IHRoaXMudW5pcXVlTGlzdC5maW5kKGlkKTtcblxuICAgIGlmIChib2R5ICYmIGJvZHkgaW5zdGFuY2VvZiBUSFJFRS5TcHJpdGUpIHtcbiAgICAgIGNvbnN0IHsgbWFwIH0gPSBib2R5Lm1hdGVyaWFsO1xuXG4gICAgICBwYXJ0aWNsZS50YXJnZXQudGV4dHVyZSA9IG1hcDtcbiAgICAgIHBhcnRpY2xlLnRhcmdldC50ZXh0dXJlSW5kZXggPSB0aGlzLmdldFRleHR1cmVJRChcbiAgICAgICAgbWFwLFxuICAgICAgICB0aGlzLnNob3VsZERlYnVnVGV4dHVyZUF0bGFzXG4gICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIEVudHJ5IHBvaW50IGZvciBtYXBwaW5nIHBhcnRpY2xlIHByb3BlcnRpZXMgdG8gYnVmZmVyIGdlb21ldHJ5IHBvaW50cy5cbiAgICpcbiAgICogQHBhcmFtIHtQYXJ0aWNsZX0gcGFydGljbGUgLSBUaGUgcGFydGljbGUgY29udGFpbmluZyB0aGUgcHJvcGVydGllcyB0byBtYXBcbiAgICogQHJldHVybiB7RGVza3RvcEdQVVJlbmRlcmVyfVxuICAgKi9cbiAgbWFwUGFydGljbGVUYXJnZXRQcm9wc1RvUG9pbnQocGFydGljbGUpIHtcbiAgICB0aGlzLnVwZGF0ZVBvaW50UG9zaXRpb24ocGFydGljbGUpXG4gICAgICAudXBkYXRlUG9pbnRTaXplKHBhcnRpY2xlKVxuICAgICAgLnVwZGF0ZVBvaW50Um90YXRpb24ocGFydGljbGUpXG4gICAgICAudXBkYXRlUG9pbnRDb2xvcihwYXJ0aWNsZSlcbiAgICAgIC51cGRhdGVQb2ludEFscGhhKHBhcnRpY2xlKVxuICAgICAgLnVwZGF0ZVBvaW50VGV4dHVyZUluZGV4KHBhcnRpY2xlKTtcblxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZXMgdGhlIHBvaW50J3MgcG9zaXRpb24gYWNjb3JkaW5nIHRvIHRoZSBwYXJ0aWNsZSdzIHRhcmdldCBwb3NpdGlvbi5cbiAgICpcbiAgICogQHBhcmFtIHtQYXJ0aWNsZX0gcGFydGljbGUgLSBUaGUgcGFydGljbGUgY29udGFpbmluZyB0aGUgdGFyZ2V0IHBvc2l0aW9uLlxuICAgKiBAcmV0dXJuIHtEZXNrdG9wR1BVUmVuZGVyZXJ9XG4gICAqL1xuICB1cGRhdGVQb2ludFBvc2l0aW9uKHBhcnRpY2xlKSB7XG4gICAgY29uc3QgYXR0cmlidXRlID0gJ3Bvc2l0aW9uJztcbiAgICBjb25zdCB7IGdlb21ldHJ5LCBzdHJpZGUsIGJ1ZmZlciB9ID0gdGhpcztcbiAgICBjb25zdCB7IHRhcmdldCB9ID0gcGFydGljbGU7XG4gICAgY29uc3QgeyBvZmZzZXQgfSA9IGdlb21ldHJ5LmF0dHJpYnV0ZXNbYXR0cmlidXRlXTtcblxuICAgIGJ1ZmZlci5hcnJheVt0YXJnZXQuaW5kZXggKiBzdHJpZGUgKyBvZmZzZXQgKyAwXSA9IHRhcmdldC5wb3NpdGlvbi54O1xuICAgIGJ1ZmZlci5hcnJheVt0YXJnZXQuaW5kZXggKiBzdHJpZGUgKyBvZmZzZXQgKyAxXSA9IHRhcmdldC5wb3NpdGlvbi55O1xuICAgIGJ1ZmZlci5hcnJheVt0YXJnZXQuaW5kZXggKiBzdHJpZGUgKyBvZmZzZXQgKyAyXSA9IHRhcmdldC5wb3NpdGlvbi56O1xuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlcyB0aGUgcG9pbnQncyBzaXplIHJlbGF0aXZlIHRvIHRoZSBwYXJ0aWNsZSdzIHRhcmdldCBzY2FsZSBhbmQgcmFkaXVzLlxuICAgKlxuICAgKiBAcGFyYW0ge1BhcnRpY2xlfSBwYXJ0aWNsZSAtIFRoZSBwYXJ0aWNsZSBjb250YWluaW5nIHRoZSB0YXJnZXQgc2NhbGUuXG4gICAqIEByZXR1cm4ge0Rlc2t0b3BHUFVSZW5kZXJlcn1cbiAgICovXG4gIHVwZGF0ZVBvaW50U2l6ZShwYXJ0aWNsZSkge1xuICAgIGNvbnN0IGF0dHJpYnV0ZSA9ICdzaXplJztcbiAgICBjb25zdCB7IGdlb21ldHJ5LCBzdHJpZGUsIGJ1ZmZlciB9ID0gdGhpcztcbiAgICBjb25zdCB7IHRhcmdldCB9ID0gcGFydGljbGU7XG4gICAgY29uc3QgeyBvZmZzZXQgfSA9IGdlb21ldHJ5LmF0dHJpYnV0ZXNbYXR0cmlidXRlXTtcblxuICAgIGJ1ZmZlci5hcnJheVt0YXJnZXQuaW5kZXggKiBzdHJpZGUgKyBvZmZzZXQgKyAwXSA9IHRhcmdldC5zaXplO1xuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlcyB0aGUgcG9pbnQncyByb3RhdGlvbi5cbiAgICpcbiAgICogQHBhcmFtIHtQYXJ0aWNsZX0gcGFydGljbGUgLSBUaGUgcGFydGljbGUgY29udGFpbmluZyB0aGUgdGFyZ2V0IHJvdGF0aW9uLlxuICAgKiBAcmV0dXJuIHtEZXNrdG9wR1BVUmVuZGVyZXJ9XG4gICAqL1xuICB1cGRhdGVQb2ludFJvdGF0aW9uKHBhcnRpY2xlKSB7XG4gICAgY29uc3QgYXR0cmlidXRlID0gJ3JvdGF0aW9uJztcbiAgICBjb25zdCB7IGdlb21ldHJ5LCBzdHJpZGUsIGJ1ZmZlciB9ID0gdGhpcztcbiAgICBjb25zdCB7IHRhcmdldCB9ID0gcGFydGljbGU7XG4gICAgY29uc3QgeyBvZmZzZXQgfSA9IGdlb21ldHJ5LmF0dHJpYnV0ZXNbYXR0cmlidXRlXTtcblxuICAgIGJ1ZmZlci5hcnJheVt0YXJnZXQuaW5kZXggKiBzdHJpZGUgKyBvZmZzZXQgKyAwXSA9IHRhcmdldC5yb3RhdGlvbi56O1xuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlcyB0aGUgcG9pbnQncyBjb2xvciBhdHRyaWJ1dGUgYWNjb3JkaW5nIHdpdGggdGhlIHBhcnRpY2xlJ3MgdGFyZ2V0IGNvbG9yLlxuICAgKlxuICAgKiBAcGFyYW0ge1BhcnRpY2xlfSBwYXJ0aWNsZSAtIFRoZSBwYXJ0aWNsZSBjb250YWluaW5nIHRoZSB0YXJnZXQgY29sb3IgYW5kIGFscGhhLlxuICAgKiBAcmV0dXJuIHtEZXNrdG9wR1BVUmVuZGVyZXJ9XG4gICAqL1xuICB1cGRhdGVQb2ludENvbG9yKHBhcnRpY2xlKSB7XG4gICAgY29uc3QgYXR0cmlidXRlID0gJ2NvbG9yJztcbiAgICBjb25zdCB7IGdlb21ldHJ5LCBzdHJpZGUsIGJ1ZmZlciB9ID0gdGhpcztcbiAgICBjb25zdCB7IHRhcmdldCB9ID0gcGFydGljbGU7XG4gICAgY29uc3QgeyBvZmZzZXQgfSA9IGdlb21ldHJ5LmF0dHJpYnV0ZXNbYXR0cmlidXRlXTtcblxuICAgIGJ1ZmZlci5hcnJheVt0YXJnZXQuaW5kZXggKiBzdHJpZGUgKyBvZmZzZXQgKyAwXSA9IHRhcmdldC5jb2xvci5yO1xuICAgIGJ1ZmZlci5hcnJheVt0YXJnZXQuaW5kZXggKiBzdHJpZGUgKyBvZmZzZXQgKyAxXSA9IHRhcmdldC5jb2xvci5nO1xuICAgIGJ1ZmZlci5hcnJheVt0YXJnZXQuaW5kZXggKiBzdHJpZGUgKyBvZmZzZXQgKyAyXSA9IHRhcmdldC5jb2xvci5iO1xuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlcyB0aGUgcG9pbnQgYWxwaGEgYXR0cmlidXRlIHdpdGggdGhlIHBhcnRpY2xlJ3MgdGFyZ2V0IGFscGhhLlxuICAgKlxuICAgKiBAcGFyYW0ge1BhcnRpY2xlfSBwYXJ0aWNsZSAtIFRoZSBwYXJ0aWNsZSBjb250YWluaW5nIHRoZSB0YXJnZXQgYWxwaGEuXG4gICAqIEByZXR1cm4ge0Rlc2t0b3BHUFVSZW5kZXJlcn1cbiAgICovXG4gIHVwZGF0ZVBvaW50QWxwaGEocGFydGljbGUpIHtcbiAgICBjb25zdCBhdHRyaWJ1dGUgPSAnYWxwaGEnO1xuICAgIGNvbnN0IHsgZ2VvbWV0cnksIHN0cmlkZSwgYnVmZmVyIH0gPSB0aGlzO1xuICAgIGNvbnN0IHsgdGFyZ2V0IH0gPSBwYXJ0aWNsZTtcbiAgICBjb25zdCB7IG9mZnNldCB9ID0gZ2VvbWV0cnkuYXR0cmlidXRlc1thdHRyaWJ1dGVdO1xuXG4gICAgYnVmZmVyLmFycmF5W3RhcmdldC5pbmRleCAqIHN0cmlkZSArIG9mZnNldCArIDBdID0gdGFyZ2V0LmFscGhhO1xuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlcyB0aGUgcG9pbnQgdGV4dHVyZSBhdHRyaWJ1dGUgd2l0aCB0aGUgcGFydGljbGUncyB0YXJnZXQgdGV4dHVyZS5cbiAgICpcbiAgICogQHBhcmFtIHtQYXJ0aWNsZX0gcGFydGljbGUgLSBUaGUgcGFydGljbGUgY29udGFpbmluZyB0aGUgdGFyZ2V0IHRleHR1cmUuXG4gICAqIEByZXR1cm4ge0Rlc2t0b3BHUFVSZW5kZXJlcn1cbiAgICovXG4gIHVwZGF0ZVBvaW50VGV4dHVyZUluZGV4KHBhcnRpY2xlKSB7XG4gICAgY29uc3QgYXR0cmlidXRlID0gJ3RleElEJztcbiAgICBjb25zdCB7IGdlb21ldHJ5LCBzdHJpZGUsIGJ1ZmZlciB9ID0gdGhpcztcbiAgICBjb25zdCB7IHRhcmdldCB9ID0gcGFydGljbGU7XG4gICAgY29uc3QgeyBvZmZzZXQgfSA9IGdlb21ldHJ5LmF0dHJpYnV0ZXNbYXR0cmlidXRlXTtcblxuICAgIGJ1ZmZlci5hcnJheVt0YXJnZXQuaW5kZXggKiBzdHJpZGUgKyBvZmZzZXQgKyAwXSA9IHRhcmdldC50ZXh0dXJlSW5kZXg7XG5cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIGdldFRleHR1cmVJRCh0ZXh0dXJlLCBkZWJ1Zykge1xuICAgIGlmICh0ZXh0dXJlLnRleHR1cmVJbmRleCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBpZiAoIXRoaXMudGV4dHVyZUF0bGFzKSB7XG4gICAgICAgIHRoaXMudGV4dHVyZUF0bGFzID0gbmV3IFRleHR1cmVBdGxhcyh0aGlzLCBkZWJ1Zyk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMudGV4dHVyZUF0bGFzLmFkZFRleHR1cmUodGV4dHVyZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRleHR1cmUudGV4dHVyZUluZGV4O1xuICB9XG5cbiAgLyoqXG4gICAqIFRlYXJzIGRvd24gdGhlIEdQVVJlbmRlcmVyLlxuICAgKlxuICAgKiBAcmV0dXJuIHZvaWRcbiAgICovXG4gIGRlc3Ryb3koKSB7XG4gICAgY29uc3QgeyBjb250YWluZXIsIHBvaW50cywgdGV4dHVyZUF0bGFzLCB1bmlxdWVMaXN0IH0gPSB0aGlzO1xuXG4gICAgY29udGFpbmVyLnJlbW92ZShwb2ludHMpO1xuICAgIHVuaXF1ZUxpc3QuZGVzdHJveSgpO1xuICAgIHRleHR1cmVBdGxhcyAmJiB0ZXh0dXJlQXRsYXMuZGVzdHJveSgpO1xuICB9XG59XG4iXX0= ================================================ FILE: packages/sdk/lib/core/libs/three-nebula/renderer/GPURenderer/Desktop/shaders/fragmentShader.js ================================================ export const fragmentShader = () => { return ` uniform vec3 baseColor; uniform sampler2D uTexture; uniform sampler2D atlasIndex; varying float vRotation; varying vec3 targetColor; varying float targetAlpha; varying vec4 tileRect; varying float tileID; void main() { gl_FragColor = vec4(baseColor * targetColor, targetAlpha); vec2 uv = gl_PointCoord; uv = mix(tileRect.xy, tileRect.zw, gl_PointCoord); float mid = 0.5; uv = vec2( cos(vRotation) * (uv.x - mid) - sin(vRotation) * (uv.y - mid) + mid, cos(vRotation) * (uv.y - mid) + sin(vRotation) * (uv.x - mid) + mid ); gl_FragColor = gl_FragColor * texture2D(uTexture, uv); } `; }; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9yZW5kZXJlci9HUFVSZW5kZXJlci9EZXNrdG9wL3NoYWRlcnMvZnJhZ21lbnRTaGFkZXIuanMiXSwibmFtZXMiOlsiZnJhZ21lbnRTaGFkZXIiXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sTUFBTUEsY0FBYyxHQUFHLE1BQU07QUFDbEMsU0FBUTtBQUNWO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0ExQkU7QUEyQkQsQ0E1Qk0iLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgZnJhZ21lbnRTaGFkZXIgPSAoKSA9PiB7XG4gIHJldHVybiBgXG4gICAgdW5pZm9ybSB2ZWMzIGJhc2VDb2xvcjtcbiAgICB1bmlmb3JtIHNhbXBsZXIyRCB1VGV4dHVyZTtcbiAgICB1bmlmb3JtIHNhbXBsZXIyRCBhdGxhc0luZGV4O1xuXG4gICAgdmFyeWluZyBmbG9hdCB2Um90YXRpb247XG4gICAgdmFyeWluZyB2ZWMzIHRhcmdldENvbG9yO1xuICAgIHZhcnlpbmcgZmxvYXQgdGFyZ2V0QWxwaGE7XG4gICAgdmFyeWluZyB2ZWM0IHRpbGVSZWN0O1xuICAgIHZhcnlpbmcgZmxvYXQgdGlsZUlEO1xuXG4gICAgdm9pZCBtYWluKCkge1xuICAgICAgZ2xfRnJhZ0NvbG9yID0gdmVjNChiYXNlQ29sb3IgKiB0YXJnZXRDb2xvciwgdGFyZ2V0QWxwaGEpO1xuXG4gICAgICB2ZWMyIHV2ID0gZ2xfUG9pbnRDb29yZDtcbiAgICAgIHV2ID0gbWl4KHRpbGVSZWN0Lnh5LCB0aWxlUmVjdC56dywgZ2xfUG9pbnRDb29yZCk7XG5cbiAgICAgIGZsb2F0IG1pZCA9IDAuNTtcbiAgICAgIHV2ID0gdmVjMihcbiAgICAgICAgY29zKHZSb3RhdGlvbikgKiAodXYueCAtIG1pZCkgLSBzaW4odlJvdGF0aW9uKSAqICh1di55IC0gbWlkKSArIG1pZCxcbiAgICAgICAgY29zKHZSb3RhdGlvbikgKiAodXYueSAtIG1pZCkgKyBzaW4odlJvdGF0aW9uKSAqICh1di54IC0gbWlkKSArIG1pZFxuICAgICAgKTtcblxuICAgICAgZ2xfRnJhZ0NvbG9yID0gZ2xfRnJhZ0NvbG9yICogdGV4dHVyZTJEKHVUZXh0dXJlLCB1dik7XG5cbiAgICB9XG5gO1xufTtcbiJdfQ== ================================================ FILE: packages/sdk/lib/core/libs/three-nebula/renderer/GPURenderer/Desktop/shaders/index.js ================================================ export { fragmentShader } from './fragmentShader'; export { vertexShader } from './vertexShader'; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9yZW5kZXJlci9HUFVSZW5kZXJlci9EZXNrdG9wL3NoYWRlcnMvaW5kZXguanMiXSwibmFtZXMiOlsiZnJhZ21lbnRTaGFkZXIiLCJ2ZXJ0ZXhTaGFkZXIiXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLGNBQVQsUUFBK0Isa0JBQS9CO0FBQ0EsU0FBU0MsWUFBVCxRQUE2QixnQkFBN0IiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBmcmFnbWVudFNoYWRlciB9IGZyb20gJy4vZnJhZ21lbnRTaGFkZXInO1xuZXhwb3J0IHsgdmVydGV4U2hhZGVyIH0gZnJvbSAnLi92ZXJ0ZXhTaGFkZXInO1xuIl19 ================================================ FILE: packages/sdk/lib/core/libs/three-nebula/renderer/GPURenderer/Desktop/shaders/vertexShader.js ================================================ import { DATA_TEXTURE_SIZE } from '../../common/TextureAtlas/constants'; import { SIZE_ATTENUATION_FACTOR } from '../../common/shaders/constants'; export const vertexShader = () => { return ` uniform sampler2D uTexture; //atlasIndex is a 256x1 float texture of tile rectangles as r=minx g=miny b=maxx a=maxy uniform sampler2D atlasIndex; attribute float size; attribute vec3 color; attribute float alpha; attribute float texID; attribute float rotation; varying float vRotation; varying vec3 targetColor; varying float targetAlpha; varying vec4 tileRect; varying float tileID; void main() { vec4 mvPosition = modelViewMatrix * vec4(position, 1.0); targetColor = color; targetAlpha = alpha; vRotation = rotation; tileID = texID; //get the tile rectangle from the atlasIndex texture.. tileRect = texture2D(atlasIndex, vec2((tileID + 0.5) / ${DATA_TEXTURE_SIZE}.0, 0.5)); gl_PointSize = ((size * ${SIZE_ATTENUATION_FACTOR}) / -mvPosition.z); gl_Position = projectionMatrix * mvPosition; } `; }; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9yZW5kZXJlci9HUFVSZW5kZXJlci9EZXNrdG9wL3NoYWRlcnMvdmVydGV4U2hhZGVyLmpzIl0sIm5hbWVzIjpbIkRBVEFfVEVYVFVSRV9TSVpFIiwiU0laRV9BVFRFTlVBVElPTl9GQUNUT1IiLCJ2ZXJ0ZXhTaGFkZXIiXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLGlCQUFULFFBQWtDLHFDQUFsQztBQUNBLFNBQVNDLHVCQUFULFFBQXdDLGdDQUF4QztBQUVBLE9BQU8sTUFBTUMsWUFBWSxHQUFHLE1BQU07QUFDaEMsU0FBUTtBQUNWO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLCtEQUErREYsaUJBQWtCO0FBQ2pGO0FBQ0EsZ0NBQWdDQyx1QkFBd0I7QUFDeEQ7QUFDQTtBQUNBLENBOUJFO0FBK0JELENBaENNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgREFUQV9URVhUVVJFX1NJWkUgfSBmcm9tICcuLi8uLi9jb21tb24vVGV4dHVyZUF0bGFzL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBTSVpFX0FUVEVOVUFUSU9OX0ZBQ1RPUiB9IGZyb20gJy4uLy4uL2NvbW1vbi9zaGFkZXJzL2NvbnN0YW50cyc7XG5cbmV4cG9ydCBjb25zdCB2ZXJ0ZXhTaGFkZXIgPSAoKSA9PiB7XG4gIHJldHVybiBgXG4gICAgdW5pZm9ybSBzYW1wbGVyMkQgdVRleHR1cmU7XG4gICAgLy9hdGxhc0luZGV4IGlzIGEgMjU2eDEgZmxvYXQgdGV4dHVyZSBvZiB0aWxlIHJlY3RhbmdsZXMgYXMgcj1taW54IGc9bWlueSBiPW1heHggYT1tYXh5XG4gICAgdW5pZm9ybSBzYW1wbGVyMkQgYXRsYXNJbmRleDtcblxuICAgIGF0dHJpYnV0ZSBmbG9hdCBzaXplO1xuICAgIGF0dHJpYnV0ZSB2ZWMzIGNvbG9yO1xuICAgIGF0dHJpYnV0ZSBmbG9hdCBhbHBoYTtcbiAgICBhdHRyaWJ1dGUgZmxvYXQgdGV4SUQ7XG4gICAgYXR0cmlidXRlIGZsb2F0IHJvdGF0aW9uO1xuXG4gICAgdmFyeWluZyBmbG9hdCB2Um90YXRpb247XG4gICAgdmFyeWluZyB2ZWMzIHRhcmdldENvbG9yO1xuICAgIHZhcnlpbmcgZmxvYXQgdGFyZ2V0QWxwaGE7XG4gICAgdmFyeWluZyB2ZWM0IHRpbGVSZWN0O1xuICAgIHZhcnlpbmcgZmxvYXQgdGlsZUlEO1xuXG4gICAgdm9pZCBtYWluKCkge1xuICAgICAgdmVjNCBtdlBvc2l0aW9uID0gbW9kZWxWaWV3TWF0cml4ICogdmVjNChwb3NpdGlvbiwgMS4wKTtcbiAgICAgIHRhcmdldENvbG9yID0gY29sb3I7XG4gICAgICB0YXJnZXRBbHBoYSA9IGFscGhhO1xuICAgICAgdlJvdGF0aW9uID0gcm90YXRpb247XG5cbiAgICAgIHRpbGVJRCA9IHRleElEO1xuICAgICAgLy9nZXQgdGhlIHRpbGUgcmVjdGFuZ2xlIGZyb20gdGhlIGF0bGFzSW5kZXggdGV4dHVyZS4uXG4gICAgICB0aWxlUmVjdCA9IHRleHR1cmUyRChhdGxhc0luZGV4LCB2ZWMyKCh0aWxlSUQgKyAwLjUpIC8gJHtEQVRBX1RFWFRVUkVfU0laRX0uMCwgMC41KSk7XG5cbiAgICAgIGdsX1BvaW50U2l6ZSA9ICgoc2l6ZSAqICR7U0laRV9BVFRFTlVBVElPTl9GQUNUT1J9KSAvIC1tdlBvc2l0aW9uLnopO1xuICAgICAgZ2xfUG9zaXRpb24gPSBwcm9qZWN0aW9uTWF0cml4ICogbXZQb3NpdGlvbjtcbiAgICB9XG5gO1xufTtcbiJdfQ== ================================================ FILE: packages/sdk/lib/core/libs/three-nebula/renderer/GPURenderer/Mobile/index.js ================================================ import _defineProperty from "@babel/runtime/helpers/defineProperty"; function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; } function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } import { ParticleBuffer, Target, TextureAtlas, UniqueList } from '../common'; import { fragmentShader, vertexShader } from './shaders'; import BaseRenderer from '../../BaseRenderer'; import { DEFAULT_RENDERER_OPTIONS } from '../common/constants'; import { Pool } from '../../../core'; import { RENDERER_TYPE_GPU_MOBILE } from '../../types'; let THREE; /** * GPURenderer for mobile devices that do not support floating point textures. * * @author thrax * @author rohan-deshpande */ export default class MobileGPURenderer extends BaseRenderer { constructor(container, three, options = DEFAULT_RENDERER_OPTIONS) { super(RENDERER_TYPE_GPU_MOBILE); THREE = this.three = three; const props = _objectSpread(_objectSpread({}, DEFAULT_RENDERER_OPTIONS), options); const { camera, maxParticles, baseColor, blending, depthTest, depthWrite, transparent, shouldDebugTextureAtlas } = props; const particleBuffer = new ParticleBuffer(maxParticles, THREE); const material = new THREE.ShaderMaterial({ uniforms: { baseColor: { value: new THREE.Color(baseColor) }, uTexture: { value: null }, FFatlasIndex: { value: null }, atlasDim: { value: new THREE.Vector2() } }, vertexShader: vertexShader(), fragmentShader: fragmentShader(), blending: THREE[blending], depthTest, depthWrite, transparent }); this.camera = camera; this.targetPool = new Pool(); this.uniqueList = new UniqueList(maxParticles); this.particleBuffer = particleBuffer; this.buffer = particleBuffer.buffer; this.stride = particleBuffer.stride; this.geometry = particleBuffer.geometry; this.material = material; this.points = new THREE.Points(this.geometry, this.material); this.points.frustumCulled = false; this.shouldDebugTextureAtlas = shouldDebugTextureAtlas; container.add(this.points); } onSystemUpdate(system) { super.onSystemUpdate(system); this.buffer.needsUpdate = true; const { textureAtlas } = this; if (textureAtlas) { textureAtlas.update(); this.material.uniforms.atlasDim.value.set(textureAtlas.atlasTexture.image.width, textureAtlas.atlasTexture.image.height); } } /** * Pools the particle target if it does not exist. * Updates the target and maps particle properties to the point. * * @param {Particle} */ onParticleCreated(particle) { if (!particle.target) { particle.target = this.targetPool.get(Target, THREE); this.uniqueList.add(particle.id); } this.updateTarget(particle).mapParticleTargetPropsToPoint(particle); } /** * Maps particle properties to the point if the particle has a target. * * @param {Particle} */ onParticleUpdate(particle) { if (!particle.target) { return; } this.updateTarget(particle).mapParticleTargetPropsToPoint(particle); } /** * Resets and clears the particle target. * * @param {Particle} */ onParticleDead(particle) { if (!particle.target) { return; } particle.target.reset(); this.mapParticleTargetPropsToPoint(particle); particle.target = null; } /** * Maps all mutable properties from the particle to the target. * * @param {Particle} * @return {GPURenderer} */ updateTarget(particle) { const { position, rotation, scale, radius, color, alpha, body, id } = particle; const { r, g, b } = color; particle.target.position.copy(position); particle.target.rotation.copy(rotation); particle.target.size = scale * radius; particle.target.color.setRGB(r, g, b); particle.target.alpha = alpha; particle.target.index = this.uniqueList.find(id); if (body && body instanceof THREE.Sprite) { const { map } = body.material; particle.target.texture = map; particle.target.textureIndex = this.getTextureID(map, this.shouldDebugTextureAtlas); } return this; } /** * Entry point for mapping particle properties to buffer geometry points. * * @param {Particle} particle - The particle containing the properties to map * @return {GPURenderer} */ mapParticleTargetPropsToPoint(particle) { this.updatePointPosition(particle).updatePointSize(particle).updatePointRotation(particle).updatePointColor(particle).updatePointAlpha(particle).updatePointTextureIndex(particle); return this; } /** * Updates the point's position according to the particle's target position. * * @param {Particle} particle - The particle containing the target position. * @return {GPURenderer} */ updatePointPosition(particle) { const attribute = 'position'; const { geometry, stride, buffer } = this; const { target } = particle; const { offset } = geometry.attributes[attribute]; buffer.array[target.index * stride + offset + 0] = target.position.x; buffer.array[target.index * stride + offset + 1] = target.position.y; buffer.array[target.index * stride + offset + 2] = target.position.z; return this; } /** * Updates the point's size relative to the particle's target scale and radius. * * @param {Particle} particle - The particle containing the target scale. * @return {GPURenderer} */ updatePointSize(particle) { const attribute = 'size'; const { geometry, stride, buffer } = this; const { target } = particle; const { offset } = geometry.attributes[attribute]; buffer.array[target.index * stride + offset + 0] = target.size; return this; } /** * Updates the point's rotation. * * @param {Particle} particle - The particle containing the target rotation. * @return {GPURenderer} */ updatePointRotation(particle) { const attribute = 'rotation'; const { geometry, stride, buffer } = this; const { target } = particle; const { offset } = geometry.attributes[attribute]; buffer.array[target.index * stride + offset + 0] = target.rotation.z; return this; } /** * Updates the point's color attribute according with the particle's target color. * * @param {Particle} particle - The particle containing the target color and alpha. * @return {GPURenderer} */ updatePointColor(particle) { const attribute = 'color'; const { geometry, stride, buffer } = this; const { target } = particle; const { offset } = geometry.attributes[attribute]; buffer.array[target.index * stride + offset + 0] = target.color.r; buffer.array[target.index * stride + offset + 1] = target.color.g; buffer.array[target.index * stride + offset + 2] = target.color.b; return this; } /** * Updates the point alpha attribute with the particle's target alpha. * * @param {Particle} particle - The particle containing the target alpha. * @return {GPURenderer} */ updatePointAlpha(particle) { const attribute = 'alpha'; const { geometry, stride, buffer } = this; const { target } = particle; const { offset } = geometry.attributes[attribute]; buffer.array[target.index * stride + offset + 0] = target.alpha; return this; } /** * Updates the point texture attribute with the particle's target texture. * * @param {Particle} particle - The particle containing the target texture. * @return {GPURenderer} */ updatePointTextureIndex(particle) { const attribute = 'texID'; const { geometry, stride, buffer } = this; const { target } = particle; const { offset } = geometry.attributes[attribute]; const id = target.index * stride + offset + 0; // eslint-disable-next-line if (false) { buffer.array[id] = target.textureIndex; } else { let ti = target.textureIndex * 4; const ta = this.textureAtlas; const ida = ta.indexData; const nx = ida[ti++]; const ny = ida[ti++]; const px = ida[ti++]; const py = ida[ti++]; buffer.array[id] = (nx * ta.atlasTexture.image.width | 0) + px; buffer.array[id + 1] = (ny * ta.atlasTexture.image.height | 0) + py; } return this; } getTextureID(texture, debug) { if (texture.textureIndex === undefined) { if (!this.textureAtlas) { this.textureAtlas = new TextureAtlas(this, debug); } this.textureAtlas.addTexture(texture); } return texture.textureIndex; } destroy() { const { container, points, textureAtlas, uniqueList } = this; container.remove(points); uniqueList.destroy(); textureAtlas && textureAtlas.destroy(); } } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9yZW5kZXJlci9HUFVSZW5kZXJlci9Nb2JpbGUvaW5kZXguanMiXSwibmFtZXMiOlsiUGFydGljbGVCdWZmZXIiLCJUYXJnZXQiLCJUZXh0dXJlQXRsYXMiLCJVbmlxdWVMaXN0IiwiZnJhZ21lbnRTaGFkZXIiLCJ2ZXJ0ZXhTaGFkZXIiLCJCYXNlUmVuZGVyZXIiLCJERUZBVUxUX1JFTkRFUkVSX09QVElPTlMiLCJQb29sIiwiUkVOREVSRVJfVFlQRV9HUFVfTU9CSUxFIiwiVEhSRUUiLCJNb2JpbGVHUFVSZW5kZXJlciIsImNvbnN0cnVjdG9yIiwiY29udGFpbmVyIiwidGhyZWUiLCJvcHRpb25zIiwicHJvcHMiLCJjYW1lcmEiLCJtYXhQYXJ0aWNsZXMiLCJiYXNlQ29sb3IiLCJibGVuZGluZyIsImRlcHRoVGVzdCIsImRlcHRoV3JpdGUiLCJ0cmFuc3BhcmVudCIsInNob3VsZERlYnVnVGV4dHVyZUF0bGFzIiwicGFydGljbGVCdWZmZXIiLCJtYXRlcmlhbCIsIlNoYWRlck1hdGVyaWFsIiwidW5pZm9ybXMiLCJ2YWx1ZSIsIkNvbG9yIiwidVRleHR1cmUiLCJGRmF0bGFzSW5kZXgiLCJhdGxhc0RpbSIsIlZlY3RvcjIiLCJ0YXJnZXRQb29sIiwidW5pcXVlTGlzdCIsImJ1ZmZlciIsInN0cmlkZSIsImdlb21ldHJ5IiwicG9pbnRzIiwiUG9pbnRzIiwiZnJ1c3R1bUN1bGxlZCIsImFkZCIsIm9uU3lzdGVtVXBkYXRlIiwic3lzdGVtIiwibmVlZHNVcGRhdGUiLCJ0ZXh0dXJlQXRsYXMiLCJ1cGRhdGUiLCJzZXQiLCJhdGxhc1RleHR1cmUiLCJpbWFnZSIsIndpZHRoIiwiaGVpZ2h0Iiwib25QYXJ0aWNsZUNyZWF0ZWQiLCJwYXJ0aWNsZSIsInRhcmdldCIsImdldCIsImlkIiwidXBkYXRlVGFyZ2V0IiwibWFwUGFydGljbGVUYXJnZXRQcm9wc1RvUG9pbnQiLCJvblBhcnRpY2xlVXBkYXRlIiwib25QYXJ0aWNsZURlYWQiLCJyZXNldCIsInBvc2l0aW9uIiwicm90YXRpb24iLCJzY2FsZSIsInJhZGl1cyIsImNvbG9yIiwiYWxwaGEiLCJib2R5IiwiciIsImciLCJiIiwiY29weSIsInNpemUiLCJzZXRSR0IiLCJpbmRleCIsImZpbmQiLCJTcHJpdGUiLCJtYXAiLCJ0ZXh0dXJlIiwidGV4dHVyZUluZGV4IiwiZ2V0VGV4dHVyZUlEIiwidXBkYXRlUG9pbnRQb3NpdGlvbiIsInVwZGF0ZVBvaW50U2l6ZSIsInVwZGF0ZVBvaW50Um90YXRpb24iLCJ1cGRhdGVQb2ludENvbG9yIiwidXBkYXRlUG9pbnRBbHBoYSIsInVwZGF0ZVBvaW50VGV4dHVyZUluZGV4IiwiYXR0cmlidXRlIiwib2Zmc2V0IiwiYXR0cmlidXRlcyIsImFycmF5IiwieCIsInkiLCJ6IiwidGkiLCJ0YSIsImlkYSIsImluZGV4RGF0YSIsIm54IiwibnkiLCJweCIsInB5IiwiZGVidWciLCJ1bmRlZmluZWQiLCJhZGRUZXh0dXJlIiwiZGVzdHJveSIsInJlbW92ZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsU0FBU0EsY0FBVCxFQUF5QkMsTUFBekIsRUFBaUNDLFlBQWpDLEVBQStDQyxVQUEvQyxRQUFpRSxXQUFqRTtBQUNBLFNBQVNDLGNBQVQsRUFBeUJDLFlBQXpCLFFBQTZDLFdBQTdDO0FBRUEsT0FBT0MsWUFBUCxNQUF5QixvQkFBekI7QUFDQSxTQUFTQyx3QkFBVCxRQUF5QyxxQkFBekM7QUFDQSxTQUFTQyxJQUFULFFBQXFCLGVBQXJCO0FBQ0EsU0FBU0Msd0JBQVQsUUFBeUMsYUFBekM7QUFFQSxJQUFJQyxLQUFKO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUNBLGVBQWUsTUFBTUMsaUJBQU4sU0FBZ0NMLFlBQWhDLENBQTZDO0FBQzFETSxFQUFBQSxXQUFXLENBQUNDLFNBQUQsRUFBWUMsS0FBWixFQUFtQkMsT0FBTyxHQUFHUix3QkFBN0IsRUFBdUQ7QUFDaEUsVUFBTUUsd0JBQU47QUFFQUMsSUFBQUEsS0FBSyxHQUFHLEtBQUtJLEtBQUwsR0FBYUEsS0FBckI7O0FBQ0EsVUFBTUUsS0FBSyxtQ0FBUVQsd0JBQVIsR0FBcUNRLE9BQXJDLENBQVg7O0FBQ0EsVUFBTTtBQUNKRSxNQUFBQSxNQURJO0FBRUpDLE1BQUFBLFlBRkk7QUFHSkMsTUFBQUEsU0FISTtBQUlKQyxNQUFBQSxRQUpJO0FBS0pDLE1BQUFBLFNBTEk7QUFNSkMsTUFBQUEsVUFOSTtBQU9KQyxNQUFBQSxXQVBJO0FBUUpDLE1BQUFBO0FBUkksUUFTRlIsS0FUSjtBQVVBLFVBQU1TLGNBQWMsR0FBRyxJQUFJekIsY0FBSixDQUFtQmtCLFlBQW5CLEVBQWlDUixLQUFqQyxDQUF2QjtBQUNBLFVBQU1nQixRQUFRLEdBQUcsSUFBSWhCLEtBQUssQ0FBQ2lCLGNBQVYsQ0FBeUI7QUFDeENDLE1BQUFBLFFBQVEsRUFBRTtBQUNSVCxRQUFBQSxTQUFTLEVBQUU7QUFBRVUsVUFBQUEsS0FBSyxFQUFFLElBQUluQixLQUFLLENBQUNvQixLQUFWLENBQWdCWCxTQUFoQjtBQUFULFNBREg7QUFFUlksUUFBQUEsUUFBUSxFQUFFO0FBQUVGLFVBQUFBLEtBQUssRUFBRTtBQUFULFNBRkY7QUFHUkcsUUFBQUEsWUFBWSxFQUFFO0FBQUVILFVBQUFBLEtBQUssRUFBRTtBQUFULFNBSE47QUFJUkksUUFBQUEsUUFBUSxFQUFFO0FBQUVKLFVBQUFBLEtBQUssRUFBRSxJQUFJbkIsS0FBSyxDQUFDd0IsT0FBVjtBQUFUO0FBSkYsT0FEOEI7QUFPeEM3QixNQUFBQSxZQUFZLEVBQUVBLFlBQVksRUFQYztBQVF4Q0QsTUFBQUEsY0FBYyxFQUFFQSxjQUFjLEVBUlU7QUFTeENnQixNQUFBQSxRQUFRLEVBQUVWLEtBQUssQ0FBQ1UsUUFBRCxDQVR5QjtBQVV4Q0MsTUFBQUEsU0FWd0M7QUFXeENDLE1BQUFBLFVBWHdDO0FBWXhDQyxNQUFBQTtBQVp3QyxLQUF6QixDQUFqQjtBQWVBLFNBQUtOLE1BQUwsR0FBY0EsTUFBZDtBQUNBLFNBQUtrQixVQUFMLEdBQWtCLElBQUkzQixJQUFKLEVBQWxCO0FBQ0EsU0FBSzRCLFVBQUwsR0FBa0IsSUFBSWpDLFVBQUosQ0FBZWUsWUFBZixDQUFsQjtBQUNBLFNBQUtPLGNBQUwsR0FBc0JBLGNBQXRCO0FBQ0EsU0FBS1ksTUFBTCxHQUFjWixjQUFjLENBQUNZLE1BQTdCO0FBQ0EsU0FBS0MsTUFBTCxHQUFjYixjQUFjLENBQUNhLE1BQTdCO0FBQ0EsU0FBS0MsUUFBTCxHQUFnQmQsY0FBYyxDQUFDYyxRQUEvQjtBQUNBLFNBQUtiLFFBQUwsR0FBZ0JBLFFBQWhCO0FBQ0EsU0FBS2MsTUFBTCxHQUFjLElBQUk5QixLQUFLLENBQUMrQixNQUFWLENBQWlCLEtBQUtGLFFBQXRCLEVBQWdDLEtBQUtiLFFBQXJDLENBQWQ7QUFDQSxTQUFLYyxNQUFMLENBQVlFLGFBQVosR0FBNEIsS0FBNUI7QUFDQSxTQUFLbEIsdUJBQUwsR0FBK0JBLHVCQUEvQjtBQUVBWCxJQUFBQSxTQUFTLENBQUM4QixHQUFWLENBQWMsS0FBS0gsTUFBbkI7QUFDRDs7QUFFREksRUFBQUEsY0FBYyxDQUFDQyxNQUFELEVBQVM7QUFDckIsVUFBTUQsY0FBTixDQUFxQkMsTUFBckI7QUFFQSxTQUFLUixNQUFMLENBQVlTLFdBQVosR0FBMEIsSUFBMUI7QUFFQSxVQUFNO0FBQUVDLE1BQUFBO0FBQUYsUUFBbUIsSUFBekI7O0FBRUEsUUFBSUEsWUFBSixFQUFrQjtBQUNoQkEsTUFBQUEsWUFBWSxDQUFDQyxNQUFiO0FBQ0EsV0FBS3RCLFFBQUwsQ0FBY0UsUUFBZCxDQUF1QkssUUFBdkIsQ0FBZ0NKLEtBQWhDLENBQXNDb0IsR0FBdEMsQ0FDRUYsWUFBWSxDQUFDRyxZQUFiLENBQTBCQyxLQUExQixDQUFnQ0MsS0FEbEMsRUFFRUwsWUFBWSxDQUFDRyxZQUFiLENBQTBCQyxLQUExQixDQUFnQ0UsTUFGbEM7QUFJRDtBQUNGO0FBRUQ7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFDRUMsRUFBQUEsaUJBQWlCLENBQUNDLFFBQUQsRUFBVztBQUMxQixRQUFJLENBQUNBLFFBQVEsQ0FBQ0MsTUFBZCxFQUFzQjtBQUNwQkQsTUFBQUEsUUFBUSxDQUFDQyxNQUFULEdBQWtCLEtBQUtyQixVQUFMLENBQWdCc0IsR0FBaEIsQ0FBb0J4RCxNQUFwQixFQUE0QlMsS0FBNUIsQ0FBbEI7QUFDQSxXQUFLMEIsVUFBTCxDQUFnQk8sR0FBaEIsQ0FBb0JZLFFBQVEsQ0FBQ0csRUFBN0I7QUFDRDs7QUFFRCxTQUFLQyxZQUFMLENBQWtCSixRQUFsQixFQUE0QkssNkJBQTVCLENBQTBETCxRQUExRDtBQUNEO0FBRUQ7QUFDRjtBQUNBO0FBQ0E7QUFDQTs7O0FBQ0VNLEVBQUFBLGdCQUFnQixDQUFDTixRQUFELEVBQVc7QUFDekIsUUFBSSxDQUFDQSxRQUFRLENBQUNDLE1BQWQsRUFBc0I7QUFDcEI7QUFDRDs7QUFFRCxTQUFLRyxZQUFMLENBQWtCSixRQUFsQixFQUE0QkssNkJBQTVCLENBQTBETCxRQUExRDtBQUNEO0FBRUQ7QUFDRjtBQUNBO0FBQ0E7QUFDQTs7O0FBQ0VPLEVBQUFBLGNBQWMsQ0FBQ1AsUUFBRCxFQUFXO0FBQ3ZCLFFBQUksQ0FBQ0EsUUFBUSxDQUFDQyxNQUFkLEVBQXNCO0FBQ3BCO0FBQ0Q7O0FBRURELElBQUFBLFFBQVEsQ0FBQ0MsTUFBVCxDQUFnQk8sS0FBaEI7QUFDQSxTQUFLSCw2QkFBTCxDQUFtQ0wsUUFBbkM7QUFFQUEsSUFBQUEsUUFBUSxDQUFDQyxNQUFULEdBQWtCLElBQWxCO0FBQ0Q7QUFFRDtBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUNFRyxFQUFBQSxZQUFZLENBQUNKLFFBQUQsRUFBVztBQUNyQixVQUFNO0FBQUVTLE1BQUFBLFFBQUY7QUFBWUMsTUFBQUEsUUFBWjtBQUFzQkMsTUFBQUEsS0FBdEI7QUFBNkJDLE1BQUFBLE1BQTdCO0FBQXFDQyxNQUFBQSxLQUFyQztBQUE0Q0MsTUFBQUEsS0FBNUM7QUFBbURDLE1BQUFBLElBQW5EO0FBQXlEWixNQUFBQTtBQUF6RCxRQUFnRUgsUUFBdEU7QUFDQSxVQUFNO0FBQUVnQixNQUFBQSxDQUFGO0FBQUtDLE1BQUFBLENBQUw7QUFBUUMsTUFBQUE7QUFBUixRQUFjTCxLQUFwQjtBQUVBYixJQUFBQSxRQUFRLENBQUNDLE1BQVQsQ0FBZ0JRLFFBQWhCLENBQXlCVSxJQUF6QixDQUE4QlYsUUFBOUI7QUFDQVQsSUFBQUEsUUFBUSxDQUFDQyxNQUFULENBQWdCUyxRQUFoQixDQUF5QlMsSUFBekIsQ0FBOEJULFFBQTlCO0FBQ0FWLElBQUFBLFFBQVEsQ0FBQ0MsTUFBVCxDQUFnQm1CLElBQWhCLEdBQXVCVCxLQUFLLEdBQUdDLE1BQS9CO0FBQ0FaLElBQUFBLFFBQVEsQ0FBQ0MsTUFBVCxDQUFnQlksS0FBaEIsQ0FBc0JRLE1BQXRCLENBQTZCTCxDQUE3QixFQUFnQ0MsQ0FBaEMsRUFBbUNDLENBQW5DO0FBQ0FsQixJQUFBQSxRQUFRLENBQUNDLE1BQVQsQ0FBZ0JhLEtBQWhCLEdBQXdCQSxLQUF4QjtBQUNBZCxJQUFBQSxRQUFRLENBQUNDLE1BQVQsQ0FBZ0JxQixLQUFoQixHQUF3QixLQUFLekMsVUFBTCxDQUFnQjBDLElBQWhCLENBQXFCcEIsRUFBckIsQ0FBeEI7O0FBRUEsUUFBSVksSUFBSSxJQUFJQSxJQUFJLFlBQVk1RCxLQUFLLENBQUNxRSxNQUFsQyxFQUEwQztBQUN4QyxZQUFNO0FBQUVDLFFBQUFBO0FBQUYsVUFBVVYsSUFBSSxDQUFDNUMsUUFBckI7QUFFQTZCLE1BQUFBLFFBQVEsQ0FBQ0MsTUFBVCxDQUFnQnlCLE9BQWhCLEdBQTBCRCxHQUExQjtBQUNBekIsTUFBQUEsUUFBUSxDQUFDQyxNQUFULENBQWdCMEIsWUFBaEIsR0FBK0IsS0FBS0MsWUFBTCxDQUM3QkgsR0FENkIsRUFFN0IsS0FBS3hELHVCQUZ3QixDQUEvQjtBQUlEOztBQUVELFdBQU8sSUFBUDtBQUNEO0FBRUQ7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFDRW9DLEVBQUFBLDZCQUE2QixDQUFDTCxRQUFELEVBQVc7QUFDdEMsU0FBSzZCLG1CQUFMLENBQXlCN0IsUUFBekIsRUFDRzhCLGVBREgsQ0FDbUI5QixRQURuQixFQUVHK0IsbUJBRkgsQ0FFdUIvQixRQUZ2QixFQUdHZ0MsZ0JBSEgsQ0FHb0JoQyxRQUhwQixFQUlHaUMsZ0JBSkgsQ0FJb0JqQyxRQUpwQixFQUtHa0MsdUJBTEgsQ0FLMkJsQyxRQUwzQjtBQU9BLFdBQU8sSUFBUDtBQUNEO0FBRUQ7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFDRTZCLEVBQUFBLG1CQUFtQixDQUFDN0IsUUFBRCxFQUFXO0FBQzVCLFVBQU1tQyxTQUFTLEdBQUcsVUFBbEI7QUFDQSxVQUFNO0FBQUVuRCxNQUFBQSxRQUFGO0FBQVlELE1BQUFBLE1BQVo7QUFBb0JELE1BQUFBO0FBQXBCLFFBQStCLElBQXJDO0FBQ0EsVUFBTTtBQUFFbUIsTUFBQUE7QUFBRixRQUFhRCxRQUFuQjtBQUNBLFVBQU07QUFBRW9DLE1BQUFBO0FBQUYsUUFBYXBELFFBQVEsQ0FBQ3FELFVBQVQsQ0FBb0JGLFNBQXBCLENBQW5CO0FBRUFyRCxJQUFBQSxNQUFNLENBQUN3RCxLQUFQLENBQWFyQyxNQUFNLENBQUNxQixLQUFQLEdBQWV2QyxNQUFmLEdBQXdCcUQsTUFBeEIsR0FBaUMsQ0FBOUMsSUFBbURuQyxNQUFNLENBQUNRLFFBQVAsQ0FBZ0I4QixDQUFuRTtBQUNBekQsSUFBQUEsTUFBTSxDQUFDd0QsS0FBUCxDQUFhckMsTUFBTSxDQUFDcUIsS0FBUCxHQUFldkMsTUFBZixHQUF3QnFELE1BQXhCLEdBQWlDLENBQTlDLElBQW1EbkMsTUFBTSxDQUFDUSxRQUFQLENBQWdCK0IsQ0FBbkU7QUFDQTFELElBQUFBLE1BQU0sQ0FBQ3dELEtBQVAsQ0FBYXJDLE1BQU0sQ0FBQ3FCLEtBQVAsR0FBZXZDLE1BQWYsR0FBd0JxRCxNQUF4QixHQUFpQyxDQUE5QyxJQUFtRG5DLE1BQU0sQ0FBQ1EsUUFBUCxDQUFnQmdDLENBQW5FO0FBRUEsV0FBTyxJQUFQO0FBQ0Q7QUFFRDtBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUNFWCxFQUFBQSxlQUFlLENBQUM5QixRQUFELEVBQVc7QUFDeEIsVUFBTW1DLFNBQVMsR0FBRyxNQUFsQjtBQUNBLFVBQU07QUFBRW5ELE1BQUFBLFFBQUY7QUFBWUQsTUFBQUEsTUFBWjtBQUFvQkQsTUFBQUE7QUFBcEIsUUFBK0IsSUFBckM7QUFDQSxVQUFNO0FBQUVtQixNQUFBQTtBQUFGLFFBQWFELFFBQW5CO0FBQ0EsVUFBTTtBQUFFb0MsTUFBQUE7QUFBRixRQUFhcEQsUUFBUSxDQUFDcUQsVUFBVCxDQUFvQkYsU0FBcEIsQ0FBbkI7QUFFQXJELElBQUFBLE1BQU0sQ0FBQ3dELEtBQVAsQ0FBYXJDLE1BQU0sQ0FBQ3FCLEtBQVAsR0FBZXZDLE1BQWYsR0FBd0JxRCxNQUF4QixHQUFpQyxDQUE5QyxJQUFtRG5DLE1BQU0sQ0FBQ21CLElBQTFEO0FBRUEsV0FBTyxJQUFQO0FBQ0Q7QUFFRDtBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUNFVyxFQUFBQSxtQkFBbUIsQ0FBQy9CLFFBQUQsRUFBVztBQUM1QixVQUFNbUMsU0FBUyxHQUFHLFVBQWxCO0FBQ0EsVUFBTTtBQUFFbkQsTUFBQUEsUUFBRjtBQUFZRCxNQUFBQSxNQUFaO0FBQW9CRCxNQUFBQTtBQUFwQixRQUErQixJQUFyQztBQUNBLFVBQU07QUFBRW1CLE1BQUFBO0FBQUYsUUFBYUQsUUFBbkI7QUFDQSxVQUFNO0FBQUVvQyxNQUFBQTtBQUFGLFFBQWFwRCxRQUFRLENBQUNxRCxVQUFULENBQW9CRixTQUFwQixDQUFuQjtBQUVBckQsSUFBQUEsTUFBTSxDQUFDd0QsS0FBUCxDQUFhckMsTUFBTSxDQUFDcUIsS0FBUCxHQUFldkMsTUFBZixHQUF3QnFELE1BQXhCLEdBQWlDLENBQTlDLElBQW1EbkMsTUFBTSxDQUFDUyxRQUFQLENBQWdCK0IsQ0FBbkU7QUFFQSxXQUFPLElBQVA7QUFDRDtBQUVEO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQ0VULEVBQUFBLGdCQUFnQixDQUFDaEMsUUFBRCxFQUFXO0FBQ3pCLFVBQU1tQyxTQUFTLEdBQUcsT0FBbEI7QUFDQSxVQUFNO0FBQUVuRCxNQUFBQSxRQUFGO0FBQVlELE1BQUFBLE1BQVo7QUFBb0JELE1BQUFBO0FBQXBCLFFBQStCLElBQXJDO0FBQ0EsVUFBTTtBQUFFbUIsTUFBQUE7QUFBRixRQUFhRCxRQUFuQjtBQUNBLFVBQU07QUFBRW9DLE1BQUFBO0FBQUYsUUFBYXBELFFBQVEsQ0FBQ3FELFVBQVQsQ0FBb0JGLFNBQXBCLENBQW5CO0FBRUFyRCxJQUFBQSxNQUFNLENBQUN3RCxLQUFQLENBQWFyQyxNQUFNLENBQUNxQixLQUFQLEdBQWV2QyxNQUFmLEdBQXdCcUQsTUFBeEIsR0FBaUMsQ0FBOUMsSUFBbURuQyxNQUFNLENBQUNZLEtBQVAsQ0FBYUcsQ0FBaEU7QUFDQWxDLElBQUFBLE1BQU0sQ0FBQ3dELEtBQVAsQ0FBYXJDLE1BQU0sQ0FBQ3FCLEtBQVAsR0FBZXZDLE1BQWYsR0FBd0JxRCxNQUF4QixHQUFpQyxDQUE5QyxJQUFtRG5DLE1BQU0sQ0FBQ1ksS0FBUCxDQUFhSSxDQUFoRTtBQUNBbkMsSUFBQUEsTUFBTSxDQUFDd0QsS0FBUCxDQUFhckMsTUFBTSxDQUFDcUIsS0FBUCxHQUFldkMsTUFBZixHQUF3QnFELE1BQXhCLEdBQWlDLENBQTlDLElBQW1EbkMsTUFBTSxDQUFDWSxLQUFQLENBQWFLLENBQWhFO0FBRUEsV0FBTyxJQUFQO0FBQ0Q7QUFFRDtBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUNFZSxFQUFBQSxnQkFBZ0IsQ0FBQ2pDLFFBQUQsRUFBVztBQUN6QixVQUFNbUMsU0FBUyxHQUFHLE9BQWxCO0FBQ0EsVUFBTTtBQUFFbkQsTUFBQUEsUUFBRjtBQUFZRCxNQUFBQSxNQUFaO0FBQW9CRCxNQUFBQTtBQUFwQixRQUErQixJQUFyQztBQUNBLFVBQU07QUFBRW1CLE1BQUFBO0FBQUYsUUFBYUQsUUFBbkI7QUFDQSxVQUFNO0FBQUVvQyxNQUFBQTtBQUFGLFFBQWFwRCxRQUFRLENBQUNxRCxVQUFULENBQW9CRixTQUFwQixDQUFuQjtBQUVBckQsSUFBQUEsTUFBTSxDQUFDd0QsS0FBUCxDQUFhckMsTUFBTSxDQUFDcUIsS0FBUCxHQUFldkMsTUFBZixHQUF3QnFELE1BQXhCLEdBQWlDLENBQTlDLElBQW1EbkMsTUFBTSxDQUFDYSxLQUExRDtBQUVBLFdBQU8sSUFBUDtBQUNEO0FBRUQ7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFDRW9CLEVBQUFBLHVCQUF1QixDQUFDbEMsUUFBRCxFQUFXO0FBQ2hDLFVBQU1tQyxTQUFTLEdBQUcsT0FBbEI7QUFDQSxVQUFNO0FBQUVuRCxNQUFBQSxRQUFGO0FBQVlELE1BQUFBLE1BQVo7QUFBb0JELE1BQUFBO0FBQXBCLFFBQStCLElBQXJDO0FBQ0EsVUFBTTtBQUFFbUIsTUFBQUE7QUFBRixRQUFhRCxRQUFuQjtBQUNBLFVBQU07QUFBRW9DLE1BQUFBO0FBQUYsUUFBYXBELFFBQVEsQ0FBQ3FELFVBQVQsQ0FBb0JGLFNBQXBCLENBQW5CO0FBQ0EsVUFBTWhDLEVBQUUsR0FBR0YsTUFBTSxDQUFDcUIsS0FBUCxHQUFldkMsTUFBZixHQUF3QnFELE1BQXhCLEdBQWlDLENBQTVDLENBTGdDLENBT2hDOztBQUNBLFFBQUksS0FBSixFQUFXO0FBQ1R0RCxNQUFBQSxNQUFNLENBQUN3RCxLQUFQLENBQWFuQyxFQUFiLElBQW1CRixNQUFNLENBQUMwQixZQUExQjtBQUNELEtBRkQsTUFFTztBQUNMLFVBQUllLEVBQUUsR0FBR3pDLE1BQU0sQ0FBQzBCLFlBQVAsR0FBc0IsQ0FBL0I7QUFDQSxZQUFNZ0IsRUFBRSxHQUFHLEtBQUtuRCxZQUFoQjtBQUNBLFlBQU1vRCxHQUFHLEdBQUdELEVBQUUsQ0FBQ0UsU0FBZjtBQUNBLFlBQU1DLEVBQUUsR0FBR0YsR0FBRyxDQUFDRixFQUFFLEVBQUgsQ0FBZDtBQUNBLFlBQU1LLEVBQUUsR0FBR0gsR0FBRyxDQUFDRixFQUFFLEVBQUgsQ0FBZDtBQUNBLFlBQU1NLEVBQUUsR0FBR0osR0FBRyxDQUFDRixFQUFFLEVBQUgsQ0FBZDtBQUNBLFlBQU1PLEVBQUUsR0FBR0wsR0FBRyxDQUFDRixFQUFFLEVBQUgsQ0FBZDtBQUVBNUQsTUFBQUEsTUFBTSxDQUFDd0QsS0FBUCxDQUFhbkMsRUFBYixJQUFtQixDQUFFMkMsRUFBRSxHQUFHSCxFQUFFLENBQUNoRCxZQUFILENBQWdCQyxLQUFoQixDQUFzQkMsS0FBNUIsR0FBcUMsQ0FBdEMsSUFBMkNtRCxFQUE5RDtBQUNBbEUsTUFBQUEsTUFBTSxDQUFDd0QsS0FBUCxDQUFhbkMsRUFBRSxHQUFHLENBQWxCLElBQXVCLENBQUU0QyxFQUFFLEdBQUdKLEVBQUUsQ0FBQ2hELFlBQUgsQ0FBZ0JDLEtBQWhCLENBQXNCRSxNQUE1QixHQUFzQyxDQUF2QyxJQUE0Q21ELEVBQW5FO0FBQ0Q7O0FBRUQsV0FBTyxJQUFQO0FBQ0Q7O0FBRURyQixFQUFBQSxZQUFZLENBQUNGLE9BQUQsRUFBVXdCLEtBQVYsRUFBaUI7QUFDM0IsUUFBSXhCLE9BQU8sQ0FBQ0MsWUFBUixLQUF5QndCLFNBQTdCLEVBQXdDO0FBQ3RDLFVBQUksQ0FBQyxLQUFLM0QsWUFBVixFQUF3QjtBQUN0QixhQUFLQSxZQUFMLEdBQW9CLElBQUk3QyxZQUFKLENBQWlCLElBQWpCLEVBQXVCdUcsS0FBdkIsQ0FBcEI7QUFDRDs7QUFFRCxXQUFLMUQsWUFBTCxDQUFrQjRELFVBQWxCLENBQTZCMUIsT0FBN0I7QUFDRDs7QUFFRCxXQUFPQSxPQUFPLENBQUNDLFlBQWY7QUFDRDs7QUFFRDBCLEVBQUFBLE9BQU8sR0FBRztBQUNSLFVBQU07QUFBRS9GLE1BQUFBLFNBQUY7QUFBYTJCLE1BQUFBLE1BQWI7QUFBcUJPLE1BQUFBLFlBQXJCO0FBQW1DWCxNQUFBQTtBQUFuQyxRQUFrRCxJQUF4RDtBQUVBdkIsSUFBQUEsU0FBUyxDQUFDZ0csTUFBVixDQUFpQnJFLE1BQWpCO0FBQ0FKLElBQUFBLFVBQVUsQ0FBQ3dFLE9BQVg7QUFDQTdELElBQUFBLFlBQVksSUFBSUEsWUFBWSxDQUFDNkQsT0FBYixFQUFoQjtBQUNEOztBQXJTeUQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQYXJ0aWNsZUJ1ZmZlciwgVGFyZ2V0LCBUZXh0dXJlQXRsYXMsIFVuaXF1ZUxpc3QgfSBmcm9tICcuLi9jb21tb24nO1xuaW1wb3J0IHsgZnJhZ21lbnRTaGFkZXIsIHZlcnRleFNoYWRlciB9IGZyb20gJy4vc2hhZGVycyc7XG5cbmltcG9ydCBCYXNlUmVuZGVyZXIgZnJvbSAnLi4vLi4vQmFzZVJlbmRlcmVyJztcbmltcG9ydCB7IERFRkFVTFRfUkVOREVSRVJfT1BUSU9OUyB9IGZyb20gJy4uL2NvbW1vbi9jb25zdGFudHMnO1xuaW1wb3J0IHsgUG9vbCB9IGZyb20gJy4uLy4uLy4uL2NvcmUnO1xuaW1wb3J0IHsgUkVOREVSRVJfVFlQRV9HUFVfTU9CSUxFIH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuXG5sZXQgVEhSRUU7XG5cbi8qKlxuICogR1BVUmVuZGVyZXIgZm9yIG1vYmlsZSBkZXZpY2VzIHRoYXQgZG8gbm90IHN1cHBvcnQgZmxvYXRpbmcgcG9pbnQgdGV4dHVyZXMuXG4gKlxuICogQGF1dGhvciB0aHJheCA8bWFudGhyYXhAZ21haWwuY29tPlxuICogQGF1dGhvciByb2hhbi1kZXNocGFuZGUgPHJvaGFuQGNyZWF0aXZlbGlmZWZvcm0uY29tPlxuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBNb2JpbGVHUFVSZW5kZXJlciBleHRlbmRzIEJhc2VSZW5kZXJlciB7XG4gIGNvbnN0cnVjdG9yKGNvbnRhaW5lciwgdGhyZWUsIG9wdGlvbnMgPSBERUZBVUxUX1JFTkRFUkVSX09QVElPTlMpIHtcbiAgICBzdXBlcihSRU5ERVJFUl9UWVBFX0dQVV9NT0JJTEUpO1xuXG4gICAgVEhSRUUgPSB0aGlzLnRocmVlID0gdGhyZWU7XG4gICAgY29uc3QgcHJvcHMgPSB7IC4uLkRFRkFVTFRfUkVOREVSRVJfT1BUSU9OUywgLi4ub3B0aW9ucyB9O1xuICAgIGNvbnN0IHtcbiAgICAgIGNhbWVyYSxcbiAgICAgIG1heFBhcnRpY2xlcyxcbiAgICAgIGJhc2VDb2xvcixcbiAgICAgIGJsZW5kaW5nLFxuICAgICAgZGVwdGhUZXN0LFxuICAgICAgZGVwdGhXcml0ZSxcbiAgICAgIHRyYW5zcGFyZW50LFxuICAgICAgc2hvdWxkRGVidWdUZXh0dXJlQXRsYXMsXG4gICAgfSA9IHByb3BzO1xuICAgIGNvbnN0IHBhcnRpY2xlQnVmZmVyID0gbmV3IFBhcnRpY2xlQnVmZmVyKG1heFBhcnRpY2xlcywgVEhSRUUpO1xuICAgIGNvbnN0IG1hdGVyaWFsID0gbmV3IFRIUkVFLlNoYWRlck1hdGVyaWFsKHtcbiAgICAgIHVuaWZvcm1zOiB7XG4gICAgICAgIGJhc2VDb2xvcjogeyB2YWx1ZTogbmV3IFRIUkVFLkNvbG9yKGJhc2VDb2xvcikgfSxcbiAgICAgICAgdVRleHR1cmU6IHsgdmFsdWU6IG51bGwgfSxcbiAgICAgICAgRkZhdGxhc0luZGV4OiB7IHZhbHVlOiBudWxsIH0sXG4gICAgICAgIGF0bGFzRGltOiB7IHZhbHVlOiBuZXcgVEhSRUUuVmVjdG9yMigpIH0sXG4gICAgICB9LFxuICAgICAgdmVydGV4U2hhZGVyOiB2ZXJ0ZXhTaGFkZXIoKSxcbiAgICAgIGZyYWdtZW50U2hhZGVyOiBmcmFnbWVudFNoYWRlcigpLFxuICAgICAgYmxlbmRpbmc6IFRIUkVFW2JsZW5kaW5nXSxcbiAgICAgIGRlcHRoVGVzdCxcbiAgICAgIGRlcHRoV3JpdGUsXG4gICAgICB0cmFuc3BhcmVudCxcbiAgICB9KTtcblxuICAgIHRoaXMuY2FtZXJhID0gY2FtZXJhO1xuICAgIHRoaXMudGFyZ2V0UG9vbCA9IG5ldyBQb29sKCk7XG4gICAgdGhpcy51bmlxdWVMaXN0ID0gbmV3IFVuaXF1ZUxpc3QobWF4UGFydGljbGVzKTtcbiAgICB0aGlzLnBhcnRpY2xlQnVmZmVyID0gcGFydGljbGVCdWZmZXI7XG4gICAgdGhpcy5idWZmZXIgPSBwYXJ0aWNsZUJ1ZmZlci5idWZmZXI7XG4gICAgdGhpcy5zdHJpZGUgPSBwYXJ0aWNsZUJ1ZmZlci5zdHJpZGU7XG4gICAgdGhpcy5nZW9tZXRyeSA9IHBhcnRpY2xlQnVmZmVyLmdlb21ldHJ5O1xuICAgIHRoaXMubWF0ZXJpYWwgPSBtYXRlcmlhbDtcbiAgICB0aGlzLnBvaW50cyA9IG5ldyBUSFJFRS5Qb2ludHModGhpcy5nZW9tZXRyeSwgdGhpcy5tYXRlcmlhbCk7XG4gICAgdGhpcy5wb2ludHMuZnJ1c3R1bUN1bGxlZCA9IGZhbHNlO1xuICAgIHRoaXMuc2hvdWxkRGVidWdUZXh0dXJlQXRsYXMgPSBzaG91bGREZWJ1Z1RleHR1cmVBdGxhcztcblxuICAgIGNvbnRhaW5lci5hZGQodGhpcy5wb2ludHMpO1xuICB9XG5cbiAgb25TeXN0ZW1VcGRhdGUoc3lzdGVtKSB7XG4gICAgc3VwZXIub25TeXN0ZW1VcGRhdGUoc3lzdGVtKTtcblxuICAgIHRoaXMuYnVmZmVyLm5lZWRzVXBkYXRlID0gdHJ1ZTtcblxuICAgIGNvbnN0IHsgdGV4dHVyZUF0bGFzIH0gPSB0aGlzO1xuXG4gICAgaWYgKHRleHR1cmVBdGxhcykge1xuICAgICAgdGV4dHVyZUF0bGFzLnVwZGF0ZSgpO1xuICAgICAgdGhpcy5tYXRlcmlhbC51bmlmb3Jtcy5hdGxhc0RpbS52YWx1ZS5zZXQoXG4gICAgICAgIHRleHR1cmVBdGxhcy5hdGxhc1RleHR1cmUuaW1hZ2Uud2lkdGgsXG4gICAgICAgIHRleHR1cmVBdGxhcy5hdGxhc1RleHR1cmUuaW1hZ2UuaGVpZ2h0XG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBQb29scyB0aGUgcGFydGljbGUgdGFyZ2V0IGlmIGl0IGRvZXMgbm90IGV4aXN0LlxuICAgKiBVcGRhdGVzIHRoZSB0YXJnZXQgYW5kIG1hcHMgcGFydGljbGUgcHJvcGVydGllcyB0byB0aGUgcG9pbnQuXG4gICAqXG4gICAqIEBwYXJhbSB7UGFydGljbGV9XG4gICAqL1xuICBvblBhcnRpY2xlQ3JlYXRlZChwYXJ0aWNsZSkge1xuICAgIGlmICghcGFydGljbGUudGFyZ2V0KSB7XG4gICAgICBwYXJ0aWNsZS50YXJnZXQgPSB0aGlzLnRhcmdldFBvb2wuZ2V0KFRhcmdldCwgVEhSRUUpO1xuICAgICAgdGhpcy51bmlxdWVMaXN0LmFkZChwYXJ0aWNsZS5pZCk7XG4gICAgfVxuXG4gICAgdGhpcy51cGRhdGVUYXJnZXQocGFydGljbGUpLm1hcFBhcnRpY2xlVGFyZ2V0UHJvcHNUb1BvaW50KHBhcnRpY2xlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNYXBzIHBhcnRpY2xlIHByb3BlcnRpZXMgdG8gdGhlIHBvaW50IGlmIHRoZSBwYXJ0aWNsZSBoYXMgYSB0YXJnZXQuXG4gICAqXG4gICAqIEBwYXJhbSB7UGFydGljbGV9XG4gICAqL1xuICBvblBhcnRpY2xlVXBkYXRlKHBhcnRpY2xlKSB7XG4gICAgaWYgKCFwYXJ0aWNsZS50YXJnZXQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnVwZGF0ZVRhcmdldChwYXJ0aWNsZSkubWFwUGFydGljbGVUYXJnZXRQcm9wc1RvUG9pbnQocGFydGljbGUpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlc2V0cyBhbmQgY2xlYXJzIHRoZSBwYXJ0aWNsZSB0YXJnZXQuXG4gICAqXG4gICAqIEBwYXJhbSB7UGFydGljbGV9XG4gICAqL1xuICBvblBhcnRpY2xlRGVhZChwYXJ0aWNsZSkge1xuICAgIGlmICghcGFydGljbGUudGFyZ2V0KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgcGFydGljbGUudGFyZ2V0LnJlc2V0KCk7XG4gICAgdGhpcy5tYXBQYXJ0aWNsZVRhcmdldFByb3BzVG9Qb2ludChwYXJ0aWNsZSk7XG5cbiAgICBwYXJ0aWNsZS50YXJnZXQgPSBudWxsO1xuICB9XG5cbiAgLyoqXG4gICAqIE1hcHMgYWxsIG11dGFibGUgcHJvcGVydGllcyBmcm9tIHRoZSBwYXJ0aWNsZSB0byB0aGUgdGFyZ2V0LlxuICAgKlxuICAgKiBAcGFyYW0ge1BhcnRpY2xlfVxuICAgKiBAcmV0dXJuIHtHUFVSZW5kZXJlcn1cbiAgICovXG4gIHVwZGF0ZVRhcmdldChwYXJ0aWNsZSkge1xuICAgIGNvbnN0IHsgcG9zaXRpb24sIHJvdGF0aW9uLCBzY2FsZSwgcmFkaXVzLCBjb2xvciwgYWxwaGEsIGJvZHksIGlkIH0gPSBwYXJ0aWNsZTtcbiAgICBjb25zdCB7IHIsIGcsIGIgfSA9IGNvbG9yO1xuXG4gICAgcGFydGljbGUudGFyZ2V0LnBvc2l0aW9uLmNvcHkocG9zaXRpb24pO1xuICAgIHBhcnRpY2xlLnRhcmdldC5yb3RhdGlvbi5jb3B5KHJvdGF0aW9uKTtcbiAgICBwYXJ0aWNsZS50YXJnZXQuc2l6ZSA9IHNjYWxlICogcmFkaXVzO1xuICAgIHBhcnRpY2xlLnRhcmdldC5jb2xvci5zZXRSR0IociwgZywgYik7XG4gICAgcGFydGljbGUudGFyZ2V0LmFscGhhID0gYWxwaGE7XG4gICAgcGFydGljbGUudGFyZ2V0LmluZGV4ID0gdGhpcy51bmlxdWVMaXN0LmZpbmQoaWQpO1xuXG4gICAgaWYgKGJvZHkgJiYgYm9keSBpbnN0YW5jZW9mIFRIUkVFLlNwcml0ZSkge1xuICAgICAgY29uc3QgeyBtYXAgfSA9IGJvZHkubWF0ZXJpYWw7XG5cbiAgICAgIHBhcnRpY2xlLnRhcmdldC50ZXh0dXJlID0gbWFwO1xuICAgICAgcGFydGljbGUudGFyZ2V0LnRleHR1cmVJbmRleCA9IHRoaXMuZ2V0VGV4dHVyZUlEKFxuICAgICAgICBtYXAsXG4gICAgICAgIHRoaXMuc2hvdWxkRGVidWdUZXh0dXJlQXRsYXNcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogRW50cnkgcG9pbnQgZm9yIG1hcHBpbmcgcGFydGljbGUgcHJvcGVydGllcyB0byBidWZmZXIgZ2VvbWV0cnkgcG9pbnRzLlxuICAgKlxuICAgKiBAcGFyYW0ge1BhcnRpY2xlfSBwYXJ0aWNsZSAtIFRoZSBwYXJ0aWNsZSBjb250YWluaW5nIHRoZSBwcm9wZXJ0aWVzIHRvIG1hcFxuICAgKiBAcmV0dXJuIHtHUFVSZW5kZXJlcn1cbiAgICovXG4gIG1hcFBhcnRpY2xlVGFyZ2V0UHJvcHNUb1BvaW50KHBhcnRpY2xlKSB7XG4gICAgdGhpcy51cGRhdGVQb2ludFBvc2l0aW9uKHBhcnRpY2xlKVxuICAgICAgLnVwZGF0ZVBvaW50U2l6ZShwYXJ0aWNsZSlcbiAgICAgIC51cGRhdGVQb2ludFJvdGF0aW9uKHBhcnRpY2xlKVxuICAgICAgLnVwZGF0ZVBvaW50Q29sb3IocGFydGljbGUpXG4gICAgICAudXBkYXRlUG9pbnRBbHBoYShwYXJ0aWNsZSlcbiAgICAgIC51cGRhdGVQb2ludFRleHR1cmVJbmRleChwYXJ0aWNsZSk7XG5cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGVzIHRoZSBwb2ludCdzIHBvc2l0aW9uIGFjY29yZGluZyB0byB0aGUgcGFydGljbGUncyB0YXJnZXQgcG9zaXRpb24uXG4gICAqXG4gICAqIEBwYXJhbSB7UGFydGljbGV9IHBhcnRpY2xlIC0gVGhlIHBhcnRpY2xlIGNvbnRhaW5pbmcgdGhlIHRhcmdldCBwb3NpdGlvbi5cbiAgICogQHJldHVybiB7R1BVUmVuZGVyZXJ9XG4gICAqL1xuICB1cGRhdGVQb2ludFBvc2l0aW9uKHBhcnRpY2xlKSB7XG4gICAgY29uc3QgYXR0cmlidXRlID0gJ3Bvc2l0aW9uJztcbiAgICBjb25zdCB7IGdlb21ldHJ5LCBzdHJpZGUsIGJ1ZmZlciB9ID0gdGhpcztcbiAgICBjb25zdCB7IHRhcmdldCB9ID0gcGFydGljbGU7XG4gICAgY29uc3QgeyBvZmZzZXQgfSA9IGdlb21ldHJ5LmF0dHJpYnV0ZXNbYXR0cmlidXRlXTtcblxuICAgIGJ1ZmZlci5hcnJheVt0YXJnZXQuaW5kZXggKiBzdHJpZGUgKyBvZmZzZXQgKyAwXSA9IHRhcmdldC5wb3NpdGlvbi54O1xuICAgIGJ1ZmZlci5hcnJheVt0YXJnZXQuaW5kZXggKiBzdHJpZGUgKyBvZmZzZXQgKyAxXSA9IHRhcmdldC5wb3NpdGlvbi55O1xuICAgIGJ1ZmZlci5hcnJheVt0YXJnZXQuaW5kZXggKiBzdHJpZGUgKyBvZmZzZXQgKyAyXSA9IHRhcmdldC5wb3NpdGlvbi56O1xuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlcyB0aGUgcG9pbnQncyBzaXplIHJlbGF0aXZlIHRvIHRoZSBwYXJ0aWNsZSdzIHRhcmdldCBzY2FsZSBhbmQgcmFkaXVzLlxuICAgKlxuICAgKiBAcGFyYW0ge1BhcnRpY2xlfSBwYXJ0aWNsZSAtIFRoZSBwYXJ0aWNsZSBjb250YWluaW5nIHRoZSB0YXJnZXQgc2NhbGUuXG4gICAqIEByZXR1cm4ge0dQVVJlbmRlcmVyfVxuICAgKi9cbiAgdXBkYXRlUG9pbnRTaXplKHBhcnRpY2xlKSB7XG4gICAgY29uc3QgYXR0cmlidXRlID0gJ3NpemUnO1xuICAgIGNvbnN0IHsgZ2VvbWV0cnksIHN0cmlkZSwgYnVmZmVyIH0gPSB0aGlzO1xuICAgIGNvbnN0IHsgdGFyZ2V0IH0gPSBwYXJ0aWNsZTtcbiAgICBjb25zdCB7IG9mZnNldCB9ID0gZ2VvbWV0cnkuYXR0cmlidXRlc1thdHRyaWJ1dGVdO1xuXG4gICAgYnVmZmVyLmFycmF5W3RhcmdldC5pbmRleCAqIHN0cmlkZSArIG9mZnNldCArIDBdID0gdGFyZ2V0LnNpemU7XG5cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGVzIHRoZSBwb2ludCdzIHJvdGF0aW9uLlxuICAgKlxuICAgKiBAcGFyYW0ge1BhcnRpY2xlfSBwYXJ0aWNsZSAtIFRoZSBwYXJ0aWNsZSBjb250YWluaW5nIHRoZSB0YXJnZXQgcm90YXRpb24uXG4gICAqIEByZXR1cm4ge0dQVVJlbmRlcmVyfVxuICAgKi9cbiAgdXBkYXRlUG9pbnRSb3RhdGlvbihwYXJ0aWNsZSkge1xuICAgIGNvbnN0IGF0dHJpYnV0ZSA9ICdyb3RhdGlvbic7XG4gICAgY29uc3QgeyBnZW9tZXRyeSwgc3RyaWRlLCBidWZmZXIgfSA9IHRoaXM7XG4gICAgY29uc3QgeyB0YXJnZXQgfSA9IHBhcnRpY2xlO1xuICAgIGNvbnN0IHsgb2Zmc2V0IH0gPSBnZW9tZXRyeS5hdHRyaWJ1dGVzW2F0dHJpYnV0ZV07XG5cbiAgICBidWZmZXIuYXJyYXlbdGFyZ2V0LmluZGV4ICogc3RyaWRlICsgb2Zmc2V0ICsgMF0gPSB0YXJnZXQucm90YXRpb24uejtcblxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZXMgdGhlIHBvaW50J3MgY29sb3IgYXR0cmlidXRlIGFjY29yZGluZyB3aXRoIHRoZSBwYXJ0aWNsZSdzIHRhcmdldCBjb2xvci5cbiAgICpcbiAgICogQHBhcmFtIHtQYXJ0aWNsZX0gcGFydGljbGUgLSBUaGUgcGFydGljbGUgY29udGFpbmluZyB0aGUgdGFyZ2V0IGNvbG9yIGFuZCBhbHBoYS5cbiAgICogQHJldHVybiB7R1BVUmVuZGVyZXJ9XG4gICAqL1xuICB1cGRhdGVQb2ludENvbG9yKHBhcnRpY2xlKSB7XG4gICAgY29uc3QgYXR0cmlidXRlID0gJ2NvbG9yJztcbiAgICBjb25zdCB7IGdlb21ldHJ5LCBzdHJpZGUsIGJ1ZmZlciB9ID0gdGhpcztcbiAgICBjb25zdCB7IHRhcmdldCB9ID0gcGFydGljbGU7XG4gICAgY29uc3QgeyBvZmZzZXQgfSA9IGdlb21ldHJ5LmF0dHJpYnV0ZXNbYXR0cmlidXRlXTtcblxuICAgIGJ1ZmZlci5hcnJheVt0YXJnZXQuaW5kZXggKiBzdHJpZGUgKyBvZmZzZXQgKyAwXSA9IHRhcmdldC5jb2xvci5yO1xuICAgIGJ1ZmZlci5hcnJheVt0YXJnZXQuaW5kZXggKiBzdHJpZGUgKyBvZmZzZXQgKyAxXSA9IHRhcmdldC5jb2xvci5nO1xuICAgIGJ1ZmZlci5hcnJheVt0YXJnZXQuaW5kZXggKiBzdHJpZGUgKyBvZmZzZXQgKyAyXSA9IHRhcmdldC5jb2xvci5iO1xuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlcyB0aGUgcG9pbnQgYWxwaGEgYXR0cmlidXRlIHdpdGggdGhlIHBhcnRpY2xlJ3MgdGFyZ2V0IGFscGhhLlxuICAgKlxuICAgKiBAcGFyYW0ge1BhcnRpY2xlfSBwYXJ0aWNsZSAtIFRoZSBwYXJ0aWNsZSBjb250YWluaW5nIHRoZSB0YXJnZXQgYWxwaGEuXG4gICAqIEByZXR1cm4ge0dQVVJlbmRlcmVyfVxuICAgKi9cbiAgdXBkYXRlUG9pbnRBbHBoYShwYXJ0aWNsZSkge1xuICAgIGNvbnN0IGF0dHJpYnV0ZSA9ICdhbHBoYSc7XG4gICAgY29uc3QgeyBnZW9tZXRyeSwgc3RyaWRlLCBidWZmZXIgfSA9IHRoaXM7XG4gICAgY29uc3QgeyB0YXJnZXQgfSA9IHBhcnRpY2xlO1xuICAgIGNvbnN0IHsgb2Zmc2V0IH0gPSBnZW9tZXRyeS5hdHRyaWJ1dGVzW2F0dHJpYnV0ZV07XG5cbiAgICBidWZmZXIuYXJyYXlbdGFyZ2V0LmluZGV4ICogc3RyaWRlICsgb2Zmc2V0ICsgMF0gPSB0YXJnZXQuYWxwaGE7XG5cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGVzIHRoZSBwb2ludCB0ZXh0dXJlIGF0dHJpYnV0ZSB3aXRoIHRoZSBwYXJ0aWNsZSdzIHRhcmdldCB0ZXh0dXJlLlxuICAgKlxuICAgKiBAcGFyYW0ge1BhcnRpY2xlfSBwYXJ0aWNsZSAtIFRoZSBwYXJ0aWNsZSBjb250YWluaW5nIHRoZSB0YXJnZXQgdGV4dHVyZS5cbiAgICogQHJldHVybiB7R1BVUmVuZGVyZXJ9XG4gICAqL1xuICB1cGRhdGVQb2ludFRleHR1cmVJbmRleChwYXJ0aWNsZSkge1xuICAgIGNvbnN0IGF0dHJpYnV0ZSA9ICd0ZXhJRCc7XG4gICAgY29uc3QgeyBnZW9tZXRyeSwgc3RyaWRlLCBidWZmZXIgfSA9IHRoaXM7XG4gICAgY29uc3QgeyB0YXJnZXQgfSA9IHBhcnRpY2xlO1xuICAgIGNvbnN0IHsgb2Zmc2V0IH0gPSBnZW9tZXRyeS5hdHRyaWJ1dGVzW2F0dHJpYnV0ZV07XG4gICAgY29uc3QgaWQgPSB0YXJnZXQuaW5kZXggKiBzdHJpZGUgKyBvZmZzZXQgKyAwO1xuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lXG4gICAgaWYgKGZhbHNlKSB7XG4gICAgICBidWZmZXIuYXJyYXlbaWRdID0gdGFyZ2V0LnRleHR1cmVJbmRleDtcbiAgICB9IGVsc2Uge1xuICAgICAgbGV0IHRpID0gdGFyZ2V0LnRleHR1cmVJbmRleCAqIDQ7XG4gICAgICBjb25zdCB0YSA9IHRoaXMudGV4dHVyZUF0bGFzO1xuICAgICAgY29uc3QgaWRhID0gdGEuaW5kZXhEYXRhO1xuICAgICAgY29uc3QgbnggPSBpZGFbdGkrK107XG4gICAgICBjb25zdCBueSA9IGlkYVt0aSsrXTtcbiAgICAgIGNvbnN0IHB4ID0gaWRhW3RpKytdO1xuICAgICAgY29uc3QgcHkgPSBpZGFbdGkrK107XG5cbiAgICAgIGJ1ZmZlci5hcnJheVtpZF0gPSAoKG54ICogdGEuYXRsYXNUZXh0dXJlLmltYWdlLndpZHRoKSB8IDApICsgcHg7XG4gICAgICBidWZmZXIuYXJyYXlbaWQgKyAxXSA9ICgobnkgKiB0YS5hdGxhc1RleHR1cmUuaW1hZ2UuaGVpZ2h0KSB8IDApICsgcHk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBnZXRUZXh0dXJlSUQodGV4dHVyZSwgZGVidWcpIHtcbiAgICBpZiAodGV4dHVyZS50ZXh0dXJlSW5kZXggPT09IHVuZGVmaW5lZCkge1xuICAgICAgaWYgKCF0aGlzLnRleHR1cmVBdGxhcykge1xuICAgICAgICB0aGlzLnRleHR1cmVBdGxhcyA9IG5ldyBUZXh0dXJlQXRsYXModGhpcywgZGVidWcpO1xuICAgICAgfVxuXG4gICAgICB0aGlzLnRleHR1cmVBdGxhcy5hZGRUZXh0dXJlKHRleHR1cmUpO1xuICAgIH1cblxuICAgIHJldHVybiB0ZXh0dXJlLnRleHR1cmVJbmRleDtcbiAgfVxuXG4gIGRlc3Ryb3koKSB7XG4gICAgY29uc3QgeyBjb250YWluZXIsIHBvaW50cywgdGV4dHVyZUF0bGFzLCB1bmlxdWVMaXN0IH0gPSB0aGlzO1xuXG4gICAgY29udGFpbmVyLnJlbW92ZShwb2ludHMpO1xuICAgIHVuaXF1ZUxpc3QuZGVzdHJveSgpO1xuICAgIHRleHR1cmVBdGxhcyAmJiB0ZXh0dXJlQXRsYXMuZGVzdHJveSgpO1xuICB9XG59XG4iXX0= ================================================ FILE: packages/sdk/lib/core/libs/three-nebula/renderer/GPURenderer/Mobile/shaders/fragmentShader.js ================================================ export const fragmentShader = () => { return ` uniform vec3 baseColor; uniform sampler2D uTexture; varying float vRotation; varying vec3 targetColor; varying float targetAlpha; varying vec4 tileRect; void main() { gl_FragColor = vec4(baseColor * targetColor, targetAlpha); vec2 uv = gl_PointCoord; uv = mix(tileRect.xy, tileRect.zw, gl_PointCoord); float mid = 0.5; uv = vec2( cos(vRotation) * (uv.x - mid) - sin(vRotation) * (uv.y - mid) + mid, cos(vRotation) * (uv.y - mid) + sin(vRotation) * (uv.x - mid) + mid ); gl_FragColor = gl_FragColor * texture2D(uTexture, uv); } `; }; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9yZW5kZXJlci9HUFVSZW5kZXJlci9Nb2JpbGUvc2hhZGVycy9mcmFnbWVudFNoYWRlci5qcyJdLCJuYW1lcyI6WyJmcmFnbWVudFNoYWRlciJdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxNQUFNQSxjQUFjLEdBQUcsTUFBTTtBQUNsQyxTQUFRO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQXZCRTtBQXdCRCxDQXpCTSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBmcmFnbWVudFNoYWRlciA9ICgpID0+IHtcbiAgcmV0dXJuIGBcbiAgICB1bmlmb3JtIHZlYzMgYmFzZUNvbG9yO1xuICAgIHVuaWZvcm0gc2FtcGxlcjJEIHVUZXh0dXJlO1xuXG4gICAgdmFyeWluZyBmbG9hdCB2Um90YXRpb247XG4gICAgdmFyeWluZyB2ZWMzIHRhcmdldENvbG9yO1xuICAgIHZhcnlpbmcgZmxvYXQgdGFyZ2V0QWxwaGE7XG4gICAgdmFyeWluZyB2ZWM0IHRpbGVSZWN0O1xuXG4gICAgdm9pZCBtYWluKCkge1xuICAgICAgZ2xfRnJhZ0NvbG9yID0gdmVjNChiYXNlQ29sb3IgKiB0YXJnZXRDb2xvciwgdGFyZ2V0QWxwaGEpO1xuXG4gICAgICB2ZWMyIHV2ID0gZ2xfUG9pbnRDb29yZDtcbiAgICAgIHV2ID0gbWl4KHRpbGVSZWN0Lnh5LCB0aWxlUmVjdC56dywgZ2xfUG9pbnRDb29yZCk7XG5cbiAgICAgIGZsb2F0IG1pZCA9IDAuNTtcbiAgICAgIHV2ID0gdmVjMihcbiAgICAgICAgY29zKHZSb3RhdGlvbikgKiAodXYueCAtIG1pZCkgLSBzaW4odlJvdGF0aW9uKSAqICh1di55IC0gbWlkKSArIG1pZCxcbiAgICAgICAgY29zKHZSb3RhdGlvbikgKiAodXYueSAtIG1pZCkgKyBzaW4odlJvdGF0aW9uKSAqICh1di54IC0gbWlkKSArIG1pZFxuICAgICAgKTtcbiAgICAgIFxuICAgICAgZ2xfRnJhZ0NvbG9yID0gZ2xfRnJhZ0NvbG9yICogdGV4dHVyZTJEKHVUZXh0dXJlLCB1dik7XG4gICAgfVxuYDtcbn07XG4iXX0= ================================================ FILE: packages/sdk/lib/core/libs/three-nebula/renderer/GPURenderer/Mobile/shaders/index.js ================================================ export { fragmentShader } from './fragmentShader'; export { vertexShader } from './vertexShader'; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9yZW5kZXJlci9HUFVSZW5kZXJlci9Nb2JpbGUvc2hhZGVycy9pbmRleC5qcyJdLCJuYW1lcyI6WyJmcmFnbWVudFNoYWRlciIsInZlcnRleFNoYWRlciJdLCJtYXBwaW5ncyI6IkFBQUEsU0FBU0EsY0FBVCxRQUErQixrQkFBL0I7QUFDQSxTQUFTQyxZQUFULFFBQTZCLGdCQUE3QiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IGZyYWdtZW50U2hhZGVyIH0gZnJvbSAnLi9mcmFnbWVudFNoYWRlcic7XG5leHBvcnQgeyB2ZXJ0ZXhTaGFkZXIgfSBmcm9tICcuL3ZlcnRleFNoYWRlcic7XG4iXX0= ================================================ FILE: packages/sdk/lib/core/libs/three-nebula/renderer/GPURenderer/Mobile/shaders/vertexShader.js ================================================ import { SIZE_ATTENUATION_FACTOR } from '../../common/shaders/constants'; export const vertexShader = () => { return ` uniform sampler2D uTexture; uniform vec2 atlasDim; attribute float size; attribute vec3 color; attribute float alpha; attribute vec2 texID; attribute float rotation; varying float vRotation; varying vec3 targetColor; varying float targetAlpha; varying vec4 tileRect; void main() { vec4 mvPosition = modelViewMatrix * vec4(position, 1.0); targetColor = color; targetAlpha = alpha; vRotation = rotation; vec2 tmin = floor(texID) / atlasDim; vec2 tmax = fract(texID); tileRect = vec4(tmin,tmax); gl_PointSize = ((size * ${SIZE_ATTENUATION_FACTOR}) / -mvPosition.z); gl_Position = projectionMatrix * mvPosition; } `; }; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9yZW5kZXJlci9HUFVSZW5kZXJlci9Nb2JpbGUvc2hhZGVycy92ZXJ0ZXhTaGFkZXIuanMiXSwibmFtZXMiOlsiU0laRV9BVFRFTlVBVElPTl9GQUNUT1IiLCJ2ZXJ0ZXhTaGFkZXIiXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLHVCQUFULFFBQXdDLGdDQUF4QztBQUVBLE9BQU8sTUFBTUMsWUFBWSxHQUFHLE1BQU07QUFDaEMsU0FBUTtBQUNWO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdDQUFnQ0QsdUJBQXdCO0FBQ3hEO0FBQ0E7QUFDQSxDQTVCRTtBQTZCRCxDQTlCTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNJWkVfQVRURU5VQVRJT05fRkFDVE9SIH0gZnJvbSAnLi4vLi4vY29tbW9uL3NoYWRlcnMvY29uc3RhbnRzJztcblxuZXhwb3J0IGNvbnN0IHZlcnRleFNoYWRlciA9ICgpID0+IHtcbiAgcmV0dXJuIGBcbiAgICB1bmlmb3JtIHNhbXBsZXIyRCB1VGV4dHVyZTtcbiAgICB1bmlmb3JtIHZlYzIgYXRsYXNEaW07XG5cbiAgICBhdHRyaWJ1dGUgZmxvYXQgc2l6ZTtcbiAgICBhdHRyaWJ1dGUgdmVjMyBjb2xvcjtcbiAgICBhdHRyaWJ1dGUgZmxvYXQgYWxwaGE7XG4gICAgYXR0cmlidXRlIHZlYzIgdGV4SUQ7XG4gICAgYXR0cmlidXRlIGZsb2F0IHJvdGF0aW9uO1xuXG4gICAgdmFyeWluZyBmbG9hdCB2Um90YXRpb247XG4gICAgdmFyeWluZyB2ZWMzIHRhcmdldENvbG9yO1xuICAgIHZhcnlpbmcgZmxvYXQgdGFyZ2V0QWxwaGE7XG4gICAgdmFyeWluZyB2ZWM0IHRpbGVSZWN0O1xuXG4gICAgdm9pZCBtYWluKCkge1xuICAgICAgdmVjNCBtdlBvc2l0aW9uID0gbW9kZWxWaWV3TWF0cml4ICogdmVjNChwb3NpdGlvbiwgMS4wKTtcbiAgICAgIHRhcmdldENvbG9yID0gY29sb3I7XG4gICAgICB0YXJnZXRBbHBoYSA9IGFscGhhO1xuICAgICAgdlJvdGF0aW9uID0gcm90YXRpb247XG5cbiAgICAgIHZlYzIgdG1pbiA9IGZsb29yKHRleElEKSAvIGF0bGFzRGltO1xuICAgICAgdmVjMiB0bWF4ID0gZnJhY3QodGV4SUQpO1xuICAgICAgdGlsZVJlY3QgPSB2ZWM0KHRtaW4sdG1heCk7XG5cbiAgICAgIGdsX1BvaW50U2l6ZSA9ICgoc2l6ZSAqICR7U0laRV9BVFRFTlVBVElPTl9GQUNUT1J9KSAvIC1tdlBvc2l0aW9uLnopO1xuICAgICAgZ2xfUG9zaXRpb24gPSBwcm9qZWN0aW9uTWF0cml4ICogbXZQb3NpdGlvbjtcbiAgICB9XG5gO1xufTtcbiJdfQ== ================================================ FILE: packages/sdk/lib/core/libs/three-nebula/renderer/GPURenderer/common/ParticleBuffer/constants.js ================================================ // Primitives export const DEFAULT_MAX_PARTICLES = 10000; export const VECTOR_3_SIZE = ['x', 'y', 'z'].length; export const RGBA_SIZE = ['r', 'g', 'b', 'a'].length; export const FLOAT_BYTE_SIZE = 4; // Byte sizes export const POSITION_BYTE_SIZE = VECTOR_3_SIZE * FLOAT_BYTE_SIZE; export const ROTATION_BYTE_SIZE = FLOAT_BYTE_SIZE; export const SIZE_BYTE_SIZE = FLOAT_BYTE_SIZE; export const RGBA_BYTE_SIZE = RGBA_SIZE * FLOAT_BYTE_SIZE; export const ALL_BYTE_SIZES = [POSITION_BYTE_SIZE, ROTATION_BYTE_SIZE, SIZE_BYTE_SIZE, RGBA_BYTE_SIZE]; export const PARTICLE_BYTE_SIZE = ALL_BYTE_SIZES.reduce((cur, acc) => cur + acc); // Attributes export const POSITION_ATTRIBUTE_BUFFER_SIZE = VECTOR_3_SIZE; export const ROTATION_ATTRIBUTE_BUFFER_SIZE = 1; export const SIZE_ATTRIBUTE_BUFFER_SIZE = 1; export const RGBA_ATTRIBUTE_BUFFER_SIZE = RGBA_SIZE; export const ALPHA_ATTRIBUTE_BUFFER_SIZE = 1; export const TEXID_ATTRIBUTE_BUFFER_SIZE = 2; export const ATTRIBUTE_TO_SIZE_MAP = { position: POSITION_ATTRIBUTE_BUFFER_SIZE, rotation: ROTATION_ATTRIBUTE_BUFFER_SIZE, size: SIZE_ATTRIBUTE_BUFFER_SIZE, // THREE.Color does not contain alpha, so we will have separate attributes for these color: RGBA_ATTRIBUTE_BUFFER_SIZE, alpha: ALPHA_ATTRIBUTE_BUFFER_SIZE, texID: TEXID_ATTRIBUTE_BUFFER_SIZE }; export const PARTICLE_STRIDE = [POSITION_ATTRIBUTE_BUFFER_SIZE, ROTATION_ATTRIBUTE_BUFFER_SIZE, SIZE_ATTRIBUTE_BUFFER_SIZE, RGBA_ATTRIBUTE_BUFFER_SIZE, ALPHA_ATTRIBUTE_BUFFER_SIZE, TEXID_ATTRIBUTE_BUFFER_SIZE].reduce((cur, acc) => cur + acc); //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9yZW5kZXJlci9HUFVSZW5kZXJlci9jb21tb24vUGFydGljbGVCdWZmZXIvY29uc3RhbnRzLmpzIl0sIm5hbWVzIjpbIkRFRkFVTFRfTUFYX1BBUlRJQ0xFUyIsIlZFQ1RPUl8zX1NJWkUiLCJsZW5ndGgiLCJSR0JBX1NJWkUiLCJGTE9BVF9CWVRFX1NJWkUiLCJQT1NJVElPTl9CWVRFX1NJWkUiLCJST1RBVElPTl9CWVRFX1NJWkUiLCJTSVpFX0JZVEVfU0laRSIsIlJHQkFfQllURV9TSVpFIiwiQUxMX0JZVEVfU0laRVMiLCJQQVJUSUNMRV9CWVRFX1NJWkUiLCJyZWR1Y2UiLCJjdXIiLCJhY2MiLCJQT1NJVElPTl9BVFRSSUJVVEVfQlVGRkVSX1NJWkUiLCJST1RBVElPTl9BVFRSSUJVVEVfQlVGRkVSX1NJWkUiLCJTSVpFX0FUVFJJQlVURV9CVUZGRVJfU0laRSIsIlJHQkFfQVRUUklCVVRFX0JVRkZFUl9TSVpFIiwiQUxQSEFfQVRUUklCVVRFX0JVRkZFUl9TSVpFIiwiVEVYSURfQVRUUklCVVRFX0JVRkZFUl9TSVpFIiwiQVRUUklCVVRFX1RPX1NJWkVfTUFQIiwicG9zaXRpb24iLCJyb3RhdGlvbiIsInNpemUiLCJjb2xvciIsImFscGhhIiwidGV4SUQiLCJQQVJUSUNMRV9TVFJJREUiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0EsT0FBTyxNQUFNQSxxQkFBcUIsR0FBRyxLQUE5QjtBQUNQLE9BQU8sTUFBTUMsYUFBYSxHQUFHLENBQUMsR0FBRCxFQUFNLEdBQU4sRUFBVyxHQUFYLEVBQWdCQyxNQUF0QztBQUNQLE9BQU8sTUFBTUMsU0FBUyxHQUFHLENBQUMsR0FBRCxFQUFNLEdBQU4sRUFBVyxHQUFYLEVBQWdCLEdBQWhCLEVBQXFCRCxNQUF2QztBQUNQLE9BQU8sTUFBTUUsZUFBZSxHQUFHLENBQXhCLEMsQ0FFUDs7QUFDQSxPQUFPLE1BQU1DLGtCQUFrQixHQUFHSixhQUFhLEdBQUdHLGVBQTNDO0FBQ1AsT0FBTyxNQUFNRSxrQkFBa0IsR0FBR0YsZUFBM0I7QUFDUCxPQUFPLE1BQU1HLGNBQWMsR0FBR0gsZUFBdkI7QUFDUCxPQUFPLE1BQU1JLGNBQWMsR0FBR0wsU0FBUyxHQUFHQyxlQUFuQztBQUNQLE9BQU8sTUFBTUssY0FBYyxHQUFHLENBQzVCSixrQkFENEIsRUFFNUJDLGtCQUY0QixFQUc1QkMsY0FINEIsRUFJNUJDLGNBSjRCLENBQXZCO0FBTVAsT0FBTyxNQUFNRSxrQkFBa0IsR0FBR0QsY0FBYyxDQUFDRSxNQUFmLENBQ2hDLENBQUNDLEdBQUQsRUFBTUMsR0FBTixLQUFjRCxHQUFHLEdBQUdDLEdBRFksQ0FBM0IsQyxDQUlQOztBQUNBLE9BQU8sTUFBTUMsOEJBQThCLEdBQUdiLGFBQXZDO0FBQ1AsT0FBTyxNQUFNYyw4QkFBOEIsR0FBRyxDQUF2QztBQUNQLE9BQU8sTUFBTUMsMEJBQTBCLEdBQUcsQ0FBbkM7QUFDUCxPQUFPLE1BQU1DLDBCQUEwQixHQUFHZCxTQUFuQztBQUNQLE9BQU8sTUFBTWUsMkJBQTJCLEdBQUcsQ0FBcEM7QUFDUCxPQUFPLE1BQU1DLDJCQUEyQixHQUFHLENBQXBDO0FBRVAsT0FBTyxNQUFNQyxxQkFBcUIsR0FBRztBQUNuQ0MsRUFBQUEsUUFBUSxFQUFFUCw4QkFEeUI7QUFFbkNRLEVBQUFBLFFBQVEsRUFBRVAsOEJBRnlCO0FBR25DUSxFQUFBQSxJQUFJLEVBQUVQLDBCQUg2QjtBQUluQztBQUNBUSxFQUFBQSxLQUFLLEVBQUVQLDBCQUw0QjtBQU1uQ1EsRUFBQUEsS0FBSyxFQUFFUCwyQkFONEI7QUFPbkNRLEVBQUFBLEtBQUssRUFBRVA7QUFQNEIsQ0FBOUI7QUFVUCxPQUFPLE1BQU1RLGVBQWUsR0FBRyxDQUM3QmIsOEJBRDZCLEVBRTdCQyw4QkFGNkIsRUFHN0JDLDBCQUg2QixFQUk3QkMsMEJBSjZCLEVBSzdCQywyQkFMNkIsRUFNN0JDLDJCQU42QixFQU83QlIsTUFQNkIsQ0FPdEIsQ0FBQ0MsR0FBRCxFQUFNQyxHQUFOLEtBQWNELEdBQUcsR0FBR0MsR0FQRSxDQUF4QiIsInNvdXJjZXNDb250ZW50IjpbIi8vIFByaW1pdGl2ZXNcbmV4cG9ydCBjb25zdCBERUZBVUxUX01BWF9QQVJUSUNMRVMgPSAxMDAwMDtcbmV4cG9ydCBjb25zdCBWRUNUT1JfM19TSVpFID0gWyd4JywgJ3knLCAneiddLmxlbmd0aDtcbmV4cG9ydCBjb25zdCBSR0JBX1NJWkUgPSBbJ3InLCAnZycsICdiJywgJ2EnXS5sZW5ndGg7XG5leHBvcnQgY29uc3QgRkxPQVRfQllURV9TSVpFID0gNDtcblxuLy8gQnl0ZSBzaXplc1xuZXhwb3J0IGNvbnN0IFBPU0lUSU9OX0JZVEVfU0laRSA9IFZFQ1RPUl8zX1NJWkUgKiBGTE9BVF9CWVRFX1NJWkU7XG5leHBvcnQgY29uc3QgUk9UQVRJT05fQllURV9TSVpFID0gRkxPQVRfQllURV9TSVpFO1xuZXhwb3J0IGNvbnN0IFNJWkVfQllURV9TSVpFID0gRkxPQVRfQllURV9TSVpFO1xuZXhwb3J0IGNvbnN0IFJHQkFfQllURV9TSVpFID0gUkdCQV9TSVpFICogRkxPQVRfQllURV9TSVpFO1xuZXhwb3J0IGNvbnN0IEFMTF9CWVRFX1NJWkVTID0gW1xuICBQT1NJVElPTl9CWVRFX1NJWkUsXG4gIFJPVEFUSU9OX0JZVEVfU0laRSxcbiAgU0laRV9CWVRFX1NJWkUsXG4gIFJHQkFfQllURV9TSVpFLFxuXTtcbmV4cG9ydCBjb25zdCBQQVJUSUNMRV9CWVRFX1NJWkUgPSBBTExfQllURV9TSVpFUy5yZWR1Y2UoXG4gIChjdXIsIGFjYykgPT4gY3VyICsgYWNjXG4pO1xuXG4vLyBBdHRyaWJ1dGVzXG5leHBvcnQgY29uc3QgUE9TSVRJT05fQVRUUklCVVRFX0JVRkZFUl9TSVpFID0gVkVDVE9SXzNfU0laRTtcbmV4cG9ydCBjb25zdCBST1RBVElPTl9BVFRSSUJVVEVfQlVGRkVSX1NJWkUgPSAxO1xuZXhwb3J0IGNvbnN0IFNJWkVfQVRUUklCVVRFX0JVRkZFUl9TSVpFID0gMTtcbmV4cG9ydCBjb25zdCBSR0JBX0FUVFJJQlVURV9CVUZGRVJfU0laRSA9IFJHQkFfU0laRTtcbmV4cG9ydCBjb25zdCBBTFBIQV9BVFRSSUJVVEVfQlVGRkVSX1NJWkUgPSAxO1xuZXhwb3J0IGNvbnN0IFRFWElEX0FUVFJJQlVURV9CVUZGRVJfU0laRSA9IDI7XG5cbmV4cG9ydCBjb25zdCBBVFRSSUJVVEVfVE9fU0laRV9NQVAgPSB7XG4gIHBvc2l0aW9uOiBQT1NJVElPTl9BVFRSSUJVVEVfQlVGRkVSX1NJWkUsXG4gIHJvdGF0aW9uOiBST1RBVElPTl9BVFRSSUJVVEVfQlVGRkVSX1NJWkUsXG4gIHNpemU6IFNJWkVfQVRUUklCVVRFX0JVRkZFUl9TSVpFLFxuICAvLyBUSFJFRS5Db2xvciBkb2VzIG5vdCBjb250YWluIGFscGhhLCBzbyB3ZSB3aWxsIGhhdmUgc2VwYXJhdGUgYXR0cmlidXRlcyBmb3IgdGhlc2VcbiAgY29sb3I6IFJHQkFfQVRUUklCVVRFX0JVRkZFUl9TSVpFLFxuICBhbHBoYTogQUxQSEFfQVRUUklCVVRFX0JVRkZFUl9TSVpFLFxuICB0ZXhJRDogVEVYSURfQVRUUklCVVRFX0JVRkZFUl9TSVpFLFxufTtcblxuZXhwb3J0IGNvbnN0IFBBUlRJQ0xFX1NUUklERSA9IFtcbiAgUE9TSVRJT05fQVRUUklCVVRFX0JVRkZFUl9TSVpFLFxuICBST1RBVElPTl9BVFRSSUJVVEVfQlVGRkVSX1NJWkUsXG4gIFNJWkVfQVRUUklCVVRFX0JVRkZFUl9TSVpFLFxuICBSR0JBX0FUVFJJQlVURV9CVUZGRVJfU0laRSxcbiAgQUxQSEFfQVRUUklCVVRFX0JVRkZFUl9TSVpFLFxuICBURVhJRF9BVFRSSUJVVEVfQlVGRkVSX1NJWkUsXG5dLnJlZHVjZSgoY3VyLCBhY2MpID0+IGN1ciArIGFjYyk7XG4iXX0= ================================================ FILE: packages/sdk/lib/core/libs/three-nebula/renderer/GPURenderer/common/ParticleBuffer/index.js ================================================ import { ATTRIBUTE_TO_SIZE_MAP, DEFAULT_MAX_PARTICLES, PARTICLE_BYTE_SIZE } from './constants'; let THREE; /** * Creates and provides performant buffers for mapping particle properties to geometry vertices. * * @author thrax * @author rohan-deshpande * @see https://threejs.org/examples/?q=buffe#webgl_buffergeometry_points_interleaved * @see https://threejs.org/examples/?q=points#webgl_custom_attributes_points */ export default class ParticleBuffer { constructor(maxParticles = DEFAULT_MAX_PARTICLES, three) { THREE = three; this.maxParticles = maxParticles; this.createInterleavedBuffer().createBufferGeometry(); } /** * Creates the interleaved buffer that will be used to write data to the GPU. * * @return {ParticleBuffer} */ createInterleavedBuffer() { const arrayBuffer = new ArrayBuffer(this.maxParticles * PARTICLE_BYTE_SIZE); this.interleavedBuffer = new THREE.InterleavedBuffer(new Float32Array(arrayBuffer), PARTICLE_BYTE_SIZE); // this.interleavedBuffer.usage = THREE.DynamicDrawUsage; return this; } /** * Sets the geometry's buffer attributes. * * NOTE Each attribute needs to be set at the right index in the buffer right after the previous * attribute that occupies a set amount of size in the buffer. * * @return {ParticleBufferGeometry} */ createBufferGeometry() { this.geometry = new THREE.BufferGeometry(); const { interleavedBuffer, geometry } = this; Object.keys(ATTRIBUTE_TO_SIZE_MAP).reduce((offset, attribute) => { const size = ATTRIBUTE_TO_SIZE_MAP[attribute]; geometry.setAttribute(attribute, new THREE.InterleavedBufferAttribute(interleavedBuffer, size, offset)); return offset += size; }, 0); return this; } /** * Gets the publicly accessible interleaved buffer. * * @return {THREE.InterleavedBuffer} buffers - The interleaved buffer */ get buffer() { return this.interleavedBuffer; } get stride() { return PARTICLE_BYTE_SIZE; } } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9yZW5kZXJlci9HUFVSZW5kZXJlci9jb21tb24vUGFydGljbGVCdWZmZXIvaW5kZXguanMiXSwibmFtZXMiOlsiQVRUUklCVVRFX1RPX1NJWkVfTUFQIiwiREVGQVVMVF9NQVhfUEFSVElDTEVTIiwiUEFSVElDTEVfQllURV9TSVpFIiwiVEhSRUUiLCJQYXJ0aWNsZUJ1ZmZlciIsImNvbnN0cnVjdG9yIiwibWF4UGFydGljbGVzIiwidGhyZWUiLCJjcmVhdGVJbnRlcmxlYXZlZEJ1ZmZlciIsImNyZWF0ZUJ1ZmZlckdlb21ldHJ5IiwiYXJyYXlCdWZmZXIiLCJBcnJheUJ1ZmZlciIsImludGVybGVhdmVkQnVmZmVyIiwiSW50ZXJsZWF2ZWRCdWZmZXIiLCJGbG9hdDMyQXJyYXkiLCJnZW9tZXRyeSIsIkJ1ZmZlckdlb21ldHJ5IiwiT2JqZWN0Iiwia2V5cyIsInJlZHVjZSIsIm9mZnNldCIsImF0dHJpYnV0ZSIsInNpemUiLCJzZXRBdHRyaWJ1dGUiLCJJbnRlcmxlYXZlZEJ1ZmZlckF0dHJpYnV0ZSIsImJ1ZmZlciIsInN0cmlkZSJdLCJtYXBwaW5ncyI6IkFBQUEsU0FDRUEscUJBREYsRUFFRUMscUJBRkYsRUFHRUMsa0JBSEYsUUFJTyxhQUpQO0FBTUEsSUFBSUMsS0FBSjtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBQ0EsZUFBZSxNQUFNQyxjQUFOLENBQXFCO0FBQ2xDQyxFQUFBQSxXQUFXLENBQUNDLFlBQVksR0FBR0wscUJBQWhCLEVBQXVDTSxLQUF2QyxFQUE4QztBQUN2REosSUFBQUEsS0FBSyxHQUFHSSxLQUFSO0FBQ0EsU0FBS0QsWUFBTCxHQUFvQkEsWUFBcEI7QUFFQSxTQUFLRSx1QkFBTCxHQUErQkMsb0JBQS9CO0FBQ0Q7QUFFRDtBQUNGO0FBQ0E7QUFDQTtBQUNBOzs7QUFDRUQsRUFBQUEsdUJBQXVCLEdBQUc7QUFDeEIsVUFBTUUsV0FBVyxHQUFHLElBQUlDLFdBQUosQ0FBZ0IsS0FBS0wsWUFBTCxHQUFvQkosa0JBQXBDLENBQXBCO0FBRUEsU0FBS1UsaUJBQUwsR0FBeUIsSUFBSVQsS0FBSyxDQUFDVSxpQkFBVixDQUN2QixJQUFJQyxZQUFKLENBQWlCSixXQUFqQixDQUR1QixFQUV2QlIsa0JBRnVCLENBQXpCLENBSHdCLENBT3hCOztBQUVBLFdBQU8sSUFBUDtBQUNEO0FBRUQ7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQ0VPLEVBQUFBLG9CQUFvQixHQUFHO0FBQ3JCLFNBQUtNLFFBQUwsR0FBZ0IsSUFBSVosS0FBSyxDQUFDYSxjQUFWLEVBQWhCO0FBRUEsVUFBTTtBQUFFSixNQUFBQSxpQkFBRjtBQUFxQkcsTUFBQUE7QUFBckIsUUFBa0MsSUFBeEM7QUFFQUUsSUFBQUEsTUFBTSxDQUFDQyxJQUFQLENBQVlsQixxQkFBWixFQUFtQ21CLE1BQW5DLENBQTBDLENBQUNDLE1BQUQsRUFBU0MsU0FBVCxLQUF1QjtBQUMvRCxZQUFNQyxJQUFJLEdBQUd0QixxQkFBcUIsQ0FBQ3FCLFNBQUQsQ0FBbEM7QUFFQU4sTUFBQUEsUUFBUSxDQUFDUSxZQUFULENBQ0VGLFNBREYsRUFFRSxJQUFJbEIsS0FBSyxDQUFDcUIsMEJBQVYsQ0FBcUNaLGlCQUFyQyxFQUF3RFUsSUFBeEQsRUFBOERGLE1BQTlELENBRkY7QUFLQSxhQUFRQSxNQUFNLElBQUlFLElBQWxCO0FBQ0QsS0FURCxFQVNHLENBVEg7QUFXQSxXQUFPLElBQVA7QUFDRDtBQUVEO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7OztBQUNZLE1BQU5HLE1BQU0sR0FBRztBQUNYLFdBQU8sS0FBS2IsaUJBQVo7QUFDRDs7QUFFUyxNQUFOYyxNQUFNLEdBQUc7QUFDWCxXQUFPeEIsa0JBQVA7QUFDRDs7QUEvRGlDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQVRUUklCVVRFX1RPX1NJWkVfTUFQLFxuICBERUZBVUxUX01BWF9QQVJUSUNMRVMsXG4gIFBBUlRJQ0xFX0JZVEVfU0laRSxcbn0gZnJvbSAnLi9jb25zdGFudHMnO1xuXG5sZXQgVEhSRUU7XG5cbi8qKlxuICogQ3JlYXRlcyBhbmQgcHJvdmlkZXMgcGVyZm9ybWFudCBidWZmZXJzIGZvciBtYXBwaW5nIHBhcnRpY2xlIHByb3BlcnRpZXMgdG8gZ2VvbWV0cnkgdmVydGljZXMuXG4gKlxuICogQGF1dGhvciB0aHJheCA8bWFudGhyYXhAZ21haWwuY29tPlxuICogQGF1dGhvciByb2hhbi1kZXNocGFuZGUgPHJvaGFuQGNyZWF0aXZlbGlmZWZvcm0uY29tPlxuICogQHNlZSBodHRwczovL3RocmVlanMub3JnL2V4YW1wbGVzLz9xPWJ1ZmZlI3dlYmdsX2J1ZmZlcmdlb21ldHJ5X3BvaW50c19pbnRlcmxlYXZlZFxuICogQHNlZSBodHRwczovL3RocmVlanMub3JnL2V4YW1wbGVzLz9xPXBvaW50cyN3ZWJnbF9jdXN0b21fYXR0cmlidXRlc19wb2ludHNcbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgUGFydGljbGVCdWZmZXIge1xuICBjb25zdHJ1Y3RvcihtYXhQYXJ0aWNsZXMgPSBERUZBVUxUX01BWF9QQVJUSUNMRVMsIHRocmVlKSB7XG4gICAgVEhSRUUgPSB0aHJlZTtcbiAgICB0aGlzLm1heFBhcnRpY2xlcyA9IG1heFBhcnRpY2xlcztcblxuICAgIHRoaXMuY3JlYXRlSW50ZXJsZWF2ZWRCdWZmZXIoKS5jcmVhdGVCdWZmZXJHZW9tZXRyeSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgdGhlIGludGVybGVhdmVkIGJ1ZmZlciB0aGF0IHdpbGwgYmUgdXNlZCB0byB3cml0ZSBkYXRhIHRvIHRoZSBHUFUuXG4gICAqXG4gICAqIEByZXR1cm4ge1BhcnRpY2xlQnVmZmVyfVxuICAgKi9cbiAgY3JlYXRlSW50ZXJsZWF2ZWRCdWZmZXIoKSB7XG4gICAgY29uc3QgYXJyYXlCdWZmZXIgPSBuZXcgQXJyYXlCdWZmZXIodGhpcy5tYXhQYXJ0aWNsZXMgKiBQQVJUSUNMRV9CWVRFX1NJWkUpO1xuXG4gICAgdGhpcy5pbnRlcmxlYXZlZEJ1ZmZlciA9IG5ldyBUSFJFRS5JbnRlcmxlYXZlZEJ1ZmZlcihcbiAgICAgIG5ldyBGbG9hdDMyQXJyYXkoYXJyYXlCdWZmZXIpLFxuICAgICAgUEFSVElDTEVfQllURV9TSVpFXG4gICAgKTtcbiAgICAvLyB0aGlzLmludGVybGVhdmVkQnVmZmVyLnVzYWdlID0gVEhSRUUuRHluYW1pY0RyYXdVc2FnZTtcbiAgICBcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBnZW9tZXRyeSdzIGJ1ZmZlciBhdHRyaWJ1dGVzLlxuICAgKlxuICAgKiBOT1RFIEVhY2ggYXR0cmlidXRlIG5lZWRzIHRvIGJlIHNldCBhdCB0aGUgcmlnaHQgaW5kZXggaW4gdGhlIGJ1ZmZlciByaWdodCBhZnRlciB0aGUgcHJldmlvdXNcbiAgICogYXR0cmlidXRlIHRoYXQgb2NjdXBpZXMgYSBzZXQgYW1vdW50IG9mIHNpemUgaW4gdGhlIGJ1ZmZlci5cbiAgICpcbiAgICogQHJldHVybiB7UGFydGljbGVCdWZmZXJHZW9tZXRyeX1cbiAgICovXG4gIGNyZWF0ZUJ1ZmZlckdlb21ldHJ5KCkge1xuICAgIHRoaXMuZ2VvbWV0cnkgPSBuZXcgVEhSRUUuQnVmZmVyR2VvbWV0cnkoKTtcblxuICAgIGNvbnN0IHsgaW50ZXJsZWF2ZWRCdWZmZXIsIGdlb21ldHJ5IH0gPSB0aGlzO1xuXG4gICAgT2JqZWN0LmtleXMoQVRUUklCVVRFX1RPX1NJWkVfTUFQKS5yZWR1Y2UoKG9mZnNldCwgYXR0cmlidXRlKSA9PiB7XG4gICAgICBjb25zdCBzaXplID0gQVRUUklCVVRFX1RPX1NJWkVfTUFQW2F0dHJpYnV0ZV07XG5cbiAgICAgIGdlb21ldHJ5LnNldEF0dHJpYnV0ZShcbiAgICAgICAgYXR0cmlidXRlLFxuICAgICAgICBuZXcgVEhSRUUuSW50ZXJsZWF2ZWRCdWZmZXJBdHRyaWJ1dGUoaW50ZXJsZWF2ZWRCdWZmZXIsIHNpemUsIG9mZnNldClcbiAgICAgICk7XG5cbiAgICAgIHJldHVybiAob2Zmc2V0ICs9IHNpemUpO1xuICAgIH0sIDApO1xuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgcHVibGljbHkgYWNjZXNzaWJsZSBpbnRlcmxlYXZlZCBidWZmZXIuXG4gICAqXG4gICAqIEByZXR1cm4ge1RIUkVFLkludGVybGVhdmVkQnVmZmVyfSBidWZmZXJzIC0gVGhlIGludGVybGVhdmVkIGJ1ZmZlclxuICAgKi9cbiAgZ2V0IGJ1ZmZlcigpIHtcbiAgICByZXR1cm4gdGhpcy5pbnRlcmxlYXZlZEJ1ZmZlcjtcbiAgfVxuXG4gIGdldCBzdHJpZGUoKSB7XG4gICAgcmV0dXJuIFBBUlRJQ0xFX0JZVEVfU0laRTtcbiAgfVxufVxuIl19 ================================================ FILE: packages/sdk/lib/core/libs/three-nebula/renderer/GPURenderer/common/TextureAtlas/constants.js ================================================ export const DATA_TEXTURE_SIZE = 256; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9yZW5kZXJlci9HUFVSZW5kZXJlci9jb21tb24vVGV4dHVyZUF0bGFzL2NvbnN0YW50cy5qcyJdLCJuYW1lcyI6WyJEQVRBX1RFWFRVUkVfU0laRSJdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxNQUFNQSxpQkFBaUIsR0FBRyxHQUExQiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBEQVRBX1RFWFRVUkVfU0laRSA9IDI1NjtcbiJdfQ== ================================================ FILE: packages/sdk/lib/core/libs/three-nebula/renderer/GPURenderer/common/TextureAtlas/index.js ================================================ import { RENDERER_TYPE_GPU_DESKTOP, RENDERER_TYPE_GPU_MOBILE } from '../../../types'; import { DATA_TEXTURE_SIZE } from './constants'; import { __DEV__ } from '../../../../constants'; import potpack from "../../../../utils/potpack.js"; /** * Dynamic texture atlas for performant support of systems with multiple emitters and textures. * */ export default class TextureAtlas { constructor(renderer, shouldDebug) { const { three: THREE, type: rendererType } = renderer; const data = new Float32Array(DATA_TEXTURE_SIZE * 4); const ctx = this.ctx = document.createElement('canvas').getContext('2d'); const { canvas } = ctx; this.shouldDebug = shouldDebug; this.rendererType = rendererType; this.indexData = data; this.canvas = canvas; this.entries = []; if (rendererType === RENDERER_TYPE_GPU_DESKTOP) { this.atlasIndex = new THREE.DataTexture(data, DATA_TEXTURE_SIZE, 1, THREE.RGBAFormat, THREE.FloatType); } canvas.width = canvas.height = DATA_TEXTURE_SIZE; if (shouldDebug) { this.debug(canvas, ctx); } this.atlasTexture = new THREE.CanvasTexture(canvas); this.atlasTexture.flipY = false; renderer.material.uniforms.uTexture.value = this.atlasTexture; if (rendererType === RENDERER_TYPE_GPU_DESKTOP) { renderer.material.uniforms.atlasIndex.value = this.atlasIndex; } renderer.material.uniformsNeedUpdate = true; } /** * Logs to the console when in dev mode. * */ log(...args) { if (!__DEV__) { return; } console.log(...args); } /** * Debugs the texture atlas by rendering it to a canvas in the DOM. * */ debug() { const { canvas, ctx } = this; const halfmax = canvas.width; ctx.fillStyle = 'purple'; ctx.fillRect(0, 0, halfmax, halfmax); ctx.fillStyle = 'green'; ctx.fillRect(0, halfmax, halfmax, halfmax); ctx.fillStyle = 'blue'; ctx.fillRect(halfmax, 0, halfmax, halfmax); ctx.fillStyle = 'orange'; ctx.fillRect(halfmax, halfmax, halfmax, halfmax); ctx.fillStyle = 'yellow'; ctx.font = canvas.width + 'px Verdana'; ctx.fillText('top row', 100, 500); ctx.fillStyle = 'pink'; ctx.fillText('bottom row', 100, 1500); canvas.style.position = 'absolute'; canvas.style.width = canvas.style.height = '300px'; canvas.style.left = canvas.style.top = '0px'; canvas.style.zIndex = 100; document.body.appendChild(canvas); } /** * Adds a texture to the texture atlas and flags that the atlas needs to be updated. * */ addTexture(texture) { this.log('Adding texture to atlas:', texture.uuid); texture.textureIndex = this.entries.length; this.entries.push({ texture: texture }); this.needsUpdate = true; } /** * Updates the texture atlas. Will only rebuild the atlas if all images are loaded. * */ update() { if (!this.needsUpdate) { return; } const { entries, canvas, indexData, ctx, atlasIndex, atlasTexture, rendererType } = this; for (let i = 0; i < entries.length; i++) { if (!entries[i].texture.image) { return; } } this.needsUpdate = false; for (let i = 0; i < entries.length; i++) { const e = entries[i]; const { texture } = e; const { width, height } = texture.image; e.w = width; e.h = height; } const stats = potpack(entries); this.log('Rebuilt atlas:', stats); if (canvas.width != stats.w || canvas.height != stats.h) { canvas.width = stats.w; canvas.height = stats.h; } for (let i = 0; i < entries.length; i++) { const e = this.entries[i]; const ii = e.texture.textureIndex * 4; if (rendererType === RENDERER_TYPE_GPU_DESKTOP) { indexData[ii + 0] = e.x / canvas.width; indexData[ii + 1] = e.y / canvas.height; indexData[ii + 2] = (e.x + e.w) / canvas.width; indexData[ii + 3] = (e.y + e.h) / canvas.height; } if (rendererType === RENDERER_TYPE_GPU_MOBILE) { indexData[ii + 0] = e.x / (canvas.width + 1); indexData[ii + 1] = e.y / (canvas.height + 1); indexData[ii + 2] = (e.x + e.w) / (canvas.width + 1); indexData[ii + 3] = (e.y + e.h) / (canvas.height + 1); } ctx.drawImage(e.texture.image, e.x, e.y, e.w, e.h); } if (rendererType === RENDERER_TYPE_GPU_DESKTOP) { atlasIndex.needsUpdate = true; } atlasTexture.needsUpdate = true; } /** * Disposes of the textures used by the texture atlas. * * @return void */ destroy() { const { atlasIndex, atlasTexture, canvas } = this; atlasTexture.dispose(); atlasIndex && atlasIndex.dispose(); if (this.shouldDebug) { canvas.remove(); } this.entries = []; } } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9yZW5kZXJlci9HUFVSZW5kZXJlci9jb21tb24vVGV4dHVyZUF0bGFzL2luZGV4LmpzIl0sIm5hbWVzIjpbIlJFTkRFUkVSX1RZUEVfR1BVX0RFU0tUT1AiLCJSRU5ERVJFUl9UWVBFX0dQVV9NT0JJTEUiLCJEQVRBX1RFWFRVUkVfU0laRSIsIl9fREVWX18iLCJwb3RwYWNrIiwiVGV4dHVyZUF0bGFzIiwiY29uc3RydWN0b3IiLCJyZW5kZXJlciIsInNob3VsZERlYnVnIiwidGhyZWUiLCJUSFJFRSIsInR5cGUiLCJyZW5kZXJlclR5cGUiLCJkYXRhIiwiRmxvYXQzMkFycmF5IiwiY3R4IiwiZG9jdW1lbnQiLCJjcmVhdGVFbGVtZW50IiwiZ2V0Q29udGV4dCIsImNhbnZhcyIsImluZGV4RGF0YSIsImVudHJpZXMiLCJhdGxhc0luZGV4IiwiRGF0YVRleHR1cmUiLCJSR0JBRm9ybWF0IiwiRmxvYXRUeXBlIiwid2lkdGgiLCJoZWlnaHQiLCJkZWJ1ZyIsImF0bGFzVGV4dHVyZSIsIkNhbnZhc1RleHR1cmUiLCJmbGlwWSIsIm1hdGVyaWFsIiwidW5pZm9ybXMiLCJ1VGV4dHVyZSIsInZhbHVlIiwidW5pZm9ybXNOZWVkVXBkYXRlIiwibG9nIiwiYXJncyIsImNvbnNvbGUiLCJoYWxmbWF4IiwiZmlsbFN0eWxlIiwiZmlsbFJlY3QiLCJmb250IiwiZmlsbFRleHQiLCJzdHlsZSIsInBvc2l0aW9uIiwibGVmdCIsInRvcCIsInpJbmRleCIsImJvZHkiLCJhcHBlbmRDaGlsZCIsImFkZFRleHR1cmUiLCJ0ZXh0dXJlIiwidXVpZCIsInRleHR1cmVJbmRleCIsImxlbmd0aCIsInB1c2giLCJuZWVkc1VwZGF0ZSIsInVwZGF0ZSIsImkiLCJpbWFnZSIsImUiLCJ3IiwiaCIsInN0YXRzIiwiaWkiLCJ4IiwieSIsImRyYXdJbWFnZSIsImRlc3Ryb3kiLCJkaXNwb3NlIiwicmVtb3ZlIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUNFQSx5QkFERixFQUVFQyx3QkFGRixRQUdPLGdCQUhQO0FBS0EsU0FBU0MsaUJBQVQsUUFBa0MsYUFBbEM7QUFDQSxTQUFTQyxPQUFULFFBQXdCLHVCQUF4QjtBQUNBLE9BQU9DLE9BQVAsTUFBb0IsU0FBcEI7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFDQSxlQUFlLE1BQU1DLFlBQU4sQ0FBbUI7QUFDaENDLEVBQUFBLFdBQVcsQ0FBQ0MsUUFBRCxFQUFXQyxXQUFYLEVBQXdCO0FBQ2pDLFVBQU07QUFBRUMsTUFBQUEsS0FBSyxFQUFFQyxLQUFUO0FBQWdCQyxNQUFBQSxJQUFJLEVBQUVDO0FBQXRCLFFBQXVDTCxRQUE3QztBQUNBLFVBQU1NLElBQUksR0FBRyxJQUFJQyxZQUFKLENBQWlCWixpQkFBaUIsR0FBRyxDQUFyQyxDQUFiO0FBQ0EsVUFBTWEsR0FBRyxHQUFJLEtBQUtBLEdBQUwsR0FBV0MsUUFBUSxDQUFDQyxhQUFULENBQXVCLFFBQXZCLEVBQWlDQyxVQUFqQyxDQUE0QyxJQUE1QyxDQUF4QjtBQUNBLFVBQU07QUFBRUMsTUFBQUE7QUFBRixRQUFhSixHQUFuQjtBQUVBLFNBQUtQLFdBQUwsR0FBbUJBLFdBQW5CO0FBQ0EsU0FBS0ksWUFBTCxHQUFvQkEsWUFBcEI7QUFDQSxTQUFLUSxTQUFMLEdBQWlCUCxJQUFqQjtBQUNBLFNBQUtNLE1BQUwsR0FBY0EsTUFBZDtBQUNBLFNBQUtFLE9BQUwsR0FBZSxFQUFmOztBQUVBLFFBQUlULFlBQVksS0FBS1oseUJBQXJCLEVBQWdEO0FBQzlDLFdBQUtzQixVQUFMLEdBQWtCLElBQUlaLEtBQUssQ0FBQ2EsV0FBVixDQUNoQlYsSUFEZ0IsRUFFaEJYLGlCQUZnQixFQUdoQixDQUhnQixFQUloQlEsS0FBSyxDQUFDYyxVQUpVLEVBS2hCZCxLQUFLLENBQUNlLFNBTFUsQ0FBbEI7QUFPRDs7QUFFRE4sSUFBQUEsTUFBTSxDQUFDTyxLQUFQLEdBQWVQLE1BQU0sQ0FBQ1EsTUFBUCxHQUFnQnpCLGlCQUEvQjs7QUFFQSxRQUFJTSxXQUFKLEVBQWlCO0FBQ2YsV0FBS29CLEtBQUwsQ0FBV1QsTUFBWCxFQUFtQkosR0FBbkI7QUFDRDs7QUFFRCxTQUFLYyxZQUFMLEdBQW9CLElBQUluQixLQUFLLENBQUNvQixhQUFWLENBQXdCWCxNQUF4QixDQUFwQjtBQUNBLFNBQUtVLFlBQUwsQ0FBa0JFLEtBQWxCLEdBQTBCLEtBQTFCO0FBRUF4QixJQUFBQSxRQUFRLENBQUN5QixRQUFULENBQWtCQyxRQUFsQixDQUEyQkMsUUFBM0IsQ0FBb0NDLEtBQXBDLEdBQTRDLEtBQUtOLFlBQWpEOztBQUVBLFFBQUlqQixZQUFZLEtBQUtaLHlCQUFyQixFQUFnRDtBQUM5Q08sTUFBQUEsUUFBUSxDQUFDeUIsUUFBVCxDQUFrQkMsUUFBbEIsQ0FBMkJYLFVBQTNCLENBQXNDYSxLQUF0QyxHQUE4QyxLQUFLYixVQUFuRDtBQUNEOztBQUVEZixJQUFBQSxRQUFRLENBQUN5QixRQUFULENBQWtCSSxrQkFBbEIsR0FBdUMsSUFBdkM7QUFDRDtBQUVEO0FBQ0Y7QUFDQTtBQUNBOzs7QUFDRUMsRUFBQUEsR0FBRyxDQUFDLEdBQUdDLElBQUosRUFBVTtBQUNYLFFBQUksQ0FBQ25DLE9BQUwsRUFBYztBQUNaO0FBQ0Q7O0FBRURvQyxJQUFBQSxPQUFPLENBQUNGLEdBQVIsQ0FBWSxHQUFHQyxJQUFmO0FBQ0Q7QUFFRDtBQUNGO0FBQ0E7QUFDQTs7O0FBQ0VWLEVBQUFBLEtBQUssR0FBRztBQUNOLFVBQU07QUFBRVQsTUFBQUEsTUFBRjtBQUFVSixNQUFBQTtBQUFWLFFBQWtCLElBQXhCO0FBQ0EsVUFBTXlCLE9BQU8sR0FBR3JCLE1BQU0sQ0FBQ08sS0FBdkI7QUFFQVgsSUFBQUEsR0FBRyxDQUFDMEIsU0FBSixHQUFnQixRQUFoQjtBQUNBMUIsSUFBQUEsR0FBRyxDQUFDMkIsUUFBSixDQUFhLENBQWIsRUFBZ0IsQ0FBaEIsRUFBbUJGLE9BQW5CLEVBQTRCQSxPQUE1QjtBQUNBekIsSUFBQUEsR0FBRyxDQUFDMEIsU0FBSixHQUFnQixPQUFoQjtBQUNBMUIsSUFBQUEsR0FBRyxDQUFDMkIsUUFBSixDQUFhLENBQWIsRUFBZ0JGLE9BQWhCLEVBQXlCQSxPQUF6QixFQUFrQ0EsT0FBbEM7QUFDQXpCLElBQUFBLEdBQUcsQ0FBQzBCLFNBQUosR0FBZ0IsTUFBaEI7QUFDQTFCLElBQUFBLEdBQUcsQ0FBQzJCLFFBQUosQ0FBYUYsT0FBYixFQUFzQixDQUF0QixFQUF5QkEsT0FBekIsRUFBa0NBLE9BQWxDO0FBQ0F6QixJQUFBQSxHQUFHLENBQUMwQixTQUFKLEdBQWdCLFFBQWhCO0FBQ0ExQixJQUFBQSxHQUFHLENBQUMyQixRQUFKLENBQWFGLE9BQWIsRUFBc0JBLE9BQXRCLEVBQStCQSxPQUEvQixFQUF3Q0EsT0FBeEM7QUFDQXpCLElBQUFBLEdBQUcsQ0FBQzBCLFNBQUosR0FBZ0IsUUFBaEI7QUFDQTFCLElBQUFBLEdBQUcsQ0FBQzRCLElBQUosR0FBV3hCLE1BQU0sQ0FBQ08sS0FBUCxHQUFlLFlBQTFCO0FBQ0FYLElBQUFBLEdBQUcsQ0FBQzZCLFFBQUosQ0FBYSxTQUFiLEVBQXdCLEdBQXhCLEVBQTZCLEdBQTdCO0FBQ0E3QixJQUFBQSxHQUFHLENBQUMwQixTQUFKLEdBQWdCLE1BQWhCO0FBQ0ExQixJQUFBQSxHQUFHLENBQUM2QixRQUFKLENBQWEsWUFBYixFQUEyQixHQUEzQixFQUFnQyxJQUFoQztBQUVBekIsSUFBQUEsTUFBTSxDQUFDMEIsS0FBUCxDQUFhQyxRQUFiLEdBQXdCLFVBQXhCO0FBQ0EzQixJQUFBQSxNQUFNLENBQUMwQixLQUFQLENBQWFuQixLQUFiLEdBQXFCUCxNQUFNLENBQUMwQixLQUFQLENBQWFsQixNQUFiLEdBQXNCLE9BQTNDO0FBQ0FSLElBQUFBLE1BQU0sQ0FBQzBCLEtBQVAsQ0FBYUUsSUFBYixHQUFvQjVCLE1BQU0sQ0FBQzBCLEtBQVAsQ0FBYUcsR0FBYixHQUFtQixLQUF2QztBQUNBN0IsSUFBQUEsTUFBTSxDQUFDMEIsS0FBUCxDQUFhSSxNQUFiLEdBQXNCLEdBQXRCO0FBRUFqQyxJQUFBQSxRQUFRLENBQUNrQyxJQUFULENBQWNDLFdBQWQsQ0FBMEJoQyxNQUExQjtBQUNEO0FBRUQ7QUFDRjtBQUNBO0FBQ0E7OztBQUNFaUMsRUFBQUEsVUFBVSxDQUFDQyxPQUFELEVBQVU7QUFDbEIsU0FBS2hCLEdBQUwsQ0FBUywwQkFBVCxFQUFxQ2dCLE9BQU8sQ0FBQ0MsSUFBN0M7QUFFQUQsSUFBQUEsT0FBTyxDQUFDRSxZQUFSLEdBQXVCLEtBQUtsQyxPQUFMLENBQWFtQyxNQUFwQztBQUNBLFNBQUtuQyxPQUFMLENBQWFvQyxJQUFiLENBQWtCO0FBQUVKLE1BQUFBLE9BQU8sRUFBRUE7QUFBWCxLQUFsQjtBQUNBLFNBQUtLLFdBQUwsR0FBbUIsSUFBbkI7QUFDRDtBQUVEO0FBQ0Y7QUFDQTtBQUNBOzs7QUFDRUMsRUFBQUEsTUFBTSxHQUFHO0FBQ1AsUUFBSSxDQUFDLEtBQUtELFdBQVYsRUFBdUI7QUFDckI7QUFDRDs7QUFFRCxVQUFNO0FBQ0pyQyxNQUFBQSxPQURJO0FBRUpGLE1BQUFBLE1BRkk7QUFHSkMsTUFBQUEsU0FISTtBQUlKTCxNQUFBQSxHQUpJO0FBS0pPLE1BQUFBLFVBTEk7QUFNSk8sTUFBQUEsWUFOSTtBQU9KakIsTUFBQUE7QUFQSSxRQVFGLElBUko7O0FBVUEsU0FBSyxJQUFJZ0QsQ0FBQyxHQUFHLENBQWIsRUFBZ0JBLENBQUMsR0FBR3ZDLE9BQU8sQ0FBQ21DLE1BQTVCLEVBQW9DSSxDQUFDLEVBQXJDLEVBQXlDO0FBQ3ZDLFVBQUksQ0FBQ3ZDLE9BQU8sQ0FBQ3VDLENBQUQsQ0FBUCxDQUFXUCxPQUFYLENBQW1CUSxLQUF4QixFQUErQjtBQUM3QjtBQUNEO0FBQ0Y7O0FBRUQsU0FBS0gsV0FBTCxHQUFtQixLQUFuQjs7QUFFQSxTQUFLLElBQUlFLENBQUMsR0FBRyxDQUFiLEVBQWdCQSxDQUFDLEdBQUd2QyxPQUFPLENBQUNtQyxNQUE1QixFQUFvQ0ksQ0FBQyxFQUFyQyxFQUF5QztBQUN2QyxZQUFNRSxDQUFDLEdBQUd6QyxPQUFPLENBQUN1QyxDQUFELENBQWpCO0FBQ0EsWUFBTTtBQUFFUCxRQUFBQTtBQUFGLFVBQWNTLENBQXBCO0FBQ0EsWUFBTTtBQUFFcEMsUUFBQUEsS0FBRjtBQUFTQyxRQUFBQTtBQUFULFVBQW9CMEIsT0FBTyxDQUFDUSxLQUFsQztBQUVBQyxNQUFBQSxDQUFDLENBQUNDLENBQUYsR0FBTXJDLEtBQU47QUFDQW9DLE1BQUFBLENBQUMsQ0FBQ0UsQ0FBRixHQUFNckMsTUFBTjtBQUNEOztBQUVELFVBQU1zQyxLQUFLLEdBQUc3RCxPQUFPLENBQUNpQixPQUFELENBQXJCO0FBRUEsU0FBS2dCLEdBQUwsQ0FBUyxnQkFBVCxFQUEyQjRCLEtBQTNCOztBQUVBLFFBQUk5QyxNQUFNLENBQUNPLEtBQVAsSUFBZ0J1QyxLQUFLLENBQUNGLENBQXRCLElBQTJCNUMsTUFBTSxDQUFDUSxNQUFQLElBQWlCc0MsS0FBSyxDQUFDRCxDQUF0RCxFQUF5RDtBQUN2RDdDLE1BQUFBLE1BQU0sQ0FBQ08sS0FBUCxHQUFldUMsS0FBSyxDQUFDRixDQUFyQjtBQUNBNUMsTUFBQUEsTUFBTSxDQUFDUSxNQUFQLEdBQWdCc0MsS0FBSyxDQUFDRCxDQUF0QjtBQUNEOztBQUVELFNBQUssSUFBSUosQ0FBQyxHQUFHLENBQWIsRUFBZ0JBLENBQUMsR0FBR3ZDLE9BQU8sQ0FBQ21DLE1BQTVCLEVBQW9DSSxDQUFDLEVBQXJDLEVBQXlDO0FBQ3ZDLFlBQU1FLENBQUMsR0FBRyxLQUFLekMsT0FBTCxDQUFhdUMsQ0FBYixDQUFWO0FBQ0EsWUFBTU0sRUFBRSxHQUFHSixDQUFDLENBQUNULE9BQUYsQ0FBVUUsWUFBVixHQUF5QixDQUFwQzs7QUFFQSxVQUFJM0MsWUFBWSxLQUFLWix5QkFBckIsRUFBZ0Q7QUFDOUNvQixRQUFBQSxTQUFTLENBQUM4QyxFQUFFLEdBQUcsQ0FBTixDQUFULEdBQW9CSixDQUFDLENBQUNLLENBQUYsR0FBTWhELE1BQU0sQ0FBQ08sS0FBakM7QUFDQU4sUUFBQUEsU0FBUyxDQUFDOEMsRUFBRSxHQUFHLENBQU4sQ0FBVCxHQUFvQkosQ0FBQyxDQUFDTSxDQUFGLEdBQU1qRCxNQUFNLENBQUNRLE1BQWpDO0FBQ0FQLFFBQUFBLFNBQVMsQ0FBQzhDLEVBQUUsR0FBRyxDQUFOLENBQVQsR0FBb0IsQ0FBQ0osQ0FBQyxDQUFDSyxDQUFGLEdBQU1MLENBQUMsQ0FBQ0MsQ0FBVCxJQUFjNUMsTUFBTSxDQUFDTyxLQUF6QztBQUNBTixRQUFBQSxTQUFTLENBQUM4QyxFQUFFLEdBQUcsQ0FBTixDQUFULEdBQW9CLENBQUNKLENBQUMsQ0FBQ00sQ0FBRixHQUFNTixDQUFDLENBQUNFLENBQVQsSUFBYzdDLE1BQU0sQ0FBQ1EsTUFBekM7QUFDRDs7QUFFRCxVQUFJZixZQUFZLEtBQUtYLHdCQUFyQixFQUErQztBQUM3Q21CLFFBQUFBLFNBQVMsQ0FBQzhDLEVBQUUsR0FBRyxDQUFOLENBQVQsR0FBb0JKLENBQUMsQ0FBQ0ssQ0FBRixJQUFPaEQsTUFBTSxDQUFDTyxLQUFQLEdBQWUsQ0FBdEIsQ0FBcEI7QUFDQU4sUUFBQUEsU0FBUyxDQUFDOEMsRUFBRSxHQUFHLENBQU4sQ0FBVCxHQUFvQkosQ0FBQyxDQUFDTSxDQUFGLElBQU9qRCxNQUFNLENBQUNRLE1BQVAsR0FBZ0IsQ0FBdkIsQ0FBcEI7QUFDQVAsUUFBQUEsU0FBUyxDQUFDOEMsRUFBRSxHQUFHLENBQU4sQ0FBVCxHQUFvQixDQUFDSixDQUFDLENBQUNLLENBQUYsR0FBTUwsQ0FBQyxDQUFDQyxDQUFULEtBQWU1QyxNQUFNLENBQUNPLEtBQVAsR0FBZSxDQUE5QixDQUFwQjtBQUNBTixRQUFBQSxTQUFTLENBQUM4QyxFQUFFLEdBQUcsQ0FBTixDQUFULEdBQW9CLENBQUNKLENBQUMsQ0FBQ00sQ0FBRixHQUFNTixDQUFDLENBQUNFLENBQVQsS0FBZTdDLE1BQU0sQ0FBQ1EsTUFBUCxHQUFnQixDQUEvQixDQUFwQjtBQUNEOztBQUVEWixNQUFBQSxHQUFHLENBQUNzRCxTQUFKLENBQWNQLENBQUMsQ0FBQ1QsT0FBRixDQUFVUSxLQUF4QixFQUErQkMsQ0FBQyxDQUFDSyxDQUFqQyxFQUFvQ0wsQ0FBQyxDQUFDTSxDQUF0QyxFQUF5Q04sQ0FBQyxDQUFDQyxDQUEzQyxFQUE4Q0QsQ0FBQyxDQUFDRSxDQUFoRDtBQUNEOztBQUVELFFBQUlwRCxZQUFZLEtBQUtaLHlCQUFyQixFQUFnRDtBQUM5Q3NCLE1BQUFBLFVBQVUsQ0FBQ29DLFdBQVgsR0FBeUIsSUFBekI7QUFDRDs7QUFFRDdCLElBQUFBLFlBQVksQ0FBQzZCLFdBQWIsR0FBMkIsSUFBM0I7QUFDRDtBQUVEO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7OztBQUNFWSxFQUFBQSxPQUFPLEdBQUc7QUFDUixVQUFNO0FBQUVoRCxNQUFBQSxVQUFGO0FBQWNPLE1BQUFBLFlBQWQ7QUFBNEJWLE1BQUFBO0FBQTVCLFFBQXVDLElBQTdDO0FBRUFVLElBQUFBLFlBQVksQ0FBQzBDLE9BQWI7QUFDQWpELElBQUFBLFVBQVUsSUFBSUEsVUFBVSxDQUFDaUQsT0FBWCxFQUFkOztBQUVBLFFBQUksS0FBSy9ELFdBQVQsRUFBc0I7QUFDcEJXLE1BQUFBLE1BQU0sQ0FBQ3FELE1BQVA7QUFDRDs7QUFFRCxTQUFLbkQsT0FBTCxHQUFlLEVBQWY7QUFDRDs7QUF4TCtCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgUkVOREVSRVJfVFlQRV9HUFVfREVTS1RPUCxcbiAgUkVOREVSRVJfVFlQRV9HUFVfTU9CSUxFLFxufSBmcm9tICcuLi8uLi8uLi90eXBlcyc7XG5cbmltcG9ydCB7IERBVEFfVEVYVFVSRV9TSVpFIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgX19ERVZfXyB9IGZyb20gJy4uLy4uLy4uLy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgcG90cGFjayBmcm9tICdwb3RwYWNrJztcblxuLyoqXG4gKiBEeW5hbWljIHRleHR1cmUgYXRsYXMgZm9yIHBlcmZvcm1hbnQgc3VwcG9ydCBvZiBzeXN0ZW1zIHdpdGggbXVsdGlwbGUgZW1pdHRlcnMgYW5kIHRleHR1cmVzLlxuICpcbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgVGV4dHVyZUF0bGFzIHtcbiAgY29uc3RydWN0b3IocmVuZGVyZXIsIHNob3VsZERlYnVnKSB7XG4gICAgY29uc3QgeyB0aHJlZTogVEhSRUUsIHR5cGU6IHJlbmRlcmVyVHlwZSB9ID0gcmVuZGVyZXI7XG4gICAgY29uc3QgZGF0YSA9IG5ldyBGbG9hdDMyQXJyYXkoREFUQV9URVhUVVJFX1NJWkUgKiA0KTtcbiAgICBjb25zdCBjdHggPSAodGhpcy5jdHggPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdjYW52YXMnKS5nZXRDb250ZXh0KCcyZCcpKTtcbiAgICBjb25zdCB7IGNhbnZhcyB9ID0gY3R4O1xuXG4gICAgdGhpcy5zaG91bGREZWJ1ZyA9IHNob3VsZERlYnVnO1xuICAgIHRoaXMucmVuZGVyZXJUeXBlID0gcmVuZGVyZXJUeXBlO1xuICAgIHRoaXMuaW5kZXhEYXRhID0gZGF0YTtcbiAgICB0aGlzLmNhbnZhcyA9IGNhbnZhcztcbiAgICB0aGlzLmVudHJpZXMgPSBbXTtcblxuICAgIGlmIChyZW5kZXJlclR5cGUgPT09IFJFTkRFUkVSX1RZUEVfR1BVX0RFU0tUT1ApIHtcbiAgICAgIHRoaXMuYXRsYXNJbmRleCA9IG5ldyBUSFJFRS5EYXRhVGV4dHVyZShcbiAgICAgICAgZGF0YSxcbiAgICAgICAgREFUQV9URVhUVVJFX1NJWkUsXG4gICAgICAgIDEsXG4gICAgICAgIFRIUkVFLlJHQkFGb3JtYXQsXG4gICAgICAgIFRIUkVFLkZsb2F0VHlwZVxuICAgICAgKTtcbiAgICB9XG5cbiAgICBjYW52YXMud2lkdGggPSBjYW52YXMuaGVpZ2h0ID0gREFUQV9URVhUVVJFX1NJWkU7XG5cbiAgICBpZiAoc2hvdWxkRGVidWcpIHtcbiAgICAgIHRoaXMuZGVidWcoY2FudmFzLCBjdHgpO1xuICAgIH1cblxuICAgIHRoaXMuYXRsYXNUZXh0dXJlID0gbmV3IFRIUkVFLkNhbnZhc1RleHR1cmUoY2FudmFzKTtcbiAgICB0aGlzLmF0bGFzVGV4dHVyZS5mbGlwWSA9IGZhbHNlO1xuXG4gICAgcmVuZGVyZXIubWF0ZXJpYWwudW5pZm9ybXMudVRleHR1cmUudmFsdWUgPSB0aGlzLmF0bGFzVGV4dHVyZTtcblxuICAgIGlmIChyZW5kZXJlclR5cGUgPT09IFJFTkRFUkVSX1RZUEVfR1BVX0RFU0tUT1ApIHtcbiAgICAgIHJlbmRlcmVyLm1hdGVyaWFsLnVuaWZvcm1zLmF0bGFzSW5kZXgudmFsdWUgPSB0aGlzLmF0bGFzSW5kZXg7XG4gICAgfVxuXG4gICAgcmVuZGVyZXIubWF0ZXJpYWwudW5pZm9ybXNOZWVkVXBkYXRlID0gdHJ1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBMb2dzIHRvIHRoZSBjb25zb2xlIHdoZW4gaW4gZGV2IG1vZGUuXG4gICAqXG4gICAqL1xuICBsb2coLi4uYXJncykge1xuICAgIGlmICghX19ERVZfXykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnNvbGUubG9nKC4uLmFyZ3MpO1xuICB9XG5cbiAgLyoqXG4gICAqIERlYnVncyB0aGUgdGV4dHVyZSBhdGxhcyBieSByZW5kZXJpbmcgaXQgdG8gYSBjYW52YXMgaW4gdGhlIERPTS5cbiAgICpcbiAgICovXG4gIGRlYnVnKCkge1xuICAgIGNvbnN0IHsgY2FudmFzLCBjdHggfSA9IHRoaXM7XG4gICAgY29uc3QgaGFsZm1heCA9IGNhbnZhcy53aWR0aDtcblxuICAgIGN0eC5maWxsU3R5bGUgPSAncHVycGxlJztcbiAgICBjdHguZmlsbFJlY3QoMCwgMCwgaGFsZm1heCwgaGFsZm1heCk7XG4gICAgY3R4LmZpbGxTdHlsZSA9ICdncmVlbic7XG4gICAgY3R4LmZpbGxSZWN0KDAsIGhhbGZtYXgsIGhhbGZtYXgsIGhhbGZtYXgpO1xuICAgIGN0eC5maWxsU3R5bGUgPSAnYmx1ZSc7XG4gICAgY3R4LmZpbGxSZWN0KGhhbGZtYXgsIDAsIGhhbGZtYXgsIGhhbGZtYXgpO1xuICAgIGN0eC5maWxsU3R5bGUgPSAnb3JhbmdlJztcbiAgICBjdHguZmlsbFJlY3QoaGFsZm1heCwgaGFsZm1heCwgaGFsZm1heCwgaGFsZm1heCk7XG4gICAgY3R4LmZpbGxTdHlsZSA9ICd5ZWxsb3cnO1xuICAgIGN0eC5mb250ID0gY2FudmFzLndpZHRoICsgJ3B4IFZlcmRhbmEnO1xuICAgIGN0eC5maWxsVGV4dCgndG9wIHJvdycsIDEwMCwgNTAwKTtcbiAgICBjdHguZmlsbFN0eWxlID0gJ3BpbmsnO1xuICAgIGN0eC5maWxsVGV4dCgnYm90dG9tIHJvdycsIDEwMCwgMTUwMCk7XG5cbiAgICBjYW52YXMuc3R5bGUucG9zaXRpb24gPSAnYWJzb2x1dGUnO1xuICAgIGNhbnZhcy5zdHlsZS53aWR0aCA9IGNhbnZhcy5zdHlsZS5oZWlnaHQgPSAnMzAwcHgnO1xuICAgIGNhbnZhcy5zdHlsZS5sZWZ0ID0gY2FudmFzLnN0eWxlLnRvcCA9ICcwcHgnO1xuICAgIGNhbnZhcy5zdHlsZS56SW5kZXggPSAxMDA7XG5cbiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGNhbnZhcyk7XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhIHRleHR1cmUgdG8gdGhlIHRleHR1cmUgYXRsYXMgYW5kIGZsYWdzIHRoYXQgdGhlIGF0bGFzIG5lZWRzIHRvIGJlIHVwZGF0ZWQuXG4gICAqXG4gICAqL1xuICBhZGRUZXh0dXJlKHRleHR1cmUpIHtcbiAgICB0aGlzLmxvZygnQWRkaW5nIHRleHR1cmUgdG8gYXRsYXM6JywgdGV4dHVyZS51dWlkKTtcblxuICAgIHRleHR1cmUudGV4dHVyZUluZGV4ID0gdGhpcy5lbnRyaWVzLmxlbmd0aDtcbiAgICB0aGlzLmVudHJpZXMucHVzaCh7IHRleHR1cmU6IHRleHR1cmUgfSk7XG4gICAgdGhpcy5uZWVkc1VwZGF0ZSA9IHRydWU7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlcyB0aGUgdGV4dHVyZSBhdGxhcy4gV2lsbCBvbmx5IHJlYnVpbGQgdGhlIGF0bGFzIGlmIGFsbCBpbWFnZXMgYXJlIGxvYWRlZC5cbiAgICpcbiAgICovXG4gIHVwZGF0ZSgpIHtcbiAgICBpZiAoIXRoaXMubmVlZHNVcGRhdGUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCB7XG4gICAgICBlbnRyaWVzLFxuICAgICAgY2FudmFzLFxuICAgICAgaW5kZXhEYXRhLFxuICAgICAgY3R4LFxuICAgICAgYXRsYXNJbmRleCxcbiAgICAgIGF0bGFzVGV4dHVyZSxcbiAgICAgIHJlbmRlcmVyVHlwZSxcbiAgICB9ID0gdGhpcztcblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZW50cmllcy5sZW5ndGg7IGkrKykge1xuICAgICAgaWYgKCFlbnRyaWVzW2ldLnRleHR1cmUuaW1hZ2UpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMubmVlZHNVcGRhdGUgPSBmYWxzZTtcblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZW50cmllcy5sZW5ndGg7IGkrKykge1xuICAgICAgY29uc3QgZSA9IGVudHJpZXNbaV07XG4gICAgICBjb25zdCB7IHRleHR1cmUgfSA9IGU7XG4gICAgICBjb25zdCB7IHdpZHRoLCBoZWlnaHQgfSA9IHRleHR1cmUuaW1hZ2U7XG5cbiAgICAgIGUudyA9IHdpZHRoO1xuICAgICAgZS5oID0gaGVpZ2h0O1xuICAgIH1cblxuICAgIGNvbnN0IHN0YXRzID0gcG90cGFjayhlbnRyaWVzKTtcblxuICAgIHRoaXMubG9nKCdSZWJ1aWx0IGF0bGFzOicsIHN0YXRzKTtcblxuICAgIGlmIChjYW52YXMud2lkdGggIT0gc3RhdHMudyB8fCBjYW52YXMuaGVpZ2h0ICE9IHN0YXRzLmgpIHtcbiAgICAgIGNhbnZhcy53aWR0aCA9IHN0YXRzLnc7XG4gICAgICBjYW52YXMuaGVpZ2h0ID0gc3RhdHMuaDtcbiAgICB9XG5cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGVudHJpZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGNvbnN0IGUgPSB0aGlzLmVudHJpZXNbaV07XG4gICAgICBjb25zdCBpaSA9IGUudGV4dHVyZS50ZXh0dXJlSW5kZXggKiA0O1xuXG4gICAgICBpZiAocmVuZGVyZXJUeXBlID09PSBSRU5ERVJFUl9UWVBFX0dQVV9ERVNLVE9QKSB7XG4gICAgICAgIGluZGV4RGF0YVtpaSArIDBdID0gZS54IC8gY2FudmFzLndpZHRoO1xuICAgICAgICBpbmRleERhdGFbaWkgKyAxXSA9IGUueSAvIGNhbnZhcy5oZWlnaHQ7XG4gICAgICAgIGluZGV4RGF0YVtpaSArIDJdID0gKGUueCArIGUudykgLyBjYW52YXMud2lkdGg7XG4gICAgICAgIGluZGV4RGF0YVtpaSArIDNdID0gKGUueSArIGUuaCkgLyBjYW52YXMuaGVpZ2h0O1xuICAgICAgfVxuXG4gICAgICBpZiAocmVuZGVyZXJUeXBlID09PSBSRU5ERVJFUl9UWVBFX0dQVV9NT0JJTEUpIHtcbiAgICAgICAgaW5kZXhEYXRhW2lpICsgMF0gPSBlLnggLyAoY2FudmFzLndpZHRoICsgMSk7XG4gICAgICAgIGluZGV4RGF0YVtpaSArIDFdID0gZS55IC8gKGNhbnZhcy5oZWlnaHQgKyAxKTtcbiAgICAgICAgaW5kZXhEYXRhW2lpICsgMl0gPSAoZS54ICsgZS53KSAvIChjYW52YXMud2lkdGggKyAxKTtcbiAgICAgICAgaW5kZXhEYXRhW2lpICsgM10gPSAoZS55ICsgZS5oKSAvIChjYW52YXMuaGVpZ2h0ICsgMSk7XG4gICAgICB9XG5cbiAgICAgIGN0eC5kcmF3SW1hZ2UoZS50ZXh0dXJlLmltYWdlLCBlLngsIGUueSwgZS53LCBlLmgpO1xuICAgIH1cblxuICAgIGlmIChyZW5kZXJlclR5cGUgPT09IFJFTkRFUkVSX1RZUEVfR1BVX0RFU0tUT1ApIHtcbiAgICAgIGF0bGFzSW5kZXgubmVlZHNVcGRhdGUgPSB0cnVlO1xuICAgIH1cblxuICAgIGF0bGFzVGV4dHVyZS5uZWVkc1VwZGF0ZSA9IHRydWU7XG4gIH1cblxuICAvKipcbiAgICogRGlzcG9zZXMgb2YgdGhlIHRleHR1cmVzIHVzZWQgYnkgdGhlIHRleHR1cmUgYXRsYXMuXG4gICAqXG4gICAqIEByZXR1cm4gdm9pZFxuICAgKi9cbiAgZGVzdHJveSgpIHtcbiAgICBjb25zdCB7IGF0bGFzSW5kZXgsIGF0bGFzVGV4dHVyZSwgY2FudmFzIH0gPSB0aGlzO1xuXG4gICAgYXRsYXNUZXh0dXJlLmRpc3Bvc2UoKTtcbiAgICBhdGxhc0luZGV4ICYmIGF0bGFzSW5kZXguZGlzcG9zZSgpO1xuXG4gICAgaWYgKHRoaXMuc2hvdWxkRGVidWcpIHtcbiAgICAgIGNhbnZhcy5yZW1vdmUoKTtcbiAgICB9XG5cbiAgICB0aGlzLmVudHJpZXMgPSBbXTtcbiAgfVxufVxuIl19 ================================================ FILE: packages/sdk/lib/core/libs/three-nebula/renderer/GPURenderer/common/constants.js ================================================ import { DEFAULT_MAX_PARTICLES } from './ParticleBuffer/constants'; export const DEFAULT_RENDERER_OPTIONS = { blending: 'AdditiveBlending', baseColor: 0xffffff, depthTest: true, depthWrite: false, transparent: true, maxParticles: DEFAULT_MAX_PARTICLES, shouldDebugTextureAtlas: false, shouldForceDesktopRenderer: false, shouldForceMobileRenderer: false }; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9yZW5kZXJlci9HUFVSZW5kZXJlci9jb21tb24vY29uc3RhbnRzLmpzIl0sIm5hbWVzIjpbIkRFRkFVTFRfTUFYX1BBUlRJQ0xFUyIsIkRFRkFVTFRfUkVOREVSRVJfT1BUSU9OUyIsImJsZW5kaW5nIiwiYmFzZUNvbG9yIiwiZGVwdGhUZXN0IiwiZGVwdGhXcml0ZSIsInRyYW5zcGFyZW50IiwibWF4UGFydGljbGVzIiwic2hvdWxkRGVidWdUZXh0dXJlQXRsYXMiLCJzaG91bGRGb3JjZURlc2t0b3BSZW5kZXJlciIsInNob3VsZEZvcmNlTW9iaWxlUmVuZGVyZXIiXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLHFCQUFULFFBQXNDLDRCQUF0QztBQUVBLE9BQU8sTUFBTUMsd0JBQXdCLEdBQUc7QUFDdENDLEVBQUFBLFFBQVEsRUFBRSxrQkFENEI7QUFFdENDLEVBQUFBLFNBQVMsRUFBRSxRQUYyQjtBQUd0Q0MsRUFBQUEsU0FBUyxFQUFFLElBSDJCO0FBSXRDQyxFQUFBQSxVQUFVLEVBQUUsS0FKMEI7QUFLdENDLEVBQUFBLFdBQVcsRUFBRSxJQUx5QjtBQU10Q0MsRUFBQUEsWUFBWSxFQUFFUCxxQkFOd0I7QUFPdENRLEVBQUFBLHVCQUF1QixFQUFFLEtBUGE7QUFRdENDLEVBQUFBLDBCQUEwQixFQUFFLEtBUlU7QUFTdENDLEVBQUFBLHlCQUF5QixFQUFFO0FBVFcsQ0FBakMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBERUZBVUxUX01BWF9QQVJUSUNMRVMgfSBmcm9tICcuL1BhcnRpY2xlQnVmZmVyL2NvbnN0YW50cyc7XG5cbmV4cG9ydCBjb25zdCBERUZBVUxUX1JFTkRFUkVSX09QVElPTlMgPSB7XG4gIGJsZW5kaW5nOiAnQWRkaXRpdmVCbGVuZGluZycsXG4gIGJhc2VDb2xvcjogMHhmZmZmZmYsXG4gIGRlcHRoVGVzdDogdHJ1ZSxcbiAgZGVwdGhXcml0ZTogZmFsc2UsXG4gIHRyYW5zcGFyZW50OiB0cnVlLFxuICBtYXhQYXJ0aWNsZXM6IERFRkFVTFRfTUFYX1BBUlRJQ0xFUyxcbiAgc2hvdWxkRGVidWdUZXh0dXJlQXRsYXM6IGZhbHNlLFxuICBzaG91bGRGb3JjZURlc2t0b3BSZW5kZXJlcjogZmFsc2UsXG4gIHNob3VsZEZvcmNlTW9iaWxlUmVuZGVyZXI6IGZhbHNlLFxufTtcbiJdfQ== ================================================ FILE: packages/sdk/lib/core/libs/three-nebula/renderer/GPURenderer/common/index.js ================================================ export { Target, UniqueList } from './stores'; export { default as ParticleBuffer } from './ParticleBuffer'; export { default as TextureAtlas } from './TextureAtlas'; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9yZW5kZXJlci9HUFVSZW5kZXJlci9jb21tb24vaW5kZXguanMiXSwibmFtZXMiOlsiVGFyZ2V0IiwiVW5pcXVlTGlzdCIsImRlZmF1bHQiLCJQYXJ0aWNsZUJ1ZmZlciIsIlRleHR1cmVBdGxhcyJdLCJtYXBwaW5ncyI6IkFBQUEsU0FBU0EsTUFBVCxFQUFpQkMsVUFBakIsUUFBbUMsVUFBbkM7QUFDQSxTQUFTQyxPQUFPLElBQUlDLGNBQXBCLFFBQTBDLGtCQUExQztBQUNBLFNBQVNELE9BQU8sSUFBSUUsWUFBcEIsUUFBd0MsZ0JBQXhDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgVGFyZ2V0LCBVbmlxdWVMaXN0IH0gZnJvbSAnLi9zdG9yZXMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBQYXJ0aWNsZUJ1ZmZlciB9IGZyb20gJy4vUGFydGljbGVCdWZmZXInO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBUZXh0dXJlQXRsYXMgfSBmcm9tICcuL1RleHR1cmVBdGxhcyc7XG4iXX0= ================================================ FILE: packages/sdk/lib/core/libs/three-nebula/renderer/GPURenderer/common/shaders/constants.js ================================================ export const SIZE_ATTENUATION_FACTOR = '600.0'; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9yZW5kZXJlci9HUFVSZW5kZXJlci9jb21tb24vc2hhZGVycy9jb25zdGFudHMuanMiXSwibmFtZXMiOlsiU0laRV9BVFRFTlVBVElPTl9GQUNUT1IiXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sTUFBTUEsdUJBQXVCLEdBQUcsT0FBaEMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgU0laRV9BVFRFTlVBVElPTl9GQUNUT1IgPSAnNjAwLjAnO1xuIl19 ================================================ FILE: packages/sdk/lib/core/libs/three-nebula/renderer/GPURenderer/common/stores/Target.js ================================================ /** * Simple class that stores the particle's "target" or "next" state. * */ export class Target { constructor(THREE) { this.position = new THREE.Vector3(); this.rotation = new THREE.Vector3(); this.size = 0; this.color = new THREE.Color(); this.alpha = 0; this.texture = null; this.index = 0; } reset() { this.position.set(0, 0, 0); this.rotation.set(0, 0, 0); this.size = 0; this.color.setRGB(0, 0, 0); this.alpha = 0; this.texture = null; } } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9yZW5kZXJlci9HUFVSZW5kZXJlci9jb21tb24vc3RvcmVzL1RhcmdldC5qcyJdLCJuYW1lcyI6WyJUYXJnZXQiLCJjb25zdHJ1Y3RvciIsIlRIUkVFIiwicG9zaXRpb24iLCJWZWN0b3IzIiwicm90YXRpb24iLCJzaXplIiwiY29sb3IiLCJDb2xvciIsImFscGhhIiwidGV4dHVyZSIsImluZGV4IiwicmVzZXQiLCJzZXQiLCJzZXRSR0IiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTyxNQUFNQSxNQUFOLENBQWE7QUFDbEJDLEVBQUFBLFdBQVcsQ0FBQ0MsS0FBRCxFQUFRO0FBQ2pCLFNBQUtDLFFBQUwsR0FBZ0IsSUFBSUQsS0FBSyxDQUFDRSxPQUFWLEVBQWhCO0FBQ0EsU0FBS0MsUUFBTCxHQUFnQixJQUFJSCxLQUFLLENBQUNFLE9BQVYsRUFBaEI7QUFDQSxTQUFLRSxJQUFMLEdBQVksQ0FBWjtBQUNBLFNBQUtDLEtBQUwsR0FBYSxJQUFJTCxLQUFLLENBQUNNLEtBQVYsRUFBYjtBQUNBLFNBQUtDLEtBQUwsR0FBYSxDQUFiO0FBQ0EsU0FBS0MsT0FBTCxHQUFlLElBQWY7QUFDQSxTQUFLQyxLQUFMLEdBQWEsQ0FBYjtBQUNEOztBQUVEQyxFQUFBQSxLQUFLLEdBQUc7QUFDTixTQUFLVCxRQUFMLENBQWNVLEdBQWQsQ0FBa0IsQ0FBbEIsRUFBcUIsQ0FBckIsRUFBd0IsQ0FBeEI7QUFDQSxTQUFLUixRQUFMLENBQWNRLEdBQWQsQ0FBa0IsQ0FBbEIsRUFBcUIsQ0FBckIsRUFBd0IsQ0FBeEI7QUFDQSxTQUFLUCxJQUFMLEdBQVksQ0FBWjtBQUNBLFNBQUtDLEtBQUwsQ0FBV08sTUFBWCxDQUFrQixDQUFsQixFQUFxQixDQUFyQixFQUF3QixDQUF4QjtBQUNBLFNBQUtMLEtBQUwsR0FBYSxDQUFiO0FBQ0EsU0FBS0MsT0FBTCxHQUFlLElBQWY7QUFDRDs7QUFsQmlCIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBTaW1wbGUgY2xhc3MgdGhhdCBzdG9yZXMgdGhlIHBhcnRpY2xlJ3MgXCJ0YXJnZXRcIiBvciBcIm5leHRcIiBzdGF0ZS5cbiAqXG4gKi9cbmV4cG9ydCBjbGFzcyBUYXJnZXQge1xuICBjb25zdHJ1Y3RvcihUSFJFRSkge1xuICAgIHRoaXMucG9zaXRpb24gPSBuZXcgVEhSRUUuVmVjdG9yMygpO1xuICAgIHRoaXMucm90YXRpb24gPSBuZXcgVEhSRUUuVmVjdG9yMygpO1xuICAgIHRoaXMuc2l6ZSA9IDA7XG4gICAgdGhpcy5jb2xvciA9IG5ldyBUSFJFRS5Db2xvcigpO1xuICAgIHRoaXMuYWxwaGEgPSAwO1xuICAgIHRoaXMudGV4dHVyZSA9IG51bGw7XG4gICAgdGhpcy5pbmRleCA9IDA7XG4gIH1cblxuICByZXNldCgpIHtcbiAgICB0aGlzLnBvc2l0aW9uLnNldCgwLCAwLCAwKTtcbiAgICB0aGlzLnJvdGF0aW9uLnNldCgwLCAwLCAwKTtcbiAgICB0aGlzLnNpemUgPSAwO1xuICAgIHRoaXMuY29sb3Iuc2V0UkdCKDAsIDAsIDApO1xuICAgIHRoaXMuYWxwaGEgPSAwO1xuICAgIHRoaXMudGV4dHVyZSA9IG51bGw7XG4gIH1cbn1cbiJdfQ== ================================================ FILE: packages/sdk/lib/core/libs/three-nebula/renderer/GPURenderer/common/stores/UniqueList.js ================================================ /** * Map of particle IDs to integer ids */ export class UniqueList { constructor(max = Infinity) { this.max = max; this.count = 0; this._items = {}; } add(item) { if (this._items[item] !== undefined) { return; } this._items[item] = this.count++; } find(item) { return this._items[item]; } destroy() { this._items = {}; this.count = 0; } } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9yZW5kZXJlci9HUFVSZW5kZXJlci9jb21tb24vc3RvcmVzL1VuaXF1ZUxpc3QuanMiXSwibmFtZXMiOlsiVW5pcXVlTGlzdCIsImNvbnN0cnVjdG9yIiwibWF4IiwiSW5maW5pdHkiLCJjb3VudCIsIl9pdGVtcyIsImFkZCIsIml0ZW0iLCJ1bmRlZmluZWQiLCJmaW5kIiwiZGVzdHJveSJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0EsT0FBTyxNQUFNQSxVQUFOLENBQWlCO0FBQ3RCQyxFQUFBQSxXQUFXLENBQUNDLEdBQUcsR0FBR0MsUUFBUCxFQUFpQjtBQUMxQixTQUFLRCxHQUFMLEdBQVdBLEdBQVg7QUFDQSxTQUFLRSxLQUFMLEdBQWEsQ0FBYjtBQUNBLFNBQUtDLE1BQUwsR0FBYyxFQUFkO0FBQ0Q7O0FBRURDLEVBQUFBLEdBQUcsQ0FBQ0MsSUFBRCxFQUFPO0FBQ1IsUUFBSSxLQUFLRixNQUFMLENBQVlFLElBQVosTUFBc0JDLFNBQTFCLEVBQXFDO0FBQ25DO0FBQ0Q7O0FBRUQsU0FBS0gsTUFBTCxDQUFZRSxJQUFaLElBQW9CLEtBQUtILEtBQUwsRUFBcEI7QUFDRDs7QUFFREssRUFBQUEsSUFBSSxDQUFDRixJQUFELEVBQU87QUFDVCxXQUFPLEtBQUtGLE1BQUwsQ0FBWUUsSUFBWixDQUFQO0FBQ0Q7O0FBRURHLEVBQUFBLE9BQU8sR0FBRztBQUNSLFNBQUtMLE1BQUwsR0FBYyxFQUFkO0FBQ0EsU0FBS0QsS0FBTCxHQUFhLENBQWI7QUFDRDs7QUF0QnFCIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBNYXAgb2YgcGFydGljbGUgSURzIHRvIGludGVnZXIgaWRzXG4gKi9cbmV4cG9ydCBjbGFzcyBVbmlxdWVMaXN0IHtcbiAgY29uc3RydWN0b3IobWF4ID0gSW5maW5pdHkpIHtcbiAgICB0aGlzLm1heCA9IG1heDtcbiAgICB0aGlzLmNvdW50ID0gMDtcbiAgICB0aGlzLl9pdGVtcyA9IHt9O1xuICB9XG5cbiAgYWRkKGl0ZW0pIHtcbiAgICBpZiAodGhpcy5faXRlbXNbaXRlbV0gIT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuX2l0ZW1zW2l0ZW1dID0gdGhpcy5jb3VudCsrO1xuICB9XG5cbiAgZmluZChpdGVtKSB7XG4gICAgcmV0dXJuIHRoaXMuX2l0ZW1zW2l0ZW1dO1xuICB9XG5cbiAgZGVzdHJveSgpIHtcbiAgICB0aGlzLl9pdGVtcyA9IHt9O1xuICAgIHRoaXMuY291bnQgPSAwO1xuICB9XG59XG4iXX0= ================================================ FILE: packages/sdk/lib/core/libs/three-nebula/renderer/GPURenderer/common/stores/index.js ================================================ export { Target } from './Target'; export { UniqueList } from './UniqueList'; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9yZW5kZXJlci9HUFVSZW5kZXJlci9jb21tb24vc3RvcmVzL2luZGV4LmpzIl0sIm5hbWVzIjpbIlRhcmdldCIsIlVuaXF1ZUxpc3QiXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLE1BQVQsUUFBdUIsVUFBdkI7QUFDQSxTQUFTQyxVQUFULFFBQTJCLGNBQTNCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgVGFyZ2V0IH0gZnJvbSAnLi9UYXJnZXQnO1xuZXhwb3J0IHsgVW5pcXVlTGlzdCB9IGZyb20gJy4vVW5pcXVlTGlzdCc7XG4iXX0= ================================================ FILE: packages/sdk/lib/core/libs/three-nebula/renderer/GPURenderer/index.js ================================================ import BaseRenderer from '../BaseRenderer'; import { DEFAULT_RENDERER_OPTIONS } from './common/constants'; import DesktopGPURenderer from './Desktop'; import MobileGPURenderer from './Mobile'; import { RENDERER_TYPE_GPU } from '../types'; /** * Performant particle renderer that uses THREE.Points to propagate particle (postiion, rgba etc.,) properties to * vertices in a ParticleBufferGeometry. * Uses a dynamic texture atlas to support systems with mutliple sprites in a performant way. * * NOTE! This is an experimental renderer and is currently not covered by tests, coverage will be added when the API * is more stable. Currently only compatible with sprite/texture based systems. Meshes are not yet supported. * * @author thrax * @author rohan-deshpande */ export default class GPURenderer extends BaseRenderer { constructor(container, THREE, options = DEFAULT_RENDERER_OPTIONS) { super(RENDERER_TYPE_GPU); const { shouldForceDesktopRenderer, shouldForceMobileRenderer } = options; const args = [container, THREE, options]; if (shouldForceDesktopRenderer) { return new DesktopGPURenderer(...args); } if (shouldForceMobileRenderer) { return new MobileGPURenderer(...args); } if (!this.isFloatingPointTextureSupported()) { return new MobileGPURenderer(...args); } return new DesktopGPURenderer(...args); } isFloatingPointTextureSupported() { const canvas = document.createElement('canvas'); if (window.WebGL2RenderingContext && canvas.getContext('webgl2')) { // return false here to test the mobile renderer on desktop return true; } const gl = canvas.getContext('webgl'); const support = !!gl.getExtension('OES_texture_float'); canvas.remove(); return support; } } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9yZW5kZXJlci9HUFVSZW5kZXJlci9pbmRleC5qcyJdLCJuYW1lcyI6WyJCYXNlUmVuZGVyZXIiLCJERUZBVUxUX1JFTkRFUkVSX09QVElPTlMiLCJEZXNrdG9wR1BVUmVuZGVyZXIiLCJNb2JpbGVHUFVSZW5kZXJlciIsIlJFTkRFUkVSX1RZUEVfR1BVIiwiR1BVUmVuZGVyZXIiLCJjb25zdHJ1Y3RvciIsImNvbnRhaW5lciIsIlRIUkVFIiwib3B0aW9ucyIsInNob3VsZEZvcmNlRGVza3RvcFJlbmRlcmVyIiwic2hvdWxkRm9yY2VNb2JpbGVSZW5kZXJlciIsImFyZ3MiLCJpc0Zsb2F0aW5nUG9pbnRUZXh0dXJlU3VwcG9ydGVkIiwiY2FudmFzIiwiZG9jdW1lbnQiLCJjcmVhdGVFbGVtZW50Iiwid2luZG93IiwiV2ViR0wyUmVuZGVyaW5nQ29udGV4dCIsImdldENvbnRleHQiLCJnbCIsInN1cHBvcnQiLCJnZXRFeHRlbnNpb24iLCJyZW1vdmUiXSwibWFwcGluZ3MiOiJBQUFBLE9BQU9BLFlBQVAsTUFBeUIsaUJBQXpCO0FBQ0EsU0FBU0Msd0JBQVQsUUFBeUMsb0JBQXpDO0FBQ0EsT0FBT0Msa0JBQVAsTUFBK0IsV0FBL0I7QUFDQSxPQUFPQyxpQkFBUCxNQUE4QixVQUE5QjtBQUNBLFNBQVNDLGlCQUFULFFBQWtDLFVBQWxDO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFDQSxlQUFlLE1BQU1DLFdBQU4sU0FBMEJMLFlBQTFCLENBQXVDO0FBQ3BETSxFQUFBQSxXQUFXLENBQUNDLFNBQUQsRUFBWUMsS0FBWixFQUFtQkMsT0FBTyxHQUFHUix3QkFBN0IsRUFBdUQ7QUFDaEUsVUFBTUcsaUJBQU47QUFFQSxVQUFNO0FBQUVNLE1BQUFBLDBCQUFGO0FBQThCQyxNQUFBQTtBQUE5QixRQUE0REYsT0FBbEU7QUFDQSxVQUFNRyxJQUFJLEdBQUcsQ0FBQ0wsU0FBRCxFQUFZQyxLQUFaLEVBQW1CQyxPQUFuQixDQUFiOztBQUVBLFFBQUlDLDBCQUFKLEVBQWdDO0FBQzlCLGFBQU8sSUFBSVIsa0JBQUosQ0FBdUIsR0FBR1UsSUFBMUIsQ0FBUDtBQUNEOztBQUVELFFBQUlELHlCQUFKLEVBQStCO0FBQzdCLGFBQU8sSUFBSVIsaUJBQUosQ0FBc0IsR0FBR1MsSUFBekIsQ0FBUDtBQUNEOztBQUVELFFBQUksQ0FBQyxLQUFLQywrQkFBTCxFQUFMLEVBQTZDO0FBQzNDLGFBQU8sSUFBSVYsaUJBQUosQ0FBc0IsR0FBR1MsSUFBekIsQ0FBUDtBQUNEOztBQUVELFdBQU8sSUFBSVYsa0JBQUosQ0FBdUIsR0FBR1UsSUFBMUIsQ0FBUDtBQUNEOztBQUVEQyxFQUFBQSwrQkFBK0IsR0FBRztBQUNoQyxVQUFNQyxNQUFNLEdBQUdDLFFBQVEsQ0FBQ0MsYUFBVCxDQUF1QixRQUF2QixDQUFmOztBQUVBLFFBQUlDLE1BQU0sQ0FBQ0Msc0JBQVAsSUFBaUNKLE1BQU0sQ0FBQ0ssVUFBUCxDQUFrQixRQUFsQixDQUFyQyxFQUFrRTtBQUNoRTtBQUNBLGFBQU8sSUFBUDtBQUNEOztBQUVELFVBQU1DLEVBQUUsR0FBR04sTUFBTSxDQUFDSyxVQUFQLENBQWtCLE9BQWxCLENBQVg7QUFDQSxVQUFNRSxPQUFPLEdBQUcsQ0FBQyxDQUFDRCxFQUFFLENBQUNFLFlBQUgsQ0FBZ0IsbUJBQWhCLENBQWxCO0FBRUFSLElBQUFBLE1BQU0sQ0FBQ1MsTUFBUDtBQUVBLFdBQU9GLE9BQVA7QUFDRDs7QUFwQ21EIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEJhc2VSZW5kZXJlciBmcm9tICcuLi9CYXNlUmVuZGVyZXInO1xuaW1wb3J0IHsgREVGQVVMVF9SRU5ERVJFUl9PUFRJT05TIH0gZnJvbSAnLi9jb21tb24vY29uc3RhbnRzJztcbmltcG9ydCBEZXNrdG9wR1BVUmVuZGVyZXIgZnJvbSAnLi9EZXNrdG9wJztcbmltcG9ydCBNb2JpbGVHUFVSZW5kZXJlciBmcm9tICcuL01vYmlsZSc7XG5pbXBvcnQgeyBSRU5ERVJFUl9UWVBFX0dQVSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBQZXJmb3JtYW50IHBhcnRpY2xlIHJlbmRlcmVyIHRoYXQgdXNlcyBUSFJFRS5Qb2ludHMgdG8gcHJvcGFnYXRlIHBhcnRpY2xlIChwb3N0aWlvbiwgcmdiYSBldGMuLCkgcHJvcGVydGllcyB0b1xuICogdmVydGljZXMgaW4gYSBQYXJ0aWNsZUJ1ZmZlckdlb21ldHJ5LlxuICogVXNlcyBhIGR5bmFtaWMgdGV4dHVyZSBhdGxhcyB0byBzdXBwb3J0IHN5c3RlbXMgd2l0aCBtdXRsaXBsZSBzcHJpdGVzIGluIGEgcGVyZm9ybWFudCB3YXkuXG4gKlxuICogTk9URSEgVGhpcyBpcyBhbiBleHBlcmltZW50YWwgcmVuZGVyZXIgYW5kIGlzIGN1cnJlbnRseSBub3QgY292ZXJlZCBieSB0ZXN0cywgY292ZXJhZ2Ugd2lsbCBiZSBhZGRlZCB3aGVuIHRoZSBBUElcbiAqIGlzIG1vcmUgc3RhYmxlLiBDdXJyZW50bHkgb25seSBjb21wYXRpYmxlIHdpdGggc3ByaXRlL3RleHR1cmUgYmFzZWQgc3lzdGVtcy4gTWVzaGVzIGFyZSBub3QgeWV0IHN1cHBvcnRlZC5cbiAqXG4gKiBAYXV0aG9yIHRocmF4IDxtYW50aHJheEBnbWFpbC5jb20+XG4gKiBAYXV0aG9yIHJvaGFuLWRlc2hwYW5kZSA8cm9oYW5AY3JlYXRpdmVsaWZlZm9ybS5jb20+XG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEdQVVJlbmRlcmVyIGV4dGVuZHMgQmFzZVJlbmRlcmVyIHtcbiAgY29uc3RydWN0b3IoY29udGFpbmVyLCBUSFJFRSwgb3B0aW9ucyA9IERFRkFVTFRfUkVOREVSRVJfT1BUSU9OUykge1xuICAgIHN1cGVyKFJFTkRFUkVSX1RZUEVfR1BVKTtcblxuICAgIGNvbnN0IHsgc2hvdWxkRm9yY2VEZXNrdG9wUmVuZGVyZXIsIHNob3VsZEZvcmNlTW9iaWxlUmVuZGVyZXIgfSA9IG9wdGlvbnM7XG4gICAgY29uc3QgYXJncyA9IFtjb250YWluZXIsIFRIUkVFLCBvcHRpb25zXTtcblxuICAgIGlmIChzaG91bGRGb3JjZURlc2t0b3BSZW5kZXJlcikge1xuICAgICAgcmV0dXJuIG5ldyBEZXNrdG9wR1BVUmVuZGVyZXIoLi4uYXJncyk7XG4gICAgfVxuXG4gICAgaWYgKHNob3VsZEZvcmNlTW9iaWxlUmVuZGVyZXIpIHtcbiAgICAgIHJldHVybiBuZXcgTW9iaWxlR1BVUmVuZGVyZXIoLi4uYXJncyk7XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLmlzRmxvYXRpbmdQb2ludFRleHR1cmVTdXBwb3J0ZWQoKSkge1xuICAgICAgcmV0dXJuIG5ldyBNb2JpbGVHUFVSZW5kZXJlciguLi5hcmdzKTtcbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IERlc2t0b3BHUFVSZW5kZXJlciguLi5hcmdzKTtcbiAgfVxuXG4gIGlzRmxvYXRpbmdQb2ludFRleHR1cmVTdXBwb3J0ZWQoKSB7XG4gICAgY29uc3QgY2FudmFzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnY2FudmFzJyk7XG5cbiAgICBpZiAod2luZG93LldlYkdMMlJlbmRlcmluZ0NvbnRleHQgJiYgY2FudmFzLmdldENvbnRleHQoJ3dlYmdsMicpKSB7XG4gICAgICAvLyByZXR1cm4gZmFsc2UgaGVyZSB0byB0ZXN0IHRoZSBtb2JpbGUgcmVuZGVyZXIgb24gZGVza3RvcFxuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgY29uc3QgZ2wgPSBjYW52YXMuZ2V0Q29udGV4dCgnd2ViZ2wnKTtcbiAgICBjb25zdCBzdXBwb3J0ID0gISFnbC5nZXRFeHRlbnNpb24oJ09FU190ZXh0dXJlX2Zsb2F0Jyk7XG5cbiAgICBjYW52YXMucmVtb3ZlKCk7XG5cbiAgICByZXR1cm4gc3VwcG9ydDtcbiAgfVxufVxuIl19 ================================================ FILE: packages/sdk/lib/core/libs/three-nebula/renderer/MeshRenderer.js ================================================ import BaseRenderer from './BaseRenderer'; import { PUID } from '../utils'; import { Pool } from '../core'; import { RENDERER_TYPE_MESH as type } from './types'; /** * @requires THREE - { Mesh, BoxGeometry, MeshLambertMaterial } */ export default class MeshRenderer extends BaseRenderer { /** * @param {object} container - An Object3D container, usually a THREE.Scene * @param {object} THREE - THREE Api */ constructor(container, THREE) { super(type); this.container = container; this._targetPool = new Pool(); this._materialPool = new Pool(); this._body = new THREE.Mesh(new THREE.BoxGeometry(50, 50, 50), new THREE.MeshLambertMaterial({ color: '#ff0000' })); } isThreeSprite(particle) { return particle.target.isSprite; } onSystemUpdate() {} onParticleCreated(particle) { if (!particle.target) { //set target if (!particle.body) particle.body = this._body; particle.target = this._targetPool.get(particle.body); //set material if (particle.useAlpha || particle.useColor) { particle.target.material.__puid = PUID.id(particle.body.material); particle.target.material = this._materialPool.get(particle.target.material); } } if (particle.target) { particle.target.position.copy(particle.position); this.container.add(particle.target); } } onParticleUpdate(particle) { const { target, useAlpha, useColor } = particle; if (!target) { return; } target.position.copy(particle.position); this.rotate(particle); this.scale(particle); if (useAlpha) { target.material.opacity = particle.alpha; target.material.transparent = true; } if (useColor) { target.material.color.copy(particle.color); } } rotate(particle) { particle.target.rotation.set(particle.rotation.x, particle.rotation.y, particle.rotation.z); } scale(particle) { particle.target.scale.set(particle.scale, particle.scale, particle.scale); } onParticleDead(particle) { if (particle.target) { if (particle.useAlpha || particle.useColor) this._materialPool.expire(particle.target.material); this._targetPool.expire(particle.target); this.container.remove(particle.target); particle.target = null; } } } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9yZW5kZXJlci9NZXNoUmVuZGVyZXIuanMiXSwibmFtZXMiOlsiQmFzZVJlbmRlcmVyIiwiUFVJRCIsIlBvb2wiLCJSRU5ERVJFUl9UWVBFX01FU0giLCJ0eXBlIiwiTWVzaFJlbmRlcmVyIiwiY29uc3RydWN0b3IiLCJjb250YWluZXIiLCJUSFJFRSIsIl90YXJnZXRQb29sIiwiX21hdGVyaWFsUG9vbCIsIl9ib2R5IiwiTWVzaCIsIkJveEdlb21ldHJ5IiwiTWVzaExhbWJlcnRNYXRlcmlhbCIsImNvbG9yIiwiaXNUaHJlZVNwcml0ZSIsInBhcnRpY2xlIiwidGFyZ2V0IiwiaXNTcHJpdGUiLCJvblN5c3RlbVVwZGF0ZSIsIm9uUGFydGljbGVDcmVhdGVkIiwiYm9keSIsImdldCIsInVzZUFscGhhIiwidXNlQ29sb3IiLCJtYXRlcmlhbCIsIl9fcHVpZCIsImlkIiwicG9zaXRpb24iLCJjb3B5IiwiYWRkIiwib25QYXJ0aWNsZVVwZGF0ZSIsInJvdGF0ZSIsInNjYWxlIiwib3BhY2l0eSIsImFscGhhIiwidHJhbnNwYXJlbnQiLCJyb3RhdGlvbiIsInNldCIsIngiLCJ5IiwieiIsIm9uUGFydGljbGVEZWFkIiwiZXhwaXJlIiwicmVtb3ZlIl0sIm1hcHBpbmdzIjoiQUFBQSxPQUFPQSxZQUFQLE1BQXlCLGdCQUF6QjtBQUNBLFNBQVNDLElBQVQsUUFBcUIsVUFBckI7QUFDQSxTQUFTQyxJQUFULFFBQXFCLFNBQXJCO0FBQ0EsU0FBU0Msa0JBQWtCLElBQUlDLElBQS9CLFFBQTJDLFNBQTNDO0FBRUE7QUFDQTtBQUNBOztBQUNBLGVBQWUsTUFBTUMsWUFBTixTQUEyQkwsWUFBM0IsQ0FBd0M7QUFDckQ7QUFDRjtBQUNBO0FBQ0E7QUFDRU0sRUFBQUEsV0FBVyxDQUFDQyxTQUFELEVBQVlDLEtBQVosRUFBbUI7QUFDNUIsVUFBTUosSUFBTjtBQUVBLFNBQUtHLFNBQUwsR0FBaUJBLFNBQWpCO0FBQ0EsU0FBS0UsV0FBTCxHQUFtQixJQUFJUCxJQUFKLEVBQW5CO0FBQ0EsU0FBS1EsYUFBTCxHQUFxQixJQUFJUixJQUFKLEVBQXJCO0FBQ0EsU0FBS1MsS0FBTCxHQUFhLElBQUlILEtBQUssQ0FBQ0ksSUFBVixDQUNYLElBQUlKLEtBQUssQ0FBQ0ssV0FBVixDQUFzQixFQUF0QixFQUEwQixFQUExQixFQUE4QixFQUE5QixDQURXLEVBRVgsSUFBSUwsS0FBSyxDQUFDTSxtQkFBVixDQUE4QjtBQUFFQyxNQUFBQSxLQUFLLEVBQUU7QUFBVCxLQUE5QixDQUZXLENBQWI7QUFJRDs7QUFFREMsRUFBQUEsYUFBYSxDQUFDQyxRQUFELEVBQVc7QUFDdEIsV0FBT0EsUUFBUSxDQUFDQyxNQUFULENBQWdCQyxRQUF2QjtBQUNEOztBQUVEQyxFQUFBQSxjQUFjLEdBQUcsQ0FBRTs7QUFFbkJDLEVBQUFBLGlCQUFpQixDQUFDSixRQUFELEVBQVc7QUFDMUIsUUFBSSxDQUFDQSxRQUFRLENBQUNDLE1BQWQsRUFBc0I7QUFDcEI7QUFDQSxVQUFJLENBQUNELFFBQVEsQ0FBQ0ssSUFBZCxFQUFvQkwsUUFBUSxDQUFDSyxJQUFULEdBQWdCLEtBQUtYLEtBQXJCO0FBQ3BCTSxNQUFBQSxRQUFRLENBQUNDLE1BQVQsR0FBa0IsS0FBS1QsV0FBTCxDQUFpQmMsR0FBakIsQ0FBcUJOLFFBQVEsQ0FBQ0ssSUFBOUIsQ0FBbEIsQ0FIb0IsQ0FLcEI7O0FBQ0EsVUFBSUwsUUFBUSxDQUFDTyxRQUFULElBQXFCUCxRQUFRLENBQUNRLFFBQWxDLEVBQTRDO0FBQzFDUixRQUFBQSxRQUFRLENBQUNDLE1BQVQsQ0FBZ0JRLFFBQWhCLENBQXlCQyxNQUF6QixHQUFrQzFCLElBQUksQ0FBQzJCLEVBQUwsQ0FBUVgsUUFBUSxDQUFDSyxJQUFULENBQWNJLFFBQXRCLENBQWxDO0FBQ0FULFFBQUFBLFFBQVEsQ0FBQ0MsTUFBVCxDQUFnQlEsUUFBaEIsR0FBMkIsS0FBS2hCLGFBQUwsQ0FBbUJhLEdBQW5CLENBQ3pCTixRQUFRLENBQUNDLE1BQVQsQ0FBZ0JRLFFBRFMsQ0FBM0I7QUFHRDtBQUNGOztBQUVELFFBQUlULFFBQVEsQ0FBQ0MsTUFBYixFQUFxQjtBQUNuQkQsTUFBQUEsUUFBUSxDQUFDQyxNQUFULENBQWdCVyxRQUFoQixDQUF5QkMsSUFBekIsQ0FBOEJiLFFBQVEsQ0FBQ1ksUUFBdkM7QUFDQSxXQUFLdEIsU0FBTCxDQUFld0IsR0FBZixDQUFtQmQsUUFBUSxDQUFDQyxNQUE1QjtBQUNEO0FBQ0Y7O0FBRURjLEVBQUFBLGdCQUFnQixDQUFDZixRQUFELEVBQVc7QUFDekIsVUFBTTtBQUFFQyxNQUFBQSxNQUFGO0FBQVVNLE1BQUFBLFFBQVY7QUFBb0JDLE1BQUFBO0FBQXBCLFFBQWlDUixRQUF2Qzs7QUFFQSxRQUFJLENBQUNDLE1BQUwsRUFBYTtBQUNYO0FBQ0Q7O0FBRURBLElBQUFBLE1BQU0sQ0FBQ1csUUFBUCxDQUFnQkMsSUFBaEIsQ0FBcUJiLFFBQVEsQ0FBQ1ksUUFBOUI7QUFFQSxTQUFLSSxNQUFMLENBQVloQixRQUFaO0FBRUEsU0FBS2lCLEtBQUwsQ0FBV2pCLFFBQVg7O0FBRUEsUUFBSU8sUUFBSixFQUFjO0FBQ1pOLE1BQUFBLE1BQU0sQ0FBQ1EsUUFBUCxDQUFnQlMsT0FBaEIsR0FBMEJsQixRQUFRLENBQUNtQixLQUFuQztBQUNBbEIsTUFBQUEsTUFBTSxDQUFDUSxRQUFQLENBQWdCVyxXQUFoQixHQUE4QixJQUE5QjtBQUNEOztBQUVELFFBQUlaLFFBQUosRUFBYztBQUNaUCxNQUFBQSxNQUFNLENBQUNRLFFBQVAsQ0FBZ0JYLEtBQWhCLENBQXNCZSxJQUF0QixDQUEyQmIsUUFBUSxDQUFDRixLQUFwQztBQUNEO0FBQ0Y7O0FBRURrQixFQUFBQSxNQUFNLENBQUNoQixRQUFELEVBQVc7QUFDZkEsSUFBQUEsUUFBUSxDQUFDQyxNQUFULENBQWdCb0IsUUFBaEIsQ0FBeUJDLEdBQXpCLENBQTZCdEIsUUFBUSxDQUFDcUIsUUFBVCxDQUFrQkUsQ0FBL0MsRUFBa0R2QixRQUFRLENBQUNxQixRQUFULENBQWtCRyxDQUFwRSxFQUF1RXhCLFFBQVEsQ0FBQ3FCLFFBQVQsQ0FBa0JJLENBQXpGO0FBQ0Q7O0FBRURSLEVBQUFBLEtBQUssQ0FBQ2pCLFFBQUQsRUFBVztBQUNkQSxJQUFBQSxRQUFRLENBQUNDLE1BQVQsQ0FBZ0JnQixLQUFoQixDQUFzQkssR0FBdEIsQ0FBMEJ0QixRQUFRLENBQUNpQixLQUFuQyxFQUEwQ2pCLFFBQVEsQ0FBQ2lCLEtBQW5ELEVBQTBEakIsUUFBUSxDQUFDaUIsS0FBbkU7QUFDRDs7QUFFRFMsRUFBQUEsY0FBYyxDQUFDMUIsUUFBRCxFQUFXO0FBQ3ZCLFFBQUlBLFFBQVEsQ0FBQ0MsTUFBYixFQUFxQjtBQUNuQixVQUFJRCxRQUFRLENBQUNPLFFBQVQsSUFBcUJQLFFBQVEsQ0FBQ1EsUUFBbEMsRUFDRSxLQUFLZixhQUFMLENBQW1Ca0MsTUFBbkIsQ0FBMEIzQixRQUFRLENBQUNDLE1BQVQsQ0FBZ0JRLFFBQTFDOztBQUVGLFdBQUtqQixXQUFMLENBQWlCbUMsTUFBakIsQ0FBd0IzQixRQUFRLENBQUNDLE1BQWpDOztBQUNBLFdBQUtYLFNBQUwsQ0FBZXNDLE1BQWYsQ0FBc0I1QixRQUFRLENBQUNDLE1BQS9CO0FBQ0FELE1BQUFBLFFBQVEsQ0FBQ0MsTUFBVCxHQUFrQixJQUFsQjtBQUNEO0FBQ0Y7O0FBcEZvRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBCYXNlUmVuZGVyZXIgZnJvbSAnLi9CYXNlUmVuZGVyZXInO1xuaW1wb3J0IHsgUFVJRCB9IGZyb20gJy4uL3V0aWxzJztcbmltcG9ydCB7IFBvb2wgfSBmcm9tICcuLi9jb3JlJztcbmltcG9ydCB7IFJFTkRFUkVSX1RZUEVfTUVTSCBhcyB0eXBlIH0gZnJvbSAnLi90eXBlcyc7XG5cbi8qKlxuICogQHJlcXVpcmVzIFRIUkVFIC0geyBNZXNoLCBCb3hHZW9tZXRyeSwgTWVzaExhbWJlcnRNYXRlcmlhbCB9XG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIE1lc2hSZW5kZXJlciBleHRlbmRzIEJhc2VSZW5kZXJlciB7XG4gIC8qKlxuICAgKiBAcGFyYW0ge29iamVjdH0gY29udGFpbmVyIC0gQW4gT2JqZWN0M0QgY29udGFpbmVyLCB1c3VhbGx5IGEgVEhSRUUuU2NlbmVcbiAgICogQHBhcmFtIHtvYmplY3R9IFRIUkVFIC0gVEhSRUUgQXBpXG4gICAqL1xuICBjb25zdHJ1Y3Rvcihjb250YWluZXIsIFRIUkVFKSB7XG4gICAgc3VwZXIodHlwZSk7XG5cbiAgICB0aGlzLmNvbnRhaW5lciA9IGNvbnRhaW5lcjtcbiAgICB0aGlzLl90YXJnZXRQb29sID0gbmV3IFBvb2woKTtcbiAgICB0aGlzLl9tYXRlcmlhbFBvb2wgPSBuZXcgUG9vbCgpO1xuICAgIHRoaXMuX2JvZHkgPSBuZXcgVEhSRUUuTWVzaChcbiAgICAgIG5ldyBUSFJFRS5Cb3hHZW9tZXRyeSg1MCwgNTAsIDUwKSxcbiAgICAgIG5ldyBUSFJFRS5NZXNoTGFtYmVydE1hdGVyaWFsKHsgY29sb3I6ICcjZmYwMDAwJyB9KVxuICAgICk7XG4gIH1cblxuICBpc1RocmVlU3ByaXRlKHBhcnRpY2xlKSB7XG4gICAgcmV0dXJuIHBhcnRpY2xlLnRhcmdldC5pc1Nwcml0ZTtcbiAgfVxuXG4gIG9uU3lzdGVtVXBkYXRlKCkge31cblxuICBvblBhcnRpY2xlQ3JlYXRlZChwYXJ0aWNsZSkge1xuICAgIGlmICghcGFydGljbGUudGFyZ2V0KSB7XG4gICAgICAvL3NldCB0YXJnZXRcbiAgICAgIGlmICghcGFydGljbGUuYm9keSkgcGFydGljbGUuYm9keSA9IHRoaXMuX2JvZHk7XG4gICAgICBwYXJ0aWNsZS50YXJnZXQgPSB0aGlzLl90YXJnZXRQb29sLmdldChwYXJ0aWNsZS5ib2R5KTtcblxuICAgICAgLy9zZXQgbWF0ZXJpYWxcbiAgICAgIGlmIChwYXJ0aWNsZS51c2VBbHBoYSB8fCBwYXJ0aWNsZS51c2VDb2xvcikge1xuICAgICAgICBwYXJ0aWNsZS50YXJnZXQubWF0ZXJpYWwuX19wdWlkID0gUFVJRC5pZChwYXJ0aWNsZS5ib2R5Lm1hdGVyaWFsKTtcbiAgICAgICAgcGFydGljbGUudGFyZ2V0Lm1hdGVyaWFsID0gdGhpcy5fbWF0ZXJpYWxQb29sLmdldChcbiAgICAgICAgICBwYXJ0aWNsZS50YXJnZXQubWF0ZXJpYWxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAocGFydGljbGUudGFyZ2V0KSB7XG4gICAgICBwYXJ0aWNsZS50YXJnZXQucG9zaXRpb24uY29weShwYXJ0aWNsZS5wb3NpdGlvbik7XG4gICAgICB0aGlzLmNvbnRhaW5lci5hZGQocGFydGljbGUudGFyZ2V0KTtcbiAgICB9XG4gIH1cblxuICBvblBhcnRpY2xlVXBkYXRlKHBhcnRpY2xlKSB7XG4gICAgY29uc3QgeyB0YXJnZXQsIHVzZUFscGhhLCB1c2VDb2xvciB9ID0gcGFydGljbGU7XG5cbiAgICBpZiAoIXRhcmdldCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRhcmdldC5wb3NpdGlvbi5jb3B5KHBhcnRpY2xlLnBvc2l0aW9uKTtcblxuICAgIHRoaXMucm90YXRlKHBhcnRpY2xlKTtcblxuICAgIHRoaXMuc2NhbGUocGFydGljbGUpO1xuXG4gICAgaWYgKHVzZUFscGhhKSB7XG4gICAgICB0YXJnZXQubWF0ZXJpYWwub3BhY2l0eSA9IHBhcnRpY2xlLmFscGhhO1xuICAgICAgdGFyZ2V0Lm1hdGVyaWFsLnRyYW5zcGFyZW50ID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBpZiAodXNlQ29sb3IpIHtcbiAgICAgIHRhcmdldC5tYXRlcmlhbC5jb2xvci5jb3B5KHBhcnRpY2xlLmNvbG9yKTtcbiAgICB9XG4gIH1cblxuICByb3RhdGUocGFydGljbGUpIHtcbiAgICBwYXJ0aWNsZS50YXJnZXQucm90YXRpb24uc2V0KHBhcnRpY2xlLnJvdGF0aW9uLngsIHBhcnRpY2xlLnJvdGF0aW9uLnksIHBhcnRpY2xlLnJvdGF0aW9uLnopO1xuICB9XG5cbiAgc2NhbGUocGFydGljbGUpIHtcbiAgICBwYXJ0aWNsZS50YXJnZXQuc2NhbGUuc2V0KHBhcnRpY2xlLnNjYWxlLCBwYXJ0aWNsZS5zY2FsZSwgcGFydGljbGUuc2NhbGUpO1xuICB9XG5cbiAgb25QYXJ0aWNsZURlYWQocGFydGljbGUpIHtcbiAgICBpZiAocGFydGljbGUudGFyZ2V0KSB7XG4gICAgICBpZiAocGFydGljbGUudXNlQWxwaGEgfHwgcGFydGljbGUudXNlQ29sb3IpXG4gICAgICAgIHRoaXMuX21hdGVyaWFsUG9vbC5leHBpcmUocGFydGljbGUudGFyZ2V0Lm1hdGVyaWFsKTtcblxuICAgICAgdGhpcy5fdGFyZ2V0UG9vbC5leHBpcmUocGFydGljbGUudGFyZ2V0KTtcbiAgICAgIHRoaXMuY29udGFpbmVyLnJlbW92ZShwYXJ0aWNsZS50YXJnZXQpO1xuICAgICAgcGFydGljbGUudGFyZ2V0ID0gbnVsbDtcbiAgICB9XG4gIH1cbn1cbiJdfQ== ================================================ FILE: packages/sdk/lib/core/libs/three-nebula/renderer/SpriteRenderer.js ================================================ import MeshRenderer from './MeshRenderer'; import { RENDERER_TYPE_SPRITE as type } from './types'; /** * @requires THREE - { Mesh, BoxGeometry, MeshLambertMaterial, Sprite, SpriteMaterial } */ export default class SpriteRenderer extends MeshRenderer { constructor(container, THREE) { super(container, THREE); /** * @desc The class type. * @type {string} */ this.type = type; this._body = new THREE.Sprite(new THREE.SpriteMaterial({ color: 0xffffff })); } rotate(particle) { particle.target.material.rotation = particle.rotation.z; } scale(particle) { particle.target.scale.set(particle.scale * particle.radius, particle.scale * particle.radius, 1); } } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9yZW5kZXJlci9TcHJpdGVSZW5kZXJlci5qcyJdLCJuYW1lcyI6WyJNZXNoUmVuZGVyZXIiLCJSRU5ERVJFUl9UWVBFX1NQUklURSIsInR5cGUiLCJTcHJpdGVSZW5kZXJlciIsImNvbnN0cnVjdG9yIiwiY29udGFpbmVyIiwiVEhSRUUiLCJfYm9keSIsIlNwcml0ZSIsIlNwcml0ZU1hdGVyaWFsIiwiY29sb3IiLCJyb3RhdGUiLCJwYXJ0aWNsZSIsInRhcmdldCIsIm1hdGVyaWFsIiwicm90YXRpb24iLCJ6Iiwic2NhbGUiLCJzZXQiLCJyYWRpdXMiXSwibWFwcGluZ3MiOiJBQUFBLE9BQU9BLFlBQVAsTUFBeUIsZ0JBQXpCO0FBQ0EsU0FBU0Msb0JBQW9CLElBQUlDLElBQWpDLFFBQTZDLFNBQTdDO0FBRUE7QUFDQTtBQUNBOztBQUNBLGVBQWUsTUFBTUMsY0FBTixTQUE2QkgsWUFBN0IsQ0FBMEM7QUFDdkRJLEVBQUFBLFdBQVcsQ0FBQ0MsU0FBRCxFQUFZQyxLQUFaLEVBQW1CO0FBQzVCLFVBQU1ELFNBQU4sRUFBaUJDLEtBQWpCO0FBRUE7QUFDSjtBQUNBO0FBQ0E7O0FBQ0ksU0FBS0osSUFBTCxHQUFZQSxJQUFaO0FBQ0EsU0FBS0ssS0FBTCxHQUFhLElBQUlELEtBQUssQ0FBQ0UsTUFBVixDQUNYLElBQUlGLEtBQUssQ0FBQ0csY0FBVixDQUF5QjtBQUFFQyxNQUFBQSxLQUFLLEVBQUU7QUFBVCxLQUF6QixDQURXLENBQWI7QUFHRDs7QUFFREMsRUFBQUEsTUFBTSxDQUFDQyxRQUFELEVBQVc7QUFDZkEsSUFBQUEsUUFBUSxDQUFDQyxNQUFULENBQWdCQyxRQUFoQixDQUF5QkMsUUFBekIsR0FBb0NILFFBQVEsQ0FBQ0csUUFBVCxDQUFrQkMsQ0FBdEQ7QUFDRDs7QUFFREMsRUFBQUEsS0FBSyxDQUFDTCxRQUFELEVBQVc7QUFDZEEsSUFBQUEsUUFBUSxDQUFDQyxNQUFULENBQWdCSSxLQUFoQixDQUFzQkMsR0FBdEIsQ0FDRU4sUUFBUSxDQUFDSyxLQUFULEdBQWlCTCxRQUFRLENBQUNPLE1BRDVCLEVBRUVQLFFBQVEsQ0FBQ0ssS0FBVCxHQUFpQkwsUUFBUSxDQUFDTyxNQUY1QixFQUdFLENBSEY7QUFLRDs7QUF4QnNEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IE1lc2hSZW5kZXJlciBmcm9tICcuL01lc2hSZW5kZXJlcic7XG5pbXBvcnQgeyBSRU5ERVJFUl9UWVBFX1NQUklURSBhcyB0eXBlIH0gZnJvbSAnLi90eXBlcyc7XG5cbi8qKlxuICogQHJlcXVpcmVzIFRIUkVFIC0geyBNZXNoLCBCb3hHZW9tZXRyeSwgTWVzaExhbWJlcnRNYXRlcmlhbCwgU3ByaXRlLCBTcHJpdGVNYXRlcmlhbCB9XG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFNwcml0ZVJlbmRlcmVyIGV4dGVuZHMgTWVzaFJlbmRlcmVyIHtcbiAgY29uc3RydWN0b3IoY29udGFpbmVyLCBUSFJFRSkge1xuICAgIHN1cGVyKGNvbnRhaW5lciwgVEhSRUUpO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2MgVGhlIGNsYXNzIHR5cGUuXG4gICAgICogQHR5cGUge3N0cmluZ31cbiAgICAgKi9cbiAgICB0aGlzLnR5cGUgPSB0eXBlO1xuICAgIHRoaXMuX2JvZHkgPSBuZXcgVEhSRUUuU3ByaXRlKFxuICAgICAgbmV3IFRIUkVFLlNwcml0ZU1hdGVyaWFsKHsgY29sb3I6IDB4ZmZmZmZmIH0pXG4gICAgKTtcbiAgfVxuXG4gIHJvdGF0ZShwYXJ0aWNsZSkge1xuICAgIHBhcnRpY2xlLnRhcmdldC5tYXRlcmlhbC5yb3RhdGlvbiA9IHBhcnRpY2xlLnJvdGF0aW9uLno7XG4gIH1cblxuICBzY2FsZShwYXJ0aWNsZSkge1xuICAgIHBhcnRpY2xlLnRhcmdldC5zY2FsZS5zZXQoXG4gICAgICBwYXJ0aWNsZS5zY2FsZSAqIHBhcnRpY2xlLnJhZGl1cyxcbiAgICAgIHBhcnRpY2xlLnNjYWxlICogcGFydGljbGUucmFkaXVzLFxuICAgICAgMVxuICAgICk7XG4gIH1cbn1cbiJdfQ== ================================================ FILE: packages/sdk/lib/core/libs/three-nebula/renderer/index.js ================================================ export { default as CustomRenderer } from './CustomRenderer'; export { default as MeshRenderer } from './MeshRenderer'; export { default as SpriteRenderer } from './SpriteRenderer'; export { default as GPURenderer } from './GPURenderer'; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9yZW5kZXJlci9pbmRleC5qcyJdLCJuYW1lcyI6WyJkZWZhdWx0IiwiQ3VzdG9tUmVuZGVyZXIiLCJNZXNoUmVuZGVyZXIiLCJTcHJpdGVSZW5kZXJlciIsIkdQVVJlbmRlcmVyIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUFTQSxPQUFPLElBQUlDLGNBQXBCLFFBQTBDLGtCQUExQztBQUNBLFNBQVNELE9BQU8sSUFBSUUsWUFBcEIsUUFBd0MsZ0JBQXhDO0FBQ0EsU0FBU0YsT0FBTyxJQUFJRyxjQUFwQixRQUEwQyxrQkFBMUM7QUFDQSxTQUFTSCxPQUFPLElBQUlJLFdBQXBCLFFBQXVDLGVBQXZDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgZGVmYXVsdCBhcyBDdXN0b21SZW5kZXJlciB9IGZyb20gJy4vQ3VzdG9tUmVuZGVyZXInO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBNZXNoUmVuZGVyZXIgfSBmcm9tICcuL01lc2hSZW5kZXJlcic7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFNwcml0ZVJlbmRlcmVyIH0gZnJvbSAnLi9TcHJpdGVSZW5kZXJlcic7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEdQVVJlbmRlcmVyIH0gZnJvbSAnLi9HUFVSZW5kZXJlcic7XG4iXX0= ================================================ FILE: packages/sdk/lib/core/libs/three-nebula/renderer/types.js ================================================ export const RENDERER_TYPE_BASE = 'BaseRenderer'; export const RENDERER_TYPE_CUSTOM = 'CustomRenderer'; export const RENDERER_TYPE_SPRITE = 'SpriteRenderer'; export const RENDERER_TYPE_MESH = 'MeshRenderer'; export const RENDERER_TYPE_GPU = 'GPURenderer'; export const RENDERER_TYPE_GPU_MOBILE = 'MobileGPURenderer'; export const RENDERER_TYPE_GPU_DESKTOP = 'DesktopGPURenderer'; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9yZW5kZXJlci90eXBlcy5qcyJdLCJuYW1lcyI6WyJSRU5ERVJFUl9UWVBFX0JBU0UiLCJSRU5ERVJFUl9UWVBFX0NVU1RPTSIsIlJFTkRFUkVSX1RZUEVfU1BSSVRFIiwiUkVOREVSRVJfVFlQRV9NRVNIIiwiUkVOREVSRVJfVFlQRV9HUFUiLCJSRU5ERVJFUl9UWVBFX0dQVV9NT0JJTEUiLCJSRU5ERVJFUl9UWVBFX0dQVV9ERVNLVE9QIl0sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLE1BQU1BLGtCQUFrQixHQUFHLGNBQTNCO0FBQ1AsT0FBTyxNQUFNQyxvQkFBb0IsR0FBRyxnQkFBN0I7QUFDUCxPQUFPLE1BQU1DLG9CQUFvQixHQUFHLGdCQUE3QjtBQUNQLE9BQU8sTUFBTUMsa0JBQWtCLEdBQUcsY0FBM0I7QUFDUCxPQUFPLE1BQU1DLGlCQUFpQixHQUFHLGFBQTFCO0FBQ1AsT0FBTyxNQUFNQyx3QkFBd0IsR0FBRyxtQkFBakM7QUFDUCxPQUFPLE1BQU1DLHlCQUF5QixHQUFHLG9CQUFsQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBSRU5ERVJFUl9UWVBFX0JBU0UgPSAnQmFzZVJlbmRlcmVyJztcbmV4cG9ydCBjb25zdCBSRU5ERVJFUl9UWVBFX0NVU1RPTSA9ICdDdXN0b21SZW5kZXJlcic7XG5leHBvcnQgY29uc3QgUkVOREVSRVJfVFlQRV9TUFJJVEUgPSAnU3ByaXRlUmVuZGVyZXInO1xuZXhwb3J0IGNvbnN0IFJFTkRFUkVSX1RZUEVfTUVTSCA9ICdNZXNoUmVuZGVyZXInO1xuZXhwb3J0IGNvbnN0IFJFTkRFUkVSX1RZUEVfR1BVID0gJ0dQVVJlbmRlcmVyJztcbmV4cG9ydCBjb25zdCBSRU5ERVJFUl9UWVBFX0dQVV9NT0JJTEUgPSAnTW9iaWxlR1BVUmVuZGVyZXInO1xuZXhwb3J0IGNvbnN0IFJFTkRFUkVSX1RZUEVfR1BVX0RFU0tUT1AgPSAnRGVza3RvcEdQVVJlbmRlcmVyJztcbiJdfQ== ================================================ FILE: packages/sdk/lib/core/libs/three-nebula/utils/ColorUtil.js ================================================ export default { getRGB: function (color) { var rgb = {}; if (typeof color === 'number') { hex = Math.floor(color); rgb.r = (color >> 16 & 255) / 255; rgb.g = (color >> 8 & 255) / 255; rgb.b = (color & 255) / 255; } else if (typeof color === 'string') { var m; if (m = /^(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(,\s*([0-9]*\.?[0-9]+)\s*)?$/.exec(color)) { rgb.r = Math.min(255, parseInt(m[1], 10)) / 255; rgb.g = Math.min(255, parseInt(m[2], 10)) / 255; rgb.b = Math.min(255, parseInt(m[3], 10)) / 255; // eslint-disable-next-line no-useless-escape } else if (m = /^\#([A-Fa-f0-9]+)$/.exec(color)) { var hex = m[1]; rgb.r = parseInt(hex.charAt(0) + hex.charAt(1), 16) / 255; rgb.g = parseInt(hex.charAt(2) + hex.charAt(3), 16) / 255; rgb.b = parseInt(hex.charAt(4) + hex.charAt(5), 16) / 255; } } else { rgb.r = color.r; rgb.g = color.g; rgb.b = color.b; } return rgb; } }; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy91dGlscy9Db2xvclV0aWwuanMiXSwibmFtZXMiOlsiZ2V0UkdCIiwiY29sb3IiLCJyZ2IiLCJoZXgiLCJNYXRoIiwiZmxvb3IiLCJyIiwiZyIsImIiLCJtIiwiZXhlYyIsIm1pbiIsInBhcnNlSW50IiwiY2hhckF0Il0sIm1hcHBpbmdzIjoiQUFBQSxlQUFlO0FBQ2JBLEVBQUFBLE1BQU0sRUFBRSxVQUFTQyxLQUFULEVBQWdCO0FBQ3RCLFFBQUlDLEdBQUcsR0FBRyxFQUFWOztBQUVBLFFBQUksT0FBT0QsS0FBUCxLQUFpQixRQUFyQixFQUErQjtBQUM3QkUsTUFBQUEsR0FBRyxHQUFHQyxJQUFJLENBQUNDLEtBQUwsQ0FBV0osS0FBWCxDQUFOO0FBQ0FDLE1BQUFBLEdBQUcsQ0FBQ0ksQ0FBSixHQUFRLENBQUVMLEtBQUssSUFBSSxFQUFWLEdBQWdCLEdBQWpCLElBQXdCLEdBQWhDO0FBQ0FDLE1BQUFBLEdBQUcsQ0FBQ0ssQ0FBSixHQUFRLENBQUVOLEtBQUssSUFBSSxDQUFWLEdBQWUsR0FBaEIsSUFBdUIsR0FBL0I7QUFDQUMsTUFBQUEsR0FBRyxDQUFDTSxDQUFKLEdBQVEsQ0FBQ1AsS0FBSyxHQUFHLEdBQVQsSUFBZ0IsR0FBeEI7QUFDRCxLQUxELE1BS08sSUFBSSxPQUFPQSxLQUFQLEtBQWlCLFFBQXJCLEVBQStCO0FBQ3BDLFVBQUlRLENBQUo7O0FBRUEsVUFDR0EsQ0FBQyxHQUFHLGdFQUFnRUMsSUFBaEUsQ0FDSFQsS0FERyxDQURQLEVBSUU7QUFDQUMsUUFBQUEsR0FBRyxDQUFDSSxDQUFKLEdBQVFGLElBQUksQ0FBQ08sR0FBTCxDQUFTLEdBQVQsRUFBY0MsUUFBUSxDQUFDSCxDQUFDLENBQUMsQ0FBRCxDQUFGLEVBQU8sRUFBUCxDQUF0QixJQUFvQyxHQUE1QztBQUNBUCxRQUFBQSxHQUFHLENBQUNLLENBQUosR0FBUUgsSUFBSSxDQUFDTyxHQUFMLENBQVMsR0FBVCxFQUFjQyxRQUFRLENBQUNILENBQUMsQ0FBQyxDQUFELENBQUYsRUFBTyxFQUFQLENBQXRCLElBQW9DLEdBQTVDO0FBQ0FQLFFBQUFBLEdBQUcsQ0FBQ00sQ0FBSixHQUFRSixJQUFJLENBQUNPLEdBQUwsQ0FBUyxHQUFULEVBQWNDLFFBQVEsQ0FBQ0gsQ0FBQyxDQUFDLENBQUQsQ0FBRixFQUFPLEVBQVAsQ0FBdEIsSUFBb0MsR0FBNUMsQ0FIQSxDQUlBO0FBQ0QsT0FURCxNQVNPLElBQUtBLENBQUMsR0FBRyxxQkFBcUJDLElBQXJCLENBQTBCVCxLQUExQixDQUFULEVBQTRDO0FBQ2pELFlBQUlFLEdBQUcsR0FBR00sQ0FBQyxDQUFDLENBQUQsQ0FBWDtBQUVBUCxRQUFBQSxHQUFHLENBQUNJLENBQUosR0FBUU0sUUFBUSxDQUFDVCxHQUFHLENBQUNVLE1BQUosQ0FBVyxDQUFYLElBQWdCVixHQUFHLENBQUNVLE1BQUosQ0FBVyxDQUFYLENBQWpCLEVBQWdDLEVBQWhDLENBQVIsR0FBOEMsR0FBdEQ7QUFDQVgsUUFBQUEsR0FBRyxDQUFDSyxDQUFKLEdBQVFLLFFBQVEsQ0FBQ1QsR0FBRyxDQUFDVSxNQUFKLENBQVcsQ0FBWCxJQUFnQlYsR0FBRyxDQUFDVSxNQUFKLENBQVcsQ0FBWCxDQUFqQixFQUFnQyxFQUFoQyxDQUFSLEdBQThDLEdBQXREO0FBQ0FYLFFBQUFBLEdBQUcsQ0FBQ00sQ0FBSixHQUFRSSxRQUFRLENBQUNULEdBQUcsQ0FBQ1UsTUFBSixDQUFXLENBQVgsSUFBZ0JWLEdBQUcsQ0FBQ1UsTUFBSixDQUFXLENBQVgsQ0FBakIsRUFBZ0MsRUFBaEMsQ0FBUixHQUE4QyxHQUF0RDtBQUNEO0FBQ0YsS0FuQk0sTUFtQkE7QUFDTFgsTUFBQUEsR0FBRyxDQUFDSSxDQUFKLEdBQVFMLEtBQUssQ0FBQ0ssQ0FBZDtBQUNBSixNQUFBQSxHQUFHLENBQUNLLENBQUosR0FBUU4sS0FBSyxDQUFDTSxDQUFkO0FBQ0FMLE1BQUFBLEdBQUcsQ0FBQ00sQ0FBSixHQUFRUCxLQUFLLENBQUNPLENBQWQ7QUFDRDs7QUFFRCxXQUFPTixHQUFQO0FBQ0Q7QUFuQ1ksQ0FBZiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBkZWZhdWx0IHtcbiAgZ2V0UkdCOiBmdW5jdGlvbihjb2xvcikge1xuICAgIHZhciByZ2IgPSB7fTtcblxuICAgIGlmICh0eXBlb2YgY29sb3IgPT09ICdudW1iZXInKSB7XG4gICAgICBoZXggPSBNYXRoLmZsb29yKGNvbG9yKTtcbiAgICAgIHJnYi5yID0gKChjb2xvciA+PiAxNikgJiAyNTUpIC8gMjU1O1xuICAgICAgcmdiLmcgPSAoKGNvbG9yID4+IDgpICYgMjU1KSAvIDI1NTtcbiAgICAgIHJnYi5iID0gKGNvbG9yICYgMjU1KSAvIDI1NTtcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiBjb2xvciA9PT0gJ3N0cmluZycpIHtcbiAgICAgIHZhciBtO1xuXG4gICAgICBpZiAoXG4gICAgICAgIChtID0gL14oXFxkKylcXHMqLFxccyooXFxkKylcXHMqLFxccyooXFxkKylcXHMqKCxcXHMqKFswLTldKlxcLj9bMC05XSspXFxzKik/JC8uZXhlYyhcbiAgICAgICAgICBjb2xvclxuICAgICAgICApKVxuICAgICAgKSB7XG4gICAgICAgIHJnYi5yID0gTWF0aC5taW4oMjU1LCBwYXJzZUludChtWzFdLCAxMCkpIC8gMjU1O1xuICAgICAgICByZ2IuZyA9IE1hdGgubWluKDI1NSwgcGFyc2VJbnQobVsyXSwgMTApKSAvIDI1NTtcbiAgICAgICAgcmdiLmIgPSBNYXRoLm1pbigyNTUsIHBhcnNlSW50KG1bM10sIDEwKSkgLyAyNTU7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11c2VsZXNzLWVzY2FwZVxuICAgICAgfSBlbHNlIGlmICgobSA9IC9eXFwjKFtBLUZhLWYwLTldKykkLy5leGVjKGNvbG9yKSkpIHtcbiAgICAgICAgdmFyIGhleCA9IG1bMV07XG5cbiAgICAgICAgcmdiLnIgPSBwYXJzZUludChoZXguY2hhckF0KDApICsgaGV4LmNoYXJBdCgxKSwgMTYpIC8gMjU1O1xuICAgICAgICByZ2IuZyA9IHBhcnNlSW50KGhleC5jaGFyQXQoMikgKyBoZXguY2hhckF0KDMpLCAxNikgLyAyNTU7XG4gICAgICAgIHJnYi5iID0gcGFyc2VJbnQoaGV4LmNoYXJBdCg0KSArIGhleC5jaGFyQXQoNSksIDE2KSAvIDI1NTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgcmdiLnIgPSBjb2xvci5yO1xuICAgICAgcmdiLmcgPSBjb2xvci5nO1xuICAgICAgcmdiLmIgPSBjb2xvci5iO1xuICAgIH1cblxuICAgIHJldHVybiByZ2I7XG4gIH0sXG59O1xuIl19 ================================================ FILE: packages/sdk/lib/core/libs/three-nebula/utils/PUID.js ================================================ export default { _id: 0, _uids: new Map(), getNewId: function () { return `PUID_${++this._id}`; }, id: function (functionOrObject) { if (this._uids.has(functionOrObject)) { return this._uids.get(functionOrObject); } const newId = this.getNewId(); this._uids.set(functionOrObject, newId); return newId; } }; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy91dGlscy9QVUlELmpzIl0sIm5hbWVzIjpbIl9pZCIsIl91aWRzIiwiTWFwIiwiZ2V0TmV3SWQiLCJpZCIsImZ1bmN0aW9uT3JPYmplY3QiLCJoYXMiLCJnZXQiLCJuZXdJZCIsInNldCJdLCJtYXBwaW5ncyI6IkFBQUEsZUFBZTtBQUNiQSxFQUFBQSxHQUFHLEVBQUUsQ0FEUTtBQUViQyxFQUFBQSxLQUFLLEVBQUUsSUFBSUMsR0FBSixFQUZNO0FBR2JDLEVBQUFBLFFBQVEsRUFBRSxZQUFXO0FBQ25CLFdBQVEsUUFBTyxFQUFFLEtBQUtILEdBQUksRUFBMUI7QUFDRCxHQUxZO0FBTWJJLEVBQUFBLEVBQUUsRUFBRSxVQUFTQyxnQkFBVCxFQUEyQjtBQUM3QixRQUFJLEtBQUtKLEtBQUwsQ0FBV0ssR0FBWCxDQUFlRCxnQkFBZixDQUFKLEVBQXNDO0FBQ3BDLGFBQU8sS0FBS0osS0FBTCxDQUFXTSxHQUFYLENBQWVGLGdCQUFmLENBQVA7QUFDRDs7QUFFRCxVQUFNRyxLQUFLLEdBQUcsS0FBS0wsUUFBTCxFQUFkOztBQUVBLFNBQUtGLEtBQUwsQ0FBV1EsR0FBWCxDQUFlSixnQkFBZixFQUFpQ0csS0FBakM7O0FBRUEsV0FBT0EsS0FBUDtBQUNEO0FBaEJZLENBQWYiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZGVmYXVsdCB7XG4gIF9pZDogMCxcbiAgX3VpZHM6IG5ldyBNYXAoKSxcbiAgZ2V0TmV3SWQ6IGZ1bmN0aW9uKCkge1xuICAgIHJldHVybiBgUFVJRF8keysrdGhpcy5faWR9YDtcbiAgfSxcbiAgaWQ6IGZ1bmN0aW9uKGZ1bmN0aW9uT3JPYmplY3QpIHtcbiAgICBpZiAodGhpcy5fdWlkcy5oYXMoZnVuY3Rpb25Pck9iamVjdCkpIHtcbiAgICAgIHJldHVybiB0aGlzLl91aWRzLmdldChmdW5jdGlvbk9yT2JqZWN0KTtcbiAgICB9XG5cbiAgICBjb25zdCBuZXdJZCA9IHRoaXMuZ2V0TmV3SWQoKTtcblxuICAgIHRoaXMuX3VpZHMuc2V0KGZ1bmN0aW9uT3JPYmplY3QsIG5ld0lkKTtcblxuICAgIHJldHVybiBuZXdJZDtcbiAgfSxcbn07XG4iXX0= ================================================ FILE: packages/sdk/lib/core/libs/three-nebula/utils/THREEUtil.js ================================================ import { Vector3 } from '../core/three/'; export default { toScreenPos: function () { var vector = new Vector3(); return function (pos, camera, canvas) { vector.copy(pos); // map to normalized device coordinate (NDC) space vector.project(camera); // map to 2D screen space vector.x = Math.round((vector.x + 1) * canvas.width / 2); vector.y = Math.round((-vector.y + 1) * canvas.height / 2); vector.z = 0; return vector; }; }(), toSpacePos: function () { var vector = new Vector3(), dir = new Vector3(), distance; return function (pos, camera, canvas) { vector.set(pos.x / canvas.width * 2 - 1, -(pos.y / canvas.height) * 2 + 1, 0.5); vector.unproject(camera); dir.copy(vector.sub(camera.position).normalize()); distance = -camera.position.z / dir.z; vector.copy(camera.position); vector.add(dir.multiplyScalar(distance)); return vector; }; }() }; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy91dGlscy9USFJFRVV0aWwuanMiXSwibmFtZXMiOlsiVmVjdG9yMyIsInRvU2NyZWVuUG9zIiwidmVjdG9yIiwicG9zIiwiY2FtZXJhIiwiY2FudmFzIiwiY29weSIsInByb2plY3QiLCJ4IiwiTWF0aCIsInJvdW5kIiwid2lkdGgiLCJ5IiwiaGVpZ2h0IiwieiIsInRvU3BhY2VQb3MiLCJkaXIiLCJkaXN0YW5jZSIsInNldCIsInVucHJvamVjdCIsInN1YiIsInBvc2l0aW9uIiwibm9ybWFsaXplIiwiYWRkIiwibXVsdGlwbHlTY2FsYXIiXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLE9BQVQsUUFBd0IsZ0JBQXhCO0FBRUEsZUFBZTtBQUNiQyxFQUFBQSxXQUFXLEVBQUcsWUFBVztBQUN2QixRQUFJQyxNQUFNLEdBQUcsSUFBSUYsT0FBSixFQUFiO0FBRUEsV0FBTyxVQUFTRyxHQUFULEVBQWNDLE1BQWQsRUFBc0JDLE1BQXRCLEVBQThCO0FBQ25DSCxNQUFBQSxNQUFNLENBQUNJLElBQVAsQ0FBWUgsR0FBWixFQURtQyxDQUVuQzs7QUFDQUQsTUFBQUEsTUFBTSxDQUFDSyxPQUFQLENBQWVILE1BQWYsRUFIbUMsQ0FJbkM7O0FBQ0FGLE1BQUFBLE1BQU0sQ0FBQ00sQ0FBUCxHQUFXQyxJQUFJLENBQUNDLEtBQUwsQ0FBWSxDQUFDUixNQUFNLENBQUNNLENBQVAsR0FBVyxDQUFaLElBQWlCSCxNQUFNLENBQUNNLEtBQXpCLEdBQWtDLENBQTdDLENBQVg7QUFDQVQsTUFBQUEsTUFBTSxDQUFDVSxDQUFQLEdBQVdILElBQUksQ0FBQ0MsS0FBTCxDQUFZLENBQUMsQ0FBQ1IsTUFBTSxDQUFDVSxDQUFSLEdBQVksQ0FBYixJQUFrQlAsTUFBTSxDQUFDUSxNQUExQixHQUFvQyxDQUEvQyxDQUFYO0FBQ0FYLE1BQUFBLE1BQU0sQ0FBQ1ksQ0FBUCxHQUFXLENBQVg7QUFFQSxhQUFPWixNQUFQO0FBQ0QsS0FWRDtBQVdELEdBZFksRUFEQTtBQWlCYmEsRUFBQUEsVUFBVSxFQUFHLFlBQVc7QUFDdEIsUUFBSWIsTUFBTSxHQUFHLElBQUlGLE9BQUosRUFBYjtBQUFBLFFBQ0VnQixHQUFHLEdBQUcsSUFBSWhCLE9BQUosRUFEUjtBQUFBLFFBRUVpQixRQUZGO0FBSUEsV0FBTyxVQUFTZCxHQUFULEVBQWNDLE1BQWQsRUFBc0JDLE1BQXRCLEVBQThCO0FBQ25DSCxNQUFBQSxNQUFNLENBQUNnQixHQUFQLENBQ0dmLEdBQUcsQ0FBQ0ssQ0FBSixHQUFRSCxNQUFNLENBQUNNLEtBQWhCLEdBQXlCLENBQXpCLEdBQTZCLENBRC9CLEVBRUUsRUFBRVIsR0FBRyxDQUFDUyxDQUFKLEdBQVFQLE1BQU0sQ0FBQ1EsTUFBakIsSUFBMkIsQ0FBM0IsR0FBK0IsQ0FGakMsRUFHRSxHQUhGO0FBS0FYLE1BQUFBLE1BQU0sQ0FBQ2lCLFNBQVAsQ0FBaUJmLE1BQWpCO0FBRUFZLE1BQUFBLEdBQUcsQ0FBQ1YsSUFBSixDQUFTSixNQUFNLENBQUNrQixHQUFQLENBQVdoQixNQUFNLENBQUNpQixRQUFsQixFQUE0QkMsU0FBNUIsRUFBVDtBQUNBTCxNQUFBQSxRQUFRLEdBQUcsQ0FBQ2IsTUFBTSxDQUFDaUIsUUFBUCxDQUFnQlAsQ0FBakIsR0FBcUJFLEdBQUcsQ0FBQ0YsQ0FBcEM7QUFDQVosTUFBQUEsTUFBTSxDQUFDSSxJQUFQLENBQVlGLE1BQU0sQ0FBQ2lCLFFBQW5CO0FBQ0FuQixNQUFBQSxNQUFNLENBQUNxQixHQUFQLENBQVdQLEdBQUcsQ0FBQ1EsY0FBSixDQUFtQlAsUUFBbkIsQ0FBWDtBQUVBLGFBQU9mLE1BQVA7QUFDRCxLQWREO0FBZUQsR0FwQlc7QUFqQkMsQ0FBZiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFZlY3RvcjMgfSBmcm9tICcuLi9jb3JlL3RocmVlLyc7XG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgdG9TY3JlZW5Qb3M6IChmdW5jdGlvbigpIHtcbiAgICB2YXIgdmVjdG9yID0gbmV3IFZlY3RvcjMoKTtcblxuICAgIHJldHVybiBmdW5jdGlvbihwb3MsIGNhbWVyYSwgY2FudmFzKSB7XG4gICAgICB2ZWN0b3IuY29weShwb3MpO1xuICAgICAgLy8gbWFwIHRvIG5vcm1hbGl6ZWQgZGV2aWNlIGNvb3JkaW5hdGUgKE5EQykgc3BhY2VcbiAgICAgIHZlY3Rvci5wcm9qZWN0KGNhbWVyYSk7XG4gICAgICAvLyBtYXAgdG8gMkQgc2NyZWVuIHNwYWNlXG4gICAgICB2ZWN0b3IueCA9IE1hdGgucm91bmQoKCh2ZWN0b3IueCArIDEpICogY2FudmFzLndpZHRoKSAvIDIpO1xuICAgICAgdmVjdG9yLnkgPSBNYXRoLnJvdW5kKCgoLXZlY3Rvci55ICsgMSkgKiBjYW52YXMuaGVpZ2h0KSAvIDIpO1xuICAgICAgdmVjdG9yLnogPSAwO1xuXG4gICAgICByZXR1cm4gdmVjdG9yO1xuICAgIH07XG4gIH0pKCksXG5cbiAgdG9TcGFjZVBvczogKGZ1bmN0aW9uKCkge1xuICAgIHZhciB2ZWN0b3IgPSBuZXcgVmVjdG9yMygpLFxuICAgICAgZGlyID0gbmV3IFZlY3RvcjMoKSxcbiAgICAgIGRpc3RhbmNlO1xuXG4gICAgcmV0dXJuIGZ1bmN0aW9uKHBvcywgY2FtZXJhLCBjYW52YXMpIHtcbiAgICAgIHZlY3Rvci5zZXQoXG4gICAgICAgIChwb3MueCAvIGNhbnZhcy53aWR0aCkgKiAyIC0gMSxcbiAgICAgICAgLShwb3MueSAvIGNhbnZhcy5oZWlnaHQpICogMiArIDEsXG4gICAgICAgIDAuNVxuICAgICAgKTtcbiAgICAgIHZlY3Rvci51bnByb2plY3QoY2FtZXJhKTtcblxuICAgICAgZGlyLmNvcHkodmVjdG9yLnN1YihjYW1lcmEucG9zaXRpb24pLm5vcm1hbGl6ZSgpKTtcbiAgICAgIGRpc3RhbmNlID0gLWNhbWVyYS5wb3NpdGlvbi56IC8gZGlyLno7XG4gICAgICB2ZWN0b3IuY29weShjYW1lcmEucG9zaXRpb24pO1xuICAgICAgdmVjdG9yLmFkZChkaXIubXVsdGlwbHlTY2FsYXIoZGlzdGFuY2UpKTtcblxuICAgICAgcmV0dXJuIHZlY3RvcjtcbiAgICB9O1xuICB9KSgpLFxufTtcbiJdfQ== ================================================ FILE: packages/sdk/lib/core/libs/three-nebula/utils/Util.js ================================================ export default { initValue: function (value, defaults) { var _value = value != null && value != undefined ? value : defaults; return _value; }, isArray: function (value) { return Object.prototype.toString.call(value) === '[object Array]'; }, destroyArray: function (array) { array.length = 0; }, destroyObject: function (obj) { for (var o in obj) delete obj[o]; }, isUndefined: function () { for (var id in arguments) { var arg = arguments[id]; if (arg !== undefined) return false; } return true; }, setVectorByObj: function (target, pOBJ) { if (pOBJ['x'] !== undefined) target.position.x = pOBJ['x']; if (pOBJ['y'] !== undefined) target.position.y = pOBJ['y']; if (pOBJ['z'] !== undefined) target.position.z = pOBJ['z']; if (pOBJ['vx'] !== undefined) target.velocity.x = pOBJ['vx']; if (pOBJ['vy'] !== undefined) target.velocity.y = pOBJ['vy']; if (pOBJ['vz'] !== undefined) target.velocity.z = pOBJ['vz']; if (pOBJ['ax'] !== undefined) target.acceleration.x = pOBJ['ax']; if (pOBJ['ay'] !== undefined) target.acceleration.y = pOBJ['ay']; if (pOBJ['az'] !== undefined) target.acceleration.z = pOBJ['az']; if (pOBJ['p'] !== undefined) target.position.copy(pOBJ['p']); if (pOBJ['v'] !== undefined) target.velocity.copy(pOBJ['v']); if (pOBJ['a'] !== undefined) target.acceleration.copy(pOBJ['a']); if (pOBJ['position'] !== undefined) target.position.copy(pOBJ['position']); if (pOBJ['velocity'] !== undefined) target.velocity.copy(pOBJ['velocity']); if (pOBJ['accelerate'] !== undefined) target.acceleration.copy(pOBJ['accelerate']); }, //set prototype setPrototypeByObj: function (target, proObj, filters) { for (var key in proObj) { // eslint-disable-next-line no-prototype-builtins if (target.hasOwnProperty(key)) { if (filters) { if (filters.indexOf(key) < 0) target[key] = this._getValue(proObj[key]); } else { target[key] = this._getValue(proObj[key]); } } } return target; }, _getValue: function (pan) { if (pan?.constructor?.type === 'Span') return pan.getValue();else return pan; } }; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy91dGlscy9VdGlsLmpzIl0sIm5hbWVzIjpbImluaXRWYWx1ZSIsInZhbHVlIiwiZGVmYXVsdHMiLCJfdmFsdWUiLCJ1bmRlZmluZWQiLCJpc0FycmF5IiwiT2JqZWN0IiwicHJvdG90eXBlIiwidG9TdHJpbmciLCJjYWxsIiwiZGVzdHJveUFycmF5IiwiYXJyYXkiLCJsZW5ndGgiLCJkZXN0cm95T2JqZWN0Iiwib2JqIiwibyIsImlzVW5kZWZpbmVkIiwiaWQiLCJhcmd1bWVudHMiLCJhcmciLCJzZXRWZWN0b3JCeU9iaiIsInRhcmdldCIsInBPQkoiLCJwb3NpdGlvbiIsIngiLCJ5IiwieiIsInZlbG9jaXR5IiwiYWNjZWxlcmF0aW9uIiwiY29weSIsInNldFByb3RvdHlwZUJ5T2JqIiwicHJvT2JqIiwiZmlsdGVycyIsImtleSIsImhhc093blByb3BlcnR5IiwiaW5kZXhPZiIsIl9nZXRWYWx1ZSIsInBhbiIsImNvbnN0cnVjdG9yIiwidHlwZSIsImdldFZhbHVlIl0sIm1hcHBpbmdzIjoiQUFBQSxlQUFlO0FBQ2JBLEVBQUFBLFNBQVMsRUFBRSxVQUFTQyxLQUFULEVBQWdCQyxRQUFoQixFQUEwQjtBQUNuQyxRQUFJQyxNQUFNLEdBQUdGLEtBQUssSUFBSSxJQUFULElBQWlCQSxLQUFLLElBQUlHLFNBQTFCLEdBQXNDSCxLQUF0QyxHQUE4Q0MsUUFBM0Q7O0FBRUEsV0FBT0MsTUFBUDtBQUNELEdBTFk7QUFPYkUsRUFBQUEsT0FBTyxFQUFFLFVBQVNKLEtBQVQsRUFBZ0I7QUFDdkIsV0FBT0ssTUFBTSxDQUFDQyxTQUFQLENBQWlCQyxRQUFqQixDQUEwQkMsSUFBMUIsQ0FBK0JSLEtBQS9CLE1BQTBDLGdCQUFqRDtBQUNELEdBVFk7QUFXYlMsRUFBQUEsWUFBWSxFQUFFLFVBQVNDLEtBQVQsRUFBZ0I7QUFDNUJBLElBQUFBLEtBQUssQ0FBQ0MsTUFBTixHQUFlLENBQWY7QUFDRCxHQWJZO0FBZWJDLEVBQUFBLGFBQWEsRUFBRSxVQUFTQyxHQUFULEVBQWM7QUFDM0IsU0FBSyxJQUFJQyxDQUFULElBQWNELEdBQWQsRUFBbUIsT0FBT0EsR0FBRyxDQUFDQyxDQUFELENBQVY7QUFDcEIsR0FqQlk7QUFtQmJDLEVBQUFBLFdBQVcsRUFBRSxZQUFXO0FBQ3RCLFNBQUssSUFBSUMsRUFBVCxJQUFlQyxTQUFmLEVBQTBCO0FBQ3hCLFVBQUlDLEdBQUcsR0FBR0QsU0FBUyxDQUFDRCxFQUFELENBQW5CO0FBRUEsVUFBSUUsR0FBRyxLQUFLZixTQUFaLEVBQXVCLE9BQU8sS0FBUDtBQUN4Qjs7QUFFRCxXQUFPLElBQVA7QUFDRCxHQTNCWTtBQTZCYmdCLEVBQUFBLGNBQWMsRUFBRSxVQUFTQyxNQUFULEVBQWlCQyxJQUFqQixFQUF1QjtBQUNyQyxRQUFJQSxJQUFJLENBQUMsR0FBRCxDQUFKLEtBQWNsQixTQUFsQixFQUE2QmlCLE1BQU0sQ0FBQ0UsUUFBUCxDQUFnQkMsQ0FBaEIsR0FBb0JGLElBQUksQ0FBQyxHQUFELENBQXhCO0FBQzdCLFFBQUlBLElBQUksQ0FBQyxHQUFELENBQUosS0FBY2xCLFNBQWxCLEVBQTZCaUIsTUFBTSxDQUFDRSxRQUFQLENBQWdCRSxDQUFoQixHQUFvQkgsSUFBSSxDQUFDLEdBQUQsQ0FBeEI7QUFDN0IsUUFBSUEsSUFBSSxDQUFDLEdBQUQsQ0FBSixLQUFjbEIsU0FBbEIsRUFBNkJpQixNQUFNLENBQUNFLFFBQVAsQ0FBZ0JHLENBQWhCLEdBQW9CSixJQUFJLENBQUMsR0FBRCxDQUF4QjtBQUU3QixRQUFJQSxJQUFJLENBQUMsSUFBRCxDQUFKLEtBQWVsQixTQUFuQixFQUE4QmlCLE1BQU0sQ0FBQ00sUUFBUCxDQUFnQkgsQ0FBaEIsR0FBb0JGLElBQUksQ0FBQyxJQUFELENBQXhCO0FBQzlCLFFBQUlBLElBQUksQ0FBQyxJQUFELENBQUosS0FBZWxCLFNBQW5CLEVBQThCaUIsTUFBTSxDQUFDTSxRQUFQLENBQWdCRixDQUFoQixHQUFvQkgsSUFBSSxDQUFDLElBQUQsQ0FBeEI7QUFDOUIsUUFBSUEsSUFBSSxDQUFDLElBQUQsQ0FBSixLQUFlbEIsU0FBbkIsRUFBOEJpQixNQUFNLENBQUNNLFFBQVAsQ0FBZ0JELENBQWhCLEdBQW9CSixJQUFJLENBQUMsSUFBRCxDQUF4QjtBQUU5QixRQUFJQSxJQUFJLENBQUMsSUFBRCxDQUFKLEtBQWVsQixTQUFuQixFQUE4QmlCLE1BQU0sQ0FBQ08sWUFBUCxDQUFvQkosQ0FBcEIsR0FBd0JGLElBQUksQ0FBQyxJQUFELENBQTVCO0FBQzlCLFFBQUlBLElBQUksQ0FBQyxJQUFELENBQUosS0FBZWxCLFNBQW5CLEVBQThCaUIsTUFBTSxDQUFDTyxZQUFQLENBQW9CSCxDQUFwQixHQUF3QkgsSUFBSSxDQUFDLElBQUQsQ0FBNUI7QUFDOUIsUUFBSUEsSUFBSSxDQUFDLElBQUQsQ0FBSixLQUFlbEIsU0FBbkIsRUFBOEJpQixNQUFNLENBQUNPLFlBQVAsQ0FBb0JGLENBQXBCLEdBQXdCSixJQUFJLENBQUMsSUFBRCxDQUE1QjtBQUU5QixRQUFJQSxJQUFJLENBQUMsR0FBRCxDQUFKLEtBQWNsQixTQUFsQixFQUE2QmlCLE1BQU0sQ0FBQ0UsUUFBUCxDQUFnQk0sSUFBaEIsQ0FBcUJQLElBQUksQ0FBQyxHQUFELENBQXpCO0FBQzdCLFFBQUlBLElBQUksQ0FBQyxHQUFELENBQUosS0FBY2xCLFNBQWxCLEVBQTZCaUIsTUFBTSxDQUFDTSxRQUFQLENBQWdCRSxJQUFoQixDQUFxQlAsSUFBSSxDQUFDLEdBQUQsQ0FBekI7QUFDN0IsUUFBSUEsSUFBSSxDQUFDLEdBQUQsQ0FBSixLQUFjbEIsU0FBbEIsRUFBNkJpQixNQUFNLENBQUNPLFlBQVAsQ0FBb0JDLElBQXBCLENBQXlCUCxJQUFJLENBQUMsR0FBRCxDQUE3QjtBQUU3QixRQUFJQSxJQUFJLENBQUMsVUFBRCxDQUFKLEtBQXFCbEIsU0FBekIsRUFBb0NpQixNQUFNLENBQUNFLFFBQVAsQ0FBZ0JNLElBQWhCLENBQXFCUCxJQUFJLENBQUMsVUFBRCxDQUF6QjtBQUNwQyxRQUFJQSxJQUFJLENBQUMsVUFBRCxDQUFKLEtBQXFCbEIsU0FBekIsRUFBb0NpQixNQUFNLENBQUNNLFFBQVAsQ0FBZ0JFLElBQWhCLENBQXFCUCxJQUFJLENBQUMsVUFBRCxDQUF6QjtBQUNwQyxRQUFJQSxJQUFJLENBQUMsWUFBRCxDQUFKLEtBQXVCbEIsU0FBM0IsRUFDRWlCLE1BQU0sQ0FBQ08sWUFBUCxDQUFvQkMsSUFBcEIsQ0FBeUJQLElBQUksQ0FBQyxZQUFELENBQTdCO0FBQ0gsR0FsRFk7QUFvRGI7QUFDQVEsRUFBQUEsaUJBQWlCLEVBQUUsVUFBU1QsTUFBVCxFQUFpQlUsTUFBakIsRUFBeUJDLE9BQXpCLEVBQWtDO0FBQ25ELFNBQUssSUFBSUMsR0FBVCxJQUFnQkYsTUFBaEIsRUFBd0I7QUFDdEI7QUFDQSxVQUFJVixNQUFNLENBQUNhLGNBQVAsQ0FBc0JELEdBQXRCLENBQUosRUFBZ0M7QUFDOUIsWUFBSUQsT0FBSixFQUFhO0FBQ1gsY0FBSUEsT0FBTyxDQUFDRyxPQUFSLENBQWdCRixHQUFoQixJQUF1QixDQUEzQixFQUNFWixNQUFNLENBQUNZLEdBQUQsQ0FBTixHQUFjLEtBQUtHLFNBQUwsQ0FBZUwsTUFBTSxDQUFDRSxHQUFELENBQXJCLENBQWQ7QUFDSCxTQUhELE1BR087QUFDTFosVUFBQUEsTUFBTSxDQUFDWSxHQUFELENBQU4sR0FBYyxLQUFLRyxTQUFMLENBQWVMLE1BQU0sQ0FBQ0UsR0FBRCxDQUFyQixDQUFkO0FBQ0Q7QUFDRjtBQUNGOztBQUVELFdBQU9aLE1BQVA7QUFDRCxHQW5FWTtBQXFFYmUsRUFBQUEsU0FBUyxFQUFFLFVBQVNDLEdBQVQsRUFBYztBQUN2QixRQUFJQSxHQUFHLENBQUNDLFdBQUosQ0FBZ0JDLElBQWhCLEtBQXlCLE1BQTdCLEVBQXFDLE9BQU9GLEdBQUcsQ0FBQ0csUUFBSixFQUFQLENBQXJDLEtBQ0ssT0FBT0gsR0FBUDtBQUNOO0FBeEVZLENBQWYiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZGVmYXVsdCB7XG4gIGluaXRWYWx1ZTogZnVuY3Rpb24odmFsdWUsIGRlZmF1bHRzKSB7XG4gICAgdmFyIF92YWx1ZSA9IHZhbHVlICE9IG51bGwgJiYgdmFsdWUgIT0gdW5kZWZpbmVkID8gdmFsdWUgOiBkZWZhdWx0cztcblxuICAgIHJldHVybiBfdmFsdWU7XG4gIH0sXG5cbiAgaXNBcnJheTogZnVuY3Rpb24odmFsdWUpIHtcbiAgICByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHZhbHVlKSA9PT0gJ1tvYmplY3QgQXJyYXldJztcbiAgfSxcblxuICBkZXN0cm95QXJyYXk6IGZ1bmN0aW9uKGFycmF5KSB7XG4gICAgYXJyYXkubGVuZ3RoID0gMDtcbiAgfSxcblxuICBkZXN0cm95T2JqZWN0OiBmdW5jdGlvbihvYmopIHtcbiAgICBmb3IgKHZhciBvIGluIG9iaikgZGVsZXRlIG9ialtvXTtcbiAgfSxcblxuICBpc1VuZGVmaW5lZDogZnVuY3Rpb24oKSB7XG4gICAgZm9yICh2YXIgaWQgaW4gYXJndW1lbnRzKSB7XG4gICAgICB2YXIgYXJnID0gYXJndW1lbnRzW2lkXTtcblxuICAgICAgaWYgKGFyZyAhPT0gdW5kZWZpbmVkKSByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRydWU7XG4gIH0sXG5cbiAgc2V0VmVjdG9yQnlPYmo6IGZ1bmN0aW9uKHRhcmdldCwgcE9CSikge1xuICAgIGlmIChwT0JKWyd4J10gIT09IHVuZGVmaW5lZCkgdGFyZ2V0LnBvc2l0aW9uLnggPSBwT0JKWyd4J107XG4gICAgaWYgKHBPQkpbJ3knXSAhPT0gdW5kZWZpbmVkKSB0YXJnZXQucG9zaXRpb24ueSA9IHBPQkpbJ3knXTtcbiAgICBpZiAocE9CSlsneiddICE9PSB1bmRlZmluZWQpIHRhcmdldC5wb3NpdGlvbi56ID0gcE9CSlsneiddO1xuXG4gICAgaWYgKHBPQkpbJ3Z4J10gIT09IHVuZGVmaW5lZCkgdGFyZ2V0LnZlbG9jaXR5LnggPSBwT0JKWyd2eCddO1xuICAgIGlmIChwT0JKWyd2eSddICE9PSB1bmRlZmluZWQpIHRhcmdldC52ZWxvY2l0eS55ID0gcE9CSlsndnknXTtcbiAgICBpZiAocE9CSlsndnonXSAhPT0gdW5kZWZpbmVkKSB0YXJnZXQudmVsb2NpdHkueiA9IHBPQkpbJ3Z6J107XG5cbiAgICBpZiAocE9CSlsnYXgnXSAhPT0gdW5kZWZpbmVkKSB0YXJnZXQuYWNjZWxlcmF0aW9uLnggPSBwT0JKWydheCddO1xuICAgIGlmIChwT0JKWydheSddICE9PSB1bmRlZmluZWQpIHRhcmdldC5hY2NlbGVyYXRpb24ueSA9IHBPQkpbJ2F5J107XG4gICAgaWYgKHBPQkpbJ2F6J10gIT09IHVuZGVmaW5lZCkgdGFyZ2V0LmFjY2VsZXJhdGlvbi56ID0gcE9CSlsnYXonXTtcblxuICAgIGlmIChwT0JKWydwJ10gIT09IHVuZGVmaW5lZCkgdGFyZ2V0LnBvc2l0aW9uLmNvcHkocE9CSlsncCddKTtcbiAgICBpZiAocE9CSlsndiddICE9PSB1bmRlZmluZWQpIHRhcmdldC52ZWxvY2l0eS5jb3B5KHBPQkpbJ3YnXSk7XG4gICAgaWYgKHBPQkpbJ2EnXSAhPT0gdW5kZWZpbmVkKSB0YXJnZXQuYWNjZWxlcmF0aW9uLmNvcHkocE9CSlsnYSddKTtcblxuICAgIGlmIChwT0JKWydwb3NpdGlvbiddICE9PSB1bmRlZmluZWQpIHRhcmdldC5wb3NpdGlvbi5jb3B5KHBPQkpbJ3Bvc2l0aW9uJ10pO1xuICAgIGlmIChwT0JKWyd2ZWxvY2l0eSddICE9PSB1bmRlZmluZWQpIHRhcmdldC52ZWxvY2l0eS5jb3B5KHBPQkpbJ3ZlbG9jaXR5J10pO1xuICAgIGlmIChwT0JKWydhY2NlbGVyYXRlJ10gIT09IHVuZGVmaW5lZClcbiAgICAgIHRhcmdldC5hY2NlbGVyYXRpb24uY29weShwT0JKWydhY2NlbGVyYXRlJ10pO1xuICB9LFxuXG4gIC8vc2V0IHByb3RvdHlwZVxuICBzZXRQcm90b3R5cGVCeU9iajogZnVuY3Rpb24odGFyZ2V0LCBwcm9PYmosIGZpbHRlcnMpIHtcbiAgICBmb3IgKHZhciBrZXkgaW4gcHJvT2JqKSB7XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcHJvdG90eXBlLWJ1aWx0aW5zXG4gICAgICBpZiAodGFyZ2V0Lmhhc093blByb3BlcnR5KGtleSkpIHtcbiAgICAgICAgaWYgKGZpbHRlcnMpIHtcbiAgICAgICAgICBpZiAoZmlsdGVycy5pbmRleE9mKGtleSkgPCAwKVxuICAgICAgICAgICAgdGFyZ2V0W2tleV0gPSB0aGlzLl9nZXRWYWx1ZShwcm9PYmpba2V5XSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGFyZ2V0W2tleV0gPSB0aGlzLl9nZXRWYWx1ZShwcm9PYmpba2V5XSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdGFyZ2V0O1xuICB9LFxuXG4gIF9nZXRWYWx1ZTogZnVuY3Rpb24ocGFuKSB7XG4gICAgaWYgKHBhbi5jb25zdHJ1Y3Rvci50eXBlID09PSAnU3BhbicpIHJldHVybiBwYW4uZ2V0VmFsdWUoKTtcbiAgICBlbHNlIHJldHVybiBwYW47XG4gIH0sXG59O1xuIl19 ================================================ FILE: packages/sdk/lib/core/libs/three-nebula/utils/index.js ================================================ import _defineProperty from "@babel/runtime/helpers/defineProperty"; function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; } function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } export { default as ColorUtil } from './ColorUtil'; export { default as PUID } from './PUID'; export { default as THREEUtil } from './THREEUtil'; export { default as Util } from './Util'; export { default as uid } from './uid'; export const withDefaults = (defaults, properties) => _objectSpread(_objectSpread({}, defaults), properties); //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy91dGlscy9pbmRleC5qcyJdLCJuYW1lcyI6WyJkZWZhdWx0IiwiQ29sb3JVdGlsIiwiUFVJRCIsIlRIUkVFVXRpbCIsIlV0aWwiLCJ1aWQiLCJ3aXRoRGVmYXVsdHMiLCJkZWZhdWx0cyIsInByb3BlcnRpZXMiXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLFNBQVNBLE9BQU8sSUFBSUMsU0FBcEIsUUFBcUMsYUFBckM7QUFDQSxTQUFTRCxPQUFPLElBQUlFLElBQXBCLFFBQWdDLFFBQWhDO0FBQ0EsU0FBU0YsT0FBTyxJQUFJRyxTQUFwQixRQUFxQyxhQUFyQztBQUNBLFNBQVNILE9BQU8sSUFBSUksSUFBcEIsUUFBZ0MsUUFBaEM7QUFDQSxTQUFTSixPQUFPLElBQUlLLEdBQXBCLFFBQStCLE9BQS9CO0FBRUEsT0FBTyxNQUFNQyxZQUFZLEdBQUcsQ0FBQ0MsUUFBRCxFQUFXQyxVQUFYLHFDQUN2QkQsUUFEdUIsR0FFdkJDLFVBRnVCLENBQXJCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgZGVmYXVsdCBhcyBDb2xvclV0aWwgfSBmcm9tICcuL0NvbG9yVXRpbCc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFBVSUQgfSBmcm9tICcuL1BVSUQnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBUSFJFRVV0aWwgfSBmcm9tICcuL1RIUkVFVXRpbCc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFV0aWwgfSBmcm9tICcuL1V0aWwnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyB1aWQgfSBmcm9tICcuL3VpZCc7XG5cbmV4cG9ydCBjb25zdCB3aXRoRGVmYXVsdHMgPSAoZGVmYXVsdHMsIHByb3BlcnRpZXMpID0+ICh7XG4gIC4uLmRlZmF1bHRzLFxuICAuLi5wcm9wZXJ0aWVzLFxufSk7XG4iXX0= ================================================ FILE: packages/sdk/lib/core/libs/three-nebula/utils/isNumber.js ================================================ let numberTag = '[object Number]'; let objectProto = Object.prototype; let objectToString = objectProto.toString; function isObjectLike(value) { return !!value && typeof value == 'object'; } function isNumber(value) { return typeof value == 'number' || (isObjectLike(value) && objectToString.call(value) == numberTag); } export default isNumber; ================================================ FILE: packages/sdk/lib/core/libs/three-nebula/utils/potpack.js ================================================ export default function potpack(boxes) { // calculate total box area and maximum box width let area = 0; let maxWidth = 0; for (const box of boxes) { area += box.w * box.h; maxWidth = Math.max(maxWidth, box.w); } // sort the boxes for insertion by height, descending boxes.sort((a, b) => b.h - a.h); // aim for a squarish resulting container, // slightly adjusted for sub-100% space utilization const startWidth = Math.max(Math.ceil(Math.sqrt(area / 0.95)), maxWidth); // start with a single empty space, unbounded at the bottom const spaces = [{x: 0, y: 0, w: startWidth, h: Infinity}]; let width = 0; let height = 0; for (const box of boxes) { // look through spaces backwards so that we check smaller spaces first for (let i = spaces.length - 1; i >= 0; i--) { const space = spaces[i]; // look for empty spaces that can accommodate the current box if (box.w > space.w || box.h > space.h) continue; // found the space; add the box to its top-left corner // |-------|-------| // | box | | // |_______| | // | space | // |_______________| box.x = space.x; box.y = space.y; height = Math.max(height, box.y + box.h); width = Math.max(width, box.x + box.w); if (box.w === space.w && box.h === space.h) { // space matches the box exactly; remove it const last = spaces.pop(); if (i < spaces.length) spaces[i] = last; } else if (box.h === space.h) { // space matches the box height; update it accordingly // |-------|---------------| // | box | updated space | // |_______|_______________| space.x += box.w; space.w -= box.w; } else if (box.w === space.w) { // space matches the box width; update it accordingly // |---------------| // | box | // |_______________| // | updated space | // |_______________| space.y += box.h; space.h -= box.h; } else { // otherwise the box splits the space into two spaces // |-------|-----------| // | box | new space | // |_______|___________| // | updated space | // |___________________| spaces.push({ x: space.x + box.w, y: space.y, w: space.w - box.w, h: box.h }); space.y += box.h; space.h -= box.h; } break; } } return { w: width, // container width h: height, // container height fill: (area / (width * height)) || 0 // space utilization }; } ================================================ FILE: packages/sdk/lib/core/libs/three-nebula/utils/sample.js ================================================ let MAX_SAFE_INTEGER = 9007199254740991; let argsTag = '[object Arguments]', funcTag = '[object Function]', genTag = '[object GeneratorFunction]'; let reIsUint = /^(?:0|[1-9]\d*)$/; function arrayMap(array, iteratee) { let index = -1, length = array ? array.length : 0, result = Array(length); while (++index < length) { result[index] = iteratee(array[index], index, array); } return result; } function baseTimes(n, iteratee) { let index = -1, result = Array(n); while (++index < n) { result[index] = iteratee(index); } return result; } function baseValues(object, props) { return arrayMap(props, function(key) { return object[key]; }); } function overArg(func, transform) { return function(arg) { return func(transform(arg)); }; } let objectProto = Object.prototype; let hasOwnProperty = objectProto.hasOwnProperty; let objectToString = objectProto.toString; let propertyIsEnumerable = objectProto.propertyIsEnumerable; let nativeFloor = Math.floor, nativeKeys = overArg(Object.keys, Object), nativeRandom = Math.random; function arrayLikeKeys(value, inherited) { // Safari 8.1 makes `arguments.callee` enumerable in strict mode. // Safari 9 makes `arguments.length` enumerable in strict mode. let result = (isArray(value) || isArguments(value)) ? baseTimes(value.length, String) : []; let length = result.length, skipIndexes = !!length; for (let key in value) { if ((inherited || hasOwnProperty.call(value, key)) && !(skipIndexes && (key == 'length' || isIndex(key, length)))) { result.push(key); } } return result; } function baseKeys(object) { if (!isPrototype(object)) { return nativeKeys(object); } let result = []; for (let key in Object(object)) { if (hasOwnProperty.call(object, key) && key != 'constructor') { result.push(key); } } return result; } function baseRandom(lower, upper) { return lower + nativeFloor(nativeRandom() * (upper - lower + 1)); } function isIndex(value, length) { length = length == null ? MAX_SAFE_INTEGER : length; return !!length && (typeof value == 'number' || reIsUint.test(value)) && (value > -1 && value % 1 == 0 && value < length); } function isPrototype(value) { let Ctor = value && value.constructor, proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto; return value === proto; } function sample(collection) { let array = isArrayLike(collection) ? collection : values(collection), length = array.length; return length > 0 ? array[baseRandom(0, length - 1)] : undefined; } function isArguments(value) { // Safari 8.1 makes `arguments.callee` enumerable in strict mode. return isArrayLikeObject(value) && hasOwnProperty.call(value, 'callee') && (!propertyIsEnumerable.call(value, 'callee') || objectToString.call(value) == argsTag); } let isArray = Array.isArray; function isArrayLike(value) { return value != null && isLength(value.length) && !isFunction(value); } function isArrayLikeObject(value) { return isObjectLike(value) && isArrayLike(value); } function isFunction(value) { // The use of `Object#toString` avoids issues with the `typeof` operator // in Safari 8-9 which returns 'object' for typed array and other constructors. let tag = isObject(value) ? objectToString.call(value) : ''; return tag == funcTag || tag == genTag; } function isLength(value) { return typeof value == 'number' && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER; } function isObject(value) { let type = typeof value; return !!value && (type == 'object' || type == 'function'); } function isObjectLike(value) { return !!value && typeof value == 'object'; } function keys(object) { return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object); } function values(object) { return object ? baseValues(object, keys(object)) : []; } export default sample; ================================================ FILE: packages/sdk/lib/core/libs/three-nebula/utils/uid.js ================================================ import { _Math } from '../core/three/Math.js'; const uid = _Math.generateUUID; export default uid; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy91dGlscy91aWQuanMiXSwibmFtZXMiOlsidWlkIl0sIm1hcHBpbmdzIjoiQUFBQSxPQUFPQSxHQUFQLE1BQWdCLFNBQWhCO0FBRUEsZUFBZUEsR0FBZiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB1aWQgZnJvbSAndXVpZC92MSc7XG5cbmV4cG9ydCBkZWZhdWx0IHVpZDtcbiJdfQ== ================================================ FILE: packages/sdk/lib/core/libs/three-nebula/zone/BoxZone.js ================================================ import MathUtils from '../math/MathUtils'; import Util from '../utils/Util'; import Zone from './Zone'; import { ZONE_TYPE_BOX as type } from './types'; export default class BoxZone extends Zone { /** * BoxZone is a box zone * @param {Number|Vector3D} x - the position's x value or a Vector3D Object * @param {Number} y - the position's y value * @param {Number} z - the position's z value * @param {Number} w - the Box's width * @param {Number} h - the Box's height * @param {Number} d - the Box's depth * @example * var boxZone = new BoxZone(0,0,0,50,50,50); * or * var boxZone = new BoxZone(new Vector3D(0,0,0), 50, 50, 50); * @extends {Zone} * @constructor */ constructor(a, b, c, d, e, f) { super(type); // TODO this reassigning of arguments is pretty dangerous, need to fix it. // eslint-disable-next-line var x, y, z, w, h, d; if (Util.isUndefined(b, c, d, e, f)) { x = y = z = 0; w = h = d = a || 100; } else if (Util.isUndefined(d, e, f)) { x = y = z = 0; w = a; h = b; d = c; } else { x = a; y = b; z = c; w = d; h = e; d = f; } this.x = x; this.y = y; this.z = z; this.width = w; this.height = h; this.depth = d; // TODO Set this via an argument to the constructor this.friction = 0.85; // TODO Set this via an argument to the constructor this.max = 6; } /** * Returns true to indicate this is a BoxZone. * * @return {boolean} */ isBoxZone() { return true; } getPosition() { this.vector.x = this.x + MathUtils.randomAToB(-0.5, 0.5) * this.width; this.vector.y = this.y + MathUtils.randomAToB(-0.5, 0.5) * this.height; this.vector.z = this.z + MathUtils.randomAToB(-0.5, 0.5) * this.depth; return this.vector; } _dead(particle) { if (particle.position.x + particle.radius < this.x - this.width / 2) particle.dead = true;else if (particle.position.x - particle.radius > this.x + this.width / 2) particle.dead = true; if (particle.position.y + particle.radius < this.y - this.height / 2) particle.dead = true;else if (particle.position.y - particle.radius > this.y + this.height / 2) particle.dead = true; if (particle.position.z + particle.radius < this.z - this.depth / 2) particle.dead = true;else if (particle.position.z - particle.radius > this.z + this.depth / 2) particle.dead = true; } _bound(particle) { if (particle.position.x - particle.radius < this.x - this.width / 2) { particle.position.x = this.x - this.width / 2 + particle.radius; particle.velocity.x *= -this.friction; this._static(particle, 'x'); } else if (particle.position.x + particle.radius > this.x + this.width / 2) { particle.position.x = this.x + this.width / 2 - particle.radius; particle.velocity.x *= -this.friction; this._static(particle, 'x'); } if (particle.position.y - particle.radius < this.y - this.height / 2) { particle.position.y = this.y - this.height / 2 + particle.radius; particle.velocity.y *= -this.friction; this._static(particle, 'y'); } else if (particle.position.y + particle.radius > this.y + this.height / 2) { particle.position.y = this.y + this.height / 2 - particle.radius; particle.velocity.y *= -this.friction; this._static(particle, 'y'); } if (particle.position.z - particle.radius < this.z - this.depth / 2) { particle.position.z = this.z - this.depth / 2 + particle.radius; particle.velocity.z *= -this.friction; this._static(particle, 'z'); } else if (particle.position.z + particle.radius > this.z + this.depth / 2) { particle.position.z = this.z + this.depth / 2 - particle.radius; particle.velocity.z *= -this.friction; this._static(particle, 'z'); } } _static(particle, axis) { if (particle.velocity[axis] * particle.acceleration[axis] > 0) return; if (Math.abs(particle.velocity[axis]) < Math.abs(particle.acceleration[axis]) * 0.0167 * this.max) { particle.velocity[axis] = 0; particle.acceleration[axis] = 0; } } _cross(particle) { if (particle.position.x + particle.radius < this.x - this.width / 2 && particle.velocity.x <= 0) particle.position.x = this.x + this.width / 2 + particle.radius;else if (particle.position.x - particle.radius > this.x + this.width / 2 && particle.velocity.x >= 0) particle.position.x = this.x - this.width / 2 - particle.radius; if (particle.position.y + particle.radius < this.y - this.height / 2 && particle.velocity.y <= 0) particle.position.y = this.y + this.height / 2 + particle.radius;else if (particle.position.y - particle.radius > this.y + this.height / 2 && particle.velocity.y >= 0) particle.position.y = this.y - this.height / 2 - particle.radius; if (particle.position.z + particle.radius < this.z - this.depth / 2 && particle.velocity.z <= 0) particle.position.z = this.z + this.depth / 2 + particle.radius;else if (particle.position.z - particle.radius > this.z + this.depth / 2 && particle.velocity.z >= 0) particle.position.z = this.z - this.depth / 2 - particle.radius; } } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy96b25lL0JveFpvbmUuanMiXSwibmFtZXMiOlsiTWF0aFV0aWxzIiwiVXRpbCIsIlpvbmUiLCJaT05FX1RZUEVfQk9YIiwidHlwZSIsIkJveFpvbmUiLCJjb25zdHJ1Y3RvciIsImEiLCJiIiwiYyIsImQiLCJlIiwiZiIsIngiLCJ5IiwieiIsInciLCJoIiwiaXNVbmRlZmluZWQiLCJ3aWR0aCIsImhlaWdodCIsImRlcHRoIiwiZnJpY3Rpb24iLCJtYXgiLCJpc0JveFpvbmUiLCJnZXRQb3NpdGlvbiIsInZlY3RvciIsInJhbmRvbUFUb0IiLCJfZGVhZCIsInBhcnRpY2xlIiwicG9zaXRpb24iLCJyYWRpdXMiLCJkZWFkIiwiX2JvdW5kIiwidmVsb2NpdHkiLCJfc3RhdGljIiwiYXhpcyIsImFjY2VsZXJhdGlvbiIsIk1hdGgiLCJhYnMiLCJfY3Jvc3MiXSwibWFwcGluZ3MiOiJBQUFBLE9BQU9BLFNBQVAsTUFBc0IsbUJBQXRCO0FBQ0EsT0FBT0MsSUFBUCxNQUFpQixlQUFqQjtBQUNBLE9BQU9DLElBQVAsTUFBaUIsUUFBakI7QUFDQSxTQUFTQyxhQUFhLElBQUlDLElBQTFCLFFBQXNDLFNBQXRDO0FBRUEsZUFBZSxNQUFNQyxPQUFOLFNBQXNCSCxJQUF0QixDQUEyQjtBQUN4QztBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDRUksRUFBQUEsV0FBVyxDQUFDQyxDQUFELEVBQUlDLENBQUosRUFBT0MsQ0FBUCxFQUFVQyxDQUFWLEVBQWFDLENBQWIsRUFBZ0JDLENBQWhCLEVBQW1CO0FBQzVCLFVBQU1SLElBQU4sRUFENEIsQ0FHNUI7QUFDQTs7QUFDQSxRQUFJUyxDQUFKLEVBQU9DLENBQVAsRUFBVUMsQ0FBVixFQUFhQyxDQUFiLEVBQWdCQyxDQUFoQixFQUFtQlAsQ0FBbkI7O0FBRUEsUUFBSVQsSUFBSSxDQUFDaUIsV0FBTCxDQUFpQlYsQ0FBakIsRUFBb0JDLENBQXBCLEVBQXVCQyxDQUF2QixFQUEwQkMsQ0FBMUIsRUFBNkJDLENBQTdCLENBQUosRUFBcUM7QUFDbkNDLE1BQUFBLENBQUMsR0FBR0MsQ0FBQyxHQUFHQyxDQUFDLEdBQUcsQ0FBWjtBQUNBQyxNQUFBQSxDQUFDLEdBQUdDLENBQUMsR0FBR1AsQ0FBQyxHQUFHSCxDQUFDLElBQUksR0FBakI7QUFDRCxLQUhELE1BR08sSUFBSU4sSUFBSSxDQUFDaUIsV0FBTCxDQUFpQlIsQ0FBakIsRUFBb0JDLENBQXBCLEVBQXVCQyxDQUF2QixDQUFKLEVBQStCO0FBQ3BDQyxNQUFBQSxDQUFDLEdBQUdDLENBQUMsR0FBR0MsQ0FBQyxHQUFHLENBQVo7QUFDQUMsTUFBQUEsQ0FBQyxHQUFHVCxDQUFKO0FBQ0FVLE1BQUFBLENBQUMsR0FBR1QsQ0FBSjtBQUNBRSxNQUFBQSxDQUFDLEdBQUdELENBQUo7QUFDRCxLQUxNLE1BS0E7QUFDTEksTUFBQUEsQ0FBQyxHQUFHTixDQUFKO0FBQ0FPLE1BQUFBLENBQUMsR0FBR04sQ0FBSjtBQUNBTyxNQUFBQSxDQUFDLEdBQUdOLENBQUo7QUFDQU8sTUFBQUEsQ0FBQyxHQUFHTixDQUFKO0FBQ0FPLE1BQUFBLENBQUMsR0FBR04sQ0FBSjtBQUNBRCxNQUFBQSxDQUFDLEdBQUdFLENBQUo7QUFDRDs7QUFFRCxTQUFLQyxDQUFMLEdBQVNBLENBQVQ7QUFDQSxTQUFLQyxDQUFMLEdBQVNBLENBQVQ7QUFDQSxTQUFLQyxDQUFMLEdBQVNBLENBQVQ7QUFDQSxTQUFLSSxLQUFMLEdBQWFILENBQWI7QUFDQSxTQUFLSSxNQUFMLEdBQWNILENBQWQ7QUFDQSxTQUFLSSxLQUFMLEdBQWFYLENBQWIsQ0E3QjRCLENBOEI1Qjs7QUFDQSxTQUFLWSxRQUFMLEdBQWdCLElBQWhCLENBL0I0QixDQWdDNUI7O0FBQ0EsU0FBS0MsR0FBTCxHQUFXLENBQVg7QUFDRDtBQUVEO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7OztBQUNFQyxFQUFBQSxTQUFTLEdBQUc7QUFDVixXQUFPLElBQVA7QUFDRDs7QUFFREMsRUFBQUEsV0FBVyxHQUFHO0FBQ1osU0FBS0MsTUFBTCxDQUFZYixDQUFaLEdBQWdCLEtBQUtBLENBQUwsR0FBU2IsU0FBUyxDQUFDMkIsVUFBVixDQUFxQixDQUFDLEdBQXRCLEVBQTJCLEdBQTNCLElBQWtDLEtBQUtSLEtBQWhFO0FBQ0EsU0FBS08sTUFBTCxDQUFZWixDQUFaLEdBQWdCLEtBQUtBLENBQUwsR0FBU2QsU0FBUyxDQUFDMkIsVUFBVixDQUFxQixDQUFDLEdBQXRCLEVBQTJCLEdBQTNCLElBQWtDLEtBQUtQLE1BQWhFO0FBQ0EsU0FBS00sTUFBTCxDQUFZWCxDQUFaLEdBQWdCLEtBQUtBLENBQUwsR0FBU2YsU0FBUyxDQUFDMkIsVUFBVixDQUFxQixDQUFDLEdBQXRCLEVBQTJCLEdBQTNCLElBQWtDLEtBQUtOLEtBQWhFO0FBRUEsV0FBTyxLQUFLSyxNQUFaO0FBQ0Q7O0FBRURFLEVBQUFBLEtBQUssQ0FBQ0MsUUFBRCxFQUFXO0FBQ2QsUUFBSUEsUUFBUSxDQUFDQyxRQUFULENBQWtCakIsQ0FBbEIsR0FBc0JnQixRQUFRLENBQUNFLE1BQS9CLEdBQXdDLEtBQUtsQixDQUFMLEdBQVMsS0FBS00sS0FBTCxHQUFhLENBQWxFLEVBQ0VVLFFBQVEsQ0FBQ0csSUFBVCxHQUFnQixJQUFoQixDQURGLEtBRUssSUFBSUgsUUFBUSxDQUFDQyxRQUFULENBQWtCakIsQ0FBbEIsR0FBc0JnQixRQUFRLENBQUNFLE1BQS9CLEdBQXdDLEtBQUtsQixDQUFMLEdBQVMsS0FBS00sS0FBTCxHQUFhLENBQWxFLEVBQ0hVLFFBQVEsQ0FBQ0csSUFBVCxHQUFnQixJQUFoQjtBQUVGLFFBQUlILFFBQVEsQ0FBQ0MsUUFBVCxDQUFrQmhCLENBQWxCLEdBQXNCZSxRQUFRLENBQUNFLE1BQS9CLEdBQXdDLEtBQUtqQixDQUFMLEdBQVMsS0FBS00sTUFBTCxHQUFjLENBQW5FLEVBQ0VTLFFBQVEsQ0FBQ0csSUFBVCxHQUFnQixJQUFoQixDQURGLEtBRUssSUFBSUgsUUFBUSxDQUFDQyxRQUFULENBQWtCaEIsQ0FBbEIsR0FBc0JlLFFBQVEsQ0FBQ0UsTUFBL0IsR0FBd0MsS0FBS2pCLENBQUwsR0FBUyxLQUFLTSxNQUFMLEdBQWMsQ0FBbkUsRUFDSFMsUUFBUSxDQUFDRyxJQUFULEdBQWdCLElBQWhCO0FBRUYsUUFBSUgsUUFBUSxDQUFDQyxRQUFULENBQWtCZixDQUFsQixHQUFzQmMsUUFBUSxDQUFDRSxNQUEvQixHQUF3QyxLQUFLaEIsQ0FBTCxHQUFTLEtBQUtNLEtBQUwsR0FBYSxDQUFsRSxFQUNFUSxRQUFRLENBQUNHLElBQVQsR0FBZ0IsSUFBaEIsQ0FERixLQUVLLElBQUlILFFBQVEsQ0FBQ0MsUUFBVCxDQUFrQmYsQ0FBbEIsR0FBc0JjLFFBQVEsQ0FBQ0UsTUFBL0IsR0FBd0MsS0FBS2hCLENBQUwsR0FBUyxLQUFLTSxLQUFMLEdBQWEsQ0FBbEUsRUFDSFEsUUFBUSxDQUFDRyxJQUFULEdBQWdCLElBQWhCO0FBQ0g7O0FBRURDLEVBQUFBLE1BQU0sQ0FBQ0osUUFBRCxFQUFXO0FBQ2YsUUFBSUEsUUFBUSxDQUFDQyxRQUFULENBQWtCakIsQ0FBbEIsR0FBc0JnQixRQUFRLENBQUNFLE1BQS9CLEdBQXdDLEtBQUtsQixDQUFMLEdBQVMsS0FBS00sS0FBTCxHQUFhLENBQWxFLEVBQXFFO0FBQ25FVSxNQUFBQSxRQUFRLENBQUNDLFFBQVQsQ0FBa0JqQixDQUFsQixHQUFzQixLQUFLQSxDQUFMLEdBQVMsS0FBS00sS0FBTCxHQUFhLENBQXRCLEdBQTBCVSxRQUFRLENBQUNFLE1BQXpEO0FBQ0FGLE1BQUFBLFFBQVEsQ0FBQ0ssUUFBVCxDQUFrQnJCLENBQWxCLElBQXVCLENBQUMsS0FBS1MsUUFBN0I7O0FBQ0EsV0FBS2EsT0FBTCxDQUFhTixRQUFiLEVBQXVCLEdBQXZCO0FBQ0QsS0FKRCxNQUlPLElBQUlBLFFBQVEsQ0FBQ0MsUUFBVCxDQUFrQmpCLENBQWxCLEdBQXNCZ0IsUUFBUSxDQUFDRSxNQUEvQixHQUF3QyxLQUFLbEIsQ0FBTCxHQUFTLEtBQUtNLEtBQUwsR0FBYSxDQUFsRSxFQUFxRTtBQUMxRVUsTUFBQUEsUUFBUSxDQUFDQyxRQUFULENBQWtCakIsQ0FBbEIsR0FBc0IsS0FBS0EsQ0FBTCxHQUFTLEtBQUtNLEtBQUwsR0FBYSxDQUF0QixHQUEwQlUsUUFBUSxDQUFDRSxNQUF6RDtBQUNBRixNQUFBQSxRQUFRLENBQUNLLFFBQVQsQ0FBa0JyQixDQUFsQixJQUF1QixDQUFDLEtBQUtTLFFBQTdCOztBQUNBLFdBQUthLE9BQUwsQ0FBYU4sUUFBYixFQUF1QixHQUF2QjtBQUNEOztBQUVELFFBQUlBLFFBQVEsQ0FBQ0MsUUFBVCxDQUFrQmhCLENBQWxCLEdBQXNCZSxRQUFRLENBQUNFLE1BQS9CLEdBQXdDLEtBQUtqQixDQUFMLEdBQVMsS0FBS00sTUFBTCxHQUFjLENBQW5FLEVBQXNFO0FBQ3BFUyxNQUFBQSxRQUFRLENBQUNDLFFBQVQsQ0FBa0JoQixDQUFsQixHQUFzQixLQUFLQSxDQUFMLEdBQVMsS0FBS00sTUFBTCxHQUFjLENBQXZCLEdBQTJCUyxRQUFRLENBQUNFLE1BQTFEO0FBQ0FGLE1BQUFBLFFBQVEsQ0FBQ0ssUUFBVCxDQUFrQnBCLENBQWxCLElBQXVCLENBQUMsS0FBS1EsUUFBN0I7O0FBQ0EsV0FBS2EsT0FBTCxDQUFhTixRQUFiLEVBQXVCLEdBQXZCO0FBQ0QsS0FKRCxNQUlPLElBQUlBLFFBQVEsQ0FBQ0MsUUFBVCxDQUFrQmhCLENBQWxCLEdBQXNCZSxRQUFRLENBQUNFLE1BQS9CLEdBQXdDLEtBQUtqQixDQUFMLEdBQVMsS0FBS00sTUFBTCxHQUFjLENBQW5FLEVBQXNFO0FBQzNFUyxNQUFBQSxRQUFRLENBQUNDLFFBQVQsQ0FBa0JoQixDQUFsQixHQUFzQixLQUFLQSxDQUFMLEdBQVMsS0FBS00sTUFBTCxHQUFjLENBQXZCLEdBQTJCUyxRQUFRLENBQUNFLE1BQTFEO0FBQ0FGLE1BQUFBLFFBQVEsQ0FBQ0ssUUFBVCxDQUFrQnBCLENBQWxCLElBQXVCLENBQUMsS0FBS1EsUUFBN0I7O0FBQ0EsV0FBS2EsT0FBTCxDQUFhTixRQUFiLEVBQXVCLEdBQXZCO0FBQ0Q7O0FBRUQsUUFBSUEsUUFBUSxDQUFDQyxRQUFULENBQWtCZixDQUFsQixHQUFzQmMsUUFBUSxDQUFDRSxNQUEvQixHQUF3QyxLQUFLaEIsQ0FBTCxHQUFTLEtBQUtNLEtBQUwsR0FBYSxDQUFsRSxFQUFxRTtBQUNuRVEsTUFBQUEsUUFBUSxDQUFDQyxRQUFULENBQWtCZixDQUFsQixHQUFzQixLQUFLQSxDQUFMLEdBQVMsS0FBS00sS0FBTCxHQUFhLENBQXRCLEdBQTBCUSxRQUFRLENBQUNFLE1BQXpEO0FBQ0FGLE1BQUFBLFFBQVEsQ0FBQ0ssUUFBVCxDQUFrQm5CLENBQWxCLElBQXVCLENBQUMsS0FBS08sUUFBN0I7O0FBQ0EsV0FBS2EsT0FBTCxDQUFhTixRQUFiLEVBQXVCLEdBQXZCO0FBQ0QsS0FKRCxNQUlPLElBQUlBLFFBQVEsQ0FBQ0MsUUFBVCxDQUFrQmYsQ0FBbEIsR0FBc0JjLFFBQVEsQ0FBQ0UsTUFBL0IsR0FBd0MsS0FBS2hCLENBQUwsR0FBUyxLQUFLTSxLQUFMLEdBQWEsQ0FBbEUsRUFBcUU7QUFDMUVRLE1BQUFBLFFBQVEsQ0FBQ0MsUUFBVCxDQUFrQmYsQ0FBbEIsR0FBc0IsS0FBS0EsQ0FBTCxHQUFTLEtBQUtNLEtBQUwsR0FBYSxDQUF0QixHQUEwQlEsUUFBUSxDQUFDRSxNQUF6RDtBQUNBRixNQUFBQSxRQUFRLENBQUNLLFFBQVQsQ0FBa0JuQixDQUFsQixJQUF1QixDQUFDLEtBQUtPLFFBQTdCOztBQUNBLFdBQUthLE9BQUwsQ0FBYU4sUUFBYixFQUF1QixHQUF2QjtBQUNEO0FBQ0Y7O0FBRURNLEVBQUFBLE9BQU8sQ0FBQ04sUUFBRCxFQUFXTyxJQUFYLEVBQWlCO0FBQ3RCLFFBQUlQLFFBQVEsQ0FBQ0ssUUFBVCxDQUFrQkUsSUFBbEIsSUFBMEJQLFFBQVEsQ0FBQ1EsWUFBVCxDQUFzQkQsSUFBdEIsQ0FBMUIsR0FBd0QsQ0FBNUQsRUFBK0Q7O0FBQy9ELFFBQ0VFLElBQUksQ0FBQ0MsR0FBTCxDQUFTVixRQUFRLENBQUNLLFFBQVQsQ0FBa0JFLElBQWxCLENBQVQsSUFDQUUsSUFBSSxDQUFDQyxHQUFMLENBQVNWLFFBQVEsQ0FBQ1EsWUFBVCxDQUFzQkQsSUFBdEIsQ0FBVCxJQUF3QyxNQUF4QyxHQUFpRCxLQUFLYixHQUZ4RCxFQUdFO0FBQ0FNLE1BQUFBLFFBQVEsQ0FBQ0ssUUFBVCxDQUFrQkUsSUFBbEIsSUFBMEIsQ0FBMUI7QUFDQVAsTUFBQUEsUUFBUSxDQUFDUSxZQUFULENBQXNCRCxJQUF0QixJQUE4QixDQUE5QjtBQUNEO0FBQ0Y7O0FBRURJLEVBQUFBLE1BQU0sQ0FBQ1gsUUFBRCxFQUFXO0FBQ2YsUUFDRUEsUUFBUSxDQUFDQyxRQUFULENBQWtCakIsQ0FBbEIsR0FBc0JnQixRQUFRLENBQUNFLE1BQS9CLEdBQXdDLEtBQUtsQixDQUFMLEdBQVMsS0FBS00sS0FBTCxHQUFhLENBQTlELElBQ0FVLFFBQVEsQ0FBQ0ssUUFBVCxDQUFrQnJCLENBQWxCLElBQXVCLENBRnpCLEVBSUVnQixRQUFRLENBQUNDLFFBQVQsQ0FBa0JqQixDQUFsQixHQUFzQixLQUFLQSxDQUFMLEdBQVMsS0FBS00sS0FBTCxHQUFhLENBQXRCLEdBQTBCVSxRQUFRLENBQUNFLE1BQXpELENBSkYsS0FLSyxJQUNIRixRQUFRLENBQUNDLFFBQVQsQ0FBa0JqQixDQUFsQixHQUFzQmdCLFFBQVEsQ0FBQ0UsTUFBL0IsR0FBd0MsS0FBS2xCLENBQUwsR0FBUyxLQUFLTSxLQUFMLEdBQWEsQ0FBOUQsSUFDQVUsUUFBUSxDQUFDSyxRQUFULENBQWtCckIsQ0FBbEIsSUFBdUIsQ0FGcEIsRUFJSGdCLFFBQVEsQ0FBQ0MsUUFBVCxDQUFrQmpCLENBQWxCLEdBQXNCLEtBQUtBLENBQUwsR0FBUyxLQUFLTSxLQUFMLEdBQWEsQ0FBdEIsR0FBMEJVLFFBQVEsQ0FBQ0UsTUFBekQ7QUFFRixRQUNFRixRQUFRLENBQUNDLFFBQVQsQ0FBa0JoQixDQUFsQixHQUFzQmUsUUFBUSxDQUFDRSxNQUEvQixHQUF3QyxLQUFLakIsQ0FBTCxHQUFTLEtBQUtNLE1BQUwsR0FBYyxDQUEvRCxJQUNBUyxRQUFRLENBQUNLLFFBQVQsQ0FBa0JwQixDQUFsQixJQUF1QixDQUZ6QixFQUlFZSxRQUFRLENBQUNDLFFBQVQsQ0FBa0JoQixDQUFsQixHQUFzQixLQUFLQSxDQUFMLEdBQVMsS0FBS00sTUFBTCxHQUFjLENBQXZCLEdBQTJCUyxRQUFRLENBQUNFLE1BQTFELENBSkYsS0FLSyxJQUNIRixRQUFRLENBQUNDLFFBQVQsQ0FBa0JoQixDQUFsQixHQUFzQmUsUUFBUSxDQUFDRSxNQUEvQixHQUF3QyxLQUFLakIsQ0FBTCxHQUFTLEtBQUtNLE1BQUwsR0FBYyxDQUEvRCxJQUNBUyxRQUFRLENBQUNLLFFBQVQsQ0FBa0JwQixDQUFsQixJQUF1QixDQUZwQixFQUlIZSxRQUFRLENBQUNDLFFBQVQsQ0FBa0JoQixDQUFsQixHQUFzQixLQUFLQSxDQUFMLEdBQVMsS0FBS00sTUFBTCxHQUFjLENBQXZCLEdBQTJCUyxRQUFRLENBQUNFLE1BQTFEO0FBRUYsUUFDRUYsUUFBUSxDQUFDQyxRQUFULENBQWtCZixDQUFsQixHQUFzQmMsUUFBUSxDQUFDRSxNQUEvQixHQUF3QyxLQUFLaEIsQ0FBTCxHQUFTLEtBQUtNLEtBQUwsR0FBYSxDQUE5RCxJQUNBUSxRQUFRLENBQUNLLFFBQVQsQ0FBa0JuQixDQUFsQixJQUF1QixDQUZ6QixFQUlFYyxRQUFRLENBQUNDLFFBQVQsQ0FBa0JmLENBQWxCLEdBQXNCLEtBQUtBLENBQUwsR0FBUyxLQUFLTSxLQUFMLEdBQWEsQ0FBdEIsR0FBMEJRLFFBQVEsQ0FBQ0UsTUFBekQsQ0FKRixLQUtLLElBQ0hGLFFBQVEsQ0FBQ0MsUUFBVCxDQUFrQmYsQ0FBbEIsR0FBc0JjLFFBQVEsQ0FBQ0UsTUFBL0IsR0FBd0MsS0FBS2hCLENBQUwsR0FBUyxLQUFLTSxLQUFMLEdBQWEsQ0FBOUQsSUFDQVEsUUFBUSxDQUFDSyxRQUFULENBQWtCbkIsQ0FBbEIsSUFBdUIsQ0FGcEIsRUFJSGMsUUFBUSxDQUFDQyxRQUFULENBQWtCZixDQUFsQixHQUFzQixLQUFLQSxDQUFMLEdBQVMsS0FBS00sS0FBTCxHQUFhLENBQXRCLEdBQTBCUSxRQUFRLENBQUNFLE1BQXpEO0FBQ0g7O0FBbEt1QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBNYXRoVXRpbHMgZnJvbSAnLi4vbWF0aC9NYXRoVXRpbHMnO1xuaW1wb3J0IFV0aWwgZnJvbSAnLi4vdXRpbHMvVXRpbCc7XG5pbXBvcnQgWm9uZSBmcm9tICcuL1pvbmUnO1xuaW1wb3J0IHsgWk9ORV9UWVBFX0JPWCBhcyB0eXBlIH0gZnJvbSAnLi90eXBlcyc7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEJveFpvbmUgZXh0ZW5kcyBab25lIHtcbiAgLyoqXG4gICAqIEJveFpvbmUgaXMgYSBib3ggem9uZVxuICAgKiBAcGFyYW0ge051bWJlcnxWZWN0b3IzRH0geCAtIHRoZSBwb3NpdGlvbidzIHggdmFsdWUgb3IgYSBWZWN0b3IzRCBPYmplY3RcbiAgICogQHBhcmFtIHtOdW1iZXJ9IHkgLSB0aGUgcG9zaXRpb24ncyB5IHZhbHVlXG4gICAqIEBwYXJhbSB7TnVtYmVyfSB6IC0gdGhlIHBvc2l0aW9uJ3MgeiB2YWx1ZVxuICAgKiBAcGFyYW0ge051bWJlcn0gdyAtIHRoZSBCb3gncyB3aWR0aFxuICAgKiBAcGFyYW0ge051bWJlcn0gaCAtIHRoZSBCb3gncyBoZWlnaHRcbiAgICogQHBhcmFtIHtOdW1iZXJ9IGQgLSB0aGUgQm94J3MgZGVwdGhcbiAgICogQGV4YW1wbGVcbiAgICogdmFyIGJveFpvbmUgPSBuZXcgQm94Wm9uZSgwLDAsMCw1MCw1MCw1MCk7XG4gICAqIG9yXG4gICAqIHZhciBib3hab25lID0gbmV3IEJveFpvbmUobmV3IFZlY3RvcjNEKDAsMCwwKSwgNTAsIDUwLCA1MCk7XG4gICAqIEBleHRlbmRzIHtab25lfVxuICAgKiBAY29uc3RydWN0b3JcbiAgICovXG4gIGNvbnN0cnVjdG9yKGEsIGIsIGMsIGQsIGUsIGYpIHtcbiAgICBzdXBlcih0eXBlKTtcblxuICAgIC8vIFRPRE8gdGhpcyByZWFzc2lnbmluZyBvZiBhcmd1bWVudHMgaXMgcHJldHR5IGRhbmdlcm91cywgbmVlZCB0byBmaXggaXQuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lXG4gICAgdmFyIHgsIHksIHosIHcsIGgsIGQ7XG5cbiAgICBpZiAoVXRpbC5pc1VuZGVmaW5lZChiLCBjLCBkLCBlLCBmKSkge1xuICAgICAgeCA9IHkgPSB6ID0gMDtcbiAgICAgIHcgPSBoID0gZCA9IGEgfHwgMTAwO1xuICAgIH0gZWxzZSBpZiAoVXRpbC5pc1VuZGVmaW5lZChkLCBlLCBmKSkge1xuICAgICAgeCA9IHkgPSB6ID0gMDtcbiAgICAgIHcgPSBhO1xuICAgICAgaCA9IGI7XG4gICAgICBkID0gYztcbiAgICB9IGVsc2Uge1xuICAgICAgeCA9IGE7XG4gICAgICB5ID0gYjtcbiAgICAgIHogPSBjO1xuICAgICAgdyA9IGQ7XG4gICAgICBoID0gZTtcbiAgICAgIGQgPSBmO1xuICAgIH1cblxuICAgIHRoaXMueCA9IHg7XG4gICAgdGhpcy55ID0geTtcbiAgICB0aGlzLnogPSB6O1xuICAgIHRoaXMud2lkdGggPSB3O1xuICAgIHRoaXMuaGVpZ2h0ID0gaDtcbiAgICB0aGlzLmRlcHRoID0gZDtcbiAgICAvLyBUT0RPIFNldCB0aGlzIHZpYSBhbiBhcmd1bWVudCB0byB0aGUgY29uc3RydWN0b3JcbiAgICB0aGlzLmZyaWN0aW9uID0gMC44NTtcbiAgICAvLyBUT0RPIFNldCB0aGlzIHZpYSBhbiBhcmd1bWVudCB0byB0aGUgY29uc3RydWN0b3JcbiAgICB0aGlzLm1heCA9IDY7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0cnVlIHRvIGluZGljYXRlIHRoaXMgaXMgYSBCb3hab25lLlxuICAgKlxuICAgKiBAcmV0dXJuIHtib29sZWFufVxuICAgKi9cbiAgaXNCb3hab25lKCkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgZ2V0UG9zaXRpb24oKSB7XG4gICAgdGhpcy52ZWN0b3IueCA9IHRoaXMueCArIE1hdGhVdGlscy5yYW5kb21BVG9CKC0wLjUsIDAuNSkgKiB0aGlzLndpZHRoO1xuICAgIHRoaXMudmVjdG9yLnkgPSB0aGlzLnkgKyBNYXRoVXRpbHMucmFuZG9tQVRvQigtMC41LCAwLjUpICogdGhpcy5oZWlnaHQ7XG4gICAgdGhpcy52ZWN0b3IueiA9IHRoaXMueiArIE1hdGhVdGlscy5yYW5kb21BVG9CKC0wLjUsIDAuNSkgKiB0aGlzLmRlcHRoO1xuXG4gICAgcmV0dXJuIHRoaXMudmVjdG9yO1xuICB9XG5cbiAgX2RlYWQocGFydGljbGUpIHtcbiAgICBpZiAocGFydGljbGUucG9zaXRpb24ueCArIHBhcnRpY2xlLnJhZGl1cyA8IHRoaXMueCAtIHRoaXMud2lkdGggLyAyKVxuICAgICAgcGFydGljbGUuZGVhZCA9IHRydWU7XG4gICAgZWxzZSBpZiAocGFydGljbGUucG9zaXRpb24ueCAtIHBhcnRpY2xlLnJhZGl1cyA+IHRoaXMueCArIHRoaXMud2lkdGggLyAyKVxuICAgICAgcGFydGljbGUuZGVhZCA9IHRydWU7XG5cbiAgICBpZiAocGFydGljbGUucG9zaXRpb24ueSArIHBhcnRpY2xlLnJhZGl1cyA8IHRoaXMueSAtIHRoaXMuaGVpZ2h0IC8gMilcbiAgICAgIHBhcnRpY2xlLmRlYWQgPSB0cnVlO1xuICAgIGVsc2UgaWYgKHBhcnRpY2xlLnBvc2l0aW9uLnkgLSBwYXJ0aWNsZS5yYWRpdXMgPiB0aGlzLnkgKyB0aGlzLmhlaWdodCAvIDIpXG4gICAgICBwYXJ0aWNsZS5kZWFkID0gdHJ1ZTtcblxuICAgIGlmIChwYXJ0aWNsZS5wb3NpdGlvbi56ICsgcGFydGljbGUucmFkaXVzIDwgdGhpcy56IC0gdGhpcy5kZXB0aCAvIDIpXG4gICAgICBwYXJ0aWNsZS5kZWFkID0gdHJ1ZTtcbiAgICBlbHNlIGlmIChwYXJ0aWNsZS5wb3NpdGlvbi56IC0gcGFydGljbGUucmFkaXVzID4gdGhpcy56ICsgdGhpcy5kZXB0aCAvIDIpXG4gICAgICBwYXJ0aWNsZS5kZWFkID0gdHJ1ZTtcbiAgfVxuXG4gIF9ib3VuZChwYXJ0aWNsZSkge1xuICAgIGlmIChwYXJ0aWNsZS5wb3NpdGlvbi54IC0gcGFydGljbGUucmFkaXVzIDwgdGhpcy54IC0gdGhpcy53aWR0aCAvIDIpIHtcbiAgICAgIHBhcnRpY2xlLnBvc2l0aW9uLnggPSB0aGlzLnggLSB0aGlzLndpZHRoIC8gMiArIHBhcnRpY2xlLnJhZGl1cztcbiAgICAgIHBhcnRpY2xlLnZlbG9jaXR5LnggKj0gLXRoaXMuZnJpY3Rpb247XG4gICAgICB0aGlzLl9zdGF0aWMocGFydGljbGUsICd4Jyk7XG4gICAgfSBlbHNlIGlmIChwYXJ0aWNsZS5wb3NpdGlvbi54ICsgcGFydGljbGUucmFkaXVzID4gdGhpcy54ICsgdGhpcy53aWR0aCAvIDIpIHtcbiAgICAgIHBhcnRpY2xlLnBvc2l0aW9uLnggPSB0aGlzLnggKyB0aGlzLndpZHRoIC8gMiAtIHBhcnRpY2xlLnJhZGl1cztcbiAgICAgIHBhcnRpY2xlLnZlbG9jaXR5LnggKj0gLXRoaXMuZnJpY3Rpb247XG4gICAgICB0aGlzLl9zdGF0aWMocGFydGljbGUsICd4Jyk7XG4gICAgfVxuXG4gICAgaWYgKHBhcnRpY2xlLnBvc2l0aW9uLnkgLSBwYXJ0aWNsZS5yYWRpdXMgPCB0aGlzLnkgLSB0aGlzLmhlaWdodCAvIDIpIHtcbiAgICAgIHBhcnRpY2xlLnBvc2l0aW9uLnkgPSB0aGlzLnkgLSB0aGlzLmhlaWdodCAvIDIgKyBwYXJ0aWNsZS5yYWRpdXM7XG4gICAgICBwYXJ0aWNsZS52ZWxvY2l0eS55ICo9IC10aGlzLmZyaWN0aW9uO1xuICAgICAgdGhpcy5fc3RhdGljKHBhcnRpY2xlLCAneScpO1xuICAgIH0gZWxzZSBpZiAocGFydGljbGUucG9zaXRpb24ueSArIHBhcnRpY2xlLnJhZGl1cyA+IHRoaXMueSArIHRoaXMuaGVpZ2h0IC8gMikge1xuICAgICAgcGFydGljbGUucG9zaXRpb24ueSA9IHRoaXMueSArIHRoaXMuaGVpZ2h0IC8gMiAtIHBhcnRpY2xlLnJhZGl1cztcbiAgICAgIHBhcnRpY2xlLnZlbG9jaXR5LnkgKj0gLXRoaXMuZnJpY3Rpb247XG4gICAgICB0aGlzLl9zdGF0aWMocGFydGljbGUsICd5Jyk7XG4gICAgfVxuXG4gICAgaWYgKHBhcnRpY2xlLnBvc2l0aW9uLnogLSBwYXJ0aWNsZS5yYWRpdXMgPCB0aGlzLnogLSB0aGlzLmRlcHRoIC8gMikge1xuICAgICAgcGFydGljbGUucG9zaXRpb24ueiA9IHRoaXMueiAtIHRoaXMuZGVwdGggLyAyICsgcGFydGljbGUucmFkaXVzO1xuICAgICAgcGFydGljbGUudmVsb2NpdHkueiAqPSAtdGhpcy5mcmljdGlvbjtcbiAgICAgIHRoaXMuX3N0YXRpYyhwYXJ0aWNsZSwgJ3onKTtcbiAgICB9IGVsc2UgaWYgKHBhcnRpY2xlLnBvc2l0aW9uLnogKyBwYXJ0aWNsZS5yYWRpdXMgPiB0aGlzLnogKyB0aGlzLmRlcHRoIC8gMikge1xuICAgICAgcGFydGljbGUucG9zaXRpb24ueiA9IHRoaXMueiArIHRoaXMuZGVwdGggLyAyIC0gcGFydGljbGUucmFkaXVzO1xuICAgICAgcGFydGljbGUudmVsb2NpdHkueiAqPSAtdGhpcy5mcmljdGlvbjtcbiAgICAgIHRoaXMuX3N0YXRpYyhwYXJ0aWNsZSwgJ3onKTtcbiAgICB9XG4gIH1cblxuICBfc3RhdGljKHBhcnRpY2xlLCBheGlzKSB7XG4gICAgaWYgKHBhcnRpY2xlLnZlbG9jaXR5W2F4aXNdICogcGFydGljbGUuYWNjZWxlcmF0aW9uW2F4aXNdID4gMCkgcmV0dXJuO1xuICAgIGlmIChcbiAgICAgIE1hdGguYWJzKHBhcnRpY2xlLnZlbG9jaXR5W2F4aXNdKSA8XG4gICAgICBNYXRoLmFicyhwYXJ0aWNsZS5hY2NlbGVyYXRpb25bYXhpc10pICogMC4wMTY3ICogdGhpcy5tYXhcbiAgICApIHtcbiAgICAgIHBhcnRpY2xlLnZlbG9jaXR5W2F4aXNdID0gMDtcbiAgICAgIHBhcnRpY2xlLmFjY2VsZXJhdGlvbltheGlzXSA9IDA7XG4gICAgfVxuICB9XG5cbiAgX2Nyb3NzKHBhcnRpY2xlKSB7XG4gICAgaWYgKFxuICAgICAgcGFydGljbGUucG9zaXRpb24ueCArIHBhcnRpY2xlLnJhZGl1cyA8IHRoaXMueCAtIHRoaXMud2lkdGggLyAyICYmXG4gICAgICBwYXJ0aWNsZS52ZWxvY2l0eS54IDw9IDBcbiAgICApXG4gICAgICBwYXJ0aWNsZS5wb3NpdGlvbi54ID0gdGhpcy54ICsgdGhpcy53aWR0aCAvIDIgKyBwYXJ0aWNsZS5yYWRpdXM7XG4gICAgZWxzZSBpZiAoXG4gICAgICBwYXJ0aWNsZS5wb3NpdGlvbi54IC0gcGFydGljbGUucmFkaXVzID4gdGhpcy54ICsgdGhpcy53aWR0aCAvIDIgJiZcbiAgICAgIHBhcnRpY2xlLnZlbG9jaXR5LnggPj0gMFxuICAgIClcbiAgICAgIHBhcnRpY2xlLnBvc2l0aW9uLnggPSB0aGlzLnggLSB0aGlzLndpZHRoIC8gMiAtIHBhcnRpY2xlLnJhZGl1cztcblxuICAgIGlmIChcbiAgICAgIHBhcnRpY2xlLnBvc2l0aW9uLnkgKyBwYXJ0aWNsZS5yYWRpdXMgPCB0aGlzLnkgLSB0aGlzLmhlaWdodCAvIDIgJiZcbiAgICAgIHBhcnRpY2xlLnZlbG9jaXR5LnkgPD0gMFxuICAgIClcbiAgICAgIHBhcnRpY2xlLnBvc2l0aW9uLnkgPSB0aGlzLnkgKyB0aGlzLmhlaWdodCAvIDIgKyBwYXJ0aWNsZS5yYWRpdXM7XG4gICAgZWxzZSBpZiAoXG4gICAgICBwYXJ0aWNsZS5wb3NpdGlvbi55IC0gcGFydGljbGUucmFkaXVzID4gdGhpcy55ICsgdGhpcy5oZWlnaHQgLyAyICYmXG4gICAgICBwYXJ0aWNsZS52ZWxvY2l0eS55ID49IDBcbiAgICApXG4gICAgICBwYXJ0aWNsZS5wb3NpdGlvbi55ID0gdGhpcy55IC0gdGhpcy5oZWlnaHQgLyAyIC0gcGFydGljbGUucmFkaXVzO1xuXG4gICAgaWYgKFxuICAgICAgcGFydGljbGUucG9zaXRpb24ueiArIHBhcnRpY2xlLnJhZGl1cyA8IHRoaXMueiAtIHRoaXMuZGVwdGggLyAyICYmXG4gICAgICBwYXJ0aWNsZS52ZWxvY2l0eS56IDw9IDBcbiAgICApXG4gICAgICBwYXJ0aWNsZS5wb3NpdGlvbi56ID0gdGhpcy56ICsgdGhpcy5kZXB0aCAvIDIgKyBwYXJ0aWNsZS5yYWRpdXM7XG4gICAgZWxzZSBpZiAoXG4gICAgICBwYXJ0aWNsZS5wb3NpdGlvbi56IC0gcGFydGljbGUucmFkaXVzID4gdGhpcy56ICsgdGhpcy5kZXB0aCAvIDIgJiZcbiAgICAgIHBhcnRpY2xlLnZlbG9jaXR5LnogPj0gMFxuICAgIClcbiAgICAgIHBhcnRpY2xlLnBvc2l0aW9uLnogPSB0aGlzLnogLSB0aGlzLmRlcHRoIC8gMiAtIHBhcnRpY2xlLnJhZGl1cztcbiAgfVxufVxuIl19 ================================================ FILE: packages/sdk/lib/core/libs/three-nebula/zone/LineZone.js ================================================ import Vector3D from '../math/Vector3D'; import Zone from './Zone'; import { ZONE_TYPE_LINE as type } from './types'; export default class LineZone extends Zone { /** * LineZone is a 3d line zone * @param {Number|Vector3D} x1 - the line's start point of x value or a Vector3D Object * @param {Number|Vector3D} y1 - the line's start point of y value or a Vector3D Object * @param {Number} z1 - the line's start point of z value * @param {Number} x2 - the line's end point of x value * @param {Number} y2 - the line's end point of y value * @param {Number} z2 - the line's end point of z value * @example * var lineZone = new System.LineZone(0,0,0,100,100,0); * or * var lineZone = new System.LineZone(new System.Vector3D(0,0,0),new System.Vector3D(100,100,0)); * @extends {Zone} * @constructor */ constructor(x1, y1, z1, x2, y2, z2) { super(type); if (x1 instanceof Vector3D) { this.x1 = x1.x; this.y1 = x1.y; this.z1 = x1.z; this.x2 = x2.x; this.y2 = x2.y; this.z2 = x2.z; } else { this.x1 = x1; this.y1 = y1; this.z1 = z1; this.x2 = x2; this.y2 = y2; this.z2 = z2; } this.supportsCrossing = false; } /** * Returns true to indicate this is a LineZone. * * @return {boolean} */ isLineZone() { return true; } getPosition() { this.random = Math.random(); this.vector.x = this.x1 + this.random * (this.x2 - this.x1); this.vector.y = this.y1 + this.random * (this.y2 - this.y1); this.vector.z = this.z1 + this.random * (this.z2 - this.z1); return this.vector; } } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy96b25lL0xpbmVab25lLmpzIl0sIm5hbWVzIjpbIlZlY3RvcjNEIiwiWm9uZSIsIlpPTkVfVFlQRV9MSU5FIiwidHlwZSIsIkxpbmVab25lIiwiY29uc3RydWN0b3IiLCJ4MSIsInkxIiwiejEiLCJ4MiIsInkyIiwiejIiLCJ4IiwieSIsInoiLCJzdXBwb3J0c0Nyb3NzaW5nIiwiaXNMaW5lWm9uZSIsImdldFBvc2l0aW9uIiwicmFuZG9tIiwiTWF0aCIsInZlY3RvciJdLCJtYXBwaW5ncyI6IkFBQUEsT0FBT0EsUUFBUCxNQUFxQixrQkFBckI7QUFDQSxPQUFPQyxJQUFQLE1BQWlCLFFBQWpCO0FBQ0EsU0FBU0MsY0FBYyxJQUFJQyxJQUEzQixRQUF1QyxTQUF2QztBQUVBLGVBQWUsTUFBTUMsUUFBTixTQUF1QkgsSUFBdkIsQ0FBNEI7QUFDekM7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0VJLEVBQUFBLFdBQVcsQ0FBQ0MsRUFBRCxFQUFLQyxFQUFMLEVBQVNDLEVBQVQsRUFBYUMsRUFBYixFQUFpQkMsRUFBakIsRUFBcUJDLEVBQXJCLEVBQXlCO0FBQ2xDLFVBQU1SLElBQU47O0FBRUEsUUFBSUcsRUFBRSxZQUFZTixRQUFsQixFQUE0QjtBQUMxQixXQUFLTSxFQUFMLEdBQVVBLEVBQUUsQ0FBQ00sQ0FBYjtBQUNBLFdBQUtMLEVBQUwsR0FBVUQsRUFBRSxDQUFDTyxDQUFiO0FBQ0EsV0FBS0wsRUFBTCxHQUFVRixFQUFFLENBQUNRLENBQWI7QUFFQSxXQUFLTCxFQUFMLEdBQVVBLEVBQUUsQ0FBQ0csQ0FBYjtBQUNBLFdBQUtGLEVBQUwsR0FBVUQsRUFBRSxDQUFDSSxDQUFiO0FBQ0EsV0FBS0YsRUFBTCxHQUFVRixFQUFFLENBQUNLLENBQWI7QUFDRCxLQVJELE1BUU87QUFDTCxXQUFLUixFQUFMLEdBQVVBLEVBQVY7QUFDQSxXQUFLQyxFQUFMLEdBQVVBLEVBQVY7QUFDQSxXQUFLQyxFQUFMLEdBQVVBLEVBQVY7QUFFQSxXQUFLQyxFQUFMLEdBQVVBLEVBQVY7QUFDQSxXQUFLQyxFQUFMLEdBQVVBLEVBQVY7QUFDQSxXQUFLQyxFQUFMLEdBQVVBLEVBQVY7QUFDRDs7QUFFRCxTQUFLSSxnQkFBTCxHQUF3QixLQUF4QjtBQUNEO0FBRUQ7QUFDRjtBQUNBO0FBQ0E7QUFDQTs7O0FBQ0VDLEVBQUFBLFVBQVUsR0FBRztBQUNYLFdBQU8sSUFBUDtBQUNEOztBQUVEQyxFQUFBQSxXQUFXLEdBQUc7QUFDWixTQUFLQyxNQUFMLEdBQWNDLElBQUksQ0FBQ0QsTUFBTCxFQUFkO0FBQ0EsU0FBS0UsTUFBTCxDQUFZUixDQUFaLEdBQWdCLEtBQUtOLEVBQUwsR0FBVSxLQUFLWSxNQUFMLElBQWUsS0FBS1QsRUFBTCxHQUFVLEtBQUtILEVBQTlCLENBQTFCO0FBQ0EsU0FBS2MsTUFBTCxDQUFZUCxDQUFaLEdBQWdCLEtBQUtOLEVBQUwsR0FBVSxLQUFLVyxNQUFMLElBQWUsS0FBS1IsRUFBTCxHQUFVLEtBQUtILEVBQTlCLENBQTFCO0FBQ0EsU0FBS2EsTUFBTCxDQUFZTixDQUFaLEdBQWdCLEtBQUtOLEVBQUwsR0FBVSxLQUFLVSxNQUFMLElBQWUsS0FBS1AsRUFBTCxHQUFVLEtBQUtILEVBQTlCLENBQTFCO0FBRUEsV0FBTyxLQUFLWSxNQUFaO0FBQ0Q7O0FBeER3QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBWZWN0b3IzRCBmcm9tICcuLi9tYXRoL1ZlY3RvcjNEJztcbmltcG9ydCBab25lIGZyb20gJy4vWm9uZSc7XG5pbXBvcnQgeyBaT05FX1RZUEVfTElORSBhcyB0eXBlIH0gZnJvbSAnLi90eXBlcyc7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIExpbmVab25lIGV4dGVuZHMgWm9uZSB7XG4gIC8qKlxuICAgKiBMaW5lWm9uZSBpcyBhIDNkIGxpbmUgem9uZVxuICAgKiBAcGFyYW0ge051bWJlcnxWZWN0b3IzRH0geDEgLSB0aGUgbGluZSdzIHN0YXJ0IHBvaW50IG9mIHggdmFsdWUgb3IgYSBWZWN0b3IzRCBPYmplY3RcbiAgICogQHBhcmFtIHtOdW1iZXJ8VmVjdG9yM0R9IHkxIC0gdGhlIGxpbmUncyBzdGFydCBwb2ludCBvZiB5IHZhbHVlIG9yIGEgVmVjdG9yM0QgT2JqZWN0XG4gICAqIEBwYXJhbSB7TnVtYmVyfSB6MSAtIHRoZSBsaW5lJ3Mgc3RhcnQgcG9pbnQgb2YgeiB2YWx1ZVxuICAgKiBAcGFyYW0ge051bWJlcn0geDIgLSB0aGUgbGluZSdzIGVuZCBwb2ludCBvZiB4IHZhbHVlXG4gICAqIEBwYXJhbSB7TnVtYmVyfSB5MiAtIHRoZSBsaW5lJ3MgZW5kIHBvaW50IG9mIHkgdmFsdWVcbiAgICogQHBhcmFtIHtOdW1iZXJ9IHoyIC0gdGhlIGxpbmUncyBlbmQgcG9pbnQgb2YgeiB2YWx1ZVxuICAgKiBAZXhhbXBsZVxuICAgKiB2YXIgbGluZVpvbmUgPSBuZXcgU3lzdGVtLkxpbmVab25lKDAsMCwwLDEwMCwxMDAsMCk7XG4gICAqIG9yXG4gICAqIHZhciBsaW5lWm9uZSA9IG5ldyBTeXN0ZW0uTGluZVpvbmUobmV3IFN5c3RlbS5WZWN0b3IzRCgwLDAsMCksbmV3IFN5c3RlbS5WZWN0b3IzRCgxMDAsMTAwLDApKTtcbiAgICogQGV4dGVuZHMge1pvbmV9XG4gICAqIEBjb25zdHJ1Y3RvclxuICAgKi9cbiAgY29uc3RydWN0b3IoeDEsIHkxLCB6MSwgeDIsIHkyLCB6Mikge1xuICAgIHN1cGVyKHR5cGUpO1xuXG4gICAgaWYgKHgxIGluc3RhbmNlb2YgVmVjdG9yM0QpIHtcbiAgICAgIHRoaXMueDEgPSB4MS54O1xuICAgICAgdGhpcy55MSA9IHgxLnk7XG4gICAgICB0aGlzLnoxID0geDEuejtcblxuICAgICAgdGhpcy54MiA9IHgyLng7XG4gICAgICB0aGlzLnkyID0geDIueTtcbiAgICAgIHRoaXMuejIgPSB4Mi56O1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLngxID0geDE7XG4gICAgICB0aGlzLnkxID0geTE7XG4gICAgICB0aGlzLnoxID0gejE7XG5cbiAgICAgIHRoaXMueDIgPSB4MjtcbiAgICAgIHRoaXMueTIgPSB5MjtcbiAgICAgIHRoaXMuejIgPSB6MjtcbiAgICB9XG5cbiAgICB0aGlzLnN1cHBvcnRzQ3Jvc3NpbmcgPSBmYWxzZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRydWUgdG8gaW5kaWNhdGUgdGhpcyBpcyBhIExpbmVab25lLlxuICAgKlxuICAgKiBAcmV0dXJuIHtib29sZWFufVxuICAgKi9cbiAgaXNMaW5lWm9uZSgpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIGdldFBvc2l0aW9uKCkge1xuICAgIHRoaXMucmFuZG9tID0gTWF0aC5yYW5kb20oKTtcbiAgICB0aGlzLnZlY3Rvci54ID0gdGhpcy54MSArIHRoaXMucmFuZG9tICogKHRoaXMueDIgLSB0aGlzLngxKTtcbiAgICB0aGlzLnZlY3Rvci55ID0gdGhpcy55MSArIHRoaXMucmFuZG9tICogKHRoaXMueTIgLSB0aGlzLnkxKTtcbiAgICB0aGlzLnZlY3Rvci56ID0gdGhpcy56MSArIHRoaXMucmFuZG9tICogKHRoaXMuejIgLSB0aGlzLnoxKTtcblxuICAgIHJldHVybiB0aGlzLnZlY3RvcjtcbiAgfVxufVxuIl19 ================================================ FILE: packages/sdk/lib/core/libs/three-nebula/zone/MeshZone.js ================================================ import Zone from './Zone'; import { ZONE_TYPE_MESH as type } from './types'; /** * Uses a three THREE.BufferGeometry to determine the zone parameters. * */ export default class MeshZone extends Zone { /** * @constructs {MeshZone} * * @param {THREE.BufferGeometry|Mesh} bounds - the geometry or mesh that will determine the zone bounds * @param {number} scale - the zone scale * @return void */ constructor(bounds, scale = 1) { super(type); this.geometry = null; this.scale = scale; this.supportsCrossing = false; if (bounds.type && bounds.type === 'Geometry') { this.geometry = bounds; } if (bounds.geometry) { this.geometry = bounds.geometry; } if (!this.geometry) { throw new Error('MeshZone unable to set geometry from the supplied bounds'); } } /** * Returns true to indicate this is a MeshZone. * * @return {boolean} */ isMeshZone() { return true; } getPosition() { if(!this.geometry.attributes.position) { this.vector.x = 0; this.vector.y = 0; this.vector.z = 0; return this.vector; } if(this.geometry.index){ const rVector = ((this.geometry.index.count / 3) * Math.random() >> 0) * 3; this.vector.x = this.geometry.attributes.position.array[this.geometry.index.array[rVector]] * this.scale; this.vector.y = this.geometry.attributes.position.array[this.geometry.index.array[rVector + 1]] * this.scale; this.vector.z = this.geometry.attributes.position.array[this.geometry.index.array[rVector + 2]] * this.scale; return this.vector; }else{ const rVector = this.geometry.attributes.position.count * Math.random() >> 0; this.vector.x = this.geometry.attributes.position.array[rVector] * this.scale; this.vector.y = this.geometry.attributes.position.array[rVector + 1] * this.scale; this.vector.z = this.geometry.attributes.position.array[rVector + 2] * this.scale; return this.vector; } } } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy96b25lL01lc2hab25lLmpzIl0sIm5hbWVzIjpbIlpvbmUiLCJaT05FX1RZUEVfTUVTSCIsInR5cGUiLCJNZXNoWm9uZSIsImNvbnN0cnVjdG9yIiwiYm91bmRzIiwic2NhbGUiLCJUaHJlZUdlb21ldHJ5IiwiZ2VvbWV0cnkiLCJzdXBwb3J0c0Nyb3NzaW5nIiwiRXJyb3IiLCJpc0J1ZmZlckdlb21ldHJ5IiwiZnJvbUJ1ZmZlckdlb21ldHJ5IiwiaXNNZXNoWm9uZSIsImdldFBvc2l0aW9uIiwidmVydGljZXMiLCJyVmVjdG9yIiwibGVuZ3RoIiwiTWF0aCIsInJhbmRvbSIsInZlY3RvciIsIngiLCJ5IiwieiJdLCJtYXBwaW5ncyI6IkFBQUEsT0FBT0EsSUFBUCxNQUFpQixRQUFqQjtBQUNBLFNBQVNDLGNBQWMsSUFBSUMsSUFBM0IsUUFBdUMsU0FBdkM7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFDQSxlQUFlLE1BQU1DLFFBQU4sU0FBdUJILElBQXZCLENBQTRCO0FBQ3pDO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDRUksRUFBQUEsV0FBVyxDQUFDQyxNQUFELEVBQVNDLEtBQUssR0FBRyxDQUFqQixFQUFvQkMsYUFBcEIsRUFBbUM7QUFDNUMsVUFBTUwsSUFBTjtBQUVBLFNBQUtNLFFBQUwsR0FBZ0IsSUFBaEI7QUFDQSxTQUFLRixLQUFMLEdBQWFBLEtBQWI7QUFDQSxTQUFLRyxnQkFBTCxHQUF3QixLQUF4Qjs7QUFFQSxRQUFJSixNQUFNLENBQUNILElBQVAsSUFBZUcsTUFBTSxDQUFDSCxJQUFQLEtBQWdCLFVBQW5DLEVBQStDO0FBQzdDLFdBQUtNLFFBQUwsR0FBZ0JILE1BQWhCO0FBQ0Q7O0FBRUQsUUFBSUEsTUFBTSxDQUFDRyxRQUFYLEVBQXFCO0FBQ25CLFdBQUtBLFFBQUwsR0FBZ0JILE1BQU0sQ0FBQ0csUUFBdkI7QUFDRDs7QUFFRCxRQUFJLENBQUMsS0FBS0EsUUFBVixFQUFvQjtBQUNsQixZQUFNLElBQUlFLEtBQUosQ0FDSiwwREFESSxDQUFOO0FBR0Q7O0FBRUQsUUFBSSxLQUFLRixRQUFMLENBQWNHLGdCQUFsQixFQUFvQztBQUNsQyxXQUFLSCxRQUFMLEdBQWdCLElBQUlELGFBQUosR0FBb0JLLGtCQUFwQixDQUF1QyxLQUFLSixRQUE1QyxDQUFoQjtBQUNEO0FBQ0Y7QUFFRDtBQUNGO0FBQ0E7QUFDQTtBQUNBOzs7QUFDRUssRUFBQUEsVUFBVSxHQUFHO0FBQ1gsV0FBTyxJQUFQO0FBQ0Q7O0FBRURDLEVBQUFBLFdBQVcsR0FBRztBQUNaLFVBQU1DLFFBQVEsR0FBRyxLQUFLUCxRQUFMLENBQWNPLFFBQS9CO0FBQ0EsVUFBTUMsT0FBTyxHQUFHRCxRQUFRLENBQUVBLFFBQVEsQ0FBQ0UsTUFBVCxHQUFrQkMsSUFBSSxDQUFDQyxNQUFMLEVBQW5CLElBQXFDLENBQXRDLENBQXhCO0FBRUEsU0FBS0MsTUFBTCxDQUFZQyxDQUFaLEdBQWdCTCxPQUFPLENBQUNLLENBQVIsR0FBWSxLQUFLZixLQUFqQztBQUNBLFNBQUtjLE1BQUwsQ0FBWUUsQ0FBWixHQUFnQk4sT0FBTyxDQUFDTSxDQUFSLEdBQVksS0FBS2hCLEtBQWpDO0FBQ0EsU0FBS2MsTUFBTCxDQUFZRyxDQUFaLEdBQWdCUCxPQUFPLENBQUNPLENBQVIsR0FBWSxLQUFLakIsS0FBakM7QUFFQSxXQUFPLEtBQUtjLE1BQVo7QUFDRDs7QUFyRHdDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFpvbmUgZnJvbSAnLi9ab25lJztcbmltcG9ydCB7IFpPTkVfVFlQRV9NRVNIIGFzIHR5cGUgfSBmcm9tICcuL3R5cGVzJztcblxuLyoqXG4gKiBVc2VzIGEgdGhyZWUgVEhSRUUuR2VvbWV0cnkgdG8gZGV0ZXJtaW5lIHRoZSB6b25lIHBhcmFtZXRlcnMuXG4gKlxuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBNZXNoWm9uZSBleHRlbmRzIFpvbmUge1xuICAvKipcbiAgICogQGNvbnN0cnVjdHMge01lc2hab25lfVxuICAgKlxuICAgKiBAcGFyYW0ge1RIUkVFLkdlb21ldHJ5fE1lc2h9IGJvdW5kcyAtIHRoZSBnZW9tZXRyeSBvciBtZXNoIHRoYXQgd2lsbCBkZXRlcm1pbmUgdGhlIHpvbmUgYm91bmRzXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBzY2FsZSAtIHRoZSB6b25lIHNjYWxlXG4gICAqIEBwYXJhbSB7VEhSRUUuR2VvbWV0cnl9IFRocmVlR2VvbWV0cnkgLSB0aGUgdGhyZWUgZ2VvbWV0cnkgY2xhc3NcbiAgICogQHJldHVybiB2b2lkXG4gICAqL1xuICBjb25zdHJ1Y3Rvcihib3VuZHMsIHNjYWxlID0gMSwgVGhyZWVHZW9tZXRyeSkge1xuICAgIHN1cGVyKHR5cGUpO1xuXG4gICAgdGhpcy5nZW9tZXRyeSA9IG51bGw7XG4gICAgdGhpcy5zY2FsZSA9IHNjYWxlO1xuICAgIHRoaXMuc3VwcG9ydHNDcm9zc2luZyA9IGZhbHNlO1xuXG4gICAgaWYgKGJvdW5kcy50eXBlICYmIGJvdW5kcy50eXBlID09PSAnR2VvbWV0cnknKSB7XG4gICAgICB0aGlzLmdlb21ldHJ5ID0gYm91bmRzO1xuICAgIH1cblxuICAgIGlmIChib3VuZHMuZ2VvbWV0cnkpIHtcbiAgICAgIHRoaXMuZ2VvbWV0cnkgPSBib3VuZHMuZ2VvbWV0cnk7XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLmdlb21ldHJ5KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICdNZXNoWm9uZSB1bmFibGUgdG8gc2V0IGdlb21ldHJ5IGZyb20gdGhlIHN1cHBsaWVkIGJvdW5kcydcbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuZ2VvbWV0cnkuaXNCdWZmZXJHZW9tZXRyeSkge1xuICAgICAgdGhpcy5nZW9tZXRyeSA9IG5ldyBUaHJlZUdlb21ldHJ5KCkuZnJvbUJ1ZmZlckdlb21ldHJ5KHRoaXMuZ2VvbWV0cnkpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRydWUgdG8gaW5kaWNhdGUgdGhpcyBpcyBhIE1lc2hab25lLlxuICAgKlxuICAgKiBAcmV0dXJuIHtib29sZWFufVxuICAgKi9cbiAgaXNNZXNoWm9uZSgpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIGdldFBvc2l0aW9uKCkge1xuICAgIGNvbnN0IHZlcnRpY2VzID0gdGhpcy5nZW9tZXRyeS52ZXJ0aWNlcztcbiAgICBjb25zdCByVmVjdG9yID0gdmVydGljZXNbKHZlcnRpY2VzLmxlbmd0aCAqIE1hdGgucmFuZG9tKCkpID4+IDBdO1xuXG4gICAgdGhpcy52ZWN0b3IueCA9IHJWZWN0b3IueCAqIHRoaXMuc2NhbGU7XG4gICAgdGhpcy52ZWN0b3IueSA9IHJWZWN0b3IueSAqIHRoaXMuc2NhbGU7XG4gICAgdGhpcy52ZWN0b3IueiA9IHJWZWN0b3IueiAqIHRoaXMuc2NhbGU7XG5cbiAgICByZXR1cm4gdGhpcy52ZWN0b3I7XG4gIH1cbn1cbiJdfQ== ================================================ FILE: packages/sdk/lib/core/libs/three-nebula/zone/PointZone.js ================================================ import Util from '../utils/Util'; import Zone from './Zone'; import { ZONE_TYPE_POINT as type } from './types'; export default class PointZone extends Zone { /** * PointZone is a point zone * @param {Number|Vector3D} x - the center's x value or a Vector3D Object * @param {Number} y - the center's y value * @param {Number} z - the center's z value * @example * var pointZone = new System.PointZone(0,30,10); * or * var pointZone = new System.PointZone(new System.Vector3D(0,30,10)); * @extends {Zone} * @constructor */ constructor(a, b, c) { super(type); // TODO see below, these should probably be assigned properly // eslint-disable-next-line var x, y, z; if (Util.isUndefined(a, b, c)) { x = y = z = 0; } else { x = a; // eslint-disable-next-line y = b; // eslint-disable-next-line z = c; } this.x = x; this.y = y; this.z = z; this.supportsCrossing = false; } /** * Returns true to indicate this is a PointZone. * * @return {boolean} */ isPointZone() { return true; } getPosition() { this.vector.x = this.x; this.vector.y = this.y; this.vector.z = this.z; return this.vector; } } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy96b25lL1BvaW50Wm9uZS5qcyJdLCJuYW1lcyI6WyJVdGlsIiwiWm9uZSIsIlpPTkVfVFlQRV9QT0lOVCIsInR5cGUiLCJQb2ludFpvbmUiLCJjb25zdHJ1Y3RvciIsImEiLCJiIiwiYyIsIngiLCJ5IiwieiIsImlzVW5kZWZpbmVkIiwic3VwcG9ydHNDcm9zc2luZyIsImlzUG9pbnRab25lIiwiZ2V0UG9zaXRpb24iLCJ2ZWN0b3IiXSwibWFwcGluZ3MiOiJBQUFBLE9BQU9BLElBQVAsTUFBaUIsZUFBakI7QUFDQSxPQUFPQyxJQUFQLE1BQWlCLFFBQWpCO0FBQ0EsU0FBU0MsZUFBZSxJQUFJQyxJQUE1QixRQUF3QyxTQUF4QztBQUVBLGVBQWUsTUFBTUMsU0FBTixTQUF3QkgsSUFBeEIsQ0FBNkI7QUFDMUM7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0VJLEVBQUFBLFdBQVcsQ0FBQ0MsQ0FBRCxFQUFJQyxDQUFKLEVBQU9DLENBQVAsRUFBVTtBQUNuQixVQUFNTCxJQUFOLEVBRG1CLENBR25CO0FBQ0E7O0FBQ0EsUUFBSU0sQ0FBSixFQUFPQyxDQUFQLEVBQVVDLENBQVY7O0FBRUEsUUFBSVgsSUFBSSxDQUFDWSxXQUFMLENBQWlCTixDQUFqQixFQUFvQkMsQ0FBcEIsRUFBdUJDLENBQXZCLENBQUosRUFBK0I7QUFDN0JDLE1BQUFBLENBQUMsR0FBR0MsQ0FBQyxHQUFHQyxDQUFDLEdBQUcsQ0FBWjtBQUNELEtBRkQsTUFFTztBQUNMRixNQUFBQSxDQUFDLEdBQUdILENBQUosQ0FESyxDQUVMOztBQUNBSSxNQUFBQSxDQUFDLEdBQUdILENBQUosQ0FISyxDQUlMOztBQUNBSSxNQUFBQSxDQUFDLEdBQUdILENBQUo7QUFDRDs7QUFFRCxTQUFLQyxDQUFMLEdBQVNBLENBQVQsQ0FqQm1CLENBbUJuQjs7QUFDQSxTQUFLQyxDQUFMLEdBQVNELENBQVQsQ0FwQm1CLENBc0JuQjs7QUFDQSxTQUFLRSxDQUFMLEdBQVNGLENBQVQ7QUFDQSxTQUFLSSxnQkFBTCxHQUF3QixLQUF4QjtBQUNEO0FBRUQ7QUFDRjtBQUNBO0FBQ0E7QUFDQTs7O0FBQ0VDLEVBQUFBLFdBQVcsR0FBRztBQUNaLFdBQU8sSUFBUDtBQUNEOztBQUVEQyxFQUFBQSxXQUFXLEdBQUc7QUFDWixTQUFLQyxNQUFMLENBQVlQLENBQVosR0FBZ0IsS0FBS0EsQ0FBckI7QUFDQSxTQUFLTyxNQUFMLENBQVlOLENBQVosR0FBZ0IsS0FBS0EsQ0FBckI7QUFDQSxTQUFLTSxNQUFMLENBQVlMLENBQVosR0FBZ0IsS0FBS0EsQ0FBckI7QUFFQSxXQUFPLEtBQUtLLE1BQVo7QUFDRDs7QUF2RHlDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFV0aWwgZnJvbSAnLi4vdXRpbHMvVXRpbCc7XG5pbXBvcnQgWm9uZSBmcm9tICcuL1pvbmUnO1xuaW1wb3J0IHsgWk9ORV9UWVBFX1BPSU5UIGFzIHR5cGUgfSBmcm9tICcuL3R5cGVzJztcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgUG9pbnRab25lIGV4dGVuZHMgWm9uZSB7XG4gIC8qKlxuICAgKiBQb2ludFpvbmUgaXMgYSBwb2ludCB6b25lXG4gICAqIEBwYXJhbSB7TnVtYmVyfFZlY3RvcjNEfSB4IC0gdGhlIGNlbnRlcidzIHggdmFsdWUgb3IgYSBWZWN0b3IzRCBPYmplY3RcbiAgICogQHBhcmFtIHtOdW1iZXJ9IHkgLSB0aGUgY2VudGVyJ3MgeSB2YWx1ZVxuICAgKiBAcGFyYW0ge051bWJlcn0geiAtIHRoZSBjZW50ZXIncyB6IHZhbHVlXG4gICAqIEBleGFtcGxlXG4gICAqIHZhciBwb2ludFpvbmUgPSBuZXcgU3lzdGVtLlBvaW50Wm9uZSgwLDMwLDEwKTtcbiAgICogb3JcbiAgICogdmFyIHBvaW50Wm9uZSA9IG5ldyBTeXN0ZW0uUG9pbnRab25lKG5ldyBTeXN0ZW0uVmVjdG9yM0QoMCwzMCwxMCkpO1xuICAgKiBAZXh0ZW5kcyB7Wm9uZX1cbiAgICogQGNvbnN0cnVjdG9yXG4gICAqL1xuICBjb25zdHJ1Y3RvcihhLCBiLCBjKSB7XG4gICAgc3VwZXIodHlwZSk7XG5cbiAgICAvLyBUT0RPIHNlZSBiZWxvdywgdGhlc2Ugc2hvdWxkIHByb2JhYmx5IGJlIGFzc2lnbmVkIHByb3Blcmx5XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lXG4gICAgdmFyIHgsIHksIHo7XG5cbiAgICBpZiAoVXRpbC5pc1VuZGVmaW5lZChhLCBiLCBjKSkge1xuICAgICAgeCA9IHkgPSB6ID0gMDtcbiAgICB9IGVsc2Uge1xuICAgICAgeCA9IGE7XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcbiAgICAgIHkgPSBiO1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lXG4gICAgICB6ID0gYztcbiAgICB9XG5cbiAgICB0aGlzLnggPSB4O1xuXG4gICAgLy8gVE9ETyBzaG91bGRuJ3QgdGhpcyBiZSBzZXQgdG8geT9cbiAgICB0aGlzLnkgPSB4O1xuXG4gICAgLy8gVE9ETyBzaG91bGRuJ3QgdGhpcyBiZSBzZXQgdG8gej9cbiAgICB0aGlzLnogPSB4O1xuICAgIHRoaXMuc3VwcG9ydHNDcm9zc2luZyA9IGZhbHNlO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdHJ1ZSB0byBpbmRpY2F0ZSB0aGlzIGlzIGEgUG9pbnRab25lLlxuICAgKlxuICAgKiBAcmV0dXJuIHtib29sZWFufVxuICAgKi9cbiAgaXNQb2ludFpvbmUoKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBnZXRQb3NpdGlvbigpIHtcbiAgICB0aGlzLnZlY3Rvci54ID0gdGhpcy54O1xuICAgIHRoaXMudmVjdG9yLnkgPSB0aGlzLnk7XG4gICAgdGhpcy52ZWN0b3IueiA9IHRoaXMuejtcblxuICAgIHJldHVybiB0aGlzLnZlY3RvcjtcbiAgfVxufVxuIl19 ================================================ FILE: packages/sdk/lib/core/libs/three-nebula/zone/ScreenZone.js ================================================ import THREEUtil from '../utils/THREEUtil'; import Vector3D from '../math/Vector3D'; import Zone from './Zone'; import { ZONE_TYPE_SCREEN as type } from './types'; export default class ScreenZone extends Zone { /** * ScreenZone is a screen zone * @param {camera} camera - THREE.js camera * @param {renderer} renderer - THREE.js renderer * @param {Number} dis - the distance from the screen edge * @param {String} dir - the direction of the screen zone * @extends {Zone} * @constructor */ constructor(camera, renderer, dis, dir) { super(type); this.camera = camera; this.renderer = renderer; this.dis = dis || 20; dir = dir || '1234'; for (var i = 1; i < 5; i++) this['d' + i] = dir.indexOf(i + '') >= 0; } /** * Returns true to indicate this is a ScreenZone. * * @return {boolean} */ isScreenZone() { return true; } _dead(particle) { var pos = THREEUtil.toScreenPos(particle.position, this.camera, this.renderer.domElement); var canvas = this.renderer.domElement; if (pos.y + particle.radius < -this.dis && this.d1) { particle.dead = true; } else if (pos.y - particle.radius > canvas.height + this.dis && this.d3) { particle.dead = true; } if (pos.x + particle.radius < -this.dis && this.d4) { particle.dead = true; } else if (pos.x - particle.radius > canvas.width + this.dis && this.d2) { particle.dead = true; } } _bound(particle) { var pos = THREEUtil.toScreenPos(particle.position, this.camera, this.renderer.domElement); var canvas = this.renderer.domElement; if (pos.y + particle.radius < -this.dis) { particle.velocity.y *= -1; } else if (pos.y - particle.radius > canvas.height + this.dis) { particle.velocity.y *= -1; } if (pos.x + particle.radius < -this.dis) { particle.velocity.y *= -1; } else if (pos.x - particle.radius > canvas.width + this.dis) { particle.velocity.y *= -1; } } } ScreenZone.prototype.getPosition = function () { var vec2 = new Vector3D(), canvas; return function () { canvas = this.renderer.domElement; vec2.x = Math.random() * canvas.width; vec2.y = Math.random() * canvas.height; this.vector.copy(THREEUtil.toSpacePos(vec2, this.camera, canvas)); return this.vector; }; }(); ScreenZone.prototype._cross = function () { var vec2 = new Vector3D(); return function (particle) { var pos = THREEUtil.toScreenPos(particle.position, this.camera, this.renderer.domElement); var canvas = this.renderer.domElement; if (pos.y + particle.radius < -this.dis) { vec2.x = pos.x; vec2.y = canvas.height + this.dis + particle.radius; particle.position.y = THREEUtil.toSpacePos(vec2, this.camera, canvas).y; } else if (pos.y - particle.radius > canvas.height + this.dis) { vec2.x = pos.x; vec2.y = -this.dis - particle.radius; particle.position.y = THREEUtil.toSpacePos(vec2, this.camera, canvas).y; } if (pos.x + particle.radius < -this.dis) { vec2.y = pos.y; vec2.x = canvas.width + this.dis + particle.radius; particle.position.x = THREEUtil.toSpacePos(vec2, this.camera, canvas).x; } else if (pos.x - particle.radius > canvas.width + this.dis) { vec2.y = pos.y; vec2.x = -this.dis - particle.radius; particle.position.x = THREEUtil.toSpacePos(vec2, this.camera, canvas).x; } }; }(); ================================================ FILE: packages/sdk/lib/core/libs/three-nebula/zone/SphereZone.js ================================================ import { PI } from '../constants'; import Util from '../utils/Util'; import Vector3D from '../math/Vector3D'; import Zone from './Zone'; import { ZONE_TYPE_SPHERE as type } from './types'; /** * A spherical zone for particles to be emitted within. * */ export default class SphereZone extends Zone { /** * @constructs {SphereZone} * * @param {number} centerX - the sphere's center x coordinate * @param {number} centerY - the sphere's center y coordinate * @param {number} centerZ - the sphere's center z coordinate * @param {number} radius - the sphere's radius value * @return void */ constructor(centerX, centerY, centerZ, radius) { super(type); // TODO see below, these should probably be assigned properly // eslint-disable-next-line let x, y, z, r; if (Util.isUndefined(centerY, centerZ, radius)) { x = y = z = 0; r = centerX || 100; } else { x = centerX; // eslint-disable-next-line y = centerY; // eslint-disable-next-line z = centerZ; r = radius; } this.x = x; // TODO shouldn't this be set to y? this.y = x; // TODO shouldn't this be set to z? this.z = x; this.radius = r; this.the = this.phi = 0; } /** * Returns true to indicate this is a SphereZone. * * @return {boolean} */ isSphereZone() { return true; } /** * Sets the particle to dead if the particle collides with the sphere. * * @param {object} particle * @return void */ _dead(particle) { var d = particle.position.distanceTo(this); if (d - particle.radius > this.radius) particle.dead = true; } /** * Warns that this zone does not support the _cross method. * * @return void */ _cross() { console.warn(`${this.constructor.name} does not support the _cross method`); } } SphereZone.prototype.getPosition = function () { var tha, phi, r; return function () { this.random = Math.random(); r = this.random * this.radius; tha = PI * Math.random(); //[0-pi] phi = PI * 2 * Math.random(); //[0-2pi] this.vector.x = this.x + r * Math.sin(tha) * Math.cos(phi); this.vector.y = this.y + r * Math.sin(phi) * Math.sin(tha); this.vector.z = this.z + r * Math.cos(tha); return this.vector; }; }(); SphereZone.prototype._bound = function () { var normal = new Vector3D(), v = new Vector3D(), k; return function (particle) { var d = particle.position.distanceTo(this); if (d + particle.radius >= this.radius) { normal.copy(particle.position).sub(this).normalize(); v.copy(particle.velocity); k = 2 * v.dot(normal); particle.velocity.sub(normal.scalar(k)); } }; }(); //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy96b25lL1NwaGVyZVpvbmUuanMiXSwibmFtZXMiOlsiUEkiLCJVdGlsIiwiVmVjdG9yM0QiLCJab25lIiwiWk9ORV9UWVBFX1NQSEVSRSIsInR5cGUiLCJTcGhlcmVab25lIiwiY29uc3RydWN0b3IiLCJjZW50ZXJYIiwiY2VudGVyWSIsImNlbnRlcloiLCJyYWRpdXMiLCJ4IiwieSIsInoiLCJyIiwiaXNVbmRlZmluZWQiLCJ0aGUiLCJwaGkiLCJpc1NwaGVyZVpvbmUiLCJfZGVhZCIsInBhcnRpY2xlIiwiZCIsInBvc2l0aW9uIiwiZGlzdGFuY2VUbyIsImRlYWQiLCJfY3Jvc3MiLCJjb25zb2xlIiwid2FybiIsIm5hbWUiLCJwcm90b3R5cGUiLCJnZXRQb3NpdGlvbiIsInRoYSIsInJhbmRvbSIsIk1hdGgiLCJ2ZWN0b3IiLCJzaW4iLCJjb3MiLCJfYm91bmQiLCJub3JtYWwiLCJ2IiwiayIsImNvcHkiLCJzdWIiLCJub3JtYWxpemUiLCJ2ZWxvY2l0eSIsImRvdCIsInNjYWxhciJdLCJtYXBwaW5ncyI6IkFBQUEsU0FBU0EsRUFBVCxRQUFtQixjQUFuQjtBQUNBLE9BQU9DLElBQVAsTUFBaUIsZUFBakI7QUFDQSxPQUFPQyxRQUFQLE1BQXFCLGtCQUFyQjtBQUNBLE9BQU9DLElBQVAsTUFBaUIsUUFBakI7QUFDQSxTQUFTQyxnQkFBZ0IsSUFBSUMsSUFBN0IsUUFBeUMsU0FBekM7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFDQSxlQUFlLE1BQU1DLFVBQU4sU0FBeUJILElBQXpCLENBQThCO0FBQzNDO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNFSSxFQUFBQSxXQUFXLENBQUNDLE9BQUQsRUFBVUMsT0FBVixFQUFtQkMsT0FBbkIsRUFBNEJDLE1BQTVCLEVBQW9DO0FBQzdDLFVBQU1OLElBQU4sRUFENkMsQ0FHN0M7QUFDQTs7QUFDQSxRQUFJTyxDQUFKLEVBQU9DLENBQVAsRUFBVUMsQ0FBVixFQUFhQyxDQUFiOztBQUVBLFFBQUlkLElBQUksQ0FBQ2UsV0FBTCxDQUFpQlAsT0FBakIsRUFBMEJDLE9BQTFCLEVBQW1DQyxNQUFuQyxDQUFKLEVBQWdEO0FBQzlDQyxNQUFBQSxDQUFDLEdBQUdDLENBQUMsR0FBR0MsQ0FBQyxHQUFHLENBQVo7QUFDQUMsTUFBQUEsQ0FBQyxHQUFHUCxPQUFPLElBQUksR0FBZjtBQUNELEtBSEQsTUFHTztBQUNMSSxNQUFBQSxDQUFDLEdBQUdKLE9BQUosQ0FESyxDQUVMOztBQUNBSyxNQUFBQSxDQUFDLEdBQUdKLE9BQUosQ0FISyxDQUlMOztBQUNBSyxNQUFBQSxDQUFDLEdBQUdKLE9BQUo7QUFDQUssTUFBQUEsQ0FBQyxHQUFHSixNQUFKO0FBQ0Q7O0FBRUQsU0FBS0MsQ0FBTCxHQUFTQSxDQUFULENBbkI2QyxDQXFCN0M7O0FBQ0EsU0FBS0MsQ0FBTCxHQUFTRCxDQUFULENBdEI2QyxDQXdCN0M7O0FBQ0EsU0FBS0UsQ0FBTCxHQUFTRixDQUFUO0FBQ0EsU0FBS0QsTUFBTCxHQUFjSSxDQUFkO0FBQ0EsU0FBS0UsR0FBTCxHQUFXLEtBQUtDLEdBQUwsR0FBVyxDQUF0QjtBQUNEO0FBRUQ7QUFDRjtBQUNBO0FBQ0E7QUFDQTs7O0FBQ0VDLEVBQUFBLFlBQVksR0FBRztBQUNiLFdBQU8sSUFBUDtBQUNEO0FBRUQ7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFDRUMsRUFBQUEsS0FBSyxDQUFDQyxRQUFELEVBQVc7QUFDZCxRQUFJQyxDQUFDLEdBQUdELFFBQVEsQ0FBQ0UsUUFBVCxDQUFrQkMsVUFBbEIsQ0FBNkIsSUFBN0IsQ0FBUjtBQUVBLFFBQUlGLENBQUMsR0FBR0QsUUFBUSxDQUFDVixNQUFiLEdBQXNCLEtBQUtBLE1BQS9CLEVBQXVDVSxRQUFRLENBQUNJLElBQVQsR0FBZ0IsSUFBaEI7QUFDeEM7QUFFRDtBQUNGO0FBQ0E7QUFDQTtBQUNBOzs7QUFDRUMsRUFBQUEsTUFBTSxHQUFHO0FBQ1BDLElBQUFBLE9BQU8sQ0FBQ0MsSUFBUixDQUFjLEdBQUUsS0FBS3JCLFdBQUwsQ0FBaUJzQixJQUFLLHFDQUF0QztBQUNEOztBQXBFMEM7O0FBdUU3Q3ZCLFVBQVUsQ0FBQ3dCLFNBQVgsQ0FBcUJDLFdBQXJCLEdBQW9DLFlBQVc7QUFDN0MsTUFBSUMsR0FBSixFQUFTZCxHQUFULEVBQWNILENBQWQ7QUFFQSxTQUFPLFlBQVc7QUFDaEIsU0FBS2tCLE1BQUwsR0FBY0MsSUFBSSxDQUFDRCxNQUFMLEVBQWQ7QUFFQWxCLElBQUFBLENBQUMsR0FBRyxLQUFLa0IsTUFBTCxHQUFjLEtBQUt0QixNQUF2QjtBQUNBcUIsSUFBQUEsR0FBRyxHQUFHaEMsRUFBRSxHQUFHa0MsSUFBSSxDQUFDRCxNQUFMLEVBQVgsQ0FKZ0IsQ0FJVTs7QUFDMUJmLElBQUFBLEdBQUcsR0FBR2xCLEVBQUUsR0FBRyxDQUFMLEdBQVNrQyxJQUFJLENBQUNELE1BQUwsRUFBZixDQUxnQixDQUtjOztBQUU5QixTQUFLRSxNQUFMLENBQVl2QixDQUFaLEdBQWdCLEtBQUtBLENBQUwsR0FBU0csQ0FBQyxHQUFHbUIsSUFBSSxDQUFDRSxHQUFMLENBQVNKLEdBQVQsQ0FBSixHQUFvQkUsSUFBSSxDQUFDRyxHQUFMLENBQVNuQixHQUFULENBQTdDO0FBQ0EsU0FBS2lCLE1BQUwsQ0FBWXRCLENBQVosR0FBZ0IsS0FBS0EsQ0FBTCxHQUFTRSxDQUFDLEdBQUdtQixJQUFJLENBQUNFLEdBQUwsQ0FBU2xCLEdBQVQsQ0FBSixHQUFvQmdCLElBQUksQ0FBQ0UsR0FBTCxDQUFTSixHQUFULENBQTdDO0FBQ0EsU0FBS0csTUFBTCxDQUFZckIsQ0FBWixHQUFnQixLQUFLQSxDQUFMLEdBQVNDLENBQUMsR0FBR21CLElBQUksQ0FBQ0csR0FBTCxDQUFTTCxHQUFULENBQTdCO0FBRUEsV0FBTyxLQUFLRyxNQUFaO0FBQ0QsR0FaRDtBQWFELENBaEJrQyxFQUFuQzs7QUFrQkE3QixVQUFVLENBQUN3QixTQUFYLENBQXFCUSxNQUFyQixHQUErQixZQUFXO0FBQ3hDLE1BQUlDLE1BQU0sR0FBRyxJQUFJckMsUUFBSixFQUFiO0FBQUEsTUFDRXNDLENBQUMsR0FBRyxJQUFJdEMsUUFBSixFQUROO0FBQUEsTUFFRXVDLENBRkY7QUFJQSxTQUFPLFVBQVNwQixRQUFULEVBQW1CO0FBQ3hCLFFBQUlDLENBQUMsR0FBR0QsUUFBUSxDQUFDRSxRQUFULENBQWtCQyxVQUFsQixDQUE2QixJQUE3QixDQUFSOztBQUVBLFFBQUlGLENBQUMsR0FBR0QsUUFBUSxDQUFDVixNQUFiLElBQXVCLEtBQUtBLE1BQWhDLEVBQXdDO0FBQ3RDNEIsTUFBQUEsTUFBTSxDQUNIRyxJQURILENBQ1FyQixRQUFRLENBQUNFLFFBRGpCLEVBRUdvQixHQUZILENBRU8sSUFGUCxFQUdHQyxTQUhIO0FBSUFKLE1BQUFBLENBQUMsQ0FBQ0UsSUFBRixDQUFPckIsUUFBUSxDQUFDd0IsUUFBaEI7QUFDQUosTUFBQUEsQ0FBQyxHQUFHLElBQUlELENBQUMsQ0FBQ00sR0FBRixDQUFNUCxNQUFOLENBQVI7QUFDQWxCLE1BQUFBLFFBQVEsQ0FBQ3dCLFFBQVQsQ0FBa0JGLEdBQWxCLENBQXNCSixNQUFNLENBQUNRLE1BQVAsQ0FBY04sQ0FBZCxDQUF0QjtBQUNEO0FBQ0YsR0FaRDtBQWFELENBbEI2QixFQUE5QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBJIH0gZnJvbSAnLi4vY29uc3RhbnRzJztcbmltcG9ydCBVdGlsIGZyb20gJy4uL3V0aWxzL1V0aWwnO1xuaW1wb3J0IFZlY3RvcjNEIGZyb20gJy4uL21hdGgvVmVjdG9yM0QnO1xuaW1wb3J0IFpvbmUgZnJvbSAnLi9ab25lJztcbmltcG9ydCB7IFpPTkVfVFlQRV9TUEhFUkUgYXMgdHlwZSB9IGZyb20gJy4vdHlwZXMnO1xuXG4vKipcbiAqIEEgc3BoZXJpY2FsIHpvbmUgZm9yIHBhcnRpY2xlcyB0byBiZSBlbWl0dGVkIHdpdGhpbi5cbiAqXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFNwaGVyZVpvbmUgZXh0ZW5kcyBab25lIHtcbiAgLyoqXG4gICAqIEBjb25zdHJ1Y3RzIHtTcGhlcmVab25lfVxuICAgKlxuICAgKiBAcGFyYW0ge251bWJlcn0gY2VudGVyWCAtIHRoZSBzcGhlcmUncyBjZW50ZXIgeCBjb29yZGluYXRlXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBjZW50ZXJZIC0gdGhlIHNwaGVyZSdzIGNlbnRlciB5IGNvb3JkaW5hdGVcbiAgICogQHBhcmFtIHtudW1iZXJ9IGNlbnRlclogLSB0aGUgc3BoZXJlJ3MgY2VudGVyIHogY29vcmRpbmF0ZVxuICAgKiBAcGFyYW0ge251bWJlcn0gcmFkaXVzIC0gdGhlIHNwaGVyZSdzIHJhZGl1cyB2YWx1ZVxuICAgKiBAcmV0dXJuIHZvaWRcbiAgICovXG4gIGNvbnN0cnVjdG9yKGNlbnRlclgsIGNlbnRlclksIGNlbnRlclosIHJhZGl1cykge1xuICAgIHN1cGVyKHR5cGUpO1xuXG4gICAgLy8gVE9ETyBzZWUgYmVsb3csIHRoZXNlIHNob3VsZCBwcm9iYWJseSBiZSBhc3NpZ25lZCBwcm9wZXJseVxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZVxuICAgIGxldCB4LCB5LCB6LCByO1xuXG4gICAgaWYgKFV0aWwuaXNVbmRlZmluZWQoY2VudGVyWSwgY2VudGVyWiwgcmFkaXVzKSkge1xuICAgICAgeCA9IHkgPSB6ID0gMDtcbiAgICAgIHIgPSBjZW50ZXJYIHx8IDEwMDtcbiAgICB9IGVsc2Uge1xuICAgICAgeCA9IGNlbnRlclg7XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcbiAgICAgIHkgPSBjZW50ZXJZO1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lXG4gICAgICB6ID0gY2VudGVyWjtcbiAgICAgIHIgPSByYWRpdXM7XG4gICAgfVxuXG4gICAgdGhpcy54ID0geDtcblxuICAgIC8vIFRPRE8gc2hvdWxkbid0IHRoaXMgYmUgc2V0IHRvIHk/XG4gICAgdGhpcy55ID0geDtcblxuICAgIC8vIFRPRE8gc2hvdWxkbid0IHRoaXMgYmUgc2V0IHRvIHo/XG4gICAgdGhpcy56ID0geDtcbiAgICB0aGlzLnJhZGl1cyA9IHI7XG4gICAgdGhpcy50aGUgPSB0aGlzLnBoaSA9IDA7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0cnVlIHRvIGluZGljYXRlIHRoaXMgaXMgYSBTcGhlcmVab25lLlxuICAgKlxuICAgKiBAcmV0dXJuIHtib29sZWFufVxuICAgKi9cbiAgaXNTcGhlcmVab25lKCkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIHBhcnRpY2xlIHRvIGRlYWQgaWYgdGhlIHBhcnRpY2xlIGNvbGxpZGVzIHdpdGggdGhlIHNwaGVyZS5cbiAgICpcbiAgICogQHBhcmFtIHtvYmplY3R9IHBhcnRpY2xlXG4gICAqIEByZXR1cm4gdm9pZFxuICAgKi9cbiAgX2RlYWQocGFydGljbGUpIHtcbiAgICB2YXIgZCA9IHBhcnRpY2xlLnBvc2l0aW9uLmRpc3RhbmNlVG8odGhpcyk7XG5cbiAgICBpZiAoZCAtIHBhcnRpY2xlLnJhZGl1cyA+IHRoaXMucmFkaXVzKSBwYXJ0aWNsZS5kZWFkID0gdHJ1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBXYXJucyB0aGF0IHRoaXMgem9uZSBkb2VzIG5vdCBzdXBwb3J0IHRoZSBfY3Jvc3MgbWV0aG9kLlxuICAgKlxuICAgKiBAcmV0dXJuIHZvaWRcbiAgICovXG4gIF9jcm9zcygpIHtcbiAgICBjb25zb2xlLndhcm4oYCR7dGhpcy5jb25zdHJ1Y3Rvci5uYW1lfSBkb2VzIG5vdCBzdXBwb3J0IHRoZSBfY3Jvc3MgbWV0aG9kYCk7XG4gIH1cbn1cblxuU3BoZXJlWm9uZS5wcm90b3R5cGUuZ2V0UG9zaXRpb24gPSAoZnVuY3Rpb24oKSB7XG4gIHZhciB0aGEsIHBoaSwgcjtcblxuICByZXR1cm4gZnVuY3Rpb24oKSB7XG4gICAgdGhpcy5yYW5kb20gPSBNYXRoLnJhbmRvbSgpO1xuXG4gICAgciA9IHRoaXMucmFuZG9tICogdGhpcy5yYWRpdXM7XG4gICAgdGhhID0gUEkgKiBNYXRoLnJhbmRvbSgpOyAvL1swLXBpXVxuICAgIHBoaSA9IFBJICogMiAqIE1hdGgucmFuZG9tKCk7IC8vWzAtMnBpXVxuXG4gICAgdGhpcy52ZWN0b3IueCA9IHRoaXMueCArIHIgKiBNYXRoLnNpbih0aGEpICogTWF0aC5jb3MocGhpKTtcbiAgICB0aGlzLnZlY3Rvci55ID0gdGhpcy55ICsgciAqIE1hdGguc2luKHBoaSkgKiBNYXRoLnNpbih0aGEpO1xuICAgIHRoaXMudmVjdG9yLnogPSB0aGlzLnogKyByICogTWF0aC5jb3ModGhhKTtcblxuICAgIHJldHVybiB0aGlzLnZlY3RvcjtcbiAgfTtcbn0pKCk7XG5cblNwaGVyZVpvbmUucHJvdG90eXBlLl9ib3VuZCA9IChmdW5jdGlvbigpIHtcbiAgdmFyIG5vcm1hbCA9IG5ldyBWZWN0b3IzRCgpLFxuICAgIHYgPSBuZXcgVmVjdG9yM0QoKSxcbiAgICBrO1xuXG4gIHJldHVybiBmdW5jdGlvbihwYXJ0aWNsZSkge1xuICAgIHZhciBkID0gcGFydGljbGUucG9zaXRpb24uZGlzdGFuY2VUbyh0aGlzKTtcblxuICAgIGlmIChkICsgcGFydGljbGUucmFkaXVzID49IHRoaXMucmFkaXVzKSB7XG4gICAgICBub3JtYWxcbiAgICAgICAgLmNvcHkocGFydGljbGUucG9zaXRpb24pXG4gICAgICAgIC5zdWIodGhpcylcbiAgICAgICAgLm5vcm1hbGl6ZSgpO1xuICAgICAgdi5jb3B5KHBhcnRpY2xlLnZlbG9jaXR5KTtcbiAgICAgIGsgPSAyICogdi5kb3Qobm9ybWFsKTtcbiAgICAgIHBhcnRpY2xlLnZlbG9jaXR5LnN1Yihub3JtYWwuc2NhbGFyKGspKTtcbiAgICB9XG4gIH07XG59KSgpO1xuIl19 ================================================ FILE: packages/sdk/lib/core/libs/three-nebula/zone/Zone.js ================================================ import Vector3D from '../math/Vector3D'; import { ZONE_TYPE_ABSTRACT } from './types'; /** * A Zone determines the area in 3D space where an emitter's particles can position * themselves. They are supplied to both the Position initializer * and the CrossZone behaviour. * * @see {@link '../initialize/Position.js'} * @see {@link '../behaviour/CrossZone.js'} * @abstract */ export default class Zone { /** * Constructs a Zone instance. * * @param {string} type - The zone type * @return void */ constructor(type = ZONE_TYPE_ABSTRACT) { this.type = type; this.vector = new Vector3D(0, 0, 0); this.random = 0; this.crossType = 'dead'; this.log = true; this.supportsCrossing = true; } getPosition() { return null; } crossing(particle) { if (!this.supportsCrossing) { return console.warn(`${this.constructor.name} does not support the crossing method`); } switch (this.crossType) { case 'bound': this._bound(particle); break; case 'cross': this._cross(particle); break; case 'dead': this._dead(particle); break; } } /** * Determines if this zone is a BoxZone. * * @return {boolean} */ isBoxZone() { return false; } /** * Determines if this zone is a LineZone. * * @return {boolean} */ isLineZone() { return false; } /** * Determines if this zone is a MeshZone. * * @return {boolean} */ isMeshZone() { return false; } /** * Determines if this zone is a PointZone. * * @return {boolean} */ isPointZone() { return false; } /** * Determines if this zone is a ScreenZone. * * @return {boolean} */ isScreenZone() { return false; } /** * Determines if this zone is a SphereZone. * * @return {boolean} */ isSphereZone() { return false; } /** * Sets the particle's dead property to true if required. * * @param {Particle} particle * @abstract */ _dead(particle) {} //eslint-disable-line /** * @abstract */ _bound(particle) {} //eslint-disable-line /** * @abstract */ _cross(particle) {} //eslint-disable-line } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy96b25lL1pvbmUuanMiXSwibmFtZXMiOlsiVmVjdG9yM0QiLCJaT05FX1RZUEVfQUJTVFJBQ1QiLCJab25lIiwiY29uc3RydWN0b3IiLCJ0eXBlIiwidmVjdG9yIiwicmFuZG9tIiwiY3Jvc3NUeXBlIiwibG9nIiwic3VwcG9ydHNDcm9zc2luZyIsImdldFBvc2l0aW9uIiwiY3Jvc3NpbmciLCJwYXJ0aWNsZSIsImNvbnNvbGUiLCJ3YXJuIiwibmFtZSIsIl9ib3VuZCIsIl9jcm9zcyIsIl9kZWFkIiwiaXNCb3hab25lIiwiaXNMaW5lWm9uZSIsImlzTWVzaFpvbmUiLCJpc1BvaW50Wm9uZSIsImlzU2NyZWVuWm9uZSIsImlzU3BoZXJlWm9uZSJdLCJtYXBwaW5ncyI6IkFBQUEsT0FBT0EsUUFBUCxNQUFxQixrQkFBckI7QUFDQSxTQUFTQyxrQkFBVCxRQUFtQyxTQUFuQztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFDQSxlQUFlLE1BQU1DLElBQU4sQ0FBVztBQUN4QjtBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDRUMsRUFBQUEsV0FBVyxDQUFDQyxJQUFJLEdBQUdILGtCQUFSLEVBQTRCO0FBQ3JDLFNBQUtHLElBQUwsR0FBWUEsSUFBWjtBQUNBLFNBQUtDLE1BQUwsR0FBYyxJQUFJTCxRQUFKLENBQWEsQ0FBYixFQUFnQixDQUFoQixFQUFtQixDQUFuQixDQUFkO0FBQ0EsU0FBS00sTUFBTCxHQUFjLENBQWQ7QUFDQSxTQUFLQyxTQUFMLEdBQWlCLE1BQWpCO0FBQ0EsU0FBS0MsR0FBTCxHQUFXLElBQVg7QUFDQSxTQUFLQyxnQkFBTCxHQUF3QixJQUF4QjtBQUNEOztBQUVEQyxFQUFBQSxXQUFXLEdBQUc7QUFDWixXQUFPLElBQVA7QUFDRDs7QUFFREMsRUFBQUEsUUFBUSxDQUFDQyxRQUFELEVBQVc7QUFDakIsUUFBSSxDQUFDLEtBQUtILGdCQUFWLEVBQTRCO0FBQzFCLGFBQU9JLE9BQU8sQ0FBQ0MsSUFBUixDQUNKLEdBQUUsS0FBS1gsV0FBTCxDQUFpQlksSUFBSyx1Q0FEcEIsQ0FBUDtBQUdEOztBQUVELFlBQVEsS0FBS1IsU0FBYjtBQUNFLFdBQUssT0FBTDtBQUNFLGFBQUtTLE1BQUwsQ0FBWUosUUFBWjs7QUFDQTs7QUFFRixXQUFLLE9BQUw7QUFDRSxhQUFLSyxNQUFMLENBQVlMLFFBQVo7O0FBQ0E7O0FBRUYsV0FBSyxNQUFMO0FBQ0UsYUFBS00sS0FBTCxDQUFXTixRQUFYOztBQUNBO0FBWEo7QUFhRDtBQUVEO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7OztBQUNFTyxFQUFBQSxTQUFTLEdBQUc7QUFDVixXQUFPLEtBQVA7QUFDRDtBQUVEO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7OztBQUNFQyxFQUFBQSxVQUFVLEdBQUc7QUFDWCxXQUFPLEtBQVA7QUFDRDtBQUVEO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7OztBQUNFQyxFQUFBQSxVQUFVLEdBQUc7QUFDWCxXQUFPLEtBQVA7QUFDRDtBQUVEO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7OztBQUNFQyxFQUFBQSxXQUFXLEdBQUc7QUFDWixXQUFPLEtBQVA7QUFDRDtBQUVEO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7OztBQUNFQyxFQUFBQSxZQUFZLEdBQUc7QUFDYixXQUFPLEtBQVA7QUFDRDtBQUVEO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7OztBQUNFQyxFQUFBQSxZQUFZLEdBQUc7QUFDYixXQUFPLEtBQVA7QUFDRDtBQUVEO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQ0VOLEVBQUFBLEtBQUssQ0FBQ04sUUFBRCxFQUFXLENBQUUsQ0F0R00sQ0FzR0w7O0FBRW5CO0FBQ0Y7QUFDQTs7O0FBQ0VJLEVBQUFBLE1BQU0sQ0FBQ0osUUFBRCxFQUFXLENBQUUsQ0EzR0ssQ0EyR0o7O0FBRXBCO0FBQ0Y7QUFDQTs7O0FBQ0VLLEVBQUFBLE1BQU0sQ0FBQ0wsUUFBRCxFQUFXLENBQUUsQ0FoSEssQ0FnSEo7OztBQWhISSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBWZWN0b3IzRCBmcm9tICcuLi9tYXRoL1ZlY3RvcjNEJztcbmltcG9ydCB7IFpPTkVfVFlQRV9BQlNUUkFDVCB9IGZyb20gJy4vdHlwZXMnO1xuXG4vKipcbiAqIEEgWm9uZSBkZXRlcm1pbmVzIHRoZSBhcmVhIGluIDNEIHNwYWNlIHdoZXJlIGFuIGVtaXR0ZXIncyBwYXJ0aWNsZXMgY2FuIHBvc2l0aW9uXG4gKiB0aGVtc2VsdmVzLiBUaGV5IGFyZSBzdXBwbGllZCB0byBib3RoIHRoZSBQb3NpdGlvbiBpbml0aWFsaXplclxuICogYW5kIHRoZSBDcm9zc1pvbmUgYmVoYXZpb3VyLlxuICpcbiAqIEBzZWUge0BsaW5rICcuLi9pbml0aWFsaXplL1Bvc2l0aW9uLmpzJ31cbiAqIEBzZWUge0BsaW5rICcuLi9iZWhhdmlvdXIvQ3Jvc3Nab25lLmpzJ31cbiAqIEBhYnN0cmFjdFxuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBab25lIHtcbiAgLyoqXG4gICAqIENvbnN0cnVjdHMgYSBab25lIGluc3RhbmNlLlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gdHlwZSAtIFRoZSB6b25lIHR5cGVcbiAgICogQHJldHVybiB2b2lkXG4gICAqL1xuICBjb25zdHJ1Y3Rvcih0eXBlID0gWk9ORV9UWVBFX0FCU1RSQUNUKSB7XG4gICAgdGhpcy50eXBlID0gdHlwZTtcbiAgICB0aGlzLnZlY3RvciA9IG5ldyBWZWN0b3IzRCgwLCAwLCAwKTtcbiAgICB0aGlzLnJhbmRvbSA9IDA7XG4gICAgdGhpcy5jcm9zc1R5cGUgPSAnZGVhZCc7XG4gICAgdGhpcy5sb2cgPSB0cnVlO1xuICAgIHRoaXMuc3VwcG9ydHNDcm9zc2luZyA9IHRydWU7XG4gIH1cblxuICBnZXRQb3NpdGlvbigpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGNyb3NzaW5nKHBhcnRpY2xlKSB7XG4gICAgaWYgKCF0aGlzLnN1cHBvcnRzQ3Jvc3NpbmcpIHtcbiAgICAgIHJldHVybiBjb25zb2xlLndhcm4oXG4gICAgICAgIGAke3RoaXMuY29uc3RydWN0b3IubmFtZX0gZG9lcyBub3Qgc3VwcG9ydCB0aGUgY3Jvc3NpbmcgbWV0aG9kYFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBzd2l0Y2ggKHRoaXMuY3Jvc3NUeXBlKSB7XG4gICAgICBjYXNlICdib3VuZCc6XG4gICAgICAgIHRoaXMuX2JvdW5kKHBhcnRpY2xlKTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgJ2Nyb3NzJzpcbiAgICAgICAgdGhpcy5fY3Jvc3MocGFydGljbGUpO1xuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSAnZGVhZCc6XG4gICAgICAgIHRoaXMuX2RlYWQocGFydGljbGUpO1xuICAgICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogRGV0ZXJtaW5lcyBpZiB0aGlzIHpvbmUgaXMgYSBCb3hab25lLlxuICAgKlxuICAgKiBAcmV0dXJuIHtib29sZWFufVxuICAgKi9cbiAgaXNCb3hab25lKCkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZXRlcm1pbmVzIGlmIHRoaXMgem9uZSBpcyBhIExpbmVab25lLlxuICAgKlxuICAgKiBAcmV0dXJuIHtib29sZWFufVxuICAgKi9cbiAgaXNMaW5lWm9uZSgpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICAvKipcbiAgICogRGV0ZXJtaW5lcyBpZiB0aGlzIHpvbmUgaXMgYSBNZXNoWm9uZS5cbiAgICpcbiAgICogQHJldHVybiB7Ym9vbGVhbn1cbiAgICovXG4gIGlzTWVzaFpvbmUoKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgLyoqXG4gICAqIERldGVybWluZXMgaWYgdGhpcyB6b25lIGlzIGEgUG9pbnRab25lLlxuICAgKlxuICAgKiBAcmV0dXJuIHtib29sZWFufVxuICAgKi9cbiAgaXNQb2ludFpvbmUoKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgLyoqXG4gICAqIERldGVybWluZXMgaWYgdGhpcyB6b25lIGlzIGEgU2NyZWVuWm9uZS5cbiAgICpcbiAgICogQHJldHVybiB7Ym9vbGVhbn1cbiAgICovXG4gIGlzU2NyZWVuWm9uZSgpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICAvKipcbiAgICogRGV0ZXJtaW5lcyBpZiB0aGlzIHpvbmUgaXMgYSBTcGhlcmVab25lLlxuICAgKlxuICAgKiBAcmV0dXJuIHtib29sZWFufVxuICAgKi9cbiAgaXNTcGhlcmVab25lKCkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBwYXJ0aWNsZSdzIGRlYWQgcHJvcGVydHkgdG8gdHJ1ZSBpZiByZXF1aXJlZC5cbiAgICpcbiAgICogQHBhcmFtIHtQYXJ0aWNsZX0gcGFydGljbGVcbiAgICogQGFic3RyYWN0XG4gICAqL1xuICBfZGVhZChwYXJ0aWNsZSkge30gLy9lc2xpbnQtZGlzYWJsZS1saW5lXG5cbiAgLyoqXG4gICAqIEBhYnN0cmFjdFxuICAgKi9cbiAgX2JvdW5kKHBhcnRpY2xlKSB7fSAvL2VzbGludC1kaXNhYmxlLWxpbmVcblxuICAvKipcbiAgICogQGFic3RyYWN0XG4gICAqL1xuICBfY3Jvc3MocGFydGljbGUpIHt9IC8vZXNsaW50LWRpc2FibGUtbGluZVxufVxuIl19 ================================================ FILE: packages/sdk/lib/core/libs/three-nebula/zone/index.js ================================================ export { default as BoxZone } from './BoxZone'; export { default as LineZone } from './LineZone'; export { default as MeshZone } from './MeshZone'; export { default as PointZone } from './PointZone'; export { default as ScreenZone } from './ScreenZone'; export { default as SphereZone } from './SphereZone'; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy96b25lL2luZGV4LmpzIl0sIm5hbWVzIjpbImRlZmF1bHQiLCJCb3hab25lIiwiTGluZVpvbmUiLCJNZXNoWm9uZSIsIlBvaW50Wm9uZSIsIlNjcmVlblpvbmUiLCJTcGhlcmVab25lIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUFTQSxPQUFPLElBQUlDLE9BQXBCLFFBQW1DLFdBQW5DO0FBQ0EsU0FBU0QsT0FBTyxJQUFJRSxRQUFwQixRQUFvQyxZQUFwQztBQUNBLFNBQVNGLE9BQU8sSUFBSUcsUUFBcEIsUUFBb0MsWUFBcEM7QUFDQSxTQUFTSCxPQUFPLElBQUlJLFNBQXBCLFFBQXFDLGFBQXJDO0FBQ0EsU0FBU0osT0FBTyxJQUFJSyxVQUFwQixRQUFzQyxjQUF0QztBQUNBLFNBQVNMLE9BQU8sSUFBSU0sVUFBcEIsUUFBc0MsY0FBdEMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBkZWZhdWx0IGFzIEJveFpvbmUgfSBmcm9tICcuL0JveFpvbmUnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBMaW5lWm9uZSB9IGZyb20gJy4vTGluZVpvbmUnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBNZXNoWm9uZSB9IGZyb20gJy4vTWVzaFpvbmUnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBQb2ludFpvbmUgfSBmcm9tICcuL1BvaW50Wm9uZSc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFNjcmVlblpvbmUgfSBmcm9tICcuL1NjcmVlblpvbmUnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBTcGhlcmVab25lIH0gZnJvbSAnLi9TcGhlcmVab25lJztcbiJdfQ== ================================================ FILE: packages/sdk/lib/core/libs/three-nebula/zone/types.js ================================================ export const ZONE_TYPE_ABSTRACT = 'Zone'; export const ZONE_TYPE_BOX = 'BoxZone'; export const ZONE_TYPE_LINE = 'LineZone'; export const ZONE_TYPE_MESH = 'MeshZone'; export const ZONE_TYPE_POINT = 'PointZone'; export const ZONE_TYPE_SCREEN = 'ScreenZone'; export const ZONE_TYPE_SPHERE = 'SphereZone'; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy96b25lL3R5cGVzLmpzIl0sIm5hbWVzIjpbIlpPTkVfVFlQRV9BQlNUUkFDVCIsIlpPTkVfVFlQRV9CT1giLCJaT05FX1RZUEVfTElORSIsIlpPTkVfVFlQRV9NRVNIIiwiWk9ORV9UWVBFX1BPSU5UIiwiWk9ORV9UWVBFX1NDUkVFTiIsIlpPTkVfVFlQRV9TUEhFUkUiXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sTUFBTUEsa0JBQWtCLEdBQUcsTUFBM0I7QUFDUCxPQUFPLE1BQU1DLGFBQWEsR0FBRyxTQUF0QjtBQUNQLE9BQU8sTUFBTUMsY0FBYyxHQUFHLFVBQXZCO0FBQ1AsT0FBTyxNQUFNQyxjQUFjLEdBQUcsVUFBdkI7QUFDUCxPQUFPLE1BQU1DLGVBQWUsR0FBRyxXQUF4QjtBQUNQLE9BQU8sTUFBTUMsZ0JBQWdCLEdBQUcsWUFBekI7QUFDUCxPQUFPLE1BQU1DLGdCQUFnQixHQUFHLFlBQXpCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IFpPTkVfVFlQRV9BQlNUUkFDVCA9ICdab25lJztcbmV4cG9ydCBjb25zdCBaT05FX1RZUEVfQk9YID0gJ0JveFpvbmUnO1xuZXhwb3J0IGNvbnN0IFpPTkVfVFlQRV9MSU5FID0gJ0xpbmVab25lJztcbmV4cG9ydCBjb25zdCBaT05FX1RZUEVfTUVTSCA9ICdNZXNoWm9uZSc7XG5leHBvcnQgY29uc3QgWk9ORV9UWVBFX1BPSU5UID0gJ1BvaW50Wm9uZSc7XG5leHBvcnQgY29uc3QgWk9ORV9UWVBFX1NDUkVFTiA9ICdTY3JlZW5ab25lJztcbmV4cG9ydCBjb25zdCBaT05FX1RZUEVfU1BIRVJFID0gJ1NwaGVyZVpvbmUnO1xuIl19 ================================================ FILE: packages/sdk/lib/core/loader/Loader.ts ================================================ import * as THREE from 'three'; import { GLTFLoader } from 'three/examples/jsm/loaders/GLTFLoader.js'; import { DRACOLoader } from "three/examples/jsm/loaders/DRACOLoader.js"; import { KTX2Loader } from 'three/examples/jsm/loaders/KTX2Loader.js'; import { RGBELoader } from "three/examples/jsm/loaders/RGBELoader.js"; import { TGALoader } from 'three/examples/jsm/loaders/TGALoader.js'; import { EXRLoader } from 'three/examples/jsm/loaders/EXRLoader.js'; import { MTLLoader } from "three/examples/jsm/loaders/MTLLoader.js"; import { unzipSync, strFromU8 } from 'three/examples/jsm/libs/fflate.module.js'; import { AddObjectCommand } from '../commands/AddObjectCommand'; import { SetSceneCommand } from '../commands/Commands'; import {useDispatchSignal} from "@/hooks"; import { ObjectLoader } from './ObjectLoader'; import App from "@/core/app/App"; import MaterialCreator = MTLLoader.MaterialCreator; const LoaderUtils = { createFilesMap: function (files: FileList | File[]) { const map = {}; for ( let i = 0; i < files.length; i ++ ) { const file = files[ i ]; map[ file.name ] = file; } return map; }, getFilesFromItemList: function ( items: DataTransferItem[], onDone: (files: File[], filesMap) => void ) { // TOFIX: setURLModifier() breaks when the file being loaded is not in root let itemsCount = 0; let itemsTotal = 0; const files: File[] = []; const filesMap = {}; function onEntryHandled() { itemsCount ++; if ( itemsCount === itemsTotal ) { onDone( files, filesMap ); } } function handleEntry( entry ) { if ( entry.isDirectory ) { const reader = entry.createReader(); reader.readEntries( function ( entries ) { for ( let i = 0; i < entries.length; i ++ ) { handleEntry( entries[ i ] ); } onEntryHandled(); } ); } else if ( entry.isFile ) { entry.file( function ( file ) { files.push( file ); filesMap[ entry.fullPath.slice( 1 ) ] = file; onEntryHandled(); } ); } itemsTotal ++; } for ( let i = 0; i < items.length; i ++ ) { const item = items[ i ]; if ( item.kind === 'file' ) { handleEntry( item.webkitGetAsEntry() ); } } } }; class Loader { protected texturePath:string = ''; protected _objectLoader:ObjectLoader | null = null; protected _dracoLoader:DRACOLoader | null = null; protected _ktx2Loader:KTX2Loader | null = null; public _ifcLoader:any = null; protected rgbeLoader:RGBELoader | null = null; protected tgaLoader:TGALoader | null = null; protected _exrLoader:EXRLoader | null = null; protected textureLoader:THREE.TextureLoader | null = null; constructor(){} get objectLoader():ObjectLoader{ if(!this._objectLoader){ this._objectLoader = new ObjectLoader(); } return this._objectLoader; } set objectLoader(value:ObjectLoader | null){ this._objectLoader = value; } get dracoLoader():DRACOLoader{ if(!this._dracoLoader){ this._dracoLoader = new DRACOLoader(); this._dracoLoader.setDecoderPath(new URL(import.meta.env.BASE_URL + 'libs/draco/gltf', import.meta.url).href + "/"); } return this._dracoLoader; } set dracoLoader(value:DRACOLoader | null) { this._dracoLoader = value; } get ktx2Loader():KTX2Loader{ if(!this._ktx2Loader){ this._ktx2Loader = new KTX2Loader(); this._ktx2Loader.setTranscoderPath(new URL(import.meta.env.BASE_URL + 'libs/basis', import.meta.url).href + "/"); useDispatchSignal("rendererDetectKTX2Support",this._ktx2Loader); } return this._ktx2Loader; } set ktx2Loader(value:KTX2Loader | null) { this._ktx2Loader = value; } get exrLoader():EXRLoader{ if(!this._exrLoader){ this._exrLoader = new EXRLoader(); } return this._exrLoader; } set exrLoader(value:EXRLoader | null) { this._exrLoader = value; } loadItemList(items) { LoaderUtils.getFilesFromItemList( items, ( files, filesMap )=>{ this.loadFiles( files, filesMap); } ); } loadFiles(files, filesMap): Promise { return new Promise((resolve, reject) => { const promises: Promise[] = []; if (files.length > 0) { filesMap = filesMap || LoaderUtils.createFilesMap(files); const manager = new THREE.LoadingManager(); manager.setURLModifier(function (url) { url = url.replace(/^(\.?\/)/, ''); // remove './' const file = filesMap[url]; if (file) { return URL.createObjectURL(file); } return url; }); manager.addHandler(/\.tga$/i, new TGALoader()); manager.addHandler(/\.mtl$/i, new MTLLoader()); /** 2023/02/03 二三:判断是否存在mtl文件,存在则提前解析 **/ // @ts-ignore const mtlIndex = Object.values(files).findIndex((item: File) => item.name?.split('.').pop().toLowerCase() === "mtl"); let mtlMaterials: MaterialCreator | null = null; if (mtlIndex !== -1) { const mtlLoader = new MTLLoader(); const reader = new FileReader(); reader.addEventListener('load', (event) => { const contents = event.target?.result as string; const materials = mtlLoader.parse(contents, ""); materials.preload(); mtlMaterials = materials; for (let i = 0; i < files.length; i++) { promises.push(this.loadFile(files[i], manager, mtlMaterials)); } Promise.all(promises).then((models) => { resolve(models); }).catch(error => { reject(error); }); }, false); reader.readAsText(files[mtlIndex]); } else { for (let i = 0; i < files.length; i++) { promises.push(this.loadFile(files[i], manager)); } Promise.all(promises).then((models) => { resolve(models); }).catch(error => { reject(error); }); } }else{ reject("No files to load."); } }) } loadFile(file, manager:THREE.LoadingManager = new THREE.LoadingManager(),mtlMaterials:MaterialCreator | null = null,addToScene = true):Promise { return new Promise((resolve, reject) => { const filename = file.name; const extension = filename.split('.').pop().toLowerCase(); const reader = new FileReader(); // reader.addEventListener( 'progress', function ( event ) { // const size = '(' + Math.floor( event.total / 1000 ).format() + ' KB)'; // const progress = Math.floor( ( event.loaded / event.total ) * 100 ) + '%'; // console.log( 'Loading', filename, size, progress ); // } ); switch (extension) { case '3dm': reader.addEventListener('load', async function (event) { const contents = event.target?.result; const { Rhino3dmLoader } = await import('three/examples/jsm/loaders/3DMLoader.js'); const loader = new Rhino3dmLoader(); loader.setLibraryPath('../examples/jsm/libs/rhino3dm/'); loader.parse(contents as ArrayBufferLike, function (object) { addToScene && App.execute(new AddObjectCommand(object)); resolve(object); }); }, false); reader.readAsArrayBuffer(file); break; case '3ds': reader.addEventListener('load', async function (event) { const { TDSLoader } = await import('three/examples/jsm/loaders/TDSLoader.js'); const loader = new TDSLoader(); //@ts-ignore const object = loader.parse(event.target.result); addToScene && App.execute(new AddObjectCommand(object)); resolve(object); }, false); reader.readAsArrayBuffer(file); break; case '3mf': reader.addEventListener('load', async function (event) { const { ThreeMFLoader } = await import('three/examples/jsm/loaders/3MFLoader.js'); const loader = new ThreeMFLoader(); const object = loader.parse(event.target?.result as ArrayBuffer); addToScene && App.execute(new AddObjectCommand(object)); resolve(object); }, false); reader.readAsArrayBuffer(file); break; case 'amf': reader.addEventListener('load', async function (event) { const { AMFLoader } = await import('three/examples/jsm/loaders/AMFLoader.js'); const loader = new AMFLoader(); const amfobject = loader.parse(event.target?.result as ArrayBuffer); addToScene && App.execute(new AddObjectCommand(amfobject)); resolve(amfobject); }, false); reader.readAsArrayBuffer(file); break; case 'dae': reader.addEventListener('load', async function (event) { const contents = event.target?.result as string; const { ColladaLoader } = await import('three/examples/jsm/loaders/ColladaLoader.js'); const loader = new ColladaLoader(manager); //@ts-ignore const collada = loader.parse(contents); collada.scene.name = filename; addToScene && App.execute(new AddObjectCommand(collada.scene)); resolve(collada.scene); }, false); reader.readAsText(file); break; case 'drc': reader.addEventListener('load', async (event) => { const contents = event.target?.result as ArrayBuffer; // this.dracoLoader.setDecoderPath(new URL(import.meta.env.BASE_URL + 'libs/draco/', import.meta.url).href); this.dracoLoader.parse(contents, (geometry) => { let object; if (geometry.index !== null) { const material = new THREE.MeshStandardMaterial(); object = new THREE.Mesh(geometry, material); object.name = filename; } else { const material = new THREE.PointsMaterial({ size: 0.01 }); material.vertexColors = geometry.hasAttribute('color'); object = new THREE.Points(geometry, material); object.name = filename; } this.dracoLoader.dispose(); this.dracoLoader = null; addToScene && App.execute(new AddObjectCommand(object)); resolve(object); }); }, false); reader.readAsArrayBuffer(file); break; case 'fbx': reader.addEventListener('load', async function (event) { const contents = event.target?.result; const { FBXLoader } = await import('three/examples/jsm/loaders/FBXLoader.js'); const loader = new FBXLoader(manager); //@ts-ignore const object = loader.parse(contents as ArrayBuffer); addToScene && App.execute(new AddObjectCommand(object)); resolve(object); }, false); reader.readAsArrayBuffer(file); break; case 'glb': reader.addEventListener('load', async (event) => { const contents = event.target?.result as ArrayBuffer; const loader = await this.createGLTFLoader(manager); loader.parse(contents, '', (result) => { const scene = result.scene; scene.name = filename; scene.animations.push(...result.animations); addToScene && App.execute(new AddObjectCommand(scene)); this.disposeGLTFLoaderEffects(loader); resolve(scene); }); }, false); reader.readAsArrayBuffer(file); break; case 'gltf': reader.addEventListener('load', async (event) => { const contents = event.target?.result as ArrayBuffer; const loader = await this.createGLTFLoader(manager); loader.parse(contents, '', (result) => { const scene = result.scene; scene.name = filename; scene.animations.push(...result.animations); addToScene && App.execute(new AddObjectCommand(scene)); this.disposeGLTFLoaderEffects(loader); resolve(scene); }); }, false); reader.readAsArrayBuffer(file); break; case 'js': case 'json': reader.addEventListener('load', (event) => { const contents: string = event.target?.result as string; // 2.0 if (contents.indexOf('postMessage') !== - 1) { const blob = new Blob([contents], { type: 'text/javascript' }); const url = URL.createObjectURL(blob); const worker = new Worker(url); worker.onmessage = (event) => { event.data.metadata = { version: 2 }; this.handleJSON(event.data,addToScene).then(object => resolve(object as THREE.Object3D)).catch(error => reject(error)); }; worker.postMessage(Date.now()); return; } // >= 3.0 let data; try { data = JSON.parse(contents); } catch (error) { App.log.error(error as string); return; } this.handleJSON(data,addToScene).then(object => resolve(object as THREE.Object3D)).catch(error => reject(error)); }, false); reader.readAsText(file); break; case 'ifc': reader.addEventListener('load', async (event) => { if (!this._ifcLoader) { const { IFCLoader } = await import("web-ifc-three/IFCLoader"); this._ifcLoader = new IFCLoader(); const ifcWorkerUrl = new URL(import.meta.env.BASE_URL + 'libs/web-ifc/IFCWorker.js', import.meta.url).href; this._ifcLoader.ifcManager.useWebWorkers(true, ifcWorkerUrl).then(async () => { if(!this._ifcLoader) return; await this._ifcLoader.ifcManager.setWasmPath('/'); // const { IFCSPACE } = await import('web-ifc'); // await this._ifcLoader.ifcManager.parser.setupOptionalCategories( { // [ IFCSPACE ]: false, // }); await this._ifcLoader.ifcManager.applyWebIfcConfig({ // 使用更快的(不那么精确的)布尔逻辑 USE_FAST_BOOLS: true }); }) } const model = await this._ifcLoader.parse(event.target?.result as ArrayBuffer); model.name = filename; model.isIFC = true; addToScene && App.execute(new AddObjectCommand(model)); resolve(model); }, false); reader.readAsArrayBuffer(file); break; // case 'ifc': // reader.addEventListener( 'load', async function ( event ) { // const { IFCLoader } = await import( 'three/examples/jsm/loaders/IFCLoader.js' ); // // const loader = new IFCLoader(); // loader.ifcManager.setWasmPath( 'three/examples/jsm/loaders/ifc/' ); // // // @ts-ignore // const model = await loader.parse( event.target.result ); // model.mesh.name = filename; // // App.execute( new AddObjectCommand(model.mesh)); // }, false ); // reader.readAsArrayBuffer( file ); // break; case 'kmz': reader.addEventListener('load', async function (event) { const { KMZLoader } = await import('three/examples/jsm/loaders/KMZLoader.js'); const loader = new KMZLoader(); const collada = loader.parse(event.target?.result as ArrayBuffer); collada.scene.name = filename; addToScene && App.execute(new AddObjectCommand(collada.scene)); resolve(collada.scene); }, false); reader.readAsArrayBuffer(file); break; case 'ldr': case 'mpd': reader.addEventListener('load', async function (event) { const { LDrawLoader } = await import('three/examples/jsm/loaders/LDrawLoader.js'); const loader = new LDrawLoader(); loader.setPath('three/examples/models/ldraw/officialLibrary/'); // @ts-ignore loader.parse(event.target?.result as string, undefined, function (group) { group.name = filename; // Convert from LDraw coordinates: rotate 180 degrees around OX group.rotation.x = Math.PI; addToScene && App.execute(new AddObjectCommand(group)); resolve(group); }); }, false); reader.readAsText(file); break; case 'md2': reader.addEventListener('load', async function (event) { const contents = event.target?.result as ArrayBuffer; const { MD2Loader } = await import('three/examples/jsm/loaders/MD2Loader.js'); const geometry = new MD2Loader().parse(contents); const material = new THREE.MeshStandardMaterial(); const mesh = new THREE.Mesh(geometry, material); //@ts-ignore mesh.mixer = new THREE.AnimationMixer(mesh); mesh.name = filename; //@ts-ignore mesh.animations.push(...geometry.animations); addToScene && App.execute(new AddObjectCommand(mesh)); resolve(mesh); }, false); reader.readAsArrayBuffer(file); break; case 'obj': reader.addEventListener('load', async function (event) { const contents = event.target?.result as string; const { OBJLoader } = await import('three/examples/jsm/loaders/OBJLoader.js'); const objLoader = new OBJLoader(); /** 2023/02/03 二三:判断是否存在已解析的mtl文件 **/ if (mtlMaterials !== null) { objLoader.setMaterials(mtlMaterials); } const object = objLoader.parse(contents); object.name = filename; addToScene && App.execute(new AddObjectCommand(object)); resolve(object); }, false); reader.readAsText(file); break; case 'mtl': //mtl文件已经提前预加载 break; case 'pcd': reader.addEventListener('load', async function (event) { const contents = event.target?.result as ArrayBuffer; const { PCDLoader } = await import('three/examples/jsm/loaders/PCDLoader.js'); const points = new PCDLoader().parse(contents); points.name = filename; addToScene && App.execute(new AddObjectCommand(points)); resolve(points); }, false); reader.readAsArrayBuffer(file); break; case 'ply': reader.addEventListener('load', async function (event) { const contents = event.target?.result as ArrayBuffer; const { PLYLoader } = await import('three/examples/jsm/loaders/PLYLoader.js'); const geometry = new PLYLoader().parse(contents); let object; if (geometry.index !== null) { const material = new THREE.MeshStandardMaterial(); object = new THREE.Mesh(geometry, material); object.name = filename; } else { const material = new THREE.PointsMaterial({ size: 0.01 }); material.vertexColors = geometry.hasAttribute('color'); object = new THREE.Points(geometry, material); object.name = filename; } addToScene && App.execute(new AddObjectCommand(object)); resolve(object); }, false); reader.readAsArrayBuffer(file); break; case 'stl': reader.addEventListener('load', async function (event) { const contents = event.target?.result as ArrayBuffer; const { STLLoader } = await import('three/examples/jsm/loaders/STLLoader.js'); const geometry = new STLLoader().parse(contents); const material = new THREE.MeshStandardMaterial(); const mesh = new THREE.Mesh(geometry, material); mesh.name = filename; addToScene && App.execute(new AddObjectCommand(mesh)); resolve(mesh); }, false); if (reader.readAsBinaryString !== undefined) { reader.readAsBinaryString(file); } else { reader.readAsArrayBuffer(file); } break; case 'svg': reader.addEventListener('load', async function (event) { const contents = event.target?.result as string; const { SVGLoader } = await import('three/examples/jsm/loaders/SVGLoader.js'); const loader = new SVGLoader(); const paths = loader.parse(contents).paths; const group = new THREE.Group(); group.scale.multiplyScalar(0.1); group.scale.y *= - 1; for (let i = 0; i < paths.length; i++) { const path = paths[i]; const material = new THREE.MeshBasicMaterial({ color: path.color, depthWrite: false }); const shapes = SVGLoader.createShapes(path); for (let j = 0; j < shapes.length; j++) { const shape = shapes[j]; const geometry = new THREE.ShapeGeometry(shape); const mesh = new THREE.Mesh(geometry, material); group.add(mesh); } } addToScene && App.execute(new AddObjectCommand(group)); resolve(group); }, false); reader.readAsText(file); break; case 'usdz': reader.addEventListener('load', async function (event) { const contents = event.target?.result as ArrayBuffer; const { USDZLoader } = await import('three/examples/jsm/loaders/USDZLoader.js'); const group = new USDZLoader().parse(contents); group.name = filename; addToScene && App.execute(new AddObjectCommand(group)); resolve(group); }, false); reader.readAsArrayBuffer(file); break; case 'vox': reader.addEventListener('load', async function (event) { const contents = event.target?.result as ArrayBuffer; const { VOXLoader, VOXMesh } = await import('three/examples/jsm/loaders/VOXLoader.js'); const chunks = new VOXLoader().parse(contents); const group = new THREE.Group(); group.name = filename; for (let i = 0; i < chunks.length; i++) { const chunk: any = chunks[i]; const mesh = new VOXMesh(chunk); // @ts-ignore group.add(mesh); } addToScene && App.execute(new AddObjectCommand(group)); resolve(group); }, false); reader.readAsArrayBuffer(file); break; case 'vtk': case 'vtp': reader.addEventListener('load', async function (event) { const contents = event.target?.result as ArrayBuffer; const { VTKLoader } = await import('three/examples/jsm/loaders/VTKLoader.js'); //@ts-ignore const geometry = new VTKLoader().parse(contents); const material = new THREE.MeshStandardMaterial(); const mesh = new THREE.Mesh(geometry, material); mesh.name = filename; addToScene && App.execute(new AddObjectCommand(mesh)); resolve(mesh); }, false); reader.readAsArrayBuffer(file); break; case 'wrl': reader.addEventListener('load', async function (event) { const contents = event.target?.result as string; const { VRMLLoader } = await import('three/examples/jsm/loaders/VRMLLoader.js'); //@ts-ignore const result = new VRMLLoader().parse(contents); addToScene && App.execute(new SetSceneCommand(result)); resolve(result); }, false); reader.readAsText(file); break; case 'xyz': reader.addEventListener('load', async function (event) { const contents = event.target?.result as string; const { XYZLoader } = await import('three/examples/jsm/loaders/XYZLoader.js'); //@ts-ignore const geometry = new XYZLoader().parse(contents); const material = new THREE.PointsMaterial(); //@ts-ignore material.vertexColors = geometry.hasAttribute('color'); const points = new THREE.Points(geometry as THREE.BufferGeometry, material); points.name = filename; addToScene && App.execute(new AddObjectCommand(points)); resolve(points); }, false); reader.readAsText(file); break; case 'zip': reader.addEventListener('load', (event) => { this.handleZIP(event.target?.result,addToScene).then(object => resolve(object as THREE.Object3D)).catch(error => reject(error)); }, false); reader.readAsArrayBuffer(file); break; default: App.log.warn(`不支持的文件格式: ${extension}`); reject(`不支持的文件格式: ${extension}`); break; } }) } handleJSON(data,addToScene = true) { return new Promise((resolve, reject) => { if (data.metadata === undefined) { // 2.0 data.metadata = { type: 'Geometry' }; } if (data.metadata.type === undefined) { // 3.0 data.metadata.type = 'Geometry'; } if (data.metadata.formatVersion !== undefined) { data.metadata.version = data.metadata.formatVersion; } switch (data.metadata.type.toLowerCase()) { case 'buffergeometry': { const loader = new THREE.BufferGeometryLoader(); const result = loader.parse(data); const mesh = new THREE.Mesh(result); addToScene && App.execute(new AddObjectCommand(mesh)); resolve(mesh); break; } case 'geometry': App.log.warn("Loader:不再支持“几何图形”"); reject("Loader:不再支持“几何图形”"); break; case 'object': { const loader = this.objectLoader; loader.setResourcePath(this.texturePath); loader.parse(data, function (result: any) { if (result.isScene) { addToScene && App.execute(new SetSceneCommand(result)); resolve(result); } else { addToScene && App.execute(new AddObjectCommand(result)); resolve(result); } }); break; } case 'app': resolve(App.fromJSON(data)); break; } }) } async handleZIP(contents,addToScene = true) { return new Promise(async (resolve, reject) => { try { const zip = unzipSync(new Uint8Array(contents)); // Poly if (zip['model.obj'] && zip['materials.mtl']) { const { OBJLoader } = await import('three/examples/jsm/loaders/OBJLoader.js'); //@ts-ignore const materials = new MTLLoader().parse(strFromU8(zip['materials.mtl'])); const object = new OBJLoader().setMaterials(materials).parse(strFromU8(zip['model.obj'])); addToScene && App.execute(new AddObjectCommand(object)); resolve(object); } for (const path in zip) { const file = zip[path]; const manager = new THREE.LoadingManager(); manager.setURLModifier(function (url) { const file = zip[url]; if (file) { const blob = new Blob([file.buffer as ArrayBuffer], { type: 'application/octet-stream' }); return URL.createObjectURL(blob); } return url; }); const extension = path.split(".").pop()?.toLowerCase(); switch (extension) { case 'fbx': { const { FBXLoader } = await import('three/examples/jsm/loaders/FBXLoader.js'); const loader = new FBXLoader(manager); //@ts-ignore const object = loader.parse(file.buffer); addToScene && App.execute(new AddObjectCommand(object)); resolve(object); break; } case 'glb': { const loader = await this.createGLTFLoader(); loader.parse(file.buffer as ArrayBuffer, '', (result) => { const scene = result.scene; scene.animations.push(...result.animations); addToScene && App.execute(new AddObjectCommand(scene)); this.disposeGLTFLoaderEffects(loader); resolve(scene); }); break; } case 'gltf': { const loader = await this.createGLTFLoader(manager); loader.parse(strFromU8(file), '', (result)=> { const scene = result.scene; scene.animations.push(...result.animations); addToScene && App.execute(new AddObjectCommand(scene)); this.disposeGLTFLoaderEffects(loader); resolve(scene); }); break; } } } }catch (error) { reject(error); } }) } async createGLTFLoader(manager?:THREE.LoadingManager) { const { MeshoptDecoder } = await import( 'three/examples/jsm/libs/meshopt_decoder.module.js' ); const loader = new GLTFLoader(manager); loader.setDRACOLoader(this.dracoLoader); loader.setKTX2Loader(this.ktx2Loader); loader.setMeshoptDecoder(MeshoptDecoder); return loader; } disposeGLTFLoaderEffects(loader:any){ if(this._dracoLoader && loader.dracoLoader === this._dracoLoader){ this._dracoLoader.dispose(); this._dracoLoader = null; loader.dracoLoader = null; }else{ loader.dracoLoader?.dispose(); loader.dracoLoader = null; } if(this._ktx2Loader && loader.ktx2Loader === this._ktx2Loader){ this._ktx2Loader?.dispose(); this._ktx2Loader = null; loader.ktx2Loader = null; }else{ loader.ktx2Loader.dispose(); loader.ktx2Loader = null; } loader.meshoptDecoder = null; } loadUrlTexture(extension: string, url: string, onload?: (tex: THREE.Texture) => void,onerror?: (err: any) => void) { switch (extension) { case 'hdr': { if(!this.rgbeLoader) this.rgbeLoader = new RGBELoader(); this.rgbeLoader.setDataType(THREE.HalfFloatType); return this.rgbeLoader.load(url, (hdrTexture) => { hdrTexture.wrapS = THREE.RepeatWrapping; hdrTexture.wrapT = THREE.RepeatWrapping; hdrTexture.needsUpdate = true; onload && onload(hdrTexture); },()=>{},(err)=>{ onerror && onerror(err); }); } case 'tga': { if(!this.tgaLoader) this.tgaLoader = new TGALoader(); return this.tgaLoader.load(url, (tagTex) => { tagTex.wrapS = THREE.RepeatWrapping; tagTex.wrapT = THREE.RepeatWrapping; tagTex.needsUpdate = true; onload && onload(tagTex); },()=>{},(err)=>{ onerror && onerror(err); }); } case "exr": { return this.exrLoader.load(url, (exrTex) => { exrTex.wrapS = THREE.RepeatWrapping; exrTex.wrapT = THREE.RepeatWrapping; exrTex.needsUpdate = true; onload && onload(exrTex); },()=>{},(err)=>{ onerror && onerror(err); }); } default: { if(!this.textureLoader) this.textureLoader = new THREE.TextureLoader(); return this.textureLoader.load(url, (tex) => { tex.wrapS = THREE.RepeatWrapping; tex.wrapT = THREE.RepeatWrapping; tex.needsUpdate = true; onload && onload(tex); },()=>{},(err)=>{ onerror && onerror(err); }); } } } } const loader = new Loader(); export default loader; ================================================ FILE: packages/sdk/lib/core/loader/ObjectLoader.js ================================================ /** * THREE JSON 解析器 * @author ErSan * @version 2.0.0 * @description 来自于THREE.ObjectLoader,修改了部分代码,添加了部分功能 */ import * as THREE from 'three'; import {TYPED_ARRAYS,TEXTURE_MAPPING,TEXTURE_WRAPPING,TEXTURE_FILTER} from '@/constant/index'; import ParticleEmitter from "@/core/objects/ParticleEmitter"; import Billboard from "@/core/objects/Billboard"; import {HtmlPanel, HtmlSprite} from "@/core/objects/HtmlPanel"; class ObjectLoader extends THREE.Loader { constructor(manager) { super(manager); } load(url, onLoad, onProgress, onError) { const scope = this; const path = (this.path === '') ? THREE.LoaderUtils.extractUrlBase(url) : this.path; this.resourcePath = this.resourcePath || path; const loader = new THREE.FileLoader(this.manager); loader.setPath(this.path); loader.setRequestHeader(this.requestHeader); loader.setWithCredentials(this.withCredentials); loader.load(url, function (text) { let json = null; try { json = JSON.parse(text); } catch (error) { if (onError !== undefined) onError(error); console.error('THREE:ObjectLoader: Can\'t parse ' + url + '.', error.message); return; } const metadata = json.metadata; if (metadata === undefined || metadata.type === undefined || metadata.type.toLowerCase() === 'geometry') { if (onError !== undefined) onError(new Error('THREE.ObjectLoader: Can\'t load ' + url)); console.error('THREE.ObjectLoader: Can\'t load ' + url); return; } scope.parse(json, onLoad); }, onProgress, onError); } async loadAsync(url, onProgress) { const scope = this; const path = (this.path === '') ? THREE.LoaderUtils.extractUrlBase(url) : this.path; this.resourcePath = this.resourcePath || path; const loader = new THREE.FileLoader(this.manager); loader.setPath(this.path); loader.setRequestHeader(this.requestHeader); loader.setWithCredentials(this.withCredentials); const text = await loader.loadAsync(url, onProgress); const json = JSON.parse(text); const metadata = json.metadata; if (metadata === undefined || metadata.type === undefined || metadata.type.toLowerCase() === 'geometry') { throw new Error('THREE.ObjectLoader: Can\'t load ' + url); } return await scope.parseAsync(json); } parse(json, onLoad) { const animations = this.parseAnimations(json.animations); const shapes = this.parseShapes(json.shapes); const geometries = this.parseGeometries(json.geometries, shapes); const images = this.parseImages(json.images, function () { if (onLoad !== undefined) onLoad(object); }); const textures = this.parseTextures(json.textures, images); const materials = this.parseMaterials(json.materials, textures); const object = this.parseObject(json.object, geometries, materials, textures, animations); const skeletons = this.parseSkeletons(json.skeletons, object); this.bindSkeletons(object, skeletons); this.bindLightTargets(object); // if (onLoad !== undefined) { let hasImages = false; for (const uuid in images) { if (images[uuid].data instanceof HTMLImageElement) { hasImages = true; break; } } if (hasImages === false) onLoad(object); } return object; } async parseAsync(json) { const animations = this.parseAnimations(json.animations); const shapes = this.parseShapes(json.shapes); const geometries = this.parseGeometries(json.geometries, shapes); const images = await this.parseImagesAsync(json.images); const textures = this.parseTextures(json.textures, images); const materials = this.parseMaterials(json.materials, textures); const object = await this.parseObject(json.object, geometries, materials, textures, animations); const skeletons = this.parseSkeletons(json.skeletons, object); this.bindSkeletons(object, skeletons); this.bindLightTargets(object); return object; } parseShapes(json) { const shapes = {}; if (json !== undefined) { for (let i = 0, l = json.length; i < l; i++) { const shape = new THREE.Shape().fromJSON(json[i]); shapes[shape.uuid] = shape; } } return shapes; } parseSkeletons(json, object) { const skeletons = {}; const bones = {}; // generate bone lookup table object.traverse(function (child) { if (child.isBone) bones[child.uuid] = child; }); // create skeletons if (json !== undefined) { for (let i = 0, l = json.length; i < l; i++) { const skeleton = new THREE.Skeleton().fromJSON(json[i], bones); skeletons[skeleton.uuid] = skeleton; } } return skeletons; } parseGeometries(json, shapes) { const geometries = {}; if (json !== undefined) { const bufferGeometryLoader = new THREE.BufferGeometryLoader(); for (let i = 0, l = json.length; i < l; i++) { let geometry; const data = json[i]; switch (data.type) { case 'BufferGeometry': case 'InstancedBufferGeometry': geometry = bufferGeometryLoader.parse(data); break; default: if (data.type in THREE) { geometry = THREE[data.type].fromJSON(data, shapes); } else { console.warn(`THREE.ObjectLoader: Unsupported geometry type "${data.type}"`); } } geometry.uuid = data.uuid; if (data.name !== undefined) geometry.name = data.name; if (data.userData !== undefined) geometry.userData = data.userData; geometries[data.uuid] = geometry; } } return geometries; } parseMaterials(json, textures) { const cache = {}; // MultiMaterial const materials = {}; if (json !== undefined) { const loader = new THREE.MaterialLoader(); loader.setTextures(textures); for (let i = 0, l = json.length; i < l; i++) { const data = json[i]; if (cache[data.uuid] === undefined) { cache[data.uuid] = loader.parse(data); } materials[data.uuid] = cache[data.uuid]; } } return materials; } parseAnimations(json) { const animations = {}; if (json !== undefined) { for (let i = 0; i < json.length; i++) { const data = json[i]; const clip = THREE.AnimationClip.parse(data); animations[clip.uuid] = clip; } } return animations; } parseImages(json, onLoad) { const scope = this; const images = {}; let loader; function loadImage(url) { scope.manager.itemStart(url); return loader.load(url, function () { scope.manager.itemEnd(url); }, undefined, function () { scope.manager.itemError(url); scope.manager.itemEnd(url); }); } function deserializeImage(image) { if (typeof image === 'string') { const url = image; const path = /^(\/\/)|([a-z]+:(\/\/)?)/i.test(url) ? url : scope.resourcePath + url; return loadImage(path); } else { if (image.data) { return { data: new TYPED_ARRAYS[image.type](image.data), width: image.width, height: image.height }; } else { return null; } } } if (json !== undefined && json.length > 0) { const manager = new THREE.LoadingManager(onLoad); loader = new THREE.ImageLoader(manager); loader.setCrossOrigin(this.crossOrigin); for (let i = 0, il = json.length; i < il; i++) { const image = json[i]; const url = image.url; if (Array.isArray(url)) { // load array of images e.g CubeTexture const imageArray = []; for (let j = 0, jl = url.length; j < jl; j++) { const currentUrl = url[j]; const deserializedImage = deserializeImage(currentUrl); if (deserializedImage !== null) { if (deserializedImage instanceof HTMLImageElement) { imageArray.push(deserializedImage); } else { // special case: handle array of data textures for cube textures imageArray.push(new THREE.DataTexture(deserializedImage.data, deserializedImage.width, deserializedImage.height)); } } } images[image.uuid] = new THREE.Source(imageArray); } else { // load single image const deserializedImage = deserializeImage(image.url); images[image.uuid] = new THREE.Source(deserializedImage); } } } return images; } async parseImagesAsync(json) { const scope = this; const images = {}; let loader; async function deserializeImage(image) { if (typeof image === 'string') { const url = image; const path = /^(\/\/)|([a-z]+:(\/\/)?)/i.test(url) ? url : scope.resourcePath + url; return await loader.loadAsync(path); } else { if (image.data) { return { data: new TYPED_ARRAYS[image.type](image.data), width: image.width, height: image.height }; } else { return null; } } } if (json !== undefined && json.length > 0) { loader = new THREE.ImageLoader(this.manager); loader.setCrossOrigin(this.crossOrigin); for (let i = 0, il = json.length; i < il; i++) { const image = json[i]; const url = image.url; if (Array.isArray(url)) { // load array of images e.g CubeTexture const imageArray = []; for (let j = 0, jl = url.length; j < jl; j++) { const currentUrl = url[j]; const deserializedImage = await deserializeImage(currentUrl); if (deserializedImage !== null) { if (deserializedImage instanceof HTMLImageElement) { imageArray.push(deserializedImage); } else { // special case: handle array of data textures for cube textures imageArray.push(new THREE.DataTexture(deserializedImage.data, deserializedImage.width, deserializedImage.height)); } } } images[image.uuid] = new THREE.Source(imageArray); } else { // load single image const deserializedImage = await deserializeImage(image.url); images[image.uuid] = new THREE.Source(deserializedImage); } } } return images; } parseTextures(json, images) { function parseConstant(value, type) { if (typeof value === 'number') return value; console.warn('THREE.ObjectLoader.parseTexture: Constant should be in numeric form.', value); return type[value]; } const textures = {}; if (json !== undefined) { for (let i = 0, l = json.length; i < l; i++) { const data = json[i]; if (data.image === undefined) { console.warn('THREE.ObjectLoader: No "image" specified for', data.uuid); } if (images[data.image] === undefined) { console.warn('THREE.ObjectLoader: Undefined image', data.image); } const source = images[data.image]; const image = source.data; let texture; if (Array.isArray(image)) { texture = new THREE.CubeTexture(); if (image.length === 6) texture.needsUpdate = true; } else { if (image && image.data) { texture = new THREE.DataTexture(); } else { texture = new THREE.Texture(); } if (image) texture.needsUpdate = true; // textures can have undefined image data } texture.source = source; texture.uuid = data.uuid; if (data.name !== undefined) texture.name = data.name; if (data.mapping !== undefined) texture.mapping = parseConstant(data.mapping, TEXTURE_MAPPING); if (data.channel !== undefined) texture.channel = data.channel; if (data.offset !== undefined) texture.offset.fromArray(data.offset); if (data.repeat !== undefined) texture.repeat.fromArray(data.repeat); if (data.center !== undefined) texture.center.fromArray(data.center); if (data.rotation !== undefined) texture.rotation = data.rotation; if (data.wrap !== undefined) { texture.wrapS = parseConstant(data.wrap[0], TEXTURE_WRAPPING); texture.wrapT = parseConstant(data.wrap[1], TEXTURE_WRAPPING); } if (data.format !== undefined) texture.format = data.format; if (data.internalFormat !== undefined) texture.internalFormat = data.internalFormat; if (data.type !== undefined) texture.type = data.type; if (data.colorSpace !== undefined) texture.colorSpace = data.colorSpace; if (data.minFilter !== undefined) texture.minFilter = parseConstant(data.minFilter, TEXTURE_FILTER); if (data.magFilter !== undefined) texture.magFilter = parseConstant(data.magFilter, TEXTURE_FILTER); if (data.anisotropy !== undefined) texture.anisotropy = data.anisotropy; if (data.flipY !== undefined) texture.flipY = data.flipY; if (data.generateMipmaps !== undefined) texture.generateMipmaps = data.generateMipmaps; if (data.premultiplyAlpha !== undefined) texture.premultiplyAlpha = data.premultiplyAlpha; if (data.unpackAlignment !== undefined) texture.unpackAlignment = data.unpackAlignment; if (data.compareFunction !== undefined) texture.compareFunction = data.compareFunction; if (data.userData !== undefined) texture.userData = data.userData; textures[data.uuid] = texture; } } return textures; } parseObject(data, geometries, materials, textures, animations) { let object; function getGeometry(name) { if (geometries[name] === undefined) { console.warn('THREE.ObjectLoader: Undefined geometry', name); } return geometries[name]; } function getMaterial(name) { if (name === undefined) return undefined; if (Array.isArray(name)) { const array = []; for (let i = 0, l = name.length; i < l; i++) { const uuid = name[i]; if (materials[uuid] === undefined) { console.warn('THREE.ObjectLoader: Undefined material', uuid); } array.push(materials[uuid]); } return array; } if (materials[name] === undefined) { console.warn('THREE.ObjectLoader: Undefined material', name); } return materials[name]; } function getTexture(uuid) { if (textures[uuid] === undefined) { console.warn('THREE.ObjectLoader: Undefined texture', uuid); } return textures[uuid]; } let geometry, material; switch (data.type) { case 'Scene': object = new THREE.Scene(); if (data.background !== undefined) { if (Number.isInteger(data.background)) { object.background = new THREE.Color(data.background); } else { object.background = getTexture(data.background); } } if (data.environment !== undefined) { object.environment = getTexture(data.environment); } if (data.fog !== undefined) { if (data.fog.type === 'Fog') { object.fog = new THREE.Fog(data.fog.color, data.fog.near, data.fog.far); } else if (data.fog.type === 'FogExp2') { object.fog = new THREE.FogExp2(data.fog.color, data.fog.density); } if (data.fog.name !== '') { object.fog.name = data.fog.name; } } if (data.backgroundBlurriness !== undefined) object.backgroundBlurriness = data.backgroundBlurriness; if (data.backgroundIntensity !== undefined) object.backgroundIntensity = data.backgroundIntensity; if (data.backgroundRotation !== undefined) object.backgroundRotation.fromArray(data.backgroundRotation); if (data.environmentIntensity !== undefined) object.environmentIntensity = data.environmentIntensity; if (data.environmentRotation !== undefined) object.environmentRotation.fromArray(data.environmentRotation); break; case 'PerspectiveCamera': object = new THREE.PerspectiveCamera(data.fov, data.aspect, data.near, data.far); if (data.focus !== undefined) object.focus = data.focus; if (data.zoom !== undefined) object.zoom = data.zoom; if (data.filmGauge !== undefined) object.filmGauge = data.filmGauge; if (data.filmOffset !== undefined) object.filmOffset = data.filmOffset; if (data.view !== undefined) object.view = Object.assign({}, data.view); break; case 'OrthographicCamera': object = new THREE.OrthographicCamera(data.left, data.right, data.top, data.bottom, data.near, data.far); if (data.zoom !== undefined) object.zoom = data.zoom; if (data.view !== undefined) object.view = Object.assign({}, data.view); break; case 'AmbientLight': object = new THREE.AmbientLight(data.color, data.intensity); break; case 'DirectionalLight': object = new THREE.DirectionalLight(data.color, data.intensity); object.target = data.target || ''; break; case 'PointLight': object = new THREE.PointLight(data.color, data.intensity, data.distance, data.decay); break; case 'RectAreaLight': object = new THREE.RectAreaLight(data.color, data.intensity, data.width, data.height); break; case 'SpotLight': object = new THREE.SpotLight(data.color, data.intensity, data.distance, data.angle, data.penumbra, data.decay); object.target = data.target || ''; break; case 'HemisphereLight': object = new THREE.HemisphereLight(data.color, data.groundColor, data.intensity); break; case 'LightProbe': object = new THREE.LightProbe().fromJSON(data); break; case 'SkinnedMesh': geometry = getGeometry(data.geometry); material = getMaterial(data.material); object = new THREE.SkinnedMesh(geometry, material); if (data.bindMode !== undefined) object.bindMode = data.bindMode; if (data.bindMatrix !== undefined) object.bindMatrix.fromArray(data.bindMatrix); if (data.skeleton !== undefined) object.skeleton = data.skeleton; break; case 'Mesh': geometry = getGeometry(data.geometry); material = getMaterial(data.material); object = new THREE.Mesh(geometry, material); break; case 'InstancedMesh': geometry = getGeometry(data.geometry); material = getMaterial(data.material); const count = data.count; const instanceMatrix = data.instanceMatrix; const instanceColor = data.instanceColor; object = new THREE.InstancedMesh(geometry, material, count); object.instanceMatrix = new THREE.InstancedBufferAttribute(new Float32Array(instanceMatrix.array), 16); if (instanceColor !== undefined) object.instanceColor = new THREE.InstancedBufferAttribute(new Float32Array(instanceColor.array), instanceColor.itemSize); break; case 'BatchedMesh': geometry = getGeometry(data.geometry); material = getMaterial(data.material); object = new THREE.BatchedMesh(data.maxInstanceCount, data.maxVertexCount, data.maxIndexCount, material); object.geometry = geometry; object.perObjectFrustumCulled = data.perObjectFrustumCulled; object.sortObjects = data.sortObjects; object._drawRanges = data.drawRanges; object._reservedRanges = data.reservedRanges; object._visibility = data.visibility; object._active = data.active; object._bounds = data.bounds.map(bound => { const box = new THREE.Box3(); box.min.fromArray(bound.boxMin); box.max.fromArray(bound.boxMax); const sphere = new THREE.Sphere(); sphere.radius = bound.sphereRadius; sphere.center.fromArray(bound.sphereCenter); return { boxInitialized: bound.boxInitialized, box: box, sphereInitialized: bound.sphereInitialized, sphere: sphere }; }); object._maxInstanceCount = data.maxInstanceCount; object._maxVertexCount = data.maxVertexCount; object._maxIndexCount = data.maxIndexCount; object._geometryInitialized = data.geometryInitialized; object._geometryCount = data.geometryCount; object._matricesTexture = getTexture(data.matricesTexture.uuid); if (data.colorsTexture !== undefined) object._colorsTexture = getTexture(data.colorsTexture.uuid); break; case 'LOD': object = new THREE.LOD(); break; case 'Line': object = new THREE.Line(getGeometry(data.geometry), getMaterial(data.material)); break; case 'LineLoop': object = new THREE.LineLoop(getGeometry(data.geometry), getMaterial(data.material)); break; case 'LineSegments': object = new THREE.LineSegments(getGeometry(data.geometry), getMaterial(data.material)); break; case 'PointCloud': case 'Points': object = new THREE.Points(getGeometry(data.geometry), getMaterial(data.material)); break; case 'Sprite': object = new THREE.Sprite(getMaterial(data.material)); break; case 'Group': object = new THREE.Group(); break; case 'Bone': object = new THREE.Bone(); break; // 粒子对象 case 'Particle': object = ParticleEmitter.fromJSON(data); break; // 广告牌 case 'Billboard': object = Billboard.fromJSON({ material: getMaterial(data.material), options: data.options }); break; // HtmlPanel case 'HtmlPanel': object = HtmlPanel.fromJSON(data); break; // HtmlSprite case 'HtmlSprite': object = HtmlSprite.fromJSON(data); break; default: object = new THREE.Object3D(); } this.copyAttrByData(object, data,geometries, materials, textures, animations); return object; } copyAttrByData(object, data,geometries = {}, materials = {}, textures = {}, animations = {}) { object.uuid = data.uuid; if (data.name !== undefined) object.name = data.name; if (data.matrix !== undefined) { object.matrix.fromArray(data.matrix); if (data.matrixAutoUpdate !== undefined) object.matrixAutoUpdate = data.matrixAutoUpdate; if (object.matrixAutoUpdate) object.matrix.decompose(object.position, object.quaternion, object.scale); } else { if (data.position !== undefined) object.position.fromArray(data.position); if (data.rotation !== undefined) object.rotation.fromArray(data.rotation); if (data.quaternion !== undefined) object.quaternion.fromArray(data.quaternion); if (data.scale !== undefined) object.scale.fromArray(data.scale); } if (data.up !== undefined) object.up.fromArray(data.up); if (data.castShadow !== undefined) object.castShadow = data.castShadow; if (data.receiveShadow !== undefined) object.receiveShadow = data.receiveShadow; if (data.shadow) { if (data.shadow.intensity !== undefined) object.shadow.intensity = data.shadow.intensity; if (data.shadow.bias !== undefined) object.shadow.bias = data.shadow.bias; if (data.shadow.normalBias !== undefined) object.shadow.normalBias = data.shadow.normalBias; if (data.shadow.radius !== undefined) object.shadow.radius = data.shadow.radius; if (data.shadow.mapSize !== undefined) object.shadow.mapSize.fromArray(data.shadow.mapSize); if (data.shadow.camera !== undefined) object.shadow.camera = this.parseObject(data.shadow.camera); } if (data.visible !== undefined) object.visible = data.visible; if (data.frustumCulled !== undefined) object.frustumCulled = data.frustumCulled; if (data.renderOrder !== undefined) object.renderOrder = data.renderOrder; if (data.userData !== undefined) object.userData = data.userData; if (data.layers !== undefined) object.layers.mask = data.layers; if (data.children !== undefined) { const children = data.children; for (let i = 0; i < children.length; i++) { object.add(this.parseObject(children[i], geometries, materials, textures, animations)); } } if (data.animations !== undefined) { const objectAnimations = data.animations; for (let i = 0; i < objectAnimations.length; i++) { const uuid = objectAnimations[i]; object.animations.push(animations[uuid]); } } if (data.type === 'LOD') { if (data.autoUpdate !== undefined) object.autoUpdate = data.autoUpdate; const levels = data.levels; for (let l = 0; l < levels.length; l++) { const level = levels[l]; const child = object.getObjectByProperty('uuid', level.object); if (child !== undefined) { object.addLevel(child, level.distance, level.hysteresis); } } } } bindSkeletons(object, skeletons) { if (Object.keys(skeletons).length === 0) return; object.traverse(function (child) { if (child.isSkinnedMesh === true && child.skeleton !== undefined) { const skeleton = skeletons[child.skeleton]; if (skeleton === undefined) { console.warn('THREE.ObjectLoader: No skeleton found with UUID:', child.skeleton); } else { child.bind(skeleton, child.bindMatrix); } } }); } bindLightTargets(object) { object.traverse(function (child) { if (child.isDirectionalLight || child.isSpotLight) { const uuid = child.target; const target = object.getObjectByProperty('uuid', uuid); if (target !== undefined) { child.target = target; } else { child.target = new THREE.Object3D(); } } }); } } export {ObjectLoader}; ================================================ FILE: packages/sdk/lib/core/loader/Package.Skeleton.ts ================================================ /** * @author MaHaiBing * @email mlt131220@163.com * @date 2024/8/3 22:49 * @description 包 骨骼处理 */ import {Skeleton, Bone, Object3D } from "three"; export class PackageSkeleton{ // 场景内所有骨骼的map private boneMap = new Map(); // 场景内所有骨架的map private skeletonsMap = new Map(); // 骨架未对应上的骨骼 private unMatchBoneMap = new Map(); constructor() { } addBones(bones:Bone[]){ bones.forEach(bone => { if(this.boneMap.has(bone.uuid)) return; this.boneMap.set(bone.uuid,bone); if(this.unMatchBoneMap.has(bone.uuid)){ const skeletons = this.unMatchBoneMap.get(bone.uuid) as Skeleton[]; skeletons.forEach(skeleton => { skeleton.bones.push(bone); // 骨骼找到一个替换一个loader.parse时对应骨骼(Bone)还未加载,生成的空骨骼 const d = skeleton.bones.findIndex(bone => bone.userData.waitDelete); if(d === -1) return; skeleton.bones.splice(d,1); }) this.unMatchBoneMap.delete(bone.uuid); } }) } handleSkeletons(skeletons,group:Object3D){ skeletons.forEach(skeleton => { if(this.skeletonsMap.has(skeleton.uuid)) return; let skinnedMesh; group.traverse((m)=> { if(!m.skeleton?.uuid) return; if(m.skeleton.uuid === skeleton.uuid){ skinnedMesh = m; } }) if(!skinnedMesh) return; // 此骨架的原骨骼(Bone)uuid数组 const bonesUuid:string[] = skeleton.bones; // 对比skinnedMesh.skeleton.bones 和 skeleton.bones for(let i = skinnedMesh.skeleton.bones.length;i > 0;i--){ const bone = skinnedMesh.skeleton.bones[i - 1]; const u = bonesUuid.indexOf(bone.uuid); if(u === -1){ // 和原数组没匹配上,说明此骨骼不是原骨骼,是loader.parse时对应骨骼(Bone)还未加载,生成的新的空骨骼 // 但不能直接从skeleton中删除,需要之后找到对应骨骼一个一个替换 bone.userData.waitDelete = true; }else{ bonesUuid.splice(u,1); } } if(bonesUuid.length > 0){ // 在已存储的骨骼中寻找 for(let i = bonesUuid.length;i > 0;i--){ if(this.boneMap.has(bonesUuid[i])){ skinnedMesh.skeleton.bones.push(this.boneMap.get(bonesUuid[i])); bonesUuid.splice(i,1); } } bonesUuid.forEach(uuid => { const skeletons = this.unMatchBoneMap.get(uuid) || []; skeletons.push(skinnedMesh.skeleton); this.unMatchBoneMap.set(uuid,skeletons); }) } this.skeletonsMap.set(skeleton.uuid,skinnedMesh.skeleton); }) } clear(){ this.boneMap.clear(); this.skeletonsMap.clear(); this.unMatchBoneMap.clear(); } } ================================================ FILE: packages/sdk/lib/core/loader/Package.ts ================================================ /** * @file Package.ts * @description 场景打包解包 * @create 2024-07-31 * @update 2025-02-14 * @version 5.0.0 */ import { Mesh, Group, Bone } from "three"; import { BASE64_TYPES, TYPED_ARRAYS } from "@/constant"; import { fetchController, waitAstralZipConstructor, readAstralZipArrayBuffer, getAstralZipWorkers, readAstralZipText, readAstralZipBlob, } from "@/utils"; import { PackageSkeleton } from "@/core/loader/Package.Skeleton"; import { useDispatchSignal } from "@/hooks"; import { ObjectLoader } from "./ObjectLoader"; import App from "@/core/app/App"; import type Viewer from "@/core/viewer/Viewer"; interface IPackConfig { name: string; // 首包名称 layer?: number; // 拆分的最深层级 0:拆分至最深层 zipUploadFun: (zip: File) => Promise; // 压缩包上传接口函数,多压缩包 onProgress?: (progress: number) => void; // 打包进度回调 onComplete?: (_: { firstUploadResult: any; totalSize: number; totalZipNumber: number }) => void; // 打包完成回调 } interface IUnpackConfig { url: string; // 首包url onSceneLoad?: (sceneJson: ISceneJson, configJson: IAppProject.Config) => void; // 场景首包加载完成回调 onProgress?: (progress: number) => void; // 场景加载进度回调 onComplete?: () => void; // 场景加载完成回调. } interface SourceData { name: string; json?: string | ArrayBuffer; texture?: string | ArrayBuffer; geometry?: string; drawing?: string; } interface GroupJson { images: any[]; geometries: any[]; object: { children: any[]; //groupChildren: string[] }; } export class Package { protected viewer: Viewer; // 控制fetch并发 static _fetch = fetchController(10, false); private totalSize: number = 0; // 总包体大小 private geometryArr: any[]; private imagesArr: any[]; private materialsArr: any[]; private textureArr: any[]; private skeletonsArr: any[]; // 解压时 对应文件夹前缀url private prefix_url: string; private loader: ObjectLoader; private geometryMap: Map; private imagesMap: Map; private materialsMap: Map; private textureMap: Map; private callFunNum: { value: number }; private skeletonClass: PackageSkeleton; constructor(viewer: Viewer) { this.viewer = viewer; // 存储已参与打包过的geometry uuid this.geometryArr = []; // 存储已参与打包过的images uuid this.imagesArr = []; // 存储已参与打包过的materials uuid this.materialsArr = []; // 存储已参与打包过的texture uuid this.textureArr = []; // 存储已参与打包过的skeleton uuid this.skeletonsArr = []; /** 下面都是解包用 */ this.prefix_url = ""; this.loader = new ObjectLoader(); this.geometryMap = new Map(); this.imagesMap = new Map(); this.materialsMap = new Map(); this.textureMap = new Map(); this.callFunNum = { value: 0 }; this.skeletonClass = new PackageSkeleton(); } /* -------------------------------------------- 切片打包 --------------------------------------------------- */ /** * 处理 image json * @param imageJson * @param zipData 存储待压缩数据 * @returns {string} 返回贴图存储文件名称 */ handleImage(imageJson: ITHREEScene.ImageJSON, zipData: SourceData[]): string { if (typeof imageJson.url === "string") { const name = imageJson.uuid + `.${BASE64_TYPES[imageJson.url.split(",")[0]]}`; zipData.push({ name, texture: imageJson.url }); return name; } // 20250707:three的toJSON方法暂不支持KTX2纹理,会返回{url:{},uuid:"xxxxx"} if (!imageJson.url.type) { const name = imageJson.uuid + `.ktx2`; zipData.push({ name, texture: JSON.stringify(imageJson.url) }); return name; } const name = `${imageJson.url.type}!${imageJson.url.width}!${imageJson.url.height}!${imageJson.uuid}.env`; const buffer = new TYPED_ARRAYS[imageJson.url.type](imageJson.url.data); zipData.push({ name, texture: buffer.buffer }); return name; } /** * 处理 mesh json * @param mesh * @param json group json * @param zipData 存储待压缩数据 */ handleMesh(mesh: Mesh, json: ITHREEScene.SceneJSON, zipData: SourceData[]) { const meshJson: any = mesh.toJSON() as unknown as ITHREEScene.MeshJSON; // 处理几何数据 if (meshJson.geometries) { const geometries: any = []; meshJson.geometries.forEach(geometry => { if (this.geometryArr.indexOf(geometry.uuid) === -1) { this.geometryArr.push(geometry.uuid); geometries.push(geometry); } }); !json.geometries && (json.geometries = []); json.geometries.push(...geometries); } // 处理贴图image if (meshJson.images) { meshJson.images.forEach(image => { if (this.imagesArr.indexOf(image.uuid) === -1) { this.imagesArr.push(image.uuid); !json.images && (json.images = []); const name = this.handleImage(image, zipData); if (name) { json.images.push(name); } } }); } // 处理贴图texture if (meshJson.textures) { meshJson.textures.forEach(texture => { if (this.textureArr.indexOf(texture.uuid) === -1) { this.textureArr.push(texture.uuid); !json.textures && (json.textures = []); json.textures.push(texture); } }); } // 处理材质material if (meshJson.materials) { meshJson.materials.forEach(material => { if (this.materialsArr.indexOf(material.uuid) === -1) { this.materialsArr.push(material.uuid); !json.materials && (json.materials = []); json.materials.push(material); } }); } // 处理骨骼动画 if (meshJson.skeletons) { meshJson.skeletons.forEach(skeleton => { if (this.skeletonsArr.indexOf(skeleton.uuid) === -1) { this.skeletonsArr.push(skeleton.uuid); !json.skeletons && (json.skeletons = []); json.skeletons.push(skeleton); } }); } // 处理动画 if (meshJson.animations) { !json.animations && (json.animations = []); json.animations.push(...meshJson.animations); } // object 字段存入group json(parent json) if (meshJson.object) { !json.object.children && (json.object.children = []); json.object.children.push(meshJson.object); } } /** * 按 group 分组各打包为1个zip文件 * @param {IPackConfig} packConfig * @remarks 首包保存scene基本信息 和 图纸信息 及 基础配置 * @remarks 前面已打包的几何数据和材质贴图不会再次打包 */ async pack(packConfig: IPackConfig) { packConfig.layer = packConfig.layer || 0; this.totalSize = 0; // 首包保存scene基本信息,不clone子级 const newScene = this.viewer.scene.clone(false); newScene.children = []; const sceneJson = newScene.toJSON() as unknown as ITHREEScene.SceneJSON; // scene uuid需要和原来一致,防止绑定在scene的脚本无法还原 sceneJson.object.uuid = this.viewer.scene.uuid; sceneJson.object.children = []; // 20250718: 环境类型是ModelViewer时需要特殊处理,因为scene.toJSON()不会处理renderTargetTexture if (newScene.environment && newScene.environment.isRenderTargetTexture) { sceneJson.object.environmentType = "ModelViewer"; } const sceneZipData: SourceData[] = []; // 处理背景和环境贴图 if (!sceneJson.images) sceneJson.images = []; sceneJson.images = sceneJson.images.map(image => this.handleImage(image as ITHREEScene.ImageJSON, sceneZipData)); // 保存场景中需打包的group数组 let groupArr: Group[] = []; // 处理 scene 子级 this.viewer.scene.children.forEach(child => { if (child.ignore) return; if (child.type === "Group" || child.children?.length > 0) { sceneJson.object.children?.push(child.uuid); child.groupLayer = 1; groupArr.push(child as Group); child.traverseByCondition( c => { // 不递归自身 if (c.uuid === child.uuid) return; if (c.type === "Group" || c.children?.length > 0) { c.groupLayer = c.parent.groupLayer + 1; if (c.groupLayer <= packConfig.layer || packConfig.layer === 0) { groupArr.push(c); } } }, c => !c.ignore ); } else { this.handleMesh(child, sceneJson, sceneZipData); } }); // 将所有几何数据取出 单独存储 if (sceneJson.geometries) { // 为避免数据量过大超过V8引擎对于字符串2^32的限制,分为多个切片(10个几何数据为一组)json const transferNum = Math.ceil(sceneJson.geometries.length / 10); for (let i = 0; i < transferNum; i++) { const name = `geometries_${i}.json`; const geometry = JSON.stringify(sceneJson.geometries.slice(i * 10, (i + 1) * 10)); sceneZipData.push({ name, geometry }); } sceneJson.geometries = []; } const drawingInfo = App.project.getKey("drawing"); const sceneInfo = Object.assign(App.project.getKey("sceneInfo"), { // 覆盖原zip包位置 zip: "", hasDrawing: drawingInfo.isUploaded ? 1 : 0, }); // 图纸 if (drawingInfo.isUploaded) { // 图片 sceneZipData.push({ name: sceneInfo.id + `.${BASE64_TYPES[drawingInfo.imgSrc.split(",")[0]]}`, drawing: drawingInfo.imgSrc, }); // 标记 sceneZipData.push({ name: "drawingMark.txt", drawing: drawingInfo.markList }); // 图片信息(宽高信息等,以便于其他地方使用可计算标记左上距离百分比) sceneZipData.push({ name: "drawingImgInfo.json", drawing: JSON.stringify(drawingInfo.imgInfo) }); } // 项目配置 sceneZipData.push({ name: "config.json", json: JSON.stringify({ // 项目运行是否启用xr xr: App.project.getKey("xr"), // 项目渲染器配置 renderer: App.project.getKey("renderer"), // 项目级联阴影映射 csm: App.project.getKey("csm"), // 项目后处理配置 effect: App.project.getKey("effect"), // 项目天气配置 weather: App.project.getKey("weather"), }), }); const totalNum = groupArr.length + 1; sceneZipData.push({ name: "scene.json", json: JSON.stringify({ // 解包时需要还原的编辑器场景信息 metadata: App.metadata, camera: this.viewer.camera.toJSON(), scene: sceneJson, scripts: App.scripts, controls: { state: this.viewer.modules.controls.toJSON(), }, totalZipNumber: totalNum, sceneInfo: sceneInfo, }), }); // 首包上传 const firstUploadResult = await this.zip(sceneZipData, packConfig.name, packConfig.zipUploadFun); // 进度 let progress = 0; packConfig.onProgress && packConfig.onProgress(parseFloat(((progress / groupArr.length) * 100).toFixed(2))); // 遍历打包group并上传 for (const group of groupArr) { // clone(false) 不克隆子元素 const g = group.clone(false); g.children = []; // 空 group let json: any = g.toJSON() as unknown as ITHREEScene.SceneJSON; json.geometries = []; json.images = []; json.textures = []; json.materials = []; json.object.uuid = group.uuid; json.object.children = []; // 存储待压缩数据 const zipData: SourceData[] = []; group.children.forEach(child => { // 被groupArr包含的子级后面会单独处理,此处仅引用其uuid if (groupArr.find(item => item.uuid === child.uuid)) { json.object.children?.push(child.uuid); return; } this.handleMesh(child, json, zipData); }); // 将所有几何数据取出 单独存储 if (json.geometries) { // 为避免数据量过大超过V8引擎对于字符串2^32的限制,分为多个切片(10个几何数据为一组)json const transferNum = Math.ceil(json.geometries.length / 10); for (let i = 0; i < transferNum; i++) { const name = `geometries_${i}.json`; const geometry = JSON.stringify(json.geometries.slice(i * 10, (i + 1) * 10)); zipData.push({ name, geometry }); } json.geometries = []; } // json 打包 // 还原uuid json.object.uuid = group.uuid; const name = `${group.uuid}.json`; const content = JSON.stringify(json); zipData.push({ name, json: content }); await this.zip(zipData, group.uuid, packConfig.zipUploadFun); progress++; packConfig.onProgress && packConfig.onProgress(parseFloat(((progress / groupArr.length) * 100).toFixed(2))); } // reset groupArr = []; this.geometryArr = []; this.imagesArr = []; this.materialsArr = []; this.textureArr = []; packConfig.onComplete && packConfig.onComplete({ firstUploadResult, totalSize: this.totalSize, totalZipNumber: totalNum }); return { firstUploadResult, totalSize: this.totalSize, totalZipNumber: totalNum }; } /** * zip 打包 * @param sourceData 待打包数据 * @param {string | number} zipName 打包文件名 * @return {Promise} 返回包上传接口结果 */ private async zip(sourceData: SourceData[], zipName: string | number, zipUploadFun: (zip: File) => Promise): Promise { const AstralZip = await waitAstralZipConstructor(); const zipArchive = new AstralZip(); const imgFolder = zipArchive.folder("Textures"); // 贴图文件夹 const geometriesFolder = zipArchive.folder("Geometries"); // 几何数据文件夹 const drawingFolder = zipArchive.folder("Drawing"); // 图纸文件夹 let content: Blob | null = null; try { sourceData.forEach(item => { if (item.texture) { imgFolder.file(item.name, item.texture, { compression: "DEFLATE", //"STORE",//"DEFLATE compressionOptions: { level: 7, }, }); } else if (item.geometry) { geometriesFolder.file(item.name, item.geometry, { compression: "DEFLATE", //"STORE",//"DEFLATE compressionOptions: { level: 7, }, }); } else if (item.json) { zipArchive.file(item.name, item.json, { compression: "DEFLATE", //"STORE",//"DEFLATE compressionOptions: { level: 7, }, }); } else if (item.drawing) { drawingFolder.file(item.name, item.drawing, { compression: "DEFLATE", //"STORE",//"DEFLATE compressionOptions: { level: 9, }, }); } }); content = (await zipArchive.generateAsync({ type: "blob", compression: "DEFLATE", compressionOptions: { level: 7, }, workers: getAstralZipWorkers(), })) as Blob; } finally { zipArchive.dispose(); } if (!content) { throw new Error("zip 打包失败"); } const zipFile = new File([content], `${zipName}.zip`, { type: "application/zip" }); this.totalSize += zipFile.size; // 上传zip包 return await zipUploadFun(zipFile); } /* -------------------------------------------- 解包 --------------------------------------------------- */ /** * 还原贴图 * @param imageName * @param data */ private unGzipImage(imageName: string, data) { const nameSplit = imageName.split("."); if (nameSplit[1] === "env") { const urlSplit = nameSplit[0].split("!"); this.imagesMap.set(urlSplit[3], { uuid: urlSplit[3], url: { type: urlSplit[0], width: parseInt(urlSplit[1]), height: parseInt(urlSplit[2]), /** * sceneJson打zip包前原数据为Array,此处解压后我们使用ArrayBuffer,不还原为Array * 还原为Array这样写 Array.from(new TYPED_ARRAYS[urlSplit[0]](textureMap.get(urlSplit[3] + ".env"))) **/ data: data, }, }); } else { this.imagesMap.set(nameSplit[0], { uuid: nameSplit[0], url: data, }); } } /** * 记录materials、texture、geometry已加载的uuid * @param object3D 模型json */ private recordUuid(object3D) { if (object3D.geometries) { object3D.geometries.forEach(geometry => { this.geometryMap.set(geometry.uuid, geometry); }); } if (object3D.materials) { object3D.materials.forEach(material => { this.materialsMap.set(material.uuid, material); }); } if (object3D.textures) { object3D.textures.forEach(texture => { this.textureMap.set(texture.uuid, texture); }); } } /** * 从首包开始解包 * @param {IUnpackConfig} unpackConfig */ public unpack(unpackConfig: IUnpackConfig) { unpackConfig.onProgress && unpackConfig.onProgress(0); let totalZipNumber = 0, progress = 0; const match = unpackConfig.url.match(/(.*[\\/])?([a-zA-Z0-9]+-V\d+)(?=[\\/]|$)/); this.prefix_url = this.viewer.options.request?.baseUrl + (match ? match[0] : unpackConfig.url.substring(0, unpackConfig.url.lastIndexOf("/"))); // indexDb存储 // const db = window.VIEWPORT.modules["db"]; //const dbKey = `${useProjectState.getState().sceneId}-${useProjectState.getState().version.id}`; const that = this; this.callFunNum = new Proxy( { value: 0 }, { set(target, p, value) { if (target[p] < value) { progress += ((value - target[p]) / totalZipNumber) * 100; unpackConfig.onProgress && unpackConfig.onProgress(progress); } target[p] = value; if (value <= 0) { const done = () => { // 重置清除map that.geometryMap.clear(); that.imagesMap.clear(); that.materialsMap.clear(); that.textureMap.clear(); // @ts-ignore 清除loader that.loader = undefined; }; const complete = () => { done(); // 场景内容加载完毕后注入脚本执行逻辑 that.viewer.installScripts(); that.viewer.dispatchEvent({ type: "loaded" }); that.skeletonClass.clear(); // 关闭IndexDB 否则新的标签页无法正常打开 // db.close(); unpackConfig.onComplete && unpackConfig.onComplete(); }; complete(); } return true; }, } ); // map 存储 json 解析完成后执行的 function; key 为 uuid const funcMap = new Map(); const loadScene = (sceneJson: ISceneJson, drawingInfo: IDrawingInfo | null, configJson: IAppProject.Config) => { App.fromJSON(sceneJson).then(async scene => { // 还原控制器 if (sceneJson.controls?.state) { this.viewer.modules.controls.fromJSON(sceneJson.controls.state, true); } if (drawingInfo) { const projectDrawing = App.project.getKey("drawing"); projectDrawing.isCad = drawingInfo.imgSrc.split(".").pop() === "dxf"; projectDrawing.imgSrc = drawingInfo.imgSrc; projectDrawing.markList = drawingInfo.markList; projectDrawing.imgInfo = drawingInfo.imgInfo; projectDrawing.isUploaded = true; } // 还原项目配置 if (configJson) { App.project.setKey("xr", configJson.xr || false); if (configJson.renderer) { App.project.setKey("renderer", configJson.renderer); // fps需要通过 App.FPS 进行set才能正确计算单帧渲染时长 App.FPS = Number(configJson.renderer.fps); } if (configJson.csm) { const projectCSM = App.project.getKey("csm"); let _csmNotChange = true; Object.keys(configJson.csm).forEach(csmKey => { if (projectCSM[csmKey] !== configJson.csm[csmKey]) { projectCSM[csmKey] = configJson.csm[csmKey]; _csmNotChange = false; } }); if (!_csmNotChange) { App.csm.enabled = projectCSM.enabled; } } if (configJson.effect) { Object.keys(configJson.effect).forEach(key => { App.project.setKey(`effect.${key}`, configJson.effect[key]); }); } if (configJson.weather) { const projectWeather = App.project.getKey("weather"); if (configJson.weather.fog) { Object.keys(configJson.weather.fog).forEach(key => { projectWeather.fog[key] = configJson.weather.fog[key]; }); useDispatchSignal("sceneFogSettingsChanged"); } if (configJson.weather.rain) { Object.keys(configJson.weather.rain).forEach(key => { projectWeather.rain[key] = configJson.weather.rain[key]; }); useDispatchSignal("sceneRainSettingsChanged"); } if (configJson.weather.snow) { Object.keys(configJson.weather.snow).forEach(key => { projectWeather.snow[key] = configJson.weather.snow[key]; }); useDispatchSignal("sceneSnowSettingsChanged"); } } } // 添加indexDB表存储zip包 // await db.addStore(dbKey); unpackConfig.onSceneLoad && unpackConfig.onSceneLoad(sceneJson, configJson); // 防止项目只有一个包的情况造成不触发proxy set if (this.callFunNum.value === 0) { this.callFunNum.value = 0; unpackConfig.onProgress && unpackConfig.onProgress(100); } // 开始执行funcMap中的function funcMap.forEach((func, uuid) => { func.call(this, uuid, scene, uuid); }); }); }; const networkGet = () => { // 下载场景包 fetch(this.viewer.options.request?.baseUrl + unpackConfig.url) .then(zipRes => zipRes.blob()) .then(async file => { unpackConfig.onProgress && unpackConfig.onProgress(1); // @ts-ignore let sceneJson: ISceneJson = undefined, configJson: IAppProject.Config = undefined; // 开始解压首包 const AstralZip = await waitAstralZipConstructor(); // 几何数据数组 let geometries: Array = []; // 图纸信息 let drawingInfo: IDrawingInfo = { imgSrc: "", markList: [], imgInfo: { width: 0, height: 0, }, }; const res = await AstralZip.loadAsync(file); try { /** * res.files()里包含整个zip里的文件描述、目录描述列表 */ for (const fileMeta of res.files()) { //判断是否是目录 if (!fileMeta.dir) { const fileName = fileMeta.name; //找到我们压缩包所需要的json文件 if (fileName === "scene.json") { // 场景json const content = await readAstralZipText(res, fileName); //得到scene.json文件的内容 sceneJson = JSON.parse(content); } else if (fileName === "config.json") { // 项目配置json const content = await readAstralZipText(res, fileName); configJson = JSON.parse(content); } else if (fileName.substring(0, 9) === "Textures/") { /** * 贴图 * 分为两种情况: * 1.贴图为env格式(type!width!height!uuid.env),转换为arraybuffer格式,存入map * 2.贴图为普通图片格式,直接存入map **/ if (/\.env$/.test(fileName)) { // 转换回贴图原始信息,存入map const content = await readAstralZipArrayBuffer(res, fileName); this.unGzipImage(fileName.replace("Textures/", ""), content); } else { const content = await readAstralZipText(res, fileName); this.unGzipImage(fileName.replace("Textures/", ""), content); } } else if (/^Geometries\/geometries_\d*\.json$/.test(fileName)) { const content = await readAstralZipText(res, fileName); geometries.push(...JSON.parse(content)); } else if (/^Geometries\/geometries_\d*\.zip$/.test(fileName)) { /** 此处为兼容整体打包的版本 **/ // geometry切片zip包,内部是json文件 const content = await readAstralZipBlob(res, fileName); const zipRes = await AstralZip.loadAsync(content); try { for (const zipFileMeta of zipRes.files()) { if (zipFileMeta.dir) continue; const content = await readAstralZipText(zipRes, zipFileMeta.name); geometries.push(...JSON.parse(content)); } } finally { zipRes.dispose(); } } else if (fileName.substring(0, 8) === "Drawing/") { /** * 图纸文件夹下的文件 * 1. drawingMarking.txt 为图纸标注文件,须解压 * 2. sceneId开头的图片是图纸 */ if (fileName === "Drawing/drawingMark.txt") { const content = await readAstralZipText(res, fileName); drawingInfo.markList = JSON.parse(content); } else if (fileName === "Drawing/drawingImgInfo.json") { drawingInfo.imgInfo = JSON.parse(await readAstralZipText(res, fileName)); } else { drawingInfo.imgSrc = await readAstralZipText(res, fileName); } } } } } finally { res.dispose(); } totalZipNumber = sceneJson.totalZipNumber || 0; // 贴图还原至sceneJson sceneJson.scene.images = sceneJson.scene.images.map(item => { const nameSplit = item.split("."); if (nameSplit[1] === "env") { const urlSplit = nameSplit[0].split("!"); return this.imagesMap.get(urlSplit[3]); } else { return this.imagesMap.get(nameSplit[0]); } }); // 几何数据还原至sceneJson sceneJson.scene.geometries = geometries; this.recordUuid(sceneJson.scene); const newChildren: any = []; // 遍历sceneJson.object.children,拉取group zip还原 sceneJson.scene.object.children?.forEach(objectJsonOruuid => { if (typeof objectJsonOruuid === "string") { // 保存uuid对应的function funcMap.set(objectJsonOruuid, this.unpackGroup); this.callFunNum.value++; } else { newChildren.push(objectJsonOruuid); } }); sceneJson.scene.object.children = newChildren; // 图档信息 const _drawingInfo = drawingInfo.imgSrc ? drawingInfo : null; loadScene(sceneJson, _drawingInfo, configJson); }); }; networkGet(); } /** * 异步解压group zip * @param uuid * @param parent * @param rootGroupUuid */ private unpackGroup(uuid: string, parent, rootGroupUuid) { // map 存储 json 解析完成后执行的 function; key 为 uuid const funcMap = new Map(); const check = (object, group) => { // 检查数据是否已完善 let isDone = true; object.children.forEach(child => { // 检查几何数据是否都已拥有 if (child.geometry && group.geometries?.findIndex(geometry => geometry.uuid === child.geometry) === -1) { if (!this.geometryMap.has(child.geometry)) { isDone = false; } else { group.geometries.push(this.geometryMap.get(child.geometry)); } } // material->texture->image if (child.material && group.materials?.findIndex(material => material.uuid === child.material) === -1) { if (!this.materialsMap.has(child.material)) { isDone = false; } else { group.materials.push(this.materialsMap.get(child.material)); const material = this.materialsMap.get(child.material); if (material.map && group.textures?.findIndex(texture => texture.uuid === material.map) === -1) { if (!this.textureMap.has(material.map)) { isDone = false; } else { group.textures.push(this.textureMap.get(material.map)); const texture = this.textureMap.get(material.map); if (texture.image && group.images?.findIndex(image => image.uuid === texture.image) === -1) { if (!this.imagesMap.has(texture.image)) { isDone = false; } else { group.images.push(this.imagesMap.get(texture.image)); } } } } } } if (child.children?.length > 0 && isDone) { isDone = check(child, group); } }); return isDone; }; const parse = json => { if (check(json.object, json)) { this.loader.parse(json, group => { const bones: Bone[] = []; group.getObjectsByProperty("type", "Bone", bones); if (bones.length > 0) { this.skeletonClass.addBones(bones); } // 如果存在Skeleton(骨架),须存下来后面替换回原骨骼。 // 因为loader.parse时如果对应骨骼(Bone)还未加载,会生成新的空骨骼替代, if (json.skeletons) { this.skeletonClass.handleSkeletons(json.skeletons, group); } group.uuid = uuid; App.addObject(group, parent); this.callFunNum.value--; // 开始执行funcMap中的function funcMap.forEach((func, uuid) => { func.call(this, uuid, group, rootGroupUuid); }); }); } else { const timer = setTimeout(() => { clearTimeout(timer); parse(json); }, 200); } }; const getByNetwork = () => { Package._fetch(`${this.prefix_url}/${uuid}.zip`, { onSuccess: async zipRes => { const file = await zipRes.blob(); const AstralZip = await waitAstralZipConstructor(); let json: GroupJson; // 几何数据数组 let geometries: Array = []; const unzipDone = () => { // 贴图还原至sceneJson json.images = json.images.map(item => { const nameSplit = item.split("."); if (nameSplit[1] === "env") { const urlSplit = nameSplit[0].split("!"); return this.imagesMap.get(urlSplit[3]); } else { return this.imagesMap.get(nameSplit[0]); } }); // 几何数据还原至sceneJson json.geometries = geometries; this.recordUuid(json); // 遍历children,拉取group zip还原 const children: any = []; json.object.children.forEach(uuid => { if (typeof uuid === "string") { // 保存uuid对应的function funcMap.set(uuid, this.unpackGroup); this.callFunNum.value++; } else { children.push(uuid); } }); json.object.children = children; parse(json); }; const res = await AstralZip.loadAsync(file); try { await Promise.all( res.files().map(async fileMeta => { //判断是否是目录 if (fileMeta.dir) return; const fileName = fileMeta.name; //找到我们压缩包所需要的json文件 if (fileName === `${uuid}.json`) { // 场景json const content = await readAstralZipText(res, fileName); //得到scene.json文件的内容 json = JSON.parse(content); } else if (fileName.substring(0, 9) === "Textures/") { /** * 贴图 * 分为两种情况: * 1.贴图为env格式(type!width!height!uuid.env),转换为arraybuffer格式,存入map * 2.贴图为普通图片格式,直接存入map **/ if (/\.env$/.test(fileName)) { // 转换回贴图原始信息,存入map const content = await readAstralZipArrayBuffer(res, fileName); this.unGzipImage(fileName.replace("Textures/", ""), content); } else { const content = await readAstralZipText(res, fileName); this.unGzipImage(fileName.replace("Textures/", ""), content); } } else if (/^Geometries\/geometries_\d*\.json$/.test(fileName)) { const content = await readAstralZipText(res, fileName); geometries.push(...JSON.parse(content)); } }) ); } finally { res.dispose(); } unzipDone(); }, }); }; getByNetwork(); } /** * 销毁此类 */ dispose() { // 1. 清空所有数组 this.geometryArr = []; this.imagesArr = []; this.materialsArr = []; this.textureArr = []; this.skeletonsArr = []; // 2. 清空所有映射 this.geometryMap.clear(); this.imagesMap.clear(); this.materialsMap.clear(); this.textureMap.clear(); // 3. 销毁 loader 和骨架处理器 if (this.loader) { this.loader = null as any; // 清空引用 } if (this.skeletonClass) { this.skeletonClass.clear(); // 清除骨架数据 this.skeletonClass = null as any; // 清空引用 } // 4. 重置其他属性 this.prefix_url = ""; this.callFunNum = { value: 0 }; // 重置为初始状态 this.totalSize = 0; // 5. 释放 viewer 引用(注意:不销毁 viewer,仅移除引用) this.viewer = null as any; } } ================================================ FILE: packages/sdk/lib/core/objects/Billboard.ts ================================================ /** * @author ErSan * @email mlt131220@163.com * @date 2025/4/6 12:02 * @description 广告牌对象 */ import * as THREE from 'three' import {POSITION} from "@/constant"; import BillboardTexture from "./texture/BillboardTexture"; import {deepAssign} from "@/utils"; export interface BillboardEventMap extends THREE.Object3DEventMap { imgLoaded: { url:string }; redraw: { url:string } } export const getDefaultBillboardOptions = () => ({ name: "Billboard", position: [0, 0, 0], image: { // 图像地址 url: '', // 可见性 visible: false, // 宽度 width: 32, // 高度 height: 32, // 旋转角度 deg rotate: 0, // 与文本的间距 margin: 2, // 位置 position: POSITION.CENTER, // 置顶 top: false, }, text: { // 内容 value: '', // 可见性 visible: false, // 字体大小 fontSize: 16, // 字体颜色 fontColor: "#ffffff", // 字体 fontFamily: `sans-serif,"Source Han Sans SC","Source Han Sans","WenQuanYi Micro Hei", "Times New Roman", "隶书", "幼圆"`, // 加粗 fontWeight: 400, // 字体风格(斜体) fontStyle: "normal", // 行间距 lineGap: 0, // 内边距 padding: 0, // 对齐方式, left, center, right align: "center", // 文本基线, top, middle, bottom,alphabetic,hanging,ideographic baseline: "top", // 描边宽度 strokeWidth: 0, // 描边颜色 strokeColor: "#FFFFFF", // 是否填充 fill: false, // 填充颜色 fillColor: "#000000", } }) export default class Billboard extends THREE.Sprite { type = 'Billboard'; isBillboard = true; options = getDefaultBillboardOptions(); constructor(options: IBillboard.options, material?: THREE.SpriteMaterial) { super() deepAssign(this.options, options); this.name = this.options.name; const texture = new BillboardTexture(this.options, material ? (material.map?.image) : undefined); texture.colorSpace = THREE.SRGBColorSpace; if (material) { if (material.map) { texture.mapping = material.map.mapping; texture.wrapS = material.map.wrapS; texture.wrapT = material.map.wrapT; texture.magFilter = material.map.magFilter; texture.minFilter = material.map.minFilter; texture.anisotropy = material.map.anisotropy; texture.format = material.map.format; texture.type = material.map.type; texture.colorSpace = material.map.colorSpace; texture.repeat.copy(material.map.repeat); texture.offset.copy(material.map.offset); texture.center.copy(material.map.center); texture.matrix.copy(material.map.matrix); } this.material = material; this.material.map = texture; } else { this.material = new THREE.SpriteMaterial({ map: texture, sizeAttenuation: true, depthWrite: true, }); } // @ts-ignore texture.addEventListener("imgLoaded", (event) => { this.material.needsUpdate = true; // @ts-ignore this.dispatchEvent({type: "imgLoaded", url: event.url}) }) // @ts-ignore texture.addEventListener("redraw", (event) => { const wh = { width: texture.width, height: texture.height, } if (wh.width > wh.height) { wh.width = wh.width / wh.height; wh.height = 1; } else { wh.height = wh.height / wh.width; wh.width = 1; } this.geometry = new THREE.PlaneGeometry(wh.width, wh.height); // @ts-ignore this.dispatchEvent({type: "redraw", url: event.url}) }) this.position.set(this.options.position[0], this.options.position[1], this.options.position[2]); // this.center = new THREE.Vector2(0.5, 0); } /** * 获取json配置 */ toJSON(meta?: THREE.JSONMeta) { const options = JSON.parse(JSON.stringify(this.options)); options.name = this.name; options.position = this.position.toArray(); const superJSON = super.toJSON(meta); superJSON.object.options = options; return superJSON; } /** * 从json配置解析 */ static fromJSON(json: { material: THREE.SpriteMaterial, options: IBillboard.options }) { return new Billboard(json.options, json.material); } } ================================================ FILE: packages/sdk/lib/core/objects/HtmlPanel.ts ================================================ /** * @author ErSan * @email mlt131220@163.com * @date 2025/4/10 0:29 * @description html面板 */ import {JSONMeta} from "three"; import {CSS3DObject, CSS3DSprite} from 'three/examples/jsm/renderers/CSS3DRenderer.js'; import { readAstralZipArrayBuffer, readAstralZipText, waitAstralZipConstructor } from "@/utils/wasm/zip.ts"; interface IHtmlPanelOption { // 类型是否是精灵 isSprite: boolean; // 代码内容 codes: Array<{ name: string, content: string | ArrayBuffer, isIndex?: boolean }>; // 对应的代码是单html文件还是多文件 isSingleHtml: boolean; } /** * html面板转换器 * @description 如果是单html文件,沙箱环境使用with + proxy;如果是zip包,沙箱环境使用iframe */ class HtmlPanelConverter { private static instance: HtmlPanelConverter | null = null; private config = { // 是否允许执行脚本 allowScripts: true, // 文件大小限制 maxFileSize: 1024 * 1024 * 10, // 10M // 标签黑名单 notAllowedTags: ['iframe'], }; private readonly sandbox: any; private constructor() { // 创建安全沙箱环境 this.sandbox = this._createSandbox(); // 配套CSS样式(需添加到页面) const style = document.createElement('style'); style.textContent = ` .css3d-imported-content { pointer-events: none !important; // overflow: hidden; } .css3d-imported-content [style] { will-change: transform, opacity; } `; document.head.appendChild(style); } // 获取单例实例 public static getInstance(): HtmlPanelConverter { if (!HtmlPanelConverter.instance) { HtmlPanelConverter.instance = new HtmlPanelConverter(); } return HtmlPanelConverter.instance; } // 创建安全沙箱 private _createSandbox() { // 重写全局的 fetch 方法 const originalFetch = window.fetch; // 重写 XMLHttpRequest 的 open 方法 const originalXMLHttpRequest = window.XMLHttpRequest; // 重写Websocket const originalWebSocket = window.WebSocket; // url检查 const checkUrl = (url: string) => { if(url.indexOf(import.meta.env.VITE_GLOB_ORIGIN) > -1) return false; if(url.indexOf('http://') === -1 && url.indexOf('https://') === -1 && url.indexOf('ws://') === -1 && url.indexOf('wss://') === -1) return false; return true; } const sandbox = { fetch: async (url: string, options: any) => { if (checkUrl(url)) { throw new Error('请求被禁止:无法向当前服务器发起请求'); } // 如果不是当前服务器的请求,则调用原始的 fetch 方法 return originalFetch(url, options); }, XMLHttpRequest: () => { const xhr = new originalXMLHttpRequest(); // 拦截 open 方法 const originalOpen = xhr.open; // @ts-ignore xhr.open = function (method, url, async, user, password) { if (checkUrl(url as string)) { throw new Error('请求被禁止:无法向当前服务器发起请求'); } // 如果不是当前服务器的请求,则调用原始的 open 方法 return originalOpen.call(xhr, method, url, async, user, password); }; return xhr; }, WebSocket: (url:string) => { if (checkUrl(url)) { throw new Error('请求被禁止:无法连接到当前服务器的 WebSocket'); } return new originalWebSocket(url); }, // 其他要修改的的全局对象... }; return new Proxy(sandbox, { // 拦截所有属性,防止到 Proxy 对象以外的作用域链查找。 has: () => true, get: (target, prop) => { // 加固,防止逃逸 if (prop === Symbol.unscopables) { return undefined; } if (Reflect.has(target, prop)) { return Reflect.get(target, prop); } // 暂时允许从window直接获取属性,后续考虑限制。因为不限制很危险,比如可以获取到window.location、window.history等敏感信息。 // else{ // return undefined; // } // 禁止访问的属性 if(['location', 'history', 'top', 'parent', 'frameElement'].includes(typeof prop === "string" ? prop : '')) return undefined; //如果找不到,就直接从window对象上取值 const rawValue = Reflect.get(window, prop); //如果兜底的是一个函数,需要绑定window对象,比如window.addEventListener if (typeof rawValue === 'function') { const valueStr = rawValue.toString(); if (!/^function\s+[A-Z]/.test(valueStr) && !/^class\s+/.test(valueStr)) { return rawValue.bind(window); // 所有 window 上非构造函数调用时候的 this 绑定window对象 } } return rawValue; } }); } // 主加载方法 loadAsync(option: { url: string, isSprite: boolean, fileName?: string }): Promise { return new Promise(async (resolve, reject) => { if (!option.url) { reject(new Error('请输入url参数')); return; } const htmlPanelOption: IHtmlPanelOption = { isSprite: option.isSprite, isSingleHtml: true, codes: [] } const response = await fetch(option.url); try{ this._validateResponse(response); }catch (e){ reject(e); return; } // 判断是zip包还是html文件 let suffix = option.fileName?.split('.').pop() || option.url.split('.').pop(); if (suffix && ['zip'].includes(suffix)) { try { const AstralZip = await waitAstralZipConstructor(); const zipContent = await AstralZip.loadAsync(await response.arrayBuffer()); try { // 强制检查根目录下的index.html const mainHtmlFile = zipContent.file('index.html'); if (!mainHtmlFile) { reject(new Error('The .zip file root directory must contain index.html')); return; } // AstralZip 返回统一的文件元信息列表,避免依赖第三方 ZIP 库的私有 files 字典结构。 for (const fileMeta of zipContent.files()) { const relativePath = fileMeta.name; // 判断是否为文件,兼容显式目录元信息与斜杠结尾目录路径。 if (fileMeta.dir || relativePath.endsWith('/')) continue; const _isEdit = this._isEditable(relativePath); // 文本资源保持字符串形态,图片/二进制资源保持 ArrayBuffer,避免改变 CSS3D 面板解析行为。 const content = _isEdit ? await readAstralZipText(zipContent, relativePath) : await readAstralZipArrayBuffer(zipContent, relativePath); // 存储到目标数组 htmlPanelOption.codes.push({ name: relativePath, content: content, isIndex: relativePath === 'index.html' }); } } finally { zipContent.dispose(); } } catch (error) { reject(error); return; } htmlPanelOption.isSingleHtml = false; } else { if (!option.fileName) { // 解析URL以获取文件名 // const _url = new URL(option.url, document.baseURI); const _url = new URL(option.url, import.meta.env.VITE_GLOB_ORIGIN); option.fileName = _url.pathname.split('/').pop() || 'index.html'; } htmlPanelOption.codes.push({ name: option.fileName, content: await response.text(), isIndex: true }); htmlPanelOption.isSingleHtml = true; } try{ resolve(this.parseToCSS3D(htmlPanelOption)); }catch (e){ reject(e); } }) } // 安全验证方法 private _validateResponse(response: Response) { if (!response.ok) throw new Error('加载失败'); if (Number(response.headers.get('content-length')) > this.config.maxFileSize) { throw new Error('文件大小超出限制'); } } // 解析HTML生成CSS3D对象 parseToCSS3D(options: IHtmlPanelOption) { if (options.codes.length === 0) throw new Error('解析内容不能为空'); // 解析文档 let container: HTMLDivElement | HTMLIFrameElement; if (options.isSingleHtml) { // 创建容器 container = document.createElement('div'); container.className = 'css3d-imported-content'; const htmlDoc = this._parseHtml(options.codes[0].content as string); // 克隆并处理内容 const content = this._processContent(htmlDoc); // 仅添加content(body)的子节点 while (content.firstChild) { container.appendChild(content.firstChild); } } else { // TODO 解析zip,但是现在只处理了单文件HTML,后续加强支持解析多文件HTML // 创建容器 container = document.createElement('div'); container.className = 'css3d-imported-content'; // 创建虚拟文件系统映射表 const filesMap = new Map(); options.codes.forEach(code => { const mimeType = this._getMimeType(code.name); const blob = new Blob([code.content], {type: mimeType}); const blobURL = URL.createObjectURL(blob); filesMap.set(code.name, blobURL); }); // 获取主HTML内容 const mainHtmlCode = options.codes.find(code => code.isIndex); if (!mainHtmlCode) throw new Error('主文件index.html不存在'); // 深度克隆文档对象以便修改 const htmlDoc = this._parseHtml(mainHtmlCode.content as string); const basePath = mainHtmlCode.name.split('/').slice(0, -1).join('/') || ''; this._replaceResourceUrls(htmlDoc, filesMap, basePath); const iframe = document.createElement('iframe'); iframe.style.border = 'none'; iframe.width = 192 * 5 + ''; iframe.height = 108 * 5 + ''; // @ts-ignore (iframe).sandbox = 'allow-same-origin allow-scripts'; iframe.srcdoc = htmlDoc.documentElement.outerHTML; container.appendChild(iframe); document.body.appendChild(container); // 创建iframe并注入所有资源 const iframeDoc = iframe.contentDocument!; // 添加基础路径保证相对路径解析 const baseTag = document.createElement('base'); baseTag.href = URL.createObjectURL(new Blob([], {type: 'text/html'})); iframeDoc.head.prepend(baseTag); // 清理blob URLs iframe.addEventListener('load', () => { filesMap.forEach(url => URL.revokeObjectURL(url)); // document.body.removeChild(container); // container.remove(); }); } if (!container) throw new Error('解析失败'); if (options.isSprite) { return new HtmlSprite(container, options); } else { return new HtmlPanel(container, options); } } // 使用DOMParser解析HTML结构 private _parseHtml(content: string) { const parser = new DOMParser(); return parser.parseFromString(content, "text/html"); } // 处理文档内容 private _processContent(htmlDoc: Document) { const container = htmlDoc.documentElement.cloneNode(true) as HTMLElement; // 清理危险元素 this._sanitizeContent(container); // 处理脚本 if (this.config.allowScripts) { this._processScripts(container); } return container; } // 清理危险内容 private _sanitizeContent(content: HTMLElement) { // 删除不允许的标签 content.querySelectorAll('*').forEach(node => { if (this.config.notAllowedTags.includes(node.tagName.toLowerCase())) { node.remove(); } }); // 删除危险属性 const dangerousAttrs = ['onload', 'onerror', 'onclick']; content.querySelectorAll('*').forEach(node => { dangerousAttrs.forEach(attr => node.removeAttribute(attr)); }); } // 处理脚本内容 private async _processScripts(content: HTMLElement) { const scripts = content.querySelectorAll('script'); for (let i = 0; i < scripts.length; i++) { const script = scripts[i]; const newScript = document.createElement('script'); let execute: Function | undefined; // 执行脚本 const executeScript = (scriptContent:string) => { try { const code = `with(sandbox){${scriptContent}}`; newScript.textContent = code; execute = new Function('sandbox', code); } catch (e) { console.warn('脚本执行失败:', e); } // script.replaceWith(newScript); execute && execute(this.sandbox); } // 检查是否存在src属性 const src = script.getAttribute('src'); if (src) { // 处理外部脚本 try { const res = await fetch(src); if (!res.ok) { console.error(`加载外部脚本失败: ${src}`); continue; // 跳过当前脚本 } executeScript(await res.text()); } catch (e) { console.error(`加载外部脚本异常: ${src}`, e); } }else{ executeScript(script.textContent || ''); } } } // 获取文件类型 private _getMimeType(filename: string): string { const ext = filename.split('.').pop()?.toLowerCase() || ''; switch (ext) { case 'html': return 'text/html'; case 'css': return 'text/css'; case 'js': return 'application/javascript'; case 'json': return 'application/json'; case 'png': return 'image/png'; case 'jpg': case 'jpeg': return 'image/jpeg'; case 'gif': return 'image/gif'; case 'svg': return 'image/svg+xml'; case 'zip': return 'application/zip'; default: return 'text/plain'; } } // 通过filePath判断文件内容是否可编辑(html、css、js、json、svg) _isEditable(filePath: string): boolean { const ext = filePath.split('.').pop()?.toLowerCase() || ''; return ['html', 'css', 'js', 'json','svg'].includes(ext); } // 替换资源URL private _replaceResourceUrls(doc: Document, filesMap: Map, basePath: string) { const attrMap = { 'script': 'src', 'link': 'href', 'img': 'src', 'audio': 'src', 'video': 'src', 'source': 'src', 'embed': 'src', 'object': 'data' }; Object.entries(attrMap).forEach(([tag, attr]) => { doc.querySelectorAll(`${tag}[${attr}]`).forEach(el => { const originPath = el.getAttribute(attr); if (!originPath) return; // 路径标准化处理 const resolvedPath = new URL(originPath, `${import.meta.env.VITE_GLOB_ORIGIN}/${basePath}/`).pathname.slice(1); if (filesMap.has(resolvedPath)) { el.setAttribute(attr, filesMap.get(resolvedPath)!); } }); }); // 上面的代码中为了解析路径使用了固定域名,正常而已解析结果不会受此影响,如果结果不对,可以改用下面的代码 // 使用虚拟路径协议代替真实域名 // const virtualProtocol = 'virtual-resource:'; // Object.entries(attrMap).forEach(([tag, attr]) => { // doc.querySelectorAll(`${tag}[${attr}]`).forEach(el => { // const originPath = el.getAttribute(attr); // if (!originPath) return; // // // 构造无域名的标准化路径 // const resolved = new URL(originPath, `${virtualProtocol}//${basePath}/`); // const resolvedPath = resolved.href // .replace(`${virtualProtocol}//`, '') // 移除协议头 // .replace(/(\/\/+)/g, '/') // 处理多余斜杠 // .replace(/^\/+/, ''); // 移除开头的斜杠 // // if (filesMap.has(resolvedPath)) { // el.setAttribute(attr, filesMap.get(resolvedPath)!); // } // }); // }); } } class HtmlPanel extends CSS3DObject { type = 'HtmlPanel'; isHtmlPanel = true; options: IHtmlPanelOption; constructor(element: HTMLElement, options: IHtmlPanelOption) { super(element); this.options = options; } /** * 获取json配置 */ toJSON(meta?: JSONMeta) { const superJSON = super.toJSON(meta).object; return { metadata: { version: 4.6, type: 'Object', generator: 'HtmlPanel.toJSON' }, object: { ...superJSON, type: this.type, options: this.options }, } as any; } /** * 从json配置解析 */ static fromJSON(data: any) { return HtmlPanelConverter.getInstance().parseToCSS3D(data.options); } } class HtmlSprite extends CSS3DSprite { type = 'HtmlSprite'; isHtmlSprite = true; options: IHtmlPanelOption; constructor(element: HTMLElement, options: IHtmlPanelOption) { super(element); this.options = options; } /** * 获取json配置 */ toJSON(meta?: JSONMeta) { const superJSON = super.toJSON(meta).object; return { metadata: { version: 4.6, type: 'Object', generator: 'HtmlSprite.toJSON' }, object: { ...superJSON, type: this.type, options: this.options }, } as any; } /** * 从json配置解析 */ static fromJSON(data: any) { return HtmlPanelConverter.getInstance().parseToCSS3D(data.options); } } export {HtmlPanelConverter, HtmlPanel, HtmlSprite}; ================================================ FILE: packages/sdk/lib/core/objects/LineMesh.ts ================================================ /** * @author ErSan * @email mlt131220@163.com * @date 2024/5/21 22:08 * @description 带线框子模型的Mesh对象 */ import {Mesh, Material, BufferGeometry, MeshBasicMaterial, LineSegments, LineBasicMaterial, EdgesGeometry} from 'three'; import {useDispatchSignal} from "@/hooks"; export function materialProxy(lineMesh: LineMesh) { return new Proxy(lineMesh, { set(target: LineMesh, p: string, newValue: any): boolean { if(p === 'material'){ ((target.children[0]).material).dispose(); target.children = []; // 更新场景树 useDispatchSignal("sceneGraphChanged"); } target[p] = newValue; return true; } }) } export class LineMesh extends Mesh { constructor(geometry = new BufferGeometry(), material: Material = new MeshBasicMaterial(), color = 0x00ffff) { super(geometry, material); // @ts-ignore this.type = 'LineMesh'; const edges = new EdgesGeometry(geometry); const edgesMaterial = new LineBasicMaterial({ color: color, }) const line = new LineSegments(edges, edgesMaterial); // let geometryArray = [geometry,edges]; // let materialArray = [material,edgesMaterial]; // const mergedGeometries = BufferGeometryUtils.mergeGeometries(geometryArray, false); // const lineMesh = SceneUtils.createMultiMaterialObject(mergedGeometries, materialArray); // // this.parent?.add(lineMesh); // this.removeFromParent(); this.add(line) } proxyMesh = materialProxy(this); } ================================================ FILE: packages/sdk/lib/core/objects/ParticleEmitter.ts ================================================ /** * 用于代理粒子发射器的空对象,以便于进行场景树显示及控制操作 * @author ErSan * @email mlt131220@163.com * @date 2025-02-14 16:00:00 */ import * as THREE from 'three'; import * as Particle from '@/core/libs/three-nebula'; import {ParticleSystem} from '@/core/viewer/modules/ParticleSystem'; import {ObjectLoader} from '@/core/loader/ObjectLoader'; import {useAddSignal, useDispatchSignal, useRemoveSignal} from '@/hooks'; /** * 获取默认粒子配置 * @description 以函数调用的方式返回,避免在模块外被引用 */ export const getDefaultParticleConfig = (): IParticle.Config => ({ attr: { position: { x: 0, y: 0, z: 0 }, rotation: { x: 0, y: 0, z: 0 }, scale: 1, totalEmitTimes: Infinity, damping: 0.006, life: Infinity, numPan: { min: 1, max: 1 }, timePan: { a: 0.1, b: 0.1 } }, init: { mass: { min: 1, max: 1, center: true, isEnabled: false }, life: { min: 1, max: 1, center: true, isEnabled: false }, radius: { width: 1, height: 1, center: false, isEnabled: false }, rotation: { x: 0, y: 0, z: 0, useEmitterRotation: false, isEnabled: false }, position: { isEnabled: false, zone: null }, velocity: { isEnabled: false, velocity: null }, body: { isEnabled: false, body: { type: 'Sprite', uuid: '', } } }, behaviour: { color: { isEnabled: false, colorA: "#002a4f", colorB: "#0029FF", life: Infinity, easing: 'easeLinear', }, scale: { isEnabled: false, scaleA: 1, scaleB: 1, life: Infinity, easing: 'easeLinear', }, alpha: { isEnabled: false, alphaA: 1, alphaB: 1, life: Infinity, easing: 'easeLinear', }, force: { isEnabled: false, fx: 0, fy: 0, fz: 0, life: Infinity, easing: 'easeLinear', }, rotate: { isEnabled: false, x: 0, y: 0, z: 0, life: Infinity, easing: 'easeLinear', }, randomDrift: { isEnabled: false, driftX: 0, driftY: 0, driftZ: 0, delay: 0.03, life: Infinity, easing: 'easeLinear', }, spring: { isEnabled: false, x: 0, y: 0, z: 0, spring: 0.1, friction: 0.98, life: Infinity, easing: 'easeLinear', }, attraction: { x: 0, y: 0, z: 0, force: 100, radius: 1000, life: Infinity, easing: 'easeLinear', isEnabled: false }, collision: { useMass: false, life: Infinity, easing: 'easeLinear', isEnabled: false } }, }) let _handleAddToParticleSystemFn, _handleParticleCreatedFn; class ParticleEmitter extends THREE.Object3D { emitter: Particle.Emitter; isEmitterProxy = true; constructor(emitter: Particle.Emitter) { super(); // @ts-ignore this.type = 'Particle'; this.emitter = emitter; this.syncProperties(); this.proxyProperties(); this.initEvent(); } initEvent(){ /** * 需要做粒子的选中,选中时定位到这个粒子发射器的代理对象上 * 如果后续不需要做粒子选中了,就把下方代码删除 * 对应的particleSystemAddEmitter signal也删除 */ _handleAddToParticleSystemFn = this.handleAddToParticleSystem.bind(this); useAddSignal('particleSystemAddEmitter', _handleAddToParticleSystemFn) this.emitter.particles.forEach(particle => { if (!particle.target) return; particle.target.proxy = this; }) _handleParticleCreatedFn = this.handleParticleCreated.bind(this); this.emitter.parent?.eventDispatcher.addEventListener('PARTICLE_CREATED', _handleParticleCreatedFn, true) } /** * 监听粒子创建 * @param particle */ handleParticleCreated(particle){ if (!this.emitter?.particles) return; if (!this.emitter.particles.includes(particle)) return; if (!particle.target) return; particle.target.proxy = this; } /** * 添加到粒子系统时 * @param _emitter */ handleAddToParticleSystem(_emitter: Particle.Emitter){ if (_emitter === this.emitter) { this.emitter.parent?.eventDispatcher.addEventListener('PARTICLE_CREATED', _handleParticleCreatedFn,true) } } /** * 同步粒子发射器的属性到组中 */ syncProperties() { this.position.set(this.emitter.position.x, this.emitter.position.y, this.emitter.position.z); // 粒子发射器的缩放是统一的,无法从三个轴分开设置 this.scale.set(this.emitter.scale, this.emitter.scale, this.emitter.scale); this.rotation.set(this.emitter.rotation.x, this.emitter.rotation.y, this.emitter.rotation.z); this.updateMatrixWorld(true); } /** * 拦截重要属性的 setter 方法,同步到粒子发射器中 */ proxyProperties() { // 重写 position 的 setter 方法 let _position = new THREE.Vector3().copy(this.position); Object.defineProperty(this.position, 'x', { get: () => _position.x, set: (value: number) => { _position.setX(value); this.emitter.position.x = value; }, configurable: true, enumerable: true }); Object.defineProperty(this.position, 'y', { get: () => _position.y, set: (value: number) => { _position.setY(value); this.emitter.position.y = value; }, configurable: true, enumerable: true }); Object.defineProperty(this.position, 'z', { get: () => _position.z, set: (value: number) => { _position.setZ(value); this.emitter.position.z = value; }, configurable: true, enumerable: true }); // 重写 rotation 的 setter 方法 let _rotation = this.rotation.clone(); Object.defineProperty(this.rotation, '_x', { get: () => _rotation.x, set: (value: number) => { _rotation.x = value; // this.emitter.rotation.x = value * THREE.MathUtils.RAD2DEG; this.emitter.rotation.x = value; }, configurable: true, enumerable: true }); Object.defineProperty(this.rotation, '_y', { get: () => _rotation.y, set: (value: number) => { _rotation.y = value; this.emitter.rotation.y = value; }, configurable: true, enumerable: true }); Object.defineProperty(this.rotation, '_z', { get: () => _rotation.z, set: (value: number) => { _rotation.z = value; this.emitter.rotation.z = value; }, configurable: true, enumerable: true }); // 重写 scale 的 setter 方法 let _scale = this.scale.clone(); Object.defineProperty(this.scale, 'x', { get: () => _scale.x, set: (value: number) => { _scale.setX(value); // 获取scale三轴中的最小值应用到粒子发射器 this.emitter.scale = Math.min(_scale.x, _scale.y, _scale.z); }, configurable: true, enumerable: true }); Object.defineProperty(this.scale, 'y', { get: () => _scale.y, set: (value: number) => { _scale.setY(value); // 获取scale三轴中的最小值应用到粒子发射器 this.emitter.scale = Math.min(_scale.x, _scale.y, _scale.z); }, configurable: true, enumerable: true }); Object.defineProperty(this.scale, 'z', { get: () => _scale.z, set: (value: number) => { _scale.setZ(value); // 获取scale三轴中的最小值应用到粒子发射器 this.emitter.scale = Math.min(_scale.x, _scale.y, _scale.z); }, configurable: true, enumerable: true }); // 重写 visible 的 setter 方法 let _visible = this.visible, _totalEmitTimes = this.emitter.totalEmitTimes; Object.defineProperty(this, 'visible', { get: () => _visible, set: (value: boolean) => { _visible = value; // 发射器上不存在直接控制显隐的属性,遍历粒子对象设置显隐影响瞬时性能,故使用emitter.totalEmitTimes控制显隐 this.emitter.totalEmitTimes = value ? _totalEmitTimes : 0; }, configurable: true, enumerable: true }) } /** * 获取emitter的json配置 */ getEmitterJSON() { const emitter: IParticle.Config = getDefaultParticleConfig(); emitter.attr = { position: JSON.parse(JSON.stringify(this.emitter.position)), rotation: JSON.parse(JSON.stringify(this.emitter.rotation)), scale: this.emitter.scale, totalEmitTimes: this.emitter.totalEmitTimes, damping: this.emitter.damping, life: this.emitter.life, numPan: { min: this.emitter.rate.numPan.a, max: this.emitter.rate.numPan.b, }, timePan: { a: this.emitter.rate.timePan.a, b: this.emitter.rate.timePan.b, } }; this.emitter.initializers.forEach(initializer => { switch (initializer.type) { case "Mass": emitter.init.mass.isEnabled = initializer.isEnabled; emitter.init.mass.min = initializer.massPan.a; emitter.init.mass.max = initializer.massPan.b; emitter.init.mass.center = initializer.massPan._center; break; case "Life": emitter.init.life.isEnabled = initializer.isEnabled; emitter.init.life.min = initializer.lifePan.a; emitter.init.life.max = initializer.lifePan.b; emitter.init.life.center = initializer.lifePan._center; break; case "Radius": emitter.init.radius.isEnabled = initializer.isEnabled; emitter.init.radius.width = initializer.radius.a; emitter.init.radius.height = initializer.radius.b; emitter.init.radius.center = initializer.radius._center; break; case "Rotation": emitter.init.rotation.isEnabled = initializer.isEnabled; emitter.init.rotation.x = initializer.rotation.x; emitter.init.rotation.y = initializer.rotation.y; emitter.init.rotation.z = initializer.rotation.z; emitter.init.rotation.useEmitterRotation = initializer.useEmitterRotation; break; case "Position": emitter.init.position.isEnabled = initializer.isEnabled; emitter.init.position.zone = (function () { const zone = initializer.zones[0]; switch (zone.type) { case 'PointZone': return { type: 'PointZone', x: zone.x, y: zone.y, z: zone.z } case 'LineZone': return { type: 'LineZone', x1: zone.x1, y1: zone.y1, z1: zone.z1, x2: zone.x2, y2: zone.y2, z2: zone.z2, } case 'BoxZone': return { type: 'BoxZone', depth: zone.depth, height: zone.height, width: zone.width, x: zone.x, y: zone.y, z: zone.z } case 'SphereZone': return { type: 'SphereZone', radius: zone.radius, x: zone.x, y: zone.y, z: zone.z } default: return null; } })() break; case 'RadialVelocity': emitter.init.velocity.isEnabled = initializer.isEnabled; emitter.init.velocity.velocity = { type: 'RadialVelocity', radius: initializer.radiusPan.a, x: initializer.dir.x, y: initializer.dir.y, z: initializer.dir.z, theta: initializer.tha * 180 / Math.PI, } break; case "PolarVelocity": emitter.init.velocity.isEnabled = initializer.isEnabled; emitter.init.velocity.velocity = { type: 'PolarVelocity', radius: initializer._polar.radius, theta: initializer._polar.theta * 180 / Math.PI, phi: initializer._polar.phi * 180 / Math.PI, tha: initializer.tha * 180 / Math.PI, } break; case 'VectorVelocity': emitter.init.velocity.isEnabled = initializer.isEnabled; emitter.init.velocity.velocity = { type: 'VectorVelocity', x: initializer.dir.x, y: initializer.dir.y, z: initializer.dir.z, theta: initializer.tha * 180 / Math.PI, } break; case "Body": emitter.init.body.isEnabled = initializer.isEnabled; emitter.init.body.body = { type: initializer.body.items[0].type === 'Sprite' ? 'Sprite' : initializer.body.items[0].type === 'Points' ? 'Point' : 'Mesh', uuid: this.uuid } break; } }); this.emitter.behaviours.forEach(behaviour => { switch (behaviour.type) { case "Color": emitter.behaviour.color.isEnabled = behaviour.isEnabled; emitter.behaviour.color.colorA = behaviour.colorA.colors[0]; emitter.behaviour.color.colorB = behaviour.colorB.colors[0]; emitter.behaviour.color.life = behaviour._life; emitter.behaviour.color.easing = behaviour.easing.name; break; case "Scale": emitter.behaviour.scale.isEnabled = behaviour.isEnabled; emitter.behaviour.scale.scaleA = behaviour.scaleA.a; emitter.behaviour.scale.scaleB = behaviour.scaleB.a; emitter.behaviour.scale.life = behaviour._life; emitter.behaviour.scale.easing = behaviour.easing.name; break; case "Alpha": emitter.behaviour.alpha.isEnabled = behaviour.isEnabled; emitter.behaviour.alpha.alphaA = behaviour.alphaA.a; emitter.behaviour.alpha.alphaB = behaviour.alphaB.a; emitter.behaviour.alpha.life = behaviour._life; emitter.behaviour.alpha.easing = behaviour.easing.name; break; case "Force": emitter.behaviour.force.isEnabled = behaviour.isEnabled; emitter.behaviour.force.fx = behaviour.force.x / 100; emitter.behaviour.force.fy = behaviour.force.y / 100; emitter.behaviour.force.fz = behaviour.force.z / 100; emitter.behaviour.force.life = behaviour._life; emitter.behaviour.force.easing = behaviour.easing.name; break; case "Rotate": emitter.behaviour.rotate.isEnabled = behaviour.isEnabled; emitter.behaviour.rotate.x = behaviour.x.a * 180 / Math.PI; emitter.behaviour.rotate.y = behaviour.y.a * 180 / Math.PI; emitter.behaviour.rotate.z = behaviour.z.a * 180 / Math.PI; emitter.behaviour.rotate.life = behaviour._life; emitter.behaviour.rotate.easing = behaviour.easing.name; break; case "RandomDrift": emitter.behaviour.randomDrift.isEnabled = behaviour.isEnabled; emitter.behaviour.randomDrift.driftX = behaviour.randomForce.x / 100; emitter.behaviour.randomDrift.driftY = behaviour.randomForce.y / 100; emitter.behaviour.randomDrift.driftZ = behaviour.randomForce.z / 100; emitter.behaviour.randomDrift.delay = behaviour.delayPan.a; emitter.behaviour.randomDrift.life = behaviour._life; emitter.behaviour.randomDrift.easing = behaviour.easing.name; break; case "Spring": emitter.behaviour.spring.isEnabled = behaviour.isEnabled; emitter.behaviour.spring.x = behaviour.pos.x; emitter.behaviour.spring.y = behaviour.pos.y; emitter.behaviour.spring.z = behaviour.pos.z; emitter.behaviour.spring.spring = behaviour.spring; emitter.behaviour.spring.friction = behaviour.friction; emitter.behaviour.spring.life = behaviour._life; emitter.behaviour.spring.easing = behaviour.easing.name; break; case "Attraction": emitter.behaviour.attraction.isEnabled = behaviour.isEnabled; emitter.behaviour.attraction.x = behaviour.targetPosition.x; emitter.behaviour.attraction.y = behaviour.targetPosition.y; emitter.behaviour.attraction.z = behaviour.targetPosition.z; emitter.behaviour.attraction.force = behaviour.force / 100; emitter.behaviour.attraction.radius = behaviour.radius; emitter.behaviour.attraction.life = behaviour._life; emitter.behaviour.attraction.easing = behaviour.easing.name; break; case "Collision": emitter.behaviour.collision.isEnabled = behaviour.isEnabled; emitter.behaviour.collision.useMass = behaviour.useMass; emitter.behaviour.collision.life = behaviour._life; emitter.behaviour.collision.easing = behaviour.easing.name; break; } }); return emitter; } /** * 从json配置解析 */ static fromJSON(json: IParticle.Object3DJSON) { const emitterConfig = json.emitter.config; const emitter = new Particle.Emitter({ position: new Particle.Vector3D( emitterConfig.attr.position.x, emitterConfig.attr.position.y, emitterConfig.attr.position.z ), rotation: new Particle.Vector3D( emitterConfig.attr.rotation.x, emitterConfig.attr.rotation.y, emitterConfig.attr.rotation.z ), scale: emitterConfig.attr.scale, life: emitterConfig.attr.life }); emitter.totalEmitTimes = emitterConfig.attr.totalEmitTimes; emitter.damping = emitterConfig.attr.damping; emitter.rate = new Particle.Rate( new Particle.Span(emitterConfig.attr.numPan.min, emitterConfig.attr.numPan.max), new Particle.Span(emitterConfig.attr.timePan.a, emitterConfig.attr.timePan.b) ); emitter.emit(); // 还原initializers json.emitter.useInitializers.forEach(initializer => { switch (initializer) { case "Mass": emitter.addInitializer( new Particle.Mass( emitterConfig.init.mass.min, emitterConfig.init.mass.max, emitterConfig.init.mass.center, emitterConfig.init.mass.isEnabled ) ); break; case "Life": emitter.addInitializer( new Particle.Life( emitterConfig.init.life.min, emitterConfig.init.life.max, emitterConfig.init.life.center, emitterConfig.init.life.isEnabled ) ); break; case "Radius": emitter.addInitializer( new Particle.Radius( emitterConfig.init.radius.width, emitterConfig.init.radius.height, emitterConfig.init.radius.center, emitterConfig.init.radius.isEnabled ) ); break; case "Rotation": emitter.addInitializer( new Particle.Rotation( emitterConfig.init.rotation.x, emitterConfig.init.rotation.y, emitterConfig.init.rotation.z, emitterConfig.init.rotation.useEmitterRotation, emitterConfig.init.rotation.isEnabled ) ); break; case "Position": let position = new Particle.Position(); emitter.addInitializer(position); let zone; const zoneData = emitterConfig.init.position.zone; switch (zoneData?.type) { case 'PointZone': zone = new Particle.PointZone(zoneData.x, zoneData.y, zoneData.z); break; case 'LineZone': zone = new Particle.LineZone( zoneData.x1, zoneData.y1, zoneData.z1, zoneData.x2, zoneData.y2, zoneData.z2, ); break; case 'BoxZone': zone = new Particle.BoxZone( zoneData.x, zoneData.y, zoneData.z, zoneData.width, zoneData.height, zoneData.depth, ); break; case 'SphereZone': zone = new Particle.SphereZone( zoneData.x, zoneData.y, zoneData.z, zoneData.radius ); break; } if (!zone) return; position.addZone(zone); break; case "RadialVelocity": { const velocity = emitterConfig.init.velocity.velocity as IParticle.RadialVelocity; emitter.addInitializer( new Particle.RadialVelocity( velocity.radius, new Particle.Vector3D( velocity.x, velocity.y, velocity.z ), velocity.theta, emitterConfig.init.velocity.isEnabled ) ); } break; case "PolarVelocity": { const velocity = emitterConfig.init.velocity.velocity as IParticle.PolarVelocity; emitter.addInitializer( new Particle.PolarVelocity( new Particle.Polar3D(velocity.radius, velocity.theta * Math.PI / 180, velocity.phi * Math.PI / 180), velocity.tha, emitterConfig.init.velocity.isEnabled ) ); } break; case "VectorVelocity": { const velocity = emitterConfig.init.velocity.velocity as IParticle.VectorVelocity; emitter.addInitializer( new Particle.VectorVelocity( new Particle.Vector3D(velocity.x, velocity.y, velocity.z), velocity.theta, emitterConfig.init.velocity.isEnabled ) ); } break; case "Body": if (!emitterConfig.init.body.body) break; switch (emitterConfig.init.body.body.type) { case "Sprite": case "Mesh": new ObjectLoader().parse(json.emitter.bodyObjectJSON, (object3D => { emitter.addInitializer( new Particle.Body( object3D, null, null, emitterConfig.init.body.isEnabled ) ); ParticleSystem.Body3DMap.set(json.uuid, object3D); })) break; case "Point": emitter.addInitializer( new Particle.Body( ParticleSystem.PointBody.clone(), null, null, emitterConfig.init.body.isEnabled ) ); break; } break; } }) // 还原behaviours json.emitter.useBehaviours.forEach(behaviour => { switch (behaviour) { case "Color": emitter.addBehaviour( new Particle.Color( emitterConfig.behaviour.color.colorA, emitterConfig.behaviour.color.colorB, emitterConfig.behaviour.color.life, Particle.ease[emitterConfig.behaviour.color.easing], emitterConfig.behaviour.color.isEnabled ) ) break; case "Scale": emitter.addBehaviour( new Particle.Scale( emitterConfig.behaviour.scale.scaleA, emitterConfig.behaviour.scale.scaleB, emitterConfig.behaviour.scale.life, Particle.ease[emitterConfig.behaviour.scale.easing], emitterConfig.behaviour.scale.isEnabled ) ) break; case "Alpha": emitter.addBehaviour( new Particle.Alpha( emitterConfig.behaviour.alpha.alphaA, emitterConfig.behaviour.alpha.alphaB, emitterConfig.behaviour.alpha.life, Particle.ease[emitterConfig.behaviour.alpha.easing], emitterConfig.behaviour.alpha.isEnabled ) ) break; case "Force": emitter.addBehaviour( new Particle.Force( emitterConfig.behaviour.force.fx, emitterConfig.behaviour.force.fy, emitterConfig.behaviour.force.fz, emitterConfig.behaviour.force.life, Particle.ease[emitterConfig.behaviour.force.easing], emitterConfig.behaviour.force.isEnabled ) ) break; case "Rotate": emitter.addBehaviour( new Particle.Rotate( emitterConfig.behaviour.rotate.x, emitterConfig.behaviour.rotate.y, emitterConfig.behaviour.rotate.z, emitterConfig.behaviour.rotate.life, Particle.ease[emitterConfig.behaviour.rotate.easing], emitterConfig.behaviour.rotate.isEnabled ) ) break; case "RandomDrift": emitter.addBehaviour( new Particle.RandomDrift( emitterConfig.behaviour.randomDrift.driftX, emitterConfig.behaviour.randomDrift.driftY, emitterConfig.behaviour.randomDrift.driftZ, emitterConfig.behaviour.randomDrift.delay, emitterConfig.behaviour.randomDrift.life, Particle.ease[emitterConfig.behaviour.randomDrift.easing], emitterConfig.behaviour.randomDrift.isEnabled ) ) break; case "Spring": emitter.addBehaviour( new Particle.Spring( emitterConfig.behaviour.spring.x, emitterConfig.behaviour.spring.y, emitterConfig.behaviour.spring.z, emitterConfig.behaviour.spring.spring, emitterConfig.behaviour.spring.friction, emitterConfig.behaviour.spring.life, Particle.ease[emitterConfig.behaviour.spring.easing], emitterConfig.behaviour.spring.isEnabled ) ) break; case "Attraction": emitter.addBehaviour( new Particle.Attraction( new Particle.Vector3D( emitterConfig.behaviour.attraction.x, emitterConfig.behaviour.attraction.y, emitterConfig.behaviour.attraction.z ), emitterConfig.behaviour.attraction.force, emitterConfig.behaviour.attraction.radius, emitterConfig.behaviour.attraction.life, Particle.ease[emitterConfig.behaviour.attraction.easing], emitterConfig.behaviour.attraction.isEnabled ) ) break; case "Collision": emitter.addBehaviour( new Particle.Collision( emitter, emitterConfig.behaviour.collision.useMass, () => { }, emitterConfig.behaviour.collision.life, Particle.ease[emitterConfig.behaviour.collision.easing], emitterConfig.behaviour.collision.isEnabled ) ) break; } }) useDispatchSignal("emitterAdd2ParticleSystem",emitter,json.emitter.system) const particleEmitter = new ParticleEmitter(emitter); particleEmitter.name = json.name; particleEmitter.uuid = json.uuid; return particleEmitter; } /** * 获取json配置 */ toJSON(meta?: THREE.JSONMeta) { const superJSON = super.toJSON(meta).object; // @ts-ignore superJSON.matrix = undefined; // @ts-ignore delete superJSON.matrix; // 父级toJSON调用子级toJSON时,只会保留object对象,主要信息都需要放在这 const object: IParticle.Object3DJSON = { uuid: this.uuid, type: this.type, name: this.name, emitter: { config:this.getEmitterJSON(), system: this.emitter.parent.name, useInitializers: this.emitter.initializers.map(initializer => initializer.type), bodyObjectJSON: ParticleSystem.Body3DMap.get(this.uuid)?.toJSON() || null, useBehaviours: this.emitter.behaviours.map(behaviour => behaviour.type) }, children: [], }; if (this.children.length > 0) { object.children = []; for (let i = 0; i < this.children.length; i++) { //@ts-ignore object.children.push(this.children[i].toJSON(meta).object); } } return { metadata: { version: 4.6, type: 'Object', generator: 'ParticleEmitter.toJSON' }, object: Object.assign(superJSON, object), } as any; } /** * 销毁 */ dispose(){ // 手动销毁所有粒子模型对象,发射器的destroy方法不会进行销毁 this.emitter.particles && this.emitter.particles.forEach(p => { if (!p.target) return; p.target.removeFromParent(); }) useRemoveSignal('particleSystemAddEmitter', _handleAddToParticleSystemFn); _handleAddToParticleSystemFn = null; this.emitter.parent?.eventDispatcher.removeEventListener('PARTICLE_CREATED', _handleParticleCreatedFn); _handleParticleCreatedFn = null; this.emitter.destroy(); } } export default ParticleEmitter; ================================================ FILE: packages/sdk/lib/core/objects/index.ts ================================================ export {default as Billboard, getDefaultBillboardOptions} from "./Billboard"; export {HtmlPanelConverter, HtmlPanel, HtmlSprite} from "./HtmlPanel"; export {default as ParticleEmitter, getDefaultParticleConfig} from "./ParticleEmitter"; ================================================ FILE: packages/sdk/lib/core/objects/texture/BillboardTexture.ts ================================================ /** * @author ErSan * @email mlt131220@163.com * @date 2025/4/6 13:07 * @description 广告牌map */ import * as THREE from 'three'; import log from "@/utils/log/Logger"; import {POSITION} from "@//constant"; export default class BillboardTexture extends THREE.CanvasTexture { private options: IBillboard.options; private _img: HTMLImageElement | null = null; private isImgLoading: boolean = false; constructor(options:IBillboard.options,image?:HTMLImageElement) { super( document.createElement('canvas'), // image THREE.Texture.DEFAULT_MAPPING, // mapping THREE.RepeatWrapping, // wrapS THREE.RepeatWrapping, // wrapT THREE.LinearFilter, // magFilter THREE.LinearMipmapLinearFilter, // minFilter THREE.RGBAFormat, // format THREE.UnsignedByteType, // type THREE.Texture.DEFAULT_ANISOTROPY // anisotropy ) this.options = options; if(this.options.image){ this.options.image = new Proxy(this.options.image,{ set: (target, key, value) => { target[key] = value; if(key === "url" && value){ this.loadImg(); }else{ this.redraw(); } return true; } }) } if(this.options.text){ this.options.text = new Proxy(this.options.text,{ set: (target, key, value) => { target[key] = value; this.redraw(); return true; } }) } this.redraw(); this.loadImg(image); } get lines() { if (!this.options.text.visible || !this.options.text.value) return []; return String(this.options.text.value).split(/\r?\n/); } get font(){ return `${this.options.text?.fontStyle || 'normal'} normal ${this.options.text?.fontWeight || 'normal'} ${this.options.text?.fontSize || 16}px ${this.options.text?.fontFamily || 'sans-serif'}`; } get textWidth(){ if (this.options.text.visible && this.lines.length) { let canvas = document.createElement('canvas'); let context = canvas.getContext('2d') as CanvasRenderingContext2D; context.font = this.font; return Math.max(...this.lines.map(text => context.measureText(text).width)); } return 0; } get textHeight(){ if (this.options.text.visible && this.lines.length) { return this.lines.length * (this.options.text.fontSize || 16) + (this.options.text.lineGap || 0) * (this.lines.length - 1); } return 0; } get imageSize(){ return { width:this.options.image.width || 0, height:this.options.image.height || 0, } } get width(){ const padding = this.options.text.padding || 0; const imageMargin = this.options.image.margin || 0; const imageSize = this.imageSize; if(!this.options.text.value || !this.options.text.visible) return imageSize.width; if (!this.options.image.url || !this.options.image.visible) return this.textWidth + padding * 2; let width = padding * 2; switch (this.options.image.position?.toLowerCase()) { case POSITION.LEFT: case POSITION.TOP_LEFT: case POSITION.TOP_RIGHT: case POSITION.BOTTOM_LEFT: case POSITION.BOTTOM_RIGHT: case POSITION.RIGHT: width += this.textWidth + this.imageSize.width + imageMargin; break; case POSITION.BOTTOM: case POSITION.TOP: width += Math.max(this.textWidth, this.imageSize.width); break; default: width += Math.max(this.textWidth, this.imageSize.width) + imageMargin; break; } return width; } get height(){ const padding = this.options.text.padding || 0; const imageMargin = this.options.image.margin || 0; const imageSize = this.imageSize; if(!this.options.text.value || !this.options.text.visible) return imageSize.height; if (!this.options.image.url || !this.options.image.visible) return padding * 2 + this.textHeight; let height = padding * 2; switch (this.options.image.position?.toLowerCase()) { case POSITION.TOP: case POSITION.BOTTOM: height += this.textHeight + imageSize.height + imageMargin; break; default: height += Math.max(this.textHeight, imageSize.height); break; } return height; } async loadImg(image?:HTMLImageElement){ if(this.isImgLoading) return; if(image){ this._img = image; this.redraw(); // @ts-ignore this.dispatchEvent({type:"imgLoaded",url:this.options.image?.url}) this.isImgLoading = false; return; } if(this.options.image?.url){ const img = new Image(); // 设置跨域模式(解决 CORS 问题) img.crossOrigin = "anonymous"; this.isImgLoading = true; img.onload = () =>{ this._img = img; this.redraw(); // @ts-ignore this.dispatchEvent({type:"imgLoaded",url:this.options.image?.url}) this.isImgLoading = false; // // 生成Canvas的DataURL // const dataUrl = this.image.toDataURL('image/png'); // 可选参数:'image/jpeg',并可设置质量 // // // 创建下载链接 // const link = document.createElement('a'); // link.href = dataUrl; // link.download = 'canvas-image.png'; // 设置下载的文件名 // // // 触发下载 // document.body.appendChild(link); // link.click(); // // // 可选:移除链接 // document.body.removeChild(link); } // @ts-ignore img.onerror = (e:Error) =>{ console.log(`[BillboardTexture] 图片载入失败:`,e) log.error(`[BillboardTexture] 图片载入失败:${e.toString()}`); this.isImgLoading = false; } img.src = this.options.image.url; } } redraw(){ if(!this.image) return; // 默认均按512x512绘制,再按比例缩放,以保持清晰 const canvasWidth = 512; const canvasHeight = 512; if (this.width && this.height){ this.image.width = canvasWidth; this.image.height = canvasHeight; const imageSize = this.imageSize; let imageWidth = imageSize.width; let imageHeight = imageSize.height; let context = this.image.getContext('2d'); context.clearRect(0, 0, this.image.width, this.image.height); context.scale(canvasWidth / this.width, canvasHeight / this.height); context.save(); const imageIsVisible = this.options.image.url && this.options.image.visible; let imageMargin = imageIsVisible ? (this.options.image.margin || 0) : 0; imageWidth = imageIsVisible ? imageWidth : 0; imageHeight = imageIsVisible ? imageHeight : 0; let textIsVisible = this.options.text.value && this.options.text.visible; imageMargin = textIsVisible ? imageMargin : 0; const padding = this.options.text.padding || 0; const textAlign = this.options.text.align?.toLowerCase() || 'left'; const imagePosition = this.options.image.position?.toLowerCase(); // 图像位置 let imageLeft = 0, imageTop = 0, left = 0, top = 0; // 绘制图片 const drawImage = () => { if (imageIsVisible) { if(textIsVisible) { if (imagePosition === POSITION.LEFT) { imageTop = this.height / 2 - imageHeight / 2; imageLeft = 0; } if (imagePosition === POSITION.RIGHT) { imageLeft = this.textWidth + padding * 2 + imageMargin; imageTop = this.height / 2 - imageHeight / 2; } if (imagePosition === POSITION.TOP) { imageLeft = this.width / 2 - imageWidth / 2; imageTop = 0; } if (imagePosition === POSITION.BOTTOM) { imageLeft = this.width / 2 - imageWidth / 2; imageTop = this.textHeight + padding * 2 + imageMargin; } if (imagePosition == POSITION.CENTER) { imageLeft = this.width / 2 - imageWidth / 2; imageTop = this.height / 2 - imageHeight / 2; } } if(!this._img) { this.loadImg(); }else{ const rotate = this.options.image.rotate; if (rotate) { context.translate(imageLeft + imageWidth / 2, imageTop + imageHeight / 2); context.rotate(rotate); context.drawImage(this._img, -imageWidth / 2, -imageHeight / 2, imageWidth, imageHeight); context.rotate(-1 * rotate); context.translate(-imageLeft - imageWidth / 2, -imageTop - imageHeight / 2) } else { context.drawImage(this._img, imageLeft, imageTop, imageWidth, imageHeight); } } } } const drawText = () => { // 绘制文字 if (textIsVisible) { const rect = { left: left, top: top, width: this.textWidth + padding * 2, height: this.textHeight + padding * 2, } if(imageIsVisible) { if (imagePosition === POSITION.LEFT) { rect.left = imageWidth + imageMargin; rect.top = this.height / 2 - rect.height / 2; } if (imagePosition === POSITION.RIGHT) { rect.left = 0; rect.top = this.height / 2 - rect.height / 2; } if (imagePosition === POSITION.TOP) { rect.left = 0; rect.top = imageHeight + imageMargin; } if (imagePosition === POSITION.BOTTOM) { rect.left = 0; rect.top = 0 ; } if (imagePosition == POSITION.CENTER) { rect.left = 0; rect.top = 0; rect.width = this.width; rect.height = this.height; } } switch (textAlign) { // 文字左对齐 case 'left': left = padding; top = padding; if(imageIsVisible) { switch(imagePosition) { case POSITION.TOP: top += imageMargin + imageHeight; break; case POSITION.LEFT: left += imageMargin + imageWidth; top = this.height / 2 - this.textHeight / 2; break; case POSITION.CENTER: left = this.width / 2 - this.textWidth / 2 - padding; top = this.height / 2 - this.textHeight / 2; break; case POSITION.BOTTOM: break; case POSITION.RIGHT: top = this.height / 2 - this.textHeight / 2; break; } } break; // 文字右对齐 case 'right': left = this.width - padding; top = padding; if(imageIsVisible) { switch(imagePosition) { case POSITION.TOP: top += imageMargin + imageHeight; break; case POSITION.LEFT: left = this.width - padding; top = this.height / 2 - this.textHeight / 2; break; case POSITION.CENTER: left = this.width - padding; top = this.height / 2 - this.textHeight / 2; break; case POSITION.BOTTOM: break; case POSITION.RIGHT: left = this.width - imageWidth - imageMargin - padding; top = this.height / 2 - this.textHeight / 2; break; } } if(this.lines.length == 1) { top += 2; } break; // 文字居中 case 'center': top = padding; left = this.width / 2 + imageMargin; if(imageIsVisible) { switch(imagePosition) { case POSITION.TOP: top += imageMargin + imageHeight; left = this.width / 2; break; case POSITION.LEFT: left = this.width / 2 + imageWidth / 2 + imageMargin / 2; top = this.height / 2 - this.textHeight / 2; break; case POSITION.CENTER: left = this.width / 2; top = this.height / 2 - this.textHeight / 2; break; case POSITION.BOTTOM: left = this.width / 2; break; case POSITION.RIGHT: left = this.width / 2 - imageWidth / 2 - imageMargin / 2; top = this.height / 2 - this.textHeight / 2; break; } } break; } // 填充背景 if (this.options.text.fill && this.options.text.fillColor) { context.save(); context.fillStyle = this.options.text.fillColor; context.fillRect(rect.left, rect.top, rect.width, rect.height); context.restore(); } context.textAlign = textAlign; context.font = this.font; context.textBaseline = this.options.text.baseline || 'top'; context.fillStyle = this.options.text.fontColor || '#ffffff'; context.lineJoin = 'miter'; context.miterLimit = 1; context.lineWidth = this.options.text.strokeWidth; context.strokeStyle = this.options.text.strokeColor; this.lines.forEach(t => { if (this.options.text.strokeWidth) { context.strokeText(t, left, top); } context.fillText(t, left, top); top += (this.options.text.fontSize || 16) + (this.options.text.lineGap || 0); }); } } if(this.options.image.top){ drawText(); drawImage(); }else{ drawImage(); drawText(); } context.restore(); } else { this.image.width = this.image.height = 1; log.warn("[BillboardTexture] 宽高为0,无法绘制"); } this.needsUpdate = true; // @ts-ignore this.dispatchEvent({type:"redraw"}) } } ================================================ FILE: packages/sdk/lib/core/objects/weather/Rain.ts ================================================ /** * @author ErSan * @email mlt131220@163.com * @date 2025/01/07 * @description 贴相机的下雨效果 */ import * as THREE from 'three'; import type CameraControls from 'camera-controls'; interface IRainOption { speed: number, color: string, size: number, radian: number, alpha: number, } export default class Rain{ options: IRainOption; mesh:THREE.Mesh; controls: CameraControls; constructor(option: IRainOption, controls: CameraControls) { const defaultOption: IRainOption = { speed: 0.4, color: "#ffffff", size: 0.5, radian: 95 * THREE.MathUtils.DEG2RAD, alpha: 0.4 }; this.options = Object.assign({}, defaultOption, option); this.controls = controls; this.mesh = this.createMesh(); this.updatePosition(); } createMesh(){ const geometry = new THREE.PlaneGeometry(200, 200); const uniforms = { u_time: { type: "f", value: 0.0 }, tDiffuse: { value: null }, u_resolution: { type: "v2", value: new THREE.Vector2(window.innerWidth, window.innerHeight).multiplyScalar(window.devicePixelRatio) }, alpha: { type: "f", value: this.options.alpha, }, size: { value: this.options.size }, radian: { value: this.options.radian * THREE.MathUtils.DEG2RAD }, speed: { value: this.options.speed }, color: { value: new THREE.Color(this.options.color) } }; const material = new THREE.ShaderMaterial({ transparent: true, uniforms: uniforms, side: 2, vertexShader: ` #define GLSLIFY 1 varying vec2 vUv; void main() { vUv = uv; gl_Position = vec4( position, 1.0 ); } `, fragmentShader: ` uniform sampler2D tDiffuse; uniform vec2 u_resolution; uniform float u_time; uniform float speed; uniform vec3 color; uniform float radian; uniform float alpha; uniform float size; varying highp vec2 vUv; float hash(vec2 p){ p = 50.0*fract( p*0.3183099 + vec2(0.71,0.113)); return -1.0+2.0*fract( p.x*p.y*(p.x+p.y) ); } float noise( in vec2 p ){ vec2 i = floor( p ); vec2 f = fract( p ); vec2 u = f*f*(3.0-2.0*f); return mix( mix( hash( i + vec2(0.0,0.0) ), hash( i + vec2(1.0,0.0) ), u.x), mix( hash( i + vec2(0.0,1.0) ), hash( i + vec2(1.0,1.0) ), u.x), u.y); } void main(){ vec3 col=texture(tDiffuse,vUv).rgb; vec2 q = gl_FragCoord.xy/u_resolution.xy; vec2 p = -1.0+2.0*q; vec2 st = (p * vec2(.5, .01)+vec2(u_time)*0.05*speed)-vec2(q.y*cos(radian),0.0); st*= (1000.0 - size * 500.0); float f = noise(st) * noise(st*.773)* 1.55; f = clamp(pow(abs(f), 23.0) * 13.0, 0.0, q.y*.14) * 2.7; col += clamp(f,0.0,1.0)*color; gl_FragColor = vec4(col, alpha); } ` }); return new THREE.Mesh(geometry, material); } updatePosition() { if (this.controls && this.mesh) { const position = this.controls.getPosition(new THREE.Vector3()); const center = this.controls.getTarget(new THREE.Vector3()); this.mesh.position.copy(center); if (position.y < 100) { this.mesh.position.y = -100; } else { this.mesh.position.y = 0; } } } updateOptions(option) { const material = this.mesh.material; for (const key in option) { this.options[key] = option[key]; if (material.uniforms[key]) { let value = option[key]; switch(key){ case "radian": value *= THREE.MathUtils.DEG2RAD; break; case "color": value = new THREE.Color(value); break; } material.uniforms[key].value = value; } } } update(deltaTime){ this.updatePosition(); if (this.mesh.material && this.mesh.material instanceof THREE.ShaderMaterial) { this.mesh.material.uniforms.u_time.value += deltaTime; } } dispose(){ this.mesh.geometry.dispose(); (this.mesh.material).dispose(); this.mesh.removeFromParent(); } } ================================================ FILE: packages/sdk/lib/core/objects/weather/Snow.ts ================================================ /** * @author ErSan * @email mlt131220@163.com * @date 2025/01/08 * @description 贴相机的下雪效果 */ import * as THREE from 'three'; import type CameraControls from 'camera-controls'; interface ISnowOption { size: number; density: number; speed: number; alpha: number; } export default class Snow { options: ISnowOption; mesh: THREE.Mesh; controls: CameraControls; constructor(option: ISnowOption, controls: CameraControls) { const defaultOption: ISnowOption = { size: 0.05, density: 1.0, speed: 1.0, alpha: 0.4, }; this.options = Object.assign({}, defaultOption, option); this.controls = controls; this.mesh = this.createMesh(); this.mesh.renderOrder = 100; this.updatePosition(); } createMesh() { const geometry = new THREE.PlaneGeometry(200, 200); const uniforms = { iTime: { type: "f", value: 0.0 }, tDiffuse: { value: null }, iResolution: { type: "v2", value: new THREE.Vector2(window.innerWidth, window.innerHeight).multiplyScalar(window.devicePixelRatio) }, size: { value: this.options.size }, speed: { value: this.options.speed }, density: { value: this.options.density }, alpha: { type: "f", value: this.options.alpha, }, }; const material = new THREE.ShaderMaterial({ transparent: true, uniforms: uniforms, side: 2, depthTest: false, // 禁用深度测试 depthWrite: false, // 禁用深度写入 blending: THREE.AdditiveBlending, // 使用叠加混合模式 vertexShader: ` varying highp vec2 vUv; void main() { vUv = uv; gl_Position = vec4( position, 1.0 ); }`, fragmentShader: ` #define PI 3.14159265359 uniform sampler2D tDiffuse; uniform vec2 iResolution; uniform float iTime; uniform float size; // 输入的 size,显示给用户的值是实际值的十倍 uniform float density; uniform float speed; uniform float alpha; varying highp vec2 vUv; float ball(vec2 p) { float d = distance(vec2(.5), p); return smoothstep(size / 10.0, size / 10.0 - .05, d); // 将 size 缩小十倍 } float N11(float n) { return fract(sin(n * 871.213) * 3134.422); } float N21(vec2 uv) { return N11(N11(uv.x) + uv.y); } float snow(vec2 uv, float t) { vec2 org_uv = vec2(uv.x, uv.y); float z = 10.; uv.y += t * .5; vec2 gv = fract(uv*z); vec2 id = floor(uv*z); gv.x += (sin(N21(id) * 128. + t) * .4); gv.y += (sin(N11(N21(id)) * 128. + t) * .4); float dots = ball(gv); return dots; } void main(){ vec3 col=texture(tDiffuse,vUv).rgb; vec2 uv = gl_FragCoord.xy/iResolution.xy; uv.x *= iResolution.x / iResolution.y; float t = iTime * .3*speed; vec2 gh_uv = uv; // Time varying pixel color vec3 colSnow = vec3(0.); float m = 0.; for(float i =0.; i <= 1.; i += 1. / (32.*density)) { float z = mix(1., .5 , i); vec2 offset = vec2(N11(i), N11(N11(i))); m += snow((uv + offset) * z, t) * .3; } colSnow = vec3(m)*1.2; colSnow += col *.8 * mix(.5, 1., uv.y); // 如果不是雪的像素,设置为透明 // if (m <= 0.0) { // gl_FragColor = vec4(0.0, 0.0, 0.0, 0.0); // 完全透明 // } else { // gl_FragColor = vec4(colSnow, alpha); // 雪的像素保持原有颜色和透明度 // } gl_FragColor = vec4(colSnow,alpha); }` }); return new THREE.Mesh(geometry, material); } updatePosition() { if (this.controls && this.mesh) { const position = this.controls.getPosition(new THREE.Vector3()); const center = this.controls.getTarget(new THREE.Vector3()); if (this.mesh.position.x === center.x && this.mesh.position.z === center.z) return; this.mesh.position.copy(center); if (position.y < 100) { this.mesh.position.y = -100; } else { this.mesh.position.y = 0; } } } updateOptions(option) { const material = this.mesh.material; for (const key in option) { this.options[key] = option[key]; if (material.uniforms[key]) { material.uniforms[key].value = option[key]; } } } update(deltaTime) { this.updatePosition(); if (this.mesh.material && this.mesh.material instanceof THREE.ShaderMaterial) { this.mesh.material.uniforms.iTime.value += deltaTime; } } dispose() { this.mesh.geometry.dispose(); (this.mesh.material).dispose(); this.mesh.removeFromParent(); } } ================================================ FILE: packages/sdk/lib/core/plugin/builtin/builtin.ts ================================================ /** * @author ErSan * @email mlt131220@163.com * @date 2024/9/16 23:18 * @description 在此处注册内置插件 */ import {PluginManager} from "../plugin"; export default class Builtin{ // @ts-ignore constructor(pluginManager:PluginManager) { // 注册内置插件 // pluginManager.use(new XXX()); } } ================================================ FILE: packages/sdk/lib/core/plugin/plugin.ts ================================================ import {loadPluginAsync} from "./pluginLoader"; import Builtin from "./builtin/builtin"; import {useDispatchSignal} from "@/hooks"; // 所有插件都必须实现此接口 export interface Plugin { name: string; // 插件名称,插件的唯一标识 version:number; // 插件版本号 icon:string; // 插件图标 install(config?: any): void; // 插件安装 uninstall(): void; // 卸载插件 run(): void; // 从插件盒子面板点击插件时的运行方法 } export class PluginManager { public plugins: Map = new Map(); // 已加载插件 constructor() { // 载入内置插件 new Builtin(this); } get list(){ const list:IPlugin.Item[] = []; for (const plugin of this.plugins.values()) { list.push({ name:plugin.name, icon:plugin.icon }) } return list; } /** * 加载插件 * @param pluginPaths 插件地址 * @param autoUse 插件是否自动注册 */ async loadAsync(pluginPaths: string | string[],autoUse = false){ let plugins:Plugin[] = []; for (const src of pluginPaths) { const plugin = await loadPluginAsync(src); if(!plugin) { console.error(`插件加载失败: ${src},该插件不存在!`); return; } if(autoUse){ this.use(plugin); } plugins.push(plugin); } return plugins; } /** * 注册、配置并安装插件的方法 * @param plugin 新注册插件 * @param config 插件配置 * @return PluginManager */ use(plugin: Plugin, config?: any): this { // 防止重复注册 if (this.plugins.has(plugin.name)) return this; // 注册插件 plugin.install(config); this.plugins.set(plugin.name, plugin); useDispatchSignal("pluginInstall",plugin); return this; } /** * 获取插件实例 * @param pluginName 插件名称 */ getPlugin(pluginName: string): T | undefined { return this.plugins.get(pluginName) as T; } /** * 获取多个插件实例 * @param pluginNames 插件名称数组 */ getPlugins(pluginNames: string[]): T | undefined { return pluginNames.map((pluginName) => this.getPlugin(pluginName)) as T; } /** * 转为数组对象 * @param names 插件名称/插件名称数组 */ getStrings(names: string | string[]): string[] { if (!Array.isArray(names)) { names = [names]; } return names; } /** * 遍历插件执行callback * @param pluginNames 插件名称/插件名称数组 * @param callback 遍历执行的方法 */ traverse(pluginNames: string | string[], callback: (data: { name: string, plugin: Plugin }) => void) { this.getStrings(pluginNames).forEach(name => { if (!this.plugins.has(name)) return; callback({ name, plugin: this.getPlugin(name) }) }) } /** * 运行插件 * @param pluginNames 插件名称/插件名称数组 */ run(pluginNames: string | string[]) { this.traverse(pluginNames, ({plugin}) => { if (typeof plugin.run === 'function') { plugin.run(); } }) return this; } /** * 卸载插件 * @param pluginNames 插件名称/插件名称数组 */ uninstall(pluginNames: string | string[]): this { this.traverse(pluginNames, ({name, plugin}) => { // 获取插件的卸载函数并执行 if (typeof plugin.uninstall === 'function') { plugin.uninstall(); } this.plugins.delete(name); useDispatchSignal("pluginUninstall",name); }) return this; } } ================================================ FILE: packages/sdk/lib/core/plugin/pluginLoader.ts ================================================ /** * @author ErSan * @email mlt131220@163.com * @date 2024/9/16 2:57 * @description 插件加载 */ import App from "@/core/app/App"; export async function loadPluginAsync(src: string): Promise { try { // 动态导入插件模块 const pluginModule = await import(/* @vite-ignore */src); // 返回模块的默认导出 return pluginModule.default; } catch (error:any) { App.log.error(`插件加载失败: ${error?.message}`); return null; } } ================================================ FILE: packages/sdk/lib/core/points/PointCloudReconstructor.ts ================================================ /** * @author ErSan * @email mlt131220@163.com * @date 2025/07/03 19:38 * @description 点云语义重建 */ import * as THREE from 'three'; import {ConvexGeometry} from "three/addons/geometries/ConvexGeometry.js"; class PointCloudReconstructor { // 点云数据存储 points: THREE.Vector3[] = []; colors: THREE.Color[] = []; // 语义颜色分组 colorGroups:Map = new Map(); colorTolerance: number; distanceThreshold: number; minClusterSize: number; downsampleResolution: number; progressCallback: Function | null; constructor() { // RGB颜色容差 this.colorTolerance = 5; // 空间聚类距离阈值 this.distanceThreshold = 0.3; // 最小聚类点数 this.minClusterSize = 10; // 点云抽稀系数 this.downsampleResolution = 0.05; // 进度回调 this.progressCallback = null; } /** * 处理几何数据,提取点和颜色 * @param {THREE.BufferGeometry} geometry - 点云几何数据 */ processGeometry(geometry) { this.points = []; this.colors = []; const vertices = geometry.getAttribute('position').array; const colors = geometry.getAttribute('color')?.array || []; const hasColors = colors.length > 0; for (let i = 0; i < vertices.length; i += 3) { this.points.push(new THREE.Vector3( vertices[i], vertices[i + 1], vertices[i + 2] )); if (hasColors) { this.colors.push(new THREE.Color( colors[i], colors[i + 1], colors[i + 2] )); } else { this.colors.push(new THREE.Color(0xffffff)); } } } // 点云抽稀算法 downsamplePoints(points, resolution) { const grid = new Map(); const downsampled:THREE.Vector3[] = []; points.forEach(point => { const gridX = Math.floor(point.x / resolution); const gridY = Math.floor(point.y / resolution); const gridZ = Math.floor(point.z / resolution); const gridKey = `${gridX},${gridY},${gridZ}`; if (!grid.has(gridKey)) { grid.set(gridKey, true); downsampled.push(point.clone()); } }); return downsampled; } /** * 按语义颜色分组点云 */ groupBySemanticColor() { this.colorGroups.clear(); for (let i = 0; i < this.points.length; i++) { const color = this.colors[i]; const colorKey = this.getColorKey(color); if (!this.colorGroups.has(colorKey)) { this.colorGroups.set(colorKey, []); } (this.colorGroups.get(colorKey) as THREE.Vector3[]).push(this.points[i].clone()); // 更新进度(分组阶段占20%) if (this.progressCallback && i % 100 === 0) { this.progressCallback(20 * i / this.points.length, `分组点云: ${i}/${this.points.length}`); } } } /** * 生成颜色分类键值(考虑容差) * @param {THREE.Color} color - 输入颜色 * @returns {string} 颜色分类键 */ getColorKey(color) { const r = Math.round(color.r * 255 / this.colorTolerance) * this.colorTolerance; const g = Math.round(color.g * 255 / this.colorTolerance) * this.colorTolerance; const b = Math.round(color.b * 255 / this.colorTolerance) * this.colorTolerance; return `${r},${g},${b}`; } /** * 空间聚类算法(使用网格加速) * @param {THREE.Vector3[]} points - 输入点集 * @returns {THREE.Vector3[][]} 聚类结果 */ spatialClustering(points:THREE.Vector3[]) { const clusters:THREE.Vector3[][] = []; const visited = new Set(); const grid = new Map(); const gridSize = this.distanceThreshold * 1.5; // 创建空间网格 for (let i = 0; i < points.length; i++) { const point = points[i]; const gridKey = this.getGridKey(point, gridSize); if (!grid.has(gridKey)) { grid.set(gridKey, []); } grid.get(gridKey).push(i); } let processed = 0; const totalPoints = points.length; for (let i = 0; i < points.length; i++) { if (visited.has(i)) continue; visited.add(i); const cluster = [points[i]]; const queue = [i]; while (queue.length > 0) { const currentIndex = queue.shift() as number; const currentPoint = points[currentIndex]; // 获取当前点所在的网格及其相邻网格 const neighborCells = this.getNeighborCells(currentPoint, gridSize); for (const cell of neighborCells) { if (!grid.has(cell)) continue; const cellPoints = grid.get(cell); for (const neighborIndex of cellPoints) { if (visited.has(neighborIndex)) continue; const neighbor = points[neighborIndex]; if (currentPoint.distanceTo(neighbor) < this.distanceThreshold) { visited.add(neighborIndex); cluster.push(neighbor); queue.push(neighborIndex); } } } } if (cluster.length >= this.minClusterSize) { clusters.push(cluster); } // 更新进度(聚类阶段占30%) processed++; if (this.progressCallback && processed % 10 === 0) { const progress = 20 + 30 * processed / totalPoints; this.progressCallback(progress, `空间聚类: ${processed}/${totalPoints}`); } } return clusters; } // 获取网格键值 getGridKey(point, gridSize) { const x = Math.floor(point.x / gridSize); const y = Math.floor(point.y / gridSize); const z = Math.floor(point.z / gridSize); return `${x},${y},${z}`; } // 获取相邻网格 getNeighborCells(point, gridSize) { const cells:string[] = []; const x = Math.floor(point.x / gridSize); const y = Math.floor(point.y / gridSize); const z = Math.floor(point.z / gridSize); for (let dx = -1; dx <= 1; dx++) { for (let dy = -1; dy <= 1; dy++) { for (let dz = -1; dz <= 1; dz++) { cells.push(`${x + dx},${y + dy},${z + dz}`); } } } return cells; } /** * 重建三角面模型(分帧处理) * @returns {THREE.Group} 包含所有重建物体的场景组 */ reconstruct(onProgress, onComplete) { // 更新进度 let progress = 0; onProgress(progress, `分组点云...`); // 第一阶段:分组点云 this.groupBySemanticColor(); const objectGroup = new THREE.Group(); const colorKeys = Array.from(this.colorGroups.keys()); let totalObjects = 0; // 创建一个任务队列 const tasks: {colorKey:string,cluster:THREE.Vector3[]}[] = []; progress = 10; onProgress(progress, `分组点云完毕`); const progressItem = Math.floor(40 / colorKeys.length); for (const colorKey of colorKeys) { const points = this.colorGroups.get(colorKey); // 对点云进行抽稀 const downsampledPoints = this.downsamplePoints(points, this.downsampleResolution); // 空间聚类 const clusters = this.spatialClustering(downsampledPoints); for (const cluster of clusters) { tasks.push({ colorKey, cluster }); } progress += progressItem; onProgress(progress, `空间聚类...`); } let taskIndex = 0; const totalTasks = tasks.length; let lastUpdateTime = performance.now(); // 更新进度 progress = 50; onProgress(progress, `重建对象: ${taskIndex}/${totalTasks}`); // 分帧处理函数 const processNextTask = () => { const now = performance.now(); const elapsed = now - lastUpdateTime; // 控制处理速度(每帧最多处理10个任务) const maxTasksPerFrame = Math.min(10, Math.max(1, Math.floor(elapsed / 5))); let processedThisFrame = 0; while (taskIndex < totalTasks && processedThisFrame < maxTasksPerFrame) { const task = tasks[taskIndex]; const { colorKey, cluster } = task; try { // 使用凸包算法生成表面 const geometry = new ConvexGeometry(cluster); // 从颜色键解析原始颜色 const [r, g, b] = colorKey.split(',').map(Number); const material = new THREE.MeshStandardMaterial({ color: new THREE.Color(r / 255, g / 255, b / 255), flatShading: true, side: THREE.DoubleSide }); const mesh = new THREE.Mesh(geometry, material); objectGroup.add(mesh); totalObjects++; } catch (e) { console.warn("凸包生成失败:", e); } taskIndex++; processedThisFrame++; // 更新进度(重建阶段占50%) const status = `重建对象: ${taskIndex}/${totalTasks}`; onProgress(progress + 50 * taskIndex / totalTasks, status); } // 所有任务完成 if (taskIndex >= totalTasks) { onComplete(objectGroup, totalObjects); return; } // 下一帧继续 lastUpdateTime = performance.now(); requestAnimationFrame(processNextTask); }; // 开始重建任务 processNextTask(); } dispose(){ this.points = []; this.colors = []; this.colorGroups = new Map(); this.progressCallback = null; } } export {PointCloudReconstructor}; ================================================ FILE: packages/sdk/lib/core/points/index.ts ================================================ export {PointCloudReconstructor} from "./PointCloudReconstructor"; ================================================ FILE: packages/sdk/lib/core/preview/Preview.ts ================================================ /** * @author ErSan * @email mlt131220@163.com * @date 2025/7/30 18:49 * @description 资源预览类 */ import * as THREE from 'three'; import CameraControls from 'camera-controls'; import { Timer } from 'three/examples/jsm/misc/Timer.js'; import {CSS3DRenderer} from "three/examples/jsm/renderers/CSS3DRenderer.js"; import {PreviewOptions} from "@/core/preview/PreviewOptions.ts"; import Loader from "@/core/loader/Loader.ts"; import {createDivContainer, deepAssign, parseMaterialZip} from "@/utils"; import {getDefaultBillboardOptions} from "@/core/objects"; import {POSITION} from "@/constant"; import {Emitter} from '@/core/libs/three-nebula'; import ParticleEmitter from "@/core/objects/ParticleEmitter.ts" import Billboard from "@/core/objects/Billboard.ts"; import {focusObject} from "@/utils/scene/controls.ts"; import {ParticleSystem} from "@/core/viewer/modules"; export interface PreviewerEventMap { // 场景当前动画帧循环完成之后渲染之前触发,每一次渲染执行一次 beforeRender: { }; // 场景当前帧渲染完成之后触发,每一次渲染执行一次 afterRender: { }; } export interface PreviewerModules { controls: CameraControls, particleSystem: ParticleSystem, } CameraControls.install({ THREE: { Vector2: THREE.Vector2, Vector3: THREE.Vector3, Vector4: THREE.Vector4, Quaternion: THREE.Quaternion, Matrix4: THREE.Matrix4, Spherical: THREE.Spherical, Box3: THREE.Box3, Sphere: THREE.Sphere, Raycaster: THREE.Raycaster, } }); export default class Preview extends THREE.EventDispatcher { public _container: HTMLElement; public options: IPreviewSetting; public renderer: THREE.WebGLRenderer; public camera: THREE.PerspectiveCamera; public scene: THREE.Scene; public modules: PreviewerModules; public css3DRenderer: CSS3DRenderer; public timer = new Timer(); private resizeObserver: ResizeObserver | null = null; private resize: () => void; constructor(options: IPreviewSetting) { super(); this._container = options.container || createDivContainer(); this.options = PreviewOptions(); deepAssign(this.options, options); const {camera, scene, renderer,css3DRenderer} = this.basicCreation(); this.camera = camera; this.scene = scene; this.renderer = renderer; this.css3DRenderer = css3DRenderer; this._container.appendChild(renderer.domElement); this._container.appendChild(css3DRenderer.domElement); this.modules = this.initModules(); this.loadEnv({setBg:true}); this.renderer.setAnimationLoop(this.animate.bind(this)); this.resize = this.onResize(); this.resize(); } get container(): HTMLElement { return this._container; } set container(container: HTMLElement) { this._container.removeChild(this.renderer.domElement); if(this.resizeObserver){ this.resizeObserver.unobserve(this._container); this.resizeObserver.disconnect(); } this._container = container; this._container.appendChild(this.renderer.domElement); this.resize = this.onResize(); } basicCreation(){ const camera = new THREE.PerspectiveCamera(45, 1, 0.1, 100 * 1000); camera.name = "Camera"; camera.position.set(0, 5, 10); camera.lookAt(new THREE.Vector3()); const scene = new THREE.Scene(); scene.name = "Scene"; const renderer = new THREE.WebGLRenderer({ antialias: true, alpha: true, preserveDrawingBuffer: false, powerPreference: "high-performance", }); renderer.autoClear = false; renderer.outputColorSpace = THREE.SRGBColorSpace; renderer.toneMapping = THREE.ACESFilmicToneMapping; renderer.toneMappingExposure = 1; renderer.shadowMap.enabled = true; renderer.shadowMap.autoUpdate = false; renderer.shadowMap.type = THREE.PCFSoftShadowMap; renderer.xr.enabled = false; renderer.setClearColor(0x272727, 1); renderer.setPixelRatio(Math.max(Math.ceil(window.devicePixelRatio), 1)); renderer.setSize(this._container.offsetWidth, this._container.offsetHeight); const css3DRenderer = new CSS3DRenderer(); css3DRenderer.setSize(this._container.offsetWidth, this._container.offsetHeight); css3DRenderer.domElement.setAttribute("id", "astral-3d-preview-css3DRenderer"); css3DRenderer.domElement.style.position = 'absolute'; css3DRenderer.domElement.style.top = '0px'; css3DRenderer.domElement.style.pointerEvents = 'none'; return { camera,scene,renderer,css3DRenderer }; } /** * 初始化功能模块 */ initModules():PreviewerModules { const controls = new CameraControls(this.camera,this.renderer.domElement); controls.addEventListener("update", () => {}); return { controls, // 粒子系统 particleSystem: new ParticleSystem(this), } } /** * 加载默认环境和背景 */ loadEnv( options?:{ setBg?: boolean, extension?: string, onLoad?: (texture: THREE.Texture) => void, onError?: (error: Error) => void } ) { if (!this.options.hdr) return; const params = Object.assign({ setBg: true, extension: this.options.hdr.split(".").pop()?.toLowerCase() || 'hdr' },options) Loader.loadUrlTexture(params.extension, this.options.hdr, (texture: THREE.Texture) => { texture.mapping = THREE.EquirectangularReflectionMapping; this.scene.environment = texture; params.setBg && (this.scene.background = texture); this.render(); params.onLoad && params.onLoad(texture) },(err) => params.onError && params.onError(err)); } /** * 加载预览项 */ load(fileOrUrl:string | File,type:string = "Model") { return new Promise(async (resolve, reject) => { this.clear(); let file = fileOrUrl; if(!(fileOrUrl instanceof File) && !["Texture","Billboard","HDR"].includes(type)) { const response = await fetch(fileOrUrl); if (!response.ok) { reject('The network is responding abnormally'); return; } const filename = fileOrUrl.substring(fileOrUrl.lastIndexOf("/") + 1); const blob = await response.blob(); file = new File([blob], filename,{ type: blob.type }); } switch (type) { case "Model": Loader.loadFile(file, new THREE.LoadingManager(),null,false).then((model) => { this.scene.add(model); focusObject(model,this.modules.controls); resolve(model); }).catch(error => { reject(error); }) break; case "Material": parseMaterialZip(file as File) .then((material) => { const geometry = new THREE.SphereGeometry(1, 32, 32, 0, Math.PI * 2, 0, Math.PI); const mesh = new THREE.Mesh(geometry, material); this.scene.add(mesh); focusObject(mesh,this.modules.controls); resolve(mesh); }) .catch(error => { reject(error); }) break; case "Texture": let mapPath = file; if(file instanceof File){ mapPath = URL.createObjectURL(file); } const geometry = new THREE.PlaneGeometry(1, 1); const material = new THREE.MeshStandardMaterial({ side: THREE.DoubleSide, map: new THREE.TextureLoader().load(mapPath as string,(texture) => { texture.wrapS = texture.wrapT = THREE.RepeatWrapping; texture.repeat.set(1, 1); if(file instanceof File){ URL.revokeObjectURL(mapPath as string) } const panel = new THREE.Mesh(geometry, material); this.scene.add(panel); focusObject(panel, this.modules.controls); resolve(panel); },undefined,(err) => reject(err)) }); break; case "Billboard": const _ops = getDefaultBillboardOptions(); _ops.image.visible = true; _ops.image.position = POSITION.LEFT; if(file instanceof File){ _ops.name = file.name; _ops.image.url = URL.createObjectURL(file); } else { _ops.name = file.substring(file.lastIndexOf("/") + 1); _ops.image.url = file; } const billboard = new Billboard(_ops); const handleBillboardImgLoaded = () => { if(file instanceof File){ URL.revokeObjectURL(_ops.image.url); } billboard.removeEventListener("imgLoaded", handleBillboardImgLoaded); } billboard.addEventListener("imgLoaded", handleBillboardImgLoaded); this.scene.add(billboard); focusObject(billboard, this.modules.controls); resolve(billboard); break; case "HDR": let hdrPath = file, extension = "hdr"; if(file instanceof File){ hdrPath = URL.createObjectURL(file); extension = file.name.split(".").pop()?.toLowerCase() || "hdr" }else { extension = file.split(".").pop()?.toLowerCase() || "hdr"; } this.options.hdr = hdrPath as string; this.loadEnv({ setBg:true, extension:extension, onLoad:(texture) => { if(file instanceof File){ URL.revokeObjectURL(hdrPath as string); } resolve(texture); }, onError: (error) => { if(file instanceof File){ URL.revokeObjectURL(hdrPath as string); } reject(error) } }) break; default: reject("A type for which previews are not yet supported"); break; } this.render(); }) } /** * 监听视窗变化(节流) */ onResize(){ const resize = () => { this.camera.aspect = this._container.offsetWidth / this._container.offsetHeight; this.camera.updateProjectionMatrix(); this.renderer.setSize(this._container.offsetWidth, this._container.offsetHeight); } let timer: NodeJS.Timeout | null = null; this.resizeObserver = new ResizeObserver(() => { if (timer) return; timer = setTimeout(() => { resize(); timer = null; }, 16) }); this.resizeObserver.observe(this._container); return resize; } /** * 清空场景 */ clear(){ for(let i = this.scene.children.length - 1; i >= 0; i--){ const child = this.scene.children[i]; if(!child.parent || child.ignore) continue; child.parent.remove(child); } this.render(); } animate(){ this.timer.update(); const delta = this.timer.getDelta(); this.modules.controls.update(delta); this.modules.particleSystem.update(delta); this.render(); } render(){ this.dispatchEvent({type: 'beforeRender'}); this.renderer.autoClear = false; this.renderer.render(this.scene, this.camera); this.css3DRenderer.render(this.scene, this.camera); this.renderer.autoClear = true; this.dispatchEvent({type: 'afterRender'}); } /** * 销毁 */ dispose() { this.resizeObserver?.unobserve(this._container); this.resizeObserver?.disconnect(); Object.keys(this.modules).forEach(key => { if (this.modules[key].dispose) { this.modules[key].dispose(); } }) this.modules.controls.disconnect(); this.clear(); this.scene.background = null; this.scene.environment = null; this._container.removeChild(this.renderer.domElement); this.renderer.setAnimationLoop(null); this.renderer.dispose(); // @ts-ignore this.renderer = null; // @ts-ignore 清空EventDispatcher监听 if(this._listeners){ // @ts-ignore Object.keys(this._listeners).forEach(type => { // @ts-ignore this._listeners[type].forEach(listener => { // @ts-ignore this.removeEventListener(type, listener); }) }) } } /* -----------------暂时放在Preview下的工具方法-------------------- */ /** * 添加粒子 * @emitter 粒子发射器 * @body 粒子主体 */ addParticle(emitter: Emitter, body: THREE.Sprite | THREE.Mesh, name: string = "Particles") { const particleEmitter = new ParticleEmitter(emitter); particleEmitter.name = name; ParticleSystem.Body3DMap.set(particleEmitter.uuid, body); this.modules.particleSystem.spriteSystem.addEmitter(emitter); this.scene.add(particleEmitter); return particleEmitter; } /** * 获取画布的截屏图片 * @returns Promise 截屏的图片对象 */ getViewportImage() { return new Promise((resolve, rejcet) => { // @ts-ignore const _preserveDrawingBuffer = this.renderer.getContext().preserveDrawingBuffer; // @ts-ignore this.renderer.getContext().preserveDrawingBuffer = true; this.render(); this.renderer.domElement.toBlob((blob) => { if (blob === null) { rejcet('Screenshots fail'); return; } const image = new Image(); image.src = URL.createObjectURL(blob); // @ts-ignore this.renderer.getContext().preserveDrawingBuffer = _preserveDrawingBuffer; this.render(); resolve(image); }); }); } } ================================================ FILE: packages/sdk/lib/core/preview/PreviewOptions.ts ================================================ export const PreviewOptions = (): IPreviewSetting => ({ // 场景canvas容器 container: undefined, // 场景背景及环境贴图 hdr: undefined, // 请求相关 request:{ baseUrl:"" }, // 相机控制器 control: { minAzimuthAngle: -Infinity, maxAzimuthAngle: Infinity, minDistance: 0.0, maxDistance: Infinity, maxPolarAngle: Math.PI, minPolarAngle: 0, maxZoom:Infinity, minZoom:0.01, dollySpeed:1, // 缩放是否以鼠标位置为中心 dollyToCursor: false, } }) ================================================ FILE: packages/sdk/lib/core/script/Animation.ts ================================================ import {Object3D, AnimationAction,LoopOnce, LoopRepeat, LoopPingPong} from "three"; import type {AnimationActionLoopStyles} from "three"; export class Animation { object:Object3D; actionsMap:Map; lastPlayAction:AnimationAction | undefined; // 整个动作过程动画剪辑(AnimationClip)执行的次数 repetitions:number = Infinity; static ActionLoop = { LoopOnce: LoopOnce, LoopRepeat: LoopRepeat, LoopPingPong: LoopPingPong, } constructor(object:Object3D) { this.object = object; this.actionsMap = this.getActionsMap(); } /** * 获取对象的AnimationActions。 * @returns AnimationAction Map. */ getActionsMap():Map { const actionsMap = new Map(); const animations = this.object.animations as unknown as AnimationAction[]; if (animations.length > 0) { for (let animation of animations ) { actionsMap.set(animation.getClip().name, animation); } } return actionsMap; } /** * 返回 AnimationAction,用于用户直接调用AnimationAction的方法。 * AnimationAction 文档:https://threejs.org/docs/index.html#api/zh/animation/AnimationAction * @param name 动画名称。 * @returns AnimationAction | undefined */ getAction(name:string):AnimationAction | undefined { return this.actionsMap.get(name); } get actions():AnimationAction[] { return Array.from(this.actionsMap.values()); } /** * 播放动画,支持链式调用 */ play(name:string, loop:AnimationActionLoopStyles = Animation.ActionLoop.LoopRepeat, timeScale:number = 1):Animation { const action = this.actionsMap.get(name); if (action) { action.paused = false; action.repetitions = this.repetitions; action.loop = loop; action.timeScale = timeScale; action.play(); this.lastPlayAction = action; } return this; } /** * 暂停动画,支持链式调用 */ pause(name:string | undefined):Animation { if(name === undefined){ this.lastPlayAction && (this.lastPlayAction.paused = true); return this; } const action = this.actionsMap.get(name); if (action) { action.paused = true; } return this; } /** * 停止动画,支持链式调用 */ stop(name:string | undefined):Animation { if (name === undefined) { this.lastPlayAction &&this.lastPlayAction.stop(); this.lastPlayAction = undefined; return this; } const action = this.actionsMap.get(name); if (action) { action.stop(); } if (this.lastPlayAction === action) { this.lastPlayAction = undefined; } return this; } } ================================================ FILE: packages/sdk/lib/core/script/Helper.ts ================================================ /** * @author ErSan * @email mlt131220@163.com * @date 2024/4/24 10:39 * @description 迁移App.ts中的一些方法(也有新增)提供脚本使用,因为脚本在运行态时执行,应该与原环境隔离 */ import {Scene,Object3D} from "three"; import {Animation} from "./Animation"; export class Helper { scene: Scene; /* 动画 */ Animation: typeof Animation; constructor(scene: Scene) { this.scene = scene; this.Animation = Animation; // 注册一个资源管理类,用于管理资源的加载和释放 // 注册一个flyControls类,用于控制场景中的物体的飞行动画 } /** * 通过uuid获取对象 * @param uuid * @returns THREE.Object3D */ objectByUuid(uuid: string) { return this.scene.getObjectByProperty('uuid', uuid); } /** * 移动3D对象到指定位置 * @param object * @param parent * @param before */ moveObject(object: Object3D, parent: Object3D, before: Object3D) { if (parent === undefined) { parent = this.scene; } parent.add(object); // 对子数组进行排序 if (before !== undefined) { const index = parent.children.indexOf(before); parent.children.splice(index, 0, object); parent.children.pop(); } } /** * 移除对象 * @param object */ removeObject(object: Object3D) { if (object.parent === null) return; // TODO 未处理材质的释放 object.parent.remove(object); } } ================================================ FILE: packages/sdk/lib/core/script/Source.ts ================================================ export const Source = ` /** * @document http://editor-doc.astraljs.com/guide/component/h4v1bkyh/ **/ function loaded() {} `; ================================================ FILE: packages/sdk/lib/core/script/index.ts ================================================ export {Animation} from "./Animation"; export {Helper} from "./Helper"; export {Source} from "./Source"; ================================================ FILE: packages/sdk/lib/core/shaderMaterial/ShaderMaterialManager.ts ================================================ import {ShaderMaterial, Vector2} from "three"; import {useAddSignal} from "@/hooks"; import {CircleGridShaderMaterial} from "@/core/shaderMaterial/modules/CircleGridShaderMaterial"; import {DynamicCheckerboardShaderMaterial} from "@/core/shaderMaterial/modules/DynamicCheckerboardShaderMaterial"; import {FlickerShaderMaterial} from "@/core/shaderMaterial/modules/FlickerShaderMaterial"; import {SlowSmokeShaderMaterial} from "@/core/shaderMaterial/modules/SlowSmokeShaderMaterial"; import {StreamerWallShaderMaterial} from "@/core/shaderMaterial/modules/StreamerWallShaderMaterial"; import { SnowingShaderMaterial } from "@/core/shaderMaterial/modules/SnowingShaderMaterial"; import App from "@/core/app/App"; interface IShaderMaterialClass { Name: string, _ShaderMaterial: ShaderMaterial, Resolution?: Vector2, Update: () => void, } export class ShaderMaterialManager { shaderMaterials: IShaderMaterialClass[] = []; classMap: { [className: string]: string } = {}; constructor() { useAddSignal("instantiateShaderMaterial", (shaderMaterialClass: IShaderMaterialClass) => { this.push(shaderMaterialClass); }) useAddSignal("sceneResize", (width: number, height: number) => { const resolution = new Vector2(width, height); this.shaderMaterials.forEach(sm => { sm.Resolution = resolution; }) }) useAddSignal("sceneLoadComplete", () => { this.init(); }) } get needRender() { return this.shaderMaterials.length > 0; } init() { if(!App.metadata._ShaderMaterialClassMap) return; this.classMap = App.metadata._ShaderMaterialClassMap; if (this.classMap) { for (let className in this.classMap) { const material = App.materials[this.classMap[className]] as ShaderMaterial; switch (className) { case "CircleGridShaderMaterial": CircleGridShaderMaterial.Material = material; this.shaderMaterials.push(CircleGridShaderMaterial); break; case "DynamicCheckerboardShaderMaterial": DynamicCheckerboardShaderMaterial.Material = material; this.shaderMaterials.push(DynamicCheckerboardShaderMaterial); break; case "FlickerShaderMaterial": FlickerShaderMaterial.Material = material; this.shaderMaterials.push(FlickerShaderMaterial); break; case "SlowSmokeShaderMaterial": SlowSmokeShaderMaterial.Material = material; this.shaderMaterials.push(SlowSmokeShaderMaterial); break; case "StreamerWallShaderMaterial": StreamerWallShaderMaterial.Material = material; this.shaderMaterials.push(StreamerWallShaderMaterial); break; case "SnowingShaderMaterial": SnowingShaderMaterial.Material = material; this.shaderMaterials.push(SnowingShaderMaterial); break; } } } } push(sm: IShaderMaterialClass) { this.shaderMaterials.push(sm); this.classMap[sm.Name] = sm._ShaderMaterial.uuid; App.metadata._ShaderMaterialClassMap = this.classMap; } update() { for (let i = 0; i < this.shaderMaterials.length; i++) { this.shaderMaterials[i].Update(); } } } ================================================ FILE: packages/sdk/lib/core/shaderMaterial/modules/CircleGridShaderMaterial.ts ================================================ /** * @author ErSan * @email mlt131220@163.com * @date 2024/5/18 13:49 * @description 圆网格着色器材质 * @from https://www.shadertoy.com/view/7dG3zy */ import {DoubleSide, ShaderMaterial} from "three"; import {useDispatchSignal} from "@/hooks"; const vertex = ` varying vec2 vUv; void main () { vUv = uv; // 从贴图中采样颜色值 // vec3 newPosition = normal*vec3(0,0,0)+position; //gl_Position = projectionMatrix * modelViewMatrix * vec4(newPosition, 1.0); gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0); } `; const fragment = /*glsl*/` // 片元着色器中所有浮点数精度为中精度 precision mediump float; varying vec2 vUv; uniform float uTime; vec3 palette( float t ) { vec3 a = vec3(0.5, 0.5, 0.5); vec3 b = vec3(0.5, 0.5, 0.5); vec3 c = vec3(1.0, 1.0, 1.0); vec3 d = vec3(0.263,0.416,0.557); return a + b*cos( 6.28318*(c*t+d) ); } void main() { vec2 uv = vUv; uv-=.5; // 使坐标范围从-0.5到0.5 uv*=3.; // 使坐标范围从-1.5到1.5 vec2 uv0 = uv; vec3 finalColor = vec3(0.0); for (float i = 0.0; i < 4.0; i++) { uv = fract(uv * 1.5) - 0.5; float d = length(uv) * exp(-length(uv0)); vec3 col = palette(length(uv0) + i*.4 + uTime*.4); d = sin(d*8. + uTime)/8.; d = abs(d); d = pow(0.01 / d, 1.2); finalColor += col * d; } gl_FragColor = vec4(finalColor,1.); } `; export class CircleGridShaderMaterial { static _ShaderMaterial: ShaderMaterial; static Name = "CircleGridShaderMaterial"; static get Material() { if (!CircleGridShaderMaterial._ShaderMaterial) { CircleGridShaderMaterial.Init(); } return CircleGridShaderMaterial._ShaderMaterial; } static set Material(value: ShaderMaterial) { CircleGridShaderMaterial._ShaderMaterial = value; } static get PreviewMaterial() { return CircleGridShaderMaterial.InstanceShaderMaterial(); } static InstanceShaderMaterial(){ const material = new ShaderMaterial({ uniforms: { uTime: {value: 1.0}, }, vertexShader: vertex, fragmentShader: fragment, side: DoubleSide, transparent: true, }); material.name = CircleGridShaderMaterial.Name; return material; } static Init() { CircleGridShaderMaterial._ShaderMaterial = CircleGridShaderMaterial.InstanceShaderMaterial(); useDispatchSignal("instantiateShaderMaterial",CircleGridShaderMaterial); return CircleGridShaderMaterial._ShaderMaterial; } static Update() { if(!CircleGridShaderMaterial._ShaderMaterial) return; CircleGridShaderMaterial._ShaderMaterial.uniforms.uTime.value += .01 } static UpdatePreview(previewMaterial: ShaderMaterial) { previewMaterial.uniforms.uTime.value += .01 } } // export class CircleGridShaderMaterial { // static Instance: CircleGridShaderMaterial | null = null; // shaderMaterial: ShaderMaterial | undefined; // name = "CircleGridShaderMaterial"; // // constructor(reuse = true) { // if(reuse && CircleGridShaderMaterial.Instance){ // return CircleGridShaderMaterial.Instance; // } // // this.shaderMaterial = new ShaderMaterial({ // uniforms: { // uTime: {value: 1.0}, // }, // vertexShader: vertex, // fragmentShader: fragment, // side: DoubleSide, // transparent: true, // }); // // useDispatchSignal("instantiateShaderMaterial",this) // } // // update() { // (this.shaderMaterial as ShaderMaterial).uniforms.uTime.value += .0001 // } // } ================================================ FILE: packages/sdk/lib/core/shaderMaterial/modules/DynamicCheckerboardShaderMaterial.ts ================================================ /** * @author ErSan * @email mlt131220@163.com * @date 2024/5/18 13:49 * @description 动态棋盘着色器材质 * @from https://glslsandbox.com/e#109552.0 */ import {DoubleSide, ShaderMaterial} from "three"; import {useDispatchSignal} from "@/hooks"; const vertex = ` varying vec2 vUv; void main () { vUv = uv; gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0); } `; const fragment = /*glsl*/` #ifdef GL_ES precision mediump float; #endif varying vec2 vUv; uniform float uTime; void main() { vec2 uv = vUv; float cycle = fract(uTime); vec2 grid = vec2(10, 10); vec2 position = (uv * grid) - vec2(cycle,0); float color = 0.0; if (mod(position.y,2.0) < 1.0) { if (fract(position.x) < cycle) color = 1.0; } else { if (fract(position.x) > cycle) color = 1.0; } if (mod(floor(uTime), 2.0) < 1.0) color = 1.0 - color; gl_FragColor = vec4( color, color, color, 1.0 ); }`; export class DynamicCheckerboardShaderMaterial { static _ShaderMaterial: ShaderMaterial; static Name = "DynamicCheckerboardShaderMaterial"; static get Material() { if (!DynamicCheckerboardShaderMaterial._ShaderMaterial) { DynamicCheckerboardShaderMaterial.Init(); } return DynamicCheckerboardShaderMaterial._ShaderMaterial; } static set Material(value: ShaderMaterial) { DynamicCheckerboardShaderMaterial._ShaderMaterial = value; } static get PreviewMaterial() { return DynamicCheckerboardShaderMaterial.InstanceShaderMaterial(); } static InstanceShaderMaterial() { const material = new ShaderMaterial({ uniforms:{ uTime: { value: 1.0 } }, vertexShader: vertex, fragmentShader: fragment, side: DoubleSide, transparent: true, }); material.name = DynamicCheckerboardShaderMaterial.Name; return material; } static Init() { DynamicCheckerboardShaderMaterial._ShaderMaterial = DynamicCheckerboardShaderMaterial.InstanceShaderMaterial(); useDispatchSignal("instantiateShaderMaterial", DynamicCheckerboardShaderMaterial); return DynamicCheckerboardShaderMaterial._ShaderMaterial; } static Update() { if(!DynamicCheckerboardShaderMaterial._ShaderMaterial) return; DynamicCheckerboardShaderMaterial._ShaderMaterial.uniforms.uTime.value += .01 } static UpdatePreview(previewMaterial : ShaderMaterial) { previewMaterial.uniforms.uTime.value += .01 } } ================================================ FILE: packages/sdk/lib/core/shaderMaterial/modules/FlickerShaderMaterial.ts ================================================ /** * @author ErSan * @email mlt131220@163.com * @date 2024/5/18 13:49 * @description 闪烁着色器材质 */ import {DoubleSide, ShaderMaterial,Color} from "three"; import {useDispatchSignal} from "@/hooks"; const vertex = ` uniform float uTime; uniform float uHeight; varying float vOpacity; void main() { vec3 vPosition = position; vOpacity = mix(1.0, 0.0, position.y / uHeight * 1.0) * (1.0 + sin(uTime) * 0.5); gl_Position = projectionMatrix * modelViewMatrix * vec4(vPosition, 1); } `; const fragment = /*glsl*/` uniform vec3 uColor; uniform float uOpacity; varying float vOpacity; void main() { gl_FragColor = vec4(uColor, vOpacity * uOpacity); } `; export class FlickerShaderMaterial{ static _ShaderMaterial: ShaderMaterial; static Name = "FlickerShaderMaterial"; static get Material() { if (!FlickerShaderMaterial._ShaderMaterial) { FlickerShaderMaterial.Init(); } return FlickerShaderMaterial._ShaderMaterial; } static set Material(value: ShaderMaterial) { FlickerShaderMaterial._ShaderMaterial = value; } static get PreviewMaterial() { return FlickerShaderMaterial.InstanceShaderMaterial(); } static InstanceShaderMaterial(){ const material = new ShaderMaterial({ uniforms: { uTime: {value: 1.0}, uHeight: { value: 10, }, uOpacity: { value: 0.5, }, uColor: { value: new Color("#00ffff"), } }, vertexShader: vertex, fragmentShader: fragment, side: DoubleSide, transparent: true }); material.name = FlickerShaderMaterial.Name; return material } static Init() { FlickerShaderMaterial._ShaderMaterial = FlickerShaderMaterial.InstanceShaderMaterial(); useDispatchSignal("instantiateShaderMaterial",FlickerShaderMaterial); return FlickerShaderMaterial._ShaderMaterial; } static Update() { if(!FlickerShaderMaterial._ShaderMaterial) return; FlickerShaderMaterial._ShaderMaterial.uniforms.uTime.value += .02 } static UpdatePreview(previewMaterial: ShaderMaterial) { previewMaterial.uniforms.uTime.value += .02 } } ================================================ FILE: packages/sdk/lib/core/shaderMaterial/modules/SlowSmokeShaderMaterial.ts ================================================ /** * @author ErSan * @email mlt131220@163.com * @date 2024/5/18 13:49 * @description 动态烟着色器材质 * @from https://glslsandbox.com/e#109550.0 */ import {DoubleSide, ShaderMaterial, Vector2} from "three"; import {useDispatchSignal} from "@/hooks"; const vertex = ` varying vec2 vUv; void main () { vUv = uv; gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0); }`; const fragment = /*glsl*/` #ifdef GL_ES precision highp float; #endif #define NUM_OCTAVES 6 varying vec2 vUv; uniform float uTime; uniform vec2 uResolution; mat3 rotX(float a) { float c = cos(a); float s = sin(a); return mat3( 1, 0, 0, 0, c, -s, 0, s, c ); } mat3 rotY(float a) { float c = cos(a); float s = sin(a); return mat3( c, 0, -s, 0, 1, 0, s, 0, c ); } float random(vec2 pos) { return fract(sin(dot(pos.xy, vec2(13.9898, 78.233))) * 43758.5453123); } float noise(vec2 pos) { vec2 i = floor(pos); vec2 f = fract(pos); float a = random(i + vec2(0.0, 0.0)); float b = random(i + vec2(1.0, 0.0)); float c = random(i + vec2(0.0, 1.0)); float d = random(i + vec2(1.0, 1.0)); vec2 u = f * f * (3.0 - 2.0 * f); return mix(a, b, u.x) + (c - a) * u.y * (1.0 - u.x) + (d - b) * u.x * u.y; } float fbm(vec2 pos) { float v = 0.0; float a = 0.5; vec2 shift = vec2(100.0); mat2 rot = mat2(cos(0.5), sin(0.5), -sin(0.5), cos(0.5)); for (int i = 0; i < NUM_OCTAVES; i++) { float dir = mod(float(i), 2.0) > 0.5 ? 1.0 : -1.0; v += a * noise(pos - 0.05 * dir * uTime); pos = rot * pos * 2.0 + shift; a *= 0.5; } return v; } void main(void) { vec2 uv = vUv; vec2 p = (uv * 3.0 - 1.0) * 0.5; // 屏幕适配 if (uResolution.x > uResolution.y) { p.x *= uResolution.x / uResolution.y; } else { p.y *= uResolution.y / uResolution.x; } p -= vec2(12.0, 0.0); float t = 0.0, d; float time2 = 1.0; vec2 q = vec2(0.0); q.x = fbm(p + 0.00 * time2); q.y = fbm(p + vec2(1.0)); vec2 r = vec2(0.0); r.x = fbm(p + 1.0 * q + vec2(1.7, 1.2) + 0.15 * time2); r.y = fbm(p + 1.0 * q + vec2(8.3, 2.8) + 0.126 * time2); float f = fbm(p + r); vec3 color = mix( vec3(1.0, 1.0, 2.0), vec3(1.0, 1.0, 1.0), clamp((f * f) * 5.5, 1.2, 15.5) ); color = mix( color, vec3(1.0, 1.0, 1.0), clamp(length(q), 2.0, 2.0) ); color = mix( color, vec3(0.3, 0.2, 1.0), clamp(length(r.x), 0.0, 5.0) ); color = (f * f * f * 1.0 + 0.5 * 1.7 * 0.0 + 0.9 * f) * color; float alpha = 50.0 - max(pow(100.0 * distance(uv.x, -1.0), 0.0), pow(2.0 * distance(uv.y, 0.5), 5.0)); gl_FragColor = vec4(color * 100.0, color.r); gl_FragColor = vec4(color, alpha * color.r); } `; export class SlowSmokeShaderMaterial { static _ShaderMaterial: ShaderMaterial; static Name = "SlowSmokeShaderMaterial"; static get Material() { if (!SlowSmokeShaderMaterial._ShaderMaterial) { SlowSmokeShaderMaterial.Init(); } return SlowSmokeShaderMaterial._ShaderMaterial; } static set Material(value: ShaderMaterial) { SlowSmokeShaderMaterial._ShaderMaterial = value; } static get PreviewMaterial() { return SlowSmokeShaderMaterial.InstanceShaderMaterial(); } static get Resolution() { const viewportDom = document.getElementById("viewport") as HTMLCanvasElement; return new Vector2(viewportDom.offsetWidth || window.innerWidth, viewportDom.offsetHeight || window.innerHeight); } static set Resolution(value: Vector2) { SlowSmokeShaderMaterial._ShaderMaterial.uniforms.uResolution.value.set(value.x, value.y); } static InstanceShaderMaterial() { const material = new ShaderMaterial({ uniforms: { uTime: {value: 1.0}, uResolution: {value: SlowSmokeShaderMaterial.Resolution}, }, vertexShader: vertex, fragmentShader: fragment, side: DoubleSide, transparent: true, }); material.name = SlowSmokeShaderMaterial.Name; return material; } static Init() { SlowSmokeShaderMaterial._ShaderMaterial = SlowSmokeShaderMaterial.InstanceShaderMaterial(); useDispatchSignal("instantiateShaderMaterial", SlowSmokeShaderMaterial); return SlowSmokeShaderMaterial._ShaderMaterial; } static Update() { if(!SlowSmokeShaderMaterial._ShaderMaterial) return; SlowSmokeShaderMaterial._ShaderMaterial.uniforms.uTime.value += .01 } static UpdatePreview(previewMaterial: ShaderMaterial) { previewMaterial.uniforms.uTime.value += .01 } } ================================================ FILE: packages/sdk/lib/core/shaderMaterial/modules/SnowingShaderMaterial.ts ================================================ /** * @author ErSan * @email mlt131220@163.com * @description 下雪特效着色器 */ import { ShaderChunk, ShaderMaterial, Vector2, Vector4, TextureLoader, RepeatWrapping, DoubleSide } from "three"; import { useDispatchSignal } from "@/hooks"; const vertex = ` ${ShaderChunk.common} ${ShaderChunk.logdepthbuf_pars_vertex} varying vec2 vUv; varying vec3 vNormal; void main () { vUv = uv; vNormal = normalize(normalMatrix * normal); gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0); ${ShaderChunk.logdepthbuf_vertex} }`; const fragment = /*glsl*/` ${ShaderChunk.logdepthbuf_pars_fragment} varying vec2 vUv; varying vec3 vNormal; uniform float uTime; uniform vec2 uResolution; uniform float uHasTexture; uniform vec4 uColor; uniform sampler2D uTexture; uniform sampler2D uNoiseMap; vec3 permute(vec3 x) { return mod(((x*34.0)+1.0)*x, 289.0); } float snoise(vec2 v){ const vec4 C = vec4(0.211324865405187, 0.366025403784439, -0.577350269189626, 0.024390243902439); vec2 i = floor(v + dot(v, C.yy)); vec2 x0 = v - i + dot(i, C.xx); vec2 i1; i1 = (x0.x > x0.y) ? vec2(1.0, 0.0) : vec2(0.0, 1.0); vec4 x12 = x0.xyxy + C.xxzz; x12.xy -= i1; i = mod(i, 289.0); vec3 p = permute( permute( i.y + vec3(0.0, i1.y, 1.0 )) + i.x + vec3(0.0, i1.x, 1.0 )); vec3 m = max(0.5 - vec3(dot(x0,x0), dot(x12.xy,x12.xy), dot(x12.zw,x12.zw)), 0.0); m = m*m ; m = m*m ; vec3 x = 2.0 * fract(p * C.www) - 1.0; vec3 h = abs(x) - 0.5; vec3 ox = floor(x + 0.5); vec3 a0 = x - ox; m *= 1.79284291400159 - 0.85373472095314 * ( a0*a0 + h*h ); vec3 g; g.x = a0.x * x0.x + h.x * x0.y; g.yz = a0.yz * x12.xz + h.yz * x12.yw; return 130.0 * dot(m, g); } float fbm(vec3 uv,float _amp,float _min) { float amp = _amp; float f = 0.; for(int x=0;x<3;x++) { f+=(snoise(uv.xz)*0.5+0.5)*.25+.75 * amp; amp*=_amp; uv*=2.7; } return max(f,_min); } void main(void) { vec2 uv = vUv; float _noise = fbm(vec3(uv.x*100.,0.0,uv.y*100.),0.47,0.2); // 噪声 vec3 norm = vec3(0.0,1.0,0.0); vec3 normalDistribution = vec3(1.0/_noise,_noise,1.0-_noise); normalDistribution=normalDistribution*2.-1.; vec3 newnorm = norm * normalDistribution; newnorm = dot(newnorm,norm) < 0.0 ? -newnorm : newnorm; vec3 color = mix(vec3(_noise),vec3(0.529411765,0.8,1.0)*vec3(_noise),1.0-dot(newnorm,vec3(0.0,1.0,0.0))); // 面法线与Y轴的角度进行点乘 vec4 yAxis = normalize(viewMatrix * vec4(0.0, 1.0, 0.0, 0.0)); // 法线与y轴垂直时点积为0,snowThickness为0 float snowThickness = smoothstep(0.5, 1.0, abs(dot(vNormal, yAxis.xyz))); if(uHasTexture > 0.5) { gl_FragColor = texture2D(uTexture,uv); } else { gl_FragColor = uColor; } // snowScale 雪覆盖区域大小 // snowThickness *= 1.0 - clamp(texture2D(uNoiseMap, uv).r, 0.0, 1.0 - snowScale); snowThickness *= 1.0 - clamp(texture2D(uNoiseMap, uv).r, 0.0, 1.0 - 0.8); vec4 noiseColor = snowThickness * uTime * vec4(1.0, 1.0, 1.0, 1.0); if(snowThickness > 0.1) { gl_FragColor = mix(noiseColor,gl_FragColor,clamp(fbm(vec3(uv.x*10.,0.0,uv.y*10.)*.5+.5,0.47,0.0)-sin(uTime*.5),0.0,1.0)); }else{ gl_FragColor += noiseColor; } ${ShaderChunk.logdepthbuf_fragment} }`; export class SnowingShaderMaterial { static _ShaderMaterial: ShaderMaterial; static Name = "SnowingShaderMaterial"; static get Material() { if (!SnowingShaderMaterial._ShaderMaterial) { SnowingShaderMaterial.Init(); } return SnowingShaderMaterial._ShaderMaterial; } static set Material(value) { SnowingShaderMaterial._ShaderMaterial = value; } static get PreviewMaterial() { return SnowingShaderMaterial.InstanceShaderMaterial(); } static get Resolution() { return new Vector2(window.innerWidth, window.innerHeight); } static set Resolution(value) { SnowingShaderMaterial._ShaderMaterial.uniforms.uResolution.value.set(value.x, value.y); } static InstanceShaderMaterial() { const textureLoader = new TextureLoader(); const material = new ShaderMaterial({ uniforms: { uTime: { value: 0.1 }, uResolution: { value: SnowingShaderMaterial.Resolution }, uNoiseMap: { value: null }, uTexture: { value: null }, uHasTexture: { value: 0.0 }, uColor: { value: new Vector4(1.0,1.0,1.0,1.0) } }, vertexShader: vertex, fragmentShader: fragment, side: DoubleSide, transparent: false, depthTest: true, depthWrite: true, lights: false }); material.name = SnowingShaderMaterial.Name; textureLoader.load(new URL(import.meta.env.BASE_URL + 'resource/textures/noise.png', import.meta.url).href, (texture) => { texture.wrapS = texture.wrapT = RepeatWrapping; texture.repeat.set(1, 1); material.uniforms.uNoiseMap.value = texture; }); return material; } static Init() { SnowingShaderMaterial._ShaderMaterial = SnowingShaderMaterial.InstanceShaderMaterial(); useDispatchSignal("instantiateShaderMaterial", SnowingShaderMaterial); return SnowingShaderMaterial._ShaderMaterial; } static Update() { if (!SnowingShaderMaterial._ShaderMaterial) return; SnowingShaderMaterial._ShaderMaterial.uniforms.uTime.value += .01; } static UpdatePreview(previewMaterial: ShaderMaterial) { previewMaterial.uniforms.uTime.value += .01 } } ================================================ FILE: packages/sdk/lib/core/shaderMaterial/modules/StreamerWallShaderMaterial.ts ================================================ /** * @author ErSan * @email mlt131220@163.com * @date 2024/5/18 13:49 * @description 流光墙着色器材质 * @from http://t.csdnimg.cn/zSxq0 */ import {DoubleSide, ShaderMaterial,RepeatWrapping,TextureLoader} from "three"; import {useDispatchSignal} from "@/hooks"; const vertex = ` varying vec2 vUv; varying vec3 vPosition; void main(){ vUv = uv; vPosition = position; vec4 mvPosition = modelViewMatrix * vec4( position, 1.0 ); gl_Position = projectionMatrix * mvPosition; } `; const fragment = /*glsl*/` varying vec2 vUv; uniform float uTime; uniform sampler2D uFlowTexture; uniform sampler2D uBgTexture; void main( void ) { vec2 position = vUv; vec4 colorA = texture2D(uFlowTexture, vec2(vUv.x, fract(vUv.y - uTime))); vec4 colorB = texture2D(uBgTexture, position.xy); gl_FragColor = colorB + colorB * colorA; } `; export class StreamerWallShaderMaterial{ static _ShaderMaterial: ShaderMaterial; static Name = "StreamerWallShaderMaterial"; static get Material() { if (!StreamerWallShaderMaterial._ShaderMaterial) { StreamerWallShaderMaterial.Init(); } return StreamerWallShaderMaterial._ShaderMaterial; } static set Material(value: ShaderMaterial) { StreamerWallShaderMaterial._ShaderMaterial = value; } static get PreviewMaterial() { return StreamerWallShaderMaterial.InstanceShaderMaterial(); } static InstanceShaderMaterial(){ const bgTexture = new TextureLoader().load("/static/images/resource/material/shader/texture2D/GradationBlue.png"); const flowTexture = new TextureLoader().load("/static/images/resource/material/shader/texture2D/FlowTexture.png"); flowTexture.wrapS = RepeatWrapping; const material = new ShaderMaterial({ uniforms: { uTime: {value: 0.0}, uFlowTexture: {value: flowTexture}, uBgTexture: {value: bgTexture} }, vertexShader: vertex, fragmentShader: fragment, side: DoubleSide, transparent: true, depthTest: false, depthWrite: false }); material.name = StreamerWallShaderMaterial.Name; return material; } static Init() { StreamerWallShaderMaterial._ShaderMaterial = StreamerWallShaderMaterial.InstanceShaderMaterial(); useDispatchSignal("instantiateShaderMaterial",StreamerWallShaderMaterial); return StreamerWallShaderMaterial._ShaderMaterial; } static Update() { if(!StreamerWallShaderMaterial._ShaderMaterial) return; StreamerWallShaderMaterial._ShaderMaterial.uniforms.uTime.value += .01 } static UpdatePreview(previewMaterial: ShaderMaterial) { previewMaterial.uniforms.uTime.value += .01 } } ================================================ FILE: packages/sdk/lib/core/shaderMaterial/modules/index.ts ================================================ export {CircleGridShaderMaterial} from "./CircleGridShaderMaterial"; export {DynamicCheckerboardShaderMaterial} from "./DynamicCheckerboardShaderMaterial"; export {FlickerShaderMaterial} from "./FlickerShaderMaterial"; export {SlowSmokeShaderMaterial} from "./SlowSmokeShaderMaterial"; export {SnowingShaderMaterial} from "./SnowingShaderMaterial"; export {StreamerWallShaderMaterial} from "./StreamerWallShaderMaterial"; ================================================ FILE: packages/sdk/lib/core/tools/ClippedEdgesBox.ts ================================================ import { Box3, Vector3, Mesh, MeshBasicMaterial, Vector2, Raycaster, Group, LineSegments, LineBasicMaterial, Plane, PlaneGeometry, BackSide, BufferGeometry, Object3D } from "three"; import {useAddSignal, useDispatchSignal, useRemoveSignal} from "@/hooks"; import {isGroup} from "@/utils"; import Viewer from "@/core/viewer/Viewer"; import App from "@/core/app/App"; let objectSelectedFn; /** * 盒剖切 * @param viewer * @param controls */ class ClippedEdgesBox { // 最小剖切盒宽度 static MIN_WIDTH = 0.05; private viewer: Viewer; protected controls; public isOpen: boolean = false; protected sectionBox?: Box3; protected lastSelected:Object3D | undefined = undefined; constructor(viewer:Viewer) { this.viewer = viewer; this.controls = viewer.modules.controls; // 开启模型对象的局部剪裁平面功能. 如果不设置为true,设置剪裁平面的模型不会被剪裁 this.viewer.renderer.localClippingEnabled = true; objectSelectedFn = this.objectSelected.bind(this); } get domElement(){ return this.viewer.renderer.domElement; } /** * 如果在构造函数中没有分配sectionBox,那么在这里设置它 */ protected setSectionBox() { this.sectionBox = new Box3(); if (!App.selected) { this.lastSelected = undefined; this.sectionBox.expandByObject(this.viewer.scene) } else { this.lastSelected = App.selected; this.sectionBox?.expandByObject(App.selected) } } /** * 切换选中模型 */ objectSelected(){ if(!this.isOpen) return; this.reset(); } /** * 开始剖切 */ open() { this.initSectionBox(); this.addMouseListener(); this.isOpen = true; useAddSignal("objectSelected", objectSelectedFn); useDispatchSignal("sceneGraphChanged"); } /** * 关闭剖切 */ close() { this.isOpen = false; this.removeMouseListener(); this.clearSectionBox(); useRemoveSignal("objectSelected", objectSelectedFn); useDispatchSignal("sceneGraphChanged") } /** * 重置剖切 */ reset() { this.close(); this.open(); useDispatchSignal("sceneGraphChanged") } dispose() { if(this.isOpen){ this.close(); } objectSelectedFn = undefined; } // --------------- 剖切盒 -------------------- protected boxMin: Vector3 = new Vector3(); // 剖切盒最小点 protected boxMax: Vector3 = new Vector3(); // 剖切盒最大点 protected group: Group = new Group(); // 包含section的所有对象 protected planes: Array = []; // 切面 protected vertices = [ new Vector3(), new Vector3(), new Vector3(), new Vector3(), // 顶部有4个顶点 new Vector3(), new Vector3(), new Vector3(), new Vector3() // 底部有4个顶点 ]; protected faces: Array = []; protected lines: Array = []; /** * 初始化剖切盒 */ protected initSectionBox() { this.setSectionBox(); // boxMin 与 boxMax 应增加内边距以免贴合 this.boxMin = (this.sectionBox as Box3).min.sub(new Vector3(0.05, 0.05, 0.05)); this.boxMax = (this.sectionBox as Box3).max.add(new Vector3(0.05, 0.05, 0.05)); this.group = new Group(); this.group.name = "clippedEdgesBox"; this.group.ignore = true; this.initPlanes(); this.initOrUpdateVertices(); this.initOrUpdateFaces(); this.initOrUpdateLines(); this.viewer.scene.add(this.group); } /** * 初始化剖切盒的六面 */ protected initPlanes() { this.planes = []; this.planes.push( new Plane(new Vector3(0, -1, 0), this.boxMax.y), // up new Plane(new Vector3(0, 1, 0), -this.boxMin.y), // down new Plane(new Vector3(1, 0, 0), -this.boxMin.x), // left new Plane(new Vector3(-1, 0, 0), this.boxMax.x), // right new Plane(new Vector3(0, 0, -1), this.boxMax.z), // front new Plane(new Vector3(0, 0, 1), -this.boxMin.z) // back ); const setChildClippingPlanes = (child) => { if (["Mesh", "LineSegments"].includes(child.type)) { child.material.clippingPlanes = this.planes; child.material.clipIntersection = false; } } if (!this.lastSelected) { this.viewer.scene.traverseVisible(c => { setChildClippingPlanes(c) }) } else { if (isGroup(this.lastSelected)) { App.traverseMeshToArr(this.lastSelected).forEach(child => { setChildClippingPlanes(child) }) } else { setChildClippingPlanes(this.lastSelected) } } } protected updatePlanes() { this.planes[0].constant = this.boxMax.y; this.planes[1].constant = -this.boxMin.y; this.planes[2].constant = -this.boxMin.x; this.planes[3].constant = this.boxMax.x; this.planes[4].constant = this.boxMax.z; this.planes[5].constant = -this.boxMin.z; } /** * 初始化或更新剖切盒的8个顶点 */ protected initOrUpdateVertices() { this.vertices[0].set(this.boxMin.x, this.boxMax.y, this.boxMin.z); // 顶部的四个顶点 this.vertices[1].set(this.boxMax.x, this.boxMax.y, this.boxMin.z); this.vertices[2].set(this.boxMax.x, this.boxMax.y, this.boxMax.z); this.vertices[3].set(this.boxMin.x, this.boxMax.y, this.boxMax.z); this.vertices[4].set(this.boxMin.x, this.boxMin.y, this.boxMin.z); // 底部的四个顶点 this.vertices[5].set(this.boxMax.x, this.boxMin.y, this.boxMin.z); this.vertices[6].set(this.boxMax.x, this.boxMin.y, this.boxMax.z); this.vertices[7].set(this.boxMin.x, this.boxMin.y, this.boxMax.z); } /** * 初始化或更新剖切盒的6个面 */ protected initOrUpdateFaces() { const v = this.vertices; if (!this.faces || this.faces.length === 0) { this.faces = []; this.faces.push( new BoxFace("yUp", [v[0], v[1], v[2], v[3]]), // up new BoxFace("yDown", [v[4], v[7], v[6], v[5]]), // down new BoxFace("xLeft", [v[0], v[3], v[7], v[4]]), // left new BoxFace("xRight", [v[1], v[5], v[6], v[2]]), // right new BoxFace("zFront", [v[2], v[6], v[7], v[3]]), // front new BoxFace("zBack", [v[0], v[4], v[5], v[1]]) // back ); this.group.add(...this.faces); this.faces.forEach(face => { this.group.add(face.backFace); }); } else { const f = this.faces; f[0].setFromPoints([v[0], v[1], v[2], v[3]]); f[1].setFromPoints([v[4], v[7], v[6], v[5]]); f[2].setFromPoints([v[0], v[3], v[7], v[4]]); f[3].setFromPoints([v[1], v[5], v[6], v[2]]); f[4].setFromPoints([v[2], v[6], v[7], v[3]]); f[5].setFromPoints([v[0], v[4], v[5], v[1]]); } } /** * 初始化或更新剖切盒的12条边 */ protected initOrUpdateLines() { const v = this.vertices; if (!this.lines || this.lines.length === 0) { const f = this.faces; if (!f) { throw Error("需要先初始化面!"); } this.lines = []; this.lines.push( new BoxLine([v[0], v[1]], [f[0], f[5]]), new BoxLine([v[1], v[2]], [f[0], f[3]]), new BoxLine([v[2], v[3]], [f[0], f[4]]), new BoxLine([v[3], v[0]], [f[0], f[2]]), new BoxLine([v[4], v[5]], [f[1], f[5]]), new BoxLine([v[5], v[6]], [f[1], f[3]]), new BoxLine([v[6], v[7]], [f[1], f[4]]), new BoxLine([v[7], v[4]], [f[1], f[2]]), new BoxLine([v[0], v[4]], [f[2], f[5]]), new BoxLine([v[1], v[5]], [f[3], f[5]]), new BoxLine([v[2], v[6]], [f[3], f[4]]), new BoxLine([v[3], v[7]], [f[2], f[4]]) ); this.group.add(...this.lines); } else { let i = 0; this.lines[i++].setFromPoints([v[0], v[1]]); this.lines[i++].setFromPoints([v[1], v[2]]); this.lines[i++].setFromPoints([v[2], v[3]]); this.lines[i++].setFromPoints([v[3], v[0]]); this.lines[i++].setFromPoints([v[4], v[5]]); this.lines[i++].setFromPoints([v[5], v[6]]); this.lines[i++].setFromPoints([v[6], v[7]]); this.lines[i++].setFromPoints([v[7], v[4]]); this.lines[i++].setFromPoints([v[0], v[4]]); this.lines[i++].setFromPoints([v[1], v[5]]); this.lines[i++].setFromPoints([v[2], v[6]]); this.lines[i++].setFromPoints([v[3], v[7]]); } } /** * 清除剖切盒 */ protected clearSectionBox() { this.viewer.scene.remove(this.group); this.domElement.style.cursor = ""; this.faces = []; this.lines = []; const setChildClippingPlanes = (child) => { if (["Mesh", "LineSegments"].includes(child.type)) { child.material.clippingPlanes = []; } } if (!this.lastSelected) { this.viewer.scene.traverseVisible(c => { setChildClippingPlanes(c); }) } else { if (isGroup(this.lastSelected)) { App.traverseMeshToArr(this.lastSelected).forEach(child => { setChildClippingPlanes(child) }) } else { setChildClippingPlanes(this.lastSelected) } } } // ------------------- 指针事件 ----------------------- protected raycaster: Raycaster = new Raycaster(); protected mousePosition: Vector2 = new Vector2(); // 鼠标悬停的面激活 protected activeFace: BoxFace | null = null; private addMouseListener() { this.domElement.addEventListener("pointermove", this.onMouseMove); this.domElement.addEventListener("pointerdown", this.onMouseDown); } private removeMouseListener() { this.domElement.removeEventListener("pointermove", this.onMouseMove); this.domElement.removeEventListener("pointerdown", this.onMouseDown); } /** * 转换鼠标坐标,并更新光线投射 */ protected updateMouseAndRay(event: MouseEvent) { this.mousePosition.setX((event.offsetX / this.domElement.offsetWidth) * 2 - 1); this.mousePosition.setY(-(event.offsetY / this.domElement.offsetHeight) * 2 + 1); this.raycaster.setFromCamera(this.mousePosition, this.viewer.camera); } /** * 处理鼠标移动事件,正确高亮相应的面/线 */ protected onMouseMove = (event: MouseEvent) => { this.updateMouseAndRay(event); const intersects = this.raycaster.intersectObjects(this.faces); // 鼠标和面相交 if (intersects.length) { this.domElement.style.cursor = "pointer"; const face = intersects[0].object as BoxFace; if (face !== this.activeFace) { if (this.activeFace) { this.activeFace.setActive(false); } face.setActive(true); this.activeFace = face; } } else { if (this.activeFace) { this.activeFace.setActive(false); this.activeFace = null; this.domElement.style.cursor = "auto"; } } }; /** * 处理鼠标按下事件,开始使用左键拖动一个面 */ protected onMouseDown = (event: MouseEvent) => { const isLeftButton = event.button === 0; if (this.activeFace && isLeftButton) { this.updateMouseAndRay(event); const intersects = this.raycaster.intersectObjects(this.faces); if (intersects.length) { const face = intersects[0].object as BoxFace; const axis = face.axis; const point = intersects[0].point; this.drag.start(axis, point); } } }; /** * 拖动对象,用于处理面裁剪操作 */ protected drag = { axis: "", // 要拖动的6轴之一 point: new Vector3(), // 记录拖动点的位置 ground: new Mesh(new PlaneGeometry(100000, 100000), new MeshBasicMaterial({ colorWrite: false, depthWrite: false })), start: (axis: string, point: Vector3) => { this.drag.axis = axis; this.drag.point = point; this.drag.initGround(); this.controls.enabled = false; this.domElement.style.cursor = "move"; this.domElement.removeEventListener("pointermove", this.onMouseMove); this.domElement.addEventListener("pointermove", this.drag.mousemove); this.domElement.addEventListener("pointerup", this.drag.mouseup); }, end: () => { this.viewer.scene.remove(this.drag.ground); this.controls.enabled = true; this.domElement.removeEventListener("pointermove", this.drag.mousemove); this.domElement.removeEventListener("pointerup", this.drag.mouseup); this.domElement.addEventListener("pointermove", this.onMouseMove); }, mousemove: (event: MouseEvent) => { this.updateMouseAndRay(event); const intersects = this.raycaster.intersectObject(this.drag.ground); // 鼠标与拖动地面的相交情况 if (intersects.length) { this.drag.updateSectionBox(intersects[0].point); } }, mouseup: () => { this.drag.end(); }, // 拖动时初始化参考平面,可以是XY, YZ, ZX平面 initGround: () => { const normals: any = { xLeft: new Vector3(-1, 0, 0), xRight: new Vector3(1, 0, 0), yDown: new Vector3(0, -1, 0), yUp: new Vector3(0, 1, 0), zBack: new Vector3(0, 0, -1), zFront: new Vector3(0, 0, 1) }; if (["xLeft", "xRight"].includes(this.drag.axis)) { this.drag.point.setX(0); } else if (["yDown", "yUp"].includes(this.drag.axis)) { this.drag.point.setY(0); } else if (["zBack", "zFront"].includes(this.drag.axis)) { this.drag.point.setZ(0); } this.drag.ground.position.copy(this.drag.point); const newNormal = this.viewer.camera.position.clone() .sub(this.viewer.camera.position.clone().projectOnVector(normals[this.drag.axis])) .add(this.drag.point); // 得到平面的法线 this.drag.ground.lookAt(newNormal); this.viewer.scene.add(this.drag.ground); }, // 更新裁剪盒子的位置 updateSectionBox: (point: Vector3) => { const minSize = ClippedEdgesBox.MIN_WIDTH; // 截面框的最小尺寸 switch (this.drag.axis) { case "yUp": // up this.boxMax.setY(Math.max(this.boxMin.y + minSize, point.y)); break; case "yDown": // down this.boxMin.setY(Math.min(this.boxMax.y - minSize, point.y)); break; case "xLeft": // left this.boxMin.setX(Math.min(this.boxMax.x - minSize, point.x)); break; case "xRight": // right this.boxMax.setX(Math.max(this.boxMin.x + minSize, point.x)); break; case "zFront": // front this.boxMax.setZ(Math.max(this.boxMin.z + minSize, point.z)); break; case "zBack": // back this.boxMin.setZ(Math.min(this.boxMax.z - minSize, point.z)); break; } // 更新剖切盒的平面、顶点、面和线 this.updatePlanes(); this.initOrUpdateVertices(); this.initOrUpdateFaces(); this.initOrUpdateLines(); useDispatchSignal("sceneGraphChanged"); } }; } /** * 剖切盒的BoxLine */ class BoxLine extends LineSegments { private normalMaterial = new LineBasicMaterial({color: 0x2ee3dc}); // 0x2ee3dc,线的正常颜色(原颜色:0xe1f2fb) private activeMaterial = new LineBasicMaterial({color: 0x00fdec}); // 0x00fdec,线的激活颜色(原始颜色:0x00ffff) /** * @param vertices 一条直线上的两点 * @param faces 相对于一条线的两个面 */ constructor(vertices: Array, faces: Array) { super(); faces.forEach(face => face.lines.push(this)); // 保存面与线之间的关系 this.geometry = new BufferGeometry(); this.geometry.setFromPoints(vertices); this.material = this.normalMaterial; } /** * 更新 geometry */ setFromPoints(vertices: Vector3[]) { this.geometry.setFromPoints(vertices); } /** * 设置为活动或非活动状态 * @param isActive */ setActive(isActive: boolean) { this.material = isActive ? this.activeMaterial : this.normalMaterial; } } /** * 剖切盒的BoxFace */ class BoxFace extends Mesh { axis: string; lines: Array = []; // 4条线相对于一个面 backFace: Mesh; // 背面:face的背面,用于显示 /** * @param axis 面的轴 * @param vertices 面的四个点 */ constructor(axis: string, vertices: Array) { super(); this.axis = axis; this.lines = []; this.geometry = new BufferGeometry(); this.geometry.setFromPoints(vertices); this.geometry.setIndex([0, 3, 2, 0, 2, 1]); this.geometry.computeVertexNormals(); this.material = new MeshBasicMaterial({colorWrite: false, depthWrite: false}); const backMaterial = new MeshBasicMaterial({color: 0x2ee3dc, transparent: true, opacity: 0.3, side: BackSide}); this.backFace = new Mesh(this.geometry, backMaterial); } /** * 更新geometry */ setFromPoints(vertices: Vector3[]) { this.geometry.setFromPoints(vertices); } /** * 设置为活动或非活动状态 * @param isActive */ setActive(isActive: boolean) { this.lines.forEach(line => { line.setActive(isActive) }); } } export {ClippedEdgesBox}; ================================================ FILE: packages/sdk/lib/core/tools/Export.ts ================================================ import {saveArrayBuffer, saveString, getAnimations, getAnimationClips} from '@/utils'; import App from "@/core/app/App"; class Export { constructor() { } /*********************************导出物体*******************************************/ //导出为JSON exportObjectToJSON() { if(!App.selected) return; const json = App.selected.toJSON(); let output:string; try { output = JSON.stringify(json, null, '\t'); output = output.replace(/[\n\t]+([\d\.e\-\[\]]+)/g, '$1'); } catch (e) { output = JSON.stringify(json); } saveString(output, 'Astral3DModel.json'); } // 导出为glb async exportObjectToGlb() { if(!App.selected) return; const animations = getAnimationClips(App.selected); const { GLTFExporter } = await import('three/examples/jsm/exporters/GLTFExporter.js'); const exporter = new GLTFExporter(); exporter.parse( App.selected, function (result) { saveArrayBuffer(result, 'Astral3DModel.glb'); }, (err) => { App.log.info(`导出物体为glb错误:${err.message}`) }, { binary: true, animations: animations } ); } //导出为gltf async exportObjectToGltf() { if(!App.selected) return; const animations = getAnimations(); const { GLTFExporter } = await import('three/examples/jsm/exporters/GLTFExporter.js'); const exporter = new GLTFExporter(); exporter.parse( App.selected, function (result) { saveString(JSON.stringify(result, null, 2), 'Astral3DModel.gltf'); }, () => { }, { animations: animations } ); } //导出为obj async exportObjectToObj() { if(!App.selected) return; const { OBJExporter } = await import('three/examples/jsm/exporters/OBJExporter.js'); const exporter = new OBJExporter(); saveString(exporter.parse(App.selected), 'Astral3DModel.obj'); } //导出为ply async exportObjectToPly() { if(!App.selected) return; const { PLYExporter } = await import('three/examples/jsm/exporters/PLYExporter.js'); const exporter = new PLYExporter(); exporter.parse( App.selected, function (result) { saveArrayBuffer(result, 'Astral3DModel.ply'); }, {} ); } // 导出为ply二进制 async exportObjectToPlyBinary() { if(!App.selected) return; const { PLYExporter } = await import('three/examples/jsm/exporters/PLYExporter.js'); const exporter = new PLYExporter(); exporter.parse( App.selected, function (result) { saveArrayBuffer(result, 'Astral3DModel-binary.ply'); }, { binary: true } ); } //导出为STL async exportObjectToStl() { if(!App.selected) return; const { STLExporter } = await import('three/examples/jsm/exporters/STLExporter.js'); const exporter = new STLExporter(); saveString(exporter.parse(App.selected), 'Astral3DModel.stl'); } //导出为STL(二进制) async exportObjectToStlBinary() { if(!App.selected) return; const { STLExporter } = await import('three/examples/jsm/exporters/STLExporter.js'); const exporter = new STLExporter(); saveArrayBuffer(exporter.parse(App.selected, { binary: true }), 'Astral3DModel-binary.stl'); } //导出为USDZ async exportObjectToUSDZ() { if(!App.selected) return; const { USDZExporter } = await import('three/examples/jsm/exporters/USDZExporter.js'); const exporter = new USDZExporter(); saveArrayBuffer(await exporter.parseAsync(App.selected, {}), 'Astral3DModel.usdz'); } /*********************************导出场景*******************************************/ //导出为JSON exportSceneToJSON() { const json = App.getSceneWithoutIgnore().toJSON(); let output:string; try { output = JSON.stringify(json, null, '\t'); output = output.replace(/[\n\t]+([\d\.e\-\[\]]+)/g, '$1'); } catch (e) { output = JSON.stringify(json); } saveString(output, 'Astral3DScene.json'); } // 导出为glb async exportSceneToGlb(){ const animations = getAnimationClips(); const { GLTFExporter } = await import('three/examples/jsm/exporters/GLTFExporter.js'); const exporter = new GLTFExporter(); exporter.parse( App.getSceneWithoutIgnore(), function (result) { saveArrayBuffer(result, 'Astral3DScene.glb'); }, () => { }, { binary: true, animations: animations } ); } //导出为gltf async exportSceneToGltf() { const animations = getAnimations(); const {GLTFExporter} = await import('three/examples/jsm/exporters/GLTFExporter.js'); const exporter = new GLTFExporter(); exporter.parse( App.getSceneWithoutIgnore(), function (result) { saveString(JSON.stringify(result, null, 2), 'Astral3DScene.gltf'); }, () => {}, {animations: animations} ); } //导出为obj async exportSceneToObj() { const { OBJExporter } = await import('three/examples/jsm/exporters/OBJExporter.js'); const exporter = new OBJExporter(); saveString(exporter.parse(App.getSceneWithoutIgnore()), 'Astral3DScene.obj'); } //导出为ply async exportSceneToPly() { const {PLYExporter} = await import('three/examples/jsm/exporters/PLYExporter.js'); const exporter = new PLYExporter(); exporter.parse( App.getSceneWithoutIgnore(), function (result) { saveArrayBuffer(result, 'Astral3DScene.ply'); }, {} ); } // 导出为ply二进制 async exportSceneToPlyBinary() { const {PLYExporter} = await import('three/examples/jsm/exporters/PLYExporter.js'); const exporter = new PLYExporter(); exporter.parse( App.getSceneWithoutIgnore(), function (result) { saveArrayBuffer(result, 'Astral3DScene-binary.ply'); }, {binary: true} ); } //导出为STL async exportSceneToStl() { const {STLExporter} = await import('three/examples/jsm/exporters/STLExporter.js'); const exporter = new STLExporter(); saveString(exporter.parse(App.getSceneWithoutIgnore()), 'Astral3DScene.stl'); } //导出为STL(二进制) async exportSceneToStlBinary() { const {STLExporter} = await import('three/examples/jsm/exporters/STLExporter.js'); const exporter = new STLExporter(); saveArrayBuffer(exporter.parse(App.getSceneWithoutIgnore(), { binary: true }), 'Astral3DScene-binary.stl'); } //导出为USDZ async exportSceneToUSDZ() { const {USDZExporter} = await import('three/examples/jsm/exporters/USDZExporter.js'); const exporter = new USDZExporter(); saveArrayBuffer(await exporter.parseAsync(App.getSceneWithoutIgnore(), {}), 'Astral3DScene.usdz'); } } export {Export}; ================================================ FILE: packages/sdk/lib/core/tools/Measure.ts ================================================ import * as THREE from "three"; import {CSS2DObject} from "three/examples/jsm/renderers/CSS2DRenderer.js"; import {useDispatchSignal} from "@/hooks"; import Viewer from "@/core/viewer/Viewer"; export interface MeasureEventMap{ /** * 完成绘制触发 */ complete: {object: THREE.Group}; } export enum MeasureMode { Distance = "Distance", Area = "Area", Angle = "Angle" } let pdFn, pmFn, puFn, kdFn; /** * Measure class */ class Measure extends THREE.EventDispatcher{ static LINE_MATERIAL = new THREE.LineBasicMaterial({ color: 0xE63C17, linewidth: 2, opacity: 0.9, transparent: true, side: THREE.DoubleSide, depthWrite: false, depthTest: false }); static MESH_MATERIAL = new THREE.MeshBasicMaterial({ color: 0x87cefa, transparent: true, opacity: 0.7, side: THREE.DoubleSide, depthWrite: false, depthTest: false }); // 标记点图片 static MARKER_TEXTURE = new URL(import.meta.env.BASE_URL + 'static/images/logo.png', import.meta.url).href; static MAX_DISTANCE = 500; //当相交物体的距离太远时,忽略它 static OBJ_NAME = "object_for_measure"; static LABEL_NAME = "label_for_measure"; public isCompleted = true; // 测量操作是否完成 public isClose = true; // 测量操作是否已关闭(全销毁) public mode: MeasureMode; protected scene: THREE.Scene; protected spriteMaterial?: THREE.SpriteMaterial; protected raycaster?: THREE.Raycaster; protected mouseMoved = false; protected polyline?: THREE.Line; // 用户在测量时绘制的线的当前实例 protected faces?: THREE.Mesh; // 用于测量面积的当前实例 protected curve?: THREE.Line; // 用弧线表示角度 protected tempPointMarker?: THREE.Sprite; // 用于存储临时点 protected tempLine?: THREE.Line; // 用于存储临时线条,用于在鼠标移动时绘制线条/区域/角度 protected tempLabel?: CSS2DObject; // 用于在鼠标移动时存储临时标签,只有测量距离时才有 protected pointArray: THREE.Vector3[] = []; // 存储点 protected lastClickTime?: number; //保存上次点击时间,以便检测双击事件 protected viewer:Viewer; // 所有测绘内容组 public measureGroup: THREE.Group; // 当前测绘内容组 protected group: THREE.Group; constructor(viewer:Viewer, mode: MeasureMode = MeasureMode.Distance) { super(); this.mode = mode; this.scene = viewer.scene; this.viewer = viewer; // 初始化group this.measureGroup = new THREE.Group(); this.measureGroup.name = `measure_group`; this.measureGroup.ignore = true; this.group = new THREE.Group(); this.scene.add(this.measureGroup); this.viewer.modules.dragControl.setMeasureInstance(this); } get domElement(): HTMLCanvasElement{ return this.viewer.renderer.domElement; } get canvas(): HTMLCanvasElement { return this.domElement as HTMLCanvasElement; } addEvent() { pdFn = this.mousedown.bind(this); this.canvas.addEventListener("pointerdown", pdFn); pmFn = this.mousemove.bind(this); this.canvas.addEventListener("pointermove", pmFn); puFn = this.mouseup.bind(this); this.canvas.addEventListener("pointerup", puFn); kdFn = this.keydown.bind(this); window.addEventListener("keydown", kdFn); } removeEvent() { this.canvas.removeEventListener("pointerdown", pdFn); pdFn = undefined; this.canvas.removeEventListener("pointermove", pmFn); pmFn = undefined; this.canvas.removeEventListener("pointerup", puFn); puFn = undefined; window.removeEventListener("keydown", kdFn); kdFn = undefined; } // 开始测量 open() { this.addEvent(); if (this.isClose) { this.raycaster = new THREE.Raycaster(); } // 重置 this.group = new THREE.Group(); this.group.name = `${Measure.OBJ_NAME}_group`; this.group.userData = { mode: this.mode } this.measureGroup.add(this.group); // 当次绘制点 this.pointArray = []; // 测量距离、面积和角度需要折线 this.polyline = this.createLine(); this.group.add(this.polyline as THREE.Object3D); if (this.mode === MeasureMode.Area) { this.faces = this.createFaces(); this.group.add(this.faces as THREE.Object3D); } this.isCompleted = false; this.isClose = false; this.domElement.style.cursor = "crosshair"; // 禁用拖拽控制器 this.viewer.modules.dragControl.dragControls.enabled = false; } // 重绘 redraw(point: THREE.Sprite) { // 当次绘制点 this.pointArray = []; (point.parent as THREE.Group).children.forEach(child => { switch (child.userData.type) { case "measure-marker": // 当前点正在操作,不加入 if(child.uuid !== point.uuid) { this.pointArray[child.userData.pointIndex] = child.userData.point; }else{ this.tempPointMarker = child as THREE.Sprite; } break; case "line": this.polyline = child as THREE.Line; this.tempLine = this.createLine(); this.scene.add(this.tempLine as THREE.Object3D); break; case "faces": this.faces = child as THREE.Mesh; break; case "curve": this.curve = child as THREE.Line; break; } }) // 重写move事件 pmFn = this.redrawMousemove.bind(this); this.canvas.addEventListener("pointermove", pmFn); this.group = point.parent as THREE.Group; this.isCompleted = false; this.mode = this.group.userData.mode; } /** * 结束测量,清空所有结果 */ clear() { this.removeEvent(); this.clearTemp(); this.measureGroup.children.forEach(g => { for (let i = g.children.length - 1; i >= 0; i--) { const c = g.children[i]; if(c.userData.type == "measure-marker"){ // 从拖拽控制器移除 this.viewer.modules.dragControl.setDragObjects([c], "remove"); } g.remove(c) } }) this.measureGroup.remove(...this.measureGroup.children); this.polyline = undefined; this.faces = undefined; this.curve = undefined; this.pointArray = []; this.raycaster = undefined; this.domElement.style.cursor = ""; this.isClose = true; useDispatchSignal("sceneGraphChanged") } /** * 新版本threejs中,BufferGeometry.setFromPoints方法不在支持添加点位置,需要手动设置顶点属性 */ setFromPoints(geo: THREE.BufferGeometry, points: THREE.Vector3[]){ const position:number[] = []; for ( let i = 0, l = points.length; i < l; i++) { const point = points[ i ]; position.push(point.x, point.y, point.z); } geo.setAttribute('position', new THREE.Float32BufferAttribute(position, 3)); } /** * 初始化点标记材料 */ initPointMarkerMaterial() { const markerTexture = new THREE.TextureLoader().load(Measure.MARKER_TEXTURE); this.spriteMaterial = new THREE.SpriteMaterial({ map: markerTexture, depthTest: false, // 深度测试 depthWrite: false, // 深度写入 sizeAttenuation: false, transparent: true, opacity: 0.9 }); } // 创建点标记 createPointMarker(position?: THREE.Vector3): THREE.Sprite { if (!this.spriteMaterial) { this.initPointMarkerMaterial(); } const p = position; const scale = 0.012; const obj = new THREE.Sprite(this.spriteMaterial); obj.scale.set(scale, scale, scale); if (p) { obj.position.set(p.x, p.y, p.z); } obj.name = Measure.OBJ_NAME; obj.userData = { mode: this.mode, type: "measure-marker", } return obj; } /** * Creates THREE.Line */ private createLine(): THREE.Line { const geom = new THREE.BufferGeometry(); const obj = new THREE.Line(geom, Measure.LINE_MATERIAL); obj.frustumCulled = false; obj.name = Measure.OBJ_NAME; obj.userData = { type: "line", } return obj; } /** * Creates THREE.Mesh */ private createFaces() { const geom = new THREE.BufferGeometry(); const obj = new THREE.Mesh(geom, Measure.MESH_MATERIAL); obj.frustumCulled = false; obj.name = Measure.OBJ_NAME; obj.userData = { // 将点存储到userData中 vertices: [], type: "faces", } return obj; } // 清除临时信息 clearTemp() { this.tempPointMarker && this.scene.remove(this.tempPointMarker); this.tempLine && this.scene.remove(this.tempLine as THREE.Object3D); this.tempLabel && this.scene.remove(this.tempLabel); this.tempPointMarker = undefined; this.tempLine = undefined; this.tempLabel = undefined; } // 完成绘制,不清空结果 complete() { if (this.isCompleted) return; useDispatchSignal("sceneGraphChanged") let clearPoints = false; let clearPolyline = false; // 为了测量面积,我们需要制作一个接近的表面,然后添加面积标签 const count = this.pointArray.length; if (this.mode === MeasureMode.Area && this.polyline) { if (count > 2) { const p0 = this.pointArray[0]; this.setFromPoints(this.polyline.geometry, [...this.pointArray, p0]); // 计算面积 const area = this.calculateArea(this.pointArray); const label = `${this.numberToString(area)} ${this.getUnitString()}`; const p = this.getBarycenter(this.pointArray); const labelObj = this.createLabel(label); labelObj.position.set(p.x, p.y, p.z); labelObj.element.innerHTML = label; this.group.add(labelObj); } else { clearPoints = true; clearPolyline = true; } } if (this.mode === MeasureMode.Distance) { if (count < 2) { clearPoints = true; } } if (this.mode === MeasureMode.Angle && this.polyline) { if (count >= 3) { const p0 = this.pointArray[0]; const p1 = this.pointArray[1]; const p2 = this.pointArray[2]; const dir0 = new THREE.Vector3(p0.x - p1.x, p0.y - p1.y, p0.z - p1.z).normalize(); const dir1 = this.getAngleBisector(p0, p1, p2); const dir2 = new THREE.Vector3(p2.x - p1.x, p2.y - p1.y, p2.z - p1.z).normalize(); const angle = this.calculateAngle(p0, p1, p2); const label = `${this.numberToString(angle)} ${this.getUnitString()}`; const distance = Math.min(p0.distanceTo(p1), p2.distanceTo(p1)); let d = distance * 0.3; // distance from label to p1 let p = p1.clone().add(new THREE.Vector3(dir1.x * d, dir1.y * d, dir1.z * d)); // label's position const labelObj = this.createLabel(label); labelObj.position.set(p.x, p.y, p.z); labelObj.element.innerHTML = label; this.group.add(labelObj); d = distance * 0.2; // 弧到p1的距离 p = p1.clone().add(new THREE.Vector3(dir1.x * d, dir1.y * d, dir1.z * d)); // 圆弧中间位置 const arcP0 = p1.clone().add(new THREE.Vector3(dir0.x * d, dir0.y * d, dir0.z * d)); const arcP2 = p1.clone().add(new THREE.Vector3(dir2.x * d, dir2.y * d, dir2.z * d)); this.curve = this.createCurve(arcP0, p, arcP2); // 添加弧 this.group.add(this.curve as THREE.Object3D); } else { clearPoints = true; clearPolyline = true; } } // 无效的情况,清除此次的无用的对象 if (clearPoints) { // 从this.measureGroup移除 this.measureGroup.remove(this.group); } if (clearPolyline && this.polyline) { this.group.remove(this.polyline as THREE.Object3D); this.polyline = undefined; } this.isCompleted = true; this.domElement.style.cursor = ""; this.clearTemp(); useDispatchSignal("sceneGraphChanged"); this.removeEvent(); // 启用拖拽控制器 this.viewer.modules.dragControl.dragControls.enabled = true; this.dispatchEvent({type:"complete",object:this.group}) } // 清除当前group label clearCurrentLabel() { for (let i = this.group.children.length - 1; i >=0 ; i--) { const c = this.group.children[i]; if(c.userData.type === "label"){ this.group.remove(c); } } } // 获取按下对应三维位置 getClosestIntersection(e: MouseEvent){ const _point = new THREE.Vector2(); _point.x = e.offsetX / this.viewer.renderer.domElement.offsetWidth; _point.y = e.offsetY / this.viewer.renderer.domElement.offsetHeight; const intersects = this.viewer.getIntersects(_point); if (intersects && intersects.length > 0) { if (intersects.length > 0 && intersects[0].distance < Measure.MAX_DISTANCE) { return intersects[0].point; } } return null; } // 重绘监听鼠标移动 redrawMousemove(e: MouseEvent) { let point = this.getClosestIntersection(e); if (!point && this.tempPointMarker) { this.tempPointMarker.position.set(this.tempPointMarker.userData.point.x, this.tempPointMarker.userData.point.y, this.tempPointMarker.userData.point.z); return; } if (!point || !this.tempPointMarker) return; // 在鼠标移动时绘制临时点 this.tempPointMarker.position.set(point.x, point.y, point.z); this.tempPointMarker.userData.point = point; // 当前点的索引 const cIndex = this.tempPointMarker.userData.pointIndex; // 移动时绘制临时线 if (this.pointArray.length > 0) { const line = this.tempLine || this.createLine(); const geom = line.geometry; let startPoint = this.pointArray[cIndex + 1]; let lastPoint = this.pointArray[cIndex - 1]; // 如果是面积测量,且当前点是最后一个点或者第一个点 // 则需要重置其中一个点,才能有两条线拖动效果 if(this.mode === MeasureMode.Area){ if(!lastPoint){ lastPoint = this.pointArray[this.pointArray.length - 1]; }else if(!startPoint){ startPoint = this.pointArray[0]; } } if (startPoint && lastPoint) { this.setFromPoints(geom, [lastPoint, point, startPoint]); } else { this.setFromPoints(geom,[startPoint || lastPoint, point]); } } } // 重绘完成 redrawComplete() { if(!this.tempPointMarker) return; const point = this.tempPointMarker.userData.point; this.pointArray[this.tempPointMarker.userData.pointIndex] = point; const count = this.pointArray.length; if (this.polyline) { this.setFromPoints(this.polyline.geometry,this.pointArray); // 如果是距离测量,则清除group中已有的label,再重新创建 if (this.mode === MeasureMode.Distance && count > 1) { this.clearCurrentLabel(); // 绘制label for (let i = 0; i < count - 1; i++) { const p0 = this.pointArray[i]; const p1 = this.pointArray[i + 1]; if(!p0 || !p1) continue; const dist = p0.distanceTo(p1); const label = `${this.numberToString(dist)} ${this.getUnitString()}`; const position = new THREE.Vector3((p0.x + p1.x) / 2, (p0.y + p1.y) / 2, (p0.z + p1.z) / 2); const labelObj = this.createLabel(label); labelObj.position.set(position.x, position.y, position.z); labelObj.element.innerHTML = label; this.group.add(labelObj); } } } // 面积测量 if (this.mode === MeasureMode.Area && this.faces) { const geom = this.faces.geometry as THREE.BufferGeometry; const vertices = this.faces.userData.vertices; // vertices.push(point); vertices[this.tempPointMarker.userData.pointIndex] = point; this.setFromPoints(geom,vertices); const len = vertices.length; if (len > 2) { const indexArray:number[] = []; for (let i = 1; i < len - 1; ++i) { indexArray.push(0, i, i + 1); } geom.setIndex(indexArray); geom.computeVertexNormals(); } // 移除原来的label,新的label会在complete中创建 this.clearCurrentLabel(); } // 角度测量 if (this.mode === MeasureMode.Angle && this.curve) { // 清除弧跟原来的label 会在complete中创建 this.group.remove(this.curve as THREE.Object3D); this.clearCurrentLabel(); } this.complete(); } mousedown = () => { this.mouseMoved = false; }; // 鼠标移动,创建对应的临时点与线 mousemove = (e: MouseEvent) => { if(this.isCompleted) return; this.mouseMoved = true; const point = this.getClosestIntersection(e); if (!point) { return; } // 在鼠标移动时绘制临时点 if (this.tempPointMarker) { this.tempPointMarker.position.set(point.x, point.y, point.z); } else { this.tempPointMarker = this.createPointMarker(point); this.scene.add(this.tempPointMarker); } // 移动时绘制临时线 if (this.pointArray.length > 0) { const p0 = this.pointArray[this.pointArray.length - 1]; // 获取最后一个点 const line = this.tempLine || this.createLine(); const geom = line.geometry; const startPoint = this.pointArray[0]; const lastPoint = this.pointArray[this.pointArray.length - 1]; if (this.mode === MeasureMode.Area) { this.setFromPoints(geom,[lastPoint, point, startPoint]); } else { this.setFromPoints(geom,[lastPoint, point]); } if (this.mode === MeasureMode.Distance) { const dist = p0.distanceTo(point); const label = `${this.numberToString(dist)} ${this.getUnitString()}`; const position = new THREE.Vector3((point.x + p0.x) / 2, (point.y + p0.y) / 2, (point.z + p0.z) / 2); this.addOrUpdateTempLabel(label, position); } // tempLine 只需添加到场景一次 if (!this.tempLine) { this.scene.add(line as THREE.Object3D); this.tempLine = line; } } useDispatchSignal("sceneGraphChanged") }; mouseup = (e: MouseEvent) => { // 如果mouseMoved是true,那么它可能在移动,而不是点击 if (!this.mouseMoved) { // 右键点击表示完成绘图操作 if (e.button === 2) { this.complete(); } else if (e.button === 0) { // 左键点击表示添加点 this.onMouseClicked(e); } } }; onMouseClicked = (e: MouseEvent) => { if (!this.raycaster || !this.viewer.camera || !this.scene || this.isCompleted) { return; } const point =this.getClosestIntersection(e); if (!point) { return; } // 双击触发两次点击事件,我们需要避免这里的第二次点击 const now = Date.now(); if (this.lastClickTime && (now - this.lastClickTime < 100)) return; this.lastClickTime = now; this.pointArray.push(point); const count = this.pointArray.length; const marker = this.createPointMarker(point); marker.userData.point = point; marker.userData.pointIndex = count - 1; this.group.add(marker); // 把点加入拖拽控制器 this.viewer.modules.dragControl.setDragObjects([marker], "push"); if (this.polyline) { this.setFromPoints(this.polyline.geometry, this.pointArray); if (this.tempLabel && count > 1) { const p0 = this.pointArray[count - 2]; this.tempLabel.position.set((p0.x + point.x) / 2, (p0.y + point.y) / 2, (p0.z + point.z) / 2); this.group.add(this.tempLabel); // 创建距离测量线时,此处的 临时label 将作为正式的使用,不在this.clearTemp()中清除,故置为undefined this.tempLabel = undefined; } } if (this.mode === MeasureMode.Area && this.faces) { const geom = this.faces.geometry as THREE.BufferGeometry; const vertices = this.faces.userData.vertices; vertices.push(point); this.setFromPoints(geom,vertices); const len = vertices.length; if (len > 2) { const indexArray:number[] = []; for (let i = 1; i < len - 1; ++i) { indexArray.push(0, i, i + 1); } geom.setIndex(indexArray); geom.computeVertexNormals(); this.clearCurrentLabel(); const p0 = this.pointArray[0]; this.setFromPoints(geom, [...this.pointArray, p0]); // 计算面积 const area = this.calculateArea(this.pointArray); const label = `${this.numberToString(area)} ${this.getUnitString()}`; const p = this.getBarycenter(this.pointArray); const labelObj = this.createLabel(label); labelObj.position.set(p.x, p.y, p.z); labelObj.element.innerHTML = label; this.group.add(labelObj); } } // 创建角度测量时,三个点完成 if (this.mode === MeasureMode.Angle && this.pointArray.length % 3 === 0) { this.complete(); } useDispatchSignal("sceneGraphChanged"); }; keydown = (e: KeyboardEvent) => { if (e.key === "Enter") { this.complete(); } }; /** * 添加或更新临时标签和位置 */ addOrUpdateTempLabel(label: string, position: THREE.Vector3) { if (!this.tempLabel) { this.tempLabel = this.createLabel(label); this.scene.add(this.tempLabel); } this.tempLabel.position.set(position.x, position.y, position.z); this.tempLabel.element.innerHTML = label; } /** * 创建标签 */ createLabel(text: string): CSS2DObject { const div = document.createElement("div"); div.className = 'css2dObjectLabel'; div.innerHTML = text; div.style.padding = "5px 8px"; div.style.color = "#fff"; div.style.fontSize = "14px"; div.style.position = "absolute"; div.style.backgroundColor = "rgba(25, 25, 25, 0.3)"; div.style.borderRadius = "12px"; div.style.top = "0px"; div.style.left = "0px"; // div.style.pointerEvents = 'none' //避免HTML元素影响场景的鼠标事件 const obj = new CSS2DObject(div); obj.name = Measure.LABEL_NAME; obj.userData = { type: "label" } return obj; } /** * 创建圆弧曲线以表示角度 */ createCurve(p0: THREE.Vector3, p1: THREE.Vector3, p2: THREE.Vector3) { const curve = new THREE.QuadraticBezierCurve3(p0, p1, p2); const points = curve.getPoints(4); const geometry = new THREE.BufferGeometry(); this.setFromPoints(geometry,points) const obj = new THREE.Line(geometry, Measure.LINE_MATERIAL); obj.name = Measure.OBJ_NAME; obj.userData = { type: "curve" } return obj; } /** * 计算区域 * TODO: 对于凹多边形,数值不对,需要修正 * @param points */ calculateArea(points: THREE.Vector3[]) { let area = 0; for (let i = 0, j = 1, k = 2; k < points.length; j++, k++) { const a = points[i].distanceTo(points[j]); const b = points[j].distanceTo(points[k]); const c = points[k].distanceTo(points[i]); const p = (a + b + c) / 2; area += Math.sqrt(p * (p - a) * (p - b) * (p - c)); } return area; } /** * 以度表示两条直线的夹角 */ calculateAngle(startPoint: THREE.Vector3, middlePoint: THREE.Vector3, endPoint: THREE.Vector3) { const p0 = startPoint; const p1 = middlePoint; const p2 = endPoint; const dir0 = new THREE.Vector3(p0.x - p1.x, p0.y - p1.y, p0.z - p1.z); const dir1 = new THREE.Vector3(p2.x - p1.x, p2.y - p1.y, p2.z - p1.z); const angle = dir0.angleTo(dir1); return angle * 180 / Math.PI; // convert to degree } /** * 获取两条线的角平分线 */ getAngleBisector(startPoint: THREE.Vector3, middlePoint: THREE.Vector3, endPoint: THREE.Vector3): THREE.Vector3 { const p0 = startPoint; const p1 = middlePoint; const p2 = endPoint; const dir0 = new THREE.Vector3(p0.x - p1.x, p0.y - p1.y, p0.z - p1.z).normalize(); const dir2 = new THREE.Vector3(p2.x - p1.x, p2.y - p1.y, p2.z - p1.z).normalize(); return new THREE.Vector3(dir0.x + dir2.x, dir0.y + dir2.y, dir0.z + dir2.z).normalize(); // the middle direction between dir0 and dir2 } /** * 得到点的重心 */ getBarycenter(points: THREE.Vector3[]): THREE.Vector3 { const l = points.length; let x = 0; let y = 0; let z = 0; points.forEach(p => { x += p.x; y += p.y; z += p.z }); return new THREE.Vector3(x / l, y / l, z / l); } /** * 获取距离、面积或角度的单位字符串 */ getUnitString() { if (this.mode === MeasureMode.Distance) return "m"; if (this.mode === MeasureMode.Area) return "m²"; if (this.mode === MeasureMode.Angle) return "°"; return ""; } /** * 将数字转换为具有适当分数数字的字符串 */ numberToString(num: number) { if (num < 0.0001) { return num.toString(); } let fractionDigits = 2; if (num < 0.01) { fractionDigits = 4; } else if (num < 0.1) { fractionDigits = 3; } return num.toFixed(fractionDigits); } dispose(): void { this.clear(); } } export {Measure}; ================================================ FILE: packages/sdk/lib/core/tools/MiniMap-20240823.ts ================================================ import * as THREE from "three"; import {MapControls} from "three/examples/jsm/controls/MapControls.js"; interface IMiniMapOptions { domElement?: HTMLElement; } let onPointerDownFn; export class MiniMap { private viewport; private mapControl: MapControls; private domElement: HTMLElement; private miniMapRenderer: THREE.WebGLRenderer; private miniMapCamera: THREE.PerspectiveCamera; raycaster = new THREE.Raycaster() constructor(viewport,options:IMiniMapOptions = {}) { this.viewport = viewport; this.domElement = options.domElement || this.createDomElement(); viewport.container.appendChild(this.domElement); const {renderer, camera} = this.init(); this.miniMapRenderer = renderer; this.miniMapCamera = camera; this.mapControl = this.initControls(); this.initEvent(); this.miniMapRenderer.setAnimationLoop(this.miniMapAnimation.bind(this)); } createDomElement(){ const domElement = document.createElement("div"); domElement.setAttribute("id", "es-3d-mini-map"); domElement.style.position = "absolute"; domElement.style.top = "10px"; domElement.style.right = "10px"; domElement.style.width = "250px"; domElement.style.height = "250px"; domElement.style.boxShadow = "0px 0px 5px #000"; return domElement; } /** * 为小地图准备专门的 渲染器 + 摄像机 */ init(){ const miniMapRenderer = new THREE.WebGLRenderer({antialias:true}); miniMapRenderer.setSize(this.domElement.clientWidth, this.domElement.clientHeight); this.domElement.appendChild(miniMapRenderer.domElement); miniMapRenderer.setClearColor(0xffffff); const miniMapCamera = new THREE.PerspectiveCamera( 45, this.domElement.clientWidth / this.domElement.clientHeight, 0.1, 1000 ) miniMapCamera.position.set(0, 50, 0) miniMapCamera.lookAt(0,0,0); return { renderer: miniMapRenderer, camera: miniMapCamera } } initControls() { const controls = new MapControls(this.miniMapCamera, this.miniMapRenderer.domElement); controls.enableDamping = true; controls.dampingFactor = 0.05; controls.enableZoom = false; return controls; } initEvent(){ onPointerDownFn = this.onPointerDown.bind(this); this.domElement.addEventListener("pointerdown", onPointerDownFn); } onPointerDown(e: PointerEvent){ const mousePosition = new THREE.Vector2() let x = e.offsetX let y = e.offsetY mousePosition.x = ((x / this.domElement.clientWidth) * 2) - 1; mousePosition.y = -((y / this.domElement.clientHeight) * 2) + 1; this.raycaster.setFromCamera(mousePosition, this.miniMapCamera); let intersections = this.raycaster.intersectObject(this.viewport.scene, true); if(intersections[0]){ const point = intersections[0].point; // this.miniMapCamera.position.set(point.x, 8, point.z); this.viewport.modules.controls.target.set(point.x, 0, point.z); } } miniMapAnimation(){ this.miniMapRenderer.render(this.viewport.scene, this.miniMapCamera) } update(){ this.mapControl.update(); } dispose(){ this.mapControl.dispose(); this.miniMapRenderer.dispose(); this.domElement.removeChild(this.miniMapRenderer.domElement); this.domElement.removeEventListener("pointerdown", onPointerDownFn); onPointerDownFn = null; } } ================================================ FILE: packages/sdk/lib/core/tools/MiniMap.ts ================================================ import {MathUtils, OrthographicCamera, PerspectiveCamera, Scene, WebGLRenderer,Object3D} from "three"; import Viewer from "@/core/viewer/Viewer"; interface IMiniMapOptions { mapSize: number, // 决定了摄像机看到的内容大小, mapSize * mapSize 大小内容 mapRenderSize: number, // 决定了小地图2D平面的大小 followTarget:Object3D, // 小地图画面主要跟随对象 isShow: boolean // 是否显示小地图 } class MiniMap { _miniMapCamera: OrthographicCamera | PerspectiveCamera | null = null; _miniMapRenderer: WebGLRenderer | null = null; _followTarget: Object3D; private scene: Scene; private sceneHelpers: Scene; private mapRenderSize: number; // @ts-ignore public dom: HTMLDivElement; isShow: boolean = false; constructor(viewer:Viewer, options:IMiniMapOptions) { this.scene = viewer.scene; this.sceneHelpers = viewer.sceneHelpers; this.mapRenderSize = options.mapRenderSize; this._followTarget = options.followTarget; this.isShow = options.isShow; if (!this.scene) { throw new Error("scene不能为空"); } if (!this._followTarget) { throw new Error("target不能为空,表示小地图画面主要跟随对象"); } this.dom = this.createDomElement(); viewer.container.appendChild(this.dom); // 初始化小地图相机 this._miniMapCamera = new OrthographicCamera( -options.mapSize / 2, options.mapSize / 2, options.mapSize / 2, -options.mapSize / 2, 1, 100 * 1000 ); // 更新地图相机位置和朝向 this.updateCamera(); } createDomElement() { // 初始化小地图渲染器 const mapRenderer = new WebGLRenderer({alpha: true}); mapRenderer.setSize(this.mapRenderSize, this.mapRenderSize); // mapRenderer.setClearColor(0x7d684f); mapRenderer.shadowMap.enabled = false; mapRenderer.autoClear = false; this._miniMapRenderer = mapRenderer; const pDiv = document.createElement("div"); pDiv.id = "es-3d-mini-map"; pDiv.style.position = "absolute"; pDiv.style.right = "10px"; pDiv.style.top = "10px"; pDiv.style.zIndex = "1001"; pDiv.style.border = "1px solid #FFF"; pDiv.style.background = "rgba(0, 0, 0, 0.40)"; pDiv.style.width = this.mapRenderSize - 100 + "px"; pDiv.style.height = this.mapRenderSize - 100 + "px"; pDiv.style.overflow = "hidden"; pDiv.style.display = this.isShow ? "block" : "none"; mapRenderer.domElement.style.transform = `rotateZ(0deg)`; mapRenderer.domElement.style.width = this.mapRenderSize + "px"; mapRenderer.domElement.style.height = this.mapRenderSize + "px"; mapRenderer.domElement.style.position = "absolute"; mapRenderer.domElement.style.left = "-50px"; mapRenderer.domElement.style.top = "-50px"; pDiv.appendChild(mapRenderer.domElement); return pDiv; } open(){ this.dom.style.display = "block"; this.isShow = true; } close(){ this.dom.style.display = "none"; this.isShow = false; } updateCamera() { // 更新小地图css旋转角度,与玩家同步 let targetRotateY = MathUtils.radToDeg(this._followTarget.rotation.y - Math.PI); (this._miniMapRenderer as WebGLRenderer).domElement.style.transform = `rotateZ(${targetRotateY}deg)`; // 更新地图相机位置和朝向 let targetPos = this._followTarget.position; (this._miniMapCamera as OrthographicCamera).position.set( targetPos.x, targetPos.y + 10, targetPos.z ); (this._miniMapCamera as OrthographicCamera).lookAt(targetPos.x, 2, targetPos.z); } update() { // 更新地图相机位置和朝向 this.updateCamera(); const renderer = this._miniMapRenderer as WebGLRenderer; renderer.autoClear = false; // 渲染小地图 renderer.render(this.scene, this._miniMapCamera as OrthographicCamera); renderer.render(this.sceneHelpers, this._miniMapCamera as OrthographicCamera); renderer.autoClear = true; } } export {MiniMap} ================================================ FILE: packages/sdk/lib/core/tools/ModelExplode.ts ================================================ /** * 模型爆炸展开 */ import * as THREE from 'three'; import {useDispatchSignal} from "@/hooks"; interface IModelExplodeData { // 爆炸方向 worldDir: THREE.Vector3; // 爆炸距离:mesh中心点到爆炸中心的距离 worldDistance:THREE.Vector3; // 原始坐标 originPosition:THREE.Vector3; // mesh中心 meshCenter:THREE.Vector3; // 爆炸中心 explodeCenter:THREE.Vector3; } class ModelExplode{ // 模型爆炸的展开数据 meshExplodeData = new Map>(); // 已执行模型爆炸未还原的模型 unrestoredModel:THREE.Object3D[] = []; constructor() { } /** * 计算模型爆炸的展开数据 */ computedExplodeData(model:THREE.Object3D):void{ if(!model) return; // 计算模型中心 const modelBox = new THREE.Box3(); modelBox.setFromObject(model); const explodeCenter = this.getWorldCenterPosition(modelBox); const meshBox = new THREE.Box3(); const dataMap:Map = new Map(); model.traverse((child) => { if(!child || !child.isMesh || child.isLine || child.isSprite) return; meshBox.setFromObject(child); const meshCenter = this.getWorldCenterPosition(meshBox); const worldDistance = new THREE.Vector3().subVectors(meshCenter,explodeCenter) const meshExplodeData:IModelExplodeData = { worldDir: worldDistance.clone().normalize(), worldDistance:worldDistance, originPosition:child.getWorldPosition(new THREE.Vector3()), meshCenter:meshCenter.clone(), explodeCenter:explodeCenter.clone(), } dataMap.set(child.uuid,meshExplodeData); }) this.meshExplodeData.set(model.uuid,dataMap); } getWorldCenterPosition(box:THREE.Box3,scalar = 0.5){ return new THREE.Vector3().addVectors(box.max,box.min).multiplyScalar(scalar); } explodeModel(model:THREE.Object3D,scalar:number = 0.5){ if(!this.meshExplodeData.has(model.uuid)){ this.computedExplodeData(model); } const dataMap = this.meshExplodeData.get(model.uuid); if(!dataMap) return; model.traverse((child) => { if(!dataMap.has(child.uuid)) return; const data = dataMap.get(child.uuid); if(!data) return; const distance = data.worldDir.clone().multiplyScalar(data.worldDistance.length() * scalar); const offset = new THREE.Vector3().subVectors(data.meshCenter,data.originPosition); const center = data.explodeCenter; const newPosition = new THREE.Vector3().copy(center).add(distance).sub(offset); const localPosition = child.parent?.worldToLocal(newPosition); if(localPosition){ child.position.copy(localPosition); } }) useDispatchSignal("sceneGraphChanged"); this.unrestoredModel.push(model); } // 还原 restore(){ this.unrestoredModel.forEach(model=>{ const dataMap = this.meshExplodeData.get(model.uuid); if(!dataMap) return; model.traverse((child) => { if(!dataMap.has(child.uuid)) return; const data = dataMap.get(child.uuid); if(!data) return; const _originPosition = child.parent?.worldToLocal(data.originPosition); if(_originPosition){ child.position.copy(_originPosition); } }) useDispatchSignal("sceneGraphChanged"); }) this.unrestoredModel = []; this.clear(); } clear(){ this.meshExplodeData.clear(); } } export {ModelExplode}; ================================================ FILE: packages/sdk/lib/core/tools/Roaming.ts ================================================ /** * @author ErSan * @email mlt131220@163.com * @date 2024/08/28 * @description 漫游类,使用BVH检测碰撞,人物模型必须包含动画:Enter,Idle, Walking, WalkingBackward,Jumping */ import * as THREE from 'three'; import CameraControls from 'camera-controls'; import * as BufferGeometryUtils from "three/examples/jsm/utils/BufferGeometryUtils.js"; import {RoundedBoxGeometry} from 'three/examples/jsm/geometries/RoundedBoxGeometry.js'; import {GenerateMeshBVHWorker} from '@/workers/bvh/GenerateMeshBVHWorker.js'; import {useDispatchSignal} from "@/hooks"; import {getMeshByInstancedMesh} from "@/utils"; import {RoamingStatus} from "./RoamingStatus"; import Loader from "@/core/loader/Loader"; import App from "@/core/app/App"; import Viewer from "@/core/viewer/Viewer"; import MergeGeometriesWorker from "@/workers/mergeGeometries.worker.ts?worker&url"; import {TYPED_ARRAYS} from "@/constant"; let keyDownFn, keyUpFn; class Roaming { private viewer: Viewer; private controls: CameraControls; group: THREE.Group; private collider: THREE.Mesh | undefined; // 碰撞器 private player: THREE.Mesh | undefined; // 碰撞胶囊体 person: THREE.Group | undefined; // 人物 private playerIsOnGround = true; private playerVelocity = new THREE.Vector3(); private gravity = -20; // 重力 private playerSpeed = 2.2; // 人物移动速度 playerInitPos = new THREE.Vector3(0, 0, 0); // 人物初始位置 private firstPerson = true; // 是否第一人称 // 按键监听 private fwdPressed = false; private bkdPressed = false; private lftPressed = false; private rgtPressed = false; private upVector = new THREE.Vector3(0, 1, 0); private tempVector = new THREE.Vector3(); private tempVector2 = new THREE.Vector3(); private tempBox = new THREE.Box3(); private tempMat = new THREE.Matrix4(); private tempSegment = new THREE.Line3(); public isRoaming = false; // 是否在漫游 mergeWorker: Worker; private generateMeshBVHWorker: GenerateMeshBVHWorker; private personStatus: RoamingStatus | null = null; constructor(viewer: Viewer) { this.viewer = viewer; this.controls = viewer.modules.controls; keyDownFn = this.keyDown.bind(this); window.addEventListener('keydown', keyDownFn); keyUpFn = this.keyUp.bind(this); window.addEventListener('keyup', keyUpFn); this.group = new THREE.Group(); this.group.name = "es-3d-roaming-group"; this.group.visible = false; this.group.ignore = true; this.mergeWorker = new Worker(MergeGeometriesWorker, {type: 'module'}); this.generateMeshBVHWorker = new GenerateMeshBVHWorker(); this.addPlayer(); } keyDown(e: KeyboardEvent) { if (!this.isRoaming || e.repeat) return; switch (e.code) { case 'KeyW': this.fwdPressed = true; this.personStatus?.setStatus("w", true); break; case 'KeyS': this.bkdPressed = true; this.personStatus?.setStatus("s", true); break; case 'KeyD': this.rgtPressed = true; this.personStatus?.setStatus("d", true); break; case 'KeyA': this.lftPressed = true; this.personStatus?.setStatus("a", true); break; case 'Space': if (this.personStatus?.keyDownStatus.space) return; if (this.playerIsOnGround) { // 跳跃动画有30FPS准备动作 setTimeout(() => { this.playerVelocity.y = 10.0; this.playerIsOnGround = false; }, (30 / App.FPS) * 1000) } this.personStatus?.setStatus("space", true); break; case "ShiftLeft": case "ShiftRight": if (this.personStatus?.isWalkingForward) { this.playerSpeed = 6; this.personStatus?.setStatus("shift", true); } break; case 'KeyV': // 切换第一/第三人称视角 this.firstPerson = !this.firstPerson; if (this.firstPerson) { //人称切换 // 第一人称 this.controls.maxPolarAngle = Math.PI / 2; this.controls.minDistance = 0.8; this.controls.maxDistance = 0.8; this.controls.distance = 0.8; } else { this.controls.maxPolarAngle = Math.PI / 2; this.controls.minDistance = 6; this.controls.maxDistance = 6; this.controls.distance = 6; } break; } } keyUp(e: KeyboardEvent) { if (!this.isRoaming || e.repeat) return; switch (e.code) { case 'KeyW': this.personStatus?.setStatus("w", false); this.fwdPressed = false; break; case 'KeyS': this.personStatus?.setStatus("s", false); this.bkdPressed = false; break; case 'KeyD': this.personStatus?.setStatus("d", false); this.rgtPressed = false; break; case 'KeyA': this.personStatus?.setStatus("a", false); this.lftPressed = false; break; case "ShiftLeft": case "ShiftRight": this.playerSpeed = 3; this.personStatus?.setStatus("shift", false); break; } } // 添加漫游所需人物模型 addPlayer(){ // 几何圆柱体 用于碰撞检测 const cylinder = new THREE.Mesh( new RoundedBoxGeometry(0.5, 1.7, 0.5, 10, 0.5), new THREE.MeshStandardMaterial() ) cylinder.geometry.translate(0, -0.6, 0); // @ts-ignore cylinder.capsuleInfo = { radius: 0.4, segment: new THREE.Line3(new THREE.Vector3(), new THREE.Vector3(0, -1.0, 0.0)) } cylinder.name = 'es-3d-roaming-cylinder'; cylinder.visible = false; this.player = cylinder; this.group.add(cylinder); this.reloadPerson(); } /** * 重置漫游人物模型 */ async reloadPerson() { // 加载人物模型glb const loader = await Loader.createGLTFLoader(); const done = (blob) => { // 加载人物模型Blob loader.loadAsync(URL.createObjectURL(blob)).then(result => { const person = result.scene as THREE.Group; person.name = "es-3d-roaming-player"; if(this.person){ person.matrix.copy(this.person.matrix); person.matrixWorld.copy(this.person.matrixWorld); this.person.removeFromParent(); } this.person = person; this.group.add(person); // 漫游人物动画状态机 if(this.personStatus){ this.personStatus.dispose(); } this.personStatus = new RoamingStatus(person, result.animations); }); } // 从本地DB读取人物模型 const playerConfig= App.config.getKey("roamingCharacter") App.storage.getModel(`player-${playerConfig}`).then((file: Blob | unknown) => { if (!file) { const playerGlbUrl = new URL(`${import.meta.env.BASE_URL}resource/model/${playerConfig}.glb`, import.meta.url).href; // 加载默认人物模型 fetch(playerGlbUrl).then(res => res.blob()).then(blob => { App.storage.setModel(`player-${playerConfig}`, blob) done(blob); }) } else { done(file); } }) } // 生成碰撞器环境 generateColliderEnvironment() { let mergedGeometry:any; const generateBVH = () => { return new Promise(resolve => { this.generateMeshBVHWorker.generate(mergedGeometry).then(bvh => { // @ts-ignore mergedGeometry.boundsTree = bvh; this.collider = new THREE.Mesh(mergedGeometry); // @ts-ignore this.collider.material.wireframe = false; this.collider.name = "astral-3d-roaming-collider"; this.collider.visible = false; // @ts-ignore this.group.add(this.collider); resolve(""); this.generateMeshBVHWorker.dispose(); }); this.viewer.scene.add(this.group); }) } const generateMergedGeometry = () => { return new Promise((resolve,reject) => { const cloneGeom = (me) => { const src = me.geometry; // 检查对应属性是否存在 if (!src || !src.attributes || !src.attributes.position) return; // 先得到“无索引”的Geometry,toNonIndexed不会改变原Geometry const noIndexGeom = src.index ? src.toNonIndexed() : src.clone(); let posAttr = noIndexGeom.attributes.position; let outGeom = new THREE.BufferGeometry(); // 交错缓冲区单独处理取出 if (posAttr.isInterleavedBufferAttribute) { const { data, itemSize, count, normalized, offset } = posAttr; const { array, stride } = data; const out = new TYPED_ARRAYS[array.constructor.name || 'Float32Array'](count * itemSize); for (let i = 0; i < count; i++) { const base = i * stride + offset; // 假设 itemSize 通常为 3(x,y,z),但这里写通用拷贝 for (let k = 0; k < itemSize; k++) { out[i * itemSize + k] = array[base + k]; } } posAttr = new THREE.BufferAttribute(out, itemSize, normalized); } else { // 普通 BufferAttribute,直接克隆即可 posAttr = posAttr.clone(); } // 仅保留position即可 outGeom.setAttribute('position', posAttr); // 手动纠正有些模型没有顶点索引的问题 outGeom.index = null; // 应用世界矩阵 outGeom.applyMatrix4(me.matrixWorld); this.mergeWorker.postMessage({ type: "push", // geometry: outGeom // 合并在容差范围内的具有相似属性的顶点 geometry: BufferGeometryUtils.mergeVertices(outGeom) }) } this.viewer.scene.traverseByCondition(c => { // 只合并网格 if (c.geometry) { // @ts-ignore if (!c.isInstancedMesh) { cloneGeom(c); } else { const meshes = getMeshByInstancedMesh(c as THREE.InstancedMesh); meshes.forEach((m: THREE.Mesh) => { cloneGeom(m); }); } } }, (c) => !c.ignore && c.visible) this.mergeWorker.postMessage({ type: "merge" }) this.mergeWorker.onmessage = (event) => { if(event.data.type === "error") { reject(event.data.message); return; } if (!event.data.geometry) return; mergedGeometry = event.data.geometry; mergedGeometry.__proto__ = THREE.BufferGeometry.prototype; mergedGeometry.index && (mergedGeometry.index.__proto__ = THREE.BufferAttribute.prototype); mergedGeometry.attributes.position.__proto__ = THREE.BufferAttribute.prototype; mergedGeometry.attributes.normal && (mergedGeometry.attributes.normal.__proto__ = THREE.BufferAttribute.prototype); // 删除uv属性 if (mergedGeometry.attributes.uv) { mergedGeometry.deleteAttribute("uv"); } generateBVH().then(() => { resolve(""); }); // 关闭 worker this.mergeWorker.terminate(); } }) } return generateMergedGeometry(); } // 重置人物位置 resetPlayer() { const player = this.player as THREE.Mesh; this.playerVelocity.set(0, 0, 0); player.position.copy(this.playerInitPos); // 播放模型进入动画 this.personStatus?.init(); const _target = new THREE.Vector3(); this.controls.getTarget(_target); this.viewer.camera.position.sub(_target); this.controls.setTarget(player.position.x, player.position.y + 2, player.position.z, false); this.controls.distance = this.firstPerson ? 0.8 : 6; this.viewer.camera.position.add(player.position); this.controls.update(0.016); } // 进入漫游 startRoaming() { if (this.isRoaming) return; this.group.visible = true; this.viewer.computedSceneBox3(); this.resetPlayer(); this.isRoaming = true; } // 退出漫游 exitRoaming(lastRoadCameraPos = new THREE.Vector3(1, 1, 1), lastRoadCameraTarget = new THREE.Vector3()) { this.group.visible = false; lastRoadCameraPos && this.controls.setPosition(lastRoadCameraPos.x, lastRoadCameraPos.y, lastRoadCameraPos.z, true); lastRoadCameraTarget && this.controls.setTarget(lastRoadCameraTarget.x, lastRoadCameraTarget.y, lastRoadCameraTarget.z, true); this.controls.maxPolarAngle = Math.PI; this.controls.minDistance = 0; this.controls.maxDistance = Infinity; this.controls.update(0.016); this.isRoaming = false; // 停用混合器上所有预定的动作 this.personStatus?.stopAllAction(); useDispatchSignal("sceneGraphChanged"); } render(delta: number) { if (!delta) return; const player = this.player as THREE.Object3D; // ========================= // 重力与竖直方向 // ========================= if (this.playerIsOnGround) { this.playerVelocity.y = delta * this.gravity; } else { this.playerVelocity.y += delta * this.gravity; } player.position.addScaledVector(this.playerVelocity, delta); // ========================= // 水平方向移动 // ========================= const angle = this.controls.azimuthAngle; if (this.fwdPressed) { this.tempVector.set(0, 0, -1).applyAxisAngle(this.upVector, angle); player.position.addScaledVector(this.tempVector, this.playerSpeed * delta); } if (this.bkdPressed) { this.tempVector.set(0, 0, 1).applyAxisAngle(this.upVector, angle); player.position.addScaledVector(this.tempVector, this.playerSpeed * delta); } if (this.lftPressed) { this.tempVector.set(-1, 0, 0).applyAxisAngle(this.upVector, angle); player.position.addScaledVector(this.tempVector, this.playerSpeed * delta); } if (this.rgtPressed) { this.tempVector.set(1, 0, 0).applyAxisAngle(this.upVector, angle); player.position.addScaledVector(this.tempVector, this.playerSpeed * delta); } player.updateMatrixWorld(); // ========================= // 碰撞检测 // ========================= // @ts-ignore const capsuleInfo = (player as any).capsuleInfo; const worldSegStart = capsuleInfo.segment.start.clone().applyMatrix4(player.matrixWorld); // 收集所有 collider mesh const colliders: THREE.Mesh[] = []; if (this.collider) colliders.push(this.collider); let chosenNewPositionWorld: THREE.Vector3 | null = null; let maxOffsetLen = -Infinity; for (const mesh of colliders) { if (!mesh.geometry?.boundsTree) continue; // 胶囊段:player.local → world → mesh.local this.tempMat.copy(mesh.matrixWorld).invert(); this.tempSegment.copy(capsuleInfo.segment); this.tempSegment.start.applyMatrix4(player.matrixWorld).applyMatrix4(this.tempMat); this.tempSegment.end.applyMatrix4(player.matrixWorld).applyMatrix4(this.tempMat); // AABB for shapecast this.tempBox.makeEmpty(); this.tempBox.expandByPoint(this.tempSegment.start); this.tempBox.expandByPoint(this.tempSegment.end); this.tempBox.min.addScalar(-capsuleInfo.radius); this.tempBox.max.addScalar(capsuleInfo.radius); // 执行 shapecast,会修改 this.tempSegment mesh.geometry.boundsTree.shapecast({ intersectsBounds: box => box.intersectsBox(this.tempBox), intersectsTriangle: tri => { // 检查三角形是否与胶囊相交,如果相交则调整胶囊位置。 const triPoint = this.tempVector; const capsulePoint = this.tempVector2; const distance = tri.closestPointToSegment(this.tempSegment, triPoint, capsulePoint); if (distance < (this.player as THREE.Object3D).capsuleInfo.radius) { const depth = (this.player as THREE.Object3D).capsuleInfo.radius - distance; const direction = capsulePoint.sub(triPoint).normalize(); this.tempSegment.start.addScaledVector(direction, depth); this.tempSegment.end.addScaledVector(direction, depth); } return false; } }); // 结果变回 world 空间 const adjustedWorld = this.tempSegment.start.clone().applyMatrix4(mesh.matrixWorld); const offsetLen = adjustedWorld.distanceTo(worldSegStart); if (offsetLen > maxOffsetLen) { maxOffsetLen = offsetLen; chosenNewPositionWorld = adjustedWorld; } } // 应用最终选择的位移 if (chosenNewPositionWorld) { const deltaVector = this.tempVector2.subVectors(chosenNewPositionWorld, player.position); this.playerIsOnGround = deltaVector.y > Math.abs(delta * this.playerVelocity.y * 0.25); const offset = Math.max(0.0, deltaVector.length() - 1e-5); deltaVector.normalize().multiplyScalar(offset); player.position.add(deltaVector); if (!this.playerIsOnGround) { deltaVector.normalize(); this.playerVelocity.addScaledVector(deltaVector, -deltaVector.dot(this.playerVelocity)); } else { this.playerVelocity.set(0, 0, 0); } } // ========================= // 相机调整 // ========================= const v = new THREE.Vector3(player.position.x, player.position.y + 0.2, player.position.z); const _target = new THREE.Vector3(); this.controls.getTarget(_target); this.viewer.camera.position.sub(_target); this.controls.setTarget(v.x, v.y, v.z, false); this.controls.distance = this.firstPerson ? 0.8 : 6; this.viewer.camera.position.add(v); this.controls.polarAngle = Math.PI / 2; // 人物模型位置跟随 if (this.person) { this.person.position.set(player.position.x, player.position.y - 1.415, player.position.z); } // 跌落检测 if (this.viewer.sceneBox3 && (this.viewer.sceneBox3.min.y - player.position.y > 15)) { requestAnimationFrame(() => this.resetPlayer()); } // 动画状态更新 this.personStatus?.update(delta); } dispose() { window.removeEventListener('keydown', keyDownFn); window.removeEventListener('keyup', keyUpFn); App.removeObject(this.group); this.personStatus?.dispose(); } } export {Roaming} ================================================ FILE: packages/sdk/lib/core/tools/RoamingStatus.ts ================================================ /** * @author ErSan * @email mlt131220@163.com * @date 2024/8/29 22:10 * @description 漫游的人物动画状态机 */ import * as THREE from "three"; export class RoamingStatus{ // 键盘按下状态 keyDownStatus = { w:false, s:false, a:false, d:false, shift:false, space:false } fadeTime = 0.2; person: THREE.Group; // 人物 mixer: THREE.AnimationMixer; // 动画混合器 private clipAction: { [s: string]: THREE.AnimationAction } = {}; // 动画 action constructor(person:THREE.Group,clips:THREE.AnimationClip[]) { this.person = person; this.mixer = new THREE.AnimationMixer(this.person); clips.forEach(clip => { this.clipAction[clip.name] = (this.mixer as THREE.AnimationMixer).clipAction(clip); }) this.mixer.addEventListener('loop', (e) => { switch (e.action.getClip().name){ case "Enter": this.fadeIn("Idle"); setTimeout(() => { this.clipAction.Enter.stop(); },200) break; case "Jumping": this.setStatus("space",false); break; } }); } init(){ this.clipAction.Idle.play(); } // 是否正在向前走 get isWalkingForward(){ return this.keyDownStatus.w || this.keyDownStatus.a || this.keyDownStatus.d; } setStatus(key:string,value: boolean){ this.keyDownStatus[key] = value; switch (key){ case "w": case "a": case "d": // 前进动画处理 if(!this.keyDownStatus.w && !this.keyDownStatus.a && !this.keyDownStatus.d){ this.fadeOut("Walking"); if(this.clipAction.Running.isRunning()){ this.keyDownStatus.shift = false; this.fadeOut("Running") } }else{ if(!this.clipAction.Walking.isRunning()){ this.fadeIn("Walking"); } } break; case "s": // 后退处理 if(value){ this.fadeIn("WalkingBackward"); }else{ this.fadeOut("WalkingBackward") } break; case "space": // 跳跃处理 if(value){ this.fadeIn("Jumping"); if(this.clipAction.Walking.isRunning()){ this.fadeOut("Walking") } if(this.clipAction.Running.isRunning()){ this.fadeOut("Running") } }else{ if(this.keyDownStatus.shift){ if(!this.clipAction.Running.isRunning()){ this.fadeIn("Running") } }else if(this.isWalkingForward){ if(!this.clipAction.Walking.isRunning()){ this.fadeIn("Walking") } } this.fadeOut("Jumping") } break; case "shift": if(value){ this.fadeIn("Running"); this.fadeOut("Walking") }else{ if(this.isWalkingForward){ if(!this.clipAction.Walking.isRunning()){ this.fadeIn("Walking"); this.fadeOut("Running"); } } } break; } if(!Object.values(this.keyDownStatus).includes(true)){ if(!this.clipAction.Idle.isRunning()){ this.fadeIn("Idle"); } }else{ if(this.clipAction.Idle.isRunning()){ this.fadeOut("Idle"); } } } fadeIn(name: string) { // if(!this.clipAction[name].isScheduled()){ // this.clipAction[name].reset(); // this.clipAction[name].play(); // } // // this.clipAction[name].fadeIn(this.fadeTime); this.clipAction[name].play(); } fadeOut(name:string){ // this.clipAction[name].fadeOut(this.fadeTime) // setTimeout(() => { // this.clipAction[name].stop(); // },this.fadeTime * 100) this.clipAction[name].stop(); } stopAllAction(){ // 停用混合器上所有预定的动作 this.mixer.stopAllAction(); } update(delta:number){ this.mixer.update(delta); // THREE.AnimationMixer loop事件不一定有用,此处添加一个检测 if(!this.clipAction.Jumping.isRunning() && this.keyDownStatus.space){ //console.log("THREE.AnimationMixer loop事件未生效,手动设置") this.keyDownStatus.space = false; } } dispose(){ this.stopAllAction(); } } ================================================ FILE: packages/sdk/lib/core/tools/index.ts ================================================ export {Roaming} from "./Roaming"; export {RoamingStatus} from "./RoamingStatus"; export {MiniMap} from "./MiniMap"; export {ClippedEdgesBox} from "./ClippedEdgesBox"; export {Measure,MeasureMode} from "./Measure"; export {Export} from "./Export"; export {ModelExplode} from "./ModelExplode"; ================================================ FILE: packages/sdk/lib/core/viewer/Viewer.ts ================================================ import * as THREE from 'three'; import CameraControls from 'camera-controls'; import {Timer} from 'three/examples/jsm/misc/Timer.js'; import {CSS2DRenderer} from "three/examples/jsm/renderers/CSS2DRenderer"; import {CSS3DRenderer} from "three/examples/jsm/renderers/CSS3DRenderer.js"; import {TransformControls} from "three/examples/jsm/controls/TransformControls.js"; import App from "../app/App"; import {ViewerOptions} from "./ViewerOptions"; import {PluginManager} from "@/core/plugin/plugin"; import { Helper, CameraManage, Effect, Weather, Signals, ParticleSystem, Drag, } from "./modules"; import {ShaderMaterialManager} from "@/core/shaderMaterial/ShaderMaterialManager"; import {deepAssign, deepEqual, getMousePosition, isEmptyObject, isNil, createDivContainer} from "@/utils"; import {useDispatchSignal} from "@/hooks"; import { AddObjectCommand, SetPositionCommand, SetRotationCommand, SetScaleCommand } from "@/core/commands/Commands"; import {Emitter} from '@/core/libs/three-nebula'; import ParticleEmitter from "@/core/objects/ParticleEmitter.ts"; import {ViewerPathTracer} from "@/core/viewer/ViewerPathTracer.ts"; import {Helper as ScriptHelper} from "../script"; import { Package } from "@/core/loader/Package.ts"; import { injectWasm } from "@/utils/wasm/inject.ts"; export interface ViewerEventMap { // 场景加载完成时执行,仅执行一次 loaded: {}; // 场景当前动画帧循环开始之前触发,每一帧执行一次 beforeAnimation: { delta: number }; // 场景当前动画帧循环完成之后立即触发,每一帧执行一次 afterAnimation: { delta: number, toBeRender: (_need: boolean) => void }; // 场景当前动画帧循环完成之后渲染之前触发,每一次渲染执行一次 beforeRender: { delta: number }; // 场景当前帧渲染完成之后触发,每一次渲染执行一次 afterRender: { delta: number }; // 场景销毁前调用,仅执行一次 beforeDestroy: {}; // 场景销毁后调用,仅执行一次 afterDestroy: {}; // 模型单击事件 onPick: { intersect: THREE.Intersection, object: THREE.Object3D }; // 模型双击事件 onDoubleClick: { intersect: THREE.Intersection, object: THREE.Object3D }; // 键盘按下事件(全局) onKeyDown: { event: KeyboardEvent }; // 键盘抬起事件(全局) onKeyUp: { event: KeyboardEvent }; //指针按下事件(全局) onPointerDown: { event: PointerEvent }; //指针抬起事件(全局) onPointerUp: { event: PointerEvent }; //指针移动事件(全局) onPointerMove: { event: PointerEvent }; //触屏按下事件(全局) onTouchStart: { event: TouchEvent }; //触屏释放事件(全局) onTouchEnd: { event: TouchEvent }; // 场景背景变更 onSceneBackgroundChange: { backgroundType: '' | 'Color' | 'Texture' | 'Equirectangular', background: null | THREE.Color | THREE.Texture } // 场景环境变更 onSceneEnvironmentChange: { environmentType: '' | 'Background' | 'Equirectangular' | 'ModelViewer', environment: null | THREE.Texture } } export interface ViewerModules { plugin: PluginManager, viewHelper: Helper, cameraManage: CameraManage, controls: CameraControls, transformControls?: TransformControls, effect: Effect, weather: Weather, registerSignal: Signals, shaderMaterialManager: ShaderMaterialManager, particleSystem: ParticleSystem, dragControl: Drag, } CameraControls.install({ THREE: { Vector2: THREE.Vector2, Vector3: THREE.Vector3, Vector4: THREE.Vector4, Quaternion: THREE.Quaternion, Matrix4: THREE.Matrix4, Spherical: THREE.Spherical, Box3: THREE.Box3, Sphere: THREE.Sphere, Raycaster: THREE.Raycaster, } }); const onDownPosition = new THREE.Vector2(); const onUpPosition = new THREE.Vector2(); const onDoubleClickPosition = new THREE.Vector2(); // 表示animate()函数被多次调用累积时间,用于限制FPS let timeStamp = 0; // 事件绑定 const Fn: any = { pointerdown: null, pointerup: null, pointermove: null, keydown: null, keyup: null, touchstart: null, dblclick: null, } // 脚本管理数据结构 type EventHandlers = { [eventName: string]: { [uuid: string]: Function[]; }; }; // 脚本中可写的所有事件 let events: EventHandlers = { loaded: {}, beforeAnimation: {}, afterAnimation: {}, beforeRender: {}, afterRender: {}, beforeDestroy: {}, afterDestroy: {}, onPick: {}, onDoubleClick: {}, onKeyDown: {}, onKeyUp: {}, onPointerDown: {}, onPointerUp: {}, onPointerMove: {}, onTouchStart: {}, onTouchEnd: {}, }; // UUID 到事件的映射 const uuidEventMap: Map> = new Map(); export default class Viewer extends THREE.EventDispatcher { public container: HTMLElement; public options: IViewerSetting; public renderer: THREE.WebGLRenderer; public camera: THREE.PerspectiveCamera; public scene: THREE.Scene; public sceneHelpers: THREE.Scene; public grid: THREE.Group | undefined; public box: THREE.Box3 = new THREE.Box3(); public selectionBox: THREE.Box3Helper; public raycaster: THREE.Raycaster; public pmremGenerator: THREE.PMREMGenerator | null = null; public pathtracer: ViewerPathTracer | undefined; public modules: ViewerModules; public package: Package; public css2DRenderer: CSS2DRenderer = new CSS2DRenderer(); public css3DRenderer: CSS3DRenderer = new CSS3DRenderer(); public timer = new Timer(); //整个主场景的box3 public sceneBox3 = new THREE.Box3(); constructor(options: IViewerSetting) { super(); App.viewer = this; this.container = options.container || createDivContainer(); this.options = ViewerOptions(); deepAssign(this.options, options); this.camera = App.camera; this.scene = App.scene; this.sceneHelpers = App.sceneHelpers; this.renderer = this.createEngine(); this.modules = this.initModules(); this.package = new Package(this); /** helpers **/ if (this.options.grid.enabled) { this.grid = new THREE.Group(); this.grid.ignore = true; this.initGrid(); this.scene.add(this.grid); } //选中时的包围框 this.selectionBox = new THREE.Box3Helper(this.box); (this.selectionBox.material as THREE.Material).depthTest = false; (this.selectionBox.material as THREE.Material).transparent = true; this.selectionBox.visible = false; this.sceneHelpers.add(this.selectionBox as THREE.Object3D); // 拾取对象 this.raycaster = new THREE.Raycaster(); //Raycaster 将只从它遇到的第一个对象中获取信息 this.raycaster.firstHitOnly = true; this.engineCreated(this.renderer); this.loadEnv(true); this.initEvent(); //监听视窗变化(节流) let timer: NodeJS.Timeout | null = null; const resizeObserver = new ResizeObserver(() => { if (timer) return; timer = setTimeout(() => { useDispatchSignal("sceneResize", this.container.offsetWidth, this.container.offsetHeight); timer = null; }, 16); }); resizeObserver.observe(this.container); /** * 注入engine的wasm,包含以下能力: * 1. 打包压缩及对应速度优化 */ injectWasm({ wasmUrl: new URL(import.meta.env.BASE_URL + 'static/wasm/Astral3DEngine.wasm', import.meta.url).href }).then(() => {}) useDispatchSignal("viewerInitCompleted", this); } /** * 获取编辑态配置 */ get edit(): IViewerEdit { return this.options.edit as IViewerEdit; } /** * 设置编辑态配置 * @param config */ set edit(config: IViewerEdit) { if (!config) return; if (deepEqual(config, this.options.edit)) return; deepAssign(this.options.edit, config); if (this.options.edit?.gizmo) { if (this.modules.transformControls) return; let objectPositionOnDown = new THREE.Vector3(); let objectRotationOnDown = new THREE.Euler(); let objectScaleOnDown = new THREE.Vector3(); const transformControls = new TransformControls(this.camera, this.container); transformControls.addEventListener("change", () => { const object = transformControls.object; if (object !== undefined) { this.box.setFromObject(object, true); useDispatchSignal("objectChanged", object); } this.render(); }); transformControls.addEventListener("mouseDown", () => { const object = transformControls.object as THREE.Object3D; objectPositionOnDown = object.position.clone(); objectRotationOnDown = object.rotation.clone(); objectScaleOnDown = object.scale.clone(); this.modules.controls.enabled = false; }); transformControls.addEventListener("mouseUp", () => { const object = transformControls.object as THREE.Object3D; if (object !== undefined) { switch (transformControls.getMode()) { case "translate": if (!objectPositionOnDown.equals(object.position)) { App.execute(new SetPositionCommand(object, object.position, objectPositionOnDown)); } break; case "rotate": if (!objectRotationOnDown.equals(object.rotation)) { App.execute(new SetRotationCommand(object, object.rotation, objectRotationOnDown)); } break; case "scale": if (!objectScaleOnDown.equals(object.scale)) { App.execute(new SetScaleCommand(object, object.scale, objectScaleOnDown)); } break; } } this.modules.controls.enabled = true; }); const gizmo = transformControls.getHelper(); this.sceneHelpers.add(gizmo); this.modules.transformControls = transformControls; } else { if (!this.modules.transformControls) return; const gizmo = this.modules.transformControls.getHelper(); this.sceneHelpers.remove(gizmo); this.modules.transformControls.dispose(); this.modules.transformControls = undefined; } // TODO 处理 this.options.edit?.helpers,以兼容只显示gizmo不显示helpers的情况 this.render(); } /** * 获取是否启用脚本运行 */ get enableScript() { return this.options.enableScript || false; } /** * 设置是否启用脚本运行 */ set enableScript(enable: boolean) { if (enable === this.enableScript) return; if (enable) { this.installScripts(); } else { this.unInstallScripts(); } } /** * 创建默认渲染引擎 */ createEngine() { const renderConfig = App.project.getKey("renderer"); const renderer = new THREE.WebGLRenderer({ antialias: renderConfig.antialias, alpha: true, preserveDrawingBuffer: false, powerPreference: "high-performance", }); renderer.autoClear = false; renderer.setClearColor(0x272727, 1); renderer.outputColorSpace = THREE.SRGBColorSpace; renderer.toneMapping = renderConfig.toneMapping; renderer.toneMappingExposure = renderConfig.toneMappingExposure; renderer.shadowMap.enabled = renderConfig.shadow.enabled; renderer.shadowMap.type = renderConfig.shadow.type; renderer.xr.enabled = App.project.getKey("xr"); this.modules && this.engineCreated(renderer); return renderer; } /** * 创建渲染引擎后 * @param newRenderer */ engineCreated(newRenderer: THREE.WebGLRenderer) { if (this.renderer && this.renderer !== newRenderer) { this.renderer.setAnimationLoop(null); this.renderer.dispose(); this.pmremGenerator?.dispose(); this.pmremGenerator = null; this.modules.controls.disconnect(); this.container.removeChild(this.renderer.domElement); this.modules.viewHelper.dispose(); } this.renderer = newRenderer; this.renderer.setAnimationLoop(this.animate.bind(this)); this.renderer.setPixelRatio(Math.max(Math.ceil(window.devicePixelRatio), 1)); this.renderer.setSize(this.container.offsetWidth, this.container.offsetHeight); if (this.scene.environment && this.scene.environment.isRenderTargetTexture) { useDispatchSignal("sceneEnvironmentChanged", "ModelViewer"); useDispatchSignal("sceneGraphChanged"); } this.pathtracer = new ViewerPathTracer(newRenderer); // 在container中最前面插入渲染器的dom元素 this.container.insertBefore(newRenderer.domElement, this.container.firstChild); // 控制器绑定 this.modules.controls.connect(newRenderer.domElement); // 初始化后处理 this.modules.effect.createComposer(); this.modules.viewHelper.init(); // 防止重复添加 if (this.css2DRenderer.domElement.parentNode !== this.container) { this.css2DRenderer.setSize(this.container.offsetWidth, this.container.offsetHeight); this.css2DRenderer.domElement.setAttribute("id", "astral-3d-css2DRenderer"); this.css2DRenderer.domElement.style.position = "absolute"; this.css2DRenderer.domElement.style.top = "0px"; this.css2DRenderer.domElement.style.pointerEvents = "none"; this.container.appendChild(this.css2DRenderer.domElement); } if (this.css3DRenderer.domElement.parentNode !== this.container) { this.css3DRenderer.setSize(this.container.offsetWidth, this.container.offsetHeight); this.css3DRenderer.domElement.setAttribute("id", "astral-3d-css3DRenderer"); this.css3DRenderer.domElement.style.position = "absolute"; this.css3DRenderer.domElement.style.top = "0px"; this.css3DRenderer.domElement.style.pointerEvents = "none"; this.container.appendChild(this.css3DRenderer.domElement); } useDispatchSignal("rendererUpdated"); } /** * 初始化网格 * @protected */ initGrid() { if (!this.grid) { this.grid = new THREE.Group(); this.grid.ignore = true; this.scene.add(this.grid); } if (this.grid.children.length > 0) { this.grid.children.forEach((child: THREE.Object3D) => { child.dispose(); }); this.grid.children = []; } const grid = new THREE.GridHelper( this.options.grid.row, this.options.grid.column, parseInt(App.config.getKey("mainColor").slice(1), 16), this.options.grid.color ); this.grid.add(grid); this.render(); } /** * 初始化功能模块 */ initModules() { const controls = new CameraControls(this.camera); controls.addEventListener("update", () => { useDispatchSignal("cameraChanged", this.camera, controls); }); const modules: ViewerModules = { // 插件系统 plugin: new PluginManager(), viewHelper: new Helper(this, controls), cameraManage: new CameraManage(this, controls), controls, effect: new Effect(this), weather: new Weather(this), // 注册signal registerSignal: new Signals(this), shaderMaterialManager: new ShaderMaterialManager(), // 粒子系统 particleSystem: new ParticleSystem(this), // 拖拽 dragControl: new Drag(this), }; if (this.edit?.enabled) { let objectPositionOnDown = new THREE.Vector3(); let objectRotationOnDown = new THREE.Euler(); let objectScaleOnDown = new THREE.Vector3(); const transformControls = new TransformControls(this.camera, this.container); transformControls.addEventListener("change", () => { const object = transformControls.object; if (object !== undefined) { this.box.setFromObject(object, true); useDispatchSignal("objectChanged", object); } this.render(); }); transformControls.addEventListener("mouseDown", () => { const object = transformControls.object as THREE.Object3D; objectPositionOnDown = object.position.clone(); objectRotationOnDown = object.rotation.clone(); objectScaleOnDown = object.scale.clone(); this.modules.controls.enabled = false; }); transformControls.addEventListener("mouseUp", () => { const object = transformControls.object as THREE.Object3D; if (object !== undefined) { switch (transformControls.getMode()) { case "translate": if (!objectPositionOnDown.equals(object.position)) { App.execute(new SetPositionCommand(object, object.position, objectPositionOnDown)); } break; case "rotate": if (!objectRotationOnDown.equals(object.rotation)) { App.execute(new SetRotationCommand(object, object.rotation, objectRotationOnDown)); } break; case "scale": if (!objectScaleOnDown.equals(object.scale)) { App.execute(new SetScaleCommand(object, object.scale, objectScaleOnDown)); } break; } } this.modules.controls.enabled = true; }); const gizmo = transformControls.getHelper(); this.sceneHelpers.add(gizmo); modules.transformControls = transformControls; } return modules; } /** * 加载默认环境和背景 */ loadEnv(setBg: boolean = true, onLoad?: (texture: THREE.Texture) => void, onError?: (error: Error) => void) { if (!this.options.hdr) return; App.resource.loadURLTexture( this.options.hdr, (texture: THREE.Texture) => { texture.mapping = THREE.EquirectangularReflectionMapping; this.scene.environment = texture; setBg && (this.scene.background = texture); useDispatchSignal("sceneGraphChanged"); onLoad && onLoad(texture); }, err => onError && onError(err) ); } /** * 初始化事件监听 */ initEvent() { Fn.pointerdown = this.onPointerDown.bind(this); this.container.addEventListener("pointerdown", Fn.pointerdown); Fn.pointermove = this.onPointerMove.bind(this); this.container.addEventListener("pointermove", Fn.pointermove); Fn.touchstart = this.onTouchStart.bind(this); this.container.addEventListener("touchstart", Fn.touchstart); Fn.dblclick = this.onDoubleClick.bind(this); this.container.addEventListener("dblclick", Fn.dblclick); } /** * 组装脚本(支持热更新) * @param uuids 传入此参数则仅组装此数组下Object.uuid的脚本 * @param filterName 传入此参数则仅组装此数组下Object.uuid的脚本中name匹配的脚本 */ installScripts(uuids?: string | string[], filterName: string = "") { if (!this.enableScript) return; // 注册 Helper const helper = new ScriptHelper(this.scene); // 定义注入的参数名 let scriptWrapParams = "THREE,helper,renderer,scene,camera,controls,timer,render"; // 定义返回的结构 const scriptWrapResultObj = {}; // 注入的函数绑定this const fns = { render: this.render.bind(this), }; // 拼接下方闭包函数返回的结构,即返回脚本中写的支持的事件函数 const validEvents = Object.keys(events); // 准备返回结构 validEvents.forEach(eventName => { scriptWrapParams += "," + eventName; scriptWrapResultObj[eventName] = eventName; }); // scriptWrapResultObj是json,会包含双引号,但是后面拼接闭包函数的返回结果里面不能有双引号,因为这些值都会解析为变量 const scriptWrapResult = JSON.stringify(scriptWrapResultObj).replace(/"/g, ""); // 处理特定 UUID(热更新) const processUuid = (uuid: string) => { // 先卸载旧脚本 this.uninstallScriptsByUuid(uuid, filterName); const object = this.scene.getObjectByProperty("uuid", uuid); if (!object) { App.log.warn(`[Script] 不存在uuid为${uuid}的对象`); return; } // 一个模型允许存在多个脚本 const scripts = App.scripts[uuid] || []; const uuidEvents = uuidEventMap.get(uuid) || new Map(); scripts.forEach(script => { // 如果存在需要按照name过滤 if (filterName && filterName !== script.name) return; const functions = new Function(scriptWrapParams, `${script.source}\nreturn ${scriptWrapResult};`).bind(object)( THREE, helper, this.renderer, this.scene, this.camera, this.modules.controls, this.timer, fns.render ); Object.entries(functions).forEach(([name, fn]) => { if (!fn || !validEvents.includes(name)) { if (fn && !validEvents.includes(name)) { App.log.warn(`[Script] 不支持的事件类型:${name}`); } return; } const boundFn = (e: any) => { const { type, target, ...params } = e; // 点击事件只分发给对应模型 if (["onPick", "onDoubleClick"].includes(name)) { const { intersect, object: _object } = params; if (_object.uuid !== object.uuid) return; (fn as Function).bind(object)(intersect as THREE.Intersection); } else { if (isEmptyObject(params)) { (fn as Function).bind(object)(); } else { (fn as Function).bind(object)(...Object.values(params)); } } }; // 添加到全局事件集合 if (!events[name][uuid]) events[name][uuid] = []; events[name][uuid].push(boundFn); // 添加到 UUID 事件映射 if (!uuidEvents.has(name)) uuidEvents.set(name, []); uuidEvents.get(name)!.push({ name: script.name, fn: boundFn, }); // 添加事件监听 this.addEventListener(name as keyof ViewerEventMap, boundFn); }); }); // 更新 UUID 映射 uuidEventMap.set(uuid, uuidEvents); }; // 处理指定 UUID 或全部 if (uuids) { (Array.isArray(uuids) ? uuids : [uuids]).forEach(processUuid); } else { Object.keys(App.scripts).forEach(processUuid); } if (!Fn.keydown) { Fn.keydown = (event: KeyboardEvent) => { this.dispatchEvent({ type: "onKeyDown", event }); }; window.addEventListener("keydown", Fn.keydown); Fn.keyup = (event: KeyboardEvent) => { this.dispatchEvent({ type: "onKeyUp", event }); }; window.addEventListener("keyup", Fn.keyup); } } /** * 按 object UUID 卸载脚本(热更新用) * @param uuid 传入此参数则仅卸载此Object.uuid的脚本 * @param filterName 传入此参数则仅卸载此Object.uuid的脚本中name匹配的脚本 */ uninstallScriptsByUuid(uuid: string, filterName: string = "") { if (!uuidEventMap.has(uuid)) return; const uuidEvents = uuidEventMap.get(uuid)!; const uuidEventsArray = Array.from(uuidEvents); for (let i = uuidEventsArray.length - 1; i >= 0; i--) { const [eventName, scripts] = uuidEventsArray[i]; // 移除事件监听 for (let i = scripts.length - 1; i >= 0; i--) { const sc = scripts[i]; if (filterName && filterName !== sc.name) continue; // @ts-ignore this.removeEventListener(eventName as keyof ViewerEventMap, sc.fn); // 从uuidEventMap 移除 scripts.splice(i, 1); if (scripts.length === 0) { uuidEvents.delete(eventName); } // 全局事件集合 const es = events[eventName][uuid]; // 移除相应函数 const ei = es.findIndex(f => f === sc.fn); if (ei !== -1) { es.splice(ei, 1); } if (es.length === 0) { delete events[eventName][uuid]; } } } // 清理 UUID 映射 if (Array.from(uuidEvents.keys()).length === 0) { uuidEventMap.delete(uuid); } } /** * 卸载所有脚本 */ unInstallScripts() { if (this.enableScript) return; // 直接遍历 UUID 映射,复杂度 O(n) uuidEventMap.forEach((_, uuid) => { this.uninstallScriptsByUuid(uuid); }); // 重置数据结构 uuidEventMap.clear(); Object.keys(events).forEach(event => { events[event] = {}; }); if (Fn.keydown) { window.removeEventListener("keydown", Fn.keydown); Fn.keydown = null; window.removeEventListener("keyup", Fn.keyup); Fn.keyup = null; } } /** * 加载离线场景包 */ loadOfflineScene() { // const requestConfig = App.config.getKey('request'); // const packageUrl = `${requestConfig.baseUrl}/${requestConfig.sceneId}`; } /** * 计算整个场景的Box3 */ computedSceneBox3() { this.sceneBox3.setFromObject(this.scene); } /** * 更新相机宽高比 */ updateAspectRatio() { for (const uuid in App.cameras) { const camera = App.cameras[uuid]; const aspect = this.container.offsetWidth / this.container.offsetHeight; if (camera.isPerspectiveCamera) { (camera).aspect = aspect; } camera.updateProjectionMatrix(); const cameraHelper = App.helpers[camera.id]; if (cameraHelper) cameraHelper.update(); } } /** * 获取射线选中 * @param point */ getIntersects(point: THREE.Vector2) { const mouse = new THREE.Vector2(); mouse.set(point.x * 2 - 1, -(point.y * 2) + 1); this.raycaster.setFromCamera(mouse, this.camera); const objects: THREE.Object3D[] = []; (App.locked ? App.locked : this.scene).traverseByCondition( child => { this.camera.layers.test(child.layers) && objects.push(child); }, child => !child.ignore && child.visible ); this.sceneHelpers.traverseVisible(child => { if (child.name === "picker") { this.camera.layers.test(child.layers) && objects.push(child); } }); // 粒子 this.modules.particleSystem.particlesGroup.traverse(child => { if (!this.camera.layers.test(child.layers)) return; if (child.children.length === 0) { if (App.locked) { child.proxy?.isAncestor(App.locked) && objects.push(child); } else { objects.push(child); } } }); return this.raycaster.intersectObjects(objects, false); } /** * 处理点击 */ handleClick() { if (onDownPosition.distanceTo(onUpPosition) === 0) { const intersects = this.getIntersects(onUpPosition); useDispatchSignal("intersectionsDetected", intersects); if (intersects.length > 0) { let object = intersects[0].object; if (object.proxy) { object = object.proxy; } this.dispatchEvent({ type: "onPick", intersect: intersects[0], object }); } this.render(); } } /** * 处理鼠标按下 * @param event */ onPointerDown(event: PointerEvent) { this.dispatchEvent({ type: "onPointerDown", event }); event.preventDefault(); const array = getMousePosition(this.container, event.clientX, event.clientY); onDownPosition.fromArray(array); Fn.pointerup = this.onPointerUp.bind(this); document.addEventListener("pointerup", Fn.pointerup); } /** * 处理鼠标抬起 * @param event */ onPointerUp(event: PointerEvent) { this.dispatchEvent({ type: "onPointerUp", event }); const array = getMousePosition(this.container, event.clientX, event.clientY); onUpPosition.fromArray(array); this.handleClick(); document.removeEventListener("pointerup", Fn.pointerup); Fn.pointerup = null; } /** * 处理鼠标移动 * @param event */ onPointerMove(event: PointerEvent) { this.dispatchEvent({ type: "onPointerMove", event }); } /** * 处理触屏按下 * @param event */ onTouchStart(event: TouchEvent) { this.dispatchEvent({ type: "onTouchStart", event }); const touch = event.changedTouches[0]; const array = getMousePosition(this.container, touch.clientX, touch.clientY); onDownPosition.fromArray(array); Fn.pointerup = this.onTouchEnd.bind(this); document.addEventListener("touchend", Fn.pointerup); } /** * 处理触屏释放 * @param event */ onTouchEnd(event: TouchEvent) { this.dispatchEvent({ type: "onTouchEnd", event }); const touch = event.changedTouches[0]; const array = getMousePosition(this.container, touch.clientX, touch.clientY); onUpPosition.fromArray(array); this.handleClick(); document.removeEventListener("touchend", Fn.pointerup); Fn.pointerup = null; } /** * 处理双击 * @param event */ onDoubleClick(event: PointerEvent) { const array = getMousePosition(this.container, event.clientX, event.clientY); onDoubleClickPosition.fromArray(array); const intersects = this.getIntersects(onDoubleClickPosition); if (intersects.length > 0) { let object = intersects[0].object; useDispatchSignal("objectFocused", object); if (object.proxy) { object = object.proxy; } this.dispatchEvent({ type: "onDoubleClick", intersect: intersects[0], object }); } } /** * 循环动画 */ animate() { this.timer.update(); const delta = this.timer.getDelta(); timeStamp += delta; if (timeStamp < App.singleFrameTime) return; this.dispatchEvent({ type: "beforeAnimation", delta: timeStamp }); let needRender = App.animationManager.update(timeStamp); if (needRender) { if (App.selected !== null && App.selected.animations.length > 0) { // 避免某些蒙皮网格的帧延迟效应(e.g. Michelle.glb) App.selected.updateWorldMatrix(false, true); if (!this.modules.effect.enabled) { // 选择框应反映当前动画状态 this.selectionBox.box.setFromObject(App.selected, true); } } } if (this.modules.controls.enabled && !this.modules.viewHelper.animating) { needRender = this.modules.controls.update(timeStamp) || needRender; } if (this.modules.weather.update(timeStamp)) { needRender = true; } this.modules.shaderMaterialManager.update(); if (this.modules.shaderMaterialManager.needRender) { needRender = true; } this.modules.particleSystem.update(timeStamp); if (this.modules.particleSystem.needsUpdate) { needRender = true; } if (this.modules.dragControl.isDragging) { needRender = true; } if (this.renderer?.xr.isPresenting) { needRender = true; } this.dispatchEvent({ type: "afterAnimation", delta: timeStamp, toBeRender: (_needRender: boolean = false) => { needRender = _needRender; }, }); if (needRender) this.render(timeStamp); this.updatePT(); // console.log(`调用.animate时间间隔${timeStamp*1000}毫秒,delta:${delta}`); // 剩余的时间合并进入下次的判断计算 timeStamp = App.singleFrameTime ? timeStamp % App.singleFrameTime : 0; } /** * 初始化光线路径追踪模拟 */ initPT() { if (App.viewportShading === "realistic") { this.pathtracer?.init(this.scene, this.camera); } } updatePTBackground() { if (App.viewportShading === "realistic") { this.pathtracer?.setBackground(); } } updatePTEnvironment() { if (App.viewportShading === "realistic") { this.pathtracer?.setEnvironment(); } } updatePTMaterials() { if (App.viewportShading === "realistic") { this.pathtracer?.updateMaterials(); } } updatePT() { if (App.viewportShading === "realistic") { this.pathtracer?.update(); useDispatchSignal("pathTracerUpdated", this.pathtracer?.getSamples()); } } /** * 渲染场景帧 */ render(delta?: number) { if (!this.renderer) return; if (isNil(delta)) { delta = this.timer.getDelta(); } const startTime = performance.now(); this.dispatchEvent({ type: "beforeRender", delta: delta }); this.renderer.clearDepth(); App.csm.update(); if (this.modules.effect.enabled) { this.modules.effect.render(delta); } else { this.renderer.render(this.scene, App.viewportCamera); } // 非默认相机不渲染辅助 if (this.camera === App.viewportCamera) { if (this.options.edit?.enabled) this.renderer.render(this.sceneHelpers, this.camera); } this.css2DRenderer.render(this.scene, App.viewportCamera); this.css3DRenderer.render(this.scene, App.viewportCamera); this.modules.viewHelper.render(); this.dispatchEvent({ type: "afterRender", delta: delta }); const endTime = performance.now(); // 计算帧时 const fs = endTime - startTime; useDispatchSignal("sceneRendered", fs); } /** * 销毁 */ dispose() { this.dispatchEvent({ type: "beforeDestroy" }); this.container.removeEventListener("mousedown", Fn.mousedown); Fn.mousedown = null; this.container.removeEventListener("pointermove", Fn.pointermove); Fn.pointermove = null; this.container.removeEventListener("touchstart", Fn.touchstart); Fn.touchstart = null; this.container.removeEventListener("dblclick", Fn.dblclick); Fn.dblclick = null; Object.keys(this.modules).forEach(key => { if (this.modules[key].dispose) { this.modules[key].dispose(); } }); this.dispatchEvent({ type: "afterDestroy" }); this.unInstallScripts(); } /* -----------------暂时放在Viewer下的工具方法-------------------- */ /** * 添加粒子 * @emitter 粒子发射器 * @body 粒子主体 */ addParticle(emitter: Emitter, body: THREE.Sprite | THREE.Mesh, name: string = "Particles") { const particleEmitter = new ParticleEmitter(emitter); particleEmitter.name = name; ParticleSystem.Body3DMap.set(particleEmitter.uuid, body); this.modules.particleSystem.spriteSystem.addEmitter(emitter); App.execute(new AddObjectCommand(particleEmitter)); } /** * 获取画布的截屏图片 * @returns Promise 截屏的图片对象 */ getViewportImage() { return new Promise((resolve, rejcet) => { // @ts-ignore const _preserveDrawingBuffer = this.renderer.getContext().preserveDrawingBuffer; // @ts-ignore this.renderer.getContext().preserveDrawingBuffer = true; this.modules.viewHelper.hidden = false; this.render(); this.renderer.domElement.toBlob(blob => { if (blob === null) { rejcet("Screenshots fail"); return; } const image = new Image(); image.src = URL.createObjectURL(blob); // @ts-ignore this.renderer.getContext().preserveDrawingBuffer = _preserveDrawingBuffer; this.modules.viewHelper.hidden = true; this.render(); resolve(image); }); }); } } ================================================ FILE: packages/sdk/lib/core/viewer/ViewerOptions.ts ================================================ export const ViewerOptions = (): IViewerSetting => ({ // 场景canvas容器 container: undefined, // 场景背景及环境贴图 hdr: undefined, // 编辑模式 edit: { // 是否启用 enabled: false, // 是否显示辅助线 helpers: true, // 是否现实gizmo三坐标轴 gizmo: true }, // 是否启用脚本,自动运行脚本 enableScript: true, // 请求相关 request:{ baseUrl:"" }, // 场景内网格 grid:{ // 是否启用 enabled: true, // 网格颜色 color: 0x999999, // 网格行数 row: 100, // 网格列数 column:100, }, // 相机控制器 control: { minAzimuthAngle: -Infinity, maxAzimuthAngle: Infinity, minDistance: 0.0, maxDistance: Infinity, maxPolarAngle: Math.PI, minPolarAngle: 0, maxZoom:Infinity, minZoom:0.01, dollySpeed:1, // 缩放是否以鼠标位置为中心 dollyToCursor: false, } }) ================================================ FILE: packages/sdk/lib/core/viewer/ViewerPathTracer.ts ================================================ import * as THREE from 'three'; import { WebGLPathTracer } from 'three-gpu-pathtracer'; class ViewerPathTracer { private readonly renderer: THREE.WebGLRenderer; pathTracer:WebGLPathTracer | null = null; constructor(renderer:THREE.WebGLRenderer) { this.renderer = renderer; } init(scene:THREE.Scene, camera:THREE.Camera) { if (this.pathTracer === null ) { this.pathTracer = new WebGLPathTracer(this.renderer); this.pathTracer.filterGlossyFactor = 0.5; } this.pathTracer.setScene(scene, camera); } setSize() { if (this.pathTracer === null) return; // 路径跟踪器大小会根据画布自动更新 this.pathTracer.updateCamera(); } setBackground() { if (this.pathTracer === null) return; // 根据初始化的场景字段更新环境设置 this.pathTracer.updateEnvironment(); } setEnvironment() { if (this.pathTracer === null) return; this.pathTracer.updateEnvironment(); } updateMaterials() { if (this.pathTracer === null) return; this.pathTracer.updateMaterials(); } update() { if (this.pathTracer === null) return; this.pathTracer.renderSample(); } reset() { if (this.pathTracer === null) return; this.pathTracer.updateCamera(); } getSamples() { if (this.pathTracer === null) return; return this.pathTracer.samples; } } export { ViewerPathTracer }; ================================================ FILE: packages/sdk/lib/core/viewer/modules/CameraManage.ts ================================================ import * as THREE from "three"; import CameraControls from "camera-controls"; import Viewer from "../Viewer" /** * @author ErSan * @email mlt131220@163.com * @date 2024/10/21 21:16 * @description 场景相机管理器。 TODO: 后续应把viewport.camera也管理进来 */ export class CameraManage { private readonly viewer: Viewer; /** * 默认交互相机参数 */ options: {}; private readonly controls: CameraControls; constructor(viewer:Viewer,cameraControls:CameraControls) { this.viewer = viewer; this.controls = cameraControls; this.options = this.viewer.options.control; this.init(); } init(){ this.setInteract(this.options); } /** * 设置交互模式 */ setInteract(config){ const opt = Object.assign({}, this.options, config); Object.keys(opt).forEach(key => { if(this.controls[key] !== undefined){ this.controls[key] = opt[key]; } }) } /** * 前视图 * @description 以z轴方向为正前方 */ front() { return new Promise((resolve, reject) => { try { this.setInteract({ minAzimuthAngle: 0, maxAzimuthAngle: 0, minPolarAngle: Math.PI / 2, maxPolarAngle: Math.PI / 2, }) this.controls.rotateTo(THREE.MathUtils.degToRad(0), THREE.MathUtils.degToRad(90), true).then(() => { this.controls.fitToSphere(this.viewer.scene, true); }) resolve(this.viewer.camera); } catch (e) { reject(e) } }) } /** * 后视图 * @description -z方向 */ rear() { return new Promise((resolve, reject) => { try { this.setInteract({ minAzimuthAngle: -Math.PI, maxAzimuthAngle: -Math.PI, minPolarAngle: Math.PI / 2, maxPolarAngle: Math.PI / 2, }); this.controls.rotateTo(THREE.MathUtils.degToRad(-180), THREE.MathUtils.degToRad(90), true).then(() => { this.controls.fitToSphere(this.viewer.scene, true); }) resolve(this.viewer.camera); } catch (e) { reject(e) } }) } /** * 左视图 * @description -x方向 */ left() { return new Promise((resolve, reject) => { try { this.setInteract({ minAzimuthAngle: -Math.PI / 2, maxAzimuthAngle: -Math.PI / 2, minPolarAngle: Math.PI / 2, maxPolarAngle: Math.PI / 2, }); this.controls.rotateTo(THREE.MathUtils.degToRad(-180), THREE.MathUtils.degToRad(180), true).then(() => { this.controls.fitToSphere(this.viewer.scene, true); }) resolve(this.viewer.camera); } catch (e) { reject(e) } }) } /** * 右视图 * @description x方向 */ right() { return new Promise((resolve, reject) => { try { this.setInteract({ minAzimuthAngle: Math.PI / 2, maxAzimuthAngle: Math.PI / 2, minPolarAngle: Math.PI / 2, maxPolarAngle: Math.PI / 2 }); this.controls.rotateTo(THREE.MathUtils.degToRad(180), THREE.MathUtils.degToRad(180), true).then(() => { this.controls.fitToSphere(this.viewer.scene, true); }) resolve(this.viewer.camera); } catch (e) { reject(e) } }) } /** * 顶视图 * @description y方向 */ top() { return new Promise((resolve, reject) => { try { this.setInteract({ minAzimuthAngle: -Infinity, maxAzimuthAngle: Infinity, minPolarAngle: 0, maxPolarAngle: 0, }) this.controls.rotatePolarTo(0,true).then(() => { this.controls.fitToSphere(this.viewer.scene, true); }); resolve(this.viewer.camera); } catch (e) { reject(e) } }) } /** * 底视图 * @description -y方向 */ bottom() { return new Promise((resolve, reject) => { try { this.setInteract({ minAzimuthAngle: -Infinity, maxAzimuthAngle: Infinity, minPolarAngle: Math.PI, maxPolarAngle: Math.PI, }); this.controls.rotatePolarTo(Math.PI,true).then(() => { this.controls.fitToSphere(this.viewer.scene, true); }); resolve(this.viewer.camera); } catch (e) { reject(e) } }) } } ================================================ FILE: packages/sdk/lib/core/viewer/modules/Drag.ts ================================================ import * as THREE from "three"; import {DragControls} from '@/core/controls/DragControls.js'; import {useDispatchSignal} from "@/hooks"; import Viewer from "../Viewer"; import App from "@/core/app/App"; import {Measure} from "@/core/tools"; // dragControls 绑定函数 let dragStartFn,dragFn, dragEndFn,clickblankFn; class Drag { protected _dragObjects: THREE.Object3D[] = []; // 拖拽对象 public dragControls: any; private onDownPosition: { x: number; y: number } = {x:-1,y:-1}; public viewer:Viewer; public measureInstance:Measure | null = null; public isDragging = false; constructor(viewer:Viewer) { this.viewer = viewer; // 物体拖拽控制器 this.dragControls = new DragControls(this._dragObjects, viewer.camera, viewer.renderer.domElement); this.dragControls.deactivate(); // 默认禁用 dragStartFn = this.dragControlsStart.bind(this); this.dragControls.addEventListener("dragstart", dragStartFn); dragFn = this.drag.bind(this); this.dragControls.addEventListener("drag", dragFn); dragEndFn = this.dragControlsEnd.bind(this); this.dragControls.addEventListener("dragend", dragEndFn); // 点击可拖拽物体之外 clickblankFn = this.clickblank.bind(this); this.dragControls.addEventListener("clickblank", clickblankFn); } set domElement(element: HTMLElement) { this.dragControls.setDomElement(element); } setMeasureInstance(measureInstance: Measure) { this.measureInstance = measureInstance; } setDragObjects(objects: THREE.Object3D[], type: "eq" | "push" | "remove" = "eq") { // 当前拖拽对象为空时加入对象需激活控制器 if (this._dragObjects.length === 0) { if (objects.length > 0) { this.dragControls.activate(); } this._dragObjects = objects; } else { // 当前拖拽对象不为空时 if (type === "eq") { // 是清空拖拽对象的设置,则禁用控制器 if (objects.length === 0) { this.dragControls.deactivate(); } this._dragObjects = objects; } else if (type === "push") { this._dragObjects.push(...objects); } else if (type === "remove") { this._dragObjects = this._dragObjects.filter((item) => !objects.includes(item)); } } this.dragControls.setObjects(this._dragObjects) } // 拖拽开始 dragControlsStart(e) { // 右键拖拽不响应 if(e.e.button === 2 || !e.object.userData.type || !e.object.visible || !App.sceneHelpers.visible) return; e.e.preventDefault(); // 拖拽时禁用其他控制器 this.viewer.modules.controls.enabled = false; this.viewer.modules.transformControls && (this.viewer.modules.transformControls.enabled = false); this.isDragging = true; // 记录拖拽按下的位置和对象 this.onDownPosition = {x: e.e.clientX, y: e.e.clientY}; switch (e.object.userData.type) { case "measure-marker": this.measureInstance?.redraw(e.object); break; } } // 拖拽中 drag(e) { useDispatchSignal("objectChanged", e.object) } // 拖拽结束 dragControlsEnd(e) { // 右键拖拽不响应 if(e.e.button === 2 || !e.object.visible || !App.sceneHelpers.visible) return; // 拖拽结束启用其他控制器 this.viewer.modules.controls.enabled = true; this.viewer.modules.transformControls && (this.viewer.modules.transformControls.enabled = true); this.isDragging = false; if (!e.object.userData.type) return; // 判断位置是否有变化,没有变化则为点击 if(this.onDownPosition.x === e.e.clientX && this.onDownPosition.y === e.e.clientY) { if(e.object.userData.onClick){ e.object.userData.onClick(e); } } switch (e.object.userData.type) { case "measure-marker": this.measureInstance?.redrawComplete(); break; } } // 点击可拖拽物体之外 clickblank(e){ if (e.e.button === 2) return; } dispose() { this._dragObjects = []; this.dragControls.removeEventListener("dragstart", dragStartFn); this.dragControls.removeEventListener("dragend", dragEndFn); this.dragControls.dispose(); } } export {Drag}; ================================================ FILE: packages/sdk/lib/core/viewer/modules/Effect.ts ================================================ /** * @author ErSan * @email mlt131220@163.com * @date 2024/10/26 18:27 * @description 后处理 */ import * as THREE from "three"; import {EffectComposer} from "three/examples/jsm/postprocessing/EffectComposer.js"; import {Pass} from "three/examples/jsm/postprocessing/Pass.js"; import {OutlinePass} from "three/examples/jsm/postprocessing/OutlinePass.js"; import {ShaderPass} from "three/examples/jsm/postprocessing/ShaderPass.js"; import {FXAAShader} from 'three/examples/jsm/shaders/FXAAShader.js'; import {RenderPass} from 'three/examples/jsm/postprocessing/RenderPass.js'; import {GammaCorrectionShader} from "three/examples/jsm/shaders/GammaCorrectionShader.js"; import {UnrealBloomPass} from 'three/examples/jsm/postprocessing/UnrealBloomPass.js'; import {BokehPass} from 'three/examples/jsm/postprocessing/BokehPass.js'; import {RenderPixelatedPass} from 'three/examples/jsm/postprocessing/RenderPixelatedPass.js'; import {HalftonePass} from 'three/examples/jsm/postprocessing/HalftonePass.js'; import {LUTPass} from 'three/examples/jsm/postprocessing/LUTPass.js'; import {LUTCubeLoader} from 'three/examples/jsm/loaders/LUTCubeLoader.js'; import {LUT3dlLoader} from 'three/examples/jsm/loaders/LUT3dlLoader.js'; import {LUTImageLoader} from 'three/examples/jsm/loaders/LUTImageLoader.js'; import { AfterimagePass } from 'three/examples/jsm/postprocessing/AfterimagePass.js'; // import {OutputPass} from "three/examples/jsm/postprocessing/OutputPass.js"; import {useAddSignal} from "@/hooks"; import Viewer from "../Viewer"; import App from "@/core/app/App"; type supportPass = Pass | OutlinePass | ShaderPass | UnrealBloomPass | BokehPass | RenderPixelatedPass | HalftonePass; let _passConfigChangeFn: any = null; export const LUTEffectMap = { 'Bourbon 64.CUBE': null, 'Chemical 168.CUBE': null, 'Clayton 33.CUBE': null, 'Cubicle 99.CUBE': null, 'Remy 24.CUBE': null, 'Presetpro-Cinematic.3dl': null, 'NeutralLUT.png': null, 'B&WLUT.png': null, 'NightLUT.png': null }; export class Effect { private viewer: Viewer; composer: EffectComposer | undefined; outlinePass: OutlinePass | undefined; // 其他可动态配置的通道 static PassMap = new Map(); constructor(viewer: Viewer) { this.viewer = viewer; _passConfigChangeFn = this.handlePassConfigChange.bind(this); useAddSignal("effectPassConfigChange", _passConfigChangeFn) } get enabled() { return App.project.getKey("effect.enabled"); } createComposer() { if (this.composer) { this.clear(); } const {composer, outlinePass} = this.initComposer(); this.composer = composer as EffectComposer; this.outlinePass = outlinePass; // 加入默认打开的通道 const effectConfig = App.project.getKey("effect"); if (effectConfig) { Object.keys(effectConfig).forEach(key => { if (key === "enabled" || key === "Outline") return; // 判断是否存在 enabled 属性 if (effectConfig[key].hasOwnProperty('enabled') && effectConfig[key].enabled === true) { if (!this[key] || !(this[key] instanceof Pass)) return; this.composer?.addPass(this[key]); } }) } } protected initComposer() { if (!this.viewer.renderer) return {}; const pixelRatio = this.viewer.renderer.getPixelRatio(); // 创建后处理对象EffectComposer,WebGL渲染器作为参数 let composer = new EffectComposer(this.viewer.renderer); composer.setPixelRatio(pixelRatio); composer.setSize(this.viewer.container.offsetWidth, this.viewer.container.offsetHeight); // let ssaaRenderPass = new SSAARenderPass(this.viewer.scene, this.viewer.camera); // ssaaRenderPass.unbiased = false; // ssaaRenderPass.sampleLevel = 2; // ssaaRenderPass.clearColor = new THREE.Color("#272727"); // ssaaRenderPass.clearAlpha = 0; // composer.addPass(ssaaRenderPass); const renderPass = new RenderPass(this.viewer.scene, this.viewer.camera); renderPass.clearColor = new THREE.Color("#272727"); renderPass.clearAlpha = 0; renderPass.clearDepth = true; composer.addPass(renderPass); const outlineConfig = App.project.getKey("effect.Outline"); const outlinePass = new OutlinePass(new THREE.Vector2(this.viewer.container.offsetWidth, this.viewer.container.offsetHeight), this.viewer.scene, this.viewer.camera) outlinePass.visibleEdgeColor = new THREE.Color(outlineConfig.visibleEdgeColor || "#ffee00"); outlinePass.hiddenEdgeColor = new THREE.Color(outlineConfig.hiddenEdgeColor || "#ff6a00"); outlinePass.edgeStrength = outlineConfig.edgeStrength || Number(3.0); outlinePass.edgeGlow = outlineConfig.edgeGlow || Number(0.2); outlinePass.edgeThickness = outlineConfig.edgeThickness || Number(1.0); outlinePass.pulsePeriod = outlineConfig.pulsePeriod || Number(0.0); outlinePass.usePatternTexture = outlineConfig.usePatternTexture || false; outlinePass.selectedObjects = []; composer.addPass(outlinePass); // 创建伽马校正通道. 解决gltf模型后处理时,颜色偏差的问题 const gammaPass = new ShaderPass(GammaCorrectionShader); composer.addPass(gammaPass); // const outputPass = new OutputPass(); // composer.addPass(outputPass); return {composer, outlinePass}; } /** * FXAA 抗锯齿通道 */ get FXAA(): ShaderPass | null { if (Effect.PassMap.has("FXAA")) { return Effect.PassMap.get("FXAA") as ShaderPass; } if (!this.viewer.renderer) return null; const options = App.project.getKey("effect.FXAA"); const fxaaPass = new ShaderPass(FXAAShader); fxaaPass.clear = true; const pixelRatio = this.viewer.renderer.getPixelRatio(); fxaaPass.material.uniforms['resolution'].value.x = 1 / (this.viewer.container.offsetWidth * pixelRatio); fxaaPass.material.uniforms['resolution'].value.y = 1 / (this.viewer.container.offsetHeight * pixelRatio); fxaaPass.enabled = options.enabled || false; Effect.PassMap.set("FXAA", fxaaPass); return fxaaPass; } /** * UnrealBloom 仿UE辉光 */ get UnrealBloom(): UnrealBloomPass { if (Effect.PassMap.has("UnrealBloom")) { return Effect.PassMap.get("UnrealBloom") as UnrealBloomPass; } const options = App.project.getKey("effect.UnrealBloom"); const bloomPass = new UnrealBloomPass(new THREE.Vector2(this.viewer.container.offsetWidth, this.viewer.container.offsetWidth), 1, 0, 0); bloomPass.threshold = options.threshold || 0; bloomPass.strength = options.strength === undefined ? 1 : options.strength; bloomPass.radius = options.radius || 0; Effect.PassMap.set("UnrealBloom", bloomPass); return bloomPass; } /** * Bokeh 变焦,背景虚化(焦外成像) */ get Bokeh(): BokehPass { if (Effect.PassMap.has("Bokeh")) { return Effect.PassMap.get("Bokeh") as BokehPass; } const options = App.project.getKey("effect.Bokeh"); const bokehPass = new BokehPass(this.viewer.scene, App.viewportCamera, { focus: options.focus, aperture: options.aperture, maxblur: options.maxblur }); Effect.PassMap.set("Bokeh", bokehPass); return bokehPass; } /** * Pixelate 像素风 * @description 渲染时会受场景背景影响,纯色背景才有最佳渲染效果 */ get Pixelate(): RenderPixelatedPass { if (Effect.PassMap.has("Pixelate")) { return Effect.PassMap.get("Pixelate") as RenderPixelatedPass; } const options = App.project.getKey("effect.Pixelate"); const pixelatedPass = new RenderPixelatedPass(options.pixelSize || 6, this.viewer.scene, App.viewportCamera, { normalEdgeStrength: options.normalEdgeStrength, depthEdgeStrength: options.depthEdgeStrength }); Effect.PassMap.set("Pixelate", pixelatedPass); return pixelatedPass; } /** * Halftone 半色调 */ get Halftone(): HalftonePass { if (Effect.PassMap.has("Halftone")) { return Effect.PassMap.get("Halftone") as HalftonePass; } const options = App.project.getKey("effect.Halftone"); const halftonePass = new HalftonePass(options); Effect.PassMap.set("Halftone", halftonePass); return halftonePass; } /** * LUT 颜色滤镜 */ get LUT(): LUTPass { if (Effect.PassMap.has("LUT")) { return Effect.PassMap.get("LUT") as LUTPass; } const options = App.project.getKey("effect.LUT"); const _LUTCubeLoader = new LUTCubeLoader(); const _LUTImageLoader = new LUTImageLoader(); const _LUT3dlLoader = new LUT3dlLoader(); // 优先加载配置项的lut if (!LUTEffectMap[options.lut]) { const lutUrl = new URL(`${import.meta.env.BASE_URL}resource/luts/${options.lut}`, import.meta.url).href; if (/\.CUBE$/i.test(options.lut)) { _LUTCubeLoader.load(lutUrl, (result) => { LUTEffectMap[options.lut] = result; this.viewer.render(); }); } else if (/\.png$/i.test(options.lut)) { _LUTImageLoader.load(lutUrl, (result) => { LUTEffectMap[options.lut] = result; this.viewer.render(); }); } else { _LUT3dlLoader.load(lutUrl, (result) => { LUTEffectMap[options.lut] = result; this.viewer.render(); }); } } Object.keys(LUTEffectMap).forEach(name => { if (LUTEffectMap[name]) return; const lutUrl = new URL(`${import.meta.env.BASE_URL}resource/luts/${name}`, import.meta.url).href; if (/\.CUBE$/i.test(name)) { _LUTCubeLoader.load(lutUrl, function (result) { LUTEffectMap[name] = result; }); } else if (/\.png$/i.test(name)) { _LUTImageLoader.load(lutUrl, function (result) { LUTEffectMap[name] = result; }); } else { _LUT3dlLoader.load(lutUrl, function (result) { LUTEffectMap[name] = result; }); } }); const lutPass = new LUTPass({ intensity: options.intensity }); Effect.PassMap.set("LUT", lutPass); return lutPass; } /** * 运动残影 */ get Afterimage():AfterimagePass{ if (Effect.PassMap.has("Afterimage")) { return Effect.PassMap.get("Afterimage") as AfterimagePass; } const options = App.project.getKey("effect.Afterimage"); const afterimagePass = new AfterimagePass(options.damp); Effect.PassMap.set("Afterimage", afterimagePass); return afterimagePass; } /** * 通道配置变更 * @param name 通道名 * @param config 新配置 */ handlePassConfigChange(name: string, config) { // App.project.setKey(`effect.${name}`, config); if (name === "Outline") { if (this.outlinePass) { for (const key in config) { (this.outlinePass)[key] = this.getPassConfigValue(key, config[key]); } } } else { if (!config.enabled) { if (Effect.PassMap.has(name)) { this.composer?.removePass(Effect.PassMap.get(name) as Pass) Effect.PassMap.delete(name); this.viewer.render(); } return; } if (!Effect.PassMap.has(name)) { if (!this[name] || !(this[name] instanceof Pass)) return; // get this[name]时创建的Pass会自动加入到Effect.PassMap this.composer?.addPass(this[name]); this.viewer.render(); return; } if (!this[name]) return; switch (name) { // 参数配置在uniforms的Pass case "Bokeh": case 'Halftone': case 'Afterimage': for (const key in config) { if (this[name].uniforms[key] === undefined) { this[name][key] = this.getPassConfigValue(key, config[key]); continue; } this[name].uniforms[key].value = this.getPassConfigValue(key, config[key]); } break; case "Pixelate": for (const key in config) { if (key === "pixelSize") { this.Pixelate.setPixelSize(config[key]); } else { this.Pixelate[key] = this.getPassConfigValue(key, config[key]); } } break; case "LUT": for (const key in config) { if (key === "lut") { const lut = LUTEffectMap[config[key]]; Boolean(lut) && (this.LUT.lut = lut.texture3D); } else { this.LUT[key] = this.getPassConfigValue(key, config[key]); } } break; default: for (const key in config) { this[name][key] = this.getPassConfigValue(key, config[key]); } break; } } this.viewer.render(); } /** * 处理通道值 */ getPassConfigValue(key: string, value: any) { if (["visibleEdgeColor", "hiddenEdgeColor"].includes(key)) { return new THREE.Color(value); } if (["rotateR", "rotateG", "rotateB"].includes(key)) { return value * (Math.PI / 180); } return value; } render(deltaTime: number) { if (!this.enabled || !this.composer) return; // PassMap中存在 LUT 则说明 LUT 是启用的 // lutMap是异步加载的,所以此处做判断 if (Effect.PassMap.has("LUT")) { const lut = LUTEffectMap[App.project.getKey("effect.LUT.lut")]; this.LUT.enabled = Boolean(lut); if (this.LUT.enabled) { this.LUT.lut = lut.texture3D; } } this.composer.render(deltaTime); } clear() { if (this.composer) { for (let i = this.composer.passes.length; i > 0; i--) { this.composer.passes[i - 1].dispose && this.composer.passes[i - 1].dispose(); this.composer.removePass(this.composer.passes[i - 1]); } this.composer.dispose(); } } dispose() { this.clear(); _passConfigChangeFn = null; } } ================================================ FILE: packages/sdk/lib/core/viewer/modules/Helper.ts ================================================ import { ViewportGizmo, GizmoOptions } from "three-viewport-gizmo"; import CameraControls from "camera-controls"; import { useAddSignal, useRemoveSignal } from "@/hooks"; import App from "@/core/app/App"; import Viewer from "../Viewer"; import {getOsTheme} from "@/utils"; let _updateFn; export class Helper { private viewer: Viewer; private gizmo: ViewportGizmo | undefined; private controls: CameraControls; constructor(viewer: Viewer, controls: CameraControls) { this.viewer = viewer; this.controls = controls; } /** * 如果当前正在动画视图更改,则返回true */ get animating() { if (this.gizmo) { return this.gizmo.animating; } return false; } set hidden(value: boolean) { if (this.gizmo) { const dom = document.querySelector(`#${this.gizmo.options.id}`) as HTMLElement; if (!dom) return; dom.style.display = value ? "block" : "none"; this.update(); } } init() { _updateFn = this.update.bind(this); useAddSignal('cameraChanged', _updateFn); useAddSignal('sceneResize', _updateFn); if (!this.viewer.renderer) return; this.gizmo = new ViewportGizmo(this.viewer.camera, this.viewer.renderer, this.getGizmoConfig()); this.controls.getTarget(this.gizmo.target); this.initEvent(); } /** * 初始化视角控制器事件 */ initEvent() { if (!this.gizmo) return; this.gizmo.addEventListener("start", () => { this.controls.enabled = false; this.viewer.render(); }); this.gizmo.addEventListener("end", () => { this.controls.enabled = true; this.viewer.render(); }); this.gizmo.addEventListener("change", () => { this.controls.setPosition(...this.viewer.camera.position.toArray()); this.viewer.render(); }); this.initDomEvent(); } /** * 初始化视角控制器dom事件 */ initDomEvent() { if (!this.gizmo?.options?.id) return; const dom = document.querySelector(`#${this.gizmo.options.id}`); if (!dom) return; dom.addEventListener("pointermove", () => { this.viewer.render(); }) } /** * 获取ViewportGizmo配置 * @param type */ getGizmoConfig(type = "cube") { const _opt = { type, id: "astral-viewer-helper", container: this.viewer.container, placement: "bottom-right", } as GizmoOptions; if (type === "sphere") return _opt; const configTheme = App.config.getKey('theme'); if (configTheme === "os") { if (getOsTheme() !== "dark") { return _opt; } } else if (configTheme === "light") { return _opt; } let colors = { color: 0x333333, labelColor: 0xdddddd, hover: { color: App.config.getKey('mainColor') || "#7FE7C4", labelColor: 0xffffff, }, }; let background = { color: 0x444444, hover: { color: 0x444444 }, }; return { ..._opt, background: background, corners: colors, edges: colors, right: colors, top: colors, front: colors, } as GizmoOptions; } /** * 设置外观,会在全局配置中的主色调及白天/黑夜模式切换时调用 */ setConfig() { if (!this.gizmo) return; this.gizmo.set(this.getGizmoConfig()); this.initDomEvent(); this.viewer.render(); } update() { if (!this.gizmo) return; this.controls.getTarget(this.gizmo.target); this.gizmo.update(false); } render() { if (!this.gizmo) return; this.gizmo.render(); } dispose() { if (this.gizmo) this.gizmo.dispose(); if(_updateFn){ useRemoveSignal('cameraChanged', _updateFn); useRemoveSignal('sceneResize', _updateFn); _updateFn = null; } } } ================================================ FILE: packages/sdk/lib/core/viewer/modules/ParticleSystem.ts ================================================ import * as THREE from 'three'; import System, * as Particle from '@/core/libs/three-nebula'; import { useAddSignal, useDispatchSignal, useRemoveSignal } from "@/hooks"; import * as BasicObject3D from "@/core/built-in/assets/BasicObject3D"; import ParticleEmitter from "@/core/objects/ParticleEmitter"; import { isParticleObject } from "@/utils"; import Viewer from "../Viewer"; import App from "@/core/app/App"; import Preview from "@/core/preview/Preview.ts"; let _objectRemovedFn, _objectAddedFn, _bodyChangedFn,_addEmitterFn,_emitterAdd2Fn; class ParticleSystem { private viewer: Viewer | Preview; // 存储所有粒子的组 particlesGroup: THREE.Group; spriteRenderer: Particle.SpriteRenderer; meshRenderer: Particle.MeshRenderer; spriteSystem: System; meshSystem: System; /** * 场景中粒子body类型为Point的对象 */ static PointBody: THREE.Points = (function () { const geometry = new THREE.BufferGeometry(); const vertices = new Float32Array([0, 0, 0]); geometry.setAttribute('position', new THREE.BufferAttribute(vertices, 3)); const material = new THREE.PointsMaterial({ size: 0.1, color: 0xff0000 }); return new THREE.Points(geometry, material); })(); /** * 场景中所有粒子用到的Sprite | Mesh,统一管理 * key: 粒子ParticleEmitter的uuid,value: 粒子的body对象 */ static Body3DMap: Map = new Map(); constructor(viewer:Viewer | Preview) { this.viewer = viewer; this.particlesGroup = new THREE.Group(); this.particlesGroup.name = 'astral-particles-group'; // 不在场景树中显示此组 this.particlesGroup.ignore = true; this.viewer.scene.add(this.particlesGroup); this.spriteSystem = new System(); this.spriteSystem.name = 'spriteSystem'; this.meshSystem = new System(); this.meshSystem.name = 'meshSystem'; this.spriteRenderer = new Particle.SpriteRenderer(this.particlesGroup, THREE); this.meshRenderer = new Particle.MeshRenderer(this.particlesGroup, THREE); this.spriteSystem.addRenderer(this.spriteRenderer); this.meshSystem.addRenderer(this.meshRenderer); this.initEvent(); } get needsUpdate() { return this.spriteSystem.emitters.length > 0 || this.meshSystem.emitters.length > 0; } initEvent(){ _objectRemovedFn = this.handleObjectRemoved.bind(this); useAddSignal("objectRemoved", _objectRemovedFn); _objectAddedFn = this.handleObjectAdded.bind(this); useAddSignal("objectAdded", _objectAddedFn); _bodyChangedFn = this.handleParticleBodyChanged.bind(this); useAddSignal("particleBodyChanged", _bodyChangedFn); _emitterAdd2Fn = this.handleEmitterAdd.bind(this); useAddSignal("emitterAdd2ParticleSystem", _emitterAdd2Fn); _addEmitterFn = this.handleAddEmitter.bind(this); this.spriteSystem.eventDispatcher.addEventListener('EMITTER_ADDED', _addEmitterFn) this.meshSystem.eventDispatcher.addEventListener('EMITTER_ADDED', _addEmitterFn) } handleAddEmitter(emitter: Particle.Emitter){ useDispatchSignal('particleSystemAddEmitter', emitter); } /** * 监听对象移除 */ handleObjectRemoved(object) { if (!object || object.type !== "Particle") return; if (!object.emitter) return; const emitterJSON = object.toJSON().object.emitter; if (this.spriteSystem.emitters.includes(object.emitter)) { this.spriteSystem.removeEmitter(object.emitter); } else { this.meshSystem.removeEmitter(object.emitter); } object.dispose(); object.emitter = emitterJSON; } /** * 监听对象添加 * @description 主要应用于对象添加的redo命令 */ handleObjectAdded(object) { if (!isParticleObject(object)) return; if (object.emitter.parent) return; object.emitter = ParticleEmitter.fromJSON({ uuid: object.uuid, type: object.type, name: object.name, emitter: object.emitter, children: [] }).emitter; // 重新初始化事件,不然粒子无法选中 object.initEvent(); } /** * 监听粒子body对象改变 */ handleParticleBodyChanged(data: IParticle.Config['init']['body'], object3D: THREE.Texture | string | THREE.Mesh, isObjectChange = false, done = (_data: IParticle.Config['init']['body']) => {}) { if (!object3D || !data?.body) return; const selected = App.selected; if (!selected || !(selected instanceof ParticleEmitter)) return; const setBody3D = (body3D: THREE.Sprite | THREE.Mesh) => { // if (ParticleSystem.Body3DMap.has(selected.uuid)) { // const oldBody3D = ParticleSystem.Body3DMap.get(selected.uuid); // if (oldBody3D && oldBody3D !== body3D) { // if (oldBody3D.material) { // if (Array.isArray(oldBody3D.material)) { // oldBody3D.material.forEach(m => m.dispose()); // } else { // oldBody3D.material.dispose(); // } // } // oldBody3D.removeFromParent(); // } // ParticleSystem.Body3DMap.delete(selected.uuid); // } ParticleSystem.Body3DMap.set(selected.uuid, body3D); } const emitter = selected.emitter as Particle.Emitter; const initializer = emitter.initializers.find((item) => item.type === "Body"); // 如果body内的对象未变更直接修改基础属性并返回 if (initializer && !isObjectChange){ initializer.isEnabled = data.isEnabled; done(data); return; } if (this.spriteSystem.emitters.includes(emitter)) { this.spriteSystem.removeEmitter(emitter); } else { this.meshSystem.removeEmitter(emitter); } // 不重新实例化,直接更新初始化器的body属性 if (!initializer) { switch (data.body.type) { case "Sprite": console.log(111); const sprite = new THREE.Sprite(new THREE.SpriteMaterial({ map: object3D as THREE.Texture, color: 0xffffff, //blending: THREE.AdditiveBlending, //fog: true, })); emitter.addInitializer(new Particle.Body(sprite, null, null, data.isEnabled)); setBody3D(sprite); this.spriteSystem.addEmitter(emitter); done(Object.assign(data, { uuid: sprite.uuid })); break; case "Mesh": let mesh: THREE.Mesh; if (typeof object3D === "string") { // 首字母需要大写 const _objectMethod = object3D.charAt(0).toUpperCase() + object3D.slice(1); if (BasicObject3D[_objectMethod]) { mesh = BasicObject3D[_objectMethod](); } else { mesh = BasicObject3D.Box(); } } else { mesh = object3D as THREE.Mesh; } emitter.addInitializer(new Particle.Body(mesh, null, null, data.isEnabled)); setBody3D(mesh); this.meshSystem.addEmitter(emitter); done(Object.assign(data, { uuid: null })); break; case "Point": emitter.addInitializer(new Particle.Body(ParticleSystem.PointBody.clone(), null, null, data.isEnabled)); this.meshSystem.addEmitter(emitter); done(Object.assign(data, { uuid: null })); break; } } else { switch (data.body.type) { case "Sprite": const sprite = new THREE.Sprite(new THREE.SpriteMaterial({ map: object3D as THREE.Texture, color: 0xffffff, //blending: THREE.AdditiveBlending, //fog: true, })); initializer.body.items = [sprite]; setBody3D(sprite); this.spriteSystem.addEmitter(emitter); done(Object.assign(data, { uuid: sprite.uuid })); break; case "Mesh": let mesh: THREE.Mesh; if (typeof object3D === "string") { // 首字母需要大写 const _objectMethod = object3D.charAt(0).toUpperCase() + object3D.slice(1); if (BasicObject3D[_objectMethod]) { mesh = BasicObject3D[_objectMethod](); } else { mesh = BasicObject3D.Box(); } } else { mesh = object3D as THREE.Mesh; } initializer.body.items = [mesh]; setBody3D(mesh); this.meshSystem.addEmitter(emitter); done(Object.assign(data, { uuid: null })); break; case "Point": initializer.body.items = [ParticleSystem.PointBody.clone()]; this.meshSystem.addEmitter(emitter); done(Object.assign(data, { uuid: null })); break; } } } /** * 监听添加Emitter */ handleEmitterAdd(emitter:Particle.Emitter,system = "spriteSystem"){ this[system].addEmitter(emitter); } update(delta: number) { if (this.spriteSystem.emitters.length > 0) { this.spriteSystem.update(delta); } if (this.meshSystem.emitters.length > 0) { this.meshSystem.update(delta); } } dispose() { useRemoveSignal("objectRemoved", _objectRemovedFn); _objectRemovedFn = null; useRemoveSignal("particleBodyChanged", _bodyChangedFn); _bodyChangedFn = null; this.spriteSystem.eventDispatcher.removeEventListener('EMITTER_ADDED', _addEmitterFn); this.meshSystem.eventDispatcher.removeEventListener('EMITTER_ADDED', _addEmitterFn); _addEmitterFn = null; this.spriteSystem.destroy(); this.meshSystem.destroy(); } } export {ParticleSystem}; ================================================ FILE: packages/sdk/lib/core/viewer/modules/Signals.ts ================================================ import * as THREE from "three"; import {RoomEnvironment} from "three/examples/jsm/environments/RoomEnvironment.js"; import {ShaderPass} from "three/examples/jsm/postprocessing/ShaderPass.js"; import {Effect} from "./Effect"; import {useAddSignal} from "@/hooks"; import Viewer from "../Viewer"; import App from "@/core/app/App"; import {focusObject} from "@/utils/scene/controls.ts"; export class Signals { private readonly viewer: Viewer; private useBackgroundAsEnvironment = false; constructor(viewer:Viewer) { this.viewer = viewer; this.init(); } init() { useAddSignal("sceneCleared", this.sceneCleared.bind(this)); useAddSignal("transformModeChanged", this.transformModeChanged.bind(this)); useAddSignal("snapChanged", this.snapChanged.bind(this)); useAddSignal("spaceChanged", this.spaceChanged.bind(this)); useAddSignal("effectEnabledChange", this.effectEnabledChange.bind(this)); useAddSignal("rendererUpdated", this.rendererUpdated.bind(this)); useAddSignal("rendererCreated", this.rendererCreated.bind(this)); useAddSignal("rendererConfigUpdate", this.rendererConfigUpdate.bind(this)); useAddSignal("rendererDetectKTX2Support", this.rendererDetectKTX2Support.bind(this)); useAddSignal("sceneBackgroundChanged", this.sceneBackgroundChanged.bind(this)); useAddSignal("sceneEnvironmentChanged", this.sceneEnvironmentChanged.bind(this)); useAddSignal("sceneGraphChanged", this.sceneGraphChanged.bind(this)); useAddSignal("cameraChanged", this.cameraChanged.bind(this)); useAddSignal("cameraReset", this.viewer.updateAspectRatio.bind(this.viewer)); useAddSignal("viewportCameraChanged", this.viewportCameraChanged.bind(this)); useAddSignal("viewportShadingChanged", this.viewportShadingChanged.bind(this)); useAddSignal("objectSelected", this.objectSelected.bind(this)); useAddSignal("objectFocused", this.objectFocused.bind(this)); useAddSignal("objectAdded", this.objectAdded.bind(this)); useAddSignal("objectChanged", this.objectChanged.bind(this)); useAddSignal("objectRemoved", this.objectRemoved.bind(this)); useAddSignal("geometryChanged", this.geometryChanged.bind(this)); useAddSignal("materialChanged", this.materialChanged.bind(this)); useAddSignal("sceneResize", this.sceneResize.bind(this)); useAddSignal("showGridChanged", this.showGridChanged.bind(this)); useAddSignal("scriptAdded",this.scriptAdded.bind(this)); useAddSignal("scriptRemoved",this.scriptRemoved.bind(this)); useAddSignal("scriptChanged",this.scriptChanged.bind(this)); } /** * 判断对象是否是可射线选中的 */ objectIsCanPick(object:THREE.Object3D | null){ return object !== null && object !== this.viewer.scene && object !== this.viewer.camera; } /** * 清空 */ sceneCleared() { this.viewer.modules.controls.setTarget(0, 0, 0,true); this.viewer.pathtracer?.reset(); const rendererConfig = App.project.getKey("renderer"); App.FPS = rendererConfig.fps; this.viewer.renderer.shadowMap.enabled = rendererConfig.shadow.enabled; this.viewer.renderer.shadowMap.type = rendererConfig.shadow.type; this.viewer.renderer.toneMapping = rendererConfig.toneMapping; this.viewer.renderer.toneMappingExposure = rendererConfig.toneMappingExposure if(this.viewer.options.hdr){ this.viewer.loadEnv(true); } this.viewer.initPT(); this.viewer.render(); } /** * 模型变换控制器模式改变 * @param mode */ transformModeChanged(mode) { this.viewer.modules.transformControls?.setMode(mode); } /** * 模型变换控制器吸附距离改变 * @param dist */ snapChanged(dist:number) { this.viewer.modules.transformControls?.setTranslationSnap(dist); } /** * 模型变换控制器坐标系改变 * @param space */ spaceChanged(space:"world" | "local") { this.viewer.modules.transformControls?.setSpace(space); } /** * 启用/禁用后处理 */ effectEnabledChange(enabled:boolean){ if(enabled){ this.viewer.selectionBox.visible = false; if (this.objectIsCanPick(App.selected) && this.viewer.modules.effect.outlinePass) { this.viewer.modules.effect.outlinePass.selectedObjects = [App.selected as THREE.Object3D]; } }else{ if(this.viewer.modules.effect.outlinePass){ this.viewer.modules.effect.outlinePass.selectedObjects = []; } if (this.objectIsCanPick(App.selected)) { this.viewer.box.setFromObject(App.selected as THREE.Object3D, true); if (!this.viewer.box.isEmpty()) { this.viewer.selectionBox.visible = true; } } } this.render(); } /** * 渲染器更新 */ rendererUpdated() { this.viewer.scene.traverse(function (child) { if (child.material !== undefined) { (child.material).needsUpdate = true; } }); this.viewer.render(); } /** * 渲染器创建完成后调用 * @param newRenderer */ rendererCreated(newRenderer: THREE.WebGLRenderer) { this.viewer.engineCreated(newRenderer); } rendererConfigUpdate(){ this.viewer.createEngine(); } rendererDetectKTX2Support( ktx2Loader ) { ktx2Loader.detectSupport(this.viewer.renderer); } /** * 场景背景变更 * @param backgroundType * @param backgroundColor * @param backgroundTexture * @param backgroundEquirectangularTexture * @param backgroundBlurriness * @param backgroundIntensity * @param backgroundRotation */ sceneBackgroundChanged(backgroundType:"" | "Color" | "Texture" | "Equirectangular", backgroundColor:string, backgroundTexture, backgroundEquirectangularTexture, backgroundBlurriness:number,backgroundIntensity:number, backgroundRotation:number){ this.viewer.scene.background = null; switch (backgroundType) { case 'Color': this.viewer.scene.background = new THREE.Color(backgroundColor); break; case 'Texture': if (backgroundTexture) { this.viewer.scene.background = backgroundTexture; } break; case 'Equirectangular': if (backgroundEquirectangularTexture) { backgroundEquirectangularTexture.mapping = THREE.EquirectangularReflectionMapping; this.viewer.scene.background = backgroundEquirectangularTexture; this.viewer.scene.backgroundBlurriness = backgroundBlurriness; this.viewer.scene.backgroundIntensity = backgroundIntensity; this.viewer.scene.backgroundRotation.y = backgroundRotation * THREE.MathUtils.DEG2RAD; if (this.useBackgroundAsEnvironment) { this.viewer.scene.environment = this.viewer.scene.background as THREE.Texture; this.viewer.scene.environmentRotation.y = backgroundRotation * THREE.MathUtils.DEG2RAD; } } break; } this.viewer.dispatchEvent({type:"onSceneBackgroundChange",backgroundType:backgroundType,background:this.viewer.scene.background}) this.viewer.updatePTBackground(); this.render(); } /** * 场景环境贴图变更 * @param environmentType * @param environmentEquirectangularTexture */ sceneEnvironmentChanged(environmentType: '' | 'Background' | 'Equirectangular' | 'ModelViewer', environmentEquirectangularTexture: THREE.Texture){ this.viewer.scene.environment = null; this.useBackgroundAsEnvironment = false; switch (environmentType) { case 'Background': this.useBackgroundAsEnvironment = true; this.viewer.scene.environment = this.viewer.scene.background as THREE.Texture; this.viewer.scene.environment.mapping = THREE.EquirectangularReflectionMapping; this.viewer.scene.environmentRotation.y = this.viewer.scene.backgroundRotation.y; break; case 'Equirectangular': if (environmentEquirectangularTexture) { this.viewer.scene.environment = environmentEquirectangularTexture; this.viewer.scene.environment.mapping = THREE.EquirectangularReflectionMapping; } break; case 'ModelViewer': if(!this.viewer.pmremGenerator){ // 创建一个PMREMGenerator,从立方体映射环境纹理生成预过滤的 Mipmap 辐射环境贴图 this.viewer.pmremGenerator = new THREE.PMREMGenerator(this.viewer.renderer); this.viewer.pmremGenerator.compileEquirectangularShader(); } this.viewer.scene.environment = this.viewer.pmremGenerator.fromScene(new RoomEnvironment(), 0.04).texture; break; } this.viewer.dispatchEvent({type:"onSceneEnvironmentChange",environmentType:environmentType,environment:this.viewer.scene.environment}) this.viewer.updatePTEnvironment(); this.render(); } /** * 手动场景渲染 */ sceneGraphChanged(){ this.viewer.initPT(); this.render(); } /** * 切换主相机 */ cameraChanged(){ this.viewer.pathtracer?.reset(); this.render(); } /** * 场景主相机变更 */ viewportCameraChanged(){ const viewportCamera = App.viewportCamera; if ( viewportCamera.isPerspectiveCamera || viewportCamera.isOrthographicCamera ) { this.viewer.updateAspectRatio(); } if (viewportCamera.isPerspectiveCamera) { (viewportCamera).aspect = App.camera.aspect; viewportCamera.projectionMatrix.copy(App.camera.projectionMatrix); } else if ( viewportCamera.isOrthographicCamera ) { // TODO } // 设置用户Camera时禁用EditorControls this.viewer.modules.controls.enabled = (viewportCamera === App.camera); // 替换控制器相机 // this.viewer.modules.controls.camera = viewportCamera; this.viewer.initPT(); this.render(); } /** * 场景Shading变更 * @description 当开启OutlinePass后处理时,设置scene.overrideMaterial无效。 * @link https://github.com/mrdoob/three.js/issues/30577 */ viewportShadingChanged(){ const viewportShading = App.viewportShading; switch (viewportShading) { case 'realistic': this.viewer.pathtracer?.init(this.viewer.scene, this.viewer.camera); break; case 'solid': this.viewer.scene.overrideMaterial = null; break; case 'normals': this.viewer.scene.overrideMaterial = new THREE.MeshNormalMaterial(); break; case 'wireframe': console.log("wireframe") this.viewer.scene.overrideMaterial = new THREE.MeshBasicMaterial({color: 0x000000, wireframe: true}); break; } this.render(); } /** * 选中模型 * @param object */ objectSelected(object){ this.viewer.selectionBox.visible = false; this.viewer.modules.transformControls?.detach(); if (this.objectIsCanPick(object)) { if(this.viewer.modules.effect.enabled && this.viewer.modules.effect.outlinePass){ this.viewer.modules.effect.outlinePass.selectedObjects = [object]; }else{ this.viewer.box.setFromObject(object, true); if (!this.viewer.box.isEmpty()) { this.viewer.selectionBox.visible = true; } } this.viewer.modules.transformControls?.attach(object); } this.render(); } /** * 聚焦模型 * @param object */ objectFocused(object){ focusObject(object,this.viewer.modules.controls); } /** * 场景新增模型 */ objectAdded(){ this.viewer.computedSceneBox3(); } /** * 模型属性变更 * @param object */ objectChanged(object){ if (App.selected === object) { this.viewer.box.setFromObject(object, true); this.viewer.computedSceneBox3(); } if (object.isPerspectiveCamera) { object.updateProjectionMatrix(); } const helper = App.helpers[object.id]; if (helper !== undefined && !helper.isSkeletonHelper) { helper.update(); } this.viewer.initPT(); this.render(); } /** * 模型被移除 * @param object */ objectRemoved(object){ this.viewer.modules.controls.enabled = true; if (this.viewer.modules.transformControls && object === this.viewer.modules.transformControls.object) { this.viewer.modules.transformControls.detach(); } this.viewer.computedSceneBox3(); } /** * geometry 变更 * @param object */ geometryChanged(object){ if (object !== undefined) { this.viewer.box.setFromObject(object, true); } this.viewer.initPT(); this.render(); } /** * material 变更 */ materialChanged(){ this.viewer.updatePTMaterials(); this.render(); } /** * windowResize */ sceneResize(){ this.viewer.updateAspectRatio(); this.viewer.renderer?.setSize(this.viewer.container.offsetWidth,this.viewer.container.offsetHeight); if(this.viewer.modules.effect.enabled && this.viewer.modules.effect.composer){ this.viewer.modules.effect.composer.setSize(this.viewer.container.offsetWidth,this.viewer.container.offsetHeight); if(Effect.PassMap.has("FXAA")){ const FXAA = Effect.PassMap.get("FXAA") as ShaderPass; const pixelRatio = this.viewer.renderer.getPixelRatio(); FXAA.material.uniforms[ 'resolution' ].value.x = 1 / (this.viewer.container.offsetWidth * pixelRatio); FXAA.material.uniforms[ 'resolution' ].value.y = 1 / (this.viewer.container.offsetHeight * pixelRatio); } } this.viewer.pathtracer?.setSize(); this.viewer.css3DRenderer.setSize(this.viewer.container.offsetWidth,this.viewer.container.offsetHeight); this.viewer.modules.viewHelper.update(); App.csm.updateFrustums(); this.render(); } /** * 是否显示场景网格 * @param showGrid */ showGridChanged(showGrid:boolean){ if(this.viewer.grid){ this.viewer.grid.visible = showGrid; } this.render(); } /** * 添加脚本 */ scriptAdded(object:THREE.Object3D, _:ISceneScript){ this.viewer.installScripts([object.uuid]); } /** * 移除脚本 */ scriptRemoved(object:THREE.Object3D, sc:ISceneScript){ this.viewer.uninstallScriptsByUuid(object.uuid,sc.name); } /** * 脚本变化 */ scriptChanged(attributeName:string,object:THREE.Object3D, sc:ISceneScript){ if(attributeName !== "source") return; this.viewer.installScripts([object.uuid],sc.name); } /** * 渲染 */ render(){ this.viewer.render(); } } ================================================ FILE: packages/sdk/lib/core/viewer/modules/Weather.ts ================================================ /* * @author ErSan * @email mlt131220@163.com * @date 2024/12/23 19:27 * @description 天气系统 */ import * as THREE from "three"; import {useAddSignal, useRemoveSignal} from "@/hooks"; import Rain from "@/core/objects/weather/Rain"; import Snow from "@/core/objects/weather/Snow"; import {SnowingShaderMaterial} from "@/core/shaderMaterial/modules/SnowingShaderMaterial"; import Viewer from "../Viewer"; import App from "@/core/app/App"; let _fogConfigChangeFn: any = null; let _rainConfigChangeFn: any = null; let _snowConfigChangeFn: any = null; let _objectAddedFn: any = null; export class Weather { private viewer: Viewer; rain: Rain | null = null; snow: Snow | null = null; snowingMaterialObj: THREE.Mesh[] = []; constructor(viewer: Viewer) { this.viewer = viewer; _fogConfigChangeFn = this.sceneFogSettingsChanged.bind(this) useAddSignal("sceneFogSettingsChanged", _fogConfigChangeFn); _rainConfigChangeFn = this.sceneRainSettingsChanged.bind(this); useAddSignal("sceneRainSettingsChanged", _rainConfigChangeFn); _snowConfigChangeFn = this.sceneSnowSettingsChanged.bind(this); useAddSignal("sceneSnowSettingsChanged", _snowConfigChangeFn); _objectAddedFn = this.objectAdded.bind(this); useAddSignal("objectAdded", _objectAddedFn); } objectAdded(object) { const {enabled, accumulation} = App.project.getKey("weather.snow"); if (enabled && accumulation) { object.traverseByCondition((obj) => { this.replaceSnowMaterial(obj); }, (child) => !child.ignore && child.visible); } } /** * 场景雾效设置项变更 */ sceneFogSettingsChanged() { const fog = App.project.getKey("weather.fog") if (!fog.enabled) { this.viewer.scene.fog = null; this.viewer.render(); return; } switch (fog.type) { case 'Fog': if (!(this.viewer.scene.fog instanceof THREE.Fog)) { this.viewer.scene.fog = new THREE.Fog(fog.color, fog.near, fog.far); } else { const _fog = this.viewer.scene.fog as THREE.Fog; _fog.color = new THREE.Color(fog.color); _fog.near = fog.near; _fog.far = fog.far; } break; case 'FogExp2': if (!(this.viewer.scene.fog instanceof THREE.FogExp2)) { this.viewer.scene.fog = new THREE.FogExp2(fog.color, fog.density); } else { const _fog = this.viewer.scene.fog as THREE.FogExp2 _fog.color = new THREE.Color(fog.color); _fog.density = fog.density; } break; } this.viewer.render(); } /** * 场景雨效设置项变更 */ sceneRainSettingsChanged() { const {enabled, speed, color, size, radian, alpha} = App.project.getKey("weather.rain"); if (enabled) { if (this.rain) { this.rain.updateOptions({ speed, color, size, radian, alpha }) } else { this.rain = new Rain({ speed: speed, color: color, size: size, radian: radian, alpha: alpha }, this.viewer.modules.controls); this.rain.mesh.ignore = true; this.viewer.scene.add(this.rain.mesh as THREE.Object3D); } } else { if (!this.rain) return; this.rain.dispose(); this.rain = null; this.viewer.render(); } } /** * 替换材质贴图增加雪堆积 */ replaceSnowMaterial(obj) { if (!obj.material) return; if (obj.material.map && obj.material.map instanceof THREE.Texture) { // 存储原材质 !obj.metaData && (obj.metaData = {}); obj.metaData.material = obj.material; obj.material = SnowingShaderMaterial.InstanceShaderMaterial().clone(); obj.material.copyAttr(obj.metaData.material); obj.material.transparent = obj.metaData.material.transparent; obj.material.uniforms.uTime.value = 0.01; obj.material.uniforms.uHasTexture.value = 1.0; obj.material.uniforms.uTexture.value = obj.metaData.material.map; obj.material.needsUpdate = true; this.snowingMaterialObj.push(obj); } else if (obj.material.color) { // 存储原材质 !obj.metaData && (obj.metaData = {}); obj.metaData.material = obj.material; const alpha = obj.material.transparent ? obj.material.opacity : 1; const color = new THREE.Vector4(obj.material.color.r, obj.material.color.g, obj.material.color.b, alpha); obj.material = SnowingShaderMaterial.InstanceShaderMaterial().clone(); obj.material.copyAttr(obj.metaData.material); obj.material.transparent = obj.metaData.material.transparent; obj.material.uniforms.uTime.value = 0.01; obj.material.uniforms.uHasTexture.value = 0.0; obj.material.uniforms.uColor.value = color; obj.material.needsUpdate = true; this.snowingMaterialObj.push(obj); } } /** * 初始化替换材质贴图增加雪堆积 */ initSnowMap() { this.snowingMaterialObj = []; this.viewer.scene.traverseByCondition((obj) => { this.replaceSnowMaterial(obj); }, (child) => !child.ignore && child.visible); } /** * 关闭雪,还原贴图 */ removeSnowMap() { for (let i = this.snowingMaterialObj.length - 1; i >= 0; i--) { const obj = this.snowingMaterialObj[i]; // 释放 ShaderMaterial // TODO: 20250519: R176版本调用报错,暂不销毁 // (obj.material).dispose(); // 恢复原始材质 obj.material = obj.metaData.material as THREE.Material; // 清除 metaData 中的材质引用 // @ts-ignore obj.metaData.material = null; delete obj.metaData.material; // 从数组中删除当前元素 this.snowingMaterialObj.splice(i, 1); } this.snowingMaterialObj = []; } /** * 场景雪效设置项变更 */ sceneSnowSettingsChanged() { const {enabled, speed, size, density, alpha, accumulation} = App.project.getKey("weather.snow"); if (enabled) { if (this.snow) { this.snow.updateOptions({ speed, size, density, alpha }) if(accumulation && this.snowingMaterialObj.length === 0){ this.initSnowMap() }else if(!accumulation && this.snowingMaterialObj.length > 0){ this.removeSnowMap(); } } else { this.snow = new Snow({ speed: speed, size: size, density: density, alpha: alpha }, this.viewer.modules.controls); this.snow.mesh.ignore = true; this.viewer.scene.add(this.snow.mesh as THREE.Object3D); accumulation && this.initSnowMap(); } } else { if (!this.snow) return; this.snow.dispose(); this.snow = null; this.removeSnowMap(); this.viewer.render(); } } /** * 更新天气效果 * @param deltaTime * @return {boolean} 是否需要调用viewport.render() */ update(deltaTime) { let needRender = false; if (this.rain) { this.rain.update(deltaTime); needRender = true; } if (this.snow) { this.snow.update(deltaTime); if (App.project.getKey("weather.snow.accumulation")) { const speed = this.snow.options.speed; this.snowingMaterialObj.forEach(obj => { const m = obj.material as THREE.ShaderMaterial; if (m.uniforms.uTime.value > speed / 2) { m.uniforms.uTime.value = speed / 2; return; } m.uniforms.uTime.value += 0.001 * speed; }); } needRender = true; } return needRender; } dispose() { useRemoveSignal("sceneFogSettingsChanged", _fogConfigChangeFn); _fogConfigChangeFn = null; useRemoveSignal("sceneRainSettingsChanged", _rainConfigChangeFn); _rainConfigChangeFn = null; useRemoveSignal("sceneSnowSettingsChanged", _snowConfigChangeFn); _snowConfigChangeFn = null; this.rain && this.rain.dispose(); this.snow && this.snow.dispose(); } } ================================================ FILE: packages/sdk/lib/core/viewer/modules/index.ts ================================================ export {Helper} from './Helper'; export {CameraManage} from './CameraManage'; export {Effect,LUTEffectMap} from "./Effect"; export {Weather} from "./Weather"; export {Signals} from "./Signals"; export {ParticleSystem} from "./ParticleSystem"; export {Drag} from "./Drag"; ================================================ FILE: packages/sdk/lib/dxf/DragControls.js ================================================ import { EventDispatcher, Matrix4, Plane, Raycaster, Vector2, Vector3 } from 'three'; const _plane = new Plane(); const _raycaster = new Raycaster(); const _pointer = new Vector2(); const _offset = new Vector3(); const _intersection = new Vector3(); const _worldPosition = new Vector3(); const _inverseMatrix = new Matrix4(); class DragControls extends EventDispatcher { constructor( _objects, _camera, _domElement ) { super(); _domElement.style.touchAction = 'none'; // disable touch scroll let _selected = null, _hovered = null; const _intersections = []; // const scope = this; function activate() { _domElement.addEventListener( 'pointermove', onPointerMove ); _domElement.addEventListener( 'pointerdown', onPointerDown ); _domElement.addEventListener( 'pointerup', onPointerCancel ); _domElement.addEventListener( 'pointerleave', onPointerCancel ); } function deactivate() { _domElement.removeEventListener( 'pointermove', onPointerMove ); _domElement.removeEventListener( 'pointerdown', onPointerDown ); _domElement.removeEventListener( 'pointerup', onPointerCancel ); _domElement.removeEventListener( 'pointerleave', onPointerCancel ); _domElement.style.cursor = ''; } function dispose() { deactivate(); } function getObjects() { return _objects; } function getRaycaster() { return _raycaster; } function onPointerMove( event ) { if ( scope.enabled === false) return; updatePointer( event ); _raycaster.setFromCamera( _pointer, _camera ); if (_selected) { if ( _raycaster.ray.intersectPlane( _plane, _intersection ) ) { _selected.position.copy( _intersection.sub( _offset ).applyMatrix4( _inverseMatrix ) ); } scope.dispatchEvent( { type: 'drag', object: _selected } ); return; } // hover support if ( event.pointerType === 'mouse' || event.pointerType === 'pen' ) { _intersections.length = 0; _raycaster.setFromCamera( _pointer, _camera ); _raycaster.intersectObjects( _objects, scope.recursive, _intersections ); if ( _intersections.length > 0 ) { const object = _intersections[ 0 ].object.parent; _plane.setFromNormalAndCoplanarPoint( _camera.getWorldDirection( _plane.normal ), _worldPosition.setFromMatrixPosition( object.matrixWorld ) ); if ( _hovered !== object && _hovered !== null ) { scope.dispatchEvent( { type: 'hoveroff', object: _hovered } ); _domElement.style.cursor = 'auto'; _hovered = null; } if ( _hovered !== object ) { scope.dispatchEvent( { type: 'hoveron', object } ); _domElement.style.cursor = 'pointer'; _hovered = object; } } else { if ( _hovered !== null ) { scope.dispatchEvent( { type: 'hoveroff', object: _hovered } ); _domElement.style.cursor = 'auto'; _hovered = null; } } } } function onPointerDown( event ) { if (scope.enabled === false || event.button !== 0) return; updatePointer( event ); _intersections.length = 0; _raycaster.setFromCamera( _pointer, _camera ); _raycaster.intersectObjects( _objects, scope.recursive, _intersections ); if ( _intersections.length > 0 ) { _selected = _intersections[ 0 ].object.parent; _plane.setFromNormalAndCoplanarPoint( _camera.getWorldDirection( _plane.normal ), _worldPosition.setFromMatrixPosition( _selected.matrixWorld ) ); if ( _raycaster.ray.intersectPlane( _plane, _intersection ) ) { _inverseMatrix.copy( _selected.parent.matrixWorld ).invert(); _offset.copy( _intersection ).sub( _worldPosition.setFromMatrixPosition( _selected.matrixWorld ) ); } _domElement.style.cursor = 'move'; scope.dispatchEvent( { type: 'dragstart', object: _selected } ); } } function onPointerCancel(event) { if (scope.enabled === false || event.button !== 0) return; if (_selected) { scope.dispatchEvent( { type: 'dragend', object: _selected } ); _selected = null; } _domElement.style.cursor = _hovered ? 'pointer' : 'auto'; } function updatePointer( event ) { const rect = _domElement.getBoundingClientRect(); _pointer.x = ( event.clientX - rect.left ) / rect.width * 2 - 1; _pointer.y = - ( event.clientY - rect.top ) / rect.height * 2 + 1; } activate(); // API this.enabled = true; this.recursive = true; this.activate = activate; this.deactivate = deactivate; this.dispose = dispose; this.getObjects = getObjects; this.getRaycaster = getRaycaster; } } export { DragControls }; ================================================ FILE: packages/sdk/lib/dxf/bspline.ts ================================================ import round10 from './round10' /** * 复制和移植到代码标准,因为b样条库不再维护。 * Source: * https://github.com/thibauts/b-spline */ export default (t:number, degree:number, points, knots, weights?:number[] | undefined) => { const n = points.length // 点数量 const d = points[0].length // 分维数 if ((t < 0) || (t > 1)) { throw new Error('t 在区间 [0,1] 外: t = ' + t) } if (degree < 1) throw new Error('degree 必须至少为1(线性)') if (degree > (n - 1)) throw new Error('degree 必须小于或等于点数量 - 1') if (!weights) { // 构建长度为[n]的权重向量 weights = [] for (let i = 0; i < n; i++) { weights[i] = 1 } } if (!knots) { // 建立长度为[n + degree + 1]的结向量 knots = [] for (let i = 0; i < n + degree + 1; i++) { knots[i] = i } } else { if (knots.length !== n + degree + 1) throw new Error('坏结矢量长度') } const domain = [ degree, knots.length - 1 - degree ] // 将t重新映射到定义样条的域 const low = knots[domain[0]] const high = knots[domain[1]] t = t * (high - low) + low // 夹紧到上限和下限,而不是像在原始库中那样抛出错误 t = Math.max(t, low) t = Math.min(t, high) // 为提供的[t]值找到s(样条段) let s for (s = domain[0]; s < domain[1]; s++) { if (t >= knots[s] && t <= knots[s + 1]) { break } } // 将点转换为齐次坐标 const v:any = [] for (let i = 0; i < n; i++) { v[i] = [] for (let j = 0; j < d; j++) { v[i][j] = points[i][j] * weights[i] } v[i][d] = weights[i] } // l (level) 从 1 到 curve degree + 1 let alpha for (let l = 1; l <= degree + 1; l++) { // build level l of the pyramid for (let i = s; i > s - degree - 1 + l; i--) { alpha = (t - knots[i]) / (knots[i + degree + 1 - l] - knots[i]) // interpolate each component for (let j = 0; j < d + 1; j++) { v[i][j] = (1 - alpha) * v[i - 1][j] + alpha * v[i][j] } } } // 转换回笛卡尔坐标,然后返回 const result:number[] = [] for (let i = 0; i < d; i++) { result[i] = round10(v[s][i] / v[s][d], -9) } return result } ================================================ FILE: packages/sdk/lib/dxf/drawRect.ts ================================================ import * as THREE from "three"; import {OrbitControls} from "three/examples/jsm/controls/OrbitControls.js"; import {stopRender, renderLoop, render} from "./drawShare" import {DragControls} from './DragControls.js'; let cpmFn, cpdFn, cpuFn; function throttle(func, wait) { let timer: NodeJS.Timeout | null = null; return function (e) { if (timer) return; timer = setTimeout(function () { func(e); timer = null; }, wait) } } /** * three中绘制矩形 * @param {THREE.Scene} scene 场景 **/ export class DrawRect { static RectShapeMaterial = new THREE.MeshBasicMaterial({ transparent: true, opacity: 0.1, color: 0xccebff, side: THREE.FrontSide }); static LineMaterial = new THREE.LineBasicMaterial({ color: 0x15FF00, linewidth: 10, linecap: 'round', linejoin: 'round' }) static HoverLineMaterial = new THREE.LineBasicMaterial({ color: 0xff0015, linewidth: 10, linecap: 'round', linejoin: 'round' }) private canvas: HTMLCanvasElement; private scene: THREE.Scene; private camera: THREE.OrthographicCamera; private controls: OrbitControls | undefined; private signal: (args: { type: 'add' | 'remove' | 'dispatch', name: string, data?: any }) => void; private middleObject: any; private readonly group: THREE.Group; private readonly dragObjects: THREE.Group[] = []; private readonly dragControls: DragControls; private isDrag: boolean = false; private tempModelUuid: string | undefined; private tempRect: THREE.Group | undefined; private downPoint: THREE.Vector2 = new THREE.Vector2(); constructor(canvas: HTMLCanvasElement, scene: THREE.Scene, camera: THREE.OrthographicCamera, signal, middleObject) { this.canvas = canvas; this.scene = scene; this.camera = camera; this.signal = signal; this.middleObject = middleObject; middleObject.markList || (middleObject.markList = []); // 矩形标记数组 middleObject.selectRectIndex || (middleObject.selectRectIndex = -1); // 当前选中的矩形下标 middleObject.selectRect = {}; // 当前选中的矩形数据 middleObject.hoverRectIndex = -1; // 当前鼠标经过的矩形的下标 this.group = new THREE.Group(); this.group.name = "cadDrawRect"; this.scene.add(this.group); this.dragControls = new DragControls(this.dragObjects, camera, canvas); this.dragControls.addEventListener("hoveron", (event) => { if(this.isDrag) return; this.isDrag = true; this.controls && (this.controls.enabled = false); this.group.children.forEach((child, index) => { if (child.userData.rect.modelUuid !== event.object.userData.rect.modelUuid) return; this.middleObject.hoverRectIndex = index; child.children.forEach((c:any) => { if(c.isLine){ c.material = DrawRect.HoverLineMaterial; } }) }); }); this.dragControls.addEventListener("dragstart", () => { // 有上一次选中 if(this.middleObject.selectRectIndex !== -1){ this.group.children[this.middleObject.selectRectIndex]?.children.forEach((c:any) => { if(c.isLine){ c.material = DrawRect.LineMaterial; } }) // 两次选中同一个则取消 if(this.middleObject.selectRectIndex === this.middleObject.hoverRectIndex){ this.middleObject.selectRectIndex = -1; this.middleObject.selectRect = {}; this.signal({ type: "dispatch", name: "objectFocusByUuid", data: [undefined] }) return; } } this.middleObject.selectRectIndex = this.middleObject.hoverRectIndex; this.middleObject.selectRect = this.group.children[this.middleObject.selectRectIndex]?.userData.rect; this.signal({ type: "dispatch", name: "objectFocusByUuid", data: [this.middleObject.selectRect.modelUuid] }) }); this.dragControls.addEventListener("drag", throttle(render,50)); this.dragControls.addEventListener("dragend", (event) => { if (!event.object) return; const rectItem = event.object.userData.rect; rectItem.x += event.object.position.x; rectItem.y += event.object.position.y; this.signal({ type: "dispatch", name: "drawingMarkDone", data: ["update", rectItem] }) }); this.dragControls.addEventListener("hoveroff", () => { if(!this.isDrag) return; this.isDrag = false; this.controls && (this.controls.enabled = true); // 经过的模型未被选择 if(this.middleObject.selectRectIndex !== this.middleObject.hoverRectIndex){ this.group.children[this.middleObject.hoverRectIndex].children.forEach((c:any) => { if(c.isLine){ c.material = DrawRect.LineMaterial; } }) } this.middleObject.hoverRectIndex = -1; render(); }); this.dragControls.enabled = true; cpmFn = throttle(this.onpointermove.bind(this), 16); cpdFn = this.onpointerdown.bind(this); cpuFn = this.onpointerup.bind(this); this.init(); } init() { // 若list长度不为0, 则显示已标记框 if (this.middleObject.markList.length !== 0) { this.middleObject.markList.forEach((item: IDrawingMark) => { const rectObject = this.draw(item); this.dragObjects.push(rectObject); }); } } setList({list}) { this.middleObject.markList = list; this.init(); } // 设置controls setControls(controls: OrbitControls) { this.controls = controls; } // 设置选中 setSelect({modelUuid}){ // 先去除上一次选中 this.group.children[this.middleObject.selectRectIndex]?.children.forEach((c:any) => { if(c.isLine){ c.material = DrawRect.LineMaterial; } }) this.middleObject.selectRectIndex = -1; this.middleObject.selectRect = {}; if(modelUuid === undefined) return; this.group.children.forEach((child, index) => { if (child.userData.rect?.modelUuid !== modelUuid) return; this.middleObject.selectRectIndex = index; this.middleObject.selectRect = child.userData.rect; child.children.forEach((c:any) => { if(c.isLine){ c.material = DrawRect.HoverLineMaterial; } }) }); } // 还原rect restoreRect({rect}) { this.group.children.forEach((child, index) => { if (child.userData.rect.modelUuid !== rect.modelUuid) return; const re = JSON.parse(JSON.stringify(child.userData.rect)); this.middleObject.markList.splice(index, 1, re); this.group.remove(child); const rectObject = this.draw(re); this.dragObjects.splice(this.dragObjects.findIndex(item => item.userData.rect.modelUuid === rect.modelUuid), 1, rectObject); }) } /** * 准备开始画矩形标记框 */ addRect({modelUuid}) { if (!this.controls) return; this.tempModelUuid = modelUuid; this.controls.enabled = false; this.dragControls.enabled = false; this.canvas.style.cursor = "crosshair"; stopRender(); this.canvas.addEventListener("pointerdown", cpdFn); } // 删除当前选中的模型 deleteRect({modelUuid}){ this.group.children.forEach((child, index) => { if (child.userData.rect.modelUuid !== modelUuid) return; this.middleObject.markList.splice(index, 1); this.group.remove(child); this.dragObjects.splice(this.dragObjects.findIndex(item => item.userData.rect.modelUuid === modelUuid), 1); }) } // 鼠标按下事件 onpointerdown(event: PointerEvent) { event.stopPropagation(); if (this.isDrag || event.button !== 0) return; const wp = this.screenToScenePosition(event); this.downPoint = new THREE.Vector2(wp.x, wp.y); this.canvas.addEventListener("pointermove", cpmFn); this.canvas.addEventListener("pointerup", cpuFn); } // 鼠标移动事件 onpointermove(event: PointerEvent) { event.stopPropagation(); if (this.isDrag) return; const wp = this.screenToScenePosition(event); this.tempRect && this.group.remove(this.tempRect); const item: IDrawingMark = { x: this.downPoint.x, y: this.downPoint.y, w: wp.x - this.downPoint.x, h: wp.y - this.downPoint.y, modelUuid: this.tempModelUuid }; this.tempRect = this.draw(item); } // 鼠标抬起事件 onpointerup(event: PointerEvent) { event.stopPropagation(); if (this.isDrag) return; const wp = this.screenToScenePosition(event); const item: IDrawingMark = { x: this.downPoint.x, y: this.downPoint.y, w: wp.x - this.downPoint.x, h: wp.y - this.downPoint.y, modelUuid: this.tempModelUuid }; this.drawDone(item) this.signal({ type: "dispatch", name: "drawingMarkDone", data: ["add", item] }) this.canvas.style.cursor = "default"; this.tempModelUuid = undefined; this.canvas.removeEventListener("pointermove", cpmFn); this.canvas.removeEventListener("pointerup", cpuFn); } // 取消设置名称去除对应绘制的方法 clearTemp() { this.tempRect && this.group.remove(this.tempRect); this.exit(); } // 名称设置完成后调用的绘制结束方法 drawDone(rect:IDrawingMark) { this.tempRect && this.group.remove(this.tempRect); this.middleObject.markList.push(rect); const rectObject = this.draw(rect); this.dragObjects.push(rectObject); this.exit(); } exit() { this.controls && (this.controls.enabled = true); this.dragControls.enabled = true; renderLoop(); this.canvas.removeEventListener("pointerdown", cpdFn); } // 绘制 draw(item: IDrawingMark) { /* 第二种方式 */ const g = new THREE.Group(); g.name = "mark-rect" const rectShape = new THREE.Shape(); rectShape.moveTo(item.x, item.y); rectShape.lineTo(item.x + item.w, item.y); rectShape.lineTo(item.x + item.w, item.y + item.h); rectShape.lineTo(item.x, item.y + item.h); rectShape.lineTo(item.x, item.y); const geometry = new THREE.ShapeGeometry(rectShape); const material = DrawRect.RectShapeMaterial; const mesh = new THREE.Mesh(geometry, material); g.add(mesh); //绘制边框线 const lineGeom = new THREE.EdgesGeometry(geometry) const lineMaterial = DrawRect.LineMaterial; const line = new THREE.LineSegments(lineGeom, lineMaterial) line.scale.copy(mesh.scale) line.rotation.copy(mesh.rotation) line.position.copy(mesh.position) g.add(line) g.userData.rect = item; this.group.add(g); // helpRender(); render(); return g; } screenToScenePosition(event) { const offsetX = event.clientX - this.canvas.offsetLeft; const offsetY = event.clientY - this.canvas.offsetTop; const screenPosition = new THREE.Vector3(offsetX, offsetY, 0); //const worldPosition = new THREE.Vector3(); screenPosition.x = (screenPosition.x / this.canvas.clientWidth) * 2 - 1; screenPosition.y = -(screenPosition.y / this.canvas.clientHeight) * 2 + 1; screenPosition.z = 0.5; let p = screenPosition.unproject(this.camera); return new THREE.Vector2(p.x, p.y); // screenPosition.sub(this.camera.position).normalize(); // const distance = -this.camera.position.z / screenPosition.z; // worldPosition.copy(this.camera.position).add(screenPosition.multiplyScalar(distance)); // // return worldPosition; } } ================================================ FILE: packages/sdk/lib/dxf/drawShare.ts ================================================ import * as THREE from "three"; import { TextGeometry } from "three/examples/jsm/geometries/TextGeometry.js"; import { OrbitControls } from "three/examples/jsm/controls/OrbitControls.js"; import { TTFLoader } from "three/examples/jsm/loaders/TTFLoader.js"; // import { SSAARenderPass } from "three/examples/jsm/postprocessing/SSAARenderPass.js"; // import { UnrealBloomPass } from "three/examples/jsm/postprocessing/UnrealBloomPass.js"; // import { EffectComposer } from "three/examples/jsm/postprocessing/EffectComposer.js"; // import { ShaderPass } from 'three/examples/jsm/postprocessing/ShaderPass.js'; // import { OutputPass } from 'three/examples/jsm/postprocessing/OutputPass.js'; import { addTriangleFacingCamera, getBSplinePolyline, getBulgeCurvePoints, mtextContentAndFormattingToTextAndStyle } from "./drawUtils"; // @ts-ignore import { parseDxfMTextContent } from "@dxfom/mtext"; import { Font } from "three/examples/jsm/loaders/FontLoader.js"; import { PickHelper } from "./pickHelper"; import { DrawRect } from "./drawRect"; import log from '@/utils/log/Logger'; let signal, middleObject; let scene, helpScene, camera, renderer, inputElement, font, data; // 渲染辉光图层 // let composer, finalComposer; const BLOOM_SCENE = 10; const bloomLayer = new THREE.Layers(); bloomLayer.set(BLOOM_SCENE); // const DarkMaterial = new THREE.MeshBasicMaterial({ color: 'black' }); // const materials = {}; let modules: any = {}; // TODO 当前解析模式会存在 data.blocks 中还有实体但未匹配解析的情况; // 记录已经解析的 data.blocks,data.entities遍历完成后处理 let parsedBlocks: string[] = []; // 渲染配置项 && 对比度颜色实体集合 let options = { bgColor: 0x000000, contrastColor: 0xffffff, fontUrl:'' }, contrastEntity: any = []; // canvas默认宽高 export const state = { width: 500, height: 500, }; /** * 离屏canvas和普通canvas共用的绘制图纸方法 * 优先级:offScreenCanvas > canvas */ export function main(d) { const { canvas, onComplete } = d; signal = d.signal; middleObject = d.middleObject; state.width = canvas.width; state.height = canvas.height; inputElement = d.inputElement; data = d.data; // cad配置项 options = Object.assign(options, d.options); options.bgColor = Number(options.bgColor); options.contrastColor = options.bgColor === 0x000000 ? 0xffffff : 0x000000; createLineTypeShaders(); renderer = new THREE.WebGLRenderer({ canvas, powerPreference: "high-performance", depth: false, antialias: true, }); // 第三个参数false代表不更新canvas dom style renderer.setSize(canvas.width, canvas.height, false); renderer.setClearColor(options.bgColor, 1); renderer.toneMapping = THREE.ReinhardToneMapping; // renderer.autoClear = false; const loader = new TTFLoader(); loader.loadAsync(options.fontUrl).then(function (response) { font = new Font(response); init(); // OrbitControls mousemove事件中未调用chang事件,所以需要一直渲染 renderLoop(); // 添加灯光 scene.add(new THREE.AmbientLight(0xffffff, 1)); // 后期通道 // initComposer(); const controls = new OrbitControls(camera, inputElement); controls.target.x = camera.position.x; controls.target.y = camera.position.y; controls.target.z = 0; controls.mouseButtons = { LEFT: THREE.MOUSE.PAN, MIDDLE: THREE.MOUSE.DOLLY, RIGHT: THREE.MOUSE.ROTATE }; controls.enableRotate = false; controls.update(); // 注册模块 modules.drawRect = new DrawRect(inputElement, helpScene, camera, signal, middleObject); modules.drawRect.setControls(controls); const pickPosition = new THREE.Vector2(0, 0); modules.pickHelper = new PickHelper(scene, camera, BLOOM_SCENE); clearPickPosition(); function getCanvasRelativePosition(event) { const rect = inputElement.getBoundingClientRect(); return { x: event.clientX - rect.left, y: event.clientY - rect.top, }; } function setPickPosition(event) { const pos = getCanvasRelativePosition(event); pickPosition.x = (pos.x / state.width) * 2 - 1; pickPosition.y = (pos.y / state.height) * - 2 + 1; modules.pickHelper.pick(pickPosition); } function clearPickPosition() { //不像鼠标总是有一个位置,如果用户停止触摸屏幕,我们想要停止。现在我们只取一个不太可能取到的值 pickPosition.x = - 100000; pickPosition.y = - 100000; } inputElement.addEventListener('mousemove', setPickPosition); inputElement.addEventListener('mouseout', clearPickPosition); inputElement.addEventListener('mouseleave', clearPickPosition); inputElement.addEventListener('touchstart', (event) => { // 防止窗口滚动 event.preventDefault(); setPickPosition(event.touches[0]); }, { passive: false }); inputElement.addEventListener('touchmove', (event) => { setPickPosition(event.touches[0]); }); inputElement.addEventListener('touchend', clearPickPosition); // 加载完毕 onComplete && onComplete(); font = undefined; data = undefined; resize({ width: inputElement.width, height: inputElement.height }); }); } function createLineTypeShaders() { let ltype, type; if (!data.tables || !data.tables.lineType) return; const ltypes = data.tables.lineType.lineTypes; for (type in ltypes) { ltype = ltypes[type]; if (!ltype.pattern) continue; ltype.material = createDashedLineShader(ltype.pattern); } } function createDashedLineShader(pattern) { let dashedLineShader: any = {}, totalLength = 0.0; for (let i = 0; i < pattern.length; i++) { totalLength += Math.abs(pattern[i]); } dashedLineShader.uniforms = THREE.UniformsUtils.merge([ THREE.UniformsLib['common'], THREE.UniformsLib['fog'], { // @ts-ignore 'pattern': { type: 'fv1', value: pattern }, // @ts-ignore 'patternLength': { type: 'f', value: totalLength } } ]); dashedLineShader.vertexShader = [ 'attribute float lineDistance;', 'varying float vLineDistance;', THREE.ShaderChunk['color_pars_vertex'], 'void main() {', THREE.ShaderChunk['color_vertex'], 'vLineDistance = lineDistance;', 'gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );', '}' ].join('\n'); dashedLineShader.fragmentShader = [ 'uniform vec3 diffuse;', 'uniform float opacity;', 'uniform float pattern[' + pattern.length + '];', 'uniform float patternLength;', 'varying float vLineDistance;', THREE.ShaderChunk['color_pars_fragment'], THREE.ShaderChunk['fog_pars_fragment'], 'void main() {', 'float pos = mod(vLineDistance, patternLength);', 'for ( int i = 0; i < ' + pattern.length + '; i++ ) {', 'pos = pos - abs(pattern[i]);', 'if( pos < 0.0 ) {', 'if( pattern[i] > 0.0 ) {', 'gl_FragColor = vec4(1.0, 0.0, 0.0, opacity );', 'break;', '}', 'discard;', '}', '}', THREE.ShaderChunk['color_fragment'], THREE.ShaderChunk['fog_fragment'], '}' ].join('\n'); return dashedLineShader; } function init() { scene = new THREE.Scene(); scene.background = new THREE.Color(options.bgColor); helpScene = new THREE.Scene(); const layersGroupMap: Map = new Map(); // 使用layers生成group for (let layerName in data.tables.layer.layers) { const layer = data.tables.layer.layers[layerName]; const group = new THREE.Group(); group.name = layerName; group.visible = layer.visible; layersGroupMap.set(layerName, group); scene.add(group); } // 通过dxf数据创建场景 let entity, obj; // 生成所有实体 for (let i = 0; i < data.entities?.length; i++) { entity = data.entities[i]; obj = drawEntity(entity); if (obj) { if (layersGroupMap.has(entity.layer)) { const parent = layersGroupMap.get(entity.layer) || scene; parent.add(obj); obj.name = `${entity.type}-${entity.handle || 'noHandle'}-${parent.children.length}` } else { scene.add(obj); obj.name = `${entity.type}-${entity.handle || 'noHandle'}-${scene.children.length}` } } obj = null; } // 2023-9-6:遍历所有剩下的未遍历的块,找出其中 INSERT/DIMENSION 类型的实体,进行解析.(非此类型就算解析位置也不正确) // TODO 待删除 for (let blockName in data.blocks) { const block = data.blocks[blockName]; if (parsedBlocks.includes(blockName) || !block.position || !block.entities) continue; for (let j = 0; j < block.entities.length; j++) { entity = block.entities[j]; if (entity.type == "INSERT" || entity.type == "DIMENSION") { // TODO 容易栈溢出 // obj = this.drawEntity(entity); // // if (obj) { // const bbox = new THREE.Box3().setFromObject(obj); // if (isFinite(bbox.min.x) && (dims.min.x > bbox.min.x)) dims.min.x = bbox.min.x; // if (isFinite(bbox.min.y) && (dims.min.y > bbox.min.y)) dims.min.y = bbox.min.y; // if (isFinite(bbox.min.z) && (dims.min.z > bbox.min.z)) dims.min.z = bbox.min.z; // if (isFinite(bbox.max.x) && (dims.max.x < bbox.max.x)) dims.max.x = bbox.max.x; // if (isFinite(bbox.max.y) && (dims.max.y < bbox.max.y)) dims.max.y = bbox.max.y; // if (isFinite(bbox.max.z) && (dims.max.z < bbox.max.z)) dims.max.z = bbox.max.z; // this.scene.add(obj); // } // obj = null; } } } const aspectRatio = state.width / state.height; const dims = new THREE.Box3().setFromObject(scene); const upperRightCorner = { x: dims.max.x, y: dims.max.y }; const lowerLeftCorner = { x: dims.min.x, y: dims.min.y }; //const lowerLeftCorner = data.header.$EXTMIN; // X、Y 和 Z 图形范围左下角(在 WCS 中) //const upperRightCorner = data.header.$EXTMAX; // X、Y 和 Z 图形范围右上角(在 WCS 中) // 找出当前的视口范围 let vp_width = upperRightCorner.x - lowerLeftCorner.x; let vp_height = upperRightCorner.y - lowerLeftCorner.y; let center = { x: vp_width / 2 + lowerLeftCorner.x, y: vp_height / 2 + lowerLeftCorner.y }; //let center = data.tables.viewPort.viewPorts[0].ucsOrigin; // 将所有对象放入当前的查看器中 const extentsAspectRatio = Math.abs(vp_width / vp_height); if (aspectRatio > extentsAspectRatio) { vp_width = vp_height * aspectRatio; } else { vp_height = vp_width / aspectRatio; } const viewPort = { bottom: -vp_height / 2, left: -vp_width / 2, top: vp_height / 2, right: vp_width / 2, center: { x: center.x, y: center.y } }; camera = new THREE.OrthographicCamera(viewPort.left, viewPort.right, viewPort.top, viewPort.bottom, 1, 19); camera.position.z = 1; camera.position.x = viewPort.center.x; camera.position.y = viewPort.center.y; camera.userData.viewPort = viewPort; // 销毁中间变量 layersGroupMap.clear(); } // function initComposer() { // const pixelRatio = renderer.getPixelRatio(); // // composer = new EffectComposer(renderer); // composer.renderToScreen = false; // composer.setPixelRatio(pixelRatio) // // let ssaaRenderPass = new SSAARenderPass(scene, camera); // ssaaRenderPass.unbiased = false; // ssaaRenderPass.sampleLevel = 2; // composer.addPass(ssaaRenderPass); // // const bloomPass = new UnrealBloomPass( // //参数一:泛光覆盖场景大小,二维向量类型 // new THREE.Vector2(inputElement.width, inputElement.height), // //参数二:bloomStrength 泛光强度,值越大明亮的区域越亮,较暗区域变亮的范围越广 // 1.5, // //参数三:bloomRadius 泛光散发半径 // 0, // //参数四:bloomThreshold 泛光的光照强度阈值,如果照在物体上的光照强度大于该值就会产生泛光 // 0 // ); // composer.addPass(bloomPass); // // const mixPass = new ShaderPass( // new THREE.ShaderMaterial({ // uniforms: { // baseTexture: { value: null }, // bloomTexture: { value: composer.renderTarget2.texture } // }, // vertexShader: ` // varying vec2 vUv; // void main() { // vUv = uv; // gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 ); // } // `, // fragmentShader: ` // uniform sampler2D baseTexture; // uniform sampler2D bloomTexture; // varying vec2 vUv; // void main() { // gl_FragColor = ( texture2D( baseTexture, vUv ) + vec4( 1.0 ) * texture2D( bloomTexture, vUv ) ); // }`, // defines: {} // }), 'baseTexture' // ); // mixPass.needsSwap = true; // // const outputPass = new OutputPass(); // // finalComposer = new EffectComposer(renderer); // finalComposer.addPass(ssaaRenderPass); // finalComposer.addPass(mixPass); // finalComposer.addPass(outputPass); // } // 图元选中 export function select({ modelOrName }) { let model = modelOrName; if (typeof modelOrName === 'string') { model = scene.getObjectByProperty('name', modelOrName); } if (model) { modules.pickHelper.select(model); } } /** ------------------------------------------实体解析部分-------------------------------------------------------- **/ function getColor(entity) { let color = options.contrastColor;//默认高对比度颜色 if (entity.color !== undefined) color = entity.color; else if (data.tables && data.tables.layer && data.tables.layer.layers[entity.layer]) color = data.tables.layer.layers[entity.layer].color; // 因为 scene.background = new THREE.Color(options.bgColor),所以黑色显示时改为白色 if (color == null || color === 0 || color === options.bgColor) { color = options.contrastColor; } return color; } function drawEntity(entity) { // 2023-9-6: 仅解析模型空间的实体 if (entity.inPaperSpace) return null; let mesh; switch (entity.type) { case 'CIRCLE': case 'ARC': mesh = drawArc(entity); break; case 'LWPOLYLINE': case 'LINE': case 'POLYLINE': mesh = drawLine(entity); break; case 'TEXT': mesh = drawText(entity); break; case 'ATTDEF': mesh = drawAttdef(entity); break; case 'ATTRIB': mesh = drawAttrib(entity); break; case 'SOLID': mesh = drawSolid(entity); break; case 'POINT': mesh = drawPoint(entity); break; case 'INSERT': mesh = drawBlock(entity); break; case 'SPLINE': mesh = drawSpline(entity); break; case 'MTEXT': // console.log("实体类型 MTEXT:", entity); mesh = drawMtext(entity); break; case 'ELLIPSE': mesh = drawEllipse(entity); break; case "HATCH": mesh = drawHatch(entity); break; case 'DIMENSION': const dimTypeEnum = entity.dimensionType & 7; if (dimTypeEnum === 0) { mesh = drawDimension(entity); } else { //console.log("不支持的维度类型: " + dimTypeEnum); } break; default: log.warn("不支持的实体类型: " + entity.type); break; } if (mesh?.material && mesh.material?.color.getHex() === options.contrastColor) { contrastEntity.push(mesh) } return mesh; } function drawArc(entity) { let startAngle: number, endAngle: number; if (entity.type === 'CIRCLE') { startAngle = entity.startAngle || 0; endAngle = startAngle + 2 * Math.PI; } else { startAngle = entity.startAngle; endAngle = entity.endAngle; } //@ts-ignore const curve = new THREE.ArcCurve( 0, 0, entity.radius, startAngle, endAngle); const points = curve.getPoints(32); const geometry = new THREE.BufferGeometry().setFromPoints(points); const material = new THREE.LineBasicMaterial({ color: getColor(entity) }); const arc = new THREE.Line(geometry, material); arc.position.x = entity.center.x; arc.position.y = entity.center.y; arc.position.z = entity.center.z; return arc; } function drawLine(entity) { let points: THREE.Vector3[] = []; let color = getColor(entity); let material, lineType, vertex, startPoint, endPoint, bulge, i, line; if (!entity.vertices) return; //console.log('缺少顶点的实体.'); // 创建几何 for (i = 0; i < entity.vertices.length; i++) { if (entity.vertices[i].bulge) { bulge = entity.vertices[i].bulge; startPoint = entity.vertices[i]; endPoint = i + 1 < entity.vertices.length ? entity.vertices[i + 1] : points[0]; let bulgePoints = getBulgeCurvePoints(startPoint, endPoint, bulge); points.push.apply(points, bulgePoints); } else { vertex = entity.vertices[i]; points.push(new THREE.Vector3(vertex.x, vertex.y, 0)); } } if (entity.shape) points.push(points[0]); // 设置材质 if (entity.lineType) { lineType = data.tables.lineType.lineTypes[entity.lineType]; } if (lineType && lineType.pattern && lineType.pattern.length !== 0) { material = new THREE.LineDashedMaterial({ color: color, gapSize: 4, dashSize: 4 }); } else { material = new THREE.LineBasicMaterial({ linewidth: 1, color: color }); } const geometry = new THREE.BufferGeometry().setFromPoints(points); line = new THREE.Line(geometry, material); return line; } function drawText(entity) { let geometry, material, text; if (!font) return log.warn('文本不支持没有Three.js字体加载的THREE.FontLoader!'); if (entity.text == null || entity.text == "") return null; if (entity.textHeight == null || entity.textHeight == 0) return null; // 当前使用的字体略宽,需要缩小一点 // xScale: 相对 X 比例因子 — 宽度 let fontSize = entity.xScale ? entity.xScale * entity.textHeight * 0.73 : entity.textHeight * 0.5; geometry = new TextGeometry(entity.text, { font: font, depth: 0, size: fontSize || 100 }); if (entity.rotation) { const zRotation = entity.rotation * Math.PI / 180; geometry.rotateZ(zRotation); } material = new THREE.MeshBasicMaterial({ color: getColor(entity) }); text = new THREE.Mesh(geometry, material); text.position.x = entity.startPoint.x; text.position.y = entity.startPoint.y; text.position.z = entity.startPoint.z; return text; } function drawMtext(entity) { const color = getColor(entity); const textAndControlChars = parseDxfMTextContent(entity.text); //Note: 目前只支持应用于所有mtext文本的单一格式 const content = mtextContentAndFormattingToTextAndStyle(textAndControlChars, entity, color); /* 单行文本渲染模式 */ if (!font) return log.warn('文本不支持没有Three.js字体加载的THREE.FontLoader!'); if (content.text == null || content.text == "") return null; if (content.style.textHeight == null || content.style.textHeight == 0) return null; const geometry = new TextGeometry(content.text, { font: font, depth: 0, size: content.style.textHeight || 100 }); if (entity.rotation) { const zRotation = entity.rotation * Math.PI / 180; geometry.rotateZ(zRotation); } if (entity.directionVector) { const dv = entity.directionVector; geometry.rotateZ(new THREE.Vector3(1, 0, 0).angleTo(new THREE.Vector3(dv.x, dv.y, dv.z))); } const material = new THREE.MeshBasicMaterial({ color }); const text = new THREE.Mesh(geometry, material); text.position.x = entity.position.x; text.position.y = entity.position.y; text.position.z = entity.position.z; return text; /* TODO:多行文本渲染,拉近不显示 */ /*const txt = createTextForScene(content.text, content.style, entity, color,options.fontUrl); if (!txt) return null; console.log("MText txt:", txt); // const group = new THREE.Object3D(); // group.add(txt); return txt;*/ } // @ts-ignore function drawAttdef(entity) { //console.log("drawAttdef:", entity); } // @ts-ignore function drawAttrib(entity) { //console.log("drawAttrib:", entity); } function drawSolid(entity) { let material, verts, geometry = new THREE.BufferGeometry(); const points = entity.points; // verts = geometry.vertices; verts = []; addTriangleFacingCamera(verts, points[0], points[1], points[2]); addTriangleFacingCamera(verts, points[1], points[2], points[3]); material = new THREE.MeshBasicMaterial({ color: getColor(entity) }); geometry.setFromPoints(verts); return new THREE.Mesh(geometry, material); } function drawPoint(entity) { let geometry, material; geometry = new THREE.BufferGeometry(); geometry.setAttribute('position', new THREE.Float32BufferAttribute([entity.position.x, entity.position.y, entity.position.z], 3)); const color = getColor(entity); material = new THREE.PointsMaterial({ size: 0.1, color: new THREE.Color(color) }); return new THREE.Points(geometry, material); // this.scene.add(point); } function drawBlock(entity) { if (!data.blocks) return; let block = data.blocks[entity.name]; if (!block) return null; // 解析过的就存储起来,不再重复解析 parsedBlocks.push(entity.name); if (!block.entities) return null; const group = new THREE.Group(); if (entity.xScale) group.scale.x = entity.xScale; if (entity.yScale) group.scale.y = entity.yScale; if (entity.rotation) { group.rotation.z = entity.rotation * Math.PI / 180; } if (entity.position) { group.position.x = entity.position.x; group.position.y = entity.position.y; group.position.z = entity.position.z; } for (let i = 0; i < block.entities.length; i++) { const childEntity = drawEntity(block.entities[i]); if (childEntity) group.add(childEntity); } return group; } function drawSpline(entity) { if (entity.controlPoints === undefined) return null; const color = getColor(entity); const points = getBSplinePolyline(entity.controlPoints, entity.degreeOfSplineCurve, entity.knotValues, 100, undefined); const geometry = new THREE.BufferGeometry().setFromPoints(points); const material = new THREE.LineBasicMaterial({ linewidth: 1, color: color }); return new THREE.Line(geometry, material); } function drawEllipse(entity) { const color = getColor(entity); const xrad = Math.sqrt(Math.pow(entity.majorAxisEndPoint.x, 2) + Math.pow(entity.majorAxisEndPoint.y, 2)); const yrad = xrad * entity.axisRatio; const rotation = Math.atan2(entity.majorAxisEndPoint.y, entity.majorAxisEndPoint.x); const curve = new THREE.EllipseCurve( entity.center.x, entity.center.y, xrad, yrad, entity.startAngle, entity.endAngle, false, // Always counterclockwise rotation ); const points = curve.getPoints(50); const geometry = new THREE.BufferGeometry().setFromPoints(points); const material = new THREE.LineBasicMaterial({ linewidth: 1, color: color }); // 创建要添加到场景中的最后一个对象 return new THREE.Line(geometry, material); } function drawHatch(entity) { if (entity.isSolid) return // TODO 未实现 } function drawDimension(entity) { if (!data.blocks) return; // console.log("drawDimension", entity.block) const block = data.blocks[entity.block]; // 解析过的就存储起来,不再重复解析 parsedBlocks.push(entity.block); if (!block || !block.entities) return null; const group = new THREE.Group(); // if(entity.anchorPoint) { // group.position.x = entity.anchorPoint.x; // group.position.y = entity.anchorPoint.y; // group.position.z = entity.anchorPoint.z; // } for (let i = 0; i < block.entities.length; i++) { const childEntity = drawEntity(block.entities[i]); if (childEntity) group.add(childEntity); } return group; } /** ------------------------------------------实体解析结束-------------------------------------------------------- **/ // 设置图层可见性 export function setLayerVisible(data: { layerName: string, visible: boolean }) { const group = scene.getObjectByName(data.layerName); if (group) group.visible = data.visible; } // 调用modules里的方法 export function callModuleMethod(data: { moduleName: string, methodName: string }) { const module = modules[data.moduleName]; if (module && module[data.methodName]) { module[data.methodName](data); } } // 相机复位 export function resetCamera() { const viewPort = camera.userData.viewPort; if (!viewPort) return; camera.left = viewPort.left; camera.right = viewPort.right; camera.top = viewPort.top; camera.bottom = viewPort.bottom; camera.position.z = 1; camera.position.x = viewPort.center.x; camera.position.y = viewPort.center.y; modules.drawRect.controls.target.x = camera.position.x; modules.drawRect.controls.target.y = camera.position.y; modules.drawRect.controls.target.z = 0; modules.drawRect.controls.object.zoom = 1; modules.drawRect.controls.update(); } //let start; export function resize({ width, height }) { if (!camera || data) return; const hscale = width / state.width; const vscale = height / state.height; state.width = width; state.height = height; camera.top = (vscale * camera.top); camera.bottom = (vscale * camera.bottom); camera.left = (hscale * camera.left); camera.right = (hscale * camera.right); camera.updateProjectionMatrix(); renderer.setSize(width, height, false); // composer.setSize(width, height); // finalComposer.setSize(width, height); render(); } // // function darkenNonBloomed(obj) { // if (obj.material && bloomLayer.test(obj.layers) === false) { // materials[obj.uuid] = obj.material; // obj.material = DarkMaterial; // } // } // // function restoreMaterial(obj) { // if (materials[obj.uuid]) { // obj.material = materials[obj.uuid]; // delete materials[obj.uuid]; // } // } export function render() { renderer.autoClear = false; // scene.traverse(darkenNonBloomed); // composer.render(); // scene.traverse(restoreMaterial); // finalComposer.render(); renderer.render(scene, camera); renderer.render(helpScene, camera); renderer.autoClear = true; } export function stopRender() { renderer.setAnimationLoop(null) } export function renderLoop() { renderer.setAnimationLoop(render) } export function helpRender() { renderer.autoClear = false; renderer.render(helpScene, camera); } export function dispose() { data = undefined; font = undefined; renderer.setAnimationLoop(null) renderer?.dispose(); scene.children.forEach((obj) => { scene.remove(obj); }) camera.remove(); scene.remove(); } /** ---------------------------- 设置弹窗配置变化 ---------------------------------- */ export function changeClearColor(color: 0x000000 | 0xffffff) { options.bgColor = color; options.contrastColor = options.bgColor === 0x000000 ? 0xffffff : 0x000000; scene.background = new THREE.Color(options.bgColor); contrastEntity.forEach(mesh => { if (!mesh.material || !mesh.material.color) return; mesh.material.color = new THREE.Color(options.contrastColor); }) } ================================================ FILE: packages/sdk/lib/dxf/drawUtils.ts ================================================ import {Vector2, Vector3} from "three"; import bSpline from './bspline'; import {Text} from "./troika-three-text.esm.js"; // Three.js 扩展函数 const THREEx: { Math: { angle2: (p1: { x: number, y: number }, p2: { x: number, y: number }) => number, polar: (point: { x: number, y: number }, distance: number, angle: number) => { x: number, y: number }, } } = { Math: { /** * 返回向量(p1,p2)的弧度角。换句话说,想象把向量的底放在坐标(0,0)处,然后求向量(1,0)到(p1,p2)的夹角。 * @param {{x:number,y:number}} p1 起始点坐标 * @param {{x:number,y:number}} p2 结束点坐标 * @return {Number} the angle */ angle2: (p1: { x: number; y: number; }, p2: { x: number; y: number; }): number => { const v1 = new Vector2(p1.x, p1.y); const v2 = new Vector2(p2.x, p2.y); v2.sub(v1); // sets v2 to be our chord v2.normalize(); if (v2.y < 0) return -Math.acos(v2.x); return Math.acos(v2.x); }, polar: (point, distance, angle) => { return { x: point.x + distance * Math.cos(angle), y: point.y + distance * Math.sin(angle) }; } } } /** * 使用凸起值计算两点之间曲线的点。通常用于折线 * @param startPoint - 曲线的起点 * @param endPoint - 曲线的终点 * @param bulge - 凸起值:表示要弯曲多少的值 * @param {number} segments - 曲线的分段数 */ export function getBulgeCurvePoints(startPoint: { x: number; y: number; }, endPoint: { x: number | undefined; y: number | undefined; }, bulge: number, segments?: number | undefined) { let vertex: { x: number, y: number }, i: number, center: { x: number, y: number }, p0: Vector2, p1: Vector2, angle: number, radius: number, startAngle: number, thetaAngle: number; p0 = startPoint ? new Vector2(startPoint.x, startPoint.y) : new Vector2(0, 0); p1 = endPoint ? new Vector2(endPoint.x, endPoint.y) : new Vector2(1, 0); bulge = bulge || 1; const obj = { startPoint: p0, endPoint: p1, bulge: bulge, segments: segments || 100 }; angle = 4 * Math.atan(bulge); radius = p0.distanceTo(p1) / 2 / Math.sin(angle / 2); center = THREEx.Math.polar(startPoint, radius, THREEx.Math.angle2(p0, p1) + (Math.PI / 2 - angle / 2)); // 默认情况下,每10度需要一个段 obj.segments = segments = segments || Math.max(Math.abs(Math.ceil(angle / (Math.PI / 18))), 6); startAngle = THREEx.Math.angle2(center, p0); thetaAngle = angle / segments; const vertices: Array = []; vertices.push(new Vector3(p0.x, p0.y, 0)); for (i = 1; i <= segments - 1; i++) { vertex = THREEx.Math.polar(center, Math.abs(radius), startAngle + thetaAngle * i); vertices.push(new Vector3(vertex.x, vertex.y, 0)); } return vertices; } /** * 插值一条b样条。该算法检查结向量以创建分段进行插值。参数化值被重新归一化为[0,1],因为这是库所期望的(并且在b样条库中被反归一化) * @param controlPoints the control points * @param degree the b-spline degree * @param knots the knot vector * @returns the polyline */ export function getBSplinePolyline(controlPoints, degree, knots, interpolationsPerSplineSegment, weights) { const polyline: Vector2[] = [] const controlPointsForLib = controlPoints.map(function (p) { return [p.x, p.y] }) const segmentTs = [knots[degree]] const domain = [knots[degree], knots[knots.length - 1 - degree]] for (let k = degree + 1; k < knots.length - degree; ++k) { if (segmentTs[segmentTs.length - 1] !== knots[k]) { segmentTs.push(knots[k]) } } interpolationsPerSplineSegment = interpolationsPerSplineSegment || 25 for (let i = 1; i < segmentTs.length; ++i) { const uMin = segmentTs[i - 1] const uMax = segmentTs[i] for (let k = 0; k <= interpolationsPerSplineSegment; ++k) { const u = k / interpolationsPerSplineSegment * (uMax - uMin) + uMin // Clamp t to 0, 1 to handle numerical precision issues let t = (u - domain[0]) / (domain[1] - domain[0]) t = Math.max(t, 0) t = Math.min(t, 1) const p = bSpline(t, degree, controlPointsForLib, knots, weights) polyline.push(new Vector2(p[0], p[1])); } } return polyline } export function addTriangleFacingCamera(verts, p0, p1, p2) { // 计算这些点面对的方向(顺时针还是逆时针) const vector1 = new Vector3(); const vector2 = new Vector3(); vector1.subVectors(p1, p0); vector2.subVectors(p2, p0); vector1.cross(vector2); const v0 = new Vector3(p0.x, p0.y, p0.z); const v1 = new Vector3(p1.x, p1.y, p1.z); const v2 = new Vector3(p2.x, p2.y, p2.z); // 如果z < 0,那么我们必须以相反的顺序来画 if (vector1.z < 0) { verts.push(v2, v1, v0); } else { verts.push(v0, v1, v2); } } export function mtextContentAndFormattingToTextAndStyle(textAndControlChars, entity, color) { let activeStyle = { horizontalAlignment: 'left', textHeight: entity.height } const text: string[] = []; for (let item of textAndControlChars) { if (typeof item === 'string') { if (item.startsWith('pxq') && item.endsWith(';')) { if (item.indexOf('c') !== -1) activeStyle.horizontalAlignment = 'center'; else if (item.indexOf('l') !== -1) activeStyle.horizontalAlignment = 'left'; else if (item.indexOf('r') !== -1) activeStyle.horizontalAlignment = 'right'; else if (item.indexOf('j') !== -1) activeStyle.horizontalAlignment = 'justify'; } else { text.push(item); } } else if (Array.isArray(item)) { const nestedFormat = mtextContentAndFormattingToTextAndStyle(item, entity, color); text.push(nestedFormat.text); } else if (typeof item === 'object') { if (item['S'] && item['S'].length === 3) { text.push(item['S'][0] + '/' + item['S'][2]); } else { // not yet supported. } } } return { text: text.join(), style: activeStyle } } export function createTextForScene(text, style, entity, color,fontUrl:string) { if (!text) return null; let textEnt:any = new Text(); textEnt.text = text.replaceAll('\\P', '\n').replaceAll('\\X', '\n'); textEnt.font = fontUrl; textEnt.fontSize = style.textHeight; textEnt.maxWidth = entity.width; textEnt.position.x = entity.position.x; textEnt.position.y = entity.position.y; textEnt.position.z = entity.position.z; textEnt.textAlign = style.horizontalAlignment; textEnt.color = color; if (entity.rotation) { textEnt.rotation.z = entity.rotation * Math.PI / 180; } if (entity.directionVector) { const dv = entity.directionVector; textEnt.rotation.z = new Vector3(1, 0, 0).angleTo(new Vector3(dv.x, dv.y, dv.z)); } switch (entity.attachmentPoint) { case 1: // Top Left textEnt.anchorX = 'left'; textEnt.anchorY = 'top'; break; case 2: // Top Center textEnt.anchorX = 'center'; textEnt.anchorY = 'top'; break; case 3: // Top Right textEnt.anchorX = 'right'; textEnt.anchorY = 'top'; break; case 4: // Middle Left textEnt.anchorX = 'left'; textEnt.anchorY = 'middle'; break; case 5: // Middle Center textEnt.anchorX = 'center'; textEnt.anchorY = 'middle'; break; case 6: // Middle Right textEnt.anchorX = 'right'; textEnt.anchorY = 'middle'; break; case 7: // Bottom Left textEnt.anchorX = 'left'; textEnt.anchorY = 'bottom'; break; case 8: // Bottom Center textEnt.anchorX = 'center'; textEnt.anchorY = 'bottom'; break; case 9: // Bottom Right textEnt.anchorX = 'right'; textEnt.anchorY = 'bottom'; break; default: return undefined; } textEnt.sync(() => { if (textEnt.textAlign !== 'left') { textEnt.geometry.computeBoundingBox(); const textWidth = textEnt.geometry.boundingBox.max.x - textEnt.geometry.boundingBox.min.x; if (textEnt.textAlign === 'center') textEnt.position.x += (entity.width - textWidth) / 2; if (textEnt.textAlign === 'right') textEnt.position.x += (entity.width - textWidth); } }); return textEnt; } export function findExtents(scene) { let minX; let maxX; let minY; let maxY; for (const child of scene.children) { if (child.position) { minX = Math.min(child.position.x, minX); minY = Math.min(child.position.y, minY); maxX = Math.max(child.position.x, maxX); maxY = Math.max(child.position.y, maxY); } } return {min: {x: minX, y: minY}, max: {x: maxX, y: maxY}}; } ================================================ FILE: packages/sdk/lib/dxf/index.ts ================================================ import * as DrawShare from "./drawShare"; import {useAddSignal, useDispatchSignal, useRemoveSignal} from "@/hooks"; import OffScreenCanvasWorker from './offScreenCanvas.worker.ts?worker&url'; import App from "@/core/app/App.ts"; /** ----------------- 离屏渲染中的事件处理--------------------------- **/ const mouseEventHandler = makeSendPropertiesHandler( [ 'ctrlKey', 'metaKey', 'shiftKey', 'button', 'pointerType', 'clientX', 'clientY', 'pageX', 'pageY', ] ); const wheelEventHandlerImpl = makeSendPropertiesHandler( [ 'deltaX', 'deltaY', ] ); const keydownEventHandler = makeSendPropertiesHandler( [ 'ctrlKey', 'metaKey', 'shiftKey', 'keyCode', ] ); function wheelEventHandler( event, sendFn ) { event.preventDefault(); wheelEventHandlerImpl( event, sendFn ); } function preventDefaultHandler( event ) { event.preventDefault(); } function copyProperties(src, properties, dst) { for ( const name of properties ) { dst[ name ] = src[ name ]; } } function makeSendPropertiesHandler( properties ) { return function sendProperties(event, sendFn) { const data = { type: event.type }; copyProperties( event, properties, data ); sendFn( data ); }; } function touchEventHandler(event, sendFn) { const touches: { pageX:number,pageY:number }[] = []; const data = { type: event.type, touches }; for ( let i = 0; i < event.touches.length; ++ i ) { const touch = event.touches[ i ]; touches.push({ pageX: touch.pageX, pageY: touch.pageY, }); } sendFn( data ); } // 四个方向键 const orbitKeys = { '37': true, // left '38': true, // up '39': true, // right '40': true, // down }; function filteredKeydownEventHandler(event, sendFn) { const { keyCode } = event; if (orbitKeys[keyCode]) { event.preventDefault(); keydownEventHandler( event, sendFn ); } } /** ----------------- 离屏渲染中的事件end --------------------------- **/ let nextProxyId = 0; /** * 转发 DOM 事件给Worker中的 ElementProxyReceiver */ class ElementProxy { readonly id: number; private worker: Worker; private element: HTMLElement; constructor(element, worker, eventHandlers) { this.id = nextProxyId++; this.worker = worker; this.element = element; // 注册一个响应元素id worker.postMessage({ type: 'makeProxy', data:{ id: this.id, } }); this.sendSize(); // 添加相应事件的监听 for (const [eventName, handler] of Object.entries(eventHandlers)) { element.addEventListener(eventName, (event) => { // @ts-ignore handler(event, this.sendEvent.bind(this)); }); } } sendEvent(data){ this.worker.postMessage({ type: 'event', data:{ id: this.id, data, } }); }; sendSize() { const rect = this.element.getBoundingClientRect(); this.sendEvent({ type: 'size', left: rect.left, top: rect.top, width: this.element.clientWidth, height: this.element.clientHeight, }); } } let cadDialogMoveFn; /** * dxf对象的查看器类 * @param {any} data - dxf对象 * @param {HTMLCanvasElement} canvas - three 画布 * @param {Number} width - 渲染画布的宽度,以像素为单位 * @param {Number} height - 渲染画布的高度,以像素为单位 * @constructor */ class DxfViewer { private worker:Worker | undefined; private resizeObserver: ResizeObserver; private proxy: ElementProxy | undefined; private middleObject:any = new Proxy({},{ set(target, p: string | symbol, newValue: any): boolean { target[p] = newValue; // switch (p) { // case "markList": // break; // } return true; } }) constructor(data: any, canvas: HTMLCanvasElement, width: number, height: number, onComplete?:()=>void) { //console.log('dxf data:', data); canvas.style.width = `${width}px`; canvas.style.height = `${height}px`; const cadFontUrl = new URL(import.meta.env.BASE_URL + 'resource/fonts/Alimama_DongFangDaKai_Regular.ttf', import.meta.url).href; // 检查是否支持离屏canvas if (canvas.transferControlToOffscreen) { // console.log('OffscreenCanvas supported'); // 创建Worker进行离屏渲染 this.worker = new Worker(OffScreenCanvasWorker, {type: 'module'}); const offscreen = canvas.transferControlToOffscreen(); offscreen.width = width; offscreen.height = height; // 添加鼠标事件的监听 const eventHandlers = { contextmenu: preventDefaultHandler, mousedown: mouseEventHandler, mousemove: mouseEventHandler, mouseup: mouseEventHandler, pointerdown: mouseEventHandler, pointermove: mouseEventHandler, pointerup: mouseEventHandler, touchstart: touchEventHandler, //touchmove: touchEventHandler, touchend: touchEventHandler, wheel: wheelEventHandler, keydown: filteredKeydownEventHandler, }; this.proxy = new ElementProxy(canvas, this.worker, eventHandlers); this.worker.postMessage({ type: 'start', data: { canvas: offscreen, canvasId: this.proxy.id, data:data, options: { bgColor:0x000000, contrastColor:0xffffff, fontUrl:cadFontUrl }, middleObject:{ markList: JSON.stringify(App.project.getKey("drawing.markList")), selectedRectIndex: App.project.getKey("drawing.selectedRectIndex"), } } }, [offscreen]); this.worker.onmessage = (event) => { const data = event.data; switch (data.type) { case 'complete': onComplete && onComplete(); break; case "signal": this.handleSignal(data.data) break; case "style": canvas.style[data.data.key] = data.data.value; break; case "middle": this.middleObject[data.data.key] = data.data.value; break; } } cadDialogMoveFn = this.proxy.sendSize.bind(this.proxy); useAddSignal("cadViewerResize",cadDialogMoveFn) }else{ canvas.width = width; canvas.height = height; //不支持离屏渲染 DrawShare.main({ canvas, inputElement:canvas, data:data, onComplete:onComplete, signal:this.handleSignal, options: { bgColor:0x000000, contrastColor:0xffffff, fontUrl:cadFontUrl }, middleObject:this.middleObject }); } // 监听窗口变化 this.resizeObserver = new ResizeObserver(entries => { canvas.style.width = `${entries[0].contentRect.width}px`; canvas.style.height = `${entries[0].contentRect.height}px`; const data = { width:entries[0].contentRect.width, height:entries[0].contentRect.height } if(this.worker){ this.worker.postMessage({ type:"resize", data }) this.proxy?.sendSize(); }else{ DrawShare.resize(data) } }); this.resizeObserver.observe(canvas.parentElement as HTMLDivElement); } // 触发signal handleSignal(args){ const {type,name,data} = args; switch (type) { case "dispatch": useDispatchSignal(name,...data) break; } } // 调用drawShare中的方法,data为传入的参数,对象展示 callMethod(methodName:string, data:any = {}){ if(this.worker){ this.worker.postMessage({ type:methodName, data, }) }else{ DrawShare[methodName](data); } } dispose() { if(this.worker){ this.worker.terminate(); useRemoveSignal("cadViewerResize",cadDialogMoveFn) }else{ DrawShare.dispose(); } this.resizeObserver.disconnect(); } /* ------------------- 需要共同实现的标记相关方法 ------------------------- */ // 获取选中的标记 get selectRectIndex(){ return this.middleObject.selectRectIndex; } // 删除选中的标记 deleteRect(){ const id = this.middleObject.selectRect?.id; if(!id) return; const elementId = this.middleObject.selectRect?.elementId; this.callMethod('callModuleMethod',{ moduleName: "drawRect", methodName: "deleteRect",elementId:elementId }) } // 根据模型选中对应标记 selectRect(uuid:string){ this.callMethod('callModuleMethod',{ moduleName: "drawRect", methodName: "setSelect",elementId:uuid }) } } export {DxfViewer} ================================================ FILE: packages/sdk/lib/dxf/offScreenCanvas.worker.ts ================================================ import {EventDispatcher} from "three"; import * as DrawShare from "./drawShare"; function noop() { } class ElementProxyReceiver extends EventDispatcher { // @ts-ignore private style: {}; // @ts-ignore private width: number; // @ts-ignore private height: number; // @ts-ignore private left: number; // @ts-ignore private top: number; constructor() { super(); // 因为OrbitControls尝试设置style.touchAction; this.style = new Proxy({}, { set(target: {}, p: string | symbol, newValue: any): boolean { self.postMessage({ type: 'style', data: { key: p, value: newValue } }); target[p] = newValue; return true; } }); } get clientWidth() { return this.width; } get clientHeight() { return this.height; } get offsetLeft() { return this.left; } get offsetTop() { return this.top; } // r132 版本的 OrbitControls 会调用这两个函数,也许我们应该实现一下 setPointerCapture() { } releasePointerCapture() { } getBoundingClientRect() { return { left: this.left, top: this.top, width: this.width, height: this.height, right: this.left + this.width, bottom: this.top + this.height, }; } // 触发事件 handleEvent(data) { if (data.type === 'size') { this.left = data.left; this.top = data.top; this.width = data.width; this.height = data.height; return; } data.preventDefault = noop; data.stopPropagation = noop; // @ts-ignore this.dispatchEvent(data); } focus() { // no-op } // ----------------------- 2024/04/12 r163 版本 OrbitControls 新增的函数调用 ------------------------------ getRootNode(){ return this; } } class ProxyManager { private readonly targets: {}; constructor() { this.targets = {}; this.handleEvent = this.handleEvent.bind(this); } /** * 通过一个id,可以生成一个响应对应id信息的 ElementProxyReceiver 对象。 * @param data */ makeProxy(data: { id: number }) { const {id} = data; this.targets[id] = new ElementProxyReceiver(); } getProxy(id: number) { return this.targets[id]; } handleEvent(data) { this.targets[data.id].handleEvent(data.data); } } /** ---------------- worker主体 ------------------ **/ const proxyManager = new ProxyManager(); const middleObject:any = new Proxy({}, { set(target: {}, p: string | symbol, newValue: any): boolean { self.postMessage({ type: 'middle', data: { key: p, value: newValue } }); target[p] = newValue; return true; } }); function start(data: { canvasId: number, canvas: HTMLCanvasElement, data: any,options,middleObject }) { const proxy = proxyManager.getProxy(data.canvasId); middleObject.markList = JSON.parse(data.middleObject.markList); middleObject.selectedRectIndex = data.middleObject.selectedRectIndex; DrawShare.main({ canvas: data.canvas, inputElement: proxy, data: data.data, options:data.options, onComplete: () => { self.postMessage({ type: 'complete' }); }, signal: (args: { type: 'add' | 'remove' | 'dispatch', name: string, data?: any }) => { self.postMessage({ type: 'signal', data: args }); }, middleObject }); } function makeProxy(data: { id: number }) { proxyManager.makeProxy(data); } const handlers = { start, makeProxy, event: proxyManager.handleEvent, }; self.onmessage = function ({data}) { const fn = handlers[data.type] || DrawShare[data.type]; if (typeof fn !== 'function') { throw new Error(`没有 ${data.type} 类型的处理程序!`); } fn(data.data); }; ================================================ FILE: packages/sdk/lib/dxf/parser/AutoCadColorIndex.ts ================================================ /** * AutoCad files sometimes use an indexed color value between 1 and 255 inclusive. * Each value corresponds to a color. index 1 is red, that is 16711680 or 0xFF0000. * index 0 and 256, while included in this array, are actually reserved for inheritance * values in AutoCad so they should not be used for index color lookups. */ export default [ 0, 16711680, 16776960, 65280, 65535, 255, 16711935, 16777215, 8421504, 12632256, 16711680, 16744319, 13369344, 13395558, 10027008, 10046540, 8323072, 8339263, 4980736, 4990502, 16727808, 16752511, 13382400, 13401958, 10036736, 10051404, 8331008, 8343359, 4985600, 4992806, 16744192, 16760703, 13395456, 13408614, 10046464, 10056268, 8339200, 8347455, 4990464, 4995366, 16760576, 16768895, 13408512, 13415014, 10056192, 10061132, 8347392, 8351551, 4995328, 4997670, 16776960, 16777087, 13421568, 13421670, 10000384, 10000460, 8355584, 8355647, 5000192, 5000230, 12582656, 14679935, 10079232, 11717734, 7510016, 8755276, 6258432, 7307071, 3755008, 4344870, 8388352, 12582783, 6736896, 10079334, 5019648, 7510092, 4161280, 6258495, 2509824, 3755046, 4194048, 10485631, 3394560, 8375398, 2529280, 6264908, 2064128, 5209919, 1264640, 3099686, 65280, 8388479, 52224, 6736998, 38912, 5019724, 32512, 4161343, 19456, 2509862, 65343, 8388511, 52275, 6737023, 38950, 5019743, 32543, 4161359, 19475, 2509871, 65407, 8388543, 52326, 6737049, 38988, 5019762, 32575, 4161375, 19494, 2509881, 65471, 8388575, 52377, 6737074, 39026, 5019781, 32607, 4161391, 19513, 2509890, 65535, 8388607, 52428, 6737100, 39064, 5019800, 32639, 4161407, 19532, 2509900, 49151, 8380415, 39372, 6730444, 29336, 5014936, 24447, 4157311, 14668, 2507340, 32767, 8372223, 26316, 6724044, 19608, 5010072, 16255, 4153215, 9804, 2505036, 16383, 8364031, 13260, 6717388, 9880, 5005208, 8063, 4149119, 4940, 2502476, 255, 8355839, 204, 6710988, 152, 5000344, 127, 4145023, 76, 2500172, 4129023, 10452991, 3342540, 8349388, 2490520, 6245528, 2031743, 5193599, 1245260, 3089996, 8323327, 12550143, 6684876, 10053324, 4980888, 7490712, 4128895, 6242175, 2490444, 3745356, 12517631, 14647295, 10027212, 11691724, 7471256, 8735896, 6226047, 7290751, 3735628, 4335180, 16711935, 16744447, 13369548, 13395660, 9961624, 9981080, 8323199, 8339327, 4980812, 4990540, 16711871, 16744415, 13369497, 13395634, 9961586, 9981061, 8323167, 8339311, 4980793, 4990530, 16711807, 16744383, 13369446, 13395609, 9961548, 9981042, 8323135, 8339295, 4980774, 4990521, 16711743, 16744351, 13369395, 13395583, 9961510, 9981023, 8323103, 8339279, 4980755, 4990511, 3355443, 5987163, 8684676, 11382189, 14079702, 16777215 ]; ================================================ FILE: packages/sdk/lib/dxf/parser/DimStyleCodes.ts ================================================ // 维度样式变量可以在DIMSTYLE表中使用,也可以在XDATA中的Dimension实体样式覆盖中使用。 const codes = new Map([ [140, "DIMTXT"], [142, "DIMTSZ"], [144, "DIMLFAC"], [147, "DIMGAP"], [173, "DIMSAH"], [175, "DIMSOXD"], [176, "DIMCLRD"], [177, "DIMCLRE"], [178, "DIMCLRT"], [271, "DIMDEC"], [278 ,"DIMDSEP"], [281, "DIMSD1"], [282, "DIMSD2"], [3, "DIMPOST"], [40, "DIMSCALE"], [41, "DIMASZ"], [42, "DIMEXO"], [44, "DIMEXE"], [45, "DIMRND"], [46, "DIMDLE"], [5, "DIMBLK"], [6, "DIMBLK1"], [7, "DIMBLK2"], [75, "DIMSE1"], [76, "DIMSE2"], [78, "DIMZIN"], ]) export default codes ================================================ FILE: packages/sdk/lib/dxf/parser/DxfArrayScanner.ts ================================================ import log from '@/utils/log/Logger'; export interface IGroup { code: number; value: number | string | boolean; } /** * DxfArrayScanner * * 基于AutoCAD 2012 DXF参考 * http://images.autodesk.com/adsk/files/autocad_2012_pdf_dxf-reference_enu.pdf * * 读取表示dxf文件行的数组。接受一个数组,并提供一个简单的接口来提取组代码和值对。 * @param data - 一个数组,其中每个元素表示DXF文件中的一行 * @constructor */ export default class DxfArrayScanner { private _pointer = 0; private _eof = false; public lastReadGroup: IGroup | undefined; private _data: string[]; constructor(data: string[]) { this._data = data; // console.log('this._data:', this._data); } /** * 从数组中获取下一组(代码、值)。组是数组中两个连续的元素。第一个是代码,第二个是值。 * @returns {{code: Number}|*} */ public next() { if (!this.hasNext()) { // console.log('this._eof:', this._eof); // console.log('this._pointer:', this._pointer); if (!this._eof){ log.error('输入结束异常:EOF组未在文件结束前读取。代码结束: ' + this._data[this._pointer]); }else{ log.error('在读取完 EOF 组后无法调用 `next`'); } this._eof = true; return { code: 0, value: 'EOF' }; } const group = { code: parseInt(this._data[this._pointer]) } as IGroup; if(isNaN(group.code)){ // 回退code: 如果当前code为NaN,很可能是因为当前行和上一行是连贯数据,被libreDWG解析为两行,所以要回退code采用同一个code解析 this._pointer--; group.code = parseInt(this._data[this._pointer - 1]); // TODO: 或者使用跳过当前行操作? // this._pointer++; // return this.next(); } this._pointer++; group.value = parseGroupValue(group.code, this._data[this._pointer].trim()); this._pointer++; // if (group.code === 0 && (group.value === 'EOF' || (group.value === 'ENDSEC' && !this.hasNext()))) this._eof = true; if (group.code === 0 && group.value === 'EOF') this._eof = true; this.lastReadGroup = group; return group; } public peek() { if (!this.hasNext()) { if (!this._eof) throw new Error('输入结束异常:EOF组未在文件结束前读取。代码结束: ' + this._data[this._pointer]); else throw new Error('Cannot call \'next\' after EOF group has been read'); } const group = { code: parseInt(this._data[this._pointer]) } as IGroup; group.value = parseGroupValue(group.code, this._data[this._pointer + 1].trim()); return group; } public rewind(numberOfGroups = 1) { this._pointer = this._pointer - numberOfGroups * 2; } /** * 如果存在另一个代码/值对(数组中的2个元素)则返回true。 * @returns {boolean} */ public hasNext() { // 检查我们是否读过EOF组代码 if (this._eof) { return false; } // 我们需要确保有两条线路可用 return this._pointer <= this._data.length - 2; } /** * 如果扫描器位于数组的末尾,则返回true * @returns {boolean} */ public isEOF() { return this._eof; } } /** * 将值解析为其适当类型。 * 参见本文件顶部提供的AutoCAD DXF 2012参考的第3-10页。 * * @param code * @param value * @returns {*} */ function parseGroupValue(code: number, value: string) { if (code <= 9) return value; if (code >= 10 && code <= 59) return parseFloat(value); if (code >= 60 && code <= 99) return parseInt(value); if (code >= 100 && code <= 109) return value; if (code >= 110 && code <= 149) return parseFloat(value); if (code >= 160 && code <= 179) return parseInt(value); if (code >= 210 && code <= 239) return parseFloat(value); if (code >= 270 && code <= 289) return parseInt(value); if (code >= 290 && code <= 299) return parseBoolean(value as '0' | '1'); if (code >= 300 && code <= 369) return value; if (code >= 370 && code <= 389) return parseInt(value); if (code >= 390 && code <= 399) return value; if (code >= 400 && code <= 409) return parseInt(value); if (code >= 410 && code <= 419) return value; if (code >= 420 && code <= 429) return parseInt(value); if (code >= 430 && code <= 439) return value; if (code >= 440 && code <= 459) return parseInt(value); if (code >= 460 && code <= 469) return parseFloat(value); if (code >= 470 && code <= 481) return value; if (code === 999) return value; if (code >= 1000 && code <= 1009) return value; if (code >= 1010 && code <= 1059) return parseFloat(value); if (code >= 1060 && code <= 1071) return parseInt(value); //log.warn('group代码没有定义的类型: %j', { code: code, value: value }); return value; } /** * 根据1或0值解析布尔值 * @param str * @returns {boolean} */ function parseBoolean(str: '0' | '1') { if (str === '0') return false; if (str === '1') return true; return str; // throw TypeError('String \'' + str + '\' cannot be cast to Boolean type'); } ================================================ FILE: packages/sdk/lib/dxf/parser/DxfParser.ts ================================================ import {Readable} from 'stream'; import DxfArrayScanner, {IGroup} from './DxfArrayScanner'; import AUTO_CAD_COLOR_INDEX from './AutoCadColorIndex'; import dimStyleCodes from './DimStyleCodes'; import Face from './entities/3dface'; import Arc from './entities/arc'; import AttDef from './entities/attdef'; import Attribute from './entities/attribute' import Circle from './entities/circle'; import Dimension from './entities/dimension'; import Ellipse from './entities/ellipse'; import Hatch from './entities/hatch'; import Insert from './entities/insert'; import Line from './entities/line'; import LWPolyline from './entities/lwpolyline'; import MText from './entities/mtext'; import Point from './entities/point'; import Polyline from './entities/polyline'; import Solid from './entities/solid'; import Spline from './entities/spline'; import Text from './entities/text'; import Vertex from './entities/vertex'; import log from '@/utils/log/Logger'; import IGeometry, {EntityName, IEntity, IPoint} from './entities/geomtry'; export interface IBlock { entities: IEntity[]; type: number; ownerHandle: string; // entities: any[]; xrefPath: string; name: string; name2: string; handle: string; layer: string; position: IPoint; paperSpace: boolean; } export interface IViewPort { name: string; lowerLeftCorner: IPoint; upperRightCorner: IPoint; center: IPoint; snapBasePoint: IPoint; snapSpacing: IPoint; gridSpacing: IPoint; viewDirectionFromTarget: IPoint; viewTarget: IPoint; lensLength: number; frontClippingPlane: string | number | boolean; backClippingPlane: string | number | boolean; viewHeight: number; snapRotationAngle: number; viewTwistAngle: number; orthographicType: string; ucsOrigin: IPoint; ucsXAxis: IPoint; ucsYAxis: IPoint; renderMode: string; defaultLightingType: string; defaultLightingOn: string; ownerHandle: string; ambientColor: number; viewMode: string; } export interface IViewPortTableDefinition { tableRecordsProperty: 'viewPorts'; tableName: 'viewPort'; dxfSymbolName: 'VPORT'; parseTableRecords(): IViewPort[]; } export interface ILineType { name: string; description: string; pattern: string[]; patternLength: number; } export interface ILineTypeTableDefinition { tableRecordsProperty: 'lineTypes'; tableName: 'lineType'; dxfSymbolName: 'LTYPE'; parseTableRecords(): Record; } export interface ILayer { name: string; visible: boolean; colorIndex: number; color: number; frozen: boolean; } export interface ILayerTableDefinition { tableRecordsProperty: 'layers'; tableName: 'layer'; dxfSymbolName: 'LAYER'; parseTableRecords(): Record; } export interface ITableDefinitions { VPORT: IViewPortTableDefinition; LTYPE: ILineTypeTableDefinition; LAYER: ILayerTableDefinition; DIMSTYLE: any; STYLE: any; } export interface IBaseTable { handle: string; ownerHandle: string; } export interface IViewPortTable extends IBaseTable { viewPorts: IViewPort[]; } export interface ILayerTypesTable extends IBaseTable { lineTypes: Record; } export interface ILayersTable extends IBaseTable { layers: Record; } export interface ITables { viewPort: IViewPortTable; lineType: ILayerTypesTable; layer: ILayersTable; } export type ITable = IViewPortTable | ILayerTypesTable | ILayersTable; export interface IDxf { header: Record; entities: IEntity[]; blocks: Record; tables: ITables; } function registerDefaultEntityHandlers(dxfParser: DxfParser) { // 这里支持的实体(一些实体代码仍然被重构到这个流中) dxfParser.registerEntityHandler(Face); dxfParser.registerEntityHandler(Arc); dxfParser.registerEntityHandler(AttDef); dxfParser.registerEntityHandler(Attribute); dxfParser.registerEntityHandler(Circle); dxfParser.registerEntityHandler(Dimension); dxfParser.registerEntityHandler(Ellipse); dxfParser.registerEntityHandler(Hatch); dxfParser.registerEntityHandler(Insert); dxfParser.registerEntityHandler(Line); dxfParser.registerEntityHandler(LWPolyline); dxfParser.registerEntityHandler(MText); dxfParser.registerEntityHandler(Point); dxfParser.registerEntityHandler(Polyline); dxfParser.registerEntityHandler(Solid); dxfParser.registerEntityHandler(Spline); dxfParser.registerEntityHandler(Text); dxfParser.registerEntityHandler(Vertex); } export default class DxfParser { private _entityHandlers = {} as Record; constructor() { registerDefaultEntityHandlers(this); } public parse(source: string | Readable) { if (typeof source === 'string') { return this._parse(source); } else { log.error('无法读取dxf源的类型: `' + typeof (source)); return null; } } public registerEntityHandler(handlerType: new () => IGeometry) { const instance = new handlerType(); this._entityHandlers[instance.ForEntityName] = instance; } public parseSync(source: string) { return this.parse(source); } public parseStream(stream: Readable) { let dxfString = ""; const self = this; return new Promise((res, rej) => { stream.on('data', (chunk) => { dxfString += chunk; }); stream.on('end', () => { try { res(self._parse(dxfString)); } catch (err) { rej(err); } }); stream.on('error', (err) => { rej(err); }); }); } private _parse(dxfString: string) { const dxf = {} as IDxf; let lastHandle = 0; const dxfLinesArray = dxfString.split(/\r\n|\r|\n/g); const scanner = new DxfArrayScanner(dxfLinesArray); if (!scanner.hasNext()) { log.error('当前 CAD 文件为空文件'); return dxf; } const self = this; let curr: IGroup; function parseAll() { curr = scanner.next(); while (!scanner.isEOF()) { if (curr.code === 0 && curr.value === 'SECTION') { curr = scanner.next(); // 确保我们读的是段代码 if (curr.code !== 2) { log.error(`Unexpected code ${debugCode(curr) } after 0:SECTION`); curr = scanner.next(); continue; } if (curr.value === 'HEADER') { dxf.header = parseHeader(); } else if (curr.value === 'BLOCKS') { dxf.blocks = parseBlocks(); } else if (curr.value === 'ENTITIES') { dxf.entities = parseEntities(false); } else if (curr.value === 'TABLES') { dxf.tables = parseTables(); } else if (curr.value === 'EOF') { log.debug('EOF'); } else { log.warn('Skipping section ' + curr.value); } } else { curr = scanner.next(); } // If is a new section } } /** * * @return {object} header */ function parseHeader() { // interesting variables: // $ACADVER, $VIEWDIR, $VIEWSIZE, $VIEWCTR, $TDCREATE, $TDUPDATE // http://www.autodesk.com/techpubs/autocad/acadr14/dxf/header_section_al_u05_c.htm // Also see VPORT table entries let currVarName = null as null | string; let currVarValue = null as null | IPoint | number; const header = {} as Record; // loop through header variables curr = scanner.next(); while (true) { if (groupIs(curr, 0, 'ENDSEC')) { if (currVarName) header[currVarName as string] = currVarValue!; break; } else if (curr.code === 9) { if (currVarName) header[currVarName as string] = currVarValue!; currVarName = curr.value as string; // Filter here for particular variables we are interested in } else { if (curr.code === 10) { currVarValue = {x: curr.value as number} as IPoint; } else if (curr.code === 20) { (currVarValue as IPoint).y = curr.value as number; } else if (curr.code === 30) { (currVarValue as IPoint).z = curr.value as number; } else { currVarValue = curr.value as number; } } curr = scanner.next(); } // console.log(util.inspect(header, { colors: true, depth: null })); curr = scanner.next(); // swallow up ENDSEC return header; } function parseBlocks() { const blocks = {} as Record; curr = scanner.next(); while (curr.value !== 'EOF') { if (groupIs(curr, 0, 'ENDSEC')) { break; } if (groupIs(curr, 0, 'BLOCK')) { const block = parseBlock(); ensureHandle(block); if (!block.name) { // log.error('block with handle "' + block.handle + '" is missing a name.'); // block.name = 'InvalidBlockName-' + block.ownerHandle; }else{ blocks[block.name] = block; } } else { logUnhandledGroup(curr); curr = scanner.next(); } } return blocks; } function parseBlock() { const block = {} as IBlock; curr = scanner.next(); while (curr.value !== 'EOF') { switch (curr.code) { case 1: block.xrefPath = curr.value as string; curr = scanner.next(); break; case 2: block.name = curr.value as string; curr = scanner.next(); break; case 3: block.name2 = curr.value as string; curr = scanner.next(); break; case 5: block.handle = curr.value as string; curr = scanner.next(); break; case 8: block.layer = curr.value as string; curr = scanner.next(); break; case 10: block.position = parsePoint(curr); curr = scanner.next(); break; case 67: block.paperSpace = (curr.value && curr.value == 1) ? true : false; curr = scanner.next(); break; case 70: if (curr.value != 0) { //if(curr.value & BLOCK_ANONYMOUS_FLAG) console.log(' Anonymous block'); //if(curr.value & BLOCK_NON_CONSTANT_FLAG) console.log(' Non-constant attributes'); //if(curr.value & BLOCK_XREF_FLAG) console.log(' Is xref'); //if(curr.value & BLOCK_XREF_OVERLAY_FLAG) console.log(' Is xref overlay'); //if(curr.value & BLOCK_EXTERNALLY_DEPENDENT_FLAG) console.log(' Is externally dependent'); //if(curr.value & BLOCK_RESOLVED_OR_DEPENDENT_FLAG) console.log(' Is resolved xref or dependent of an xref'); //if(curr.value & BLOCK_REFERENCED_XREF) console.log(' This definition is a referenced xref'); block.type = curr.value as number; } curr = scanner.next(); break; case 100: // ignore class markers curr = scanner.next(); break; case 330: block.ownerHandle = curr.value as string; curr = scanner.next(); break; case 0: if (curr.value == 'ENDBLK') break; block.entities = parseEntities(true); break; default: logUnhandledGroup(curr); curr = scanner.next(); } if (groupIs(curr, 0, 'ENDBLK')) { curr = scanner.next(); break; } } return block; } /** * parseTables * @return {Object} Object representing tables */ function parseTables() { const tables = {} as ITables; curr = scanner.next(); while (curr.value !== 'EOF') { if (groupIs(curr, 0, 'ENDSEC')) break; if (groupIs(curr, 0, 'TABLE')) { curr = scanner.next(); const tableDefinition = tableDefinitions[curr.value as keyof ITableDefinitions]; if (tableDefinition) { tables[tableDefinitions[curr.value as keyof ITableDefinitions].tableName] = parseTable(curr); } else { // log.debug('Unhandled Table ' + curr.value); } } else { // else ignored curr = scanner.next(); } } curr = scanner.next(); return tables; } const END_OF_TABLE_VALUE = 'ENDTAB'; function parseTable(group: IGroup) { const tableDefinition = tableDefinitions[group.value as keyof ITableDefinitions]; const table = {} as T; let expectedCount = 0; curr = scanner.next(); while (!groupIs(curr, 0, END_OF_TABLE_VALUE)) { switch (curr.code) { case 5: table.handle = curr.value as string; curr = scanner.next(); break; case 330: table.ownerHandle = curr.value as string; curr = scanner.next(); break; case 100: if (curr.value === 'AcDbSymbolTable') { // ignore curr = scanner.next(); } else { logUnhandledGroup(curr); curr = scanner.next(); } break; case 70: expectedCount = curr.value as number; curr = scanner.next(); break; case 0: if (curr.value === tableDefinition.dxfSymbolName) { table[tableDefinition.tableRecordsProperty] = tableDefinition.parseTableRecords(); } else { logUnhandledGroup(curr); curr = scanner.next(); } break; default: logUnhandledGroup(curr); curr = scanner.next(); } } const tableRecords = table[tableDefinition.tableRecordsProperty]; if (tableRecords) { let actualCount = (() => { if (tableRecords.constructor === Array) { return tableRecords.length; } else if (typeof (tableRecords) === 'object') { return Object.keys(tableRecords).length; } return undefined; })(); if (expectedCount !== actualCount) log.warn('Parsed ' + actualCount + ' ' + tableDefinition.dxfSymbolName + '\'s but expected ' + expectedCount); } curr = scanner.next(); return table; } function parseViewPortRecords() { const viewPorts = [] as IViewPort[]; // 多个表项可以具有相同的名称,表示多个视区配置 let viewPort = {} as IViewPort; curr = scanner.next(); while (!groupIs(curr, 0, END_OF_TABLE_VALUE)) { switch (curr.code) { case 2: // 视口名 viewPort.name = curr.value as string; curr = scanner.next(); break; case 10: // 视口的左下角 viewPort.lowerLeftCorner = parsePoint(curr); curr = scanner.next(); break; case 11: // 视口右上角 viewPort.upperRightCorner = parsePoint(curr); curr = scanner.next(); break; case 12: // 视口中心点(在 DCS 中) viewPort.center = parsePoint(curr); curr = scanner.next(); break; case 13: // 捕捉基点(在 DCS 中) viewPort.snapBasePoint = parsePoint(curr); curr = scanner.next(); break; case 14: // 捕捉间距 X 和 Y viewPort.snapSpacing = parsePoint(curr); curr = scanner.next(); break; case 15: // 栅格间距 X 和 Y viewPort.gridSpacing = parsePoint(curr); curr = scanner.next(); break; case 16: // 相对于目标点的观察方向(在 WCS 中) viewPort.viewDirectionFromTarget = parsePoint(curr); curr = scanner.next(); break; case 17: //观察目标点(在 WCS 中) viewPort.viewTarget = parsePoint(curr); curr = scanner.next(); break; case 42: // 焦距 viewPort.lensLength = curr.value as number; curr = scanner.next(); break; case 43: //前向剪裁平面(距目标点的偏移) viewPort.frontClippingPlane = curr.value; curr = scanner.next(); break; case 44: // 后向剪裁平面(距目标点的偏移) viewPort.backClippingPlane = curr.value; curr = scanner.next(); break; case 45: // 视图高度 viewPort.viewHeight = curr.value as number; curr = scanner.next(); break; case 50: // 捕捉旋转角度 viewPort.snapRotationAngle = curr.value as number; curr = scanner.next(); break; case 51: // 视图扭转角度 viewPort.viewTwistAngle = curr.value as number; curr = scanner.next(); break; case 71: // 视图模式(参见 VIEWMODE 系统变量) viewPort.viewMode = curr.value as string; curr = scanner.next(); break; case 79: // UCS 的正交类型 0 = UCS 不正交 1 = 俯视图;2 = 仰视图 3 = 主视图;4 = 后视图 5 = 左视图;6 = 右视图 viewPort.orthographicType = curr.value as string; curr = scanner.next(); break; case 110: // UCS 原点(在 DCS 中) viewPort.ucsOrigin = parsePoint(curr); curr = scanner.next(); break; case 111: // UCS X 轴 viewPort.ucsXAxis = parsePoint(curr); curr = scanner.next(); break; case 112: // UCS Y 轴 viewPort.ucsYAxis = parsePoint(curr); curr = scanner.next(); break; case 281: /* * 渲染模式: 0 = 二维优化(传统二维) 1 = 线框图 2 = 隐藏线 3 = 平面着色 4 = 体着色 5 = 带线框平面着色 6 = 带线框体着色 * 所有非二维优化渲染模式均使用新三维图形管道。这些值直接与 SHADEMODE 命令和 AcDbAbstractViewTableRecord::RenderMode 枚举相对应 */ viewPort.renderMode = curr.value as string; curr = scanner.next(); break; case 292: viewPort.defaultLightingOn = curr.value as string; curr = scanner.next(); break; case 330: viewPort.ownerHandle = curr.value as string; curr = scanner.next(); break; case 63: // These are all ambient color. Perhaps should be a gradient when multiple are set. case 421: case 431: viewPort.ambientColor = curr.value as number; curr = scanner.next(); break; case 0: // New ViewPort if (curr.value === 'VPORT') { viewPorts.push(viewPort); viewPort = {} as IViewPort; curr = scanner.next(); } break; default: logUnhandledGroup(curr); curr = scanner.next(); break; } } // Note: do not call scanner.next() here, // parseTable() needs the current group viewPorts.push(viewPort); return viewPorts; } function parseLineTypes() { const ltypes = {} as Record; let ltype = {} as ILineType; let length = 0; let ltypeName: string; curr = scanner.next(); while (!groupIs(curr, 0, 'ENDTAB')) { switch (curr.code) { case 2: ltype.name = curr.value as string; ltypeName = curr.value as string; curr = scanner.next(); break; case 3: ltype.description = curr.value as string; curr = scanner.next(); break; case 73: // Number of elements for this line type (dots, dashes, spaces); length = curr.value as number; if (length > 0) ltype.pattern = []; curr = scanner.next(); break; case 40: // total pattern length ltype.patternLength = curr.value as number; curr = scanner.next(); break; case 49: ltype.pattern.push(curr.value as string); curr = scanner.next(); break; case 0: if (length > 0 && length !== ltype.pattern.length) log.warn('lengths do not match on LTYPE pattern'); ltypes[ltypeName!] = ltype; ltype = {} as ILineType; curr = scanner.next(); break; default: curr = scanner.next(); } } ltypes[ltypeName!] = ltype; return ltypes; } function parseLayers() { const layers = {} as Record; let layer = {} as ILayer; let layerName: string | undefined; curr = scanner.next(); while (!groupIs(curr, 0, 'ENDTAB')) { switch (curr.code) { case 2: // layer name layer.name = curr.value as string; layerName = curr.value as string; curr = scanner.next(); break; case 62: // color, visibility // @ts-ignore layer.visible = curr.value >= 0; // TODO 0 and 256 are BYBLOCK and BYLAYER respectively. Need to handle these values for layers?. layer.colorIndex = Math.abs(curr.value as number); layer.color = getAcadColor(layer.colorIndex as number); curr = scanner.next(); break; case 70: // frozen layer layer.frozen = (((curr.value as number) & 1) != 0 || ((curr.value as number) & 2) != 0); curr = scanner.next(); break; case 0: // New Layer if (curr.value === 'LAYER') { layers[layerName!] = layer; layer = {} as ILayer; layerName = undefined; curr = scanner.next(); } break; default: logUnhandledGroup(curr); curr = scanner.next(); break; } } // Note: do not call scanner.next() here, // parseLayerTable() needs the current group layers[layerName!] = layer; return layers; } function parseDimStyles() { let dimStyles = {}, styleName: string | undefined, style: any = {}; curr = scanner.next(); while (!groupIs(curr, 0, 'ENDTAB')) { if (dimStyleCodes.has(curr.code)) { style[dimStyleCodes.get(curr.code) as string] = curr.value curr = scanner.next(); } else { switch (curr.code) { case 2: // style name style.name = curr.value; styleName = curr.value as string; curr = scanner.next(); break; case 0: // New style if (curr.value === 'DIMSTYLE') { // @ts-ignore dimStyles[styleName] = style; style = {}; styleName = undefined; curr = scanner.next(); } break; default: logUnhandledGroup(curr); curr = scanner.next(); break; } } } // Note: do not call scanner.next() here, // parseLayerTable() needs the current group dimStyles[styleName as string] = style; return dimStyles; } const parseStyles = function () { const styles = {}; let style: any = {}; let styleName; curr = scanner.next(); while (!groupIs(curr, 0, END_OF_TABLE_VALUE)) { switch (curr.code) { case 100: style.subClassMarker = curr.value; curr = scanner.next(); break; case 2: style.styleName = curr.value; styleName = curr.value; curr = scanner.next(); break; case 70: style.standardFlag = curr.value; curr = scanner.next(); break; case 40: style.fixedTextHeight = curr.value; curr = scanner.next(); break; case 41: style.widthFactor = curr.value; curr = scanner.next(); break; case 50: style.obliqueAngle = curr.value; curr = scanner.next(); break; case 71: style.textGenerationFlag = curr.value; curr = scanner.next(); break; case 42: style.lastHeight = curr.value; curr = scanner.next(); break; case 3: style.font = curr.value; curr = scanner.next(); break; case 4: style.bigFont = curr.value; curr = scanner.next(); break; case 1071: style.extendedFont = curr.value; curr = scanner.next(); break; case 0: if (curr.value === 'STYLE') { styles[styleName] = style; style = {}; styleName = undefined; curr = scanner.next(); } break; default: logUnhandledGroup(curr); curr = scanner.next(); break; } } styles[styleName] = style; return styles; }; const tableDefinitions = { VPORT: { tableRecordsProperty: 'viewPorts', tableName: 'viewPort', dxfSymbolName: 'VPORT', parseTableRecords: parseViewPortRecords }, LTYPE: { tableRecordsProperty: 'lineTypes', tableName: 'lineType', dxfSymbolName: 'LTYPE', parseTableRecords: parseLineTypes }, LAYER: { tableRecordsProperty: 'layers', tableName: 'layer', dxfSymbolName: 'LAYER', parseTableRecords: parseLayers }, DIMSTYLE: { tableRecordsProperty: 'dimStyles', tableName: 'dimstyle', dxfSymbolName: 'DIMSTYLE', parseTableRecords: parseDimStyles }, STYLE: { tableRecordsProperty: 'styles', tableName: 'style', dxfSymbolName: 'STYLE', parseTableRecords: parseStyles, }, } as ITableDefinitions; /** * 在解析器首次读取0:ENTITIES组后调用。扫描器应该已经在第一个实体的开始。 * @return {Array} the resulting entities */ function parseEntities(forBlock: boolean) { const entities = [] as IEntity[]; const endingOnValue = forBlock ? 'ENDBLK' : 'ENDSEC'; if (!forBlock) { curr = scanner.next(); } while (true) { if (curr.code === 0) { if (curr.value === endingOnValue) { break; } const handler = self._entityHandlers[curr.value as EntityName]; if (handler != null) { const entity = handler.parseEntity(scanner, curr); curr = scanner.lastReadGroup!; ensureHandle(entity); entities.push(entity); } else { // log.debug('Unhandled entity ' + curr.value); curr = scanner.next(); continue; } } else { // ignored lines from unsupported entity curr = scanner.next(); } } if (endingOnValue == 'ENDSEC') curr = scanner.next(); // swallow up ENDSEC, but not ENDBLK return entities; } /** * 解析一个2D或3D点. * 如果它是3D的,将其作为具有x, y和(有时)z属性的对象返回。 * 假定当前组是被读入点的x,并且scanner.next()将返回y。 * 解析器将自动确定是否存在z点。 * @return {Object} 二维或三维点作为具有 x、y[,z] 的对象 */ function parsePoint(curr: IGroup) { const point = {} as IPoint; let code = curr.code; point.x = curr.value as number; code += 10; curr = scanner.next(); if (curr.code != code) throw new Error('Expected code for point value to be ' + code + ' but got ' + curr.code + '.'); point.y = curr.value as number; code += 10; curr = scanner.next(); if (curr.code != code) { scanner.rewind(); return point; } point.z = curr.value as number; return point; } function ensureHandle(entity: IEntity | IBlock) { if (!entity) throw new TypeError('entity cannot be undefined or null'); if (!entity.handle) entity.handle = lastHandle++; } parseAll(); return dxf; } } function groupIs(group: IGroup, code: number, value: string | number | boolean) { return group.code === code && group.value === value; } // @ts-ignore function logUnhandledGroup(curr: IGroup) { // log.debug('unhandled group ' + debugCode(curr)); } function debugCode(curr: IGroup) { return curr.code + ':' + curr.value; } /** * Returns the truecolor value of the given AutoCad color index value * @return {Number} truecolor value as a number */ function getAcadColor(index: number) { return AUTO_CAD_COLOR_INDEX[index]; } // const BLOCK_ANONYMOUS_FLAG = 1; // const BLOCK_NON_CONSTANT_FLAG = 2; // const BLOCK_XREF_FLAG = 4; // const BLOCK_XREF_OVERLAY_FLAG = 8; // const BLOCK_EXTERNALLY_DEPENDENT_FLAG = 16; // const BLOCK_RESOLVED_OR_DEPENDENT_FLAG = 32; // const BLOCK_REFERENCED_XREF = 64; /* Notes */ // Code 6 of an entity indicates inheritance of properties (eg. color). // BYBLOCK means inherits from block // BYLAYER (default) mean inherits from layer ================================================ FILE: packages/sdk/lib/dxf/parser/ExtendedDataParser.ts ================================================ import log from '@/utils/log/Logger'; export default class ExtendedDataParser { private appName: null; private appNameWarningShown: boolean; private lastString: any; private sectionStack: { values: any[] }[]; private failure: boolean; constructor() { this.appName = null this.appNameWarningShown = false this.lastString = null this.sectionStack = [this._CreateSection()] this.failure = false } /** * Feed next token. * @return {boolean} 如果应该为此令牌创建新的解析器实例,则为True。 */ Feed(curr) { if (!this.appName) { if (curr.code == 1001) { this.appName = curr.value return false } if (!this.appNameWarningShown) { this.appNameWarningShown = true log.warn("XDATA部分不以应用程序名称开头") } return false } if (curr.code == 1001) { return true } if (this.failure) { /* Ignore all the rest content in case of parsing failure. */ return false } if (curr.code == 1000) { if (this.lastString) { log.warn("XDATA section unused string: " + this.lastString) } this.lastString = curr.value return false } const curSection = this._currentSection if (curr.code == 1002) { if (curr.value == "{") { if (!this.lastString) { log.warn("Unnamed XDATA section encountered") this.failure = true return false } const newSection = this._CreateSection() curSection[this.lastString] = newSection this.lastString = null this.sectionStack.push(newSection) return false } if (curr.value == "}") { if (this.sectionStack.length < 2) { log.warn("Unmatched XDATA section closing") this.failure = true return false } this.sectionStack.length = this.sectionStack.length - 1 return false } log.warn("Bad XDATA section control string encountered: " + curr.value) this.failure = true return false } if (this.lastString !== null) { curSection.values.push(this._CreateValue(1000, this.lastString)) this.lastString = null } curSection.values.push(this._CreateValue(curr.code, curr.value)) return false } /** Finalize XDATA section parsing. */ Finish(entity) { if (this.failure) { return } if (this.appName) { let xdata if (entity.hasOwnProperty("xdata")) { xdata = entity.xdata } else { xdata = {} entity.xdata = xdata } xdata[this.appName] = this.sectionStack[0] } } get _currentSection() { return this.sectionStack[this.sectionStack.length - 1] } _CreateSection() { return { values: [] } } _CreateValue(code, value) { return {code, value} } } ================================================ FILE: packages/sdk/lib/dxf/parser/ParseHelpers.ts ================================================ import AUTO_CAD_COLOR_INDEX from './AutoCadColorIndex'; import ExtendedDataParser from './ExtendedDataParser'; import DxfArrayScanner, { IGroup } from './DxfArrayScanner'; import { IEntity, IPoint } from './entities/geomtry'; /** * 返回给定AutoCad颜色索引值的对应color值 * @return {Number} color value as a number */ export function getAcadColor(index: number) { return AUTO_CAD_COLOR_INDEX[index]; } /** * 解析2D或3D坐标、矢量或点。完成后,扫描器保持在坐标的最后一组上。 * @param {*} scanner */ export function parsePoint(scanner: DxfArrayScanner) { const point = {} as IPoint; // 重读第一个坐标的组 scanner.rewind(); let curr = scanner.next(); let code = curr.code; point.x = curr.value as number; code += 10; curr = scanner.next(); if (curr.code != code) throw new Error('Expected code for point value to be ' + code + ' but got ' + curr.code + '.'); point.y = curr.value as number; code += 10; curr = scanner.next(); if (curr.code != code) { // Only the x and y are specified. Don't read z. scanner.rewind(); // Let the calling code advance off the point return point; } point.z = curr.value as number; return point; } /** * 某些实体可能包含由组101开始的嵌入对象。实体结束前的所有其他数据不应被解释为实体属性。该特性没有相关文档。 * @param scanner */ export function skipEmbeddedObject(scanner: DxfArrayScanner) { /* 确保正确启动组. */ scanner.rewind() let curr = scanner.next() if (curr.code !== 101) { throw new Error("Bad call for skipEmbeddedObject()") } do { curr = scanner.next() } while (curr.code !== 0) scanner.rewind() } /** * 尝试解析所有实体通用的代码。如果组由此函数处理,则返回true。 * @param {*} entity - the entity currently being parsed * @param {*} curr - the current group being parsed * @param scanner */ export function checkCommonEntityProperties(entity: IEntity, curr:IGroup, scanner:DxfArrayScanner) { let xdataParser; while (curr.code >= 1000) { if (!xdataParser) { xdataParser = new ExtendedDataParser() } if (xdataParser.Feed(curr)) { xdataParser.Finish(entity) xdataParser = null; } else { curr = scanner.next() } } if (xdataParser) { xdataParser.Finish(entity); scanner.rewind(); return true; } switch (curr.code) { case 0: entity.type = curr.value as string; break; case 5: entity.handle = curr.value as number; break; case 6: entity.lineType = curr.value as string; break; case 8: // Layer name entity.layer = curr.value as string; break; case 48: entity.lineTypeScale = curr.value as number; break; case 60: entity.visible = curr.value === 0; break; case 62: // Acad Index Color. 0 inherits ByBlock. 256 inherits ByLayer. Default is bylayer entity.colorIndex = curr.value as number; entity.color = getAcadColor(Math.abs(curr.value as number)); break; case 67: // 不存在或0表示图元位于模型空间中。 // 1 表示图元位于图纸空间中(可选) entity.inPaperSpace = curr.value !== 0; break; case 100: //ignore break; case 101: // Embedded Object in ACAD 2018. // See https://ezdxf.readthedocs.io/en/master/dxfinternals/dxftags.html#embedded-objects while (curr.code != 0) { curr = scanner.next(); } scanner.rewind(); break; case 330: entity.ownerHandle = curr.value as string; break; case 347: entity.materialObjectHandle = curr.value as number; break; case 370: //From https://www.woutware.com/Forum/Topic/955/lineweight?returnUrl=%2FForum%2FUserPosts%3FuserId%3D478262319 // An integer representing 100th of mm, must be one of the following values: // 0, 5, 9, 13, 15, 18, 20, 25, 30, 35, 40, 50, 53, 60, 70, 80, 90, 100, 106, 120, 140, 158, 200, 211. // -3 = STANDARD, -2 = BYLAYER, -1 = BYBLOCK entity.lineweight = curr.value as 0| 5| 9| 13| 15| 18| 20| 25| 30| 35| 40| 50| 53| 60| 70| 80| 90| 100| 106| 120| 140| 158| 200| 211|-3|-2|-1; break; case 420: // TrueColor Color entity.color = curr.value as number; break; case 1000: entity.extendedData = entity.extendedData || {}; entity.extendedData.customStrings = entity.extendedData.customStrings || []; entity.extendedData.customStrings.push(curr.value as string); break; case 1001: entity.extendedData = entity.extendedData || {}; entity.extendedData.applicationName = curr.value as string; break; default: return false; } return true; } ================================================ FILE: packages/sdk/lib/dxf/parser/entities/3dface.ts ================================================ import DxfArrayScanner, { IGroup } from '../DxfArrayScanner'; import * as helpers from '../ParseHelpers' import IGeometry, { IEntity, IPoint } from './geomtry'; export interface I3DfaceEntity extends IEntity { shape: boolean; hasContinuousLinetypePattern: boolean; vertices: IPoint[]; } export default class ThreeDface implements IGeometry { public ForEntityName = '3DFACE' as const; public parseEntity(scanner: DxfArrayScanner, curr: IGroup) { const entity = { type: curr.value as string, vertices: [] as IPoint[] } as I3DfaceEntity; curr = scanner.next(); while (!scanner.isEOF()) { if (curr.code === 0) break; switch (curr.code) { case 70: // 1 = Closed shape, 128 = plinegen?, 0 = default entity.shape = (((curr.value as number) & 1) === 1); entity.hasContinuousLinetypePattern = (((curr.value as number) & 128) === 128); break; case 10: // X coordinate of point entity.vertices = parse3dFaceVertices(scanner, curr); curr = scanner.lastReadGroup as IGroup; break; default: helpers.checkCommonEntityProperties(entity, curr, scanner); break; } curr = scanner.next(); } return entity; } } function parse3dFaceVertices(scanner:DxfArrayScanner, curr:IGroup) { var vertices:IPoint[] = []; var vertexIsStarted = false; var vertexIsFinished = false; var verticesPer3dFace = 4; // there can be up to four vertices per face, although 3 is most used for TIN for (let i = 0; i <= verticesPer3dFace; i++) { var vertex = {} as IPoint; while (!scanner.isEOF()) { if (curr.code === 0 || vertexIsFinished) break; switch (curr.code) { case 10: // X0 case 11: // X1 case 12: // X2 case 13: // X3 if (vertexIsStarted) { vertexIsFinished = true; continue; } vertex.x = curr.value as number; vertexIsStarted = true; break; case 20: // Y case 21: case 22: case 23: vertex.y = curr.value as number; break; case 30: // Z case 31: case 32: case 33: vertex.z = curr.value as number; break; default: // it is possible to have entity codes after the vertices. // So if code is not accounted for return to entity parser where it might be accounted for return vertices; } curr = scanner.next(); } // See https://groups.google.com/forum/#!topic/comp.cad.autocad/9gn8s5O_w6E vertices.push(vertex); vertexIsStarted = false; vertexIsFinished = false; } scanner.rewind(); return vertices; }; ================================================ FILE: packages/sdk/lib/dxf/parser/entities/arc.ts ================================================ import DxfArrayScanner, { IGroup } from '../DxfArrayScanner'; import * as helpers from '../ParseHelpers' import IGeometry, { IEntity, IPoint } from './geomtry'; export interface IArcEntity extends IEntity { center: IPoint; radius: number; startAngle: number; endAngle: number; angleLength: number; extrusionDirectionX: number; extrusionDirectionY: number; extrusionDirectionZ: number; } export default class Arc implements IGeometry { public ForEntityName = 'ARC' as const; public parseEntity(scanner: DxfArrayScanner, curr: IGroup) { const entity = { type: curr.value } as IArcEntity; curr = scanner.next(); while (!scanner.isEOF()) { if (curr.code === 0) break; switch (curr.code) { case 10: // X coordinate of point entity.center = helpers.parsePoint(scanner); break; case 40: // radius entity.radius = curr.value as number; break; case 50: // start angle entity.startAngle = Math.PI / 180 * (curr.value as number); break; case 51: // end angle entity.endAngle = Math.PI / 180 * (curr.value as number); entity.angleLength = entity.endAngle - entity.startAngle; // angleLength is deprecated break; case 210: entity.extrusionDirectionX = curr.value as number; break; case 220: entity.extrusionDirectionY = curr.value as number; break; case 230: entity.extrusionDirectionZ = curr.value as number; break; default: // ignored attribute helpers.checkCommonEntityProperties(entity, curr, scanner); break; } curr = scanner.next(); } return entity; } } ================================================ FILE: packages/sdk/lib/dxf/parser/entities/attdef.ts ================================================ import DxfArrayScanner, { IGroup } from '../DxfArrayScanner'; import * as helpers from '../ParseHelpers' import IGeometry, { IEntity, IPoint } from './geomtry'; export interface IAttdefEntity extends IEntity { scale: number; textStyle: 'STANDARD' | string; text: string; tag: string; prompt: string; startPoint: IPoint; endPoint: IPoint; thickness: number; textHeight: number; rotation: number; obliqueAngle: number; invisible: boolean; constant: boolean; verificationRequired: boolean; preset: boolean; backwards: boolean; mirrored: boolean; horizontalJustification: number; fieldLength: number; verticalJustification: number; extrusionDirectionX: number; extrusionDirectionY: number; extrusionDirectionZ: number; } export default class Attdef implements IGeometry { public ForEntityName = 'ATTDEF' as const; public parseEntity(scanner: DxfArrayScanner, curr: IGroup) { const entity = { type: curr.value, scale: 1, textStyle: 'STANDARD' } as IAttdefEntity; curr = scanner.next(); while (!scanner.isEOF()) { if (curr.code === 0) { break; } switch (curr.code) { case 1: entity.text = curr.value as string; break; case 2: entity.tag = curr.value as string; break; case 3: entity.prompt = curr.value as string; break; case 7: entity.textStyle = curr.value as string; break; case 10: // X coordinate of 'first alignment point' entity.startPoint = helpers.parsePoint(scanner); break; case 11: // X coordinate of 'second alignment point' entity.endPoint = helpers.parsePoint(scanner); break; case 39: entity.thickness = curr.value as number; break; case 40: entity.textHeight = curr.value as number; break; case 41: entity.scale = curr.value as number; break; case 50: entity.rotation = curr.value as number; break; case 51: entity.obliqueAngle = curr.value as number; break; case 70: entity.invisible = !!((curr.value as number) & 0x01); entity.constant = !!((curr.value as number) & 0x02); entity.verificationRequired = !!((curr.value as number) & 0x04); entity.preset = !!((curr.value as number) & 0x08); break; case 71: entity.backwards = !!((curr.value as number) & 0x02); entity.mirrored = !!((curr.value as number) & 0x04); break; case 72: // TODO: enum values? entity.horizontalJustification = curr.value as number; break; case 73: entity.fieldLength = curr.value as number; break; case 74: // TODO: enum values? entity.verticalJustification = curr.value as number; break; case 100: break; case 210: entity.extrusionDirectionX = curr.value as number; break; case 220: entity.extrusionDirectionY = curr.value as number; break; case 230: entity.extrusionDirectionZ = curr.value as number; break; default: helpers.checkCommonEntityProperties(entity, curr, scanner); break; } curr = scanner.next(); } return entity; } } ================================================ FILE: packages/sdk/lib/dxf/parser/entities/attribute.ts ================================================ import DxfArrayScanner, { IGroup } from '../DxfArrayScanner'; import * as helpers from '../ParseHelpers'; import IGeometry, { IEntity, IPoint } from './geomtry'; export interface IAttribEntity extends IEntity { scale: number; textStyle: 'STANDARD' | string; text: string; tag: string; prompt: string; startPoint: IPoint; endPoint: IPoint; thickness: number; textHeight: number; rotation: number; lineSpacingFactor: number; fillBoxScale: number; annotationHeight: number; obliqueAngle: number; invisible: boolean; constant: boolean; verificationRequired: boolean; preset: boolean; horizontalJustification: number; verticalJustification: number; backgroundFillColor: string; attachmentPoint: number; lineSpacing: number; backgroundFillSetting: string; extrusionDirection: IPoint; lockPositionFlag: number; hardPointerId: number; } export default class Attrib implements IGeometry{ public ForEntityName = 'ATTRIB' as const; public parseEntity(scanner: DxfArrayScanner, curr: IGroup) { const entity = { type: curr.value, scale: 1, textStyle: 'STANDARD', } as IAttribEntity; curr = scanner.next(); while (!scanner.isEOF()) { // 0 为图元类型 (MTEXT),不写入,此处当作 Attrib解析 if (curr.code === 0) { break; } switch (curr.code) { case 1: // 字符串本身 entity.text = curr.value as string; break; case 2: // 属性标签(字符串;不能包含空格) entity.tag = curr.value as string; break; case 3: // 附加文字(始终在长度为 250 个字符的数据块中)(可选) entity.prompt = curr.value as string; break; case 7: // DXF:X 值;APP:三维矢量文字样式名(如果未提供,则为 STANDARD)(可选) entity.textStyle = curr.value as string; break; case 10: // 文字起点(在 OCS 中) entity.startPoint = helpers.parsePoint(scanner); break; case 11: //X 轴方向矢量(在 WCS 中) entity.endPoint = helpers.parsePoint(scanner); break; case 39: // 厚度(可选;默认值 = 0) entity.thickness = curr.value as number; break; case 40: // 文字高度 entity.textHeight = curr.value as number; break; case 41: // X 相对缩放比例(宽度)(可选;默认值 = 1)。使用拟合类型的文字时,该值也将进行调整。 entity.scale = curr.value as number; break; case 44: // 多行文字的行距比例(可选): // 要应用的行距的默认百分比(五分之三)。 // 有效值的范围从 0.25 到 4.00 entity.lineSpacingFactor = curr.value as number; break; case 45: // 填充框大小(可选): // 确定文字周围的边框大小。 entity.fillBoxScale = curr.value as number; break; case 46: // 定义注释高度 entity.annotationHeight = curr.value as number; break; case 50: //文字旋转角度(可选;默认值 = 0) entity.rotation = curr.value as number; break; case 51: // 倾斜角(可选;默认值 = 0) entity.obliqueAngle = curr.value as number; break; case 63: //背景填充颜色(可选): // 组码 90 为 1 时要用于背景填充的颜色。 entity.backgroundFillColor = curr.value as string break; case 70: entity.invisible = !!((curr.value as number) & 0x01); entity.constant = !!((curr.value as number) & 0x02); entity.verificationRequired = !!((curr.value as number) & 0x04); entity.preset = !!((curr.value as number) & 0x08); break; case 71: //附着点: // 1 = 左上;2 = 中上;3 = 右上 // 4 = 左中;5 = 正中;6 = 右中 // 7 = 左下;8 = 中下;9 = 右下 entity.attachmentPoint = curr.value as number; break; case 72: // 文字水平对正类型(可选;默认值 = 0) entity.horizontalJustification = curr.value as number; break; case 73: // 字段长度(可选;默认值 = 0)(当前未使用) entity.lineSpacing = curr.value as number; break; case 74: // 垂直文字对正类型(可选;默认值 = 0) entity.verticalJustification = curr.value as number; break; case 90: // 背景填充设置: // 0 = 背景填充关闭 // 1 = 使用背景填充颜色 // 2 = 使用图形窗口颜色作为背景填充颜色 entity.backgroundFillSetting = curr.value as string; break; case 210: // 拉伸方向。仅当图元的拉伸方向与 WCS 的 Z 轴不平行时才出现(可选;默认值 = 0, 0, 1) entity.extrusionDirection = helpers.parsePoint(scanner); break; case 280: // 锁定位置标志。锁定块参照中属性的位置 entity.lockPositionFlag = curr.value as number; break; case 340: // 次要属性或属性定义的硬指针 ID entity.hardPointerId = curr.value as number; break; default: helpers.checkCommonEntityProperties(entity, curr, scanner); break; } curr = scanner.next(); } return entity; } } ================================================ FILE: packages/sdk/lib/dxf/parser/entities/circle.ts ================================================ import DxfArrayScanner, { IGroup } from '../DxfArrayScanner'; import * as helpers from '../ParseHelpers' import IGeometry, { IEntity, IPoint } from './geomtry'; export interface ICircleEntity extends IEntity { center: IPoint; radius: number; startAngle: number; endAngle: number; angleLength: number; } export default class Circle implements IGeometry { public ForEntityName = 'CIRCLE' as const; public parseEntity(scanner: DxfArrayScanner, curr: IGroup) { const entity = { type: curr.value } as ICircleEntity; curr = scanner.next(); while (!scanner.isEOF()) { if (curr.code === 0) break; switch (curr.code) { case 10: // X coordinate of point entity.center = helpers.parsePoint(scanner); break; case 40: // radius entity.radius = (curr.value as number); break; case 50: // start angle entity.startAngle = Math.PI / 180 * (curr.value as number); break; case 51: // end angle const endAngle = Math.PI / 180 * (curr.value as number); if (endAngle < entity.startAngle) entity.angleLength = endAngle + 2 * Math.PI - entity.startAngle; else entity.angleLength = endAngle - entity.startAngle; entity.endAngle = endAngle; break; default: // ignored attribute helpers.checkCommonEntityProperties(entity, curr, scanner); break; } curr = scanner.next(); } return entity; } } ================================================ FILE: packages/sdk/lib/dxf/parser/entities/dimension.ts ================================================ import DxfArrayScanner, { IGroup } from '../DxfArrayScanner'; import * as helpers from '../ParseHelpers' import IGeometry, { IEntity, IPoint } from './geomtry'; export interface IDimensionEntity extends IEntity{ block: string; anchorPoint: IPoint; middleOfText: IPoint; insertionPoint: IPoint; linearOrAngularPoint1: IPoint; linearOrAngularPoint2: IPoint; diameterOrRadiusPoint: IPoint; arcPoint: IPoint; dimensionType: number; attachmentPoint: number; actualMeasurement: number; text: string; angle: number; } export default class Dimension implements IGeometry { public ForEntityName = 'DIMENSION' as const; public parseEntity(scanner: DxfArrayScanner, curr: IGroup) { const entity = { type: curr.value } as IDimensionEntity; curr = scanner.next(); while(!scanner.isEOF()) { if(curr.code === 0) break; switch(curr.code) { case 2: // Referenced block name entity.block = curr.value as string; break; case 10: // X coordinate of 'first alignment point' entity.anchorPoint = helpers.parsePoint(scanner); break; case 11: entity.middleOfText = helpers.parsePoint(scanner); break; case 12: // Insertion point for clones of a dimension entity.insertionPoint = helpers.parsePoint(scanner); break; case 13: // Definition point for linear and angular dimensions entity.linearOrAngularPoint1 = helpers.parsePoint(scanner); break; case 14: // Definition point for linear and angular dimensions entity.linearOrAngularPoint2 = helpers.parsePoint(scanner); break; case 15: // Definition point for diameter, radius, and angular dimensions entity.diameterOrRadiusPoint = helpers.parsePoint(scanner); break; case 16: // Point defining dimension arc for angular dimensions entity.arcPoint = helpers.parsePoint(scanner); break; case 70: // Dimension type entity.dimensionType = curr.value as number; break; case 71: // 5 = Middle center entity.attachmentPoint = curr.value as number; break; case 42: // Actual measurement entity.actualMeasurement = curr.value as number; break; case 1: // Text entered by user explicitly entity.text = curr.value as string; break; case 50: // Angle of rotated, horizontal, or vertical dimensions entity.angle = curr.value as number; break; default: // check common entity attributes helpers.checkCommonEntityProperties(entity, curr, scanner); break; } curr = scanner.next(); } return entity; } } ================================================ FILE: packages/sdk/lib/dxf/parser/entities/ellipse.ts ================================================ import DxfArrayScanner, { IGroup } from '../DxfArrayScanner'; import * as helpers from '../ParseHelpers' import IGeometry, { IEntity, IPoint } from './geomtry'; export interface IEllipseEntity extends IEntity { center: IPoint; majorAxisEndPoint: IPoint; axisRatio: number; startAngle: number; endAngle: number; name: string; } export default class Ellipse implements IGeometry { public ForEntityName = 'ELLIPSE' as const; public parseEntity(scanner: DxfArrayScanner, curr: IGroup) { const entity = { type: curr.value } as IEllipseEntity; curr = scanner.next(); while (!scanner.isEOF()) { if (curr.code === 0) break; switch (curr.code) { case 10: entity.center = helpers.parsePoint(scanner); break; case 11: entity.majorAxisEndPoint = helpers.parsePoint(scanner); break; case 40: entity.axisRatio = curr.value as number; break; case 41: entity.startAngle = curr.value as number; break; case 42: entity.endAngle = curr.value as number; break; case 2: entity.name = curr.value as string; break; default: // check common entity attributes helpers.checkCommonEntityProperties(entity, curr, scanner); break; } curr = scanner.next(); } return entity; } } ================================================ FILE: packages/sdk/lib/dxf/parser/entities/geomtry.ts ================================================ import DxfArrayScanner, { IGroup } from "../DxfArrayScanner"; export interface IPoint { x: number; y: number; z: number; } export interface IEntity { lineType: string; layer: string; lineTypeScale: number; visible: boolean; colorIndex: number; color: number; inPaperSpace: boolean; ownerHandle: string; materialObjectHandle: number; lineweight: 0| 5| 9| 13| 15| 18| 20| 25| 30| 35| 40| 50| 53| 60| 70| 80| 90| 100| 106| 120| 140| 158| 200| 211|-3|-2|-1; extendedData: { customStrings: string[]; applicationName: string; }; type: string; handle: number; } export type EntityName = 'POINT' | '3DFACE' | 'ARC' | 'ATTDEF' | 'ATTRIB' | 'CIRCLE' | 'DIMENSION' | 'ELLIPSE' | 'HATCH' | 'INSERT' | 'LINE' | 'LWPOLYLINE' | 'MTEXT' | 'POLYLINE' | 'SOLID' | 'SPLINE' | 'TEXT' | 'VERTEX'; export default interface IGeometry { ForEntityName: EntityName; parseEntity(scanner: DxfArrayScanner, curr: IGroup): IEntity; } ================================================ FILE: packages/sdk/lib/dxf/parser/entities/hatch.ts ================================================ import DxfArrayScanner, {IGroup} from '../DxfArrayScanner'; import * as helpers from '../ParseHelpers' import IGeometry, {IEntity, IPoint} from './geomtry'; export interface IHatchEntity extends IEntity { boundaryLoops: any[]; definitionLines: any[]; seedPoints: any[]; patternName: string; isSolid: boolean; hatchStyle: string; patternType: number; patternAngle: number; patternScale: number; } export default class Hatch implements IGeometry { public ForEntityName = 'HATCH' as const; public parseEntity(scanner: DxfArrayScanner, curr: IGroup) { let entity = {type: curr.value} as IHatchEntity; let numBoundaryLoops = 0; let numDefinitionLines = 0; let numSeedPoints = 0; curr = scanner.next(); while (!scanner.isEOF()) { if (curr.code === 0) break; while (numBoundaryLoops > 0) { const loop = ParseBoundaryLoop(curr, scanner) if (loop) { entity.boundaryLoops.push(loop); numBoundaryLoops--; curr = scanner.next(); } else { numBoundaryLoops = 0 } } while (numDefinitionLines > 0) { const line = ParseDefinitionLine(curr, scanner) if (line) { entity.definitionLines.push(line); numDefinitionLines--; curr = scanner.next(); } else { numDefinitionLines = 0 } } while (numSeedPoints > 0) { const pt = ParseSeedPoint(curr, scanner); if (pt) { entity.seedPoints.push(pt); numSeedPoints--; curr = scanner.next(); } else { numSeedPoints = 0 } } if (curr.code === 0) break; switch (curr.code) { case 2: // 填充图案名 entity.patternName = curr.value as string; break; case 70: // 实体填充标志(实体填充 = 1;图案填充 = 0) entity.isSolid = curr.value != 0; break; case 91: // 边界路径(环)数 numBoundaryLoops = curr.value as number; if (numBoundaryLoops > 0) { entity.boundaryLoops = [] } break; /** * 图案填充样式: * 0 = 对“奇数奇偶校验”区域进行图案填充(普通样式) * 1 = 仅对最外层区域进行图案填充(“外部”样式) * 2 = 对整个区域进行图案填充(“忽略”样式) */ case 75: entity.hatchStyle = curr.value as string; break; /** * 填充图案类型: * 0 = 用户定义;1 = 预定义;2 = 自定义 */ case 76: entity.patternType = curr.value as number; break; case 52: // 填充图案角度(仅限图案填充) entity.patternAngle = (curr.value as number) * Math.PI / 180; break; case 41: // 填充图案比例或间距(仅限图案填充) entity.patternScale = curr.value as number; break; case 78: // 图案定义直线数 numDefinitionLines = curr.value as number; if (numDefinitionLines > 0) { entity.definitionLines = [] } break; case 98: // 种子点数 numSeedPoints = curr.value as number; if (numSeedPoints > 0) { entity.seedPoints = [] } break; default: // 检查通用实体属性 helpers.checkCommonEntityProperties(entity, curr, scanner); break; } curr = scanner.next(); } return entity; }; } function ParseBoundaryLoop(curr: IGroup, scanner: DxfArrayScanner) { let entity:any = null const ParsePolyline = () => { const pl: { vertices: IPoint[], isClosed: boolean } = {vertices: [], isClosed: false}; let numVertices = 0; while (true) { if (numVertices > 0) { for (let i = 0; i < numVertices; i++) { if (curr.code != 10) { break } const p = helpers.parsePoint(scanner) curr = scanner.next(); if (curr.code == 42) { // @ts-ignore p.bulge = curr.value; curr = scanner.next(); } pl.vertices.push(p) } return pl } switch (curr.code) { case 73: pl.isClosed = curr.value as boolean; break; case 93: numVertices = curr.value as number; break; default: return pl; } curr = scanner.next(); } } const ParseEdge = () => { if (curr.code != 72) { return null } const e:any = {type: curr.value} curr = scanner.next(); const isSpline = e.type == 4; while (true) { switch (curr.code) { case 10: if (isSpline) { if (!e.controlPoints) { e.controlPoints = []; } e.controlPoints.push(helpers.parsePoint(scanner)); } else { e.start = helpers.parsePoint(scanner); } break; case 11: if (isSpline) { if (!e.fitPoints) { e.fitPoints = []; } e.fitPoints.push(helpers.parsePoint(scanner)); } else { e.end = helpers.parsePoint(scanner); } break; case 40: if (isSpline) { if (!e.knotValues) { e.knotValues = []; } e.knotValues.push(curr.value); } else { e.radius = curr.value; } break; case 50: e.startAngle = (curr.value as number) * Math.PI / 180; break; case 51: e.endAngle = (curr.value as number) * Math.PI / 180; break; case 73: if (isSpline) { e.rational = curr.value; } else { e.isCcw = curr.value; } break; case 74: e.periodic = curr.value; break; case 94: e.degreeOfSplineCurve = curr.value; break; //XXX暂时忽略一些群体,主要是样条 case 95: case 96: case 42: case 97: break; default: return e } curr = scanner.next(); } } let polylineParsed = false; let numEdges = 0; let numSourceRefs = 0; while (true) { if (!entity) { if (curr.code != 92) { return null; } entity = {type: curr.value}; curr = scanner.next(); } if ((entity.type & 2) && !polylineParsed) { entity.polyline = ParsePolyline() polylineParsed = true } while (numEdges) { const edge = ParseEdge(); if (edge) { entity.edges.push(edge); numEdges--; } else { numEdges = 0; } } while (numSourceRefs) { if (curr.code == 330) { entity.sourceRefs.push(curr.value); numSourceRefs--; curr = scanner.next(); } else { numSourceRefs = 0 } } switch (curr.code) { case 93: numEdges = curr.value as number; if (numEdges > 0) { entity.edges = [] } break; case 97: numSourceRefs = curr.value as number; if (numSourceRefs > 0) { entity.sourceRefs = [] } break; default: scanner.rewind(); return entity; } curr = scanner.next(); } } function ParseDefinitionLine(curr: IGroup, scanner: DxfArrayScanner) { /* 假设总是从53组开始. */ if (curr.code != 53) { return null } const entity:any = { angle: (curr.value as number) * Math.PI / 180, base: {x: 0, y: 0}, offset: {x: 0, y: 0} }; curr = scanner.next(); let numDashes = 0; while (true) { switch (curr.code) { case 43: entity.base.x = curr.value as number; break; case 44: entity.base.y = curr.value as number; break; case 45: entity.offset.x = curr.value as number; break; case 46: entity.offset.y = curr.value as number; break; case 49: if (numDashes > 0) { entity.dashes.push(curr.value); numDashes--; } break; case 79: numDashes = curr.value as number; if (curr.value) { entity.dashes = [] } break; default: scanner.rewind(); return entity; } curr = scanner.next(); } } function ParseSeedPoint(curr: IGroup, scanner: DxfArrayScanner) { if (curr.code != 10) { return null } return helpers.parsePoint(scanner); } ================================================ FILE: packages/sdk/lib/dxf/parser/entities/insert.ts ================================================ import DxfArrayScanner, { IGroup } from '../DxfArrayScanner'; import * as helpers from '../ParseHelpers' import IGeometry, { IEntity, IPoint } from './geomtry'; export interface IInsertEntity extends IEntity { name: string; xScale: number; yScale: number; zScale: number; position: IPoint; rotation: number; columnCount: number; rowCount: number; columnSpacing: number; rowSpacing: number; extrusionDirection: IPoint; } export default class Insert implements IGeometry { public ForEntityName = 'INSERT' as const; public parseEntity(scanner: DxfArrayScanner, curr: IGroup) { const entity = { type: curr.value } as IInsertEntity; curr = scanner.next(); while (!scanner.isEOF()) { if (curr.code === 0) break; switch (curr.code) { case 2: entity.name = curr.value as string; break; case 41: entity.xScale = curr.value as number; break; case 42: entity.yScale = curr.value as number; break; case 43: entity.zScale = curr.value as number; break; case 10: entity.position = helpers.parsePoint(scanner); break; case 50: entity.rotation = curr.value as number; break; case 70: entity.columnCount = curr.value as number; break; case 71: entity.rowCount = curr.value as number; break; case 44: entity.columnSpacing = curr.value as number; break; case 45: entity.rowSpacing = curr.value as number; break; case 210: entity.extrusionDirection = helpers.parsePoint(scanner); break; default: // check common entity attributes helpers.checkCommonEntityProperties(entity, curr, scanner); break; } curr = scanner.next(); } return entity; } } ================================================ FILE: packages/sdk/lib/dxf/parser/entities/line.ts ================================================ import DxfArrayScanner, { IGroup } from '../DxfArrayScanner'; import * as helpers from '../ParseHelpers' import IGeometry, { IEntity, IPoint } from './geomtry'; export interface ILineEntity extends IEntity{ vertices: IPoint[]; extrusionDirection: IPoint; } export default class Line implements IGeometry{ public ForEntityName= 'LINE' as const; public parseEntity(scanner: DxfArrayScanner, curr: IGroup) { const entity = { type: curr.value, vertices: [] as IPoint[] } as ILineEntity; curr = scanner.next(); while(!scanner.isEOF()) { if(curr.code === 0) break; switch(curr.code) { case 10: // X coordinate of point entity.vertices.unshift(helpers.parsePoint(scanner)); break; case 11: entity.vertices.push(helpers.parsePoint(scanner)); break; case 210: entity.extrusionDirection = helpers.parsePoint(scanner); break; case 100: break; default: helpers.checkCommonEntityProperties(entity, curr, scanner); break; } curr = scanner.next(); } return entity; } } ================================================ FILE: packages/sdk/lib/dxf/parser/entities/lwpolyline.ts ================================================ import DxfArrayScanner, { IGroup } from '../DxfArrayScanner'; import * as helpers from '../ParseHelpers' import IGeometry, { IEntity, IPoint } from './geomtry'; export interface IVertex extends IPoint{ startWidth: number; endWidth: number; bulge: number; } export interface ILwpolylineEntity extends IEntity { vertices: IVertex[]; elevation: number; depth: number; shape: boolean; hasContinuousLinetypePattern: boolean; width: number; extrusionDirectionX: number; extrusionDirectionY: number; extrusionDirectionZ: number; } export default class Lwpolyline implements IGeometry { public ForEntityName = 'LWPOLYLINE' as const; public parseEntity(scanner: DxfArrayScanner, curr: IGroup) { const entity = { type: curr.value, vertices: [] as IVertex[] } as ILwpolylineEntity; let numberOfVertices = 0; curr = scanner.next(); while (!scanner.isEOF()) { if (curr.code === 0) break; switch (curr.code) { case 38: entity.elevation = curr.value as number; break; case 39: entity.depth = curr.value as number; break; case 70: // 1 = Closed shape, 128 = plinegen?, 0 = default entity.shape = (((curr.value as number) & 1) === 1); entity.hasContinuousLinetypePattern = (((curr.value as number) & 128) === 128); break; case 90: numberOfVertices = curr.value as number; break; case 10: // X coordinate of point entity.vertices = parseLWPolylineVertices(numberOfVertices, scanner); break; case 43: if (curr.value !== 0) entity.width = curr.value as number; break; case 210: entity.extrusionDirectionX = curr.value as number; break; case 220: entity.extrusionDirectionY = curr.value as number; break; case 230: entity.extrusionDirectionZ = curr.value as number; break; default: helpers.checkCommonEntityProperties(entity, curr, scanner); break; } curr = scanner.next(); } return entity; } } function parseLWPolylineVertices(n:number, scanner: DxfArrayScanner) { if (!n || n <= 0) throw Error('n must be greater than 0 verticies'); const vertices = [] as IVertex[]; let vertexIsStarted = false; let vertexIsFinished = false; let curr = scanner.lastReadGroup as IGroup; for (let i = 0; i < n; i++) { const vertex = {} as IVertex; while (!scanner.isEOF()) { if (curr.code === 0 || vertexIsFinished) break; switch (curr.code) { case 10: // X if (vertexIsStarted) { vertexIsFinished = true; continue; } vertex.x = curr.value as number; vertexIsStarted = true; break; case 20: // Y vertex.y = curr.value as number; break; case 30: // Z vertex.z = curr.value as number; break; case 40: // start width vertex.startWidth = curr.value as number; break; case 41: // end width vertex.endWidth = curr.value as number; break; case 42: // bulge if (curr.value != 0) vertex.bulge = curr.value as number; break; default: // if we do not hit known code return vertices. Code might belong to entity scanner.rewind(); if (vertexIsStarted) { vertices.push(vertex); } scanner.rewind(); return vertices; } curr = scanner.next(); } // See https://groups.google.com/forum/#!topic/comp.cad.autocad/9gn8s5O_w6E vertices.push(vertex); vertexIsStarted = false; vertexIsFinished = false; } scanner.rewind(); return vertices; } ================================================ FILE: packages/sdk/lib/dxf/parser/entities/mtext.ts ================================================ import DxfArrayScanner, { IGroup } from '../DxfArrayScanner'; import * as helpers from '../ParseHelpers' import IGeometry, { IEntity, IPoint } from './geomtry'; export interface IMtextEntity extends IEntity { text: string; position: IPoint; directionVector: IPoint; height: number; width: number; rotation: number; attachmentPoint: number; drawingDirection: number; } export default class Mtext implements IGeometry { public ForEntityName = 'MTEXT' as const; public parseEntity(scanner: DxfArrayScanner, curr: IGroup) { const entity = { type: curr.value } as IMtextEntity; curr = scanner.next(); while (!scanner.isEOF()) { if (curr.code === 0) break; switch (curr.code) { case 3: entity.text ? entity.text += curr.value : entity.text = curr.value as string; break; case 1: entity.text ? entity.text += curr.value : entity.text = curr.value as string; break; case 10: entity.position = helpers.parsePoint(scanner); break; case 11: entity.directionVector = helpers.parsePoint(scanner); break; case 40: //Note: this is the text height entity.height = curr.value as number; break; case 41: entity.width = curr.value as number; break; case 50: entity.rotation = curr.value as number; break; case 71: entity.attachmentPoint = curr.value as number; break; case 72: entity.drawingDirection = curr.value as number; break; default: helpers.checkCommonEntityProperties(entity, curr, scanner); break; } curr = scanner.next(); } return entity; } } ================================================ FILE: packages/sdk/lib/dxf/parser/entities/point.ts ================================================ import DxfArrayScanner, { IGroup } from '../DxfArrayScanner'; import * as helpers from '../ParseHelpers' import IGeometry, { IEntity, IPoint } from './geomtry'; export interface IPointEntity extends IEntity{ position: IPoint; thickness: number; extrusionDirection: IPoint; } export default class Point implements IGeometry{ public ForEntityName= 'POINT' as const; public parseEntity(scanner: DxfArrayScanner, curr: IGroup) { const type = curr.value as string; const entity = { type } as unknown as IPointEntity; curr = scanner.next(); while(!scanner.isEOF()) { if(curr.code === 0) break; switch(curr.code) { case 10: entity.position = helpers.parsePoint(scanner); break; case 39: entity.thickness = curr.value as number; break; case 210: entity.extrusionDirection = helpers.parsePoint(scanner); break; case 100: break; default: // check common entity attributes helpers.checkCommonEntityProperties(entity, curr, scanner); break; } curr = scanner.next(); } return entity; } } ================================================ FILE: packages/sdk/lib/dxf/parser/entities/polyline.ts ================================================ import * as helpers from '../ParseHelpers' import VertexParser, { IVertexEntity } from './vertex'; import IGeometry, { IEntity, IPoint } from './geomtry'; import DxfArrayScanner, { IGroup } from '../DxfArrayScanner'; export interface IPolylineEntity extends IEntity { vertices: IVertexEntity[]; thickness: number; shape: boolean; includesCurveFitVertices: boolean; includesSplineFitVertices: boolean; is3dPolyline: boolean; is3dPolygonMesh: boolean; is3dPolygonMeshClosed: boolean; isPolyfaceMesh: boolean; hasContinuousLinetypePattern: boolean; extrusionDirection: IPoint; } export default class Polyline implements IGeometry { public ForEntityName = 'POLYLINE' as const; public parseEntity(scanner: DxfArrayScanner, curr: IGroup) { var entity = { type: curr.value, vertices: [] as IVertexEntity[] } as IPolylineEntity; curr = scanner.next(); while (!scanner.isEOF()) { if (curr.code === 0) break; switch (curr.code) { case 10: // always 0 break; case 20: // always 0 break; case 30: // elevation break; case 39: // thickness entity.thickness = curr.value as number; break; case 40: // start width break; case 41: // end width break; case 70: entity.shape = ((curr.value as number) & 1) !== 0; entity.includesCurveFitVertices = ((curr.value as number) & 2) !== 0; entity.includesSplineFitVertices = ((curr.value as number) & 4) !== 0; entity.is3dPolyline = ((curr.value as number) & 8) !== 0; entity.is3dPolygonMesh = ((curr.value as number) & 16) !== 0; entity.is3dPolygonMeshClosed = ((curr.value as number) & 32) !== 0; // 32 = The polygon mesh is closed in the N direction entity.isPolyfaceMesh = ((curr.value as number) & 64) !== 0; entity.hasContinuousLinetypePattern = ((curr.value as number) & 128) !== 0; break; case 71: // Polygon mesh M vertex count break; case 72: // Polygon mesh N vertex count break; case 73: // Smooth surface M density break; case 74: // Smooth surface N density break; case 75: // Curves and smooth surface type break; case 210: entity.extrusionDirection = helpers.parsePoint(scanner); break; default: helpers.checkCommonEntityProperties(entity, curr, scanner); break; } curr = scanner.next(); } entity.vertices = parsePolylineVertices(scanner, curr); return entity; } } function parsePolylineVertices(scanner:DxfArrayScanner, curr:IGroup) { const vertexParser = new VertexParser(); const vertices: IVertexEntity[] = []; while (!scanner.isEOF()) { if (curr.code === 0) { if (curr.value === 'VERTEX') { vertices.push(vertexParser.parseEntity(scanner, curr)); curr = scanner.lastReadGroup as IGroup; } else if (curr.value === 'SEQEND') { parseSeqEnd(scanner, curr); break; } } } return vertices; } function parseSeqEnd(scanner:DxfArrayScanner, curr: IGroup) { const entity = { type: curr.value } as IEntity; curr = scanner.next(); while (!scanner.isEOF()) { if (curr.code == 0) break; helpers.checkCommonEntityProperties(entity, curr, scanner); curr = scanner.next(); } return entity; }; ================================================ FILE: packages/sdk/lib/dxf/parser/entities/solid.ts ================================================ import DxfArrayScanner, { IGroup } from '../DxfArrayScanner'; import * as helpers from '../ParseHelpers' import IGeometry, { IEntity, IPoint } from './geomtry'; export interface ISolidEntity extends IEntity { points: IPoint[]; extrusionDirection: IPoint; } export default class Solid implements IGeometry { public ForEntityName = 'SOLID' as const; public parseEntity(scanner: DxfArrayScanner, curr: IGroup) { const entity = { type: curr.value, points: [] as IPoint[] } as ISolidEntity; curr = scanner.next(); while (!scanner.isEOF()) { if (curr.code === 0) break; switch (curr.code) { case 10: entity.points[0] = helpers.parsePoint(scanner); break; case 11: entity.points[1] = helpers.parsePoint(scanner); break; case 12: entity.points[2] = helpers.parsePoint(scanner); break; case 13: entity.points[3] = helpers.parsePoint(scanner); break; case 210: entity.extrusionDirection = helpers.parsePoint(scanner); break; default: // check common entity attributes helpers.checkCommonEntityProperties(entity, curr, scanner); break; } curr = scanner.next(); } return entity; } } ================================================ FILE: packages/sdk/lib/dxf/parser/entities/spline.ts ================================================ import DxfArrayScanner, { IGroup } from '../DxfArrayScanner'; import * as helpers from '../ParseHelpers' import IGeometry, { IEntity, IPoint } from './geomtry'; export interface ISplineEntity extends IEntity { controlPoints?: IPoint[]; fitPoints?: IPoint[]; startTangent: IPoint; endTangent: IPoint; knotValues: number[]; closed: boolean; periodic: boolean; rational: boolean; planar: boolean; linear: boolean; degreeOfSplineCurve: number; numberOfKnots: number; numberOfControlPoints: number; numberOfFitPoints: number; normalVector: IPoint; } export default class Spline implements IGeometry { public ForEntityName = 'SPLINE' as const; public parseEntity(scanner: DxfArrayScanner, curr: IGroup) { const entity = { type: curr.value } as ISplineEntity; curr = scanner.next(); while (!scanner.isEOF()) { if (curr.code === 0) break; switch (curr.code) { case 10: if (!entity.controlPoints) entity.controlPoints = []; entity.controlPoints.push(helpers.parsePoint(scanner)); break; case 11: if (!entity.fitPoints) entity.fitPoints = []; entity.fitPoints.push(helpers.parsePoint(scanner)); break; case 12: entity.startTangent = helpers.parsePoint(scanner); break; case 13: entity.endTangent = helpers.parsePoint(scanner); break; case 40: if (!entity.knotValues) entity.knotValues = []; entity.knotValues.push(curr.value as number); break; case 70: if (((curr.value as number) & 1) != 0) entity.closed = true; if (((curr.value as number) & 2) != 0) entity.periodic = true; if (((curr.value as number) & 4) != 0) entity.rational = true; if (((curr.value as number) & 8) != 0) entity.planar = true; if (((curr.value as number) & 16) != 0) { entity.planar = true; entity.linear = true; } break; case 71: entity.degreeOfSplineCurve = curr.value as number; break; case 72: entity.numberOfKnots = curr.value as number; break; case 73: entity.numberOfControlPoints = curr.value as number; break; case 74: entity.numberOfFitPoints = curr.value as number; break; case 210: entity.normalVector = helpers.parsePoint(scanner); break; default: helpers.checkCommonEntityProperties(entity, curr, scanner); break; } curr = scanner.next(); } return entity; } } ================================================ FILE: packages/sdk/lib/dxf/parser/entities/text.ts ================================================ import DxfArrayScanner, {IGroup} from '../DxfArrayScanner'; import * as helpers from '../ParseHelpers' import IGeometry, {IEntity, IPoint} from './geomtry'; export interface ITextEntity extends IEntity { startPoint: IPoint; endPoint: IPoint; textHeight: number; xScale: number; rotation: number; obliqueAngle: number; text: string; fontName: string; thickness: number; halign: number; valign: number; flags: number; } export default class Text implements IGeometry { public ForEntityName = 'TEXT' as const; public parseEntity(scanner: DxfArrayScanner, curr: IGroup) { const entity = {type: curr.value} as ITextEntity; curr = scanner.next(); while (!scanner.isEOF()) { if (curr.code === 0) break; switch (curr.code) { case 1: // 字符串本身 entity.text = curr.value as string; break; case 7: // 字体名称/文字样式名(可选;默认值 = 标准) entity.fontName = curr.value as string; break; case 10: // 第一对齐点(在 OCS 中) DXF:X 值;APP:三维点 entity.startPoint = helpers.parsePoint(scanner); break; case 11: // 第二对齐点(在 OCS 中)(可选); // DXF:X 值;APP:三维点; // 只有当 72 或 73 组的值非零时,该值才有意义(如果对正不是基线对正/左对正) entity.endPoint = helpers.parsePoint(scanner); break; case 39: // 厚度(可选;默认值 = 0) entity.thickness = curr.value as number; break; case 40: // 文字高度 entity.textHeight = curr.value as number; break; case 41: // 相对 X 比例因子 — 宽度(可选;默认值 = 1) // 使用拟合类型的文字时,该值也将进行调整。 entity.xScale = curr.value as number; break; case 50: // 文字旋转角度(可选;默认值 = 0) entity.rotation = curr.value as number; break; case 51: // 倾斜角度(可选;默认值 = 0) entity.obliqueAngle = curr.value as number; break; case 71: // 文字生成标志(可选,仅适用于 SHX 文字): // 2 = 文字反向(在 X 轴方向镜像) // 4 = 文字倒置(在 Y 轴方向镜像) entity.flags = curr.value as number; break; // NOTE: 72和73没有11就没有意义(第二个对齐点) case 72: // 文字水平对正类型(可选;默认值 = 0)整数代码(非按位编码) // 0 = 左对正;1 = 居中对正;2 = 右对正 // 3 = 对齐(如果垂直对齐 = 0) // 4 = 中间(如果垂直对齐 = 0) // 5 = 拟合(如果垂直对齐 = 0) entity.halign = curr.value as number; break; case 73: // 文字垂直对正类型(可选;默认值 = 0)整数代码(不是按位编码) // 0 = 基线对正;1 = 底端对正;2 = 居中对正;3 = 顶端对正 entity.valign = curr.value as number; break; default: // check common entity attributes helpers.checkCommonEntityProperties(entity, curr, scanner); break; } curr = scanner.next(); } return entity; } } ================================================ FILE: packages/sdk/lib/dxf/parser/entities/vertex.ts ================================================ import DxfArrayScanner, { IGroup } from '../DxfArrayScanner'; import * as helpers from '../ParseHelpers' import IGeometry, { IEntity, IPoint } from './geomtry'; export interface IVertexEntity extends IEntity, IPoint{ bulge: number; curveFittingVertex: boolean; curveFitTangent: boolean; splineVertex: boolean; splineControlPoint: boolean; threeDPolylineVertex: boolean; threeDPolylineMesh: boolean; polyfaceMeshVertex: boolean; faceA: number; faceB: number; faceC: number; faceD: number; } export default class Vertex implements IGeometry { public ForEntityName= 'VERTEX' as const; public parseEntity(scanner: DxfArrayScanner, curr: IGroup) { var entity = { type: curr.value } as IVertexEntity; curr = scanner.next(); while(!scanner.isEOF()) { if(curr.code === 0) break; switch(curr.code) { case 10: // X entity.x = curr.value as number; break; case 20: // Y entity.y = curr.value as number; break; case 30: // Z entity.z = curr.value as number; break; case 40: // start width break; case 41: // end width break; case 42: // bulge if(curr.value != 0) entity.bulge = curr.value as number; break; case 70: // flags entity.curveFittingVertex = ((curr.value as number) & 1) !== 0; entity.curveFitTangent = ((curr.value as number) & 2) !== 0; entity.splineVertex = ((curr.value as number) & 8) !== 0; entity.splineControlPoint = ((curr.value as number) & 16) !== 0; entity.threeDPolylineVertex = ((curr.value as number) & 32) !== 0; entity.threeDPolylineMesh = ((curr.value as number) & 64) !== 0; entity.polyfaceMeshVertex = ((curr.value as number) & 128) !== 0; break; case 50: // curve fit tangent direction break; case 71: // polyface mesh vertex index entity.faceA = curr.value as number; break; case 72: // polyface mesh vertex index entity.faceB = curr.value as number; break; case 73: // polyface mesh vertex index entity.faceC = curr.value as number; break; case 74: // polyface mesh vertex index entity.faceD = curr.value as number; break; default: helpers.checkCommonEntityProperties(entity, curr, scanner); break; } curr = scanner.next(); } return entity; } } ================================================ FILE: packages/sdk/lib/dxf/parser/index.ts ================================================ import DxfParser from './DxfParser'; export { default as DxfParser } from './DxfParser'; export type { IDxf, IBlock, ILayerTypesTable, ILayersTable, ITables, IViewPortTable, IBaseTable, ILayer, ILayerTableDefinition, ILineType, ILineTypeTableDefinition, ITable, ITableDefinitions, IViewPort, IViewPortTableDefinition } from './DxfParser'; export type { IEntity, IPoint } from './entities/geomtry'; export type { I3DfaceEntity } from './entities/3dface'; export type { IArcEntity } from './entities/arc'; export type { IAttdefEntity } from './entities/attdef'; export type { ICircleEntity } from './entities/circle'; export type { IDimensionEntity } from './entities/dimension'; export type { IEllipseEntity } from './entities/ellipse'; export type { IInsertEntity } from './entities/insert'; export type { ILineEntity } from './entities/line'; export type { ILwpolylineEntity } from './entities/lwpolyline'; export type { IMtextEntity } from './entities/mtext'; export type { IPointEntity } from './entities/point'; export type { IPolylineEntity } from './entities/polyline'; export type { ISolidEntity } from './entities/solid'; export type { ISplineEntity } from './entities/spline'; export type { ITextEntity } from './entities/text'; export type { IVertexEntity } from './entities/vertex'; export default DxfParser ================================================ FILE: packages/sdk/lib/dxf/pickHelper.ts ================================================ import { Raycaster, Mesh, Group, Vector2, Scene, OrthographicCamera,Color } from "three"; export class PickHelper { private raycaster: Raycaster; private pickedObject: Mesh | Group | undefined; private objects: Mesh[]; private camera: OrthographicCamera; private scene: Scene; private bloomLayer: number; private pickedColor = new Color("#63E2B7"); private lastPickedColor = null; constructor(scene: Scene, camera: OrthographicCamera, bloomLayer: number) { this.camera = camera; this.scene = scene; this.bloomLayer = bloomLayer; this.raycaster = new Raycaster(); this.objects = []; this.scene.traverseVisible(child => { if (child.children.length == 0) { this.objects.push(child); } }); } pick(normalizedPosition: Vector2,) { // 透过截锥投射一道光线 this.raycaster.setFromCamera(normalizedPosition, this.camera); // 获取射线相交的物体列表 const intersectedObjects = this.raycaster.intersectObjects(this.objects, false); if (intersectedObjects.length) { // 选择第一个对象。这是最近的一个 this.select(intersectedObjects[0].object as Mesh); } } select(object: Mesh | Group) { if (!object || object.uuid === this.pickedObject?.uuid) return; // 如果有被选中的物体,则恢复 if (this.pickedObject) { this.pickedObject.layers.toggle(this.bloomLayer); if(this.pickedObject.material && this.lastPickedColor){ this.pickedObject.material.color = this.lastPickedColor; this.lastPickedColor = null; } this.pickedObject = undefined; } this.pickedObject = object; this.pickedObject.layers.toggle(this.bloomLayer); if(this.pickedObject.material){ this.lastPickedColor = this.pickedObject.material.color; this.pickedObject.material.color = this.pickedColor; } } } ================================================ FILE: packages/sdk/lib/dxf/round10.ts ================================================ // 这是基础的示例代码 // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/floor // MDN上的示例代码是公共领域或CC0(您的偏好)或MIT,具体取决于示例代码添加的时间: // https://developer.mozilla.org/en-US/docs/MDN/About export default (value: number | string[], exp?:number | undefined) => { // 如果exp没有定义或者为零... if (typeof exp === 'undefined' || +exp === 0) { return Math.round(value as number) } value = +value exp = +exp // 如果值不是数字或exp不是整数… if (isNaN(value) || !(exp % 1 === 0)) { return NaN } // Shift value = value.toString().split('e') value = Math.round(+(value[0] + 'e' + (value[1] ? (+value[1] - exp) : -exp))) // Shift back value = value.toString().split('e') return +(value[0] + 'e' + (value[1] ? (+value[1] + exp) : exp)) } ================================================ FILE: packages/sdk/lib/dxf/troika-three-text.esm.js ================================================ import { Color, DataTexture, RedFormat, LinearFilter, Vector3, InstancedBufferGeometry, Sphere, Box3, InstancedBufferAttribute, PlaneGeometry as PlaneBufferGeometry, Vector2, Vector4, Matrix3, MeshBasicMaterial, DoubleSide, Matrix4, Mesh } from 'three'; import { defineWorkerModule, ThenableWorkerModule } from './troika-worker-utils.esm.js'; import { createDerivedMaterial, voidMainRegExp } from './troika-three-utils.esm.js'; /** * Initializes and returns a function to generate an SDF texture for a given glyph. * @param {function} createGlyphSegmentsQuadtree - factory for a GlyphSegmentsQuadtree implementation. * @param {number} config.sdfDistancePercent - see docs for SDF_DISTANCE_PERCENT in TextBuilder.js * * @return {function(Object): {renderingBounds: [minX, minY, maxX, maxY], textureData: Uint8Array}} */ function createSDFGenerator(createGlyphSegmentsQuadtree, config) { const { sdfDistancePercent } = config; /** * How many straight line segments to use when approximating a glyph's quadratic/cubic bezier curves. */ const CURVE_POINTS = 16; /** * Find the point on a quadratic bezier curve at t where t is in the range [0, 1] */ function pointOnQuadraticBezier(x0, y0, x1, y1, x2, y2, t) { const t2 = 1 - t; return { x: t2 * t2 * x0 + 2 * t2 * t * x1 + t * t * x2, y: t2 * t2 * y0 + 2 * t2 * t * y1 + t * t * y2 } } /** * Find the point on a cubic bezier curve at t where t is in the range [0, 1] */ function pointOnCubicBezier(x0, y0, x1, y1, x2, y2, x3, y3, t) { const t2 = 1 - t; return { x: t2 * t2 * t2 * x0 + 3 * t2 * t2 * t * x1 + 3 * t2 * t * t * x2 + t * t * t * x3, y: t2 * t2 * t2 * y0 + 3 * t2 * t2 * t * y1 + 3 * t2 * t * t * y2 + t * t * t * y3 } } /** * Generate an SDF texture segment for a single glyph. * @param {object} glyphObj * @param {number} sdfSize - the length of one side of the SDF image. * Larger images encode more details. Must be a power of 2. * @return {{textureData: Uint8Array, renderingBounds: *[]}} */ function generateSDF(glyphObj, sdfSize) { //console.time('glyphSDF') const textureData = new Uint8Array(sdfSize * sdfSize); // Determine mapping between glyph grid coords and sdf grid coords const glyphW = glyphObj.xMax - glyphObj.xMin; const glyphH = glyphObj.yMax - glyphObj.yMin; // Choose a maximum distance radius in font units, based on the glyph's max dimensions const fontUnitsMaxDist = Math.max(glyphW, glyphH) * sdfDistancePercent; // Use that, extending to the texture edges, to find conversion ratios between texture units and font units const fontUnitsPerXTexel = (glyphW + fontUnitsMaxDist * 2) / sdfSize; const fontUnitsPerYTexel = (glyphH + fontUnitsMaxDist * 2) / sdfSize; const textureMinFontX = glyphObj.xMin - fontUnitsMaxDist - fontUnitsPerXTexel; const textureMinFontY = glyphObj.yMin - fontUnitsMaxDist - fontUnitsPerYTexel; const textureMaxFontX = glyphObj.xMax + fontUnitsMaxDist + fontUnitsPerXTexel; const textureMaxFontY = glyphObj.yMax + fontUnitsMaxDist + fontUnitsPerYTexel; function textureXToFontX(x) { return textureMinFontX + (textureMaxFontX - textureMinFontX) * x / sdfSize } function textureYToFontY(y) { return textureMinFontY + (textureMaxFontY - textureMinFontY) * y / sdfSize } if (glyphObj.pathCommandCount) { //whitespace chars will have no commands, so we can skip all this // Decompose all paths into straight line segments and add them to a quadtree const lineSegmentsIndex = createGlyphSegmentsQuadtree(glyphObj); let firstX, firstY, prevX, prevY; glyphObj.forEachPathCommand((type, x0, y0, x1, y1, x2, y2) => { switch (type) { case 'M': prevX = firstX = x0; prevY = firstY = y0; break case 'L': if (x0 !== prevX || y0 !== prevY) { //yup, some fonts have zero-length line commands lineSegmentsIndex.addLineSegment(prevX, prevY, (prevX = x0), (prevY = y0)); } break case 'Q': { let prevPoint = {x: prevX, y: prevY}; for (let i = 1; i < CURVE_POINTS; i++) { let nextPoint = pointOnQuadraticBezier( prevX, prevY, x0, y0, x1, y1, i / (CURVE_POINTS - 1) ); lineSegmentsIndex.addLineSegment(prevPoint.x, prevPoint.y, nextPoint.x, nextPoint.y); prevPoint = nextPoint; } prevX = x1; prevY = y1; break } case 'C': { let prevPoint = {x: prevX, y: prevY}; for (let i = 1; i < CURVE_POINTS; i++) { let nextPoint = pointOnCubicBezier( prevX, prevY, x0, y0, x1, y1, x2, y2, i / (CURVE_POINTS - 1) ); lineSegmentsIndex.addLineSegment(prevPoint.x, prevPoint.y, nextPoint.x, nextPoint.y); prevPoint = nextPoint; } prevX = x2; prevY = y2; break } case 'Z': if (prevX !== firstX || prevY !== firstY) { lineSegmentsIndex.addLineSegment(prevX, prevY, firstX, firstY); } break } }); // For each target SDF texel, find the distance from its center to its nearest line segment, // map that distance to an alpha value, and write that alpha to the texel for (let sdfX = 0; sdfX < sdfSize; sdfX++) { for (let sdfY = 0; sdfY < sdfSize; sdfY++) { const signedDist = lineSegmentsIndex.findNearestSignedDistance( textureXToFontX(sdfX + 0.5), textureYToFontY(sdfY + 0.5), fontUnitsMaxDist ); //if (!isFinite(signedDist)) throw 'infinite distance!' let alpha = isFinite(signedDist) ? Math.round(255 * (1 + signedDist / fontUnitsMaxDist) * 0.5) : signedDist; alpha = Math.max(0, Math.min(255, alpha)); //clamp textureData[sdfY * sdfSize + sdfX] = alpha; } } } //console.timeEnd('glyphSDF') return { textureData: textureData, renderingBounds: [ textureMinFontX, textureMinFontY, textureMaxFontX, textureMaxFontY ] } } return generateSDF } /** * Creates a self-contained environment for processing text rendering requests. * * It is important that this function has no closure dependencies, so that it can be easily injected * into the source for a Worker without requiring a build step or complex dependency loading. All its * dependencies must be passed in at initialization. * * @param {function} fontParser - a function that accepts an ArrayBuffer of the font data and returns * a standardized structure giving access to the font and its glyphs: * { * unitsPerEm: number, * ascender: number, * descender: number, * forEachGlyph(string, fontSize, letterSpacing, callback) { * //invokes callback for each glyph to render, passing it an object: * callback({ * index: number, * advanceWidth: number, * xMin: number, * yMin: number, * xMax: number, * yMax: number, * pathCommandCount: number, * forEachPathCommand(callback) { * //invokes callback for each path command, with args: * callback( * type: 'M|L|C|Q|Z', * ...args //0 to 6 args depending on the type * ) * } * }) * } * } * @param {function} sdfGenerator - a function that accepts a glyph object and generates an SDF texture * from it. * @param {Object} config * @return {Object} */ function createFontProcessor(fontParser, sdfGenerator, config) { const { defaultFontUrl } = config; /** * @private * Holds data about font glyphs and how they relate to SDF atlases * * { * 'fontUrl@sdfSize': { * fontObj: {}, //result of the fontParser * glyphs: { * [glyphIndex]: { * atlasIndex: 0, * glyphObj: {}, //glyph object from the fontParser * renderingBounds: [x0, y0, x1, y1] * }, * ... * }, * glyphCount: 123 * } * } */ const fontAtlases = Object.create(null); /** * Holds parsed font objects by url */ const fonts = Object.create(null); const INF = Infinity; /** * Load a given font url */ function doLoadFont(url, callback) { function tryLoad() { const onError = err => { console.error(`Failure loading font ${url}${url === defaultFontUrl ? '' : '; trying fallback'}`, err); if (url !== defaultFontUrl) { url = defaultFontUrl; tryLoad(); } }; try { const request = new XMLHttpRequest(); request.open('get', url, true); request.responseType = 'arraybuffer'; request.onload = function () { if (request.status >= 400) { onError(new Error(request.statusText)); } else if (request.status > 0) { try { const fontObj = fontParser(request.response); callback(fontObj); } catch (e) { onError(e); } } }; request.onerror = onError; request.send(); } catch(err) { onError(err); } } tryLoad(); } /** * Load a given font url if needed, invoking a callback when it's loaded. If already * loaded, the callback will be called synchronously. */ function loadFont(fontUrl, callback) { if (!fontUrl) fontUrl = defaultFontUrl; let font = fonts[fontUrl]; if (font) { // if currently loading font, add to callbacks, otherwise execute immediately if (font.pending) { font.pending.push(callback); } else { callback(font); } } else { fonts[fontUrl] = {pending: [callback]}; doLoadFont(fontUrl, fontObj => { let callbacks = fonts[fontUrl].pending; fonts[fontUrl] = fontObj; callbacks.forEach(cb => cb(fontObj)); }); } } /** * Get the atlas data for a given font url, loading it from the network and initializing * its atlas data objects if necessary. */ function getSdfAtlas(fontUrl, sdfGlyphSize, callback) { if (!fontUrl) fontUrl = defaultFontUrl; let atlasKey = `${fontUrl}@${sdfGlyphSize}`; let atlas = fontAtlases[atlasKey]; if (atlas) { callback(atlas); } else { loadFont(fontUrl, fontObj => { atlas = fontAtlases[atlasKey] || (fontAtlases[atlasKey] = { fontObj: fontObj, glyphs: {}, glyphCount: 0 }); callback(atlas); }); } } /** * Main entry point. * Process a text string with given font and formatting parameters, and return all info * necessary to render all its glyphs. */ function process( { text='', font=defaultFontUrl, sdfGlyphSize=64, fontSize=1, letterSpacing=0, lineHeight='normal', maxWidth=INF, textAlign='left', textIndent=0, whiteSpace='normal', overflowWrap='normal', anchorX = 0, anchorY = 0, includeCaretPositions=false, chunkedBoundsSize=8192, colorRanges=null }, callback, metricsOnly=false ) { const mainStart = now(); const timings = {total: 0, fontLoad: 0, layout: 0, sdf: {}, sdfTotal: 0}; // Ensure newlines are normalized if (text.indexOf('\r') > -1) { console.warn('FontProcessor.process: got text with \\r chars; normalizing to \\n'); text = text.replace(/\r\n/g, '\n').replace(/\r/g, '\n'); } // Ensure we've got numbers not strings fontSize = +fontSize; letterSpacing = +letterSpacing; maxWidth = +maxWidth; lineHeight = lineHeight || 'normal'; textIndent = +textIndent; getSdfAtlas(font, sdfGlyphSize, atlas => { const fontObj = atlas.fontObj; const hasMaxWidth = isFinite(maxWidth); let newGlyphs = null; let glyphBounds = null; let glyphAtlasIndices = null; let glyphColors = null; let caretPositions = null; let totalBounds = null; let chunkedBounds = null; let maxLineWidth = 0; let renderableGlyphCount = 0; let canWrap = whiteSpace !== 'nowrap'; const {ascender, descender, unitsPerEm} = fontObj; timings.fontLoad = now() - mainStart; const layoutStart = now(); // Find conversion between native font units and fontSize units; this will already be done // for the gx/gy values below but everything else we'll need to convert const fontSizeMult = fontSize / unitsPerEm; // Determine appropriate value for 'normal' line height based on the font's actual metrics // TODO this does not guarantee individual glyphs won't exceed the line height, e.g. Roboto; should we use yMin/Max instead? if (lineHeight === 'normal') { lineHeight = (ascender - descender) / unitsPerEm; } // Determine line height and leading adjustments lineHeight = lineHeight * fontSize; const halfLeading = (lineHeight - (ascender - descender) * fontSizeMult) / 2; const topBaseline = -(fontSize + halfLeading); const caretHeight = Math.min(lineHeight, (ascender - descender) * fontSizeMult); const caretBottomOffset = (ascender + descender) / 2 * fontSizeMult - caretHeight / 2; // Distribute glyphs into lines based on wrapping let lineXOffset = textIndent; let currentLine = new TextLine(); const lines = [currentLine]; fontObj.forEachGlyph(text, fontSize, letterSpacing, (glyphObj, glyphX, charIndex) => { const char = text.charAt(charIndex); const glyphWidth = glyphObj.advanceWidth * fontSizeMult; const curLineCount = currentLine.count; let nextLine; // Calc isWhitespace and isEmpty once per glyphObj if (!('isEmpty' in glyphObj)) { glyphObj.isWhitespace = !!char && /\s/.test(char); glyphObj.isEmpty = glyphObj.xMin === glyphObj.xMax || glyphObj.yMin === glyphObj.yMax; } if (!glyphObj.isWhitespace && !glyphObj.isEmpty) { renderableGlyphCount++; } // If a non-whitespace character overflows the max width, we need to soft-wrap if (canWrap && hasMaxWidth && !glyphObj.isWhitespace && glyphX + glyphWidth + lineXOffset > maxWidth && curLineCount) { // If it's the first char after a whitespace, start a new line if (currentLine.glyphAt(curLineCount - 1).glyphObj.isWhitespace) { nextLine = new TextLine(); lineXOffset = -glyphX; } else { // Back up looking for a whitespace character to wrap at for (let i = curLineCount; i--;) { // If we got the start of the line there's no soft break point; make hard break if overflowWrap='break-word' if (i === 0 && overflowWrap === 'break-word') { nextLine = new TextLine(); lineXOffset = -glyphX; break } // Found a soft break point; move all chars since it to a new line else if (currentLine.glyphAt(i).glyphObj.isWhitespace) { nextLine = currentLine.splitAt(i + 1); const adjustX = nextLine.glyphAt(0).x; lineXOffset -= adjustX; for (let j = nextLine.count; j--;) { nextLine.glyphAt(j).x -= adjustX; } break } } } if (nextLine) { currentLine.isSoftWrapped = true; currentLine = nextLine; lines.push(currentLine); maxLineWidth = maxWidth; //after soft wrapping use maxWidth as calculated width } } let fly = currentLine.glyphAt(currentLine.count); fly.glyphObj = glyphObj; fly.x = glyphX + lineXOffset; fly.width = glyphWidth; fly.charIndex = charIndex; // Handle hard line breaks if (char === '\n') { currentLine = new TextLine(); lines.push(currentLine); lineXOffset = -(glyphX + glyphWidth + (letterSpacing * fontSize)) + textIndent; } }); // Calculate width of each line (excluding trailing whitespace) and maximum block width lines.forEach(line => { for (let i = line.count; i--;) { let {glyphObj, x, width} = line.glyphAt(i); if (!glyphObj.isWhitespace) { line.width = x + width; if (line.width > maxLineWidth) { maxLineWidth = line.width; } return } } }); if (!metricsOnly) { // Find overall position adjustments for anchoring let anchorXOffset = 0; let anchorYOffset = 0; if (anchorX) { if (typeof anchorX === 'number') { anchorXOffset = -anchorX; } else if (typeof anchorX === 'string') { anchorXOffset = -maxLineWidth * ( anchorX === 'left' ? 0 : anchorX === 'center' ? 0.5 : anchorX === 'right' ? 1 : parsePercent(anchorX) ); } } if (anchorY) { if (typeof anchorY === 'number') { anchorYOffset = -anchorY; } else if (typeof anchorY === 'string') { let height = lines.length * lineHeight; anchorYOffset = anchorY === 'top' ? 0 : anchorY === 'top-baseline' ? -topBaseline : anchorY === 'middle' ? height / 2 : anchorY === 'bottom' ? height : anchorY === 'bottom-baseline' ? height - halfLeading + descender * fontSizeMult : parsePercent(anchorY) * height; } } // Process each line, applying alignment offsets, adding each glyph to the atlas, and // collecting all renderable glyphs into a single collection. glyphBounds = new Float32Array(renderableGlyphCount * 4); glyphAtlasIndices = new Float32Array(renderableGlyphCount); totalBounds = [INF, INF, -INF, -INF]; chunkedBounds = []; let lineYOffset = topBaseline; if (includeCaretPositions) { caretPositions = new Float32Array(text.length * 3); } if (colorRanges) { glyphColors = new Uint8Array(renderableGlyphCount * 3); } let renderableGlyphIndex = 0; let prevCharIndex = -1; let colorCharIndex = -1; let chunk; let currentColor; lines.forEach(line => { const {count:lineGlyphCount, width:lineWidth} = line; // Ignore empty lines if (lineGlyphCount > 0) { // Find x offset for horizontal alignment let lineXOffset = 0; let justifyAdjust = 0; if (textAlign === 'center') { lineXOffset = (maxLineWidth - lineWidth) / 2; } else if (textAlign === 'right') { lineXOffset = maxLineWidth - lineWidth; } else if (textAlign === 'justify' && line.isSoftWrapped) { // just count the non-trailing whitespace characters, and we'll adjust the offsets per // character in the next loop let whitespaceCount = 0; for (let i = lineGlyphCount; i--;) { if (!line.glyphAt(i).glyphObj.isWhitespace) { while (i--) { if (!line.glyphAt(i).glyphObj) { debugger } if (line.glyphAt(i).glyphObj.isWhitespace) { whitespaceCount++; } } break } } justifyAdjust = (maxLineWidth - lineWidth) / whitespaceCount; } for (let i = 0; i < lineGlyphCount; i++) { const glyphInfo = line.glyphAt(i); const glyphObj = glyphInfo.glyphObj; // Apply position adjustments if (lineXOffset) glyphInfo.x += lineXOffset; // Expand whitespaces for justify alignment if (justifyAdjust !== 0 && glyphObj.isWhitespace) { lineXOffset += justifyAdjust; glyphInfo.width += justifyAdjust; } // Add caret positions if (includeCaretPositions) { const {charIndex} = glyphInfo; caretPositions[charIndex * 3] = glyphInfo.x + anchorXOffset; //left edge x caretPositions[charIndex * 3 + 1] = glyphInfo.x + glyphInfo.width + anchorXOffset; //right edge x caretPositions[charIndex * 3 + 2] = lineYOffset + caretBottomOffset + anchorYOffset; //common bottom y // If we skipped any chars from the previous glyph (due to ligature subs), copy the // previous glyph's info to those missing char indices. In the future we may try to // use the font's LigatureCaretList table to get interior caret positions. while (charIndex - prevCharIndex > 1) { caretPositions[(prevCharIndex + 1) * 3] = caretPositions[prevCharIndex * 3 + 1]; caretPositions[(prevCharIndex + 1) * 3 + 1] = caretPositions[prevCharIndex * 3 + 1]; caretPositions[(prevCharIndex + 1) * 3 + 2] = caretPositions[prevCharIndex * 3 + 2]; prevCharIndex++; } prevCharIndex = charIndex; } // Track current color range if (colorRanges) { const {charIndex} = glyphInfo; while(charIndex > colorCharIndex) { colorCharIndex++; if (colorRanges.hasOwnProperty(colorCharIndex)) { currentColor = colorRanges[colorCharIndex]; } } } // Get atlas data for renderable glyphs if (!glyphObj.isWhitespace && !glyphObj.isEmpty) { const idx = renderableGlyphIndex++; // If we haven't seen this glyph yet, generate its SDF let glyphAtlasInfo = atlas.glyphs[glyphObj.index]; if (!glyphAtlasInfo) { const sdfStart = now(); const glyphSDFData = sdfGenerator(glyphObj, sdfGlyphSize); timings.sdf[text.charAt(glyphInfo.charIndex)] = now() - sdfStart; // Assign this glyph the next available atlas index glyphSDFData.atlasIndex = atlas.glyphCount++; // Queue it up in the response's newGlyphs list if (!newGlyphs) newGlyphs = []; newGlyphs.push(glyphSDFData); // Store its metadata (not the texture) in our atlas info glyphAtlasInfo = atlas.glyphs[glyphObj.index] = { atlasIndex: glyphSDFData.atlasIndex, glyphObj: glyphObj, renderingBounds: glyphSDFData.renderingBounds }; } // Determine final glyph bounds and add them to the glyphBounds array const bounds = glyphAtlasInfo.renderingBounds; const start = idx * 4; const x0 = glyphBounds[start] = glyphInfo.x + bounds[0] * fontSizeMult + anchorXOffset; const y0 = glyphBounds[start + 1] = lineYOffset + bounds[1] * fontSizeMult + anchorYOffset; const x1 = glyphBounds[start + 2] = glyphInfo.x + bounds[2] * fontSizeMult + anchorXOffset; const y1 = glyphBounds[start + 3] = lineYOffset + bounds[3] * fontSizeMult + anchorYOffset; // Track total bounds if (x0 < totalBounds[0]) totalBounds[0] = x0; if (y0 < totalBounds[1]) totalBounds[1] = y0; if (x1 > totalBounds[2]) totalBounds[2] = x1; if (y1 > totalBounds[3]) totalBounds[3] = y1; // Track bounding rects for each chunk of N glyphs if (idx % chunkedBoundsSize === 0) { chunk = {start: idx, end: idx, rect: [INF, INF, -INF, -INF]}; chunkedBounds.push(chunk); } chunk.end++; if (x0 < chunk.rect[0]) chunk.rect[0] = x0; if (y0 < chunk.rect[1]) chunk.rect[1] = y0; if (x1 > chunk.rect[2]) chunk.rect[2] = x1; if (y1 > chunk.rect[3]) chunk.rect[3] = y1; // Add to atlas indices array glyphAtlasIndices[idx] = glyphAtlasInfo.atlasIndex; // Add colors if (colorRanges) { const start = idx * 3; glyphColors[start] = currentColor >> 16 & 255; glyphColors[start + 1] = currentColor >> 8 & 255; glyphColors[start + 2] = currentColor & 255; } } } } // Increment y offset for next line lineYOffset -= lineHeight; }); } // Timing stats for (let ch in timings.sdf) { timings.sdfTotal += timings.sdf[ch]; } timings.layout = now() - layoutStart - timings.sdfTotal; timings.total = now() - mainStart; callback({ glyphBounds, //rendering quad bounds for each glyph [x1, y1, x2, y2] glyphAtlasIndices, //atlas indices for each glyph caretPositions, //x,y of bottom of cursor position before each char, plus one after last char caretHeight, //height of cursor from bottom to top glyphColors, //color for each glyph, if color ranges supplied chunkedBounds, //total rects per (n=chunkedBoundsSize) consecutive glyphs ascender: ascender * fontSizeMult, //font ascender descender: descender * fontSizeMult, //font descender lineHeight, //computed line height topBaseline, //y coordinate of the top line's baseline totalBounds, //total rect including all glyphBounds; will be slightly larger than glyph edges due to SDF padding totalBlockSize: [maxLineWidth, lines.length * lineHeight], //width and height of the text block; accurate for layout measurement newGlyphSDFs: newGlyphs, //if this request included any new SDFs for the atlas, they'll be included here timings }); }); } /** * For a given text string and font parameters, determine the resulting block dimensions * after wrapping for the given maxWidth. * @param args * @param callback */ function measure(args, callback) { process(args, (result) => { callback({ width: result.totalBlockSize[0], height: result.totalBlockSize[1] }); }, {metricsOnly: true}); } function parsePercent(str) { let match = str.match(/^([\d.]+)%$/); let pct = match ? parseFloat(match[1]) : NaN; return isNaN(pct) ? 0 : pct / 100 } function now() { return (self.performance || Date).now() } // Array-backed structure for a single line's glyphs data function TextLine() { this.data = []; } TextLine.prototype = { width: 0, isSoftWrapped: false, get count() { return Math.ceil(this.data.length / 4) }, glyphAt(i) { let fly = TextLine.flyweight; fly.data = this.data; fly.index = i; return fly }, splitAt(i) { let newLine = new TextLine(); newLine.data = this.data.splice(i * 4); return newLine } }; TextLine.flyweight = ['glyphObj', 'x', 'width', 'charIndex'].reduce((obj, prop, i, all) => { Object.defineProperty(obj, prop, { get() { return this.data[this.index * 4 + i] }, set(val) { this.data[this.index * 4 + i] = val; } }); return obj }, {data: null, index: 0}); return { process, measure, loadFont } } /** * Basic quadtree impl for performing fast spatial searches of a glyph's line segments. */ function createGlyphSegmentsQuadtree(glyphObj) { // Pick a good initial power-of-two bounding box that will hold all possible segments const {xMin, yMin, xMax, yMax} = glyphObj; const dx = xMax - xMin; const dy = yMax - yMin; const cx = Math.round(xMin + dx / 2); const cy = Math.round(yMin + dy / 2); const r = Math.pow(2, Math.floor(Math.log(Math.max(dx, dy)) * Math.LOG2E)); const INF = Infinity; const root = { 0: null, 1: null, 2: null, 3: null, data: null, cx: cx, cy: cy, r: r, minX: INF, minY: INF, maxX: -INF, maxY: -INF }; /** * Add a line segment to the quadtree. * @param x0 * @param y0 * @param x1 * @param y1 */ function addLineSegment(x0, y0, x1, y1) { const cx = (x0 + x1) / 2; const cy = (y0 + y1) / 2; const segment = { x0, y0, x1, y1, cx, cy, minX: Math.min(x0, x1), minY: Math.min(y0, y1), maxX: Math.max(x0, x1), maxY: Math.max(y0, y1), next: null }; insertSegment(segment, root); } function insertSegment(segment, node) { // update node min/max stats const {minX, minY, maxX, maxY, cx, cy} = segment; if (minX < node.minX) node.minX = minX; if (minY < node.minY) node.minY = minY; if (maxX > node.maxX) node.maxX = maxX; if (maxY > node.maxY) node.maxY = maxY; // leaf let leafSegment = node.data; if (leafSegment) { // coincident; push as linked list if (leafSegment.cx === cx && leafSegment.cy === cy) { while (leafSegment.next) leafSegment = leafSegment.next; leafSegment.next = segment; } // non-coincident; split leaf to branch else { node.data = null; insertSegment(leafSegment, node); insertSegment(segment, node); } } // branch else { // find target sub-index for the segment's centerpoint const subIndex = (cy < node.cy ? 0 : 2) + (cx < node.cx ? 0 : 1); // subnode already at index: recurse if (node[subIndex]) { insertSegment(segment, node[subIndex]); } // create new leaf else { node[subIndex] = { 0: null, 1: null, 2: null, 3: null, data: segment, cx: node.cx + node.r / 2 * (subIndex % 2 ? 1 : -1), cy: node.cy + node.r / 2 * (subIndex < 2 ? -1 : 1), r: node.r / 2, minX: minX, minY: minY, maxX: maxX, maxY: maxY }; } } } function walkTree(callback) { walkBranch(root, callback); } function walkBranch(root, callback) { if (callback(root) !== false && !root.data) { for (let i = 0; i < 4; i++) { if (root[i] !== null) { walkBranch(root[i], callback); } } } } /** * For a given x/y, search the quadtree for the closest line segment and return * its signed distance. * @param x * @param y * @param maxSearchRadius * @returns {number} */ function findNearestSignedDistance(x, y, maxSearchRadius) { let closestDist = maxSearchRadius; let closestDistSq = closestDist * closestDist; walkTree(function visit(node) { // Ignore nodes that can't possibly have segments closer than what we've already found. We base // this on a simple rect bounds check; radial would be more accurate but much slower. if ( x - closestDist > node.maxX || x + closestDist < node.minX || y - closestDist > node.maxY || y + closestDist < node.minY ) { return false } // Leaf - check each segment's actual distance for (let segment = node.data; segment; segment = segment.next) { const distSq = absSquareDistanceToLineSegment(x, y, segment.x0, segment.y0, segment.x1, segment.y1); if (distSq < closestDistSq) { closestDistSq = distSq; closestDist = Math.sqrt(distSq); } } }); // Flip to negative distance if outside the poly if (!isPointInPoly(x, y)) { closestDist = -closestDist; } return closestDist } // Determine whether the given point lies inside or outside the glyph. Uses a simple // ray casting algorithm using a ray pointing east from the point, optimized by using // the quadtree search to test as few lines as possible. function isPointInPoly(x, y) { let inside = false; walkTree(node => { // Ignore nodes whose bounds can't possibly cross our east-pointing ray if (node.maxX < x || node.minY > y || node.maxY < y) { return false } // Leaf - test each segment for whether it crosses our east-pointing ray for (let segment = node.data; segment; segment = segment.next) { const {x0, y0, x1, y1} = segment; const intersects = ((y0 > y) !== (y1 > y)) && (x < (x1 - x0) * (y - y0) / (y1 - y0) + x0); if (intersects) { inside = !inside; } } }); return inside } // Find the absolute distance from a point to a line segment at closest approach function absSquareDistanceToLineSegment(x, y, lineX0, lineY0, lineX1, lineY1) { const ldx = lineX1 - lineX0; const ldy = lineY1 - lineY0; const lengthSq = ldx * ldx + ldy * ldy; const t = lengthSq ? Math.max(0, Math.min(1, ((x - lineX0) * ldx + (y - lineY0) * ldy) / lengthSq)) : 0; const dx = x - (lineX0 + t * ldx); const dy = y - (lineY0 + t * ldy); return dx * dx + dy * dy } return { addLineSegment, findNearestSignedDistance } } // Custom bundle of Typr.js (https://github.com/photopea/Typr.js) for use in troika-3d-text. // Original MIT license applies: https://github.com/photopea/Typr.js/blob/gh-pages/LICENSE function typrFactory() { const window = self; // Begin Typr.js var Typr = {}; Typr.parse = function(buff) { var bin = Typr._bin; var data = new Uint8Array(buff); var tag = bin.readASCII(data, 0, 4); if(tag=="ttcf") { var offset = 4; var majV = bin.readUshort(data, offset); offset+=2; var minV = bin.readUshort(data, offset); offset+=2; var numF = bin.readUint (data, offset); offset+=4; var fnts = []; for(var i=0; i=buff.length) throw "error"; var a = Typr._bin.t.uint8; a[0] = buff[p+3]; a[1] = buff[p+2]; a[2] = buff[p+1]; a[3] = buff[p]; return Typr._bin.t.int32[0]; }, readInt8 : function(buff, p) { //if(p>=buff.length) throw "error"; var a = Typr._bin.t.uint8; a[0] = buff[p]; return Typr._bin.t.int8[0]; }, readShort : function(buff, p) { //if(p>=buff.length) throw "error"; var a = Typr._bin.t.uint8; a[1] = buff[p]; a[0] = buff[p+1]; return Typr._bin.t.int16[0]; }, readUshort : function(buff, p) { //if(p>=buff.length) throw "error"; return (buff[p]<<8) | buff[p+1]; }, readUshorts : function(buff, p, len) { var arr = []; for(var i=0; i=buff.length) throw "error"; var a = Typr._bin.t.uint8; a[3] = buff[p]; a[2] = buff[p+1]; a[1] = buff[p+2]; a[0] = buff[p+3]; return Typr._bin.t.uint32[0]; }, readUint64 : function(buff, p) { //if(p>=buff.length) throw "error"; return (Typr._bin.readUint(buff, p)*(0xffffffff+1)) + Typr._bin.readUint(buff, p+4); }, readASCII : function(buff, p, l) // l : length in Characters (not Bytes) { //if(p>=buff.length) throw "error"; var s = ""; for(var i = 0; i < l; i++) s += String.fromCharCode(buff[p+i]); return s; }, readUnicode : function(buff, p, l) { //if(p>=buff.length) throw "error"; var s = ""; for(var i = 0; i < l; i++) { var c = (buff[p++]<<8) | buff[p++]; s += String.fromCharCode(c); } return s; }, _tdec : window["TextDecoder"] ? new window["TextDecoder"]() : null, readUTF8 : function(buff, p, l) { var tdec = Typr._bin._tdec; if(tdec && p==0 && l==buff.length) return tdec["decode"](buff); return Typr._bin.readASCII(buff,p,l); }, readBytes : function(buff, p, l) { //if(p>=buff.length) throw "error"; var arr = []; for(var i=0; i=buff.length) throw "error"; var s = []; for(var i = 0; i < l; i++) s.push(String.fromCharCode(buff[p+i])); return s; } }; Typr._bin.t = { buff: new ArrayBuffer(8), }; Typr._bin.t.int8 = new Int8Array (Typr._bin.t.buff); Typr._bin.t.uint8 = new Uint8Array (Typr._bin.t.buff); Typr._bin.t.int16 = new Int16Array (Typr._bin.t.buff); Typr._bin.t.uint16 = new Uint16Array(Typr._bin.t.buff); Typr._bin.t.int32 = new Int32Array (Typr._bin.t.buff); Typr._bin.t.uint32 = new Uint32Array(Typr._bin.t.buff); // OpenType Layout Common Table Formats Typr._lctf = {}; Typr._lctf.parse = function(data, offset, length, font, subt) { var bin = Typr._bin; var obj = {}; var offset0 = offset; var tableVersion = bin.readFixed(data, offset); offset += 4; var offScriptList = bin.readUshort(data, offset); offset += 2; var offFeatureList = bin.readUshort(data, offset); offset += 2; var offLookupList = bin.readUshort(data, offset); offset += 2; obj.scriptList = Typr._lctf.readScriptList (data, offset0 + offScriptList); obj.featureList = Typr._lctf.readFeatureList(data, offset0 + offFeatureList); obj.lookupList = Typr._lctf.readLookupList (data, offset0 + offLookupList, subt); return obj; }; Typr._lctf.readLookupList = function(data, offset, subt) { var bin = Typr._bin; var offset0 = offset; var obj = []; var count = bin.readUshort(data, offset); offset+=2; for(var i=0; i>>i)&1) != 0) num++; return num; }; Typr._lctf.readClassDef = function(data, offset) { var bin = Typr._bin; var obj = []; var format = bin.readUshort(data, offset); offset+=2; if(format==1) { var startGlyph = bin.readUshort(data, offset); offset+=2; var glyphCount = bin.readUshort(data, offset); offset+=2; for(var i=0; i 255 ) return -1; return Typr.CFF.glyphByUnicode(cff, Typr.CFF.tableSE[charcode]); }; Typr.CFF.readEncoding = function(data, offset, num) { var bin = Typr._bin; var array = ['.notdef']; var format = data[offset]; offset++; //console.log("Encoding"); //console.log(format); if(format==0) { var nCodes = data[offset]; offset++; for(var i=0; i>4, nib1 = b&0xf; if(nib0 != 0xf) nibs.push(nib0); if(nib1!=0xf) nibs.push(nib1); if(nib1==0xf) break; } var s = ""; var chars = [0,1,2,3,4,5,6,7,8,9,".","e","e-","reserved","-","endOfNumber"]; for(var i=0; i=gl.xMax || gl.yMin>=gl.yMax) return null; if(gl.noc>0) { gl.endPts = []; for(var i=0; i>>8; /* I have seen format 128 once, that's why I do */ format &= 0xf; if(format==0) offset = Typr.kern.readFormat0(data, offset, map); else throw "unknown kern table format: "+format; } return map; }; Typr.kern.parseV1 = function(data, offset, length, font) { var bin = Typr._bin; var version = bin.readFixed(data, offset); offset+=4; var nTables = bin.readUint(data, offset); offset+=4; var map = {glyph1: [], rval:[]}; for(var i=0; i>>8; /* I have seen format 128 once, that's why I do */ format &= 0xf; if(format==0) offset = Typr.kern.readFormat0(data, offset, map); else throw "unknown kern table format: "+format; } return map; }; Typr.kern.readFormat0 = function(data, offset, map) { var bin = Typr._bin; var pleft = -1; var nPairs = bin.readUshort(data, offset); offset+=2; var searchRange = bin.readUshort(data, offset); offset+=2; var entrySelector = bin.readUshort(data, offset); offset+=2; var rangeShift = bin.readUshort(data, offset); offset+=2; for(var j=0; j=tab.map.length) return 0; return tab.map[code]; } else if(tab.format==4) { var sind = -1; for(var i=0; icode) return 0; var gli = 0; if(tab.idRangeOffset[sind]!=0) gli = tab.glyphIdArray[(code-tab.startCount[sind]) + (tab.idRangeOffset[sind]>>1) - (tab.idRangeOffset.length-sind)]; else gli = code + tab.idDelta[sind]; return gli & 0xFFFF; } else if(tab.format==12) { if(code>tab.groups[tab.groups.length-1][1]) return 0; for(var i=0; i-1) Typr.U._simpleGlyph(gl, path); else Typr.U._compoGlyph (gl, font, path); } }; Typr.U._simpleGlyph = function(gl, p) { for(var c=0; c=g) return cd.class[i]; //return 0; }; Typr.U.getPairAdjustment = function(font, g1, g2) { //return 0; if(font.GPOS) { var gpos = font["GPOS"]; var llist = gpos.lookupList, flist = gpos.featureList; var tused = []; for(var i=0; i0xffff) i++; gls.push(Typr.U.codeToGlyph(font, cc)); } for(var i=0; i0xffff) i++; } //console.log(gls.slice(0)); //console.log(gls); return gls; var gsub = font["GSUB"]; if(gsub==null) return gls; var llist = gsub.lookupList, flist = gsub.featureList; var cligs = ["rlig", "liga", "mset", "isol","init","fina","medi", "half", "pres", "blws" /* Tibetan fonts like Himalaya.ttf */ ]; //console.log(gls.slice(0)); var tused = []; for(var fi=0; firlim) continue; var good = true, em1 = 0; for(var l=0; lrlim) continue; var good = true; for(var l=0; l> 1; stack.length = 0; haveWidth = true; } else if(v=="o3" || v=="o23") // vstem || vstemhm { var hasWidthArg; // The number of stem operators on the stack is always even. // If the value is uneven, that means a width is specified. hasWidthArg = stack.length % 2 !== 0; if (hasWidthArg && !haveWidth) { width = stack.shift() + pdct.nominalWidthX; } nStems += stack.length >> 1; stack.length = 0; haveWidth = true; } else if(v=="o4") { if (stack.length > 1 && !haveWidth) { width = stack.shift() + pdct.nominalWidthX; haveWidth = true; } if(open) Typr.U.P.closePath(p); y += stack.pop(); Typr.U.P.moveTo(p,x,y); open=true; } else if(v=="o5") { while (stack.length > 0) { x += stack.shift(); y += stack.shift(); Typr.U.P.lineTo(p, x, y); } } else if(v=="o6" || v=="o7") // hlineto || vlineto { var count = stack.length; var isX = (v == "o6"); for(var j=0; j Math.abs(c4y - y)) { x = c4x + stack.shift(); } else { y = c4y + stack.shift(); } Typr.U.P.curveTo(p, c1x, c1y, c2x, c2y, jpx, jpy); Typr.U.P.curveTo(p, c3x, c3y, c4x, c4y, x, y); } } else if(v=="o14") { if (stack.length > 0 && !haveWidth) { width = stack.shift() + font.nominalWidthX; haveWidth = true; } if(stack.length==4) // seac = standard encoding accented character { var adx = stack.shift(); var ady = stack.shift(); var bchar = stack.shift(); var achar = stack.shift(); var bind = Typr.CFF.glyphBySE(font, bchar); var aind = Typr.CFF.glyphBySE(font, achar); //console.log(bchar, bind); //console.log(achar, aind); //state.x=x; state.y=y; state.nStems=nStems; state.haveWidth=haveWidth; state.width=width; state.open=open; Typr.U._drawCFF(font.CharStrings[bind], state,font,pdct,p); state.x = adx; state.y = ady; Typr.U._drawCFF(font.CharStrings[aind], state,font,pdct,p); //x=state.x; y=state.y; nStems=state.nStems; haveWidth=state.haveWidth; width=state.width; open=state.open; } if(open) { Typr.U.P.closePath(p); open=false; } } else if(v=="o19" || v=="o20") { var hasWidthArg; // The number of stem operators on the stack is always even. // If the value is uneven, that means a width is specified. hasWidthArg = stack.length % 2 !== 0; if (hasWidthArg && !haveWidth) { width = stack.shift() + pdct.nominalWidthX; } nStems += stack.length >> 1; stack.length = 0; haveWidth = true; i += (nStems + 7) >> 3; } else if(v=="o21") { if (stack.length > 2 && !haveWidth) { width = stack.shift() + pdct.nominalWidthX; haveWidth = true; } y += stack.pop(); x += stack.pop(); if(open) Typr.U.P.closePath(p); Typr.U.P.moveTo(p,x,y); open=true; } else if(v=="o22") { if (stack.length > 1 && !haveWidth) { width = stack.shift() + pdct.nominalWidthX; haveWidth = true; } x += stack.pop(); if(open) Typr.U.P.closePath(p); Typr.U.P.moveTo(p,x,y); open=true; } else if(v=="o25") { while (stack.length > 6) { x += stack.shift(); y += stack.shift(); Typr.U.P.lineTo(p, x, y); } c1x = x + stack.shift(); c1y = y + stack.shift(); c2x = c1x + stack.shift(); c2y = c1y + stack.shift(); x = c2x + stack.shift(); y = c2y + stack.shift(); Typr.U.P.curveTo(p, c1x, c1y, c2x, c2y, x, y); } else if(v=="o26") { if (stack.length % 2) { x += stack.shift(); } while (stack.length > 0) { c1x = x; c1y = y + stack.shift(); c2x = c1x + stack.shift(); c2y = c1y + stack.shift(); x = c2x; y = c2y + stack.shift(); Typr.U.P.curveTo(p, c1x, c1y, c2x, c2y, x, y); } } else if(v=="o27") { if (stack.length % 2) { y += stack.shift(); } while (stack.length > 0) { c1x = x + stack.shift(); c1y = y; c2x = c1x + stack.shift(); c2y = c1y + stack.shift(); x = c2x + stack.shift(); y = c2y; Typr.U.P.curveTo(p, c1x, c1y, c2x, c2y, x, y); } } else if(v=="o10" || v=="o29") // callsubr || callgsubr { var obj = (v=="o10" ? pdct : font); if(stack.length==0) { console.log("error: empty stack"); } else { var ind = stack.pop(); var subr = obj.Subrs[ ind + obj.Bias ]; state.x=x; state.y=y; state.nStems=nStems; state.haveWidth=haveWidth; state.width=width; state.open=open; Typr.U._drawCFF(subr, state,font,pdct,p); x=state.x; y=state.y; nStems=state.nStems; haveWidth=state.haveWidth; width=state.width; open=state.open; } } else if(v=="o30" || v=="o31") // vhcurveto || hvcurveto { var count, count1 = stack.length; var index = 0; var alternate = v == "o31"; count = count1 & ~2; index += count1 - count; while ( index < count ) { if(alternate) { c1x = x + stack.shift(); c1y = y; c2x = c1x + stack.shift(); c2y = c1y + stack.shift(); y = c2y + stack.shift(); if(count-index == 5) { x = c2x + stack.shift(); index++; } else x = c2x; alternate = false; } else { c1x = x; c1y = y + stack.shift(); c2x = c1x + stack.shift(); c2y = c1y + stack.shift(); x = c2x + stack.shift(); if(count-index == 5) { y = c2y + stack.shift(); index++; } else y = c2y; alternate = true; } Typr.U.P.curveTo(p, c1x, c1y, c2x, c2y, x, y); index += 4; } } else if((v+"").charAt(0)=="o") { console.log("Unknown operation: "+v, cmds); throw v; } else stack.push(v); } //console.log(cmds); state.x=x; state.y=y; state.nStems=nStems; state.haveWidth=haveWidth; state.width=width; state.open=open; }; // End Typr.U.js return Typr } // Custom bundle of woff2otf (https://github.com/arty-name/woff2otf) with tiny-inflate // (https://github.com/foliojs/tiny-inflate) for use in troika-3d-text. // Original licenses apply: // - tiny-inflate: https://github.com/foliojs/tiny-inflate/blob/master/LICENSE (MIT) // - woff2otf.js: https://github.com/arty-name/woff2otf/blob/master/woff2otf.js (Apache2) function woff2otfFactory() { // Begin tinyInflate const tinyInflate = (function() { const module = {}; var TINF_OK = 0; var TINF_DATA_ERROR = -3; function Tree() { this.table = new Uint16Array(16); /* table of code length counts */ this.trans = new Uint16Array(288); /* code -> symbol translation table */ } function Data(source, dest) { this.source = source; this.sourceIndex = 0; this.tag = 0; this.bitcount = 0; this.dest = dest; this.destLen = 0; this.ltree = new Tree(); /* dynamic length/symbol tree */ this.dtree = new Tree(); /* dynamic distance tree */ } /* --------------------------------------------------- * * -- uninitialized global data (static structures) -- * * --------------------------------------------------- */ var sltree = new Tree(); var sdtree = new Tree(); /* extra bits and base tables for length codes */ var length_bits = new Uint8Array(30); var length_base = new Uint16Array(30); /* extra bits and base tables for distance codes */ var dist_bits = new Uint8Array(30); var dist_base = new Uint16Array(30); /* special ordering of code length codes */ var clcidx = new Uint8Array([ 16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15 ]); /* used by tinf_decode_trees, avoids allocations every call */ var code_tree = new Tree(); var lengths = new Uint8Array(288 + 32); /* ----------------------- * * -- utility functions -- * * ----------------------- */ /* build extra bits and base tables */ function tinf_build_bits_base(bits, base, delta, first) { var i, sum; /* build bits table */ for (i = 0; i < delta; ++i) bits[i] = 0; for (i = 0; i < 30 - delta; ++i) bits[i + delta] = i / delta | 0; /* build base table */ for (sum = first, i = 0; i < 30; ++i) { base[i] = sum; sum += 1 << bits[i]; } } /* build the fixed huffman trees */ function tinf_build_fixed_trees(lt, dt) { var i; /* build fixed length tree */ for (i = 0; i < 7; ++i) lt.table[i] = 0; lt.table[7] = 24; lt.table[8] = 152; lt.table[9] = 112; for (i = 0; i < 24; ++i) lt.trans[i] = 256 + i; for (i = 0; i < 144; ++i) lt.trans[24 + i] = i; for (i = 0; i < 8; ++i) lt.trans[24 + 144 + i] = 280 + i; for (i = 0; i < 112; ++i) lt.trans[24 + 144 + 8 + i] = 144 + i; /* build fixed distance tree */ for (i = 0; i < 5; ++i) dt.table[i] = 0; dt.table[5] = 32; for (i = 0; i < 32; ++i) dt.trans[i] = i; } /* given an array of code lengths, build a tree */ var offs = new Uint16Array(16); function tinf_build_tree(t, lengths, off, num) { var i, sum; /* clear code length count table */ for (i = 0; i < 16; ++i) t.table[i] = 0; /* scan symbol lengths, and sum code length counts */ for (i = 0; i < num; ++i) t.table[lengths[off + i]]++; t.table[0] = 0; /* compute offset table for distribution sort */ for (sum = 0, i = 0; i < 16; ++i) { offs[i] = sum; sum += t.table[i]; } /* create code->symbol translation table (symbols sorted by code) */ for (i = 0; i < num; ++i) { if (lengths[off + i]) t.trans[offs[lengths[off + i]]++] = i; } } /* ---------------------- * * -- decode functions -- * * ---------------------- */ /* get one bit from source stream */ function tinf_getbit(d) { /* check if tag is empty */ if (!d.bitcount--) { /* load next tag */ d.tag = d.source[d.sourceIndex++]; d.bitcount = 7; } /* shift bit out of tag */ var bit = d.tag & 1; d.tag >>>= 1; return bit; } /* read a num bit value from a stream and add base */ function tinf_read_bits(d, num, base) { if (!num) return base; while (d.bitcount < 24) { d.tag |= d.source[d.sourceIndex++] << d.bitcount; d.bitcount += 8; } var val = d.tag & (0xffff >>> (16 - num)); d.tag >>>= num; d.bitcount -= num; return val + base; } /* given a data stream and a tree, decode a symbol */ function tinf_decode_symbol(d, t) { while (d.bitcount < 24) { d.tag |= d.source[d.sourceIndex++] << d.bitcount; d.bitcount += 8; } var sum = 0, cur = 0, len = 0; var tag = d.tag; /* get more bits while code value is above sum */ do { cur = 2 * cur + (tag & 1); tag >>>= 1; ++len; sum += t.table[len]; cur -= t.table[len]; } while (cur >= 0); d.tag = tag; d.bitcount -= len; return t.trans[sum + cur]; } /* given a data stream, decode dynamic trees from it */ function tinf_decode_trees(d, lt, dt) { var hlit, hdist, hclen; var i, num, length; /* get 5 bits HLIT (257-286) */ hlit = tinf_read_bits(d, 5, 257); /* get 5 bits HDIST (1-32) */ hdist = tinf_read_bits(d, 5, 1); /* get 4 bits HCLEN (4-19) */ hclen = tinf_read_bits(d, 4, 4); for (i = 0; i < 19; ++i) lengths[i] = 0; /* read code lengths for code length alphabet */ for (i = 0; i < hclen; ++i) { /* get 3 bits code length (0-7) */ var clen = tinf_read_bits(d, 3, 0); lengths[clcidx[i]] = clen; } /* build code length tree */ tinf_build_tree(code_tree, lengths, 0, 19); /* decode code lengths for the dynamic trees */ for (num = 0; num < hlit + hdist;) { var sym = tinf_decode_symbol(d, code_tree); switch (sym) { case 16: /* copy previous code length 3-6 times (read 2 bits) */ var prev = lengths[num - 1]; for (length = tinf_read_bits(d, 2, 3); length; --length) { lengths[num++] = prev; } break; case 17: /* repeat code length 0 for 3-10 times (read 3 bits) */ for (length = tinf_read_bits(d, 3, 3); length; --length) { lengths[num++] = 0; } break; case 18: /* repeat code length 0 for 11-138 times (read 7 bits) */ for (length = tinf_read_bits(d, 7, 11); length; --length) { lengths[num++] = 0; } break; default: /* values 0-15 represent the actual code lengths */ lengths[num++] = sym; break; } } /* build dynamic trees */ tinf_build_tree(lt, lengths, 0, hlit); tinf_build_tree(dt, lengths, hlit, hdist); } /* ----------------------------- * * -- block inflate functions -- * * ----------------------------- */ /* given a stream and two trees, inflate a block of data */ function tinf_inflate_block_data(d, lt, dt) { while (1) { var sym = tinf_decode_symbol(d, lt); /* check for end of block */ if (sym === 256) { return TINF_OK; } if (sym < 256) { d.dest[d.destLen++] = sym; } else { var length, dist, offs; var i; sym -= 257; /* possibly get more bits from length code */ length = tinf_read_bits(d, length_bits[sym], length_base[sym]); dist = tinf_decode_symbol(d, dt); /* possibly get more bits from distance code */ offs = d.destLen - tinf_read_bits(d, dist_bits[dist], dist_base[dist]); /* copy match */ for (i = offs; i < offs + length; ++i) { d.dest[d.destLen++] = d.dest[i]; } } } } /* inflate an uncompressed block of data */ function tinf_inflate_uncompressed_block(d) { var length, invlength; var i; /* unread from bitbuffer */ while (d.bitcount > 8) { d.sourceIndex--; d.bitcount -= 8; } /* get length */ length = d.source[d.sourceIndex + 1]; length = 256 * length + d.source[d.sourceIndex]; /* get one's complement of length */ invlength = d.source[d.sourceIndex + 3]; invlength = 256 * invlength + d.source[d.sourceIndex + 2]; /* check length */ if (length !== (~invlength & 0x0000ffff)) return TINF_DATA_ERROR; d.sourceIndex += 4; /* copy block */ for (i = length; i; --i) d.dest[d.destLen++] = d.source[d.sourceIndex++]; /* make sure we start next block on a byte boundary */ d.bitcount = 0; return TINF_OK; } /* inflate stream from source to dest */ function tinf_uncompress(source, dest) { var d = new Data(source, dest); var bfinal, btype, res; do { /* read final block flag */ bfinal = tinf_getbit(d); /* read block type (2 bits) */ btype = tinf_read_bits(d, 2, 0); /* decompress block */ switch (btype) { case 0: /* decompress uncompressed block */ res = tinf_inflate_uncompressed_block(d); break; case 1: /* decompress block with fixed huffman trees */ res = tinf_inflate_block_data(d, sltree, sdtree); break; case 2: /* decompress block with dynamic huffman trees */ tinf_decode_trees(d, d.ltree, d.dtree); res = tinf_inflate_block_data(d, d.ltree, d.dtree); break; default: res = TINF_DATA_ERROR; } if (res !== TINF_OK) throw new Error('Data error'); } while (!bfinal); if (d.destLen < d.dest.length) { if (typeof d.dest.slice === 'function') return d.dest.slice(0, d.destLen); else return d.dest.subarray(0, d.destLen); } return d.dest; } /* -------------------- * * -- initialization -- * * -------------------- */ /* build fixed huffman trees */ tinf_build_fixed_trees(sltree, sdtree); /* build extra bits and base tables */ tinf_build_bits_base(length_bits, length_base, 4, 3); tinf_build_bits_base(dist_bits, dist_base, 2, 1); /* fix a special case */ length_bits[28] = 0; length_base[28] = 258; module.exports = tinf_uncompress; return module.exports })(); // End tinyInflate // Begin woff2otf.js /* Copyright 2012, Steffen Hanikel (https://github.com/hanikesn) Modified by Artemy Tregubenko, 2014 (https://github.com/arty-name/woff2otf) Modified by Jason Johnston, 2019 (pako --> tiny-inflate) Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. A tool to convert a WOFF back to a TTF/OTF font file, in pure Javascript */ function convert_streams(bufferIn, tinyInflate) { var dataViewIn = new DataView(bufferIn); var offsetIn = 0; function read2() { var uint16 = dataViewIn.getUint16(offsetIn); offsetIn += 2; return uint16; } function read4() { var uint32 = dataViewIn.getUint32(offsetIn); offsetIn += 4; return uint32; } function write2(uint16) { dataViewOut.setUint16(offsetOut, uint16); offsetOut += 2; } function write4(uint32) { dataViewOut.setUint32(offsetOut, uint32); offsetOut += 4; } var WOFFHeader = { signature: read4(), flavor: read4(), length: read4(), numTables: read2(), reserved: read2(), totalSfntSize: read4(), majorVersion: read2(), minorVersion: read2(), metaOffset: read4(), metaLength: read4(), metaOrigLength: read4(), privOffset: read4(), privLength: read4() }; var entrySelector = 0; while (Math.pow(2, entrySelector) <= WOFFHeader.numTables) { entrySelector++; } entrySelector--; var searchRange = Math.pow(2, entrySelector) * 16; var rangeShift = WOFFHeader.numTables * 16 - searchRange; var offset = 4 + 2 + 2 + 2 + 2; var TableDirectoryEntries = []; for (var i = 0; i < WOFFHeader.numTables; i++) { TableDirectoryEntries.push({ tag: read4(), offset: read4(), compLength: read4(), origLength: read4(), origChecksum: read4() }); offset += 4 * 4; } var arrayOut = new Uint8Array( 4 + 2 + 2 + 2 + 2 + TableDirectoryEntries.length * (4 + 4 + 4 + 4) + TableDirectoryEntries.reduce(function(acc, entry) { return acc + entry.origLength + 4; }, 0) ); var bufferOut = arrayOut.buffer; var dataViewOut = new DataView(bufferOut); var offsetOut = 0; write4(WOFFHeader.flavor); write2(WOFFHeader.numTables); write2(searchRange); write2(entrySelector); write2(rangeShift); TableDirectoryEntries.forEach(function(TableDirectoryEntry) { write4(TableDirectoryEntry.tag); write4(TableDirectoryEntry.origChecksum); write4(offset); write4(TableDirectoryEntry.origLength); TableDirectoryEntry.outOffset = offset; offset += TableDirectoryEntry.origLength; if ((offset % 4) != 0) { offset += 4 - (offset % 4); } }); var size; TableDirectoryEntries.forEach(function(TableDirectoryEntry) { var compressedData = bufferIn.slice( TableDirectoryEntry.offset, TableDirectoryEntry.offset + TableDirectoryEntry.compLength ); if (TableDirectoryEntry.compLength != TableDirectoryEntry.origLength) { var uncompressedData = new Uint8Array(TableDirectoryEntry.origLength); tinyInflate( new Uint8Array(compressedData, 2), //skip deflate header uncompressedData ); } else { uncompressedData = new Uint8Array(compressedData); } arrayOut.set(uncompressedData, TableDirectoryEntry.outOffset); offset = TableDirectoryEntry.outOffset + TableDirectoryEntry.origLength; var padding = 0; if ((offset % 4) != 0) { padding = 4 - (offset % 4); } arrayOut.set( new Uint8Array(padding).buffer, TableDirectoryEntry.outOffset + TableDirectoryEntry.origLength ); size = offset + padding; }); return bufferOut.slice(0, size); } // End woff2otf.js return function(buffer) { return convert_streams(buffer, tinyInflate) } } /** * An adapter that allows Typr.js to be used as if it were (a subset of) the OpenType.js API. * Also adds support for WOFF files (not WOFF2). */ function parserFactory(Typr, woff2otf) { const cmdArgLengths = { M: 2, L: 2, Q: 4, C: 6, Z: 0 }; function wrapFontObj(typrFont) { const glyphMap = Object.create(null); const fontObj = { unitsPerEm: typrFont.head.unitsPerEm, ascender: typrFont.hhea.ascender, descender: typrFont.hhea.descender, forEachGlyph(text, fontSize, letterSpacing, callback) { let glyphX = 0; const fontScale = 1 / fontObj.unitsPerEm * fontSize; const glyphIndices = Typr.U.stringToGlyphs(typrFont, text); let charIndex = 0; glyphIndices.forEach(glyphIndex => { // Typr returns a glyph index per string codepoint, with -1s in place of those that // were omitted due to ligature substitution. So we can track original index in the // string via simple increment, and skip everything else when seeing a -1. if (glyphIndex !== -1) { let glyphObj = glyphMap[glyphIndex]; if (!glyphObj) { const {cmds, crds} = Typr.U.glyphToPath(typrFont, glyphIndex); // Find extents - Glyf gives this in metadata but not CFF, and Typr doesn't // normalize the two, so it's simplest just to iterate ourselves. let xMin, yMin, xMax, yMax; if (crds.length) { xMin = yMin = Infinity; xMax = yMax = -Infinity; for (let i = 0, len = crds.length; i < len; i += 2) { let x = crds[i]; let y = crds[i + 1]; if (x < xMin) xMin = x; if (y < yMin) yMin = y; if (x > xMax) xMax = x; if (y > yMax) yMax = y; } } else { xMin = xMax = yMin = yMax = 0; } glyphObj = glyphMap[glyphIndex] = { index: glyphIndex, advanceWidth: typrFont.hmtx.aWidth[glyphIndex], xMin, yMin, xMax, yMax, pathCommandCount: cmds.length, forEachPathCommand(callback) { let argsIndex = 0; const argsArray = []; for (let i = 0, len = cmds.length; i < len; i++) { const numArgs = cmdArgLengths[cmds[i]]; argsArray.length = 1 + numArgs; argsArray[0] = cmds[i]; for (let j = 1; j <= numArgs; j++) { argsArray[j] = crds[argsIndex++]; } callback.apply(null, argsArray); } } }; } callback.call(null, glyphObj, glyphX, charIndex); if (glyphObj.advanceWidth) { glyphX += glyphObj.advanceWidth * fontScale; } if (letterSpacing) { glyphX += letterSpacing * fontSize; } } charIndex += (text.codePointAt(charIndex) > 0xffff ? 2 : 1); }); return glyphX } }; return fontObj } return function parse(buffer) { // Look to see if we have a WOFF file and convert it if so: const peek = new Uint8Array(buffer, 0, 4); const tag = Typr._bin.readASCII(peek, 0, 4); if (tag === 'wOFF') { buffer = woff2otf(buffer); } else if (tag === 'wOF2') { throw new Error('woff2 fonts not supported') } return wrapFontObj(Typr.parse(buffer)[0]) } } const workerModule = defineWorkerModule({ name: 'Typr Font Parser', dependencies: [typrFactory, woff2otfFactory, parserFactory], init(typrFactory, woff2otfFactory, parserFactory) { const Typr = typrFactory(); const woff2otf = woff2otfFactory(); return parserFactory(Typr, woff2otf) } }); //import fontParser from './FontParser_OpenType.js' const CONFIG = { defaultFontURL: 'https://fonts.gstatic.com/s/roboto/v18/KFOmCnqEu92Fr1Mu4mxM.woff', //Roboto Regular sdfGlyphSize: 64, textureWidth: 2048 }; const tempColor = new Color(); /** * Customizes the text builder configuration. This must be called prior to the first font processing * request, and applies to all fonts. * * @param {String} config.defaultFontURL - The URL of the default font to use for text processing * requests, in case none is specified or the specifiede font fails to load or parse. * Defaults to "Roboto Regular" from Google Fonts. * @param {Number} config.sdfGlyphSize - The default size of each glyph's SDF (signed distance field) * texture used for rendering. Must be a power-of-two number, and applies to all fonts, * but note that this can also be overridden per call to `getTextRenderInfo()`. * Larger sizes can improve the quality of glyph rendering by increasing the sharpness * of corners and preventing loss of very thin lines, at the expense of memory. Defaults * to 64 which is generally a good balance of size and quality. * @param {Number} config.textureWidth - The width of the SDF texture; must be a power of 2. Defaults to * 2048 which is a safe maximum texture dimension according to the stats at * https://webglstats.com/webgl/parameter/MAX_TEXTURE_SIZE and should allow for a * reasonably large number of glyphs (default glyph size of 64 and safe texture size of * 2048^2 allows for 1024 glyphs.) This can be increased if you need to increase the * glyph size and/or have an extraordinary number of glyphs. */ function configureTextBuilder(config) { { assign(CONFIG, config); } } /** * The radial distance from glyph edges over which the SDF alpha will be calculated; if the alpha * at distance:0 is 0.5, then the alpha at this distance will be zero. This is defined as a percentage * of each glyph's maximum dimension in font space units so that it maps to the same minimum number of * SDF texels regardless of the glyph's size. A larger value provides greater alpha gradient resolution * and improves readability/antialiasing quality at small display sizes, but also decreases the number * of texels available for encoding path details. */ const SDF_DISTANCE_PERCENT = 1 / 8; /** * Repository for all font SDF atlas textures * * { * [font]: { * sdfTexture: DataTexture * } * } */ const atlases = Object.create(null); /** * @typedef {object} TroikaTextRenderInfo - Format of the result from `getTextRenderInfo`. * @property {object} parameters - The normalized input arguments to the render call. * @property {DataTexture} sdfTexture - The SDF atlas texture. * @property {number} sdfGlyphSize - The size of each glyph's SDF. * @property {number} sdfMinDistancePercent - See `SDF_DISTANCE_PERCENT` * @property {Float32Array} glyphBounds - List of [minX, minY, maxX, maxY] quad bounds for each glyph. * @property {Float32Array} glyphAtlasIndices - List holding each glyph's index in the SDF atlas. * @property {Uint8Array} [glyphColors] - List holding each glyph's [r, g, b] color, if `colorRanges` was supplied. * @property {Float32Array} [caretPositions] - A list of caret positions for all glyphs; this is * the bottom [x,y] of the cursor position before each char, plus one after the last char. * @property {number} [caretHeight] - An appropriate height for all selection carets. * @property {number} ascender - The font's ascender metric. * @property {number} descender - The font's descender metric. * @property {number} lineHeight - The final computed lineHeight measurement. * @property {number} topBaseline - The y position of the top line's baseline. * @property {Array} totalBounds - The total [minX, minY, maxX, maxY] rect including all glyph * quad bounds; this will be slightly larger than the actual glyph path edges due to SDF padding. * @property {Array} totalBlockSize - The [width, height] of the text block; this does not include * extra SDF padding so it is accurate to use for measurement. * @property {Array} chunkedBounds - List of bounding rects for each consecutive set of N glyphs, * in the format `{start:N, end:N, rect:[minX, minY, maxX, maxY]}`. * @property {object} timings - Timing info for various parts of the rendering logic including SDF * generation, layout, etc. * @frozen */ /** * @callback getTextRenderInfo~callback * @param {TroikaTextRenderInfo} textRenderInfo */ /** * 用于请求呈现具有给定字体参数的文本字符串所需数据的主要入口点。 * 这是一个异步调用,执行Web工作线程中的大部分逻辑。 * @param {object} args * @param {getTextRenderInfo~callback} callback */ function getTextRenderInfo(args, callback) { args = assign({}, args); // Apply default font here to avoid a 'null' atlas, and convert relative // URLs to absolute so they can be resolved in the worker args.font = toAbsoluteURL(args.font || CONFIG.defaultFontURL); // Normalize text to a string args.text = '' + args.text; args.sdfGlyphSize = args.sdfGlyphSize || CONFIG.sdfGlyphSize; // Normalize colors if (args.colorRanges != null) { let colors = {}; for (let key in args.colorRanges) { if (args.colorRanges.hasOwnProperty(key)) { let val = args.colorRanges[key]; if (typeof val !== 'number') { val = tempColor.set(val).getHex(); } colors[key] = val; } } args.colorRanges = colors; } Object.freeze(args); // Init the atlas for this font if needed const {textureWidth} = CONFIG; const {sdfGlyphSize} = args; let atlasKey = `${args.font}@${sdfGlyphSize}`; let atlas = atlases[atlasKey]; if (!atlas) { atlas = atlases[atlasKey] = { sdfTexture: new DataTexture( new Uint8Array(sdfGlyphSize * textureWidth), textureWidth, sdfGlyphSize, RedFormat, undefined, undefined, undefined, undefined, LinearFilter, LinearFilter ) }; atlas.sdfTexture.font = args.font; } // 向Worker中的FontProcessor发出请求 processInWorker(args).then(result => { // 如果响应具有newGlyphs,则将其复制到指定索引处的atlas纹理中 if (result.newGlyphSDFs) { result.newGlyphSDFs.forEach(({textureData, atlasIndex}) => { const texImg = atlas.sdfTexture.image; // Grow the texture by power of 2 if needed while (texImg.data.length < (atlasIndex + 1) * sdfGlyphSize * sdfGlyphSize) { const biggerArray = new Uint8Array(texImg.data.length * 2); biggerArray.set(texImg.data); texImg.data = biggerArray; texImg.height *= 2; } // Insert the new glyph's data into the full texture image at the correct offsets const cols = texImg.width / sdfGlyphSize; for (let y = 0; y < sdfGlyphSize; y++) { const srcStartIndex = y * sdfGlyphSize; const tgtStartIndex = texImg.width * sdfGlyphSize * Math.floor(atlasIndex / cols) //full rows + (atlasIndex % cols) * sdfGlyphSize //partial row + (y * texImg.width); //row within glyph for (let x = 0; x < sdfGlyphSize; x++) { texImg.data[tgtStartIndex + x] = textureData[srcStartIndex + x]; } } }); atlas.sdfTexture.needsUpdate = true; } // 使用文本布局数组和更新的纹理调用回调 callback(Object.freeze({ parameters: args, sdfTexture: atlas.sdfTexture, sdfGlyphSize, sdfMinDistancePercent: SDF_DISTANCE_PERCENT, glyphBounds: result.glyphBounds, glyphAtlasIndices: result.glyphAtlasIndices, glyphColors: result.glyphColors, caretPositions: result.caretPositions, caretHeight: result.caretHeight, chunkedBounds: result.chunkedBounds, ascender: result.ascender, descender: result.descender, lineHeight: result.lineHeight, topBaseline: result.topBaseline, totalBounds: result.totalBounds, totalBlockSize: result.totalBlockSize, timings: result.timings })); }); } /** * Preload a given font and optionally pre-generate glyph SDFs for one or more character sequences. * This can be useful to avoid long pauses when first showing text in a scene, by preloading the * needed fonts and glyphs up front along with other assets. * * @param {object} options * @param {string} options.font - URL of the font file to preload. If not given, the default font will * be loaded. * @param {string|string[]} options.characters - One or more character sequences for which to pre- * generate glyph SDFs. Note that this will honor ligature substitution, so you may need * to specify ligature sequences in addition to their individual characters to get all * possible glyphs, e.g. `["t", "h", "th"]` to get the "t" and "h" glyphs plus the "th" ligature. * @param {number} options.sdfGlyphSize - The size at which to prerender the SDF textures for the * specified `characters`. * @param {function} callback - A function that will be called when the preloading is complete. */ function preloadFont({font, characters, sdfGlyphSize}, callback) { let text = Array.isArray(characters) ? characters.join('\n') : '' + characters; getTextRenderInfo({ font, sdfGlyphSize, text }, callback); } // Local assign impl so we don't have to import troika-core function assign(toObj, fromObj) { for (let key in fromObj) { if (fromObj.hasOwnProperty(key)) { toObj[key] = fromObj[key]; } } return toObj } // Utility for making URLs absolute let linkEl; function toAbsoluteURL(path) { if (!linkEl) { linkEl = typeof document === 'undefined' ? {} : document.createElement('a'); } linkEl.href = path; return linkEl.href } const fontProcessorWorkerModule = defineWorkerModule({ name: 'FontProcessor', dependencies: [ CONFIG, SDF_DISTANCE_PERCENT, workerModule, createGlyphSegmentsQuadtree, createSDFGenerator, createFontProcessor ], init(config, sdfDistancePercent, fontParser, createGlyphSegmentsQuadtree, createSDFGenerator, createFontProcessor) { const sdfGenerator = createSDFGenerator( createGlyphSegmentsQuadtree, { sdfDistancePercent } ); return createFontProcessor(fontParser, sdfGenerator, { defaultFontUrl: config.defaultFontURL }) } }); const processInWorker = defineWorkerModule({ name: 'TextBuilder', dependencies: [fontProcessorWorkerModule, ThenableWorkerModule], init(fontProcessor, Thenable) { return function(args) { const thenable = new Thenable(); fontProcessor.process(args, thenable.resolve); return thenable } }, getTransferables(result) { // Mark array buffers as transferable to avoid cloning during postMessage const transferables = [ result.glyphBounds.buffer, result.glyphAtlasIndices.buffer ]; if (result.caretPositions) { transferables.push(result.caretPositions.buffer); } if (result.newGlyphSDFs) { result.newGlyphSDFs.forEach(d => { transferables.push(d.textureData.buffer); }); } return transferables } }); const templateGeometries = {}; function getTemplateGeometry(detail) { let geom = templateGeometries[detail]; if (!geom) { geom = templateGeometries[detail] = new PlaneBufferGeometry( 1, 1, detail, detail ).translate(0.5, 0.5, 0); } return geom; } const tempVec3 = new Vector3(); const glyphBoundsAttrName = "aTroikaGlyphBounds"; const glyphIndexAttrName = "aTroikaGlyphIndex"; const glyphColorAttrName = "aTroikaGlyphColor"; /** @class GlyphsGeometry A specialized Geometry for rendering a set of text glyphs. Uses InstancedBufferGeometry to render the glyphs using GPU instancing of a single quad, rather than constructing a whole geometry with vertices, for much smaller attribute arraybuffers according to this math: Where N = number of glyphs... Instanced: - position: 4 * 3 - index: 2 * 3 - normal: 4 * 3 - uv: 4 * 2 - glyph x/y bounds: N * 4 - glyph indices: N * 1 = 5N + 38 Non-instanced: - position: N * 4 * 3 - index: N * 2 * 3 - normal: N * 4 * 3 - uv: N * 4 * 2 - glyph indices: N * 1 = 39N A downside of this is the rare-but-possible lack of the instanced arrays extension, which we could potentially work around with a fallback non-instanced implementation. */ class GlyphsGeometry extends InstancedBufferGeometry { constructor() { super(); this.detail = 1; // Preallocate zero-radius bounding sphere this.boundingSphere = new Sphere(); this.boundingBox = new Box3(); } computeBoundingSphere() { // No-op; we'll sync the boundingSphere proactively in `updateGlyphs`. } computeBoundingBox() { // No-op; we'll sync the boundingBox proactively in `updateGlyphs`. } set detail(detail) { if (detail !== this._detail) { this._detail = detail; if (typeof detail !== "number" || detail < 1) { detail = 1; } let tpl = getTemplateGeometry(detail); ["position", "normal", "uv"].forEach((attr) => { this.attributes[attr] = tpl.attributes[attr].clone(); }); this.setIndex(tpl.getIndex().clone()); } } get detail() { return this._detail; } /** * Update the geometry for a new set of glyphs. * @param {Float32Array} glyphBounds - An array holding the planar bounds for all glyphs * to be rendered, 4 entries for each glyph: x1,x2,y1,y1 * @param {Float32Array} glyphAtlasIndices - An array holding the index of each glyph within * the SDF atlas texture. * @param {Array} totalBounds - An array holding the [minX, minY, maxX, maxY] across all glyphs * @param {Array} [chunkedBounds] - An array of objects describing bounds for each chunk of N * consecutive glyphs: `{start:N, end:N, rect:[minX, minY, maxX, maxY]}`. This can be * used with `applyClipRect` to choose an optimized `instanceCount`. * @param {Uint8Array} [glyphColors] - An array holding r,g,b values for each glyph. */ updateGlyphs( glyphBounds, glyphAtlasIndices, totalBounds, chunkedBounds, glyphColors ) { // Update the instance attributes updateBufferAttr(this, glyphBoundsAttrName, glyphBounds, 4); updateBufferAttr(this, glyphIndexAttrName, glyphAtlasIndices, 1); updateBufferAttr(this, glyphColorAttrName, glyphColors, 3); this._chunkedBounds = chunkedBounds; setInstanceCount(this, glyphAtlasIndices.length); // Update the boundingSphere based on the total bounds const sphere = this.boundingSphere; sphere.center.set( (totalBounds[0] + totalBounds[2]) / 2, (totalBounds[1] + totalBounds[3]) / 2, 0 ); sphere.radius = sphere.center.distanceTo( tempVec3.set(totalBounds[0], totalBounds[1], 0) ); // Update the boundingBox based on the total bounds const box = this.boundingBox; // box.center.set( // (totalBounds[0] + totalBounds[2]) / 2, // (totalBounds[1] + totalBounds[3]) / 2, // 0 // );] box.min = new Vector3(totalBounds[0], totalBounds[1], -10); box.max = new Vector3(totalBounds[2], totalBounds[3], 10); } /** * Given a clipping rect, and the chunkedBounds from the last updateGlyphs call, choose the lowest * `instanceCount` that will show all glyphs within the clipped view. This is an optimization * for long blocks of text that are clipped, to skip vertex shader evaluation for glyphs that would * be clipped anyway. * * Note that since `drawElementsInstanced[ANGLE]` only accepts an instance count and not a starting * offset, this optimization becomes less effective as the clipRect moves closer to the end of the * text block. We could fix that by switching from instancing to a full geometry with a drawRange, * but at the expense of much larger attribute buffers (see classdoc above.) * * @param {Vector4} clipRect */ applyClipRect(clipRect) { let count = this.getAttribute(glyphIndexAttrName).count; let chunks = this._chunkedBounds; if (chunks) { for (let i = chunks.length; i--; ) { count = chunks[i].end; let rect = chunks[i].rect; // note: both rects are l-b-r-t if ( rect[1] < clipRect.w && rect[3] > clipRect.y && rect[0] < clipRect.z && rect[2] > clipRect.x ) { break; } } } setInstanceCount(this, count); } } // Compat for pre r109: if (!GlyphsGeometry.prototype.setAttribute) { GlyphsGeometry.prototype.setAttribute = function (name, attribute) { this.attributes[name] = attribute; return this; }; } function updateBufferAttr(geom, attrName, newArray, itemSize) { const attr = geom.getAttribute(attrName); if (newArray) { // If length isn't changing, just update the attribute's array data if (attr && attr.array.length === newArray.length) { attr.array.set(newArray); attr.needsUpdate = true; } else { geom.setAttribute( attrName, new InstancedBufferAttribute(newArray, itemSize) ); // If the new attribute has a different size, we also have to (as of r117) manually clear the // internal cached max instance count. See https://github.com/mrdoob/three.js/issues/19706 // It's unclear if this is a threejs bug or a truly unsupported scenario; discussion in // that ticket is ambiguous as to whether replacing a BufferAttribute with one of a // different size is supported, but https://github.com/mrdoob/three.js/pull/17418 strongly // implies it should be supported. It's possible we need to delete geom._maxInstanceCount; //for r117+, could be fragile geom.dispose(); //for r118+, more robust feeling, but more heavy-handed than I'd like } } else if (attr) { geom.deleteAttribute(attrName); } } // Handle maxInstancedCount -> instanceCount rename that happened in three r117 function setInstanceCount(geom, count) { geom[ geom.hasOwnProperty("instanceCount") ? "instanceCount" : "maxInstancedCount" ] = count; } // language=GLSL const VERTEX_DEFS = ` uniform vec2 uTroikaSDFTextureSize; uniform float uTroikaSDFGlyphSize; uniform vec4 uTroikaTotalBounds; uniform vec4 uTroikaClipRect; uniform mat3 uTroikaOrient; uniform bool uTroikaUseGlyphColors; attribute vec4 aTroikaGlyphBounds; attribute float aTroikaGlyphIndex; attribute vec3 aTroikaGlyphColor; varying vec2 vTroikaSDFTextureUV; varying vec2 vTroikaGlyphUV; varying vec3 vTroikaGlyphColor; `; // language=GLSL prefix="void main() {" suffix="}" const VERTEX_TRANSFORM = ` vec4 bounds = aTroikaGlyphBounds; vec4 clippedBounds = vec4( clamp(bounds.xy, uTroikaClipRect.xy, uTroikaClipRect.zw), clamp(bounds.zw, uTroikaClipRect.xy, uTroikaClipRect.zw) ); vec2 clippedXY = (mix(clippedBounds.xy, clippedBounds.zw, position.xy) - bounds.xy) / (bounds.zw - bounds.xy); vTroikaGlyphUV = clippedXY.xy; float cols = uTroikaSDFTextureSize.x / uTroikaSDFGlyphSize; vTroikaSDFTextureUV = vec2( mod(aTroikaGlyphIndex, cols) + clippedXY.x, floor(aTroikaGlyphIndex / cols) + clippedXY.y ) * uTroikaSDFGlyphSize / uTroikaSDFTextureSize; position.xy = mix(bounds.xy, bounds.zw, clippedXY); uv = vec2( (position.x - uTroikaTotalBounds.x) / (uTroikaTotalBounds.z - uTroikaTotalBounds.x), (position.y - uTroikaTotalBounds.y) / (uTroikaTotalBounds.w - uTroikaTotalBounds.y) ); position = uTroikaOrient * position; normal = uTroikaOrient * normal; `; // language=GLSL const FRAGMENT_DEFS = ` uniform sampler2D uTroikaSDFTexture; uniform float uTroikaSDFMinDistancePct; uniform bool uTroikaSDFDebug; varying vec2 vTroikaSDFTextureUV; varying vec2 vTroikaGlyphUV; float troikaGetTextAlpha() { float troikaSDFValue = texture2D(uTroikaSDFTexture, vTroikaSDFTextureUV).r; #if defined(IS_DEPTH_MATERIAL) || defined(IS_DISTANCE_MATERIAL) float alpha = step(0.5, troikaSDFValue); #else ${''/* When the standard derivatives extension is available, we choose an antialiasing alpha threshold based on the potential change in the SDF's alpha from this fragment to its neighbor. This strategy maximizes readability and edge crispness at all sizes and screen resolutions. Interestingly, this also means that below a minimum size we're effectively displaying the SDF texture unmodified. */} #if defined(GL_OES_standard_derivatives) || __VERSION__ >= 300 float aaDist = min( 0.5, 0.5 * min( fwidth(vTroikaGlyphUV.x), fwidth(vTroikaGlyphUV.y) ) ) / uTroikaSDFMinDistancePct; #else float aaDist = 0.01; #endif float alpha = uTroikaSDFDebug ? troikaSDFValue : smoothstep( 0.5 - aaDist, 0.5 + aaDist, troikaSDFValue ); #endif return alpha; } `; // language=GLSL prefix="void main() {" suffix="}" const FRAGMENT_TRANSFORM = ` float troikaAlphaMult = troikaGetTextAlpha(); if (troikaAlphaMult == 0.0) { discard; } else { gl_FragColor.a *= troikaAlphaMult; } `; /** * Create a material for rendering text, derived from a baseMaterial */ function createTextDerivedMaterial(baseMaterial) { const textMaterial = createDerivedMaterial(baseMaterial, { extensions: {derivatives: true}, uniforms: { uTroikaSDFTexture: {value: null}, uTroikaSDFTextureSize: {value: new Vector2()}, uTroikaSDFGlyphSize: {value: 0}, uTroikaSDFMinDistancePct: {value: 0}, uTroikaTotalBounds: {value: new Vector4(0,0,0,0)}, uTroikaClipRect: {value: new Vector4(0,0,0,0)}, uTroikaOrient: {value: new Matrix3()}, uTroikaUseGlyphColors: {value: true}, uTroikaSDFDebug: {value: false} }, vertexDefs: VERTEX_DEFS, vertexTransform: VERTEX_TRANSFORM, fragmentDefs: FRAGMENT_DEFS, fragmentColorTransform: FRAGMENT_TRANSFORM, customRewriter({vertexShader, fragmentShader}) { let uDiffuseRE = /\buniform\s+vec3\s+diffuse\b/; if (uDiffuseRE.test(fragmentShader)) { // Replace all instances of `diffuse` with our varying fragmentShader = fragmentShader .replace(uDiffuseRE, 'varying vec3 vTroikaGlyphColor') .replace(/\bdiffuse\b/g, 'vTroikaGlyphColor'); // Make sure the vertex shader declares the uniform so we can grab it as a fallback if (!uDiffuseRE.test(vertexShader)) { vertexShader = vertexShader.replace( voidMainRegExp, 'uniform vec3 diffuse;\n$&\nvTroikaGlyphColor = uTroikaUseGlyphColors ? aTroikaGlyphColor / 255.0 : diffuse;\n' ); } } return { vertexShader, fragmentShader } } }); // Force transparency - TODO is this reasonable? textMaterial.transparent = true; Object.defineProperties(textMaterial, { isTroikaTextMaterial: {value: true}, // WebGLShadowMap reverses the side of the shadow material by default, which fails // for planes, so here we force the `shadowSide` to always match the main side. shadowSide: { get() { return this.side }, set() { //no-op } } }); return textMaterial } const defaultMaterial = new MeshBasicMaterial({ color: 0xffffff, side: DoubleSide, transparent: true }); const tempMat4 = new Matrix4(); const tempVec3a = new Vector3(); const tempVec3b = new Vector3(); const tempArray = []; const origin = new Vector3(); const defaultOrient = '+x+y'; const raycastMesh = new Mesh( new PlaneBufferGeometry(1, 1).translate(0.5, 0.5, 0), defaultMaterial ); const syncStartEvent = {type: 'syncstart'}; const syncCompleteEvent = {type: 'synccomplete'}; const SYNCABLE_PROPS = [ 'font', 'fontSize', 'letterSpacing', 'lineHeight', 'maxWidth', 'overflowWrap', 'text', 'textAlign', 'textIndent', 'whiteSpace', 'anchorX', 'anchorY', 'colorRanges', 'sdfGlyphSize' ]; const COPYABLE_PROPS = SYNCABLE_PROPS.concat( 'material', 'color', 'depthOffset', 'clipRect', 'orientation', 'glyphGeometryDetail' ); /** * @class Text * * 一个ThreeJS网格,使用带符号的距离在3D空间的平面上呈现一串文本 * fields (SDF). */ class Text extends Mesh { constructor() { const geometry = new GlyphsGeometry(); super(geometry, null); // === Text layout properties: === // /** * @member {string} text * The string of text to be rendered. */ this.text = ''; /** * @member {number|string} anchorX * Defines the horizontal position in the text block that should line up with the local origin. * Can be specified as a numeric x position in local units, a string percentage of the total * text block width e.g. `'25%'`, or one of the following keyword strings: 'left', 'center', * or 'right'. */ this.anchorX = 0; /** * @member {number|string} anchorX * Defines the vertical position in the text block that should line up with the local origin. * Can be specified as a numeric y position in local units (note: down is negative y), a string * percentage of the total text block height e.g. `'25%'`, or one of the following keyword strings: * 'top', 'top-baseline', 'middle', 'bottom-baseline', or 'bottom'. */ this.anchorY = 0; /** * @member {string} font * 要使用的自定义字体的URL。字体文件可以是OpenType支持的任何格式(请参见https://github.com/opentypejs/opentype.js). * 默认为从Google字体加载的Roboto字体. */ this.font = null; //will use default from TextBuilder /** * @member {number} fontSize * The size at which to render the font in local units; corresponds to the em-box height * of the chosen `font`. */ this.fontSize = 0.1; /** * @member {number} letterSpacing * Sets a uniform adjustment to spacing between letters after kerning is applied. Positive * numbers increase spacing and negative numbers decrease it. */ this.letterSpacing = 0; /** * @member {number|string} lineHeight * Sets the height of each line of text, as a multiple of the `fontSize`. Defaults to 'normal' * which chooses a reasonable height based on the chosen font's ascender/descender metrics. */ this.lineHeight = 'normal'; /** * @member {number} maxWidth * The maximum width of the text block, above which text may start wrapping according to the * `whiteSpace` and `overflowWrap` properties. */ this.maxWidth = Infinity; /** * @member {string} overflowWrap * Defines how text wraps if the `whiteSpace` property is `normal`. Can be either `'normal'` * to break at whitespace characters, or `'break-word'` to allow breaking within words. * Defaults to `'normal'`. */ this.overflowWrap = 'normal'; /** * @member {string} textAlign * The horizontal alignment of each line of text within the overall text bounding box. */ this.textAlign = 'left'; /** * @member {number} textIndent * Indentation for the first character of a line; see CSS `text-indent`. */ this.textIndent = 0; /** * @member {string} whiteSpace * Defines whether text should wrap when a line reaches the `maxWidth`. Can * be either `'normal'` (the default), to allow wrapping according to the `overflowWrap` property, * or `'nowrap'` to prevent wrapping. Note that `'normal'` here honors newline characters to * manually break lines, making it behave more like `'pre-wrap'` does in CSS. */ this.whiteSpace = 'normal'; // === Presentation properties: === // /** * @member {THREE.Material} material * Defines a _base_ material to be used when rendering the text. This material will be * automatically replaced with a material derived from it, that adds shader code to * decrease the alpha for each fragment (pixel) outside the text glyphs, with antialiasing. * By default it will derive from a simple white MeshBasicMaterial, but you can use any * of the other mesh materials to gain other features like lighting, texture maps, etc. * * Also see the `color` shortcut property. */ this.material = null; /** * @member {string|number|THREE.Color} color * This is a shortcut for setting the `color` of the text's material. You can use this * if you don't want to specify a whole custom `material`. */ this.color = null; /** * @member {object|null} colorRanges * WARNING: This API is experimental and may change. * This allows more fine-grained control of colors for individual or ranges of characters, * taking precedence over the material's `color`. Its format is an Object whose keys each * define a starting character index for a range, and whose values are the color for each * range. The color value can be a numeric hex color value, a `THREE.Color` object, or * any of the strings accepted by `THREE.Color`. */ this.colorRanges = null; /** * @member {number} depthOffset * This is a shortcut for setting the material's `polygonOffset` and related properties, * which can be useful in preventing z-fighting when this text is laid on top of another * plane in the scene. Positive numbers are further from the camera, negatives closer. */ this.depthOffset = 0; /** * @member {Array} clipRect * If specified, defines a `[minX, minY, maxX, maxY]` of a rectangle outside of which all * pixels will be discarded. This can be used for example to clip overflowing text when * `whiteSpace='nowrap'`. */ this.clipRect = null; /** * @member {string} orientation * Defines the axis plane on which the text should be laid out when the mesh has no extra * rotation transform. It is specified as a string with two axes: the horizontal axis with * positive pointing right, and the vertical axis with positive pointing up. By default this * is '+x+y', meaning the text sits on the xy plane with the text's top toward positive y * and facing positive z. A value of '+x-z' would place it on the xz plane with the text's * top toward negative z and facing positive y. */ this.orientation = defaultOrient; /** * @member {number} glyphGeometryDetail * Controls number of vertical/horizontal segments that make up each glyph's rectangular * plane. Defaults to 1. This can be increased to provide more geometrical detail for custom * vertex shader effects, for example. */ this.glyphGeometryDetail = 1; /** * @member {number|null} sdfGlyphSize * The size of each glyph's SDF (signed distance field) used for rendering. This must be a * power-of-two number. Defaults to 64 which is generally a good balance of size and quality * for most fonts. Larger sizes can improve the quality of glyph rendering by increasing * the sharpness of corners and preventing loss of very thin lines, at the expense of * increased memory footprint and longer SDF generation time. */ this.sdfGlyphSize = null; this.debugSDF = false; } /** * 根据当前与文本相关的配置属性更新文本呈现. * 这是一个异步进程,所以你可以传入一个回调函数,当它完成时执行。 * @param {function} [callback] */ sync(callback) { if (this._needsSync) { //console.log('syncing text', this.text) this._needsSync = false; // 如果有另一个同步仍在进行中,排队等待它完成 if (this._isSyncing) { (this._queuedSyncs || (this._queuedSyncs = [])).push(callback); } else { this._isSyncing = true; this.dispatchEvent(syncStartEvent); getTextRenderInfo({ text: this.text, font: this.font, fontSize: this.fontSize || 0.1, letterSpacing: this.letterSpacing || 0, lineHeight: this.lineHeight || 'normal', maxWidth: this.maxWidth, textAlign: this.textAlign, textIndent: this.textIndent, whiteSpace: this.whiteSpace, overflowWrap: this.overflowWrap, anchorX: this.anchorX, anchorY: this.anchorY, colorRanges: this.colorRanges, includeCaretPositions: true, //TODO parameterize sdfGlyphSize: this.sdfGlyphSize }, textRenderInfo => { this._isSyncing = false; // 在onBeforeRender中保存结果以供以后使用 this._textRenderInfo = textRenderInfo; // 更新几何属性 this.geometry.updateGlyphs( textRenderInfo.glyphBounds, textRenderInfo.glyphAtlasIndices, textRenderInfo.totalBounds, textRenderInfo.chunkedBounds, textRenderInfo.glyphColors ); // 如果我们有额外的同步请求排队,启动它 const queued = this._queuedSyncs; if (queued) { this._queuedSyncs = null; this._needsSync = true; this.sync(() => { queued.forEach(fn => fn && fn()); }); } this.dispatchEvent(syncCompleteEvent); if (callback) { callback(); } }); } } } /** * Initiate a sync if needed - note it won't complete until next frame at the * earliest so if possible it's a good idea to call sync() manually as soon as * all the properties have been set. * @override */ onBeforeRender() { this.sync(); this._prepareForRender(); } /** * Shortcut to dispose the geometry specific to this instance. * Note: we don't also dispose the derived material here because if anything else is * sharing the same base material it will result in a pause next frame as the program * is recompiled. Instead users can dispose the base material manually, like normal, * and we'll also dispose the derived material at that time. */ dispose() { this.geometry.dispose(); } /** * @property {TroikaTextRenderInfo|null} textRenderInfo * @readonly * The current processed rendering data for this TextMesh, returned by the TextBuilder after * a `sync()` call. This will be `null` initially, and may be stale for a short period until * the asynchrous `sync()` process completes. */ get textRenderInfo() { return this._textRenderInfo || null } // Handler for automatically wrapping the base material with our upgrades. We do the wrapping // lazily on _read_ rather than write to avoid unnecessary wrapping on transient values. get material() { let derivedMaterial = this._derivedMaterial; const baseMaterial = this._baseMaterial || defaultMaterial; if (!derivedMaterial || derivedMaterial.baseMaterial !== baseMaterial) { derivedMaterial = this._derivedMaterial = createTextDerivedMaterial(baseMaterial); // dispose the derived material when its base material is disposed: baseMaterial.addEventListener('dispose', function onDispose() { baseMaterial.removeEventListener('dispose', onDispose); derivedMaterial.dispose(); }); } return derivedMaterial } set material(baseMaterial) { if (baseMaterial && baseMaterial.isTroikaTextMaterial) { //prevent double-derivation this._derivedMaterial = baseMaterial; this._baseMaterial = baseMaterial.baseMaterial; } else { this._baseMaterial = baseMaterial; } } get glyphGeometryDetail() { return this.geometry.detail } set glyphGeometryDetail(detail) { this.geometry.detail = detail; } // Create and update material for shadows upon request: get customDepthMaterial() { return this.material.getDepthMaterial() } get customDistanceMaterial() { return this.material.getDistanceMaterial() } _prepareForRender() { const material = this._derivedMaterial; const uniforms = material.uniforms; const textInfo = this.textRenderInfo; if (textInfo) { const {sdfTexture, totalBounds} = textInfo; uniforms.uTroikaSDFTexture.value = sdfTexture; uniforms.uTroikaSDFTextureSize.value.set(sdfTexture.image.width, sdfTexture.image.height); uniforms.uTroikaSDFGlyphSize.value = textInfo.sdfGlyphSize; uniforms.uTroikaSDFMinDistancePct.value = textInfo.sdfMinDistancePercent; uniforms.uTroikaTotalBounds.value.fromArray(totalBounds); uniforms.uTroikaUseGlyphColors.value = !!textInfo.glyphColors; let clipRect = this.clipRect; if (!(clipRect && Array.isArray(clipRect) && clipRect.length === 4)) { uniforms.uTroikaClipRect.value.fromArray(totalBounds); } else { uniforms.uTroikaClipRect.value.set( Math.max(totalBounds[0], clipRect[0]), Math.max(totalBounds[1], clipRect[1]), Math.min(totalBounds[2], clipRect[2]), Math.min(totalBounds[3], clipRect[3]) ); } this.geometry.applyClipRect(uniforms.uTroikaClipRect.value); } uniforms.uTroikaSDFDebug.value = !!this.debugSDF; material.polygonOffset = !!this.depthOffset; material.polygonOffsetFactor = material.polygonOffsetUnits = this.depthOffset || 0; // 通过网格上的"颜色"道具设置材料颜色的快捷方式: const color = this.color; if (color != null && material.color && material.color.isColor && color !== material._troikaColor) { material.color.set(material._troikaColor = color); } // base orientation let orient = this.orientation || defaultOrient; if (orient !== material._orientation) { let rotMat = uniforms.uTroikaOrient.value; orient = orient.replace(/[^-+xyz]/g, ''); let match = orient !== defaultOrient && orient.match(/^([-+])([xyz])([-+])([xyz])$/); if (match) { let [, hSign, hAxis, vSign, vAxis] = match; tempVec3a.set(0, 0, 0)[hAxis] = hSign === '-' ? 1 : -1; tempVec3b.set(0, 0, 0)[vAxis] = vSign === '-' ? -1 : 1; tempMat4.lookAt(origin, tempVec3a.cross(tempVec3b), tempVec3b); rotMat.setFromMatrix4(tempMat4); } else { rotMat.identity(); } material._orientation = orient; } } /** * @override Custom raycasting to test against the whole text block's max rectangular bounds * TODO is there any reason to make this more granular, like within individual line or glyph rects? */ raycast(raycaster, intersects) { const textInfo = this.textRenderInfo; if (textInfo) { const bounds = textInfo.totalBounds; raycastMesh.matrixWorld.multiplyMatrices( this.matrixWorld, tempMat4.set( bounds[2] - bounds[0], 0, 0, bounds[0], 0, bounds[3] - bounds[1], 0, bounds[1], 0, 0, 1, 0, 0, 0, 0, 1 ) ); tempArray.length = 0; raycastMesh.raycast(raycaster, tempArray); for (let i = 0; i < tempArray.length; i++) { tempArray[i].object = this; intersects.push(tempArray[i]); } } } copy(source) { super.copy(source); COPYABLE_PROPS.forEach(prop => { this[prop] = source[prop]; }); return this } clone() { return new this.constructor().copy(this) } } // Create setters for properties that affect text layout: SYNCABLE_PROPS.forEach(prop => { const privateKey = '_private_' + prop; Object.defineProperty(Text.prototype, prop, { get() { return this[privateKey] }, set(value) { if (value !== this[privateKey]) { this[privateKey] = value; this._needsSync = true; } } }); }); // Deprecation handler for `anchor` array: let deprMsgShown = false; Object.defineProperty(Text.prototype, 'anchor', { get() { return this._deprecated_anchor }, set(val) { this._deprecated_anchor = val; if (!deprMsgShown) { console.warn('TextMesh: `anchor` has been deprecated; use `anchorX` and `anchorY` instead.'); deprMsgShown = true; } if (Array.isArray(val)) { this.anchorX = `${(+val[0] || 0) * 100}%`; this.anchorY = `${(+val[1] || 0) * 100}%`; } else { this.anchorX = this.anchorY = 0; } } }); //=== Utility functions for dealing with carets and selection ranges ===// /** * @typedef {object} TextCaret * @property {number} x - x position of the caret * @property {number} y - y position of the caret's bottom * @property {number} height - height of the caret * @property {number} charIndex - the index in the original input string of this caret's target * character; the caret will be for the position _before_ that character. */ /** * Given a local x/y coordinate in the text block plane, find the nearest caret position. * @param {TroikaTextRenderInfo} textRenderInfo - a result object from TextBuilder#getTextRenderInfo * @param {number} x * @param {number} y * @return {TextCaret | null} */ function getCaretAtPoint(textRenderInfo, x, y) { let closestCaret = null; const {caretHeight} = textRenderInfo; const caretsByRow = groupCaretsByRow(textRenderInfo); // Find nearest row by y first let closestRowY = Infinity; caretsByRow.forEach((carets, rowY) => { if (Math.abs(y - (rowY + caretHeight / 2)) < Math.abs(y - (closestRowY + caretHeight / 2))) { closestRowY = rowY; } }); // Then find closest caret by x within that row caretsByRow.get(closestRowY).forEach(caret => { if (!closestCaret || Math.abs(x - caret.x) < Math.abs(x - closestCaret.x)) { closestCaret = caret; } }); return closestCaret } const _rectsCache = new WeakMap(); /** * Given start and end character indexes, return a list of rectangles covering all the * characters within that selection. * @param {TroikaTextRenderInfo} textRenderInfo * @param {number} start - index of the first char in the selection * @param {number} end - index of the first char after the selection * @return {Array<{left, top, right, bottom}> | null} */ function getSelectionRects(textRenderInfo, start, end) { let rects; if (textRenderInfo) { // Check cache - textRenderInfo is frozen so it's safe to cache based on it let prevResult = _rectsCache.get(textRenderInfo); if (prevResult && prevResult.start === start && prevResult.end === end) { return prevResult.rects } const {caretPositions, caretHeight, totalBounds} = textRenderInfo; // Normalize if (end < start) { const s = start; start = end; end = s; } start = Math.max(start, 0); end = Math.min(end, caretPositions.length + 1); // Collect into one rect per row let rows = new Map(); for (let i = start; i < end; i++) { const x1 = caretPositions[i * 3]; const x2 = caretPositions[i * 3 + 1]; const y = caretPositions[i * 3 + 2]; let row = rows.get(y); if (!row) { row = {left: x1, right: x2, bottom: y, top: y + caretHeight}; rows.set(y, row); } else { row.left = Math.max(Math.min(row.left, x1), totalBounds[0]); row.right = Math.min(Math.max(row.right, x2), totalBounds[2]); } } rects = []; rows.forEach(rect => { rects.push(rect); }); _rectsCache.set(textRenderInfo, {start, end, rects}); } return rects } const _caretsByRowCache = new WeakMap(); function groupCaretsByRow(textRenderInfo) { // textRenderInfo is frozen so it's safe to cache based on it let caretsByRow = _caretsByRowCache.get(textRenderInfo); if (!caretsByRow) { const {caretPositions, caretHeight} = textRenderInfo; caretsByRow = new Map(); for (let i = 0; i < caretPositions.length; i += 3) { const rowY = caretPositions[i + 2]; let rowCarets = caretsByRow.get(rowY); if (!rowCarets) { caretsByRow.set(rowY, rowCarets = []); } rowCarets.push({ x: caretPositions[i], y: rowY, height: caretHeight, charIndex: i / 3 }); // Add one more caret after the final char if (i + 3 >= caretPositions.length) { rowCarets.push({ x: caretPositions[i + 1], y: rowY, height: caretHeight, charIndex: i / 3 + 1 }); } } } _caretsByRowCache.set(textRenderInfo, caretsByRow); return caretsByRow } export { GlyphsGeometry, Text, configureTextBuilder, createTextDerivedMaterial, fontProcessorWorkerModule, getCaretAtPoint, getSelectionRects, preloadFont }; ================================================ FILE: packages/sdk/lib/dxf/troika-three-utils.esm.js ================================================ import { ShaderChunk, UniformsUtils, MeshDepthMaterial, RGBADepthPacking, MeshDistanceMaterial, ShaderLib, Matrix4, Vector3, Mesh, CylinderGeometry as CylinderBufferGeometry, Vector2, MeshStandardMaterial, DoubleSide } from 'three'; /** * Regular expression for matching the `void main() {` opener line in GLSL. * @type {RegExp} */ const voidMainRegExp = /\bvoid\s+main\s*\(\s*\)\s*{/g; /** * Recursively expands all `#include ` statements within string of shader code. * Copied from three's WebGLProgram#parseIncludes for external use. * * @param {string} source - The GLSL source code to evaluate * @return {string} The GLSL code with all includes expanded */ function expandShaderIncludes( source ) { const pattern = /^[ \t]*#include +<([\w\d./]+)>/gm; function replace(match, include) { let chunk = ShaderChunk[include]; return chunk ? expandShaderIncludes(chunk) : match } return source.replace( pattern, replace ) } /* * This is a direct copy of MathUtils.generateUUID from Three.js, to preserve compatibility with three * versions before 0.113.0 as it was changed from Math to MathUtils in that version. * https://github.com/mrdoob/three.js/blob/dd8b5aa3b270c17096b90945cd2d6d1b13aaec53/src/math/MathUtils.js#L16 */ const _lut = []; for (let i = 0; i < 256; i++) { _lut[i] = (i < 16 ? '0' : '') + (i).toString(16); } function generateUUID() { // http://stackoverflow.com/questions/105034/how-to-create-a-guid-uuid-in-javascript/21963136#21963136 const d0 = Math.random() * 0xffffffff | 0; const d1 = Math.random() * 0xffffffff | 0; const d2 = Math.random() * 0xffffffff | 0; const d3 = Math.random() * 0xffffffff | 0; const uuid = _lut[d0 & 0xff] + _lut[d0 >> 8 & 0xff] + _lut[d0 >> 16 & 0xff] + _lut[d0 >> 24 & 0xff] + '-' + _lut[d1 & 0xff] + _lut[d1 >> 8 & 0xff] + '-' + _lut[d1 >> 16 & 0x0f | 0x40] + _lut[d1 >> 24 & 0xff] + '-' + _lut[d2 & 0x3f | 0x80] + _lut[d2 >> 8 & 0xff] + '-' + _lut[d2 >> 16 & 0xff] + _lut[d2 >> 24 & 0xff] + _lut[d3 & 0xff] + _lut[d3 >> 8 & 0xff] + _lut[d3 >> 16 & 0xff] + _lut[d3 >> 24 & 0xff]; // .toUpperCase() here flattens concatenated strings to save heap memory space. return uuid.toUpperCase() } // Local assign polyfill to avoid importing troika-core const assign = Object.assign || function(/*target, ...sources*/) { let target = arguments[0]; for (let i = 1, len = arguments.length; i < len; i++) { let source = arguments[i]; if (source) { for (let prop in source) { if (source.hasOwnProperty(prop)) { target[prop] = source[prop]; } } } } return target }; const epoch = Date.now(); const CONSTRUCTOR_CACHE = new WeakMap(); const SHADER_UPGRADE_CACHE = new Map(); // Material ids must be integers, but we can't access the increment from Three's `Material` module, // so let's choose a sufficiently large starting value that should theoretically never collide. let materialInstanceId = 1e10; /** * A utility for creating a custom shader material derived from another material's * shaders. This allows you to inject custom shader logic and transforms into the * builtin ThreeJS materials without having to recreate them from scratch. * * @param {THREE.Material} baseMaterial - the original material to derive from * * @param {Object} options - How the base material should be modified. * @param {Object} options.defines - Custom `defines` for the material * @param {Object} options.extensions - Custom `extensions` for the material, e.g. `{derivatives: true}` * @param {Object} options.uniforms - Custom `uniforms` for use in the modified shader. These can * be accessed and manipulated via the resulting material's `uniforms` property, just like * in a ShaderMaterial. You do not need to repeat the base material's own uniforms here. * @param {String} options.timeUniform - If specified, a uniform of this name will be injected into * both shaders, and it will automatically be updated on each render frame with a number of * elapsed milliseconds. The "zero" epoch time is not significant so don't rely on this as a * true calendar time. * @param {String} options.vertexDefs - Custom GLSL code to inject into the vertex shader's top-level * definitions, above the `void main()` function. * @param {String} options.vertexMainIntro - Custom GLSL code to inject at the top of the vertex * shader's `void main` function. * @param {String} options.vertexMainOutro - Custom GLSL code to inject at the end of the vertex * shader's `void main` function. * @param {String} options.vertexTransform - Custom GLSL code to manipulate the `position`, `normal`, * and/or `uv` vertex attributes. This code will be wrapped within a standalone function with * those attributes exposed by their normal names as read/write values. * @param {String} options.fragmentDefs - Custom GLSL code to inject into the fragment shader's top-level * definitions, above the `void main()` function. * @param {String} options.fragmentMainIntro - Custom GLSL code to inject at the top of the fragment * shader's `void main` function. * @param {String} options.fragmentMainOutro - Custom GLSL code to inject at the end of the fragment * shader's `void main` function. You can manipulate `gl_FragColor` here but keep in mind it goes * after any of ThreeJS's color postprocessing shader chunks (tonemapping, fog, etc.), so if you * want those to apply to your changes use `fragmentColorTransform` instead. * @param {String} options.fragmentColorTransform - Custom GLSL code to manipulate the `gl_FragColor` * output value. Will be injected near the end of the `void main` function, but before any * of ThreeJS's color postprocessing shader chunks (tonemapping, fog, etc.), and before the * `fragmentMainOutro`. * @param {function<{vertexShader,fragmentShader}>:{vertexShader,fragmentShader}} options.customRewriter - A function * for performing custom rewrites of the full shader code. Useful if you need to do something * special that's not covered by the other builtin options. This function will be executed before * any other transforms are applied. * @param {boolean} options.chained - Set to `true` to prototype-chain the derived material to the base * material, rather than the default behavior of copying it. This allows the derived material to * automatically pick up changes made to the base material and its properties. This can be useful * where the derived material is hidden from the user as an implementation detail, allowing them * to work with the original material like normal. But it can result in unexpected behavior if not * handled carefully. * * @return {THREE.Material} * * The returned material will also have two new methods, `getDepthMaterial()` and `getDistanceMaterial()`, * which can be called to get a variant of the derived material for use in shadow casting. If the * target mesh is expected to cast shadows, then you can assign these to the mesh's `customDepthMaterial` * (for directional and spot lights) and/or `customDistanceMaterial` (for point lights) properties to * allow the cast shadow to honor your derived shader's vertex transforms and discarded fragments. These * will also set a custom `#define IS_DEPTH_MATERIAL` or `#define IS_DISTANCE_MATERIAL` that you can look * for in your derived shaders with `#ifdef` to customize their behavior for the depth or distance * scenarios, e.g. skipping antialiasing or expensive shader logic. */ function createDerivedMaterial(baseMaterial, options) { // Generate a key that is unique to the content of these `options`. We'll use this // throughout for caching and for generating the upgraded shader code. This increases // the likelihood that the resulting shaders will line up across multiple calls so // their GL programs can be shared and cached. const optionsKey = getKeyForOptions(options); // First check to see if we've already derived from this baseMaterial using this // unique set of options, and if so reuse the constructor to avoid some allocations. let ctorsByDerivation = CONSTRUCTOR_CACHE.get(baseMaterial); if (!ctorsByDerivation) { CONSTRUCTOR_CACHE.set(baseMaterial, (ctorsByDerivation = Object.create(null))); } if (ctorsByDerivation[optionsKey]) { return new ctorsByDerivation[optionsKey]() } const privateBeforeCompileProp = `_onBeforeCompile${optionsKey}`; // Private onBeforeCompile handler that injects the modified shaders and uniforms when // the renderer switches to this material's program const onBeforeCompile = function (shaderInfo) { baseMaterial.onBeforeCompile.call(this, shaderInfo); // Upgrade the shaders, caching the result by incoming source code const cacheKey = optionsKey + '|||' + shaderInfo.vertexShader + '|||' + shaderInfo.fragmentShader; let upgradedShaders = SHADER_UPGRADE_CACHE[cacheKey]; if (!upgradedShaders) { const upgraded = upgradeShaders(shaderInfo, options, optionsKey); upgradedShaders = SHADER_UPGRADE_CACHE[cacheKey] = upgraded; } // Inject upgraded shaders and uniforms into the program shaderInfo.vertexShader = upgradedShaders.vertexShader; shaderInfo.fragmentShader = upgradedShaders.fragmentShader; assign(shaderInfo.uniforms, this.uniforms); // Inject auto-updating time uniform if requested if (options.timeUniform) { shaderInfo.uniforms[options.timeUniform] = { get value() {return Date.now() - epoch} }; } // Users can still add their own handlers on top of ours if (this[privateBeforeCompileProp]) { this[privateBeforeCompileProp](shaderInfo); } }; const DerivedMaterial = function DerivedMaterial() { return derive(options.chained ? baseMaterial : baseMaterial.clone()) }; const derive = function(base) { // Prototype chain to the base material const derived = Object.create(base, descriptor); // Store the baseMaterial for reference; this is always the original even when cloning Object.defineProperty(derived, 'baseMaterial', { value: baseMaterial }); // Needs its own ids Object.defineProperty(derived, 'id', { value: materialInstanceId++ }); derived.uuid = generateUUID(); // Merge uniforms, defines, and extensions derived.uniforms = assign({}, base.uniforms, options.uniforms); derived.defines = assign({}, base.defines, options.defines); derived.defines[`TROIKA_DERIVED_MATERIAL_${optionsKey}`] = ''; //force a program change from the base material derived.extensions = assign({}, base.extensions, options.extensions); // Don't inherit EventDispatcher listeners derived._listeners = undefined; return derived }; const descriptor = { constructor: {value: DerivedMaterial}, isDerivedMaterial: {value: true}, customProgramCacheKey: { writable: true, configurable: true, value: function () { return optionsKey } }, onBeforeCompile: { get() { return onBeforeCompile }, set(fn) { this[privateBeforeCompileProp] = fn; } }, copy: { writable: true, configurable: true, value: function (source) { baseMaterial.copy.call(this, source); if (!baseMaterial.isShaderMaterial && !baseMaterial.isDerivedMaterial) { assign(this.extensions, source.extensions); assign(this.defines, source.defines); assign(this.uniforms, UniformsUtils.clone(source.uniforms)); } return this } }, clone: { writable: true, configurable: true, value: function () { const newBase = new baseMaterial.constructor(); return derive(newBase).copy(this) } }, /** * Utility to get a MeshDepthMaterial that will honor this derived material's vertex * transformations and discarded fragments. */ getDepthMaterial: { writable: true, configurable: true, value: function() { let depthMaterial = this._depthMaterial; if (!depthMaterial) { depthMaterial = this._depthMaterial = createDerivedMaterial( baseMaterial.isDerivedMaterial ? baseMaterial.getDepthMaterial() : new MeshDepthMaterial({ depthPacking: RGBADepthPacking }), options ); depthMaterial.defines.IS_DEPTH_MATERIAL = ''; depthMaterial.uniforms = this.uniforms; //automatically recieve same uniform values } return depthMaterial } }, /** * Utility to get a MeshDistanceMaterial that will honor this derived material's vertex * transformations and discarded fragments. */ getDistanceMaterial: { writable: true, configurable: true, value: function() { let distanceMaterial = this._distanceMaterial; if (!distanceMaterial) { distanceMaterial = this._distanceMaterial = createDerivedMaterial( baseMaterial.isDerivedMaterial ? baseMaterial.getDistanceMaterial() : new MeshDistanceMaterial(), options ); distanceMaterial.defines.IS_DISTANCE_MATERIAL = ''; distanceMaterial.uniforms = this.uniforms; //automatically recieve same uniform values } return distanceMaterial } }, dispose: { writable: true, configurable: true, value() { const {_depthMaterial, _distanceMaterial} = this; if (_depthMaterial) _depthMaterial.dispose(); if (_distanceMaterial) _distanceMaterial.dispose(); baseMaterial.dispose.call(this); } } }; ctorsByDerivation[optionsKey] = DerivedMaterial; return new DerivedMaterial() } function upgradeShaders({vertexShader, fragmentShader}, options, key) { let { vertexDefs, vertexMainIntro, vertexMainOutro, vertexTransform, fragmentDefs, fragmentMainIntro, fragmentMainOutro, fragmentColorTransform, customRewriter, timeUniform } = options; vertexDefs = vertexDefs || ''; vertexMainIntro = vertexMainIntro || ''; vertexMainOutro = vertexMainOutro || ''; fragmentDefs = fragmentDefs || ''; fragmentMainIntro = fragmentMainIntro || ''; fragmentMainOutro = fragmentMainOutro || ''; // Expand includes if needed if (vertexTransform || customRewriter) { vertexShader = expandShaderIncludes(vertexShader); } if (fragmentColorTransform || customRewriter) { // We need to be able to find postprocessing chunks after include expansion in order to // put them after the fragmentColorTransform, so mark them with comments first. Even if // this particular derivation doesn't have a fragmentColorTransform, other derivations may, // so we still mark them. fragmentShader = fragmentShader.replace( /^[ \t]*#include <((?:tonemapping|encodings|fog|premultiplied_alpha|dithering)_fragment)>/gm, '\n//!BEGIN_POST_CHUNK $1\n$&\n//!END_POST_CHUNK\n' ); fragmentShader = expandShaderIncludes(fragmentShader); } // Apply custom rewriter function if (customRewriter) { let res = customRewriter({vertexShader, fragmentShader}); vertexShader = res.vertexShader; fragmentShader = res.fragmentShader; } // The fragmentColorTransform needs to go before any postprocessing chunks, so extract // those and re-insert them into the outro in the correct place: if (fragmentColorTransform) { let postChunks = []; fragmentShader = fragmentShader.replace( /^\/\/!BEGIN_POST_CHUNK[^]+?^\/\/!END_POST_CHUNK/gm, // [^]+? = non-greedy match of any chars including newlines match => { postChunks.push(match); return '' } ); fragmentMainOutro = `${fragmentColorTransform}\n${postChunks.join('\n')}\n${fragmentMainOutro}`; } // Inject auto-updating time uniform if requested if (timeUniform) { const code = `\nuniform float ${timeUniform};\n`; vertexDefs = code + vertexDefs; fragmentDefs = code + fragmentDefs; } // Inject a function for the vertexTransform and rename all usages of position/normal/uv if (vertexTransform) { // Hoist these defs to the very top so they work in other function defs vertexShader = `vec3 troika_position_${key}; vec3 troika_normal_${key}; vec2 troika_uv_${key}; ${vertexShader} `; vertexDefs = `${vertexDefs} void troikaVertexTransform${key}(inout vec3 position, inout vec3 normal, inout vec2 uv) { ${vertexTransform} } `; vertexMainIntro = ` troika_position_${key} = vec3(position); troika_normal_${key} = vec3(normal); troika_uv_${key} = vec2(uv); troikaVertexTransform${key}(troika_position_${key}, troika_normal_${key}, troika_uv_${key}); ${vertexMainIntro} `; vertexShader = vertexShader.replace(/\b(position|normal|uv)\b/g, (match, match1, index, fullStr) => { return /\battribute\s+vec[23]\s+$/.test(fullStr.substr(0, index)) ? match1 : `troika_${match1}_${key}` }); } // Inject defs and intro/outro snippets vertexShader = injectIntoShaderCode(vertexShader, key, vertexDefs, vertexMainIntro, vertexMainOutro); fragmentShader = injectIntoShaderCode(fragmentShader, key, fragmentDefs, fragmentMainIntro, fragmentMainOutro); return { vertexShader, fragmentShader } } function injectIntoShaderCode(shaderCode, id, defs, intro, outro) { if (intro || outro || defs) { shaderCode = shaderCode.replace(voidMainRegExp, ` ${defs} void troikaOrigMain${id}() {` ); shaderCode += ` void main() { ${intro} troikaOrigMain${id}(); ${outro} }`; } return shaderCode } function optionsJsonReplacer(key, value) { return key === 'uniforms' ? undefined : typeof value === 'function' ? value.toString() : value } let _idCtr = 0; const optionsHashesToIds = new Map(); function getKeyForOptions(options) { const optionsHash = JSON.stringify(options, optionsJsonReplacer); let id = optionsHashesToIds.get(optionsHash); if (id == null) { optionsHashesToIds.set(optionsHash, (id = ++_idCtr)); } return id } // Copied from threejs WebGLPrograms.js so we can resolve builtin materials to their shaders // TODO how can we keep this from getting stale? const MATERIAL_TYPES_TO_SHADERS = { MeshDepthMaterial: 'depth', MeshDistanceMaterial: 'distanceRGBA', MeshNormalMaterial: 'normal', MeshBasicMaterial: 'basic', MeshLambertMaterial: 'lambert', MeshPhongMaterial: 'phong', MeshToonMaterial: 'toon', MeshStandardMaterial: 'physical', MeshPhysicalMaterial: 'physical', MeshMatcapMaterial: 'matcap', LineBasicMaterial: 'basic', LineDashedMaterial: 'dashed', PointsMaterial: 'points', ShadowMaterial: 'shadow', SpriteMaterial: 'sprite' }; /** * Given a Three.js `Material` instance, find the shaders/uniforms that will be * used to render that material. * * @param material - the Material instance * @return {object} - the material's shader info: `{uniforms:{}, fragmentShader:'', vertexShader:''}` */ function getShadersForMaterial(material) { let builtinType = MATERIAL_TYPES_TO_SHADERS[material.type]; return builtinType ? ShaderLib[builtinType] : material //TODO fallback for unknown type? } /** * Find all uniforms and their types within a shader code string. * * @param {string} shader - The shader code to parse * @return {object} mapping of uniform names to their glsl type */ function getShaderUniformTypes(shader) { let uniformRE = /\buniform\s+(int|float|vec[234])\s+([A-Za-z_][\w]*)/g; let uniforms = Object.create(null); let match; while ((match = uniformRE.exec(shader)) !== null) { uniforms[match[2]] = match[1]; } return uniforms } /** * Helper for smoothing out the `m.getInverse(x)` --> `m.copy(x).invert()` conversion * that happened in ThreeJS r123. * @param {Matrix4} srcMatrix * @param {Matrix4} [tgtMatrix] */ function invertMatrix4(srcMatrix, tgtMatrix = new Matrix4()) { if (typeof tgtMatrix.invert === 'function') { tgtMatrix.copy(srcMatrix).invert(); } else { tgtMatrix.getInverse(srcMatrix); } return tgtMatrix } /* Input geometry is a cylinder with r=1, height in y dimension from 0 to 1, divided into a reasonable number of height segments. */ const vertexDefs = ` uniform vec3 pointA; uniform vec3 controlA; uniform vec3 controlB; uniform vec3 pointB; uniform float radius; varying float bezierT; vec3 cubicBezier(vec3 p1, vec3 c1, vec3 c2, vec3 p2, float t) { float t2 = 1.0 - t; float b0 = t2 * t2 * t2; float b1 = 3.0 * t * t2 * t2; float b2 = 3.0 * t * t * t2; float b3 = t * t * t; return b0 * p1 + b1 * c1 + b2 * c2 + b3 * p2; } vec3 cubicBezierDerivative(vec3 p1, vec3 c1, vec3 c2, vec3 p2, float t) { float t2 = 1.0 - t; return -3.0 * p1 * t2 * t2 + c1 * (3.0 * t2 * t2 - 6.0 * t2 * t) + c2 * (6.0 * t2 * t - 3.0 * t * t) + 3.0 * p2 * t * t; } `; const vertexTransform = ` float t = position.y; bezierT = t; vec3 bezierCenterPos = cubicBezier(pointA, controlA, controlB, pointB, t); vec3 bezierDir = normalize(cubicBezierDerivative(pointA, controlA, controlB, pointB, t)); // Make "sideways" always perpendicular to the camera ray; this ensures that any twists // in the cylinder occur where you won't see them: vec3 viewDirection = normalMatrix * vec3(0.0, 0.0, 1.0); if (bezierDir == viewDirection) { bezierDir = normalize(cubicBezierDerivative(pointA, controlA, controlB, pointB, t == 1.0 ? t - 0.0001 : t + 0.0001)); } vec3 sideways = normalize(cross(bezierDir, viewDirection)); vec3 upish = normalize(cross(sideways, bezierDir)); // Build a matrix for transforming this disc in the cylinder: mat4 discTx; discTx[0].xyz = sideways * radius; discTx[1].xyz = bezierDir * radius; discTx[2].xyz = upish * radius; discTx[3].xyz = bezierCenterPos; discTx[3][3] = 1.0; // Apply transform, ignoring original y position = (discTx * vec4(position.x, 0.0, position.z, 1.0)).xyz; normal = normalize(mat3(discTx) * normal); `; const fragmentDefs = ` uniform vec3 dashing; varying float bezierT; `; const fragmentMainIntro = ` if (dashing.x + dashing.y > 0.0) { float dashFrac = mod(bezierT - dashing.z, dashing.x + dashing.y); if (dashFrac > dashing.x) { discard; } } `; // Debugging: separate color for each of the 6 sides: // const fragmentColorTransform = ` // float sideNum = floor(vUV.x * 6.0); // vec3 mixColor = sideNum < 1.0 ? vec3(1.0, 0.0, 0.0) : // sideNum < 2.0 ? vec3(0.0, 1.0, 1.0) : // sideNum < 3.0 ? vec3(1.0, 1.0, 0.0) : // sideNum < 4.0 ? vec3(0.0, 0.0, 1.0) : // sideNum < 5.0 ? vec3(0.0, 1.0, 0.0) : // vec3(1.0, 0.0, 1.0); // gl_FragColor.xyz = mix(gl_FragColor.xyz, mixColor, 0.5); // ` function createBezierMeshMaterial(baseMaterial) { return createDerivedMaterial( baseMaterial, { chained: true, uniforms: { pointA: {value: new Vector3()}, controlA: {value: new Vector3()}, controlB: {value: new Vector3()}, pointB: {value: new Vector3()}, radius: {value: 0.01}, dashing: {value: new Vector3()} //on, off, offset }, vertexDefs, vertexTransform, fragmentDefs, fragmentMainIntro } ) } let geometry = null; const defaultBaseMaterial = /*#__PURE__*/new MeshStandardMaterial({color: 0xffffff, side: DoubleSide}); /** * A ThreeJS `Mesh` that bends a tube shape along a 3D cubic bezier path. The bending is done * by deforming a straight cylindrical geometry in the vertex shader based on a set of four * control point uniforms. It patches the necessary GLSL into the mesh's assigned `material` * automatically. * * The cubiz bezier path is determined by its four `Vector3` properties: * - `pointA` * - `controlA` * - `controlB` * - `pointB` * * The tube's radius is controlled by its `radius` property, which defaults to `0.01`. * * You can also give the tube a dashed appearance with two properties: * * - `dashArray` - an array of two numbers, defining the length of "on" and "off" parts of * the dash. Each is a 0-1 ratio of the entire path's length. (Actually this is the `t` length * used as input to the cubic bezier function, not its visible length.) * - `dashOffset` - offset of where the dash starts. You can animate this to make the dashes move. * * Note that the dashes will appear like a hollow tube, not solid. This will be more apparent on * thicker tubes. * * TODO: proper geometry bounding sphere and raycasting * TODO: allow control of the geometry's segment counts */ class BezierMesh extends Mesh { static getGeometry() { return geometry || (geometry = new CylinderBufferGeometry(1, 1, 1, 6, 64).translate(0, 0.5, 0) ) } constructor() { super( BezierMesh.getGeometry(), defaultBaseMaterial ); this.pointA = new Vector3(); this.controlA = new Vector3(); this.controlB = new Vector3(); this.pointB = new Vector3(); this.radius = 0.01; this.dashArray = new Vector2(); this.dashOffset = 0; // TODO - disabling frustum culling until I figure out how to customize the // geometry's bounding sphere that gets used this.frustumCulled = false; } // Handler for automatically wrapping the base material with our upgrades. We do the wrapping // lazily on _read_ rather than write to avoid unnecessary wrapping on transient values. get material() { let derivedMaterial = this._derivedMaterial; const baseMaterial = this._baseMaterial || this._defaultMaterial || (this._defaultMaterial = defaultBaseMaterial.clone()); if (!derivedMaterial || derivedMaterial.baseMaterial !== baseMaterial) { derivedMaterial = this._derivedMaterial = createBezierMeshMaterial(baseMaterial); // dispose the derived material when its base material is disposed: baseMaterial.addEventListener('dispose', function onDispose() { baseMaterial.removeEventListener('dispose', onDispose); derivedMaterial.dispose(); }); } return derivedMaterial } set material(baseMaterial) { this._baseMaterial = baseMaterial; } // Create and update material for shadows upon request: get customDepthMaterial() { return this.material.getDepthMaterial() } get customDistanceMaterial() { return this.material.getDistanceMaterial() } onBeforeRender(shaderInfo) { const {uniforms} = this.material; const {pointA, controlA, controlB, pointB, radius, dashArray, dashOffset} = this; uniforms.pointA.value.copy(pointA); uniforms.controlA.value.copy(controlA); uniforms.controlB.value.copy(controlB); uniforms.pointB.value.copy(pointB); uniforms.radius.value = radius; uniforms.dashing.value.set(dashArray.x, dashArray.y, dashOffset || 0); } raycast(raycaster, intersects) { // TODO - just fail for now } } export { BezierMesh, createDerivedMaterial, expandShaderIncludes, getShaderUniformTypes, getShadersForMaterial, invertMatrix4, voidMainRegExp }; ================================================ FILE: packages/sdk/lib/dxf/troika-worker-utils.esm.js ================================================ /** * Lightweight thenable implementation that is entirely self-contained within a single * function with no external dependencies so it can be easily shipped across to a WorkerModule. * * This implementation conforms fully to the Promises/A+ spec so it can safely interoperate * with other thenable implementations. https://github.com/promises-aplus/promises-spec * * *However*, it is _not_ a full implementation of ES2015 Promises, e.g. it does not * have the same constructor signature and does not expose a `catch` method or the static * `resolve`/`reject`/`all`/`race` initializer methods. If you need to hand a Thenable * instance off to consuming code that may expect a true Promise, you'll want to wrap it * in a native-or-polyfilled Promise first. * * (Why yet another Promises/A+ implementation? Great question. We needed a polyfill-like * thing that was (a) wrapped in a single function for easy serialization across to a Worker, * and (b) was as small as possible -- at ~900B minified (~500B gzipped) this is the smallest * implementation I've found. And also, exercises like this are challenging and fun.) */ function BespokeThenable() { var state = 0; // 0=pending, 1=fulfilled, -1=rejected var queue = []; var value; var scheduled = 0; var completeCalled = 0; function then(onResolve, onReject) { var nextThenable = BespokeThenable(); function handleNext() { var cb = state > 0 ? onResolve : onReject; if (isFn(cb)) { try { var result = cb(value); if (result === nextThenable) { recursiveError(); } var resultThen = getThenableThen(result); if (resultThen) { resultThen.call(result, nextThenable.resolve, nextThenable.reject); } else { nextThenable.resolve(result); } } catch (err) { nextThenable.reject(err); } } else { nextThenable[state > 0 ? 'resolve' : 'reject'](value); } } queue.push(handleNext); if (state) { scheduleQueueFlush(); } return nextThenable } var resolve = oneTime(function (val) { if (!completeCalled) { complete(1, val); } }); var reject = oneTime(function (reason) { if (!completeCalled) { complete(-1, reason); } }); function complete(st, val) { completeCalled++; var ignoreThrow = 0; try { if (val === thenableObj) { recursiveError(); } var valThen = st > 0 && getThenableThen(val); if (valThen) { valThen.call(val, oneTime(function (v) { ignoreThrow++; complete(1, v); }), oneTime(function (v) { ignoreThrow++; complete(-1, v); })); } else { state = st; value = val; scheduleQueueFlush(); } } catch(e) { if (!state && !ignoreThrow) { complete(-1, e); } } } function scheduleQueueFlush() { if (!scheduled) { setTimeout(flushQueue, 0); //TODO setImmediate or postMessage approach if available? scheduled = 1; } } function flushQueue() { var q = queue; scheduled = 0; queue = []; q.forEach(callIt); } function callIt(fn) { fn(); } function getThenableThen(val) { var valThen = val && (isFn(val) || typeof val === 'object') && val.then; return isFn(valThen) && valThen } function oneTime(fn) { var called = 0; return function() { var args = [], len = arguments.length; while ( len-- ) args[ len ] = arguments[ len ]; if (!called++) { fn.apply(this, args); } } } function recursiveError() { throw new TypeError('Chaining cycle detected') } var isFn = function (v) { return typeof v === 'function'; }; var thenableObj = { then: then, resolve: resolve, reject: reject }; return thenableObj } /** * Thenable implementation that uses a native Promise under the covers. This implementation * is preferred if Promise is available, for better performance and dev tools integration. * @constructor */ function NativePromiseThenable() { var resolve, reject; var promise = new Promise(function (res, rej) { resolve = res; reject = rej; }); return { then: promise.then.bind(promise), resolve: resolve, reject: reject } } /** * Promise.all() impl: */ BespokeThenable.all = NativePromiseThenable.all = function(items) { var resultCount = 0; var results = []; var out = DefaultThenable(); if (items.length === 0) { out.resolve([]); } else { items.forEach(function (item, i) { var itemThenable = DefaultThenable(); itemThenable.resolve(item); itemThenable.then(function (res) { resultCount++; results[i] = res; if (resultCount === items.length) { out.resolve(results); } }, out.reject); }); } return out }; /** * Choose the best Thenable implementation and export it as the default. */ var DefaultThenable = typeof Promise === 'function' ? NativePromiseThenable : BespokeThenable; /** * Main content for the worker that handles the loading and execution of * modules within it. */ function workerBootstrap() { var modules = Object.create(null); // Handle messages for registering a module function registerModule(ref, callback) { var id = ref.id; var name = ref.name; var dependencies = ref.dependencies; if ( dependencies === void 0 ) dependencies = []; var init = ref.init; if ( init === void 0 ) init = function(){}; var getTransferables = ref.getTransferables; if ( getTransferables === void 0 ) getTransferables = null; // Only register once if (modules[id]) { return } try { // If any dependencies are modules, ensure they're registered and grab their value dependencies = dependencies.map(function (dep) { if (dep && dep.isWorkerModule) { registerModule(dep, function (depResult) { if (depResult instanceof Error) { throw depResult } }); dep = modules[dep.id].value; } return dep }); // Rehydrate functions init = rehydrate(("<" + name + ">.init"), init); if (getTransferables) { getTransferables = rehydrate(("<" + name + ">.getTransferables"), getTransferables); } // Initialize the module and store its value var value = null; if (typeof init === 'function') { value = init.apply(void 0, dependencies); } else { console.error('worker module init function failed to rehydrate'); } modules[id] = { id: id, value: value, getTransferables: getTransferables }; callback(value); } catch(err) { if (!(err && err.noLog)) { console.error(err); } callback(err); } } // Handle messages for calling a registered module's result function function callModule(ref, callback) { var ref$1; var id = ref.id; var args = ref.args; if (!modules[id] || typeof modules[id].value !== 'function') { callback(new Error(("Worker module " + id + ": not found or its 'init' did not return a function"))); } try { var result = (ref$1 = modules[id]).value.apply(ref$1, args); if (result && typeof result.then === 'function') { result.then(handleResult, function (rej) { return callback(rej instanceof Error ? rej : new Error('' + rej)); }); } else { handleResult(result); } } catch(err) { callback(err); } function handleResult(result) { try { var tx = modules[id].getTransferables && modules[id].getTransferables(result); if (!tx || !Array.isArray(tx) || !tx.length) { tx = undefined; //postMessage is very picky about not passing null or empty transferables } callback(result, tx); } catch(err) { console.error(err); callback(err); } } } function rehydrate(name, str) { var result = void 0; self.troikaDefine = function (r) { return result = r; }; var url = URL.createObjectURL( new Blob( [("/** " + (name.replace(/\*/g, '')) + " **/\n\ntroikaDefine(\n" + str + "\n)")], {type: 'application/javascript'} ) ); try { importScripts(url); } catch(err) { console.error(err); } URL.revokeObjectURL(url); delete self.troikaDefine; return result } // Handler for all messages within the worker self.addEventListener('message', function (e) { var ref = e.data; var messageId = ref.messageId; var action = ref.action; var data = ref.data; try { // Module registration if (action === 'registerModule') { registerModule(data, function (result) { if (result instanceof Error) { postMessage({ messageId: messageId, success: false, error: result.message }); } else { postMessage({ messageId: messageId, success: true, result: {isCallable: typeof result === 'function'} }); } }); } // Invocation if (action === 'callModule') { callModule(data, function (result, transferables) { if (result instanceof Error) { postMessage({ messageId: messageId, success: false, error: result.message }); } else { postMessage({ messageId: messageId, success: true, result: result }, transferables || undefined); } }); } } catch(err) { postMessage({ messageId: messageId, success: false, error: err.stack }); } }); } /** * Fallback for `defineWorkerModule` that behaves identically but runs in the main * thread, for when the execution environment doesn't support web workers or they * are disallowed due to e.g. CSP security restrictions. */ function defineMainThreadModule(options) { var moduleFunc = function() { var args = [], len = arguments.length; while ( len-- ) args[ len ] = arguments[ len ]; return moduleFunc._getInitResult().then(function (initResult) { if (typeof initResult === 'function') { return initResult.apply(void 0, args) } else { throw new Error('Worker module function was called but `init` did not return a callable function') } }) }; moduleFunc._getInitResult = function() { // We can ignore getTransferables in main thread. TODO workerId? var dependencies = options.dependencies; var init = options.init; // Resolve dependencies dependencies = Array.isArray(dependencies) ? dependencies.map(function (dep) { return dep && dep._getInitResult ? dep._getInitResult() : dep; } ) : []; // Invoke init with the resolved dependencies var initThenable = DefaultThenable.all(dependencies).then(function (deps) { return init.apply(null, deps) }); // Cache the resolved promise for subsequent calls moduleFunc._getInitResult = function () { return initThenable; }; return initThenable }; return moduleFunc } var supportsWorkers = function () { var supported = false; // Only attempt worker initialization in browsers; elsewhere it would just be // noise e.g. loading into a Node environment for SSR. if (typeof window !== 'undefined' && typeof window.document !== 'undefined') { try { // TODO additional checks for things like importScripts within the worker? // Would need to be an async check. var worker = new Worker( URL.createObjectURL(new Blob([''], { type: 'application/javascript' })) ); worker.terminate(); supported = true; } catch (err) { if (typeof process !== 'undefined' && process.env.NODE_ENV === 'test') ; else { console.log( ("Troika createWorkerModule: web workers not allowed; falling back to main thread execution. Cause: [" + (err.message) + "]") ); } } } // Cached result supportsWorkers = function () { return supported; }; return supported }; var _workerModuleId = 0; var _messageId = 0; var _allowInitAsString = false; var workers = Object.create(null); var openRequests = /*#__PURE__*/(function () { var obj = Object.create(null); obj._count = 0; return obj })(); /** * Define a module of code that will be executed with a web worker. This provides a simple * interface for moving chunks of logic off the main thread, and managing their dependencies * among one another. * * @param {object} options * @param {function} options.init * @param {array} [options.dependencies] * @param {function} [options.getTransferables] * @param {string} [options.name] * @param {string} [options.workerId] * @return {function(...[*]): {then}} */ function defineWorkerModule(options) { if ((!options || typeof options.init !== 'function') && !_allowInitAsString) { throw new Error('requires `options.init` function') } var dependencies = options.dependencies; var init = options.init; var getTransferables = options.getTransferables; var workerId = options.workerId; if (!supportsWorkers()) { return defineMainThreadModule(options) } if (workerId == null) { workerId = '#default'; } var id = "workerModule" + (++_workerModuleId); var name = options.name || id; var registrationThenable = null; dependencies = dependencies && dependencies.map(function (dep) { // Wrap raw functions as worker modules with no dependencies if (typeof dep === 'function' && !dep.workerModuleData) { _allowInitAsString = true; dep = defineWorkerModule({ workerId: workerId, name: ("<" + name + "> function dependency: " + (dep.name)), init: ("function(){return (\n" + (stringifyFunction(dep)) + "\n)}") }); _allowInitAsString = false; } // Grab postable data for worker modules if (dep && dep.workerModuleData) { dep = dep.workerModuleData; } return dep }); function moduleFunc() { var args = [], len = arguments.length; while ( len-- ) args[ len ] = arguments[ len ]; // Register this module if needed if (!registrationThenable) { registrationThenable = callWorker(workerId,'registerModule', moduleFunc.workerModuleData); } // Invoke the module, returning a thenable return registrationThenable.then(function (ref) { var isCallable = ref.isCallable; if (isCallable) { return callWorker(workerId,'callModule', {id: id, args: args}) } else { throw new Error('Worker module function was called but `init` did not return a callable function') } }) } moduleFunc.workerModuleData = { isWorkerModule: true, id: id, name: name, dependencies: dependencies, init: stringifyFunction(init), getTransferables: getTransferables && stringifyFunction(getTransferables) }; return moduleFunc } /** * Stringifies a function into a form that can be deserialized in the worker * @param fn */ function stringifyFunction(fn) { var str = fn.toString(); // If it was defined in object method/property format, it needs to be modified if (!/^function/.test(str) && /^\w+\s*\(/.test(str)) { str = 'function ' + str; } return str } function getWorker(workerId) { var worker = workers[workerId]; if (!worker) { // Bootstrap the worker's content var bootstrap = stringifyFunction(workerBootstrap); // Create the worker from the bootstrap function content worker = workers[workerId] = new Worker( URL.createObjectURL( new Blob( [("/** Worker Module Bootstrap: " + (workerId.replace(/\*/g, '')) + " **/\n\n;(" + bootstrap + ")()")], {type: 'application/javascript'} ) ) ); // Single handler for response messages from the worker worker.onmessage = function (e) { var response = e.data; var msgId = response.messageId; var callback = openRequests[msgId]; if (!callback) { throw new Error('WorkerModule response with empty or unknown messageId') } delete openRequests[msgId]; openRequests._count--; callback(response); }; } return worker } // Issue a call to the worker with a callback to handle the response function callWorker(workerId, action, data) { var thenable = DefaultThenable(); var messageId = ++_messageId; openRequests[messageId] = function (response) { if (response.success) { thenable.resolve(response.result); } else { thenable.reject(new Error(("Error in worker " + action + " call: " + (response.error)))); } }; openRequests._count++; if (openRequests._count > 1000) { //detect leaks console.warn('Large number of open WorkerModule requests, some may not be returning'); } getWorker(workerId).postMessage({ messageId: messageId, action: action, data: data }); return thenable } /** * Just the {@link Thenable} function wrapped as a worker module. If another worker * module needs Thenable as a dependency, it's better to pass this module rather than * the raw function in its `dependencies` array so it only gets registered once. */ var ThenableWorkerModule = /*#__PURE__*/defineWorkerModule({ name: 'Thenable', dependencies: [DefaultThenable], init: function(Thenable) { return Thenable } }); export { DefaultThenable as Thenable, ThenableWorkerModule, defineWorkerModule, stringifyFunction }; ================================================ FILE: packages/sdk/lib/hooks/index.ts ================================================ import { useSignal,useAddSignal,useAddOnceSignal,useDispatchSignal,useRemoveSignal,useSetSignalActive } from './useSignal'; export { useSignal, useAddSignal, useAddOnceSignal, useDispatchSignal, useRemoveSignal, useSetSignalActive }; ================================================ FILE: packages/sdk/lib/hooks/useSignal.ts ================================================ import {SignalsRegister} from "@/utils/signals/signalRegister"; interface SignalMethods { add( signalName: string, listener: (...params: T[]) => void, listenerContext?: any, priority?: Number ): void; addOnce( signalName: string, listener: (...params: T[]) => void, listenerContext?: any, priority?: Number ): void; dispatch(signalName: string, ...params: T[]): void; remove(signalName: string, listener: (...params: T[]) => void, context?: any): void; removeAll(signalName: string): void; setActive(signalName: string, active: boolean): void; halt(signalName: string): void; dispose(signalName: string): void; has(signalName: string, listener: (...params: T[]) => void, context?: any): boolean; } export function useSignal(): SignalMethods { const add = ( signalName: string, listener: (...params: any) => void, listenerContext?: any, priority?: Number ): void => { SignalsRegister[signalName].add(listener, listenerContext, priority); }; const addOnce = ( signalName: string, listener: (...params: any) => void, listenerContext?: any, priority?: number ): void => { SignalsRegister[signalName].addOnce(listener, listenerContext, priority); }; const dispatch = (signalName: string, ...params: any): void => { SignalsRegister[signalName].dispatch(...params); }; const remove = ( signalName: string, listener: (...params: any) => void, context?: any ): void => { SignalsRegister[signalName].remove(listener, context); }; const removeAll = (signalName: string): void => { SignalsRegister[signalName].removeAll(); }; const setActive = (signalName: string, active: boolean): void => { SignalsRegister[signalName].active = active; }; const halt = (signalName: string): void => { SignalsRegister[signalName].halt(); }; const dispose = (signalName: string): void => { SignalsRegister[signalName].dispose(); }; const has = ( signalName: string, listener: (...params: any) => void, context?: any ): boolean => { return SignalsRegister[signalName].has(listener, context); }; return { add, addOnce, dispatch, remove, removeAll, setActive, halt, dispose, has }; } export function useAddSignal( signalName: string, listener: (...params: any) => void, listenerContext?: any, priority?: Number ): void { SignalsRegister[signalName].add(listener, listenerContext, priority); } export function useAddOnceSignal( signalName: string, listener: (...params: any) => void, listenerContext?: any, priority?: number ){ SignalsRegister[signalName].addOnce(listener, listenerContext, priority); } export function useDispatchSignal(signalName: string, ...arg): void { SignalsRegister[signalName].dispatch(...arg); } export function useRemoveSignal(signalName: string, listener: (...params: any) => void): void { SignalsRegister[signalName].remove(listener); } export function useSetSignalActive(signalName: string, active: boolean): void{ SignalsRegister[signalName].active = active; }; ================================================ FILE: packages/sdk/lib/index.ts ================================================ import App from "./core/app/App"; import Viewer from "./core/viewer/Viewer"; import Preview from "./core/preview/Preview"; import Loader from './core/loader/Loader'; // export * as THREE from "three"; // export * as THREEAddons from "three/examples/jsm/Addons.js"; // 导出App&Viewer下的所有模块,可提供于前端用作类型声明 export * from "./core/app/modules"; export * from "./core/viewer/modules"; export { version } from '../package.json'; export * from "./constant"; // 导出所有工具函数 export * as Utils from "./utils"; // 导出所有基础物体 export * from "./core/built-in/assets/BasicObject3D"; // 导出所有附加物体 export * from "./core/objects"; // 导出内置粒子 export * from "./core/built-in/assets/Particles"; // 导出内置几何形状 export * from "./core/geometries"; // 导出工具类(漫游、小地图、剖切) export * from "./core/tools"; // 导出所有hooks export * as Hooks from './hooks'; // 导出所有命令 export * from "./core/commands/Commands"; // 导出所有shader材质 export * from "./core/shaderMaterial/modules" // 导出动画轨道生成器 export type {ITimelineKeyframe,ITimelineRow,ITimelineModel} from "./core/animation/TimelineTrack.ts"; export {TimelineTrack} from "./core/animation/TimelineTrack.ts"; export * as Timeline from "./core/libs/astral-timeline/animation-timeline"; // 导出粒子库 export * as Particle from './core/libs/three-nebula/index.js'; // 导出脚本相关 export * as Script from "./core/script"; // 点云相关 export * from "./core/points"; // CAD相关 export {DxfViewer} from "./dxf"; export {DxfParser} from "./dxf/parser"; // 插件声明 export type {Plugin} from "./core/plugin/plugin"; export { App, Viewer, Preview, Loader } ================================================ FILE: packages/sdk/lib/utils/common/dom.ts ================================================ /** * Create a container. */ export function createDivContainer(): HTMLDivElement { const div = document.createElement("div"); document.body.appendChild(div); return div; } ================================================ FILE: packages/sdk/lib/utils/common/download.ts ================================================ /** * 下载blob二进制对象 * @param blob * @param filename */ export function downloadBlob(blob, filename) { const link = document.createElement('a'); if (link.href) { URL.revokeObjectURL(link.href); } link.href = URL.createObjectURL(blob); link.download = filename || 'data.json'; link.dispatchEvent(new MouseEvent('click')); } /** * 下载ArrayBuffer对象 * @param buffer * @param filename */ export function saveArrayBuffer(buffer, filename) { downloadBlob(new Blob([buffer], {type: 'application/octet-stream'}), filename); } /** * 下载text文档 * @param text * @param filename */ export function saveString(text, filename) { downloadBlob(new Blob([text], {type: 'text/plain'}), filename); } ================================================ FILE: packages/sdk/lib/utils/common/helper.ts ================================================ /** * 递归访问嵌套属性 * @param {object} obj * @param {string} path 属性路径字符串,eg: "a.b.c" */ export function getNestedProperty(obj:object, path:string):any { return path.split('.').reduce((o, key) => o?.[key], obj); } /** * 转义正则特殊字符 * @param {string} str */ export function escapeRegExp(str:string) { return str.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); } /** * 获取系统主题色 */ export function getOsTheme(){ const isDarkTheme = window.matchMedia("(prefers-color-scheme: dark)"); // 是深色 if (isDarkTheme.matches) { return 'dark'; } else { return "light"; } } /** * 获取rem的px值 */ export function remToPxNumber(rem: number): number { const f = parseFloat(document.documentElement.style.fontSize); return f * rem; } ================================================ FILE: packages/sdk/lib/utils/common/index.ts ================================================ export * from './object'; export * from './performance'; export * from './helper'; export * from './download'; export * from './verify'; export * from './dom'; ================================================ FILE: packages/sdk/lib/utils/common/object.ts ================================================ /** * 将对象source的值深度遍历赋值给target对象相同key * @param target * @param source */ export function deepAssign(target, source) { for (const key in source) { if (source.hasOwnProperty(key)) { if (typeof source[key] === 'object' && source[key] !== null && !Array.isArray(source[key])) { if (!target[key]){ target[key] = {}; } deepAssign(target[key], source[key]); } else { target[key] = source[key]; } } } } /** * 深度比较两个值是否相等 * @param {any} a * @param {any} b * @returns {boolean} */ export function deepEqual(a, b) { // 引用相同 if (a === b) return true; // 排除 null if (a === null || b === null) return false; // 类型不同 if (typeof a !== typeof b) return false; // 处理日期对象 if (a instanceof Date && b instanceof Date) { return a.getTime() === b.getTime(); } // 处理数组 if (Array.isArray(a) && Array.isArray(b)) { if (a.length !== b.length) return false; for (let i = 0; i < a.length; i++) { if (!deepEqual(a[i], b[i])) return false; } return true; } // 处理对象 if (typeof a === 'object' && typeof b === 'object') { const keysA = Object.keys(a); const keysB = Object.keys(b); if (keysA.length !== keysB.length) return false; for (let key of keysA) { if (!Object.prototype.hasOwnProperty.call(b, key)) return false; if (!deepEqual(a[key], b[key])) return false; } return true; } // 其他基本类型 return false; } ================================================ FILE: packages/sdk/lib/utils/common/performance.ts ================================================ /** * 防抖函数 * @param {Function} func - 需要防抖的函数 * @param {number} wait - 时间间隔(毫秒) * @returns {Function} - 返回一个防抖后的函数 */ export function debounce(func, wait): (...args: any[]) => void { let timer: NodeJS.Timeout | null = null; return function(){ if (timer) { clearTimeout(timer); } timer = setTimeout(() => { func(...arguments) }, wait); }; } /** * 节流函数 * @param {Function} func - 需要节流的函数 * @param {number} wait - 时间间隔(毫秒),表示在这个时间间隔内最多执行一次函数 * @returns {Function} - 返回一个节流后的函数 */ export function throttle(func, wait:number):(...args: any[]) => void { // 上一次执行函数的时间戳,初始值为 0 let lastTime = 0; // 返回一个闭包函数,作为节流后的函数 return function () { // 获取当前时间戳 const now = Date.now(); // 如果当前时间与上一次执行时间的差值大于等于 wait,则执行函数 if (now - lastTime >= wait) { // 更新上一次执行函数的时间戳 lastTime = now; // 调用原始函数,并传入参数 func(...arguments); } }; } ================================================ FILE: packages/sdk/lib/utils/common/verify.ts ================================================ /** * 验证方法 */ export const IS_MAC = navigator.platform.toUpperCase().indexOf('MAC') >= 0; export const isNil = (v) => v === null || v === undefined; // 判断是否是空对象,排除数组 export const isEmptyObject = (obj:object) => typeof obj === 'object' && obj !== null && !Array.isArray(obj) && Object.keys(obj).length === 0; ================================================ FILE: packages/sdk/lib/utils/index.ts ================================================ /** * Astral3D.Utils namespace */ export * from "./common"; export * from "./scene"; export * from "./request"; export * from "./wasm"; export * from "./signals/signalRegister"; export {logger} from "./log/Logger"; export type {ILog} from "./log/Logger"; ================================================ FILE: packages/sdk/lib/utils/log/Logger.ts ================================================ /** * @author ErSan * @email mlt131220@163.com * @date 2025/2/24 下午2:21 * @description 日志记录器 */ import {useAddSignal, useDispatchSignal,useRemoveSignal} from '@/hooks'; export interface ILog { id: number; message: string; time: string; level: string; } let _delLogFn,_clearLogFn,_historyChangedFn; class Logger { static Enum = Object.freeze({ TRACE: "trace", DEBUG: "debug", INFO: "info", WARN: "warn", ERROR: "error" }); // 是否启用日志 enabled: boolean = true; // 日志信息 logs: ILog[] = []; constructor() { _delLogFn = this.delLog.bind(this); useAddSignal("deleteLog",_delLogFn); _clearLogFn = this.clearLogs.bind(this); useAddSignal("clearLogs",_clearLogFn); _historyChangedFn = this.historyChanged.bind(this); useAddSignal("historyChanged",_historyChangedFn); } log(methodName:string,message:string){ if(!this.enabled) return; const _log = { id: this.logs.length, message, level: methodName, time: new Date().toLocaleString() } this.logs.unshift(_log); useDispatchSignal("addLog", _log, this.logs); } trace(message:string) { this.log(Logger.Enum.TRACE, message); } debug(message:string) { this.log(Logger.Enum.DEBUG, message); } info(message:string) { this.log(Logger.Enum.INFO, message); } warn(message:string) { this.log(Logger.Enum.WARN, message); } error(message:string) { this.log(Logger.Enum.ERROR, message); } /** * 删除日志 * @param _log */ delLog(_log: ILog) { this.logs = this.logs.filter(log => log.id!== _log.id); } /** * 清空日志 */ clearLogs() { this.logs = []; } /** * 历史记录变化回调 * @param cmd */ historyChanged(cmd){ if(!cmd?.name) return; let msg = cmd.name; const postposition = ['AddObjectCommand','RemoveObjectCommand','MoveObjectCommand']; if(postposition.includes(cmd.type)){ msg = `${msg}: ${cmd.object.name} `; }else if(cmd.object){ msg = `${cmd.object.name} ${msg.toLowerCase()}`; } if(cmd.newValue !== undefined && cmd.oldValue !== undefined){ let newValue = cmd.newValue; let oldValue = cmd.oldValue; if(typeof newValue === 'object'){ newValue = JSON.stringify(newValue); } if(typeof oldValue === 'object'){ oldValue = JSON.stringify(oldValue); } msg = `${msg}: ${oldValue} ⇒ ${newValue}`; } this.info(msg); } dispose() { useRemoveSignal("deleteLog",_delLogFn) _delLogFn = null; useRemoveSignal("clearLogs",_clearLogFn) _clearLogFn = null; useRemoveSignal("historyChanged",_historyChangedFn) _historyChangedFn = null; } } export const logger = new Logger(); export default logger; ================================================ FILE: packages/sdk/lib/utils/request/fetchController.ts ================================================ /** * 创建一个handlerFetch * * @param limit 并发控制 * @param timeout 超时设 * @return function 返回一个函数 */ export function fetchController(limit: number, timeout: number | boolean) { limit = limit || 1; timeout = timeout || false; let count = 0, pool: any = []; return function (url: string, options?: any) { // 通过AbortController 控制 取消fetch 请求 let controller = new AbortController(); let signal = controller.signal; // 判断是否需要超时 let isTimeout = options && options.timeout || timeout; // 控制请求超时 let timeoutPromise = () => { return new Promise((reject) => { setTimeout(() => { // resolve('请求超时'); reject('请求超时'); controller.abort(); }, options?.timeout || timeout) }) } // 返回fetch 本身 let taskPromise = () => new Promise((resolve, reject) => { fetch(url, { signal, ...options }).then(res => { resolve(res); }).catch(err => { reject(err) }) }); // 通过Promise.race可以控制超时,并在访问结果中 去继续调用等待池中的请求 let task = () => (isTimeout ? Promise.race([timeoutPromise(), taskPromise()]) : taskPromise()) .then((res) => { options.onSuccess && options.onSuccess(res) next(); }) .catch((err) => { options.onError && options.onError(err) next(); }); // 定一个next 控制等待队列中的请求继续并发调用 let next = () => { // 每执行一次next count - 1,然后比较当前的count 与 limit // 如果小于limit 循环执行limit-count 次 count--; if (count < limit && pool.length) { let n = limit - count; for (let i = 0; i < n; i++) { let curTask: any = pool.shift(); curTask(); ++count; } } }; // 比较count与limit 大于等于limit的推入等待队列 小于limit的 count + 1,并执行fetch请求 if (count >= limit) { pool.push(task); } else { ++count; task(); } } } ================================================ FILE: packages/sdk/lib/utils/request/index.ts ================================================ export * from './fetchController'; ================================================ FILE: packages/sdk/lib/utils/scene/Stats.ts ================================================ /** * 性能状态监视器,基于stats.js * 默认展示全部面板 */ import ThreeStats from 'three/examples/jsm/libs/stats.module.js'; import Viewer from "@/core/viewer/Viewer.ts"; export class Stats { private viewer: Viewer; private threeStats: ThreeStats; private panel = 0; private _visible = true; private fns:{ beforeRender:null | (() => void); afterRender:null | (() => void); } = { beforeRender: null, afterRender: null, } constructor(viewer: Viewer) { this.viewer = viewer; this.threeStats = new ThreeStats(); this.initEvent(); this.init(); } get domElement():HTMLElement { return this.threeStats.dom; } get visible(){ return this._visible; } set visible(visible:boolean) { this._visible = visible; this.domElement.style.display = visible ? "block" : 'none'; } initEvent(){ this.fns.beforeRender = () => { if(!this.visible) return; this.threeStats.begin(); }; this.viewer.addEventListener("beforeRender",this.fns.beforeRender); this.fns.afterRender = () => { if(!this.visible) return; this.threeStats.end(); }; this.viewer.addEventListener("afterRender",this.fns.afterRender); } init(){ const canvases = this.domElement.querySelectorAll("canvas"); canvases.forEach(canvas => { canvas.style.width = "5rem"; canvas.style.height = "3rem"; canvas.style.display = "block"; }); } showPanel(type: number | 'fps' | 'ms' | 'mb') { if (typeof type === 'number') { this.threeStats.showPanel(type); this.panel = type; return; } switch (type.toLowerCase()) { case 'fps': this.threeStats.showPanel(0); this.panel = 0; break; case 'ms': this.threeStats.showPanel(1); this.panel = 1; break; case 'mb': this.threeStats.showPanel(2); this.panel = 2; break; } } showAllPanels(show:boolean) { const canvases = this.domElement.querySelectorAll("canvas"); canvases.forEach(canvas => { canvas.style.display = show ? "block" : "none"; }); if(!show){ this.showPanel(this.panel); } } dispose(){ if(this.fns.beforeRender){ this.viewer.removeEventListener("beforeRender",this.fns.beforeRender); this.fns.beforeRender = null; } if(this.fns.afterRender){ this.viewer.removeEventListener("afterRender",this.fns.afterRender); this.fns.afterRender = null; } // @ts-ignore this.threeStats = null; } } ================================================ FILE: packages/sdk/lib/utils/scene/controls.ts ================================================ import {Object3D,Box3,Sphere,Vector3} from "three"; import CameraControls from "camera-controls"; function getObjectBox3(object:Object3D){ const box3 = new Box3(); box3.setFromObject(object); if(box3.isEmpty()){ box3.set(new Vector3(object.position.x-1, object.position.y-1, object.position.z-1), new Vector3(object.position.x+1, object.position.y+1, object.position.z+1)); } return box3; } export function focusObject(object:Object3D,controls:CameraControls,enableTransition: boolean = true){ const box3 = getObjectBox3(object); return controls.fitToBox(box3,enableTransition); } export function focusObjectByDistance(object:Object3D,controls:CameraControls,distance:number,enableTransition: boolean = true){ const box3 = getObjectBox3(object); const sphere = box3.getBoundingSphere(new Sphere()); const center = sphere.center.clone(); const radius = Number.isFinite(sphere.radius) ? sphere.radius : 1; const toSurfaceDistance = Math.max(distance, 0); const toCenterDistance = Math.max(radius + toSurfaceDistance, 0.01); const currentPosition = controls.getPosition(new Vector3()); const currentTarget = controls.getTarget(new Vector3()); const direction = currentPosition.sub(currentTarget); if(direction.lengthSq() < 1e-6){ direction.set(0, 0, 1); } direction.normalize(); const nextPosition = center.clone().addScaledVector(direction, toCenterDistance); return controls.setLookAt( nextPosition.x, nextPosition.y, nextPosition.z, center.x, center.y, center.z, enableTransition ); } ================================================ FILE: packages/sdk/lib/utils/scene/index.ts ================================================ import { Object3D,InstancedMesh,Mesh,Matrix4,AnimationAction,AnimationClip } from "three"; import App from "@/core/app/App"; export * from "./material"; export * from "./Stats"; export * from "./controls"; /** * 获取对象到父对象的路径(结果不包含parentObject) * @param parentObject * @param object * @param attr 对象属性名 * @param splitter 路径分隔符 */ export function getParentPath(parentObject:Object3D,object:Object3D,attr = 'name',splitter = '/'){ if(!parentObject || !object) return ''; if(parentObject === object) return object[attr]; let path = [object[attr]]; const getPath = (obj) => { if(!obj.parent) return; if(obj.parent === parentObject) return; path.unshift(obj.parent[attr]); getPath(obj.parent); } getPath(object); return path.join(splitter); } /** * 获取鼠标按下的位置 * @param dom * @param x * @param y */ export function getMousePosition(dom: HTMLElement, x: number, y: number) { const rect = dom.getBoundingClientRect(); return [(x - rect.left) / rect.width, (y - rect.top) / rect.height]; } /** * InstancedMesh 解出所有 mesh */ export function getMeshByInstancedMesh(instancedMesh:InstancedMesh){ const meshes:Mesh[] = []; // if (instancedMesh.material === undefined) return meshes; const matrixWorld = instancedMesh.matrixWorld; const count = instancedMesh.count; for (let instanceId = 0; instanceId < count; instanceId++) { const _mesh = new Mesh(); const _instanceLocalMatrix = new Matrix4(); const _instanceWorldMatrix = new Matrix4(); _mesh.geometry = instancedMesh.geometry; _mesh.material = instancedMesh.material; // 计算每个实例的世界矩阵 instancedMesh.getMatrixAt(instanceId, _instanceLocalMatrix); _instanceWorldMatrix.multiplyMatrices(matrixWorld, _instanceLocalMatrix); // 网格表示这个单一实例 _mesh.matrixWorld = _instanceWorldMatrix; meshes.push(_mesh); } return meshes; } /** * 判断是否是group,因为导入有可能存在被定义为Object3D类型的group */ export function isGroup(object3D:Object3D){ return (object3D.isGroup || object3D.children.length > 0) } /** * 判断是否是代理粒子发射器的3D对象 */ export function isParticleObject(object:Object3D | null){ return object && object.type === "Particle" && object.emitter; } /** * 判断是否是Billboard 3D对象 */ export function isBillboardObject(object:Object3D | null){ return object && object.type === "Billboard" && object.options; } /** * 判断是否是HtmlPanel 3D对象 */ export function isHtmlPanelObject(object:Object3D | null){ return object && (object.isHtmlPanel || object.isHtmlSprite) && object.element; } /** * 获取场景/物体中的所有动画 */ export function getAnimations(object = App.scene) { const animations: any = []; object.traverse(function (object) { animations.push(...object.animations); }); return animations; } /** * 获取场景/物体中的所有动画剪辑 */ export function getAnimationClips(object:Object3D = App.scene) { const animations: any = []; object.traverse(function (object) { object.animations.forEach(animation => { if(animation instanceof AnimationAction){ animations.push(animation.getClip()); } if(animation instanceof AnimationClip){ animations.push(animation); } }) }); return animations; } ================================================ FILE: packages/sdk/lib/utils/scene/material.ts ================================================ import * as THREE from "three"; import Loader from "@/core/loader/Loader.ts"; import App from "@/core/app/App.ts"; import { readAstralZipArrayBuffer, readAstralZipBlob, readAstralZipText, waitAstralZipConstructor } from "@/utils/wasm/zip.ts"; interface IMaterialZipJson { textures: Record; properties: Record; } interface ITextureLoadResult { type: string; texture: THREE.Texture | null; } /** * 根据文件名推断 PBR 贴图槽位。 * @param materialJson 材质描述对象。 * @param relativePath ZIP 内部文件路径。 */ function collectTexturePath(materialJson: IMaterialZipJson, relativePath: string) { if (relativePath.includes("baseColor")) { materialJson.textures.baseColor = relativePath; } else if (relativePath.includes("normal")) { materialJson.textures.normal = relativePath; } else if (relativePath.includes("bump")) { materialJson.textures.bump = relativePath; } else if (relativePath.includes("displacement")) { materialJson.textures.displacement = relativePath; } else if (relativePath.includes("emissive")) { materialJson.textures.emissive = relativePath; } else if (relativePath.includes("alpha")) { materialJson.textures.alpha = relativePath; } else if (relativePath.includes("env")) { materialJson.textures.env = relativePath; } else if (relativePath.includes("light")) { materialJson.textures.light = relativePath; } else { // arm 贴图可能将粗糙度、金属度、AO 分别写入同一张图的不同通道,因此这里保留多槽位写入。 if (relativePath.includes("roughness")) { materialJson.textures.roughness = relativePath; } if (relativePath.includes("metalness")) { materialJson.textures.metalness = relativePath; } if (relativePath.includes("ao")) { materialJson.textures.ao = relativePath; } } } /** * 在没有 material.json 时从 ZIP 文件名推断材质描述。 * @param fileMetas ZIP 内文件元信息列表。 * @returns {IMaterialZipJson} 推断出的材质描述。 */ function createMaterialJsonFromFiles(fileMetas: IAstralZip.FileMeta[]): IMaterialZipJson { const materialJson: IMaterialZipJson = { textures: {}, properties: {} }; fileMetas.forEach(fileMeta => { const relativePath = fileMeta.name; // AstralZip 会显式返回目录描述;同时兼容以斜杠结尾的目录路径。 if (fileMeta.dir || relativePath.endsWith("/")) return; collectTexturePath(materialJson, relativePath); }); return materialJson; } /** * 从 ZIP 中读取材质描述。 * @param zipContent ZIP 归档对象。 * @returns {Promise} 材质描述。 */ async function readMaterialJson(zipContent: IAstralZip.Zip): Promise { const materialJsonFile = zipContent.file("material.json"); if (!materialJsonFile) { return createMaterialJsonFromFiles(zipContent.files()); } return JSON.parse(await readAstralZipText(zipContent, "material.json")); } /** * 加载单张材质贴图。 * @param zipContent ZIP 归档对象。 * @param type 贴图槽位。 * @param path ZIP 内部贴图路径。 * @returns {Promise} 贴图加载结果。 */ async function loadMaterialTexture(zipContent: IAstralZip.Zip, type: string, path: string): Promise { const textureFile = zipContent.file(path); if (!textureFile) { console.warn(`Texture file not found: ${path}`); return { type, texture: null }; } const extension = path.toString().split(".").pop()?.toLowerCase() || "jpg"; let textureBlob: Blob; try { // EXR 需要保留专用 MIME,避免后续纹理加载器无法识别格式。 if (extension === "exr") { const buffer = await readAstralZipArrayBuffer(zipContent, path); textureBlob = new Blob([buffer], { type: "image/x-exr" }); } else { textureBlob = await readAstralZipBlob(zipContent, path); } } catch (err) { console.error(`Failed to load texture (${type}):`, err); return { type, texture: null }; } const textureUrl = URL.createObjectURL(textureBlob); return new Promise( (resolve) => { Loader.loadUrlTexture( extension, textureUrl, (texture: THREE.Texture) => { URL.revokeObjectURL(textureUrl); resolve({ type, texture }); }, (error: Error) => { URL.revokeObjectURL(textureUrl); console.error(`Texture load error (${type}):`, error); resolve({ type, texture: null }); } ); } ); } /** * 解析材质zip包 * @param zipFile 材质 ZIP 文件。 * @returns {Promise} 解析后的 PBR 材质。 */ export async function parseMaterialZip(zipFile: File): Promise { const AstralZip = await waitAstralZipConstructor(); const zipContent = await AstralZip.loadAsync(zipFile); try { const materialJson = await readMaterialJson(zipContent); // 并行加载所有纹理,保持原有解析速度和容错行为。 const textureResults = await Promise.all( Object.entries(materialJson.textures).map(([type, path]) => loadMaterialTexture(zipContent, type, path)) ); const textures = textureResults.reduce((acc, { type, texture }) => { if (texture) acc[type] = texture; return acc; }, {} as Record); // 处理无有效纹理的情况。 if (Object.keys(textures).length === 0) { throw new Error("No valid textures found in the zip file"); } return await App.createPBRMaterial(textures, materialJson.properties || {}); } finally { zipContent.dispose(); } } ================================================ FILE: packages/sdk/lib/utils/signals/signalRegister.ts ================================================ import Signal from 'signals'; interface SignalObj { add(listener: (...params: T[]) => void, listenerContext?: any, priority?: Number): void; addOnce(listener: (...params: T[]) => void, listenerContext?: any, priority?: Number): void; dispatch(...params: T[]): void; remove(listener: (...params: T[]) => void, context?: any): void; removeAll(): void; setActive(active: boolean): void; halt(): void; dispose(): void; has(listener: (...params: T[]) => void, context?: any): boolean; active: boolean; } interface SignalRegister { [s: string]: SignalObj; } /** * App * @path lib/core/App */ const appSignals: SignalRegister = { // xr enterXR: new Signal(), offerXR: new Signal(), leaveXR: new Signal(), sceneCleared: new Signal(), transformModeChanged: new Signal(), snapChanged: new Signal(), spaceChanged: new Signal(), rendererCreated: new Signal(), rendererUpdated: new Signal(), rendererConfigUpdate: new Signal(), rendererDetectKTX2Support: new Signal(), sceneBackgroundChanged: new Signal(), sceneEnvironmentChanged: new Signal(), sceneFogSettingsChanged: new Signal(), // 雨效果配置参数变更 sceneRainSettingsChanged: new Signal(), // 雪效果配置参数变更 sceneSnowSettingsChanged: new Signal(), sceneGraphChanged: new Signal(), sceneRendered: new Signal(), sceneResize: new Signal(), cameraAdded: new Signal(), cameraRemoved: new Signal(), cameraChanged: new Signal(), cameraReset: new Signal(), geometryChanged: new Signal(), objectSelected: new Signal(), objectFocused: new Signal(), objectFocusByUuid: new Signal(), // 锁定模型 objectLocked: new Signal(), // 解锁模型 objectUnlocked: new Signal(), objectAdded: new Signal(), objectChanged: new Signal(), objectRemoved: new Signal(), materialAdded: new Signal(), materialChanged: new Signal(), materialRemoved: new Signal(), materialCurrentSlotChange: new Signal(), scriptAdded: new Signal(), scriptChanged: new Signal(), scriptRemoved: new Signal(), showGridChanged: new Signal(), historyChanged: new Signal(), // 场景主相机变更 viewportCameraChanged: new Signal(), viewportShadingChanged: new Signal(), intersectionsDetected: new Signal(), pathTracerUpdated: new Signal(), // 实例化ShaderMaterial类型内置材质 instantiateShaderMaterial: new Signal(), // 场景加载完成 sceneLoadComplete: new Signal(), // 添加日志 addLog: new Signal(), // 删除日志 deleteLog: new Signal(), // 清空日志 clearLogs: new Signal(), // 动画更新渲染 animationMixerUpdate: new Signal(), // 动画轨道时间变化(游标拖动) timelineTimeChanged: new Signal(), // 动画轨道行变化(添加/删除) timelineRowChanged: new Signal(), }; /** * Viewer * @path lib/core/Viewer */ const ViewerSignals: SignalRegister = { // viewer 初始化完毕,即构造函数执行完毕 viewerInitCompleted: new Signal(), // 插件注册 pluginInstall: new Signal(), // 插件卸载 pluginUninstall: new Signal(), IFCPropertiesVisible: new Signal(), // 启用/禁用后处理 effectEnabledChange: new Signal(), // 后处理通道配置变更 effectPassConfigChange: new Signal(), // 粒子body使用的Object3D变更 particleBodyChanged: new Signal(), // 粒子系统添加emitter后触发 particleSystemAddEmitter: new Signal(), // 将emitter添加到粒子系统:fromJSON时触发 emitterAdd2ParticleSystem: new Signal(), } /** * 图纸 相关 */ const drawingSignals: SignalRegister = { drawingMarkDone: new Signal(), // 新增/编辑 图纸标记完成回调 cadViewerResize: new Signal(), // 图纸面板移动 } export const SignalsRegister: SignalRegister = { ...appSignals, ...ViewerSignals, ...drawingSignals, }; // signal注册器 export const SignalsRegisterFn = (newSignals:Array) => { newSignals.forEach(key => { SignalsRegister[key] = new Signal(); }) } ================================================ FILE: packages/sdk/lib/utils/wasm/index.ts ================================================ export * from "./zip.ts"; export * from "./inject.ts"; ================================================ FILE: packages/sdk/lib/utils/wasm/inject.ts ================================================ import "./wasm_exec.js"; // 20251112: 注入tinyGo编译的wasm export function injectWasm(opts: { wasmUrl: string }): Promise { return new Promise((resolve, reject) => { if (!opts.wasmUrl) { reject("wasmUrl requires valid URL"); return; } // @ts-ignore const go = new AstralGo(); const done = obj => { const wasm = obj.instance; go.run(wasm); resolve(wasm); }; if ("instantiateStreaming" in WebAssembly) { WebAssembly.instantiateStreaming(fetch(opts.wasmUrl), go.importObject) .then(function (obj) { done(obj); }) .catch(function (err) { reject(err); }); } else { fetch(opts.wasmUrl) .then(resp => resp.arrayBuffer()) .then(bytes => WebAssembly.instantiate(bytes, go.importObject) .then(function (obj) { done(obj); }) .catch(function (err) { reject(err); }) ); } }); } ================================================ FILE: packages/sdk/lib/utils/wasm/wasm_exec.js ================================================ (() => { const global = window; const encoder = new TextEncoder("utf-8"); const decoder = new TextDecoder("utf-8"); let reinterpretBuf = new DataView(new ArrayBuffer(8)); let logLine = []; const wasmExit = {}; // thrown to exit via proc_exit (not an error) global.AstralGo = class { constructor() { this._callbackTimeouts = new Map(); this._nextCallbackTimeoutID = 1; const mem = () => { // The buffer may change when requesting more memory. return new DataView(this._inst.exports.memory.buffer); } const unboxValue = (v_ref) => { reinterpretBuf.setBigInt64(0, v_ref, true); const f = reinterpretBuf.getFloat64(0, true); if (f === 0) { return undefined; } if (!isNaN(f)) { return f; } const id = v_ref & 0xffffffffn; return this._values[id]; } const loadValue = (addr) => { let v_ref = mem().getBigUint64(addr, true); return unboxValue(v_ref); } const boxValue = (v) => { const nanHead = 0x7FF80000n; if (typeof v === "number") { if (isNaN(v)) { return nanHead << 32n; } if (v === 0) { return (nanHead << 32n) | 1n; } reinterpretBuf.setFloat64(0, v, true); return reinterpretBuf.getBigInt64(0, true); } switch (v) { case undefined: return 0n; case null: return (nanHead << 32n) | 2n; case true: return (nanHead << 32n) | 3n; case false: return (nanHead << 32n) | 4n; } let id = this._ids.get(v); if (id === undefined) { id = this._idPool.pop(); if (id === undefined) { id = BigInt(this._values.length); } this._values[id] = v; this._goRefCounts[id] = 0; this._ids.set(v, id); } this._goRefCounts[id]++; let typeFlag = 1n; switch (typeof v) { case "string": typeFlag = 2n; break; case "symbol": typeFlag = 3n; break; case "function": typeFlag = 4n; break; } return id | ((nanHead | typeFlag) << 32n); } const storeValue = (addr, v) => { let v_ref = boxValue(v); mem().setBigUint64(addr, v_ref, true); } const loadSlice = (array, len, cap) => { return new Uint8Array(this._inst.exports.memory.buffer, array, len); } const loadSliceOfValues = (array, len, cap) => { const a = new Array(len); for (let i = 0; i < len; i++) { a[i] = loadValue(array + i * 8); } return a; } const loadString = (ptr, len) => { return decoder.decode(new DataView(this._inst.exports.memory.buffer, ptr, len)); } const timeOrigin = Date.now() - performance.now(); this.importObject = { wasi_snapshot_preview1: { fd_write: function(fd, iovs_ptr, iovs_len, nwritten_ptr) { let nwritten = 0; if (fd == 1) { for (let iovs_i=0; iovs_i 0, // dummy fd_fdstat_get: () => 0, // dummy fd_seek: () => 0, // dummy proc_exit: (code) => { this.exited = true; this.exitCode = code; this._resolveExitPromise(); throw wasmExit; }, random_get: (bufPtr, bufLen) => { crypto.getRandomValues(loadSlice(bufPtr, bufLen)); return 0; }, }, gojs: { // func ticks() int64 "runtime.ticks": () => { return BigInt((timeOrigin + performance.now()) * 1e6); }, // func sleepTicks(timeout int64) "runtime.sleepTicks": (timeout) => { // Do not sleep, only reactivate scheduler after the given timeout. setTimeout(() => { if (this.exited) return; try { this._inst.exports.go_scheduler(); } catch (e) { if (e !== wasmExit) throw e; } }, Number(timeout) / 1e6); }, // func finalizeRef(v ref) "syscall/js.finalizeRef": (v_ref) => { // Note: TinyGo does not support finalizers so this is only called // for one specific case, by js.go:jsString. and can/might leak memory. const id = v_ref & 0xffffffffn; if (this._goRefCounts?.[id] !== undefined) { this._goRefCounts[id]--; if (this._goRefCounts[id] === 0) { const v = this._values[id]; this._values[id] = null; this._ids.delete(v); this._idPool.push(id); } } else { console.error("syscall/js.finalizeRef: unknown id", id); } }, // func stringVal(value string) ref "syscall/js.stringVal": (value_ptr, value_len) => { value_ptr >>>= 0; const s = loadString(value_ptr, value_len); return boxValue(s); }, // func valueGet(v ref, p string) ref "syscall/js.valueGet": (v_ref, p_ptr, p_len) => { let prop = loadString(p_ptr, p_len); let v = unboxValue(v_ref); let result = Reflect.get(v, prop); return boxValue(result); }, // func valueSet(v ref, p string, x ref) "syscall/js.valueSet": (v_ref, p_ptr, p_len, x_ref) => { const v = unboxValue(v_ref); const p = loadString(p_ptr, p_len); const x = unboxValue(x_ref); Reflect.set(v, p, x); }, // func valueDelete(v ref, p string) "syscall/js.valueDelete": (v_ref, p_ptr, p_len) => { const v = unboxValue(v_ref); const p = loadString(p_ptr, p_len); Reflect.deleteProperty(v, p); }, // func valueIndex(v ref, i int) ref "syscall/js.valueIndex": (v_ref, i) => { return boxValue(Reflect.get(unboxValue(v_ref), i)); }, // valueSetIndex(v ref, i int, x ref) "syscall/js.valueSetIndex": (v_ref, i, x_ref) => { Reflect.set(unboxValue(v_ref), i, unboxValue(x_ref)); }, // func valueCall(v ref, m string, args []ref) (ref, bool) "syscall/js.valueCall": (ret_addr, v_ref, m_ptr, m_len, args_ptr, args_len, args_cap) => { const v = unboxValue(v_ref); const name = loadString(m_ptr, m_len); const args = loadSliceOfValues(args_ptr, args_len, args_cap); try { const m = Reflect.get(v, name); storeValue(ret_addr, Reflect.apply(m, v, args)); mem().setUint8(ret_addr + 8, 1); } catch (err) { storeValue(ret_addr, err); mem().setUint8(ret_addr + 8, 0); } }, // func valueInvoke(v ref, args []ref) (ref, bool) "syscall/js.valueInvoke": (ret_addr, v_ref, args_ptr, args_len, args_cap) => { try { const v = unboxValue(v_ref); const args = loadSliceOfValues(args_ptr, args_len, args_cap); storeValue(ret_addr, Reflect.apply(v, undefined, args)); mem().setUint8(ret_addr + 8, 1); } catch (err) { storeValue(ret_addr, err); mem().setUint8(ret_addr + 8, 0); } }, // func valueNew(v ref, args []ref) (ref, bool) "syscall/js.valueNew": (ret_addr, v_ref, args_ptr, args_len, args_cap) => { const v = unboxValue(v_ref); const args = loadSliceOfValues(args_ptr, args_len, args_cap); try { storeValue(ret_addr, Reflect.construct(v, args)); mem().setUint8(ret_addr + 8, 1); } catch (err) { storeValue(ret_addr, err); mem().setUint8(ret_addr+ 8, 0); } }, // func valueLength(v ref) int "syscall/js.valueLength": (v_ref) => { return unboxValue(v_ref).length; }, // valuePrepareString(v ref) (ref, int) "syscall/js.valuePrepareString": (ret_addr, v_ref) => { const s = String(unboxValue(v_ref)); const str = encoder.encode(s); storeValue(ret_addr, str); mem().setInt32(ret_addr + 8, str.length, true); }, // valueLoadString(v ref, b []byte) "syscall/js.valueLoadString": (v_ref, slice_ptr, slice_len, slice_cap) => { const str = unboxValue(v_ref); loadSlice(slice_ptr, slice_len, slice_cap).set(str); }, // func valueInstanceOf(v ref, t ref) bool "syscall/js.valueInstanceOf": (v_ref, t_ref) => { return unboxValue(v_ref) instanceof unboxValue(t_ref); }, // func copyBytesToGo(dst []byte, src ref) (int, bool) "syscall/js.copyBytesToGo": (ret_addr, dest_addr, dest_len, dest_cap, src_ref) => { let num_bytes_copied_addr = ret_addr; let returned_status_addr = ret_addr + 4; // Address of returned boolean status variable const dst = loadSlice(dest_addr, dest_len); const src = unboxValue(src_ref); if (!(src instanceof Uint8Array || src instanceof Uint8ClampedArray)) { mem().setUint8(returned_status_addr, 0); // Return "not ok" status return; } const toCopy = src.subarray(0, dst.length); dst.set(toCopy); mem().setUint32(num_bytes_copied_addr, toCopy.length, true); mem().setUint8(returned_status_addr, 1); // Return "ok" status }, // copyBytesToJS(dst ref, src []byte) (int, bool) // Originally copied from upstream Go project, then modified: // https://github.com/golang/go/blob/3f995c3f3b43033013013e6c7ccc93a9b1411ca9/misc/wasm/wasm_exec.js#L404-L416 "syscall/js.copyBytesToJS": (ret_addr, dst_ref, src_addr, src_len, src_cap) => { let num_bytes_copied_addr = ret_addr; let returned_status_addr = ret_addr + 4; // Address of returned boolean status variable const dst = unboxValue(dst_ref); const src = loadSlice(src_addr, src_len); if (!(dst instanceof Uint8Array || dst instanceof Uint8ClampedArray)) { mem().setUint8(returned_status_addr, 0); // Return "not ok" status return; } const toCopy = src.subarray(0, dst.length); dst.set(toCopy); mem().setUint32(num_bytes_copied_addr, toCopy.length, true); mem().setUint8(returned_status_addr, 1); // Return "ok" status }, } }; // Go 1.20 uses 'env'. Go 1.21 uses 'gojs'. // 开启 env 映射 this.importObject.env = this.importObject.gojs; } async run(instance) { this._inst = instance; this._values = [ // JS values that Go currently has references to, indexed by reference id NaN, 0, null, true, false, global, this, ]; this._goRefCounts = []; // number of references that Go has to a JS value, indexed by reference id this._ids = new Map(); // mapping from JS values to reference ids this._idPool = []; // unused ids that have been garbage collected this.exited = false; // whether the Go program has exited this.exitCode = 0; if (this._inst.exports._start) { let exitPromise = new Promise((resolve, reject) => { this._resolveExitPromise = resolve; }); // Run program, but catch the wasmExit exception that's thrown // to return back here. try { this._inst.exports._start(); } catch (e) { if (e !== wasmExit) throw e; } await exitPromise; return this.exitCode; } else { this._inst.exports._initialize(); } } _resume() { if (this.exited) { throw new Error("Go program has already exited"); } try { this._inst.exports.resume(); } catch (e) { if (e !== wasmExit) throw e; } if (this.exited) { this._resolveExitPromise(); } } _makeFuncWrapper(id) { const go = this; return function () { const event = { id: id, this: this, args: arguments }; go._pendingEvent = event; go._resume(); return event.result; }; } } })(); ================================================ FILE: packages/sdk/lib/utils/wasm/zip.ts ================================================ export const ASTRAL_ZIP_READY_TIMEOUT = 10000; export const ASTRAL_ZIP_READY_INTERVAL = 16; export const ASTRAL_ZIP_MAX_WORKERS = 4; /** * 获取 AstralZip 构造器. * @returns {IAstralZip.Constructor | undefined} 返回 wasm 注入后的 AstralZip 构造器. */ export function getAstralZipConstructor(): IAstralZip.Constructor | undefined { const globalScope = globalThis as typeof globalThis & { AstralZip?: IAstralZip.Constructor }; return globalScope.AstralZip; } /** * 等待 AstralZip wasm 能力完成注入. * @returns {Promise} 返回可用的 AstralZip 构造器. */ export function waitAstralZipConstructor(): Promise { const constructor = getAstralZipConstructor(); if (constructor) { return Promise.resolve(constructor); } const startTime = performance.now(); return new Promise((resolve, reject) => { const check = () => { const constructor = getAstralZipConstructor(); if (constructor) { resolve(constructor); return; } if (performance.now() - startTime > ASTRAL_ZIP_READY_TIMEOUT) { reject(new Error("AstralZip wasm 未完成注入")); return; } setTimeout(check, ASTRAL_ZIP_READY_INTERVAL); }; check(); }); } /** * 获取 AstralZip 并发压缩 worker 数量. * @returns {number} 返回受上限保护的 worker 数量. */ export function getAstralZipWorkers(): number { const hardwareConcurrency = navigator.hardwareConcurrency || ASTRAL_ZIP_MAX_WORKERS; return Math.max(1, Math.min(ASTRAL_ZIP_MAX_WORKERS, hardwareConcurrency)); } /** * 从归档中读取指定文件代理. * @param archive ZIP 归档对象. * @param fileName 文件内部路径. * @returns {IAstralZip.File} 返回文件代理. */ export function getAstralZipFile(archive: IAstralZip.Zip, fileName: string): IAstralZip.File { const file = archive.file(fileName); if (!file) { throw new Error(`zip 文件不存在: ${fileName}`); } return file; } /** * 读取 ZIP 内文本文件. * @param archive ZIP 归档对象. * @param fileName 文件内部路径. * @returns {Promise} 返回 UTF-8 文本. */ export function readAstralZipText(archive: IAstralZip.Zip, fileName: string): Promise { return getAstralZipFile(archive, fileName).async("string"); } /** * 读取 ZIP 内二进制文件. * @param archive ZIP 归档对象. * @param fileName 文件内部路径. * @returns {Promise} 返回独立 ArrayBuffer. */ export function readAstralZipArrayBuffer(archive: IAstralZip.Zip, fileName: string): Promise { return getAstralZipFile(archive, fileName).async("arraybuffer"); } /** * 读取 ZIP 内 Blob 文件. * @param archive ZIP 归档对象. * @param fileName 文件内部路径. * @returns {Promise} 返回 Blob. */ export function readAstralZipBlob(archive: IAstralZip.Zip, fileName: string): Promise { return getAstralZipFile(archive, fileName).async("blob"); } ================================================ FILE: packages/sdk/lib/workers/bvh/GenerateColliderEnvironmentWorker.js ================================================ import {Group, BufferGeometryLoader, Mesh} from "three"; import {Viewport} from "@/core/preview/Viewport.ts"; import GenerateColliderEnvironmentWorkerUrl from './generateColliderEnvironment.worker.js?worker&url'; export class GenerateColliderEnvironmentWorker{ constructor() { this.worker = new Worker(GenerateColliderEnvironmentWorkerUrl, { type: 'module' }); this.worker.onerror = e => { if ( e.message ) { throw new Error( `GenerateColliderEnvironmentWorker: Could not create Web Worker with error "${ e.message }"` ); } else { throw new Error( `GenerateColliderEnvironmentWorker: Could not create Web Worker.`); } }; } parseAttr(attr,gArray){ // 遍历attr的key,还原 for (const key in attr) { const item = attr[key]; if(item.array){ item.array = gArray[key].array; item.count = gArray[key].count; item.itemSize = gArray[key].itemSize; } } } generate(scene){ if (this.worker === null) { throw new Error( 'GenerateColliderEnvironmentWorker: Worker has been disposed.' ); } const { worker } = this; const dbTable = "environment"; return new Promise(async (resolve,reject)=>{ worker.onerror = e => { reject(new Error(`GenerateColliderEnvironmentWorker: ${ e.message }`)); }; // 按照材质分组mesh let toMerge = {},keys = []; const loader = new BufferGeometryLoader(); const db = window.VIEWPORT.modules["db"]; const has = await db.hasStore(dbTable); if(has){ // TODO 此处应该直接读取返回 //db.clear(dbTable); }else{ await db.addStore(dbTable); } let environment = new Group(); environment.name = "ROAMING-ColliderEnvironment"; worker.onmessage = ({data}) => { switch (data.type) { case "env": const geoJson = data.geometryJson; const geometry = loader.parse(geoJson); const newMesh = new Mesh(geometry, window.BOM3D.materials[data.materialUuid]); newMesh.castShadow = true; newMesh.receiveShadow = true; newMesh.material.shadowSide = 2; environment.add(newMesh); break; case "collider": const mergedGeometryJson = data.mergedGeometryJson; const mergedGeometry = loader.parse(mergedGeometryJson); this.parseAttr(mergedGeometry.attributes,data.gArray); mergedGeometry.index.array = data.gArray.index.array; mergedGeometry.index.itemSize = data.gArray.index.itemSize; resolve({mergedGeometry, environment}); worker.onmessage = null; break; } } scene.traverse(c => { // @ts-ignore 只合并网格 if (c.isMesh) { // @ts-ignore let uuid; // @ts-ignore if (c.material.uuid === Viewport.RegularMat.uuid) { uuid = c.userData.old.materialUuid; } else { // @ts-ignore uuid = c.material.uuid; } toMerge[uuid] = toMerge[uuid] || []; let mesh = c.clone(); mesh.material = undefined; // if (mesh.material?.map === null || !mesh.material?.map?.isTexture) { // // 材质不存在贴图则删除uv属性 // mesh.geometry.deleteAttribute("uv"); // } const json = mesh.toJSON(); json.matrixWorld = c.matrixWorld.toArray(); toMerge[uuid].push(json); } }); keys = Object.keys(toMerge); const num = new Proxy({value:keys.length},{ set(target, p, newValue, receiver) { target[p] = newValue; if(newValue === 0){ toMerge = undefined; worker.postMessage({indexedDBName:"BOM",table:dbTable,uuids:[...keys]}) } return true; } }) keys.forEach((uuid)=>{ db.setItem(uuid,toMerge[uuid],dbTable).then(()=>{ num.value--; }); }) }) } } ================================================ FILE: packages/sdk/lib/workers/bvh/GenerateMeshBVHWorker.js ================================================ import { Box3, BufferAttribute } from 'three'; import { MeshBVH } from 'three-mesh-bvh'; import GenerateAsyncWorkerUrl from './generateAsync.worker.js?worker&url'; export class GenerateMeshBVHWorker { constructor() { this.running = false; this.worker = new Worker(GenerateAsyncWorkerUrl, { type: 'module' }); this.worker.onerror = e => { if ( e.message ) { throw new Error( `GenerateMeshBVHWorker: Could not create Web Worker with error "${ e.message }"` ); } else { throw new Error( 'GenerateMeshBVHWorker: Could not create Web Worker.' ); } }; } generate( geometry, options = {} ) { if (this.running) { throw new Error( 'GenerateMeshBVHWorker: Already running job.' ); } if (this.worker === null) { throw new Error( 'GenerateMeshBVHWorker: Worker has been disposed.' ); } const { worker } = this; this.running = true; return new Promise((resolve, reject) => { worker.onerror = e => { reject( new Error( `GenerateMeshBVHWorker: ${ e.message }` ) ); this.running = false; }; worker.onmessage = e => { this.running = false; const { data } = e; if (data.error) { reject( new Error( data.error ) ); worker.onmessage = null; } else if ( data.serialized ) { const { serialized, position } = data; const bvh = MeshBVH.deserialize( serialized, geometry, { setIndex: false } ); const boundsOptions = Object.assign( { setBoundingBox: true, }, options ); // we need to replace the arrays because they're neutered entirely by the // webworker transfer. geometry.attributes.position.array = position; if ( geometry.index ) { geometry.index.array = serialized.index; } else { const newIndex = new BufferAttribute( serialized.index, 1, false ); geometry.setIndex( newIndex ); } if ( boundsOptions.setBoundingBox ) { geometry.boundingBox = bvh.getBoundingBox( new Box3() ); } resolve( bvh ); worker.onmessage = null; } else if ( options.onProgress ) { options.onProgress( data.progress ); } }; const index = geometry.index ? geometry.index.array : null; const position = geometry.attributes.position.array; if (position.isInterleavedBufferAttribute || index && index.isInterleavedBufferAttribute) { throw new Error( 'GenerateMeshBVHWorker: InterleavedBufferAttribute are not supported for the geometry attributes.' ); } const transferable = [ position ]; if (index) { transferable.push( index ); } worker.postMessage({ index, position, options: { ...options, onProgress: null, includedProgressCallback: Boolean( options.onProgress ), groups: [ ... geometry.groups ], }, }, transferable.map(arr => arr.buffer)); }); } dispose() { this.worker.terminate(); this.worker = null; } terminate() { console.warn( 'GenerateMeshBVHWorker: "terminate" is deprecated. Use "dispose" instead.' ); this.dispose(); } } ================================================ FILE: packages/sdk/lib/workers/bvh/generateAsync.worker.js ================================================ import { BufferGeometry, BufferAttribute, } from 'three'; import { MeshBVH } from 'three-mesh-bvh'; onmessage = function ( { data } ) { let prevTime = performance.now(); function onProgressCallback( progress ) { const currTime = performance.now(); if ( currTime - prevTime >= 10 || progress === 1.0 ) { postMessage({ error: null, serialized: null, position: null, progress, }); prevTime = currTime; } } const { index, position, options } = data; try { const geometry = new BufferGeometry(); geometry.setAttribute( 'position', new BufferAttribute( position, 3, false ) ); if ( index ) { geometry.setIndex( new BufferAttribute( index, 1, false ) ); } if ( options.includedProgressCallback ) { options.onProgress = onProgressCallback; } if ( options.groups ) { const groups = options.groups; for ( const i in groups ) { const group = groups[ i ]; geometry.addGroup( group.start, group.count, group.materialIndex ); } } const bvh = new MeshBVH( geometry, options ); const serialized = MeshBVH.serialize( bvh, { copyIndexBuffer: false } ); postMessage( { error: null, serialized, position, progress: 1, }, [ serialized.index.buffer, position.buffer, ...serialized.roots ] ); } catch ( error ) { postMessage( { error, serialized: null, position: null, progress: 1, } ); } }; ================================================ FILE: packages/sdk/lib/workers/bvh/generateColliderEnvironment.worker.js ================================================ import {Group, Mesh, MeshBasicMaterial, Matrix4, InstancedMesh} from "three"; import {ObjectLoader} from "@/core/loader/ObjectLoader"; import * as BufferGeometryUtils from "three/examples/jsm/utils/BufferGeometryUtils.js"; import {StaticGeometryGenerator} from "three-mesh-bvh"; import {TYPED_ARRAYS} from "../../../config/global"; import DBStorage from "../../../core/utils/DBStorage"; /** * 解析attr * @param attr Geometry Attributes */ function parseAttr(attr) { // 遍历attr的key,组织为新对象返回 const newAttr = {}; for (const key in attr) { const item = attr[key]; if (item.array) { newAttr[key] = { itemSize: item.itemSize, array: item.array, count: item.count } item.array = new TYPED_ARRAYS[item.array.constructor.name]([]); } } return newAttr; } let basicMaterial = new MeshBasicMaterial(); function getMeshByInstancedMesh(instancedMesh){ const meshes = []; const matrixWorld = instancedMesh.matrixWorld; const count = instancedMesh.count; for (let instanceId = 0; instanceId < count; instanceId++) { const _mesh = new Mesh(); const _instanceLocalMatrix = new Matrix4(); const _instanceWorldMatrix = new Matrix4(); _mesh.geometry = instancedMesh.geometry; _mesh.material = instancedMesh.material; // 计算每个实例的世界矩阵 instancedMesh.getMatrixAt(instanceId, _instanceLocalMatrix); _instanceWorldMatrix.multiplyMatrices(matrixWorld, _instanceLocalMatrix); // 网格表示这个单一实例 _mesh.matrixWorld = _instanceWorldMatrix; meshes.push(_mesh); } return meshes; } onmessage = async function ({data}) { const {indexedDBName,table,uuids} = data; let loader = new ObjectLoader(); let environment = new Group(); const db = new DBStorage(indexedDBName,table); for (const uuid of uuids) { const arr = await db.getItem(uuid); const visualGeometries = []; arr.forEach((meshJson) => { const m = new Matrix4(); const matrixWorld = m.fromArray(meshJson.matrixWorld); meshJson.matrixWorld = undefined; const mesh = loader.parse(meshJson); const cloneGeom = (me) => { const geom = me.geometry.clone(); geom.applyMatrix4(me.matrixWorld); visualGeometries.push(geom); } // @ts-ignore if (!mesh.isInstancedMesh) { cloneGeom(mesh); } else { const meshes = getMeshByInstancedMesh(mesh); meshes.forEach((m) => { cloneGeom(m); }); } }); if (visualGeometries.length) { const newGeom = BufferGeometryUtils.mergeGeometries(visualGeometries); let n_geo = newGeom.clone().toJSON(); const newMesh = new Mesh(newGeom, basicMaterial); environment.add(newMesh); postMessage({ type: "env", materialUuid:uuid, geometryJson: n_geo }) n_geo = undefined; } await db.removeItem(uuid); } const staticGenerator = new StaticGeometryGenerator(environment); staticGenerator.attributes = ['position']; const mergedGeometry = staticGenerator.generate(); const gArray = { ...parseAttr(mergedGeometry.attributes), index: { array:mergedGeometry.index.array, itemSize:mergedGeometry.index.itemSize } } mergedGeometry.index.array = new TYPED_ARRAYS[gArray.index.array.constructor.name]([]); const mergedGeometryJson = mergedGeometry.toJSON(); const transfer = Object.values(gArray).map(arrayBuffer => arrayBuffer.array.buffer); postMessage({ type: "collider", mergedGeometryJson: mergedGeometryJson, gArray: gArray }, transfer); basicMaterial = undefined; environment = undefined; } ================================================ FILE: packages/sdk/lib/workers/mergeGeometries.worker.ts ================================================ import {BufferGeometry, BufferAttribute} from "three"; import * as BufferGeometryUtils from "three/examples/jsm/utils/BufferGeometryUtils.js"; const visualGeometries: BufferGeometry[] = []; self.onmessage = function ({data}) { switch (data.type) { case "push": pushGeometry(data); break; case "merge": if(visualGeometries.length === 0) { self.postMessage({ type: "error", message:"No geometries found." }) break; } const geo = BufferGeometryUtils.mergeGeometries(visualGeometries); self.postMessage({ type: "success", geometry: geo }) break; } } function pushGeometry(data) { const {geometry} = data; if(!geometry) return; geometry.__proto__ = BufferGeometry.prototype; geometry.index && (geometry.index.__proto__ = BufferAttribute.prototype); geometry.attributes.position && (geometry.attributes.position.__proto__ = BufferAttribute.prototype); geometry.attributes.normal && (geometry.attributes.normal.__proto__ = BufferAttribute.prototype); visualGeometries.push(geometry); } ================================================ FILE: packages/sdk/package.json ================================================ { "name": "@astral3d/engine", "version": "1.0.0", "license": "Apache-2.0", "type": "module", "files": [ "dist" ], "main": "./dist/astral3d.es.js", "module": "./dist/astral3d.es.js", "types": "./dist/types/index.d.ts", "exports": { ".": { "types": "./dist/types/index.d.ts", "import": "./dist/astral3d.es.js", "require": "./dist/astral3d.umd.js" } }, "scripts": { "dev": "vite", "build": "tsc && vite build" }, "dependencies": { "@babel/runtime": "7.27.0", "@dxfom/mtext": "^0.3.2", "camera-controls": "^2.9.0", "localforage": "^1.10.0", "signals": "^1.0.0", "three": "catalog:", "three-gpu-pathtracer": "^0.0.22", "three-mesh-bvh": "^0.9.0", "three-viewport-gizmo": "^2.0.2", "web-ifc-three": "^0.0.126" }, "devDependencies": { "@astral3d/build-vite-plugins": "workspace:^", "@types/node": "catalog:", "@types/three": "catalog:", "rollup-plugin-visualizer": "catalog:", "typescript": "catalog:", "vite": "catalog:", "vite-plugin-dts": "4.0.0-beta.1" } } ================================================ FILE: packages/sdk/public/libs/basis/README.md ================================================ # Basis Universal GPU Texture Compression Basis Universal is a "[supercompressed](http://gamma.cs.unc.edu/GST/gst.pdf)" GPU texture and texture video compression system that outputs a highly compressed intermediate file format (.basis) that can be quickly transcoded to a wide variety of GPU texture compression formats. [GitHub](https://github.com/BinomialLLC/basis_universal) ## Transcoders Basis Universal texture data may be used in two different file formats: `.basis` and `.ktx2`, where `ktx2` is a standardized wrapper around basis texture data. For further documentation about the Basis compressor and transcoder, refer to the [Basis GitHub repository](https://github.com/BinomialLLC/basis_universal). The folder contains two files required for transcoding `.basis` or `.ktx2` textures: * `basis_transcoder.js` — JavaScript wrapper for the WebAssembly transcoder. * `basis_transcoder.wasm` — WebAssembly transcoder. Both are dependencies of `KTX2Loader`: ```js const ktx2Loader = new KTX2Loader(); ktx2Loader.setTranscoderPath( 'examples/jsm/libs/basis/' ); ktx2Loader.detectSupport( renderer ); ktx2Loader.load( 'diffuse.ktx2', function ( texture ) { const material = new THREE.MeshStandardMaterial( { map: texture } ); }, function () { console.log( 'onProgress' ); }, function ( e ) { console.error( e ); } ); ``` ## License [Apache License 2.0](https://github.com/BinomialLLC/basis_universal/blob/master/LICENSE) ================================================ FILE: packages/sdk/public/libs/basis/basis_transcoder.js ================================================ var BASIS = (function() { var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined; if (typeof __filename !== 'undefined') _scriptDir = _scriptDir || __filename; return ( function(BASIS) { BASIS = BASIS || {}; var Module=typeof BASIS!=="undefined"?BASIS:{};var readyPromiseResolve,readyPromiseReject;Module["ready"]=new Promise(function(resolve,reject){readyPromiseResolve=resolve;readyPromiseReject=reject});var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var arguments_=[];var thisProgram="./this.program";var quit_=function(status,toThrow){throw toThrow};var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;ENVIRONMENT_IS_WEB=typeof window==="object";ENVIRONMENT_IS_WORKER=typeof importScripts==="function";ENVIRONMENT_IS_NODE=typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string";ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;var nodeFS;var nodePath;if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require("path").dirname(scriptDirectory)+"/"}else{scriptDirectory=__dirname+"/"}read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);return nodeFS["readFileSync"](filename,binary?null:"utf8")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};if(process["argv"].length>1){thisProgram=process["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",abort);quit_=function(status){process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"}}else if(ENVIRONMENT_IS_SHELL){if(typeof read!="undefined"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(f))}data=read(f,"binary");assert(typeof data==="object");return data};if(typeof scriptArgs!="undefined"){arguments_=scriptArgs}else if(typeof arguments!="undefined"){arguments_=arguments}if(typeof quit==="function"){quit_=function(status){quit(status)}}if(typeof print!=="undefined"){if(typeof console==="undefined")console={};console.log=print;console.warn=console.error=typeof printErr!=="undefined"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!=="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(_scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf("/")+1)}else{scriptDirectory=""}{read_=function shell_read(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function readBinary(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function readAsync(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function xhr_onload(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var tempRet0=0;var setTempRet0=function(value){tempRet0=value};var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime;if(Module["noExitRuntime"])noExitRuntime=Module["noExitRuntime"];if(typeof WebAssembly!=="object"){abort("no native wasm support detected")}var wasmMemory;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}var UTF8Decoder=typeof TextDecoder!=="undefined"?new TextDecoder("utf8"):undefined;function UTF8ArrayToString(heap,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var endPtr=idx;while(heap[endPtr]&&!(endPtr>=endIdx))++endPtr;if(endPtr-idx>16&&heap.subarray&&UTF8Decoder){return UTF8Decoder.decode(heap.subarray(idx,endPtr))}else{var str="";while(idx>10,56320|ch&1023)}}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}var UTF16Decoder=typeof TextDecoder!=="undefined"?new TextDecoder("utf-16le"):undefined;function UTF16ToString(ptr,maxBytesToRead){var endPtr=ptr;var idx=endPtr>>1;var maxIdx=idx+maxBytesToRead/2;while(!(idx>=maxIdx)&&HEAPU16[idx])++idx;endPtr=idx<<1;if(endPtr-ptr>32&&UTF16Decoder){return UTF16Decoder.decode(HEAPU8.subarray(ptr,endPtr))}else{var str="";for(var i=0;!(i>=maxBytesToRead/2);++i){var codeUnit=HEAP16[ptr+i*2>>1];if(codeUnit==0)break;str+=String.fromCharCode(codeUnit)}return str}}function stringToUTF16(str,outPtr,maxBytesToWrite){if(maxBytesToWrite===undefined){maxBytesToWrite=2147483647}if(maxBytesToWrite<2)return 0;maxBytesToWrite-=2;var startPtr=outPtr;var numCharsToWrite=maxBytesToWrite>1]=codeUnit;outPtr+=2}HEAP16[outPtr>>1]=0;return outPtr-startPtr}function lengthBytesUTF16(str){return str.length*2}function UTF32ToString(ptr,maxBytesToRead){var i=0;var str="";while(!(i>=maxBytesToRead/4)){var utf32=HEAP32[ptr+i*4>>2];if(utf32==0)break;++i;if(utf32>=65536){var ch=utf32-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}else{str+=String.fromCharCode(utf32)}}return str}function stringToUTF32(str,outPtr,maxBytesToWrite){if(maxBytesToWrite===undefined){maxBytesToWrite=2147483647}if(maxBytesToWrite<4)return 0;var startPtr=outPtr;var endPtr=startPtr+maxBytesToWrite-4;for(var i=0;i=55296&&codeUnit<=57343){var trailSurrogate=str.charCodeAt(++i);codeUnit=65536+((codeUnit&1023)<<10)|trailSurrogate&1023}HEAP32[outPtr>>2]=codeUnit;outPtr+=4;if(outPtr+4>endPtr)break}HEAP32[outPtr>>2]=0;return outPtr-startPtr}function lengthBytesUTF32(str){var len=0;for(var i=0;i=55296&&codeUnit<=57343)++i;len+=4}return len}function alignUp(x,multiple){if(x%multiple>0){x+=multiple-x%multiple}return x}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||16777216;var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function addRunDependency(id){runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["preloadedImages"]={};Module["preloadedAudios"]={};function abort(what){if(Module["onAbort"]){Module["onAbort"](what)}what+="";err(what);ABORT=true;EXITSTATUS=1;what="abort("+what+"). Build with -s ASSERTIONS=1 for more info.";var e=new WebAssembly.RuntimeError(what);readyPromiseReject(e);throw e}function hasPrefix(str,prefix){return String.prototype.startsWith?str.startsWith(prefix):str.indexOf(prefix)===0}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return hasPrefix(filename,dataURIPrefix)}var fileURIPrefix="file://";function isFileURI(filename){return hasPrefix(filename,fileURIPrefix)}var wasmBinaryFile="basis_transcoder.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(){try{if(wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(wasmBinaryFile)}else{throw"both async and sync fetching of the wasm failed"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)&&typeof fetch==="function"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary()})}return Promise.resolve().then(getBinary)}function createWasm(){var info={"a":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module["asm"]=exports;wasmMemory=Module["asm"]["K"];updateGlobalBufferAndViews(wasmMemory.buffer);wasmTable=Module["asm"]["L"];removeRunDependency("wasm-instantiate")}addRunDependency("wasm-instantiate");function receiveInstantiatedSource(output){receiveInstance(output["instance"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming==="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch==="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiatedSource,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiatedSource)})})}else{return instantiateArrayBuffer(receiveInstantiatedSource)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}instantiateAsync().catch(readyPromiseReject);return{}}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback(Module);continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){wasmTable.get(func)()}else{wasmTable.get(func)(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var structRegistrations={};function runDestructors(destructors){while(destructors.length){var ptr=destructors.pop();var del=destructors.pop();del(ptr)}}function simpleReadValueFromPointer(pointer){return this["fromWireType"](HEAPU32[pointer>>2])}var awaitingDependencies={};var registeredTypes={};var typeDependencies={};var char_0=48;var char_9=57;function makeLegalFunctionName(name){if(undefined===name){return"_unknown"}name=name.replace(/[^a-zA-Z0-9_]/g,"$");var f=name.charCodeAt(0);if(f>=char_0&&f<=char_9){return"_"+name}else{return name}}function createNamedFunction(name,body){name=makeLegalFunctionName(name);return new Function("body","return function "+name+"() {\n"+' "use strict";'+" return body.apply(this, arguments);\n"+"};\n")(body)}function extendError(baseErrorType,errorName){var errorClass=createNamedFunction(errorName,function(message){this.name=errorName;this.message=message;var stack=new Error(message).stack;if(stack!==undefined){this.stack=this.toString()+"\n"+stack.replace(/^Error(:[^\n]*)?\n/,"")}});errorClass.prototype=Object.create(baseErrorType.prototype);errorClass.prototype.constructor=errorClass;errorClass.prototype.toString=function(){if(this.message===undefined){return this.name}else{return this.name+": "+this.message}};return errorClass}var InternalError=undefined;function throwInternalError(message){throw new InternalError(message)}function whenDependentTypesAreResolved(myTypes,dependentTypes,getTypeConverters){myTypes.forEach(function(type){typeDependencies[type]=dependentTypes});function onComplete(typeConverters){var myTypeConverters=getTypeConverters(typeConverters);if(myTypeConverters.length!==myTypes.length){throwInternalError("Mismatched type converter count")}for(var i=0;i>shift])},destructorFunction:null})}function ClassHandle_isAliasOf(other){if(!(this instanceof ClassHandle)){return false}if(!(other instanceof ClassHandle)){return false}var leftClass=this.$$.ptrType.registeredClass;var left=this.$$.ptr;var rightClass=other.$$.ptrType.registeredClass;var right=other.$$.ptr;while(leftClass.baseClass){left=leftClass.upcast(left);leftClass=leftClass.baseClass}while(rightClass.baseClass){right=rightClass.upcast(right);rightClass=rightClass.baseClass}return leftClass===rightClass&&left===right}function shallowCopyInternalPointer(o){return{count:o.count,deleteScheduled:o.deleteScheduled,preservePointerOnDelete:o.preservePointerOnDelete,ptr:o.ptr,ptrType:o.ptrType,smartPtr:o.smartPtr,smartPtrType:o.smartPtrType}}function throwInstanceAlreadyDeleted(obj){function getInstanceTypeName(handle){return handle.$$.ptrType.registeredClass.name}throwBindingError(getInstanceTypeName(obj)+" instance already deleted")}var finalizationGroup=false;function detachFinalizer(handle){}function runDestructor($$){if($$.smartPtr){$$.smartPtrType.rawDestructor($$.smartPtr)}else{$$.ptrType.registeredClass.rawDestructor($$.ptr)}}function releaseClassHandle($$){$$.count.value-=1;var toDelete=0===$$.count.value;if(toDelete){runDestructor($$)}}function attachFinalizer(handle){if("undefined"===typeof FinalizationGroup){attachFinalizer=function(handle){return handle};return handle}finalizationGroup=new FinalizationGroup(function(iter){for(var result=iter.next();!result.done;result=iter.next()){var $$=result.value;if(!$$.ptr){console.warn("object already deleted: "+$$.ptr)}else{releaseClassHandle($$)}}});attachFinalizer=function(handle){finalizationGroup.register(handle,handle.$$,handle.$$);return handle};detachFinalizer=function(handle){finalizationGroup.unregister(handle.$$)};return attachFinalizer(handle)}function ClassHandle_clone(){if(!this.$$.ptr){throwInstanceAlreadyDeleted(this)}if(this.$$.preservePointerOnDelete){this.$$.count.value+=1;return this}else{var clone=attachFinalizer(Object.create(Object.getPrototypeOf(this),{$$:{value:shallowCopyInternalPointer(this.$$)}}));clone.$$.count.value+=1;clone.$$.deleteScheduled=false;return clone}}function ClassHandle_delete(){if(!this.$$.ptr){throwInstanceAlreadyDeleted(this)}if(this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete){throwBindingError("Object already scheduled for deletion")}detachFinalizer(this);releaseClassHandle(this.$$);if(!this.$$.preservePointerOnDelete){this.$$.smartPtr=undefined;this.$$.ptr=undefined}}function ClassHandle_isDeleted(){return!this.$$.ptr}var delayFunction=undefined;var deletionQueue=[];function flushPendingDeletes(){while(deletionQueue.length){var obj=deletionQueue.pop();obj.$$.deleteScheduled=false;obj["delete"]()}}function ClassHandle_deleteLater(){if(!this.$$.ptr){throwInstanceAlreadyDeleted(this)}if(this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete){throwBindingError("Object already scheduled for deletion")}deletionQueue.push(this);if(deletionQueue.length===1&&delayFunction){delayFunction(flushPendingDeletes)}this.$$.deleteScheduled=true;return this}function init_ClassHandle(){ClassHandle.prototype["isAliasOf"]=ClassHandle_isAliasOf;ClassHandle.prototype["clone"]=ClassHandle_clone;ClassHandle.prototype["delete"]=ClassHandle_delete;ClassHandle.prototype["isDeleted"]=ClassHandle_isDeleted;ClassHandle.prototype["deleteLater"]=ClassHandle_deleteLater}function ClassHandle(){}var registeredPointers={};function ensureOverloadTable(proto,methodName,humanName){if(undefined===proto[methodName].overloadTable){var prevFunc=proto[methodName];proto[methodName]=function(){if(!proto[methodName].overloadTable.hasOwnProperty(arguments.length)){throwBindingError("Function '"+humanName+"' called with an invalid number of arguments ("+arguments.length+") - expects one of ("+proto[methodName].overloadTable+")!")}return proto[methodName].overloadTable[arguments.length].apply(this,arguments)};proto[methodName].overloadTable=[];proto[methodName].overloadTable[prevFunc.argCount]=prevFunc}}function exposePublicSymbol(name,value,numArguments){if(Module.hasOwnProperty(name)){if(undefined===numArguments||undefined!==Module[name].overloadTable&&undefined!==Module[name].overloadTable[numArguments]){throwBindingError("Cannot register public name '"+name+"' twice")}ensureOverloadTable(Module,name,name);if(Module.hasOwnProperty(numArguments)){throwBindingError("Cannot register multiple overloads of a function with the same number of arguments ("+numArguments+")!")}Module[name].overloadTable[numArguments]=value}else{Module[name]=value;if(undefined!==numArguments){Module[name].numArguments=numArguments}}}function RegisteredClass(name,constructor,instancePrototype,rawDestructor,baseClass,getActualType,upcast,downcast){this.name=name;this.constructor=constructor;this.instancePrototype=instancePrototype;this.rawDestructor=rawDestructor;this.baseClass=baseClass;this.getActualType=getActualType;this.upcast=upcast;this.downcast=downcast;this.pureVirtualFunctions=[]}function upcastPointer(ptr,ptrClass,desiredClass){while(ptrClass!==desiredClass){if(!ptrClass.upcast){throwBindingError("Expected null or instance of "+desiredClass.name+", got an instance of "+ptrClass.name)}ptr=ptrClass.upcast(ptr);ptrClass=ptrClass.baseClass}return ptr}function constNoSmartPtrRawPointerToWireType(destructors,handle){if(handle===null){if(this.isReference){throwBindingError("null is not a valid "+this.name)}return 0}if(!handle.$$){throwBindingError('Cannot pass "'+_embind_repr(handle)+'" as a '+this.name)}if(!handle.$$.ptr){throwBindingError("Cannot pass deleted object as a pointer of type "+this.name)}var handleClass=handle.$$.ptrType.registeredClass;var ptr=upcastPointer(handle.$$.ptr,handleClass,this.registeredClass);return ptr}function genericPointerToWireType(destructors,handle){var ptr;if(handle===null){if(this.isReference){throwBindingError("null is not a valid "+this.name)}if(this.isSmartPointer){ptr=this.rawConstructor();if(destructors!==null){destructors.push(this.rawDestructor,ptr)}return ptr}else{return 0}}if(!handle.$$){throwBindingError('Cannot pass "'+_embind_repr(handle)+'" as a '+this.name)}if(!handle.$$.ptr){throwBindingError("Cannot pass deleted object as a pointer of type "+this.name)}if(!this.isConst&&handle.$$.ptrType.isConst){throwBindingError("Cannot convert argument of type "+(handle.$$.smartPtrType?handle.$$.smartPtrType.name:handle.$$.ptrType.name)+" to parameter type "+this.name)}var handleClass=handle.$$.ptrType.registeredClass;ptr=upcastPointer(handle.$$.ptr,handleClass,this.registeredClass);if(this.isSmartPointer){if(undefined===handle.$$.smartPtr){throwBindingError("Passing raw pointer to smart pointer is illegal")}switch(this.sharingPolicy){case 0:if(handle.$$.smartPtrType===this){ptr=handle.$$.smartPtr}else{throwBindingError("Cannot convert argument of type "+(handle.$$.smartPtrType?handle.$$.smartPtrType.name:handle.$$.ptrType.name)+" to parameter type "+this.name)}break;case 1:ptr=handle.$$.smartPtr;break;case 2:if(handle.$$.smartPtrType===this){ptr=handle.$$.smartPtr}else{var clonedHandle=handle["clone"]();ptr=this.rawShare(ptr,__emval_register(function(){clonedHandle["delete"]()}));if(destructors!==null){destructors.push(this.rawDestructor,ptr)}}break;default:throwBindingError("Unsupporting sharing policy")}}return ptr}function nonConstNoSmartPtrRawPointerToWireType(destructors,handle){if(handle===null){if(this.isReference){throwBindingError("null is not a valid "+this.name)}return 0}if(!handle.$$){throwBindingError('Cannot pass "'+_embind_repr(handle)+'" as a '+this.name)}if(!handle.$$.ptr){throwBindingError("Cannot pass deleted object as a pointer of type "+this.name)}if(handle.$$.ptrType.isConst){throwBindingError("Cannot convert argument of type "+handle.$$.ptrType.name+" to parameter type "+this.name)}var handleClass=handle.$$.ptrType.registeredClass;var ptr=upcastPointer(handle.$$.ptr,handleClass,this.registeredClass);return ptr}function RegisteredPointer_getPointee(ptr){if(this.rawGetPointee){ptr=this.rawGetPointee(ptr)}return ptr}function RegisteredPointer_destructor(ptr){if(this.rawDestructor){this.rawDestructor(ptr)}}function RegisteredPointer_deleteObject(handle){if(handle!==null){handle["delete"]()}}function downcastPointer(ptr,ptrClass,desiredClass){if(ptrClass===desiredClass){return ptr}if(undefined===desiredClass.baseClass){return null}var rv=downcastPointer(ptr,ptrClass,desiredClass.baseClass);if(rv===null){return null}return desiredClass.downcast(rv)}function getInheritedInstanceCount(){return Object.keys(registeredInstances).length}function getLiveInheritedInstances(){var rv=[];for(var k in registeredInstances){if(registeredInstances.hasOwnProperty(k)){rv.push(registeredInstances[k])}}return rv}function setDelayFunction(fn){delayFunction=fn;if(deletionQueue.length&&delayFunction){delayFunction(flushPendingDeletes)}}function init_embind(){Module["getInheritedInstanceCount"]=getInheritedInstanceCount;Module["getLiveInheritedInstances"]=getLiveInheritedInstances;Module["flushPendingDeletes"]=flushPendingDeletes;Module["setDelayFunction"]=setDelayFunction}var registeredInstances={};function getBasestPointer(class_,ptr){if(ptr===undefined){throwBindingError("ptr should not be undefined")}while(class_.baseClass){ptr=class_.upcast(ptr);class_=class_.baseClass}return ptr}function getInheritedInstance(class_,ptr){ptr=getBasestPointer(class_,ptr);return registeredInstances[ptr]}function makeClassHandle(prototype,record){if(!record.ptrType||!record.ptr){throwInternalError("makeClassHandle requires ptr and ptrType")}var hasSmartPtrType=!!record.smartPtrType;var hasSmartPtr=!!record.smartPtr;if(hasSmartPtrType!==hasSmartPtr){throwInternalError("Both smartPtrType and smartPtr must be specified")}record.count={value:1};return attachFinalizer(Object.create(prototype,{$$:{value:record}}))}function RegisteredPointer_fromWireType(ptr){var rawPointer=this.getPointee(ptr);if(!rawPointer){this.destructor(ptr);return null}var registeredInstance=getInheritedInstance(this.registeredClass,rawPointer);if(undefined!==registeredInstance){if(0===registeredInstance.$$.count.value){registeredInstance.$$.ptr=rawPointer;registeredInstance.$$.smartPtr=ptr;return registeredInstance["clone"]()}else{var rv=registeredInstance["clone"]();this.destructor(ptr);return rv}}function makeDefaultHandle(){if(this.isSmartPointer){return makeClassHandle(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:rawPointer,smartPtrType:this,smartPtr:ptr})}else{return makeClassHandle(this.registeredClass.instancePrototype,{ptrType:this,ptr:ptr})}}var actualType=this.registeredClass.getActualType(rawPointer);var registeredPointerRecord=registeredPointers[actualType];if(!registeredPointerRecord){return makeDefaultHandle.call(this)}var toType;if(this.isConst){toType=registeredPointerRecord.constPointerType}else{toType=registeredPointerRecord.pointerType}var dp=downcastPointer(rawPointer,this.registeredClass,toType.registeredClass);if(dp===null){return makeDefaultHandle.call(this)}if(this.isSmartPointer){return makeClassHandle(toType.registeredClass.instancePrototype,{ptrType:toType,ptr:dp,smartPtrType:this,smartPtr:ptr})}else{return makeClassHandle(toType.registeredClass.instancePrototype,{ptrType:toType,ptr:dp})}}function init_RegisteredPointer(){RegisteredPointer.prototype.getPointee=RegisteredPointer_getPointee;RegisteredPointer.prototype.destructor=RegisteredPointer_destructor;RegisteredPointer.prototype["argPackAdvance"]=8;RegisteredPointer.prototype["readValueFromPointer"]=simpleReadValueFromPointer;RegisteredPointer.prototype["deleteObject"]=RegisteredPointer_deleteObject;RegisteredPointer.prototype["fromWireType"]=RegisteredPointer_fromWireType}function RegisteredPointer(name,registeredClass,isReference,isConst,isSmartPointer,pointeeType,sharingPolicy,rawGetPointee,rawConstructor,rawShare,rawDestructor){this.name=name;this.registeredClass=registeredClass;this.isReference=isReference;this.isConst=isConst;this.isSmartPointer=isSmartPointer;this.pointeeType=pointeeType;this.sharingPolicy=sharingPolicy;this.rawGetPointee=rawGetPointee;this.rawConstructor=rawConstructor;this.rawShare=rawShare;this.rawDestructor=rawDestructor;if(!isSmartPointer&®isteredClass.baseClass===undefined){if(isConst){this["toWireType"]=constNoSmartPtrRawPointerToWireType;this.destructorFunction=null}else{this["toWireType"]=nonConstNoSmartPtrRawPointerToWireType;this.destructorFunction=null}}else{this["toWireType"]=genericPointerToWireType}}function replacePublicSymbol(name,value,numArguments){if(!Module.hasOwnProperty(name)){throwInternalError("Replacing nonexistant public symbol")}if(undefined!==Module[name].overloadTable&&undefined!==numArguments){Module[name].overloadTable[numArguments]=value}else{Module[name]=value;Module[name].argCount=numArguments}}function dynCallLegacy(sig,ptr,args){if(args&&args.length){return Module["dynCall_"+sig].apply(null,[ptr].concat(args))}return Module["dynCall_"+sig].call(null,ptr)}function dynCall(sig,ptr,args){if(sig.indexOf("j")!=-1){return dynCallLegacy(sig,ptr,args)}return wasmTable.get(ptr).apply(null,args)}function getDynCaller(sig,ptr){assert(sig.indexOf("j")>=0,"getDynCaller should only be called with i64 sigs");var argCache=[];return function(){argCache.length=arguments.length;for(var i=0;i>2)+i])}return array}function __embind_register_class_constructor(rawClassType,argCount,rawArgTypesAddr,invokerSignature,invoker,rawConstructor){assert(argCount>0);var rawArgTypes=heap32VectorToArray(argCount,rawArgTypesAddr);invoker=embind__requireFunction(invokerSignature,invoker);var args=[rawConstructor];var destructors=[];whenDependentTypesAreResolved([],[rawClassType],function(classType){classType=classType[0];var humanName="constructor "+classType.name;if(undefined===classType.registeredClass.constructor_body){classType.registeredClass.constructor_body=[]}if(undefined!==classType.registeredClass.constructor_body[argCount-1]){throw new BindingError("Cannot register multiple constructors with identical number of parameters ("+(argCount-1)+") for class '"+classType.name+"'! Overload resolution is currently only performed using the parameter count, not actual type info!")}classType.registeredClass.constructor_body[argCount-1]=function unboundTypeHandler(){throwUnboundTypeError("Cannot construct "+classType.name+" due to unbound types",rawArgTypes)};whenDependentTypesAreResolved([],rawArgTypes,function(argTypes){classType.registeredClass.constructor_body[argCount-1]=function constructor_body(){if(arguments.length!==argCount-1){throwBindingError(humanName+" called with "+arguments.length+" arguments, expected "+(argCount-1))}destructors.length=0;args.length=argCount;for(var i=1;i0?", ":"")+argsListWired}invokerFnBody+=(returns?"var rv = ":"")+"invoker(fn"+(argsListWired.length>0?", ":"")+argsListWired+");\n";if(needsDestructorStack){invokerFnBody+="runDestructors(destructors);\n"}else{for(var i=isClassMethodFunc?1:2;i4&&0===--emval_handle_array[handle].refcount){emval_handle_array[handle]=undefined;emval_free_list.push(handle)}}function count_emval_handles(){var count=0;for(var i=5;i>1])};case 2:return function(pointer){var heap=signed?HEAP32:HEAPU32;return this["fromWireType"](heap[pointer>>2])};default:throw new TypeError("Unknown integer type: "+name)}}function __embind_register_enum(rawType,name,size,isSigned){var shift=getShiftFromSize(size);name=readLatin1String(name);function ctor(){}ctor.values={};registerType(rawType,{name:name,constructor:ctor,"fromWireType":function(c){return this.constructor.values[c]},"toWireType":function(destructors,c){return c.value},"argPackAdvance":8,"readValueFromPointer":enumReadValueFromPointer(name,shift,isSigned),destructorFunction:null});exposePublicSymbol(name,ctor)}function requireRegisteredType(rawType,humanName){var impl=registeredTypes[rawType];if(undefined===impl){throwBindingError(humanName+" has unknown type "+getTypeName(rawType))}return impl}function __embind_register_enum_value(rawEnumType,name,enumValue){var enumType=requireRegisteredType(rawEnumType,"enum");name=readLatin1String(name);var Enum=enumType.constructor;var Value=Object.create(enumType.constructor.prototype,{value:{value:enumValue},constructor:{value:createNamedFunction(enumType.name+"_"+name,function(){})}});Enum.values[enumValue]=Value;Enum[name]=Value}function _embind_repr(v){if(v===null){return"null"}var t=typeof v;if(t==="object"||t==="array"||t==="function"){return v.toString()}else{return""+v}}function floatReadValueFromPointer(name,shift){switch(shift){case 2:return function(pointer){return this["fromWireType"](HEAPF32[pointer>>2])};case 3:return function(pointer){return this["fromWireType"](HEAPF64[pointer>>3])};default:throw new TypeError("Unknown float type: "+name)}}function __embind_register_float(rawType,name,size){var shift=getShiftFromSize(size);name=readLatin1String(name);registerType(rawType,{name:name,"fromWireType":function(value){return value},"toWireType":function(destructors,value){if(typeof value!=="number"&&typeof value!=="boolean"){throw new TypeError('Cannot convert "'+_embind_repr(value)+'" to '+this.name)}return value},"argPackAdvance":8,"readValueFromPointer":floatReadValueFromPointer(name,shift),destructorFunction:null})}function __embind_register_function(name,argCount,rawArgTypesAddr,signature,rawInvoker,fn){var argTypes=heap32VectorToArray(argCount,rawArgTypesAddr);name=readLatin1String(name);rawInvoker=embind__requireFunction(signature,rawInvoker);exposePublicSymbol(name,function(){throwUnboundTypeError("Cannot call "+name+" due to unbound types",argTypes)},argCount-1);whenDependentTypesAreResolved([],argTypes,function(argTypes){var invokerArgsArray=[argTypes[0],null].concat(argTypes.slice(1));replacePublicSymbol(name,craftInvokerFunction(name,invokerArgsArray,null,rawInvoker,fn),argCount-1);return[]})}function integerReadValueFromPointer(name,shift,signed){switch(shift){case 0:return signed?function readS8FromPointer(pointer){return HEAP8[pointer]}:function readU8FromPointer(pointer){return HEAPU8[pointer]};case 1:return signed?function readS16FromPointer(pointer){return HEAP16[pointer>>1]}:function readU16FromPointer(pointer){return HEAPU16[pointer>>1]};case 2:return signed?function readS32FromPointer(pointer){return HEAP32[pointer>>2]}:function readU32FromPointer(pointer){return HEAPU32[pointer>>2]};default:throw new TypeError("Unknown integer type: "+name)}}function __embind_register_integer(primitiveType,name,size,minRange,maxRange){name=readLatin1String(name);if(maxRange===-1){maxRange=4294967295}var shift=getShiftFromSize(size);var fromWireType=function(value){return value};if(minRange===0){var bitshift=32-8*size;fromWireType=function(value){return value<>>bitshift}}var isUnsignedType=name.indexOf("unsigned")!=-1;registerType(primitiveType,{name:name,"fromWireType":fromWireType,"toWireType":function(destructors,value){if(typeof value!=="number"&&typeof value!=="boolean"){throw new TypeError('Cannot convert "'+_embind_repr(value)+'" to '+this.name)}if(valuemaxRange){throw new TypeError('Passing a number "'+_embind_repr(value)+'" from JS side to C/C++ side to an argument of type "'+name+'", which is outside the valid range ['+minRange+", "+maxRange+"]!")}return isUnsignedType?value>>>0:value|0},"argPackAdvance":8,"readValueFromPointer":integerReadValueFromPointer(name,shift,minRange!==0),destructorFunction:null})}function __embind_register_memory_view(rawType,dataTypeIndex,name){var typeMapping=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array];var TA=typeMapping[dataTypeIndex];function decodeMemoryView(handle){handle=handle>>2;var heap=HEAPU32;var size=heap[handle];var data=heap[handle+1];return new TA(buffer,data,size)}name=readLatin1String(name);registerType(rawType,{name:name,"fromWireType":decodeMemoryView,"argPackAdvance":8,"readValueFromPointer":decodeMemoryView},{ignoreDuplicateRegistrations:true})}function __embind_register_std_string(rawType,name){name=readLatin1String(name);var stdStringIsUTF8=name==="std::string";registerType(rawType,{name:name,"fromWireType":function(value){var length=HEAPU32[value>>2];var str;if(stdStringIsUTF8){var decodeStartPtr=value+4;for(var i=0;i<=length;++i){var currentBytePtr=value+4+i;if(i==length||HEAPU8[currentBytePtr]==0){var maxRead=currentBytePtr-decodeStartPtr;var stringSegment=UTF8ToString(decodeStartPtr,maxRead);if(str===undefined){str=stringSegment}else{str+=String.fromCharCode(0);str+=stringSegment}decodeStartPtr=currentBytePtr+1}}}else{var a=new Array(length);for(var i=0;i>2]=length;if(stdStringIsUTF8&&valueIsOfTypeString){stringToUTF8(value,ptr+4,length+1)}else{if(valueIsOfTypeString){for(var i=0;i255){_free(ptr);throwBindingError("String has UTF-16 code units that do not fit in 8 bits")}HEAPU8[ptr+4+i]=charCode}}else{for(var i=0;i>2];var HEAP=getHeap();var str;var decodeStartPtr=value+4;for(var i=0;i<=length;++i){var currentBytePtr=value+4+i*charSize;if(i==length||HEAP[currentBytePtr>>shift]==0){var maxReadBytes=currentBytePtr-decodeStartPtr;var stringSegment=decodeString(decodeStartPtr,maxReadBytes);if(str===undefined){str=stringSegment}else{str+=String.fromCharCode(0);str+=stringSegment}decodeStartPtr=currentBytePtr+charSize}}_free(value);return str},"toWireType":function(destructors,value){if(!(typeof value==="string")){throwBindingError("Cannot pass non-string to C++ string type "+name)}var length=lengthBytesUTF(value);var ptr=_malloc(4+length+charSize);HEAPU32[ptr>>2]=length>>shift;encodeString(value,ptr+4,length+charSize);if(destructors!==null){destructors.push(_free,ptr)}return ptr},"argPackAdvance":8,"readValueFromPointer":simpleReadValueFromPointer,destructorFunction:function(ptr){_free(ptr)}})}function __embind_register_value_object(rawType,name,constructorSignature,rawConstructor,destructorSignature,rawDestructor){structRegistrations[rawType]={name:readLatin1String(name),rawConstructor:embind__requireFunction(constructorSignature,rawConstructor),rawDestructor:embind__requireFunction(destructorSignature,rawDestructor),fields:[]}}function __embind_register_value_object_field(structType,fieldName,getterReturnType,getterSignature,getter,getterContext,setterArgumentType,setterSignature,setter,setterContext){structRegistrations[structType].fields.push({fieldName:readLatin1String(fieldName),getterReturnType:getterReturnType,getter:embind__requireFunction(getterSignature,getter),getterContext:getterContext,setterArgumentType:setterArgumentType,setter:embind__requireFunction(setterSignature,setter),setterContext:setterContext})}function __embind_register_void(rawType,name){name=readLatin1String(name);registerType(rawType,{isVoid:true,name:name,"argPackAdvance":0,"fromWireType":function(){return undefined},"toWireType":function(destructors,o){return undefined}})}function requireHandle(handle){if(!handle){throwBindingError("Cannot use deleted val. handle = "+handle)}return emval_handle_array[handle].value}function __emval_as(handle,returnType,destructorsRef){handle=requireHandle(handle);returnType=requireRegisteredType(returnType,"emval::as");var destructors=[];var rd=__emval_register(destructors);HEAP32[destructorsRef>>2]=rd;return returnType["toWireType"](destructors,handle)}var emval_symbols={};function getStringOrSymbol(address){var symbol=emval_symbols[address];if(symbol===undefined){return readLatin1String(address)}else{return symbol}}var emval_methodCallers=[];function __emval_call_void_method(caller,handle,methodName,args){caller=emval_methodCallers[caller];handle=requireHandle(handle);methodName=getStringOrSymbol(methodName);caller(handle,methodName,null,args)}function emval_get_global(){if(typeof globalThis==="object"){return globalThis}return function(){return Function}()("return this")()}function __emval_get_global(name){if(name===0){return __emval_register(emval_get_global())}else{name=getStringOrSymbol(name);return __emval_register(emval_get_global()[name])}}function __emval_addMethodCaller(caller){var id=emval_methodCallers.length;emval_methodCallers.push(caller);return id}function __emval_lookupTypes(argCount,argTypes){var a=new Array(argCount);for(var i=0;i>2)+i],"parameter "+i)}return a}function __emval_get_method_caller(argCount,argTypes){var types=__emval_lookupTypes(argCount,argTypes);var retType=types[0];var signatureName=retType.name+"_$"+types.slice(1).map(function(t){return t.name}).join("_")+"$";var params=["retType"];var args=[retType];var argsList="";for(var i=0;i4){emval_handle_array[handle].refcount+=1}}function craftEmvalAllocator(argCount){var argsList="";for(var i=0;i>> 2) + "+i+'], "parameter '+i+'");\n'+"var arg"+i+" = argType"+i+".readValueFromPointer(args);\n"+"args += argType"+i+"['argPackAdvance'];\n"}functionBody+="var obj = new constructor("+argsList+");\n"+"return __emval_register(obj);\n"+"}\n";return new Function("requireRegisteredType","Module","__emval_register",functionBody)(requireRegisteredType,Module,__emval_register)}var emval_newers={};function __emval_new(handle,argCount,argTypes,args){handle=requireHandle(handle);var newer=emval_newers[argCount];if(!newer){newer=craftEmvalAllocator(argCount);emval_newers[argCount]=newer}return newer(handle,argTypes,args)}function __emval_new_cstring(v){return __emval_register(getStringOrSymbol(v))}function __emval_run_destructors(handle){var destructors=emval_handle_array[handle].value;runDestructors(destructors);__emval_decref(handle)}function _abort(){abort()}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function _emscripten_get_heap_size(){return HEAPU8.length}function emscripten_realloc_buffer(size){try{wasmMemory.grow(size-buffer.byteLength+65535>>>16);updateGlobalBufferAndViews(wasmMemory.buffer);return 1}catch(e){}}function _emscripten_resize_heap(requestedSize){requestedSize=requestedSize>>>0;var oldSize=_emscripten_get_heap_size();var maxHeapSize=2147483648;if(requestedSize>maxHeapSize){return false}var minHeapSize=16777216;for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignUp(Math.max(minHeapSize,requestedSize,overGrownHeapSize),65536));var replacement=emscripten_realloc_buffer(newSize);if(replacement){return true}}return false}var SYSCALLS={mappings:{},buffers:[null,[],[]],printChar:function(stream,curr){var buffer=SYSCALLS.buffers[stream];if(curr===0||curr===10){(stream===1?out:err)(UTF8ArrayToString(buffer,0));buffer.length=0}else{buffer.push(curr)}},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},get64:function(low,high){return low}};function _fd_close(fd){return 0}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){}function _fd_write(fd,iov,iovcnt,pnum){var num=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];for(var j=0;j>2]=num;return 0}function _setTempRet0($i){setTempRet0($i|0)}InternalError=Module["InternalError"]=extendError(Error,"InternalError");embind_init_charCodes();BindingError=Module["BindingError"]=extendError(Error,"BindingError");init_ClassHandle();init_RegisteredPointer();init_embind();UnboundTypeError=Module["UnboundTypeError"]=extendError(Error,"UnboundTypeError");init_emval();__ATINIT__.push({func:function(){___wasm_call_ctors()}});var asmLibraryArg={"t":__embind_finalize_value_object,"I":__embind_register_bool,"x":__embind_register_class,"w":__embind_register_class_constructor,"d":__embind_register_class_function,"k":__embind_register_constant,"H":__embind_register_emval,"n":__embind_register_enum,"a":__embind_register_enum_value,"A":__embind_register_float,"i":__embind_register_function,"j":__embind_register_integer,"h":__embind_register_memory_view,"B":__embind_register_std_string,"v":__embind_register_std_wstring,"u":__embind_register_value_object,"c":__embind_register_value_object_field,"J":__embind_register_void,"m":__emval_as,"s":__emval_call_void_method,"b":__emval_decref,"y":__emval_get_global,"p":__emval_get_method_caller,"r":__emval_get_module_property,"e":__emval_get_property,"g":__emval_incref,"q":__emval_new,"f":__emval_new_cstring,"l":__emval_run_destructors,"o":_abort,"E":_emscripten_memcpy_big,"F":_emscripten_resize_heap,"G":_fd_close,"C":_fd_seek,"z":_fd_write,"D":_setTempRet0};var asm=createWasm();var ___wasm_call_ctors=Module["___wasm_call_ctors"]=function(){return(___wasm_call_ctors=Module["___wasm_call_ctors"]=Module["asm"]["M"]).apply(null,arguments)};var _malloc=Module["_malloc"]=function(){return(_malloc=Module["_malloc"]=Module["asm"]["N"]).apply(null,arguments)};var _free=Module["_free"]=function(){return(_free=Module["_free"]=Module["asm"]["O"]).apply(null,arguments)};var ___getTypeName=Module["___getTypeName"]=function(){return(___getTypeName=Module["___getTypeName"]=Module["asm"]["P"]).apply(null,arguments)};var ___embind_register_native_and_builtin_types=Module["___embind_register_native_and_builtin_types"]=function(){return(___embind_register_native_and_builtin_types=Module["___embind_register_native_and_builtin_types"]=Module["asm"]["Q"]).apply(null,arguments)};var dynCall_jiji=Module["dynCall_jiji"]=function(){return(dynCall_jiji=Module["dynCall_jiji"]=Module["asm"]["R"]).apply(null,arguments)};var calledRun;function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function run(args){args=args||arguments_;if(runDependencies>0){return}preRun();if(runDependencies>0)return;function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();preMain();readyPromiseResolve(Module);if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}noExitRuntime=true;run(); return BASIS.ready } ); })(); if (typeof exports === 'object' && typeof module === 'object') module.exports = BASIS; else if (typeof define === 'function' && define['amd']) define([], function() { return BASIS; }); else if (typeof exports === 'object') exports["BASIS"] = BASIS; ================================================ FILE: packages/sdk/public/libs/draco/draco_decoder.js ================================================ var DracoDecoderModule = (() => { var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined; if (typeof __filename !== 'undefined') _scriptDir = _scriptDir || __filename; return ( function(DracoDecoderModule = {}) { var Module=typeof DracoDecoderModule!="undefined"?DracoDecoderModule:{};var readyPromiseResolve,readyPromiseReject;Module["ready"]=new Promise(function(resolve,reject){readyPromiseResolve=resolve;readyPromiseReject=reject});var isRuntimeInitialized=false;var isModuleParsed=false;Module["onRuntimeInitialized"]=function(){isRuntimeInitialized=true;if(isModuleParsed){if(typeof Module["onModuleLoaded"]==="function"){Module["onModuleLoaded"](Module)}}};Module["onModuleParsed"]=function(){isModuleParsed=true;if(isRuntimeInitialized){if(typeof Module["onModuleLoaded"]==="function"){Module["onModuleLoaded"](Module)}}};function isVersionSupported(versionString){if(typeof versionString!=="string")return false;const version=versionString.split(".");if(version.length<2||version.length>3)return false;if(version[0]==1&&version[1]>=0&&version[1]<=5)return true;if(version[0]!=0||version[1]>10)return false;return true}Module["isVersionSupported"]=isVersionSupported;var moduleOverrides=Object.assign({},Module);var arguments_=[];var thisProgram="./this.program";var quit_=(status,toThrow)=>{throw toThrow};var ENVIRONMENT_IS_WEB=typeof window=="object";var ENVIRONMENT_IS_WORKER=typeof importScripts=="function";var ENVIRONMENT_IS_NODE=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string";var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;function logExceptionOnExit(e){if(e instanceof ExitStatus)return;let toLog=e;err("exiting due to exception: "+toLog)}if(ENVIRONMENT_IS_NODE){var fs=require("fs");var nodePath=require("path");if(ENVIRONMENT_IS_WORKER){scriptDirectory=nodePath.dirname(scriptDirectory)+"/"}else{scriptDirectory=__dirname+"/"}read_=(filename,binary)=>{var ret=tryParseAsDataURI(filename);if(ret){return binary?ret:ret.toString()}filename=isFileURI(filename)?new URL(filename):nodePath.normalize(filename);return fs.readFileSync(filename,binary?undefined:"utf8")};readBinary=filename=>{var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}return ret};readAsync=(filename,onload,onerror)=>{var ret=tryParseAsDataURI(filename);if(ret){onload(ret)}filename=isFileURI(filename)?new URL(filename):nodePath.normalize(filename);fs.readFile(filename,function(err,data){if(err)onerror(err);else onload(data.buffer)})};if(process["argv"].length>1){thisProgram=process["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);quit_=(status,toThrow)=>{if(keepRuntimeAlive()){process["exitCode"]=status;throw toThrow}logExceptionOnExit(toThrow);process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(_scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.replace(/[?#].*/,"").lastIndexOf("/")+1)}else{scriptDirectory=""}{read_=url=>{try{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText}catch(err){var data=tryParseAsDataURI(url);if(data){return intArrayToString(data)}throw err}};if(ENVIRONMENT_IS_WORKER){readBinary=url=>{try{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}catch(err){var data=tryParseAsDataURI(url);if(data){return data}throw err}}}readAsync=(url,onload,onerror)=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=()=>{if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}var data=tryParseAsDataURI(url);if(data){onload(data.buffer);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=title=>document.title=title}else{}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);Object.assign(Module,moduleOverrides);moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||true;var WebAssembly={Memory:function(opts){this.buffer=new ArrayBuffer(opts["initial"]*65536)},Module:function(binary){},Instance:function(module,info){this.exports=( // EMSCRIPTEN_START_ASM function instantiate(na){function c(d){d.set=function(a,b){this[a]=b};d.get=function(a){return this[a]};return d}var e;var f=new Uint8Array(123);for(var a=25;a>=0;--a){f[48+a]=52+a;f[65+a]=a;f[97+a]=26+a}f[43]=62;f[47]=63;function l(m,n,o){var g,h,a=0,i=n,j=o.length,k=n+(j*3>>2)-(o[j-2]=="=")-(o[j-1]=="=");for(;a>4;if(i>2;if(i>2];s=H[b+12>>2];d=H[b+20>>2];e=H[b+16>>2];g=e+4|0;d=g>>>0<4?d+1|0:d;a:{b:{c:{if(g>>>0>k>>>0&(d|0)>=(s|0)|(d|0)>(s|0)){break c}d=e+H[b>>2]|0;H[a>>2]=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);d=H[b+20>>2];k=d;g=H[b+16>>2];e=g+4|0;d=e>>>0<4?d+1|0:d;H[b+16>>2]=e;H[b+20>>2]=d;if(K[a>>2]>31){break c}s=H[b+8>>2];y=H[b+12>>2];d=k;g=g+8|0;d=g>>>0<8?d+1|0:d;if(g>>>0>s>>>0&(d|0)>=(y|0)|(d|0)>(y|0)){break c}d=e+H[b>>2]|0;H[a+4>>2]=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);d=H[b+20>>2];k=d;g=H[b+16>>2];e=g+4|0;d=e>>>0<4?d+1|0:d;H[b+16>>2]=e;H[b+20>>2]=d;s=H[b+8>>2];y=H[b+12>>2];d=k;g=g+8|0;d=g>>>0<8?d+1|0:d;if(g>>>0>s>>>0&(d|0)>=(y|0)|(d|0)>(y|0)){break c}d=e+H[b>>2]|0;H[a+12>>2]=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);d=H[b+20>>2];k=d;g=H[b+16>>2];e=g+4|0;d=e>>>0<4?d+1|0:d;H[b+16>>2]=e;H[b+20>>2]=d;d=H[a+20>>2];x=H[a+12>>2];if((x|0)!=(d|0)?d:0){break c}s=H[b+8>>2];y=H[b+12>>2];d=k;g=g+8|0;d=g>>>0<8?d+1|0:d;if(g>>>0>s>>>0&(d|0)>=(y|0)|(d|0)>(y|0)){break c}d=e+H[b>>2]|0;e=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);H[a+16>>2]=e;g=H[b+20>>2];d=H[b+16>>2]+4|0;g=d>>>0<4?g+1|0:g;H[b+16>>2]=d;H[b+20>>2]=g;if(e>>>0>=7){H[B>>2]=e;Qd(1713,B);break c}H[B+664>>2]=c;d:{if(!x){break d}e:{k=H[c>>2];if(x>>>0<=(H[c+8>>2]-k|0)/12>>>0){break e}if(x>>>0<357913942){l=H[c+4>>2];d=N(x,12);e=pa(d);g=d+e|0;e=e+N((l-k|0)/12|0,12)|0;d=e;if((k|0)!=(l|0)){while(1){d=d-12|0;l=l-12|0;H[d>>2]=H[l>>2];H[d+4>>2]=H[l+4>>2];H[d+8>>2]=H[l+8>>2];if((k|0)!=(l|0)){continue}break}}H[c+8>>2]=g;H[c+4>>2]=e;H[c>>2]=d;if(!k){break e}oa(k);break e}break b}f:{switch(H[a+16>>2]){case 0:i=wb(B+8|0,3);z=B+664|0;k=H[b+8>>2];n=H[b+12>>2];d=H[b+20>>2];e=H[b+16>>2];g=e+4|0;d=g>>>0<4?d+1|0:d;g:{if(g>>>0>k>>>0&(d|0)>=(n|0)|(d|0)>(n|0)){break g}d=e+H[b>>2]|0;H[i>>2]=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);d=H[b+20>>2];k=d;g=H[b+16>>2];e=g+4|0;d=e>>>0<4?d+1|0:d;H[b+16>>2]=e;H[b+20>>2]=d;if(K[i>>2]>32){break g}n=H[b+8>>2];s=H[b+12>>2];d=k;g=g+8|0;d=g>>>0<8?d+1|0:d;if(g>>>0>n>>>0&(d|0)>=(s|0)|(d|0)>(s|0)){break g}d=e+H[b>>2]|0;e=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);H[i+4>>2]=e;g=H[b+20>>2];d=H[b+16>>2]+4|0;g=d>>>0<4?g+1|0:g;H[b+16>>2]=d;H[b+20>>2]=g;if(!e){break g}H[i+8>>2]=0;if(!ua(i+16|0,b)){break g}if(!ua(i+36|0,b)){break g}if(!ua(i+56|0,b)){break g}if(!ua(i+76|0,b)){break g}A=H[i+4>>2];d=0;g=0;f=ca-32|0;ca=f;m=H[i+12>>2];H[f+16>>2]=0;H[f+8>>2]=0;H[f+12>>2]=0;if(m){if(m>>>0>=1073741824){break b}b=m<<2;g=pa(b);H[f+8>>2]=g;d=b+g|0;H[f+16>>2]=d;ra(g,0,b);H[f+12>>2]=d}e=H[i+120>>2];b=H[e>>2];if(b){H[e+4>>2]=b;oa(b);m=H[i+12>>2];g=H[f+8>>2];d=H[f+12>>2]}H[e+4>>2]=d;H[e>>2]=g;H[e+8>>2]=H[f+16>>2];g=0;H[f+16>>2]=0;H[f+8>>2]=0;H[f+12>>2]=0;h:{if(m){if(m>>>0>=1073741824){break b}b=m<<2;w=pa(b);H[f+8>>2]=w;g=b+w|0;H[f+16>>2]=g;ra(w,0,b);H[f+12>>2]=g}d=H[i+132>>2];b=H[d>>2];if(b){H[d+4>>2]=b;oa(b);w=H[f+8>>2];g=H[f+12>>2]}H[d+4>>2]=g;H[d>>2]=w;H[d+8>>2]=H[f+16>>2];H[f+24>>2]=0;H[f+28>>2]=0;H[f+16>>2]=0;H[f+20>>2]=0;H[f+8>>2]=0;H[f+12>>2]=0;xa(f+8|0);d=H[f+24>>2]+H[f+28>>2]|0;b=(d>>>0)/341|0;b=H[H[f+12>>2]+(b<<2)>>2]+N(d-N(b,341)|0,12)|0;H[b+4>>2]=0;H[b+8>>2]=0;H[b>>2]=A;m=H[f+28>>2]+1|0;H[f+28>>2]=m;i:{if(!m){break i}y=i+96|0;while(1){n=H[f+12>>2];g=H[f+24>>2];e=m-1|0;d=g+e|0;b=(d>>>0)/341|0;b=H[n+(b<<2)>>2]+N(d-N(b,341)|0,12)|0;o=H[b+8>>2];k=H[b+4>>2];t=H[b>>2];H[f+28>>2]=e;b=H[f+16>>2];if((((b|0)!=(n|0)?N(b-n>>2,341)-1|0:0)-(g+m|0)|0)+1>>>0>=682){oa(H[b-4>>2]);H[f+16>>2]=H[f+16>>2]-4}b=0;if(t>>>0>A>>>0){break i}d=H[i+12>>2];m=(k|0)!=(d-1|0)?k+1|0:0;if(m>>>0>=d>>>0){break i}q=N(o,12);p=q+H[i+132>>2]|0;l=q+H[i+120>>2]|0;g=H[i>>2];r=m<<2;e=H[r+H[p>>2]>>2];j:{k:{if((g|0)==(e|0)){if(!t){break k}while(1){d=H[l>>2];x=H[d+8>>2];s=H[d+4>>2];n=H[d>>2];q=H[z>>2];m=H[q+4>>2];d=H[q+8>>2];l:{if(m>>>0>>0){H[m+8>>2]=x;H[m+4>>2]=s;H[m>>2]=n;H[q+4>>2]=m+12;break l}r=H[q>>2];g=(m-r|0)/12|0;k=g+1|0;if(k>>>0>=357913942){break b}e=(d-r|0)/12|0;d=e<<1;k=e>>>0>=178956970?357913941:d>>>0>k>>>0?d:k;if(k){if(k>>>0>=357913942){break a}d=pa(N(k,12))}else{d=0}w=d+N(g,12)|0;H[w+8>>2]=x;H[w+4>>2]=s;H[w>>2]=n;e=w+12|0;if((m|0)!=(r|0)){while(1){w=w-12|0;m=m-12|0;H[w>>2]=H[m>>2];H[w+4>>2]=H[m+4>>2];H[w+8>>2]=H[m+8>>2];if((m|0)!=(r|0)){continue}break}}H[q+8>>2]=d+N(k,12);H[q+4>>2]=e;H[q>>2]=w;if(!r){break l}oa(r)}H[i+8>>2]=H[i+8>>2]+1;b=b+1|0;if((t|0)!=(b|0)){continue}break}break k}m:{n:{o:{p:{if(t>>>0<=2){d=H[i+108>>2];H[d>>2]=m;w=1;g=H[i+12>>2];if(g>>>0>1){break p}break m}if(K[i+8>>2]>K[i+4>>2]){break i}b=H[i+120>>2];s=o+1|0;x=N(s,12);d=b+x|0;if((d|0)!=(l|0)){Aa(d,H[l>>2],H[l+4>>2]);b=H[i+120>>2]}b=r+H[b+x>>2]|0;H[b>>2]=H[b>>2]+(1<>2];e=32-k|0;q:{if((n|0)<=(e|0)){e=H[i+28>>2];if((e|0)==H[i+20>>2]){break o}d=H[e>>2];b=k+n|0;H[i+32>>2]=b;w=d<>>32-n|0;if((b|0)!=32){break q}H[i+32>>2]=0;H[i+28>>2]=e+4;break q}g=H[i+28>>2];b=g+4|0;if((b|0)==H[i+20>>2]){break o}d=H[g>>2];H[i+28>>2]=b;b=n-e|0;H[i+32>>2]=b;w=H[g+4>>2]>>>32-b|d<>>32-n}d=t>>>1|0;if(w>>>0>d>>>0){break i}break n}while(1){m=(g-1|0)!=(m|0)?m+1|0:0;H[d+(w<<2)>>2]=m;g=H[i+12>>2];w=w+1|0;if(g>>>0>w>>>0){continue}break}break m}d=t>>>1|0;w=0}r:{s:{e=d-w|0;b=t-e|0;t:{if((b|0)==(e|0)){b=e;break t}n=H[i+88>>2];if((n|0)==H[i+80>>2]){break s}k=H[n>>2];g=H[i+92>>2];d=g+1|0;H[i+92>>2]=d;g=k&-2147483648>>>g;u:{if((d|0)==32){H[i+92>>2]=0;H[i+88>>2]=n+4;if(g){break u}break s}if(!g){break s}}}d=b;b=e;break r}d=e}n=H[i+132>>2];k=n+q|0;g=H[k>>2];e=g+r|0;H[e>>2]=H[e>>2]+1;Aa(n+x|0,g,H[k+4>>2]);if(b){g=H[f+28>>2]+H[f+24>>2]|0;e=H[f+16>>2];w=H[f+12>>2];if((g|0)==(((e|0)!=(w|0)?N(e-w>>2,341)-1|0:0)|0)){xa(f+8|0);w=H[f+12>>2];g=H[f+24>>2]+H[f+28>>2]|0}e=(g>>>0)/341|0;e=H[(e<<2)+w>>2]+N(g-N(e,341)|0,12)|0;H[e+8>>2]=o;H[e+4>>2]=m;H[e>>2]=b;H[f+28>>2]=H[f+28>>2]+1}if(!d){break k}g=H[f+28>>2]+H[f+24>>2]|0;b=H[f+16>>2];w=H[f+12>>2];if((g|0)==(((b|0)!=(w|0)?N(b-w>>2,341)-1|0:0)|0)){xa(f+8|0);w=H[f+12>>2];g=H[f+24>>2]+H[f+28>>2]|0}b=(g>>>0)/341|0;b=H[(b<<2)+w>>2]+N(g-N(b,341)|0,12)|0;H[b+8>>2]=s;H[b+4>>2]=m;H[b>>2]=d;m=H[f+28>>2]+1|0;H[f+28>>2]=m;break j}if(!t){break k}while(1){if(H[i+12>>2]){o=H[i+40>>2];n=H[p>>2];w=H[i+96>>2];k=H[i+108>>2];m=0;while(1){q=k+(m<<2)|0;H[w+(H[q>>2]<<2)>>2]=0;g=H[i>>2];e=H[q>>2]<<2;d=H[e+n>>2];v:{if((g|0)==(d|0)){break v}r=e+w|0;u=g-d|0;x=H[i+52>>2];g=32-x|0;if((u|0)<=(g|0)){e=H[i+48>>2];if((e|0)==(o|0)){break i}H[r>>2]=H[e>>2]<>>32-u;d=u+H[i+52>>2]|0;H[i+52>>2]=d;if((d|0)!=32){break v}H[i+52>>2]=0;H[i+48>>2]=e+4;break v}s=H[i+48>>2];d=s+4|0;if((d|0)==(o|0)){break i}e=H[s>>2];H[i+48>>2]=d;d=u-g|0;H[i+52>>2]=d;H[r>>2]=H[s+4>>2]>>>32-d|e<>>32-u}e=H[q>>2]<<2;d=e+w|0;H[d>>2]=H[d>>2]|H[e+H[l>>2]>>2];m=m+1|0;if(m>>>0>2]){continue}break}}jb(z,y);H[i+8>>2]=H[i+8>>2]+1;b=b+1|0;if((t|0)!=(b|0)){continue}break}}m=H[f+28>>2]}if(m){continue}break}}H[f+28>>2]=0;w=H[f+16>>2];m=H[f+12>>2];g=w-m|0;if(g>>>0>=9){while(1){oa(H[m>>2]);m=H[f+12>>2]+4|0;H[f+12>>2]=m;w=H[f+16>>2];g=w-m|0;if(g>>>0>8){continue}break}}b=170;w:{switch((g>>>2|0)-1|0){case 1:b=341;case 0:H[f+24>>2]=b;break;default:break w}}x:{if((m|0)==(w|0)){break x}while(1){oa(H[m>>2]);m=m+4|0;if((w|0)!=(m|0)){continue}break}d=H[f+16>>2];b=H[f+12>>2];if((d|0)==(b|0)){break x}H[f+16>>2]=d+((b-d|0)+3&-4)}b=H[f+8>>2];if(b){oa(b)}ca=f+32|0;break h}}xb(i);break d;case 1:i=wb(B+8|0,3);A=B+664|0;k=H[b+8>>2];n=H[b+12>>2];d=H[b+20>>2];e=H[b+16>>2];g=e+4|0;d=g>>>0<4?d+1|0:d;y:{if(g>>>0>k>>>0&(d|0)>=(n|0)|(d|0)>(n|0)){break y}d=e+H[b>>2]|0;H[i>>2]=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);d=H[b+20>>2];k=d;g=H[b+16>>2];e=g+4|0;d=e>>>0<4?d+1|0:d;H[b+16>>2]=e;H[b+20>>2]=d;if(K[i>>2]>32){break y}n=H[b+8>>2];s=H[b+12>>2];d=k;g=g+8|0;d=g>>>0<8?d+1|0:d;if(g>>>0>n>>>0&(d|0)>=(s|0)|(d|0)>(s|0)){break y}d=e+H[b>>2]|0;e=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);H[i+4>>2]=e;g=H[b+20>>2];d=H[b+16>>2]+4|0;g=d>>>0<4?g+1|0:g;H[b+16>>2]=d;H[b+20>>2]=g;if(!e){break y}H[i+8>>2]=0;if(!ua(i+16|0,b)){break y}if(!ua(i+36|0,b)){break y}if(!ua(i+56|0,b)){break y}if(!ua(i+76|0,b)){break y}p=H[i+4>>2];d=0;f=ca-32|0;ca=f;m=H[i+12>>2];H[f+16>>2]=0;H[f+8>>2]=0;H[f+12>>2]=0;if(m){if(m>>>0>=1073741824){break b}b=m<<2;t=pa(b);H[f+8>>2]=t;d=b+t|0;H[f+16>>2]=d;ra(t,0,b);H[f+12>>2]=d}e=H[i+120>>2];b=H[e>>2];if(b){H[e+4>>2]=b;oa(b);m=H[i+12>>2];t=H[f+8>>2];d=H[f+12>>2]}H[e+4>>2]=d;H[e>>2]=t;H[e+8>>2]=H[f+16>>2];t=0;H[f+16>>2]=0;H[f+8>>2]=0;H[f+12>>2]=0;z:{if(m){if(m>>>0>=1073741824){break b}b=m<<2;o=pa(b);H[f+8>>2]=o;t=b+o|0;H[f+16>>2]=t;ra(o,0,b);H[f+12>>2]=t}d=H[i+132>>2];b=H[d>>2];if(b){H[d+4>>2]=b;oa(b);t=H[f+12>>2];o=H[f+8>>2]}H[d+4>>2]=t;H[d>>2]=o;H[d+8>>2]=H[f+16>>2];H[f+24>>2]=0;H[f+28>>2]=0;H[f+16>>2]=0;H[f+20>>2]=0;H[f+8>>2]=0;H[f+12>>2]=0;xa(f+8|0);d=H[f+24>>2]+H[f+28>>2]|0;b=(d>>>0)/341|0;b=H[H[f+12>>2]+(b<<2)>>2]+N(d-N(b,341)|0,12)|0;H[b+4>>2]=0;H[b+8>>2]=0;H[b>>2]=p;m=H[f+28>>2]+1|0;H[f+28>>2]=m;A:{if(!m){break A}s=i+96|0;while(1){k=H[f+12>>2];g=H[f+24>>2];e=m-1|0;d=g+e|0;b=(d>>>0)/341|0;b=H[k+(b<<2)>>2]+N(d-N(b,341)|0,12)|0;q=H[b+8>>2];d=H[b+4>>2];l=H[b>>2];H[f+28>>2]=e;b=H[f+16>>2];if((((b|0)!=(k|0)?N(b-k>>2,341)-1|0:0)-(g+m|0)|0)+1>>>0>=682){oa(H[b-4>>2]);H[f+16>>2]=H[f+16>>2]-4}if(l>>>0>p>>>0){break A}b=H[i+12>>2];m=(d|0)!=(b-1|0)?d+1|0:0;if(m>>>0>=b>>>0){break A}b=H[i+120>>2];r=N(q,12);u=b+r|0;e=H[i>>2];x=m<<2;n=r+H[i+132>>2]|0;d=H[x+H[n>>2]>>2];B:{C:{if((e|0)==(d|0)){x=0;if(!l){break C}while(1){b=H[u>>2];y=H[b+8>>2];n=H[b+4>>2];k=H[b>>2];q=H[A>>2];m=H[q+4>>2];b=H[q+8>>2];D:{if(m>>>0>>0){H[m+8>>2]=y;H[m+4>>2]=n;H[m>>2]=k;H[q+4>>2]=m+12;break D}r=H[q>>2];e=(m-r|0)/12|0;g=e+1|0;if(g>>>0>=357913942){break b}d=(b-r|0)/12|0;b=d<<1;g=d>>>0>=178956970?357913941:b>>>0>g>>>0?b:g;if(g){if(g>>>0>=357913942){break a}b=pa(N(g,12))}else{b=0}o=b+N(e,12)|0;H[o+8>>2]=y;H[o+4>>2]=n;H[o>>2]=k;d=o+12|0;if((m|0)!=(r|0)){while(1){o=o-12|0;m=m-12|0;H[o>>2]=H[m>>2];H[o+4>>2]=H[m+4>>2];H[o+8>>2]=H[m+8>>2];if((m|0)!=(r|0)){continue}break}}H[q+8>>2]=b+N(g,12);H[q+4>>2]=d;H[q>>2]=o;if(!r){break D}oa(r)}H[i+8>>2]=H[i+8>>2]+1;x=x+1|0;if((l|0)!=(x|0)){continue}break}break C}E:{F:{G:{H:{if(l>>>0<=2){b=H[i+108>>2];H[b>>2]=m;o=1;t=H[i+12>>2];if(t>>>0>1){break H}break E}if(K[i+8>>2]>K[i+4>>2]){break A}k=b;b=r+12|0;Aa(k+b|0,H[u>>2],H[u+4>>2]);b=x+H[b+H[i+120>>2]>>2]|0;H[b>>2]=H[b>>2]+(1<>2];e=32-k|0;I:{if((n|0)<=(e|0)){e=H[i+28>>2];if((e|0)==H[i+20>>2]){break G}d=H[e>>2];b=k+n|0;H[i+32>>2]=b;d=d<>>32-n|0;if((b|0)!=32){break I}H[i+32>>2]=0;H[i+28>>2]=e+4;break I}g=H[i+28>>2];b=g+4|0;if((b|0)==H[i+20>>2]){break G}d=H[g>>2];H[i+28>>2]=b;b=n-e|0;H[i+32>>2]=b;d=H[g+4>>2]>>>32-b|d<>>32-n}o=l>>>1|0;if(o>>>0>>0){break A}break F}while(1){m=(t-1|0)!=(m|0)?m+1|0:0;H[b+(o<<2)>>2]=m;o=o+1|0;t=H[i+12>>2];if(o>>>0>>0){continue}break}break E}o=l>>>1|0;d=0}y=q+1|0;J:{K:{e=o-d|0;d=l-e|0;L:{if((d|0)==(e|0)){b=e;break L}n=H[i+88>>2];if((n|0)==H[i+80>>2]){break K}k=H[n>>2];g=H[i+92>>2];b=g+1|0;H[i+92>>2]=b;g=k&-2147483648>>>g;M:{if((b|0)==32){H[i+92>>2]=0;H[i+88>>2]=n+4;if(g){break M}break K}if(!g){break K}}b=d}d=e;break J}b=e}n=H[i+132>>2];k=n+r|0;g=H[k>>2];e=g+x|0;H[e>>2]=H[e>>2]+1;Aa(n+N(y,12)|0,g,H[k+4>>2]);if(d){t=H[f+28>>2]+H[f+24>>2]|0;e=H[f+16>>2];o=H[f+12>>2];if((t|0)==(((e|0)!=(o|0)?N(e-o>>2,341)-1|0:0)|0)){xa(f+8|0);t=H[f+24>>2]+H[f+28>>2]|0;o=H[f+12>>2]}e=(t>>>0)/341|0;e=H[o+(e<<2)>>2]+N(t-N(e,341)|0,12)|0;H[e+8>>2]=q;H[e+4>>2]=m;H[e>>2]=d;H[f+28>>2]=H[f+28>>2]+1}if(!b){break C}t=H[f+28>>2]+H[f+24>>2]|0;d=H[f+16>>2];o=H[f+12>>2];if((t|0)==(((d|0)!=(o|0)?N(d-o>>2,341)-1|0:0)|0)){xa(f+8|0);t=H[f+24>>2]+H[f+28>>2]|0;o=H[f+12>>2]}d=(t>>>0)/341|0;d=H[o+(d<<2)>>2]+N(t-N(d,341)|0,12)|0;H[d+8>>2]=y;H[d+4>>2]=m;H[d>>2]=b;m=H[f+28>>2]+1|0;H[f+28>>2]=m;break B}t=0;if(!l){break C}while(1){if(H[i+12>>2]){o=H[i+40>>2];k=H[n>>2];z=H[i+96>>2];g=H[i+108>>2];m=0;while(1){q=g+(m<<2)|0;H[z+(H[q>>2]<<2)>>2]=0;e=H[i>>2];d=H[q>>2]<<2;b=H[d+k>>2];N:{if((e|0)==(b|0)){break N}r=d+z|0;w=e-b|0;x=H[i+52>>2];e=32-x|0;if((w|0)<=(e|0)){d=H[i+48>>2];if((d|0)==(o|0)){break A}H[r>>2]=H[d>>2]<>>32-w;b=w+H[i+52>>2]|0;H[i+52>>2]=b;if((b|0)!=32){break N}H[i+52>>2]=0;H[i+48>>2]=d+4;break N}y=H[i+48>>2];b=y+4|0;if((b|0)==(o|0)){break A}d=H[y>>2];H[i+48>>2]=b;b=w-e|0;H[i+52>>2]=b;H[r>>2]=H[y+4>>2]>>>32-b|d<>>32-w}d=H[q>>2]<<2;b=d+z|0;H[b>>2]=H[b>>2]|H[d+H[u>>2]>>2];m=m+1|0;if(m>>>0>2]){continue}break}}jb(A,s);H[i+8>>2]=H[i+8>>2]+1;t=t+1|0;if((l|0)!=(t|0)){continue}break}}m=H[f+28>>2]}if(m){continue}break}}H[f+28>>2]=0;o=H[f+16>>2];m=H[f+12>>2];t=o-m|0;if(t>>>0>=9){while(1){oa(H[m>>2]);m=H[f+12>>2]+4|0;H[f+12>>2]=m;o=H[f+16>>2];t=o-m|0;if(t>>>0>8){continue}break}}b=170;O:{switch((t>>>2|0)-1|0){case 1:b=341;case 0:H[f+24>>2]=b;break;default:break O}}P:{if((m|0)==(o|0)){break P}while(1){oa(H[m>>2]);m=m+4|0;if((o|0)!=(m|0)){continue}break}d=H[f+16>>2];b=H[f+12>>2];if((d|0)==(b|0)){break P}H[f+16>>2]=d+((b-d|0)+3&-4)}b=H[f+8>>2];if(b){oa(b)}ca=f+32|0;break z}}xb(i);break d;case 2:f=ub(B+8|0,3);w=B+664|0;k=H[b+8>>2];n=H[b+12>>2];d=H[b+20>>2];e=H[b+16>>2];g=e+4|0;d=g>>>0<4?d+1|0:d;Q:{if(g>>>0>k>>>0&(d|0)>=(n|0)|(d|0)>(n|0)){break Q}d=e+H[b>>2]|0;H[f>>2]=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);d=H[b+20>>2];k=d;g=H[b+16>>2];e=g+4|0;d=e>>>0<4?d+1|0:d;H[b+16>>2]=e;H[b+20>>2]=d;if(K[f>>2]>32){break Q}n=H[b+8>>2];s=H[b+12>>2];d=k;g=g+8|0;d=g>>>0<8?d+1|0:d;if(g>>>0>n>>>0&(d|0)>=(s|0)|(d|0)>(s|0)){break Q}d=e+H[b>>2]|0;e=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);H[f+4>>2]=e;g=H[b+20>>2];d=H[b+16>>2]+4|0;g=d>>>0<4?g+1|0:g;H[b+16>>2]=d;H[b+20>>2]=g;if(!e){break Q}H[f+8>>2]=0;if(!ta(f+16|0,b)){break Q}if(!ua(f+32|0,b)){break Q}if(!ua(f+52|0,b)){break Q}if(!ua(f+72|0,b)){break Q}z=H[f+4>>2];g=0;b=0;h=ca-32|0;ca=h;j=H[f+12>>2];H[h+16>>2]=0;H[h+8>>2]=0;H[h+12>>2]=0;if(j){if(j>>>0>=1073741824){break b}d=j<<2;g=pa(d);H[h+8>>2]=g;b=d+g|0;H[h+16>>2]=b;ra(g,0,d);H[h+12>>2]=b}e=H[f+116>>2];d=H[e>>2];if(d){H[e+4>>2]=d;oa(d);j=H[f+12>>2];g=H[h+8>>2];b=H[h+12>>2]}H[e+4>>2]=b;H[e>>2]=g;H[e+8>>2]=H[h+16>>2];g=0;H[h+16>>2]=0;H[h+8>>2]=0;H[h+12>>2]=0;R:{if(j){if(j>>>0>=1073741824){break b}b=j<<2;u=pa(b);H[h+8>>2]=u;g=b+u|0;H[h+16>>2]=g;ra(u,0,b);H[h+12>>2]=g}d=H[f+128>>2];b=H[d>>2];if(b){H[d+4>>2]=b;oa(b);u=H[h+8>>2];g=H[h+12>>2]}H[d+4>>2]=g;H[d>>2]=u;H[d+8>>2]=H[h+16>>2];H[h+24>>2]=0;H[h+28>>2]=0;H[h+16>>2]=0;H[h+20>>2]=0;H[h+8>>2]=0;H[h+12>>2]=0;xa(h+8|0);d=H[h+24>>2]+H[h+28>>2]|0;b=(d>>>0)/341|0;b=H[H[h+12>>2]+(b<<2)>>2]+N(d-N(b,341)|0,12)|0;H[b+4>>2]=0;H[b+8>>2]=0;H[b>>2]=z;j=H[h+28>>2]+1|0;H[h+28>>2]=j;S:{if(!j){break S}x=f+92|0;y=f+16|0;while(1){n=H[h+12>>2];g=H[h+24>>2];e=j-1|0;d=g+e|0;b=(d>>>0)/341|0;b=H[n+(b<<2)>>2]+N(d-N(b,341)|0,12)|0;p=H[b+8>>2];k=H[b+4>>2];i=H[b>>2];H[h+28>>2]=e;b=H[h+16>>2];if((((b|0)!=(n|0)?N(b-n>>2,341)-1|0:0)-(g+j|0)|0)+1>>>0>=682){oa(H[b-4>>2]);H[h+16>>2]=H[h+16>>2]-4}d=0;if(i>>>0>z>>>0){break S}b=H[f+12>>2];j=(k|0)!=(b-1|0)?k+1|0:0;if(j>>>0>=b>>>0){break S}o=N(p,12);A=o+H[f+128>>2]|0;t=o+H[f+116>>2]|0;g=H[f>>2];q=j<<2;e=H[q+H[A>>2]>>2];T:{if((g|0)==(e|0)){if(!i){break T}while(1){b=H[t>>2];r=H[b+8>>2];s=H[b+4>>2];n=H[b>>2];o=H[w>>2];j=H[o+4>>2];b=H[o+8>>2];U:{if(j>>>0>>0){H[j+8>>2]=r;H[j+4>>2]=s;H[j>>2]=n;H[o+4>>2]=j+12;break U}q=H[o>>2];g=(j-q|0)/12|0;k=g+1|0;if(k>>>0>=357913942){break b}e=(b-q|0)/12|0;b=e<<1;k=e>>>0>=178956970?357913941:b>>>0>k>>>0?b:k;if(k){if(k>>>0>=357913942){break a}b=pa(N(k,12))}else{b=0}u=b+N(g,12)|0;H[u+8>>2]=r;H[u+4>>2]=s;H[u>>2]=n;e=u+12|0;if((j|0)!=(q|0)){while(1){u=u-12|0;j=j-12|0;H[u>>2]=H[j>>2];H[u+4>>2]=H[j+4>>2];H[u+8>>2]=H[j+8>>2];if((j|0)!=(q|0)){continue}break}}H[o+8>>2]=b+N(k,12);H[o+4>>2]=e;H[o>>2]=u;if(!q){break U}oa(q)}H[f+8>>2]=H[f+8>>2]+1;d=d+1|0;if((i|0)!=(d|0)){continue}break}break T}V:{W:{X:{Y:{if(i>>>0<=2){b=H[f+104>>2];H[b>>2]=j;u=1;g=H[f+12>>2];if(g>>>0>1){break Y}break V}if(K[f+8>>2]>K[f+4>>2]){break S}b=H[f+116>>2];s=p+1|0;r=N(s,12);d=b+r|0;if((d|0)!=(t|0)){Aa(d,H[t>>2],H[t+4>>2]);b=H[f+116>>2]}b=q+H[b+r>>2]|0;H[b>>2]=H[b>>2]+(1<>2]=0;pc(y,Q(i)^31,h+4|0);d=i>>>1|0;b=H[h+4>>2];if(d>>>0>>0){break S}e=d-b|0;d=i-e|0;Z:{if((d|0)==(e|0)){b=e;break Z}n=H[f+84>>2];if((n|0)==H[f+76>>2]){break X}k=H[n>>2];g=H[f+88>>2];b=g+1|0;H[f+88>>2]=b;g=k&-2147483648>>>g;_:{if((b|0)==32){H[f+88>>2]=0;H[f+84>>2]=n+4;if(g){break _}break X}if(!g){break X}}b=d}d=e;break W}while(1){j=(g-1|0)!=(j|0)?j+1|0:0;H[b+(u<<2)>>2]=j;g=H[f+12>>2];u=u+1|0;if(g>>>0>u>>>0){continue}break}break V}b=e}n=H[f+128>>2];k=n+o|0;g=H[k>>2];e=g+q|0;H[e>>2]=H[e>>2]+1;Aa(n+r|0,g,H[k+4>>2]);if(d){g=H[h+28>>2]+H[h+24>>2]|0;e=H[h+16>>2];u=H[h+12>>2];if((g|0)==(((e|0)!=(u|0)?N(e-u>>2,341)-1|0:0)|0)){xa(h+8|0);u=H[h+12>>2];g=H[h+24>>2]+H[h+28>>2]|0}e=(g>>>0)/341|0;e=H[(e<<2)+u>>2]+N(g-N(e,341)|0,12)|0;H[e+8>>2]=p;H[e+4>>2]=j;H[e>>2]=d;H[h+28>>2]=H[h+28>>2]+1}if(!b){break T}g=H[h+28>>2]+H[h+24>>2]|0;d=H[h+16>>2];u=H[h+12>>2];if((g|0)==(((d|0)!=(u|0)?N(d-u>>2,341)-1|0:0)|0)){xa(h+8|0);u=H[h+12>>2];g=H[h+24>>2]+H[h+28>>2]|0}d=(g>>>0)/341|0;d=H[(d<<2)+u>>2]+N(g-N(d,341)|0,12)|0;H[d+8>>2]=s;H[d+4>>2]=j;H[d>>2]=b;H[h+28>>2]=H[h+28>>2]+1;break T}if(!i){break T}while(1){if(H[f+12>>2]){p=H[f+36>>2];n=H[A>>2];u=H[f+92>>2];k=H[f+104>>2];j=0;while(1){o=k+(j<<2)|0;H[u+(H[o>>2]<<2)>>2]=0;g=H[f>>2];e=H[o>>2]<<2;b=H[e+n>>2];$:{if((g|0)==(b|0)){break $}q=e+u|0;l=g-b|0;r=H[f+48>>2];g=32-r|0;if((l|0)<=(g|0)){e=H[f+44>>2];if((e|0)==(p|0)){break S}H[q>>2]=H[e>>2]<>>32-l;b=l+H[f+48>>2]|0;H[f+48>>2]=b;if((b|0)!=32){break $}H[f+48>>2]=0;H[f+44>>2]=e+4;break $}s=H[f+44>>2];b=s+4|0;if((b|0)==(p|0)){break S}e=H[s>>2];H[f+44>>2]=b;b=l-g|0;H[f+48>>2]=b;H[q>>2]=H[s+4>>2]>>>32-b|e<>>32-l}e=H[o>>2]<<2;b=e+u|0;H[b>>2]=H[b>>2]|H[e+H[t>>2]>>2];j=j+1|0;if(j>>>0>2]){continue}break}}jb(w,x);H[f+8>>2]=H[f+8>>2]+1;d=d+1|0;if((i|0)!=(d|0)){continue}break}}j=H[h+28>>2];if(j){continue}break}}H[h+28>>2]=0;u=H[h+16>>2];j=H[h+12>>2];g=u-j|0;if(g>>>0>=9){while(1){oa(H[j>>2]);j=H[h+12>>2]+4|0;H[h+12>>2]=j;u=H[h+16>>2];g=u-j|0;if(g>>>0>8){continue}break}}b=170;aa:{switch((g>>>2|0)-1|0){case 1:b=341;case 0:H[h+24>>2]=b;break;default:break aa}}ba:{if((j|0)==(u|0)){break ba}while(1){oa(H[j>>2]);j=j+4|0;if((u|0)!=(j|0)){continue}break}d=H[h+16>>2];b=H[h+12>>2];if((d|0)==(b|0)){break ba}H[h+16>>2]=d+((b-d|0)+3&-4)}b=H[h+8>>2];if(b){oa(b)}ca=h+32|0;break R}}vb(f);break d;case 3:i=ub(B+8|0,3);z=B+664|0;k=H[b+8>>2];n=H[b+12>>2];d=H[b+20>>2];e=H[b+16>>2];g=e+4|0;d=g>>>0<4?d+1|0:d;ca:{if(g>>>0>k>>>0&(d|0)>=(n|0)|(d|0)>(n|0)){break ca}d=e+H[b>>2]|0;H[i>>2]=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);d=H[b+20>>2];k=d;g=H[b+16>>2];e=g+4|0;d=e>>>0<4?d+1|0:d;H[b+16>>2]=e;H[b+20>>2]=d;if(K[i>>2]>32){break ca}n=H[b+8>>2];s=H[b+12>>2];d=k;g=g+8|0;d=g>>>0<8?d+1|0:d;if(g>>>0>n>>>0&(d|0)>=(s|0)|(d|0)>(s|0)){break ca}d=e+H[b>>2]|0;e=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);H[i+4>>2]=e;g=H[b+20>>2];d=H[b+16>>2]+4|0;g=d>>>0<4?g+1|0:g;H[b+16>>2]=d;H[b+20>>2]=g;if(!e){break ca}H[i+8>>2]=0;if(!ta(i+16|0,b)){break ca}if(!ua(i+32|0,b)){break ca}if(!ua(i+52|0,b)){break ca}if(!ua(i+72|0,b)){break ca}A=H[i+4>>2];d=0;f=ca-32|0;ca=f;j=H[i+12>>2];H[f+16>>2]=0;H[f+8>>2]=0;H[f+12>>2]=0;if(j){if(j>>>0>=1073741824){break b}b=j<<2;m=pa(b);H[f+8>>2]=m;d=b+m|0;H[f+16>>2]=d;ra(m,0,b);H[f+12>>2]=d}e=H[i+116>>2];b=H[e>>2];if(b){H[e+4>>2]=b;oa(b);j=H[i+12>>2];m=H[f+8>>2];d=H[f+12>>2]}H[e+4>>2]=d;H[e>>2]=m;H[e+8>>2]=H[f+16>>2];m=0;H[f+16>>2]=0;H[f+8>>2]=0;H[f+12>>2]=0;da:{if(j){if(j>>>0>=1073741824){break b}b=j<<2;p=pa(b);H[f+8>>2]=p;m=b+p|0;H[f+16>>2]=m;ra(p,0,b);H[f+12>>2]=m}d=H[i+128>>2];b=H[d>>2];if(b){H[d+4>>2]=b;oa(b);m=H[f+12>>2];p=H[f+8>>2]}H[d+4>>2]=m;H[d>>2]=p;H[d+8>>2]=H[f+16>>2];H[f+24>>2]=0;H[f+28>>2]=0;H[f+16>>2]=0;H[f+20>>2]=0;H[f+8>>2]=0;H[f+12>>2]=0;xa(f+8|0);d=H[f+24>>2]+H[f+28>>2]|0;b=(d>>>0)/341|0;b=H[H[f+12>>2]+(b<<2)>>2]+N(d-N(b,341)|0,12)|0;H[b+4>>2]=0;H[b+8>>2]=0;H[b>>2]=A;j=H[f+28>>2]+1|0;H[f+28>>2]=j;ea:{if(!j){break ea}y=i+92|0;s=i+16|0;while(1){k=H[f+12>>2];g=H[f+24>>2];e=j-1|0;d=g+e|0;b=(d>>>0)/341|0;b=H[k+(b<<2)>>2]+N(d-N(b,341)|0,12)|0;o=H[b+8>>2];d=H[b+4>>2];t=H[b>>2];H[f+28>>2]=e;b=H[f+16>>2];if((((b|0)!=(k|0)?N(b-k>>2,341)-1|0:0)-(g+j|0)|0)+1>>>0>=682){oa(H[b-4>>2]);H[f+16>>2]=H[f+16>>2]-4}if(t>>>0>A>>>0){break ea}b=H[i+12>>2];j=(d|0)!=(b-1|0)?d+1|0:0;if(j>>>0>=b>>>0){break ea}b=H[i+116>>2];q=N(o,12);l=b+q|0;e=H[i>>2];r=j<<2;n=q+H[i+128>>2]|0;d=H[r+H[n>>2]>>2];fa:{if((e|0)==(d|0)){r=0;if(!t){break fa}while(1){b=H[l>>2];x=H[b+8>>2];n=H[b+4>>2];k=H[b>>2];o=H[z>>2];j=H[o+4>>2];b=H[o+8>>2];ga:{if(j>>>0>>0){H[j+8>>2]=x;H[j+4>>2]=n;H[j>>2]=k;H[o+4>>2]=j+12;break ga}q=H[o>>2];e=(j-q|0)/12|0;g=e+1|0;if(g>>>0>=357913942){break b}d=(b-q|0)/12|0;b=d<<1;g=d>>>0>=178956970?357913941:b>>>0>g>>>0?b:g;if(g){if(g>>>0>=357913942){break a}b=pa(N(g,12))}else{b=0}p=b+N(e,12)|0;H[p+8>>2]=x;H[p+4>>2]=n;H[p>>2]=k;d=p+12|0;if((j|0)!=(q|0)){while(1){p=p-12|0;j=j-12|0;H[p>>2]=H[j>>2];H[p+4>>2]=H[j+4>>2];H[p+8>>2]=H[j+8>>2];if((j|0)!=(q|0)){continue}break}}H[o+8>>2]=b+N(g,12);H[o+4>>2]=d;H[o>>2]=p;if(!q){break ga}oa(q)}H[i+8>>2]=H[i+8>>2]+1;r=r+1|0;if((t|0)!=(r|0)){continue}break}break fa}ha:{ia:{ja:{ka:{if(t>>>0<=2){b=H[i+104>>2];H[b>>2]=j;p=1;m=H[i+12>>2];if(m>>>0>1){break ka}break ha}if(K[i+8>>2]>K[i+4>>2]){break ea}k=b;b=q+12|0;Aa(k+b|0,H[l>>2],H[l+4>>2]);b=r+H[b+H[i+116>>2]>>2]|0;H[b>>2]=H[b>>2]+(1<>2]=0;pc(s,Q(t)^31,f+4|0);d=t>>>1|0;b=H[f+4>>2];if(d>>>0>>0){break ea}x=o+1|0;e=d-b|0;d=t-e|0;la:{if((d|0)==(e|0)){b=e;break la}n=H[i+84>>2];if((n|0)==H[i+76>>2]){break ja}k=H[n>>2];g=H[i+88>>2];b=g+1|0;H[i+88>>2]=b;g=k&-2147483648>>>g;ma:{if((b|0)==32){H[i+88>>2]=0;H[i+84>>2]=n+4;if(g){break ma}break ja}if(!g){break ja}}b=d}d=e;break ia}while(1){j=(m-1|0)!=(j|0)?j+1|0:0;H[b+(p<<2)>>2]=j;m=H[i+12>>2];p=p+1|0;if(m>>>0>p>>>0){continue}break}break ha}b=e}n=H[i+128>>2];k=n+q|0;g=H[k>>2];e=g+r|0;H[e>>2]=H[e>>2]+1;Aa(n+N(x,12)|0,g,H[k+4>>2]);if(d){m=H[f+28>>2]+H[f+24>>2]|0;e=H[f+16>>2];p=H[f+12>>2];if((m|0)==(((e|0)!=(p|0)?N(e-p>>2,341)-1|0:0)|0)){xa(f+8|0);m=H[f+24>>2]+H[f+28>>2]|0;p=H[f+12>>2]}e=(m>>>0)/341|0;e=H[p+(e<<2)>>2]+N(m-N(e,341)|0,12)|0;H[e+8>>2]=o;H[e+4>>2]=j;H[e>>2]=d;H[f+28>>2]=H[f+28>>2]+1}if(!b){break fa}m=H[f+28>>2]+H[f+24>>2]|0;d=H[f+16>>2];p=H[f+12>>2];if((m|0)==(((d|0)!=(p|0)?N(d-p>>2,341)-1|0:0)|0)){xa(f+8|0);m=H[f+24>>2]+H[f+28>>2]|0;p=H[f+12>>2]}d=(m>>>0)/341|0;d=H[p+(d<<2)>>2]+N(m-N(d,341)|0,12)|0;H[d+8>>2]=x;H[d+4>>2]=j;H[d>>2]=b;H[f+28>>2]=H[f+28>>2]+1;break fa}m=0;if(!t){break fa}while(1){if(H[i+12>>2]){p=H[i+36>>2];k=H[n>>2];w=H[i+92>>2];g=H[i+104>>2];j=0;while(1){o=g+(j<<2)|0;H[w+(H[o>>2]<<2)>>2]=0;e=H[i>>2];d=H[o>>2]<<2;b=H[d+k>>2];na:{if((e|0)==(b|0)){break na}q=d+w|0;u=e-b|0;r=H[i+48>>2];e=32-r|0;if((u|0)<=(e|0)){d=H[i+44>>2];if((d|0)==(p|0)){break ea}H[q>>2]=H[d>>2]<>>32-u;b=u+H[i+48>>2]|0;H[i+48>>2]=b;if((b|0)!=32){break na}H[i+48>>2]=0;H[i+44>>2]=d+4;break na}x=H[i+44>>2];b=x+4|0;if((b|0)==(p|0)){break ea}d=H[x>>2];H[i+44>>2]=b;b=u-e|0;H[i+48>>2]=b;H[q>>2]=H[x+4>>2]>>>32-b|d<>>32-u}d=H[o>>2]<<2;b=d+w|0;H[b>>2]=H[b>>2]|H[d+H[l>>2]>>2];j=j+1|0;if(j>>>0>2]){continue}break}}jb(z,y);H[i+8>>2]=H[i+8>>2]+1;m=m+1|0;if((t|0)!=(m|0)){continue}break}}j=H[f+28>>2];if(j){continue}break}}H[f+28>>2]=0;p=H[f+16>>2];j=H[f+12>>2];m=p-j|0;if(m>>>0>=9){while(1){oa(H[j>>2]);j=H[f+12>>2]+4|0;H[f+12>>2]=j;p=H[f+16>>2];m=p-j|0;if(m>>>0>8){continue}break}}b=170;oa:{switch((m>>>2|0)-1|0){case 1:b=341;case 0:H[f+24>>2]=b;break;default:break oa}}pa:{if((j|0)==(p|0)){break pa}while(1){oa(H[j>>2]);j=j+4|0;if((p|0)!=(j|0)){continue}break}d=H[f+16>>2];b=H[f+12>>2];if((d|0)==(b|0)){break pa}H[f+16>>2]=d+((b-d|0)+3&-4)}b=H[f+8>>2];if(b){oa(b)}ca=f+32|0;break da}}vb(i);break d;case 4:f=$a(B+8|0,3);w=B+664|0;k=H[b+8>>2];n=H[b+12>>2];d=H[b+20>>2];e=H[b+16>>2];g=e+4|0;d=g>>>0<4?d+1|0:d;qa:{if(g>>>0>k>>>0&(d|0)>=(n|0)|(d|0)>(n|0)){break qa}d=e+H[b>>2]|0;H[f>>2]=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);d=H[b+20>>2];k=d;g=H[b+16>>2];e=g+4|0;d=e>>>0<4?d+1|0:d;H[b+16>>2]=e;H[b+20>>2]=d;if(K[f>>2]>32){break qa}n=H[b+8>>2];s=H[b+12>>2];d=k;g=g+8|0;d=g>>>0<8?d+1|0:d;if(g>>>0>n>>>0&(d|0)>=(s|0)|(d|0)>(s|0)){break qa}d=e+H[b>>2]|0;e=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);H[f+4>>2]=e;g=H[b+20>>2];d=H[b+16>>2]+4|0;g=d>>>0<4?g+1|0:g;H[b+16>>2]=d;H[b+20>>2]=g;if(!e){break qa}H[f+8>>2]=0;if(!sb(f+16|0,b)){break qa}if(!ua(f+544|0,b)){break qa}if(!ua(f+564|0,b)){break qa}if(!ua(f+584|0,b)){break qa}z=H[f+4>>2];l=0;b=0;h=ca-32|0;ca=h;d=H[f+12>>2];H[h+16>>2]=0;H[h+8>>2]=0;H[h+12>>2]=0;if(d){if(d>>>0>=1073741824){break b}e=d<<2;l=pa(e);H[h+8>>2]=l;b=e+l|0;H[h+16>>2]=b;ra(l,0,e);H[h+12>>2]=b}g=H[f+628>>2];e=H[g>>2];if(e){H[g+4>>2]=e;oa(e);d=H[f+12>>2];l=H[h+8>>2];b=H[h+12>>2]}H[g+4>>2]=b;H[g>>2]=l;H[g+8>>2]=H[h+16>>2];l=0;H[h+16>>2]=0;H[h+8>>2]=0;H[h+12>>2]=0;ra:{if(d){if(d>>>0>=1073741824){break b}b=d<<2;j=pa(b);H[h+8>>2]=j;l=b+j|0;H[h+16>>2]=l;ra(j,0,b);H[h+12>>2]=l}d=H[f+640>>2];b=H[d>>2];if(b){H[d+4>>2]=b;oa(b);j=H[h+8>>2];l=H[h+12>>2]}H[d+4>>2]=l;H[d>>2]=j;H[d+8>>2]=H[h+16>>2];H[h+24>>2]=0;H[h+28>>2]=0;H[h+16>>2]=0;H[h+20>>2]=0;H[h+8>>2]=0;H[h+12>>2]=0;xa(h+8|0);d=H[h+24>>2]+H[h+28>>2]|0;b=(d>>>0)/341|0;b=H[H[h+12>>2]+(b<<2)>>2]+N(d-N(b,341)|0,12)|0;H[b+4>>2]=0;H[b+8>>2]=0;H[b>>2]=z;d=H[h+28>>2]+1|0;H[h+28>>2]=d;sa:{if(!d){break sa}x=f+604|0;y=f+16|0;while(1){n=H[h+12>>2];k=H[h+24>>2];g=d-1|0;e=k+g|0;b=(e>>>0)/341|0;b=H[n+(b<<2)>>2]+N(e-N(b,341)|0,12)|0;p=H[b+8>>2];e=H[b+4>>2];i=H[b>>2];H[h+28>>2]=g;b=H[h+16>>2];if((((b|0)!=(n|0)?N(b-n>>2,341)-1|0:0)-(d+k|0)|0)+1>>>0>=682){oa(H[b-4>>2]);H[h+16>>2]=H[h+16>>2]-4}if(i>>>0>z>>>0){break sa}b=H[f+12>>2];j=(e|0)!=(b-1|0)?e+1|0:0;if(j>>>0>=b>>>0){break sa}o=N(p,12);A=o+H[f+640>>2]|0;t=o+H[f+628>>2]|0;g=H[f>>2];q=j<<2;e=H[q+H[A>>2]>>2];ta:{ua:{if((g|0)==(e|0)){o=0;if(!i){break ua}while(1){b=H[t>>2];r=H[b+8>>2];s=H[b+4>>2];n=H[b>>2];p=H[w>>2];d=H[p+4>>2];b=H[p+8>>2];va:{if(d>>>0>>0){H[d+8>>2]=r;H[d+4>>2]=s;H[d>>2]=n;H[p+4>>2]=d+12;break va}q=H[p>>2];g=(d-q|0)/12|0;k=g+1|0;if(k>>>0>=357913942){break b}e=(b-q|0)/12|0;b=e<<1;k=e>>>0>=178956970?357913941:b>>>0>k>>>0?b:k;if(k){if(k>>>0>=357913942){break a}b=pa(N(k,12))}else{b=0}j=b+N(g,12)|0;H[j+8>>2]=r;H[j+4>>2]=s;H[j>>2]=n;e=j+12|0;if((d|0)!=(q|0)){while(1){j=j-12|0;d=d-12|0;H[j>>2]=H[d>>2];H[j+4>>2]=H[d+4>>2];H[j+8>>2]=H[d+8>>2];if((d|0)!=(q|0)){continue}break}}H[p+8>>2]=b+N(k,12);H[p+4>>2]=e;H[p>>2]=j;if(!q){break va}oa(q)}H[f+8>>2]=H[f+8>>2]+1;o=o+1|0;if((i|0)!=(o|0)){continue}break}break ua}wa:{xa:{ya:{if(i>>>0<=2){b=H[f+616>>2];H[b>>2]=j;d=1;l=H[f+12>>2];if(l>>>0>1){break ya}break wa}if(K[f+8>>2]>K[f+4>>2]){break sa}b=H[f+628>>2];s=p+1|0;r=N(s,12);d=b+r|0;if((d|0)!=(t|0)){Aa(d,H[t>>2],H[t+4>>2]);b=H[f+628>>2]}b=q+H[b+r>>2]|0;H[b>>2]=H[b>>2]+(1<>>1|0;break xa}while(1){l=Ba(y+(d<<4)|0)|l<<1;d=d+1|0;if((b|0)!=(d|0)){continue}break}d=i>>>1|0;if(l>>>0<=d>>>0){break xa}break sa}while(1){j=(l-1|0)!=(j|0)?j+1|0:0;H[b+(d<<2)>>2]=j;d=d+1|0;l=H[f+12>>2];if(d>>>0>>0){continue}break}break wa}za:{Aa:{e=d-l|0;d=i-e|0;Ba:{if((d|0)==(e|0)){b=e;break Ba}n=H[f+596>>2];if((n|0)==H[f+588>>2]){break Aa}k=H[n>>2];g=H[f+600>>2];b=g+1|0;H[f+600>>2]=b;g=k&-2147483648>>>g;Ca:{if((b|0)==32){H[f+600>>2]=0;H[f+596>>2]=n+4;if(g){break Ca}break Aa}if(!g){break Aa}}b=d}d=e;break za}b=e}n=H[f+640>>2];k=n+o|0;g=H[k>>2];e=g+q|0;H[e>>2]=H[e>>2]+1;Aa(n+r|0,g,H[k+4>>2]);if(d){g=H[h+28>>2]+H[h+24>>2]|0;e=H[h+16>>2];l=H[h+12>>2];if((g|0)==(((e|0)!=(l|0)?N(e-l>>2,341)-1|0:0)|0)){xa(h+8|0);l=H[h+12>>2];g=H[h+24>>2]+H[h+28>>2]|0}e=(g>>>0)/341|0;e=H[(e<<2)+l>>2]+N(g-N(e,341)|0,12)|0;H[e+8>>2]=p;H[e+4>>2]=j;H[e>>2]=d;H[h+28>>2]=H[h+28>>2]+1}if(!b){break ua}l=H[h+28>>2]+H[h+24>>2]|0;e=H[h+16>>2];d=H[h+12>>2];if((l|0)==(((d|0)!=(e|0)?N(e-d>>2,341)-1|0:0)|0)){xa(h+8|0);l=H[h+24>>2]+H[h+28>>2]|0;e=H[h+12>>2]}else{e=d}d=(l>>>0)/341|0;d=H[e+(d<<2)>>2]+N(l-N(d,341)|0,12)|0;H[d+8>>2]=s;H[d+4>>2]=j;H[d>>2]=b;d=H[h+28>>2]+1|0;H[h+28>>2]=d;break ta}j=0;if(!i){break ua}while(1){if(H[f+12>>2]){p=H[f+548>>2];n=H[A>>2];u=H[f+604>>2];k=H[f+616>>2];d=0;while(1){o=k+(d<<2)|0;H[u+(H[o>>2]<<2)>>2]=0;g=H[f>>2];e=H[o>>2]<<2;b=H[e+n>>2];Da:{if((g|0)==(b|0)){break Da}q=e+u|0;l=g-b|0;r=H[f+560>>2];g=32-r|0;if((l|0)<=(g|0)){e=H[f+556>>2];if((e|0)==(p|0)){break sa}H[q>>2]=H[e>>2]<>>32-l;b=l+H[f+560>>2]|0;H[f+560>>2]=b;if((b|0)!=32){break Da}H[f+560>>2]=0;H[f+556>>2]=e+4;break Da}s=H[f+556>>2];b=s+4|0;if((b|0)==(p|0)){break sa}e=H[s>>2];H[f+556>>2]=b;b=l-g|0;H[f+560>>2]=b;H[q>>2]=H[s+4>>2]>>>32-b|e<>>32-l}e=H[o>>2]<<2;b=e+u|0;H[b>>2]=H[b>>2]|H[e+H[t>>2]>>2];d=d+1|0;if(d>>>0>2]){continue}break}}jb(w,x);H[f+8>>2]=H[f+8>>2]+1;j=j+1|0;if((i|0)!=(j|0)){continue}break}}d=H[h+28>>2]}if(d){continue}break}}H[h+28>>2]=0;j=H[h+16>>2];d=H[h+12>>2];l=j-d|0;if(l>>>0>=9){while(1){oa(H[d>>2]);d=H[h+12>>2]+4|0;H[h+12>>2]=d;j=H[h+16>>2];l=j-d|0;if(l>>>0>8){continue}break}}b=170;Ea:{switch((l>>>2|0)-1|0){case 1:b=341;case 0:H[h+24>>2]=b;break;default:break Ea}}Fa:{if((d|0)==(j|0)){break Fa}while(1){oa(H[d>>2]);d=d+4|0;if((j|0)!=(d|0)){continue}break}d=H[h+16>>2];b=H[h+12>>2];if((d|0)==(b|0)){break Fa}H[h+16>>2]=d+((b-d|0)+3&-4)}b=H[h+8>>2];if(b){oa(b)}ca=h+32|0;break ra}}ab(f);break d;case 5:f=$a(B+8|0,3);w=B+664|0;k=H[b+8>>2];n=H[b+12>>2];d=H[b+20>>2];e=H[b+16>>2];g=e+4|0;d=g>>>0<4?d+1|0:d;Ga:{if(g>>>0>k>>>0&(d|0)>=(n|0)|(d|0)>(n|0)){break Ga}d=e+H[b>>2]|0;H[f>>2]=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);d=H[b+20>>2];k=d;g=H[b+16>>2];e=g+4|0;d=e>>>0<4?d+1|0:d;H[b+16>>2]=e;H[b+20>>2]=d;if(K[f>>2]>32){break Ga}n=H[b+8>>2];s=H[b+12>>2];d=k;g=g+8|0;d=g>>>0<8?d+1|0:d;if(g>>>0>n>>>0&(d|0)>=(s|0)|(d|0)>(s|0)){break Ga}d=e+H[b>>2]|0;e=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);H[f+4>>2]=e;g=H[b+20>>2];d=H[b+16>>2]+4|0;g=d>>>0<4?g+1|0:g;H[b+16>>2]=d;H[b+20>>2]=g;if(!e){break Ga}H[f+8>>2]=0;if(!sb(f+16|0,b)){break Ga}if(!ua(f+544|0,b)){break Ga}if(!ua(f+564|0,b)){break Ga}if(!ua(f+584|0,b)){break Ga}z=H[f+4>>2];l=0;b=0;h=ca-32|0;ca=h;d=H[f+12>>2];H[h+16>>2]=0;H[h+8>>2]=0;H[h+12>>2]=0;if(d){if(d>>>0>=1073741824){break b}e=d<<2;l=pa(e);H[h+8>>2]=l;b=e+l|0;H[h+16>>2]=b;ra(l,0,e);H[h+12>>2]=b}g=H[f+628>>2];e=H[g>>2];if(e){H[g+4>>2]=e;oa(e);d=H[f+12>>2];l=H[h+8>>2];b=H[h+12>>2]}H[g+4>>2]=b;H[g>>2]=l;H[g+8>>2]=H[h+16>>2];l=0;H[h+16>>2]=0;H[h+8>>2]=0;H[h+12>>2]=0;Ha:{if(d){if(d>>>0>=1073741824){break b}b=d<<2;p=pa(b);H[h+8>>2]=p;l=b+p|0;H[h+16>>2]=l;ra(p,0,b);H[h+12>>2]=l}d=H[f+640>>2];b=H[d>>2];if(b){H[d+4>>2]=b;oa(b);l=H[h+12>>2];p=H[h+8>>2]}H[d+4>>2]=l;H[d>>2]=p;H[d+8>>2]=H[h+16>>2];H[h+24>>2]=0;H[h+28>>2]=0;H[h+16>>2]=0;H[h+20>>2]=0;H[h+8>>2]=0;H[h+12>>2]=0;xa(h+8|0);d=H[h+24>>2]+H[h+28>>2]|0;b=(d>>>0)/341|0;b=H[H[h+12>>2]+(b<<2)>>2]+N(d-N(b,341)|0,12)|0;H[b+4>>2]=0;H[b+8>>2]=0;H[b>>2]=z;d=H[h+28>>2]+1|0;H[h+28>>2]=d;Ia:{if(!d){break Ia}x=f+604|0;y=f+16|0;while(1){n=H[h+12>>2];k=H[h+24>>2];g=d-1|0;e=k+g|0;b=(e>>>0)/341|0;b=H[n+(b<<2)>>2]+N(e-N(b,341)|0,12)|0;o=H[b+8>>2];e=H[b+4>>2];i=H[b>>2];H[h+28>>2]=g;b=H[h+16>>2];if((((b|0)!=(n|0)?N(b-n>>2,341)-1|0:0)-(d+k|0)|0)+1>>>0>=682){oa(H[b-4>>2]);H[h+16>>2]=H[h+16>>2]-4}if(i>>>0>z>>>0){break Ia}m=0;b=H[f+12>>2];p=(e|0)!=(b-1|0)?e+1|0:0;if(p>>>0>=b>>>0){break Ia}b=H[f+628>>2];q=N(o,12);t=b+q|0;e=H[f>>2];r=p<<2;s=q+H[f+640>>2]|0;d=H[r+H[s>>2]>>2];Ja:{Ka:{if((e|0)==(d|0)){if(!i){break Ka}while(1){b=H[t>>2];r=H[b+8>>2];s=H[b+4>>2];n=H[b>>2];o=H[w>>2];d=H[o+4>>2];b=H[o+8>>2];La:{if(d>>>0>>0){H[d+8>>2]=r;H[d+4>>2]=s;H[d>>2]=n;H[o+4>>2]=d+12;break La}q=H[o>>2];g=(d-q|0)/12|0;k=g+1|0;if(k>>>0>=357913942){break b}e=(b-q|0)/12|0;b=e<<1;k=e>>>0>=178956970?357913941:b>>>0>k>>>0?b:k;if(k){if(k>>>0>=357913942){break a}b=pa(N(k,12))}else{b=0}p=b+N(g,12)|0;H[p+8>>2]=r;H[p+4>>2]=s;H[p>>2]=n;e=p+12|0;if((d|0)!=(q|0)){while(1){p=p-12|0;d=d-12|0;H[p>>2]=H[d>>2];H[p+4>>2]=H[d+4>>2];H[p+8>>2]=H[d+8>>2];if((d|0)!=(q|0)){continue}break}}H[o+8>>2]=b+N(k,12);H[o+4>>2]=e;H[o>>2]=p;if(!q){break La}oa(q)}H[f+8>>2]=H[f+8>>2]+1;m=m+1|0;if((i|0)!=(m|0)){continue}break}break Ka}Ma:{Na:{Oa:{if(i>>>0<=2){b=H[f+616>>2];H[b>>2]=p;d=1;l=H[f+12>>2];if(l>>>0>1){break Oa}break Ma}if(K[f+8>>2]>K[f+4>>2]){break Ia}k=b;b=q+12|0;Aa(k+b|0,H[t>>2],H[t+4>>2]);b=r+H[b+H[f+628>>2]>>2]|0;H[b>>2]=H[b>>2]+(1<>>1|0;break Na}while(1){l=Ba(y+(d<<4)|0)|l<<1;d=d+1|0;if((b|0)!=(d|0)){continue}break}d=i>>>1|0;if(l>>>0<=d>>>0){break Na}break Ia}while(1){p=(l-1|0)!=(p|0)?p+1|0:0;H[b+(d<<2)>>2]=p;d=d+1|0;l=H[f+12>>2];if(d>>>0>>0){continue}break}break Ma}s=o+1|0;Pa:{Qa:{e=d-l|0;d=i-e|0;Ra:{if((d|0)==(e|0)){b=e;break Ra}n=H[f+596>>2];if((n|0)==H[f+588>>2]){break Qa}k=H[n>>2];g=H[f+600>>2];b=g+1|0;H[f+600>>2]=b;g=k&-2147483648>>>g;Sa:{if((b|0)==32){H[f+600>>2]=0;H[f+596>>2]=n+4;if(g){break Sa}break Qa}if(!g){break Qa}}b=d}d=e;break Pa}b=e}n=H[f+640>>2];k=n+q|0;g=H[k>>2];e=g+r|0;H[e>>2]=H[e>>2]+1;Aa(n+N(s,12)|0,g,H[k+4>>2]);if(d){m=H[h+28>>2]+H[h+24>>2]|0;e=H[h+16>>2];l=H[h+12>>2];if((m|0)==(((e|0)!=(l|0)?N(e-l>>2,341)-1|0:0)|0)){xa(h+8|0);m=H[h+24>>2]+H[h+28>>2]|0;l=H[h+12>>2]}e=(m>>>0)/341|0;e=H[l+(e<<2)>>2]+N(m-N(e,341)|0,12)|0;H[e+8>>2]=o;H[e+4>>2]=p;H[e>>2]=d;H[h+28>>2]=H[h+28>>2]+1}if(!b){break Ka}l=H[h+28>>2]+H[h+24>>2]|0;e=H[h+16>>2];d=H[h+12>>2];if((l|0)==(((d|0)!=(e|0)?N(e-d>>2,341)-1|0:0)|0)){xa(h+8|0);l=H[h+24>>2]+H[h+28>>2]|0;e=H[h+12>>2]}else{e=d}d=(l>>>0)/341|0;d=H[e+(d<<2)>>2]+N(l-N(d,341)|0,12)|0;H[d+8>>2]=s;H[d+4>>2]=p;H[d>>2]=b;d=H[h+28>>2]+1|0;H[h+28>>2]=d;break Ja}if(!i){break Ka}while(1){if(H[f+12>>2]){A=H[f+548>>2];n=H[s>>2];u=H[f+604>>2];k=H[f+616>>2];d=0;while(1){p=k+(d<<2)|0;H[u+(H[p>>2]<<2)>>2]=0;g=H[f>>2];e=H[p>>2]<<2;b=H[e+n>>2];Ta:{if((g|0)==(b|0)){break Ta}o=e+u|0;l=g-b|0;q=H[f+560>>2];g=32-q|0;if((l|0)<=(g|0)){e=H[f+556>>2];if((e|0)==(A|0)){break Ia}H[o>>2]=H[e>>2]<>>32-l;b=l+H[f+560>>2]|0;H[f+560>>2]=b;if((b|0)!=32){break Ta}H[f+560>>2]=0;H[f+556>>2]=e+4;break Ta}r=H[f+556>>2];b=r+4|0;if((b|0)==(A|0)){break Ia}e=H[r>>2];H[f+556>>2]=b;b=l-g|0;H[f+560>>2]=b;H[o>>2]=H[r+4>>2]>>>32-b|e<>>32-l}e=H[p>>2]<<2;b=e+u|0;H[b>>2]=H[b>>2]|H[e+H[t>>2]>>2];d=d+1|0;if(d>>>0>2]){continue}break}}jb(w,x);H[f+8>>2]=H[f+8>>2]+1;m=m+1|0;if((i|0)!=(m|0)){continue}break}}d=H[h+28>>2]}if(d){continue}break}}H[h+28>>2]=0;p=H[h+16>>2];d=H[h+12>>2];l=p-d|0;if(l>>>0>=9){while(1){oa(H[d>>2]);d=H[h+12>>2]+4|0;H[h+12>>2]=d;p=H[h+16>>2];l=p-d|0;if(l>>>0>8){continue}break}}b=170;Ua:{switch((l>>>2|0)-1|0){case 1:b=341;case 0:H[h+24>>2]=b;break;default:break Ua}}Va:{if((d|0)==(p|0)){break Va}while(1){oa(H[d>>2]);d=d+4|0;if((p|0)!=(d|0)){continue}break}d=H[h+16>>2];b=H[h+12>>2];if((d|0)==(b|0)){break Va}H[h+16>>2]=d+((b-d|0)+3&-4)}b=H[h+8>>2];if(b){oa(b)}ca=h+32|0;break Ha}}ab(f);break d;case 6:break f;default:break c}}f=$a(B+8|0,3);w=B+664|0;k=H[b+8>>2];n=H[b+12>>2];d=H[b+20>>2];e=H[b+16>>2];g=e+4|0;d=g>>>0<4?d+1|0:d;Wa:{if(g>>>0>k>>>0&(d|0)>=(n|0)|(d|0)>(n|0)){break Wa}d=e+H[b>>2]|0;H[f>>2]=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);d=H[b+20>>2];k=d;g=H[b+16>>2];e=g+4|0;d=e>>>0<4?d+1|0:d;H[b+16>>2]=e;H[b+20>>2]=d;if(K[f>>2]>32){break Wa}n=H[b+8>>2];s=H[b+12>>2];d=k;g=g+8|0;d=g>>>0<8?d+1|0:d;if(g>>>0>n>>>0&(d|0)>=(s|0)|(d|0)>(s|0)){break Wa}d=e+H[b>>2]|0;e=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);H[f+4>>2]=e;g=H[b+20>>2];d=H[b+16>>2]+4|0;g=d>>>0<4?g+1|0:g;H[b+16>>2]=d;H[b+20>>2]=g;if(!e){break Wa}H[f+8>>2]=0;if(!sb(f+16|0,b)){break Wa}if(!ua(f+544|0,b)){break Wa}if(!ua(f+564|0,b)){break Wa}if(!ua(f+584|0,b)){break Wa}z=H[f+4>>2];l=0;b=0;h=ca-32|0;ca=h;d=H[f+12>>2];H[h+16>>2]=0;H[h+8>>2]=0;H[h+12>>2]=0;if(d){if(d>>>0>=1073741824){break b}e=d<<2;l=pa(e);H[h+8>>2]=l;b=e+l|0;H[h+16>>2]=b;ra(l,0,e);H[h+12>>2]=b}g=H[f+628>>2];e=H[g>>2];if(e){H[g+4>>2]=e;oa(e);d=H[f+12>>2];l=H[h+8>>2];b=H[h+12>>2]}H[g+4>>2]=b;H[g>>2]=l;H[g+8>>2]=H[h+16>>2];l=0;H[h+16>>2]=0;H[h+8>>2]=0;H[h+12>>2]=0;Xa:{if(d){if(d>>>0>=1073741824){break b}b=d<<2;j=pa(b);H[h+8>>2]=j;l=b+j|0;H[h+16>>2]=l;ra(j,0,b);H[h+12>>2]=l}d=H[f+640>>2];b=H[d>>2];if(b){H[d+4>>2]=b;oa(b);j=H[h+8>>2];l=H[h+12>>2]}H[d+4>>2]=l;H[d>>2]=j;H[d+8>>2]=H[h+16>>2];H[h+24>>2]=0;H[h+28>>2]=0;H[h+16>>2]=0;H[h+20>>2]=0;H[h+8>>2]=0;H[h+12>>2]=0;xa(h+8|0);d=H[h+24>>2]+H[h+28>>2]|0;b=(d>>>0)/341|0;b=H[H[h+12>>2]+(b<<2)>>2]+N(d-N(b,341)|0,12)|0;H[b+4>>2]=0;H[b+8>>2]=0;H[b>>2]=z;d=H[h+28>>2]+1|0;H[h+28>>2]=d;Ya:{if(!d){break Ya}x=f+604|0;y=f+16|0;while(1){n=H[h+12>>2];k=H[h+24>>2];g=d-1|0;e=k+g|0;b=(e>>>0)/341|0;b=H[n+(b<<2)>>2]+N(e-N(b,341)|0,12)|0;p=H[b+8>>2];i=H[b>>2];H[h+28>>2]=g;b=H[h+16>>2];if((((b|0)!=(n|0)?N(b-n>>2,341)-1|0:0)-(d+k|0)|0)+1>>>0>=682){oa(H[b-4>>2]);H[h+16>>2]=H[h+16>>2]-4}if(i>>>0>z>>>0){break Ya}b=H[f+628>>2];o=N(p,12);A=o+H[f+640>>2]|0;j=Vd(f,i,A);if(j>>>0>=K[f+12>>2]){break Ya}t=b+o|0;g=H[f>>2];q=j<<2;e=H[q+H[A>>2]>>2];Za:{_a:{if((g|0)==(e|0)){o=0;if(!i){break _a}while(1){b=H[t>>2];r=H[b+8>>2];s=H[b+4>>2];n=H[b>>2];p=H[w>>2];d=H[p+4>>2];b=H[p+8>>2];$a:{if(d>>>0>>0){H[d+8>>2]=r;H[d+4>>2]=s;H[d>>2]=n;H[p+4>>2]=d+12;break $a}q=H[p>>2];g=(d-q|0)/12|0;k=g+1|0;if(k>>>0>=357913942){break b}e=(b-q|0)/12|0;b=e<<1;k=e>>>0>=178956970?357913941:b>>>0>k>>>0?b:k;if(k){if(k>>>0>=357913942){break a}b=pa(N(k,12))}else{b=0}j=b+N(g,12)|0;H[j+8>>2]=r;H[j+4>>2]=s;H[j>>2]=n;e=j+12|0;if((d|0)!=(q|0)){while(1){j=j-12|0;d=d-12|0;H[j>>2]=H[d>>2];H[j+4>>2]=H[d+4>>2];H[j+8>>2]=H[d+8>>2];if((d|0)!=(q|0)){continue}break}}H[p+8>>2]=b+N(k,12);H[p+4>>2]=e;H[p>>2]=j;if(!q){break $a}oa(q)}H[f+8>>2]=H[f+8>>2]+1;o=o+1|0;if((i|0)!=(o|0)){continue}break}break _a}ab:{bb:{cb:{if(i>>>0<=2){b=H[f+616>>2];H[b>>2]=j;d=1;l=H[f+12>>2];if(l>>>0>1){break cb}break ab}if(K[f+8>>2]>K[f+4>>2]){break Ya}b=H[f+628>>2];s=p+1|0;r=N(s,12);d=b+r|0;if((d|0)!=(t|0)){Aa(d,H[t>>2],H[t+4>>2]);b=H[f+628>>2]}b=q+H[b+r>>2]|0;H[b>>2]=H[b>>2]+(1<>>1|0;break bb}while(1){l=Ba(y+(d<<4)|0)|l<<1;d=d+1|0;if((b|0)!=(d|0)){continue}break}d=i>>>1|0;if(l>>>0<=d>>>0){break bb}break Ya}while(1){j=(l-1|0)!=(j|0)?j+1|0:0;H[b+(d<<2)>>2]=j;d=d+1|0;l=H[f+12>>2];if(d>>>0>>0){continue}break}break ab}db:{eb:{e=d-l|0;d=i-e|0;fb:{if((d|0)==(e|0)){b=e;break fb}n=H[f+596>>2];if((n|0)==H[f+588>>2]){break eb}k=H[n>>2];g=H[f+600>>2];b=g+1|0;H[f+600>>2]=b;g=k&-2147483648>>>g;gb:{if((b|0)==32){H[f+600>>2]=0;H[f+596>>2]=n+4;if(g){break gb}break eb}if(!g){break eb}}b=d}d=e;break db}b=e}n=H[f+640>>2];k=n+o|0;g=H[k>>2];e=g+q|0;H[e>>2]=H[e>>2]+1;Aa(n+r|0,g,H[k+4>>2]);if(d){g=H[h+28>>2]+H[h+24>>2]|0;e=H[h+16>>2];l=H[h+12>>2];if((g|0)==(((e|0)!=(l|0)?N(e-l>>2,341)-1|0:0)|0)){xa(h+8|0);l=H[h+12>>2];g=H[h+24>>2]+H[h+28>>2]|0}e=(g>>>0)/341|0;e=H[(e<<2)+l>>2]+N(g-N(e,341)|0,12)|0;H[e+8>>2]=p;H[e+4>>2]=j;H[e>>2]=d;H[h+28>>2]=H[h+28>>2]+1}if(!b){break _a}l=H[h+28>>2]+H[h+24>>2]|0;e=H[h+16>>2];d=H[h+12>>2];if((l|0)==(((d|0)!=(e|0)?N(e-d>>2,341)-1|0:0)|0)){xa(h+8|0);l=H[h+24>>2]+H[h+28>>2]|0;e=H[h+12>>2]}else{e=d}d=(l>>>0)/341|0;d=H[e+(d<<2)>>2]+N(l-N(d,341)|0,12)|0;H[d+8>>2]=s;H[d+4>>2]=j;H[d>>2]=b;d=H[h+28>>2]+1|0;H[h+28>>2]=d;break Za}j=0;if(!i){break _a}while(1){if(H[f+12>>2]){p=H[f+548>>2];n=H[A>>2];u=H[f+604>>2];k=H[f+616>>2];d=0;while(1){o=k+(d<<2)|0;H[u+(H[o>>2]<<2)>>2]=0;g=H[f>>2];e=H[o>>2]<<2;b=H[e+n>>2];hb:{if((g|0)==(b|0)){break hb}q=e+u|0;l=g-b|0;r=H[f+560>>2];g=32-r|0;if((l|0)<=(g|0)){e=H[f+556>>2];if((e|0)==(p|0)){break Ya}H[q>>2]=H[e>>2]<>>32-l;b=l+H[f+560>>2]|0;H[f+560>>2]=b;if((b|0)!=32){break hb}H[f+560>>2]=0;H[f+556>>2]=e+4;break hb}s=H[f+556>>2];b=s+4|0;if((b|0)==(p|0)){break Ya}e=H[s>>2];H[f+556>>2]=b;b=l-g|0;H[f+560>>2]=b;H[q>>2]=H[s+4>>2]>>>32-b|e<>>32-l}e=H[o>>2]<<2;b=e+u|0;H[b>>2]=H[b>>2]|H[e+H[t>>2]>>2];d=d+1|0;if(d>>>0>2]){continue}break}}jb(w,x);H[f+8>>2]=H[f+8>>2]+1;j=j+1|0;if((i|0)!=(j|0)){continue}break}}d=H[h+28>>2]}if(d){continue}break}}H[h+28>>2]=0;j=H[h+16>>2];d=H[h+12>>2];l=j-d|0;if(l>>>0>=9){while(1){oa(H[d>>2]);d=H[h+12>>2]+4|0;H[h+12>>2]=d;j=H[h+16>>2];l=j-d|0;if(l>>>0>8){continue}break}}b=170;ib:{switch((l>>>2|0)-1|0){case 1:b=341;case 0:H[h+24>>2]=b;break;default:break ib}}jb:{if((d|0)==(j|0)){break jb}while(1){oa(H[d>>2]);d=d+4|0;if((j|0)!=(d|0)){continue}break}d=H[h+16>>2];b=H[h+12>>2];if((d|0)==(b|0)){break jb}H[h+16>>2]=d+((b-d|0)+3&-4)}b=H[h+8>>2];if(b){oa(b)}ca=h+32|0;break Xa}}ab(f)}n=H[a+12>>2]==((H[c+4>>2]-H[c>>2]|0)/12|0)}ca=B+672|0;return n}sa();v()}wa();v()}function kd(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;if(!a){return 1}e=H[c+20>>2];g=H[c+12>>2];i=H[c+16>>2];a:{if((e|0)>=(g|0)&i>>>0>=K[c+8>>2]|(e|0)>(g|0)){break a}g=I[i+H[c>>2]|0];i=i+1|0;e=i?e:e+1|0;H[c+16>>2]=i;H[c+20>>2]=e;b:{switch(g|0){case 0:e=a;f=b;i=d;a=0;d=0;m=ca+-64|0;ca=m;H[m+56>>2]=0;H[m+48>>2]=0;H[m+52>>2]=0;H[m+40>>2]=0;H[m+44>>2]=0;H[m+32>>2]=0;H[m+36>>2]=0;H[m+24>>2]=0;H[m+28>>2]=0;H[m+16>>2]=0;H[m+20>>2]=0;H[m+8>>2]=0;H[m+12>>2]=0;c:{if(!Ne(m+8|0,c)){break c}if(!Me(m+8|0,c)|(H[m+20>>2]?0:e)){break c}Db(c,0,0);if(e){s=f<<2;t=H[m+36>>2];w=H[m+48>>2];x=H[m+24>>2];l=H[m+56>>2];j=H[m+52>>2];while(1){d:{if(l>>>0>16383){break d}while(1){if((j|0)<=0){break d}j=j-1|0;H[m+52>>2]=j;l=I[j+w|0]|l<<8;H[m+56>>2]=l;if(l>>>0<16384){continue}break}}a=l&4095;r=H[(a<<2)+x>>2];b=(r<<3)+t|0;l=(N(H[b>>2],l>>>12|0)+a|0)-H[b+4>>2]|0;H[m+56>>2]=l;if((f|0)>0){a=0;if(!I[c+36|0]|r>>>0>32){break c}g=d+f|0;e:{if(!r){ra(i+(d<<2)|0,0,s);break e}y=r&-2;z=r&1;b=H[c+32>>2];h=H[c+28>>2];n=H[c+24>>2];while(1){k=0;a=b;o=0;q=0;if((r|0)!=1){while(1){p=n+(a>>>3|0)|0;f:{if(p>>>0>=h>>>0){p=0;break f}p=I[p|0];b=a+1|0;H[c+32>>2]=b;p=p>>>(a&7)&1;a=b}p=p<>>3|0)|0;if(u>>>0>>0){o=I[u|0];b=a+1|0;H[c+32>>2]=b;o=o>>>(a&7)&1;a=b}u=k|1;k=k+2|0;o=p|o<>>3|0)|0;if(p>>>0>>0){p=I[p|0];b=a+1|0;H[c+32>>2]=b;a=p>>>(a&7)&1}else{a=0}o=a<>2]=o;d=d+1|0;if((g|0)!=(d|0)){continue}break}}d=g}v=f+v|0;if(e>>>0>v>>>0){continue}break}}F[c+36|0]=0;b=H[c+20>>2];e=0;d=H[c+32>>2]+7|0;e=d>>>0<7?1:e;d=(e&7)<<29|d>>>3;a=d+H[c+16>>2]|0;e=(e>>>3|0)+b|0;H[c+16>>2]=a;H[c+20>>2]=a>>>0>>0?e+1|0:e;a=1}b=H[m+36>>2];if(b){H[m+40>>2]=b;oa(b)}b=H[m+24>>2];if(b){H[m+28>>2]=b;oa(b)}b=H[m+8>>2];if(b){H[m+12>>2]=b;oa(b)}ca=m- -64|0;return a;case 1:break b;default:break a}}b=0;e=H[c+20>>2];g=H[c+12>>2];i=H[c+16>>2];g:{if((e|0)>=(g|0)&i>>>0>=K[c+8>>2]|(e|0)>(g|0)){break g}g=I[i+H[c>>2]|0];i=i+1|0;e=i?e:e+1|0;H[c+16>>2]=i;H[c+20>>2]=e;h:{switch(g-1|0){case 8:g=a;r=d;i=ca+-64|0;ca=i;H[i+56>>2]=0;H[i+48>>2]=0;H[i+52>>2]=0;H[i+40>>2]=0;H[i+44>>2]=0;H[i+32>>2]=0;H[i+36>>2]=0;H[i+24>>2]=0;H[i+28>>2]=0;H[i+16>>2]=0;H[i+20>>2]=0;H[i+8>>2]=0;H[i+12>>2]=0;j=i+8|0;a=J[c+38>>1];i:{j:{if(!a){break j}k:{if(a>>>0<=511){d=H[c+8>>2];b=H[c+12>>2];e=H[c+20>>2];a=H[c+16>>2];f=a+4|0;e=f>>>0<4?e+1|0:e;if(d>>>0>>0&(b|0)<=(e|0)|(b|0)<(e|0)){break j}a=a+H[c>>2]|0;h=I[a|0]|I[a+1|0]<<8|(I[a+2|0]<<16|I[a+3|0]<<24);H[j+12>>2]=h;e=H[c+20>>2];f=H[c+16>>2]+4|0;e=f>>>0<4?e+1|0:e;H[c+16>>2]=f;H[c+20>>2]=e;break k}if(!hb(1,j+12|0,c)){break j}f=H[c+16>>2];e=H[c+20>>2];h=H[j+12>>2]}a=H[c+8>>2];d=a-f|0;a=H[c+12>>2]-((a>>>0>>0)+e|0)|0;if(d>>>0>>6>>>0&(a|0)<=0|(a|0)<0){break j}b=H[j>>2];a=H[j+4>>2]-b>>2;l:{if(a>>>0>>0){ya(j,h-a|0);h=H[j+12>>2];break l}if(a>>>0<=h>>>0){break l}H[j+4>>2]=b+(h<<2)}d=1;if(!h){break i}f=H[c+16>>2];e=H[c+20>>2];s=H[j>>2];m=H[c+8>>2];n=H[c+12>>2];b=0;while(1){d=0;if((e|0)>=(n|0)&f>>>0>=m>>>0|(e|0)>(n|0)){break i}d=H[c>>2];p=I[d+f|0];f=f+1|0;e=f?e:e+1|0;H[c+16>>2]=f;H[c+20>>2]=e;a=p>>>2|0;l=0;m:{n:{o:{p:{t=p&3;switch(t|0){case 0:break n;case 3:break p;default:break o}}a=a+b|0;d=0;if(a>>>0>=h>>>0){break i}ra(s+(b<<2)|0,0,(p&252)+4|0);b=a;break m}while(1){if((f|0)==(m|0)&(e|0)==(n|0)){break j}h=I[d+f|0];f=f+1|0;e=f?e:e+1|0;H[c+16>>2]=f;H[c+20>>2]=e;a=h<<(l<<3|6)|a;l=l+1|0;if((t|0)!=(l|0)){continue}break}}H[s+(b<<2)>>2]=a}b=b+1|0;h=H[j+12>>2];if(b>>>0>>0){continue}break}a=j+16|0;n=H[j>>2];d=H[j+16>>2];b=H[j+20>>2]-d|0;q:{if(b>>>0<=32767){ya(a,8192-(b>>>2|0)|0);break q}if((b|0)==32768){break q}H[j+20>>2]=d+32768}d=j+28|0;b=H[d>>2];f=H[j+32>>2]-b>>3;r:{if(f>>>0>>0){ob(d,h-f|0);b=H[d>>2];break r}if(f>>>0>h>>>0){H[j+32>>2]=(h<<3)+b}if(!h){break j}}m=H[a>>2];f=0;d=0;while(1){e=n+(f<<2)|0;j=H[e>>2];l=(f<<3)+b|0;a=d;H[l+4>>2]=a;H[l>>2]=j;e=H[e>>2];d=e+a|0;if(d>>>0>8192){break j}s:{if(a>>>0>=d>>>0){break s}l=0;j=e&7;if(j){while(1){H[m+(a<<2)>>2]=f;a=a+1|0;l=l+1|0;if((j|0)!=(l|0)){continue}break}}if(e-1>>>0<=6){break s}while(1){e=m+(a<<2)|0;H[e>>2]=f;H[e+28>>2]=f;H[e+24>>2]=f;H[e+20>>2]=f;H[e+16>>2]=f;H[e+12>>2]=f;H[e+8>>2]=f;H[e+4>>2]=f;a=a+8|0;if((d|0)!=(a|0)){continue}break}}f=f+1|0;if((h|0)!=(f|0)){continue}break}k=(d|0)==8192}d=k}t:{if(!d|(H[i+20>>2]?0:g)){break t}d=0;m=ca-16|0;ca=m;u:{v:{if(J[c+38>>1]<=511){b=H[c+8>>2];a=H[c+12>>2];h=a;e=H[c+20>>2];k=H[c+16>>2];f=k+8|0;e=f>>>0<8?e+1|0:e;if(b>>>0>>0&(a|0)<=(e|0)|(a|0)<(e|0)){break u}k=k+H[c>>2]|0;a=I[k|0]|I[k+1|0]<<8|(I[k+2|0]<<16|I[k+3|0]<<24);k=I[k+4|0]|I[k+5|0]<<8|(I[k+6|0]<<16|I[k+7|0]<<24);H[c+16>>2]=f;H[c+20>>2]=e;break v}if(!gb(1,m+8|0,c)){break u}f=H[c+16>>2];e=H[c+20>>2];b=H[c+8>>2];h=H[c+12>>2];a=H[m+8>>2];k=H[m+12>>2]}j=b-f|0;b=h-((b>>>0>>0)+e|0)|0;if((b|0)==(k|0)&a>>>0>j>>>0|b>>>0>>0){break u}e=e+k|0;b=a+f|0;e=b>>>0>>0?e+1|0:e;H[c+16>>2]=b;H[c+20>>2]=e;if((a|0)<=0){break u}b=H[c>>2]+f|0;H[i+48>>2]=b;c=a-1|0;f=c+b|0;e=I[f|0];w:{if(e>>>0<=63){H[i+52>>2]=c;a=I[f|0]&63;break w}x:{switch((e>>>6|0)-1|0){case 0:if(a>>>0<2){break u}a=a-2|0;H[i+52>>2]=a;a=a+b|0;a=I[a+1|0]<<8&16128|I[a|0];break w;case 1:if(a>>>0<3){break u}a=a-3|0;H[i+52>>2]=a;a=a+b|0;a=I[a+1|0]<<8|I[a+2|0]<<16&4128768|I[a|0];break w;default:break x}}a=a-4|0;H[i+52>>2]=a;a=a+b|0;a=(I[a|0]|I[a+1|0]<<8|(I[a+2|0]<<16|I[a+3|0]<<24))&1073741823}H[i+56>>2]=a+32768;d=a>>>0<8355840}ca=m+16|0;if(!d){break t}if(!g){o=1;break t}b=H[i+52>>2];a=H[i+56>>2];c=H[i+36>>2];d=H[i+48>>2];f=H[i+24>>2];while(1){y:{if(a>>>0>32767){break y}while(1){if((b|0)<=0){break y}b=b-1|0;H[i+52>>2]=b;a=I[b+d|0]|a<<8;H[i+56>>2]=a;if(a>>>0<32768){continue}break}}e=a&8191;o=H[f+(e<<2)>>2];k=c+(o<<3)|0;a=(N(H[k>>2],a>>>13|0)+e|0)-H[k+4>>2]|0;H[i+56>>2]=a;H[r+(q<<2)>>2]=o;o=1;q=q+1|0;if((g|0)!=(q|0)){continue}break}}a=H[i+36>>2];if(a){H[i+40>>2]=a;oa(a)}a=H[i+24>>2];if(a){H[i+28>>2]=a;oa(a)}a=H[i+8>>2];if(a){H[i+12>>2]=a;oa(a)}ca=i- -64|0;b=o;break g;case 9:m=a;r=d;g=ca+-64|0;ca=g;H[g+56>>2]=0;H[g+48>>2]=0;H[g+52>>2]=0;H[g+40>>2]=0;H[g+44>>2]=0;H[g+32>>2]=0;H[g+36>>2]=0;H[g+24>>2]=0;H[g+28>>2]=0;H[g+16>>2]=0;H[g+20>>2]=0;H[g+8>>2]=0;H[g+12>>2]=0;j=g+8|0;a=J[c+38>>1];z:{A:{if(!a){break A}B:{if(a>>>0<=511){d=H[c+8>>2];b=H[c+12>>2];e=H[c+20>>2];a=H[c+16>>2];f=a+4|0;e=f>>>0<4?e+1|0:e;if(d>>>0>>0&(b|0)<=(e|0)|(b|0)<(e|0)){break A}a=a+H[c>>2]|0;h=I[a|0]|I[a+1|0]<<8|(I[a+2|0]<<16|I[a+3|0]<<24);H[j+12>>2]=h;e=H[c+20>>2];f=H[c+16>>2]+4|0;e=f>>>0<4?e+1|0:e;H[c+16>>2]=f;H[c+20>>2]=e;break B}if(!hb(1,j+12|0,c)){break A}f=H[c+16>>2];e=H[c+20>>2];h=H[j+12>>2]}a=H[c+8>>2];d=a-f|0;a=H[c+12>>2]-((a>>>0>>0)+e|0)|0;if(d>>>0>>6>>>0&(a|0)<=0|(a|0)<0){break A}b=H[j>>2];a=H[j+4>>2]-b>>2;C:{if(a>>>0>>0){ya(j,h-a|0);h=H[j+12>>2];break C}if(a>>>0<=h>>>0){break C}H[j+4>>2]=b+(h<<2)}d=1;if(!h){break z}f=H[c+16>>2];e=H[c+20>>2];s=H[j>>2];i=H[c+8>>2];n=H[c+12>>2];b=0;while(1){d=0;if((e|0)>=(n|0)&f>>>0>=i>>>0|(e|0)>(n|0)){break z}d=H[c>>2];p=I[d+f|0];f=f+1|0;e=f?e:e+1|0;H[c+16>>2]=f;H[c+20>>2]=e;a=p>>>2|0;l=0;D:{E:{F:{G:{t=p&3;switch(t|0){case 0:break E;case 3:break G;default:break F}}a=a+b|0;d=0;if(a>>>0>=h>>>0){break z}ra(s+(b<<2)|0,0,(p&252)+4|0);b=a;break D}while(1){if((f|0)==(i|0)&(e|0)==(n|0)){break A}h=I[d+f|0];f=f+1|0;e=f?e:e+1|0;H[c+16>>2]=f;H[c+20>>2]=e;a=h<<(l<<3|6)|a;l=l+1|0;if((t|0)!=(l|0)){continue}break}}H[s+(b<<2)>>2]=a}b=b+1|0;h=H[j+12>>2];if(b>>>0>>0){continue}break}a=j+16|0;n=H[j>>2];d=H[j+16>>2];b=H[j+20>>2]-d|0;H:{if(b>>>0<=131071){ya(a,32768-(b>>>2|0)|0);break H}if((b|0)==131072){break H}H[j+20>>2]=d+131072}d=j+28|0;b=H[d>>2];f=H[j+32>>2]-b>>3;I:{if(f>>>0>>0){ob(d,h-f|0);b=H[d>>2];break I}if(f>>>0>h>>>0){H[j+32>>2]=(h<<3)+b}if(!h){break A}}i=H[a>>2];f=0;d=0;while(1){e=n+(f<<2)|0;j=H[e>>2];l=(f<<3)+b|0;a=d;H[l+4>>2]=a;H[l>>2]=j;e=H[e>>2];d=e+a|0;if(d>>>0>32768){break A}J:{if(a>>>0>=d>>>0){break J}l=0;j=e&7;if(j){while(1){H[i+(a<<2)>>2]=f;a=a+1|0;l=l+1|0;if((j|0)!=(l|0)){continue}break}}if(e-1>>>0<=6){break J}while(1){e=i+(a<<2)|0;H[e>>2]=f;H[e+28>>2]=f;H[e+24>>2]=f;H[e+20>>2]=f;H[e+16>>2]=f;H[e+12>>2]=f;H[e+8>>2]=f;H[e+4>>2]=f;a=a+8|0;if((d|0)!=(a|0)){continue}break}}f=f+1|0;if((h|0)!=(f|0)){continue}break}k=(d|0)==32768}d=k}K:{if(!d|(H[g+20>>2]?0:m)){break K}d=0;j=ca-16|0;ca=j;L:{M:{if(J[c+38>>1]<=511){b=H[c+8>>2];a=H[c+12>>2];h=a;e=H[c+20>>2];k=H[c+16>>2];f=k+8|0;e=f>>>0<8?e+1|0:e;if(b>>>0>>0&(a|0)<=(e|0)|(a|0)<(e|0)){break L}k=k+H[c>>2]|0;a=I[k|0]|I[k+1|0]<<8|(I[k+2|0]<<16|I[k+3|0]<<24);k=I[k+4|0]|I[k+5|0]<<8|(I[k+6|0]<<16|I[k+7|0]<<24);H[c+16>>2]=f;H[c+20>>2]=e;break M}if(!gb(1,j+8|0,c)){break L}f=H[c+16>>2];e=H[c+20>>2];b=H[c+8>>2];h=H[c+12>>2];a=H[j+8>>2];k=H[j+12>>2]}i=b-f|0;b=h-((b>>>0>>0)+e|0)|0;if((b|0)==(k|0)&a>>>0>i>>>0|b>>>0>>0){break L}i=e+k|0;b=a+f|0;i=b>>>0>>0?i+1|0:i;H[c+16>>2]=b;H[c+20>>2]=i;if((a|0)<=0){break L}b=H[c>>2]+f|0;H[g+48>>2]=b;c=a-1|0;f=c+b|0;e=I[f|0];N:{if(e>>>0<=63){H[g+52>>2]=c;a=I[f|0]&63;break N}O:{switch((e>>>6|0)-1|0){case 0:if(a>>>0<2){break L}a=a-2|0;H[g+52>>2]=a;a=a+b|0;a=I[a+1|0]<<8&16128|I[a|0];break N;case 1:if(a>>>0<3){break L}a=a-3|0;H[g+52>>2]=a;a=a+b|0;a=I[a+1|0]<<8|I[a+2|0]<<16&4128768|I[a|0];break N;default:break O}}a=a-4|0;H[g+52>>2]=a;a=a+b|0;a=(I[a|0]|I[a+1|0]<<8|(I[a+2|0]<<16|I[a+3|0]<<24))&1073741823}H[g+56>>2]=a+131072;d=a>>>0<33423360}ca=j+16|0;if(!d){break K}if(!m){o=1;break K}b=H[g+52>>2];a=H[g+56>>2];c=H[g+36>>2];d=H[g+48>>2];f=H[g+24>>2];while(1){P:{if(a>>>0>131071){break P}while(1){if((b|0)<=0){break P}b=b-1|0;H[g+52>>2]=b;a=I[b+d|0]|a<<8;H[g+56>>2]=a;if(a>>>0<131072){continue}break}}e=a&32767;o=H[f+(e<<2)>>2];k=c+(o<<3)|0;a=(N(H[k>>2],a>>>15|0)+e|0)-H[k+4>>2]|0;H[g+56>>2]=a;H[r+(q<<2)>>2]=o;o=1;q=q+1|0;if((m|0)!=(q|0)){continue}break}}a=H[g+36>>2];if(a){H[g+40>>2]=a;oa(a)}a=H[g+24>>2];if(a){H[g+28>>2]=a;oa(a)}a=H[g+8>>2];if(a){H[g+12>>2]=a;oa(a)}ca=g- -64|0;b=o;break g;case 10:m=a;j=d;g=ca+-64|0;ca=g;H[g+56>>2]=0;H[g+48>>2]=0;H[g+52>>2]=0;H[g+40>>2]=0;H[g+44>>2]=0;H[g+32>>2]=0;H[g+36>>2]=0;H[g+24>>2]=0;H[g+28>>2]=0;H[g+16>>2]=0;H[g+20>>2]=0;H[g+8>>2]=0;H[g+12>>2]=0;n=g+8|0;a=J[c+38>>1];Q:{R:{if(!a){break R}S:{if(a>>>0<=511){d=H[c+8>>2];b=H[c+12>>2];e=H[c+20>>2];a=H[c+16>>2];f=a+4|0;e=f>>>0<4?e+1|0:e;if(d>>>0>>0&(b|0)<=(e|0)|(b|0)<(e|0)){break R}a=a+H[c>>2]|0;h=I[a|0]|I[a+1|0]<<8|(I[a+2|0]<<16|I[a+3|0]<<24);H[n+12>>2]=h;e=H[c+20>>2];f=H[c+16>>2]+4|0;e=f>>>0<4?e+1|0:e;H[c+16>>2]=f;H[c+20>>2]=e;break S}if(!hb(1,n+12|0,c)){break R}f=H[c+16>>2];e=H[c+20>>2];h=H[n+12>>2]}a=H[c+8>>2];d=a-f|0;a=H[c+12>>2]-((a>>>0>>0)+e|0)|0;if(d>>>0>>6>>>0&(a|0)<=0|(a|0)<0){break R}b=H[n>>2];a=H[n+4>>2]-b>>2;T:{if(a>>>0>>0){ya(n,h-a|0);h=H[n+12>>2];break T}if(a>>>0<=h>>>0){break T}H[n+4>>2]=b+(h<<2)}d=1;if(!h){break Q}f=H[c+16>>2];e=H[c+20>>2];t=H[n>>2];r=H[c+8>>2];p=H[c+12>>2];b=0;while(1){d=0;if((e|0)>=(p|0)&f>>>0>=r>>>0|(e|0)>(p|0)){break Q}d=H[c>>2];s=I[d+f|0];f=f+1|0;i=f?e:e+1|0;H[c+16>>2]=f;e=i;H[c+20>>2]=e;a=s>>>2|0;l=0;U:{V:{W:{X:{i=s&3;switch(i|0){case 0:break V;case 3:break X;default:break W}}a=a+b|0;d=0;if(a>>>0>=h>>>0){break Q}ra(t+(b<<2)|0,0,(s&252)+4|0);b=a;break U}while(1){if((f|0)==(r|0)&(e|0)==(p|0)){break R}h=I[d+f|0];f=f+1|0;e=f?e:e+1|0;H[c+16>>2]=f;H[c+20>>2]=e;a=h<<(l<<3|6)|a;l=l+1|0;if((i|0)!=(l|0)){continue}break}}H[t+(b<<2)>>2]=a}b=b+1|0;h=H[n+12>>2];if(b>>>0>>0){continue}break}a=n+16|0;r=H[n>>2];d=H[n+16>>2];b=H[n+20>>2]-d|0;Y:{if(b>>>0<=262143){ya(a,65536-(b>>>2|0)|0);break Y}if((b|0)==262144){break Y}H[n+20>>2]=d+262144}d=n+28|0;b=H[d>>2];f=H[n+32>>2]-b>>3;Z:{if(f>>>0>>0){ob(d,h-f|0);b=H[d>>2];break Z}if(f>>>0>h>>>0){H[n+32>>2]=(h<<3)+b}if(!h){break R}}i=H[a>>2];f=0;d=0;while(1){e=r+(f<<2)|0;l=H[e>>2];n=(f<<3)+b|0;a=d;H[n+4>>2]=a;H[n>>2]=l;e=H[e>>2];d=e+a|0;if(d>>>0>65536){break R}_:{if(a>>>0>=d>>>0){break _}l=0;n=e&7;if(n){while(1){H[i+(a<<2)>>2]=f;a=a+1|0;l=l+1|0;if((n|0)!=(l|0)){continue}break}}if(e-1>>>0<=6){break _}while(1){e=i+(a<<2)|0;H[e>>2]=f;H[e+28>>2]=f;H[e+24>>2]=f;H[e+20>>2]=f;H[e+16>>2]=f;H[e+12>>2]=f;H[e+8>>2]=f;H[e+4>>2]=f;a=a+8|0;if((d|0)!=(a|0)){continue}break}}f=f+1|0;if((h|0)!=(f|0)){continue}break}k=(d|0)==65536}d=k}$:{if(!d|(H[g+20>>2]?0:m)){break $}d=0;i=ca-16|0;ca=i;aa:{ba:{if(J[c+38>>1]<=511){b=H[c+8>>2];a=H[c+12>>2];h=a;e=H[c+20>>2];k=H[c+16>>2];f=k+8|0;e=f>>>0<8?e+1|0:e;if(b>>>0>>0&(a|0)<=(e|0)|(a|0)<(e|0)){break aa}k=k+H[c>>2]|0;a=I[k|0]|I[k+1|0]<<8|(I[k+2|0]<<16|I[k+3|0]<<24);k=I[k+4|0]|I[k+5|0]<<8|(I[k+6|0]<<16|I[k+7|0]<<24);H[c+16>>2]=f;H[c+20>>2]=e;break ba}if(!gb(1,i+8|0,c)){break aa}f=H[c+16>>2];e=H[c+20>>2];b=H[c+8>>2];h=H[c+12>>2];a=H[i+8>>2];k=H[i+12>>2]}r=b-f|0;b=h-((b>>>0>>0)+e|0)|0;if((b|0)==(k|0)&a>>>0>r>>>0|b>>>0>>0){break aa}e=e+k|0;b=a+f|0;e=b>>>0>>0?e+1|0:e;H[c+16>>2]=b;H[c+20>>2]=e;if((a|0)<=0){break aa}b=H[c>>2]+f|0;H[g+48>>2]=b;c=a-1|0;f=c+b|0;e=I[f|0];ca:{if(e>>>0<=63){H[g+52>>2]=c;a=I[f|0]&63;break ca}da:{switch((e>>>6|0)-1|0){case 0:if(a>>>0<2){break aa}a=a-2|0;H[g+52>>2]=a;a=a+b|0;a=I[a+1|0]<<8&16128|I[a|0];break ca;case 1:if(a>>>0<3){break aa}a=a-3|0;H[g+52>>2]=a;a=a+b|0;a=I[a+1|0]<<8|I[a+2|0]<<16&4128768|I[a|0];break ca;default:break da}}a=a-4|0;H[g+52>>2]=a;a=a+b|0;a=(I[a|0]|I[a+1|0]<<8|(I[a+2|0]<<16|I[a+3|0]<<24))&1073741823}H[g+56>>2]=a+262144;d=a>>>0<66846720}ca=i+16|0;if(!d){break $}if(!m){o=1;break $}b=H[g+52>>2];a=H[g+56>>2];c=H[g+36>>2];d=H[g+48>>2];f=H[g+24>>2];while(1){ea:{if(a>>>0>262143){break ea}while(1){if((b|0)<=0){break ea}b=b-1|0;H[g+52>>2]=b;a=I[b+d|0]|a<<8;H[g+56>>2]=a;if(a>>>0<262144){continue}break}}e=a&65535;o=H[f+(e<<2)>>2];k=c+(o<<3)|0;a=(N(H[k>>2],a>>>16|0)+e|0)-H[k+4>>2]|0;H[g+56>>2]=a;H[j+(q<<2)>>2]=o;o=1;q=q+1|0;if((m|0)!=(q|0)){continue}break}}a=H[g+36>>2];if(a){H[g+40>>2]=a;oa(a)}a=H[g+24>>2];if(a){H[g+28>>2]=a;oa(a)}a=H[g+8>>2];if(a){H[g+12>>2]=a;oa(a)}ca=g- -64|0;b=o;break g;case 11:m=a;r=d;g=ca+-64|0;ca=g;H[g+56>>2]=0;H[g+48>>2]=0;H[g+52>>2]=0;H[g+40>>2]=0;H[g+44>>2]=0;H[g+32>>2]=0;H[g+36>>2]=0;H[g+24>>2]=0;H[g+28>>2]=0;H[g+16>>2]=0;H[g+20>>2]=0;H[g+8>>2]=0;H[g+12>>2]=0;j=g+8|0;a=J[c+38>>1];fa:{ga:{if(!a){break ga}ha:{if(a>>>0<=511){d=H[c+8>>2];b=H[c+12>>2];e=H[c+20>>2];a=H[c+16>>2];f=a+4|0;e=f>>>0<4?e+1|0:e;if(d>>>0>>0&(b|0)<=(e|0)|(b|0)<(e|0)){break ga}a=a+H[c>>2]|0;h=I[a|0]|I[a+1|0]<<8|(I[a+2|0]<<16|I[a+3|0]<<24);H[j+12>>2]=h;i=H[c+20>>2];f=H[c+16>>2]+4|0;i=f>>>0<4?i+1|0:i;H[c+16>>2]=f;e=i;H[c+20>>2]=e;break ha}if(!hb(1,j+12|0,c)){break ga}f=H[c+16>>2];e=H[c+20>>2];h=H[j+12>>2]}a=H[c+8>>2];d=a-f|0;a=H[c+12>>2]-((a>>>0>>0)+e|0)|0;if(d>>>0>>6>>>0&(a|0)<=0|(a|0)<0){break ga}b=H[j>>2];a=H[j+4>>2]-b>>2;ia:{if(a>>>0>>0){ya(j,h-a|0);h=H[j+12>>2];break ia}if(a>>>0<=h>>>0){break ia}H[j+4>>2]=b+(h<<2)}d=1;if(!h){break fa}f=H[c+16>>2];e=H[c+20>>2];s=H[j>>2];i=H[c+8>>2];n=H[c+12>>2];b=0;while(1){d=0;if((e|0)>=(n|0)&f>>>0>=i>>>0|(e|0)>(n|0)){break fa}d=H[c>>2];p=I[d+f|0];f=f+1|0;e=f?e:e+1|0;H[c+16>>2]=f;H[c+20>>2]=e;a=p>>>2|0;l=0;ja:{ka:{la:{ma:{t=p&3;switch(t|0){case 0:break ka;case 3:break ma;default:break la}}a=a+b|0;d=0;if(a>>>0>=h>>>0){break fa}ra(s+(b<<2)|0,0,(p&252)+4|0);b=a;break ja}while(1){if((f|0)==(i|0)&(e|0)==(n|0)){break ga}h=I[d+f|0];f=f+1|0;e=f?e:e+1|0;H[c+16>>2]=f;H[c+20>>2]=e;a=h<<(l<<3|6)|a;l=l+1|0;if((t|0)!=(l|0)){continue}break}}H[s+(b<<2)>>2]=a}b=b+1|0;h=H[j+12>>2];if(b>>>0>>0){continue}break}a=j+16|0;n=H[j>>2];d=H[j+16>>2];b=H[j+20>>2]-d|0;na:{if(b>>>0<=1048575){ya(a,262144-(b>>>2|0)|0);break na}if((b|0)==1048576){break na}H[j+20>>2]=d- -1048576}d=j+28|0;b=H[d>>2];f=H[j+32>>2]-b>>3;oa:{if(f>>>0>>0){ob(d,h-f|0);b=H[d>>2];break oa}if(f>>>0>h>>>0){H[j+32>>2]=(h<<3)+b}if(!h){break ga}}i=H[a>>2];f=0;d=0;while(1){e=n+(f<<2)|0;j=H[e>>2];l=(f<<3)+b|0;a=d;H[l+4>>2]=a;H[l>>2]=j;e=H[e>>2];d=e+a|0;if(d>>>0>262144){break ga}pa:{if(a>>>0>=d>>>0){break pa}l=0;j=e&7;if(j){while(1){H[i+(a<<2)>>2]=f;a=a+1|0;l=l+1|0;if((j|0)!=(l|0)){continue}break}}if(e-1>>>0<=6){break pa}while(1){e=i+(a<<2)|0;H[e>>2]=f;H[e+28>>2]=f;H[e+24>>2]=f;H[e+20>>2]=f;H[e+16>>2]=f;H[e+12>>2]=f;H[e+8>>2]=f;H[e+4>>2]=f;a=a+8|0;if((d|0)!=(a|0)){continue}break}}f=f+1|0;if((h|0)!=(f|0)){continue}break}k=(d|0)==262144}d=k}qa:{if(!d|(H[g+20>>2]?0:m)){break qa}d=0;j=ca-16|0;ca=j;ra:{sa:{if(J[c+38>>1]<=511){b=H[c+8>>2];a=H[c+12>>2];h=a;i=H[c+20>>2];k=H[c+16>>2];f=k+8|0;i=f>>>0<8?i+1|0:i;e=i;if(b>>>0>>0&(e|0)>=(a|0)|(a|0)<(e|0)){break ra}k=k+H[c>>2]|0;a=I[k|0]|I[k+1|0]<<8|(I[k+2|0]<<16|I[k+3|0]<<24);k=I[k+4|0]|I[k+5|0]<<8|(I[k+6|0]<<16|I[k+7|0]<<24);H[c+16>>2]=f;H[c+20>>2]=e;break sa}if(!gb(1,j+8|0,c)){break ra}f=H[c+16>>2];e=H[c+20>>2];b=H[c+8>>2];h=H[c+12>>2];a=H[j+8>>2];k=H[j+12>>2]}i=b-f|0;b=h-((b>>>0>>0)+e|0)|0;if((b|0)==(k|0)&a>>>0>i>>>0|b>>>0>>0){break ra}e=e+k|0;b=a+f|0;e=b>>>0>>0?e+1|0:e;H[c+16>>2]=b;H[c+20>>2]=e;if((a|0)<=0){break ra}b=H[c>>2]+f|0;H[g+48>>2]=b;c=a-1|0;f=c+b|0;e=I[f|0];ta:{if(e>>>0<=63){H[g+52>>2]=c;a=I[f|0]&63;break ta}ua:{switch((e>>>6|0)-1|0){case 0:if(a>>>0<2){break ra}a=a-2|0;H[g+52>>2]=a;a=a+b|0;a=I[a+1|0]<<8&16128|I[a|0];break ta;case 1:if(a>>>0<3){break ra}a=a-3|0;H[g+52>>2]=a;a=a+b|0;a=I[a+1|0]<<8|I[a+2|0]<<16&4128768|I[a|0];break ta;default:break ua}}a=a-4|0;H[g+52>>2]=a;a=a+b|0;a=(I[a|0]|I[a+1|0]<<8|(I[a+2|0]<<16|I[a+3|0]<<24))&1073741823}H[g+56>>2]=a- -1048576;d=a>>>0<267386880}ca=j+16|0;if(!d){break qa}if(!m){o=1;break qa}b=H[g+52>>2];a=H[g+56>>2];c=H[g+36>>2];d=H[g+48>>2];f=H[g+24>>2];while(1){va:{if(a>>>0>1048575){break va}while(1){if((b|0)<=0){break va}b=b-1|0;H[g+52>>2]=b;a=I[b+d|0]|a<<8;H[g+56>>2]=a;if(a>>>0<1048576){continue}break}}e=a&262143;o=H[f+(e<<2)>>2];k=c+(o<<3)|0;a=(N(H[k>>2],a>>>18|0)+e|0)-H[k+4>>2]|0;H[g+56>>2]=a;H[r+(q<<2)>>2]=o;o=1;q=q+1|0;if((m|0)!=(q|0)){continue}break}}a=H[g+36>>2];if(a){H[g+40>>2]=a;oa(a)}a=H[g+24>>2];if(a){H[g+28>>2]=a;oa(a)}a=H[g+8>>2];if(a){H[g+12>>2]=a;oa(a)}ca=g- -64|0;b=o;break g;case 12:m=a;r=d;g=ca+-64|0;ca=g;H[g+56>>2]=0;H[g+48>>2]=0;H[g+52>>2]=0;H[g+40>>2]=0;H[g+44>>2]=0;H[g+32>>2]=0;H[g+36>>2]=0;H[g+24>>2]=0;H[g+28>>2]=0;H[g+16>>2]=0;H[g+20>>2]=0;H[g+8>>2]=0;H[g+12>>2]=0;j=g+8|0;a=J[c+38>>1];wa:{xa:{if(!a){break xa}ya:{if(a>>>0<=511){d=H[c+8>>2];b=H[c+12>>2];i=H[c+20>>2];a=H[c+16>>2];f=a+4|0;i=f>>>0<4?i+1|0:i;if(d>>>0>>0&(b|0)<=(i|0)|(b|0)<(i|0)){break xa}a=a+H[c>>2]|0;h=I[a|0]|I[a+1|0]<<8|(I[a+2|0]<<16|I[a+3|0]<<24);H[j+12>>2]=h;e=H[c+20>>2];f=H[c+16>>2]+4|0;e=f>>>0<4?e+1|0:e;H[c+16>>2]=f;H[c+20>>2]=e;break ya}if(!hb(1,j+12|0,c)){break xa}f=H[c+16>>2];e=H[c+20>>2];h=H[j+12>>2]}a=H[c+8>>2];d=a-f|0;a=H[c+12>>2]-((a>>>0>>0)+e|0)|0;if(d>>>0>>6>>>0&(a|0)<=0|(a|0)<0){break xa}b=H[j>>2];a=H[j+4>>2]-b>>2;za:{if(a>>>0>>0){ya(j,h-a|0);h=H[j+12>>2];break za}if(a>>>0<=h>>>0){break za}H[j+4>>2]=b+(h<<2)}d=1;if(!h){break wa}f=H[c+16>>2];e=H[c+20>>2];s=H[j>>2];i=H[c+8>>2];n=H[c+12>>2];b=0;while(1){d=0;if((e|0)>=(n|0)&f>>>0>=i>>>0|(e|0)>(n|0)){break wa}d=H[c>>2];p=I[d+f|0];f=f+1|0;e=f?e:e+1|0;H[c+16>>2]=f;H[c+20>>2]=e;a=p>>>2|0;l=0;Aa:{Ba:{Ca:{Da:{t=p&3;switch(t|0){case 0:break Ba;case 3:break Da;default:break Ca}}a=a+b|0;d=0;if(a>>>0>=h>>>0){break wa}ra(s+(b<<2)|0,0,(p&252)+4|0);b=a;break Aa}while(1){if((f|0)==(i|0)&(e|0)==(n|0)){break xa}h=I[d+f|0];f=f+1|0;e=f?e:e+1|0;H[c+16>>2]=f;H[c+20>>2]=e;a=h<<(l<<3|6)|a;l=l+1|0;if((t|0)!=(l|0)){continue}break}}H[s+(b<<2)>>2]=a}b=b+1|0;h=H[j+12>>2];if(b>>>0>>0){continue}break}a=j+16|0;n=H[j>>2];d=H[j+16>>2];b=H[j+20>>2]-d|0;Ea:{if(b>>>0<=2097151){ya(a,524288-(b>>>2|0)|0);break Ea}if((b|0)==2097152){break Ea}H[j+20>>2]=d+2097152}d=j+28|0;b=H[d>>2];f=H[j+32>>2]-b>>3;Fa:{if(f>>>0>>0){ob(d,h-f|0);b=H[d>>2];break Fa}if(f>>>0>h>>>0){H[j+32>>2]=(h<<3)+b}if(!h){break xa}}i=H[a>>2];f=0;d=0;while(1){e=n+(f<<2)|0;j=H[e>>2];l=(f<<3)+b|0;a=d;H[l+4>>2]=a;H[l>>2]=j;e=H[e>>2];d=e+a|0;if(d>>>0>524288){break xa}Ga:{if(a>>>0>=d>>>0){break Ga}l=0;j=e&7;if(j){while(1){H[i+(a<<2)>>2]=f;a=a+1|0;l=l+1|0;if((j|0)!=(l|0)){continue}break}}if(e-1>>>0<=6){break Ga}while(1){e=i+(a<<2)|0;H[e>>2]=f;H[e+28>>2]=f;H[e+24>>2]=f;H[e+20>>2]=f;H[e+16>>2]=f;H[e+12>>2]=f;H[e+8>>2]=f;H[e+4>>2]=f;a=a+8|0;if((d|0)!=(a|0)){continue}break}}f=f+1|0;if((h|0)!=(f|0)){continue}break}k=(d|0)==524288}d=k}Ha:{if(!d|(H[g+20>>2]?0:m)){break Ha}d=0;i=ca-16|0;ca=i;Ia:{Ja:{if(J[c+38>>1]<=511){b=H[c+8>>2];a=H[c+12>>2];h=a;e=H[c+20>>2];k=H[c+16>>2];f=k+8|0;e=f>>>0<8?e+1|0:e;if(b>>>0>>0&(a|0)<=(e|0)|(a|0)<(e|0)){break Ia}k=k+H[c>>2]|0;a=I[k|0]|I[k+1|0]<<8|(I[k+2|0]<<16|I[k+3|0]<<24);k=I[k+4|0]|I[k+5|0]<<8|(I[k+6|0]<<16|I[k+7|0]<<24);H[c+16>>2]=f;H[c+20>>2]=e;break Ja}if(!gb(1,i+8|0,c)){break Ia}f=H[c+16>>2];e=H[c+20>>2];b=H[c+8>>2];h=H[c+12>>2];a=H[i+8>>2];k=H[i+12>>2]}j=b-f|0;b=h-((b>>>0>>0)+e|0)|0;if((b|0)==(k|0)&a>>>0>j>>>0|b>>>0>>0){break Ia}e=e+k|0;b=a+f|0;e=b>>>0>>0?e+1|0:e;H[c+16>>2]=b;H[c+20>>2]=e;if((a|0)<=0){break Ia}b=H[c>>2]+f|0;H[g+48>>2]=b;c=a-1|0;f=c+b|0;e=I[f|0];Ka:{if(e>>>0<=63){H[g+52>>2]=c;a=I[f|0]&63;break Ka}La:{switch((e>>>6|0)-1|0){case 0:if(a>>>0<2){break Ia}a=a-2|0;H[g+52>>2]=a;a=a+b|0;a=I[a+1|0]<<8&16128|I[a|0];break Ka;case 1:if(a>>>0<3){break Ia}a=a-3|0;H[g+52>>2]=a;a=a+b|0;a=I[a+1|0]<<8|I[a+2|0]<<16&4128768|I[a|0];break Ka;default:break La}}a=a-4|0;H[g+52>>2]=a;a=a+b|0;a=(I[a|0]|I[a+1|0]<<8|(I[a+2|0]<<16|I[a+3|0]<<24))&1073741823}H[g+56>>2]=a+2097152;d=a>>>0<534773760}ca=i+16|0;if(!d){break Ha}if(!m){o=1;break Ha}b=H[g+52>>2];a=H[g+56>>2];c=H[g+36>>2];d=H[g+48>>2];f=H[g+24>>2];while(1){Ma:{if(a>>>0>2097151){break Ma}while(1){if((b|0)<=0){break Ma}b=b-1|0;H[g+52>>2]=b;a=I[b+d|0]|a<<8;H[g+56>>2]=a;if(a>>>0<2097152){continue}break}}e=a&524287;o=H[f+(e<<2)>>2];k=c+(o<<3)|0;a=(N(H[k>>2],a>>>19|0)+e|0)-H[k+4>>2]|0;H[g+56>>2]=a;H[r+(q<<2)>>2]=o;o=1;q=q+1|0;if((m|0)!=(q|0)){continue}break}}a=H[g+36>>2];if(a){H[g+40>>2]=a;oa(a)}a=H[g+24>>2];if(a){H[g+28>>2]=a;oa(a)}a=H[g+8>>2];if(a){H[g+12>>2]=a;oa(a)}ca=g- -64|0;b=o;break g;case 17:b=Le(a,c,d);break g;case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:b=ca+-64|0;ca=b;H[b+56>>2]=0;H[b+48>>2]=0;H[b+52>>2]=0;H[b+40>>2]=0;H[b+44>>2]=0;H[b+32>>2]=0;H[b+36>>2]=0;H[b+24>>2]=0;H[b+28>>2]=0;H[b+16>>2]=0;H[b+20>>2]=0;H[b+8>>2]=0;H[b+12>>2]=0;Na:{if(!Ne(b+8|0,c)|(H[b+20>>2]?0:a)){break Na}if(!Me(b+8|0,c)){break Na}if(!a){f=1;break Na}e=H[b+52>>2];c=H[b+56>>2];k=H[b+36>>2];i=H[b+48>>2];g=H[b+24>>2];while(1){Oa:{if(c>>>0>16383){break Oa}while(1){if((e|0)<=0){break Oa}e=e-1|0;H[b+52>>2]=e;c=I[e+i|0]|c<<8;H[b+56>>2]=c;if(c>>>0<16384){continue}break}}f=c&4095;m=H[g+(f<<2)>>2];r=k+(m<<3)|0;c=(N(H[r>>2],c>>>12|0)+f|0)-H[r+4>>2]|0;H[b+56>>2]=c;H[(o<<2)+d>>2]=m;f=1;o=o+1|0;if((o|0)!=(a|0)){continue}break}}a=H[b+36>>2];if(a){H[b+40>>2]=a;oa(a)}a=H[b+24>>2];if(a){H[b+28>>2]=a;oa(a)}a=H[b+8>>2];if(a){H[b+12>>2]=a;oa(a)}ca=b- -64|0;b=f;break g;case 13:case 14:case 15:case 16:break h;default:break g}}b=Le(a,c,d)}f=b}return f}function gi(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,L=0,M=0,O=0,P=0,Q=0,R=0;s=ca+-64|0;ca=s;H[a+132>>2]=0;if(H[a+148>>2]){c=H[a+144>>2];if(c){while(1){d=H[c>>2];oa(c);c=d;if(c){continue}break}}c=0;H[a+144>>2]=0;d=H[a+140>>2];a:{if(!d){break a}if(d>>>0>=4){g=d&-4;while(1){e=c<<2;H[e+H[a+136>>2]>>2]=0;H[H[a+136>>2]+(e|4)>>2]=0;H[H[a+136>>2]+(e|8)>>2]=0;H[H[a+136>>2]+(e|12)>>2]=0;c=c+4|0;b=b+4|0;if((g|0)!=(b|0)){continue}break}}b=d&3;if(!b){break a}while(1){H[H[a+136>>2]+(c<<2)>>2]=0;c=c+1|0;u=u+1|0;if((b|0)!=(u|0)){continue}break}}H[a+148>>2]=0}b:{c:{d:{c=H[a+4>>2];u=I[c+36|0];b=u<<8|I[c+37|0];if(b>>>0<=513){i=H[c+32>>2];e:{if(b>>>0<=511){d=H[i+20>>2];e=H[i+16>>2];b=e+4|0;d=b>>>0<4?d+1|0:d;g=b;f=K[i+8>>2]>>0;b=H[i+12>>2];if(f&(b|0)<=(d|0)|(b|0)<(d|0)){break d}b=e+H[i>>2]|0;b=I[b|0]|I[b+1|0]<<8|(I[b+2|0]<<16|I[b+3|0]<<24);H[i+16>>2]=g;H[i+20>>2]=d;break e}if(!Ea(1,s,i)){break d}c=H[a+4>>2];u=I[c+36|0];b=H[s>>2]}H[a+132>>2]=b}g=H[c+32>>2];f:{g:{h:{if((u&255)>>>0<=1){u=0;d=H[g+20>>2];e=H[g+16>>2];b=e+4|0;d=b>>>0<4?d+1|0:d;i=H[g+12>>2];if(K[g+8>>2]>>0&(i|0)<=(d|0)|(d|0)>(i|0)){break c}e=e+H[g>>2]|0;e=I[e|0]|I[e+1|0]<<8|(I[e+2|0]<<16|I[e+3|0]<<24);H[s+60>>2]=e;H[g+16>>2]=b;H[g+20>>2]=d;H[a+156>>2]=e;n=a+156|0;break h}u=0;if(!Ea(1,s+60|0,g)){break c}c=H[a+4>>2];b=I[c+36|0];H[a+156>>2]=H[s+60>>2];n=a+156|0;if(b>>>0>1){break g}}e=H[c+32>>2];i=H[e+8>>2];g=H[e+12>>2];d=H[e+20>>2];b=H[e+16>>2];c=b+4|0;d=c>>>0<4?d+1|0:d;if(c>>>0>i>>>0&(d|0)>=(g|0)|(d|0)>(g|0)){break c}b=b+H[e>>2]|0;b=I[b|0]|I[b+1|0]<<8|(I[b+2|0]<<16|I[b+3|0]<<24);H[s+56>>2]=b;H[e+16>>2]=c;H[e+20>>2]=d;break f}if(!Ea(1,s+56|0,H[c+32>>2])){break c}b=H[s+56>>2]}if(b>>>0>1431655765){break c}c=H[n>>2];d=N(b,3);if(c>>>0>d>>>0){break c}e=d>>>1|0;d=c>>31;g=Rj(c-1|0,d-!c|0,c,d);c=da;d=c>>>1|0;c=(c&1)<<31|g>>>1;if(!d&c>>>0>>0){break c}f=H[a+4>>2];g=H[f+32>>2];c=g;e=H[c+8>>2];i=H[c+16>>2];j=H[c+12>>2];d=H[c+20>>2];c=d;if((j|0)<=(c|0)&e>>>0<=i>>>0|(c|0)>(j|0)){break c}n=H[g>>2];o=I[n+i|0];h=i+1|0;c=h?c:c+1|0;H[g+16>>2]=h;H[g+20>>2]=c;i:{if(I[f+36|0]<=1){f=e;c=j;e=i+5|0;d=e>>>0<5?d+1|0:d;if((c|0)<=(d|0)&e>>>0>f>>>0|(c|0)<(d|0)){break c}c=h+n|0;n=I[c|0]|I[c+1|0]<<8|(I[c+2|0]<<16|I[c+3|0]<<24);H[s+52>>2]=n;H[g+16>>2]=e;H[g+20>>2]=d;break i}if(!Ea(1,s+52|0,g)){break c}n=H[s+52>>2]}if(b>>>0>>0|((n>>>0)/3|0)+n>>>0>>0){break c}c=H[a+4>>2];i=H[c+32>>2];j:{if(I[c+36|0]<=1){c=H[i+20>>2];e=H[i+16>>2];d=e+4|0;c=d>>>0<4?c+1|0:c;g=d;f=K[i+8>>2]>>0;d=H[i+12>>2];if(f&(d|0)<=(c|0)|(c|0)>(d|0)){break c}d=e+H[i>>2]|0;d=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);H[s+48>>2]=d;H[i+16>>2]=g;H[i+20>>2]=c;break j}if(!Ea(1,s+48|0,i)){break c}d=H[s+48>>2]}if(d>>>0>n>>>0){break c}H[a+28>>2]=H[a+24>>2];e=$b(pa(88));c=H[a+8>>2];H[a+8>>2]=e;if(c){cb(c);if(!H[a+8>>2]){break c}}H[a+164>>2]=H[a+160>>2];Jb(a+160|0,b);H[a+176>>2]=H[a+172>>2];Jb(a+172|0,b);H[a- -64>>2]=0;H[a+92>>2]=-1;H[a+84>>2]=-1;H[a+88>>2]=-1;H[a+40>>2]=H[a+36>>2];H[a+52>>2]=H[a+48>>2];H[a+76>>2]=H[a+72>>2];B=a+216|0;ed(B);dd(B,o);if(!Lc(H[a+8>>2],b,H[a+156>>2]+d|0)){break c}c=H[a+156>>2];F[s|0]=1;Oa(a+120|0,c+d|0,s);c=H[a+4>>2];b=J[c+36>>1];b=(b<<8|b>>>8)&65535;k:{if(b>>>0<=513){i=H[c+32>>2];l:{if(b>>>0<=511){c=H[i+20>>2];e=H[i+16>>2];b=e+4|0;c=b>>>0<4?c+1|0:c;g=b;f=K[i+8>>2]>>0;b=H[i+12>>2];if(f&(b|0)<=(c|0)|(c|0)>(b|0)){break c}b=e+H[i>>2]|0;b=I[b|0]|I[b+1|0]<<8|(I[b+2|0]<<16|I[b+3|0]<<24);H[i+16>>2]=g;H[i+20>>2]=c;break l}if(!Ea(1,s+44|0,i)){break c}b=H[s+44>>2]}if(!b){break c}c=H[H[a+4>>2]+32>>2];e=H[c+8>>2];g=H[c+16>>2];i=e-g|0;c=H[c+12>>2]-(H[c+20>>2]+(e>>>0>>0)|0)|0;if((c|0)<=0&b>>>0>i>>>0|(c|0)<0){break c}c=Ha(s);e=H[H[a+4>>2]+32>>2];g=H[e+16>>2];i=(g+H[e>>2]|0)+b|0;g=H[e+8>>2]-g|0;G[c+38>>1]=J[e+38>>1];H[c>>2]=i;H[c+16>>2]=0;H[c+20>>2]=0;H[c+8>>2]=g-b;H[c+12>>2]=0;C=Ib(a,c);if((C|0)==-1){break c}M=C>>31;break k}C=-1;M=-1;if((Ib(a,H[c+32>>2])|0)==-1){break c}}e=a+232|0;Ee(e,a);H[a+372>>2]=o;H[a+384>>2]=H[a+156>>2]+d;O=Ha(s);g=O;b=0;j=ca-16|0;ca=j;m:{n:{c=H[e+144>>2];c=J[(ea[H[H[c>>2]+32>>2]](c)|0)+36>>1];if(((c<<8|c>>>8)&65535)>>>0<=513){c=H[e+4>>2];H[e+40>>2]=H[e>>2];H[e+44>>2]=c;c=H[e+36>>2];H[e+72>>2]=H[e+32>>2];H[e+76>>2]=c;d=H[e+28>>2];c=e- -64|0;H[c>>2]=H[e+24>>2];H[c+4>>2]=d;c=H[e+20>>2];H[e+56>>2]=H[e+16>>2];H[e+60>>2]=c;c=H[e+12>>2];H[e+48>>2]=H[e+8>>2];H[e+52>>2]=c;if(!Db(e+40|0,1,j+8|0)){break n}c=H[e+44>>2];H[e>>2]=H[e+40>>2];H[e+4>>2]=c;c=H[e+76>>2];H[e+32>>2]=H[e+72>>2];H[e+36>>2]=c;c=H[e+68>>2];H[e+24>>2]=H[e+64>>2];H[e+28>>2]=c;c=H[e+60>>2];h=c;d=H[e+56>>2];H[e+16>>2]=d;H[e+20>>2]=c;i=H[e+52>>2];f=i;c=H[e+48>>2];H[e+8>>2]=c;H[e+12>>2]=f;o=c-d|0;k=H[j+12>>2];c=f-((c>>>0>>0)+h|0)|0;i=H[j+8>>2];if((k|0)==(c|0)&o>>>0>>0|c>>>0>>0){break n}c=h+k|0;f=d;d=d+i|0;c=f>>>0>d>>>0?c+1|0:c;H[e+16>>2]=d;H[e+20>>2]=c}o:{if(J[e+38>>1]<=513){c=H[e+4>>2];H[e+96>>2]=H[e>>2];H[e+100>>2]=c;c=H[e+36>>2];H[e+128>>2]=H[e+32>>2];H[e+132>>2]=c;c=H[e+28>>2];H[e+120>>2]=H[e+24>>2];H[e+124>>2]=c;c=H[e+20>>2];H[e+112>>2]=H[e+16>>2];H[e+116>>2]=c;c=H[e+12>>2];H[e+104>>2]=H[e+8>>2];H[e+108>>2]=c;if(!Db(e+96|0,1,j+8|0)){break n}c=H[e+100>>2];H[e>>2]=H[e+96>>2];H[e+4>>2]=c;c=H[e+132>>2];H[e+32>>2]=H[e+128>>2];H[e+36>>2]=c;c=H[e+124>>2];H[e+24>>2]=H[e+120>>2];H[e+28>>2]=c;d=H[e+116>>2];h=d;c=H[e+112>>2];H[e+16>>2]=c;H[e+20>>2]=d;i=H[e+108>>2];f=i;d=H[e+104>>2];H[e+8>>2]=d;H[e+12>>2]=f;o=d-c|0;k=H[j+12>>2];d=f-((c>>>0>d>>>0)+h|0)|0;i=H[j+8>>2];if((k|0)==(d|0)&o>>>0>>0|d>>>0>>0){break n}d=h+k|0;f=c;c=c+i|0;d=f>>>0>c>>>0?d+1|0:d;H[e+16>>2]=c;H[e+20>>2]=d;break o}if(!ta(e+80|0,e)){break m}}if(!Fe(e)){break m}c=H[e+4>>2];H[g>>2]=H[e>>2];H[g+4>>2]=c;c=H[e+36>>2];H[g+32>>2]=H[e+32>>2];H[g+36>>2]=c;c=H[e+28>>2];H[g+24>>2]=H[e+24>>2];H[g+28>>2]=c;c=H[e+20>>2];H[g+16>>2]=H[e+16>>2];H[g+20>>2]=c;c=H[e+12>>2];H[g+8>>2]=H[e+8>>2];H[g+12>>2]=c;c=H[e+144>>2];c=J[(ea[H[H[c>>2]+32>>2]](c)|0)+36>>1];p:{if(((c<<8|c>>>8)&65535)>>>0<=513){c=H[e+144>>2];q:{if(I[(ea[H[H[c>>2]+32>>2]](c)|0)+36|0]<=1){c=H[g+20>>2];i=H[g+16>>2];d=i+4|0;c=d>>>0<4?c+1|0:c;h=d;f=K[g+8>>2]>>0;d=H[g+12>>2];if(f&(d|0)<=(c|0)|(c|0)>(d|0)){break m}d=i+H[g>>2]|0;d=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);H[g+16>>2]=h;H[g+20>>2]=c;break q}if(!Ea(1,j+8|0,g)){break m}d=H[j+8>>2]}c=H[e+152>>2];if(d>>>0>=c>>>0){break m}d=H[g+20>>2];h=H[g+12>>2];i=H[g+16>>2];if((d|0)>=(h|0)&i>>>0>=K[g+8>>2]|(d|0)>(h|0)){break m}h=I[i+H[g>>2]|0];i=i+1|0;d=i?d:d+1|0;H[g+16>>2]=i;H[g+20>>2]=d;if(h){break m}H[e+176>>2]=2;H[e+180>>2]=7;break p}H[e+176>>2]=2;H[e+180>>2]=7;c=H[e+152>>2]}if((c|0)<0){break m}H[j+8>>2]=0;b=2;h=H[e+156>>2];i=H[e+160>>2]-h>>2;r:{if(i>>>0>>0){Pa(e+156|0,c-i|0,j+8|0);b=H[e+176>>2];d=H[e+180>>2];break r}d=7;if(c>>>0>=i>>>0){break r}H[e+160>>2]=h+(c<<2)}i=e+184|0;b=(d-b|0)+1|0;c=H[e+188>>2];h=H[e+184>>2];d=(c-h|0)/12|0;s:{if(b>>>0>d>>>0){o=0;d=b-d|0;f=H[i+8>>2];c=H[i+4>>2];t:{if(d>>>0<=(f-c|0)/12>>>0){if(d){b=c;c=N(d,12)-12|0;c=(c-((c>>>0)%12|0)|0)+12|0;c=ra(b,0,c)+c|0}H[i+4>>2]=c;break t}u:{v:{w:{h=H[i>>2];k=(c-h|0)/12|0;b=k+d|0;if(b>>>0<357913942){f=(f-h|0)/12|0;l=f<<1;f=f>>>0>=178956970?357913941:b>>>0>>0?l:b;if(f){if(f>>>0>=357913942){break w}o=pa(N(f,12))}b=N(k,12)+o|0;d=N(d,12)-12|0;k=(d-((d>>>0)%12|0)|0)+12|0;d=ra(b,0,k);k=d+k|0;f=N(f,12)+o|0;if((c|0)==(h|0)){break v}while(1){b=b-12|0;c=c-12|0;H[b>>2]=H[c>>2];H[b+4>>2]=H[c+4>>2];H[b+8>>2]=H[c+8>>2];H[c+8>>2]=0;H[c>>2]=0;H[c+4>>2]=0;if((c|0)!=(h|0)){continue}break}H[i+8>>2]=f;d=H[i+4>>2];H[i+4>>2]=k;c=H[i>>2];H[i>>2]=b;if((c|0)==(d|0)){break u}while(1){b=d-12|0;h=H[b>>2];if(h){H[d-8>>2]=h;oa(h)}d=b;if((b|0)!=(c|0)){continue}break}break u}break b}wa();v()}H[i+8>>2]=f;H[i+4>>2]=k;H[i>>2]=d}if(c){oa(c)}}d=H[e+188>>2];break s}if(b>>>0>=d>>>0){d=c;break s}d=h+N(b,12)|0;if((d|0)!=(c|0)){while(1){b=c-12|0;h=H[b>>2];if(h){H[c-8>>2]=h;oa(h)}c=b;if((d|0)!=(b|0)){continue}break}}H[e+188>>2]=d}f=e+196|0;b=H[e+184>>2];c=(d-b|0)/12|0;o=H[e+196>>2];h=H[e+200>>2]-o>>2;x:{if(c>>>0>h>>>0){ya(f,c-h|0);b=H[e+184>>2];d=H[e+188>>2];break x}if(c>>>0>=h>>>0){break x}H[e+200>>2]=o+(c<<2)}if((b|0)==(d|0)){b=1;break m}c=0;while(1){if(!Ea(1,j+8|0,g)){break n}b=H[e+148>>2];d=(H[b+4>>2]-H[b>>2]>>2>>>0)/3|0;b=H[j+8>>2];if(d>>>0>>0){break n}if(b){k=N(c,12);h=k+H[i>>2]|0;d=H[h>>2];o=H[h+4>>2]-d>>2;y:{if(o>>>0>>0){ya(h,b-o|0);d=H[k+H[i>>2]>>2];break y}if(b>>>0>=o>>>0){break y}H[h+4>>2]=(b<<2)+d}kd(b,1,g,d);H[H[f>>2]+(c<<2)>>2]=b}b=1;c=c+1|0;if(c>>>0<(H[e+188>>2]-H[e+184>>2]|0)/12>>>0){continue}break}break m}b=0}ca=j+16|0;z:{if(!b){break z}d=0;c=0;g=0;i=0;o=0;l=ca-96|0;ca=l;H[l+72>>2]=0;H[l+64>>2]=0;H[l+68>>2]=0;H[l+48>>2]=0;H[l+52>>2]=0;H[l+40>>2]=0;H[l+44>>2]=0;H[l+56>>2]=1065353216;H[l+32>>2]=0;H[l+24>>2]=0;H[l+28>>2]=0;j=a;L=H[a+124>>2];A:{B:{C:{D:{E:{if((n|0)<=0){break E}r=j+232|0;P=H[j+216>>2]!=H[j+220>>2];D=1;while(1){h=i;i=i+1|0;a=H[r+172>>2];F:{G:{if((a|0)!=-1){b=H[r+196>>2]+(a<<2)|0;f=H[b>>2];a=f-1|0;H[b>>2]=a;b=9;if((f|0)<=0){break F}a=H[H[H[r+184>>2]+N(H[r+172>>2],12)>>2]+(a<<2)>>2];if(a>>>0>4){break F}b=H[(a<<2)+12144>>2];break G}b=7;a=H[r+144>>2];a=J[(ea[H[H[a>>2]+32>>2]](a)|0)+36>>1];if(((a<<8|a>>>8)&65535)>>>0>513|!I[r+76|0]){break G}b=0;m=H[r- -64>>2];k=H[r+72>>2];a=m+(k>>>3|0)|0;p=H[r+68>>2];if(a>>>0>=p>>>0){break G}f=I[a|0];a=k+1|0;H[r+72>>2]=a;f=f>>>(k&7)&1;if(!f){break G}q=a>>>3|0;b=m+q|0;H:{if(b>>>0>=p>>>0){b=a;a=0;break H}t=I[b|0];b=k+2|0;H[r+72>>2]=b;q=b>>>3|0;a=t>>>(a&7)&1}k=m+q|0;if(k>>>0

>>0){k=I[k|0];H[r+72>>2]=b+1;b=k>>>(b&7)<<1&2}else{b=0}b=(a|b)<<1|f}H[r+168>>2]=b}a=b;I:{J:{if(!a){if((c|0)==(g|0)){b=-1;break D}d=-1;m=H[j+8>>2];t=H[m+24>>2];D=c-4|0;f=H[D>>2];a=-1;K:{if((f|0)==-1){break K}k=f+1|0;k=(k>>>0)%3|0?k:f-2|0;a=-1;if((k|0)==-1){break K}a=H[H[m>>2]+(k<<2)>>2]}b=H[t+(a<<2)>>2];if((b|0)!=-1){d=b+1|0;d=(d>>>0)%3|0?d:b-2|0}if((d|0)==(f|0)){b=-1;break D}if((f|0)!=-1){b=-1;if(H[H[m+12>>2]+(f<<2)>>2]!=-1){break D}}k=H[m+12>>2];if((d|0)!=-1){b=-1;if(H[k+(d<<2)>>2]!=-1){break D}}p=N(h,3);b=p+1|0;H[k+(f<<2)>>2]=b;w=b<<2;H[w+k>>2]=f;q=p+2|0;H[k+(d<<2)>>2]=q;y=q<<2;H[y+k>>2]=d;k=-1;h=-1;L:{if((f|0)==-1){break L}M:{if((f>>>0)%3|0){b=f-1|0;break M}b=f+2|0;h=-1;if((b|0)==-1){break L}}h=H[H[m>>2]+(b<<2)>>2]}N:{if((d|0)==-1){break N}b=d+1|0;b=(b>>>0)%3|0?b:d-2|0;if((b|0)==-1){break N}k=H[H[m>>2]+(b<<2)>>2]}b=-1;if((a|0)==(h|0)|(a|0)==(k|0)){break D}b=H[m>>2];H[b+(p<<2)>>2]=a;H[b+w>>2]=k;H[b+y>>2]=h;if((h|0)!=-1){H[t+(h<<2)>>2]=q}b=H[j+120>>2]+(a>>>3&536870908)|0;d=H[b>>2];Q=b,R=Vj(a)&d,H[Q>>2]=R;H[D>>2]=p;k=H[c-4>>2];break J}b=-1;O:{P:{Q:{R:{S:{T:{U:{V:{W:{switch(a-1|0){case 2:case 4:if((c|0)==(g|0)){break D}t=c-4|0;d=H[t>>2];f=H[j+8>>2];m=H[f+12>>2];if((d|0)!=-1&H[m+(d<<2)>>2]!=-1){break D}k=N(h,3);p=(a|0)==5;q=k+(p?2:1)|0;w=q<<2;H[w+m>>2]=d;H[m+(d<<2)>>2]=q;Ka(f+24|0,11424);a=H[j+8>>2];m=H[a+24>>2];if(H[a+28>>2]-m>>2>(L|0)){break D}a=H[a>>2];y=a+w|0;b=H[f+28>>2];f=H[f+24>>2];w=(b-f>>2)-1|0;H[y>>2]=w;if((b|0)!=(f|0)){H[m+(w<<2)>>2]=q}b=p?k:k+2|0;q=a+(k+p<<2)|0;X:{if((d|0)==-1){H[a+(b<<2)>>2]=-1;b=-1;break X}Y:{Z:{_:{if((d>>>0)%3|0){f=d-1|0;break _}f=d+2|0;if((f|0)==-1){break Z}}f=H[a+(f<<2)>>2];H[a+(b<<2)>>2]=f;if((f|0)==-1){break Y}H[m+(f<<2)>>2]=b;break Y}H[a+(b<<2)>>2]=-1}f=d+1|0;d=(f>>>0)%3|0?f:d-2|0;b=-1;if((d|0)==-1){break X}b=H[a+(d<<2)>>2]}H[q>>2]=b;H[t>>2]=k;break V;case 0:if((c|0)==(d|0)){break D}a=c-4|0;m=H[a>>2];H[l+68>>2]=a;p=H[l+44>>2];$:{if(!p){c=a;break $}f=H[l+40>>2];q=Uj(p)>>>0>1;b=h&p+2147483647;aa:{if(!q){break aa}b=h;if(b>>>0

>>0){break aa}b=(h>>>0)%(p>>>0)|0}k=b;b=H[f+(k<<2)>>2];if(!b){c=a;break $}b=H[b>>2];if(!b){c=a;break $}ba:{if(!q){f=p-1|0;while(1){p=H[b+4>>2];ca:{if((p|0)!=(h|0)){if((k|0)==(f&p)){break ca}c=a;break $}if((h|0)==H[b+8>>2]){break ba}}b=H[b>>2];if(b){continue}break}c=a;break $}while(1){f=H[b+4>>2];da:{if((f|0)!=(h|0)){if(f>>>0>=p>>>0){f=(f>>>0)%(p>>>0)|0}if((f|0)==(k|0)){break da}c=a;break $}if((h|0)==H[b+8>>2]){break ba}}b=H[b>>2];if(b){continue}break}c=a;break $}if((a|0)!=(x|0)){H[a>>2]=H[b+12>>2];H[l+68>>2]=c;break $}a=x-d|0;g=a>>2;c=g+1|0;if(c>>>0>=1073741824){break b}f=a>>>1|0;f=a>>>0>=2147483644?1073741823:c>>>0>>0?f:c;if(f){if(f>>>0>=1073741824){break B}a=pa(f<<2)}else{a=0}g=a+(g<<2)|0;H[g>>2]=H[b+12>>2];c=g+4|0;if((d|0)!=(x|0)){while(1){g=g-4|0;x=x-4|0;H[g>>2]=H[x>>2];if((d|0)!=(x|0)){continue}break}}x=a+(f<<2)|0;H[l+72>>2]=x;H[l+68>>2]=c;H[l+64>>2]=g;if(d){oa(d)}}if((c|0)==(g|0)){break P}w=c-4|0;a=H[w>>2];if((a|0)==(m|0)){break P}b=(a|0)==-1;p=H[j+8>>2];if(!b&H[H[p+12>>2]+(a<<2)>>2]!=-1){break P}q=H[p+12>>2];if((m|0)!=-1&H[q+(m<<2)>>2]!=-1){break P}k=N(h,3);t=k+2|0;H[q+(a<<2)>>2]=t;h=t<<2;H[h+q>>2]=a;d=k+1|0;H[q+(m<<2)>>2]=d;y=d<<2;H[y+q>>2]=m;if(b){break T}if((a>>>0)%3|0){f=a-1|0;break S}f=a+2|0;if((f|0)!=-1){break S}d=H[p>>2];f=-1;break R;case 6:break W;default:break D}}k=H[j+8>>2];Ka(k+24|0,11424);f=H[j+8>>2];a=N(h,3);m=H[k+28>>2];p=H[k+24>>2];q=m-p|0;k=q>>2;t=k-1|0;H[H[f>>2]+(a<<2)>>2]=t;Ka(f+24|0,11424);w=a+1|0;H[H[f>>2]+(w<<2)>>2]=(H[f+28>>2]-H[f+24>>2]>>2)-1;f=H[j+8>>2];Ka(f+24|0,11424);y=a+2|0;H[H[f>>2]+(y<<2)>>2]=(H[f+28>>2]-H[f+24>>2]>>2)-1;E=H[j+8>>2];f=H[E+24>>2];if(H[E+28>>2]-f>>2>(L|0)){break D}ea:{fa:{if((m|0)!=(p|0)){H[f+(t<<2)>>2]=a;b=0;if((q|0)==-4){break fa}}H[f+(k<<2)>>2]=w;b=k+1|0;if((b|0)==-1){break ea}}H[f+(b<<2)>>2]=y}if((c|0)!=(x|0)){H[c>>2]=a;c=c+4|0;H[l+68>>2]=c;break U}b=c-d|0;k=b>>2;g=k+1|0;if(g>>>0>=1073741824){break b}f=b>>>1|0;b=b>>>0>=2147483644?1073741823:g>>>0>>0?f:g;if(b){if(b>>>0>=1073741824){break B}f=pa(b<<2)}else{f=0}g=f+(k<<2)|0;H[g>>2]=a;x=f+(b<<2)|0;a=g+4|0;if((c|0)!=(d|0)){while(1){g=g-4|0;c=c-4|0;H[g>>2]=H[c>>2];if((c|0)!=(d|0)){continue}break}}H[l+72>>2]=x;H[l+68>>2]=a;H[l+64>>2]=g;if(d){oa(d)}c=a}d=g}Ce(r,H[c-4>>2]);a=H[j+40>>2];if((a|0)==H[j+36>>2]){break I}b=a-12|0;f=H[b+4>>2];h=(h^-1)+n|0;if(f>>>0>h>>>0){break P}if((f|0)!=(h|0)){break I}k=I[a-4|0];f=H[b>>2];H[j+40>>2]=b;if((f|0)<0){break P}m=c-4|0;a=H[m>>2];H[l+20>>2]=(f^-1)+n;b=l+20|0;H[l+88>>2]=b;Gb(l,l+40|0,b,l+88|0);f=H[l>>2];ga:{if(k&1){b=-1;if((a|0)==-1){break ga}b=a+1|0;b=(b>>>0)%3|0?b:a-2|0;break ga}b=-1;if((a|0)==-1){break ga}b=a-1|0;if((a>>>0)%3|0){break ga}b=a+2|0}H[f+12>>2]=b;b=H[j+40>>2];if((b|0)==H[j+36>>2]){break I}while(1){a=b-12|0;f=H[a+4>>2];if(f>>>0>h>>>0){break P}if((f|0)!=(h|0)){break I}f=I[b-4|0];b=H[a>>2];H[j+40>>2]=a;if((b|0)<0){break P}a=H[m>>2];H[l+20>>2]=(b^-1)+n;b=l+20|0;H[l+88>>2]=b;Gb(l,l+40|0,b,l+88|0);k=H[l>>2];ha:{if(f&1){b=-1;if((a|0)==-1){break ha}b=a+1|0;b=(b>>>0)%3|0?b:a-2|0;break ha}b=-1;if((a|0)==-1){break ha}b=a-1|0;if((a>>>0)%3|0){break ha}b=a+2|0}H[k+12>>2]=b;b=H[j+40>>2];if((b|0)!=H[j+36>>2]){continue}break}break I}f=-1;d=H[p>>2];H[d+(k<<2)>>2]=-1;b=-1;break Q}d=H[p>>2];f=H[d+(f<<2)>>2]}H[(k<<2)+d>>2]=f;E=a+1|0;a=(E>>>0)%3|0?E:a-2|0;b=-1;if((a|0)==-1){break Q}b=H[(a<<2)+d>>2]}H[d+y>>2]=b;ia:{if((m|0)==-1){H[d+h>>2]=-1;t=-1;a=-1;break ia}ja:{ka:{la:{if((m>>>0)%3|0){b=m-1|0;break la}b=m+2|0;if((b|0)==-1){break ka}}a=H[(b<<2)+d>>2];H[d+h>>2]=a;if((a|0)==-1){break ja}H[H[p+24>>2]+(a<<2)>>2]=t;break ja}H[d+h>>2]=-1}t=-1;b=m+1|0;b=(b>>>0)%3|0?b:m-2|0;a=-1;if((b|0)==-1){break ia}t=H[(b<<2)+d>>2];a=b}b=H[j+388>>2];h=f<<2;m=b+h|0;y=b;b=t<<2;H[m>>2]=H[m>>2]+H[y+b>>2];m=b;b=H[p+24>>2];m=m+b|0;if((f|0)!=-1){H[b+h>>2]=H[m>>2]}b=a;while(1){if((b|0)==-1){break O}H[(b<<2)+d>>2]=f;p=b+1|0;b=(p>>>0)%3|0?p:b-2|0;h=-1;ma:{if((b|0)==-1){break ma}b=H[q+(b<<2)>>2];h=-1;if((b|0)==-1){break ma}h=b+1|0;h=(h>>>0)%3|0?h:b-2|0}b=h;if((a|0)!=(b|0)){continue}break}}b=-1;if(!D){break E}break D}H[m>>2]=-1;na:{if(P){break na}if((z|0)!=(A|0)){H[A>>2]=t;A=A+4|0;H[l+28>>2]=A;break na}a=z-o|0;h=a>>2;b=h+1|0;if(b>>>0>=1073741824){break b}d=a>>>1|0;d=a>>>0>=2147483644?1073741823:b>>>0>>0?d:b;if(d){if(d>>>0>=1073741824){break B}a=pa(d<<2)}else{a=0}b=a+(h<<2)|0;H[b>>2]=t;A=b+4|0;if((o|0)!=(z|0)){while(1){b=b-4|0;z=z-4|0;H[b>>2]=H[z>>2];if((o|0)!=(z|0)){continue}break}}z=a+(d<<2)|0;H[l+32>>2]=z;H[l+28>>2]=A;H[l+24>>2]=b;if(o){oa(o)}o=b}H[w>>2]=k}Ce(r,k);d=g}D=(i|0)<(n|0);if((i|0)!=(n|0)){continue}break}i=n}b=-1;d=H[j+8>>2];if(H[d+28>>2]-H[d+24>>2]>>2>(L|0)){break D}if((c|0)!=(g|0)){x=j+72|0;h=j+60|0;p=j+312|0;while(1){c=c-4|0;o=H[c>>2];H[l+68>>2]=c;oa:{pa:{qa:{if(J[j+270>>1]<=513){if(!I[j+364|0]){break pa}a=H[j+360>>2];b=H[j+352>>2]+(a>>>3|0)|0;if(b>>>0>=K[j+356>>2]){break qa}b=I[b|0];H[j+360>>2]=a+1;if(!(b>>>(a&7)&1)){break qa}break pa}if(Ba(p)){break pa}}b=H[j+64>>2];a=H[j+68>>2];if((b|0)==a<<5){if((b+1|0)<0){break b}if(b>>>0<=1073741822){a=a<<6;b=(b&-32)+32|0;a=a>>>0>b>>>0?a:b}else{a=2147483647}pb(h,a);b=H[j+64>>2]}H[j+64>>2]=b+1;a=H[j+60>>2]+(b>>>3&536870908)|0;d=H[a>>2];Q=a,R=Vj(b)&d,H[Q>>2]=R;b=H[j+76>>2];if((b|0)!=H[j+80>>2]){H[b>>2]=o;H[j+76>>2]=b+4;break oa}d=H[x>>2];a=b-d|0;k=a>>2;f=k+1|0;if(f>>>0<1073741824){n=a>>>1|0;n=a>>>0>=2147483644?1073741823:f>>>0>>0?n:f;if(n){if(n>>>0>=1073741824){break B}a=pa(n<<2)}else{a=0}f=a+(k<<2)|0;H[f>>2]=o;o=f+4|0;if((b|0)!=(d|0)){while(1){f=f-4|0;b=b-4|0;H[f>>2]=H[b>>2];if((b|0)!=(d|0)){continue}break}}H[j+80>>2]=a+(n<<2);H[j+76>>2]=o;H[j+72>>2]=f;if(!d){break oa}oa(d);break oa}break b}m=H[j+8>>2];r=H[m>>2];if(((H[m+4>>2]-r>>2>>>0)/3|0)<=(i|0)){b=-1;break D}d=-1;q=H[m+24>>2];n=-1;ra:{if((o|0)==-1){break ra}g=o+1|0;g=(g>>>0)%3|0?g:o-2|0;n=-1;if((g|0)==-1){break ra}n=H[r+(g<<2)>>2]}a=H[q+(n<<2)>>2];sa:{if((a|0)==-1){k=1;f=-1;break sa}k=1;f=-1;b=a+1|0;a=(b>>>0)%3|0?b:a-2|0;if((a|0)==-1){break sa}k=0;d=a;b=a+1|0;b=(b>>>0)%3|0?b:a-2|0;if((b|0)!=-1){f=H[r+(b<<2)>>2]}}b=-1;g=-1;a=H[q+(f<<2)>>2];if((a|0)!=-1){g=a+1|0;g=(g>>>0)%3|0?g:a-2|0}if((d|0)==(o|0)|(g|0)==(o|0)|((o|0)!=-1&H[H[m+12>>2]+(o<<2)>>2]!=-1|(d|0)==(g|0))){break D}if(!k&H[H[m+12>>2]+(d<<2)>>2]!=-1){break D}k=-1;a=H[m+12>>2];m=-1;ta:{if((g|0)==-1){break ta}if(H[a+(g<<2)>>2]!=-1){break D}b=g+1|0;b=(b>>>0)%3|0?b:g-2|0;m=-1;if((b|0)==-1){break ta}m=H[r+(b<<2)>>2]}b=N(i,3);H[l>>2]=b;H[a+(b<<2)>>2]=o;H[a+(o<<2)>>2]=b;b=H[l>>2]+1|0;H[a+(b<<2)>>2]=d;H[a+(d<<2)>>2]=b;b=H[l>>2]+2|0;H[a+(b<<2)>>2]=g;H[a+(g<<2)>>2]=b;a=H[l>>2];H[r+(a<<2)>>2]=f;b=a+1|0;d=r+(b<<2)|0;H[d>>2]=m;g=a+2|0;o=r+(g<<2)|0;H[o>>2]=n;a=H[j+120>>2];f=b?f:-1;n=a+(f>>>3&536870908)|0;r=H[n>>2];Q=n,R=Vj(f)&r,H[Q>>2]=R;k=(b|0)!=-1?H[d>>2]:k;b=a+(k>>>3&536870908)|0;d=H[b>>2];Q=b,R=Vj(k)&d,H[Q>>2]=R;b=-1;b=(g|0)!=-1?H[o>>2]:b;a=a+(b>>>3&536870908)|0;d=H[a>>2];Q=a,R=Vj(b)&d,H[Q>>2]=R;F[l+88|0]=1;_c(h,l+88|0);Ka(x,l);i=i+1|0;g=H[l+64>>2]}if((c|0)!=(g|0)){continue}break}d=H[j+8>>2]}b=-1;if(((H[d+4>>2]-H[d>>2]>>2>>>0)/3|0)!=(i|0)){break D}b=H[d+28>>2]-H[d+24>>2]>>2;i=H[l+24>>2];f=H[l+28>>2];if((i|0)==(f|0)){break C}while(1){a=H[i>>2];h=H[d+24>>2];c=b-1|0;g=h+(c<<2)|0;if(H[g>>2]==-1){while(1){c=b-2|0;b=b-1|0;g=h+(c<<2)|0;if(H[g>>2]==-1){continue}break}}if(a>>>0<=c>>>0){H[l>>2]=d;g=H[g>>2];F[l+12|0]=1;H[l+8>>2]=g;H[l+4>>2]=g;if((g|0)!=-1){while(1){d=H[H[j+8>>2]>>2]+(g<<2)|0;if(H[d>>2]!=(c|0)){b=-1;break D}H[d>>2]=a;uc(l);g=H[l+8>>2];if((g|0)!=-1){continue}break}d=H[j+8>>2]}h=H[d+24>>2];g=h+(c<<2)|0;if((a|0)!=-1){H[h+(a<<2)>>2]=H[g>>2]}H[g>>2]=-1;g=1<>2];a=h+(a>>>3&536870908)|0;h=h+(c>>>3&536870908)|0;c=1<>2]&c){g=g|H[a>>2]}else{g=H[a>>2]&(g^-1)}H[a>>2]=g;H[h>>2]=H[h>>2]&(c^-1);b=b-1|0}i=i+4|0;if((f|0)!=(i|0)){continue}break}}i=H[l+24>>2]}if(i){oa(i)}a=H[l+48>>2];if(a){while(1){c=H[a>>2];oa(a);a=c;if(a){continue}break}}a=H[l+40>>2];H[l+40>>2]=0;if(a){oa(a)}a=H[l+64>>2];if(a){H[l+68>>2]=a;oa(a)}ca=l+96|0;break A}wa();v()}if((b|0)==-1){break z}a=O;c=H[a+16>>2];d=c+H[a>>2]|0;c=H[a+8>>2]-c|0;a=H[H[j+4>>2]+32>>2];G[a+38>>1]=J[a+38>>1];H[a>>2]=d;H[a+16>>2]=0;H[a+20>>2]=0;H[a+8>>2]=c;H[a+12>>2]=0;a=H[j+4>>2];c=J[a+36>>1];g=c<<8|c>>>8;if((g&65535)>>>0<=513){a=H[a+32>>2];c=H[a+16>>2];d=M+H[a+20>>2]|0;c=c+C|0;d=c>>>0>>0?d+1|0:d;H[a+16>>2]=c;H[a+20>>2]=d}ua:{if(H[j+216>>2]==H[j+220>>2]){break ua}c=H[j+8>>2];a=H[c>>2];c=H[c+4>>2];va:{if((g&65535)>>>0>=513){if((a|0)==(c|0)){break ua}c=0;break va}if((a|0)==(c|0)){break ua}c=0;while(1){if(cd(j,c)){c=c+3|0;a=H[j+8>>2];if(c>>>0>2]-H[a>>2]>>2>>>0){continue}break ua}break}break z}while(1){if(bd(j,c)){c=c+3|0;a=H[j+8>>2];if(c>>>0>2]-H[a>>2]>>2>>>0){continue}break ua}break}break z}ad(e);c=H[j+216>>2];if((c|0)!=H[j+220>>2]){n=0;while(1){d=N(n,144);Jc((d+c|0)+4|0,H[j+8>>2]);a=H[B>>2];e=a+d|0;c=H[e+132>>2];e=H[e+136>>2];if((c|0)!=(e|0)){while(1){Hc((d+H[B>>2]|0)+4|0,H[c>>2]);c=c+4|0;if((e|0)!=(c|0)){continue}break}a=H[B>>2]}if(!Ic((a+d|0)+4|0)){break z}n=n+1|0;c=H[j+216>>2];if(n>>>0<(H[j+220>>2]-c|0)/144>>>0){continue}break}}a=H[j+8>>2];Hb(j+184|0,H[a+28>>2]-H[a+24>>2]>>2);u=H[j+216>>2];if((u|0)!=H[j+220>>2]){c=0;while(1){a=N(c,144)+u|0;d=H[a+60>>2]-H[a+56>>2]>>2;f=a+104|0;a=H[j+8>>2];a=H[a+28>>2]-H[a+24>>2]>>2;Hb(f,(a|0)<(d|0)?d:a);c=c+1|0;u=H[j+216>>2];if(c>>>0<(H[j+220>>2]-u|0)/144>>>0){continue}break}}u=$c(j,b)}break c}u=0}ca=s- -64|0;return u|0}sa();v()}function ii(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,L=0,M=0,O=0,P=0,Q=0,R=0,S=0;u=ca+-64|0;ca=u;H[a+132>>2]=0;if(H[a+148>>2]){c=H[a+144>>2];if(c){while(1){b=H[c>>2];oa(c);c=b;if(b){continue}break}}c=0;H[a+144>>2]=0;k=H[a+140>>2];a:{if(!k){break a}if(k>>>0>=4){b=k&-4;while(1){f=c<<2;H[f+H[a+136>>2]>>2]=0;H[H[a+136>>2]+(f|4)>>2]=0;H[H[a+136>>2]+(f|8)>>2]=0;H[H[a+136>>2]+(f|12)>>2]=0;c=c+4|0;e=e+4|0;if((b|0)!=(e|0)){continue}break}}b=k&3;if(!b){break a}while(1){H[H[a+136>>2]+(c<<2)>>2]=0;c=c+1|0;w=w+1|0;if((b|0)!=(w|0)){continue}break}}H[a+148>>2]=0}b:{c:{c=H[a+4>>2];w=I[c+36|0];b=w<<8|I[c+37|0];if(b>>>0<=513){d=H[c+32>>2];d:{if(b>>>0<=511){b=H[d+20>>2];e=H[d+16>>2];f=e+4|0;b=f>>>0<4?b+1|0:b;k=H[d+12>>2];if(K[d+8>>2]>>0&(k|0)<=(b|0)|(b|0)>(k|0)){break c}e=e+H[d>>2]|0;e=I[e|0]|I[e+1|0]<<8|(I[e+2|0]<<16|I[e+3|0]<<24);H[d+16>>2]=f;H[d+20>>2]=b;break d}if(!Ea(1,u,d)){break c}c=H[a+4>>2];w=I[c+36|0];e=H[u>>2]}H[a+132>>2]=e}d=H[c+32>>2];e:{f:{g:{if((w&255)>>>0<=1){w=0;b=H[d+20>>2];f=H[d+16>>2];e=f+4|0;b=e>>>0<4?b+1|0:b;k=H[d+12>>2];if(K[d+8>>2]>>0&(k|0)<=(b|0)|(b|0)>(k|0)){break b}f=f+H[d>>2]|0;f=I[f|0]|I[f+1|0]<<8|(I[f+2|0]<<16|I[f+3|0]<<24);H[u+60>>2]=f;H[d+16>>2]=e;H[d+20>>2]=b;H[a+156>>2]=f;t=a+156|0;break g}w=0;if(!Ea(1,u+60|0,d)){break b}c=H[a+4>>2];b=I[c+36|0];H[a+156>>2]=H[u+60>>2];t=a+156|0;if(b>>>0>1){break f}}d=H[c+32>>2];f=H[d+8>>2];k=H[d+12>>2];c=H[d+20>>2];e=H[d+16>>2];b=e+4|0;c=b>>>0<4?c+1|0:c;if(b>>>0>f>>>0&(c|0)>=(k|0)|(c|0)>(k|0)){break b}e=e+H[d>>2]|0;e=I[e|0]|I[e+1|0]<<8|(I[e+2|0]<<16|I[e+3|0]<<24);H[u+56>>2]=e;H[d+16>>2]=b;H[d+20>>2]=c;break e}if(!Ea(1,u+56|0,H[c+32>>2])){break b}e=H[u+56>>2]}if(e>>>0>1431655765){break b}b=H[t>>2];c=N(e,3);if(b>>>0>c>>>0){break b}f=c>>>1|0;c=b>>31;c=Rj(b-1|0,c-!b|0,b,c);k=da;b=k>>>1|0;c=(k&1)<<31|c>>>1;if(!b&c>>>0>>0){break b}E=H[a+4>>2];x=H[E+32>>2];c=H[x+8>>2];d=H[x+12>>2];b=H[x+20>>2];g=H[x+16>>2];if((d|0)<=(b|0)&g>>>0>=c>>>0|(b|0)>(d|0)){break b}j=H[x>>2];l=I[j+g|0];f=x;k=g+1|0;h=k?b:b+1|0;H[f+16>>2]=k;H[f+20>>2]=h;h:{if(I[E+36|0]<=1){f=c;c=b;b=g+5|0;c=b>>>0<5?c+1|0:c;if(b>>>0>f>>>0&(c|0)>=(d|0)|(c|0)>(d|0)){break b}f=k+j|0;t=I[f|0]|I[f+1|0]<<8|(I[f+2|0]<<16|I[f+3|0]<<24);H[u+52>>2]=t;H[x+16>>2]=b;H[x+20>>2]=c;break h}if(!Ea(1,u+52|0,x)){break b}t=H[u+52>>2]}if(e>>>0>>0|((t>>>0)/3|0)+t>>>0>>0){break b}c=H[a+4>>2];d=H[c+32>>2];i:{if(I[c+36|0]<=1){c=H[d+20>>2];b=H[d+16>>2];f=b+4|0;c=f>>>0<4?c+1|0:c;k=H[d+12>>2];if(K[d+8>>2]>>0&(k|0)<=(c|0)|(c|0)>(k|0)){break b}b=b+H[d>>2]|0;b=I[b|0]|I[b+1|0]<<8|(I[b+2|0]<<16|I[b+3|0]<<24);H[u+48>>2]=b;H[d+16>>2]=f;H[d+20>>2]=c;break i}if(!Ea(1,u+48|0,d)){break b}b=H[u+48>>2]}if(b>>>0>t>>>0){break b}H[a+28>>2]=H[a+24>>2];c=$b(pa(88));f=H[a+8>>2];H[a+8>>2]=c;if(f){cb(f);if(!H[a+8>>2]){break b}}H[a+164>>2]=H[a+160>>2];Jb(a+160|0,e);H[a+176>>2]=H[a+172>>2];Jb(a+172|0,e);H[a- -64>>2]=0;H[a+92>>2]=-1;H[a+84>>2]=-1;H[a+88>>2]=-1;H[a+40>>2]=H[a+36>>2];H[a+52>>2]=H[a+48>>2];H[a+76>>2]=H[a+72>>2];M=a+216|0;ed(M);dd(M,l);if(!Lc(H[a+8>>2],e,H[a+156>>2]+b|0)){break b}c=H[a+156>>2];F[u|0]=1;Oa(a+120|0,b+c|0,u);e=H[a+4>>2];c=J[e+36>>1];c=(c<<8|c>>>8)&65535;j:{if(c>>>0<=513){d=H[e+32>>2];k:{if(c>>>0<=511){c=H[d+20>>2];e=H[d+16>>2];f=e+4|0;c=f>>>0<4?c+1|0:c;k=H[d+12>>2];if(K[d+8>>2]>>0&(k|0)<=(c|0)|(c|0)>(k|0)){break b}e=e+H[d>>2]|0;e=I[e|0]|I[e+1|0]<<8|(I[e+2|0]<<16|I[e+3|0]<<24);H[d+16>>2]=f;H[d+20>>2]=c;break k}if(!Ea(1,u+44|0,d)){break b}e=H[u+44>>2]}if(!e){break b}d=H[H[a+4>>2]+32>>2];k=H[d+8>>2];c=H[d+16>>2];f=k-c|0;c=H[d+12>>2]-(H[d+20>>2]+(c>>>0>k>>>0)|0)|0;if((c|0)<=0&e>>>0>f>>>0|(c|0)<0){break b}h=Ha(u);d=H[H[a+4>>2]+32>>2];c=d;k=H[c+16>>2];f=(k+H[c>>2]|0)+e|0;c=H[c+8>>2]-k|0;G[h+38>>1]=J[d+38>>1];H[h>>2]=f;H[h+16>>2]=0;H[h+20>>2]=0;H[h+8>>2]=c-e;H[h+12>>2]=0;c=Ib(a,h);if((c|0)==-1){break b}E=c;P=c>>31;break j}E=-1;P=-1;if((Ib(a,H[e+32>>2])|0)==-1){break b}}B=a+232|0;Ee(B,a);H[a+372>>2]=l;H[a+384>>2]=H[a+156>>2]+b;x=Ha(u);h=x;d=0;k=ca-16|0;ca=k;l:{if(!Ge(B,h)){break l}b=H[h+20>>2];e=H[h+16>>2];c=e+4|0;b=c>>>0<4?b+1|0:b;f=H[h+12>>2];if(K[h+8>>2]>>0&(f|0)<=(b|0)|(b|0)>(f|0)){break l}e=e+H[h>>2]|0;e=I[e|0]|I[e+1|0]<<8|(I[e+2|0]<<16|I[e+3|0]<<24);H[h+16>>2]=c;H[h+20>>2]=b;if((e|0)<0){break l}c=e;e=H[B+152>>2];if((c|0)>=(e|0)){break l}H[k+12>>2]=0;c=H[B+156>>2];b=H[B+160>>2]-c>>2;m:{if(b>>>0>>0){Pa(B+156|0,e-b|0,k+12|0);break m}if(b>>>0<=e>>>0){break m}H[B+160>>2]=c+(e<<2)}d=ta(B+168|0,h)}ca=k+16|0;n:{if(!d){break n}d=0;c=0;e=0;k=0;i=ca-96|0;ca=i;H[i+72>>2]=0;H[i+64>>2]=0;H[i+68>>2]=0;H[i+48>>2]=0;H[i+52>>2]=0;H[i+40>>2]=0;H[i+44>>2]=0;H[i+56>>2]=1065353216;H[i+32>>2]=0;H[i+24>>2]=0;H[i+28>>2]=0;h=a;O=H[a+124>>2];o:{p:{q:{r:{s:{t:{if((t|0)<=0){break t}z=h+400|0;Q=h+232|0;C=H[h+216>>2]!=H[h+220>>2];y=1;while(1){f=k;k=f+1|0;u:{v:{w:{x:{y:{if(H[h+420>>2]!=-1){if(Ba(z)){break y}}if(!I[h+308|0]){break x}z:{o=H[h+296>>2];r=H[h+304>>2];a=o+(r>>>3|0)|0;l=H[h+300>>2];if(a>>>0>=l>>>0){break z}b=I[a|0];a=r+1|0;H[h+304>>2]=a;g=b>>>(r&7)&1;if(!g){break z}n=a>>>3|0;b=o+n|0;A:{if(b>>>0>=l>>>0){b=a;a=0;break A}j=I[b|0];b=r+2|0;H[h+304>>2]=b;n=b>>>3|0;a=j>>>(a&7)&1}j=n+o|0;if(j>>>0>>0){j=I[j|0];H[h+304>>2]=b+1;b=j>>>(b&7)<<1&2}else{b=0}p=(a|b)<<1|g;H[h+416>>2]=p;break w}H[h+416>>2]=0;break x}p=H[h+420>>2];H[h+416>>2]=p;if(p){break w}}if((c|0)==(e|0)){b=-1;break s}p=-1;n=H[h+8>>2];o=H[n+24>>2];j=c-4|0;m=H[j>>2];d=-1;B:{if((m|0)==-1){break B}b=m+1|0;b=(b>>>0)%3|0?b:m-2|0;d=-1;if((b|0)==-1){break B}d=H[H[n>>2]+(b<<2)>>2]}b=H[o+(d<<2)>>2];if((b|0)!=-1){a=b+1|0;p=(a>>>0)%3|0?a:b-2|0}if((m|0)==(p|0)){b=-1;break s}if((m|0)!=-1){b=-1;if(H[H[n+12>>2]+(m<<2)>>2]!=-1){break s}}l=H[n+12>>2];if((p|0)!=-1){b=-1;if(H[l+(p<<2)>>2]!=-1){break s}}q=N(f,3);a=q+1|0;H[l+(m<<2)>>2]=a;g=a<<2;H[g+l>>2]=m;r=q+2|0;H[l+(p<<2)>>2]=r;f=r<<2;H[f+l>>2]=p;l=-1;a=-1;C:{if((m|0)==-1){break C}D:{if((m>>>0)%3|0){b=m-1|0;break D}b=m+2|0;a=-1;if((b|0)==-1){break C}}a=H[H[n>>2]+(b<<2)>>2]}E:{if((p|0)==-1){break E}b=p+1|0;b=(b>>>0)%3|0?b:p-2|0;if((b|0)==-1){break E}l=H[H[n>>2]+(b<<2)>>2]}b=-1;if((a|0)==(d|0)|(d|0)==(l|0)){break s}b=H[n>>2];H[b+(q<<2)>>2]=d;H[b+g>>2]=l;H[b+f>>2]=a;if((a|0)!=-1){H[o+(a<<2)>>2]=r}b=H[h+120>>2]+(d>>>3&536870908)|0;a=H[b>>2];R=b,S=Vj(d)&a,H[R>>2]=S;H[j>>2]=q;p=H[c-4>>2];break v}b=-1;F:{G:{H:{I:{J:{K:{L:{M:{N:{O:{P:{switch(p-1|0){case 2:case 4:if((c|0)==(e|0)){break s}g=c-4|0;m=H[g>>2];r=H[h+8>>2];d=H[r+12>>2];if((m|0)!=-1&H[d+(m<<2)>>2]!=-1){break s}q=N(f,3);l=(p|0)==5;j=q+(l?2:1)|0;a=j<<2;H[a+d>>2]=m;H[d+(m<<2)>>2]=j;Ka(r+24|0,11424);d=H[h+8>>2];o=H[d+24>>2];if(H[d+28>>2]-o>>2>(O|0)){break s}n=H[d>>2];p=n+a|0;d=H[r+28>>2];b=H[r+24>>2];a=(d-b>>2)-1|0;H[p>>2]=a;if((b|0)!=(d|0)){H[o+(a<<2)>>2]=j}d=l?q:q+2|0;j=n+(l+q<<2)|0;Q:{if((m|0)==-1){H[n+(d<<2)>>2]=-1;b=-1;break Q}R:{S:{T:{if((m>>>0)%3|0){a=m-1|0;break T}a=m+2|0;if((a|0)==-1){break S}}a=H[n+(a<<2)>>2];H[n+(d<<2)>>2]=a;if((a|0)==-1){break R}H[o+(a<<2)>>2]=d;break R}H[n+(d<<2)>>2]=-1}a=m+1|0;a=(a>>>0)%3|0?a:m-2|0;b=-1;if((a|0)==-1){break Q}b=H[n+(a<<2)>>2]}H[j>>2]=b;H[g>>2]=q;break O;case 0:if((c|0)==(d|0)){break s}a=c-4|0;m=H[a>>2];H[i+68>>2]=a;l=H[i+44>>2];U:{if(!l){c=a;break U}o=H[i+40>>2];g=Uj(l)>>>0>1;b=f&l+2147483647;V:{if(!g){break V}b=f;if(b>>>0>>0){break V}b=(f>>>0)%(l>>>0)|0}j=b;b=H[o+(j<<2)>>2];if(!b){c=a;break U}b=H[b>>2];if(!b){c=a;break U}W:{if(!g){l=l-1|0;while(1){g=H[b+4>>2];X:{if((g|0)!=(f|0)){if((j|0)==(g&l)){break X}c=a;break U}if((f|0)==H[b+8>>2]){break W}}b=H[b>>2];if(b){continue}break}c=a;break U}while(1){g=H[b+4>>2];Y:{if((g|0)!=(f|0)){if(g>>>0>=l>>>0){g=(g>>>0)%(l>>>0)|0}if((g|0)==(j|0)){break Y}c=a;break U}if((f|0)==H[b+8>>2]){break W}}b=H[b>>2];if(b){continue}break}c=a;break U}if((a|0)!=(A|0)){H[a>>2]=H[b+12>>2];H[i+68>>2]=c;break U}g=A-d|0;c=g>>2;e=c+1|0;if(e>>>0>=1073741824){break M}a=g>>>1|0;g=g>>>0>=2147483644?1073741823:a>>>0>e>>>0?a:e;if(g){if(g>>>0>=1073741824){break p}a=pa(g<<2)}else{a=0}e=a+(c<<2)|0;H[e>>2]=H[b+12>>2];c=e+4|0;if((d|0)!=(A|0)){while(1){e=e-4|0;A=A-4|0;H[e>>2]=H[A>>2];if((d|0)!=(A|0)){continue}break}}A=a+(g<<2)|0;H[i+72>>2]=A;H[i+68>>2]=c;H[i+64>>2]=e;if(d){oa(d)}}if((c|0)==(e|0)){break G}j=c-4|0;n=H[j>>2];if((n|0)==(m|0)){break G}d=(n|0)==-1;q=H[h+8>>2];if(!d&H[H[q+12>>2]+(n<<2)>>2]!=-1){break G}r=H[q+12>>2];if((m|0)!=-1&H[r+(m<<2)>>2]!=-1){break G}p=N(f,3);f=p+2|0;H[r+(n<<2)>>2]=f;o=f<<2;H[o+r>>2]=n;a=p+1|0;H[r+(m<<2)>>2]=a;b=a<<2;H[b+r>>2]=m;if(d){break L}if((n>>>0)%3|0){l=n-1|0;break J}l=n+2|0;if((l|0)!=-1){break J}d=H[q>>2];a=-1;break I;case 6:break P;default:break s}}a=H[h+8>>2];Ka(a+24|0,11424);g=H[h+8>>2];p=N(f,3);q=H[a+28>>2];r=H[a+24>>2];o=q-r|0;n=o>>2;l=n-1|0;H[H[g>>2]+(p<<2)>>2]=l;Ka(g+24|0,11424);j=p+1|0;H[H[g>>2]+(j<<2)>>2]=(H[g+28>>2]-H[g+24>>2]>>2)-1;a=H[h+8>>2];Ka(a+24|0,11424);g=p+2|0;H[H[a>>2]+(g<<2)>>2]=(H[a+28>>2]-H[a+24>>2]>>2)-1;a=H[h+8>>2];m=H[a+24>>2];if(H[a+28>>2]-m>>2>(O|0)){break s}Z:{_:{if((q|0)!=(r|0)){H[m+(l<<2)>>2]=p;b=0;if((o|0)==-4){break _}}H[m+(n<<2)>>2]=j;b=n+1|0;if((b|0)==-1){break Z}}H[m+(b<<2)>>2]=g}if((c|0)!=(A|0)){H[c>>2]=p;c=c+4|0;H[i+68>>2]=c;break N}g=c-d|0;b=g>>2;e=b+1|0;if(e>>>0>=1073741824){break K}a=g>>>1|0;g=g>>>0>=2147483644?1073741823:a>>>0>e>>>0?a:e;if(g){if(g>>>0>=1073741824){break p}a=pa(g<<2)}else{a=0}e=a+(b<<2)|0;H[e>>2]=p;A=a+(g<<2)|0;a=e+4|0;if((c|0)!=(d|0)){while(1){e=e-4|0;c=c-4|0;H[e>>2]=H[c>>2];if((c|0)!=(d|0)){continue}break}}H[i+72>>2]=A;H[i+68>>2]=a;H[i+64>>2]=e;if(d){oa(d)}c=a}d=e}De(Q,H[c-4>>2]);g=H[h+40>>2];if((g|0)==H[h+36>>2]){break u}b=g-12|0;a=H[b+4>>2];l=(f^-1)+t|0;if(a>>>0>l>>>0){break G}if((a|0)!=(l|0)){break u}f=I[g-4|0];a=H[b>>2];H[h+40>>2]=b;if((a|0)<0){break G}g=c-4|0;j=H[g>>2];H[i+20>>2]=(a^-1)+t;a=i+20|0;H[i+88>>2]=a;Gb(i,i+40|0,a,i+88|0);b=H[i>>2];$:{if(f&1){a=-1;if((j|0)==-1){break $}a=j+1|0;a=(a>>>0)%3|0?a:j-2|0;break $}a=-1;if((j|0)==-1){break $}a=j-1|0;if((j>>>0)%3|0){break $}a=j+2|0}H[b+12>>2]=a;b=H[h+40>>2];if((b|0)==H[h+36>>2]){break u}while(1){j=b-12|0;a=H[j+4>>2];if(a>>>0>l>>>0){break G}if((a|0)!=(l|0)){break u}f=I[b-4|0];a=H[j>>2];H[h+40>>2]=j;if((a|0)<0){break G}j=H[g>>2];H[i+20>>2]=(a^-1)+t;a=i+20|0;H[i+88>>2]=a;Gb(i,i+40|0,a,i+88|0);b=H[i>>2];aa:{if(f&1){a=-1;if((j|0)==-1){break aa}a=j+1|0;a=(a>>>0)%3|0?a:j-2|0;break aa}a=-1;if((j|0)==-1){break aa}a=j-1|0;if((j>>>0)%3|0){break aa}a=j+2|0}H[b+12>>2]=a;b=H[h+40>>2];if((b|0)!=H[h+36>>2]){continue}break}break u}sa();v()}l=-1;d=H[q>>2];H[d+(p<<2)>>2]=-1;g=-1;break H}sa();v()}d=H[q>>2];a=H[d+(l<<2)>>2]}l=a;H[(p<<2)+d>>2]=a;a=n+1|0;a=(a>>>0)%3|0?a:n-2|0;g=-1;if((a|0)==-1){break H}g=H[(a<<2)+d>>2]}H[b+d>>2]=g;ba:{if((m|0)==-1){H[d+o>>2]=-1;n=-1;a=-1;break ba}ca:{da:{ea:{if((m>>>0)%3|0){b=m-1|0;break ea}b=m+2|0;if((b|0)==-1){break da}}a=H[(b<<2)+d>>2];H[d+o>>2]=a;if((a|0)==-1){break ca}H[H[q+24>>2]+(a<<2)>>2]=f;break ca}H[d+o>>2]=-1}n=-1;b=m+1|0;b=(b>>>0)%3|0?b:m-2|0;a=-1;if((b|0)==-1){break ba}n=H[(b<<2)+d>>2];a=b}g=H[h+388>>2];f=l<<2;b=g+f|0;o=b;m=H[b>>2];b=n<<2;H[o>>2]=m+H[b+g>>2];g=b;b=H[q+24>>2];o=g+b|0;if((l|0)!=-1){H[b+f>>2]=H[o>>2]}b=a;while(1){if((b|0)==-1){break F}H[(b<<2)+d>>2]=l;g=b+1|0;b=(g>>>0)%3|0?g:b-2|0;f=-1;fa:{if((b|0)==-1){break fa}g=H[r+(b<<2)>>2];f=-1;if((g|0)==-1){break fa}b=g+1|0;f=(b>>>0)%3|0?b:g-2|0}b=f;if((a|0)!=(b|0)){continue}break}}b=-1;if(!(y&1)){break t}break s}H[o>>2]=-1;ga:{if(C){break ga}if((D|0)!=(L|0)){H[L>>2]=n;L=L+4|0;H[i+28>>2]=L;break ga}d=D-s|0;b=d>>2;f=b+1|0;if(f>>>0>=1073741824){break q}a=d>>>1|0;f=d>>>0>=2147483644?1073741823:a>>>0>f>>>0?a:f;if(f){if(f>>>0>=1073741824){break p}a=pa(f<<2)}else{a=0}b=a+(b<<2)|0;H[b>>2]=n;L=b+4|0;if((s|0)!=(D|0)){while(1){b=b-4|0;D=D-4|0;H[b>>2]=H[D>>2];if((s|0)!=(D|0)){continue}break}}D=a+(f<<2)|0;H[i+32>>2]=D;H[i+28>>2]=L;H[i+24>>2]=b;if(s){oa(s)}s=b}H[j>>2]=p}De(Q,p);d=e}y=(k|0)<(t|0);if((k|0)!=(t|0)){continue}break}k=t}b=-1;y=H[h+8>>2];if(H[y+28>>2]-H[y+24>>2]>>2>(O|0)){break s}if((c|0)!=(e|0)){r=h+72|0;j=h+60|0;t=h+312|0;while(1){c=c-4|0;z=H[c>>2];H[i+68>>2]=c;ha:{ia:{ja:{if(J[h+270>>1]<=513){if(!I[h+364|0]){break ia}b=H[h+360>>2];a=H[h+352>>2]+(b>>>3|0)|0;if(a>>>0>=K[h+356>>2]){break ja}a=I[a|0];H[h+360>>2]=b+1;if(!(a>>>(b&7)&1)){break ja}break ia}if(Ba(t)){break ia}}ka:{la:{b=H[h+64>>2];f=H[h+68>>2];if((b|0)==f<<5){if((b+1|0)<0){break la}if(b>>>0<=1073741822){f=f<<6;b=(b&-32)+32|0;a=b>>>0>>0?f:b}else{a=2147483647}pb(j,a);b=H[h+64>>2]}H[h+64>>2]=b+1;f=H[h+60>>2]+(b>>>3&536870908)|0;a=H[f>>2];R=f,S=Vj(b)&a,H[R>>2]=S;b=H[h+76>>2];if((b|0)!=H[h+80>>2]){H[b>>2]=z;H[h+76>>2]=b+4;break ha}s=H[r>>2];g=b-s|0;f=g>>2;d=f+1|0;if(d>>>0>=1073741824){break ka}a=g>>>1|0;g=g>>>0>=2147483644?1073741823:a>>>0>d>>>0?a:d;if(g){if(g>>>0>=1073741824){break p}a=pa(g<<2)}else{a=0}d=a+(f<<2)|0;H[d>>2]=z;f=d+4|0;if((b|0)!=(s|0)){while(1){d=d-4|0;b=b-4|0;H[d>>2]=H[b>>2];if((b|0)!=(s|0)){continue}break}}H[h+80>>2]=a+(g<<2);H[h+76>>2]=f;H[h+72>>2]=d;if(!s){break ha}oa(s);break ha}sa();v()}sa();v()}q=H[h+8>>2];C=H[q>>2];if(((H[q+4>>2]-C>>2>>>0)/3|0)<=(k|0)){b=-1;break s}e=-1;b=-1;d=-1;s=H[q+24>>2];f=-1;ma:{if((z|0)==-1){break ma}a=z+1|0;a=(a>>>0)%3|0?a:z-2|0;f=-1;if((a|0)==-1){break ma}f=H[C+(a<<2)>>2]}o=H[s+(f<<2)>>2];na:{if((o|0)==-1){l=1;a=-1;break na}l=1;g=o+1|0;g=(g>>>0)%3|0?g:o-2|0;a=-1;if((g|0)==-1){break na}l=0;a=g+1|0;e=g;a=(a>>>0)%3|0?a:e-2|0;if((a|0)!=-1){a=H[C+(a<<2)>>2]}else{a=-1}}g=H[(a<<2)+s>>2];if((g|0)!=-1){d=g+1|0;d=(d>>>0)%3|0?d:g-2|0}if((e|0)==(z|0)|(d|0)==(z|0)|((z|0)!=-1&H[H[q+12>>2]+(z<<2)>>2]!=-1|(d|0)==(e|0))){break s}if(!l&H[H[q+12>>2]+(e<<2)>>2]!=-1){break s}l=-1;s=H[q+12>>2];g=-1;oa:{if((d|0)==-1){break oa}if(H[s+(d<<2)>>2]!=-1){break s}b=d+1|0;b=(b>>>0)%3|0?b:d-2|0;g=-1;if((b|0)==-1){break oa}g=H[C+(b<<2)>>2]}b=N(k,3);H[i>>2]=b;H[s+(b<<2)>>2]=z;H[s+(z<<2)>>2]=b;b=H[i>>2]+1|0;H[s+(b<<2)>>2]=e;H[s+(e<<2)>>2]=b;b=H[i>>2]+2|0;H[s+(b<<2)>>2]=d;H[s+(d<<2)>>2]=b;b=H[i>>2];H[C+(b<<2)>>2]=a;o=b+1|0;s=C+(o<<2)|0;H[s>>2]=g;g=b+2|0;d=C+(g<<2)|0;H[d>>2]=f;f=H[h+120>>2];e=o?a:-1;b=f+(e>>>3&536870908)|0;a=H[b>>2];R=b,S=Vj(e)&a,H[R>>2]=S;l=(o|0)!=-1?H[s>>2]:l;b=f+(l>>>3&536870908)|0;a=H[b>>2];R=b,S=Vj(l)&a,H[R>>2]=S;b=-1;b=(g|0)!=-1?H[d>>2]:b;e=f+(b>>>3&536870908)|0;a=H[e>>2];R=e,S=Vj(b)&a,H[R>>2]=S;F[i+88|0]=1;_c(j,i+88|0);Ka(r,i);k=k+1|0;e=H[i+64>>2]}if((c|0)!=(e|0)){continue}break}y=H[h+8>>2]}b=-1;if(((H[y+4>>2]-H[y>>2]>>2>>>0)/3|0)!=(k|0)){break s}b=H[y+28>>2]-H[y+24>>2]>>2;k=H[i+24>>2];f=H[i+28>>2];if((k|0)==(f|0)){break r}while(1){j=H[k>>2];a=H[y+24>>2];c=b-1|0;d=a+(c<<2)|0;if(H[d>>2]==-1){while(1){c=b-2|0;b=b-1|0;d=a+(c<<2)|0;if(H[d>>2]==-1){continue}break}}if(c>>>0>=j>>>0){H[i>>2]=y;d=H[d>>2];F[i+12|0]=1;H[i+8>>2]=d;H[i+4>>2]=d;if((d|0)!=-1){while(1){a=H[H[h+8>>2]>>2]+(d<<2)|0;if(H[a>>2]!=(c|0)){b=-1;break s}H[a>>2]=j;uc(i);d=H[i+8>>2];if((d|0)!=-1){continue}break}y=H[h+8>>2]}a=H[y+24>>2];e=a+(c<<2)|0;if((j|0)!=-1){H[a+(j<<2)>>2]=H[e>>2]}H[e>>2]=-1;g=1<>2];e=a+(j>>>3&536870908)|0;d=a+(c>>>3&536870908)|0;a=1<>2]&a){c=g|H[e>>2]}else{c=H[e>>2]&(g^-1)}H[e>>2]=c;H[d>>2]=H[d>>2]&(a^-1);b=b-1|0}k=k+4|0;if((f|0)!=(k|0)){continue}break}}k=H[i+24>>2]}if(k){oa(k)}a=H[i+48>>2];if(a){while(1){c=H[a>>2];oa(a);a=c;if(a){continue}break}}a=H[i+40>>2];H[i+40>>2]=0;if(a){oa(a)}a=H[i+64>>2];if(a){H[i+68>>2]=a;oa(a)}ca=i+96|0;break o}sa();v()}wa();v()}if((b|0)==-1){break n}e=H[x+16>>2];c=e+H[x>>2]|0;a=H[x+8>>2]-e|0;e=H[H[h+4>>2]+32>>2];G[e+38>>1]=J[e+38>>1];H[e>>2]=c;H[e+16>>2]=0;H[e+20>>2]=0;H[e+8>>2]=a;H[e+12>>2]=0;c=H[h+4>>2];a=J[c+36>>1];e=a<<8|a>>>8;if((e&65535)>>>0<=513){c=H[c+32>>2];f=c;a=H[c+16>>2];c=P+H[c+20>>2]|0;a=a+E|0;c=a>>>0>>0?c+1|0:c;H[f+16>>2]=a;H[f+20>>2]=c}pa:{if(H[h+216>>2]==H[h+220>>2]){break pa}a=H[h+8>>2];c=H[a>>2];a=H[a+4>>2];qa:{if((e&65535)>>>0>=513){if((a|0)==(c|0)){break pa}c=0;break qa}if((a|0)==(c|0)){break pa}c=0;while(1){if(cd(h,c)){c=c+3|0;a=H[h+8>>2];if(c>>>0>2]-H[a>>2]>>2>>>0){continue}break pa}break}break n}while(1){if(bd(h,c)){c=c+3|0;a=H[h+8>>2];if(c>>>0>2]-H[a>>2]>>2>>>0){continue}break pa}break}break n}ad(B);c=H[h+216>>2];if((c|0)!=H[h+220>>2]){t=0;while(1){f=N(t,144);Jc((f+c|0)+4|0,H[h+8>>2]);a=H[M>>2];e=a+f|0;c=H[e+132>>2];e=H[e+136>>2];if((c|0)!=(e|0)){while(1){Hc((f+H[M>>2]|0)+4|0,H[c>>2]);c=c+4|0;if((e|0)!=(c|0)){continue}break}a=H[M>>2]}if(!Ic((a+f|0)+4|0)){break n}t=t+1|0;c=H[h+216>>2];if(t>>>0<(H[h+220>>2]-c|0)/144>>>0){continue}break}}a=H[h+8>>2];Hb(h+184|0,H[a+28>>2]-H[a+24>>2]>>2);w=H[h+216>>2];if((w|0)!=H[h+220>>2]){c=0;while(1){a=N(c,144)+w|0;e=H[a+60>>2]-H[a+56>>2]>>2;f=a+104|0;a=H[h+8>>2];a=H[a+28>>2]-H[a+24>>2]>>2;Hb(f,(a|0)<(e|0)?e:a);c=c+1|0;w=H[h+216>>2];if(c>>>0<(H[h+220>>2]-w|0)/144>>>0){continue}break}}w=$c(h,b)}break b}w=0}ca=u- -64|0;return w|0}function ki(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,L=0,M=0,O=0,P=0,Q=0;t=ca+-64|0;ca=t;H[a+132>>2]=0;if(H[a+148>>2]){d=H[a+144>>2];if(d){while(1){b=H[d>>2];oa(d);d=b;if(b){continue}break}}d=0;H[a+144>>2]=0;j=H[a+140>>2];a:{if(!j){break a}if(j>>>0>=4){b=j&-4;while(1){c=d<<2;H[c+H[a+136>>2]>>2]=0;H[H[a+136>>2]+(c|4)>>2]=0;H[H[a+136>>2]+(c|8)>>2]=0;H[H[a+136>>2]+(c|12)>>2]=0;d=d+4|0;e=e+4|0;if((b|0)!=(e|0)){continue}break}}b=j&3;if(!b){break a}while(1){H[H[a+136>>2]+(d<<2)>>2]=0;d=d+1|0;x=x+1|0;if((b|0)!=(x|0)){continue}break}}H[a+148>>2]=0}b:{c:{d=H[a+4>>2];x=I[d+36|0];b=x<<8|I[d+37|0];if(b>>>0<=513){f=H[d+32>>2];d:{if(b>>>0<=511){b=H[f+20>>2];e=H[f+16>>2];c=e+4|0;b=c>>>0<4?b+1|0:b;j=H[f+12>>2];if(K[f+8>>2]>>0&(j|0)<=(b|0)|(b|0)>(j|0)){break c}e=e+H[f>>2]|0;e=I[e|0]|I[e+1|0]<<8|(I[e+2|0]<<16|I[e+3|0]<<24);H[f+16>>2]=c;H[f+20>>2]=b;break d}if(!Ea(1,t,f)){break c}d=H[a+4>>2];x=I[d+36|0];e=H[t>>2]}H[a+132>>2]=e}f=H[d+32>>2];e:{f:{g:{if((x&255)>>>0<=1){x=0;b=H[f+20>>2];c=H[f+16>>2];e=c+4|0;b=e>>>0<4?b+1|0:b;j=H[f+12>>2];if(K[f+8>>2]>>0&(j|0)<=(b|0)|(b|0)>(j|0)){break b}c=c+H[f>>2]|0;c=I[c|0]|I[c+1|0]<<8|(I[c+2|0]<<16|I[c+3|0]<<24);H[t+60>>2]=c;H[f+16>>2]=e;H[f+20>>2]=b;H[a+156>>2]=c;l=a+156|0;break g}x=0;if(!Ea(1,t+60|0,f)){break b}d=H[a+4>>2];b=I[d+36|0];H[a+156>>2]=H[t+60>>2];l=a+156|0;if(b>>>0>1){break f}}f=H[d+32>>2];c=H[f+8>>2];j=H[f+12>>2];d=H[f+20>>2];e=H[f+16>>2];b=e+4|0;d=b>>>0<4?d+1|0:d;if(b>>>0>c>>>0&(d|0)>=(j|0)|(d|0)>(j|0)){break b}e=e+H[f>>2]|0;e=I[e|0]|I[e+1|0]<<8|(I[e+2|0]<<16|I[e+3|0]<<24);H[t+56>>2]=e;H[f+16>>2]=b;H[f+20>>2]=d;break e}if(!Ea(1,t+56|0,H[d+32>>2])){break b}e=H[t+56>>2]}if(e>>>0>1431655765){break b}b=H[l>>2];d=N(e,3);if(b>>>0>d>>>0){break b}c=d>>>1|0;d=b>>31;d=Rj(b-1|0,d-!b|0,b,d);j=da;b=j>>>1|0;d=(j&1)<<31|d>>>1;if(!b&d>>>0>>0){break b}k=H[a+4>>2];y=H[k+32>>2];d=H[y+8>>2];f=H[y+12>>2];b=H[y+20>>2];m=H[y+16>>2];if((f|0)<=(b|0)&m>>>0>=d>>>0|(b|0)>(f|0)){break b}l=H[y>>2];g=I[l+m|0];c=y;j=m+1|0;C=j?b:b+1|0;H[c+16>>2]=j;H[c+20>>2]=C;h:{if(I[k+36|0]<=1){c=d;d=b;b=m+5|0;d=b>>>0<5?d+1|0:d;if(b>>>0>c>>>0&(d|0)>=(f|0)|(d|0)>(f|0)){break b}c=j+l|0;l=I[c|0]|I[c+1|0]<<8|(I[c+2|0]<<16|I[c+3|0]<<24);H[t+52>>2]=l;H[y+16>>2]=b;H[y+20>>2]=d;break h}if(!Ea(1,t+52|0,y)){break b}l=H[t+52>>2]}if(e>>>0>>0|((l>>>0)/3|0)+l>>>0>>0){break b}d=H[a+4>>2];f=H[d+32>>2];i:{if(I[d+36|0]<=1){d=H[f+20>>2];b=H[f+16>>2];c=b+4|0;d=c>>>0<4?d+1|0:d;j=H[f+12>>2];if(K[f+8>>2]>>0&(j|0)<=(d|0)|(d|0)>(j|0)){break b}b=b+H[f>>2]|0;b=I[b|0]|I[b+1|0]<<8|(I[b+2|0]<<16|I[b+3|0]<<24);H[t+48>>2]=b;H[f+16>>2]=c;H[f+20>>2]=d;break i}if(!Ea(1,t+48|0,f)){break b}b=H[t+48>>2]}if(b>>>0>l>>>0){break b}H[a+28>>2]=H[a+24>>2];d=$b(pa(88));c=H[a+8>>2];H[a+8>>2]=d;if(c){cb(c);if(!H[a+8>>2]){break b}}H[a+164>>2]=H[a+160>>2];Jb(a+160|0,e);H[a+176>>2]=H[a+172>>2];Jb(a+172|0,e);H[a- -64>>2]=0;H[a+92>>2]=-1;H[a+84>>2]=-1;H[a+88>>2]=-1;H[a+40>>2]=H[a+36>>2];H[a+52>>2]=H[a+48>>2];H[a+76>>2]=H[a+72>>2];E=a+216|0;ed(E);dd(E,g);if(!Lc(H[a+8>>2],e,H[a+156>>2]+b|0)){break b}d=H[a+156>>2];F[t|0]=1;Oa(a+120|0,b+d|0,t);b=H[a+4>>2];d=J[b+36>>1];d=(d<<8|d>>>8)&65535;j:{if(d>>>0<=513){j=H[b+32>>2];k:{if(d>>>0<=511){d=H[j+20>>2];e=H[j+16>>2];b=e+4|0;d=b>>>0<4?d+1|0:d;c=H[j+12>>2];if(K[j+8>>2]>>0&(c|0)<=(d|0)|(d|0)>(c|0)){break b}e=e+H[j>>2]|0;e=I[e|0]|I[e+1|0]<<8|(I[e+2|0]<<16|I[e+3|0]<<24);H[j+16>>2]=b;H[j+20>>2]=d;break k}if(!Ea(1,t+44|0,j)){break b}e=H[t+44>>2]}if(!e){break b}j=H[H[a+4>>2]+32>>2];c=H[j+8>>2];d=H[j+16>>2];b=c-d|0;d=H[j+12>>2]-(H[j+20>>2]+(d>>>0>c>>>0)|0)|0;if(b>>>0>>0&(d|0)<=0|(d|0)<0){break b}f=Ha(t);j=H[H[a+4>>2]+32>>2];c=H[j+16>>2];b=(c+H[j>>2]|0)+e|0;d=H[j+8>>2]-c|0;G[f+38>>1]=J[j+38>>1];H[f>>2]=b;H[f+16>>2]=0;H[f+20>>2]=0;H[f+8>>2]=d-e;H[f+12>>2]=0;d=Ib(a,f);if((d|0)==-1){break b}y=d;M=d>>31;break j}y=-1;M=-1;if((Ib(a,H[b+32>>2])|0)==-1){break b}}O=a+232|0;e=O;H[e+144>>2]=a;d=H[(ea[H[H[a>>2]+32>>2]](a)|0)+32>>2];b=H[d>>2]+H[d+16>>2]|0;d=H[(ea[H[H[a>>2]+32>>2]](a)|0)+32>>2];d=H[d+8>>2]-H[d+16>>2]|0;P=e,Q=J[H[(ea[H[H[a>>2]+32>>2]](a)|0)+32>>2]+38>>1],G[P+38>>1]=Q;H[e>>2]=b;H[e+16>>2]=0;H[e+20>>2]=0;H[e+8>>2]=d;H[e+12>>2]=0;H[a+372>>2]=g;C=Ha(t);l:{if(!Ge(e,C)){break l}b=0;d=0;e=0;j=0;i=ca-96|0;ca=i;H[i+72>>2]=0;H[i+64>>2]=0;H[i+68>>2]=0;H[i+48>>2]=0;H[i+52>>2]=0;H[i+40>>2]=0;H[i+44>>2]=0;H[i+56>>2]=1065353216;H[i+32>>2]=0;H[i+24>>2]=0;H[i+28>>2]=0;h=a;L=H[a+124>>2];m:{n:{o:{p:{q:{r:{if((l|0)<=0){break r}A=H[h+216>>2]!=H[h+220>>2];s=1;while(1){f=j;j=f+1|0;s:{t:{u:{v:{w:{x:{y:{z:{A:{B:{C:{D:{E:{F:{G:{if(!I[h+308|0]){break G}u=H[h+296>>2];g=H[h+304>>2];a=u+(g>>>3|0)|0;p=H[h+300>>2];if(a>>>0>=p>>>0){break G}c=I[a|0];a=g+1|0;H[h+304>>2]=a;m=c>>>(g&7)&1;if(!m){break G}n=0;k=a>>>3|0;c=u+k|0;H:{if(c>>>0>=p>>>0){g=a;a=0;break H}c=I[c|0];g=g+2|0;H[h+304>>2]=g;k=g>>>3|0;a=c>>>(a&7)&1}c=k+u|0;if(c>>>0

>>0){c=I[c|0];H[h+304>>2]=g+1;n=c>>>(g&7)<<1&2}k=-1;a=m|(a|n)<<1;switch(a-1|0){case 6:break D;case 0:break E;case 2:case 4:break F;default:break q}}if((d|0)==(e|0)){k=-1;break q}g=-1;q=H[h+8>>2];u=H[q+24>>2];p=d-4|0;s=H[p>>2];c=-1;I:{if((s|0)==-1){break I}b=s+1|0;b=(b>>>0)%3|0?b:s-2|0;c=-1;if((b|0)==-1){break I}c=H[H[q>>2]+(b<<2)>>2]}b=H[u+(c<<2)>>2];if((b|0)!=-1){a=b+1|0;g=(a>>>0)%3|0?a:b-2|0}if((g|0)==(s|0)){k=-1;break q}if((s|0)!=-1){k=-1;if(H[H[q+12>>2]+(s<<2)>>2]!=-1){break q}}b=H[q+12>>2];if((g|0)!=-1){k=-1;if(H[b+(g<<2)>>2]!=-1){break q}}n=N(f,3);a=n+1|0;H[b+(s<<2)>>2]=a;m=a<<2;H[m+b>>2]=s;r=n+2|0;H[b+(g<<2)>>2]=r;f=r<<2;H[f+b>>2]=g;o=-1;a=-1;J:{if((s|0)==-1){break J}K:{if((s>>>0)%3|0){b=s-1|0;break K}b=s+2|0;a=-1;if((b|0)==-1){break J}}a=H[H[q>>2]+(b<<2)>>2]}L:{if((g|0)==-1){break L}b=g+1|0;b=(b>>>0)%3|0?b:g-2|0;if((b|0)==-1){break L}o=H[H[q>>2]+(b<<2)>>2]}k=-1;if((a|0)==(c|0)|(c|0)==(o|0)){break q}b=H[q>>2];H[b+(n<<2)>>2]=c;H[b+m>>2]=o;H[b+f>>2]=a;if((a|0)!=-1){H[u+(a<<2)>>2]=r}b=H[h+120>>2]+(c>>>3&536870908)|0;a=H[b>>2];P=b,Q=Vj(c)&a,H[P>>2]=Q;H[p>>2]=n;b=e;break s}if((d|0)==(e|0)){break q}m=d-4|0;n=H[m>>2];r=H[h+8>>2];b=H[r+12>>2];if((n|0)!=-1&H[b+(n<<2)>>2]!=-1){break q}o=N(f,3);p=(a|0)==5;g=o+(p?2:1)|0;a=g<<2;H[a+b>>2]=n;H[b+(n<<2)>>2]=g;Ka(r+24|0,11424);b=H[h+8>>2];u=H[b+24>>2];if(H[b+28>>2]-u>>2>(L|0)){break q}k=H[b>>2];q=k+a|0;c=H[r+28>>2];b=H[r+24>>2];a=(c-b>>2)-1|0;H[q>>2]=a;if((b|0)!=(c|0)){H[u+(a<<2)>>2]=g}c=p?o:o+2|0;g=k+(o+p<<2)|0;M:{if((n|0)==-1){H[k+(c<<2)>>2]=-1;b=-1;break M}N:{O:{P:{if((n>>>0)%3|0){a=n-1|0;break P}a=n+2|0;if((a|0)==-1){break O}}a=H[k+(a<<2)>>2];H[k+(c<<2)>>2]=a;if((a|0)==-1){break N}H[u+(a<<2)>>2]=c;break N}H[k+(c<<2)>>2]=-1}a=n+1|0;a=(a>>>0)%3|0?a:n-2|0;b=-1;if((a|0)==-1){break M}b=H[k+(a<<2)>>2]}H[g>>2]=b;H[m>>2]=o;b=e;break y}if((b|0)==(d|0)){break q}a=d-4|0;q=H[a>>2];H[i+68>>2]=a;p=H[i+44>>2];Q:{if(!p){d=a;break Q}g=H[i+40>>2];k=Uj(p)>>>0>1;c=f&p+2147483647;R:{if(!k){break R}c=f;if(c>>>0

>>0){break R}c=(f>>>0)%(p>>>0)|0}m=c;c=H[g+(m<<2)>>2];if(!c){d=a;break Q}g=H[c>>2];if(!g){d=a;break Q}S:{if(!k){k=p-1|0;while(1){c=H[g+4>>2];T:{if((c|0)!=(f|0)){if((m|0)==(c&k)){break T}d=a;break Q}if((f|0)==H[g+8>>2]){break S}}g=H[g>>2];if(g){continue}break}d=a;break Q}while(1){c=H[g+4>>2];U:{if((c|0)!=(f|0)){if(c>>>0>=p>>>0){c=(c>>>0)%(p>>>0)|0}if((c|0)==(m|0)){break U}d=a;break Q}if((f|0)==H[g+8>>2]){break S}}g=H[g>>2];if(g){continue}break}d=a;break Q}if((a|0)!=(z|0)){H[a>>2]=H[g+12>>2];H[i+68>>2]=d;break Q}c=z-b|0;d=c>>2;e=d+1|0;if(e>>>0>=1073741824){break C}a=c>>>1|0;c=c>>>0>=2147483644?1073741823:a>>>0>e>>>0?a:e;if(c){if(c>>>0>=1073741824){break n}a=pa(c<<2)}else{a=0}e=a+(d<<2)|0;H[e>>2]=H[g+12>>2];d=e+4|0;if((b|0)!=(z|0)){while(1){e=e-4|0;z=z-4|0;H[e>>2]=H[z>>2];if((b|0)!=(z|0)){continue}break}}z=a+(c<<2)|0;H[i+72>>2]=z;H[i+68>>2]=d;H[i+64>>2]=e;if(b){oa(b)}}if((d|0)==(e|0)){break u}g=d-4|0;n=H[g>>2];if((n|0)==(q|0)){break u}b=(n|0)==-1;o=H[h+8>>2];if(!b&H[H[o+12>>2]+(n<<2)>>2]!=-1){break u}r=H[o+12>>2];if((q|0)!=-1&H[r+(q<<2)>>2]!=-1){break u}u=N(f,3);f=u+2|0;H[r+(n<<2)>>2]=f;p=f<<2;H[p+r>>2]=n;a=u+1|0;H[r+(q<<2)>>2]=a;c=a<<2;H[c+r>>2]=q;if(b){break B}if((n>>>0)%3|0){m=n-1|0;break x}m=n+2|0;if((m|0)!=-1){break x}a=H[o>>2];b=-1;break w}a=H[h+8>>2];Ka(a+24|0,11424);c=H[h+8>>2];q=N(f,3);r=H[a+28>>2];u=H[a+24>>2];p=r-u|0;o=p>>2;g=o-1|0;H[H[c>>2]+(q<<2)>>2]=g;Ka(c+24|0,11424);m=q+1|0;H[H[c>>2]+(m<<2)>>2]=(H[c+28>>2]-H[c+24>>2]>>2)-1;a=H[h+8>>2];Ka(a+24|0,11424);c=q+2|0;H[H[a>>2]+(c<<2)>>2]=(H[a+28>>2]-H[a+24>>2]>>2)-1;a=H[h+8>>2];n=H[a+24>>2];if(H[a+28>>2]-n>>2>(L|0)){break q}V:{W:{if((r|0)!=(u|0)){H[n+(g<<2)>>2]=q;k=0;if((p|0)==-4){break W}}H[n+(o<<2)>>2]=m;k=o+1|0;if((k|0)==-1){break V}}H[n+(k<<2)>>2]=c}if((d|0)!=(z|0)){H[d>>2]=q;d=d+4|0;H[i+68>>2]=d;break y}m=d-b|0;e=m>>2;c=e+1|0;if(c>>>0>=1073741824){break A}a=m>>>1|0;c=m>>>0>=2147483644?1073741823:a>>>0>c>>>0?a:c;if(c){if(c>>>0>=1073741824){break n}a=pa(c<<2)}else{a=0}e=a+(e<<2)|0;H[e>>2]=q;z=a+(c<<2)|0;a=e+4|0;if((b|0)!=(d|0)){while(1){e=e-4|0;d=d-4|0;H[e>>2]=H[d>>2];if((b|0)!=(d|0)){continue}break}}H[i+72>>2]=z;H[i+68>>2]=a;H[i+64>>2]=e;if(!b){break z}oa(b);break z}sa();v()}m=-1;a=H[o>>2];H[a+(u<<2)>>2]=-1;k=-1;break v}sa();v()}d=a;b=e}m=H[h+40>>2];if((m|0)==H[h+36>>2]){break s}c=m-12|0;a=H[c+4>>2];k=(f^-1)+l|0;if(a>>>0>k>>>0){break u}if((a|0)!=(k|0)){break s}f=I[m-4|0];a=H[c>>2];H[h+40>>2]=c;if((a|0)<0){break u}m=d-4|0;g=H[m>>2];H[i+20>>2]=(a^-1)+l;a=i+20|0;H[i+88>>2]=a;Gb(i,i+40|0,a,i+88|0);c=H[i>>2];X:{if(f&1){a=-1;if((g|0)==-1){break X}a=g+1|0;a=(a>>>0)%3|0?a:g-2|0;break X}a=-1;if((g|0)==-1){break X}a=g-1|0;if((g>>>0)%3|0){break X}a=g+2|0}H[c+12>>2]=a;g=H[h+40>>2];if((g|0)==H[h+36>>2]){break s}while(1){c=g-12|0;a=H[c+4>>2];if(a>>>0>k>>>0){break u}if((a|0)!=(k|0)){break s}f=I[g-4|0];a=H[c>>2];H[h+40>>2]=c;if((a|0)<0){break u}g=H[m>>2];H[i+20>>2]=(a^-1)+l;a=i+20|0;H[i+88>>2]=a;Gb(i,i+40|0,a,i+88|0);c=H[i>>2];Y:{if(f&1){a=-1;if((g|0)==-1){break Y}a=g+1|0;a=(a>>>0)%3|0?a:g-2|0;break Y}a=-1;if((g|0)==-1){break Y}a=g-1|0;if((g>>>0)%3|0){break Y}a=g+2|0}H[c+12>>2]=a;g=H[h+40>>2];if((g|0)!=H[h+36>>2]){continue}break}break s}a=H[o>>2];b=H[a+(m<<2)>>2]}m=b;H[(u<<2)+a>>2]=b;b=n+1|0;b=(b>>>0)%3|0?b:n-2|0;k=-1;if((b|0)==-1){break v}k=H[(b<<2)+a>>2]}H[a+c>>2]=k;Z:{if((q|0)==-1){H[a+p>>2]=-1;n=-1;c=-1;break Z}_:{$:{aa:{if((q>>>0)%3|0){b=q-1|0;break aa}b=q+2|0;if((b|0)==-1){break $}}b=H[(b<<2)+a>>2];H[a+p>>2]=b;if((b|0)==-1){break _}H[H[o+24>>2]+(b<<2)>>2]=f;break _}H[a+p>>2]=-1}n=-1;b=q+1|0;b=(b>>>0)%3|0?b:q-2|0;c=-1;if((b|0)==-1){break Z}n=H[(b<<2)+a>>2];c=b}b=H[o+24>>2];p=b+(n<<2)|0;if((m|0)!=-1){H[b+(m<<2)>>2]=H[p>>2]}b=c;while(1){if((b|0)==-1){break t}H[(b<<2)+a>>2]=m;k=b+1|0;b=(k>>>0)%3|0?k:b-2|0;f=-1;ba:{if((b|0)==-1){break ba}k=H[r+(b<<2)>>2];f=-1;if((k|0)==-1){break ba}b=k+1|0;f=(b>>>0)%3|0?b:k-2|0}b=f;if((c|0)!=(b|0)){continue}break}}k=-1;if(!(s&1)){break r}break q}H[p>>2]=-1;ca:{if(A){break ca}if((B|0)!=(D|0)){H[D>>2]=n;D=D+4|0;H[i+28>>2]=D;break ca}f=B-w|0;b=f>>2;c=b+1|0;if(c>>>0>=1073741824){break o}a=f>>>1|0;c=f>>>0>=2147483644?1073741823:a>>>0>c>>>0?a:c;if(c){if(c>>>0>=1073741824){break n}a=pa(c<<2)}else{a=0}b=a+(b<<2)|0;H[b>>2]=n;D=b+4|0;if((w|0)!=(B|0)){while(1){b=b-4|0;B=B-4|0;H[b>>2]=H[B>>2];if((w|0)!=(B|0)){continue}break}}B=a+(c<<2)|0;H[i+32>>2]=B;H[i+28>>2]=D;H[i+24>>2]=b;if(w){oa(w)}w=b}H[g>>2]=u;b=e}s=(j|0)<(l|0);if((j|0)!=(l|0)){continue}break}j=l}k=-1;a=H[h+8>>2];if(H[a+28>>2]-H[a+24>>2]>>2>(L|0)){break q}if((d|0)!=(e|0)){u=h+72|0;m=h+60|0;p=h+312|0;while(1){d=d-4|0;o=H[d>>2];H[i+68>>2]=d;da:{ea:{fa:{if(J[h+270>>1]<=513){if(!I[h+364|0]){break ea}b=H[h+360>>2];a=H[h+352>>2]+(b>>>3|0)|0;if(a>>>0>=K[h+356>>2]){break fa}a=I[a|0];H[h+360>>2]=b+1;if(!(a>>>(b&7)&1)){break fa}break ea}if(Ba(p)){break ea}}ga:{ha:{b=H[h+64>>2];c=H[h+68>>2];if((b|0)==c<<5){if((b+1|0)<0){break ha}if(b>>>0<=1073741822){c=c<<6;b=(b&-32)+32|0;a=b>>>0>>0?c:b}else{a=2147483647}pb(m,a);b=H[h+64>>2]}H[h+64>>2]=b+1;c=H[h+60>>2]+(b>>>3&536870908)|0;a=H[c>>2];P=c,Q=Vj(b)&a,H[P>>2]=Q;b=H[h+76>>2];if((b|0)!=H[h+80>>2]){H[b>>2]=o;H[h+76>>2]=b+4;break da}l=H[u>>2];w=b-l|0;c=w>>2;f=c+1|0;if(f>>>0>=1073741824){break ga}a=w>>>1|0;f=w>>>0>=2147483644?1073741823:a>>>0>f>>>0?a:f;if(f){if(f>>>0>=1073741824){break n}a=pa(f<<2)}else{a=0}g=a+(c<<2)|0;H[g>>2]=o;c=g+4|0;if((b|0)!=(l|0)){while(1){g=g-4|0;b=b-4|0;H[g>>2]=H[b>>2];if((b|0)!=(l|0)){continue}break}}H[h+80>>2]=a+(f<<2);H[h+76>>2]=c;H[h+72>>2]=g;if(!l){break da}oa(l);break da}sa();v()}sa();v()}r=H[h+8>>2];A=H[r>>2];if(((H[r+4>>2]-A>>2>>>0)/3|0)<=(j|0)){k=-1;break q}a=-1;k=-1;b=-1;w=H[r+24>>2];f=-1;ia:{if((o|0)==-1){break ia}e=o+1|0;e=(e>>>0)%3|0?e:o-2|0;f=-1;if((e|0)==-1){break ia}f=H[A+(e<<2)>>2]}l=H[w+(f<<2)>>2];ja:{if((l|0)==-1){g=1;e=-1;break ja}g=1;c=l+1|0;c=(c>>>0)%3|0?c:l-2|0;e=-1;if((c|0)==-1){break ja}g=0;a=c;e=a+1|0;e=(e>>>0)%3|0?e:a-2|0;if((e|0)!=-1){e=H[A+(e<<2)>>2]}else{e=-1}}c=H[(e<<2)+w>>2];if((c|0)!=-1){b=c+1|0;b=(b>>>0)%3|0?b:c-2|0}if((a|0)==(o|0)|(b|0)==(o|0)|((o|0)!=-1&H[H[r+12>>2]+(o<<2)>>2]!=-1|(a|0)==(b|0))){break q}if(!g&H[H[r+12>>2]+(a<<2)>>2]!=-1){break q}g=-1;l=H[r+12>>2];w=-1;ka:{if((b|0)==-1){break ka}if(H[l+(b<<2)>>2]!=-1){break q}c=b+1|0;c=(c>>>0)%3|0?c:b-2|0;w=-1;if((c|0)==-1){break ka}w=H[A+(c<<2)>>2]}c=N(j,3);H[i>>2]=c;H[l+(c<<2)>>2]=o;H[l+(o<<2)>>2]=c;c=H[i>>2]+1|0;H[l+(c<<2)>>2]=a;H[l+(a<<2)>>2]=c;a=H[i>>2]+2|0;H[l+(a<<2)>>2]=b;H[l+(b<<2)>>2]=a;a=H[i>>2];H[A+(a<<2)>>2]=e;k=a+1|0;l=A+(k<<2)|0;H[l>>2]=w;w=a+2|0;c=A+(w<<2)|0;H[c>>2]=f;f=H[h+120>>2];e=k?e:-1;b=f+(e>>>3&536870908)|0;a=H[b>>2];P=b,Q=Vj(e)&a,H[P>>2]=Q;g=(k|0)!=-1?H[l>>2]:g;b=f+(g>>>3&536870908)|0;a=H[b>>2];P=b,Q=Vj(g)&a,H[P>>2]=Q;b=-1;b=(w|0)!=-1?H[c>>2]:b;e=f+(b>>>3&536870908)|0;a=H[e>>2];P=e,Q=Vj(b)&a,H[P>>2]=Q;F[i+88|0]=1;_c(m,i+88|0);Ka(u,i);j=j+1|0;e=H[i+64>>2]}if((d|0)!=(e|0)){continue}break}a=H[h+8>>2]}k=-1;if(((H[a+4>>2]-H[a>>2]>>2>>>0)/3|0)!=(j|0)){break q}k=H[a+28>>2]-H[a+24>>2]>>2;s=H[i+24>>2];c=H[i+28>>2];if((s|0)==(c|0)){break p}while(1){j=H[s>>2];d=H[a+24>>2];b=k-1|0;g=d+(b<<2)|0;if(H[g>>2]==-1){while(1){b=k-2|0;k=k-1|0;g=d+(b<<2)|0;if(H[g>>2]==-1){continue}break}}if(b>>>0>=j>>>0){H[i>>2]=a;g=H[g>>2];F[i+12|0]=1;H[i+8>>2]=g;H[i+4>>2]=g;if((g|0)!=-1){while(1){a=H[H[h+8>>2]>>2]+(g<<2)|0;if(H[a>>2]!=(b|0)){k=-1;break q}H[a>>2]=j;uc(i);g=H[i+8>>2];if((g|0)!=-1){continue}break}a=H[h+8>>2]}d=H[a+24>>2];e=d+(b<<2)|0;if((j|0)!=-1){H[d+(j<<2)>>2]=H[e>>2]}H[e>>2]=-1;f=1<>2];e=d+(j>>>3&536870908)|0;j=d+(b>>>3&536870908)|0;d=1<>2]&d){b=f|H[e>>2]}else{b=H[e>>2]&(f^-1)}H[e>>2]=b;H[j>>2]=H[j>>2]&(d^-1);k=k-1|0}s=s+4|0;if((c|0)!=(s|0)){continue}break}}s=H[i+24>>2]}if(s){oa(s)}a=H[i+48>>2];if(a){while(1){d=H[a>>2];oa(a);a=d;if(a){continue}break}}a=H[i+40>>2];H[i+40>>2]=0;if(a){oa(a)}a=H[i+64>>2];if(a){H[i+68>>2]=a;oa(a)}ca=i+96|0;a=k;break m}sa();v()}wa();v()}b=a;if((a|0)==-1){break l}e=H[C+16>>2];d=e+H[C>>2]|0;a=H[C+8>>2]-e|0;e=H[H[h+4>>2]+32>>2];G[e+38>>1]=J[e+38>>1];H[e>>2]=d;H[e+16>>2]=0;H[e+20>>2]=0;H[e+8>>2]=a;H[e+12>>2]=0;d=H[h+4>>2];a=J[d+36>>1];e=a<<8|a>>>8;if((e&65535)>>>0<=513){d=H[d+32>>2];c=d;a=H[c+16>>2];d=M+H[c+20>>2]|0;a=a+y|0;d=a>>>0>>0?d+1|0:d;H[c+16>>2]=a;H[c+20>>2]=d}la:{if(H[h+216>>2]==H[h+220>>2]){break la}a=H[h+8>>2];d=H[a>>2];a=H[a+4>>2];ma:{if((e&65535)>>>0>=513){if((a|0)==(d|0)){break la}d=0;break ma}if((a|0)==(d|0)){break la}d=0;while(1){if(cd(h,d)){d=d+3|0;a=H[h+8>>2];if(d>>>0>2]-H[a>>2]>>2>>>0){continue}break la}break}break l}while(1){if(bd(h,d)){d=d+3|0;a=H[h+8>>2];if(d>>>0>2]-H[a>>2]>>2>>>0){continue}break la}break}break l}ad(O);d=H[h+216>>2];if((d|0)!=H[h+220>>2]){l=0;while(1){c=N(l,144);Jc((c+d|0)+4|0,H[h+8>>2]);a=H[E>>2];e=a+c|0;d=H[e+132>>2];e=H[e+136>>2];if((d|0)!=(e|0)){while(1){Hc((c+H[E>>2]|0)+4|0,H[d>>2]);d=d+4|0;if((e|0)!=(d|0)){continue}break}a=H[E>>2]}if(!Ic((a+c|0)+4|0)){break l}l=l+1|0;d=H[h+216>>2];if(l>>>0<(H[h+220>>2]-d|0)/144>>>0){continue}break}}a=H[h+8>>2];Hb(h+184|0,H[a+28>>2]-H[a+24>>2]>>2);x=H[h+216>>2];if((x|0)!=H[h+220>>2]){d=0;while(1){a=N(d,144)+x|0;e=H[a+60>>2]-H[a+56>>2]>>2;c=a+104|0;a=H[h+8>>2];a=H[a+28>>2]-H[a+24>>2]>>2;Hb(c,(a|0)<(e|0)?e:a);d=d+1|0;x=H[h+216>>2];if(d>>>0<(H[h+220>>2]-x|0)/144>>>0){continue}break}}x=$c(h,b)}break b}x=0}ca=t- -64|0;return x|0}function Bg(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,G=0,J=0,K=0,L=0,M=0,O=0;B=c;c=0;m=ca-96|0;ca=m;l=m+16|0;ra(l,0,76);H[m+92>>2]=-1;H[m+8>>2]=0;H[m>>2]=0;H[m+4>>2]=0;r=ca-16|0;ca=r;H[l+68>>2]=0;H[l+72>>2]=0;H[l>>2]=b;s=ca-16|0;ca=s;u=b;a=H[b+20>>2];a:{if((H[b+24>>2]-a|0)<=0){break a}a=H[a>>2];if((a|0)==-1){break a}c=H[H[u+8>>2]+(a<<2)>>2]}b:{c:{d:{if(!c){a=0;break d}a=H[u+100>>2];e=H[u+96>>2];H[s+8>>2]=0;H[s>>2]=0;H[s+4>>2]=0;f=a-e|0;b=(f|0)/12|0;e:{if((a|0)==(e|0)){break e}if(b>>>0>=357913942){break c}d=pa(f);H[s>>2]=d;H[s+8>>2]=d+N(b,12);a=0;n=d;f=f-12|0;d=(f-((f>>>0)%12|0)|0)+12|0;f=ra(n,0,d);H[s+4>>2]=d+f;if(I[c+84|0]){c=b>>>0<=1?1:b;h=c&1;if(b>>>0>=2){g=c&-2;c=0;while(1){d=N(a,12);b=d+e|0;i=H[b+4>>2];j=H[b>>2];d=d+f|0;H[d+8>>2]=H[b+8>>2];H[d>>2]=j;H[d+4>>2]=i;d=N(a|1,12);b=d+e|0;i=H[b+4>>2];j=H[b>>2];d=d+f|0;H[d+8>>2]=H[b+8>>2];H[d>>2]=j;H[d+4>>2]=i;a=a+2|0;c=c+2|0;if((g|0)!=(c|0)){continue}break}}if(!h){break e}b=N(a,12);a=b+e|0;c=H[a+4>>2];e=H[a>>2];b=b+f|0;H[b+8>>2]=H[a+8>>2];H[b>>2]=e;H[b+4>>2]=c;break e}h=b>>>0<=1?1:b;a=H[c+68>>2];c=0;while(1){d=N(c,12);b=d+e|0;g=H[a+(H[b>>2]<<2)>>2];i=H[a+(H[b+4>>2]<<2)>>2];d=d+f|0;H[d+8>>2]=H[a+(H[b+8>>2]<<2)>>2];H[d+4>>2]=i;H[d>>2]=g;c=c+1|0;if((h|0)!=(c|0)){continue}break}}d=0;E=ca-16|0;ca=E;h=pa(88);$b(h);C=ca-16|0;ca=C;H[h+80>>2]=0;H[h+84>>2]=0;a=H[h+76>>2];H[h+76>>2]=0;if(a){oa(a)}H[h+68>>2]=0;H[h+72>>2]=0;b=h- -64|0;a=H[b>>2];H[b>>2]=0;if(a){oa(a)}g=H[s+4>>2];b=H[s>>2];c=(g-b|0)/12|0;a=N(c,3);f=H[h>>2];e=H[h+4>>2]-f>>2;f:{if(a>>>0>e>>>0){ue(h,a-e|0);g=H[s+4>>2];b=H[s>>2];c=(g-b|0)/12|0;break f}if(a>>>0>=e>>>0){break f}H[h+4>>2]=f+(a<<2)}g:{if((b|0)==(g|0)){break g}e=c>>>0<=1?1:c;g=e&1;a=H[h>>2];if(c>>>0>=2){i=e&-2;c=0;while(1){e=N(d,12);j=e+a|0;f=b+e|0;H[j>>2]=H[f>>2];H[a+(e|4)>>2]=H[f+4>>2];H[j+8>>2]=H[f+8>>2];f=N(d|1,12);e=f+a|0;f=b+f|0;H[e>>2]=H[f>>2];H[e+4>>2]=H[f+4>>2];H[e+8>>2]=H[f+8>>2];d=d+2|0;c=c+2|0;if((i|0)!=(c|0)){continue}break}}if(!g){break g}c=N(d,12);a=c+a|0;b=b+c|0;H[a>>2]=H[b>>2];H[a+4>>2]=H[b+4>>2];H[a+8>>2]=H[b+8>>2]}H[C+12>>2]=-1;a=0;e=0;g=0;f=ca-32|0;ca=f;h:{i:{w=C+12|0;j:{if(!w){break j}c=H[h+4>>2];j=H[h>>2];d=c-j|0;i=d>>2;n=H[h+12>>2];b=H[h+16>>2]-n>>2;k:{if(i>>>0>b>>>0){qb(h+12|0,i-b|0,13652);c=H[h+4>>2];j=H[h>>2];d=c-j|0;i=d>>2;break k}if(b>>>0<=i>>>0){break k}H[h+16>>2]=n+(i<<2)}H[f+24>>2]=0;H[f+16>>2]=0;H[f+20>>2]=0;b=(c|0)==(j|0);if(!b){if((d|0)<0){break i}e=pa(d);H[f+20>>2]=e;H[f+16>>2]=e;H[f+24>>2]=(i<<2)+e}l:{m:{n:{o:{p:{if(d){while(1){i=H[(a<<2)+j>>2];b=H[f+20>>2]-e>>2;q:{if(i>>>0>>0){break q}H[f>>2]=0;d=i+1|0;if(d>>>0>b>>>0){Pa(f+16|0,d-b|0,f);j=H[h>>2];c=H[h+4>>2];e=H[f+16>>2];break q}if(b>>>0<=d>>>0){break q}H[f+20>>2]=(d<<2)+e}b=(i<<2)+e|0;H[b>>2]=H[b>>2]+1;a=a+1|0;d=c-j|0;i=d>>2;if(a>>>0>>0){continue}break}break p}d=0;if(!b){break o}break n}if((c|0)==(j|0)){d=0;break n}if(d>>>0>=2147483645){break m}}d=pa(d<<1);ra(d,255,i<<3)}H[f+8>>2]=0;H[f>>2]=0;H[f+4>>2]=0;b=H[f+20>>2];a=b-e|0;t=a>>2;r:{s:{if((b|0)==(e|0)){break s}if((a|0)<0){break r}q=pa(a);H[f>>2]=q;H[f+8>>2]=(t<<2)+q;b=ra(q,0,a);H[f+4>>2]=b+a;c=t>>>0<=1?1:t;n=c&3;a=0;if(c-1>>>0>=3){o=c&-4;while(1){c=g<<2;H[c+b>>2]=a;x=c|4;a=H[c+e>>2]+a|0;H[x+b>>2]=a;y=c|8;a=a+H[e+x>>2]|0;H[y+b>>2]=a;c=c|12;a=a+H[e+y>>2]|0;H[c+b>>2]=a;a=a+H[c+e>>2]|0;g=g+4|0;p=p+4|0;if((o|0)!=(p|0)){continue}break}}if(!n){break s}while(1){c=g<<2;H[c+b>>2]=a;g=g+1|0;a=H[c+e>>2]+a|0;k=k+1|0;if((n|0)!=(k|0)){continue}break}}if(!i){break l}x=H[h+40>>2];y=H[h+12>>2];n=0;while(1){G=n<<2;a=G+j|0;k=-1;c=n+1|0;b=(c>>>0)%3|0?c:n-2|0;if((b|0)!=-1){k=H[(b<<2)+j>>2]}b=H[a>>2];t:{u:{if(!((n>>>0)%3|0)){p=-1;a=n+2|0;if((a|0)!=-1){p=H[(a<<2)+j>>2]}if(!((b|0)==(k|0)|(b|0)==(p|0))&(k|0)!=(p|0)){break u}x=x+1|0;H[h+40>>2]=x;c=n+3|0;break t}p=H[a-4>>2]}a=p<<2;A=H[a+e>>2];v:{w:{if((A|0)<=0){break w}a=H[a+q>>2];g=0;while(1){o=(a<<3)+d|0;z=H[o>>2];if((z|0)==-1){break w}x:{if((k|0)!=(z|0)){break x}o=H[o+4>>2];if((o|0)!=-1){z=H[(o<<2)+j>>2]}else{z=-1}if((z|0)==(b|0)){break x}while(1){y:{b=a;g=g+1|0;if((A|0)<=(g|0)){break y}a=b+1|0;J=(a<<3)+d|0;z=H[J>>2];K=(b<<3)+d|0;H[K+4>>2]=H[J+4>>2];H[K>>2]=z;if((z|0)!=-1){continue}}break}H[(b<<3)+d>>2]=-1;if((o|0)==-1){break w}H[y+G>>2]=o;H[y+(o<<2)>>2]=n;break v}a=a+1|0;g=g+1|0;if((A|0)!=(g|0)){continue}break}}a=k<<2;k=H[a+e>>2];if((k|0)<=0){break v}a=H[a+q>>2];g=0;while(1){b=(a<<3)+d|0;if(H[b>>2]==-1){H[b>>2]=p;H[b+4>>2]=n;break v}a=a+1|0;g=g+1|0;if((k|0)!=(g|0)){continue}break}}}n=c;if(n>>>0>>0){continue}break}break l}break i}sa();v()}H[w>>2]=t;if(q){oa(q)}if(d){oa(d)}a=H[f+16>>2];if(!a){break j}H[f+20>>2]=a;oa(a)}ca=f+32|0;x=(w|0)!=0;if(x){k=ca-32|0;ca=k;a=H[h>>2];g=H[h+4>>2];H[k+24>>2]=0;H[k+16>>2]=0;H[k+20>>2]=0;if((a|0)==(g|0)){c=g}else{a=g-a|0;if((a|0)<0){break i}a=a>>2;b=(a-1>>>5|0)+1|0;c=pa(b<<2);H[k+24>>2]=b;H[k+20>>2]=0;H[k+16>>2]=c;Mc(k+16|0,a);g=H[h>>2];c=H[h+4>>2]}H[k+8>>2]=0;H[k>>2]=0;while(1){z:{o=0;i=0;if((c|0)==(g|0)){break z}while(1){b=H[k+16>>2];A:{if(H[b+(i>>>3&536870908)>>2]>>>i&1){break A}c=H[k>>2];H[k+4>>2]=c;e=H[h+12>>2];a=i;while(1){B:{f=a+1|0;d=a;a=(f>>>0)%3|0?f:a-2|0;if((a|0)==-1){break B}a=H[e+(a<<2)>>2];if((a|0)==-1){break B}f=a+1|0;a=(f>>>0)%3|0?f:a-2|0;if((i|0)==(a|0)|(a|0)==-1){break B}if(!(H[b+(a>>>3&536870908)>>2]>>>a&1)){continue}}break}j=d;C:{D:{E:{while(1){a=H[k+16>>2]+(j>>>3&536870908)|0;H[a>>2]=H[a>>2]|1<>>0)%3|0?a:j-2|0;g=H[h>>2];y=(j>>>0)%3|0;b=(y?-1:2)+j|0;n=H[k>>2];A=(n|0)==(c|0);F:{if(A){break F}w=H[(f<<2)+g>>2];q=H[h+12>>2];a=n;if((b|0)!=-1){e=q+(b<<2)|0;while(1){G:{if((w|0)!=H[a>>2]){break G}p=H[a+4>>2];t=H[e>>2];if((p|0)==(t|0)){break G}e=b;c=-1;a=-1;if((p|0)==-1){break C}break D}a=a+8|0;if((c|0)!=(a|0)){continue}break}break F}while(1){if((w|0)==H[a>>2]){t=-1;e=-1;p=H[a+4>>2];if((p|0)!=-1){break D}}a=a+8|0;if((c|0)!=(a|0)){continue}break}}b=H[(b<<2)+g>>2];H:{if(H[k+8>>2]!=(c|0)){H[c>>2]=b;H[c+4>>2]=f;c=c+8|0;H[k+4>>2]=c;break H}a=c-n|0;p=a>>3;e=p+1|0;if(e>>>0>=536870912){break i}g=a>>>2|0;g=a>>>0>=2147483640?536870911:e>>>0>>0?g:e;if(g){if(g>>>0>=536870912){break E}e=pa(g<<3)}else{e=0}a=e+(p<<3)|0;H[a>>2]=b;H[a+4>>2]=f;b=a+8|0;if(!A){while(1){c=c-8|0;f=H[c+4>>2];a=a-8|0;H[a>>2]=H[c>>2];H[a+4>>2]=f;if((c|0)!=(n|0)){continue}break}c=H[k>>2]}H[k+8>>2]=e+(g<<3);H[k+4>>2]=b;H[k>>2]=a;if(c){oa(c)}c=b}I:{J:{if(y){a=j-1|0;break J}a=j+2|0;if((a|0)==-1){break I}}a=H[H[h+12>>2]+(a<<2)>>2];if((a|0)==-1){break I}j=a+((a>>>0)%3|0?-1:2)|0;if((d|0)==(j|0)){break I}if((j|0)!=-1){continue}}break}g=H[h>>2];break A}wa();v()}c=H[q+(p<<2)>>2];b=e;a=p}if((t|0)!=-1){H[q+(t<<2)>>2]=-1}if((c|0)!=-1){H[q+(c<<2)>>2]=-1}H[q+(b<<2)>>2]=-1;H[q+(a<<2)>>2]=-1;o=1}i=i+1|0;c=H[h+4>>2];if(i>>>0>2>>>0){continue}break}if(o){continue}}break}a=H[k>>2];if(a){oa(a)}a=H[k+16>>2];if(a){oa(a)}ca=k+32|0;n=0;g=ca-32|0;ca=g;e=H[C+12>>2];H[h+36>>2]=e;p=h+24|0;b=H[h+24>>2];a=H[h+28>>2]-b>>2;K:{L:{if(a>>>0>>0){qb(p,e-a|0,13652);H[g+24>>2]=0;H[g+16>>2]=0;H[g+20>>2]=0;break L}if(a>>>0>e>>>0){H[h+28>>2]=b+(e<<2)}H[g+24>>2]=0;H[g+16>>2]=0;H[g+20>>2]=0;if(!e){break K}}if((e|0)<0){break i}a=(e-1>>>5|0)+1|0;b=pa(a<<2);H[g+24>>2]=a;H[g+20>>2]=0;H[g+16>>2]=b;Mc(g+16|0,e)}a=H[h>>2];b=H[h+4>>2];H[g+8>>2]=0;H[g>>2]=0;H[g+4>>2]=0;M:{if((a|0)==(b|0)){a=b}else{a=b-a|0;if((a|0)<0){break i}a=a>>2;b=(a-1>>>5|0)+1|0;c=pa(b<<2);H[g+8>>2]=b;H[g+4>>2]=0;H[g>>2]=c;Mc(g,a);b=H[h>>2];a=H[h+4>>2]}if(a-b>>>0<12){break M}N:{while(1){q=N(n,3);d=(q<<2)+b|0;f=H[d>>2];c=-1;i=q+1|0;if((i|0)!=-1){c=H[(i<<2)+b>>2]}O:{if((c|0)==(f|0)){break O}i=f;f=H[d+8>>2];if((i|0)==(f|0)|(c|0)==(f|0)){break O}k=0;i=H[g>>2];while(1){f=k+q|0;if(!(H[(f>>>3&536870908)+i>>2]>>>f&1)){a=H[(f<<2)+b>>2];c=1<>2];b=a>>>5|0;i=H[d+(b<<2)>>2];t=c&i;if(t){c=H[h+28>>2];P:{if((c|0)!=H[h+32>>2]){H[c>>2]=-1;H[h+28>>2]=c+4;break P}i=H[p>>2];b=c-i|0;o=b>>2;d=o+1|0;if(d>>>0>=1073741824){break i}j=b>>>1|0;j=b>>>0>=2147483644?1073741823:d>>>0>>0?j:d;if(j){if(j>>>0>=1073741824){break N}b=pa(j<<2)}else{b=0}d=b+(o<<2)|0;H[d>>2]=-1;o=d+4|0;if((c|0)!=(i|0)){while(1){d=d-4|0;c=c-4|0;H[d>>2]=H[c>>2];if((c|0)!=(i|0)){continue}break}}H[h+32>>2]=b+(j<<2);H[h+28>>2]=o;H[h+24>>2]=d;if(!i){break P}oa(i)}c=H[h+52>>2];Q:{if((c|0)!=H[h+56>>2]){H[c>>2]=a;H[h+52>>2]=c+4;break Q}i=H[h+48>>2];b=c-i|0;o=b>>2;d=o+1|0;if(d>>>0>=1073741824){break i}j=b>>>1|0;j=b>>>0>=2147483644?1073741823:d>>>0>>0?j:d;if(j){if(j>>>0>=1073741824){break N}b=pa(j<<2)}else{b=0}d=b+(o<<2)|0;H[d>>2]=a;a=d+4|0;if((c|0)!=(i|0)){while(1){d=d-4|0;c=c-4|0;H[d>>2]=H[c>>2];if((c|0)!=(i|0)){continue}break}}H[h+56>>2]=b+(j<<2);H[h+52>>2]=a;H[h+48>>2]=d;if(!i){break Q}oa(i)}c=H[g+20>>2];a=H[g+24>>2];if((c|0)==a<<5){if((c+1|0)<0){break i}b=g+16|0;if(c>>>0<=1073741822){a=a<<6;c=(c&-32)+32|0;a=a>>>0>c>>>0?a:c}else{a=2147483647}pb(b,a);c=H[g+20>>2]}H[g+20>>2]=c+1;d=H[g+16>>2];a=d+(c>>>3&536870908)|0;b=H[a>>2];M=a,O=Vj(c)&b,H[M>>2]=O;c=1<>>5|0;i=H[(b<<2)+d>>2];a=e;e=a+1|0}H[(b<<2)+d>>2]=c|i;o=H[h+24>>2]+(a<<2)|0;j=H[h+12>>2];b=H[h>>2];i=H[g>>2];c=f;R:{S:{T:{while(1){if((c|0)==-1){break T}d=(c>>>3&536870908)+i|0;H[d>>2]=H[d>>2]|1<>2]=c;if(t){H[(c<<2)+b>>2]=a}w=c+1|0;c=(w>>>0)%3|0?w:c-2|0;d=-1;U:{if((c|0)==-1){break U}c=H[j+(c<<2)>>2];d=-1;if((c|0)==-1){break U}d=c+1|0;d=(d>>>0)%3|0?d:c-2|0}c=d;if((f|0)!=(c|0)){continue}break}if((f|0)!=-1){break R}c=1;break S}if((f>>>0)%3|0){c=f-1|0;break S}c=f+2|0;if((c|0)==-1){break R}}c=H[j+(c<<2)>>2];if((c|0)==-1){break R}V:{if((c>>>0)%3|0){c=c-1|0;break V}c=c+2|0;if((c|0)==-1){break R}}f=H[h+12>>2];b=H[h>>2];while(1){d=(c>>>3&536870908)+i|0;H[d>>2]=H[d>>2]|1<>2]=a}W:{if((c>>>0)%3|0){c=c-1|0;break W}c=c+2|0;if((c|0)==-1){break R}}c=H[f+(c<<2)>>2];if((c|0)==-1){break R}c=c+((c>>>0)%3|0?-1:2)|0;if((c|0)!=-1){continue}break}}}k=k+1|0;if((k|0)!=3){continue}break}b=H[h>>2];a=H[h+4>>2]}n=n+1|0;if(n>>>0<(a-b>>2>>>0)/3>>>0){continue}break}break M}wa();v()}c=0;H[h+44>>2]=0;a=H[g+16>>2];b=H[g+20>>2];if(b){e=b&31;b=(b>>>3&536870908)+a|0;d=a;i=0;while(1){if(!(H[d>>2]>>>c&1)){i=i+1|0;H[h+44>>2]=i}f=(c|0)==31;c=f?0:c+1|0;d=(f<<2)+d|0;if((b|0)!=(d|0)|(c|0)!=(e|0)){continue}break}}b=H[g>>2];if(b){oa(b);a=H[g+16>>2]}if(a){oa(a)}ca=g+32|0}ca=C+16|0;if(!x){H[E+8>>2]=0;cb(h);h=0}ca=E+16|0;a=h;break h}sa();v()}b=H[s>>2];if(!b){break d}H[s+4>>2]=b;oa(b)}ca=s+16|0;break b}sa();v()}c=H[l+4>>2];b=a;H[l+4>>2]=a;if(c){cb(c);b=H[l+4>>2]}X:{if(!b){break X}a=H[u+100>>2];c=H[u+96>>2];F[r+12|0]=0;Oa(l+56|0,(a-c|0)/12|0,r+12|0);a=H[u+100>>2];c=H[u+96>>2];if((a|0)==(c|0)){break X}while(1){if(!(H[H[l+56>>2]+(D>>>3&536870908)>>2]>>>D&1)){a=N(D,3);Gc(l,0,a);c=H[l+8>>2];e=H[l+12>>2];Gc(l,1,a+1|0);f=H[l+20>>2];d=H[l+24>>2];Gc(l,2,a+2|0);n=(c|0)==(e|0)?-1:0;a=d-f>>2;c=e-c>>2;e=a>>>0>c>>>0;c=H[l+36>>2]-H[l+32>>2]>>2>>>0>(e?a:c)>>>0?2:e?1:n;Y:{if(H[l+68>>2]<=0){break Y}H[r+12>>2]=H[l+76>>2];H[r+8>>2]=m;bb(r+8|0,r+12|0);a=H[((c<<2)+l|0)+44>>2];if((a|0)<0){a=-1}else{e=(a>>>0)/3|0;a=H[(H[H[l>>2]+96>>2]+N(e,12)|0)+(a-N(e,3)<<2)>>2]}H[r+12>>2]=a;H[r+8>>2]=m;bb(r+8|0,r+12|0);e=H[l+72>>2];H[l+72>>2]=e+2;if(!(e&1)){break Y}H[r+12>>2]=a;H[r+8>>2]=m;bb(r+8|0,r+12|0);H[l+72>>2]=H[l+72>>2]+1}d=0;e=ca-16|0;ca=e;H[l+68>>2]=H[l+68>>2]+1;a=N(c,12)+l|0;a=H[a+12>>2]-H[a+8>>2]|0;if((a|0)>0){a=a>>>2|0;h=a>>>0<=1?1:a;c=H[((c<<2)+l|0)+44>>2];while(1){a=c;f=(a>>>0)/3|0;c=(a|0)==-1;g=c?-1:f;i=H[l+56>>2]+(g>>>3&536870908)|0;H[i>>2]=H[i>>2]|1<>2]=H[l+72>>2]+1;Z:{_:{$:{aa:{ba:{if(!d){ca:{if((a|0)>=0){H[e+12>>2]=H[(H[H[l>>2]+96>>2]+N(f,12)|0)+((a>>>0)%3<<2)>>2];H[e+8>>2]=m;bb(e+8|0,e+12|0);break ca}H[e+12>>2]=-1;H[e+8>>2]=m;bb(e+8|0,e+12|0);if(c){break ba}}c=-1;f=a+1|0;f=(f>>>0)%3|0?f:a-2|0;if((f|0)>=0){g=(f>>>0)/3|0;f=H[(H[H[l>>2]+96>>2]+N(g,12)|0)+(f-N(g,3)<<2)>>2]}else{f=-1}H[e+12>>2]=f;H[e+8>>2]=m;bb(e+8|0,e+12|0);f=((a>>>0)%3|0?-1:2)+a|0;if((f|0)<0){break aa}c=(f>>>0)/3|0;c=H[(H[H[l>>2]+96>>2]+N(c,12)|0)+(f-N(c,3)<<2)>>2];break aa}c=(a|0)<0?-1:H[(H[H[l>>2]+96>>2]+N(f,12)|0)+((a>>>0)%3<<2)>>2];H[l+76>>2]=c;H[e+12>>2]=c;H[e+8>>2]=m;bb(e+8|0,e+12|0);if(d&1){c=-1;if((a|0)==-1){break Z}if((N(f,3)|0)!=(a|0)){a=a-1|0;break _}a=a+2|0;break $}c=-1;if((a|0)==-1){break Z}c=a+1|0;a=(c>>>0)%3|0?c:a-2|0;break $}c=-1;H[e+12>>2]=-1;H[e+8>>2]=m;bb(e+8|0,e+12|0)}H[l+76>>2]=c;H[e+12>>2]=c;H[e+8>>2]=m;bb(e+8|0,e+12|0)}c=-1;if((a|0)==-1){break Z}}c=H[H[H[l+4>>2]+12>>2]+(a<<2)>>2]}d=d+1|0;if((h|0)!=(d|0)){continue}break}}ca=e+16|0;c=H[u+96>>2];a=H[u+100>>2]}D=D+1|0;if(D>>>0<(a-c|0)/12>>>0){continue}break}}ca=r+16|0;da:{if(b){a=H[B>>2];if(a){H[B+4>>2]=a;oa(a)}H[B>>2]=H[m>>2];H[B+4>>2]=H[m+4>>2];H[B+8>>2]=H[m+8>>2];L=H[m+84>>2];break da}a=H[m>>2];if(!a){break da}H[m+4>>2]=a;oa(a)}a=H[m+72>>2];if(a){oa(a)}a=H[m+48>>2];if(a){H[m+52>>2]=a;oa(a)}a=H[m+36>>2];if(a){H[m+40>>2]=a;oa(a)}a=H[m+24>>2];if(a){H[m+28>>2]=a;oa(a)}a=H[m+20>>2];H[m+20>>2]=0;if(a){cb(a)}ca=m+96|0;return L|0}function qg(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;i=b;a=0;b=0;a:{b:{switch(d-1|0){case 0:j=H[i+80>>2];h=I[c+24|0];c:{if((N(j,h)|0)!=(e|0)){break c}d=H[c+28>>2]!=1;b=I[c+84|0];if(!(d|!b)){qa(f,H[H[c>>2]>>2]+H[c+48>>2]|0,e);b=1;break c}if(h){a=pa(h);ra(a,0,h)}d:{if(!j){b=1;break d}if(!d){if(h){d=0;e=0;while(1){i=d+f|0;k=H[H[c>>2]>>2];m=H[c+48>>2];g=H[c+40>>2];b=Rj(g,H[c+44>>2],I[c+84|0]?e:H[H[c+68>>2]+(e<<2)>>2],0);n=b;b=b+m|0;qa(i,qa(a,b+k|0,g),h);d=d+h|0;b=1;e=e+1|0;if((j|0)!=(e|0)){continue}break}break d}if(b){b=1;h=H[c>>2];e=H[c+48>>2];f=H[c+40>>2];i=H[c+44>>2];if((j|0)!=1){g=j&-2;c=0;d=0;while(1){k=H[h>>2];m=Rj(f,i,c,0)+e|0;k=qa(a,k+m|0,f);m=H[h>>2];n=Rj(f,i,c|1,0)+e|0;qa(k,m+n|0,f);c=c+2|0;d=d+2|0;if((g|0)!=(d|0)){continue}break}g=c}if(!(j&1)){break d}c=H[h>>2];d=Rj(g,0,f,i)+e|0;qa(a,c+d|0,f);break d}b=1;h=H[c>>2];e=H[c+48>>2];g=H[c+68>>2];f=H[c+40>>2];i=H[c+44>>2];c=0;if((j|0)!=1){k=j&-2;d=0;while(1){m=H[h>>2];n=c<<2;l=Rj(f,i,H[n+g>>2],0)+e|0;m=qa(a,m+l|0,f);l=H[h>>2];n=Rj(f,i,H[g+(n|4)>>2],0)+e|0;qa(m,l+n|0,f);c=c+2|0;d=d+2|0;if((k|0)!=(d|0)){continue}break}}if(!(j&1)){break d}d=H[h>>2];c=Rj(f,i,H[g+(c<<2)>>2],0)+e|0;qa(a,c+d|0,f);break d}b=0;if(!h){d=0;while(1){if(!ic(c,I[c+84|0]?d:H[H[c+68>>2]+(d<<2)>>2],F[c+24|0],a)){break d}d=d+1|0;b=j>>>0<=d>>>0;if((d|0)!=(j|0)){continue}break}break d}d=0;e=0;while(1){if(!ic(c,I[c+84|0]?e:H[H[c+68>>2]+(e<<2)>>2],F[c+24|0],a)){break d}qa(d+f|0,a,h);d=d+h|0;e=e+1|0;b=j>>>0<=e>>>0;if((e|0)!=(j|0)){continue}break}}if(!a){break c}oa(a)}break a;case 2:n=I[c+24|0];l=n<<1;j=H[i+80>>2];e:{if((N(l,j)|0)!=(e|0)){break e}i=H[c+28>>2]!=3;d=I[c+84|0];if(!(i|!d)){qa(f,H[H[c>>2]>>2]+H[c+48>>2]|0,e);a=1;break e}f:{if(!n){e=0;break f}e=pa(l);ra(e,0,l)}g:{if(!j){a=1;break g}if(!i){o=H[c+68>>2];k=H[c>>2];b=H[c+48>>2];i=H[c+40>>2];m=H[c+44>>2];if(n){if(!d){c=0;d=0;while(1){a=1;g=H[k>>2];p=Rj(i,m,H[o+(d<<2)>>2],0)+b|0;qa((c<<1)+f|0,qa(e,g+p|0,i),l);c=c+n|0;d=d+1|0;if((j|0)!=(d|0)){continue}break}break g}c=0;while(1){a=1;o=H[k>>2];p=Rj(g,h,i,m)+b|0;qa((c<<1)+f|0,qa(e,o+p|0,i),l);c=c+n|0;d=h;g=g+1|0;d=g?d:d+1|0;h=d;if((j|0)!=(g|0)|d){continue}break}break g}if(!d){a=1;c=0;if((j|0)!=1){f=j&-2;d=0;while(1){h=H[k>>2];g=c<<2;n=Rj(i,m,H[g+o>>2],0)+b|0;h=qa(e,h+n|0,i);n=H[k>>2];g=Rj(i,m,H[o+(g|4)>>2],0)+b|0;qa(h,g+n|0,i);c=c+2|0;d=d+2|0;if((f|0)!=(d|0)){continue}break}}if(!(j&1)){break g}d=H[k>>2];b=Rj(i,m,H[o+(c<<2)>>2],0)+b|0;qa(e,b+d|0,i);break g}n=j&1;a=1;if((j|0)!=1){j=j&-2;f=0;c=0;while(1){d=H[k>>2];l=Rj(g,h,i,m)+b|0;d=qa(e,d+l|0,i);l=H[k>>2];o=Rj(i,m,g|1,h)+b|0;qa(d,l+o|0,i);g=g+2|0;h=g>>>0<2?h+1|0:h;f=f+2|0;d=f>>>0<2?c+1|0:c;c=d;if((f|0)!=(j|0)|c){continue}break}}if(!n){break g}c=H[k>>2];b=Rj(g,h,i,m)+b|0;qa(e,b+c|0,i);break g}if(!n){d=0;while(1){if(!gc(c,I[c+84|0]?d:H[H[c+68>>2]+(d<<2)>>2],F[c+24|0],e)){break g}d=d+1|0;a=j>>>0<=d>>>0;if((d|0)!=(j|0)){continue}break}break g}d=0;while(1){if(!gc(c,I[c+84|0]?d:H[H[c+68>>2]+(d<<2)>>2],F[c+24|0],e)){break g}qa((b<<1)+f|0,e,l);b=b+n|0;d=d+1|0;a=j>>>0<=d>>>0;if((d|0)!=(j|0)){continue}break}}if(!e){break e}oa(e)}b=a;break a;case 4:l=I[c+24|0];o=l<<2;j=H[i+80>>2];h:{if((N(o,j)|0)!=(e|0)){break h}i=H[c+28>>2]!=5;d=I[c+84|0];if(!(i|!d)){qa(f,H[H[c>>2]>>2]+H[c+48>>2]|0,e);b=1;break h}i:{if(!l){e=0;break i}e=pa(o);ra(e,0,o)}b=1;j:{if(!j){break j}if(!i){a=H[c+68>>2];m=H[c>>2];i=H[c+48>>2];k=H[c+40>>2];n=H[c+44>>2];if(l){if(!d){c=0;d=0;while(1){g=H[m>>2];p=Rj(k,n,H[a+(d<<2)>>2],0)+i|0;qa((c<<2)+f|0,qa(e,g+p|0,k),o);c=c+l|0;d=d+1|0;if((j|0)!=(d|0)){continue}break}break j}c=0;while(1){d=H[m>>2];p=Rj(g,h,k,n)+i|0;qa((c<<2)+f|0,qa(e,d+p|0,k),o);c=c+l|0;g=g+1|0;a=g?h:h+1|0;h=a;if((j|0)!=(g|0)|h){continue}break}break j}if(!d){c=0;if((j|0)!=1){f=j&-2;d=0;while(1){h=H[m>>2];g=c<<2;l=Rj(k,n,H[g+a>>2],0)+i|0;h=qa(e,h+l|0,k);l=H[m>>2];g=Rj(k,n,H[a+(g|4)>>2],0)+i|0;qa(h,g+l|0,k);c=c+2|0;d=d+2|0;if((f|0)!=(d|0)){continue}break}}if(!(j&1)){break j}d=H[m>>2];a=Rj(k,n,H[a+(c<<2)>>2],0)+i|0;qa(e,a+d|0,k);break j}l=j&1;if((j|0)!=1){j=j&-2;f=0;c=0;while(1){a=H[m>>2];d=Rj(g,h,k,n)+i|0;a=qa(e,a+d|0,k);d=H[m>>2];o=Rj(k,n,g|1,h)+i|0;qa(a,d+o|0,k);d=h;g=g+2|0;h=g>>>0<2?d+1|0:d;f=f+2|0;a=f>>>0<2?c+1|0:c;c=a;if((f|0)!=(j|0)|c){continue}break}}if(!l){break j}a=H[m>>2];c=Rj(g,h,k,n)+i|0;qa(e,a+c|0,k);break j}b=0;if(!l){d=0;while(1){if(!ec(c,I[c+84|0]?d:H[H[c+68>>2]+(d<<2)>>2],F[c+24|0],e)){break j}d=d+1|0;b=j>>>0<=d>>>0;if((d|0)!=(j|0)){continue}break}break j}d=0;while(1){if(!ec(c,I[c+84|0]?d:H[H[c+68>>2]+(d<<2)>>2],F[c+24|0],e)){break j}qa((a<<2)+f|0,e,o);a=a+l|0;d=d+1|0;b=j>>>0<=d>>>0;if((d|0)!=(j|0)){continue}break}}if(!e){break h}oa(e)}break a;case 1:j=H[i+80>>2];h=I[c+24|0];k:{if((N(j,h)|0)!=(e|0)){break k}d=H[c+28>>2]!=2;b=I[c+84|0];if(!(d|!b)){qa(f,H[H[c>>2]>>2]+H[c+48>>2]|0,e);b=1;break k}if(h){a=pa(h);ra(a,0,h)}l:{if(!j){b=1;break l}if(!d){if(h){d=0;e=0;while(1){i=d+f|0;k=H[H[c>>2]>>2];m=H[c+48>>2];g=H[c+40>>2];b=Rj(g,H[c+44>>2],I[c+84|0]?e:H[H[c+68>>2]+(e<<2)>>2],0);n=b;b=b+m|0;qa(i,qa(a,b+k|0,g),h);d=d+h|0;b=1;e=e+1|0;if((j|0)!=(e|0)){continue}break}break l}if(b){b=1;h=H[c>>2];e=H[c+48>>2];f=H[c+40>>2];i=H[c+44>>2];if((j|0)!=1){g=j&-2;c=0;d=0;while(1){k=H[h>>2];m=Rj(f,i,c,0)+e|0;k=qa(a,k+m|0,f);m=H[h>>2];n=Rj(f,i,c|1,0)+e|0;qa(k,m+n|0,f);c=c+2|0;d=d+2|0;if((g|0)!=(d|0)){continue}break}g=c}if(!(j&1)){break l}c=H[h>>2];d=Rj(g,0,f,i)+e|0;qa(a,c+d|0,f);break l}b=1;h=H[c>>2];e=H[c+48>>2];g=H[c+68>>2];f=H[c+40>>2];i=H[c+44>>2];c=0;if((j|0)!=1){k=j&-2;d=0;while(1){m=H[h>>2];n=c<<2;l=Rj(f,i,H[n+g>>2],0)+e|0;m=qa(a,m+l|0,f);l=H[h>>2];n=Rj(f,i,H[g+(n|4)>>2],0)+e|0;qa(m,l+n|0,f);c=c+2|0;d=d+2|0;if((k|0)!=(d|0)){continue}break}}if(!(j&1)){break l}d=H[h>>2];c=Rj(f,i,H[g+(c<<2)>>2],0)+e|0;qa(a,c+d|0,f);break l}b=0;if(!h){d=0;while(1){if(!hc(c,I[c+84|0]?d:H[H[c+68>>2]+(d<<2)>>2],F[c+24|0],a)){break l}d=d+1|0;b=j>>>0<=d>>>0;if((d|0)!=(j|0)){continue}break}break l}d=0;e=0;while(1){if(!hc(c,I[c+84|0]?e:H[H[c+68>>2]+(e<<2)>>2],F[c+24|0],a)){break l}qa(d+f|0,a,h);d=d+h|0;e=e+1|0;b=j>>>0<=e>>>0;if((e|0)!=(j|0)){continue}break}}if(!a){break k}oa(a)}break a;case 3:n=I[c+24|0];l=n<<1;j=H[i+80>>2];m:{if((N(l,j)|0)!=(e|0)){break m}i=H[c+28>>2]!=4;d=I[c+84|0];if(!(i|!d)){qa(f,H[H[c>>2]>>2]+H[c+48>>2]|0,e);a=1;break m}n:{if(!n){e=0;break n}e=pa(l);ra(e,0,l)}o:{if(!j){a=1;break o}if(!i){o=H[c+68>>2];k=H[c>>2];b=H[c+48>>2];i=H[c+40>>2];m=H[c+44>>2];if(n){if(!d){c=0;d=0;while(1){a=1;g=H[k>>2];p=Rj(i,m,H[o+(d<<2)>>2],0)+b|0;qa((c<<1)+f|0,qa(e,g+p|0,i),l);c=c+n|0;d=d+1|0;if((j|0)!=(d|0)){continue}break}break o}c=0;while(1){a=1;o=H[k>>2];p=Rj(g,h,i,m)+b|0;qa((c<<1)+f|0,qa(e,o+p|0,i),l);c=c+n|0;d=h;g=g+1|0;d=g?d:d+1|0;h=d;if((j|0)!=(g|0)|d){continue}break}break o}if(!d){a=1;c=0;if((j|0)!=1){f=j&-2;d=0;while(1){h=H[k>>2];g=c<<2;n=Rj(i,m,H[g+o>>2],0)+b|0;h=qa(e,h+n|0,i);n=H[k>>2];g=Rj(i,m,H[o+(g|4)>>2],0)+b|0;qa(h,g+n|0,i);c=c+2|0;d=d+2|0;if((f|0)!=(d|0)){continue}break}}if(!(j&1)){break o}d=H[k>>2];b=Rj(i,m,H[o+(c<<2)>>2],0)+b|0;qa(e,b+d|0,i);break o}n=j&1;a=1;if((j|0)!=1){j=j&-2;f=0;c=0;while(1){d=H[k>>2];l=Rj(g,h,i,m)+b|0;d=qa(e,d+l|0,i);l=H[k>>2];o=Rj(i,m,g|1,h)+b|0;qa(d,l+o|0,i);g=g+2|0;h=g>>>0<2?h+1|0:h;f=f+2|0;d=f>>>0<2?c+1|0:c;c=d;if((f|0)!=(j|0)|c){continue}break}}if(!n){break o}c=H[k>>2];b=Rj(g,h,i,m)+b|0;qa(e,b+c|0,i);break o}if(!n){d=0;while(1){if(!fc(c,I[c+84|0]?d:H[H[c+68>>2]+(d<<2)>>2],F[c+24|0],e)){break o}d=d+1|0;a=j>>>0<=d>>>0;if((d|0)!=(j|0)){continue}break}break o}d=0;while(1){if(!fc(c,I[c+84|0]?d:H[H[c+68>>2]+(d<<2)>>2],F[c+24|0],e)){break o}qa((b<<1)+f|0,e,l);b=b+n|0;d=d+1|0;a=j>>>0<=d>>>0;if((d|0)!=(j|0)){continue}break}}if(!e){break m}oa(e)}b=a;break a;case 5:l=I[c+24|0];o=l<<2;j=H[i+80>>2];p:{if((N(o,j)|0)!=(e|0)){break p}i=H[c+28>>2]!=6;d=I[c+84|0];if(!(i|!d)){qa(f,H[H[c>>2]>>2]+H[c+48>>2]|0,e);b=1;break p}q:{if(!l){e=0;break q}e=pa(o);ra(e,0,o)}b=1;r:{if(!j){break r}if(!i){a=H[c+68>>2];m=H[c>>2];i=H[c+48>>2];k=H[c+40>>2];n=H[c+44>>2];if(l){if(!d){c=0;d=0;while(1){g=H[m>>2];p=Rj(k,n,H[a+(d<<2)>>2],0)+i|0;qa((c<<2)+f|0,qa(e,g+p|0,k),o);c=c+l|0;d=d+1|0;if((j|0)!=(d|0)){continue}break}break r}c=0;while(1){d=H[m>>2];p=Rj(g,h,k,n)+i|0;qa((c<<2)+f|0,qa(e,d+p|0,k),o);c=c+l|0;g=g+1|0;a=g?h:h+1|0;h=a;if((j|0)!=(g|0)|h){continue}break}break r}if(!d){c=0;if((j|0)!=1){f=j&-2;d=0;while(1){h=H[m>>2];g=c<<2;l=Rj(k,n,H[g+a>>2],0)+i|0;h=qa(e,h+l|0,k);l=H[m>>2];g=Rj(k,n,H[a+(g|4)>>2],0)+i|0;qa(h,g+l|0,k);c=c+2|0;d=d+2|0;if((f|0)!=(d|0)){continue}break}}if(!(j&1)){break r}d=H[m>>2];a=Rj(k,n,H[a+(c<<2)>>2],0)+i|0;qa(e,a+d|0,k);break r}l=j&1;if((j|0)!=1){j=j&-2;f=0;c=0;while(1){a=H[m>>2];d=Rj(g,h,k,n)+i|0;a=qa(e,a+d|0,k);d=H[m>>2];o=Rj(k,n,g|1,h)+i|0;qa(a,d+o|0,k);d=h;g=g+2|0;h=g>>>0<2?d+1|0:d;f=f+2|0;a=f>>>0<2?c+1|0:c;c=a;if((f|0)!=(j|0)|c){continue}break}}if(!l){break r}a=H[m>>2];c=Rj(g,h,k,n)+i|0;qa(e,a+c|0,k);break r}b=0;if(!l){d=0;while(1){if(!dc(c,I[c+84|0]?d:H[H[c+68>>2]+(d<<2)>>2],F[c+24|0],e)){break r}d=d+1|0;b=j>>>0<=d>>>0;if((d|0)!=(j|0)){continue}break}break r}d=0;while(1){if(!dc(c,I[c+84|0]?d:H[H[c+68>>2]+(d<<2)>>2],F[c+24|0],e)){break r}qa((a<<2)+f|0,e,o);a=a+l|0;d=d+1|0;b=j>>>0<=d>>>0;if((d|0)!=(j|0)){continue}break}}if(!e){break p}oa(e)}break a;case 8:p=I[c+24|0];q=p<<2;k=H[i+80>>2];s:{if((N(q,k)|0)!=(e|0)){break s}i=H[c+28>>2];t:{if(!p){break t}a=pa(q);d=a;m=q-4|0;l=(m>>>2|0)+1&7;if(l){e=0;while(1){H[d>>2]=-1073741824;d=d+4|0;e=e+1|0;if((l|0)!=(e|0)){continue}break}}if(m>>>0<28){break t}e=(p<<2)+a|0;while(1){H[d+24>>2]=-1073741824;H[d+28>>2]=-1073741824;H[d+16>>2]=-1073741824;H[d+20>>2]=-1073741824;H[d+8>>2]=-1073741824;H[d+12>>2]=-1073741824;H[d>>2]=-1073741824;H[d+4>>2]=-1073741824;d=d+32|0;if((e|0)!=(d|0)){continue}break}}u:{if(!k){b=1;break u}if((i|0)==9){r=H[c+68>>2];l=H[c>>2];i=H[c+48>>2];s=I[c+84|0];m=H[c+44>>2];c=H[c+40>>2];o=c;if(p){e=0;d=0;while(1){h=(e<<2)+f|0;g=H[l>>2];b=Rj(c,m,s?d:H[r+(d<<2)>>2],0)+i|0;qa(h,qa(a,b+g|0,o),q);e=e+p|0;b=1;d=d+1|0;if((k|0)!=(d|0)){continue}break}break u}if(!s){b=1;d=0;if((k|0)!=1){f=k&-2;e=0;while(1){h=H[l>>2];g=d<<2;j=Rj(c,m,H[g+r>>2],0)+i|0;h=qa(a,h+j|0,o);j=H[l>>2];g=Rj(c,m,H[r+(g|4)>>2],0)+i|0;qa(h,j+g|0,o);d=d+2|0;e=e+2|0;if((f|0)!=(e|0)){continue}break}}if(!(k&1)){break u}e=H[l>>2];c=Rj(c,m,H[r+(d<<2)>>2],0)+i|0;qa(a,c+e|0,o);break u}f=k&1;b=1;if((k|0)!=1){k=k&-2;while(1){d=H[l>>2];e=Rj(g,h,c,m)+i|0;d=qa(a,d+e|0,o);e=H[l>>2];p=Rj(c,m,g|1,h)+i|0;qa(d,e+p|0,o);g=g+2|0;h=g>>>0<2?h+1|0:h;d=j;e=n+2|0;d=e>>>0<2?d+1|0:d;n=e;j=d;if((e|0)!=(k|0)|d){continue}break}}if(!f){break u}d=H[l>>2];c=Rj(g,h,c,m)+i|0;qa(a,c+d|0,o);break u}if(!p){d=0;while(1){if(!Va(c,I[c+84|0]?d:H[H[c+68>>2]+(d<<2)>>2],F[c+24|0],a)){break u}d=d+1|0;b=k>>>0<=d>>>0;if((d|0)!=(k|0)){continue}break}break u}e=0;d=0;while(1){if(!Va(c,I[c+84|0]?d:H[H[c+68>>2]+(d<<2)>>2],F[c+24|0],a)){break u}qa((e<<2)+f|0,a,q);e=e+p|0;d=d+1|0;b=k>>>0<=d>>>0;if((d|0)!=(k|0)){continue}break}}if(!a){break s}oa(a)}a=b;break;default:break b}}b=a}return b|0}function ef(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;i=ca-48|0;ca=i;a:{b:{if((c|0)!=1){break b}c=H[a+4>>2];g=H[a+12>>2];H[i+40>>2]=0;a=i;H[a+32>>2]=0;H[a+36>>2]=0;H[a+24>>2]=0;H[a+28>>2]=0;H[a+16>>2]=0;H[a+20>>2]=0;H[a+8>>2]=0;H[a+12>>2]=0;e=a+8|0;c:{if((b|0)==-2){break c}l=H[H[H[c+4>>2]+8>>2]+(g<<2)>>2];if((ea[H[H[c>>2]+8>>2]](c)|0)==1){a=J[c+36>>1];j=(a<<8|a>>>8)&65535;a=0;h=ca-32|0;ca=h;d=H[H[H[c+4>>2]+8>>2]+(g<<2)>>2];d:{if((ea[H[H[c>>2]+8>>2]](c)|0)!=1|b-1>>>0>5){break d}k=ea[H[H[c>>2]+36>>2]](c)|0;f=ea[H[H[c>>2]+44>>2]](c,g)|0;if(!k|!f){break d}a=ea[H[H[c>>2]+40>>2]](c,g)|0;if(a){c=H[c+44>>2];H[h+12>>2]=a;H[h+8>>2]=c;H[h+20>>2]=f;H[h+16>>2]=f+12;c=h+8|0;a=0;e:{f:{switch(b-1|0){case 0:a=pa(60);H[a+4>>2]=d;H[a>>2]=3272;b=H[e+4>>2];H[a+8>>2]=H[e>>2];H[a+12>>2]=b;b=H[e+12>>2];H[a+16>>2]=H[e+8>>2];H[a+20>>2]=b;b=H[e+20>>2];H[a+24>>2]=H[e+16>>2];H[a+28>>2]=b;H[a+40>>2]=0;H[a+32>>2]=0;H[a+36>>2]=0;d=H[e+24>>2];f=H[e+28>>2];if((d|0)!=(f|0)){g=f-d|0;if((g|0)<0){break a}b=pa(g);H[a+32>>2]=b;H[a+40>>2]=(g&-4)+b;while(1){H[b>>2]=H[d>>2];b=b+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}H[a+36>>2]=b}b=H[c+4>>2];H[a+44>>2]=H[c>>2];H[a+48>>2]=b;b=H[c+12>>2];H[a+52>>2]=H[c+8>>2];H[a+56>>2]=b;H[a>>2]=2564;break e;case 1:a=pa(60);H[a+4>>2]=d;H[a>>2]=3272;b=H[e+4>>2];H[a+8>>2]=H[e>>2];H[a+12>>2]=b;b=H[e+12>>2];H[a+16>>2]=H[e+8>>2];H[a+20>>2]=b;b=H[e+20>>2];H[a+24>>2]=H[e+16>>2];H[a+28>>2]=b;H[a+40>>2]=0;H[a+32>>2]=0;H[a+36>>2]=0;d=H[e+24>>2];f=H[e+28>>2];if((d|0)!=(f|0)){g=f-d|0;if((g|0)<0){break a}b=pa(g);H[a+32>>2]=b;H[a+40>>2]=(g&-4)+b;while(1){H[b>>2]=H[d>>2];b=b+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}H[a+36>>2]=b}b=H[c+4>>2];H[a+44>>2]=H[c>>2];H[a+48>>2]=b;b=H[c+12>>2];H[a+52>>2]=H[c+8>>2];H[a+56>>2]=b;H[a>>2]=3328;break e;case 3:a=pa(112);H[a+4>>2]=d;H[a>>2]=3272;b=H[e+4>>2];H[a+8>>2]=H[e>>2];H[a+12>>2]=b;b=H[e+12>>2];H[a+16>>2]=H[e+8>>2];H[a+20>>2]=b;b=H[e+20>>2];H[a+24>>2]=H[e+16>>2];H[a+28>>2]=b;H[a+40>>2]=0;H[a+32>>2]=0;H[a+36>>2]=0;d=H[e+24>>2];f=H[e+28>>2];if((d|0)!=(f|0)){g=f-d|0;if((g|0)<0){break a}b=pa(g);H[a+32>>2]=b;H[a+40>>2]=(g&-4)+b;while(1){H[b>>2]=H[d>>2];b=b+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}H[a+36>>2]=b}b=H[c+4>>2];H[a+44>>2]=H[c>>2];H[a+48>>2]=b;b=H[c+12>>2];H[a+52>>2]=H[c+8>>2];H[a+56>>2]=b;H[a+60>>2]=0;H[a+64>>2]=0;H[a>>2]=3564;H[a+68>>2]=0;H[a+72>>2]=0;H[a+76>>2]=0;H[a+80>>2]=0;H[a+84>>2]=0;H[a+88>>2]=0;H[a+92>>2]=0;H[a+96>>2]=0;H[a+100>>2]=0;H[a+104>>2]=0;H[a+108>>2]=0;break e;case 2:a=pa(92);H[a+4>>2]=d;H[a>>2]=3272;b=H[e+4>>2];H[a+8>>2]=H[e>>2];H[a+12>>2]=b;b=H[e+12>>2];H[a+16>>2]=H[e+8>>2];H[a+20>>2]=b;b=H[e+20>>2];H[a+24>>2]=H[e+16>>2];H[a+28>>2]=b;H[a+40>>2]=0;H[a+32>>2]=0;H[a+36>>2]=0;d=H[e+24>>2];f=H[e+28>>2];if((d|0)!=(f|0)){g=f-d|0;if((g|0)<0){break a}b=pa(g);H[a+32>>2]=b;H[a+40>>2]=(g&-4)+b;while(1){H[b>>2]=H[d>>2];b=b+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}H[a+36>>2]=b}b=H[c+4>>2];H[a+44>>2]=H[c>>2];H[a+48>>2]=b;b=H[c+12>>2];H[a+52>>2]=H[c+8>>2];H[a+56>>2]=b;H[a+60>>2]=0;H[a+64>>2]=0;H[a>>2]=3812;H[a+68>>2]=0;H[a+72>>2]=0;H[a+76>>2]=0;H[a+80>>2]=0;H[a+84>>2]=0;H[a+88>>2]=j;break e;case 4:a=pa(104);H[a+4>>2]=d;H[a>>2]=3272;b=H[e+4>>2];H[a+8>>2]=H[e>>2];H[a+12>>2]=b;b=H[e+12>>2];H[a+16>>2]=H[e+8>>2];H[a+20>>2]=b;b=H[e+20>>2];H[a+24>>2]=H[e+16>>2];H[a+28>>2]=b;H[a+40>>2]=0;H[a+32>>2]=0;H[a+36>>2]=0;d=H[e+24>>2];f=H[e+28>>2];if((d|0)!=(f|0)){g=f-d|0;if((g|0)<0){break a}b=pa(g);H[a+32>>2]=b;H[a+40>>2]=(g&-4)+b;while(1){H[b>>2]=H[d>>2];b=b+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}H[a+36>>2]=b}b=H[c+4>>2];H[a+44>>2]=H[c>>2];H[a+48>>2]=b;b=H[c+12>>2];H[a+52>>2]=H[c+8>>2];H[a+56>>2]=b;H[a+84>>2]=0;H[a+76>>2]=0;H[a+80>>2]=0;H[a+60>>2]=0;H[a+64>>2]=0;H[a>>2]=4040;b=H[c+4>>2];H[a+88>>2]=H[c>>2];H[a+92>>2]=b;b=H[c+12>>2];H[a+96>>2]=H[c+8>>2];H[a+100>>2]=b;break e;case 5:break f;default:break e}}a=pa(128);H[a+4>>2]=d;H[a>>2]=3272;b=H[e+4>>2];H[a+8>>2]=H[e>>2];H[a+12>>2]=b;b=H[e+12>>2];H[a+16>>2]=H[e+8>>2];H[a+20>>2]=b;b=H[e+20>>2];H[a+24>>2]=H[e+16>>2];H[a+28>>2]=b;H[a+40>>2]=0;H[a+32>>2]=0;H[a+36>>2]=0;g:{b=H[e+28>>2];d=H[e+24>>2];if((b|0)!=(d|0)){d=b-d|0;if((d|0)<0){break a}b=pa(d);H[a+36>>2]=b;H[a+32>>2]=b;H[a+40>>2]=(d&-4)+b;d=H[e+24>>2];f=H[e+28>>2];if((d|0)!=(f|0)){while(1){H[b>>2]=H[d>>2];b=b+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}}H[a+36>>2]=b}H[a>>2]=3216;b=H[c+4>>2];H[a+44>>2]=H[c>>2];H[a+48>>2]=b;b=H[c+12>>2];H[a+52>>2]=H[c+8>>2];H[a+56>>2]=b;b=a- -64|0;H[b>>2]=0;H[b+4>>2]=0;H[a+60>>2]=4904;H[a>>2]=4276;b=H[c+4>>2];H[a+72>>2]=H[c>>2];H[a+76>>2]=b;b=H[c+12>>2];H[a+80>>2]=H[c+8>>2];H[a+84>>2]=b;H[a+104>>2]=1065353216;H[a+108>>2]=-1;H[a+96>>2]=-1;H[a+100>>2]=-1;H[a+88>>2]=1;H[a+92>>2]=-1;H[a+60>>2]=4512;H[a+112>>2]=0;H[a+116>>2]=0;F[a+117|0]=0;F[a+118|0]=0;F[a+119|0]=0;F[a+120|0]=0;F[a+121|0]=0;F[a+122|0]=0;F[a+123|0]=0;F[a+124|0]=0;break g}}break d}a=H[c+44>>2];H[h+12>>2]=k;H[h+8>>2]=a;H[h+20>>2]=f;H[h+16>>2]=f+12;c=h+8|0;a=0;h:{i:{switch(b-1|0){case 0:a=pa(60);H[a+4>>2]=d;H[a>>2]=3272;b=H[e+4>>2];H[a+8>>2]=H[e>>2];H[a+12>>2]=b;b=H[e+12>>2];H[a+16>>2]=H[e+8>>2];H[a+20>>2]=b;b=H[e+20>>2];H[a+24>>2]=H[e+16>>2];H[a+28>>2]=b;H[a+40>>2]=0;H[a+32>>2]=0;H[a+36>>2]=0;d=H[e+24>>2];f=H[e+28>>2];if((d|0)!=(f|0)){g=f-d|0;if((g|0)<0){break a}b=pa(g);H[a+32>>2]=b;H[a+40>>2]=(g&-4)+b;while(1){H[b>>2]=H[d>>2];b=b+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}H[a+36>>2]=b}b=H[c+4>>2];H[a+44>>2]=H[c>>2];H[a+48>>2]=b;b=H[c+12>>2];H[a+52>>2]=H[c+8>>2];H[a+56>>2]=b;H[a>>2]=4932;break h;case 1:a=pa(60);H[a+4>>2]=d;H[a>>2]=3272;b=H[e+4>>2];H[a+8>>2]=H[e>>2];H[a+12>>2]=b;b=H[e+12>>2];H[a+16>>2]=H[e+8>>2];H[a+20>>2]=b;b=H[e+20>>2];H[a+24>>2]=H[e+16>>2];H[a+28>>2]=b;H[a+40>>2]=0;H[a+32>>2]=0;H[a+36>>2]=0;d=H[e+24>>2];f=H[e+28>>2];if((d|0)!=(f|0)){g=f-d|0;if((g|0)<0){break a}b=pa(g);H[a+32>>2]=b;H[a+40>>2]=(g&-4)+b;while(1){H[b>>2]=H[d>>2];b=b+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}H[a+36>>2]=b}b=H[c+4>>2];H[a+44>>2]=H[c>>2];H[a+48>>2]=b;b=H[c+12>>2];H[a+52>>2]=H[c+8>>2];H[a+56>>2]=b;H[a>>2]=5356;break h;case 3:a=pa(112);H[a+4>>2]=d;H[a>>2]=3272;b=H[e+4>>2];H[a+8>>2]=H[e>>2];H[a+12>>2]=b;b=H[e+12>>2];H[a+16>>2]=H[e+8>>2];H[a+20>>2]=b;b=H[e+20>>2];H[a+24>>2]=H[e+16>>2];H[a+28>>2]=b;H[a+40>>2]=0;H[a+32>>2]=0;H[a+36>>2]=0;d=H[e+24>>2];f=H[e+28>>2];if((d|0)!=(f|0)){g=f-d|0;if((g|0)<0){break a}b=pa(g);H[a+32>>2]=b;H[a+40>>2]=(g&-4)+b;while(1){H[b>>2]=H[d>>2];b=b+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}H[a+36>>2]=b}b=H[c+4>>2];H[a+44>>2]=H[c>>2];H[a+48>>2]=b;b=H[c+12>>2];H[a+52>>2]=H[c+8>>2];H[a+56>>2]=b;H[a+60>>2]=0;H[a+64>>2]=0;H[a>>2]=5580;H[a+68>>2]=0;H[a+72>>2]=0;H[a+76>>2]=0;H[a+80>>2]=0;H[a+84>>2]=0;H[a+88>>2]=0;H[a+92>>2]=0;H[a+96>>2]=0;H[a+100>>2]=0;H[a+104>>2]=0;H[a+108>>2]=0;break h;case 2:a=pa(92);H[a+4>>2]=d;H[a>>2]=3272;b=H[e+4>>2];H[a+8>>2]=H[e>>2];H[a+12>>2]=b;b=H[e+12>>2];H[a+16>>2]=H[e+8>>2];H[a+20>>2]=b;b=H[e+20>>2];H[a+24>>2]=H[e+16>>2];H[a+28>>2]=b;H[a+40>>2]=0;H[a+32>>2]=0;H[a+36>>2]=0;d=H[e+24>>2];f=H[e+28>>2];if((d|0)!=(f|0)){g=f-d|0;if((g|0)<0){break a}b=pa(g);H[a+32>>2]=b;H[a+40>>2]=(g&-4)+b;while(1){H[b>>2]=H[d>>2];b=b+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}H[a+36>>2]=b}b=H[c+4>>2];H[a+44>>2]=H[c>>2];H[a+48>>2]=b;b=H[c+12>>2];H[a+52>>2]=H[c+8>>2];H[a+56>>2]=b;H[a+60>>2]=0;H[a+64>>2]=0;H[a>>2]=5816;H[a+68>>2]=0;H[a+72>>2]=0;H[a+76>>2]=0;H[a+80>>2]=0;H[a+84>>2]=0;H[a+88>>2]=j;break h;case 4:a=pa(104);H[a+4>>2]=d;H[a>>2]=3272;b=H[e+4>>2];H[a+8>>2]=H[e>>2];H[a+12>>2]=b;b=H[e+12>>2];H[a+16>>2]=H[e+8>>2];H[a+20>>2]=b;b=H[e+20>>2];H[a+24>>2]=H[e+16>>2];H[a+28>>2]=b;H[a+40>>2]=0;H[a+32>>2]=0;H[a+36>>2]=0;d=H[e+24>>2];f=H[e+28>>2];if((d|0)!=(f|0)){g=f-d|0;if((g|0)<0){break a}b=pa(g);H[a+32>>2]=b;H[a+40>>2]=(g&-4)+b;while(1){H[b>>2]=H[d>>2];b=b+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}H[a+36>>2]=b}b=H[c+4>>2];H[a+44>>2]=H[c>>2];H[a+48>>2]=b;b=H[c+12>>2];H[a+52>>2]=H[c+8>>2];H[a+56>>2]=b;H[a+84>>2]=0;H[a+76>>2]=0;H[a+80>>2]=0;H[a+60>>2]=0;H[a+64>>2]=0;H[a>>2]=6032;b=H[c+4>>2];H[a+88>>2]=H[c>>2];H[a+92>>2]=b;b=H[c+12>>2];H[a+96>>2]=H[c+8>>2];H[a+100>>2]=b;break h;case 5:break i;default:break h}}a=pa(128);H[a+4>>2]=d;H[a>>2]=3272;b=H[e+4>>2];H[a+8>>2]=H[e>>2];H[a+12>>2]=b;b=H[e+12>>2];H[a+16>>2]=H[e+8>>2];H[a+20>>2]=b;b=H[e+20>>2];H[a+24>>2]=H[e+16>>2];H[a+28>>2]=b;H[a+40>>2]=0;H[a+32>>2]=0;H[a+36>>2]=0;j:{b=H[e+28>>2];d=H[e+24>>2];if((b|0)!=(d|0)){d=b-d|0;if((d|0)<0){break a}b=pa(d);H[a+36>>2]=b;H[a+32>>2]=b;H[a+40>>2]=(d&-4)+b;d=H[e+24>>2];f=H[e+28>>2];if((d|0)!=(f|0)){while(1){H[b>>2]=H[d>>2];b=b+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}}H[a+36>>2]=b}H[a>>2]=5300;b=H[c+4>>2];H[a+44>>2]=H[c>>2];H[a+48>>2]=b;b=H[c+12>>2];H[a+52>>2]=H[c+8>>2];H[a+56>>2]=b;b=a- -64|0;H[b>>2]=0;H[b+4>>2]=0;H[a+60>>2]=6840;H[a>>2]=6256;b=H[c+4>>2];H[a+72>>2]=H[c>>2];H[a+76>>2]=b;b=H[c+12>>2];H[a+80>>2]=H[c+8>>2];H[a+84>>2]=b;H[a+104>>2]=1065353216;H[a+108>>2]=-1;H[a+96>>2]=-1;H[a+100>>2]=-1;H[a+88>>2]=1;H[a+92>>2]=-1;H[a+60>>2]=6476;H[a+112>>2]=0;H[a+116>>2]=0;F[a+117|0]=0;F[a+118|0]=0;F[a+119|0]=0;F[a+120|0]=0;F[a+121|0]=0;F[a+122|0]=0;F[a+123|0]=0;F[a+124|0]=0;break j}}}ca=h+32|0;d=a;if(a){break c}}d=pa(44);H[d+4>>2]=l;H[d>>2]=3272;a=H[e+4>>2];H[d+8>>2]=H[e>>2];H[d+12>>2]=a;a=H[e+12>>2];H[d+16>>2]=H[e+8>>2];H[d+20>>2]=a;a=H[e+20>>2];H[d+24>>2]=H[e+16>>2];H[d+28>>2]=a;H[d+40>>2]=0;H[d+32>>2]=0;H[d+36>>2]=0;c=H[e+24>>2];a=H[e+28>>2];if((c|0)!=(a|0)){b=a-c|0;if((b|0)<0){break a}e=pa(b);H[d+32>>2]=e;H[d+40>>2]=(b&-4)+e;while(1){H[e>>2]=H[c>>2];e=e+4|0;c=c+4|0;if((a|0)!=(c|0)){continue}break}H[d+36>>2]=e}H[d>>2]=6868;break c}e=d;a=H[i+32>>2];if(!a){break b}H[i+36>>2]=a;oa(a)}ca=i+48|0;return e|0}sa();v()}function Ec(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;l=ca-16|0;ca=l;a:{b:{c:{d:{e:{f:{g:{h:{i:{if(a>>>0<=244){g=H[4298];h=a>>>0<11?16:a+11&-8;c=h>>>3|0;b=g>>>c|0;if(b&3){c=c+((b^-1)&1)|0;a=c<<3;b=a+17232|0;d=H[a+17240>>2];a=H[d+8>>2];j:{if((b|0)==(a|0)){m=17192,n=Vj(c)&g,H[m>>2]=n;break j}H[a+12>>2]=b;H[b+8>>2]=a}a=d+8|0;b=c<<3;H[d+4>>2]=b|3;b=b+d|0;H[b+4>>2]=H[b+4>>2]|1;break a}k=H[4300];if(k>>>0>=h>>>0){break i}if(b){a=2<>2];a=H[e+8>>2];k:{if((b|0)==(a|0)){g=Vj(d)&g;H[4298]=g;break k}H[a+12>>2]=b;H[b+8>>2]=a}H[e+4>>2]=h|3;c=e+h|0;a=d<<3;d=a-h|0;H[c+4>>2]=d|1;H[a+e>>2]=d;if(k){b=(k&-8)+17232|0;f=H[4303];a=1<<(k>>>3);l:{if(!(a&g)){H[4298]=a|g;a=b;break l}a=H[b+8>>2]}H[b+8>>2]=f;H[a+12>>2]=f;H[f+12>>2]=b;H[f+8>>2]=a}a=e+8|0;H[4303]=c;H[4300]=d;break a}j=H[4299];if(!j){break i}c=H[(Qj(0-j&j)<<2)+17496>>2];f=(H[c+4>>2]&-8)-h|0;b=c;while(1){m:{a=H[b+16>>2];if(!a){a=H[b+20>>2];if(!a){break m}}b=(H[a+4>>2]&-8)-h|0;d=b>>>0>>0;f=d?b:f;c=d?a:c;b=a;continue}break}i=H[c+24>>2];d=H[c+12>>2];if((d|0)!=(c|0)){a=H[c+8>>2];H[a+12>>2]=d;H[d+8>>2]=a;break b}b=c+20|0;a=H[b>>2];if(!a){a=H[c+16>>2];if(!a){break h}b=c+16|0}while(1){e=b;d=a;b=a+20|0;a=H[b>>2];if(a){continue}b=d+16|0;a=H[d+16>>2];if(a){continue}break}H[e>>2]=0;break b}h=-1;if(a>>>0>4294967231){break i}a=a+11|0;h=a&-8;j=H[4299];if(!j){break i}f=0-h|0;g=0;n:{if(h>>>0<256){break n}g=31;if(h>>>0>16777215){break n}a=Q(a>>>8|0);g=((h>>>38-a&1)-(a<<1)|0)+62|0}b=H[(g<<2)+17496>>2];o:{p:{q:{if(!b){a=0;break q}a=0;c=h<<((g|0)!=31?25-(g>>>1|0)|0:0);while(1){r:{e=(H[b+4>>2]&-8)-h|0;if(e>>>0>=f>>>0){break r}d=b;f=e;if(e){break r}f=0;a=b;break p}e=H[b+20>>2];b=H[((c>>>29&4)+b|0)+16>>2];a=e?(e|0)==(b|0)?a:e:a;c=c<<1;if(b){continue}break}}if(!(a|d)){d=0;a=2<>2]}if(!a){break o}}while(1){b=(H[a+4>>2]&-8)-h|0;c=b>>>0>>0;f=c?b:f;d=c?a:d;b=H[a+16>>2];if(b){a=b}else{a=H[a+20>>2]}if(a){continue}break}}if(!d|H[4300]-h>>>0<=f>>>0){break i}g=H[d+24>>2];c=H[d+12>>2];if((d|0)!=(c|0)){a=H[d+8>>2];H[a+12>>2]=c;H[c+8>>2]=a;break c}b=d+20|0;a=H[b>>2];if(!a){a=H[d+16>>2];if(!a){break g}b=d+16|0}while(1){e=b;c=a;b=a+20|0;a=H[b>>2];if(a){continue}b=c+16|0;a=H[c+16>>2];if(a){continue}break}H[e>>2]=0;break c}a=H[4300];if(a>>>0>=h>>>0){d=H[4303];b=a-h|0;s:{if(b>>>0>=16){c=d+h|0;H[c+4>>2]=b|1;H[a+d>>2]=b;H[d+4>>2]=h|3;break s}H[d+4>>2]=a|3;a=a+d|0;H[a+4>>2]=H[a+4>>2]|1;c=0;b=0}H[4300]=b;H[4303]=c;a=d+8|0;break a}i=H[4301];if(i>>>0>h>>>0){b=i-h|0;H[4301]=b;c=H[4304];a=c+h|0;H[4304]=a;H[a+4>>2]=b|1;H[c+4>>2]=h|3;a=c+8|0;break a}a=0;j=h+47|0;if(H[4416]){c=H[4418]}else{H[4419]=-1;H[4420]=-1;H[4417]=4096;H[4418]=4096;H[4416]=l+12&-16^1431655768;H[4421]=0;H[4409]=0;c=4096}e=j+c|0;f=0-c|0;b=e&f;if(b>>>0<=h>>>0){break a}d=H[4408];if(d){c=H[4406];g=c+b|0;if(d>>>0>>0|c>>>0>=g>>>0){break a}}t:{if(!(I[17636]&4)){u:{v:{w:{x:{d=H[4304];if(d){a=17640;while(1){c=H[a>>2];if(c>>>0<=d>>>0&d>>>0>2]>>>0){break x}a=H[a+8>>2];if(a){continue}break}}c=zb(0);if((c|0)==-1){break u}g=b;d=H[4417];a=d-1|0;if(a&c){g=(b-c|0)+(a+c&0-d)|0}if(g>>>0<=h>>>0){break u}d=H[4408];if(d){a=H[4406];f=a+g|0;if(d>>>0>>0|a>>>0>=f>>>0){break u}}a=zb(g);if((c|0)!=(a|0)){break w}break t}g=f&e-i;c=zb(g);if((c|0)==(H[a>>2]+H[a+4>>2]|0)){break v}a=c}if((a|0)==-1){break u}if(h+48>>>0<=g>>>0){c=a;break t}c=H[4418];c=c+(j-g|0)&0-c;if((zb(c)|0)==-1){break u}g=c+g|0;c=a;break t}if((c|0)!=-1){break t}}H[4409]=H[4409]|4}c=zb(b);a=zb(0);if((c|0)==-1|(a|0)==-1|a>>>0<=c>>>0){break d}g=a-c|0;if(g>>>0<=h+40>>>0){break d}}a=H[4406]+g|0;H[4406]=a;if(a>>>0>K[4407]){H[4407]=a}y:{e=H[4304];if(e){a=17640;while(1){d=H[a>>2];b=H[a+4>>2];if((d+b|0)==(c|0)){break y}a=H[a+8>>2];if(a){continue}break}break f}a=H[4302];if(!(a>>>0<=c>>>0?a:0)){H[4302]=c}a=0;H[4411]=g;H[4410]=c;H[4306]=-1;H[4307]=H[4416];H[4413]=0;while(1){d=a<<3;b=d+17232|0;H[d+17240>>2]=b;H[d+17244>>2]=b;a=a+1|0;if((a|0)!=32){continue}break}d=g-40|0;a=c+8&7?-8-c&7:0;b=d-a|0;H[4301]=b;a=a+c|0;H[4304]=a;H[a+4>>2]=b|1;H[(c+d|0)+4>>2]=40;H[4305]=H[4420];break e}if(I[a+12|0]&8|d>>>0>e>>>0|c>>>0<=e>>>0){break f}H[a+4>>2]=b+g;a=e+8&7?-8-e&7:0;c=a+e|0;H[4304]=c;b=H[4301]+g|0;a=b-a|0;H[4301]=a;H[c+4>>2]=a|1;H[(b+e|0)+4>>2]=40;H[4305]=H[4420];break e}d=0;break b}c=0;break c}if(K[4302]>c>>>0){H[4302]=c}b=c+g|0;a=17640;z:{A:{B:{C:{D:{E:{while(1){if((b|0)!=H[a>>2]){a=H[a+8>>2];if(a){continue}break E}break}if(!(I[a+12|0]&8)){break D}}a=17640;while(1){b=H[a>>2];if(b>>>0<=e>>>0){f=b+H[a+4>>2]|0;if(f>>>0>e>>>0){break C}}a=H[a+8>>2];continue}}H[a>>2]=c;H[a+4>>2]=H[a+4>>2]+g;j=(c+8&7?-8-c&7:0)+c|0;H[j+4>>2]=h|3;g=b+(b+8&7?-8-b&7:0)|0;i=h+j|0;a=g-i|0;if((e|0)==(g|0)){H[4304]=i;a=H[4301]+a|0;H[4301]=a;H[i+4>>2]=a|1;break A}if(H[4303]==(g|0)){H[4303]=i;a=H[4300]+a|0;H[4300]=a;H[i+4>>2]=a|1;H[a+i>>2]=a;break A}f=H[g+4>>2];if((f&3)==1){e=f&-8;F:{if(f>>>0<=255){d=H[g+8>>2];b=f>>>3|0;c=H[g+12>>2];if((c|0)==(d|0)){m=17192,n=H[4298]&Vj(b),H[m>>2]=n;break F}H[d+12>>2]=c;H[c+8>>2]=d;break F}h=H[g+24>>2];c=H[g+12>>2];G:{if((g|0)!=(c|0)){b=H[g+8>>2];H[b+12>>2]=c;H[c+8>>2]=b;break G}H:{f=g+20|0;b=H[f>>2];if(b){break H}f=g+16|0;b=H[f>>2];if(b){break H}c=0;break G}while(1){d=f;c=b;f=c+20|0;b=H[f>>2];if(b){continue}f=c+16|0;b=H[c+16>>2];if(b){continue}break}H[d>>2]=0}if(!h){break F}d=H[g+28>>2];b=(d<<2)+17496|0;I:{if(H[b>>2]==(g|0)){H[b>>2]=c;if(c){break I}m=17196,n=H[4299]&Vj(d),H[m>>2]=n;break F}H[h+(H[h+16>>2]==(g|0)?16:20)>>2]=c;if(!c){break F}}H[c+24>>2]=h;b=H[g+16>>2];if(b){H[c+16>>2]=b;H[b+24>>2]=c}b=H[g+20>>2];if(!b){break F}H[c+20>>2]=b;H[b+24>>2]=c}g=e+g|0;f=H[g+4>>2];a=a+e|0}H[g+4>>2]=f&-2;H[i+4>>2]=a|1;H[a+i>>2]=a;if(a>>>0<=255){b=(a&-8)+17232|0;c=H[4298];a=1<<(a>>>3);J:{if(!(c&a)){H[4298]=a|c;a=b;break J}a=H[b+8>>2]}H[b+8>>2]=i;H[a+12>>2]=i;H[i+12>>2]=b;H[i+8>>2]=a;break A}f=31;if(a>>>0<=16777215){b=Q(a>>>8|0);f=((a>>>38-b&1)-(b<<1)|0)+62|0}H[i+28>>2]=f;H[i+16>>2]=0;H[i+20>>2]=0;b=(f<<2)+17496|0;d=H[4299];c=1<>2]=i;break K}f=a<<((f|0)!=31?25-(f>>>1|0)|0:0);c=H[b>>2];while(1){b=c;if((H[c+4>>2]&-8)==(a|0)){break B}c=f>>>29|0;f=f<<1;d=(c&4)+b|0;c=H[d+16>>2];if(c){continue}break}H[d+16>>2]=i}H[i+24>>2]=b;H[i+12>>2]=i;H[i+8>>2]=i;break A}d=g-40|0;a=c+8&7?-8-c&7:0;b=d-a|0;H[4301]=b;a=a+c|0;H[4304]=a;H[a+4>>2]=b|1;H[(c+d|0)+4>>2]=40;H[4305]=H[4420];a=(f+(f-39&7?39-f&7:0)|0)-47|0;d=a>>>0>>0?e:a;H[d+4>>2]=27;a=H[4413];H[d+16>>2]=H[4412];H[d+20>>2]=a;a=H[4411];H[d+8>>2]=H[4410];H[d+12>>2]=a;H[4412]=d+8;H[4411]=g;H[4410]=c;H[4413]=0;a=d+24|0;while(1){H[a+4>>2]=7;b=a+8|0;a=a+4|0;if(b>>>0>>0){continue}break}if((d|0)==(e|0)){break e}H[d+4>>2]=H[d+4>>2]&-2;f=d-e|0;H[e+4>>2]=f|1;H[d>>2]=f;if(f>>>0<=255){b=(f&-8)+17232|0;c=H[4298];a=1<<(f>>>3);L:{if(!(c&a)){H[4298]=a|c;a=b;break L}a=H[b+8>>2]}H[b+8>>2]=e;H[a+12>>2]=e;H[e+12>>2]=b;H[e+8>>2]=a;break e}a=31;if(f>>>0<=16777215){a=Q(f>>>8|0);a=((f>>>38-a&1)-(a<<1)|0)+62|0}H[e+28>>2]=a;H[e+16>>2]=0;H[e+20>>2]=0;b=(a<<2)+17496|0;d=H[4299];c=1<>2]=e;break M}a=f<<((a|0)!=31?25-(a>>>1|0)|0:0);d=H[b>>2];while(1){b=d;if((f|0)==(H[b+4>>2]&-8)){break z}c=a>>>29|0;a=a<<1;c=(c&4)+b|0;d=H[c+16>>2];if(d){continue}break}H[c+16>>2]=e}H[e+24>>2]=b;H[e+12>>2]=e;H[e+8>>2]=e;break e}a=H[b+8>>2];H[a+12>>2]=i;H[b+8>>2]=i;H[i+24>>2]=0;H[i+12>>2]=b;H[i+8>>2]=a}a=j+8|0;break a}a=H[b+8>>2];H[a+12>>2]=e;H[b+8>>2]=e;H[e+24>>2]=0;H[e+12>>2]=b;H[e+8>>2]=a}a=H[4301];if(a>>>0<=h>>>0){break d}b=a-h|0;H[4301]=b;c=H[4304];a=c+h|0;H[4304]=a;H[a+4>>2]=b|1;H[c+4>>2]=h|3;a=c+8|0;break a}H[3992]=48;a=0;break a}N:{if(!g){break N}b=H[d+28>>2];a=(b<<2)+17496|0;O:{if(H[a>>2]==(d|0)){H[a>>2]=c;if(c){break O}j=Vj(b)&j;H[4299]=j;break N}H[g+(H[g+16>>2]==(d|0)?16:20)>>2]=c;if(!c){break N}}H[c+24>>2]=g;a=H[d+16>>2];if(a){H[c+16>>2]=a;H[a+24>>2]=c}a=H[d+20>>2];if(!a){break N}H[c+20>>2]=a;H[a+24>>2]=c}P:{if(f>>>0<=15){a=f+h|0;H[d+4>>2]=a|3;a=a+d|0;H[a+4>>2]=H[a+4>>2]|1;break P}H[d+4>>2]=h|3;e=d+h|0;H[e+4>>2]=f|1;H[e+f>>2]=f;if(f>>>0<=255){b=(f&-8)+17232|0;c=H[4298];a=1<<(f>>>3);Q:{if(!(c&a)){H[4298]=a|c;a=b;break Q}a=H[b+8>>2]}H[b+8>>2]=e;H[a+12>>2]=e;H[e+12>>2]=b;H[e+8>>2]=a;break P}a=31;if(f>>>0<=16777215){a=Q(f>>>8|0);a=((f>>>38-a&1)-(a<<1)|0)+62|0}H[e+28>>2]=a;H[e+16>>2]=0;H[e+20>>2]=0;b=(a<<2)+17496|0;R:{c=1<>2]=e;break S}a=f<<((a|0)!=31?25-(a>>>1|0)|0:0);h=H[b>>2];while(1){b=h;if((H[b+4>>2]&-8)==(f|0)){break R}c=a>>>29|0;a=a<<1;c=(c&4)+b|0;h=H[c+16>>2];if(h){continue}break}H[c+16>>2]=e}H[e+24>>2]=b;H[e+12>>2]=e;H[e+8>>2]=e;break P}a=H[b+8>>2];H[a+12>>2]=e;H[b+8>>2]=e;H[e+24>>2]=0;H[e+12>>2]=b;H[e+8>>2]=a}a=d+8|0;break a}T:{if(!i){break T}b=H[c+28>>2];a=(b<<2)+17496|0;U:{if(H[a>>2]==(c|0)){H[a>>2]=d;if(d){break U}m=17196,n=Vj(b)&j,H[m>>2]=n;break T}H[i+(H[i+16>>2]==(c|0)?16:20)>>2]=d;if(!d){break T}}H[d+24>>2]=i;a=H[c+16>>2];if(a){H[d+16>>2]=a;H[a+24>>2]=d}a=H[c+20>>2];if(!a){break T}H[d+20>>2]=a;H[a+24>>2]=d}V:{if(f>>>0<=15){a=f+h|0;H[c+4>>2]=a|3;a=a+c|0;H[a+4>>2]=H[a+4>>2]|1;break V}H[c+4>>2]=h|3;d=c+h|0;H[d+4>>2]=f|1;H[d+f>>2]=f;if(k){b=(k&-8)+17232|0;e=H[4303];a=1<<(k>>>3);W:{if(!(a&g)){H[4298]=a|g;a=b;break W}a=H[b+8>>2]}H[b+8>>2]=e;H[a+12>>2]=e;H[e+12>>2]=b;H[e+8>>2]=a}H[4303]=d;H[4300]=f}a=c+8|0}ca=l+16|0;return a|0}function ce(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0,z=0,A=0;m=ca-32|0;ca=m;o=pa(12);H[o+8>>2]=0;H[o+4>>2]=b;H[o>>2]=0;s=o+12|0;b=s;a:{b:{c:{while(1){b=b-12|0;w=H[b+8>>2];j=H[b+4>>2];t=H[b>>2];if(t){if((w|0)>1e3){break a}H[m+24>>2]=0;H[m+16>>2]=0;H[m+20>>2]=0;d=1;c=H[a>>2];e=H[c+8>>2];h=H[c+12>>2];g=H[c+20>>2];f=H[c+16>>2];d:{if((h|0)<=(g|0)&f>>>0>=e>>>0|(g|0)>(h|0)){break d}e=I[f+H[c>>2]|0];h=c;c=g;f=f+1|0;c=f?c:c+1|0;H[h+16>>2]=f;H[h+20>>2]=c;Cc(m+16|0,e);if(e){c=H[a>>2];n=Dc(m+16|0);p=H[c+8>>2];g=H[c+12>>2];h=H[c+20>>2];f=H[c+16>>2];k=f+e|0;h=k>>>0>>0?h+1|0:h;if((g|0)<=(h|0)&k>>>0>p>>>0|(g|0)<(h|0)){break d}qa(n,f+H[c>>2]|0,e);d=H[c+20>>2];f=e;e=e+H[c+16>>2]|0;d=f>>>0>e>>>0?d+1|0:d;H[c+16>>2]=e;H[c+20>>2]=d}j=pa(24);c=j;H[c+4>>2]=0;H[c+8>>2]=0;c=c+16|0;H[c>>2]=0;H[c+4>>2]=0;H[j>>2]=j+4;H[j+12>>2]=c;e=ca-32|0;ca=e;h=t+12|0;c=m+16|0;u=nb(h,c);i=t+16|0;e:{if((u|0)==(i|0)){H[e+16>>2]=c;f:{g:{d=H[h+4>>2];h:{if(!d){f=h+4|0;c=f;break h}f=I[c+11|0];g=f<<24>>24<0;n=g?H[c>>2]:c;g=g?H[c+4>>2]:f;while(1){c=d;d=I[c+27|0];f=d<<24>>24<0;d=f?H[c+20>>2]:d;p=d>>>0>>0;i:{j:{k:{l:{k=p?d:g;m:{if(k){f=f?H[c+16>>2]:c+16|0;q=Fa(n,f,k);if(!q){if(d>>>0>g>>>0){break m}break l}if((q|0)>=0){break l}break m}if(d>>>0<=g>>>0){break k}}f=c;d=H[c>>2];if(d){continue}break h}d=Fa(f,n,k);if(d){break j}}if(p){break i}break g}if((d|0)>=0){break g}}d=H[c+4>>2];if(d){continue}break}f=c+4|0}d=pa(32);n=d+16|0;g=H[e+16>>2];n:{if(F[g+11|0]>=0){p=H[g+4>>2];H[n>>2]=H[g>>2];H[n+4>>2]=p;H[n+8>>2]=H[g+8>>2];break n}za(n,H[g>>2],H[g+4>>2])}H[d+8>>2]=c;H[d>>2]=0;H[d+4>>2]=0;H[d+28>>2]=0;H[f>>2]=d;c=d;g=H[H[h>>2]>>2];if(g){H[h>>2]=g;c=H[f>>2]}Sb(H[h+4>>2],c);H[h+8>>2]=H[h+8>>2]+1;c=1;break f}d=c;c=0}F[e+28|0]=c;H[e+24>>2]=d;d=H[e+24>>2];c=H[d+28>>2];H[d+28>>2]=j;if(!c){break e}Ra(c+12|0,H[c+16>>2]);Qa(c,H[c+4>>2]);oa(c);break e}if(!j){break e}Ra(j+12|0,H[j+16>>2]);Qa(j,H[j+4>>2]);oa(j)}ca=e+32|0;d=(i|0)!=(u|0)}if(F[m+27|0]<0){oa(H[m+16>>2])}if(d){break a}}if(!j){break a}H[m+16>>2]=0;if(!Bb(1,m+16|0,H[a>>2])){break a}q=0;x=H[m+16>>2];if(x){while(1){d=0;i=ca-32|0;ca=i;H[i+24>>2]=0;H[i+16>>2]=0;H[i+20>>2]=0;c=H[a>>2];f=H[c+8>>2];o:{p:{h=H[c+12>>2];g=H[c+20>>2];e=H[c+16>>2];q:{if((h|0)<=(g|0)&e>>>0>=f>>>0|(g|0)>(h|0)){break q}f=I[e+H[c>>2]|0];h=c;c=g;e=e+1|0;c=e?c:c+1|0;H[h+16>>2]=e;H[h+20>>2]=c;Cc(i+16|0,f);if(f){e=H[a>>2];n=Dc(i+16|0);p=H[e+8>>2];g=H[e+12>>2];c=H[e+20>>2];h=H[e+16>>2];k=h+f|0;c=k>>>0>>0?c+1|0:c;if(k>>>0>p>>>0&(c|0)>=(g|0)|(c|0)>(g|0)){break q}qa(n,h+H[e>>2]|0,f);c=H[e+20>>2];g=f;f=f+H[e+16>>2]|0;c=g>>>0>f>>>0?c+1|0:c;H[e+16>>2]=f;H[e+20>>2]=c}H[i+12>>2]=0;if(!Bb(1,i+12|0,H[a>>2])){break q}f=H[i+12>>2];if(!f){break q}e=H[a>>2];c=H[e+8>>2];h=H[e+16>>2];g=c-h|0;c=H[e+12>>2]-(H[e+20>>2]+(c>>>0>>0)|0)|0;if((c|0)<=0&f>>>0>g>>>0|(c|0)<0){break q}H[i+8>>2]=0;H[i>>2]=0;H[i+4>>2]=0;if((f|0)<0){break p}d=pa(f);H[i>>2]=d;c=d+f|0;H[i+8>>2]=c;l=ra(d,0,f);H[i+4>>2]=c;h=H[e+12>>2];y=h;p=H[e+8>>2];c=H[e+20>>2];k=H[e+16>>2];g=f+k|0;c=g>>>0>>0?c+1|0:c;u=g;n=c;r:{if((c|0)<=(h|0)&g>>>0<=p>>>0|(c|0)<(h|0)){qa(l,H[e>>2]+k|0,f);d=H[e+20>>2];c=f+H[e+16>>2]|0;d=c>>>0>>0?d+1|0:d;H[e+16>>2]=c;H[e+20>>2]=d;h=ca-48|0;ca=h;e=nb(j,i+16|0);if((e|0)!=(j+4|0)){c=H[e+4>>2];s:{if(!c){c=e;while(1){d=H[c+8>>2];f=H[d>>2]!=(c|0);c=d;if(f){continue}break}break s}while(1){d=c;c=H[c>>2];if(c){continue}break}}if((e|0)==H[j>>2]){H[j>>2]=d}H[j+8>>2]=H[j+8>>2]-1;f=H[j+4>>2];t:{u:{g=e;d=e;e=H[d>>2];if(e){c=H[g+4>>2];if(!c){break u}while(1){d=c;c=H[c>>2];if(c){continue}break}}e=H[d+4>>2];if(e){break u}e=0;k=1;break t}H[e+8>>2]=H[d+8>>2];k=0}l=H[d+8>>2];c=H[l>>2];v:{if((d|0)==(c|0)){H[l>>2]=e;if((d|0)==(f|0)){c=0;f=e;break v}c=H[l+4>>2];break v}H[l+4>>2]=e}r=!I[d+12|0];if((d|0)!=(g|0)){l=H[g+8>>2];H[d+8>>2]=l;H[l+(((g|0)!=H[H[g+8>>2]>>2])<<2)>>2]=d;l=H[g>>2];H[d>>2]=l;H[l+8>>2]=d;l=H[g+4>>2];H[d+4>>2]=l;if(l){H[l+8>>2]=d}F[d+12|0]=I[g+12|0];f=(f|0)==(g|0)?d:f}w:{if(r|!f){break w}if(k){while(1){e=I[c+12|0];x:{d=H[c+8>>2];if(H[d>>2]!=(c|0)){if(!e){F[c+12|0]=1;F[d+12|0]=0;e=H[d+4>>2];k=H[e>>2];H[d+4>>2]=k;if(k){H[k+8>>2]=d}H[e+8>>2]=H[d+8>>2];k=H[d+8>>2];H[(((d|0)!=H[k>>2])<<2)+k>>2]=e;H[e>>2]=d;H[d+8>>2]=e;d=c;c=H[c>>2];f=(c|0)==(f|0)?d:f;c=H[c+4>>2]}y:{z:{d=H[c>>2];A:{if(!(I[d+12|0]?0:d)){e=H[c+4>>2];if(I[e+12|0]?0:e){break A}F[c+12|0]=0;c=H[c+8>>2];B:{if((f|0)==(c|0)){c=f;break B}if(I[c+12|0]){break x}}F[c+12|0]=1;break w}e=H[c+4>>2];if(!e){break z}}if(I[e+12|0]){break z}d=c;break y}F[d+12|0]=1;F[c+12|0]=0;e=H[d+4>>2];H[c>>2]=e;if(e){H[e+8>>2]=c}H[d+8>>2]=H[c+8>>2];e=H[c+8>>2];H[((H[e>>2]!=(c|0))<<2)+e>>2]=d;H[d+4>>2]=c;H[c+8>>2]=d;e=c}c=H[d+8>>2];F[d+12|0]=I[c+12|0];F[c+12|0]=1;F[e+12|0]=1;d=H[c+4>>2];e=H[d>>2];H[c+4>>2]=e;if(e){H[e+8>>2]=c}H[d+8>>2]=H[c+8>>2];e=H[c+8>>2];H[(((c|0)!=H[e>>2])<<2)+e>>2]=d;H[d>>2]=c;H[c+8>>2]=d;break w}if(!e){F[c+12|0]=1;F[d+12|0]=0;e=H[c+4>>2];H[d>>2]=e;if(e){H[e+8>>2]=d}H[c+8>>2]=H[d+8>>2];e=H[d+8>>2];H[(((d|0)!=H[e>>2])<<2)+e>>2]=c;H[c+4>>2]=d;H[d+8>>2]=c;f=(d|0)==(f|0)?c:f;c=H[d>>2]}e=H[c>>2];C:{if(!(!e|I[e+12|0])){d=c;break C}d=H[c+4>>2];if(!(I[d+12|0]?0:d)){F[c+12|0]=0;c=H[c+8>>2];if((c|0)!=(f|0)?I[c+12|0]:0){break x}F[c+12|0]=1;break w}if(e){if(!I[e+12|0]){d=c;break C}d=H[c+4>>2]}F[d+12|0]=1;F[c+12|0]=0;e=H[d>>2];H[c+4>>2]=e;if(e){H[e+8>>2]=c}H[d+8>>2]=H[c+8>>2];e=H[c+8>>2];H[((H[e>>2]!=(c|0))<<2)+e>>2]=d;H[d>>2]=c;H[c+8>>2]=d;e=c}c=H[d+8>>2];F[d+12|0]=I[c+12|0];F[c+12|0]=1;F[e+12|0]=1;d=H[c>>2];e=H[d+4>>2];H[c>>2]=e;if(e){H[e+8>>2]=c}H[d+8>>2]=H[c+8>>2];e=H[c+8>>2];H[(((c|0)!=H[e>>2])<<2)+e>>2]=d;H[d+4>>2]=c;H[c+8>>2]=d;break w}d=c;c=H[c+8>>2];c=H[(((d|0)==H[c>>2])<<2)+c>>2];continue}}F[e+12|0]=1}c=H[g+28>>2];if(c){H[g+32>>2]=c;oa(c)}if(F[g+27|0]<0){oa(H[g+16>>2])}oa(g)}H[h+8>>2]=0;H[h>>2]=0;H[h+4>>2]=0;c=H[i+4>>2];d=H[i>>2];f=c-d|0;e=0;D:{E:{if((c|0)!=(d|0)){if((f|0)<0){break E}e=pa(f);c=ra(e,0,f);g=c+f|0;H[h+8>>2]=g;H[h+4>>2]=g;H[h>>2]=c;c=d}qa(e,c,f);F:{if(F[i+27|0]>=0){H[h+24>>2]=H[i+24>>2];c=H[i+20>>2];H[h+16>>2]=H[i+16>>2];H[h+20>>2]=c;break F}za(h+16|0,H[i+16>>2],H[i+20>>2])}ae(h+28|0,h);f=h+16|0;c=f;G:{H:{d=H[j+4>>2];I:{if(!d){e=j+4|0;c=e;break I}e=I[c+11|0];g=e<<24>>24<0;k=g?H[c>>2]:c;g=g?H[c+4>>2]:e;while(1){c=d;d=I[c+27|0];e=d<<24>>24<0;d=e?H[c+20>>2]:d;l=d>>>0>>0;J:{K:{L:{M:{r=l?d:g;N:{if(r){e=e?H[c+16>>2]:c+16|0;z=Fa(k,e,r);if(!z){if(d>>>0>g>>>0){break N}break M}if((z|0)>=0){break M}break N}if(d>>>0<=g>>>0){break L}}e=c;d=H[c>>2];if(d){continue}break I}d=Fa(e,k,r);if(d){break K}}if(l){break J}break H}if((d|0)>=0){break H}}d=H[c+4>>2];if(d){continue}break}e=c+4|0}d=pa(40);H[d+24>>2]=H[f+8>>2];g=H[f+4>>2];H[d+16>>2]=H[f>>2];H[d+20>>2]=g;H[f>>2]=0;H[f+4>>2]=0;H[f+8>>2]=0;ae(d+28|0,f+12|0);H[d+8>>2]=c;H[d>>2]=0;H[d+4>>2]=0;H[e>>2]=d;c=d;f=H[H[j>>2]>>2];if(f){H[j>>2]=f;c=H[e>>2]}Sb(H[j+4>>2],c);H[j+8>>2]=H[j+8>>2]+1;c=1;break G}d=c;c=0}F[h+44|0]=c;H[h+40>>2]=d;c=H[h+28>>2];if(c){H[h+32>>2]=c;oa(c)}if(F[h+27|0]<0){oa(H[h+16>>2])}c=H[h>>2];if(c){H[h+4>>2]=c;oa(c)}ca=h+48|0;break D}sa();v()}d=H[i>>2];if(!d){break r}}H[i+4>>2]=d;oa(d)}d=(n|0)<=(y|0)&p>>>0>=u>>>0|(n|0)<(y|0)}if(F[i+27|0]<0){oa(H[i+16>>2])}ca=i+32|0;break o}sa();v()}if(!d){break a}q=q+1|0;if((x|0)!=(q|0)){continue}break}}H[m+12>>2]=0;if(!Bb(1,m+12|0,H[a>>2])){break a}c=H[a>>2];e=H[c+8>>2];f=H[c+16>>2];h=e-f|0;d=H[m+12>>2];c=H[c+12>>2]-(H[c+20>>2]+(e>>>0>>0)|0)|0;if(h>>>0>>0&(c|0)<=0|(c|0)<0){break a}if(d){q=0;h=((t|0)!=0)+w|0;while(1){O:{if(b>>>0>>0){H[b+8>>2]=h;H[b+4>>2]=0;H[b>>2]=j;b=b+12|0;d=H[m+12>>2];break O}c=b-o|0;g=(c|0)/12|0;b=g+1|0;if(b>>>0>=357913942){break c}e=(s-o|0)/12|0;f=e<<1;e=e>>>0>=178956970?357913941:b>>>0>>0?f:b;if(e){if(e>>>0>=357913942){break b}f=pa(N(e,12))}else{f=0}b=f+N(g,12)|0;H[b+8>>2]=h;H[b+4>>2]=0;H[b>>2]=j;c=va(b+N((c|0)/-12|0,12)|0,o,c);s=f+N(e,12)|0;b=b+12|0;if(o){oa(o)}o=c}q=q+1|0;if(q>>>0>>0){continue}break}}if((b|0)!=(o|0)){continue}break}A=1;break a}sa();v()}wa();v()}if(o){oa(o)}ca=m+32|0;return A}function Af(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=O(0),q=0,r=0;e=ca-720|0;ca=e;a:{b:{c:{d:{e:{f:{g:{h:{i:{if(J[b+38>>1]>=515){H[e+680>>2]=0;H[e+672>>2]=0;H[e+676>>2]=0;if((ea[H[H[a>>2]+24>>2]](a)|0)<=0){break d}while(1){c=ea[H[H[a>>2]+20>>2]](a,n)|0;d=H[H[H[(ea[H[H[a>>2]+28>>2]](a)|0)+4>>2]+8>>2]+(c<<2)>>2];if(H[d+28>>2]==9){f=H[e+672>>2];c=H[e+676>>2]-f>>2;k=I[d+24|0];j:{if(c>>>0>>0){ya(e+672|0,k-c|0);break j}if(c>>>0<=k>>>0){break j}H[e+676>>2]=f+(k<<2)}j=0;i=H[b+8>>2];h=H[b+12>>2];c=H[b+20>>2];d=k<<2;f=H[b+16>>2];l=f+d|0;c=d>>>0>l>>>0?c+1|0:c;if(i>>>0>>0&(c|0)>=(h|0)|(c|0)>(h|0)){break b}qa(H[e+672>>2],f+H[b>>2]|0,d);c=H[b+20>>2];f=d;d=d+H[b+16>>2]|0;c=f>>>0>d>>>0?c+1|0:c;i=d;H[b+16>>2]=d;H[b+20>>2]=c;l=H[b+12>>2];g=H[b+8>>2];h=d+4|0;f=h>>>0<4?c+1|0:c;d=f;if(g>>>0>>0&(d|0)>=(l|0)|(d|0)>(l|0)){break b}o=H[b>>2];f=o+i|0;f=I[f|0]|I[f+1|0]<<8|(I[f+2|0]<<16|I[f+3|0]<<24);H[b+16>>2]=h;H[b+20>>2]=d;if(g>>>0<=h>>>0&(d|0)>=(l|0)|(d|0)>(l|0)){break b}d=I[h+o|0];h=i+5|0;c=h>>>0<5?c+1|0:c;H[b+16>>2]=h;H[b+20>>2]=c;if(d>>>0>31){break b}p=(A(2,f),B());H[e+20>>2]=-1;H[e+16>>2]=1832;H[e+32>>2]=0;H[e+36>>2]=0;H[e+24>>2]=0;H[e+28>>2]=0;c=H[e+672>>2];o=d-1|0;if(o>>>0<=29){H[e+20>>2]=d;k:{h=c+(k<<2)|0;l=h-c|0;f=l>>2;i=H[e+32>>2];d=H[e+24>>2];if(f>>>0<=i-d>>2>>>0){i=H[e+28>>2]-d|0;l=i>>2;i=f>>>0>l>>>0?c+i|0:h;g=i-c|0;if((c|0)!=(i|0)){va(d,c,g)}if(f>>>0>l>>>0){c=h-i|0;d=H[e+28>>2];if((h|0)!=(i|0)){va(d,i,c)}H[e+28>>2]=c+d;break k}H[e+28>>2]=d+g;break k}if(d){H[e+28>>2]=d;oa(d);H[e+32>>2]=0;H[e+24>>2]=0;H[e+28>>2]=0;i=0}l:{if((l|0)<0){break l}d=i>>>1|0;d=i>>>0>=2147483644?1073741823:d>>>0>f>>>0?d:f;if(d>>>0>=1073741824){break l}i=d<<2;d=pa(i);H[e+28>>2]=d;H[e+24>>2]=d;H[e+32>>2]=d+i;if((c|0)!=(h|0)){qa(d,c,l)}H[e+28>>2]=d+(f<<2);break k}sa();v()}L[e+36>>2]=p}m:{if(o>>>0>=30){break m}if(!Xc(e+16|0,H[H[a+60>>2]+((H[a+40>>2]-H[a+36>>2]|0)/24<<2)>>2])){break m}c=H[a+40>>2];n:{if((c|0)!=H[a+44>>2]){H[c>>2]=1832;d=H[e+20>>2];H[c+16>>2]=0;H[c+8>>2]=0;H[c+12>>2]=0;H[c+4>>2]=d;d=H[e+28>>2];f=H[e+24>>2];if((d|0)!=(f|0)){d=d-f|0;if((d|0)<0){break i}g=pa(d);H[c+12>>2]=g;H[c+8>>2]=g;H[c+16>>2]=(d&-4)+g;k=H[e+24>>2];d=H[e+28>>2];if((k|0)!=(d|0)){while(1){L[g>>2]=L[k>>2];g=g+4|0;k=k+4|0;if((d|0)!=(k|0)){continue}break}}H[c+12>>2]=g}L[c+20>>2]=L[e+36>>2];H[a+40>>2]=c+24;break n}d=0;o:{p:{q:{r:{j=H[a+40>>2];f=H[a+36>>2];i=(j-f|0)/24|0;c=i+1|0;if(c>>>0<178956971){h=(H[a+44>>2]-f|0)/24|0;l=h<<1;h=h>>>0>=89478485?178956970:c>>>0>>0?l:c;if(h){if(h>>>0>=178956971){break r}d=pa(N(h,24))}g=N(i,24)+d|0;H[g>>2]=1832;c=H[e+20>>2];H[g+16>>2]=0;H[g+8>>2]=0;H[g+12>>2]=0;H[g+4>>2]=c;c=H[e+24>>2];i=H[e+28>>2];if((c|0)!=(i|0)){l=i-c|0;if((l|0)<0){break q}k=pa(l);H[g+8>>2]=k;H[g+16>>2]=(l&-4)+k;while(1){L[k>>2]=L[c>>2];k=k+4|0;c=c+4|0;if((i|0)!=(c|0)){continue}break}H[g+12>>2]=k}c=N(h,24)+d|0;L[g+20>>2]=L[e+36>>2];d=g+24|0;if((f|0)==(j|0)){break p}while(1){g=g-24|0;H[g>>2]=1832;j=j-24|0;H[g+4>>2]=H[j+4>>2];H[g+8>>2]=H[j+8>>2];H[g+12>>2]=H[j+12>>2];H[g+16>>2]=H[j+16>>2];H[j+16>>2]=0;H[j+8>>2]=0;H[j+12>>2]=0;L[g+20>>2]=L[j+20>>2];if((f|0)!=(j|0)){continue}break}H[a+44>>2]=c;k=H[a+40>>2];H[a+40>>2]=d;j=H[a+36>>2];H[a+36>>2]=g;if((j|0)==(k|0)){break o}while(1){k=k-24|0;ea[H[H[k>>2]>>2]](k)|0;if((j|0)!=(k|0)){continue}break}break o}sa();v()}wa();v()}sa();v()}H[a+44>>2]=c;H[a+40>>2]=d;H[a+36>>2]=g}if(j){oa(j)}}j=1}H[e+16>>2]=1832;c=H[e+24>>2];if(c){H[e+28>>2]=c;oa(c)}if(!j){break c}}n=n+1|0;if((ea[H[H[a>>2]+24>>2]](a)|0)>(n|0)){continue}break}break d}k=ea[H[H[a>>2]+24>>2]](a)|0;H[e+712>>2]=0;H[e+704>>2]=0;H[e+708>>2]=0;if(k){if(k>>>0>=214748365){break h}c=N(k,20);d=pa(c);H[e+704>>2]=d;H[e+712>>2]=c+d;c=c-20|0;c=(c-((c>>>0)%20|0)|0)+20|0;q=e,r=ra(d,0,c)+c|0,H[q+708>>2]=r;while(1){c=ea[H[H[a>>2]+20>>2]](a,m)|0;d=H[H[H[(ea[H[H[a>>2]+28>>2]](a)|0)+4>>2]+8>>2]+(c<<2)>>2];f=H[d+28>>2];c=f-1|0;if(c>>>0<=10){c=H[(c<<2)+13584>>2]}else{c=-1}h=(c|0)>0?c:0;if(h>>>0>4){break f}c=H[e+704>>2]+N(m,20)|0;i=I[d+24|0];H[c+16>>2]=i;H[c+12>>2]=h;H[c+8>>2]=f;H[c+4>>2]=g;H[c>>2]=d;g=g+i|0;m=m+1|0;if((k|0)!=(m|0)){continue}break}}c=ea[H[H[a>>2]+20>>2]](a,0)|0;m=H[H[H[(ea[H[H[a>>2]+28>>2]](a)|0)+4>>2]+8>>2]+(c<<2)>>2];F[m+84|0]=1;H[m+72>>2]=H[m+68>>2];h=H[b+12>>2];c=h;d=H[b+20>>2];f=H[b+8>>2];i=H[b+16>>2];if((c|0)<=(d|0)&f>>>0<=i>>>0|(c|0)<(d|0)){break f}n=H[b>>2];o=I[n+i|0];c=d;l=i+1|0;c=l?c:c+1|0;H[b+16>>2]=l;H[b+20>>2]=c;s:{switch(o|0){case 0:a=H[e+704>>2];if((H[e+708>>2]-a|0)!=20){break e}if(H[a+16>>2]!=3){break f}t:{if(f>>>0<=l>>>0&(c|0)>=(h|0)|(c|0)>(h|0)){break t}c=d;a=i+2|0;c=a>>>0<2?c+1|0:c;l=a;H[b+16>>2]=a;H[b+20>>2]=c;c=d;a=i+6|0;c=a>>>0<6?c+1|0:c;if(a>>>0>f>>>0&(c|0)>=(h|0)|(c|0)>(h|0)){break t}d=l+n|0;d=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);H[b+16>>2]=a;H[b+20>>2]=c;mb(m,d);j=e+672|0;H[j+20>>2]=0;H[j+12>>2]=0;H[j+16>>2]=0;H[j>>2]=0;H[j+4>>2]=0;H[j+20>>2]=d;d=Ac(e+16|0,e+704|0);k=0;g=ca-32|0;ca=g;H[g+24>>2]=0;H[g+16>>2]=0;H[g+20>>2]=0;f=H[b+12>>2];m=f;i=H[b+8>>2];c=H[b+20>>2];l=c;h=H[b+16>>2];a=h+4|0;c=a>>>0<4?c+1|0:c;u:{if(a>>>0>i>>>0&(c|0)>=(f|0)|(c|0)>(f|0)){break u}n=H[b>>2];f=n+h|0;f=I[f|0]|I[f+1|0]<<8|(I[f+2|0]<<16|I[f+3|0]<<24);H[b+16>>2]=a;H[b+20>>2]=c;v:{w:{switch(f-2|0){case 1:if((c|0)>=(m|0)&a>>>0>=i>>>0|(c|0)>(m|0)){break u}a=I[a+n|0];c=l;f=h+5|0;c=f>>>0<5?c+1|0:c;H[b+16>>2]=f;H[b+20>>2]=c;F[j+8|0]=a;if((a|0)==1){if(Ud(j,b,g+16|0)){break v}break u}Rd(1799,23,H[3443]);break u;default:Rd(1774,24,H[3443]);break u;case 0:break w}}if(!Ud(j,b,g+16|0)){break u}}H[g+8>>2]=H[g+16>>2];H[g>>2]=H[g+20>>2];c=ca-32|0;ca=c;a=H[j>>2];p=L[j+4>>2];H[c+24>>2]=1065353216;h=-1<0){L[c+24>>2]=p/O(a|0)}m=H[g+8>>2];n=H[g>>2];if((m|0)!=(n|0)){a=H[d+28>>2];while(1){b=H[m>>2];f=H[m+4>>2];p=L[c+24>>2];L[c+16>>2]=p*O(H[m+8>>2]-h|0);L[c+12>>2]=p*O(f-h|0);L[c+8>>2]=p*O(b-h|0);b=a;i=H[d+16>>2];f=H[i>>2];if(!I[f+84|0]){b=H[H[f+68>>2]+(a<<2)>>2]}if(K[f+80>>2]>b>>>0){a=H[f+40>>2];qa(H[H[f>>2]>>2]+N(a,b)|0,(c+8|0)+(H[i+4>>2]<<2)|0,a);n=H[g>>2];a=H[d+28>>2]}a=a+1|0;H[d+28>>2]=a;m=m+12|0;if((n|0)!=(m|0)){continue}break}}ca=c+32|0;k=1}a=H[g+16>>2];if(a){H[g+20>>2]=a;oa(a)}ca=g+32|0;yc(d);j=1;if(k){break f}}j=0;break f;case 1:break s;default:break f}}if(f>>>0<=l>>>0&(c|0)>=(h|0)|(c|0)>(h|0)){break f}o=I[l+n|0];c=d;l=i+2|0;c=l>>>0<2?c+1|0:c;H[b+16>>2]=l;H[b+20>>2]=c;if(o>>>0>=7){H[e>>2]=o;Qd(1651,e);break f}c=d;d=i+6|0;c=d>>>0<6?c+1|0:c;if(d>>>0>f>>>0&(c|0)>=(h|0)|(c|0)>(h|0)){break f}f=l+n|0;f=I[f|0]|I[f+1|0]<<8|(I[f+2|0]<<16|I[f+3|0]<<24);H[b+16>>2]=d;H[b+20>>2]=c;if(k){m=0;while(1){c=ea[H[H[a>>2]+20>>2]](a,m)|0;c=H[H[H[(ea[H[H[a>>2]+28>>2]](a)|0)+4>>2]+8>>2]+(c<<2)>>2];mb(c,f);F[c+84|0]=1;H[c+72>>2]=H[c+68>>2];m=m+1|0;if((k|0)!=(m|0)){continue}break}}a=Ac(e+672|0,e+704|0);x:{y:{switch(o|0){case 1:c=wb(e+16|0,g);b=zd(c,b,a,-1);xb(c);if(!b){break g}break x;case 2:c=ub(e+16|0,g);b=yd(c,b,a,-1);vb(c);if(!b){break g}break x;case 3:c=ub(e+16|0,g);b=xd(c,b,a,-1);vb(c);if(!b){break g}break x;case 4:c=$a(e+16|0,g);b=wd(c,b,a,-1);ab(c);if(!b){break g}break x;case 5:c=$a(e+16|0,g);b=vd(c,b,a,-1);ab(c);if(!b){break g}break x;case 6:c=$a(e+16|0,g);b=ud(c,b,a,-1);ab(c);if(b){break x}break g;case 0:break y;default:break g}}c=wb(e+16|0,g);b=Bd(c,b,a,-1);xb(c);if(!b){break g}}yc(a);j=1;break f}sa();v()}sa();v()}yc(a)}a=H[e+704>>2]}if(!a){break a}H[e+708>>2]=a;oa(a);break a}j=1;if(H[a+52>>2]==H[a+48>>2]){break b}while(1){if(!td(1,e+16|0,b)){break c}c=H[a+48>>2];d=H[e+16>>2];H[c+(m<<2)>>2]=d>>>1^0-(d&1);m=m+1|0;if(m>>>0>2]-c>>2>>>0){continue}break}break b}j=0}a=H[e+672>>2];if(!a){break a}H[e+676>>2]=a;oa(a)}ca=e+720|0;return j|0}function te(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;h=ca-32|0;ca=h;H[b+32>>2]=d;H[b+40>>2]=c;H[b+4>>2]=e;nc(a,d,h+16|0);a:{if(H[a>>2]){break a}if(F[a+15|0]<0){oa(H[a+4>>2])}d=I[h+23|0];if((ea[H[H[b>>2]+8>>2]](b)|0)!=(d|0)){b=pa(64);F[b+50|0]=0;c=I[1314]|I[1315]<<8;F[b+48|0]=c;F[b+49|0]=c>>>8;c=I[1310]|I[1311]<<8|(I[1312]<<16|I[1313]<<24);d=I[1306]|I[1307]<<8|(I[1308]<<16|I[1309]<<24);F[b+40|0]=d;F[b+41|0]=d>>>8;F[b+42|0]=d>>>16;F[b+43|0]=d>>>24;F[b+44|0]=c;F[b+45|0]=c>>>8;F[b+46|0]=c>>>16;F[b+47|0]=c>>>24;c=I[1302]|I[1303]<<8|(I[1304]<<16|I[1305]<<24);d=I[1298]|I[1299]<<8|(I[1300]<<16|I[1301]<<24);F[b+32|0]=d;F[b+33|0]=d>>>8;F[b+34|0]=d>>>16;F[b+35|0]=d>>>24;F[b+36|0]=c;F[b+37|0]=c>>>8;F[b+38|0]=c>>>16;F[b+39|0]=c>>>24;c=I[1294]|I[1295]<<8|(I[1296]<<16|I[1297]<<24);d=I[1290]|I[1291]<<8|(I[1292]<<16|I[1293]<<24);F[b+24|0]=d;F[b+25|0]=d>>>8;F[b+26|0]=d>>>16;F[b+27|0]=d>>>24;F[b+28|0]=c;F[b+29|0]=c>>>8;F[b+30|0]=c>>>16;F[b+31|0]=c>>>24;c=I[1286]|I[1287]<<8|(I[1288]<<16|I[1289]<<24);d=I[1282]|I[1283]<<8|(I[1284]<<16|I[1285]<<24);F[b+16|0]=d;F[b+17|0]=d>>>8;F[b+18|0]=d>>>16;F[b+19|0]=d>>>24;F[b+20|0]=c;F[b+21|0]=c>>>8;F[b+22|0]=c>>>16;F[b+23|0]=c>>>24;c=I[1278]|I[1279]<<8|(I[1280]<<16|I[1281]<<24);d=I[1274]|I[1275]<<8|(I[1276]<<16|I[1277]<<24);F[b+8|0]=d;F[b+9|0]=d>>>8;F[b+10|0]=d>>>16;F[b+11|0]=d>>>24;F[b+12|0]=c;F[b+13|0]=c>>>8;F[b+14|0]=c>>>16;F[b+15|0]=c>>>24;c=I[1270]|I[1271]<<8|(I[1272]<<16|I[1273]<<24);d=I[1266]|I[1267]<<8|(I[1268]<<16|I[1269]<<24);F[b|0]=d;F[b+1|0]=d>>>8;F[b+2|0]=d>>>16;F[b+3|0]=d>>>24;F[b+4|0]=c;F[b+5|0]=c>>>8;F[b+6|0]=c>>>16;F[b+7|0]=c>>>24;H[a>>2]=-1;za(a+4|0,b,50);oa(b);break a}c=I[h+21|0];F[b+36|0]=c;e=I[h+22|0];F[b+37|0]=e;if((c-3&255)>>>0<=253){b=pa(32);F[b+22|0]=0;c=I[1427]|I[1428]<<8|(I[1429]<<16|I[1430]<<24);d=I[1423]|I[1424]<<8|(I[1425]<<16|I[1426]<<24);F[b+14|0]=d;F[b+15|0]=d>>>8;F[b+16|0]=d>>>16;F[b+17|0]=d>>>24;F[b+18|0]=c;F[b+19|0]=c>>>8;F[b+20|0]=c>>>16;F[b+21|0]=c>>>24;c=I[1421]|I[1422]<<8|(I[1423]<<16|I[1424]<<24);d=I[1417]|I[1418]<<8|(I[1419]<<16|I[1420]<<24);F[b+8|0]=d;F[b+9|0]=d>>>8;F[b+10|0]=d>>>16;F[b+11|0]=d>>>24;F[b+12|0]=c;F[b+13|0]=c>>>8;F[b+14|0]=c>>>16;F[b+15|0]=c>>>24;c=I[1413]|I[1414]<<8|(I[1415]<<16|I[1416]<<24);d=I[1409]|I[1410]<<8|(I[1411]<<16|I[1412]<<24);F[b|0]=d;F[b+1|0]=d>>>8;F[b+2|0]=d>>>16;F[b+3|0]=d>>>24;F[b+4|0]=c;F[b+5|0]=c>>>8;F[b+6|0]=c>>>16;F[b+7|0]=c>>>24;H[a>>2]=-5;za(a+4|0,b,22);oa(b);break a}if(!((c|0)!=2|e>>>0<=(d?2:3)>>>0)){b=pa(32);F[b+22|0]=0;c=I[1404]|I[1405]<<8|(I[1406]<<16|I[1407]<<24);d=I[1400]|I[1401]<<8|(I[1402]<<16|I[1403]<<24);F[b+14|0]=d;F[b+15|0]=d>>>8;F[b+16|0]=d>>>16;F[b+17|0]=d>>>24;F[b+18|0]=c;F[b+19|0]=c>>>8;F[b+20|0]=c>>>16;F[b+21|0]=c>>>24;c=I[1398]|I[1399]<<8|(I[1400]<<16|I[1401]<<24);d=I[1394]|I[1395]<<8|(I[1396]<<16|I[1397]<<24);F[b+8|0]=d;F[b+9|0]=d>>>8;F[b+10|0]=d>>>16;F[b+11|0]=d>>>24;F[b+12|0]=c;F[b+13|0]=c>>>8;F[b+14|0]=c>>>16;F[b+15|0]=c>>>24;c=I[1390]|I[1391]<<8|(I[1392]<<16|I[1393]<<24);d=I[1386]|I[1387]<<8|(I[1388]<<16|I[1389]<<24);F[b|0]=d;F[b+1|0]=d>>>8;F[b+2|0]=d>>>16;F[b+3|0]=d>>>24;F[b+4|0]=c;F[b+5|0]=c>>>8;F[b+6|0]=c>>>16;F[b+7|0]=c>>>24;H[a>>2]=-5;za(a+4|0,b,22);oa(b);break a}c=e|c<<8;G[H[b+32>>2]+38>>1]=c;b:{if((c&65535)>>>0<259|G[h+26>>1]>=0){break b}i=ca-16|0;ca=i;e=pa(36);c=e;H[c+4>>2]=0;H[c+8>>2]=0;H[c+24>>2]=0;H[c+28>>2]=0;c=c+16|0;H[c>>2]=0;H[c+4>>2]=0;H[e>>2]=e+4;H[e+32>>2]=0;H[e+12>>2]=c;H[i>>2]=0;d=H[b+32>>2];j=ca-16|0;ca=j;c=0;c:{if(!e){break c}H[i>>2]=d;H[j+12>>2]=0;c=0;if(!Bb(1,j+12|0,d)){break c}m=H[j+12>>2];if(m){while(1){d:{if(Bb(1,j+8|0,H[i>>2])){c=pa(28);H[c+4>>2]=0;H[c+8>>2]=0;d=c+16|0;H[d>>2]=0;H[d+4>>2]=0;H[c>>2]=c+4;H[c+12>>2]=d;H[c+24>>2]=H[j+8>>2];if(ce(i,c)){break d}Ra(c+12|0,H[c+16>>2]);Qa(c,H[c+4>>2]);oa(c)}c=0;break c}f=ca-16|0;ca=f;H[f+8>>2]=c;e:{if(!c){break e}d=H[e+28>>2];f:{if(d>>>0>2]){H[f+8>>2]=0;H[d>>2]=c;H[e+28>>2]=d+4;break f}d=0;g:{h:{i:{g=H[e+24>>2];l=H[e+28>>2]-g>>2;c=l+1|0;if(c>>>0<1073741824){g=H[e+32>>2]-g|0;k=g>>>1|0;g=g>>>0>=2147483644?1073741823:c>>>0>>0?k:c;if(g){if(g>>>0>=1073741824){break i}d=pa(g<<2)}k=H[f+8>>2];H[f+8>>2]=0;c=(l<<2)+d|0;H[c>>2]=k;g=(g<<2)+d|0;l=c+4|0;d=H[e+28>>2];k=H[e+24>>2];if((d|0)==(k|0)){break h}while(1){d=d-4|0;o=H[d>>2];H[d>>2]=0;c=c-4|0;H[c>>2]=o;if((d|0)!=(k|0)){continue}break}H[e+32>>2]=g;g=H[e+28>>2];H[e+28>>2]=l;d=H[e+24>>2];H[e+24>>2]=c;if((d|0)==(g|0)){break g}while(1){g=g-4|0;c=H[g>>2];H[g>>2]=0;if(c){Ra(c+12|0,H[c+16>>2]);Qa(c,H[c+4>>2]);oa(c)}if((d|0)!=(g|0)){continue}break}break g}sa();v()}wa();v()}H[e+32>>2]=g;H[e+28>>2]=l;H[e+24>>2]=c}if(d){oa(d)}}c=H[f+8>>2];H[f+8>>2]=0;if(!c){break e}Ra(c+12|0,H[c+16>>2]);Qa(c,H[c+4>>2]);oa(c)}ca=f+16|0;n=n+1|0;if((m|0)!=(n|0)){continue}break}}c=ce(i,e)}ca=j+16|0;j:{if(c){d=H[b+4>>2];c=H[d+4>>2];H[d+4>>2]=e;if(c){Uc(c)}H[a>>2]=0;H[a+4>>2]=0;H[a+8>>2]=0;H[a+12>>2]=0;break j}c=pa(32);F[c+26|0]=0;d=I[1579]|I[1580]<<8;F[c+24|0]=d;F[c+25|0]=d>>>8;d=I[1575]|I[1576]<<8|(I[1577]<<16|I[1578]<<24);f=I[1571]|I[1572]<<8|(I[1573]<<16|I[1574]<<24);F[c+16|0]=f;F[c+17|0]=f>>>8;F[c+18|0]=f>>>16;F[c+19|0]=f>>>24;F[c+20|0]=d;F[c+21|0]=d>>>8;F[c+22|0]=d>>>16;F[c+23|0]=d>>>24;d=I[1567]|I[1568]<<8|(I[1569]<<16|I[1570]<<24);f=I[1563]|I[1564]<<8|(I[1565]<<16|I[1566]<<24);F[c+8|0]=f;F[c+9|0]=f>>>8;F[c+10|0]=f>>>16;F[c+11|0]=f>>>24;F[c+12|0]=d;F[c+13|0]=d>>>8;F[c+14|0]=d>>>16;F[c+15|0]=d>>>24;d=I[1559]|I[1560]<<8|(I[1561]<<16|I[1562]<<24);f=I[1555]|I[1556]<<8|(I[1557]<<16|I[1558]<<24);F[c|0]=f;F[c+1|0]=f>>>8;F[c+2|0]=f>>>16;F[c+3|0]=f>>>24;F[c+4|0]=d;F[c+5|0]=d>>>8;F[c+6|0]=d>>>16;F[c+7|0]=d>>>24;H[a>>2]=-1;za(a+4|0,c,26);oa(c);H[i+8>>2]=0;Uc(e)}ca=i+16|0;if(H[a>>2]){break a}if(F[a+15|0]>=0){break b}oa(H[a+4>>2])}if(!(ea[H[H[b>>2]+12>>2]](b)|0)){b=pa(48);F[b+33|0]=0;F[b+32|0]=I[1384];c=I[1380]|I[1381]<<8|(I[1382]<<16|I[1383]<<24);d=I[1376]|I[1377]<<8|(I[1378]<<16|I[1379]<<24);F[b+24|0]=d;F[b+25|0]=d>>>8;F[b+26|0]=d>>>16;F[b+27|0]=d>>>24;F[b+28|0]=c;F[b+29|0]=c>>>8;F[b+30|0]=c>>>16;F[b+31|0]=c>>>24;c=I[1372]|I[1373]<<8|(I[1374]<<16|I[1375]<<24);d=I[1368]|I[1369]<<8|(I[1370]<<16|I[1371]<<24);F[b+16|0]=d;F[b+17|0]=d>>>8;F[b+18|0]=d>>>16;F[b+19|0]=d>>>24;F[b+20|0]=c;F[b+21|0]=c>>>8;F[b+22|0]=c>>>16;F[b+23|0]=c>>>24;c=I[1364]|I[1365]<<8|(I[1366]<<16|I[1367]<<24);d=I[1360]|I[1361]<<8|(I[1362]<<16|I[1363]<<24);F[b+8|0]=d;F[b+9|0]=d>>>8;F[b+10|0]=d>>>16;F[b+11|0]=d>>>24;F[b+12|0]=c;F[b+13|0]=c>>>8;F[b+14|0]=c>>>16;F[b+15|0]=c>>>24;c=I[1356]|I[1357]<<8|(I[1358]<<16|I[1359]<<24);d=I[1352]|I[1353]<<8|(I[1354]<<16|I[1355]<<24);F[b|0]=d;F[b+1|0]=d>>>8;F[b+2|0]=d>>>16;F[b+3|0]=d>>>24;F[b+4|0]=c;F[b+5|0]=c>>>8;F[b+6|0]=c>>>16;F[b+7|0]=c>>>24;H[a>>2]=-1;za(a+4|0,b,33);oa(b);break a}if(!(ea[H[H[b>>2]+20>>2]](b)|0)){b=mc(h,1582);H[a>>2]=-1;a=a+4|0;if(F[b+11|0]>=0){c=H[b+4>>2];H[a>>2]=H[b>>2];H[a+4>>2]=c;H[a+8>>2]=H[b+8>>2];break a}za(a,H[b>>2],H[b+4>>2]);if(F[b+11|0]>=0){break a}oa(H[b>>2]);break a}if(!(ea[H[H[b>>2]+24>>2]](b)|0)){b=mc(h,1317);H[a>>2]=-1;a=a+4|0;if(F[b+11|0]>=0){c=H[b+4>>2];H[a>>2]=H[b>>2];H[a+4>>2]=c;H[a+8>>2]=H[b+8>>2];break a}za(a,H[b>>2],H[b+4>>2]);if(F[b+11|0]>=0){break a}oa(H[b>>2]);break a}H[a>>2]=0;H[a+4>>2]=0;H[a+8>>2]=0;H[a+12>>2]=0}ca=h+32|0}function pg(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0,z=0,A=0;m=ca-16|0;ca=m;H[m+12>>2]=b;b=pa(32);H[m>>2]=b;H[m+4>>2]=24;H[m+8>>2]=-2147483616;c=I[1206]|I[1207]<<8|(I[1208]<<16|I[1209]<<24);d=I[1202]|I[1203]<<8|(I[1204]<<16|I[1205]<<24);F[b+16|0]=d;F[b+17|0]=d>>>8;F[b+18|0]=d>>>16;F[b+19|0]=d>>>24;F[b+20|0]=c;F[b+21|0]=c>>>8;F[b+22|0]=c>>>16;F[b+23|0]=c>>>24;c=I[1198]|I[1199]<<8|(I[1200]<<16|I[1201]<<24);d=I[1194]|I[1195]<<8|(I[1196]<<16|I[1197]<<24);F[b+8|0]=d;F[b+9|0]=d>>>8;F[b+10|0]=d>>>16;F[b+11|0]=d>>>24;F[b+12|0]=c;F[b+13|0]=c>>>8;F[b+14|0]=c>>>16;F[b+15|0]=c>>>24;c=I[1190]|I[1191]<<8|(I[1192]<<16|I[1193]<<24);d=I[1186]|I[1187]<<8|(I[1188]<<16|I[1189]<<24);F[b|0]=d;F[b+1|0]=d>>>8;F[b+2|0]=d>>>16;F[b+3|0]=d>>>24;F[b+4|0]=c;F[b+5|0]=c>>>8;F[b+6|0]=c>>>16;F[b+7|0]=c>>>24;F[b+24|0]=0;l=ca-48|0;ca=l;f=H[m+12>>2];d=a;a=a+16|0;b=H[a>>2];a:{b:{if(!b){break b}c=a;while(1){e=(f|0)>H[b+16>>2];c=e?c:b;b=H[(e?b+4|0:b)>>2];if(b){continue}break}if((a|0)==(c|0)){break b}if((f|0)>=H[c+16>>2]){break a}}H[l+28>>2]=0;H[l+32>>2]=0;y=l+24|0;H[l+24>>2]=y|4;a=l+16|0;H[a>>2]=0;H[a+4>>2]=0;H[l+8>>2]=f;H[l+12>>2]=a;t=l+8|0;a=t;x=ca-16|0;ca=x;u=d+12|0;c=H[u+4>>2];c:{d:{if(!c){o=u+4|0;d=o;break d}a=H[a>>2];while(1){d=c;b=H[c+16>>2];if((b|0)>(a|0)){o=d;c=H[d>>2];if(c){continue}break d}if((a|0)<=(b|0)){g=d;a=0;break c}c=H[d+4>>2];if(c){continue}break}o=d+4|0}g=pa(32);b=H[t>>2];q=g+24|0;a=q;H[a>>2]=0;H[a+4>>2]=0;H[g+16>>2]=b;r=g+20|0;H[r>>2]=a;c=H[t+4>>2];z=t+8|0;if((c|0)!=(z|0)){while(1){p=ca-16|0;ca=p;a=p+8|0;k=c+16|0;e:{f:{g:{h:{i:{j:{k:{f=q;e=r+4|0;l:{if((f|0)==(e|0)){break l}b=I[f+27|0];h=b<<24>>24<0;i=I[k+11|0];n=i<<24>>24;j=(n|0)<0;i=j?H[k+4>>2]:i;b=h?H[f+20>>2]:b;s=i>>>0>b>>>0;w=s?b:i;if(w){j=j?H[k>>2]:k;h=h?H[f+16>>2]:f+16|0;A=Fa(j,h,w);if(!A){if(b>>>0>i>>>0){break l}break k}if((A|0)>=0){break k}break l}if(b>>>0<=i>>>0){break j}}h=H[f>>2];m:{a=f;n:{if((a|0)==H[r>>2]){break n}o:{if(!h){b=f;while(1){a=H[b+8>>2];i=H[a>>2]==(b|0);b=a;if(i){continue}break}break o}b=h;while(1){a=b;b=H[b+4>>2];if(b){continue}break}}i=I[k+11|0];s=i<<24>>24;b=(s|0)<0;j=I[a+27|0];n=j<<24>>24<0;p:{i=b?H[k+4>>2]:i;j=n?H[a+20>>2]:j;w=i>>>0>>0?i:j;if(w){b=Fa(n?H[a+16>>2]:a+16|0,b?H[k>>2]:k,w);if(b){break p}}if(i>>>0>j>>>0){break n}break m}if((b|0)>=0){break m}}if(!h){H[p+12>>2]=f;a=f;break e}H[p+12>>2]=a;a=a+4|0;break e}b=H[e>>2];if(!b){H[p+12>>2]=e;a=e;break e}h=(s|0)<0?H[k>>2]:k;f=e;while(1){a=b;b=I[b+27|0];e=b<<24>>24<0;b=e?H[a+20>>2]:b;k=b>>>0>>0;q:{r:{s:{t:{n=k?b:i;u:{if(n){e=e?H[a+16>>2]:a+16|0;j=Fa(h,e,n);if(!j){if(b>>>0>i>>>0){break u}break t}if((j|0)>=0){break t}break u}if(b>>>0<=i>>>0){break s}}f=a;b=H[a>>2];if(b){continue}break g}b=Fa(e,h,n);if(b){break r}}if(k){break q}break g}if((b|0)>=0){break g}}f=a+4|0;b=H[a+4>>2];if(b){continue}break}break g}b=Fa(h,j,w);if(b){break i}}if(s){break h}break f}if((b|0)>=0){break f}}h=H[f+4>>2];v:{if(!h){b=f;while(1){a=H[b+8>>2];j=H[a>>2]!=(b|0);b=a;if(j){continue}break}break v}b=h;while(1){a=b;b=H[b>>2];if(b){continue}break}}w:{x:{if((a|0)==(e|0)){break x}j=I[a+27|0];b=j<<24>>24<0;y:{j=b?H[a+20>>2]:j;s=i>>>0>j>>>0?j:i;if(s){b=Fa((n|0)<0?H[k>>2]:k,b?H[a+16>>2]:a+16|0,s);if(b){break y}}if(i>>>0>>0){break x}break w}if((b|0)>=0){break w}}if(!h){H[p+12>>2]=f;a=f+4|0;break e}H[p+12>>2]=a;break e}b=H[e>>2];if(!b){H[p+12>>2]=e;a=e;break e}h=(n|0)<0?H[k>>2]:k;f=e;while(1){a=b;b=I[b+27|0];e=b<<24>>24<0;b=e?H[a+20>>2]:b;k=b>>>0>>0;z:{A:{B:{C:{n=k?b:i;D:{if(n){e=e?H[a+16>>2]:a+16|0;j=Fa(h,e,n);if(!j){if(b>>>0>i>>>0){break D}break C}if((j|0)>=0){break C}break D}if(b>>>0<=i>>>0){break B}}f=a;b=H[a>>2];if(b){continue}break g}b=Fa(e,h,n);if(b){break A}}if(k){break z}break g}if((b|0)>=0){break g}}f=a+4|0;b=H[a+4>>2];if(b){continue}break}}H[p+12>>2]=a;a=f;break e}H[p+12>>2]=f;H[a>>2]=f}f=a;a=H[a>>2];if(a){b=0}else{a=pa(40);b=a+16|0;E:{if(F[c+27|0]>=0){e=H[c+20>>2];H[b>>2]=H[c+16>>2];H[b+4>>2]=e;H[b+8>>2]=H[c+24>>2];break E}za(b,H[c+16>>2],H[c+20>>2])}b=a+28|0;F:{if(F[c+39|0]>=0){e=H[c+32>>2];H[b>>2]=H[c+28>>2];H[b+4>>2]=e;H[b+8>>2]=H[c+36>>2];break F}za(b,H[c+28>>2],H[c+32>>2])}H[a+8>>2]=H[p+12>>2];H[a>>2]=0;H[a+4>>2]=0;H[f>>2]=a;b=a;e=H[H[r>>2]>>2];if(e){H[r>>2]=e;b=H[f>>2]}Sb(H[r+4>>2],b);H[r+8>>2]=H[r+8>>2]+1;b=1}F[x+12|0]=b;H[x+8>>2]=a;ca=p+16|0;b=H[c+4>>2];G:{if(b){while(1){c=b;b=H[b>>2];if(b){continue}break G}}while(1){a=c;c=H[c+8>>2];if((a|0)!=H[c>>2]){continue}break}}if((c|0)!=(z|0)){continue}break}}H[g+8>>2]=d;H[g>>2]=0;H[g+4>>2]=0;H[o>>2]=g;c=g;a=H[H[u>>2]>>2];if(a){H[u>>2]=a;c=H[o>>2]}Sb(H[u+4>>2],c);H[u+8>>2]=H[u+8>>2]+1;a=1}F[l+44|0]=a;H[l+40>>2]=g;ca=x+16|0;c=H[l+40>>2];Kb(t|4,H[l+16>>2]);Kb(y,H[l+28>>2])}f=ca-48|0;ca=f;d=f+8|0;g=ca-32|0;ca=g;o=g+32|0;b=o;a=g+21|0;H:{if((b|0)==(a|0)){break H}}e=b-a|0;I:{if((e|0)<=9){h=61;if((e|0)<(K[3660]<=1|0)){break I}}F[a|0]=49;b=a+1|0;h=0}H[g+12>>2]=h;H[g+8>>2]=b;h=ca-16|0;ca=h;e=ca-16|0;ca=e;J:{q=H[g+8>>2];g=q-a|0;if(g>>>0<=2147483631){K:{if(g>>>0<11){F[d+11|0]=g|I[d+11|0]&128;F[d+11|0]=I[d+11|0]&127;b=d;break K}t=e+8|0;if(g>>>0>=11){k=g+16&-16;b=k-1|0;b=(b|0)==11?k:b}else{b=10}Zb(t,b+1|0);b=H[e+8>>2];H[d>>2]=b;H[d+8>>2]=H[d+8>>2]&-2147483648|H[e+12>>2]&2147483647;H[d+8>>2]=H[d+8>>2]|-2147483648;H[d+4>>2]=g}while(1){if((a|0)!=(q|0)){F[b|0]=I[a|0];b=b+1|0;a=a+1|0;continue}break}F[e+7|0]=0;F[b|0]=I[e+7|0];ca=e+16|0;break J}Na();v()}ca=h+16|0;ca=o;H[f+32>>2]=m;L:{M:{a=c+20|0;d=H[a+4>>2];N:{if(!d){g=a+4|0;c=g;break N}b=I[m+11|0];c=b<<24>>24<0;e=c?H[m>>2]:m;b=c?H[m+4>>2]:b;while(1){c=d;d=I[c+27|0];g=d<<24>>24<0;d=g?H[c+20>>2]:d;o=d>>>0>>0;O:{P:{Q:{R:{h=o?d:b;S:{if(h){g=g?H[c+16>>2]:c+16|0;q=Fa(e,g,h);if(!q){if(b>>>0>>0){break S}break R}if((q|0)>=0){break R}break S}if(b>>>0>=d>>>0){break Q}}g=c;d=H[c>>2];if(d){continue}break N}d=Fa(g,e,h);if(d){break P}}if(o){break O}break M}if((d|0)>=0){break M}}d=H[c+4>>2];if(d){continue}break}g=c+4|0}d=pa(40);e=d+16|0;b=H[f+32>>2];T:{if(F[b+11|0]>=0){o=H[b+4>>2];H[e>>2]=H[b>>2];H[e+4>>2]=o;H[e+8>>2]=H[b+8>>2];break T}za(e,H[b>>2],H[b+4>>2])}H[d+8>>2]=c;H[d>>2]=0;H[d+4>>2]=0;H[d+36>>2]=0;H[d+28>>2]=0;H[d+32>>2]=0;H[g>>2]=d;c=d;b=H[H[a>>2]>>2];if(b){H[a>>2]=b;c=H[g>>2]}Sb(H[a+4>>2],c);H[a+8>>2]=H[a+8>>2]+1;a=1;break L}d=c;a=0}F[f+44|0]=a;H[f+40>>2]=d;a=H[f+40>>2];if(F[a+39|0]<0){oa(H[a+28>>2])}b=H[f+12>>2];H[a+28>>2]=H[f+8>>2];H[a+32>>2]=b;H[a+36>>2]=H[f+16>>2];ca=f+48|0;ca=l+48|0;if(F[m+11|0]<0){oa(H[m>>2])}ca=m+16|0}function Bd(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;j=H[b+8>>2];e=H[b+12>>2];g=H[b+20>>2];h=H[b+16>>2];k=h+4|0;g=k>>>0<4?g+1|0:g;a:{if(j>>>0>>0&(e|0)<=(g|0)|(e|0)<(g|0)){break a}h=h+H[b>>2]|0;H[a>>2]=I[h|0]|I[h+1|0]<<8|(I[h+2|0]<<16|I[h+3|0]<<24);h=H[b+20>>2];e=h;j=H[b+16>>2];g=j+4|0;h=g>>>0<4?e+1|0:e;H[b+16>>2]=g;H[b+20>>2]=h;if(K[a>>2]>32){break a}l=H[b+8>>2];k=H[b+12>>2];h=e;e=j+8|0;h=e>>>0<8?h+1|0:h;if(e>>>0>l>>>0&(h|0)>=(k|0)|(h|0)>(k|0)){break a}h=H[b>>2]+g|0;g=I[h|0]|I[h+1|0]<<8|(I[h+2|0]<<16|I[h+3|0]<<24);H[a+4>>2]=g;h=H[b+20>>2];e=H[b+16>>2]+4|0;h=e>>>0<4?h+1|0:h;H[b+16>>2]=e;H[b+20>>2]=h;if(!g){return 1}if(d>>>0>>0){break a}H[a+8>>2]=0;if(!ua(a+16|0,b)){break a}if(!ua(a+36|0,b)){break a}if(!ua(a+56|0,b)){break a}if(!ua(a+76|0,b)){break a}s=H[a+4>>2];h=c;b=0;g=0;e=ca-32|0;ca=e;d=a;a=H[a+12>>2];H[e+16>>2]=0;H[e+8>>2]=0;H[e+12>>2]=0;b:{c:{if(a){if(a>>>0>=1073741824){break c}c=a<<2;b=pa(c);H[e+8>>2]=b;g=b+c|0;H[e+16>>2]=g;ra(b,0,c);H[e+12>>2]=g}c=H[d+120>>2];i=H[c>>2];if(i){H[c+4>>2]=i;oa(i);g=H[e+12>>2];b=H[e+8>>2];a=H[d+12>>2]}H[c+4>>2]=g;H[c>>2]=b;H[c+8>>2]=H[e+16>>2];b=0;H[e+16>>2]=0;H[e+8>>2]=0;H[e+12>>2]=0;d:{if(a){if(a>>>0>=1073741824){break d}a=a<<2;f=pa(a);H[e+8>>2]=f;b=a+f|0;H[e+16>>2]=b;ra(f,0,a);H[e+12>>2]=b}a=H[d+132>>2];c=H[a>>2];if(c){H[a+4>>2]=c;oa(c);f=H[e+8>>2];b=H[e+12>>2]}H[a+4>>2]=b;H[a>>2]=f;H[a+8>>2]=H[e+16>>2];H[e+24>>2]=0;H[e+28>>2]=0;H[e+16>>2]=0;H[e+20>>2]=0;H[e+8>>2]=0;H[e+12>>2]=0;xa(e+8|0);a=H[e+24>>2]+H[e+28>>2]|0;b=(a>>>0)/341|0;a=H[H[e+12>>2]+(b<<2)>>2]+N(a-N(b,341)|0,12)|0;H[a+4>>2]=0;H[a+8>>2]=0;H[a>>2]=s;c=1;a=H[e+28>>2]+1|0;H[e+28>>2]=a;e:{if(!a){break e}while(1){b=H[e+12>>2];f=H[e+24>>2];k=a-1|0;c=f+k|0;i=(c>>>0)/341|0;c=H[b+(i<<2)>>2]+N(c-N(i,341)|0,12)|0;g=H[c+8>>2];i=H[c+4>>2];j=H[c>>2];H[e+28>>2]=k;c=H[e+16>>2];if((((b|0)!=(c|0)?N(c-b>>2,341)-1|0:0)-(a+f|0)|0)+1>>>0>=682){oa(H[c-4>>2]);H[e+16>>2]=H[e+16>>2]-4}c=0;if(j>>>0>s>>>0){break e}b=H[d+12>>2];a=(b-1|0)!=(i|0)?i+1|0:0;if(a>>>0>=b>>>0){break e}f=N(g,12);o=f+H[d+132>>2]|0;k=f+H[d+120>>2]|0;i=H[d>>2];l=a<<2;m=H[l+H[o>>2]>>2];f:{g:{if((i|0)==(m|0)){if(!j){break g}o=0;b=H[h+20>>2];g=H[h+16>>2];if((b|0)==(g|0)){a=H[d+8>>2];H[h+28>>2]=j+H[h+28>>2];H[d+8>>2]=a+j;break g}while(1){c=(b|0)==(g|0);a=b;i=0;b=g;h:{if(c){break h}while(1){f=H[h+28>>2];b=a;c=N(i,20)+g|0;l=H[c>>2];if(!I[l+84|0]){f=H[H[l+68>>2]+(f<<2)>>2]}if(K[l+80>>2]<=f>>>0){break h}m=H[k>>2]+(H[c+4>>2]<<2)|0;g=H[c+12>>2];b=m;i:{if(g>>>0>3){break i}a=0;b=H[h+12>>2];if(!H[c+16>>2]){break i}while(1){b=qa(b,m+(a<<2)|0,g);g=H[c+12>>2];b=b+g|0;a=a+1|0;if(a>>>0>2]){continue}break}b=H[h+12>>2]}a=H[l+40>>2];qa(H[H[l>>2]>>2]+N(a,f)|0,b,a);i=i+1|0;a=H[h+20>>2];b=a;g=H[h+16>>2];if(i>>>0<(b-g|0)/20>>>0){continue}break}}H[h+28>>2]=H[h+28>>2]+1;H[d+8>>2]=H[d+8>>2]+1;o=o+1|0;if((j|0)!=(o|0)){continue}break}break g}j:{k:{l:{m:{if(j>>>0<=2){c=H[d+108>>2];H[c>>2]=a;f=1;b=H[d+12>>2];if(b>>>0>1){break m}break j}if(K[d+8>>2]>K[d+4>>2]){break e}b=H[d+120>>2];n=g+1|0;o=N(n,12);p=b+o|0;if((p|0)!=(k|0)){Aa(p,H[k>>2],H[k+4>>2]);b=H[d+120>>2]}b=l+H[b+o>>2]|0;H[b>>2]=H[b>>2]+(1<>2];m=32-i|0;n:{if((b|0)<=(m|0)){k=H[d+28>>2];if((k|0)==H[d+20>>2]){break l}m=H[k>>2];p=b+i|0;H[d+32>>2]=p;b=m<>>32-b|0;if((p|0)!=32){break n}H[d+32>>2]=0;H[d+28>>2]=k+4;break n}k=H[d+28>>2];p=k+4|0;if((p|0)==H[d+20>>2]){break l}r=H[k>>2];H[d+28>>2]=p;m=b-m|0;H[d+32>>2]=m;b=H[k+4>>2]>>>32-m|r<>>32-b}i=j>>>1|0;if(i>>>0>>0){break e}break k}while(1){a=(b-1|0)!=(a|0)?a+1|0:0;H[c+(f<<2)>>2]=a;b=H[d+12>>2];f=f+1|0;if(b>>>0>f>>>0){continue}break}break j}i=j>>>1|0;b=0}o:{p:{b=i-b|0;c=j-b|0;q:{if((c|0)==(b|0)){c=b;break q}i=H[d+88>>2];if((i|0)==H[d+80>>2]){break p}j=H[i>>2];k=H[d+92>>2];m=k+1|0;H[d+92>>2]=m;j=j&-2147483648>>>k;r:{if((m|0)==32){H[d+92>>2]=0;H[d+88>>2]=i+4;if(j){break r}break p}if(!j){break p}}}i=c;c=b;break o}i=b}b=H[d+132>>2];j=b+f|0;f=H[j>>2];k=f+l|0;H[k>>2]=H[k>>2]+1;Aa(b+o|0,f,H[j+4>>2]);if(c){b=H[e+28>>2]+H[e+24>>2]|0;j=H[e+16>>2];f=H[e+12>>2];if((b|0)==(((f|0)!=(j|0)?N(j-f>>2,341)-1|0:0)|0)){xa(e+8|0);f=H[e+12>>2];b=H[e+24>>2]+H[e+28>>2]|0}j=(b>>>0)/341|0;b=H[(j<<2)+f>>2]+N(b-N(j,341)|0,12)|0;H[b+8>>2]=g;H[b+4>>2]=a;H[b>>2]=c;H[e+28>>2]=H[e+28>>2]+1}if(!i){break g}b=H[e+28>>2]+H[e+24>>2]|0;c=H[e+16>>2];f=H[e+12>>2];if((b|0)==(((c|0)!=(f|0)?N(c-f>>2,341)-1|0:0)|0)){xa(e+8|0);f=H[e+12>>2];b=H[e+24>>2]+H[e+28>>2]|0}c=(b>>>0)/341|0;b=H[(c<<2)+f>>2]+N(b-N(c,341)|0,12)|0;H[b+8>>2]=n;H[b+4>>2]=a;H[b>>2]=i;a=H[e+28>>2]+1|0;H[e+28>>2]=a;break f}m=0;if(!j){break g}while(1){if(H[d+12>>2]){i=H[d+40>>2];p=H[o>>2];c=H[d+96>>2];r=H[d+108>>2];a=0;while(1){g=r+(a<<2)|0;H[c+(H[g>>2]<<2)>>2]=0;b=H[d>>2];f=H[g>>2]<<2;l=H[f+p>>2];s:{if((b|0)==(l|0)){break s}f=c+f|0;b=b-l|0;l=H[d+52>>2];q=32-l|0;if((b|0)<=(q|0)){n=H[d+48>>2];if((n|0)==(i|0)){c=0;break e}H[f>>2]=H[n>>2]<>>32-b;b=b+H[d+52>>2]|0;H[d+52>>2]=b;if((b|0)!=32){break s}H[d+52>>2]=0;H[d+48>>2]=n+4;break s}n=H[d+48>>2];t=n+4|0;if((i|0)==(t|0)){c=0;break e}u=H[n>>2];H[d+48>>2]=t;q=b-q|0;H[d+52>>2]=q;H[f>>2]=H[n+4>>2]>>>32-q|u<>>32-b}b=H[g>>2]<<2;g=b+c|0;H[g>>2]=H[g>>2]|H[b+H[k>>2]>>2];a=a+1|0;if(a>>>0>2]){continue}break}}i=0;a=H[h+16>>2];t:{if((a|0)==H[h+20>>2]){break t}while(1){f=H[h+28>>2];c=N(i,20)+a|0;l=H[c>>2];if(!I[l+84|0]){f=H[H[l+68>>2]+(f<<2)>>2]}if(K[l+80>>2]<=f>>>0){break t}n=H[d+96>>2]+(H[c+4>>2]<<2)|0;g=H[c+12>>2];b=n;u:{if(g>>>0>3){break u}a=0;b=H[h+12>>2];if(!H[c+16>>2]){break u}while(1){b=qa(b,n+(a<<2)|0,g);g=H[c+12>>2];b=b+g|0;a=a+1|0;if(a>>>0>2]){continue}break}b=H[h+12>>2]}a=H[l+40>>2];qa(H[H[l>>2]>>2]+N(a,f)|0,b,a);i=i+1|0;a=H[h+16>>2];if(i>>>0<(H[h+20>>2]-a|0)/20>>>0){continue}break}}H[h+28>>2]=H[h+28>>2]+1;H[d+8>>2]=H[d+8>>2]+1;m=m+1|0;if((j|0)!=(m|0)){continue}break}}a=H[e+28>>2]}if(a){continue}break}c=1}H[e+28>>2]=0;f=H[e+16>>2];a=H[e+12>>2];b=f-a|0;if(b>>>0>=9){while(1){oa(H[a>>2]);a=H[e+12>>2]+4|0;H[e+12>>2]=a;f=H[e+16>>2];b=f-a|0;if(b>>>0>8){continue}break}}g=170;v:{switch((b>>>2|0)-1|0){case 1:g=341;case 0:H[e+24>>2]=g;break;default:break v}}w:{if((a|0)==(f|0)){break w}while(1){oa(H[a>>2]);a=a+4|0;if((f|0)!=(a|0)){continue}break}a=H[e+16>>2];b=H[e+12>>2];if((a|0)==(b|0)){break w}H[e+16>>2]=a+((b-a|0)+3&-4)}a=H[e+8>>2];if(a){oa(a)}ca=e+32|0;break b}sa();v()}sa();v()}i=c}return i}function zd(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;j=H[b+8>>2];l=H[b+12>>2];k=H[b+20>>2];i=H[b+16>>2];f=i+4|0;k=f>>>0<4?k+1|0:k;a:{if(f>>>0>j>>>0&(k|0)>=(l|0)|(k|0)>(l|0)){break a}i=i+H[b>>2]|0;H[a>>2]=I[i|0]|I[i+1|0]<<8|(I[i+2|0]<<16|I[i+3|0]<<24);i=H[b+20>>2];j=i;f=H[b+16>>2];i=f+4|0;l=i>>>0<4?j+1|0:j;H[b+16>>2]=i;H[b+20>>2]=l;if(K[a>>2]>32){break a}l=H[b+8>>2];k=H[b+12>>2];f=f+8|0;j=f>>>0<8?j+1|0:j;if((k|0)<=(j|0)&f>>>0>l>>>0|(k|0)<(j|0)){break a}i=H[b>>2]+i|0;f=I[i|0]|I[i+1|0]<<8|(I[i+2|0]<<16|I[i+3|0]<<24);H[a+4>>2]=f;j=H[b+20>>2];i=H[b+16>>2]+4|0;j=i>>>0<4?j+1|0:j;H[b+16>>2]=i;H[b+20>>2]=j;if(!f){return 1}if(d>>>0>>0){break a}H[a+8>>2]=0;if(!ua(a+16|0,b)){break a}if(!ua(a+36|0,b)){break a}if(!ua(a+56|0,b)){break a}if(!ua(a+76|0,b)){break a}t=H[a+4>>2];i=c;b=0;c=0;e=ca-32|0;ca=e;f=a;a=H[a+12>>2];H[e+16>>2]=0;H[e+8>>2]=0;H[e+12>>2]=0;b:{c:{if(a){if(a>>>0>=1073741824){break c}d=a<<2;b=pa(d);H[e+8>>2]=b;c=b+d|0;H[e+16>>2]=c;ra(b,0,d);H[e+12>>2]=c}g=H[f+120>>2];d=H[g>>2];if(d){H[g+4>>2]=d;oa(d);c=H[e+12>>2];b=H[e+8>>2];a=H[f+12>>2]}H[g+4>>2]=c;H[g>>2]=b;H[g+8>>2]=H[e+16>>2];b=0;H[e+16>>2]=0;H[e+8>>2]=0;H[e+12>>2]=0;d:{if(a){if(a>>>0>=1073741824){break d}a=a<<2;h=pa(a);H[e+8>>2]=h;b=a+h|0;H[e+16>>2]=b;ra(h,0,a);H[e+12>>2]=b}c=H[f+132>>2];a=H[c>>2];if(a){H[c+4>>2]=a;oa(a);h=H[e+8>>2];b=H[e+12>>2]}H[c+4>>2]=b;H[c>>2]=h;H[c+8>>2]=H[e+16>>2];H[e+24>>2]=0;H[e+28>>2]=0;H[e+16>>2]=0;H[e+20>>2]=0;H[e+8>>2]=0;H[e+12>>2]=0;xa(e+8|0);b=H[e+24>>2]+H[e+28>>2]|0;a=(b>>>0)/341|0;a=H[H[e+12>>2]+(a<<2)>>2]+N(b-N(a,341)|0,12)|0;H[a+4>>2]=0;H[a+8>>2]=0;H[a>>2]=t;d=1;a=H[e+28>>2]+1|0;H[e+28>>2]=a;e:{if(!a){break e}while(1){j=H[e+12>>2];g=H[e+24>>2];d=a-1|0;c=g+d|0;b=(c>>>0)/341|0;b=H[j+(b<<2)>>2]+N(c-N(b,341)|0,12)|0;n=H[b+8>>2];c=H[b+4>>2];m=H[b>>2];H[e+28>>2]=d;b=H[e+16>>2];if((((b|0)!=(j|0)?N(b-j>>2,341)-1|0:0)-(a+g|0)|0)+1>>>0>=682){oa(H[b-4>>2]);H[e+16>>2]=H[e+16>>2]-4}if(m>>>0>t>>>0){d=0;break e}d=0;b=H[f+12>>2];a=(c|0)!=(b-1|0)?c+1|0:0;if(a>>>0>=b>>>0){break e}b=H[f+120>>2];o=N(n,12);q=b+o|0;g=H[f>>2];h=a<<2;l=o+H[f+132>>2]|0;c=H[h+H[l>>2]>>2];f:{g:{if((g|0)==(c|0)){if(!m){break g}h=0;b=H[i+20>>2];c=H[i+16>>2];if((b|0)==(c|0)){a=H[f+8>>2];H[i+28>>2]=m+H[i+28>>2];H[f+8>>2]=a+m;break g}while(1){d=(b|0)==(c|0);a=b;g=0;b=c;h:{if(d){break h}while(1){d=H[i+28>>2];b=a;k=N(g,20)+c|0;l=H[k>>2];if(!I[l+84|0]){d=H[H[l+68>>2]+(d<<2)>>2]}if(K[l+80>>2]<=d>>>0){break h}j=H[q>>2]+(H[k+4>>2]<<2)|0;c=H[k+12>>2];b=j;i:{if(c>>>0>3){break i}a=0;b=H[i+12>>2];if(!H[k+16>>2]){break i}while(1){b=qa(b,j+(a<<2)|0,c);c=H[k+12>>2];b=b+c|0;a=a+1|0;if(a>>>0>2]){continue}break}b=H[i+12>>2]}a=H[l+40>>2];qa(H[H[l>>2]>>2]+N(a,d)|0,b,a);g=g+1|0;a=H[i+20>>2];b=a;c=H[i+16>>2];if(g>>>0<(b-c|0)/20>>>0){continue}break}}H[i+28>>2]=H[i+28>>2]+1;H[f+8>>2]=H[f+8>>2]+1;h=h+1|0;if((m|0)!=(h|0)){continue}break}break g}j:{k:{l:{m:{if(m>>>0<=2){c=H[f+108>>2];H[c>>2]=a;h=1;b=H[f+12>>2];if(b>>>0>1){break m}break j}if(K[f+8>>2]>K[f+4>>2]){break e}j=b;b=o+12|0;Aa(j+b|0,H[q>>2],H[q+4>>2]);b=h+H[b+H[f+120>>2]>>2]|0;H[b>>2]=H[b>>2]+(1<>2];g=32-l|0;n:{if((k|0)<=(g|0)){g=H[f+28>>2];if((g|0)==H[f+20>>2]){break l}c=H[g>>2];b=k+l|0;H[f+32>>2]=b;c=c<>>32-k|0;if((b|0)!=32){break n}H[f+32>>2]=0;H[f+28>>2]=g+4;break n}j=H[f+28>>2];b=j+4|0;if((b|0)==H[f+20>>2]){break l}c=H[j>>2];H[f+28>>2]=b;b=k-g|0;H[f+32>>2]=b;c=H[j+4>>2]>>>32-b|c<>>32-k}g=m>>>1|0;if(g>>>0>>0){break e}break k}while(1){a=(b-1|0)!=(a|0)?a+1|0:0;H[c+(h<<2)>>2]=a;b=H[f+12>>2];h=h+1|0;if(b>>>0>h>>>0){continue}break}break j}g=m>>>1|0;c=0}k=n+1|0;o:{p:{b=g-c|0;c=m-b|0;q:{if((c|0)==(b|0)){c=b;break q}l=H[f+88>>2];if((l|0)==H[f+80>>2]){break p}j=H[l>>2];g=H[f+92>>2];d=g+1|0;H[f+92>>2]=d;g=j&-2147483648>>>g;r:{if((d|0)==32){H[f+92>>2]=0;H[f+88>>2]=l+4;if(g){break r}break p}if(!g){break p}}}g=c;c=b;break o}g=b}l=H[f+132>>2];j=l+o|0;d=H[j>>2];b=d+h|0;H[b>>2]=H[b>>2]+1;Aa(l+N(k,12)|0,d,H[j+4>>2]);if(c){b=H[e+28>>2]+H[e+24>>2]|0;d=H[e+16>>2];h=H[e+12>>2];if((b|0)==(((d|0)!=(h|0)?N(d-h>>2,341)-1|0:0)|0)){xa(e+8|0);h=H[e+12>>2];b=H[e+24>>2]+H[e+28>>2]|0}d=(b>>>0)/341|0;b=H[(d<<2)+h>>2]+N(b-N(d,341)|0,12)|0;H[b+8>>2]=n;H[b+4>>2]=a;H[b>>2]=c;H[e+28>>2]=H[e+28>>2]+1}if(!g){break g}b=H[e+28>>2]+H[e+24>>2]|0;c=H[e+16>>2];h=H[e+12>>2];if((b|0)==(((c|0)!=(h|0)?N(c-h>>2,341)-1|0:0)|0)){xa(e+8|0);h=H[e+12>>2];b=H[e+24>>2]+H[e+28>>2]|0}c=(b>>>0)/341|0;b=H[(c<<2)+h>>2]+N(b-N(c,341)|0,12)|0;H[b+8>>2]=k;H[b+4>>2]=a;H[b>>2]=g;a=H[e+28>>2]+1|0;H[e+28>>2]=a;break f}r=0;if(!m){break g}while(1){if(H[f+12>>2]){u=H[f+40>>2];j=H[l>>2];s=H[f+96>>2];g=H[f+108>>2];a=0;while(1){n=(a<<2)+g|0;H[s+(H[n>>2]<<2)>>2]=0;d=H[f>>2];c=H[n>>2]<<2;b=H[c+j>>2];s:{if((d|0)==(b|0)){break s}o=c+s|0;p=d-b|0;h=H[f+52>>2];d=32-h|0;if((p|0)<=(d|0)){c=H[f+48>>2];if((c|0)==(u|0)){d=0;break e}H[o>>2]=H[c>>2]<>>32-p;b=p+H[f+52>>2]|0;H[f+52>>2]=b;if((b|0)!=32){break s}H[f+52>>2]=0;H[f+48>>2]=c+4;break s}k=H[f+48>>2];b=k+4|0;if((u|0)==(b|0)){d=0;break e}c=H[k>>2];H[f+48>>2]=b;b=p-d|0;H[f+52>>2]=b;H[o>>2]=H[k+4>>2]>>>32-b|c<>>32-p}c=H[n>>2]<<2;b=c+s|0;H[b>>2]=H[b>>2]|H[c+H[q>>2]>>2];a=a+1|0;if(a>>>0>2]){continue}break}}g=0;a=H[i+16>>2];t:{if((a|0)==H[i+20>>2]){break t}while(1){d=H[i+28>>2];h=N(g,20)+a|0;k=H[h>>2];if(!I[k+84|0]){d=H[H[k+68>>2]+(d<<2)>>2]}if(K[k+80>>2]<=d>>>0){break t}j=H[f+96>>2]+(H[h+4>>2]<<2)|0;c=H[h+12>>2];b=j;u:{if(c>>>0>3){break u}a=0;b=H[i+12>>2];if(!H[h+16>>2]){break u}while(1){b=qa(b,j+(a<<2)|0,c);c=H[h+12>>2];b=b+c|0;a=a+1|0;if(a>>>0>2]){continue}break}b=H[i+12>>2]}a=H[k+40>>2];qa(H[H[k>>2]>>2]+N(a,d)|0,b,a);g=g+1|0;a=H[i+16>>2];if(g>>>0<(H[i+20>>2]-a|0)/20>>>0){continue}break}}H[i+28>>2]=H[i+28>>2]+1;H[f+8>>2]=H[f+8>>2]+1;r=r+1|0;if((m|0)!=(r|0)){continue}break}}a=H[e+28>>2]}if(a){continue}break}d=1}H[e+28>>2]=0;h=H[e+16>>2];a=H[e+12>>2];b=h-a|0;if(b>>>0>=9){while(1){oa(H[a>>2]);a=H[e+12>>2]+4|0;H[e+12>>2]=a;h=H[e+16>>2];b=h-a|0;if(b>>>0>8){continue}break}}c=170;v:{switch((b>>>2|0)-1|0){case 1:c=341;case 0:H[e+24>>2]=c;break;default:break v}}w:{if((a|0)==(h|0)){break w}while(1){oa(H[a>>2]);a=a+4|0;if((h|0)!=(a|0)){continue}break}b=H[e+16>>2];a=H[e+12>>2];if((b|0)==(a|0)){break w}H[e+16>>2]=b+((a-b|0)+3&-4)}a=H[e+8>>2];if(a){oa(a)}ca=e+32|0;g=d;break b}sa();v()}sa();v()}}return g}function wd(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0;i=H[b+8>>2];j=H[b+12>>2];n=H[b+20>>2];e=H[b+16>>2];h=e+4|0;n=h>>>0<4?n+1|0:n;a:{if(i>>>0>>0&(j|0)<=(n|0)|(j|0)<(n|0)){break a}e=e+H[b>>2]|0;H[a>>2]=I[e|0]|I[e+1|0]<<8|(I[e+2|0]<<16|I[e+3|0]<<24);e=H[b+20>>2];i=e;h=H[b+16>>2];e=h+4|0;j=e>>>0<4?i+1|0:i;H[b+16>>2]=e;H[b+20>>2]=j;if(K[a>>2]>32){break a}j=H[b+8>>2];n=H[b+12>>2];h=h+8|0;i=h>>>0<8?i+1|0:i;if(h>>>0>j>>>0&(i|0)>=(n|0)|(i|0)>(n|0)){break a}e=H[b>>2]+e|0;h=I[e|0]|I[e+1|0]<<8|(I[e+2|0]<<16|I[e+3|0]<<24);H[a+4>>2]=h;i=H[b+20>>2];e=H[b+16>>2]+4|0;i=e>>>0<4?i+1|0:i;H[b+16>>2]=e;H[b+20>>2]=i;if(!h){return 1}if(d>>>0>>0){break a}H[a+8>>2]=0;if(!sb(a+16|0,b)){break a}if(!ua(a+544|0,b)){break a}if(!ua(a+564|0,b)){break a}if(!ua(a+584|0,b)){break a}u=H[a+4>>2];d=c;b=0;c=0;f=ca-32|0;ca=f;g=a;a=H[a+12>>2];H[f+16>>2]=0;H[f+8>>2]=0;H[f+12>>2]=0;b:{c:{if(a){if(a>>>0>=1073741824){break c}e=a<<2;b=pa(e);H[f+8>>2]=b;c=b+e|0;H[f+16>>2]=c;ra(b,0,e);H[f+12>>2]=c}h=H[g+628>>2];e=H[h>>2];if(e){H[h+4>>2]=e;oa(e);c=H[f+12>>2];b=H[f+8>>2];a=H[g+12>>2]}H[h+4>>2]=c;H[h>>2]=b;H[h+8>>2]=H[f+16>>2];b=0;H[f+16>>2]=0;H[f+8>>2]=0;H[f+12>>2]=0;d:{if(a){if(a>>>0>=1073741824){break d}a=a<<2;k=pa(a);H[f+8>>2]=k;b=a+k|0;H[f+16>>2]=b;ra(k,0,a);H[f+12>>2]=b}c=H[g+640>>2];a=H[c>>2];if(a){H[c+4>>2]=a;oa(a);k=H[f+8>>2];b=H[f+12>>2]}H[c+4>>2]=b;H[c>>2]=k;H[c+8>>2]=H[f+16>>2];H[f+24>>2]=0;H[f+28>>2]=0;H[f+16>>2]=0;H[f+20>>2]=0;H[f+8>>2]=0;H[f+12>>2]=0;xa(f+8|0);b=H[f+24>>2]+H[f+28>>2]|0;a=(b>>>0)/341|0;a=H[H[f+12>>2]+(a<<2)>>2]+N(b-N(a,341)|0,12)|0;H[a+4>>2]=0;H[a+8>>2]=0;H[a>>2]=u;c=1;a=H[f+28>>2]+1|0;H[f+28>>2]=a;e:{if(!a){break e}n=g+16|0;while(1){j=H[f+12>>2];h=H[f+24>>2];e=a-1|0;c=h+e|0;b=(c>>>0)/341|0;b=H[j+(b<<2)>>2]+N(c-N(b,341)|0,12)|0;q=H[b+8>>2];i=H[b+4>>2];o=H[b>>2];H[f+28>>2]=e;b=H[f+16>>2];if((((b|0)!=(j|0)?N(b-j>>2,341)-1|0:0)-(a+h|0)|0)+1>>>0>=682){oa(H[b-4>>2]);H[f+16>>2]=H[f+16>>2]-4}c=0;if(o>>>0>u>>>0){break e}a=H[g+12>>2];k=(i|0)!=(a-1|0)?i+1|0:0;if(k>>>0>=a>>>0){break e}p=N(q,12);w=p+H[g+640>>2]|0;r=p+H[g+628>>2]|0;h=H[g>>2];l=k<<2;e=H[l+H[w>>2]>>2];f:{g:{if((h|0)==(e|0)){if(!o){break g}c=H[d+16>>2];b=H[d+20>>2];m=0;while(1){e=(b|0)==(c|0);a=b;j=0;b=c;h:{if(e){break h}while(1){l=H[d+28>>2];b=a;i=N(j,20)+c|0;h=H[i>>2];if(!I[h+84|0]){l=H[H[h+68>>2]+(l<<2)>>2]}if(K[h+80>>2]<=l>>>0){break h}e=H[r>>2]+(H[i+4>>2]<<2)|0;c=H[i+12>>2];b=e;i:{if(c>>>0>3){break i}a=0;b=H[d+12>>2];if(!H[i+16>>2]){break i}while(1){b=qa(b,e+(a<<2)|0,c);c=H[i+12>>2];b=b+c|0;a=a+1|0;if(a>>>0>2]){continue}break}b=H[d+12>>2]}a=H[h+40>>2];qa(H[H[h>>2]>>2]+N(a,l)|0,b,a);a=H[d+20>>2];b=a;j=j+1|0;c=H[d+16>>2];if(j>>>0<(a-c|0)/20>>>0){continue}break}}H[d+28>>2]=H[d+28>>2]+1;H[g+8>>2]=H[g+8>>2]+1;m=m+1|0;if((o|0)!=(m|0)){continue}break}break g}j:{k:{l:{if(o>>>0<=2){c=H[g+616>>2];H[c>>2]=k;a=1;b=H[g+12>>2];if(b>>>0>1){break l}break j}if(K[g+8>>2]>K[g+4>>2]){break e}a=H[g+628>>2];j=q+1|0;m=N(j,12);b=a+m|0;if((b|0)!=(r|0)){Aa(b,H[r>>2],H[r+4>>2]);a=H[g+628>>2]}a=l+H[a+m>>2]|0;H[a>>2]=H[a>>2]+(1<>>1|0;break k}while(1){b=Ba((a<<4)+n|0)|b<<1;a=a+1|0;if((c|0)!=(a|0)){continue}break}a=o>>>1|0;if(b>>>0<=a>>>0){break k}c=0;break e}while(1){k=(b-1|0)!=(k|0)?k+1|0:0;H[c+(a<<2)>>2]=k;a=a+1|0;b=H[g+12>>2];if(a>>>0>>0){continue}break}break j}m:{n:{b=a-b|0;a=o-b|0;o:{if((a|0)==(b|0)){a=b;break o}i=H[g+596>>2];if((i|0)==H[g+588>>2]){break n}h=H[i>>2];e=H[g+600>>2];c=e+1|0;H[g+600>>2]=c;e=h&-2147483648>>>e;p:{if((c|0)==32){H[g+600>>2]=0;H[g+596>>2]=i+4;if(e){break p}break n}if(!e){break n}}}c=a;a=b;break m}c=b}i=H[g+640>>2];h=i+p|0;e=H[h>>2];b=e+l|0;H[b>>2]=H[b>>2]+1;Aa(i+m|0,e,H[h+4>>2]);if(a){m=H[f+28>>2]+H[f+24>>2]|0;e=H[f+16>>2];b=H[f+12>>2];if((m|0)==(((b|0)!=(e|0)?N(e-b>>2,341)-1|0:0)|0)){xa(f+8|0);m=H[f+24>>2]+H[f+28>>2]|0;e=H[f+12>>2]}else{e=b}b=(m>>>0)/341|0;b=H[e+(b<<2)>>2]+N(m-N(b,341)|0,12)|0;H[b+8>>2]=q;H[b+4>>2]=k;H[b>>2]=a;H[f+28>>2]=H[f+28>>2]+1}if(!c){break g}b=H[f+28>>2]+H[f+24>>2]|0;e=H[f+16>>2];a=H[f+12>>2];if((b|0)==(((a|0)!=(e|0)?N(e-a>>2,341)-1|0:0)|0)){xa(f+8|0);b=H[f+24>>2]+H[f+28>>2]|0;e=H[f+12>>2]}else{e=a}a=(b>>>0)/341|0;a=H[e+(a<<2)>>2]+N(b-N(a,341)|0,12)|0;H[a+8>>2]=j;H[a+4>>2]=k;H[a>>2]=c;a=H[f+28>>2]+1|0;H[f+28>>2]=a;break f}k=0;if(!o){break g}while(1){if(H[g+12>>2]){q=H[g+548>>2];i=H[w>>2];t=H[g+604>>2];h=H[g+616>>2];a=0;while(1){p=(a<<2)+h|0;H[t+(H[p>>2]<<2)>>2]=0;e=H[g>>2];c=H[p>>2]<<2;b=H[c+i>>2];q:{if((e|0)==(b|0)){break q}l=c+t|0;s=e-b|0;m=H[g+560>>2];e=32-m|0;if((s|0)<=(e|0)){c=H[g+556>>2];if((c|0)==(q|0)){c=0;break e}H[l>>2]=H[c>>2]<>>32-s;b=s+H[g+560>>2]|0;H[g+560>>2]=b;if((b|0)!=32){break q}H[g+560>>2]=0;H[g+556>>2]=c+4;break q}j=H[g+556>>2];b=j+4|0;if((q|0)==(b|0)){c=0;break e}c=H[j>>2];H[g+556>>2]=b;b=s-e|0;H[g+560>>2]=b;H[l>>2]=H[j+4>>2]>>>32-b|c<>>32-s}c=H[p>>2]<<2;b=c+t|0;H[b>>2]=H[b>>2]|H[c+H[r>>2]>>2];a=a+1|0;if(a>>>0>2]){continue}break}}j=0;a=H[d+16>>2];r:{if((a|0)==H[d+20>>2]){break r}while(1){l=H[d+28>>2];i=N(j,20)+a|0;h=H[i>>2];if(!I[h+84|0]){l=H[H[h+68>>2]+(l<<2)>>2]}if(K[h+80>>2]<=l>>>0){break r}e=H[g+604>>2]+(H[i+4>>2]<<2)|0;c=H[i+12>>2];b=e;s:{if(c>>>0>3){break s}a=0;b=H[d+12>>2];if(!H[i+16>>2]){break s}while(1){b=qa(b,e+(a<<2)|0,c);c=H[i+12>>2];b=b+c|0;a=a+1|0;if(a>>>0>2]){continue}break}b=H[d+12>>2]}a=H[h+40>>2];qa(H[H[h>>2]>>2]+N(a,l)|0,b,a);j=j+1|0;a=H[d+16>>2];if(j>>>0<(H[d+20>>2]-a|0)/20>>>0){continue}break}}H[d+28>>2]=H[d+28>>2]+1;H[g+8>>2]=H[g+8>>2]+1;k=k+1|0;if((o|0)!=(k|0)){continue}break}}a=H[f+28>>2]}if(a){continue}break}c=1}H[f+28>>2]=0;k=H[f+16>>2];a=H[f+12>>2];b=k-a|0;if(b>>>0>=9){while(1){oa(H[a>>2]);a=H[f+12>>2]+4|0;H[f+12>>2]=a;k=H[f+16>>2];b=k-a|0;if(b>>>0>8){continue}break}}d=170;t:{switch((b>>>2|0)-1|0){case 1:d=341;case 0:H[f+24>>2]=d;break;default:break t}}u:{if((a|0)==(k|0)){break u}while(1){oa(H[a>>2]);a=a+4|0;if((k|0)!=(a|0)){continue}break}b=H[f+16>>2];a=H[f+12>>2];if((b|0)==(a|0)){break u}H[f+16>>2]=b+((a-b|0)+3&-4)}a=H[f+8>>2];if(a){oa(a)}ca=f+32|0;break b}sa();v()}sa();v()}g=c}return g}function ud(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0;i=H[b+8>>2];k=H[b+12>>2];o=H[b+20>>2];e=H[b+16>>2];h=e+4|0;o=h>>>0<4?o+1|0:o;a:{if(i>>>0>>0&(k|0)<=(o|0)|(k|0)<(o|0)){break a}e=e+H[b>>2]|0;H[a>>2]=I[e|0]|I[e+1|0]<<8|(I[e+2|0]<<16|I[e+3|0]<<24);e=H[b+20>>2];i=e;h=H[b+16>>2];e=h+4|0;k=e>>>0<4?i+1|0:i;H[b+16>>2]=e;H[b+20>>2]=k;if(K[a>>2]>32){break a}k=H[b+8>>2];o=H[b+12>>2];h=h+8|0;i=h>>>0<8?i+1|0:i;if(h>>>0>k>>>0&(i|0)>=(o|0)|(i|0)>(o|0)){break a}e=H[b>>2]+e|0;h=I[e|0]|I[e+1|0]<<8|(I[e+2|0]<<16|I[e+3|0]<<24);H[a+4>>2]=h;i=H[b+20>>2];e=H[b+16>>2]+4|0;i=e>>>0<4?i+1|0:i;H[b+16>>2]=e;H[b+20>>2]=i;if(!h){return 1}if(d>>>0>>0){break a}H[a+8>>2]=0;if(!sb(a+16|0,b)){break a}if(!ua(a+544|0,b)){break a}if(!ua(a+564|0,b)){break a}if(!ua(a+584|0,b)){break a}w=H[a+4>>2];d=c;b=0;c=0;f=ca-32|0;ca=f;g=a;a=H[a+12>>2];H[f+16>>2]=0;H[f+8>>2]=0;H[f+12>>2]=0;b:{c:{if(a){if(a>>>0>=1073741824){break c}e=a<<2;b=pa(e);H[f+8>>2]=b;c=b+e|0;H[f+16>>2]=c;ra(b,0,e);H[f+12>>2]=c}h=H[g+628>>2];e=H[h>>2];if(e){H[h+4>>2]=e;oa(e);c=H[f+12>>2];b=H[f+8>>2];a=H[g+12>>2]}H[h+4>>2]=c;H[h>>2]=b;H[h+8>>2]=H[f+16>>2];b=0;H[f+16>>2]=0;H[f+8>>2]=0;H[f+12>>2]=0;d:{if(a){if(a>>>0>=1073741824){break d}a=a<<2;j=pa(a);H[f+8>>2]=j;b=a+j|0;H[f+16>>2]=b;ra(j,0,a);H[f+12>>2]=b}c=H[g+640>>2];a=H[c>>2];if(a){H[c+4>>2]=a;oa(a);j=H[f+8>>2];b=H[f+12>>2]}H[c+4>>2]=b;H[c>>2]=j;H[c+8>>2]=H[f+16>>2];H[f+24>>2]=0;H[f+28>>2]=0;H[f+16>>2]=0;H[f+20>>2]=0;H[f+8>>2]=0;H[f+12>>2]=0;xa(f+8|0);b=H[f+24>>2]+H[f+28>>2]|0;a=(b>>>0)/341|0;a=H[H[f+12>>2]+(a<<2)>>2]+N(b-N(a,341)|0,12)|0;H[a+4>>2]=0;H[a+8>>2]=0;H[a>>2]=w;c=1;a=H[f+28>>2]+1|0;H[f+28>>2]=a;e:{if(!a){break e}o=g+16|0;while(1){i=H[f+12>>2];h=H[f+24>>2];e=a-1|0;c=h+e|0;b=(c>>>0)/341|0;b=H[i+(b<<2)>>2]+N(c-N(b,341)|0,12)|0;q=H[b+8>>2];n=H[b>>2];H[f+28>>2]=e;b=H[f+16>>2];if((((b|0)!=(i|0)?N(b-i>>2,341)-1|0:0)-(a+h|0)|0)+1>>>0>=682){oa(H[b-4>>2]);H[f+16>>2]=H[f+16>>2]-4}c=0;if(n>>>0>w>>>0){break e}a=H[g+628>>2];p=N(q,12);t=p+H[g+640>>2]|0;j=Vd(g,n,t);if(j>>>0>=K[g+12>>2]){break e}r=a+p|0;h=H[g>>2];l=j<<2;e=H[l+H[t>>2]>>2];f:{g:{if((h|0)==(e|0)){if(!n){break g}c=H[d+16>>2];b=H[d+20>>2];m=0;while(1){e=(b|0)==(c|0);a=b;k=0;b=c;h:{if(e){break h}while(1){l=H[d+28>>2];b=a;i=N(k,20)+c|0;h=H[i>>2];if(!I[h+84|0]){l=H[H[h+68>>2]+(l<<2)>>2]}if(K[h+80>>2]<=l>>>0){break h}e=H[r>>2]+(H[i+4>>2]<<2)|0;c=H[i+12>>2];b=e;i:{if(c>>>0>3){break i}a=0;b=H[d+12>>2];if(!H[i+16>>2]){break i}while(1){b=qa(b,e+(a<<2)|0,c);c=H[i+12>>2];b=b+c|0;a=a+1|0;if(a>>>0>2]){continue}break}b=H[d+12>>2]}a=H[h+40>>2];qa(H[H[h>>2]>>2]+N(a,l)|0,b,a);a=H[d+20>>2];b=a;k=k+1|0;c=H[d+16>>2];if(k>>>0<(a-c|0)/20>>>0){continue}break}}H[d+28>>2]=H[d+28>>2]+1;H[g+8>>2]=H[g+8>>2]+1;m=m+1|0;if((n|0)!=(m|0)){continue}break}break g}j:{k:{l:{if(n>>>0<=2){c=H[g+616>>2];H[c>>2]=j;a=1;b=H[g+12>>2];if(b>>>0>1){break l}break j}if(K[g+8>>2]>K[g+4>>2]){break e}a=H[g+628>>2];k=q+1|0;m=N(k,12);b=a+m|0;if((b|0)!=(r|0)){Aa(b,H[r>>2],H[r+4>>2]);a=H[g+628>>2]}a=l+H[a+m>>2]|0;H[a>>2]=H[a>>2]+(1<>>1|0;break k}while(1){b=Ba((a<<4)+o|0)|b<<1;a=a+1|0;if((c|0)!=(a|0)){continue}break}a=n>>>1|0;if(b>>>0<=a>>>0){break k}c=0;break e}while(1){j=(b-1|0)!=(j|0)?j+1|0:0;H[c+(a<<2)>>2]=j;a=a+1|0;b=H[g+12>>2];if(a>>>0>>0){continue}break}break j}m:{n:{b=a-b|0;a=n-b|0;o:{if((a|0)==(b|0)){a=b;break o}i=H[g+596>>2];if((i|0)==H[g+588>>2]){break n}h=H[i>>2];e=H[g+600>>2];c=e+1|0;H[g+600>>2]=c;e=h&-2147483648>>>e;p:{if((c|0)==32){H[g+600>>2]=0;H[g+596>>2]=i+4;if(e){break p}break n}if(!e){break n}}}c=a;a=b;break m}c=b}i=H[g+640>>2];h=i+p|0;e=H[h>>2];b=e+l|0;H[b>>2]=H[b>>2]+1;Aa(i+m|0,e,H[h+4>>2]);if(a){m=H[f+28>>2]+H[f+24>>2]|0;e=H[f+16>>2];b=H[f+12>>2];if((m|0)==(((b|0)!=(e|0)?N(e-b>>2,341)-1|0:0)|0)){xa(f+8|0);m=H[f+24>>2]+H[f+28>>2]|0;e=H[f+12>>2]}else{e=b}b=(m>>>0)/341|0;b=H[e+(b<<2)>>2]+N(m-N(b,341)|0,12)|0;H[b+8>>2]=q;H[b+4>>2]=j;H[b>>2]=a;H[f+28>>2]=H[f+28>>2]+1}if(!c){break g}b=H[f+28>>2]+H[f+24>>2]|0;e=H[f+16>>2];a=H[f+12>>2];if((b|0)==(((a|0)!=(e|0)?N(e-a>>2,341)-1|0:0)|0)){xa(f+8|0);b=H[f+24>>2]+H[f+28>>2]|0;e=H[f+12>>2]}else{e=a}a=(b>>>0)/341|0;a=H[e+(a<<2)>>2]+N(b-N(a,341)|0,12)|0;H[a+8>>2]=k;H[a+4>>2]=j;H[a>>2]=c;a=H[f+28>>2]+1|0;H[f+28>>2]=a;break f}j=0;if(!n){break g}while(1){if(H[g+12>>2]){q=H[g+548>>2];i=H[t>>2];u=H[g+604>>2];h=H[g+616>>2];a=0;while(1){p=(a<<2)+h|0;H[u+(H[p>>2]<<2)>>2]=0;e=H[g>>2];c=H[p>>2]<<2;b=H[c+i>>2];q:{if((e|0)==(b|0)){break q}l=c+u|0;s=e-b|0;m=H[g+560>>2];e=32-m|0;if((s|0)<=(e|0)){c=H[g+556>>2];if((c|0)==(q|0)){c=0;break e}H[l>>2]=H[c>>2]<>>32-s;b=s+H[g+560>>2]|0;H[g+560>>2]=b;if((b|0)!=32){break q}H[g+560>>2]=0;H[g+556>>2]=c+4;break q}k=H[g+556>>2];b=k+4|0;if((q|0)==(b|0)){c=0;break e}c=H[k>>2];H[g+556>>2]=b;b=s-e|0;H[g+560>>2]=b;H[l>>2]=H[k+4>>2]>>>32-b|c<>>32-s}c=H[p>>2]<<2;b=c+u|0;H[b>>2]=H[b>>2]|H[c+H[r>>2]>>2];a=a+1|0;if(a>>>0>2]){continue}break}}k=0;a=H[d+16>>2];r:{if((a|0)==H[d+20>>2]){break r}while(1){l=H[d+28>>2];i=N(k,20)+a|0;h=H[i>>2];if(!I[h+84|0]){l=H[H[h+68>>2]+(l<<2)>>2]}if(K[h+80>>2]<=l>>>0){break r}e=H[g+604>>2]+(H[i+4>>2]<<2)|0;c=H[i+12>>2];b=e;s:{if(c>>>0>3){break s}a=0;b=H[d+12>>2];if(!H[i+16>>2]){break s}while(1){b=qa(b,e+(a<<2)|0,c);c=H[i+12>>2];b=b+c|0;a=a+1|0;if(a>>>0>2]){continue}break}b=H[d+12>>2]}a=H[h+40>>2];qa(H[H[h>>2]>>2]+N(a,l)|0,b,a);k=k+1|0;a=H[d+16>>2];if(k>>>0<(H[d+20>>2]-a|0)/20>>>0){continue}break}}H[d+28>>2]=H[d+28>>2]+1;H[g+8>>2]=H[g+8>>2]+1;j=j+1|0;if((n|0)!=(j|0)){continue}break}}a=H[f+28>>2]}if(a){continue}break}c=1}H[f+28>>2]=0;j=H[f+16>>2];a=H[f+12>>2];b=j-a|0;if(b>>>0>=9){while(1){oa(H[a>>2]);a=H[f+12>>2]+4|0;H[f+12>>2]=a;j=H[f+16>>2];b=j-a|0;if(b>>>0>8){continue}break}}d=170;t:{switch((b>>>2|0)-1|0){case 1:d=341;case 0:H[f+24>>2]=d;break;default:break t}}u:{if((a|0)==(j|0)){break u}while(1){oa(H[a>>2]);a=a+4|0;if((j|0)!=(a|0)){continue}break}b=H[f+16>>2];a=H[f+12>>2];if((b|0)==(a|0)){break u}H[f+16>>2]=b+((a-b|0)+3&-4)}a=H[f+8>>2];if(a){oa(a)}ca=f+32|0;break b}sa();v()}sa();v()}g=c}return g}function vd(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0;i=H[b+8>>2];k=H[b+12>>2];m=H[b+20>>2];f=H[b+16>>2];h=f+4|0;m=h>>>0<4?m+1|0:m;a:{if(i>>>0>>0&(k|0)<=(m|0)|(k|0)<(m|0)){break a}f=f+H[b>>2]|0;H[a>>2]=I[f|0]|I[f+1|0]<<8|(I[f+2|0]<<16|I[f+3|0]<<24);f=H[b+20>>2];i=f;h=H[b+16>>2];f=h+4|0;k=f>>>0<4?i+1|0:i;H[b+16>>2]=f;H[b+20>>2]=k;if(K[a>>2]>32){break a}k=H[b+8>>2];m=H[b+12>>2];h=h+8|0;i=h>>>0<8?i+1|0:i;if(h>>>0>k>>>0&(i|0)>=(m|0)|(i|0)>(m|0)){break a}f=f+H[b>>2]|0;h=I[f|0]|I[f+1|0]<<8|(I[f+2|0]<<16|I[f+3|0]<<24);H[a+4>>2]=h;i=H[b+20>>2];f=H[b+16>>2]+4|0;i=f>>>0<4?i+1|0:i;H[b+16>>2]=f;H[b+20>>2]=i;if(!h){return 1}if(d>>>0>>0){break a}H[a+8>>2]=0;if(!sb(a+16|0,b)){break a}if(!ua(a+544|0,b)){break a}if(!ua(a+564|0,b)){break a}if(!ua(a+584|0,b)){break a}u=H[a+4>>2];b=0;e=ca-32|0;ca=e;f=a;a=H[a+12>>2];H[e+16>>2]=0;H[e+8>>2]=0;H[e+12>>2]=0;b:{c:{if(a){if(a>>>0>=1073741824){break c}d=a<<2;b=pa(d);H[e+8>>2]=b;g=b+d|0;H[e+16>>2]=g;ra(b,0,d);H[e+12>>2]=g}h=H[f+628>>2];d=H[h>>2];if(d){H[h+4>>2]=d;oa(d);g=H[e+12>>2];b=H[e+8>>2];a=H[f+12>>2]}H[h+4>>2]=g;H[h>>2]=b;H[h+8>>2]=H[e+16>>2];b=0;H[e+16>>2]=0;H[e+8>>2]=0;H[e+12>>2]=0;d:{if(a){if(a>>>0>=1073741824){break d}a=a<<2;j=pa(a);H[e+8>>2]=j;b=a+j|0;H[e+16>>2]=b;ra(j,0,a);H[e+12>>2]=b}d=H[f+640>>2];a=H[d>>2];if(a){H[d+4>>2]=a;oa(a);j=H[e+8>>2];b=H[e+12>>2]}H[d+4>>2]=b;H[d>>2]=j;H[d+8>>2]=H[e+16>>2];H[e+24>>2]=0;H[e+28>>2]=0;H[e+16>>2]=0;H[e+20>>2]=0;H[e+8>>2]=0;H[e+12>>2]=0;xa(e+8|0);b=H[e+24>>2]+H[e+28>>2]|0;a=(b>>>0)/341|0;a=H[H[e+12>>2]+(a<<2)>>2]+N(b-N(a,341)|0,12)|0;H[a+4>>2]=0;H[a+8>>2]=0;H[a>>2]=u;d=1;a=H[e+28>>2]+1|0;H[e+28>>2]=a;e:{if(!a){break e}m=f+16|0;while(1){k=H[e+12>>2];h=H[e+24>>2];g=a-1|0;d=h+g|0;b=(d>>>0)/341|0;b=H[k+(b<<2)>>2]+N(d-N(b,341)|0,12)|0;q=H[b+8>>2];i=H[b+4>>2];n=H[b>>2];H[e+28>>2]=g;b=H[e+16>>2];if((((b|0)!=(k|0)?N(b-k>>2,341)-1|0:0)-(a+h|0)|0)+1>>>0>=682){oa(H[b-4>>2]);H[e+16>>2]=H[e+16>>2]-4}if(n>>>0>u>>>0){d=0;break e}d=0;a=H[f+12>>2];j=(i|0)!=(a-1|0)?i+1|0:0;if(j>>>0>=a>>>0){break e}a=H[f+628>>2];o=N(q,12);s=a+o|0;g=H[f>>2];l=j<<2;k=o+H[f+640>>2]|0;b=H[l+H[k>>2]>>2];f:{g:{if((g|0)==(b|0)){if(!n){break g}g=H[c+16>>2];b=H[c+20>>2];p=0;while(1){d=(b|0)==(g|0);a=b;j=0;b=g;h:{if(d){break h}while(1){d=H[c+28>>2];b=a;k=N(j,20)+g|0;i=H[k>>2];if(!I[i+84|0]){d=H[H[i+68>>2]+(d<<2)>>2]}if(K[i+80>>2]<=d>>>0){break h}h=H[s>>2]+(H[k+4>>2]<<2)|0;g=H[k+12>>2];b=h;i:{if(g>>>0>3){break i}a=0;b=H[c+12>>2];if(!H[k+16>>2]){break i}while(1){b=qa(b,h+(a<<2)|0,g);g=H[k+12>>2];b=b+g|0;a=a+1|0;if(a>>>0>2]){continue}break}b=H[c+12>>2]}a=H[i+40>>2];qa(H[H[i>>2]>>2]+N(a,d)|0,b,a);a=H[c+20>>2];b=a;j=j+1|0;g=H[c+16>>2];if(j>>>0<(a-g|0)/20>>>0){continue}break}}H[c+28>>2]=H[c+28>>2]+1;H[f+8>>2]=H[f+8>>2]+1;p=p+1|0;if((p|0)!=(n|0)){continue}break}break g}j:{k:{l:{if(n>>>0<=2){d=H[f+616>>2];H[d>>2]=j;a=1;b=H[f+12>>2];if(b>>>0>1){break l}break j}if(K[f+8>>2]>K[f+4>>2]){break e}d=a;a=o+12|0;Aa(d+a|0,H[s>>2],H[s+4>>2]);a=l+H[a+H[f+628>>2]>>2]|0;H[a>>2]=H[a>>2]+(1<>>1|0;break k}while(1){b=Ba((a<<4)+m|0)|b<<1;a=a+1|0;if((d|0)!=(a|0)){continue}break}a=n>>>1|0;if(b>>>0<=a>>>0){break k}d=0;break e}while(1){j=(b-1|0)!=(j|0)?j+1|0:0;H[d+(a<<2)>>2]=j;a=a+1|0;b=H[f+12>>2];if(a>>>0>>0){continue}break}break j}k=q+1|0;m:{n:{b=a-b|0;a=n-b|0;o:{if((a|0)==(b|0)){a=b;break o}i=H[f+596>>2];if((i|0)==H[f+588>>2]){break n}h=H[i>>2];g=H[f+600>>2];d=g+1|0;H[f+600>>2]=d;g=h&-2147483648>>>g;p:{if((d|0)==32){H[f+600>>2]=0;H[f+596>>2]=i+4;if(g){break p}break n}if(!g){break n}}}d=a;a=b;break m}d=b}i=H[f+640>>2];h=i+o|0;g=H[h>>2];b=g+l|0;H[b>>2]=H[b>>2]+1;Aa(i+N(k,12)|0,g,H[h+4>>2]);if(a){h=H[e+28>>2]+H[e+24>>2]|0;g=H[e+16>>2];b=H[e+12>>2];if((h|0)==(((b|0)!=(g|0)?N(g-b>>2,341)-1|0:0)|0)){xa(e+8|0);h=H[e+24>>2]+H[e+28>>2]|0;g=H[e+12>>2]}else{g=b}b=(h>>>0)/341|0;b=H[g+(b<<2)>>2]+N(h-N(b,341)|0,12)|0;H[b+8>>2]=q;H[b+4>>2]=j;H[b>>2]=a;H[e+28>>2]=H[e+28>>2]+1}if(!d){break g}b=H[e+28>>2]+H[e+24>>2]|0;g=H[e+16>>2];a=H[e+12>>2];if((b|0)==(((a|0)!=(g|0)?N(g-a>>2,341)-1|0:0)|0)){xa(e+8|0);b=H[e+24>>2]+H[e+28>>2]|0;g=H[e+12>>2]}else{g=a}a=(b>>>0)/341|0;a=H[g+(a<<2)>>2]+N(b-N(a,341)|0,12)|0;H[a+8>>2]=k;H[a+4>>2]=j;H[a>>2]=d;a=H[e+28>>2]+1|0;H[e+28>>2]=a;break f}p=0;if(!n){break g}while(1){if(H[f+12>>2]){w=H[f+548>>2];i=H[k>>2];t=H[f+604>>2];h=H[f+616>>2];a=0;while(1){j=h+(a<<2)|0;H[(H[j>>2]<<2)+t>>2]=0;g=H[f>>2];d=H[j>>2]<<2;b=H[d+i>>2];q:{if((g|0)==(b|0)){break q}q=d+t|0;r=g-b|0;o=H[f+560>>2];g=32-o|0;if((r|0)<=(g|0)){d=H[f+556>>2];if((d|0)==(w|0)){d=0;break e}H[q>>2]=H[d>>2]<>>32-r;b=H[f+560>>2]+r|0;H[f+560>>2]=b;if((b|0)!=32){break q}H[f+560>>2]=0;H[f+556>>2]=d+4;break q}l=H[f+556>>2];b=l+4|0;if((b|0)==(w|0)){d=0;break e}d=H[l>>2];H[f+556>>2]=b;b=r-g|0;H[f+560>>2]=b;H[q>>2]=H[l+4>>2]>>>32-b|d<>>32-r}d=H[j>>2]<<2;b=d+t|0;H[b>>2]=H[b>>2]|H[d+H[s>>2]>>2];a=a+1|0;if(a>>>0>2]){continue}break}}j=0;a=H[c+16>>2];r:{if((a|0)==H[c+20>>2]){break r}while(1){d=H[c+28>>2];l=N(j,20)+a|0;i=H[l>>2];if(!I[i+84|0]){d=H[H[i+68>>2]+(d<<2)>>2]}if(K[i+80>>2]<=d>>>0){break r}h=H[f+604>>2]+(H[l+4>>2]<<2)|0;g=H[l+12>>2];b=h;s:{if(g>>>0>3){break s}a=0;b=H[c+12>>2];if(!H[l+16>>2]){break s}while(1){b=qa(b,h+(a<<2)|0,g);g=H[l+12>>2];b=b+g|0;a=a+1|0;if(a>>>0>2]){continue}break}b=H[c+12>>2]}a=H[i+40>>2];qa(H[H[i>>2]>>2]+N(a,d)|0,b,a);j=j+1|0;a=H[c+16>>2];if(j>>>0<(H[c+20>>2]-a|0)/20>>>0){continue}break}}H[c+28>>2]=H[c+28>>2]+1;H[f+8>>2]=H[f+8>>2]+1;p=p+1|0;if((p|0)!=(n|0)){continue}break}}a=H[e+28>>2]}if(a){continue}break}d=1}H[e+28>>2]=0;j=H[e+16>>2];a=H[e+12>>2];b=j-a|0;if(b>>>0>=9){while(1){oa(H[a>>2]);a=H[e+12>>2]+4|0;H[e+12>>2]=a;j=H[e+16>>2];b=j-a|0;if(b>>>0>8){continue}break}}g=170;t:{switch((b>>>2|0)-1|0){case 1:g=341;case 0:H[e+24>>2]=g;break;default:break t}}u:{if((a|0)==(j|0)){break u}while(1){oa(H[a>>2]);a=a+4|0;if((j|0)!=(a|0)){continue}break}b=H[e+16>>2];a=H[e+12>>2];if((b|0)==(a|0)){break u}H[e+16>>2]=b+((a-b|0)+3&-4)}a=H[e+8>>2];if(a){oa(a)}ca=e+32|0;break b}sa();v()}sa();v()}g=d}return g}function yd(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0;j=H[b+8>>2];e=H[b+12>>2];g=H[b+20>>2];h=H[b+16>>2];l=h+4|0;g=l>>>0<4?g+1|0:g;a:{if(j>>>0>>0&(e|0)<=(g|0)|(e|0)<(g|0)){break a}h=h+H[b>>2]|0;H[a>>2]=I[h|0]|I[h+1|0]<<8|(I[h+2|0]<<16|I[h+3|0]<<24);h=H[b+20>>2];e=h;j=H[b+16>>2];g=j+4|0;h=g>>>0<4?e+1|0:e;H[b+16>>2]=g;H[b+20>>2]=h;if(K[a>>2]>32){break a}k=H[b+8>>2];l=H[b+12>>2];h=e;e=j+8|0;h=e>>>0<8?h+1|0:h;if(e>>>0>k>>>0&(h|0)>=(l|0)|(h|0)>(l|0)){break a}h=H[b>>2]+g|0;g=I[h|0]|I[h+1|0]<<8|(I[h+2|0]<<16|I[h+3|0]<<24);H[a+4>>2]=g;h=H[b+20>>2];e=H[b+16>>2]+4|0;h=e>>>0<4?h+1|0:h;H[b+16>>2]=e;H[b+20>>2]=h;if(!g){return 1}if(d>>>0>>0){break a}H[a+8>>2]=0;if(!ta(a+16|0,b)){break a}if(!ua(a+32|0,b)){break a}if(!ua(a+52|0,b)){break a}if(!ua(a+72|0,b)){break a}r=H[a+4>>2];h=c;b=0;g=0;e=ca-32|0;ca=e;d=a;a=H[a+12>>2];H[e+16>>2]=0;H[e+8>>2]=0;H[e+12>>2]=0;b:{c:{if(a){if(a>>>0>=1073741824){break c}c=a<<2;b=pa(c);H[e+8>>2]=b;g=b+c|0;H[e+16>>2]=g;ra(b,0,c);H[e+12>>2]=g}c=H[d+116>>2];i=H[c>>2];if(i){H[c+4>>2]=i;oa(i);g=H[e+12>>2];b=H[e+8>>2];a=H[d+12>>2]}H[c+4>>2]=g;H[c>>2]=b;H[c+8>>2]=H[e+16>>2];b=0;H[e+16>>2]=0;H[e+8>>2]=0;H[e+12>>2]=0;d:{if(a){if(a>>>0>=1073741824){break d}a=a<<2;f=pa(a);H[e+8>>2]=f;b=a+f|0;H[e+16>>2]=b;ra(f,0,a);H[e+12>>2]=b}a=H[d+128>>2];c=H[a>>2];if(c){H[a+4>>2]=c;oa(c);f=H[e+8>>2];b=H[e+12>>2]}H[a+4>>2]=b;H[a>>2]=f;H[a+8>>2]=H[e+16>>2];H[e+24>>2]=0;H[e+28>>2]=0;H[e+16>>2]=0;H[e+20>>2]=0;H[e+8>>2]=0;H[e+12>>2]=0;xa(e+8|0);a=H[e+24>>2]+H[e+28>>2]|0;b=(a>>>0)/341|0;a=H[H[e+12>>2]+(b<<2)>>2]+N(a-N(b,341)|0,12)|0;H[a+4>>2]=0;H[a+8>>2]=0;H[a>>2]=r;c=1;a=H[e+28>>2]+1|0;H[e+28>>2]=a;e:{if(!a){break e}t=d+16|0;while(1){b=H[e+12>>2];f=H[e+24>>2];l=a-1|0;c=f+l|0;i=(c>>>0)/341|0;c=H[b+(i<<2)>>2]+N(c-N(i,341)|0,12)|0;g=H[c+8>>2];i=H[c+4>>2];j=H[c>>2];H[e+28>>2]=l;c=H[e+16>>2];if((((b|0)!=(c|0)?N(c-b>>2,341)-1|0:0)-(a+f|0)|0)+1>>>0>=682){oa(H[c-4>>2]);H[e+16>>2]=H[e+16>>2]-4}c=0;if(j>>>0>r>>>0){break e}b=H[d+12>>2];a=(b-1|0)!=(i|0)?i+1|0:0;if(a>>>0>=b>>>0){break e}f=N(g,12);o=f+H[d+128>>2]|0;l=f+H[d+116>>2]|0;i=H[d>>2];k=a<<2;n=H[k+H[o>>2]>>2];f:{if((i|0)==(n|0)){if(!j){break f}o=0;b=H[h+20>>2];g=H[h+16>>2];if((b|0)==(g|0)){a=H[d+8>>2];H[h+28>>2]=j+H[h+28>>2];H[d+8>>2]=a+j;break f}while(1){c=(b|0)==(g|0);a=b;i=0;b=g;g:{if(c){break g}while(1){f=H[h+28>>2];b=a;c=N(i,20)+g|0;k=H[c>>2];if(!I[k+84|0]){f=H[H[k+68>>2]+(f<<2)>>2]}if(K[k+80>>2]<=f>>>0){break g}n=H[l>>2]+(H[c+4>>2]<<2)|0;g=H[c+12>>2];b=n;h:{if(g>>>0>3){break h}a=0;b=H[h+12>>2];if(!H[c+16>>2]){break h}while(1){b=qa(b,n+(a<<2)|0,g);g=H[c+12>>2];b=b+g|0;a=a+1|0;if(a>>>0>2]){continue}break}b=H[h+12>>2]}a=H[k+40>>2];qa(H[H[k>>2]>>2]+N(a,f)|0,b,a);i=i+1|0;a=H[h+20>>2];b=a;g=H[h+16>>2];if(i>>>0<(b-g|0)/20>>>0){continue}break}}H[h+28>>2]=H[h+28>>2]+1;H[d+8>>2]=H[d+8>>2]+1;o=o+1|0;if((j|0)!=(o|0)){continue}break}break f}i:{j:{k:{l:{if(j>>>0<=2){c=H[d+104>>2];H[c>>2]=a;f=1;b=H[d+12>>2];if(b>>>0>1){break l}break i}if(K[d+8>>2]>K[d+4>>2]){break e}b=H[d+116>>2];m=g+1|0;o=N(m,12);q=b+o|0;if((q|0)!=(l|0)){Aa(q,H[l>>2],H[l+4>>2]);b=H[d+116>>2]}b=k+H[b+o>>2]|0;H[b>>2]=H[b>>2]+(1<>2]=0;pc(t,Q(j)^31,e+4|0);b=j>>>1|0;i=H[e+4>>2];if(b>>>0>>0){break e}b=b-i|0;c=j-b|0;m:{if((c|0)==(b|0)){c=b;break m}i=H[d+84>>2];if((i|0)==H[d+76>>2]){break k}j=H[i>>2];l=H[d+88>>2];n=l+1|0;H[d+88>>2]=n;j=j&-2147483648>>>l;n:{if((n|0)==32){H[d+88>>2]=0;H[d+84>>2]=i+4;if(j){break n}break k}if(!j){break k}}}i=c;c=b;break j}while(1){a=(b-1|0)!=(a|0)?a+1|0:0;H[c+(f<<2)>>2]=a;b=H[d+12>>2];f=f+1|0;if(b>>>0>f>>>0){continue}break}break i}i=b}b=H[d+128>>2];j=b+f|0;f=H[j>>2];l=f+k|0;H[l>>2]=H[l>>2]+1;Aa(b+o|0,f,H[j+4>>2]);if(c){b=H[e+28>>2]+H[e+24>>2]|0;j=H[e+16>>2];f=H[e+12>>2];if((b|0)==(((f|0)!=(j|0)?N(j-f>>2,341)-1|0:0)|0)){xa(e+8|0);f=H[e+12>>2];b=H[e+24>>2]+H[e+28>>2]|0}j=(b>>>0)/341|0;b=H[(j<<2)+f>>2]+N(b-N(j,341)|0,12)|0;H[b+8>>2]=g;H[b+4>>2]=a;H[b>>2]=c;H[e+28>>2]=H[e+28>>2]+1}if(!i){break f}b=H[e+28>>2]+H[e+24>>2]|0;c=H[e+16>>2];f=H[e+12>>2];if((b|0)==(((c|0)!=(f|0)?N(c-f>>2,341)-1|0:0)|0)){xa(e+8|0);f=H[e+12>>2];b=H[e+24>>2]+H[e+28>>2]|0}c=(b>>>0)/341|0;b=H[(c<<2)+f>>2]+N(b-N(c,341)|0,12)|0;H[b+8>>2]=m;H[b+4>>2]=a;H[b>>2]=i;H[e+28>>2]=H[e+28>>2]+1;break f}n=0;if(!j){break f}while(1){if(H[d+12>>2]){i=H[d+36>>2];q=H[o>>2];c=H[d+92>>2];u=H[d+104>>2];a=0;while(1){g=(a<<2)+u|0;H[c+(H[g>>2]<<2)>>2]=0;b=H[d>>2];f=H[g>>2]<<2;k=H[f+q>>2];o:{if((b|0)==(k|0)){break o}f=c+f|0;b=b-k|0;k=H[d+48>>2];p=32-k|0;if((b|0)<=(p|0)){m=H[d+44>>2];if((m|0)==(i|0)){c=0;break e}H[f>>2]=H[m>>2]<>>32-b;b=b+H[d+48>>2]|0;H[d+48>>2]=b;if((b|0)!=32){break o}H[d+48>>2]=0;H[d+44>>2]=m+4;break o}m=H[d+44>>2];s=m+4|0;if((i|0)==(s|0)){c=0;break e}w=H[m>>2];H[d+44>>2]=s;p=b-p|0;H[d+48>>2]=p;H[f>>2]=H[m+4>>2]>>>32-p|w<>>32-b}b=H[g>>2]<<2;g=b+c|0;H[g>>2]=H[g>>2]|H[b+H[l>>2]>>2];a=a+1|0;if(a>>>0>2]){continue}break}}i=0;a=H[h+16>>2];p:{if((a|0)==H[h+20>>2]){break p}while(1){f=H[h+28>>2];c=N(i,20)+a|0;k=H[c>>2];if(!I[k+84|0]){f=H[H[k+68>>2]+(f<<2)>>2]}if(K[k+80>>2]<=f>>>0){break p}m=H[d+92>>2]+(H[c+4>>2]<<2)|0;g=H[c+12>>2];b=m;q:{if(g>>>0>3){break q}a=0;b=H[h+12>>2];if(!H[c+16>>2]){break q}while(1){b=qa(b,m+(a<<2)|0,g);g=H[c+12>>2];b=b+g|0;a=a+1|0;if(a>>>0>2]){continue}break}b=H[h+12>>2]}a=H[k+40>>2];qa(H[H[k>>2]>>2]+N(a,f)|0,b,a);i=i+1|0;a=H[h+16>>2];if(i>>>0<(H[h+20>>2]-a|0)/20>>>0){continue}break}}H[h+28>>2]=H[h+28>>2]+1;H[d+8>>2]=H[d+8>>2]+1;n=n+1|0;if((j|0)!=(n|0)){continue}break}}a=H[e+28>>2];if(a){continue}break}c=1}H[e+28>>2]=0;f=H[e+16>>2];a=H[e+12>>2];b=f-a|0;if(b>>>0>=9){while(1){oa(H[a>>2]);a=H[e+12>>2]+4|0;H[e+12>>2]=a;f=H[e+16>>2];b=f-a|0;if(b>>>0>8){continue}break}}g=170;r:{switch((b>>>2|0)-1|0){case 1:g=341;case 0:H[e+24>>2]=g;break;default:break r}}s:{if((a|0)==(f|0)){break s}while(1){oa(H[a>>2]);a=a+4|0;if((f|0)!=(a|0)){continue}break}a=H[e+16>>2];b=H[e+12>>2];if((a|0)==(b|0)){break s}H[e+16>>2]=a+((b-a|0)+3&-4)}a=H[e+8>>2];if(a){oa(a)}ca=e+32|0;break b}sa();v()}sa();v()}i=c}return i}function xd(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0;i=H[b+8>>2];k=H[b+12>>2];n=H[b+20>>2];h=H[b+16>>2];f=h+4|0;n=f>>>0<4?n+1|0:n;a:{if((k|0)<=(n|0)&f>>>0>i>>>0|(k|0)<(n|0)){break a}h=h+H[b>>2]|0;H[a>>2]=I[h|0]|I[h+1|0]<<8|(I[h+2|0]<<16|I[h+3|0]<<24);h=H[b+20>>2];i=h;f=H[b+16>>2];h=f+4|0;k=h>>>0<4?i+1|0:i;H[b+16>>2]=h;H[b+20>>2]=k;if(K[a>>2]>32){break a}k=H[b+8>>2];n=H[b+12>>2];f=f+8|0;i=f>>>0<8?i+1|0:i;if(f>>>0>k>>>0&(i|0)>=(n|0)|(i|0)>(n|0)){break a}h=H[b>>2]+h|0;f=I[h|0]|I[h+1|0]<<8|(I[h+2|0]<<16|I[h+3|0]<<24);H[a+4>>2]=f;i=H[b+20>>2];h=H[b+16>>2]+4|0;i=h>>>0<4?i+1|0:i;H[b+16>>2]=h;H[b+20>>2]=i;if(!f){return 1}if(d>>>0>>0){break a}H[a+8>>2]=0;if(!ta(a+16|0,b)){break a}if(!ua(a+32|0,b)){break a}if(!ua(a+52|0,b)){break a}if(!ua(a+72|0,b)){break a}u=H[a+4>>2];h=c;b=0;c=0;e=ca-32|0;ca=e;f=a;a=H[a+12>>2];H[e+16>>2]=0;H[e+8>>2]=0;H[e+12>>2]=0;b:{c:{if(a){if(a>>>0>=1073741824){break c}d=a<<2;b=pa(d);H[e+8>>2]=b;c=b+d|0;H[e+16>>2]=c;ra(b,0,d);H[e+12>>2]=c}j=H[f+116>>2];d=H[j>>2];if(d){H[j+4>>2]=d;oa(d);c=H[e+12>>2];b=H[e+8>>2];a=H[f+12>>2]}H[j+4>>2]=c;H[j>>2]=b;H[j+8>>2]=H[e+16>>2];b=0;H[e+16>>2]=0;H[e+8>>2]=0;H[e+12>>2]=0;d:{if(a){if(a>>>0>=1073741824){break d}a=a<<2;g=pa(a);H[e+8>>2]=g;b=a+g|0;H[e+16>>2]=b;ra(g,0,a);H[e+12>>2]=b}c=H[f+128>>2];a=H[c>>2];if(a){H[c+4>>2]=a;oa(a);g=H[e+8>>2];b=H[e+12>>2]}H[c+4>>2]=b;H[c>>2]=g;H[c+8>>2]=H[e+16>>2];H[e+24>>2]=0;H[e+28>>2]=0;H[e+16>>2]=0;H[e+20>>2]=0;H[e+8>>2]=0;H[e+12>>2]=0;xa(e+8|0);b=H[e+24>>2]+H[e+28>>2]|0;a=(b>>>0)/341|0;a=H[H[e+12>>2]+(a<<2)>>2]+N(b-N(a,341)|0,12)|0;H[a+4>>2]=0;H[a+8>>2]=0;H[a>>2]=u;d=1;a=H[e+28>>2]+1|0;H[e+28>>2]=a;e:{if(!a){break e}n=f+16|0;while(1){i=H[e+12>>2];j=H[e+24>>2];d=a-1|0;c=j+d|0;b=(c>>>0)/341|0;b=H[i+(b<<2)>>2]+N(c-N(b,341)|0,12)|0;o=H[b+8>>2];c=H[b+4>>2];m=H[b>>2];H[e+28>>2]=d;b=H[e+16>>2];if((((b|0)!=(i|0)?N(b-i>>2,341)-1|0:0)-(a+j|0)|0)+1>>>0>=682){oa(H[b-4>>2]);H[e+16>>2]=H[e+16>>2]-4}if(m>>>0>u>>>0){d=0;break e}d=0;b=H[f+12>>2];a=(c|0)!=(b-1|0)?c+1|0:0;if(a>>>0>=b>>>0){break e}b=H[f+116>>2];p=N(o,12);r=b+p|0;j=H[f>>2];g=a<<2;k=p+H[f+128>>2]|0;c=H[g+H[k>>2]>>2];f:{if((j|0)==(c|0)){if(!m){break f}b=H[h+20>>2];c=H[h+16>>2];if((b|0)==(c|0)){a=H[f+8>>2];H[h+28>>2]=m+H[h+28>>2];H[f+8>>2]=a+m;break f}while(1){i=(b|0)==(c|0);a=b;j=0;b=c;g:{if(i){break g}while(1){g=H[h+28>>2];b=a;l=N(j,20)+c|0;k=H[l>>2];if(!I[k+84|0]){g=H[H[k+68>>2]+(g<<2)>>2]}if(K[k+80>>2]<=g>>>0){break g}i=H[r>>2]+(H[l+4>>2]<<2)|0;c=H[l+12>>2];b=i;h:{if(c>>>0>3){break h}a=0;b=H[h+12>>2];if(!H[l+16>>2]){break h}while(1){b=qa(b,i+(a<<2)|0,c);c=H[l+12>>2];b=b+c|0;a=a+1|0;if(a>>>0>2]){continue}break}b=H[h+12>>2]}a=H[k+40>>2];qa(H[H[k>>2]>>2]+N(a,g)|0,b,a);j=j+1|0;a=H[h+20>>2];b=a;c=H[h+16>>2];if(j>>>0<(b-c|0)/20>>>0){continue}break}}H[h+28>>2]=H[h+28>>2]+1;H[f+8>>2]=H[f+8>>2]+1;d=d+1|0;if((m|0)!=(d|0)){continue}break}break f}i:{j:{k:{l:{if(m>>>0<=2){c=H[f+104>>2];H[c>>2]=a;g=1;b=H[f+12>>2];if(b>>>0>1){break l}break i}if(K[f+8>>2]>K[f+4>>2]){break e}i=b;b=p+12|0;Aa(i+b|0,H[r>>2],H[r+4>>2]);b=g+H[b+H[f+116>>2]>>2]|0;H[b>>2]=H[b>>2]+(1<>2]=0;pc(n,Q(m)^31,e+4|0);c=m>>>1|0;b=H[e+4>>2];if(c>>>0>>0){break e}l=o+1|0;b=c-b|0;c=m-b|0;m:{if((c|0)==(b|0)){c=b;break m}k=H[f+84>>2];if((k|0)==H[f+76>>2]){break k}i=H[k>>2];j=H[f+88>>2];d=j+1|0;H[f+88>>2]=d;j=i&-2147483648>>>j;n:{if((d|0)==32){H[f+88>>2]=0;H[f+84>>2]=k+4;if(j){break n}break k}if(!j){break k}}}j=c;c=b;break j}while(1){a=(b-1|0)!=(a|0)?a+1|0:0;H[c+(g<<2)>>2]=a;b=H[f+12>>2];g=g+1|0;if(b>>>0>g>>>0){continue}break}break i}j=b}k=H[f+128>>2];i=k+p|0;d=H[i>>2];b=d+g|0;H[b>>2]=H[b>>2]+1;Aa(k+N(l,12)|0,d,H[i+4>>2]);if(c){b=H[e+28>>2]+H[e+24>>2]|0;d=H[e+16>>2];g=H[e+12>>2];if((b|0)==(((d|0)!=(g|0)?N(d-g>>2,341)-1|0:0)|0)){xa(e+8|0);g=H[e+12>>2];b=H[e+24>>2]+H[e+28>>2]|0}d=(b>>>0)/341|0;b=H[(d<<2)+g>>2]+N(b-N(d,341)|0,12)|0;H[b+8>>2]=o;H[b+4>>2]=a;H[b>>2]=c;H[e+28>>2]=H[e+28>>2]+1}if(!j){break f}b=H[e+28>>2]+H[e+24>>2]|0;c=H[e+16>>2];g=H[e+12>>2];if((b|0)==(((c|0)!=(g|0)?N(c-g>>2,341)-1|0:0)|0)){xa(e+8|0);g=H[e+12>>2];b=H[e+24>>2]+H[e+28>>2]|0}c=(b>>>0)/341|0;b=H[(c<<2)+g>>2]+N(b-N(c,341)|0,12)|0;H[b+8>>2]=l;H[b+4>>2]=a;H[b>>2]=j;H[e+28>>2]=H[e+28>>2]+1;break f}s=0;if(!m){break f}while(1){if(H[f+12>>2]){w=H[f+36>>2];i=H[k>>2];t=H[f+92>>2];j=H[f+104>>2];a=0;while(1){o=(a<<2)+j|0;H[t+(H[o>>2]<<2)>>2]=0;d=H[f>>2];c=H[o>>2]<<2;b=H[c+i>>2];o:{if((d|0)==(b|0)){break o}p=c+t|0;q=d-b|0;g=H[f+48>>2];d=32-g|0;if((q|0)<=(d|0)){c=H[f+44>>2];if((c|0)==(w|0)){d=0;break e}H[p>>2]=H[c>>2]<>>32-q;b=q+H[f+48>>2]|0;H[f+48>>2]=b;if((b|0)!=32){break o}H[f+48>>2]=0;H[f+44>>2]=c+4;break o}l=H[f+44>>2];b=l+4|0;if((w|0)==(b|0)){d=0;break e}c=H[l>>2];H[f+44>>2]=b;b=q-d|0;H[f+48>>2]=b;H[p>>2]=H[l+4>>2]>>>32-b|c<>>32-q}c=H[o>>2]<<2;b=c+t|0;H[b>>2]=H[b>>2]|H[c+H[r>>2]>>2];a=a+1|0;if(a>>>0>2]){continue}break}}j=0;a=H[h+16>>2];p:{if((a|0)==H[h+20>>2]){break p}while(1){g=H[h+28>>2];l=N(j,20)+a|0;i=H[l>>2];if(!I[i+84|0]){g=H[H[i+68>>2]+(g<<2)>>2]}if(K[i+80>>2]<=g>>>0){break p}d=H[f+92>>2]+(H[l+4>>2]<<2)|0;c=H[l+12>>2];b=d;q:{if(c>>>0>3){break q}a=0;b=H[h+12>>2];if(!H[l+16>>2]){break q}while(1){b=qa(b,d+(a<<2)|0,c);c=H[l+12>>2];b=b+c|0;a=a+1|0;if(a>>>0>2]){continue}break}b=H[h+12>>2]}a=H[i+40>>2];qa(H[H[i>>2]>>2]+N(a,g)|0,b,a);j=j+1|0;a=H[h+16>>2];if(j>>>0<(H[h+20>>2]-a|0)/20>>>0){continue}break}}H[h+28>>2]=H[h+28>>2]+1;H[f+8>>2]=H[f+8>>2]+1;s=s+1|0;if((m|0)!=(s|0)){continue}break}}a=H[e+28>>2];if(a){continue}break}d=1}H[e+28>>2]=0;g=H[e+16>>2];a=H[e+12>>2];b=g-a|0;if(b>>>0>=9){while(1){oa(H[a>>2]);a=H[e+12>>2]+4|0;H[e+12>>2]=a;g=H[e+16>>2];b=g-a|0;if(b>>>0>8){continue}break}}c=170;r:{switch((b>>>2|0)-1|0){case 1:c=341;case 0:H[e+24>>2]=c;break;default:break r}}s:{if((a|0)==(g|0)){break s}while(1){oa(H[a>>2]);a=a+4|0;if((g|0)!=(a|0)){continue}break}b=H[e+16>>2];a=H[e+12>>2];if((b|0)==(a|0)){break s}H[e+16>>2]=b+((a-b|0)+3&-4)}a=H[e+8>>2];if(a){oa(a)}ca=e+32|0;j=d;break b}sa();v()}sa();v()}}return j}function $c(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0;h=ca-32|0;ca=h;g=H[H[a+4>>2]+44>>2];c=H[a+8>>2];d=H[c>>2];c=H[c+4>>2];H[h+24>>2]=0;H[h+16>>2]=0;H[h+20>>2]=0;d=(c-d>>2>>>0)/3|0;c=H[g+96>>2];f=(H[g+100>>2]-c|0)/12|0;a:{if(d>>>0>f>>>0){e=d-f|0;i=H[g+104>>2];c=H[g+100>>2];if(e>>>0<=(i-c|0)/12>>>0){b:{if(!e){break b}d=c;f=N(e,12)-12|0;i=((f>>>0)/12|0)+1&3;if(i){while(1){l=H[h+20>>2];H[d>>2]=H[h+16>>2];H[d+4>>2]=l;H[d+8>>2]=H[h+24>>2];d=d+12|0;j=j+1|0;if((i|0)!=(j|0)){continue}break}}c=N(e,12)+c|0;if(f>>>0<36){break b}while(1){f=H[h+20>>2];H[d>>2]=H[h+16>>2];H[d+4>>2]=f;H[d+8>>2]=H[h+24>>2];H[d+20>>2]=H[h+24>>2];f=H[h+20>>2];H[d+12>>2]=H[h+16>>2];H[d+16>>2]=f;H[d+32>>2]=H[h+24>>2];f=H[h+20>>2];H[d+24>>2]=H[h+16>>2];H[d+28>>2]=f;f=H[h+20>>2];H[d+36>>2]=H[h+16>>2];H[d+40>>2]=f;H[d+44>>2]=H[h+24>>2];d=d+48|0;if((d|0)!=(c|0)){continue}break}}H[g+100>>2]=c;break a}c:{f=H[g+96>>2];n=(c-f|0)/12|0;d=n+e|0;if(d>>>0<357913942){f=(i-f|0)/12|0;i=f<<1;i=f>>>0>=178956970?357913941:d>>>0>>0?i:d;if(i){if(i>>>0>=357913942){break c}l=pa(N(i,12))}f=N(n,12)+l|0;d=f;e=N(e,12);n=e-12|0;q=((n>>>0)/12|0)+1&3;if(q){while(1){r=H[h+20>>2];H[d>>2]=H[h+16>>2];H[d+4>>2]=r;H[d+8>>2]=H[h+24>>2];d=d+12|0;j=j+1|0;if((q|0)!=(j|0)){continue}break}}e=e+f|0;if(n>>>0>=36){while(1){j=H[h+20>>2];H[d>>2]=H[h+16>>2];H[d+4>>2]=j;H[d+8>>2]=H[h+24>>2];H[d+20>>2]=H[h+24>>2];j=H[h+20>>2];H[d+12>>2]=H[h+16>>2];H[d+16>>2]=j;H[d+32>>2]=H[h+24>>2];j=H[h+20>>2];H[d+24>>2]=H[h+16>>2];H[d+28>>2]=j;j=H[h+20>>2];H[d+36>>2]=H[h+16>>2];H[d+40>>2]=j;H[d+44>>2]=H[h+24>>2];d=d+48|0;if((e|0)!=(d|0)){continue}break}}j=H[g+96>>2];if((j|0)!=(c|0)){while(1){c=c-12|0;n=H[c+4>>2];f=f-12|0;d=f;H[d>>2]=H[c>>2];H[d+4>>2]=n;H[d+8>>2]=H[c+8>>2];if((c|0)!=(j|0)){continue}break}c=H[g+96>>2]}H[g+104>>2]=N(i,12)+l;H[g+100>>2]=e;H[g+96>>2]=f;if(c){oa(c)}break a}sa();v()}wa();v()}if(d>>>0>=f>>>0){break a}H[g+100>>2]=c+N(d,12)}d:{if(H[a+216>>2]==H[a+220>>2]){j=H[a+4>>2];c=H[j+44>>2];d=H[c+100>>2];f=H[c+96>>2];if((d|0)!=(f|0)){c=(d-f|0)/12|0;o=c>>>0<=1?1:c;c=0;while(1){d=H[a+8>>2];i=f+N(c,12)|0;g=N(c,3);e:{f:{if((g|0)==-1){e=H[(H[d>>2]+(g<<2)|0)+4>>2];k=-1;g=1;break f}e=-1;k=H[H[d>>2]+(g<<2)>>2];l=g+1|0;if((l|0)==-1){g=0;break f}e=H[H[d>>2]+(l<<2)>>2];g=g+2|0;m=-1;if((g|0)==-1){break e}}m=H[H[d>>2]+(g<<2)>>2]}H[i+8>>2]=m;H[i+4>>2]=e;H[i>>2]=k;c=c+1|0;if((o|0)!=(c|0)){continue}break}}H[H[j+4>>2]+80>>2]=b;c=1;break d}d=0;H[h+24>>2]=0;H[h+16>>2]=0;H[h+20>>2]=0;l=H[a+8>>2];c=H[l>>2];g=H[l+4>>2];H[h+8>>2]=0;H[h>>2]=0;H[h+4>>2]=0;b=0;g:{h:{i:{j:{k:{l:{if((c|0)!=(g|0)){c=g-c|0;if((c|0)<0){break l}b=pa(c);H[h>>2]=b;H[h+8>>2]=(c&-4)+b;u=h,w=ra(b,0,c)+c|0,H[u+4>>2]=w}c=H[l+24>>2];if((H[l+28>>2]-c|0)<4){break h}f=0;while(1){g=H[(p<<2)+c>>2];m:{if((g|0)==-1){break m}n:{if(H[H[a+120>>2]+(p>>>3&536870908)>>2]>>>p&1){break n}n=H[a+216>>2];c=H[a+220>>2];if((n|0)==(c|0)){break n}e=g+2|0;i=(g>>>0)%3|0;q=i?g-1|0:e;c=(c-n|0)/144|0;r=c>>>0<=1?1:c;j=0;t=(i|0)!=0|(e|0)!=-1;while(1){s=g<<2;i=N(j,144)+n|0;c=H[s+H[H[i+68>>2]>>2]>>2];o:{if(!(H[H[i+16>>2]+(c>>>3&536870908)>>2]>>>c&1)){break o}c=-1;p:{if(!t){break p}e=H[H[l+12>>2]+(q<<2)>>2];c=-1;if((e|0)==-1){break p}c=e-1|0;if((e>>>0)%3|0){break p}c=e+2|0}if((g|0)==(c|0)){break o}e=s;s=H[i+32>>2];i=H[e+s>>2];while(1){e=0;if((c|0)==-1){break g}if((i|0)!=H[s+(c<<2)>>2]){g=c;break n}q:{r:{if((c>>>0)%3|0){e=c-1|0;break r}e=c+2|0;m=-1;if((e|0)==-1){break q}}c=H[H[l+12>>2]+(e<<2)>>2];m=-1;if((c|0)==-1){break q}m=c-1|0;if((c>>>0)%3|0){break q}m=c+2|0}c=m;if((g|0)!=(c|0)){continue}break}}j=j+1|0;if((r|0)!=(j|0)){continue}break}}i=k-f|0;e=i>>2;H[(g<<2)+b>>2]=e;s:{if(k>>>0>>0){H[k>>2]=g;k=k+4|0;H[h+20>>2]=k;break s}c=e+1|0;if(c>>>0>=1073741824){break k}d=o-f|0;k=d>>>1|0;c=d>>>0>=2147483644?1073741823:c>>>0>>0?k:c;if(c){if(c>>>0>=1073741824){break j}d=pa(c<<2)}else{d=0}e=d+(e<<2)|0;H[e>>2]=g;m=c<<2;c=va(d,f,i);o=m+c|0;H[h+24>>2]=o;k=e+4|0;H[h+20>>2]=k;H[h+16>>2]=c;if(f){oa(f);l=H[a+8>>2]}f=c}if((g|0)==-1){break m}t:{if((g>>>0)%3|0){c=g-1|0;break t}c=g+2|0;if((c|0)==-1){break m}}c=H[H[l+12>>2]+(c<<2)>>2];if((c|0)==-1){break m}c=c+((c>>>0)%3|0?-1:2)|0;if((c|0)==-1){break m}e=g;if((c|0)==(g|0)){break m}while(1){i=c;u:{v:{c=H[a+220>>2];j=H[a+216>>2];if((c|0)==(j|0)){break v}c=(c-j|0)/144|0;n=c>>>0<=1?1:c;c=0;while(1){q=H[(j+N(c,144)|0)+32>>2];r=i<<2;if(H[q+r>>2]==H[q+(e<<2)>>2]){c=c+1|0;if((n|0)!=(c|0)){continue}break v}break}j=k-d|0;e=j>>2;H[b+r>>2]=e;if(k>>>0>>0){H[k>>2]=i;k=k+4|0;H[h+20>>2]=k;f=d;break u}c=e+1|0;if(c>>>0>=1073741824){break i}f=o-d|0;k=f>>>1|0;c=f>>>0>=2147483644?1073741823:c>>>0>>0?k:c;if(c){if(c>>>0>=1073741824){break j}f=pa(c<<2)}else{f=0}e=f+(e<<2)|0;H[e>>2]=i;m=c<<2;c=va(f,d,j);o=m+c|0;H[h+24>>2]=o;k=e+4|0;H[h+20>>2]=k;H[h+16>>2]=c;if(!d){d=c;break u}oa(d);l=H[a+8>>2];d=c;break u}H[(i<<2)+b>>2]=H[(e<<2)+b>>2]}if((i|0)==-1){break m}w:{if((i>>>0)%3|0){c=i-1|0;break w}c=i+2|0;if((c|0)==-1){break m}}c=H[H[l+12>>2]+(c<<2)>>2];if((c|0)==-1){break m}c=c+((c>>>0)%3|0?-1:2)|0;if((c|0)==-1){break m}e=i;if((c|0)!=(g|0)){continue}break}}p=p+1|0;c=H[l+24>>2];if((p|0)>2]-c>>2){continue}break}break h}sa();v()}sa();v()}wa();v()}sa();v()}i=H[a+4>>2];a=H[i+44>>2];c=H[a+100>>2];a=H[a+96>>2];x:{if((c|0)==(a|0)){break x}g=(c-a|0)/12|0;f=g>>>0<=1?1:g;l=f&1;c=0;if(g>>>0>=2){j=f&-2;g=0;while(1){e=N(c,12);f=e+b|0;o=H[f>>2];p=H[f+4>>2];e=a+e|0;H[e+8>>2]=H[f+8>>2];H[e>>2]=o;H[e+4>>2]=p;e=N(c|1,12);f=e+b|0;o=H[f>>2];p=H[f+4>>2];e=a+e|0;H[e+8>>2]=H[f+8>>2];H[e>>2]=o;H[e+4>>2]=p;c=c+2|0;g=g+2|0;if((j|0)!=(g|0)){continue}break}}if(!l){break x}g=N(c,12);c=g+b|0;f=H[c>>2];e=H[c+4>>2];a=a+g|0;H[a+8>>2]=H[c+8>>2];H[a>>2]=f;H[a+4>>2]=e}H[H[i+4>>2]+80>>2]=k-d>>2;e=1}c=e;if(b){oa(b)}if(!d){break d}H[h+20>>2]=d;oa(d)}ca=h+32|0;return c}function Fj(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,I=0,J=0,K=0,L=0,M=0,O=0,P=0;g=ca+-64|0;ca=g;H[a+8>>2]=e;y=a+32|0;f=H[y>>2];d=H[a+36>>2]-f>>2;a:{b:{if(d>>>0>>0){ya(y,e-d|0);H[g+56>>2]=0;H[g+60>>2]=0;H[g+48>>2]=0;H[g+52>>2]=0;H[g+40>>2]=0;H[g+44>>2]=0;H[g+32>>2]=0;H[g+36>>2]=0;H[g+24>>2]=0;H[g+28>>2]=0;H[g+16>>2]=0;H[g+20>>2]=0;H[g>>2]=0;break b}if(d>>>0>e>>>0){H[a+36>>2]=f+(e<<2)}H[g+56>>2]=0;H[g+60>>2]=0;H[g+48>>2]=0;H[g+52>>2]=0;H[g+40>>2]=0;H[g+44>>2]=0;H[g+32>>2]=0;H[g+36>>2]=0;H[g+24>>2]=0;H[g+28>>2]=0;H[g+16>>2]=0;H[g+20>>2]=0;H[g>>2]=0;d=0;if(!e){break a}}Pa(g+16|0,e,g);h=H[g+28>>2];d=H[g+32>>2]}H[g>>2]=0;d=d-h>>2;c:{if(d>>>0>=e>>>0){if(d>>>0<=e>>>0){break c}H[g+32>>2]=(e<<2)+h;break c}Pa(g+16|12,e-d|0,g)}H[g>>2]=0;f=H[g+40>>2];d=H[g+44>>2]-f>>2;d:{if(d>>>0>=e>>>0){if(d>>>0<=e>>>0){break d}H[g+44>>2]=f+(e<<2);break d}Pa(g+40|0,e-d|0,g)}H[g>>2]=0;f=H[g+52>>2];d=H[g+56>>2]-f>>2;e:{if(d>>>0>=e>>>0){if(d>>>0<=e>>>0){break e}H[g+56>>2]=f+(e<<2);break e}Pa(g+52|0,e-d|0,g)}f:{if(H[a+8>>2]<=0){break f}i=H[g+16>>2];j=H[a+32>>2];h=0;while(1){d=h<<2;f=H[d+i>>2];m=H[a+16>>2];g:{if((f|0)>(m|0)){H[d+j>>2]=m;break g}d=d+j|0;m=H[a+12>>2];if((m|0)>(f|0)){H[d>>2]=m;break g}H[d>>2]=f}h=h+1|0;d=H[a+8>>2];if((h|0)<(d|0)){continue}break}if((d|0)<=0){break f}d=0;while(1){i=d<<2;f=i+c|0;i=H[b+i>>2]+H[j+i>>2]|0;H[f>>2]=i;h:{if((i|0)>H[a+16>>2]){i=i-H[a+20>>2]|0}else{if((i|0)>=H[a+12>>2]){break h}i=i+H[a+20>>2]|0}H[f>>2]=i}d=d+1|0;if((d|0)>2]){continue}break}}G=H[a+52>>2];t=H[a+48>>2];z=pa(16);d=z;H[d>>2]=0;H[d+4>>2]=0;H[d+8>>2]=0;H[d+12>>2]=0;H[g+8>>2]=0;H[g>>2]=0;H[g+4>>2]=0;i:{if(e){if(e>>>0>=1073741824){break i}d=e<<2;r=pa(d);H[g>>2]=r;H[g+8>>2]=d+r;ra(r,0,d)}A=1;d=H[a+56>>2];B=H[d>>2];d=H[d+4>>2]-B|0;j:{if((d|0)<8){break j}w=d>>2;I=(w|0)<=2?2:w;J=w>>>0<=1?1:w;C=e&-2;D=e&1;K=e&-4;E=e&3;F=e-1|0;L=e<<2;M=e>>>0<4;A=0;m=1;while(1){k:{l:{m:{n:{if((m|0)!=(J|0)){o:{p:{f=H[(m<<2)+B>>2];if((f|0)==-1){break p}k=1;d=f+2|0;j=(f>>>0)%3|0;x=j?f-1|0:d;s=1<>2];O=n+(x>>>3&536870908)|0;i=0;P=(j|0)!=0|(d|0)!=-1;d=f;q:{while(1){r:{if(H[n+(d>>>3&536870908)>>2]>>>d&1){break r}j=H[H[H[t+64>>2]+12>>2]+(d<<2)>>2];if((j|0)==-1){break r}l=H[G>>2];h=H[t+28>>2];p=H[l+(H[h+(j<<2)>>2]<<2)>>2];if((p|0)>=(m|0)){break r}q=j+1|0;q=H[l+(H[h+(((q>>>0)%3|0?q:j-2|0)<<2)>>2]<<2)>>2];if((q|0)>=(m|0)){break r}h=H[l+(H[h+(j+((j>>>0)%3|0?-1:2)<<2)>>2]<<2)>>2];if((h|0)>=(m|0)){break r}s:{if(!e){break s}j=H[(g+16|0)+N(i,12)>>2];l=N(e,h);q=N(e,q);p=N(e,p);h=0;o=0;if(F){while(1){H[j+(h<<2)>>2]=(H[(h+l<<2)+c>>2]+H[(h+q<<2)+c>>2]|0)-H[(h+p<<2)+c>>2];u=h|1;H[j+(u<<2)>>2]=(H[(l+u<<2)+c>>2]+H[(q+u<<2)+c>>2]|0)-H[(p+u<<2)+c>>2];h=h+2|0;o=o+2|0;if((C|0)!=(o|0)){continue}break}}if(!D){break s}H[j+(h<<2)>>2]=(H[(h+l<<2)+c>>2]+H[(h+q<<2)+c>>2]|0)-H[(h+p<<2)+c>>2]}j=4;i=i+1|0;if((i|0)==4){break q}}t:{if(k&1){h=d-2|0;j=d+1|0;d=-1;j=(j>>>0)%3|0?j:h;if((j|0)==-1|H[n+(j>>>3&536870908)>>2]>>>j&1){break t}j=H[H[H[t+64>>2]+12>>2]+(j<<2)>>2];if((j|0)==-1){break t}d=j+1|0;d=(d>>>0)%3|0?d:j-2|0;break t}u:{if((d>>>0)%3|0){h=d-1|0;break u}h=d+2|0;d=-1;if((h|0)==-1){break t}}d=-1;if(H[n+(h>>>3&536870908)>>2]>>>h&1){break t}j=H[H[H[t+64>>2]+12>>2]+(h<<2)>>2];if((j|0)==-1){break t}if((j>>>0)%3|0){d=j-1|0;break t}d=j+2|0}v:{if((d|0)==(f|0)){break v}if((d|0)==-1&k){if(!P|s&H[O>>2]){break v}d=H[H[H[t+64>>2]+12>>2]+(x<<2)>>2];if((d|0)==-1){break v}k=0;d=(d>>>0)%3|0?d-1|0:d+2|0}if((d|0)!=-1){continue}}break}j=i;if((j|0)<=0){break p}}if(e){ra(r,0,L)}d=j-1|0;q=(d<<2)+z|0;d=N(d,12)+a|0;u=d;x=H[d- -64>>2];k=0;d=H[g>>2];f=0;while(1){i=H[q>>2];H[q>>2]=i+1;if(i>>>0>=x>>>0){break j}w:{if(H[H[u+60>>2]+(i>>>3&536870908)>>2]>>>i&1){break w}f=f+1|0;if(!e){break w}n=H[(g+16|0)+N(k,12)>>2];i=0;h=0;p=0;if(!M){while(1){l=h<<2;o=l+d|0;H[o>>2]=H[l+n>>2]+H[o>>2];o=l|4;s=o+d|0;H[s>>2]=H[n+o>>2]+H[s>>2];o=l|8;s=o+d|0;H[s>>2]=H[n+o>>2]+H[s>>2];l=l|12;o=l+d|0;H[o>>2]=H[l+n>>2]+H[o>>2];h=h+4|0;p=p+4|0;if((K|0)!=(p|0)){continue}break}}if(!E){break w}while(1){l=h<<2;p=l+d|0;H[p>>2]=H[l+n>>2]+H[p>>2];h=h+1|0;i=i+1|0;if((E|0)!=(i|0)){continue}break}}k=k+1|0;if((k|0)!=(j|0)){continue}break}i=N(e,m);if(!f){break o}if(!e){break l}h=0;d=0;if(F){break n}break m}i=N(e,m)}if(H[a+8>>2]<=0){break k}k=(N(m-1|0,e)<<2)+c|0;j=H[y>>2];h=0;while(1){d=h<<2;f=H[d+k>>2];n=H[a+16>>2];x:{if((f|0)>(n|0)){H[d+j>>2]=n;break x}d=d+j|0;n=H[a+12>>2];if((n|0)>(f|0)){H[d>>2]=n;break x}H[d>>2]=f}h=h+1|0;f=H[a+8>>2];if((h|0)<(f|0)){continue}break}d=0;if((f|0)<=0){break k}f=i<<2;h=f+c|0;k=b+f|0;while(1){i=d<<2;f=i+h|0;i=H[i+k>>2]+H[j+i>>2]|0;H[f>>2]=i;y:{if((i|0)>H[a+16>>2]){i=i-H[a+20>>2]|0}else{if((i|0)>=H[a+12>>2]){break y}i=i+H[a+20>>2]|0}H[f>>2]=i}d=d+1|0;if((d|0)>2]){continue}break}break k}Ca();v()}while(1){j=h<<2;k=j+r|0;H[k>>2]=H[k>>2]/(f|0);j=(j|4)+r|0;H[j>>2]=H[j>>2]/(f|0);h=h+2|0;d=d+2|0;if((C|0)!=(d|0)){continue}break}}if(!D){break l}d=(h<<2)+r|0;H[d>>2]=H[d>>2]/(f|0)}if(H[a+8>>2]<=0){break k}j=H[y>>2];h=0;while(1){d=h<<2;f=H[d+r>>2];k=H[a+16>>2];z:{if((f|0)>(k|0)){H[d+j>>2]=k;break z}d=d+j|0;k=H[a+12>>2];if((k|0)>(f|0)){H[d>>2]=k;break z}H[d>>2]=f}h=h+1|0;f=H[a+8>>2];if((h|0)<(f|0)){continue}break}d=0;if((f|0)<=0){break k}f=i<<2;h=f+c|0;k=b+f|0;while(1){i=d<<2;f=i+h|0;i=H[i+k>>2]+H[j+i>>2]|0;H[f>>2]=i;A:{if((i|0)>H[a+16>>2]){i=i-H[a+20>>2]|0}else{if((i|0)>=H[a+12>>2]){break A}i=i+H[a+20>>2]|0}H[f>>2]=i}d=d+1|0;if((d|0)>2]){continue}break}}m=m+1|0;A=(w|0)<=(m|0);if((m|0)!=(I|0)){continue}break}}a=H[g>>2];if(a){oa(a)}oa(z);a=H[g+52>>2];if(a){H[g+56>>2]=a;oa(a)}a=H[g+40>>2];if(a){H[g+44>>2]=a;oa(a)}a=H[g+28>>2];if(a){H[g+32>>2]=a;oa(a)}a=H[g+16>>2];if(a){H[g+20>>2]=a;oa(a)}ca=g- -64|0;return A|0}sa();v()}function oj(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,I=0,J=0,K=0,L=0,M=0;h=ca+-64|0;ca=h;H[a+8>>2]=e;x=a+32|0;f=H[x>>2];d=H[a+36>>2]-f>>2;a:{b:{if(d>>>0>>0){ya(x,e-d|0);H[h+56>>2]=0;H[h+60>>2]=0;H[h+48>>2]=0;H[h+52>>2]=0;H[h+40>>2]=0;H[h+44>>2]=0;H[h+32>>2]=0;H[h+36>>2]=0;H[h+24>>2]=0;H[h+28>>2]=0;H[h+16>>2]=0;H[h+20>>2]=0;H[h>>2]=0;break b}if(d>>>0>e>>>0){H[a+36>>2]=f+(e<<2)}H[h+56>>2]=0;H[h+60>>2]=0;H[h+48>>2]=0;H[h+52>>2]=0;H[h+40>>2]=0;H[h+44>>2]=0;H[h+32>>2]=0;H[h+36>>2]=0;H[h+24>>2]=0;H[h+28>>2]=0;H[h+16>>2]=0;H[h+20>>2]=0;H[h>>2]=0;d=0;if(!e){break a}}Pa(h+16|0,e,h);i=H[h+28>>2];d=H[h+32>>2]}H[h>>2]=0;d=d-i>>2;c:{if(d>>>0>=e>>>0){if(d>>>0<=e>>>0){break c}H[h+32>>2]=(e<<2)+i;break c}Pa(h+16|12,e-d|0,h)}H[h>>2]=0;f=H[h+40>>2];d=H[h+44>>2]-f>>2;d:{if(d>>>0>=e>>>0){if(d>>>0<=e>>>0){break d}H[h+44>>2]=f+(e<<2);break d}Pa(h+40|0,e-d|0,h)}H[h>>2]=0;f=H[h+52>>2];d=H[h+56>>2]-f>>2;e:{if(d>>>0>=e>>>0){if(d>>>0<=e>>>0){break e}H[h+56>>2]=f+(e<<2);break e}Pa(h+52|0,e-d|0,h)}f:{if(H[a+8>>2]<=0){break f}g=H[h+16>>2];j=H[a+32>>2];i=0;while(1){d=i<<2;f=H[d+g>>2];m=H[a+16>>2];g:{if((f|0)>(m|0)){H[d+j>>2]=m;break g}d=d+j|0;m=H[a+12>>2];if((m|0)>(f|0)){H[d>>2]=m;break g}H[d>>2]=f}i=i+1|0;d=H[a+8>>2];if((i|0)<(d|0)){continue}break}if((d|0)<=0){break f}d=0;while(1){g=d<<2;f=g+c|0;g=H[b+g>>2]+H[g+j>>2]|0;H[f>>2]=g;h:{if((g|0)>H[a+16>>2]){g=g-H[a+20>>2]|0}else{if((g|0)>=H[a+12>>2]){break h}g=g+H[a+20>>2]|0}H[f>>2]=g}d=d+1|0;if((d|0)>2]){continue}break}}G=H[a+52>>2];A=H[a+48>>2];y=pa(16);d=y;H[d>>2]=0;H[d+4>>2]=0;H[d+8>>2]=0;H[d+12>>2]=0;H[h+8>>2]=0;H[h>>2]=0;H[h+4>>2]=0;i:{if(e){if(e>>>0>=1073741824){break i}d=e<<2;t=pa(d);H[h>>2]=t;H[h+8>>2]=d+t;ra(t,0,d)}z=1;d=H[a+56>>2];B=H[d>>2];d=H[d+4>>2]-B|0;j:{if((d|0)<8){break j}w=d>>2;I=(w|0)<=2?2:w;J=w>>>0<=1?1:w;C=e&-2;D=e&1;K=e&-4;E=e&3;F=e-1|0;L=e<<2;M=e>>>0<4;z=0;m=1;while(1){k:{l:{m:{n:{if((m|0)!=(J|0)){o:{p:{f=H[(m<<2)+B>>2];if((f|0)==-1){break p}n=H[A+12>>2];d=f+2|0;g=(f>>>0)%3|0;q=n+((g?f-1|0:d)<<2)|0;j=0;u=(g|0)!=0|(d|0)!=-1;k=1;d=f;q:{while(1){g=H[n+(d<<2)>>2];r:{if((g|0)==-1){break r}l=-1;p=H[G>>2];r=H[A>>2];i=p+(H[r+(g<<2)>>2]<<2)|0;o=g+1|0;o=(o>>>0)%3|0?o:g-2|0;if((o|0)!=-1){l=H[r+(o<<2)>>2]}o=H[i>>2];s:{t:{if((g>>>0)%3|0){i=g-1|0;break t}i=g+2|0;s=-1;if((i|0)==-1){break s}}s=H[r+(i<<2)>>2]}if((m|0)<=(o|0)){break r}i=H[p+(l<<2)>>2];if((i|0)>=(m|0)){break r}l=H[p+(s<<2)>>2];if((l|0)>=(m|0)){break r}g=H[(h+16|0)+N(j,12)>>2];u:{if(!e){break u}l=N(e,l);r=N(e,i);p=N(e,o);i=0;s=0;if(F){while(1){H[g+(i<<2)>>2]=(H[(i+l<<2)+c>>2]+H[(i+r<<2)+c>>2]|0)-H[(i+p<<2)+c>>2];o=i|1;H[g+(o<<2)>>2]=(H[(l+o<<2)+c>>2]+H[(o+r<<2)+c>>2]|0)-H[(o+p<<2)+c>>2];i=i+2|0;s=s+2|0;if((C|0)!=(s|0)){continue}break}}if(!D){break u}H[g+(i<<2)>>2]=(H[(i+l<<2)+c>>2]+H[(i+r<<2)+c>>2]|0)-H[(i+p<<2)+c>>2]}g=4;j=j+1|0;if((j|0)==4){break q}}v:{if(k&1){i=d+1|0;d=(i>>>0)%3|0?i:d-2|0;g=-1;if((d|0)==-1){break v}d=H[n+(d<<2)>>2];g=-1;if((d|0)==-1){break v}g=d+1|0;g=(g>>>0)%3|0?g:d-2|0;break v}w:{if((d>>>0)%3|0){i=d-1|0;break w}i=d+2|0;g=-1;if((i|0)==-1){break v}}d=H[n+(i<<2)>>2];g=-1;if((d|0)==-1){break v}g=d-1|0;if((d>>>0)%3|0){break v}g=d+2|0}d=g;x:{if((f|0)==(d|0)){break x}if((d|0)==-1&k){if(!u){break x}d=H[q>>2];if((d|0)==-1){break x}k=0;d=(d>>>0)%3|0?d-1|0:d+2|0}if((d|0)!=-1){continue}}break}g=j;if((g|0)<=0){break p}}if(e){ra(t,0,L)}d=g-1|0;r=(d<<2)+y|0;d=N(d,12)+a|0;o=d;s=H[d- -64>>2];k=0;d=H[h>>2];f=0;while(1){j=H[r>>2];H[r>>2]=j+1;if(j>>>0>=s>>>0){break j}y:{if(H[H[o+60>>2]+(j>>>3&536870908)>>2]>>>j&1){break y}f=f+1|0;if(!e){break y}j=H[(h+16|0)+N(k,12)>>2];l=0;i=0;p=0;if(!M){while(1){n=i<<2;q=n+d|0;H[q>>2]=H[j+n>>2]+H[q>>2];q=n|4;u=q+d|0;H[u>>2]=H[j+q>>2]+H[u>>2];q=n|8;u=q+d|0;H[u>>2]=H[j+q>>2]+H[u>>2];n=n|12;q=n+d|0;H[q>>2]=H[j+n>>2]+H[q>>2];i=i+4|0;p=p+4|0;if((K|0)!=(p|0)){continue}break}}if(!E){break y}while(1){n=i<<2;p=n+d|0;H[p>>2]=H[j+n>>2]+H[p>>2];i=i+1|0;l=l+1|0;if((E|0)!=(l|0)){continue}break}}k=k+1|0;if((k|0)!=(g|0)){continue}break}g=N(e,m);if(!f){break o}if(!e){break l}i=0;d=0;if(F){break n}break m}g=N(e,m)}if(H[a+8>>2]<=0){break k}k=(N(m-1|0,e)<<2)+c|0;j=H[x>>2];i=0;while(1){d=i<<2;f=H[d+k>>2];l=H[a+16>>2];z:{if((f|0)>(l|0)){H[d+j>>2]=l;break z}d=d+j|0;l=H[a+12>>2];if((l|0)>(f|0)){H[d>>2]=l;break z}H[d>>2]=f}i=i+1|0;f=H[a+8>>2];if((i|0)<(f|0)){continue}break}d=0;if((f|0)<=0){break k}f=g<<2;i=f+c|0;k=b+f|0;while(1){g=d<<2;f=g+i|0;g=H[g+k>>2]+H[g+j>>2]|0;H[f>>2]=g;A:{if((g|0)>H[a+16>>2]){g=g-H[a+20>>2]|0}else{if((g|0)>=H[a+12>>2]){break A}g=g+H[a+20>>2]|0}H[f>>2]=g}d=d+1|0;if((d|0)>2]){continue}break}break k}Ca();v()}while(1){j=i<<2;k=j+t|0;H[k>>2]=H[k>>2]/(f|0);j=(j|4)+t|0;H[j>>2]=H[j>>2]/(f|0);i=i+2|0;d=d+2|0;if((C|0)!=(d|0)){continue}break}}if(!D){break l}d=(i<<2)+t|0;H[d>>2]=H[d>>2]/(f|0)}if(H[a+8>>2]<=0){break k}j=H[x>>2];i=0;while(1){d=i<<2;f=H[d+t>>2];k=H[a+16>>2];B:{if((f|0)>(k|0)){H[d+j>>2]=k;break B}d=d+j|0;k=H[a+12>>2];if((k|0)>(f|0)){H[d>>2]=k;break B}H[d>>2]=f}i=i+1|0;f=H[a+8>>2];if((i|0)<(f|0)){continue}break}d=0;if((f|0)<=0){break k}f=g<<2;i=f+c|0;k=b+f|0;while(1){g=d<<2;f=g+i|0;g=H[g+k>>2]+H[g+j>>2]|0;H[f>>2]=g;C:{if((g|0)>H[a+16>>2]){g=g-H[a+20>>2]|0}else{if((g|0)>=H[a+12>>2]){break C}g=g+H[a+20>>2]|0}H[f>>2]=g}d=d+1|0;if((d|0)>2]){continue}break}}m=m+1|0;z=(w|0)<=(m|0);if((m|0)!=(I|0)){continue}break}}a=H[h>>2];if(a){oa(a)}oa(y);a=H[h+52>>2];if(a){H[h+56>>2]=a;oa(a)}a=H[h+40>>2];if(a){H[h+44>>2]=a;oa(a)}a=H[h+28>>2];if(a){H[h+32>>2]=a;oa(a)}a=H[h+16>>2];if(a){H[h+20>>2]=a;oa(a)}ca=h- -64|0;return z|0}sa();v()}function Od(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0,z=0,A=0,B=0;i=ca-80|0;ca=i;H[i+76>>2]=b;y=i+55|0;r=i+56|0;a:{b:{c:{d:{e:while(1){h=b;if((o^2147483647)<(f|0)){break d}o=f+o|0;f:{g:{h:{f=h;g=I[f|0];if(g){while(1){i:{b=g&255;j:{if(!b){b=f;break j}if((b|0)!=37){break i}g=f;while(1){if(I[g+1|0]!=37){b=g;break j}f=f+1|0;j=I[g+2|0];b=g+2|0;g=b;if((j|0)==37){continue}break}}f=f-h|0;x=o^2147483647;if((f|0)>(x|0)){break d}if(a){Ab(a,h,f)}if(f){continue e}H[i+76>>2]=b;f=b+1|0;p=-1;if(!(I[b+2|0]!=36|F[b+1|0]-48>>>0>=10)){p=F[b+1|0]-48|0;s=1;f=b+3|0}H[i+76>>2]=f;n=0;g=F[f|0];b=g-32|0;k:{if(b>>>0>31){k=f;break k}k=f;b=1<>2]=k;n=b|n;g=F[f+1|0];b=g-32|0;if(b>>>0>=32){break k}f=k;b=1<>>0>=10)){H[((F[k+1|0]<<2)+e|0)-192>>2]=10;g=k+3|0;s=1;b=H[((F[k+1|0]<<3)+d|0)-384>>2];break m}if(s){break h}g=k+1|0;if(!a){H[i+76>>2]=g;s=0;q=0;break l}b=H[c>>2];H[c>>2]=b+4;s=0;b=H[b>>2]}H[i+76>>2]=g;q=b;if((b|0)>=0){break l}q=0-q|0;n=n|8192;break l}q=Nd(i+76|0);if((q|0)<0){break d}g=H[i+76>>2]}f=0;m=-1;n:{if(I[g|0]!=46){b=g;u=0;break n}if(I[g+1|0]==42){o:{if(!(I[g+3|0]!=36|F[g+2|0]-48>>>0>=10)){H[((F[g+2|0]<<2)+e|0)-192>>2]=10;b=g+4|0;m=H[((F[g+2|0]<<3)+d|0)-384>>2];break o}if(s){break h}b=g+2|0;m=0;if(!a){break o}j=H[c>>2];H[c>>2]=j+4;m=H[j>>2]}H[i+76>>2]=b;u=(m^-1)>>>31|0;break n}H[i+76>>2]=g+1;m=Nd(i+76|0);b=H[i+76>>2];u=1}while(1){g=f;k=28;l=b;f=F[b|0];if(f-123>>>0<4294967238){break c}b=l+1|0;f=I[(f+N(g,58)|0)+13711|0];if(f-1>>>0<8){continue}break}H[i+76>>2]=b;p:{q:{if((f|0)!=27){if(!f){break c}if((p|0)>=0){H[(p<<2)+e>>2]=f;j=(p<<3)+d|0;f=H[j+4>>2];H[i+64>>2]=H[j>>2];H[i+68>>2]=f;break q}if(!a){break f}Md(i- -64|0,f,c);break p}if((p|0)>=0){break c}}f=0;if(!a){continue e}}j=n&-65537;n=n&8192?j:n;p=0;t=1132;k=r;r:{s:{t:{u:{v:{w:{x:{y:{z:{A:{B:{C:{D:{E:{F:{G:{f=F[l|0];f=g?(f&15)==3?f&-33:f:f;switch(f-88|0){case 11:break r;case 9:case 13:case 14:case 15:break s;case 27:break x;case 12:case 17:break A;case 23:break B;case 0:case 32:break C;case 24:break D;case 22:break E;case 29:break F;case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 10:case 16:case 18:case 19:case 20:case 21:case 25:case 26:case 28:case 30:case 31:break g;default:break G}}H:{switch(f-65|0){case 0:case 4:case 5:case 6:break s;case 2:break v;case 1:case 3:break g;default:break H}}if((f|0)==83){break w}break g}l=H[i+64>>2];j=H[i+68>>2];t=1132;break z}f=0;I:{switch(g&255){case 0:H[H[i+64>>2]>>2]=o;continue e;case 1:H[H[i+64>>2]>>2]=o;continue e;case 2:h=H[i+64>>2];H[h>>2]=o;H[h+4>>2]=o>>31;continue e;case 3:G[H[i+64>>2]>>1]=o;continue e;case 4:F[H[i+64>>2]]=o;continue e;case 6:H[H[i+64>>2]>>2]=o;continue e;case 7:break I;default:continue e}}h=H[i+64>>2];H[h>>2]=o;H[h+4>>2]=o>>31;continue e}m=m>>>0<=8?8:m;n=n|8;f=120}h=r;l=H[i+64>>2];j=H[i+68>>2];if(l|j){z=f&32;while(1){h=h-1|0;F[h|0]=z|I[(l&15)+14240|0];w=!j&l>>>0>15|(j|0)!=0;g=j;j=g>>>4|0;l=(g&15)<<28|l>>>4;if(w){continue}break}}if(!(H[i+64>>2]|H[i+68>>2])|!(n&8)){break y}t=(f>>>4|0)+1132|0;p=2;break y}f=r;h=H[i+68>>2];j=h;l=H[i+64>>2];if(h|l){while(1){f=f-1|0;F[f|0]=l&7|48;g=!j&l>>>0>7|(j|0)!=0;h=j;j=h>>>3|0;l=(h&7)<<29|l>>>3;if(g){continue}break}}h=f;if(!(n&8)){break y}f=r-h|0;m=(f|0)<(m|0)?m:f+1|0;break y}l=H[i+64>>2];h=H[i+68>>2];j=h;if((h|0)<0){f=0-(((l|0)!=0)+j|0)|0;j=f;l=0-l|0;H[i+64>>2]=l;H[i+68>>2]=f;p=1;t=1132;break z}if(n&2048){p=1;t=1133;break z}p=n&1;t=p?1134:1132}g=r;if(j){while(1){g=g-1|0;f=j;w=Tj(l,f,10,0);h=da;A=g,B=l-Rj(w,h,10,0)|48,F[A|0]=B;l=w;j=h;if(f>>>0>9){continue}break}}h=l;if(h){while(1){g=g-1|0;f=(h>>>0)/10|0;F[g|0]=h-N(f,10)|48;j=h>>>0>9;h=f;if(j){continue}break}}h=g}if((m|0)<0?u:0){break d}n=u?n&-65537:n;f=H[i+64>>2];j=H[i+68>>2];if(!(m|(f|j)!=0)){h=r;m=0;break g}f=!(f|j)+(r-h|0)|0;m=(f|0)<(m|0)?m:f;break g}g=m>>>0>=2147483647?2147483647:m;k=g;n=(g|0)!=0;h=H[i+64>>2];h=h?h:1614;f=h;J:{K:{L:{M:{if(!(f&3)|!g){break M}while(1){if(!I[f|0]){break L}k=k-1|0;n=(k|0)!=0;f=f+1|0;if(!(f&3)){break M}if(k){continue}break}}if(!n){break K}if(!(!I[f|0]|k>>>0<4)){while(1){l=H[f>>2];if((l^-1)&l-16843009&-2139062144){break L}f=f+4|0;k=k-4|0;if(k>>>0>3){continue}break}}if(!k){break K}}while(1){if(!I[f|0]){break J}f=f+1|0;k=k-1|0;if(k){continue}break}}f=0}f=f?f-h|0:g;k=f+h|0;if((m|0)>=0){n=j;m=f;break g}n=j;m=f;if(I[k|0]){break d}break g}if(m){g=H[i+64>>2];break u}f=0;ib(a,32,q,0,n);break t}H[i+12>>2]=0;H[i+8>>2]=H[i+64>>2];g=i+8|0;H[i+64>>2]=g;m=-1}f=0;N:{while(1){h=H[g>>2];if(!h){break N}j=Ld(i+4|0,h);h=(j|0)<0;if(!(h|j>>>0>m-f>>>0)){g=g+4|0;f=f+j|0;if(m>>>0>f>>>0){continue}break N}break}if(h){break b}}k=61;if((f|0)<0){break c}ib(a,32,q,f,n);if(!f){f=0;break t}k=0;g=H[i+64>>2];while(1){h=H[g>>2];if(!h){break t}h=Ld(i+4|0,h);k=h+k|0;if(k>>>0>f>>>0){break t}Ab(a,i+4|0,h);g=g+4|0;if(f>>>0>k>>>0){continue}break}}ib(a,32,q,f,n^8192);f=(f|0)<(q|0)?q:f;continue e}if((m|0)<0?u:0){break d}v()}F[i+55|0]=H[i+64>>2];m=1;h=y;n=j;break g}g=I[f+1|0];f=f+1|0;continue}}if(a){break a}if(!s){break f}f=1;while(1){a=H[(f<<2)+e>>2];if(a){Md((f<<3)+d|0,a,c);o=1;f=f+1|0;if((f|0)!=10){continue}break a}break}o=1;if(f>>>0>=10){break a}while(1){if(H[(f<<2)+e>>2]){break h}f=f+1|0;if((f|0)!=10){continue}break}break a}k=28;break c}l=k-h|0;j=(m|0)>(l|0)?m:l;if((j|0)>(p^2147483647)){break d}k=61;g=j+p|0;f=(g|0)<(q|0)?q:g;if((x|0)<(f|0)){break c}ib(a,32,f,g,n);Ab(a,t,p);ib(a,48,f,g,n^65536);ib(a,48,j,l,0);Ab(a,h,l);ib(a,32,f,g,n^8192);continue}break}o=0;break a}k=61}H[3992]=k}o=-1}ca=i+80|0;return o}function hj(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,G=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0;a:{b:{if((e|0)!=2){break b}H[a+8>>2]=2;H[a- -64>>2]=f;N=a+32|0;e=H[N>>2];d=H[a+36>>2]-e|0;c:{if(d>>>0<=7){ya(N,2-(d>>>2|0)|0);break c}if((d|0)==8){break c}H[a+36>>2]=e+8}j=1;d=H[a+56>>2];d=H[d+4>>2]-H[d>>2]|0;if((d|0)<=0){break b}o=a+60|0;d=d>>>2|0;Z=d>>>0<=1?1:d;_=a+68|0;d=0;while(1){f=H[a+56>>2];e=H[f>>2];if(H[f+4>>2]-e>>2>>>0<=d>>>0){break a}l=ca-80|0;ca=l;f=-1;d:{e:{e=H[e+(d<<2)>>2];if((e|0)==-1){break e}j=H[o+32>>2];g=e+1|0;g=(g>>>0)%3|0?g:e-2|0;if((g|0)!=-1){f=H[H[j>>2]+(g<<2)>>2]}n=-1;e=e+((e>>>0)%3|0?-1:2)|0;if((e|0)!=-1){n=H[H[j>>2]+(e<<2)>>2]}j=H[o+36>>2];e=H[j>>2];j=H[j+4>>2]-e>>2;if(j>>>0<=f>>>0|j>>>0<=n>>>0){break e}f:{g:{h:{i:{j:{k:{i=H[e+(n<<2)>>2];f=H[e+(f<<2)>>2];if((i|0)>=(d|0)|(f|0)>=(d|0)){break k}j=(i<<3)+c|0;u=H[j+4>>2];g=(f<<3)+c|0;e=H[g+4>>2];A=H[j>>2];j=H[g>>2];if(!((A|0)!=(j|0)|(e|0)!=(u|0))){H[o+8>>2]=j;H[o+12>>2]=e;break j}n=H[H[o+4>>2]+(d<<2)>>2];H[l+72>>2]=0;H[l+76>>2]=0;g=l- -64|0;H[g>>2]=0;H[g+4>>2]=0;H[l+56>>2]=0;H[l+60>>2]=0;g=H[o>>2];if(!I[g+84|0]){n=H[H[g+68>>2]+(n<<2)>>2]}Sa(g,n,F[g+24|0],l+56|0);n=H[H[o+4>>2]+(f<<2)>>2];H[l+48>>2]=0;H[l+52>>2]=0;H[l+40>>2]=0;H[l+44>>2]=0;H[l+32>>2]=0;H[l+36>>2]=0;g=H[o>>2];if(!I[g+84|0]){n=H[H[g+68>>2]+(n<<2)>>2]}Sa(g,n,F[g+24|0],l+32|0);n=H[H[o+4>>2]+(i<<2)>>2];H[l+24>>2]=0;H[l+28>>2]=0;H[l+16>>2]=0;H[l+20>>2]=0;H[l+8>>2]=0;H[l+12>>2]=0;g=H[o>>2];if(!I[g+84|0]){n=H[H[g+68>>2]+(n<<2)>>2]}Sa(g,n,F[g+24|0],l+8|0);g=H[l+16>>2];w=H[l+40>>2];B=g-w|0;O=H[l+44>>2];g=H[l+20>>2]-(O+(g>>>0>>0)|0)|0;J=g;i=Rj(B,g,B,g);m=da;g=H[l+8>>2];C=H[l+32>>2];D=g-C|0;P=H[l+36>>2];g=H[l+12>>2]-(P+(g>>>0>>0)|0)|0;K=g;k=i;i=Rj(D,g,D,g);g=k+i|0;k=da+m|0;k=g>>>0>>0?k+1|0:k;i=H[l+24>>2];E=H[l+48>>2];G=i-E|0;Q=H[l+52>>2];i=H[l+28>>2]-(Q+(i>>>0>>0)|0)|0;L=i;h=g;g=Rj(G,i,G,i);q=h+g|0;h=da+k|0;r=g>>>0>q>>>0?h+1|0:h;if(!(r|q)){break k}n=0;x=Tj(-1,2147483647,q,r);f=j>>31;S=f;h=f>>31;R=j;g=h;m=j^g;j=m-g|0;f=(f^g)-((g>>>0>m>>>0)+g|0)|0;g=f;f=e>>31;T=f;M=e;e=f>>31;m=M^e;h=m-e|0;k=f>>31;e=(k^f)-((e>>>0>m>>>0)+k|0)|0;f=(g|0)==(e|0)&h>>>0>>0|e>>>0>>0;j=f?j:h;i=da;e=f?g:e;if((i|0)==(e|0)&j>>>0>x>>>0|e>>>0>i>>>0){break f}j=H[l+64>>2];U=H[l+68>>2];e=Rj(j-w|0,U-((j>>>0>>0)+O|0)|0,B,J);f=da;g=H[l+56>>2];V=H[l+60>>2];i=Rj(g-C|0,V-((g>>>0>>0)+P|0)|0,D,K);e=i+e|0;h=da+f|0;m=H[l+72>>2];W=H[l+76>>2];f=Rj(m-E|0,W-((m>>>0>>0)+Q|0)|0,G,L);y=f+e|0;e=da+(e>>>0>>0?h+1|0:h)|0;e=f>>>0>y>>>0?e+1|0:e;x=e;f=e;e=e>>31;i=e;h=e^y;e=h-e|0;i=(f^i)-((h>>>0>>0)+i|0)|0;f=A;A=f-R|0;f=(f>>31)-((f>>>0>>0)+S|0)|0;X=f;z=f>>31;p=z^A;k=p-z|0;h=f>>31;f=(h^f)-((p>>>0>>0)+h|0)|0;p=f;z=u-M|0;f=(u>>31)-((u>>>0>>0)+T|0)|0;u=f;s=f>>31;t=s^z;Y=t-s|0;h=f>>31;f=(h^f)-((s>>>0>t>>>0)+h|0)|0;h=(p|0)==(f|0)&k>>>0>Y>>>0|f>>>0

>>0;f=Tj(-1,2147483647,h?k:Y,h?p:f);h=da;if((h|0)==(i|0)&e>>>0>f>>>0|h>>>0>>0){break f}f=e;e=i;h=K>>31;p=h^D;i=p-h|0;h=(h^K)-((h>>>0>p>>>0)+h|0)|0;k=J>>31;s=k^B;t=s-k|0;k=(k^J)-((k>>>0>s>>>0)+k|0)|0;p=(h|0)==(k|0)&i>>>0>t>>>0|h>>>0>k>>>0;i=p?i:t;h=p?h:k;k=L>>31;p=i;s=k^G;t=s-k|0;k=(k^L)-((k>>>0>s>>>0)+k|0)|0;i=(h|0)==(k|0)&i>>>0>t>>>0|h>>>0>k>>>0;i=Tj(-1,2147483647,i?p:t,i?h:k);h=da;if((h|0)==(e|0)&f>>>0>i>>>0|e>>>0>h>>>0){break f}i=1;f=0;k=Sj(Rj(y,x,B,J),da,q,r);h=k+w|0;e=da+O|0;e=h>>>0>>0?e+1|0:e;k=j-h|0;e=U-((h>>>0>j>>>0)+e|0)|0;k=Rj(k,e,k,e);w=da;h=Sj(Rj(y,x,D,K),da,q,r);j=h+C|0;e=da+P|0;e=h>>>0>j>>>0?e+1|0:e;h=g-j|0;e=V-((g>>>0>>0)+e|0)|0;j=Rj(h,e,h,e);e=j+k|0;h=da+w|0;h=e>>>0>>0?h+1|0:h;k=e;g=Sj(Rj(y,x,G,L),da,q,r);j=g+E|0;e=da+Q|0;e=g>>>0>j>>>0?e+1|0:e;g=m-j|0;e=W-((j>>>0>m>>>0)+e|0)|0;g=Rj(g,e,g,e);j=g+k|0;e=da+h|0;j=Rj(j,g>>>0>j>>>0?e+1|0:e,q,r);e=da;m=e;if(!e&j>>>0<=1){break i}h=j;g=m;while(1){e=f<<1|i>>>31;i=i<<1;f=e;k=!g&h>>>0>7|(g|0)!=0;h=(g&3)<<30|h>>>2;g=g>>>2|0;if(k){continue}break}break h}g=o;if((d|0)>(f|0)){e=f<<1}else{if((d|0)<=0){H[o+8>>2]=0;H[o+12>>2]=0;break j}e=(d<<1)-2|0}e=(e<<2)+c|0;H[g+8>>2]=H[e>>2];H[o+12>>2]=H[e+4>>2]}n=1;break f}f=m;i=j;if(j-1|0){break g}}while(1){e=Tj(j,m,i,f);h=f+da|0;e=e+i|0;h=e>>>0>>0?h+1|0:h;i=(h&1)<<31|e>>>1;f=h>>>1|0;e=Rj(i,f,i,f);g=da;if((m|0)==(g|0)&e>>>0>j>>>0|g>>>0>m>>>0){continue}break}}e=H[o+20>>2];if(!e){break f}j=e-1|0;m=H[H[o+16>>2]+(j>>>3&536870908)>>2];H[o+20>>2]=j;n=1;e=Rj(y,x,z,u);h=da;g=e;e=Rj(q,r,M,T);g=g+e|0;h=da+h|0;h=e>>>0>g>>>0?h+1|0:h;e=Rj(i,f,A,X);j=m>>>j&1;m=j?0-e|0:e;g=m+g|0;k=h;h=da;k=k+(j?0-(h+((e|0)!=0)|0)|0:h)|0;$=o,aa=Sj(g,g>>>0>>0?k+1|0:k,q,r),H[$+12>>2]=aa;e=Rj(y,x,A,X);m=da;g=e;e=Rj(q,r,R,S);g=g+e|0;h=da+m|0;h=e>>>0>g>>>0?h+1|0:h;e=Rj(i,f,z,u);f=0-e|0;i=da;k=(j?i:0-(((e|0)!=0)+i|0)|0)+h|0;i=g;g=j?e:f;f=i+g|0;$=o,aa=Sj(f,f>>>0>>0?k+1|0:k,q,r),H[$+8>>2]=aa}ca=l+80|0;e=n;break d}Ca();v()}j=e;if(!e){return 0}l:{if(H[a+8>>2]<=0){break l}i=H[N>>2];e=0;while(1){f=e<<2;g=H[f+_>>2];m=H[a+16>>2];m:{if((g|0)>(m|0)){H[f+i>>2]=m;break m}f=f+i|0;m=H[a+12>>2];if((m|0)>(g|0)){H[f>>2]=m;break m}H[f>>2]=g}e=e+1|0;g=H[a+8>>2];if((e|0)<(g|0)){continue}break}f=0;if((g|0)<=0){break l}e=d<<3;m=e+c|0;n=b+e|0;while(1){g=f<<2;e=g+m|0;g=H[g+n>>2]+H[g+i>>2]|0;H[e>>2]=g;n:{if((g|0)>H[a+16>>2]){g=g-H[a+20>>2]|0}else{if((g|0)>=H[a+12>>2]){break n}g=g+H[a+20>>2]|0}H[e>>2]=g}f=f+1|0;if((f|0)>2]){continue}break}}d=d+1|0;if((Z|0)!=(d|0)){continue}break}}return j|0}Ca();v()}function xj(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,G=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0;a:{b:{if((e|0)!=2){break b}H[a+8>>2]=2;H[a- -64>>2]=f;N=a+32|0;e=H[N>>2];d=H[a+36>>2]-e|0;c:{if(d>>>0<=7){ya(N,2-(d>>>2|0)|0);break c}if((d|0)==8){break c}H[a+36>>2]=e+8}o=1;d=H[a+56>>2];d=H[d+4>>2]-H[d>>2]|0;if((d|0)<=0){break b}n=a+60|0;d=d>>>2|0;Z=d>>>0<=1?1:d;_=a+68|0;d=0;while(1){e=H[a+56>>2];i=H[e>>2];if(H[e+4>>2]-i>>2>>>0<=d>>>0){break a}l=ca-80|0;ca=l;f=-1;i=H[i+(d<<2)>>2];e=-1;d:{if((i|0)==-1){break d}e=i+1|0;f=(e>>>0)%3|0?e:i-2|0;e=i-1|0;if((i>>>0)%3|0){break d}e=i+2|0}g=H[n+36>>2];i=H[g>>2];e:{f:{g:{h:{i:{g=H[g+4>>2]-i>>2;k=f<<2;f=H[H[n+32>>2]+28>>2];j=H[k+f>>2];if(g>>>0<=j>>>0){break i}e=H[f+(e<<2)>>2];if(e>>>0>=g>>>0){break i}f=H[i+(j<<2)>>2];j:{k:{j=H[i+(e<<2)>>2];if((d|0)<=(f|0)|(j|0)>=(d|0)){break k}i=(j<<3)+c|0;u=H[i+4>>2];g=(f<<3)+c|0;e=H[g+4>>2];A=H[i>>2];i=H[g>>2];if(!((A|0)!=(i|0)|(e|0)!=(u|0))){H[n+8>>2]=i;H[n+12>>2]=e;break j}o=H[H[n+4>>2]+(d<<2)>>2];H[l+72>>2]=0;H[l+76>>2]=0;g=l- -64|0;H[g>>2]=0;H[g+4>>2]=0;H[l+56>>2]=0;H[l+60>>2]=0;g=H[n>>2];if(!I[g+84|0]){o=H[H[g+68>>2]+(o<<2)>>2]}Sa(g,o,F[g+24|0],l+56|0);o=H[H[n+4>>2]+(f<<2)>>2];H[l+48>>2]=0;H[l+52>>2]=0;H[l+40>>2]=0;H[l+44>>2]=0;H[l+32>>2]=0;H[l+36>>2]=0;g=H[n>>2];if(!I[g+84|0]){o=H[H[g+68>>2]+(o<<2)>>2]}Sa(g,o,F[g+24|0],l+32|0);o=H[H[n+4>>2]+(j<<2)>>2];H[l+24>>2]=0;H[l+28>>2]=0;H[l+16>>2]=0;H[l+20>>2]=0;H[l+8>>2]=0;H[l+12>>2]=0;g=H[n>>2];if(!I[g+84|0]){o=H[H[g+68>>2]+(o<<2)>>2]}Sa(g,o,F[g+24|0],l+8|0);g=H[l+16>>2];w=H[l+40>>2];B=g-w|0;O=H[l+44>>2];g=H[l+20>>2]-(O+(g>>>0>>0)|0)|0;J=g;j=Rj(B,g,B,g);m=da;g=H[l+8>>2];C=H[l+32>>2];D=g-C|0;P=H[l+36>>2];g=H[l+12>>2]-(P+(g>>>0>>0)|0)|0;K=g;k=j;j=Rj(D,g,D,g);g=k+j|0;k=da+m|0;k=g>>>0>>0?k+1|0:k;j=H[l+24>>2];E=H[l+48>>2];G=j-E|0;Q=H[l+52>>2];j=H[l+28>>2]-(Q+(j>>>0>>0)|0)|0;L=j;h=g;g=Rj(G,j,G,j);q=h+g|0;h=da+k|0;r=g>>>0>q>>>0?h+1|0:h;if(!(r|q)){break k}o=0;x=Tj(-1,2147483647,q,r);f=i>>31;S=f;h=f>>31;R=i;g=h;m=i^g;i=m-g|0;f=(f^g)-((g>>>0>m>>>0)+g|0)|0;g=f;f=e>>31;T=f;M=e;e=f>>31;m=M^e;h=m-e|0;k=f>>31;e=(k^f)-((e>>>0>m>>>0)+k|0)|0;f=(g|0)==(e|0)&h>>>0>>0|e>>>0>>0;i=f?i:h;j=da;e=f?g:e;if((j|0)==(e|0)&i>>>0>x>>>0|e>>>0>j>>>0){break e}i=H[l+64>>2];U=H[l+68>>2];e=Rj(i-w|0,U-((i>>>0>>0)+O|0)|0,B,J);f=da;g=H[l+56>>2];V=H[l+60>>2];j=Rj(g-C|0,V-((g>>>0>>0)+P|0)|0,D,K);e=j+e|0;h=da+f|0;m=H[l+72>>2];W=H[l+76>>2];f=Rj(m-E|0,W-((m>>>0>>0)+Q|0)|0,G,L);y=f+e|0;e=da+(e>>>0>>0?h+1|0:h)|0;e=f>>>0>y>>>0?e+1|0:e;x=e;f=e;e=e>>31;j=e;h=e^y;e=h-e|0;j=(f^j)-((h>>>0>>0)+j|0)|0;f=A;A=f-R|0;f=(f>>31)-((f>>>0>>0)+S|0)|0;X=f;z=f>>31;p=z^A;k=p-z|0;h=f>>31;f=(h^f)-((p>>>0>>0)+h|0)|0;p=f;z=u-M|0;f=(u>>31)-((u>>>0>>0)+T|0)|0;u=f;s=f>>31;t=s^z;Y=t-s|0;h=f>>31;f=(h^f)-((s>>>0>t>>>0)+h|0)|0;h=(p|0)==(f|0)&k>>>0>Y>>>0|f>>>0

>>0;f=Tj(-1,2147483647,h?k:Y,h?p:f);h=da;if((h|0)==(j|0)&e>>>0>f>>>0|h>>>0>>0){break e}f=e;e=j;h=K>>31;p=h^D;j=p-h|0;h=(h^K)-((h>>>0>p>>>0)+h|0)|0;k=J>>31;s=k^B;t=s-k|0;k=(k^J)-((k>>>0>s>>>0)+k|0)|0;p=(h|0)==(k|0)&j>>>0>t>>>0|h>>>0>k>>>0;j=p?j:t;h=p?h:k;k=L>>31;p=j;s=k^G;t=s-k|0;k=(k^L)-((k>>>0>s>>>0)+k|0)|0;j=(h|0)==(k|0)&j>>>0>t>>>0|h>>>0>k>>>0;j=Tj(-1,2147483647,j?p:t,j?h:k);h=da;if((h|0)==(e|0)&f>>>0>j>>>0|e>>>0>h>>>0){break e}j=1;f=0;k=Sj(Rj(y,x,B,J),da,q,r);h=k+w|0;e=da+O|0;e=h>>>0>>0?e+1|0:e;k=i-h|0;e=U-((h>>>0>i>>>0)+e|0)|0;k=Rj(k,e,k,e);w=da;h=Sj(Rj(y,x,D,K),da,q,r);i=h+C|0;e=da+P|0;e=h>>>0>i>>>0?e+1|0:e;h=g-i|0;e=V-((g>>>0>>0)+e|0)|0;i=Rj(h,e,h,e);e=i+k|0;h=da+w|0;h=e>>>0>>0?h+1|0:h;k=e;g=Sj(Rj(y,x,G,L),da,q,r);i=g+E|0;e=da+Q|0;e=g>>>0>i>>>0?e+1|0:e;g=m-i|0;e=W-((i>>>0>m>>>0)+e|0)|0;g=Rj(g,e,g,e);i=g+k|0;e=da+h|0;i=Rj(i,g>>>0>i>>>0?e+1|0:e,q,r);e=da;m=e;if(!e&i>>>0<=1){break h}h=i;g=m;while(1){e=f<<1|j>>>31;j=j<<1;f=e;k=!g&h>>>0>7|(g|0)!=0;h=(g&3)<<30|h>>>2;g=g>>>2|0;if(k){continue}break}break g}g=n;if((d|0)>(f|0)){e=f<<1}else{if((d|0)<=0){H[n+8>>2]=0;H[n+12>>2]=0;break j}e=(d<<1)-2|0}e=(e<<2)+c|0;H[g+8>>2]=H[e>>2];H[n+12>>2]=H[e+4>>2]}o=1;break e}Ca();v()}f=m;j=i;if(i-1|0){break f}}while(1){e=Tj(i,m,j,f);h=f+da|0;e=e+j|0;h=e>>>0>>0?h+1|0:h;j=(h&1)<<31|e>>>1;f=h>>>1|0;e=Rj(j,f,j,f);g=da;if((m|0)==(g|0)&e>>>0>i>>>0|g>>>0>m>>>0){continue}break}}e=H[n+20>>2];if(!e){break e}i=e-1|0;m=H[H[n+16>>2]+(i>>>3&536870908)>>2];H[n+20>>2]=i;o=1;e=Rj(y,x,z,u);h=da;g=e;e=Rj(q,r,M,T);g=g+e|0;h=da+h|0;h=e>>>0>g>>>0?h+1|0:h;e=Rj(j,f,A,X);i=m>>>i&1;m=i?0-e|0:e;g=m+g|0;k=h;h=da;k=k+(i?0-(h+((e|0)!=0)|0)|0:h)|0;$=n,aa=Sj(g,g>>>0>>0?k+1|0:k,q,r),H[$+12>>2]=aa;e=Rj(y,x,A,X);m=da;g=e;e=Rj(q,r,R,S);g=g+e|0;h=da+m|0;h=e>>>0>g>>>0?h+1|0:h;e=Rj(j,f,z,u);f=0-e|0;j=da;k=(i?j:0-(((e|0)!=0)+j|0)|0)+h|0;j=g;g=i?e:f;f=j+g|0;$=n,aa=Sj(f,f>>>0>>0?k+1|0:k,q,r),H[$+8>>2]=aa}ca=l+80|0;if(!o){return 0}l:{if(H[a+8>>2]<=0){break l}g=H[N>>2];e=0;while(1){f=e<<2;i=H[f+_>>2];j=H[a+16>>2];m:{if((i|0)>(j|0)){H[f+g>>2]=j;break m}f=f+g|0;j=H[a+12>>2];if((j|0)>(i|0)){H[f>>2]=j;break m}H[f>>2]=i}e=e+1|0;i=H[a+8>>2];if((e|0)<(i|0)){continue}break}f=0;if((i|0)<=0){break l}e=d<<3;j=e+c|0;m=b+e|0;while(1){i=f<<2;e=i+j|0;i=H[i+m>>2]+H[g+i>>2]|0;H[e>>2]=i;n:{if((i|0)>H[a+16>>2]){k=i-H[a+20>>2]|0}else{if((i|0)>=H[a+12>>2]){break n}k=i+H[a+20>>2]|0}H[e>>2]=k}f=f+1|0;if((f|0)>2]){continue}break}}d=d+1|0;if((Z|0)!=(d|0)){continue}break}}return o|0}Ca();v()}function $a(a,b){var c=0,d=0,e=0,f=0,g=0;e=ca-16|0;ca=e;H[a+12>>2]=b;H[a+8>>2]=0;H[a>>2]=0;H[a+4>>2]=0;d=a+16|0;H[d>>2]=0;H[d+4>>2]=0;F[d+5|0]=0;F[d+6|0]=0;F[d+7|0]=0;F[d+8|0]=0;F[d+9|0]=0;F[d+10|0]=0;F[d+11|0]=0;F[d+12|0]=0;c=d+16|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c=d+32|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c=d+48|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c=d- -64|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c=d+80|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c=d+96|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c=d+112|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c=d+128|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c=d+144|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c=d+160|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c=d+176|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c=d+192|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c=d+208|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c=d+224|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c=d+240|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c=d+256|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c=d+272|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c=d+288|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c=d+304|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c=d+320|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c=d+336|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c=d+352|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c=d+368|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c=d+384|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c=d+400|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c=d+416|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c=d+432|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c=d+448|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c=d+464|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c=d+480|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;d=d+496|0;H[d>>2]=0;H[d+4>>2]=0;F[d+5|0]=0;F[d+6|0]=0;F[d+7|0]=0;F[d+8|0]=0;F[d+9|0]=0;F[d+10|0]=0;F[d+11|0]=0;F[d+12|0]=0;H[a+528>>2]=0;H[a+532>>2]=0;F[a+533|0]=0;F[a+534|0]=0;F[a+535|0]=0;F[a+536|0]=0;F[a+537|0]=0;F[a+538|0]=0;F[a+539|0]=0;F[a+540|0]=0;H[a+544>>2]=0;H[a+548>>2]=0;H[a+560>>2]=0;H[a+552>>2]=0;H[a+556>>2]=0;H[a+564>>2]=0;H[a+568>>2]=0;H[a+580>>2]=0;H[a+572>>2]=0;H[a+576>>2]=0;H[a+584>>2]=0;H[a+588>>2]=0;H[a+600>>2]=0;H[a+592>>2]=0;H[a+596>>2]=0;H[a+612>>2]=0;H[a+604>>2]=0;H[a+608>>2]=0;g=a+628|0;a:{b:{if(b){if(b>>>0<1073741824){break b}sa();v()}H[a+616>>2]=0;H[a+620>>2]=0;H[a+624>>2]=0;H[e+8>>2]=0;H[e>>2]=0;H[e+4>>2]=0;d=1;break a}d=b<<2;c=pa(d);H[a+604>>2]=c;f=c+d|0;H[a+612>>2]=f;ra(c,0,d);H[a+624>>2]=0;H[a+616>>2]=0;H[a+620>>2]=0;H[a+608>>2]=f;c=pa(d);H[a+616>>2]=c;f=c+d|0;H[a+624>>2]=f;ra(c,0,d);H[a+620>>2]=f;c=pa(d);H[e>>2]=c;f=c+d|0;H[e+8>>2]=f;ra(c,0,d);H[e+4>>2]=f;d=b<<5|1}tb(g,d,e);c=H[e>>2];if(c){H[e+4>>2]=c;oa(c)}H[e+8>>2]=0;H[e>>2]=0;H[e+4>>2]=0;if(b){b=b<<2;c=pa(b);H[e>>2]=c;f=b+c|0;H[e+8>>2]=f;ra(c,0,b);H[e+4>>2]=f}tb(a+640|0,d,e);b=H[e>>2];if(b){H[e+4>>2]=b;oa(b)}ca=e+16|0;return a}function gc(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=O(0),n=O(0),o=0;a:{b:{if(!d){break b}c:{switch(H[a+28>>2]-1|0){case 0:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[a>>2];h=H[e>>2];k=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}G[(g<<1)+d>>1]=F[b|0];b=b+1|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 1:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[a>>2];h=H[e>>2];k=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}G[(g<<1)+d>>1]=I[b|0];b=b+1|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 2:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[a>>2];h=H[e>>2];k=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}G[(g<<1)+d>>1]=J[b>>1];b=b+2|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 3:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[a>>2];h=H[e>>2];k=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){return 0}e=G[b>>1];if((e|0)<0){break b}G[(g<<1)+d>>1]=e;b=b+2|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 4:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[a>>2];h=H[e>>2];k=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}e=H[b>>2];if(e+32768>>>0>65535){break b}G[(g<<1)+d>>1]=e;b=b+4|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 5:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[a>>2];h=H[e>>2];k=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}e=H[b>>2];if(e>>>0>32767){break b}G[(g<<1)+d>>1]=e;b=b+4|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 6:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[a>>2];h=H[e>>2];k=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;k=H[e+4>>2];while(1){if(b>>>0>=k>>>0){break b}h=H[b+4>>2];e=H[b>>2];i=e+32768|0;h=i>>>0<32768?h+1|0:h;if(!h&i>>>0>65535|h){break b}G[(g<<1)+d>>1]=e;b=b+8|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 7:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[a>>2];h=H[e>>2];k=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}k=H[b+4>>2];e=H[b>>2];if(!k&e>>>0>32767|k){break b}G[(g<<1)+d>>1]=e;b=b+8|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 8:d:{e:{e=I[a+24|0];c=c&255;if(!(c>>>0>e>>>0?e:c)){break e}e=H[a>>2];j=H[e>>2];g=j;f=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+f|0;g=b+g|0;f=H[e+4>>2];e=f-j|0;if(!I[a+32|0]){j=0;if((b|0)>=(e|0)){break d}b=0;while(1){m=L[g>>2];if(m>=O(32767)|m>1]=i;b=b+1|0;e=I[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break e}g=g+4|0;if(f>>>0>g>>>0){continue}break}break d}j=0;if((b|0)>=(e|0)){break d}b=0;while(1){m=L[g>>2];if(m>=O(32767)|mO(1)){break d}e=(b<<1)+d|0;l=T(+m*32767+.5);f:{if(P(l)<2147483648){i=~~l;break f}i=-2147483648}G[e>>1]=i;b=b+1|0;e=I[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break e}g=g+4|0;if(f>>>0>g>>>0){continue}break}break d}j=1;if(c>>>0<=e>>>0){break d}ra((e<<1)+d|0,0,c-e<<1)}return j;case 9:g:{h:{e=I[a+24|0];c=c&255;if(!(c>>>0>e>>>0?e:c)){break h}e=H[a>>2];j=H[e>>2];g=j;f=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+f|0;g=b+g|0;f=H[e+4>>2];e=f-j|0;if(!I[a+32|0]){j=0;if((b|0)>=(e|0)){break g}b=0;while(1){l=M[g>>3];if(l>=32767|l<-32768|l!=l){break g}o=P(l);if(o==Infinity){break g}e=(b<<1)+d|0;if(o<2147483648){i=~~l}else{i=-2147483648}G[e>>1]=i;b=b+1|0;e=I[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break h}g=g+8|0;if(f>>>0>g>>>0){continue}break}break g}j=0;if((b|0)>=(e|0)){break g}b=0;while(1){l=M[g>>3];if(l>=32767|l<-32768|(P(l)==Infinity|l!=l)){break g}if(l<0|l>1){break g}e=(b<<1)+d|0;l=T(l*32767+.5);i:{if(P(l)<2147483648){i=~~l;break i}i=-2147483648}G[e>>1]=i;b=b+1|0;e=I[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break h}g=g+8|0;if(f>>>0>g>>>0){continue}break}break g}j=1;if(c>>>0<=e>>>0){break g}ra((e<<1)+d|0,0,c-e<<1)}return j;case 10:break c;default:break b}}e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[a>>2];h=H[e>>2];k=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}G[(g<<1)+d>>1]=I[b|0];b=b+1|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}ra((e<<1)+d|0,0,(c&255)-e<<1)}return j}ra((e<<1)+d|0,0,(c&255)-e<<1);return 1}function ec(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=O(0),n=O(0),o=0;a:{b:{if(!d){break b}c:{switch(H[a+28>>2]-1|0){case 0:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[a>>2];h=H[e>>2];k=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}H[(g<<2)+d>>2]=F[b|0];b=b+1|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 1:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[a>>2];h=H[e>>2];k=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}H[(g<<2)+d>>2]=I[b|0];b=b+1|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 2:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[a>>2];h=H[e>>2];k=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}H[(g<<2)+d>>2]=G[b>>1];b=b+2|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 3:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[a>>2];h=H[e>>2];k=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}H[(g<<2)+d>>2]=J[b>>1];b=b+2|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 4:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[a>>2];h=H[e>>2];k=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}H[(g<<2)+d>>2]=H[b>>2];b=b+4|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 5:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[a>>2];h=H[e>>2];k=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){return 0}e=H[b>>2];if((e|0)<0){break b}H[(g<<2)+d>>2]=e;b=b+4|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 6:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[a>>2];h=H[e>>2];k=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;k=H[e+4>>2];while(1){if(b>>>0>=k>>>0){break b}h=H[b+4>>2];e=H[b>>2];if(e- -2147483648>>>0<2147483648?h+1|0:h){break b}H[(g<<2)+d>>2]=e;b=b+8|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 7:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[a>>2];h=H[e>>2];k=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}k=H[b+4>>2];e=H[b>>2];if(!k&e>>>0>2147483647|k){break b}H[(g<<2)+d>>2]=e;b=b+8|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 8:d:{e:{e=I[a+24|0];c=c&255;if(!(c>>>0>e>>>0?e:c)){break e}e=H[a>>2];j=H[e>>2];g=j;f=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+f|0;g=b+g|0;f=H[e+4>>2];e=f-j|0;if(!I[a+32|0]){j=0;if((b|0)>=(e|0)){break d}b=0;while(1){m=L[g>>2];if(m>=O(2147483648)|m>2]=i;b=b+1|0;e=I[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break e}g=g+4|0;if(f>>>0>g>>>0){continue}break}break d}j=0;if((b|0)>=(e|0)){break d}b=0;while(1){m=L[g>>2];if(m>=O(2147483648)|mO(1)){break d}e=(b<<2)+d|0;l=T(+m*2147483647+.5);f:{if(P(l)<2147483648){i=~~l;break f}i=-2147483648}H[e>>2]=i;b=b+1|0;e=I[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break e}g=g+4|0;if(f>>>0>g>>>0){continue}break}break d}j=1;if(c>>>0<=e>>>0){break d}ra((e<<2)+d|0,0,c-e<<2)}return j;case 9:g:{h:{e=I[a+24|0];c=c&255;if(!(c>>>0>e>>>0?e:c)){break h}e=H[a>>2];j=H[e>>2];g=j;f=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+f|0;g=b+g|0;f=H[e+4>>2];e=f-j|0;if(!I[a+32|0]){j=0;if((b|0)>=(e|0)){break g}b=0;while(1){l=M[g>>3];if(l>=2147483647|l<-2147483648|l!=l){break g}o=P(l);if(o==Infinity){break g}e=(b<<2)+d|0;if(o<2147483648){i=~~l}else{i=-2147483648}H[e>>2]=i;b=b+1|0;e=I[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break h}g=g+8|0;if(f>>>0>g>>>0){continue}break}break g}j=0;if((b|0)>=(e|0)){break g}b=0;while(1){l=M[g>>3];if(l>=2147483647|l<-2147483648|(P(l)==Infinity|l!=l)){break g}if(l<0|l>1){break g}e=(b<<2)+d|0;l=T(l*2147483647+.5);i:{if(P(l)<2147483648){i=~~l;break i}i=-2147483648}H[e>>2]=i;b=b+1|0;e=I[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break h}g=g+8|0;if(f>>>0>g>>>0){continue}break}break g}j=1;if(c>>>0<=e>>>0){break g}ra((e<<2)+d|0,0,c-e<<2)}return j;case 10:break c;default:break b}}e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[a>>2];h=H[e>>2];k=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}H[(g<<2)+d>>2]=I[b|0];b=b+1|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}ra((e<<2)+d|0,0,(c&255)-e<<2)}return j}ra((e<<2)+d|0,0,(c&255)-e<<2);return 1}function fc(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=O(0);a:{b:{if(!d){break b}c:{switch(H[a+28>>2]-1|0){case 0:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[a>>2];h=H[e>>2];k=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){return 0}e=F[b|0];if((e|0)<0){break b}G[(g<<1)+d>>1]=e&255;b=b+1|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break b}break a;case 1:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[a>>2];h=H[e>>2];k=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}G[(g<<1)+d>>1]=I[b|0];b=b+1|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break b}break a;case 2:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[a>>2];h=H[e>>2];k=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){return 0}e=G[b>>1];if((e|0)<0){break b}G[(g<<1)+d>>1]=e;b=b+2|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break b}break a;case 3:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[a>>2];h=H[e>>2];k=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}G[(g<<1)+d>>1]=J[b>>1];b=b+2|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break b}break a;case 4:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[a>>2];h=H[e>>2];k=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}e=H[b>>2];if(e>>>0>65535){break b}G[(g<<1)+d>>1]=e;b=b+4|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break b}break a;case 5:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[a>>2];h=H[e>>2];k=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}e=H[b>>2];if(e>>>0>65535){break b}G[(g<<1)+d>>1]=e;b=b+4|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break b}break a;case 6:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[a>>2];h=H[e>>2];k=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}k=H[b+4>>2];e=H[b>>2];if(!k&e>>>0>65535|k){break b}G[(g<<1)+d>>1]=e;b=b+8|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break b}break a;case 7:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[a>>2];h=H[e>>2];k=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}k=H[b+4>>2];e=H[b>>2];if(!k&e>>>0>65535|k){break b}G[(g<<1)+d>>1]=e;b=b+8|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break b}break a;case 8:d:{e:{e=I[a+24|0];c=c&255;if(!(c>>>0>e>>>0?e:c)){break e}e=H[a>>2];l=H[e>>2];g=l;f=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+f|0;g=b+g|0;f=H[e+4>>2];e=f-l|0;if(!I[a+32|0]){l=0;if((b|0)>=(e|0)){break d}b=0;while(1){m=L[g>>2];if(m>=O(65535)|m=O(0)){i=~~m>>>0}else{i=0}G[e>>1]=i;b=b+1|0;e=I[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break e}g=g+4|0;if(f>>>0>g>>>0){continue}break}break d}l=0;if((b|0)>=(e|0)){break d}b=0;while(1){m=L[g>>2];if(m>=O(65535)|mO(1)){break d}e=(b<<1)+d|0;j=T(+m*65535+.5);f:{if(j<4294967296&j>=0){i=~~j>>>0;break f}i=0}G[e>>1]=i;b=b+1|0;e=I[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break e}g=g+4|0;if(f>>>0>g>>>0){continue}break}break d}l=1;if(c>>>0<=e>>>0){break d}ra((e<<1)+d|0,0,c-e<<1)}return l;case 9:g:{h:{e=I[a+24|0];c=c&255;if(!(c>>>0>e>>>0?e:c)){break h}e=H[a>>2];l=H[e>>2];g=l;f=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+f|0;g=b+g|0;f=H[e+4>>2];e=f-l|0;if(!I[a+32|0]){l=0;if((b|0)>=(e|0)){break g}b=0;while(1){j=M[g>>3];if(j>=65535|j<0|(P(j)==Infinity|j!=j)){break g}e=(b<<1)+d|0;if(j<4294967296&j>=0){i=~~j>>>0}else{i=0}G[e>>1]=i;b=b+1|0;e=I[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break h}g=g+8|0;if(f>>>0>g>>>0){continue}break}break g}l=0;if((b|0)>=(e|0)){break g}b=0;while(1){j=M[g>>3];if(j>=65535|j<0|(P(j)==Infinity|j!=j)){break g}if(j>1){break g}e=(b<<1)+d|0;j=T(j*65535+.5);i:{if(j<4294967296&j>=0){i=~~j>>>0;break i}i=0}G[e>>1]=i;b=b+1|0;e=I[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break h}g=g+8|0;if(f>>>0>g>>>0){continue}break}break g}l=1;if(c>>>0<=e>>>0){break g}ra((e<<1)+d|0,0,c-e<<1)}return l;case 10:break c;default:break b}}e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[a>>2];h=H[e>>2];k=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}G[(g<<1)+d>>1]=I[b|0];b=b+1|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break b}ra((e<<1)+d|0,0,(c&255)-e<<1)}return l}ra((e<<1)+d|0,0,(c&255)-e<<1);return 1}function Sa(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=O(0),l=0,m=0,n=O(0),o=0;a:{if(!d){break a}b:{c:{switch(H[a+28>>2]-1|0){case 0:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[a>>2];h=H[e>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);j=b;b=b+i|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=(g<<3)+d|0;i=F[b|0];H[e>>2]=i;H[e+4>>2]=i>>31;b=b+1|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 1:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[a>>2];h=H[e>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);j=b;b=b+i|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=(g<<3)+d|0;H[e>>2]=I[b|0];H[e+4>>2]=0;b=b+1|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 2:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[a>>2];h=H[e>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);j=b;b=b+i|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=(g<<3)+d|0;i=G[b>>1];H[e>>2]=i;H[e+4>>2]=i>>31;b=b+2|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 3:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[a>>2];h=H[e>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);j=b;b=b+i|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=(g<<3)+d|0;H[e>>2]=J[b>>1];H[e+4>>2]=0;b=b+2|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 4:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[a>>2];h=H[e>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);j=b;b=b+i|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=(g<<3)+d|0;i=H[b>>2];H[e>>2]=i;H[e+4>>2]=i>>31;b=b+4|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 5:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[a>>2];h=H[e>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);j=b;b=b+i|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=(g<<3)+d|0;H[e>>2]=H[b>>2];H[e+4>>2]=0;b=b+4|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 6:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[a>>2];h=H[e>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);j=b;b=b+i|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}i=H[b+4>>2];e=(g<<3)+d|0;H[e>>2]=H[b>>2];H[e+4>>2]=i;b=b+8|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 7:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[a>>2];h=H[e>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);j=b;b=b+i|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=H[b>>2];i=H[b+4>>2];if((i|0)<0){break a}j=(g<<3)+d|0;H[j>>2]=e;H[j+4>>2]=i;b=b+8|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 8:d:{e=I[a+24|0];f=c&255;if(!(e>>>0>>0?e:f)){break d}if(I[a+32|0]){break a}e=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);j=b;b=b+e|0;e=H[a>>2];i=H[e+4>>2];e=H[e>>2];if((b|0)>=(i-e|0)){break a}g=b+e|0;h=c&255;b=0;while(1){k=L[g>>2];if(k>=O(0x8000000000000000)|k=O(1)?~~(k>O(0)?O(R(O(T(O(k*O(2.3283064365386963e-10)))),O(4294967296))):O(U(O(O(k-O(~~k>>>0>>>0))*O(2.3283064365386963e-10)))))>>>0:0;m=~~k>>>0;break e}j=-2147483648;m=0}H[e>>2]=m;H[e+4>>2]=j;b=b+1|0;e=I[a+24|0];if(b>>>0>=(e>>>0>>0?e:h)>>>0){break d}g=g+4|0;if(i>>>0>g>>>0){continue}break}break a}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 9:f:{e=I[a+24|0];f=c&255;if(!(e>>>0>>0?e:f)){break f}if(I[a+32|0]){break a}e=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);j=b;b=b+e|0;e=H[a>>2];i=H[e+4>>2];e=H[e>>2];if((b|0)>=(i-e|0)){break a}g=b+e|0;h=c&255;b=0;while(1){l=M[g>>3];if(l>=0x8000000000000000|l<-0x8000000000000000|l!=l){break a}o=P(l);if(o==Infinity){break a}e=(b<<3)+d|0;g:{if(o<0x8000000000000000){j=P(l)>=1?~~(l>0?R(T(l*2.3283064365386963e-10),4294967295):U((l-+(~~l>>>0>>>0))*2.3283064365386963e-10))>>>0:0;m=~~l>>>0;break g}j=-2147483648;m=0}H[e>>2]=m;H[e+4>>2]=j;b=b+1|0;e=I[a+24|0];if(b>>>0>=(e>>>0>>0?e:h)>>>0){break f}g=g+8|0;if(i>>>0>g>>>0){continue}break}break a}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 10:break c;default:break a}}e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[a>>2];h=H[e>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);j=b;b=b+i|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=(g<<3)+d|0;H[e>>2]=I[b|0];H[e+4>>2]=0;b=b+1|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0}ra(d,0,a<<3)}}function Oj(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;j=a;a:{b:{c:{d:{e:{f:{g:{h:{a=H[a+8>>2];switch(H[a+28>>2]-1|0){case 4:break c;case 5:break d;case 2:break e;case 3:break f;case 0:break g;case 1:break h;default:break a}}f=I[a+24|0];c=pa(f);a=H[j+16>>2];if(H[a+80>>2]){g=H[H[a>>2]>>2]+H[a+48>>2]|0}else{g=0}if(!b){break b}if(f){o=f&252;l=f&3;h=f>>>0<4;while(1){a=0;e=0;if(!h){while(1){k=g+(d<<2)|0;F[a+c|0]=H[k>>2];F[(a|1)+c|0]=H[k+4>>2];F[(a|2)+c|0]=H[k+8>>2];F[(a|3)+c|0]=H[k+12>>2];a=a+4|0;d=d+4|0;e=e+4|0;if((o|0)!=(e|0)){continue}break}}e=0;if(l){while(1){F[a+c|0]=H[g+(d<<2)>>2];a=a+1|0;d=d+1|0;e=e+1|0;if((l|0)!=(e|0)){continue}break}}qa(H[H[H[j+8>>2]+64>>2]>>2]+m|0,c,f);m=f+m|0;n=n+1|0;if((n|0)!=(b|0)){continue}break}break b}a=0;if((b|0)!=1){g=b&-2;while(1){qa(H[H[H[j+8>>2]+64>>2]>>2]+a|0,c,f);a=a+f|0;qa(a+H[H[H[j+8>>2]+64>>2]>>2]|0,c,f);a=a+f|0;d=d+2|0;if((g|0)!=(d|0)){continue}break}}if(!(b&1)){break b}qa(H[H[H[j+8>>2]+64>>2]>>2]+a|0,c,f);break b}f=I[a+24|0];c=pa(f);a=H[j+16>>2];if(H[a+80>>2]){g=H[H[a>>2]>>2]+H[a+48>>2]|0}else{g=0}if(!b){break b}if(f){o=f&252;l=f&3;h=f>>>0<4;while(1){a=0;e=0;if(!h){while(1){k=g+(d<<2)|0;F[a+c|0]=H[k>>2];F[(a|1)+c|0]=H[k+4>>2];F[(a|2)+c|0]=H[k+8>>2];F[(a|3)+c|0]=H[k+12>>2];a=a+4|0;d=d+4|0;e=e+4|0;if((o|0)!=(e|0)){continue}break}}e=0;if(l){while(1){F[a+c|0]=H[g+(d<<2)>>2];a=a+1|0;d=d+1|0;e=e+1|0;if((l|0)!=(e|0)){continue}break}}qa(H[H[H[j+8>>2]+64>>2]>>2]+m|0,c,f);m=f+m|0;n=n+1|0;if((n|0)!=(b|0)){continue}break}break b}a=0;if((b|0)!=1){g=b&-2;while(1){qa(H[H[H[j+8>>2]+64>>2]>>2]+a|0,c,f);a=a+f|0;qa(a+H[H[H[j+8>>2]+64>>2]>>2]|0,c,f);a=a+f|0;d=d+2|0;if((g|0)!=(d|0)){continue}break}}if(!(b&1)){break b}qa(H[H[H[j+8>>2]+64>>2]>>2]+a|0,c,f);break b}h=I[a+24|0];i=h<<1;c=pa(i);a=H[j+16>>2];if(H[a+80>>2]){g=H[H[a>>2]>>2]+H[a+48>>2]|0}else{g=0}if(!b){break b}if(h){o=h&252;l=h&3;h=h>>>0<4;while(1){a=0;e=0;if(!h){while(1){f=a<<1;k=g+(d<<2)|0;G[f+c>>1]=H[k>>2];G[(f|2)+c>>1]=H[k+4>>2];G[(f|4)+c>>1]=H[k+8>>2];G[(f|6)+c>>1]=H[k+12>>2];a=a+4|0;d=d+4|0;e=e+4|0;if((o|0)!=(e|0)){continue}break}}e=0;if(l){while(1){G[(a<<1)+c>>1]=H[g+(d<<2)>>2];a=a+1|0;d=d+1|0;e=e+1|0;if((l|0)!=(e|0)){continue}break}}qa(H[H[H[j+8>>2]+64>>2]>>2]+n|0,c,i);n=i+n|0;m=m+1|0;if((m|0)!=(b|0)){continue}break}break b}a=0;if((b|0)!=1){g=b&-2;while(1){qa(H[H[H[j+8>>2]+64>>2]>>2]+a|0,c,i);a=a+i|0;qa(a+H[H[H[j+8>>2]+64>>2]>>2]|0,c,i);a=a+i|0;d=d+2|0;if((g|0)!=(d|0)){continue}break}}if(!(b&1)){break b}qa(H[H[H[j+8>>2]+64>>2]>>2]+a|0,c,i);break b}h=I[a+24|0];i=h<<1;c=pa(i);a=H[j+16>>2];if(H[a+80>>2]){g=H[H[a>>2]>>2]+H[a+48>>2]|0}else{g=0}if(!b){break b}if(h){o=h&252;l=h&3;h=h>>>0<4;while(1){a=0;e=0;if(!h){while(1){f=a<<1;k=g+(d<<2)|0;G[f+c>>1]=H[k>>2];G[(f|2)+c>>1]=H[k+4>>2];G[(f|4)+c>>1]=H[k+8>>2];G[(f|6)+c>>1]=H[k+12>>2];a=a+4|0;d=d+4|0;e=e+4|0;if((o|0)!=(e|0)){continue}break}}e=0;if(l){while(1){G[(a<<1)+c>>1]=H[g+(d<<2)>>2];a=a+1|0;d=d+1|0;e=e+1|0;if((l|0)!=(e|0)){continue}break}}qa(H[H[H[j+8>>2]+64>>2]>>2]+n|0,c,i);n=i+n|0;m=m+1|0;if((m|0)!=(b|0)){continue}break}break b}a=0;if((b|0)!=1){g=b&-2;while(1){qa(H[H[H[j+8>>2]+64>>2]>>2]+a|0,c,i);a=a+i|0;qa(a+H[H[H[j+8>>2]+64>>2]>>2]|0,c,i);a=a+i|0;d=d+2|0;if((g|0)!=(d|0)){continue}break}}if(!(b&1)){break b}qa(H[H[H[j+8>>2]+64>>2]>>2]+a|0,c,i);break b}h=I[a+24|0];i=h<<2;c=pa(i);a=H[j+16>>2];if(H[a+80>>2]){g=H[H[a>>2]>>2]+H[a+48>>2]|0}else{g=0}if(!b){break b}if(h){o=h&252;l=h&3;h=h>>>0<4;while(1){a=0;e=0;if(!h){while(1){f=a<<2;k=g+(d<<2)|0;H[f+c>>2]=H[k>>2];H[(f|4)+c>>2]=H[k+4>>2];H[(f|8)+c>>2]=H[k+8>>2];H[(f|12)+c>>2]=H[k+12>>2];a=a+4|0;d=d+4|0;e=e+4|0;if((o|0)!=(e|0)){continue}break}}e=0;if(l){while(1){H[(a<<2)+c>>2]=H[g+(d<<2)>>2];a=a+1|0;d=d+1|0;e=e+1|0;if((l|0)!=(e|0)){continue}break}}qa(H[H[H[j+8>>2]+64>>2]>>2]+n|0,c,i);n=i+n|0;m=m+1|0;if((m|0)!=(b|0)){continue}break}break b}a=0;if((b|0)!=1){g=b&-2;while(1){qa(H[H[H[j+8>>2]+64>>2]>>2]+a|0,c,i);a=a+i|0;qa(a+H[H[H[j+8>>2]+64>>2]>>2]|0,c,i);a=a+i|0;d=d+2|0;if((g|0)!=(d|0)){continue}break}}if(!(b&1)){break b}qa(H[H[H[j+8>>2]+64>>2]>>2]+a|0,c,i);break b}h=I[a+24|0];i=h<<2;c=pa(i);a=H[j+16>>2];if(H[a+80>>2]){g=H[H[a>>2]>>2]+H[a+48>>2]|0}else{g=0}if(!b){break b}if(h){o=h&252;l=h&3;h=h>>>0<4;while(1){a=0;e=0;if(!h){while(1){f=a<<2;k=g+(d<<2)|0;H[f+c>>2]=H[k>>2];H[(f|4)+c>>2]=H[k+4>>2];H[(f|8)+c>>2]=H[k+8>>2];H[(f|12)+c>>2]=H[k+12>>2];a=a+4|0;d=d+4|0;e=e+4|0;if((o|0)!=(e|0)){continue}break}}e=0;if(l){while(1){H[(a<<2)+c>>2]=H[g+(d<<2)>>2];a=a+1|0;d=d+1|0;e=e+1|0;if((l|0)!=(e|0)){continue}break}}qa(H[H[H[j+8>>2]+64>>2]>>2]+n|0,c,i);n=i+n|0;m=m+1|0;if((m|0)!=(b|0)){continue}break}break b}a=0;if((b|0)!=1){g=b&-2;while(1){qa(H[H[H[j+8>>2]+64>>2]>>2]+a|0,c,i);a=a+i|0;qa(a+H[H[H[j+8>>2]+64>>2]>>2]|0,c,i);a=a+i|0;d=d+2|0;if((g|0)!=(d|0)){continue}break}}if(!(b&1)){break b}qa(H[H[H[j+8>>2]+64>>2]>>2]+a|0,c,i)}oa(c);c=1}return c|0}function dc(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=O(0);a:{b:{if(!d){break b}c:{switch(H[a+28>>2]-1|0){case 0:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[a>>2];h=H[e>>2];l=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+l|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}H[(g<<2)+d>>2]=F[b|0];b=b+1|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 1:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[a>>2];h=H[e>>2];l=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+l|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}H[(g<<2)+d>>2]=I[b|0];b=b+1|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 2:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[a>>2];h=H[e>>2];l=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+l|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}H[(g<<2)+d>>2]=G[b>>1];b=b+2|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 3:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[a>>2];h=H[e>>2];l=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+l|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}H[(g<<2)+d>>2]=J[b>>1];b=b+2|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 4:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[a>>2];h=H[e>>2];l=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+l|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}H[(g<<2)+d>>2]=H[b>>2];b=b+4|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 5:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[a>>2];h=H[e>>2];l=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+l|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}H[(g<<2)+d>>2]=H[b>>2];b=b+4|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 6:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[a>>2];h=H[e>>2];l=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+l|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}e=H[b>>2];if(H[b+4>>2]){break b}H[(g<<2)+d>>2]=e;b=b+8|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 7:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[a>>2];h=H[e>>2];l=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+l|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}e=H[b>>2];if(H[b+4>>2]){break b}H[(g<<2)+d>>2]=e;b=b+8|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 8:d:{e:{e=I[a+24|0];c=c&255;if(!(c>>>0>e>>>0?e:c)){break e}e=H[a>>2];k=H[e>>2];g=k;f=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+f|0;g=b+g|0;f=H[e+4>>2];e=f-k|0;if(!I[a+32|0]){k=0;if((b|0)>=(e|0)){break d}b=0;while(1){m=L[g>>2];if(m>=O(4294967296)|m=O(0)){i=~~m>>>0}else{i=0}H[e>>2]=i;b=b+1|0;e=I[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break e}g=g+4|0;if(f>>>0>g>>>0){continue}break}break d}k=0;if((b|0)>=(e|0)){break d}b=0;while(1){m=L[g>>2];if(m>=O(4294967296)|mO(1)){break d}e=(b<<2)+d|0;j=T(+m*4294967295+.5);f:{if(j<4294967296&j>=0){i=~~j>>>0;break f}i=0}H[e>>2]=i;b=b+1|0;e=I[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break e}g=g+4|0;if(f>>>0>g>>>0){continue}break}break d}k=1;if(c>>>0<=e>>>0){break d}ra((e<<2)+d|0,0,c-e<<2)}return k;case 9:g:{h:{e=I[a+24|0];c=c&255;if(!(c>>>0>e>>>0?e:c)){break h}e=H[a>>2];k=H[e>>2];g=k;f=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+f|0;g=b+g|0;f=H[e+4>>2];e=f-k|0;if(!I[a+32|0]){k=0;if((b|0)>=(e|0)){break g}b=0;while(1){j=M[g>>3];if(j>=4294967295|j<0|(P(j)==Infinity|j!=j)){break g}e=(b<<2)+d|0;if(j<4294967296&j>=0){i=~~j>>>0}else{i=0}H[e>>2]=i;b=b+1|0;e=I[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break h}g=g+8|0;if(f>>>0>g>>>0){continue}break}break g}k=0;if((b|0)>=(e|0)){break g}b=0;while(1){j=M[g>>3];if(j>=4294967295|j<0|(P(j)==Infinity|j!=j)){break g}if(j>1){break g}e=(b<<2)+d|0;j=T(j*4294967295+.5);i:{if(j<4294967296&j>=0){i=~~j>>>0;break i}i=0}H[e>>2]=i;b=b+1|0;e=I[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break h}g=g+8|0;if(f>>>0>g>>>0){continue}break}break g}k=1;if(c>>>0<=e>>>0){break g}ra((e<<2)+d|0,0,c-e<<2)}return k;case 10:break c;default:break b}}e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[a>>2];h=H[e>>2];l=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);i=b;b=b+l|0;b=b+h|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}H[(g<<2)+d>>2]=I[b|0];b=b+1|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}ra((e<<2)+d|0,0,(c&255)-e<<2)}return k}ra((e<<2)+d|0,0,(c&255)-e<<2);return 1}function ye(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;a:{b:{c:{d:{e:{if(H[a+92>>2]==H[a+88>>2]){break e}c=H[a+52>>2];f:{if((c|0)!=H[a+56>>2]){H[c>>2]=b;H[a+52>>2]=c+4;break f}h=H[a+48>>2];g=c-h|0;d=g>>2;f=d+1|0;if(f>>>0>=1073741824){break a}e=g>>>1|0;g=g>>>0>=2147483644?1073741823:f>>>0>>0?e:f;if(g){if(g>>>0>=1073741824){break d}e=pa(g<<2)}else{e=0}f=e+(d<<2)|0;H[f>>2]=b;d=f+4|0;if((c|0)!=(h|0)){while(1){f=f-4|0;c=c-4|0;H[f>>2]=H[c>>2];if((c|0)!=(h|0)){continue}break}}H[a+56>>2]=e+(g<<2);H[a+52>>2]=d;H[a+48>>2]=f;if(!h){break f}oa(h)}H[a+84>>2]=0;c=-1;e=-1;g:{if((b|0)==-1){break g}d=H[a+4>>2];e=b+1|0;e=(e>>>0)%3|0?e:b-2|0;if((e|0)!=-1){c=H[H[d>>2]+(e<<2)>>2]}h:{if((b>>>0)%3|0){l=b-1|0;break h}l=b+2|0;e=-1;if((l|0)==-1){break g}}e=H[H[d>>2]+(l<<2)>>2]}i=e>>>3&536870908;d=H[a+36>>2];h=d+(c>>>3&536870908)|0;g=H[h>>2];f=1<>2]=f|g;f=a+8|0;if((b|0)!=-1){d=b+1|0;d=(d>>>0)%3|0?d:b-2|0}else{d=-1}Ua(f,c,d);d=H[a+36>>2]}f=d+i|0;d=H[f>>2];c=1<>2]=c|d;d=a+8|0;c=-1;i:{if((b|0)==-1){break i}c=b-1|0;if((b>>>0)%3|0){break i}c=b+2|0}Ua(d,e,c)}c=-1;c=(b|0)!=-1?H[H[H[a+4>>2]>>2]+(b<<2)>>2]:c;f=H[a+36>>2]+(c>>>3&536870908)|0;d=H[f>>2];e=1<>2]=d|e;Ua(a+8|0,c,b)}d=H[a+84>>2];if((d|0)>2){break e}while(1){e=N(d,12)+a|0;b=H[e+52>>2];if((b|0)==H[e+48>>2]){d=d+1|0;if((d|0)!=3){continue}break e}b=b-4|0;c=H[b>>2];H[e+52>>2]=b;H[a+84>>2]=d;if((c|0)==-1){break e}f=H[a+24>>2];b=(c>>>0)/3|0;j:{if(H[f+(b>>>3&268435452)>>2]>>>b&1){break j}k:{while(1){k=(c>>>0)/3|0;b=(k>>>3&268435452)+f|0;H[b>>2]=H[b>>2]|1<>2]>>2]+(c<<2)>>2]:d;f=H[a+36>>2]+(d>>>3&536870908)|0;e=H[f>>2];b=1<>2]=b|e;i=H[(H[H[a+16>>2]+96>>2]+N(k,12)|0)+((c>>>0)%3<<2)>>2];l=H[H[a+20>>2]+4>>2];f=H[l+4>>2];t:{if((f|0)!=H[l+8>>2]){H[f>>2]=i;H[l+4>>2]=f+4;break t}j=H[l>>2];h=f-j|0;g=h>>2;e=g+1|0;if(e>>>0>=1073741824){break s}b=h>>>1|0;h=h>>>0>=2147483644?1073741823:b>>>0>e>>>0?b:e;if(h){if(h>>>0>=1073741824){break d}e=pa(h<<2)}else{e=0}b=e+(g<<2)|0;H[b>>2]=i;g=b+4|0;if((f|0)!=(j|0)){while(1){b=b-4|0;f=f-4|0;H[b>>2]=H[f>>2];if((f|0)!=(j|0)){continue}break}}H[l+8>>2]=e+(h<<2);H[l+4>>2]=g;H[l>>2]=b;if(!j){break t}oa(j)}j=H[a+12>>2];f=H[j+4>>2];u:{if((f|0)!=H[j+8>>2]){H[f>>2]=c;H[j+4>>2]=f+4;break u}i=H[j>>2];h=f-i|0;g=h>>2;e=g+1|0;if(e>>>0>=1073741824){break r}b=h>>>1|0;h=h>>>0>=2147483644?1073741823:b>>>0>e>>>0?b:e;if(h){if(h>>>0>=1073741824){break d}e=pa(h<<2)}else{e=0}b=e+(g<<2)|0;H[b>>2]=c;g=b+4|0;if((f|0)!=(i|0)){while(1){b=b-4|0;f=f-4|0;H[b>>2]=H[f>>2];if((f|0)!=(i|0)){continue}break}}H[j+8>>2]=e+(h<<2);H[j+4>>2]=g;H[j>>2]=b;if(!i){break u}oa(i)}b=H[a+12>>2];H[H[b+12>>2]+(d<<2)>>2]=H[b+24>>2];H[b+24>>2]=H[b+24>>2]+1}if((c|0)==-1){break k}g=H[a+4>>2];f=-1;b=c+1|0;b=(b>>>0)%3|0?b:c-2|0;if((b|0)!=-1){f=H[H[g+12>>2]+(b<<2)>>2]}v:{w:{if((N(k,3)|0)!=(c|0)){d=c-1|0;break w}d=c+2|0;c=-1;if((d|0)==-1){break v}}c=H[H[g+12>>2]+(d<<2)>>2]}d=(c|0)==-1;e=(c>>>0)/3|0;if((f|0)!=-1){b=(f>>>0)/3|0;b=H[H[a+24>>2]+(b>>>3&268435452)>>2]&1<>2]+(b>>>3&536870908)>>2]>>>b&1){break x}k=0;b=H[H[g>>2]+(c<<2)>>2];if(!(H[H[a+36>>2]+(b>>>3&536870908)>>2]>>>b&1)){b=H[a+88>>2]+(b<<2)|0;e=H[b>>2];H[b>>2]=e+1;k=(e|0)<=0?2:1}if(H[a+84>>2]>=(k|0)&l){break m}j=N(k,12)+a|0;b=H[j+52>>2];y:{if((b|0)!=H[j+56>>2]){H[b>>2]=c;H[j+52>>2]=b+4;break y}i=H[j+48>>2];h=b-i|0;d=h>>2;g=d+1|0;if(g>>>0>=1073741824){break c}e=h>>>1|0;g=h>>>0>=2147483644?1073741823:e>>>0>g>>>0?e:g;if(g){if(g>>>0>=1073741824){break d}e=pa(g<<2)}else{e=0}d=e+(d<<2)|0;H[d>>2]=c;c=d+4|0;if((b|0)!=(i|0)){while(1){d=d-4|0;b=b-4|0;H[d>>2]=H[b>>2];if((b|0)!=(i|0)){continue}break}}H[j+48>>2]=d;H[j+52>>2]=c;H[j+56>>2]=e+(g<<2);if(!i){break y}oa(i)}if(H[a+84>>2]<=(k|0)){break x}H[a+84>>2]=k}if(l){break k}c=-1;if((f|0)==-1){break n}}c=H[H[H[a+4>>2]>>2]+(f<<2)>>2]}b=0;if(!(H[H[a+36>>2]+(c>>>3&536870908)>>2]>>>c&1)){b=H[a+88>>2]+(c<<2)|0;c=H[b>>2];H[b>>2]=c+1;b=(c|0)<=0?2:1}if(H[a+84>>2]<(b|0)){break l}c=f}f=H[a+24>>2];continue}break}k=N(b,12)+a|0;c=H[k+52>>2];z:{if((c|0)!=H[k+56>>2]){H[c>>2]=f;H[k+52>>2]=c+4;break z}i=H[k+48>>2];h=c-i|0;d=h>>2;g=d+1|0;if(g>>>0>=1073741824){break b}e=h>>>1|0;g=h>>>0>=2147483644?1073741823:e>>>0>g>>>0?e:g;if(g){if(g>>>0>=1073741824){break d}e=pa(g<<2)}else{e=0}d=e+(d<<2)|0;H[d>>2]=f;f=d+4|0;if((c|0)!=(i|0)){while(1){d=d-4|0;c=c-4|0;H[d>>2]=H[c>>2];if((c|0)!=(i|0)){continue}break}}H[k+48>>2]=d;H[k+52>>2]=f;H[k+56>>2]=e+(g<<2);if(!i){break z}oa(i)}d=H[a+84>>2];if((d|0)<=(b|0)){break j}H[a+84>>2]=b;d=b;break j}d=H[a+84>>2]}if((d|0)<3){continue}break}}return 1}wa();v()}sa();v()}sa();v()}sa();v()}function gd(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;n=ca-96|0;ca=n;o=H[a+4>>2];d=H[o+32>>2];i=H[d+8>>2];j=H[d+12>>2];e=j;c=H[d+20>>2];f=H[d+16>>2];a:{if((e|0)<=(c|0)&f>>>0>=i>>>0|(c|0)>(e|0)){break a}p=H[d>>2];g=I[p+f|0];h=f+1|0;e=h?c:c+1|0;H[d+16>>2]=h;H[d+20>>2]=e;if((e|0)>=(j|0)&h>>>0>=i>>>0|(e|0)>(j|0)){break a}m=I[h+p|0];h=f+2|0;e=h>>>0<2?c+1|0:c;H[d+16>>2]=h;H[d+20>>2]=e;l=g<<24>>24;b:{if((l|0)>=0){k=H[a+216>>2];if(g>>>0>=(H[a+220>>2]-k|0)/144>>>0){break a}k=k+N(g,144)|0;if(H[k>>2]<0){break b}break a}if(H[a+212>>2]>=0){break a}k=a+212|0}H[k>>2]=b;c:{d:{e:{f:{g:{h:{k=J[o+36>>1];i:{if(((k<<8|k>>>8)&65535)>>>0>=258){if((e|0)>=(j|0)&h>>>0>=i>>>0|(e|0)>(j|0)){break a}e=I[h+p|0];f=f+3|0;c=f>>>0<3?c+1|0:c;H[d+16>>2]=f;H[d+20>>2]=c;if(e>>>0>1){break a}d=e>>>0<2?e:0;if(!m){break i}if(!d){break h}break a}if(m){break g}d=0}if((l|0)<0){e=a+184|0}else{c=H[a+216>>2]+N(g,144)|0;F[c+100|0]=0;e=c+104|0}if((d|0)!=1){break e}c=ca-112|0;ca=c;h=H[H[a+4>>2]+44>>2];d=pa(120);H[d>>2]=12172;H[d+4>>2]=0;H[d+116>>2]=0;H[d+112>>2]=e;H[d+108>>2]=h;H[d+12>>2]=0;H[d+16>>2]=0;H[d+20>>2]=0;H[d+24>>2]=0;H[d+28>>2]=0;H[d+32>>2]=0;H[d+36>>2]=0;H[d+40>>2]=0;H[d+44>>2]=0;H[d+48>>2]=0;H[d+52>>2]=0;H[d+56>>2]=0;H[d+60>>2]=0;H[d+8>>2]=12384;f=d- -64|0;H[f>>2]=0;H[f+4>>2]=0;H[d+72>>2]=0;H[d+76>>2]=0;H[d+80>>2]=0;H[d+84>>2]=0;H[d+88>>2]=0;H[d+104>>2]=0;H[d+96>>2]=0;H[d+100>>2]=0;f=H[a+8>>2];H[c+48>>2]=0;H[c+52>>2]=0;H[c+40>>2]=0;H[c+44>>2]=0;i=c+32|0;H[i>>2]=0;H[i+4>>2]=0;H[c+24>>2]=0;H[c+28>>2]=0;g=c- -64|0;H[g>>2]=0;H[g+4>>2]=0;H[c+72>>2]=0;H[c+76>>2]=0;H[c+80>>2]=0;H[c+84>>2]=0;H[c+88>>2]=0;H[c+104>>2]=0;H[c+16>>2]=0;H[c+20>>2]=0;H[c+56>>2]=0;H[c+60>>2]=0;H[c+8>>2]=12384;H[c+96>>2]=0;H[c+100>>2]=0;H[c+12>>2]=f;g=H[f>>2];j=H[f+4>>2];F[c+111|0]=0;m=i;i=c+111|0;Oa(m,(j-g>>2>>>0)/3|0,i);g=H[c+12>>2];j=H[g+28>>2];g=H[g+24>>2];F[c+111|0]=0;Oa(c+44|0,j-g>>2,i);H[c+28>>2]=d;H[c+24>>2]=h;H[c+20>>2]=e;H[c+16>>2]=f;f=d+8|0;e=c+8|0;fd(f,e);j:{if((e|0)==(f|0)){H[d+92>>2]=H[e+84>>2];break j}Cb(d+56|0,H[e+48>>2],H[e+52>>2]);Cb(d+68|0,H[e+60>>2],H[e- -64>>2]);Cb(d+80|0,H[e+72>>2],H[e+76>>2]);H[d+92>>2]=H[e+84>>2];Aa(d+96|0,H[e+88>>2],H[e+92>>2])}H[c+8>>2]=12384;e=H[c+96>>2];if(e){H[c+100>>2]=e;oa(e)}e=H[c+80>>2];if(e){H[c+84>>2]=e;oa(e)}e=H[c+68>>2];if(e){H[c+72>>2]=e;oa(e)}e=H[c+56>>2];if(e){H[c+60>>2]=e;oa(e)}H[c+8>>2]=12620;e=H[c+44>>2];if(e){oa(e)}e=H[c+32>>2];if(e){oa(e)}ca=c+112|0;break d}if((l|0)>=0){break f}break a}if((l|0)<0){break a}}e=H[a+216>>2];c=H[o+44>>2];d=pa(80);H[d>>2]=12932;H[d+4>>2]=0;H[d+76>>2]=0;H[d+68>>2]=c;H[d+8>>2]=11872;H[d+12>>2]=0;H[d+16>>2]=0;H[d+20>>2]=0;H[d+24>>2]=0;H[d+28>>2]=0;H[d+32>>2]=0;H[d+36>>2]=0;H[d+40>>2]=0;H[d+44>>2]=0;H[d+48>>2]=0;H[d+52>>2]=0;e=e+N(g,144)|0;f=e+104|0;H[d+72>>2]=f;H[d- -64>>2]=0;H[d+56>>2]=0;H[d+60>>2]=0;H[n+24>>2]=c;c=n;H[c+68>>2]=0;H[c+72>>2]=0;H[c+60>>2]=0;H[c+64>>2]=0;H[c+52>>2]=0;H[c+56>>2]=0;H[c+44>>2]=0;H[c+48>>2]=0;H[c+84>>2]=0;H[c+88>>2]=0;H[c+76>>2]=0;H[c+80>>2]=0;H[c+28>>2]=d;h=H[c+28>>2];H[c+8>>2]=H[c+24>>2];H[c+12>>2]=h;H[c+20>>2]=f;f=e+4|0;H[c+16>>2]=f;H[c+36>>2]=0;H[c+40>>2]=0;H[c+32>>2]=11872;e=H[c+20>>2];H[c>>2]=H[c+16>>2];H[c+4>>2]=e;e=c+32|0;Ie(e,f,c);c=d+8|0;fd(c,e);if((c|0)!=(e|0)){Cb(d+56|0,H[e+48>>2],H[e+52>>2])}He(e);break c}c=ca+-64|0;ca=c;h=H[H[a+4>>2]+44>>2];d=pa(80);H[d>>2]=12640;H[d+4>>2]=0;H[d+76>>2]=0;H[d+72>>2]=e;H[d+68>>2]=h;H[d+8>>2]=12804;H[d+12>>2]=0;H[d+16>>2]=0;H[d+20>>2]=0;H[d+24>>2]=0;H[d+28>>2]=0;H[d+32>>2]=0;H[d+36>>2]=0;H[d+40>>2]=0;H[d+44>>2]=0;H[d+48>>2]=0;H[d+52>>2]=0;H[d- -64>>2]=0;i=d+56|0;f=i;H[f>>2]=0;H[f+4>>2]=0;f=H[a+8>>2];H[c+40>>2]=0;H[c+44>>2]=0;H[c+32>>2]=0;H[c+36>>2]=0;g=c+24|0;H[g>>2]=0;H[g+4>>2]=0;H[c+16>>2]=0;H[c+20>>2]=0;H[c+56>>2]=0;H[c+8>>2]=0;H[c+12>>2]=0;H[c+48>>2]=0;H[c+52>>2]=0;H[c>>2]=12804;H[c+4>>2]=f;j=H[f>>2];l=H[f+4>>2];F[c+63|0]=0;m=g;g=c+63|0;Oa(m,(l-j>>2>>>0)/3|0,g);j=H[c+4>>2];l=H[j+28>>2];j=H[j+24>>2];F[c+63|0]=0;Oa(c+36|0,l-j>>2,g);H[c+20>>2]=d;H[c+16>>2]=h;H[c+12>>2]=e;H[c+8>>2]=f;fd(d+8|0,c);Cb(i,H[c+48>>2],H[c+52>>2]);H[c>>2]=12804;e=H[c+48>>2];if(e){H[c+52>>2]=e;oa(e)}H[c>>2]=12620;e=H[c+36>>2];if(e){oa(e)}e=H[c+24>>2];if(e){oa(e)}ca=c- -64|0}if(!d){break a}}d=od(pa(64),d);c=H[a+4>>2];a=d;d=b;k:{l:{if((d|0)>=0){h=c+8|0;b=H[c+12>>2];i=H[c+8>>2];e=b-i>>2;m:{if((e|0)>(d|0)){break m}f=d+1|0;if(d>>>0>=e>>>0){Vb(h,f-e|0);break m}if(e>>>0<=f>>>0){break m}f=i+(f<<2)|0;if((f|0)!=(b|0)){while(1){b=b-4|0;e=H[b>>2];H[b>>2]=0;if(e){ea[H[H[e>>2]+4>>2]](e)}if((b|0)!=(f|0)){continue}break}}H[c+12>>2]=f}c=H[h>>2]+(d<<2)|0;b=H[c>>2];H[c>>2]=a;if(b){break l}break k}b=a;if(!a){break k}}ea[H[H[b>>2]+4>>2]](b)}q=(d^-1)>>>31|0}ca=n+96|0;return q|0}function Kd(a){var b=0,c=0,d=0,e=0,f=0,g=0;e=ca-16|0;ca=e;H[e+12>>2]=a;a:{if(a>>>0<=211){d=H[Jd(14256,14448,e+12|0)>>2];break a}if(a>>>0>=4294967292){X();v()}f=(a>>>0)/210|0;d=N(f,210);H[e+8>>2]=a-d;g=Jd(14448,14640,e+8|0)-14448>>2;while(1){d=H[(g<<2)+14448>>2]+d|0;a=5;while(1){b:{if((a|0)==47){a=211;while(1){b=(d>>>0)/(a>>>0)|0;if(b>>>0>>0){break a}if((N(a,b)|0)==(d|0)){break b}b=a+10|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+12|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+16|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+18|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+22|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+28|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+30|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+36|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+40|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+42|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+46|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+52|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+58|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+60|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+66|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+70|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+72|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+78|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+82|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+88|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+96|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+100|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+102|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+106|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+108|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+112|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+120|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+126|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+130|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+136|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+138|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+142|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+148|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+150|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+156|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+162|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+166|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+168|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+172|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+178|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+180|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+186|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+190|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+192|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+196|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+198|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+208|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}a=a+210|0;if((N(b,c)|0)!=(d|0)){continue}break}break b}b=H[(a<<2)+14256>>2];c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}a=a+1|0;if((N(b,c)|0)!=(d|0)){continue}}break}d=g+1|0;a=(d|0)==48;g=a?0:d;f=a+f|0;d=N(f,210);continue}}ca=e+16|0;return d}function Ib(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;j=ca-16|0;ca=j;a:{b:{c:{d:{if(I[H[a+4>>2]+36|0]<=1){k=-1;c=H[b+20>>2];d=H[b+16>>2];e=d+4|0;c=e>>>0<4?c+1|0:c;g=H[b+12>>2];if(K[b+8>>2]>>0&(g|0)<=(c|0)|(c|0)>(g|0)){break c}d=d+H[b>>2]|0;l=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);H[j+12>>2]=l;H[b+16>>2]=e;H[b+20>>2]=c;break d}k=-1;if(!Ea(1,j+12|0,b)){break c}l=H[j+12>>2]}e:{f:{g:{h:{i:{if(!l){break i}c=H[a+8>>2];if((H[c+4>>2]-H[c>>2]>>2>>>0)/3>>>0>>0){break c}c=J[H[a+4>>2]+36>>1];if(((c<<8|c>>>8)&65535)>>>0>=258){j:{while(1){if(!Ea(1,j+8|0,b)){break c}c=H[j+8>>2];if(!Ea(1,j+8|0,b)){break c}f=c+f|0;c=H[j+8>>2];if(f>>>0>>0){break c}g=f-c|0;c=H[a+40>>2];k:{if((c|0)!=H[a+44>>2]){H[c+4>>2]=f;H[c>>2]=g;H[a+40>>2]=c+12;l=H[j+12>>2];break k}m=H[a+36>>2];d=c-m|0;o=(d|0)/12|0;e=o+1|0;if(e>>>0>=357913942){break j}c=o<<1;h=o>>>0>=178956970?357913941:c>>>0>e>>>0?c:e;if(h){if(h>>>0>=357913942){break b}i=pa(N(h,12))}else{i=0}e=i+N(o,12)|0;H[e+4>>2]=f;H[e>>2]=g;c=va(e+N((d|0)/-12|0,12)|0,m,d);H[a+44>>2]=i+N(h,12);H[a+40>>2]=e+12;H[a+36>>2]=c;if(!m){break k}oa(m)}p=p+1|0;if(l>>>0>p>>>0){continue}break}k=0;Db(b,0,0);if(l){while(1){e=I[b+36|0];c=J[H[a+4>>2]+36>>1];l:{m:{if(((c<<8|c>>>8)&65535)>>>0<=513){if(!e){break l}p=0;c=H[b+32>>2];n=c>>>3|0;g=H[b+24>>2];e=n+g|0;d=H[b+28>>2];n:{if(e>>>0>=d>>>0){f=c;break n}e=I[e|0];f=c+1|0;H[b+32>>2]=f;n=f>>>3|0;p=e>>>(c&7)&1}if(d>>>0>g+n>>>0){break m}break l}if(!e){break l}p=0;f=H[b+32>>2];c=H[b+24>>2]+(f>>>3|0)|0;if(c>>>0>=K[b+28>>2]){break l}p=I[c|0]>>>(f&7)&1}H[b+32>>2]=f+1}c=H[a+36>>2]+N(k,12)|0;F[c+8|0]=I[c+8|0]&254|p&1;k=k+1|0;if((k|0)!=(l|0)){continue}break}}F[b+36|0]=0;f=H[b+20>>2];e=0;d=H[b+32>>2]+7|0;e=d>>>0<7?1:e;c=e>>>3|0;e=(e&7)<<29|d>>>3;d=e+H[b+16>>2]|0;c=c+f|0;H[b+16>>2]=d;H[b+20>>2]=d>>>0>>0?c+1|0:c;break i}sa();v()}while(1){d=H[b+8>>2];c=H[b+12>>2];g=c;c=H[b+20>>2];e=c;h=H[b+16>>2];f=h+4|0;c=f>>>0<4?c+1|0:c;i=f;if(f>>>0>d>>>0&(c|0)>=(g|0)|(c|0)>(g|0)){break c}m=H[b>>2];f=m+h|0;o=I[f|0]|I[f+1|0]<<8|(I[f+2|0]<<16|I[f+3|0]<<24);H[b+16>>2]=i;H[b+20>>2]=c;c=e;f=h+8|0;c=f>>>0<8?c+1|0:c;if(d>>>0>>0&(c|0)>=(g|0)|(c|0)>(g|0)){break c}i=i+m|0;i=I[i|0]|I[i+1|0]<<8|(I[i+2|0]<<16|I[i+3|0]<<24);H[b+16>>2]=f;H[b+20>>2]=c;if(d>>>0<=f>>>0&(c|0)>=(g|0)|(c|0)>(g|0)){break c}d=I[f+m|0];c=h+9|0;e=c>>>0<9?e+1|0:e;H[b+16>>2]=c;H[b+20>>2]=e;f=d&1;c=H[a+40>>2];o:{if((c|0)!=H[a+44>>2]){F[c+8|0]=f;H[c+4>>2]=i;H[c>>2]=o;H[a+40>>2]=c+12;l=H[j+12>>2];break o}m=H[a+36>>2];d=c-m|0;h=(d|0)/12|0;e=h+1|0;if(e>>>0>=357913942){break h}c=h<<1;g=h>>>0>=178956970?357913941:c>>>0>e>>>0?c:e;if(g){if(g>>>0>=357913942){break b}e=pa(N(g,12))}else{e=0}h=e+N(h,12)|0;F[h+8|0]=f;H[h+4>>2]=i;H[h>>2]=o;c=va(h+N((d|0)/-12|0,12)|0,m,d);H[a+44>>2]=e+N(g,12);H[a+40>>2]=h+12;H[a+36>>2]=c;if(!m){break o}oa(m)}n=n+1|0;if(l>>>0>n>>>0){continue}break}}H[j+8>>2]=0;c=J[H[a+4>>2]+36>>1];c=(c<<8|c>>>8)&65535;p:{if(c>>>0<=511){k=-1;c=H[b+20>>2];d=H[b+16>>2];e=d+4|0;c=e>>>0<4?c+1|0:c;f=H[b+12>>2];if(K[b+8>>2]>>0&(f|0)<=(c|0)|(c|0)>(f|0)){break c}d=d+H[b>>2]|0;f=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);H[b+16>>2]=e;H[b+20>>2]=c;break p}if((c|0)!=512){break e}k=-1;if(!Ea(1,j+8|0,b)){break c}f=H[j+8>>2]}if(!f){break e}c=J[H[a+4>>2]+36>>1];if(((c<<8|c>>>8)&65535)>>>0<258){break f}n=0;l=0;while(1){if(!Ea(1,j+4|0,b)){break c}l=H[j+4>>2]+l|0;c=H[a+52>>2];q:{if((c|0)!=H[a+56>>2]){H[c>>2]=l;H[a+52>>2]=c+4;break q}i=H[a+48>>2];g=c-i|0;e=g>>2;d=e+1|0;if(d>>>0>=1073741824){break g}c=g>>>1|0;d=g>>>0>=2147483644?1073741823:c>>>0>d>>>0?c:d;if(d){if(d>>>0>=1073741824){break b}c=pa(d<<2)}else{c=0}e=c+(e<<2)|0;H[e>>2]=l;c=va(c,i,g);H[a+56>>2]=c+(d<<2);H[a+52>>2]=e+4;H[a+48>>2]=c;if(!i){break q}oa(i)}n=n+1|0;if((n|0)!=(f|0)){continue}break}break e}sa();v()}sa();v()}k=0;while(1){c=H[b+20>>2];d=H[b+16>>2];e=d+4|0;c=e>>>0<4?c+1|0:c;g=H[b+12>>2];if(K[b+8>>2]>>0&(g|0)<=(c|0)|(c|0)>(g|0)){k=-1;break c}d=d+H[b>>2]|0;g=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);H[b+16>>2]=e;H[b+20>>2]=c;c=H[a+52>>2];r:{if((c|0)!=H[a+56>>2]){H[c>>2]=g;H[a+52>>2]=c+4;break r}h=H[a+48>>2];i=c-h|0;e=i>>2;d=e+1|0;if(d>>>0>=1073741824){break a}c=i>>>1|0;d=i>>>0>=2147483644?1073741823:c>>>0>d>>>0?c:d;if(d){if(d>>>0>=1073741824){break b}c=pa(d<<2)}else{c=0}e=c+(e<<2)|0;H[e>>2]=g;c=va(c,h,i);H[a+56>>2]=c+(d<<2);H[a+52>>2]=e+4;H[a+48>>2]=c;if(!h){break r}oa(h)}k=k+1|0;if((k|0)!=(f|0)){continue}break}}k=H[b+16>>2]}ca=j+16|0;return k}wa();v()}sa();v()}function Va(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=O(0),k=0,l=0;a:{if(!d){break a}b:{c:{switch(H[a+28>>2]-1|0){case 0:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[a>>2];g=H[e>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);k=b;b=b+i|0;b=b+g|0;g=H[e+4>>2];i=I[a+32|0];while(1){if(b>>>0>=g>>>0){break a}j=O(F[b|0]);L[(h<<2)+d>>2]=i?O(j/O(127)):j;b=b+1|0;h=h+1|0;e=I[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break a}d=(e<<2)+d|0;a=(c&255)-e|0;break b;case 1:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[a>>2];g=H[e>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);k=b;b=b+i|0;b=b+g|0;g=H[e+4>>2];i=I[a+32|0];while(1){if(b>>>0>=g>>>0){break a}j=O(I[b|0]);L[(h<<2)+d>>2]=i?O(j/O(255)):j;b=b+1|0;h=h+1|0;e=I[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break a}d=(e<<2)+d|0;a=(c&255)-e|0;break b;case 2:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[a>>2];g=H[e>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);k=b;b=b+i|0;b=b+g|0;g=H[e+4>>2];i=I[a+32|0];while(1){if(b>>>0>=g>>>0){break a}j=O(G[b>>1]);L[(h<<2)+d>>2]=i?O(j/O(32767)):j;b=b+2|0;h=h+1|0;e=I[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break a}d=(e<<2)+d|0;a=(c&255)-e|0;break b;case 3:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[a>>2];g=H[e>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);k=b;b=b+i|0;b=b+g|0;g=H[e+4>>2];i=I[a+32|0];while(1){if(b>>>0>=g>>>0){break a}j=O(J[b>>1]);L[(h<<2)+d>>2]=i?O(j/O(65535)):j;b=b+2|0;h=h+1|0;e=I[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break a}d=(e<<2)+d|0;a=(c&255)-e|0;break b;case 4:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[a>>2];g=H[e>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);k=b;b=b+i|0;b=b+g|0;g=H[e+4>>2];i=I[a+32|0];while(1){if(b>>>0>=g>>>0){break a}j=O(H[b>>2]);L[(h<<2)+d>>2]=i?O(j*O(4.656612873077393e-10)):j;b=b+4|0;h=h+1|0;e=I[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break a}d=(e<<2)+d|0;a=(c&255)-e|0;break b;case 5:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[a>>2];g=H[e>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);k=b;b=b+i|0;b=b+g|0;g=H[e+4>>2];i=I[a+32|0];while(1){if(b>>>0>=g>>>0){break a}j=O(K[b>>2]);L[(h<<2)+d>>2]=i?O(j*O(2.3283064365386963e-10)):j;b=b+4|0;h=h+1|0;e=I[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break a}d=(e<<2)+d|0;a=(c&255)-e|0;break b;case 6:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[a>>2];g=H[e>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);k=b;b=b+i|0;b=b+g|0;g=H[e+4>>2];i=I[a+32|0];while(1){if(b>>>0>=g>>>0){break a}j=O(+K[b>>2]+ +H[b+4>>2]*4294967296);L[(h<<2)+d>>2]=i?O(j*O(10842021724855044e-35)):j;b=b+8|0;h=h+1|0;e=I[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break a}d=(e<<2)+d|0;a=(c&255)-e|0;break b;case 7:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[a>>2];g=H[e>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);k=b;b=b+i|0;b=b+g|0;g=H[e+4>>2];i=I[a+32|0];while(1){if(b>>>0>=g>>>0){break a}j=O(+K[b>>2]+ +K[b+4>>2]*4294967296);L[(h<<2)+d>>2]=i?O(j*O(5.421010862427522e-20)):j;b=b+8|0;h=h+1|0;e=I[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break a}d=(e<<2)+d|0;a=(c&255)-e|0;break b;case 8:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[a>>2];g=H[e>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);k=b;b=b+i|0;b=b+g|0;g=H[e+4>>2];while(1){if(b>>>0>=g>>>0){break a}L[(h<<2)+d>>2]=L[b>>2];b=b+4|0;h=h+1|0;e=I[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break a}d=(e<<2)+d|0;a=(c&255)-e|0;break b;case 9:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[a>>2];g=H[e>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);k=b;b=b+i|0;b=b+g|0;g=H[e+4>>2];while(1){if(b>>>0>=g>>>0){break a}L[(h<<2)+d>>2]=M[b>>3];b=b+8|0;h=h+1|0;e=I[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break a}d=(e<<2)+d|0;a=(c&255)-e|0;break b;case 10:break c;default:break a}}e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[a>>2];g=H[e>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);k=b;b=b+i|0;b=b+g|0;g=H[e+4>>2];while(1){if(b>>>0>=g>>>0){break a}L[(h<<2)+d>>2]=I[b|0]?O(1):O(0);b=b+1|0;h=h+1|0;e=I[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break a}d=(e<<2)+d|0;a=(c&255)-e|0}ra(d,0,a<<2)}return l}function Hh(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;e=ca-32|0;ca=e;k=H[a+32>>2];b=J[a+36>>1];a:{b:{if(((b<<8|b>>>8)&65535)>>>0<=513){b=H[k+8>>2];d=H[k+12>>2];c=b;b=H[k+20>>2];f=b;g=H[k+16>>2];h=g+4|0;b=h>>>0<4?b+1|0:b;if(c>>>0>>0&(b|0)>=(d|0)|(b|0)>(d|0)){break a}l=H[k>>2];i=l+g|0;n=I[i|0]|I[i+1|0]<<8|(I[i+2|0]<<16|I[i+3|0]<<24);H[k+16>>2]=h;H[k+20>>2]=b;i=c;c=d;b=f;d=g+8|0;b=d>>>0<8?b+1|0:b;if(d>>>0>i>>>0&(b|0)>=(c|0)|(b|0)>(c|0)){break a}c=h+l|0;H[e+24>>2]=I[c|0]|I[c+1|0]<<8|(I[c+2|0]<<16|I[c+3|0]<<24);H[k+16>>2]=d;H[k+20>>2]=b;break b}if(!Fb(1,e+28|0,k)){break a}if(!Fb(1,e+24|0,H[a+32>>2])){break a}n=H[e+28>>2]}if(n>>>0>1431655765){break a}d=H[a+32>>2];b=d;g=H[b+8>>2];c=H[b+16>>2];h=H[b+12>>2];b=H[b+20>>2];f=Sj(g-c|0,h-(b+(c>>>0>g>>>0)|0)|0,3,0);if(!da&f>>>0>>0|((b|0)>=(h|0)&c>>>0>=g>>>0|(b|0)>(h|0))){break a}g=I[c+H[d>>2]|0];c=c+1|0;b=c?b:b+1|0;H[d+16>>2]=c;H[d+20>>2]=b;c:{d:{if(!g){k=0;c=ca-32|0;ca=c;H[c+24>>2]=0;H[c+16>>2]=0;H[c+20>>2]=0;e:{f:{b=N(n,3);if(b){if(b>>>0>=1073741824){break f}d=N(n,12);k=pa(d);ra(k,0,d)}b=kd(b,1,H[a+32>>2],k);g:{h:{if(!(!n|!b)){d=0;while(1){i:{g=H[(d<<2)+k>>2];b=g>>>1|0;j:{if(g&1){if((b|0)>(j|0)){break i}b=0-b|0;break j}if((j^2147483647)>>>0>>0){break i}}g=b+j|0;H[c>>2]=g;h=H[(d+1<<2)+k>>2];b=h>>>1|0;k:{if(h&1){if((b|0)>(g|0)){break i}b=0-b|0;break k}if((g^2147483647)>>>0>>0){break i}}g=b+g|0;H[c+4>>2]=g;h=H[(d+2<<2)+k>>2];b=h>>>1|0;l:{if(h&1){if((b|0)>(g|0)){break i}b=0-b|0;break l}if((g^2147483647)>>>0>>0){break i}}d=d+3|0;j=b+g|0;H[c+8>>2]=j;Rb(H[a+44>>2]+96|0,c);b=1;o=o+1|0;if((o|0)!=(n|0)){continue}break h}break}b=0;break h}if(!k){break g}}oa(k)}ca=c+32|0;break e}sa();v()}if(!b){break a}k=H[e+24>>2];break d}k=H[e+24>>2];if(k>>>0<=255){if(!n){break d}while(1){m:{H[e+16>>2]=0;H[e+8>>2]=0;H[e+12>>2]=0;d=H[a+32>>2];b=d;g=H[b+16>>2];f=H[b+8>>2];c=H[b+20>>2];i=H[b+12>>2];b=i;if(f>>>0<=g>>>0&(c|0)>=(b|0)|(b|0)<(c|0)){break m}j=H[d>>2];l=I[j+g|0];b=c;h=g+1|0;b=h?b:b+1|0;H[d+16>>2]=h;H[d+20>>2]=b;H[e+8>>2]=l;l=f>>>0>>0&(c|0)>=(i|0)|(c|0)>(i|0);f=l?g:f;i=l?c:i;if((f|0)==(h|0)&(i|0)==(b|0)){break m}l=I[h+j|0];b=c;h=g+2|0;b=h>>>0<2?b+1|0:b;H[d+16>>2]=h;H[d+20>>2]=b;H[e+12>>2]=l;if((f|0)==(h|0)&(b|0)==(i|0)){break m}h=I[h+j|0];b=c;c=g+3|0;b=c>>>0<3?b+1|0:b;H[d+16>>2]=c;H[d+20>>2]=b;H[e+16>>2]=h;Rb(H[a+44>>2]+96|0,e+8|0);m=m+1|0;if((m|0)!=(n|0)){continue}break d}break}m=0;break a}if(k>>>0<=65535){if(!n){break d}while(1){n:{H[e+16>>2]=0;H[e+8>>2]=0;H[e+12>>2]=0;j=H[a+32>>2];b=j;c=H[b+8>>2];d=H[b+12>>2];h=H[b+16>>2];b=H[b+20>>2];g=b;f=h+2|0;b=f>>>0<2?b+1|0:b;if(c>>>0>>0&(b|0)>=(d|0)|(b|0)>(d|0)){break n}l=H[j>>2];i=l+h|0;i=I[i|0]|I[i+1|0]<<8;H[j+16>>2]=f;H[j+20>>2]=b;H[e+8>>2]=i;b=g;i=h+4|0;b=i>>>0<4?b+1|0:b;if(c>>>0>>0&(b|0)>=(d|0)|(b|0)>(d|0)){break n}f=f+l|0;f=I[f|0]|I[f+1|0]<<8;H[j+16>>2]=i;H[j+20>>2]=b;H[e+12>>2]=f;f=c;b=g;c=h+6|0;b=c>>>0<6?b+1|0:b;if(c>>>0>f>>>0&(b|0)>=(d|0)|(b|0)>(d|0)){break n}d=i+l|0;d=I[d|0]|I[d+1|0]<<8;H[j+16>>2]=c;H[j+20>>2]=b;H[e+16>>2]=d;Rb(H[a+44>>2]+96|0,e+8|0);m=m+1|0;if((m|0)!=(n|0)){continue}break d}break}m=0;break a}o:{if(k>>>0>2097151){break o}b=J[a+36>>1];if(((b<<8|b>>>8)&65535)>>>0<514){break o}if(!n){break d}while(1){p:{H[e+16>>2]=0;H[e+8>>2]=0;H[e+12>>2]=0;if(!Fb(1,e+4|0,H[a+32>>2])){break p}H[e+8>>2]=H[e+4>>2];if(!Fb(1,e+4|0,H[a+32>>2])){break p}H[e+12>>2]=H[e+4>>2];if(!Fb(1,e+4|0,H[a+32>>2])){break p}H[e+16>>2]=H[e+4>>2];Rb(H[a+44>>2]+96|0,e+8|0);m=m+1|0;if((m|0)!=(n|0)){continue}break d}break}m=0;break a}if(!n){break d}while(1){H[e+16>>2]=0;H[e+8>>2]=0;H[e+12>>2]=0;j=H[a+32>>2];b=j;c=H[b+8>>2];d=H[b+12>>2];h=H[b+16>>2];b=H[b+20>>2];g=b;f=h+4|0;b=f>>>0<4?b+1|0:b;if(c>>>0>>0&(b|0)>=(d|0)|(b|0)>(d|0)){break c}l=H[j>>2];i=l+h|0;i=I[i|0]|I[i+1|0]<<8|(I[i+2|0]<<16|I[i+3|0]<<24);H[j+16>>2]=f;H[j+20>>2]=b;H[e+8>>2]=i;b=g;i=h+8|0;b=i>>>0<8?b+1|0:b;if(c>>>0>>0&(b|0)>=(d|0)|(b|0)>(d|0)){break c}f=f+l|0;f=I[f|0]|I[f+1|0]<<8|(I[f+2|0]<<16|I[f+3|0]<<24);H[j+16>>2]=i;H[j+20>>2]=b;H[e+12>>2]=f;f=c;b=g;c=h+12|0;b=c>>>0<12?b+1|0:b;if(c>>>0>f>>>0&(b|0)>=(d|0)|(b|0)>(d|0)){break c}d=i+l|0;d=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);H[j+16>>2]=c;H[j+20>>2]=b;H[e+16>>2]=d;Rb(H[a+44>>2]+96|0,e+8|0);m=m+1|0;if((m|0)!=(n|0)){continue}break}}H[H[a+4>>2]+80>>2]=k;m=1;break a}m=0}ca=e+32|0;return m|0}function ic(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=O(0),m=O(0);a:{b:{if(!d){break b}c:{switch(H[a+28>>2]-1|0){case 0:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[H[a>>2]>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(K[H[a>>2]+4>>2]<=b>>>0){break b}F[d+g|0]=I[b|0];b=b+1|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 1:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[H[a>>2]>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(K[H[a>>2]+4>>2]<=b>>>0){return 0}e=F[b|0];if((e|0)<0){break b}F[d+g|0]=e;b=b+1|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 2:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[H[a>>2]>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(K[H[a>>2]+4>>2]<=b>>>0){break b}e=J[b>>1];if((e+128&65535)>>>0>255){break b}F[d+g|0]=e;b=b+2|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 3:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[H[a>>2]>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(K[H[a>>2]+4>>2]<=b>>>0){break b}e=J[b>>1];if(e>>>0>127){break b}F[d+g|0]=e;b=b+2|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 4:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[H[a>>2]>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(K[H[a>>2]+4>>2]<=b>>>0){break b}e=H[b>>2];if(e+128>>>0>255){break b}F[d+g|0]=e;b=b+4|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 5:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[H[a>>2]>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(K[H[a>>2]+4>>2]<=b>>>0){break b}e=H[b>>2];if(e>>>0>127){break b}F[d+g|0]=e;b=b+4|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 6:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[H[a>>2]>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(K[H[a>>2]+4>>2]<=b>>>0){break b}i=H[b+4>>2];e=H[b>>2];h=e+128|0;i=h>>>0<128?i+1|0:i;if(!i&h>>>0>255|i){break b}F[d+g|0]=e;b=b+8|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 7:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[H[a>>2]>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(K[H[a>>2]+4>>2]<=b>>>0){break b}i=H[b+4>>2];e=H[b>>2];if(!i&e>>>0>127|i){break b}F[d+g|0]=e;b=b+8|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 8:e=I[a+24|0];c=c&255;d:{if(c>>>0>e>>>0?e:c){e=H[H[a>>2]>>2];f=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);h=b;b=b+f|0;b=b+e|0;while(1){if(K[H[a>>2]+4>>2]<=b>>>0){break d}l=L[b>>2];if(l>=O(127)|lO(1)){break d}j=T(+l*127+.5);if(!(P(j)<2147483648)){break f}h=~~j;break e}if(!(m>>0<(c>>>0>e>>>0?e:c)>>>0){continue}break}}k=1;if(c>>>0<=e>>>0){break d}ra(d+e|0,0,c-e|0)}return k;case 9:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[H[a>>2]>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(K[H[a>>2]+4>>2]<=b>>>0){break b}j=M[b>>3];if(j>=127|j<-128|(P(j)==Infinity|j!=j)){break b}e=d+g|0;if(I[a+32|0]){if(j<0|j>1){break b}j=T(j*127+.5)}g:{if(P(j)<2147483648){h=~~j;break g}h=-2147483648}F[e|0]=h;b=b+8|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 10:break c;default:break b}}e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[H[a>>2]>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(K[H[a>>2]+4>>2]<=b>>>0){break b}F[d+g|0]=I[b|0];b=b+1|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}ra(d+e|0,0,(c&255)-e|0)}return k}ra(d+e|0,0,(c&255)-e|0);return 1}function hc(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=O(0);a:{b:{if(!d){break b}c:{switch(H[a+28>>2]-1|0){case 0:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[H[a>>2]>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(K[H[a>>2]+4>>2]<=b>>>0){return 0}e=F[b|0];if((e|0)<0){break b}F[d+g|0]=e;b=b+1|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 1:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[H[a>>2]>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(K[H[a>>2]+4>>2]<=b>>>0){break b}F[d+g|0]=I[b|0];b=b+1|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 2:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[H[a>>2]>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(K[H[a>>2]+4>>2]<=b>>>0){break b}e=J[b>>1];if(e>>>0>255){break b}F[d+g|0]=e;b=b+2|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 3:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[H[a>>2]>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(K[H[a>>2]+4>>2]<=b>>>0){break b}e=J[b>>1];if(e>>>0>255){break b}F[d+g|0]=e;b=b+2|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 4:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[H[a>>2]>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(K[H[a>>2]+4>>2]<=b>>>0){break b}e=H[b>>2];if(e>>>0>255){break b}F[d+g|0]=e;b=b+4|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 5:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[H[a>>2]>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(K[H[a>>2]+4>>2]<=b>>>0){break b}e=H[b>>2];if(e>>>0>255){break b}F[d+g|0]=e;b=b+4|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 6:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[H[a>>2]>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(K[H[a>>2]+4>>2]<=b>>>0){break b}i=H[b+4>>2];e=H[b>>2];if(!i&e>>>0>255|i){break b}F[d+g|0]=e;b=b+8|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 7:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[H[a>>2]>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(K[H[a>>2]+4>>2]<=b>>>0){break b}i=H[b+4>>2];e=H[b>>2];if(!i&e>>>0>255|i){break b}F[d+g|0]=e;b=b+8|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 8:e=I[a+24|0];c=c&255;d:{if(c>>>0>e>>>0?e:c){e=H[H[a>>2]>>2];f=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);h=b;b=b+f|0;b=b+e|0;while(1){if(K[H[a>>2]+4>>2]<=b>>>0){break d}l=L[b>>2];if(l>=O(255)|lO(1)){break d}j=T(+l*255+.5);if(!(j<4294967296&j>=0)){break f}h=~~j>>>0;break e}if(!(l=O(0))){break f}h=~~l>>>0;break e}h=0}F[e|0]=h;b=b+4|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(c>>>0>e>>>0?e:c)>>>0){continue}break}}k=1;if(c>>>0<=e>>>0){break d}ra(d+e|0,0,c-e|0)}return k;case 9:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[H[a>>2]>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(K[H[a>>2]+4>>2]<=b>>>0){break b}j=M[b>>3];if(j>=255|j<0|(P(j)==Infinity|j!=j)){break b}e=d+g|0;if(I[a+32|0]){if(j>1){break b}j=T(j*255+.5)}g:{if(j<4294967296&j>=0){h=~~j>>>0;break g}h=0}F[e|0]=h;b=b+8|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 10:break c;default:break b}}e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[H[a>>2]>>2];i=H[a+48>>2];b=Rj(H[a+40>>2],H[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(K[H[a>>2]+4>>2]<=b>>>0){break b}F[d+g|0]=I[b|0];b=b+1|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}ra(d+e|0,0,(c&255)-e|0)}return k}ra(d+e|0,0,(c&255)-e|0);return 1}function zf(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=O(0),w=0;p=ca-16|0;ca=p;a:{if(!(H[a+60>>2]!=H[a- -64>>2]|H[a+48>>2]!=H[a+52>>2])){j=1;break a}j=1;if((ea[H[H[a>>2]+24>>2]](a)|0)<=0){break a}while(1){b:{b=ea[H[H[a>>2]+20>>2]](a,w)|0;c:{d:{e:{f=H[H[H[(ea[H[H[a>>2]+28>>2]](a)|0)+4>>2]+8>>2]+(b<<2)>>2];switch(H[f+28>>2]-1|0){case 8:break d;case 0:case 2:case 4:break e;default:break c}}b=I[f+24|0];f:{if(!b){n=0;j=0;break f}j=0;b=b<<2;n=pa(b);ra(n,0,b);b=I[f+24|0];if(!b){break f}b=b<<2;j=pa(b);ra(j,0,b)}g:{h:{i:{switch(H[f+28>>2]-1|0){case 4:i=0;h=0;d=0;b=0;k=0;e=I[f+24|0];j:{if(!e){g=0;break j}e=e<<2;h=pa(e);ra(h,0,e);g=pa(e);ra(g,0,e)}k:{if(H[f+80>>2]){while(1){o=H[f>>2];c=H[o>>2];m=H[f+48>>2];e=H[f+40>>2];l=Rj(e,H[f+44>>2],d,b);m=m+l|0;s=c+m|0;c=e;m=qa(h,s,c);l=I[f+24|0];if(l){t=H[a+48>>2];e=0;while(1){r=e<<2;s=H[r+m>>2];if((s|0)<0){break k}H[g+r>>2]=s+H[t+(e+u<<2)>>2];e=e+1|0;if((l|0)!=(e|0)){continue}break}}qa(H[o>>2]+N(d,c)|0,g,c);d=d+1|0;b=d?b:b+1|0;if(!b&K[f+80>>2]>d>>>0){continue}break}}k=1}if(g){oa(g)}if(h){oa(h)}if(k){break h}break g;case 2:g=0;e=0;d=0;b=0;c=I[f+24|0];if(c){c=c<<1;e=pa(c);ra(e,0,c);g=pa(c);ra(g,0,c)}if(H[f+80>>2]){while(1){l=H[f>>2];h=H[l>>2];i=H[f+48>>2];c=H[f+40>>2];k=Rj(c,H[f+44>>2],d,b);i=i+k|0;k=qa(e,h+i|0,c);o=I[f+24|0];l:{if(!o){break l}m=H[a+48>>2];h=0;if((o|0)!=1){t=o&254;i=0;while(1){r=h<<1;G[r+g>>1]=J[k+r>>1]+J[m+(h+u<<2)>>1];r=h|1;s=r<<1;G[s+g>>1]=J[k+s>>1]+J[m+(r+u<<2)>>1];h=h+2|0;i=i+2|0;if((t|0)!=(i|0)){continue}break}}if(!(o&1)){break l}i=h<<1;G[i+g>>1]=J[i+k>>1]+J[m+(h+u<<2)>>1]}qa(H[l>>2]+N(d,c)|0,g,c);d=d+1|0;b=d?b:b+1|0;if(!b&K[f+80>>2]>d>>>0){continue}break}}if(g){oa(g)}if(e){oa(e)}break h;case 0:break i;default:break h}}h=0;e=0;d=0;b=0;c=I[f+24|0];if(c){e=pa(c);ra(e,0,c);h=pa(c);ra(h,0,c)}if(H[f+80>>2]){while(1){t=H[f>>2];g=H[t>>2];i=H[f+48>>2];c=H[f+40>>2];k=Rj(c,H[f+44>>2],d,b);i=i+k|0;k=qa(e,g+i|0,c);o=I[f+24|0];m:{if(!o){break m}m=H[a+48>>2];g=0;if((o|0)!=1){r=o&254;i=0;while(1){F[g+h|0]=I[g+k|0]+I[m+(g+u<<2)|0];l=g|1;F[l+h|0]=I[k+l|0]+I[m+(l+u<<2)|0];g=g+2|0;i=i+2|0;if((r|0)!=(i|0)){continue}break}}if(!(o&1)){break m}F[g+h|0]=I[g+k|0]+I[m+(g+u<<2)|0]}qa(H[t>>2]+N(d,c)|0,h,c);d=d+1|0;b=d?b:b+1|0;if(!b&K[f+80>>2]>d>>>0){continue}break}}if(h){oa(h)}if(e){oa(e)}}u=I[f+24|0]+u|0;i=1}if(j){oa(j)}if(n){oa(n)}if(i){break c}j=0;break a}e=H[H[a+60>>2]+(q<<2)>>2];h=H[a+36>>2];g=H[(ea[H[H[a>>2]+28>>2]](a)|0)+40>>2];H[p+12>>2]=H[f+56>>2];b=pa(32);H[p>>2]=b;H[p+4>>2]=24;H[p+8>>2]=-2147483616;d=I[1206]|I[1207]<<8|(I[1208]<<16|I[1209]<<24);c=I[1202]|I[1203]<<8|(I[1204]<<16|I[1205]<<24);F[b+16|0]=c;F[b+17|0]=c>>>8;F[b+18|0]=c>>>16;F[b+19|0]=c>>>24;F[b+20|0]=d;F[b+21|0]=d>>>8;F[b+22|0]=d>>>16;F[b+23|0]=d>>>24;d=I[1198]|I[1199]<<8|(I[1200]<<16|I[1201]<<24);c=I[1194]|I[1195]<<8|(I[1196]<<16|I[1197]<<24);F[b+8|0]=c;F[b+9|0]=c>>>8;F[b+10|0]=c>>>16;F[b+11|0]=c>>>24;F[b+12|0]=d;F[b+13|0]=d>>>8;F[b+14|0]=d>>>16;F[b+15|0]=d>>>24;d=I[1190]|I[1191]<<8|(I[1192]<<16|I[1193]<<24);c=I[1186]|I[1187]<<8|(I[1188]<<16|I[1189]<<24);F[b|0]=c;F[b+1|0]=c>>>8;F[b+2|0]=c>>>16;F[b+3|0]=c>>>24;F[b+4|0]=d;F[b+5|0]=d>>>8;F[b+6|0]=d>>>16;F[b+7|0]=d>>>24;F[b+24|0]=0;d=sd(g,p+12|0,p);if(F[p+11|0]<0){oa(H[p>>2])}b=q+1|0;n:{if(d){oe(f,e);break n}g=h+N(q,24)|0;q=H[g+4>>2];c=I[f+24|0];h=c<<2;d=pa(h);H[p>>2]=1065353216;v=L[g+20>>2];q=-1<0){L[p>>2]=v/O(q|0)}if((q|0)<=0){break b}o:{if(!H[e+80>>2]){break o}if(!c){n=0;j=0;while(1){qa(H[H[f+64>>2]>>2]+j|0,d,h);j=h+j|0;n=n+1|0;if(n>>>0>2]){continue}break}break o}o=H[H[e>>2]>>2]+H[e+48>>2]|0;t=c&254;r=c&1;i=0;k=0;j=0;while(1){q=H[g+8>>2];v=L[p>>2];n=0;m=0;if((c|0)!=1){while(1){l=n<<2;s=o+(j<<2)|0;L[l+d>>2]=O(v*O(H[s>>2]))+L[l+q>>2];l=l|4;L[l+d>>2]=O(v*O(H[s+4>>2]))+L[l+q>>2];n=n+2|0;j=j+2|0;m=m+2|0;if((t|0)!=(m|0)){continue}break}}if(r){n=n<<2;L[n+d>>2]=O(v*O(H[o+(j<<2)>>2]))+L[n+q>>2];j=j+1|0}qa(H[H[f+64>>2]>>2]+k|0,d,h);k=h+k|0;i=i+1|0;if(i>>>0>2]){continue}break}}oa(d)}q=b}j=1;w=w+1|0;if((ea[H[H[a>>2]+24>>2]](a)|0)>(w|0)){continue}break a}break}oa(d);j=0}ca=p+16|0;return j|0}function Le(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;g=ca+-64|0;ca=g;H[g+56>>2]=0;H[g+48>>2]=0;H[g+52>>2]=0;H[g+40>>2]=0;H[g+44>>2]=0;H[g+32>>2]=0;H[g+36>>2]=0;H[g+24>>2]=0;H[g+28>>2]=0;H[g+16>>2]=0;H[g+20>>2]=0;H[g+8>>2]=0;H[g+12>>2]=0;j=g+8|0;d=J[b+38>>1];a:{b:{if(!d){break b}c:{if(d>>>0<=511){h=H[b+8>>2];f=H[b+12>>2];e=H[b+20>>2];d=H[b+16>>2];i=d+4|0;e=i>>>0<4?e+1|0:e;if(h>>>0>>0&(e|0)>=(f|0)|(e|0)>(f|0)){break b}d=d+H[b>>2]|0;l=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);H[j+12>>2]=l;e=H[b+20>>2];d=H[b+16>>2]+4|0;e=d>>>0<4?e+1|0:e;H[b+16>>2]=d;H[b+20>>2]=e;break c}if(!hb(1,j+12|0,b)){break b}d=H[b+16>>2];e=H[b+20>>2];l=H[j+12>>2]}f=H[b+8>>2];i=f-d|0;d=H[b+12>>2]-((d>>>0>f>>>0)+e|0)|0;if(i>>>0>>6>>>0&(d|0)<=0|(d|0)<0){break b}e=H[j>>2];d=H[j+4>>2]-e>>2;d:{if(d>>>0>>0){ya(j,l-d|0);l=H[j+12>>2];break d}if(d>>>0<=l>>>0){break d}H[j+4>>2]=e+(l<<2)}i=1;if(!l){break a}d=H[b+16>>2];e=H[b+20>>2];r=H[j>>2];k=H[b+8>>2];o=H[b+12>>2];h=0;while(1){i=0;if((e|0)>=(o|0)&d>>>0>=k>>>0|(e|0)>(o|0)){break a}i=H[b>>2];p=I[i+d|0];d=d+1|0;e=d?e:e+1|0;H[b+16>>2]=d;H[b+20>>2]=e;f=p>>>2|0;m=0;e:{f:{g:{h:{s=p&3;switch(s|0){case 0:break f;case 3:break h;default:break g}}f=f+h|0;i=0;if(f>>>0>=l>>>0){break a}ra(r+(h<<2)|0,0,(p&252)+4|0);h=f;break e}while(1){if((d|0)==(k|0)&(e|0)==(o|0)){break b}l=I[d+i|0];d=d+1|0;e=d?e:e+1|0;H[b+16>>2]=d;H[b+20>>2]=e;f=l<<(m<<3|6)|f;m=m+1|0;if((s|0)!=(m|0)){continue}break}}H[r+(h<<2)>>2]=f}l=H[j+12>>2];h=h+1|0;if(l>>>0>h>>>0){continue}break}d=j+16|0;o=H[j>>2];f=H[j+16>>2];e=H[j+20>>2]-f|0;i:{if(e>>>0<=4194303){ya(d,1048576-(e>>>2|0)|0);break i}if((e|0)==4194304){break i}H[j+20>>2]=f+4194304}e=j+28|0;h=H[e>>2];f=H[j+32>>2]-h>>3;j:{if(f>>>0>>0){ob(e,l-f|0);h=H[e>>2];break j}if(f>>>0>l>>>0){H[j+32>>2]=(l<<3)+h}if(!l){break b}}k=H[d>>2];d=0;i=0;while(1){e=o+(d<<2)|0;j=H[e>>2];m=(d<<3)+h|0;f=i;H[m+4>>2]=f;H[m>>2]=j;e=H[e>>2];i=e+f|0;if(i>>>0>1048576){break b}k:{if(f>>>0>=i>>>0){break k}m=0;j=e&7;if(j){while(1){H[k+(f<<2)>>2]=d;f=f+1|0;m=m+1|0;if((j|0)!=(m|0)){continue}break}}if(e-1>>>0<=6){break k}while(1){e=k+(f<<2)|0;H[e>>2]=d;H[e+28>>2]=d;H[e+24>>2]=d;H[e+20>>2]=d;H[e+16>>2]=d;H[e+12>>2]=d;H[e+8>>2]=d;H[e+4>>2]=d;f=f+8|0;if((i|0)!=(f|0)){continue}break}}d=d+1|0;if((l|0)!=(d|0)){continue}break}n=(i|0)==1048576}i=n}l:{if(!i|(H[g+20>>2]?0:a)){break l}i=0;n=ca-16|0;ca=n;m:{n:{if(J[b+38>>1]<=511){h=H[b+8>>2];f=H[b+12>>2];j=f;e=H[b+20>>2];k=H[b+16>>2];d=k+8|0;e=d>>>0<8?e+1|0:e;if(d>>>0>h>>>0&(e|0)>=(f|0)|(e|0)>(f|0)){break m}k=k+H[b>>2]|0;f=I[k|0]|I[k+1|0]<<8|(I[k+2|0]<<16|I[k+3|0]<<24);k=I[k+4|0]|I[k+5|0]<<8|(I[k+6|0]<<16|I[k+7|0]<<24);H[b+16>>2]=d;H[b+20>>2]=e;break n}if(!gb(1,n+8|0,b)){break m}d=H[b+16>>2];e=H[b+20>>2];h=H[b+8>>2];j=H[b+12>>2];f=H[n+8>>2];k=H[n+12>>2]}l=h-d|0;h=j-((d>>>0>h>>>0)+e|0)|0;if((h|0)==(k|0)&f>>>0>l>>>0|h>>>0>>0){break m}e=e+k|0;h=d+f|0;e=h>>>0>>0?e+1|0:e;H[b+16>>2]=h;H[b+20>>2]=e;if((f|0)<=0){break m}b=H[b>>2]+d|0;H[g+48>>2]=b;d=f-1|0;e=d+b|0;h=I[e|0];o:{if(h>>>0<=63){H[g+52>>2]=d;b=I[e|0]&63;break o}p:{switch((h>>>6|0)-1|0){case 0:if(f>>>0<2){break m}d=f-2|0;H[g+52>>2]=d;b=b+d|0;b=I[b+1|0]<<8&16128|I[b|0];break o;case 1:if(f>>>0<3){break m}d=f-3|0;H[g+52>>2]=d;b=b+d|0;b=I[b+1|0]<<8|I[b+2|0]<<16&4128768|I[b|0];break o;default:break p}}d=f-4|0;H[g+52>>2]=d;b=b+d|0;b=(I[b|0]|I[b+1|0]<<8|(I[b+2|0]<<16|I[b+3|0]<<24))&1073741823}H[g+56>>2]=b+4194304;i=b>>>0<1069547520}ca=n+16|0;if(!i){break l}if(!a){t=1;break l}b=H[g+52>>2];f=H[g+56>>2];d=H[g+36>>2];e=H[g+48>>2];h=H[g+24>>2];while(1){q:{if(f>>>0>4194303){break q}while(1){if((b|0)<=0){break q}b=b-1|0;H[g+52>>2]=b;f=I[b+e|0]|f<<8;H[g+56>>2]=f;if(f>>>0<4194304){continue}break}}i=f&1048575;k=H[h+(i<<2)>>2];n=d+(k<<3)|0;f=(N(H[n>>2],f>>>20|0)+i|0)-H[n+4>>2]|0;H[g+56>>2]=f;H[(q<<2)+c>>2]=k;t=1;q=q+1|0;if((q|0)!=(a|0)){continue}break}}a=H[g+36>>2];if(a){H[g+40>>2]=a;oa(a)}a=H[g+24>>2];if(a){H[g+28>>2]=a;oa(a)}a=H[g+8>>2];if(a){H[g+12>>2]=a;oa(a)}ca=g- -64|0;return t}function nc(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0;e=ca-48|0;ca=e;f=J[6677]|J[6678]<<16;d=J[6675]|J[6676]<<16;G[e+38>>1]=d;G[e+40>>1]=d>>>16;G[e+42>>1]=f;G[e+44>>1]=f>>>16;d=H[3337];H[e+32>>2]=H[3336];H[e+36>>2]=d;d=H[3335];H[e+24>>2]=H[3334];H[e+28>>2]=d;d=H[3333];H[e+16>>2]=H[3332];H[e+20>>2]=d;g=H[b+8>>2];i=H[b+12>>2];h=H[b+20>>2];d=H[b+16>>2];f=d+5|0;h=f>>>0<5?h+1|0:h;a:{b:{if(g>>>0>>0&(h|0)>=(i|0)|(h|0)>(i|0)){d=Ma(e+16|0);if(d>>>0>=2147483632){break a}c:{d:{if(d>>>0>=11){b=(d|15)+1|0;c=pa(b);H[e+8>>2]=b|-2147483648;H[e>>2]=c;H[e+4>>2]=d;b=c+d|0;break d}F[e+11|0]=d;b=d+e|0;c=e;if(!d){break c}}qa(c,e+16|0,d)}F[b|0]=0;H[a>>2]=-2;b=a+4|0;if(F[e+11|0]>=0){a=H[e+4>>2];H[b>>2]=H[e>>2];H[b+4>>2]=a;H[b+8>>2]=H[e+8>>2];break b}za(b,H[e>>2],H[e+4>>2]);if(F[e+11|0]>=0){break b}oa(H[e>>2]);break b}f=d+H[b>>2]|0;d=I[f|0]|I[f+1|0]<<8|(I[f+2|0]<<16|I[f+3|0]<<24);F[c|0]=d;F[c+1|0]=d>>>8;F[c+2|0]=d>>>16;F[c+3|0]=d>>>24;F[c+4|0]=I[f+4|0];d=H[b+20>>2];f=H[b+16>>2]+5|0;d=f>>>0<5?d+1|0:d;H[b+16>>2]=f;H[b+20>>2]=d;if(Fa(c,1260,5)){d=pa(32);F[d+17|0]=0;F[d+16|0]=I[1496];c=I[1492]|I[1493]<<8|(I[1494]<<16|I[1495]<<24);b=I[1488]|I[1489]<<8|(I[1490]<<16|I[1491]<<24);F[d+8|0]=b;F[d+9|0]=b>>>8;F[d+10|0]=b>>>16;F[d+11|0]=b>>>24;F[d+12|0]=c;F[d+13|0]=c>>>8;F[d+14|0]=c>>>16;F[d+15|0]=c>>>24;c=I[1484]|I[1485]<<8|(I[1486]<<16|I[1487]<<24);b=I[1480]|I[1481]<<8|(I[1482]<<16|I[1483]<<24);F[d|0]=b;F[d+1|0]=b>>>8;F[d+2|0]=b>>>16;F[d+3|0]=b>>>24;F[d+4|0]=c;F[d+5|0]=c>>>8;F[d+6|0]=c>>>16;F[d+7|0]=c>>>24;H[a>>2]=-1;za(a+4|0,d,17);oa(d);break b}g=H[b+12>>2];if((g|0)<=(d|0)&K[b+8>>2]<=f>>>0|(d|0)>(g|0)){d=Ma(e+16|0);if(d>>>0>=2147483632){break a}e:{f:{if(d>>>0>=11){b=(d|15)+1|0;c=pa(b);H[e+8>>2]=b|-2147483648;H[e>>2]=c;H[e+4>>2]=d;b=c+d|0;break f}F[e+11|0]=d;b=d+e|0;c=e;if(!d){break e}}qa(c,e+16|0,d)}F[b|0]=0;H[a>>2]=-2;b=a+4|0;if(F[e+11|0]>=0){a=H[e+4>>2];H[b>>2]=H[e>>2];H[b+4>>2]=a;H[b+8>>2]=H[e+8>>2];break b}za(b,H[e>>2],H[e+4>>2]);if(F[e+11|0]>=0){break b}oa(H[e>>2]);break b}F[c+5|0]=I[f+H[b>>2]|0];g=H[b+20>>2];d=H[b+16>>2]+1|0;g=d?g:g+1|0;H[b+16>>2]=d;H[b+20>>2]=g;f=H[b+12>>2];if((f|0)<=(g|0)&K[b+8>>2]<=d>>>0|(g|0)>(f|0)){d=Ma(e+16|0);if(d>>>0>=2147483632){break a}g:{h:{if(d>>>0>=11){b=(d|15)+1|0;c=pa(b);H[e+8>>2]=b|-2147483648;H[e>>2]=c;H[e+4>>2]=d;b=c+d|0;break h}F[e+11|0]=d;b=d+e|0;c=e;if(!d){break g}}qa(c,e+16|0,d)}F[b|0]=0;H[a>>2]=-2;b=a+4|0;if(F[e+11|0]>=0){a=H[e+4>>2];H[b>>2]=H[e>>2];H[b+4>>2]=a;H[b+8>>2]=H[e+8>>2];break b}za(b,H[e>>2],H[e+4>>2]);if(F[e+11|0]>=0){break b}oa(H[e>>2]);break b}F[c+6|0]=I[d+H[b>>2]|0];h=H[b+20>>2];d=H[b+16>>2]+1|0;h=d?h:h+1|0;H[b+16>>2]=d;H[b+20>>2]=h;f=H[b+12>>2];if((f|0)<=(h|0)&K[b+8>>2]<=d>>>0|(f|0)<(h|0)){d=Ma(e+16|0);if(d>>>0>=2147483632){break a}i:{j:{if(d>>>0>=11){b=(d|15)+1|0;c=pa(b);H[e+8>>2]=b|-2147483648;H[e>>2]=c;H[e+4>>2]=d;b=c+d|0;break j}F[e+11|0]=d;b=d+e|0;c=e;if(!d){break i}}qa(c,e+16|0,d)}F[b|0]=0;H[a>>2]=-2;b=a+4|0;if(F[e+11|0]>=0){a=H[e+4>>2];H[b>>2]=H[e>>2];H[b+4>>2]=a;H[b+8>>2]=H[e+8>>2];break b}za(b,H[e>>2],H[e+4>>2]);if(F[e+11|0]>=0){break b}oa(H[e>>2]);break b}F[c+7|0]=I[d+H[b>>2]|0];g=H[b+20>>2];d=H[b+16>>2]+1|0;g=d?g:g+1|0;H[b+16>>2]=d;H[b+20>>2]=g;f=H[b+12>>2];if((f|0)<=(g|0)&K[b+8>>2]<=d>>>0|(g|0)>(f|0)){c=mc(e,e+16|0);H[a>>2]=-2;b=a+4|0;if(F[c+11|0]>=0){a=H[c+4>>2];H[b>>2]=H[c>>2];H[b+4>>2]=a;H[b+8>>2]=H[c+8>>2];break b}za(b,H[c>>2],H[c+4>>2]);if(F[c+11|0]>=0){break b}oa(H[c>>2]);break b}F[c+8|0]=I[d+H[b>>2]|0];d=H[b+20>>2];g=H[b+16>>2];f=g+1|0;i=f?d:d+1|0;H[b+16>>2]=f;H[b+20>>2]=i;i=H[b+8>>2];h=H[b+12>>2];g=g+3|0;d=g>>>0<3?d+1|0:d;if(g>>>0>i>>>0&(d|0)>=(h|0)|(d|0)>(h|0)){c=mc(e,e+16|0);H[a>>2]=-2;b=a+4|0;if(F[c+11|0]>=0){a=H[c+4>>2];H[b>>2]=H[c>>2];H[b+4>>2]=a;H[b+8>>2]=H[c+8>>2];break b}za(b,H[c>>2],H[c+4>>2]);if(F[c+11|0]>=0){break b}oa(H[c>>2]);break b}d=c;c=H[b>>2]+f|0;G[d+10>>1]=I[c|0]|I[c+1|0]<<8;g=H[b+20>>2];c=H[b+16>>2]+2|0;g=c>>>0<2?g+1|0:g;H[b+16>>2]=c;H[b+20>>2]=g;H[a+8>>2]=0;H[a+12>>2]=0;H[a>>2]=0;H[a+4>>2]=0}ca=e+48|0;return}Na();v()}function Nb(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0;e=ca-96|0;ca=e;f=H[a+16>>2];F[e+92|0]=1;H[e+88>>2]=b;H[e+84>>2]=b;H[e+80>>2]=f;j=H[a+20>>2];d=H[j>>2];a:{b:{f=H[H[f+28>>2]+(b<<2)>>2];if(f>>>0>2]-d>>2>>>0){d=H[H[a+8>>2]+(H[d+(f<<2)>>2]<<2)>>2];f=H[a+4>>2];if(!I[f+84|0]){d=H[H[f+68>>2]+(d<<2)>>2]}H[e+72>>2]=0;H[e+76>>2]=0;j=e- -64|0;H[j>>2]=0;H[j+4>>2]=0;H[e+56>>2]=0;H[e+60>>2]=0;Sa(f,d,F[f+24|0],e+56|0);if((b|0)!=-1){f=b+1|0;j=(f>>>0)%3|0?f:b-2|0;m=((b>>>0)%3|0?-1:2)+b|0;while(1){d=j;f=m;c:{if(!H[a+28>>2]){break c}f=b+1|0;d=(f>>>0)%3|0?f:b-2|0;f=b-1|0;if((b>>>0)%3|0){break c}f=b+2|0}n=H[a+20>>2];b=H[n>>2];d=H[H[H[a+16>>2]+28>>2]+(d<<2)>>2];if(d>>>0>=H[n+4>>2]-b>>2>>>0){break b}d=H[H[a+8>>2]+(H[b+(d<<2)>>2]<<2)>>2];b=H[a+4>>2];if(!I[b+84|0]){d=H[H[b+68>>2]+(d<<2)>>2]}H[e+48>>2]=0;H[e+52>>2]=0;H[e+40>>2]=0;H[e+44>>2]=0;H[e+32>>2]=0;H[e+36>>2]=0;Sa(b,d,F[b+24|0],e+32|0);d=H[a+20>>2];b=H[d>>2];f=H[H[H[a+16>>2]+28>>2]+(f<<2)>>2];if(f>>>0>=H[d+4>>2]-b>>2>>>0){break a}d=H[H[a+8>>2]+(H[b+(f<<2)>>2]<<2)>>2];b=H[a+4>>2];if(!I[b+84|0]){d=H[H[b+68>>2]+(d<<2)>>2]}H[e+24>>2]=0;H[e+28>>2]=0;H[e+16>>2]=0;H[e+20>>2]=0;H[e+8>>2]=0;H[e+12>>2]=0;Sa(b,d,F[b+24|0],e+8|0);g=H[e+8>>2];b=H[e+56>>2];d=g-b|0;p=H[e+60>>2];t=H[e+12>>2]-(p+(b>>>0>g>>>0)|0)|0;h=H[e+40>>2];f=H[e+64>>2];n=h-f|0;u=H[e+68>>2];y=H[e+44>>2]-(u+(f>>>0>h>>>0)|0)|0;g=Rj(d,t,n,y);w=o-g|0;x=i-(da+(g>>>0>o>>>0)|0)|0;i=w;h=H[e+16>>2];g=h-f|0;u=H[e+20>>2]-((f>>>0>h>>>0)+u|0)|0;k=H[e+32>>2];h=k-b|0;w=H[e+36>>2]-((b>>>0>k>>>0)+p|0)|0;b=Rj(g,u,h,w);o=i+b|0;i=da+x|0;i=b>>>0>o>>>0?i+1|0:i;b=l;l=d;p=t;k=H[e+48>>2];f=H[e+72>>2];d=k-f|0;t=H[e+76>>2];x=H[e+52>>2]-(t+(f>>>0>k>>>0)|0)|0;l=Rj(l,p,d,x);k=b+l|0;b=da+q|0;b=k>>>0>>0?b+1|0:b;l=H[e+24>>2];p=l-f|0;f=H[e+28>>2]-((f>>>0>l>>>0)+t|0)|0;q=Rj(p,f,h,w);l=k-q|0;q=b-(da+(k>>>0>>0)|0)|0;b=Rj(g,u,d,x);d=r-b|0;b=s-(da+(b>>>0>r>>>0)|0)|0;s=Rj(p,f,n,y);r=s+d|0;b=da+b|0;s=r>>>0>>0?b+1|0:b;b=H[e+88>>2];f=H[e+80>>2];d:{if(I[e+92|0]){e:{f:{g:{h:{if((b|0)==-1){break h}d=b+1|0;b=(d>>>0)%3|0?d:b-2|0;if((b|0)==-1|H[H[f>>2]+(b>>>3&536870908)>>2]>>>b&1){break h}b=H[H[H[f+64>>2]+12>>2]+(b<<2)>>2];if((b|0)!=-1){break g}}H[e+88>>2]=-1;break f}d=b+1|0;b=(d>>>0)%3|0?d:b-2|0;H[e+88>>2]=b;if((b|0)!=-1){break e}}b=H[e+84>>2];d=-1;i:{if((b|0)==-1){break i}j:{if((b>>>0)%3|0){b=b-1|0;break j}b=b+2|0;d=-1;if((b|0)==-1){break i}}d=-1;if(H[H[f>>2]+(b>>>3&536870908)>>2]>>>b&1){break i}b=H[H[H[f+64>>2]+12>>2]+(b<<2)>>2];d=-1;if((b|0)==-1){break i}d=b-1|0;if((b>>>0)%3|0){break i}d=b+2|0}F[e+92|0]=0;H[e+88>>2]=d;break d}if((b|0)!=H[e+84>>2]){break d}H[e+88>>2]=-1;break d}d=-1;k:{if((b|0)==-1){break k}l:{if((b>>>0)%3|0){b=b-1|0;break l}b=b+2|0;d=-1;if((b|0)==-1){break k}}d=-1;if(H[H[f>>2]+(b>>>3&536870908)>>2]>>>b&1){break k}b=H[H[H[f+64>>2]+12>>2]+(b<<2)>>2];d=-1;if((b|0)==-1){break k}d=b-1|0;if((b>>>0)%3|0){break k}d=b+2|0}H[e+88>>2]=d}b=H[e+88>>2];if((b|0)!=-1){continue}break}}b=s>>31;f=b^r;d=f-b|0;b=(b^s)-((b>>>0>f>>>0)+b|0)|0;m=-1;f=2147483647;g=q>>31;h=g^l;j=h-g|0;n=(g^q)-((h>>>0>>0)+g|0)|0;h=n;k=j^-1;g=h^2147483647;n=i;m:{n:{if(!H[a+28>>2]){if((b|0)==(g|0)&d>>>0>k>>>0|b>>>0>g>>>0){break m}b=b+h|0;a=d+j|0;b=a>>>0>>0?b+1|0:b;f=a;g=i;a=g>>31;d=a;m=d^o;a=m-d|0;i=a;d=(d^g)-((d>>>0>m>>>0)+d|0)|0;a=a+f|0;d=d^2147483647;i=(d|0)==(b|0)&(i^-1)>>>0>>0|b>>>0>d>>>0;a=i?-1:a;if(!(i&0)&(a|0)<=536870912|(a|0)<536870912){break m}b=0;a=a>>>29|0;break n}o:{if((b|0)==(g|0)&d>>>0>k>>>0|b>>>0>g>>>0){break o}b=b+h|0;a=d+j|0;b=a>>>0>>0?b+1|0:b;k=i;d=i>>31;h=d^o;i=h-d|0;j=(d^k)-((d>>>0>h>>>0)+d|0)|0;g=j^2147483647;d=a;a=i;if((g|0)==(b|0)&d>>>0>(a^-1)>>>0|b>>>0>g>>>0){break o}b=b+j|0;m=a+d|0;b=m>>>0>>0?b+1|0:b;f=b;if(!b&m>>>0<536870913){break m}}b=f>>>29|0;a=(f&536870911)<<3|m>>>29}o=Sj(o,n,a,b);l=Sj(l,q,a,b);r=Sj(r,s,a,b)}H[c+8>>2]=o;H[c+4>>2]=l;H[c>>2]=r;ca=e+96|0;return}Ca();v()}Ca();v()}Ca();v()}function Jj(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0;H[a+8>>2]=e;r=a+32|0;g=H[r>>2];f=H[a+36>>2]-g>>2;a:{if(f>>>0>>0){ya(r,e-f|0);d=H[a+8>>2];break a}d=e;if(d>>>0>=f>>>0){break a}H[a+36>>2]=g+(e<<2);d=e}w=e<<2;f=e>>>0>1073741823?-1:w;m=ra(pa(f),0,f);p=ra(pa(f),0,f);b:{if((d|0)<=0){break b}i=H[a+32>>2];while(1){d=h<<2;f=H[d+m>>2];g=H[a+16>>2];c:{if((f|0)>(g|0)){H[d+i>>2]=g;break c}d=d+i|0;g=H[a+12>>2];if((g|0)>(f|0)){H[d>>2]=g;break c}H[d>>2]=f}d=H[a+8>>2];h=h+1|0;if((d|0)>(h|0)){continue}break}if((d|0)<=0){break b}f=0;while(1){g=f<<2;d=g+c|0;g=H[b+g>>2]+H[g+i>>2]|0;H[d>>2]=g;d:{if((g|0)>H[a+16>>2]){g=g-H[a+20>>2]|0}else{if((g|0)>=H[a+12>>2]){break d}g=g+H[a+20>>2]|0}H[d>>2]=g}d=H[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}}f=H[a+56>>2];x=H[f>>2];f=H[f+4>>2]-x|0;if((f|0)>=5){D=H[a+52>>2];s=H[a+48>>2];u=f>>>2|0;E=u>>>0<=2?2:u;y=e&-2;z=e&1;F=e&-4;A=e&3;B=e-1|0;n=1;while(1){e:{f:{g:{h:{if((n|0)!=(u|0)){g=H[(n<<2)+x>>2];t=(e|0)<=0;if(!t){ra(m,0,w)}if((g|0)==-1){i=N(e,n);break f}C=H[s>>2];l=0;f=g;while(1){i:{if(H[(f>>>3&536870908)+C>>2]>>>f&1){break i}i=H[H[H[s+64>>2]+12>>2]+(f<<2)>>2];if((i|0)==-1){break i}j=H[D>>2];h=H[s+28>>2];o=H[j+(H[h+(i<<2)>>2]<<2)>>2];if((o|0)>=(n|0)){break i}k=i+1|0;k=H[j+(H[h+(((k>>>0)%3|0?k:i-2|0)<<2)>>2]<<2)>>2];if((k|0)>=(n|0)){break i}i=H[j+(H[h+(i+((i>>>0)%3|0?-1:2)<<2)>>2]<<2)>>2];if((i|0)>=(n|0)){break i}j:{if(t){break j}i=N(e,i);j=N(e,k);o=N(e,o);h=0;q=0;if(B){while(1){H[(h<<2)+p>>2]=(H[(h+i<<2)+c>>2]+H[(h+j<<2)+c>>2]|0)-H[(h+o<<2)+c>>2];k=h|1;H[(k<<2)+p>>2]=(H[(i+k<<2)+c>>2]+H[(j+k<<2)+c>>2]|0)-H[(k+o<<2)+c>>2];h=h+2|0;q=q+2|0;if((y|0)!=(q|0)){continue}break}}if(z){H[(h<<2)+p>>2]=(H[(h+i<<2)+c>>2]+H[(h+j<<2)+c>>2]|0)-H[(h+o<<2)+c>>2]}if(t){break j}o=0;h=0;i=0;if(e>>>0>3){while(1){j=h<<2;k=j+m|0;H[k>>2]=H[j+p>>2]+H[k>>2];k=j|4;q=k+m|0;H[q>>2]=H[k+p>>2]+H[q>>2];k=j|8;q=k+m|0;H[q>>2]=H[k+p>>2]+H[q>>2];j=j|12;k=j+m|0;H[k>>2]=H[j+p>>2]+H[k>>2];h=h+4|0;i=i+4|0;if((F|0)!=(i|0)){continue}break}}if(!A){break j}while(1){i=h<<2;j=i+m|0;H[j>>2]=H[i+p>>2]+H[j>>2];h=h+1|0;o=o+1|0;if((A|0)!=(o|0)){continue}break}}l=l+1|0}k:{l:{if((f>>>0)%3|0){h=f-1|0;break l}h=f+2|0;i=-1;if((h|0)==-1){break k}}i=-1;if(H[(h>>>3&536870908)+C>>2]>>>h&1){break k}f=H[H[H[s+64>>2]+12>>2]+(h<<2)>>2];i=-1;if((f|0)==-1){break k}i=f-1|0;if((f>>>0)%3|0){break k}i=f+2|0}f=i;if((g|0)!=(f|0)&(f|0)!=-1){continue}break}i=N(e,n);if(!l){break f}if(t){break g}h=0;f=0;if(!B){break h}while(1){g=h<<2;j=g+m|0;H[j>>2]=H[j>>2]/(l|0);g=(g|4)+m|0;H[g>>2]=H[g>>2]/(l|0);h=h+2|0;f=f+2|0;if((y|0)!=(f|0)){continue}break}break h}Ca();v()}if(!z){break g}f=(h<<2)+m|0;H[f>>2]=H[f>>2]/(l|0)}if((d|0)<=0){break e}l=H[r>>2];h=0;while(1){d=h<<2;f=H[d+m>>2];g=H[a+16>>2];m:{if((f|0)>(g|0)){H[d+l>>2]=g;break m}d=d+l|0;g=H[a+12>>2];if((g|0)>(f|0)){H[d>>2]=g;break m}H[d>>2]=f}d=H[a+8>>2];h=h+1|0;if((d|0)>(h|0)){continue}break}f=0;if((d|0)<=0){break e}d=i<<2;i=d+c|0;h=b+d|0;while(1){g=f<<2;d=g+i|0;g=H[h+g>>2]+H[g+l>>2]|0;H[d>>2]=g;n:{if((g|0)>H[a+16>>2]){g=g-H[a+20>>2]|0}else{if((g|0)>=H[a+12>>2]){break n}g=g+H[a+20>>2]|0}H[d>>2]=g}d=H[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}break e}if((d|0)<=0){break e}g=(N(n-1|0,e)<<2)+c|0;l=H[r>>2];h=0;while(1){d=h<<2;f=H[d+g>>2];j=H[a+16>>2];o:{if((f|0)>(j|0)){H[d+l>>2]=j;break o}d=d+l|0;j=H[a+12>>2];if((j|0)>(f|0)){H[d>>2]=j;break o}H[d>>2]=f}d=H[a+8>>2];h=h+1|0;if((d|0)>(h|0)){continue}break}f=0;if((d|0)<=0){break e}d=i<<2;i=d+c|0;h=b+d|0;while(1){g=f<<2;d=g+i|0;g=H[h+g>>2]+H[g+l>>2]|0;H[d>>2]=g;p:{if((g|0)>H[a+16>>2]){g=g-H[a+20>>2]|0}else{if((g|0)>=H[a+12>>2]){break p}g=g+H[a+20>>2]|0}H[d>>2]=g}d=H[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}}n=n+1|0;if((E|0)!=(n|0)){continue}break}}oa(p);oa(m);return 1}function sj(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0;H[a+8>>2]=e;r=a+32|0;f=H[r>>2];j=H[a+36>>2]-f>>2;a:{if(j>>>0>>0){ya(r,e-j|0);d=H[a+8>>2];break a}d=e;if(e>>>0>=j>>>0){break a}H[a+36>>2]=f+(e<<2);d=e}u=e<<2;f=e>>>0>1073741823?-1:u;m=ra(pa(f),0,f);p=ra(pa(f),0,f);b:{if((d|0)<=0){break b}i=H[a+32>>2];while(1){f=h<<2;j=H[f+m>>2];d=H[a+16>>2];c:{if((j|0)>(d|0)){H[f+i>>2]=d;break c}f=f+i|0;d=H[a+12>>2];if((d|0)>(j|0)){H[f>>2]=d;break c}H[f>>2]=j}d=H[a+8>>2];h=h+1|0;if((d|0)>(h|0)){continue}break}if((d|0)<=0){break b}f=0;while(1){j=f<<2;d=j+c|0;j=H[b+j>>2]+H[j+i>>2]|0;H[d>>2]=j;d:{if((j|0)>H[a+16>>2]){j=j-H[a+20>>2]|0}else{if((j|0)>=H[a+12>>2]){break d}j=j+H[a+20>>2]|0}H[d>>2]=j}d=H[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}}f=H[a+56>>2];w=H[f>>2];f=H[f+4>>2]-w|0;if((f|0)>=5){D=H[a+52>>2];x=H[a+48>>2];t=f>>>2|0;E=t>>>0<=2?2:t;y=e&-2;z=e&1;F=e&-4;A=e&3;B=e-1|0;n=1;while(1){e:{f:{g:{h:{if((n|0)!=(t|0)){j=H[(n<<2)+w>>2];s=(e|0)<=0;if(!s){ra(m,0,u)}if((j|0)==-1){g=N(e,n);break f}C=H[x+12>>2];q=0;f=j;while(1){h=H[(f<<2)+C>>2];i:{if((h|0)==-1){break i}o=H[D>>2];l=H[x>>2];k=H[o+(H[l+(h<<2)>>2]<<2)>>2];i=h+1|0;i=(i>>>0)%3|0?i:h-2|0;if((i|0)!=-1){g=H[l+(i<<2)>>2]}else{g=-1}j:{k:{if((h>>>0)%3|0){h=h-1|0;break k}h=h+2|0;i=-1;if((h|0)==-1){break j}}i=H[l+(h<<2)>>2]}if((k|0)>=(n|0)){break i}g=H[(g<<2)+o>>2];if((g|0)>=(n|0)){break i}i=H[o+(i<<2)>>2];if((i|0)>=(n|0)){break i}l:{if(s){break l}l=N(e,i);o=N(e,g);k=N(e,k);h=0;i=0;if(B){while(1){H[(h<<2)+p>>2]=(H[(h+l<<2)+c>>2]+H[(h+o<<2)+c>>2]|0)-H[(h+k<<2)+c>>2];g=h|1;H[(g<<2)+p>>2]=(H[(g+l<<2)+c>>2]+H[(g+o<<2)+c>>2]|0)-H[(g+k<<2)+c>>2];h=h+2|0;i=i+2|0;if((y|0)!=(i|0)){continue}break}}if(z){H[(h<<2)+p>>2]=(H[(h+l<<2)+c>>2]+H[(h+o<<2)+c>>2]|0)-H[(h+k<<2)+c>>2]}if(s){break l}o=0;h=0;k=0;if(e>>>0>3){while(1){l=h<<2;i=l+m|0;H[i>>2]=H[l+p>>2]+H[i>>2];g=l|4;i=g+m|0;H[i>>2]=H[g+p>>2]+H[i>>2];g=l|8;i=g+m|0;H[i>>2]=H[g+p>>2]+H[i>>2];g=l|12;i=g+m|0;H[i>>2]=H[g+p>>2]+H[i>>2];h=h+4|0;k=k+4|0;if((F|0)!=(k|0)){continue}break}}if(!A){break l}while(1){g=h<<2;i=g+m|0;H[i>>2]=H[g+p>>2]+H[i>>2];h=h+1|0;o=o+1|0;if((A|0)!=(o|0)){continue}break}}q=q+1|0}m:{n:{if((f>>>0)%3|0){h=f-1|0;break n}h=f+2|0;g=-1;if((h|0)==-1){break m}}f=H[(h<<2)+C>>2];g=-1;if((f|0)==-1){break m}g=f-1|0;if((f>>>0)%3|0){break m}g=f+2|0}f=g;if((j|0)!=(f|0)&(f|0)!=-1){continue}break}g=N(e,n);if(!q){break f}if(s){break g}h=0;f=0;if(!B){break h}while(1){i=h<<2;j=i+m|0;H[j>>2]=H[j>>2]/(q|0);j=(i|4)+m|0;H[j>>2]=H[j>>2]/(q|0);h=h+2|0;f=f+2|0;if((y|0)!=(f|0)){continue}break}break h}Ca();v()}if(!z){break g}f=(h<<2)+m|0;H[f>>2]=H[f>>2]/(q|0)}if((d|0)<=0){break e}k=H[r>>2];h=0;while(1){f=h<<2;j=H[f+m>>2];d=H[a+16>>2];o:{if((j|0)>(d|0)){H[f+k>>2]=d;break o}f=f+k|0;d=H[a+12>>2];if((d|0)>(j|0)){H[f>>2]=d;break o}H[f>>2]=j}d=H[a+8>>2];h=h+1|0;if((d|0)>(h|0)){continue}break}f=0;if((d|0)<=0){break e}d=g<<2;i=d+c|0;j=b+d|0;while(1){g=f<<2;d=g+i|0;g=H[g+j>>2]+H[g+k>>2]|0;H[d>>2]=g;p:{if((g|0)>H[a+16>>2]){g=g-H[a+20>>2]|0}else{if((g|0)>=H[a+12>>2]){break p}g=g+H[a+20>>2]|0}H[d>>2]=g}d=H[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}break e}if((d|0)<=0){break e}f=(N(n-1|0,e)<<2)+c|0;k=H[r>>2];h=0;while(1){j=h<<2;i=H[j+f>>2];d=H[a+16>>2];q:{if((i|0)>(d|0)){H[j+k>>2]=d;break q}j=j+k|0;d=H[a+12>>2];if((d|0)>(i|0)){H[j>>2]=d;break q}H[j>>2]=i}d=H[a+8>>2];h=h+1|0;if((d|0)>(h|0)){continue}break}f=0;if((d|0)<=0){break e}d=g<<2;i=d+c|0;j=b+d|0;while(1){g=f<<2;d=g+i|0;g=H[g+j>>2]+H[g+k>>2]|0;H[d>>2]=g;r:{if((g|0)>H[a+16>>2]){g=g-H[a+20>>2]|0}else{if((g|0)>=H[a+12>>2]){break r}g=g+H[a+20>>2]|0}H[d>>2]=g}d=H[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}}n=n+1|0;if((E|0)!=(n|0)){continue}break}}oa(p);oa(m);return 1}function xa(a){var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;f=ca-32|0;ca=f;a:{b=H[a+16>>2];b:{if(b>>>0>=341){H[a+16>>2]=b-341;b=H[a+4>>2];j=H[b>>2];c=b+4|0;H[a+4>>2]=c;b=H[a+8>>2];c:{if((b|0)!=H[a+12>>2]){d=b;break c}k=H[a>>2];if(k>>>0>>0){e=((c-k>>2)+1|0)/-2<<2;b=b-c|0;d=va(e+c|0,c,b)+b|0;H[a+8>>2]=d;H[a+4>>2]=e+H[a+4>>2];break c}d=(b|0)==(k|0)?1:b-k>>1;if(d>>>0>=1073741824){break a}e=d<<2;h=pa(e);l=e+h|0;e=h+(d&-4)|0;d=e;d:{if((b|0)==(c|0)){break d}b=b-c|0;m=b&-4;i=b-4|0;g=(i>>>2|0)+1&7;e:{if(!g){b=e;break e}d=0;b=e;while(1){H[b>>2]=H[c>>2];c=c+4|0;b=b+4|0;d=d+1|0;if((g|0)!=(d|0)){continue}break}}d=e+m|0;if(i>>>0<28){break d}while(1){H[b>>2]=H[c>>2];H[b+4>>2]=H[c+4>>2];H[b+8>>2]=H[c+8>>2];H[b+12>>2]=H[c+12>>2];H[b+16>>2]=H[c+16>>2];H[b+20>>2]=H[c+20>>2];H[b+24>>2]=H[c+24>>2];H[b+28>>2]=H[c+28>>2];c=c+32|0;b=b+32|0;if((d|0)!=(b|0)){continue}break}}H[a+12>>2]=l;H[a+8>>2]=d;H[a+4>>2]=e;H[a>>2]=h;if(!k){break c}oa(k);d=H[a+8>>2]}H[d>>2]=j;H[a+8>>2]=H[a+8>>2]+4;break b}c=H[a+8>>2];b=H[a+4>>2];l=c-b|0;h=l>>2;g=H[a+12>>2];d=H[a>>2];e=g-d|0;if(h>>>0>2>>>0){if((c|0)!=(g|0)){n=f,o=pa(4092),H[n+8>>2]=o;d=a;f:{g:{b=H[a+8>>2];h:{if((b|0)!=H[a+12>>2]){e=b;break h}c=H[d+4>>2];h=H[d>>2];if(c>>>0>h>>>0){g=((c-h>>2)+1|0)/-2<<2;a=b-c|0;e=va(g+c|0,c,a)+a|0;H[d+8>>2]=e;H[d+4>>2]=g+H[d+4>>2];break h}e=(b|0)==(h|0)?1:b-h>>1;if(e>>>0>=1073741824){break g}a=e<<2;j=pa(a);l=a+j|0;a=j+(e&-4)|0;e=a;i:{if((b|0)==(c|0)){break i}b=b-c|0;m=b&-4;i=b-4|0;g=(i>>>2|0)+1&7;j:{if(!g){b=a;break j}e=0;b=a;while(1){H[b>>2]=H[c>>2];c=c+4|0;b=b+4|0;e=e+1|0;if((g|0)!=(e|0)){continue}break}}e=a+m|0;if(i>>>0<28){break i}while(1){H[b>>2]=H[c>>2];H[b+4>>2]=H[c+4>>2];H[b+8>>2]=H[c+8>>2];H[b+12>>2]=H[c+12>>2];H[b+16>>2]=H[c+16>>2];H[b+20>>2]=H[c+20>>2];H[b+24>>2]=H[c+24>>2];H[b+28>>2]=H[c+28>>2];c=c+32|0;b=b+32|0;if((e|0)!=(b|0)){continue}break}}H[d+12>>2]=l;H[d+8>>2]=e;H[d+4>>2]=a;H[d>>2]=j;if(!h){break h}oa(h);e=H[d+8>>2]}H[e>>2]=H[f+8>>2];H[d+8>>2]=H[d+8>>2]+4;break f}wa();v()}break b}n=f,o=pa(4092),H[n+8>>2]=o;qd(a,f+8|0);b=H[a+4>>2];j=H[b>>2];c=b+4|0;H[a+4>>2]=c;b=H[a+8>>2];k:{if((b|0)!=H[a+12>>2]){d=b;break k}k=H[a>>2];if(k>>>0>>0){e=((c-k>>2)+1|0)/-2<<2;b=b-c|0;d=va(e+c|0,c,b)+b|0;H[a+8>>2]=d;H[a+4>>2]=e+H[a+4>>2];break k}d=(b|0)==(k|0)?1:b-k>>1;if(d>>>0>=1073741824){break a}e=d<<2;h=pa(e);l=e+h|0;e=h+(d&-4)|0;d=e;l:{if((b|0)==(c|0)){break l}b=b-c|0;m=b&-4;i=b-4|0;g=(i>>>2|0)+1&7;m:{if(!g){b=e;break m}d=0;b=e;while(1){H[b>>2]=H[c>>2];c=c+4|0;b=b+4|0;d=d+1|0;if((g|0)!=(d|0)){continue}break}}d=e+m|0;if(i>>>0<28){break l}while(1){H[b>>2]=H[c>>2];H[b+4>>2]=H[c+4>>2];H[b+8>>2]=H[c+8>>2];H[b+12>>2]=H[c+12>>2];H[b+16>>2]=H[c+16>>2];H[b+20>>2]=H[c+20>>2];H[b+24>>2]=H[c+24>>2];H[b+28>>2]=H[c+28>>2];c=c+32|0;b=b+32|0;if((d|0)!=(b|0)){continue}break}}H[a+12>>2]=l;H[a+8>>2]=d;H[a+4>>2]=e;H[a>>2]=h;if(!k){break k}oa(k);d=H[a+8>>2]}H[d>>2]=j;H[a+8>>2]=H[a+8>>2]+4;break b}H[f+24>>2]=a+12;m=(d|0)==(g|0)?1:e>>1;if(m>>>0>=1073741824){break a}e=m<<2;g=pa(e);H[f+8>>2]=g;j=e+g|0;H[f+20>>2]=j;d=(h<<2)+g|0;H[f+12>>2]=d;i=pa(4092);n:{if((h|0)!=(m|0)){break n}if((l|0)>0){d=((h+1|0)/-2<<2)+d|0;H[f+12>>2]=d;break n}d=(b|0)==(c|0)?1:l>>1;if(d>>>0>=1073741824){break a}b=d<<2;e=pa(b);H[f+8>>2]=e;j=b+e|0;H[f+20>>2]=j;d=e+(d&-4)|0;H[f+12>>2]=d;oa(g);b=H[a+4>>2];c=H[a+8>>2];g=e}H[d>>2]=i;i=d+4|0;H[f+16>>2]=i;e=b;if((b|0)!=(c|0)){while(1){c=c-4|0;qd(f+8|0,c);if(H[a+4>>2]!=(c|0)){continue}break}j=H[f+20>>2];i=H[f+16>>2];d=H[f+12>>2];g=H[f+8>>2];e=c;b=H[a+8>>2]}c=H[a>>2];H[a>>2]=g;H[f+8>>2]=c;H[a+4>>2]=d;H[f+12>>2]=e;H[a+8>>2]=i;H[f+16>>2]=b;d=H[a+12>>2];H[a+12>>2]=j;H[f+20>>2]=d;if((b|0)!=(e|0)){H[f+16>>2]=((e-b|0)+3&-4)+b}if(!c){break b}oa(c)}ca=f+32|0;return}wa();v()}function Aj(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=O(0),j=0,k=0,l=0,m=O(0),n=O(0),o=O(0),p=O(0),q=O(0),r=0,s=O(0),t=O(0),u=O(0),w=O(0),x=0,y=O(0),z=O(0),A=O(0),B=0;a:{b:{if((e|0)!=2){break b}H[a+64>>2]=f;H[a+72>>2]=2;e=pa(8);d=H[a+68>>2];H[a+68>>2]=e;if(d){oa(d)}H[a+8>>2]=2;x=a+32|0;e=H[x>>2];d=H[a+36>>2]-e|0;c:{if(d>>>0<=7){ya(x,2-(d>>>2|0)|0);break c}if((d|0)==8){break c}H[a+36>>2]=e+8}h=1;d=H[a+56>>2];d=H[d+4>>2]-H[d>>2]|0;if((d|0)<=0){break b}d=d>>>2|0;B=d>>>0<=1?1:d;d=0;while(1){e=H[a+56>>2];h=H[e>>2];if(H[e+4>>2]-h>>2>>>0<=d>>>0){break a}q=O(0);g=ca-48|0;ca=g;e=-1;h=H[h+(d<<2)>>2];f=-1;d:{if((h|0)==-1){break d}e=h+1|0;e=(e>>>0)%3|0?e:h-2|0;f=h-1|0;if((h>>>0)%3|0){break d}f=h+2|0}j=H[a+52>>2];h=H[j>>2];e:{f:{j=H[j+4>>2]-h>>2;l=e<<2;e=H[H[a+48>>2]+28>>2];r=H[l+e>>2];if(j>>>0<=r>>>0){break f}e=H[e+(f<<2)>>2];if(e>>>0>=j>>>0){break f}j=H[h+(e<<2)>>2];f=H[h+(r<<2)>>2];g:{if(!((j|0)>=(d|0)|(f|0)>=(d|0))){e=H[a+72>>2];h=(N(e,j)<<2)+c|0;m=O(H[h+4>>2]);e=(N(e,f)<<2)+c|0;p=O(H[e+4>>2]);y=O(H[e>>2]);n=O(H[h>>2]);if(!(y!=n|m!=p)){h=+m>2147483647;e=H[a+68>>2];if(O(P(m))>2]=m2147483647;if(O(P(n))>2]=n>2]+(d<<2)>>2];H[g+40>>2]=0;H[g+32>>2]=0;H[g+36>>2]=0;h=H[a+60>>2];if(!I[h+84|0]){e=H[H[h+68>>2]+(e<<2)>>2]}Va(h,e,F[h+24|0],g+32|0);f=H[H[a+64>>2]+(f<<2)>>2];H[g+24>>2]=0;H[g+16>>2]=0;H[g+20>>2]=0;e=H[a+60>>2];if(!I[e+84|0]){f=H[H[e+68>>2]+(f<<2)>>2]}Va(e,f,F[e+24|0],g+16|0);f=H[H[a+64>>2]+(j<<2)>>2];H[g+8>>2]=0;H[g>>2]=0;H[g+4>>2]=0;e=H[a+60>>2];if(!I[e+84|0]){f=H[H[e+68>>2]+(f<<2)>>2]}Va(e,f,F[e+24|0],g);o=L[g+24>>2];s=O(L[g+8>>2]-o);t=L[g+20>>2];u=O(L[g+4>>2]-t);A=L[g+16>>2];w=O(L[g>>2]-A);z=O(O(s*s)+O(O(u*u)+O(O(w*w)+O(0))));h:{if(H[a+88>>2]>=258){i=O(0);if(!(z>O(0))){break h}}i=O(L[g+40>>2]-o);o=O(L[g+36>>2]-t);t=O(L[g+32>>2]-A);q=O(O(O(s*i)+O(O(u*o)+O(O(w*t)+O(0))))/z);i=O(i-O(s*q));s=O(i*i);i=O(o-O(u*q));o=O(i*i);i=O(t-O(w*q));i=O(W(O(O(s+O(o+O(O(i*i)+O(0))))/z)))}f=H[a+80>>2];if(f){e=f-1|0;h=H[H[a+76>>2]+(e>>>3&536870908)>>2];H[a+80>>2]=e;m=O(m-p);o=O(O(m*q)+p);n=O(n-y);p=O(n*i);e=h>>>e&1;p=O(o+(e?p:O(-p)));i=O(i*m);k=T(+O(O(O(n*q)+y)+(e?O(-i):i))+.5);i:{if(k<-2147483648|k!=k|k>2147483647){e=H[a+68>>2];H[e>>2]=-2147483648;break i}e=H[a+68>>2];if(P(k)<2147483648){h=~~k}else{h=-2147483648}H[e>>2]=h}k=T(+p+.5);j=k>2147483647;if(P(k)<2147483648){h=~~k}else{h=-2147483648}H[e+4>>2]=k<-2147483648?-2147483648:k!=k?-2147483648:j?-2147483648:h}f=(f|0)!=0;break g}j:{if((d|0)>(f|0)){e=H[a+72>>2];h=N(f,e);break j}if((d|0)<=0){f=1;if(H[a+72>>2]<=0){break g}h=H[a+68>>2];e=0;while(1){H[h+(e<<2)>>2]=0;e=e+1|0;if((e|0)>2]){continue}break}break g}e=H[a+72>>2];h=N(e,d-1|0)}f=1;if((e|0)<=0){break g}j=H[a+68>>2];e=0;while(1){H[j+(e<<2)>>2]=H[(e+h<<2)+c>>2];e=e+1|0;if((e|0)>2]){continue}break}}ca=g+48|0;break e}Ca();v()}h=f;if(!h){return 0}k:{if(H[a+8>>2]<=0){break k}r=H[a+68>>2];j=H[x>>2];e=0;while(1){f=e<<2;g=H[f+r>>2];l=H[a+16>>2];l:{if((g|0)>(l|0)){H[f+j>>2]=l;break l}f=f+j|0;l=H[a+12>>2];if((l|0)>(g|0)){H[f>>2]=l;break l}H[f>>2]=g}e=e+1|0;g=H[a+8>>2];if((e|0)<(g|0)){continue}break}f=0;if((g|0)<=0){break k}e=d<<3;r=e+c|0;l=b+e|0;while(1){g=f<<2;e=g+r|0;g=H[g+l>>2]+H[g+j>>2]|0;H[e>>2]=g;m:{if((g|0)>H[a+16>>2]){g=g-H[a+20>>2]|0}else{if((g|0)>=H[a+12>>2]){break m}g=g+H[a+20>>2]|0}H[e>>2]=g}f=f+1|0;if((f|0)>2]){continue}break}}d=d+1|0;if((B|0)!=(d|0)){continue}break}}return h|0}Ca();v()}function kj(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=O(0),j=0,k=0,l=O(0),m=O(0),n=O(0),o=O(0),p=0,q=O(0),r=O(0),s=O(0),t=O(0),u=O(0),w=0,x=O(0),y=O(0),z=0,A=O(0),B=0;a:{b:{if((e|0)!=2){break b}H[a+64>>2]=f;H[a+72>>2]=2;e=pa(8);d=H[a+68>>2];H[a+68>>2]=e;if(d){oa(d)}H[a+8>>2]=2;w=a+32|0;e=H[w>>2];d=H[a+36>>2]-e|0;c:{if(d>>>0<=7){ya(w,2-(d>>>2|0)|0);break c}if((d|0)==8){break c}H[a+36>>2]=e+8}h=1;d=H[a+56>>2];d=H[d+4>>2]-H[d>>2]|0;if((d|0)<=0){break b}d=d>>>2|0;B=d>>>0<=1?1:d;d=0;while(1){f=H[a+56>>2];e=H[f>>2];if(H[f+4>>2]-e>>2>>>0<=d>>>0){break a}q=O(0);g=ca-48|0;ca=g;h=-1;d:{e:{e=H[e+(d<<2)>>2];if((e|0)==-1){break e}j=H[a+48>>2];f=e+1|0;f=(f>>>0)%3|0?f:e-2|0;if((f|0)!=-1){h=H[H[j>>2]+(f<<2)>>2]}f=-1;e=e+((e>>>0)%3|0?-1:2)|0;if((e|0)!=-1){f=H[H[j>>2]+(e<<2)>>2]}e=H[a+52>>2];j=H[e>>2];e=H[e+4>>2]-j>>2;if(e>>>0<=h>>>0|e>>>0<=f>>>0){break e}e=H[j+(h<<2)>>2];j=H[j+(f<<2)>>2];f:{if(!((d|0)<=(e|0)|(j|0)>=(d|0))){f=H[a+72>>2];h=(N(f,j)<<2)+c|0;l=O(H[h+4>>2]);f=(N(e,f)<<2)+c|0;o=O(H[f+4>>2]);x=O(H[f>>2]);m=O(H[h>>2]);if(!(x!=m|l!=o)){h=+l>2147483647;e=H[a+68>>2];if(O(P(l))>2]=l2147483647;if(O(P(m))>2]=m>2]+(d<<2)>>2];H[g+40>>2]=0;H[g+32>>2]=0;H[g+36>>2]=0;h=H[a+60>>2];if(!I[h+84|0]){f=H[H[h+68>>2]+(f<<2)>>2]}Va(h,f,F[h+24|0],g+32|0);f=H[H[a+64>>2]+(e<<2)>>2];H[g+24>>2]=0;H[g+16>>2]=0;H[g+20>>2]=0;e=H[a+60>>2];if(!I[e+84|0]){f=H[H[e+68>>2]+(f<<2)>>2]}Va(e,f,F[e+24|0],g+16|0);h=H[H[a+64>>2]+(j<<2)>>2];H[g+8>>2]=0;H[g>>2]=0;H[g+4>>2]=0;e=H[a+60>>2];if(!I[e+84|0]){h=H[H[e+68>>2]+(h<<2)>>2]}Va(e,h,F[e+24|0],g);n=L[g+24>>2];r=O(L[g+8>>2]-n);s=L[g+20>>2];t=O(L[g+4>>2]-s);A=L[g+16>>2];u=O(L[g>>2]-A);y=O(O(r*r)+O(O(t*t)+O(O(u*u)+O(0))));g:{if(H[a+88>>2]>=258){i=O(0);if(!(y>O(0))){break g}}i=O(L[g+40>>2]-n);n=O(L[g+36>>2]-s);s=O(L[g+32>>2]-A);q=O(O(O(r*i)+O(O(t*n)+O(O(u*s)+O(0))))/y);i=O(i-O(r*q));r=O(i*i);i=O(n-O(t*q));n=O(i*i);i=O(s-O(u*q));i=O(W(O(O(r+O(n+O(O(i*i)+O(0))))/y)))}e=H[a+80>>2];if(e){f=e-1|0;h=H[H[a+76>>2]+(f>>>3&536870908)>>2];H[a+80>>2]=f;l=O(l-o);n=O(O(l*q)+o);m=O(m-x);o=O(m*i);f=h>>>f&1;o=O(n+(f?o:O(-o)));i=O(i*l);k=T(+O(O(O(m*q)+x)+(f?O(-i):i))+.5);h:{if(k<-2147483648|k!=k|k>2147483647){h=H[a+68>>2];H[h>>2]=-2147483648;break h}h=H[a+68>>2];if(P(k)<2147483648){f=~~k}else{f=-2147483648}H[h>>2]=f}k=T(+o+.5);j=k>2147483647;if(P(k)<2147483648){f=~~k}else{f=-2147483648}H[h+4>>2]=k<-2147483648?-2147483648:k!=k?-2147483648:j?-2147483648:f}h=(e|0)!=0;break f}i:{if((d|0)>(e|0)){f=H[a+72>>2];e=N(e,f);break i}if((d|0)<=0){h=1;if(H[a+72>>2]<=0){break f}e=H[a+68>>2];f=0;while(1){H[e+(f<<2)>>2]=0;f=f+1|0;if((f|0)>2]){continue}break}break f}f=H[a+72>>2];e=N(f,d-1|0)}h=1;if((f|0)<=0){break f}j=H[a+68>>2];f=0;while(1){H[j+(f<<2)>>2]=H[(e+f<<2)+c>>2];f=f+1|0;if((f|0)>2]){continue}break}}ca=g+48|0;break d}Ca();v()}if(!h){return 0}j:{if(H[a+8>>2]<=0){break j}z=H[a+68>>2];j=H[w>>2];e=0;while(1){f=e<<2;g=H[f+z>>2];p=H[a+16>>2];k:{if((g|0)>(p|0)){H[f+j>>2]=p;break k}f=f+j|0;p=H[a+12>>2];if((p|0)>(g|0)){H[f>>2]=p;break k}H[f>>2]=g}e=e+1|0;g=H[a+8>>2];if((e|0)<(g|0)){continue}break}f=0;if((g|0)<=0){break j}e=d<<3;z=e+c|0;p=b+e|0;while(1){g=f<<2;e=g+z|0;g=H[g+p>>2]+H[g+j>>2]|0;H[e>>2]=g;l:{if((g|0)>H[a+16>>2]){g=g-H[a+20>>2]|0}else{if((g|0)>=H[a+12>>2]){break l}g=g+H[a+20>>2]|0}H[e>>2]=g}f=f+1|0;if((f|0)>2]){continue}break}}d=d+1|0;if((B|0)!=(d|0)){continue}break}}return h|0}Ca();v()}function Of(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;f=ca-704|0;ca=f;n=1;a:{b:{c:{d:{if(J[b+38>>1]<515){break d}n=0;c=H[b+20>>2];d=H[b+12>>2];g=H[b+16>>2];if((c|0)>=(d|0)&g>>>0>=K[b+8>>2]|(c|0)>(d|0)){break d}p=I[H[b>>2]+g|0];g=g+1|0;c=g?c:c+1|0;H[b+16>>2]=g;H[b+20>>2]=c;g=H[H[(ea[H[H[a>>2]+28>>2]](a)|0)+4>>2]+80>>2];c=ea[H[H[a>>2]+24>>2]](a)|0;H[f+40>>2]=0;H[f+32>>2]=0;H[f+36>>2]=0;if(c){if(c>>>0>=214748365){break c}c=N(c,20);d=pa(c);H[f+32>>2]=d;H[f+40>>2]=c+d;c=c-20|0;c=(c-((c>>>0)%20|0)|0)+20|0;q=f,r=ra(d,0,c)+c|0,H[q+36>>2]=r}e:{if((ea[H[H[a>>2]+24>>2]](a)|0)>0){while(1){c=ea[H[H[a>>2]+20>>2]](a,l)|0;c=H[H[H[(ea[H[H[a>>2]+28>>2]](a)|0)+4>>2]+8>>2]+(c<<2)>>2];mb(c,g);F[c+84|0]=1;H[c+72>>2]=H[c+68>>2];d=H[c+28>>2];if(d>>>0>9){break e}f:{g:{h:{e=1<>2],d,6,0,i,i>>31);c=jc(pa(96),e);H[f>>2]=c;F[c+84|0]=1;H[c+72>>2]=H[c+68>>2];mb(c,g);c=H[a+64>>2];if(c>>>0>=K[a+68>>2]){break h}d=H[f>>2];H[f>>2]=0;H[c>>2]=d;c=c+4|0;H[a+64>>2]=c;break g}j=0;if(!I[c+24|0]){break f}while(1){d=H[a+52>>2];i=H[a+56>>2];i:{if(d>>>0>>0){H[d>>2]=0;H[a+52>>2]=d+4;break i}e=d;d=H[a+48>>2];m=e-d|0;k=m>>2;e=k+1|0;if(e>>>0>=1073741824){break b}o=k<<2;i=i-d|0;k=i>>>1|0;e=i>>>0>=2147483644?1073741823:e>>>0>>0?k:e;if(e){if(e>>>0>=1073741824){break a}i=pa(e<<2)}else{i=0}k=o+i|0;H[k>>2]=0;o=e<<2;e=va(i,d,m);H[a+56>>2]=o+e;H[a+52>>2]=k+4;H[a+48>>2]=e;if(!d){break i}oa(d)}j=j+1|0;if(j>>>0>2];i=H[a+64>>2]-e>>2;d=i+1|0;if(d>>>0<1073741824){e=H[a+68>>2]-e|0;j=e>>>1|0;e=e>>>0>=2147483644?1073741823:d>>>0>>0?j:d;if(e){if(e>>>0>=1073741824){break l}c=pa(e<<2)}j=H[f>>2];H[f>>2]=0;d=(i<<2)+c|0;H[d>>2]=j;e=(e<<2)+c|0;i=d+4|0;c=H[a+64>>2];j=H[a+60>>2];if((c|0)==(j|0)){break k}while(1){c=c-4|0;m=H[c>>2];H[c>>2]=0;d=d-4|0;H[d>>2]=m;if((c|0)!=(j|0)){continue}break}H[a+68>>2]=e;e=H[a+64>>2];H[a+64>>2]=i;c=H[a+60>>2];H[a+60>>2]=d;if((c|0)==(e|0)){break j}while(1){e=e-4|0;d=H[e>>2];H[e>>2]=0;if(d){Ga(d)}if((c|0)!=(e|0)){continue}break}break j}sa();v()}wa();v()}H[a+68>>2]=e;H[a+64>>2]=i;H[a+60>>2]=d}if(c){oa(c)}c=H[a+64>>2]}c=H[c-4>>2];d=H[f>>2];H[f>>2]=0;if(!d){break f}Ga(d)}i=H[c+28>>2];d=i-1|0;if(d>>>0<=10){e=H[(d<<2)+13584>>2]}else{e=-1}d=H[f+32>>2]+N(l,20)|0;j=I[c+24|0];H[d+16>>2]=j;H[d+12>>2]=(e|0)>0?e:0;H[d+8>>2]=i;H[d+4>>2]=h;H[d>>2]=c;h=h+j|0;l=l+1|0;if((ea[H[H[a>>2]+24>>2]](a)|0)>(l|0)){continue}break}}a=Ac(f,f+32|0);m:{n:{o:{switch(p|0){case 0:c=wb(f+48|0,h);b=Bd(c,b,a,g);h=H[c+8>>2];xb(c);if(!b){break m}if((h|0)==(g|0)){break n}break m;case 1:c=wb(f+48|0,h);b=zd(c,b,a,g);h=H[c+8>>2];xb(c);if(!b){break m}if((h|0)==(g|0)){break n}break m;case 2:c=ub(f+48|0,h);b=yd(c,b,a,g);h=H[c+8>>2];vb(c);if(!b){break m}if((h|0)==(g|0)){break n}break m;case 3:c=ub(f+48|0,h);b=xd(c,b,a,g);h=H[c+8>>2];vb(c);if(!b){break m}if((h|0)==(g|0)){break n}break m;case 4:c=$a(f+48|0,h);b=wd(c,b,a,g);h=H[c+8>>2];ab(c);if(!b){break m}if((h|0)==(g|0)){break n}break m;case 5:c=$a(f+48|0,h);b=vd(c,b,a,g);h=H[c+8>>2];ab(c);if(!b){break m}if((h|0)==(g|0)){break n}break m;case 6:break o;default:break m}}c=$a(f+48|0,h);b=ud(c,b,a,g);h=H[c+8>>2];ab(c);if(!b|(h|0)!=(g|0)){break m}}n=1}b=H[a+16>>2];if(b){H[a+20>>2]=b;oa(b)}b=H[a>>2];if(!b){break e}H[a+4>>2]=b;oa(b)}a=H[f+32>>2];if(!a){break d}H[f+36>>2]=a;oa(a)}ca=f+704|0;return n|0}sa();v()}sa();v()}wa();v()}function Zi(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0;e=ca-32|0;ca=e;a:{b:{switch(c-2|0){case 0:c=H[a+4>>2];f=H[a+12>>2];H[e+24>>2]=-1;H[e+16>>2]=-1;H[e+20>>2]=1065353216;H[e+8>>2]=-1;H[e+12>>2]=-1;if((b|0)==-2){break a}i=H[H[H[c+4>>2]+8>>2]+(f<<2)>>2];if((ea[H[H[c>>2]+8>>2]](c)|0)==1){h=H[H[H[c+4>>2]+8>>2]+(f<<2)>>2];c:{if((ea[H[H[c>>2]+8>>2]](c)|0)!=1|b-1>>>0>5){break c}g=ea[H[H[c>>2]+36>>2]](c)|0;a=ea[H[H[c>>2]+44>>2]](c,f)|0;if(!g|!a){break c}f=ea[H[H[c>>2]+40>>2]](c,f)|0;d:{if(f){if((b|0)!=6){break c}b=H[c+44>>2];d=pa(112);H[d+4>>2]=h;c=H[e+12>>2];H[d+8>>2]=H[e+8>>2];H[d+12>>2]=c;c=H[e+20>>2];H[d+16>>2]=H[e+16>>2];H[d+20>>2]=c;H[d+24>>2]=H[e+24>>2];H[d+40>>2]=a;c=a+12|0;H[d+36>>2]=c;H[d+32>>2]=f;H[d+28>>2]=b;H[d+68>>2]=a;H[d- -64>>2]=c;H[d+60>>2]=f;H[d+56>>2]=b;H[d+48>>2]=0;H[d+52>>2]=0;H[d>>2]=7144;H[d+88>>2]=1065353216;H[d+92>>2]=-1;H[d+80>>2]=-1;H[d+84>>2]=-1;H[d+72>>2]=1;H[d+76>>2]=-1;H[d+44>>2]=7668;a=d+96|0;break d}if((b|0)!=6){break c}b=H[c+44>>2];d=pa(112);H[d+4>>2]=h;c=H[e+12>>2];H[d+8>>2]=H[e+8>>2];H[d+12>>2]=c;c=H[e+20>>2];H[d+16>>2]=H[e+16>>2];H[d+20>>2]=c;H[d+24>>2]=H[e+24>>2];H[d+40>>2]=a;c=a+12|0;H[d+36>>2]=c;H[d+32>>2]=g;H[d+28>>2]=b;H[d+68>>2]=a;H[d- -64>>2]=c;H[d+60>>2]=g;H[d+56>>2]=b;H[d+48>>2]=0;H[d+52>>2]=0;H[d>>2]=8080;H[d+88>>2]=1065353216;H[d+92>>2]=-1;H[d+80>>2]=-1;H[d+84>>2]=-1;H[d+72>>2]=1;H[d+76>>2]=-1;H[d+44>>2]=8472;a=d+96|0}H[a>>2]=0;H[a+4>>2]=0;F[a+5|0]=0;F[a+6|0]=0;F[a+7|0]=0;F[a+8|0]=0;F[a+9|0]=0;F[a+10|0]=0;F[a+11|0]=0;F[a+12|0]=0}if(d){break a}}d=pa(28);H[d+4>>2]=i;a=H[e+12>>2];H[d+8>>2]=H[e+8>>2];H[d+12>>2]=a;a=H[e+20>>2];H[d+16>>2]=H[e+16>>2];H[d+20>>2]=a;H[d+24>>2]=H[e+24>>2];H[d>>2]=8860;break a;case 1:break b;default:break a}}c=H[a+4>>2];f=H[a+12>>2];H[e+24>>2]=-1;H[e+16>>2]=-1;H[e+20>>2]=1065353216;H[e+8>>2]=-1;H[e+12>>2]=-1;if((b|0)==-2){break a}i=H[H[H[c+4>>2]+8>>2]+(f<<2)>>2];if((ea[H[H[c>>2]+8>>2]](c)|0)==1){h=H[H[H[c+4>>2]+8>>2]+(f<<2)>>2];e:{if((ea[H[H[c>>2]+8>>2]](c)|0)!=1|b-1>>>0>5){break e}g=ea[H[H[c>>2]+36>>2]](c)|0;a=ea[H[H[c>>2]+44>>2]](c,f)|0;if(!g|!a){break e}f=ea[H[H[c>>2]+40>>2]](c,f)|0;f:{if(f){if((b|0)!=6){break e}b=H[c+44>>2];d=pa(112);H[d+4>>2]=h;c=H[e+12>>2];H[d+8>>2]=H[e+8>>2];H[d+12>>2]=c;c=H[e+20>>2];H[d+16>>2]=H[e+16>>2];H[d+20>>2]=c;H[d+24>>2]=H[e+24>>2];H[d+40>>2]=a;c=a+12|0;H[d+36>>2]=c;H[d+32>>2]=f;H[d+28>>2]=b;H[d+68>>2]=a;H[d- -64>>2]=c;H[d+60>>2]=f;H[d+56>>2]=b;H[d+48>>2]=0;H[d+52>>2]=0;H[d>>2]=9028;H[d+88>>2]=1065353216;H[d+92>>2]=-1;H[d+80>>2]=-1;H[d+84>>2]=-1;H[d+72>>2]=1;H[d+76>>2]=-1;H[d+44>>2]=9592;a=d+96|0;break f}if((b|0)!=6){break e}b=H[c+44>>2];d=pa(112);H[d+4>>2]=h;c=H[e+12>>2];H[d+8>>2]=H[e+8>>2];H[d+12>>2]=c;c=H[e+20>>2];H[d+16>>2]=H[e+16>>2];H[d+20>>2]=c;H[d+24>>2]=H[e+24>>2];H[d+40>>2]=a;c=a+12|0;H[d+36>>2]=c;H[d+32>>2]=g;H[d+28>>2]=b;H[d+68>>2]=a;H[d- -64>>2]=c;H[d+60>>2]=g;H[d+56>>2]=b;H[d+48>>2]=0;H[d+52>>2]=0;H[d>>2]=10032;H[d+88>>2]=1065353216;H[d+92>>2]=-1;H[d+80>>2]=-1;H[d+84>>2]=-1;H[d+72>>2]=1;H[d+76>>2]=-1;H[d+44>>2]=10452;a=d+96|0}H[a>>2]=0;H[a+4>>2]=0;F[a+5|0]=0;F[a+6|0]=0;F[a+7|0]=0;F[a+8|0]=0;F[a+9|0]=0;F[a+10|0]=0;F[a+11|0]=0;F[a+12|0]=0}if(d){break a}}d=pa(28);H[d+4>>2]=i;a=H[e+12>>2];H[d+8>>2]=H[e+8>>2];H[d+12>>2]=a;a=H[e+20>>2];H[d+16>>2]=H[e+16>>2];H[d+20>>2]=a;H[d+24>>2]=H[e+24>>2];H[d>>2]=10864}ca=e+32|0;return d|0}function Ki(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=O(0),f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=O(0),p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;if(H[c>>2]==H[c+4>>2]){m=H[d+80>>2];u=ca-16|0;ca=u;g=H[a+4>>2];k=I[b+24|0];h=H[d+48>>2];n=H[H[d>>2]>>2];c=u+8|0;H[c>>2]=1065353216;d=c;L[c>>2]=O(-1<>2];c=pa(k<<2);a:{if(!m|!k){break a}p=h+n|0;o=L[d>>2];n=H[a+8>>2];v=H[b>>2];d=H[b+48>>2];g=H[b+40>>2];w=H[b+44>>2];if(!I[b+84|0]){f=H[b+68>>2];s=k&254;t=k&1;a=0;while(1){b=H[v>>2];l=Rj(g,w,H[f+(i<<2)>>2],0)+d|0;h=qa(c,b+l|0,g);b=0;q=0;if((k|0)!=1){while(1){l=p+(a<<2)|0;j=b<<2;e=O(T(O(O(o*O(L[j+h>>2]-L[n+j>>2]))+O(.5))));b:{if(O(P(e))>2]=r;j=j|4;e=O(T(O(O(o*O(L[j+h>>2]-L[n+j>>2]))+O(.5))));c:{if(O(P(e))>2]=j;b=b+2|0;a=a+2|0;q=q+2|0;if((s|0)!=(q|0)){continue}break}}if(t){l=p+(a<<2)|0;b=b<<2;e=O(T(O(O(o*O(L[b+h>>2]-L[b+n>>2]))+O(.5))));d:{if(O(P(e))>2]=b;a=a+1|0}i=i+1|0;if((m|0)!=(i|0)){continue}break}break a}s=k&254;t=k&1;a=0;while(1){b=H[v>>2];h=Rj(g,w,i,l)+d|0;j=qa(c,b+h|0,g);b=0;q=0;if((k|0)!=1){while(1){h=p+(a<<2)|0;f=b<<2;e=O(T(O(O(o*O(L[f+j>>2]-L[f+n>>2]))+O(.5))));e:{if(O(P(e))>2]=r;f=f|4;e=O(T(O(O(o*O(L[f+j>>2]-L[f+n>>2]))+O(.5))));f:{if(O(P(e))>2]=f;b=b+2|0;a=a+2|0;q=q+2|0;if((s|0)!=(q|0)){continue}break}}if(t){h=p+(a<<2)|0;b=b<<2;e=O(T(O(O(o*O(L[b+j>>2]-L[b+n>>2]))+O(.5))));g:{if(O(P(e))>2]=b;a=a+1|0}b=l;i=i+1|0;b=i?b:b+1|0;l=b;if((i|0)!=(m|0)|b){continue}break}}oa(c);ca=u+16|0;return 1}j=ca-16|0;ca=j;m=H[a+4>>2];i=I[b+24|0];g=H[d+48>>2];h=H[H[d>>2]>>2];d=j+8|0;H[d>>2]=1065353216;l=d;L[d>>2]=O(-1<>2];d=pa(i<<2);m=H[c+4>>2];q=H[c>>2];h:{if(!i|(m|0)==(q|0)){break h}n=h+g|0;c=m-q>>2;u=c>>>0<=1?1:c;o=L[l>>2];h=H[a+8>>2];v=H[b>>2];l=H[b+48>>2];m=H[b+40>>2];w=H[b+44>>2];if(I[b+84|0]){s=i&254;t=i&1;a=0;c=0;while(1){b=H[v>>2];g=Rj(m,w,H[q+(c<<2)>>2],0)+l|0;p=qa(d,b+g|0,m);b=0;k=0;if((i|0)!=1){while(1){g=n+(a<<2)|0;f=b<<2;e=O(T(O(O(o*O(L[f+p>>2]-L[h+f>>2]))+O(.5))));i:{if(O(P(e))>2]=r;f=f|4;e=O(T(O(O(o*O(L[f+p>>2]-L[h+f>>2]))+O(.5))));j:{if(O(P(e))>2]=f;b=b+2|0;a=a+2|0;k=k+2|0;if((s|0)!=(k|0)){continue}break}}if(t){g=n+(a<<2)|0;b=b<<2;e=O(T(O(O(o*O(L[b+p>>2]-L[b+h>>2]))+O(.5))));k:{if(O(P(e))>2]=b;a=a+1|0}c=c+1|0;if((u|0)!=(c|0)){continue}break}break h}s=H[b+68>>2];t=i&254;x=i&1;a=0;c=0;while(1){b=H[v>>2];g=Rj(m,w,H[s+(H[q+(c<<2)>>2]<<2)>>2],0)+l|0;p=qa(d,b+g|0,m);b=0;k=0;if((i|0)!=1){while(1){g=n+(a<<2)|0;f=b<<2;e=O(T(O(O(o*O(L[f+p>>2]-L[h+f>>2]))+O(.5))));l:{if(O(P(e))>2]=r;f=f|4;e=O(T(O(O(o*O(L[f+p>>2]-L[h+f>>2]))+O(.5))));m:{if(O(P(e))>2]=f;b=b+2|0;a=a+2|0;k=k+2|0;if((t|0)!=(k|0)){continue}break}}if(x){g=n+(a<<2)|0;b=b<<2;e=O(T(O(O(o*O(L[b+p>>2]-L[b+h>>2]))+O(.5))));n:{if(O(P(e))>2]=b;a=a+1|0}c=c+1|0;if((u|0)!=(c|0)){continue}break}}oa(d);ca=j+16|0;return 1}function dd(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;c=H[a+4>>2];e=H[a>>2];f=(c-e|0)/144|0;if(f>>>0>>0){e=a;b=b-f|0;h=H[a+8>>2];c=H[a+4>>2];a:{if(b>>>0<=(h-c|0)/144>>>0){b:{if(!b){break b}a=c;f=b&7;if(f){while(1){Ia(a);a=a+144|0;d=d+1|0;if((f|0)!=(d|0)){continue}break}}c=N(b,144)+c|0;if((b-1&268435455)>>>0<7){break b}while(1){Ia(a);Ia(a+144|0);Ia(a+288|0);Ia(a+432|0);Ia(a+576|0);Ia(a+720|0);Ia(a+864|0);Ia(a+1008|0);a=a+1152|0;if((c|0)!=(a|0)){continue}break}}H[e+4>>2]=c;break a}c:{d:{e:{a=c;c=H[e>>2];i=(a-c|0)/144|0;a=i+b|0;if(a>>>0<29826162){c=(h-c|0)/144|0;f=c<<1;f=c>>>0>=14913080?29826161:a>>>0>>0?f:a;if(f){if(f>>>0>=29826162){break e}g=pa(N(f,144))}c=N(i,144)+g|0;a=c;h=b&7;if(h){while(1){Ia(a);a=a+144|0;d=d+1|0;if((h|0)!=(d|0)){continue}break}}h=N(b,144)+c|0;if((b-1&268435455)>>>0>=7){while(1){Ia(a);Ia(a+144|0);Ia(a+288|0);Ia(a+432|0);Ia(a+576|0);Ia(a+720|0);Ia(a+864|0);Ia(a+1008|0);a=a+1152|0;if((h|0)!=(a|0)){continue}break}}b=N(f,144)+g|0;d=H[e+4>>2];f=H[e>>2];if((d|0)==(f|0)){break d}while(1){c=c-144|0;d=d-144|0;a=d;H[c>>2]=H[a>>2];H[c+4>>2]=H[a+4>>2];H[c+8>>2]=H[a+8>>2];H[c+12>>2]=H[a+12>>2];H[a+12>>2]=0;H[a+4>>2]=0;H[a+8>>2]=0;H[c+16>>2]=H[a+16>>2];H[c+20>>2]=H[a+20>>2];H[c+24>>2]=H[a+24>>2];H[a+24>>2]=0;H[a+16>>2]=0;H[a+20>>2]=0;g=I[a+28|0];H[c+40>>2]=0;H[c+32>>2]=0;H[c+36>>2]=0;F[c+28|0]=g;H[c+32>>2]=H[a+32>>2];H[c+36>>2]=H[a+36>>2];H[c+40>>2]=H[a+40>>2];H[a+40>>2]=0;H[a+32>>2]=0;H[a+36>>2]=0;H[c+52>>2]=0;H[c+44>>2]=0;H[c+48>>2]=0;H[c+44>>2]=H[a+44>>2];H[c+48>>2]=H[a+48>>2];H[c+52>>2]=H[a+52>>2];H[a+52>>2]=0;H[a+44>>2]=0;H[a+48>>2]=0;g=c- -64|0;H[g>>2]=0;H[c+56>>2]=0;H[c+60>>2]=0;H[c+56>>2]=H[a+56>>2];H[c+60>>2]=H[a+60>>2];i=g;g=a- -64|0;H[i>>2]=H[g>>2];H[g>>2]=0;H[a+56>>2]=0;H[a+60>>2]=0;H[c+68>>2]=H[a+68>>2];g=H[a+72>>2];H[c+84>>2]=0;H[c+76>>2]=0;H[c+80>>2]=0;H[c+72>>2]=g;H[c+76>>2]=H[a+76>>2];H[c+80>>2]=H[a+80>>2];H[c+84>>2]=H[a+84>>2];H[a+84>>2]=0;H[a+76>>2]=0;H[a+80>>2]=0;H[c+96>>2]=0;H[c+88>>2]=0;H[c+92>>2]=0;H[c+88>>2]=H[a+88>>2];H[c+92>>2]=H[a+92>>2];H[c+96>>2]=H[a+96>>2];H[a+96>>2]=0;H[a+88>>2]=0;H[a+92>>2]=0;g=I[a+100|0];H[c+112>>2]=0;H[c+104>>2]=0;H[c+108>>2]=0;F[c+100|0]=g;H[c+104>>2]=H[a+104>>2];H[c+108>>2]=H[a+108>>2];H[c+112>>2]=H[a+112>>2];H[a+112>>2]=0;H[a+104>>2]=0;H[a+108>>2]=0;H[c+124>>2]=0;H[c+116>>2]=0;H[c+120>>2]=0;H[c+116>>2]=H[a+116>>2];H[c+120>>2]=H[a+120>>2];H[c+124>>2]=H[a+124>>2];H[a+124>>2]=0;H[a+116>>2]=0;H[a+120>>2]=0;g=H[a+128>>2];H[c+140>>2]=0;H[c+132>>2]=0;H[c+136>>2]=0;H[c+128>>2]=g;H[c+132>>2]=H[a+132>>2];H[c+136>>2]=H[a+136>>2];H[c+140>>2]=H[a+140>>2];H[a+140>>2]=0;H[a+132>>2]=0;H[a+136>>2]=0;if((a|0)!=(f|0)){continue}break}H[e+8>>2]=b;a=H[e+4>>2];H[e+4>>2]=h;d=H[e>>2];H[e>>2]=c;if((a|0)==(d|0)){break c}while(1){b=a-144|0;c=H[b+132>>2];if(c){H[a-8>>2]=c;oa(c)}c=H[a-28>>2];if(c){H[a-24>>2]=c;oa(c)}c=H[a-40>>2];if(c){H[a-36>>2]=c;oa(c)}oc(a-140|0);a=b;if((d|0)!=(a|0)){continue}break}break c}sa();v()}wa();v()}H[e+8>>2]=b;H[e+4>>2]=h;H[e>>2]=c}if(d){oa(d)}}return}if(b>>>0>>0){e=e+N(b,144)|0;if((e|0)!=(c|0)){while(1){b=c-144|0;d=H[b+132>>2];if(d){H[c-8>>2]=d;oa(d)}d=H[c-28>>2];if(d){H[c-24>>2]=d;oa(d)}d=H[c-40>>2];if(d){H[c-36>>2]=d;oa(d)}oc(c-140|0);c=b;if((e|0)!=(c|0)){continue}break}}H[a+4>>2]=e}}function Pe(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0;f=ca-80|0;ca=f;e=H[c+36>>2];H[f+72>>2]=H[c+32>>2];H[f+76>>2]=e;g=H[c+28>>2];e=f- -64|0;H[e>>2]=H[c+24>>2];H[e+4>>2]=g;e=H[c+20>>2];H[f+56>>2]=H[c+16>>2];H[f+60>>2]=e;e=H[c+12>>2];H[f+48>>2]=H[c+8>>2];H[f+52>>2]=e;e=H[c+4>>2];H[f+40>>2]=H[c>>2];H[f+44>>2]=e;nc(a,f+40|0,f+24|0);a:{if(H[a>>2]){break a}if(F[a+15|0]<0){oa(H[a+4>>2])}if(I[f+31|0]){b=pa(32);F[b+27|0]=0;c=I[1521]|I[1522]<<8|(I[1523]<<16|I[1524]<<24);F[b+23|0]=c;F[b+24|0]=c>>>8;F[b+25|0]=c>>>16;F[b+26|0]=c>>>24;c=I[1518]|I[1519]<<8|(I[1520]<<16|I[1521]<<24);d=I[1514]|I[1515]<<8|(I[1516]<<16|I[1517]<<24);F[b+16|0]=d;F[b+17|0]=d>>>8;F[b+18|0]=d>>>16;F[b+19|0]=d>>>24;F[b+20|0]=c;F[b+21|0]=c>>>8;F[b+22|0]=c>>>16;F[b+23|0]=c>>>24;c=I[1510]|I[1511]<<8|(I[1512]<<16|I[1513]<<24);d=I[1506]|I[1507]<<8|(I[1508]<<16|I[1509]<<24);F[b+8|0]=d;F[b+9|0]=d>>>8;F[b+10|0]=d>>>16;F[b+11|0]=d>>>24;F[b+12|0]=c;F[b+13|0]=c>>>8;F[b+14|0]=c>>>16;F[b+15|0]=c>>>24;c=I[1502]|I[1503]<<8|(I[1504]<<16|I[1505]<<24);d=I[1498]|I[1499]<<8|(I[1500]<<16|I[1501]<<24);F[b|0]=d;F[b+1|0]=d>>>8;F[b+2|0]=d>>>16;F[b+3|0]=d>>>24;F[b+4|0]=c;F[b+5|0]=c>>>8;F[b+6|0]=c>>>16;F[b+7|0]=c>>>24;H[a>>2]=-1;za(a+4|0,b,27);oa(b);break a}i=ca-16|0;ca=i;b:{c:{switch(F[f+32|0]){case 0:e=pa(44);H[e>>2]=0;H[e+4>>2]=0;H[e+40>>2]=0;H[e+32>>2]=0;H[e+36>>2]=0;H[e+24>>2]=0;H[e+28>>2]=0;H[e+16>>2]=0;H[e+20>>2]=0;H[e+8>>2]=0;H[e+12>>2]=0;e=Vc(e);H[e>>2]=13496;H[f+8>>2]=0;H[f+12>>2]=0;H[f>>2]=0;H[f+4>>2]=0;H[f+16>>2]=e;break b;case 1:e=pa(44);H[e>>2]=0;H[e+4>>2]=0;H[e+40>>2]=0;H[e+32>>2]=0;H[e+36>>2]=0;H[e+24>>2]=0;H[e+28>>2]=0;H[e+16>>2]=0;H[e+20>>2]=0;H[e+8>>2]=0;H[e+12>>2]=0;e=Vc(e);H[e>>2]=13404;H[f+8>>2]=0;H[f+12>>2]=0;H[f>>2]=0;H[f+4>>2]=0;H[f+16>>2]=e;break b;default:break c}}g=pa(32);F[g+28|0]=0;e=I[1550]|I[1551]<<8|(I[1552]<<16|I[1553]<<24);F[g+24|0]=e;F[g+25|0]=e>>>8;F[g+26|0]=e>>>16;F[g+27|0]=e>>>24;e=I[1546]|I[1547]<<8|(I[1548]<<16|I[1549]<<24);h=I[1542]|I[1543]<<8|(I[1544]<<16|I[1545]<<24);F[g+16|0]=h;F[g+17|0]=h>>>8;F[g+18|0]=h>>>16;F[g+19|0]=h>>>24;F[g+20|0]=e;F[g+21|0]=e>>>8;F[g+22|0]=e>>>16;F[g+23|0]=e>>>24;e=I[1538]|I[1539]<<8|(I[1540]<<16|I[1541]<<24);h=I[1534]|I[1535]<<8|(I[1536]<<16|I[1537]<<24);F[g+8|0]=h;F[g+9|0]=h>>>8;F[g+10|0]=h>>>16;F[g+11|0]=h>>>24;F[g+12|0]=e;F[g+13|0]=e>>>8;F[g+14|0]=e>>>16;F[g+15|0]=e>>>24;e=I[1530]|I[1531]<<8|(I[1532]<<16|I[1533]<<24);h=I[1526]|I[1527]<<8|(I[1528]<<16|I[1529]<<24);F[g|0]=h;F[g+1|0]=h>>>8;F[g+2|0]=h>>>16;F[g+3|0]=h>>>24;F[g+4|0]=e;F[g+5|0]=e>>>8;F[g+6|0]=e>>>16;F[g+7|0]=e>>>24;H[i>>2]=-1;e=i|4;za(e,g,28);j=F[i+15|0];H[f>>2]=H[i>>2];h=f+4|0;d:{if((j|0)>=0){j=H[e+4>>2];H[h>>2]=H[e>>2];H[h+4>>2]=j;H[h+8>>2]=H[e+8>>2];H[f+16>>2]=0;break d}za(h,H[i+4>>2],H[i+8>>2]);e=F[i+15|0];H[f+16>>2]=0;if((e|0)>=0){break d}oa(H[i+4>>2])}oa(g)}ca=i+16|0;e=H[f>>2];e:{if(e){H[a>>2]=e;a=a+4|0;if(F[f+15|0]>=0){b=f|4;c=H[b+4>>2];H[a>>2]=H[b>>2];H[a+4>>2]=c;H[a+8>>2]=H[b+8>>2];break e}za(a,H[f+4>>2],H[f+8>>2]);break e}e=H[f+16>>2];H[f+16>>2]=0;te(a,e,b,c,d);if(!H[a>>2]){if(F[a+15|0]<0){oa(H[a+4>>2])}H[a>>2]=0;H[a+4>>2]=0;H[a+8>>2]=0;H[a+12>>2]=0}ea[H[H[e>>2]+4>>2]](e)}a=H[f+16>>2];H[f+16>>2]=0;if(a){ea[H[H[a>>2]+4>>2]](a)}if(F[f+15|0]>=0){break a}oa(H[f+4>>2])}ca=f+80|0}function Ic(a){var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;H[a+56>>2]=H[a+52>>2];H[a+44>>2]=H[a+40>>2];b=H[a+64>>2];c=H[b+24>>2];if((c|0)==H[b+28>>2]){return 1}a:{b:{c:{while(1){g=i;i=H[(k<<2)+c>>2];d:{if((i|0)==-1){i=g;break d}b=H[a+56>>2];e:{if((b|0)!=H[a+60>>2]){H[b>>2]=g;H[a+56>>2]=b+4;break e}d=H[a+52>>2];e=b-d|0;h=e>>2;c=h+1|0;if(c>>>0>=1073741824){break c}f=e>>>1|0;f=e>>>0>=2147483644?1073741823:c>>>0>>0?f:c;if(f){if(f>>>0>=1073741824){break b}e=pa(f<<2)}else{e=0}c=e+(h<<2)|0;H[c>>2]=g;h=c+4|0;if((b|0)!=(d|0)){while(1){c=c-4|0;b=b-4|0;H[c>>2]=H[b>>2];if((b|0)!=(d|0)){continue}break}}H[a+60>>2]=e+(f<<2);H[a+56>>2]=h;H[a+52>>2]=c;if(!d){break e}oa(d)}f:{g:{if(!(H[H[a+12>>2]+(k>>>3&536870908)>>2]>>>k&1)){break g}e=i+1|0;e=(e>>>0)%3|0?e:i-2|0;if((e|0)==-1|H[H[a>>2]+(e>>>3&536870908)>>2]>>>e&1){break g}e=H[H[H[a+64>>2]+12>>2]+(e<<2)>>2];if((e|0)==-1){break g}b=e+1|0;b=(b>>>0)%3|0?b:e-2|0;if((b|0)==-1){break g}c=H[a+64>>2];f=H[a>>2];while(1){e=b;b=-1;d=e+1|0;d=(d>>>0)%3|0?d:e-2|0;h:{if((d|0)==-1|H[f+(d>>>3&536870908)>>2]>>>d&1){break h}d=H[H[c+12>>2]+(d<<2)>>2];if((d|0)==-1){break h}b=d+1|0;b=(b>>>0)%3|0?b:d-2|0}if((b|0)!=(i|0)){if((b|0)==-1){break f}continue}break}return 0}e=i}H[H[a+28>>2]+(e<<2)>>2]=g;b=H[a+44>>2];i:{if((b|0)!=H[a+48>>2]){H[b>>2]=e;H[a+44>>2]=b+4;break i}d=H[a+40>>2];i=b-d|0;h=i>>2;c=h+1|0;if(c>>>0>=1073741824){break a}f=i>>>1|0;f=i>>>0>=2147483644?1073741823:c>>>0>>0?f:c;if(f){if(f>>>0>=1073741824){break b}i=pa(f<<2)}else{i=0}c=i+(h<<2)|0;H[c>>2]=e;h=c+4|0;if((b|0)!=(d|0)){while(1){c=c-4|0;b=b-4|0;H[c>>2]=H[b>>2];if((b|0)!=(d|0)){continue}break}}H[a+48>>2]=i+(f<<2);H[a+44>>2]=h;H[a+40>>2]=c;if(!d){break i}oa(d)}i=g+1|0;b=H[a+64>>2];if((e|0)==-1){break d}j:{if((e>>>0)%3|0){c=e-1|0;break j}c=e+2|0;if((c|0)==-1){break d}}d=H[H[b+12>>2]+(c<<2)>>2];if((d|0)==-1){break d}f=d+((d>>>0)%3|0?-1:2)|0;if((f|0)==-1|(e|0)==(f|0)){break d}while(1){b=f+1|0;b=(b>>>0)%3|0?b:f-2|0;if(H[H[a>>2]+(b>>>3&536870908)>>2]>>>b&1){b=H[a+56>>2];k:{if((b|0)!=H[a+60>>2]){H[b>>2]=i;H[a+56>>2]=b+4;break k}d=H[a+52>>2];g=b-d|0;j=g>>2;c=j+1|0;if(c>>>0>=1073741824){break c}h=g>>>1|0;h=g>>>0>=2147483644?1073741823:c>>>0>>0?h:c;if(h){if(h>>>0>=1073741824){break b}g=pa(h<<2)}else{g=0}c=g+(j<<2)|0;H[c>>2]=i;j=c+4|0;if((b|0)!=(d|0)){while(1){c=c-4|0;b=b-4|0;H[c>>2]=H[b>>2];if((b|0)!=(d|0)){continue}break}}H[a+60>>2]=g+(h<<2);H[a+56>>2]=j;H[a+52>>2]=c;if(!d){break k}oa(d)}d=i+1|0;b=H[a+44>>2];l:{if((b|0)!=H[a+48>>2]){H[b>>2]=f;H[a+44>>2]=b+4;break l}h=H[a+40>>2];g=b-h|0;l=g>>2;c=l+1|0;if(c>>>0>=1073741824){break a}j=g>>>1|0;j=g>>>0>=2147483644?1073741823:c>>>0>>0?j:c;if(j){if(j>>>0>=1073741824){break b}g=pa(j<<2)}else{g=0}c=g+(l<<2)|0;H[c>>2]=f;l=c+4|0;if((b|0)!=(h|0)){while(1){c=c-4|0;b=b-4|0;H[c>>2]=H[b>>2];if((b|0)!=(h|0)){continue}break}}H[a+48>>2]=g+(j<<2);H[a+44>>2]=l;H[a+40>>2]=c;if(!h){break l}oa(h)}g=i;i=d}H[H[a+28>>2]+(f<<2)>>2]=g;b=H[a+64>>2];m:{if((f>>>0)%3|0){c=f-1|0;break m}c=f+2|0;if((c|0)==-1){break d}}d=H[H[b+12>>2]+(c<<2)>>2];if((d|0)==-1){break d}f=d+((d>>>0)%3|0?-1:2)|0;if((f|0)==-1){break d}if((e|0)!=(f|0)){continue}break}}k=k+1|0;c=H[b+24>>2];if(k>>>0>2]-c>>2>>>0){continue}break}return 1}sa();v()}wa();v()}sa();v()}function ti(a){a=a|0;var b=0,c=0,d=0,e=0;c=H[a+32>>2];d=H[c+16>>2];e=H[c+12>>2];b=H[c+20>>2];if(K[c+8>>2]>d>>>0&(e|0)>=(b|0)|(b|0)<(e|0)){e=I[H[c>>2]+d|0];d=d+1|0;b=d?b:b+1|0;H[c+16>>2]=d;H[c+20>>2]=b;b=H[a+48>>2];H[a+48>>2]=0;if(b){ea[H[H[b>>2]+4>>2]](b)}a:{b:{c:{d:{switch(e|0){case 0:b=pa(384);H[b>>2]=11384;ra(b+4|0,0,80);H[b+96>>2]=0;H[b+100>>2]=0;H[b+92>>2]=-1;H[b+84>>2]=-1;H[b+88>>2]=-1;H[b+104>>2]=0;H[b+108>>2]=0;H[b+112>>2]=0;H[b+116>>2]=0;H[b+120>>2]=0;H[b+124>>2]=0;H[b+128>>2]=0;H[b+132>>2]=0;H[b+136>>2]=0;H[b+140>>2]=0;H[b+144>>2]=0;H[b+148>>2]=0;H[b+156>>2]=0;H[b+160>>2]=0;H[b+152>>2]=1065353216;H[b+164>>2]=0;H[b+168>>2]=0;H[b+172>>2]=0;H[b+176>>2]=0;H[b+180>>2]=0;H[b+184>>2]=0;H[b+188>>2]=0;H[b+192>>2]=0;H[b+196>>2]=0;H[b+200>>2]=0;H[b+204>>2]=0;H[b+208>>2]=0;H[b+212>>2]=-1;H[b+216>>2]=0;H[b+220>>2]=0;H[b+224>>2]=0;Ha(b+232|0);Ha(b+272|0);c=b+312|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;Ha(b+328|0);H[b+376>>2]=0;H[b+368>>2]=0;H[b+372>>2]=0;break c;case 1:b=pa(424);H[b>>2]=11436;ra(b+4|0,0,80);H[b+96>>2]=0;H[b+100>>2]=0;H[b+92>>2]=-1;H[b+84>>2]=-1;H[b+88>>2]=-1;H[b+104>>2]=0;H[b+108>>2]=0;H[b+112>>2]=0;H[b+116>>2]=0;H[b+120>>2]=0;H[b+124>>2]=0;H[b+128>>2]=0;H[b+132>>2]=0;H[b+136>>2]=0;H[b+140>>2]=0;H[b+144>>2]=0;H[b+148>>2]=0;H[b+156>>2]=0;H[b+160>>2]=0;H[b+152>>2]=1065353216;H[b+164>>2]=0;H[b+168>>2]=0;H[b+172>>2]=0;H[b+176>>2]=0;H[b+180>>2]=0;H[b+184>>2]=0;H[b+188>>2]=0;H[b+192>>2]=0;H[b+196>>2]=0;H[b+200>>2]=0;H[b+204>>2]=0;H[b+208>>2]=0;H[b+212>>2]=-1;H[b+216>>2]=0;H[b+220>>2]=0;H[b+224>>2]=0;Ha(b+232|0);Ha(b+272|0);c=b+312|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;Ha(b+328|0);H[b+392>>2]=0;H[b+396>>2]=0;H[b+384>>2]=0;H[b+388>>2]=0;H[b+376>>2]=0;H[b+380>>2]=0;H[b+368>>2]=0;H[b+372>>2]=0;c=b+400|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;H[b+416>>2]=-1;H[b+420>>2]=-1;break c;case 2:break d;default:break b}}b=pa(440);H[b>>2]=11484;ra(b+4|0,0,80);H[b+96>>2]=0;H[b+100>>2]=0;H[b+92>>2]=-1;H[b+84>>2]=-1;H[b+88>>2]=-1;H[b+104>>2]=0;H[b+108>>2]=0;H[b+112>>2]=0;H[b+116>>2]=0;H[b+120>>2]=0;H[b+124>>2]=0;H[b+128>>2]=0;H[b+132>>2]=0;H[b+136>>2]=0;H[b+140>>2]=0;H[b+144>>2]=0;H[b+148>>2]=0;H[b+156>>2]=0;H[b+160>>2]=0;H[b+152>>2]=1065353216;H[b+164>>2]=0;H[b+168>>2]=0;H[b+172>>2]=0;H[b+176>>2]=0;H[b+180>>2]=0;H[b+184>>2]=0;H[b+188>>2]=0;H[b+192>>2]=0;H[b+196>>2]=0;H[b+200>>2]=0;H[b+204>>2]=0;H[b+208>>2]=0;H[b+212>>2]=-1;H[b+216>>2]=0;H[b+220>>2]=0;H[b+224>>2]=0;Ha(b+232|0);Ha(b+272|0);c=b+312|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;Ha(b+328|0);H[b+392>>2]=0;H[b+396>>2]=0;H[b+384>>2]=0;H[b+388>>2]=0;H[b+376>>2]=0;H[b+380>>2]=0;H[b+368>>2]=0;H[b+372>>2]=0;H[b+416>>2]=0;H[b+420>>2]=0;H[b+408>>2]=2;H[b+412>>2]=7;H[b+400>>2]=-1;H[b+404>>2]=-1;H[b+424>>2]=0;H[b+428>>2]=0;H[b+432>>2]=0;H[b+436>>2]=0}c=H[a+48>>2];H[a+48>>2]=b;if(!c){break a}ea[H[H[c>>2]+4>>2]](c)}b=H[a+48>>2];if(b){break a}return 0}a=ea[H[H[b>>2]+8>>2]](b,a)|0}else{a=0}return a|0}function Lb(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0;f=ca-96|0;ca=f;e=H[a+16>>2];F[f+92|0]=1;H[f+88>>2]=b;H[f+84>>2]=b;H[f+80>>2]=e;a:{if((b|0)==-1){break a}j=H[a+20>>2];d=H[j>>2];e=H[H[e>>2]+(b<<2)>>2];if(e>>>0>=H[j+4>>2]-d>>2>>>0){break a}e=H[H[a+8>>2]+(H[d+(e<<2)>>2]<<2)>>2];d=H[a+4>>2];if(!I[d+84|0]){e=H[H[d+68>>2]+(e<<2)>>2]}H[f+72>>2]=0;H[f+76>>2]=0;j=f- -64|0;H[j>>2]=0;H[j+4>>2]=0;H[f+56>>2]=0;H[f+60>>2]=0;Sa(d,e,F[d+24|0],f+56|0);e=b+1|0;j=(e>>>0)%3|0?e:b-2|0;n=((b>>>0)%3|0?-1:2)+b|0;b:{c:{while(1){d=j;e=n;d:{if(!H[a+28>>2]){break d}e=b+1|0;d=(e>>>0)%3|0?e:b-2|0;e=b-1|0;if((b>>>0)%3|0){break d}e=b+2|0}if((d|0)==-1){break b}m=H[a+20>>2];b=H[m>>2];d=H[H[H[a+16>>2]>>2]+(d<<2)>>2];if(d>>>0>=H[m+4>>2]-b>>2>>>0){break b}d=H[H[a+8>>2]+(H[(d<<2)+b>>2]<<2)>>2];b=H[a+4>>2];if(!I[b+84|0]){d=H[H[b+68>>2]+(d<<2)>>2]}H[f+48>>2]=0;H[f+52>>2]=0;H[f+40>>2]=0;H[f+44>>2]=0;H[f+32>>2]=0;H[f+36>>2]=0;Sa(b,d,F[b+24|0],f+32|0);if((e|0)==-1){break c}d=H[a+20>>2];b=H[d>>2];e=H[H[H[a+16>>2]>>2]+(e<<2)>>2];if(e>>>0>=H[d+4>>2]-b>>2>>>0){break c}d=H[H[a+8>>2]+(H[b+(e<<2)>>2]<<2)>>2];b=H[a+4>>2];if(!I[b+84|0]){d=H[H[b+68>>2]+(d<<2)>>2]}H[f+24>>2]=0;H[f+28>>2]=0;H[f+16>>2]=0;H[f+20>>2]=0;H[f+8>>2]=0;H[f+12>>2]=0;Sa(b,d,F[b+24|0],f+8|0);g=H[f+8>>2];b=H[f+56>>2];d=g-b|0;p=H[f+60>>2];t=H[f+12>>2]-(p+(b>>>0>g>>>0)|0)|0;i=H[f+40>>2];e=H[f+64>>2];m=i-e|0;u=H[f+68>>2];y=H[f+44>>2]-(u+(e>>>0>i>>>0)|0)|0;g=Rj(d,t,m,y);w=o-g|0;x=h-(da+(g>>>0>o>>>0)|0)|0;h=w;i=H[f+16>>2];g=i-e|0;u=H[f+20>>2]-((e>>>0>i>>>0)+u|0)|0;k=H[f+32>>2];i=k-b|0;w=H[f+36>>2]-((b>>>0>k>>>0)+p|0)|0;b=Rj(g,u,i,w);o=h+b|0;h=da+x|0;h=b>>>0>o>>>0?h+1|0:h;b=l;l=d;p=t;k=H[f+48>>2];e=H[f+72>>2];d=k-e|0;t=H[f+76>>2];x=H[f+52>>2]-(t+(e>>>0>k>>>0)|0)|0;l=Rj(l,p,d,x);k=b+l|0;b=da+q|0;b=k>>>0>>0?b+1|0:b;l=H[f+24>>2];p=l-e|0;e=H[f+28>>2]-((e>>>0>l>>>0)+t|0)|0;q=Rj(p,e,i,w);l=k-q|0;q=b-(da+(k>>>0>>0)|0)|0;b=Rj(g,u,d,x);d=r-b|0;b=s-(da+(b>>>0>r>>>0)|0)|0;s=Rj(p,e,m,y);r=s+d|0;b=da+b|0;s=r>>>0>>0?b+1|0:b;uc(f+80|0);b=H[f+88>>2];if((b|0)!=-1){continue}break}b=s>>31;e=b^r;d=e-b|0;b=(b^s)-((b>>>0>e>>>0)+b|0)|0;n=-1;e=2147483647;m=q>>31;g=m;i=g^l;j=i-g|0;m=(g^q)-((i>>>0>>0)+g|0)|0;i=m;k=j^-1;g=i^2147483647;m=h;e:{f:{if(!H[a+28>>2]){if((b|0)==(g|0)&d>>>0>k>>>0|b>>>0>g>>>0){break e}b=b+i|0;a=d+j|0;b=a>>>0>>0?b+1|0:b;e=a;g=h;a=g>>31;d=a;n=d^o;a=n-d|0;h=a;d=(d^g)-((d>>>0>n>>>0)+d|0)|0;a=a+e|0;d=d^2147483647;h=(d|0)==(b|0)&(h^-1)>>>0>>0|b>>>0>d>>>0;a=h?-1:a;if(!(h&0)&(a|0)<=536870912|(a|0)<536870912){break e}b=0;a=a>>>29|0;break f}g:{if((b|0)==(g|0)&d>>>0>k>>>0|b>>>0>g>>>0){break g}b=b+i|0;a=d+j|0;b=a>>>0>>0?b+1|0:b;k=h;h=h>>31;g=h;i=g^o;h=i-g|0;j=(g^k)-((g>>>0>i>>>0)+g|0)|0;g=j^2147483647;d=a;a=h;if((g|0)==(b|0)&d>>>0>(a^-1)>>>0|b>>>0>g>>>0){break g}b=b+j|0;n=a+d|0;b=n>>>0>>0?b+1|0:b;e=b;if(!b&n>>>0<536870913){break e}}b=e>>>29|0;a=(e&536870911)<<3|n>>>29}o=Sj(o,m,a,b);l=Sj(l,q,a,b);r=Sj(r,s,a,b)}H[c+8>>2]=o;H[c+4>>2]=l;H[c>>2]=r;ca=f+96|0;return}Ca();v()}Ca();v()}Ca();v()}function Wd(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;a:{if((b|0)<0){break a}c=H[a+12>>2];d=H[a+8>>2];if(c-d>>2>>>0<=b>>>0){break a}d=d+(b<<2)|0;e=H[d>>2];i=H[e+60>>2];f=H[e+56>>2];e=d+4|0;if((e|0)!=(c|0)){while(1){h=H[e>>2];H[e>>2]=0;g=H[d>>2];H[d>>2]=h;if(g){Ga(g)}d=d+4|0;e=e+4|0;if((e|0)!=(c|0)){continue}break}c=H[a+12>>2]}if((c|0)!=(d|0)){while(1){c=c-4|0;e=H[c>>2];H[c>>2]=0;if(e){Ga(e)}if((c|0)!=(d|0)){continue}break}}H[a+12>>2]=d;g=H[a+4>>2];b:{if(!g|(i|0)<0){break b}c=H[g+24>>2];d=H[g+28>>2];if((c|0)==(d|0)){break b}while(1){if((i|0)==H[H[c>>2]+24>>2]){d=c+4|0;i=H[g+28>>2];if((d|0)!=(i|0)){while(1){h=H[d>>2];H[d>>2]=0;e=H[c>>2];H[c>>2]=h;if(e){Ra(e+12|0,H[e+16>>2]);Qa(e,H[e+4>>2]);oa(e)}c=c+4|0;d=d+4|0;if((i|0)!=(d|0)){continue}break}d=H[g+28>>2]}if((c|0)!=(d|0)){while(1){d=d-4|0;e=H[d>>2];H[d>>2]=0;if(e){Ra(e+12|0,H[e+16>>2]);Qa(e,H[e+4>>2]);oa(e)}if((c|0)!=(d|0)){continue}break}}H[g+28>>2]=c;break b}c=c+4|0;if((d|0)!=(c|0)){continue}break}}c:{if((f|0)>4){break c}d:{e=N(f,12)+a|0;c=H[e+20>>2];d=H[e+24>>2];if((c|0)==(d|0)){break d}while(1){if(H[c>>2]==(b|0)){break d}c=c+4|0;if((d|0)!=(c|0)){continue}break}break c}if((c|0)==(d|0)){break c}f=c;c=c+4|0;va(f,c,d-c|0);H[e+24>>2]=d-4}c=H[a+24>>2];d=H[a+20>>2];e:{if((c|0)==(d|0)){break e}e=c-d|0;c=e>>2;g=c>>>0<=1?1:c;i=g&1;c=0;if(e>>>0>=8){g=g&-2;e=0;while(1){f=c<<2;h=f+d|0;j=H[h>>2];if((j|0)>(b|0)){H[h>>2]=j-1}f=d+(f|4)|0;h=H[f>>2];if((h|0)>(b|0)){H[f>>2]=h-1}c=c+2|0;e=e+2|0;if((g|0)!=(e|0)){continue}break}}if(!i){break e}c=d+(c<<2)|0;d=H[c>>2];if((d|0)<=(b|0)){break e}H[c>>2]=d-1}c=H[a+36>>2];d=H[a+32>>2];f:{if((c|0)==(d|0)){break f}e=c-d|0;c=e>>2;g=c>>>0<=1?1:c;i=g&1;c=0;if(e>>>0>=8){g=g&-2;e=0;while(1){f=c<<2;h=f+d|0;j=H[h>>2];if((j|0)>(b|0)){H[h>>2]=j-1}f=d+(f|4)|0;h=H[f>>2];if((h|0)>(b|0)){H[f>>2]=h-1}c=c+2|0;e=e+2|0;if((g|0)!=(e|0)){continue}break}}if(!i){break f}c=d+(c<<2)|0;d=H[c>>2];if((d|0)<=(b|0)){break f}H[c>>2]=d-1}c=H[a+48>>2];d=H[a+44>>2];g:{if((c|0)==(d|0)){break g}e=c-d|0;c=e>>2;g=c>>>0<=1?1:c;i=g&1;c=0;if(e>>>0>=8){g=g&-2;e=0;while(1){f=c<<2;h=f+d|0;j=H[h>>2];if((j|0)>(b|0)){H[h>>2]=j-1}f=d+(f|4)|0;h=H[f>>2];if((h|0)>(b|0)){H[f>>2]=h-1}c=c+2|0;e=e+2|0;if((g|0)!=(e|0)){continue}break}}if(!i){break g}c=d+(c<<2)|0;d=H[c>>2];if((d|0)<=(b|0)){break g}H[c>>2]=d-1}c=H[a+60>>2];d=H[a+56>>2];h:{if((c|0)==(d|0)){break h}e=c-d|0;c=e>>2;g=c>>>0<=1?1:c;i=g&1;c=0;if(e>>>0>=8){g=g&-2;e=0;while(1){f=c<<2;h=f+d|0;j=H[h>>2];if((j|0)>(b|0)){H[h>>2]=j-1}f=d+(f|4)|0;h=H[f>>2];if((h|0)>(b|0)){H[f>>2]=h-1}c=c+2|0;e=e+2|0;if((g|0)!=(e|0)){continue}break}}if(!i){break h}c=d+(c<<2)|0;d=H[c>>2];if((d|0)<=(b|0)){break h}H[c>>2]=d-1}c=H[a+72>>2];a=H[a+68>>2];if((c|0)==(a|0)){break a}d=c-a|0;c=d>>2;e=c>>>0<=1?1:c;g=e&1;c=0;if(d>>>0>=8){d=e&-2;e=0;while(1){i=c<<2;f=i+a|0;h=H[f>>2];if((h|0)>(b|0)){H[f>>2]=h-1}i=a+(i|4)|0;f=H[i>>2];if((f|0)>(b|0)){H[i>>2]=f-1}c=c+2|0;e=e+2|0;if((d|0)!=(e|0)){continue}break}}if(!g){break a}f=b;a=a+(c<<2)|0;b=H[a>>2];if((f|0)>=(b|0)){break a}H[a>>2]=b-1}}function oa(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;a:{if(!a){break a}d=a-8|0;b=H[a-4>>2];a=b&-8;f=d+a|0;b:{if(b&1){break b}if(!(b&3)){break a}b=H[d>>2];d=d-b|0;if(d>>>0>>0<=255){e=H[d+8>>2];b=b>>>3|0;c=H[d+12>>2];if((c|0)==(e|0)){i=17192,j=H[4298]&Vj(b),H[i>>2]=j;break b}H[e+12>>2]=c;H[c+8>>2]=e;break b}h=H[d+24>>2];b=H[d+12>>2];c:{if((d|0)!=(b|0)){c=H[d+8>>2];H[c+12>>2]=b;H[b+8>>2]=c;break c}d:{e=d+20|0;c=H[e>>2];if(c){break d}e=d+16|0;c=H[e>>2];if(c){break d}b=0;break c}while(1){g=e;b=c;e=b+20|0;c=H[e>>2];if(c){continue}e=b+16|0;c=H[b+16>>2];if(c){continue}break}H[g>>2]=0}if(!h){break b}e=H[d+28>>2];c=(e<<2)+17496|0;e:{if(H[c>>2]==(d|0)){H[c>>2]=b;if(b){break e}i=17196,j=H[4299]&Vj(e),H[i>>2]=j;break b}H[h+(H[h+16>>2]==(d|0)?16:20)>>2]=b;if(!b){break b}}H[b+24>>2]=h;c=H[d+16>>2];if(c){H[b+16>>2]=c;H[c+24>>2]=b}c=H[d+20>>2];if(!c){break b}H[b+20>>2]=c;H[c+24>>2]=b;break b}b=H[f+4>>2];if((b&3)!=3){break b}H[4300]=a;H[f+4>>2]=b&-2;H[d+4>>2]=a|1;H[a+d>>2]=a;return}if(d>>>0>=f>>>0){break a}b=H[f+4>>2];if(!(b&1)){break a}f:{if(!(b&2)){if(H[4304]==(f|0)){H[4304]=d;a=H[4301]+a|0;H[4301]=a;H[d+4>>2]=a|1;if(H[4303]!=(d|0)){break a}H[4300]=0;H[4303]=0;return}if(H[4303]==(f|0)){H[4303]=d;a=H[4300]+a|0;H[4300]=a;H[d+4>>2]=a|1;H[a+d>>2]=a;return}a=(b&-8)+a|0;g:{if(b>>>0<=255){e=H[f+8>>2];b=b>>>3|0;c=H[f+12>>2];if((c|0)==(e|0)){i=17192,j=H[4298]&Vj(b),H[i>>2]=j;break g}H[e+12>>2]=c;H[c+8>>2]=e;break g}h=H[f+24>>2];b=H[f+12>>2];h:{if((f|0)!=(b|0)){c=H[f+8>>2];H[c+12>>2]=b;H[b+8>>2]=c;break h}i:{e=f+20|0;c=H[e>>2];if(c){break i}e=f+16|0;c=H[e>>2];if(c){break i}b=0;break h}while(1){g=e;b=c;e=b+20|0;c=H[e>>2];if(c){continue}e=b+16|0;c=H[b+16>>2];if(c){continue}break}H[g>>2]=0}if(!h){break g}e=H[f+28>>2];c=(e<<2)+17496|0;j:{if(H[c>>2]==(f|0)){H[c>>2]=b;if(b){break j}i=17196,j=H[4299]&Vj(e),H[i>>2]=j;break g}H[h+(H[h+16>>2]==(f|0)?16:20)>>2]=b;if(!b){break g}}H[b+24>>2]=h;c=H[f+16>>2];if(c){H[b+16>>2]=c;H[c+24>>2]=b}c=H[f+20>>2];if(!c){break g}H[b+20>>2]=c;H[c+24>>2]=b}H[d+4>>2]=a|1;H[a+d>>2]=a;if(H[4303]!=(d|0)){break f}H[4300]=a;return}H[f+4>>2]=b&-2;H[d+4>>2]=a|1;H[a+d>>2]=a}if(a>>>0<=255){b=(a&-8)+17232|0;c=H[4298];a=1<<(a>>>3);k:{if(!(c&a)){H[4298]=a|c;a=b;break k}a=H[b+8>>2]}H[b+8>>2]=d;H[a+12>>2]=d;H[d+12>>2]=b;H[d+8>>2]=a;return}e=31;if(a>>>0<=16777215){b=Q(a>>>8|0);e=((a>>>38-b&1)-(b<<1)|0)+62|0}H[d+28>>2]=e;H[d+16>>2]=0;H[d+20>>2]=0;g=(e<<2)+17496|0;l:{m:{c=H[4299];b=1<>2]=d;H[d+24>>2]=g;break n}e=a<<((e|0)!=31?25-(e>>>1|0)|0:0);b=H[g>>2];while(1){c=b;if((H[b+4>>2]&-8)==(a|0)){break m}b=e>>>29|0;e=e<<1;g=c+(b&4)|0;b=H[g+16>>2];if(b){continue}break}H[g+16>>2]=d;H[d+24>>2]=c}H[d+12>>2]=d;H[d+8>>2]=d;break l}a=H[c+8>>2];H[a+12>>2]=d;H[c+8>>2]=d;H[d+24>>2]=0;H[d+12>>2]=c;H[d+8>>2]=a}a=H[4306]-1|0;H[4306]=a?a:-1}}function tj(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0;H[a+8>>2]=e;n=a+32|0;h=H[n>>2];f=H[a+36>>2]-h>>2;a:{if(f>>>0>>0){ya(n,e-f|0);d=H[a+8>>2];break a}d=e;if(d>>>0>=f>>>0){break a}H[a+36>>2]=h+(e<<2);d=e}s=H[a+52>>2];p=H[a+48>>2];f=0;h=e>>>0>1073741823?-1:e<<2;m=ra(pa(h),0,h);b:{if((d|0)<=0){break b}g=H[a+32>>2];while(1){d=f<<2;h=H[d+m>>2];j=H[a+16>>2];c:{if((h|0)>(j|0)){H[d+g>>2]=j;break c}d=d+g|0;j=H[a+12>>2];if((j|0)>(h|0)){H[d>>2]=j;break c}H[d>>2]=h}d=H[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}if((d|0)<=0){break b}f=0;while(1){h=f<<2;d=h+c|0;h=H[b+h>>2]+H[g+h>>2]|0;H[d>>2]=h;d:{if((h|0)>H[a+16>>2]){i=h-H[a+20>>2]|0}else{if((h|0)>=H[a+12>>2]){break d}i=h+H[a+20>>2]|0}H[d>>2]=i}d=H[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}}f=H[a+56>>2];q=H[f>>2];f=H[f+4>>2]-q|0;if((f|0)>=5){o=f>>>2|0;t=o>>>0<=2?2:o;u=e&-2;w=e&1;h=1;while(1){e:{f:{if((h|0)!=(o|0)){r=N(e,h);f=H[(h<<2)+q>>2];if((f|0)==-1){break f}f=H[H[p+12>>2]+(f<<2)>>2];if((f|0)==-1){break f}j=H[s>>2];g=H[p>>2];k=H[j+(H[g+(f<<2)>>2]<<2)>>2];i=f+1|0;i=(i>>>0)%3|0?i:f-2|0;if((i|0)!=-1){i=H[g+(i<<2)>>2]}else{i=-1}g:{h:{if((f>>>0)%3|0){f=f-1|0;break h}f=f+2|0;l=-1;if((f|0)==-1){break g}}l=H[g+(f<<2)>>2]}if((h|0)<=(k|0)){break f}f=H[(i<<2)+j>>2];if((f|0)>=(h|0)){break f}g=H[j+(l<<2)>>2];if((g|0)>=(h|0)){break f}i:{if((e|0)<=0){break i}g=N(e,g);j=N(e,f);k=N(e,k);f=0;l=0;if((e|0)!=1){while(1){H[(f<<2)+m>>2]=(H[(f+g<<2)+c>>2]+H[(f+j<<2)+c>>2]|0)-H[(f+k<<2)+c>>2];i=f|1;H[(i<<2)+m>>2]=(H[(g+i<<2)+c>>2]+H[(j+i<<2)+c>>2]|0)-H[(i+k<<2)+c>>2];f=f+2|0;l=l+2|0;if((u|0)!=(l|0)){continue}break}}if(!w){break i}H[(f<<2)+m>>2]=(H[(f+g<<2)+c>>2]+H[(f+j<<2)+c>>2]|0)-H[(f+k<<2)+c>>2]}if((d|0)<=0){break e}j=H[n>>2];f=0;while(1){d=f<<2;g=H[d+m>>2];k=H[a+16>>2];j:{if((g|0)>(k|0)){H[d+j>>2]=k;break j}d=d+j|0;k=H[a+12>>2];if((k|0)>(g|0)){H[d>>2]=k;break j}H[d>>2]=g}d=H[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}f=0;if((d|0)<=0){break e}d=r<<2;k=d+c|0;i=b+d|0;while(1){g=f<<2;d=g+k|0;g=H[g+i>>2]+H[g+j>>2]|0;H[d>>2]=g;k:{if((g|0)>H[a+16>>2]){l=g-H[a+20>>2]|0}else{if((g|0)>=H[a+12>>2]){break k}l=g+H[a+20>>2]|0}H[d>>2]=l}d=H[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}break e}Ca();v()}if((d|0)<=0){break e}k=(N(h-1|0,e)<<2)+c|0;j=H[n>>2];f=0;while(1){d=f<<2;g=H[d+k>>2];i=H[a+16>>2];l:{if((g|0)>(i|0)){H[d+j>>2]=i;break l}d=d+j|0;i=H[a+12>>2];if((i|0)>(g|0)){H[d>>2]=i;break l}H[d>>2]=g}d=H[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}f=0;if((d|0)<=0){break e}d=r<<2;k=d+c|0;i=b+d|0;while(1){g=f<<2;d=g+k|0;g=H[g+i>>2]+H[g+j>>2]|0;H[d>>2]=g;m:{if((g|0)>H[a+16>>2]){l=g-H[a+20>>2]|0}else{if((g|0)>=H[a+12>>2]){break m}l=g+H[a+20>>2]|0}H[d>>2]=l}d=H[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}}h=h+1|0;if((t|0)!=(h|0)){continue}break}}oa(m);return 1}function we(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;if((b|0)==-1){return 1}g=(b>>>0)/3|0;if(!(H[H[a+24>>2]+(g>>>3&268435452)>>2]>>>g&1)){e=H[a+48>>2];H[a+52>>2]=e;a:{if((e|0)!=H[a+56>>2]){H[e>>2]=b;H[a+52>>2]=e+4;break a}d=pa(4);H[d>>2]=b;c=d+4|0;H[a+56>>2]=c;H[a+52>>2]=c;H[a+48>>2]=d;if(!e){break a}oa(e)}c=b+1|0;i=(c>>>0)%3|0?c:b-2|0;c=H[H[a+4>>2]+28>>2];k=H[(i<<2)+c>>2];if((k|0)==-1){return 0}e=(b-N(g,3)|0?-1:2)+b|0;j=H[c+(e<<2)>>2];if((j|0)==-1){return 0}b=H[a+36>>2];g=b+(k>>>3&536870908)|0;d=H[g>>2];c=1<>2]=c|d;Ua(a+8|0,k,i);b=H[a+36>>2]}d=(j>>>3&536870908)+b|0;c=H[d>>2];b=1<>2]=b|c;Ua(a+8|0,j,e)}f=H[a+52>>2];if((f|0)==H[a+48>>2]){return 1}k=a+8|0;while(1){b:{c:{f=f-4|0;b=H[f>>2];if((b|0)==-1){break c}c=(b>>>0)/3|0;g=H[a+24>>2]+(c>>>3&268435452)|0;d=H[g>>2];c=1<>2]=c|d;h=H[a+4>>2];c=H[H[h+28>>2]+(b<<2)>>2];if((c|0)==-1){return 0}while(1){d=b;d:{e:{j=H[a+36>>2]+(c>>>3&536870908)|0;i=H[j>>2];e=1<>2]+(c<<2)>>2];g:{if((g|0)==-1){break g}b=g+1|0;b=(b>>>0)%3|0?b:g-2|0;if((b|0)==-1|H[H[h>>2]+(b>>>3&536870908)>>2]>>>b&1){break g}g=H[H[H[h+64>>2]+12>>2]+(b<<2)>>2];if((g|0)!=-1){break f}}H[j>>2]=e|i;Ua(k,c,d);h=H[a+4>>2];break e}H[j>>2]=e|i;Ua(k,c,d);h=H[a+4>>2];b=g+1|0;if((((b>>>0)%3|0?b:g-2|0)|0)==-1){break e}b=-1;h:{if((d|0)==-1){break h}c=d+1|0;c=(c>>>0)%3|0?c:d-2|0;if((c|0)==-1|H[H[h>>2]+(c>>>3&536870908)>>2]>>>c&1){break h}b=H[H[H[h+64>>2]+12>>2]+(c<<2)>>2]}c=(b>>>0)/3|0;d=1<>2];e=c>>>5|0;j=H[f+(e<<2)>>2];break d}i:{j:{if((d|0)==-1){break j}c=-1;b=d+1|0;b=(b>>>0)%3|0?b:d-2|0;if(!((b|0)==-1|H[H[h>>2]+(b>>>3&536870908)>>2]>>>b&1)){c=H[H[H[h+64>>2]+12>>2]+(b<<2)>>2]}k:{l:{if((d>>>0)%3|0){f=d-1|0;break l}f=d+2|0;b=-1;if((f|0)==-1){break k}}b=-1;if(H[H[h>>2]+(f>>>3&536870908)>>2]>>>f&1){break k}b=H[H[H[h+64>>2]+12>>2]+(f<<2)>>2]}g=(b|0)==-1;i=g?-1:(b>>>0)/3|0;if((c|0)!=-1){f=H[a+24>>2];d=(c>>>0)/3|0;e=d>>>5|0;j=H[f+(e<<2)>>2];d=1<>2];e=i>>>5|0;j=H[f+(e<<2)>>2];if(!(d&j)){break d}}f=H[a+52>>2]-4|0;H[a+52>>2]=f;break b}if(g){b=c;break d}if(H[(i>>>3&536870908)+f>>2]>>>i&1){b=c;break d}h=H[a+52>>2];H[h-4>>2]=b;if(H[a+56>>2]!=(h|0)){H[h>>2]=c;f=h+4|0;break c}m:{i=H[a+48>>2];e=h-i|0;g=e>>2;d=g+1|0;if(d>>>0<1073741824){b=e>>>1|0;e=e>>>0>=2147483644?1073741823:b>>>0>d>>>0?b:d;if(e){if(e>>>0>=1073741824){break m}d=pa(e<<2)}else{d=0}b=d+(g<<2)|0;H[b>>2]=c;f=b+4|0;if((h|0)!=(i|0)){while(1){b=b-4|0;h=h-4|0;H[b>>2]=H[h>>2];if((h|0)!=(i|0)){continue}break}}H[a+56>>2]=d+(e<<2);H[a+52>>2]=f;H[a+48>>2]=b;if(!i){break b}oa(i);f=H[a+52>>2];break b}sa();v()}wa();v()}H[(e<<2)+f>>2]=d|j;c=H[H[h+28>>2]+(b<<2)>>2];if((c|0)!=-1){continue}break}return 0}H[a+52>>2]=f}if(H[a+48>>2]!=(f|0)){continue}break}}return 1}function Lj(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0;H[a+8>>2]=e;m=a+32|0;h=H[m>>2];f=H[a+36>>2]-h>>2;a:{if(f>>>0>>0){ya(m,e-f|0);d=H[a+8>>2];break a}d=e;if(d>>>0>=f>>>0){break a}H[a+36>>2]=h+(e<<2);d=e}s=H[a+52>>2];n=H[a+48>>2];f=0;h=e>>>0>1073741823?-1:e<<2;l=ra(pa(h),0,h);b:{if((d|0)<=0){break b}g=H[a+32>>2];while(1){d=f<<2;h=H[d+l>>2];i=H[a+16>>2];c:{if((h|0)>(i|0)){H[d+g>>2]=i;break c}d=d+g|0;i=H[a+12>>2];if((i|0)>(h|0)){H[d>>2]=i;break c}H[d>>2]=h}d=H[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}if((d|0)<=0){break b}f=0;while(1){h=f<<2;d=h+c|0;h=H[b+h>>2]+H[g+h>>2]|0;H[d>>2]=h;d:{if((h|0)>H[a+16>>2]){h=h-H[a+20>>2]|0}else{if((h|0)>=H[a+12>>2]){break d}h=h+H[a+20>>2]|0}H[d>>2]=h}d=H[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}}f=H[a+56>>2];q=H[f>>2];f=H[f+4>>2]-q|0;if((f|0)>=5){o=f>>>2|0;t=o>>>0<=2?2:o;u=e&-2;w=e&1;h=1;while(1){e:{f:{if((h|0)!=(o|0)){r=N(e,h);f=H[(h<<2)+q>>2];if((f|0)==-1|H[H[n>>2]+(f>>>3&536870908)>>2]>>>f&1){break f}f=H[H[H[n+64>>2]+12>>2]+(f<<2)>>2];if((f|0)==-1){break f}i=H[s>>2];g=H[n+28>>2];k=H[i+(H[g+(f<<2)>>2]<<2)>>2];if((k|0)>=(h|0)){break f}j=f+1|0;j=H[i+(H[g+(((j>>>0)%3|0?j:f-2|0)<<2)>>2]<<2)>>2];if((j|0)>=(h|0)){break f}f=H[i+(H[g+(f+((f>>>0)%3|0?-1:2)<<2)>>2]<<2)>>2];if((f|0)>=(h|0)){break f}g:{if((e|0)<=0){break g}g=N(e,f);i=N(e,j);k=N(e,k);f=0;p=0;if((e|0)!=1){while(1){H[(f<<2)+l>>2]=(H[(f+g<<2)+c>>2]+H[(f+i<<2)+c>>2]|0)-H[(f+k<<2)+c>>2];j=f|1;H[(j<<2)+l>>2]=(H[(g+j<<2)+c>>2]+H[(i+j<<2)+c>>2]|0)-H[(k+j<<2)+c>>2];f=f+2|0;p=p+2|0;if((u|0)!=(p|0)){continue}break}}if(!w){break g}H[(f<<2)+l>>2]=(H[(f+g<<2)+c>>2]+H[(f+i<<2)+c>>2]|0)-H[(f+k<<2)+c>>2]}if((d|0)<=0){break e}i=H[m>>2];f=0;while(1){d=f<<2;g=H[d+l>>2];k=H[a+16>>2];h:{if((g|0)>(k|0)){H[d+i>>2]=k;break h}d=d+i|0;k=H[a+12>>2];if((k|0)>(g|0)){H[d>>2]=k;break h}H[d>>2]=g}d=H[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}f=0;if((d|0)<=0){break e}d=r<<2;k=d+c|0;j=b+d|0;while(1){g=f<<2;d=g+k|0;g=H[g+j>>2]+H[g+i>>2]|0;H[d>>2]=g;i:{if((g|0)>H[a+16>>2]){g=g-H[a+20>>2]|0}else{if((g|0)>=H[a+12>>2]){break i}g=g+H[a+20>>2]|0}H[d>>2]=g}d=H[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}break e}Ca();v()}if((d|0)<=0){break e}k=(N(h-1|0,e)<<2)+c|0;i=H[m>>2];f=0;while(1){d=f<<2;g=H[d+k>>2];j=H[a+16>>2];j:{if((g|0)>(j|0)){H[d+i>>2]=j;break j}d=d+i|0;j=H[a+12>>2];if((j|0)>(g|0)){H[d>>2]=j;break j}H[d>>2]=g}d=H[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}f=0;if((d|0)<=0){break e}d=r<<2;k=d+c|0;j=b+d|0;while(1){g=f<<2;d=g+k|0;g=H[g+j>>2]+H[g+i>>2]|0;H[d>>2]=g;k:{if((g|0)>H[a+16>>2]){g=g-H[a+20>>2]|0}else{if((g|0)>=H[a+12>>2]){break k}g=g+H[a+20>>2]|0}H[d>>2]=g}d=H[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}}h=h+1|0;if((t|0)!=(h|0)){continue}break}}oa(l);return 1}function Gb(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=O(0),k=0,l=0,m=O(0);i=H[c>>2];a:{b:{f=H[b+4>>2];if(!f){break b}g=Uj(f);c:{if(g>>>0>=2){e=i;if(f>>>0<=e>>>0){e=(i>>>0)%(f>>>0)|0}c=H[H[b>>2]+(e<<2)>>2];if(!c){break b}if(g>>>0<=1){break c}while(1){c=H[c>>2];if(!c){break b}g=H[c+4>>2];if((g|0)!=(i|0)){if(f>>>0<=g>>>0){g=(g>>>0)%(f>>>0)|0}if((e|0)!=(g|0)){break b}}if(H[c+8>>2]!=(i|0)){continue}break}b=0;break a}e=f-1&i;c=H[H[b>>2]+(e<<2)>>2];if(!c){break b}}h=f-1|0;while(1){c=H[c>>2];if(!c){break b}g=H[c+4>>2];if((g|0)!=(i|0)&(g&h)!=(e|0)){break b}if(H[c+8>>2]!=(i|0)){continue}break}b=0;break a}c=pa(16);d=H[H[d>>2]>>2];H[c+12>>2]=0;H[c+8>>2]=d;H[c+4>>2]=i;H[c>>2]=0;m=O(H[b+12>>2]+1>>>0);j=L[b+16>>2];d:{if(m>O(j*O(f>>>0))?0:f){break d}e=2;d=(f-1&f)!=0|f>>>0<3|f<<1;j=O(U(O(m/j)));e:{if(j=O(0)){g=~~j>>>0;break e}g=0}d=d>>>0>g>>>0?d:g;f:{if((d|0)==1){break f}if(!(d&d-1)){e=d;break f}e=Kd(d);f=H[b+4>>2]}g:{if(e>>>0<=f>>>0){if(e>>>0>=f>>>0){break g}g=f>>>0<3;j=O(U(O(O(K[b+12>>2])/L[b+16>>2])));h:{if(j=O(0)){d=~~j>>>0;break h}d=0}i:{j:{if(g){break j}if(Uj(f)>>>0>1){break j}d=d>>>0<2?d:1<<32-Q(d-1|0);break i}d=Kd(d)}e=d>>>0>>0?e:d;if(f>>>0<=e>>>0){break g}}f=0;g=0;h=e;k:{l:{m:{n:{if(e){if(h>>>0>=1073741824){break n}d=pa(h<<2);e=H[b>>2];H[b>>2]=d;if(e){oa(e)}H[b+4>>2]=h;d=0;if(h>>>0>=4){e=h&-4;while(1){k=d<<2;H[k+H[b>>2]>>2]=0;H[H[b>>2]+(k|4)>>2]=0;H[H[b>>2]+(k|8)>>2]=0;H[H[b>>2]+(k|12)>>2]=0;d=d+4|0;g=g+4|0;if((e|0)!=(g|0)){continue}break}}e=h&3;if(e){while(1){H[H[b>>2]+(d<<2)>>2]=0;d=d+1|0;f=f+1|0;if((e|0)!=(f|0)){continue}break}}e=H[b+8>>2];if(!e){break k}d=b+8|0;f=H[e+4>>2];g=Uj(h);if(g>>>0<2){break m}f=f>>>0>=h>>>0?(f>>>0)%(h>>>0)|0:f;H[H[b>>2]+(f<<2)>>2]=d;d=H[e>>2];if(!d){break k}if(g>>>0<=1){break l}while(1){g=H[d+4>>2];if(h>>>0<=g>>>0){g=(g>>>0)%(h>>>0)|0}o:{if((f|0)==(g|0)){e=d;break o}l=g<<2;k=l+H[b>>2]|0;if(!H[k>>2]){H[k>>2]=e;e=d;f=g;break o}H[e>>2]=H[d>>2];H[d>>2]=H[H[l+H[b>>2]>>2]>>2];H[H[l+H[b>>2]>>2]>>2]=d}d=H[e>>2];if(d){continue}break}break k}d=H[b>>2];H[b>>2]=0;if(d){oa(d)}H[b+4>>2]=0;break k}wa();v()}f=h-1&f;H[H[b>>2]+(f<<2)>>2]=d;d=H[e>>2];if(!d){break k}}k=h-1|0;while(1){g=k&H[d+4>>2];p:{if((g|0)==(f|0)){e=d;break p}l=g<<2;h=l+H[b>>2]|0;if(H[h>>2]){H[e>>2]=H[d>>2];H[d>>2]=H[H[l+H[b>>2]>>2]>>2];H[H[l+H[b>>2]>>2]>>2]=d;break p}H[h>>2]=e;e=d;f=g}d=H[e>>2];if(d){continue}break}}}f=H[b+4>>2];d=f-1|0;if(!(d&f)){e=d&i;break d}if(f>>>0>i>>>0){e=i;break d}e=(i>>>0)%(f>>>0)|0}e=H[b>>2]+(e<<2)|0;d=H[e>>2];q:{r:{if(!d){d=b+8|0;H[c>>2]=H[d>>2];H[b+8>>2]=c;H[e>>2]=d;d=H[c>>2];if(!d){break q}d=H[d+4>>2];e=f-1|0;s:{if(!(e&f)){d=d&e;break s}if(d>>>0>>0){break s}d=(d>>>0)%(f>>>0)|0}d=H[b>>2]+(d<<2)|0;break r}H[c>>2]=H[d>>2]}H[d>>2]=c}H[b+12>>2]=H[b+12>>2]+1;b=1}F[a+4|0]=b;H[a>>2]=c}function Oe(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0;f=ca-80|0;ca=f;e=H[c+36>>2];H[f+72>>2]=H[c+32>>2];H[f+76>>2]=e;g=H[c+28>>2];e=f- -64|0;H[e>>2]=H[c+24>>2];H[e+4>>2]=g;e=H[c+20>>2];H[f+56>>2]=H[c+16>>2];H[f+60>>2]=e;e=H[c+12>>2];H[f+48>>2]=H[c+8>>2];H[f+52>>2]=e;e=H[c+4>>2];H[f+40>>2]=H[c>>2];H[f+44>>2]=e;nc(a,f+40|0,f+24|0);a:{if(H[a>>2]){break a}if(F[a+15|0]<0){oa(H[a+4>>2])}if(I[f+31|0]!=1){b=pa(32);F[b+20|0]=0;c=I[1448]|I[1449]<<8|(I[1450]<<16|I[1451]<<24);F[b+16|0]=c;F[b+17|0]=c>>>8;F[b+18|0]=c>>>16;F[b+19|0]=c>>>24;c=I[1444]|I[1445]<<8|(I[1446]<<16|I[1447]<<24);d=I[1440]|I[1441]<<8|(I[1442]<<16|I[1443]<<24);F[b+8|0]=d;F[b+9|0]=d>>>8;F[b+10|0]=d>>>16;F[b+11|0]=d>>>24;F[b+12|0]=c;F[b+13|0]=c>>>8;F[b+14|0]=c>>>16;F[b+15|0]=c>>>24;c=I[1436]|I[1437]<<8|(I[1438]<<16|I[1439]<<24);d=I[1432]|I[1433]<<8|(I[1434]<<16|I[1435]<<24);F[b|0]=d;F[b+1|0]=d>>>8;F[b+2|0]=d>>>16;F[b+3|0]=d>>>24;F[b+4|0]=c;F[b+5|0]=c>>>8;F[b+6|0]=c>>>16;F[b+7|0]=c>>>24;H[a>>2]=-1;za(a+4|0,b,20);oa(b);break a}i=ca-16|0;ca=i;b:{c:{switch(I[f+32|0]){case 0:e=Ke(pa(48));H[e>>2]=13112;H[f+8>>2]=0;H[f+12>>2]=0;H[f>>2]=0;H[f+4>>2]=0;H[f+16>>2]=e;break b;case 1:e=Ke(pa(52));H[e+48>>2]=0;H[e>>2]=11276;H[f+8>>2]=0;H[f+12>>2]=0;H[f>>2]=0;H[f+4>>2]=0;H[f+16>>2]=e;break b;default:break c}}g=pa(32);F[g+28|0]=0;e=I[1550]|I[1551]<<8|(I[1552]<<16|I[1553]<<24);F[g+24|0]=e;F[g+25|0]=e>>>8;F[g+26|0]=e>>>16;F[g+27|0]=e>>>24;e=I[1546]|I[1547]<<8|(I[1548]<<16|I[1549]<<24);h=I[1542]|I[1543]<<8|(I[1544]<<16|I[1545]<<24);F[g+16|0]=h;F[g+17|0]=h>>>8;F[g+18|0]=h>>>16;F[g+19|0]=h>>>24;F[g+20|0]=e;F[g+21|0]=e>>>8;F[g+22|0]=e>>>16;F[g+23|0]=e>>>24;e=I[1538]|I[1539]<<8|(I[1540]<<16|I[1541]<<24);h=I[1534]|I[1535]<<8|(I[1536]<<16|I[1537]<<24);F[g+8|0]=h;F[g+9|0]=h>>>8;F[g+10|0]=h>>>16;F[g+11|0]=h>>>24;F[g+12|0]=e;F[g+13|0]=e>>>8;F[g+14|0]=e>>>16;F[g+15|0]=e>>>24;e=I[1530]|I[1531]<<8|(I[1532]<<16|I[1533]<<24);h=I[1526]|I[1527]<<8|(I[1528]<<16|I[1529]<<24);F[g|0]=h;F[g+1|0]=h>>>8;F[g+2|0]=h>>>16;F[g+3|0]=h>>>24;F[g+4|0]=e;F[g+5|0]=e>>>8;F[g+6|0]=e>>>16;F[g+7|0]=e>>>24;H[i>>2]=-1;e=i|4;za(e,g,28);j=F[i+15|0];H[f>>2]=H[i>>2];h=f+4|0;d:{if((j|0)>=0){j=H[e+4>>2];H[h>>2]=H[e>>2];H[h+4>>2]=j;H[h+8>>2]=H[e+8>>2];H[f+16>>2]=0;break d}za(h,H[i+4>>2],H[i+8>>2]);e=F[i+15|0];H[f+16>>2]=0;if((e|0)>=0){break d}oa(H[i+4>>2])}oa(g)}ca=i+16|0;e=H[f>>2];e:{if(e){H[a>>2]=e;a=a+4|0;if(F[f+15|0]>=0){b=f|4;c=H[b+4>>2];H[a>>2]=H[b>>2];H[a+4>>2]=c;H[a+8>>2]=H[b+8>>2];break e}za(a,H[f+4>>2],H[f+8>>2]);break e}e=H[f+16>>2];H[f+16>>2]=0;H[e+44>>2]=d;te(a,e,b,c,d);if(!H[a>>2]){if(F[a+15|0]<0){oa(H[a+4>>2])}H[a>>2]=0;H[a+4>>2]=0;H[a+8>>2]=0;H[a+12>>2]=0}ea[H[H[e>>2]+4>>2]](e)}a=H[f+16>>2];H[f+16>>2]=0;if(a){ea[H[H[a>>2]+4>>2]](a)}if(F[f+15|0]>=0){break a}oa(H[f+4>>2])}ca=f+80|0}function Gc(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;j=N(b,12)+a|0;H[j+12>>2]=H[j+8>>2];m=(c|0)==-1?-1:(c>>>0)/3|0;d=1;k=c;a:{b:{c:{while(1){d:{l=d;if(!d){if((k|0)==-1){break d}if((de(a,((k>>>0)%3|0?-1:2)+k|0)|0)==-1){break a}c=k+1|0;d=(c>>>0)%3|0?c:k-2|0;if((d|0)==-1){break a}c=d+1|0;c=(c>>>0)%3|0?c:d-2|0;if((c|0)==-1){break a}d=H[H[H[a+4>>2]+12>>2]+(c<<2)>>2];if((d|0)==-1){break a}c=d+1|0;c=(c>>>0)%3|0?c:d-2|0;if((c|0)==-1){break a}m=(c>>>0)/3|0}e:{d=H[a+56>>2]+(m>>>3&536870908)|0;h=H[d>>2];e=1<>2]=e|h;d=H[j+12>>2];f:{if((d|0)!=H[j+16>>2]){H[d>>2]=m;H[j+12>>2]=d+4;break f}n=H[j+8>>2];h=d-n|0;e=h>>2;i=e+1|0;if(i>>>0>=1073741824){break c}g=h>>>1|0;i=h>>>0>=2147483644?1073741823:i>>>0>>0?g:i;if(i){if(i>>>0>=1073741824){break b}g=pa(i<<2)}else{g=0}h=g+(e<<2)|0;H[h>>2]=m;e=h+4|0;if((d|0)!=(n|0)){while(1){h=h-4|0;d=d-4|0;H[h>>2]=H[d>>2];if((d|0)!=(n|0)){continue}break}}H[j+8>>2]=h;H[j+12>>2]=e;H[j+16>>2]=g+(i<<2);if(!n){break f}oa(n)}g=f+1|0;g:{h:{i:{if(!f){break i}if(g&1){if((c|0)==-1){c=-1;break g}d=c+1|0;c=(d>>>0)%3|0?d:c-2|0;break i}k=l?k:c;if((c|0)==-1){c=-1;break g}if((c>>>0)%3|0){d=c-1|0;break h}c=c+2|0}d=c;c=-1;if((d|0)==-1){break g}}c=H[H[H[a+4>>2]+12>>2]+(d<<2)>>2];h=-1;f=-1;e=d+1|0;e=(e>>>0)%3|0?e:d-2|0;if((e|0)>=0){f=(e>>>0)/3|0;f=H[(H[H[a>>2]+96>>2]+N(f,12)|0)+(e-N(f,3)<<2)>>2]}j:{if((c|0)==-1){break j}i=((c>>>0)%3|0?-1:2)+c|0;if((i|0)<0){break j}e=(i>>>0)/3|0;h=H[(H[H[a>>2]+96>>2]+N(e,12)|0)+(i-N(e,3)<<2)>>2]}if((f|0)!=(h|0)){c=-1;break g}k:{l:{f=((d>>>0)%3|0?-1:2)+d|0;if((f|0)>=0){d=(f>>>0)/3|0;if((c|0)!=-1){break l}c=-1;break g}d=-1;if((c|0)!=-1){break k}c=-1;break g}d=H[(H[H[a>>2]+96>>2]+N(d,12)|0)+(f-N(d,3)<<2)>>2]}f=c+1|0;e=(f>>>0)%3|0?f:c-2|0;if((e|0)>=0){f=(e>>>0)/3|0;f=H[(H[H[a>>2]+96>>2]+N(f,12)|0)+(e-N(f,3)<<2)>>2]}else{f=-1}if((f|0)!=(d|0)){c=-1;break g}f=g;m=(c>>>0)/3|0;d=H[a+56>>2]+(m>>>3&268435452)|0;h=H[d>>2];e=1<>2]-4|0;g=H[l>>2];d=H[a+56>>2]+(g>>>3&536870908)|0;c=H[d>>2];o=d,p=Vj(g)&c,H[o>>2]=p;H[j+12>>2]=l;break a}d=0;if(l){continue}break a}break}k=-1;de(a,-1);break a}sa();v()}wa();v()}H[((b<<2)+a|0)+44>>2]=k;b=H[j+12>>2];i=H[j+8>>2];m:{if((b|0)==(i|0)){break m}c=b-i|0;b=c>>2;b=b>>>0<=1?1:b;k=b&1;e=H[a+56>>2];d=0;if(c>>>0>=8){f=b&-2;c=0;while(1){l=d<<2;g=H[l+i>>2];b=e+(g>>>3&536870908)|0;a=H[b>>2];o=b,p=Vj(g)&a,H[o>>2]=p;g=H[i+(l|4)>>2];b=e+(g>>>3&536870908)|0;a=H[b>>2];o=b,p=Vj(g)&a,H[o>>2]=p;d=d+2|0;c=c+2|0;if((f|0)!=(c|0)){continue}break}}if(!k){break m}c=H[i+(d<<2)>>2];b=e+(c>>>3&536870908)|0;a=H[b>>2];o=b,p=Vj(c)&a,H[o>>2]=p}}function Gj(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;h=ca-32|0;ca=h;a:{if(J[b+38>>1]<=513){c=H[b+20>>2];f=H[b+12>>2];d=H[b+16>>2];if((c|0)>=(f|0)&d>>>0>=K[b+8>>2]|(c|0)>(f|0)){break a}f=I[d+H[b>>2]|0];d=d+1|0;c=d?c:c+1|0;H[b+16>>2]=d;H[b+20>>2]=c;if(f){break a}}b:{if(!Xa(1,h+28|0,b)){break b}d=H[h+28>>2];c=H[H[a+48>>2]+64>>2];if(d>>>0>H[c+4>>2]-H[c>>2]>>2>>>0){break b}c:{if(d){Wa(a+60|0,d);c=h+8|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;if(!ta(c,b)){break c}while(1){f=1<>2]+(e>>>3&536870908)|0;if(j){i=f|H[g>>2]}else{i=H[g>>2]&(f^-1)}H[g>>2]=i;e=e+1|0;if((d|0)!=(e|0)){continue}break}}if(!Xa(1,h+28|0,b)){break b}d=H[h+28>>2];c=H[H[a+48>>2]+64>>2];if(d>>>0>H[c+4>>2]-H[c>>2]>>2>>>0){break b}if(d){e=0;Wa(a+72|0,d);c=h+8|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;if(!ta(c,b)){break c}while(1){f=1<>2]+(e>>>3&536870908)|0;if(j){i=f|H[g>>2]}else{i=H[g>>2]&(f^-1)}H[g>>2]=i;e=e+1|0;if((d|0)!=(e|0)){continue}break}}if(!Xa(1,h+28|0,b)){break b}d=H[h+28>>2];c=H[H[a+48>>2]+64>>2];if(d>>>0>H[c+4>>2]-H[c>>2]>>2>>>0){break b}if(d){e=0;Wa(a+84|0,d);c=h+8|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;if(!ta(c,b)){break c}while(1){f=1<>2]+(e>>>3&536870908)|0;if(j){i=f|H[g>>2]}else{i=H[g>>2]&(f^-1)}H[g>>2]=i;e=e+1|0;if((d|0)!=(e|0)){continue}break}}if(!Xa(1,h+28|0,b)){break b}d=H[h+28>>2];c=H[H[a+48>>2]+64>>2];if(d>>>0>H[c+4>>2]-H[c>>2]>>2>>>0){break b}if(d){e=0;Wa(a+96|0,d);c=h+8|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;if(!ta(c,b)){break c}while(1){f=1<>2]+(e>>>3&536870908)|0;if(j){i=f|H[g>>2]}else{i=H[g>>2]&(f^-1)}H[g>>2]=i;e=e+1|0;if((d|0)!=(e|0)){continue}break}}e=0;c=H[b+8>>2];f=H[b+12>>2];d=c;c=H[b+20>>2];i=c;g=H[b+16>>2];j=g+4|0;c=j>>>0<4?c+1|0:c;if(d>>>0>>0&(c|0)>=(f|0)|(c|0)>(f|0)){break a}m=H[b>>2];k=m+g|0;l=I[k|0]|I[k+1|0]<<8|(I[k+2|0]<<16|I[k+3|0]<<24);H[b+16>>2]=j;H[b+20>>2]=c;k=d;d=f;c=i;f=g+8|0;c=f>>>0<8?c+1|0:c;if(f>>>0>k>>>0&(c|0)>=(d|0)|(c|0)>(d|0)){break a}d=j+m|0;d=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);H[b+16>>2]=f;H[b+20>>2]=c;if((d|0)<(l|0)){break a}H[a+16>>2]=d;H[a+12>>2]=l;c=(d>>31)-((l>>31)+(d>>>0>>0)|0)|0;b=d-l|0;if(!c&b>>>0>2147483646|c){break a}e=1;b=b+1|0;H[a+20>>2]=b;c=b>>>1|0;H[a+24>>2]=c;H[a+28>>2]=0-c;if(b&1){break a}H[a+24>>2]=c-1;break a}}e=0}ca=h+32|0;return e|0}function pj(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;h=ca-32|0;ca=h;a:{if(J[b+38>>1]<=513){c=H[b+20>>2];f=H[b+12>>2];d=H[b+16>>2];if((c|0)>=(f|0)&d>>>0>=K[b+8>>2]|(c|0)>(f|0)){break a}f=I[d+H[b>>2]|0];d=d+1|0;c=d?c:c+1|0;H[b+16>>2]=d;H[b+20>>2]=c;if(f){break a}}b:{if(!Xa(1,h+28|0,b)){break b}d=H[h+28>>2];c=H[a+48>>2];if(d>>>0>H[c+4>>2]-H[c>>2]>>2>>>0){break b}c:{if(d){Wa(a+60|0,d);c=h+8|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;if(!ta(c,b)){break c}while(1){f=1<>2]+(e>>>3&536870908)|0;if(j){i=f|H[g>>2]}else{i=H[g>>2]&(f^-1)}H[g>>2]=i;e=e+1|0;if((d|0)!=(e|0)){continue}break}}if(!Xa(1,h+28|0,b)){break b}d=H[h+28>>2];c=H[a+48>>2];if(d>>>0>H[c+4>>2]-H[c>>2]>>2>>>0){break b}if(d){e=0;Wa(a+72|0,d);c=h+8|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;if(!ta(c,b)){break c}while(1){f=1<>2]+(e>>>3&536870908)|0;if(j){i=f|H[g>>2]}else{i=H[g>>2]&(f^-1)}H[g>>2]=i;e=e+1|0;if((d|0)!=(e|0)){continue}break}}if(!Xa(1,h+28|0,b)){break b}d=H[h+28>>2];c=H[a+48>>2];if(d>>>0>H[c+4>>2]-H[c>>2]>>2>>>0){break b}if(d){e=0;Wa(a+84|0,d);c=h+8|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;if(!ta(c,b)){break c}while(1){f=1<>2]+(e>>>3&536870908)|0;if(j){i=f|H[g>>2]}else{i=H[g>>2]&(f^-1)}H[g>>2]=i;e=e+1|0;if((d|0)!=(e|0)){continue}break}}if(!Xa(1,h+28|0,b)){break b}d=H[h+28>>2];c=H[a+48>>2];if(d>>>0>H[c+4>>2]-H[c>>2]>>2>>>0){break b}if(d){e=0;Wa(a+96|0,d);c=h+8|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;if(!ta(c,b)){break c}while(1){f=1<>2]+(e>>>3&536870908)|0;if(j){i=f|H[g>>2]}else{i=H[g>>2]&(f^-1)}H[g>>2]=i;e=e+1|0;if((d|0)!=(e|0)){continue}break}}e=0;c=H[b+8>>2];f=H[b+12>>2];d=c;c=H[b+20>>2];i=c;g=H[b+16>>2];j=g+4|0;c=j>>>0<4?c+1|0:c;if(d>>>0>>0&(c|0)>=(f|0)|(c|0)>(f|0)){break a}m=H[b>>2];k=m+g|0;l=I[k|0]|I[k+1|0]<<8|(I[k+2|0]<<16|I[k+3|0]<<24);H[b+16>>2]=j;H[b+20>>2]=c;k=d;d=f;c=i;f=g+8|0;c=f>>>0<8?c+1|0:c;if(f>>>0>k>>>0&(c|0)>=(d|0)|(c|0)>(d|0)){break a}d=j+m|0;d=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);H[b+16>>2]=f;H[b+20>>2]=c;if((d|0)<(l|0)){break a}H[a+16>>2]=d;H[a+12>>2]=l;c=(d>>31)-((l>>31)+(d>>>0>>0)|0)|0;b=d-l|0;if(!c&b>>>0>2147483646|c){break a}e=1;b=b+1|0;H[a+20>>2]=b;c=b>>>1|0;H[a+24>>2]=c;H[a+28>>2]=0-c;if(b&1){break a}H[a+24>>2]=c-1;break a}}e=0}ca=h+32|0;return e|0}function xe(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;if((b|0)==-1){return 1}g=(b>>>0)/3|0;if(!(H[H[a+24>>2]+(g>>>3&268435452)>>2]>>>g&1)){f=H[a+48>>2];H[a+52>>2]=f;a:{if((f|0)!=H[a+56>>2]){H[f>>2]=b;H[a+52>>2]=f+4;break a}d=pa(4);H[d>>2]=b;c=d+4|0;H[a+56>>2]=c;H[a+52>>2]=c;H[a+48>>2]=d;if(!f){break a}oa(f)}e=-1;d=H[a+4>>2];c=b+1|0;i=(c>>>0)%3|0?c:b-2|0;if((i|0)!=-1){e=H[H[d>>2]+(i<<2)>>2]}b:{h=b-N(g,3)|0;if(h){c=b-1|0;break b}c=b+2|0;if((c|0)!=-1){break b}return 0}if((e|0)==-1){return 0}j=H[H[d>>2]+(c<<2)>>2];if((j|0)==-1){return 0}c=H[a+36>>2];f=c+(e>>>3&536870908)|0;g=H[f>>2];d=1<>2]=d|g;Ua(a+8|0,e,i);c=H[a+36>>2]}g=(j>>>3&536870908)+c|0;d=H[g>>2];c=1<>2]=c|d;Ua(a+8|0,j,(h?-1:2)+b|0)}c=H[a+52>>2];if((c|0)==H[a+48>>2]){return 1}j=a+8|0;while(1){c:{d:{c=c-4|0;b=H[c>>2];if((b|0)==-1){break d}d=(b>>>0)/3|0;f=H[a+24>>2]+(d>>>3&268435452)|0;g=H[f>>2];d=1<>2]=d|g;while(1){i=H[a+4>>2];e=H[H[i>>2]+(b<<2)>>2];if((e|0)==-1){return 0}e:{f:{h=H[a+36>>2]+(e>>>3&536870908)|0;f=H[h>>2];g=1<>2]+(e<<2)>>2];h:{if((d|0)==-1){break h}c=d+1|0;c=(c>>>0)%3|0?c:d-2|0;if((c|0)==-1){break h}d=H[H[i+12>>2]+(c<<2)>>2];if((d|0)!=-1){break g}}H[h>>2]=f|g;Ua(j,e,b);break f}H[h>>2]=f|g;Ua(j,e,b);c=d+1|0;if((((c>>>0)%3|0?c:d-2|0)|0)==-1){break f}c=b-2|0;d=b+1|0;b=-1;c=(d>>>0)%3|0?d:c;if((c|0)!=-1){b=H[H[H[a+4>>2]+12>>2]+(c<<2)>>2]}c=(b>>>0)/3|0;d=1<>2];f=c>>>5|0;i=H[e+(f<<2)>>2];break e}c=-1;g=H[a+4>>2];d=b+1|0;d=(d>>>0)%3|0?d:b-2|0;if((d|0)!=-1){c=H[H[g+12>>2]+(d<<2)>>2]}i:{j:{if((b>>>0)%3|0){e=b-1|0;break j}e=b+2|0;b=-1;if((e|0)==-1){break i}}b=H[H[g+12>>2]+(e<<2)>>2]}g=(b|0)==-1;h=g?-1:(b>>>0)/3|0;k:{if((c|0)!=-1){e=H[a+24>>2];d=(c>>>0)/3|0;f=d>>>5|0;i=H[e+(f<<2)>>2];d=1<>2];f=h>>>5|0;i=H[e+(f<<2)>>2];if(!(d&i)){break e}}c=H[a+52>>2]-4|0;H[a+52>>2]=c;break c}if(g){b=c;break e}if(H[(h>>>3&536870908)+e>>2]>>>h&1){b=c;break e}e=H[a+52>>2];H[e-4>>2]=b;if(H[a+56>>2]!=(e|0)){H[e>>2]=c;c=e+4|0;break d}l:{h=H[a+48>>2];f=e-h|0;g=f>>2;d=g+1|0;if(d>>>0<1073741824){b=f>>>1|0;f=f>>>0>=2147483644?1073741823:b>>>0>d>>>0?b:d;if(f){if(f>>>0>=1073741824){break l}d=pa(f<<2)}else{d=0}b=d+(g<<2)|0;H[b>>2]=c;c=b+4|0;if((e|0)!=(h|0)){while(1){b=b-4|0;e=e-4|0;H[b>>2]=H[e>>2];if((e|0)!=(h|0)){continue}break}}H[a+56>>2]=d+(f<<2);H[a+52>>2]=c;H[a+48>>2]=b;if(!h){break c}oa(h);c=H[a+52>>2];break c}sa();v()}wa();v()}H[(f<<2)+e>>2]=d|i;if((b|0)!=-1){continue}break}return 0}H[a+52>>2]=c}if(H[a+48>>2]!=(c|0)){continue}break}}return 1}function uj(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;g=ca-32|0;ca=g;H[a+68>>2]=f;d=H[a+56>>2];e=H[d>>2];d=H[d+4>>2];H[g+24>>2]=0;H[g+16>>2]=0;H[g+20>>2]=0;a:{d=d-e|0;if((d|0)>0){m=a+60|0;d=d>>>2|0;n=d>>>0<=1?1:d;o=a+112|0;while(1){e=H[a+56>>2];d=H[e>>2];if(H[e+4>>2]-d>>2>>>0<=j>>>0){break a}Nb(m,H[d+(j<<2)>>2],g+16|0);i=H[g+20>>2];d=i>>31;h=H[g+16>>2];e=h>>31;f=(d^i)-d+((e^h)-e)|0;k=H[g+24>>2];d=k>>31;e=(d^k)-d|0;d=0;l=e;e=e+f|0;d=l>>>0>e>>>0?1:d;b:{if(!(d|e)){H[g+16>>2]=H[a+108>>2];break b}f=H[a+108>>2];l=f>>31;h=Sj(Rj(f,l,h,h>>31),da,e,d);H[g+16>>2]=h;d=Sj(Rj(f,l,i,i>>31),da,e,d);H[g+20>>2]=d;e=d;d=d>>31;e=(e^d)-d|0;d=h>>31;d=e+((d^h)-d|0)|0;if((k|0)>=0){H[g+24>>2]=f-d;break b}H[g+24>>2]=d-f}d=Ba(o);f=H[g+16>>2];c:{if(d){H[g+24>>2]=0-H[g+24>>2];e=0-H[g+20>>2]|0;H[g+20>>2]=e;f=0-f|0;H[g+16>>2]=f;break c}e=H[g+20>>2]}d:{if((f|0)>=0){f=H[a+108>>2];d=f+H[g+24>>2]|0;f=e+f|0;break d}e:{if((e|0)<0){d=H[g+24>>2];f=d>>31;f=(d^f)-f|0;break e}d=H[g+24>>2];f=d>>31;f=H[a+100>>2]+(f-(d^f)|0)|0}if((d|0)<0){d=e>>31;d=(d^e)-d|0;break d}d=e>>31;d=H[a+100>>2]+(d-(d^e)|0)|0}e=H[a+100>>2];f:{if(!(d|f)){d=e;f=d;break f}if(!((d|0)!=(e|0)|f)){f=d;break f}if(!((e|0)!=(f|0)|d)){d=f;break f}g:{if(f){break g}i=H[a+108>>2];if((i|0)>=(d|0)){break g}d=(i<<1)-d|0;f=0;break f}h:{if((e|0)!=(f|0)){break h}i=H[a+108>>2];if((i|0)<=(d|0)){break h}d=(i<<1)-d|0;break f}i:{if((d|0)!=(e|0)){break i}e=H[a+108>>2];if((e|0)<=(f|0)){break i}f=(e<<1)-f|0;break f}if(d){break f}d=0;e=H[a+108>>2];if((e|0)>=(f|0)){break f}f=(e<<1)-f|0}H[g+12>>2]=d;H[g+8>>2]=f;j:{if(H[a+8>>2]<=0){break j}i=H[a+32>>2];f=0;while(1){d=f<<2;e=H[d+(g+8|0)>>2];h=H[a+16>>2];k:{if((e|0)>(h|0)){H[d+i>>2]=h;break k}d=d+i|0;h=H[a+12>>2];if((h|0)>(e|0)){H[d>>2]=h;break k}H[d>>2]=e}f=f+1|0;e=H[a+8>>2];if((f|0)<(e|0)){continue}break}d=0;if((e|0)<=0){break j}e=j<<3;h=e+c|0;k=b+e|0;while(1){f=d<<2;e=f+h|0;f=H[f+k>>2]+H[f+i>>2]|0;H[e>>2]=f;l:{if((f|0)>H[a+16>>2]){f=f-H[a+20>>2]|0}else{if((f|0)>=H[a+12>>2]){break l}f=f+H[a+20>>2]|0}H[e>>2]=f}d=d+1|0;if((d|0)>2]){continue}break}}j=j+1|0;if((n|0)!=(j|0)){continue}break}}ca=g+32|0;return 1}Ca();v()}function dj(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;g=ca-32|0;ca=g;H[a+68>>2]=f;d=H[a+56>>2];e=H[d>>2];d=H[d+4>>2];H[g+24>>2]=0;H[g+16>>2]=0;H[g+20>>2]=0;a:{d=d-e|0;if((d|0)>0){m=a+60|0;d=d>>>2|0;n=d>>>0<=1?1:d;o=a+112|0;while(1){e=H[a+56>>2];d=H[e>>2];if(H[e+4>>2]-d>>2>>>0<=j>>>0){break a}Lb(m,H[d+(j<<2)>>2],g+16|0);i=H[g+20>>2];d=i>>31;h=H[g+16>>2];e=h>>31;f=(d^i)-d+((e^h)-e)|0;k=H[g+24>>2];d=k>>31;e=(d^k)-d|0;d=0;l=e;e=e+f|0;d=l>>>0>e>>>0?1:d;b:{if(!(d|e)){H[g+16>>2]=H[a+108>>2];break b}f=H[a+108>>2];l=f>>31;h=Sj(Rj(f,l,h,h>>31),da,e,d);H[g+16>>2]=h;d=Sj(Rj(f,l,i,i>>31),da,e,d);H[g+20>>2]=d;e=d;d=d>>31;e=(e^d)-d|0;d=h>>31;d=e+((d^h)-d|0)|0;if((k|0)>=0){H[g+24>>2]=f-d;break b}H[g+24>>2]=d-f}d=Ba(o);f=H[g+16>>2];c:{if(d){H[g+24>>2]=0-H[g+24>>2];e=0-H[g+20>>2]|0;H[g+20>>2]=e;f=0-f|0;H[g+16>>2]=f;break c}e=H[g+20>>2]}d:{if((f|0)>=0){f=H[a+108>>2];d=f+H[g+24>>2]|0;f=e+f|0;break d}e:{if((e|0)<0){d=H[g+24>>2];f=d>>31;f=(d^f)-f|0;break e}d=H[g+24>>2];f=d>>31;f=H[a+100>>2]+(f-(d^f)|0)|0}if((d|0)<0){d=e>>31;d=(d^e)-d|0;break d}d=e>>31;d=H[a+100>>2]+(d-(d^e)|0)|0}e=H[a+100>>2];f:{if(!(d|f)){d=e;f=d;break f}if(!((d|0)!=(e|0)|f)){f=d;break f}if(!((e|0)!=(f|0)|d)){d=f;break f}g:{if(f){break g}i=H[a+108>>2];if((i|0)>=(d|0)){break g}d=(i<<1)-d|0;f=0;break f}h:{if((e|0)!=(f|0)){break h}i=H[a+108>>2];if((i|0)<=(d|0)){break h}d=(i<<1)-d|0;break f}i:{if((d|0)!=(e|0)){break i}e=H[a+108>>2];if((e|0)<=(f|0)){break i}f=(e<<1)-f|0;break f}if(d){break f}d=0;e=H[a+108>>2];if((e|0)>=(f|0)){break f}f=(e<<1)-f|0}H[g+12>>2]=d;H[g+8>>2]=f;j:{if(H[a+8>>2]<=0){break j}i=H[a+32>>2];f=0;while(1){d=f<<2;e=H[d+(g+8|0)>>2];h=H[a+16>>2];k:{if((e|0)>(h|0)){H[d+i>>2]=h;break k}d=d+i|0;h=H[a+12>>2];if((h|0)>(e|0)){H[d>>2]=h;break k}H[d>>2]=e}f=f+1|0;e=H[a+8>>2];if((f|0)<(e|0)){continue}break}d=0;if((e|0)<=0){break j}e=j<<3;h=e+c|0;k=b+e|0;while(1){f=d<<2;e=f+h|0;f=H[f+k>>2]+H[f+i>>2]|0;H[e>>2]=f;l:{if((f|0)>H[a+16>>2]){f=f-H[a+20>>2]|0}else{if((f|0)>=H[a+12>>2]){break l}f=f+H[a+20>>2]|0}H[e>>2]=f}d=d+1|0;if((d|0)>2]){continue}break}}j=j+1|0;if((n|0)!=(j|0)){continue}break}}ca=g+32|0;return 1}Ca();v()}function ke(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;h=ca-80|0;ca=h;a:{b:{if(I[H[a+28>>2]+36|0]<=1){d=H[b+20>>2];f=H[b+16>>2];c=f+4|0;d=c>>>0<4?d+1|0:d;g=H[b+12>>2];if(K[b+8>>2]>>0&(g|0)<=(d|0)|(d|0)>(g|0)){break a}f=f+H[b>>2]|0;j=I[f|0]|I[f+1|0]<<8|(I[f+2|0]<<16|I[f+3|0]<<24);H[b+16>>2]=c;H[b+20>>2]=d;break b}if(!Pc(1,h+76|0,b)){break a}j=H[h+76>>2]}if(!j){break a}d=H[b+8>>2];c=H[b+16>>2];d=Rj(d-c|0,H[b+12>>2]-(H[b+20>>2]+(c>>>0>d>>>0)|0)|0,5,0);c=da;if(d>>>0>>0&(c|0)<=0|(c|0)<0){break a}c=H[a+4>>2];d=H[a+8>>2]-c>>2;c:{if(d>>>0>>0){ya(a+4|0,j-d|0);break c}if(d>>>0<=j>>>0){break c}H[a+8>>2]=c+(j<<2)}p=a+16|0;l=H[a+32>>2];while(1){i=H[b+12>>2];c=i;d=H[b+20>>2];e=H[b+8>>2];f=H[b+16>>2];if((c|0)<=(d|0)&e>>>0<=f>>>0|(c|0)<(d|0)){e=0;break a}n=H[b>>2];q=I[n+f|0];c=d;g=f+1|0;c=g?c:c+1|0;H[b+16>>2]=g;H[b+20>>2]=c;if(e>>>0<=g>>>0&(c|0)>=(i|0)|(c|0)>(i|0)){e=0;break a}g=I[g+n|0];c=d;k=f+2|0;c=k>>>0<2?c+1|0:c;H[b+16>>2]=k;H[b+20>>2]=c;if(e>>>0<=k>>>0&(c|0)>=(i|0)|(c|0)>(i|0)){e=0;break a}k=I[k+n|0];c=d;m=f+3|0;c=m>>>0<3?c+1|0:c;H[b+16>>2]=m;H[b+20>>2]=c;if(e>>>0<=m>>>0&(c|0)>=(i|0)|(c|0)>(i|0)){e=0;break a}e=I[m+n|0];c=d;d=f+4|0;c=d>>>0<4?c+1|0:c;H[b+16>>2]=d;H[b+20>>2]=c;if(q>>>0>4){e=0;break a}if((g-12&255)>>>0<245){e=0;break a}if(!k){e=0;break a}m=Eb(h+8|0);i=(e|0)!=0;d=g-1|0;if(d>>>0<=10){c=H[(d<<2)+13584>>2]}else{c=-1}d=N(c,k);lc(m,q,k,g,i,d,d>>31);d:{d=J[H[a+28>>2]+36>>1];e:{if(((d<<8|d>>>8)&65535)>>>0<=258){c=H[b+20>>2];f=H[b+16>>2];d=f+2|0;c=d>>>0<2?c+1|0:c;e=H[b+12>>2];if(K[b+8>>2]>>0&(e|0)<=(c|0)|(c|0)>(e|0)){break d}f=f+H[b>>2]|0;e=I[f|0]|I[f+1|0]<<8;H[b+16>>2]=d;H[b+20>>2]=c;break e}if(!Pc(1,h+4|0,b)){break d}e=H[h+4>>2]}H[h+68>>2]=e;d=jc(pa(96),m);ea[H[H[l>>2]+8>>2]](l,H[l+12>>2]-H[l+8>>2]>>2,d);d=(H[l+12>>2]-H[l+8>>2]>>2)-1|0;f=d<<2;H[H[f+H[l+8>>2]>>2]+60>>2]=e;H[H[a+4>>2]+(o<<2)>>2]=d;e=H[a+16>>2];c=H[a+20>>2]-e>>2;f:{if((c|0)>(d|0)){break f}H[h>>2]=-1;d=d+1|0;if(d>>>0>c>>>0){Pa(p,d-c|0,h);e=H[p>>2];break f}if(c>>>0<=d>>>0){break f}H[a+20>>2]=(d<<2)+e}H[e+f>>2]=o;e=1;o=o+1|0;if((o|0)!=(j|0)){continue}break a}break}e=0}ca=h+80|0;return e|0}function nd(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;n=ea[H[H[a>>2]+44>>2]](a)|0;a:{if((n|0)<=0){break a}i=H[b+4>>2]-H[b>>2]>>2;e=ca+-64|0;ca=e;f=Eb(e);d=N(H[3400],n);lc(f,H[H[a+8>>2]+56>>2],n&255,5,0,d,d>>31);f=jc(pa(96),f);F[f+84|0]=1;H[f+72>>2]=H[f+68>>2];mb(f,i);H[f+60>>2]=H[H[a+8>>2]+60>>2];d=H[a+16>>2];H[a+16>>2]=f;if(d){Ga(d)}ca=e- -64|0;h=H[a+16>>2];if(!H[h+80>>2]){break a}j=H[H[h>>2]>>2];if(!j){break a}m=H[c+12>>2];e=m;d=H[c+20>>2];g=H[c+8>>2];k=H[c+16>>2];if((e|0)<=(d|0)&g>>>0<=k>>>0|(d|0)>(e|0)){break a}l=N(i,n);i=j+H[h+48>>2]|0;h=H[c>>2];j=I[h+k|0];e=k+1|0;f=e?d:d+1|0;H[c+16>>2]=e;H[c+20>>2]=f;b:{c:{if(j){if(kd(l,n,c,i)){break c}break a}if((f|0)>=(m|0)&e>>>0>=g>>>0|(f|0)>(m|0)){break a}g=I[e+h|0];f=k+2|0;d=f>>>0<2?d+1|0:d;H[c+16>>2]=f;H[c+20>>2]=d;d=H[H[a+16>>2]+64>>2];d=H[d+4>>2]-H[d>>2]|0;if((g|0)==H[3400]){e=l<<2;if(e>>>0>d>>>0){break a}g=H[c+8>>2];k=H[c+12>>2];j=H[c+20>>2];d=H[c+16>>2];f=e+d|0;j=f>>>0>>0?j+1|0:j;if(f>>>0>g>>>0&(j|0)>=(k|0)|(j|0)>(k|0)){break a}qa(i,d+H[c>>2]|0,e);f=H[c+20>>2];d=e+H[c+16>>2]|0;f=d>>>0>>0?f+1|0:f;H[c+16>>2]=d;H[c+20>>2]=f;break c}if(d>>>0>>0){break a}d=H[c+8>>2];f=H[c+16>>2];e=d-f|0;m=d>>>0>>0;d=H[c+20>>2];k=H[c+12>>2]-(m+d|0)|0;m=Rj(g,0,l,0)>>>0>e>>>0;e=da;if(m&(e|0)>=(k|0)|(e|0)>(k|0)){break a}e=1;if(!l){break b}h=0;while(1){k=H[c+8>>2];j=H[c+12>>2];e=f+g|0;d=e>>>0>>0?d+1|0:d;if(e>>>0>k>>>0&(d|0)>=(j|0)|(d|0)>(j|0)){return 0}qa(i+(h<<2)|0,H[c>>2]+f|0,g);d=H[c+20>>2];f=g+H[c+16>>2]|0;d=f>>>0>>0?d+1|0:d;H[c+16>>2]=f;H[c+20>>2]=d;h=h+1|0;if((l|0)!=(h|0)){continue}break}}e=1;if(!l){break b}d=H[a+20>>2];if(d){e=0;if(ea[H[H[d>>2]+32>>2]](d)|0){break b}}g=0;h=0;d:{if((l|0)<=0){break d}if((l|0)!=1){f=l&-2;while(1){e=g<<2;d=H[e+i>>2];H[e+i>>2]=0-(d&1)^d>>>1;d=e|4;e=H[d+i>>2];H[d+i>>2]=0-(e&1)^e>>>1;g=g+2|0;h=h+2|0;if((f|0)!=(h|0)){continue}break}}if(!(l&1)){break d}d=g<<2;f=H[d+i>>2];H[d+i>>2]=0-(f&1)^f>>>1}e=0}d=e;f=H[a+20>>2];e:{if(!f){break e}if(!(ea[H[H[f>>2]+40>>2]](f,c)|0)){break a}if(d){break e}a=H[a+20>>2];if(!(ea[H[H[a>>2]+44>>2]](a,i,i,l,n,H[b>>2])|0)){break a}}o=1}return o|0}function pb(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;h=ca-32|0;ca=h;a:{b:{if(H[a+8>>2]<<5>>>0>=b>>>0){break b}if((b|0)<0){break a}b=(b-1>>>5|0)+1|0;c=pa(b<<2);H[h+24>>2]=b;H[h+20>>2]=0;H[h+16>>2]=c;b=H[a>>2];H[h+12>>2]=0;H[h+8>>2]=b;c=H[a+4>>2];H[h+4>>2]=c&31;H[h>>2]=b+(c>>>3&536870908);e=ca-32|0;ca=e;i=H[h+4>>2];g=H[h+12>>2];j=H[h>>2];d=H[h+8>>2];b=(i-g|0)+(j-d<<3)|0;f=H[h+20>>2];c=b+f|0;H[h+20>>2]=c;if(!((c-1^f-1)>>>0<32?f:0)){H[H[h+16>>2]+((c>>>0>=33?c-1>>>5|0:0)<<2)>>2]=0}c=H[h+16>>2]+(f>>>3&536870908)|0;f=f&31;c:{if((f|0)==(g|0)){if((b|0)<=0){break c}if(g){i=32-g|0;f=(b|0)<(i|0)?b:i;i=-1<>>i-f;H[c>>2]=H[c>>2]&(i^-1)|i&H[d>>2];d=d+4|0;c=(g+f>>>3&536870908)+c|0;b=b-f|0}g=(b|0)/32|0;if(b+31>>>0>=63){va(c,d,g<<2)}b=b-(g<<5)|0;if((b|0)<=0){break c}f=c;c=g<<2;g=f+c|0;b=-1>>>32-b|0;H[g>>2]=H[g>>2]&(b^-1)|b&H[c+d>>2];break c}H[e+28>>2]=g;H[e+24>>2]=d;H[e+20>>2]=i;H[e+16>>2]=j;H[e+12>>2]=f;H[e+8>>2]=c;b=H[e+28>>2];c=H[e+24>>2];g=(H[e+20>>2]-b|0)+(H[e+16>>2]-c<<3)|0;d:{if((g|0)<=0){b=H[e+12>>2];d=H[e+8>>2];break d}e:{if(!b){b=H[e+12>>2];break e}d=H[e+12>>2];j=32-d|0;k=32-b|0;f=(g|0)<(k|0)?g:k;i=f>>>0>j>>>0?j:f;l=H[e+8>>2];m=H[l>>2]&(-1<>>j-i^-1);j=H[c>>2]&(-1<>>k-f);H[l>>2]=m|(b>>>0>>0?j<>>b-d|0);c=d+i|0;b=c&31;H[e+12>>2]=b;d=l+(c>>>3&536870908)|0;H[e+8>>2]=d;c=f-i|0;if((c|0)>0){H[d>>2]=H[d>>2]&(-1>>>32-c^-1)|j>>>i+H[e+28>>2];H[e+12>>2]=c;b=c}g=g-f|0;c=H[e+24>>2]+4|0;H[e+24>>2]=c}i=-1<=32){j=i^-1;while(1){d=H[e+8>>2];c=H[c>>2];H[d>>2]=j&H[d>>2]|c<>2]=d+4;H[d+4>>2]=i&H[d+4>>2]|c>>>f;c=H[e+24>>2]+4|0;H[e+24>>2]=c;d=g>>>0>63;g=g-32|0;if(d){continue}break}}d=H[e+8>>2];if((g|0)<=0){break d}j=f;f=(g|0)>(f|0)?f:g;j=H[d>>2]&(i&-1>>>j-f^-1);i=H[c>>2]&-1>>>32-g;H[d>>2]=j|i<>2]=c;d=(b>>>3&536870908)+d|0;H[e+8>>2]=d;b=g-f|0;if((b|0)<=0){b=c;break d}H[d>>2]=H[d>>2]&(-1>>>32-b^-1)|i>>>f;H[e+12>>2]=b}H[e+4>>2]=b;H[e>>2]=d}ca=e+32|0;b=H[a>>2];H[a>>2]=H[h+16>>2];H[h+16>>2]=b;c=H[a+4>>2];H[a+4>>2]=H[h+20>>2];H[h+20>>2]=c;c=H[a+8>>2];H[a+8>>2]=H[h+24>>2];H[h+24>>2]=c;if(!b){break b}oa(b)}ca=h+32|0;return}sa();v()}function Ne(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;c=J[b+38>>1];a:{if(!c){break a}b:{if(c>>>0<=511){g=H[b+8>>2];e=H[b+12>>2];d=H[b+20>>2];c=H[b+16>>2];i=c+4|0;d=i>>>0<4?d+1|0:d;if(g>>>0>>0&(d|0)>=(e|0)|(d|0)>(e|0)){break a}c=c+H[b>>2]|0;f=I[c|0]|I[c+1|0]<<8|(I[c+2|0]<<16|I[c+3|0]<<24);H[a+12>>2]=f;d=H[b+20>>2];c=H[b+16>>2]+4|0;d=c>>>0<4?d+1|0:d;H[b+16>>2]=c;H[b+20>>2]=d;break b}if(!hb(1,a+12|0,b)){break a}c=H[b+16>>2];d=H[b+20>>2];f=H[a+12>>2]}e=H[b+8>>2];i=e-c|0;c=H[b+12>>2]-(d+(c>>>0>e>>>0)|0)|0;if(i>>>0>>6>>>0&(c|0)<=0|(c|0)<0){break a}d=H[a>>2];c=H[a+4>>2]-d>>2;c:{if(c>>>0>>0){ya(a,f-c|0);f=H[a+12>>2];break c}if(c>>>0<=f>>>0){break c}H[a+4>>2]=d+(f<<2)}if(!f){return 1}c=H[b+16>>2];d=H[b+20>>2];l=H[a>>2];i=H[b+8>>2];j=H[b+12>>2];g=0;while(1){if((d|0)>=(j|0)&c>>>0>=i>>>0|(d|0)>(j|0)){return 0}m=H[b>>2];k=I[m+c|0];c=c+1|0;d=c?d:d+1|0;H[b+16>>2]=c;H[b+20>>2]=d;e=k>>>2|0;h=0;d:{e:{f:{g:{n=k&3;switch(n|0){case 0:break e;case 3:break g;default:break f}}e=e+g|0;if(e>>>0>=f>>>0){return 0}ra(l+(g<<2)|0,0,(k&252)+4|0);g=e;break d}while(1){if((c|0)==(i|0)&(d|0)==(j|0)){break a}f=I[c+m|0];c=c+1|0;d=c?d:d+1|0;H[b+16>>2]=c;H[b+20>>2]=d;e=f<<(h<<3|6)|e;h=h+1|0;if((n|0)!=(h|0)){continue}break}}H[l+(g<<2)>>2]=e}f=H[a+12>>2];g=g+1|0;if(f>>>0>g>>>0){continue}break}b=a+16|0;i=H[a>>2];d=H[a+16>>2];c=H[a+20>>2]-d|0;h:{if(c>>>0<=16383){ya(b,4096-(c>>>2|0)|0);break h}if((c|0)==16384){break h}H[a+20>>2]=d+16384}c=a+28|0;g=H[c>>2];d=H[a+32>>2]-g>>3;i:{if(d>>>0>>0){ob(c,f-d|0);g=H[c>>2];break i}if(d>>>0>f>>>0){H[a+32>>2]=(f<<3)+g}if(!f){break a}}d=H[b>>2];b=0;a=0;while(1){c=i+(b<<2)|0;h=H[c>>2];e=a;j=(b<<3)+g|0;H[j+4>>2]=a;H[j>>2]=h;c=H[c>>2];a=c+a|0;if(a>>>0>4096){break a}j:{if(a>>>0<=e>>>0){break j}h=0;j=c&7;if(j){while(1){H[d+(e<<2)>>2]=b;e=e+1|0;h=h+1|0;if((j|0)!=(h|0)){continue}break}}if(c-1>>>0<=6){break j}while(1){c=d+(e<<2)|0;H[c>>2]=b;H[c+28>>2]=b;H[c+24>>2]=b;H[c+20>>2]=b;H[c+16>>2]=b;H[c+12>>2]=b;H[c+8>>2]=b;H[c+4>>2]=b;e=e+8|0;if((e|0)!=(a|0)){continue}break}}b=b+1|0;if((f|0)!=(b|0)){continue}break}o=(a|0)==4096}return o}function Ni(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;g=ca-48|0;ca=g;d=H[a+8>>2];if(d-2>>>0<=28){H[a+76>>2]=d;e=-1<>2]=d;H[a+80>>2]=e^-1;H[a+92>>2]=(d|0)/2;L[a+88>>2]=O(2)/O(d|0)}H[a+52>>2]=f;d=H[a+40>>2];e=H[d>>2];d=H[d+4>>2];H[g+16>>2]=0;H[g+8>>2]=0;H[g+12>>2]=0;a:{d=d-e|0;if((d|0)>0){m=a+8|0;n=a+44|0;d=d>>>2|0;o=d>>>0<=1?1:d;p=a+96|0;while(1){e=H[a+40>>2];d=H[e>>2];if(H[e+4>>2]-d>>2>>>0<=j>>>0){break a}Nb(n,H[d+(j<<2)>>2],g+8|0);h=H[g+12>>2];d=h>>31;i=H[g+8>>2];e=i>>31;f=(d^h)-d+((e^i)-e)|0;l=H[g+16>>2];d=l>>31;e=(d^l)-d|0;d=0;k=e;e=e+f|0;d=k>>>0>e>>>0?1:d;b:{if(!(d|e)){H[g+8>>2]=H[a+92>>2];break b}f=H[a+92>>2];k=f>>31;i=Sj(Rj(f,k,i,i>>31),da,e,d);H[g+8>>2]=i;d=Sj(Rj(f,k,h,h>>31),da,e,d);H[g+12>>2]=d;e=d>>31;e=(d^e)-e|0;d=i>>31;d=e+((d^i)-d|0)|0;if((l|0)>=0){H[g+16>>2]=f-d;break b}H[g+16>>2]=d-f}d=Ba(p);f=H[g+8>>2];c:{if(d){H[g+16>>2]=0-H[g+16>>2];e=0-H[g+12>>2]|0;H[g+12>>2]=e;f=0-f|0;H[g+8>>2]=f;break c}e=H[g+12>>2]}d:{if((f|0)>=0){f=H[a+92>>2];d=f+H[g+16>>2]|0;f=e+f|0;break d}e:{if((e|0)<0){d=H[g+16>>2];f=d>>31;f=(d^f)-f|0;break e}d=H[g+16>>2];f=d>>31;f=H[a+84>>2]+(f-(d^f)|0)|0}if((d|0)<0){d=e>>31;d=(d^e)-d|0;break d}d=e>>31;d=H[a+84>>2]+(d-(d^e)|0)|0}e=H[a+84>>2];f:{if(!(d|f)){d=e;f=d;break f}if(!((d|0)!=(e|0)|f)){f=d;break f}if(!((e|0)!=(f|0)|d)){d=f;break f}g:{if(f){break g}h=H[a+92>>2];if((h|0)>=(d|0)){break g}d=(h<<1)-d|0;f=0;break f}h:{if((e|0)!=(f|0)){break h}h=H[a+92>>2];if((h|0)<=(d|0)){break h}d=(h<<1)-d|0;break f}i:{if((d|0)!=(e|0)){break i}e=H[a+92>>2];if((e|0)<=(f|0)){break i}f=(e<<1)-f|0;break f}if(d){break f}d=0;e=H[a+92>>2];if((e|0)>=(f|0)){break f}f=(e<<1)-f|0}e=j<<3;h=e+b|0;i=H[h>>2];h=H[h+4>>2];H[g+36>>2]=d;H[g+32>>2]=f;H[g+24>>2]=i;H[g+28>>2]=h;qc(g+40|0,m,g+32|0,g+24|0);d=c+e|0;H[d>>2]=H[g+40>>2];H[d+4>>2]=H[g+44>>2];j=j+1|0;if((o|0)!=(j|0)){continue}break}}ca=g+48|0;return 1}Ca();v()}function Ii(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;g=ca-48|0;ca=g;d=H[a+8>>2];if(d-2>>>0<=28){H[a+76>>2]=d;e=-1<>2]=d;H[a+80>>2]=e^-1;H[a+92>>2]=(d|0)/2;L[a+88>>2]=O(2)/O(d|0)}H[a+52>>2]=f;d=H[a+40>>2];e=H[d>>2];d=H[d+4>>2];H[g+16>>2]=0;H[g+8>>2]=0;H[g+12>>2]=0;a:{d=d-e|0;if((d|0)>0){m=a+8|0;n=a+44|0;d=d>>>2|0;o=d>>>0<=1?1:d;p=a+96|0;while(1){e=H[a+40>>2];d=H[e>>2];if(H[e+4>>2]-d>>2>>>0<=j>>>0){break a}Lb(n,H[d+(j<<2)>>2],g+8|0);h=H[g+12>>2];d=h>>31;i=H[g+8>>2];e=i>>31;f=(d^h)-d+((e^i)-e)|0;l=H[g+16>>2];d=l>>31;e=(d^l)-d|0;d=0;k=e;e=e+f|0;d=k>>>0>e>>>0?1:d;b:{if(!(d|e)){H[g+8>>2]=H[a+92>>2];break b}f=H[a+92>>2];k=f>>31;i=Sj(Rj(f,k,i,i>>31),da,e,d);H[g+8>>2]=i;d=Sj(Rj(f,k,h,h>>31),da,e,d);H[g+12>>2]=d;e=d>>31;e=(d^e)-e|0;d=i>>31;d=e+((d^i)-d|0)|0;if((l|0)>=0){H[g+16>>2]=f-d;break b}H[g+16>>2]=d-f}d=Ba(p);f=H[g+8>>2];c:{if(d){H[g+16>>2]=0-H[g+16>>2];e=0-H[g+12>>2]|0;H[g+12>>2]=e;f=0-f|0;H[g+8>>2]=f;break c}e=H[g+12>>2]}d:{if((f|0)>=0){f=H[a+92>>2];d=f+H[g+16>>2]|0;f=e+f|0;break d}e:{if((e|0)<0){d=H[g+16>>2];f=d>>31;f=(d^f)-f|0;break e}d=H[g+16>>2];f=d>>31;f=H[a+84>>2]+(f-(d^f)|0)|0}if((d|0)<0){d=e>>31;d=(d^e)-d|0;break d}d=e>>31;d=H[a+84>>2]+(d-(d^e)|0)|0}e=H[a+84>>2];f:{if(!(d|f)){d=e;f=d;break f}if(!((d|0)!=(e|0)|f)){f=d;break f}if(!((e|0)!=(f|0)|d)){d=f;break f}g:{if(f){break g}h=H[a+92>>2];if((h|0)>=(d|0)){break g}d=(h<<1)-d|0;f=0;break f}h:{if((e|0)!=(f|0)){break h}h=H[a+92>>2];if((h|0)<=(d|0)){break h}d=(h<<1)-d|0;break f}i:{if((d|0)!=(e|0)){break i}e=H[a+92>>2];if((e|0)<=(f|0)){break i}f=(e<<1)-f|0;break f}if(d){break f}d=0;e=H[a+92>>2];if((e|0)>=(f|0)){break f}f=(e<<1)-f|0}e=j<<3;h=e+b|0;i=H[h>>2];h=H[h+4>>2];H[g+36>>2]=d;H[g+32>>2]=f;H[g+24>>2]=i;H[g+28>>2]=h;qc(g+40|0,m,g+32|0,g+24|0);d=c+e|0;H[d>>2]=H[g+40>>2];H[d+4>>2]=H[g+44>>2];j=j+1|0;if((o|0)!=(j|0)){continue}break}}ca=g+48|0;return 1}Ca();v()}function Wi(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;g=ca-48|0;ca=g;d=H[a+8>>2];if(d-2>>>0<=28){H[a+76>>2]=d;e=-1<>2]=d;H[a+80>>2]=e^-1;H[a+92>>2]=(d|0)/2;L[a+88>>2]=O(2)/O(d|0)}H[a+52>>2]=f;d=H[a+40>>2];e=H[d>>2];d=H[d+4>>2];H[g+16>>2]=0;H[g+8>>2]=0;H[g+12>>2]=0;a:{d=d-e|0;if((d|0)>0){m=a+8|0;n=a+44|0;d=d>>>2|0;o=d>>>0<=1?1:d;p=a+96|0;while(1){e=H[a+40>>2];d=H[e>>2];if(H[e+4>>2]-d>>2>>>0<=j>>>0){break a}Nb(n,H[d+(j<<2)>>2],g+8|0);h=H[g+12>>2];d=h>>31;i=H[g+8>>2];e=i>>31;f=(d^h)-d+((e^i)-e)|0;l=H[g+16>>2];d=l>>31;e=(d^l)-d|0;d=0;k=e;e=e+f|0;d=k>>>0>e>>>0?1:d;b:{if(!(d|e)){H[g+8>>2]=H[a+92>>2];break b}f=H[a+92>>2];k=f>>31;i=Sj(Rj(f,k,i,i>>31),da,e,d);H[g+8>>2]=i;d=Sj(Rj(f,k,h,h>>31),da,e,d);H[g+12>>2]=d;e=d>>31;e=(d^e)-e|0;d=i>>31;d=e+((d^i)-d|0)|0;if((l|0)>=0){H[g+16>>2]=f-d;break b}H[g+16>>2]=d-f}d=Ba(p);f=H[g+8>>2];c:{if(d){H[g+16>>2]=0-H[g+16>>2];e=0-H[g+12>>2]|0;H[g+12>>2]=e;f=0-f|0;H[g+8>>2]=f;break c}e=H[g+12>>2]}d:{if((f|0)>=0){f=H[a+92>>2];d=f+H[g+16>>2]|0;f=e+f|0;break d}e:{if((e|0)<0){d=H[g+16>>2];f=d>>31;f=(d^f)-f|0;break e}d=H[g+16>>2];f=d>>31;f=H[a+84>>2]+(f-(d^f)|0)|0}if((d|0)<0){d=e>>31;d=(d^e)-d|0;break d}d=e>>31;d=H[a+84>>2]+(d-(d^e)|0)|0}e=H[a+84>>2];f:{if(!(d|f)){d=e;f=d;break f}if(!((d|0)!=(e|0)|f)){f=d;break f}if(!((e|0)!=(f|0)|d)){d=f;break f}g:{if(f){break g}h=H[a+92>>2];if((h|0)>=(d|0)){break g}d=(h<<1)-d|0;f=0;break f}h:{if((e|0)!=(f|0)){break h}h=H[a+92>>2];if((h|0)<=(d|0)){break h}d=(h<<1)-d|0;break f}i:{if((d|0)!=(e|0)){break i}e=H[a+92>>2];if((e|0)<=(f|0)){break i}f=(e<<1)-f|0;break f}if(d){break f}d=0;e=H[a+92>>2];if((e|0)>=(f|0)){break f}f=(e<<1)-f|0}e=j<<3;h=e+b|0;i=H[h+4>>2];H[g+40>>2]=H[h>>2];H[g+44>>2]=i;H[g+28>>2]=d;H[g+24>>2]=f;rc(g+32|0,m,g+24|0,g+40|0);d=c+e|0;H[d>>2]=H[g+32>>2];H[d+4>>2]=H[g+36>>2];j=j+1|0;if((o|0)!=(j|0)){continue}break}}ca=g+48|0;return 1}Ca();v()}function Ri(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;g=ca-48|0;ca=g;d=H[a+8>>2];if(d-2>>>0<=28){H[a+76>>2]=d;e=-1<>2]=d;H[a+80>>2]=e^-1;H[a+92>>2]=(d|0)/2;L[a+88>>2]=O(2)/O(d|0)}H[a+52>>2]=f;d=H[a+40>>2];e=H[d>>2];d=H[d+4>>2];H[g+16>>2]=0;H[g+8>>2]=0;H[g+12>>2]=0;a:{d=d-e|0;if((d|0)>0){m=a+8|0;n=a+44|0;d=d>>>2|0;o=d>>>0<=1?1:d;p=a+96|0;while(1){e=H[a+40>>2];d=H[e>>2];if(H[e+4>>2]-d>>2>>>0<=j>>>0){break a}Lb(n,H[d+(j<<2)>>2],g+8|0);h=H[g+12>>2];d=h>>31;i=H[g+8>>2];e=i>>31;f=(d^h)-d+((e^i)-e)|0;l=H[g+16>>2];d=l>>31;e=(d^l)-d|0;d=0;k=e;e=e+f|0;d=k>>>0>e>>>0?1:d;b:{if(!(d|e)){H[g+8>>2]=H[a+92>>2];break b}f=H[a+92>>2];k=f>>31;i=Sj(Rj(f,k,i,i>>31),da,e,d);H[g+8>>2]=i;d=Sj(Rj(f,k,h,h>>31),da,e,d);H[g+12>>2]=d;e=d>>31;e=(d^e)-e|0;d=i>>31;d=e+((d^i)-d|0)|0;if((l|0)>=0){H[g+16>>2]=f-d;break b}H[g+16>>2]=d-f}d=Ba(p);f=H[g+8>>2];c:{if(d){H[g+16>>2]=0-H[g+16>>2];e=0-H[g+12>>2]|0;H[g+12>>2]=e;f=0-f|0;H[g+8>>2]=f;break c}e=H[g+12>>2]}d:{if((f|0)>=0){f=H[a+92>>2];d=f+H[g+16>>2]|0;f=e+f|0;break d}e:{if((e|0)<0){d=H[g+16>>2];f=d>>31;f=(d^f)-f|0;break e}d=H[g+16>>2];f=d>>31;f=H[a+84>>2]+(f-(d^f)|0)|0}if((d|0)<0){d=e>>31;d=(d^e)-d|0;break d}d=e>>31;d=H[a+84>>2]+(d-(d^e)|0)|0}e=H[a+84>>2];f:{if(!(d|f)){d=e;f=d;break f}if(!((d|0)!=(e|0)|f)){f=d;break f}if(!((e|0)!=(f|0)|d)){d=f;break f}g:{if(f){break g}h=H[a+92>>2];if((h|0)>=(d|0)){break g}d=(h<<1)-d|0;f=0;break f}h:{if((e|0)!=(f|0)){break h}h=H[a+92>>2];if((h|0)<=(d|0)){break h}d=(h<<1)-d|0;break f}i:{if((d|0)!=(e|0)){break i}e=H[a+92>>2];if((e|0)<=(f|0)){break i}f=(e<<1)-f|0;break f}if(d){break f}d=0;e=H[a+92>>2];if((e|0)>=(f|0)){break f}f=(e<<1)-f|0}e=j<<3;h=e+b|0;i=H[h+4>>2];H[g+40>>2]=H[h>>2];H[g+44>>2]=i;H[g+28>>2]=d;H[g+24>>2]=f;rc(g+32|0,m,g+24|0,g+40|0);d=c+e|0;H[d>>2]=H[g+32>>2];H[d+4>>2]=H[g+36>>2];j=j+1|0;if((o|0)!=(j|0)){continue}break}}ca=g+48|0;return 1}Ca();v()}function Ge(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;f=ca-16|0;ca=f;c=H[a+4>>2];H[a+40>>2]=H[a>>2];H[a+44>>2]=c;c=H[a+36>>2];H[a+72>>2]=H[a+32>>2];H[a+76>>2]=c;d=H[a+28>>2];c=a- -64|0;H[c>>2]=H[a+24>>2];H[c+4>>2]=d;c=H[a+20>>2];H[a+56>>2]=H[a+16>>2];H[a+60>>2]=c;c=H[a+12>>2];H[a+48>>2]=H[a+8>>2];H[a+52>>2]=c;a:{b:{if(Db(a+40|0,1,f+8|0)){c=H[a+44>>2];H[a>>2]=H[a+40>>2];H[a+4>>2]=c;c=H[a+76>>2];H[a+32>>2]=H[a+72>>2];H[a+36>>2]=c;c=H[a+68>>2];H[a+24>>2]=H[a+64>>2];H[a+28>>2]=c;d=H[a+60>>2];h=d;c=H[a+56>>2];H[a+16>>2]=c;H[a+20>>2]=d;e=H[a+52>>2];d=H[a+48>>2];H[a+8>>2]=d;H[a+12>>2]=e;i=d-c|0;g=H[f+12>>2];e=e-((c>>>0>d>>>0)+h|0)|0;d=H[f+8>>2];if((g|0)==(e|0)&i>>>0>=d>>>0|e>>>0>g>>>0){break b}}c=0;break a}e=h+g|0;c=c+d|0;e=c>>>0>>0?e+1|0:e;H[a+16>>2]=c;H[a+20>>2]=e;c:{if(J[a+38>>1]<=513){c=H[a+4>>2];H[a+96>>2]=H[a>>2];H[a+100>>2]=c;c=H[a+36>>2];H[a+128>>2]=H[a+32>>2];H[a+132>>2]=c;c=H[a+28>>2];H[a+120>>2]=H[a+24>>2];H[a+124>>2]=c;c=H[a+20>>2];H[a+112>>2]=H[a+16>>2];H[a+116>>2]=c;c=H[a+12>>2];H[a+104>>2]=H[a+8>>2];H[a+108>>2]=c;d:{if(Db(a+96|0,1,f+8|0)){c=H[a+100>>2];H[a>>2]=H[a+96>>2];H[a+4>>2]=c;c=H[a+132>>2];H[a+32>>2]=H[a+128>>2];H[a+36>>2]=c;c=H[a+124>>2];H[a+24>>2]=H[a+120>>2];H[a+28>>2]=c;d=H[a+116>>2];h=d;c=H[a+112>>2];H[a+16>>2]=c;H[a+20>>2]=d;e=H[a+108>>2];d=H[a+104>>2];H[a+8>>2]=d;H[a+12>>2]=e;i=d-c|0;g=H[f+12>>2];e=e-((c>>>0>d>>>0)+h|0)|0;d=H[f+8>>2];if((g|0)==(e|0)&i>>>0>=d>>>0|e>>>0>g>>>0){break d}}c=0;break a}e=h+g|0;c=c+d|0;e=c>>>0>>0?e+1|0:e;H[a+16>>2]=c;H[a+20>>2]=e;break c}c=0;if(!ta(a+80|0,a)){break a}}c=0;if(!Fe(a)){break a}c=H[a+4>>2];H[b>>2]=H[a>>2];H[b+4>>2]=c;c=H[a+36>>2];H[b+32>>2]=H[a+32>>2];H[b+36>>2]=c;c=H[a+28>>2];H[b+24>>2]=H[a+24>>2];H[b+28>>2]=c;c=H[a+20>>2];H[b+16>>2]=H[a+16>>2];H[b+20>>2]=c;c=H[a+12>>2];H[b+8>>2]=H[a+8>>2];H[b+12>>2]=c;c=1}ca=f+16|0;return c}function oe(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;if(!H[a+64>>2]){c=pa(32);H[c+16>>2]=0;H[c+20>>2]=0;H[c+8>>2]=0;H[c>>2]=0;H[c+4>>2]=0;H[c+24>>2]=0;H[c+28>>2]=0;d=H[a+64>>2];H[a+64>>2]=c;if(d){c=H[d>>2];if(c){H[d+4>>2]=c;oa(c)}oa(d);c=H[a+64>>2]}H[a>>2]=c;d=H[c+20>>2];H[a+8>>2]=H[c+16>>2];H[a+12>>2]=d;d=H[c+24>>2];c=H[c+28>>2];H[a+48>>2]=0;H[a+52>>2]=0;H[a+40>>2]=0;H[a+44>>2]=0;H[a+16>>2]=d;H[a+20>>2]=c}a:{F[a+24|0]=I[b+24|0];H[a+28>>2]=H[b+28>>2];F[a+32|0]=I[b+32|0];c=H[b+44>>2];H[a+40>>2]=H[b+40>>2];H[a+44>>2]=c;c=H[b+52>>2];H[a+48>>2]=H[b+48>>2];H[a+52>>2]=c;H[a+56>>2]=H[b+56>>2];c=H[b+12>>2];H[a+8>>2]=H[b+8>>2];H[a+12>>2]=c;c=H[b+20>>2];H[a+16>>2]=H[b+16>>2];H[a+20>>2]=c;H[a+60>>2]=H[b+60>>2];c=H[b>>2];b:{if(!c){H[a>>2]=0;d=1;break b}g=H[a>>2];d=0;if(!g){break b}d=H[c>>2];c=H[c+4>>2]-d|0;se(g,d,c,0);d=1}c:{if(!d){break c}F[a+84|0]=I[b+84|0];H[a+80>>2]=H[b+80>>2];if((a|0)!=(b|0)){Cb(a+68|0,H[b+68>>2],H[b+72>>2])}f=H[b+88>>2];d:{if(f){e=pa(40);b=H[f>>2];H[e+16>>2]=0;H[e+8>>2]=0;H[e+12>>2]=0;H[e>>2]=b;c=H[f+12>>2];b=H[f+8>>2];if((c|0)!=(b|0)){c=c-b|0;if((c|0)<0){break a}b=pa(c);H[e+12>>2]=b;H[e+8>>2]=b;H[e+16>>2]=b+c;c=H[f+8>>2];h=H[f+12>>2];e:{if((c|0)==(h|0)){break e}g=(c^-1)+h|0;d=h-c&7;if(d){while(1){F[b|0]=I[c|0];b=b+1|0;c=c+1|0;i=i+1|0;if((d|0)!=(i|0)){continue}break}}if(g>>>0<7){break e}while(1){F[b|0]=I[c|0];F[b+1|0]=I[c+1|0];F[b+2|0]=I[c+2|0];F[b+3|0]=I[c+3|0];F[b+4|0]=I[c+4|0];F[b+5|0]=I[c+5|0];F[b+6|0]=I[c+6|0];F[b+7|0]=I[c+7|0];b=b+8|0;c=c+8|0;if((h|0)!=(c|0)){continue}break}}H[e+12>>2]=b}b=H[f+36>>2];H[e+32>>2]=H[f+32>>2];H[e+36>>2]=b;b=H[f+28>>2];H[e+24>>2]=H[f+24>>2];H[e+28>>2]=b;b=H[a+88>>2];H[a+88>>2]=e;if(b){break d}break c}b=H[a+88>>2];H[a+88>>2]=0;if(!b){break c}}a=H[b+8>>2];if(a){H[b+12>>2]=a;oa(a)}oa(b)}return}sa();v()}function og(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;f=ca-32|0;ca=f;e=f+8|0;c=ca-80|0;ca=c;a=H[b+36>>2];H[c+72>>2]=H[b+32>>2];H[c+76>>2]=a;d=H[b+28>>2];a=c- -64|0;H[a>>2]=H[b+24>>2];H[a+4>>2]=d;a=H[b+20>>2];H[c+56>>2]=H[b+16>>2];H[c+60>>2]=a;a=H[b+12>>2];H[c+48>>2]=H[b+8>>2];H[c+52>>2]=a;a=H[b+4>>2];H[c+40>>2]=H[b>>2];H[c+44>>2]=a;nc(c+8|0,c+40|0,c+24|0);a=H[c+8>>2];a:{if(a){H[e>>2]=a;a=e+4|0;if(F[c+23|0]>=0){b=c+8|4;e=H[b+4>>2];H[a>>2]=H[b>>2];H[a+4>>2]=e;H[a+8>>2]=H[b+8>>2];break a}za(a,H[c+12>>2],H[c+16>>2]);if(F[c+23|0]>=0){break a}oa(H[c+12>>2]);break a}if(F[c+23|0]<0){oa(H[c+12>>2])}a=I[c+31|0];if(a>>>0>=2){b=pa(32);F[b+26|0]=0;a=I[1477]|I[1478]<<8;F[b+24|0]=a;F[b+25|0]=a>>>8;a=I[1473]|I[1474]<<8|(I[1475]<<16|I[1476]<<24);d=I[1469]|I[1470]<<8|(I[1471]<<16|I[1472]<<24);F[b+16|0]=d;F[b+17|0]=d>>>8;F[b+18|0]=d>>>16;F[b+19|0]=d>>>24;F[b+20|0]=a;F[b+21|0]=a>>>8;F[b+22|0]=a>>>16;F[b+23|0]=a>>>24;a=I[1465]|I[1466]<<8|(I[1467]<<16|I[1468]<<24);d=I[1461]|I[1462]<<8|(I[1463]<<16|I[1464]<<24);F[b+8|0]=d;F[b+9|0]=d>>>8;F[b+10|0]=d>>>16;F[b+11|0]=d>>>24;F[b+12|0]=a;F[b+13|0]=a>>>8;F[b+14|0]=a>>>16;F[b+15|0]=a>>>24;a=I[1457]|I[1458]<<8|(I[1459]<<16|I[1460]<<24);d=I[1453]|I[1454]<<8|(I[1455]<<16|I[1456]<<24);F[b|0]=d;F[b+1|0]=d>>>8;F[b+2|0]=d>>>16;F[b+3|0]=d>>>24;F[b+4|0]=a;F[b+5|0]=a>>>8;F[b+6|0]=a>>>16;F[b+7|0]=a>>>24;H[c+8>>2]=-1;a=c+8|4;za(a,b,26);d=F[c+23|0];H[e>>2]=H[c+8>>2];e=e+4|0;if((d|0)>=0){d=H[a+4>>2];H[e>>2]=H[a>>2];H[e+4>>2]=d;H[e+8>>2]=H[a+8>>2];oa(b);break a}za(e,H[c+12>>2],H[c+16>>2]);if(F[c+23|0]<0){oa(H[c+12>>2])}oa(b);break a}H[e>>2]=0;H[e+4>>2]=0;H[e+16>>2]=a;H[e+8>>2]=0;H[e+12>>2]=0}ca=c+80|0;a=H[f+24>>2];if(F[f+23|0]<0){oa(H[f+12>>2])}ca=f+32|0;return a|0}function Xd(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;k=ca-16|0;ca=k;H[k+8>>2]=c;h=H[a+12>>2];d=H[a+8>>2];g=h-d>>2;a:{if((g|0)>(b|0)){break a}e=b+1|0;if(e>>>0>g>>>0){l=e-g|0;f=H[a+16>>2];d=H[a+12>>2];if(l>>>0<=f-d>>2>>>0){if(l){e=d;d=l<<2;d=ra(e,0,d)+d|0}H[a+12>>2]=d;break a}b:{c:{d:{m=H[a+8>>2];g=d-m>>2;i=g+l|0;if(i>>>0<1073741824){e=f-m|0;f=e>>>1|0;e=e>>>0>=2147483644?1073741823:f>>>0>i>>>0?f:i;if(e){if(e>>>0>=1073741824){break d}j=pa(e<<2)}h=(g<<2)+j|0;f=l<<2;i=ra(h,0,f);g=f+i|0;e=(e<<2)+j|0;if((d|0)==(m|0)){break c}while(1){d=d-4|0;f=H[d>>2];H[d>>2]=0;h=h-4|0;H[h>>2]=f;if((d|0)!=(m|0)){continue}break}H[a+16>>2]=e;e=H[a+12>>2];H[a+12>>2]=g;d=H[a+8>>2];H[a+8>>2]=h;if((d|0)==(e|0)){break b}while(1){e=e-4|0;f=H[e>>2];H[e>>2]=0;if(f){Ga(f)}if((d|0)!=(e|0)){continue}break}break b}sa();v()}wa();v()}H[a+16>>2]=e;H[a+12>>2]=g;H[a+8>>2]=i}if(d){oa(d)}break a}if(e>>>0>=g>>>0){break a}d=d+(e<<2)|0;if((d|0)!=(h|0)){while(1){h=h-4|0;c=H[h>>2];H[h>>2]=0;if(c){Ga(c)}if((d|0)!=(h|0)){continue}break}c=H[k+8>>2]}H[a+12>>2]=d}e:{f:{d=H[c+56>>2];g:{if((d|0)>4){break g}j=N(d,12)+a|0;d=H[j+24>>2];if((d|0)!=H[j+28>>2]){H[d>>2]=b;H[j+24>>2]=d+4;break g}i=H[j+20>>2];g=d-i|0;f=g>>2;e=f+1|0;if(e>>>0>=1073741824){break f}d=g>>>1|0;e=g>>>0>=2147483644?1073741823:d>>>0>e>>>0?d:e;if(e){if(e>>>0>=1073741824){break e}d=pa(e<<2)}else{d=0}f=d+(f<<2)|0;H[f>>2]=b;d=va(d,i,g);H[j+20>>2]=d;H[j+24>>2]=f+4;H[j+28>>2]=d+(e<<2);if(!i){break g}oa(i)}H[c+60>>2]=b;a=H[a+8>>2];H[k+8>>2]=0;a=a+(b<<2)|0;b=H[a>>2];H[a>>2]=c;if(b){Ga(b)}a=H[k+8>>2];H[k+8>>2]=0;if(a){Ga(a)}ca=k+16|0;return}sa();v()}wa();v()}function Og(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;i=c;d=a;a:{if(H[a+12>>2]==(b|0)){break a}a=b;b=H[d+4>>2];e=H[d>>2];if((b|0)!=(e|0)){while(1){c=b-12|0;if(F[b-1|0]<0){oa(H[c>>2])}b=c;if((e|0)!=(b|0)){continue}break}}H[d+12>>2]=a;H[d+4>>2]=e;c=H[a>>2];j=a+4|0;if((c|0)==(j|0)){break a}while(1){a=H[d+4>>2];b:{if((a|0)!=H[d+8>>2]){c:{if(F[c+27|0]>=0){b=H[c+20>>2];H[a>>2]=H[c+16>>2];H[a+4>>2]=b;H[a+8>>2]=H[c+24>>2];break c}za(a,H[c+16>>2],H[c+20>>2])}H[d+4>>2]=a+12;break b}g=0;d:{e:{f:{a=H[d+4>>2];e=H[d>>2];f=(a-e|0)/12|0;b=f+1|0;if(b>>>0<357913942){h=(H[d+8>>2]-e|0)/12|0;k=h<<1;b=h>>>0>=178956970?357913941:b>>>0>>0?k:b;if(b){if(b>>>0>=357913942){break f}g=pa(N(b,12))}h=N(b,12);b=N(f,12)+g|0;g:{if(F[c+27|0]>=0){f=H[c+20>>2];H[b>>2]=H[c+16>>2];H[b+4>>2]=f;H[b+8>>2]=H[c+24>>2];break g}za(b,H[c+16>>2],H[c+20>>2]);e=H[d>>2];a=H[d+4>>2]}g=g+h|0;f=b+12|0;if((a|0)==(e|0)){break e}while(1){a=a-12|0;h=H[a+4>>2];b=b-12|0;H[b>>2]=H[a>>2];H[b+4>>2]=h;H[b+8>>2]=H[a+8>>2];H[a>>2]=0;H[a+4>>2]=0;H[a+8>>2]=0;if((a|0)!=(e|0)){continue}break}H[d+8>>2]=g;a=H[d+4>>2];H[d+4>>2]=f;e=H[d>>2];H[d>>2]=b;if((a|0)==(e|0)){break d}while(1){b=a-12|0;if(F[a-1|0]<0){oa(H[b>>2])}a=b;if((e|0)!=(b|0)){continue}break}break d}sa();v()}wa();v()}H[d+8>>2]=g;H[d+4>>2]=f;H[d>>2]=b}if(e){oa(e)}}b=H[c+4>>2];h:{if(b){while(1){a=b;b=H[b>>2];if(b){continue}break h}}while(1){a=H[c+8>>2];b=H[a>>2]!=(c|0);c=a;if(b){continue}break}}c=a;if((j|0)!=(a|0)){continue}break}}a=0;i:{if((i|0)<0){break i}b=H[d>>2];if((H[d+4>>2]-b|0)/12>>>0<=i>>>0){break i}a=b+N(i,12)|0;a=F[a+11|0]<0?H[a>>2]:a}return a|0}function bd(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;i=ca-16|0;ca=i;H[i>>2]=b;f=-1;a:{if((b|0)==-1){H[i+4>>2]=-1;break a}f=b+1|0;H[i+4>>2]=(f>>>0)%3|0?f:b-2|0;if((b>>>0)%3|0){f=b-1|0;break a}f=b+2|0}H[i+8>>2]=f;n=(b>>>0)/3|0;b:{c:{d:{while(1){e:{f:{j=H[(l<<2)+i>>2];if((j|0)!=-1){f=H[H[H[a+8>>2]+12>>2]+(j<<2)>>2];if((f|0)!=-1){break f}}f=0;g=H[a+216>>2];if((g|0)==H[a+220>>2]){break e}while(1){g=N(f,144)+g|0;d=H[g+136>>2];c=H[g+140>>2];g:{if(d>>>0>>0){H[d>>2]=j;H[g+136>>2]=d+4;break g}e=d;d=H[g+132>>2];k=e-d|0;e=k>>2;h=e+1|0;if(h>>>0>=1073741824){break d}m=e<<2;c=c-d|0;e=c>>>1|0;h=c>>>0>=2147483644?1073741823:h>>>0>>0?e:h;if(h){if(h>>>0>=1073741824){break c}c=pa(h<<2)}else{c=0}e=m+c|0;H[e>>2]=j;c=va(c,d,k);H[g+132>>2]=c;H[g+136>>2]=e+4;H[g+140>>2]=c+(h<<2);if(!d){break g}oa(d)}f=f+1|0;g=H[a+216>>2];if(f>>>0<(H[a+220>>2]-g|0)/144>>>0){continue}break}break e}if((b|0)==-1|(f>>>0)/3>>>0>>0){break e}f=0;if(H[a+220>>2]==H[a+216>>2]){break e}while(1){h:{if(!Ba(H[a+368>>2]+(f<<4)|0)){break h}g=H[a+216>>2]+N(f,144)|0;d=H[g+136>>2];c=H[g+140>>2];if(d>>>0>>0){H[d>>2]=j;H[g+136>>2]=d+4;break h}e=d;d=H[g+132>>2];k=e-d|0;e=k>>2;h=e+1|0;if(h>>>0>=1073741824){break b}m=e<<2;c=c-d|0;e=c>>>1|0;h=c>>>0>=2147483644?1073741823:h>>>0>>0?e:h;if(h){if(h>>>0>=1073741824){break c}c=pa(h<<2)}else{c=0}e=m+c|0;H[e>>2]=j;c=va(c,d,k);H[g+132>>2]=c;H[g+136>>2]=e+4;H[g+140>>2]=c+(h<<2);if(!d){break h}oa(d)}f=f+1|0;if(f>>>0<(H[a+220>>2]-H[a+216>>2]|0)/144>>>0){continue}break}}l=l+1|0;if((l|0)!=3){continue}break}ca=i+16|0;return 1}sa();v()}wa();v()}sa();v()}function cd(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;h=ca-16|0;ca=h;H[h>>2]=b;c=-1;a:{if((b|0)==-1){H[h+4>>2]=-1;break a}c=b+1|0;H[h+4>>2]=(c>>>0)%3|0?c:b-2|0;if((b>>>0)%3|0){c=b-1|0;break a}c=b+2|0}H[h+8>>2]=c;b:{c:{while(1){i=H[(k<<2)+h>>2];d:{if(!((i|0)==-1|H[H[H[a+8>>2]+12>>2]+(i<<2)>>2]==-1)){b=0;if(H[a+220>>2]==H[a+216>>2]){break d}while(1){e:{f:{if(!Ba(H[a+368>>2]+(b<<4)|0)){break f}c=H[a+216>>2]+N(b,144)|0;e=H[c+136>>2];d=H[c+140>>2];if(e>>>0>>0){H[e>>2]=i;H[c+136>>2]=e+4;break f}f=e;e=H[c+132>>2];j=f-e|0;f=j>>2;g=f+1|0;if(g>>>0>=1073741824){break e}l=f<<2;d=d-e|0;f=d>>>1|0;g=d>>>0>=2147483644?1073741823:g>>>0>>0?f:g;if(g){if(g>>>0>=1073741824){break b}d=pa(g<<2)}else{d=0}f=l+d|0;H[f>>2]=i;d=va(d,e,j);H[c+132>>2]=d;H[c+136>>2]=f+4;H[c+140>>2]=d+(g<<2);if(!e){break f}oa(e)}b=b+1|0;if(b>>>0<(H[a+220>>2]-H[a+216>>2]|0)/144>>>0){continue}break d}break}sa();v()}b=0;c=H[a+216>>2];if((c|0)==H[a+220>>2]){break d}while(1){c=N(b,144)+c|0;e=H[c+136>>2];d=H[c+140>>2];g:{if(e>>>0>>0){H[e>>2]=i;H[c+136>>2]=e+4;break g}f=e;e=H[c+132>>2];j=f-e|0;f=j>>2;g=f+1|0;if(g>>>0>=1073741824){break c}l=f<<2;d=d-e|0;f=d>>>1|0;g=d>>>0>=2147483644?1073741823:g>>>0>>0?f:g;if(g){if(g>>>0>=1073741824){break b}d=pa(g<<2)}else{d=0}f=l+d|0;H[f>>2]=i;d=va(d,e,j);H[c+132>>2]=d;H[c+136>>2]=f+4;H[c+140>>2]=d+(g<<2);if(!e){break g}oa(e)}b=b+1|0;c=H[a+216>>2];if(b>>>0<(H[a+220>>2]-c|0)/144>>>0){continue}break}}k=k+1|0;if((k|0)!=3){continue}break}ca=h+16|0;return 1}sa();v()}wa();v()}function vg(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;m=ca-16|0;ca=m;l=H[b+80>>2];e=I[c+24|0];a=N(l,e);a:{b:{c:{d:{b=H[c+28>>2];if(!(!I[c+84|0]|(b|0)!=1&(b|0)!=2)){b=H[c+48>>2];c=H[H[c>>2]>>2];H[m+8>>2]=0;H[m>>2]=0;H[m+4>>2]=0;if(a){if((a|0)<0){break d}f=pa(a);h=qa(f,b+c|0,a)+a|0}a=H[d>>2];if(a){H[d+4>>2]=a;oa(a)}H[d+8>>2]=h;H[d+4>>2]=h;H[d>>2]=f;b=1;break a}if(e){f=pa(e);ra(f,0,e)}e:{i=H[d+4>>2];b=H[d>>2];g=i-b|0;f:{if(g>>>0>>0){k=a-g|0;j=H[d+8>>2];if(k>>>0<=j-i>>>0){n=d,o=ra(i,0,k)+k|0,H[n+4>>2]=o;break f}if((a|0)<0){break e}i=j-b|0;j=i<<1;i=i>>>0>=1073741823?2147483647:a>>>0>>0?j:a;j=pa(i);ra(j+g|0,0,k);g=va(j,b,g);H[d+8>>2]=g+i;H[d+4>>2]=a+g;H[d>>2]=g;if(!b){break f}oa(b);break f}if(a>>>0>=g>>>0){break f}H[d+4>>2]=a+b}if(!l){b=1;break c}if(!e){b=0;a=0;while(1){if(!ic(c,I[c+84|0]?a:H[H[c+68>>2]+(a<<2)>>2],F[c+24|0],f)){break c}a=a+1|0;b=l>>>0<=a>>>0;if((a|0)!=(l|0)){continue}break}break c}i=e&252;g=e&3;b=0;j=e>>>0<4;e=0;while(1){if(!ic(c,I[c+84|0]?e:H[H[c+68>>2]+(e<<2)>>2],F[c+24|0],f)){break c}b=0;a=0;k=0;if(!j){while(1){F[H[d>>2]+h|0]=I[a+f|0];F[(H[d>>2]+h|0)+1|0]=I[(a|1)+f|0];F[(H[d>>2]+h|0)+2|0]=I[(a|2)+f|0];F[(H[d>>2]+h|0)+3|0]=I[(a|3)+f|0];a=a+4|0;h=h+4|0;k=k+4|0;if((i|0)!=(k|0)){continue}break}}if(g){while(1){F[H[d>>2]+h|0]=I[a+f|0];a=a+1|0;h=h+1|0;b=b+1|0;if((g|0)!=(b|0)){continue}break}}e=e+1|0;b=l>>>0<=e>>>0;if((e|0)!=(l|0)){continue}break}break b}sa();v()}sa();v()}if(!f){break a}}oa(f)}ca=m+16|0;return b&1}function ug(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;m=ca-16|0;ca=m;l=H[b+80>>2];e=I[c+24|0];a=N(l,e);a:{b:{c:{d:{b=H[c+28>>2];if(!(!I[c+84|0]|(b|0)!=1&(b|0)!=2)){b=H[c+48>>2];c=H[H[c>>2]>>2];H[m+8>>2]=0;H[m>>2]=0;H[m+4>>2]=0;if(a){if((a|0)<0){break d}f=pa(a);h=qa(f,b+c|0,a)+a|0}a=H[d>>2];if(a){H[d+4>>2]=a;oa(a)}H[d+8>>2]=h;H[d+4>>2]=h;H[d>>2]=f;b=1;break a}if(e){f=pa(e);ra(f,0,e)}e:{i=H[d+4>>2];b=H[d>>2];g=i-b|0;f:{if(g>>>0>>0){k=a-g|0;j=H[d+8>>2];if(k>>>0<=j-i>>>0){n=d,o=ra(i,0,k)+k|0,H[n+4>>2]=o;break f}if((a|0)<0){break e}i=j-b|0;j=i<<1;i=i>>>0>=1073741823?2147483647:a>>>0>>0?j:a;j=pa(i);ra(j+g|0,0,k);g=va(j,b,g);H[d+8>>2]=g+i;H[d+4>>2]=a+g;H[d>>2]=g;if(!b){break f}oa(b);break f}if(a>>>0>=g>>>0){break f}H[d+4>>2]=a+b}if(!l){b=1;break c}if(!e){b=0;a=0;while(1){if(!hc(c,I[c+84|0]?a:H[H[c+68>>2]+(a<<2)>>2],F[c+24|0],f)){break c}a=a+1|0;b=l>>>0<=a>>>0;if((a|0)!=(l|0)){continue}break}break c}i=e&252;g=e&3;b=0;j=e>>>0<4;e=0;while(1){if(!hc(c,I[c+84|0]?e:H[H[c+68>>2]+(e<<2)>>2],F[c+24|0],f)){break c}b=0;a=0;k=0;if(!j){while(1){F[H[d>>2]+h|0]=I[a+f|0];F[(H[d>>2]+h|0)+1|0]=I[(a|1)+f|0];F[(H[d>>2]+h|0)+2|0]=I[(a|2)+f|0];F[(H[d>>2]+h|0)+3|0]=I[(a|3)+f|0];a=a+4|0;h=h+4|0;k=k+4|0;if((i|0)!=(k|0)){continue}break}}if(g){while(1){F[H[d>>2]+h|0]=I[a+f|0];a=a+1|0;h=h+1|0;b=b+1|0;if((g|0)!=(b|0)){continue}break}}e=e+1|0;b=l>>>0<=e>>>0;if((e|0)!=(l|0)){continue}break}break b}sa();v()}sa();v()}if(!f){break a}}oa(f)}ca=m+16|0;return b&1}function qc(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;k=H[b+16>>2];h=H[c+4>>2]-k|0;e=H[c>>2]-k|0;H[c>>2]=e;f=h;H[c+4>>2]=f;l=H[b+16>>2];f=f>>31;g=(h^f)-f|0;f=e>>31;m=l>>>0>=g+((f^e)-f|0)>>>0;a:{if(m){f=h;break a}b:{c:{if((e|0)>=0){g=1;j=1;if((h|0)>=0){break b}i=1;g=-1;j=-1;if(e){break c}break b}i=-1;g=-1;j=-1;if((h|0)<=0){break b}}g=(h|0)<=0?-1:1;j=i}n=N(j,l);f=(e<<1)-n|0;i=(N(g,j)|0)>=0;e=N(g,l);f=((i?0-f|0:f)+e|0)/2|0;H[c+4>>2]=f;e=(h<<1)-e|0;e=((i?0-e|0:e)+n|0)/2|0;H[c>>2]=e}d:{e:{f:{g:{h:{i:{j:{if(e){if((e|0)<0){break j}if((f|0)>=0){break i}break f}if(f){break h}j=1;g=0;f=0;i=0;break d}j=1;if((f|0)>0){break g}i=(f|0)>0?3:0;g=f;f=e;break d}g=0-f|0;f=0-e|0;i=2;break e}if((f|0)<=0){break f}}f=0-f|0;g=e;i=3;break e}g=0-e|0;i=1}H[c>>2]=f;H[c+4>>2]=g;j=0}e=H[d>>2]+f|0;h=H[b+16>>2];k:{if((e|0)>(h|0)){e=e-H[b+4>>2]|0;break k}if((0-h|0)<=(e|0)){break k}e=H[b+4>>2]+e|0}c=H[d+4>>2]+g|0;l:{if((h|0)<(c|0)){c=c-H[b+4>>2]|0;break l}if((0-h|0)<=(c|0)){break l}c=H[b+4>>2]+c|0}m:{if(j){b=c;break m}b=c;n:{o:{p:{d=4-i|0;switch((d>>>0<4?d:0-i|0)-1|0){case 2:break n;case 1:break o;case 0:break p;default:break m}}b=0-e|0;e=c;break m}b=0-c|0;e=0-e|0;break m}b=e;e=0-c|0}q:{if(m){c=b;break q}r:{s:{if((e|0)>=0){c=1;f=1;if((b|0)>=0){break r}d=1;c=-1;f=-1;if(e){break s}break r}d=-1;c=-1;f=-1;if((b|0)<=0){break r}}c=(b|0)<=0?-1:1;f=d}d=e<<1;e=N(f,h);d=d-e|0;f=(N(c,f)|0)>=0;g=f?0-d|0:d;d=N(c,h);c=(g+d|0)/2|0;b=(b<<1)-d|0;e=(e+(f?0-b|0:b)|0)/2|0}b=a;H[b>>2]=e+k;H[b+4>>2]=c+k}function Cj(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;j=ca-32|0;ca=j;H[j+28>>2]=0;a:{b:{if(J[b+38>>1]<=513){c=H[b+20>>2];d=H[b+16>>2];e=d+4|0;c=e>>>0<4?c+1|0:c;h=H[b+12>>2];if(K[b+8>>2]>>0&(h|0)<=(c|0)|(c|0)>(h|0)){break a}d=d+H[b>>2]|0;f=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);H[b+16>>2]=e;H[b+20>>2]=c;break b}if(!Xa(1,j+28|0,b)){break a}f=H[j+28>>2]}if(!f){break a}c=H[H[a+48>>2]+64>>2];if(H[c+4>>2]-H[c>>2]>>2>>>0>>0){break a}Wa(a+76|0,f);c=j+8|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c:{if(!ta(c,b)){break c}h=1;while(1){d=1<>2]+(i>>>3&536870908)|0;e=e^h;if(e&1){d=H[g>>2]&(d^-1)}else{d=d|H[g>>2]}h=e^1;H[g>>2]=d;i=i+1|0;if((f|0)!=(i|0)){continue}break}c=H[b+8>>2];e=H[b+12>>2];g=e;e=H[b+20>>2];h=e;f=H[b+16>>2];d=f+4|0;e=d>>>0<4?e+1|0:e;i=d;if(d>>>0>c>>>0&(e|0)>=(g|0)|(e|0)>(g|0)){break c}l=H[b>>2];d=l+f|0;k=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);H[b+16>>2]=i;H[b+20>>2]=e;d=c;c=h;e=f+8|0;c=e>>>0<8?c+1|0:c;if(d>>>0>>0&(c|0)>=(g|0)|(c|0)>(g|0)){break c}d=i+l|0;d=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);H[b+16>>2]=e;H[b+20>>2]=c;if((d|0)<(k|0)){break c}H[a+16>>2]=d;H[a+12>>2]=k;c=(d>>31)-((k>>31)+(d>>>0>>0)|0)|0;b=d-k|0;if(!c&b>>>0>2147483646|c){break c}m=1;c=b+1|0;H[a+20>>2]=c;b=c>>>1|0;H[a+24>>2]=b;H[a+28>>2]=0-b;if(c&1){break c}H[a+24>>2]=b-1}}ca=j+32|0;return m|0}function lj(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;j=ca-32|0;ca=j;H[j+28>>2]=0;a:{b:{if(J[b+38>>1]<=513){c=H[b+20>>2];d=H[b+16>>2];e=d+4|0;c=e>>>0<4?c+1|0:c;h=H[b+12>>2];if(K[b+8>>2]>>0&(h|0)<=(c|0)|(c|0)>(h|0)){break a}d=d+H[b>>2]|0;f=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);H[b+16>>2]=e;H[b+20>>2]=c;break b}if(!Xa(1,j+28|0,b)){break a}f=H[j+28>>2]}if(!f){break a}c=H[a+48>>2];if(H[c+4>>2]-H[c>>2]>>2>>>0>>0){break a}Wa(a+76|0,f);c=j+8|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c:{if(!ta(c,b)){break c}h=1;while(1){d=1<>2]+(i>>>3&536870908)|0;e=e^h;if(e&1){d=H[g>>2]&(d^-1)}else{d=d|H[g>>2]}h=e^1;H[g>>2]=d;i=i+1|0;if((f|0)!=(i|0)){continue}break}c=H[b+8>>2];e=H[b+12>>2];g=e;e=H[b+20>>2];h=e;f=H[b+16>>2];d=f+4|0;e=d>>>0<4?e+1|0:e;i=d;if(d>>>0>c>>>0&(e|0)>=(g|0)|(e|0)>(g|0)){break c}l=H[b>>2];d=l+f|0;k=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);H[b+16>>2]=i;H[b+20>>2]=e;d=c;c=h;e=f+8|0;c=e>>>0<8?c+1|0:c;if(d>>>0>>0&(c|0)>=(g|0)|(c|0)>(g|0)){break c}d=i+l|0;d=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);H[b+16>>2]=e;H[b+20>>2]=c;if((d|0)<(k|0)){break c}H[a+16>>2]=d;H[a+12>>2]=k;c=(d>>31)-((k>>31)+(d>>>0>>0)|0)|0;b=d-k|0;if(!c&b>>>0>2147483646|c){break c}m=1;c=b+1|0;H[a+20>>2]=c;b=c>>>1|0;H[a+24>>2]=b;H[a+28>>2]=0-b;if(c&1){break c}H[a+24>>2]=b-1}}ca=j+32|0;return m|0}function cj(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;H[a+8>>2]=e;m=a+32|0;h=H[m>>2];g=H[a+36>>2]-h>>2;a:{if(g>>>0>>0){ya(m,e-g|0);f=H[a+8>>2];break a}f=e;if(f>>>0>=g>>>0){break a}H[a+36>>2]=h+(e<<2);f=e}g=e>>>0>1073741823?-1:e<<2;n=ra(pa(g),0,g);b:{if((f|0)<=0){break b}h=H[a+32>>2];while(1){f=i<<2;g=H[f+n>>2];j=H[a+16>>2];c:{if((g|0)>(j|0)){H[f+h>>2]=j;break c}f=f+h|0;j=H[a+12>>2];if((j|0)>(g|0)){H[f>>2]=j;break c}H[f>>2]=g}f=H[a+8>>2];i=i+1|0;if((f|0)>(i|0)){continue}break}if((f|0)<=0){break b}i=0;while(1){g=i<<2;f=g+c|0;g=H[b+g>>2]+H[g+h>>2]|0;H[f>>2]=g;d:{if((g|0)>H[a+16>>2]){g=g-H[a+20>>2]|0}else{if((g|0)>=H[a+12>>2]){break d}g=g+H[a+20>>2]|0}H[f>>2]=g}f=H[a+8>>2];i=i+1|0;if((f|0)>(i|0)){continue}break}}if(!((d|0)<=(e|0)|(f|0)<=0)){p=0-e<<2;g=e;while(1){e:{if((f|0)<=0){break e}l=g<<2;o=l+c|0;q=o+p|0;j=H[m>>2];i=0;while(1){f=i<<2;h=H[f+q>>2];k=H[a+16>>2];f:{if((h|0)>(k|0)){H[f+j>>2]=k;break f}f=f+j|0;k=H[a+12>>2];if((k|0)>(h|0)){H[f>>2]=k;break f}H[f>>2]=h}f=H[a+8>>2];i=i+1|0;if((f|0)>(i|0)){continue}break}i=0;if((f|0)<=0){break e}l=b+l|0;while(1){h=i<<2;f=h+o|0;h=H[h+l>>2]+H[h+j>>2]|0;H[f>>2]=h;g:{if((h|0)>H[a+16>>2]){h=h-H[a+20>>2]|0}else{if((h|0)>=H[a+12>>2]){break g}h=h+H[a+20>>2]|0}H[f>>2]=h}f=H[a+8>>2];i=i+1|0;if((f|0)>(i|0)){continue}break}}g=e+g|0;if((g|0)<(d|0)){continue}break}}oa(n);return 1}function De(a,b){var c=0,d=0,e=0,f=0,g=0;d=-1;f=-1;a:{if((b|0)==-1){break a}c=b+1|0;d=(c>>>0)%3|0?c:b-2|0;f=b-1|0;if((b>>>0)%3|0){break a}f=b+2|0}b:{c:{d:{e:{f:{g:{e=H[a+184>>2];switch(e|0){case 7:break d;case 3:break e;case 5:break f;case 0:case 1:break g;default:break b}}g=H[a+148>>2];c=-1;e=1;d=((d|0)!=-1?H[H[g>>2]+(d<<2)>>2]:c)<<2;c=H[a+156>>2];d=d+c|0;H[d>>2]=H[d>>2]+1;c=(((f|0)==-1?-1:H[H[g>>2]+(f<<2)>>2])<<2)+c|0;break c}g=H[a+148>>2];c=H[a+156>>2];e=c+(((b|0)==-1?-1:H[H[g>>2]+(b<<2)>>2])<<2)|0;H[e>>2]=H[e>>2]+1;d=(((d|0)==-1?-1:H[H[g>>2]+(d<<2)>>2])<<2)+c|0;H[d>>2]=H[d>>2]+1;e=2;c=(((f|0)==-1?-1:H[H[g>>2]+(f<<2)>>2])<<2)+c|0;break c}g=H[a+148>>2];c=H[a+156>>2];e=c+(((b|0)==-1?-1:H[H[g>>2]+(b<<2)>>2])<<2)|0;H[e>>2]=H[e>>2]+1;d=(((d|0)==-1?-1:H[H[g>>2]+(d<<2)>>2])<<2)+c|0;H[d>>2]=H[d>>2]+2;e=1;c=(((f|0)==-1?-1:H[H[g>>2]+(f<<2)>>2])<<2)+c|0;break c}g=H[a+148>>2];c=H[a+156>>2];e=c+(((b|0)==-1?-1:H[H[g>>2]+(b<<2)>>2])<<2)|0;H[e>>2]=H[e>>2]+2;d=(((d|0)==-1?-1:H[H[g>>2]+(d<<2)>>2])<<2)+c|0;H[d>>2]=H[d>>2]+2;e=2;c=(((f|0)==-1?-1:H[H[g>>2]+(f<<2)>>2])<<2)+c|0}H[c>>2]=H[c>>2]+e;e=H[a+184>>2]}h:{switch(e|0){case 0:case 5:f=H[a+156>>2];c=-1;i:{if((b|0)==-1){break i}d=b+1|0;b=(d>>>0)%3|0?d:b-2|0;c=-1;if((b|0)==-1){break i}c=H[H[H[a+148>>2]>>2]+(b<<2)>>2]}if(H[f+(c<<2)>>2]<=5){H[a+188>>2]=5;return}H[a+188>>2]=0;return;default:break h}}H[a+188>>2]=-1}function xg(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;j=H[b+80>>2];b=I[c+24|0];g=N(j,b);a:{if(!b){break a}h=b<<2;f=pa(h);a=f;k=b&7;if(k){while(1){H[a>>2]=-1073741824;a=a+4|0;e=e+1|0;if((k|0)!=(e|0)){continue}break}}if((b-1&1073741823)>>>0<7){break a}e=f+h|0;while(1){H[a+24>>2]=-1073741824;H[a+28>>2]=-1073741824;H[a+16>>2]=-1073741824;H[a+20>>2]=-1073741824;H[a+8>>2]=-1073741824;H[a+12>>2]=-1073741824;H[a>>2]=-1073741824;H[a+4>>2]=-1073741824;a=a+32|0;if((e|0)!=(a|0)){continue}break}}e=H[d>>2];a=H[d+4>>2]-e>>2;b:{if(a>>>0>>0){ya(d,g-a|0);break b}if(a>>>0<=g>>>0){break b}H[d+4>>2]=e+(g<<2)}c:{d:{e:{if(!j){i=1;break e}if(!b){a=0;while(1){if(!Va(c,I[c+84|0]?a:H[H[c+68>>2]+(a<<2)>>2],F[c+24|0],f)){break e}a=a+1|0;i=j>>>0<=a>>>0;if((a|0)!=(j|0)){continue}break}break e}n=b&252;k=b&3;o=b>>>0<4;e=0;b=0;while(1){if(!Va(c,I[c+84|0]?b:H[H[c+68>>2]+(b<<2)>>2],F[c+24|0],f)){break e}m=H[d>>2];i=0;a=0;l=0;if(!o){while(1){g=(e<<2)+m|0;h=a<<2;L[g>>2]=L[h+f>>2];L[g+4>>2]=L[(h|4)+f>>2];L[g+8>>2]=L[(h|8)+f>>2];L[g+12>>2]=L[(h|12)+f>>2];a=a+4|0;e=e+4|0;l=l+4|0;if((n|0)!=(l|0)){continue}break}}if(k){while(1){L[(e<<2)+m>>2]=L[(a<<2)+f>>2];a=a+1|0;e=e+1|0;i=i+1|0;if((k|0)!=(i|0)){continue}break}}b=b+1|0;i=j>>>0<=b>>>0;if((b|0)!=(j|0)){continue}break}break d}if(!f){break c}}oa(f)}return i|0}function mf(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;e=ca-16|0;ca=e;h=1;i=ea[H[H[a>>2]+24>>2]](a)|0;a:{if((i|0)<=0){break a}l=a+48|0;h=0;while(1){b:{c:{if(!H[(ea[H[H[a>>2]+28>>2]](a)|0)+40>>2]){break c}j=f<<2;g=H[j+H[a+36>>2]>>2];b=H[g+8>>2];k=rb(g);if(!k){break c}g=H[(ea[H[H[a>>2]+28>>2]](a)|0)+40>>2];H[e+12>>2]=H[b+56>>2];b=pa(32);H[e>>2]=b;H[e+4>>2]=24;H[e+8>>2]=-2147483616;c=I[1206]|I[1207]<<8|(I[1208]<<16|I[1209]<<24);d=I[1202]|I[1203]<<8|(I[1204]<<16|I[1205]<<24);F[b+16|0]=d;F[b+17|0]=d>>>8;F[b+18|0]=d>>>16;F[b+19|0]=d>>>24;F[b+20|0]=c;F[b+21|0]=c>>>8;F[b+22|0]=c>>>16;F[b+23|0]=c>>>24;c=I[1198]|I[1199]<<8|(I[1200]<<16|I[1201]<<24);d=I[1194]|I[1195]<<8|(I[1196]<<16|I[1197]<<24);F[b+8|0]=d;F[b+9|0]=d>>>8;F[b+10|0]=d>>>16;F[b+11|0]=d>>>24;F[b+12|0]=c;F[b+13|0]=c>>>8;F[b+14|0]=c>>>16;F[b+15|0]=c>>>24;c=I[1190]|I[1191]<<8|(I[1192]<<16|I[1193]<<24);d=I[1186]|I[1187]<<8|(I[1188]<<16|I[1189]<<24);F[b|0]=d;F[b+1|0]=d>>>8;F[b+2|0]=d>>>16;F[b+3|0]=d>>>24;F[b+4|0]=c;F[b+5|0]=c>>>8;F[b+6|0]=c>>>16;F[b+7|0]=c>>>24;F[b+24|0]=0;b=sd(g,e+12|0,e);if(F[e+11|0]<0){oa(H[e>>2])}if(!b){break c}oe(H[H[H[a+36>>2]+j>>2]+8>>2],k);break b}b=H[H[a+36>>2]+(f<<2)>>2];if(!(ea[H[H[b>>2]+24>>2]](b,l)|0)){break a}}f=f+1|0;h=(i|0)<=(f|0);if((f|0)!=(i|0)){continue}break}}ca=e+16|0;return h|0}function Ye(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;k=ca-16|0;ca=k;c=H[b+20>>2];d=H[b+16>>2];e=d+4|0;c=e>>>0<4?c+1|0:c;g=H[b+12>>2];a:{if(K[b+8>>2]>>0&(g|0)<=(c|0)|(c|0)>(g|0)){break a}d=d+H[b>>2]|0;h=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);H[b+16>>2]=e;H[b+20>>2]=c;if((h|0)<0){break a}Wa(a+76|0,h);c=k;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;b:{if(!ta(c,b)){break b}if(h){g=1;while(1){d=1<>2]+(i>>>3&536870908)|0;e=e^g;if(e&1){d=H[f>>2]&(d^-1)}else{d=d|H[f>>2]}g=e^1;H[f>>2]=d;i=i+1|0;if((h|0)!=(i|0)){continue}break}}i=0;c=H[b+8>>2];e=H[b+12>>2];f=e;e=H[b+20>>2];g=e;l=H[b+16>>2];d=l+4|0;e=d>>>0<4?e+1|0:e;h=d;if(d>>>0>c>>>0&(e|0)>=(f|0)|(e|0)>(f|0)){break b}m=H[b>>2];d=m+l|0;j=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);H[b+16>>2]=h;H[b+20>>2]=e;d=c;c=g;e=l+8|0;c=e>>>0<8?c+1|0:c;if(d>>>0>>0&(c|0)>=(f|0)|(c|0)>(f|0)){break b}d=h+m|0;d=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);H[b+16>>2]=e;H[b+20>>2]=c;if((d|0)<(j|0)){break b}H[a+16>>2]=d;H[a+12>>2]=j;c=(d>>31)-((j>>31)+(d>>>0>>0)|0)|0;b=d-j|0;if(!c&b>>>0>2147483646|c){break b}i=1;c=b+1|0;H[a+20>>2]=c;b=c>>>1|0;H[a+24>>2]=b;H[a+28>>2]=0-b;if(c&1){break b}H[a+24>>2]=b-1}}ca=k+16|0;return i|0}function rg(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;a=0;k=ca-16|0;ca=k;j=H[b+80>>2];e=I[c+24|0];b=N(j,e);a:{b:{c:{d:{f=H[c+28>>2];if(!(!I[c+84|0]|(f|0)!=5&(f|0)!=6)){e=H[c+48>>2];c=H[H[c>>2]>>2];H[k+8>>2]=0;H[k>>2]=0;H[k+4>>2]=0;if(b){if((b|0)<0){break d}b=b<<2;a=pa(b);g=qa(a,c+e|0,b)+b|0}b=H[d>>2];if(b){H[d+4>>2]=b;oa(b)}H[d+8>>2]=g;H[d+4>>2]=g;H[d>>2]=a;h=1;break a}if(e){f=e<<2;a=pa(f);ra(a,0,f)}i=H[d>>2];f=H[d+4>>2]-i>>2;e:{if(f>>>0>>0){ya(d,b-f|0);break e}if(b>>>0>=f>>>0){break e}H[d+4>>2]=i+(b<<2)}if(!j){h=1;break c}if(!e){b=0;while(1){if(!dc(c,I[c+84|0]?b:H[H[c+68>>2]+(b<<2)>>2],F[c+24|0],a)){break c}b=b+1|0;h=j>>>0<=b>>>0;if((b|0)!=(j|0)){continue}break}break c}o=e&252;m=e&3;p=e>>>0<4;e=0;while(1){if(!dc(c,I[c+84|0]?e:H[H[c+68>>2]+(e<<2)>>2],F[c+24|0],a)){break c}n=H[d>>2];l=0;b=0;h=0;if(!p){while(1){f=(g<<2)+n|0;i=b<<2;H[f>>2]=H[i+a>>2];H[f+4>>2]=H[(i|4)+a>>2];H[f+8>>2]=H[(i|8)+a>>2];H[f+12>>2]=H[(i|12)+a>>2];b=b+4|0;g=g+4|0;h=h+4|0;if((o|0)!=(h|0)){continue}break}}if(m){while(1){H[(g<<2)+n>>2]=H[(b<<2)+a>>2];b=b+1|0;g=g+1|0;l=l+1|0;if((l|0)!=(m|0)){continue}break}}e=e+1|0;h=j>>>0<=e>>>0;if((e|0)!=(j|0)){continue}break}break b}sa();v()}if(!a){break a}}oa(a)}ca=k+16|0;return h|0}function ge(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;a=0;k=ca-16|0;ca=k;j=H[b+80>>2];e=I[c+24|0];b=N(j,e);a:{b:{c:{d:{f=H[c+28>>2];if(!(!I[c+84|0]|(f|0)!=5&(f|0)!=6)){e=H[c+48>>2];c=H[H[c>>2]>>2];H[k+8>>2]=0;H[k>>2]=0;H[k+4>>2]=0;if(b){if((b|0)<0){break d}b=b<<2;a=pa(b);g=qa(a,c+e|0,b)+b|0}b=H[d>>2];if(b){H[d+4>>2]=b;oa(b)}H[d+8>>2]=g;H[d+4>>2]=g;H[d>>2]=a;h=1;break a}if(e){f=e<<2;a=pa(f);ra(a,0,f)}i=H[d>>2];f=H[d+4>>2]-i>>2;e:{if(f>>>0>>0){ya(d,b-f|0);break e}if(b>>>0>=f>>>0){break e}H[d+4>>2]=i+(b<<2)}if(!j){h=1;break c}if(!e){b=0;while(1){if(!ec(c,I[c+84|0]?b:H[H[c+68>>2]+(b<<2)>>2],F[c+24|0],a)){break c}b=b+1|0;h=j>>>0<=b>>>0;if((b|0)!=(j|0)){continue}break}break c}o=e&252;m=e&3;p=e>>>0<4;e=0;while(1){if(!ec(c,I[c+84|0]?e:H[H[c+68>>2]+(e<<2)>>2],F[c+24|0],a)){break c}n=H[d>>2];l=0;b=0;h=0;if(!p){while(1){f=(g<<2)+n|0;i=b<<2;H[f>>2]=H[i+a>>2];H[f+4>>2]=H[(i|4)+a>>2];H[f+8>>2]=H[(i|8)+a>>2];H[f+12>>2]=H[(i|12)+a>>2];b=b+4|0;g=g+4|0;h=h+4|0;if((o|0)!=(h|0)){continue}break}}if(m){while(1){H[(g<<2)+n>>2]=H[(b<<2)+a>>2];b=b+1|0;g=g+1|0;l=l+1|0;if((l|0)!=(m|0)){continue}break}}e=e+1|0;h=j>>>0<=e>>>0;if((e|0)!=(j|0)){continue}break}break b}sa();v()}if(!a){break a}}oa(a)}ca=k+16|0;return h|0}function tg(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;a=0;k=ca-16|0;ca=k;j=H[b+80>>2];e=I[c+24|0];b=N(j,e);a:{b:{c:{d:{f=H[c+28>>2];if(!(!I[c+84|0]|(f|0)!=3&(f|0)!=4)){e=H[c+48>>2];c=H[H[c>>2]>>2];H[k+8>>2]=0;H[k>>2]=0;H[k+4>>2]=0;if(b){if((b|0)<0){break d}b=b<<1;a=pa(b);g=qa(a,c+e|0,b)+b|0}b=H[d>>2];if(b){H[d+4>>2]=b;oa(b)}H[d+8>>2]=g;H[d+4>>2]=g;H[d>>2]=a;h=1;break a}if(e){f=e<<1;a=pa(f);ra(a,0,f)}i=H[d>>2];f=H[d+4>>2]-i>>1;e:{if(f>>>0>>0){qe(d,b-f|0);break e}if(b>>>0>=f>>>0){break e}H[d+4>>2]=i+(b<<1)}if(!j){h=1;break c}if(!e){b=0;while(1){if(!gc(c,I[c+84|0]?b:H[H[c+68>>2]+(b<<2)>>2],F[c+24|0],a)){break c}b=b+1|0;h=j>>>0<=b>>>0;if((b|0)!=(j|0)){continue}break}break c}o=e&252;m=e&3;p=e>>>0<4;e=0;while(1){if(!gc(c,I[c+84|0]?e:H[H[c+68>>2]+(e<<2)>>2],F[c+24|0],a)){break c}n=H[d>>2];l=0;b=0;h=0;if(!p){while(1){f=(g<<1)+n|0;i=b<<1;G[f>>1]=J[i+a>>1];G[f+2>>1]=J[(i|2)+a>>1];G[f+4>>1]=J[(i|4)+a>>1];G[f+6>>1]=J[(i|6)+a>>1];b=b+4|0;g=g+4|0;h=h+4|0;if((o|0)!=(h|0)){continue}break}}if(m){while(1){G[(g<<1)+n>>1]=J[(b<<1)+a>>1];b=b+1|0;g=g+1|0;l=l+1|0;if((l|0)!=(m|0)){continue}break}}e=e+1|0;h=j>>>0<=e>>>0;if((e|0)!=(j|0)){continue}break}break b}sa();v()}if(!a){break a}}oa(a)}ca=k+16|0;return h|0}function sg(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;a=0;k=ca-16|0;ca=k;j=H[b+80>>2];e=I[c+24|0];b=N(j,e);a:{b:{c:{d:{f=H[c+28>>2];if(!(!I[c+84|0]|(f|0)!=3&(f|0)!=4)){e=H[c+48>>2];c=H[H[c>>2]>>2];H[k+8>>2]=0;H[k>>2]=0;H[k+4>>2]=0;if(b){if((b|0)<0){break d}b=b<<1;a=pa(b);g=qa(a,c+e|0,b)+b|0}b=H[d>>2];if(b){H[d+4>>2]=b;oa(b)}H[d+8>>2]=g;H[d+4>>2]=g;H[d>>2]=a;h=1;break a}if(e){f=e<<1;a=pa(f);ra(a,0,f)}i=H[d>>2];f=H[d+4>>2]-i>>1;e:{if(f>>>0>>0){qe(d,b-f|0);break e}if(b>>>0>=f>>>0){break e}H[d+4>>2]=i+(b<<1)}if(!j){h=1;break c}if(!e){b=0;while(1){if(!fc(c,I[c+84|0]?b:H[H[c+68>>2]+(b<<2)>>2],F[c+24|0],a)){break c}b=b+1|0;h=j>>>0<=b>>>0;if((b|0)!=(j|0)){continue}break}break c}o=e&252;m=e&3;p=e>>>0<4;e=0;while(1){if(!fc(c,I[c+84|0]?e:H[H[c+68>>2]+(e<<2)>>2],F[c+24|0],a)){break c}n=H[d>>2];l=0;b=0;h=0;if(!p){while(1){f=(g<<1)+n|0;i=b<<1;G[f>>1]=J[i+a>>1];G[f+2>>1]=J[(i|2)+a>>1];G[f+4>>1]=J[(i|4)+a>>1];G[f+6>>1]=J[(i|6)+a>>1];b=b+4|0;g=g+4|0;h=h+4|0;if((o|0)!=(h|0)){continue}break}}if(m){while(1){G[(g<<1)+n>>1]=J[(b<<1)+a>>1];b=b+1|0;g=g+1|0;l=l+1|0;if((l|0)!=(m|0)){continue}break}}e=e+1|0;h=j>>>0<=e>>>0;if((e|0)!=(j|0)){continue}break}break b}sa();v()}if(!a){break a}}oa(a)}ca=k+16|0;return h|0}function Ce(a,b){var c=0,d=0,e=0,f=0,g=0;f=-1;d=-1;a:{if((b|0)==-1){break a}d=b+1|0;f=(d>>>0)%3|0?d:b-2|0;d=b-1|0;if((b>>>0)%3|0){break a}d=b+2|0}b:{c:{d:{switch(H[a+168>>2]){case 0:case 1:e=H[a+148>>2];c=1;b=H[a+156>>2];g=b+(((f|0)==-1?-1:H[H[e>>2]+(f<<2)>>2])<<2)|0;H[g>>2]=H[g>>2]+1;b=(((d|0)==-1?-1:H[H[e>>2]+(d<<2)>>2])<<2)+b|0;break c;case 5:e=H[a+148>>2];c=-1;c=((b|0)!=-1?H[H[e>>2]+(b<<2)>>2]:c)<<2;b=H[a+156>>2];c=c+b|0;H[c>>2]=H[c>>2]+1;c=(((f|0)==-1?-1:H[H[e>>2]+(f<<2)>>2])<<2)+b|0;H[c>>2]=H[c>>2]+1;c=2;b=(((d|0)==-1?-1:H[H[e>>2]+(d<<2)>>2])<<2)+b|0;break c;case 3:e=H[a+148>>2];c=-1;c=((b|0)!=-1?H[H[e>>2]+(b<<2)>>2]:c)<<2;b=H[a+156>>2];c=c+b|0;H[c>>2]=H[c>>2]+1;c=(((f|0)==-1?-1:H[H[e>>2]+(f<<2)>>2])<<2)+b|0;H[c>>2]=H[c>>2]+2;c=1;b=(((d|0)==-1?-1:H[H[e>>2]+(d<<2)>>2])<<2)+b|0;break c;case 7:break d;default:break b}}e=H[a+148>>2];c=-1;c=((b|0)!=-1?H[H[e>>2]+(b<<2)>>2]:c)<<2;b=H[a+156>>2];c=c+b|0;H[c>>2]=H[c>>2]+2;c=(((f|0)==-1?-1:H[H[e>>2]+(f<<2)>>2])<<2)+b|0;H[c>>2]=H[c>>2]+2;c=2;b=(((d|0)==-1?-1:H[H[e>>2]+(d<<2)>>2])<<2)+b|0}H[b>>2]=H[b>>2]+c}c=a;b=H[H[a+156>>2]+(((f|0)==-1?-1:H[H[H[a+148>>2]>>2]+(f<<2)>>2])<<2)>>2];d=H[a+180>>2];a=H[a+176>>2];H[c+172>>2]=(a|0)<=(b|0)?((b|0)<(d|0)?b:d)-a|0:0}function Ac(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;H[a+16>>2]=0;H[a+20>>2]=0;H[a+8>>2]=0;H[a>>2]=0;H[a+4>>2]=0;H[a+24>>2]=0;f=H[b+4>>2];g=H[b>>2];e=f-g|0;c=(e|0)/20|0;a:{if((f|0)==(g|0)){break a}b:{if(c>>>0<214748365){f=pa(e);H[a+20>>2]=f;H[a+16>>2]=f;H[a+24>>2]=f+N(c,20);c=H[b>>2];g=H[b+4>>2];if((c|0)==(g|0)){break a}b=f;while(1){e=H[c+4>>2];H[b>>2]=H[c>>2];H[b+4>>2]=e;H[b+16>>2]=H[c+16>>2];e=H[c+12>>2];H[b+8>>2]=H[c+8>>2];H[b+12>>2]=e;b=b+20|0;c=c+20|0;if((g|0)!=(c|0)){continue}break}g=0;H[a+28>>2]=0;H[a+20>>2]=b;if((b|0)!=(f|0)){b=(b-f|0)/20|0;e=b>>>0<=1?1:b;h=e&3;b=0;c=0;if(e-1>>>0>=3){i=e&-4;e=0;while(1){d=f+N(b,20)|0;d=N(H[d+16>>2],H[d+12>>2]);c=c>>>0>d>>>0?c:d;d=f+N(b|1,20)|0;d=N(H[d+16>>2],H[d+12>>2]);c=c>>>0>d>>>0?c:d;d=f+N(b|2,20)|0;d=N(H[d+16>>2],H[d+12>>2]);c=c>>>0>d>>>0?c:d;d=f+N(b|3,20)|0;d=N(H[d+16>>2],H[d+12>>2]);c=c>>>0>d>>>0?c:d;b=b+4|0;e=e+4|0;if((i|0)!=(e|0)){continue}break}}if(h){while(1){e=f+N(b,20)|0;e=N(H[e+16>>2],H[e+12>>2]);c=c>>>0>e>>>0?c:e;b=b+1|0;g=g+1|0;if((h|0)!=(g|0)){continue}break}}if(!c){H[a+12>>2]=0;return a}if((c|0)<0){break b}g=pa(c);b=ra(g,0,c);f=b+c|0;H[a+8>>2]=f;H[a+4>>2]=f;H[a>>2]=b}H[a+12>>2]=g;return a}sa();v()}sa();v()}H[a+28>>2]=0;H[a+12>>2]=0;return a}function Dh(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;a:{b=H[a+32>>2];f=H[b+8>>2];h=H[b+12>>2];g=H[b+20>>2];c=H[b+16>>2];e=0;b:{if((h|0)<=(g|0)&c>>>0>=f>>>0|(g|0)>(h|0)){break b}f=I[H[b>>2]+c|0];e=b;b=g;c=c+1|0;b=c?b:b+1|0;H[e+16>>2]=c;H[e+20>>2]=b;c:{if(!f){break c}while(1){if(ea[H[H[a>>2]+16>>2]](a,d)|0){d=d+1|0;if((f|0)!=(d|0)){continue}break c}break}return 0}d=H[a+8>>2];b=H[a+12>>2];if((d|0)!=(b|0)){while(1){c=H[d>>2];if(!(ea[H[H[c>>2]+8>>2]](c,a,H[a+4>>2])|0)){break a}d=d+4|0;if((b|0)!=(d|0)){continue}break}}d:{if(!f){break d}d=0;while(1){b=H[H[a+8>>2]+(d<<2)>>2];if(!(ea[H[H[b>>2]+12>>2]](b,H[a+32>>2])|0)){break a}d=d+1|0;if((f|0)!=(d|0)){continue}break}if(!f){break d}i=a+20|0;b=0;while(1){d=0;j=b<<2;c=H[j+H[a+8>>2]>>2];k=ea[H[H[c>>2]+24>>2]](c)|0;if((k|0)>0){while(1){c=H[H[a+8>>2]+j>>2];c=ea[H[H[c>>2]+20>>2]](c,d)|0;e=H[a+20>>2];g=H[a+24>>2]-e>>2;e:{if(c>>>0>>0){break e}h=c+1|0;if(h>>>0>g>>>0){ya(i,h-g|0);e=H[i>>2];break e}if(g>>>0<=h>>>0){break e}H[a+24>>2]=(h<<2)+e}H[(c<<2)+e>>2]=b;d=d+1|0;if((k|0)!=(d|0)){continue}break}}b=b+1|0;if((f|0)!=(b|0)){continue}break}}e=0;if(!(ea[H[H[a>>2]+28>>2]](a)|0)){break b}e=ea[H[H[a>>2]+32>>2]](a)|0}return e|0}return 0}function ta(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;i=ca-16|0;ca=i;f=H[b+20>>2];d=H[b+12>>2];c=H[b+16>>2];a:{if((f|0)>=(d|0)&c>>>0>=K[b+8>>2]|(d|0)<(f|0)){break a}F[a+12|0]=I[c+H[b>>2]|0];c=H[b+20>>2];g=c;f=H[b+16>>2];e=f+1|0;c=e?c:c+1|0;H[b+16>>2]=e;H[b+20>>2]=c;b:{if(J[b+38>>1]<=513){d=H[b+8>>2];c=H[b+12>>2];h=c;c=g;f=f+5|0;c=f>>>0<5?c+1|0:c;if(d>>>0>>0&(c|0)>=(h|0)|(c|0)>(h|0)){break a}e=e+H[b>>2]|0;e=I[e|0]|I[e+1|0]<<8|(I[e+2|0]<<16|I[e+3|0]<<24);H[b+16>>2]=f;H[b+20>>2]=c;break b}if(!Qe(1,i+12|0,b)){break a}f=H[b+16>>2];c=H[b+20>>2];d=H[b+8>>2];h=H[b+12>>2];e=H[i+12>>2]}g=d-f|0;d=h-(c+(d>>>0>>0)|0)|0;if((d|0)<=0&e>>>0>g>>>0|(d|0)<0|(e|0)<=0){break a}j=H[b>>2]+f|0;H[a>>2]=j;c:{d:{h=e-1|0;g=h+j|0;d=I[g|0];e:{if(d>>>0<=63){H[a+4>>2]=h;g=I[g|0]&63;break e}f:{switch((d>>>6|0)-1|0){case 1:break d;case 0:break f;default:break a}}if(e>>>0<2){break a}d=e-2|0;H[a+4>>2]=d;d=d+j|0;g=I[d+1|0]<<8&16128|I[d|0]}H[a+8>>2]=g+4096;break c}if(e>>>0<3){break a}d=e-3|0;H[a+4>>2]=d;g=a;a=d+j|0;a=I[a+1|0]<<8|I[a+2|0]<<16&4128768|I[a|0];H[g+8>>2]=a+4096;if(a>>>0>1044479){break a}}a=e+f|0;c=a>>>0>>0?c+1|0:c;H[b+16>>2]=a;H[b+20>>2]=c;k=1}ca=i+16|0;return k}function Wf(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;Xd(a,b,c);c=H[a+84>>2];d=H[a+88>>2]-c>>2;a:{if((d|0)>(b|0)){break a}b=b+1|0;if(b>>>0>d>>>0){b:{d=b-d|0;e=H[a+92>>2];c=H[a+88>>2];if(d>>>0<=e-c>>2>>>0){c:{if(!d){break c}b=c;e=d&7;if(e){while(1){H[b>>2]=1;b=b+4|0;f=f+1|0;if((e|0)!=(f|0)){continue}break}}c=(d<<2)+c|0;if((d-1&1073741823)>>>0<7){break c}while(1){H[b+24>>2]=1;H[b+28>>2]=1;H[b+16>>2]=1;H[b+20>>2]=1;H[b+8>>2]=1;H[b+12>>2]=1;H[b>>2]=1;H[b+4>>2]=1;b=b+32|0;if((c|0)!=(b|0)){continue}break}}H[a+88>>2]=c;break b}d:{b=c;c=H[a+84>>2];i=b-c|0;g=i>>2;b=g+d|0;if(b>>>0<1073741824){e=e-c|0;h=e>>>1|0;e=e>>>0>=2147483644?1073741823:b>>>0>>0?h:b;if(e){if(e>>>0>=1073741824){break d}j=pa(e<<2)}g=(g<<2)+j|0;b=g;h=d&7;if(h){while(1){H[b>>2]=1;b=b+4|0;f=f+1|0;if((h|0)!=(f|0)){continue}break}}f=g+(d<<2)|0;if((d-1&1073741823)>>>0>=7){while(1){H[b+24>>2]=1;H[b+28>>2]=1;H[b+16>>2]=1;H[b+20>>2]=1;H[b+8>>2]=1;H[b+12>>2]=1;H[b>>2]=1;H[b+4>>2]=1;b=b+32|0;if((f|0)!=(b|0)){continue}break}}b=va(j,c,i);H[a+88>>2]=f;H[a+84>>2]=b;H[a+92>>2]=b+(e<<2);if(c){oa(c)}break b}sa();v()}wa();v()}return}if(b>>>0>=d>>>0){break a}H[a+88>>2]=c+(b<<2)}}function qb(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;d=H[a+8>>2];e=H[a+4>>2];if(d-e>>2>>>0>=b>>>0){a:{if(!b){break a}d=e;g=b&7;if(g){while(1){H[d>>2]=H[c>>2];d=d+4|0;f=f+1|0;if((g|0)!=(f|0)){continue}break}}e=(b<<2)+e|0;if((b-1&1073741823)>>>0<7){break a}while(1){H[d>>2]=H[c>>2];H[d+4>>2]=H[c>>2];H[d+8>>2]=H[c>>2];H[d+12>>2]=H[c>>2];H[d+16>>2]=H[c>>2];H[d+20>>2]=H[c>>2];H[d+24>>2]=H[c>>2];H[d+28>>2]=H[c>>2];d=d+32|0;if((e|0)!=(d|0)){continue}break}}H[a+4>>2]=e;return}b:{i=H[a>>2];f=e-i>>2;h=f+b|0;if(h>>>0<1073741824){j=d-i|0;d=j>>>1|0;h=j>>>0>=2147483644?1073741823:d>>>0>h>>>0?d:h;if(h){if(h>>>0>=1073741824){break b}k=pa(h<<2)}f=(f<<2)+k|0;d=f;j=b&7;if(j){while(1){H[d>>2]=H[c>>2];d=d+4|0;g=g+1|0;if((j|0)!=(g|0)){continue}break}}g=(b<<2)+f|0;if((b-1&1073741823)>>>0>=7){while(1){H[d>>2]=H[c>>2];H[d+4>>2]=H[c>>2];H[d+8>>2]=H[c>>2];H[d+12>>2]=H[c>>2];H[d+16>>2]=H[c>>2];H[d+20>>2]=H[c>>2];H[d+24>>2]=H[c>>2];H[d+28>>2]=H[c>>2];d=d+32|0;if((g|0)!=(d|0)){continue}break}}if((e|0)!=(i|0)){while(1){f=f-4|0;e=e-4|0;H[f>>2]=H[e>>2];if((e|0)!=(i|0)){continue}break}}H[a+8>>2]=(h<<2)+k;H[a+4>>2]=g;H[a>>2]=f;if(i){oa(i)}return}sa();v()}wa();v()}function Kc(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;d=H[a+8>>2];e=H[a>>2];if(d-e>>2>>>0>=b>>>0){f=H[a+4>>2];h=f-e>>2;i=b>>>0>h>>>0?h:b;a:{if(!i){break a}d=e;g=i;j=g&7;if(j){while(1){H[d>>2]=H[c>>2];g=g-1|0;d=d+4|0;k=k+1|0;if((k|0)!=(j|0)){continue}break}}if(i>>>0<8){break a}while(1){H[d>>2]=H[c>>2];H[d+4>>2]=H[c>>2];H[d+8>>2]=H[c>>2];H[d+12>>2]=H[c>>2];H[d+16>>2]=H[c>>2];H[d+20>>2]=H[c>>2];H[d+24>>2]=H[c>>2];H[d+28>>2]=H[c>>2];d=d+32|0;g=g-8|0;if(g){continue}break}}if(b>>>0>h>>>0){b=(b-h<<2)+f|0;while(1){H[f>>2]=H[c>>2];f=f+4|0;if((b|0)!=(f|0)){continue}break}H[a+4>>2]=b;return}H[a+4>>2]=e+(b<<2);return}if(e){H[a+4>>2]=e;oa(e);H[a+8>>2]=0;H[a>>2]=0;H[a+4>>2]=0;d=0}b:{if(b>>>0>=1073741824){break b}e=d>>>1|0;d=d>>>0>=2147483644?1073741823:b>>>0>>0?e:b;if(d>>>0>=1073741824){break b}d=d<<2;e=pa(d);H[a>>2]=e;H[a+8>>2]=d+e;c=H[c>>2];d=e;g=b&7;if(g){while(1){H[d>>2]=c;d=d+4|0;f=f+1|0;if((g|0)!=(f|0)){continue}break}}e=e+(b<<2)|0;if((b-1&1073741823)>>>0>=7){while(1){H[d+28>>2]=c;H[d+24>>2]=c;H[d+20>>2]=c;H[d+16>>2]=c;H[d+12>>2]=c;H[d+8>>2]=c;H[d+4>>2]=c;H[d>>2]=c;d=d+32|0;if((e|0)!=(d|0)){continue}break}}H[a+4>>2]=e;return}sa();v()}function Me(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;h=ca-16|0;ca=h;a:{b:{if(J[b+38>>1]<=511){e=H[b+8>>2];c=H[b+12>>2];i=c;f=H[b+20>>2];d=H[b+16>>2];g=d+8|0;f=g>>>0<8?f+1|0:f;if(e>>>0>>0&(c|0)<=(f|0)|(c|0)<(f|0)){break a}d=d+H[b>>2]|0;c=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);d=I[d+4|0]|I[d+5|0]<<8|(I[d+6|0]<<16|I[d+7|0]<<24);H[b+16>>2]=g;H[b+20>>2]=f;break b}if(!gb(1,h+8|0,b)){break a}g=H[b+16>>2];f=H[b+20>>2];e=H[b+8>>2];i=H[b+12>>2];c=H[h+8>>2];d=H[h+12>>2]}j=e-g|0;e=i-(f+(e>>>0>>0)|0)|0;if((e|0)==(d|0)&c>>>0>j>>>0|d>>>0>e>>>0){break a}e=d+f|0;f=c+g|0;e=f>>>0>>0?e+1|0:e;H[b+16>>2]=f;H[b+20>>2]=e;if((c|0)<=0){break a}b=H[b>>2]+g|0;H[a+40>>2]=b;g=c-1|0;e=b+g|0;f=I[e|0];c:{if(f>>>0<=63){H[a+44>>2]=g;b=I[e|0]&63;break c}d:{switch((f>>>6|0)-1|0){case 0:if(c>>>0<2){break a}c=c-2|0;H[a+44>>2]=c;b=b+c|0;b=I[b+1|0]<<8&16128|I[b|0];break c;case 1:if(c>>>0<3){break a}c=c-3|0;H[a+44>>2]=c;b=b+c|0;b=I[b+1|0]<<8|I[b+2|0]<<16&4128768|I[b|0];break c;default:break d}}c=c-4|0;H[a+44>>2]=c;b=b+c|0;b=(I[b|0]|I[b+1|0]<<8|(I[b+2|0]<<16|I[b+3|0]<<24))&1073741823}H[a+48>>2]=b+16384;k=b>>>0<4177920}ca=h+16|0;return k}function Ua(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;f=(c>>>0)/3|0;j=H[(H[H[a+8>>2]+96>>2]+N(f,12)|0)+(c-N(f,3)<<2)>>2];a:{h=H[H[a+12>>2]+4>>2];e=H[h+4>>2];if((e|0)!=H[h+8>>2]){H[e>>2]=j;H[h+4>>2]=e+4;break a}b:{i=H[h>>2];f=e-i|0;g=f>>2;d=g+1|0;if(d>>>0<1073741824){k=g<<2;g=f>>>1|0;g=f>>>0>=2147483644?1073741823:d>>>0>>0?g:d;if(g){if(g>>>0>=1073741824){break b}f=pa(g<<2)}else{f=0}d=k+f|0;H[d>>2]=j;j=d+4|0;if((e|0)!=(i|0)){while(1){d=d-4|0;e=e-4|0;H[d>>2]=H[e>>2];if((e|0)!=(i|0)){continue}break}}H[h+8>>2]=f+(g<<2);H[h+4>>2]=j;H[h>>2]=d;if(i){oa(i)}break a}sa();v()}wa();v()}c:{d:{h=H[a+4>>2];e=H[h+4>>2];e:{if((e|0)!=H[h+8>>2]){H[e>>2]=c;H[h+4>>2]=e+4;break e}i=H[h>>2];f=e-i|0;j=f>>2;d=j+1|0;if(d>>>0>=1073741824){break d}g=f>>>1|0;g=f>>>0>=2147483644?1073741823:d>>>0>>0?g:d;if(g){if(g>>>0>=1073741824){break c}f=pa(g<<2)}else{f=0}d=f+(j<<2)|0;H[d>>2]=c;c=d+4|0;if((e|0)!=(i|0)){while(1){d=d-4|0;e=e-4|0;H[d>>2]=H[e>>2];if((e|0)!=(i|0)){continue}break}}H[h+8>>2]=f+(g<<2);H[h+4>>2]=c;H[h>>2]=d;if(!i){break e}oa(i)}a=H[a+4>>2];H[H[a+12>>2]+(b<<2)>>2]=H[a+24>>2];H[a+24>>2]=H[a+24>>2]+1;return}sa();v()}wa();v()}function Wb(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0;h=d-c|0;if((h|0)<=0){return}a:{e=H[a+8>>2];i=H[a+4>>2];if((e-i|0)>=(h|0)){j=i-b|0;if((j|0)>=(h|0)){f=i;g=d;break a}f=i;g=c+j|0;if((g|0)!=(d|0)){e=g;while(1){F[f|0]=I[e|0];f=f+1|0;e=e+1|0;if((e|0)!=(d|0)){continue}break}}H[a+4>>2]=f;if((j|0)>0){break a}return}k=H[a>>2];g=(i-k|0)+h|0;if((g|0)>=0){j=b-k|0;f=e-k|0;e=f<<1;f=f>>>0>=1073741823?2147483647:e>>>0>g>>>0?e:g;if(f){e=pa(f)}else{e=0}g=j+e|0;if((c|0)!=(d|0)){g=qa(g,c,h)+h|0}d=va(e,k,j);c=i-b|0;b=va(g,b,c);H[a+8>>2]=e+f;H[a+4>>2]=b+c;H[a>>2]=d;if(k){oa(k)}return}sa();v()}e=f;d=e-h|0;if(i>>>0>d>>>0){while(1){F[e|0]=I[d|0];e=e+1|0;d=d+1|0;if(i>>>0>d>>>0){continue}break}}H[a+4>>2]=e;a=b+h|0;if((a|0)!=(f|0)){a=f-a|0;va(f-a|0,b,a)}if((c|0)==(g|0)){return}f=(c^-1)+g|0;a=g-c&7;b:{if(!a){e=b;break b}d=0;e=b;while(1){F[e|0]=I[c|0];e=e+1|0;c=c+1|0;d=d+1|0;if((a|0)!=(d|0)){continue}break}}if(f>>>0<7){return}while(1){F[e|0]=I[c|0];F[e+1|0]=I[c+1|0];F[e+2|0]=I[c+2|0];F[e+3|0]=I[c+3|0];F[e+4|0]=I[c+4|0];F[e+5|0]=I[c+5|0];F[e+6|0]=I[c+6|0];F[e+7|0]=I[c+7|0];e=e+8|0;c=c+8|0;if((g|0)!=(c|0)){continue}break}}function qa(a,b,c){var d=0,e=0,f=0;if(c>>>0>=512){ba(a|0,b|0,c|0);return a}e=a+c|0;a:{if(!((a^b)&3)){b:{if(!(a&3)){c=a;break b}if(!c){c=a;break b}c=a;while(1){F[c|0]=I[b|0];b=b+1|0;c=c+1|0;if(!(c&3)){break b}if(c>>>0>>0){continue}break}}d=e&-4;c:{if(d>>>0<64){break c}f=d+-64|0;if(f>>>0>>0){break c}while(1){H[c>>2]=H[b>>2];H[c+4>>2]=H[b+4>>2];H[c+8>>2]=H[b+8>>2];H[c+12>>2]=H[b+12>>2];H[c+16>>2]=H[b+16>>2];H[c+20>>2]=H[b+20>>2];H[c+24>>2]=H[b+24>>2];H[c+28>>2]=H[b+28>>2];H[c+32>>2]=H[b+32>>2];H[c+36>>2]=H[b+36>>2];H[c+40>>2]=H[b+40>>2];H[c+44>>2]=H[b+44>>2];H[c+48>>2]=H[b+48>>2];H[c+52>>2]=H[b+52>>2];H[c+56>>2]=H[b+56>>2];H[c+60>>2]=H[b+60>>2];b=b- -64|0;c=c- -64|0;if(f>>>0>=c>>>0){continue}break}}if(c>>>0>=d>>>0){break a}while(1){H[c>>2]=H[b>>2];b=b+4|0;c=c+4|0;if(d>>>0>c>>>0){continue}break}break a}if(e>>>0<4){c=a;break a}d=e-4|0;if(d>>>0>>0){c=a;break a}c=a;while(1){F[c|0]=I[b|0];F[c+1|0]=I[b+1|0];F[c+2|0]=I[b+2|0];F[c+3|0]=I[b+3|0];b=b+4|0;c=c+4|0;if(d>>>0>=c>>>0){continue}break}}if(c>>>0>>0){while(1){F[c|0]=I[b|0];b=b+1|0;c=c+1|0;if((e|0)!=(c|0)){continue}break}}return a}function ub(a,b){var c=0,d=0,e=0,f=0,g=0;d=ca-16|0;ca=d;H[a+12>>2]=b;H[a+8>>2]=0;H[a>>2]=0;H[a+4>>2]=0;c=a+16|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;H[a+32>>2]=0;H[a+36>>2]=0;H[a+48>>2]=0;H[a+40>>2]=0;H[a+44>>2]=0;H[a+52>>2]=0;H[a+56>>2]=0;H[a+68>>2]=0;H[a+60>>2]=0;H[a+64>>2]=0;H[a+72>>2]=0;H[a+76>>2]=0;H[a+88>>2]=0;H[a+80>>2]=0;H[a+84>>2]=0;H[a+100>>2]=0;H[a+92>>2]=0;H[a+96>>2]=0;g=a+116|0;a:{b:{if(b){if(b>>>0<1073741824){break b}sa();v()}H[a+104>>2]=0;H[a+108>>2]=0;H[a+112>>2]=0;H[d+8>>2]=0;H[d>>2]=0;H[d+4>>2]=0;c=1;break a}c=b<<2;e=pa(c);H[a+92>>2]=e;f=c+e|0;H[a+100>>2]=f;ra(e,0,c);H[a+112>>2]=0;H[a+104>>2]=0;H[a+108>>2]=0;H[a+96>>2]=f;e=pa(c);H[a+104>>2]=e;f=c+e|0;H[a+112>>2]=f;ra(e,0,c);H[a+108>>2]=f;e=pa(c);H[d>>2]=e;f=c+e|0;H[d+8>>2]=f;ra(e,0,c);H[d+4>>2]=f;c=b<<5|1}tb(g,c,d);e=H[d>>2];if(e){H[d+4>>2]=e;oa(e)}H[d+8>>2]=0;H[d>>2]=0;H[d+4>>2]=0;if(b){b=b<<2;e=pa(b);H[d>>2]=e;f=b+e|0;H[d+8>>2]=f;ra(e,0,b);H[d+4>>2]=f}tb(a+128|0,c,d);b=H[d>>2];if(b){H[d+4>>2]=b;oa(b)}ca=d+16|0;return a}function ze(a){a=a|0;var b=0,c=0,d=0,e=0,f=0;H[a>>2]=11484;d=a+232|0;b=H[d+196>>2];if(b){H[d+200>>2]=b;oa(b)}c=H[d+184>>2];if(c){b=c;e=H[d+188>>2];if((b|0)!=(e|0)){while(1){b=e-12|0;f=H[b>>2];if(f){H[e-8>>2]=f;oa(f)}e=b;if((b|0)!=(c|0)){continue}break}b=H[d+184>>2]}H[d+188>>2]=c;oa(b)}b=H[d+156>>2];if(b){H[d+160>>2]=b;oa(b)}c=H[d+136>>2];H[d+136>>2]=0;if(c){e=c-4|0;b=H[e>>2];if(b){b=c+(b<<4)|0;while(1){b=b-16|0;if((c|0)!=(b|0)){continue}break}}oa(e)}Yc(a+216|0);b=H[a+196>>2];if(b){H[a+200>>2]=b;oa(b)}b=H[a+184>>2];if(b){H[a+188>>2]=b;oa(b)}b=H[a+172>>2];if(b){H[a+176>>2]=b;oa(b)}b=H[a+160>>2];if(b){H[a+164>>2]=b;oa(b)}b=H[a+144>>2];if(b){while(1){c=H[b>>2];oa(b);b=c;if(b){continue}break}}b=H[a+136>>2];H[a+136>>2]=0;if(b){oa(b)}b=H[a+120>>2];if(b){oa(b)}b=H[a+108>>2];if(b){oa(b)}b=H[a+96>>2];if(b){oa(b)}b=H[a+72>>2];if(b){H[a+76>>2]=b;oa(b)}b=H[a+60>>2];if(b){oa(b)}b=H[a+48>>2];if(b){H[a+52>>2]=b;oa(b)}b=H[a+36>>2];if(b){H[a+40>>2]=b;oa(b)}b=H[a+24>>2];if(b){H[a+28>>2]=b;oa(b)}b=H[a+12>>2];if(b){H[a+16>>2]=b;oa(b)}b=H[a+8>>2];H[a+8>>2]=0;if(b){cb(b)}return a|0}function Pa(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;d=H[a+8>>2];e=H[a+4>>2];if(d-e>>2>>>0>=b>>>0){a:{if(!b){break a}d=e;f=b&7;if(f){while(1){H[d>>2]=H[c>>2];d=d+4|0;h=h+1|0;if((f|0)!=(h|0)){continue}break}}e=(b<<2)+e|0;if((b-1&1073741823)>>>0<7){break a}while(1){H[d>>2]=H[c>>2];H[d+4>>2]=H[c>>2];H[d+8>>2]=H[c>>2];H[d+12>>2]=H[c>>2];H[d+16>>2]=H[c>>2];H[d+20>>2]=H[c>>2];H[d+24>>2]=H[c>>2];H[d+28>>2]=H[c>>2];d=d+32|0;if((e|0)!=(d|0)){continue}break}}H[a+4>>2]=e;return}b:{i=H[a>>2];j=e-i|0;f=j>>2;g=f+b|0;if(g>>>0<1073741824){d=d-i|0;e=d>>>1|0;g=d>>>0>=2147483644?1073741823:e>>>0>g>>>0?e:g;if(g){if(g>>>0>=1073741824){break b}k=pa(g<<2)}f=(f<<2)+k|0;d=f;e=b&7;if(e){while(1){H[d>>2]=H[c>>2];d=d+4|0;h=h+1|0;if((e|0)!=(h|0)){continue}break}}e=f+(b<<2)|0;if((b-1&1073741823)>>>0>=7){while(1){H[d>>2]=H[c>>2];H[d+4>>2]=H[c>>2];H[d+8>>2]=H[c>>2];H[d+12>>2]=H[c>>2];H[d+16>>2]=H[c>>2];H[d+20>>2]=H[c>>2];H[d+24>>2]=H[c>>2];H[d+28>>2]=H[c>>2];d=d+32|0;if((e|0)!=(d|0)){continue}break}}b=va(k,i,j);H[a+4>>2]=e;H[a>>2]=b;H[a+8>>2]=b+(g<<2);if(i){oa(i)}return}sa();v()}wa();v()}function Cc(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;if(I[a+11|0]>>>7|0){d=H[a+4>>2]}else{d=I[a+11|0]&127}if(d>>>0>>0){h=ca-16|0;ca=h;b=b-d|0;if(b){g=I[a+11|0]>>>7|0?(H[a+8>>2]&2147483647)-1|0:10;if(I[a+11|0]>>>7|0){d=H[a+4>>2]}else{d=I[a+11|0]&127}i=d+b|0;if(g-d>>>0>>0){a:{e=ca-16|0;ca=e;c=i-g|0;if(c>>>0<=2147483631-g>>>0){if(I[a+11|0]>>>7|0){f=H[a>>2]}else{f=a}if(g>>>0<1073741799){H[e+12>>2]=g<<1;H[e>>2]=c+g;c=ca-16|0;ca=c;ca=c+16|0;c=e+12|0;c=H[(K[e>>2]>2]?c:e)>>2];if(c>>>0>=11){j=c+16&-16;c=j-1|0;c=(c|0)==11?j:c}else{c=10}c=c+1|0}else{c=2147483631}Zb(e,c);c=H[e>>2];if(d){yb(c,f,d)}if((g|0)!=10){oa(f)}H[a>>2]=c;H[a+8>>2]=H[a+8>>2]&-2147483648|H[e+4>>2]&2147483647;H[a+8>>2]=H[a+8>>2]|-2147483648;ca=e+16|0;break a}Na();v()}}f=d;if(I[a+11|0]>>>7|0){d=H[a>>2]}else{d=a}f=f+d|0;e=ca-16|0;ca=e;F[e+15|0]=0;while(1){if(b){F[f|0]=I[e+15|0];b=b-1|0;f=f+1|0;continue}break}ca=e+16|0;Id(a,i);F[h+15|0]=0;F[d+i|0]=I[h+15|0]}ca=h+16|0;return}if(I[a+11|0]>>>7|0){d=H[a>>2]}else{d=a}f=ca-16|0;ca=f;Id(a,b);F[f+15|0]=0;F[b+d|0]=I[f+15|0];ca=f+16|0}function Jc(a,b){var c=0,d=0,e=0,f=0,g=0,h=0;g=ca-16|0;ca=g;a:{b:{if(b){H[a+88>>2]=0;H[a+92>>2]=0;d=H[a+84>>2];H[a+84>>2]=0;if(d){oa(d)}H[a+76>>2]=0;H[a+80>>2]=0;d=H[a+72>>2];H[a+72>>2]=0;if(d){oa(d)}d=H[b>>2];c=H[b+4>>2];F[g+15|0]=0;Oa(a,c-d>>2,g+15|0);d=H[b+28>>2];c=H[b+24>>2];F[g+14|0]=0;Oa(a+12|0,d-c>>2,g+14|0);Kc(a+28|0,H[b+4>>2]-H[b>>2]>>2,13708);c=H[b+28>>2]-H[b+24>>2]|0;f=c>>2;e=H[a+52>>2];c:{if(f>>>0<=H[a+60>>2]-e>>2>>>0){break c}if((c|0)<0){break b}d=H[a+56>>2];c=pa(c);f=c+(f<<2)|0;h=c+(d-e&-4)|0;c=h;if((d|0)!=(e|0)){while(1){c=c-4|0;d=d-4|0;H[c>>2]=H[d>>2];if((d|0)!=(e|0)){continue}break}}H[a+60>>2]=f;H[a+56>>2]=h;H[a+52>>2]=c;if(!e){break c}oa(e)}c=H[b+28>>2]-H[b+24>>2]|0;f=c>>2;e=H[a+40>>2];d:{if(f>>>0<=H[a+48>>2]-e>>2>>>0){break d}if((c|0)<0){break a}d=H[a+44>>2];c=pa(c);f=c+(f<<2)|0;h=c+(d-e&-4)|0;c=h;if((d|0)!=(e|0)){while(1){c=c-4|0;d=d-4|0;H[c>>2]=H[d>>2];if((d|0)!=(e|0)){continue}break}}H[a+48>>2]=f;H[a+44>>2]=h;H[a+40>>2]=c;if(!e){break d}oa(e)}F[a+24|0]=1;H[a+64>>2]=b}ca=g+16|0;return}sa();v()}sa();v()}function wb(a,b){var c=0,d=0,e=0,f=0,g=0;c=ca-16|0;ca=c;H[a+12>>2]=b;H[a+8>>2]=0;H[a>>2]=0;H[a+4>>2]=0;H[a+16>>2]=0;H[a+20>>2]=0;H[a+32>>2]=0;H[a+24>>2]=0;H[a+28>>2]=0;H[a+36>>2]=0;H[a+40>>2]=0;H[a+52>>2]=0;H[a+44>>2]=0;H[a+48>>2]=0;H[a+56>>2]=0;H[a+60>>2]=0;H[a+72>>2]=0;H[a+64>>2]=0;H[a+68>>2]=0;H[a+76>>2]=0;H[a+80>>2]=0;H[a+92>>2]=0;H[a+84>>2]=0;H[a+88>>2]=0;H[a+104>>2]=0;H[a+96>>2]=0;H[a+100>>2]=0;g=a+120|0;a:{b:{if(b){if(b>>>0<1073741824){break b}sa();v()}H[a+108>>2]=0;H[a+112>>2]=0;H[a+116>>2]=0;H[c+8>>2]=0;H[c>>2]=0;H[c+4>>2]=0;e=1;break a}e=b<<2;d=pa(e);H[a+96>>2]=d;f=d+e|0;H[a+104>>2]=f;ra(d,0,e);H[a+116>>2]=0;H[a+108>>2]=0;H[a+112>>2]=0;H[a+100>>2]=f;d=pa(e);H[a+108>>2]=d;f=d+e|0;H[a+116>>2]=f;ra(d,0,e);H[a+112>>2]=f;d=pa(e);H[c>>2]=d;f=d+e|0;H[c+8>>2]=f;ra(d,0,e);H[c+4>>2]=f;e=b<<5|1}tb(g,e,c);d=H[c>>2];if(d){H[c+4>>2]=d;oa(d)}H[c+8>>2]=0;H[c>>2]=0;H[c+4>>2]=0;if(b){b=b<<2;d=pa(b);H[c>>2]=d;f=b+d|0;H[c+8>>2]=f;ra(d,0,b);H[c+4>>2]=f}tb(a+132|0,e,c);b=H[c>>2];if(b){H[c+4>>2]=b;oa(b)}ca=c+16|0;return a}function Sb(a,b){var c=0,d=0,e=0;c=(a|0)==(b|0);F[b+12|0]=c;a:{if(c){break a}while(1){d=H[b+8>>2];if(I[d+12|0]){break a}b:{c=H[d+8>>2];e=H[c>>2];if((e|0)==(d|0)){e=H[c+4>>2];if(!(!e|I[e+12|0])){break b}c:{if(H[d>>2]==(b|0)){b=d;break c}b=H[d+4>>2];a=H[b>>2];H[d+4>>2]=a;if(a){H[a+8>>2]=d;c=H[d+8>>2]}H[b+8>>2]=c;a=H[d+8>>2];H[((H[a>>2]!=(d|0))<<2)+a>>2]=b;H[b>>2]=d;H[d+8>>2]=b;c=H[b+8>>2];d=H[c>>2]}F[b+12|0]=1;F[c+12|0]=0;a=H[d+4>>2];H[c>>2]=a;if(a){H[a+8>>2]=c}H[d+8>>2]=H[c+8>>2];a=H[c+8>>2];H[((H[a>>2]!=(c|0))<<2)+a>>2]=d;H[d+4>>2]=c;H[c+8>>2]=d;return}if(!(I[e+12|0]|!e)){break b}d:{if(H[d>>2]!=(b|0)){b=d;break d}a=H[b+4>>2];H[d>>2]=a;if(a){H[a+8>>2]=d;c=H[d+8>>2]}H[b+8>>2]=c;a=H[d+8>>2];H[((H[a>>2]!=(d|0))<<2)+a>>2]=b;H[b+4>>2]=d;H[d+8>>2]=b;c=H[b+8>>2]}F[b+12|0]=1;F[c+12|0]=0;a=H[c+4>>2];b=H[a>>2];H[c+4>>2]=b;if(b){H[b+8>>2]=c}H[a+8>>2]=H[c+8>>2];b=H[c+8>>2];H[((H[b>>2]!=(c|0))<<2)+b>>2]=a;H[a>>2]=c;H[c+8>>2]=a;break a}F[d+12|0]=1;F[c+12|0]=(a|0)==(c|0);F[e+12|0]=1;b=c;if((c|0)!=(a|0)){continue}break}}}function Tj(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;a:{b:{c:{d:{e:{f:{g:{h:{i:{j:{k:{if(b){if(!c){break k}if(!d){break j}e=Q(d)-Q(b)|0;if(e>>>0<=31){break i}break c}if((d|0)==1|d>>>0>1){break c}da=0;a=(a>>>0)/(c>>>0)|0;break a}if(!a){break h}if(!d|d-1&d){break g}a=b>>>Qj(d)|0;da=0;break a}if(!(c-1&c)){break f}h=(Q(c)+33|0)-Q(b)|0;g=0-h|0;break d}h=e+1|0;g=63-e|0;break d}da=0;a=(b>>>0)/(d>>>0)|0;break a}e=Q(d)-Q(b)|0;if(e>>>0<31){break e}break c}if((c|0)==1){break b}d=Qj(c);c=d&31;if((d&63)>>>0>=32){a=b>>>c|0}else{e=b>>>c|0;a=((1<>>c}da=e;break a}h=e+1|0;g=63-e|0}e=h&63;f=e&31;if(e>>>0>=32){e=0;i=b>>>f|0}else{e=b>>>f|0;i=((1<>>f}g=g&63;f=g&31;if(g>>>0>=32){b=a<>>32-f|b<>>31;e=i<<1|b>>>31;f=m-(j+(e>>>0>g>>>0)|0)>>31;k=c&f;i=e-k|0;e=j-((d&f)+(e>>>0>>0)|0)|0;b=b<<1|a>>>31;a=l|a<<1;l=f&1;h=h-1|0;if(h){continue}break}}da=b<<1|a>>>31;a=l|a<<1;break a}a=0;b=0}da=b}return a}function rc(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;k=H[b+16>>2];h=H[c+4>>2]-k|0;e=H[c>>2]-k|0;H[c>>2]=e;H[c+4>>2]=h;g=H[b+16>>2];f=h>>31;i=(f^h)-f|0;f=e>>31;l=g>>>0>=i+((f^e)-f|0)>>>0;a:{if(l){f=h;break a}b:{c:{if((e|0)>=0){f=1;i=1;if((h|0)>=0){break b}j=1;f=-1;i=-1;if(e){break c}break b}j=-1;f=-1;i=-1;if((h|0)<=0){break b}}f=(h|0)<=0?-1:1;i=j}j=N(g,i);e=(e<<1)-j|0;i=(N(f,i)|0)>=0;g=N(f,g);f=((i?0-e|0:e)+g|0)/2|0;H[c+4>>2]=f;m=c;c=(h<<1)-g|0;e=(j+(i?0-c|0:c)|0)/2|0;H[m>>2]=e;g=H[b+16>>2]}c=H[d+4>>2]+f|0;e=H[d>>2]+e|0;d:{if((g|0)<(e|0)){e=e-H[b+4>>2]|0;break d}if((0-g|0)<=(e|0)){break d}e=H[b+4>>2]+e|0}e:{if((c|0)>(g|0)){c=c-H[b+4>>2]|0;break e}if((0-g|0)<=(c|0)){break e}c=H[b+4>>2]+c|0}f:{if(l){g=c;break f}g:{h:{if((e|0)>=0){b=1;f=1;if((c|0)>=0){break g}d=1;b=-1;f=-1;if(e){break h}break g}d=-1;b=-1;f=-1;if((c|0)<=0){break g}}b=(c|0)<=0?-1:1;f=d}d=N(f,g);h=(e<<1)-d|0;f=(N(b,f)|0)>=0;b=N(b,g);g=((f?0-h|0:h)+b|0)/2|0;b=(c<<1)-b|0;e=(d+(f?0-b|0:b)|0)/2|0}c=a;H[c>>2]=e+k;H[c+4>>2]=g+k}function Wh(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0;g=ca-16|0;ca=g;e=H[a+4>>2];d=H[e>>2];a:{b=H[a+12>>2];c=H[b+28>>2]-H[b+24>>2]|0;f=c>>2;b:{if(f>>>0<=H[e+8>>2]-d>>2>>>0){break b}if((c|0)<0){break a}b=H[e+4>>2];c=pa(c);f=c+(f<<2)|0;h=c+(b-d&-4)|0;c=h;if((b|0)!=(d|0)){while(1){c=c-4|0;b=b-4|0;H[c>>2]=H[b>>2];if((b|0)!=(d|0)){continue}break}}H[e+8>>2]=f;H[e+4>>2]=h;H[e>>2]=c;if(!d){break b}oa(d)}b=H[a+12>>2];c=H[b+28>>2];b=H[b+24>>2];H[g+12>>2]=0;b=c-b>>2;d=a+96|0;e=H[d>>2];c=H[a+100>>2]-e>>2;c:{if(b>>>0>c>>>0){Pa(d,b-c|0,g+12|0);break c}if(b>>>0>=c>>>0){break c}H[a+100>>2]=e+(b<<2)}e=a+8|0;b=H[a+116>>2];d:{if(b){d=H[b>>2];if((d|0)==H[b+4>>2]){c=1;break d}b=0;while(1){c=ye(e,H[(b<<2)+d>>2]);if(!c){break d}f=H[a+116>>2];d=H[f>>2];b=b+1|0;if(b>>>0>2]-d>>2>>>0){continue}break}break d}c=1;a=H[a+12>>2];a=H[a+4>>2]-H[a>>2]|0;if(a>>>0<12){break d}a=(a>>2>>>0)/3|0;b=0;while(1){c=ye(e,N(b,3));if(!c){break d}b=b+1|0;if((a|0)!=(b|0)){continue}break}}ca=g+16|0;return c|0}sa();v()}function gj(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;c=H[b+88>>2];if(!(!c|H[c>>2]!=1)){e=H[c+8>>2];H[a+4>>2]=I[e|0]|I[e+1|0]<<8|(I[e+2|0]<<16|I[e+3|0]<<24);f=a+8|0;d=I[b+24|0];h=H[a+8>>2];g=H[a+12>>2]-h>>2;a:{if(d>>>0>g>>>0){ya(f,d-g|0);d=I[b+24|0];e=H[c+8>>2];break a}if(d>>>0>=g>>>0){break a}H[a+12>>2]=h+(d<<2)}b:{if(!d){b=4;break b}h=d&3;f=H[f>>2];c:{if(d-1>>>0<3){b=4;d=0;break c}k=d&252;d=0;b=4;while(1){g=d<<2;c=b+e|0;H[g+f>>2]=I[c|0]|I[c+1|0]<<8|(I[c+2|0]<<16|I[c+3|0]<<24);H[f+(g|4)>>2]=I[c+4|0]|I[c+5|0]<<8|(I[c+6|0]<<16|I[c+7|0]<<24);H[f+(g|8)>>2]=I[c+8|0]|I[c+9|0]<<8|(I[c+10|0]<<16|I[c+11|0]<<24);H[f+(g|12)>>2]=I[c+12|0]|I[c+13|0]<<8|(I[c+14|0]<<16|I[c+15|0]<<24);d=d+4|0;b=b+16|0;i=i+4|0;if((k|0)!=(i|0)){continue}break}}if(!h){break b}while(1){c=b+e|0;H[f+(d<<2)>>2]=I[c|0]|I[c+1|0]<<8|(I[c+2|0]<<16|I[c+3|0]<<24);d=d+1|0;b=b+4|0;j=j+1|0;if((h|0)!=(j|0)){continue}break}}d=a;a=b+e|0;H[d+20>>2]=I[a|0]|I[a+1|0]<<8|(I[a+2|0]<<16|I[a+3|0]<<24);d=1}return d|0}function se(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0;a:{b:{c:{if(!b){if((d|0)<0){break a}f=H[a+4>>2];b=H[a>>2];d=f-b|0;if(c>>>0>d>>>0){g=c-d|0;e=H[a+8>>2];if(g>>>0<=e-f>>>0){i=a,j=ra(f,0,g)+g|0,H[i+4>>2]=j;break c}if((c|0)<0){break b}f=e-b|0;e=f<<1;f=f>>>0>=1073741823?2147483647:c>>>0>>0?e:c;e=pa(f);ra(e+d|0,0,g);d=va(e,b,d);H[a+8>>2]=d+f;H[a+4>>2]=c+d;H[a>>2]=d;if(!b){break c}oa(b);break c}if(c>>>0>=d>>>0){break c}H[a+4>>2]=b+c;break c}if((d|0)<0){break a}e=H[a+4>>2];f=H[a>>2];g=e-f|0;d:{if((d|0)<=0&c>>>0<=g>>>0|(d|0)<0){break d}if(c>>>0>g>>>0){d=c-g|0;h=H[a+8>>2];if(d>>>0<=h-e>>>0){i=a,j=ra(e,0,d)+d|0,H[i+4>>2]=j;break d}if((c|0)<0){break b}e=h-f|0;h=e<<1;e=e>>>0>=1073741823?2147483647:c>>>0>>0?h:c;h=pa(e);ra(h+g|0,0,d);d=va(h,f,g);H[a+8>>2]=d+e;H[a+4>>2]=c+d;H[a>>2]=d;if(!f){break d}oa(f);break d}if(c>>>0>=g>>>0){break d}H[a+4>>2]=c+f}if(!c){break c}va(H[a>>2],b,c)}b=H[a+28>>2];c=H[a+24>>2]+1|0;b=c?b:b+1|0;H[a+24>>2]=c;H[a+28>>2]=b;g=1;break a}sa();v()}return g}function Jh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;k=H[a+12>>2];c=H[a+68>>2];d=H[c+80>>2];F[b+84|0]=0;n=b+68|0;i=H[b+68>>2];e=H[b+72>>2]-i>>2;a:{if(e>>>0>>0){qb(n,d-e|0,12372);c=H[a+68>>2];d=H[c+80>>2];break a}if(d>>>0>=e>>>0){break a}H[b+72>>2]=i+(d<<2)}b=H[c+100>>2];e=H[c+96>>2];i=(b-e|0)/12|0;m=1;b:{if((b|0)==(e|0)){break b}k=H[k+28>>2];f=H[k>>2];if((f|0)==-1){return 0}o=i>>>0<=1?1:i;c=e;b=0;m=0;while(1){g=H[c>>2];if(g>>>0>=d>>>0){break b}j=H[H[a+72>>2]+12>>2];h=H[j+(f<<2)>>2];if(h>>>0>=d>>>0){break b}f=H[n>>2];H[f+(g<<2)>>2]=h;g=k+(l<<2)|0;h=H[g+4>>2];if((h|0)==-1){break b}l=H[c+4>>2];if(l>>>0>=d>>>0){break b}h=H[(h<<2)+j>>2];if(h>>>0>=d>>>0){break b}H[f+(l<<2)>>2]=h;g=H[g+8>>2];if((g|0)==-1){break b}c=H[c+8>>2];if(c>>>0>=d>>>0){break b}j=H[(g<<2)+j>>2];if(j>>>0>=d>>>0){break b}H[f+(c<<2)>>2]=j;b=b+1|0;m=i>>>0<=b>>>0;if((b|0)==(o|0)){break b}c=e+N(b,12)|0;l=N(b,3);f=H[k+(l<<2)>>2];if((f|0)!=-1){continue}break}}return m|0}function Gh(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;h=H[d+80>>2];e=ca-48|0;ca=e;a=H[a+4>>2];m=a-2|0;a:{if(m>>>0>28){break a}j=H[H[d>>2]>>2]+H[d+48>>2]|0;H[e+16>>2]=a;a=-1<>2]=a^-1;a=-2-a|0;H[e+24>>2]=a;H[e+32>>2]=(a|0)/2;L[e+28>>2]=O(2)/O(a|0);f=H[c>>2];if((f|0)!=H[c+4>>2]){a=0;d=0;while(1){g=H[(d<<2)+f>>2];h=e+36|0;k=H[H[b>>2]>>2];l=H[b+48>>2];f=H[b+40>>2];i=H[b+44>>2];if(!I[b+84|0]){g=H[H[b+68>>2]+(g<<2)>>2]}g=Rj(f,i,g,0);i=g;g=g+l|0;qa(h,g+k|0,f);he(e+16|0,h,e+12|0,e+8|0);f=a<<2;H[f+j>>2]=H[e+12>>2];H[(f|4)+j>>2]=H[e+8>>2];a=a+2|0;d=d+1|0;f=H[c>>2];if(d>>>0>2]-f>>2>>>0){continue}break}break a}if(!h){break a}d=0;a=0;while(1){k=e+36|0;l=H[H[b>>2]>>2];i=H[b+48>>2];c=H[b+40>>2];f=Rj(c,H[b+44>>2],I[b+84|0]?a:H[H[b+68>>2]+(a<<2)>>2],0);g=f;f=f+i|0;qa(k,f+l|0,c);he(e+16|0,k,e+12|0,e+8|0);c=d<<2;H[c+j>>2]=H[e+12>>2];H[(c|4)+j>>2]=H[e+8>>2];d=d+2|0;a=a+1|0;if((h|0)!=(a|0)){continue}break}}ca=e+48|0;return m>>>0<29|0}function Re(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=O(0),j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;k=ca-16|0;ca=k;if(H[c+28>>2]==9){d=H[a+4>>2];h=I[c+24|0];e=h<<2;f=pa(e);l=k+8|0;H[l>>2]=1065353216;i=L[a+20>>2];d=-1<0){L[l>>2]=i/O(d|0)}o=(d|0)>0;a:{if(!o){break a}j=H[c+80>>2];if(!j){break a}if(h){p=H[H[b>>2]>>2]+H[b+48>>2]|0;t=h&254;u=h&1;b=0;while(1){m=H[a+8>>2];i=L[l>>2];d=0;n=0;if((h|0)!=1){while(1){g=d<<2;q=(b<<2)+p|0;L[g+f>>2]=O(i*O(H[q>>2]))+L[g+m>>2];g=g|4;L[g+f>>2]=O(i*O(H[q+4>>2]))+L[g+m>>2];d=d+2|0;b=b+2|0;n=n+2|0;if((t|0)!=(n|0)){continue}break}}if(u){d=d<<2;L[d+f>>2]=O(i*O(H[(b<<2)+p>>2]))+L[d+m>>2];b=b+1|0}qa(H[H[c+64>>2]>>2]+r|0,f,e);r=e+r|0;s=s+1|0;if((s|0)!=(j|0)){continue}break}break a}b=0;if((j|0)!=1){a=j&-2;d=0;while(1){qa(H[H[c+64>>2]>>2]+b|0,f,e);b=b+e|0;qa(b+H[H[c+64>>2]>>2]|0,f,e);b=b+e|0;d=d+2|0;if((a|0)!=(d|0)){continue}break}}if(!(j&1)){break a}qa(H[H[c+64>>2]>>2]+b|0,f,e)}oa(f)}ca=k+16|0;return o|0}function Xh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;c=H[a+12>>2];d=H[a+108>>2];e=H[d+80>>2];F[b+84|0]=0;m=b+68|0;h=H[b+68>>2];f=H[b+72>>2]-h>>2;a:{if(f>>>0>>0){qb(m,e-f|0,12372);d=H[a+108>>2];e=H[d+80>>2];break a}if(e>>>0>=f>>>0){break a}H[b+72>>2]=h+(e<<2)}b=H[d+100>>2];f=H[d+96>>2];h=(b-f|0)/12|0;k=1;b:{if((b|0)==(f|0)){break b}n=h>>>0<=1?1:h;o=H[c>>2];c=0;d=f;b=0;k=0;while(1){c=(c<<2)+o|0;i=H[c>>2];if((i|0)==-1){break b}g=H[d>>2];if(g>>>0>=e>>>0){break b}l=H[H[a+112>>2]+12>>2];j=H[l+(i<<2)>>2];if(j>>>0>=e>>>0){break b}i=H[m>>2];H[i+(g<<2)>>2]=j;g=H[c+4>>2];if((g|0)==-1){break b}j=H[d+4>>2];if(j>>>0>=e>>>0){break b}g=H[(g<<2)+l>>2];if(g>>>0>=e>>>0){break b}H[i+(j<<2)>>2]=g;c=H[c+8>>2];if((c|0)==-1){break b}d=H[d+8>>2];if(d>>>0>=e>>>0){break b}c=H[(c<<2)+l>>2];if(c>>>0>=e>>>0){break b}H[i+(d<<2)>>2]=c;b=b+1|0;k=h>>>0<=b>>>0;if((b|0)==(n|0)){break b}c=N(b,3);d=f+N(b,12)|0;if((b|0)!=1431655765){continue}break}}return k|0}function Ph(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;c=H[a+12>>2];d=H[a+68>>2];e=H[d+80>>2];F[b+84|0]=0;m=b+68|0;h=H[b+68>>2];f=H[b+72>>2]-h>>2;a:{if(f>>>0>>0){qb(m,e-f|0,12372);d=H[a+68>>2];e=H[d+80>>2];break a}if(e>>>0>=f>>>0){break a}H[b+72>>2]=h+(e<<2)}b=H[d+100>>2];f=H[d+96>>2];h=(b-f|0)/12|0;k=1;b:{if((b|0)==(f|0)){break b}n=h>>>0<=1?1:h;o=H[c>>2];c=0;d=f;b=0;k=0;while(1){c=(c<<2)+o|0;i=H[c>>2];if((i|0)==-1){break b}g=H[d>>2];if(g>>>0>=e>>>0){break b}l=H[H[a+72>>2]+12>>2];j=H[l+(i<<2)>>2];if(j>>>0>=e>>>0){break b}i=H[m>>2];H[i+(g<<2)>>2]=j;g=H[c+4>>2];if((g|0)==-1){break b}j=H[d+4>>2];if(j>>>0>=e>>>0){break b}g=H[(g<<2)+l>>2];if(g>>>0>=e>>>0){break b}H[i+(j<<2)>>2]=g;c=H[c+8>>2];if((c|0)==-1){break b}d=H[d+8>>2];if(d>>>0>=e>>>0){break b}c=H[(c<<2)+l>>2];if(c>>>0>=e>>>0){break b}H[i+(d<<2)>>2]=c;b=b+1|0;k=h>>>0<=b>>>0;if((b|0)==(n|0)){break b}c=N(b,3);d=f+N(b,12)|0;if((b|0)!=1431655765){continue}break}}return k|0}function Wa(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;d=ca-16|0;ca=d;a:{f=H[a+4>>2];b:{if(f>>>0>>0){e=b-f|0;c=H[a+8>>2];g=c<<5;c:{if(!(e>>>0>g>>>0|f>>>0>g-e>>>0)){H[a+4>>2]=b;h=f&31;b=H[a>>2]+(f>>>3&536870908)|0;break c}H[d+8>>2]=0;H[d>>2]=0;H[d+4>>2]=0;if((b|0)<0){break a}if(g>>>0<=1073741822){c=c<<6;b=b+31&-32;b=b>>>0>>0?c:b}else{b=2147483647}pb(d,b);f=H[a+4>>2];H[d+4>>2]=f+e;i=H[a>>2];b=H[d>>2];d:{if((f|0)<=0){break d}c=f>>>5|0;if(f>>>0>=32){va(b,i,c<<2)}g=c<<2;b=g+b|0;h=f&31;if(h){c=-1>>>32-h|0;H[b>>2]=H[b>>2]&(c^-1)|H[i+g>>2]&c}i=H[a>>2]}H[a>>2]=H[d>>2];H[d>>2]=i;c=H[a+4>>2];H[a+4>>2]=H[d+4>>2];H[d+4>>2]=c;c=H[a+8>>2];H[a+8>>2]=H[d+8>>2];H[d+8>>2]=c;if(!i){break c}oa(i)}if(!e){break b}if(h){c=32-h|0;a=c>>>0>>0?c:e;H[b>>2]=H[b>>2]&(-1<>>c-a^-1);e=e-a|0;b=b+4|0}a=e>>>5|0;if(e>>>0>=32){ra(b,0,a<<2)}if((e&-32)==(e|0)){break b}a=(a<<2)+b|0;H[a>>2]=H[a>>2]&(-1>>>32-(e&31)^-1);break b}H[a+4>>2]=b}ca=d+16|0;return}sa();v()}function Je(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;e=H[a+12>>2];i=H[a+8>>2];d=e-i>>2;b=I[b+24|0];a:{if(d>>>0>>0){ya(a+8|0,b-d|0);i=H[a+8>>2];e=H[a+12>>2];break a}if(b>>>0>=d>>>0){break a}e=(b<<2)+i|0;H[a+12>>2]=e}b=0;f=H[c+8>>2];h=H[c+12>>2];j=H[c+20>>2];e=e-i|0;d=H[c+16>>2];g=e+d|0;j=e>>>0>g>>>0?j+1|0:j;b:{if(f>>>0>>0&(h|0)<=(j|0)|(h|0)<(j|0)){break b}qa(i,d+H[c>>2]|0,e);d=H[c+20>>2];g=e;e=e+H[c+16>>2]|0;d=g>>>0>e>>>0?d+1|0:d;H[c+16>>2]=e;H[c+20>>2]=d;f=H[c+8>>2];h=H[c+12>>2];g=e+4|0;d=g>>>0<4?d+1|0:d;if(f>>>0>>0&(d|0)>=(h|0)|(d|0)>(h|0)){break b}d=e+H[c>>2]|0;H[a+20>>2]=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);d=H[c+20>>2];g=d;f=d;e=H[c+16>>2];d=e+4|0;f=d>>>0<4?f+1|0:f;H[c+16>>2]=d;H[c+20>>2]=f;h=H[c+12>>2];if((f|0)>=(h|0)&d>>>0>=K[c+8>>2]|(f|0)>(h|0)){break b}f=I[d+H[c>>2]|0];d=g;e=e+5|0;d=e>>>0<5?d+1|0:d;H[c+16>>2]=e;H[c+20>>2]=d;if(f-1>>>0>29){break b}H[a+4>>2]=f;b=1}return b|0}function qd(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;a:{f=H[a+4>>2];b:{if((f|0)!=H[a>>2]){c=f;break b}g=H[a+8>>2];c=H[a+12>>2];if(g>>>0>>0){e=((c-g>>2)+1|0)/2<<2;c=e+g|0;if((f|0)!=(g|0)){d=g-f|0;c=c-d|0;va(c,f,d);f=H[a+8>>2]}H[a+4>>2]=c;H[a+8>>2]=e+f;break b}d=(c|0)==(f|0)?1:c-f>>1;if(d>>>0>=1073741824){break a}c=d<<2;i=pa(c);k=i+c|0;c=(d+3&-4)+i|0;h=c;c:{if((f|0)==(g|0)){break c}g=g-f|0;l=g&-4;e=c;d=f;j=g-4|0;g=(j>>>2|0)+1&7;if(g){h=0;while(1){H[e>>2]=H[d>>2];d=d+4|0;e=e+4|0;h=h+1|0;if((g|0)!=(h|0)){continue}break}}h=c+l|0;if(j>>>0<28){break c}while(1){H[e>>2]=H[d>>2];H[e+4>>2]=H[d+4>>2];H[e+8>>2]=H[d+8>>2];H[e+12>>2]=H[d+12>>2];H[e+16>>2]=H[d+16>>2];H[e+20>>2]=H[d+20>>2];H[e+24>>2]=H[d+24>>2];H[e+28>>2]=H[d+28>>2];d=d+32|0;e=e+32|0;if((h|0)!=(e|0)){continue}break}}H[a+12>>2]=k;H[a+8>>2]=h;H[a+4>>2]=c;H[a>>2]=i;if(!f){break b}oa(f);c=H[a+4>>2]}H[c-4>>2]=H[b>>2];H[a+4>>2]=H[a+4>>2]-4;return}wa();v()}function sb(a,b){var c=0;a:{if(!ta(a,b)){break a}if(!ta(a+16|0,b)){break a}if(!ta(a+32|0,b)){break a}if(!ta(a+48|0,b)){break a}if(!ta(a- -64|0,b)){break a}if(!ta(a+80|0,b)){break a}if(!ta(a+96|0,b)){break a}if(!ta(a+112|0,b)){break a}if(!ta(a+128|0,b)){break a}if(!ta(a+144|0,b)){break a}if(!ta(a+160|0,b)){break a}if(!ta(a+176|0,b)){break a}if(!ta(a+192|0,b)){break a}if(!ta(a+208|0,b)){break a}if(!ta(a+224|0,b)){break a}if(!ta(a+240|0,b)){break a}if(!ta(a+256|0,b)){break a}if(!ta(a+272|0,b)){break a}if(!ta(a+288|0,b)){break a}if(!ta(a+304|0,b)){break a}if(!ta(a+320|0,b)){break a}if(!ta(a+336|0,b)){break a}if(!ta(a+352|0,b)){break a}if(!ta(a+368|0,b)){break a}if(!ta(a+384|0,b)){break a}if(!ta(a+400|0,b)){break a}if(!ta(a+416|0,b)){break a}if(!ta(a+432|0,b)){break a}if(!ta(a+448|0,b)){break a}if(!ta(a+464|0,b)){break a}if(!ta(a+480|0,b)){break a}if(!ta(a+496|0,b)){break a}c=ta(a+512|0,b)}return c}function qf(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;a:{if(!ke(a,b)){break a}h=a+36|0;g=ea[H[H[a>>2]+24>>2]](a)|0;e=H[a+40>>2];d=H[a+36>>2];c=e-d>>2;b:{if(g>>>0>c>>>0){Vb(h,g-c|0);break b}if(c>>>0<=g>>>0){break b}d=d+(g<<2)|0;if((d|0)!=(e|0)){while(1){e=e-4|0;c=H[e>>2];H[e>>2]=0;if(c){ea[H[H[c>>2]+4>>2]](c)}if((d|0)!=(e|0)){continue}break}}H[a+40>>2]=d}c=1;if((g|0)<=0){break a}e=0;while(1){c:{c=H[b+20>>2];f=H[b+12>>2];d=H[b+16>>2];if((c|0)>=(f|0)&d>>>0>=K[b+8>>2]|(c|0)>(f|0)){break c}f=I[H[b>>2]+d|0];d=d+1|0;c=d?c:c+1|0;H[b+16>>2]=d;H[b+20>>2]=c;d=ea[H[H[a>>2]+48>>2]](a,f)|0;f=e<<2;i=f+H[a+36>>2]|0;c=H[i>>2];H[i>>2]=d;if(c){ea[H[H[c>>2]+4>>2]](c)}c=H[H[h>>2]+f>>2];if(!c){break c}if(!(k=c,l=ea[H[H[a>>2]+28>>2]](a)|0,m=ea[H[H[a>>2]+20>>2]](a,e)|0,j=H[H[c>>2]+8>>2],ea[j](k|0,l|0,m|0)|0)){break c}c=1;e=e+1|0;if((g|0)!=(e|0)){continue}break a}break}c=0}return c|0}function he(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;j=+L[b>>2];k=+L[b+4>>2];l=+L[b+8>>2];g=P(j)+P(k)+P(l);a:{if(!(g>1e-6)){j=1;k=0;e=0;break a}g=1/g;k=g*k;j=g*j;e=g*l<0}h=H[a+16>>2];l=+(h|0);g=T(j*l+.5);b:{if(P(g)<2147483648){m=~~g;break b}m=-2147483648}f=m>>31;i=(f^m)-f|0;g=T(k*l+.5);c:{if(P(g)<2147483648){f=~~g;break c}f=-2147483648}b=f>>31;b=h-(i+((f^b)-b|0)|0)|0;i=(b|0)>0?b:0;e=e?0-i|0:i;f=f+(b>>31&((f|0)>0?b:0-b|0))|0;d:{if((m|0)>=0){b=e+h|0;a=H[a+8>>2];e=h+f|0;break d}b=f>>31;b=(b^f)-b|0;a=H[a+8>>2];b=(e|0)<0?b:a-b|0;e=(f|0)<0?i:a-i|0}e:{if(!(b|e)){b=a;break e}if(!((a|0)!=(b|0)|e)){b=a;break e}if(!((a|0)!=(e|0)|b)){b=a;break e}if(!((b|0)<=(h|0)|e)){b=(h<<1)-b|0;a=0;break e}if(!((a|0)!=(e|0)|(b|0)>=(h|0))){b=(h<<1)-b|0;break e}if(!((a|0)!=(b|0)|(e|0)>=(h|0))){b=a;a=(h<<1)-e|0;break e}if(b){a=e;break e}b=0;if((e|0)<=(h|0)){a=e;break e}a=(h<<1)-e|0}H[c>>2]=a;H[d>>2]=b}function Ve(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;g=H[b+8>>2];h=H[b+12>>2];c=H[b+20>>2];i=c;k=H[b+16>>2];d=k+4|0;c=d>>>0<4?c+1|0:c;a:{if(d>>>0>g>>>0&(c|0)>=(h|0)|(c|0)>(h|0)){break a}l=H[b>>2];f=k+l|0;e=I[f|0]|I[f+1|0]<<8|(I[f+2|0]<<16|I[f+3|0]<<24);H[b+16>>2]=d;H[b+20>>2]=c;c=i;f=k+8|0;c=f>>>0<8?c+1|0:c;if(f>>>0>g>>>0&(c|0)>=(h|0)|(c|0)>(h|0)){break a}d=d+l|0;j=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);H[b+16>>2]=f;H[b+20>>2]=c;if((e|0)>(j|0)){break a}H[a+16>>2]=j;H[a+12>>2]=e;d=j-e|0;e=(j>>31)-((e>>31)+(e>>>0>j>>>0)|0)|0;if(!e&d>>>0>2147483646|e){break a}d=d+1|0;H[a+20>>2]=d;e=d>>>1|0;H[a+24>>2]=e;H[a+28>>2]=0-e;if(!(d&1)){H[a+24>>2]=e-1}if(J[b+38>>1]<=513){if((c|0)>=(h|0)&f>>>0>=g>>>0|(c|0)>(h|0)){break a}g=I[f+l|0];c=i;i=k+9|0;c=i>>>0<9?c+1|0:c;H[b+16>>2]=i;H[b+20>>2]=c;if(g>>>0>1){break a}H[a+88>>2]=g}m=ta(a+112|0,b)}return m|0}function Hc(a,b){var c=0,d=0,e=0,f=0,g=0,h=0;g=H[a>>2];c=g+(b>>>3&536870908)|0;H[c>>2]=H[c>>2]|1<>2];e=(b|0)==-1;d=-1;a:{if(e){break a}c=b+1|0;c=(c>>>0)%3|0?c:b-2|0;d=-1;if((c|0)==-1){break a}d=H[H[f>>2]+(c<<2)>>2]}c=H[a+12>>2];h=(d>>>3&536870908)+c|0;H[h>>2]=H[h>>2]|1<>>0)%3|0){e=b-1|0;break e}e=b+2|0;d=-1;if((e|0)==-1){break d}}d=H[H[f>>2]+(e<<2)>>2]}e=(d>>>3&536870908)+c|0;H[e>>2]=H[e>>2]|1<>2]+(b<<2)>>2];if((b|0)==-1){break b}F[a+24|0]=0;a=(b>>>3&536870908)+g|0;H[a>>2]=H[a>>2]|1<>>0)%3|0?a:b-2|0;if((a|0)!=-1){d=H[H[f>>2]+(a<<2)>>2]}a=c+(d>>>3&536870908)|0;H[a>>2]=H[a>>2]|1<>>0)%3|0){b=b-1|0;break g}b=b+2|0;a=-1;if((b|0)==-1){break f}}a=H[H[f>>2]+(b<<2)>>2]}b=1<>>3&536870908)|0;c=H[a>>2];break c}a=c+536870908|0;b=H[c+536870908>>2];c=-2147483648}H[a>>2]=b|c}}function Fd(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=O(0),f=O(0),g=O(0),h=O(0),i=O(0),j=0,k=O(0),l=O(0),m=O(0),n=O(0),o=0;a:{if(H[c+28>>2]!=9|I[c+24|0]!=3){break a}a=H[a+4>>2];if(a-2>>>0>28){break a}o=1;j=H[c+80>>2];if(!j){break a}k=O(O(2)/O((1<>2]>>2]+H[c+48>>2]|0;a=H[H[b>>2]>>2]+H[b+48>>2]|0;b=0;while(1){g=O(0);l=O(0);m=O(0);e=O(O(O(H[a>>2])*k)+O(-1));f=O(O(O(H[a+4>>2])*k)+O(-1));i=O(O(O(1)-O(P(e)))-O(P(f)));h=O(S(O(-i),O(0)));n=O(-h);f=O(f+(f>>8;F[c+10|0]=d>>>16;F[c+11|0]=d>>>24;d=(w(l),y(2));F[c+4|0]=d;F[c+5|0]=d>>>8;F[c+6|0]=d>>>16;F[c+7|0]=d>>>24;d=(w(g),y(2));F[c|0]=d;F[c+1|0]=d>>>8;F[c+2|0]=d>>>16;F[c+3|0]=d>>>24;c=c+12|0;b=b+1|0;if((j|0)!=(b|0)){continue}break}}return o|0}function Vd(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0;a:{if(b>>>0<=63){b=0;a=H[a+12>>2];if(a>>>0<2){break a}b=a-1|0;e=b&3;d=H[c>>2];c=0;b:{if(a-2>>>0<3){a=1;b=0;break b}f=b&-4;b=0;a=1;while(1){g=a+3|0;h=a+2|0;i=a+1|0;b=K[d+(b<<2)>>2]>K[d+(a<<2)>>2]?a:b;b=K[d+(b<<2)>>2]>K[d+(i<<2)>>2]?i:b;b=K[d+(b<<2)>>2]>K[d+(h<<2)>>2]?h:b;b=K[d+(b<<2)>>2]>K[d+(g<<2)>>2]?g:b;a=a+4|0;j=j+4|0;if((f|0)!=(j|0)){continue}break}}if(!e){break a}while(1){b=K[d+(b<<2)>>2]>K[d+(a<<2)>>2]?a:b;a=a+1|0;c=c+1|0;if((e|0)!=(c|0)){continue}break}break a}b=H[a+580>>2];d=32-b|0;if((d|0)>=4){c=H[a+576>>2];if((c|0)==H[a+568>>2]){return 0}d=H[c>>2];e=b+4|0;H[a+580>>2]=e;b=d<>>28|0;if((e|0)!=32){break a}H[a+580>>2]=0;H[a+576>>2]=c+4;return b}c=H[a+576>>2];e=c+4|0;if((e|0)==H[a+568>>2]){return 0}f=H[c>>2];H[a+576>>2]=e;H[a+580>>2]=b-28;a=60-b|0;b=H[c+4>>2]>>>a|f<>>a-d}return b}function Ae(a){a=a|0;var b=0,c=0,d=0,e=0;H[a>>2]=11436;b=H[a+388>>2];if(b){H[a+392>>2]=b;oa(b)}d=H[a+368>>2];H[a+368>>2]=0;if(d){e=d-4|0;b=H[e>>2];if(b){c=(b<<4)+d|0;while(1){c=c-16|0;if((d|0)!=(c|0)){continue}break}}oa(e)}Yc(a+216|0);b=H[a+196>>2];if(b){H[a+200>>2]=b;oa(b)}b=H[a+184>>2];if(b){H[a+188>>2]=b;oa(b)}b=H[a+172>>2];if(b){H[a+176>>2]=b;oa(b)}b=H[a+160>>2];if(b){H[a+164>>2]=b;oa(b)}c=H[a+144>>2];if(c){while(1){b=H[c>>2];oa(c);c=b;if(b){continue}break}}b=H[a+136>>2];H[a+136>>2]=0;if(b){oa(b)}b=H[a+120>>2];if(b){oa(b)}b=H[a+108>>2];if(b){oa(b)}b=H[a+96>>2];if(b){oa(b)}b=H[a+72>>2];if(b){H[a+76>>2]=b;oa(b)}b=H[a+60>>2];if(b){oa(b)}b=H[a+48>>2];if(b){H[a+52>>2]=b;oa(b)}b=H[a+36>>2];if(b){H[a+40>>2]=b;oa(b)}b=H[a+24>>2];if(b){H[a+28>>2]=b;oa(b)}b=H[a+12>>2];if(b){H[a+16>>2]=b;oa(b)}b=H[a+8>>2];H[a+8>>2]=0;if(b){cb(b)}return a|0}function Sg(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;a:{a=ca-32|0;ca=a;e=Ma(c);if(e>>>0<2147483632){b:{c:{if(e>>>0>=11){g=(e|15)+1|0;f=pa(g);H[a+24>>2]=g|-2147483648;H[a+16>>2]=f;H[a+20>>2]=e;g=e+f|0;break c}F[a+27|0]=e;f=a+16|0;g=e+f|0;if(!e){break b}}qa(f,c,e)}F[g|0]=0;H[a+8>>2]=0;H[a>>2]=0;H[a+4>>2]=0;d:{c=nb(b,a+16|0);if((c|0)==(b+4|0)){break d}b=H[c+28>>2];e=H[c+32>>2];if((b|0)==(e|0)){break d}b=e-b|0;if(b&3){break d}e=b>>>2|0;f=H[a+4>>2];b=H[a>>2];g=f-b>>2;e:{if(e>>>0>g>>>0){ya(a,e-g|0);b=H[a>>2];f=H[a+4>>2];break e}if(e>>>0>=g>>>0){break e}f=(e<<2)+b|0;H[a+4>>2]=f}if((b|0)!=(f|0)){e=b;b=H[c+28>>2];qa(e,b,H[c+32>>2]-b|0);break d}Ca();v()}b=H[d>>2];if(b){H[d+4>>2]=b;oa(b)}H[d>>2]=H[a>>2];H[d+4>>2]=H[a+4>>2];H[d+8>>2]=H[a+8>>2];if(F[a+27|0]<0){oa(H[a+16>>2])}ca=a+32|0;break a}Na();v()}}function Be(a){a=a|0;var b=0,c=0,d=0,e=0;H[a>>2]=11384;d=H[a+368>>2];H[a+368>>2]=0;if(d){e=d-4|0;b=H[e>>2];if(b){c=(b<<4)+d|0;while(1){c=c-16|0;if((d|0)!=(c|0)){continue}break}}oa(e)}Yc(a+216|0);b=H[a+196>>2];if(b){H[a+200>>2]=b;oa(b)}b=H[a+184>>2];if(b){H[a+188>>2]=b;oa(b)}b=H[a+172>>2];if(b){H[a+176>>2]=b;oa(b)}b=H[a+160>>2];if(b){H[a+164>>2]=b;oa(b)}c=H[a+144>>2];if(c){while(1){b=H[c>>2];oa(c);c=b;if(b){continue}break}}b=H[a+136>>2];H[a+136>>2]=0;if(b){oa(b)}b=H[a+120>>2];if(b){oa(b)}b=H[a+108>>2];if(b){oa(b)}b=H[a+96>>2];if(b){oa(b)}b=H[a+72>>2];if(b){H[a+76>>2]=b;oa(b)}b=H[a+60>>2];if(b){oa(b)}b=H[a+48>>2];if(b){H[a+52>>2]=b;oa(b)}b=H[a+36>>2];if(b){H[a+40>>2]=b;oa(b)}b=H[a+24>>2];if(b){H[a+28>>2]=b;oa(b)}b=H[a+12>>2];if(b){H[a+16>>2]=b;oa(b)}b=H[a+8>>2];H[a+8>>2]=0;if(b){cb(b)}return a|0}function Ug(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;d=ca-16|0;ca=d;a:{e=Ma(c);if(e>>>0<2147483632){b:{c:{if(e>>>0>=11){f=(e|15)+1|0;a=pa(f);H[d+8>>2]=f|-2147483648;H[d>>2]=a;H[d+4>>2]=e;f=a+e|0;break c}F[d+11|0]=e;f=d+e|0;a=d;if(!e){break b}}qa(a,c,e)}F[f|0]=0;c=I[d+11|0];e=c<<24>>24;b=H[b+4>>2];a=0;d:{if(!b){break d}a=c;c=(e|0)<0;a=c?H[d+4>>2]:a;f=c?H[d>>2]:d;while(1){c=I[b+27|0];g=c<<24>>24<0;c=g?H[b+20>>2]:c;i=c>>>0>>0;e:{f:{g:{h:{i:{j:{h=i?c:a;if(h){g=g?H[b+16>>2]:b+16|0;j=Fa(f,g,h);if(j){break j}if(a>>>0>=c>>>0){break i}break e}if(a>>>0>=c>>>0){break h}break e}if((j|0)<0){break e}}c=Fa(g,f,h);if(c){break g}}if(i){break f}a=1;break d}if((c|0)<0){break f}a=1;break d}b=b+4|0}b=H[b>>2];if(b){continue}break}a=0}if((e|0)<0){oa(H[d>>2])}ca=d+16|0;break a}Na();v()}return a|0}function fd(a,b){var c=0,d=0;c=H[b+8>>2];H[a+4>>2]=H[b+4>>2];H[a+8>>2]=c;H[a+20>>2]=H[b+20>>2];c=H[b+16>>2];H[a+12>>2]=H[b+12>>2];H[a+16>>2]=c;a:{b:{if((a|0)!=(b|0)){c=H[b+28>>2];if(c){d=H[a+24>>2];if(H[a+32>>2]<<5>>>0>>0){if(d){oa(d);H[a+32>>2]=0;H[a+24>>2]=0;H[a+28>>2]=0;c=H[b+28>>2]}if((c|0)<0){break b}c=(c-1>>>5|0)+1|0;d=pa(c<<2);H[a+32>>2]=c;H[a+28>>2]=0;H[a+24>>2]=d;c=H[b+28>>2]}va(d,H[b+24>>2],(c-1>>>3&536870908)+4|0);c=H[b+28>>2]}else{c=0}H[a+28>>2]=c;c=H[b+40>>2];if(c){d=H[a+36>>2];if(H[a+44>>2]<<5>>>0>>0){if(d){oa(d);H[a+44>>2]=0;H[a+36>>2]=0;H[a+40>>2]=0;c=H[b+40>>2]}if((c|0)<0){break a}c=(c-1>>>5|0)+1|0;d=pa(c<<2);H[a+44>>2]=c;H[a+40>>2]=0;H[a+36>>2]=d;c=H[b+40>>2]}va(d,H[b+36>>2],(c-1>>>3&536870908)+4|0);b=H[b+40>>2]}else{b=0}H[a+40>>2]=b}return}sa();v()}sa();v()}function uc(a){var b=0,c=0,d=0;b=H[a+8>>2];d=H[a>>2];a:{if(I[a+12|0]){b:{c:{d:{e:{if((b|0)==-1){break e}c=b+1|0;b=(c>>>0)%3|0?c:b-2|0;if((b|0)==-1){break e}b=H[H[d+12>>2]+(b<<2)>>2];if((b|0)!=-1){break d}}H[a+8>>2]=-1;break c}c=b+1|0;b=(c>>>0)%3|0?c:b-2|0;H[a+8>>2]=b;if((b|0)!=-1){break b}}c=H[a+4>>2];b=-1;f:{if((c|0)==-1){break f}g:{if((c>>>0)%3|0){c=c-1|0;break g}c=c+2|0;b=-1;if((c|0)==-1){break f}}c=H[H[d+12>>2]+(c<<2)>>2];b=-1;if((c|0)==-1){break f}b=c-1|0;if((c>>>0)%3|0){break f}b=c+2|0}F[a+12|0]=0;H[a+8>>2]=b;return}if((b|0)!=H[a+4>>2]){break a}H[a+8>>2]=-1;return}c=-1;h:{if((b|0)==-1){break h}i:{if((b>>>0)%3|0){b=b-1|0;break i}b=b+2|0;c=-1;if((b|0)==-1){break h}}b=H[H[d+12>>2]+(b<<2)>>2];c=-1;if((b|0)==-1){break h}c=b-1|0;if((b>>>0)%3|0){break h}c=b+2|0}H[a+8>>2]=c}}function Rf(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;f=ca-32|0;ca=f;d=H[a+28>>2];H[f+16>>2]=d;g=H[a+20>>2];H[f+28>>2]=c;H[f+24>>2]=b;b=g-d|0;H[f+20>>2]=b;g=b+c|0;i=2;a:{b:{b=f+16|0;d=Z(H[a+60>>2],b|0,2,f+12|0)|0;if(d){H[3992]=d;d=-1}else{d=0}c:{d:{if(d){d=b;break d}while(1){e=H[f+12>>2];if((e|0)==(g|0)){break c}if((e|0)<0){d=b;break b}h=H[b+4>>2];j=h>>>0>>0;d=(j<<3)+b|0;h=e-(j?h:0)|0;H[d>>2]=h+H[d>>2];b=(j?12:4)+b|0;H[b>>2]=H[b>>2]-h;g=g-e|0;b=d;i=i-j|0;e=Z(H[a+60>>2],b|0,i|0,f+12|0)|0;if(e){H[3992]=e;e=-1}else{e=0}if(!e){continue}break}}if((g|0)!=-1){break b}}b=H[a+44>>2];H[a+28>>2]=b;H[a+20>>2]=b;H[a+16>>2]=b+H[a+48>>2];a=c;break a}H[a+28>>2]=0;H[a+16>>2]=0;H[a+20>>2]=0;H[a>>2]=H[a>>2]|32;a=0;if((i|0)==2){break a}a=c-H[d+4>>2]|0}ca=f+32|0;return a|0}function Ih(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0;e=H[a+4>>2];d=H[e>>2];a:{b=H[a+12>>2];c=H[b+56>>2]-H[b+52>>2]|0;f=c>>2;b:{if(f>>>0<=H[e+8>>2]-d>>2>>>0){break b}if((c|0)<0){break a}b=H[e+4>>2];c=pa(c);f=c+(f<<2)|0;g=c+(b-d&-4)|0;c=g;if((b|0)!=(d|0)){while(1){c=c-4|0;b=b-4|0;H[c>>2]=H[b>>2];if((b|0)!=(d|0)){continue}break}}H[e+8>>2]=f;H[e+4>>2]=g;H[e>>2]=c;if(!d){break b}oa(d)}e=a+8|0;b=H[a+76>>2];c:{if(b){d=H[b>>2];if((d|0)==H[b+4>>2]){return 1}b=0;while(1){c=we(e,H[(b<<2)+d>>2]);if(!c){break c}f=H[a+76>>2];d=H[f>>2];b=b+1|0;if(b>>>0>2]-d>>2>>>0){continue}break}break c}c=1;a=H[H[a+12>>2]+64>>2];a=H[a+4>>2]-H[a>>2]|0;if(a>>>0<12){break c}a=(a>>2>>>0)/3|0;b=0;while(1){c=we(e,N(b,3));if(!c){break c}b=b+1|0;if((a|0)!=(b|0)){continue}break}}return c|0}sa();v()}function ff(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;h=H[c+12>>2];f=h;e=H[c+20>>2];j=H[c+8>>2];g=H[c+16>>2];a:{if((f|0)<=(e|0)&j>>>0<=g>>>0|(e|0)>(f|0)){break a}k=H[c>>2];i=F[k+g|0];d=e;f=g+1|0;d=f?d:d+1|0;H[c+16>>2]=f;H[c+20>>2]=d;if((i-7&255)>>>0<247){break a}b:{if((i|0)==-2){break b}if((d|0)>=(h|0)&f>>>0>=j>>>0|(d|0)>(h|0)){break a}d=F[f+k|0];g=g+2|0;e=g>>>0<2?e+1|0:e;H[c+16>>2]=g;H[c+20>>2]=e;if((d-4&255)>>>0<251){break a}e=ea[H[H[a>>2]+40>>2]](a,i,d)|0;d=H[a+20>>2];H[a+20>>2]=e;if(!d){break b}ea[H[H[d>>2]+4>>2]](d)}d=H[a+20>>2];if(d){if(!(ea[H[H[a>>2]+28>>2]](a,d)|0)){break a}}if(!(ea[H[H[a>>2]+36>>2]](a,b,c)|0)){break a}c=H[a+4>>2];if(!(!c|I[c+36|0]>1)){if(!(ea[H[H[a>>2]+48>>2]](a,H[b+4>>2]-H[b>>2]>>2)|0)){break a}}l=1}return l|0}function Oh(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0;e=H[a+4>>2];d=H[e>>2];a:{b=H[a+12>>2];c=H[b+28>>2]-H[b+24>>2]|0;f=c>>2;b:{if(f>>>0<=H[e+8>>2]-d>>2>>>0){break b}if((c|0)<0){break a}b=H[e+4>>2];c=pa(c);f=c+(f<<2)|0;g=c+(b-d&-4)|0;c=g;if((b|0)!=(d|0)){while(1){c=c-4|0;b=b-4|0;H[c>>2]=H[b>>2];if((b|0)!=(d|0)){continue}break}}H[e+8>>2]=f;H[e+4>>2]=g;H[e>>2]=c;if(!d){break b}oa(d)}e=a+8|0;b=H[a+76>>2];c:{if(b){d=H[b>>2];if((d|0)==H[b+4>>2]){return 1}b=0;while(1){c=xe(e,H[(b<<2)+d>>2]);if(!c){break c}f=H[a+76>>2];d=H[f>>2];b=b+1|0;if(b>>>0>2]-d>>2>>>0){continue}break}break c}c=1;a=H[a+12>>2];a=H[a+4>>2]-H[a>>2]|0;if(a>>>0<12){break c}a=(a>>2>>>0)/3|0;b=0;while(1){c=xe(e,N(b,3));if(!c){break c}b=b+1|0;if((a|0)!=(b|0)){continue}break}}return c|0}sa();v()}function Te(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;g=H[b+8>>2];h=H[b+12>>2];c=H[b+20>>2];i=c;e=H[b+16>>2];d=e+4|0;c=d>>>0<4?c+1|0:c;a:{if(d>>>0>g>>>0&(c|0)>=(h|0)|(c|0)>(h|0)){break a}j=H[b>>2];f=e+j|0;f=I[f|0]|I[f+1|0]<<8|(I[f+2|0]<<16|I[f+3|0]<<24);H[b+16>>2]=d;H[b+20>>2]=c;k=J[b+38>>1];if(k>>>0<=513){c=i;d=e+8|0;c=d>>>0<8?c+1|0:c;if(d>>>0>g>>>0&(c|0)>=(h|0)|(c|0)>(h|0)){break a}H[b+16>>2]=d;H[b+20>>2]=c}if(!(f&1)){break a}e=Q(f)^31;if(e-1>>>0>28){break a}H[a+8>>2]=e+1;i=-2<>2]=e;H[a+12>>2]=i^-1;H[a+24>>2]=e>>1;L[a+20>>2]=O(2)/O(e|0);if(k>>>0<=513){if((c|0)>=(h|0)&d>>>0>=g>>>0|(c|0)>(h|0)){break a}g=I[d+j|0];d=d+1|0;c=d?c:c+1|0;H[b+16>>2]=d;H[b+20>>2]=c;if(g>>>0>1){break a}H[a+72>>2]=g}l=ta(a+96|0,b)}return l|0}function Se(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;f=H[b+8>>2];g=H[b+12>>2];c=H[b+20>>2];h=c;i=H[b+16>>2];e=i+4|0;c=e>>>0<4?c+1|0:c;a:{if(e>>>0>f>>>0&(c|0)>=(g|0)|(c|0)>(g|0)){break a}j=H[b>>2];d=i+j|0;d=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);H[b+16>>2]=e;H[b+20>>2]=c;c=h;e=i+8|0;c=e>>>0<8?c+1|0:c;if(e>>>0>f>>>0&(c|0)>=(g|0)|(c|0)>(g|0)){break a}H[b+16>>2]=e;H[b+20>>2]=c;if(!(d&1)){break a}d=Q(d)^31;if(d-1>>>0>28){break a}H[a+8>>2]=d+1;k=-2<>2]=d;H[a+12>>2]=k^-1;H[a+24>>2]=d>>1;L[a+20>>2]=O(2)/O(d|0);if(J[b+38>>1]<=513){if((c|0)>=(g|0)&e>>>0>=f>>>0|(c|0)>(g|0)){break a}c=I[e+j|0];f=i+9|0;h=f>>>0<9?h+1|0:h;H[b+16>>2]=f;H[b+20>>2]=h;if(c>>>0>1){break a}H[a+72>>2]=c}l=ta(a+96|0,b)}return l|0} function va(a,b,c){var d=0,e=0;a:{if((a|0)==(b|0)){break a}e=a+c|0;if(b-e>>>0<=0-(c<<1)>>>0){return qa(a,b,c)}d=(a^b)&3;b:{c:{if(a>>>0>>0){if(d){d=a;break b}if(!(a&3)){d=a;break c}d=a;while(1){if(!c){break a}F[d|0]=I[b|0];b=b+1|0;c=c-1|0;d=d+1|0;if(d&3){continue}break}break c}d:{if(d){break d}if(e&3){while(1){if(!c){break a}c=c-1|0;d=c+a|0;F[d|0]=I[b+c|0];if(d&3){continue}break}}if(c>>>0<=3){break d}while(1){c=c-4|0;H[c+a>>2]=H[b+c>>2];if(c>>>0>3){continue}break}}if(!c){break a}while(1){c=c-1|0;F[c+a|0]=I[b+c|0];if(c){continue}break}break a}if(c>>>0<=3){break b}while(1){H[d>>2]=H[b>>2];b=b+4|0;d=d+4|0;c=c-4|0;if(c>>>0>3){continue}break}}if(!c){break a}while(1){F[d|0]=I[b|0];d=d+1|0;b=b+1|0;c=c-1|0;if(c){continue}break}}return a}function Vb(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;d=H[a+8>>2];c=H[a+4>>2];if(d-c>>2>>>0>=b>>>0){if(b){b=b<<2;c=ra(c,0,b)+b|0}H[a+4>>2]=c;return}a:{b:{c:{g=H[a>>2];f=c-g>>2;e=f+b|0;if(e>>>0<1073741824){d=d-g|0;h=d>>>1|0;e=d>>>0>=2147483644?1073741823:e>>>0>>0?h:e;if(e){if(e>>>0>=1073741824){break c}i=pa(e<<2)}d=(f<<2)+i|0;f=b<<2;b=ra(d,0,f);f=b+f|0;e=(e<<2)+i|0;if((c|0)==(g|0)){break b}while(1){c=c-4|0;b=H[c>>2];H[c>>2]=0;d=d-4|0;H[d>>2]=b;if((c|0)!=(g|0)){continue}break}H[a+8>>2]=e;b=H[a+4>>2];H[a+4>>2]=f;c=H[a>>2];H[a>>2]=d;if((b|0)==(c|0)){break a}while(1){b=b-4|0;a=H[b>>2];H[b>>2]=0;if(a){ea[H[H[a>>2]+4>>2]](a)}if((b|0)!=(c|0)){continue}break}break a}sa();v()}wa();v()}H[a+8>>2]=e;H[a+4>>2]=f;H[a>>2]=b}if(c){oa(c)}}function Md(a,b,c){a:{switch(b-9|0){case 0:b=H[c>>2];H[c>>2]=b+4;H[a>>2]=H[b>>2];return;case 6:b=H[c>>2];H[c>>2]=b+4;b=G[b>>1];H[a>>2]=b;H[a+4>>2]=b>>31;return;case 7:b=H[c>>2];H[c>>2]=b+4;H[a>>2]=J[b>>1];H[a+4>>2]=0;return;case 8:b=H[c>>2];H[c>>2]=b+4;b=F[b|0];H[a>>2]=b;H[a+4>>2]=b>>31;return;case 9:b=H[c>>2];H[c>>2]=b+4;H[a>>2]=I[b|0];H[a+4>>2]=0;return;case 16:b=H[c>>2]+7&-8;H[c>>2]=b+8;M[a>>3]=M[b>>3];return;case 17:v();default:return;case 1:case 4:case 14:b=H[c>>2];H[c>>2]=b+4;b=H[b>>2];H[a>>2]=b;H[a+4>>2]=b>>31;return;case 2:case 5:case 11:case 15:b=H[c>>2];H[c>>2]=b+4;H[a>>2]=H[b>>2];H[a+4>>2]=0;return;case 3:case 10:case 12:case 13:break a}}b=H[c>>2]+7&-8;H[c>>2]=b+8;c=H[b+4>>2];H[a>>2]=H[b>>2];H[a+4>>2]=c}function Ed(a,b){var c=0,d=0,e=0;c=ca+-64|0;ca=c;d=H[a>>2];e=H[d-4>>2];d=H[d-8>>2];H[c+32>>2]=0;H[c+36>>2]=0;H[c+40>>2]=0;H[c+44>>2]=0;H[c+48>>2]=0;H[c+52>>2]=0;F[c+55|0]=0;F[c+56|0]=0;F[c+57|0]=0;F[c+58|0]=0;F[c+59|0]=0;F[c+60|0]=0;F[c+61|0]=0;F[c+62|0]=0;H[c+24>>2]=0;H[c+28>>2]=0;H[c+20>>2]=0;H[c+16>>2]=14924;H[c+12>>2]=a;H[c+8>>2]=b;a=a+d|0;d=0;a:{if(Ya(e,b,0)){H[c+56>>2]=1;ea[H[H[e>>2]+20>>2]](e,c+8|0,a,a,1,0);d=H[c+32>>2]==1?a:0;break a}ea[H[H[e>>2]+24>>2]](e,c+8|0,a,1,0);b:{switch(H[c+44>>2]){case 0:d=H[c+48>>2]==1?H[c+36>>2]==1?H[c+40>>2]==1?H[c+28>>2]:0:0:0;break a;case 1:break b;default:break a}}if(H[c+32>>2]!=1){if(H[c+48>>2]|H[c+36>>2]!=1|H[c+40>>2]!=1){break a}}d=H[c+24>>2]}ca=c- -64|0;return d}function ua(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;H[a+16>>2]=0;e=H[a>>2];H[a+4>>2]=e;H[a+12>>2]=e;e=H[b+8>>2];c=H[b+12>>2];h=c;d=H[b+20>>2];f=H[b+16>>2];g=f+4|0;d=g>>>0<4?d+1|0:d;a:{if(e>>>0>>0&(d|0)>=(c|0)|(d|0)>(c|0)){break a}c=f+H[b>>2]|0;c=I[c|0]|I[c+1|0]<<8|(I[c+2|0]<<16|I[c+3|0]<<24);H[b+16>>2]=g;H[b+20>>2]=d;if(!c|c&3){break a}f=h-(d+(e>>>0>>0)|0)|0;if(e-g>>>0>>0&(f|0)<=0|(f|0)<0){break a}if(c>>>0>=4){ya(a,c>>>2|0);h=H[b+12>>2];g=H[b+16>>2];d=H[b+20>>2];e=H[b+8>>2]}f=c+g|0;d=f>>>0>>0?d+1|0:d;if(e>>>0>>0&(d|0)>=(h|0)|(d|0)>(h|0)){break a}qa(H[a>>2],H[b>>2]+g|0,c);d=H[b+20>>2];e=c+H[b+16>>2]|0;d=e>>>0>>0?d+1|0:d;H[b+16>>2]=e;H[b+20>>2]=d;H[a+16>>2]=0;H[a+12>>2]=H[a>>2];i=1}return i}function de(a,b){var c=0,d=0,e=0,f=0;d=-1;e=-1;f=-1;a:{b:{if((b|0)==-1){break b}e=H[H[H[a+4>>2]+12>>2]+(b<<2)>>2];c=b+1|0;c=(c>>>0)%3|0?c:b-2|0;if((c|0)>=0){f=(c>>>0)/3|0;f=H[(H[H[a>>2]+96>>2]+N(f,12)|0)+(c-N(f,3)<<2)>>2]}c:{if((e|0)==-1){break c}c=((e>>>0)%3|0?-1:2)+e|0;if((c|0)<0){break c}d=(c>>>0)/3|0;d=H[(H[H[a>>2]+96>>2]+N(d,12)|0)+(c-N(d,3)<<2)>>2]}c=-1;if((d|0)!=(f|0)){break a}f=-1;d:{b=((b>>>0)%3|0?-1:2)+b|0;if((b|0)>=0){d=(b>>>0)/3|0;d=H[(H[H[a>>2]+96>>2]+N(d,12)|0)+(b-N(d,3)<<2)>>2];if((e|0)==-1){break b}break d}d=-1;if((e|0)!=-1){break d}break b}b=e+1|0;b=(b>>>0)%3|0?b:e-2|0;if((b|0)<0){break b}c=H[H[a>>2]+96>>2];a=(b>>>0)/3|0;f=H[(c+N(a,12)|0)+(b-N(a,3)<<2)>>2]}c=(d|0)!=(f|0)?-1:e}return c}function Ah(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0;c=pa(72);H[c+4>>2]=0;H[c+8>>2]=0;H[c>>2]=1984;H[c+12>>2]=0;H[c+16>>2]=0;H[c+20>>2]=0;H[c+24>>2]=0;H[c+28>>2]=0;H[c+32>>2]=0;H[c+36>>2]=0;H[c+40>>2]=0;H[c>>2]=2128;H[c+44>>2]=0;H[c+48>>2]=0;H[c+52>>2]=0;H[c+56>>2]=0;H[c+60>>2]=0;H[c+64>>2]=0;H[c+68>>2]=0;h=c;a:{if((b|0)>=0){g=a+8|0;c=H[a+12>>2];e=H[a+8>>2];f=c-e>>2;b:{if((f|0)>(b|0)){break b}d=b+1|0;if(b>>>0>=f>>>0){Vb(g,d-f|0);break b}if(d>>>0>=f>>>0){break b}e=(d<<2)+e|0;if((e|0)!=(c|0)){while(1){c=c-4|0;d=H[c>>2];H[c>>2]=0;if(d){ea[H[H[d>>2]+4>>2]](d)}if((c|0)!=(e|0)){continue}break}}H[a+12>>2]=e}a=H[g>>2]+(b<<2)|0;c=H[a>>2];H[a>>2]=h;if(!c){break a}}ea[H[H[c>>2]+4>>2]](c)}return(b^-1)>>>31|0}function ra(a,b,c){var d=0,e=0,f=0,g=0;a:{if(!c){break a}F[a|0]=b;d=a+c|0;F[d-1|0]=b;if(c>>>0<3){break a}F[a+2|0]=b;F[a+1|0]=b;F[d-3|0]=b;F[d-2|0]=b;if(c>>>0<7){break a}F[a+3|0]=b;F[d-4|0]=b;if(c>>>0<9){break a}d=0-a&3;e=d+a|0;b=N(b&255,16843009);H[e>>2]=b;d=c-d&-4;c=d+e|0;H[c-4>>2]=b;if(d>>>0<9){break a}H[e+8>>2]=b;H[e+4>>2]=b;H[c-8>>2]=b;H[c-12>>2]=b;if(d>>>0<25){break a}H[e+24>>2]=b;H[e+20>>2]=b;H[e+16>>2]=b;H[e+12>>2]=b;H[c-16>>2]=b;H[c-20>>2]=b;H[c-24>>2]=b;H[c-28>>2]=b;g=e&4|24;c=d-g|0;if(c>>>0<32){break a}d=Rj(b,0,1,1);f=da;b=e+g|0;while(1){H[b+24>>2]=d;H[b+28>>2]=f;H[b+16>>2]=d;H[b+20>>2]=f;H[b+8>>2]=d;H[b+12>>2]=f;H[b>>2]=d;H[b+4>>2]=f;b=b+32|0;c=c-32|0;if(c>>>0>31){continue}break}}return a}function Mj(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;d=H[b+8>>2];e=H[b+12>>2];g=e;e=H[b+20>>2];k=e;h=H[b+16>>2];c=h+4|0;e=c>>>0<4?e+1|0:e;i=c;a:{if(c>>>0>d>>>0&(e|0)>=(g|0)|(e|0)>(g|0)){break a}j=H[b>>2];c=j+h|0;f=I[c|0]|I[c+1|0]<<8|(I[c+2|0]<<16|I[c+3|0]<<24);H[b+16>>2]=i;H[b+20>>2]=e;c=d;d=k;e=h+8|0;d=e>>>0<8?d+1|0:d;if(c>>>0>>0&(d|0)>=(g|0)|(d|0)>(g|0)){break a}c=i+j|0;c=I[c|0]|I[c+1|0]<<8|(I[c+2|0]<<16|I[c+3|0]<<24);H[b+16>>2]=e;H[b+20>>2]=d;if((c|0)<(f|0)){break a}H[a+16>>2]=c;H[a+12>>2]=f;d=(c>>31)-((f>>31)+(c>>>0>>0)|0)|0;b=c-f|0;if(!d&b>>>0>2147483646|d){break a}l=1;d=b+1|0;H[a+20>>2]=d;b=d>>>1|0;H[a+24>>2]=b;H[a+28>>2]=0-b;if(d&1){break a}H[a+24>>2]=b-1}return l|0}function sd(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;e=a+16|0;d=H[e>>2];a:{if(!d){break a}f=H[b>>2];b=e;while(1){g=(f|0)>H[d+16>>2];b=g?b:d;d=H[(g?d+4|0:d)>>2];if(d){continue}break}if((b|0)==(e|0)|(f|0)>2]){break a}d=H[b+24>>2];if(!d){break a}f=b+20|0;b=I[c+11|0];e=b<<24>>24<0;g=e?H[c>>2]:c;b=e?H[c+4>>2]:b;while(1){e=I[d+27|0];h=e<<24>>24<0;e=h?H[d+20>>2]:e;j=e>>>0>>0;b:{c:{d:{e:{f:{g:{i=j?e:b;if(i){h=h?H[d+16>>2]:d+16|0;k=Fa(g,h,i);if(k){break g}if(b>>>0>=e>>>0){break f}break b}if(b>>>0>=e>>>0){break e}break b}if((k|0)<0){break b}}e=Fa(h,g,i);if(e){break d}}if(j){break c}return Tc(f,c)}if((e|0)<0){break c}return Tc(f,c)}d=d+4|0}d=H[d>>2];if(d){continue}break}}return Tc(a,c)}function be(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;d=ca-16|0;ca=d;f=H[a+24>>2];k=H[a+28>>2];a:{if((f|0)!=(k|0)){while(1){H[d+8>>2]=0;H[d>>2]=0;H[d+4>>2]=0;a=$d(H[f>>2],b,d);g=I[d+11|0];h=g<<24>>24;i=3;b:{c:{d:{if(!a){break d}i=0;a=I[c+11|0];e=a<<24>>24;j=(h|0)<0?H[d+4>>2]:g;if((j|0)!=(((e|0)<0?H[c+4>>2]:a)|0)){break d}a=(e|0)<0?H[c>>2]:c;e=(h|0)<0;e:{if(!e){e=d;if(!h){break e}while(1){if(I[e|0]!=I[a|0]){break d}a=a+1|0;e=e+1|0;g=g-1|0;if(g){continue}break}break e}if(!j){break e}if(Fa(e?H[d>>2]:d,a,j)){break c}}l=H[f>>2];i=1}if((h|0)>=0){break b}}oa(H[d>>2])}f:{switch(i|0){case 0:case 3:break f;default:break a}}f=f+4|0;if((k|0)!=(f|0)){continue}break}}l=0}ca=d+16|0;return l}function Cb(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0;f=c-b|0;h=f>>2;d=H[a+8>>2];e=H[a>>2];if(h>>>0<=d-e>>2>>>0){d=H[a+4>>2];g=d-e|0;f=g+b|0;i=g>>2;g=i>>>0>>0?f:c;if((g|0)!=(b|0)){while(1){H[e>>2]=H[b>>2];e=e+4|0;b=b+4|0;if((g|0)!=(b|0)){continue}break}}if(h>>>0>i>>>0){if((c|0)!=(g|0)){while(1){H[d>>2]=H[f>>2];d=d+4|0;f=f+4|0;if((f|0)!=(c|0)){continue}break}}H[a+4>>2]=d;return}H[a+4>>2]=e;return}if(e){H[a+4>>2]=e;oa(e);H[a+8>>2]=0;H[a>>2]=0;H[a+4>>2]=0;d=0}a:{if((f|0)<0){break a}e=d>>>1|0;d=d>>>0>=2147483644?1073741823:e>>>0>h>>>0?e:h;if(d>>>0>=1073741824){break a}e=d<<2;d=pa(e);H[a>>2]=d;H[a+8>>2]=d+e;if((b|0)!=(c|0)){c=b;b=(f-4&-4)+4|0;d=qa(d,c,b)+b|0}H[a+4>>2]=d;return}sa();v()}function Oa(a,b,c){var d=0,e=0,f=0;e=ca-16|0;ca=e;H[a+4>>2]=0;a:{b:{if(!b){break b}f=H[a+8>>2];d=f<<5;c:{if(d>>>0>=b>>>0){H[a+4>>2]=b;break c}H[e+8>>2]=0;H[e>>2]=0;H[e+4>>2]=0;if((b|0)<0){break a}if(d>>>0<=1073741822){f=f<<6;d=b+31&-32;d=d>>>0>>0?f:d}else{d=2147483647}pb(e,d);f=H[a>>2];H[a>>2]=H[e>>2];H[e>>2]=f;d=H[a+4>>2];H[a+4>>2]=b;H[e+4>>2]=d;d=H[a+8>>2];H[a+8>>2]=H[e+8>>2];H[e+8>>2]=d;if(!f){break c}oa(f)}d=b>>>5|0;a=H[a>>2];if(I[c|0]){if(b>>>0>=32){ra(a,255,d<<2)}if((b&-32)==(b|0)){break b}a=a+(d<<2)|0;H[a>>2]=H[a>>2]|-1>>>32-(b&31);break b}if(b>>>0>=32){ra(a,0,d<<2)}if((b&-32)==(b|0)){break b}a=a+(d<<2)|0;H[a>>2]=H[a>>2]&(-1>>>32-(b&31)^-1)}ca=e+16|0;return}sa();v()}function Hg(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;e=ca-32|0;ca=e;a:{b:{f=Ma(c);if(f>>>0<2147483632){c:{d:{if(f>>>0>=11){a=(f|15)+1|0;g=pa(a);H[e+24>>2]=a|-2147483648;H[e+16>>2]=g;H[e+20>>2]=f;a=f+g|0;break d}F[e+27|0]=f;g=e+16|0;a=f+g|0;if(!f){break c}}qa(g,c,f)}F[a|0]=0;c=Ma(d);if(c>>>0>=2147483632){break b}e:{f:{if(c>>>0>=11){f=(c|15)+1|0;a=pa(f);H[e+8>>2]=f|-2147483648;H[e>>2]=a;H[e+4>>2]=c;g=a+c|0;break f}F[e+11|0]=c;g=c+e|0;a=e;if(!c){break e}}qa(a,d,c)}F[g|0]=0;c=H[b+4>>2];a=-1;g:{if(!c){break g}c=be(c,e+16|0,e);a=-1;if(!c){break g}a=Yd(b,H[c+24>>2])}if(F[e+11|0]<0){oa(H[e>>2])}if(F[e+27|0]<0){oa(H[e+16>>2])}ca=e+32|0;break a}Na();v()}Na();v()}return a|0}function jb(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;b=H[b>>2];h=H[b+8>>2];i=H[b+4>>2];j=H[b>>2];d=H[a>>2];b=H[d+4>>2];a=H[d+8>>2];if(b>>>0>>0){H[b+8>>2]=h;H[b+4>>2]=i;H[b>>2]=j;H[d+4>>2]=b+12;return}a:{e=H[d>>2];g=(b-e|0)/12|0;c=g+1|0;if(c>>>0<357913942){f=(a-e|0)/12|0;a=f<<1;c=f>>>0>=178956970?357913941:a>>>0>c>>>0?a:c;if(c){if(c>>>0>=357913942){break a}f=pa(N(c,12))}else{f=0}a=f+N(g,12)|0;H[a+8>>2]=h;H[a+4>>2]=i;H[a>>2]=j;g=a+12|0;if((b|0)!=(e|0)){while(1){a=a-12|0;b=b-12|0;H[a>>2]=H[b>>2];H[a+4>>2]=H[b+4>>2];H[a+8>>2]=H[b+8>>2];if((b|0)!=(e|0)){continue}break}}H[d+8>>2]=f+N(c,12);H[d+4>>2]=g;H[d>>2]=a;if(e){oa(e)}return}sa();v()}wa();v()}function lf(a,b){a=a|0;b=b|0;a=0;a:{switch(b|0){case 0:a=pa(20);H[a+12>>2]=-1;H[a+16>>2]=0;H[a+4>>2]=0;H[a+8>>2]=0;H[a>>2]=2232;return a|0;case 1:a=pa(24);H[a+12>>2]=-1;H[a+16>>2]=0;H[a+4>>2]=0;H[a+8>>2]=0;H[a>>2]=2232;H[a+20>>2]=0;H[a>>2]=2448;return a|0;case 2:a=pa(48);H[a+12>>2]=-1;H[a+16>>2]=0;H[a+4>>2]=0;H[a+8>>2]=0;H[a>>2]=2232;H[a+20>>2]=0;H[a>>2]=2448;H[a+24>>2]=1832;H[a>>2]=11048;H[a+32>>2]=0;H[a+36>>2]=0;H[a+28>>2]=-1;H[a+40>>2]=0;H[a+44>>2]=0;return a|0;case 3:a=pa(32);H[a+12>>2]=-1;H[a+16>>2]=0;H[a+4>>2]=0;H[a+8>>2]=0;H[a>>2]=2232;H[a+20>>2]=0;H[a>>2]=2448;H[a+24>>2]=1032;H[a>>2]=7028;H[a+28>>2]=-1;break;default:break a}}return a|0}function tf(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;f=H[b>>2];b=H[b+4>>2];d=H[H[a+8>>2]+40>>2];j=d;m=pa((d|0)<0?-1:d);i=b-f|0;e=1;a:{if((i|0)<4){break a}b=0;g=H[c+16>>2];k=d;f=g+d|0;d=0+H[c+20>>2]|0;d=f>>>0>>0?d+1|0:d;h=H[c+12>>2];e=0;if(K[c+8>>2]>>0&(d|0)>=(h|0)|(d|0)>(h|0)){break a}e=i>>2;i=(e|0)<=1?1:e;while(1){b:{g=qa(m,H[c>>2]+g|0,j);H[c+16>>2]=f;H[c+20>>2]=d;qa(H[H[H[a+8>>2]+64>>2]>>2]+b|0,g,j);l=l+1|0;if((i|0)==(l|0)){break b}b=b+j|0;d=n+H[c+20>>2]|0;g=H[c+16>>2];f=k+g|0;d=f>>>0>>0?d+1|0:d;h=H[c+12>>2];if((d|0)<=(h|0)&K[c+8>>2]>=f>>>0|(d|0)<(h|0)){continue}}break}e=(e|0)<=(l|0)}oa(m);return e|0}function Ti(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0;H[b>>2]=1;f=b+8|0;c=H[b+8>>2];d=H[b+12>>2]-c|0;if(d>>>0<=4294967291){kc(f,d+4|0);c=H[f>>2]}c=c+d|0;d=H[a+4>>2];F[c|0]=d;F[c+1|0]=d>>>8;F[c+2|0]=d>>>16;F[c+3|0]=d>>>24;c=H[a+8>>2];if((c|0)!=H[a+12>>2]){d=0;while(1){g=(d<<2)+c|0;c=H[b+8>>2];e=H[b+12>>2]-c|0;if(e>>>0<=4294967291){kc(f,e+4|0);c=H[f>>2]}c=c+e|0;e=H[g>>2];F[c|0]=e;F[c+1|0]=e>>>8;F[c+2|0]=e>>>16;F[c+3|0]=e>>>24;d=d+1|0;c=H[a+8>>2];if(d>>>0>2]-c>>2>>>0){continue}break}}c=H[b+12>>2];b=H[b+8>>2];c=c-b|0;if(c>>>0<=4294967291){kc(f,c+4|0);b=H[f>>2]}b=b+c|0;a=H[a+20>>2];F[b|0]=a;F[b+1|0]=a>>>8;F[b+2|0]=a>>>16;F[b+3|0]=a>>>24}function Aa(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0;f=c-b|0;g=f>>2;d=H[a+8>>2];e=H[a>>2];if(g>>>0<=d-e>>2>>>0){f=H[a+4>>2]-e|0;d=f+b|0;h=f>>2;f=h>>>0>>0?d:c;i=f-b|0;if((b|0)!=(f|0)){va(e,b,i)}if(g>>>0>h>>>0){b=H[a+4>>2];if((c|0)!=(f|0)){while(1){H[b>>2]=H[d>>2];b=b+4|0;d=d+4|0;if((d|0)!=(c|0)){continue}break}}H[a+4>>2]=b;return}H[a+4>>2]=e+i;return}if(e){H[a+4>>2]=e;oa(e);H[a+8>>2]=0;H[a>>2]=0;H[a+4>>2]=0;d=0}a:{if((f|0)<0){break a}e=d>>>1|0;d=d>>>0>=2147483644?1073741823:e>>>0>g>>>0?e:g;if(d>>>0>=1073741824){break a}e=d<<2;d=pa(e);H[a>>2]=d;H[a+8>>2]=d+e;if((b|0)!=(c|0)){c=b;b=(f-4&-4)+4|0;d=qa(d,c,b)+b|0}H[a+4>>2]=d;return}sa();v()}function Rb(a,b){var c=0,d=0,e=0,f=0,g=0,h=0;c=H[a+4>>2];if((c|0)!=H[a+8>>2]){e=H[b+4>>2];H[c>>2]=H[b>>2];H[c+4>>2]=e;H[c+8>>2]=H[b+8>>2];H[a+4>>2]=c+12;return}a:{g=H[a>>2];d=(c-g|0)/12|0;e=d+1|0;if(e>>>0<357913942){f=d<<1;f=d>>>0>=178956970?357913941:e>>>0>>0?f:e;if(f){if(f>>>0>=357913942){break a}e=pa(N(f,12))}else{e=0}d=e+N(d,12)|0;h=H[b+4>>2];H[d>>2]=H[b>>2];H[d+4>>2]=h;H[d+8>>2]=H[b+8>>2];b=d+12|0;if((c|0)!=(g|0)){while(1){c=c-12|0;h=H[c+4>>2];d=d-12|0;H[d>>2]=H[c>>2];H[d+4>>2]=h;H[d+8>>2]=H[c+8>>2];if((c|0)!=(g|0)){continue}break}c=H[a>>2]}H[a+8>>2]=e+N(f,12);H[a+4>>2]=b;H[a>>2]=d;if(c){oa(c)}return}sa();v()}wa();v()}function Qi(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;f=ca-32|0;ca=f;g=e>>>0>1073741823?-1:e<<2;l=ra(pa(g),0,g);g=l;i=H[g>>2];g=H[g+4>>2];k=H[b+4>>2];H[f+24>>2]=H[b>>2];H[f+28>>2]=k;H[f+8>>2]=i;H[f+12>>2]=g;i=a+8|0;rc(f+16|0,i,f+8|0,f+24|0);H[c>>2]=H[f+16>>2];H[c+4>>2]=H[f+20>>2];if((d|0)>(e|0)){k=0-e<<2;a=e;while(1){h=a<<2;g=h+c|0;j=g+k|0;m=H[j>>2];j=H[j+4>>2];h=b+h|0;n=H[h+4>>2];H[f+24>>2]=H[h>>2];H[f+28>>2]=n;H[f+8>>2]=m;H[f+12>>2]=j;rc(f+16|0,i,f+8|0,f+24|0);H[g>>2]=H[f+16>>2];H[g+4>>2]=H[f+20>>2];a=a+e|0;if((d|0)>(a|0)){continue}break}}oa(l);ca=f+32|0;return 1}function Hi(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;f=ca-32|0;ca=f;h=e>>>0>1073741823?-1:e<<2;h=ra(pa(h),0,h);g=H[b>>2];i=H[b+4>>2];k=H[h+4>>2];H[f+16>>2]=H[h>>2];H[f+20>>2]=k;H[f+8>>2]=g;H[f+12>>2]=i;i=a+8|0;qc(f+24|0,i,f+16|0,f+8|0);H[c>>2]=H[f+24>>2];H[c+4>>2]=H[f+28>>2];if((d|0)>(e|0)){k=0-e<<2;a=e;while(1){g=a<<2;j=g+b|0;m=H[j>>2];j=H[j+4>>2];g=c+g|0;l=g+k|0;n=H[l+4>>2];H[f+16>>2]=H[l>>2];H[f+20>>2]=n;H[f+8>>2]=m;H[f+12>>2]=j;qc(f+24|0,i,f+16|0,f+8|0);H[g>>2]=H[f+24>>2];H[g+4>>2]=H[f+28>>2];a=a+e|0;if((d|0)>(a|0)){continue}break}}oa(h);ca=f+32|0;return 1}function Ag(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;a:{if(K[b+80>>2]>65535){break a}a=H[b+100>>2];b=H[b+96>>2];e=(a-b|0)/12|0;f=N(e,6);g=(f|0)==(c|0);if((a|0)==(b|0)|(c|0)!=(f|0)){break a}g=1;c=e>>>0<=1?1:e;i=c&1;a=0;if(e>>>0>=2){j=c&-2;c=0;while(1){f=N(a,6);h=f+d|0;e=b+N(a,12)|0;G[h>>1]=H[e>>2];G[(f|2)+d>>1]=H[e+4>>2];G[h+4>>1]=H[e+8>>2];f=a|1;e=N(f,6)+d|0;f=b+N(f,12)|0;G[e>>1]=H[f>>2];G[e+2>>1]=H[f+4>>2];G[e+4>>1]=H[f+8>>2];a=a+2|0;c=c+2|0;if((j|0)!=(c|0)){continue}break}}if(!i){break a}c=N(a,6)+d|0;a=b+N(a,12)|0;G[c>>1]=H[a>>2];G[c+2>>1]=H[a+4>>2];G[c+4>>1]=H[a+8>>2]}return g|0}function Gd(a,b,c,d,e,f,g){var h=0,i=0,j=0;h=ca-16|0;ca=h;if((b^-1)+2147483631>>>0>=c>>>0){if(I[a+11|0]>>>7|0){i=H[a>>2]}else{i=a}if(b>>>0<1073741799){H[h+12>>2]=b<<1;H[h>>2]=b+c;c=ca-16|0;ca=c;ca=c+16|0;c=h+12|0;c=H[(K[h>>2]>2]?c:h)>>2];if(c>>>0>=11){j=c+16&-16;c=j-1|0;c=(c|0)==11?j:c}else{c=10}c=c+1|0}else{c=2147483631}Zb(h,c);c=H[h>>2];if(f){yb(c,g,f)}g=d-e|0;if((d|0)!=(e|0)){yb(c+f|0,e+i|0,g)}if((b|0)!=10){oa(i)}H[a>>2]=c;H[a+8>>2]=H[a+8>>2]&-2147483648|H[h+4>>2]&2147483647;H[a+8>>2]=H[a+8>>2]|-2147483648;b=a;a=f+g|0;H[b+4>>2]=a;F[h+12|0]=0;F[a+c|0]=I[h+12|0];ca=h+16|0;return}Na();v()}function Rg(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;a=ca-32|0;ca=a;H[a+24>>2]=0;H[a+28>>2]=0;a:{d=Ma(c);if(d>>>0<2147483632){b:{c:{if(d>>>0>=11){e=(d|15)+1|0;f=pa(e);H[a+16>>2]=e|-2147483648;H[a+8>>2]=f;H[a+12>>2]=d;e=d+f|0;break c}F[a+19|0]=d;f=a+8|0;e=f+d|0;if(!d){break b}}qa(f,c,d)}F[e|0]=0;c=b+4|0;b=nb(b,a+8|0);d:{if((c|0)==(b|0)){break d}c=H[b+32>>2];b=H[b+28>>2];if((c-b|0)!=8){break d}c=I[b+4|0]|I[b+5|0]<<8|(I[b+6|0]<<16|I[b+7|0]<<24);H[a+24>>2]=I[b|0]|I[b+1|0]<<8|(I[b+2|0]<<16|I[b+3|0]<<24);H[a+28>>2]=c}g=M[a+24>>3];if(F[a+19|0]<0){oa(H[a+8>>2])}ca=a+32|0;break a}Na();v()}return+g}function uf(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0;f=1;a:{if((ea[H[H[b>>2]+20>>2]](b)|0)<=0){break a}while(1){f=0;c=Zd(H[H[a+4>>2]+4>>2],ea[H[H[b>>2]+24>>2]](b,g)|0);if((c|0)==-1){break a}e=H[a+4>>2];b:{if(I[e+36|0]<=1){if(ea[H[H[b>>2]+28>>2]](b,H[H[H[e+4>>2]+8>>2]+(c<<2)>>2])|0){break b}break a}d=0;c:{if((c|0)<0){break c}h=H[e+4>>2];if(H[h+12>>2]-H[h+8>>2]>>2<=(c|0)){break c}d=H[H[e+8>>2]+(H[H[e+20>>2]+(c<<2)>>2]<<2)>>2];d=ea[H[H[d>>2]+32>>2]](d,c)|0}if(!d){break a}if(!(ea[H[H[b>>2]+28>>2]](b,d)|0)){break a}}f=1;g=g+1|0;if((ea[H[H[b>>2]+20>>2]](b)|0)>(g|0)){continue}break}}return f|0}function tb(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0;H[a+8>>2]=0;H[a>>2]=0;H[a+4>>2]=0;a:{b:{if(b){if(b>>>0>=357913942){break b}b=N(b,12);d=pa(b);H[a+4>>2]=d;H[a>>2]=d;e=b+d|0;H[a+8>>2]=e;f=H[c+4>>2];g=H[c>>2];c:{if((f|0)==(g|0)){b=b-12|0;ra(d,0,(b-((b>>>0)%12|0)|0)+12|0);break c}h=f-g|0;if((h|0)<0){break a}i=h&-4;while(1){H[d+8>>2]=0;H[d>>2]=0;H[d+4>>2]=0;b=pa(h);H[d>>2]=b;H[d+8>>2]=b+i;c=g;while(1){H[b>>2]=H[c>>2];b=b+4|0;c=c+4|0;if((f|0)!=(c|0)){continue}break}H[d+4>>2]=b;d=d+12|0;if((e|0)!=(d|0)){continue}break}}H[a+4>>2]=e}return}sa();v()}H[d+8>>2]=0;H[d>>2]=0;H[d+4>>2]=0;sa();v()}function Vi(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;c=H[b+8>>2];d=H[b+12>>2];g=d;d=H[b+20>>2];i=d;h=H[b+16>>2];f=h+4|0;d=f>>>0<4?d+1|0:d;a:{if(c>>>0>>0&(d|0)>=(g|0)|(d|0)>(g|0)){break a}e=h+H[b>>2]|0;e=I[e|0]|I[e+1|0]<<8|(I[e+2|0]<<16|I[e+3|0]<<24);H[b+16>>2]=f;H[b+20>>2]=d;if(J[b+38>>1]<=513){f=c;c=i;d=h+8|0;c=d>>>0<8?c+1|0:c;if(d>>>0>f>>>0&(c|0)>=(g|0)|(c|0)>(g|0)){break a}H[b+16>>2]=d;H[b+20>>2]=c}if(!(e&1)){break a}b=Q(e)^31;if(b-1>>>0>28){break a}j=1;H[a+8>>2]=b+1;b=-2<>2]=c;H[a+12>>2]=b^-1;H[a+24>>2]=c>>1;L[a+20>>2]=O(2)/O(c|0)}return j|0}function Lc(a,b,c){var d=0,e=0,f=0,g=0;a:{f=b>>>0<1431655766&(b|c)>=0;b:{if(!f){break b}b=N(b,3);Kc(a,b,13648);Kc(a+12|0,b,13652);d=H[a+24>>2];c:{if(H[a+32>>2]-d>>2>>>0>=c>>>0){break c}if(c>>>0>=1073741824){break a}b=H[a+28>>2];e=c<<2;c=pa(e);e=c+e|0;g=c+(b-d&-4)|0;c=g;if((b|0)!=(d|0)){while(1){c=c-4|0;b=b-4|0;H[c>>2]=H[b>>2];if((b|0)!=(d|0)){continue}break}}H[a+32>>2]=e;H[a+28>>2]=g;H[a+24>>2]=c;if(!d){break c}oa(d)}H[a+80>>2]=0;H[a+84>>2]=0;b=H[a+76>>2];H[a+76>>2]=0;if(b){oa(b)}H[a+68>>2]=0;H[a+72>>2]=0;b=a- -64|0;a=H[b>>2];H[b>>2]=0;if(!a){break b}oa(a)}return f}sa();v()}function Fe(a){var b=0,c=0,d=0,e=0,f=0;f=1;c=H[a+140>>2];a:{if((c|0)<=0){break a}b=c<<4;d=pa(c>>>0>268435455?-1:b|4);H[d>>2]=c;d=d+4|0;c=d+b|0;b=d;while(1){H[b>>2]=0;H[b+4>>2]=0;F[b+5|0]=0;F[b+6|0]=0;F[b+7|0]=0;F[b+8|0]=0;F[b+9|0]=0;F[b+10|0]=0;F[b+11|0]=0;F[b+12|0]=0;b=b+16|0;if((c|0)!=(b|0)){continue}break}e=H[a+136>>2];H[a+136>>2]=d;if(e){c=e-4|0;d=H[c>>2];if(d){b=(d<<4)+e|0;while(1){b=b-16|0;if((e|0)!=(b|0)){continue}break}}oa(c)}b=0;if(H[a+140>>2]<=0){break a}while(1){f=ta(H[a+136>>2]+(b<<4)|0,a);if(!f){break a}b=b+1|0;if((b|0)>2]){continue}break}}return f}function mb(a,b){var c=0,d=0,e=0,f=0,g=0;a:{if(H[a+64>>2]){break a}c=pa(32);H[c+16>>2]=0;H[c+20>>2]=0;H[c+8>>2]=0;H[c>>2]=0;H[c+4>>2]=0;H[c+24>>2]=0;H[c+28>>2]=0;d=H[a+64>>2];H[a+64>>2]=c;if(!d){break a}c=H[d>>2];if(c){H[d+4>>2]=c;oa(c)}oa(d)}d=H[a+64>>2];c=H[a+28>>2]-1|0;if(c>>>0<=10){c=H[(c<<2)+13584>>2]}else{c=-1}c=N(c,I[a+24|0]);f=c>>31;g=se(d,0,Rj(c,f,b,0),da);if(g){d=H[a+64>>2];H[a>>2]=d;e=H[d+20>>2];H[a+8>>2]=H[d+16>>2];H[a+12>>2]=e;e=H[d+24>>2];d=H[d+28>>2];H[a+48>>2]=0;H[a+52>>2]=0;H[a+40>>2]=c;H[a+44>>2]=f;H[a+16>>2]=e;H[a+20>>2]=d;H[a+80>>2]=b}return g}function jc(a,b){var c=0;c=H[b+4>>2];H[a>>2]=H[b>>2];H[a+4>>2]=c;c=H[b+60>>2];H[a+56>>2]=H[b+56>>2];H[a+60>>2]=c;c=H[b+52>>2];H[a+48>>2]=H[b+48>>2];H[a+52>>2]=c;c=H[b+44>>2];H[a+40>>2]=H[b+40>>2];H[a+44>>2]=c;c=H[b+36>>2];H[a+32>>2]=H[b+32>>2];H[a+36>>2]=c;c=H[b+28>>2];H[a+24>>2]=H[b+24>>2];H[a+28>>2]=c;c=H[b+20>>2];H[a+16>>2]=H[b+16>>2];H[a+20>>2]=c;c=H[b+12>>2];H[a+8>>2]=H[b+8>>2];H[a+12>>2]=c;H[a+88>>2]=0;H[a+64>>2]=0;H[a+68>>2]=0;H[a+72>>2]=0;H[a+76>>2]=0;F[a+77|0]=0;F[a+78|0]=0;F[a+79|0]=0;F[a+80|0]=0;F[a+81|0]=0;F[a+82|0]=0;F[a+83|0]=0;F[a+84|0]=0;return a}function zg(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;a=H[b+100>>2];b=H[b+96>>2];h=a-b|0;a:{if((h|0)!=(c|0)|(a|0)==(b|0)){break a}g=(c|0)/12|0;e=g>>>0<=1?1:g;j=e&1;a=0;if(g>>>0>=2){k=e&-2;g=0;while(1){e=N(a,12);i=e+d|0;f=b+e|0;H[i>>2]=H[f>>2];H[(e|4)+d>>2]=H[f+4>>2];H[i+8>>2]=H[f+8>>2];f=N(a|1,12);e=f+d|0;f=b+f|0;H[e>>2]=H[f>>2];H[e+4>>2]=H[f+4>>2];H[e+8>>2]=H[f+8>>2];a=a+2|0;g=g+2|0;if((k|0)!=(g|0)){continue}break}}if(!j){break a}e=d;d=N(a,12);a=e+d|0;b=b+d|0;H[a>>2]=H[b>>2];H[a+4>>2]=H[b+4>>2];H[a+8>>2]=H[b+8>>2]}return(c|0)==(h|0)|0}function Mi(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;c=H[b+8>>2];d=H[b+12>>2];g=d;d=H[b+20>>2];i=d;h=H[b+16>>2];f=h+4|0;d=f>>>0<4?d+1|0:d;a:{if(c>>>0>>0&(d|0)>=(g|0)|(d|0)>(g|0)){break a}e=h+H[b>>2]|0;e=I[e|0]|I[e+1|0]<<8|(I[e+2|0]<<16|I[e+3|0]<<24);H[b+16>>2]=f;H[b+20>>2]=d;f=c;c=i;d=h+8|0;c=d>>>0<8?c+1|0:c;if(d>>>0>f>>>0&(c|0)>=(g|0)|(c|0)>(g|0)){break a}H[b+16>>2]=d;H[b+20>>2]=c;if(!(e&1)){break a}b=Q(e)^31;if(b-1>>>0>28){break a}j=1;H[a+8>>2]=b+1;b=-2<>2]=c;H[a+12>>2]=b^-1;H[a+24>>2]=c>>1;L[a+20>>2]=O(2)/O(c|0)}return j|0}function nb(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;f=a+4|0;a=H[a+4>>2];a:{b:{if(!a){break b}d=I[b+11|0];c=d<<24>>24<0;g=c?H[b>>2]:b;d=c?H[b+4>>2]:d;b=f;while(1){e=I[a+27|0];c=e<<24>>24<0;e=c?H[a+20>>2]:e;h=e>>>0>d>>>0;i=h?d:e;c:{if(i){c=Fa(c?H[a+16>>2]:a+16|0,g,i);if(c){break c}}c=d>>>0>e>>>0?-1:h}c=(c|0)<0;b=c?b:a;a=H[(c?a+4|0:a)>>2];if(a){continue}break}if((b|0)==(f|0)){break b}c=I[b+27|0];a=c<<24>>24<0;d:{c=a?H[b+20>>2]:c;e=c>>>0>>0?c:d;if(e){a=Fa(g,a?H[b+16>>2]:b+16|0,e);if(a){break d}}if(c>>>0>d>>>0){break b}break a}if((a|0)>=0){break a}}b=f}return b}function Jf(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;if(Ya(a,H[b+8>>2],e)){if(!(H[b+28>>2]==1|H[b+4>>2]!=(c|0))){H[b+28>>2]=d}return}a:{if(Ya(a,H[b>>2],e)){if(!(H[b+16>>2]!=(c|0)&H[b+20>>2]!=(c|0))){if((d|0)!=1){break a}H[b+32>>2]=1;return}H[b+32>>2]=d;b:{if(H[b+44>>2]==4){break b}G[b+52>>1]=0;a=H[a+8>>2];ea[H[H[a>>2]+20>>2]](a,b,c,c,1,e);if(I[b+53|0]){H[b+44>>2]=3;if(!I[b+52|0]){break b}break a}H[b+44>>2]=4}H[b+20>>2]=c;H[b+40>>2]=H[b+40>>2]+1;if(H[b+36>>2]!=1|H[b+24>>2]!=2){break a}F[b+54|0]=1;return}a=H[a+8>>2];ea[H[H[a>>2]+24>>2]](a,b,c,d,e)}}function Db(a,b,c){var d=0,e=0,f=0,g=0;a:{b:{if(!b){break b}if(J[a+38>>1]<=513){f=H[a+12>>2];d=H[a+20>>2];b=H[a+16>>2];g=b+8|0;d=g>>>0<8?d+1|0:d;e=0;if(K[a+8>>2]>>0&(d|0)>=(f|0)|(d|0)>(f|0)){break a}b=b+H[a>>2]|0;d=I[b+4|0]|I[b+5|0]<<8|(I[b+6|0]<<16|I[b+7|0]<<24);H[c>>2]=I[b|0]|I[b+1|0]<<8|(I[b+2|0]<<16|I[b+3|0]<<24);H[c+4>>2]=d;b=H[a+20>>2];c=H[a+16>>2]+8|0;b=c>>>0<8?b+1|0:b;H[a+16>>2]=c;H[a+20>>2]=b;break b}e=0;if(!re(1,c,a)){break a}}F[a+36|0]=1;H[a+32>>2]=0;b=H[a+16>>2];c=b+H[a>>2]|0;H[a+24>>2]=c;H[a+28>>2]=(H[a+8>>2]-b|0)+c;e=1}return e}function ve(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0;f=pa(64);c=pa(12);H[c+8>>2]=H[H[a+4>>2]+80>>2];H[c>>2]=13216;H[c+4>>2]=0;f=od(f,c);a:{b:{if((b|0)<0){c=f;break b}h=a+8|0;c=H[a+12>>2];e=H[a+8>>2];g=c-e>>2;c:{if((g|0)>(b|0)){break c}d=b+1|0;if(b>>>0>=g>>>0){Vb(h,d-g|0);break c}if(d>>>0>=g>>>0){break c}e=e+(d<<2)|0;if((e|0)!=(c|0)){while(1){c=c-4|0;d=H[c>>2];H[c>>2]=0;if(d){ea[H[H[d>>2]+4>>2]](d)}if((c|0)!=(e|0)){continue}break}}H[a+12>>2]=e}a=H[h>>2]+(b<<2)|0;c=H[a>>2];H[a>>2]=f;if(!c){break a}}ea[H[H[c>>2]+4>>2]](c)}return(b^-1)>>>31|0}function Qd(a,b){var c=0,d=0,e=0,f=0;d=ca-16|0;ca=d;H[d+12>>2]=b;c=ca-208|0;ca=c;H[c+204>>2]=b;b=c+160|0;ra(b,0,40);H[c+200>>2]=H[c+204>>2];a:{if((Od(0,a,c+200|0,c+80|0,b)|0)<0){break a}f=H[3941]>=0;b=H[3922];if(H[3940]<=0){H[3922]=b&-33}b:{c:{d:{if(!H[3934]){H[3934]=80;H[3929]=0;H[3926]=0;H[3927]=0;e=H[3933];H[3933]=c;break d}if(H[3926]){break c}}if(Sd(15688)){break b}}Od(15688,a,c+200|0,c+80|0,c+160|0)}if(e){ea[H[3931]](15688,0,0)|0;H[3934]=0;H[3933]=e;H[3929]=0;H[3926]=0;H[3927]=0}H[3922]=H[3922]|b&32;if(!f){break a}}ca=c+208|0;ca=d+16|0}function pf(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0;c=H[a+60>>2];a:{if(!c){break a}H[c+4>>2]=a+48;if(!(ea[H[H[c>>2]+12>>2]](c)|0)){break a}b:{c=ea[H[H[a>>2]+24>>2]](a)|0;if((c|0)<=0){break b}while(1){c:{f=H[(ea[H[H[a>>2]+28>>2]](a)|0)+4>>2];g=ea[H[H[a>>2]+20>>2]](a,d)|0;e=H[a+60>>2];if(!(ea[H[H[e>>2]+8>>2]](e,H[H[f+8>>2]+(g<<2)>>2])|0)){break c}d=d+1|0;if((c|0)!=(d|0)){continue}break b}break}return 0}d=0;if(!(ea[H[H[a>>2]+36>>2]](a,b)|0)){break a}if(!(ea[H[H[a>>2]+40>>2]](a,b)|0)){break a}d=ea[H[H[a>>2]+44>>2]](a)|0}return d|0}function id(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;c=H[a+216>>2];if((c|0)!=H[a+220>>2]){while(1){a:{c=H[N(e,144)+c>>2];if((c|0)<0){break a}d=H[a+4>>2];f=H[d+8>>2];if((c|0)>=H[d+12>>2]-f>>2){break a}d=0;c=H[(c<<2)+f>>2];if((ea[H[H[c>>2]+24>>2]](c)|0)<=0){break a}while(1){if((ea[H[H[c>>2]+20>>2]](c,d)|0)!=(b|0)){d=d+1|0;if((ea[H[H[c>>2]+24>>2]](c)|0)>(d|0)){continue}break a}break}a=H[a+216>>2]+N(e,144)|0;return(I[a+100|0]?a+4|0:0)|0}e=e+1|0;c=H[a+216>>2];if(e>>>0<(H[a+220>>2]-c|0)/144>>>0){continue}break}}return 0}function xb(a){var b=0,c=0,d=0,e=0;c=H[a+132>>2];if(c){d=c;b=H[a+136>>2];if((c|0)!=(b|0)){while(1){d=b-12|0;e=H[d>>2];if(e){H[b-8>>2]=e;oa(e)}b=d;if((c|0)!=(b|0)){continue}break}d=H[a+132>>2]}H[a+136>>2]=c;oa(d)}c=H[a+120>>2];if(c){d=c;b=H[a+124>>2];if((c|0)!=(b|0)){while(1){d=b-12|0;e=H[d>>2];if(e){H[b-8>>2]=e;oa(e)}b=d;if((c|0)!=(b|0)){continue}break}d=H[a+120>>2]}H[a+124>>2]=c;oa(d)}b=H[a+108>>2];if(b){H[a+112>>2]=b;oa(b)}b=H[a+96>>2];if(b){H[a+100>>2]=b;oa(b)}Za(a+76|0);Za(a+56|0);Za(a+36|0);Za(a+16|0)}function rd(a){a=a|0;var b=0,c=0,d=0;H[a>>2]=2128;d=H[a+60>>2];if(d){b=d;c=H[a- -64>>2];if((b|0)!=(c|0)){while(1){c=c-4|0;b=H[c>>2];H[c>>2]=0;if(b){Ga(b)}if((c|0)!=(d|0)){continue}break}b=H[a+60>>2]}H[a+64>>2]=d;oa(b)}b=H[a+48>>2];if(b){H[a+52>>2]=b;oa(b)}d=H[a+36>>2];if(d){b=d;c=H[a+40>>2];if((b|0)!=(c|0)){while(1){c=c-24|0;ea[H[H[c>>2]>>2]](c)|0;if((c|0)!=(d|0)){continue}break}b=H[a+36>>2]}H[a+40>>2]=d;oa(b)}H[a>>2]=1984;b=H[a+16>>2];if(b){H[a+20>>2]=b;oa(b)}b=H[a+4>>2];if(b){H[a+8>>2]=b;oa(b)}return a|0}function ue(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;c=H[a+8>>2];d=H[a+4>>2];if(c-d>>2>>>0>=b>>>0){if(b){b=b<<2;d=ra(d,0,b)+b|0}H[a+4>>2]=d;return}a:{f=H[a>>2];g=d-f>>2;e=g+b|0;if(e>>>0<1073741824){c=c-f|0;h=c>>>1|0;e=c>>>0>=2147483644?1073741823:e>>>0>>0?h:e;if(e){if(e>>>0>=1073741824){break a}i=pa(e<<2)}c=(g<<2)+i|0;b=b<<2;b=ra(c,0,b)+b|0;if((d|0)!=(f|0)){while(1){c=c-4|0;d=d-4|0;H[c>>2]=H[d>>2];if((d|0)!=(f|0)){continue}break}}H[a+8>>2]=(e<<2)+i;H[a+4>>2]=b;H[a>>2]=c;if(f){oa(f)}return}sa();v()}wa();v()}function rb(a){var b=0,c=0,d=0,e=0,f=0;d=H[a+8>>2];a:{if(I[d+84|0]){break a}b=H[a+16>>2];if(!b|!I[b+84|0]){break a}c=H[d+72>>2];e=H[d+68>>2];F[b+84|0]=0;c=c-e>>2;f=H[b+68>>2];e=H[b+72>>2]-f>>2;b:{if(c>>>0>e>>>0){qb(b+68|0,c-e|0,2316);d=H[a+8>>2];break b}if(c>>>0>=e>>>0){break b}H[b+72>>2]=f+(c<<2)}if(I[d+84|0]){break a}c=H[d+68>>2];if((c|0)==H[d+72>>2]){break a}e=H[H[a+16>>2]+68>>2];b=0;while(1){f=b<<2;H[f+e>>2]=H[c+f>>2];b=b+1|0;c=H[d+68>>2];if(b>>>0>2]-c>>2>>>0){continue}break}}return H[a+16>>2]}function Lg(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;e=ca+-64|0;ca=e;f=Ha(e+8|0);H[f+16>>2]=0;H[f+20>>2]=0;H[f>>2]=b;H[f+8>>2]=c;H[f+12>>2]=0;b=e+48|0;Pe(b,a,f,d);H[a+24>>2]=H[e+48>>2];f=a+24|0;a:{if((f|0)==(b|0)){break a}b=a+28|0;c=e+48|4;g=I[e+63|0];d=g<<24>>24;if(F[a+39|0]>=0){if((d|0)>=0){a=H[c+4>>2];H[b>>2]=H[c>>2];H[b+4>>2]=a;H[b+8>>2]=H[c+8>>2];break a}Xb(b,H[e+52>>2],H[e+56>>2]);break a}a=(d|0)<0;Yb(b,a?H[e+52>>2]:c,a?H[e+56>>2]:g)}if(F[e+63|0]<0){oa(H[e+52>>2])}ca=e- -64|0;return f|0}function Kg(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;e=ca+-64|0;ca=e;f=Ha(e+8|0);H[f+16>>2]=0;H[f+20>>2]=0;H[f>>2]=b;H[f+8>>2]=c;H[f+12>>2]=0;b=e+48|0;Oe(b,a,f,d);H[a+24>>2]=H[e+48>>2];f=a+24|0;a:{if((f|0)==(b|0)){break a}b=a+28|0;c=e+48|4;g=I[e+63|0];d=g<<24>>24;if(F[a+39|0]>=0){if((d|0)>=0){a=H[c+4>>2];H[b>>2]=H[c>>2];H[b+4>>2]=a;H[b+8>>2]=H[c+8>>2];break a}Xb(b,H[e+52>>2],H[e+56>>2]);break a}a=(d|0)<0;Yb(b,a?H[e+52>>2]:c,a?H[e+56>>2]:g)}if(F[e+63|0]<0){oa(H[e+52>>2])}ca=e- -64|0;return f|0}function Ig(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0;a=ca-32|0;ca=a;a:{d=Ma(c);if(d>>>0<2147483632){b:{c:{if(d>>>0>=11){e=(d|15)+1|0;f=pa(e);H[a+24>>2]=e|-2147483648;H[a+16>>2]=f;H[a+20>>2]=d;e=d+f|0;break c}F[a+27|0]=d;f=a+16|0;e=f+d|0;if(!d){break b}}qa(f,c,d)}F[e|0]=0;F[a+4|0]=0;H[a>>2]=1701667182;F[a+11|0]=4;d=H[b+4>>2];c=-1;d:{if(!d){break d}d=be(d,a,a+16|0);c=-1;if(!d){break d}c=Yd(b,H[d+24>>2])}b=c;if(F[a+11|0]<0){oa(H[a>>2])}if(F[a+27|0]<0){oa(H[a+16>>2])}ca=a+32|0;break a}Na();v()}return b|0}function hd(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;c=H[a+216>>2];if((c|0)!=H[a+220>>2]){while(1){a:{c=H[N(e,144)+c>>2];if((c|0)<0){break a}d=H[a+4>>2];f=H[d+8>>2];if((c|0)>=H[d+12>>2]-f>>2){break a}d=0;c=H[(c<<2)+f>>2];if((ea[H[H[c>>2]+24>>2]](c)|0)<=0){break a}while(1){if((ea[H[H[c>>2]+20>>2]](c,d)|0)!=(b|0)){d=d+1|0;if((ea[H[H[c>>2]+24>>2]](c)|0)>(d|0)){continue}break a}break}return(H[a+216>>2]+N(e,144)|0)+104|0}e=e+1|0;c=H[a+216>>2];if(e>>>0<(H[a+220>>2]-c|0)/144>>>0){continue}break}}return a+184|0}function ab(a){var b=0,c=0,d=0,e=0;c=H[a+640>>2];if(c){d=c;b=H[a+644>>2];if((c|0)!=(b|0)){while(1){d=b-12|0;e=H[d>>2];if(e){H[b-8>>2]=e;oa(e)}b=d;if((c|0)!=(b|0)){continue}break}d=H[a+640>>2]}H[a+644>>2]=c;oa(d)}c=H[a+628>>2];if(c){d=c;b=H[a+632>>2];if((c|0)!=(b|0)){while(1){d=b-12|0;e=H[d>>2];if(e){H[b-8>>2]=e;oa(e)}b=d;if((c|0)!=(b|0)){continue}break}d=H[a+628>>2]}H[a+632>>2]=c;oa(d)}b=H[a+616>>2];if(b){H[a+620>>2]=b;oa(b)}b=H[a+604>>2];if(b){H[a+608>>2]=b;oa(b)}Za(a+584|0);Za(a+564|0);Za(a+544|0)}function Tg(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0;d=ca-16|0;ca=d;H[d+12>>2]=0;a:{e=Ma(c);if(e>>>0<2147483632){b:{c:{if(e>>>0>=11){f=(e|15)+1|0;a=pa(f);H[d+8>>2]=f|-2147483648;H[d>>2]=a;H[d+4>>2]=e;f=a+e|0;break c}F[d+11|0]=e;f=d+e|0;a=d;if(!e){break b}}qa(a,c,e)}F[f|0]=0;a=nb(b,d);d:{if((a|0)==(b+4|0)){break d}b=H[a+32>>2];a=H[a+28>>2];if((b-a|0)!=4){break d}H[d+12>>2]=I[a|0]|I[a+1|0]<<8|(I[a+2|0]<<16|I[a+3|0]<<24)}a=H[d+12>>2];if(F[d+11|0]<0){oa(H[d>>2])}ca=d+16|0;break a}Na();v()}return a|0}function vb(a){var b=0,c=0,d=0,e=0;c=H[a+128>>2];if(c){d=c;b=H[a+132>>2];if((c|0)!=(b|0)){while(1){d=b-12|0;e=H[d>>2];if(e){H[b-8>>2]=e;oa(e)}b=d;if((c|0)!=(b|0)){continue}break}d=H[a+128>>2]}H[a+132>>2]=c;oa(d)}c=H[a+116>>2];if(c){d=c;b=H[a+120>>2];if((c|0)!=(b|0)){while(1){d=b-12|0;e=H[d>>2];if(e){H[b-8>>2]=e;oa(e)}b=d;if((c|0)!=(b|0)){continue}break}d=H[a+116>>2]}H[a+120>>2]=c;oa(d)}b=H[a+104>>2];if(b){H[a+108>>2]=b;oa(b)}b=H[a+92>>2];if(b){H[a+96>>2]=b;oa(b)}Za(a+72|0);Za(a+52|0);Za(a+32|0)}function kc(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;a:{c=H[a+4>>2];e=H[a>>2];d=c-e|0;b:{if(d>>>0>>0){g=b-d|0;f=H[a+8>>2];if(g>>>0<=f-c>>>0){h=a,i=ra(c,0,g)+g|0,H[h+4>>2]=i;break b}if((b|0)<0){break a}c=f-e|0;f=c<<1;c=c>>>0>=1073741823?2147483647:b>>>0>>0?f:b;f=pa(c);ra(f+d|0,0,g);d=va(f,e,d);H[a+8>>2]=d+c;H[a+4>>2]=b+d;H[a>>2]=d;if(!e){break b}oa(e);break b}if(b>>>0>=d>>>0){break b}H[a+4>>2]=b+e}b=H[a+28>>2];c=b;d=b+1|0;b=H[a+24>>2]+1|0;e=b?c:d;H[a+24>>2]=b;H[a+28>>2]=e;return}sa();v()}function Ka(a,b){var c=0,d=0,e=0,f=0,g=0,h=0;e=H[a+4>>2];if((e|0)!=H[a+8>>2]){H[e>>2]=H[b>>2];H[a+4>>2]=e+4;return}a:{g=H[a>>2];f=e-g|0;c=f>>2;d=c+1|0;if(d>>>0<1073741824){h=c<<2;c=f>>>1|0;c=f>>>0>=2147483644?1073741823:c>>>0>d>>>0?c:d;if(c){if(c>>>0>=1073741824){break a}f=pa(c<<2)}else{f=0}d=h+f|0;H[d>>2]=H[b>>2];b=d+4|0;if((e|0)!=(g|0)){while(1){d=d-4|0;e=e-4|0;H[d>>2]=H[e>>2];if((e|0)!=(g|0)){continue}break}}H[a+8>>2]=f+(c<<2);H[a+4>>2]=b;H[a>>2]=d;if(g){oa(g)}return}sa();v()}wa();v()}function Ia(a){H[a>>2]=-1;H[a+4>>2]=0;H[a+8>>2]=0;H[a+32>>2]=0;H[a+36>>2]=0;F[a+28|0]=1;H[a+20>>2]=0;H[a+24>>2]=0;H[a+12>>2]=0;H[a+16>>2]=0;H[a+40>>2]=0;H[a+44>>2]=0;H[a+48>>2]=0;H[a+52>>2]=0;H[a+56>>2]=0;H[a+60>>2]=0;H[a+64>>2]=0;H[a+68>>2]=0;H[a+76>>2]=0;H[a+80>>2]=0;H[a+84>>2]=0;H[a+88>>2]=0;H[a+92>>2]=0;H[a+96>>2]=0;H[a+72>>2]=a+4;H[a+104>>2]=0;H[a+108>>2]=0;F[a+100|0]=1;H[a+112>>2]=0;H[a+116>>2]=0;H[a+120>>2]=0;H[a+124>>2]=0;H[a+128>>2]=0;H[a+132>>2]=0;H[a+136>>2]=0;H[a+140>>2]=0}function Ld(a,b){if(!a){return 0}a:{b:{if(a){if(b>>>0<=127){break b}c:{if(!H[H[4292]>>2]){if((b&-128)==57216){break b}break c}if(b>>>0<=2047){F[a+1|0]=b&63|128;F[a|0]=b>>>6|192;a=2;break a}if(!((b&-8192)!=57344&b>>>0>=55296)){F[a+2|0]=b&63|128;F[a|0]=b>>>12|224;F[a+1|0]=b>>>6&63|128;a=3;break a}if(b-65536>>>0<=1048575){F[a+3|0]=b&63|128;F[a|0]=b>>>18|240;F[a+2|0]=b>>>6&63|128;F[a+1|0]=b>>>12&63|128;a=4;break a}}H[3992]=25;a=-1}else{a=1}break a}F[a|0]=b;a=1}return a}function Hb(a,b){var c=0,d=0,e=0,f=0;d=H[a+12>>2];c=H[a+16>>2]-d>>2;a:{if(c>>>0>>0){ya(a+12|0,b-c|0);break a}if(b>>>0>=c>>>0){break a}H[a+16>>2]=d+(b<<2)}b:{c=H[a>>2];c:{if(H[a+8>>2]-c>>2>>>0>=b>>>0){break c}if(b>>>0>=1073741824){break b}d=H[a+4>>2];e=b<<2;b=pa(e);e=b+e|0;f=b+(d-c&-4)|0;b=f;if((c|0)!=(d|0)){while(1){b=b-4|0;d=d-4|0;H[b>>2]=H[d>>2];if((c|0)!=(d|0)){continue}break}}H[a+8>>2]=e;H[a+4>>2]=f;H[a>>2]=b;if(!c){break c}oa(c)}return}sa();v()}function _b(a){a=a|0;var b=0,c=0,d=0;H[a>>2]=13724;b=H[a+68>>2];if(b){H[a+72>>2]=b;oa(b)}b=H[a+56>>2];if(b){H[a+60>>2]=b;oa(b)}b=H[a+44>>2];if(b){H[a+48>>2]=b;oa(b)}b=H[a+32>>2];if(b){H[a+36>>2]=b;oa(b)}b=H[a+20>>2];if(b){H[a+24>>2]=b;oa(b)}b=H[a+8>>2];if(b){d=b;c=H[a+12>>2];if((b|0)!=(c|0)){while(1){c=c-4|0;d=H[c>>2];H[c>>2]=0;if(d){Ga(d)}if((b|0)!=(c|0)){continue}break}d=H[a+8>>2]}H[a+12>>2]=b;oa(d)}b=H[a+4>>2];H[a+4>>2]=0;if(b){Uc(b)}return a|0}function yb(a,b,c){var d=0,e=0,f=0,g=0,h=0;f=ca-16|0;ca=f;d=ca-32|0;ca=d;e=ca-16|0;ca=e;H[e+12>>2]=b;H[e+8>>2]=b+c;H[d+24>>2]=H[e+12>>2];H[d+28>>2]=H[e+8>>2];ca=e+16|0;c=ca-16|0;ca=c;h=H[d+28>>2];e=H[d+24>>2];g=h-e|0;if((e|0)!=(h|0)){va(a,e,g)}H[c+12>>2]=e+g;H[c+8>>2]=a+g;H[d+16>>2]=H[c+12>>2];H[d+20>>2]=H[c+8>>2];ca=c+16|0;H[d+12>>2]=(H[d+16>>2]-b|0)+b;H[d+8>>2]=(H[d+20>>2]-a|0)+a;H[f+8>>2]=H[d+12>>2];H[f+12>>2]=H[d+8>>2];ca=d+32|0;ca=f+16|0}function ya(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;e=H[a+8>>2];c=H[a+4>>2];if(e-c>>2>>>0>=b>>>0){if(b){b=b<<2;c=ra(c,0,b)+b|0}H[a+4>>2]=c;return}a:{f=c;c=H[a>>2];g=f-c|0;h=g>>2;d=h+b|0;if(d>>>0<1073741824){e=e-c|0;f=e>>>1|0;d=e>>>0>=2147483644?1073741823:d>>>0>>0?f:d;if(d){if(d>>>0>=1073741824){break a}i=pa(d<<2)}b=b<<2;e=ra((h<<2)+i|0,0,b);f=d<<2;d=va(i,c,g);H[a+8>>2]=f+d;H[a+4>>2]=b+e;H[a>>2]=d;if(c){oa(c)}return}sa();v()}wa();v()}function Tc(a,b){var c=0,d=0,e=0,f=0;c=a+4|0;a=nb(a,b);a:{if((c|0)==(a|0)){break a}b=a+28|0;b=F[a+39|0]<0?H[b>>2]:b;while(1){a=b;b=a+1|0;c=F[a|0];if((c|0)==32|c-9>>>0<5){continue}break}b:{c:{d:{c=F[a|0];switch(c-43|0){case 0:break c;case 2:break d;default:break b}}e=1}c=F[b|0];a=b}if(c-48>>>0<10){while(1){d=(N(d,10)-F[a|0]|0)+48|0;b=F[a+1|0];a=a+1|0;if(b-48>>>0<10){continue}break}}a=e?d:0-d|0;if((a|0)==-1){break a}f=(a|0)!=0}return f}function bb(a,b){var c=0,d=0,e=0,f=0,g=0,h=0;a=H[a>>2];c=H[a+4>>2];e=H[a+8>>2];if(c>>>0>>0){H[c>>2]=H[b>>2];H[a+4>>2]=c+4;return}a:{d=c;c=H[a>>2];g=d-c|0;d=g>>2;f=d+1|0;if(f>>>0<1073741824){h=d<<2;e=e-c|0;d=e>>>1|0;f=e>>>0>=2147483644?1073741823:f>>>0>>0?d:f;if(f){if(f>>>0>=1073741824){break a}e=pa(f<<2)}else{e=0}d=h+e|0;H[d>>2]=H[b>>2];b=va(e,c,g);H[a+8>>2]=b+(f<<2);H[a+4>>2]=d+4;H[a>>2]=b;if(c){oa(c)}return}sa();v()}wa();v()}function ob(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;e=H[a+8>>2];c=H[a+4>>2];if(e-c>>3>>>0>=b>>>0){if(b){b=b<<3;c=ra(c,0,b)+b|0}H[a+4>>2]=c;return}a:{f=c;c=H[a>>2];g=f-c|0;h=g>>3;d=h+b|0;if(d>>>0<536870912){e=e-c|0;f=e>>>2|0;d=e>>>0>=2147483640?536870911:d>>>0>>0?f:d;if(d){if(d>>>0>=536870912){break a}i=pa(d<<3)}b=b<<3;e=ra((h<<3)+i|0,0,b);f=d<<3;d=va(i,c,g);H[a+8>>2]=f+d;H[a+4>>2]=b+e;H[a>>2]=d;if(c){oa(c)}return}sa();v()}wa();v()}function kf(a){a=a|0;var b=0,c=0,d=0;H[a>>2]=2328;b=H[a+60>>2];H[a+60>>2]=0;if(b){ea[H[H[b>>2]+4>>2]](b)}b=H[a+48>>2];if(b){H[a+52>>2]=b;oa(b)}d=H[a+36>>2];if(d){c=H[a+40>>2];b=d;if((c|0)!=(b|0)){while(1){c=c-4|0;b=H[c>>2];H[c>>2]=0;if(b){ea[H[H[b>>2]+4>>2]](b)}if((c|0)!=(d|0)){continue}break}b=H[a+36>>2]}H[a+40>>2]=d;oa(b)}H[a>>2]=1984;b=H[a+16>>2];if(b){H[a+20>>2]=b;oa(b)}b=H[a+4>>2];if(b){H[a+8>>2]=b;oa(b)}return a|0}function jf(a){a=a|0;var b=0,c=0,d=0;H[a>>2]=2328;b=H[a+60>>2];H[a+60>>2]=0;if(b){ea[H[H[b>>2]+4>>2]](b)}b=H[a+48>>2];if(b){H[a+52>>2]=b;oa(b)}d=H[a+36>>2];if(d){c=H[a+40>>2];b=d;if((c|0)!=(b|0)){while(1){c=c-4|0;b=H[c>>2];H[c>>2]=0;if(b){ea[H[H[b>>2]+4>>2]](b)}if((c|0)!=(d|0)){continue}break}b=H[a+36>>2]}H[a+40>>2]=d;oa(b)}H[a>>2]=1984;b=H[a+16>>2];if(b){H[a+20>>2]=b;oa(b)}b=H[a+4>>2];if(b){H[a+8>>2]=b;oa(b)}oa(a)}function xi(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;d=ca-16|0;ca=d;e=H[a+4>>2];a:{if((e|0)==-1){break a}c=H[b+20>>2];if(!!H[b+16>>2]&(c|0)>=0|(c|0)>0){break a}Wb(b,H[b+4>>2],H[a+8>>2],H[a+12>>2]);c=H[b+20>>2];if(!!H[b+16>>2]&(c|0)>=0|(c|0)>0){break a}Wb(b,H[b+4>>2],a+20|0,a+24|0);c=H[b+20>>2];f=H[b+16>>2];F[d+15|0]=H[a+4>>2];if(!!f&(c|0)>=0|(c|0)>0){break a}Wb(b,H[b+4>>2],d+15|0,d+16|0)}ca=d+16|0;return(e|0)!=-1|0}function Eh(a){a=a|0;var b=0,c=0,d=0,e=0,f=0;a:{b=H[a+8>>2];b:{if((b|0)<0){break b}c=H[a+4>>2];e=H[c>>2];d=H[c+4>>2]-e>>2;c:{if(d>>>0>>0){ue(c,b-d|0);f=H[a+8>>2];break c}f=b;if(b>>>0>=d>>>0){break c}H[c+4>>2]=e+(b<<2);f=b}d=f;if((d|0)<=0){break b}a=H[a+4>>2];c=H[a>>2];e=H[a+4>>2]-c>>2;a=0;while(1){if((a|0)==(e|0)){break a}H[c+(a<<2)>>2]=a;a=a+1|0;if((d|0)!=(a|0)){continue}break}}return(b^-1)>>>31|0}Ca();v()}function qe(a,b){var c=0,d=0,e=0,f=0,g=0,h=0;e=H[a+8>>2];c=H[a+4>>2];if(e-c>>1>>>0>=b>>>0){if(b){b=b<<1;c=ra(c,0,b)+b|0}H[a+4>>2]=c;return}a:{f=c;c=H[a>>2];g=f-c|0;f=g>>1;d=f+b|0;if((d|0)>=0){e=e-c|0;d=e>>>0>=2147483646?2147483647:d>>>0>>0?e:d;if(d){if((d|0)<0){break a}h=pa(d<<1)}b=b<<1;e=ra((f<<1)+h|0,0,b);f=d<<1;d=va(h,c,g);H[a+8>>2]=f+d;H[a+4>>2]=b+e;H[a>>2]=d;if(c){oa(c)}return}sa();v()}wa();v()}function ng(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;d=ca-16|0;ca=d;Pe(d,a,b,c);H[a+24>>2]=H[d>>2];e=a+24|0;a:{if((e|0)==(d|0)){break a}b=a+28|0;c=d|4;f=I[d+15|0];g=f<<24>>24;if(F[a+39|0]>=0){if((g|0)>=0){a=H[c+4>>2];H[b>>2]=H[c>>2];H[b+4>>2]=a;H[b+8>>2]=H[c+8>>2];break a}Xb(b,H[d+4>>2],H[d+8>>2]);break a}a=(g|0)<0;Yb(b,a?H[d+4>>2]:c,a?H[d+8>>2]:f)}if(F[d+15|0]<0){oa(H[d+4>>2])}ca=d+16|0;return e|0}function mg(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;d=ca-16|0;ca=d;Oe(d,a,b,c);H[a+24>>2]=H[d>>2];e=a+24|0;a:{if((e|0)==(d|0)){break a}b=a+28|0;c=d|4;f=I[d+15|0];g=f<<24>>24;if(F[a+39|0]>=0){if((g|0)>=0){a=H[c+4>>2];H[b>>2]=H[c>>2];H[b+4>>2]=a;H[b+8>>2]=H[c+8>>2];break a}Xb(b,H[d+4>>2],H[d+8>>2]);break a}a=(g|0)<0;Yb(b,a?H[d+4>>2]:c,a?H[d+8>>2]:f)}if(F[d+15|0]<0){oa(H[d+4>>2])}ca=d+16|0;return e|0}function za(a,b,c){var d=0,e=0,f=0,g=0;e=ca-16|0;ca=e;a:{b:{if(c>>>0<11){d=a;F[a+11|0]=I[a+11|0]&128|c;F[a+11|0]=I[a+11|0]&127;break b}if(c>>>0>2147483631){break a}g=e+8|0;if(c>>>0>=11){f=c+16&-16;d=f-1|0;d=(d|0)==11?f:d}else{d=10}Zb(g,d+1|0);d=H[e+8>>2];H[a>>2]=d;H[a+8>>2]=H[a+8>>2]&-2147483648|H[e+12>>2]&2147483647;H[a+8>>2]=H[a+8>>2]|-2147483648;H[a+4>>2]=c}yb(d,b,c+1|0);ca=e+16|0;return}Na();v()}function Qg(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;d=ca-16|0;ca=d;a:{e=Ma(c);if(e>>>0<2147483632){b:{c:{if(e>>>0>=11){g=(e|15)+1|0;f=pa(g);H[d+8>>2]=g|-2147483648;H[d>>2]=f;H[d+4>>2]=e;g=e+f|0;break c}F[d+11|0]=e;g=d+e|0;f=d;if(!e){break b}}qa(f,c,e)}F[g|0]=0;f=a+16|0;c=$d(b,d,f);b=H[a+16>>2];a=F[a+27|0];if(F[d+11|0]<0){oa(H[d>>2])}ca=d+16|0;a=c?(a|0)<0?b:f:0;break a}Na();v()}return a|0}function Mc(a,b){var c=0,d=0,e=0;c=H[a+4>>2];d=c+b|0;H[a+4>>2]=d;if(!((d-1^c-1)>>>0<32?c:0)){H[H[a>>2]+((d>>>0>=33?d-1>>>5|0:0)<<2)>>2]=0}a:{if(!b){break a}a=H[a>>2]+(c>>>3&536870908)|0;c=c&31;if(c){d=32-c|0;e=b>>>0>d>>>0?d:b;H[a>>2]=H[a>>2]&(-1<>>d-e^-1);b=b-e|0;a=a+4|0}c=b>>>5|0;if(b>>>0>=32){ra(a,0,c<<2)}if((b&-32)==(b|0)){break a}a=(c<<2)+a|0;H[a>>2]=H[a>>2]&(-1>>>32-(b&31)^-1)}}function Fc(a,b,c){var d=0,e=0,f=0;d=H[c+16>>2];a:{if(!d){if(Sd(c)){break a}d=H[c+16>>2]}f=H[c+20>>2];if(d-f>>>0>>0){return ea[H[c+36>>2]](c,a,b)|0}b:{if(H[c+80>>2]<0){d=0;break b}e=b;while(1){d=e;if(!d){d=0;break b}e=d-1|0;if(I[e+a|0]!=10){continue}break}e=ea[H[c+36>>2]](c,a,d)|0;if(e>>>0>>0){break a}a=a+d|0;b=b-d|0;f=H[c+20>>2]}qa(f,a,b);H[c+20>>2]=H[c+20>>2]+b;e=b+d|0}return e}function ad(a){var b=0,c=0,d=0,e=0;if(I[a+76|0]){F[a+76|0]=0;e=H[a+60>>2];c=H[a+72>>2]+7|0;b=c>>>0<7?1:b;d=b<<29|c>>>3;c=d+H[a+56>>2]|0;b=(b>>>3|0)+e|0;H[a+56>>2]=c;H[a+60>>2]=c>>>0>>0?b+1|0:b}if(J[a+38>>1]<=513){F[a+132|0]=0;e=H[a+116>>2];b=0;c=H[a+128>>2]+7|0;b=c>>>0<7?1:b;d=b<<29|c>>>3;c=d+H[a+112>>2]|0;b=(b>>>3|0)+e|0;H[a+112>>2]=c;H[a+116>>2]=c>>>0>>0?b+1|0:b}}function re(a,b,c){var d=0,e=0,f=0,g=0;a:{if(a>>>0>10){break a}d=H[c+20>>2];f=H[c+12>>2];e=H[c+16>>2];if((d|0)>=(f|0)&e>>>0>=K[c+8>>2]|(d|0)>(f|0)){break a}f=F[e+H[c>>2]|0];e=e+1|0;d=e?d:d+1|0;H[c+16>>2]=e;H[c+20>>2]=d;d=f;b:{if((d|0)<0){if(!re(a+1|0,b,c)){break a}a=H[b>>2];d=d&127|a<<7;a=H[b+4>>2]<<7|a>>>25;break b}d=d&255;a=0}H[b>>2]=d;H[b+4>>2]=a;g=1}return g}function gb(a,b,c){var d=0,e=0,f=0,g=0;a:{if(a>>>0>10){break a}d=H[c+20>>2];f=H[c+12>>2];e=H[c+16>>2];if((d|0)>=(f|0)&e>>>0>=K[c+8>>2]|(d|0)>(f|0)){break a}f=F[e+H[c>>2]|0];e=e+1|0;d=e?d:d+1|0;H[c+16>>2]=e;H[c+20>>2]=d;d=f;b:{if((d|0)<0){if(!gb(a+1|0,b,c)){break a}a=H[b>>2];d=d&127|a<<7;a=H[b+4>>2]<<7|a>>>25;break b}d=d&255;a=0}H[b>>2]=d;H[b+4>>2]=a;g=1}return g}function Nh(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0;e=ca+-64|0;ca=e;d=ea[H[H[a>>2]+44>>2]](a,b)|0;a=ea[H[H[a>>2]+40>>2]](a,b)|0;f=Eb(e);g=H[b+56>>2];h=d&255;i=a;a=a-1|0;if(a>>>0<=10){a=H[(a<<2)+13584>>2]}else{a=-1}d=N(a,d);lc(f,g,h,i,0,d,d>>31);a=jc(pa(96),f);mb(a,c);F[a+84|0]=1;H[a+72>>2]=H[a+68>>2];H[a+60>>2]=H[b+60>>2];ca=e- -64|0;return a|0}function If(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;if(Ya(a,H[b+8>>2],e)){if(!(H[b+28>>2]==1|H[b+4>>2]!=(c|0))){H[b+28>>2]=d}return}a:{if(!Ya(a,H[b>>2],e)){break a}if(!(H[b+16>>2]!=(c|0)&H[b+20>>2]!=(c|0))){if((d|0)!=1){break a}H[b+32>>2]=1;return}H[b+20>>2]=c;H[b+32>>2]=d;H[b+40>>2]=H[b+40>>2]+1;if(!(H[b+36>>2]!=1|H[b+24>>2]!=2)){F[b+54|0]=1}H[b+44>>2]=4}}function Bh(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0;e=H[a+32>>2];b=e;h=H[b+8>>2];g=H[b+12>>2];c=H[b+16>>2];b=H[b+20>>2];f=c+4|0;b=f>>>0<4?b+1|0:b;d=0;a:{if(f>>>0>h>>>0&(b|0)>=(g|0)|(b|0)>(g|0)){break a}c=H[e>>2]+c|0;c=I[c|0]|I[c+1|0]<<8|(I[c+2|0]<<16|I[c+3|0]<<24);H[e+16>>2]=f;H[e+20>>2]=b;d=0;if((c|0)<0){break a}H[H[a+4>>2]+80>>2]=c;d=1}return d|0}function qi(a){a=a|0;var b=0,c=0,d=0;H[a>>2]=11276;b=H[a+48>>2];H[a+48>>2]=0;if(b){ea[H[H[b>>2]+4>>2]](b)}H[a>>2]=13280;b=H[a+20>>2];if(b){H[a+24>>2]=b;oa(b)}d=H[a+8>>2];if(d){c=H[a+12>>2];b=d;if((c|0)!=(b|0)){while(1){c=c-4|0;b=H[c>>2];H[c>>2]=0;if(b){ea[H[H[b>>2]+4>>2]](b)}if((c|0)!=(d|0)){continue}break}b=H[a+8>>2]}H[a+12>>2]=d;oa(b)}return a|0}function Ee(a,b){var c=0,d=0,e=0,f=0;H[a+144>>2]=b;c=H[(ea[H[H[b>>2]+32>>2]](b)|0)+32>>2];c=H[c>>2]+H[c+16>>2]|0;d=H[(ea[H[H[b>>2]+32>>2]](b)|0)+32>>2];d=H[d+8>>2]-H[d+16>>2]|0;e=a,f=J[H[(ea[H[H[b>>2]+32>>2]](b)|0)+32>>2]+38>>1],G[e+38>>1]=f;H[a>>2]=c;H[a+16>>2]=0;H[a+20>>2]=0;H[a+8>>2]=d;H[a+12>>2]=0;e=a,f=ea[H[H[b>>2]+36>>2]](b)|0,H[e+148>>2]=f}function Cd(a,b,c,d){F[a+53|0]=1;a:{if(H[a+4>>2]!=(c|0)){break a}F[a+52|0]=1;c=H[a+16>>2];b:{if(!c){H[a+36>>2]=1;H[a+24>>2]=d;H[a+16>>2]=b;if((d|0)!=1){break a}if(H[a+48>>2]==1){break b}break a}if((b|0)==(c|0)){c=H[a+24>>2];if((c|0)==2){H[a+24>>2]=d;c=d}if(H[a+48>>2]!=1){break a}if((c|0)==1){break b}break a}H[a+36>>2]=H[a+36>>2]+1}F[a+54|0]=1}}function pi(a){a=a|0;var b=0,c=0,d=0;H[a>>2]=11276;b=H[a+48>>2];H[a+48>>2]=0;if(b){ea[H[H[b>>2]+4>>2]](b)}H[a>>2]=13280;b=H[a+20>>2];if(b){H[a+24>>2]=b;oa(b)}d=H[a+8>>2];if(d){c=H[a+12>>2];b=d;if((c|0)!=(b|0)){while(1){c=c-4|0;b=H[c>>2];H[c>>2]=0;if(b){ea[H[H[b>>2]+4>>2]](b)}if((c|0)!=(d|0)){continue}break}b=H[a+8>>2]}H[a+12>>2]=d;oa(b)}oa(a)}function zh(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0;e=H[a+32>>2];b=e;g=H[b+8>>2];d=H[b+12>>2];c=H[b+16>>2];b=H[b+20>>2];f=d;d=c+4|0;b=d>>>0<4?b+1|0:b;if((f|0)>=(b|0)&d>>>0<=g>>>0|(b|0)<(f|0)){c=H[e>>2]+c|0;c=I[c|0]|I[c+1|0]<<8|(I[c+2|0]<<16|I[c+3|0]<<24);H[e+16>>2]=d;H[e+20>>2]=b;H[H[a+4>>2]+80>>2]=c}return(b|0)<=(f|0)&d>>>0<=g>>>0|(b|0)<(f|0)}function Mf(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;e=ca+-64|0;ca=e;d=1;a:{if(Ya(a,b,0)){break a}d=0;if(!b){break a}b=Ed(b,14972);d=0;if(!b){break a}d=e+8|0;ra(d|4,0,52);H[e+56>>2]=1;H[e+20>>2]=-1;H[e+16>>2]=a;H[e+8>>2]=b;ea[H[H[b>>2]+28>>2]](b,d,H[c>>2],1);a=H[e+32>>2];if((a|0)==1){H[c>>2]=H[e+24>>2]}d=(a|0)==1}ca=e- -64|0;return d|0}function Ie(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=ca-16|0;ca=d;H[a+4>>2]=b;b=H[b+64>>2];e=H[b>>2];b=H[b+4>>2];F[d+15|0]=0;Oa(a+24|0,(b-e>>2>>>0)/3|0,d+15|0);b=H[a+4>>2];e=H[b+56>>2];b=H[b+52>>2];F[d+14|0]=0;Oa(a+36|0,e-b>>2,d+14|0);b=H[c+12>>2];H[a+16>>2]=H[c+8>>2];H[a+20>>2]=b;b=H[c+4>>2];H[a+8>>2]=H[c>>2];H[a+12>>2]=b;ca=d+16|0}function pc(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;if(!b){H[c>>2]=0;return}h=0-I[a+12|0]&255;e=H[a+4>>2];d=H[a+8>>2];i=H[a>>2];while(1){j=f<<1;if(!((e|0)<=0|d>>>0>4095)){e=e-1|0;H[a+4>>2]=e;d=I[e+i|0]|d<<8}g=d&255;f=g>>>0>>0;k=g;g=N(d>>>8|0,h);d=f?k+g|0:d-(h+g|0)|0;H[a+8>>2]=d;f=f|j;b=b-1|0;if(b){continue}break}H[c>>2]=f}function yg(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;a=ca-16|0;ca=a;f=F[b+24|0];e=H[3411];H[a+8>>2]=H[3410];H[a+12>>2]=e;e=H[3409];H[a>>2]=H[3408];H[a+4>>2]=e;e=Va(b,c,f,a);if(e){b=0;if(f){c=(f&255)<<2;b=pa(c);g=qa(b,a,c)+c|0}c=H[d>>2];if(c){H[d+4>>2]=c;oa(c)}H[d+8>>2]=g;H[d+4>>2]=g;H[d>>2]=b}ca=a+16|0;return e|0}function of(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0;f=ea[H[H[a>>2]+24>>2]](a)|0;c=1;a:{if((f|0)<=0){break a}d=H[H[a+36>>2]>>2];g=a+48|0;c=0;if(!(ea[H[H[d>>2]+16>>2]](d,g,b)|0)){break a}while(1){e=e+1|0;if((f|0)!=(e|0)){d=H[H[a+36>>2]+(e<<2)>>2];if(ea[H[H[d>>2]+16>>2]](d,g,b)|0){continue}}break}c=(e|0)>=(f|0)}return c|0}function nf(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0;f=ea[H[H[a>>2]+24>>2]](a)|0;c=1;a:{if((f|0)<=0){break a}d=H[H[a+36>>2]>>2];g=a+48|0;c=0;if(!(ea[H[H[d>>2]+20>>2]](d,g,b)|0)){break a}while(1){e=e+1|0;if((f|0)!=(e|0)){d=H[H[a+36>>2]+(e<<2)>>2];if(ea[H[H[d>>2]+20>>2]](d,g,b)|0){continue}}break}c=(e|0)>=(f|0)}return c|0}function _c(a,b){var c=0,d=0;a:{c=H[a+4>>2];d=H[a+8>>2];if((c|0)==d<<5){if((c+1|0)<0){break a}if(c>>>0<=1073741822){d=d<<6;c=(c&-32)+32|0;c=c>>>0>>0?d:c}else{c=2147483647}pb(a,c);c=H[a+4>>2]}H[a+4>>2]=c+1;d=1<>2]+(c>>>3&536870908)|0;if(I[b|0]){H[a>>2]=d|H[a>>2];return}H[a>>2]=H[a>>2]&(d^-1);return}sa();v()}function $h(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=ca-16|0;ca=d;H[a+4>>2]=b;e=H[b>>2];b=H[b+4>>2];F[d+15|0]=0;Oa(a+24|0,(b-e>>2>>>0)/3|0,d+15|0);b=H[a+4>>2];e=H[b+28>>2];b=H[b+24>>2];F[d+14|0]=0;Oa(a+36|0,e-b>>2,d+14|0);b=H[c+12>>2];H[a+16>>2]=H[c+8>>2];H[a+20>>2]=b;b=H[c+4>>2];H[a+8>>2]=H[c>>2];H[a+12>>2]=b;ca=d+16|0}function $b(a){var b=0;H[a>>2]=0;H[a+4>>2]=0;H[a+56>>2]=0;H[a+48>>2]=0;H[a+52>>2]=0;H[a+40>>2]=0;H[a+44>>2]=0;H[a+32>>2]=0;H[a+36>>2]=0;H[a+24>>2]=0;H[a+28>>2]=0;H[a+16>>2]=0;H[a+20>>2]=0;H[a+8>>2]=0;H[a+12>>2]=0;b=a- -64|0;H[b>>2]=0;H[b+4>>2]=0;H[a+72>>2]=0;H[a+76>>2]=0;H[a+80>>2]=0;H[a+84>>2]=0;H[a+60>>2]=a;return a}function td(a,b,c){var d=0,e=0,f=0,g=0;a:{if(a>>>0>5){break a}d=H[c+20>>2];e=H[c+12>>2];f=H[c+16>>2];if((d|0)>=(e|0)&f>>>0>=K[c+8>>2]|(d|0)>(e|0)){break a}e=I[H[c>>2]+f|0];f=f+1|0;d=f?d:d+1|0;H[c+16>>2]=f;H[c+20>>2]=d;d=e<<24>>24;if((d|0)<0){if(!td(a+1|0,b,c)){break a}e=d&127|H[b>>2]<<7}H[b>>2]=e;g=1}return g} function hb(a,b,c){var d=0,e=0,f=0,g=0;a:{if(a>>>0>5){break a}d=H[c+20>>2];e=H[c+12>>2];f=H[c+16>>2];if((d|0)>=(e|0)&f>>>0>=K[c+8>>2]|(d|0)>(e|0)){break a}e=I[H[c>>2]+f|0];f=f+1|0;d=f?d:d+1|0;H[c+16>>2]=f;H[c+20>>2]=d;d=e<<24>>24;if((d|0)<0){if(!hb(a+1|0,b,c)){break a}e=d&127|H[b>>2]<<7}H[b>>2]=e;g=1}return g}function Xa(a,b,c){var d=0,e=0,f=0,g=0;a:{if(a>>>0>5){break a}d=H[c+20>>2];e=H[c+12>>2];f=H[c+16>>2];if((d|0)>=(e|0)&f>>>0>=K[c+8>>2]|(d|0)>(e|0)){break a}e=I[H[c>>2]+f|0];f=f+1|0;d=f?d:d+1|0;H[c+16>>2]=f;H[c+20>>2]=d;d=e<<24>>24;if((d|0)<0){if(!Xa(a+1|0,b,c)){break a}e=d&127|H[b>>2]<<7}H[b>>2]=e;g=1}return g}function Qe(a,b,c){var d=0,e=0,f=0,g=0;a:{if(a>>>0>5){break a}d=H[c+20>>2];e=H[c+12>>2];f=H[c+16>>2];if((d|0)>=(e|0)&f>>>0>=K[c+8>>2]|(d|0)>(e|0)){break a}e=I[H[c>>2]+f|0];f=f+1|0;d=f?d:d+1|0;H[c+16>>2]=f;H[c+20>>2]=d;d=e<<24>>24;if((d|0)<0){if(!Qe(a+1|0,b,c)){break a}e=d&127|H[b>>2]<<7}H[b>>2]=e;g=1}return g}function Pc(a,b,c){var d=0,e=0,f=0,g=0;a:{if(a>>>0>5){break a}d=H[c+20>>2];e=H[c+12>>2];f=H[c+16>>2];if((d|0)>=(e|0)&f>>>0>=K[c+8>>2]|(d|0)>(e|0)){break a}e=I[H[c>>2]+f|0];f=f+1|0;d=f?d:d+1|0;H[c+16>>2]=f;H[c+20>>2]=d;d=e<<24>>24;if((d|0)<0){if(!Pc(a+1|0,b,c)){break a}e=d&127|H[b>>2]<<7}H[b>>2]=e;g=1}return g}function Fb(a,b,c){var d=0,e=0,f=0,g=0;a:{if(a>>>0>5){break a}d=H[c+20>>2];e=H[c+12>>2];f=H[c+16>>2];if((d|0)>=(e|0)&f>>>0>=K[c+8>>2]|(d|0)>(e|0)){break a}e=I[H[c>>2]+f|0];f=f+1|0;d=f?d:d+1|0;H[c+16>>2]=f;H[c+20>>2]=d;d=e<<24>>24;if((d|0)<0){if(!Fb(a+1|0,b,c)){break a}e=d&127|H[b>>2]<<7}H[b>>2]=e;g=1}return g}function Ea(a,b,c){var d=0,e=0,f=0,g=0;a:{if(a>>>0>5){break a}d=H[c+20>>2];e=H[c+12>>2];f=H[c+16>>2];if((d|0)>=(e|0)&f>>>0>=K[c+8>>2]|(d|0)>(e|0)){break a}e=I[H[c>>2]+f|0];f=f+1|0;d=f?d:d+1|0;H[c+16>>2]=f;H[c+20>>2]=d;d=e<<24>>24;if((d|0)<0){if(!Ea(a+1|0,b,c)){break a}e=d&127|H[b>>2]<<7}H[b>>2]=e;g=1}return g}function Bb(a,b,c){var d=0,e=0,f=0,g=0;a:{if(a>>>0>5){break a}d=H[c+20>>2];e=H[c+12>>2];f=H[c+16>>2];if((d|0)>=(e|0)&f>>>0>=K[c+8>>2]|(d|0)>(e|0)){break a}e=I[H[c>>2]+f|0];f=f+1|0;d=f?d:d+1|0;H[c+16>>2]=f;H[c+20>>2]=d;d=e<<24>>24;if((d|0)<0){if(!Bb(a+1|0,b,c)){break a}e=d&127|H[b>>2]<<7}H[b>>2]=e;g=1}return g}function Fa(a,b,c){var d=0,e=0;a:{b:{if(c>>>0>=4){if((a|b)&3){break b}while(1){if(H[a>>2]!=H[b>>2]){break b}b=b+4|0;a=a+4|0;c=c-4|0;if(c>>>0>3){continue}break}}if(!c){break a}}while(1){d=I[a|0];e=I[b|0];if((d|0)==(e|0)){b=b+1|0;a=a+1|0;c=c-1|0;if(c){continue}break a}break}return d-e|0}return 0}function Yc(a){var b=0,c=0,d=0,e=0;d=H[a>>2];if(d){e=d;c=H[a+4>>2];if((d|0)!=(c|0)){while(1){e=c-144|0;b=H[e+132>>2];if(b){H[c-8>>2]=b;oa(b)}b=H[c-28>>2];if(b){H[c-24>>2]=b;oa(b)}b=H[c-40>>2];if(b){H[c-36>>2]=b;oa(b)}oc(c-140|0);c=e;if((d|0)!=(c|0)){continue}break}e=H[a>>2]}H[a+4>>2]=d;oa(e)}}function Dg(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=H[b+4>>2];a:{if(!d){break a}b=H[H[H[b+8>>2]+(c<<2)>>2]+60>>2];if((b|0)<0){break a}a=H[d+24>>2];c=H[d+28>>2];if((a|0)==(c|0)){break a}b:{while(1){e=H[a>>2];if((b|0)==H[e+24>>2]){break b}a=a+4|0;if((c|0)!=(a|0)){continue}break}e=0}}return e|0}function Zh(a){a=a|0;var b=0;H[a+8>>2]=12384;H[a>>2]=12172;b=H[a+96>>2];if(b){H[a+100>>2]=b;oa(b)}b=H[a+80>>2];if(b){H[a+84>>2]=b;oa(b)}b=H[a+68>>2];if(b){H[a+72>>2]=b;oa(b)}b=H[a+56>>2];if(b){H[a+60>>2]=b;oa(b)}H[a+8>>2]=12620;b=H[a+44>>2];if(b){oa(b)}b=H[a+32>>2];if(b){oa(b)}return a|0}function Uc(a){var b=0,c=0,d=0;if(a){d=H[a+24>>2];if(d){b=d;c=H[a+28>>2];if((b|0)!=(c|0)){while(1){c=c-4|0;b=H[c>>2];H[c>>2]=0;if(b){Ra(b+12|0,H[b+16>>2]);Qa(b,H[b+4>>2]);oa(b)}if((c|0)!=(d|0)){continue}break}b=H[a+24>>2]}H[a+28>>2]=d;oa(b)}Ra(a+12|0,H[a+16>>2]);Qa(a,H[a+4>>2]);oa(a)}}function Yh(a){a=a|0;var b=0;H[a+8>>2]=12384;H[a>>2]=12172;b=H[a+96>>2];if(b){H[a+100>>2]=b;oa(b)}b=H[a+80>>2];if(b){H[a+84>>2]=b;oa(b)}b=H[a+68>>2];if(b){H[a+72>>2]=b;oa(b)}b=H[a+56>>2];if(b){H[a+60>>2]=b;oa(b)}H[a+8>>2]=12620;b=H[a+44>>2];if(b){oa(b)}b=H[a+32>>2];if(b){oa(b)}oa(a)}function vi(a){a=a|0;var b=0,c=0,d=0;H[a>>2]=13280;b=H[a+20>>2];if(b){H[a+24>>2]=b;oa(b)}d=H[a+8>>2];if(d){c=H[a+12>>2];b=d;if((c|0)!=(b|0)){while(1){c=c-4|0;b=H[c>>2];H[c>>2]=0;if(b){ea[H[H[b>>2]+4>>2]](b)}if((c|0)!=(d|0)){continue}break}b=H[a+8>>2]}H[a+12>>2]=d;oa(b)}return a|0}function xc(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0;h=H[c+8>>2];e=H[c+16>>2];g=H[c+12>>2];f=g;d=H[c+20>>2];if(h>>>0>e>>>0&(f|0)>=(d|0)|(d|0)<(f|0)){b=I[H[c>>2]+e|0];i=e+1|0;f=i?d:d+1|0;H[c+16>>2]=i;H[c+20>>2]=f;H[a+4>>2]=b}return e>>>0>>0&(d|0)<=(g|0)|(d|0)<(g|0)}function Wc(a){a=a|0;var b=0,c=0,d=0;H[a>>2]=13280;b=H[a+20>>2];if(b){H[a+24>>2]=b;oa(b)}d=H[a+8>>2];if(d){c=H[a+12>>2];b=d;if((c|0)!=(b|0)){while(1){c=c-4|0;b=H[c>>2];H[c>>2]=0;if(b){ea[H[H[b>>2]+4>>2]](b)}if((c|0)!=(d|0)){continue}break}b=H[a+8>>2]}H[a+12>>2]=d;oa(b)}oa(a)}function Ya(a,b,c){var d=0;if(!c){return H[a+4>>2]==H[b+4>>2]}if((a|0)==(b|0)){return 1}d=H[a+4>>2];a=I[d|0];c=H[b+4>>2];b=I[c|0];a:{if(!a|(b|0)!=(a|0)){break a}while(1){b=I[c+1|0];a=I[d+1|0];if(!a){break a}c=c+1|0;d=d+1|0;if((a|0)==(b|0)){continue}break}}return(a|0)==(b|0)}function _h(a){a=a|0;var b=0;H[a>>2]=12384;b=H[a+88>>2];if(b){H[a+92>>2]=b;oa(b)}b=H[a+72>>2];if(b){H[a+76>>2]=b;oa(b)}b=H[a+60>>2];if(b){H[a- -64>>2]=b;oa(b)}b=H[a+48>>2];if(b){H[a+52>>2]=b;oa(b)}H[a>>2]=12620;b=H[a+36>>2];if(b){oa(b)}b=H[a+24>>2];if(b){oa(b)}return a|0}function Fg(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=H[b+12>>2];b=H[b+8>>2];a=0;a:{if((d|0)==(b|0)){break a}a=d-b>>2;d=a>>>0<=1?1:a;a=0;b:{while(1){e=H[b+(a<<2)>>2];if(H[e+60>>2]==(c|0)){break b}a=a+1|0;if((d|0)!=(a|0)){continue}break}a=0;break a}a=(a|0)!=-1?e:0}return a|0}function ae(a,b){var c=0,d=0,e=0;H[a+8>>2]=0;H[a>>2]=0;H[a+4>>2]=0;a:{c=H[b+4>>2];d=H[b>>2];b:{if((c|0)==(d|0)){a=c;break b}c=c-d|0;if((c|0)<0){break a}d=c;e=pa(c);c=ra(e,0,c);d=d+c|0;H[a+8>>2]=d;H[a+4>>2]=d;H[a>>2]=c;c=H[b>>2];a=H[b+4>>2]}qa(e,c,a-c|0);return}sa();v()}function ed(a){var b=0,c=0,d=0,e=0;c=H[a+4>>2];d=H[a>>2];if((c|0)!=(d|0)){while(1){e=c-144|0;b=H[e+132>>2];if(b){H[c-8>>2]=b;oa(b)}b=H[c-28>>2];if(b){H[c-24>>2]=b;oa(b)}b=H[c-40>>2];if(b){H[c-36>>2]=b;oa(b)}oc(c-140|0);c=e;if((d|0)!=(c|0)){continue}break}}H[a+4>>2]=d}function Vh(a){a=a|0;var b=0;H[a>>2]=12384;b=H[a+88>>2];if(b){H[a+92>>2]=b;oa(b)}b=H[a+72>>2];if(b){H[a+76>>2]=b;oa(b)}b=H[a+60>>2];if(b){H[a- -64>>2]=b;oa(b)}b=H[a+48>>2];if(b){H[a+52>>2]=b;oa(b)}H[a>>2]=12620;b=H[a+36>>2];if(b){oa(b)}b=H[a+24>>2];if(b){oa(b)}oa(a)}function cb(a){var b=0;if(a){b=H[a+76>>2];if(b){H[a+80>>2]=b;oa(b)}b=H[a- -64>>2];if(b){H[a+68>>2]=b;oa(b)}b=H[a+48>>2];if(b){H[a+52>>2]=b;oa(b)}b=H[a+24>>2];if(b){H[a+28>>2]=b;oa(b)}b=H[a+12>>2];if(b){H[a+16>>2]=b;oa(b)}b=H[a>>2];if(b){H[a+4>>2]=b;oa(b)}oa(a)}}function Jd(a,b,c){var d=0,e=0,f=0,g=0;f=ca-16|0;ca=f;d=ca-16|0;ca=d;b=b-a>>2;while(1){if(b){H[d+12>>2]=a;e=b>>>1|0;H[d+12>>2]=H[d+12>>2]+(e<<2);g=(e^-1)+b|0;b=e;e=K[H[d+12>>2]>>2]>2];b=e?g:b;a=e?H[d+12>>2]+4|0:a;continue}break}ca=d+16|0;ca=f+16|0;return a}function oc(a){var b=0;b=H[a+84>>2];if(b){H[a+88>>2]=b;oa(b)}b=H[a+72>>2];if(b){H[a+76>>2]=b;oa(b)}b=H[a+52>>2];if(b){H[a+56>>2]=b;oa(b)}b=H[a+40>>2];if(b){H[a+44>>2]=b;oa(b)}b=H[a+28>>2];if(b){H[a+32>>2]=b;oa(b)}b=H[a+12>>2];if(b){oa(b)}a=H[a>>2];if(a){oa(a)}}function Xc(a,b){var c=0,d=0;d=pa(40);H[d>>2]=-1;c=d+8|0;H[c+16>>2]=0;H[c+20>>2]=0;H[c+8>>2]=0;H[c>>2]=0;H[c+4>>2]=0;H[c+24>>2]=0;H[c+28>>2]=0;ea[H[H[a>>2]+16>>2]](a,d);a=H[b+88>>2];H[b+88>>2]=d;if(a){b=H[a+8>>2];if(b){H[a+12>>2]=b;oa(b)}oa(a)}return 1}function Ma(a){var b=0,c=0,d=0;b=a;a:{if(b&3){while(1){if(!I[b|0]){break a}b=b+1|0;if(b&3){continue}break}}while(1){c=b;b=b+4|0;d=H[c>>2];if(!((d^-1)&d-16843009&-2139062144)){continue}break}while(1){b=c;c=b+1|0;if(I[b|0]){continue}break}}return b-a|0}function Ba(a){var b=0,c=0,d=0,e=0,f=0;d=I[a+12|0];c=H[a+8>>2];a:{if(c>>>0>4095){break a}b=H[a+4>>2];if((b|0)<=0){break a}b=b-1|0;H[a+4>>2]=b;c=I[b+H[a>>2]|0]|c<<8}d=0-d&255;b=N(d,c>>>8|0);e=c&255;f=e>>>0>>0;H[a+8>>2]=f?b+e|0:c-(b+d|0)|0;return f}function od(a,b){H[a+4>>2]=0;H[a+8>>2]=0;H[a>>2]=1984;H[a+12>>2]=0;H[a+16>>2]=0;H[a+20>>2]=0;H[a+24>>2]=0;H[a+28>>2]=0;H[a+32>>2]=0;H[a+36>>2]=0;H[a+40>>2]=0;H[a>>2]=2328;H[a+60>>2]=b;H[a+44>>2]=0;H[a+48>>2]=0;H[a+52>>2]=0;H[a+56>>2]=0;return a}function mc(a,b){var c=0,d=0,e=0;c=Ma(b);if(c>>>0<2147483632){a:{b:{if(c>>>0>=11){d=(c|15)+1|0;e=pa(d);H[a+8>>2]=d|-2147483648;H[a>>2]=e;H[a+4>>2]=c;d=c+e|0;break b}F[a+11|0]=c;d=a+c|0;e=a;if(!c){break a}}va(e,b,c)}F[d|0]=0;return a}Na();v()}function Ng(a){a=a|0;var b=0,c=0,d=0;if(a){if(F[a+27|0]<0){oa(H[a+16>>2])}b=H[a>>2];if(b){c=b;d=H[a+4>>2];if((b|0)!=(d|0)){while(1){c=d-12|0;if(F[d-1|0]<0){oa(H[c>>2])}d=c;if((d|0)!=(b|0)){continue}break}c=H[a>>2]}H[a+4>>2]=b;oa(c)}oa(a)}}function Jb(a,b){var c=0,d=0,e=0;a:{c=H[a>>2];b:{if(H[a+8>>2]-c>>2>>>0>=b>>>0){break b}if(b>>>0>=1073741824){break a}d=H[a+4>>2]-c|0;e=b<<2;b=va(pa(e),c,d);H[a+8>>2]=b+e;H[a+4>>2]=b+d;H[a>>2]=b;if(!c){break b}oa(c)}return}sa();v()}function Ga(a){a=a|0;var b=0,c=0;if(a){b=H[a+88>>2];H[a+88>>2]=0;if(b){c=H[b+8>>2];if(c){H[b+12>>2]=c;oa(c)}oa(b)}b=H[a+68>>2];if(b){H[a+72>>2]=b;oa(b)}b=H[a+64>>2];H[a+64>>2]=0;if(b){c=H[b>>2];if(c){H[b+4>>2]=c;oa(c)}oa(b)}oa(a)}}function Nd(a){var b=0,c=0,d=0;if(F[H[a>>2]]-48>>>0>=10){return 0}while(1){d=H[a>>2];c=-1;if(b>>>0<=214748364){c=F[d|0]-48|0;b=N(b,10);c=(c|0)>(b^2147483647)?-1:c+b|0}H[a>>2]=d+1;b=c;if(F[d+1|0]-48>>>0<10){continue}break}return b}function Cg(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;b=H[b+96>>2];a=pa(12);b=b+N(c,12)|0;c=H[b+4>>2];H[a>>2]=H[b>>2];H[a+4>>2]=c;H[a+8>>2]=H[b+8>>2];b=H[d>>2];if(b){H[d+4>>2]=b;oa(b)}H[d>>2]=a;a=a+12|0;H[d+8>>2]=a;H[d+4>>2]=a;return 1}function Ai(a){a=a|0;var b=0;H[a+24>>2]=1832;H[a>>2]=11048;b=H[a+32>>2];if(b){H[a+36>>2]=b;oa(b)}H[a>>2]=2448;b=H[a+20>>2];H[a+20>>2]=0;if(b){ea[H[H[b>>2]+4>>2]](b)}H[a>>2]=2232;b=H[a+16>>2];H[a+16>>2]=0;if(b){Ga(b)}return a|0}function Sj(a,b,c,d){var e=0,f=0,g=0,h=0;f=b^d;g=f>>31;e=b>>31;a=a^e;h=a-e|0;e=(b^e)-((a>>>0>>0)+e|0)|0;a=d>>31;b=c^a;f=f>>31;a=Tj(h,e,b-a|0,(a^d)-((a>>>0>b>>>0)+a|0)|0)^f;b=a-f|0;da=(g^da)-((a>>>0>>0)+g|0)|0;return b}function yi(a){a=a|0;var b=0;H[a+24>>2]=1832;H[a>>2]=11048;b=H[a+32>>2];if(b){H[a+36>>2]=b;oa(b)}H[a>>2]=2448;b=H[a+20>>2];H[a+20>>2]=0;if(b){ea[H[H[b>>2]+4>>2]](b)}H[a>>2]=2232;b=H[a+16>>2];H[a+16>>2]=0;if(b){Ga(b)}oa(a)}function Yb(a,b,c){var d=0,e=0,f=0;e=ca-16|0;ca=e;d=H[a+8>>2]&2147483647;a:{if(d>>>0>c>>>0){d=H[a>>2];H[a+4>>2]=c;yb(d,b,c);F[e+15|0]=0;F[c+d|0]=I[e+15|0];break a}f=a;a=H[a+4>>2];Gd(f,d-1|0,(c-d|0)+1|0,a,a,c,b)}ca=e+16|0}function Bf(a,b){a=a|0;b=b|0;var c=0,d=0;c=ca-16|0;ca=c;a=H[a+4>>2];a:{if((a|0)==-1){break a}F[c+15|0]=a;d=H[b+20>>2];if(!!H[b+16>>2]&(d|0)>=0|(d|0)>0){break a}Wb(b,H[b+4>>2],c+15|0,c+16|0)}ca=c+16|0;return(a|0)!=-1|0}function Xb(a,b,c){var d=0,e=0;d=ca-16|0;ca=d;a:{if(c>>>0<=10){F[a+11|0]=I[a+11|0]&128|c;F[a+11|0]=I[a+11|0]&127;yb(a,b,c);F[d+15|0]=0;F[a+c|0]=I[d+15|0];break a}e=a;a=I[a+11|0]&127;Gd(e,10,c-10|0,a,a,c,b)}ca=d+16|0}function Rj(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0;e=c>>>16|0;f=a>>>16|0;j=N(e,f);g=c&65535;h=a&65535;i=N(g,h);f=(i>>>16|0)+N(f,g)|0;e=(f&65535)+N(e,h)|0;da=(N(b,c)+j|0)+N(a,d)+(f>>>16)+(e>>>16)|0;return i&65535|e<<16}function Dd(a,b,c){var d=0;d=H[a+16>>2];if(!d){H[a+36>>2]=1;H[a+24>>2]=c;H[a+16>>2]=b;return}a:{if((b|0)==(d|0)){if(H[a+24>>2]!=2){break a}H[a+24>>2]=c;return}F[a+54|0]=1;H[a+24>>2]=2;H[a+36>>2]=H[a+36>>2]+1}}function th(){var a=0;a=Eb(pa(96));H[a+64>>2]=0;H[a+68>>2]=0;H[a+88>>2]=0;H[a+72>>2]=0;H[a+76>>2]=0;F[a+77|0]=0;F[a+78|0]=0;F[a+79|0]=0;F[a+80|0]=0;F[a+81|0]=0;F[a+82|0]=0;F[a+83|0]=0;F[a+84|0]=0;return a|0}function zi(a,b){a=a|0;b=b|0;var c=0,d=0;H[b>>2]=2;c=H[b+8>>2];d=H[b+12>>2]-c|0;if(d>>>0<=4294967291){kc(b+8|0,d+4|0);c=H[b+8>>2]}b=c+d|0;a=H[a+4>>2];F[b|0]=a;F[b+1|0]=a>>>8;F[b+2|0]=a>>>16;F[b+3|0]=a>>>24}function rj(a){a=a|0;var b=0;H[a>>2]=5580;b=H[a+96>>2];if(b){oa(b)}b=H[a+84>>2];if(b){oa(b)}b=H[a+72>>2];if(b){oa(b)}b=H[a+60>>2];if(b){oa(b)}H[a>>2]=3272;b=H[a+32>>2];if(b){H[a+36>>2]=b;oa(b)}return a|0}function ib(a,b,c,d,e){var f=0;f=ca-256|0;ca=f;if(!(e&73728|(c|0)<=(d|0))){d=c-d|0;c=d>>>0<256;ra(f,b&255,c?d:256);if(!c){while(1){Ab(a,f,256);d=d-256|0;if(d>>>0>255){continue}break}}Ab(a,f,d)}ca=f+256|0}function Ij(a){a=a|0;var b=0;H[a>>2]=3564;b=H[a+96>>2];if(b){oa(b)}b=H[a+84>>2];if(b){oa(b)}b=H[a+72>>2];if(b){oa(b)}b=H[a+60>>2];if(b){oa(b)}H[a>>2]=3272;b=H[a+32>>2];if(b){H[a+36>>2]=b;oa(b)}return a|0}function Ch(a){a=a|0;var b=0,c=0,d=0;b=H[a+8>>2];d=H[a+12>>2];if((b|0)==(d|0)){return 1}while(1){c=H[b>>2];c=ea[H[H[c>>2]+16>>2]](c,H[a+32>>2])|0;if(c){b=b+4|0;if((d|0)!=(b|0)){continue}}break}return c|0}function Yd(a,b){var c=0,d=0;c=H[a+8>>2];a=H[a+12>>2];if((c|0)!=(a|0)){a=a-c>>2;d=a>>>0<=1?1:a;a=0;while(1){if(H[H[(a<<2)+c>>2]+60>>2]==(b|0)){return a}a=a+1|0;if((d|0)!=(a|0)){continue}break}}return-1}function qj(a){a=a|0;var b=0;H[a>>2]=5580;b=H[a+96>>2];if(b){oa(b)}b=H[a+84>>2];if(b){oa(b)}b=H[a+72>>2];if(b){oa(b)}b=H[a+60>>2];if(b){oa(b)}H[a>>2]=3272;b=H[a+32>>2];if(b){H[a+36>>2]=b;oa(b)}oa(a)}function Hj(a){a=a|0;var b=0;H[a>>2]=3564;b=H[a+96>>2];if(b){oa(b)}b=H[a+84>>2];if(b){oa(b)}b=H[a+72>>2];if(b){oa(b)}b=H[a+60>>2];if(b){oa(b)}H[a>>2]=3272;b=H[a+32>>2];if(b){H[a+36>>2]=b;oa(b)}oa(a)}function $d(a,b,c){var d=0,e=0;d=a+4|0;a=nb(a,b);a:{if((d|0)==(a|0)){break a}b=H[a+32>>2];d=H[a+28>>2];if((b|0)==(d|0)){break a}Cc(c,b-d|0);c=Dc(c);b=H[a+28>>2];qa(c,b,H[a+32>>2]-b|0);e=1}return e}function Qf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;e=ca-16|0;ca=e;a=_(H[a+60>>2],b|0,c|0,d&255,e+8|0)|0;if(a){H[3992]=a;a=-1}else{a=0}ca=e+16|0;da=a?-1:H[e+12>>2];return(a?-1:H[e+8>>2])|0}function Sd(a){var b=0;b=H[a+72>>2];H[a+72>>2]=b-1|b;b=H[a>>2];if(b&8){H[a>>2]=b|32;return-1}H[a+4>>2]=0;H[a+8>>2]=0;b=H[a+44>>2];H[a+28>>2]=b;H[a+20>>2]=b;H[a+16>>2]=b+H[a+48>>2];return 0}function Eb(a){H[a+8>>2]=0;H[a+12>>2]=0;H[a>>2]=0;H[a+40>>2]=0;H[a+44>>2]=0;H[a+28>>2]=9;F[a+24|0]=1;H[a+56>>2]=-1;H[a+60>>2]=0;H[a+16>>2]=0;H[a+20>>2]=0;H[a+48>>2]=0;H[a+52>>2]=0;return a}function hf(a,b){a=a|0;b=b|0;var c=0,d=0;d=H[a+16>>2];c=0;a:{if(H[a+20>>2]-d>>2<=(b|0)){break a}b=H[(b<<2)+d>>2];c=0;if((b|0)<0){break a}c=rb(H[H[a+36>>2]+(b<<2)>>2])}return c|0}function Mg(){var a=0,b=0;a=pa(40);H[a+4>>2]=0;H[a+8>>2]=0;H[a+24>>2]=0;H[a+28>>2]=0;b=a+16|0;H[b>>2]=0;H[b+4>>2]=0;H[a>>2]=a+4;H[a+12>>2]=b;H[a+32>>2]=0;H[a+36>>2]=0;return a|0}function Vf(a,b){a=a|0;b=b|0;var c=0,d=0;Wd(a,b);a:{if((b|0)<0){break a}d=H[a+88>>2];c=H[a+84>>2];if(d-c>>2<=(b|0)){break a}c=(b<<2)+c|0;b=c+4|0;va(c,b,d-b|0);H[a+88>>2]=d-4}}function Rh(a){a=a|0;var b=0;H[a+8>>2]=12804;H[a>>2]=12640;b=H[a+56>>2];if(b){H[a+60>>2]=b;oa(b)}H[a+8>>2]=12620;b=H[a+44>>2];if(b){oa(b)}b=H[a+32>>2];if(b){oa(b)}return a|0}function Lh(a){a=a|0;var b=0;H[a+8>>2]=11872;H[a>>2]=12932;b=H[a+56>>2];if(b){H[a+60>>2]=b;oa(b)}H[a+8>>2]=12124;b=H[a+44>>2];if(b){oa(b)}b=H[a+32>>2];if(b){oa(b)}return a|0}function zb(a){var b=0,c=0;b=H[3958];c=a+7&-8;a=b+c|0;a:{if(a>>>0<=b>>>0?c:0){break a}if(a>>>0>fa()<<16>>>0){if(!($(a|0)|0)){break a}}H[3958]=a;return b}H[3992]=48;return-1}function bj(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;H[a+4>>2]=b;b=H[H[H[b+4>>2]+8>>2]+(c<<2)>>2];H[a+12>>2]=c;H[a+8>>2]=b;a=H[a+8>>2];if(I[a+24|0]==3){d=H[a+28>>2]==9}return d|0}function wf(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=H[a+8>>2];a:{if(!I[d+24|0]){break a}if(!mb(d,H[b+4>>2]-H[b>>2]>>2)){break a}e=ea[H[H[a>>2]+32>>2]](a,b,c)|0}return e|0}function Qh(a){a=a|0;var b=0;H[a+8>>2]=12804;H[a>>2]=12640;b=H[a+56>>2];if(b){H[a+60>>2]=b;oa(b)}H[a+8>>2]=12620;b=H[a+44>>2];if(b){oa(b)}b=H[a+32>>2];if(b){oa(b)}oa(a)}function Kh(a){a=a|0;var b=0;H[a+8>>2]=11872;H[a>>2]=12932;b=H[a+56>>2];if(b){H[a+60>>2]=b;oa(b)}H[a+8>>2]=12124;b=H[a+44>>2];if(b){oa(b)}b=H[a+32>>2];if(b){oa(b)}oa(a)}function nj(a){a=a|0;var b=0;H[a>>2]=5816;b=H[a+76>>2];if(b){oa(b)}b=H[a+68>>2];H[a+68>>2]=0;if(b){oa(b)}H[a>>2]=3272;b=H[a+32>>2];if(b){H[a+36>>2]=b;oa(b)}return a|0}function Ra(a,b){if(b){Ra(a,H[b>>2]);Ra(a,H[b+4>>2]);a=H[b+28>>2];H[b+28>>2]=0;if(a){Ra(a+12|0,H[a+16>>2]);Qa(a,H[a+4>>2]);oa(a)}if(F[b+27|0]<0){oa(H[b+16>>2])}oa(b)}}function Gi(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;H[a+4>>2]=b;d=H[H[H[b+4>>2]+8>>2]+(c<<2)>>2];H[a+12>>2]=c;H[a+8>>2]=d;return H[H[H[H[b+4>>2]+8>>2]+(c<<2)>>2]+28>>2]==9|0}function Ej(a){a=a|0;var b=0;H[a>>2]=3812;b=H[a+76>>2];if(b){oa(b)}b=H[a+68>>2];H[a+68>>2]=0;if(b){oa(b)}H[a>>2]=3272;b=H[a+32>>2];if(b){H[a+36>>2]=b;oa(b)}return a|0}function Vc(a){H[a+40>>2]=0;H[a+4>>2]=0;H[a+8>>2]=0;H[a>>2]=13280;H[a+12>>2]=0;H[a+16>>2]=0;H[a+20>>2]=0;H[a+24>>2]=0;H[a+28>>2]=0;H[a+32>>2]=0;G[a+36>>1]=0;return a}function Hd(a,b){var c=0,d=0,e=0,f=0;H[a>>2]=15260;H[a>>2]=15372;c=Ma(b);d=pa(c+13|0);H[d+8>>2]=0;H[d+4>>2]=c;H[d>>2]=c;e=a,f=qa(d+12|0,b,c+1|0),H[e+4>>2]=f;return a}function jg(a,b){a=a|0;b=b|0;var c=0;a:{if(!(ea[H[H[a>>2]+36>>2]](a,b)|0)){break a}if(!(ea[H[H[a>>2]+40>>2]](a,b)|0)){break a}c=ea[H[H[a>>2]+44>>2]](a)|0}return c|0}function mj(a){a=a|0;var b=0;H[a>>2]=5816;b=H[a+76>>2];if(b){oa(b)}b=H[a+68>>2];H[a+68>>2]=0;if(b){oa(b)}H[a>>2]=3272;b=H[a+32>>2];if(b){H[a+36>>2]=b;oa(b)}oa(a)}function Dj(a){a=a|0;var b=0;H[a>>2]=3812;b=H[a+76>>2];if(b){oa(b)}b=H[a+68>>2];H[a+68>>2]=0;if(b){oa(b)}H[a>>2]=3272;b=H[a+32>>2];if(b){H[a+36>>2]=b;oa(b)}oa(a)}function Xe(a){a=a|0;var b=0;a:{if(!H[a- -64>>2]|!H[a+68>>2]|(!H[a+44>>2]|!H[a+48>>2])){break a}if(!H[a+52>>2]|!H[a+56>>2]){break a}b=H[a+92>>2]!=-1}return b|0}function cf(a){a=a|0;var b=0;H[a>>2]=2448;b=H[a+20>>2];H[a+20>>2]=0;if(b){ea[H[H[b>>2]+4>>2]](b)}H[a>>2]=2232;b=H[a+16>>2];H[a+16>>2]=0;if(b){Ga(b)}return a|0}function Pj(a,b){a=a|0;b=b|0;var c=0;b=H[b+88>>2];if(!(!b|H[b>>2]!=2)){c=a;a=H[b+8>>2];H[c+4>>2]=I[a|0]|I[a+1|0]<<8|(I[a+2|0]<<16|I[a+3|0]<<24);c=1}return c|0}function tc(a){a=a|0;var b=0;a:{if(!H[a+48>>2]|!H[a+52>>2]|(!H[a+28>>2]|!H[a+32>>2])){break a}if(!H[a+36>>2]|!H[a+40>>2]){break a}b=H[a+76>>2]!=-1}return b|0}function Sh(a){a=a|0;var b=0;H[a>>2]=12804;b=H[a+48>>2];if(b){H[a+52>>2]=b;oa(b)}H[a>>2]=12620;b=H[a+36>>2];if(b){oa(b)}b=H[a+24>>2];if(b){oa(b)}return a|0}function He(a){a=a|0;var b=0;H[a>>2]=11872;b=H[a+48>>2];if(b){H[a+52>>2]=b;oa(b)}H[a>>2]=12124;b=H[a+36>>2];if(b){oa(b)}b=H[a+24>>2];if(b){oa(b)}return a|0}function bf(a){a=a|0;var b=0;H[a>>2]=2448;b=H[a+20>>2];H[a+20>>2]=0;if(b){ea[H[H[b>>2]+4>>2]](b)}H[a>>2]=2232;b=H[a+16>>2];H[a+16>>2]=0;if(b){Ga(b)}oa(a)}function wh(){var a=0,b=0;b=pa(40);H[b>>2]=-1;a=b+8|0;H[a+16>>2]=0;H[a+20>>2]=0;H[a+8>>2]=0;H[a>>2]=0;H[a+4>>2]=0;H[a+24>>2]=0;H[a+28>>2]=0;return b|0}function gf(a,b){a=a|0;b=b|0;var c=0,d=0;d=H[a+4>>2];a:{if(d){c=1;if(I[d+36|0]<2){break a}}c=ea[H[H[a>>2]+48>>2]](a,H[b+4>>2]-H[b>>2]>>2)|0}return c|0}function ci(a){a=a|0;var b=0;H[a>>2]=11872;b=H[a+48>>2];if(b){H[a+52>>2]=b;oa(b)}H[a>>2]=12124;b=H[a+36>>2];if(b){oa(b)}b=H[a+24>>2];if(b){oa(b)}oa(a)}function Mh(a){a=a|0;var b=0;H[a>>2]=12804;b=H[a+48>>2];if(b){H[a+52>>2]=b;oa(b)}H[a>>2]=12620;b=H[a+36>>2];if(b){oa(b)}b=H[a+24>>2];if(b){oa(b)}oa(a)}function Ha(a){H[a+8>>2]=0;H[a+12>>2]=0;H[a>>2]=0;H[a+16>>2]=0;H[a+20>>2]=0;H[a+32>>2]=0;H[a+24>>2]=0;H[a+28>>2]=0;G[a+38>>1]=0;F[a+36|0]=0;return a}function Hf(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;if(Ya(a,H[b+8>>2],f)){Cd(b,c,d,e);return}a=H[a+8>>2];ea[H[H[a>>2]+20>>2]](a,b,c,d,e,f)}function Ei(a,b,c){a=a|0;b=b|0;c=c|0;a:{if(I[H[a+4>>2]+36|0]>=2){b=0;if(!(ea[H[H[a>>2]+52>>2]](a)|0)){break a}}b=Xc(a+24|0,H[a+16>>2])}return b|0}function Fi(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;a:{if(I[H[a+4>>2]+36|0]<=1){d=0;if(!(ea[H[H[a>>2]+52>>2]](a)|0)){break a}}d=nd(a,b,c)}return d|0}function gh(){var a=0;a=_d(pa(108));H[a+84>>2]=0;H[a+88>>2]=0;H[a>>2]=13664;H[a+92>>2]=0;H[a+96>>2]=0;H[a+100>>2]=0;H[a+104>>2]=0;return a|0}function Zd(a,b){var c=0;c=-1;a:{if((b|0)==-1|(b|0)>4){break a}b=N(b,12)+a|0;a=H[b+20>>2];if((H[b+24>>2]-a|0)<=0){break a}c=H[a>>2]}return c}function lc(a,b,c,d,e,f,g){H[a>>2]=0;H[a+56>>2]=b;H[a+48>>2]=0;H[a+52>>2]=0;H[a+40>>2]=f;H[a+44>>2]=g;F[a+32|0]=e;H[a+28>>2]=d;F[a+24|0]=c}function aj(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;a:{if(I[H[a+4>>2]+36|0]<=1){d=0;if(!xc(a+24|0,H[a+8>>2],c)){break a}}d=nd(a,b,c)}return d|0}function $i(a,b,c){a=a|0;b=b|0;c=c|0;a:{if(I[H[a+4>>2]+36|0]>=2){b=0;if(!xc(a+24|0,rb(a),c)){break a}}b=Xc(a+24|0,H[a+16>>2])}return b|0}function Yf(a){a=a|0;var b=0;H[a>>2]=13664;b=H[a+96>>2];if(b){H[a+100>>2]=b;oa(b)}b=H[a+84>>2];if(b){H[a+88>>2]=b;oa(b)}return _b(a)|0}function Dc(a){var b=0;if(I[a+11|0]>>>7|0){b=H[a+4>>2]}else{b=I[a+11|0]&127}if(!b){af(1232);v()}if(I[a+11|0]>>>7|0){a=H[a>>2]}return a}function Xf(a){a=a|0;var b=0;H[a>>2]=13664;b=H[a+96>>2];if(b){H[a+100>>2]=b;oa(b)}b=H[a+84>>2];if(b){H[a+88>>2]=b;oa(b)}oa(_b(a))}function zj(a){a=a|0;var b=0;H[a>>2]=4040;b=H[a+76>>2];if(b){oa(b)}H[a>>2]=3272;b=H[a+32>>2];if(b){H[a+36>>2]=b;oa(b)}return a|0}function jj(a){a=a|0;var b=0;H[a>>2]=6032;b=H[a+76>>2];if(b){oa(b)}H[a>>2]=3272;b=H[a+32>>2];if(b){H[a+36>>2]=b;oa(b)}return a|0}function Qa(a,b){if(b){Qa(a,H[b>>2]);Qa(a,H[b+4>>2]);a=H[b+28>>2];if(a){H[b+32>>2]=a;oa(a)}if(F[b+27|0]<0){oa(H[b+16>>2])}oa(b)}}function Vg(){var a=0;a=pa(28);H[a>>2]=0;H[a+4>>2]=0;H[a+24>>2]=0;H[a+16>>2]=0;H[a+20>>2]=0;H[a+8>>2]=0;H[a+12>>2]=0;return a|0}function wg(a){a=a|0;var b=0;H[a>>2]=1984;b=H[a+16>>2];if(b){H[a+20>>2]=b;oa(b)}b=H[a+4>>2];if(b){H[a+8>>2]=b;oa(b)}return a|0}function eh(){var a=0,b=0;a=pa(24);H[a+4>>2]=0;H[a+8>>2]=0;b=a+16|0;H[b>>2]=0;H[b+4>>2]=0;H[a>>2]=a+4;H[a+12>>2]=b;return a|0}function Kf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;if(Ya(a,H[b+8>>2],0)){Dd(b,c,d);return}a=H[a+8>>2];ea[H[H[a>>2]+28>>2]](a,b,c,d)}function yj(a){a=a|0;var b=0;H[a>>2]=4040;b=H[a+76>>2];if(b){oa(b)}H[a>>2]=3272;b=H[a+32>>2];if(b){H[a+36>>2]=b;oa(b)}oa(a)}function ij(a){a=a|0;var b=0;H[a>>2]=6032;b=H[a+76>>2];if(b){oa(b)}H[a>>2]=3272;b=H[a+32>>2];if(b){H[a+36>>2]=b;oa(b)}oa(a)}function pa(a){var b=0;a=a?a:1;a:{while(1){b=Ec(a);if(b){break a}b=H[4422];if(b){ea[b|0]();continue}break}X();v()}return b}function Kb(a,b){if(b){Kb(a,H[b>>2]);Kb(a,H[b+4>>2]);if(F[b+39|0]<0){oa(H[b+28>>2])}if(F[b+27|0]<0){oa(H[b+16>>2])}oa(b)}}function Ad(a){a=a|0;var b=0,c=0;H[a>>2]=15372;b=H[a+4>>2]-12|0;c=H[b+8>>2]-1|0;H[b+8>>2]=c;if((c|0)<0){oa(b)}return a|0}function lh(){var a=0;a=pa(24);H[a+8>>2]=0;H[a+12>>2]=0;H[a+4>>2]=-1;H[a>>2]=1832;H[a+16>>2]=0;H[a+20>>2]=0;return a|0}function pd(a,b,c){a=a|0;b=b|0;c=c|0;H[a+4>>2]=b;b=H[H[H[b+4>>2]+8>>2]+(c<<2)>>2];H[a+12>>2]=c;H[a+8>>2]=b;return 1}function wc(a){a=a|0;var b=0;if(!(!H[a+60>>2]|!H[a+44>>2]|(!H[a+48>>2]|!H[a+52>>2]))){b=H[a+56>>2]!=0}return b|0}function Id(a,b){if(I[a+11|0]>>>7|0){H[a+4>>2]=b;return}F[a+11|0]=I[a+11|0]&128|b;F[a+11|0]=I[a+11|0]&127}function wj(a){a=a|0;var b=0;H[a>>2]=4276;H[a>>2]=3272;b=H[a+32>>2];if(b){H[a+36>>2]=b;oa(b)}return a|0}function fj(a){a=a|0;var b=0;H[a>>2]=6256;H[a>>2]=3272;b=H[a+32>>2];if(b){H[a+36>>2]=b;oa(b)}return a|0}function bi(a){a=a|0;var b=0;H[a>>2]=12124;b=H[a+36>>2];if(b){oa(b)}b=H[a+24>>2];if(b){oa(b)}return a|0}function Uh(a){a=a|0;var b=0;H[a>>2]=12620;b=H[a+36>>2];if(b){oa(b)}b=H[a+24>>2];if(b){oa(b)}return a|0}function lg(a){a=a|0;if(a){if(F[a+39|0]<0){oa(H[a+28>>2])}Oc(a+12|0,H[a+16>>2]);Kb(a,H[a+4>>2]);oa(a)}}function Pb(a){a=a|0;var b=0;if(!(!H[a+52>>2]|(!H[a+44>>2]|!H[a+48>>2]))){b=H[a+56>>2]!=0}return b|0}function vj(a){a=a|0;var b=0;H[a>>2]=4276;H[a>>2]=3272;b=H[a+32>>2];if(b){H[a+36>>2]=b;oa(b)}oa(a)}function vc(a,b){a=a|0;b=b|0;var c=0;if(!(H[b+56>>2]|!b|I[b+24|0]!=3)){H[a+60>>2]=b;c=1}return c|0}function ej(a){a=a|0;var b=0;H[a>>2]=6256;H[a>>2]=3272;b=H[a+32>>2];if(b){H[a+36>>2]=b;oa(b)}oa(a)}function ai(a){a=a|0;var b=0;H[a>>2]=12124;b=H[a+36>>2];if(b){oa(b)}b=H[a+24>>2];if(b){oa(b)}oa(a)}function Th(a){a=a|0;var b=0;H[a>>2]=12620;b=H[a+36>>2];if(b){oa(b)}b=H[a+24>>2];if(b){oa(b)}oa(a)}function xh(a,b,c){a=a|0;b=b|0;c=c|0;H[a+16>>2]=0;H[a+20>>2]=0;H[a>>2]=b;H[a+8>>2]=c;H[a+12>>2]=0}function We(a,b){a=a|0;b=b|0;var c=0;if(!(H[b+56>>2]|I[b+24|0]!=3)){H[a- -64>>2]=b;c=1}return c|0}function yc(a){var b=0;b=H[a+16>>2];if(b){H[a+20>>2]=b;oa(b)}b=H[a>>2];if(b){H[a+4>>2]=b;oa(b)}}function sc(a,b){a=a|0;b=b|0;var c=0;if(!(H[b+56>>2]|I[b+24|0]!=3)){H[a+48>>2]=b;c=1}return c|0}function Gf(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;if(Ya(a,H[b+8>>2],f)){Cd(b,c,d,e)}}function wa(){var a=0;a=Bc(4);H[a>>2]=15260;H[a>>2]=15220;H[a>>2]=15240;Y(a|0,15352,14);v()}function sf(a){a=a|0;var b=0;H[a>>2]=2232;b=H[a+16>>2];H[a+16>>2]=0;if(b){Ga(b)}return a|0}function Kj(a){a=a|0;var b=0;H[a>>2]=3272;b=H[a+32>>2];if(b){H[a+36>>2]=b;oa(b)}return a|0}function mi(a){a=a|0;var b=0;H[a>>2]=1832;b=H[a+8>>2];if(b){H[a+12>>2]=b;oa(b)}return a|0}function Ci(a){a=a|0;var b=0;b=rb(a);return Je(a+24|0,b?b:H[a+8>>2],H[H[a+4>>2]+32>>2])|0}function rf(a){a=a|0;var b=0;H[a>>2]=2232;b=H[a+16>>2];H[a+16>>2]=0;if(b){Ga(b)}oa(a)}function ji(a){a=a|0;var b=0;H[a>>2]=1832;b=H[a+8>>2];if(b){H[a+12>>2]=b;oa(b)}oa(a)} function Ub(a){a=a|0;var b=0;H[a>>2]=3272;b=H[a+32>>2];if(b){H[a+36>>2]=b;oa(b)}oa(a)}function Za(a){var b=0;H[a+16>>2]=0;b=H[a>>2];H[a+4>>2]=b;H[a+12>>2]=b;if(b){oa(b)}}function Oc(a,b){if(b){Oc(a,H[b>>2]);Oc(a,H[b+4>>2]);Kb(b+20|0,H[b+24>>2]);oa(b)}}function wi(a){a=a|0;if(!H[a+44>>2]){return 0}return ea[H[H[a>>2]+48>>2]](a)|0}function vh(a){a=a|0;var b=0;if(a){b=H[a+8>>2];if(b){H[a+12>>2]=b;oa(b)}oa(a)}}function Uj(a){var b=0;while(1){if(a){a=a-1&a;b=b+1|0;continue}break}return b}function Lf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;if(Ya(a,H[b+8>>2],0)){Dd(b,c,d)}}function ui(a,b){a=a|0;b=b|0;a=H[a+48>>2];return ea[H[H[a>>2]+20>>2]](a,b)|0}function ni(a,b){a=a|0;b=b|0;a=H[a+48>>2];return ea[H[H[a>>2]+12>>2]](a,b)|0}function li(a,b){a=a|0;b=b|0;a=H[a+48>>2];return ea[H[H[a>>2]+16>>2]](a,b)|0}function lb(){var a=0;a=pa(12);H[a>>2]=0;H[a+4>>2]=0;H[a+8>>2]=0;return a|0}function kb(a){a=a|0;var b=0;if(a){b=H[a>>2];if(b){H[a+4>>2]=b;oa(b)}oa(a)}}function Vj(a){var b=0;b=a&31;a=0-a&31;return(-1>>>b&-2)<>>a} function dh(a,b,c){a=a|0;b=b|0;c=c|0;H[a+32>>2]=c;H[a+28>>2]=b;return 1}function ch(a){a=a|0;if(a){Ra(a+12|0,H[a+16>>2]);Qa(a,H[a+4>>2]);oa(a)}}function Rd(a,b,c){a:{if(H[c+76>>2]<0){a=Fc(a,b,c);break a}a=Fc(a,b,c)}}function Mb(a,b){a=a|0;b=b|0;if(b>>>0<=1){H[a+28>>2]=b}return b>>>0<2|0}function Fh(a,b){a=a|0;b=b|0;F[b+84|0]=1;H[b+72>>2]=H[b+68>>2];return 1}function si(a){a=a|0;a=H[a+48>>2];return ea[H[H[a>>2]+24>>2]](a)|0}function ri(a){a=a|0;a=H[a+48>>2];return ea[H[H[a>>2]+28>>2]](a)|0}function oi(a){a=a|0;a=H[a+48>>2];return ea[H[H[a>>2]+36>>2]](a)|0}function ih(){var a=0;a=pa(8);H[a+4>>2]=-1;H[a>>2]=1032;return a|0}function Gg(a,b,c){a=a|0;b=b|0;c=c|0;return H[H[b+8>>2]+(c<<2)>>2]}function _i(a,b){a=a|0;b=b|0;return Fd(a+24|0,rb(a),H[a+8>>2])|0}function Bi(a,b){a=a|0;b=b|0;return Re(a+24|0,rb(a),H[a+8>>2])|0}function xf(a,b){a=a|0;b=b|0;H[a+12>>2]=-1;H[a+8>>2]=b;return 1}function ne(a,b){a=a|0;b=b|0;return ea[H[H[a>>2]+12>>2]](a,b)|0}function Ff(a){a=a|0;if(!a){return 0}return(Ed(a,15068)|0)!=0|0}function Di(a,b){a=a|0;b=b|0;return ea[H[H[a>>2]+56>>2]](a,b)|0}function $g(a){a=a|0;if(a){if(F[a+15|0]<0){oa(H[a+4>>2])}oa(a)}}function kh(a,b){a=a|0;b=b|0;return O(L[H[a+8>>2]+(b<<2)>>2])}function af(a){a=Hd(Bc(8),a);H[a>>2]=15472;Y(a|0,15504,1);v()}function Ue(a){a=Hd(Bc(8),a);H[a>>2]=15420;Y(a|0,15452,1);v()}function _g(a,b){a=a|0;b=b|0;return O(L[H[a>>2]+(b<<2)>>2])}function fh(a){a=a|0;return(H[a+100>>2]-H[a+96>>2]|0)/12|0}function ah(a){a=a|0;return(F[a+15|0]<0?H[a+4>>2]:a+4|0)|0}function _f(a,b){a=a|0;b=b|0;return H[H[a+4>>2]+(b<<2)>>2]}function Pf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;da=0;return 0}function Ke(a){a=Vc(a);H[a+44>>2]=0;H[a>>2]=11180;return a}function ie(a,b){a=a|0;b=b|0;return H[H[a>>2]+(b<<2)>>2]}function Xg(a,b){a=a|0;b=b|0;return G[H[a>>2]+(b<<1)>>1]}function Wg(a,b){a=a|0;b=b|0;return J[H[a>>2]+(b<<1)>>1]}function Zb(a,b){var c=0;c=pa(b);H[a+4>>2]=b;H[a>>2]=c}function Jg(a,b,c){a=a|0;b=b|0;c=c|0;return Zd(b,c)|0}function _d(a){H[a>>2]=13724;ra(a+4|0,0,80);return a}function me(a){a=a|0;return H[a+12>>2]-H[a+8>>2]>>2}function Qj(a){if(a){return 31-Q(a-1^a)|0}return 32}function cc(a){a=a|0;if(a){ea[H[H[a>>2]+4>>2]](a)}}function Zg(a,b){a=a|0;b=b|0;return F[H[a>>2]+b|0]}function Yg(a,b){a=a|0;b=b|0;return I[H[a>>2]+b|0]}function Uf(a){a=a|0;return H[a+8>>2]-H[a+4>>2]>>2}function jd(a,b){a=a|0;b=b|0;H[a+4>>2]=b;return 1}function je(a){a=a|0;return H[a+4>>2]-H[a>>2]>>1}function Qc(a){a=a|0;return H[a+4>>2]-H[a>>2]>>2}function le(a){a=a|0;return H[a+4>>2]-H[a>>2]|0}function Ab(a,b,c){if(!(I[a|0]&32)){Fc(b,c,a)}}function vf(a,b,c){a=a|0;b=b|0;c=c|0;return 1}function hi(a,b){a=a|0;b=b|0;return I[b+24|0]}function Pg(a,b){a=a|0;b=b|0;return H[b+8>>2]}function Nj(a){a=a|0;return I[H[a+8>>2]+24|0]}function Li(a){a=a|0;H[a>>2]=10032;return a|0}function Eg(a,b){a=a|0;b=b|0;return H[b+4>>2]}function Yi(a){a=a|0;H[a>>2]=7144;return a|0}function Ui(a){a=a|0;H[a>>2]=8080;return a|0}function Sf(a){a=a|0;return aa(H[a+60>>2])|0}function Pi(a){a=a|0;H[a>>2]=9028;return a|0}function jh(a){a=a|0;return O(L[a+20>>2])}function Ji(a){a=a|0;H[a>>2]=10032;oa(a)}function Xi(a){a=a|0;H[a>>2]=7144;oa(a)}function Si(a){a=a|0;H[a>>2]=8080;oa(a)}function Oi(a){a=a|0;H[a>>2]=9028;oa(a)}function sh(a){a=a|0;return H[a+88>>2]}function rh(a){a=a|0;return H[a+56>>2]}function oh(a){a=a|0;return H[a+40>>2]}function nh(a){a=a|0;return H[a+48>>2]}function mh(a){a=a|0;return H[a+60>>2]}function eb(a){a=a|0;return H[a+28>>2]}function df(){H[4292]=17048;H[4274]=42}function Rc(a){a=a|0;return H[a+80>>2]}function qh(a){a=a|0;return F[a+24|0]}function ph(a){a=a|0;return I[a+32|0]}function md(a,b){a=a|0;b=b|0;return-1}function db(a){a=a|0;return H[a+4>>2]}function bh(a){a=a|0;return!H[a>>2]|0}function _e(a,b){a=a|0;b=b|0;return 6}function Zc(a){a=a|0;return H[a+8>>2]}function Pd(a,b){a=a|0;b=b|0;return 1}function Ja(a,b){a=a|0;b=b|0;return 0}function Bj(a,b){a=a|0;b=b|0;return 2}function Bc(a){return Ec(a+80|0)+80|0}function pe(a){a=a|0;return H[a>>2]}function yh(){return Ha(pa(40))|0}function uh(){return Eb(pa(64))|0}function hh(){return _d(pa(84))|0}function Sc(a){a=a|0;if(a){oa(a)}}function zc(a){a=a|0;Ad(a);oa(a)}function Ef(a){a=a|0;return 1171}function Df(a){a=a|0;return 1245}function Cf(a){a=a|0;return 1211}function Ta(a){a=a|0;return a|0}function yf(a){a=a|0;oa(rd(a))}function fi(a){a=a|0;oa(Be(a))}function ei(a){a=a|0;oa(Ae(a))}function di(a){a=a|0;oa(ze(a))}function Tf(a){a=a|0;oa(_b(a))}function ld(a){a=a|0;return 3}function _a(a){a=a|0;return 0}function Ze(a){a=a|0;return 5}function Tb(a){a=a|0;return 2}function Ob(a){a=a|0;return 6}function Da(a){a=a|0;return 1}function $e(a){a=a|0;return 4}function sa(){Ue(1164);v()}function Na(){Ue(1232);v()}function La(a){a=a|0;oa(a)}function Ca(){af(1164);v()}function fb(a){a=a|0;v()}function eg(){return 10}function dg(){return 11}function cg(){return 12}function kg(){return 5}function ig(){return 6}function hg(){return 7}function gg(){return 8}function fg(){return 9}function fe(){return 3}function ee(){return 4}function bg(){return-2}function bc(){return-1}function ag(){return-3}function ac(){return 1}function Zf(){return-5}function Qb(){return 0}function Nc(){return 2}function $f(){return-4}function Nf(){X();v()}function Td(a){a=a|0} // EMSCRIPTEN_END_FUNCS e=I;p(q);var ea=c([null,Ad,Ta,La,Tb,Pj,zi,Gh,Fd,Bf,xc,Nh,_e,Bj,Ta,mi,ji,Da,gj,Ti,Ki,Re,xi,Je,_e,hi,wg,fb,dh,ke,jg,_f,Uf,eb,Ja,Nf,Pd,Da,rd,yf,Of,Af,zf,sf,rf,pd,xf,wf,vf,Pd,uf,tf,kf,jf,qf,pf,hf,of,nf,mf,lf,cf,bf,pd,gf,ff,nd,ef,Nj,Oj,Kj,Ub,Da,db,Pb,_a,md,Ja,_a,Da,Mj,Lj,fb,fb,Ub,Tb,Pb,Jj,Ij,Hj,$e,Pb,Gj,Fj,Ej,Dj,ld,wc,Da,Ja,vc,Cj,Aj,zj,yj,Ze,wc,Da,Ja,vc,Ye,xj,wj,vj,Ob,Xe,Da,Ja,We,Ve,uj,Ta,La,Mb,eb,Nb,fb,Ub,Da,Pb,tj,fb,Ub,Tb,Pb,sj,rj,qj,$e,Pb,pj,oj,nj,mj,ld,wc,Da,Ja,vc,lj,kj,jj,ij,Ze,wc,Da,Ja,vc,Ye,hj,fj,ej,Ob,Xe,Da,Ja,We,Ve,dj,Ta,La,Mb,eb,Lb,fb,Ub,_a,Da,cj,cf,bf,bj,$i,aj,Zi,Tb,_i,Yi,Xi,Ob,db,tc,Da,Ja,sc,Da,Tb,Te,Wi,Ta,La,Mb,eb,Nb,Ui,Si,Ob,tc,Da,Ja,sc,Te,Ri,Ta,La,Mb,eb,Lb,Ta,La,_a,Da,_a,md,Ja,Vi,Qi,Pi,Oi,Ob,db,tc,Da,Ja,sc,Da,ld,Se,Ni,Ta,La,Mb,eb,Nb,Li,Ji,Ob,tc,Da,Ja,sc,Se,Ii,Ta,La,Mb,eb,Lb,La,_a,Da,_a,md,Ja,Mi,Hi,Ai,yi,Gi,Ei,Fi,Di,Ci,Bi,vi,fb,Da,Da,wi,Dh,Ch,Da,_a,Ja,Ja,qi,pi,ti,ui,ri,oi,ni,li,si,Be,fi,jd,id,hd,gd,ki,Da,db,Zc,Ae,ei,jd,id,hd,gd,ii,Da,db,Zc,ze,di,jd,id,hd,gd,gi,Da,db,Zc,He,ci,Ie,bi,ai,Zh,Yh,Xh,Wh,_h,Vh,$h,Uh,Th,Rh,Qh,Ph,Oh,Sh,Mh,Lh,Kh,Jh,Ih,Wc,ve,Hh,Ta,La,Fh,Eh,fb,_a,Da,Wc,Ah,Bh,Wc,ve,zh,Yf,Xf,Wf,Vf,_b,Tf,Xd,Wd,Sf,Rf,Qf,_a,Pf,Ta,La,Td,Td,Mf,Gf,If,Lf,La,Hf,Jf,Kf,La,Df,La,Cf,La,Ef,zc,db,zc,zc]);function fa(){return E.byteLength/65536|0}function ka(la){la=la|0;var ga=fa()|0;var ha=ga+la|0;if(ga=endIdx))++endPtr;if(endPtr-idx>16&&heapOrArray.buffer&&UTF8Decoder){return UTF8Decoder.decode(heapOrArray.subarray(idx,endPtr))}var str="";while(idx>10,56320|ch&1023)}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&c<=57343){len+=4;++i}else{len+=3}}return len}var HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateMemoryViews(){var b=wasmMemory.buffer;Module["HEAP8"]=HEAP8=new Int8Array(b);Module["HEAP16"]=HEAP16=new Int16Array(b);Module["HEAP32"]=HEAP32=new Int32Array(b);Module["HEAPU8"]=HEAPU8=new Uint8Array(b);Module["HEAPU16"]=HEAPU16=new Uint16Array(b);Module["HEAPU32"]=HEAPU32=new Uint32Array(b);Module["HEAPF32"]=HEAPF32=new Float32Array(b);Module["HEAPF64"]=HEAPF64=new Float64Array(b)}var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||16777216;assert(INITIAL_MEMORY>=65536,"INITIAL_MEMORY should be larger than STACK_SIZE, was "+INITIAL_MEMORY+"! (STACK_SIZE="+65536+")");if(Module["wasmMemory"]){wasmMemory=Module["wasmMemory"]}else{wasmMemory=new WebAssembly.Memory({"initial":INITIAL_MEMORY/65536,"maximum":2147483648/65536})}updateMemoryViews();INITIAL_MEMORY=wasmMemory.buffer.byteLength;var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;function keepRuntimeAlive(){return noExitRuntime}function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function addRunDependency(id){runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}function abort(what){if(Module["onAbort"]){Module["onAbort"](what)}what="Aborted("+what+")";err(what);ABORT=true;EXITSTATUS=1;what+=". Build with -sASSERTIONS for more info.";var e=new WebAssembly.RuntimeError(what);readyPromiseReject(e);throw e}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith("file://")}var wasmBinaryFile;wasmBinaryFile="draco_decoder.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}var binary=tryParseAsDataURI(file);if(binary){return binary}if(readBinary){return readBinary(file)}throw"both async and sync fetching of the wasm failed"}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch=="function"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={"a":wasmImports};function receiveInstance(instance,module){var exports=instance.exports;Module["asm"]=exports;wasmTable=Module["asm"]["j"];addOnInit(Module["asm"]["i"]);removeRunDependency("wasm-instantiate")}addRunDependency("wasm-instantiate");function receiveInstantiationResult(result){receiveInstance(result["instance"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(function(instance){return instance}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming=="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&!ENVIRONMENT_IS_NODE&&typeof fetch=="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);readyPromiseReject(e)}}instantiateAsync().catch(readyPromiseReject);return{}}function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){callbacks.shift()(Module)}}function intArrayToString(array){var ret=[];for(var i=0;i255){chr&=255}ret.push(String.fromCharCode(chr))}return ret.join("")}function ExceptionInfo(excPtr){this.excPtr=excPtr;this.ptr=excPtr-24;this.set_type=function(type){HEAPU32[this.ptr+4>>2]=type};this.get_type=function(){return HEAPU32[this.ptr+4>>2]};this.set_destructor=function(destructor){HEAPU32[this.ptr+8>>2]=destructor};this.get_destructor=function(){return HEAPU32[this.ptr+8>>2]};this.set_refcount=function(refcount){HEAP32[this.ptr>>2]=refcount};this.set_caught=function(caught){caught=caught?1:0;HEAP8[this.ptr+12>>0]=caught};this.get_caught=function(){return HEAP8[this.ptr+12>>0]!=0};this.set_rethrown=function(rethrown){rethrown=rethrown?1:0;HEAP8[this.ptr+13>>0]=rethrown};this.get_rethrown=function(){return HEAP8[this.ptr+13>>0]!=0};this.init=function(type,destructor){this.set_adjusted_ptr(0);this.set_type(type);this.set_destructor(destructor);this.set_refcount(0);this.set_caught(false);this.set_rethrown(false)};this.add_ref=function(){var value=HEAP32[this.ptr>>2];HEAP32[this.ptr>>2]=value+1};this.release_ref=function(){var prev=HEAP32[this.ptr>>2];HEAP32[this.ptr>>2]=prev-1;return prev===1};this.set_adjusted_ptr=function(adjustedPtr){HEAPU32[this.ptr+16>>2]=adjustedPtr};this.get_adjusted_ptr=function(){return HEAPU32[this.ptr+16>>2]};this.get_exception_ptr=function(){var isPointer=___cxa_is_pointer_type(this.get_type());if(isPointer){return HEAPU32[this.excPtr>>2]}var adjusted=this.get_adjusted_ptr();if(adjusted!==0)return adjusted;return this.excPtr}}var exceptionLast=0;var uncaughtExceptionCount=0;function ___cxa_throw(ptr,type,destructor){var info=new ExceptionInfo(ptr);info.init(type,destructor);exceptionLast=ptr;uncaughtExceptionCount++;throw ptr}function _abort(){abort("")}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function getHeapMax(){return 2147483648}function emscripten_realloc_buffer(size){var b=wasmMemory.buffer;try{wasmMemory.grow(size-b.byteLength+65535>>>16);updateMemoryViews();return 1}catch(e){}}function _emscripten_resize_heap(requestedSize){var oldSize=HEAPU8.length;requestedSize=requestedSize>>>0;var maxHeapSize=getHeapMax();if(requestedSize>maxHeapSize){return false}let alignUp=(x,multiple)=>x+(multiple-x%multiple)%multiple;for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignUp(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=emscripten_realloc_buffer(newSize);if(replacement){return true}}return false}var SYSCALLS={varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret}};function _fd_close(fd){return 52}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){return 70}var printCharBuffers=[null,[],[]];function printChar(stream,curr){var buffer=printCharBuffers[stream];if(curr===0||curr===10){(stream===1?out:err)(UTF8ArrayToString(buffer,0));buffer.length=0}else{buffer.push(curr)}}function _fd_write(fd,iov,iovcnt,pnum){var num=0;for(var i=0;i>2];var len=HEAPU32[iov+4>>2];iov+=8;for(var j=0;j>2]=num;return 0}function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var decodeBase64=typeof atob=="function"?atob:function(input){var keyStr="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";var output="";var chr1,chr2,chr3;var enc1,enc2,enc3,enc4;var i=0;input=input.replace(/[^A-Za-z0-9\+\/\=]/g,"");do{enc1=keyStr.indexOf(input.charAt(i++));enc2=keyStr.indexOf(input.charAt(i++));enc3=keyStr.indexOf(input.charAt(i++));enc4=keyStr.indexOf(input.charAt(i++));chr1=enc1<<2|enc2>>4;chr2=(enc2&15)<<4|enc3>>2;chr3=(enc3&3)<<6|enc4;output=output+String.fromCharCode(chr1);if(enc3!==64){output=output+String.fromCharCode(chr2)}if(enc4!==64){output=output+String.fromCharCode(chr3)}}while(i0){return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();readyPromiseResolve(Module);if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}run();function WrapperObject(){}WrapperObject.prototype=Object.create(WrapperObject.prototype);WrapperObject.prototype.constructor=WrapperObject;WrapperObject.prototype.__class__=WrapperObject;WrapperObject.__cache__={};Module["WrapperObject"]=WrapperObject;function getCache(__class__){return(__class__||WrapperObject).__cache__}Module["getCache"]=getCache;function wrapPointer(ptr,__class__){var cache=getCache(__class__);var ret=cache[ptr];if(ret)return ret;ret=Object.create((__class__||WrapperObject).prototype);ret.ptr=ptr;return cache[ptr]=ret}Module["wrapPointer"]=wrapPointer;function castObject(obj,__class__){return wrapPointer(obj.ptr,__class__)}Module["castObject"]=castObject;Module["NULL"]=wrapPointer(0);function destroy(obj){if(!obj["__destroy__"])throw"Error: Cannot destroy object. (Did you create it yourself?)";obj["__destroy__"]();delete getCache(obj.__class__)[obj.ptr]}Module["destroy"]=destroy;function compare(obj1,obj2){return obj1.ptr===obj2.ptr}Module["compare"]=compare;function getPointer(obj){return obj.ptr}Module["getPointer"]=getPointer;function getClass(obj){return obj.__class__}Module["getClass"]=getClass;var ensureCache={buffer:0,size:0,pos:0,temps:[],needed:0,prepare:function(){if(ensureCache.needed){for(var i=0;i=ensureCache.size){assert(len>0);ensureCache.needed+=len;ret=Module["_malloc"](len);ensureCache.temps.push(ret)}else{ret=ensureCache.buffer+ensureCache.pos;ensureCache.pos+=len}return ret},copy:function(array,view,offset){offset>>>=0;var bytes=view.BYTES_PER_ELEMENT;switch(bytes){case 2:offset>>>=1;break;case 4:offset>>>=2;break;case 8:offset>>>=3;break}for(var i=0;i { var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined; if (typeof __filename !== 'undefined') _scriptDir = _scriptDir || __filename; return ( function(DracoDecoderModule = {}) { var Module=typeof DracoDecoderModule!="undefined"?DracoDecoderModule:{};var readyPromiseResolve,readyPromiseReject;Module["ready"]=new Promise(function(resolve,reject){readyPromiseResolve=resolve;readyPromiseReject=reject});var isRuntimeInitialized=false;var isModuleParsed=false;Module["onRuntimeInitialized"]=function(){isRuntimeInitialized=true;if(isModuleParsed){if(typeof Module["onModuleLoaded"]==="function"){Module["onModuleLoaded"](Module)}}};Module["onModuleParsed"]=function(){isModuleParsed=true;if(isRuntimeInitialized){if(typeof Module["onModuleLoaded"]==="function"){Module["onModuleLoaded"](Module)}}};function isVersionSupported(versionString){if(typeof versionString!=="string")return false;const version=versionString.split(".");if(version.length<2||version.length>3)return false;if(version[0]==1&&version[1]>=0&&version[1]<=5)return true;if(version[0]!=0||version[1]>10)return false;return true}Module["isVersionSupported"]=isVersionSupported;var moduleOverrides=Object.assign({},Module);var arguments_=[];var thisProgram="./this.program";var quit_=(status,toThrow)=>{throw toThrow};var ENVIRONMENT_IS_WEB=typeof window=="object";var ENVIRONMENT_IS_WORKER=typeof importScripts=="function";var ENVIRONMENT_IS_NODE=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string";var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;function logExceptionOnExit(e){if(e instanceof ExitStatus)return;let toLog=e;err("exiting due to exception: "+toLog)}if(ENVIRONMENT_IS_NODE){var fs=require("fs");var nodePath=require("path");if(ENVIRONMENT_IS_WORKER){scriptDirectory=nodePath.dirname(scriptDirectory)+"/"}else{scriptDirectory=__dirname+"/"}read_=(filename,binary)=>{var ret=tryParseAsDataURI(filename);if(ret){return binary?ret:ret.toString()}filename=isFileURI(filename)?new URL(filename):nodePath.normalize(filename);return fs.readFileSync(filename,binary?undefined:"utf8")};readBinary=filename=>{var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}return ret};readAsync=(filename,onload,onerror)=>{var ret=tryParseAsDataURI(filename);if(ret){onload(ret)}filename=isFileURI(filename)?new URL(filename):nodePath.normalize(filename);fs.readFile(filename,function(err,data){if(err)onerror(err);else onload(data.buffer)})};if(process["argv"].length>1){thisProgram=process["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);quit_=(status,toThrow)=>{if(keepRuntimeAlive()){process["exitCode"]=status;throw toThrow}logExceptionOnExit(toThrow);process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(_scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.replace(/[?#].*/,"").lastIndexOf("/")+1)}else{scriptDirectory=""}{read_=url=>{try{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText}catch(err){var data=tryParseAsDataURI(url);if(data){return intArrayToString(data)}throw err}};if(ENVIRONMENT_IS_WORKER){readBinary=url=>{try{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}catch(err){var data=tryParseAsDataURI(url);if(data){return data}throw err}}}readAsync=(url,onload,onerror)=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=()=>{if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}var data=tryParseAsDataURI(url);if(data){onload(data.buffer);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=title=>document.title=title}else{}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);Object.assign(Module,moduleOverrides);moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||true;var WebAssembly={Memory:function(opts){this.buffer=new ArrayBuffer(opts["initial"]*65536)},Module:function(binary){},Instance:function(module,info){this.exports=( // EMSCRIPTEN_START_ASM function instantiate(ia){function c(d){d.set=function(a,b){this[a]=b};d.get=function(a){return this[a]};return d}var e;var f=new Uint8Array(123);for(var a=25;a>=0;--a){f[48+a]=52+a;f[65+a]=a;f[97+a]=26+a}f[43]=62;f[47]=63;function l(m,n,o){var g,h,a=0,i=n,j=o.length,k=n+(j*3>>2)-(o[j-2]=="=")-(o[j-1]=="=");for(;a>4;if(i>2;if(i>2];o=F[c+12>>2];g=F[c+16>>2];a:{if((e|0)>=(o|0)&g>>>0>=I[c+8>>2]|(e|0)>(o|0)){break a}o=G[g+F[c>>2]|0];g=g+1|0;e=g?e:e+1|0;F[c+16>>2]=g;F[c+20>>2]=e;b:{switch(o|0){case 0:e=a;f=b;g=d;a=0;d=0;j=Z+-64|0;Z=j;F[j+56>>2]=0;F[j+48>>2]=0;F[j+52>>2]=0;F[j+40>>2]=0;F[j+44>>2]=0;F[j+32>>2]=0;F[j+36>>2]=0;F[j+24>>2]=0;F[j+28>>2]=0;F[j+16>>2]=0;F[j+20>>2]=0;F[j+8>>2]=0;F[j+12>>2]=0;c:{if(!Nd(j+8|0,c)){break c}if(!Md(j+8|0,c)|(F[j+20>>2]?0:e)){break c}hc(c,0,0);if(e){s=f<<2;t=F[j+36>>2];u=F[j+48>>2];x=F[j+24>>2];l=F[j+56>>2];i=F[j+52>>2];while(1){d:{if(l>>>0>16383){break d}while(1){if((i|0)<=0){break d}i=i-1|0;F[j+52>>2]=i;l=G[i+u|0]|l<<8;F[j+56>>2]=l;if(l>>>0<16384){continue}break}}a=l&4095;r=F[(a<<2)+x>>2];b=(r<<3)+t|0;l=(L(F[b>>2],l>>>12|0)+a|0)-F[b+4>>2]|0;F[j+56>>2]=l;if((f|0)>0){a=0;if(!G[c+36|0]|r>>>0>32){break c}o=d+f|0;e:{if(!r){ma(g+(d<<2)|0,0,s);break e}y=r&-2;z=r&1;b=F[c+32>>2];h=F[c+28>>2];q=F[c+24>>2];while(1){k=0;a=b;m=0;n=0;if((r|0)!=1){while(1){p=q+(a>>>3|0)|0;f:{if(p>>>0>=h>>>0){p=0;break f}p=G[p|0];b=a+1|0;F[c+32>>2]=b;p=p>>>(a&7)&1;a=b}p=p<>>3|0)|0;if(v>>>0>>0){m=G[v|0];b=a+1|0;F[c+32>>2]=b;m=m>>>(a&7)&1;a=b}v=k|1;k=k+2|0;m=p|m<>>3|0)|0;if(p>>>0>>0){p=G[p|0];b=a+1|0;F[c+32>>2]=b;a=p>>>(a&7)&1}else{a=0}m=a<>2]=m;d=d+1|0;if((o|0)!=(d|0)){continue}break}}d=o}w=f+w|0;if(e>>>0>w>>>0){continue}break}}D[c+36|0]=0;f=F[c+20>>2];a=0;m=F[c+32>>2]+7|0;a=m>>>0<7?1:a;m=a<<29|m>>>3;b=m+F[c+16>>2]|0;a=(a>>>3|0)+f|0;F[c+16>>2]=b;F[c+20>>2]=b>>>0>>0?a+1|0:a;a=1}b=F[j+36>>2];if(b){F[j+40>>2]=b;ja(b)}b=F[j+24>>2];if(b){F[j+28>>2]=b;ja(b)}b=F[j+8>>2];if(b){F[j+12>>2]=b;ja(b)}Z=j- -64|0;return a;case 1:break b;default:break a}}b=0;e=F[c+20>>2];o=F[c+12>>2];g=F[c+16>>2];g:{if((e|0)>=(o|0)&g>>>0>=I[c+8>>2]|(e|0)>(o|0)){break g}o=G[g+F[c>>2]|0];g=g+1|0;e=g?e:e+1|0;F[c+16>>2]=g;F[c+20>>2]=e;h:{switch(o-1|0){case 8:o=a;r=d;e=Z+-64|0;Z=e;F[e+56>>2]=0;F[e+48>>2]=0;F[e+52>>2]=0;F[e+40>>2]=0;F[e+44>>2]=0;F[e+32>>2]=0;F[e+36>>2]=0;F[e+24>>2]=0;F[e+28>>2]=0;F[e+16>>2]=0;F[e+20>>2]=0;F[e+8>>2]=0;F[e+12>>2]=0;h=e+8|0;i:{j:{if(!H[c+38>>1]){break j}if(!Ta(1,h+12|0,c)){break j}b=F[c+8>>2];d=F[c+16>>2];f=b-d|0;i=F[h+12>>2];b=F[c+12>>2]-(F[c+20>>2]+(b>>>0>>0)|0)|0;if(f>>>0>>6>>>0&(b|0)<=0|(b|0)<0){break j}b=F[h>>2];a=F[h+4>>2]-b>>2;k:{if(a>>>0>>0){qa(h,i-a|0);i=F[h+12>>2];break k}if(a>>>0<=i>>>0){break k}F[h+4>>2]=b+(i<<2)}g=1;if(!i){break i}f=F[c+16>>2];d=F[c+20>>2];s=F[h>>2];j=F[c+8>>2];n=F[c+12>>2];b=0;while(1){g=0;if((d|0)>=(n|0)&f>>>0>=j>>>0|(d|0)>(n|0)){break i}g=F[c>>2];p=G[g+f|0];a=d;f=f+1|0;a=f?a:a+1|0;F[c+16>>2]=f;d=a;F[c+20>>2]=a;a=p>>>2|0;l=0;l:{m:{n:{o:{t=p&3;switch(t|0){case 0:break m;case 3:break o;default:break n}}a=a+b|0;g=0;if(a>>>0>=i>>>0){break i}ma(s+(b<<2)|0,0,(p&252)+4|0);b=a;break l}while(1){if((f|0)==(j|0)&(d|0)==(n|0)){break j}i=G[f+g|0];f=f+1|0;d=f?d:d+1|0;F[c+16>>2]=f;F[c+20>>2]=d;a=i<<(l<<3|6)|a;l=l+1|0;if((t|0)!=(l|0)){continue}break}}F[s+(b<<2)>>2]=a}b=b+1|0;i=F[h+12>>2];if(b>>>0>>0){continue}break}a=h+16|0;n=F[h>>2];d=F[h+16>>2];b=F[h+20>>2]-d|0;p:{if(b>>>0<=32767){qa(a,8192-(b>>>2|0)|0);break p}if((b|0)==32768){break p}F[h+20>>2]=d+32768}d=h+28|0;b=F[d>>2];f=F[h+32>>2]-b>>3;q:{if(f>>>0>>0){_a(d,i-f|0);b=F[d>>2];break q}if(f>>>0>i>>>0){F[h+32>>2]=(i<<3)+b}if(!i){break j}}j=F[a>>2];f=0;d=0;while(1){g=n+(f<<2)|0;l=F[g>>2];h=(f<<3)+b|0;a=d;F[h+4>>2]=a;F[h>>2]=l;g=F[g>>2];d=g+a|0;if(d>>>0>8192){break j}r:{if(a>>>0>=d>>>0){break r}l=0;h=g&7;if(h){while(1){F[j+(a<<2)>>2]=f;a=a+1|0;l=l+1|0;if((h|0)!=(l|0)){continue}break}}if(g-1>>>0<=6){break r}while(1){g=j+(a<<2)|0;F[g>>2]=f;F[g+28>>2]=f;F[g+24>>2]=f;F[g+20>>2]=f;F[g+16>>2]=f;F[g+12>>2]=f;F[g+8>>2]=f;F[g+4>>2]=f;a=a+8|0;if((d|0)!=(a|0)){continue}break}}f=f+1|0;if((i|0)!=(f|0)){continue}break}k=(d|0)==8192}g=k}s:{if(!g|(F[e+20>>2]?0:o)){break s}d=0;k=Z-16|0;Z=k;t:{if(!Sa(1,k+8|0,c)){break t}a=F[c+8>>2];f=F[c+16>>2];g=a-f|0;j=F[k+12>>2];i=F[c+20>>2];a=F[c+12>>2]-(i+(a>>>0>>0)|0)|0;b=F[k+8>>2];if((j|0)==(a|0)&g>>>0>>0|a>>>0>>0){break t}a=i+j|0;g=b+f|0;a=g>>>0>>0?a+1|0:a;F[c+16>>2]=g;F[c+20>>2]=a;if((b|0)<=0){break t}a=f+F[c>>2]|0;F[e+48>>2]=a;c=b-1|0;f=c+a|0;g=G[f|0];u:{if(g>>>0<=63){F[e+52>>2]=c;a=G[f|0]&63;break u}v:{switch((g>>>6|0)-1|0){case 0:if(b>>>0<2){break t}b=b-2|0;F[e+52>>2]=b;a=a+b|0;a=G[a+1|0]<<8&16128|G[a|0];break u;case 1:if(b>>>0<3){break t}b=b-3|0;F[e+52>>2]=b;a=a+b|0;a=G[a+1|0]<<8|G[a+2|0]<<16&4128768|G[a|0];break u;default:break v}}b=b-4|0;F[e+52>>2]=b;a=a+b|0;a=(G[a|0]|G[a+1|0]<<8|(G[a+2|0]<<16|G[a+3|0]<<24))&1073741823}F[e+56>>2]=a+32768;d=a>>>0<8355840}Z=k+16|0;if(!d){break s}if(!o){m=1;break s}b=F[e+52>>2];a=F[e+56>>2];c=F[e+36>>2];d=F[e+48>>2];f=F[e+24>>2];while(1){w:{if(a>>>0>32767){break w}while(1){if((b|0)<=0){break w}b=b-1|0;F[e+52>>2]=b;a=G[b+d|0]|a<<8;F[e+56>>2]=a;if(a>>>0<32768){continue}break}}m=a&8191;k=F[f+(m<<2)>>2];g=c+(k<<3)|0;a=(L(F[g>>2],a>>>13|0)+m|0)-F[g+4>>2]|0;F[e+56>>2]=a;F[r+(q<<2)>>2]=k;m=1;q=q+1|0;if((o|0)!=(q|0)){continue}break}}a=F[e+36>>2];if(a){F[e+40>>2]=a;ja(a)}a=F[e+24>>2];if(a){F[e+28>>2]=a;ja(a)}a=F[e+8>>2];if(a){F[e+12>>2]=a;ja(a)}Z=e- -64|0;b=m;break g;case 9:o=a;r=d;g=Z+-64|0;Z=g;F[g+56>>2]=0;F[g+48>>2]=0;F[g+52>>2]=0;F[g+40>>2]=0;F[g+44>>2]=0;F[g+32>>2]=0;F[g+36>>2]=0;F[g+24>>2]=0;F[g+28>>2]=0;F[g+16>>2]=0;F[g+20>>2]=0;F[g+8>>2]=0;F[g+12>>2]=0;h=g+8|0;x:{y:{if(!H[c+38>>1]){break y}if(!Ta(1,h+12|0,c)){break y}b=F[c+8>>2];d=F[c+16>>2];f=b-d|0;i=F[h+12>>2];b=F[c+12>>2]-(F[c+20>>2]+(b>>>0>>0)|0)|0;if(f>>>0>>6>>>0&(b|0)<=0|(b|0)<0){break y}b=F[h>>2];a=F[h+4>>2]-b>>2;z:{if(a>>>0>>0){qa(h,i-a|0);i=F[h+12>>2];break z}if(a>>>0<=i>>>0){break z}F[h+4>>2]=b+(i<<2)}e=1;if(!i){break x}f=F[c+16>>2];d=F[c+20>>2];s=F[h>>2];j=F[c+8>>2];n=F[c+12>>2];b=0;while(1){e=0;if((d|0)>=(n|0)&f>>>0>=j>>>0|(d|0)>(n|0)){break x}t=F[c>>2];p=G[t+f|0];e=d;f=f+1|0;e=f?e:e+1|0;F[c+16>>2]=f;d=e;F[c+20>>2]=e;a=p>>>2|0;l=0;A:{B:{C:{D:{e=p&3;switch(e|0){case 0:break B;case 3:break D;default:break C}}a=a+b|0;e=0;if(a>>>0>=i>>>0){break x}ma(s+(b<<2)|0,0,(p&252)+4|0);b=a;break A}while(1){if((f|0)==(j|0)&(d|0)==(n|0)){break y}i=G[f+t|0];f=f+1|0;d=f?d:d+1|0;F[c+16>>2]=f;F[c+20>>2]=d;a=i<<(l<<3|6)|a;l=l+1|0;if((e|0)!=(l|0)){continue}break}}F[s+(b<<2)>>2]=a}b=b+1|0;i=F[h+12>>2];if(b>>>0>>0){continue}break}a=h+16|0;n=F[h>>2];d=F[h+16>>2];b=F[h+20>>2]-d|0;E:{if(b>>>0<=131071){qa(a,32768-(b>>>2|0)|0);break E}if((b|0)==131072){break E}F[h+20>>2]=d+131072}d=h+28|0;b=F[d>>2];f=F[h+32>>2]-b>>3;F:{if(f>>>0>>0){_a(d,i-f|0);b=F[d>>2];break F}if(f>>>0>i>>>0){F[h+32>>2]=(i<<3)+b}if(!i){break y}}j=F[a>>2];f=0;d=0;while(1){e=n+(f<<2)|0;l=F[e>>2];h=(f<<3)+b|0;a=d;F[h+4>>2]=a;F[h>>2]=l;e=F[e>>2];d=e+a|0;if(d>>>0>32768){break y}G:{if(a>>>0>=d>>>0){break G}l=0;h=e&7;if(h){while(1){F[j+(a<<2)>>2]=f;a=a+1|0;l=l+1|0;if((h|0)!=(l|0)){continue}break}}if(e-1>>>0<=6){break G}while(1){e=j+(a<<2)|0;F[e>>2]=f;F[e+28>>2]=f;F[e+24>>2]=f;F[e+20>>2]=f;F[e+16>>2]=f;F[e+12>>2]=f;F[e+8>>2]=f;F[e+4>>2]=f;a=a+8|0;if((d|0)!=(a|0)){continue}break}}f=f+1|0;if((i|0)!=(f|0)){continue}break}k=(d|0)==32768}e=k}H:{if(!e|(F[g+20>>2]?0:o)){break H}d=0;f=Z-16|0;Z=f;I:{if(!Sa(1,f+8|0,c)){break I}e=F[c+8>>2];b=F[c+16>>2];k=e-b|0;j=F[f+12>>2];i=F[c+20>>2];e=F[c+12>>2]-(i+(b>>>0>e>>>0)|0)|0;a=F[f+8>>2];if((j|0)==(e|0)&k>>>0>>0|e>>>0>>0){break I}e=i+j|0;k=a+b|0;e=k>>>0>>0?e+1|0:e;F[c+16>>2]=k;F[c+20>>2]=e;if((a|0)<=0){break I}b=b+F[c>>2]|0;F[g+48>>2]=b;c=a-1|0;e=c+b|0;k=G[e|0];J:{if(k>>>0<=63){F[g+52>>2]=c;a=G[e|0]&63;break J}K:{switch((k>>>6|0)-1|0){case 0:if(a>>>0<2){break I}a=a-2|0;F[g+52>>2]=a;a=a+b|0;a=G[a+1|0]<<8&16128|G[a|0];break J;case 1:if(a>>>0<3){break I}a=a-3|0;F[g+52>>2]=a;a=a+b|0;a=G[a+1|0]<<8|G[a+2|0]<<16&4128768|G[a|0];break J;default:break K}}a=a-4|0;F[g+52>>2]=a;a=a+b|0;a=(G[a|0]|G[a+1|0]<<8|(G[a+2|0]<<16|G[a+3|0]<<24))&1073741823}F[g+56>>2]=a+131072;d=a>>>0<33423360}Z=f+16|0;if(!d){break H}if(!o){m=1;break H}b=F[g+52>>2];a=F[g+56>>2];c=F[g+36>>2];d=F[g+48>>2];f=F[g+24>>2];while(1){L:{if(a>>>0>131071){break L}while(1){if((b|0)<=0){break L}b=b-1|0;F[g+52>>2]=b;a=G[b+d|0]|a<<8;F[g+56>>2]=a;if(a>>>0<131072){continue}break}}m=a&32767;e=F[f+(m<<2)>>2];k=c+(e<<3)|0;a=(L(F[k>>2],a>>>15|0)+m|0)-F[k+4>>2]|0;F[g+56>>2]=a;F[r+(q<<2)>>2]=e;m=1;q=q+1|0;if((o|0)!=(q|0)){continue}break}}a=F[g+36>>2];if(a){F[g+40>>2]=a;ja(a)}a=F[g+24>>2];if(a){F[g+28>>2]=a;ja(a)}a=F[g+8>>2];if(a){F[g+12>>2]=a;ja(a)}Z=g- -64|0;b=m;break g;case 10:o=a;r=d;g=Z+-64|0;Z=g;F[g+56>>2]=0;F[g+48>>2]=0;F[g+52>>2]=0;F[g+40>>2]=0;F[g+44>>2]=0;F[g+32>>2]=0;F[g+36>>2]=0;F[g+24>>2]=0;F[g+28>>2]=0;F[g+16>>2]=0;F[g+20>>2]=0;F[g+8>>2]=0;F[g+12>>2]=0;h=g+8|0;M:{N:{if(!H[c+38>>1]){break N}if(!Ta(1,h+12|0,c)){break N}b=F[c+8>>2];d=F[c+16>>2];f=b-d|0;i=F[h+12>>2];b=F[c+12>>2]-(F[c+20>>2]+(b>>>0>>0)|0)|0;if(f>>>0>>6>>>0&(b|0)<=0|(b|0)<0){break N}b=F[h>>2];a=F[h+4>>2]-b>>2;O:{if(a>>>0>>0){qa(h,i-a|0);i=F[h+12>>2];break O}if(a>>>0<=i>>>0){break O}F[h+4>>2]=b+(i<<2)}e=1;if(!i){break M}f=F[c+16>>2];d=F[c+20>>2];s=F[h>>2];j=F[c+8>>2];n=F[c+12>>2];b=0;while(1){e=0;if((d|0)>=(n|0)&f>>>0>=j>>>0|(d|0)>(n|0)){break M}t=F[c>>2];p=G[t+f|0];a=d;f=f+1|0;a=f?a:a+1|0;F[c+16>>2]=f;d=a;F[c+20>>2]=a;a=p>>>2|0;l=0;P:{Q:{R:{S:{u=p&3;switch(u|0){case 0:break Q;case 3:break S;default:break R}}a=a+b|0;e=0;if(a>>>0>=i>>>0){break M}ma(s+(b<<2)|0,0,(p&252)+4|0);b=a;break P}while(1){if((f|0)==(j|0)&(d|0)==(n|0)){break N}i=G[f+t|0];e=d;f=f+1|0;e=f?e:e+1|0;F[c+16>>2]=f;d=e;F[c+20>>2]=e;a=i<<(l<<3|6)|a;l=l+1|0;if((u|0)!=(l|0)){continue}break}}F[s+(b<<2)>>2]=a}b=b+1|0;i=F[h+12>>2];if(b>>>0>>0){continue}break}a=h+16|0;n=F[h>>2];d=F[h+16>>2];b=F[h+20>>2]-d|0;T:{if(b>>>0<=262143){qa(a,65536-(b>>>2|0)|0);break T}if((b|0)==262144){break T}F[h+20>>2]=d+262144}d=h+28|0;b=F[d>>2];f=F[h+32>>2]-b>>3;U:{if(f>>>0>>0){_a(d,i-f|0);b=F[d>>2];break U}if(f>>>0>i>>>0){F[h+32>>2]=(i<<3)+b}if(!i){break N}}j=F[a>>2];f=0;d=0;while(1){e=n+(f<<2)|0;l=F[e>>2];h=(f<<3)+b|0;a=d;F[h+4>>2]=a;F[h>>2]=l;e=F[e>>2];d=e+a|0;if(d>>>0>65536){break N}V:{if(a>>>0>=d>>>0){break V}l=0;h=e&7;if(h){while(1){F[j+(a<<2)>>2]=f;a=a+1|0;l=l+1|0;if((h|0)!=(l|0)){continue}break}}if(e-1>>>0<=6){break V}while(1){e=j+(a<<2)|0;F[e>>2]=f;F[e+28>>2]=f;F[e+24>>2]=f;F[e+20>>2]=f;F[e+16>>2]=f;F[e+12>>2]=f;F[e+8>>2]=f;F[e+4>>2]=f;a=a+8|0;if((d|0)!=(a|0)){continue}break}}f=f+1|0;if((i|0)!=(f|0)){continue}break}k=(d|0)==65536}e=k}W:{if(!e|(F[g+20>>2]?0:o)){break W}d=0;e=Z-16|0;Z=e;X:{if(!Sa(1,e+8|0,c)){break X}a=F[c+8>>2];f=F[c+16>>2];k=a-f|0;j=F[e+12>>2];i=F[c+20>>2];a=F[c+12>>2]-(i+(a>>>0>>0)|0)|0;b=F[e+8>>2];if((j|0)==(a|0)&k>>>0>>0|a>>>0>>0){break X}a=i+j|0;k=b+f|0;a=k>>>0>>0?a+1|0:a;F[c+16>>2]=k;F[c+20>>2]=a;if((b|0)<=0){break X}a=f+F[c>>2]|0;F[g+48>>2]=a;c=b-1|0;f=c+a|0;k=G[f|0];Y:{if(k>>>0<=63){F[g+52>>2]=c;a=G[f|0]&63;break Y}Z:{switch((k>>>6|0)-1|0){case 0:if(b>>>0<2){break X}b=b-2|0;F[g+52>>2]=b;a=a+b|0;a=G[a+1|0]<<8&16128|G[a|0];break Y;case 1:if(b>>>0<3){break X}b=b-3|0;F[g+52>>2]=b;a=a+b|0;a=G[a+1|0]<<8|G[a+2|0]<<16&4128768|G[a|0];break Y;default:break Z}}b=b-4|0;F[g+52>>2]=b;a=a+b|0;a=(G[a|0]|G[a+1|0]<<8|(G[a+2|0]<<16|G[a+3|0]<<24))&1073741823}F[g+56>>2]=a+262144;d=a>>>0<66846720}Z=e+16|0;if(!d){break W}if(!o){m=1;break W}b=F[g+52>>2];a=F[g+56>>2];c=F[g+36>>2];d=F[g+48>>2];f=F[g+24>>2];while(1){_:{if(a>>>0>262143){break _}while(1){if((b|0)<=0){break _}b=b-1|0;F[g+52>>2]=b;a=G[b+d|0]|a<<8;F[g+56>>2]=a;if(a>>>0<262144){continue}break}}m=a&65535;e=F[f+(m<<2)>>2];k=c+(e<<3)|0;a=(L(F[k>>2],a>>>16|0)+m|0)-F[k+4>>2]|0;F[g+56>>2]=a;F[r+(q<<2)>>2]=e;m=1;q=q+1|0;if((o|0)!=(q|0)){continue}break}}a=F[g+36>>2];if(a){F[g+40>>2]=a;ja(a)}a=F[g+24>>2];if(a){F[g+28>>2]=a;ja(a)}a=F[g+8>>2];if(a){F[g+12>>2]=a;ja(a)}Z=g- -64|0;b=m;break g;case 11:o=a;r=d;g=Z+-64|0;Z=g;F[g+56>>2]=0;F[g+48>>2]=0;F[g+52>>2]=0;F[g+40>>2]=0;F[g+44>>2]=0;F[g+32>>2]=0;F[g+36>>2]=0;F[g+24>>2]=0;F[g+28>>2]=0;F[g+16>>2]=0;F[g+20>>2]=0;F[g+8>>2]=0;F[g+12>>2]=0;h=g+8|0;$:{aa:{if(!H[c+38>>1]){break aa}if(!Ta(1,h+12|0,c)){break aa}b=F[c+8>>2];d=F[c+16>>2];f=b-d|0;i=F[h+12>>2];b=F[c+12>>2]-(F[c+20>>2]+(b>>>0>>0)|0)|0;if(f>>>0>>6>>>0&(b|0)<=0|(b|0)<0){break aa}b=F[h>>2];a=F[h+4>>2]-b>>2;ba:{if(a>>>0>>0){qa(h,i-a|0);i=F[h+12>>2];break ba}if(a>>>0<=i>>>0){break ba}F[h+4>>2]=b+(i<<2)}e=1;if(!i){break $}f=F[c+16>>2];d=F[c+20>>2];s=F[h>>2];j=F[c+8>>2];n=F[c+12>>2];b=0;while(1){e=0;if((d|0)>=(n|0)&f>>>0>=j>>>0|(d|0)>(n|0)){break $}t=F[c>>2];p=G[t+f|0];e=d;f=f+1|0;e=f?e:e+1|0;F[c+16>>2]=f;d=e;F[c+20>>2]=e;a=p>>>2|0;l=0;ca:{da:{ea:{fa:{e=p&3;switch(e|0){case 0:break da;case 3:break fa;default:break ea}}a=a+b|0;e=0;if(a>>>0>=i>>>0){break $}ma(s+(b<<2)|0,0,(p&252)+4|0);b=a;break ca}while(1){if((f|0)==(j|0)&(d|0)==(n|0)){break aa}i=G[f+t|0];f=f+1|0;d=f?d:d+1|0;F[c+16>>2]=f;F[c+20>>2]=d;a=i<<(l<<3|6)|a;l=l+1|0;if((e|0)!=(l|0)){continue}break}}F[s+(b<<2)>>2]=a}b=b+1|0;i=F[h+12>>2];if(b>>>0>>0){continue}break}a=h+16|0;n=F[h>>2];d=F[h+16>>2];b=F[h+20>>2]-d|0;ga:{if(b>>>0<=1048575){qa(a,262144-(b>>>2|0)|0);break ga}if((b|0)==1048576){break ga}F[h+20>>2]=d- -1048576}d=h+28|0;b=F[d>>2];f=F[h+32>>2]-b>>3;ha:{if(f>>>0>>0){_a(d,i-f|0);b=F[d>>2];break ha}if(f>>>0>i>>>0){F[h+32>>2]=(i<<3)+b}if(!i){break aa}}j=F[a>>2];f=0;d=0;while(1){e=n+(f<<2)|0;l=F[e>>2];h=(f<<3)+b|0;a=d;F[h+4>>2]=a;F[h>>2]=l;e=F[e>>2];d=e+a|0;if(d>>>0>262144){break aa}ia:{if(a>>>0>=d>>>0){break ia}l=0;h=e&7;if(h){while(1){F[j+(a<<2)>>2]=f;a=a+1|0;l=l+1|0;if((h|0)!=(l|0)){continue}break}}if(e-1>>>0<=6){break ia}while(1){e=j+(a<<2)|0;F[e>>2]=f;F[e+28>>2]=f;F[e+24>>2]=f;F[e+20>>2]=f;F[e+16>>2]=f;F[e+12>>2]=f;F[e+8>>2]=f;F[e+4>>2]=f;a=a+8|0;if((d|0)!=(a|0)){continue}break}}f=f+1|0;if((i|0)!=(f|0)){continue}break}k=(d|0)==262144}e=k}ja:{if(!e|(F[g+20>>2]?0:o)){break ja}d=0;f=Z-16|0;Z=f;ka:{if(!Sa(1,f+8|0,c)){break ka}e=F[c+8>>2];b=F[c+16>>2];k=e-b|0;j=F[f+12>>2];i=F[c+20>>2];e=F[c+12>>2]-(i+(b>>>0>e>>>0)|0)|0;a=F[f+8>>2];if((j|0)==(e|0)&k>>>0>>0|e>>>0>>0){break ka}e=i+j|0;k=a+b|0;e=k>>>0>>0?e+1|0:e;F[c+16>>2]=k;F[c+20>>2]=e;if((a|0)<=0){break ka}b=b+F[c>>2]|0;F[g+48>>2]=b;c=a-1|0;e=c+b|0;k=G[e|0];la:{if(k>>>0<=63){F[g+52>>2]=c;a=G[e|0]&63;break la}ma:{switch((k>>>6|0)-1|0){case 0:if(a>>>0<2){break ka}a=a-2|0;F[g+52>>2]=a;a=a+b|0;a=G[a+1|0]<<8&16128|G[a|0];break la;case 1:if(a>>>0<3){break ka}a=a-3|0;F[g+52>>2]=a;a=a+b|0;a=G[a+1|0]<<8|G[a+2|0]<<16&4128768|G[a|0];break la;default:break ma}}a=a-4|0;F[g+52>>2]=a;a=a+b|0;a=(G[a|0]|G[a+1|0]<<8|(G[a+2|0]<<16|G[a+3|0]<<24))&1073741823}F[g+56>>2]=a- -1048576;d=a>>>0<267386880}Z=f+16|0;if(!d){break ja}if(!o){m=1;break ja}b=F[g+52>>2];a=F[g+56>>2];c=F[g+36>>2];d=F[g+48>>2];f=F[g+24>>2];while(1){na:{if(a>>>0>1048575){break na}while(1){if((b|0)<=0){break na}b=b-1|0;F[g+52>>2]=b;a=G[b+d|0]|a<<8;F[g+56>>2]=a;if(a>>>0<1048576){continue}break}}m=a&262143;e=F[f+(m<<2)>>2];k=c+(e<<3)|0;a=(L(F[k>>2],a>>>18|0)+m|0)-F[k+4>>2]|0;F[g+56>>2]=a;F[r+(q<<2)>>2]=e;m=1;q=q+1|0;if((o|0)!=(q|0)){continue}break}}a=F[g+36>>2];if(a){F[g+40>>2]=a;ja(a)}a=F[g+24>>2];if(a){F[g+28>>2]=a;ja(a)}a=F[g+8>>2];if(a){F[g+12>>2]=a;ja(a)}Z=g- -64|0;b=m;break g;case 12:o=a;r=d;e=Z+-64|0;Z=e;F[e+56>>2]=0;F[e+48>>2]=0;F[e+52>>2]=0;F[e+40>>2]=0;F[e+44>>2]=0;F[e+32>>2]=0;F[e+36>>2]=0;F[e+24>>2]=0;F[e+28>>2]=0;F[e+16>>2]=0;F[e+20>>2]=0;F[e+8>>2]=0;F[e+12>>2]=0;h=e+8|0;oa:{pa:{if(!H[c+38>>1]){break pa}if(!Ta(1,h+12|0,c)){break pa}b=F[c+8>>2];d=F[c+16>>2];f=b-d|0;i=F[h+12>>2];b=F[c+12>>2]-(F[c+20>>2]+(b>>>0>>0)|0)|0;if(f>>>0>>6>>>0&(b|0)<=0|(b|0)<0){break pa}b=F[h>>2];a=F[h+4>>2]-b>>2;qa:{if(a>>>0>>0){qa(h,i-a|0);i=F[h+12>>2];break qa}if(a>>>0<=i>>>0){break qa}F[h+4>>2]=b+(i<<2)}g=1;if(!i){break oa}f=F[c+16>>2];d=F[c+20>>2];s=F[h>>2];j=F[c+8>>2];n=F[c+12>>2];b=0;while(1){g=0;if((d|0)>=(n|0)&f>>>0>=j>>>0|(d|0)>(n|0)){break oa}g=F[c>>2];p=G[g+f|0];a=d;f=f+1|0;a=f?a:a+1|0;F[c+16>>2]=f;d=a;F[c+20>>2]=a;a=p>>>2|0;l=0;ra:{sa:{ta:{ua:{t=p&3;switch(t|0){case 0:break sa;case 3:break ua;default:break ta}}a=a+b|0;g=0;if(a>>>0>=i>>>0){break oa}ma(s+(b<<2)|0,0,(p&252)+4|0);b=a;break ra}while(1){if((f|0)==(j|0)&(d|0)==(n|0)){break pa}i=G[f+g|0];f=f+1|0;d=f?d:d+1|0;F[c+16>>2]=f;F[c+20>>2]=d;a=i<<(l<<3|6)|a;l=l+1|0;if((t|0)!=(l|0)){continue}break}}F[s+(b<<2)>>2]=a}b=b+1|0;i=F[h+12>>2];if(b>>>0>>0){continue}break}a=h+16|0;n=F[h>>2];d=F[h+16>>2];b=F[h+20>>2]-d|0;va:{if(b>>>0<=2097151){qa(a,524288-(b>>>2|0)|0);break va}if((b|0)==2097152){break va}F[h+20>>2]=d+2097152}d=h+28|0;b=F[d>>2];f=F[h+32>>2]-b>>3;wa:{if(f>>>0>>0){_a(d,i-f|0);b=F[d>>2];break wa}if(f>>>0>i>>>0){F[h+32>>2]=(i<<3)+b}if(!i){break pa}}j=F[a>>2];f=0;d=0;while(1){g=n+(f<<2)|0;l=F[g>>2];h=(f<<3)+b|0;a=d;F[h+4>>2]=a;F[h>>2]=l;g=F[g>>2];d=g+a|0;if(d>>>0>524288){break pa}xa:{if(a>>>0>=d>>>0){break xa}l=0;h=g&7;if(h){while(1){F[j+(a<<2)>>2]=f;a=a+1|0;l=l+1|0;if((h|0)!=(l|0)){continue}break}}if(g-1>>>0<=6){break xa}while(1){g=j+(a<<2)|0;F[g>>2]=f;F[g+28>>2]=f;F[g+24>>2]=f;F[g+20>>2]=f;F[g+16>>2]=f;F[g+12>>2]=f;F[g+8>>2]=f;F[g+4>>2]=f;a=a+8|0;if((d|0)!=(a|0)){continue}break}}f=f+1|0;if((i|0)!=(f|0)){continue}break}k=(d|0)==524288}g=k}ya:{if(!g|(F[e+20>>2]?0:o)){break ya}d=0;k=Z-16|0;Z=k;za:{if(!Sa(1,k+8|0,c)){break za}a=F[c+8>>2];f=F[c+16>>2];g=a-f|0;j=F[k+12>>2];i=F[c+20>>2];a=F[c+12>>2]-(i+(a>>>0>>0)|0)|0;b=F[k+8>>2];if((j|0)==(a|0)&g>>>0>>0|a>>>0>>0){break za}a=i+j|0;g=b+f|0;a=g>>>0>>0?a+1|0:a;F[c+16>>2]=g;F[c+20>>2]=a;if((b|0)<=0){break za}a=f+F[c>>2]|0;F[e+48>>2]=a;c=b-1|0;f=c+a|0;g=G[f|0];Aa:{if(g>>>0<=63){F[e+52>>2]=c;a=G[f|0]&63;break Aa}Ba:{switch((g>>>6|0)-1|0){case 0:if(b>>>0<2){break za}b=b-2|0;F[e+52>>2]=b;a=a+b|0;a=G[a+1|0]<<8&16128|G[a|0];break Aa;case 1:if(b>>>0<3){break za}b=b-3|0;F[e+52>>2]=b;a=a+b|0;a=G[a+1|0]<<8|G[a+2|0]<<16&4128768|G[a|0];break Aa;default:break Ba}}b=b-4|0;F[e+52>>2]=b;a=a+b|0;a=(G[a|0]|G[a+1|0]<<8|(G[a+2|0]<<16|G[a+3|0]<<24))&1073741823}F[e+56>>2]=a+2097152;d=a>>>0<534773760}Z=k+16|0;if(!d){break ya}if(!o){m=1;break ya}b=F[e+52>>2];a=F[e+56>>2];c=F[e+36>>2];d=F[e+48>>2];f=F[e+24>>2];while(1){Ca:{if(a>>>0>2097151){break Ca}while(1){if((b|0)<=0){break Ca}b=b-1|0;F[e+52>>2]=b;a=G[b+d|0]|a<<8;F[e+56>>2]=a;if(a>>>0<2097152){continue}break}}m=a&524287;k=F[f+(m<<2)>>2];g=c+(k<<3)|0;a=(L(F[g>>2],a>>>19|0)+m|0)-F[g+4>>2]|0;F[e+56>>2]=a;F[r+(q<<2)>>2]=k;m=1;q=q+1|0;if((o|0)!=(q|0)){continue}break}}a=F[e+36>>2];if(a){F[e+40>>2]=a;ja(a)}a=F[e+24>>2];if(a){F[e+28>>2]=a;ja(a)}a=F[e+8>>2];if(a){F[e+12>>2]=a;ja(a)}Z=e- -64|0;b=m;break g;case 17:b=Ld(a,c,d);break g;case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:b=Z+-64|0;Z=b;F[b+56>>2]=0;F[b+48>>2]=0;F[b+52>>2]=0;F[b+40>>2]=0;F[b+44>>2]=0;F[b+32>>2]=0;F[b+36>>2]=0;F[b+24>>2]=0;F[b+28>>2]=0;F[b+16>>2]=0;F[b+20>>2]=0;F[b+8>>2]=0;F[b+12>>2]=0;Da:{if(!Nd(b+8|0,c)|(F[b+20>>2]?0:a)){break Da}if(!Md(b+8|0,c)){break Da}if(!a){f=1;break Da}m=F[b+52>>2];c=F[b+56>>2];e=F[b+36>>2];g=F[b+48>>2];o=F[b+24>>2];while(1){Ea:{if(c>>>0>16383){break Ea}while(1){if((m|0)<=0){break Ea}m=m-1|0;F[b+52>>2]=m;c=G[g+m|0]|c<<8;F[b+56>>2]=c;if(c>>>0<16384){continue}break}}f=c&4095;j=F[o+(f<<2)>>2];r=e+(j<<3)|0;c=(L(F[r>>2],c>>>12|0)+f|0)-F[r+4>>2]|0;F[b+56>>2]=c;F[(k<<2)+d>>2]=j;f=1;k=k+1|0;if((k|0)!=(a|0)){continue}break}}a=F[b+36>>2];if(a){F[b+40>>2]=a;ja(a)}a=F[b+24>>2];if(a){F[b+28>>2]=a;ja(a)}a=F[b+8>>2];if(a){F[b+12>>2]=a;ja(a)}Z=b- -64|0;b=f;break g;case 13:case 14:case 15:case 16:break h;default:break g}}b=Ld(a,c,d)}f=b}return f}function ih(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,I=0,J=0,K=0,M=0,N=0,O=0;u=Z+-64|0;Z=u;F[a+132>>2]=0;if(F[a+148>>2]){b=F[a+144>>2];if(b){while(1){f=F[b>>2];ja(b);b=f;if(b){continue}break}}b=0;F[a+144>>2]=0;f=F[a+140>>2];a:{if(!f){break a}if(f>>>0>=4){c=f&-4;while(1){e=b<<2;F[e+F[a+136>>2]>>2]=0;F[F[a+136>>2]+(e|4)>>2]=0;F[F[a+136>>2]+(e|8)>>2]=0;F[F[a+136>>2]+(e|12)>>2]=0;b=b+4|0;d=d+4|0;if((c|0)!=(d|0)){continue}break}}f=f&3;if(!f){break a}d=0;while(1){F[F[a+136>>2]+(b<<2)>>2]=0;b=b+1|0;d=d+1|0;if((f|0)!=(d|0)){continue}break}}F[a+148>>2]=0}b:{c:{if(!Da(1,u+60|0,F[F[a+4>>2]+32>>2])){break c}F[a+156>>2]=F[u+60>>2];if(!Da(1,u+56|0,F[F[a+4>>2]+32>>2])){break c}e=F[u+56>>2];if(e>>>0>1431655765){break c}b=F[a+156>>2];d=L(e,3);if(b>>>0>d>>>0){break c}f=b>>31;f=ki(b-1|0,f-!b|0,b,f);b=_;c=b>>>1|0;b=(b&1)<<31|f>>>1;if(!c&b>>>0>>1>>>0){break c}b=F[F[a+4>>2]+32>>2];c=F[b+8>>2];k=F[b+12>>2];d=F[b+20>>2];f=F[b+16>>2];if((k|0)<=(d|0)&f>>>0>=c>>>0|(d|0)>(k|0)){break c}k=G[f+F[b>>2]|0];f=f+1|0;d=f?d:d+1|0;F[b+16>>2]=f;F[b+20>>2]=d;if(!Da(1,u+52|0,b)){break c}q=F[u+52>>2];if(q>>>0>e>>>0|e>>>0>q+((q>>>0)/3|0)>>>0){break c}if(!Da(1,u+48|0,F[F[a+4>>2]+32>>2])){break c}d=F[u+48>>2];if(d>>>0>q>>>0){break c}F[a+28>>2]=F[a+24>>2];f=Zb(ka(88));b=F[a+8>>2];F[a+8>>2]=f;if(b){Za(b);if(!F[a+8>>2]){break c}}F[a+164>>2]=F[a+160>>2];Ib(a+160|0,e);F[a+176>>2]=F[a+172>>2];Ib(a+172|0,e);F[a- -64>>2]=0;F[a+92>>2]=-1;F[a+84>>2]=-1;F[a+88>>2]=-1;F[a+40>>2]=F[a+36>>2];F[a+52>>2]=F[a+48>>2];F[a+76>>2]=F[a+72>>2];A=a+216|0;Dd(A);Cd(A,k);if(!_c(F[a+8>>2],e,d+F[a+156>>2]|0)){break c}b=F[a+156>>2];D[u+8|0]=1;Ea(a+120|0,b+d|0,u+8|0);if((Bd(a,F[F[a+4>>2]+32>>2])|0)==-1){break c}c=a+232|0;b=c;F[b+144>>2]=a;f=F[($[F[F[a>>2]+32>>2]](a)|0)+32>>2];f=F[f>>2]+F[f+16>>2]|0;e=F[($[F[F[a>>2]+32>>2]](a)|0)+32>>2];e=F[e+8>>2]-F[e+16>>2]|0;N=b,O=H[F[($[F[F[a>>2]+32>>2]](a)|0)+32>>2]+38>>1],E[N+38>>1]=O;F[b>>2]=f;F[b+16>>2]=0;F[b+20>>2]=0;F[b+8>>2]=e;F[b+12>>2]=0;N=b,O=$[F[F[a>>2]+36>>2]](a)|0,F[N+148>>2]=O;F[a+372>>2]=k;F[a+384>>2]=d+F[a+156>>2];J=Ja(u+8|0);k=J;f=0;j=Z-16|0;Z=j;d:{if(!Aa(b+80|0,b)){break d}if(!yd(c)){break d}b=F[c+4>>2];F[k>>2]=F[c>>2];F[k+4>>2]=b;b=F[c+36>>2];F[k+32>>2]=F[c+32>>2];F[k+36>>2]=b;b=F[c+28>>2];F[k+24>>2]=F[c+24>>2];F[k+28>>2]=b;b=F[c+20>>2];F[k+16>>2]=F[c+16>>2];F[k+20>>2]=b;b=F[c+12>>2];F[k+8>>2]=F[c+8>>2];F[k+12>>2]=b;F[c+176>>2]=2;F[c+180>>2]=7;b=F[c+152>>2];if((b|0)<0){break d}F[j+12>>2]=0;f=2;h=F[c+156>>2];e=F[c+160>>2]-h>>2;e:{if(e>>>0>>0){Fa(c+156|0,b-e|0,j+12|0);f=F[c+176>>2];d=F[c+180>>2];break e}d=7;if(b>>>0>=e>>>0){break e}F[c+160>>2]=h+(b<<2)}e=c+184|0;d=(d-f|0)+1|0;b=F[c+188>>2];f=F[c+184>>2];s=(b-f|0)/12|0;f:{if(d>>>0>s>>>0){h=0;b=d-s|0;o=F[e+8>>2];f=F[e+4>>2];g:{if(b>>>0<=(o-f|0)/12>>>0){if(b){b=L(b,12)-12|0;b=(b-((b>>>0)%12|0)|0)+12|0;f=ma(f,0,b)+b|0}F[e+4>>2]=f;break g}h:{i:{j:{s=F[e>>2];g=(f-s|0)/12|0;d=g+b|0;if(d>>>0<357913942){o=(o-s|0)/12|0;i=o<<1;o=o>>>0>=178956970?357913941:d>>>0>>0?i:d;if(o){if(o>>>0>=357913942){break j}h=ka(L(o,12))}d=L(g,12)+h|0;b=L(b,12)-12|0;g=(b-((b>>>0)%12|0)|0)+12|0;b=ma(d,0,g);g=b+g|0;h=L(o,12)+h|0;if((f|0)==(s|0)){break i}while(1){d=d-12|0;f=f-12|0;F[d>>2]=F[f>>2];F[d+4>>2]=F[f+4>>2];F[d+8>>2]=F[f+8>>2];F[f+8>>2]=0;F[f>>2]=0;F[f+4>>2]=0;if((f|0)!=(s|0)){continue}break}F[e+8>>2]=h;b=F[e+4>>2];F[e+4>>2]=g;f=F[e>>2];F[e>>2]=d;if((b|0)==(f|0)){break h}while(1){d=b-12|0;h=F[d>>2];if(h){F[b-8>>2]=h;ja(h)}b=d;if((f|0)!=(b|0)){continue}break}break h}break b}oa();v()}F[e+8>>2]=h;F[e+4>>2]=g;F[e>>2]=b}if(f){ja(f)}}d=F[c+188>>2];break f}if(d>>>0>=s>>>0){d=b;break f}d=f+L(d,12)|0;if((d|0)!=(b|0)){while(1){f=b-12|0;h=F[f>>2];if(h){F[b-8>>2]=h;ja(h)}b=f;if((d|0)!=(b|0)){continue}break}}F[c+188>>2]=d}s=c+196|0;f=F[c+184>>2];b=(d-f|0)/12|0;o=F[c+196>>2];h=F[c+200>>2]-o>>2;k:{if(b>>>0>h>>>0){qa(s,b-h|0);f=F[c+184>>2];d=F[c+188>>2];break k}if(b>>>0>=h>>>0){break k}F[c+200>>2]=o+(b<<2)}if((d|0)==(f|0)){f=1;break d}b=0;while(1){l:{if(!Da(1,j+8|0,k)){break l}f=F[j+8>>2];d=F[c+148>>2];if(f>>>0>(F[d+4>>2]-F[d>>2]>>2>>>0)/3>>>0){break l}if(f){g=L(b,12);h=g+F[e>>2]|0;d=F[h>>2];o=F[h+4>>2]-d>>2;m:{if(o>>>0>>0){qa(h,f-o|0);d=F[g+F[e>>2]>>2];break m}if(f>>>0>=o>>>0){break m}F[h+4>>2]=(f<<2)+d}mc(f,1,k,d);F[F[s>>2]+(b<<2)>>2]=f}f=1;b=b+1|0;if(b>>>0<(F[c+188>>2]-F[c+184>>2]|0)/12>>>0){continue}break d}break}f=0}Z=j+16|0;n:{if(!f){break n}e=0;c=0;d=0;b=0;k=0;f=0;s=0;o=0;l=Z-96|0;Z=l;F[l+72>>2]=0;F[l+64>>2]=0;F[l+68>>2]=0;F[l+48>>2]=0;F[l+52>>2]=0;F[l+40>>2]=0;F[l+44>>2]=0;F[l+56>>2]=1065353216;F[l+32>>2]=0;F[l+24>>2]=0;F[l+28>>2]=0;j=a;C=F[a+124>>2];o:{p:{q:{r:{s:{if((q|0)<=0){break s}I=j+232|0;K=F[j+216>>2]!=F[j+220>>2];B=1;t:{while(1){h=s;s=h+1|0;u:{v:{w:{g=F[j+404>>2];if((g|0)==-1){F[j+400>>2]=7;break w}a=-1;i=F[j+428>>2]+(g<<2)|0;m=F[i>>2];g=m-1|0;F[i>>2]=g;if((m|0)<=0){break r}g=F[F[F[j+416>>2]+L(F[j+404>>2],12)>>2]+(g<<2)>>2];if(g>>>0>4){break r}i=F[(g<<2)+8896>>2];F[j+400>>2]=i;if(!g){if((b|0)==(c|0)){break r}i=-1;m=F[j+8>>2];B=F[m+24>>2];t=c-4|0;e=F[t>>2];g=-1;x:{if((e|0)==-1){break x}p=e+1|0;p=(p>>>0)%3|0?p:e-2|0;g=-1;if((p|0)==-1){break x}g=F[F[m>>2]+(p<<2)>>2]}n=F[B+(g<<2)>>2];if((n|0)!=-1){i=n+1|0;i=(i>>>0)%3|0?i:n-2|0}if((e|0)!=-1&F[F[m+12>>2]+(e<<2)>>2]!=-1|(e|0)==(i|0)){break r}n=F[m+12>>2];if((i|0)!=-1&F[n+(i<<2)>>2]!=-1){break r}p=L(h,3);h=p+1|0;F[n+(e<<2)>>2]=h;x=h<<2;F[x+n>>2]=e;r=p+2|0;F[n+(i<<2)>>2]=r;w=r<<2;F[w+n>>2]=i;n=-1;h=-1;y:{if((e|0)==-1){break y}z:{if((e>>>0)%3|0){e=e-1|0;break z}e=e+2|0;h=-1;if((e|0)==-1){break y}}h=F[F[m>>2]+(e<<2)>>2]}e=h;A:{if((i|0)==-1){break A}h=i+1|0;h=(h>>>0)%3|0?h:i-2|0;if((h|0)==-1){break A}n=F[F[m>>2]+(h<<2)>>2]}if((e|0)==(g|0)|(g|0)==(n|0)){break r}a=F[m>>2];F[a+(p<<2)>>2]=g;F[a+x>>2]=n;F[a+w>>2]=e;if((e|0)!=-1){F[B+(e<<2)>>2]=r}a=F[j+120>>2]+(g>>>3&536870908)|0;e=F[a>>2];N=a,O=oi(g)&e,F[N>>2]=O;F[t>>2]=p;e=b;kc(I,p);break u}B:{switch(i-1|0){case 2:case 4:if((b|0)==(c|0)){break r}r=c-4|0;e=F[r>>2];i=F[j+8>>2];m=F[i+12>>2];if((e|0)!=-1&F[m+(e<<2)>>2]!=-1){break r}c=L(h,3);n=(g|0)==3;g=c+(n?2:1)|0;t=g<<2;F[t+m>>2]=e;F[m+(e<<2)>>2]=g;Ma(i+24|0,8324);p=F[j+8>>2];m=F[p+24>>2];if(F[p+28>>2]-m>>2>(C|0)){break r}a=F[p>>2];w=a+t|0;p=F[i+28>>2];i=F[i+24>>2];t=(p-i>>2)-1|0;F[w>>2]=t;if((i|0)!=(p|0)){F[m+(t<<2)>>2]=g}g=n?c:c+2|0;w=a+(c+n<<2)|0;C:{if((e|0)==-1){F[a+(g<<2)>>2]=-1;i=-1;break C}D:{E:{F:{if((e>>>0)%3|0){i=e-1|0;break F}i=e+2|0;if((i|0)==-1){break E}}i=F[a+(i<<2)>>2];F[a+(g<<2)>>2]=i;if((i|0)==-1){break D}F[m+(i<<2)>>2]=g;break D}F[a+(g<<2)>>2]=-1}i=e+1|0;e=(i>>>0)%3|0?i:e-2|0;i=-1;if((e|0)==-1){break C}i=F[a+(e<<2)>>2]}F[w>>2]=i;F[r>>2]=c;e=b;break v;case 6:break w;case 0:break B;default:break r}}if((e|0)==(c|0)){break r}f=c-4|0;m=F[f>>2];F[l+68>>2]=f;n=F[l+44>>2];G:{if(!n){break G}g=F[l+40>>2];p=ni(n)>>>0>1;a=h&n+2147483647;H:{if(!p){break H}a=h;if(a>>>0>>0){break H}a=(h>>>0)%(n>>>0)|0}i=a;a=F[g+(i<<2)>>2];if(!a){break G}a=F[a>>2];if(!a){break G}I:{if(!p){g=n-1|0;while(1){n=F[a+4>>2];J:{if((n|0)!=(h|0)){if((i|0)==(g&n)){break J}break G}if((h|0)==F[a+8>>2]){break I}}a=F[a>>2];if(a){continue}break}break G}while(1){g=F[a+4>>2];K:{if((g|0)!=(h|0)){if(g>>>0>=n>>>0){g=(g>>>0)%(n>>>0)|0}if((g|0)==(i|0)){break K}break G}if((h|0)==F[a+8>>2]){break I}}a=F[a>>2];if(a){continue}break}break G}if((f|0)!=(k|0)){F[f>>2]=F[a+12>>2];F[l+68>>2]=c;f=c;break G}b=k-e|0;c=b>>2;d=c+1|0;if(d>>>0>=1073741824){break b}f=b>>>1|0;d=b>>>0>=2147483644?1073741823:d>>>0>>0?f:d;if(d){if(d>>>0>=1073741824){break p}f=ka(d<<2)}else{f=0}b=f+(c<<2)|0;F[b>>2]=F[a+12>>2];d=f+(d<<2)|0;f=b+4|0;if((e|0)!=(k|0)){while(1){b=b-4|0;k=k-4|0;F[b>>2]=F[k>>2];if((e|0)!=(k|0)){continue}break}}F[l+72>>2]=d;F[l+68>>2]=f;F[l+64>>2]=b;if(e){ja(e)}e=b;k=d}if((e|0)==(f|0)){break t}x=f-4|0;a=F[x>>2];if((a|0)==(m|0)){break t}i=(a|0)==-1;g=F[j+8>>2];if(!i&F[F[g+12>>2]+(a<<2)>>2]!=-1){break t}n=F[g+12>>2];if((m|0)!=-1&F[n+(m<<2)>>2]!=-1){break t}p=L(h,3);t=p+2|0;F[n+(a<<2)>>2]=t;c=t<<2;F[c+n>>2]=a;h=p+1|0;F[n+(m<<2)>>2]=h;w=h<<2;F[w+n>>2]=m;L:{M:{N:{if(!i){if((a>>>0)%3|0){h=a-1|0;break N}h=a+2|0;if((h|0)!=-1){break N}i=F[g>>2];h=-1;break M}h=-1;i=F[g>>2];F[i+(p<<2)>>2]=-1;r=-1;break L}i=F[g>>2];h=F[i+(h<<2)>>2]}F[(p<<2)+i>>2]=h;r=a+1|0;a=(r>>>0)%3|0?r:a-2|0;r=-1;if((a|0)==-1){break L}r=F[(a<<2)+i>>2]}F[i+w>>2]=r;O:{if((m|0)==-1){F[c+i>>2]=-1;r=-1;c=-1;break O}P:{Q:{R:{if((m>>>0)%3|0){a=m-1|0;break R}a=m+2|0;if((a|0)==-1){break Q}}a=F[(a<<2)+i>>2];F[c+i>>2]=a;if((a|0)==-1){break P}F[F[g+24>>2]+(a<<2)>>2]=t;break P}F[c+i>>2]=-1}r=-1;a=m+1|0;a=(a>>>0)%3|0?a:m-2|0;c=-1;if((a|0)==-1){break O}r=F[(a<<2)+i>>2];c=a}a=F[j+388>>2];t=h<<2;m=a+t|0;w=a;a=r<<2;F[m>>2]=F[m>>2]+F[w+a>>2];w=a;a=F[g+24>>2];m=w+a|0;if((h|0)!=-1){F[a+t>>2]=F[m>>2]}a=c;while(1){if((a|0)!=-1){F[(a<<2)+i>>2]=h;t=a+1|0;a=(t>>>0)%3|0?t:a-2|0;g=-1;S:{if((a|0)==-1){break S}a=F[n+(a<<2)>>2];g=-1;if((a|0)==-1){break S}g=a+1|0;g=(g>>>0)%3|0?g:a-2|0}a=g;if((c|0)!=(a|0)){continue}break t}break}F[m>>2]=-1;T:{U:{if(K){break U}if((y|0)!=(z|0)){F[z>>2]=r;z=z+4|0;F[l+28>>2]=z;break U}a=y-o|0;g=a>>2;c=g+1|0;if(c>>>0>=1073741824){break T}h=a>>>1|0;h=a>>>0>=2147483644?1073741823:c>>>0>>0?h:c;if(h){if(h>>>0>=1073741824){break p}c=ka(h<<2)}else{c=0}a=c+(g<<2)|0;F[a>>2]=r;z=a+4|0;if((o|0)!=(y|0)){while(1){a=a-4|0;y=y-4|0;F[a>>2]=F[y>>2];if((o|0)!=(y|0)){continue}break}}y=c+(h<<2)|0;F[l+32>>2]=y;F[l+28>>2]=z;F[l+24>>2]=a;if(o){ja(o)}o=a}F[x>>2]=p;c=f;kc(I,p);break u}break b}g=F[j+8>>2];Ma(g+24|0,8324);a=-1;k=F[j+8>>2];f=L(h,3);i=F[g+28>>2];m=F[g+24>>2];n=i-m|0;g=n>>2;p=g-1|0;F[F[k>>2]+(f<<2)>>2]=p;Ma(k+24|0,8324);r=f+1|0;F[F[k>>2]+(r<<2)>>2]=(F[k+28>>2]-F[k+24>>2]>>2)-1;k=F[j+8>>2];Ma(k+24|0,8324);t=f+2|0;F[F[k>>2]+(t<<2)>>2]=(F[k+28>>2]-F[k+24>>2]>>2)-1;x=F[j+8>>2];k=F[x+24>>2];if(F[x+28>>2]-k>>2>(C|0)){break r}V:{W:{if((i|0)!=(m|0)){F[k+(p<<2)>>2]=f;a=0;if((n|0)==-4){break W}}F[k+(g<<2)>>2]=r;a=g+1|0;if((a|0)==-1){break V}}F[k+(a<<2)>>2]=t}if((d|0)!=(c|0)){F[c>>2]=f;f=c+4|0;F[l+68>>2]=f;k=d;break v}a=d-b|0;k=a>>2;e=k+1|0;if(e>>>0>=1073741824){break b}c=a>>>1|0;a=a>>>0>=2147483644?1073741823:e>>>0>>0?c:e;if(a){if(a>>>0>=1073741824){break p}c=ka(a<<2)}else{c=0}e=c+(k<<2)|0;F[e>>2]=f;k=c+(a<<2)|0;f=e+4|0;if((b|0)!=(d|0)){while(1){e=e-4|0;d=d-4|0;F[e>>2]=F[d>>2];if((b|0)!=(d|0)){continue}break}}F[l+72>>2]=k;F[l+68>>2]=f;F[l+64>>2]=e;if(b){ja(b)}d=k;b=e}kc(I,F[f-4>>2]);a=F[j+40>>2];X:{if((a|0)==F[j+36>>2]){break X}c=a-12|0;g=F[c+4>>2];h=q+(h^-1)|0;if(g>>>0>h>>>0){break t}if((g|0)!=(h|0)){break X}i=G[a-4|0];g=F[c>>2];F[j+40>>2]=c;if((g|0)<0){break t}m=f-4|0;a=F[m>>2];F[l+20>>2]=q+(g^-1);c=l+20|0;F[l+88>>2]=c;Fb(l,l+40|0,c,l+88|0);g=F[l>>2];Y:{if(i&1){c=-1;if((a|0)==-1){break Y}c=a+1|0;c=(c>>>0)%3|0?c:a-2|0;break Y}c=-1;if((a|0)==-1){break Y}c=a-1|0;if((a>>>0)%3|0){break Y}c=a+2|0}F[g+12>>2]=c;a=F[j+40>>2];if((a|0)==F[j+36>>2]){break X}while(1){c=a-12|0;g=F[c+4>>2];if(g>>>0>h>>>0){break t}if((g|0)!=(h|0)){break X}i=G[a-4|0];g=F[c>>2];F[j+40>>2]=c;if((g|0)<0){break t}a=F[m>>2];F[l+20>>2]=q+(g^-1);c=l+20|0;F[l+88>>2]=c;Fb(l,l+40|0,c,l+88|0);g=F[l>>2];Z:{if(i&1){c=-1;if((a|0)==-1){break Z}c=a+1|0;c=(c>>>0)%3|0?c:a-2|0;break Z}c=-1;if((a|0)==-1){break Z}c=a-1|0;if((a>>>0)%3|0){break Z}c=a+2|0}F[g+12>>2]=c;a=F[j+40>>2];if((a|0)!=F[j+36>>2]){continue}break}}c=f}B=(q|0)>(s|0);if((q|0)!=(s|0)){continue}break}s=q;break s}a=-1;if(B){break r}}a=-1;c=F[j+8>>2];if(F[c+28>>2]-F[c+24>>2]>>2>(C|0)){break r}if((b|0)!=(f|0)){m=j+72|0;k=j+60|0;n=j+312|0;while(1){f=f-4|0;q=F[f>>2];F[l+68>>2]=f;_:{if(wa(n)){g=F[j+8>>2];o=F[g>>2];if(((F[g+4>>2]-o>>2>>>0)/3|0)<=(s|0)){a=-1;break r}b=-1;i=F[g+24>>2];a=-1;$:{if((q|0)==-1){break $}e=q+1|0;e=(e>>>0)%3|0?e:q-2|0;a=-1;if((e|0)==-1){break $}a=F[o+(e<<2)>>2]}e=a;a=F[i+(e<<2)>>2];aa:{if((a|0)==-1){h=1;c=-1;break aa}h=1;c=-1;d=a+1|0;a=(d>>>0)%3|0?d:a-2|0;if((a|0)==-1){break aa}h=0;b=a+1|0;b=(b>>>0)%3|0?b:a-2|0;if((b|0)!=-1){c=F[o+(b<<2)>>2]}b=a}a=-1;d=-1;i=F[i+(c<<2)>>2];if((i|0)!=-1){d=i+1|0;d=(d>>>0)%3|0?d:i-2|0}if((b|0)==(q|0)|(d|0)==(q|0)|((q|0)!=-1&F[F[g+12>>2]+(q<<2)>>2]!=-1|(b|0)==(d|0))){break r}if(!h&F[F[g+12>>2]+(b<<2)>>2]!=-1){break r}h=-1;g=F[g+12>>2];i=-1;ba:{if((d|0)==-1){break ba}if(F[g+(d<<2)>>2]!=-1){break r}a=d+1|0;a=(a>>>0)%3|0?a:d-2|0;i=-1;if((a|0)==-1){break ba}i=F[o+(a<<2)>>2]}a=L(s,3);F[l>>2]=a;F[g+(a<<2)>>2]=q;F[g+(q<<2)>>2]=a;a=F[l>>2]+1|0;F[g+(a<<2)>>2]=b;F[g+(b<<2)>>2]=a;a=F[l>>2]+2|0;F[g+(a<<2)>>2]=d;F[g+(d<<2)>>2]=a;a=F[l>>2];F[o+(a<<2)>>2]=c;b=a+1|0;d=o+(b<<2)|0;F[d>>2]=i;q=a+2|0;o=o+(q<<2)|0;F[o>>2]=e;a=F[j+120>>2];e=b?c:-1;c=a+(e>>>3&536870908)|0;g=F[c>>2];N=c,O=oi(e)&g,F[N>>2]=O;h=(b|0)!=-1?F[d>>2]:h;b=a+(h>>>3&536870908)|0;d=F[b>>2];N=b,O=oi(h)&d,F[N>>2]=O;d=-1;d=(q|0)!=-1?F[o>>2]:d;a=a+(d>>>3&536870908)|0;b=F[a>>2];N=a,O=oi(d)&b,F[N>>2]=O;D[l+88|0]=1;wd(k,l+88|0);Ma(m,l);s=s+1|0;b=F[l+64>>2];break _}d=F[j+64>>2];a=F[j+68>>2];if((d|0)==a<<5){if((d+1|0)<0){break b}if(d>>>0<=1073741822){a=a<<6;d=(d&-32)+32|0;a=a>>>0>d>>>0?a:d}else{a=2147483647}$a(k,a);d=F[j+64>>2]}F[j+64>>2]=d+1;a=F[j+60>>2]+(d>>>3&536870908)|0;e=F[a>>2];N=a,O=oi(d)&e,F[N>>2]=O;d=F[j+76>>2];if((d|0)!=F[j+80>>2]){F[d>>2]=q;F[j+76>>2]=d+4;break _}c=F[m>>2];a=d-c|0;o=a>>2;e=o+1|0;if(e>>>0>=1073741824){break b}h=a>>>1|0;h=a>>>0>=2147483644?1073741823:e>>>0>>0?h:e;if(h){if(h>>>0>=1073741824){break p}a=ka(h<<2)}else{a=0}e=a+(o<<2)|0;F[e>>2]=q;q=e+4|0;if((d|0)!=(c|0)){while(1){e=e-4|0;d=d-4|0;F[e>>2]=F[d>>2];if((d|0)!=(c|0)){continue}break}}F[j+80>>2]=a+(h<<2);F[j+76>>2]=q;F[j+72>>2]=e;if(!c){break _}ja(c)}if((b|0)!=(f|0)){continue}break}c=F[j+8>>2]}a=-1;if(((F[c+4>>2]-F[c>>2]>>2>>>0)/3|0)!=(s|0)){break r}a=F[c+28>>2]-F[c+24>>2]>>2;f=F[l+24>>2];h=F[l+28>>2];if((f|0)==(h|0)){break q}while(1){b=F[f>>2];k=F[c+24>>2];d=a-1|0;e=k+(d<<2)|0;if(F[e>>2]==-1){while(1){d=a-2|0;a=a-1|0;e=k+(d<<2)|0;if(F[e>>2]==-1){continue}break}}if(b>>>0<=d>>>0){F[l>>2]=c;e=F[e>>2];D[l+12|0]=1;F[l+8>>2]=e;F[l+4>>2]=e;if((e|0)!=-1){while(1){e=F[F[j+8>>2]>>2]+(e<<2)|0;if(F[e>>2]!=(d|0)){a=-1;break r}F[e>>2]=b;nc(l);e=F[l+8>>2];if((e|0)!=-1){continue}break}c=F[j+8>>2]}k=F[c+24>>2];e=k+(d<<2)|0;if((b|0)!=-1){F[k+(b<<2)>>2]=F[e>>2]}F[e>>2]=-1;e=1<>2];b=k+(b>>>3&536870908)|0;k=k+(d>>>3&536870908)|0;d=1<>2]&d){e=e|F[b>>2]}else{e=F[b>>2]&(e^-1)}F[b>>2]=e;F[k>>2]=F[k>>2]&(d^-1);a=a-1|0}f=f+4|0;if((h|0)!=(f|0)){continue}break}}f=F[l+24>>2]}if(f){ja(f)}b=F[l+48>>2];if(b){while(1){d=F[b>>2];ja(b);b=d;if(b){continue}break}}b=F[l+40>>2];F[l+40>>2]=0;if(b){ja(b)}b=F[l+64>>2];if(b){F[l+68>>2]=b;ja(b)}Z=l+96|0;break o}oa();v()}f=a;if((a|0)==-1){break n}a=J;b=F[a+16>>2];d=b+F[a>>2]|0;b=F[a+8>>2]-b|0;a=F[F[j+4>>2]+32>>2];E[a+38>>1]=H[a+38>>1];F[a>>2]=d;F[a+16>>2]=0;F[a+20>>2]=0;F[a+8>>2]=b;F[a+12>>2]=0;ca:{if(F[j+216>>2]==F[j+220>>2]){break ca}a=F[j+8>>2];if(F[a+4>>2]==F[a>>2]){break ca}b=0;while(1){if(Ad(j,b)){b=b+3|0;a=F[j+8>>2];if(b>>>0>2]-F[a>>2]>>2>>>0){continue}break ca}break}break n}if(G[j+308|0]){D[j+308|0]=0;d=F[j+292>>2];a=0;e=F[j+304>>2]+7|0;a=e>>>0<7?1:a;e=a<<29|e>>>3;b=e+F[j+288>>2]|0;a=(a>>>3|0)+d|0;F[j+288>>2]=b;F[j+292>>2]=b>>>0>>0?a+1|0:a}b=F[j+216>>2];if((b|0)!=F[j+220>>2]){a=0;while(1){e=L(a,144);Zc((e+b|0)+4|0,F[j+8>>2]);d=F[A>>2];c=d+e|0;b=F[c+132>>2];c=F[c+136>>2];if((b|0)!=(c|0)){while(1){Xc((e+F[A>>2]|0)+4|0,F[b>>2]);b=b+4|0;if((c|0)!=(b|0)){continue}break}d=F[A>>2]}if(!Yc((d+e|0)+4|0)){break n}a=a+1|0;b=F[j+216>>2];if(a>>>0<(F[j+220>>2]-b|0)/144>>>0){continue}break}}a=F[j+8>>2];Hb(j+184|0,F[a+28>>2]-F[a+24>>2]>>2);d=F[j+216>>2];if((d|0)!=F[j+220>>2]){b=0;while(1){a=L(b,144)+d|0;d=F[a+60>>2]-F[a+56>>2]>>2;c=a+104|0;a=F[j+8>>2];a=F[a+28>>2]-F[a+24>>2]>>2;Hb(c,(a|0)<(d|0)?d:a);b=b+1|0;d=F[j+216>>2];if(b>>>0<(F[j+220>>2]-d|0)/144>>>0){continue}break}}M=zd(j,f)}}Z=u- -64|0;return M|0}na();v()}function lh(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,I=0,J=0,K=0,M=0;t=Z+-64|0;Z=t;F[a+132>>2]=0;if(F[a+148>>2]){c=F[a+144>>2];if(c){while(1){b=F[c>>2];ja(c);c=b;if(b){continue}break}}c=0;F[a+144>>2]=0;b=F[a+140>>2];a:{if(!b){break a}if(b>>>0>=4){h=b&-4;while(1){e=c<<2;F[e+F[a+136>>2]>>2]=0;F[F[a+136>>2]+(e|4)>>2]=0;F[F[a+136>>2]+(e|8)>>2]=0;F[F[a+136>>2]+(e|12)>>2]=0;c=c+4|0;f=f+4|0;if((h|0)!=(f|0)){continue}break}}b=b&3;if(!b){break a}f=0;while(1){F[F[a+136>>2]+(c<<2)>>2]=0;c=c+1|0;f=f+1|0;if((b|0)!=(f|0)){continue}break}}F[a+148>>2]=0}b:{if(!Da(1,t+60|0,F[F[a+4>>2]+32>>2])){break b}F[a+156>>2]=F[t+60>>2];if(!Da(1,t+56|0,F[F[a+4>>2]+32>>2])){break b}e=F[t+56>>2];if(e>>>0>1431655765){break b}c=F[a+156>>2];b=L(e,3);if(c>>>0>b>>>0){break b}f=b>>>1|0;b=c>>31;h=ki(c-1|0,b-!c|0,c,b);b=_;c=b>>>1|0;b=(b&1)<<31|h>>>1;if(!c&b>>>0>>0){break b}c=F[F[a+4>>2]+32>>2];h=F[c+8>>2];m=F[c+12>>2];b=F[c+20>>2];f=F[c+16>>2];if((m|0)<=(b|0)&f>>>0>=h>>>0|(b|0)>(m|0)){break b}h=G[f+F[c>>2]|0];f=f+1|0;b=f?b:b+1|0;F[c+16>>2]=f;F[c+20>>2]=b;if(!Da(1,t+52|0,c)){break b}n=F[t+52>>2];if(n>>>0>e>>>0|e>>>0>n+((n>>>0)/3|0)>>>0){break b}if(!Da(1,t+48|0,F[F[a+4>>2]+32>>2])){break b}c=F[t+48>>2];if(c>>>0>n>>>0){break b}F[a+28>>2]=F[a+24>>2];f=Zb(ka(88));b=F[a+8>>2];F[a+8>>2]=f;if(b){Za(b);if(!F[a+8>>2]){break b}}F[a+164>>2]=F[a+160>>2];Ib(a+160|0,e);F[a+176>>2]=F[a+172>>2];Ib(a+172|0,e);F[a- -64>>2]=0;F[a+92>>2]=-1;F[a+84>>2]=-1;F[a+88>>2]=-1;F[a+40>>2]=F[a+36>>2];F[a+52>>2]=F[a+48>>2];F[a+76>>2]=F[a+72>>2];y=a+216|0;Dd(y);Cd(y,h);if(!_c(F[a+8>>2],e,c+F[a+156>>2]|0)){break b}b=F[a+156>>2];D[t+8|0]=1;Ea(a+120|0,b+c|0,t+8|0);if((Bd(a,F[F[a+4>>2]+32>>2])|0)==-1){break b}c=a+232|0;F[c+144>>2]=a;b=F[($[F[F[a>>2]+32>>2]](a)|0)+32>>2];b=F[b>>2]+F[b+16>>2]|0;f=F[($[F[F[a>>2]+32>>2]](a)|0)+32>>2];f=F[f+8>>2]-F[f+16>>2]|0;K=c,M=H[F[($[F[F[a>>2]+32>>2]](a)|0)+32>>2]+38>>1],E[K+38>>1]=M;F[c>>2]=b;F[c+16>>2]=0;F[c+20>>2]=0;F[c+8>>2]=f;F[c+12>>2]=0;F[a+372>>2]=h;C=Ja(t+8|0);h=C;m=0;d=Z-16|0;Z=d;b=F[c+4>>2];F[c+40>>2]=F[c>>2];F[c+44>>2]=b;b=F[c+36>>2];F[c+72>>2]=F[c+32>>2];F[c+76>>2]=b;f=F[c+28>>2];b=c- -64|0;F[b>>2]=F[c+24>>2];F[b+4>>2]=f;b=F[c+20>>2];F[c+56>>2]=F[c+16>>2];F[c+60>>2]=b;b=F[c+12>>2];F[c+48>>2]=F[c+8>>2];F[c+52>>2]=b;c:{d:{if(hc(c+40|0,1,d+8|0)){b=F[c+44>>2];F[c>>2]=F[c+40>>2];F[c+4>>2]=b;b=F[c+76>>2];F[c+32>>2]=F[c+72>>2];F[c+36>>2]=b;b=F[c+68>>2];F[c+24>>2]=F[c+64>>2];F[c+28>>2]=b;f=F[c+60>>2];g=f;b=F[c+56>>2];F[c+16>>2]=b;F[c+20>>2]=f;e=F[c+52>>2];f=F[c+48>>2];F[c+8>>2]=f;F[c+12>>2]=e;k=F[d+12>>2];i=e-((b>>>0>f>>>0)+g|0)|0;e=f-b|0;f=F[d+8>>2];if((k|0)==(i|0)&e>>>0>=f>>>0|i>>>0>k>>>0){break d}}break c}e=g+k|0;b=b+f|0;e=b>>>0>>0?e+1|0:e;F[c+16>>2]=b;F[c+20>>2]=e;if(!Aa(c+80|0,c)){break c}if(!yd(c)){break c}b=F[c+4>>2];F[h>>2]=F[c>>2];F[h+4>>2]=b;b=F[c+36>>2];F[h+32>>2]=F[c+32>>2];F[h+36>>2]=b;b=F[c+28>>2];F[h+24>>2]=F[c+24>>2];F[h+28>>2]=b;b=F[c+20>>2];F[h+16>>2]=F[c+16>>2];F[h+20>>2]=b;b=F[c+12>>2];F[h+8>>2]=F[c+8>>2];F[h+12>>2]=b;m=1}Z=d+16|0;e:{if(!m){break e}b=0;c=0;f=0;m=0;j=Z-96|0;Z=j;F[j+72>>2]=0;F[j+64>>2]=0;F[j+68>>2]=0;F[j+48>>2]=0;F[j+52>>2]=0;F[j+40>>2]=0;F[j+44>>2]=0;F[j+56>>2]=1065353216;F[j+32>>2]=0;F[j+24>>2]=0;F[j+28>>2]=0;h=a;B=F[a+124>>2];f:{g:{h:{i:{j:{k:{l:{m:{if((n|0)<=0){break m}I=F[h+216>>2]!=F[h+220>>2];z=1;while(1){e=m;m=e+1|0;n:{o:{p:{q:{r:{s:{t:{u:{v:{w:{x:{y:{z:{A:{B:{if(!G[h+308|0]){break B}k=F[h+296>>2];d=F[h+304>>2];a=k+(d>>>3|0)|0;l=F[h+300>>2];if(a>>>0>=l>>>0){break B}g=G[a|0];a=d+1|0;F[h+304>>2]=a;p=g>>>(d&7)&1;if(!p){break B}i=0;g=a>>>3|0;r=k+g|0;C:{if(r>>>0>=l>>>0){d=a;a=0;break C}r=G[r|0];d=d+2|0;F[h+304>>2]=d;g=d>>>3|0;a=r>>>(a&7)&1}g=g+k|0;if(g>>>0>>0){g=G[g|0];F[h+304>>2]=d+1;i=g>>>(d&7)<<1&2}g=-1;i=p|(a|i)<<1;switch(i-1|0){case 6:break y;case 0:break z;case 2:case 4:break A;default:break l}}if((c|0)==(f|0)){g=-1;break l}d=-1;i=F[h+8>>2];z=F[i+24>>2];r=c-4|0;b=F[r>>2];a=-1;D:{if((b|0)==-1){break D}k=b+1|0;k=(k>>>0)%3|0?k:b-2|0;a=-1;if((k|0)==-1){break D}a=F[F[i>>2]+(k<<2)>>2]}g=F[z+(a<<2)>>2];if((g|0)!=-1){d=g+1|0;d=(d>>>0)%3|0?d:g-2|0}if((b|0)==(d|0)){g=-1;break l}if((b|0)!=-1){g=-1;if(F[F[i+12>>2]+(b<<2)>>2]!=-1){break l}}k=F[i+12>>2];if((d|0)!=-1){g=-1;if(F[k+(d<<2)>>2]!=-1){break l}}l=L(e,3);e=l+1|0;F[k+(b<<2)>>2]=e;s=e<<2;F[s+k>>2]=b;p=l+2|0;F[k+(d<<2)>>2]=p;u=p<<2;F[u+k>>2]=d;k=-1;e=-1;E:{if((b|0)==-1){break E}F:{if((b>>>0)%3|0){b=b-1|0;break F}b=b+2|0;e=-1;if((b|0)==-1){break E}}e=F[F[i>>2]+(b<<2)>>2]}b=e;G:{if((d|0)==-1){break G}e=d+1|0;e=(e>>>0)%3|0?e:d-2|0;if((e|0)==-1){break G}k=F[F[i>>2]+(e<<2)>>2]}g=-1;if((a|0)==(b|0)|(a|0)==(k|0)){break l}e=F[i>>2];F[e+(l<<2)>>2]=a;F[e+s>>2]=k;F[e+u>>2]=b;if((b|0)!=-1){F[z+(b<<2)>>2]=p}b=F[h+120>>2]+(a>>>3&536870908)|0;e=F[b>>2];K=b,M=oi(a)&e,F[K>>2]=M;F[r>>2]=l;b=f;break n}if((c|0)==(f|0)){break l}r=c-4|0;b=F[r>>2];a=F[h+8>>2];d=F[a+12>>2];if((b|0)!=-1&F[d+(b<<2)>>2]!=-1){break l}l=(i|0)==5;i=L(e,3);p=(l?2:1)+i|0;s=p<<2;F[s+d>>2]=b;F[d+(b<<2)>>2]=p;Ma(a+24|0,8324);d=F[h+8>>2];k=F[d+24>>2];if(F[d+28>>2]-k>>2>(B|0)){break l}d=F[d>>2];u=d+s|0;g=F[a+28>>2];a=F[a+24>>2];s=(g-a>>2)-1|0;F[u>>2]=s;if((a|0)!=(g|0)){F[k+(s<<2)>>2]=p}g=l?i:i+2|0;l=d+(i+l<<2)|0;H:{if((b|0)==-1){F[d+(g<<2)>>2]=-1;a=-1;break H}I:{J:{K:{if((b>>>0)%3|0){a=b-1|0;break K}a=b+2|0;if((a|0)==-1){break J}}a=F[d+(a<<2)>>2];F[d+(g<<2)>>2]=a;if((a|0)==-1){break I}F[k+(a<<2)>>2]=g;break I}F[d+(g<<2)>>2]=-1}g=b+1|0;b=(g>>>0)%3|0?g:b-2|0;a=-1;if((b|0)==-1){break H}a=F[d+(b<<2)>>2]}F[l>>2]=a;F[r>>2]=i;b=f;break t}if((b|0)==(c|0)){break l}a=c-4|0;k=F[a>>2];F[j+68>>2]=a;l=F[j+44>>2];L:{if(!l){c=a;break L}g=F[j+40>>2];p=ni(l)>>>0>1;d=e&l+2147483647;M:{if(!p){break M}d=e;if(d>>>0>>0){break M}d=(e>>>0)%(l>>>0)|0}i=d;d=F[g+(i<<2)>>2];if(!d){c=a;break L}d=F[d>>2];if(!d){c=a;break L}N:{if(!p){g=l-1|0;while(1){l=F[d+4>>2];O:{if((l|0)!=(e|0)){if((i|0)==(g&l)){break O}c=a;break L}if((e|0)==F[d+8>>2]){break N}}d=F[d>>2];if(d){continue}break}c=a;break L}while(1){g=F[d+4>>2];P:{if((g|0)!=(e|0)){if(g>>>0>=l>>>0){g=(g>>>0)%(l>>>0)|0}if((g|0)==(i|0)){break P}c=a;break L}if((e|0)==F[d+8>>2]){break N}}d=F[d>>2];if(d){continue}break}c=a;break L}if((a|0)!=(q|0)){F[a>>2]=F[d+12>>2];F[j+68>>2]=c;break L}a=q-b|0;f=a>>2;c=f+1|0;if(c>>>0>=1073741824){break x}g=a>>>1|0;g=a>>>0>=2147483644?1073741823:c>>>0>>0?g:c;if(g){if(g>>>0>=1073741824){break j}a=ka(g<<2)}else{a=0}f=a+(f<<2)|0;F[f>>2]=F[d+12>>2];c=f+4|0;if((b|0)!=(q|0)){while(1){f=f-4|0;q=q-4|0;F[f>>2]=F[q>>2];if((b|0)!=(q|0)){continue}break}}q=a+(g<<2)|0;F[j+72>>2]=q;F[j+68>>2]=c;F[j+64>>2]=f;if(b){ja(b)}}if((c|0)==(f|0)){break p}s=c-4|0;b=F[s>>2];if((b|0)==(k|0)){break p}a=(b|0)==-1;g=F[h+8>>2];if(!a&F[F[g+12>>2]+(b<<2)>>2]!=-1){break p}l=F[g+12>>2];if((k|0)!=-1&F[l+(k<<2)>>2]!=-1){break p}p=L(e,3);r=p+2|0;F[l+(b<<2)>>2]=r;e=r<<2;F[e+l>>2]=b;d=p+1|0;F[l+(k<<2)>>2]=d;u=d<<2;F[u+l>>2]=k;if(a){break w}if((b>>>0)%3|0){d=b-1|0;break s}d=b+2|0;if((d|0)!=-1){break s}a=F[g>>2];d=-1;break r}i=F[h+8>>2];Ma(i+24|0,8324);d=F[h+8>>2];a=L(e,3);k=F[i+28>>2];l=F[i+24>>2];p=k-l|0;i=p>>2;r=i-1|0;F[F[d>>2]+(a<<2)>>2]=r;Ma(d+24|0,8324);s=a+1|0;F[F[d>>2]+(s<<2)>>2]=(F[d+28>>2]-F[d+24>>2]>>2)-1;d=F[h+8>>2];Ma(d+24|0,8324);u=a+2|0;F[F[d>>2]+(u<<2)>>2]=(F[d+28>>2]-F[d+24>>2]>>2)-1;A=F[h+8>>2];d=F[A+24>>2];if(F[A+28>>2]-d>>2>(B|0)){break l}Q:{R:{if((k|0)!=(l|0)){F[d+(r<<2)>>2]=a;g=0;if((p|0)==-4){break R}}F[d+(i<<2)>>2]=s;g=i+1|0;if((g|0)==-1){break Q}}F[d+(g<<2)>>2]=u}if((c|0)!=(q|0)){F[c>>2]=a;c=c+4|0;F[j+68>>2]=c;break t}f=c-b|0;i=f>>2;d=i+1|0;if(d>>>0>=1073741824){break v}g=f>>>1|0;d=f>>>0>=2147483644?1073741823:d>>>0>>0?g:d;if(d){if(d>>>0>=1073741824){break j}g=ka(d<<2)}else{g=0}f=g+(i<<2)|0;F[f>>2]=a;q=g+(d<<2)|0;a=f+4|0;if((b|0)!=(c|0)){while(1){f=f-4|0;c=c-4|0;F[f>>2]=F[c>>2];if((b|0)!=(c|0)){continue}break}}F[j+72>>2]=q;F[j+68>>2]=a;F[j+64>>2]=f;if(!b){break u}ja(b);break u}na();v()}d=-1;a=F[g>>2];F[a+(p<<2)>>2]=-1;i=-1;break q}na();v()}c=a;b=f}a=F[h+40>>2];if((a|0)==F[h+36>>2]){break n}d=a-12|0;i=F[d+4>>2];g=n+(e^-1)|0;if(i>>>0>g>>>0){break p}if((g|0)!=(i|0)){break n}i=G[a-4|0];e=F[d>>2];F[h+40>>2]=d;if((e|0)<0){break p}k=c-4|0;a=F[k>>2];F[j+20>>2]=n+(e^-1);e=j+20|0;F[j+88>>2]=e;Fb(j,j+40|0,e,j+88|0);d=F[j>>2];S:{if(i&1){e=-1;if((a|0)==-1){break S}e=a+1|0;e=(e>>>0)%3|0?e:a-2|0;break S}e=-1;if((a|0)==-1){break S}e=a-1|0;if((a>>>0)%3|0){break S}e=a+2|0}F[d+12>>2]=e;d=F[h+40>>2];if((d|0)==F[h+36>>2]){break n}while(1){a=d-12|0;e=F[a+4>>2];if(e>>>0>g>>>0){break p}if((g|0)!=(e|0)){break n}d=G[d-4|0];e=F[a>>2];F[h+40>>2]=a;if((e|0)<0){break p}a=F[k>>2];F[j+20>>2]=n+(e^-1);e=j+20|0;F[j+88>>2]=e;Fb(j,j+40|0,e,j+88|0);i=F[j>>2];T:{if(d&1){e=-1;if((a|0)==-1){break T}e=a+1|0;e=(e>>>0)%3|0?e:a-2|0;break T}e=-1;if((a|0)==-1){break T}e=a-1|0;if((a>>>0)%3|0){break T}e=a+2|0}F[i+12>>2]=e;d=F[h+40>>2];if((d|0)!=F[h+36>>2]){continue}break}break n}a=F[g>>2];d=F[a+(d<<2)>>2]}F[(p<<2)+a>>2]=d;A=b+1|0;b=(A>>>0)%3|0?A:b-2|0;i=-1;if((b|0)==-1){break q}i=F[(b<<2)+a>>2]}F[a+u>>2]=i;U:{if((k|0)==-1){F[a+e>>2]=-1;i=-1;e=-1;break U}V:{W:{X:{if((k>>>0)%3|0){b=k-1|0;break X}b=k+2|0;if((b|0)==-1){break W}}b=F[(b<<2)+a>>2];F[a+e>>2]=b;if((b|0)==-1){break V}F[F[g+24>>2]+(b<<2)>>2]=r;break V}F[a+e>>2]=-1}i=-1;b=k+1|0;b=(b>>>0)%3|0?b:k-2|0;e=-1;if((b|0)==-1){break U}i=F[(b<<2)+a>>2];e=b}b=F[g+24>>2];k=b+(i<<2)|0;if((d|0)!=-1){F[b+(d<<2)>>2]=F[k>>2]}b=e;while(1){if((b|0)==-1){break o}F[(b<<2)+a>>2]=d;r=b+1|0;b=(r>>>0)%3|0?r:b-2|0;g=-1;Y:{if((b|0)==-1){break Y}b=F[l+(b<<2)>>2];g=-1;if((b|0)==-1){break Y}g=b+1|0;g=(g>>>0)%3|0?g:b-2|0}b=g;if((e|0)!=(b|0)){continue}break}}g=-1;if(!z){break m}break l}F[k>>2]=-1;Z:{if(I){break Z}if((w|0)!=(x|0)){F[x>>2]=i;x=x+4|0;F[j+28>>2]=x;break Z}a=w-o|0;d=a>>2;b=d+1|0;if(b>>>0>=1073741824){break i}e=a>>>1|0;e=a>>>0>=2147483644?1073741823:b>>>0>>0?e:b;if(e){if(e>>>0>=1073741824){break j}a=ka(e<<2)}else{a=0}b=a+(d<<2)|0;F[b>>2]=i;x=b+4|0;if((o|0)!=(w|0)){while(1){b=b-4|0;w=w-4|0;F[b>>2]=F[w>>2];if((o|0)!=(w|0)){continue}break}}w=a+(e<<2)|0;F[j+32>>2]=w;F[j+28>>2]=x;F[j+24>>2]=b;if(o){ja(o)}o=b}F[s>>2]=p;b=f}z=(m|0)<(n|0);if((m|0)!=(n|0)){continue}break}m=n}g=-1;a=F[h+8>>2];if(F[a+28>>2]-F[a+24>>2]>>2>(B|0)){break l}if((c|0)!=(f|0)){l=h+72|0;e=h+60|0;w=h+312|0;while(1){c=c-4|0;i=F[c>>2];F[j+68>>2]=c;_:{if(wa(w)){q=F[h+8>>2];k=F[q>>2];if(((F[q+4>>2]-k>>2>>>0)/3|0)<=(m|0)){g=-1;break l}a=-1;g=-1;b=-1;x=F[q+24>>2];f=-1;$:{if((i|0)==-1){break $}n=i+1|0;n=(n>>>0)%3|0?n:i-2|0;f=-1;if((n|0)==-1){break $}f=F[k+(n<<2)>>2]}n=f;o=F[x+(n<<2)>>2];aa:{if((o|0)==-1){d=1;f=-1;break aa}d=1;p=o+1|0;o=(p>>>0)%3|0?p:o-2|0;f=-1;if((o|0)==-1){break aa}d=0;a=o;f=a+1|0;f=(f>>>0)%3|0?f:a-2|0;if((f|0)!=-1){f=F[k+(f<<2)>>2]}else{f=-1}}o=F[(f<<2)+x>>2];if((o|0)!=-1){b=o+1|0;b=(b>>>0)%3|0?b:o-2|0}if((a|0)==(i|0)|(b|0)==(i|0)|((i|0)!=-1&F[F[q+12>>2]+(i<<2)>>2]!=-1|(a|0)==(b|0))){break l}if(!d&F[F[q+12>>2]+(a<<2)>>2]!=-1){break l}d=-1;o=F[q+12>>2];q=-1;ba:{if((b|0)==-1){break ba}if(F[o+(b<<2)>>2]!=-1){break l}g=b+1|0;g=(g>>>0)%3|0?g:b-2|0;q=-1;if((g|0)==-1){break ba}q=F[k+(g<<2)>>2]}g=L(m,3);F[j>>2]=g;F[o+(g<<2)>>2]=i;F[o+(i<<2)>>2]=g;g=F[j>>2]+1|0;F[o+(g<<2)>>2]=a;F[o+(a<<2)>>2]=g;a=F[j>>2]+2|0;F[o+(a<<2)>>2]=b;F[o+(b<<2)>>2]=a;a=F[j>>2];F[k+(a<<2)>>2]=f;b=a+1|0;g=k+(b<<2)|0;F[g>>2]=q;o=a+2|0;i=k+(o<<2)|0;F[i>>2]=n;a=F[h+120>>2];f=b?f:-1;n=a+(f>>>3&536870908)|0;k=F[n>>2];K=n,M=oi(f)&k,F[K>>2]=M;d=(b|0)!=-1?F[g>>2]:d;b=a+(d>>>3&536870908)|0;f=F[b>>2];K=b,M=oi(d)&f,F[K>>2]=M;b=-1;b=(o|0)!=-1?F[i>>2]:b;a=a+(b>>>3&536870908)|0;f=F[a>>2];K=a,M=oi(b)&f,F[K>>2]=M;D[j+88|0]=1;wd(e,j+88|0);Ma(l,j);m=m+1|0;f=F[j+64>>2];break _}b=F[h+64>>2];a=F[h+68>>2];if((b|0)==a<<5){if((b+1|0)<0){break h}if(b>>>0<=1073741822){a=a<<6;b=(b&-32)+32|0;a=a>>>0>b>>>0?a:b}else{a=2147483647}$a(e,a);b=F[h+64>>2]}F[h+64>>2]=b+1;a=F[h+60>>2]+(b>>>3&536870908)|0;d=F[a>>2];K=a,M=oi(b)&d,F[K>>2]=M;b=F[h+76>>2];if((b|0)!=F[h+80>>2]){F[b>>2]=i;F[h+76>>2]=b+4;break _}g=F[l>>2];a=b-g|0;o=a>>2;d=o+1|0;if(d>>>0>=1073741824){break g}n=a>>>1|0;n=a>>>0>=2147483644?1073741823:d>>>0>>0?n:d;if(n){if(n>>>0>=1073741824){break j}a=ka(n<<2)}else{a=0}d=a+(o<<2)|0;F[d>>2]=i;o=d+4|0;if((b|0)!=(g|0)){while(1){d=d-4|0;b=b-4|0;F[d>>2]=F[b>>2];if((b|0)!=(g|0)){continue}break}}F[h+80>>2]=a+(n<<2);F[h+76>>2]=o;F[h+72>>2]=d;if(!g){break _}ja(g)}if((c|0)!=(f|0)){continue}break}a=F[h+8>>2]}g=-1;if(((F[a+4>>2]-F[a>>2]>>2>>>0)/3|0)!=(m|0)){break l}g=F[a+28>>2]-F[a+24>>2]>>2;c=F[j+24>>2];n=F[j+28>>2];if((c|0)==(n|0)){break k}while(1){f=F[c>>2];e=F[a+24>>2];b=g-1|0;d=e+(b<<2)|0;if(F[d>>2]==-1){while(1){b=g-2|0;g=g-1|0;d=e+(b<<2)|0;if(F[d>>2]==-1){continue}break}}if(b>>>0>=f>>>0){F[j>>2]=a;d=F[d>>2];D[j+12|0]=1;F[j+8>>2]=d;F[j+4>>2]=d;if((d|0)!=-1){while(1){a=F[F[h+8>>2]>>2]+(d<<2)|0;if(F[a>>2]!=(b|0)){g=-1;break l}F[a>>2]=f;nc(j);d=F[j+8>>2];if((d|0)!=-1){continue}break}a=F[h+8>>2]}m=F[a+24>>2];e=m+(b<<2)|0;if((f|0)!=-1){F[m+(f<<2)>>2]=F[e>>2]}F[e>>2]=-1;e=1<>2];f=m+(f>>>3&536870908)|0;d=1<>>3&536870908)|0;if(d&F[m>>2]){b=e|F[f>>2]}else{b=F[f>>2]&(e^-1)}F[f>>2]=b;F[m>>2]=F[m>>2]&(d^-1);g=g-1|0}c=c+4|0;if((n|0)!=(c|0)){continue}break}}c=F[j+24>>2]}if(c){ja(c)}a=F[j+48>>2];if(a){while(1){c=F[a>>2];ja(a);a=c;if(a){continue}break}}a=F[j+40>>2];F[j+40>>2]=0;if(a){ja(a)}a=F[j+64>>2];if(a){F[j+68>>2]=a;ja(a)}Z=j+96|0;a=g;break f}oa();v()}na();v()}na();v()}na();v()}b=a;if((a|0)==-1){break e}a=C;c=F[a+16>>2];f=c+F[a>>2]|0;c=F[a+8>>2]-c|0;a=F[F[h+4>>2]+32>>2];E[a+38>>1]=H[a+38>>1];F[a>>2]=f;F[a+16>>2]=0;F[a+20>>2]=0;F[a+8>>2]=c;F[a+12>>2]=0;ca:{if(F[h+216>>2]==F[h+220>>2]){break ca}a=F[h+8>>2];if(F[a+4>>2]==F[a>>2]){break ca}c=0;while(1){if(Ad(h,c)){c=c+3|0;a=F[h+8>>2];if(c>>>0>2]-F[a>>2]>>2>>>0){continue}break ca}break}break e}if(G[h+308|0]){D[h+308|0]=0;f=F[h+292>>2];a=0;e=F[h+304>>2]+7|0;a=e>>>0<7?1:a;c=a>>>3|0;m=a<<29|e>>>3;a=m+F[h+288>>2]|0;e=c+f|0;F[h+288>>2]=a;F[h+292>>2]=a>>>0>>0?e+1|0:e}c=F[h+216>>2];if((c|0)!=F[h+220>>2]){a=0;while(1){e=L(a,144);Zc((e+c|0)+4|0,F[h+8>>2]);f=F[y>>2];m=f+e|0;c=F[m+132>>2];m=F[m+136>>2];if((c|0)!=(m|0)){while(1){Xc((e+F[y>>2]|0)+4|0,F[c>>2]);c=c+4|0;if((m|0)!=(c|0)){continue}break}f=F[y>>2]}if(!Yc((f+e|0)+4|0)){break e}a=a+1|0;c=F[h+216>>2];if(a>>>0<(F[h+220>>2]-c|0)/144>>>0){continue}break}}a=F[h+8>>2];Hb(h+184|0,F[a+28>>2]-F[a+24>>2]>>2);f=F[h+216>>2];if((f|0)!=F[h+220>>2]){c=0;while(1){a=L(c,144)+f|0;f=F[a+60>>2]-F[a+56>>2]>>2;e=a+104|0;a=F[h+8>>2];a=F[a+28>>2]-F[a+24>>2]>>2;Hb(e,(a|0)<(f|0)?f:a);c=c+1|0;f=F[h+216>>2];if(c>>>0<(F[h+220>>2]-f|0)/144>>>0){continue}break}}J=zd(h,b)}}Z=t- -64|0;return J|0}function Cf(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,E=0,H=0,I=0,J=0,K=0,M=0,N=0,O=0;B=c;c=0;m=Z-96|0;Z=m;l=m+16|0;ma(l,0,76);F[m+92>>2]=-1;F[m+8>>2]=0;F[m>>2]=0;F[m+4>>2]=0;r=Z-16|0;Z=r;F[l+68>>2]=0;F[l+72>>2]=0;F[l>>2]=b;s=Z-16|0;Z=s;u=b;a=F[b+20>>2];a:{if((F[b+24>>2]-a|0)<=0){break a}a=F[a>>2];if((a|0)==-1){break a}c=F[F[u+8>>2]+(a<<2)>>2]}b:{c:{d:{if(!c){a=0;break d}a=F[u+100>>2];e=F[u+96>>2];F[s+8>>2]=0;F[s>>2]=0;F[s+4>>2]=0;f=a-e|0;b=(f|0)/12|0;e:{if((a|0)==(e|0)){break e}if(b>>>0>=357913942){break c}d=ka(f);F[s>>2]=d;F[s+8>>2]=d+L(b,12);a=0;n=d;f=f-12|0;d=(f-((f>>>0)%12|0)|0)+12|0;f=ma(n,0,d);F[s+4>>2]=d+f;if(G[c+84|0]){c=b>>>0<=1?1:b;h=c&1;if(b>>>0>=2){g=c&-2;c=0;while(1){d=L(a,12);b=d+e|0;i=F[b+4>>2];j=F[b>>2];d=d+f|0;F[d+8>>2]=F[b+8>>2];F[d>>2]=j;F[d+4>>2]=i;d=L(a|1,12);b=d+e|0;i=F[b+4>>2];j=F[b>>2];d=d+f|0;F[d+8>>2]=F[b+8>>2];F[d>>2]=j;F[d+4>>2]=i;a=a+2|0;c=c+2|0;if((g|0)!=(c|0)){continue}break}}if(!h){break e}b=L(a,12);a=b+e|0;c=F[a+4>>2];e=F[a>>2];b=b+f|0;F[b+8>>2]=F[a+8>>2];F[b>>2]=e;F[b+4>>2]=c;break e}h=b>>>0<=1?1:b;a=F[c+68>>2];c=0;while(1){d=L(c,12);b=d+e|0;g=F[a+(F[b>>2]<<2)>>2];i=F[a+(F[b+4>>2]<<2)>>2];d=d+f|0;F[d+8>>2]=F[a+(F[b+8>>2]<<2)>>2];F[d+4>>2]=i;F[d>>2]=g;c=c+1|0;if((h|0)!=(c|0)){continue}break}}d=0;H=Z-16|0;Z=H;h=ka(88);Zb(h);C=Z-16|0;Z=C;F[h+80>>2]=0;F[h+84>>2]=0;a=F[h+76>>2];F[h+76>>2]=0;if(a){ja(a)}F[h+68>>2]=0;F[h+72>>2]=0;b=h- -64|0;a=F[b>>2];F[b>>2]=0;if(a){ja(a)}g=F[s+4>>2];b=F[s>>2];c=(g-b|0)/12|0;a=L(c,3);f=F[h>>2];e=F[h+4>>2]-f>>2;f:{if(a>>>0>e>>>0){nd(h,a-e|0);g=F[s+4>>2];b=F[s>>2];c=(g-b|0)/12|0;break f}if(a>>>0>=e>>>0){break f}F[h+4>>2]=f+(a<<2)}g:{if((b|0)==(g|0)){break g}e=c>>>0<=1?1:c;g=e&1;a=F[h>>2];if(c>>>0>=2){i=e&-2;c=0;while(1){e=L(d,12);j=e+a|0;f=b+e|0;F[j>>2]=F[f>>2];F[a+(e|4)>>2]=F[f+4>>2];F[j+8>>2]=F[f+8>>2];f=L(d|1,12);e=f+a|0;f=b+f|0;F[e>>2]=F[f>>2];F[e+4>>2]=F[f+4>>2];F[e+8>>2]=F[f+8>>2];d=d+2|0;c=c+2|0;if((i|0)!=(c|0)){continue}break}}if(!g){break g}c=L(d,12);a=c+a|0;b=b+c|0;F[a>>2]=F[b>>2];F[a+4>>2]=F[b+4>>2];F[a+8>>2]=F[b+8>>2]}F[C+12>>2]=-1;a=0;e=0;g=0;f=Z-32|0;Z=f;h:{i:{w=C+12|0;j:{if(!w){break j}c=F[h+4>>2];j=F[h>>2];d=c-j|0;i=d>>2;n=F[h+12>>2];b=F[h+16>>2]-n>>2;k:{if(i>>>0>b>>>0){ab(h+12|0,i-b|0,10228);c=F[h+4>>2];j=F[h>>2];d=c-j|0;i=d>>2;break k}if(b>>>0<=i>>>0){break k}F[h+16>>2]=n+(i<<2)}F[f+24>>2]=0;F[f+16>>2]=0;F[f+20>>2]=0;b=(c|0)==(j|0);if(!b){if((d|0)<0){break i}e=ka(d);F[f+20>>2]=e;F[f+16>>2]=e;F[f+24>>2]=(i<<2)+e}l:{m:{n:{o:{p:{if(d){while(1){i=F[(a<<2)+j>>2];b=F[f+20>>2]-e>>2;q:{if(i>>>0>>0){break q}F[f>>2]=0;d=i+1|0;if(d>>>0>b>>>0){Fa(f+16|0,d-b|0,f);j=F[h>>2];c=F[h+4>>2];e=F[f+16>>2];break q}if(b>>>0<=d>>>0){break q}F[f+20>>2]=(d<<2)+e}b=(i<<2)+e|0;F[b>>2]=F[b>>2]+1;a=a+1|0;d=c-j|0;i=d>>2;if(a>>>0>>0){continue}break}break p}d=0;if(!b){break o}break n}if((c|0)==(j|0)){d=0;break n}if(d>>>0>=2147483645){break m}}d=ka(d<<1);ma(d,255,i<<3)}F[f+8>>2]=0;F[f>>2]=0;F[f+4>>2]=0;b=F[f+20>>2];a=b-e|0;t=a>>2;r:{s:{if((b|0)==(e|0)){break s}if((a|0)<0){break r}q=ka(a);F[f>>2]=q;F[f+8>>2]=(t<<2)+q;b=ma(q,0,a);F[f+4>>2]=b+a;c=t>>>0<=1?1:t;n=c&3;a=0;if(c-1>>>0>=3){o=c&-4;while(1){c=g<<2;F[c+b>>2]=a;x=c|4;a=F[c+e>>2]+a|0;F[x+b>>2]=a;y=c|8;a=a+F[e+x>>2]|0;F[y+b>>2]=a;c=c|12;a=a+F[e+y>>2]|0;F[c+b>>2]=a;a=a+F[c+e>>2]|0;g=g+4|0;p=p+4|0;if((o|0)!=(p|0)){continue}break}}if(!n){break s}while(1){c=g<<2;F[c+b>>2]=a;g=g+1|0;a=F[c+e>>2]+a|0;k=k+1|0;if((n|0)!=(k|0)){continue}break}}if(!i){break l}x=F[h+40>>2];y=F[h+12>>2];n=0;while(1){I=n<<2;a=I+j|0;k=-1;c=n+1|0;b=(c>>>0)%3|0?c:n-2|0;if((b|0)!=-1){k=F[(b<<2)+j>>2]}b=F[a>>2];t:{u:{if(!((n>>>0)%3|0)){p=-1;a=n+2|0;if((a|0)!=-1){p=F[(a<<2)+j>>2]}if(!((b|0)==(k|0)|(b|0)==(p|0))&(k|0)!=(p|0)){break u}x=x+1|0;F[h+40>>2]=x;c=n+3|0;break t}p=F[a-4>>2]}a=p<<2;A=F[a+e>>2];v:{w:{if((A|0)<=0){break w}a=F[a+q>>2];g=0;while(1){o=(a<<3)+d|0;z=F[o>>2];if((z|0)==-1){break w}x:{if((k|0)!=(z|0)){break x}o=F[o+4>>2];if((o|0)!=-1){z=F[(o<<2)+j>>2]}else{z=-1}if((z|0)==(b|0)){break x}while(1){y:{b=a;g=g+1|0;if((A|0)<=(g|0)){break y}a=b+1|0;J=(a<<3)+d|0;z=F[J>>2];K=(b<<3)+d|0;F[K+4>>2]=F[J+4>>2];F[K>>2]=z;if((z|0)!=-1){continue}}break}F[(b<<3)+d>>2]=-1;if((o|0)==-1){break w}F[y+I>>2]=o;F[y+(o<<2)>>2]=n;break v}a=a+1|0;g=g+1|0;if((A|0)!=(g|0)){continue}break}}a=k<<2;k=F[a+e>>2];if((k|0)<=0){break v}a=F[a+q>>2];g=0;while(1){b=(a<<3)+d|0;if(F[b>>2]==-1){F[b>>2]=p;F[b+4>>2]=n;break v}a=a+1|0;g=g+1|0;if((k|0)!=(g|0)){continue}break}}}n=c;if(n>>>0>>0){continue}break}break l}break i}na();v()}F[w>>2]=t;if(q){ja(q)}if(d){ja(d)}a=F[f+16>>2];if(!a){break j}F[f+20>>2]=a;ja(a)}Z=f+32|0;x=(w|0)!=0;if(x){k=Z-32|0;Z=k;a=F[h>>2];g=F[h+4>>2];F[k+24>>2]=0;F[k+16>>2]=0;F[k+20>>2]=0;if((a|0)==(g|0)){c=g}else{a=g-a|0;if((a|0)<0){break i}a=a>>2;b=(a-1>>>5|0)+1|0;c=ka(b<<2);F[k+24>>2]=b;F[k+20>>2]=0;F[k+16>>2]=c;Yb(k+16|0,a);g=F[h>>2];c=F[h+4>>2]}F[k+8>>2]=0;F[k>>2]=0;while(1){z:{o=0;i=0;if((c|0)==(g|0)){break z}while(1){b=F[k+16>>2];A:{if(F[b+(i>>>3&536870908)>>2]>>>i&1){break A}c=F[k>>2];F[k+4>>2]=c;e=F[h+12>>2];a=i;while(1){B:{f=a+1|0;d=a;a=(f>>>0)%3|0?f:a-2|0;if((a|0)==-1){break B}a=F[e+(a<<2)>>2];if((a|0)==-1){break B}f=a+1|0;a=(f>>>0)%3|0?f:a-2|0;if((i|0)==(a|0)|(a|0)==-1){break B}if(!(F[b+(a>>>3&536870908)>>2]>>>a&1)){continue}}break}j=d;C:{D:{E:{while(1){a=F[k+16>>2]+(j>>>3&536870908)|0;F[a>>2]=F[a>>2]|1<>>0)%3|0?a:j-2|0;g=F[h>>2];y=(j>>>0)%3|0;b=(y?-1:2)+j|0;n=F[k>>2];A=(n|0)==(c|0);F:{if(A){break F}w=F[(f<<2)+g>>2];q=F[h+12>>2];a=n;if((b|0)!=-1){e=q+(b<<2)|0;while(1){G:{if((w|0)!=F[a>>2]){break G}p=F[a+4>>2];t=F[e>>2];if((p|0)==(t|0)){break G}e=b;c=-1;a=-1;if((p|0)==-1){break C}break D}a=a+8|0;if((c|0)!=(a|0)){continue}break}break F}while(1){if((w|0)==F[a>>2]){t=-1;e=-1;p=F[a+4>>2];if((p|0)!=-1){break D}}a=a+8|0;if((c|0)!=(a|0)){continue}break}}b=F[(b<<2)+g>>2];H:{if(F[k+8>>2]!=(c|0)){F[c>>2]=b;F[c+4>>2]=f;c=c+8|0;F[k+4>>2]=c;break H}a=c-n|0;p=a>>3;e=p+1|0;if(e>>>0>=536870912){break i}g=a>>>2|0;g=a>>>0>=2147483640?536870911:e>>>0>>0?g:e;if(g){if(g>>>0>=536870912){break E}e=ka(g<<3)}else{e=0}a=e+(p<<3)|0;F[a>>2]=b;F[a+4>>2]=f;b=a+8|0;if(!A){while(1){c=c-8|0;f=F[c+4>>2];a=a-8|0;F[a>>2]=F[c>>2];F[a+4>>2]=f;if((c|0)!=(n|0)){continue}break}c=F[k>>2]}F[k+8>>2]=e+(g<<3);F[k+4>>2]=b;F[k>>2]=a;if(c){ja(c)}c=b}I:{J:{if(y){a=j-1|0;break J}a=j+2|0;if((a|0)==-1){break I}}a=F[F[h+12>>2]+(a<<2)>>2];if((a|0)==-1){break I}j=a+((a>>>0)%3|0?-1:2)|0;if((d|0)==(j|0)){break I}if((j|0)!=-1){continue}}break}g=F[h>>2];break A}oa();v()}c=F[q+(p<<2)>>2];b=e;a=p}if((t|0)!=-1){F[q+(t<<2)>>2]=-1}if((c|0)!=-1){F[q+(c<<2)>>2]=-1}F[q+(b<<2)>>2]=-1;F[q+(a<<2)>>2]=-1;o=1}i=i+1|0;c=F[h+4>>2];if(i>>>0>2>>>0){continue}break}if(o){continue}}break}a=F[k>>2];if(a){ja(a)}a=F[k+16>>2];if(a){ja(a)}Z=k+32|0;n=0;g=Z-32|0;Z=g;e=F[C+12>>2];F[h+36>>2]=e;p=h+24|0;b=F[h+24>>2];a=F[h+28>>2]-b>>2;K:{L:{if(a>>>0>>0){ab(p,e-a|0,10228);F[g+24>>2]=0;F[g+16>>2]=0;F[g+20>>2]=0;break L}if(a>>>0>e>>>0){F[h+28>>2]=b+(e<<2)}F[g+24>>2]=0;F[g+16>>2]=0;F[g+20>>2]=0;if(!e){break K}}if((e|0)<0){break i}a=(e-1>>>5|0)+1|0;b=ka(a<<2);F[g+24>>2]=a;F[g+20>>2]=0;F[g+16>>2]=b;Yb(g+16|0,e)}a=F[h>>2];b=F[h+4>>2];F[g+8>>2]=0;F[g>>2]=0;F[g+4>>2]=0;M:{if((a|0)==(b|0)){a=b}else{a=b-a|0;if((a|0)<0){break i}a=a>>2;b=(a-1>>>5|0)+1|0;c=ka(b<<2);F[g+8>>2]=b;F[g+4>>2]=0;F[g>>2]=c;Yb(g,a);b=F[h>>2];a=F[h+4>>2]}if(a-b>>>0<12){break M}N:{while(1){q=L(n,3);d=(q<<2)+b|0;f=F[d>>2];c=-1;i=q+1|0;if((i|0)!=-1){c=F[(i<<2)+b>>2]}O:{if((c|0)==(f|0)){break O}i=f;f=F[d+8>>2];if((i|0)==(f|0)|(c|0)==(f|0)){break O}k=0;i=F[g>>2];while(1){f=k+q|0;if(!(F[(f>>>3&536870908)+i>>2]>>>f&1)){a=F[(f<<2)+b>>2];c=1<>2];b=a>>>5|0;i=F[d+(b<<2)>>2];t=c&i;if(t){c=F[h+28>>2];P:{if((c|0)!=F[h+32>>2]){F[c>>2]=-1;F[h+28>>2]=c+4;break P}i=F[p>>2];b=c-i|0;o=b>>2;d=o+1|0;if(d>>>0>=1073741824){break i}j=b>>>1|0;j=b>>>0>=2147483644?1073741823:d>>>0>>0?j:d;if(j){if(j>>>0>=1073741824){break N}b=ka(j<<2)}else{b=0}d=b+(o<<2)|0;F[d>>2]=-1;o=d+4|0;if((c|0)!=(i|0)){while(1){d=d-4|0;c=c-4|0;F[d>>2]=F[c>>2];if((c|0)!=(i|0)){continue}break}}F[h+32>>2]=b+(j<<2);F[h+28>>2]=o;F[h+24>>2]=d;if(!i){break P}ja(i)}c=F[h+52>>2];Q:{if((c|0)!=F[h+56>>2]){F[c>>2]=a;F[h+52>>2]=c+4;break Q}i=F[h+48>>2];b=c-i|0;o=b>>2;d=o+1|0;if(d>>>0>=1073741824){break i}j=b>>>1|0;j=b>>>0>=2147483644?1073741823:d>>>0>>0?j:d;if(j){if(j>>>0>=1073741824){break N}b=ka(j<<2)}else{b=0}d=b+(o<<2)|0;F[d>>2]=a;a=d+4|0;if((c|0)!=(i|0)){while(1){d=d-4|0;c=c-4|0;F[d>>2]=F[c>>2];if((c|0)!=(i|0)){continue}break}}F[h+56>>2]=b+(j<<2);F[h+52>>2]=a;F[h+48>>2]=d;if(!i){break Q}ja(i)}c=F[g+20>>2];a=F[g+24>>2];if((c|0)==a<<5){if((c+1|0)<0){break i}b=g+16|0;if(c>>>0<=1073741822){a=a<<6;c=(c&-32)+32|0;a=a>>>0>c>>>0?a:c}else{a=2147483647}$a(b,a);c=F[g+20>>2]}F[g+20>>2]=c+1;d=F[g+16>>2];a=d+(c>>>3&536870908)|0;b=F[a>>2];N=a,O=oi(c)&b,F[N>>2]=O;c=1<>>5|0;i=F[(b<<2)+d>>2];a=e;e=a+1|0}F[(b<<2)+d>>2]=c|i;o=F[h+24>>2]+(a<<2)|0;j=F[h+12>>2];b=F[h>>2];i=F[g>>2];c=f;R:{S:{T:{while(1){if((c|0)==-1){break T}d=(c>>>3&536870908)+i|0;F[d>>2]=F[d>>2]|1<>2]=c;if(t){F[(c<<2)+b>>2]=a}w=c+1|0;c=(w>>>0)%3|0?w:c-2|0;d=-1;U:{if((c|0)==-1){break U}c=F[j+(c<<2)>>2];d=-1;if((c|0)==-1){break U}d=c+1|0;d=(d>>>0)%3|0?d:c-2|0}c=d;if((f|0)!=(c|0)){continue}break}if((f|0)!=-1){break R}c=1;break S}if((f>>>0)%3|0){c=f-1|0;break S}c=f+2|0;if((c|0)==-1){break R}}c=F[j+(c<<2)>>2];if((c|0)==-1){break R}V:{if((c>>>0)%3|0){c=c-1|0;break V}c=c+2|0;if((c|0)==-1){break R}}f=F[h+12>>2];b=F[h>>2];while(1){d=(c>>>3&536870908)+i|0;F[d>>2]=F[d>>2]|1<>2]=a}W:{if((c>>>0)%3|0){c=c-1|0;break W}c=c+2|0;if((c|0)==-1){break R}}c=F[f+(c<<2)>>2];if((c|0)==-1){break R}c=c+((c>>>0)%3|0?-1:2)|0;if((c|0)!=-1){continue}break}}}k=k+1|0;if((k|0)!=3){continue}break}b=F[h>>2];a=F[h+4>>2]}n=n+1|0;if(n>>>0<(a-b>>2>>>0)/3>>>0){continue}break}break M}oa();v()}c=0;F[h+44>>2]=0;a=F[g+16>>2];b=F[g+20>>2];if(b){e=b&31;b=(b>>>3&536870908)+a|0;d=a;i=0;while(1){if(!(F[d>>2]>>>c&1)){i=i+1|0;F[h+44>>2]=i}f=(c|0)==31;c=f?0:c+1|0;d=(f<<2)+d|0;if((b|0)!=(d|0)|(c|0)!=(e|0)){continue}break}}b=F[g>>2];if(b){ja(b);a=F[g+16>>2]}if(a){ja(a)}Z=g+32|0}Z=C+16|0;if(!x){F[H+8>>2]=0;Za(h);h=0}Z=H+16|0;a=h;break h}na();v()}b=F[s>>2];if(!b){break d}F[s+4>>2]=b;ja(b)}Z=s+16|0;break b}na();v()}c=F[l+4>>2];b=a;F[l+4>>2]=a;if(c){Za(c);b=F[l+4>>2]}X:{if(!b){break X}a=F[u+100>>2];c=F[u+96>>2];D[r+12|0]=0;Ea(l+56|0,(a-c|0)/12|0,r+12|0);a=F[u+100>>2];c=F[u+96>>2];if((a|0)==(c|0)){break X}while(1){if(!(F[F[l+56>>2]+(E>>>3&536870908)>>2]>>>E&1)){a=L(E,3);Vb(l,0,a);c=F[l+8>>2];e=F[l+12>>2];Vb(l,1,a+1|0);f=F[l+20>>2];d=F[l+24>>2];Vb(l,2,a+2|0);n=(c|0)==(e|0)?-1:0;a=d-f>>2;c=e-c>>2;e=a>>>0>c>>>0;c=F[l+36>>2]-F[l+32>>2]>>2>>>0>(e?a:c)>>>0?2:e?1:n;Y:{if(F[l+68>>2]<=0){break Y}F[r+12>>2]=F[l+76>>2];F[r+8>>2]=m;Qa(r+8|0,r+12|0);a=F[((c<<2)+l|0)+44>>2];if((a|0)<0){a=-1}else{e=(a>>>0)/3|0;a=F[(F[F[l>>2]+96>>2]+L(e,12)|0)+(a-L(e,3)<<2)>>2]}F[r+12>>2]=a;F[r+8>>2]=m;Qa(r+8|0,r+12|0);e=F[l+72>>2];F[l+72>>2]=e+2;if(!(e&1)){break Y}F[r+12>>2]=a;F[r+8>>2]=m;Qa(r+8|0,r+12|0);F[l+72>>2]=F[l+72>>2]+1}d=0;e=Z-16|0;Z=e;F[l+68>>2]=F[l+68>>2]+1;a=L(c,12)+l|0;a=F[a+12>>2]-F[a+8>>2]|0;if((a|0)>0){a=a>>>2|0;h=a>>>0<=1?1:a;c=F[((c<<2)+l|0)+44>>2];while(1){a=c;f=(a>>>0)/3|0;c=(a|0)==-1;g=c?-1:f;i=F[l+56>>2]+(g>>>3&536870908)|0;F[i>>2]=F[i>>2]|1<>2]=F[l+72>>2]+1;Z:{_:{$:{aa:{ba:{if(!d){ca:{if((a|0)>=0){F[e+12>>2]=F[(F[F[l>>2]+96>>2]+L(f,12)|0)+((a>>>0)%3<<2)>>2];F[e+8>>2]=m;Qa(e+8|0,e+12|0);break ca}F[e+12>>2]=-1;F[e+8>>2]=m;Qa(e+8|0,e+12|0);if(c){break ba}}c=-1;f=a+1|0;f=(f>>>0)%3|0?f:a-2|0;if((f|0)>=0){g=(f>>>0)/3|0;f=F[(F[F[l>>2]+96>>2]+L(g,12)|0)+(f-L(g,3)<<2)>>2]}else{f=-1}F[e+12>>2]=f;F[e+8>>2]=m;Qa(e+8|0,e+12|0);f=((a>>>0)%3|0?-1:2)+a|0;if((f|0)<0){break aa}c=(f>>>0)/3|0;c=F[(F[F[l>>2]+96>>2]+L(c,12)|0)+(f-L(c,3)<<2)>>2];break aa}c=(a|0)<0?-1:F[(F[F[l>>2]+96>>2]+L(f,12)|0)+((a>>>0)%3<<2)>>2];F[l+76>>2]=c;F[e+12>>2]=c;F[e+8>>2]=m;Qa(e+8|0,e+12|0);if(d&1){c=-1;if((a|0)==-1){break Z}if((L(f,3)|0)!=(a|0)){a=a-1|0;break _}a=a+2|0;break $}c=-1;if((a|0)==-1){break Z}c=a+1|0;a=(c>>>0)%3|0?c:a-2|0;break $}c=-1;F[e+12>>2]=-1;F[e+8>>2]=m;Qa(e+8|0,e+12|0)}F[l+76>>2]=c;F[e+12>>2]=c;F[e+8>>2]=m;Qa(e+8|0,e+12|0)}c=-1;if((a|0)==-1){break Z}}c=F[F[F[l+4>>2]+12>>2]+(a<<2)>>2]}d=d+1|0;if((h|0)!=(d|0)){continue}break}}Z=e+16|0;c=F[u+96>>2];a=F[u+100>>2]}E=E+1|0;if(E>>>0<(a-c|0)/12>>>0){continue}break}}Z=r+16|0;da:{if(b){a=F[B>>2];if(a){F[B+4>>2]=a;ja(a)}F[B>>2]=F[m>>2];F[B+4>>2]=F[m+4>>2];F[B+8>>2]=F[m+8>>2];M=F[m+84>>2];break da}a=F[m>>2];if(!a){break da}F[m+4>>2]=a;ja(a)}a=F[m+72>>2];if(a){ja(a)}a=F[m+48>>2];if(a){F[m+52>>2]=a;ja(a)}a=F[m+36>>2];if(a){F[m+40>>2]=a;ja(a)}a=F[m+24>>2];if(a){F[m+28>>2]=a;ja(a)}a=F[m+20>>2];F[m+20>>2]=0;if(a){Za(a)}Z=m+96|0;return M|0}function sf(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;i=b;a=0;b=0;a:{b:{switch(d-1|0){case 0:j=F[i+80>>2];h=G[c+24|0];c:{if((L(j,h)|0)!=(e|0)){break c}d=F[c+28>>2]!=1;b=G[c+84|0];if(!(d|!b)){la(f,F[F[c>>2]>>2]+F[c+48>>2]|0,e);b=1;break c}if(h){a=ka(h);ma(a,0,h)}d:{if(!j){b=1;break d}if(!d){if(h){d=0;e=0;while(1){i=d+f|0;k=F[F[c>>2]>>2];m=F[c+48>>2];g=F[c+40>>2];b=ki(g,F[c+44>>2],G[c+84|0]?e:F[F[c+68>>2]+(e<<2)>>2],0);n=b;b=b+m|0;la(i,la(a,b+k|0,g),h);d=d+h|0;b=1;e=e+1|0;if((j|0)!=(e|0)){continue}break}break d}if(b){b=1;h=F[c>>2];e=F[c+48>>2];f=F[c+40>>2];i=F[c+44>>2];if((j|0)!=1){g=j&-2;c=0;d=0;while(1){k=F[h>>2];m=ki(f,i,c,0)+e|0;k=la(a,k+m|0,f);m=F[h>>2];n=ki(f,i,c|1,0)+e|0;la(k,m+n|0,f);c=c+2|0;d=d+2|0;if((g|0)!=(d|0)){continue}break}g=c}if(!(j&1)){break d}c=F[h>>2];d=ki(g,0,f,i)+e|0;la(a,c+d|0,f);break d}b=1;h=F[c>>2];e=F[c+48>>2];g=F[c+68>>2];f=F[c+40>>2];i=F[c+44>>2];c=0;if((j|0)!=1){k=j&-2;d=0;while(1){m=F[h>>2];n=c<<2;l=ki(f,i,F[n+g>>2],0)+e|0;m=la(a,m+l|0,f);l=F[h>>2];n=ki(f,i,F[g+(n|4)>>2],0)+e|0;la(m,l+n|0,f);c=c+2|0;d=d+2|0;if((k|0)!=(d|0)){continue}break}}if(!(j&1)){break d}d=F[h>>2];c=ki(f,i,F[g+(c<<2)>>2],0)+e|0;la(a,c+d|0,f);break d}b=0;if(!h){d=0;while(1){if(!Cb(c,G[c+84|0]?d:F[F[c+68>>2]+(d<<2)>>2],D[c+24|0],a)){break d}d=d+1|0;b=j>>>0<=d>>>0;if((d|0)!=(j|0)){continue}break}break d}d=0;e=0;while(1){if(!Cb(c,G[c+84|0]?e:F[F[c+68>>2]+(e<<2)>>2],D[c+24|0],a)){break d}la(d+f|0,a,h);d=d+h|0;e=e+1|0;b=j>>>0<=e>>>0;if((e|0)!=(j|0)){continue}break}}if(!a){break c}ja(a)}break a;case 2:n=G[c+24|0];l=n<<1;j=F[i+80>>2];e:{if((L(l,j)|0)!=(e|0)){break e}i=F[c+28>>2]!=3;d=G[c+84|0];if(!(i|!d)){la(f,F[F[c>>2]>>2]+F[c+48>>2]|0,e);a=1;break e}f:{if(!n){e=0;break f}e=ka(l);ma(e,0,l)}g:{if(!j){a=1;break g}if(!i){o=F[c+68>>2];k=F[c>>2];b=F[c+48>>2];i=F[c+40>>2];m=F[c+44>>2];if(n){if(!d){c=0;d=0;while(1){a=1;g=F[k>>2];p=ki(i,m,F[o+(d<<2)>>2],0)+b|0;la((c<<1)+f|0,la(e,g+p|0,i),l);c=c+n|0;d=d+1|0;if((j|0)!=(d|0)){continue}break}break g}c=0;while(1){a=1;o=F[k>>2];p=ki(g,h,i,m)+b|0;la((c<<1)+f|0,la(e,o+p|0,i),l);c=c+n|0;d=h;g=g+1|0;d=g?d:d+1|0;h=d;if((j|0)!=(g|0)|d){continue}break}break g}if(!d){a=1;c=0;if((j|0)!=1){f=j&-2;d=0;while(1){h=F[k>>2];g=c<<2;n=ki(i,m,F[g+o>>2],0)+b|0;h=la(e,h+n|0,i);n=F[k>>2];g=ki(i,m,F[o+(g|4)>>2],0)+b|0;la(h,g+n|0,i);c=c+2|0;d=d+2|0;if((f|0)!=(d|0)){continue}break}}if(!(j&1)){break g}d=F[k>>2];b=ki(i,m,F[o+(c<<2)>>2],0)+b|0;la(e,b+d|0,i);break g}n=j&1;a=1;if((j|0)!=1){j=j&-2;f=0;c=0;while(1){d=F[k>>2];l=ki(g,h,i,m)+b|0;d=la(e,d+l|0,i);l=F[k>>2];o=ki(i,m,g|1,h)+b|0;la(d,l+o|0,i);g=g+2|0;h=g>>>0<2?h+1|0:h;f=f+2|0;d=f>>>0<2?c+1|0:c;c=d;if((f|0)!=(j|0)|c){continue}break}}if(!n){break g}c=F[k>>2];b=ki(g,h,i,m)+b|0;la(e,b+c|0,i);break g}if(!n){d=0;while(1){if(!Ab(c,G[c+84|0]?d:F[F[c+68>>2]+(d<<2)>>2],D[c+24|0],e)){break g}d=d+1|0;a=j>>>0<=d>>>0;if((d|0)!=(j|0)){continue}break}break g}d=0;while(1){if(!Ab(c,G[c+84|0]?d:F[F[c+68>>2]+(d<<2)>>2],D[c+24|0],e)){break g}la((b<<1)+f|0,e,l);b=b+n|0;d=d+1|0;a=j>>>0<=d>>>0;if((d|0)!=(j|0)){continue}break}}if(!e){break e}ja(e)}b=a;break a;case 4:l=G[c+24|0];o=l<<2;j=F[i+80>>2];h:{if((L(o,j)|0)!=(e|0)){break h}i=F[c+28>>2]!=5;d=G[c+84|0];if(!(i|!d)){la(f,F[F[c>>2]>>2]+F[c+48>>2]|0,e);b=1;break h}i:{if(!l){e=0;break i}e=ka(o);ma(e,0,o)}b=1;j:{if(!j){break j}if(!i){a=F[c+68>>2];m=F[c>>2];i=F[c+48>>2];k=F[c+40>>2];n=F[c+44>>2];if(l){if(!d){c=0;d=0;while(1){g=F[m>>2];p=ki(k,n,F[a+(d<<2)>>2],0)+i|0;la((c<<2)+f|0,la(e,g+p|0,k),o);c=c+l|0;d=d+1|0;if((j|0)!=(d|0)){continue}break}break j}c=0;while(1){d=F[m>>2];p=ki(g,h,k,n)+i|0;la((c<<2)+f|0,la(e,d+p|0,k),o);c=c+l|0;g=g+1|0;a=g?h:h+1|0;h=a;if((j|0)!=(g|0)|h){continue}break}break j}if(!d){c=0;if((j|0)!=1){f=j&-2;d=0;while(1){h=F[m>>2];g=c<<2;l=ki(k,n,F[g+a>>2],0)+i|0;h=la(e,h+l|0,k);l=F[m>>2];g=ki(k,n,F[a+(g|4)>>2],0)+i|0;la(h,g+l|0,k);c=c+2|0;d=d+2|0;if((f|0)!=(d|0)){continue}break}}if(!(j&1)){break j}d=F[m>>2];a=ki(k,n,F[a+(c<<2)>>2],0)+i|0;la(e,a+d|0,k);break j}l=j&1;if((j|0)!=1){j=j&-2;f=0;c=0;while(1){a=F[m>>2];d=ki(g,h,k,n)+i|0;a=la(e,a+d|0,k);d=F[m>>2];o=ki(k,n,g|1,h)+i|0;la(a,d+o|0,k);d=h;g=g+2|0;h=g>>>0<2?d+1|0:d;f=f+2|0;a=f>>>0<2?c+1|0:c;c=a;if((f|0)!=(j|0)|c){continue}break}}if(!l){break j}a=F[m>>2];c=ki(g,h,k,n)+i|0;la(e,a+c|0,k);break j}b=0;if(!l){d=0;while(1){if(!yb(c,G[c+84|0]?d:F[F[c+68>>2]+(d<<2)>>2],D[c+24|0],e)){break j}d=d+1|0;b=j>>>0<=d>>>0;if((d|0)!=(j|0)){continue}break}break j}d=0;while(1){if(!yb(c,G[c+84|0]?d:F[F[c+68>>2]+(d<<2)>>2],D[c+24|0],e)){break j}la((a<<2)+f|0,e,o);a=a+l|0;d=d+1|0;b=j>>>0<=d>>>0;if((d|0)!=(j|0)){continue}break}}if(!e){break h}ja(e)}break a;case 1:j=F[i+80>>2];h=G[c+24|0];k:{if((L(j,h)|0)!=(e|0)){break k}d=F[c+28>>2]!=2;b=G[c+84|0];if(!(d|!b)){la(f,F[F[c>>2]>>2]+F[c+48>>2]|0,e);b=1;break k}if(h){a=ka(h);ma(a,0,h)}l:{if(!j){b=1;break l}if(!d){if(h){d=0;e=0;while(1){i=d+f|0;k=F[F[c>>2]>>2];m=F[c+48>>2];g=F[c+40>>2];b=ki(g,F[c+44>>2],G[c+84|0]?e:F[F[c+68>>2]+(e<<2)>>2],0);n=b;b=b+m|0;la(i,la(a,b+k|0,g),h);d=d+h|0;b=1;e=e+1|0;if((j|0)!=(e|0)){continue}break}break l}if(b){b=1;h=F[c>>2];e=F[c+48>>2];f=F[c+40>>2];i=F[c+44>>2];if((j|0)!=1){g=j&-2;c=0;d=0;while(1){k=F[h>>2];m=ki(f,i,c,0)+e|0;k=la(a,k+m|0,f);m=F[h>>2];n=ki(f,i,c|1,0)+e|0;la(k,m+n|0,f);c=c+2|0;d=d+2|0;if((g|0)!=(d|0)){continue}break}g=c}if(!(j&1)){break l}c=F[h>>2];d=ki(g,0,f,i)+e|0;la(a,c+d|0,f);break l}b=1;h=F[c>>2];e=F[c+48>>2];g=F[c+68>>2];f=F[c+40>>2];i=F[c+44>>2];c=0;if((j|0)!=1){k=j&-2;d=0;while(1){m=F[h>>2];n=c<<2;l=ki(f,i,F[n+g>>2],0)+e|0;m=la(a,m+l|0,f);l=F[h>>2];n=ki(f,i,F[g+(n|4)>>2],0)+e|0;la(m,l+n|0,f);c=c+2|0;d=d+2|0;if((k|0)!=(d|0)){continue}break}}if(!(j&1)){break l}d=F[h>>2];c=ki(f,i,F[g+(c<<2)>>2],0)+e|0;la(a,c+d|0,f);break l}b=0;if(!h){d=0;while(1){if(!Bb(c,G[c+84|0]?d:F[F[c+68>>2]+(d<<2)>>2],D[c+24|0],a)){break l}d=d+1|0;b=j>>>0<=d>>>0;if((d|0)!=(j|0)){continue}break}break l}d=0;e=0;while(1){if(!Bb(c,G[c+84|0]?e:F[F[c+68>>2]+(e<<2)>>2],D[c+24|0],a)){break l}la(d+f|0,a,h);d=d+h|0;e=e+1|0;b=j>>>0<=e>>>0;if((e|0)!=(j|0)){continue}break}}if(!a){break k}ja(a)}break a;case 3:n=G[c+24|0];l=n<<1;j=F[i+80>>2];m:{if((L(l,j)|0)!=(e|0)){break m}i=F[c+28>>2]!=4;d=G[c+84|0];if(!(i|!d)){la(f,F[F[c>>2]>>2]+F[c+48>>2]|0,e);a=1;break m}n:{if(!n){e=0;break n}e=ka(l);ma(e,0,l)}o:{if(!j){a=1;break o}if(!i){o=F[c+68>>2];k=F[c>>2];b=F[c+48>>2];i=F[c+40>>2];m=F[c+44>>2];if(n){if(!d){c=0;d=0;while(1){a=1;g=F[k>>2];p=ki(i,m,F[o+(d<<2)>>2],0)+b|0;la((c<<1)+f|0,la(e,g+p|0,i),l);c=c+n|0;d=d+1|0;if((j|0)!=(d|0)){continue}break}break o}c=0;while(1){a=1;o=F[k>>2];p=ki(g,h,i,m)+b|0;la((c<<1)+f|0,la(e,o+p|0,i),l);c=c+n|0;d=h;g=g+1|0;d=g?d:d+1|0;h=d;if((j|0)!=(g|0)|d){continue}break}break o}if(!d){a=1;c=0;if((j|0)!=1){f=j&-2;d=0;while(1){h=F[k>>2];g=c<<2;n=ki(i,m,F[g+o>>2],0)+b|0;h=la(e,h+n|0,i);n=F[k>>2];g=ki(i,m,F[o+(g|4)>>2],0)+b|0;la(h,g+n|0,i);c=c+2|0;d=d+2|0;if((f|0)!=(d|0)){continue}break}}if(!(j&1)){break o}d=F[k>>2];b=ki(i,m,F[o+(c<<2)>>2],0)+b|0;la(e,b+d|0,i);break o}n=j&1;a=1;if((j|0)!=1){j=j&-2;f=0;c=0;while(1){d=F[k>>2];l=ki(g,h,i,m)+b|0;d=la(e,d+l|0,i);l=F[k>>2];o=ki(i,m,g|1,h)+b|0;la(d,l+o|0,i);g=g+2|0;h=g>>>0<2?h+1|0:h;f=f+2|0;d=f>>>0<2?c+1|0:c;c=d;if((f|0)!=(j|0)|c){continue}break}}if(!n){break o}c=F[k>>2];b=ki(g,h,i,m)+b|0;la(e,b+c|0,i);break o}if(!n){d=0;while(1){if(!zb(c,G[c+84|0]?d:F[F[c+68>>2]+(d<<2)>>2],D[c+24|0],e)){break o}d=d+1|0;a=j>>>0<=d>>>0;if((d|0)!=(j|0)){continue}break}break o}d=0;while(1){if(!zb(c,G[c+84|0]?d:F[F[c+68>>2]+(d<<2)>>2],D[c+24|0],e)){break o}la((b<<1)+f|0,e,l);b=b+n|0;d=d+1|0;a=j>>>0<=d>>>0;if((d|0)!=(j|0)){continue}break}}if(!e){break m}ja(e)}b=a;break a;case 5:l=G[c+24|0];o=l<<2;j=F[i+80>>2];p:{if((L(o,j)|0)!=(e|0)){break p}i=F[c+28>>2]!=6;d=G[c+84|0];if(!(i|!d)){la(f,F[F[c>>2]>>2]+F[c+48>>2]|0,e);b=1;break p}q:{if(!l){e=0;break q}e=ka(o);ma(e,0,o)}b=1;r:{if(!j){break r}if(!i){a=F[c+68>>2];m=F[c>>2];i=F[c+48>>2];k=F[c+40>>2];n=F[c+44>>2];if(l){if(!d){c=0;d=0;while(1){g=F[m>>2];p=ki(k,n,F[a+(d<<2)>>2],0)+i|0;la((c<<2)+f|0,la(e,g+p|0,k),o);c=c+l|0;d=d+1|0;if((j|0)!=(d|0)){continue}break}break r}c=0;while(1){d=F[m>>2];p=ki(g,h,k,n)+i|0;la((c<<2)+f|0,la(e,d+p|0,k),o);c=c+l|0;g=g+1|0;a=g?h:h+1|0;h=a;if((j|0)!=(g|0)|h){continue}break}break r}if(!d){c=0;if((j|0)!=1){f=j&-2;d=0;while(1){h=F[m>>2];g=c<<2;l=ki(k,n,F[g+a>>2],0)+i|0;h=la(e,h+l|0,k);l=F[m>>2];g=ki(k,n,F[a+(g|4)>>2],0)+i|0;la(h,g+l|0,k);c=c+2|0;d=d+2|0;if((f|0)!=(d|0)){continue}break}}if(!(j&1)){break r}d=F[m>>2];a=ki(k,n,F[a+(c<<2)>>2],0)+i|0;la(e,a+d|0,k);break r}l=j&1;if((j|0)!=1){j=j&-2;f=0;c=0;while(1){a=F[m>>2];d=ki(g,h,k,n)+i|0;a=la(e,a+d|0,k);d=F[m>>2];o=ki(k,n,g|1,h)+i|0;la(a,d+o|0,k);d=h;g=g+2|0;h=g>>>0<2?d+1|0:d;f=f+2|0;a=f>>>0<2?c+1|0:c;c=a;if((f|0)!=(j|0)|c){continue}break}}if(!l){break r}a=F[m>>2];c=ki(g,h,k,n)+i|0;la(e,a+c|0,k);break r}b=0;if(!l){d=0;while(1){if(!xb(c,G[c+84|0]?d:F[F[c+68>>2]+(d<<2)>>2],D[c+24|0],e)){break r}d=d+1|0;b=j>>>0<=d>>>0;if((d|0)!=(j|0)){continue}break}break r}d=0;while(1){if(!xb(c,G[c+84|0]?d:F[F[c+68>>2]+(d<<2)>>2],D[c+24|0],e)){break r}la((a<<2)+f|0,e,o);a=a+l|0;d=d+1|0;b=j>>>0<=d>>>0;if((d|0)!=(j|0)){continue}break}}if(!e){break p}ja(e)}break a;case 8:p=G[c+24|0];q=p<<2;k=F[i+80>>2];s:{if((L(q,k)|0)!=(e|0)){break s}i=F[c+28>>2];t:{if(!p){break t}a=ka(q);d=a;m=q-4|0;l=(m>>>2|0)+1&7;if(l){e=0;while(1){F[d>>2]=-1073741824;d=d+4|0;e=e+1|0;if((l|0)!=(e|0)){continue}break}}if(m>>>0<28){break t}e=(p<<2)+a|0;while(1){F[d+24>>2]=-1073741824;F[d+28>>2]=-1073741824;F[d+16>>2]=-1073741824;F[d+20>>2]=-1073741824;F[d+8>>2]=-1073741824;F[d+12>>2]=-1073741824;F[d>>2]=-1073741824;F[d+4>>2]=-1073741824;d=d+32|0;if((e|0)!=(d|0)){continue}break}}u:{if(!k){b=1;break u}if((i|0)==9){r=F[c+68>>2];l=F[c>>2];i=F[c+48>>2];s=G[c+84|0];m=F[c+44>>2];c=F[c+40>>2];o=c;if(p){e=0;d=0;while(1){h=(e<<2)+f|0;g=F[l>>2];b=ki(c,m,s?d:F[r+(d<<2)>>2],0)+i|0;la(h,la(a,b+g|0,o),q);e=e+p|0;b=1;d=d+1|0;if((k|0)!=(d|0)){continue}break}break u}if(!s){b=1;d=0;if((k|0)!=1){f=k&-2;e=0;while(1){h=F[l>>2];g=d<<2;j=ki(c,m,F[g+r>>2],0)+i|0;h=la(a,h+j|0,o);j=F[l>>2];g=ki(c,m,F[r+(g|4)>>2],0)+i|0;la(h,j+g|0,o);d=d+2|0;e=e+2|0;if((f|0)!=(e|0)){continue}break}}if(!(k&1)){break u}e=F[l>>2];c=ki(c,m,F[r+(d<<2)>>2],0)+i|0;la(a,c+e|0,o);break u}f=k&1;b=1;if((k|0)!=1){k=k&-2;while(1){d=F[l>>2];e=ki(g,h,c,m)+i|0;d=la(a,d+e|0,o);e=F[l>>2];p=ki(c,m,g|1,h)+i|0;la(d,e+p|0,o);g=g+2|0;h=g>>>0<2?h+1|0:h;d=j;e=n+2|0;d=e>>>0<2?d+1|0:d;n=e;j=d;if((e|0)!=(k|0)|d){continue}break}}if(!f){break u}d=F[l>>2];c=ki(g,h,c,m)+i|0;la(a,c+d|0,o);break u}if(!p){d=0;while(1){if(!lb(c,G[c+84|0]?d:F[F[c+68>>2]+(d<<2)>>2],D[c+24|0],a)){break u}d=d+1|0;b=k>>>0<=d>>>0;if((d|0)!=(k|0)){continue}break}break u}e=0;d=0;while(1){if(!lb(c,G[c+84|0]?d:F[F[c+68>>2]+(d<<2)>>2],D[c+24|0],a)){break u}la((e<<2)+f|0,a,q);e=e+p|0;d=d+1|0;b=k>>>0<=d>>>0;if((d|0)!=(k|0)){continue}break}}if(!a){break s}ja(a)}a=b;break;default:break b}}b=a}return b|0}function Pd(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;h=Z-80|0;Z=h;e=F[c+36>>2];F[h+72>>2]=F[c+32>>2];F[h+76>>2]=e;f=F[c+28>>2];e=h- -64|0;F[e>>2]=F[c+24>>2];F[e+4>>2]=f;e=F[c+20>>2];F[h+56>>2]=F[c+16>>2];F[h+60>>2]=e;e=F[c+12>>2];F[h+48>>2]=F[c+8>>2];F[h+52>>2]=e;e=F[c+4>>2];F[h+40>>2]=F[c>>2];F[h+44>>2]=e;jc(a,h+40|0,h+24|0);a:{if(F[a>>2]){break a}if(D[a+15|0]<0){ja(F[a+4>>2])}if(G[h+31|0]!=1){b=ka(32);D[b+20|0]=0;c=G[1446]|G[1447]<<8|(G[1448]<<16|G[1449]<<24);D[b+16|0]=c;D[b+17|0]=c>>>8;D[b+18|0]=c>>>16;D[b+19|0]=c>>>24;c=G[1442]|G[1443]<<8|(G[1444]<<16|G[1445]<<24);d=G[1438]|G[1439]<<8|(G[1440]<<16|G[1441]<<24);D[b+8|0]=d;D[b+9|0]=d>>>8;D[b+10|0]=d>>>16;D[b+11|0]=d>>>24;D[b+12|0]=c;D[b+13|0]=c>>>8;D[b+14|0]=c>>>16;D[b+15|0]=c>>>24;c=G[1434]|G[1435]<<8|(G[1436]<<16|G[1437]<<24);d=G[1430]|G[1431]<<8|(G[1432]<<16|G[1433]<<24);D[b|0]=d;D[b+1|0]=d>>>8;D[b+2|0]=d>>>16;D[b+3|0]=d>>>24;D[b+4|0]=c;D[b+5|0]=c>>>8;D[b+6|0]=c>>>16;D[b+7|0]=c>>>24;F[a>>2]=-1;ra(a+4|0,b,20);ja(b);break a}j=Z-16|0;Z=j;b:{c:{switch(G[h+32|0]){case 0:e=Kd(ka(48));F[e>>2]=9864;F[h+8>>2]=0;F[h+12>>2]=0;F[h>>2]=0;F[h+4>>2]=0;F[h+16>>2]=e;break b;case 1:e=Kd(ka(52));F[e+48>>2]=0;F[e>>2]=8176;F[h+8>>2]=0;F[h+12>>2]=0;F[h>>2]=0;F[h+4>>2]=0;F[h+16>>2]=e;break b;default:break c}}f=ka(32);D[f+28|0]=0;e=G[1520]|G[1521]<<8|(G[1522]<<16|G[1523]<<24);D[f+24|0]=e;D[f+25|0]=e>>>8;D[f+26|0]=e>>>16;D[f+27|0]=e>>>24;e=G[1516]|G[1517]<<8|(G[1518]<<16|G[1519]<<24);g=G[1512]|G[1513]<<8|(G[1514]<<16|G[1515]<<24);D[f+16|0]=g;D[f+17|0]=g>>>8;D[f+18|0]=g>>>16;D[f+19|0]=g>>>24;D[f+20|0]=e;D[f+21|0]=e>>>8;D[f+22|0]=e>>>16;D[f+23|0]=e>>>24;e=G[1508]|G[1509]<<8|(G[1510]<<16|G[1511]<<24);g=G[1504]|G[1505]<<8|(G[1506]<<16|G[1507]<<24);D[f+8|0]=g;D[f+9|0]=g>>>8;D[f+10|0]=g>>>16;D[f+11|0]=g>>>24;D[f+12|0]=e;D[f+13|0]=e>>>8;D[f+14|0]=e>>>16;D[f+15|0]=e>>>24;e=G[1500]|G[1501]<<8|(G[1502]<<16|G[1503]<<24);g=G[1496]|G[1497]<<8|(G[1498]<<16|G[1499]<<24);D[f|0]=g;D[f+1|0]=g>>>8;D[f+2|0]=g>>>16;D[f+3|0]=g>>>24;D[f+4|0]=e;D[f+5|0]=e>>>8;D[f+6|0]=e>>>16;D[f+7|0]=e>>>24;F[j>>2]=-1;e=j|4;ra(e,f,28);k=D[j+15|0];F[h>>2]=F[j>>2];g=h+4|0;d:{if((k|0)>=0){k=F[e+4>>2];F[g>>2]=F[e>>2];F[g+4>>2]=k;F[g+8>>2]=F[e+8>>2];F[h+16>>2]=0;break d}ra(g,F[j+4>>2],F[j+8>>2]);e=D[j+15|0];F[h+16>>2]=0;if((e|0)>=0){break d}ja(F[j+4>>2])}ja(f)}Z=j+16|0;e=F[h>>2];e:{if(e){F[a>>2]=e;a=a+4|0;if(D[h+15|0]>=0){b=h|4;c=F[b+4>>2];F[a>>2]=F[b>>2];F[a+4>>2]=c;F[a+8>>2]=F[b+8>>2];break e}ra(a,F[h+4>>2],F[h+8>>2]);break e}e=F[h+16>>2];F[h+16>>2]=0;F[e+44>>2]=d;f=Z-32|0;Z=f;F[e+32>>2]=c;F[e+40>>2]=b;F[e+4>>2]=d;jc(a,c,f+16|0);f:{if(F[a>>2]){break f}if(D[a+15|0]<0){ja(F[a+4>>2])}b=G[f+23|0];if(($[F[F[e>>2]+8>>2]](e)|0)!=(b|0)){b=ka(64);D[b+50|0]=0;c=G[1304]|G[1305]<<8;D[b+48|0]=c;D[b+49|0]=c>>>8;c=G[1300]|G[1301]<<8|(G[1302]<<16|G[1303]<<24);d=G[1296]|G[1297]<<8|(G[1298]<<16|G[1299]<<24);D[b+40|0]=d;D[b+41|0]=d>>>8;D[b+42|0]=d>>>16;D[b+43|0]=d>>>24;D[b+44|0]=c;D[b+45|0]=c>>>8;D[b+46|0]=c>>>16;D[b+47|0]=c>>>24;c=G[1292]|G[1293]<<8|(G[1294]<<16|G[1295]<<24);d=G[1288]|G[1289]<<8|(G[1290]<<16|G[1291]<<24);D[b+32|0]=d;D[b+33|0]=d>>>8;D[b+34|0]=d>>>16;D[b+35|0]=d>>>24;D[b+36|0]=c;D[b+37|0]=c>>>8;D[b+38|0]=c>>>16;D[b+39|0]=c>>>24;c=G[1284]|G[1285]<<8|(G[1286]<<16|G[1287]<<24);d=G[1280]|G[1281]<<8|(G[1282]<<16|G[1283]<<24);D[b+24|0]=d;D[b+25|0]=d>>>8;D[b+26|0]=d>>>16;D[b+27|0]=d>>>24;D[b+28|0]=c;D[b+29|0]=c>>>8;D[b+30|0]=c>>>16;D[b+31|0]=c>>>24;c=G[1276]|G[1277]<<8|(G[1278]<<16|G[1279]<<24);d=G[1272]|G[1273]<<8|(G[1274]<<16|G[1275]<<24);D[b+16|0]=d;D[b+17|0]=d>>>8;D[b+18|0]=d>>>16;D[b+19|0]=d>>>24;D[b+20|0]=c;D[b+21|0]=c>>>8;D[b+22|0]=c>>>16;D[b+23|0]=c>>>24;c=G[1268]|G[1269]<<8|(G[1270]<<16|G[1271]<<24);d=G[1264]|G[1265]<<8|(G[1266]<<16|G[1267]<<24);D[b+8|0]=d;D[b+9|0]=d>>>8;D[b+10|0]=d>>>16;D[b+11|0]=d>>>24;D[b+12|0]=c;D[b+13|0]=c>>>8;D[b+14|0]=c>>>16;D[b+15|0]=c>>>24;c=G[1260]|G[1261]<<8|(G[1262]<<16|G[1263]<<24);d=G[1256]|G[1257]<<8|(G[1258]<<16|G[1259]<<24);D[b|0]=d;D[b+1|0]=d>>>8;D[b+2|0]=d>>>16;D[b+3|0]=d>>>24;D[b+4|0]=c;D[b+5|0]=c>>>8;D[b+6|0]=c>>>16;D[b+7|0]=c>>>24;F[a>>2]=-1;ra(a+4|0,b,50);ja(b);break f}c=G[f+21|0];D[e+36|0]=c;d=G[f+22|0];D[e+37|0]=d;if((c|0)!=2){b=ka(32);D[b+26|0]=0;c=G[1427]|G[1428]<<8;D[b+24|0]=c;D[b+25|0]=c>>>8;c=G[1423]|G[1424]<<8|(G[1425]<<16|G[1426]<<24);d=G[1419]|G[1420]<<8|(G[1421]<<16|G[1422]<<24);D[b+16|0]=d;D[b+17|0]=d>>>8;D[b+18|0]=d>>>16;D[b+19|0]=d>>>24;D[b+20|0]=c;D[b+21|0]=c>>>8;D[b+22|0]=c>>>16;D[b+23|0]=c>>>24;c=G[1415]|G[1416]<<8|(G[1417]<<16|G[1418]<<24);d=G[1411]|G[1412]<<8|(G[1413]<<16|G[1414]<<24);D[b+8|0]=d;D[b+9|0]=d>>>8;D[b+10|0]=d>>>16;D[b+11|0]=d>>>24;D[b+12|0]=c;D[b+13|0]=c>>>8;D[b+14|0]=c>>>16;D[b+15|0]=c>>>24;c=G[1407]|G[1408]<<8|(G[1409]<<16|G[1410]<<24);d=G[1403]|G[1404]<<8|(G[1405]<<16|G[1406]<<24);D[b|0]=d;D[b+1|0]=d>>>8;D[b+2|0]=d>>>16;D[b+3|0]=d>>>24;D[b+4|0]=c;D[b+5|0]=c>>>8;D[b+6|0]=c>>>16;D[b+7|0]=c>>>24;F[a>>2]=-5;ra(a+4|0,b,26);ja(b);break f}b=b?2:3;if((b|0)!=(d|0)){b=ka(32);D[b+26|0]=0;c=G[1400]|G[1401]<<8;D[b+24|0]=c;D[b+25|0]=c>>>8;c=G[1396]|G[1397]<<8|(G[1398]<<16|G[1399]<<24);d=G[1392]|G[1393]<<8|(G[1394]<<16|G[1395]<<24);D[b+16|0]=d;D[b+17|0]=d>>>8;D[b+18|0]=d>>>16;D[b+19|0]=d>>>24;D[b+20|0]=c;D[b+21|0]=c>>>8;D[b+22|0]=c>>>16;D[b+23|0]=c>>>24;c=G[1388]|G[1389]<<8|(G[1390]<<16|G[1391]<<24);d=G[1384]|G[1385]<<8|(G[1386]<<16|G[1387]<<24);D[b+8|0]=d;D[b+9|0]=d>>>8;D[b+10|0]=d>>>16;D[b+11|0]=d>>>24;D[b+12|0]=c;D[b+13|0]=c>>>8;D[b+14|0]=c>>>16;D[b+15|0]=c>>>24;c=G[1380]|G[1381]<<8|(G[1382]<<16|G[1383]<<24);d=G[1376]|G[1377]<<8|(G[1378]<<16|G[1379]<<24);D[b|0]=d;D[b+1|0]=d>>>8;D[b+2|0]=d>>>16;D[b+3|0]=d>>>24;D[b+4|0]=c;D[b+5|0]=c>>>8;D[b+6|0]=c>>>16;D[b+7|0]=c>>>24;F[a>>2]=-5;ra(a+4|0,b,26);ja(b);break f}E[F[e+32>>2]+38>>1]=b|512;g:{if(E[f+26>>1]>=0){break g}j=Z-16|0;Z=j;d=ka(36);b=d;F[b+4>>2]=0;F[b+8>>2]=0;F[b+24>>2]=0;F[b+28>>2]=0;b=b+16|0;F[b>>2]=0;F[b+4>>2]=0;F[d>>2]=d+4;F[d+32>>2]=0;F[d+12>>2]=b;F[j>>2]=0;c=F[e+32>>2];k=Z-16|0;Z=k;b=0;h:{if(!d){break h}F[j>>2]=c;F[k+12>>2]=0;b=0;if(!fb(1,k+12|0,c)){break h}n=F[k+12>>2];if(n){while(1){i:{if(fb(1,k+8|0,F[j>>2])){b=ka(28);F[b+4>>2]=0;F[b+8>>2]=0;c=b+16|0;F[c>>2]=0;F[c+4>>2]=0;F[b>>2]=b+4;F[b+12>>2]=c;F[b+24>>2]=F[k+8>>2];if(Vc(j,b)){break i}Ca(b+12|0,F[b+16>>2]);Ba(b,F[b+4>>2]);ja(b)}b=0;break h}g=Z-16|0;Z=g;F[g+8>>2]=b;j:{if(!b){break j}c=F[d+28>>2];k:{if(c>>>0>2]){F[g+8>>2]=0;F[c>>2]=b;F[d+28>>2]=c+4;break k}c=0;l:{m:{n:{i=F[d+24>>2];m=F[d+28>>2]-i>>2;b=m+1|0;if(b>>>0<1073741824){i=F[d+32>>2]-i|0;l=i>>>1|0;i=i>>>0>=2147483644?1073741823:b>>>0>>0?l:b;if(i){if(i>>>0>=1073741824){break n}c=ka(i<<2)}l=F[g+8>>2];F[g+8>>2]=0;b=(m<<2)+c|0;F[b>>2]=l;i=(i<<2)+c|0;m=b+4|0;c=F[d+28>>2];l=F[d+24>>2];if((c|0)==(l|0)){break m}while(1){c=c-4|0;p=F[c>>2];F[c>>2]=0;b=b-4|0;F[b>>2]=p;if((c|0)!=(l|0)){continue}break}F[d+32>>2]=i;i=F[d+28>>2];F[d+28>>2]=m;c=F[d+24>>2];F[d+24>>2]=b;if((c|0)==(i|0)){break l}while(1){i=i-4|0;b=F[i>>2];F[i>>2]=0;if(b){Ca(b+12|0,F[b+16>>2]);Ba(b,F[b+4>>2]);ja(b)}if((c|0)!=(i|0)){continue}break}break l}na();v()}oa();v()}F[d+32>>2]=i;F[d+28>>2]=m;F[d+24>>2]=b}if(c){ja(c)}}b=F[g+8>>2];F[g+8>>2]=0;if(!b){break j}Ca(b+12|0,F[b+16>>2]);Ba(b,F[b+4>>2]);ja(b)}Z=g+16|0;o=o+1|0;if((n|0)!=(o|0)){continue}break}}b=Vc(j,d)}Z=k+16|0;o:{if(b){c=F[e+4>>2];b=F[c+4>>2];F[c+4>>2]=d;if(b){ic(b)}F[a>>2]=0;F[a+4>>2]=0;F[a+8>>2]=0;F[a+12>>2]=0;break o}b=ka(32);D[b+26|0]=0;c=G[1549]|G[1550]<<8;D[b+24|0]=c;D[b+25|0]=c>>>8;c=G[1545]|G[1546]<<8|(G[1547]<<16|G[1548]<<24);g=G[1541]|G[1542]<<8|(G[1543]<<16|G[1544]<<24);D[b+16|0]=g;D[b+17|0]=g>>>8;D[b+18|0]=g>>>16;D[b+19|0]=g>>>24;D[b+20|0]=c;D[b+21|0]=c>>>8;D[b+22|0]=c>>>16;D[b+23|0]=c>>>24;c=G[1537]|G[1538]<<8|(G[1539]<<16|G[1540]<<24);g=G[1533]|G[1534]<<8|(G[1535]<<16|G[1536]<<24);D[b+8|0]=g;D[b+9|0]=g>>>8;D[b+10|0]=g>>>16;D[b+11|0]=g>>>24;D[b+12|0]=c;D[b+13|0]=c>>>8;D[b+14|0]=c>>>16;D[b+15|0]=c>>>24;c=G[1529]|G[1530]<<8|(G[1531]<<16|G[1532]<<24);g=G[1525]|G[1526]<<8|(G[1527]<<16|G[1528]<<24);D[b|0]=g;D[b+1|0]=g>>>8;D[b+2|0]=g>>>16;D[b+3|0]=g>>>24;D[b+4|0]=c;D[b+5|0]=c>>>8;D[b+6|0]=c>>>16;D[b+7|0]=c>>>24;F[a>>2]=-1;ra(a+4|0,b,26);ja(b);F[j+8>>2]=0;ic(d)}Z=j+16|0;if(F[a>>2]){break f}if(D[a+15|0]>=0){break g}ja(F[a+4>>2])}if(!($[F[F[e>>2]+12>>2]](e)|0)){b=ka(48);D[b+33|0]=0;D[b+32|0]=G[1374];c=G[1370]|G[1371]<<8|(G[1372]<<16|G[1373]<<24);d=G[1366]|G[1367]<<8|(G[1368]<<16|G[1369]<<24);D[b+24|0]=d;D[b+25|0]=d>>>8;D[b+26|0]=d>>>16;D[b+27|0]=d>>>24;D[b+28|0]=c;D[b+29|0]=c>>>8;D[b+30|0]=c>>>16;D[b+31|0]=c>>>24;c=G[1362]|G[1363]<<8|(G[1364]<<16|G[1365]<<24);d=G[1358]|G[1359]<<8|(G[1360]<<16|G[1361]<<24);D[b+16|0]=d;D[b+17|0]=d>>>8;D[b+18|0]=d>>>16;D[b+19|0]=d>>>24;D[b+20|0]=c;D[b+21|0]=c>>>8;D[b+22|0]=c>>>16;D[b+23|0]=c>>>24;c=G[1354]|G[1355]<<8|(G[1356]<<16|G[1357]<<24);d=G[1350]|G[1351]<<8|(G[1352]<<16|G[1353]<<24);D[b+8|0]=d;D[b+9|0]=d>>>8;D[b+10|0]=d>>>16;D[b+11|0]=d>>>24;D[b+12|0]=c;D[b+13|0]=c>>>8;D[b+14|0]=c>>>16;D[b+15|0]=c>>>24;c=G[1346]|G[1347]<<8|(G[1348]<<16|G[1349]<<24);d=G[1342]|G[1343]<<8|(G[1344]<<16|G[1345]<<24);D[b|0]=d;D[b+1|0]=d>>>8;D[b+2|0]=d>>>16;D[b+3|0]=d>>>24;D[b+4|0]=c;D[b+5|0]=c>>>8;D[b+6|0]=c>>>16;D[b+7|0]=c>>>24;F[a>>2]=-1;ra(a+4|0,b,33);ja(b);break f}if(!($[F[F[e>>2]+20>>2]](e)|0)){b=Eb(f,1552);F[a>>2]=-1;c=a+4|0;if(D[b+11|0]>=0){d=F[b+4>>2];F[c>>2]=F[b>>2];F[c+4>>2]=d;F[c+8>>2]=F[b+8>>2];break f}ra(c,F[b>>2],F[b+4>>2]);if(D[b+11|0]>=0){break f}ja(F[b>>2]);break f}if(!($[F[F[e>>2]+24>>2]](e)|0)){b=Eb(f,1307);F[a>>2]=-1;c=a+4|0;if(D[b+11|0]>=0){d=F[b+4>>2];F[c>>2]=F[b>>2];F[c+4>>2]=d;F[c+8>>2]=F[b+8>>2];break f}ra(c,F[b>>2],F[b+4>>2]);if(D[b+11|0]>=0){break f}ja(F[b>>2]);break f}F[a>>2]=0;F[a+4>>2]=0;F[a+8>>2]=0;F[a+12>>2]=0}Z=f+32|0;if(!F[a>>2]){if(D[a+15|0]<0){ja(F[a+4>>2])}F[a>>2]=0;F[a+4>>2]=0;F[a+8>>2]=0;F[a+12>>2]=0}$[F[F[e>>2]+4>>2]](e)}a=F[h+16>>2];F[h+16>>2]=0;if(a){$[F[F[a>>2]+4>>2]](a)}if(D[h+15|0]>=0){break a}ja(F[h+4>>2])}Z=h+80|0}function Ub(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;l=Z-16|0;Z=l;a:{b:{c:{d:{e:{f:{g:{h:{i:{if(a>>>0<=244){g=F[2941];h=a>>>0<11?16:a+11&-8;c=h>>>3|0;b=g>>>c|0;if(b&3){c=c+((b^-1)&1)|0;a=c<<3;b=a+11804|0;d=F[a+11812>>2];a=F[d+8>>2];j:{if((b|0)==(a|0)){m=11764,n=oi(c)&g,F[m>>2]=n;break j}F[a+12>>2]=b;F[b+8>>2]=a}a=d+8|0;b=c<<3;F[d+4>>2]=b|3;b=b+d|0;F[b+4>>2]=F[b+4>>2]|1;break a}k=F[2943];if(k>>>0>=h>>>0){break i}if(b){a=2<>2];a=F[e+8>>2];k:{if((b|0)==(a|0)){g=oi(d)&g;F[2941]=g;break k}F[a+12>>2]=b;F[b+8>>2]=a}F[e+4>>2]=h|3;c=e+h|0;a=d<<3;d=a-h|0;F[c+4>>2]=d|1;F[a+e>>2]=d;if(k){b=(k&-8)+11804|0;f=F[2946];a=1<<(k>>>3);l:{if(!(a&g)){F[2941]=a|g;a=b;break l}a=F[b+8>>2]}F[b+8>>2]=f;F[a+12>>2]=f;F[f+12>>2]=b;F[f+8>>2]=a}a=e+8|0;F[2946]=c;F[2943]=d;break a}j=F[2942];if(!j){break i}c=F[(ji(0-j&j)<<2)+12068>>2];f=(F[c+4>>2]&-8)-h|0;b=c;while(1){m:{a=F[b+16>>2];if(!a){a=F[b+20>>2];if(!a){break m}}b=(F[a+4>>2]&-8)-h|0;d=b>>>0>>0;f=d?b:f;c=d?a:c;b=a;continue}break}i=F[c+24>>2];d=F[c+12>>2];if((d|0)!=(c|0)){a=F[c+8>>2];F[a+12>>2]=d;F[d+8>>2]=a;break b}b=c+20|0;a=F[b>>2];if(!a){a=F[c+16>>2];if(!a){break h}b=c+16|0}while(1){e=b;d=a;b=a+20|0;a=F[b>>2];if(a){continue}b=d+16|0;a=F[d+16>>2];if(a){continue}break}F[e>>2]=0;break b}h=-1;if(a>>>0>4294967231){break i}a=a+11|0;h=a&-8;j=F[2942];if(!j){break i}f=0-h|0;g=0;n:{if(h>>>0<256){break n}g=31;if(h>>>0>16777215){break n}a=O(a>>>8|0);g=((h>>>38-a&1)-(a<<1)|0)+62|0}b=F[(g<<2)+12068>>2];o:{p:{q:{if(!b){a=0;break q}a=0;c=h<<((g|0)!=31?25-(g>>>1|0)|0:0);while(1){r:{e=(F[b+4>>2]&-8)-h|0;if(e>>>0>=f>>>0){break r}d=b;f=e;if(e){break r}f=0;a=b;break p}e=F[b+20>>2];b=F[((c>>>29&4)+b|0)+16>>2];a=e?(e|0)==(b|0)?a:e:a;c=c<<1;if(b){continue}break}}if(!(a|d)){d=0;a=2<>2]}if(!a){break o}}while(1){b=(F[a+4>>2]&-8)-h|0;c=b>>>0>>0;f=c?b:f;d=c?a:d;b=F[a+16>>2];if(b){a=b}else{a=F[a+20>>2]}if(a){continue}break}}if(!d|F[2943]-h>>>0<=f>>>0){break i}g=F[d+24>>2];c=F[d+12>>2];if((d|0)!=(c|0)){a=F[d+8>>2];F[a+12>>2]=c;F[c+8>>2]=a;break c}b=d+20|0;a=F[b>>2];if(!a){a=F[d+16>>2];if(!a){break g}b=d+16|0}while(1){e=b;c=a;b=a+20|0;a=F[b>>2];if(a){continue}b=c+16|0;a=F[c+16>>2];if(a){continue}break}F[e>>2]=0;break c}a=F[2943];if(a>>>0>=h>>>0){d=F[2946];b=a-h|0;s:{if(b>>>0>=16){c=d+h|0;F[c+4>>2]=b|1;F[a+d>>2]=b;F[d+4>>2]=h|3;break s}F[d+4>>2]=a|3;a=a+d|0;F[a+4>>2]=F[a+4>>2]|1;c=0;b=0}F[2943]=b;F[2946]=c;a=d+8|0;break a}i=F[2944];if(i>>>0>h>>>0){b=i-h|0;F[2944]=b;c=F[2947];a=c+h|0;F[2947]=a;F[a+4>>2]=b|1;F[c+4>>2]=h|3;a=c+8|0;break a}a=0;j=h+47|0;if(F[3059]){c=F[3061]}else{F[3062]=-1;F[3063]=-1;F[3060]=4096;F[3061]=4096;F[3059]=l+12&-16^1431655768;F[3064]=0;F[3052]=0;c=4096}e=j+c|0;f=0-c|0;b=e&f;if(b>>>0<=h>>>0){break a}d=F[3051];if(d){c=F[3049];g=c+b|0;if(d>>>0>>0|c>>>0>=g>>>0){break a}}t:{if(!(G[12208]&4)){u:{v:{w:{x:{d=F[2947];if(d){a=12212;while(1){c=F[a>>2];if(c>>>0<=d>>>0&d>>>0>2]>>>0){break x}a=F[a+8>>2];if(a){continue}break}}c=eb(0);if((c|0)==-1){break u}g=b;d=F[3060];a=d-1|0;if(a&c){g=(b-c|0)+(a+c&0-d)|0}if(g>>>0<=h>>>0){break u}d=F[3051];if(d){a=F[3049];f=a+g|0;if(d>>>0>>0|a>>>0>=f>>>0){break u}}a=eb(g);if((c|0)!=(a|0)){break w}break t}g=f&e-i;c=eb(g);if((c|0)==(F[a>>2]+F[a+4>>2]|0)){break v}a=c}if((a|0)==-1){break u}if(h+48>>>0<=g>>>0){c=a;break t}c=F[3061];c=c+(j-g|0)&0-c;if((eb(c)|0)==-1){break u}g=c+g|0;c=a;break t}if((c|0)!=-1){break t}}F[3052]=F[3052]|4}c=eb(b);a=eb(0);if((c|0)==-1|(a|0)==-1|a>>>0<=c>>>0){break d}g=a-c|0;if(g>>>0<=h+40>>>0){break d}}a=F[3049]+g|0;F[3049]=a;if(a>>>0>I[3050]){F[3050]=a}y:{e=F[2947];if(e){a=12212;while(1){d=F[a>>2];b=F[a+4>>2];if((d+b|0)==(c|0)){break y}a=F[a+8>>2];if(a){continue}break}break f}a=F[2945];if(!(a>>>0<=c>>>0?a:0)){F[2945]=c}a=0;F[3054]=g;F[3053]=c;F[2949]=-1;F[2950]=F[3059];F[3056]=0;while(1){d=a<<3;b=d+11804|0;F[d+11812>>2]=b;F[d+11816>>2]=b;a=a+1|0;if((a|0)!=32){continue}break}d=g-40|0;a=c+8&7?-8-c&7:0;b=d-a|0;F[2944]=b;a=a+c|0;F[2947]=a;F[a+4>>2]=b|1;F[(c+d|0)+4>>2]=40;F[2948]=F[3063];break e}if(G[a+12|0]&8|d>>>0>e>>>0|c>>>0<=e>>>0){break f}F[a+4>>2]=b+g;a=e+8&7?-8-e&7:0;c=a+e|0;F[2947]=c;b=F[2944]+g|0;a=b-a|0;F[2944]=a;F[c+4>>2]=a|1;F[(b+e|0)+4>>2]=40;F[2948]=F[3063];break e}d=0;break b}c=0;break c}if(I[2945]>c>>>0){F[2945]=c}b=c+g|0;a=12212;z:{A:{B:{C:{D:{E:{while(1){if((b|0)!=F[a>>2]){a=F[a+8>>2];if(a){continue}break E}break}if(!(G[a+12|0]&8)){break D}}a=12212;while(1){b=F[a>>2];if(b>>>0<=e>>>0){f=b+F[a+4>>2]|0;if(f>>>0>e>>>0){break C}}a=F[a+8>>2];continue}}F[a>>2]=c;F[a+4>>2]=F[a+4>>2]+g;j=(c+8&7?-8-c&7:0)+c|0;F[j+4>>2]=h|3;g=b+(b+8&7?-8-b&7:0)|0;i=h+j|0;a=g-i|0;if((e|0)==(g|0)){F[2947]=i;a=F[2944]+a|0;F[2944]=a;F[i+4>>2]=a|1;break A}if(F[2946]==(g|0)){F[2946]=i;a=F[2943]+a|0;F[2943]=a;F[i+4>>2]=a|1;F[a+i>>2]=a;break A}f=F[g+4>>2];if((f&3)==1){e=f&-8;F:{if(f>>>0<=255){d=F[g+8>>2];b=f>>>3|0;c=F[g+12>>2];if((c|0)==(d|0)){m=11764,n=F[2941]&oi(b),F[m>>2]=n;break F}F[d+12>>2]=c;F[c+8>>2]=d;break F}h=F[g+24>>2];c=F[g+12>>2];G:{if((g|0)!=(c|0)){b=F[g+8>>2];F[b+12>>2]=c;F[c+8>>2]=b;break G}H:{f=g+20|0;b=F[f>>2];if(b){break H}f=g+16|0;b=F[f>>2];if(b){break H}c=0;break G}while(1){d=f;c=b;f=c+20|0;b=F[f>>2];if(b){continue}f=c+16|0;b=F[c+16>>2];if(b){continue}break}F[d>>2]=0}if(!h){break F}d=F[g+28>>2];b=(d<<2)+12068|0;I:{if(F[b>>2]==(g|0)){F[b>>2]=c;if(c){break I}m=11768,n=F[2942]&oi(d),F[m>>2]=n;break F}F[h+(F[h+16>>2]==(g|0)?16:20)>>2]=c;if(!c){break F}}F[c+24>>2]=h;b=F[g+16>>2];if(b){F[c+16>>2]=b;F[b+24>>2]=c}b=F[g+20>>2];if(!b){break F}F[c+20>>2]=b;F[b+24>>2]=c}g=e+g|0;f=F[g+4>>2];a=a+e|0}F[g+4>>2]=f&-2;F[i+4>>2]=a|1;F[a+i>>2]=a;if(a>>>0<=255){b=(a&-8)+11804|0;c=F[2941];a=1<<(a>>>3);J:{if(!(c&a)){F[2941]=a|c;a=b;break J}a=F[b+8>>2]}F[b+8>>2]=i;F[a+12>>2]=i;F[i+12>>2]=b;F[i+8>>2]=a;break A}f=31;if(a>>>0<=16777215){b=O(a>>>8|0);f=((a>>>38-b&1)-(b<<1)|0)+62|0}F[i+28>>2]=f;F[i+16>>2]=0;F[i+20>>2]=0;b=(f<<2)+12068|0;d=F[2942];c=1<>2]=i;break K}f=a<<((f|0)!=31?25-(f>>>1|0)|0:0);c=F[b>>2];while(1){b=c;if((F[c+4>>2]&-8)==(a|0)){break B}c=f>>>29|0;f=f<<1;d=(c&4)+b|0;c=F[d+16>>2];if(c){continue}break}F[d+16>>2]=i}F[i+24>>2]=b;F[i+12>>2]=i;F[i+8>>2]=i;break A}d=g-40|0;a=c+8&7?-8-c&7:0;b=d-a|0;F[2944]=b;a=a+c|0;F[2947]=a;F[a+4>>2]=b|1;F[(c+d|0)+4>>2]=40;F[2948]=F[3063];a=(f+(f-39&7?39-f&7:0)|0)-47|0;d=a>>>0>>0?e:a;F[d+4>>2]=27;a=F[3056];F[d+16>>2]=F[3055];F[d+20>>2]=a;a=F[3054];F[d+8>>2]=F[3053];F[d+12>>2]=a;F[3055]=d+8;F[3054]=g;F[3053]=c;F[3056]=0;a=d+24|0;while(1){F[a+4>>2]=7;b=a+8|0;a=a+4|0;if(b>>>0>>0){continue}break}if((d|0)==(e|0)){break e}F[d+4>>2]=F[d+4>>2]&-2;f=d-e|0;F[e+4>>2]=f|1;F[d>>2]=f;if(f>>>0<=255){b=(f&-8)+11804|0;c=F[2941];a=1<<(f>>>3);L:{if(!(c&a)){F[2941]=a|c;a=b;break L}a=F[b+8>>2]}F[b+8>>2]=e;F[a+12>>2]=e;F[e+12>>2]=b;F[e+8>>2]=a;break e}a=31;if(f>>>0<=16777215){a=O(f>>>8|0);a=((f>>>38-a&1)-(a<<1)|0)+62|0}F[e+28>>2]=a;F[e+16>>2]=0;F[e+20>>2]=0;b=(a<<2)+12068|0;d=F[2942];c=1<>2]=e;break M}a=f<<((a|0)!=31?25-(a>>>1|0)|0:0);d=F[b>>2];while(1){b=d;if((f|0)==(F[b+4>>2]&-8)){break z}c=a>>>29|0;a=a<<1;c=(c&4)+b|0;d=F[c+16>>2];if(d){continue}break}F[c+16>>2]=e}F[e+24>>2]=b;F[e+12>>2]=e;F[e+8>>2]=e;break e}a=F[b+8>>2];F[a+12>>2]=i;F[b+8>>2]=i;F[i+24>>2]=0;F[i+12>>2]=b;F[i+8>>2]=a}a=j+8|0;break a}a=F[b+8>>2];F[a+12>>2]=e;F[b+8>>2]=e;F[e+24>>2]=0;F[e+12>>2]=b;F[e+8>>2]=a}a=F[2944];if(a>>>0<=h>>>0){break d}b=a-h|0;F[2944]=b;c=F[2947];a=c+h|0;F[2947]=a;F[a+4>>2]=b|1;F[c+4>>2]=h|3;a=c+8|0;break a}F[2940]=48;a=0;break a}N:{if(!g){break N}b=F[d+28>>2];a=(b<<2)+12068|0;O:{if(F[a>>2]==(d|0)){F[a>>2]=c;if(c){break O}j=oi(b)&j;F[2942]=j;break N}F[g+(F[g+16>>2]==(d|0)?16:20)>>2]=c;if(!c){break N}}F[c+24>>2]=g;a=F[d+16>>2];if(a){F[c+16>>2]=a;F[a+24>>2]=c}a=F[d+20>>2];if(!a){break N}F[c+20>>2]=a;F[a+24>>2]=c}P:{if(f>>>0<=15){a=f+h|0;F[d+4>>2]=a|3;a=a+d|0;F[a+4>>2]=F[a+4>>2]|1;break P}F[d+4>>2]=h|3;e=d+h|0;F[e+4>>2]=f|1;F[e+f>>2]=f;if(f>>>0<=255){b=(f&-8)+11804|0;c=F[2941];a=1<<(f>>>3);Q:{if(!(c&a)){F[2941]=a|c;a=b;break Q}a=F[b+8>>2]}F[b+8>>2]=e;F[a+12>>2]=e;F[e+12>>2]=b;F[e+8>>2]=a;break P}a=31;if(f>>>0<=16777215){a=O(f>>>8|0);a=((f>>>38-a&1)-(a<<1)|0)+62|0}F[e+28>>2]=a;F[e+16>>2]=0;F[e+20>>2]=0;b=(a<<2)+12068|0;R:{c=1<>2]=e;break S}a=f<<((a|0)!=31?25-(a>>>1|0)|0:0);h=F[b>>2];while(1){b=h;if((F[b+4>>2]&-8)==(f|0)){break R}c=a>>>29|0;a=a<<1;c=(c&4)+b|0;h=F[c+16>>2];if(h){continue}break}F[c+16>>2]=e}F[e+24>>2]=b;F[e+12>>2]=e;F[e+8>>2]=e;break P}a=F[b+8>>2];F[a+12>>2]=e;F[b+8>>2]=e;F[e+24>>2]=0;F[e+12>>2]=b;F[e+8>>2]=a}a=d+8|0;break a}T:{if(!i){break T}b=F[c+28>>2];a=(b<<2)+12068|0;U:{if(F[a>>2]==(c|0)){F[a>>2]=d;if(d){break U}m=11768,n=oi(b)&j,F[m>>2]=n;break T}F[i+(F[i+16>>2]==(c|0)?16:20)>>2]=d;if(!d){break T}}F[d+24>>2]=i;a=F[c+16>>2];if(a){F[d+16>>2]=a;F[a+24>>2]=d}a=F[c+20>>2];if(!a){break T}F[d+20>>2]=a;F[a+24>>2]=d}V:{if(f>>>0<=15){a=f+h|0;F[c+4>>2]=a|3;a=a+c|0;F[a+4>>2]=F[a+4>>2]|1;break V}F[c+4>>2]=h|3;d=c+h|0;F[d+4>>2]=f|1;F[d+f>>2]=f;if(k){b=(k&-8)+11804|0;e=F[2946];a=1<<(k>>>3);W:{if(!(a&g)){F[2941]=a|g;a=b;break W}a=F[b+8>>2]}F[b+8>>2]=e;F[a+12>>2]=e;F[e+12>>2]=b;F[e+8>>2]=a}F[2946]=d;F[2943]=f}a=c+8|0}Z=l+16|0;return a|0}function Vc(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0,z=0,A=0;m=Z-32|0;Z=m;o=ka(12);F[o+8>>2]=0;F[o+4>>2]=b;F[o>>2]=0;s=o+12|0;b=s;a:{b:{c:{while(1){b=b-12|0;w=F[b+8>>2];j=F[b+4>>2];t=F[b>>2];if(t){if((w|0)>1e3){break a}F[m+24>>2]=0;F[m+16>>2]=0;F[m+20>>2]=0;d=1;c=F[a>>2];e=F[c+8>>2];h=F[c+12>>2];g=F[c+20>>2];f=F[c+16>>2];d:{if((h|0)<=(g|0)&f>>>0>=e>>>0|(g|0)>(h|0)){break d}e=G[f+F[c>>2]|0];h=c;c=g;f=f+1|0;c=f?c:c+1|0;F[h+16>>2]=f;F[h+20>>2]=c;Sb(m+16|0,e);if(e){c=F[a>>2];n=Tb(m+16|0);p=F[c+8>>2];g=F[c+12>>2];h=F[c+20>>2];f=F[c+16>>2];k=f+e|0;h=k>>>0>>0?h+1|0:h;if((g|0)<=(h|0)&k>>>0>p>>>0|(g|0)<(h|0)){break d}la(n,f+F[c>>2]|0,e);d=F[c+20>>2];f=e;e=e+F[c+16>>2]|0;d=f>>>0>e>>>0?d+1|0:d;F[c+16>>2]=e;F[c+20>>2]=d}j=ka(24);c=j;F[c+4>>2]=0;F[c+8>>2]=0;c=c+16|0;F[c>>2]=0;F[c+4>>2]=0;F[j>>2]=j+4;F[j+12>>2]=c;e=Z-32|0;Z=e;h=t+12|0;c=m+16|0;u=Ya(h,c);i=t+16|0;e:{if((u|0)==(i|0)){F[e+16>>2]=c;f:{g:{d=F[h+4>>2];h:{if(!d){f=h+4|0;c=f;break h}f=G[c+11|0];g=f<<24>>24<0;n=g?F[c>>2]:c;g=g?F[c+4>>2]:f;while(1){c=d;d=G[c+27|0];f=d<<24>>24<0;d=f?F[c+20>>2]:d;p=d>>>0>>0;i:{j:{k:{l:{k=p?d:g;m:{if(k){f=f?F[c+16>>2]:c+16|0;q=sa(n,f,k);if(!q){if(d>>>0>g>>>0){break m}break l}if((q|0)>=0){break l}break m}if(d>>>0<=g>>>0){break k}}f=c;d=F[c>>2];if(d){continue}break h}d=sa(f,n,k);if(d){break j}}if(p){break i}break g}if((d|0)>=0){break g}}d=F[c+4>>2];if(d){continue}break}f=c+4|0}d=ka(32);n=d+16|0;g=F[e+16>>2];n:{if(D[g+11|0]>=0){p=F[g+4>>2];F[n>>2]=F[g>>2];F[n+4>>2]=p;F[n+8>>2]=F[g+8>>2];break n}ra(n,F[g>>2],F[g+4>>2])}F[d+8>>2]=c;F[d>>2]=0;F[d+4>>2]=0;F[d+28>>2]=0;F[f>>2]=d;c=d;g=F[F[h>>2]>>2];if(g){F[h>>2]=g;c=F[f>>2]}nb(F[h+4>>2],c);F[h+8>>2]=F[h+8>>2]+1;c=1;break f}d=c;c=0}D[e+28|0]=c;F[e+24>>2]=d;d=F[e+24>>2];c=F[d+28>>2];F[d+28>>2]=j;if(!c){break e}Ca(c+12|0,F[c+16>>2]);Ba(c,F[c+4>>2]);ja(c);break e}if(!j){break e}Ca(j+12|0,F[j+16>>2]);Ba(j,F[j+4>>2]);ja(j)}Z=e+32|0;d=(i|0)!=(u|0)}if(D[m+27|0]<0){ja(F[m+16>>2])}if(d){break a}}if(!j){break a}F[m+16>>2]=0;if(!fb(1,m+16|0,F[a>>2])){break a}q=0;x=F[m+16>>2];if(x){while(1){d=0;i=Z-32|0;Z=i;F[i+24>>2]=0;F[i+16>>2]=0;F[i+20>>2]=0;c=F[a>>2];f=F[c+8>>2];o:{p:{h=F[c+12>>2];g=F[c+20>>2];e=F[c+16>>2];q:{if((h|0)<=(g|0)&e>>>0>=f>>>0|(g|0)>(h|0)){break q}f=G[e+F[c>>2]|0];h=c;c=g;e=e+1|0;c=e?c:c+1|0;F[h+16>>2]=e;F[h+20>>2]=c;Sb(i+16|0,f);if(f){e=F[a>>2];n=Tb(i+16|0);p=F[e+8>>2];g=F[e+12>>2];c=F[e+20>>2];h=F[e+16>>2];k=h+f|0;c=k>>>0>>0?c+1|0:c;if(k>>>0>p>>>0&(c|0)>=(g|0)|(c|0)>(g|0)){break q}la(n,h+F[e>>2]|0,f);c=F[e+20>>2];g=f;f=f+F[e+16>>2]|0;c=g>>>0>f>>>0?c+1|0:c;F[e+16>>2]=f;F[e+20>>2]=c}F[i+12>>2]=0;if(!fb(1,i+12|0,F[a>>2])){break q}f=F[i+12>>2];if(!f){break q}e=F[a>>2];c=F[e+8>>2];h=F[e+16>>2];g=c-h|0;c=F[e+12>>2]-(F[e+20>>2]+(c>>>0>>0)|0)|0;if((c|0)<=0&f>>>0>g>>>0|(c|0)<0){break q}F[i+8>>2]=0;F[i>>2]=0;F[i+4>>2]=0;if((f|0)<0){break p}d=ka(f);F[i>>2]=d;c=d+f|0;F[i+8>>2]=c;l=ma(d,0,f);F[i+4>>2]=c;h=F[e+12>>2];y=h;p=F[e+8>>2];c=F[e+20>>2];k=F[e+16>>2];g=f+k|0;c=g>>>0>>0?c+1|0:c;u=g;n=c;r:{if((c|0)<=(h|0)&g>>>0<=p>>>0|(c|0)<(h|0)){la(l,F[e>>2]+k|0,f);d=F[e+20>>2];c=f+F[e+16>>2]|0;d=c>>>0>>0?d+1|0:d;F[e+16>>2]=c;F[e+20>>2]=d;h=Z-48|0;Z=h;e=Ya(j,i+16|0);if((e|0)!=(j+4|0)){c=F[e+4>>2];s:{if(!c){c=e;while(1){d=F[c+8>>2];f=F[d>>2]!=(c|0);c=d;if(f){continue}break}break s}while(1){d=c;c=F[c>>2];if(c){continue}break}}if((e|0)==F[j>>2]){F[j>>2]=d}F[j+8>>2]=F[j+8>>2]-1;f=F[j+4>>2];t:{u:{g=e;d=e;e=F[d>>2];if(e){c=F[g+4>>2];if(!c){break u}while(1){d=c;c=F[c>>2];if(c){continue}break}}e=F[d+4>>2];if(e){break u}e=0;k=1;break t}F[e+8>>2]=F[d+8>>2];k=0}l=F[d+8>>2];c=F[l>>2];v:{if((d|0)==(c|0)){F[l>>2]=e;if((d|0)==(f|0)){c=0;f=e;break v}c=F[l+4>>2];break v}F[l+4>>2]=e}r=!G[d+12|0];if((d|0)!=(g|0)){l=F[g+8>>2];F[d+8>>2]=l;F[l+(((g|0)!=F[F[g+8>>2]>>2])<<2)>>2]=d;l=F[g>>2];F[d>>2]=l;F[l+8>>2]=d;l=F[g+4>>2];F[d+4>>2]=l;if(l){F[l+8>>2]=d}D[d+12|0]=G[g+12|0];f=(f|0)==(g|0)?d:f}w:{if(r|!f){break w}if(k){while(1){e=G[c+12|0];x:{d=F[c+8>>2];if(F[d>>2]!=(c|0)){if(!e){D[c+12|0]=1;D[d+12|0]=0;e=F[d+4>>2];k=F[e>>2];F[d+4>>2]=k;if(k){F[k+8>>2]=d}F[e+8>>2]=F[d+8>>2];k=F[d+8>>2];F[(((d|0)!=F[k>>2])<<2)+k>>2]=e;F[e>>2]=d;F[d+8>>2]=e;d=c;c=F[c>>2];f=(c|0)==(f|0)?d:f;c=F[c+4>>2]}y:{z:{d=F[c>>2];A:{if(!(G[d+12|0]?0:d)){e=F[c+4>>2];if(G[e+12|0]?0:e){break A}D[c+12|0]=0;c=F[c+8>>2];B:{if((f|0)==(c|0)){c=f;break B}if(G[c+12|0]){break x}}D[c+12|0]=1;break w}e=F[c+4>>2];if(!e){break z}}if(G[e+12|0]){break z}d=c;break y}D[d+12|0]=1;D[c+12|0]=0;e=F[d+4>>2];F[c>>2]=e;if(e){F[e+8>>2]=c}F[d+8>>2]=F[c+8>>2];e=F[c+8>>2];F[((F[e>>2]!=(c|0))<<2)+e>>2]=d;F[d+4>>2]=c;F[c+8>>2]=d;e=c}c=F[d+8>>2];D[d+12|0]=G[c+12|0];D[c+12|0]=1;D[e+12|0]=1;d=F[c+4>>2];e=F[d>>2];F[c+4>>2]=e;if(e){F[e+8>>2]=c}F[d+8>>2]=F[c+8>>2];e=F[c+8>>2];F[(((c|0)!=F[e>>2])<<2)+e>>2]=d;F[d>>2]=c;F[c+8>>2]=d;break w}if(!e){D[c+12|0]=1;D[d+12|0]=0;e=F[c+4>>2];F[d>>2]=e;if(e){F[e+8>>2]=d}F[c+8>>2]=F[d+8>>2];e=F[d+8>>2];F[(((d|0)!=F[e>>2])<<2)+e>>2]=c;F[c+4>>2]=d;F[d+8>>2]=c;f=(d|0)==(f|0)?c:f;c=F[d>>2]}e=F[c>>2];C:{if(!(!e|G[e+12|0])){d=c;break C}d=F[c+4>>2];if(!(G[d+12|0]?0:d)){D[c+12|0]=0;c=F[c+8>>2];if((c|0)!=(f|0)?G[c+12|0]:0){break x}D[c+12|0]=1;break w}if(e){if(!G[e+12|0]){d=c;break C}d=F[c+4>>2]}D[d+12|0]=1;D[c+12|0]=0;e=F[d>>2];F[c+4>>2]=e;if(e){F[e+8>>2]=c}F[d+8>>2]=F[c+8>>2];e=F[c+8>>2];F[((F[e>>2]!=(c|0))<<2)+e>>2]=d;F[d>>2]=c;F[c+8>>2]=d;e=c}c=F[d+8>>2];D[d+12|0]=G[c+12|0];D[c+12|0]=1;D[e+12|0]=1;d=F[c>>2];e=F[d+4>>2];F[c>>2]=e;if(e){F[e+8>>2]=c}F[d+8>>2]=F[c+8>>2];e=F[c+8>>2];F[(((c|0)!=F[e>>2])<<2)+e>>2]=d;F[d+4>>2]=c;F[c+8>>2]=d;break w}d=c;c=F[c+8>>2];c=F[(((d|0)==F[c>>2])<<2)+c>>2];continue}}D[e+12|0]=1}c=F[g+28>>2];if(c){F[g+32>>2]=c;ja(c)}if(D[g+27|0]<0){ja(F[g+16>>2])}ja(g)}F[h+8>>2]=0;F[h>>2]=0;F[h+4>>2]=0;c=F[i+4>>2];d=F[i>>2];f=c-d|0;e=0;D:{E:{if((c|0)!=(d|0)){if((f|0)<0){break E}e=ka(f);c=ma(e,0,f);g=c+f|0;F[h+8>>2]=g;F[h+4>>2]=g;F[h>>2]=c;c=d}la(e,c,f);F:{if(D[i+27|0]>=0){F[h+24>>2]=F[i+24>>2];c=F[i+20>>2];F[h+16>>2]=F[i+16>>2];F[h+20>>2]=c;break F}ra(h+16|0,F[i+16>>2],F[i+20>>2])}Tc(h+28|0,h);f=h+16|0;c=f;G:{H:{d=F[j+4>>2];I:{if(!d){e=j+4|0;c=e;break I}e=G[c+11|0];g=e<<24>>24<0;k=g?F[c>>2]:c;g=g?F[c+4>>2]:e;while(1){c=d;d=G[c+27|0];e=d<<24>>24<0;d=e?F[c+20>>2]:d;l=d>>>0>>0;J:{K:{L:{M:{r=l?d:g;N:{if(r){e=e?F[c+16>>2]:c+16|0;z=sa(k,e,r);if(!z){if(d>>>0>g>>>0){break N}break M}if((z|0)>=0){break M}break N}if(d>>>0<=g>>>0){break L}}e=c;d=F[c>>2];if(d){continue}break I}d=sa(e,k,r);if(d){break K}}if(l){break J}break H}if((d|0)>=0){break H}}d=F[c+4>>2];if(d){continue}break}e=c+4|0}d=ka(40);F[d+24>>2]=F[f+8>>2];g=F[f+4>>2];F[d+16>>2]=F[f>>2];F[d+20>>2]=g;F[f>>2]=0;F[f+4>>2]=0;F[f+8>>2]=0;Tc(d+28|0,f+12|0);F[d+8>>2]=c;F[d>>2]=0;F[d+4>>2]=0;F[e>>2]=d;c=d;f=F[F[j>>2]>>2];if(f){F[j>>2]=f;c=F[e>>2]}nb(F[j+4>>2],c);F[j+8>>2]=F[j+8>>2]+1;c=1;break G}d=c;c=0}D[h+44|0]=c;F[h+40>>2]=d;c=F[h+28>>2];if(c){F[h+32>>2]=c;ja(c)}if(D[h+27|0]<0){ja(F[h+16>>2])}c=F[h>>2];if(c){F[h+4>>2]=c;ja(c)}Z=h+48|0;break D}na();v()}d=F[i>>2];if(!d){break r}}F[i+4>>2]=d;ja(d)}d=(n|0)<=(y|0)&p>>>0>=u>>>0|(n|0)<(y|0)}if(D[i+27|0]<0){ja(F[i+16>>2])}Z=i+32|0;break o}na();v()}if(!d){break a}q=q+1|0;if((x|0)!=(q|0)){continue}break}}F[m+12>>2]=0;if(!fb(1,m+12|0,F[a>>2])){break a}c=F[a>>2];e=F[c+8>>2];f=F[c+16>>2];h=e-f|0;d=F[m+12>>2];c=F[c+12>>2]-(F[c+20>>2]+(e>>>0>>0)|0)|0;if(h>>>0>>0&(c|0)<=0|(c|0)<0){break a}if(d){q=0;h=((t|0)!=0)+w|0;while(1){O:{if(b>>>0>>0){F[b+8>>2]=h;F[b+4>>2]=0;F[b>>2]=j;b=b+12|0;d=F[m+12>>2];break O}c=b-o|0;g=(c|0)/12|0;b=g+1|0;if(b>>>0>=357913942){break c}e=(s-o|0)/12|0;f=e<<1;e=e>>>0>=178956970?357913941:b>>>0>>0?f:b;if(e){if(e>>>0>=357913942){break b}f=ka(L(e,12))}else{f=0}b=f+L(g,12)|0;F[b+8>>2]=h;F[b+4>>2]=0;F[b>>2]=j;c=pa(b+L((c|0)/-12|0,12)|0,o,c);s=f+L(e,12)|0;b=b+12|0;if(o){ja(o)}o=c}q=q+1|0;if(q>>>0>>0){continue}break}}if((b|0)!=(o|0)){continue}break}A=1;break a}na();v()}oa();v()}if(o){ja(o)}Z=m+32|0;return A}function me(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;h=Z-48|0;Z=h;a:{if((c|0)!=1){break a}i=F[a+4>>2];c=F[a+12>>2];F[h+40>>2]=0;F[h+32>>2]=0;F[h+36>>2]=0;F[h+24>>2]=0;F[h+28>>2]=0;F[h+16>>2]=0;F[h+20>>2]=0;F[h+8>>2]=0;F[h+12>>2]=0;d=h+8|0;b:{if((b|0)==-2){break b}k=F[F[F[i+4>>2]+8>>2]+(c<<2)>>2];if(($[F[F[i>>2]+8>>2]](i)|0)==1){j=Z-32|0;Z=j;l=F[F[F[i+4>>2]+8>>2]+(c<<2)>>2];c:{d:{e:{if(($[F[F[i>>2]+8>>2]](i)|0)!=1|b-1>>>0>5){break e}g=$[F[F[i>>2]+36>>2]](i)|0;f=$[F[F[i>>2]+44>>2]](i,c)|0;if(!g|!f){break e}c=$[F[F[i>>2]+40>>2]](i,c)|0;if(c){a=F[i+44>>2];F[j+12>>2]=c;F[j+8>>2]=a;F[j+20>>2]=f;F[j+16>>2]=f+12;f=j+8|0;a=0;f:{g:{switch(b-1|0){case 0:b=ka(60);F[b+4>>2]=l;F[b>>2]=2960;a=F[d+4>>2];F[b+8>>2]=F[d>>2];F[b+12>>2]=a;a=F[d+12>>2];F[b+16>>2]=F[d+8>>2];F[b+20>>2]=a;a=F[d+20>>2];F[b+24>>2]=F[d+16>>2];F[b+28>>2]=a;F[b+40>>2]=0;F[b+32>>2]=0;F[b+36>>2]=0;a=F[d+24>>2];g=F[d+28>>2];if((a|0)!=(g|0)){c=g-a|0;if((c|0)<0){break d}e=ka(c);F[b+32>>2]=e;F[b+40>>2]=(c&-4)+e;while(1){F[e>>2]=F[a>>2];e=e+4|0;a=a+4|0;if((g|0)!=(a|0)){continue}break}F[b+36>>2]=e}a=F[f+4>>2];F[b+44>>2]=F[f>>2];F[b+48>>2]=a;a=F[f+12>>2];F[b+52>>2]=F[f+8>>2];F[b+56>>2]=a;F[b>>2]=2252;a=b;break f;case 3:b=ka(112);F[b+4>>2]=l;F[b>>2]=2960;a=F[d+4>>2];F[b+8>>2]=F[d>>2];F[b+12>>2]=a;a=F[d+12>>2];F[b+16>>2]=F[d+8>>2];F[b+20>>2]=a;a=F[d+20>>2];F[b+24>>2]=F[d+16>>2];F[b+28>>2]=a;F[b+40>>2]=0;F[b+32>>2]=0;F[b+36>>2]=0;a=F[d+24>>2];g=F[d+28>>2];if((a|0)!=(g|0)){c=g-a|0;if((c|0)<0){break d}e=ka(c);F[b+32>>2]=e;F[b+40>>2]=(c&-4)+e;while(1){F[e>>2]=F[a>>2];e=e+4|0;a=a+4|0;if((g|0)!=(a|0)){continue}break}F[b+36>>2]=e}a=F[f+4>>2];F[b+44>>2]=F[f>>2];F[b+48>>2]=a;a=F[f+12>>2];F[b+52>>2]=F[f+8>>2];F[b+56>>2]=a;F[b+60>>2]=0;F[b+64>>2]=0;F[b>>2]=3016;F[b+68>>2]=0;F[b+72>>2]=0;F[b+76>>2]=0;F[b+80>>2]=0;F[b+84>>2]=0;F[b+88>>2]=0;F[b+92>>2]=0;F[b+96>>2]=0;F[b+100>>2]=0;F[b+104>>2]=0;F[b+108>>2]=0;a=b;break f;case 4:b=ka(104);F[b+4>>2]=l;F[b>>2]=2960;a=F[d+4>>2];F[b+8>>2]=F[d>>2];F[b+12>>2]=a;a=F[d+12>>2];F[b+16>>2]=F[d+8>>2];F[b+20>>2]=a;a=F[d+20>>2];F[b+24>>2]=F[d+16>>2];F[b+28>>2]=a;F[b+40>>2]=0;F[b+32>>2]=0;F[b+36>>2]=0;a=F[d+24>>2];g=F[d+28>>2];if((a|0)!=(g|0)){c=g-a|0;if((c|0)<0){break d}e=ka(c);F[b+32>>2]=e;F[b+40>>2]=(c&-4)+e;while(1){F[e>>2]=F[a>>2];e=e+4|0;a=a+4|0;if((g|0)!=(a|0)){continue}break}F[b+36>>2]=e}a=F[f+4>>2];F[b+44>>2]=F[f>>2];F[b+48>>2]=a;a=F[f+12>>2];F[b+52>>2]=F[f+8>>2];F[b+56>>2]=a;F[b+84>>2]=0;F[b+76>>2]=0;F[b+80>>2]=0;F[b+60>>2]=0;F[b+64>>2]=0;F[b>>2]=3264;a=F[f+4>>2];F[b+88>>2]=F[f>>2];F[b+92>>2]=a;a=F[f+12>>2];F[b+96>>2]=F[f+8>>2];F[b+100>>2]=a;a=b;break f;case 5:break g;default:break f}}a=ka(128);F[a+4>>2]=l;F[a>>2]=2960;b=F[d+4>>2];F[a+8>>2]=F[d>>2];F[a+12>>2]=b;b=F[d+12>>2];F[a+16>>2]=F[d+8>>2];F[a+20>>2]=b;b=F[d+20>>2];F[a+24>>2]=F[d+16>>2];F[a+28>>2]=b;F[a+40>>2]=0;F[a+32>>2]=0;F[a+36>>2]=0;h:{i:{c=F[d+28>>2];b=F[d+24>>2];if((c|0)!=(b|0)){c=c-b|0;if((c|0)<0){break i}b=ka(c);F[a+36>>2]=b;F[a+32>>2]=b;F[a+40>>2]=(c&-4)+b;e=F[d+24>>2];c=F[d+28>>2];if((e|0)!=(c|0)){while(1){F[b>>2]=F[e>>2];b=b+4|0;e=e+4|0;if((c|0)!=(e|0)){continue}break}}F[a+36>>2]=b}F[a>>2]=2904;b=F[f+4>>2];F[a+44>>2]=F[f>>2];F[a+48>>2]=b;b=F[f+12>>2];F[a+52>>2]=F[f+8>>2];F[a+56>>2]=b;b=a- -64|0;F[b>>2]=0;F[b+4>>2]=0;F[a+60>>2]=4128;F[a>>2]=3500;b=F[f+4>>2];F[a+72>>2]=F[f>>2];F[a+76>>2]=b;b=F[f+12>>2];F[a+80>>2]=F[f+8>>2];F[a+84>>2]=b;F[a+104>>2]=1065353216;F[a+108>>2]=-1;F[a+96>>2]=-1;F[a+100>>2]=-1;F[a+88>>2]=1;F[a+92>>2]=-1;F[a+60>>2]=3736;F[a+112>>2]=0;F[a+116>>2]=0;D[a+117|0]=0;D[a+118|0]=0;D[a+119|0]=0;D[a+120|0]=0;D[a+121|0]=0;D[a+122|0]=0;D[a+123|0]=0;D[a+124|0]=0;break h}na();v()}break f}e=a;break e}a=F[i+44>>2];F[j+12>>2]=g;F[j+8>>2]=a;F[j+20>>2]=f;F[j+16>>2]=f+12;f=j+8|0;a=0;j:{k:{switch(b-1|0){case 0:b=ka(60);F[b+4>>2]=l;F[b>>2]=2960;a=F[d+4>>2];F[b+8>>2]=F[d>>2];F[b+12>>2]=a;a=F[d+12>>2];F[b+16>>2]=F[d+8>>2];F[b+20>>2]=a;a=F[d+20>>2];F[b+24>>2]=F[d+16>>2];F[b+28>>2]=a;F[b+40>>2]=0;F[b+32>>2]=0;F[b+36>>2]=0;a=F[d+24>>2];g=F[d+28>>2];if((a|0)!=(g|0)){c=g-a|0;if((c|0)<0){break d}e=ka(c);F[b+32>>2]=e;F[b+40>>2]=(c&-4)+e;while(1){F[e>>2]=F[a>>2];e=e+4|0;a=a+4|0;if((g|0)!=(a|0)){continue}break}F[b+36>>2]=e}a=F[f+4>>2];F[b+44>>2]=F[f>>2];F[b+48>>2]=a;a=F[f+12>>2];F[b+52>>2]=F[f+8>>2];F[b+56>>2]=a;F[b>>2]=4156;a=b;break j;case 3:b=ka(112);F[b+4>>2]=l;F[b>>2]=2960;a=F[d+4>>2];F[b+8>>2]=F[d>>2];F[b+12>>2]=a;a=F[d+12>>2];F[b+16>>2]=F[d+8>>2];F[b+20>>2]=a;a=F[d+20>>2];F[b+24>>2]=F[d+16>>2];F[b+28>>2]=a;F[b+40>>2]=0;F[b+32>>2]=0;F[b+36>>2]=0;a=F[d+24>>2];g=F[d+28>>2];if((a|0)!=(g|0)){c=g-a|0;if((c|0)<0){break d}e=ka(c);F[b+32>>2]=e;F[b+40>>2]=(c&-4)+e;while(1){F[e>>2]=F[a>>2];e=e+4|0;a=a+4|0;if((g|0)!=(a|0)){continue}break}F[b+36>>2]=e}a=F[f+4>>2];F[b+44>>2]=F[f>>2];F[b+48>>2]=a;a=F[f+12>>2];F[b+52>>2]=F[f+8>>2];F[b+56>>2]=a;F[b+60>>2]=0;F[b+64>>2]=0;F[b>>2]=4580;F[b+68>>2]=0;F[b+72>>2]=0;F[b+76>>2]=0;F[b+80>>2]=0;F[b+84>>2]=0;F[b+88>>2]=0;F[b+92>>2]=0;F[b+96>>2]=0;F[b+100>>2]=0;F[b+104>>2]=0;F[b+108>>2]=0;a=b;break j;case 4:b=ka(104);F[b+4>>2]=l;F[b>>2]=2960;a=F[d+4>>2];F[b+8>>2]=F[d>>2];F[b+12>>2]=a;a=F[d+12>>2];F[b+16>>2]=F[d+8>>2];F[b+20>>2]=a;a=F[d+20>>2];F[b+24>>2]=F[d+16>>2];F[b+28>>2]=a;F[b+40>>2]=0;F[b+32>>2]=0;F[b+36>>2]=0;a=F[d+24>>2];g=F[d+28>>2];if((a|0)!=(g|0)){c=g-a|0;if((c|0)<0){break d}e=ka(c);F[b+32>>2]=e;F[b+40>>2]=(c&-4)+e;while(1){F[e>>2]=F[a>>2];e=e+4|0;a=a+4|0;if((g|0)!=(a|0)){continue}break}F[b+36>>2]=e}a=F[f+4>>2];F[b+44>>2]=F[f>>2];F[b+48>>2]=a;a=F[f+12>>2];F[b+52>>2]=F[f+8>>2];F[b+56>>2]=a;F[b+84>>2]=0;F[b+76>>2]=0;F[b+80>>2]=0;F[b+60>>2]=0;F[b+64>>2]=0;F[b>>2]=4816;a=F[f+4>>2];F[b+88>>2]=F[f>>2];F[b+92>>2]=a;a=F[f+12>>2];F[b+96>>2]=F[f+8>>2];F[b+100>>2]=a;a=b;break j;case 5:break k;default:break j}}a=ka(128);F[a+4>>2]=l;F[a>>2]=2960;b=F[d+4>>2];F[a+8>>2]=F[d>>2];F[a+12>>2]=b;b=F[d+12>>2];F[a+16>>2]=F[d+8>>2];F[a+20>>2]=b;b=F[d+20>>2];F[a+24>>2]=F[d+16>>2];F[a+28>>2]=b;F[a+40>>2]=0;F[a+32>>2]=0;F[a+36>>2]=0;l:{m:{c=F[d+28>>2];b=F[d+24>>2];if((c|0)!=(b|0)){c=c-b|0;if((c|0)<0){break m}b=ka(c);F[a+36>>2]=b;F[a+32>>2]=b;F[a+40>>2]=(c&-4)+b;e=F[d+24>>2];c=F[d+28>>2];if((e|0)!=(c|0)){while(1){F[b>>2]=F[e>>2];b=b+4|0;e=e+4|0;if((c|0)!=(e|0)){continue}break}}F[a+36>>2]=b}F[a>>2]=4524;b=F[f+4>>2];F[a+44>>2]=F[f>>2];F[a+48>>2]=b;b=F[f+12>>2];F[a+52>>2]=F[f+8>>2];F[a+56>>2]=b;b=a- -64|0;F[b>>2]=0;F[b+4>>2]=0;F[a+60>>2]=5624;F[a>>2]=5040;b=F[f+4>>2];F[a+72>>2]=F[f>>2];F[a+76>>2]=b;b=F[f+12>>2];F[a+80>>2]=F[f+8>>2];F[a+84>>2]=b;F[a+104>>2]=1065353216;F[a+108>>2]=-1;F[a+96>>2]=-1;F[a+100>>2]=-1;F[a+88>>2]=1;F[a+92>>2]=-1;F[a+60>>2]=5260;F[a+112>>2]=0;F[a+116>>2]=0;D[a+117|0]=0;D[a+118|0]=0;D[a+119|0]=0;D[a+120|0]=0;D[a+121|0]=0;D[a+122|0]=0;D[a+123|0]=0;D[a+124|0]=0;break l}na();v()}break j}e=a}Z=j+32|0;break c}na();v()}if(e){break b}}e=ka(44);F[e+4>>2]=k;F[e>>2]=2960;a=F[d+4>>2];F[e+8>>2]=F[d>>2];F[e+12>>2]=a;a=F[d+12>>2];F[e+16>>2]=F[d+8>>2];F[e+20>>2]=a;a=F[d+20>>2];F[e+24>>2]=F[d+16>>2];F[e+28>>2]=a;F[e+40>>2]=0;F[e+32>>2]=0;F[e+36>>2]=0;n:{c=F[d+24>>2];b=F[d+28>>2];if((c|0)!=(b|0)){a=b-c|0;if((a|0)<0){break n}k=ka(a);F[e+32>>2]=k;F[e+40>>2]=(a&-4)+k;while(1){F[k>>2]=F[c>>2];k=k+4|0;c=c+4|0;if((b|0)!=(c|0)){continue}break}F[e+36>>2]=k}F[e>>2]=5652;break b}na();v()}k=e;a=F[h+32>>2];if(!a){break a}F[h+36>>2]=a;ja(a)}Z=h+48|0;return k|0}function rf(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0,z=0,A=0;m=Z-16|0;Z=m;F[m+12>>2]=b;b=ka(32);F[m>>2]=b;F[m+4>>2]=24;F[m+8>>2]=-2147483616;c=G[1196]|G[1197]<<8|(G[1198]<<16|G[1199]<<24);d=G[1192]|G[1193]<<8|(G[1194]<<16|G[1195]<<24);D[b+16|0]=d;D[b+17|0]=d>>>8;D[b+18|0]=d>>>16;D[b+19|0]=d>>>24;D[b+20|0]=c;D[b+21|0]=c>>>8;D[b+22|0]=c>>>16;D[b+23|0]=c>>>24;c=G[1188]|G[1189]<<8|(G[1190]<<16|G[1191]<<24);d=G[1184]|G[1185]<<8|(G[1186]<<16|G[1187]<<24);D[b+8|0]=d;D[b+9|0]=d>>>8;D[b+10|0]=d>>>16;D[b+11|0]=d>>>24;D[b+12|0]=c;D[b+13|0]=c>>>8;D[b+14|0]=c>>>16;D[b+15|0]=c>>>24;c=G[1180]|G[1181]<<8|(G[1182]<<16|G[1183]<<24);d=G[1176]|G[1177]<<8|(G[1178]<<16|G[1179]<<24);D[b|0]=d;D[b+1|0]=d>>>8;D[b+2|0]=d>>>16;D[b+3|0]=d>>>24;D[b+4|0]=c;D[b+5|0]=c>>>8;D[b+6|0]=c>>>16;D[b+7|0]=c>>>24;D[b+24|0]=0;l=Z-48|0;Z=l;f=F[m+12>>2];d=a;a=a+16|0;b=F[a>>2];a:{b:{if(!b){break b}c=a;while(1){e=(f|0)>F[b+16>>2];c=e?c:b;b=F[(e?b+4|0:b)>>2];if(b){continue}break}if((a|0)==(c|0)){break b}if((f|0)>=F[c+16>>2]){break a}}F[l+28>>2]=0;F[l+32>>2]=0;y=l+24|0;F[l+24>>2]=y|4;a=l+16|0;F[a>>2]=0;F[a+4>>2]=0;F[l+8>>2]=f;F[l+12>>2]=a;t=l+8|0;a=t;x=Z-16|0;Z=x;u=d+12|0;c=F[u+4>>2];c:{d:{if(!c){o=u+4|0;d=o;break d}a=F[a>>2];while(1){d=c;b=F[c+16>>2];if((b|0)>(a|0)){o=d;c=F[d>>2];if(c){continue}break d}if((a|0)<=(b|0)){g=d;a=0;break c}c=F[d+4>>2];if(c){continue}break}o=d+4|0}g=ka(32);b=F[t>>2];q=g+24|0;a=q;F[a>>2]=0;F[a+4>>2]=0;F[g+16>>2]=b;r=g+20|0;F[r>>2]=a;c=F[t+4>>2];z=t+8|0;if((c|0)!=(z|0)){while(1){p=Z-16|0;Z=p;a=p+8|0;k=c+16|0;e:{f:{g:{h:{i:{j:{k:{f=q;e=r+4|0;l:{if((f|0)==(e|0)){break l}b=G[f+27|0];h=b<<24>>24<0;i=G[k+11|0];n=i<<24>>24;j=(n|0)<0;i=j?F[k+4>>2]:i;b=h?F[f+20>>2]:b;s=i>>>0>b>>>0;w=s?b:i;if(w){j=j?F[k>>2]:k;h=h?F[f+16>>2]:f+16|0;A=sa(j,h,w);if(!A){if(b>>>0>i>>>0){break l}break k}if((A|0)>=0){break k}break l}if(b>>>0<=i>>>0){break j}}h=F[f>>2];m:{a=f;n:{if((a|0)==F[r>>2]){break n}o:{if(!h){b=f;while(1){a=F[b+8>>2];i=F[a>>2]==(b|0);b=a;if(i){continue}break}break o}b=h;while(1){a=b;b=F[b+4>>2];if(b){continue}break}}i=G[k+11|0];s=i<<24>>24;b=(s|0)<0;j=G[a+27|0];n=j<<24>>24<0;p:{i=b?F[k+4>>2]:i;j=n?F[a+20>>2]:j;w=i>>>0>>0?i:j;if(w){b=sa(n?F[a+16>>2]:a+16|0,b?F[k>>2]:k,w);if(b){break p}}if(i>>>0>j>>>0){break n}break m}if((b|0)>=0){break m}}if(!h){F[p+12>>2]=f;a=f;break e}F[p+12>>2]=a;a=a+4|0;break e}b=F[e>>2];if(!b){F[p+12>>2]=e;a=e;break e}h=(s|0)<0?F[k>>2]:k;f=e;while(1){a=b;b=G[b+27|0];e=b<<24>>24<0;b=e?F[a+20>>2]:b;k=b>>>0>>0;q:{r:{s:{t:{n=k?b:i;u:{if(n){e=e?F[a+16>>2]:a+16|0;j=sa(h,e,n);if(!j){if(b>>>0>i>>>0){break u}break t}if((j|0)>=0){break t}break u}if(b>>>0<=i>>>0){break s}}f=a;b=F[a>>2];if(b){continue}break g}b=sa(e,h,n);if(b){break r}}if(k){break q}break g}if((b|0)>=0){break g}}f=a+4|0;b=F[a+4>>2];if(b){continue}break}break g}b=sa(h,j,w);if(b){break i}}if(s){break h}break f}if((b|0)>=0){break f}}h=F[f+4>>2];v:{if(!h){b=f;while(1){a=F[b+8>>2];j=F[a>>2]!=(b|0);b=a;if(j){continue}break}break v}b=h;while(1){a=b;b=F[b>>2];if(b){continue}break}}w:{x:{if((a|0)==(e|0)){break x}j=G[a+27|0];b=j<<24>>24<0;y:{j=b?F[a+20>>2]:j;s=i>>>0>j>>>0?j:i;if(s){b=sa((n|0)<0?F[k>>2]:k,b?F[a+16>>2]:a+16|0,s);if(b){break y}}if(i>>>0>>0){break x}break w}if((b|0)>=0){break w}}if(!h){F[p+12>>2]=f;a=f+4|0;break e}F[p+12>>2]=a;break e}b=F[e>>2];if(!b){F[p+12>>2]=e;a=e;break e}h=(n|0)<0?F[k>>2]:k;f=e;while(1){a=b;b=G[b+27|0];e=b<<24>>24<0;b=e?F[a+20>>2]:b;k=b>>>0>>0;z:{A:{B:{C:{n=k?b:i;D:{if(n){e=e?F[a+16>>2]:a+16|0;j=sa(h,e,n);if(!j){if(b>>>0>i>>>0){break D}break C}if((j|0)>=0){break C}break D}if(b>>>0<=i>>>0){break B}}f=a;b=F[a>>2];if(b){continue}break g}b=sa(e,h,n);if(b){break A}}if(k){break z}break g}if((b|0)>=0){break g}}f=a+4|0;b=F[a+4>>2];if(b){continue}break}}F[p+12>>2]=a;a=f;break e}F[p+12>>2]=f;F[a>>2]=f}f=a;a=F[a>>2];if(a){b=0}else{a=ka(40);b=a+16|0;E:{if(D[c+27|0]>=0){e=F[c+20>>2];F[b>>2]=F[c+16>>2];F[b+4>>2]=e;F[b+8>>2]=F[c+24>>2];break E}ra(b,F[c+16>>2],F[c+20>>2])}b=a+28|0;F:{if(D[c+39|0]>=0){e=F[c+32>>2];F[b>>2]=F[c+28>>2];F[b+4>>2]=e;F[b+8>>2]=F[c+36>>2];break F}ra(b,F[c+28>>2],F[c+32>>2])}F[a+8>>2]=F[p+12>>2];F[a>>2]=0;F[a+4>>2]=0;F[f>>2]=a;b=a;e=F[F[r>>2]>>2];if(e){F[r>>2]=e;b=F[f>>2]}nb(F[r+4>>2],b);F[r+8>>2]=F[r+8>>2]+1;b=1}D[x+12|0]=b;F[x+8>>2]=a;Z=p+16|0;b=F[c+4>>2];G:{if(b){while(1){c=b;b=F[b>>2];if(b){continue}break G}}while(1){a=c;c=F[c+8>>2];if((a|0)!=F[c>>2]){continue}break}}if((c|0)!=(z|0)){continue}break}}F[g+8>>2]=d;F[g>>2]=0;F[g+4>>2]=0;F[o>>2]=g;c=g;a=F[F[u>>2]>>2];if(a){F[u>>2]=a;c=F[o>>2]}nb(F[u+4>>2],c);F[u+8>>2]=F[u+8>>2]+1;a=1}D[l+44|0]=a;F[l+40>>2]=g;Z=x+16|0;c=F[l+40>>2];ib(t|4,F[l+16>>2]);ib(y,F[l+28>>2])}f=Z-48|0;Z=f;d=f+8|0;g=Z-32|0;Z=g;o=g+32|0;b=o;a=g+21|0;H:{if((b|0)==(a|0)){break H}}e=b-a|0;I:{if((e|0)<=9){h=61;if((e|0)<(I[2684]<=1|0)){break I}}D[a|0]=49;b=a+1|0;h=0}F[g+12>>2]=h;F[g+8>>2]=b;h=Z-16|0;Z=h;e=Z-16|0;Z=e;J:{q=F[g+8>>2];g=q-a|0;if(g>>>0<=2147483631){K:{if(g>>>0<11){D[d+11|0]=g|G[d+11|0]&128;D[d+11|0]=G[d+11|0]&127;b=d;break K}t=e+8|0;if(g>>>0>=11){k=g+16&-16;b=k-1|0;b=(b|0)==11?k:b}else{b=10}sb(t,b+1|0);b=F[e+8>>2];F[d>>2]=b;F[d+8>>2]=F[d+8>>2]&-2147483648|F[e+12>>2]&2147483647;F[d+8>>2]=F[d+8>>2]|-2147483648;F[d+4>>2]=g}while(1){if((a|0)!=(q|0)){D[b|0]=G[a|0];b=b+1|0;a=a+1|0;continue}break}D[e+7|0]=0;D[b|0]=G[e+7|0];Z=e+16|0;break J}za();v()}Z=h+16|0;Z=o;F[f+32>>2]=m;L:{M:{a=c+20|0;d=F[a+4>>2];N:{if(!d){g=a+4|0;c=g;break N}b=G[m+11|0];c=b<<24>>24<0;e=c?F[m>>2]:m;b=c?F[m+4>>2]:b;while(1){c=d;d=G[c+27|0];g=d<<24>>24<0;d=g?F[c+20>>2]:d;o=d>>>0>>0;O:{P:{Q:{R:{h=o?d:b;S:{if(h){g=g?F[c+16>>2]:c+16|0;q=sa(e,g,h);if(!q){if(b>>>0>>0){break S}break R}if((q|0)>=0){break R}break S}if(b>>>0>=d>>>0){break Q}}g=c;d=F[c>>2];if(d){continue}break N}d=sa(g,e,h);if(d){break P}}if(o){break O}break M}if((d|0)>=0){break M}}d=F[c+4>>2];if(d){continue}break}g=c+4|0}d=ka(40);e=d+16|0;b=F[f+32>>2];T:{if(D[b+11|0]>=0){o=F[b+4>>2];F[e>>2]=F[b>>2];F[e+4>>2]=o;F[e+8>>2]=F[b+8>>2];break T}ra(e,F[b>>2],F[b+4>>2])}F[d+8>>2]=c;F[d>>2]=0;F[d+4>>2]=0;F[d+36>>2]=0;F[d+28>>2]=0;F[d+32>>2]=0;F[g>>2]=d;c=d;b=F[F[a>>2]>>2];if(b){F[a>>2]=b;c=F[g>>2]}nb(F[a+4>>2],c);F[a+8>>2]=F[a+8>>2]+1;a=1;break L}d=c;a=0}D[f+44|0]=a;F[f+40>>2]=d;a=F[f+40>>2];if(D[a+39|0]<0){ja(F[a+28>>2])}b=F[f+12>>2];F[a+28>>2]=F[f+8>>2];F[a+32>>2]=b;F[a+36>>2]=F[f+16>>2];Z=f+48|0;Z=l+48|0;if(D[m+11|0]<0){ja(F[m>>2])}Z=m+16|0}function zd(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0;h=Z-32|0;Z=h;g=F[F[a+4>>2]+44>>2];c=F[a+8>>2];d=F[c>>2];c=F[c+4>>2];F[h+24>>2]=0;F[h+16>>2]=0;F[h+20>>2]=0;d=(c-d>>2>>>0)/3|0;c=F[g+96>>2];f=(F[g+100>>2]-c|0)/12|0;a:{if(d>>>0>f>>>0){e=d-f|0;i=F[g+104>>2];c=F[g+100>>2];if(e>>>0<=(i-c|0)/12>>>0){b:{if(!e){break b}d=c;f=L(e,12)-12|0;i=((f>>>0)/12|0)+1&3;if(i){while(1){l=F[h+20>>2];F[d>>2]=F[h+16>>2];F[d+4>>2]=l;F[d+8>>2]=F[h+24>>2];d=d+12|0;j=j+1|0;if((i|0)!=(j|0)){continue}break}}c=L(e,12)+c|0;if(f>>>0<36){break b}while(1){f=F[h+20>>2];F[d>>2]=F[h+16>>2];F[d+4>>2]=f;F[d+8>>2]=F[h+24>>2];F[d+20>>2]=F[h+24>>2];f=F[h+20>>2];F[d+12>>2]=F[h+16>>2];F[d+16>>2]=f;F[d+32>>2]=F[h+24>>2];f=F[h+20>>2];F[d+24>>2]=F[h+16>>2];F[d+28>>2]=f;f=F[h+20>>2];F[d+36>>2]=F[h+16>>2];F[d+40>>2]=f;F[d+44>>2]=F[h+24>>2];d=d+48|0;if((d|0)!=(c|0)){continue}break}}F[g+100>>2]=c;break a}c:{f=F[g+96>>2];n=(c-f|0)/12|0;d=n+e|0;if(d>>>0<357913942){f=(i-f|0)/12|0;i=f<<1;i=f>>>0>=178956970?357913941:d>>>0>>0?i:d;if(i){if(i>>>0>=357913942){break c}l=ka(L(i,12))}f=L(n,12)+l|0;d=f;e=L(e,12);n=e-12|0;q=((n>>>0)/12|0)+1&3;if(q){while(1){r=F[h+20>>2];F[d>>2]=F[h+16>>2];F[d+4>>2]=r;F[d+8>>2]=F[h+24>>2];d=d+12|0;j=j+1|0;if((q|0)!=(j|0)){continue}break}}e=e+f|0;if(n>>>0>=36){while(1){j=F[h+20>>2];F[d>>2]=F[h+16>>2];F[d+4>>2]=j;F[d+8>>2]=F[h+24>>2];F[d+20>>2]=F[h+24>>2];j=F[h+20>>2];F[d+12>>2]=F[h+16>>2];F[d+16>>2]=j;F[d+32>>2]=F[h+24>>2];j=F[h+20>>2];F[d+24>>2]=F[h+16>>2];F[d+28>>2]=j;j=F[h+20>>2];F[d+36>>2]=F[h+16>>2];F[d+40>>2]=j;F[d+44>>2]=F[h+24>>2];d=d+48|0;if((e|0)!=(d|0)){continue}break}}j=F[g+96>>2];if((j|0)!=(c|0)){while(1){c=c-12|0;n=F[c+4>>2];f=f-12|0;d=f;F[d>>2]=F[c>>2];F[d+4>>2]=n;F[d+8>>2]=F[c+8>>2];if((c|0)!=(j|0)){continue}break}c=F[g+96>>2]}F[g+104>>2]=L(i,12)+l;F[g+100>>2]=e;F[g+96>>2]=f;if(c){ja(c)}break a}na();v()}oa();v()}if(d>>>0>=f>>>0){break a}F[g+100>>2]=c+L(d,12)}d:{if(F[a+216>>2]==F[a+220>>2]){j=F[a+4>>2];c=F[j+44>>2];d=F[c+100>>2];f=F[c+96>>2];if((d|0)!=(f|0)){c=(d-f|0)/12|0;o=c>>>0<=1?1:c;c=0;while(1){d=F[a+8>>2];i=f+L(c,12)|0;g=L(c,3);e:{f:{if((g|0)==-1){e=F[(F[d>>2]+(g<<2)|0)+4>>2];k=-1;g=1;break f}e=-1;k=F[F[d>>2]+(g<<2)>>2];l=g+1|0;if((l|0)==-1){g=0;break f}e=F[F[d>>2]+(l<<2)>>2];g=g+2|0;m=-1;if((g|0)==-1){break e}}m=F[F[d>>2]+(g<<2)>>2]}F[i+8>>2]=m;F[i+4>>2]=e;F[i>>2]=k;c=c+1|0;if((o|0)!=(c|0)){continue}break}}F[F[j+4>>2]+80>>2]=b;c=1;break d}d=0;F[h+24>>2]=0;F[h+16>>2]=0;F[h+20>>2]=0;l=F[a+8>>2];c=F[l>>2];g=F[l+4>>2];F[h+8>>2]=0;F[h>>2]=0;F[h+4>>2]=0;b=0;g:{h:{i:{j:{k:{l:{if((c|0)!=(g|0)){c=g-c|0;if((c|0)<0){break l}b=ka(c);F[h>>2]=b;F[h+8>>2]=(c&-4)+b;u=h,w=ma(b,0,c)+c|0,F[u+4>>2]=w}c=F[l+24>>2];if((F[l+28>>2]-c|0)<4){break h}f=0;while(1){g=F[(p<<2)+c>>2];m:{if((g|0)==-1){break m}n:{if(F[F[a+120>>2]+(p>>>3&536870908)>>2]>>>p&1){break n}n=F[a+216>>2];c=F[a+220>>2];if((n|0)==(c|0)){break n}e=g+2|0;i=(g>>>0)%3|0;q=i?g-1|0:e;c=(c-n|0)/144|0;r=c>>>0<=1?1:c;j=0;t=(i|0)!=0|(e|0)!=-1;while(1){s=g<<2;i=L(j,144)+n|0;c=F[s+F[F[i+68>>2]>>2]>>2];o:{if(!(F[F[i+16>>2]+(c>>>3&536870908)>>2]>>>c&1)){break o}c=-1;p:{if(!t){break p}e=F[F[l+12>>2]+(q<<2)>>2];c=-1;if((e|0)==-1){break p}c=e-1|0;if((e>>>0)%3|0){break p}c=e+2|0}if((g|0)==(c|0)){break o}e=s;s=F[i+32>>2];i=F[e+s>>2];while(1){e=0;if((c|0)==-1){break g}if((i|0)!=F[s+(c<<2)>>2]){g=c;break n}q:{r:{if((c>>>0)%3|0){e=c-1|0;break r}e=c+2|0;m=-1;if((e|0)==-1){break q}}c=F[F[l+12>>2]+(e<<2)>>2];m=-1;if((c|0)==-1){break q}m=c-1|0;if((c>>>0)%3|0){break q}m=c+2|0}c=m;if((g|0)!=(c|0)){continue}break}}j=j+1|0;if((r|0)!=(j|0)){continue}break}}i=k-f|0;e=i>>2;F[(g<<2)+b>>2]=e;s:{if(k>>>0>>0){F[k>>2]=g;k=k+4|0;F[h+20>>2]=k;break s}c=e+1|0;if(c>>>0>=1073741824){break k}d=o-f|0;k=d>>>1|0;c=d>>>0>=2147483644?1073741823:c>>>0>>0?k:c;if(c){if(c>>>0>=1073741824){break j}d=ka(c<<2)}else{d=0}e=d+(e<<2)|0;F[e>>2]=g;m=c<<2;c=pa(d,f,i);o=m+c|0;F[h+24>>2]=o;k=e+4|0;F[h+20>>2]=k;F[h+16>>2]=c;if(f){ja(f);l=F[a+8>>2]}f=c}if((g|0)==-1){break m}t:{if((g>>>0)%3|0){c=g-1|0;break t}c=g+2|0;if((c|0)==-1){break m}}c=F[F[l+12>>2]+(c<<2)>>2];if((c|0)==-1){break m}c=c+((c>>>0)%3|0?-1:2)|0;if((c|0)==-1){break m}e=g;if((c|0)==(g|0)){break m}while(1){i=c;u:{v:{c=F[a+220>>2];j=F[a+216>>2];if((c|0)==(j|0)){break v}c=(c-j|0)/144|0;n=c>>>0<=1?1:c;c=0;while(1){q=F[(j+L(c,144)|0)+32>>2];r=i<<2;if(F[q+r>>2]==F[q+(e<<2)>>2]){c=c+1|0;if((n|0)!=(c|0)){continue}break v}break}j=k-d|0;e=j>>2;F[b+r>>2]=e;if(k>>>0>>0){F[k>>2]=i;k=k+4|0;F[h+20>>2]=k;f=d;break u}c=e+1|0;if(c>>>0>=1073741824){break i}f=o-d|0;k=f>>>1|0;c=f>>>0>=2147483644?1073741823:c>>>0>>0?k:c;if(c){if(c>>>0>=1073741824){break j}f=ka(c<<2)}else{f=0}e=f+(e<<2)|0;F[e>>2]=i;m=c<<2;c=pa(f,d,j);o=m+c|0;F[h+24>>2]=o;k=e+4|0;F[h+20>>2]=k;F[h+16>>2]=c;if(!d){d=c;break u}ja(d);l=F[a+8>>2];d=c;break u}F[(i<<2)+b>>2]=F[(e<<2)+b>>2]}if((i|0)==-1){break m}w:{if((i>>>0)%3|0){c=i-1|0;break w}c=i+2|0;if((c|0)==-1){break m}}c=F[F[l+12>>2]+(c<<2)>>2];if((c|0)==-1){break m}c=c+((c>>>0)%3|0?-1:2)|0;if((c|0)==-1){break m}e=i;if((c|0)!=(g|0)){continue}break}}p=p+1|0;c=F[l+24>>2];if((p|0)>2]-c>>2){continue}break}break h}na();v()}na();v()}oa();v()}na();v()}i=F[a+4>>2];a=F[i+44>>2];c=F[a+100>>2];a=F[a+96>>2];x:{if((c|0)==(a|0)){break x}g=(c-a|0)/12|0;f=g>>>0<=1?1:g;l=f&1;c=0;if(g>>>0>=2){j=f&-2;g=0;while(1){e=L(c,12);f=e+b|0;o=F[f>>2];p=F[f+4>>2];e=a+e|0;F[e+8>>2]=F[f+8>>2];F[e>>2]=o;F[e+4>>2]=p;e=L(c|1,12);f=e+b|0;o=F[f>>2];p=F[f+4>>2];e=a+e|0;F[e+8>>2]=F[f+8>>2];F[e>>2]=o;F[e+4>>2]=p;c=c+2|0;g=g+2|0;if((j|0)!=(g|0)){continue}break}}if(!l){break x}g=L(c,12);c=g+b|0;f=F[c>>2];e=F[c+4>>2];a=a+g|0;F[a+8>>2]=F[c+8>>2];F[a>>2]=f;F[a+4>>2]=e}F[F[i+4>>2]+80>>2]=k-d>>2;e=1}c=e;if(b){ja(b)}if(!d){break d}F[h+20>>2]=d;ja(d)}Z=h+32|0;return c}function de(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,G=0,H=0,I=0,J=0,K=0,M=0,N=0,O=0,P=0;g=Z+-64|0;Z=g;F[a+8>>2]=e;y=a+32|0;f=F[y>>2];d=F[a+36>>2]-f>>2;a:{b:{if(d>>>0>>0){qa(y,e-d|0);F[g+56>>2]=0;F[g+60>>2]=0;F[g+48>>2]=0;F[g+52>>2]=0;F[g+40>>2]=0;F[g+44>>2]=0;F[g+32>>2]=0;F[g+36>>2]=0;F[g+24>>2]=0;F[g+28>>2]=0;F[g+16>>2]=0;F[g+20>>2]=0;F[g>>2]=0;break b}if(d>>>0>e>>>0){F[a+36>>2]=f+(e<<2)}F[g+56>>2]=0;F[g+60>>2]=0;F[g+48>>2]=0;F[g+52>>2]=0;F[g+40>>2]=0;F[g+44>>2]=0;F[g+32>>2]=0;F[g+36>>2]=0;F[g+24>>2]=0;F[g+28>>2]=0;F[g+16>>2]=0;F[g+20>>2]=0;F[g>>2]=0;d=0;if(!e){break a}}Fa(g+16|0,e,g);h=F[g+28>>2];d=F[g+32>>2]}F[g>>2]=0;d=d-h>>2;c:{if(d>>>0>=e>>>0){if(d>>>0<=e>>>0){break c}F[g+32>>2]=(e<<2)+h;break c}Fa(g+16|12,e-d|0,g)}F[g>>2]=0;f=F[g+40>>2];d=F[g+44>>2]-f>>2;d:{if(d>>>0>=e>>>0){if(d>>>0<=e>>>0){break d}F[g+44>>2]=f+(e<<2);break d}Fa(g+40|0,e-d|0,g)}F[g>>2]=0;f=F[g+52>>2];d=F[g+56>>2]-f>>2;e:{if(d>>>0>=e>>>0){if(d>>>0<=e>>>0){break e}F[g+56>>2]=f+(e<<2);break e}Fa(g+52|0,e-d|0,g)}f:{if(F[a+8>>2]<=0){break f}i=F[g+16>>2];j=F[a+32>>2];h=0;while(1){d=h<<2;f=F[d+i>>2];m=F[a+16>>2];g:{if((f|0)>(m|0)){F[d+j>>2]=m;break g}d=d+j|0;m=F[a+12>>2];if((m|0)>(f|0)){F[d>>2]=m;break g}F[d>>2]=f}h=h+1|0;d=F[a+8>>2];if((h|0)<(d|0)){continue}break}if((d|0)<=0){break f}d=0;while(1){i=d<<2;f=i+c|0;i=F[b+i>>2]+F[j+i>>2]|0;F[f>>2]=i;h:{if((i|0)>F[a+16>>2]){i=i-F[a+20>>2]|0}else{if((i|0)>=F[a+12>>2]){break h}i=i+F[a+20>>2]|0}F[f>>2]=i}d=d+1|0;if((d|0)>2]){continue}break}}H=F[a+52>>2];t=F[a+48>>2];z=ka(16);d=z;F[d>>2]=0;F[d+4>>2]=0;F[d+8>>2]=0;F[d+12>>2]=0;F[g+8>>2]=0;F[g>>2]=0;F[g+4>>2]=0;i:{if(e){if(e>>>0>=1073741824){break i}d=e<<2;r=ka(d);F[g>>2]=r;F[g+8>>2]=d+r;ma(r,0,d)}A=1;d=F[a+56>>2];B=F[d>>2];d=F[d+4>>2]-B|0;j:{if((d|0)<8){break j}w=d>>2;I=(w|0)<=2?2:w;J=w>>>0<=1?1:w;C=e&-2;D=e&1;K=e&-4;E=e&3;G=e-1|0;M=e<<2;N=e>>>0<4;A=0;m=1;while(1){k:{l:{m:{n:{if((m|0)!=(J|0)){o:{p:{f=F[(m<<2)+B>>2];if((f|0)==-1){break p}k=1;d=f+2|0;j=(f>>>0)%3|0;x=j?f-1|0:d;s=1<>2];O=n+(x>>>3&536870908)|0;i=0;P=(j|0)!=0|(d|0)!=-1;d=f;q:{while(1){r:{if(F[n+(d>>>3&536870908)>>2]>>>d&1){break r}j=F[F[F[t+64>>2]+12>>2]+(d<<2)>>2];if((j|0)==-1){break r}l=F[H>>2];h=F[t+28>>2];p=F[l+(F[h+(j<<2)>>2]<<2)>>2];if((p|0)>=(m|0)){break r}q=j+1|0;q=F[l+(F[h+(((q>>>0)%3|0?q:j-2|0)<<2)>>2]<<2)>>2];if((q|0)>=(m|0)){break r}h=F[l+(F[h+(j+((j>>>0)%3|0?-1:2)<<2)>>2]<<2)>>2];if((h|0)>=(m|0)){break r}s:{if(!e){break s}j=F[(g+16|0)+L(i,12)>>2];l=L(e,h);q=L(e,q);p=L(e,p);h=0;o=0;if(G){while(1){F[j+(h<<2)>>2]=(F[(h+l<<2)+c>>2]+F[(h+q<<2)+c>>2]|0)-F[(h+p<<2)+c>>2];u=h|1;F[j+(u<<2)>>2]=(F[(l+u<<2)+c>>2]+F[(q+u<<2)+c>>2]|0)-F[(p+u<<2)+c>>2];h=h+2|0;o=o+2|0;if((C|0)!=(o|0)){continue}break}}if(!D){break s}F[j+(h<<2)>>2]=(F[(h+l<<2)+c>>2]+F[(h+q<<2)+c>>2]|0)-F[(h+p<<2)+c>>2]}j=4;i=i+1|0;if((i|0)==4){break q}}t:{if(k&1){h=d-2|0;j=d+1|0;d=-1;j=(j>>>0)%3|0?j:h;if((j|0)==-1|F[n+(j>>>3&536870908)>>2]>>>j&1){break t}j=F[F[F[t+64>>2]+12>>2]+(j<<2)>>2];if((j|0)==-1){break t}d=j+1|0;d=(d>>>0)%3|0?d:j-2|0;break t}u:{if((d>>>0)%3|0){h=d-1|0;break u}h=d+2|0;d=-1;if((h|0)==-1){break t}}d=-1;if(F[n+(h>>>3&536870908)>>2]>>>h&1){break t}j=F[F[F[t+64>>2]+12>>2]+(h<<2)>>2];if((j|0)==-1){break t}if((j>>>0)%3|0){d=j-1|0;break t}d=j+2|0}v:{if((d|0)==(f|0)){break v}if((d|0)==-1&k){if(!P|s&F[O>>2]){break v}d=F[F[F[t+64>>2]+12>>2]+(x<<2)>>2];if((d|0)==-1){break v}k=0;d=(d>>>0)%3|0?d-1|0:d+2|0}if((d|0)!=-1){continue}}break}j=i;if((j|0)<=0){break p}}if(e){ma(r,0,M)}d=j-1|0;q=(d<<2)+z|0;d=L(d,12)+a|0;u=d;x=F[d- -64>>2];k=0;d=F[g>>2];f=0;while(1){i=F[q>>2];F[q>>2]=i+1;if(i>>>0>=x>>>0){break j}w:{if(F[F[u+60>>2]+(i>>>3&536870908)>>2]>>>i&1){break w}f=f+1|0;if(!e){break w}n=F[(g+16|0)+L(k,12)>>2];i=0;h=0;p=0;if(!N){while(1){l=h<<2;o=l+d|0;F[o>>2]=F[l+n>>2]+F[o>>2];o=l|4;s=o+d|0;F[s>>2]=F[n+o>>2]+F[s>>2];o=l|8;s=o+d|0;F[s>>2]=F[n+o>>2]+F[s>>2];l=l|12;o=l+d|0;F[o>>2]=F[l+n>>2]+F[o>>2];h=h+4|0;p=p+4|0;if((K|0)!=(p|0)){continue}break}}if(!E){break w}while(1){l=h<<2;p=l+d|0;F[p>>2]=F[l+n>>2]+F[p>>2];h=h+1|0;i=i+1|0;if((E|0)!=(i|0)){continue}break}}k=k+1|0;if((k|0)!=(j|0)){continue}break}i=L(e,m);if(!f){break o}if(!e){break l}h=0;d=0;if(G){break n}break m}i=L(e,m)}if(F[a+8>>2]<=0){break k}k=(L(m-1|0,e)<<2)+c|0;j=F[y>>2];h=0;while(1){d=h<<2;f=F[d+k>>2];n=F[a+16>>2];x:{if((f|0)>(n|0)){F[d+j>>2]=n;break x}d=d+j|0;n=F[a+12>>2];if((n|0)>(f|0)){F[d>>2]=n;break x}F[d>>2]=f}h=h+1|0;f=F[a+8>>2];if((h|0)<(f|0)){continue}break}d=0;if((f|0)<=0){break k}f=i<<2;h=f+c|0;k=b+f|0;while(1){i=d<<2;f=i+h|0;i=F[i+k>>2]+F[j+i>>2]|0;F[f>>2]=i;y:{if((i|0)>F[a+16>>2]){i=i-F[a+20>>2]|0}else{if((i|0)>=F[a+12>>2]){break y}i=i+F[a+20>>2]|0}F[f>>2]=i}d=d+1|0;if((d|0)>2]){continue}break}break k}ta();v()}while(1){j=h<<2;k=j+r|0;F[k>>2]=F[k>>2]/(f|0);j=(j|4)+r|0;F[j>>2]=F[j>>2]/(f|0);h=h+2|0;d=d+2|0;if((C|0)!=(d|0)){continue}break}}if(!D){break l}d=(h<<2)+r|0;F[d>>2]=F[d>>2]/(f|0)}if(F[a+8>>2]<=0){break k}j=F[y>>2];h=0;while(1){d=h<<2;f=F[d+r>>2];k=F[a+16>>2];z:{if((f|0)>(k|0)){F[d+j>>2]=k;break z}d=d+j|0;k=F[a+12>>2];if((k|0)>(f|0)){F[d>>2]=k;break z}F[d>>2]=f}h=h+1|0;f=F[a+8>>2];if((h|0)<(f|0)){continue}break}d=0;if((f|0)<=0){break k}f=i<<2;h=f+c|0;k=b+f|0;while(1){i=d<<2;f=i+h|0;i=F[i+k>>2]+F[j+i>>2]|0;F[f>>2]=i;A:{if((i|0)>F[a+16>>2]){i=i-F[a+20>>2]|0}else{if((i|0)>=F[a+12>>2]){break A}i=i+F[a+20>>2]|0}F[f>>2]=i}d=d+1|0;if((d|0)>2]){continue}break}}m=m+1|0;A=(w|0)<=(m|0);if((m|0)!=(I|0)){continue}break}}a=F[g>>2];if(a){ja(a)}ja(z);a=F[g+52>>2];if(a){F[g+56>>2]=a;ja(a)}a=F[g+40>>2];if(a){F[g+44>>2]=a;ja(a)}a=F[g+28>>2];if(a){F[g+32>>2]=a;ja(a)}a=F[g+16>>2];if(a){F[g+20>>2]=a;ja(a)}Z=g- -64|0;return A|0}na();v()}function $h(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,G=0,H=0,I=0,J=0,K=0,M=0,N=0;h=Z+-64|0;Z=h;F[a+8>>2]=e;x=a+32|0;f=F[x>>2];d=F[a+36>>2]-f>>2;a:{b:{if(d>>>0>>0){qa(x,e-d|0);F[h+56>>2]=0;F[h+60>>2]=0;F[h+48>>2]=0;F[h+52>>2]=0;F[h+40>>2]=0;F[h+44>>2]=0;F[h+32>>2]=0;F[h+36>>2]=0;F[h+24>>2]=0;F[h+28>>2]=0;F[h+16>>2]=0;F[h+20>>2]=0;F[h>>2]=0;break b}if(d>>>0>e>>>0){F[a+36>>2]=f+(e<<2)}F[h+56>>2]=0;F[h+60>>2]=0;F[h+48>>2]=0;F[h+52>>2]=0;F[h+40>>2]=0;F[h+44>>2]=0;F[h+32>>2]=0;F[h+36>>2]=0;F[h+24>>2]=0;F[h+28>>2]=0;F[h+16>>2]=0;F[h+20>>2]=0;F[h>>2]=0;d=0;if(!e){break a}}Fa(h+16|0,e,h);i=F[h+28>>2];d=F[h+32>>2]}F[h>>2]=0;d=d-i>>2;c:{if(d>>>0>=e>>>0){if(d>>>0<=e>>>0){break c}F[h+32>>2]=(e<<2)+i;break c}Fa(h+16|12,e-d|0,h)}F[h>>2]=0;f=F[h+40>>2];d=F[h+44>>2]-f>>2;d:{if(d>>>0>=e>>>0){if(d>>>0<=e>>>0){break d}F[h+44>>2]=f+(e<<2);break d}Fa(h+40|0,e-d|0,h)}F[h>>2]=0;f=F[h+52>>2];d=F[h+56>>2]-f>>2;e:{if(d>>>0>=e>>>0){if(d>>>0<=e>>>0){break e}F[h+56>>2]=f+(e<<2);break e}Fa(h+52|0,e-d|0,h)}f:{if(F[a+8>>2]<=0){break f}g=F[h+16>>2];j=F[a+32>>2];i=0;while(1){d=i<<2;f=F[d+g>>2];m=F[a+16>>2];g:{if((f|0)>(m|0)){F[d+j>>2]=m;break g}d=d+j|0;m=F[a+12>>2];if((m|0)>(f|0)){F[d>>2]=m;break g}F[d>>2]=f}i=i+1|0;d=F[a+8>>2];if((i|0)<(d|0)){continue}break}if((d|0)<=0){break f}d=0;while(1){g=d<<2;f=g+c|0;g=F[b+g>>2]+F[g+j>>2]|0;F[f>>2]=g;h:{if((g|0)>F[a+16>>2]){g=g-F[a+20>>2]|0}else{if((g|0)>=F[a+12>>2]){break h}g=g+F[a+20>>2]|0}F[f>>2]=g}d=d+1|0;if((d|0)>2]){continue}break}}H=F[a+52>>2];A=F[a+48>>2];y=ka(16);d=y;F[d>>2]=0;F[d+4>>2]=0;F[d+8>>2]=0;F[d+12>>2]=0;F[h+8>>2]=0;F[h>>2]=0;F[h+4>>2]=0;i:{if(e){if(e>>>0>=1073741824){break i}d=e<<2;t=ka(d);F[h>>2]=t;F[h+8>>2]=d+t;ma(t,0,d)}z=1;d=F[a+56>>2];B=F[d>>2];d=F[d+4>>2]-B|0;j:{if((d|0)<8){break j}w=d>>2;I=(w|0)<=2?2:w;J=w>>>0<=1?1:w;C=e&-2;D=e&1;K=e&-4;E=e&3;G=e-1|0;M=e<<2;N=e>>>0<4;z=0;m=1;while(1){k:{l:{m:{n:{if((m|0)!=(J|0)){o:{p:{f=F[(m<<2)+B>>2];if((f|0)==-1){break p}n=F[A+12>>2];d=f+2|0;g=(f>>>0)%3|0;q=n+((g?f-1|0:d)<<2)|0;j=0;u=(g|0)!=0|(d|0)!=-1;k=1;d=f;q:{while(1){g=F[n+(d<<2)>>2];r:{if((g|0)==-1){break r}l=-1;p=F[H>>2];r=F[A>>2];i=p+(F[r+(g<<2)>>2]<<2)|0;o=g+1|0;o=(o>>>0)%3|0?o:g-2|0;if((o|0)!=-1){l=F[r+(o<<2)>>2]}o=F[i>>2];s:{t:{if((g>>>0)%3|0){i=g-1|0;break t}i=g+2|0;s=-1;if((i|0)==-1){break s}}s=F[r+(i<<2)>>2]}if((m|0)<=(o|0)){break r}i=F[p+(l<<2)>>2];if((i|0)>=(m|0)){break r}l=F[p+(s<<2)>>2];if((l|0)>=(m|0)){break r}g=F[(h+16|0)+L(j,12)>>2];u:{if(!e){break u}l=L(e,l);r=L(e,i);p=L(e,o);i=0;s=0;if(G){while(1){F[g+(i<<2)>>2]=(F[(i+l<<2)+c>>2]+F[(i+r<<2)+c>>2]|0)-F[(i+p<<2)+c>>2];o=i|1;F[g+(o<<2)>>2]=(F[(l+o<<2)+c>>2]+F[(o+r<<2)+c>>2]|0)-F[(o+p<<2)+c>>2];i=i+2|0;s=s+2|0;if((C|0)!=(s|0)){continue}break}}if(!D){break u}F[g+(i<<2)>>2]=(F[(i+l<<2)+c>>2]+F[(i+r<<2)+c>>2]|0)-F[(i+p<<2)+c>>2]}g=4;j=j+1|0;if((j|0)==4){break q}}v:{if(k&1){i=d+1|0;d=(i>>>0)%3|0?i:d-2|0;g=-1;if((d|0)==-1){break v}d=F[n+(d<<2)>>2];g=-1;if((d|0)==-1){break v}g=d+1|0;g=(g>>>0)%3|0?g:d-2|0;break v}w:{if((d>>>0)%3|0){i=d-1|0;break w}i=d+2|0;g=-1;if((i|0)==-1){break v}}d=F[n+(i<<2)>>2];g=-1;if((d|0)==-1){break v}g=d-1|0;if((d>>>0)%3|0){break v}g=d+2|0}d=g;x:{if((f|0)==(d|0)){break x}if((d|0)==-1&k){if(!u){break x}d=F[q>>2];if((d|0)==-1){break x}k=0;d=(d>>>0)%3|0?d-1|0:d+2|0}if((d|0)!=-1){continue}}break}g=j;if((g|0)<=0){break p}}if(e){ma(t,0,M)}d=g-1|0;r=(d<<2)+y|0;d=L(d,12)+a|0;o=d;s=F[d- -64>>2];k=0;d=F[h>>2];f=0;while(1){j=F[r>>2];F[r>>2]=j+1;if(j>>>0>=s>>>0){break j}y:{if(F[F[o+60>>2]+(j>>>3&536870908)>>2]>>>j&1){break y}f=f+1|0;if(!e){break y}j=F[(h+16|0)+L(k,12)>>2];l=0;i=0;p=0;if(!N){while(1){n=i<<2;q=n+d|0;F[q>>2]=F[j+n>>2]+F[q>>2];q=n|4;u=q+d|0;F[u>>2]=F[j+q>>2]+F[u>>2];q=n|8;u=q+d|0;F[u>>2]=F[j+q>>2]+F[u>>2];n=n|12;q=n+d|0;F[q>>2]=F[j+n>>2]+F[q>>2];i=i+4|0;p=p+4|0;if((K|0)!=(p|0)){continue}break}}if(!E){break y}while(1){n=i<<2;p=n+d|0;F[p>>2]=F[j+n>>2]+F[p>>2];i=i+1|0;l=l+1|0;if((E|0)!=(l|0)){continue}break}}k=k+1|0;if((k|0)!=(g|0)){continue}break}g=L(e,m);if(!f){break o}if(!e){break l}i=0;d=0;if(G){break n}break m}g=L(e,m)}if(F[a+8>>2]<=0){break k}k=(L(m-1|0,e)<<2)+c|0;j=F[x>>2];i=0;while(1){d=i<<2;f=F[d+k>>2];l=F[a+16>>2];z:{if((f|0)>(l|0)){F[d+j>>2]=l;break z}d=d+j|0;l=F[a+12>>2];if((l|0)>(f|0)){F[d>>2]=l;break z}F[d>>2]=f}i=i+1|0;f=F[a+8>>2];if((i|0)<(f|0)){continue}break}d=0;if((f|0)<=0){break k}f=g<<2;i=f+c|0;k=b+f|0;while(1){g=d<<2;f=g+i|0;g=F[g+k>>2]+F[g+j>>2]|0;F[f>>2]=g;A:{if((g|0)>F[a+16>>2]){g=g-F[a+20>>2]|0}else{if((g|0)>=F[a+12>>2]){break A}g=g+F[a+20>>2]|0}F[f>>2]=g}d=d+1|0;if((d|0)>2]){continue}break}break k}ta();v()}while(1){j=i<<2;k=j+t|0;F[k>>2]=F[k>>2]/(f|0);j=(j|4)+t|0;F[j>>2]=F[j>>2]/(f|0);i=i+2|0;d=d+2|0;if((C|0)!=(d|0)){continue}break}}if(!D){break l}d=(i<<2)+t|0;F[d>>2]=F[d>>2]/(f|0)}if(F[a+8>>2]<=0){break k}j=F[x>>2];i=0;while(1){d=i<<2;f=F[d+t>>2];k=F[a+16>>2];B:{if((f|0)>(k|0)){F[d+j>>2]=k;break B}d=d+j|0;k=F[a+12>>2];if((k|0)>(f|0)){F[d>>2]=k;break B}F[d>>2]=f}i=i+1|0;f=F[a+8>>2];if((i|0)<(f|0)){continue}break}d=0;if((f|0)<=0){break k}f=g<<2;i=f+c|0;k=b+f|0;while(1){g=d<<2;f=g+i|0;g=F[g+k>>2]+F[g+j>>2]|0;F[f>>2]=g;C:{if((g|0)>F[a+16>>2]){g=g-F[a+20>>2]|0}else{if((g|0)>=F[a+12>>2]){break C}g=g+F[a+20>>2]|0}F[f>>2]=g}d=d+1|0;if((d|0)>2]){continue}break}}m=m+1|0;z=(w|0)<=(m|0);if((m|0)!=(I|0)){continue}break}}a=F[h>>2];if(a){ja(a)}ja(y);a=F[h+52>>2];if(a){F[h+56>>2]=a;ja(a)}a=F[h+40>>2];if(a){F[h+44>>2]=a;ja(a)}a=F[h+28>>2];if(a){F[h+32>>2]=a;ja(a)}a=F[h+16>>2];if(a){F[h+20>>2]=a;ja(a)}Z=h- -64|0;return z|0}na();v()}function Yh(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,E=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,$=0,aa=0,ba=0,ca=0;a:{b:{if((e|0)!=2){break b}F[a+8>>2]=2;F[a- -64>>2]=f;N=a+32|0;e=F[N>>2];d=F[a+36>>2]-e|0;c:{if(d>>>0<=7){qa(N,2-(d>>>2|0)|0);break c}if((d|0)==8){break c}F[a+36>>2]=e+8}j=1;d=F[a+56>>2];d=F[d+4>>2]-F[d>>2]|0;if((d|0)<=0){break b}o=a+60|0;d=d>>>2|0;$=d>>>0<=1?1:d;aa=a+68|0;d=0;while(1){f=F[a+56>>2];e=F[f>>2];if(F[f+4>>2]-e>>2>>>0<=d>>>0){break a}l=Z-80|0;Z=l;f=-1;d:{e:{e=F[e+(d<<2)>>2];if((e|0)==-1){break e}j=F[o+32>>2];g=e+1|0;g=(g>>>0)%3|0?g:e-2|0;if((g|0)!=-1){f=F[F[j>>2]+(g<<2)>>2]}n=-1;e=e+((e>>>0)%3|0?-1:2)|0;if((e|0)!=-1){n=F[F[j>>2]+(e<<2)>>2]}j=F[o+36>>2];e=F[j>>2];j=F[j+4>>2]-e>>2;if(j>>>0<=f>>>0|j>>>0<=n>>>0){break e}f:{g:{h:{i:{j:{k:{i=F[e+(n<<2)>>2];f=F[e+(f<<2)>>2];if((i|0)>=(d|0)|(f|0)>=(d|0)){break k}j=(i<<3)+c|0;u=F[j+4>>2];g=(f<<3)+c|0;e=F[g+4>>2];A=F[j>>2];j=F[g>>2];if(!((A|0)!=(j|0)|(e|0)!=(u|0))){F[o+8>>2]=j;F[o+12>>2]=e;break j}n=F[F[o+4>>2]+(d<<2)>>2];F[l+72>>2]=0;F[l+76>>2]=0;g=l- -64|0;F[g>>2]=0;F[g+4>>2]=0;F[l+56>>2]=0;F[l+60>>2]=0;g=F[o>>2];if(!G[g+84|0]){n=F[F[g+68>>2]+(n<<2)>>2]}Ga(g,n,D[g+24|0],l+56|0);n=F[F[o+4>>2]+(f<<2)>>2];F[l+48>>2]=0;F[l+52>>2]=0;F[l+40>>2]=0;F[l+44>>2]=0;F[l+32>>2]=0;F[l+36>>2]=0;g=F[o>>2];if(!G[g+84|0]){n=F[F[g+68>>2]+(n<<2)>>2]}Ga(g,n,D[g+24|0],l+32|0);n=F[F[o+4>>2]+(i<<2)>>2];F[l+24>>2]=0;F[l+28>>2]=0;F[l+16>>2]=0;F[l+20>>2]=0;F[l+8>>2]=0;F[l+12>>2]=0;g=F[o>>2];if(!G[g+84|0]){n=F[F[g+68>>2]+(n<<2)>>2]}Ga(g,n,D[g+24|0],l+8|0);g=F[l+16>>2];w=F[l+40>>2];B=g-w|0;O=F[l+44>>2];g=F[l+20>>2]-(O+(g>>>0>>0)|0)|0;J=g;i=ki(B,g,B,g);m=_;g=F[l+8>>2];C=F[l+32>>2];E=g-C|0;P=F[l+36>>2];g=F[l+12>>2]-(P+(g>>>0>>0)|0)|0;K=g;k=i;i=ki(E,g,E,g);g=k+i|0;k=_+m|0;k=g>>>0>>0?k+1|0:k;i=F[l+24>>2];H=F[l+48>>2];I=i-H|0;Q=F[l+52>>2];i=F[l+28>>2]-(Q+(i>>>0>>0)|0)|0;L=i;h=g;g=ki(I,i,I,i);q=h+g|0;h=_+k|0;r=g>>>0>q>>>0?h+1|0:h;if(!(r|q)){break k}n=0;x=mi(-1,2147483647,q,r);f=j>>31;S=f;h=f>>31;R=j;g=h;m=j^g;j=m-g|0;f=(f^g)-((g>>>0>m>>>0)+g|0)|0;g=f;f=e>>31;T=f;M=e;e=f>>31;m=M^e;h=m-e|0;k=f>>31;e=(k^f)-((e>>>0>m>>>0)+k|0)|0;f=(g|0)==(e|0)&h>>>0>>0|e>>>0>>0;j=f?j:h;i=_;e=f?g:e;if((i|0)==(e|0)&j>>>0>x>>>0|e>>>0>i>>>0){break f}j=F[l+64>>2];U=F[l+68>>2];e=ki(j-w|0,U-((j>>>0>>0)+O|0)|0,B,J);f=_;g=F[l+56>>2];V=F[l+60>>2];i=ki(g-C|0,V-((g>>>0>>0)+P|0)|0,E,K);e=i+e|0;h=_+f|0;m=F[l+72>>2];W=F[l+76>>2];f=ki(m-H|0,W-((m>>>0>>0)+Q|0)|0,I,L);y=f+e|0;e=_+(e>>>0>>0?h+1|0:h)|0;e=f>>>0>y>>>0?e+1|0:e;x=e;f=e;e=e>>31;i=e;h=e^y;e=h-e|0;i=(f^i)-((h>>>0>>0)+i|0)|0;f=A;A=f-R|0;f=(f>>31)-((f>>>0>>0)+S|0)|0;X=f;z=f>>31;p=z^A;k=p-z|0;h=f>>31;f=(h^f)-((p>>>0>>0)+h|0)|0;p=f;z=u-M|0;f=(u>>31)-((u>>>0>>0)+T|0)|0;u=f;s=f>>31;t=s^z;Y=t-s|0;h=f>>31;f=(h^f)-((s>>>0>t>>>0)+h|0)|0;h=(p|0)==(f|0)&k>>>0>Y>>>0|f>>>0

>>0;f=mi(-1,2147483647,h?k:Y,h?p:f);h=_;if((h|0)==(i|0)&e>>>0>f>>>0|h>>>0>>0){break f}f=e;e=i;h=K>>31;p=h^E;i=p-h|0;h=(h^K)-((h>>>0>p>>>0)+h|0)|0;k=J>>31;s=k^B;t=s-k|0;k=(k^J)-((k>>>0>s>>>0)+k|0)|0;p=(h|0)==(k|0)&i>>>0>t>>>0|h>>>0>k>>>0;i=p?i:t;h=p?h:k;k=L>>31;p=i;s=k^I;t=s-k|0;k=(k^L)-((k>>>0>s>>>0)+k|0)|0;i=(h|0)==(k|0)&i>>>0>t>>>0|h>>>0>k>>>0;i=mi(-1,2147483647,i?p:t,i?h:k);h=_;if((h|0)==(e|0)&f>>>0>i>>>0|e>>>0>h>>>0){break f}i=1;f=0;k=li(ki(y,x,B,J),_,q,r);h=k+w|0;e=_+O|0;e=h>>>0>>0?e+1|0:e;k=j-h|0;e=U-((h>>>0>j>>>0)+e|0)|0;k=ki(k,e,k,e);w=_;h=li(ki(y,x,E,K),_,q,r);j=h+C|0;e=_+P|0;e=h>>>0>j>>>0?e+1|0:e;h=g-j|0;e=V-((g>>>0>>0)+e|0)|0;j=ki(h,e,h,e);e=j+k|0;h=_+w|0;h=e>>>0>>0?h+1|0:h;k=e;g=li(ki(y,x,I,L),_,q,r);j=g+H|0;e=_+Q|0;e=g>>>0>j>>>0?e+1|0:e;g=m-j|0;e=W-((j>>>0>m>>>0)+e|0)|0;g=ki(g,e,g,e);j=g+k|0;e=_+h|0;j=ki(j,g>>>0>j>>>0?e+1|0:e,q,r);e=_;m=e;if(!e&j>>>0<=1){break i}h=j;g=m;while(1){e=f<<1|i>>>31;i=i<<1;f=e;k=!g&h>>>0>7|(g|0)!=0;h=(g&3)<<30|h>>>2;g=g>>>2|0;if(k){continue}break}break h}g=o;if((d|0)>(f|0)){e=f<<1}else{if((d|0)<=0){F[o+8>>2]=0;F[o+12>>2]=0;break j}e=(d<<1)-2|0}e=(e<<2)+c|0;F[g+8>>2]=F[e>>2];F[o+12>>2]=F[e+4>>2]}n=1;break f}f=m;i=j;if(j-1|0){break g}}while(1){e=mi(j,m,i,f);h=f+_|0;e=e+i|0;h=e>>>0>>0?h+1|0:h;i=(h&1)<<31|e>>>1;f=h>>>1|0;e=ki(i,f,i,f);g=_;if((m|0)==(g|0)&e>>>0>j>>>0|g>>>0>m>>>0){continue}break}}e=F[o+20>>2];if(!e){break f}j=e-1|0;m=F[F[o+16>>2]+(j>>>3&536870908)>>2];F[o+20>>2]=j;n=1;e=ki(y,x,z,u);h=_;g=e;e=ki(q,r,M,T);g=g+e|0;h=_+h|0;h=e>>>0>g>>>0?h+1|0:h;e=ki(i,f,A,X);j=m>>>j&1;m=j?0-e|0:e;g=m+g|0;k=h;h=_;k=k+(j?0-(h+((e|0)!=0)|0)|0:h)|0;ba=o,ca=li(g,g>>>0>>0?k+1|0:k,q,r),F[ba+12>>2]=ca;e=ki(y,x,A,X);m=_;g=e;e=ki(q,r,R,S);g=g+e|0;h=_+m|0;h=e>>>0>g>>>0?h+1|0:h;e=ki(i,f,z,u);f=0-e|0;i=_;k=(j?i:0-(((e|0)!=0)+i|0)|0)+h|0;i=g;g=j?e:f;f=i+g|0;ba=o,ca=li(f,f>>>0>>0?k+1|0:k,q,r),F[ba+8>>2]=ca}Z=l+80|0;e=n;break d}ta();v()}j=e;if(!e){return 0}l:{if(F[a+8>>2]<=0){break l}i=F[N>>2];e=0;while(1){f=e<<2;g=F[f+aa>>2];m=F[a+16>>2];m:{if((g|0)>(m|0)){F[f+i>>2]=m;break m}f=f+i|0;m=F[a+12>>2];if((m|0)>(g|0)){F[f>>2]=m;break m}F[f>>2]=g}e=e+1|0;g=F[a+8>>2];if((e|0)<(g|0)){continue}break}f=0;if((g|0)<=0){break l}e=d<<3;m=e+c|0;n=b+e|0;while(1){g=f<<2;e=g+m|0;g=F[g+n>>2]+F[g+i>>2]|0;F[e>>2]=g;n:{if((g|0)>F[a+16>>2]){g=g-F[a+20>>2]|0}else{if((g|0)>=F[a+12>>2]){break n}g=g+F[a+20>>2]|0}F[e>>2]=g}f=f+1|0;if((f|0)>2]){continue}break}}d=d+1|0;if(($|0)!=(d|0)){continue}break}}return j|0}ta();v()}function hi(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,E=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,$=0,aa=0,ba=0,ca=0;a:{b:{if((e|0)!=2){break b}F[a+8>>2]=2;F[a- -64>>2]=f;N=a+32|0;e=F[N>>2];d=F[a+36>>2]-e|0;c:{if(d>>>0<=7){qa(N,2-(d>>>2|0)|0);break c}if((d|0)==8){break c}F[a+36>>2]=e+8}o=1;d=F[a+56>>2];d=F[d+4>>2]-F[d>>2]|0;if((d|0)<=0){break b}n=a+60|0;d=d>>>2|0;$=d>>>0<=1?1:d;aa=a+68|0;d=0;while(1){e=F[a+56>>2];i=F[e>>2];if(F[e+4>>2]-i>>2>>>0<=d>>>0){break a}l=Z-80|0;Z=l;f=-1;i=F[i+(d<<2)>>2];e=-1;d:{if((i|0)==-1){break d}e=i+1|0;f=(e>>>0)%3|0?e:i-2|0;e=i-1|0;if((i>>>0)%3|0){break d}e=i+2|0}g=F[n+36>>2];i=F[g>>2];e:{f:{g:{h:{i:{g=F[g+4>>2]-i>>2;k=f<<2;f=F[F[n+32>>2]+28>>2];j=F[k+f>>2];if(g>>>0<=j>>>0){break i}e=F[f+(e<<2)>>2];if(e>>>0>=g>>>0){break i}f=F[i+(j<<2)>>2];j:{k:{j=F[i+(e<<2)>>2];if((d|0)<=(f|0)|(j|0)>=(d|0)){break k}i=(j<<3)+c|0;u=F[i+4>>2];g=(f<<3)+c|0;e=F[g+4>>2];A=F[i>>2];i=F[g>>2];if(!((A|0)!=(i|0)|(e|0)!=(u|0))){F[n+8>>2]=i;F[n+12>>2]=e;break j}o=F[F[n+4>>2]+(d<<2)>>2];F[l+72>>2]=0;F[l+76>>2]=0;g=l- -64|0;F[g>>2]=0;F[g+4>>2]=0;F[l+56>>2]=0;F[l+60>>2]=0;g=F[n>>2];if(!G[g+84|0]){o=F[F[g+68>>2]+(o<<2)>>2]}Ga(g,o,D[g+24|0],l+56|0);o=F[F[n+4>>2]+(f<<2)>>2];F[l+48>>2]=0;F[l+52>>2]=0;F[l+40>>2]=0;F[l+44>>2]=0;F[l+32>>2]=0;F[l+36>>2]=0;g=F[n>>2];if(!G[g+84|0]){o=F[F[g+68>>2]+(o<<2)>>2]}Ga(g,o,D[g+24|0],l+32|0);o=F[F[n+4>>2]+(j<<2)>>2];F[l+24>>2]=0;F[l+28>>2]=0;F[l+16>>2]=0;F[l+20>>2]=0;F[l+8>>2]=0;F[l+12>>2]=0;g=F[n>>2];if(!G[g+84|0]){o=F[F[g+68>>2]+(o<<2)>>2]}Ga(g,o,D[g+24|0],l+8|0);g=F[l+16>>2];w=F[l+40>>2];B=g-w|0;O=F[l+44>>2];g=F[l+20>>2]-(O+(g>>>0>>0)|0)|0;J=g;j=ki(B,g,B,g);m=_;g=F[l+8>>2];C=F[l+32>>2];E=g-C|0;P=F[l+36>>2];g=F[l+12>>2]-(P+(g>>>0>>0)|0)|0;K=g;k=j;j=ki(E,g,E,g);g=k+j|0;k=_+m|0;k=g>>>0>>0?k+1|0:k;j=F[l+24>>2];H=F[l+48>>2];I=j-H|0;Q=F[l+52>>2];j=F[l+28>>2]-(Q+(j>>>0>>0)|0)|0;L=j;h=g;g=ki(I,j,I,j);q=h+g|0;h=_+k|0;r=g>>>0>q>>>0?h+1|0:h;if(!(r|q)){break k}o=0;x=mi(-1,2147483647,q,r);f=i>>31;S=f;h=f>>31;R=i;g=h;m=i^g;i=m-g|0;f=(f^g)-((g>>>0>m>>>0)+g|0)|0;g=f;f=e>>31;T=f;M=e;e=f>>31;m=M^e;h=m-e|0;k=f>>31;e=(k^f)-((e>>>0>m>>>0)+k|0)|0;f=(g|0)==(e|0)&h>>>0>>0|e>>>0>>0;i=f?i:h;j=_;e=f?g:e;if((j|0)==(e|0)&i>>>0>x>>>0|e>>>0>j>>>0){break e}i=F[l+64>>2];U=F[l+68>>2];e=ki(i-w|0,U-((i>>>0>>0)+O|0)|0,B,J);f=_;g=F[l+56>>2];V=F[l+60>>2];j=ki(g-C|0,V-((g>>>0>>0)+P|0)|0,E,K);e=j+e|0;h=_+f|0;m=F[l+72>>2];W=F[l+76>>2];f=ki(m-H|0,W-((m>>>0>>0)+Q|0)|0,I,L);y=f+e|0;e=_+(e>>>0>>0?h+1|0:h)|0;e=f>>>0>y>>>0?e+1|0:e;x=e;f=e;e=e>>31;j=e;h=e^y;e=h-e|0;j=(f^j)-((h>>>0>>0)+j|0)|0;f=A;A=f-R|0;f=(f>>31)-((f>>>0>>0)+S|0)|0;X=f;z=f>>31;p=z^A;k=p-z|0;h=f>>31;f=(h^f)-((p>>>0>>0)+h|0)|0;p=f;z=u-M|0;f=(u>>31)-((u>>>0>>0)+T|0)|0;u=f;s=f>>31;t=s^z;Y=t-s|0;h=f>>31;f=(h^f)-((s>>>0>t>>>0)+h|0)|0;h=(p|0)==(f|0)&k>>>0>Y>>>0|f>>>0

>>0;f=mi(-1,2147483647,h?k:Y,h?p:f);h=_;if((h|0)==(j|0)&e>>>0>f>>>0|h>>>0>>0){break e}f=e;e=j;h=K>>31;p=h^E;j=p-h|0;h=(h^K)-((h>>>0>p>>>0)+h|0)|0;k=J>>31;s=k^B;t=s-k|0;k=(k^J)-((k>>>0>s>>>0)+k|0)|0;p=(h|0)==(k|0)&j>>>0>t>>>0|h>>>0>k>>>0;j=p?j:t;h=p?h:k;k=L>>31;p=j;s=k^I;t=s-k|0;k=(k^L)-((k>>>0>s>>>0)+k|0)|0;j=(h|0)==(k|0)&j>>>0>t>>>0|h>>>0>k>>>0;j=mi(-1,2147483647,j?p:t,j?h:k);h=_;if((h|0)==(e|0)&f>>>0>j>>>0|e>>>0>h>>>0){break e}j=1;f=0;k=li(ki(y,x,B,J),_,q,r);h=k+w|0;e=_+O|0;e=h>>>0>>0?e+1|0:e;k=i-h|0;e=U-((h>>>0>i>>>0)+e|0)|0;k=ki(k,e,k,e);w=_;h=li(ki(y,x,E,K),_,q,r);i=h+C|0;e=_+P|0;e=h>>>0>i>>>0?e+1|0:e;h=g-i|0;e=V-((g>>>0>>0)+e|0)|0;i=ki(h,e,h,e);e=i+k|0;h=_+w|0;h=e>>>0>>0?h+1|0:h;k=e;g=li(ki(y,x,I,L),_,q,r);i=g+H|0;e=_+Q|0;e=g>>>0>i>>>0?e+1|0:e;g=m-i|0;e=W-((i>>>0>m>>>0)+e|0)|0;g=ki(g,e,g,e);i=g+k|0;e=_+h|0;i=ki(i,g>>>0>i>>>0?e+1|0:e,q,r);e=_;m=e;if(!e&i>>>0<=1){break h}h=i;g=m;while(1){e=f<<1|j>>>31;j=j<<1;f=e;k=!g&h>>>0>7|(g|0)!=0;h=(g&3)<<30|h>>>2;g=g>>>2|0;if(k){continue}break}break g}g=n;if((d|0)>(f|0)){e=f<<1}else{if((d|0)<=0){F[n+8>>2]=0;F[n+12>>2]=0;break j}e=(d<<1)-2|0}e=(e<<2)+c|0;F[g+8>>2]=F[e>>2];F[n+12>>2]=F[e+4>>2]}o=1;break e}ta();v()}f=m;j=i;if(i-1|0){break f}}while(1){e=mi(i,m,j,f);h=f+_|0;e=e+j|0;h=e>>>0>>0?h+1|0:h;j=(h&1)<<31|e>>>1;f=h>>>1|0;e=ki(j,f,j,f);g=_;if((m|0)==(g|0)&e>>>0>i>>>0|g>>>0>m>>>0){continue}break}}e=F[n+20>>2];if(!e){break e}i=e-1|0;m=F[F[n+16>>2]+(i>>>3&536870908)>>2];F[n+20>>2]=i;o=1;e=ki(y,x,z,u);h=_;g=e;e=ki(q,r,M,T);g=g+e|0;h=_+h|0;h=e>>>0>g>>>0?h+1|0:h;e=ki(j,f,A,X);i=m>>>i&1;m=i?0-e|0:e;g=m+g|0;k=h;h=_;k=k+(i?0-(h+((e|0)!=0)|0)|0:h)|0;ba=n,ca=li(g,g>>>0>>0?k+1|0:k,q,r),F[ba+12>>2]=ca;e=ki(y,x,A,X);m=_;g=e;e=ki(q,r,R,S);g=g+e|0;h=_+m|0;h=e>>>0>g>>>0?h+1|0:h;e=ki(j,f,z,u);f=0-e|0;j=_;k=(i?j:0-(((e|0)!=0)+j|0)|0)+h|0;j=g;g=i?e:f;f=j+g|0;ba=n,ca=li(f,f>>>0>>0?k+1|0:k,q,r),F[ba+8>>2]=ca}Z=l+80|0;if(!o){return 0}l:{if(F[a+8>>2]<=0){break l}g=F[N>>2];e=0;while(1){f=e<<2;i=F[f+aa>>2];j=F[a+16>>2];m:{if((i|0)>(j|0)){F[f+g>>2]=j;break m}f=f+g|0;j=F[a+12>>2];if((j|0)>(i|0)){F[f>>2]=j;break m}F[f>>2]=i}e=e+1|0;i=F[a+8>>2];if((e|0)<(i|0)){continue}break}f=0;if((i|0)<=0){break l}e=d<<3;j=e+c|0;m=b+e|0;while(1){i=f<<2;e=i+j|0;i=F[i+m>>2]+F[g+i>>2]|0;F[e>>2]=i;n:{if((i|0)>F[a+16>>2]){k=i-F[a+20>>2]|0}else{if((i|0)>=F[a+12>>2]){break n}k=i+F[a+20>>2]|0}F[e>>2]=k}f=f+1|0;if((f|0)>2]){continue}break}}d=d+1|0;if(($|0)!=(d|0)){continue}break}}return o|0}ta();v()}function Gd(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;n=Z-96|0;Z=n;m=F[a+4>>2];d=F[m+32>>2];j=F[d+8>>2];i=F[d+12>>2];e=i;c=F[d+20>>2];f=F[d+16>>2];a:{if((e|0)<=(c|0)&f>>>0>=j>>>0|(c|0)>(e|0)){break a}o=F[d>>2];h=G[o+f|0];g=f+1|0;e=g?c:c+1|0;F[d+16>>2]=g;F[d+20>>2]=e;if((e|0)>=(i|0)&g>>>0>=j>>>0|(e|0)>(i|0)){break a}p=G[g+o|0];g=f+2|0;e=g>>>0<2?c+1|0:c;F[d+16>>2]=g;F[d+20>>2]=e;l=h<<24>>24;b:{if((l|0)>=0){k=F[a+216>>2];if(h>>>0>=(F[a+220>>2]-k|0)/144>>>0){break a}k=k+L(h,144)|0;if(F[k>>2]<0){break b}break a}if(F[a+212>>2]>=0){break a}k=a+212|0}F[k>>2]=b;c:{d:{e:{f:{g:{h:{k=H[m+36>>1];i:{if(((k<<8|k>>>8)&65535)>>>0>=258){if((e|0)>=(i|0)&g>>>0>=j>>>0|(e|0)>(i|0)){break a}e=G[g+o|0];f=f+3|0;c=f>>>0<3?c+1|0:c;F[d+16>>2]=f;F[d+20>>2]=c;if(e>>>0>1){break a}d=e>>>0<2?e:0;if(!p){break i}if(!d){break h}break a}if(p){break g}d=0}if((l|0)<0){e=a+184|0}else{c=F[a+216>>2]+L(h,144)|0;D[c+100|0]=0;e=c+104|0}if((d|0)!=1){break e}c=Z-112|0;Z=c;g=F[F[a+4>>2]+44>>2];d=ka(120);F[d>>2]=8924;F[d+4>>2]=0;F[d+116>>2]=0;F[d+112>>2]=e;F[d+108>>2]=g;F[d+12>>2]=0;F[d+16>>2]=0;F[d+20>>2]=0;F[d+24>>2]=0;F[d+28>>2]=0;F[d+32>>2]=0;F[d+36>>2]=0;F[d+40>>2]=0;F[d+44>>2]=0;F[d+48>>2]=0;F[d+52>>2]=0;F[d+56>>2]=0;F[d+60>>2]=0;F[d+8>>2]=9136;f=d- -64|0;F[f>>2]=0;F[f+4>>2]=0;F[d+72>>2]=0;F[d+76>>2]=0;F[d+80>>2]=0;F[d+84>>2]=0;F[d+88>>2]=0;F[d+104>>2]=0;F[d+96>>2]=0;F[d+100>>2]=0;f=F[a+8>>2];F[c+48>>2]=0;F[c+52>>2]=0;F[c+40>>2]=0;F[c+44>>2]=0;j=c+32|0;F[j>>2]=0;F[j+4>>2]=0;F[c+24>>2]=0;F[c+28>>2]=0;h=c- -64|0;F[h>>2]=0;F[h+4>>2]=0;F[c+72>>2]=0;F[c+76>>2]=0;F[c+80>>2]=0;F[c+84>>2]=0;F[c+88>>2]=0;F[c+104>>2]=0;F[c+16>>2]=0;F[c+20>>2]=0;F[c+56>>2]=0;F[c+60>>2]=0;F[c+8>>2]=9136;F[c+96>>2]=0;F[c+100>>2]=0;F[c+12>>2]=f;h=F[f>>2];i=F[f+4>>2];D[c+111|0]=0;k=j;j=c+111|0;Ea(k,(i-h>>2>>>0)/3|0,j);h=F[c+12>>2];i=F[h+28>>2];h=F[h+24>>2];D[c+111|0]=0;Ea(c+44|0,i-h>>2,j);F[c+28>>2]=d;F[c+24>>2]=g;F[c+20>>2]=e;F[c+16>>2]=f;f=d+8|0;e=c+8|0;lc(f,e);j:{if((e|0)==(f|0)){F[d+92>>2]=F[e+84>>2];break j}gb(d+56|0,F[e+48>>2],F[e+52>>2]);gb(d+68|0,F[e+60>>2],F[e- -64>>2]);gb(d+80|0,F[e+72>>2],F[e+76>>2]);F[d+92>>2]=F[e+84>>2];k:{h=F[e+92>>2];j=F[e+88>>2];i=h-j|0;e=i>>2;f=F[d+104>>2];g=F[d+96>>2];if(e>>>0<=f-g>>2>>>0){i=F[d+100>>2]-g|0;f=i+j|0;m=i>>2;i=e>>>0>m>>>0?f:h;l=i-j|0;if((i|0)!=(j|0)){pa(g,j,l)}if(e>>>0>m>>>0){e=F[d+100>>2];if((h|0)!=(i|0)){while(1){F[e>>2]=F[f>>2];e=e+4|0;f=f+4|0;if((h|0)!=(f|0)){continue}break}}F[d+100>>2]=e;break k}F[d+100>>2]=g+l;break k}if(g){F[d+100>>2]=g;ja(g);F[d+104>>2]=0;F[d+96>>2]=0;F[d+100>>2]=0;f=0}l:{if((i|0)<0){break l}g=f>>>1|0;e=f>>>0>=2147483644?1073741823:e>>>0>>0?g:e;if(e>>>0>=1073741824){break l}f=e<<2;e=ka(f);F[d+96>>2]=e;F[d+104>>2]=e+f;if((h|0)!=(j|0)){f=e;e=(i-4&-4)+4|0;e=la(f,j,e)+e|0}F[d+100>>2]=e;break k}na();v()}}F[c+8>>2]=9136;e=F[c+96>>2];if(e){F[c+100>>2]=e;ja(e)}e=F[c+80>>2];if(e){F[c+84>>2]=e;ja(e)}e=F[c+68>>2];if(e){F[c+72>>2]=e;ja(e)}e=F[c+56>>2];if(e){F[c+60>>2]=e;ja(e)}F[c+8>>2]=9372;e=F[c+44>>2];if(e){ja(e)}e=F[c+32>>2];if(e){ja(e)}Z=c+112|0;break d}if((l|0)>=0){break f}break a}if((l|0)<0){break a}}e=F[a+216>>2];c=F[m+44>>2];d=ka(80);F[d>>2]=9684;F[d+4>>2]=0;F[d+76>>2]=0;F[d+68>>2]=c;F[d+8>>2]=8624;F[d+12>>2]=0;F[d+16>>2]=0;F[d+20>>2]=0;F[d+24>>2]=0;F[d+28>>2]=0;F[d+32>>2]=0;F[d+36>>2]=0;F[d+40>>2]=0;F[d+44>>2]=0;F[d+48>>2]=0;F[d+52>>2]=0;e=e+L(h,144)|0;f=e+104|0;F[d+72>>2]=f;F[d- -64>>2]=0;F[d+56>>2]=0;F[d+60>>2]=0;F[n+24>>2]=c;c=n;F[c+68>>2]=0;F[c+72>>2]=0;F[c+60>>2]=0;F[c+64>>2]=0;F[c+52>>2]=0;F[c+56>>2]=0;F[c+44>>2]=0;F[c+48>>2]=0;F[c+84>>2]=0;F[c+88>>2]=0;F[c+76>>2]=0;F[c+80>>2]=0;F[c+28>>2]=d;g=F[c+28>>2];F[c+8>>2]=F[c+24>>2];F[c+12>>2]=g;F[c+20>>2]=f;f=e+4|0;F[c+16>>2]=f;F[c+36>>2]=0;F[c+40>>2]=0;F[c+32>>2]=8624;e=F[c+20>>2];F[c>>2]=F[c+16>>2];F[c+4>>2]=e;e=c+32|0;Fd(e,f,c);c=d+8|0;lc(c,e);if((c|0)!=(e|0)){gb(d+56|0,F[e+48>>2],F[e+52>>2])}Ed(e);break c}c=Z+-64|0;Z=c;g=F[F[a+4>>2]+44>>2];d=ka(80);F[d>>2]=9392;F[d+4>>2]=0;F[d+76>>2]=0;F[d+72>>2]=e;F[d+68>>2]=g;F[d+8>>2]=9556;F[d+12>>2]=0;F[d+16>>2]=0;F[d+20>>2]=0;F[d+24>>2]=0;F[d+28>>2]=0;F[d+32>>2]=0;F[d+36>>2]=0;F[d+40>>2]=0;F[d+44>>2]=0;F[d+48>>2]=0;F[d+52>>2]=0;F[d- -64>>2]=0;j=d+56|0;f=j;F[f>>2]=0;F[f+4>>2]=0;f=F[a+8>>2];F[c+40>>2]=0;F[c+44>>2]=0;F[c+32>>2]=0;F[c+36>>2]=0;h=c+24|0;F[h>>2]=0;F[h+4>>2]=0;F[c+16>>2]=0;F[c+20>>2]=0;F[c+56>>2]=0;F[c+8>>2]=0;F[c+12>>2]=0;F[c+48>>2]=0;F[c+52>>2]=0;F[c>>2]=9556;F[c+4>>2]=f;i=F[f>>2];l=F[f+4>>2];D[c+63|0]=0;k=h;h=c+63|0;Ea(k,(l-i>>2>>>0)/3|0,h);i=F[c+4>>2];l=F[i+28>>2];i=F[i+24>>2];D[c+63|0]=0;Ea(c+36|0,l-i>>2,h);F[c+20>>2]=d;F[c+16>>2]=g;F[c+12>>2]=e;F[c+8>>2]=f;lc(d+8|0,c);gb(j,F[c+48>>2],F[c+52>>2]);F[c>>2]=9556;e=F[c+48>>2];if(e){F[c+52>>2]=e;ja(e)}F[c>>2]=9372;e=F[c+36>>2];if(e){ja(e)}e=F[c+24>>2];if(e){ja(e)}Z=c- -64|0}if(!d){break a}}d=yc(ka(64),d);c=F[a+4>>2];a=d;d=b;m:{n:{if((d|0)>=0){g=c+8|0;b=F[c+12>>2];j=F[c+8>>2];e=b-j>>2;o:{if((e|0)>(d|0)){break o}f=d+1|0;if(d>>>0>=e>>>0){Pb(g,f-e|0);break o}if(e>>>0<=f>>>0){break o}f=j+(f<<2)|0;if((f|0)!=(b|0)){while(1){b=b-4|0;e=F[b>>2];F[b>>2]=0;if(e){$[F[F[e>>2]+4>>2]](e)}if((b|0)!=(f|0)){continue}break}}F[c+12>>2]=f}c=F[g>>2]+(d<<2)|0;b=F[c>>2];F[c>>2]=a;if(b){break n}break m}b=a;if(!a){break m}}$[F[F[b>>2]+4>>2]](b)}q=(d^-1)>>>31|0}Z=n+96|0;return q|0}function Ab(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=M(0),n=M(0),o=0;a:{b:{if(!d){break b}c:{switch(F[a+28>>2]-1|0){case 0:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[a>>2];h=F[e>>2];k=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}E[(g<<1)+d>>1]=D[b|0];b=b+1|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 1:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[a>>2];h=F[e>>2];k=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}E[(g<<1)+d>>1]=G[b|0];b=b+1|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 2:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[a>>2];h=F[e>>2];k=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}E[(g<<1)+d>>1]=H[b>>1];b=b+2|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 3:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[a>>2];h=F[e>>2];k=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){return 0}e=E[b>>1];if((e|0)<0){break b}E[(g<<1)+d>>1]=e;b=b+2|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 4:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[a>>2];h=F[e>>2];k=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}e=F[b>>2];if(e+32768>>>0>65535){break b}E[(g<<1)+d>>1]=e;b=b+4|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 5:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[a>>2];h=F[e>>2];k=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}e=F[b>>2];if(e>>>0>32767){break b}E[(g<<1)+d>>1]=e;b=b+4|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 6:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[a>>2];h=F[e>>2];k=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;k=F[e+4>>2];while(1){if(b>>>0>=k>>>0){break b}h=F[b+4>>2];e=F[b>>2];i=e+32768|0;h=i>>>0<32768?h+1|0:h;if(!h&i>>>0>65535|h){break b}E[(g<<1)+d>>1]=e;b=b+8|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 7:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[a>>2];h=F[e>>2];k=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}k=F[b+4>>2];e=F[b>>2];if(!k&e>>>0>32767|k){break b}E[(g<<1)+d>>1]=e;b=b+8|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 8:d:{e:{e=G[a+24|0];c=c&255;if(!(c>>>0>e>>>0?e:c)){break e}e=F[a>>2];j=F[e>>2];g=j;f=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+f|0;g=b+g|0;f=F[e+4>>2];e=f-j|0;if(!G[a+32|0]){j=0;if((b|0)>=(e|0)){break d}b=0;while(1){m=J[g>>2];if(m>=M(32767)|m>1]=i;b=b+1|0;e=G[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break e}g=g+4|0;if(f>>>0>g>>>0){continue}break}break d}j=0;if((b|0)>=(e|0)){break d}b=0;while(1){m=J[g>>2];if(m>=M(32767)|mM(1)){break d}e=(b<<1)+d|0;l=R(+m*32767+.5);f:{if(N(l)<2147483648){i=~~l;break f}i=-2147483648}E[e>>1]=i;b=b+1|0;e=G[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break e}g=g+4|0;if(f>>>0>g>>>0){continue}break}break d}j=1;if(c>>>0<=e>>>0){break d}ma((e<<1)+d|0,0,c-e<<1)}return j;case 9:g:{h:{e=G[a+24|0];c=c&255;if(!(c>>>0>e>>>0?e:c)){break h}e=F[a>>2];j=F[e>>2];g=j;f=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+f|0;g=b+g|0;f=F[e+4>>2];e=f-j|0;if(!G[a+32|0]){j=0;if((b|0)>=(e|0)){break g}b=0;while(1){l=K[g>>3];if(l>=32767|l<-32768|l!=l){break g}o=N(l);if(o==Infinity){break g}e=(b<<1)+d|0;if(o<2147483648){i=~~l}else{i=-2147483648}E[e>>1]=i;b=b+1|0;e=G[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break h}g=g+8|0;if(f>>>0>g>>>0){continue}break}break g}j=0;if((b|0)>=(e|0)){break g}b=0;while(1){l=K[g>>3];if(l>=32767|l<-32768|(N(l)==Infinity|l!=l)){break g}if(l<0|l>1){break g}e=(b<<1)+d|0;l=R(l*32767+.5);i:{if(N(l)<2147483648){i=~~l;break i}i=-2147483648}E[e>>1]=i;b=b+1|0;e=G[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break h}g=g+8|0;if(f>>>0>g>>>0){continue}break}break g}j=1;if(c>>>0<=e>>>0){break g}ma((e<<1)+d|0,0,c-e<<1)}return j;case 10:break c;default:break b}}e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[a>>2];h=F[e>>2];k=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}E[(g<<1)+d>>1]=G[b|0];b=b+1|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}ma((e<<1)+d|0,0,(c&255)-e<<1)}return j}ma((e<<1)+d|0,0,(c&255)-e<<1);return 1}function yb(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=M(0),n=M(0),o=0;a:{b:{if(!d){break b}c:{switch(F[a+28>>2]-1|0){case 0:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[a>>2];h=F[e>>2];k=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}F[(g<<2)+d>>2]=D[b|0];b=b+1|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 1:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[a>>2];h=F[e>>2];k=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}F[(g<<2)+d>>2]=G[b|0];b=b+1|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 2:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[a>>2];h=F[e>>2];k=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}F[(g<<2)+d>>2]=E[b>>1];b=b+2|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 3:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[a>>2];h=F[e>>2];k=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}F[(g<<2)+d>>2]=H[b>>1];b=b+2|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 4:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[a>>2];h=F[e>>2];k=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}F[(g<<2)+d>>2]=F[b>>2];b=b+4|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 5:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[a>>2];h=F[e>>2];k=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){return 0}e=F[b>>2];if((e|0)<0){break b}F[(g<<2)+d>>2]=e;b=b+4|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 6:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[a>>2];h=F[e>>2];k=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;k=F[e+4>>2];while(1){if(b>>>0>=k>>>0){break b}h=F[b+4>>2];e=F[b>>2];if(e- -2147483648>>>0<2147483648?h+1|0:h){break b}F[(g<<2)+d>>2]=e;b=b+8|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 7:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[a>>2];h=F[e>>2];k=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}k=F[b+4>>2];e=F[b>>2];if(!k&e>>>0>2147483647|k){break b}F[(g<<2)+d>>2]=e;b=b+8|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 8:d:{e:{e=G[a+24|0];c=c&255;if(!(c>>>0>e>>>0?e:c)){break e}e=F[a>>2];j=F[e>>2];g=j;f=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+f|0;g=b+g|0;f=F[e+4>>2];e=f-j|0;if(!G[a+32|0]){j=0;if((b|0)>=(e|0)){break d}b=0;while(1){m=J[g>>2];if(m>=M(2147483648)|m>2]=i;b=b+1|0;e=G[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break e}g=g+4|0;if(f>>>0>g>>>0){continue}break}break d}j=0;if((b|0)>=(e|0)){break d}b=0;while(1){m=J[g>>2];if(m>=M(2147483648)|mM(1)){break d}e=(b<<2)+d|0;l=R(+m*2147483647+.5);f:{if(N(l)<2147483648){i=~~l;break f}i=-2147483648}F[e>>2]=i;b=b+1|0;e=G[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break e}g=g+4|0;if(f>>>0>g>>>0){continue}break}break d}j=1;if(c>>>0<=e>>>0){break d}ma((e<<2)+d|0,0,c-e<<2)}return j;case 9:g:{h:{e=G[a+24|0];c=c&255;if(!(c>>>0>e>>>0?e:c)){break h}e=F[a>>2];j=F[e>>2];g=j;f=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+f|0;g=b+g|0;f=F[e+4>>2];e=f-j|0;if(!G[a+32|0]){j=0;if((b|0)>=(e|0)){break g}b=0;while(1){l=K[g>>3];if(l>=2147483647|l<-2147483648|l!=l){break g}o=N(l);if(o==Infinity){break g}e=(b<<2)+d|0;if(o<2147483648){i=~~l}else{i=-2147483648}F[e>>2]=i;b=b+1|0;e=G[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break h}g=g+8|0;if(f>>>0>g>>>0){continue}break}break g}j=0;if((b|0)>=(e|0)){break g}b=0;while(1){l=K[g>>3];if(l>=2147483647|l<-2147483648|(N(l)==Infinity|l!=l)){break g}if(l<0|l>1){break g}e=(b<<2)+d|0;l=R(l*2147483647+.5);i:{if(N(l)<2147483648){i=~~l;break i}i=-2147483648}F[e>>2]=i;b=b+1|0;e=G[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break h}g=g+8|0;if(f>>>0>g>>>0){continue}break}break g}j=1;if(c>>>0<=e>>>0){break g}ma((e<<2)+d|0,0,c-e<<2)}return j;case 10:break c;default:break b}}e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[a>>2];h=F[e>>2];k=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}F[(g<<2)+d>>2]=G[b|0];b=b+1|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}ma((e<<2)+d|0,0,(c&255)-e<<2)}return j}ma((e<<2)+d|0,0,(c&255)-e<<2);return 1}function zb(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=M(0);a:{b:{if(!d){break b}c:{switch(F[a+28>>2]-1|0){case 0:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[a>>2];h=F[e>>2];k=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){return 0}e=D[b|0];if((e|0)<0){break b}E[(g<<1)+d>>1]=e&255;b=b+1|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break b}break a;case 1:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[a>>2];h=F[e>>2];k=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}E[(g<<1)+d>>1]=G[b|0];b=b+1|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break b}break a;case 2:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[a>>2];h=F[e>>2];k=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){return 0}e=E[b>>1];if((e|0)<0){break b}E[(g<<1)+d>>1]=e;b=b+2|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break b}break a;case 3:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[a>>2];h=F[e>>2];k=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}E[(g<<1)+d>>1]=H[b>>1];b=b+2|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break b}break a;case 4:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[a>>2];h=F[e>>2];k=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}e=F[b>>2];if(e>>>0>65535){break b}E[(g<<1)+d>>1]=e;b=b+4|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break b}break a;case 5:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[a>>2];h=F[e>>2];k=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}e=F[b>>2];if(e>>>0>65535){break b}E[(g<<1)+d>>1]=e;b=b+4|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break b}break a;case 6:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[a>>2];h=F[e>>2];k=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}k=F[b+4>>2];e=F[b>>2];if(!k&e>>>0>65535|k){break b}E[(g<<1)+d>>1]=e;b=b+8|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break b}break a;case 7:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[a>>2];h=F[e>>2];k=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}k=F[b+4>>2];e=F[b>>2];if(!k&e>>>0>65535|k){break b}E[(g<<1)+d>>1]=e;b=b+8|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break b}break a;case 8:d:{e:{e=G[a+24|0];c=c&255;if(!(c>>>0>e>>>0?e:c)){break e}e=F[a>>2];l=F[e>>2];g=l;f=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+f|0;g=b+g|0;f=F[e+4>>2];e=f-l|0;if(!G[a+32|0]){l=0;if((b|0)>=(e|0)){break d}b=0;while(1){m=J[g>>2];if(m>=M(65535)|m=M(0)){i=~~m>>>0}else{i=0}E[e>>1]=i;b=b+1|0;e=G[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break e}g=g+4|0;if(f>>>0>g>>>0){continue}break}break d}l=0;if((b|0)>=(e|0)){break d}b=0;while(1){m=J[g>>2];if(m>=M(65535)|mM(1)){break d}e=(b<<1)+d|0;j=R(+m*65535+.5);f:{if(j<4294967296&j>=0){i=~~j>>>0;break f}i=0}E[e>>1]=i;b=b+1|0;e=G[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break e}g=g+4|0;if(f>>>0>g>>>0){continue}break}break d}l=1;if(c>>>0<=e>>>0){break d}ma((e<<1)+d|0,0,c-e<<1)}return l;case 9:g:{h:{e=G[a+24|0];c=c&255;if(!(c>>>0>e>>>0?e:c)){break h}e=F[a>>2];l=F[e>>2];g=l;f=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+f|0;g=b+g|0;f=F[e+4>>2];e=f-l|0;if(!G[a+32|0]){l=0;if((b|0)>=(e|0)){break g}b=0;while(1){j=K[g>>3];if(j>=65535|j<0|(N(j)==Infinity|j!=j)){break g}e=(b<<1)+d|0;if(j<4294967296&j>=0){i=~~j>>>0}else{i=0}E[e>>1]=i;b=b+1|0;e=G[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break h}g=g+8|0;if(f>>>0>g>>>0){continue}break}break g}l=0;if((b|0)>=(e|0)){break g}b=0;while(1){j=K[g>>3];if(j>=65535|j<0|(N(j)==Infinity|j!=j)){break g}if(j>1){break g}e=(b<<1)+d|0;j=R(j*65535+.5);i:{if(j<4294967296&j>=0){i=~~j>>>0;break i}i=0}E[e>>1]=i;b=b+1|0;e=G[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break h}g=g+8|0;if(f>>>0>g>>>0){continue}break}break g}l=1;if(c>>>0<=e>>>0){break g}ma((e<<1)+d|0,0,c-e<<1)}return l;case 10:break c;default:break b}}e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[a>>2];h=F[e>>2];k=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}E[(g<<1)+d>>1]=G[b|0];b=b+1|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break b}ma((e<<1)+d|0,0,(c&255)-e<<1)}return l}ma((e<<1)+d|0,0,(c&255)-e<<1);return 1}function Ga(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=M(0),l=0,m=0,n=M(0),o=0;a:{if(!d){break a}b:{c:{switch(F[a+28>>2]-1|0){case 0:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[a>>2];h=F[e>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);j=b;b=b+i|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=(g<<3)+d|0;i=D[b|0];F[e>>2]=i;F[e+4>>2]=i>>31;b=b+1|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 1:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[a>>2];h=F[e>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);j=b;b=b+i|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=(g<<3)+d|0;F[e>>2]=G[b|0];F[e+4>>2]=0;b=b+1|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 2:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[a>>2];h=F[e>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);j=b;b=b+i|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=(g<<3)+d|0;i=E[b>>1];F[e>>2]=i;F[e+4>>2]=i>>31;b=b+2|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 3:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[a>>2];h=F[e>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);j=b;b=b+i|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=(g<<3)+d|0;F[e>>2]=H[b>>1];F[e+4>>2]=0;b=b+2|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 4:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[a>>2];h=F[e>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);j=b;b=b+i|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=(g<<3)+d|0;i=F[b>>2];F[e>>2]=i;F[e+4>>2]=i>>31;b=b+4|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 5:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[a>>2];h=F[e>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);j=b;b=b+i|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=(g<<3)+d|0;F[e>>2]=F[b>>2];F[e+4>>2]=0;b=b+4|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 6:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[a>>2];h=F[e>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);j=b;b=b+i|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}i=F[b+4>>2];e=(g<<3)+d|0;F[e>>2]=F[b>>2];F[e+4>>2]=i;b=b+8|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 7:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[a>>2];h=F[e>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);j=b;b=b+i|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=F[b>>2];i=F[b+4>>2];if((i|0)<0){break a}j=(g<<3)+d|0;F[j>>2]=e;F[j+4>>2]=i;b=b+8|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 8:d:{e=G[a+24|0];f=c&255;if(!(e>>>0>>0?e:f)){break d}if(G[a+32|0]){break a}e=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);j=b;b=b+e|0;e=F[a>>2];i=F[e+4>>2];e=F[e>>2];if((b|0)>=(i-e|0)){break a}g=b+e|0;h=c&255;b=0;while(1){k=J[g>>2];if(k>=M(0x8000000000000000)|k=M(1)?~~(k>M(0)?M(P(M(R(M(k*M(2.3283064365386963e-10)))),M(4294967296))):M(S(M(M(k-M(~~k>>>0>>>0))*M(2.3283064365386963e-10)))))>>>0:0;m=~~k>>>0;break e}j=-2147483648;m=0}F[e>>2]=m;F[e+4>>2]=j;b=b+1|0;e=G[a+24|0];if(b>>>0>=(e>>>0>>0?e:h)>>>0){break d}g=g+4|0;if(i>>>0>g>>>0){continue}break}break a}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 9:f:{e=G[a+24|0];f=c&255;if(!(e>>>0>>0?e:f)){break f}if(G[a+32|0]){break a}e=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);j=b;b=b+e|0;e=F[a>>2];i=F[e+4>>2];e=F[e>>2];if((b|0)>=(i-e|0)){break a}g=b+e|0;h=c&255;b=0;while(1){l=K[g>>3];if(l>=0x8000000000000000|l<-0x8000000000000000|l!=l){break a}o=N(l);if(o==Infinity){break a}e=(b<<3)+d|0;g:{if(o<0x8000000000000000){j=N(l)>=1?~~(l>0?P(R(l*2.3283064365386963e-10),4294967295):S((l-+(~~l>>>0>>>0))*2.3283064365386963e-10))>>>0:0;m=~~l>>>0;break g}j=-2147483648;m=0}F[e>>2]=m;F[e+4>>2]=j;b=b+1|0;e=G[a+24|0];if(b>>>0>=(e>>>0>>0?e:h)>>>0){break f}g=g+8|0;if(i>>>0>g>>>0){continue}break}break a}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 10:break c;default:break a}}e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[a>>2];h=F[e>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);j=b;b=b+i|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=(g<<3)+d|0;F[e>>2]=G[b|0];F[e+4>>2]=0;b=b+1|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0}ma(d,0,a<<3)}}function le(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;j=a;a:{b:{c:{d:{e:{f:{g:{h:{a=F[a+8>>2];switch(F[a+28>>2]-1|0){case 4:break c;case 5:break d;case 2:break e;case 3:break f;case 0:break g;case 1:break h;default:break a}}f=G[a+24|0];c=ka(f);a=F[j+16>>2];if(F[a+80>>2]){g=F[F[a>>2]>>2]+F[a+48>>2]|0}else{g=0}if(!b){break b}if(f){o=f&252;l=f&3;h=f>>>0<4;while(1){a=0;e=0;if(!h){while(1){k=g+(d<<2)|0;D[a+c|0]=F[k>>2];D[(a|1)+c|0]=F[k+4>>2];D[(a|2)+c|0]=F[k+8>>2];D[(a|3)+c|0]=F[k+12>>2];a=a+4|0;d=d+4|0;e=e+4|0;if((o|0)!=(e|0)){continue}break}}e=0;if(l){while(1){D[a+c|0]=F[g+(d<<2)>>2];a=a+1|0;d=d+1|0;e=e+1|0;if((l|0)!=(e|0)){continue}break}}la(F[F[F[j+8>>2]+64>>2]>>2]+m|0,c,f);m=f+m|0;n=n+1|0;if((n|0)!=(b|0)){continue}break}break b}a=0;if((b|0)!=1){g=b&-2;while(1){la(F[F[F[j+8>>2]+64>>2]>>2]+a|0,c,f);a=a+f|0;la(a+F[F[F[j+8>>2]+64>>2]>>2]|0,c,f);a=a+f|0;d=d+2|0;if((g|0)!=(d|0)){continue}break}}if(!(b&1)){break b}la(F[F[F[j+8>>2]+64>>2]>>2]+a|0,c,f);break b}f=G[a+24|0];c=ka(f);a=F[j+16>>2];if(F[a+80>>2]){g=F[F[a>>2]>>2]+F[a+48>>2]|0}else{g=0}if(!b){break b}if(f){o=f&252;l=f&3;h=f>>>0<4;while(1){a=0;e=0;if(!h){while(1){k=g+(d<<2)|0;D[a+c|0]=F[k>>2];D[(a|1)+c|0]=F[k+4>>2];D[(a|2)+c|0]=F[k+8>>2];D[(a|3)+c|0]=F[k+12>>2];a=a+4|0;d=d+4|0;e=e+4|0;if((o|0)!=(e|0)){continue}break}}e=0;if(l){while(1){D[a+c|0]=F[g+(d<<2)>>2];a=a+1|0;d=d+1|0;e=e+1|0;if((l|0)!=(e|0)){continue}break}}la(F[F[F[j+8>>2]+64>>2]>>2]+m|0,c,f);m=f+m|0;n=n+1|0;if((n|0)!=(b|0)){continue}break}break b}a=0;if((b|0)!=1){g=b&-2;while(1){la(F[F[F[j+8>>2]+64>>2]>>2]+a|0,c,f);a=a+f|0;la(a+F[F[F[j+8>>2]+64>>2]>>2]|0,c,f);a=a+f|0;d=d+2|0;if((g|0)!=(d|0)){continue}break}}if(!(b&1)){break b}la(F[F[F[j+8>>2]+64>>2]>>2]+a|0,c,f);break b}h=G[a+24|0];i=h<<1;c=ka(i);a=F[j+16>>2];if(F[a+80>>2]){g=F[F[a>>2]>>2]+F[a+48>>2]|0}else{g=0}if(!b){break b}if(h){o=h&252;l=h&3;h=h>>>0<4;while(1){a=0;e=0;if(!h){while(1){f=a<<1;k=g+(d<<2)|0;E[f+c>>1]=F[k>>2];E[(f|2)+c>>1]=F[k+4>>2];E[(f|4)+c>>1]=F[k+8>>2];E[(f|6)+c>>1]=F[k+12>>2];a=a+4|0;d=d+4|0;e=e+4|0;if((o|0)!=(e|0)){continue}break}}e=0;if(l){while(1){E[(a<<1)+c>>1]=F[g+(d<<2)>>2];a=a+1|0;d=d+1|0;e=e+1|0;if((l|0)!=(e|0)){continue}break}}la(F[F[F[j+8>>2]+64>>2]>>2]+n|0,c,i);n=i+n|0;m=m+1|0;if((m|0)!=(b|0)){continue}break}break b}a=0;if((b|0)!=1){g=b&-2;while(1){la(F[F[F[j+8>>2]+64>>2]>>2]+a|0,c,i);a=a+i|0;la(a+F[F[F[j+8>>2]+64>>2]>>2]|0,c,i);a=a+i|0;d=d+2|0;if((g|0)!=(d|0)){continue}break}}if(!(b&1)){break b}la(F[F[F[j+8>>2]+64>>2]>>2]+a|0,c,i);break b}h=G[a+24|0];i=h<<1;c=ka(i);a=F[j+16>>2];if(F[a+80>>2]){g=F[F[a>>2]>>2]+F[a+48>>2]|0}else{g=0}if(!b){break b}if(h){o=h&252;l=h&3;h=h>>>0<4;while(1){a=0;e=0;if(!h){while(1){f=a<<1;k=g+(d<<2)|0;E[f+c>>1]=F[k>>2];E[(f|2)+c>>1]=F[k+4>>2];E[(f|4)+c>>1]=F[k+8>>2];E[(f|6)+c>>1]=F[k+12>>2];a=a+4|0;d=d+4|0;e=e+4|0;if((o|0)!=(e|0)){continue}break}}e=0;if(l){while(1){E[(a<<1)+c>>1]=F[g+(d<<2)>>2];a=a+1|0;d=d+1|0;e=e+1|0;if((l|0)!=(e|0)){continue}break}}la(F[F[F[j+8>>2]+64>>2]>>2]+n|0,c,i);n=i+n|0;m=m+1|0;if((m|0)!=(b|0)){continue}break}break b}a=0;if((b|0)!=1){g=b&-2;while(1){la(F[F[F[j+8>>2]+64>>2]>>2]+a|0,c,i);a=a+i|0;la(a+F[F[F[j+8>>2]+64>>2]>>2]|0,c,i);a=a+i|0;d=d+2|0;if((g|0)!=(d|0)){continue}break}}if(!(b&1)){break b}la(F[F[F[j+8>>2]+64>>2]>>2]+a|0,c,i);break b}h=G[a+24|0];i=h<<2;c=ka(i);a=F[j+16>>2];if(F[a+80>>2]){g=F[F[a>>2]>>2]+F[a+48>>2]|0}else{g=0}if(!b){break b}if(h){o=h&252;l=h&3;h=h>>>0<4;while(1){a=0;e=0;if(!h){while(1){f=a<<2;k=g+(d<<2)|0;F[f+c>>2]=F[k>>2];F[(f|4)+c>>2]=F[k+4>>2];F[(f|8)+c>>2]=F[k+8>>2];F[(f|12)+c>>2]=F[k+12>>2];a=a+4|0;d=d+4|0;e=e+4|0;if((o|0)!=(e|0)){continue}break}}e=0;if(l){while(1){F[(a<<2)+c>>2]=F[g+(d<<2)>>2];a=a+1|0;d=d+1|0;e=e+1|0;if((l|0)!=(e|0)){continue}break}}la(F[F[F[j+8>>2]+64>>2]>>2]+n|0,c,i);n=i+n|0;m=m+1|0;if((m|0)!=(b|0)){continue}break}break b}a=0;if((b|0)!=1){g=b&-2;while(1){la(F[F[F[j+8>>2]+64>>2]>>2]+a|0,c,i);a=a+i|0;la(a+F[F[F[j+8>>2]+64>>2]>>2]|0,c,i);a=a+i|0;d=d+2|0;if((g|0)!=(d|0)){continue}break}}if(!(b&1)){break b}la(F[F[F[j+8>>2]+64>>2]>>2]+a|0,c,i);break b}h=G[a+24|0];i=h<<2;c=ka(i);a=F[j+16>>2];if(F[a+80>>2]){g=F[F[a>>2]>>2]+F[a+48>>2]|0}else{g=0}if(!b){break b}if(h){o=h&252;l=h&3;h=h>>>0<4;while(1){a=0;e=0;if(!h){while(1){f=a<<2;k=g+(d<<2)|0;F[f+c>>2]=F[k>>2];F[(f|4)+c>>2]=F[k+4>>2];F[(f|8)+c>>2]=F[k+8>>2];F[(f|12)+c>>2]=F[k+12>>2];a=a+4|0;d=d+4|0;e=e+4|0;if((o|0)!=(e|0)){continue}break}}e=0;if(l){while(1){F[(a<<2)+c>>2]=F[g+(d<<2)>>2];a=a+1|0;d=d+1|0;e=e+1|0;if((l|0)!=(e|0)){continue}break}}la(F[F[F[j+8>>2]+64>>2]>>2]+n|0,c,i);n=i+n|0;m=m+1|0;if((m|0)!=(b|0)){continue}break}break b}a=0;if((b|0)!=1){g=b&-2;while(1){la(F[F[F[j+8>>2]+64>>2]>>2]+a|0,c,i);a=a+i|0;la(a+F[F[F[j+8>>2]+64>>2]>>2]|0,c,i);a=a+i|0;d=d+2|0;if((g|0)!=(d|0)){continue}break}}if(!(b&1)){break b}la(F[F[F[j+8>>2]+64>>2]>>2]+a|0,c,i)}ja(c);c=1}return c|0}function xb(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=M(0);a:{b:{if(!d){break b}c:{switch(F[a+28>>2]-1|0){case 0:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[a>>2];h=F[e>>2];l=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+l|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}F[(g<<2)+d>>2]=D[b|0];b=b+1|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 1:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[a>>2];h=F[e>>2];l=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+l|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}F[(g<<2)+d>>2]=G[b|0];b=b+1|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 2:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[a>>2];h=F[e>>2];l=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+l|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}F[(g<<2)+d>>2]=E[b>>1];b=b+2|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 3:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[a>>2];h=F[e>>2];l=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+l|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}F[(g<<2)+d>>2]=H[b>>1];b=b+2|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 4:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[a>>2];h=F[e>>2];l=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+l|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}F[(g<<2)+d>>2]=F[b>>2];b=b+4|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 5:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[a>>2];h=F[e>>2];l=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+l|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}F[(g<<2)+d>>2]=F[b>>2];b=b+4|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 6:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[a>>2];h=F[e>>2];l=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+l|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}e=F[b>>2];if(F[b+4>>2]){break b}F[(g<<2)+d>>2]=e;b=b+8|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 7:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[a>>2];h=F[e>>2];l=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+l|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}e=F[b>>2];if(F[b+4>>2]){break b}F[(g<<2)+d>>2]=e;b=b+8|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 8:d:{e:{e=G[a+24|0];c=c&255;if(!(c>>>0>e>>>0?e:c)){break e}e=F[a>>2];k=F[e>>2];g=k;f=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+f|0;g=b+g|0;f=F[e+4>>2];e=f-k|0;if(!G[a+32|0]){k=0;if((b|0)>=(e|0)){break d}b=0;while(1){m=J[g>>2];if(m>=M(4294967296)|m=M(0)){i=~~m>>>0}else{i=0}F[e>>2]=i;b=b+1|0;e=G[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break e}g=g+4|0;if(f>>>0>g>>>0){continue}break}break d}k=0;if((b|0)>=(e|0)){break d}b=0;while(1){m=J[g>>2];if(m>=M(4294967296)|mM(1)){break d}e=(b<<2)+d|0;j=R(+m*4294967295+.5);f:{if(j<4294967296&j>=0){i=~~j>>>0;break f}i=0}F[e>>2]=i;b=b+1|0;e=G[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break e}g=g+4|0;if(f>>>0>g>>>0){continue}break}break d}k=1;if(c>>>0<=e>>>0){break d}ma((e<<2)+d|0,0,c-e<<2)}return k;case 9:g:{h:{e=G[a+24|0];c=c&255;if(!(c>>>0>e>>>0?e:c)){break h}e=F[a>>2];k=F[e>>2];g=k;f=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+f|0;g=b+g|0;f=F[e+4>>2];e=f-k|0;if(!G[a+32|0]){k=0;if((b|0)>=(e|0)){break g}b=0;while(1){j=K[g>>3];if(j>=4294967295|j<0|(N(j)==Infinity|j!=j)){break g}e=(b<<2)+d|0;if(j<4294967296&j>=0){i=~~j>>>0}else{i=0}F[e>>2]=i;b=b+1|0;e=G[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break h}g=g+8|0;if(f>>>0>g>>>0){continue}break}break g}k=0;if((b|0)>=(e|0)){break g}b=0;while(1){j=K[g>>3];if(j>=4294967295|j<0|(N(j)==Infinity|j!=j)){break g}if(j>1){break g}e=(b<<2)+d|0;j=R(j*4294967295+.5);i:{if(j<4294967296&j>=0){i=~~j>>>0;break i}i=0}F[e>>2]=i;b=b+1|0;e=G[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break h}g=g+8|0;if(f>>>0>g>>>0){continue}break}break g}k=1;if(c>>>0<=e>>>0){break g}ma((e<<2)+d|0,0,c-e<<2)}return k;case 10:break c;default:break b}}e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[a>>2];h=F[e>>2];l=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+l|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}F[(g<<2)+d>>2]=G[b|0];b=b+1|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}ma((e<<2)+d|0,0,(c&255)-e<<2)}return k}ma((e<<2)+d|0,0,(c&255)-e<<2);return 1}function rd(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;a:{b:{c:{d:{e:{if(F[a+92>>2]==F[a+88>>2]){break e}c=F[a+52>>2];f:{if((c|0)!=F[a+56>>2]){F[c>>2]=b;F[a+52>>2]=c+4;break f}h=F[a+48>>2];g=c-h|0;d=g>>2;f=d+1|0;if(f>>>0>=1073741824){break a}e=g>>>1|0;g=g>>>0>=2147483644?1073741823:f>>>0>>0?e:f;if(g){if(g>>>0>=1073741824){break d}e=ka(g<<2)}else{e=0}f=e+(d<<2)|0;F[f>>2]=b;d=f+4|0;if((c|0)!=(h|0)){while(1){f=f-4|0;c=c-4|0;F[f>>2]=F[c>>2];if((c|0)!=(h|0)){continue}break}}F[a+56>>2]=e+(g<<2);F[a+52>>2]=d;F[a+48>>2]=f;if(!h){break f}ja(h)}F[a+84>>2]=0;c=-1;e=-1;g:{if((b|0)==-1){break g}d=F[a+4>>2];e=b+1|0;e=(e>>>0)%3|0?e:b-2|0;if((e|0)!=-1){c=F[F[d>>2]+(e<<2)>>2]}h:{if((b>>>0)%3|0){l=b-1|0;break h}l=b+2|0;e=-1;if((l|0)==-1){break g}}e=F[F[d>>2]+(l<<2)>>2]}i=e>>>3&536870908;d=F[a+36>>2];h=d+(c>>>3&536870908)|0;g=F[h>>2];f=1<>2]=f|g;f=a+8|0;if((b|0)!=-1){d=b+1|0;d=(d>>>0)%3|0?d:b-2|0}else{d=-1}Ka(f,c,d);d=F[a+36>>2]}f=d+i|0;d=F[f>>2];c=1<>2]=c|d;d=a+8|0;c=-1;i:{if((b|0)==-1){break i}c=b-1|0;if((b>>>0)%3|0){break i}c=b+2|0}Ka(d,e,c)}c=-1;c=(b|0)!=-1?F[F[F[a+4>>2]>>2]+(b<<2)>>2]:c;f=F[a+36>>2]+(c>>>3&536870908)|0;d=F[f>>2];e=1<>2]=d|e;Ka(a+8|0,c,b)}d=F[a+84>>2];if((d|0)>2){break e}while(1){e=L(d,12)+a|0;b=F[e+52>>2];if((b|0)==F[e+48>>2]){d=d+1|0;if((d|0)!=3){continue}break e}b=b-4|0;c=F[b>>2];F[e+52>>2]=b;F[a+84>>2]=d;if((c|0)==-1){break e}f=F[a+24>>2];b=(c>>>0)/3|0;j:{if(F[f+(b>>>3&268435452)>>2]>>>b&1){break j}k:{while(1){k=(c>>>0)/3|0;b=(k>>>3&268435452)+f|0;F[b>>2]=F[b>>2]|1<>2]>>2]+(c<<2)>>2]:d;f=F[a+36>>2]+(d>>>3&536870908)|0;e=F[f>>2];b=1<>2]=b|e;i=F[(F[F[a+16>>2]+96>>2]+L(k,12)|0)+((c>>>0)%3<<2)>>2];l=F[F[a+20>>2]+4>>2];f=F[l+4>>2];t:{if((f|0)!=F[l+8>>2]){F[f>>2]=i;F[l+4>>2]=f+4;break t}j=F[l>>2];h=f-j|0;g=h>>2;e=g+1|0;if(e>>>0>=1073741824){break s}b=h>>>1|0;h=h>>>0>=2147483644?1073741823:b>>>0>e>>>0?b:e;if(h){if(h>>>0>=1073741824){break d}e=ka(h<<2)}else{e=0}b=e+(g<<2)|0;F[b>>2]=i;g=b+4|0;if((f|0)!=(j|0)){while(1){b=b-4|0;f=f-4|0;F[b>>2]=F[f>>2];if((f|0)!=(j|0)){continue}break}}F[l+8>>2]=e+(h<<2);F[l+4>>2]=g;F[l>>2]=b;if(!j){break t}ja(j)}j=F[a+12>>2];f=F[j+4>>2];u:{if((f|0)!=F[j+8>>2]){F[f>>2]=c;F[j+4>>2]=f+4;break u}i=F[j>>2];h=f-i|0;g=h>>2;e=g+1|0;if(e>>>0>=1073741824){break r}b=h>>>1|0;h=h>>>0>=2147483644?1073741823:b>>>0>e>>>0?b:e;if(h){if(h>>>0>=1073741824){break d}e=ka(h<<2)}else{e=0}b=e+(g<<2)|0;F[b>>2]=c;g=b+4|0;if((f|0)!=(i|0)){while(1){b=b-4|0;f=f-4|0;F[b>>2]=F[f>>2];if((f|0)!=(i|0)){continue}break}}F[j+8>>2]=e+(h<<2);F[j+4>>2]=g;F[j>>2]=b;if(!i){break u}ja(i)}b=F[a+12>>2];F[F[b+12>>2]+(d<<2)>>2]=F[b+24>>2];F[b+24>>2]=F[b+24>>2]+1}if((c|0)==-1){break k}g=F[a+4>>2];f=-1;b=c+1|0;b=(b>>>0)%3|0?b:c-2|0;if((b|0)!=-1){f=F[F[g+12>>2]+(b<<2)>>2]}v:{w:{if((L(k,3)|0)!=(c|0)){d=c-1|0;break w}d=c+2|0;c=-1;if((d|0)==-1){break v}}c=F[F[g+12>>2]+(d<<2)>>2]}d=(c|0)==-1;e=(c>>>0)/3|0;if((f|0)!=-1){b=(f>>>0)/3|0;b=F[F[a+24>>2]+(b>>>3&268435452)>>2]&1<>2]+(b>>>3&536870908)>>2]>>>b&1){break x}k=0;b=F[F[g>>2]+(c<<2)>>2];if(!(F[F[a+36>>2]+(b>>>3&536870908)>>2]>>>b&1)){b=F[a+88>>2]+(b<<2)|0;e=F[b>>2];F[b>>2]=e+1;k=(e|0)<=0?2:1}if(F[a+84>>2]>=(k|0)&l){break m}j=L(k,12)+a|0;b=F[j+52>>2];y:{if((b|0)!=F[j+56>>2]){F[b>>2]=c;F[j+52>>2]=b+4;break y}i=F[j+48>>2];h=b-i|0;d=h>>2;g=d+1|0;if(g>>>0>=1073741824){break c}e=h>>>1|0;g=h>>>0>=2147483644?1073741823:e>>>0>g>>>0?e:g;if(g){if(g>>>0>=1073741824){break d}e=ka(g<<2)}else{e=0}d=e+(d<<2)|0;F[d>>2]=c;c=d+4|0;if((b|0)!=(i|0)){while(1){d=d-4|0;b=b-4|0;F[d>>2]=F[b>>2];if((b|0)!=(i|0)){continue}break}}F[j+48>>2]=d;F[j+52>>2]=c;F[j+56>>2]=e+(g<<2);if(!i){break y}ja(i)}if(F[a+84>>2]<=(k|0)){break x}F[a+84>>2]=k}if(l){break k}c=-1;if((f|0)==-1){break n}}c=F[F[F[a+4>>2]>>2]+(f<<2)>>2]}b=0;if(!(F[F[a+36>>2]+(c>>>3&536870908)>>2]>>>c&1)){b=F[a+88>>2]+(c<<2)|0;c=F[b>>2];F[b>>2]=c+1;b=(c|0)<=0?2:1}if(F[a+84>>2]<(b|0)){break l}c=f}f=F[a+24>>2];continue}break}k=L(b,12)+a|0;c=F[k+52>>2];z:{if((c|0)!=F[k+56>>2]){F[c>>2]=f;F[k+52>>2]=c+4;break z}i=F[k+48>>2];h=c-i|0;d=h>>2;g=d+1|0;if(g>>>0>=1073741824){break b}e=h>>>1|0;g=h>>>0>=2147483644?1073741823:e>>>0>g>>>0?e:g;if(g){if(g>>>0>=1073741824){break d}e=ka(g<<2)}else{e=0}d=e+(d<<2)|0;F[d>>2]=f;f=d+4|0;if((c|0)!=(i|0)){while(1){d=d-4|0;c=c-4|0;F[d>>2]=F[c>>2];if((c|0)!=(i|0)){continue}break}}F[k+48>>2]=d;F[k+52>>2]=f;F[k+56>>2]=e+(g<<2);if(!i){break z}ja(i)}d=F[a+84>>2];if((d|0)<=(b|0)){break j}F[a+84>>2]=b;d=b;break j}d=F[a+84>>2]}if((d|0)<3){continue}break}}return 1}oa();v()}na();v()}na();v()}na();v()}function Mc(a){var b=0,c=0,d=0,e=0,f=0,g=0;e=Z-16|0;Z=e;F[e+12>>2]=a;a:{if(a>>>0<=211){d=F[Lc(10352,10544,e+12|0)>>2];break a}if(a>>>0>=4294967292){V();v()}f=(a>>>0)/210|0;d=L(f,210);F[e+8>>2]=a-d;g=Lc(10544,10736,e+8|0)-10544>>2;while(1){d=F[(g<<2)+10544>>2]+d|0;a=5;while(1){b:{if((a|0)==47){a=211;while(1){b=(d>>>0)/(a>>>0)|0;if(b>>>0>>0){break a}if((L(a,b)|0)==(d|0)){break b}b=a+10|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+12|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+16|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+18|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+22|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+28|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+30|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+36|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+40|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+42|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+46|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+52|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+58|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+60|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+66|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+70|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+72|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+78|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+82|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+88|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+96|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+100|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+102|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+106|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+108|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+112|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+120|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+126|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+130|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+136|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+138|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+142|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+148|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+150|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+156|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+162|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+166|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+168|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+172|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+178|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+180|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+186|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+190|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+192|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+196|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+198|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+208|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}a=a+210|0;if((L(b,c)|0)!=(d|0)){continue}break}break b}b=F[(a<<2)+10352>>2];c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}a=a+1|0;if((L(b,c)|0)!=(d|0)){continue}}break}d=g+1|0;a=(d|0)==48;g=a?0:d;f=a+f|0;d=L(f,210);continue}}Z=e+16|0;return d}function lb(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=M(0),k=0,l=0;a:{if(!d){break a}b:{c:{switch(F[a+28>>2]-1|0){case 0:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[a>>2];g=F[e>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);k=b;b=b+i|0;b=b+g|0;g=F[e+4>>2];i=G[a+32|0];while(1){if(b>>>0>=g>>>0){break a}j=M(D[b|0]);J[(h<<2)+d>>2]=i?M(j/M(127)):j;b=b+1|0;h=h+1|0;e=G[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break a}d=(e<<2)+d|0;a=(c&255)-e|0;break b;case 1:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[a>>2];g=F[e>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);k=b;b=b+i|0;b=b+g|0;g=F[e+4>>2];i=G[a+32|0];while(1){if(b>>>0>=g>>>0){break a}j=M(G[b|0]);J[(h<<2)+d>>2]=i?M(j/M(255)):j;b=b+1|0;h=h+1|0;e=G[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break a}d=(e<<2)+d|0;a=(c&255)-e|0;break b;case 2:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[a>>2];g=F[e>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);k=b;b=b+i|0;b=b+g|0;g=F[e+4>>2];i=G[a+32|0];while(1){if(b>>>0>=g>>>0){break a}j=M(E[b>>1]);J[(h<<2)+d>>2]=i?M(j/M(32767)):j;b=b+2|0;h=h+1|0;e=G[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break a}d=(e<<2)+d|0;a=(c&255)-e|0;break b;case 3:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[a>>2];g=F[e>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);k=b;b=b+i|0;b=b+g|0;g=F[e+4>>2];i=G[a+32|0];while(1){if(b>>>0>=g>>>0){break a}j=M(H[b>>1]);J[(h<<2)+d>>2]=i?M(j/M(65535)):j;b=b+2|0;h=h+1|0;e=G[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break a}d=(e<<2)+d|0;a=(c&255)-e|0;break b;case 4:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[a>>2];g=F[e>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);k=b;b=b+i|0;b=b+g|0;g=F[e+4>>2];i=G[a+32|0];while(1){if(b>>>0>=g>>>0){break a}j=M(F[b>>2]);J[(h<<2)+d>>2]=i?M(j*M(4.656612873077393e-10)):j;b=b+4|0;h=h+1|0;e=G[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break a}d=(e<<2)+d|0;a=(c&255)-e|0;break b;case 5:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[a>>2];g=F[e>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);k=b;b=b+i|0;b=b+g|0;g=F[e+4>>2];i=G[a+32|0];while(1){if(b>>>0>=g>>>0){break a}j=M(I[b>>2]);J[(h<<2)+d>>2]=i?M(j*M(2.3283064365386963e-10)):j;b=b+4|0;h=h+1|0;e=G[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break a}d=(e<<2)+d|0;a=(c&255)-e|0;break b;case 6:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[a>>2];g=F[e>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);k=b;b=b+i|0;b=b+g|0;g=F[e+4>>2];i=G[a+32|0];while(1){if(b>>>0>=g>>>0){break a}j=M(+I[b>>2]+ +F[b+4>>2]*4294967296);J[(h<<2)+d>>2]=i?M(j*M(10842021724855044e-35)):j;b=b+8|0;h=h+1|0;e=G[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break a}d=(e<<2)+d|0;a=(c&255)-e|0;break b;case 7:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[a>>2];g=F[e>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);k=b;b=b+i|0;b=b+g|0;g=F[e+4>>2];i=G[a+32|0];while(1){if(b>>>0>=g>>>0){break a}j=M(+I[b>>2]+ +I[b+4>>2]*4294967296);J[(h<<2)+d>>2]=i?M(j*M(5.421010862427522e-20)):j;b=b+8|0;h=h+1|0;e=G[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break a}d=(e<<2)+d|0;a=(c&255)-e|0;break b;case 8:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[a>>2];g=F[e>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);k=b;b=b+i|0;b=b+g|0;g=F[e+4>>2];while(1){if(b>>>0>=g>>>0){break a}J[(h<<2)+d>>2]=J[b>>2];b=b+4|0;h=h+1|0;e=G[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break a}d=(e<<2)+d|0;a=(c&255)-e|0;break b;case 9:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[a>>2];g=F[e>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);k=b;b=b+i|0;b=b+g|0;g=F[e+4>>2];while(1){if(b>>>0>=g>>>0){break a}J[(h<<2)+d>>2]=K[b>>3];b=b+8|0;h=h+1|0;e=G[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break a}d=(e<<2)+d|0;a=(c&255)-e|0;break b;case 10:break c;default:break a}}e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[a>>2];g=F[e>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);k=b;b=b+i|0;b=b+g|0;g=F[e+4>>2];while(1){if(b>>>0>=g>>>0){break a}J[(h<<2)+d>>2]=G[b|0]?M(1):M(0);b=b+1|0;h=h+1|0;e=G[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break a}d=(e<<2)+d|0;a=(c&255)-e|0}ma(d,0,a<<2)}return l}function Cb(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=M(0),m=M(0);a:{b:{if(!d){break b}c:{switch(F[a+28>>2]-1|0){case 0:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[F[a>>2]>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break b}D[d+g|0]=G[b|0];b=b+1|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 1:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[F[a>>2]>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){return 0}e=D[b|0];if((e|0)<0){break b}D[d+g|0]=e;b=b+1|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 2:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[F[a>>2]>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break b}e=H[b>>1];if((e+128&65535)>>>0>255){break b}D[d+g|0]=e;b=b+2|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 3:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[F[a>>2]>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break b}e=H[b>>1];if(e>>>0>127){break b}D[d+g|0]=e;b=b+2|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 4:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[F[a>>2]>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break b}e=F[b>>2];if(e+128>>>0>255){break b}D[d+g|0]=e;b=b+4|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 5:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[F[a>>2]>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break b}e=F[b>>2];if(e>>>0>127){break b}D[d+g|0]=e;b=b+4|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 6:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[F[a>>2]>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break b}i=F[b+4>>2];e=F[b>>2];h=e+128|0;i=h>>>0<128?i+1|0:i;if(!i&h>>>0>255|i){break b}D[d+g|0]=e;b=b+8|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 7:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[F[a>>2]>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break b}i=F[b+4>>2];e=F[b>>2];if(!i&e>>>0>127|i){break b}D[d+g|0]=e;b=b+8|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 8:e=G[a+24|0];c=c&255;d:{if(c>>>0>e>>>0?e:c){e=F[F[a>>2]>>2];f=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);h=b;b=b+f|0;b=b+e|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break d}l=J[b>>2];if(l>=M(127)|lM(1)){break d}j=R(+l*127+.5);if(!(N(j)<2147483648)){break f}h=~~j;break e}if(!(m>>0<(c>>>0>e>>>0?e:c)>>>0){continue}break}}k=1;if(c>>>0<=e>>>0){break d}ma(d+e|0,0,c-e|0)}return k;case 9:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[F[a>>2]>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break b}j=K[b>>3];if(j>=127|j<-128|(N(j)==Infinity|j!=j)){break b}e=d+g|0;if(G[a+32|0]){if(j<0|j>1){break b}j=R(j*127+.5)}g:{if(N(j)<2147483648){h=~~j;break g}h=-2147483648}D[e|0]=h;b=b+8|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 10:break c;default:break b}}e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[F[a>>2]>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break b}D[d+g|0]=G[b|0];b=b+1|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}ma(d+e|0,0,(c&255)-e|0)}return k}ma(d+e|0,0,(c&255)-e|0);return 1}function Bb(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=M(0);a:{b:{if(!d){break b}c:{switch(F[a+28>>2]-1|0){case 0:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[F[a>>2]>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){return 0}e=D[b|0];if((e|0)<0){break b}D[d+g|0]=e;b=b+1|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 1:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[F[a>>2]>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break b}D[d+g|0]=G[b|0];b=b+1|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 2:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[F[a>>2]>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break b}e=H[b>>1];if(e>>>0>255){break b}D[d+g|0]=e;b=b+2|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 3:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[F[a>>2]>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break b}e=H[b>>1];if(e>>>0>255){break b}D[d+g|0]=e;b=b+2|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 4:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[F[a>>2]>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break b}e=F[b>>2];if(e>>>0>255){break b}D[d+g|0]=e;b=b+4|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 5:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[F[a>>2]>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break b}e=F[b>>2];if(e>>>0>255){break b}D[d+g|0]=e;b=b+4|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 6:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[F[a>>2]>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break b}i=F[b+4>>2];e=F[b>>2];if(!i&e>>>0>255|i){break b}D[d+g|0]=e;b=b+8|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 7:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[F[a>>2]>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break b}i=F[b+4>>2];e=F[b>>2];if(!i&e>>>0>255|i){break b}D[d+g|0]=e;b=b+8|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 8:e=G[a+24|0];c=c&255;d:{if(c>>>0>e>>>0?e:c){e=F[F[a>>2]>>2];f=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);h=b;b=b+f|0;b=b+e|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break d}l=J[b>>2];if(l>=M(255)|lM(1)){break d}j=R(+l*255+.5);if(!(j<4294967296&j>=0)){break f}h=~~j>>>0;break e}if(!(l=M(0))){break f}h=~~l>>>0;break e}h=0}D[e|0]=h;b=b+4|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(c>>>0>e>>>0?e:c)>>>0){continue}break}}k=1;if(c>>>0<=e>>>0){break d}ma(d+e|0,0,c-e|0)}return k;case 9:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[F[a>>2]>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break b}j=K[b>>3];if(j>=255|j<0|(N(j)==Infinity|j!=j)){break b}e=d+g|0;if(G[a+32|0]){if(j>1){break b}j=R(j*255+.5)}g:{if(j<4294967296&j>=0){h=~~j>>>0;break g}h=0}D[e|0]=h;b=b+8|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 10:break c;default:break b}}e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[F[a>>2]>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break b}D[d+g|0]=G[b|0];b=b+1|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}ma(d+e|0,0,(c&255)-e|0)}return k}ma(d+e|0,0,(c&255)-e|0);return 1}function jc(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0;e=Z-48|0;Z=e;f=H[5053]|H[5054]<<16;d=H[5051]|H[5052]<<16;E[e+38>>1]=d;E[e+40>>1]=d>>>16;E[e+42>>1]=f;E[e+44>>1]=f>>>16;d=F[2525];F[e+32>>2]=F[2524];F[e+36>>2]=d;d=F[2523];F[e+24>>2]=F[2522];F[e+28>>2]=d;d=F[2521];F[e+16>>2]=F[2520];F[e+20>>2]=d;g=F[b+8>>2];i=F[b+12>>2];h=F[b+20>>2];d=F[b+16>>2];f=d+5|0;h=f>>>0<5?h+1|0:h;a:{b:{if(g>>>0>>0&(h|0)>=(i|0)|(h|0)>(i|0)){d=ya(e+16|0);if(d>>>0>=2147483632){break a}c:{d:{if(d>>>0>=11){b=(d|15)+1|0;c=ka(b);F[e+8>>2]=b|-2147483648;F[e>>2]=c;F[e+4>>2]=d;b=c+d|0;break d}D[e+11|0]=d;b=d+e|0;c=e;if(!d){break c}}la(c,e+16|0,d)}D[b|0]=0;F[a>>2]=-2;b=a+4|0;if(D[e+11|0]>=0){a=F[e+4>>2];F[b>>2]=F[e>>2];F[b+4>>2]=a;F[b+8>>2]=F[e+8>>2];break b}ra(b,F[e>>2],F[e+4>>2]);if(D[e+11|0]>=0){break b}ja(F[e>>2]);break b}f=d+F[b>>2]|0;d=G[f|0]|G[f+1|0]<<8|(G[f+2|0]<<16|G[f+3|0]<<24);D[c|0]=d;D[c+1|0]=d>>>8;D[c+2|0]=d>>>16;D[c+3|0]=d>>>24;D[c+4|0]=G[f+4|0];d=F[b+20>>2];f=F[b+16>>2]+5|0;d=f>>>0<5?d+1|0:d;F[b+16>>2]=f;F[b+20>>2]=d;if(sa(c,1250,5)){d=ka(32);D[d+17|0]=0;D[d+16|0]=G[1494];c=G[1490]|G[1491]<<8|(G[1492]<<16|G[1493]<<24);b=G[1486]|G[1487]<<8|(G[1488]<<16|G[1489]<<24);D[d+8|0]=b;D[d+9|0]=b>>>8;D[d+10|0]=b>>>16;D[d+11|0]=b>>>24;D[d+12|0]=c;D[d+13|0]=c>>>8;D[d+14|0]=c>>>16;D[d+15|0]=c>>>24;c=G[1482]|G[1483]<<8|(G[1484]<<16|G[1485]<<24);b=G[1478]|G[1479]<<8|(G[1480]<<16|G[1481]<<24);D[d|0]=b;D[d+1|0]=b>>>8;D[d+2|0]=b>>>16;D[d+3|0]=b>>>24;D[d+4|0]=c;D[d+5|0]=c>>>8;D[d+6|0]=c>>>16;D[d+7|0]=c>>>24;F[a>>2]=-1;ra(a+4|0,d,17);ja(d);break b}g=F[b+12>>2];if((g|0)<=(d|0)&I[b+8>>2]<=f>>>0|(d|0)>(g|0)){d=ya(e+16|0);if(d>>>0>=2147483632){break a}e:{f:{if(d>>>0>=11){b=(d|15)+1|0;c=ka(b);F[e+8>>2]=b|-2147483648;F[e>>2]=c;F[e+4>>2]=d;b=c+d|0;break f}D[e+11|0]=d;b=d+e|0;c=e;if(!d){break e}}la(c,e+16|0,d)}D[b|0]=0;F[a>>2]=-2;b=a+4|0;if(D[e+11|0]>=0){a=F[e+4>>2];F[b>>2]=F[e>>2];F[b+4>>2]=a;F[b+8>>2]=F[e+8>>2];break b}ra(b,F[e>>2],F[e+4>>2]);if(D[e+11|0]>=0){break b}ja(F[e>>2]);break b}D[c+5|0]=G[f+F[b>>2]|0];g=F[b+20>>2];d=F[b+16>>2]+1|0;g=d?g:g+1|0;F[b+16>>2]=d;F[b+20>>2]=g;f=F[b+12>>2];if((f|0)<=(g|0)&I[b+8>>2]<=d>>>0|(g|0)>(f|0)){d=ya(e+16|0);if(d>>>0>=2147483632){break a}g:{h:{if(d>>>0>=11){b=(d|15)+1|0;c=ka(b);F[e+8>>2]=b|-2147483648;F[e>>2]=c;F[e+4>>2]=d;b=c+d|0;break h}D[e+11|0]=d;b=d+e|0;c=e;if(!d){break g}}la(c,e+16|0,d)}D[b|0]=0;F[a>>2]=-2;b=a+4|0;if(D[e+11|0]>=0){a=F[e+4>>2];F[b>>2]=F[e>>2];F[b+4>>2]=a;F[b+8>>2]=F[e+8>>2];break b}ra(b,F[e>>2],F[e+4>>2]);if(D[e+11|0]>=0){break b}ja(F[e>>2]);break b}D[c+6|0]=G[d+F[b>>2]|0];h=F[b+20>>2];d=F[b+16>>2]+1|0;h=d?h:h+1|0;F[b+16>>2]=d;F[b+20>>2]=h;f=F[b+12>>2];if((f|0)<=(h|0)&I[b+8>>2]<=d>>>0|(f|0)<(h|0)){d=ya(e+16|0);if(d>>>0>=2147483632){break a}i:{j:{if(d>>>0>=11){b=(d|15)+1|0;c=ka(b);F[e+8>>2]=b|-2147483648;F[e>>2]=c;F[e+4>>2]=d;b=c+d|0;break j}D[e+11|0]=d;b=d+e|0;c=e;if(!d){break i}}la(c,e+16|0,d)}D[b|0]=0;F[a>>2]=-2;b=a+4|0;if(D[e+11|0]>=0){a=F[e+4>>2];F[b>>2]=F[e>>2];F[b+4>>2]=a;F[b+8>>2]=F[e+8>>2];break b}ra(b,F[e>>2],F[e+4>>2]);if(D[e+11|0]>=0){break b}ja(F[e>>2]);break b}D[c+7|0]=G[d+F[b>>2]|0];g=F[b+20>>2];d=F[b+16>>2]+1|0;g=d?g:g+1|0;F[b+16>>2]=d;F[b+20>>2]=g;f=F[b+12>>2];if((f|0)<=(g|0)&I[b+8>>2]<=d>>>0|(g|0)>(f|0)){c=Eb(e,e+16|0);F[a>>2]=-2;b=a+4|0;if(D[c+11|0]>=0){a=F[c+4>>2];F[b>>2]=F[c>>2];F[b+4>>2]=a;F[b+8>>2]=F[c+8>>2];break b}ra(b,F[c>>2],F[c+4>>2]);if(D[c+11|0]>=0){break b}ja(F[c>>2]);break b}D[c+8|0]=G[d+F[b>>2]|0];d=F[b+20>>2];g=F[b+16>>2];f=g+1|0;i=f?d:d+1|0;F[b+16>>2]=f;F[b+20>>2]=i;i=F[b+8>>2];h=F[b+12>>2];g=g+3|0;d=g>>>0<3?d+1|0:d;if(g>>>0>i>>>0&(d|0)>=(h|0)|(d|0)>(h|0)){c=Eb(e,e+16|0);F[a>>2]=-2;b=a+4|0;if(D[c+11|0]>=0){a=F[c+4>>2];F[b>>2]=F[c>>2];F[b+4>>2]=a;F[b+8>>2]=F[c+8>>2];break b}ra(b,F[c>>2],F[c+4>>2]);if(D[c+11|0]>=0){break b}ja(F[c>>2]);break b}d=c;c=F[b>>2]+f|0;E[d+10>>1]=G[c|0]|G[c+1|0]<<8;g=F[b+20>>2];c=F[b+16>>2]+2|0;g=c>>>0<2?g+1|0:g;F[b+16>>2]=c;F[b+20>>2]=g;F[a+8>>2]=0;F[a+12>>2]=0;F[a>>2]=0;F[a+4>>2]=0}Z=e+48|0;return}za();v()}function Mb(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0;e=Z-96|0;Z=e;f=F[a+16>>2];D[e+92|0]=1;F[e+88>>2]=b;F[e+84>>2]=b;F[e+80>>2]=f;j=F[a+20>>2];d=F[j>>2];a:{b:{f=F[F[f+28>>2]+(b<<2)>>2];if(f>>>0>2]-d>>2>>>0){d=F[F[a+8>>2]+(F[d+(f<<2)>>2]<<2)>>2];f=F[a+4>>2];if(!G[f+84|0]){d=F[F[f+68>>2]+(d<<2)>>2]}F[e+72>>2]=0;F[e+76>>2]=0;j=e- -64|0;F[j>>2]=0;F[j+4>>2]=0;F[e+56>>2]=0;F[e+60>>2]=0;Ga(f,d,D[f+24|0],e+56|0);if((b|0)!=-1){f=b+1|0;j=(f>>>0)%3|0?f:b-2|0;m=((b>>>0)%3|0?-1:2)+b|0;while(1){d=j;f=m;c:{if(!F[a+28>>2]){break c}f=b+1|0;d=(f>>>0)%3|0?f:b-2|0;f=b-1|0;if((b>>>0)%3|0){break c}f=b+2|0}n=F[a+20>>2];b=F[n>>2];d=F[F[F[a+16>>2]+28>>2]+(d<<2)>>2];if(d>>>0>=F[n+4>>2]-b>>2>>>0){break b}d=F[F[a+8>>2]+(F[b+(d<<2)>>2]<<2)>>2];b=F[a+4>>2];if(!G[b+84|0]){d=F[F[b+68>>2]+(d<<2)>>2]}F[e+48>>2]=0;F[e+52>>2]=0;F[e+40>>2]=0;F[e+44>>2]=0;F[e+32>>2]=0;F[e+36>>2]=0;Ga(b,d,D[b+24|0],e+32|0);d=F[a+20>>2];b=F[d>>2];f=F[F[F[a+16>>2]+28>>2]+(f<<2)>>2];if(f>>>0>=F[d+4>>2]-b>>2>>>0){break a}d=F[F[a+8>>2]+(F[b+(f<<2)>>2]<<2)>>2];b=F[a+4>>2];if(!G[b+84|0]){d=F[F[b+68>>2]+(d<<2)>>2]}F[e+24>>2]=0;F[e+28>>2]=0;F[e+16>>2]=0;F[e+20>>2]=0;F[e+8>>2]=0;F[e+12>>2]=0;Ga(b,d,D[b+24|0],e+8|0);g=F[e+8>>2];b=F[e+56>>2];d=g-b|0;p=F[e+60>>2];t=F[e+12>>2]-(p+(b>>>0>g>>>0)|0)|0;h=F[e+40>>2];f=F[e+64>>2];n=h-f|0;u=F[e+68>>2];y=F[e+44>>2]-(u+(f>>>0>h>>>0)|0)|0;g=ki(d,t,n,y);w=o-g|0;x=i-(_+(g>>>0>o>>>0)|0)|0;i=w;h=F[e+16>>2];g=h-f|0;u=F[e+20>>2]-((f>>>0>h>>>0)+u|0)|0;k=F[e+32>>2];h=k-b|0;w=F[e+36>>2]-((b>>>0>k>>>0)+p|0)|0;b=ki(g,u,h,w);o=i+b|0;i=_+x|0;i=b>>>0>o>>>0?i+1|0:i;b=l;l=d;p=t;k=F[e+48>>2];f=F[e+72>>2];d=k-f|0;t=F[e+76>>2];x=F[e+52>>2]-(t+(f>>>0>k>>>0)|0)|0;l=ki(l,p,d,x);k=b+l|0;b=_+q|0;b=k>>>0>>0?b+1|0:b;l=F[e+24>>2];p=l-f|0;f=F[e+28>>2]-((f>>>0>l>>>0)+t|0)|0;q=ki(p,f,h,w);l=k-q|0;q=b-(_+(k>>>0>>0)|0)|0;b=ki(g,u,d,x);d=r-b|0;b=s-(_+(b>>>0>r>>>0)|0)|0;s=ki(p,f,n,y);r=s+d|0;b=_+b|0;s=r>>>0>>0?b+1|0:b;b=F[e+88>>2];f=F[e+80>>2];d:{if(G[e+92|0]){e:{f:{g:{h:{if((b|0)==-1){break h}d=b+1|0;b=(d>>>0)%3|0?d:b-2|0;if((b|0)==-1|F[F[f>>2]+(b>>>3&536870908)>>2]>>>b&1){break h}b=F[F[F[f+64>>2]+12>>2]+(b<<2)>>2];if((b|0)!=-1){break g}}F[e+88>>2]=-1;break f}d=b+1|0;b=(d>>>0)%3|0?d:b-2|0;F[e+88>>2]=b;if((b|0)!=-1){break e}}b=F[e+84>>2];d=-1;i:{if((b|0)==-1){break i}j:{if((b>>>0)%3|0){b=b-1|0;break j}b=b+2|0;d=-1;if((b|0)==-1){break i}}d=-1;if(F[F[f>>2]+(b>>>3&536870908)>>2]>>>b&1){break i}b=F[F[F[f+64>>2]+12>>2]+(b<<2)>>2];d=-1;if((b|0)==-1){break i}d=b-1|0;if((b>>>0)%3|0){break i}d=b+2|0}D[e+92|0]=0;F[e+88>>2]=d;break d}if((b|0)!=F[e+84>>2]){break d}F[e+88>>2]=-1;break d}d=-1;k:{if((b|0)==-1){break k}l:{if((b>>>0)%3|0){b=b-1|0;break l}b=b+2|0;d=-1;if((b|0)==-1){break k}}d=-1;if(F[F[f>>2]+(b>>>3&536870908)>>2]>>>b&1){break k}b=F[F[F[f+64>>2]+12>>2]+(b<<2)>>2];d=-1;if((b|0)==-1){break k}d=b-1|0;if((b>>>0)%3|0){break k}d=b+2|0}F[e+88>>2]=d}b=F[e+88>>2];if((b|0)!=-1){continue}break}}b=s>>31;f=b^r;d=f-b|0;b=(b^s)-((b>>>0>f>>>0)+b|0)|0;m=-1;f=2147483647;g=q>>31;h=g^l;j=h-g|0;n=(g^q)-((h>>>0>>0)+g|0)|0;h=n;k=j^-1;g=h^2147483647;n=i;m:{n:{if(!F[a+28>>2]){if((b|0)==(g|0)&d>>>0>k>>>0|b>>>0>g>>>0){break m}b=b+h|0;a=d+j|0;b=a>>>0>>0?b+1|0:b;f=a;g=i;a=g>>31;d=a;m=d^o;a=m-d|0;i=a;d=(d^g)-((d>>>0>m>>>0)+d|0)|0;a=a+f|0;d=d^2147483647;i=(d|0)==(b|0)&(i^-1)>>>0>>0|b>>>0>d>>>0;a=i?-1:a;if(!(i&0)&(a|0)<=536870912|(a|0)<536870912){break m}b=0;a=a>>>29|0;break n}o:{if((b|0)==(g|0)&d>>>0>k>>>0|b>>>0>g>>>0){break o}b=b+h|0;a=d+j|0;b=a>>>0>>0?b+1|0:b;k=i;d=i>>31;h=d^o;i=h-d|0;j=(d^k)-((d>>>0>h>>>0)+d|0)|0;g=j^2147483647;d=a;a=i;if((g|0)==(b|0)&d>>>0>(a^-1)>>>0|b>>>0>g>>>0){break o}b=b+j|0;m=a+d|0;b=m>>>0>>0?b+1|0:b;f=b;if(!b&m>>>0<536870913){break m}}b=f>>>29|0;a=(f&536870911)<<3|m>>>29}o=li(o,n,a,b);l=li(l,q,a,b);r=li(r,s,a,b)}F[c+8>>2]=o;F[c+4>>2]=l;F[c>>2]=r;Z=e+96|0;return}ta();v()}ta();v()}ta();v()}function Jg(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;e=Z-32|0;Z=e;a:{if(!hb(1,e+28|0,F[a+32>>2])){break a}if(!hb(1,e+24|0,F[a+32>>2])){break a}l=F[e+28>>2];if(l>>>0>1431655765){break a}d=F[a+32>>2];c=d;g=F[c+8>>2];b=F[c+16>>2];f=F[c+12>>2];c=F[c+20>>2];i=li(g-b|0,f-(c+(b>>>0>g>>>0)|0)|0,3,0);if(!_&i>>>0>>0|((c|0)>=(f|0)&b>>>0>=g>>>0|(c|0)>(f|0))){break a}g=G[b+F[d>>2]|0];b=b+1|0;c=b?c:c+1|0;F[d+16>>2]=b;F[d+20>>2]=c;b:{c:{if(!g){c=Z-32|0;Z=c;F[c+24>>2]=0;F[c+16>>2]=0;F[c+20>>2]=0;d:{e:{b=L(l,3);if(b){if(b>>>0>=1073741824){break e}d=L(l,12);n=ka(d);ma(n,0,d)}b=mc(b,1,F[a+32>>2],n);f:{g:{if(!(!l|!b)){d=0;while(1){h:{g=F[(d<<2)+n>>2];b=g>>>1|0;i:{if(g&1){if((b|0)>(h|0)){break h}b=0-b|0;break i}if((h^2147483647)>>>0>>0){break h}}g=b+h|0;F[c>>2]=g;h=F[(d+1<<2)+n>>2];b=h>>>1|0;j:{if(h&1){if((b|0)>(g|0)){break h}b=0-b|0;break j}if((g^2147483647)>>>0>>0){break h}}g=b+g|0;F[c+4>>2]=g;h=F[(d+2<<2)+n>>2];b=h>>>1|0;k:{if(h&1){if((b|0)>(g|0)){break h}b=0-b|0;break k}if((g^2147483647)>>>0>>0){break h}}d=d+3|0;h=b+g|0;F[c+8>>2]=h;mb(F[a+44>>2]+96|0,c);b=1;j=j+1|0;if((j|0)!=(l|0)){continue}break g}break}b=0;break g}if(!n){break f}}ja(n)}Z=c+32|0;break d}na();v()}if(!b){break a}n=F[e+24>>2];break c}n=F[e+24>>2];if(n>>>0<=255){if(!l){break c}while(1){l:{F[e+16>>2]=0;F[e+8>>2]=0;F[e+12>>2]=0;d=F[a+32>>2];b=d;g=F[b+16>>2];f=F[b+8>>2];c=F[b+20>>2];i=F[b+12>>2];b=i;if(f>>>0<=g>>>0&(c|0)>=(b|0)|(b|0)<(c|0)){break l}j=F[d>>2];m=G[j+g|0];b=c;h=g+1|0;b=h?b:b+1|0;F[d+16>>2]=h;F[d+20>>2]=b;F[e+8>>2]=m;m=f>>>0>>0&(c|0)>=(i|0)|(c|0)>(i|0);f=m?g:f;i=m?c:i;if((f|0)==(h|0)&(i|0)==(b|0)){break l}m=G[h+j|0];b=c;h=g+2|0;b=h>>>0<2?b+1|0:b;F[d+16>>2]=h;F[d+20>>2]=b;F[e+12>>2]=m;if((f|0)==(h|0)&(b|0)==(i|0)){break l}h=G[h+j|0];b=c;c=g+3|0;b=c>>>0<3?b+1|0:b;F[d+16>>2]=c;F[d+20>>2]=b;F[e+16>>2]=h;mb(F[a+44>>2]+96|0,e+8|0);k=k+1|0;if((k|0)!=(l|0)){continue}break c}break}k=0;break a}if(n>>>0<=65535){if(!l){break c}while(1){m:{F[e+16>>2]=0;F[e+8>>2]=0;F[e+12>>2]=0;j=F[a+32>>2];b=j;c=F[b+8>>2];d=F[b+12>>2];h=F[b+16>>2];b=F[b+20>>2];g=b;f=h+2|0;b=f>>>0<2?b+1|0:b;if(c>>>0>>0&(b|0)>=(d|0)|(b|0)>(d|0)){break m}m=F[j>>2];i=m+h|0;i=G[i|0]|G[i+1|0]<<8;F[j+16>>2]=f;F[j+20>>2]=b;F[e+8>>2]=i;b=g;i=h+4|0;b=i>>>0<4?b+1|0:b;if(c>>>0>>0&(b|0)>=(d|0)|(b|0)>(d|0)){break m}f=f+m|0;f=G[f|0]|G[f+1|0]<<8;F[j+16>>2]=i;F[j+20>>2]=b;F[e+12>>2]=f;f=c;b=g;c=h+6|0;b=c>>>0<6?b+1|0:b;if(c>>>0>f>>>0&(b|0)>=(d|0)|(b|0)>(d|0)){break m}d=i+m|0;d=G[d|0]|G[d+1|0]<<8;F[j+16>>2]=c;F[j+20>>2]=b;F[e+16>>2]=d;mb(F[a+44>>2]+96|0,e+8|0);k=k+1|0;if((k|0)!=(l|0)){continue}break c}break}k=0;break a}n:{if(n>>>0>2097151){break n}b=H[a+36>>1];if(((b<<8|b>>>8)&65535)>>>0<514){break n}if(!l){break c}while(1){o:{F[e+16>>2]=0;F[e+8>>2]=0;F[e+12>>2]=0;if(!hb(1,e+4|0,F[a+32>>2])){break o}F[e+8>>2]=F[e+4>>2];if(!hb(1,e+4|0,F[a+32>>2])){break o}F[e+12>>2]=F[e+4>>2];if(!hb(1,e+4|0,F[a+32>>2])){break o}F[e+16>>2]=F[e+4>>2];mb(F[a+44>>2]+96|0,e+8|0);k=k+1|0;if((k|0)!=(l|0)){continue}break c}break}k=0;break a}if(!l){break c}while(1){F[e+16>>2]=0;F[e+8>>2]=0;F[e+12>>2]=0;j=F[a+32>>2];b=j;c=F[b+8>>2];d=F[b+12>>2];h=F[b+16>>2];b=F[b+20>>2];g=b;f=h+4|0;b=f>>>0<4?b+1|0:b;if(c>>>0>>0&(b|0)>=(d|0)|(b|0)>(d|0)){break b}m=F[j>>2];i=m+h|0;i=G[i|0]|G[i+1|0]<<8|(G[i+2|0]<<16|G[i+3|0]<<24);F[j+16>>2]=f;F[j+20>>2]=b;F[e+8>>2]=i;b=g;i=h+8|0;b=i>>>0<8?b+1|0:b;if(c>>>0>>0&(b|0)>=(d|0)|(b|0)>(d|0)){break b}f=f+m|0;f=G[f|0]|G[f+1|0]<<8|(G[f+2|0]<<16|G[f+3|0]<<24);F[j+16>>2]=i;F[j+20>>2]=b;F[e+12>>2]=f;f=c;b=g;c=h+12|0;b=c>>>0<12?b+1|0:b;if(c>>>0>f>>>0&(b|0)>=(d|0)|(b|0)>(d|0)){break b}d=i+m|0;d=G[d|0]|G[d+1|0]<<8|(G[d+2|0]<<16|G[d+3|0]<<24);F[j+16>>2]=c;F[j+20>>2]=b;F[e+16>>2]=d;mb(F[a+44>>2]+96|0,e+8|0);k=k+1|0;if((k|0)!=(l|0)){continue}break}}F[F[a+4>>2]+80>>2]=n;k=1;break a}k=0}Z=e+32|0;return k|0}function te(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;g=Z-16|0;Z=g;f=1;m=$[F[F[a>>2]+24>>2]](a)|0;a:{if((m|0)<=0){break a}r=a+48|0;f=0;while(1){b:{c:{if(!F[($[F[F[a>>2]+28>>2]](a)|0)+40>>2]){break c}o=l<<2;d=F[o+F[a+36>>2]>>2];c=F[d+8>>2];e=bb(d);if(!e){break c}h=F[($[F[F[a>>2]+28>>2]](a)|0)+40>>2];F[g+12>>2]=F[c+56>>2];d=ka(32);F[g>>2]=d;F[g+4>>2]=24;F[g+8>>2]=-2147483616;c=G[1196]|G[1197]<<8|(G[1198]<<16|G[1199]<<24);b=G[1192]|G[1193]<<8|(G[1194]<<16|G[1195]<<24);D[d+16|0]=b;D[d+17|0]=b>>>8;D[d+18|0]=b>>>16;D[d+19|0]=b>>>24;D[d+20|0]=c;D[d+21|0]=c>>>8;D[d+22|0]=c>>>16;D[d+23|0]=c>>>24;c=G[1188]|G[1189]<<8|(G[1190]<<16|G[1191]<<24);b=G[1184]|G[1185]<<8|(G[1186]<<16|G[1187]<<24);D[d+8|0]=b;D[d+9|0]=b>>>8;D[d+10|0]=b>>>16;D[d+11|0]=b>>>24;D[d+12|0]=c;D[d+13|0]=c>>>8;D[d+14|0]=c>>>16;D[d+15|0]=c>>>24;c=G[1180]|G[1181]<<8|(G[1182]<<16|G[1183]<<24);b=G[1176]|G[1177]<<8|(G[1178]<<16|G[1179]<<24);D[d|0]=b;D[d+1|0]=b>>>8;D[d+2|0]=b>>>16;D[d+3|0]=b>>>24;D[d+4|0]=c;D[d+5|0]=c>>>8;D[d+6|0]=c>>>16;D[d+7|0]=c>>>24;D[d+24|0]=0;c=h+16|0;b=F[c>>2];d:{e:{if(!b){break e}i=F[g+12>>2];d=c;while(1){k=(i|0)>F[b+16>>2];d=k?d:b;b=F[(k?b+4|0:b)>>2];if(b){continue}break}if((c|0)==(d|0)|(i|0)>2]){break e}b=F[d+24>>2];if(!b){break e}i=d+20|0;d=G[g+11|0];c=d<<24>>24<0;k=c?F[g>>2]:g;d=c?F[g+4>>2]:d;while(1){c=G[b+27|0];j=c<<24>>24<0;c=j?F[b+20>>2]:c;p=c>>>0>>0;f:{g:{h:{i:{j:{k:{n=p?c:d;if(n){j=j?F[b+16>>2]:b+16|0;q=sa(k,j,n);if(q){break k}if(c>>>0<=d>>>0){break j}break f}if(c>>>0<=d>>>0){break i}break f}if((q|0)<0){break f}}c=sa(j,k,n);if(c){break h}}if(p){break g}d=gc(i,g);break d}if((c|0)<0){break g}d=gc(i,g);break d}b=b+4|0}b=F[b>>2];if(b){continue}break}}d=gc(h,g)}if(D[g+11|0]<0){ja(F[g>>2])}if(!d){break c}d=0;c=F[F[o+F[a+36>>2]>>2]+8>>2];if(!F[c+64>>2]){b=ka(32);F[b+16>>2]=0;F[b+20>>2]=0;F[b+8>>2]=0;F[b>>2]=0;F[b+4>>2]=0;F[b+24>>2]=0;F[b+28>>2]=0;f=F[c+64>>2];F[c+64>>2]=b;if(f){b=F[f>>2];if(b){F[f+4>>2]=b;ja(b)}ja(f);b=F[c+64>>2]}F[c>>2]=b;f=F[b+20>>2];F[c+8>>2]=F[b+16>>2];F[c+12>>2]=f;f=F[b+24>>2];b=F[b+28>>2];F[c+48>>2]=0;F[c+52>>2]=0;F[c+40>>2]=0;F[c+44>>2]=0;F[c+16>>2]=f;F[c+20>>2]=b}l:{D[c+24|0]=G[e+24|0];F[c+28>>2]=F[e+28>>2];D[c+32|0]=G[e+32|0];b=F[e+44>>2];F[c+40>>2]=F[e+40>>2];F[c+44>>2]=b;b=F[e+52>>2];F[c+48>>2]=F[e+48>>2];F[c+52>>2]=b;F[c+56>>2]=F[e+56>>2];b=F[e+12>>2];F[c+8>>2]=F[e+8>>2];F[c+12>>2]=b;b=F[e+20>>2];F[c+16>>2]=F[e+16>>2];F[c+20>>2]=b;F[c+60>>2]=F[e+60>>2];f=F[e>>2];m:{if(!f){F[c>>2]=0;b=1;break m}h=F[c>>2];b=0;if(!h){break m}b=F[f>>2];f=F[f+4>>2]-b|0;md(h,b,f,0);b=1}if(!b){break l}D[c+84|0]=G[e+84|0];F[c+80>>2]=F[e+80>>2];if((c|0)!=(e|0)){gb(c+68|0,F[e+68>>2],F[e+72>>2])}n:{h=F[e+88>>2];o:{if(h){f=ka(40);e=F[h>>2];F[f+16>>2]=0;F[f+8>>2]=0;F[f+12>>2]=0;F[f>>2]=e;e=F[h+12>>2];b=F[h+8>>2];if((e|0)!=(b|0)){b=e-b|0;if((b|0)<0){break n}e=ka(b);F[f+12>>2]=e;F[f+8>>2]=e;F[f+16>>2]=b+e;b=F[h+8>>2];i=F[h+12>>2];p:{if((b|0)==(i|0)){break p}k=i+(b^-1)|0;j=i-b&7;if(j){while(1){D[e|0]=G[b|0];e=e+1|0;b=b+1|0;d=d+1|0;if((j|0)!=(d|0)){continue}break}}if(k>>>0<7){break p}while(1){D[e|0]=G[b|0];D[e+1|0]=G[b+1|0];D[e+2|0]=G[b+2|0];D[e+3|0]=G[b+3|0];D[e+4|0]=G[b+4|0];D[e+5|0]=G[b+5|0];D[e+6|0]=G[b+6|0];D[e+7|0]=G[b+7|0];e=e+8|0;b=b+8|0;if((i|0)!=(b|0)){continue}break}}F[f+12>>2]=e}d=F[h+36>>2];F[f+32>>2]=F[h+32>>2];F[f+36>>2]=d;d=F[h+28>>2];F[f+24>>2]=F[h+24>>2];F[f+28>>2]=d;e=F[c+88>>2];F[c+88>>2]=f;if(e){break o}break l}e=F[c+88>>2];F[c+88>>2]=0;if(!e){break l}}d=F[e+8>>2];if(d){F[e+12>>2]=d;ja(d)}ja(e);break l}na();v()}break b}d=F[F[a+36>>2]+(l<<2)>>2];if(!($[F[F[d>>2]+24>>2]](d,r)|0)){break a}}l=l+1|0;f=(m|0)<=(l|0);if((l|0)!=(m|0)){continue}break}}Z=g+16|0;return f|0}function Ld(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;g=Z+-64|0;Z=g;F[g+56>>2]=0;F[g+48>>2]=0;F[g+52>>2]=0;F[g+40>>2]=0;F[g+44>>2]=0;F[g+32>>2]=0;F[g+36>>2]=0;F[g+24>>2]=0;F[g+28>>2]=0;F[g+16>>2]=0;F[g+20>>2]=0;F[g+8>>2]=0;F[g+12>>2]=0;h=g+8|0;a:{b:{if(!H[b+38>>1]){break b}if(!Ta(1,h+12|0,b)){break b}e=F[b+8>>2];f=F[b+16>>2];j=e-f|0;k=F[h+12>>2];e=F[b+12>>2]-(F[b+20>>2]+(e>>>0>>0)|0)|0;if(j>>>0>>6>>>0&(e|0)<=0|(e|0)<0){break b}e=F[h>>2];d=F[h+4>>2]-e>>2;c:{if(d>>>0>>0){qa(h,k-d|0);k=F[h+12>>2];break c}if(d>>>0<=k>>>0){break c}F[h+4>>2]=e+(k<<2)}i=1;if(!k){break a}e=F[b+16>>2];d=F[b+20>>2];r=F[h>>2];l=F[b+8>>2];o=F[b+12>>2];j=0;while(1){i=0;if((d|0)>=(o|0)&e>>>0>=l>>>0|(d|0)>(o|0)){break a}i=F[b>>2];p=G[i+e|0];e=e+1|0;d=e?d:d+1|0;F[b+16>>2]=e;F[b+20>>2]=d;f=p>>>2|0;m=0;d:{e:{f:{g:{s=p&3;switch(s|0){case 3:break g;case 0:break e;default:break f}}f=f+j|0;i=0;if(f>>>0>=k>>>0){break a}ma(r+(j<<2)|0,0,(p&252)+4|0);j=f;break d}while(1){if((e|0)==(l|0)&(d|0)==(o|0)){break b}k=G[e+i|0];e=e+1|0;d=e?d:d+1|0;F[b+16>>2]=e;F[b+20>>2]=d;f=k<<(m<<3|6)|f;m=m+1|0;if((s|0)!=(m|0)){continue}break}}F[r+(j<<2)>>2]=f}j=j+1|0;k=F[h+12>>2];if(j>>>0>>0){continue}break}d=h+16|0;o=F[h>>2];f=F[h+16>>2];e=F[h+20>>2]-f|0;h:{if(e>>>0<=4194303){qa(d,1048576-(e>>>2|0)|0);break h}if((e|0)==4194304){break h}F[h+20>>2]=f+4194304}e=h+28|0;j=F[e>>2];f=F[h+32>>2]-j>>3;i:{if(f>>>0>>0){_a(e,k-f|0);j=F[e>>2];break i}if(f>>>0>k>>>0){F[h+32>>2]=(k<<3)+j}if(!k){break b}}l=F[d>>2];d=0;i=0;while(1){e=o+(d<<2)|0;h=F[e>>2];m=(d<<3)+j|0;f=i;F[m+4>>2]=f;F[m>>2]=h;e=F[e>>2];i=e+f|0;if(i>>>0>1048576){break b}j:{if(f>>>0>=i>>>0){break j}m=0;h=e&7;if(h){while(1){F[l+(f<<2)>>2]=d;f=f+1|0;m=m+1|0;if((h|0)!=(m|0)){continue}break}}if(e-1>>>0<=6){break j}while(1){e=l+(f<<2)|0;F[e>>2]=d;F[e+28>>2]=d;F[e+24>>2]=d;F[e+20>>2]=d;F[e+16>>2]=d;F[e+12>>2]=d;F[e+8>>2]=d;F[e+4>>2]=d;f=f+8|0;if((i|0)!=(f|0)){continue}break}}d=d+1|0;if((k|0)!=(d|0)){continue}break}n=(i|0)==1048576}i=n}k:{if(!i|(F[g+20>>2]?0:a)){break k}i=0;j=Z-16|0;Z=j;l:{if(!Sa(1,j+8|0,b)){break l}d=F[b+8>>2];f=F[b+16>>2];l=d-f|0;n=F[j+12>>2];h=F[b+20>>2];d=F[b+12>>2]-(h+(d>>>0>>0)|0)|0;e=F[j+8>>2];if((n|0)==(d|0)&e>>>0>l>>>0|d>>>0>>0){break l}d=h+n|0;l=e+f|0;d=l>>>0>>0?d+1|0:d;F[b+16>>2]=l;F[b+20>>2]=d;if((e|0)<=0){break l}b=f+F[b>>2]|0;F[g+48>>2]=b;d=e-1|0;f=d+b|0;l=G[f|0];m:{if(l>>>0<=63){F[g+52>>2]=d;b=G[f|0]&63;break m}n:{switch((l>>>6|0)-1|0){case 0:if(e>>>0<2){break l}d=e-2|0;F[g+52>>2]=d;b=b+d|0;b=G[b+1|0]<<8&16128|G[b|0];break m;case 1:if(e>>>0<3){break l}d=e-3|0;F[g+52>>2]=d;b=b+d|0;b=G[b+1|0]<<8|G[b+2|0]<<16&4128768|G[b|0];break m;default:break n}}d=e-4|0;F[g+52>>2]=d;b=b+d|0;b=(G[b|0]|G[b+1|0]<<8|(G[b+2|0]<<16|G[b+3|0]<<24))&1073741823}F[g+56>>2]=b+4194304;i=b>>>0<1069547520}Z=j+16|0;if(!i){break k}if(!a){t=1;break k}b=F[g+52>>2];f=F[g+56>>2];d=F[g+36>>2];e=F[g+48>>2];j=F[g+24>>2];while(1){o:{if(f>>>0>4194303){break o}while(1){if((b|0)<=0){break o}b=b-1|0;F[g+52>>2]=b;f=G[b+e|0]|f<<8;F[g+56>>2]=f;if(f>>>0<4194304){continue}break}}i=f&1048575;l=F[j+(i<<2)>>2];n=d+(l<<3)|0;f=(L(F[n>>2],f>>>20|0)+i|0)-F[n+4>>2]|0;F[g+56>>2]=f;F[(q<<2)+c>>2]=l;t=1;q=q+1|0;if((q|0)!=(a|0)){continue}break}}a=F[g+36>>2];if(a){F[g+40>>2]=a;ja(a)}a=F[g+24>>2];if(a){F[g+28>>2]=a;ja(a)}a=F[g+8>>2];if(a){F[g+12>>2]=a;ja(a)}Z=g- -64|0;return t}function kh(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=M(0),f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=M(0),p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;if(F[c>>2]==F[c+4>>2]){m=F[d+80>>2];u=Z-16|0;Z=u;g=F[a+4>>2];k=G[b+24|0];h=F[d+48>>2];n=F[F[d>>2]>>2];c=u+8|0;F[c>>2]=1065353216;d=c;J[c>>2]=M(-1<>2];c=ka(k<<2);a:{if(!m|!k){break a}p=h+n|0;o=J[d>>2];n=F[a+8>>2];v=F[b>>2];d=F[b+48>>2];g=F[b+40>>2];w=F[b+44>>2];if(!G[b+84|0]){f=F[b+68>>2];s=k&254;t=k&1;a=0;while(1){b=F[v>>2];l=ki(g,w,F[f+(i<<2)>>2],0)+d|0;h=la(c,b+l|0,g);b=0;q=0;if((k|0)!=1){while(1){l=p+(a<<2)|0;j=b<<2;e=M(R(M(M(o*M(J[j+h>>2]-J[n+j>>2]))+M(.5))));b:{if(M(N(e))>2]=r;j=j|4;e=M(R(M(M(o*M(J[j+h>>2]-J[n+j>>2]))+M(.5))));c:{if(M(N(e))>2]=j;b=b+2|0;a=a+2|0;q=q+2|0;if((s|0)!=(q|0)){continue}break}}if(t){l=p+(a<<2)|0;b=b<<2;e=M(R(M(M(o*M(J[b+h>>2]-J[b+n>>2]))+M(.5))));d:{if(M(N(e))>2]=b;a=a+1|0}i=i+1|0;if((m|0)!=(i|0)){continue}break}break a}s=k&254;t=k&1;a=0;while(1){b=F[v>>2];h=ki(g,w,i,l)+d|0;j=la(c,b+h|0,g);b=0;q=0;if((k|0)!=1){while(1){h=p+(a<<2)|0;f=b<<2;e=M(R(M(M(o*M(J[f+j>>2]-J[f+n>>2]))+M(.5))));e:{if(M(N(e))>2]=r;f=f|4;e=M(R(M(M(o*M(J[f+j>>2]-J[f+n>>2]))+M(.5))));f:{if(M(N(e))>2]=f;b=b+2|0;a=a+2|0;q=q+2|0;if((s|0)!=(q|0)){continue}break}}if(t){h=p+(a<<2)|0;b=b<<2;e=M(R(M(M(o*M(J[b+j>>2]-J[b+n>>2]))+M(.5))));g:{if(M(N(e))>2]=b;a=a+1|0}b=l;i=i+1|0;b=i?b:b+1|0;l=b;if((i|0)!=(m|0)|b){continue}break}}ja(c);Z=u+16|0;return 1}j=Z-16|0;Z=j;m=F[a+4>>2];i=G[b+24|0];g=F[d+48>>2];h=F[F[d>>2]>>2];d=j+8|0;F[d>>2]=1065353216;l=d;J[d>>2]=M(-1<>2];d=ka(i<<2);m=F[c+4>>2];q=F[c>>2];h:{if(!i|(m|0)==(q|0)){break h}n=h+g|0;c=m-q>>2;u=c>>>0<=1?1:c;o=J[l>>2];h=F[a+8>>2];v=F[b>>2];l=F[b+48>>2];m=F[b+40>>2];w=F[b+44>>2];if(G[b+84|0]){s=i&254;t=i&1;a=0;c=0;while(1){b=F[v>>2];g=ki(m,w,F[q+(c<<2)>>2],0)+l|0;p=la(d,b+g|0,m);b=0;k=0;if((i|0)!=1){while(1){g=n+(a<<2)|0;f=b<<2;e=M(R(M(M(o*M(J[f+p>>2]-J[h+f>>2]))+M(.5))));i:{if(M(N(e))>2]=r;f=f|4;e=M(R(M(M(o*M(J[f+p>>2]-J[h+f>>2]))+M(.5))));j:{if(M(N(e))>2]=f;b=b+2|0;a=a+2|0;k=k+2|0;if((s|0)!=(k|0)){continue}break}}if(t){g=n+(a<<2)|0;b=b<<2;e=M(R(M(M(o*M(J[b+p>>2]-J[b+h>>2]))+M(.5))));k:{if(M(N(e))>2]=b;a=a+1|0}c=c+1|0;if((u|0)!=(c|0)){continue}break}break h}s=F[b+68>>2];t=i&254;x=i&1;a=0;c=0;while(1){b=F[v>>2];g=ki(m,w,F[s+(F[q+(c<<2)>>2]<<2)>>2],0)+l|0;p=la(d,b+g|0,m);b=0;k=0;if((i|0)!=1){while(1){g=n+(a<<2)|0;f=b<<2;e=M(R(M(M(o*M(J[f+p>>2]-J[h+f>>2]))+M(.5))));l:{if(M(N(e))>2]=r;f=f|4;e=M(R(M(M(o*M(J[f+p>>2]-J[h+f>>2]))+M(.5))));m:{if(M(N(e))>2]=f;b=b+2|0;a=a+2|0;k=k+2|0;if((t|0)!=(k|0)){continue}break}}if(x){g=n+(a<<2)|0;b=b<<2;e=M(R(M(M(o*M(J[b+p>>2]-J[b+h>>2]))+M(.5))));n:{if(M(N(e))>2]=b;a=a+1|0}c=c+1|0;if((u|0)!=(c|0)){continue}break}}ja(d);Z=j+16|0;return 1} function Cd(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;c=F[a+4>>2];e=F[a>>2];f=(c-e|0)/144|0;if(f>>>0>>0){e=a;b=b-f|0;h=F[a+8>>2];c=F[a+4>>2];a:{if(b>>>0<=(h-c|0)/144>>>0){b:{if(!b){break b}a=c;f=b&7;if(f){while(1){va(a);a=a+144|0;d=d+1|0;if((f|0)!=(d|0)){continue}break}}c=L(b,144)+c|0;if((b-1&268435455)>>>0<7){break b}while(1){va(a);va(a+144|0);va(a+288|0);va(a+432|0);va(a+576|0);va(a+720|0);va(a+864|0);va(a+1008|0);a=a+1152|0;if((c|0)!=(a|0)){continue}break}}F[e+4>>2]=c;break a}c:{d:{e:{a=c;c=F[e>>2];i=(a-c|0)/144|0;a=i+b|0;if(a>>>0<29826162){c=(h-c|0)/144|0;f=c<<1;f=c>>>0>=14913080?29826161:a>>>0>>0?f:a;if(f){if(f>>>0>=29826162){break e}g=ka(L(f,144))}c=L(i,144)+g|0;a=c;h=b&7;if(h){while(1){va(a);a=a+144|0;d=d+1|0;if((h|0)!=(d|0)){continue}break}}h=L(b,144)+c|0;if((b-1&268435455)>>>0>=7){while(1){va(a);va(a+144|0);va(a+288|0);va(a+432|0);va(a+576|0);va(a+720|0);va(a+864|0);va(a+1008|0);a=a+1152|0;if((h|0)!=(a|0)){continue}break}}b=L(f,144)+g|0;d=F[e+4>>2];f=F[e>>2];if((d|0)==(f|0)){break d}while(1){c=c-144|0;d=d-144|0;a=d;F[c>>2]=F[a>>2];F[c+4>>2]=F[a+4>>2];F[c+8>>2]=F[a+8>>2];F[c+12>>2]=F[a+12>>2];F[a+12>>2]=0;F[a+4>>2]=0;F[a+8>>2]=0;F[c+16>>2]=F[a+16>>2];F[c+20>>2]=F[a+20>>2];F[c+24>>2]=F[a+24>>2];F[a+24>>2]=0;F[a+16>>2]=0;F[a+20>>2]=0;g=G[a+28|0];F[c+40>>2]=0;F[c+32>>2]=0;F[c+36>>2]=0;D[c+28|0]=g;F[c+32>>2]=F[a+32>>2];F[c+36>>2]=F[a+36>>2];F[c+40>>2]=F[a+40>>2];F[a+40>>2]=0;F[a+32>>2]=0;F[a+36>>2]=0;F[c+52>>2]=0;F[c+44>>2]=0;F[c+48>>2]=0;F[c+44>>2]=F[a+44>>2];F[c+48>>2]=F[a+48>>2];F[c+52>>2]=F[a+52>>2];F[a+52>>2]=0;F[a+44>>2]=0;F[a+48>>2]=0;g=c- -64|0;F[g>>2]=0;F[c+56>>2]=0;F[c+60>>2]=0;F[c+56>>2]=F[a+56>>2];F[c+60>>2]=F[a+60>>2];i=g;g=a- -64|0;F[i>>2]=F[g>>2];F[g>>2]=0;F[a+56>>2]=0;F[a+60>>2]=0;F[c+68>>2]=F[a+68>>2];g=F[a+72>>2];F[c+84>>2]=0;F[c+76>>2]=0;F[c+80>>2]=0;F[c+72>>2]=g;F[c+76>>2]=F[a+76>>2];F[c+80>>2]=F[a+80>>2];F[c+84>>2]=F[a+84>>2];F[a+84>>2]=0;F[a+76>>2]=0;F[a+80>>2]=0;F[c+96>>2]=0;F[c+88>>2]=0;F[c+92>>2]=0;F[c+88>>2]=F[a+88>>2];F[c+92>>2]=F[a+92>>2];F[c+96>>2]=F[a+96>>2];F[a+96>>2]=0;F[a+88>>2]=0;F[a+92>>2]=0;g=G[a+100|0];F[c+112>>2]=0;F[c+104>>2]=0;F[c+108>>2]=0;D[c+100|0]=g;F[c+104>>2]=F[a+104>>2];F[c+108>>2]=F[a+108>>2];F[c+112>>2]=F[a+112>>2];F[a+112>>2]=0;F[a+104>>2]=0;F[a+108>>2]=0;F[c+124>>2]=0;F[c+116>>2]=0;F[c+120>>2]=0;F[c+116>>2]=F[a+116>>2];F[c+120>>2]=F[a+120>>2];F[c+124>>2]=F[a+124>>2];F[a+124>>2]=0;F[a+116>>2]=0;F[a+120>>2]=0;g=F[a+128>>2];F[c+140>>2]=0;F[c+132>>2]=0;F[c+136>>2]=0;F[c+128>>2]=g;F[c+132>>2]=F[a+132>>2];F[c+136>>2]=F[a+136>>2];F[c+140>>2]=F[a+140>>2];F[a+140>>2]=0;F[a+132>>2]=0;F[a+136>>2]=0;if((a|0)!=(f|0)){continue}break}F[e+8>>2]=b;a=F[e+4>>2];F[e+4>>2]=h;d=F[e>>2];F[e>>2]=c;if((a|0)==(d|0)){break c}while(1){b=a-144|0;c=F[b+132>>2];if(c){F[a-8>>2]=c;ja(c)}c=F[a-28>>2];if(c){F[a-24>>2]=c;ja(c)}c=F[a-40>>2];if(c){F[a-36>>2]=c;ja(c)}Gb(a-140|0);a=b;if((d|0)!=(a|0)){continue}break}break c}na();v()}oa();v()}F[e+8>>2]=b;F[e+4>>2]=h;F[e>>2]=c}if(d){ja(d)}}return}if(b>>>0>>0){e=e+L(b,144)|0;if((e|0)!=(c|0)){while(1){b=c-144|0;d=F[b+132>>2];if(d){F[c-8>>2]=d;ja(d)}d=F[c-28>>2];if(d){F[c-24>>2]=d;ja(d)}d=F[c-40>>2];if(d){F[c-36>>2]=d;ja(d)}Gb(c-140|0);c=b;if((e|0)!=(c|0)){continue}break}}F[a+4>>2]=e}}function Yc(a){var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;F[a+56>>2]=F[a+52>>2];F[a+44>>2]=F[a+40>>2];b=F[a+64>>2];c=F[b+24>>2];if((c|0)==F[b+28>>2]){return 1}a:{b:{c:{while(1){g=i;i=F[(k<<2)+c>>2];d:{if((i|0)==-1){i=g;break d}b=F[a+56>>2];e:{if((b|0)!=F[a+60>>2]){F[b>>2]=g;F[a+56>>2]=b+4;break e}d=F[a+52>>2];e=b-d|0;h=e>>2;c=h+1|0;if(c>>>0>=1073741824){break c}f=e>>>1|0;f=e>>>0>=2147483644?1073741823:c>>>0>>0?f:c;if(f){if(f>>>0>=1073741824){break b}e=ka(f<<2)}else{e=0}c=e+(h<<2)|0;F[c>>2]=g;h=c+4|0;if((b|0)!=(d|0)){while(1){c=c-4|0;b=b-4|0;F[c>>2]=F[b>>2];if((b|0)!=(d|0)){continue}break}}F[a+60>>2]=e+(f<<2);F[a+56>>2]=h;F[a+52>>2]=c;if(!d){break e}ja(d)}f:{g:{if(!(F[F[a+12>>2]+(k>>>3&536870908)>>2]>>>k&1)){break g}e=i+1|0;e=(e>>>0)%3|0?e:i-2|0;if((e|0)==-1|F[F[a>>2]+(e>>>3&536870908)>>2]>>>e&1){break g}e=F[F[F[a+64>>2]+12>>2]+(e<<2)>>2];if((e|0)==-1){break g}b=e+1|0;b=(b>>>0)%3|0?b:e-2|0;if((b|0)==-1){break g}c=F[a+64>>2];f=F[a>>2];while(1){e=b;b=-1;d=e+1|0;d=(d>>>0)%3|0?d:e-2|0;h:{if((d|0)==-1|F[f+(d>>>3&536870908)>>2]>>>d&1){break h}d=F[F[c+12>>2]+(d<<2)>>2];if((d|0)==-1){break h}b=d+1|0;b=(b>>>0)%3|0?b:d-2|0}if((b|0)!=(i|0)){if((b|0)==-1){break f}continue}break}return 0}e=i}F[F[a+28>>2]+(e<<2)>>2]=g;b=F[a+44>>2];i:{if((b|0)!=F[a+48>>2]){F[b>>2]=e;F[a+44>>2]=b+4;break i}d=F[a+40>>2];i=b-d|0;h=i>>2;c=h+1|0;if(c>>>0>=1073741824){break a}f=i>>>1|0;f=i>>>0>=2147483644?1073741823:c>>>0>>0?f:c;if(f){if(f>>>0>=1073741824){break b}i=ka(f<<2)}else{i=0}c=i+(h<<2)|0;F[c>>2]=e;h=c+4|0;if((b|0)!=(d|0)){while(1){c=c-4|0;b=b-4|0;F[c>>2]=F[b>>2];if((b|0)!=(d|0)){continue}break}}F[a+48>>2]=i+(f<<2);F[a+44>>2]=h;F[a+40>>2]=c;if(!d){break i}ja(d)}i=g+1|0;b=F[a+64>>2];if((e|0)==-1){break d}j:{if((e>>>0)%3|0){c=e-1|0;break j}c=e+2|0;if((c|0)==-1){break d}}d=F[F[b+12>>2]+(c<<2)>>2];if((d|0)==-1){break d}f=d+((d>>>0)%3|0?-1:2)|0;if((f|0)==-1|(e|0)==(f|0)){break d}while(1){b=f+1|0;b=(b>>>0)%3|0?b:f-2|0;if(F[F[a>>2]+(b>>>3&536870908)>>2]>>>b&1){b=F[a+56>>2];k:{if((b|0)!=F[a+60>>2]){F[b>>2]=i;F[a+56>>2]=b+4;break k}d=F[a+52>>2];g=b-d|0;j=g>>2;c=j+1|0;if(c>>>0>=1073741824){break c}h=g>>>1|0;h=g>>>0>=2147483644?1073741823:c>>>0>>0?h:c;if(h){if(h>>>0>=1073741824){break b}g=ka(h<<2)}else{g=0}c=g+(j<<2)|0;F[c>>2]=i;j=c+4|0;if((b|0)!=(d|0)){while(1){c=c-4|0;b=b-4|0;F[c>>2]=F[b>>2];if((b|0)!=(d|0)){continue}break}}F[a+60>>2]=g+(h<<2);F[a+56>>2]=j;F[a+52>>2]=c;if(!d){break k}ja(d)}d=i+1|0;b=F[a+44>>2];l:{if((b|0)!=F[a+48>>2]){F[b>>2]=f;F[a+44>>2]=b+4;break l}h=F[a+40>>2];g=b-h|0;l=g>>2;c=l+1|0;if(c>>>0>=1073741824){break a}j=g>>>1|0;j=g>>>0>=2147483644?1073741823:c>>>0>>0?j:c;if(j){if(j>>>0>=1073741824){break b}g=ka(j<<2)}else{g=0}c=g+(l<<2)|0;F[c>>2]=f;l=c+4|0;if((b|0)!=(h|0)){while(1){c=c-4|0;b=b-4|0;F[c>>2]=F[b>>2];if((b|0)!=(h|0)){continue}break}}F[a+48>>2]=g+(j<<2);F[a+44>>2]=l;F[a+40>>2]=c;if(!h){break l}ja(h)}g=i;i=d}F[F[a+28>>2]+(f<<2)>>2]=g;b=F[a+64>>2];m:{if((f>>>0)%3|0){c=f-1|0;break m}c=f+2|0;if((c|0)==-1){break d}}d=F[F[b+12>>2]+(c<<2)>>2];if((d|0)==-1){break d}f=d+((d>>>0)%3|0?-1:2)|0;if((f|0)==-1){break d}if((e|0)!=(f|0)){continue}break}}k=k+1|0;c=F[b+24>>2];if(k>>>0>2]-c>>2>>>0){continue}break}return 1}na();v()}oa();v()}na();v()}function Kb(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0;f=Z-96|0;Z=f;e=F[a+16>>2];D[f+92|0]=1;F[f+88>>2]=b;F[f+84>>2]=b;F[f+80>>2]=e;a:{if((b|0)==-1){break a}j=F[a+20>>2];d=F[j>>2];e=F[F[e>>2]+(b<<2)>>2];if(e>>>0>=F[j+4>>2]-d>>2>>>0){break a}e=F[F[a+8>>2]+(F[d+(e<<2)>>2]<<2)>>2];d=F[a+4>>2];if(!G[d+84|0]){e=F[F[d+68>>2]+(e<<2)>>2]}F[f+72>>2]=0;F[f+76>>2]=0;j=f- -64|0;F[j>>2]=0;F[j+4>>2]=0;F[f+56>>2]=0;F[f+60>>2]=0;Ga(d,e,D[d+24|0],f+56|0);e=b+1|0;j=(e>>>0)%3|0?e:b-2|0;n=((b>>>0)%3|0?-1:2)+b|0;b:{c:{while(1){d=j;e=n;d:{if(!F[a+28>>2]){break d}e=b+1|0;d=(e>>>0)%3|0?e:b-2|0;e=b-1|0;if((b>>>0)%3|0){break d}e=b+2|0}if((d|0)==-1){break b}m=F[a+20>>2];b=F[m>>2];d=F[F[F[a+16>>2]>>2]+(d<<2)>>2];if(d>>>0>=F[m+4>>2]-b>>2>>>0){break b}d=F[F[a+8>>2]+(F[(d<<2)+b>>2]<<2)>>2];b=F[a+4>>2];if(!G[b+84|0]){d=F[F[b+68>>2]+(d<<2)>>2]}F[f+48>>2]=0;F[f+52>>2]=0;F[f+40>>2]=0;F[f+44>>2]=0;F[f+32>>2]=0;F[f+36>>2]=0;Ga(b,d,D[b+24|0],f+32|0);if((e|0)==-1){break c}d=F[a+20>>2];b=F[d>>2];e=F[F[F[a+16>>2]>>2]+(e<<2)>>2];if(e>>>0>=F[d+4>>2]-b>>2>>>0){break c}d=F[F[a+8>>2]+(F[b+(e<<2)>>2]<<2)>>2];b=F[a+4>>2];if(!G[b+84|0]){d=F[F[b+68>>2]+(d<<2)>>2]}F[f+24>>2]=0;F[f+28>>2]=0;F[f+16>>2]=0;F[f+20>>2]=0;F[f+8>>2]=0;F[f+12>>2]=0;Ga(b,d,D[b+24|0],f+8|0);g=F[f+8>>2];b=F[f+56>>2];d=g-b|0;p=F[f+60>>2];t=F[f+12>>2]-(p+(b>>>0>g>>>0)|0)|0;i=F[f+40>>2];e=F[f+64>>2];m=i-e|0;u=F[f+68>>2];y=F[f+44>>2]-(u+(e>>>0>i>>>0)|0)|0;g=ki(d,t,m,y);w=o-g|0;x=h-(_+(g>>>0>o>>>0)|0)|0;h=w;i=F[f+16>>2];g=i-e|0;u=F[f+20>>2]-((e>>>0>i>>>0)+u|0)|0;k=F[f+32>>2];i=k-b|0;w=F[f+36>>2]-((b>>>0>k>>>0)+p|0)|0;b=ki(g,u,i,w);o=h+b|0;h=_+x|0;h=b>>>0>o>>>0?h+1|0:h;b=l;l=d;p=t;k=F[f+48>>2];e=F[f+72>>2];d=k-e|0;t=F[f+76>>2];x=F[f+52>>2]-(t+(e>>>0>k>>>0)|0)|0;l=ki(l,p,d,x);k=b+l|0;b=_+q|0;b=k>>>0>>0?b+1|0:b;l=F[f+24>>2];p=l-e|0;e=F[f+28>>2]-((e>>>0>l>>>0)+t|0)|0;q=ki(p,e,i,w);l=k-q|0;q=b-(_+(k>>>0>>0)|0)|0;b=ki(g,u,d,x);d=r-b|0;b=s-(_+(b>>>0>r>>>0)|0)|0;s=ki(p,e,m,y);r=s+d|0;b=_+b|0;s=r>>>0>>0?b+1|0:b;nc(f+80|0);b=F[f+88>>2];if((b|0)!=-1){continue}break}b=s>>31;e=b^r;d=e-b|0;b=(b^s)-((b>>>0>e>>>0)+b|0)|0;n=-1;e=2147483647;m=q>>31;g=m;i=g^l;j=i-g|0;m=(g^q)-((i>>>0>>0)+g|0)|0;i=m;k=j^-1;g=i^2147483647;m=h;e:{f:{if(!F[a+28>>2]){if((b|0)==(g|0)&d>>>0>k>>>0|b>>>0>g>>>0){break e}b=b+i|0;a=d+j|0;b=a>>>0>>0?b+1|0:b;e=a;g=h;a=g>>31;d=a;n=d^o;a=n-d|0;h=a;d=(d^g)-((d>>>0>n>>>0)+d|0)|0;a=a+e|0;d=d^2147483647;h=(d|0)==(b|0)&(h^-1)>>>0>>0|b>>>0>d>>>0;a=h?-1:a;if(!(h&0)&(a|0)<=536870912|(a|0)<536870912){break e}b=0;a=a>>>29|0;break f}g:{if((b|0)==(g|0)&d>>>0>k>>>0|b>>>0>g>>>0){break g}b=b+i|0;a=d+j|0;b=a>>>0>>0?b+1|0:b;k=h;h=h>>31;g=h;i=g^o;h=i-g|0;j=(g^k)-((g>>>0>i>>>0)+g|0)|0;g=j^2147483647;d=a;a=h;if((g|0)==(b|0)&d>>>0>(a^-1)>>>0|b>>>0>g>>>0){break g}b=b+j|0;n=a+d|0;b=n>>>0>>0?b+1|0:b;e=b;if(!b&n>>>0<536870913){break e}}b=e>>>29|0;a=(e&536870911)<<3|n>>>29}o=li(o,m,a,b);l=li(l,q,a,b);r=li(r,s,a,b)}F[c+8>>2]=o;F[c+4>>2]=l;F[c>>2]=r;Z=f+96|0;return}ta();v()}ta();v()}ta();v()}function Nc(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;a:{if((b|0)<0){break a}c=F[a+12>>2];d=F[a+8>>2];if(c-d>>2>>>0<=b>>>0){break a}d=d+(b<<2)|0;e=F[d>>2];i=F[e+60>>2];f=F[e+56>>2];e=d+4|0;if((e|0)!=(c|0)){while(1){h=F[e>>2];F[e>>2]=0;g=F[d>>2];F[d>>2]=h;if(g){xa(g)}d=d+4|0;e=e+4|0;if((e|0)!=(c|0)){continue}break}c=F[a+12>>2]}if((c|0)!=(d|0)){while(1){c=c-4|0;e=F[c>>2];F[c>>2]=0;if(e){xa(e)}if((c|0)!=(d|0)){continue}break}}F[a+12>>2]=d;g=F[a+4>>2];b:{if(!g|(i|0)<0){break b}c=F[g+24>>2];d=F[g+28>>2];if((c|0)==(d|0)){break b}while(1){if((i|0)==F[F[c>>2]+24>>2]){d=c+4|0;i=F[g+28>>2];if((d|0)!=(i|0)){while(1){h=F[d>>2];F[d>>2]=0;e=F[c>>2];F[c>>2]=h;if(e){Ca(e+12|0,F[e+16>>2]);Ba(e,F[e+4>>2]);ja(e)}c=c+4|0;d=d+4|0;if((i|0)!=(d|0)){continue}break}d=F[g+28>>2]}if((c|0)!=(d|0)){while(1){d=d-4|0;e=F[d>>2];F[d>>2]=0;if(e){Ca(e+12|0,F[e+16>>2]);Ba(e,F[e+4>>2]);ja(e)}if((c|0)!=(d|0)){continue}break}}F[g+28>>2]=c;break b}c=c+4|0;if((d|0)!=(c|0)){continue}break}}c:{if((f|0)>4){break c}d:{e=L(f,12)+a|0;c=F[e+20>>2];d=F[e+24>>2];if((c|0)==(d|0)){break d}while(1){if(F[c>>2]==(b|0)){break d}c=c+4|0;if((d|0)!=(c|0)){continue}break}break c}if((c|0)==(d|0)){break c}f=c;c=c+4|0;pa(f,c,d-c|0);F[e+24>>2]=d-4}c=F[a+24>>2];d=F[a+20>>2];e:{if((c|0)==(d|0)){break e}e=c-d|0;c=e>>2;g=c>>>0<=1?1:c;i=g&1;c=0;if(e>>>0>=8){g=g&-2;e=0;while(1){f=c<<2;h=f+d|0;j=F[h>>2];if((j|0)>(b|0)){F[h>>2]=j-1}f=d+(f|4)|0;h=F[f>>2];if((h|0)>(b|0)){F[f>>2]=h-1}c=c+2|0;e=e+2|0;if((g|0)!=(e|0)){continue}break}}if(!i){break e}c=d+(c<<2)|0;d=F[c>>2];if((d|0)<=(b|0)){break e}F[c>>2]=d-1}c=F[a+36>>2];d=F[a+32>>2];f:{if((c|0)==(d|0)){break f}e=c-d|0;c=e>>2;g=c>>>0<=1?1:c;i=g&1;c=0;if(e>>>0>=8){g=g&-2;e=0;while(1){f=c<<2;h=f+d|0;j=F[h>>2];if((j|0)>(b|0)){F[h>>2]=j-1}f=d+(f|4)|0;h=F[f>>2];if((h|0)>(b|0)){F[f>>2]=h-1}c=c+2|0;e=e+2|0;if((g|0)!=(e|0)){continue}break}}if(!i){break f}c=d+(c<<2)|0;d=F[c>>2];if((d|0)<=(b|0)){break f}F[c>>2]=d-1}c=F[a+48>>2];d=F[a+44>>2];g:{if((c|0)==(d|0)){break g}e=c-d|0;c=e>>2;g=c>>>0<=1?1:c;i=g&1;c=0;if(e>>>0>=8){g=g&-2;e=0;while(1){f=c<<2;h=f+d|0;j=F[h>>2];if((j|0)>(b|0)){F[h>>2]=j-1}f=d+(f|4)|0;h=F[f>>2];if((h|0)>(b|0)){F[f>>2]=h-1}c=c+2|0;e=e+2|0;if((g|0)!=(e|0)){continue}break}}if(!i){break g}c=d+(c<<2)|0;d=F[c>>2];if((d|0)<=(b|0)){break g}F[c>>2]=d-1}c=F[a+60>>2];d=F[a+56>>2];h:{if((c|0)==(d|0)){break h}e=c-d|0;c=e>>2;g=c>>>0<=1?1:c;i=g&1;c=0;if(e>>>0>=8){g=g&-2;e=0;while(1){f=c<<2;h=f+d|0;j=F[h>>2];if((j|0)>(b|0)){F[h>>2]=j-1}f=d+(f|4)|0;h=F[f>>2];if((h|0)>(b|0)){F[f>>2]=h-1}c=c+2|0;e=e+2|0;if((g|0)!=(e|0)){continue}break}}if(!i){break h}c=d+(c<<2)|0;d=F[c>>2];if((d|0)<=(b|0)){break h}F[c>>2]=d-1}c=F[a+72>>2];a=F[a+68>>2];if((c|0)==(a|0)){break a}d=c-a|0;c=d>>2;e=c>>>0<=1?1:c;g=e&1;c=0;if(d>>>0>=8){d=e&-2;e=0;while(1){i=c<<2;f=i+a|0;h=F[f>>2];if((h|0)>(b|0)){F[f>>2]=h-1}i=a+(i|4)|0;f=F[i>>2];if((f|0)>(b|0)){F[i>>2]=f-1}c=c+2|0;e=e+2|0;if((d|0)!=(e|0)){continue}break}}if(!g){break a}f=b;a=a+(c<<2)|0;b=F[a>>2];if((f|0)>=(b|0)){break a}F[a>>2]=b-1}}function ja(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;a:{if(!a){break a}d=a-8|0;b=F[a-4>>2];a=b&-8;f=d+a|0;b:{if(b&1){break b}if(!(b&3)){break a}b=F[d>>2];d=d-b|0;if(d>>>0>>0<=255){e=F[d+8>>2];b=b>>>3|0;c=F[d+12>>2];if((c|0)==(e|0)){i=11764,j=F[2941]&oi(b),F[i>>2]=j;break b}F[e+12>>2]=c;F[c+8>>2]=e;break b}h=F[d+24>>2];b=F[d+12>>2];c:{if((d|0)!=(b|0)){c=F[d+8>>2];F[c+12>>2]=b;F[b+8>>2]=c;break c}d:{e=d+20|0;c=F[e>>2];if(c){break d}e=d+16|0;c=F[e>>2];if(c){break d}b=0;break c}while(1){g=e;b=c;e=b+20|0;c=F[e>>2];if(c){continue}e=b+16|0;c=F[b+16>>2];if(c){continue}break}F[g>>2]=0}if(!h){break b}e=F[d+28>>2];c=(e<<2)+12068|0;e:{if(F[c>>2]==(d|0)){F[c>>2]=b;if(b){break e}i=11768,j=F[2942]&oi(e),F[i>>2]=j;break b}F[h+(F[h+16>>2]==(d|0)?16:20)>>2]=b;if(!b){break b}}F[b+24>>2]=h;c=F[d+16>>2];if(c){F[b+16>>2]=c;F[c+24>>2]=b}c=F[d+20>>2];if(!c){break b}F[b+20>>2]=c;F[c+24>>2]=b;break b}b=F[f+4>>2];if((b&3)!=3){break b}F[2943]=a;F[f+4>>2]=b&-2;F[d+4>>2]=a|1;F[a+d>>2]=a;return}if(d>>>0>=f>>>0){break a}b=F[f+4>>2];if(!(b&1)){break a}f:{if(!(b&2)){if(F[2947]==(f|0)){F[2947]=d;a=F[2944]+a|0;F[2944]=a;F[d+4>>2]=a|1;if(F[2946]!=(d|0)){break a}F[2943]=0;F[2946]=0;return}if(F[2946]==(f|0)){F[2946]=d;a=F[2943]+a|0;F[2943]=a;F[d+4>>2]=a|1;F[a+d>>2]=a;return}a=(b&-8)+a|0;g:{if(b>>>0<=255){e=F[f+8>>2];b=b>>>3|0;c=F[f+12>>2];if((c|0)==(e|0)){i=11764,j=F[2941]&oi(b),F[i>>2]=j;break g}F[e+12>>2]=c;F[c+8>>2]=e;break g}h=F[f+24>>2];b=F[f+12>>2];h:{if((f|0)!=(b|0)){c=F[f+8>>2];F[c+12>>2]=b;F[b+8>>2]=c;break h}i:{e=f+20|0;c=F[e>>2];if(c){break i}e=f+16|0;c=F[e>>2];if(c){break i}b=0;break h}while(1){g=e;b=c;e=b+20|0;c=F[e>>2];if(c){continue}e=b+16|0;c=F[b+16>>2];if(c){continue}break}F[g>>2]=0}if(!h){break g}e=F[f+28>>2];c=(e<<2)+12068|0;j:{if(F[c>>2]==(f|0)){F[c>>2]=b;if(b){break j}i=11768,j=F[2942]&oi(e),F[i>>2]=j;break g}F[h+(F[h+16>>2]==(f|0)?16:20)>>2]=b;if(!b){break g}}F[b+24>>2]=h;c=F[f+16>>2];if(c){F[b+16>>2]=c;F[c+24>>2]=b}c=F[f+20>>2];if(!c){break g}F[b+20>>2]=c;F[c+24>>2]=b}F[d+4>>2]=a|1;F[a+d>>2]=a;if(F[2946]!=(d|0)){break f}F[2943]=a;return}F[f+4>>2]=b&-2;F[d+4>>2]=a|1;F[a+d>>2]=a}if(a>>>0<=255){b=(a&-8)+11804|0;c=F[2941];a=1<<(a>>>3);k:{if(!(c&a)){F[2941]=a|c;a=b;break k}a=F[b+8>>2]}F[b+8>>2]=d;F[a+12>>2]=d;F[d+12>>2]=b;F[d+8>>2]=a;return}e=31;if(a>>>0<=16777215){b=O(a>>>8|0);e=((a>>>38-b&1)-(b<<1)|0)+62|0}F[d+28>>2]=e;F[d+16>>2]=0;F[d+20>>2]=0;g=(e<<2)+12068|0;l:{m:{c=F[2942];b=1<>2]=d;F[d+24>>2]=g;break n}e=a<<((e|0)!=31?25-(e>>>1|0)|0:0);b=F[g>>2];while(1){c=b;if((F[b+4>>2]&-8)==(a|0)){break m}b=e>>>29|0;e=e<<1;g=c+(b&4)|0;b=F[g+16>>2];if(b){continue}break}F[g+16>>2]=d;F[d+24>>2]=c}F[d+12>>2]=d;F[d+8>>2]=d;break l}a=F[c+8>>2];F[a+12>>2]=d;F[c+8>>2]=d;F[d+24>>2]=0;F[d+12>>2]=c;F[d+8>>2]=a}a=F[2949]-1|0;F[2949]=a?a:-1}}function di(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0;F[a+8>>2]=e;n=a+32|0;h=F[n>>2];f=F[a+36>>2]-h>>2;a:{if(f>>>0>>0){qa(n,e-f|0);d=F[a+8>>2];break a}d=e;if(d>>>0>=f>>>0){break a}F[a+36>>2]=h+(e<<2);d=e}s=F[a+52>>2];p=F[a+48>>2];f=0;h=e>>>0>1073741823?-1:e<<2;m=ma(ka(h),0,h);b:{if((d|0)<=0){break b}g=F[a+32>>2];while(1){d=f<<2;h=F[d+m>>2];j=F[a+16>>2];c:{if((h|0)>(j|0)){F[d+g>>2]=j;break c}d=d+g|0;j=F[a+12>>2];if((j|0)>(h|0)){F[d>>2]=j;break c}F[d>>2]=h}d=F[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}if((d|0)<=0){break b}f=0;while(1){h=f<<2;d=h+c|0;h=F[b+h>>2]+F[g+h>>2]|0;F[d>>2]=h;d:{if((h|0)>F[a+16>>2]){i=h-F[a+20>>2]|0}else{if((h|0)>=F[a+12>>2]){break d}i=h+F[a+20>>2]|0}F[d>>2]=i}d=F[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}}f=F[a+56>>2];q=F[f>>2];f=F[f+4>>2]-q|0;if((f|0)>=5){o=f>>>2|0;t=o>>>0<=2?2:o;u=e&-2;w=e&1;h=1;while(1){e:{f:{if((h|0)!=(o|0)){r=L(e,h);f=F[(h<<2)+q>>2];if((f|0)==-1){break f}f=F[F[p+12>>2]+(f<<2)>>2];if((f|0)==-1){break f}j=F[s>>2];g=F[p>>2];k=F[j+(F[g+(f<<2)>>2]<<2)>>2];i=f+1|0;i=(i>>>0)%3|0?i:f-2|0;if((i|0)!=-1){i=F[g+(i<<2)>>2]}else{i=-1}g:{h:{if((f>>>0)%3|0){f=f-1|0;break h}f=f+2|0;l=-1;if((f|0)==-1){break g}}l=F[g+(f<<2)>>2]}if((h|0)<=(k|0)){break f}f=F[(i<<2)+j>>2];if((f|0)>=(h|0)){break f}g=F[j+(l<<2)>>2];if((g|0)>=(h|0)){break f}i:{if((e|0)<=0){break i}g=L(e,g);j=L(e,f);k=L(e,k);f=0;l=0;if((e|0)!=1){while(1){F[(f<<2)+m>>2]=(F[(f+g<<2)+c>>2]+F[(f+j<<2)+c>>2]|0)-F[(f+k<<2)+c>>2];i=f|1;F[(i<<2)+m>>2]=(F[(g+i<<2)+c>>2]+F[(j+i<<2)+c>>2]|0)-F[(i+k<<2)+c>>2];f=f+2|0;l=l+2|0;if((u|0)!=(l|0)){continue}break}}if(!w){break i}F[(f<<2)+m>>2]=(F[(f+g<<2)+c>>2]+F[(f+j<<2)+c>>2]|0)-F[(f+k<<2)+c>>2]}if((d|0)<=0){break e}j=F[n>>2];f=0;while(1){d=f<<2;g=F[d+m>>2];k=F[a+16>>2];j:{if((g|0)>(k|0)){F[d+j>>2]=k;break j}d=d+j|0;k=F[a+12>>2];if((k|0)>(g|0)){F[d>>2]=k;break j}F[d>>2]=g}d=F[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}f=0;if((d|0)<=0){break e}d=r<<2;k=d+c|0;i=b+d|0;while(1){g=f<<2;d=g+k|0;g=F[g+i>>2]+F[g+j>>2]|0;F[d>>2]=g;k:{if((g|0)>F[a+16>>2]){l=g-F[a+20>>2]|0}else{if((g|0)>=F[a+12>>2]){break k}l=g+F[a+20>>2]|0}F[d>>2]=l}d=F[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}break e}ta();v()}if((d|0)<=0){break e}k=(L(h-1|0,e)<<2)+c|0;j=F[n>>2];f=0;while(1){d=f<<2;g=F[d+k>>2];i=F[a+16>>2];l:{if((g|0)>(i|0)){F[d+j>>2]=i;break l}d=d+j|0;i=F[a+12>>2];if((i|0)>(g|0)){F[d>>2]=i;break l}F[d>>2]=g}d=F[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}f=0;if((d|0)<=0){break e}d=r<<2;k=d+c|0;i=b+d|0;while(1){g=f<<2;d=g+k|0;g=F[g+i>>2]+F[g+j>>2]|0;F[d>>2]=g;m:{if((g|0)>F[a+16>>2]){l=g-F[a+20>>2]|0}else{if((g|0)>=F[a+12>>2]){break m}l=g+F[a+20>>2]|0}F[d>>2]=l}d=F[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}}h=h+1|0;if((t|0)!=(h|0)){continue}break}}ja(m);return 1}function od(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;if((b|0)==-1){return 1}g=(b>>>0)/3|0;if(!(F[F[a+24>>2]+(g>>>3&268435452)>>2]>>>g&1)){e=F[a+48>>2];F[a+52>>2]=e;a:{if((e|0)!=F[a+56>>2]){F[e>>2]=b;F[a+52>>2]=e+4;break a}d=ka(4);F[d>>2]=b;c=d+4|0;F[a+56>>2]=c;F[a+52>>2]=c;F[a+48>>2]=d;if(!e){break a}ja(e)}c=b+1|0;i=(c>>>0)%3|0?c:b-2|0;c=F[F[a+4>>2]+28>>2];k=F[(i<<2)+c>>2];if((k|0)==-1){return 0}e=(b-L(g,3)|0?-1:2)+b|0;j=F[c+(e<<2)>>2];if((j|0)==-1){return 0}b=F[a+36>>2];g=b+(k>>>3&536870908)|0;d=F[g>>2];c=1<>2]=c|d;Ka(a+8|0,k,i);b=F[a+36>>2]}d=(j>>>3&536870908)+b|0;c=F[d>>2];b=1<>2]=b|c;Ka(a+8|0,j,e)}f=F[a+52>>2];if((f|0)==F[a+48>>2]){return 1}k=a+8|0;while(1){b:{c:{f=f-4|0;b=F[f>>2];if((b|0)==-1){break c}c=(b>>>0)/3|0;g=F[a+24>>2]+(c>>>3&268435452)|0;d=F[g>>2];c=1<>2]=c|d;h=F[a+4>>2];c=F[F[h+28>>2]+(b<<2)>>2];if((c|0)==-1){return 0}while(1){d=b;d:{e:{j=F[a+36>>2]+(c>>>3&536870908)|0;i=F[j>>2];e=1<>2]+(c<<2)>>2];g:{if((g|0)==-1){break g}b=g+1|0;b=(b>>>0)%3|0?b:g-2|0;if((b|0)==-1|F[F[h>>2]+(b>>>3&536870908)>>2]>>>b&1){break g}g=F[F[F[h+64>>2]+12>>2]+(b<<2)>>2];if((g|0)!=-1){break f}}F[j>>2]=e|i;Ka(k,c,d);h=F[a+4>>2];break e}F[j>>2]=e|i;Ka(k,c,d);h=F[a+4>>2];b=g+1|0;if((((b>>>0)%3|0?b:g-2|0)|0)==-1){break e}b=-1;h:{if((d|0)==-1){break h}c=d+1|0;c=(c>>>0)%3|0?c:d-2|0;if((c|0)==-1|F[F[h>>2]+(c>>>3&536870908)>>2]>>>c&1){break h}b=F[F[F[h+64>>2]+12>>2]+(c<<2)>>2]}c=(b>>>0)/3|0;d=1<>2];e=c>>>5|0;j=F[f+(e<<2)>>2];break d}i:{j:{if((d|0)==-1){break j}c=-1;b=d+1|0;b=(b>>>0)%3|0?b:d-2|0;if(!((b|0)==-1|F[F[h>>2]+(b>>>3&536870908)>>2]>>>b&1)){c=F[F[F[h+64>>2]+12>>2]+(b<<2)>>2]}k:{l:{if((d>>>0)%3|0){f=d-1|0;break l}f=d+2|0;b=-1;if((f|0)==-1){break k}}b=-1;if(F[F[h>>2]+(f>>>3&536870908)>>2]>>>f&1){break k}b=F[F[F[h+64>>2]+12>>2]+(f<<2)>>2]}g=(b|0)==-1;i=g?-1:(b>>>0)/3|0;if((c|0)!=-1){f=F[a+24>>2];d=(c>>>0)/3|0;e=d>>>5|0;j=F[f+(e<<2)>>2];d=1<>2];e=i>>>5|0;j=F[f+(e<<2)>>2];if(!(d&j)){break d}}f=F[a+52>>2]-4|0;F[a+52>>2]=f;break b}if(g){b=c;break d}if(F[(i>>>3&536870908)+f>>2]>>>i&1){b=c;break d}h=F[a+52>>2];F[h-4>>2]=b;if(F[a+56>>2]!=(h|0)){F[h>>2]=c;f=h+4|0;break c}m:{i=F[a+48>>2];e=h-i|0;g=e>>2;d=g+1|0;if(d>>>0<1073741824){b=e>>>1|0;e=e>>>0>=2147483644?1073741823:b>>>0>d>>>0?b:d;if(e){if(e>>>0>=1073741824){break m}d=ka(e<<2)}else{d=0}b=d+(g<<2)|0;F[b>>2]=c;f=b+4|0;if((h|0)!=(i|0)){while(1){b=b-4|0;h=h-4|0;F[b>>2]=F[h>>2];if((h|0)!=(i|0)){continue}break}}F[a+56>>2]=d+(e<<2);F[a+52>>2]=f;F[a+48>>2]=b;if(!i){break b}ja(i);f=F[a+52>>2];break b}na();v()}oa();v()}F[(e<<2)+f>>2]=d|j;c=F[F[h+28>>2]+(b<<2)>>2];if((c|0)!=-1){continue}break}return 0}F[a+52>>2]=f}if(F[a+48>>2]!=(f|0)){continue}break}}return 1}function he(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0;F[a+8>>2]=e;m=a+32|0;h=F[m>>2];f=F[a+36>>2]-h>>2;a:{if(f>>>0>>0){qa(m,e-f|0);d=F[a+8>>2];break a}d=e;if(d>>>0>=f>>>0){break a}F[a+36>>2]=h+(e<<2);d=e}s=F[a+52>>2];n=F[a+48>>2];f=0;h=e>>>0>1073741823?-1:e<<2;l=ma(ka(h),0,h);b:{if((d|0)<=0){break b}g=F[a+32>>2];while(1){d=f<<2;h=F[d+l>>2];i=F[a+16>>2];c:{if((h|0)>(i|0)){F[d+g>>2]=i;break c}d=d+g|0;i=F[a+12>>2];if((i|0)>(h|0)){F[d>>2]=i;break c}F[d>>2]=h}d=F[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}if((d|0)<=0){break b}f=0;while(1){h=f<<2;d=h+c|0;h=F[b+h>>2]+F[g+h>>2]|0;F[d>>2]=h;d:{if((h|0)>F[a+16>>2]){h=h-F[a+20>>2]|0}else{if((h|0)>=F[a+12>>2]){break d}h=h+F[a+20>>2]|0}F[d>>2]=h}d=F[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}}f=F[a+56>>2];q=F[f>>2];f=F[f+4>>2]-q|0;if((f|0)>=5){o=f>>>2|0;t=o>>>0<=2?2:o;u=e&-2;w=e&1;h=1;while(1){e:{f:{if((h|0)!=(o|0)){r=L(e,h);f=F[(h<<2)+q>>2];if((f|0)==-1|F[F[n>>2]+(f>>>3&536870908)>>2]>>>f&1){break f}f=F[F[F[n+64>>2]+12>>2]+(f<<2)>>2];if((f|0)==-1){break f}i=F[s>>2];g=F[n+28>>2];k=F[i+(F[g+(f<<2)>>2]<<2)>>2];if((k|0)>=(h|0)){break f}j=f+1|0;j=F[i+(F[g+(((j>>>0)%3|0?j:f-2|0)<<2)>>2]<<2)>>2];if((j|0)>=(h|0)){break f}f=F[i+(F[g+(f+((f>>>0)%3|0?-1:2)<<2)>>2]<<2)>>2];if((f|0)>=(h|0)){break f}g:{if((e|0)<=0){break g}g=L(e,f);i=L(e,j);k=L(e,k);f=0;p=0;if((e|0)!=1){while(1){F[(f<<2)+l>>2]=(F[(f+g<<2)+c>>2]+F[(f+i<<2)+c>>2]|0)-F[(f+k<<2)+c>>2];j=f|1;F[(j<<2)+l>>2]=(F[(g+j<<2)+c>>2]+F[(i+j<<2)+c>>2]|0)-F[(k+j<<2)+c>>2];f=f+2|0;p=p+2|0;if((u|0)!=(p|0)){continue}break}}if(!w){break g}F[(f<<2)+l>>2]=(F[(f+g<<2)+c>>2]+F[(f+i<<2)+c>>2]|0)-F[(f+k<<2)+c>>2]}if((d|0)<=0){break e}i=F[m>>2];f=0;while(1){d=f<<2;g=F[d+l>>2];k=F[a+16>>2];h:{if((g|0)>(k|0)){F[d+i>>2]=k;break h}d=d+i|0;k=F[a+12>>2];if((k|0)>(g|0)){F[d>>2]=k;break h}F[d>>2]=g}d=F[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}f=0;if((d|0)<=0){break e}d=r<<2;k=d+c|0;j=b+d|0;while(1){g=f<<2;d=g+k|0;g=F[g+j>>2]+F[g+i>>2]|0;F[d>>2]=g;i:{if((g|0)>F[a+16>>2]){g=g-F[a+20>>2]|0}else{if((g|0)>=F[a+12>>2]){break i}g=g+F[a+20>>2]|0}F[d>>2]=g}d=F[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}break e}ta();v()}if((d|0)<=0){break e}k=(L(h-1|0,e)<<2)+c|0;i=F[m>>2];f=0;while(1){d=f<<2;g=F[d+k>>2];j=F[a+16>>2];j:{if((g|0)>(j|0)){F[d+i>>2]=j;break j}d=d+i|0;j=F[a+12>>2];if((j|0)>(g|0)){F[d>>2]=j;break j}F[d>>2]=g}d=F[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}f=0;if((d|0)<=0){break e}d=r<<2;k=d+c|0;j=b+d|0;while(1){g=f<<2;d=g+k|0;g=F[g+j>>2]+F[g+i>>2]|0;F[d>>2]=g;k:{if((g|0)>F[a+16>>2]){g=g-F[a+20>>2]|0}else{if((g|0)>=F[a+12>>2]){break k}g=g+F[a+20>>2]|0}F[d>>2]=g}d=F[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}}h=h+1|0;if((t|0)!=(h|0)){continue}break}}ja(l);return 1}function Fb(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=M(0),k=0,l=0,m=M(0);i=F[c>>2];a:{b:{f=F[b+4>>2];if(!f){break b}g=ni(f);c:{if(g>>>0>=2){e=i;if(f>>>0<=e>>>0){e=(i>>>0)%(f>>>0)|0}c=F[F[b>>2]+(e<<2)>>2];if(!c){break b}if(g>>>0<=1){break c}while(1){c=F[c>>2];if(!c){break b}g=F[c+4>>2];if((g|0)!=(i|0)){if(f>>>0<=g>>>0){g=(g>>>0)%(f>>>0)|0}if((e|0)!=(g|0)){break b}}if(F[c+8>>2]!=(i|0)){continue}break}b=0;break a}e=f-1&i;c=F[F[b>>2]+(e<<2)>>2];if(!c){break b}}h=f-1|0;while(1){c=F[c>>2];if(!c){break b}g=F[c+4>>2];if((g|0)!=(i|0)&(g&h)!=(e|0)){break b}if(F[c+8>>2]!=(i|0)){continue}break}b=0;break a}c=ka(16);d=F[F[d>>2]>>2];F[c+12>>2]=0;F[c+8>>2]=d;F[c+4>>2]=i;F[c>>2]=0;m=M(F[b+12>>2]+1>>>0);j=J[b+16>>2];d:{if(m>M(j*M(f>>>0))?0:f){break d}e=2;d=(f-1&f)!=0|f>>>0<3|f<<1;j=M(S(M(m/j)));e:{if(j=M(0)){g=~~j>>>0;break e}g=0}d=d>>>0>g>>>0?d:g;f:{if((d|0)==1){break f}if(!(d&d-1)){e=d;break f}e=Mc(d);f=F[b+4>>2]}g:{if(e>>>0<=f>>>0){if(e>>>0>=f>>>0){break g}g=f>>>0<3;j=M(S(M(M(I[b+12>>2])/J[b+16>>2])));h:{if(j=M(0)){d=~~j>>>0;break h}d=0}i:{j:{if(g){break j}if(ni(f)>>>0>1){break j}d=d>>>0<2?d:1<<32-O(d-1|0);break i}d=Mc(d)}e=d>>>0>>0?e:d;if(f>>>0<=e>>>0){break g}}f=0;g=0;h=e;k:{l:{m:{n:{if(e){if(h>>>0>=1073741824){break n}d=ka(h<<2);e=F[b>>2];F[b>>2]=d;if(e){ja(e)}F[b+4>>2]=h;d=0;if(h>>>0>=4){e=h&-4;while(1){k=d<<2;F[k+F[b>>2]>>2]=0;F[F[b>>2]+(k|4)>>2]=0;F[F[b>>2]+(k|8)>>2]=0;F[F[b>>2]+(k|12)>>2]=0;d=d+4|0;g=g+4|0;if((e|0)!=(g|0)){continue}break}}e=h&3;if(e){while(1){F[F[b>>2]+(d<<2)>>2]=0;d=d+1|0;f=f+1|0;if((e|0)!=(f|0)){continue}break}}e=F[b+8>>2];if(!e){break k}d=b+8|0;f=F[e+4>>2];g=ni(h);if(g>>>0<2){break m}f=f>>>0>=h>>>0?(f>>>0)%(h>>>0)|0:f;F[F[b>>2]+(f<<2)>>2]=d;d=F[e>>2];if(!d){break k}if(g>>>0<=1){break l}while(1){g=F[d+4>>2];if(h>>>0<=g>>>0){g=(g>>>0)%(h>>>0)|0}o:{if((f|0)==(g|0)){e=d;break o}l=g<<2;k=l+F[b>>2]|0;if(!F[k>>2]){F[k>>2]=e;e=d;f=g;break o}F[e>>2]=F[d>>2];F[d>>2]=F[F[l+F[b>>2]>>2]>>2];F[F[l+F[b>>2]>>2]>>2]=d}d=F[e>>2];if(d){continue}break}break k}d=F[b>>2];F[b>>2]=0;if(d){ja(d)}F[b+4>>2]=0;break k}oa();v()}f=h-1&f;F[F[b>>2]+(f<<2)>>2]=d;d=F[e>>2];if(!d){break k}}k=h-1|0;while(1){g=k&F[d+4>>2];p:{if((g|0)==(f|0)){e=d;break p}l=g<<2;h=l+F[b>>2]|0;if(F[h>>2]){F[e>>2]=F[d>>2];F[d>>2]=F[F[l+F[b>>2]>>2]>>2];F[F[l+F[b>>2]>>2]>>2]=d;break p}F[h>>2]=e;e=d;f=g}d=F[e>>2];if(d){continue}break}}}f=F[b+4>>2];d=f-1|0;if(!(d&f)){e=d&i;break d}if(f>>>0>i>>>0){e=i;break d}e=(i>>>0)%(f>>>0)|0}e=F[b>>2]+(e<<2)|0;d=F[e>>2];q:{r:{if(!d){d=b+8|0;F[c>>2]=F[d>>2];F[b+8>>2]=c;F[e>>2]=d;d=F[c>>2];if(!d){break q}d=F[d+4>>2];e=f-1|0;s:{if(!(e&f)){d=d&e;break s}if(d>>>0>>0){break s}d=(d>>>0)%(f>>>0)|0}d=F[b>>2]+(d<<2)|0;break r}F[c>>2]=F[d>>2]}F[d>>2]=c}F[b+12>>2]=F[b+12>>2]+1;b=1}D[a+4|0]=b;F[a>>2]=c}function Vb(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;j=L(b,12)+a|0;F[j+12>>2]=F[j+8>>2];m=(c|0)==-1?-1:(c>>>0)/3|0;d=1;k=c;a:{b:{c:{while(1){d:{l=d;if(!d){if((k|0)==-1){break d}if((Wc(a,((k>>>0)%3|0?-1:2)+k|0)|0)==-1){break a}c=k+1|0;d=(c>>>0)%3|0?c:k-2|0;if((d|0)==-1){break a}c=d+1|0;c=(c>>>0)%3|0?c:d-2|0;if((c|0)==-1){break a}d=F[F[F[a+4>>2]+12>>2]+(c<<2)>>2];if((d|0)==-1){break a}c=d+1|0;c=(c>>>0)%3|0?c:d-2|0;if((c|0)==-1){break a}m=(c>>>0)/3|0}e:{d=F[a+56>>2]+(m>>>3&536870908)|0;h=F[d>>2];e=1<>2]=e|h;d=F[j+12>>2];f:{if((d|0)!=F[j+16>>2]){F[d>>2]=m;F[j+12>>2]=d+4;break f}n=F[j+8>>2];h=d-n|0;e=h>>2;i=e+1|0;if(i>>>0>=1073741824){break c}g=h>>>1|0;i=h>>>0>=2147483644?1073741823:i>>>0>>0?g:i;if(i){if(i>>>0>=1073741824){break b}g=ka(i<<2)}else{g=0}h=g+(e<<2)|0;F[h>>2]=m;e=h+4|0;if((d|0)!=(n|0)){while(1){h=h-4|0;d=d-4|0;F[h>>2]=F[d>>2];if((d|0)!=(n|0)){continue}break}}F[j+8>>2]=h;F[j+12>>2]=e;F[j+16>>2]=g+(i<<2);if(!n){break f}ja(n)}g=f+1|0;g:{h:{i:{if(!f){break i}if(g&1){if((c|0)==-1){c=-1;break g}d=c+1|0;c=(d>>>0)%3|0?d:c-2|0;break i}k=l?k:c;if((c|0)==-1){c=-1;break g}if((c>>>0)%3|0){d=c-1|0;break h}c=c+2|0}d=c;c=-1;if((d|0)==-1){break g}}c=F[F[F[a+4>>2]+12>>2]+(d<<2)>>2];h=-1;f=-1;e=d+1|0;e=(e>>>0)%3|0?e:d-2|0;if((e|0)>=0){f=(e>>>0)/3|0;f=F[(F[F[a>>2]+96>>2]+L(f,12)|0)+(e-L(f,3)<<2)>>2]}j:{if((c|0)==-1){break j}i=((c>>>0)%3|0?-1:2)+c|0;if((i|0)<0){break j}e=(i>>>0)/3|0;h=F[(F[F[a>>2]+96>>2]+L(e,12)|0)+(i-L(e,3)<<2)>>2]}if((f|0)!=(h|0)){c=-1;break g}k:{l:{f=((d>>>0)%3|0?-1:2)+d|0;if((f|0)>=0){d=(f>>>0)/3|0;if((c|0)!=-1){break l}c=-1;break g}d=-1;if((c|0)!=-1){break k}c=-1;break g}d=F[(F[F[a>>2]+96>>2]+L(d,12)|0)+(f-L(d,3)<<2)>>2]}f=c+1|0;e=(f>>>0)%3|0?f:c-2|0;if((e|0)>=0){f=(e>>>0)/3|0;f=F[(F[F[a>>2]+96>>2]+L(f,12)|0)+(e-L(f,3)<<2)>>2]}else{f=-1}if((f|0)!=(d|0)){c=-1;break g}f=g;m=(c>>>0)/3|0;d=F[a+56>>2]+(m>>>3&268435452)|0;h=F[d>>2];e=1<>2]-4|0;g=F[l>>2];d=F[a+56>>2]+(g>>>3&536870908)|0;c=F[d>>2];o=d,p=oi(g)&c,F[o>>2]=p;F[j+12>>2]=l;break a}d=0;if(l){continue}break a}break}k=-1;Wc(a,-1);break a}na();v()}oa();v()}F[((b<<2)+a|0)+44>>2]=k;b=F[j+12>>2];i=F[j+8>>2];m:{if((b|0)==(i|0)){break m}c=b-i|0;b=c>>2;b=b>>>0<=1?1:b;k=b&1;e=F[a+56>>2];d=0;if(c>>>0>=8){f=b&-2;c=0;while(1){l=d<<2;g=F[l+i>>2];b=e+(g>>>3&536870908)|0;a=F[b>>2];o=b,p=oi(g)&a,F[o>>2]=p;g=F[i+(l|4)>>2];b=e+(g>>>3&536870908)|0;a=F[b>>2];o=b,p=oi(g)&a,F[o>>2]=p;d=d+2|0;c=c+2|0;if((f|0)!=(c|0)){continue}break}}if(!k){break m}c=F[i+(d<<2)>>2];b=e+(c>>>3&536870908)|0;a=F[b>>2];o=b,p=oi(c)&a,F[o>>2]=p}}function pd(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;if((b|0)==-1){return 1}g=(b>>>0)/3|0;if(!(F[F[a+24>>2]+(g>>>3&268435452)>>2]>>>g&1)){f=F[a+48>>2];F[a+52>>2]=f;a:{if((f|0)!=F[a+56>>2]){F[f>>2]=b;F[a+52>>2]=f+4;break a}d=ka(4);F[d>>2]=b;c=d+4|0;F[a+56>>2]=c;F[a+52>>2]=c;F[a+48>>2]=d;if(!f){break a}ja(f)}e=-1;d=F[a+4>>2];c=b+1|0;i=(c>>>0)%3|0?c:b-2|0;if((i|0)!=-1){e=F[F[d>>2]+(i<<2)>>2]}b:{h=b-L(g,3)|0;if(h){c=b-1|0;break b}c=b+2|0;if((c|0)!=-1){break b}return 0}if((e|0)==-1){return 0}j=F[F[d>>2]+(c<<2)>>2];if((j|0)==-1){return 0}c=F[a+36>>2];f=c+(e>>>3&536870908)|0;g=F[f>>2];d=1<>2]=d|g;Ka(a+8|0,e,i);c=F[a+36>>2]}g=(j>>>3&536870908)+c|0;d=F[g>>2];c=1<>2]=c|d;Ka(a+8|0,j,(h?-1:2)+b|0)}c=F[a+52>>2];if((c|0)==F[a+48>>2]){return 1}j=a+8|0;while(1){c:{d:{c=c-4|0;b=F[c>>2];if((b|0)==-1){break d}d=(b>>>0)/3|0;f=F[a+24>>2]+(d>>>3&268435452)|0;g=F[f>>2];d=1<>2]=d|g;while(1){i=F[a+4>>2];e=F[F[i>>2]+(b<<2)>>2];if((e|0)==-1){return 0}e:{f:{h=F[a+36>>2]+(e>>>3&536870908)|0;f=F[h>>2];g=1<>2]+(e<<2)>>2];h:{if((d|0)==-1){break h}c=d+1|0;c=(c>>>0)%3|0?c:d-2|0;if((c|0)==-1){break h}d=F[F[i+12>>2]+(c<<2)>>2];if((d|0)!=-1){break g}}F[h>>2]=f|g;Ka(j,e,b);break f}F[h>>2]=f|g;Ka(j,e,b);c=d+1|0;if((((c>>>0)%3|0?c:d-2|0)|0)==-1){break f}c=b-2|0;d=b+1|0;b=-1;c=(d>>>0)%3|0?d:c;if((c|0)!=-1){b=F[F[F[a+4>>2]+12>>2]+(c<<2)>>2]}c=(b>>>0)/3|0;d=1<>2];f=c>>>5|0;i=F[e+(f<<2)>>2];break e}c=-1;g=F[a+4>>2];d=b+1|0;d=(d>>>0)%3|0?d:b-2|0;if((d|0)!=-1){c=F[F[g+12>>2]+(d<<2)>>2]}i:{j:{if((b>>>0)%3|0){e=b-1|0;break j}e=b+2|0;b=-1;if((e|0)==-1){break i}}b=F[F[g+12>>2]+(e<<2)>>2]}g=(b|0)==-1;h=g?-1:(b>>>0)/3|0;k:{if((c|0)!=-1){e=F[a+24>>2];d=(c>>>0)/3|0;f=d>>>5|0;i=F[e+(f<<2)>>2];d=1<>2];f=h>>>5|0;i=F[e+(f<<2)>>2];if(!(d&i)){break e}}c=F[a+52>>2]-4|0;F[a+52>>2]=c;break c}if(g){b=c;break e}if(F[(h>>>3&536870908)+e>>2]>>>h&1){b=c;break e}e=F[a+52>>2];F[e-4>>2]=b;if(F[a+56>>2]!=(e|0)){F[e>>2]=c;c=e+4|0;break d}l:{h=F[a+48>>2];f=e-h|0;g=f>>2;d=g+1|0;if(d>>>0<1073741824){b=f>>>1|0;f=f>>>0>=2147483644?1073741823:b>>>0>d>>>0?b:d;if(f){if(f>>>0>=1073741824){break l}d=ka(f<<2)}else{d=0}b=d+(g<<2)|0;F[b>>2]=c;c=b+4|0;if((e|0)!=(h|0)){while(1){b=b-4|0;e=e-4|0;F[b>>2]=F[e>>2];if((e|0)!=(h|0)){continue}break}}F[a+56>>2]=d+(f<<2);F[a+52>>2]=c;F[a+48>>2]=b;if(!h){break c}ja(h);c=F[a+52>>2];break c}na();v()}oa();v()}F[(f<<2)+e>>2]=d|i;if((b|0)!=-1){continue}break}return 0}F[a+52>>2]=c}if(F[a+48>>2]!=(c|0)){continue}break}}return 1}function ee(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;h=Z-32|0;Z=h;a:{b:{if(!Oa(1,h+28|0,b)){break b}d=F[h+28>>2];c=F[F[a+48>>2]+64>>2];if(d>>>0>F[c+4>>2]-F[c>>2]>>2>>>0){break b}c:{if(d){Na(a+60|0,d);c=h+8|0;F[c>>2]=0;F[c+4>>2]=0;D[c+5|0]=0;D[c+6|0]=0;D[c+7|0]=0;D[c+8|0]=0;D[c+9|0]=0;D[c+10|0]=0;D[c+11|0]=0;D[c+12|0]=0;if(!Aa(c,b)){break c}while(1){f=1<>2]+(e>>>3&536870908)|0;if(j){i=f|F[g>>2]}else{i=F[g>>2]&(f^-1)}F[g>>2]=i;e=e+1|0;if((d|0)!=(e|0)){continue}break}}if(!Oa(1,h+28|0,b)){break b}d=F[h+28>>2];c=F[F[a+48>>2]+64>>2];if(d>>>0>F[c+4>>2]-F[c>>2]>>2>>>0){break b}if(d){e=0;Na(a+72|0,d);c=h+8|0;F[c>>2]=0;F[c+4>>2]=0;D[c+5|0]=0;D[c+6|0]=0;D[c+7|0]=0;D[c+8|0]=0;D[c+9|0]=0;D[c+10|0]=0;D[c+11|0]=0;D[c+12|0]=0;if(!Aa(c,b)){break c}while(1){f=1<>2]+(e>>>3&536870908)|0;if(j){i=f|F[g>>2]}else{i=F[g>>2]&(f^-1)}F[g>>2]=i;e=e+1|0;if((d|0)!=(e|0)){continue}break}}if(!Oa(1,h+28|0,b)){break b}d=F[h+28>>2];c=F[F[a+48>>2]+64>>2];if(d>>>0>F[c+4>>2]-F[c>>2]>>2>>>0){break b}if(d){e=0;Na(a+84|0,d);c=h+8|0;F[c>>2]=0;F[c+4>>2]=0;D[c+5|0]=0;D[c+6|0]=0;D[c+7|0]=0;D[c+8|0]=0;D[c+9|0]=0;D[c+10|0]=0;D[c+11|0]=0;D[c+12|0]=0;if(!Aa(c,b)){break c}while(1){f=1<>2]+(e>>>3&536870908)|0;if(j){i=f|F[g>>2]}else{i=F[g>>2]&(f^-1)}F[g>>2]=i;e=e+1|0;if((d|0)!=(e|0)){continue}break}}if(!Oa(1,h+28|0,b)){break b}d=F[h+28>>2];c=F[F[a+48>>2]+64>>2];if(d>>>0>F[c+4>>2]-F[c>>2]>>2>>>0){break b}if(d){e=0;Na(a+96|0,d);c=h+8|0;F[c>>2]=0;F[c+4>>2]=0;D[c+5|0]=0;D[c+6|0]=0;D[c+7|0]=0;D[c+8|0]=0;D[c+9|0]=0;D[c+10|0]=0;D[c+11|0]=0;D[c+12|0]=0;if(!Aa(c,b)){break c}while(1){f=1<>2]+(e>>>3&536870908)|0;if(j){i=f|F[g>>2]}else{i=F[g>>2]&(f^-1)}F[g>>2]=i;e=e+1|0;if((d|0)!=(e|0)){continue}break}}e=0;c=F[b+8>>2];f=F[b+12>>2];d=c;c=F[b+20>>2];i=c;g=F[b+16>>2];j=g+4|0;c=j>>>0<4?c+1|0:c;if(d>>>0>>0&(c|0)>=(f|0)|(c|0)>(f|0)){break a}m=F[b>>2];k=m+g|0;l=G[k|0]|G[k+1|0]<<8|(G[k+2|0]<<16|G[k+3|0]<<24);F[b+16>>2]=j;F[b+20>>2]=c;k=d;d=f;c=i;f=g+8|0;c=f>>>0<8?c+1|0:c;if(f>>>0>k>>>0&(c|0)>=(d|0)|(c|0)>(d|0)){break a}d=j+m|0;d=G[d|0]|G[d+1|0]<<8|(G[d+2|0]<<16|G[d+3|0]<<24);F[b+16>>2]=f;F[b+20>>2]=c;if((d|0)<(l|0)){break a}F[a+16>>2]=d;F[a+12>>2]=l;c=(d>>31)-((l>>31)+(d>>>0>>0)|0)|0;b=d-l|0;if(!c&b>>>0>2147483646|c){break a}e=1;b=b+1|0;F[a+20>>2]=b;c=b>>>1|0;F[a+24>>2]=c;F[a+28>>2]=0-c;if(b&1){break a}F[a+24>>2]=c-1;break a}}e=0}Z=h+32|0;return e|0}function ai(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;h=Z-32|0;Z=h;a:{b:{if(!Oa(1,h+28|0,b)){break b}d=F[h+28>>2];c=F[a+48>>2];if(d>>>0>F[c+4>>2]-F[c>>2]>>2>>>0){break b}c:{if(d){Na(a+60|0,d);c=h+8|0;F[c>>2]=0;F[c+4>>2]=0;D[c+5|0]=0;D[c+6|0]=0;D[c+7|0]=0;D[c+8|0]=0;D[c+9|0]=0;D[c+10|0]=0;D[c+11|0]=0;D[c+12|0]=0;if(!Aa(c,b)){break c}while(1){f=1<>2]+(e>>>3&536870908)|0;if(j){i=f|F[g>>2]}else{i=F[g>>2]&(f^-1)}F[g>>2]=i;e=e+1|0;if((d|0)!=(e|0)){continue}break}}if(!Oa(1,h+28|0,b)){break b}d=F[h+28>>2];c=F[a+48>>2];if(d>>>0>F[c+4>>2]-F[c>>2]>>2>>>0){break b}if(d){e=0;Na(a+72|0,d);c=h+8|0;F[c>>2]=0;F[c+4>>2]=0;D[c+5|0]=0;D[c+6|0]=0;D[c+7|0]=0;D[c+8|0]=0;D[c+9|0]=0;D[c+10|0]=0;D[c+11|0]=0;D[c+12|0]=0;if(!Aa(c,b)){break c}while(1){f=1<>2]+(e>>>3&536870908)|0;if(j){i=f|F[g>>2]}else{i=F[g>>2]&(f^-1)}F[g>>2]=i;e=e+1|0;if((d|0)!=(e|0)){continue}break}}if(!Oa(1,h+28|0,b)){break b}d=F[h+28>>2];c=F[a+48>>2];if(d>>>0>F[c+4>>2]-F[c>>2]>>2>>>0){break b}if(d){e=0;Na(a+84|0,d);c=h+8|0;F[c>>2]=0;F[c+4>>2]=0;D[c+5|0]=0;D[c+6|0]=0;D[c+7|0]=0;D[c+8|0]=0;D[c+9|0]=0;D[c+10|0]=0;D[c+11|0]=0;D[c+12|0]=0;if(!Aa(c,b)){break c}while(1){f=1<>2]+(e>>>3&536870908)|0;if(j){i=f|F[g>>2]}else{i=F[g>>2]&(f^-1)}F[g>>2]=i;e=e+1|0;if((d|0)!=(e|0)){continue}break}}if(!Oa(1,h+28|0,b)){break b}d=F[h+28>>2];c=F[a+48>>2];if(d>>>0>F[c+4>>2]-F[c>>2]>>2>>>0){break b}if(d){e=0;Na(a+96|0,d);c=h+8|0;F[c>>2]=0;F[c+4>>2]=0;D[c+5|0]=0;D[c+6|0]=0;D[c+7|0]=0;D[c+8|0]=0;D[c+9|0]=0;D[c+10|0]=0;D[c+11|0]=0;D[c+12|0]=0;if(!Aa(c,b)){break c}while(1){f=1<>2]+(e>>>3&536870908)|0;if(j){i=f|F[g>>2]}else{i=F[g>>2]&(f^-1)}F[g>>2]=i;e=e+1|0;if((d|0)!=(e|0)){continue}break}}e=0;c=F[b+8>>2];f=F[b+12>>2];d=c;c=F[b+20>>2];i=c;g=F[b+16>>2];j=g+4|0;c=j>>>0<4?c+1|0:c;if(d>>>0>>0&(c|0)>=(f|0)|(c|0)>(f|0)){break a}m=F[b>>2];k=m+g|0;l=G[k|0]|G[k+1|0]<<8|(G[k+2|0]<<16|G[k+3|0]<<24);F[b+16>>2]=j;F[b+20>>2]=c;k=d;d=f;c=i;f=g+8|0;c=f>>>0<8?c+1|0:c;if(f>>>0>k>>>0&(c|0)>=(d|0)|(c|0)>(d|0)){break a}d=j+m|0;d=G[d|0]|G[d+1|0]<<8|(G[d+2|0]<<16|G[d+3|0]<<24);F[b+16>>2]=f;F[b+20>>2]=c;if((d|0)<(l|0)){break a}F[a+16>>2]=d;F[a+12>>2]=l;c=(d>>31)-((l>>31)+(d>>>0>>0)|0)|0;b=d-l|0;if(!c&b>>>0>2147483646|c){break a}e=1;b=b+1|0;F[a+20>>2]=b;c=b>>>1|0;F[a+24>>2]=c;F[a+28>>2]=0-c;if(b&1){break a}F[a+24>>2]=c-1;break a}}e=0}Z=h+32|0;return e|0}function uh(a){a=a|0;var b=0,c=0,d=0,e=0;c=F[a+32>>2];d=F[c+16>>2];e=F[c+12>>2];b=F[c+20>>2];if(I[c+8>>2]>d>>>0&(e|0)>=(b|0)|(b|0)<(e|0)){e=G[F[c>>2]+d|0];d=d+1|0;b=d?b:b+1|0;F[c+16>>2]=d;F[c+20>>2]=b;b=F[a+48>>2];F[a+48>>2]=0;if(b){$[F[F[b>>2]+4>>2]](b)}a:{b:{c:{d:{switch(e|0){case 0:b=ka(384);F[b>>2]=8284;ma(b+4|0,0,80);F[b+96>>2]=0;F[b+100>>2]=0;F[b+92>>2]=-1;F[b+84>>2]=-1;F[b+88>>2]=-1;F[b+104>>2]=0;F[b+108>>2]=0;F[b+112>>2]=0;F[b+116>>2]=0;F[b+120>>2]=0;F[b+124>>2]=0;F[b+128>>2]=0;F[b+132>>2]=0;F[b+136>>2]=0;F[b+140>>2]=0;F[b+144>>2]=0;F[b+148>>2]=0;F[b+156>>2]=0;F[b+160>>2]=0;F[b+152>>2]=1065353216;F[b+164>>2]=0;F[b+168>>2]=0;F[b+172>>2]=0;F[b+176>>2]=0;F[b+180>>2]=0;F[b+184>>2]=0;F[b+188>>2]=0;F[b+192>>2]=0;F[b+196>>2]=0;F[b+200>>2]=0;F[b+204>>2]=0;F[b+208>>2]=0;F[b+212>>2]=-1;F[b+216>>2]=0;F[b+220>>2]=0;F[b+224>>2]=0;Ja(b+232|0);Ja(b+272|0);c=b+312|0;F[c>>2]=0;F[c+4>>2]=0;D[c+5|0]=0;D[c+6|0]=0;D[c+7|0]=0;D[c+8|0]=0;D[c+9|0]=0;D[c+10|0]=0;D[c+11|0]=0;D[c+12|0]=0;Ja(b+328|0);F[b+376>>2]=0;F[b+368>>2]=0;F[b+372>>2]=0;break c;case 2:break d;default:break b}}b=ka(440);F[b>>2]=8336;ma(b+4|0,0,80);F[b+96>>2]=0;F[b+100>>2]=0;F[b+92>>2]=-1;F[b+84>>2]=-1;F[b+88>>2]=-1;F[b+104>>2]=0;F[b+108>>2]=0;F[b+112>>2]=0;F[b+116>>2]=0;F[b+120>>2]=0;F[b+124>>2]=0;F[b+128>>2]=0;F[b+132>>2]=0;F[b+136>>2]=0;F[b+140>>2]=0;F[b+144>>2]=0;F[b+148>>2]=0;F[b+156>>2]=0;F[b+160>>2]=0;F[b+152>>2]=1065353216;F[b+164>>2]=0;F[b+168>>2]=0;F[b+172>>2]=0;F[b+176>>2]=0;F[b+180>>2]=0;F[b+184>>2]=0;F[b+188>>2]=0;F[b+192>>2]=0;F[b+196>>2]=0;F[b+200>>2]=0;F[b+204>>2]=0;F[b+208>>2]=0;F[b+212>>2]=-1;F[b+216>>2]=0;F[b+220>>2]=0;F[b+224>>2]=0;Ja(b+232|0);Ja(b+272|0);c=b+312|0;F[c>>2]=0;F[c+4>>2]=0;D[c+5|0]=0;D[c+6|0]=0;D[c+7|0]=0;D[c+8|0]=0;D[c+9|0]=0;D[c+10|0]=0;D[c+11|0]=0;D[c+12|0]=0;Ja(b+328|0);F[b+392>>2]=0;F[b+396>>2]=0;F[b+384>>2]=0;F[b+388>>2]=0;F[b+376>>2]=0;F[b+380>>2]=0;F[b+368>>2]=0;F[b+372>>2]=0;F[b+416>>2]=0;F[b+420>>2]=0;F[b+408>>2]=2;F[b+412>>2]=7;F[b+400>>2]=-1;F[b+404>>2]=-1;F[b+424>>2]=0;F[b+428>>2]=0;F[b+432>>2]=0;F[b+436>>2]=0}c=F[a+48>>2];F[a+48>>2]=b;if(!c){break a}$[F[F[c>>2]+4>>2]](c)}b=F[a+48>>2];if(b){break a}return 0}a=$[F[F[b>>2]+8>>2]](b,a)|0}else{a=0}return a|0}function ei(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;g=Z-32|0;Z=g;F[a+68>>2]=f;d=F[a+56>>2];e=F[d>>2];d=F[d+4>>2];F[g+24>>2]=0;F[g+16>>2]=0;F[g+20>>2]=0;a:{d=d-e|0;if((d|0)>0){m=a+60|0;d=d>>>2|0;n=d>>>0<=1?1:d;o=a+112|0;while(1){e=F[a+56>>2];d=F[e>>2];if(F[e+4>>2]-d>>2>>>0<=j>>>0){break a}Mb(m,F[d+(j<<2)>>2],g+16|0);i=F[g+20>>2];d=i>>31;h=F[g+16>>2];e=h>>31;f=(d^i)-d+((e^h)-e)|0;k=F[g+24>>2];d=k>>31;e=(d^k)-d|0;d=0;l=e;e=e+f|0;d=l>>>0>e>>>0?1:d;b:{if(!(d|e)){F[g+16>>2]=F[a+108>>2];break b}f=F[a+108>>2];l=f>>31;h=li(ki(f,l,h,h>>31),_,e,d);F[g+16>>2]=h;d=li(ki(f,l,i,i>>31),_,e,d);F[g+20>>2]=d;e=d;d=d>>31;e=(e^d)-d|0;d=h>>31;d=e+((d^h)-d|0)|0;if((k|0)>=0){F[g+24>>2]=f-d;break b}F[g+24>>2]=d-f}d=wa(o);f=F[g+16>>2];c:{if(d){F[g+24>>2]=0-F[g+24>>2];e=0-F[g+20>>2]|0;F[g+20>>2]=e;f=0-f|0;F[g+16>>2]=f;break c}e=F[g+20>>2]}d:{if((f|0)>=0){f=F[a+108>>2];d=f+F[g+24>>2]|0;f=e+f|0;break d}e:{if((e|0)<0){d=F[g+24>>2];f=d>>31;f=(d^f)-f|0;break e}d=F[g+24>>2];f=d>>31;f=F[a+100>>2]+(f-(d^f)|0)|0}if((d|0)<0){d=e>>31;d=(d^e)-d|0;break d}d=e>>31;d=F[a+100>>2]+(d-(d^e)|0)|0}e=F[a+100>>2];f:{if(!(d|f)){d=e;f=d;break f}if(!((d|0)!=(e|0)|f)){f=d;break f}if(!((e|0)!=(f|0)|d)){d=f;break f}g:{if(f){break g}i=F[a+108>>2];if((i|0)>=(d|0)){break g}d=(i<<1)-d|0;f=0;break f}h:{if((e|0)!=(f|0)){break h}i=F[a+108>>2];if((i|0)<=(d|0)){break h}d=(i<<1)-d|0;break f}i:{if((d|0)!=(e|0)){break i}e=F[a+108>>2];if((e|0)<=(f|0)){break i}f=(e<<1)-f|0;break f}if(d){break f}d=0;e=F[a+108>>2];if((e|0)>=(f|0)){break f}f=(e<<1)-f|0}F[g+12>>2]=d;F[g+8>>2]=f;j:{if(F[a+8>>2]<=0){break j}i=F[a+32>>2];f=0;while(1){d=f<<2;e=F[d+(g+8|0)>>2];h=F[a+16>>2];k:{if((e|0)>(h|0)){F[d+i>>2]=h;break k}d=d+i|0;h=F[a+12>>2];if((h|0)>(e|0)){F[d>>2]=h;break k}F[d>>2]=e}f=f+1|0;e=F[a+8>>2];if((f|0)<(e|0)){continue}break}d=0;if((e|0)<=0){break j}e=j<<3;h=e+c|0;k=b+e|0;while(1){f=d<<2;e=f+h|0;f=F[f+k>>2]+F[f+i>>2]|0;F[e>>2]=f;l:{if((f|0)>F[a+16>>2]){f=f-F[a+20>>2]|0}else{if((f|0)>=F[a+12>>2]){break l}f=f+F[a+20>>2]|0}F[e>>2]=f}d=d+1|0;if((d|0)>2]){continue}break}}j=j+1|0;if((n|0)!=(j|0)){continue}break}}Z=g+32|0;return 1}ta();v()}function Vh(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;g=Z-32|0;Z=g;F[a+68>>2]=f;d=F[a+56>>2];e=F[d>>2];d=F[d+4>>2];F[g+24>>2]=0;F[g+16>>2]=0;F[g+20>>2]=0;a:{d=d-e|0;if((d|0)>0){m=a+60|0;d=d>>>2|0;n=d>>>0<=1?1:d;o=a+112|0;while(1){e=F[a+56>>2];d=F[e>>2];if(F[e+4>>2]-d>>2>>>0<=j>>>0){break a}Kb(m,F[d+(j<<2)>>2],g+16|0);i=F[g+20>>2];d=i>>31;h=F[g+16>>2];e=h>>31;f=(d^i)-d+((e^h)-e)|0;k=F[g+24>>2];d=k>>31;e=(d^k)-d|0;d=0;l=e;e=e+f|0;d=l>>>0>e>>>0?1:d;b:{if(!(d|e)){F[g+16>>2]=F[a+108>>2];break b}f=F[a+108>>2];l=f>>31;h=li(ki(f,l,h,h>>31),_,e,d);F[g+16>>2]=h;d=li(ki(f,l,i,i>>31),_,e,d);F[g+20>>2]=d;e=d;d=d>>31;e=(e^d)-d|0;d=h>>31;d=e+((d^h)-d|0)|0;if((k|0)>=0){F[g+24>>2]=f-d;break b}F[g+24>>2]=d-f}d=wa(o);f=F[g+16>>2];c:{if(d){F[g+24>>2]=0-F[g+24>>2];e=0-F[g+20>>2]|0;F[g+20>>2]=e;f=0-f|0;F[g+16>>2]=f;break c}e=F[g+20>>2]}d:{if((f|0)>=0){f=F[a+108>>2];d=f+F[g+24>>2]|0;f=e+f|0;break d}e:{if((e|0)<0){d=F[g+24>>2];f=d>>31;f=(d^f)-f|0;break e}d=F[g+24>>2];f=d>>31;f=F[a+100>>2]+(f-(d^f)|0)|0}if((d|0)<0){d=e>>31;d=(d^e)-d|0;break d}d=e>>31;d=F[a+100>>2]+(d-(d^e)|0)|0}e=F[a+100>>2];f:{if(!(d|f)){d=e;f=d;break f}if(!((d|0)!=(e|0)|f)){f=d;break f}if(!((e|0)!=(f|0)|d)){d=f;break f}g:{if(f){break g}i=F[a+108>>2];if((i|0)>=(d|0)){break g}d=(i<<1)-d|0;f=0;break f}h:{if((e|0)!=(f|0)){break h}i=F[a+108>>2];if((i|0)<=(d|0)){break h}d=(i<<1)-d|0;break f}i:{if((d|0)!=(e|0)){break i}e=F[a+108>>2];if((e|0)<=(f|0)){break i}f=(e<<1)-f|0;break f}if(d){break f}d=0;e=F[a+108>>2];if((e|0)>=(f|0)){break f}f=(e<<1)-f|0}F[g+12>>2]=d;F[g+8>>2]=f;j:{if(F[a+8>>2]<=0){break j}i=F[a+32>>2];f=0;while(1){d=f<<2;e=F[d+(g+8|0)>>2];h=F[a+16>>2];k:{if((e|0)>(h|0)){F[d+i>>2]=h;break k}d=d+i|0;h=F[a+12>>2];if((h|0)>(e|0)){F[d>>2]=h;break k}F[d>>2]=e}f=f+1|0;e=F[a+8>>2];if((f|0)<(e|0)){continue}break}d=0;if((e|0)<=0){break j}e=j<<3;h=e+c|0;k=b+e|0;while(1){f=d<<2;e=f+h|0;f=F[f+k>>2]+F[f+i>>2]|0;F[e>>2]=f;l:{if((f|0)>F[a+16>>2]){f=f-F[a+20>>2]|0}else{if((f|0)>=F[a+12>>2]){break l}f=f+F[a+20>>2]|0}F[e>>2]=f}d=d+1|0;if((d|0)>2]){continue}break}}j=j+1|0;if((n|0)!=(j|0)){continue}break}}Z=g+32|0;return 1}ta();v()}function $a(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;h=Z-32|0;Z=h;a:{b:{if(F[a+8>>2]<<5>>>0>=b>>>0){break b}if((b|0)<0){break a}b=(b-1>>>5|0)+1|0;c=ka(b<<2);F[h+24>>2]=b;F[h+20>>2]=0;F[h+16>>2]=c;b=F[a>>2];F[h+12>>2]=0;F[h+8>>2]=b;c=F[a+4>>2];F[h+4>>2]=c&31;F[h>>2]=b+(c>>>3&536870908);e=Z-32|0;Z=e;i=F[h+4>>2];g=F[h+12>>2];j=F[h>>2];d=F[h+8>>2];b=(i-g|0)+(j-d<<3)|0;f=F[h+20>>2];c=b+f|0;F[h+20>>2]=c;if(!((c-1^f-1)>>>0<32?f:0)){F[F[h+16>>2]+((c>>>0>=33?c-1>>>5|0:0)<<2)>>2]=0}c=F[h+16>>2]+(f>>>3&536870908)|0;f=f&31;c:{if((f|0)==(g|0)){if((b|0)<=0){break c}if(g){i=32-g|0;f=(b|0)<(i|0)?b:i;i=-1<>>i-f;F[c>>2]=F[c>>2]&(i^-1)|i&F[d>>2];d=d+4|0;c=(g+f>>>3&536870908)+c|0;b=b-f|0}g=(b|0)/32|0;if(b+31>>>0>=63){pa(c,d,g<<2)}b=b-(g<<5)|0;if((b|0)<=0){break c}f=c;c=g<<2;g=f+c|0;b=-1>>>32-b|0;F[g>>2]=F[g>>2]&(b^-1)|b&F[c+d>>2];break c}F[e+28>>2]=g;F[e+24>>2]=d;F[e+20>>2]=i;F[e+16>>2]=j;F[e+12>>2]=f;F[e+8>>2]=c;b=F[e+28>>2];c=F[e+24>>2];g=(F[e+20>>2]-b|0)+(F[e+16>>2]-c<<3)|0;d:{if((g|0)<=0){b=F[e+12>>2];d=F[e+8>>2];break d}e:{if(!b){b=F[e+12>>2];break e}d=F[e+12>>2];j=32-d|0;k=32-b|0;f=(g|0)<(k|0)?g:k;i=f>>>0>j>>>0?j:f;l=F[e+8>>2];m=F[l>>2]&(-1<>>j-i^-1);j=F[c>>2]&(-1<>>k-f);F[l>>2]=m|(b>>>0>>0?j<>>b-d|0);c=d+i|0;b=c&31;F[e+12>>2]=b;d=l+(c>>>3&536870908)|0;F[e+8>>2]=d;c=f-i|0;if((c|0)>0){F[d>>2]=F[d>>2]&(-1>>>32-c^-1)|j>>>i+F[e+28>>2];F[e+12>>2]=c;b=c}g=g-f|0;c=F[e+24>>2]+4|0;F[e+24>>2]=c}i=-1<=32){j=i^-1;while(1){d=F[e+8>>2];c=F[c>>2];F[d>>2]=j&F[d>>2]|c<>2]=d+4;F[d+4>>2]=i&F[d+4>>2]|c>>>f;c=F[e+24>>2]+4|0;F[e+24>>2]=c;d=g>>>0>63;g=g-32|0;if(d){continue}break}}d=F[e+8>>2];if((g|0)<=0){break d}j=f;f=(g|0)>(f|0)?f:g;j=F[d>>2]&(i&-1>>>j-f^-1);i=F[c>>2]&-1>>>32-g;F[d>>2]=j|i<>2]=c;d=(b>>>3&536870908)+d|0;F[e+8>>2]=d;b=g-f|0;if((b|0)<=0){b=c;break d}F[d>>2]=F[d>>2]&(-1>>>32-b^-1)|i>>>f;F[e+12>>2]=b}F[e+4>>2]=b;F[e>>2]=d}Z=e+32|0;b=F[a>>2];F[a>>2]=F[h+16>>2];F[h+16>>2]=b;c=F[a+4>>2];F[a+4>>2]=F[h+20>>2];F[h+20>>2]=c;c=F[a+8>>2];F[a+8>>2]=F[h+24>>2];F[h+24>>2]=c;if(!b){break b}ja(b)}Z=h+32|0;return}na();v()}function xc(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;n=$[F[F[a>>2]+44>>2]](a)|0;a:{if((n|0)<=0){break a}i=F[b+4>>2]-F[b>>2]>>2;e=Z+-64|0;Z=e;f=kb(e);d=L(F[2541],n);cc(f,F[F[a+8>>2]+56>>2],n&255,5,0,d,d>>31);f=bc(ka(96),f);D[f+84|0]=1;F[f+72>>2]=F[f+68>>2];ac(f,i);F[f+60>>2]=F[F[a+8>>2]+60>>2];d=F[a+16>>2];F[a+16>>2]=f;if(d){xa(d)}Z=e- -64|0;h=F[a+16>>2];if(!F[h+80>>2]){break a}j=F[F[h>>2]>>2];if(!j){break a}m=F[c+12>>2];e=m;d=F[c+20>>2];g=F[c+8>>2];k=F[c+16>>2];if((e|0)<=(d|0)&g>>>0<=k>>>0|(d|0)>(e|0)){break a}l=L(i,n);i=j+F[h+48>>2]|0;h=F[c>>2];j=G[h+k|0];e=k+1|0;f=e?d:d+1|0;F[c+16>>2]=e;F[c+20>>2]=f;b:{c:{if(j){if(mc(l,n,c,i)){break c}break a}if((f|0)>=(m|0)&e>>>0>=g>>>0|(f|0)>(m|0)){break a}g=G[e+h|0];f=k+2|0;d=f>>>0<2?d+1|0:d;F[c+16>>2]=f;F[c+20>>2]=d;d=F[F[a+16>>2]+64>>2];d=F[d+4>>2]-F[d>>2]|0;if((g|0)==F[2541]){e=l<<2;if(e>>>0>d>>>0){break a}g=F[c+8>>2];k=F[c+12>>2];j=F[c+20>>2];d=F[c+16>>2];f=e+d|0;j=f>>>0>>0?j+1|0:j;if(f>>>0>g>>>0&(j|0)>=(k|0)|(j|0)>(k|0)){break a}la(i,d+F[c>>2]|0,e);f=F[c+20>>2];d=e+F[c+16>>2]|0;f=d>>>0>>0?f+1|0:f;F[c+16>>2]=d;F[c+20>>2]=f;break c}if(d>>>0>>0){break a}d=F[c+8>>2];f=F[c+16>>2];e=d-f|0;m=d>>>0>>0;d=F[c+20>>2];k=F[c+12>>2]-(m+d|0)|0;m=ki(g,0,l,0)>>>0>e>>>0;e=_;if(m&(e|0)>=(k|0)|(e|0)>(k|0)){break a}e=1;if(!l){break b}h=0;while(1){k=F[c+8>>2];j=F[c+12>>2];e=f+g|0;d=e>>>0>>0?d+1|0:d;if(e>>>0>k>>>0&(d|0)>=(j|0)|(d|0)>(j|0)){return 0}la(i+(h<<2)|0,F[c>>2]+f|0,g);d=F[c+20>>2];f=g+F[c+16>>2]|0;d=f>>>0>>0?d+1|0:d;F[c+16>>2]=f;F[c+20>>2]=d;h=h+1|0;if((l|0)!=(h|0)){continue}break}}e=1;if(!l){break b}d=F[a+20>>2];if(d){e=0;if($[F[F[d>>2]+32>>2]](d)|0){break b}}g=0;h=0;d:{if((l|0)<=0){break d}if((l|0)!=1){f=l&-2;while(1){e=g<<2;d=F[e+i>>2];F[e+i>>2]=0-(d&1)^d>>>1;d=e|4;e=F[d+i>>2];F[d+i>>2]=0-(e&1)^e>>>1;g=g+2|0;h=h+2|0;if((f|0)!=(h|0)){continue}break}}if(!(l&1)){break d}d=g<<2;f=F[d+i>>2];F[d+i>>2]=0-(f&1)^f>>>1}e=0}d=e;f=F[a+20>>2];e:{if(!f){break e}if(!($[F[F[f>>2]+40>>2]](f,c)|0)){break a}if(d){break e}a=F[a+20>>2];if(!($[F[F[a>>2]+44>>2]](a,i,i,l,n,F[b>>2])|0)){break a}}o=1}return o|0}function Lh(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;g=Z-48|0;Z=g;d=F[a+8>>2];if(d-2>>>0<=28){F[a+76>>2]=d;e=-1<>2]=d;F[a+80>>2]=e^-1;F[a+92>>2]=(d|0)/2;J[a+88>>2]=M(2)/M(d|0)}F[a+52>>2]=f;d=F[a+40>>2];e=F[d>>2];d=F[d+4>>2];F[g+16>>2]=0;F[g+8>>2]=0;F[g+12>>2]=0;a:{d=d-e|0;if((d|0)>0){m=a+8|0;n=a+44|0;d=d>>>2|0;o=d>>>0<=1?1:d;p=a+96|0;while(1){e=F[a+40>>2];d=F[e>>2];if(F[e+4>>2]-d>>2>>>0<=j>>>0){break a}Mb(n,F[d+(j<<2)>>2],g+8|0);h=F[g+12>>2];d=h>>31;i=F[g+8>>2];e=i>>31;f=(d^h)-d+((e^i)-e)|0;l=F[g+16>>2];d=l>>31;e=(d^l)-d|0;d=0;k=e;e=e+f|0;d=k>>>0>e>>>0?1:d;b:{if(!(d|e)){F[g+8>>2]=F[a+92>>2];break b}f=F[a+92>>2];k=f>>31;i=li(ki(f,k,i,i>>31),_,e,d);F[g+8>>2]=i;d=li(ki(f,k,h,h>>31),_,e,d);F[g+12>>2]=d;e=d>>31;e=(d^e)-e|0;d=i>>31;d=e+((d^i)-d|0)|0;if((l|0)>=0){F[g+16>>2]=f-d;break b}F[g+16>>2]=d-f}d=wa(p);f=F[g+8>>2];c:{if(d){F[g+16>>2]=0-F[g+16>>2];e=0-F[g+12>>2]|0;F[g+12>>2]=e;f=0-f|0;F[g+8>>2]=f;break c}e=F[g+12>>2]}d:{if((f|0)>=0){f=F[a+92>>2];d=f+F[g+16>>2]|0;f=e+f|0;break d}e:{if((e|0)<0){d=F[g+16>>2];f=d>>31;f=(d^f)-f|0;break e}d=F[g+16>>2];f=d>>31;f=F[a+84>>2]+(f-(d^f)|0)|0}if((d|0)<0){d=e>>31;d=(d^e)-d|0;break d}d=e>>31;d=F[a+84>>2]+(d-(d^e)|0)|0}e=F[a+84>>2];f:{if(!(d|f)){d=e;f=d;break f}if(!((d|0)!=(e|0)|f)){f=d;break f}if(!((e|0)!=(f|0)|d)){d=f;break f}g:{if(f){break g}h=F[a+92>>2];if((h|0)>=(d|0)){break g}d=(h<<1)-d|0;f=0;break f}h:{if((e|0)!=(f|0)){break h}h=F[a+92>>2];if((h|0)<=(d|0)){break h}d=(h<<1)-d|0;break f}i:{if((d|0)!=(e|0)){break i}e=F[a+92>>2];if((e|0)<=(f|0)){break i}f=(e<<1)-f|0;break f}if(d){break f}d=0;e=F[a+92>>2];if((e|0)>=(f|0)){break f}f=(e<<1)-f|0}e=j<<3;h=e+b|0;i=F[h>>2];h=F[h+4>>2];F[g+36>>2]=d;F[g+32>>2]=f;F[g+24>>2]=i;F[g+28>>2]=h;Jb(g+40|0,m,g+32|0,g+24|0);d=c+e|0;F[d>>2]=F[g+40>>2];F[d+4>>2]=F[g+44>>2];j=j+1|0;if((o|0)!=(j|0)){continue}break}}Z=g+48|0;return 1}ta();v()}function Hh(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;g=Z-48|0;Z=g;d=F[a+8>>2];if(d-2>>>0<=28){F[a+76>>2]=d;e=-1<>2]=d;F[a+80>>2]=e^-1;F[a+92>>2]=(d|0)/2;J[a+88>>2]=M(2)/M(d|0)}F[a+52>>2]=f;d=F[a+40>>2];e=F[d>>2];d=F[d+4>>2];F[g+16>>2]=0;F[g+8>>2]=0;F[g+12>>2]=0;a:{d=d-e|0;if((d|0)>0){m=a+8|0;n=a+44|0;d=d>>>2|0;o=d>>>0<=1?1:d;p=a+96|0;while(1){e=F[a+40>>2];d=F[e>>2];if(F[e+4>>2]-d>>2>>>0<=j>>>0){break a}Kb(n,F[d+(j<<2)>>2],g+8|0);h=F[g+12>>2];d=h>>31;i=F[g+8>>2];e=i>>31;f=(d^h)-d+((e^i)-e)|0;l=F[g+16>>2];d=l>>31;e=(d^l)-d|0;d=0;k=e;e=e+f|0;d=k>>>0>e>>>0?1:d;b:{if(!(d|e)){F[g+8>>2]=F[a+92>>2];break b}f=F[a+92>>2];k=f>>31;i=li(ki(f,k,i,i>>31),_,e,d);F[g+8>>2]=i;d=li(ki(f,k,h,h>>31),_,e,d);F[g+12>>2]=d;e=d>>31;e=(d^e)-e|0;d=i>>31;d=e+((d^i)-d|0)|0;if((l|0)>=0){F[g+16>>2]=f-d;break b}F[g+16>>2]=d-f}d=wa(p);f=F[g+8>>2];c:{if(d){F[g+16>>2]=0-F[g+16>>2];e=0-F[g+12>>2]|0;F[g+12>>2]=e;f=0-f|0;F[g+8>>2]=f;break c}e=F[g+12>>2]}d:{if((f|0)>=0){f=F[a+92>>2];d=f+F[g+16>>2]|0;f=e+f|0;break d}e:{if((e|0)<0){d=F[g+16>>2];f=d>>31;f=(d^f)-f|0;break e}d=F[g+16>>2];f=d>>31;f=F[a+84>>2]+(f-(d^f)|0)|0}if((d|0)<0){d=e>>31;d=(d^e)-d|0;break d}d=e>>31;d=F[a+84>>2]+(d-(d^e)|0)|0}e=F[a+84>>2];f:{if(!(d|f)){d=e;f=d;break f}if(!((d|0)!=(e|0)|f)){f=d;break f}if(!((e|0)!=(f|0)|d)){d=f;break f}g:{if(f){break g}h=F[a+92>>2];if((h|0)>=(d|0)){break g}d=(h<<1)-d|0;f=0;break f}h:{if((e|0)!=(f|0)){break h}h=F[a+92>>2];if((h|0)<=(d|0)){break h}d=(h<<1)-d|0;break f}i:{if((d|0)!=(e|0)){break i}e=F[a+92>>2];if((e|0)<=(f|0)){break i}f=(e<<1)-f|0;break f}if(d){break f}d=0;e=F[a+92>>2];if((e|0)>=(f|0)){break f}f=(e<<1)-f|0}e=j<<3;h=e+b|0;i=F[h>>2];h=F[h+4>>2];F[g+36>>2]=d;F[g+32>>2]=f;F[g+24>>2]=i;F[g+28>>2]=h;Jb(g+40|0,m,g+32|0,g+24|0);d=c+e|0;F[d>>2]=F[g+40>>2];F[d+4>>2]=F[g+44>>2];j=j+1|0;if((o|0)!=(j|0)){continue}break}}Z=g+48|0;return 1}ta();v()}function Nd(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;a:{if(!H[b+38>>1]){break a}if(!Ta(1,a+12|0,b)){break a}d=F[b+8>>2];e=F[b+16>>2];g=d-e|0;f=F[a+12>>2];d=F[b+12>>2]-(F[b+20>>2]+(d>>>0>>0)|0)|0;if(g>>>0>>6>>>0&(d|0)<=0|(d|0)<0){break a}d=F[a>>2];c=F[a+4>>2]-d>>2;b:{if(c>>>0>>0){qa(a,f-c|0);f=F[a+12>>2];break b}if(c>>>0<=f>>>0){break b}F[a+4>>2]=d+(f<<2)}if(!f){return 1}d=F[b+16>>2];c=F[b+20>>2];l=F[a>>2];j=F[b+8>>2];i=F[b+12>>2];g=0;while(1){if((c|0)>=(i|0)&d>>>0>=j>>>0|(c|0)>(i|0)){return 0}m=F[b>>2];k=G[m+d|0];d=d+1|0;c=d?c:c+1|0;F[b+16>>2]=d;F[b+20>>2]=c;e=k>>>2|0;h=0;c:{d:{e:{f:{n=k&3;switch(n|0){case 3:break f;case 0:break d;default:break e}}e=e+g|0;if(e>>>0>=f>>>0){return 0}ma(l+(g<<2)|0,0,(k&252)+4|0);g=e;break c}while(1){if((d|0)==(j|0)&(c|0)==(i|0)){break a}f=G[d+m|0];d=d+1|0;c=d?c:c+1|0;F[b+16>>2]=d;F[b+20>>2]=c;e=f<<(h<<3|6)|e;h=h+1|0;if((n|0)!=(h|0)){continue}break}}F[l+(g<<2)>>2]=e}f=F[a+12>>2];g=g+1|0;if(f>>>0>g>>>0){continue}break}b=a+16|0;j=F[a>>2];d=F[a+16>>2];c=F[a+20>>2]-d|0;g:{if(c>>>0<=16383){qa(b,4096-(c>>>2|0)|0);break g}if((c|0)==16384){break g}F[a+20>>2]=d+16384}c=a+28|0;g=F[c>>2];d=F[a+32>>2]-g>>3;h:{if(d>>>0>>0){_a(c,f-d|0);g=F[c>>2];break h}if(d>>>0>f>>>0){F[a+32>>2]=(f<<3)+g}if(!f){break a}}d=F[b>>2];b=0;a=0;while(1){c=j+(b<<2)|0;h=F[c>>2];e=a;i=(b<<3)+g|0;F[i+4>>2]=a;F[i>>2]=h;c=F[c>>2];a=c+a|0;if(a>>>0>4096){break a}i:{if(a>>>0<=e>>>0){break i}h=0;i=c&7;if(i){while(1){F[d+(e<<2)>>2]=b;e=e+1|0;h=h+1|0;if((i|0)!=(h|0)){continue}break}}if(c-1>>>0<=6){break i}while(1){c=d+(e<<2)|0;F[c>>2]=b;F[c+28>>2]=b;F[c+24>>2]=b;F[c+20>>2]=b;F[c+16>>2]=b;F[c+12>>2]=b;F[c+8>>2]=b;F[c+4>>2]=b;e=e+8|0;if((e|0)!=(a|0)){continue}break}}b=b+1|0;if((f|0)!=(b|0)){continue}break}o=(a|0)==4096}return o}function qf(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;f=Z-32|0;Z=f;e=f+8|0;c=Z-80|0;Z=c;a=F[b+36>>2];F[c+72>>2]=F[b+32>>2];F[c+76>>2]=a;d=F[b+28>>2];a=c- -64|0;F[a>>2]=F[b+24>>2];F[a+4>>2]=d;a=F[b+20>>2];F[c+56>>2]=F[b+16>>2];F[c+60>>2]=a;a=F[b+12>>2];F[c+48>>2]=F[b+8>>2];F[c+52>>2]=a;a=F[b+4>>2];F[c+40>>2]=F[b>>2];F[c+44>>2]=a;jc(c+8|0,c+40|0,c+24|0);a=F[c+8>>2];a:{if(a){F[e>>2]=a;a=e+4|0;if(D[c+23|0]>=0){b=c+8|4;e=F[b+4>>2];F[a>>2]=F[b>>2];F[a+4>>2]=e;F[a+8>>2]=F[b+8>>2];break a}ra(a,F[c+12>>2],F[c+16>>2]);if(D[c+23|0]>=0){break a}ja(F[c+12>>2]);break a}if(D[c+23|0]<0){ja(F[c+12>>2])}a=G[c+31|0];if(a>>>0>=2){b=ka(32);D[b+26|0]=0;a=G[1475]|G[1476]<<8;D[b+24|0]=a;D[b+25|0]=a>>>8;a=G[1471]|G[1472]<<8|(G[1473]<<16|G[1474]<<24);d=G[1467]|G[1468]<<8|(G[1469]<<16|G[1470]<<24);D[b+16|0]=d;D[b+17|0]=d>>>8;D[b+18|0]=d>>>16;D[b+19|0]=d>>>24;D[b+20|0]=a;D[b+21|0]=a>>>8;D[b+22|0]=a>>>16;D[b+23|0]=a>>>24;a=G[1463]|G[1464]<<8|(G[1465]<<16|G[1466]<<24);d=G[1459]|G[1460]<<8|(G[1461]<<16|G[1462]<<24);D[b+8|0]=d;D[b+9|0]=d>>>8;D[b+10|0]=d>>>16;D[b+11|0]=d>>>24;D[b+12|0]=a;D[b+13|0]=a>>>8;D[b+14|0]=a>>>16;D[b+15|0]=a>>>24;a=G[1455]|G[1456]<<8|(G[1457]<<16|G[1458]<<24);d=G[1451]|G[1452]<<8|(G[1453]<<16|G[1454]<<24);D[b|0]=d;D[b+1|0]=d>>>8;D[b+2|0]=d>>>16;D[b+3|0]=d>>>24;D[b+4|0]=a;D[b+5|0]=a>>>8;D[b+6|0]=a>>>16;D[b+7|0]=a>>>24;F[c+8>>2]=-1;a=c+8|4;ra(a,b,26);d=D[c+23|0];F[e>>2]=F[c+8>>2];e=e+4|0;if((d|0)>=0){d=F[a+4>>2];F[e>>2]=F[a>>2];F[e+4>>2]=d;F[e+8>>2]=F[a+8>>2];ja(b);break a}ra(e,F[c+12>>2],F[c+16>>2]);if(D[c+23|0]<0){ja(F[c+12>>2])}ja(b);break a}F[e>>2]=0;F[e+4>>2]=0;F[e+16>>2]=a;F[e+8>>2]=0;F[e+12>>2]=0}Z=c+80|0;a=F[f+24>>2];if(D[f+23|0]<0){ja(F[f+12>>2])}Z=f+32|0;return a|0}function Ph(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0;e=Z-32|0;Z=e;a:{if((c|0)!=3){break a}c=F[a+4>>2];f=F[a+12>>2];F[e+24>>2]=-1;F[e+16>>2]=-1;F[e+20>>2]=1065353216;F[e+8>>2]=-1;F[e+12>>2]=-1;if((b|0)==-2){break a}i=F[F[F[c+4>>2]+8>>2]+(f<<2)>>2];if(($[F[F[c>>2]+8>>2]](c)|0)==1){h=F[F[F[c+4>>2]+8>>2]+(f<<2)>>2];b:{if(($[F[F[c>>2]+8>>2]](c)|0)!=1|b-1>>>0>5){break b}g=$[F[F[c>>2]+36>>2]](c)|0;a=$[F[F[c>>2]+44>>2]](c,f)|0;if(!g|!a){break b}f=$[F[F[c>>2]+40>>2]](c,f)|0;c:{if(f){if((b|0)!=6){break b}b=F[c+44>>2];d=ka(112);F[d+4>>2]=h;c=F[e+12>>2];F[d+8>>2]=F[e+8>>2];F[d+12>>2]=c;c=F[e+20>>2];F[d+16>>2]=F[e+16>>2];F[d+20>>2]=c;F[d+24>>2]=F[e+24>>2];F[d+40>>2]=a;c=a+12|0;F[d+36>>2]=c;F[d+32>>2]=f;F[d+28>>2]=b;F[d+68>>2]=a;F[d- -64>>2]=c;F[d+60>>2]=f;F[d+56>>2]=b;F[d+48>>2]=0;F[d+52>>2]=0;F[d>>2]=5928;F[d+88>>2]=1065353216;F[d+92>>2]=-1;F[d+80>>2]=-1;F[d+84>>2]=-1;F[d+72>>2]=1;F[d+76>>2]=-1;F[d+44>>2]=6492;a=d+96|0;break c}if((b|0)!=6){break b}b=F[c+44>>2];d=ka(112);F[d+4>>2]=h;c=F[e+12>>2];F[d+8>>2]=F[e+8>>2];F[d+12>>2]=c;c=F[e+20>>2];F[d+16>>2]=F[e+16>>2];F[d+20>>2]=c;F[d+24>>2]=F[e+24>>2];F[d+40>>2]=a;c=a+12|0;F[d+36>>2]=c;F[d+32>>2]=g;F[d+28>>2]=b;F[d+68>>2]=a;F[d- -64>>2]=c;F[d+60>>2]=g;F[d+56>>2]=b;F[d+48>>2]=0;F[d+52>>2]=0;F[d>>2]=6932;F[d+88>>2]=1065353216;F[d+92>>2]=-1;F[d+80>>2]=-1;F[d+84>>2]=-1;F[d+72>>2]=1;F[d+76>>2]=-1;F[d+44>>2]=7352;a=d+96|0}F[a>>2]=0;F[a+4>>2]=0;D[a+5|0]=0;D[a+6|0]=0;D[a+7|0]=0;D[a+8|0]=0;D[a+9|0]=0;D[a+10|0]=0;D[a+11|0]=0;D[a+12|0]=0}if(d){break a}}d=ka(28);F[d+4>>2]=i;a=F[e+12>>2];F[d+8>>2]=F[e+8>>2];F[d+12>>2]=a;a=F[e+20>>2];F[d+16>>2]=F[e+16>>2];F[d+20>>2]=a;F[d+24>>2]=F[e+24>>2];F[d>>2]=7764}Z=e+32|0;return d|0}function $c(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;f=Z-80|0;Z=f;a:{if(!Wb(1,f+76|0,b)){break a}k=F[f+76>>2];if(!k){break a}c=F[b+8>>2];e=F[b+16>>2];c=ki(c-e|0,F[b+12>>2]-(F[b+20>>2]+(c>>>0>>0)|0)|0,5,0);e=_;if(c>>>0>>0&(e|0)<=0|(e|0)<0){break a}c=F[a+4>>2];d=F[a+8>>2]-c>>2;b:{if(d>>>0>>0){qa(a+4|0,k-d|0);break b}if(d>>>0<=k>>>0){break b}F[a+8>>2]=c+(k<<2)}p=a+16|0;l=F[a+32>>2];while(1){g=F[b+12>>2];c=g;d=F[b+20>>2];h=F[b+8>>2];e=F[b+16>>2];if((c|0)<=(d|0)&h>>>0<=e>>>0|(c|0)<(d|0)){d=0;break a}m=F[b>>2];q=G[m+e|0];c=d;i=e+1|0;c=i?c:c+1|0;F[b+16>>2]=i;F[b+20>>2]=c;if(h>>>0<=i>>>0&(c|0)>=(g|0)|(c|0)>(g|0)){d=0;break a}i=G[i+m|0];c=d;j=e+2|0;c=j>>>0<2?c+1|0:c;F[b+16>>2]=j;F[b+20>>2]=c;if(h>>>0<=j>>>0&(c|0)>=(g|0)|(c|0)>(g|0)){d=0;break a}j=G[j+m|0];c=d;n=e+3|0;c=n>>>0<3?c+1|0:c;F[b+16>>2]=n;F[b+20>>2]=c;if(h>>>0<=n>>>0&(c|0)>=(g|0)|(c|0)>(g|0)){d=0;break a}h=G[m+n|0];c=d;d=e+4|0;c=d>>>0<4?c+1|0:c;F[b+16>>2]=d;F[b+20>>2]=c;if(q>>>0>4){d=0;break a}if((i-12&255)>>>0<245){d=0;break a}if(!j){d=0;break a}c=kb(f+8|0);g=(h|0)!=0;d=i-1|0;if(d>>>0<=10){d=F[(d<<2)+10148>>2]}else{d=-1}d=L(d,j);cc(c,q,j,i,g,d,d>>31);if(Wb(1,f+4|0,b)){e=F[f+4>>2];F[f+68>>2]=e;d=bc(ka(96),c);$[F[F[l>>2]+8>>2]](l,F[l+12>>2]-F[l+8>>2]>>2,d);d=(F[l+12>>2]-F[l+8>>2]>>2)-1|0;h=d<<2;F[F[h+F[l+8>>2]>>2]+60>>2]=e;F[F[a+4>>2]+(o<<2)>>2]=d;c=F[a+16>>2];e=F[a+20>>2]-c>>2;c:{if((e|0)>(d|0)){break c}F[f>>2]=-1;d=d+1|0;if(d>>>0>e>>>0){Fa(p,d-e|0,f);c=F[p>>2];break c}if(d>>>0>=e>>>0){break c}F[a+20>>2]=(d<<2)+c}F[c+h>>2]=o;d=1;o=o+1|0;if((o|0)!=(k|0)){continue}break a}break}d=0}Z=f+80|0;return d|0}function Oc(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;k=Z-16|0;Z=k;F[k+8>>2]=c;h=F[a+12>>2];d=F[a+8>>2];g=h-d>>2;a:{if((g|0)>(b|0)){break a}e=b+1|0;if(e>>>0>g>>>0){l=e-g|0;f=F[a+16>>2];d=F[a+12>>2];if(l>>>0<=f-d>>2>>>0){if(l){e=d;d=l<<2;d=ma(e,0,d)+d|0}F[a+12>>2]=d;break a}b:{c:{d:{m=F[a+8>>2];g=d-m>>2;i=g+l|0;if(i>>>0<1073741824){e=f-m|0;f=e>>>1|0;e=e>>>0>=2147483644?1073741823:f>>>0>i>>>0?f:i;if(e){if(e>>>0>=1073741824){break d}j=ka(e<<2)}h=(g<<2)+j|0;f=l<<2;i=ma(h,0,f);g=f+i|0;e=(e<<2)+j|0;if((d|0)==(m|0)){break c}while(1){d=d-4|0;f=F[d>>2];F[d>>2]=0;h=h-4|0;F[h>>2]=f;if((d|0)!=(m|0)){continue}break}F[a+16>>2]=e;e=F[a+12>>2];F[a+12>>2]=g;d=F[a+8>>2];F[a+8>>2]=h;if((d|0)==(e|0)){break b}while(1){e=e-4|0;f=F[e>>2];F[e>>2]=0;if(f){xa(f)}if((d|0)!=(e|0)){continue}break}break b}na();v()}oa();v()}F[a+16>>2]=e;F[a+12>>2]=g;F[a+8>>2]=i}if(d){ja(d)}break a}if(e>>>0>=g>>>0){break a}d=d+(e<<2)|0;if((d|0)!=(h|0)){while(1){h=h-4|0;c=F[h>>2];F[h>>2]=0;if(c){xa(c)}if((d|0)!=(h|0)){continue}break}c=F[k+8>>2]}F[a+12>>2]=d}e:{f:{d=F[c+56>>2];g:{if((d|0)>4){break g}j=L(d,12)+a|0;d=F[j+24>>2];if((d|0)!=F[j+28>>2]){F[d>>2]=b;F[j+24>>2]=d+4;break g}i=F[j+20>>2];g=d-i|0;f=g>>2;e=f+1|0;if(e>>>0>=1073741824){break f}d=g>>>1|0;e=g>>>0>=2147483644?1073741823:d>>>0>e>>>0?d:e;if(e){if(e>>>0>=1073741824){break e}d=ka(e<<2)}else{d=0}f=d+(f<<2)|0;F[f>>2]=b;d=pa(d,i,g);F[j+20>>2]=d;F[j+24>>2]=f+4;F[j+28>>2]=d+(e<<2);if(!i){break g}ja(i)}F[c+60>>2]=b;a=F[a+8>>2];F[k+8>>2]=0;a=a+(b<<2)|0;b=F[a>>2];F[a>>2]=c;if(b){xa(b)}a=F[k+8>>2];F[k+8>>2]=0;if(a){xa(a)}Z=k+16|0;return}na();v()}oa();v()}function Pf(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;i=c;d=a;a:{if(F[a+12>>2]==(b|0)){break a}a=b;b=F[d+4>>2];e=F[d>>2];if((b|0)!=(e|0)){while(1){c=b-12|0;if(D[b-1|0]<0){ja(F[c>>2])}b=c;if((e|0)!=(b|0)){continue}break}}F[d+12>>2]=a;F[d+4>>2]=e;c=F[a>>2];j=a+4|0;if((c|0)==(j|0)){break a}while(1){a=F[d+4>>2];b:{if((a|0)!=F[d+8>>2]){c:{if(D[c+27|0]>=0){b=F[c+20>>2];F[a>>2]=F[c+16>>2];F[a+4>>2]=b;F[a+8>>2]=F[c+24>>2];break c}ra(a,F[c+16>>2],F[c+20>>2])}F[d+4>>2]=a+12;break b}g=0;d:{e:{f:{a=F[d+4>>2];e=F[d>>2];f=(a-e|0)/12|0;b=f+1|0;if(b>>>0<357913942){h=(F[d+8>>2]-e|0)/12|0;k=h<<1;b=h>>>0>=178956970?357913941:b>>>0>>0?k:b;if(b){if(b>>>0>=357913942){break f}g=ka(L(b,12))}h=L(b,12);b=L(f,12)+g|0;g:{if(D[c+27|0]>=0){f=F[c+20>>2];F[b>>2]=F[c+16>>2];F[b+4>>2]=f;F[b+8>>2]=F[c+24>>2];break g}ra(b,F[c+16>>2],F[c+20>>2]);e=F[d>>2];a=F[d+4>>2]}g=g+h|0;f=b+12|0;if((a|0)==(e|0)){break e}while(1){a=a-12|0;h=F[a+4>>2];b=b-12|0;F[b>>2]=F[a>>2];F[b+4>>2]=h;F[b+8>>2]=F[a+8>>2];F[a>>2]=0;F[a+4>>2]=0;F[a+8>>2]=0;if((a|0)!=(e|0)){continue}break}F[d+8>>2]=g;a=F[d+4>>2];F[d+4>>2]=f;e=F[d>>2];F[d>>2]=b;if((a|0)==(e|0)){break d}while(1){b=a-12|0;if(D[a-1|0]<0){ja(F[b>>2])}a=b;if((e|0)!=(b|0)){continue}break}break d}na();v()}oa();v()}F[d+8>>2]=g;F[d+4>>2]=f;F[d>>2]=b}if(e){ja(e)}}b=F[c+4>>2];h:{if(b){while(1){a=b;b=F[b>>2];if(b){continue}break h}}while(1){a=F[c+8>>2];b=F[a>>2]!=(c|0);c=a;if(b){continue}break}}c=a;if((j|0)!=(a|0)){continue}break}}a=0;i:{if((i|0)<0){break i}b=F[d>>2];if((F[d+4>>2]-b|0)/12>>>0<=i>>>0){break i}a=b+L(i,12)|0;a=D[a+11|0]<0?F[a>>2]:a}return a|0}function Ad(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;i=Z-16|0;Z=i;F[i>>2]=b;f=-1;a:{if((b|0)==-1){F[i+4>>2]=-1;break a}f=b+1|0;F[i+4>>2]=(f>>>0)%3|0?f:b-2|0;if((b>>>0)%3|0){f=b-1|0;break a}f=b+2|0}F[i+8>>2]=f;n=(b>>>0)/3|0;b:{c:{d:{while(1){e:{f:{j=F[(l<<2)+i>>2];if((j|0)!=-1){f=F[F[F[a+8>>2]+12>>2]+(j<<2)>>2];if((f|0)!=-1){break f}}f=0;g=F[a+216>>2];if((g|0)==F[a+220>>2]){break e}while(1){g=L(f,144)+g|0;d=F[g+136>>2];c=F[g+140>>2];g:{if(d>>>0>>0){F[d>>2]=j;F[g+136>>2]=d+4;break g}e=d;d=F[g+132>>2];k=e-d|0;e=k>>2;h=e+1|0;if(h>>>0>=1073741824){break d}m=e<<2;c=c-d|0;e=c>>>1|0;h=c>>>0>=2147483644?1073741823:h>>>0>>0?e:h;if(h){if(h>>>0>=1073741824){break c}c=ka(h<<2)}else{c=0}e=m+c|0;F[e>>2]=j;c=pa(c,d,k);F[g+132>>2]=c;F[g+136>>2]=e+4;F[g+140>>2]=c+(h<<2);if(!d){break g}ja(d)}f=f+1|0;g=F[a+216>>2];if(f>>>0<(F[a+220>>2]-g|0)/144>>>0){continue}break}break e}if((b|0)==-1|(f>>>0)/3>>>0>>0){break e}f=0;if(F[a+220>>2]==F[a+216>>2]){break e}while(1){h:{if(!wa(F[a+368>>2]+(f<<4)|0)){break h}g=F[a+216>>2]+L(f,144)|0;d=F[g+136>>2];c=F[g+140>>2];if(d>>>0>>0){F[d>>2]=j;F[g+136>>2]=d+4;break h}e=d;d=F[g+132>>2];k=e-d|0;e=k>>2;h=e+1|0;if(h>>>0>=1073741824){break b}m=e<<2;c=c-d|0;e=c>>>1|0;h=c>>>0>=2147483644?1073741823:h>>>0>>0?e:h;if(h){if(h>>>0>=1073741824){break c}c=ka(h<<2)}else{c=0}e=m+c|0;F[e>>2]=j;c=pa(c,d,k);F[g+132>>2]=c;F[g+136>>2]=e+4;F[g+140>>2]=c+(h<<2);if(!d){break h}ja(d)}f=f+1|0;if(f>>>0<(F[a+220>>2]-F[a+216>>2]|0)/144>>>0){continue}break}}l=l+1|0;if((l|0)!=3){continue}break}Z=i+16|0;return 1}na();v()}oa();v()}na();v()}function Bd(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;h=Z-16|0;Z=h;m=-1;a:{b:{c:{if(!Da(1,h+12|0,b)){break c}j=F[h+12>>2];if(j){c=F[a+8>>2];if((F[c+4>>2]-F[c>>2]>>2>>>0)/3>>>0>>0){break c}while(1){if(!Da(1,h+8|0,b)){break c}c=F[h+8>>2];if(!Da(1,h+8|0,b)){break c}g=c+g|0;c=F[h+8>>2];if(g>>>0>>0){break c}e=g-c|0;c=F[a+40>>2];d:{if((c|0)!=F[a+44>>2]){F[c+4>>2]=g;F[c>>2]=e;F[a+40>>2]=c+12;j=F[h+12>>2];break d}d=c;c=F[a+36>>2];l=d-c|0;d=(l|0)/12|0;f=d+1|0;if(f>>>0>=357913942){break b}i=d<<1;f=d>>>0>=178956970?357913941:f>>>0>>0?i:f;if(f){if(f>>>0>=357913942){break a}i=ka(L(f,12))}else{i=0}d=i+L(d,12)|0;F[d+4>>2]=g;F[d>>2]=e;e=pa(d+L((l|0)/-12|0,12)|0,c,l);F[a+44>>2]=i+L(f,12);F[a+40>>2]=d+12;F[a+36>>2]=e;if(!c){break d}ja(c)}k=k+1|0;if(k>>>0>>0){continue}break}g=0;hc(b,0,0);if(j){while(1){c=G[b+36|0];d=H[F[a+4>>2]+36>>1];e:{f:{if(((d<<8|d>>>8)&65535)>>>0<=513){if(!c){break e}e=0;d=F[b+32>>2];k=d>>>3|0;f=F[b+24>>2];c=k+f|0;i=F[b+28>>2];g:{if(c>>>0>=i>>>0){c=d;break g}e=G[c|0];c=d+1|0;F[b+32>>2]=c;k=c>>>3|0;e=e>>>(d&7)&1}if(i>>>0>f+k>>>0){break f}break e}if(!c){break e}e=0;c=F[b+32>>2];d=F[b+24>>2]+(c>>>3|0)|0;if(d>>>0>=I[b+28>>2]){break e}e=G[d|0]>>>(c&7)&1}F[b+32>>2]=c+1}c=F[a+36>>2]+L(g,12)|0;D[c+8|0]=G[c+8|0]&254|e&1;g=g+1|0;if((j|0)!=(g|0)){continue}break}}D[b+36|0]=0;d=F[b+20>>2];a=0;e=F[b+32>>2]+7|0;a=e>>>0<7?1:a;e=a<<29|e>>>3;c=e+F[b+16>>2]|0;a=(a>>>3|0)+d|0;F[b+16>>2]=c;F[b+20>>2]=c>>>0>>0?a+1|0:a}m=F[b+16>>2]}Z=h+16|0;return m}na();v()}oa();v()}function xf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;m=Z-16|0;Z=m;l=F[b+80>>2];e=G[c+24|0];a=L(l,e);a:{b:{c:{d:{b=F[c+28>>2];if(!(!G[c+84|0]|(b|0)!=1&(b|0)!=2)){b=F[c+48>>2];c=F[F[c>>2]>>2];F[m+8>>2]=0;F[m>>2]=0;F[m+4>>2]=0;if(a){if((a|0)<0){break d}f=ka(a);h=la(f,b+c|0,a)+a|0}a=F[d>>2];if(a){F[d+4>>2]=a;ja(a)}F[d+8>>2]=h;F[d+4>>2]=h;F[d>>2]=f;b=1;break a}if(e){f=ka(e);ma(f,0,e)}e:{i=F[d+4>>2];b=F[d>>2];g=i-b|0;f:{if(g>>>0>>0){k=a-g|0;j=F[d+8>>2];if(k>>>0<=j-i>>>0){n=d,o=ma(i,0,k)+k|0,F[n+4>>2]=o;break f}if((a|0)<0){break e}i=j-b|0;j=i<<1;i=i>>>0>=1073741823?2147483647:a>>>0>>0?j:a;j=ka(i);ma(j+g|0,0,k);g=pa(j,b,g);F[d+8>>2]=g+i;F[d+4>>2]=a+g;F[d>>2]=g;if(!b){break f}ja(b);break f}if(a>>>0>=g>>>0){break f}F[d+4>>2]=a+b}if(!l){b=1;break c}if(!e){b=0;a=0;while(1){if(!Cb(c,G[c+84|0]?a:F[F[c+68>>2]+(a<<2)>>2],D[c+24|0],f)){break c}a=a+1|0;b=l>>>0<=a>>>0;if((a|0)!=(l|0)){continue}break}break c}i=e&252;g=e&3;b=0;j=e>>>0<4;e=0;while(1){if(!Cb(c,G[c+84|0]?e:F[F[c+68>>2]+(e<<2)>>2],D[c+24|0],f)){break c}b=0;a=0;k=0;if(!j){while(1){D[F[d>>2]+h|0]=G[a+f|0];D[(F[d>>2]+h|0)+1|0]=G[(a|1)+f|0];D[(F[d>>2]+h|0)+2|0]=G[(a|2)+f|0];D[(F[d>>2]+h|0)+3|0]=G[(a|3)+f|0];a=a+4|0;h=h+4|0;k=k+4|0;if((i|0)!=(k|0)){continue}break}}if(g){while(1){D[F[d>>2]+h|0]=G[a+f|0];a=a+1|0;h=h+1|0;b=b+1|0;if((g|0)!=(b|0)){continue}break}}e=e+1|0;b=l>>>0<=e>>>0;if((e|0)!=(l|0)){continue}break}break b}na();v()}na();v()}if(!f){break a}}ja(f)}Z=m+16|0;return b&1}function wf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;m=Z-16|0;Z=m;l=F[b+80>>2];e=G[c+24|0];a=L(l,e);a:{b:{c:{d:{b=F[c+28>>2];if(!(!G[c+84|0]|(b|0)!=1&(b|0)!=2)){b=F[c+48>>2];c=F[F[c>>2]>>2];F[m+8>>2]=0;F[m>>2]=0;F[m+4>>2]=0;if(a){if((a|0)<0){break d}f=ka(a);h=la(f,b+c|0,a)+a|0}a=F[d>>2];if(a){F[d+4>>2]=a;ja(a)}F[d+8>>2]=h;F[d+4>>2]=h;F[d>>2]=f;b=1;break a}if(e){f=ka(e);ma(f,0,e)}e:{i=F[d+4>>2];b=F[d>>2];g=i-b|0;f:{if(g>>>0>>0){k=a-g|0;j=F[d+8>>2];if(k>>>0<=j-i>>>0){n=d,o=ma(i,0,k)+k|0,F[n+4>>2]=o;break f}if((a|0)<0){break e}i=j-b|0;j=i<<1;i=i>>>0>=1073741823?2147483647:a>>>0>>0?j:a;j=ka(i);ma(j+g|0,0,k);g=pa(j,b,g);F[d+8>>2]=g+i;F[d+4>>2]=a+g;F[d>>2]=g;if(!b){break f}ja(b);break f}if(a>>>0>=g>>>0){break f}F[d+4>>2]=a+b}if(!l){b=1;break c}if(!e){b=0;a=0;while(1){if(!Bb(c,G[c+84|0]?a:F[F[c+68>>2]+(a<<2)>>2],D[c+24|0],f)){break c}a=a+1|0;b=l>>>0<=a>>>0;if((a|0)!=(l|0)){continue}break}break c}i=e&252;g=e&3;b=0;j=e>>>0<4;e=0;while(1){if(!Bb(c,G[c+84|0]?e:F[F[c+68>>2]+(e<<2)>>2],D[c+24|0],f)){break c}b=0;a=0;k=0;if(!j){while(1){D[F[d>>2]+h|0]=G[a+f|0];D[(F[d>>2]+h|0)+1|0]=G[(a|1)+f|0];D[(F[d>>2]+h|0)+2|0]=G[(a|2)+f|0];D[(F[d>>2]+h|0)+3|0]=G[(a|3)+f|0];a=a+4|0;h=h+4|0;k=k+4|0;if((i|0)!=(k|0)){continue}break}}if(g){while(1){D[F[d>>2]+h|0]=G[a+f|0];a=a+1|0;h=h+1|0;b=b+1|0;if((g|0)!=(b|0)){continue}break}}e=e+1|0;b=l>>>0<=e>>>0;if((e|0)!=(l|0)){continue}break}break b}na();v()}na();v()}if(!f){break a}}ja(f)}Z=m+16|0;return b&1}function Jb(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;k=F[b+16>>2];h=F[c+4>>2]-k|0;e=F[c>>2]-k|0;F[c>>2]=e;f=h;F[c+4>>2]=f;l=F[b+16>>2];f=f>>31;g=(h^f)-f|0;f=e>>31;m=l>>>0>=g+((f^e)-f|0)>>>0;a:{if(m){f=h;break a}b:{c:{if((e|0)>=0){g=1;j=1;if((h|0)>=0){break b}i=1;g=-1;j=-1;if(e){break c}break b}i=-1;g=-1;j=-1;if((h|0)<=0){break b}}g=(h|0)<=0?-1:1;j=i}n=L(j,l);f=(e<<1)-n|0;i=(L(g,j)|0)>=0;e=L(g,l);f=((i?0-f|0:f)+e|0)/2|0;F[c+4>>2]=f;e=(h<<1)-e|0;e=((i?0-e|0:e)+n|0)/2|0;F[c>>2]=e}d:{e:{f:{g:{h:{i:{j:{if(e){if((e|0)<0){break j}if((f|0)>=0){break i}break f}if(f){break h}j=1;g=0;f=0;i=0;break d}j=1;if((f|0)>0){break g}i=(f|0)>0?3:0;g=f;f=e;break d}g=0-f|0;f=0-e|0;i=2;break e}if((f|0)<=0){break f}}f=0-f|0;g=e;i=3;break e}g=0-e|0;i=1}F[c>>2]=f;F[c+4>>2]=g;j=0}e=F[d>>2]+f|0;h=F[b+16>>2];k:{if((e|0)>(h|0)){e=e-F[b+4>>2]|0;break k}if((0-h|0)<=(e|0)){break k}e=F[b+4>>2]+e|0}c=F[d+4>>2]+g|0;l:{if((h|0)<(c|0)){c=c-F[b+4>>2]|0;break l}if((0-h|0)<=(c|0)){break l}c=F[b+4>>2]+c|0}m:{if(j){b=c;break m}b=c;n:{o:{p:{d=4-i|0;switch((d>>>0<4?d:0-i|0)-1|0){case 2:break n;case 1:break o;case 0:break p;default:break m}}b=0-e|0;e=c;break m}b=0-c|0;e=0-e|0;break m}b=e;e=0-c|0}q:{if(m){c=b;break q}r:{s:{if((e|0)>=0){c=1;f=1;if((b|0)>=0){break r}d=1;c=-1;f=-1;if(e){break s}break r}d=-1;c=-1;f=-1;if((b|0)<=0){break r}}c=(b|0)<=0?-1:1;f=d}d=e<<1;e=L(f,h);d=d-e|0;f=(L(c,f)|0)>=0;g=f?0-d|0:d;d=L(c,h);c=(g+d|0)/2|0;b=(b<<1)-d|0;e=(e+(f?0-b|0:b)|0)/2|0}b=a;F[b>>2]=e+k;F[b+4>>2]=c+k}function Uh(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;F[a+8>>2]=e;m=a+32|0;h=F[m>>2];g=F[a+36>>2]-h>>2;a:{if(g>>>0>>0){qa(m,e-g|0);f=F[a+8>>2];break a}f=e;if(f>>>0>=g>>>0){break a}F[a+36>>2]=h+(e<<2);f=e}g=e>>>0>1073741823?-1:e<<2;n=ma(ka(g),0,g);b:{if((f|0)<=0){break b}h=F[a+32>>2];while(1){f=i<<2;g=F[f+n>>2];j=F[a+16>>2];c:{if((g|0)>(j|0)){F[f+h>>2]=j;break c}f=f+h|0;j=F[a+12>>2];if((j|0)>(g|0)){F[f>>2]=j;break c}F[f>>2]=g}f=F[a+8>>2];i=i+1|0;if((f|0)>(i|0)){continue}break}if((f|0)<=0){break b}i=0;while(1){g=i<<2;f=g+c|0;g=F[b+g>>2]+F[g+h>>2]|0;F[f>>2]=g;d:{if((g|0)>F[a+16>>2]){g=g-F[a+20>>2]|0}else{if((g|0)>=F[a+12>>2]){break d}g=g+F[a+20>>2]|0}F[f>>2]=g}f=F[a+8>>2];i=i+1|0;if((f|0)>(i|0)){continue}break}}if(!((d|0)<=(e|0)|(f|0)<=0)){p=0-e<<2;g=e;while(1){e:{if((f|0)<=0){break e}l=g<<2;o=l+c|0;q=o+p|0;j=F[m>>2];i=0;while(1){f=i<<2;h=F[f+q>>2];k=F[a+16>>2];f:{if((h|0)>(k|0)){F[f+j>>2]=k;break f}f=f+j|0;k=F[a+12>>2];if((k|0)>(h|0)){F[f>>2]=k;break f}F[f>>2]=h}f=F[a+8>>2];i=i+1|0;if((f|0)>(i|0)){continue}break}i=0;if((f|0)<=0){break e}l=b+l|0;while(1){h=i<<2;f=h+o|0;h=F[h+l>>2]+F[h+j>>2]|0;F[f>>2]=h;g:{if((h|0)>F[a+16>>2]){h=h-F[a+20>>2]|0}else{if((h|0)>=F[a+12>>2]){break g}h=h+F[a+20>>2]|0}F[f>>2]=h}f=F[a+8>>2];i=i+1|0;if((f|0)>(i|0)){continue}break}}g=e+g|0;if((g|0)<(d|0)){continue}break}}ja(n);return 1}function yf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;j=F[b+80>>2];b=G[c+24|0];g=L(j,b);a:{if(!b){break a}h=b<<2;f=ka(h);a=f;k=b&7;if(k){while(1){F[a>>2]=-1073741824;a=a+4|0;e=e+1|0;if((k|0)!=(e|0)){continue}break}}if((b-1&1073741823)>>>0<7){break a}e=f+h|0;while(1){F[a+24>>2]=-1073741824;F[a+28>>2]=-1073741824;F[a+16>>2]=-1073741824;F[a+20>>2]=-1073741824;F[a+8>>2]=-1073741824;F[a+12>>2]=-1073741824;F[a>>2]=-1073741824;F[a+4>>2]=-1073741824;a=a+32|0;if((e|0)!=(a|0)){continue}break}}e=F[d>>2];a=F[d+4>>2]-e>>2;b:{if(a>>>0>>0){qa(d,g-a|0);break b}if(a>>>0<=g>>>0){break b}F[d+4>>2]=e+(g<<2)}c:{d:{e:{if(!j){i=1;break e}if(!b){a=0;while(1){if(!lb(c,G[c+84|0]?a:F[F[c+68>>2]+(a<<2)>>2],D[c+24|0],f)){break e}a=a+1|0;i=j>>>0<=a>>>0;if((a|0)!=(j|0)){continue}break}break e}n=b&252;k=b&3;o=b>>>0<4;e=0;b=0;while(1){if(!lb(c,G[c+84|0]?b:F[F[c+68>>2]+(b<<2)>>2],D[c+24|0],f)){break e}m=F[d>>2];i=0;a=0;l=0;if(!o){while(1){g=(e<<2)+m|0;h=a<<2;J[g>>2]=J[h+f>>2];J[g+4>>2]=J[(h|4)+f>>2];J[g+8>>2]=J[(h|8)+f>>2];J[g+12>>2]=J[(h|12)+f>>2];a=a+4|0;e=e+4|0;l=l+4|0;if((n|0)!=(l|0)){continue}break}}if(k){while(1){J[(e<<2)+m>>2]=J[(a<<2)+f>>2];a=a+1|0;e=e+1|0;i=i+1|0;if((k|0)!=(i|0)){continue}break}}b=b+1|0;i=j>>>0<=b>>>0;if((b|0)!=(j|0)){continue}break}break d}if(!f){break c}}ja(f)}return i|0}function $d(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;k=Z-16|0;Z=k;c=F[b+20>>2];d=F[b+16>>2];e=d+4|0;c=e>>>0<4?c+1|0:c;g=F[b+12>>2];a:{if(I[b+8>>2]>>0&(g|0)<=(c|0)|(c|0)>(g|0)){break a}d=d+F[b>>2]|0;h=G[d|0]|G[d+1|0]<<8|(G[d+2|0]<<16|G[d+3|0]<<24);F[b+16>>2]=e;F[b+20>>2]=c;if((h|0)<0){break a}Na(a+76|0,h);c=k;F[c>>2]=0;F[c+4>>2]=0;D[c+5|0]=0;D[c+6|0]=0;D[c+7|0]=0;D[c+8|0]=0;D[c+9|0]=0;D[c+10|0]=0;D[c+11|0]=0;D[c+12|0]=0;b:{if(!Aa(c,b)){break b}if(h){g=1;while(1){d=1<>2]+(i>>>3&536870908)|0;e=e^g;if(e&1){d=F[f>>2]&(d^-1)}else{d=d|F[f>>2]}g=e^1;F[f>>2]=d;i=i+1|0;if((h|0)!=(i|0)){continue}break}}i=0;c=F[b+8>>2];e=F[b+12>>2];f=e;e=F[b+20>>2];g=e;l=F[b+16>>2];d=l+4|0;e=d>>>0<4?e+1|0:e;h=d;if(d>>>0>c>>>0&(e|0)>=(f|0)|(e|0)>(f|0)){break b}m=F[b>>2];d=m+l|0;j=G[d|0]|G[d+1|0]<<8|(G[d+2|0]<<16|G[d+3|0]<<24);F[b+16>>2]=h;F[b+20>>2]=e;d=c;c=g;e=l+8|0;c=e>>>0<8?c+1|0:c;if(d>>>0>>0&(c|0)>=(f|0)|(c|0)>(f|0)){break b}d=h+m|0;d=G[d|0]|G[d+1|0]<<8|(G[d+2|0]<<16|G[d+3|0]<<24);F[b+16>>2]=e;F[b+20>>2]=c;if((d|0)<(j|0)){break b}F[a+16>>2]=d;F[a+12>>2]=j;c=(d>>31)-((j>>31)+(d>>>0>>0)|0)|0;b=d-j|0;if(!c&b>>>0>2147483646|c){break b}i=1;c=b+1|0;F[a+20>>2]=c;b=c>>>1|0;F[a+24>>2]=b;F[a+28>>2]=0-b;if(c&1){break b}F[a+24>>2]=b-1}}Z=k+16|0;return i|0}function tf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;a=0;k=Z-16|0;Z=k;j=F[b+80>>2];e=G[c+24|0];b=L(j,e);a:{b:{c:{d:{f=F[c+28>>2];if(!(!G[c+84|0]|(f|0)!=5&(f|0)!=6)){e=F[c+48>>2];c=F[F[c>>2]>>2];F[k+8>>2]=0;F[k>>2]=0;F[k+4>>2]=0;if(b){if((b|0)<0){break d}b=b<<2;a=ka(b);g=la(a,c+e|0,b)+b|0}b=F[d>>2];if(b){F[d+4>>2]=b;ja(b)}F[d+8>>2]=g;F[d+4>>2]=g;F[d>>2]=a;h=1;break a}if(e){f=e<<2;a=ka(f);ma(a,0,f)}i=F[d>>2];f=F[d+4>>2]-i>>2;e:{if(f>>>0>>0){qa(d,b-f|0);break e}if(b>>>0>=f>>>0){break e}F[d+4>>2]=i+(b<<2)}if(!j){h=1;break c}if(!e){b=0;while(1){if(!xb(c,G[c+84|0]?b:F[F[c+68>>2]+(b<<2)>>2],D[c+24|0],a)){break c}b=b+1|0;h=j>>>0<=b>>>0;if((b|0)!=(j|0)){continue}break}break c}o=e&252;m=e&3;p=e>>>0<4;e=0;while(1){if(!xb(c,G[c+84|0]?e:F[F[c+68>>2]+(e<<2)>>2],D[c+24|0],a)){break c}n=F[d>>2];l=0;b=0;h=0;if(!p){while(1){f=(g<<2)+n|0;i=b<<2;F[f>>2]=F[i+a>>2];F[f+4>>2]=F[(i|4)+a>>2];F[f+8>>2]=F[(i|8)+a>>2];F[f+12>>2]=F[(i|12)+a>>2];b=b+4|0;g=g+4|0;h=h+4|0;if((o|0)!=(h|0)){continue}break}}if(m){while(1){F[(g<<2)+n>>2]=F[(b<<2)+a>>2];b=b+1|0;g=g+1|0;l=l+1|0;if((l|0)!=(m|0)){continue}break}}e=e+1|0;h=j>>>0<=e>>>0;if((e|0)!=(j|0)){continue}break}break b}na();v()}if(!a){break a}}ja(a)}Z=k+16|0;return h|0}function cd(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;a=0;k=Z-16|0;Z=k;j=F[b+80>>2];e=G[c+24|0];b=L(j,e);a:{b:{c:{d:{f=F[c+28>>2];if(!(!G[c+84|0]|(f|0)!=5&(f|0)!=6)){e=F[c+48>>2];c=F[F[c>>2]>>2];F[k+8>>2]=0;F[k>>2]=0;F[k+4>>2]=0;if(b){if((b|0)<0){break d}b=b<<2;a=ka(b);g=la(a,c+e|0,b)+b|0}b=F[d>>2];if(b){F[d+4>>2]=b;ja(b)}F[d+8>>2]=g;F[d+4>>2]=g;F[d>>2]=a;h=1;break a}if(e){f=e<<2;a=ka(f);ma(a,0,f)}i=F[d>>2];f=F[d+4>>2]-i>>2;e:{if(f>>>0>>0){qa(d,b-f|0);break e}if(b>>>0>=f>>>0){break e}F[d+4>>2]=i+(b<<2)}if(!j){h=1;break c}if(!e){b=0;while(1){if(!yb(c,G[c+84|0]?b:F[F[c+68>>2]+(b<<2)>>2],D[c+24|0],a)){break c}b=b+1|0;h=j>>>0<=b>>>0;if((b|0)!=(j|0)){continue}break}break c}o=e&252;m=e&3;p=e>>>0<4;e=0;while(1){if(!yb(c,G[c+84|0]?e:F[F[c+68>>2]+(e<<2)>>2],D[c+24|0],a)){break c}n=F[d>>2];l=0;b=0;h=0;if(!p){while(1){f=(g<<2)+n|0;i=b<<2;F[f>>2]=F[i+a>>2];F[f+4>>2]=F[(i|4)+a>>2];F[f+8>>2]=F[(i|8)+a>>2];F[f+12>>2]=F[(i|12)+a>>2];b=b+4|0;g=g+4|0;h=h+4|0;if((o|0)!=(h|0)){continue}break}}if(m){while(1){F[(g<<2)+n>>2]=F[(b<<2)+a>>2];b=b+1|0;g=g+1|0;l=l+1|0;if((l|0)!=(m|0)){continue}break}}e=e+1|0;h=j>>>0<=e>>>0;if((e|0)!=(j|0)){continue}break}break b}na();v()}if(!a){break a}}ja(a)}Z=k+16|0;return h|0}function vf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;a=0;k=Z-16|0;Z=k;j=F[b+80>>2];e=G[c+24|0];b=L(j,e);a:{b:{c:{d:{f=F[c+28>>2];if(!(!G[c+84|0]|(f|0)!=3&(f|0)!=4)){e=F[c+48>>2];c=F[F[c>>2]>>2];F[k+8>>2]=0;F[k>>2]=0;F[k+4>>2]=0;if(b){if((b|0)<0){break d}b=b<<1;a=ka(b);g=la(a,c+e|0,b)+b|0}b=F[d>>2];if(b){F[d+4>>2]=b;ja(b)}F[d+8>>2]=g;F[d+4>>2]=g;F[d>>2]=a;h=1;break a}if(e){f=e<<1;a=ka(f);ma(a,0,f)}i=F[d>>2];f=F[d+4>>2]-i>>1;e:{if(f>>>0>>0){kd(d,b-f|0);break e}if(b>>>0>=f>>>0){break e}F[d+4>>2]=i+(b<<1)}if(!j){h=1;break c}if(!e){b=0;while(1){if(!Ab(c,G[c+84|0]?b:F[F[c+68>>2]+(b<<2)>>2],D[c+24|0],a)){break c}b=b+1|0;h=j>>>0<=b>>>0;if((b|0)!=(j|0)){continue}break}break c}o=e&252;m=e&3;p=e>>>0<4;e=0;while(1){if(!Ab(c,G[c+84|0]?e:F[F[c+68>>2]+(e<<2)>>2],D[c+24|0],a)){break c}n=F[d>>2];l=0;b=0;h=0;if(!p){while(1){f=(g<<1)+n|0;i=b<<1;E[f>>1]=H[i+a>>1];E[f+2>>1]=H[(i|2)+a>>1];E[f+4>>1]=H[(i|4)+a>>1];E[f+6>>1]=H[(i|6)+a>>1];b=b+4|0;g=g+4|0;h=h+4|0;if((o|0)!=(h|0)){continue}break}}if(m){while(1){E[(g<<1)+n>>1]=H[(b<<1)+a>>1];b=b+1|0;g=g+1|0;l=l+1|0;if((l|0)!=(m|0)){continue}break}}e=e+1|0;h=j>>>0<=e>>>0;if((e|0)!=(j|0)){continue}break}break b}na();v()}if(!a){break a}}ja(a)}Z=k+16|0;return h|0}function uf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;a=0;k=Z-16|0;Z=k;j=F[b+80>>2];e=G[c+24|0];b=L(j,e);a:{b:{c:{d:{f=F[c+28>>2];if(!(!G[c+84|0]|(f|0)!=3&(f|0)!=4)){e=F[c+48>>2];c=F[F[c>>2]>>2];F[k+8>>2]=0;F[k>>2]=0;F[k+4>>2]=0;if(b){if((b|0)<0){break d}b=b<<1;a=ka(b);g=la(a,c+e|0,b)+b|0}b=F[d>>2];if(b){F[d+4>>2]=b;ja(b)}F[d+8>>2]=g;F[d+4>>2]=g;F[d>>2]=a;h=1;break a}if(e){f=e<<1;a=ka(f);ma(a,0,f)}i=F[d>>2];f=F[d+4>>2]-i>>1;e:{if(f>>>0>>0){kd(d,b-f|0);break e}if(b>>>0>=f>>>0){break e}F[d+4>>2]=i+(b<<1)}if(!j){h=1;break c}if(!e){b=0;while(1){if(!zb(c,G[c+84|0]?b:F[F[c+68>>2]+(b<<2)>>2],D[c+24|0],a)){break c}b=b+1|0;h=j>>>0<=b>>>0;if((b|0)!=(j|0)){continue}break}break c}o=e&252;m=e&3;p=e>>>0<4;e=0;while(1){if(!zb(c,G[c+84|0]?e:F[F[c+68>>2]+(e<<2)>>2],D[c+24|0],a)){break c}n=F[d>>2];l=0;b=0;h=0;if(!p){while(1){f=(g<<1)+n|0;i=b<<1;E[f>>1]=H[i+a>>1];E[f+2>>1]=H[(i|2)+a>>1];E[f+4>>1]=H[(i|4)+a>>1];E[f+6>>1]=H[(i|6)+a>>1];b=b+4|0;g=g+4|0;h=h+4|0;if((o|0)!=(h|0)){continue}break}}if(m){while(1){E[(g<<1)+n>>1]=H[(b<<1)+a>>1];b=b+1|0;g=g+1|0;l=l+1|0;if((l|0)!=(m|0)){continue}break}}e=e+1|0;h=j>>>0<=e>>>0;if((e|0)!=(j|0)){continue}break}break b}na();v()}if(!a){break a}}ja(a)}Z=k+16|0;return h|0}function kc(a,b){var c=0,d=0,e=0,f=0,g=0;f=-1;d=-1;a:{if((b|0)==-1){break a}d=b+1|0;f=(d>>>0)%3|0?d:b-2|0;d=b-1|0;if((b>>>0)%3|0){break a}d=b+2|0}b:{c:{d:{switch(F[a+168>>2]){case 0:case 1:e=F[a+148>>2];c=1;b=F[a+156>>2];g=b+(((f|0)==-1?-1:F[F[e>>2]+(f<<2)>>2])<<2)|0;F[g>>2]=F[g>>2]+1;b=(((d|0)==-1?-1:F[F[e>>2]+(d<<2)>>2])<<2)+b|0;break c;case 5:e=F[a+148>>2];c=-1;c=((b|0)!=-1?F[F[e>>2]+(b<<2)>>2]:c)<<2;b=F[a+156>>2];c=c+b|0;F[c>>2]=F[c>>2]+1;c=(((f|0)==-1?-1:F[F[e>>2]+(f<<2)>>2])<<2)+b|0;F[c>>2]=F[c>>2]+1;c=2;b=(((d|0)==-1?-1:F[F[e>>2]+(d<<2)>>2])<<2)+b|0;break c;case 3:e=F[a+148>>2];c=-1;c=((b|0)!=-1?F[F[e>>2]+(b<<2)>>2]:c)<<2;b=F[a+156>>2];c=c+b|0;F[c>>2]=F[c>>2]+1;c=(((f|0)==-1?-1:F[F[e>>2]+(f<<2)>>2])<<2)+b|0;F[c>>2]=F[c>>2]+2;c=1;b=(((d|0)==-1?-1:F[F[e>>2]+(d<<2)>>2])<<2)+b|0;break c;case 7:break d;default:break b}}e=F[a+148>>2];c=-1;c=((b|0)!=-1?F[F[e>>2]+(b<<2)>>2]:c)<<2;b=F[a+156>>2];c=c+b|0;F[c>>2]=F[c>>2]+2;c=(((f|0)==-1?-1:F[F[e>>2]+(f<<2)>>2])<<2)+b|0;F[c>>2]=F[c>>2]+2;c=2;b=(((d|0)==-1?-1:F[F[e>>2]+(d<<2)>>2])<<2)+b|0}F[b>>2]=F[b>>2]+c}c=a;b=F[F[a+156>>2]+(((f|0)==-1?-1:F[F[F[a+148>>2]>>2]+(f<<2)>>2])<<2)>>2];d=F[a+180>>2];a=F[a+176>>2];F[c+172>>2]=(a|0)<=(b|0)?((b|0)<(d|0)?b:d)-a|0:0}function Dg(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;a:{b=F[a+32>>2];f=F[b+8>>2];h=F[b+12>>2];g=F[b+20>>2];c=F[b+16>>2];e=0;b:{if((h|0)<=(g|0)&c>>>0>=f>>>0|(g|0)>(h|0)){break b}f=G[F[b>>2]+c|0];e=b;b=g;c=c+1|0;b=c?b:b+1|0;F[e+16>>2]=c;F[e+20>>2]=b;c:{if(!f){break c}while(1){if($[F[F[a>>2]+16>>2]](a,d)|0){d=d+1|0;if((f|0)!=(d|0)){continue}break c}break}return 0}d=F[a+8>>2];b=F[a+12>>2];if((d|0)!=(b|0)){while(1){c=F[d>>2];if(!($[F[F[c>>2]+8>>2]](c,a,F[a+4>>2])|0)){break a}d=d+4|0;if((b|0)!=(d|0)){continue}break}}d:{if(!f){break d}d=0;while(1){b=F[F[a+8>>2]+(d<<2)>>2];if(!($[F[F[b>>2]+12>>2]](b,F[a+32>>2])|0)){break a}d=d+1|0;if((f|0)!=(d|0)){continue}break}if(!f){break d}i=a+20|0;b=0;while(1){d=0;j=b<<2;c=F[j+F[a+8>>2]>>2];k=$[F[F[c>>2]+24>>2]](c)|0;if((k|0)>0){while(1){c=F[F[a+8>>2]+j>>2];c=$[F[F[c>>2]+20>>2]](c,d)|0;e=F[a+20>>2];g=F[a+24>>2]-e>>2;e:{if(c>>>0>>0){break e}h=c+1|0;if(h>>>0>g>>>0){qa(i,h-g|0);e=F[i>>2];break e}if(g>>>0<=h>>>0){break e}F[a+24>>2]=(h<<2)+e}F[(c<<2)+e>>2]=b;d=d+1|0;if((k|0)!=(d|0)){continue}break}}b=b+1|0;if((f|0)!=(b|0)){continue}break}}e=0;if(!($[F[F[a>>2]+28>>2]](a)|0)){break b}e=$[F[F[a>>2]+32>>2]](a)|0}return e|0}return 0}function Ye(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;Oc(a,b,c);c=F[a+84>>2];d=F[a+88>>2]-c>>2;a:{if((d|0)>(b|0)){break a}b=b+1|0;if(b>>>0>d>>>0){b:{d=b-d|0;e=F[a+92>>2];c=F[a+88>>2];if(d>>>0<=e-c>>2>>>0){c:{if(!d){break c}b=c;e=d&7;if(e){while(1){F[b>>2]=1;b=b+4|0;f=f+1|0;if((e|0)!=(f|0)){continue}break}}c=(d<<2)+c|0;if((d-1&1073741823)>>>0<7){break c}while(1){F[b+24>>2]=1;F[b+28>>2]=1;F[b+16>>2]=1;F[b+20>>2]=1;F[b+8>>2]=1;F[b+12>>2]=1;F[b>>2]=1;F[b+4>>2]=1;b=b+32|0;if((c|0)!=(b|0)){continue}break}}F[a+88>>2]=c;break b}d:{b=c;c=F[a+84>>2];i=b-c|0;g=i>>2;b=g+d|0;if(b>>>0<1073741824){e=e-c|0;h=e>>>1|0;e=e>>>0>=2147483644?1073741823:b>>>0>>0?h:b;if(e){if(e>>>0>=1073741824){break d}j=ka(e<<2)}g=(g<<2)+j|0;b=g;h=d&7;if(h){while(1){F[b>>2]=1;b=b+4|0;f=f+1|0;if((h|0)!=(f|0)){continue}break}}f=g+(d<<2)|0;if((d-1&1073741823)>>>0>=7){while(1){F[b+24>>2]=1;F[b+28>>2]=1;F[b+16>>2]=1;F[b+20>>2]=1;F[b+8>>2]=1;F[b+12>>2]=1;F[b>>2]=1;F[b+4>>2]=1;b=b+32|0;if((f|0)!=(b|0)){continue}break}}b=pa(j,c,i);F[a+88>>2]=f;F[a+84>>2]=b;F[a+92>>2]=b+(e<<2);if(c){ja(c)}break b}na();v()}oa();v()}return}if(b>>>0>=d>>>0){break a}F[a+88>>2]=c+(b<<2)}}function ab(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;d=F[a+8>>2];e=F[a+4>>2];if(d-e>>2>>>0>=b>>>0){a:{if(!b){break a}d=e;g=b&7;if(g){while(1){F[d>>2]=F[c>>2];d=d+4|0;f=f+1|0;if((g|0)!=(f|0)){continue}break}}e=(b<<2)+e|0;if((b-1&1073741823)>>>0<7){break a}while(1){F[d>>2]=F[c>>2];F[d+4>>2]=F[c>>2];F[d+8>>2]=F[c>>2];F[d+12>>2]=F[c>>2];F[d+16>>2]=F[c>>2];F[d+20>>2]=F[c>>2];F[d+24>>2]=F[c>>2];F[d+28>>2]=F[c>>2];d=d+32|0;if((e|0)!=(d|0)){continue}break}}F[a+4>>2]=e;return}b:{i=F[a>>2];f=e-i>>2;h=f+b|0;if(h>>>0<1073741824){j=d-i|0;d=j>>>1|0;h=j>>>0>=2147483644?1073741823:d>>>0>h>>>0?d:h;if(h){if(h>>>0>=1073741824){break b}k=ka(h<<2)}f=(f<<2)+k|0;d=f;j=b&7;if(j){while(1){F[d>>2]=F[c>>2];d=d+4|0;g=g+1|0;if((j|0)!=(g|0)){continue}break}}g=(b<<2)+f|0;if((b-1&1073741823)>>>0>=7){while(1){F[d>>2]=F[c>>2];F[d+4>>2]=F[c>>2];F[d+8>>2]=F[c>>2];F[d+12>>2]=F[c>>2];F[d+16>>2]=F[c>>2];F[d+20>>2]=F[c>>2];F[d+24>>2]=F[c>>2];F[d+28>>2]=F[c>>2];d=d+32|0;if((g|0)!=(d|0)){continue}break}}if((e|0)!=(i|0)){while(1){f=f-4|0;e=e-4|0;F[f>>2]=F[e>>2];if((e|0)!=(i|0)){continue}break}}F[a+8>>2]=(h<<2)+k;F[a+4>>2]=g;F[a>>2]=f;if(i){ja(i)}return}na();v()}oa();v()}function Xb(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;d=F[a+8>>2];e=F[a>>2];if(d-e>>2>>>0>=b>>>0){f=F[a+4>>2];h=f-e>>2;i=b>>>0>h>>>0?h:b;a:{if(!i){break a}d=e;g=i;j=g&7;if(j){while(1){F[d>>2]=F[c>>2];g=g-1|0;d=d+4|0;k=k+1|0;if((k|0)!=(j|0)){continue}break}}if(i>>>0<8){break a}while(1){F[d>>2]=F[c>>2];F[d+4>>2]=F[c>>2];F[d+8>>2]=F[c>>2];F[d+12>>2]=F[c>>2];F[d+16>>2]=F[c>>2];F[d+20>>2]=F[c>>2];F[d+24>>2]=F[c>>2];F[d+28>>2]=F[c>>2];d=d+32|0;g=g-8|0;if(g){continue}break}}if(b>>>0>h>>>0){b=(b-h<<2)+f|0;while(1){F[f>>2]=F[c>>2];f=f+4|0;if((b|0)!=(f|0)){continue}break}F[a+4>>2]=b;return}F[a+4>>2]=e+(b<<2);return}if(e){F[a+4>>2]=e;ja(e);F[a+8>>2]=0;F[a>>2]=0;F[a+4>>2]=0;d=0}b:{if(b>>>0>=1073741824){break b}e=d>>>1|0;d=d>>>0>=2147483644?1073741823:b>>>0>>0?e:b;if(d>>>0>=1073741824){break b}d=d<<2;e=ka(d);F[a>>2]=e;F[a+8>>2]=d+e;c=F[c>>2];d=e;g=b&7;if(g){while(1){F[d>>2]=c;d=d+4|0;f=f+1|0;if((g|0)!=(f|0)){continue}break}}e=e+(b<<2)|0;if((b-1&1073741823)>>>0>=7){while(1){F[d+28>>2]=c;F[d+24>>2]=c;F[d+20>>2]=c;F[d+16>>2]=c;F[d+12>>2]=c;F[d+8>>2]=c;F[d+4>>2]=c;F[d>>2]=c;d=d+32|0;if((e|0)!=(d|0)){continue}break}}F[a+4>>2]=e;return}na();v()}function Ka(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;f=(c>>>0)/3|0;j=F[(F[F[a+8>>2]+96>>2]+L(f,12)|0)+(c-L(f,3)<<2)>>2];a:{h=F[F[a+12>>2]+4>>2];e=F[h+4>>2];if((e|0)!=F[h+8>>2]){F[e>>2]=j;F[h+4>>2]=e+4;break a}b:{i=F[h>>2];f=e-i|0;g=f>>2;d=g+1|0;if(d>>>0<1073741824){k=g<<2;g=f>>>1|0;g=f>>>0>=2147483644?1073741823:d>>>0>>0?g:d;if(g){if(g>>>0>=1073741824){break b}f=ka(g<<2)}else{f=0}d=k+f|0;F[d>>2]=j;j=d+4|0;if((e|0)!=(i|0)){while(1){d=d-4|0;e=e-4|0;F[d>>2]=F[e>>2];if((e|0)!=(i|0)){continue}break}}F[h+8>>2]=f+(g<<2);F[h+4>>2]=j;F[h>>2]=d;if(i){ja(i)}break a}na();v()}oa();v()}c:{d:{h=F[a+4>>2];e=F[h+4>>2];e:{if((e|0)!=F[h+8>>2]){F[e>>2]=c;F[h+4>>2]=e+4;break e}i=F[h>>2];f=e-i|0;j=f>>2;d=j+1|0;if(d>>>0>=1073741824){break d}g=f>>>1|0;g=f>>>0>=2147483644?1073741823:d>>>0>>0?g:d;if(g){if(g>>>0>=1073741824){break c}f=ka(g<<2)}else{f=0}d=f+(j<<2)|0;F[d>>2]=c;c=d+4|0;if((e|0)!=(i|0)){while(1){d=d-4|0;e=e-4|0;F[d>>2]=F[e>>2];if((e|0)!=(i|0)){continue}break}}F[h+8>>2]=f+(g<<2);F[h+4>>2]=c;F[h>>2]=d;if(!i){break e}ja(i)}a=F[a+4>>2];F[F[a+12>>2]+(b<<2)>>2]=F[a+24>>2];F[a+24>>2]=F[a+24>>2]+1;return}na();v()}oa();v()}function pb(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0;h=d-c|0;if((h|0)<=0){return}a:{e=F[a+8>>2];i=F[a+4>>2];if((e-i|0)>=(h|0)){j=i-b|0;if((j|0)>=(h|0)){f=i;g=d;break a}f=i;g=c+j|0;if((g|0)!=(d|0)){e=g;while(1){D[f|0]=G[e|0];f=f+1|0;e=e+1|0;if((e|0)!=(d|0)){continue}break}}F[a+4>>2]=f;if((j|0)>0){break a}return}k=F[a>>2];g=(i-k|0)+h|0;if((g|0)>=0){j=b-k|0;f=e-k|0;e=f<<1;f=f>>>0>=1073741823?2147483647:e>>>0>g>>>0?e:g;if(f){e=ka(f)}else{e=0}g=j+e|0;if((c|0)!=(d|0)){g=la(g,c,h)+h|0}d=pa(e,k,j);c=i-b|0;b=pa(g,b,c);F[a+8>>2]=e+f;F[a+4>>2]=b+c;F[a>>2]=d;if(k){ja(k)}return}na();v()}e=f;d=e-h|0;if(i>>>0>d>>>0){while(1){D[e|0]=G[d|0];e=e+1|0;d=d+1|0;if(i>>>0>d>>>0){continue}break}}F[a+4>>2]=e;a=b+h|0;if((a|0)!=(f|0)){a=f-a|0;pa(f-a|0,b,a)}if((c|0)==(g|0)){return}f=(c^-1)+g|0;a=g-c&7;b:{if(!a){e=b;break b}d=0;e=b;while(1){D[e|0]=G[c|0];e=e+1|0;c=c+1|0;d=d+1|0;if((a|0)!=(d|0)){continue}break}}if(f>>>0<7){return}while(1){D[e|0]=G[c|0];D[e+1|0]=G[c+1|0];D[e+2|0]=G[c+2|0];D[e+3|0]=G[c+3|0];D[e+4|0]=G[c+4|0];D[e+5|0]=G[c+5|0];D[e+6|0]=G[c+6|0];D[e+7|0]=G[c+7|0];e=e+8|0;c=c+8|0;if((g|0)!=(c|0)){continue}break}}function la(a,b,c){var d=0,e=0,f=0;if(c>>>0>=512){Y(a|0,b|0,c|0);return a}e=a+c|0;a:{if(!((a^b)&3)){b:{if(!(a&3)){c=a;break b}if(!c){c=a;break b}c=a;while(1){D[c|0]=G[b|0];b=b+1|0;c=c+1|0;if(!(c&3)){break b}if(c>>>0>>0){continue}break}}d=e&-4;c:{if(d>>>0<64){break c}f=d+-64|0;if(f>>>0>>0){break c}while(1){F[c>>2]=F[b>>2];F[c+4>>2]=F[b+4>>2];F[c+8>>2]=F[b+8>>2];F[c+12>>2]=F[b+12>>2];F[c+16>>2]=F[b+16>>2];F[c+20>>2]=F[b+20>>2];F[c+24>>2]=F[b+24>>2];F[c+28>>2]=F[b+28>>2];F[c+32>>2]=F[b+32>>2];F[c+36>>2]=F[b+36>>2];F[c+40>>2]=F[b+40>>2];F[c+44>>2]=F[b+44>>2];F[c+48>>2]=F[b+48>>2];F[c+52>>2]=F[b+52>>2];F[c+56>>2]=F[b+56>>2];F[c+60>>2]=F[b+60>>2];b=b- -64|0;c=c- -64|0;if(f>>>0>=c>>>0){continue}break}}if(c>>>0>=d>>>0){break a}while(1){F[c>>2]=F[b>>2];b=b+4|0;c=c+4|0;if(d>>>0>c>>>0){continue}break}break a}if(e>>>0<4){c=a;break a}d=e-4|0;if(d>>>0>>0){c=a;break a}c=a;while(1){D[c|0]=G[b|0];D[c+1|0]=G[b+1|0];D[c+2|0]=G[b+2|0];D[c+3|0]=G[b+3|0];b=b+4|0;c=c+4|0;if(d>>>0>=c>>>0){continue}break}}if(c>>>0>>0){while(1){D[c|0]=G[b|0];b=b+1|0;c=c+1|0;if((e|0)!=(c|0)){continue}break}}return a}function sd(a){a=a|0;var b=0,c=0,d=0,e=0,f=0;F[a>>2]=8336;d=a+232|0;b=F[d+196>>2];if(b){F[d+200>>2]=b;ja(b)}c=F[d+184>>2];if(c){b=c;e=F[d+188>>2];if((b|0)!=(e|0)){while(1){b=e-12|0;f=F[b>>2];if(f){F[e-8>>2]=f;ja(f)}e=b;if((b|0)!=(c|0)){continue}break}b=F[d+184>>2]}F[d+188>>2]=c;ja(b)}b=F[d+156>>2];if(b){F[d+160>>2]=b;ja(b)}c=F[d+136>>2];F[d+136>>2]=0;if(c){e=c-4|0;b=F[e>>2];if(b){b=c+(b<<4)|0;while(1){b=b-16|0;if((c|0)!=(b|0)){continue}break}}ja(e)}td(a+216|0);b=F[a+196>>2];if(b){F[a+200>>2]=b;ja(b)}b=F[a+184>>2];if(b){F[a+188>>2]=b;ja(b)}b=F[a+172>>2];if(b){F[a+176>>2]=b;ja(b)}b=F[a+160>>2];if(b){F[a+164>>2]=b;ja(b)}b=F[a+144>>2];if(b){while(1){c=F[b>>2];ja(b);b=c;if(b){continue}break}}b=F[a+136>>2];F[a+136>>2]=0;if(b){ja(b)}b=F[a+120>>2];if(b){ja(b)}b=F[a+108>>2];if(b){ja(b)}b=F[a+96>>2];if(b){ja(b)}b=F[a+72>>2];if(b){F[a+76>>2]=b;ja(b)}b=F[a+60>>2];if(b){ja(b)}b=F[a+48>>2];if(b){F[a+52>>2]=b;ja(b)}b=F[a+36>>2];if(b){F[a+40>>2]=b;ja(b)}b=F[a+24>>2];if(b){F[a+28>>2]=b;ja(b)}b=F[a+12>>2];if(b){F[a+16>>2]=b;ja(b)}b=F[a+8>>2];F[a+8>>2]=0;if(b){Za(b)}return a|0}function Fa(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;d=F[a+8>>2];e=F[a+4>>2];if(d-e>>2>>>0>=b>>>0){a:{if(!b){break a}d=e;f=b&7;if(f){while(1){F[d>>2]=F[c>>2];d=d+4|0;h=h+1|0;if((f|0)!=(h|0)){continue}break}}e=(b<<2)+e|0;if((b-1&1073741823)>>>0<7){break a}while(1){F[d>>2]=F[c>>2];F[d+4>>2]=F[c>>2];F[d+8>>2]=F[c>>2];F[d+12>>2]=F[c>>2];F[d+16>>2]=F[c>>2];F[d+20>>2]=F[c>>2];F[d+24>>2]=F[c>>2];F[d+28>>2]=F[c>>2];d=d+32|0;if((e|0)!=(d|0)){continue}break}}F[a+4>>2]=e;return}b:{i=F[a>>2];j=e-i|0;f=j>>2;g=f+b|0;if(g>>>0<1073741824){d=d-i|0;e=d>>>1|0;g=d>>>0>=2147483644?1073741823:e>>>0>g>>>0?e:g;if(g){if(g>>>0>=1073741824){break b}k=ka(g<<2)}f=(f<<2)+k|0;d=f;e=b&7;if(e){while(1){F[d>>2]=F[c>>2];d=d+4|0;h=h+1|0;if((e|0)!=(h|0)){continue}break}}e=f+(b<<2)|0;if((b-1&1073741823)>>>0>=7){while(1){F[d>>2]=F[c>>2];F[d+4>>2]=F[c>>2];F[d+8>>2]=F[c>>2];F[d+12>>2]=F[c>>2];F[d+16>>2]=F[c>>2];F[d+20>>2]=F[c>>2];F[d+24>>2]=F[c>>2];F[d+28>>2]=F[c>>2];d=d+32|0;if((e|0)!=(d|0)){continue}break}}b=pa(k,i,j);F[a+4>>2]=e;F[a>>2]=b;F[a+8>>2]=b+(g<<2);if(i){ja(i)}return}na();v()}oa();v()}function Sb(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;if(G[a+11|0]>>>7|0){d=F[a+4>>2]}else{d=G[a+11|0]&127}if(d>>>0>>0){h=Z-16|0;Z=h;b=b-d|0;if(b){g=G[a+11|0]>>>7|0?(F[a+8>>2]&2147483647)-1|0:10;if(G[a+11|0]>>>7|0){d=F[a+4>>2]}else{d=G[a+11|0]&127}i=d+b|0;if(g-d>>>0>>0){a:{e=Z-16|0;Z=e;c=i-g|0;if(c>>>0<=2147483631-g>>>0){if(G[a+11|0]>>>7|0){f=F[a>>2]}else{f=a}if(g>>>0<1073741799){F[e+12>>2]=g<<1;F[e>>2]=c+g;c=Z-16|0;Z=c;Z=c+16|0;c=e+12|0;c=F[(I[e>>2]>2]?c:e)>>2];if(c>>>0>=11){j=c+16&-16;c=j-1|0;c=(c|0)==11?j:c}else{c=10}c=c+1|0}else{c=2147483631}sb(e,c);c=F[e>>2];if(d){db(c,f,d)}if((g|0)!=10){ja(f)}F[a>>2]=c;F[a+8>>2]=F[a+8>>2]&-2147483648|F[e+4>>2]&2147483647;F[a+8>>2]=F[a+8>>2]|-2147483648;Z=e+16|0;break a}za();v()}}f=d;if(G[a+11|0]>>>7|0){d=F[a>>2]}else{d=a}f=f+d|0;e=Z-16|0;Z=e;D[e+15|0]=0;while(1){if(b){D[f|0]=G[e+15|0];b=b-1|0;f=f+1|0;continue}break}Z=e+16|0;Ic(a,i);D[h+15|0]=0;D[d+i|0]=G[h+15|0]}Z=h+16|0;return}if(G[a+11|0]>>>7|0){d=F[a>>2]}else{d=a}f=Z-16|0;Z=f;Ic(a,b);D[f+15|0]=0;D[b+d|0]=G[f+15|0];Z=f+16|0}function Zc(a,b){var c=0,d=0,e=0,f=0,g=0,h=0;g=Z-16|0;Z=g;a:{b:{if(b){F[a+88>>2]=0;F[a+92>>2]=0;d=F[a+84>>2];F[a+84>>2]=0;if(d){ja(d)}F[a+76>>2]=0;F[a+80>>2]=0;d=F[a+72>>2];F[a+72>>2]=0;if(d){ja(d)}d=F[b>>2];c=F[b+4>>2];D[g+15|0]=0;Ea(a,c-d>>2,g+15|0);d=F[b+28>>2];c=F[b+24>>2];D[g+14|0]=0;Ea(a+12|0,d-c>>2,g+14|0);Xb(a+28|0,F[b+4>>2]-F[b>>2]>>2,10284);c=F[b+28>>2]-F[b+24>>2]|0;f=c>>2;e=F[a+52>>2];c:{if(f>>>0<=F[a+60>>2]-e>>2>>>0){break c}if((c|0)<0){break b}d=F[a+56>>2];c=ka(c);f=c+(f<<2)|0;h=c+(d-e&-4)|0;c=h;if((d|0)!=(e|0)){while(1){c=c-4|0;d=d-4|0;F[c>>2]=F[d>>2];if((d|0)!=(e|0)){continue}break}}F[a+60>>2]=f;F[a+56>>2]=h;F[a+52>>2]=c;if(!e){break c}ja(e)}c=F[b+28>>2]-F[b+24>>2]|0;f=c>>2;e=F[a+40>>2];d:{if(f>>>0<=F[a+48>>2]-e>>2>>>0){break d}if((c|0)<0){break a}d=F[a+44>>2];c=ka(c);f=c+(f<<2)|0;h=c+(d-e&-4)|0;c=h;if((d|0)!=(e|0)){while(1){c=c-4|0;d=d-4|0;F[c>>2]=F[d>>2];if((d|0)!=(e|0)){continue}break}}F[a+48>>2]=f;F[a+44>>2]=h;F[a+40>>2]=c;if(!e){break d}ja(e)}D[a+24|0]=1;F[a+64>>2]=b}Z=g+16|0;return}na();v()}na();v()}function nb(a,b){var c=0,d=0,e=0;c=(a|0)==(b|0);D[b+12|0]=c;a:{if(c){break a}while(1){d=F[b+8>>2];if(G[d+12|0]){break a}b:{c=F[d+8>>2];e=F[c>>2];if((e|0)==(d|0)){e=F[c+4>>2];if(!(!e|G[e+12|0])){break b}c:{if(F[d>>2]==(b|0)){b=d;break c}b=F[d+4>>2];a=F[b>>2];F[d+4>>2]=a;if(a){F[a+8>>2]=d;c=F[d+8>>2]}F[b+8>>2]=c;a=F[d+8>>2];F[((F[a>>2]!=(d|0))<<2)+a>>2]=b;F[b>>2]=d;F[d+8>>2]=b;c=F[b+8>>2];d=F[c>>2]}D[b+12|0]=1;D[c+12|0]=0;a=F[d+4>>2];F[c>>2]=a;if(a){F[a+8>>2]=c}F[d+8>>2]=F[c+8>>2];a=F[c+8>>2];F[((F[a>>2]!=(c|0))<<2)+a>>2]=d;F[d+4>>2]=c;F[c+8>>2]=d;return}if(!(G[e+12|0]|!e)){break b}d:{if(F[d>>2]!=(b|0)){b=d;break d}a=F[b+4>>2];F[d>>2]=a;if(a){F[a+8>>2]=d;c=F[d+8>>2]}F[b+8>>2]=c;a=F[d+8>>2];F[((F[a>>2]!=(d|0))<<2)+a>>2]=b;F[b+4>>2]=d;F[d+8>>2]=b;c=F[b+8>>2]}D[b+12|0]=1;D[c+12|0]=0;a=F[c+4>>2];b=F[a>>2];F[c+4>>2]=b;if(b){F[b+8>>2]=c}F[a+8>>2]=F[c+8>>2];b=F[c+8>>2];F[((F[b>>2]!=(c|0))<<2)+b>>2]=a;F[a>>2]=c;F[c+8>>2]=a;break a}D[d+12|0]=1;D[c+12|0]=(a|0)==(c|0);D[e+12|0]=1;b=c;if((c|0)!=(a|0)){continue}break}}}function mi(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;a:{b:{c:{d:{e:{f:{g:{h:{i:{j:{k:{if(b){if(!c){break k}if(!d){break j}e=O(d)-O(b)|0;if(e>>>0<=31){break i}break c}if((d|0)==1|d>>>0>1){break c}_=0;a=(a>>>0)/(c>>>0)|0;break a}if(!a){break h}if(!d|d-1&d){break g}a=b>>>ji(d)|0;_=0;break a}if(!(c-1&c)){break f}h=(O(c)+33|0)-O(b)|0;g=0-h|0;break d}h=e+1|0;g=63-e|0;break d}_=0;a=(b>>>0)/(d>>>0)|0;break a}e=O(d)-O(b)|0;if(e>>>0<31){break e}break c}if((c|0)==1){break b}d=ji(c);c=d&31;if((d&63)>>>0>=32){a=b>>>c|0}else{e=b>>>c|0;a=((1<>>c}_=e;break a}h=e+1|0;g=63-e|0}e=h&63;f=e&31;if(e>>>0>=32){e=0;i=b>>>f|0}else{e=b>>>f|0;i=((1<>>f}g=g&63;f=g&31;if(g>>>0>=32){b=a<>>32-f|b<>>31;e=i<<1|b>>>31;f=m-(j+(e>>>0>g>>>0)|0)>>31;k=c&f;i=e-k|0;e=j-((d&f)+(e>>>0>>0)|0)|0;b=b<<1|a>>>31;a=l|a<<1;l=f&1;h=h-1|0;if(h){continue}break}}_=b<<1|a>>>31;a=l|a<<1;break a}a=0;b=0}_=b}return a}function yh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;c=F[b+88>>2];if(!(!c|F[c>>2]!=1)){e=F[c+8>>2];F[a+4>>2]=G[e|0]|G[e+1|0]<<8|(G[e+2|0]<<16|G[e+3|0]<<24);f=a+8|0;d=G[b+24|0];h=F[a+8>>2];g=F[a+12>>2]-h>>2;a:{if(d>>>0>g>>>0){qa(f,d-g|0);d=G[b+24|0];e=F[c+8>>2];break a}if(d>>>0>=g>>>0){break a}F[a+12>>2]=h+(d<<2)}b:{if(!d){b=4;break b}h=d&3;f=F[f>>2];c:{if(d-1>>>0<3){b=4;d=0;break c}k=d&252;d=0;b=4;while(1){g=d<<2;c=b+e|0;F[g+f>>2]=G[c|0]|G[c+1|0]<<8|(G[c+2|0]<<16|G[c+3|0]<<24);F[f+(g|4)>>2]=G[c+4|0]|G[c+5|0]<<8|(G[c+6|0]<<16|G[c+7|0]<<24);F[f+(g|8)>>2]=G[c+8|0]|G[c+9|0]<<8|(G[c+10|0]<<16|G[c+11|0]<<24);F[f+(g|12)>>2]=G[c+12|0]|G[c+13|0]<<8|(G[c+14|0]<<16|G[c+15|0]<<24);d=d+4|0;b=b+16|0;i=i+4|0;if((k|0)!=(i|0)){continue}break}}if(!h){break b}while(1){c=b+e|0;F[f+(d<<2)>>2]=G[c|0]|G[c+1|0]<<8|(G[c+2|0]<<16|G[c+3|0]<<24);d=d+1|0;b=b+4|0;j=j+1|0;if((h|0)!=(j|0)){continue}break}}d=a;a=b+e|0;F[d+20>>2]=G[a|0]|G[a+1|0]<<8|(G[a+2|0]<<16|G[a+3|0]<<24);d=1}return d|0}function Yg(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0;g=Z-16|0;Z=g;e=F[a+4>>2];d=F[e>>2];a:{b=F[a+12>>2];c=F[b+28>>2]-F[b+24>>2]|0;f=c>>2;b:{if(f>>>0<=F[e+8>>2]-d>>2>>>0){break b}if((c|0)<0){break a}b=F[e+4>>2];c=ka(c);f=c+(f<<2)|0;h=c+(b-d&-4)|0;c=h;if((b|0)!=(d|0)){while(1){c=c-4|0;b=b-4|0;F[c>>2]=F[b>>2];if((b|0)!=(d|0)){continue}break}}F[e+8>>2]=f;F[e+4>>2]=h;F[e>>2]=c;if(!d){break b}ja(d)}b=F[a+12>>2];c=F[b+28>>2];b=F[b+24>>2];F[g+12>>2]=0;b=c-b>>2;d=a+96|0;e=F[d>>2];c=F[a+100>>2]-e>>2;c:{if(b>>>0>c>>>0){Fa(d,b-c|0,g+12|0);break c}if(b>>>0>=c>>>0){break c}F[a+100>>2]=e+(b<<2)}e=a+8|0;b=F[a+116>>2];d:{if(b){d=F[b>>2];if((d|0)==F[b+4>>2]){c=1;break d}b=0;while(1){c=rd(e,F[(b<<2)+d>>2]);if(!c){break d}f=F[a+116>>2];d=F[f>>2];b=b+1|0;if(b>>>0>2]-d>>2>>>0){continue}break}break d}c=1;a=F[a+12>>2];a=F[a+4>>2]-F[a>>2]|0;if(a>>>0<12){break d}a=(a>>2>>>0)/3|0;b=0;while(1){c=rd(e,L(b,3));if(!c){break d}b=b+1|0;if((a|0)!=(b|0)){continue}break}}Z=g+16|0;return c|0}na();v()}function md(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0;a:{b:{c:{if(!b){if((d|0)<0){break a}f=F[a+4>>2];b=F[a>>2];d=f-b|0;if(c>>>0>d>>>0){g=c-d|0;e=F[a+8>>2];if(g>>>0<=e-f>>>0){i=a,j=ma(f,0,g)+g|0,F[i+4>>2]=j;break c}if((c|0)<0){break b}f=e-b|0;e=f<<1;f=f>>>0>=1073741823?2147483647:c>>>0>>0?e:c;e=ka(f);ma(e+d|0,0,g);d=pa(e,b,d);F[a+8>>2]=d+f;F[a+4>>2]=c+d;F[a>>2]=d;if(!b){break c}ja(b);break c}if(c>>>0>=d>>>0){break c}F[a+4>>2]=b+c;break c}if((d|0)<0){break a}e=F[a+4>>2];f=F[a>>2];g=e-f|0;d:{if((d|0)<=0&c>>>0<=g>>>0|(d|0)<0){break d}if(c>>>0>g>>>0){d=c-g|0;h=F[a+8>>2];if(d>>>0<=h-e>>>0){i=a,j=ma(e,0,d)+d|0,F[i+4>>2]=j;break d}if((c|0)<0){break b}e=h-f|0;h=e<<1;e=e>>>0>=1073741823?2147483647:c>>>0>>0?h:c;h=ka(e);ma(h+g|0,0,d);d=pa(h,f,g);F[a+8>>2]=d+e;F[a+4>>2]=c+d;F[a>>2]=d;if(!f){break d}ja(f);break d}if(c>>>0>=g>>>0){break d}F[a+4>>2]=c+f}if(!c){break c}pa(F[a>>2],b,c)}b=F[a+28>>2];c=F[a+24>>2]+1|0;b=c?b:b+1|0;F[a+24>>2]=c;F[a+28>>2]=b;g=1;break a}na();v()}return g}function Lg(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;k=F[a+12>>2];c=F[a+68>>2];d=F[c+80>>2];D[b+84|0]=0;n=b+68|0;i=F[b+68>>2];e=F[b+72>>2]-i>>2;a:{if(e>>>0>>0){ab(n,d-e|0,9124);c=F[a+68>>2];d=F[c+80>>2];break a}if(d>>>0>=e>>>0){break a}F[b+72>>2]=i+(d<<2)}b=F[c+100>>2];e=F[c+96>>2];i=(b-e|0)/12|0;m=1;b:{if((b|0)==(e|0)){break b}k=F[k+28>>2];f=F[k>>2];if((f|0)==-1){return 0}o=i>>>0<=1?1:i;c=e;b=0;m=0;while(1){g=F[c>>2];if(g>>>0>=d>>>0){break b}j=F[F[a+72>>2]+12>>2];h=F[j+(f<<2)>>2];if(h>>>0>=d>>>0){break b}f=F[n>>2];F[f+(g<<2)>>2]=h;g=k+(l<<2)|0;h=F[g+4>>2];if((h|0)==-1){break b}l=F[c+4>>2];if(l>>>0>=d>>>0){break b}h=F[(h<<2)+j>>2];if(h>>>0>=d>>>0){break b}F[f+(l<<2)>>2]=h;g=F[g+8>>2];if((g|0)==-1){break b}c=F[c+8>>2];if(c>>>0>=d>>>0){break b}j=F[(g<<2)+j>>2];if(j>>>0>=d>>>0){break b}F[f+(c<<2)>>2]=j;b=b+1|0;m=i>>>0<=b>>>0;if((b|0)==(o|0)){break b}c=e+L(b,12)|0;l=L(b,3);f=F[k+(l<<2)>>2];if((f|0)!=-1){continue}break}}return m|0}function ag(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;h=F[d+80>>2];e=Z-48|0;Z=e;a=F[a+4>>2];m=a-2|0;a:{if(m>>>0>28){break a}j=F[F[d>>2]>>2]+F[d+48>>2]|0;F[e+16>>2]=a;a=-1<>2]=a^-1;a=-2-a|0;F[e+24>>2]=a;F[e+32>>2]=(a|0)/2;J[e+28>>2]=M(2)/M(a|0);f=F[c>>2];if((f|0)!=F[c+4>>2]){a=0;d=0;while(1){g=F[(d<<2)+f>>2];h=e+36|0;k=F[F[b>>2]>>2];l=F[b+48>>2];f=F[b+40>>2];i=F[b+44>>2];if(!G[b+84|0]){g=F[F[b+68>>2]+(g<<2)>>2]}g=ki(f,i,g,0);i=g;g=g+l|0;la(h,g+k|0,f);Kc(e+16|0,h,e+12|0,e+8|0);f=a<<2;F[f+j>>2]=F[e+12>>2];F[(f|4)+j>>2]=F[e+8>>2];a=a+2|0;d=d+1|0;f=F[c>>2];if(d>>>0>2]-f>>2>>>0){continue}break}break a}if(!h){break a}d=0;a=0;while(1){k=e+36|0;l=F[F[b>>2]>>2];i=F[b+48>>2];c=F[b+40>>2];f=ki(c,F[b+44>>2],G[b+84|0]?a:F[F[b+68>>2]+(a<<2)>>2],0);g=f;f=f+i|0;la(k,f+l|0,c);Kc(e+16|0,k,e+12|0,e+8|0);c=d<<2;F[c+j>>2]=F[e+12>>2];F[(c|4)+j>>2]=F[e+8>>2];d=d+2|0;a=a+1|0;if((h|0)!=(a|0)){continue}break}}Z=e+48|0;return m>>>0<29|0}function Zg(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;c=F[a+12>>2];d=F[a+108>>2];e=F[d+80>>2];D[b+84|0]=0;m=b+68|0;h=F[b+68>>2];f=F[b+72>>2]-h>>2;a:{if(f>>>0>>0){ab(m,e-f|0,9124);d=F[a+108>>2];e=F[d+80>>2];break a}if(e>>>0>=f>>>0){break a}F[b+72>>2]=h+(e<<2)}b=F[d+100>>2];f=F[d+96>>2];h=(b-f|0)/12|0;k=1;b:{if((b|0)==(f|0)){break b}n=h>>>0<=1?1:h;o=F[c>>2];c=0;d=f;b=0;k=0;while(1){c=(c<<2)+o|0;i=F[c>>2];if((i|0)==-1){break b}g=F[d>>2];if(g>>>0>=e>>>0){break b}l=F[F[a+112>>2]+12>>2];j=F[l+(i<<2)>>2];if(j>>>0>=e>>>0){break b}i=F[m>>2];F[i+(g<<2)>>2]=j;g=F[c+4>>2];if((g|0)==-1){break b}j=F[d+4>>2];if(j>>>0>=e>>>0){break b}g=F[(g<<2)+l>>2];if(g>>>0>=e>>>0){break b}F[i+(j<<2)>>2]=g;c=F[c+8>>2];if((c|0)==-1){break b}d=F[d+8>>2];if(d>>>0>=e>>>0){break b}c=F[(c<<2)+l>>2];if(c>>>0>=e>>>0){break b}F[i+(d<<2)>>2]=c;b=b+1|0;k=h>>>0<=b>>>0;if((b|0)==(n|0)){break b}c=L(b,3);d=f+L(b,12)|0;if((b|0)!=1431655765){continue}break}}return k|0}function xd(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=M(0),j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;k=Z-16|0;Z=k;if(F[c+28>>2]==9){d=F[a+4>>2];h=G[c+24|0];e=h<<2;f=ka(e);l=k+8|0;F[l>>2]=1065353216;i=J[a+20>>2];d=-1<0){J[l>>2]=i/M(d|0)}o=(d|0)>0;a:{if(!o){break a}j=F[c+80>>2];if(!j){break a}if(h){p=F[F[b>>2]>>2]+F[b+48>>2]|0;t=h&254;u=h&1;b=0;while(1){m=F[a+8>>2];i=J[l>>2];d=0;n=0;if((h|0)!=1){while(1){g=d<<2;q=(b<<2)+p|0;J[g+f>>2]=M(i*M(F[q>>2]))+J[g+m>>2];g=g|4;J[g+f>>2]=M(i*M(F[q+4>>2]))+J[g+m>>2];d=d+2|0;b=b+2|0;n=n+2|0;if((t|0)!=(n|0)){continue}break}}if(u){d=d<<2;J[d+f>>2]=M(i*M(F[(b<<2)+p>>2]))+J[d+m>>2];b=b+1|0}la(F[F[c+64>>2]>>2]+r|0,f,e);r=e+r|0;s=s+1|0;if((s|0)!=(j|0)){continue}break}break a}b=0;if((j|0)!=1){a=j&-2;d=0;while(1){la(F[F[c+64>>2]>>2]+b|0,f,e);b=b+e|0;la(b+F[F[c+64>>2]>>2]|0,f,e);b=b+e|0;d=d+2|0;if((a|0)!=(d|0)){continue}break}}if(!(j&1)){break a}la(F[F[c+64>>2]>>2]+b|0,f,e)}ja(f)}Z=k+16|0;return o|0}function Rg(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;c=F[a+12>>2];d=F[a+68>>2];e=F[d+80>>2];D[b+84|0]=0;m=b+68|0;h=F[b+68>>2];f=F[b+72>>2]-h>>2;a:{if(f>>>0>>0){ab(m,e-f|0,9124);d=F[a+68>>2];e=F[d+80>>2];break a}if(e>>>0>=f>>>0){break a}F[b+72>>2]=h+(e<<2)}b=F[d+100>>2];f=F[d+96>>2];h=(b-f|0)/12|0;k=1;b:{if((b|0)==(f|0)){break b}n=h>>>0<=1?1:h;o=F[c>>2];c=0;d=f;b=0;k=0;while(1){c=(c<<2)+o|0;i=F[c>>2];if((i|0)==-1){break b}g=F[d>>2];if(g>>>0>=e>>>0){break b}l=F[F[a+72>>2]+12>>2];j=F[l+(i<<2)>>2];if(j>>>0>=e>>>0){break b}i=F[m>>2];F[i+(g<<2)>>2]=j;g=F[c+4>>2];if((g|0)==-1){break b}j=F[d+4>>2];if(j>>>0>=e>>>0){break b}g=F[(g<<2)+l>>2];if(g>>>0>=e>>>0){break b}F[i+(j<<2)>>2]=g;c=F[c+8>>2];if((c|0)==-1){break b}d=F[d+8>>2];if(d>>>0>=e>>>0){break b}c=F[(c<<2)+l>>2];if(c>>>0>=e>>>0){break b}F[i+(d<<2)>>2]=c;b=b+1|0;k=h>>>0<=b>>>0;if((b|0)==(n|0)){break b}c=L(b,3);d=f+L(b,12)|0;if((b|0)!=1431655765){continue}break}}return k|0}function Na(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;d=Z-16|0;Z=d;a:{f=F[a+4>>2];b:{if(f>>>0>>0){e=b-f|0;c=F[a+8>>2];g=c<<5;c:{if(!(e>>>0>g>>>0|f>>>0>g-e>>>0)){F[a+4>>2]=b;h=f&31;b=F[a>>2]+(f>>>3&536870908)|0;break c}F[d+8>>2]=0;F[d>>2]=0;F[d+4>>2]=0;if((b|0)<0){break a}if(g>>>0<=1073741822){c=c<<6;b=b+31&-32;b=b>>>0>>0?c:b}else{b=2147483647}$a(d,b);f=F[a+4>>2];F[d+4>>2]=f+e;i=F[a>>2];b=F[d>>2];d:{if((f|0)<=0){break d}c=f>>>5|0;if(f>>>0>=32){pa(b,i,c<<2)}g=c<<2;b=g+b|0;h=f&31;if(h){c=-1>>>32-h|0;F[b>>2]=F[b>>2]&(c^-1)|F[i+g>>2]&c}i=F[a>>2]}F[a>>2]=F[d>>2];F[d>>2]=i;c=F[a+4>>2];F[a+4>>2]=F[d+4>>2];F[d+4>>2]=c;c=F[a+8>>2];F[a+8>>2]=F[d+8>>2];F[d+8>>2]=c;if(!i){break c}ja(i)}if(!e){break b}if(h){c=32-h|0;a=c>>>0>>0?c:e;F[b>>2]=F[b>>2]&(-1<>>c-a^-1);e=e-a|0;b=b+4|0}a=e>>>5|0;if(e>>>0>=32){ma(b,0,a<<2)}if((e&-32)==(e|0)){break b}a=(a<<2)+b|0;F[a>>2]=F[a>>2]&(-1>>>32-(e&31)^-1);break b}F[a+4>>2]=b}Z=d+16|0;return}na();v()}function Aa(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;i=Z-16|0;Z=i;f=F[b+20>>2];h=F[b+12>>2];c=F[b+16>>2];a:{if((f|0)>=(h|0)&c>>>0>=I[b+8>>2]|(f|0)>(h|0)){break a}D[a+12|0]=G[c+F[b>>2]|0];c=F[b+20>>2];f=F[b+16>>2]+1|0;c=f?c:c+1|0;F[b+16>>2]=f;F[b+20>>2]=c;if(!Qd(1,i+12|0,b)){break a}h=F[b+8>>2];f=F[b+16>>2];g=h-f|0;c=F[i+12>>2];d=f>>>0>h>>>0;h=F[b+20>>2];e=F[b+12>>2]-(d+h|0)|0;if(g>>>0>>0&(e|0)<=0|(e|0)<0|(c|0)<=0){break a}g=f+F[b>>2]|0;F[a>>2]=g;b:{c:{e=c-1|0;j=e+g|0;d=G[j|0];d:{if(d>>>0<=63){F[a+4>>2]=e;d=G[j|0]&63;break d}e:{switch((d>>>6|0)-1|0){case 1:break c;case 0:break e;default:break a}}if(c>>>0<2){break a}e=c-2|0;F[a+4>>2]=e;g=g+e|0;d=G[g+1|0]<<8&16128|G[g|0]}F[a+8>>2]=d+4096;break b}if(c>>>0<3){break a}e=c-3|0;F[a+4>>2]=e;d=a;a=g+e|0;a=G[a+1|0]<<8|G[a+2|0]<<16&4128768|G[a|0];F[d+8>>2]=a+4096;if(a>>>0>1044479){break a}}a=h;d=c;c=c+f|0;a=d>>>0>c>>>0?a+1|0:a;F[b+16>>2]=c;F[b+20>>2]=a;k=1}Z=i+16|0;return k}function qd(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;e=F[a+12>>2];i=F[a+8>>2];d=e-i>>2;b=G[b+24|0];a:{if(d>>>0>>0){qa(a+8|0,b-d|0);i=F[a+8>>2];e=F[a+12>>2];break a}if(b>>>0>=d>>>0){break a}e=(b<<2)+i|0;F[a+12>>2]=e}b=0;f=F[c+8>>2];h=F[c+12>>2];j=F[c+20>>2];e=e-i|0;d=F[c+16>>2];g=e+d|0;j=e>>>0>g>>>0?j+1|0:j;b:{if(f>>>0>>0&(h|0)<=(j|0)|(h|0)<(j|0)){break b}la(i,d+F[c>>2]|0,e);d=F[c+20>>2];g=e;e=e+F[c+16>>2]|0;d=g>>>0>e>>>0?d+1|0:d;F[c+16>>2]=e;F[c+20>>2]=d;f=F[c+8>>2];h=F[c+12>>2];g=e+4|0;d=g>>>0<4?d+1|0:d;if(f>>>0>>0&(d|0)>=(h|0)|(d|0)>(h|0)){break b}d=e+F[c>>2]|0;F[a+20>>2]=G[d|0]|G[d+1|0]<<8|(G[d+2|0]<<16|G[d+3|0]<<24);d=F[c+20>>2];g=d;f=d;e=F[c+16>>2];d=e+4|0;f=d>>>0<4?f+1|0:f;F[c+16>>2]=d;F[c+20>>2]=f;h=F[c+12>>2];if((f|0)>=(h|0)&d>>>0>=I[c+8>>2]|(f|0)>(h|0)){break b}f=G[d+F[c>>2]|0];d=g;e=e+5|0;d=e>>>0<5?d+1|0:d;F[c+16>>2]=e;F[c+20>>2]=d;if(f-1>>>0>29){break b}F[a+4>>2]=f;b=1}return b|0}function Kc(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;j=+J[b>>2];k=+J[b+4>>2];l=+J[b+8>>2];g=N(j)+N(k)+N(l);a:{if(!(g>1e-6)){j=1;k=0;e=0;break a}g=1/g;k=g*k;j=g*j;e=g*l<0}h=F[a+16>>2];l=+(h|0);g=R(j*l+.5);b:{if(N(g)<2147483648){m=~~g;break b}m=-2147483648}f=m>>31;i=(f^m)-f|0;g=R(k*l+.5);c:{if(N(g)<2147483648){f=~~g;break c}f=-2147483648}b=f>>31;b=h-(i+((f^b)-b|0)|0)|0;i=(b|0)>0?b:0;e=e?0-i|0:i;f=f+(b>>31&((f|0)>0?b:0-b|0))|0;d:{if((m|0)>=0){b=e+h|0;a=F[a+8>>2];e=h+f|0;break d}b=f>>31;b=(b^f)-b|0;a=F[a+8>>2];b=(e|0)<0?b:a-b|0;e=(f|0)<0?i:a-i|0}e:{if(!(b|e)){b=a;break e}if(!((a|0)!=(b|0)|e)){b=a;break e}if(!((a|0)!=(e|0)|b)){b=a;break e}if(!((b|0)<=(h|0)|e)){b=(h<<1)-b|0;a=0;break e}if(!((a|0)!=(e|0)|(b|0)>=(h|0))){b=(h<<1)-b|0;break e}if(!((a|0)!=(b|0)|(e|0)>=(h|0))){b=a;a=(h<<1)-e|0;break e}if(b){a=e;break e}b=0;if((e|0)<=(h|0)){a=e;break e}a=(h<<1)-e|0}F[c>>2]=a;F[d>>2]=b}function ye(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;a:{if(!$c(a,b)){break a}h=a+36|0;g=$[F[F[a>>2]+24>>2]](a)|0;e=F[a+40>>2];d=F[a+36>>2];c=e-d>>2;b:{if(g>>>0>c>>>0){Pb(h,g-c|0);break b}if(c>>>0<=g>>>0){break b}d=d+(g<<2)|0;if((d|0)!=(e|0)){while(1){e=e-4|0;c=F[e>>2];F[e>>2]=0;if(c){$[F[F[c>>2]+4>>2]](c)}if((d|0)!=(e|0)){continue}break}}F[a+40>>2]=d}c=1;if((g|0)<=0){break a}e=0;while(1){c:{c=F[b+20>>2];f=F[b+12>>2];d=F[b+16>>2];if((c|0)>=(f|0)&d>>>0>=I[b+8>>2]|(c|0)>(f|0)){break c}f=G[F[b>>2]+d|0];d=d+1|0;c=d?c:c+1|0;F[b+16>>2]=d;F[b+20>>2]=c;d=$[F[F[a>>2]+48>>2]](a,f)|0;f=e<<2;i=f+F[a+36>>2]|0;c=F[i>>2];F[i>>2]=d;if(c){$[F[F[c>>2]+4>>2]](c)}c=F[F[h>>2]+f>>2];if(!c){break c}if(!(k=c,l=$[F[F[a>>2]+28>>2]](a)|0,m=$[F[F[a>>2]+20>>2]](a,e)|0,j=F[F[c>>2]+8>>2],$[j](k|0,l|0,m|0)|0)){break c}c=1;e=e+1|0;if((g|0)!=(e|0)){continue}break a}break}c=0}return c|0}function Xc(a,b){var c=0,d=0,e=0,f=0,g=0,h=0;g=F[a>>2];c=g+(b>>>3&536870908)|0;F[c>>2]=F[c>>2]|1<>2];e=(b|0)==-1;d=-1;a:{if(e){break a}c=b+1|0;c=(c>>>0)%3|0?c:b-2|0;d=-1;if((c|0)==-1){break a}d=F[F[f>>2]+(c<<2)>>2]}c=F[a+12>>2];h=(d>>>3&536870908)+c|0;F[h>>2]=F[h>>2]|1<>>0)%3|0){e=b-1|0;break e}e=b+2|0;d=-1;if((e|0)==-1){break d}}d=F[F[f>>2]+(e<<2)>>2]}e=(d>>>3&536870908)+c|0;F[e>>2]=F[e>>2]|1<>2]+(b<<2)>>2];if((b|0)==-1){break b}D[a+24|0]=0;a=(b>>>3&536870908)+g|0;F[a>>2]=F[a>>2]|1<>>0)%3|0?a:b-2|0;if((a|0)!=-1){d=F[F[f>>2]+(a<<2)>>2]}a=c+(d>>>3&536870908)|0;F[a>>2]=F[a>>2]|1<>>0)%3|0){b=b-1|0;break g}b=b+2|0;a=-1;if((b|0)==-1){break f}}a=F[F[f>>2]+(b<<2)>>2]}b=1<>>3&536870908)|0;c=F[a>>2];break c}a=c+536870908|0;b=F[c+536870908>>2];c=-2147483648}F[a>>2]=b|c}}function zc(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=M(0),f=M(0),g=M(0),h=M(0),i=M(0),j=0,k=M(0),l=M(0),m=M(0),n=M(0),o=0;a:{if(F[c+28>>2]!=9|G[c+24|0]!=3){break a}a=F[a+4>>2];if(a-2>>>0>28){break a}o=1;j=F[c+80>>2];if(!j){break a}k=M(M(2)/M((1<>2]>>2]+F[c+48>>2]|0;a=F[F[b>>2]>>2]+F[b+48>>2]|0;b=0;while(1){g=M(0);l=M(0);m=M(0);e=M(M(M(F[a>>2])*k)+M(-1));f=M(M(M(F[a+4>>2])*k)+M(-1));i=M(M(M(1)-M(N(e)))-M(N(f)));h=M(Q(M(-i),M(0)));n=M(-h);f=M(f+(f>>8;D[c+10|0]=d>>>16;D[c+11|0]=d>>>24;d=(w(l),y(2));D[c+4|0]=d;D[c+5|0]=d>>>8;D[c+6|0]=d>>>16;D[c+7|0]=d>>>24;d=(w(g),y(2));D[c|0]=d;D[c+1|0]=d>>>8;D[c+2|0]=d>>>16;D[c+3|0]=d>>>24;c=c+12|0;b=b+1|0;if((j|0)!=(b|0)){continue}break}}return o|0}function Md(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;g=Z-16|0;Z=g;a:{if(!Sa(1,g+8|0,b)){break a}d=F[b+8>>2];e=F[b+16>>2];f=d-e|0;h=F[g+12>>2];c=d>>>0>>0;d=F[b+20>>2];i=F[b+12>>2]-(c+d|0)|0;c=F[g+8>>2];if((h|0)==(i|0)&c>>>0>f>>>0|h>>>0>i>>>0){break a}d=d+h|0;f=c+e|0;d=f>>>0>>0?d+1|0:d;F[b+16>>2]=f;F[b+20>>2]=d;if((c|0)<=0){break a}b=F[b>>2]+e|0;F[a+40>>2]=b;e=c-1|0;d=b+e|0;f=G[d|0];b:{if(f>>>0<=63){F[a+44>>2]=e;b=G[d|0]&63;break b}c:{switch((f>>>6|0)-1|0){case 0:if(c>>>0<2){break a}c=c-2|0;F[a+44>>2]=c;b=b+c|0;b=G[b+1|0]<<8&16128|G[b|0];break b;case 1:if(c>>>0<3){break a}c=c-3|0;F[a+44>>2]=c;b=b+c|0;b=G[b+1|0]<<8|G[b+2|0]<<16&4128768|G[b|0];break b;default:break c}}c=c-4|0;F[a+44>>2]=c;b=b+c|0;b=(G[b|0]|G[b+1|0]<<8|(G[b+2|0]<<16|G[b+3|0]<<24))&1073741823}F[a+48>>2]=b+16384;j=b>>>0<4177920}Z=g+16|0;return j}function Tf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;a:{a=Z-32|0;Z=a;e=ya(c);if(e>>>0<2147483632){b:{c:{if(e>>>0>=11){g=(e|15)+1|0;f=ka(g);F[a+24>>2]=g|-2147483648;F[a+16>>2]=f;F[a+20>>2]=e;g=e+f|0;break c}D[a+27|0]=e;f=a+16|0;g=e+f|0;if(!e){break b}}la(f,c,e)}D[g|0]=0;F[a+8>>2]=0;F[a>>2]=0;F[a+4>>2]=0;d:{c=Ya(b,a+16|0);if((c|0)==(b+4|0)){break d}b=F[c+28>>2];e=F[c+32>>2];if((b|0)==(e|0)){break d}b=e-b|0;if(b&3){break d}e=b>>>2|0;f=F[a+4>>2];b=F[a>>2];g=f-b>>2;e:{if(e>>>0>g>>>0){qa(a,e-g|0);b=F[a>>2];f=F[a+4>>2];break e}if(e>>>0>=g>>>0){break e}f=(e<<2)+b|0;F[a+4>>2]=f}if((b|0)!=(f|0)){e=b;b=F[c+28>>2];la(e,b,F[c+32>>2]-b|0);break d}ta();v()}b=F[d>>2];if(b){F[d+4>>2]=b;ja(b)}F[d>>2]=F[a>>2];F[d+4>>2]=F[a+4>>2];F[d+8>>2]=F[a+8>>2];if(D[a+27|0]<0){ja(F[a+16>>2])}Z=a+32|0;break a}za();v()}}function ud(a){a=a|0;var b=0,c=0,d=0,e=0;F[a>>2]=8284;d=F[a+368>>2];F[a+368>>2]=0;if(d){e=d-4|0;b=F[e>>2];if(b){c=(b<<4)+d|0;while(1){c=c-16|0;if((d|0)!=(c|0)){continue}break}}ja(e)}td(a+216|0);b=F[a+196>>2];if(b){F[a+200>>2]=b;ja(b)}b=F[a+184>>2];if(b){F[a+188>>2]=b;ja(b)}b=F[a+172>>2];if(b){F[a+176>>2]=b;ja(b)}b=F[a+160>>2];if(b){F[a+164>>2]=b;ja(b)}c=F[a+144>>2];if(c){while(1){b=F[c>>2];ja(c);c=b;if(b){continue}break}}b=F[a+136>>2];F[a+136>>2]=0;if(b){ja(b)}b=F[a+120>>2];if(b){ja(b)}b=F[a+108>>2];if(b){ja(b)}b=F[a+96>>2];if(b){ja(b)}b=F[a+72>>2];if(b){F[a+76>>2]=b;ja(b)}b=F[a+60>>2];if(b){ja(b)}b=F[a+48>>2];if(b){F[a+52>>2]=b;ja(b)}b=F[a+36>>2];if(b){F[a+40>>2]=b;ja(b)}b=F[a+24>>2];if(b){F[a+28>>2]=b;ja(b)}b=F[a+12>>2];if(b){F[a+16>>2]=b;ja(b)}b=F[a+8>>2];F[a+8>>2]=0;if(b){Za(b)}return a|0}function Vf(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;d=Z-16|0;Z=d;a:{e=ya(c);if(e>>>0<2147483632){b:{c:{if(e>>>0>=11){f=(e|15)+1|0;a=ka(f);F[d+8>>2]=f|-2147483648;F[d>>2]=a;F[d+4>>2]=e;f=a+e|0;break c}D[d+11|0]=e;f=d+e|0;a=d;if(!e){break b}}la(a,c,e)}D[f|0]=0;c=G[d+11|0];e=c<<24>>24;b=F[b+4>>2];a=0;d:{if(!b){break d}a=c;c=(e|0)<0;a=c?F[d+4>>2]:a;f=c?F[d>>2]:d;while(1){c=G[b+27|0];g=c<<24>>24<0;c=g?F[b+20>>2]:c;i=c>>>0>>0;e:{f:{g:{h:{i:{j:{h=i?c:a;if(h){g=g?F[b+16>>2]:b+16|0;j=sa(f,g,h);if(j){break j}if(a>>>0>=c>>>0){break i}break e}if(a>>>0>=c>>>0){break h}break e}if((j|0)<0){break e}}c=sa(g,f,h);if(c){break g}}if(i){break f}a=1;break d}if((c|0)<0){break f}a=1;break d}b=b+4|0}b=F[b>>2];if(b){continue}break}a=0}if((e|0)<0){ja(F[d>>2])}Z=d+16|0;break a}za();v()}return a|0}function lc(a,b){var c=0,d=0;c=F[b+8>>2];F[a+4>>2]=F[b+4>>2];F[a+8>>2]=c;F[a+20>>2]=F[b+20>>2];c=F[b+16>>2];F[a+12>>2]=F[b+12>>2];F[a+16>>2]=c;a:{b:{if((a|0)!=(b|0)){c=F[b+28>>2];if(c){d=F[a+24>>2];if(F[a+32>>2]<<5>>>0>>0){if(d){ja(d);F[a+32>>2]=0;F[a+24>>2]=0;F[a+28>>2]=0;c=F[b+28>>2]}if((c|0)<0){break b}c=(c-1>>>5|0)+1|0;d=ka(c<<2);F[a+32>>2]=c;F[a+28>>2]=0;F[a+24>>2]=d;c=F[b+28>>2]}pa(d,F[b+24>>2],(c-1>>>3&536870908)+4|0);c=F[b+28>>2]}else{c=0}F[a+28>>2]=c;c=F[b+40>>2];if(c){d=F[a+36>>2];if(F[a+44>>2]<<5>>>0>>0){if(d){ja(d);F[a+44>>2]=0;F[a+36>>2]=0;F[a+40>>2]=0;c=F[b+40>>2]}if((c|0)<0){break a}c=(c-1>>>5|0)+1|0;d=ka(c<<2);F[a+44>>2]=c;F[a+40>>2]=0;F[a+36>>2]=d;c=F[b+40>>2]}pa(d,F[b+36>>2],(c-1>>>3&536870908)+4|0);b=F[b+40>>2]}else{b=0}F[a+40>>2]=b}return}na();v()}na();v()}function nc(a){var b=0,c=0,d=0;b=F[a+8>>2];d=F[a>>2];a:{if(G[a+12|0]){b:{c:{d:{e:{if((b|0)==-1){break e}c=b+1|0;b=(c>>>0)%3|0?c:b-2|0;if((b|0)==-1){break e}b=F[F[d+12>>2]+(b<<2)>>2];if((b|0)!=-1){break d}}F[a+8>>2]=-1;break c}c=b+1|0;b=(c>>>0)%3|0?c:b-2|0;F[a+8>>2]=b;if((b|0)!=-1){break b}}c=F[a+4>>2];b=-1;f:{if((c|0)==-1){break f}g:{if((c>>>0)%3|0){c=c-1|0;break g}c=c+2|0;b=-1;if((c|0)==-1){break f}}c=F[F[d+12>>2]+(c<<2)>>2];b=-1;if((c|0)==-1){break f}b=c-1|0;if((c>>>0)%3|0){break f}b=c+2|0}D[a+12|0]=0;F[a+8>>2]=b;return}if((b|0)!=F[a+4>>2]){break a}F[a+8>>2]=-1;return}c=-1;h:{if((b|0)==-1){break h}i:{if((b>>>0)%3|0){b=b-1|0;break i}b=b+2|0;c=-1;if((b|0)==-1){break h}}b=F[F[d+12>>2]+(b<<2)>>2];c=-1;if((b|0)==-1){break h}c=b-1|0;if((b>>>0)%3|0){break h}c=b+2|0}F[a+8>>2]=c}}function Od(a){var b=0,c=0,d=0;b=ka(32);D[b+26|0]=0;c=G[1475]|G[1476]<<8;D[b+24|0]=c;D[b+25|0]=c>>>8;c=G[1471]|G[1472]<<8|(G[1473]<<16|G[1474]<<24);d=G[1467]|G[1468]<<8|(G[1469]<<16|G[1470]<<24);D[b+16|0]=d;D[b+17|0]=d>>>8;D[b+18|0]=d>>>16;D[b+19|0]=d>>>24;D[b+20|0]=c;D[b+21|0]=c>>>8;D[b+22|0]=c>>>16;D[b+23|0]=c>>>24;c=G[1463]|G[1464]<<8|(G[1465]<<16|G[1466]<<24);d=G[1459]|G[1460]<<8|(G[1461]<<16|G[1462]<<24);D[b+8|0]=d;D[b+9|0]=d>>>8;D[b+10|0]=d>>>16;D[b+11|0]=d>>>24;D[b+12|0]=c;D[b+13|0]=c>>>8;D[b+14|0]=c>>>16;D[b+15|0]=c>>>24;c=G[1455]|G[1456]<<8|(G[1457]<<16|G[1458]<<24);d=G[1451]|G[1452]<<8|(G[1453]<<16|G[1454]<<24);D[b|0]=d;D[b+1|0]=d>>>8;D[b+2|0]=d>>>16;D[b+3|0]=d>>>24;D[b+4|0]=c;D[b+5|0]=c>>>8;D[b+6|0]=c>>>16;D[b+7|0]=c>>>24;F[a>>2]=-1;ra(a+4|0,b,26);ja(b)}function Kg(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0;e=F[a+4>>2];d=F[e>>2];a:{b=F[a+12>>2];c=F[b+56>>2]-F[b+52>>2]|0;f=c>>2;b:{if(f>>>0<=F[e+8>>2]-d>>2>>>0){break b}if((c|0)<0){break a}b=F[e+4>>2];c=ka(c);f=c+(f<<2)|0;g=c+(b-d&-4)|0;c=g;if((b|0)!=(d|0)){while(1){c=c-4|0;b=b-4|0;F[c>>2]=F[b>>2];if((b|0)!=(d|0)){continue}break}}F[e+8>>2]=f;F[e+4>>2]=g;F[e>>2]=c;if(!d){break b}ja(d)}e=a+8|0;b=F[a+76>>2];c:{if(b){d=F[b>>2];if((d|0)==F[b+4>>2]){return 1}b=0;while(1){c=od(e,F[(b<<2)+d>>2]);if(!c){break c}f=F[a+76>>2];d=F[f>>2];b=b+1|0;if(b>>>0>2]-d>>2>>>0){continue}break}break c}c=1;a=F[F[a+12>>2]+64>>2];a=F[a+4>>2]-F[a>>2]|0;if(a>>>0<12){break c}a=(a>>2>>>0)/3|0;b=0;while(1){c=od(e,L(b,3));if(!c){break c}b=b+1|0;if((a|0)!=(b|0)){continue}break}}return c|0}na();v()}function Qg(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0;e=F[a+4>>2];d=F[e>>2];a:{b=F[a+12>>2];c=F[b+28>>2]-F[b+24>>2]|0;f=c>>2;b:{if(f>>>0<=F[e+8>>2]-d>>2>>>0){break b}if((c|0)<0){break a}b=F[e+4>>2];c=ka(c);f=c+(f<<2)|0;g=c+(b-d&-4)|0;c=g;if((b|0)!=(d|0)){while(1){c=c-4|0;b=b-4|0;F[c>>2]=F[b>>2];if((b|0)!=(d|0)){continue}break}}F[e+8>>2]=f;F[e+4>>2]=g;F[e>>2]=c;if(!d){break b}ja(d)}e=a+8|0;b=F[a+76>>2];c:{if(b){d=F[b>>2];if((d|0)==F[b+4>>2]){return 1}b=0;while(1){c=pd(e,F[(b<<2)+d>>2]);if(!c){break c}f=F[a+76>>2];d=F[f>>2];b=b+1|0;if(b>>>0>2]-d>>2>>>0){continue}break}break c}c=1;a=F[a+12>>2];a=F[a+4>>2]-F[a>>2]|0;if(a>>>0<12){break c}a=(a>>2>>>0)/3|0;b=0;while(1){c=pd(e,L(b,3));if(!c){break c}b=b+1|0;if((a|0)!=(b|0)){continue}break}}return c|0}na();v()}function pa(a,b,c){var d=0,e=0;a:{if((a|0)==(b|0)){break a}e=a+c|0;if(b-e>>>0<=0-(c<<1)>>>0){return la(a,b,c)}d=(a^b)&3;b:{c:{if(a>>>0>>0){if(d){d=a;break b}if(!(a&3)){d=a;break c}d=a;while(1){if(!c){break a}D[d|0]=G[b|0];b=b+1|0;c=c-1|0;d=d+1|0;if(d&3){continue}break}break c}d:{if(d){break d}if(e&3){while(1){if(!c){break a}c=c-1|0;d=c+a|0;D[d|0]=G[b+c|0];if(d&3){continue}break}}if(c>>>0<=3){break d}while(1){c=c-4|0;F[c+a>>2]=F[b+c>>2];if(c>>>0>3){continue}break}}if(!c){break a}while(1){c=c-1|0;D[c+a|0]=G[b+c|0];if(c){continue}break}break a}if(c>>>0<=3){break b}while(1){F[d>>2]=F[b>>2];b=b+4|0;d=d+4|0;c=c-4|0;if(c>>>0>3){continue}break}}if(!c){break a}while(1){D[d|0]=G[b|0];d=d+1|0;b=b+1|0;c=c-1|0;if(c){continue}break}}return a}function Pb(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;d=F[a+8>>2];c=F[a+4>>2];if(d-c>>2>>>0>=b>>>0){if(b){b=b<<2;c=ma(c,0,b)+b|0}F[a+4>>2]=c;return}a:{b:{c:{g=F[a>>2];f=c-g>>2;e=f+b|0;if(e>>>0<1073741824){d=d-g|0;h=d>>>1|0;e=d>>>0>=2147483644?1073741823:e>>>0>>0?h:e;if(e){if(e>>>0>=1073741824){break c}i=ka(e<<2)}d=(f<<2)+i|0;f=b<<2;b=ma(d,0,f);f=b+f|0;e=(e<<2)+i|0;if((c|0)==(g|0)){break b}while(1){c=c-4|0;b=F[c>>2];F[c>>2]=0;d=d-4|0;F[d>>2]=b;if((c|0)!=(g|0)){continue}break}F[a+8>>2]=e;b=F[a+4>>2];F[a+4>>2]=f;c=F[a>>2];F[a>>2]=d;if((b|0)==(c|0)){break a}while(1){b=b-4|0;a=F[b>>2];F[b>>2]=0;if(a){$[F[F[a>>2]+4>>2]](a)}if((b|0)!=(c|0)){continue}break}break a}na();v()}oa();v()}F[a+8>>2]=e;F[a+4>>2]=f;F[a>>2]=b}if(c){ja(c)}}function Yd(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;e=F[b+8>>2];d=F[b+12>>2];g=d;d=F[b+20>>2];k=d;h=F[b+16>>2];c=h+4|0;d=c>>>0<4?d+1|0:d;i=c;a:{if(c>>>0>e>>>0&(d|0)>=(g|0)|(d|0)>(g|0)){break a}j=F[b>>2];c=j+h|0;f=G[c|0]|G[c+1|0]<<8|(G[c+2|0]<<16|G[c+3|0]<<24);F[b+16>>2]=i;F[b+20>>2]=d;c=e;e=k;d=h+8|0;e=d>>>0<8?e+1|0:e;if(c>>>0>>0&(e|0)>=(g|0)|(e|0)>(g|0)){break a}c=i+j|0;c=G[c|0]|G[c+1|0]<<8|(G[c+2|0]<<16|G[c+3|0]<<24);F[b+16>>2]=d;F[b+20>>2]=e;if((c|0)<(f|0)){break a}F[a+16>>2]=c;F[a+12>>2]=f;d=(c>>31)-((f>>31)+(c>>>0>>0)|0)|0;e=c-f|0;if(!d&e>>>0>2147483646|d){break a}d=e+1|0;F[a+20>>2]=d;e=d>>>1|0;F[a+24>>2]=e;F[a+28>>2]=0-e;if(!(d&1)){F[a+24>>2]=e-1}l=Aa(a+112|0,b)}return l|0}function Wc(a,b){var c=0,d=0,e=0,f=0;d=-1;e=-1;f=-1;a:{b:{if((b|0)==-1){break b}e=F[F[F[a+4>>2]+12>>2]+(b<<2)>>2];c=b+1|0;c=(c>>>0)%3|0?c:b-2|0;if((c|0)>=0){f=(c>>>0)/3|0;f=F[(F[F[a>>2]+96>>2]+L(f,12)|0)+(c-L(f,3)<<2)>>2]}c:{if((e|0)==-1){break c}c=((e>>>0)%3|0?-1:2)+e|0;if((c|0)<0){break c}d=(c>>>0)/3|0;d=F[(F[F[a>>2]+96>>2]+L(d,12)|0)+(c-L(d,3)<<2)>>2]}c=-1;if((d|0)!=(f|0)){break a}f=-1;d:{b=((b>>>0)%3|0?-1:2)+b|0;if((b|0)>=0){d=(b>>>0)/3|0;d=F[(F[F[a>>2]+96>>2]+L(d,12)|0)+(b-L(d,3)<<2)>>2];if((e|0)==-1){break b}break d}d=-1;if((e|0)!=-1){break d}break b}b=e+1|0;b=(b>>>0)%3|0?b:e-2|0;if((b|0)<0){break b}c=F[F[a>>2]+96>>2];a=(b>>>0)/3|0;f=F[(c+L(a,12)|0)+(b-L(a,3)<<2)>>2]}c=(d|0)!=(f|0)?-1:e}return c}function Fc(a,b){var c=0,d=0,e=0;c=Z+-64|0;Z=c;d=F[a>>2];e=F[d-4>>2];d=F[d-8>>2];F[c+32>>2]=0;F[c+36>>2]=0;F[c+40>>2]=0;F[c+44>>2]=0;F[c+48>>2]=0;F[c+52>>2]=0;D[c+55|0]=0;D[c+56|0]=0;D[c+57|0]=0;D[c+58|0]=0;D[c+59|0]=0;D[c+60|0]=0;D[c+61|0]=0;D[c+62|0]=0;F[c+24>>2]=0;F[c+28>>2]=0;F[c+20>>2]=0;F[c+16>>2]=11020;F[c+12>>2]=a;F[c+8>>2]=b;a=a+d|0;d=0;a:{if(La(e,b,0)){F[c+56>>2]=1;$[F[F[e>>2]+20>>2]](e,c+8|0,a,a,1,0);d=F[c+32>>2]==1?a:0;break a}$[F[F[e>>2]+24>>2]](e,c+8|0,a,1,0);b:{switch(F[c+44>>2]){case 0:d=F[c+48>>2]==1?F[c+36>>2]==1?F[c+40>>2]==1?F[c+28>>2]:0:0:0;break a;case 1:break b;default:break a}}if(F[c+32>>2]!=1){if(F[c+48>>2]|F[c+36>>2]!=1|F[c+40>>2]!=1){break a}}d=F[c+24>>2]}Z=c- -64|0;return d}function ma(a,b,c){var d=0,e=0,f=0,g=0;a:{if(!c){break a}D[a|0]=b;d=a+c|0;D[d-1|0]=b;if(c>>>0<3){break a}D[a+2|0]=b;D[a+1|0]=b;D[d-3|0]=b;D[d-2|0]=b;if(c>>>0<7){break a}D[a+3|0]=b;D[d-4|0]=b;if(c>>>0<9){break a}d=0-a&3;e=d+a|0;b=L(b&255,16843009);F[e>>2]=b;d=c-d&-4;c=d+e|0;F[c-4>>2]=b;if(d>>>0<9){break a}F[e+8>>2]=b;F[e+4>>2]=b;F[c-8>>2]=b;F[c-12>>2]=b;if(d>>>0<25){break a}F[e+24>>2]=b;F[e+20>>2]=b;F[e+16>>2]=b;F[e+12>>2]=b;F[c-16>>2]=b;F[c-20>>2]=b;F[c-24>>2]=b;F[c-28>>2]=b;g=e&4|24;c=d-g|0;if(c>>>0<32){break a}d=ki(b,0,1,1);f=_;b=e+g|0;while(1){F[b+24>>2]=d;F[b+28>>2]=f;F[b+16>>2]=d;F[b+20>>2]=f;F[b+8>>2]=d;F[b+12>>2]=f;F[b>>2]=d;F[b+4>>2]=f;b=b+32|0;c=c-32|0;if(c>>>0>31){continue}break}}return a}function ie(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;d=F[b+8>>2];e=F[b+12>>2];g=e;e=F[b+20>>2];k=e;h=F[b+16>>2];c=h+4|0;e=c>>>0<4?e+1|0:e;i=c;a:{if(c>>>0>d>>>0&(e|0)>=(g|0)|(e|0)>(g|0)){break a}j=F[b>>2];c=j+h|0;f=G[c|0]|G[c+1|0]<<8|(G[c+2|0]<<16|G[c+3|0]<<24);F[b+16>>2]=i;F[b+20>>2]=e;c=d;d=k;e=h+8|0;d=e>>>0<8?d+1|0:d;if(c>>>0>>0&(d|0)>=(g|0)|(d|0)>(g|0)){break a}c=i+j|0;c=G[c|0]|G[c+1|0]<<8|(G[c+2|0]<<16|G[c+3|0]<<24);F[b+16>>2]=e;F[b+20>>2]=d;if((c|0)<(f|0)){break a}F[a+16>>2]=c;F[a+12>>2]=f;d=(c>>31)-((f>>31)+(c>>>0>>0)|0)|0;b=c-f|0;if(!d&b>>>0>2147483646|d){break a}l=1;d=b+1|0;F[a+20>>2]=d;b=d>>>1|0;F[a+24>>2]=b;F[a+28>>2]=0-b;if(d&1){break a}F[a+24>>2]=b-1}return l|0}function Uc(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;d=Z-16|0;Z=d;f=F[a+24>>2];k=F[a+28>>2];a:{if((f|0)!=(k|0)){while(1){F[d+8>>2]=0;F[d>>2]=0;F[d+4>>2]=0;a=Sc(F[f>>2],b,d);g=G[d+11|0];h=g<<24>>24;i=3;b:{c:{d:{if(!a){break d}i=0;a=G[c+11|0];e=a<<24>>24;j=(h|0)<0?F[d+4>>2]:g;if((j|0)!=(((e|0)<0?F[c+4>>2]:a)|0)){break d}a=(e|0)<0?F[c>>2]:c;e=(h|0)<0;e:{if(!e){e=d;if(!h){break e}while(1){if(G[e|0]!=G[a|0]){break d}a=a+1|0;e=e+1|0;g=g-1|0;if(g){continue}break}break e}if(!j){break e}if(sa(e?F[d>>2]:d,a,j)){break c}}l=F[f>>2];i=1}if((h|0)>=0){break b}}ja(F[d>>2])}f:{switch(i|0){case 0:case 3:break f;default:break a}}f=f+4|0;if((k|0)!=(f|0)){continue}break}}l=0}Z=d+16|0;return l}function gb(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0;f=c-b|0;h=f>>2;d=F[a+8>>2];e=F[a>>2];if(h>>>0<=d-e>>2>>>0){d=F[a+4>>2];g=d-e|0;f=g+b|0;i=g>>2;g=i>>>0>>0?f:c;if((g|0)!=(b|0)){while(1){F[e>>2]=F[b>>2];e=e+4|0;b=b+4|0;if((g|0)!=(b|0)){continue}break}}if(h>>>0>i>>>0){if((c|0)!=(g|0)){while(1){F[d>>2]=F[f>>2];d=d+4|0;f=f+4|0;if((f|0)!=(c|0)){continue}break}}F[a+4>>2]=d;return}F[a+4>>2]=e;return}if(e){F[a+4>>2]=e;ja(e);F[a+8>>2]=0;F[a>>2]=0;F[a+4>>2]=0;d=0}a:{if((f|0)<0){break a}e=d>>>1|0;d=d>>>0>=2147483644?1073741823:e>>>0>h>>>0?e:h;if(d>>>0>=1073741824){break a}e=d<<2;d=ka(e);F[a>>2]=d;F[a+8>>2]=d+e;if((b|0)!=(c|0)){c=b;b=(f-4&-4)+4|0;d=la(d,c,b)+b|0}F[a+4>>2]=d;return}na();v()}function Ea(a,b,c){var d=0,e=0,f=0;e=Z-16|0;Z=e;F[a+4>>2]=0;a:{b:{if(!b){break b}f=F[a+8>>2];d=f<<5;c:{if(d>>>0>=b>>>0){F[a+4>>2]=b;break c}F[e+8>>2]=0;F[e>>2]=0;F[e+4>>2]=0;if((b|0)<0){break a}if(d>>>0<=1073741822){f=f<<6;d=b+31&-32;d=d>>>0>>0?f:d}else{d=2147483647}$a(e,d);f=F[a>>2];F[a>>2]=F[e>>2];F[e>>2]=f;d=F[a+4>>2];F[a+4>>2]=b;F[e+4>>2]=d;d=F[a+8>>2];F[a+8>>2]=F[e+8>>2];F[e+8>>2]=d;if(!f){break c}ja(f)}d=b>>>5|0;a=F[a>>2];if(G[c|0]){if(b>>>0>=32){ma(a,255,d<<2)}if((b&-32)==(b|0)){break b}a=a+(d<<2)|0;F[a>>2]=F[a>>2]|-1>>>32-(b&31);break b}if(b>>>0>=32){ma(a,0,d<<2)}if((b&-32)==(b|0)){break b}a=a+(d<<2)|0;F[a>>2]=F[a>>2]&(-1>>>32-(b&31)^-1)}Z=e+16|0;return}na();v()}function If(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;e=Z-32|0;Z=e;a:{b:{f=ya(c);if(f>>>0<2147483632){c:{d:{if(f>>>0>=11){a=(f|15)+1|0;g=ka(a);F[e+24>>2]=a|-2147483648;F[e+16>>2]=g;F[e+20>>2]=f;a=f+g|0;break d}D[e+27|0]=f;g=e+16|0;a=f+g|0;if(!f){break c}}la(g,c,f)}D[a|0]=0;c=ya(d);if(c>>>0>=2147483632){break b}e:{f:{if(c>>>0>=11){f=(c|15)+1|0;a=ka(f);F[e+8>>2]=f|-2147483648;F[e>>2]=a;F[e+4>>2]=c;g=a+c|0;break f}D[e+11|0]=c;g=c+e|0;a=e;if(!c){break e}}la(a,d,c)}D[g|0]=0;c=F[b+4>>2];a=-1;g:{if(!c){break g}c=Uc(c,e+16|0,e);a=-1;if(!c){break g}a=Pc(b,F[c+24>>2])}if(D[e+11|0]<0){ja(F[e>>2])}if(D[e+27|0]<0){ja(F[e+16>>2])}Z=e+32|0;break a}za();v()}za();v()}return a|0}function ne(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;h=F[c+12>>2];f=h;e=F[c+20>>2];j=F[c+8>>2];g=F[c+16>>2];a:{if((f|0)<=(e|0)&j>>>0<=g>>>0|(e|0)>(f|0)){break a}k=F[c>>2];i=D[k+g|0];d=e;f=g+1|0;d=f?d:d+1|0;F[c+16>>2]=f;F[c+20>>2]=d;if((i-7&255)>>>0<247){break a}b:{if((i|0)==-2){break b}if((d|0)>=(h|0)&f>>>0>=j>>>0|(d|0)>(h|0)){break a}d=D[f+k|0];g=g+2|0;e=g>>>0<2?e+1|0:e;F[c+16>>2]=g;F[c+20>>2]=e;if((d-4&255)>>>0<251){break a}e=$[F[F[a>>2]+40>>2]](a,i,d)|0;d=F[a+20>>2];F[a+20>>2]=e;if(!d){break b}$[F[F[d>>2]+4>>2]](d)}d=F[a+20>>2];if(d){if(!($[F[F[a>>2]+28>>2]](a,d)|0)){break a}}l=$[F[F[a>>2]+36>>2]](a,b,c)|0}return l|0}function se(a,b){a=a|0;b=b|0;a=0;a:{switch(b|0){case 0:a=ka(20);F[a+12>>2]=-1;F[a+16>>2]=0;F[a+4>>2]=0;F[a+8>>2]=0;F[a>>2]=1920;return a|0;case 1:a=ka(24);F[a+12>>2]=-1;F[a+16>>2]=0;F[a+4>>2]=0;F[a+8>>2]=0;F[a>>2]=1920;F[a+20>>2]=0;F[a>>2]=2136;return a|0;case 2:a=ka(48);F[a+12>>2]=-1;F[a+16>>2]=0;F[a+4>>2]=0;F[a+8>>2]=0;F[a>>2]=1920;F[a+20>>2]=0;F[a>>2]=2136;F[a+24>>2]=1624;F[a>>2]=7948;F[a+32>>2]=0;F[a+36>>2]=0;F[a+28>>2]=-1;F[a+40>>2]=0;F[a+44>>2]=0;return a|0;case 3:a=ka(32);F[a+12>>2]=-1;F[a+16>>2]=0;F[a+4>>2]=0;F[a+8>>2]=0;F[a>>2]=1920;F[a+20>>2]=0;F[a>>2]=2136;F[a+24>>2]=1032;F[a>>2]=5812;F[a+28>>2]=-1;break;default:break a}}return a|0}function Be(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;f=F[b>>2];b=F[b+4>>2];d=F[F[a+8>>2]+40>>2];j=d;m=ka((d|0)<0?-1:d);i=b-f|0;e=1;a:{if((i|0)<4){break a}b=0;g=F[c+16>>2];k=d;f=g+d|0;d=0+F[c+20>>2]|0;d=f>>>0>>0?d+1|0:d;h=F[c+12>>2];e=0;if(I[c+8>>2]>>0&(d|0)>=(h|0)|(d|0)>(h|0)){break a}e=i>>2;i=(e|0)<=1?1:e;while(1){b:{g=la(m,F[c>>2]+g|0,j);F[c+16>>2]=f;F[c+20>>2]=d;la(F[F[F[a+8>>2]+64>>2]>>2]+b|0,g,j);l=l+1|0;if((i|0)==(l|0)){break b}b=b+j|0;d=n+F[c+20>>2]|0;g=F[c+16>>2];f=k+g|0;d=f>>>0>>0?d+1|0:d;h=F[c+12>>2];if((d|0)<=(h|0)&I[c+8>>2]>=f>>>0|(d|0)<(h|0)){continue}}break}e=(e|0)<=(l|0)}ja(m);return e|0}function mh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0;F[b>>2]=1;f=b+8|0;c=F[b+8>>2];d=F[b+12>>2]-c|0;if(d>>>0<=4294967291){Db(f,d+4|0);c=F[f>>2]}c=c+d|0;d=F[a+4>>2];D[c|0]=d;D[c+1|0]=d>>>8;D[c+2|0]=d>>>16;D[c+3|0]=d>>>24;c=F[a+8>>2];if((c|0)!=F[a+12>>2]){d=0;while(1){g=(d<<2)+c|0;c=F[b+8>>2];e=F[b+12>>2]-c|0;if(e>>>0<=4294967291){Db(f,e+4|0);c=F[f>>2]}c=c+e|0;e=F[g>>2];D[c|0]=e;D[c+1|0]=e>>>8;D[c+2|0]=e>>>16;D[c+3|0]=e>>>24;d=d+1|0;c=F[a+8>>2];if(d>>>0>2]-c>>2>>>0){continue}break}}c=F[b+12>>2];b=F[b+8>>2];c=c-b|0;if(c>>>0<=4294967291){Db(f,c+4|0);b=F[f>>2]}b=b+c|0;a=F[a+20>>2];D[b|0]=a;D[b+1|0]=a>>>8;D[b+2|0]=a>>>16;D[b+3|0]=a>>>24}function mb(a,b){var c=0,d=0,e=0,f=0,g=0,h=0;c=F[a+4>>2];if((c|0)!=F[a+8>>2]){e=F[b+4>>2];F[c>>2]=F[b>>2];F[c+4>>2]=e;F[c+8>>2]=F[b+8>>2];F[a+4>>2]=c+12;return}a:{g=F[a>>2];d=(c-g|0)/12|0;e=d+1|0;if(e>>>0<357913942){f=d<<1;f=d>>>0>=178956970?357913941:e>>>0>>0?f:e;if(f){if(f>>>0>=357913942){break a}e=ka(L(f,12))}else{e=0}d=e+L(d,12)|0;h=F[b+4>>2];F[d>>2]=F[b>>2];F[d+4>>2]=h;F[d+8>>2]=F[b+8>>2];b=d+12|0;if((c|0)!=(g|0)){while(1){c=c-12|0;h=F[c+4>>2];d=d-12|0;F[d>>2]=F[c>>2];F[d+4>>2]=h;F[d+8>>2]=F[c+8>>2];if((c|0)!=(g|0)){continue}break}c=F[a>>2]}F[a+8>>2]=e+L(f,12);F[a+4>>2]=b;F[a>>2]=d;if(c){ja(c)}return}na();v()}oa();v()}function Bf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;a:{if(I[b+80>>2]>65535){break a}a=F[b+100>>2];b=F[b+96>>2];e=(a-b|0)/12|0;f=L(e,6);g=(f|0)==(c|0);if((a|0)==(b|0)|(c|0)!=(f|0)){break a}g=1;c=e>>>0<=1?1:e;i=c&1;a=0;if(e>>>0>=2){j=c&-2;c=0;while(1){f=L(a,6);h=f+d|0;e=b+L(a,12)|0;E[h>>1]=F[e>>2];E[(f|2)+d>>1]=F[e+4>>2];E[h+4>>1]=F[e+8>>2];f=a|1;e=L(f,6)+d|0;f=b+L(f,12)|0;E[e>>1]=F[f>>2];E[e+2>>1]=F[f+4>>2];E[e+4>>1]=F[f+8>>2];a=a+2|0;c=c+2|0;if((j|0)!=(c|0)){continue}break}}if(!i){break a}c=L(a,6)+d|0;a=b+L(a,12)|0;E[c>>1]=F[a>>2];E[c+2>>1]=F[a+4>>2];E[c+4>>1]=F[a+8>>2]}return g|0}function Gh(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;f=Z-32|0;Z=f;h=e>>>0>1073741823?-1:e<<2;h=ma(ka(h),0,h);g=F[b>>2];i=F[b+4>>2];k=F[h+4>>2];F[f+16>>2]=F[h>>2];F[f+20>>2]=k;F[f+8>>2]=g;F[f+12>>2]=i;i=a+8|0;Jb(f+24|0,i,f+16|0,f+8|0);F[c>>2]=F[f+24>>2];F[c+4>>2]=F[f+28>>2];if((d|0)>(e|0)){k=0-e<<2;a=e;while(1){g=a<<2;j=g+b|0;m=F[j>>2];j=F[j+4>>2];g=c+g|0;l=g+k|0;n=F[l+4>>2];F[f+16>>2]=F[l>>2];F[f+20>>2]=n;F[f+8>>2]=m;F[f+12>>2]=j;Jb(f+24|0,i,f+16|0,f+8|0);F[g>>2]=F[f+24>>2];F[g+4>>2]=F[f+28>>2];a=a+e|0;if((d|0)>(a|0)){continue}break}}ja(h);Z=f+32|0;return 1}function Sf(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;a=Z-32|0;Z=a;F[a+24>>2]=0;F[a+28>>2]=0;a:{d=ya(c);if(d>>>0<2147483632){b:{c:{if(d>>>0>=11){e=(d|15)+1|0;f=ka(e);F[a+16>>2]=e|-2147483648;F[a+8>>2]=f;F[a+12>>2]=d;e=d+f|0;break c}D[a+19|0]=d;f=a+8|0;e=f+d|0;if(!d){break b}}la(f,c,d)}D[e|0]=0;c=b+4|0;b=Ya(b,a+8|0);d:{if((c|0)==(b|0)){break d}c=F[b+32>>2];b=F[b+28>>2];if((c-b|0)!=8){break d}c=G[b+4|0]|G[b+5|0]<<8|(G[b+6|0]<<16|G[b+7|0]<<24);F[a+24>>2]=G[b|0]|G[b+1|0]<<8|(G[b+2|0]<<16|G[b+3|0]<<24);F[a+28>>2]=c}g=K[a+24>>3];if(D[a+19|0]<0){ja(F[a+8>>2])}Z=a+32|0;break a}za();v()}return+g}function Gc(a,b,c,d,e,f,g){var h=0,i=0,j=0;h=Z-16|0;Z=h;if((b^-1)+2147483631>>>0>=c>>>0){if(G[a+11|0]>>>7|0){i=F[a>>2]}else{i=a}if(b>>>0<1073741799){F[h+12>>2]=b<<1;F[h>>2]=b+c;c=Z-16|0;Z=c;Z=c+16|0;c=h+12|0;c=F[(I[h>>2]>2]?c:h)>>2];if(c>>>0>=11){j=c+16&-16;c=j-1|0;c=(c|0)==11?j:c}else{c=10}c=c+1|0}else{c=2147483631}sb(h,c);c=F[h>>2];if(f){db(c,g,f)}g=d-e|0;if((d|0)!=(e|0)){db(c+f|0,e+i|0,g)}if((b|0)!=10){ja(i)}F[a>>2]=c;F[a+8>>2]=F[a+8>>2]&-2147483648|F[h+4>>2]&2147483647;F[a+8>>2]=F[a+8>>2]|-2147483648;b=a;a=f+g|0;F[b+4>>2]=a;D[h+12|0]=0;D[a+c|0]=G[h+12|0];Z=h+16|0;return}za();v()}function _c(a,b,c){var d=0,e=0,f=0,g=0;a:{f=b>>>0<1431655766&(b|c)>=0;b:{if(!f){break b}b=L(b,3);Xb(a,b,10224);Xb(a+12|0,b,10228);d=F[a+24>>2];c:{if(F[a+32>>2]-d>>2>>>0>=c>>>0){break c}if(c>>>0>=1073741824){break a}b=F[a+28>>2];e=c<<2;c=ka(e);e=c+e|0;g=c+(b-d&-4)|0;c=g;if((b|0)!=(d|0)){while(1){c=c-4|0;b=b-4|0;F[c>>2]=F[b>>2];if((b|0)!=(d|0)){continue}break}}F[a+32>>2]=e;F[a+28>>2]=g;F[a+24>>2]=c;if(!d){break c}ja(d)}F[a+80>>2]=0;F[a+84>>2]=0;b=F[a+76>>2];F[a+76>>2]=0;if(b){ja(b)}F[a+68>>2]=0;F[a+72>>2]=0;b=a- -64|0;a=F[b>>2];F[b>>2]=0;if(!a){break b}ja(a)}return f}na();v()}function yd(a){var b=0,c=0,d=0,e=0,f=0;f=1;c=F[a+140>>2];a:{if((c|0)<=0){break a}b=c<<4;d=ka(c>>>0>268435455?-1:b|4);F[d>>2]=c;d=d+4|0;c=d+b|0;b=d;while(1){F[b>>2]=0;F[b+4>>2]=0;D[b+5|0]=0;D[b+6|0]=0;D[b+7|0]=0;D[b+8|0]=0;D[b+9|0]=0;D[b+10|0]=0;D[b+11|0]=0;D[b+12|0]=0;b=b+16|0;if((c|0)!=(b|0)){continue}break}e=F[a+136>>2];F[a+136>>2]=d;if(e){c=e-4|0;d=F[c>>2];if(d){b=(d<<4)+e|0;while(1){b=b-16|0;if((e|0)!=(b|0)){continue}break}}ja(c)}b=0;if(F[a+140>>2]<=0){break a}while(1){f=Aa(F[a+136>>2]+(b<<4)|0,a);if(!f){break a}b=b+1|0;if((b|0)>2]){continue}break}}return f} function Sd(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;d=F[b+8>>2];c=F[b+12>>2];g=c;c=F[b+20>>2];i=c;h=F[b+16>>2];f=h+4|0;c=f>>>0<4?c+1|0:c;a:{if(d>>>0>>0&(c|0)>=(g|0)|(c|0)>(g|0)){break a}e=h+F[b>>2]|0;e=G[e|0]|G[e+1|0]<<8|(G[e+2|0]<<16|G[e+3|0]<<24);F[b+16>>2]=f;F[b+20>>2]=c;f=d;d=i;c=h+8|0;d=c>>>0<8?d+1|0:d;if(c>>>0>f>>>0&(d|0)>=(g|0)|(d|0)>(g|0)){break a}F[b+16>>2]=c;F[b+20>>2]=d;if(!(e&1)){break a}d=O(e)^31;if(d-1>>>0>28){break a}F[a+8>>2]=d+1;d=-2<>2]=c;F[a+12>>2]=d^-1;F[a+24>>2]=c>>1;J[a+20>>2]=M(2)/M(c|0);j=Aa(a+96|0,b)}return j|0}function bc(a,b){var c=0;c=F[b+4>>2];F[a>>2]=F[b>>2];F[a+4>>2]=c;c=F[b+60>>2];F[a+56>>2]=F[b+56>>2];F[a+60>>2]=c;c=F[b+52>>2];F[a+48>>2]=F[b+48>>2];F[a+52>>2]=c;c=F[b+44>>2];F[a+40>>2]=F[b+40>>2];F[a+44>>2]=c;c=F[b+36>>2];F[a+32>>2]=F[b+32>>2];F[a+36>>2]=c;c=F[b+28>>2];F[a+24>>2]=F[b+24>>2];F[a+28>>2]=c;c=F[b+20>>2];F[a+16>>2]=F[b+16>>2];F[a+20>>2]=c;c=F[b+12>>2];F[a+8>>2]=F[b+8>>2];F[a+12>>2]=c;F[a+88>>2]=0;F[a+64>>2]=0;F[a+68>>2]=0;F[a+72>>2]=0;F[a+76>>2]=0;D[a+77|0]=0;D[a+78|0]=0;D[a+79|0]=0;D[a+80|0]=0;D[a+81|0]=0;D[a+82|0]=0;D[a+83|0]=0;D[a+84|0]=0;return a}function ac(a,b){var c=0,d=0,e=0,f=0,g=0;a:{if(F[a+64>>2]){break a}c=ka(32);F[c+16>>2]=0;F[c+20>>2]=0;F[c+8>>2]=0;F[c>>2]=0;F[c+4>>2]=0;F[c+24>>2]=0;F[c+28>>2]=0;d=F[a+64>>2];F[a+64>>2]=c;if(!d){break a}c=F[d>>2];if(c){F[d+4>>2]=c;ja(c)}ja(d)}d=F[a+64>>2];c=F[a+28>>2]-1|0;if(c>>>0<=10){c=F[(c<<2)+10148>>2]}else{c=-1}c=L(c,G[a+24|0]);f=c>>31;g=md(d,0,ki(c,f,b,0),_);if(g){d=F[a+64>>2];F[a>>2]=d;e=F[d+20>>2];F[a+8>>2]=F[d+16>>2];F[a+12>>2]=e;e=F[d+24>>2];d=F[d+28>>2];F[a+48>>2]=0;F[a+52>>2]=0;F[a+40>>2]=c;F[a+44>>2]=f;F[a+16>>2]=e;F[a+20>>2]=d;F[a+80>>2]=b}return g}function Af(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;a=F[b+100>>2];b=F[b+96>>2];h=a-b|0;a:{if((h|0)!=(c|0)|(a|0)==(b|0)){break a}g=(c|0)/12|0;e=g>>>0<=1?1:g;j=e&1;a=0;if(g>>>0>=2){k=e&-2;g=0;while(1){e=L(a,12);i=e+d|0;f=b+e|0;F[i>>2]=F[f>>2];F[(e|4)+d>>2]=F[f+4>>2];F[i+8>>2]=F[f+8>>2];f=L(a|1,12);e=f+d|0;f=b+f|0;F[e>>2]=F[f>>2];F[e+4>>2]=F[f+4>>2];F[e+8>>2]=F[f+8>>2];a=a+2|0;g=g+2|0;if((k|0)!=(g|0)){continue}break}}if(!j){break a}e=d;d=L(a,12);a=e+d|0;b=b+d|0;F[a>>2]=F[b>>2];F[a+4>>2]=F[b+4>>2];F[a+8>>2]=F[b+8>>2]}return(c|0)==(h|0)|0}function Kh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;c=F[b+8>>2];d=F[b+12>>2];g=d;d=F[b+20>>2];i=d;h=F[b+16>>2];f=h+4|0;d=f>>>0<4?d+1|0:d;a:{if(c>>>0>>0&(d|0)>=(g|0)|(d|0)>(g|0)){break a}e=h+F[b>>2]|0;e=G[e|0]|G[e+1|0]<<8|(G[e+2|0]<<16|G[e+3|0]<<24);F[b+16>>2]=f;F[b+20>>2]=d;f=c;c=i;d=h+8|0;c=d>>>0<8?c+1|0:c;if(d>>>0>f>>>0&(c|0)>=(g|0)|(c|0)>(g|0)){break a}F[b+16>>2]=d;F[b+20>>2]=c;if(!(e&1)){break a}b=O(e)^31;if(b-1>>>0>28){break a}j=1;F[a+8>>2]=b+1;b=-2<>2]=c;F[a+12>>2]=b^-1;F[a+24>>2]=c>>1;J[a+20>>2]=M(2)/M(c|0)}return j|0}function Ya(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;f=a+4|0;a=F[a+4>>2];a:{b:{if(!a){break b}d=G[b+11|0];c=d<<24>>24<0;g=c?F[b>>2]:b;d=c?F[b+4>>2]:d;b=f;while(1){e=G[a+27|0];c=e<<24>>24<0;e=c?F[a+20>>2]:e;h=e>>>0>d>>>0;i=h?d:e;c:{if(i){c=sa(c?F[a+16>>2]:a+16|0,g,i);if(c){break c}}c=d>>>0>e>>>0?-1:h}c=(c|0)<0;b=c?b:a;a=F[(c?a+4|0:a)>>2];if(a){continue}break}if((b|0)==(f|0)){break b}c=G[b+27|0];a=c<<24>>24<0;d:{c=a?F[b+20>>2]:c;e=c>>>0>>0?c:d;if(e){a=sa(g,a?F[b+16>>2]:b+16|0,e);if(a){break d}}if(c>>>0>d>>>0){break b}break a}if((a|0)>=0){break a}}b=f}return b}function Oe(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;if(La(a,F[b+8>>2],e)){if(!(F[b+28>>2]==1|F[b+4>>2]!=(c|0))){F[b+28>>2]=d}return}a:{if(La(a,F[b>>2],e)){if(!(F[b+16>>2]!=(c|0)&F[b+20>>2]!=(c|0))){if((d|0)!=1){break a}F[b+32>>2]=1;return}F[b+32>>2]=d;b:{if(F[b+44>>2]==4){break b}E[b+52>>1]=0;a=F[a+8>>2];$[F[F[a>>2]+20>>2]](a,b,c,c,1,e);if(G[b+53|0]){F[b+44>>2]=3;if(!G[b+52|0]){break b}break a}F[b+44>>2]=4}F[b+20>>2]=c;F[b+40>>2]=F[b+40>>2]+1;if(F[b+36>>2]!=1|F[b+24>>2]!=2){break a}D[b+54|0]=1;return}a=F[a+8>>2];$[F[F[a>>2]+24>>2]](a,b,c,d,e)}}function Ig(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0;f=ka(64);c=ka(12);F[c+8>>2]=F[F[a+4>>2]+80>>2];F[c>>2]=9968;F[c+4>>2]=0;f=yc(f,c);a:{b:{if((b|0)<0){c=f;break b}h=a+8|0;c=F[a+12>>2];e=F[a+8>>2];g=c-e>>2;c:{if((g|0)>(b|0)){break c}d=b+1|0;if(b>>>0>=g>>>0){Pb(h,d-g|0);break c}if(d>>>0>=g>>>0){break c}e=e+(d<<2)|0;if((e|0)!=(c|0)){while(1){c=c-4|0;d=F[c>>2];F[c>>2]=0;if(d){$[F[F[d>>2]+4>>2]](d)}if((c|0)!=(e|0)){continue}break}}F[a+12>>2]=e}a=F[h>>2]+(b<<2)|0;c=F[a>>2];F[a>>2]=f;if(!c){break a}}$[F[F[c>>2]+4>>2]](c)}return(b^-1)>>>31|0}function we(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0;c=F[a+60>>2];a:{if(!c){break a}F[c+4>>2]=a+48;if(!($[F[F[c>>2]+12>>2]](c)|0)){break a}b:{c=$[F[F[a>>2]+24>>2]](a)|0;if((c|0)<=0){break b}while(1){c:{f=F[($[F[F[a>>2]+28>>2]](a)|0)+4>>2];g=$[F[F[a>>2]+20>>2]](a,d)|0;e=F[a+60>>2];if(!($[F[F[e>>2]+8>>2]](e,F[F[f+8>>2]+(g<<2)>>2])|0)){break c}d=d+1|0;if((c|0)!=(d|0)){continue}break b}break}return 0}d=0;if(!($[F[F[a>>2]+36>>2]](a,b)|0)){break a}if(!($[F[F[a>>2]+40>>2]](a,b)|0)){break a}d=$[F[F[a>>2]+44>>2]](a)|0}return d|0}function Id(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;c=F[a+216>>2];if((c|0)!=F[a+220>>2]){while(1){a:{c=F[L(e,144)+c>>2];if((c|0)<0){break a}d=F[a+4>>2];f=F[d+8>>2];if((c|0)>=F[d+12>>2]-f>>2){break a}d=0;c=F[(c<<2)+f>>2];if(($[F[F[c>>2]+24>>2]](c)|0)<=0){break a}while(1){if(($[F[F[c>>2]+20>>2]](c,d)|0)!=(b|0)){d=d+1|0;if(($[F[F[c>>2]+24>>2]](c)|0)>(d|0)){continue}break a}break}a=F[a+216>>2]+L(e,144)|0;return(G[a+100|0]?a+4|0:0)|0}e=e+1|0;c=F[a+216>>2];if(e>>>0<(F[a+220>>2]-c|0)/144>>>0){continue}break}}return 0}function nd(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;c=F[a+8>>2];d=F[a+4>>2];if(c-d>>2>>>0>=b>>>0){if(b){b=b<<2;d=ma(d,0,b)+b|0}F[a+4>>2]=d;return}a:{f=F[a>>2];g=d-f>>2;e=g+b|0;if(e>>>0<1073741824){c=c-f|0;h=c>>>1|0;e=c>>>0>=2147483644?1073741823:e>>>0>>0?h:e;if(e){if(e>>>0>=1073741824){break a}i=ka(e<<2)}c=(g<<2)+i|0;b=b<<2;b=ma(c,0,b)+b|0;if((d|0)!=(f|0)){while(1){c=c-4|0;d=d-4|0;F[c>>2]=F[d>>2];if((d|0)!=(f|0)){continue}break}}F[a+8>>2]=(e<<2)+i;F[a+4>>2]=b;F[a>>2]=c;if(f){ja(f)}return}na();v()}oa();v()}function bb(a){var b=0,c=0,d=0,e=0,f=0;d=F[a+8>>2];a:{if(G[d+84|0]){break a}b=F[a+16>>2];if(!b|!G[b+84|0]){break a}c=F[d+72>>2];e=F[d+68>>2];D[b+84|0]=0;c=c-e>>2;f=F[b+68>>2];e=F[b+72>>2]-f>>2;b:{if(c>>>0>e>>>0){ab(b+68|0,c-e|0,2004);d=F[a+8>>2];break b}if(c>>>0>=e>>>0){break b}F[b+72>>2]=f+(c<<2)}if(G[d+84|0]){break a}c=F[d+68>>2];if((c|0)==F[d+72>>2]){break a}e=F[F[a+16>>2]+68>>2];b=0;while(1){f=b<<2;F[f+e>>2]=F[c+f>>2];b=b+1|0;c=F[d+68>>2];if(b>>>0>2]-c>>2>>>0){continue}break}}return F[a+16>>2]}function Lf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;e=Z+-64|0;Z=e;f=Ja(e+8|0);F[f+16>>2]=0;F[f+20>>2]=0;F[f>>2]=b;F[f+8>>2]=c;F[f+12>>2]=0;b=e+48|0;Pd(b,a,f,d);F[a+24>>2]=F[e+48>>2];f=a+24|0;a:{if((f|0)==(b|0)){break a}b=a+28|0;c=e+48|4;g=G[e+63|0];d=g<<24>>24;if(D[a+39|0]>=0){if((d|0)>=0){a=F[c+4>>2];F[b>>2]=F[c>>2];F[b+4>>2]=a;F[b+8>>2]=F[c+8>>2];break a}qb(b,F[e+52>>2],F[e+56>>2]);break a}a=(d|0)<0;rb(b,a?F[e+52>>2]:c,a?F[e+56>>2]:g)}if(D[e+63|0]<0){ja(F[e+52>>2])}Z=e- -64|0;return f|0}function Jf(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0;a=Z-32|0;Z=a;a:{d=ya(c);if(d>>>0<2147483632){b:{c:{if(d>>>0>=11){e=(d|15)+1|0;f=ka(e);F[a+24>>2]=e|-2147483648;F[a+16>>2]=f;F[a+20>>2]=d;e=d+f|0;break c}D[a+27|0]=d;f=a+16|0;e=f+d|0;if(!d){break b}}la(f,c,d)}D[e|0]=0;D[a+4|0]=0;F[a>>2]=1701667182;D[a+11|0]=4;d=F[b+4>>2];c=-1;d:{if(!d){break d}d=Uc(d,a,a+16|0);c=-1;if(!d){break d}c=Pc(b,F[d+24>>2])}b=c;if(D[a+11|0]<0){ja(F[a>>2])}if(D[a+27|0]<0){ja(F[a+16>>2])}Z=a+32|0;break a}za();v()}return b|0}function Hd(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;c=F[a+216>>2];if((c|0)!=F[a+220>>2]){while(1){a:{c=F[L(e,144)+c>>2];if((c|0)<0){break a}d=F[a+4>>2];f=F[d+8>>2];if((c|0)>=F[d+12>>2]-f>>2){break a}d=0;c=F[(c<<2)+f>>2];if(($[F[F[c>>2]+24>>2]](c)|0)<=0){break a}while(1){if(($[F[F[c>>2]+20>>2]](c,d)|0)!=(b|0)){d=d+1|0;if(($[F[F[c>>2]+24>>2]](c)|0)>(d|0)){continue}break a}break}return(F[a+216>>2]+L(e,144)|0)+104|0}e=e+1|0;c=F[a+216>>2];if(e>>>0<(F[a+220>>2]-c|0)/144>>>0){continue}break}}return a+184|0}function Uf(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0;d=Z-16|0;Z=d;F[d+12>>2]=0;a:{e=ya(c);if(e>>>0<2147483632){b:{c:{if(e>>>0>=11){f=(e|15)+1|0;a=ka(f);F[d+8>>2]=f|-2147483648;F[d>>2]=a;F[d+4>>2]=e;f=a+e|0;break c}D[d+11|0]=e;f=d+e|0;a=d;if(!e){break b}}la(a,c,e)}D[f|0]=0;a=Ya(b,d);d:{if((a|0)==(b+4|0)){break d}b=F[a+32>>2];a=F[a+28>>2];if((b-a|0)!=4){break d}F[d+12>>2]=G[a|0]|G[a+1|0]<<8|(G[a+2|0]<<16|G[a+3|0]<<24)}a=F[d+12>>2];if(D[d+11|0]<0){ja(F[d>>2])}Z=d+16|0;break a}za();v()}return a|0}function Mf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;d=Z+-64|0;Z=d;e=Ja(d+8|0);F[e+16>>2]=0;F[e+20>>2]=0;F[e>>2]=b;F[e+8>>2]=c;F[e+12>>2]=0;b=d+48|0;Od(b);F[a+24>>2]=F[d+48>>2];f=a+24|0;a:{if((b|0)==(f|0)){break a}b=a+28|0;c=d+48|4;g=G[d+63|0];e=g<<24>>24;if(D[a+39|0]>=0){if((e|0)>=0){a=F[c+4>>2];F[b>>2]=F[c>>2];F[b+4>>2]=a;F[b+8>>2]=F[c+8>>2];break a}qb(b,F[d+52>>2],F[d+56>>2]);break a}a=(e|0)<0;rb(b,a?F[d+52>>2]:c,a?F[d+56>>2]:g)}if(D[d+63|0]<0){ja(F[d+52>>2])}Z=d- -64|0;return f|0}function Ce(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0;e=1;a:{if(($[F[F[b>>2]+20>>2]](b)|0)<=0){break a}while(1){e=0;d=Qc(F[F[a+4>>2]+4>>2],$[F[F[b>>2]+24>>2]](b,f)|0);if((d|0)==-1){break a}g=F[a+4>>2];c=0;b:{if((d|0)<0){break b}h=F[g+4>>2];if((d|0)>=F[h+12>>2]-F[h+8>>2]>>2){break b}c=F[F[g+8>>2]+(F[F[g+20>>2]+(d<<2)>>2]<<2)>>2];c=$[F[F[c>>2]+32>>2]](c,d)|0}if(!c){break a}if(!($[F[F[b>>2]+28>>2]](b,c)|0)){break a}e=1;f=f+1|0;if(($[F[F[b>>2]+20>>2]](b)|0)>(f|0)){continue}break}}return e|0}function Db(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;a:{c=F[a+4>>2];e=F[a>>2];d=c-e|0;b:{if(d>>>0>>0){g=b-d|0;f=F[a+8>>2];if(g>>>0<=f-c>>>0){h=a,i=ma(c,0,g)+g|0,F[h+4>>2]=i;break b}if((b|0)<0){break a}c=f-e|0;f=c<<1;c=c>>>0>=1073741823?2147483647:b>>>0>>0?f:b;f=ka(c);ma(f+d|0,0,g);d=pa(f,e,d);F[a+8>>2]=d+c;F[a+4>>2]=b+d;F[a>>2]=d;if(!e){break b}ja(e);break b}if(b>>>0>=d>>>0){break b}F[a+4>>2]=b+e}b=F[a+28>>2];c=b;d=b+1|0;b=F[a+24>>2]+1|0;e=b?c:d;F[a+24>>2]=b;F[a+28>>2]=e;return}na();v()}function Ma(a,b){var c=0,d=0,e=0,f=0,g=0,h=0;e=F[a+4>>2];if((e|0)!=F[a+8>>2]){F[e>>2]=F[b>>2];F[a+4>>2]=e+4;return}a:{g=F[a>>2];f=e-g|0;c=f>>2;d=c+1|0;if(d>>>0<1073741824){h=c<<2;c=f>>>1|0;c=f>>>0>=2147483644?1073741823:c>>>0>d>>>0?c:d;if(c){if(c>>>0>=1073741824){break a}f=ka(c<<2)}else{f=0}d=h+f|0;F[d>>2]=F[b>>2];b=d+4|0;if((e|0)!=(g|0)){while(1){d=d-4|0;e=e-4|0;F[d>>2]=F[e>>2];if((e|0)!=(g|0)){continue}break}}F[a+8>>2]=f+(c<<2);F[a+4>>2]=b;F[a>>2]=d;if(g){ja(g)}return}na();v()}oa();v()}function va(a){F[a>>2]=-1;F[a+4>>2]=0;F[a+8>>2]=0;F[a+32>>2]=0;F[a+36>>2]=0;D[a+28|0]=1;F[a+20>>2]=0;F[a+24>>2]=0;F[a+12>>2]=0;F[a+16>>2]=0;F[a+40>>2]=0;F[a+44>>2]=0;F[a+48>>2]=0;F[a+52>>2]=0;F[a+56>>2]=0;F[a+60>>2]=0;F[a+64>>2]=0;F[a+68>>2]=0;F[a+76>>2]=0;F[a+80>>2]=0;F[a+84>>2]=0;F[a+88>>2]=0;F[a+92>>2]=0;F[a+96>>2]=0;F[a+72>>2]=a+4;F[a+104>>2]=0;F[a+108>>2]=0;D[a+100|0]=1;F[a+112>>2]=0;F[a+116>>2]=0;F[a+120>>2]=0;F[a+124>>2]=0;F[a+128>>2]=0;F[a+132>>2]=0;F[a+136>>2]=0;F[a+140>>2]=0}function Hb(a,b){var c=0,d=0,e=0,f=0;d=F[a+12>>2];c=F[a+16>>2]-d>>2;a:{if(c>>>0>>0){qa(a+12|0,b-c|0);break a}if(b>>>0>=c>>>0){break a}F[a+16>>2]=d+(b<<2)}b:{c=F[a>>2];c:{if(F[a+8>>2]-c>>2>>>0>=b>>>0){break c}if(b>>>0>=1073741824){break b}d=F[a+4>>2];e=b<<2;b=ka(e);e=b+e|0;f=b+(d-c&-4)|0;b=f;if((c|0)!=(d|0)){while(1){b=b-4|0;d=d-4|0;F[b>>2]=F[d>>2];if((c|0)!=(d|0)){continue}break}}F[a+8>>2]=e;F[a+4>>2]=f;F[a>>2]=b;if(!c){break c}ja(c)}return}na();v()}function tb(a){a=a|0;var b=0,c=0,d=0;F[a>>2]=10300;b=F[a+68>>2];if(b){F[a+72>>2]=b;ja(b)}b=F[a+56>>2];if(b){F[a+60>>2]=b;ja(b)}b=F[a+44>>2];if(b){F[a+48>>2]=b;ja(b)}b=F[a+32>>2];if(b){F[a+36>>2]=b;ja(b)}b=F[a+20>>2];if(b){F[a+24>>2]=b;ja(b)}b=F[a+8>>2];if(b){d=b;c=F[a+12>>2];if((b|0)!=(c|0)){while(1){c=c-4|0;d=F[c>>2];F[c>>2]=0;if(d){xa(d)}if((b|0)!=(c|0)){continue}break}d=F[a+8>>2]}F[a+12>>2]=b;ja(d)}b=F[a+4>>2];F[a+4>>2]=0;if(b){ic(b)}return a|0}function qa(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;e=F[a+8>>2];c=F[a+4>>2];if(e-c>>2>>>0>=b>>>0){if(b){b=b<<2;c=ma(c,0,b)+b|0}F[a+4>>2]=c;return}a:{f=c;c=F[a>>2];g=f-c|0;h=g>>2;d=h+b|0;if(d>>>0<1073741824){e=e-c|0;f=e>>>1|0;d=e>>>0>=2147483644?1073741823:d>>>0>>0?f:d;if(d){if(d>>>0>=1073741824){break a}i=ka(d<<2)}b=b<<2;e=ma((h<<2)+i|0,0,b);f=d<<2;d=pa(i,c,g);F[a+8>>2]=f+d;F[a+4>>2]=b+e;F[a>>2]=d;if(c){ja(c)}return}na();v()}oa();v()}function gc(a,b){var c=0,d=0,e=0,f=0;c=a+4|0;a=Ya(a,b);a:{if((c|0)==(a|0)){break a}b=a+28|0;b=D[a+39|0]<0?F[b>>2]:b;while(1){a=b;b=a+1|0;c=D[a|0];if((c|0)==32|c-9>>>0<5){continue}break}b:{c:{d:{c=D[a|0];switch(c-43|0){case 0:break c;case 2:break d;default:break b}}e=1}c=D[b|0];a=b}if(c-48>>>0<10){while(1){d=(L(d,10)-D[a|0]|0)+48|0;b=D[a+1|0];a=a+1|0;if(b-48>>>0<10){continue}break}}a=e?d:0-d|0;if((a|0)==-1){break a}f=(a|0)!=0}return f}function Qa(a,b){var c=0,d=0,e=0,f=0,g=0,h=0;a=F[a>>2];c=F[a+4>>2];e=F[a+8>>2];if(c>>>0>>0){F[c>>2]=F[b>>2];F[a+4>>2]=c+4;return}a:{d=c;c=F[a>>2];g=d-c|0;d=g>>2;f=d+1|0;if(f>>>0<1073741824){h=d<<2;e=e-c|0;d=e>>>1|0;f=e>>>0>=2147483644?1073741823:f>>>0>>0?d:f;if(f){if(f>>>0>=1073741824){break a}e=ka(f<<2)}else{e=0}d=h+e|0;F[d>>2]=F[b>>2];b=pa(e,c,g);F[a+8>>2]=b+(f<<2);F[a+4>>2]=d+4;F[a>>2]=b;if(c){ja(c)}return}na();v()}oa();v()}function db(a,b,c){var d=0,e=0,f=0,g=0,h=0;f=Z-16|0;Z=f;d=Z-32|0;Z=d;e=Z-16|0;Z=e;F[e+12>>2]=b;F[e+8>>2]=b+c;F[d+24>>2]=F[e+12>>2];F[d+28>>2]=F[e+8>>2];Z=e+16|0;c=Z-16|0;Z=c;h=F[d+28>>2];e=F[d+24>>2];g=h-e|0;if((e|0)!=(h|0)){pa(a,e,g)}F[c+12>>2]=e+g;F[c+8>>2]=a+g;F[d+16>>2]=F[c+12>>2];F[d+20>>2]=F[c+8>>2];Z=c+16|0;F[d+12>>2]=(F[d+16>>2]-b|0)+b;F[d+8>>2]=(F[d+20>>2]-a|0)+a;F[f+8>>2]=F[d+12>>2];F[f+12>>2]=F[d+8>>2];Z=d+32|0;Z=f+16|0}function _a(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;e=F[a+8>>2];c=F[a+4>>2];if(e-c>>3>>>0>=b>>>0){if(b){b=b<<3;c=ma(c,0,b)+b|0}F[a+4>>2]=c;return}a:{f=c;c=F[a>>2];g=f-c|0;h=g>>3;d=h+b|0;if(d>>>0<536870912){e=e-c|0;f=e>>>2|0;d=e>>>0>=2147483640?536870911:d>>>0>>0?f:d;if(d){if(d>>>0>=536870912){break a}i=ka(d<<3)}b=b<<3;e=ma((h<<3)+i|0,0,b);f=d<<3;d=pa(i,c,g);F[a+8>>2]=f+d;F[a+4>>2]=b+e;F[a>>2]=d;if(c){ja(c)}return}na();v()}oa();v()}function re(a){a=a|0;var b=0,c=0,d=0;F[a>>2]=2016;b=F[a+60>>2];F[a+60>>2]=0;if(b){$[F[F[b>>2]+4>>2]](b)}b=F[a+48>>2];if(b){F[a+52>>2]=b;ja(b)}d=F[a+36>>2];if(d){c=F[a+40>>2];b=d;if((c|0)!=(b|0)){while(1){c=c-4|0;b=F[c>>2];F[c>>2]=0;if(b){$[F[F[b>>2]+4>>2]](b)}if((c|0)!=(d|0)){continue}break}b=F[a+36>>2]}F[a+40>>2]=d;ja(b)}F[a>>2]=1776;b=F[a+16>>2];if(b){F[a+20>>2]=b;ja(b)}b=F[a+4>>2];if(b){F[a+8>>2]=b;ja(b)}return a|0}function qe(a){a=a|0;var b=0,c=0,d=0;F[a>>2]=2016;b=F[a+60>>2];F[a+60>>2]=0;if(b){$[F[F[b>>2]+4>>2]](b)}b=F[a+48>>2];if(b){F[a+52>>2]=b;ja(b)}d=F[a+36>>2];if(d){c=F[a+40>>2];b=d;if((c|0)!=(b|0)){while(1){c=c-4|0;b=F[c>>2];F[c>>2]=0;if(b){$[F[F[b>>2]+4>>2]](b)}if((c|0)!=(d|0)){continue}break}b=F[a+36>>2]}F[a+40>>2]=d;ja(b)}F[a>>2]=1776;b=F[a+16>>2];if(b){F[a+20>>2]=b;ja(b)}b=F[a+4>>2];if(b){F[a+8>>2]=b;ja(b)}ja(a)}function Eg(a){a=a|0;var b=0,c=0,d=0,e=0,f=0;a:{b=F[a+8>>2];b:{if((b|0)<0){break b}c=F[a+4>>2];e=F[c>>2];d=F[c+4>>2]-e>>2;c:{if(d>>>0>>0){nd(c,b-d|0);f=F[a+8>>2];break c}f=b;if(b>>>0>=d>>>0){break c}F[c+4>>2]=e+(b<<2);f=b}d=f;if((d|0)<=0){break b}a=F[a+4>>2];c=F[a>>2];e=F[a+4>>2]-c>>2;a=0;while(1){if((a|0)==(e|0)){break a}F[c+(a<<2)>>2]=a;a=a+1|0;if((d|0)!=(a|0)){continue}break}}return(b^-1)>>>31|0}ta();v()}function fh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;d=Z-16|0;Z=d;e=F[a+4>>2];a:{if((e|0)==-1){break a}c=F[b+20>>2];if(!!F[b+16>>2]&(c|0)>=0|(c|0)>0){break a}pb(b,F[b+4>>2],F[a+8>>2],F[a+12>>2]);c=F[b+20>>2];if(!!F[b+16>>2]&(c|0)>=0|(c|0)>0){break a}pb(b,F[b+4>>2],a+20|0,a+24|0);c=F[b+20>>2];f=F[b+16>>2];D[d+15|0]=F[a+4>>2];if(!!f&(c|0)>=0|(c|0)>0){break a}pb(b,F[b+4>>2],d+15|0,d+16|0)}Z=d+16|0;return(e|0)!=-1|0}function kd(a,b){var c=0,d=0,e=0,f=0,g=0,h=0;e=F[a+8>>2];c=F[a+4>>2];if(e-c>>1>>>0>=b>>>0){if(b){b=b<<1;c=ma(c,0,b)+b|0}F[a+4>>2]=c;return}a:{f=c;c=F[a>>2];g=f-c|0;f=g>>1;d=f+b|0;if((d|0)>=0){e=e-c|0;d=e>>>0>=2147483646?2147483647:d>>>0>>0?e:d;if(d){if((d|0)<0){break a}h=ka(d<<1)}b=b<<1;e=ma((f<<1)+h|0,0,b);f=d<<1;d=pa(h,c,g);F[a+8>>2]=f+d;F[a+4>>2]=b+e;F[a>>2]=d;if(c){ja(c)}return}na();v()}oa();v()}function of(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;d=Z-16|0;Z=d;Pd(d,a,b,c);F[a+24>>2]=F[d>>2];e=a+24|0;a:{if((e|0)==(d|0)){break a}b=a+28|0;c=d|4;f=G[d+15|0];g=f<<24>>24;if(D[a+39|0]>=0){if((g|0)>=0){a=F[c+4>>2];F[b>>2]=F[c>>2];F[b+4>>2]=a;F[b+8>>2]=F[c+8>>2];break a}qb(b,F[d+4>>2],F[d+8>>2]);break a}a=(g|0)<0;rb(b,a?F[d+4>>2]:c,a?F[d+8>>2]:f)}if(D[d+15|0]<0){ja(F[d+4>>2])}Z=d+16|0;return e|0}function ra(a,b,c){var d=0,e=0,f=0,g=0;e=Z-16|0;Z=e;a:{b:{if(c>>>0<11){d=a;D[a+11|0]=G[a+11|0]&128|c;D[a+11|0]=G[a+11|0]&127;break b}if(c>>>0>2147483631){break a}g=e+8|0;if(c>>>0>=11){f=c+16&-16;d=f-1|0;d=(d|0)==11?f:d}else{d=10}sb(g,d+1|0);d=F[e+8>>2];F[a>>2]=d;F[a+8>>2]=F[a+8>>2]&-2147483648|F[e+12>>2]&2147483647;F[a+8>>2]=F[a+8>>2]|-2147483648;F[a+4>>2]=c}db(d,b,c+1|0);Z=e+16|0;return}za();v()}function pf(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;b=Z-16|0;Z=b;Od(b);F[a+24>>2]=F[b>>2];e=a+24|0;a:{if((e|0)==(b|0)){break a}c=a+28|0;d=b|4;f=G[b+15|0];g=f<<24>>24;if(D[a+39|0]>=0){if((g|0)>=0){a=F[d+4>>2];F[c>>2]=F[d>>2];F[c+4>>2]=a;F[c+8>>2]=F[d+8>>2];break a}qb(c,F[b+4>>2],F[b+8>>2]);break a}a=(g|0)<0;rb(c,a?F[b+4>>2]:d,a?F[b+8>>2]:f)}if(D[b+15|0]<0){ja(F[b+4>>2])}Z=b+16|0;return e|0}function Rf(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;d=Z-16|0;Z=d;a:{e=ya(c);if(e>>>0<2147483632){b:{c:{if(e>>>0>=11){g=(e|15)+1|0;f=ka(g);F[d+8>>2]=g|-2147483648;F[d>>2]=f;F[d+4>>2]=e;g=e+f|0;break c}D[d+11|0]=e;g=d+e|0;f=d;if(!e){break b}}la(f,c,e)}D[g|0]=0;f=a+16|0;c=Sc(b,d,f);b=F[a+16>>2];a=D[a+27|0];if(D[d+11|0]<0){ja(F[d>>2])}Z=d+16|0;a=c?(a|0)<0?b:f:0;break a}za();v()}return a|0}function Yb(a,b){var c=0,d=0,e=0;c=F[a+4>>2];d=c+b|0;F[a+4>>2]=d;if(!((d-1^c-1)>>>0<32?c:0)){F[F[a>>2]+((d>>>0>=33?d-1>>>5|0:0)<<2)>>2]=0}a:{if(!b){break a}a=F[a>>2]+(c>>>3&536870908)|0;c=c&31;if(c){d=32-c|0;e=b>>>0>d>>>0?d:b;F[a>>2]=F[a>>2]&(-1<>>d-e^-1);b=b-e|0;a=a+4|0}c=b>>>5|0;if(b>>>0>=32){ma(a,0,c<<2)}if((b&-32)==(b|0)){break a}a=(c<<2)+a|0;F[a>>2]=F[a>>2]&(-1>>>32-(b&31)^-1)}}function ld(a,b,c){var d=0,e=0,f=0,g=0;a:{if(a>>>0>10){break a}d=F[c+20>>2];f=F[c+12>>2];e=F[c+16>>2];if((d|0)>=(f|0)&e>>>0>=I[c+8>>2]|(d|0)>(f|0)){break a}f=D[e+F[c>>2]|0];e=e+1|0;d=e?d:d+1|0;F[c+16>>2]=e;F[c+20>>2]=d;d=f;b:{if((d|0)<0){if(!ld(a+1|0,b,c)){break a}a=F[b>>2];d=d&127|a<<7;a=F[b+4>>2]<<7|a>>>25;break b}d=d&255;a=0}F[b>>2]=d;F[b+4>>2]=a;g=1}return g}function Sa(a,b,c){var d=0,e=0,f=0,g=0;a:{if(a>>>0>10){break a}d=F[c+20>>2];f=F[c+12>>2];e=F[c+16>>2];if((d|0)>=(f|0)&e>>>0>=I[c+8>>2]|(d|0)>(f|0)){break a}f=D[e+F[c>>2]|0];e=e+1|0;d=e?d:d+1|0;F[c+16>>2]=e;F[c+20>>2]=d;d=f;b:{if((d|0)<0){if(!Sa(a+1|0,b,c)){break a}a=F[b>>2];d=d&127|a<<7;a=F[b+4>>2]<<7|a>>>25;break b}d=d&255;a=0}F[b>>2]=d;F[b+4>>2]=a;g=1}return g}function Ne(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;if(La(a,F[b+8>>2],e)){if(!(F[b+28>>2]==1|F[b+4>>2]!=(c|0))){F[b+28>>2]=d}return}a:{if(!La(a,F[b>>2],e)){break a}if(!(F[b+16>>2]!=(c|0)&F[b+20>>2]!=(c|0))){if((d|0)!=1){break a}F[b+32>>2]=1;return}F[b+20>>2]=c;F[b+32>>2]=d;F[b+40>>2]=F[b+40>>2]+1;if(!(F[b+36>>2]!=1|F[b+24>>2]!=2)){D[b+54|0]=1}F[b+44>>2]=4}}function jg(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0;e=Z+-64|0;Z=e;d=$[F[F[a>>2]+44>>2]](a,b)|0;a=$[F[F[a>>2]+40>>2]](a,b)|0;f=kb(e);g=F[b+56>>2];h=d&255;i=a;a=a-1|0;if(a>>>0<=10){a=F[(a<<2)+10148>>2]}else{a=-1}d=L(a,d);cc(f,g,h,i,0,d,d>>31);a=bc(ka(96),f);ac(a,c);D[a+84|0]=1;F[a+72>>2]=F[a+68>>2];F[a+60>>2]=F[b+60>>2];Z=e- -64|0;return a|0}function rh(a){a=a|0;var b=0,c=0,d=0;F[a>>2]=8176;b=F[a+48>>2];F[a+48>>2]=0;if(b){$[F[F[b>>2]+4>>2]](b)}F[a>>2]=10032;b=F[a+20>>2];if(b){F[a+24>>2]=b;ja(b)}d=F[a+8>>2];if(d){c=F[a+12>>2];b=d;if((c|0)!=(b|0)){while(1){c=c-4|0;b=F[c>>2];F[c>>2]=0;if(b){$[F[F[b>>2]+4>>2]](b)}if((c|0)!=(d|0)){continue}break}b=F[a+8>>2]}F[a+12>>2]=d;ja(b)}return a|0}function Dc(a,b,c,d){D[a+53|0]=1;a:{if(F[a+4>>2]!=(c|0)){break a}D[a+52|0]=1;c=F[a+16>>2];b:{if(!c){F[a+36>>2]=1;F[a+24>>2]=d;F[a+16>>2]=b;if((d|0)!=1){break a}if(F[a+48>>2]==1){break b}break a}if((b|0)==(c|0)){c=F[a+24>>2];if((c|0)==2){F[a+24>>2]=d;c=d}if(F[a+48>>2]!=1){break a}if((c|0)==1){break b}break a}F[a+36>>2]=F[a+36>>2]+1}D[a+54|0]=1}}function qh(a){a=a|0;var b=0,c=0,d=0;F[a>>2]=8176;b=F[a+48>>2];F[a+48>>2]=0;if(b){$[F[F[b>>2]+4>>2]](b)}F[a>>2]=10032;b=F[a+20>>2];if(b){F[a+24>>2]=b;ja(b)}d=F[a+8>>2];if(d){c=F[a+12>>2];b=d;if((c|0)!=(b|0)){while(1){c=c-4|0;b=F[c>>2];F[c>>2]=0;if(b){$[F[F[b>>2]+4>>2]](b)}if((c|0)!=(d|0)){continue}break}b=F[a+8>>2]}F[a+12>>2]=d;ja(b)}ja(a)}function Se(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;e=Z+-64|0;Z=e;d=1;a:{if(La(a,b,0)){break a}d=0;if(!b){break a}b=Fc(b,11068);d=0;if(!b){break a}d=e+8|0;ma(d|4,0,52);F[e+56>>2]=1;F[e+20>>2]=-1;F[e+16>>2]=a;F[e+8>>2]=b;$[F[F[b>>2]+28>>2]](b,d,F[c>>2],1);a=F[e+32>>2];if((a|0)==1){F[c>>2]=F[e+24>>2]}d=(a|0)==1}Z=e- -64|0;return d|0}function Fd(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=Z-16|0;Z=d;F[a+4>>2]=b;b=F[b+64>>2];e=F[b>>2];b=F[b+4>>2];D[d+15|0]=0;Ea(a+24|0,(b-e>>2>>>0)/3|0,d+15|0);b=F[a+4>>2];e=F[b+56>>2];b=F[b+52>>2];D[d+14|0]=0;Ea(a+36|0,e-b>>2,d+14|0);b=F[c+12>>2];F[a+16>>2]=F[c+8>>2];F[a+20>>2]=b;b=F[c+4>>2];F[a+8>>2]=F[c>>2];F[a+12>>2]=b;Z=d+16|0}function zf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;a=Z-16|0;Z=a;f=D[b+24|0];e=F[2555];F[a+8>>2]=F[2554];F[a+12>>2]=e;e=F[2553];F[a>>2]=F[2552];F[a+4>>2]=e;e=lb(b,c,f,a);if(e){b=0;if(f){c=(f&255)<<2;b=ka(c);g=la(b,a,c)+c|0}c=F[d>>2];if(c){F[d+4>>2]=c;ja(c)}F[d+8>>2]=g;F[d+4>>2]=g;F[d>>2]=b}Z=a+16|0;return e|0}function wd(a,b){var c=0,d=0;a:{c=F[a+4>>2];d=F[a+8>>2];if((c|0)==d<<5){if((c+1|0)<0){break a}if(c>>>0<=1073741822){d=d<<6;c=(c&-32)+32|0;c=c>>>0>>0?d:c}else{c=2147483647}$a(a,c);c=F[a+4>>2]}F[a+4>>2]=c+1;d=1<>2]+(c>>>3&536870908)|0;if(G[b|0]){F[a>>2]=d|F[a>>2];return}F[a>>2]=F[a>>2]&(d^-1);return}na();v()}function Zb(a){var b=0;F[a>>2]=0;F[a+4>>2]=0;F[a+56>>2]=0;F[a+48>>2]=0;F[a+52>>2]=0;F[a+40>>2]=0;F[a+44>>2]=0;F[a+32>>2]=0;F[a+36>>2]=0;F[a+24>>2]=0;F[a+28>>2]=0;F[a+16>>2]=0;F[a+20>>2]=0;F[a+8>>2]=0;F[a+12>>2]=0;b=a- -64|0;F[b>>2]=0;F[b+4>>2]=0;F[a+72>>2]=0;F[a+76>>2]=0;F[a+80>>2]=0;F[a+84>>2]=0;F[a+60>>2]=a;return a}function ve(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0;f=$[F[F[a>>2]+24>>2]](a)|0;c=1;a:{if((f|0)<=0){break a}d=F[F[a+36>>2]>>2];g=a+48|0;c=0;if(!($[F[F[d>>2]+16>>2]](d,g,b)|0)){break a}while(1){e=e+1|0;if((f|0)!=(e|0)){d=F[F[a+36>>2]+(e<<2)>>2];if($[F[F[d>>2]+16>>2]](d,g,b)|0){continue}}break}c=(e|0)>=(f|0)}return c|0}function ue(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0;f=$[F[F[a>>2]+24>>2]](a)|0;c=1;a:{if((f|0)<=0){break a}d=F[F[a+36>>2]>>2];g=a+48|0;c=0;if(!($[F[F[d>>2]+20>>2]](d,g,b)|0)){break a}while(1){e=e+1|0;if((f|0)!=(e|0)){d=F[F[a+36>>2]+(e<<2)>>2];if($[F[F[d>>2]+20>>2]](d,g,b)|0){continue}}break}c=(e|0)>=(f|0)}return c|0}function bh(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=Z-16|0;Z=d;F[a+4>>2]=b;e=F[b>>2];b=F[b+4>>2];D[d+15|0]=0;Ea(a+24|0,(b-e>>2>>>0)/3|0,d+15|0);b=F[a+4>>2];e=F[b+28>>2];b=F[b+24>>2];D[d+14|0]=0;Ea(a+36|0,e-b>>2,d+14|0);b=F[c+12>>2];F[a+16>>2]=F[c+8>>2];F[a+20>>2]=b;b=F[c+4>>2];F[a+8>>2]=F[c>>2];F[a+12>>2]=b;Z=d+16|0}function hb(a,b,c){var d=0,e=0,f=0,g=0;a:{if(a>>>0>5){break a}d=F[c+20>>2];e=F[c+12>>2];f=F[c+16>>2];if((d|0)>=(e|0)&f>>>0>=I[c+8>>2]|(d|0)>(e|0)){break a}e=G[F[c>>2]+f|0];f=f+1|0;d=f?d:d+1|0;F[c+16>>2]=f;F[c+20>>2]=d;d=e<<24>>24;if((d|0)<0){if(!hb(a+1|0,b,c)){break a}e=d&127|F[b>>2]<<7}F[b>>2]=e;g=1}return g}function fb(a,b,c){var d=0,e=0,f=0,g=0;a:{if(a>>>0>5){break a}d=F[c+20>>2];e=F[c+12>>2];f=F[c+16>>2];if((d|0)>=(e|0)&f>>>0>=I[c+8>>2]|(d|0)>(e|0)){break a}e=G[F[c>>2]+f|0];f=f+1|0;d=f?d:d+1|0;F[c+16>>2]=f;F[c+20>>2]=d;d=e<<24>>24;if((d|0)<0){if(!fb(a+1|0,b,c)){break a}e=d&127|F[b>>2]<<7}F[b>>2]=e;g=1}return g}function Wb(a,b,c){var d=0,e=0,f=0,g=0;a:{if(a>>>0>5){break a}d=F[c+20>>2];e=F[c+12>>2];f=F[c+16>>2];if((d|0)>=(e|0)&f>>>0>=I[c+8>>2]|(d|0)>(e|0)){break a}e=G[F[c>>2]+f|0];f=f+1|0;d=f?d:d+1|0;F[c+16>>2]=f;F[c+20>>2]=d;d=e<<24>>24;if((d|0)<0){if(!Wb(a+1|0,b,c)){break a}e=d&127|F[b>>2]<<7}F[b>>2]=e;g=1}return g}function Ta(a,b,c){var d=0,e=0,f=0,g=0;a:{if(a>>>0>5){break a}d=F[c+20>>2];e=F[c+12>>2];f=F[c+16>>2];if((d|0)>=(e|0)&f>>>0>=I[c+8>>2]|(d|0)>(e|0)){break a}e=G[F[c>>2]+f|0];f=f+1|0;d=f?d:d+1|0;F[c+16>>2]=f;F[c+20>>2]=d;d=e<<24>>24;if((d|0)<0){if(!Ta(a+1|0,b,c)){break a}e=d&127|F[b>>2]<<7}F[b>>2]=e;g=1}return g}function Qd(a,b,c){var d=0,e=0,f=0,g=0;a:{if(a>>>0>5){break a}d=F[c+20>>2];e=F[c+12>>2];f=F[c+16>>2];if((d|0)>=(e|0)&f>>>0>=I[c+8>>2]|(d|0)>(e|0)){break a}e=G[F[c>>2]+f|0];f=f+1|0;d=f?d:d+1|0;F[c+16>>2]=f;F[c+20>>2]=d;d=e<<24>>24;if((d|0)<0){if(!Qd(a+1|0,b,c)){break a}e=d&127|F[b>>2]<<7}F[b>>2]=e;g=1}return g}function Oa(a,b,c){var d=0,e=0,f=0,g=0;a:{if(a>>>0>5){break a}d=F[c+20>>2];e=F[c+12>>2];f=F[c+16>>2];if((d|0)>=(e|0)&f>>>0>=I[c+8>>2]|(d|0)>(e|0)){break a}e=G[F[c>>2]+f|0];f=f+1|0;d=f?d:d+1|0;F[c+16>>2]=f;F[c+20>>2]=d;d=e<<24>>24;if((d|0)<0){if(!Oa(a+1|0,b,c)){break a}e=d&127|F[b>>2]<<7}F[b>>2]=e;g=1}return g}function Da(a,b,c){var d=0,e=0,f=0,g=0;a:{if(a>>>0>5){break a}d=F[c+20>>2];e=F[c+12>>2];f=F[c+16>>2];if((d|0)>=(e|0)&f>>>0>=I[c+8>>2]|(d|0)>(e|0)){break a}e=G[F[c>>2]+f|0];f=f+1|0;d=f?d:d+1|0;F[c+16>>2]=f;F[c+20>>2]=d;d=e<<24>>24;if((d|0)<0){if(!Da(a+1|0,b,c)){break a}e=d&127|F[b>>2]<<7}F[b>>2]=e;g=1}return g}function sa(a,b,c){var d=0,e=0;a:{b:{if(c>>>0>=4){if((a|b)&3){break b}while(1){if(F[a>>2]!=F[b>>2]){break b}b=b+4|0;a=a+4|0;c=c-4|0;if(c>>>0>3){continue}break}}if(!c){break a}}while(1){d=G[a|0];e=G[b|0];if((d|0)==(e|0)){b=b+1|0;a=a+1|0;c=c-1|0;if(c){continue}break a}break}return d-e|0}return 0}function td(a){var b=0,c=0,d=0,e=0;d=F[a>>2];if(d){e=d;c=F[a+4>>2];if((d|0)!=(c|0)){while(1){e=c-144|0;b=F[e+132>>2];if(b){F[c-8>>2]=b;ja(b)}b=F[c-28>>2];if(b){F[c-24>>2]=b;ja(b)}b=F[c-40>>2];if(b){F[c-36>>2]=b;ja(b)}Gb(c-140|0);c=e;if((d|0)!=(c|0)){continue}break}e=F[a>>2]}F[a+4>>2]=d;ja(e)}}function Ef(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=F[b+4>>2];a:{if(!d){break a}b=F[F[F[b+8>>2]+(c<<2)>>2]+60>>2];if((b|0)<0){break a}a=F[d+24>>2];c=F[d+28>>2];if((a|0)==(c|0)){break a}b:{while(1){e=F[a>>2];if((b|0)==F[e+24>>2]){break b}a=a+4|0;if((c|0)!=(a|0)){continue}break}e=0}}return e|0}function ic(a){var b=0,c=0,d=0;if(a){d=F[a+24>>2];if(d){b=d;c=F[a+28>>2];if((b|0)!=(c|0)){while(1){c=c-4|0;b=F[c>>2];F[c>>2]=0;if(b){Ca(b+12|0,F[b+16>>2]);Ba(b,F[b+4>>2]);ja(b)}if((c|0)!=(d|0)){continue}break}b=F[a+24>>2]}F[a+28>>2]=d;ja(b)}Ca(a+12|0,F[a+16>>2]);Ba(a,F[a+4>>2]);ja(a)}}function $g(a){a=a|0;var b=0;F[a+8>>2]=9136;F[a>>2]=8924;b=F[a+96>>2];if(b){F[a+100>>2]=b;ja(b)}b=F[a+80>>2];if(b){F[a+84>>2]=b;ja(b)}b=F[a+68>>2];if(b){F[a+72>>2]=b;ja(b)}b=F[a+56>>2];if(b){F[a+60>>2]=b;ja(b)}F[a+8>>2]=9372;b=F[a+44>>2];if(b){ja(b)}b=F[a+32>>2];if(b){ja(b)}return a|0}function _g(a){a=a|0;var b=0;F[a+8>>2]=9136;F[a>>2]=8924;b=F[a+96>>2];if(b){F[a+100>>2]=b;ja(b)}b=F[a+80>>2];if(b){F[a+84>>2]=b;ja(b)}b=F[a+68>>2];if(b){F[a+72>>2]=b;ja(b)}b=F[a+56>>2];if(b){F[a+60>>2]=b;ja(b)}F[a+8>>2]=9372;b=F[a+44>>2];if(b){ja(b)}b=F[a+32>>2];if(b){ja(b)}ja(a)}function wh(a){a=a|0;var b=0,c=0,d=0;F[a>>2]=10032;b=F[a+20>>2];if(b){F[a+24>>2]=b;ja(b)}d=F[a+8>>2];if(d){c=F[a+12>>2];b=d;if((c|0)!=(b|0)){while(1){c=c-4|0;b=F[c>>2];F[c>>2]=0;if(b){$[F[F[b>>2]+4>>2]](b)}if((c|0)!=(d|0)){continue}break}b=F[a+8>>2]}F[a+12>>2]=d;ja(b)}return a|0}function uc(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0;h=F[c+8>>2];e=F[c+16>>2];g=F[c+12>>2];f=g;d=F[c+20>>2];if(h>>>0>e>>>0&(f|0)>=(d|0)|(d|0)<(f|0)){b=G[F[c>>2]+e|0];i=e+1|0;f=i?d:d+1|0;F[c+16>>2]=i;F[c+20>>2]=f;F[a+4>>2]=b}return e>>>0>>0&(d|0)<=(g|0)|(d|0)<(g|0)}function La(a,b,c){var d=0;if(!c){return F[a+4>>2]==F[b+4>>2]}if((a|0)==(b|0)){return 1}d=F[a+4>>2];a=G[d|0];c=F[b+4>>2];b=G[c|0];a:{if(!a|(b|0)!=(a|0)){break a}while(1){b=G[c+1|0];a=G[d+1|0];if(!a){break a}c=c+1|0;d=d+1|0;if((a|0)==(b|0)){continue}break}}return(a|0)==(b|0)}function Gg(a){a=a|0;var b=0,c=0,d=0;F[a>>2]=10032;b=F[a+20>>2];if(b){F[a+24>>2]=b;ja(b)}d=F[a+8>>2];if(d){c=F[a+12>>2];b=d;if((c|0)!=(b|0)){while(1){c=c-4|0;b=F[c>>2];F[c>>2]=0;if(b){$[F[F[b>>2]+4>>2]](b)}if((c|0)!=(d|0)){continue}break}b=F[a+8>>2]}F[a+12>>2]=d;ja(b)}ja(a)}function Gf(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=F[b+12>>2];b=F[b+8>>2];a=0;a:{if((d|0)==(b|0)){break a}a=d-b>>2;d=a>>>0<=1?1:a;a=0;b:{while(1){e=F[b+(a<<2)>>2];if(F[e+60>>2]==(c|0)){break b}a=a+1|0;if((d|0)!=(a|0)){continue}break}a=0;break a}a=(a|0)!=-1?e:0}return a|0}function ah(a){a=a|0;var b=0;F[a>>2]=9136;b=F[a+88>>2];if(b){F[a+92>>2]=b;ja(b)}b=F[a+72>>2];if(b){F[a+76>>2]=b;ja(b)}b=F[a+60>>2];if(b){F[a- -64>>2]=b;ja(b)}b=F[a+48>>2];if(b){F[a+52>>2]=b;ja(b)}F[a>>2]=9372;b=F[a+36>>2];if(b){ja(b)}b=F[a+24>>2];if(b){ja(b)}return a|0}function Tc(a,b){var c=0,d=0,e=0;F[a+8>>2]=0;F[a>>2]=0;F[a+4>>2]=0;a:{c=F[b+4>>2];d=F[b>>2];b:{if((c|0)==(d|0)){a=c;break b}c=c-d|0;if((c|0)<0){break a}d=c;e=ka(c);c=ma(e,0,c);d=d+c|0;F[a+8>>2]=d;F[a+4>>2]=d;F[a>>2]=c;c=F[b>>2];a=F[b+4>>2]}la(e,c,a-c|0);return}na();v()}function Dd(a){var b=0,c=0,d=0,e=0;c=F[a+4>>2];d=F[a>>2];if((c|0)!=(d|0)){while(1){e=c-144|0;b=F[e+132>>2];if(b){F[c-8>>2]=b;ja(b)}b=F[c-28>>2];if(b){F[c-24>>2]=b;ja(b)}b=F[c-40>>2];if(b){F[c-36>>2]=b;ja(b)}Gb(c-140|0);c=e;if((d|0)!=(c|0)){continue}break}}F[a+4>>2]=d}function Xg(a){a=a|0;var b=0;F[a>>2]=9136;b=F[a+88>>2];if(b){F[a+92>>2]=b;ja(b)}b=F[a+72>>2];if(b){F[a+76>>2]=b;ja(b)}b=F[a+60>>2];if(b){F[a- -64>>2]=b;ja(b)}b=F[a+48>>2];if(b){F[a+52>>2]=b;ja(b)}F[a>>2]=9372;b=F[a+36>>2];if(b){ja(b)}b=F[a+24>>2];if(b){ja(b)}ja(a)}function Za(a){var b=0;if(a){b=F[a+76>>2];if(b){F[a+80>>2]=b;ja(b)}b=F[a- -64>>2];if(b){F[a+68>>2]=b;ja(b)}b=F[a+48>>2];if(b){F[a+52>>2]=b;ja(b)}b=F[a+24>>2];if(b){F[a+28>>2]=b;ja(b)}b=F[a+12>>2];if(b){F[a+16>>2]=b;ja(b)}b=F[a>>2];if(b){F[a+4>>2]=b;ja(b)}ja(a)}}function Gb(a){var b=0;b=F[a+84>>2];if(b){F[a+88>>2]=b;ja(b)}b=F[a+72>>2];if(b){F[a+76>>2]=b;ja(b)}b=F[a+52>>2];if(b){F[a+56>>2]=b;ja(b)}b=F[a+40>>2];if(b){F[a+44>>2]=b;ja(b)}b=F[a+28>>2];if(b){F[a+32>>2]=b;ja(b)}b=F[a+12>>2];if(b){ja(b)}a=F[a>>2];if(a){ja(a)}}function Lc(a,b,c){var d=0,e=0,f=0,g=0;f=Z-16|0;Z=f;d=Z-16|0;Z=d;b=b-a>>2;while(1){if(b){F[d+12>>2]=a;e=b>>>1|0;F[d+12>>2]=F[d+12>>2]+(e<<2);g=(e^-1)+b|0;b=e;e=I[F[d+12>>2]>>2]>2];b=e?g:b;a=e?F[d+12>>2]+4|0:a;continue}break}Z=d+16|0;Z=f+16|0;return a}function id(a,b){var c=0,d=0;d=ka(40);F[d>>2]=-1;c=d+8|0;F[c+16>>2]=0;F[c+20>>2]=0;F[c+8>>2]=0;F[c>>2]=0;F[c+4>>2]=0;F[c+24>>2]=0;F[c+28>>2]=0;$[F[F[a>>2]+16>>2]](a,d);a=F[b+88>>2];F[b+88>>2]=d;if(a){b=F[a+8>>2];if(b){F[a+12>>2]=b;ja(b)}ja(a)}return 1}function ya(a){var b=0,c=0,d=0;b=a;a:{if(b&3){while(1){if(!G[b|0]){break a}b=b+1|0;if(b&3){continue}break}}while(1){c=b;b=b+4|0;d=F[c>>2];if(!((d^-1)&d-16843009&-2139062144)){continue}break}while(1){b=c;c=b+1|0;if(G[b|0]){continue}break}}return b-a|0}function wa(a){var b=0,c=0,d=0,e=0,f=0;d=G[a+12|0];c=F[a+8>>2];a:{if(c>>>0>4095){break a}b=F[a+4>>2];if((b|0)<=0){break a}b=b-1|0;F[a+4>>2]=b;c=G[b+F[a>>2]|0]|c<<8}d=0-d&255;b=L(d,c>>>8|0);e=c&255;f=e>>>0>>0;F[a+8>>2]=f?b+e|0:c-(b+d|0)|0;return f}function yc(a,b){F[a+4>>2]=0;F[a+8>>2]=0;F[a>>2]=1776;F[a+12>>2]=0;F[a+16>>2]=0;F[a+20>>2]=0;F[a+24>>2]=0;F[a+28>>2]=0;F[a+32>>2]=0;F[a+36>>2]=0;F[a+40>>2]=0;F[a>>2]=2016;F[a+60>>2]=b;F[a+44>>2]=0;F[a+48>>2]=0;F[a+52>>2]=0;F[a+56>>2]=0;return a}function Eb(a,b){var c=0,d=0,e=0;c=ya(b);if(c>>>0<2147483632){a:{b:{if(c>>>0>=11){d=(c|15)+1|0;e=ka(d);F[a+8>>2]=d|-2147483648;F[a>>2]=e;F[a+4>>2]=c;d=c+e|0;break b}D[a+11|0]=c;d=a+c|0;e=a;if(!c){break a}}pa(e,b,c)}D[d|0]=0;return a}za();v()}function Of(a){a=a|0;var b=0,c=0,d=0;if(a){if(D[a+27|0]<0){ja(F[a+16>>2])}b=F[a>>2];if(b){c=b;d=F[a+4>>2];if((b|0)!=(d|0)){while(1){c=d-12|0;if(D[d-1|0]<0){ja(F[c>>2])}d=c;if((d|0)!=(b|0)){continue}break}c=F[a>>2]}F[a+4>>2]=b;ja(c)}ja(a)}}function xa(a){a=a|0;var b=0,c=0;if(a){b=F[a+88>>2];F[a+88>>2]=0;if(b){c=F[b+8>>2];if(c){F[b+12>>2]=c;ja(c)}ja(b)}b=F[a+68>>2];if(b){F[a+72>>2]=b;ja(b)}b=F[a+64>>2];F[a+64>>2]=0;if(b){c=F[b>>2];if(c){F[b+4>>2]=c;ja(c)}ja(b)}ja(a)}}function Ib(a,b){var c=0,d=0,e=0;a:{c=F[a>>2];b:{if(F[a+8>>2]-c>>2>>>0>=b>>>0){break b}if(b>>>0>=1073741824){break a}d=F[a+4>>2]-c|0;e=b<<2;b=pa(ka(e),c,d);F[a+8>>2]=b+e;F[a+4>>2]=b+d;F[a>>2]=b;if(!c){break b}ja(c)}return}na();v()}function Df(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;b=F[b+96>>2];a=ka(12);b=b+L(c,12)|0;c=F[b+4>>2];F[a>>2]=F[b>>2];F[a+4>>2]=c;F[a+8>>2]=F[b+8>>2];b=F[d>>2];if(b){F[d+4>>2]=b;ja(b)}F[d>>2]=a;a=a+12|0;F[d+8>>2]=a;F[d+4>>2]=a;return 1}function Ah(a){a=a|0;var b=0;F[a+24>>2]=1624;F[a>>2]=7948;b=F[a+32>>2];if(b){F[a+36>>2]=b;ja(b)}F[a>>2]=2136;b=F[a+20>>2];F[a+20>>2]=0;if(b){$[F[F[b>>2]+4>>2]](b)}F[a>>2]=1920;b=F[a+16>>2];F[a+16>>2]=0;if(b){xa(b)}return a|0}function li(a,b,c,d){var e=0,f=0,g=0,h=0;f=b^d;g=f>>31;e=b>>31;a=a^e;h=a-e|0;e=(b^e)-((a>>>0>>0)+e|0)|0;a=d>>31;b=c^a;f=f>>31;a=mi(h,e,b-a|0,(a^d)-((a>>>0>b>>>0)+a|0)|0)^f;b=a-f|0;_=(g^_)-((a>>>0>>0)+g|0)|0;return b}function zh(a){a=a|0;var b=0;F[a+24>>2]=1624;F[a>>2]=7948;b=F[a+32>>2];if(b){F[a+36>>2]=b;ja(b)}F[a>>2]=2136;b=F[a+20>>2];F[a+20>>2]=0;if(b){$[F[F[b>>2]+4>>2]](b)}F[a>>2]=1920;b=F[a+16>>2];F[a+16>>2]=0;if(b){xa(b)}ja(a)}function rb(a,b,c){var d=0,e=0,f=0;e=Z-16|0;Z=e;d=F[a+8>>2]&2147483647;a:{if(d>>>0>c>>>0){d=F[a>>2];F[a+4>>2]=c;db(d,b,c);D[e+15|0]=0;D[c+d|0]=G[e+15|0];break a}f=a;a=F[a+4>>2];Gc(f,d-1|0,(c-d|0)+1|0,a,a,c,b)}Z=e+16|0}function xe(a,b){a=a|0;b=b|0;var c=0,d=0;c=Z-16|0;Z=c;a=F[a+4>>2];a:{if((a|0)==-1){break a}D[c+15|0]=a;d=F[b+20>>2];if(!!F[b+16>>2]&(d|0)>=0|(d|0)>0){break a}pb(b,F[b+4>>2],c+15|0,c+16|0)}Z=c+16|0;return(a|0)!=-1|0}function ki(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0;e=c>>>16|0;f=a>>>16|0;j=L(e,f);g=c&65535;h=a&65535;i=L(g,h);f=(i>>>16|0)+L(f,g)|0;e=(f&65535)+L(e,h)|0;_=(L(b,c)+j|0)+L(a,d)+(f>>>16)+(e>>>16)|0;return i&65535|e<<16}function qb(a,b,c){var d=0,e=0;d=Z-16|0;Z=d;a:{if(c>>>0<=10){D[a+11|0]=G[a+11|0]&128|c;D[a+11|0]=G[a+11|0]&127;db(a,b,c);D[d+15|0]=0;D[a+c|0]=G[d+15|0];break a}e=a;a=G[a+11|0]&127;Gc(e,10,c-10|0,a,a,c,b)}Z=d+16|0}function Ec(a,b,c){var d=0;d=F[a+16>>2];if(!d){F[a+36>>2]=1;F[a+24>>2]=c;F[a+16>>2]=b;return}a:{if((b|0)==(d|0)){if(F[a+24>>2]!=2){break a}F[a+24>>2]=c;return}D[a+54|0]=1;F[a+24>>2]=2;F[a+36>>2]=F[a+36>>2]+1}}function vg(){var a=0;a=kb(ka(96));F[a+64>>2]=0;F[a+68>>2]=0;F[a+88>>2]=0;F[a+72>>2]=0;F[a+76>>2]=0;D[a+77|0]=0;D[a+78|0]=0;D[a+79|0]=0;D[a+80|0]=0;D[a+81|0]=0;D[a+82|0]=0;D[a+83|0]=0;D[a+84|0]=0;return a|0}function jh(a,b){a=a|0;b=b|0;var c=0,d=0;F[b>>2]=2;c=F[b+8>>2];d=F[b+12>>2]-c|0;if(d>>>0<=4294967291){Db(b+8|0,d+4|0);c=F[b+8>>2]}b=c+d|0;a=F[a+4>>2];D[b|0]=a;D[b+1|0]=a>>>8;D[b+2|0]=a>>>16;D[b+3|0]=a>>>24}function ge(a){a=a|0;var b=0;F[a>>2]=3016;b=F[a+96>>2];if(b){ja(b)}b=F[a+84>>2];if(b){ja(b)}b=F[a+72>>2];if(b){ja(b)}b=F[a+60>>2];if(b){ja(b)}F[a>>2]=2960;b=F[a+32>>2];if(b){F[a+36>>2]=b;ja(b)}return a|0}function ci(a){a=a|0;var b=0;F[a>>2]=4580;b=F[a+96>>2];if(b){ja(b)}b=F[a+84>>2];if(b){ja(b)}b=F[a+72>>2];if(b){ja(b)}b=F[a+60>>2];if(b){ja(b)}F[a>>2]=2960;b=F[a+32>>2];if(b){F[a+36>>2]=b;ja(b)}return a|0}function Cg(a){a=a|0;var b=0,c=0,d=0;b=F[a+8>>2];d=F[a+12>>2];if((b|0)==(d|0)){return 1}while(1){c=F[b>>2];c=$[F[F[c>>2]+16>>2]](c,F[a+32>>2])|0;if(c){b=b+4|0;if((d|0)!=(b|0)){continue}}break}return c|0}function Pc(a,b){var c=0,d=0;c=F[a+8>>2];a=F[a+12>>2];if((c|0)!=(a|0)){a=a-c>>2;d=a>>>0<=1?1:a;a=0;while(1){if(F[F[(a<<2)+c>>2]+60>>2]==(b|0)){return a}a=a+1|0;if((d|0)!=(a|0)){continue}break}}return-1}function fe(a){a=a|0;var b=0;F[a>>2]=3016;b=F[a+96>>2];if(b){ja(b)}b=F[a+84>>2];if(b){ja(b)}b=F[a+72>>2];if(b){ja(b)}b=F[a+60>>2];if(b){ja(b)}F[a>>2]=2960;b=F[a+32>>2];if(b){F[a+36>>2]=b;ja(b)}ja(a)}function bi(a){a=a|0;var b=0;F[a>>2]=4580;b=F[a+96>>2];if(b){ja(b)}b=F[a+84>>2];if(b){ja(b)}b=F[a+72>>2];if(b){ja(b)}b=F[a+60>>2];if(b){ja(b)}F[a>>2]=2960;b=F[a+32>>2];if(b){F[a+36>>2]=b;ja(b)}ja(a)}function Sc(a,b,c){var d=0,e=0;d=a+4|0;a=Ya(a,b);a:{if((d|0)==(a|0)){break a}b=F[a+32>>2];d=F[a+28>>2];if((b|0)==(d|0)){break a}Sb(c,b-d|0);c=Tb(c);b=F[a+28>>2];la(c,b,F[a+32>>2]-b|0);e=1}return e}function Kd(a){F[a+40>>2]=0;F[a+4>>2]=0;F[a+8>>2]=0;F[a>>2]=10032;F[a+12>>2]=0;F[a+16>>2]=0;F[a+20>>2]=0;F[a+24>>2]=0;F[a+28>>2]=0;F[a+32>>2]=0;E[a+36>>1]=0;F[a+44>>2]=0;F[a>>2]=8080;return a}function kb(a){F[a+8>>2]=0;F[a+12>>2]=0;F[a>>2]=0;F[a+40>>2]=0;F[a+44>>2]=0;F[a+28>>2]=9;D[a+24|0]=1;F[a+56>>2]=-1;F[a+60>>2]=0;F[a+16>>2]=0;F[a+20>>2]=0;F[a+48>>2]=0;F[a+52>>2]=0;return a}function pe(a,b){a=a|0;b=b|0;var c=0,d=0;d=F[a+16>>2];c=0;a:{if(F[a+20>>2]-d>>2<=(b|0)){break a}b=F[(b<<2)+d>>2];c=0;if((b|0)<0){break a}c=bb(F[F[a+36>>2]+(b<<2)>>2])}return c|0}function Nf(){var a=0,b=0;a=ka(40);F[a+4>>2]=0;F[a+8>>2]=0;F[a+24>>2]=0;F[a+28>>2]=0;b=a+16|0;F[b>>2]=0;F[b+4>>2]=0;F[a>>2]=a+4;F[a+12>>2]=b;F[a+32>>2]=0;F[a+36>>2]=0;return a|0}function Xe(a,b){a=a|0;b=b|0;var c=0,d=0;Nc(a,b);a:{if((b|0)<0){break a}d=F[a+88>>2];c=F[a+84>>2];if(d-c>>2<=(b|0)){break a}c=(b<<2)+c|0;b=c+4|0;pa(c,b,d-b|0);F[a+88>>2]=d-4}}function eb(a){var b=0,c=0;b=F[2909];c=a+7&-8;a=b+c|0;a:{if(a>>>0<=b>>>0?c:0){break a}if(a>>>0>aa()<<16>>>0){if(!(X(a|0)|0)){break a}}F[2909]=a;return b}F[2940]=48;return-1}function Th(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;F[a+4>>2]=b;b=F[F[F[b+4>>2]+8>>2]+(c<<2)>>2];F[a+12>>2]=c;F[a+8>>2]=b;a=F[a+8>>2];if(G[a+24|0]==3){d=F[a+28>>2]==9}return d|0}function Tg(a){a=a|0;var b=0;F[a+8>>2]=9556;F[a>>2]=9392;b=F[a+56>>2];if(b){F[a+60>>2]=b;ja(b)}F[a+8>>2]=9372;b=F[a+44>>2];if(b){ja(b)}b=F[a+32>>2];if(b){ja(b)}return a|0}function Ng(a){a=a|0;var b=0;F[a+8>>2]=8624;F[a>>2]=9684;b=F[a+56>>2];if(b){F[a+60>>2]=b;ja(b)}F[a+8>>2]=8876;b=F[a+44>>2];if(b){ja(b)}b=F[a+32>>2];if(b){ja(b)}return a|0}function Ee(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=F[a+8>>2];a:{if(!G[d+24|0]){break a}if(!ac(d,F[b+4>>2]-F[b>>2]>>2)){break a}e=$[F[F[a>>2]+32>>2]](a,b,c)|0}return e|0}function Fh(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;F[a+4>>2]=b;d=F[F[F[b+4>>2]+8>>2]+(c<<2)>>2];F[a+12>>2]=c;F[a+8>>2]=d;return F[F[F[F[b+4>>2]+8>>2]+(c<<2)>>2]+28>>2]==9|0}function Ca(a,b){if(b){Ca(a,F[b>>2]);Ca(a,F[b+4>>2]);a=F[b+28>>2];F[b+28>>2]=0;if(a){Ca(a+12|0,F[a+16>>2]);Ba(a,F[a+4>>2]);ja(a)}if(D[b+27|0]<0){ja(F[b+16>>2])}ja(b)}}function Sg(a){a=a|0;var b=0;F[a+8>>2]=9556;F[a>>2]=9392;b=F[a+56>>2];if(b){F[a+60>>2]=b;ja(b)}F[a+8>>2]=9372;b=F[a+44>>2];if(b){ja(b)}b=F[a+32>>2];if(b){ja(b)}ja(a)}function Mg(a){a=a|0;var b=0;F[a+8>>2]=8624;F[a>>2]=9684;b=F[a+56>>2];if(b){F[a+60>>2]=b;ja(b)}F[a+8>>2]=8876;b=F[a+44>>2];if(b){ja(b)}b=F[a+32>>2];if(b){ja(b)}ja(a)}function Hc(a,b){var c=0,d=0,e=0,f=0;F[a>>2]=11356;F[a>>2]=11468;c=ya(b);d=ka(c+13|0);F[d+8>>2]=0;F[d+4>>2]=c;F[d>>2]=c;e=a,f=la(d+12|0,b,c+1|0),F[e+4>>2]=f;return a}function hc(a,b,c){a:{if(b){b=0;if(!ld(1,c,a)){break a}}D[a+36|0]=1;F[a+32>>2]=0;b=F[a+16>>2];c=b+F[a>>2]|0;F[a+24>>2]=c;F[a+28>>2]=c+(F[a+8>>2]-b|0);b=1}return b}function Ue(a,b){a=a|0;b=b|0;var c=0;a:{if(!($[F[F[a>>2]+36>>2]](a,b)|0)){break a}if(!($[F[F[a>>2]+40>>2]](a,b)|0)){break a}c=$[F[F[a>>2]+44>>2]](a)|0}return c|0}function _d(a){a=a|0;var b=0;a:{if(!F[a- -64>>2]|!F[a+68>>2]|(!F[a+44>>2]|!F[a+48>>2])){break a}if(!F[a+52>>2]|!F[a+56>>2]){break a}b=F[a+92>>2]!=-1}return b|0}function ii(a,b){a=a|0;b=b|0;var c=0;b=F[b+88>>2];if(!(!b|F[b>>2]!=2)){c=a;a=F[b+8>>2];F[c+4>>2]=G[a|0]|G[a+1|0]<<8|(G[a+2|0]<<16|G[a+3|0]<<24);c=1}return c|0}function wc(a){a=a|0;var b=0;F[a>>2]=2136;b=F[a+20>>2];F[a+20>>2]=0;if(b){$[F[F[b>>2]+4>>2]](b)}F[a>>2]=1920;b=F[a+16>>2];F[a+16>>2]=0;if(b){xa(b)}return a|0}function Ud(a){a=a|0;var b=0;a:{if(!F[a+48>>2]|!F[a+52>>2]|(!F[a+28>>2]|!F[a+32>>2])){break a}if(!F[a+36>>2]|!F[a+40>>2]){break a}b=F[a+76>>2]!=-1}return b|0}function Ug(a){a=a|0;var b=0;F[a>>2]=9556;b=F[a+48>>2];if(b){F[a+52>>2]=b;ja(b)}F[a>>2]=9372;b=F[a+36>>2];if(b){ja(b)}b=F[a+24>>2];if(b){ja(b)}return a|0}function Ed(a){a=a|0;var b=0;F[a>>2]=8624;b=F[a+48>>2];if(b){F[a+52>>2]=b;ja(b)}F[a>>2]=8876;b=F[a+36>>2];if(b){ja(b)}b=F[a+24>>2];if(b){ja(b)}return a|0}function vc(a){a=a|0;var b=0;F[a>>2]=2136;b=F[a+20>>2];F[a+20>>2]=0;if(b){$[F[F[b>>2]+4>>2]](b)}F[a>>2]=1920;b=F[a+16>>2];F[a+16>>2]=0;if(b){xa(b)}ja(a)}function yg(){var a=0,b=0;b=ka(40);F[b>>2]=-1;a=b+8|0;F[a+16>>2]=0;F[a+20>>2]=0;F[a+8>>2]=0;F[a>>2]=0;F[a+4>>2]=0;F[a+24>>2]=0;F[a+28>>2]=0;return b|0}function eh(a){a=a|0;var b=0;F[a>>2]=8624;b=F[a+48>>2];if(b){F[a+52>>2]=b;ja(b)}F[a>>2]=8876;b=F[a+36>>2];if(b){ja(b)}b=F[a+24>>2];if(b){ja(b)}ja(a)}function Og(a){a=a|0;var b=0;F[a>>2]=9556;b=F[a+48>>2];if(b){F[a+52>>2]=b;ja(b)}F[a>>2]=9372;b=F[a+36>>2];if(b){ja(b)}b=F[a+24>>2];if(b){ja(b)}ja(a)}function Ja(a){F[a+8>>2]=0;F[a+12>>2]=0;F[a>>2]=0;F[a+16>>2]=0;F[a+20>>2]=0;F[a+32>>2]=0;F[a+24>>2]=0;F[a+28>>2]=0;E[a+38>>1]=0;D[a+36|0]=0;return a}function Me(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;if(La(a,F[b+8>>2],f)){Dc(b,c,d,e);return}a=F[a+8>>2];$[F[F[a>>2]+20>>2]](a,b,c,d,e,f)}function Eh(a,b,c){a=a|0;b=b|0;c=c|0;a:{if(G[F[a+4>>2]+36|0]>=2){b=0;if(!($[F[F[a>>2]+52>>2]](a)|0)){break a}}b=id(a+24|0,F[a+16>>2])}return b|0}function hg(){var a=0;a=Rc(ka(108));F[a+84>>2]=0;F[a+88>>2]=0;F[a>>2]=10240;F[a+92>>2]=0;F[a+96>>2]=0;F[a+100>>2]=0;F[a+104>>2]=0;return a|0}function Qc(a,b){var c=0;c=-1;a:{if((b|0)==-1|(b|0)>4){break a}b=L(b,12)+a|0;a=F[b+20>>2];if((F[b+24>>2]-a|0)<=0){break a}c=F[a>>2]}return c}function cc(a,b,c,d,e,f,g){F[a>>2]=0;F[a+56>>2]=b;F[a+48>>2]=0;F[a+52>>2]=0;F[a+40>>2]=f;F[a+44>>2]=g;D[a+32|0]=e;F[a+28>>2]=d;D[a+24|0]=c}function Sh(a,b,c){a=a|0;b=b|0;c=c|0;a:{if(G[F[a+4>>2]+36|0]>=2){b=0;if(!uc(a+24|0,bb(a),c)){break a}}b=id(a+24|0,F[a+16>>2])}return b|0}function _e(a){a=a|0;var b=0;F[a>>2]=10240;b=F[a+96>>2];if(b){F[a+100>>2]=b;ja(b)}b=F[a+84>>2];if(b){F[a+88>>2]=b;ja(b)}return tb(a)|0}function Tb(a){var b=0;if(G[a+11|0]>>>7|0){b=F[a+4>>2]}else{b=G[a+11|0]&127}if(!b){sc(1222);v()}if(G[a+11|0]>>>7|0){a=F[a>>2]}return a}function Ze(a){a=a|0;var b=0;F[a>>2]=10240;b=F[a+96>>2];if(b){F[a+100>>2]=b;ja(b)}b=F[a+84>>2];if(b){F[a+88>>2]=b;ja(b)}ja(tb(a))}function ce(a){a=a|0;var b=0;F[a>>2]=3264;b=F[a+76>>2];if(b){ja(b)}F[a>>2]=2960;b=F[a+32>>2];if(b){F[a+36>>2]=b;ja(b)}return a|0}function _h(a){a=a|0;var b=0;F[a>>2]=4816;b=F[a+76>>2];if(b){ja(b)}F[a>>2]=2960;b=F[a+32>>2];if(b){F[a+36>>2]=b;ja(b)}return a|0}function Ba(a,b){if(b){Ba(a,F[b>>2]);Ba(a,F[b+4>>2]);a=F[b+28>>2];if(a){F[b+32>>2]=a;ja(a)}if(D[b+27|0]<0){ja(F[b+16>>2])}ja(b)}}function Wf(){var a=0;a=ka(28);F[a>>2]=0;F[a+4>>2]=0;F[a+24>>2]=0;F[a+16>>2]=0;F[a+20>>2]=0;F[a+8>>2]=0;F[a+12>>2]=0;return a|0}function We(a){a=a|0;var b=0;F[a>>2]=1776;b=F[a+16>>2];if(b){F[a+20>>2]=b;ja(b)}b=F[a+4>>2];if(b){F[a+8>>2]=b;ja(b)}return a|0}function fg(){var a=0,b=0;a=ka(24);F[a+4>>2]=0;F[a+8>>2]=0;b=a+16|0;F[b>>2]=0;F[b+4>>2]=0;F[a>>2]=a+4;F[a+12>>2]=b;return a|0}function Pe(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;if(La(a,F[b+8>>2],0)){Ec(b,c,d);return}a=F[a+8>>2];$[F[F[a>>2]+28>>2]](a,b,c,d)}function be(a){a=a|0;var b=0;F[a>>2]=3264;b=F[a+76>>2];if(b){ja(b)}F[a>>2]=2960;b=F[a+32>>2];if(b){F[a+36>>2]=b;ja(b)}ja(a)}function Zh(a){a=a|0;var b=0;F[a>>2]=4816;b=F[a+76>>2];if(b){ja(b)}F[a>>2]=2960;b=F[a+32>>2];if(b){F[a+36>>2]=b;ja(b)}ja(a)}function ka(a){var b=0;a=a?a:1;a:{while(1){b=Ub(a);if(b){break a}b=F[3065];if(b){$[b|0]();continue}break}V();v()}return b}function ib(a,b){if(b){ib(a,F[b>>2]);ib(a,F[b+4>>2]);if(D[b+39|0]<0){ja(F[b+28>>2])}if(D[b+27|0]<0){ja(F[b+16>>2])}ja(b)}}function Cc(a){a=a|0;var b=0,c=0;F[a>>2]=11468;b=F[a+4>>2]-12|0;c=F[b+8>>2]-1|0;F[b+8>>2]=c;if((c|0)<0){ja(b)}return a|0}function ng(){var a=0;a=ka(24);F[a+8>>2]=0;F[a+12>>2]=0;F[a+4>>2]=-1;F[a>>2]=1624;F[a+16>>2]=0;F[a+20>>2]=0;return a|0}function Ac(a,b,c){a=a|0;b=b|0;c=c|0;F[a+4>>2]=b;b=F[F[F[b+4>>2]+8>>2]+(c<<2)>>2];F[a+12>>2]=c;F[a+8>>2]=b;return 1}function pc(a){a=a|0;var b=0;if(!(!F[a+60>>2]|!F[a+44>>2]|(!F[a+48>>2]|!F[a+52>>2]))){b=F[a+56>>2]!=0}return b|0}function Ic(a,b){if(G[a+11|0]>>>7|0){F[a+4>>2]=b;return}D[a+11|0]=G[a+11|0]&128|b;D[a+11|0]=G[a+11|0]&127}function gi(a){a=a|0;var b=0;F[a>>2]=3500;F[a>>2]=2960;b=F[a+32>>2];if(b){F[a+36>>2]=b;ja(b)}return a|0}function Xh(a){a=a|0;var b=0;F[a>>2]=5040;F[a>>2]=2960;b=F[a+32>>2];if(b){F[a+36>>2]=b;ja(b)}return a|0}function nf(a){a=a|0;if(a){if(D[a+39|0]<0){ja(F[a+28>>2])}$b(a+12|0,F[a+16>>2]);ib(a,F[a+4>>2]);ja(a)}}function dh(a){a=a|0;var b=0;F[a>>2]=8876;b=F[a+36>>2];if(b){ja(b)}b=F[a+24>>2];if(b){ja(b)}return a|0}function Wg(a){a=a|0;var b=0;F[a>>2]=9372;b=F[a+36>>2];if(b){ja(b)}b=F[a+24>>2];if(b){ja(b)}return a|0}function ob(a){a=a|0;var b=0;if(!(!F[a+52>>2]|(!F[a+44>>2]|!F[a+48>>2]))){b=F[a+56>>2]!=0}return b|0}function oc(a,b){a=a|0;b=b|0;var c=0;if(!(F[b+56>>2]|!b|G[b+24|0]!=3)){F[a+60>>2]=b;c=1}return c|0}function fi(a){a=a|0;var b=0;F[a>>2]=3500;F[a>>2]=2960;b=F[a+32>>2];if(b){F[a+36>>2]=b;ja(b)}ja(a)}function Wh(a){a=a|0;var b=0;F[a>>2]=5040;F[a>>2]=2960;b=F[a+32>>2];if(b){F[a+36>>2]=b;ja(b)}ja(a)}function zg(a,b,c){a=a|0;b=b|0;c=c|0;F[a+16>>2]=0;F[a+20>>2]=0;F[a>>2]=b;F[a+8>>2]=c;F[a+12>>2]=0}function ch(a){a=a|0;var b=0;F[a>>2]=8876;b=F[a+36>>2];if(b){ja(b)}b=F[a+24>>2];if(b){ja(b)}ja(a)}function Zd(a,b){a=a|0;b=b|0;var c=0;if(!(F[b+56>>2]|G[b+24|0]!=3)){F[a- -64>>2]=b;c=1}return c|0}function Vg(a){a=a|0;var b=0;F[a>>2]=9372;b=F[a+36>>2];if(b){ja(b)}b=F[a+24>>2];if(b){ja(b)}ja(a)}function Td(a,b){a=a|0;b=b|0;var c=0;if(!(F[b+56>>2]|G[b+24|0]!=3)){F[a+48>>2]=b;c=1}return c|0}function Le(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;if(La(a,F[b+8>>2],f)){Dc(b,c,d,e)}}function oa(){var a=0;a=Rb(4);F[a>>2]=11356;F[a>>2]=11316;F[a>>2]=11336;W(a|0,11448,14);v()}function je(a){a=a|0;var b=0;F[a>>2]=2960;b=F[a+32>>2];if(b){F[a+36>>2]=b;ja(b)}return a|0}function Ae(a){a=a|0;var b=0;F[a>>2]=1920;b=F[a+16>>2];F[a+16>>2]=0;if(b){xa(b)}return a|0}function Pg(a){a=a|0;var b=0;F[a>>2]=1624;b=F[a+8>>2];if(b){F[a+12>>2]=b;ja(b)}return a|0}function Ch(a){a=a|0;var b=0;b=bb(a);return qd(a+24|0,b?b:F[a+8>>2],F[F[a+4>>2]+32>>2])|0}function ze(a){a=a|0;var b=0;F[a>>2]=1920;b=F[a+16>>2];F[a+16>>2]=0;if(b){xa(b)}ja(a)}function Ob(a){a=a|0;var b=0;F[a>>2]=2960;b=F[a+32>>2];if(b){F[a+36>>2]=b;ja(b)}ja(a)}function Hg(a){a=a|0;var b=0;F[a>>2]=1624;b=F[a+8>>2];if(b){F[a+12>>2]=b;ja(b)}ja(a)}function oe(a,b){a=a|0;b=b|0;return $[F[F[a>>2]+48>>2]](a,F[b+4>>2]-F[b>>2]>>2)|0}function $b(a,b){if(b){$b(a,F[b>>2]);$b(a,F[b+4>>2]);ib(b+20|0,F[b+24>>2]);ja(b)}}function xg(a){a=a|0;var b=0;if(a){b=F[a+8>>2];if(b){F[a+12>>2]=b;ja(b)}ja(a)}}function xh(a){a=a|0;if(!F[a+44>>2]){return 0}return $[F[F[a>>2]+48>>2]](a)|0}function ni(a){var b=0;while(1){if(a){a=a-1&a;b=b+1|0;continue}break}return b}function Qe(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;if(La(a,F[b+8>>2],0)){Ec(b,c,d)}}function vh(a,b){a=a|0;b=b|0;a=F[a+48>>2];return $[F[F[a>>2]+20>>2]](a,b)|0}function oi(a){var b=0;b=a&31;a=0-a&31;return(-1>>>b&-2)<>>a} function oh(a,b){a=a|0;b=b|0;a=F[a+48>>2];return $[F[F[a>>2]+12>>2]](a,b)|0}function nh(a,b){a=a|0;b=b|0;a=F[a+48>>2];return $[F[F[a>>2]+16>>2]](a,b)|0}function Xa(){var a=0;a=ka(12);F[a>>2]=0;F[a+4>>2]=0;F[a+8>>2]=0;return a|0}function Wa(a){a=a|0;var b=0;if(a){b=F[a>>2];if(b){F[a+4>>2]=b;ja(b)}ja(a)}}function mf(a,b,c){a=a|0;b=b|0;c=c|0;F[a+32>>2]=c;F[a+28>>2]=b;return 1}function eg(a){a=a|0;if(a){Ca(a+12|0,F[a+16>>2]);Ba(a,F[a+4>>2]);ja(a)}}function Lb(a,b){a=a|0;b=b|0;if(b>>>0<=1){F[a+28>>2]=b}return b>>>0<2|0}function Fg(a,b){a=a|0;b=b|0;D[b+84|0]=1;F[b+72>>2]=F[b+68>>2];return 1}function kg(){var a=0;a=ka(8);F[a+4>>2]=-1;F[a>>2]=1032;return a|0}function Hf(a,b,c){a=a|0;b=b|0;c=c|0;return F[F[b+8>>2]+(c<<2)>>2]}function th(a){a=a|0;a=F[a+48>>2];return $[F[F[a>>2]+24>>2]](a)|0}function sh(a){a=a|0;a=F[a+48>>2];return $[F[F[a>>2]+28>>2]](a)|0}function ph(a){a=a|0;a=F[a+48>>2];return $[F[F[a>>2]+36>>2]](a)|0}function Rh(a,b){a=a|0;b=b|0;return zc(a+24|0,bb(a),F[a+8>>2])|0}function Bh(a,b){a=a|0;b=b|0;return xd(a+24|0,bb(a),F[a+8>>2])|0}function bg(a){a=a|0;if(a){if(D[a+15|0]<0){ja(F[a+4>>2])}ja(a)}}function Ke(a){a=a|0;if(!a){return 0}return(Fc(a,11164)|0)!=0|0}function Fe(a,b){a=a|0;b=b|0;F[a+12>>2]=-1;F[a+8>>2]=b;return 1}function hd(a,b){a=a|0;b=b|0;return $[F[F[a>>2]+12>>2]](a,b)|0}function Dh(a,b){a=a|0;b=b|0;return $[F[F[a>>2]+56>>2]](a,b)|0}function sc(a){a=Hc(Rb(8),a);F[a>>2]=11568;W(a|0,11600,1);v()}function mg(a,b){a=a|0;b=b|0;return M(J[F[a+8>>2]+(b<<2)>>2])}function Rd(a){a=Hc(Rb(8),a);F[a>>2]=11516;W(a|0,11548,1);v()}function $f(a,b){a=a|0;b=b|0;return M(J[F[a>>2]+(b<<2)>>2])}function gg(a){a=a|0;return(F[a+100>>2]-F[a+96>>2]|0)/12|0}function cg(a){a=a|0;return(D[a+15|0]<0?F[a+4>>2]:a+4|0)|0}function Re(a,b){a=a|0;b=b|0;return F[F[a+4>>2]+(b<<2)>>2]}function dd(a,b){a=a|0;b=b|0;return F[F[a>>2]+(b<<2)>>2]}function Yf(a,b){a=a|0;b=b|0;return E[F[a>>2]+(b<<1)>>1]}function Xf(a,b){a=a|0;b=b|0;return H[F[a>>2]+(b<<1)>>1]}function Vd(a,b,c){a=a|0;b=b|0;c=c|0;return xc(a,b,c)|0}function sb(a,b){var c=0;c=ka(b);F[a+4>>2]=b;F[a>>2]=c}function Kf(a,b,c){a=a|0;b=b|0;c=c|0;return Qc(b,c)|0}function Rc(a){F[a>>2]=10300;ma(a+4|0,0,80);return a}function ji(a){if(a){return 31-O(a-1^a)|0}return 32}function gd(a){a=a|0;return F[a+12>>2]-F[a+8>>2]>>2}function _f(a,b){a=a|0;b=b|0;return D[F[a>>2]+b|0]}function Zf(a,b){a=a|0;b=b|0;return G[F[a>>2]+b|0]}function Ie(a){a=a|0;return F[a+8>>2]-F[a+4>>2]>>2}function wb(a){a=a|0;if(a){$[F[F[a>>2]+4>>2]](a)}}function Jd(a,b){a=a|0;b=b|0;F[a+4>>2]=b;return 1}function ed(a){a=a|0;return F[a+4>>2]-F[a>>2]>>1}function dc(a){a=a|0;return F[a+4>>2]-F[a>>2]>>2}function fd(a){a=a|0;return F[a+4>>2]-F[a>>2]|0}function ke(a){a=a|0;return G[F[a+8>>2]+24|0]}function Qf(a,b){a=a|0;b=b|0;return F[b+8>>2]}function Ff(a,b){a=a|0;b=b|0;return F[b+4>>2]}function De(a,b,c){a=a|0;b=b|0;c=c|0;return 1}function Bg(a,b){a=a|0;b=b|0;return G[b+24|0]}function Oh(a){a=a|0;F[a>>2]=5928;return a|0}function Jh(a){a=a|0;F[a>>2]=6932;return a|0}function lg(a){a=a|0;return M(J[a+20>>2])}function Nh(a){a=a|0;F[a>>2]=5928;ja(a)}function Ih(a){a=a|0;F[a>>2]=6932;ja(a)}function ug(a){a=a|0;return F[a+88>>2]}function tg(a){a=a|0;return F[a+56>>2]}function qg(a){a=a|0;return F[a+40>>2]}function pg(a){a=a|0;return F[a+48>>2]}function og(a){a=a|0;return F[a+60>>2]}function ec(a){a=a|0;return F[a+80>>2]}function cb(a){a=a|0;return F[a+28>>2]}function vd(a){a=a|0;return F[a+8>>2]}function tc(a,b){a=a|0;b=b|0;return-1}function sg(a){a=a|0;return D[a+24|0]}function rg(a){a=a|0;return G[a+32|0]}function dg(a){a=a|0;return!F[a>>2]|0}function Wd(a,b){a=a|0;b=b|0;return 6}function Va(a){a=a|0;return F[a+4>>2]}function Rb(a){return Ub(a+80|0)+80|0}function Qh(a,b){a=a|0;b=b|0;return 2}function Ia(a,b){a=a|0;b=b|0;return 0}function Bc(a,b){a=a|0;b=b|0;return 1}function jd(a){a=a|0;return F[a>>2]}function wg(){return kb(ka(64))|0}function ig(){return Rc(ka(84))|0}function fc(a){a=a|0;if(a){ja(a)}}function Ag(){return Ja(ka(40))|0}function Qb(a){a=a|0;Cc(a);ja(a)}function Je(a){a=a|0;return 1161}function He(a){a=a|0;return 1235}function Ge(a){a=a|0;return 1201}function Pa(a){a=a|0;return a|0}function hh(a){a=a|0;ja(ud(a))}function gh(a){a=a|0;ja(sd(a))}function Ve(a){a=a|0;ja(tb(a))}function ua(a){a=a|0;return 1}function rc(a){a=a|0;return 4}function qc(a){a=a|0;return 5}function Xd(a){a=a|0;return 2}function Ua(a){a=a|0;return 0}function Nb(a){a=a|0;return 6}function Mh(a){a=a|0;return 3}function za(){Rd(1222);v()}function ta(){sc(1154);v()}function na(){Rd(1154);v()}function Ha(a){a=a|0;ja(a)}function Ra(a){a=a|0;v()}function ff(){return 10}function ef(){return 11}function df(){return 12}function vb(){return-1}function ub(){return 1}function lf(){return 5}function kf(){return 6}function jf(){return 7}function jb(){return 0}function hf(){return 8}function gf(){return 9}function cf(){return-2}function bf(){return-3}function bd(){return 3}function af(){return-4}function ad(){return 4}function _b(){return 2}function $e(){return-5}function Te(){V();v()}function Jc(a){a=a|0}function ae(){} // EMSCRIPTEN_END_FUNCS e=G;p(q);var $=c([null,Cc,Pa,Ha,Xd,ii,jh,ag,zc,xe,uc,jg,Wd,Qh,Pa,Pg,Hg,ua,yh,mh,kh,xd,fh,qd,Wd,Bg,We,Ra,mf,$c,Ue,Re,Ie,cb,Ia,Te,Bc,ua,Ae,ze,Ac,Fe,Ee,De,Bc,Ce,Be,re,qe,ye,we,pe,ve,ue,te,se,wc,vc,Ac,oe,ne,xc,me,ke,le,je,Ob,ua,Va,ob,Ua,tc,Ia,Ua,ua,ie,he,Ra,Ra,ge,fe,rc,ob,ee,de,ce,be,qc,pc,ua,Ia,oc,$d,hi,gi,fi,Nb,_d,ua,Ia,Zd,Yd,ei,Pa,Ha,Lb,cb,Mb,Ra,Ob,ua,ob,di,Ra,ci,bi,rc,ob,ai,$h,_h,Zh,qc,pc,ua,Ia,oc,$d,Yh,Xh,Wh,Nb,_d,ua,Ia,Zd,Yd,Vh,Pa,Ha,Lb,cb,Kb,Ra,Ob,Ua,ua,Uh,wc,vc,Th,Sh,Vd,Ph,Xd,Rh,Oh,Nh,Nb,Va,Ud,ua,Ia,Td,ua,Mh,Sd,Lh,Pa,Ha,Lb,cb,Mb,Jh,Ih,Nb,Ud,ua,Ia,Td,Sd,Hh,Pa,Ha,Lb,cb,Kb,Pa,Ha,Ua,ua,Ua,tc,Ia,Kh,Gh,Ah,zh,Fh,Eh,Vd,Dh,Ch,Bh,wh,Ra,ua,ua,xh,Dg,Cg,ua,Ua,Ia,Ia,rh,qh,uh,vh,sh,ph,oh,nh,th,ud,hh,Jd,Id,Hd,Gd,lh,ua,Va,vd,sd,gh,Jd,Id,Hd,Gd,ih,ua,Va,vd,Ed,eh,Fd,dh,ch,$g,_g,Zg,Yg,ah,Xg,bh,Wg,Vg,Tg,Sg,Rg,Qg,Ug,Og,Ng,Mg,Lg,Kg,Gg,Ig,Jg,Pa,Ha,Fg,Eg,Ra,Ua,ua,_e,Ze,Ye,Xe,tb,Ve,Oc,Nc,Pa,Ha,Jc,Jc,Se,Le,Ne,Qe,Ha,Me,Oe,Pe,Ha,He,Ha,Ge,Ha,Je,Qb,Va,Qb,Qb]);function aa(){return C.byteLength/65536|0}function fa(ga){ga=ga|0;var ba=aa()|0;var ca=ba+ga|0;if(ba=endIdx))++endPtr;if(endPtr-idx>16&&heapOrArray.buffer&&UTF8Decoder){return UTF8Decoder.decode(heapOrArray.subarray(idx,endPtr))}var str="";while(idx>10,56320|ch&1023)}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&c<=57343){len+=4;++i}else{len+=3}}return len}var HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateMemoryViews(){var b=wasmMemory.buffer;Module["HEAP8"]=HEAP8=new Int8Array(b);Module["HEAP16"]=HEAP16=new Int16Array(b);Module["HEAP32"]=HEAP32=new Int32Array(b);Module["HEAPU8"]=HEAPU8=new Uint8Array(b);Module["HEAPU16"]=HEAPU16=new Uint16Array(b);Module["HEAPU32"]=HEAPU32=new Uint32Array(b);Module["HEAPF32"]=HEAPF32=new Float32Array(b);Module["HEAPF64"]=HEAPF64=new Float64Array(b)}var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||16777216;assert(INITIAL_MEMORY>=65536,"INITIAL_MEMORY should be larger than STACK_SIZE, was "+INITIAL_MEMORY+"! (STACK_SIZE="+65536+")");if(Module["wasmMemory"]){wasmMemory=Module["wasmMemory"]}else{wasmMemory=new WebAssembly.Memory({"initial":INITIAL_MEMORY/65536,"maximum":2147483648/65536})}updateMemoryViews();INITIAL_MEMORY=wasmMemory.buffer.byteLength;var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;function keepRuntimeAlive(){return noExitRuntime}function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function addRunDependency(id){runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}function abort(what){if(Module["onAbort"]){Module["onAbort"](what)}what="Aborted("+what+")";err(what);ABORT=true;EXITSTATUS=1;what+=". Build with -sASSERTIONS for more info.";var e=new WebAssembly.RuntimeError(what);readyPromiseReject(e);throw e}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith("file://")}var wasmBinaryFile;wasmBinaryFile="draco_decoder_gltf.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}var binary=tryParseAsDataURI(file);if(binary){return binary}if(readBinary){return readBinary(file)}throw"both async and sync fetching of the wasm failed"}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch=="function"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={"a":wasmImports};function receiveInstance(instance,module){var exports=instance.exports;Module["asm"]=exports;wasmTable=Module["asm"]["g"];addOnInit(Module["asm"]["f"]);removeRunDependency("wasm-instantiate")}addRunDependency("wasm-instantiate");function receiveInstantiationResult(result){receiveInstance(result["instance"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(function(instance){return instance}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming=="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&!ENVIRONMENT_IS_NODE&&typeof fetch=="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);readyPromiseReject(e)}}instantiateAsync().catch(readyPromiseReject);return{}}function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){callbacks.shift()(Module)}}function intArrayToString(array){var ret=[];for(var i=0;i255){chr&=255}ret.push(String.fromCharCode(chr))}return ret.join("")}function ExceptionInfo(excPtr){this.excPtr=excPtr;this.ptr=excPtr-24;this.set_type=function(type){HEAPU32[this.ptr+4>>2]=type};this.get_type=function(){return HEAPU32[this.ptr+4>>2]};this.set_destructor=function(destructor){HEAPU32[this.ptr+8>>2]=destructor};this.get_destructor=function(){return HEAPU32[this.ptr+8>>2]};this.set_refcount=function(refcount){HEAP32[this.ptr>>2]=refcount};this.set_caught=function(caught){caught=caught?1:0;HEAP8[this.ptr+12>>0]=caught};this.get_caught=function(){return HEAP8[this.ptr+12>>0]!=0};this.set_rethrown=function(rethrown){rethrown=rethrown?1:0;HEAP8[this.ptr+13>>0]=rethrown};this.get_rethrown=function(){return HEAP8[this.ptr+13>>0]!=0};this.init=function(type,destructor){this.set_adjusted_ptr(0);this.set_type(type);this.set_destructor(destructor);this.set_refcount(0);this.set_caught(false);this.set_rethrown(false)};this.add_ref=function(){var value=HEAP32[this.ptr>>2];HEAP32[this.ptr>>2]=value+1};this.release_ref=function(){var prev=HEAP32[this.ptr>>2];HEAP32[this.ptr>>2]=prev-1;return prev===1};this.set_adjusted_ptr=function(adjustedPtr){HEAPU32[this.ptr+16>>2]=adjustedPtr};this.get_adjusted_ptr=function(){return HEAPU32[this.ptr+16>>2]};this.get_exception_ptr=function(){var isPointer=___cxa_is_pointer_type(this.get_type());if(isPointer){return HEAPU32[this.excPtr>>2]}var adjusted=this.get_adjusted_ptr();if(adjusted!==0)return adjusted;return this.excPtr}}var exceptionLast=0;var uncaughtExceptionCount=0;function ___cxa_throw(ptr,type,destructor){var info=new ExceptionInfo(ptr);info.init(type,destructor);exceptionLast=ptr;uncaughtExceptionCount++;throw ptr}function _abort(){abort("")}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function getHeapMax(){return 2147483648}function emscripten_realloc_buffer(size){var b=wasmMemory.buffer;try{wasmMemory.grow(size-b.byteLength+65535>>>16);updateMemoryViews();return 1}catch(e){}}function _emscripten_resize_heap(requestedSize){var oldSize=HEAPU8.length;requestedSize=requestedSize>>>0;var maxHeapSize=getHeapMax();if(requestedSize>maxHeapSize){return false}let alignUp=(x,multiple)=>x+(multiple-x%multiple)%multiple;for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignUp(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=emscripten_realloc_buffer(newSize);if(replacement){return true}}return false}function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var decodeBase64=typeof atob=="function"?atob:function(input){var keyStr="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";var output="";var chr1,chr2,chr3;var enc1,enc2,enc3,enc4;var i=0;input=input.replace(/[^A-Za-z0-9\+\/\=]/g,"");do{enc1=keyStr.indexOf(input.charAt(i++));enc2=keyStr.indexOf(input.charAt(i++));enc3=keyStr.indexOf(input.charAt(i++));enc4=keyStr.indexOf(input.charAt(i++));chr1=enc1<<2|enc2>>4;chr2=(enc2&15)<<4|enc3>>2;chr3=(enc3&3)<<6|enc4;output=output+String.fromCharCode(chr1);if(enc3!==64){output=output+String.fromCharCode(chr2)}if(enc4!==64){output=output+String.fromCharCode(chr3)}}while(i0){return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();readyPromiseResolve(Module);if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}run();function WrapperObject(){}WrapperObject.prototype=Object.create(WrapperObject.prototype);WrapperObject.prototype.constructor=WrapperObject;WrapperObject.prototype.__class__=WrapperObject;WrapperObject.__cache__={};Module["WrapperObject"]=WrapperObject;function getCache(__class__){return(__class__||WrapperObject).__cache__}Module["getCache"]=getCache;function wrapPointer(ptr,__class__){var cache=getCache(__class__);var ret=cache[ptr];if(ret)return ret;ret=Object.create((__class__||WrapperObject).prototype);ret.ptr=ptr;return cache[ptr]=ret}Module["wrapPointer"]=wrapPointer;function castObject(obj,__class__){return wrapPointer(obj.ptr,__class__)}Module["castObject"]=castObject;Module["NULL"]=wrapPointer(0);function destroy(obj){if(!obj["__destroy__"])throw"Error: Cannot destroy object. (Did you create it yourself?)";obj["__destroy__"]();delete getCache(obj.__class__)[obj.ptr]}Module["destroy"]=destroy;function compare(obj1,obj2){return obj1.ptr===obj2.ptr}Module["compare"]=compare;function getPointer(obj){return obj.ptr}Module["getPointer"]=getPointer;function getClass(obj){return obj.__class__}Module["getClass"]=getClass;var ensureCache={buffer:0,size:0,pos:0,temps:[],needed:0,prepare:function(){if(ensureCache.needed){for(var i=0;i=ensureCache.size){assert(len>0);ensureCache.needed+=len;ret=Module["_malloc"](len);ensureCache.temps.push(ret)}else{ret=ensureCache.buffer+ensureCache.pos;ensureCache.pos+=len}return ret},copy:function(array,view,offset){offset>>>=0;var bytes=view.BYTES_PER_ELEMENT;switch(bytes){case 2:offset>>>=1;break;case 4:offset>>>=2;break;case 8:offset>>>=3;break}for(var i=0;i { var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined; if (typeof __filename !== 'undefined') _scriptDir = _scriptDir || __filename; return ( function(DracoEncoderModule = {}) { var Module=typeof DracoEncoderModule!="undefined"?DracoEncoderModule:{};var readyPromiseResolve,readyPromiseReject;Module["ready"]=new Promise(function(resolve,reject){readyPromiseResolve=resolve;readyPromiseReject=reject});var isRuntimeInitialized=false;var isModuleParsed=false;Module["onRuntimeInitialized"]=function(){isRuntimeInitialized=true;if(isModuleParsed){if(typeof Module["onModuleLoaded"]==="function"){Module["onModuleLoaded"](Module)}}};Module["onModuleParsed"]=function(){isModuleParsed=true;if(isRuntimeInitialized){if(typeof Module["onModuleLoaded"]==="function"){Module["onModuleLoaded"](Module)}}};function isVersionSupported(versionString){if(typeof versionString!=="string")return false;const version=versionString.split(".");if(version.length<2||version.length>3)return false;if(version[0]==1&&version[1]>=0&&version[1]<=5)return true;if(version[0]!=0||version[1]>10)return false;return true}Module["isVersionSupported"]=isVersionSupported;var moduleOverrides=Object.assign({},Module);var arguments_=[];var thisProgram="./this.program";var quit_=(status,toThrow)=>{throw toThrow};var ENVIRONMENT_IS_WEB=typeof window=="object";var ENVIRONMENT_IS_WORKER=typeof importScripts=="function";var ENVIRONMENT_IS_NODE=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string";var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;function logExceptionOnExit(e){if(e instanceof ExitStatus)return;let toLog=e;err("exiting due to exception: "+toLog)}if(ENVIRONMENT_IS_NODE){var fs=require("fs");var nodePath=require("path");if(ENVIRONMENT_IS_WORKER){scriptDirectory=nodePath.dirname(scriptDirectory)+"/"}else{scriptDirectory=__dirname+"/"}read_=(filename,binary)=>{var ret=tryParseAsDataURI(filename);if(ret){return binary?ret:ret.toString()}filename=isFileURI(filename)?new URL(filename):nodePath.normalize(filename);return fs.readFileSync(filename,binary?undefined:"utf8")};readBinary=filename=>{var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}return ret};readAsync=(filename,onload,onerror)=>{var ret=tryParseAsDataURI(filename);if(ret){onload(ret)}filename=isFileURI(filename)?new URL(filename):nodePath.normalize(filename);fs.readFile(filename,function(err,data){if(err)onerror(err);else onload(data.buffer)})};if(process["argv"].length>1){thisProgram=process["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);quit_=(status,toThrow)=>{if(keepRuntimeAlive()){process["exitCode"]=status;throw toThrow}logExceptionOnExit(toThrow);process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(_scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.replace(/[?#].*/,"").lastIndexOf("/")+1)}else{scriptDirectory=""}{read_=url=>{try{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText}catch(err){var data=tryParseAsDataURI(url);if(data){return intArrayToString(data)}throw err}};if(ENVIRONMENT_IS_WORKER){readBinary=url=>{try{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}catch(err){var data=tryParseAsDataURI(url);if(data){return data}throw err}}}readAsync=(url,onload,onerror)=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=()=>{if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}var data=tryParseAsDataURI(url);if(data){onload(data.buffer);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=title=>document.title=title}else{}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);Object.assign(Module,moduleOverrides);moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||true;var WebAssembly={Memory:function(opts){this.buffer=new ArrayBuffer(opts["initial"]*65536)},Module:function(binary){},Instance:function(module,info){this.exports=( // EMSCRIPTEN_START_ASM function instantiate(ma){function c(d){d.set=function(a,b){this[a]=b};d.get=function(a){return this[a]};return d}var e;var f=new Uint8Array(123);for(var a=25;a>=0;--a){f[48+a]=52+a;f[65+a]=a;f[97+a]=26+a}f[43]=62;f[47]=63;function l(m,n,o){var g,h,a=0,i=n,j=o.length,k=n+(j*3>>2)-(o[j-2]=="=")-(o[j-1]=="=");for(;a>4;if(i>2;if(i>2]=0;J[C+32>>2]=0;J[C+36>>2]=0;c:{d:{if(b>>>0<1073741824){g=b<<2;n=oa(g);J[C+36>>2]=n;J[C+32>>2]=n;j=g+n|0;u=(c|0)<=1?1:c;c=u-1|0;v=c&-4;l=c&3;r=u-2>>>0>2;F=n;g=n;e:{f:{g:{while(1){h=J[(s<<2)+a>>2];h:{if(u>>>0<2){break h}m=0;c=1;if(r){while(1){q=(c+s<<2)+a|0;k=J[q>>2];h=h>>>0>k>>>0?h:k;k=J[q+4>>2];h=h>>>0>k>>>0?h:k;k=J[q+8>>2];h=h>>>0>k>>>0?h:k;q=J[q+12>>2];h=h>>>0>q>>>0?h:q;c=c+4|0;m=m+4|0;if((v|0)!=(m|0)){continue}break}}k=0;if(!l){break h}while(1){m=J[(c+s<<2)+a>>2];h=h>>>0>m>>>0?h:m;c=c+1|0;k=k+1|0;if((l|0)!=(k|0)){continue}break}}c=h?(S(h)^31)+1|0:1;i:{if(g>>>0>>0){J[g>>2]=c;g=g+4|0;J[C+36>>2]=g;break i}m=g-F|0;q=m>>2;g=q+1|0;if(g>>>0>=1073741824){break g}j=j-F|0;k=j>>>1|0;j=j>>>0>=2147483644?1073741823:g>>>0>>0?k:g;if(j){if(j>>>0>=1073741824){break f}n=oa(j<<2)}else{n=0}g=n+(q<<2)|0;J[g>>2]=c;c=ta(n,F,m);g=g+4|0;J[C+36>>2]=g;j=c+(j<<2)|0;if(F){na(F)}F=c}p=h>>>0>p>>>0?h:p;s=s+u|0;if((s|0)<(b|0)){continue}break}J[C+40>>2]=j;J[C+32>>2]=n;c=0;J[C+24>>2]=0;J[C+16>>2]=0;J[C+20>>2]=0;j:{if((g|0)==(F|0)){k=0;break j}c=g-F|0;if((c|0)<0){break e}k=oa(c);J[C+16>>2]=k;J[C+24>>2]=(c&-4)+k;c=F;h=k;while(1){J[h>>2]=J[c>>2];h=h+4|0;c=c+4|0;if((g|0)!=(c|0)){continue}break}J[C+20>>2]=h;c=h-k>>2;if((h|0)==(k|0)){break j}g=c>>>0<=1?1:c;q=g&3;s=0;k:{if(g-1>>>0<3){h=0;break k}n=g&-4;h=0;m=0;while(1){g=f;f=h<<2;l=J[f+k>>2];g=g+l|0;j=i;j=g>>>0>>0?j+1|0:j;l=J[(f|4)+k>>2];i=l+g|0;g=j;g=l>>>0>i>>>0?g+1|0:g;j=J[(f|8)+k>>2];i=j+i|0;g=j>>>0>i>>>0?g+1|0:g;l=i;i=J[(f|12)+k>>2];f=l+i|0;i=f>>>0>>0?g+1|0:g;h=h+4|0;m=m+4|0;if((n|0)!=(m|0)){continue}break}}if(!q){break j}while(1){j=J[(h<<2)+k>>2];f=j+f|0;g=i;i=f>>>0>>0?g+1|0:g;h=h+1|0;s=s+1|0;if((q|0)!=(s|0)){continue}break}}c=Lg(k,c,32,C);v=ca;r=J[C>>2];if(k){J[C+20>>2]=k;na(k)}m=Lg(a,b,p,C);s=ca;k=J[C>>2];G=(p-k|0)/64|0;if(d){g=oa(32);H[g+22|0]=0;h=K[1587]|K[1588]<<8|(K[1589]<<16|K[1590]<<24);j=K[1583]|K[1584]<<8|(K[1585]<<16|K[1586]<<24);H[g+14|0]=j;H[g+15|0]=j>>>8;H[g+16|0]=j>>>16;H[g+17|0]=j>>>24;H[g+18|0]=h;H[g+19|0]=h>>>8;H[g+20|0]=h>>>16;H[g+21|0]=h>>>24;h=K[1581]|K[1582]<<8|(K[1583]<<16|K[1584]<<24);j=K[1577]|K[1578]<<8|(K[1579]<<16|K[1580]<<24);H[g+8|0]=j;H[g+9|0]=j>>>8;H[g+10|0]=j>>>16;H[g+11|0]=j>>>24;H[g+12|0]=h;H[g+13|0]=h>>>8;H[g+14|0]=h>>>16;H[g+15|0]=h>>>24;h=K[1573]|K[1574]<<8|(K[1575]<<16|K[1576]<<24);j=K[1569]|K[1570]<<8|(K[1571]<<16|K[1572]<<24);H[g|0]=j;H[g+1|0]=j>>>8;H[g+2|0]=j>>>16;H[g+3|0]=j>>>24;H[g+4|0]=h;H[g+5|0]=h>>>8;H[g+6|0]=h>>>16;H[g+7|0]=h>>>24;h=J[d+4>>2];if(h){while(1){j=K[h+27|0];q=j<<24>>24<0;j=q?J[h+20>>2]:j;n=j>>>0<22;l:{m:{n:{o:{p:{q:{l=n?j:22;if(l){q=q?J[h+16>>2]:h+16|0;t=Ba(g,q,l);if(t){break q}if(j>>>0<=22){break p}break l}if(j>>>0<=22){break o}break l}if((t|0)<0){break l}}j=Ba(q,g,l);if(j){break n}}if(n){break m}break d}if((j|0)>=0){break d}}h=h+4|0}h=J[h>>2];if(h){continue}break}}na(g)}if((S(p>>>0<=1?1:p)^30)>>>0<18){g=c;c=Hl(f,i,u,0);f=g+c|0;g=ca+v|0;g=c>>>0>f>>>0?g+1|0:g;c=r<<3;q=c>>31<<1|c>>>31;i=f;f=c<<1;c=i+f|0;j=g+q|0;j=c>>>0>>0?j+1|0:j;f=c;c=k+G<<3;i=c;h=c>>31;c=m;g=k<<3;m=g;c=c+g|0;g=(g>>31)+s|0;h=(c>>>0>>0?g+1|0:g)+h|0;g=c;c=c+i|0;h=g>>>0>c>>>0?h+1|0:h;c=(h|0)<=(j|0)&c>>>0<=f>>>0|(h|0)<(j|0)}else{c=0}break c}J[C+40>>2]=j;J[C+32>>2]=n;break a}J[C+32>>2]=n;xa();B()}break a}break a}na(g);c=oa(32);J[C>>2]=c;J[C+4>>2]=22;J[C+8>>2]=-2147483616;f=K[1587]|K[1588]<<8|(K[1589]<<16|K[1590]<<24);i=K[1583]|K[1584]<<8|(K[1585]<<16|K[1586]<<24);H[c+14|0]=i;H[c+15|0]=i>>>8;H[c+16|0]=i>>>16;H[c+17|0]=i>>>24;H[c+18|0]=f;H[c+19|0]=f>>>8;H[c+20|0]=f>>>16;H[c+21|0]=f>>>24;f=K[1581]|K[1582]<<8|(K[1583]<<16|K[1584]<<24);i=K[1577]|K[1578]<<8|(K[1579]<<16|K[1580]<<24);H[c+8|0]=i;H[c+9|0]=i>>>8;H[c+10|0]=i>>>16;H[c+11|0]=i>>>24;H[c+12|0]=f;H[c+13|0]=f>>>8;H[c+14|0]=f>>>16;H[c+15|0]=f>>>24;f=K[1573]|K[1574]<<8|(K[1575]<<16|K[1576]<<24);i=K[1569]|K[1570]<<8|(K[1571]<<16|K[1572]<<24);H[c|0]=i;H[c+1|0]=i>>>8;H[c+2|0]=i>>>16;H[c+3|0]=i>>>24;H[c+4|0]=f;H[c+5|0]=f>>>8;H[c+6|0]=f>>>16;H[c+7|0]=f>>>24;H[c+22|0]=0;c=Mf(d,C);if(H[C+11|0]>=0){break c}na(J[C>>2])}H[C|0]=c;f=J[e+20>>2];if(!J[e+16>>2]&(f|0)<=0|(f|0)<0){sa(e,J[e+4>>2],C,C+1|0)}h=0;r:{s:{switch(c|0){case 0:p=0;k=ba-336|0;ba=k;pa(k+80|0,0,256);d=J[C+36>>2];c=J[C+32>>2];t:{if((d|0)==(c|0)){break t}d=d-c>>2;d=d>>>0<=1?1:d;i=d&3;if(d-1>>>0>=3){n=d&-4;while(1){f=k+80|0;d=p<<2;g=f+(J[d+c>>2]<<3)|0;j=g;m=J[g>>2];g=J[g+4>>2];m=m+1|0;g=m?g:g+1|0;J[j>>2]=m;J[j+4>>2]=g;g=f+(J[c+(d|4)>>2]<<3)|0;j=J[g>>2];q=J[g+4>>2];j=j+1|0;q=j?q:q+1|0;J[g>>2]=j;J[g+4>>2]=q;g=f+(J[c+(d|8)>>2]<<3)|0;j=J[g>>2];m=J[g+4>>2];j=j+1|0;m=j?m:m+1|0;J[g>>2]=j;J[g+4>>2]=m;d=f+(J[c+(d|12)>>2]<<3)|0;f=J[d>>2];g=J[d+4>>2];f=f+1|0;g=f?g:g+1|0;J[d>>2]=f;J[d+4>>2]=g;p=p+4|0;h=h+4|0;if((n|0)!=(h|0)){continue}break}}if(!i){break t}h=0;while(1){d=(k+80|0)+(J[c+(p<<2)>>2]<<3)|0;f=J[d>>2];q=J[d+4>>2];f=f+1|0;q=f?q:q+1|0;J[d>>2]=f;J[d+4>>2]=q;p=p+1|0;h=h+1|0;if((i|0)!=(h|0)){continue}break}}l=k+48|0;J[l>>2]=0;J[l+4>>2]=0;H[l+24|0]=0;J[l+16>>2]=0;J[l+20>>2]=0;J[l+8>>2]=0;J[l+12>>2]=0;J[k+8>>2]=0;J[k+12>>2]=0;J[k+16>>2]=0;J[k+20>>2]=0;J[k+24>>2]=0;J[k+28>>2]=0;J[k+32>>2]=0;J[k>>2]=0;J[k+4>>2]=0;J[k+40>>2]=0;J[k+44>>2]=0;Jg(k,k+80|0,32,e);d=J[k+16>>2];f=J[k+20>>2];c=J[e+4>>2]-J[e>>2]|0;J[k+40>>2]=c;J[k+44>>2]=0;q=f<<1|d>>>31;d=(d<<1)+39|0;m=d>>>0<39?q+1|0:q;d=c+((m&7)<<29|d>>>3)|0;g=m>>>3|0;g=c>>>0>d>>>0?g+1|0:g;c=d+8|0;Ia(e,c);c=J[e>>2];J[k+28>>2]=0;J[k+32>>2]=16384;J[k+24>>2]=c+J[k+40>>2];Fd(l,b<<5,b>>31<<5|b>>>27,0);b=b-u|0;if((b|0)>=0){j=(u|0)<=0;c=b;while(1){p=J[k+32>>2];n=J[C+32>>2];f=J[k>>2]+(J[n+((c|0)/(u|0)<<2)>>2]<<3)|0;d=J[f>>2];i=d<<10;if(p>>>0>=i>>>0){while(1){g=J[k+28>>2];J[k+28>>2]=g+1;H[g+J[k+24>>2]|0]=p;p=J[k+32>>2]>>>8|0;J[k+32>>2]=p;if(i>>>0<=p>>>0){continue}break}n=J[C+32>>2]}g=J[f+4>>2];f=(p>>>0)/(d>>>0)|0;J[k+32>>2]=g+((f<<12)+(p-P(d,f)|0)|0);m=b-c|0;g=(m|0)/(u|0)|0;u:{if(j){break u}d=J[l+20>>2];i=d;f=J[l+16>>2];if(!f&(d|0)<=0|(d|0)<0){break u}g=J[(g<<2)+n>>2];n=0;while(1){if(!(!f&(i|0)<=0|(i|0)<0|(g|0)<=0)){f=J[(n+m<<2)+a>>2];d=J[l+12>>2];F=J[d+4>>2];h=0;while(1){i=F>>>3|0;q=i+J[d>>2]|0;v=K[q|0];D=q;q=F&7;I=D,L=Ll(q)&v,H[I|0]=L;i=i+J[d>>2]|0;H[i|0]=K[i|0]|(f>>>h&1)<>2]+1|0;J[d+4>>2]=F;h=h+1|0;if((g|0)!=(h|0)){continue}break}}n=n+1|0;if((u|0)==(n|0)){break u}f=J[l+16>>2];i=J[l+20>>2];continue}}c=c-u|0;if((c|0)>=0){continue}break}}yb(k,e);Ed(l);a=J[e+20>>2];if(!J[e+16>>2]&(a|0)<=0|(a|0)<0){sa(e,J[e+4>>2],J[l>>2],J[l+4>>2])}a=J[k>>2];if(a){J[k+4>>2]=a;na(a)}a=J[l+12>>2];J[l+12>>2]=0;if(a){na(a)}a=J[l>>2];if(a){J[l+4>>2]=a;na(a)}ba=k+336|0;h=1;F=J[C+32>>2];break r;case 1:break s;default:break r}}G=ba-32|0;ba=G;n=1;v:{if((k|0)>0){c=S(k);if((c^30)>>>0>17){break v}n=32-c|0}w:{if(!d){break w}c=oa(48);H[c+33|0]=0;H[c+32|0]=K[1470];f=K[1466]|K[1467]<<8|(K[1468]<<16|K[1469]<<24);i=K[1462]|K[1463]<<8|(K[1464]<<16|K[1465]<<24);H[c+24|0]=i;H[c+25|0]=i>>>8;H[c+26|0]=i>>>16;H[c+27|0]=i>>>24;H[c+28|0]=f;H[c+29|0]=f>>>8;H[c+30|0]=f>>>16;H[c+31|0]=f>>>24;f=K[1458]|K[1459]<<8|(K[1460]<<16|K[1461]<<24);i=K[1454]|K[1455]<<8|(K[1456]<<16|K[1457]<<24);H[c+16|0]=i;H[c+17|0]=i>>>8;H[c+18|0]=i>>>16;H[c+19|0]=i>>>24;H[c+20|0]=f;H[c+21|0]=f>>>8;H[c+22|0]=f>>>16;H[c+23|0]=f>>>24;f=K[1450]|K[1451]<<8|(K[1452]<<16|K[1453]<<24);i=K[1446]|K[1447]<<8|(K[1448]<<16|K[1449]<<24);H[c+8|0]=i;H[c+9|0]=i>>>8;H[c+10|0]=i>>>16;H[c+11|0]=i>>>24;H[c+12|0]=f;H[c+13|0]=f>>>8;H[c+14|0]=f>>>16;H[c+15|0]=f>>>24;f=K[1442]|K[1443]<<8|(K[1444]<<16|K[1445]<<24);i=K[1438]|K[1439]<<8|(K[1440]<<16|K[1441]<<24);H[c|0]=i;H[c+1|0]=i>>>8;H[c+2|0]=i>>>16;H[c+3|0]=i>>>24;H[c+4|0]=f;H[c+5|0]=f>>>8;H[c+6|0]=f>>>16;H[c+7|0]=f>>>24;x:{h=J[d+4>>2];if(h){while(1){f=K[h+27|0];i=f<<24>>24<0;f=i?J[h+20>>2]:f;g=f>>>0<33;y:{z:{A:{B:{C:{D:{j=g?f:33;if(j){i=i?J[h+16>>2]:h+16|0;m=Ba(c,i,j);if(m){break D}if(f>>>0<=33){break C}break y}if(f>>>0<=33){break B}break y}if((m|0)<0){break y}}f=Ba(i,c,j);if(f){break A}}if(g){break z}break x}if((f|0)>=0){break x}}h=h+4|0}h=J[h>>2];if(h){continue}break}}na(c);break w}na(c);c=oa(48);J[G+16>>2]=c;J[G+20>>2]=33;J[G+24>>2]=-2147483600;H[c+32|0]=K[1470];f=K[1466]|K[1467]<<8|(K[1468]<<16|K[1469]<<24);i=K[1462]|K[1463]<<8|(K[1464]<<16|K[1465]<<24);H[c+24|0]=i;H[c+25|0]=i>>>8;H[c+26|0]=i>>>16;H[c+27|0]=i>>>24;H[c+28|0]=f;H[c+29|0]=f>>>8;H[c+30|0]=f>>>16;H[c+31|0]=f>>>24;f=K[1458]|K[1459]<<8|(K[1460]<<16|K[1461]<<24);i=K[1454]|K[1455]<<8|(K[1456]<<16|K[1457]<<24);H[c+16|0]=i;H[c+17|0]=i>>>8;H[c+18|0]=i>>>16;H[c+19|0]=i>>>24;H[c+20|0]=f;H[c+21|0]=f>>>8;H[c+22|0]=f>>>16;H[c+23|0]=f>>>24;f=K[1450]|K[1451]<<8|(K[1452]<<16|K[1453]<<24);i=K[1446]|K[1447]<<8|(K[1448]<<16|K[1449]<<24);H[c+8|0]=i;H[c+9|0]=i>>>8;H[c+10|0]=i>>>16;H[c+11|0]=i>>>24;H[c+12|0]=f;H[c+13|0]=f>>>8;H[c+14|0]=f>>>16;H[c+15|0]=f>>>24;f=K[1442]|K[1443]<<8|(K[1444]<<16|K[1445]<<24);i=K[1438]|K[1439]<<8|(K[1440]<<16|K[1441]<<24);H[c|0]=i;H[c+1|0]=i>>>8;H[c+2|0]=i>>>16;H[c+3|0]=i>>>24;H[c+4|0]=f;H[c+5|0]=f>>>8;H[c+6|0]=f>>>16;H[c+7|0]=f>>>24;H[c+33|0]=0;c=Mf(d,G+16|0);if(H[G+27|0]<0){na(J[G+16>>2])}if((c|0)<=3){n=n-2|0;break w}if(c>>>0<=5){n=n-1|0;break w}if(c>>>0>=10){n=n+2|0;break w}n=(c>>>0>7)+n|0}c=(n|0)<=1?1:n;c=(c|0)>=18?18:c;H[G+15|0]=c;d=J[e+20>>2];if(!J[e+16>>2]&(d|0)<=0|(d|0)<0){sa(e,J[e+4>>2],G+15|0,G+16|0)}h=0;E:{switch(c-1|0){case 0:u=a;k=0;n=0;r=0;s=0;f=0;i=0;l=ba+-64|0;ba=l;J[l+56>>2]=0;J[l+48>>2]=0;J[l+52>>2]=0;F:{a=p+1|0;if(a){if(a>>>0>=536870912){break a}a=a<<3;n=oa(a);J[l+48>>2]=n;k=pa(n,0,(p<<3)+8|0)+a|0}G:{if((b|0)<=0){break G}a=0;if(b>>>0>=4){h=b&-4;while(1){c=a<<2;d=(J[c+u>>2]<<3)+n|0;g=J[d>>2];q=J[d+4>>2];g=g+1|0;q=g?q:q+1|0;J[d>>2]=g;J[d+4>>2]=q;d=(J[u+(c|4)>>2]<<3)+n|0;g=J[d>>2];m=J[d+4>>2];g=g+1|0;m=g?m:m+1|0;J[d>>2]=g;J[d+4>>2]=m;d=(J[u+(c|8)>>2]<<3)+n|0;j=J[d>>2];g=J[d+4>>2];j=j+1|0;g=j?g:g+1|0;J[d>>2]=j;J[d+4>>2]=g;c=(J[u+(c|12)>>2]<<3)+n|0;d=J[c>>2];q=J[c+4>>2];d=d+1|0;q=d?q:q+1|0;J[c>>2]=d;J[c+4>>2]=q;a=a+4|0;r=r+4|0;if((h|0)!=(r|0)){continue}break}}d=b&3;if(!d){break G}while(1){c=(J[u+(a<<2)>>2]<<3)+n|0;g=J[c>>2];m=J[c+4>>2];g=g+1|0;m=g?m:m+1|0;J[c>>2]=g;J[c+4>>2]=m;a=a+1|0;s=s+1|0;if((d|0)!=(s|0)){continue}break}}J[l+8>>2]=0;J[l+12>>2]=0;J[l+16>>2]=0;J[l+20>>2]=0;J[l+24>>2]=0;J[l+28>>2]=0;J[l+32>>2]=0;J[l>>2]=0;J[l+4>>2]=0;J[l+40>>2]=0;J[l+44>>2]=0;c=e;e=0;r=0;d=0;s=0;t=ba-32|0;ba=t;a=k-n>>3;H:{if((a|0)<=0){break H}A=a&3;I:{if(a>>>0<4){a=0;break I}E=a&-4;a=0;while(1){g=(a<<3)+n|0;x=J[g>>2];m=J[g+4>>2];D=m;q=a|1;k=(q<<3)+n|0;g=J[k>>2];v=a|2;p=(v<<3)+n|0;h=J[p>>2];y=a|3;z=(y<<3)+n|0;j=J[z>>2];d=m|x?a:d;m=J[k+4>>2];d=m|g?q:d;q=J[p+4>>2];k=J[z+4>>2];d=k|j?y:q|h?v:d;v=q;p=g;g=i+D|0;f=f+x|0;q=(f>>>0>>0?g+1|0:g)+m|0;g=f;f=f+p|0;g=(g>>>0>f>>>0?q+1|0:q)+v|0;m=f;f=f+h|0;h=(m>>>0>f>>>0?g+1|0:g)+k|0;g=f;f=f+j|0;i=g>>>0>f>>>0?h+1|0:h;a=a+4|0;e=e+4|0;if((E|0)!=(e|0)){continue}break}}if(!A){break H}while(1){g=(a<<3)+n|0;e=J[g>>2];g=J[g+4>>2];d=e|g?a:d;a=a+1|0;m=g+i|0;f=e+f|0;i=f>>>0>>0?m+1|0:m;r=r+1|0;if((A|0)!=(r|0)){continue}break}}g=d+1|0;J[l+12>>2]=g;e=J[l>>2];a=J[l+4>>2]-e>>3;J:{if(a>>>0>>0){Wa(l,g-a|0);break J}if(a>>>0<=g>>>0){break J}J[l+4>>2]=e+(g<<3)}k=0;K:{L:{M:{N:{if((d|0)>=0){w=+(f>>>0)+ +(i>>>0)*4294967296;f=J[l>>2];a=0;while(1){i=a<<3;h=i+n|0;e=J[h>>2];h=J[h+4>>2];j=(e|h)!=0;m=f+i|0;o=(+(e>>>0)+ +(h>>>0)*4294967296)/w*4096+.5;O:{if(o<4294967296&o>=0){e=~~o>>>0;break O}e=0}e=e?e:j?1:e;J[m>>2]=e;k=e+k|0;e=(a|0)==(d|0);a=a+1|0;if(!e){continue}break}if((k|0)==4096){break N}}J[t+16>>2]=0;J[t+8>>2]=0;J[t+12>>2]=0;p=0;P:{if(!g){break P}if(g>>>0>=1073741824){break a}i=g<<2;s=oa(i);J[t+8>>2]=s;e=0;f=pa(s,0,i);a=0;if(d>>>0>=7){h=g&-8;while(1){J[f+(a<<2)>>2]=a;j=a|1;J[f+(j<<2)>>2]=j;j=a|2;J[f+(j<<2)>>2]=j;j=a|3;J[f+(j<<2)>>2]=j;j=a|4;J[f+(j<<2)>>2]=j;j=a|5;J[f+(j<<2)>>2]=j;j=a|6;J[f+(j<<2)>>2]=j;j=a|7;J[f+(j<<2)>>2]=j;a=a+8|0;p=p+8|0;if((h|0)!=(p|0)){continue}break}}p=f+i|0;i=g&7;if(!i){break P}while(1){J[f+(a<<2)>>2]=a;a=a+1|0;e=e+1|0;if((i|0)!=(e|0)){continue}break}}J[t+24>>2]=l;a=p-s|0;e=a>>2;Q:{R:{if((a|0)>=513){a=e;while(1){f=oa(a<<2);if(f){break R}f=a>>>0>1;a=a>>>1|0;if(f){continue}break}}gc(s,p,t+24|0,e,0,0);break Q}gc(s,p,t+24|0,e,f,a);na(f)}if((k|0)<4096){a=J[l>>2]+(J[p-4>>2]<<3)|0;J[a>>2]=(J[a>>2]-k|0)+4096;a=0;break M}if((d|0)>0){h=J[l>>2];r=k-4096|0;while(1){o=4096/+(k|0);e=d;while(1){S:{T:{f=h+(J[(e<<2)+s>>2]<<3)|0;a=J[f>>2];if(a>>>0>=2){q=f;m=a;w=V(o*+(a>>>0));U:{if(R(w)<2147483648){i=~~w;break U}i=-2147483648}f=(a|0)==(i|0)?1:a-i|0;a=(a|0)>(f|0)?f:a-1|0;a=(a|0)<(r|0)?a:r;J[q>>2]=m-a;r=r-a|0;k=k-a|0;if((k|0)!=4096){break T}k=4096;break S}if((d|0)!=(e|0)){break S}a=1;break M}a=(e|0)>1;e=e-1|0;if(a){continue}}break}a=0;if((r|0)>0){continue}break}break M}a=0;if(k>>>0<4097){break M}while(1)continue}if((d|0)<0){break K}break L}e=J[t+8>>2];if(e){na(e)}if((d|0)<0|a){break K}}e=J[l>>2];k=0;r=0;a=0;if(d>>>0>=3){i=g&-4;s=0;while(1){f=r<<3;h=f+e|0;J[h+4>>2]=a;j=e+(f|8)|0;a=J[h>>2]+a|0;J[j+4>>2]=a;h=e+(f|16)|0;a=a+J[j>>2]|0;J[h+4>>2]=a;f=e+(f|24)|0;a=a+J[h>>2]|0;J[f+4>>2]=a;a=a+J[f>>2]|0;r=r+4|0;s=s+4|0;if((i|0)!=(s|0)){continue}break}}f=g&3;if(f){while(1){i=e+(r<<3)|0;J[i+4>>2]=a;r=r+1|0;a=J[i>>2]+a|0;k=k+1|0;if((f|0)!=(k|0)){continue}break}}if((a|0)!=4096){break K}a=0;o=0;V:{if((d|0)<0){break V}f=J[l>>2];if(d){d=g&-2;e=0;while(1){i=a<<3;h=J[i+f>>2];if(h){i=i+n|0;o=(+M[i>>2]+ +M[i+4>>2]*4294967296)*va(+(h>>>0)*.000244140625)+o}i=(a|1)<<3;h=J[i+f>>2];if(h){i=i+n|0;o=(+M[i>>2]+ +M[i+4>>2]*4294967296)*va(+(h>>>0)*.000244140625)+o}a=a+2|0;e=e+2|0;if((d|0)!=(e|0)){continue}break}}if(!(g&1)){break V}a=a<<3;d=J[a+f>>2];if(!d){break V}a=a+n|0;o=(+M[a>>2]+ +M[a+4>>2]*4294967296)*va(+(d>>>0)*.000244140625)+o}o=W(-o);W:{if(o<0x10000000000000000&o>=0){d=R(o)>=1?~~(o>0?T(V(o*2.3283064365386963e-10),4294967295):W((o-+(~~o>>>0>>>0))*2.3283064365386963e-10))>>>0:0;a=~~o>>>0;break W}d=0;a=0}J[l+16>>2]=a;J[l+20>>2]=d;Va(l,c)}ba=t+32|0;d=J[l+16>>2];e=J[l+20>>2];a=J[c+4>>2]-J[c>>2]|0;J[l+40>>2]=a;J[l+44>>2]=0;g=e<<1|d>>>31;d=(d<<1)+39|0;g=d>>>0<39?g+1|0:g;d=a+((g&7)<<29|d>>>3)|0;h=g>>>3|0;j=a>>>0>d>>>0?h+1|0:h;a=d+8|0;Ia(c,a);a=J[c>>2];J[l+28>>2]=0;J[l+32>>2]=16384;J[l+24>>2]=a+J[l+40>>2];if((b|0)>0){a=16384;while(1){d=b-1|0;f=J[l>>2]+(J[u+(d<<2)>>2]<<3)|0;e=J[f>>2];i=e<<10;if(i>>>0<=a>>>0){while(1){g=J[l+28>>2];J[l+28>>2]=g+1;H[g+J[l+24>>2]|0]=a;a=J[l+32>>2]>>>8|0;J[l+32>>2]=a;if(a>>>0>=i>>>0){continue}break}}g=J[f+4>>2];f=(a>>>0)/(e>>>0)|0;a=g+((f<<12)+(a-P(e,f)|0)|0)|0;J[l+32>>2]=a;e=(b|0)>1;b=d;if(e){continue}break}}yb(l,c);a=J[l>>2];if(a){J[l+4>>2]=a;na(a)}a=J[l+48>>2];if(a){na(a)}ba=l- -64|0;break F}h=1;break v;case 1:u=a;k=0;n=0;r=0;s=0;f=0;i=0;l=ba+-64|0;ba=l;J[l+56>>2]=0;J[l+48>>2]=0;J[l+52>>2]=0;X:{a=p+1|0;if(a){if(a>>>0>=536870912){break a}a=a<<3;n=oa(a);J[l+48>>2]=n;k=pa(n,0,(p<<3)+8|0)+a|0}Y:{if((b|0)<=0){break Y}a=0;if(b>>>0>=4){h=b&-4;while(1){c=a<<2;d=(J[c+u>>2]<<3)+n|0;j=J[d>>2];g=J[d+4>>2];j=j+1|0;g=j?g:g+1|0;J[d>>2]=j;J[d+4>>2]=g;d=(J[u+(c|4)>>2]<<3)+n|0;j=J[d>>2];g=J[d+4>>2];j=j+1|0;g=j?g:g+1|0;J[d>>2]=j;J[d+4>>2]=g;d=(J[u+(c|8)>>2]<<3)+n|0;g=J[d>>2];j=J[d+4>>2];g=g+1|0;j=g?j:j+1|0;J[d>>2]=g;J[d+4>>2]=j;c=(J[u+(c|12)>>2]<<3)+n|0;d=J[c>>2];g=J[c+4>>2];d=d+1|0;g=d?g:g+1|0;J[c>>2]=d;J[c+4>>2]=g;a=a+4|0;r=r+4|0;if((h|0)!=(r|0)){continue}break}}d=b&3;if(!d){break Y}while(1){c=(J[u+(a<<2)>>2]<<3)+n|0;h=J[c>>2];g=J[c+4>>2];h=h+1|0;g=h?g:g+1|0;J[c>>2]=h;J[c+4>>2]=g;a=a+1|0;s=s+1|0;if((d|0)!=(s|0)){continue}break}}J[l+8>>2]=0;J[l+12>>2]=0;J[l+16>>2]=0;J[l+20>>2]=0;J[l+24>>2]=0;J[l+28>>2]=0;J[l+32>>2]=0;J[l>>2]=0;J[l+4>>2]=0;J[l+40>>2]=0;J[l+44>>2]=0;c=e;e=0;r=0;d=0;s=0;t=ba-32|0;ba=t;a=k-n>>3;Z:{if((a|0)<=0){break Z}A=a&3;_:{if(a>>>0<4){a=0;break _}E=a&-4;a=0;while(1){g=(a<<3)+n|0;x=J[g>>2];m=J[g+4>>2];D=m;q=a|1;k=(q<<3)+n|0;g=J[k>>2];v=a|2;p=(v<<3)+n|0;h=J[p>>2];y=a|3;z=(y<<3)+n|0;j=J[z>>2];d=m|x?a:d;m=J[k+4>>2];d=m|g?q:d;q=J[p+4>>2];k=J[z+4>>2];d=k|j?y:q|h?v:d;v=j;p=h;h=g;j=i+D|0;f=f+x|0;g=(f>>>0>>0?j+1|0:j)+m|0;m=f;f=f+h|0;h=(m>>>0>f>>>0?g+1|0:g)+q|0;g=f;f=f+p|0;q=(g>>>0>f>>>0?h+1|0:h)+k|0;g=f;f=f+v|0;i=g>>>0>f>>>0?q+1|0:q;a=a+4|0;e=e+4|0;if((E|0)!=(e|0)){continue}break}}if(!A){break Z}while(1){g=(a<<3)+n|0;e=J[g>>2];g=J[g+4>>2];d=e|g?a:d;a=a+1|0;g=g+i|0;f=e+f|0;i=f>>>0>>0?g+1|0:g;r=r+1|0;if((A|0)!=(r|0)){continue}break}}g=d+1|0;J[l+12>>2]=g;e=J[l>>2];a=J[l+4>>2]-e>>3;$:{if(a>>>0>>0){Wa(l,g-a|0);break $}if(a>>>0<=g>>>0){break $}J[l+4>>2]=e+(g<<3)}k=0;aa:{ba:{ca:{da:{if((d|0)>=0){w=+(f>>>0)+ +(i>>>0)*4294967296;f=J[l>>2];a=0;while(1){i=a<<3;h=i+n|0;e=J[h>>2];h=J[h+4>>2];j=(e|h)!=0;m=f+i|0;o=(+(e>>>0)+ +(h>>>0)*4294967296)/w*4096+.5;ea:{if(o<4294967296&o>=0){e=~~o>>>0;break ea}e=0}e=e?e:j?1:e;J[m>>2]=e;k=e+k|0;e=(a|0)==(d|0);a=a+1|0;if(!e){continue}break}if((k|0)==4096){break da}}J[t+16>>2]=0;J[t+8>>2]=0;J[t+12>>2]=0;p=0;fa:{if(!g){break fa}if(g>>>0>=1073741824){break a}i=g<<2;s=oa(i);J[t+8>>2]=s;e=0;f=pa(s,0,i);a=0;if(d>>>0>=7){h=g&-8;while(1){J[f+(a<<2)>>2]=a;j=a|1;J[f+(j<<2)>>2]=j;j=a|2;J[f+(j<<2)>>2]=j;j=a|3;J[f+(j<<2)>>2]=j;j=a|4;J[f+(j<<2)>>2]=j;j=a|5;J[f+(j<<2)>>2]=j;j=a|6;J[f+(j<<2)>>2]=j;j=a|7;J[f+(j<<2)>>2]=j;a=a+8|0;p=p+8|0;if((h|0)!=(p|0)){continue}break}}p=f+i|0;i=g&7;if(!i){break fa}while(1){J[f+(a<<2)>>2]=a;a=a+1|0;e=e+1|0;if((i|0)!=(e|0)){continue}break}}J[t+24>>2]=l;a=p-s|0;e=a>>2;ga:{ha:{if((a|0)>=513){a=e;while(1){f=oa(a<<2);if(f){break ha}f=a>>>0>1;a=a>>>1|0;if(f){continue}break}}fc(s,p,t+24|0,e,0,0);break ga}fc(s,p,t+24|0,e,f,a);na(f)}if((k|0)<4096){a=J[l>>2]+(J[p-4>>2]<<3)|0;J[a>>2]=(J[a>>2]-k|0)+4096;a=0;break ca}if((d|0)>0){h=J[l>>2];r=k-4096|0;while(1){o=4096/+(k|0);e=d;while(1){ia:{ja:{f=h+(J[(e<<2)+s>>2]<<3)|0;a=J[f>>2];if(a>>>0>=2){q=f;m=a;w=V(o*+(a>>>0));ka:{if(R(w)<2147483648){i=~~w;break ka}i=-2147483648}f=(a|0)==(i|0)?1:a-i|0;a=(a|0)>(f|0)?f:a-1|0;a=(a|0)<(r|0)?a:r;J[q>>2]=m-a;r=r-a|0;k=k-a|0;if((k|0)!=4096){break ja}k=4096;break ia}if((d|0)!=(e|0)){break ia}a=1;break ca}a=(e|0)>1;e=e-1|0;if(a){continue}}break}a=0;if((r|0)>0){continue}break}break ca}a=0;if(k>>>0<4097){break ca}while(1)continue}if((d|0)<0){break aa}break ba}e=J[t+8>>2];if(e){na(e)}if((d|0)<0|a){break aa}}e=J[l>>2];k=0;r=0;a=0;if(d>>>0>=3){i=g&-4;s=0;while(1){f=r<<3;h=f+e|0;J[h+4>>2]=a;j=e+(f|8)|0;a=J[h>>2]+a|0;J[j+4>>2]=a;h=e+(f|16)|0;a=a+J[j>>2]|0;J[h+4>>2]=a;f=e+(f|24)|0;a=a+J[h>>2]|0;J[f+4>>2]=a;a=a+J[f>>2]|0;r=r+4|0;s=s+4|0;if((i|0)!=(s|0)){continue}break}}f=g&3;if(f){while(1){i=e+(r<<3)|0;J[i+4>>2]=a;r=r+1|0;a=J[i>>2]+a|0;k=k+1|0;if((f|0)!=(k|0)){continue}break}}if((a|0)!=4096){break aa}a=0;o=0;la:{if((d|0)<0){break la}f=J[l>>2];if(d){d=g&-2;e=0;while(1){i=a<<3;h=J[i+f>>2];if(h){i=i+n|0;o=(+M[i>>2]+ +M[i+4>>2]*4294967296)*va(+(h>>>0)*.000244140625)+o}i=(a|1)<<3;h=J[i+f>>2];if(h){i=i+n|0;o=(+M[i>>2]+ +M[i+4>>2]*4294967296)*va(+(h>>>0)*.000244140625)+o}a=a+2|0;e=e+2|0;if((d|0)!=(e|0)){continue}break}}if(!(g&1)){break la}a=a<<3;d=J[a+f>>2];if(!d){break la}a=a+n|0;o=(+M[a>>2]+ +M[a+4>>2]*4294967296)*va(+(d>>>0)*.000244140625)+o}o=W(-o);ma:{if(o<0x10000000000000000&o>=0){d=R(o)>=1?~~(o>0?T(V(o*2.3283064365386963e-10),4294967295):W((o-+(~~o>>>0>>>0))*2.3283064365386963e-10))>>>0:0;a=~~o>>>0;break ma}d=0;a=0}J[l+16>>2]=a;J[l+20>>2]=d;Va(l,c)}ba=t+32|0;d=J[l+16>>2];e=J[l+20>>2];a=J[c+4>>2]-J[c>>2]|0;J[l+40>>2]=a;J[l+44>>2]=0;h=e<<1|d>>>31;d=(d<<1)+39|0;j=h;j=d>>>0<39?j+1|0:j;d=a+((j&7)<<29|d>>>3)|0;q=j>>>3|0;m=a>>>0>d>>>0?q+1|0:q;a=d+8|0;Ia(c,a);a=J[c>>2];J[l+28>>2]=0;J[l+32>>2]=16384;J[l+24>>2]=a+J[l+40>>2];if((b|0)>0){a=16384;while(1){d=b-1|0;f=J[l>>2]+(J[u+(d<<2)>>2]<<3)|0;e=J[f>>2];i=e<<10;if(i>>>0<=a>>>0){while(1){g=J[l+28>>2];J[l+28>>2]=g+1;H[g+J[l+24>>2]|0]=a;a=J[l+32>>2]>>>8|0;J[l+32>>2]=a;if(a>>>0>=i>>>0){continue}break}}g=J[f+4>>2];f=(a>>>0)/(e>>>0)|0;a=g+((f<<12)+(a-P(e,f)|0)|0)|0;J[l+32>>2]=a;e=(b|0)>1;b=d;if(e){continue}break}}yb(l,c);a=J[l>>2];if(a){J[l+4>>2]=a;na(a)}a=J[l+48>>2];if(a){na(a)}ba=l- -64|0;break X}h=1;break v;case 2:u=a;k=0;n=0;r=0;s=0;f=0;i=0;l=ba+-64|0;ba=l;J[l+56>>2]=0;J[l+48>>2]=0;J[l+52>>2]=0;na:{a=p+1|0;if(a){if(a>>>0>=536870912){break a}a=a<<3;n=oa(a);J[l+48>>2]=n;k=pa(n,0,(p<<3)+8|0)+a|0}oa:{if((b|0)<=0){break oa}a=0;if(b>>>0>=4){g=b&-4;while(1){c=a<<2;d=(J[c+u>>2]<<3)+n|0;j=J[d>>2];h=J[d+4>>2];j=j+1|0;h=j?h:h+1|0;J[d>>2]=j;J[d+4>>2]=h;d=(J[u+(c|4)>>2]<<3)+n|0;h=J[d>>2];j=J[d+4>>2];h=h+1|0;j=h?j:j+1|0;J[d>>2]=h;J[d+4>>2]=j;d=(J[u+(c|8)>>2]<<3)+n|0;h=J[d>>2];m=J[d+4>>2];h=h+1|0;m=h?m:m+1|0;J[d>>2]=h;J[d+4>>2]=m;c=(J[u+(c|12)>>2]<<3)+n|0;d=J[c>>2];h=J[c+4>>2];d=d+1|0;h=d?h:h+1|0;J[c>>2]=d;J[c+4>>2]=h;a=a+4|0;r=r+4|0;if((g|0)!=(r|0)){continue}break}}d=b&3;if(!d){break oa}while(1){c=(J[u+(a<<2)>>2]<<3)+n|0;g=J[c>>2];j=J[c+4>>2];g=g+1|0;j=g?j:j+1|0;J[c>>2]=g;J[c+4>>2]=j;a=a+1|0;s=s+1|0;if((d|0)!=(s|0)){continue}break}}J[l+8>>2]=0;J[l+12>>2]=0;J[l+16>>2]=0;J[l+20>>2]=0;J[l+24>>2]=0;J[l+28>>2]=0;J[l+32>>2]=0;J[l>>2]=0;J[l+4>>2]=0;J[l+40>>2]=0;J[l+44>>2]=0;c=e;e=0;r=0;d=0;s=0;t=ba-32|0;ba=t;a=k-n>>3;pa:{if((a|0)<=0){break pa}x=a&3;qa:{if(a>>>0<4){a=0;break qa}A=a&-4;a=0;while(1){g=(a<<3)+n|0;p=J[g>>2];m=J[g+4>>2];E=m;q=a|1;k=(q<<3)+n|0;g=J[k>>2];v=a|2;D=(v<<3)+n|0;h=J[D>>2];y=a|3;z=(y<<3)+n|0;j=J[z>>2];d=p|m?a:d;m=J[k+4>>2];d=m|g?q:d;q=J[D+4>>2];k=J[z+4>>2];d=k|j?y:q|h?v:d;v=h;h=m;m=i+E|0;f=f+p|0;h=(f>>>0

>>0?m+1|0:m)+h|0;m=f;f=g+f|0;q=(m>>>0>f>>>0?h+1|0:h)+q|0;g=f;f=f+v|0;g=(g>>>0>f>>>0?q+1|0:q)+k|0;m=f;f=f+j|0;i=m>>>0>f>>>0?g+1|0:g;a=a+4|0;e=e+4|0;if((A|0)!=(e|0)){continue}break}}if(!x){break pa}while(1){g=(a<<3)+n|0;e=J[g>>2];g=J[g+4>>2];d=e|g?a:d;a=a+1|0;j=g+i|0;f=e+f|0;i=f>>>0>>0?j+1|0:j;r=r+1|0;if((x|0)!=(r|0)){continue}break}}g=d+1|0;J[l+12>>2]=g;e=J[l>>2];a=J[l+4>>2]-e>>3;ra:{if(a>>>0>>0){Wa(l,g-a|0);break ra}if(a>>>0<=g>>>0){break ra}J[l+4>>2]=e+(g<<3)}k=0;sa:{ta:{ua:{va:{if((d|0)>=0){w=+(f>>>0)+ +(i>>>0)*4294967296;f=J[l>>2];a=0;while(1){i=a<<3;h=i+n|0;e=J[h>>2];h=J[h+4>>2];j=(e|h)!=0;m=f+i|0;o=(+(e>>>0)+ +(h>>>0)*4294967296)/w*4096+.5;wa:{if(o<4294967296&o>=0){e=~~o>>>0;break wa}e=0}e=e?e:j?1:e;J[m>>2]=e;k=e+k|0;e=(a|0)==(d|0);a=a+1|0;if(!e){continue}break}if((k|0)==4096){break va}}J[t+16>>2]=0;J[t+8>>2]=0;J[t+12>>2]=0;p=0;xa:{if(!g){break xa}if(g>>>0>=1073741824){break a}i=g<<2;s=oa(i);J[t+8>>2]=s;e=0;f=pa(s,0,i);a=0;if(d>>>0>=7){h=g&-8;while(1){J[f+(a<<2)>>2]=a;j=a|1;J[f+(j<<2)>>2]=j;j=a|2;J[f+(j<<2)>>2]=j;j=a|3;J[f+(j<<2)>>2]=j;j=a|4;J[f+(j<<2)>>2]=j;j=a|5;J[f+(j<<2)>>2]=j;j=a|6;J[f+(j<<2)>>2]=j;j=a|7;J[f+(j<<2)>>2]=j;a=a+8|0;p=p+8|0;if((h|0)!=(p|0)){continue}break}}p=f+i|0;i=g&7;if(!i){break xa}while(1){J[f+(a<<2)>>2]=a;a=a+1|0;e=e+1|0;if((i|0)!=(e|0)){continue}break}}J[t+24>>2]=l;a=p-s|0;e=a>>2;ya:{za:{if((a|0)>=513){a=e;while(1){f=oa(a<<2);if(f){break za}f=a>>>0>1;a=a>>>1|0;if(f){continue}break}}ec(s,p,t+24|0,e,0,0);break ya}ec(s,p,t+24|0,e,f,a);na(f)}if((k|0)<4096){a=J[l>>2]+(J[p-4>>2]<<3)|0;J[a>>2]=(J[a>>2]-k|0)+4096;a=0;break ua}if((d|0)>0){h=J[l>>2];r=k-4096|0;while(1){o=4096/+(k|0);e=d;while(1){Aa:{Ba:{f=h+(J[(e<<2)+s>>2]<<3)|0;a=J[f>>2];if(a>>>0>=2){q=f;m=a;w=V(o*+(a>>>0));Ca:{if(R(w)<2147483648){i=~~w;break Ca}i=-2147483648}f=(a|0)==(i|0)?1:a-i|0;a=(a|0)>(f|0)?f:a-1|0;a=(a|0)<(r|0)?a:r;J[q>>2]=m-a;r=r-a|0;k=k-a|0;if((k|0)!=4096){break Ba}k=4096;break Aa}if((d|0)!=(e|0)){break Aa}a=1;break ua}a=(e|0)>1;e=e-1|0;if(a){continue}}break}a=0;if((r|0)>0){continue}break}break ua}a=0;if(k>>>0<4097){break ua}while(1)continue}if((d|0)<0){break sa}break ta}e=J[t+8>>2];if(e){na(e)}if((d|0)<0|a){break sa}}e=J[l>>2];k=0;r=0;a=0;if(d>>>0>=3){i=g&-4;s=0;while(1){f=r<<3;h=f+e|0;J[h+4>>2]=a;j=e+(f|8)|0;a=J[h>>2]+a|0;J[j+4>>2]=a;h=e+(f|16)|0;a=a+J[j>>2]|0;J[h+4>>2]=a;f=e+(f|24)|0;a=a+J[h>>2]|0;J[f+4>>2]=a;a=a+J[f>>2]|0;r=r+4|0;s=s+4|0;if((i|0)!=(s|0)){continue}break}}f=g&3;if(f){while(1){i=e+(r<<3)|0;J[i+4>>2]=a;r=r+1|0;a=J[i>>2]+a|0;k=k+1|0;if((f|0)!=(k|0)){continue}break}}if((a|0)!=4096){break sa}a=0;o=0;Da:{if((d|0)<0){break Da}f=J[l>>2];if(d){d=g&-2;e=0;while(1){i=a<<3;h=J[i+f>>2];if(h){i=i+n|0;o=(+M[i>>2]+ +M[i+4>>2]*4294967296)*va(+(h>>>0)*.000244140625)+o}i=(a|1)<<3;h=J[i+f>>2];if(h){i=i+n|0;o=(+M[i>>2]+ +M[i+4>>2]*4294967296)*va(+(h>>>0)*.000244140625)+o}a=a+2|0;e=e+2|0;if((d|0)!=(e|0)){continue}break}}if(!(g&1)){break Da}a=a<<3;d=J[a+f>>2];if(!d){break Da}a=a+n|0;o=(+M[a>>2]+ +M[a+4>>2]*4294967296)*va(+(d>>>0)*.000244140625)+o}o=W(-o);Ea:{if(o<0x10000000000000000&o>=0){d=R(o)>=1?~~(o>0?T(V(o*2.3283064365386963e-10),4294967295):W((o-+(~~o>>>0>>>0))*2.3283064365386963e-10))>>>0:0;a=~~o>>>0;break Ea}d=0;a=0}J[l+16>>2]=a;J[l+20>>2]=d;Va(l,c)}ba=t+32|0;d=J[l+16>>2];e=J[l+20>>2];a=J[c+4>>2]-J[c>>2]|0;J[l+40>>2]=a;J[l+44>>2]=0;q=e<<1|d>>>31;d=(d<<1)+39|0;m=d>>>0<39?q+1|0:q;d=a+((m&7)<<29|d>>>3)|0;g=m>>>3|0;g=a>>>0>d>>>0?g+1|0:g;a=d+8|0;Ia(c,a);a=J[c>>2];J[l+28>>2]=0;J[l+32>>2]=16384;J[l+24>>2]=a+J[l+40>>2];if((b|0)>0){a=16384;while(1){d=b-1|0;f=J[l>>2]+(J[u+(d<<2)>>2]<<3)|0;e=J[f>>2];i=e<<10;if(i>>>0<=a>>>0){while(1){g=J[l+28>>2];J[l+28>>2]=g+1;H[g+J[l+24>>2]|0]=a;a=J[l+32>>2]>>>8|0;J[l+32>>2]=a;if(a>>>0>=i>>>0){continue}break}}g=J[f+4>>2];f=(a>>>0)/(e>>>0)|0;a=g+((f<<12)+(a-P(e,f)|0)|0)|0;J[l+32>>2]=a;e=(b|0)>1;b=d;if(e){continue}break}}yb(l,c);a=J[l>>2];if(a){J[l+4>>2]=a;na(a)}a=J[l+48>>2];if(a){na(a)}ba=l- -64|0;break na}h=1;break v;case 3:u=a;k=0;n=0;r=0;s=0;f=0;i=0;l=ba+-64|0;ba=l;J[l+56>>2]=0;J[l+48>>2]=0;J[l+52>>2]=0;Fa:{a=p+1|0;if(a){if(a>>>0>=536870912){break a}a=a<<3;n=oa(a);J[l+48>>2]=n;k=pa(n,0,(p<<3)+8|0)+a|0}Ga:{if((b|0)<=0){break Ga}a=0;if(b>>>0>=4){h=b&-4;while(1){c=a<<2;d=(J[c+u>>2]<<3)+n|0;g=J[d>>2];q=J[d+4>>2];g=g+1|0;q=g?q:q+1|0;J[d>>2]=g;J[d+4>>2]=q;d=(J[u+(c|4)>>2]<<3)+n|0;g=J[d>>2];m=J[d+4>>2];g=g+1|0;m=g?m:m+1|0;J[d>>2]=g;J[d+4>>2]=m;d=(J[u+(c|8)>>2]<<3)+n|0;j=J[d>>2];g=J[d+4>>2];j=j+1|0;g=j?g:g+1|0;J[d>>2]=j;J[d+4>>2]=g;c=(J[u+(c|12)>>2]<<3)+n|0;d=J[c>>2];q=J[c+4>>2];d=d+1|0;q=d?q:q+1|0;J[c>>2]=d;J[c+4>>2]=q;a=a+4|0;r=r+4|0;if((h|0)!=(r|0)){continue}break}}d=b&3;if(!d){break Ga}while(1){c=(J[u+(a<<2)>>2]<<3)+n|0;g=J[c>>2];m=J[c+4>>2];g=g+1|0;m=g?m:m+1|0;J[c>>2]=g;J[c+4>>2]=m;a=a+1|0;s=s+1|0;if((d|0)!=(s|0)){continue}break}}J[l+8>>2]=0;J[l+12>>2]=0;J[l+16>>2]=0;J[l+20>>2]=0;J[l+24>>2]=0;J[l+28>>2]=0;J[l+32>>2]=0;J[l>>2]=0;J[l+4>>2]=0;J[l+40>>2]=0;J[l+44>>2]=0;c=e;e=0;r=0;d=0;s=0;t=ba-32|0;ba=t;a=k-n>>3;Ha:{if((a|0)<=0){break Ha}A=a&3;Ia:{if(a>>>0<4){a=0;break Ia}E=a&-4;a=0;while(1){g=(a<<3)+n|0;x=J[g>>2];m=J[g+4>>2];D=m;q=a|1;k=(q<<3)+n|0;g=J[k>>2];v=a|2;p=(v<<3)+n|0;h=J[p>>2];y=a|3;z=(y<<3)+n|0;j=J[z>>2];d=m|x?a:d;m=J[k+4>>2];d=m|g?q:d;q=J[p+4>>2];k=J[z+4>>2];d=k|j?y:q|h?v:d;v=q;p=g;g=i+D|0;f=f+x|0;q=(f>>>0>>0?g+1|0:g)+m|0;g=f;f=f+p|0;g=(g>>>0>f>>>0?q+1|0:q)+v|0;m=f;f=f+h|0;h=(m>>>0>f>>>0?g+1|0:g)+k|0;g=f;f=f+j|0;i=g>>>0>f>>>0?h+1|0:h;a=a+4|0;e=e+4|0;if((E|0)!=(e|0)){continue}break}}if(!A){break Ha}while(1){g=(a<<3)+n|0;e=J[g>>2];g=J[g+4>>2];d=e|g?a:d;a=a+1|0;m=g+i|0;f=e+f|0;i=f>>>0>>0?m+1|0:m;r=r+1|0;if((A|0)!=(r|0)){continue}break}}g=d+1|0;J[l+12>>2]=g;e=J[l>>2];a=J[l+4>>2]-e>>3;Ja:{if(a>>>0>>0){Wa(l,g-a|0);break Ja}if(a>>>0<=g>>>0){break Ja}J[l+4>>2]=e+(g<<3)}k=0;Ka:{La:{Ma:{Na:{if((d|0)>=0){w=+(f>>>0)+ +(i>>>0)*4294967296;f=J[l>>2];a=0;while(1){i=a<<3;h=i+n|0;e=J[h>>2];h=J[h+4>>2];j=(e|h)!=0;m=f+i|0;o=(+(e>>>0)+ +(h>>>0)*4294967296)/w*4096+.5;Oa:{if(o<4294967296&o>=0){e=~~o>>>0;break Oa}e=0}e=e?e:j?1:e;J[m>>2]=e;k=e+k|0;e=(a|0)==(d|0);a=a+1|0;if(!e){continue}break}if((k|0)==4096){break Na}}J[t+16>>2]=0;J[t+8>>2]=0;J[t+12>>2]=0;p=0;Pa:{if(!g){break Pa}if(g>>>0>=1073741824){break a}i=g<<2;s=oa(i);J[t+8>>2]=s;e=0;f=pa(s,0,i);a=0;if(d>>>0>=7){h=g&-8;while(1){J[f+(a<<2)>>2]=a;j=a|1;J[f+(j<<2)>>2]=j;j=a|2;J[f+(j<<2)>>2]=j;j=a|3;J[f+(j<<2)>>2]=j;j=a|4;J[f+(j<<2)>>2]=j;j=a|5;J[f+(j<<2)>>2]=j;j=a|6;J[f+(j<<2)>>2]=j;j=a|7;J[f+(j<<2)>>2]=j;a=a+8|0;p=p+8|0;if((h|0)!=(p|0)){continue}break}}p=f+i|0;i=g&7;if(!i){break Pa}while(1){J[f+(a<<2)>>2]=a;a=a+1|0;e=e+1|0;if((i|0)!=(e|0)){continue}break}}J[t+24>>2]=l;a=p-s|0;e=a>>2;Qa:{Ra:{if((a|0)>=513){a=e;while(1){f=oa(a<<2);if(f){break Ra}f=a>>>0>1;a=a>>>1|0;if(f){continue}break}}dc(s,p,t+24|0,e,0,0);break Qa}dc(s,p,t+24|0,e,f,a);na(f)}if((k|0)<4096){a=J[l>>2]+(J[p-4>>2]<<3)|0;J[a>>2]=(J[a>>2]-k|0)+4096;a=0;break Ma}if((d|0)>0){h=J[l>>2];r=k-4096|0;while(1){o=4096/+(k|0);e=d;while(1){Sa:{Ta:{f=h+(J[(e<<2)+s>>2]<<3)|0;a=J[f>>2];if(a>>>0>=2){q=f;m=a;w=V(o*+(a>>>0));Ua:{if(R(w)<2147483648){i=~~w;break Ua}i=-2147483648}f=(a|0)==(i|0)?1:a-i|0;a=(a|0)>(f|0)?f:a-1|0;a=(a|0)<(r|0)?a:r;J[q>>2]=m-a;r=r-a|0;k=k-a|0;if((k|0)!=4096){break Ta}k=4096;break Sa}if((d|0)!=(e|0)){break Sa}a=1;break Ma}a=(e|0)>1;e=e-1|0;if(a){continue}}break}a=0;if((r|0)>0){continue}break}break Ma}a=0;if(k>>>0<4097){break Ma}while(1)continue}if((d|0)<0){break Ka}break La}e=J[t+8>>2];if(e){na(e)}if((d|0)<0|a){break Ka}}e=J[l>>2];k=0;r=0;a=0;if(d>>>0>=3){i=g&-4;s=0;while(1){f=r<<3;h=f+e|0;J[h+4>>2]=a;j=e+(f|8)|0;a=J[h>>2]+a|0;J[j+4>>2]=a;h=e+(f|16)|0;a=a+J[j>>2]|0;J[h+4>>2]=a;f=e+(f|24)|0;a=a+J[h>>2]|0;J[f+4>>2]=a;a=a+J[f>>2]|0;r=r+4|0;s=s+4|0;if((i|0)!=(s|0)){continue}break}}f=g&3;if(f){while(1){i=e+(r<<3)|0;J[i+4>>2]=a;r=r+1|0;a=J[i>>2]+a|0;k=k+1|0;if((f|0)!=(k|0)){continue}break}}if((a|0)!=4096){break Ka}a=0;o=0;Va:{if((d|0)<0){break Va}f=J[l>>2];if(d){d=g&-2;e=0;while(1){i=a<<3;h=J[i+f>>2];if(h){i=i+n|0;o=(+M[i>>2]+ +M[i+4>>2]*4294967296)*va(+(h>>>0)*.000244140625)+o}i=(a|1)<<3;h=J[i+f>>2];if(h){i=i+n|0;o=(+M[i>>2]+ +M[i+4>>2]*4294967296)*va(+(h>>>0)*.000244140625)+o}a=a+2|0;e=e+2|0;if((d|0)!=(e|0)){continue}break}}if(!(g&1)){break Va}a=a<<3;d=J[a+f>>2];if(!d){break Va}a=a+n|0;o=(+M[a>>2]+ +M[a+4>>2]*4294967296)*va(+(d>>>0)*.000244140625)+o}o=W(-o);Wa:{if(o<0x10000000000000000&o>=0){d=R(o)>=1?~~(o>0?T(V(o*2.3283064365386963e-10),4294967295):W((o-+(~~o>>>0>>>0))*2.3283064365386963e-10))>>>0:0;a=~~o>>>0;break Wa}d=0;a=0}J[l+16>>2]=a;J[l+20>>2]=d;Va(l,c)}ba=t+32|0;d=J[l+16>>2];e=J[l+20>>2];a=J[c+4>>2]-J[c>>2]|0;J[l+40>>2]=a;J[l+44>>2]=0;g=e<<1|d>>>31;d=(d<<1)+39|0;g=d>>>0<39?g+1|0:g;d=a+((g&7)<<29|d>>>3)|0;h=g>>>3|0;j=a>>>0>d>>>0?h+1|0:h;a=d+8|0;Ia(c,a);a=J[c>>2];J[l+28>>2]=0;J[l+32>>2]=16384;J[l+24>>2]=a+J[l+40>>2];if((b|0)>0){a=16384;while(1){d=b-1|0;f=J[l>>2]+(J[u+(d<<2)>>2]<<3)|0;e=J[f>>2];i=e<<10;if(i>>>0<=a>>>0){while(1){g=J[l+28>>2];J[l+28>>2]=g+1;H[g+J[l+24>>2]|0]=a;a=J[l+32>>2]>>>8|0;J[l+32>>2]=a;if(a>>>0>=i>>>0){continue}break}}g=J[f+4>>2];f=(a>>>0)/(e>>>0)|0;a=g+((f<<12)+(a-P(e,f)|0)|0)|0;J[l+32>>2]=a;e=(b|0)>1;b=d;if(e){continue}break}}yb(l,c);a=J[l>>2];if(a){J[l+4>>2]=a;na(a)}a=J[l+48>>2];if(a){na(a)}ba=l- -64|0;break Fa}h=1;break v;case 4:c=0;k=0;n=0;r=0;i=ba+-64|0;ba=i;J[i+56>>2]=0;J[i+48>>2]=0;J[i+52>>2]=0;Xa:{d=p+1|0;if(d){if(d>>>0>=536870912){break a}d=d<<3;c=oa(d);J[i+48>>2]=c;k=pa(c,0,(p<<3)+8|0)+d|0}Ya:{if((b|0)<=0){break Ya}p=0;if(b>>>0>=4){h=b&-4;while(1){d=p<<2;f=(J[d+a>>2]<<3)+c|0;j=J[f>>2];g=J[f+4>>2];j=j+1|0;g=j?g:g+1|0;J[f>>2]=j;J[f+4>>2]=g;f=(J[(d|4)+a>>2]<<3)+c|0;j=J[f>>2];g=J[f+4>>2];j=j+1|0;g=j?g:g+1|0;J[f>>2]=j;J[f+4>>2]=g;f=(J[(d|8)+a>>2]<<3)+c|0;g=J[f>>2];j=J[f+4>>2];g=g+1|0;j=g?j:j+1|0;J[f>>2]=g;J[f+4>>2]=j;d=(J[(d|12)+a>>2]<<3)+c|0;f=J[d>>2];g=J[d+4>>2];f=f+1|0;g=f?g:g+1|0;J[d>>2]=f;J[d+4>>2]=g;p=p+4|0;n=n+4|0;if((h|0)!=(n|0)){continue}break}}f=b&3;if(!f){break Ya}while(1){d=(J[(p<<2)+a>>2]<<3)+c|0;h=J[d>>2];g=J[d+4>>2];h=h+1|0;g=h?g:g+1|0;J[d>>2]=h;J[d+4>>2]=g;p=p+1|0;r=r+1|0;if((f|0)!=(r|0)){continue}break}}J[i+8>>2]=0;J[i+12>>2]=0;J[i+16>>2]=0;J[i+20>>2]=0;J[i+24>>2]=0;J[i+28>>2]=0;J[i+32>>2]=0;J[i>>2]=0;J[i+4>>2]=0;J[i+40>>2]=0;J[i+44>>2]=0;Jg(i,c,k-c>>3,e);d=J[i+16>>2];f=J[i+20>>2];c=J[e+4>>2]-J[e>>2]|0;J[i+40>>2]=c;J[i+44>>2]=0;g=f<<1|d>>>31;d=(d<<1)+39|0;j=d>>>0<39?g+1|0:g;d=c+((j&7)<<29|d>>>3)|0;g=j>>>3|0;q=c>>>0>d>>>0?g+1|0:g;c=d+8|0;Ia(e,c);c=J[e>>2];J[i+28>>2]=0;J[i+32>>2]=16384;J[i+24>>2]=c+J[i+40>>2];if((b|0)>0){p=16384;while(1){c=b-1|0;f=J[i>>2]+(J[(c<<2)+a>>2]<<3)|0;d=J[f>>2];g=d<<10;if(g>>>0<=p>>>0){while(1){h=J[i+28>>2];J[i+28>>2]=h+1;H[h+J[i+24>>2]|0]=p;p=J[i+32>>2]>>>8|0;J[i+32>>2]=p;if(g>>>0<=p>>>0){continue}break}}g=J[f+4>>2];f=(p>>>0)/(d>>>0)|0;p=g+((f<<12)+(p-P(d,f)|0)|0)|0;J[i+32>>2]=p;d=(b|0)>1;b=c;if(d){continue}break}}yb(i,e);a=J[i>>2];if(a){J[i+4>>2]=a;na(a)}a=J[i+48>>2];if(a){na(a)}ba=i- -64|0;break Xa}h=1;break v;case 5:u=a;k=0;n=0;r=0;s=0;f=0;i=0;l=ba+-64|0;ba=l;J[l+56>>2]=0;J[l+48>>2]=0;J[l+52>>2]=0;Za:{a=p+1|0;if(a){if(a>>>0>=536870912){break a}a=a<<3;n=oa(a);J[l+48>>2]=n;k=pa(n,0,(p<<3)+8|0)+a|0}_a:{if((b|0)<=0){break _a}a=0;if(b>>>0>=4){h=b&-4;while(1){c=a<<2;d=(J[c+u>>2]<<3)+n|0;j=J[d>>2];g=J[d+4>>2];j=j+1|0;g=j?g:g+1|0;J[d>>2]=j;J[d+4>>2]=g;d=(J[u+(c|4)>>2]<<3)+n|0;g=J[d>>2];j=J[d+4>>2];g=g+1|0;j=g?j:j+1|0;J[d>>2]=g;J[d+4>>2]=j;d=(J[u+(c|8)>>2]<<3)+n|0;g=J[d>>2];q=J[d+4>>2];g=g+1|0;q=g?q:q+1|0;J[d>>2]=g;J[d+4>>2]=q;c=(J[u+(c|12)>>2]<<3)+n|0;d=J[c>>2];g=J[c+4>>2];d=d+1|0;g=d?g:g+1|0;J[c>>2]=d;J[c+4>>2]=g;a=a+4|0;r=r+4|0;if((h|0)!=(r|0)){continue}break}}d=b&3;if(!d){break _a}while(1){c=(J[u+(a<<2)>>2]<<3)+n|0;g=J[c>>2];j=J[c+4>>2];g=g+1|0;j=g?j:j+1|0;J[c>>2]=g;J[c+4>>2]=j;a=a+1|0;s=s+1|0;if((d|0)!=(s|0)){continue}break}}J[l+8>>2]=0;J[l+12>>2]=0;J[l+16>>2]=0;J[l+20>>2]=0;J[l+24>>2]=0;J[l+28>>2]=0;J[l+32>>2]=0;J[l>>2]=0;J[l+4>>2]=0;J[l+40>>2]=0;J[l+44>>2]=0;c=e;e=0;r=0;d=0;s=0;t=ba-32|0;ba=t;a=k-n>>3;$a:{if((a|0)<=0){break $a}A=a&3;ab:{if(a>>>0<4){a=0;break ab}E=a&-4;a=0;while(1){g=(a<<3)+n|0;x=J[g>>2];m=J[g+4>>2];D=m;q=a|1;k=(q<<3)+n|0;g=J[k>>2];v=a|2;p=(v<<3)+n|0;h=J[p>>2];y=a|3;z=(y<<3)+n|0;j=J[z>>2];d=m|x?a:d;m=J[k+4>>2];d=m|g?q:d;q=J[p+4>>2];k=J[z+4>>2];d=k|j?y:q|h?v:d;v=q;p=g;q=i+D|0;f=f+x|0;g=(f>>>0>>0?q+1|0:q)+m|0;m=f;f=f+p|0;g=(m>>>0>f>>>0?g+1|0:g)+v|0;m=f;f=f+h|0;h=(m>>>0>f>>>0?g+1|0:g)+k|0;g=f;f=f+j|0;i=g>>>0>f>>>0?h+1|0:h;a=a+4|0;e=e+4|0;if((E|0)!=(e|0)){continue}break}}if(!A){break $a}while(1){g=(a<<3)+n|0;e=J[g>>2];g=J[g+4>>2];d=e|g?a:d;a=a+1|0;j=g+i|0;f=e+f|0;i=f>>>0>>0?j+1|0:j;r=r+1|0;if((A|0)!=(r|0)){continue}break}}g=d+1|0;J[l+12>>2]=g;e=J[l>>2];a=J[l+4>>2]-e>>3;bb:{if(a>>>0>>0){Wa(l,g-a|0);break bb}if(a>>>0<=g>>>0){break bb}J[l+4>>2]=e+(g<<3)}k=0;cb:{db:{eb:{fb:{if((d|0)>=0){w=+(f>>>0)+ +(i>>>0)*4294967296;f=J[l>>2];a=0;while(1){i=a<<3;h=i+n|0;e=J[h>>2];h=J[h+4>>2];j=(e|h)!=0;m=f+i|0;o=(+(e>>>0)+ +(h>>>0)*4294967296)/w*4096+.5;gb:{if(o<4294967296&o>=0){e=~~o>>>0;break gb}e=0}e=e?e:j?1:e;J[m>>2]=e;k=e+k|0;e=(a|0)==(d|0);a=a+1|0;if(!e){continue}break}if((k|0)==4096){break fb}}J[t+16>>2]=0;J[t+8>>2]=0;J[t+12>>2]=0;p=0;hb:{if(!g){break hb}if(g>>>0>=1073741824){break a}i=g<<2;s=oa(i);J[t+8>>2]=s;e=0;f=pa(s,0,i);a=0;if(d>>>0>=7){h=g&-8;while(1){J[f+(a<<2)>>2]=a;j=a|1;J[f+(j<<2)>>2]=j;j=a|2;J[f+(j<<2)>>2]=j;j=a|3;J[f+(j<<2)>>2]=j;j=a|4;J[f+(j<<2)>>2]=j;j=a|5;J[f+(j<<2)>>2]=j;j=a|6;J[f+(j<<2)>>2]=j;j=a|7;J[f+(j<<2)>>2]=j;a=a+8|0;p=p+8|0;if((h|0)!=(p|0)){continue}break}}p=f+i|0;i=g&7;if(!i){break hb}while(1){J[f+(a<<2)>>2]=a;a=a+1|0;e=e+1|0;if((i|0)!=(e|0)){continue}break}}J[t+24>>2]=l;a=p-s|0;e=a>>2;ib:{jb:{if((a|0)>=513){a=e;while(1){f=oa(a<<2);if(f){break jb}f=a>>>0>1;a=a>>>1|0;if(f){continue}break}}cc(s,p,t+24|0,e,0,0);break ib}cc(s,p,t+24|0,e,f,a);na(f)}if((k|0)<4096){a=J[l>>2]+(J[p-4>>2]<<3)|0;J[a>>2]=(J[a>>2]-k|0)+4096;a=0;break eb}if((d|0)>0){h=J[l>>2];r=k-4096|0;while(1){o=4096/+(k|0);e=d;while(1){kb:{lb:{f=h+(J[(e<<2)+s>>2]<<3)|0;a=J[f>>2];if(a>>>0>=2){q=f;m=a;w=V(o*+(a>>>0));mb:{if(R(w)<2147483648){i=~~w;break mb}i=-2147483648}f=(a|0)==(i|0)?1:a-i|0;a=(a|0)>(f|0)?f:a-1|0;a=(a|0)<(r|0)?a:r;J[q>>2]=m-a;r=r-a|0;k=k-a|0;if((k|0)!=4096){break lb}k=4096;break kb}if((d|0)!=(e|0)){break kb}a=1;break eb}a=(e|0)>1;e=e-1|0;if(a){continue}}break}a=0;if((r|0)>0){continue}break}break eb}a=0;if(k>>>0<4097){break eb}while(1)continue}if((d|0)<0){break cb}break db}e=J[t+8>>2];if(e){na(e)}if((d|0)<0|a){break cb}}e=J[l>>2];k=0;r=0;a=0;if(d>>>0>=3){i=g&-4;s=0;while(1){f=r<<3;h=f+e|0;J[h+4>>2]=a;j=e+(f|8)|0;a=J[h>>2]+a|0;J[j+4>>2]=a;h=e+(f|16)|0;a=a+J[j>>2]|0;J[h+4>>2]=a;f=e+(f|24)|0;a=a+J[h>>2]|0;J[f+4>>2]=a;a=a+J[f>>2]|0;r=r+4|0;s=s+4|0;if((i|0)!=(s|0)){continue}break}}f=g&3;if(f){while(1){i=e+(r<<3)|0;J[i+4>>2]=a;r=r+1|0;a=J[i>>2]+a|0;k=k+1|0;if((f|0)!=(k|0)){continue}break}}if((a|0)!=4096){break cb}a=0;o=0;nb:{if((d|0)<0){break nb}f=J[l>>2];if(d){d=g&-2;e=0;while(1){i=a<<3;h=J[i+f>>2];if(h){i=i+n|0;o=(+M[i>>2]+ +M[i+4>>2]*4294967296)*va(+(h>>>0)*.000244140625)+o}i=(a|1)<<3;h=J[i+f>>2];if(h){i=i+n|0;o=(+M[i>>2]+ +M[i+4>>2]*4294967296)*va(+(h>>>0)*.000244140625)+o}a=a+2|0;e=e+2|0;if((d|0)!=(e|0)){continue}break}}if(!(g&1)){break nb}a=a<<3;d=J[a+f>>2];if(!d){break nb}a=a+n|0;o=(+M[a>>2]+ +M[a+4>>2]*4294967296)*va(+(d>>>0)*.000244140625)+o}o=W(-o);ob:{if(o<0x10000000000000000&o>=0){d=R(o)>=1?~~(o>0?T(V(o*2.3283064365386963e-10),4294967295):W((o-+(~~o>>>0>>>0))*2.3283064365386963e-10))>>>0:0;a=~~o>>>0;break ob}d=0;a=0}J[l+16>>2]=a;J[l+20>>2]=d;Va(l,c)}ba=t+32|0;d=J[l+16>>2];e=J[l+20>>2];a=J[c+4>>2]-J[c>>2]|0;J[l+40>>2]=a;J[l+44>>2]=0;g=e<<1|d>>>31;d=(d<<1)+39|0;q=d>>>0<39?g+1|0:g;d=a+((q&7)<<29|d>>>3)|0;h=q>>>3|0;m=a>>>0>d>>>0?h+1|0:h;a=d+8|0;Ia(c,a);a=J[c>>2];J[l+28>>2]=0;J[l+32>>2]=16384;J[l+24>>2]=a+J[l+40>>2];if((b|0)>0){a=16384;while(1){d=b-1|0;f=J[l>>2]+(J[u+(d<<2)>>2]<<3)|0;e=J[f>>2];i=e<<10;if(i>>>0<=a>>>0){while(1){g=J[l+28>>2];J[l+28>>2]=g+1;H[g+J[l+24>>2]|0]=a;a=J[l+32>>2]>>>8|0;J[l+32>>2]=a;if(a>>>0>=i>>>0){continue}break}}g=J[f+4>>2];f=(a>>>0)/(e>>>0)|0;a=g+((f<<12)+(a-P(e,f)|0)|0)|0;J[l+32>>2]=a;e=(b|0)>1;b=d;if(e){continue}break}}yb(l,c);a=J[l>>2];if(a){J[l+4>>2]=a;na(a)}a=J[l+48>>2];if(a){na(a)}ba=l- -64|0;break Za}h=1;break v;case 6:u=a;k=0;n=0;r=0;s=0;f=0;i=0;l=ba+-64|0;ba=l;J[l+56>>2]=0;J[l+48>>2]=0;J[l+52>>2]=0;pb:{a=p+1|0;if(a){if(a>>>0>=536870912){break a}a=a<<3;n=oa(a);J[l+48>>2]=n;k=pa(n,0,(p<<3)+8|0)+a|0}qb:{if((b|0)<=0){break qb}a=0;if(b>>>0>=4){h=b&-4;while(1){c=a<<2;d=(J[c+u>>2]<<3)+n|0;j=J[d>>2];g=J[d+4>>2];j=j+1|0;g=j?g:g+1|0;J[d>>2]=j;J[d+4>>2]=g;d=(J[u+(c|4)>>2]<<3)+n|0;g=J[d>>2];q=J[d+4>>2];g=g+1|0;q=g?q:q+1|0;J[d>>2]=g;J[d+4>>2]=q;d=(J[u+(c|8)>>2]<<3)+n|0;g=J[d>>2];m=J[d+4>>2];g=g+1|0;m=g?m:m+1|0;J[d>>2]=g;J[d+4>>2]=m;c=(J[u+(c|12)>>2]<<3)+n|0;d=J[c>>2];g=J[c+4>>2];d=d+1|0;g=d?g:g+1|0;J[c>>2]=d;J[c+4>>2]=g;a=a+4|0;r=r+4|0;if((h|0)!=(r|0)){continue}break}}d=b&3;if(!d){break qb}while(1){c=(J[u+(a<<2)>>2]<<3)+n|0;g=J[c>>2];q=J[c+4>>2];g=g+1|0;q=g?q:q+1|0;J[c>>2]=g;J[c+4>>2]=q;a=a+1|0;s=s+1|0;if((d|0)!=(s|0)){continue}break}}J[l+8>>2]=0;J[l+12>>2]=0;J[l+16>>2]=0;J[l+20>>2]=0;J[l+24>>2]=0;J[l+28>>2]=0;J[l+32>>2]=0;J[l>>2]=0;J[l+4>>2]=0;J[l+40>>2]=0;J[l+44>>2]=0;c=e;e=0;r=0;d=0;s=0;t=ba-32|0;ba=t;a=k-n>>3;rb:{if((a|0)<=0){break rb}x=a&3;sb:{if(a>>>0<4){a=0;break sb}A=a&-4;a=0;while(1){g=(a<<3)+n|0;p=J[g>>2];m=J[g+4>>2];E=m;q=a|1;k=(q<<3)+n|0;g=J[k>>2];v=a|2;D=(v<<3)+n|0;h=J[D>>2];y=a|3;z=(y<<3)+n|0;j=J[z>>2];d=p|m?a:d;m=J[k+4>>2];d=m|g?q:d;q=J[D+4>>2];k=J[z+4>>2];d=k|j?y:q|h?v:d;v=h;h=g;g=m;m=i+E|0;f=f+p|0;g=(f>>>0

>>0?m+1|0:m)+g|0;m=f;f=f+h|0;h=(m>>>0>f>>>0?g+1|0:g)+q|0;g=f;f=f+v|0;g=(g>>>0>f>>>0?h+1|0:h)+k|0;m=f;f=f+j|0;i=m>>>0>f>>>0?g+1|0:g;a=a+4|0;e=e+4|0;if((A|0)!=(e|0)){continue}break}}if(!x){break rb}while(1){g=(a<<3)+n|0;e=J[g>>2];g=J[g+4>>2];d=e|g?a:d;a=a+1|0;q=g+i|0;f=e+f|0;i=f>>>0>>0?q+1|0:q;r=r+1|0;if((x|0)!=(r|0)){continue}break}}g=d+1|0;J[l+12>>2]=g;e=J[l>>2];a=J[l+4>>2]-e>>3;tb:{if(a>>>0>>0){Wa(l,g-a|0);break tb}if(a>>>0<=g>>>0){break tb}J[l+4>>2]=e+(g<<3)}k=0;ub:{vb:{wb:{xb:{if((d|0)>=0){w=+(f>>>0)+ +(i>>>0)*4294967296;f=J[l>>2];a=0;while(1){i=a<<3;h=i+n|0;e=J[h>>2];h=J[h+4>>2];j=(e|h)!=0;m=f+i|0;o=(+(e>>>0)+ +(h>>>0)*4294967296)/w*4096+.5;yb:{if(o<4294967296&o>=0){e=~~o>>>0;break yb}e=0}e=e?e:j?1:e;J[m>>2]=e;k=e+k|0;e=(a|0)==(d|0);a=a+1|0;if(!e){continue}break}if((k|0)==4096){break xb}}J[t+16>>2]=0;J[t+8>>2]=0;J[t+12>>2]=0;p=0;zb:{if(!g){break zb}if(g>>>0>=1073741824){break a}i=g<<2;s=oa(i);J[t+8>>2]=s;e=0;f=pa(s,0,i);a=0;if(d>>>0>=7){h=g&-8;while(1){J[f+(a<<2)>>2]=a;j=a|1;J[f+(j<<2)>>2]=j;j=a|2;J[f+(j<<2)>>2]=j;j=a|3;J[f+(j<<2)>>2]=j;j=a|4;J[f+(j<<2)>>2]=j;j=a|5;J[f+(j<<2)>>2]=j;j=a|6;J[f+(j<<2)>>2]=j;j=a|7;J[f+(j<<2)>>2]=j;a=a+8|0;p=p+8|0;if((h|0)!=(p|0)){continue}break}}p=f+i|0;i=g&7;if(!i){break zb}while(1){J[f+(a<<2)>>2]=a;a=a+1|0;e=e+1|0;if((i|0)!=(e|0)){continue}break}}J[t+24>>2]=l;a=p-s|0;e=a>>2;Ab:{Bb:{if((a|0)>=513){a=e;while(1){f=oa(a<<2);if(f){break Bb}f=a>>>0>1;a=a>>>1|0;if(f){continue}break}}bc(s,p,t+24|0,e,0,0);break Ab}bc(s,p,t+24|0,e,f,a);na(f)}if((k|0)<4096){a=J[l>>2]+(J[p-4>>2]<<3)|0;J[a>>2]=(J[a>>2]-k|0)+4096;a=0;break wb}if((d|0)>0){h=J[l>>2];r=k-4096|0;while(1){o=4096/+(k|0);e=d;while(1){Cb:{Db:{f=h+(J[(e<<2)+s>>2]<<3)|0;a=J[f>>2];if(a>>>0>=2){q=f;m=a;w=V(o*+(a>>>0));Eb:{if(R(w)<2147483648){i=~~w;break Eb}i=-2147483648}f=(a|0)==(i|0)?1:a-i|0;a=(a|0)>(f|0)?f:a-1|0;a=(a|0)<(r|0)?a:r;J[q>>2]=m-a;r=r-a|0;k=k-a|0;if((k|0)!=4096){break Db}k=4096;break Cb}if((d|0)!=(e|0)){break Cb}a=1;break wb}a=(e|0)>1;e=e-1|0;if(a){continue}}break}a=0;if((r|0)>0){continue}break}break wb}a=0;if(k>>>0<4097){break wb}while(1)continue}if((d|0)<0){break ub}break vb}e=J[t+8>>2];if(e){na(e)}if((d|0)<0|a){break ub}}e=J[l>>2];k=0;r=0;a=0;if(d>>>0>=3){i=g&-4;s=0;while(1){f=r<<3;h=f+e|0;J[h+4>>2]=a;j=e+(f|8)|0;a=J[h>>2]+a|0;J[j+4>>2]=a;h=e+(f|16)|0;a=a+J[j>>2]|0;J[h+4>>2]=a;f=e+(f|24)|0;a=a+J[h>>2]|0;J[f+4>>2]=a;a=a+J[f>>2]|0;r=r+4|0;s=s+4|0;if((i|0)!=(s|0)){continue}break}}f=g&3;if(f){while(1){i=e+(r<<3)|0;J[i+4>>2]=a;r=r+1|0;a=J[i>>2]+a|0;k=k+1|0;if((f|0)!=(k|0)){continue}break}}if((a|0)!=4096){break ub}a=0;o=0;Fb:{if((d|0)<0){break Fb}f=J[l>>2];if(d){d=g&-2;e=0;while(1){i=a<<3;h=J[i+f>>2];if(h){i=i+n|0;o=(+M[i>>2]+ +M[i+4>>2]*4294967296)*va(+(h>>>0)*.000244140625)+o}i=(a|1)<<3;h=J[i+f>>2];if(h){i=i+n|0;o=(+M[i>>2]+ +M[i+4>>2]*4294967296)*va(+(h>>>0)*.000244140625)+o}a=a+2|0;e=e+2|0;if((d|0)!=(e|0)){continue}break}}if(!(g&1)){break Fb}a=a<<3;d=J[a+f>>2];if(!d){break Fb}a=a+n|0;o=(+M[a>>2]+ +M[a+4>>2]*4294967296)*va(+(d>>>0)*.000244140625)+o}o=W(-o);Gb:{if(o<0x10000000000000000&o>=0){d=R(o)>=1?~~(o>0?T(V(o*2.3283064365386963e-10),4294967295):W((o-+(~~o>>>0>>>0))*2.3283064365386963e-10))>>>0:0;a=~~o>>>0;break Gb}d=0;a=0}J[l+16>>2]=a;J[l+20>>2]=d;Va(l,c)}ba=t+32|0;d=J[l+16>>2];e=J[l+20>>2];a=J[c+4>>2]-J[c>>2]|0;J[l+40>>2]=a;J[l+44>>2]=0;h=e<<1|d>>>31;d=(d<<1)+39|0;m=d>>>0<39?h+1|0:h;g=m>>>3|0;d=a+((m&7)<<29|d>>>3)|0;j=d>>>0>>0?g+1|0:g;a=d+8|0;Ia(c,a);a=J[c>>2];J[l+28>>2]=0;J[l+32>>2]=16384;J[l+24>>2]=a+J[l+40>>2];if((b|0)>0){a=16384;while(1){d=b-1|0;f=J[l>>2]+(J[u+(d<<2)>>2]<<3)|0;e=J[f>>2];i=e<<10;if(i>>>0<=a>>>0){while(1){g=J[l+28>>2];J[l+28>>2]=g+1;H[g+J[l+24>>2]|0]=a;a=J[l+32>>2]>>>8|0;J[l+32>>2]=a;if(a>>>0>=i>>>0){continue}break}}g=J[f+4>>2];f=(a>>>0)/(e>>>0)|0;a=g+((f<<12)+(a-P(e,f)|0)|0)|0;J[l+32>>2]=a;e=(b|0)>1;b=d;if(e){continue}break}}yb(l,c);a=J[l>>2];if(a){J[l+4>>2]=a;na(a)}a=J[l+48>>2];if(a){na(a)}ba=l- -64|0;break pb}h=1;break v;case 7:u=a;k=0;n=0;r=0;s=0;f=0;i=0;l=ba+-64|0;ba=l;J[l+56>>2]=0;J[l+48>>2]=0;J[l+52>>2]=0;Hb:{a=p+1|0;if(a){if(a>>>0>=536870912){break a}a=a<<3;n=oa(a);J[l+48>>2]=n;k=pa(n,0,(p<<3)+8|0)+a|0}Ib:{if((b|0)<=0){break Ib}a=0;if(b>>>0>=4){g=b&-4;while(1){c=a<<2;d=(J[c+u>>2]<<3)+n|0;j=J[d>>2];h=J[d+4>>2];j=j+1|0;h=j?h:h+1|0;J[d>>2]=j;J[d+4>>2]=h;d=(J[u+(c|4)>>2]<<3)+n|0;h=J[d>>2];m=J[d+4>>2];h=h+1|0;m=h?m:m+1|0;J[d>>2]=h;J[d+4>>2]=m;d=(J[u+(c|8)>>2]<<3)+n|0;h=J[d>>2];j=J[d+4>>2];h=h+1|0;j=h?j:j+1|0;J[d>>2]=h;J[d+4>>2]=j;c=(J[u+(c|12)>>2]<<3)+n|0;d=J[c>>2];h=J[c+4>>2];d=d+1|0;h=d?h:h+1|0;J[c>>2]=d;J[c+4>>2]=h;a=a+4|0;r=r+4|0;if((g|0)!=(r|0)){continue}break}}d=b&3;if(!d){break Ib}while(1){c=(J[u+(a<<2)>>2]<<3)+n|0;g=J[c>>2];m=J[c+4>>2];g=g+1|0;m=g?m:m+1|0;J[c>>2]=g;J[c+4>>2]=m;a=a+1|0;s=s+1|0;if((d|0)!=(s|0)){continue}break}}J[l+8>>2]=0;J[l+12>>2]=0;J[l+16>>2]=0;J[l+20>>2]=0;J[l+24>>2]=0;J[l+28>>2]=0;J[l+32>>2]=0;J[l>>2]=0;J[l+4>>2]=0;J[l+40>>2]=0;J[l+44>>2]=0;c=e;e=0;r=0;d=0;s=0;t=ba-32|0;ba=t;a=k-n>>3;Jb:{if((a|0)<=0){break Jb}A=a&3;Kb:{if(a>>>0<4){a=0;break Kb}E=a&-4;a=0;while(1){g=(a<<3)+n|0;x=J[g>>2];m=J[g+4>>2];D=m;q=a|1;k=(q<<3)+n|0;g=J[k>>2];v=a|2;p=(v<<3)+n|0;h=J[p>>2];y=a|3;z=(y<<3)+n|0;j=J[z>>2];d=m|x?a:d;m=J[k+4>>2];d=m|g?q:d;q=J[p+4>>2];k=J[z+4>>2];d=k|j?y:q|h?v:d;v=j;p=h;j=i+D|0;f=f+x|0;h=(f>>>0>>0?j+1|0:j)+m|0;m=f;f=g+f|0;g=(m>>>0>f>>>0?h+1|0:h)+q|0;m=f;f=f+p|0;g=(m>>>0>f>>>0?g+1|0:g)+k|0;m=f;f=f+v|0;i=m>>>0>f>>>0?g+1|0:g;a=a+4|0;e=e+4|0;if((E|0)!=(e|0)){continue}break}}if(!A){break Jb}while(1){g=(a<<3)+n|0;e=J[g>>2];g=J[g+4>>2];d=e|g?a:d;a=a+1|0;m=g+i|0;f=e+f|0;i=f>>>0>>0?m+1|0:m;r=r+1|0;if((A|0)!=(r|0)){continue}break}}g=d+1|0;J[l+12>>2]=g;e=J[l>>2];a=J[l+4>>2]-e>>3;Lb:{if(a>>>0>>0){Wa(l,g-a|0);break Lb}if(a>>>0<=g>>>0){break Lb}J[l+4>>2]=e+(g<<3)}k=0;Mb:{Nb:{Ob:{Pb:{if((d|0)>=0){w=+(f>>>0)+ +(i>>>0)*4294967296;f=J[l>>2];a=0;while(1){i=a<<3;h=i+n|0;e=J[h>>2];h=J[h+4>>2];j=(e|h)!=0;m=f+i|0;o=(+(e>>>0)+ +(h>>>0)*4294967296)/w*4096+.5;Qb:{if(o<4294967296&o>=0){e=~~o>>>0;break Qb}e=0}e=e?e:j?1:e;J[m>>2]=e;k=e+k|0;e=(a|0)==(d|0);a=a+1|0;if(!e){continue}break}if((k|0)==4096){break Pb}}J[t+16>>2]=0;J[t+8>>2]=0;J[t+12>>2]=0;p=0;Rb:{if(!g){break Rb}if(g>>>0>=1073741824){break a}i=g<<2;s=oa(i);J[t+8>>2]=s;e=0;f=pa(s,0,i);a=0;if(d>>>0>=7){h=g&-8;while(1){J[f+(a<<2)>>2]=a;j=a|1;J[f+(j<<2)>>2]=j;j=a|2;J[f+(j<<2)>>2]=j;j=a|3;J[f+(j<<2)>>2]=j;j=a|4;J[f+(j<<2)>>2]=j;j=a|5;J[f+(j<<2)>>2]=j;j=a|6;J[f+(j<<2)>>2]=j;j=a|7;J[f+(j<<2)>>2]=j;a=a+8|0;p=p+8|0;if((h|0)!=(p|0)){continue}break}}p=f+i|0;i=g&7;if(!i){break Rb}while(1){J[f+(a<<2)>>2]=a;a=a+1|0;e=e+1|0;if((i|0)!=(e|0)){continue}break}}J[t+24>>2]=l;a=p-s|0;e=a>>2;Sb:{Tb:{if((a|0)>=513){a=e;while(1){f=oa(a<<2);if(f){break Tb}f=a>>>0>1;a=a>>>1|0;if(f){continue}break}}ac(s,p,t+24|0,e,0,0);break Sb}ac(s,p,t+24|0,e,f,a);na(f)}if((k|0)<4096){a=J[l>>2]+(J[p-4>>2]<<3)|0;J[a>>2]=(J[a>>2]-k|0)+4096;a=0;break Ob}if((d|0)>0){h=J[l>>2];r=k-4096|0;while(1){o=4096/+(k|0);e=d;while(1){Ub:{Vb:{f=h+(J[(e<<2)+s>>2]<<3)|0;a=J[f>>2];if(a>>>0>=2){q=f;m=a;w=V(o*+(a>>>0));Wb:{if(R(w)<2147483648){i=~~w;break Wb}i=-2147483648}f=(a|0)==(i|0)?1:a-i|0;a=(a|0)>(f|0)?f:a-1|0;a=(a|0)<(r|0)?a:r;J[q>>2]=m-a;r=r-a|0;k=k-a|0;if((k|0)!=4096){break Vb}k=4096;break Ub}if((d|0)!=(e|0)){break Ub}a=1;break Ob}a=(e|0)>1;e=e-1|0;if(a){continue}}break}a=0;if((r|0)>0){continue}break}break Ob}a=0;if(k>>>0<4097){break Ob}while(1)continue}if((d|0)<0){break Mb}break Nb}e=J[t+8>>2];if(e){na(e)}if((d|0)<0|a){break Mb}}e=J[l>>2];k=0;r=0;a=0;if(d>>>0>=3){i=g&-4;s=0;while(1){f=r<<3;h=f+e|0;J[h+4>>2]=a;j=e+(f|8)|0;a=J[h>>2]+a|0;J[j+4>>2]=a;h=e+(f|16)|0;a=a+J[j>>2]|0;J[h+4>>2]=a;f=e+(f|24)|0;a=a+J[h>>2]|0;J[f+4>>2]=a;a=a+J[f>>2]|0;r=r+4|0;s=s+4|0;if((i|0)!=(s|0)){continue}break}}f=g&3;if(f){while(1){i=e+(r<<3)|0;J[i+4>>2]=a;r=r+1|0;a=J[i>>2]+a|0;k=k+1|0;if((f|0)!=(k|0)){continue}break}}if((a|0)!=4096){break Mb}a=0;o=0;Xb:{if((d|0)<0){break Xb}f=J[l>>2];if(d){d=g&-2;e=0;while(1){i=a<<3;h=J[i+f>>2];if(h){i=i+n|0;o=(+M[i>>2]+ +M[i+4>>2]*4294967296)*va(+(h>>>0)*.000244140625)+o}i=(a|1)<<3;h=J[i+f>>2];if(h){i=i+n|0;o=(+M[i>>2]+ +M[i+4>>2]*4294967296)*va(+(h>>>0)*.000244140625)+o}a=a+2|0;e=e+2|0;if((d|0)!=(e|0)){continue}break}}if(!(g&1)){break Xb}a=a<<3;d=J[a+f>>2];if(!d){break Xb}a=a+n|0;o=(+M[a>>2]+ +M[a+4>>2]*4294967296)*va(+(d>>>0)*.000244140625)+o}o=W(-o);Yb:{if(o<0x10000000000000000&o>=0){d=R(o)>=1?~~(o>0?T(V(o*2.3283064365386963e-10),4294967295):W((o-+(~~o>>>0>>>0))*2.3283064365386963e-10))>>>0:0;a=~~o>>>0;break Yb}d=0;a=0}J[l+16>>2]=a;J[l+20>>2]=d;Va(l,c)}ba=t+32|0;d=J[l+16>>2];e=J[l+20>>2];a=J[c+4>>2]-J[c>>2]|0;J[l+40>>2]=a;J[l+44>>2]=0;g=e<<1|d>>>31;d=(d<<1)+39|0;j=d>>>0<39?g+1|0:g;d=a+((j&7)<<29|d>>>3)|0;g=j>>>3|0;q=a>>>0>d>>>0?g+1|0:g;a=d+8|0;Ia(c,a);a=J[c>>2];J[l+28>>2]=0;J[l+32>>2]=16384;J[l+24>>2]=a+J[l+40>>2];if((b|0)>0){a=16384;while(1){d=b-1|0;f=J[l>>2]+(J[u+(d<<2)>>2]<<3)|0;e=J[f>>2];i=e<<10;if(i>>>0<=a>>>0){while(1){g=J[l+28>>2];J[l+28>>2]=g+1;H[g+J[l+24>>2]|0]=a;a=J[l+32>>2]>>>8|0;J[l+32>>2]=a;if(a>>>0>=i>>>0){continue}break}}g=J[f+4>>2];f=(a>>>0)/(e>>>0)|0;a=g+((f<<12)+(a-P(e,f)|0)|0)|0;J[l+32>>2]=a;e=(b|0)>1;b=d;if(e){continue}break}}yb(l,c);a=J[l>>2];if(a){J[l+4>>2]=a;na(a)}a=J[l+48>>2];if(a){na(a)}ba=l- -64|0;break Hb}h=1;break v;case 8:l=a;n=0;r=0;d=0;s=0;f=0;i=0;k=ba+-64|0;ba=k;J[k+56>>2]=0;J[k+48>>2]=0;J[k+52>>2]=0;Zb:{a=p+1|0;if(a){if(a>>>0>=536870912){break a}a=a<<3;r=oa(a);J[k+48>>2]=r;n=pa(r,0,(p<<3)+8|0)+a|0}_b:{if((b|0)<=0){break _b}a=0;if(b>>>0>=4){m=b&-4;while(1){c=a<<2;g=(J[c+l>>2]<<3)+r|0;h=g;j=J[g>>2];g=J[g+4>>2];j=j+1|0;g=j?g:g+1|0;J[h>>2]=j;J[h+4>>2]=g;g=(J[l+(c|4)>>2]<<3)+r|0;h=J[g>>2];j=J[g+4>>2];h=h+1|0;j=h?j:j+1|0;J[g>>2]=h;J[g+4>>2]=j;g=(J[l+(c|8)>>2]<<3)+r|0;h=J[g>>2];q=J[g+4>>2];h=h+1|0;q=h?q:q+1|0;J[g>>2]=h;J[g+4>>2]=q;c=(J[l+(c|12)>>2]<<3)+r|0;h=J[c>>2];g=J[c+4>>2];h=h+1|0;g=h?g:g+1|0;J[c>>2]=h;J[c+4>>2]=g;a=a+4|0;d=d+4|0;if((m|0)!=(d|0)){continue}break}}d=b&3;if(!d){break _b}while(1){c=(J[l+(a<<2)>>2]<<3)+r|0;g=J[c>>2];j=J[c+4>>2];g=g+1|0;j=g?j:j+1|0;J[c>>2]=g;J[c+4>>2]=j;a=a+1|0;s=s+1|0;if((d|0)!=(s|0)){continue}break}}J[k+8>>2]=0;J[k+12>>2]=0;J[k+16>>2]=0;J[k+20>>2]=0;J[k+24>>2]=0;J[k+28>>2]=0;J[k+32>>2]=0;J[k>>2]=0;J[k+4>>2]=0;J[k+40>>2]=0;J[k+44>>2]=0;d=0;p=0;c=0;s=0;t=ba-32|0;ba=t;a=n-r>>3;$b:{if((a|0)<=0){break $b}A=a&3;ac:{if(a>>>0<4){a=0;break ac}E=a&-4;a=0;while(1){g=(a<<3)+r|0;x=J[g>>2];m=J[g+4>>2];D=m;q=a|1;n=(q<<3)+r|0;g=J[n>>2];u=a|2;v=(u<<3)+r|0;h=J[v>>2];y=a|3;z=(y<<3)+r|0;j=J[z>>2];c=m|x?a:c;m=J[n+4>>2];c=m|g?q:c;q=J[v+4>>2];n=J[z+4>>2];c=n|j?y:q|h?u:c;u=q;v=g;q=i+D|0;f=f+x|0;g=(f>>>0>>0?q+1|0:q)+m|0;m=f;f=f+v|0;g=(m>>>0>f>>>0?g+1|0:g)+u|0;m=f;f=f+h|0;h=(m>>>0>f>>>0?g+1|0:g)+n|0;g=f;f=f+j|0;i=g>>>0>f>>>0?h+1|0:h;a=a+4|0;d=d+4|0;if((E|0)!=(d|0)){continue}break}}if(!A){break $b}while(1){g=(a<<3)+r|0;d=J[g>>2];g=J[g+4>>2];c=d|g?a:c;a=a+1|0;j=g+i|0;f=d+f|0;i=f>>>0>>0?j+1|0:j;p=p+1|0;if((A|0)!=(p|0)){continue}break}}g=c+1|0;J[k+12>>2]=g;d=J[k>>2];a=J[k+4>>2]-d>>3;bc:{if(a>>>0>>0){Wa(k,g-a|0);break bc}if(a>>>0<=g>>>0){break bc}J[k+4>>2]=d+(g<<3)}n=0;cc:{dc:{ec:{fc:{if((c|0)>=0){w=+(f>>>0)+ +(i>>>0)*4294967296;f=J[k>>2];a=0;while(1){i=a<<3;h=i+r|0;d=J[h>>2];h=J[h+4>>2];j=(d|h)!=0;m=f+i|0;o=(+(d>>>0)+ +(h>>>0)*4294967296)/w*8192+.5;gc:{if(o<4294967296&o>=0){d=~~o>>>0;break gc}d=0}d=d?d:j?1:d;J[m>>2]=d;n=d+n|0;d=(a|0)==(c|0);a=a+1|0;if(!d){continue}break}if((n|0)==8192){break fc}}J[t+16>>2]=0;J[t+8>>2]=0;J[t+12>>2]=0;p=0;hc:{if(!g){break hc}if(g>>>0>=1073741824){break a}i=g<<2;s=oa(i);J[t+8>>2]=s;d=0;f=pa(s,0,i);a=0;if(c>>>0>=7){h=g&-8;while(1){J[f+(a<<2)>>2]=a;j=a|1;J[f+(j<<2)>>2]=j;j=a|2;J[f+(j<<2)>>2]=j;j=a|3;J[f+(j<<2)>>2]=j;j=a|4;J[f+(j<<2)>>2]=j;j=a|5;J[f+(j<<2)>>2]=j;j=a|6;J[f+(j<<2)>>2]=j;j=a|7;J[f+(j<<2)>>2]=j;a=a+8|0;p=p+8|0;if((h|0)!=(p|0)){continue}break}}p=f+i|0;i=g&7;if(!i){break hc}while(1){J[f+(a<<2)>>2]=a;a=a+1|0;d=d+1|0;if((i|0)!=(d|0)){continue}break}}J[t+24>>2]=k;a=p-s|0;d=a>>2;ic:{jc:{if((a|0)>=513){a=d;while(1){f=oa(a<<2);if(f){break jc}f=a>>>0>1;a=a>>>1|0;if(f){continue}break}}$b(s,p,t+24|0,d,0,0);break ic}$b(s,p,t+24|0,d,f,a);na(f)}if((n|0)<8192){a=J[k>>2]+(J[p-4>>2]<<3)|0;J[a>>2]=(J[a>>2]-n|0)- -8192;a=0;break ec}if((c|0)>0){h=J[k>>2];p=n+-8192|0;while(1){o=8192/+(n|0);d=c;while(1){kc:{lc:{f=h+(J[(d<<2)+s>>2]<<3)|0;a=J[f>>2];if(a>>>0>=2){q=f;m=a;w=V(o*+(a>>>0));mc:{if(R(w)<2147483648){i=~~w;break mc}i=-2147483648}f=(a|0)==(i|0)?1:a-i|0;a=(a|0)>(f|0)?f:a-1|0;a=(a|0)<(p|0)?a:p;J[q>>2]=m-a;p=p-a|0;n=n-a|0;if((n|0)!=8192){break lc}n=8192;break kc}if((c|0)!=(d|0)){break kc}a=1;break ec}a=(d|0)>1;d=d-1|0;if(a){continue}}break}a=0;if((p|0)>0){continue}break}break ec}a=0;if(n>>>0<8193){break ec}while(1)continue}if((c|0)<0){break cc}break dc}d=J[t+8>>2];if(d){na(d)}if((c|0)<0|a){break cc}}d=J[k>>2];n=0;p=0;a=0;if(c>>>0>=3){i=g&-4;s=0;while(1){f=p<<3;h=f+d|0;J[h+4>>2]=a;j=d+(f|8)|0;a=J[h>>2]+a|0;J[j+4>>2]=a;h=d+(f|16)|0;a=a+J[j>>2]|0;J[h+4>>2]=a;f=d+(f|24)|0;a=a+J[h>>2]|0;J[f+4>>2]=a;a=a+J[f>>2]|0;p=p+4|0;s=s+4|0;if((i|0)!=(s|0)){continue}break}}f=g&3;if(f){while(1){i=d+(p<<3)|0;J[i+4>>2]=a;p=p+1|0;a=J[i>>2]+a|0;n=n+1|0;if((f|0)!=(n|0)){continue}break}}if((a|0)!=8192){break cc}a=0;o=0;nc:{if((c|0)<0){break nc}f=J[k>>2];if(c){c=g&-2;d=0;while(1){i=a<<3;h=J[i+f>>2];if(h){i=i+r|0;o=(+M[i>>2]+ +M[i+4>>2]*4294967296)*va(+(h>>>0)*.0001220703125)+o}i=(a|1)<<3;h=J[i+f>>2];if(h){i=i+r|0;o=(+M[i>>2]+ +M[i+4>>2]*4294967296)*va(+(h>>>0)*.0001220703125)+o}a=a+2|0;d=d+2|0;if((c|0)!=(d|0)){continue}break}}if(!(g&1)){break nc}a=a<<3;c=J[a+f>>2];if(!c){break nc}a=a+r|0;o=(+M[a>>2]+ +M[a+4>>2]*4294967296)*va(+(c>>>0)*.0001220703125)+o}o=W(-o);oc:{if(o<0x10000000000000000&o>=0){c=R(o)>=1?~~(o>0?T(V(o*2.3283064365386963e-10),4294967295):W((o-+(~~o>>>0>>>0))*2.3283064365386963e-10))>>>0:0;a=~~o>>>0;break oc}c=0;a=0}J[k+16>>2]=a;J[k+20>>2]=c;Va(k,e)}ba=t+32|0;c=J[k+16>>2];d=J[k+20>>2];a=J[e+4>>2]-J[e>>2]|0;J[k+40>>2]=a;J[k+44>>2]=0;g=d<<1|c>>>31;c=(c<<1)+39|0;q=c>>>0<39?g+1|0:g;c=a+((q&7)<<29|c>>>3)|0;h=q>>>3|0;m=a>>>0>c>>>0?h+1|0:h;a=c+8|0;Ia(e,a);a=J[e>>2];J[k+28>>2]=0;J[k+32>>2]=32768;J[k+24>>2]=a+J[k+40>>2];if((b|0)>0){a=32768;while(1){c=b-1|0;f=J[k>>2]+(J[l+(c<<2)>>2]<<3)|0;d=J[f>>2];i=d<<10;if(i>>>0<=a>>>0){while(1){g=J[k+28>>2];J[k+28>>2]=g+1;H[g+J[k+24>>2]|0]=a;a=J[k+32>>2]>>>8|0;J[k+32>>2]=a;if(a>>>0>=i>>>0){continue}break}}g=J[f+4>>2];f=(a>>>0)/(d>>>0)|0;a=g+((f<<13)+(a-P(d,f)|0)|0)|0;J[k+32>>2]=a;d=(b|0)>1;b=c;if(d){continue}break}}a=ba-32|0;ba=a;c=J[e>>2]+J[k+40>>2]|0;b=J[k+32>>2];d=b-32768|0;pc:{if(d>>>0<=63){H[J[k+24>>2]+J[k+28>>2]|0]=b;f=J[k+28>>2]+1|0;break pc}if(d>>>0<=16383){d=J[k+24>>2]+J[k+28>>2]|0;H[d+1|0]=b+49152>>>8;H[d|0]=b;f=J[k+28>>2]+2|0;break pc}if(d>>>0<=4194303){d=J[k+24>>2]+J[k+28>>2]|0;f=b+8355840|0;H[d+2|0]=f>>>16;H[d+1|0]=f>>>8;H[d|0]=b;f=J[k+28>>2]+3|0;break pc}if(d>>>0<=1073741823){d=J[k+24>>2]+J[k+28>>2]|0;f=b-1073774592|0;H[d+3|0]=f>>>24;H[d+2|0]=f>>>16;H[d+1|0]=f>>>8;H[d|0]=b;f=J[k+28>>2]+4|0;break pc}f=J[k+28>>2]}b=f;J[a>>2]=0;J[a+4>>2]=0;H[a+24|0]=0;J[a+16>>2]=0;J[a+20>>2]=0;J[a+8>>2]=0;J[a+12>>2]=0;g=b>>31;xb(b,g,a);d=J[a+4>>2]-J[a>>2]|0;ta(d+c|0,c,b);ua(c,J[a>>2],d);c=J[k+40>>2];b=b+d|0;q=J[k+44>>2]+(f>>>0>b>>>0?g+1|0:g)|0;d=b;b=b+c|0;Ia(e,b);b=J[a+12>>2];J[a+12>>2]=0;if(b){na(b)}b=J[a>>2];if(b){J[a+4>>2]=b;na(b)}ba=a+32|0;a=J[k>>2];if(a){J[k+4>>2]=a;na(a)}a=J[k+48>>2];if(a){na(a)}ba=k- -64|0;break Zb}h=1;break v;case 9:l=a;n=0;r=0;d=0;s=0;f=0;i=0;k=ba+-64|0;ba=k;J[k+56>>2]=0;J[k+48>>2]=0;J[k+52>>2]=0;qc:{a=p+1|0;if(a){if(a>>>0>=536870912){break a}a=a<<3;r=oa(a);J[k+48>>2]=r;n=pa(r,0,(p<<3)+8|0)+a|0}rc:{if((b|0)<=0){break rc}a=0;if(b>>>0>=4){j=b&-4;while(1){c=a<<2;g=(J[c+l>>2]<<3)+r|0;h=J[g>>2];m=J[g+4>>2];h=h+1|0;m=h?m:m+1|0;J[g>>2]=h;J[g+4>>2]=m;g=(J[l+(c|4)>>2]<<3)+r|0;m=J[g>>2];h=J[g+4>>2];m=m+1|0;h=m?h:h+1|0;J[g>>2]=m;J[g+4>>2]=h;g=(J[l+(c|8)>>2]<<3)+r|0;h=J[g>>2];q=J[g+4>>2];h=h+1|0;q=h?q:q+1|0;J[g>>2]=h;J[g+4>>2]=q;c=(J[l+(c|12)>>2]<<3)+r|0;g=J[c>>2];m=J[c+4>>2];g=g+1|0;m=g?m:m+1|0;J[c>>2]=g;J[c+4>>2]=m;a=a+4|0;d=d+4|0;if((j|0)!=(d|0)){continue}break}}d=b&3;if(!d){break rc}while(1){c=(J[l+(a<<2)>>2]<<3)+r|0;g=J[c>>2];h=J[c+4>>2];g=g+1|0;h=g?h:h+1|0;J[c>>2]=g;J[c+4>>2]=h;a=a+1|0;s=s+1|0;if((d|0)!=(s|0)){continue}break}}J[k+8>>2]=0;J[k+12>>2]=0;J[k+16>>2]=0;J[k+20>>2]=0;J[k+24>>2]=0;J[k+28>>2]=0;J[k+32>>2]=0;J[k>>2]=0;J[k+4>>2]=0;J[k+40>>2]=0;J[k+44>>2]=0;d=0;p=0;c=0;s=0;v=ba-32|0;ba=v;a=n-r>>3;sc:{if((a|0)<=0){break sc}x=a&3;tc:{if(a>>>0<4){a=0;break tc}A=a&-4;a=0;while(1){g=(a<<3)+r|0;t=J[g>>2];m=J[g+4>>2];E=m;q=a|1;n=(q<<3)+r|0;g=J[n>>2];u=a|2;D=(u<<3)+r|0;h=J[D>>2];y=a|3;z=(y<<3)+r|0;j=J[z>>2];c=m|t?a:c;m=J[n+4>>2];c=m|g?q:c;q=J[D+4>>2];n=J[z+4>>2];c=n|j?y:q|h?u:c;u=q;q=i+E|0;f=f+t|0;m=(f>>>0>>0?q+1|0:q)+m|0;i=f;f=g+f|0;g=(i>>>0>f>>>0?m+1|0:m)+u|0;m=f;f=f+h|0;g=(m>>>0>f>>>0?g+1|0:g)+n|0;m=f;f=f+j|0;i=m>>>0>f>>>0?g+1|0:g;a=a+4|0;d=d+4|0;if((A|0)!=(d|0)){continue}break}}if(!x){break sc}while(1){g=(a<<3)+r|0;d=J[g>>2];g=J[g+4>>2];c=d|g?a:c;a=a+1|0;h=g+i|0;f=d+f|0;i=f>>>0>>0?h+1|0:h;p=p+1|0;if((x|0)!=(p|0)){continue}break}}g=c+1|0;J[k+12>>2]=g;d=J[k>>2];a=J[k+4>>2]-d>>3;uc:{if(a>>>0>>0){Wa(k,g-a|0);break uc}if(a>>>0<=g>>>0){break uc}J[k+4>>2]=d+(g<<3)}n=0;vc:{wc:{xc:{yc:{if((c|0)>=0){w=+(f>>>0)+ +(i>>>0)*4294967296;f=J[k>>2];a=0;while(1){i=a<<3;h=i+r|0;d=J[h>>2];h=J[h+4>>2];j=(d|h)!=0;m=f+i|0;o=(+(d>>>0)+ +(h>>>0)*4294967296)/w*32768+.5;zc:{if(o<4294967296&o>=0){d=~~o>>>0;break zc}d=0}d=d?d:j?1:d;J[m>>2]=d;n=d+n|0;d=(a|0)==(c|0);a=a+1|0;if(!d){continue}break}if((n|0)==32768){break yc}}J[v+16>>2]=0;J[v+8>>2]=0;J[v+12>>2]=0;p=0;Ac:{if(!g){break Ac}if(g>>>0>=1073741824){break a}i=g<<2;s=oa(i);J[v+8>>2]=s;d=0;f=pa(s,0,i);a=0;if(c>>>0>=7){h=g&-8;while(1){J[f+(a<<2)>>2]=a;j=a|1;J[f+(j<<2)>>2]=j;j=a|2;J[f+(j<<2)>>2]=j;j=a|3;J[f+(j<<2)>>2]=j;j=a|4;J[f+(j<<2)>>2]=j;j=a|5;J[f+(j<<2)>>2]=j;j=a|6;J[f+(j<<2)>>2]=j;j=a|7;J[f+(j<<2)>>2]=j;a=a+8|0;p=p+8|0;if((h|0)!=(p|0)){continue}break}}p=f+i|0;i=g&7;if(!i){break Ac}while(1){J[f+(a<<2)>>2]=a;a=a+1|0;d=d+1|0;if((i|0)!=(d|0)){continue}break}}J[v+24>>2]=k;a=p-s|0;d=a>>2;Bc:{Cc:{if((a|0)>=513){a=d;while(1){f=oa(a<<2);if(f){break Cc}f=a>>>0>1;a=a>>>1|0;if(f){continue}break}}_b(s,p,v+24|0,d,0,0);break Bc}_b(s,p,v+24|0,d,f,a);na(f)}if((n|0)<32768){a=J[k>>2]+(J[p-4>>2]<<3)|0;J[a>>2]=(J[a>>2]-n|0)+32768;a=0;break xc}if((c|0)>0){h=J[k>>2];p=n-32768|0;while(1){o=32768/+(n|0);d=c;while(1){Dc:{Ec:{f=h+(J[(d<<2)+s>>2]<<3)|0;a=J[f>>2];if(a>>>0>=2){q=f;m=a;w=V(o*+(a>>>0));Fc:{if(R(w)<2147483648){i=~~w;break Fc}i=-2147483648}f=(a|0)==(i|0)?1:a-i|0;a=(a|0)>(f|0)?f:a-1|0;a=(a|0)<(p|0)?a:p;J[q>>2]=m-a;p=p-a|0;n=n-a|0;if((n|0)!=32768){break Ec}n=32768;break Dc}if((c|0)!=(d|0)){break Dc}a=1;break xc}a=(d|0)>1;d=d-1|0;if(a){continue}}break}a=0;if((p|0)>0){continue}break}break xc}a=0;if(n>>>0<32769){break xc}while(1)continue}if((c|0)<0){break vc}break wc}d=J[v+8>>2];if(d){na(d)}if((c|0)<0|a){break vc}}d=J[k>>2];n=0;p=0;a=0;if(c>>>0>=3){i=g&-4;s=0;while(1){f=p<<3;h=f+d|0;J[h+4>>2]=a;j=d+(f|8)|0;a=J[h>>2]+a|0;J[j+4>>2]=a;h=d+(f|16)|0;a=a+J[j>>2]|0;J[h+4>>2]=a;f=d+(f|24)|0;a=a+J[h>>2]|0;J[f+4>>2]=a;a=a+J[f>>2]|0;p=p+4|0;s=s+4|0;if((i|0)!=(s|0)){continue}break}}f=g&3;if(f){while(1){i=d+(p<<3)|0;J[i+4>>2]=a;p=p+1|0;a=J[i>>2]+a|0;n=n+1|0;if((f|0)!=(n|0)){continue}break}}if((a|0)!=32768){break vc}a=0;o=0;Gc:{if((c|0)<0){break Gc}f=J[k>>2];if(c){c=g&-2;d=0;while(1){i=a<<3;h=J[i+f>>2];if(h){i=i+r|0;o=(+M[i>>2]+ +M[i+4>>2]*4294967296)*va(+(h>>>0)*30517578125e-15)+o}i=(a|1)<<3;h=J[i+f>>2];if(h){i=i+r|0;o=(+M[i>>2]+ +M[i+4>>2]*4294967296)*va(+(h>>>0)*30517578125e-15)+o}a=a+2|0;d=d+2|0;if((c|0)!=(d|0)){continue}break}}if(!(g&1)){break Gc}a=a<<3;c=J[a+f>>2];if(!c){break Gc}a=a+r|0;o=(+M[a>>2]+ +M[a+4>>2]*4294967296)*va(+(c>>>0)*30517578125e-15)+o}o=W(-o);Hc:{if(o<0x10000000000000000&o>=0){c=R(o)>=1?~~(o>0?T(V(o*2.3283064365386963e-10),4294967295):W((o-+(~~o>>>0>>>0))*2.3283064365386963e-10))>>>0:0;a=~~o>>>0;break Hc}c=0;a=0}J[k+16>>2]=a;J[k+20>>2]=c;Va(k,e)}ba=v+32|0;c=J[k+16>>2];d=J[k+20>>2];a=J[e+4>>2]-J[e>>2]|0;J[k+40>>2]=a;J[k+44>>2]=0;g=d<<1|c>>>31;c=(c<<1)+39|0;q=c>>>0<39?g+1|0:g;c=a+((q&7)<<29|c>>>3)|0;g=q>>>3|0;j=a>>>0>c>>>0?g+1|0:g;a=c+8|0;Ia(e,a);a=J[e>>2];J[k+28>>2]=0;J[k+32>>2]=131072;J[k+24>>2]=a+J[k+40>>2];if((b|0)>0){a=131072;while(1){c=b-1|0;f=J[k>>2]+(J[l+(c<<2)>>2]<<3)|0;d=J[f>>2];i=d<<10;if(i>>>0<=a>>>0){while(1){g=J[k+28>>2];J[k+28>>2]=g+1;H[g+J[k+24>>2]|0]=a;a=J[k+32>>2]>>>8|0;J[k+32>>2]=a;if(a>>>0>=i>>>0){continue}break}}g=J[f+4>>2];f=(a>>>0)/(d>>>0)|0;a=g+((f<<15)+(a-P(d,f)|0)|0)|0;J[k+32>>2]=a;d=(b|0)>1;b=c;if(d){continue}break}}a=ba-32|0;ba=a;c=J[e>>2]+J[k+40>>2]|0;b=J[k+32>>2];d=b-131072|0;Ic:{if(d>>>0<=63){H[J[k+24>>2]+J[k+28>>2]|0]=b;f=J[k+28>>2]+1|0;break Ic}if(d>>>0<=16383){d=J[k+24>>2]+J[k+28>>2]|0;H[d+1|0]=b+16384>>>8;H[d|0]=b;f=J[k+28>>2]+2|0;break Ic}if(d>>>0<=4194303){d=J[k+24>>2]+J[k+28>>2]|0;H[d+2|0]=b+8257536>>>16;H[d+1|0]=b>>>8;H[d|0]=b;f=J[k+28>>2]+3|0;break Ic}if(d>>>0<=1073741823){d=J[k+24>>2]+J[k+28>>2]|0;f=b-1073872896|0;H[d+3|0]=f>>>24;H[d+2|0]=f>>>16;H[d+1|0]=b>>>8;H[d|0]=b;f=J[k+28>>2]+4|0;break Ic}f=J[k+28>>2]}b=f;J[a>>2]=0;J[a+4>>2]=0;H[a+24|0]=0;J[a+16>>2]=0;J[a+20>>2]=0;J[a+8>>2]=0;J[a+12>>2]=0;g=b>>31;xb(b,g,a);d=J[a+4>>2]-J[a>>2]|0;ta(d+c|0,c,b);ua(c,J[a>>2],d);c=J[k+40>>2];b=b+d|0;q=J[k+44>>2]+(f>>>0>b>>>0?g+1|0:g)|0;d=b;b=b+c|0;Ia(e,b);b=J[a+12>>2];J[a+12>>2]=0;if(b){na(b)}b=J[a>>2];if(b){J[a+4>>2]=b;na(b)}ba=a+32|0;a=J[k>>2];if(a){J[k+4>>2]=a;na(a)}a=J[k+48>>2];if(a){na(a)}ba=k- -64|0;break qc}h=1;break v;case 10:l=a;n=0;r=0;d=0;s=0;f=0;i=0;k=ba+-64|0;ba=k;J[k+56>>2]=0;J[k+48>>2]=0;J[k+52>>2]=0;Jc:{a=p+1|0;if(a){if(a>>>0>=536870912){break a}a=a<<3;r=oa(a);J[k+48>>2]=r;n=pa(r,0,(p<<3)+8|0)+a|0}Kc:{if((b|0)<=0){break Kc}a=0;if(b>>>0>=4){m=b&-4;while(1){c=a<<2;g=(J[c+l>>2]<<3)+r|0;h=J[g>>2];j=J[g+4>>2];h=h+1|0;j=h?j:j+1|0;J[g>>2]=h;J[g+4>>2]=j;g=(J[l+(c|4)>>2]<<3)+r|0;h=g;j=J[g>>2];g=J[g+4>>2];j=j+1|0;g=j?g:g+1|0;J[h>>2]=j;J[h+4>>2]=g;g=(J[l+(c|8)>>2]<<3)+r|0;h=J[g>>2];q=J[g+4>>2];h=h+1|0;q=h?q:q+1|0;J[g>>2]=h;J[g+4>>2]=q;c=(J[l+(c|12)>>2]<<3)+r|0;g=J[c>>2];j=J[c+4>>2];g=g+1|0;j=g?j:j+1|0;J[c>>2]=g;J[c+4>>2]=j;a=a+4|0;d=d+4|0;if((m|0)!=(d|0)){continue}break}}d=b&3;if(!d){break Kc}while(1){c=(J[l+(a<<2)>>2]<<3)+r|0;h=J[c>>2];g=J[c+4>>2];h=h+1|0;g=h?g:g+1|0;J[c>>2]=h;J[c+4>>2]=g;a=a+1|0;s=s+1|0;if((d|0)!=(s|0)){continue}break}}J[k+8>>2]=0;J[k+12>>2]=0;J[k+16>>2]=0;J[k+20>>2]=0;J[k+24>>2]=0;J[k+28>>2]=0;J[k+32>>2]=0;J[k>>2]=0;J[k+4>>2]=0;J[k+40>>2]=0;J[k+44>>2]=0;d=0;p=0;c=0;s=0;t=ba-32|0;ba=t;a=n-r>>3;Lc:{if((a|0)<=0){break Lc}A=a&3;Mc:{if(a>>>0<4){a=0;break Mc}E=a&-4;a=0;while(1){g=(a<<3)+r|0;x=J[g>>2];m=J[g+4>>2];D=m;q=a|1;n=(q<<3)+r|0;g=J[n>>2];u=a|2;v=(u<<3)+r|0;h=J[v>>2];y=a|3;z=(y<<3)+r|0;j=J[z>>2];c=m|x?a:c;m=J[n+4>>2];c=m|g?q:c;q=J[v+4>>2];n=J[z+4>>2];c=n|j?y:q|h?u:c;u=j;v=q;q=i+D|0;f=f+x|0;j=(f>>>0>>0?q+1|0:q)+m|0;m=f;f=g+f|0;g=(m>>>0>f>>>0?j+1|0:j)+v|0;m=f;f=f+h|0;m=(m>>>0>f>>>0?g+1|0:g)+n|0;g=f;f=f+u|0;i=g>>>0>f>>>0?m+1|0:m;a=a+4|0;d=d+4|0;if((E|0)!=(d|0)){continue}break}}if(!A){break Lc}while(1){g=(a<<3)+r|0;d=J[g>>2];g=J[g+4>>2];c=d|g?a:c;a=a+1|0;g=g+i|0;f=d+f|0;i=f>>>0>>0?g+1|0:g;p=p+1|0;if((A|0)!=(p|0)){continue}break}}g=c+1|0;J[k+12>>2]=g;d=J[k>>2];a=J[k+4>>2]-d>>3;Nc:{if(a>>>0>>0){Wa(k,g-a|0);break Nc}if(a>>>0<=g>>>0){break Nc}J[k+4>>2]=d+(g<<3)}n=0;Oc:{Pc:{Qc:{Rc:{if((c|0)>=0){w=+(f>>>0)+ +(i>>>0)*4294967296;f=J[k>>2];a=0;while(1){i=a<<3;h=i+r|0;d=J[h>>2];h=J[h+4>>2];j=(d|h)!=0;m=f+i|0;o=(+(d>>>0)+ +(h>>>0)*4294967296)/w*65536+.5;Sc:{if(o<4294967296&o>=0){d=~~o>>>0;break Sc}d=0}d=d?d:j?1:d;J[m>>2]=d;n=d+n|0;d=(a|0)==(c|0);a=a+1|0;if(!d){continue}break}if((n|0)==65536){break Rc}}J[t+16>>2]=0;J[t+8>>2]=0;J[t+12>>2]=0;p=0;Tc:{if(!g){break Tc}if(g>>>0>=1073741824){break a}i=g<<2;s=oa(i);J[t+8>>2]=s;d=0;f=pa(s,0,i);a=0;if(c>>>0>=7){h=g&-8;while(1){J[f+(a<<2)>>2]=a;j=a|1;J[f+(j<<2)>>2]=j;j=a|2;J[f+(j<<2)>>2]=j;j=a|3;J[f+(j<<2)>>2]=j;j=a|4;J[f+(j<<2)>>2]=j;j=a|5;J[f+(j<<2)>>2]=j;j=a|6;J[f+(j<<2)>>2]=j;j=a|7;J[f+(j<<2)>>2]=j;a=a+8|0;p=p+8|0;if((h|0)!=(p|0)){continue}break}}p=f+i|0;i=g&7;if(!i){break Tc}while(1){J[f+(a<<2)>>2]=a;a=a+1|0;d=d+1|0;if((i|0)!=(d|0)){continue}break}}J[t+24>>2]=k;a=p-s|0;d=a>>2;Uc:{Vc:{if((a|0)>=513){a=d;while(1){f=oa(a<<2);if(f){break Vc}f=a>>>0>1;a=a>>>1|0;if(f){continue}break}}Zb(s,p,t+24|0,d,0,0);break Uc}Zb(s,p,t+24|0,d,f,a);na(f)}if((n|0)<65536){a=J[k>>2]+(J[p-4>>2]<<3)|0;J[a>>2]=(J[a>>2]-n|0)+65536;a=0;break Qc}if((c|0)>0){h=J[k>>2];p=n-65536|0;while(1){o=65536/+(n|0);d=c;while(1){Wc:{Xc:{f=h+(J[(d<<2)+s>>2]<<3)|0;a=J[f>>2];if(a>>>0>=2){q=f;m=a;w=V(o*+(a>>>0));Yc:{if(R(w)<2147483648){i=~~w;break Yc}i=-2147483648}f=(a|0)==(i|0)?1:a-i|0;a=(a|0)>(f|0)?f:a-1|0;a=(a|0)<(p|0)?a:p;J[q>>2]=m-a;p=p-a|0;n=n-a|0;if((n|0)!=65536){break Xc}n=65536;break Wc}if((c|0)!=(d|0)){break Wc}a=1;break Qc}a=(d|0)>1;d=d-1|0;if(a){continue}}break}a=0;if((p|0)>0){continue}break}break Qc}a=0;if(n>>>0<65537){break Qc}while(1)continue}if((c|0)<0){break Oc}break Pc}d=J[t+8>>2];if(d){na(d)}if((c|0)<0|a){break Oc}}d=J[k>>2];n=0;p=0;a=0;if(c>>>0>=3){i=g&-4;s=0;while(1){f=p<<3;h=f+d|0;J[h+4>>2]=a;j=d+(f|8)|0;a=J[h>>2]+a|0;J[j+4>>2]=a;h=d+(f|16)|0;a=a+J[j>>2]|0;J[h+4>>2]=a;f=d+(f|24)|0;a=a+J[h>>2]|0;J[f+4>>2]=a;a=a+J[f>>2]|0;p=p+4|0;s=s+4|0;if((i|0)!=(s|0)){continue}break}}f=g&3;if(f){while(1){i=d+(p<<3)|0;J[i+4>>2]=a;p=p+1|0;a=J[i>>2]+a|0;n=n+1|0;if((f|0)!=(n|0)){continue}break}}if((a|0)!=65536){break Oc}a=0;o=0;Zc:{if((c|0)<0){break Zc}f=J[k>>2];if(c){c=g&-2;d=0;while(1){i=a<<3;h=J[i+f>>2];if(h){i=i+r|0;o=(+M[i>>2]+ +M[i+4>>2]*4294967296)*va(+(h>>>0)*152587890625e-16)+o}i=(a|1)<<3;h=J[i+f>>2];if(h){i=i+r|0;o=(+M[i>>2]+ +M[i+4>>2]*4294967296)*va(+(h>>>0)*152587890625e-16)+o}a=a+2|0;d=d+2|0;if((c|0)!=(d|0)){continue}break}}if(!(g&1)){break Zc}a=a<<3;c=J[a+f>>2];if(!c){break Zc}a=a+r|0;o=(+M[a>>2]+ +M[a+4>>2]*4294967296)*va(+(c>>>0)*152587890625e-16)+o}o=W(-o);_c:{if(o<0x10000000000000000&o>=0){c=R(o)>=1?~~(o>0?T(V(o*2.3283064365386963e-10),4294967295):W((o-+(~~o>>>0>>>0))*2.3283064365386963e-10))>>>0:0;a=~~o>>>0;break _c}c=0;a=0}J[k+16>>2]=a;J[k+20>>2]=c;Va(k,e)}ba=t+32|0;c=J[k+16>>2];d=J[k+20>>2];a=J[e+4>>2]-J[e>>2]|0;J[k+40>>2]=a;J[k+44>>2]=0;g=d<<1|c>>>31;c=(c<<1)+39|0;q=c>>>0<39?g+1|0:g;c=a+((q&7)<<29|c>>>3)|0;m=q>>>3|0;h=a>>>0>c>>>0?m+1|0:m;a=c+8|0;Ia(e,a);a=J[e>>2];J[k+28>>2]=0;J[k+32>>2]=262144;J[k+24>>2]=a+J[k+40>>2];if((b|0)>0){a=262144;while(1){c=b-1|0;f=J[k>>2]+(J[l+(c<<2)>>2]<<3)|0;d=J[f>>2];i=d<<10;if(i>>>0<=a>>>0){while(1){g=J[k+28>>2];J[k+28>>2]=g+1;H[g+J[k+24>>2]|0]=a;a=J[k+32>>2]>>>8|0;J[k+32>>2]=a;if(a>>>0>=i>>>0){continue}break}}g=J[f+4>>2];f=(a>>>0)/(d>>>0)|0;a=g+((f<<16)+(a-P(d,f)|0)|0)|0;J[k+32>>2]=a;d=(b|0)>1;b=c;if(d){continue}break}}a=ba-32|0;ba=a;c=J[e>>2]+J[k+40>>2]|0;b=J[k+32>>2];d=b-262144|0;$c:{if(d>>>0<=63){H[J[k+24>>2]+J[k+28>>2]|0]=b;f=J[k+28>>2]+1|0;break $c}if(d>>>0<=16383){d=J[k+24>>2]+J[k+28>>2]|0;H[d+1|0]=b+16384>>>8;H[d|0]=b;f=J[k+28>>2]+2|0;break $c}if(d>>>0<=4194303){d=J[k+24>>2]+J[k+28>>2]|0;H[d+2|0]=b+8126464>>>16;H[d+1|0]=b>>>8;H[d|0]=b;f=J[k+28>>2]+3|0;break $c}if(d>>>0<=1073741823){d=J[k+24>>2]+J[k+28>>2]|0;f=b-1074003968|0;H[d+3|0]=f>>>24;H[d+2|0]=f>>>16;H[d+1|0]=b>>>8;H[d|0]=b;f=J[k+28>>2]+4|0;break $c}f=J[k+28>>2]}b=f;J[a>>2]=0;J[a+4>>2]=0;H[a+24|0]=0;J[a+16>>2]=0;J[a+20>>2]=0;J[a+8>>2]=0;J[a+12>>2]=0;g=b>>31;xb(b,g,a);d=J[a+4>>2]-J[a>>2]|0;ta(d+c|0,c,b);ua(c,J[a>>2],d);c=J[k+40>>2];b=b+d|0;q=J[k+44>>2]+(f>>>0>b>>>0?g+1|0:g)|0;d=b;b=b+c|0;Ia(e,b);b=J[a+12>>2];J[a+12>>2]=0;if(b){na(b)}b=J[a>>2];if(b){J[a+4>>2]=b;na(b)}ba=a+32|0;a=J[k>>2];if(a){J[k+4>>2]=a;na(a)}a=J[k+48>>2];if(a){na(a)}ba=k- -64|0;break Jc}h=1;break v;case 11:l=a;n=0;r=0;d=0;s=0;f=0;i=0;k=ba+-64|0;ba=k;J[k+56>>2]=0;J[k+48>>2]=0;J[k+52>>2]=0;ad:{a=p+1|0;if(a){if(a>>>0>=536870912){break a}a=a<<3;r=oa(a);J[k+48>>2]=r;n=pa(r,0,(p<<3)+8|0)+a|0}bd:{if((b|0)<=0){break bd}a=0;if(b>>>0>=4){j=b&-4;while(1){c=a<<2;g=(J[c+l>>2]<<3)+r|0;m=J[g>>2];h=J[g+4>>2];m=m+1|0;h=m?h:h+1|0;J[g>>2]=m;J[g+4>>2]=h;g=(J[l+(c|4)>>2]<<3)+r|0;h=J[g>>2];m=J[g+4>>2];h=h+1|0;m=h?m:m+1|0;J[g>>2]=h;J[g+4>>2]=m;g=(J[l+(c|8)>>2]<<3)+r|0;h=J[g>>2];q=J[g+4>>2];h=h+1|0;q=h?q:q+1|0;J[g>>2]=h;J[g+4>>2]=q;c=(J[l+(c|12)>>2]<<3)+r|0;g=J[c>>2];h=J[c+4>>2];g=g+1|0;h=g?h:h+1|0;J[c>>2]=g;J[c+4>>2]=h;a=a+4|0;d=d+4|0;if((j|0)!=(d|0)){continue}break}}d=b&3;if(!d){break bd}while(1){c=(J[l+(a<<2)>>2]<<3)+r|0;g=J[c>>2];m=J[c+4>>2];g=g+1|0;m=g?m:m+1|0;J[c>>2]=g;J[c+4>>2]=m;a=a+1|0;s=s+1|0;if((d|0)!=(s|0)){continue}break}}J[k+8>>2]=0;J[k+12>>2]=0;J[k+16>>2]=0;J[k+20>>2]=0;J[k+24>>2]=0;J[k+28>>2]=0;J[k+32>>2]=0;J[k>>2]=0;J[k+4>>2]=0;J[k+40>>2]=0;J[k+44>>2]=0;d=0;p=0;c=0;s=0;t=ba-32|0;ba=t;a=n-r>>3;cd:{if((a|0)<=0){break cd}A=a&3;dd:{if(a>>>0<4){a=0;break dd}E=a&-4;a=0;while(1){g=(a<<3)+r|0;x=J[g>>2];m=J[g+4>>2];D=m;q=a|1;n=(q<<3)+r|0;g=J[n>>2];u=a|2;v=(u<<3)+r|0;h=J[v>>2];y=a|3;z=(y<<3)+r|0;j=J[z>>2];c=m|x?a:c;m=J[n+4>>2];c=m|g?q:c;q=J[v+4>>2];n=J[z+4>>2];c=n|j?y:q|h?u:c;u=j;j=h;v=q;q=i+D|0;f=f+x|0;h=(f>>>0>>0?q+1|0:q)+m|0;m=f;f=g+f|0;g=(m>>>0>f>>>0?h+1|0:h)+v|0;m=f;f=f+j|0;j=(m>>>0>f>>>0?g+1|0:g)+n|0;g=f;f=f+u|0;i=g>>>0>f>>>0?j+1|0:j;a=a+4|0;d=d+4|0;if((E|0)!=(d|0)){continue}break}}if(!A){break cd}while(1){g=(a<<3)+r|0;d=J[g>>2];g=J[g+4>>2];c=d|g?a:c;a=a+1|0;m=g+i|0;f=d+f|0;i=f>>>0>>0?m+1|0:m;p=p+1|0;if((A|0)!=(p|0)){continue}break}}g=c+1|0;J[k+12>>2]=g;d=J[k>>2];a=J[k+4>>2]-d>>3;ed:{if(a>>>0>>0){Wa(k,g-a|0);break ed}if(a>>>0<=g>>>0){break ed}J[k+4>>2]=d+(g<<3)}n=0;fd:{gd:{hd:{id:{if((c|0)>=0){w=+(f>>>0)+ +(i>>>0)*4294967296;f=J[k>>2];a=0;while(1){i=a<<3;h=i+r|0;d=J[h>>2];h=J[h+4>>2];j=(d|h)!=0;m=f+i|0;o=(+(d>>>0)+ +(h>>>0)*4294967296)/w*262144+.5;jd:{if(o<4294967296&o>=0){d=~~o>>>0;break jd}d=0}d=d?d:j?1:d;J[m>>2]=d;n=d+n|0;d=(a|0)==(c|0);a=a+1|0;if(!d){continue}break}if((n|0)==262144){break id}}J[t+16>>2]=0;J[t+8>>2]=0;J[t+12>>2]=0;p=0;kd:{if(!g){break kd}if(g>>>0>=1073741824){break a}i=g<<2;s=oa(i);J[t+8>>2]=s;d=0;f=pa(s,0,i);a=0;if(c>>>0>=7){h=g&-8;while(1){J[f+(a<<2)>>2]=a;j=a|1;J[f+(j<<2)>>2]=j;j=a|2;J[f+(j<<2)>>2]=j;j=a|3;J[f+(j<<2)>>2]=j;j=a|4;J[f+(j<<2)>>2]=j;j=a|5;J[f+(j<<2)>>2]=j;j=a|6;J[f+(j<<2)>>2]=j;j=a|7;J[f+(j<<2)>>2]=j;a=a+8|0;p=p+8|0;if((h|0)!=(p|0)){continue}break}}p=f+i|0;i=g&7;if(!i){break kd}while(1){J[f+(a<<2)>>2]=a;a=a+1|0;d=d+1|0;if((i|0)!=(d|0)){continue}break}}J[t+24>>2]=k;a=p-s|0;d=a>>2;ld:{md:{if((a|0)>=513){a=d;while(1){f=oa(a<<2);if(f){break md}f=a>>>0>1;a=a>>>1|0;if(f){continue}break}}Yb(s,p,t+24|0,d,0,0);break ld}Yb(s,p,t+24|0,d,f,a);na(f)}if((n|0)<262144){a=J[k>>2]+(J[p-4>>2]<<3)|0;J[a>>2]=(J[a>>2]-n|0)+262144;a=0;break hd}if((c|0)>0){h=J[k>>2];p=n-262144|0;while(1){o=262144/+(n|0);d=c;while(1){nd:{od:{f=h+(J[(d<<2)+s>>2]<<3)|0;a=J[f>>2];if(a>>>0>=2){q=f;m=a;w=V(o*+(a>>>0));pd:{if(R(w)<2147483648){i=~~w;break pd}i=-2147483648}f=(a|0)==(i|0)?1:a-i|0;a=(a|0)>(f|0)?f:a-1|0;a=(a|0)<(p|0)?a:p;J[q>>2]=m-a;p=p-a|0;n=n-a|0;if((n|0)!=262144){break od}n=262144;break nd}if((c|0)!=(d|0)){break nd}a=1;break hd}a=(d|0)>1;d=d-1|0;if(a){continue}}break}a=0;if((p|0)>0){continue}break}break hd}a=0;if(n>>>0<262145){break hd}while(1)continue}if((c|0)<0){break fd}break gd}d=J[t+8>>2];if(d){na(d)}if((c|0)<0|a){break fd}}d=J[k>>2];n=0;p=0;a=0;if(c>>>0>=3){i=g&-4;s=0;while(1){f=p<<3;h=f+d|0;J[h+4>>2]=a;j=d+(f|8)|0;a=J[h>>2]+a|0;J[j+4>>2]=a;h=d+(f|16)|0;a=a+J[j>>2]|0;J[h+4>>2]=a;f=d+(f|24)|0;a=a+J[h>>2]|0;J[f+4>>2]=a;a=a+J[f>>2]|0;p=p+4|0;s=s+4|0;if((i|0)!=(s|0)){continue}break}}f=g&3;if(f){while(1){i=d+(p<<3)|0;J[i+4>>2]=a;p=p+1|0;a=J[i>>2]+a|0;n=n+1|0;if((f|0)!=(n|0)){continue}break}}if((a|0)!=262144){break fd}a=0;o=0;qd:{if((c|0)<0){break qd}f=J[k>>2];if(c){c=g&-2;d=0;while(1){i=a<<3;h=J[i+f>>2];if(h){i=i+r|0;o=(+M[i>>2]+ +M[i+4>>2]*4294967296)*va(+(h>>>0)*3814697265625e-18)+o}i=(a|1)<<3;h=J[i+f>>2];if(h){i=i+r|0;o=(+M[i>>2]+ +M[i+4>>2]*4294967296)*va(+(h>>>0)*3814697265625e-18)+o}a=a+2|0;d=d+2|0;if((c|0)!=(d|0)){continue}break}}if(!(g&1)){break qd}a=a<<3;c=J[a+f>>2];if(!c){break qd}a=a+r|0;o=(+M[a>>2]+ +M[a+4>>2]*4294967296)*va(+(c>>>0)*3814697265625e-18)+o}o=W(-o);rd:{if(o<0x10000000000000000&o>=0){c=R(o)>=1?~~(o>0?T(V(o*2.3283064365386963e-10),4294967295):W((o-+(~~o>>>0>>>0))*2.3283064365386963e-10))>>>0:0;a=~~o>>>0;break rd}c=0;a=0}J[k+16>>2]=a;J[k+20>>2]=c;Va(k,e)}ba=t+32|0;c=J[k+16>>2];d=J[k+20>>2];a=J[e+4>>2]-J[e>>2]|0;J[k+40>>2]=a;J[k+44>>2]=0;g=d<<1|c>>>31;c=(c<<1)+39|0;q=c>>>0<39?g+1|0:g;c=a+((q&7)<<29|c>>>3)|0;j=q>>>3|0;g=a>>>0>c>>>0?j+1|0:j;a=c+8|0;Ia(e,a);a=J[e>>2];J[k+28>>2]=0;J[k+32>>2]=1048576;J[k+24>>2]=a+J[k+40>>2];if((b|0)>0){a=1048576;while(1){c=b-1|0;f=J[k>>2]+(J[l+(c<<2)>>2]<<3)|0;d=J[f>>2];i=d<<10;if(i>>>0<=a>>>0){while(1){g=J[k+28>>2];J[k+28>>2]=g+1;H[g+J[k+24>>2]|0]=a;a=J[k+32>>2]>>>8|0;J[k+32>>2]=a;if(a>>>0>=i>>>0){continue}break}}g=J[f+4>>2];f=(a>>>0)/(d>>>0)|0;a=g+((f<<18)+(a-P(d,f)|0)|0)|0;J[k+32>>2]=a;d=(b|0)>1;b=c;if(d){continue}break}}a=ba-32|0;ba=a;c=J[e>>2]+J[k+40>>2]|0;b=J[k+32>>2];d=b+-1048576|0;sd:{if(d>>>0<=63){H[J[k+24>>2]+J[k+28>>2]|0]=b;f=J[k+28>>2]+1|0;break sd}if(d>>>0<=16383){d=J[k+24>>2]+J[k+28>>2]|0;H[d+1|0]=b+16384>>>8;H[d|0]=b;f=J[k+28>>2]+2|0;break sd}if(d>>>0<=4194303){d=J[k+24>>2]+J[k+28>>2]|0;H[d+2|0]=b+7340032>>>16;H[d+1|0]=b>>>8;H[d|0]=b;f=J[k+28>>2]+3|0;break sd}if(d>>>0<=1073741823){d=J[k+24>>2]+J[k+28>>2]|0;f=b-1074790400|0;H[d+3|0]=f>>>24;H[d+2|0]=f>>>16;H[d+1|0]=b>>>8;H[d|0]=b;f=J[k+28>>2]+4|0;break sd}f=J[k+28>>2]}b=f;J[a>>2]=0;J[a+4>>2]=0;H[a+24|0]=0;J[a+16>>2]=0;J[a+20>>2]=0;J[a+8>>2]=0;J[a+12>>2]=0;g=b>>31;xb(b,g,a);d=J[a+4>>2]-J[a>>2]|0;ta(d+c|0,c,b);ua(c,J[a>>2],d);c=J[k+40>>2];b=b+d|0;q=J[k+44>>2]+(f>>>0>b>>>0?g+1|0:g)|0;d=b;b=b+c|0;Ia(e,b);b=J[a+12>>2];J[a+12>>2]=0;if(b){na(b)}b=J[a>>2];if(b){J[a+4>>2]=b;na(b)}ba=a+32|0;a=J[k>>2];if(a){J[k+4>>2]=a;na(a)}a=J[k+48>>2];if(a){na(a)}ba=k- -64|0;break ad}h=1;break v;case 12:l=a;n=0;r=0;d=0;s=0;f=0;i=0;k=ba+-64|0;ba=k;J[k+56>>2]=0;J[k+48>>2]=0;J[k+52>>2]=0;td:{a=p+1|0;if(a){if(a>>>0>=536870912){break a}a=a<<3;r=oa(a);J[k+48>>2]=r;n=pa(r,0,(p<<3)+8|0)+a|0}ud:{if((b|0)<=0){break ud}a=0;if(b>>>0>=4){m=b&-4;while(1){c=a<<2;g=(J[c+l>>2]<<3)+r|0;h=g;j=J[g>>2];g=J[g+4>>2];j=j+1|0;g=j?g:g+1|0;J[h>>2]=j;J[h+4>>2]=g;g=(J[l+(c|4)>>2]<<3)+r|0;h=J[g>>2];j=J[g+4>>2];h=h+1|0;j=h?j:j+1|0;J[g>>2]=h;J[g+4>>2]=j;g=(J[l+(c|8)>>2]<<3)+r|0;h=J[g>>2];q=J[g+4>>2];h=h+1|0;q=h?q:q+1|0;J[g>>2]=h;J[g+4>>2]=q;c=(J[l+(c|12)>>2]<<3)+r|0;h=J[c>>2];g=J[c+4>>2];h=h+1|0;g=h?g:g+1|0;J[c>>2]=h;J[c+4>>2]=g;a=a+4|0;d=d+4|0;if((m|0)!=(d|0)){continue}break}}d=b&3;if(!d){break ud}while(1){c=(J[l+(a<<2)>>2]<<3)+r|0;g=J[c>>2];j=J[c+4>>2];g=g+1|0;j=g?j:j+1|0;J[c>>2]=g;J[c+4>>2]=j;a=a+1|0;s=s+1|0;if((d|0)!=(s|0)){continue}break}}J[k+8>>2]=0;J[k+12>>2]=0;J[k+16>>2]=0;J[k+20>>2]=0;J[k+24>>2]=0;J[k+28>>2]=0;J[k+32>>2]=0;J[k>>2]=0;J[k+4>>2]=0;J[k+40>>2]=0;J[k+44>>2]=0;d=0;p=0;c=0;s=0;t=ba-32|0;ba=t;a=n-r>>3;vd:{if((a|0)<=0){break vd}A=a&3;wd:{if(a>>>0<4){a=0;break wd}E=a&-4;a=0;while(1){g=(a<<3)+r|0;x=J[g>>2];m=J[g+4>>2];D=m;q=a|1;n=(q<<3)+r|0;g=J[n>>2];u=a|2;v=(u<<3)+r|0;h=J[v>>2];y=a|3;z=(y<<3)+r|0;j=J[z>>2];c=m|x?a:c;m=J[n+4>>2];c=m|g?q:c;q=J[v+4>>2];n=J[z+4>>2];c=n|j?y:q|h?u:c;u=q;v=g;q=i+D|0;f=f+x|0;g=(f>>>0>>0?q+1|0:q)+m|0;m=f;f=f+v|0;g=(m>>>0>f>>>0?g+1|0:g)+u|0;m=f;f=f+h|0;h=(m>>>0>f>>>0?g+1|0:g)+n|0;g=f;f=f+j|0;i=g>>>0>f>>>0?h+1|0:h;a=a+4|0;d=d+4|0;if((E|0)!=(d|0)){continue}break}}if(!A){break vd}while(1){g=(a<<3)+r|0;d=J[g>>2];g=J[g+4>>2];c=d|g?a:c;a=a+1|0;j=g+i|0;f=d+f|0;i=f>>>0>>0?j+1|0:j;p=p+1|0;if((A|0)!=(p|0)){continue}break}}g=c+1|0;J[k+12>>2]=g;d=J[k>>2];a=J[k+4>>2]-d>>3;xd:{if(a>>>0>>0){Wa(k,g-a|0);break xd}if(a>>>0<=g>>>0){break xd}J[k+4>>2]=d+(g<<3)}n=0;yd:{zd:{Ad:{Bd:{if((c|0)>=0){w=+(f>>>0)+ +(i>>>0)*4294967296;f=J[k>>2];a=0;while(1){i=a<<3;h=i+r|0;d=J[h>>2];h=J[h+4>>2];j=(d|h)!=0;m=f+i|0;o=(+(d>>>0)+ +(h>>>0)*4294967296)/w*524288+.5;Cd:{if(o<4294967296&o>=0){d=~~o>>>0;break Cd}d=0}d=d?d:j?1:d;J[m>>2]=d;n=d+n|0;d=(a|0)==(c|0);a=a+1|0;if(!d){continue}break}if((n|0)==524288){break Bd}}J[t+16>>2]=0;J[t+8>>2]=0;J[t+12>>2]=0;p=0;Dd:{if(!g){break Dd}if(g>>>0>=1073741824){break a}i=g<<2;s=oa(i);J[t+8>>2]=s;d=0;f=pa(s,0,i);a=0;if(c>>>0>=7){h=g&-8;while(1){J[f+(a<<2)>>2]=a;j=a|1;J[f+(j<<2)>>2]=j;j=a|2;J[f+(j<<2)>>2]=j;j=a|3;J[f+(j<<2)>>2]=j;j=a|4;J[f+(j<<2)>>2]=j;j=a|5;J[f+(j<<2)>>2]=j;j=a|6;J[f+(j<<2)>>2]=j;j=a|7;J[f+(j<<2)>>2]=j;a=a+8|0;p=p+8|0;if((h|0)!=(p|0)){continue}break}}p=f+i|0;i=g&7;if(!i){break Dd}while(1){J[f+(a<<2)>>2]=a;a=a+1|0;d=d+1|0;if((i|0)!=(d|0)){continue}break}}J[t+24>>2]=k;a=p-s|0;d=a>>2;Ed:{Fd:{if((a|0)>=513){a=d;while(1){f=oa(a<<2);if(f){break Fd}f=a>>>0>1;a=a>>>1|0;if(f){continue}break}}Xb(s,p,t+24|0,d,0,0);break Ed}Xb(s,p,t+24|0,d,f,a);na(f)}if((n|0)<524288){a=J[k>>2]+(J[p-4>>2]<<3)|0;J[a>>2]=(J[a>>2]-n|0)+524288;a=0;break Ad}if((c|0)>0){h=J[k>>2];p=n-524288|0;while(1){o=524288/+(n|0);d=c;while(1){Gd:{Hd:{f=h+(J[(d<<2)+s>>2]<<3)|0;a=J[f>>2];if(a>>>0>=2){q=f;m=a;w=V(o*+(a>>>0));Id:{if(R(w)<2147483648){i=~~w;break Id}i=-2147483648}f=(a|0)==(i|0)?1:a-i|0;a=(a|0)>(f|0)?f:a-1|0;a=(a|0)<(p|0)?a:p;J[q>>2]=m-a;p=p-a|0;n=n-a|0;if((n|0)!=524288){break Hd}n=524288;break Gd}if((c|0)!=(d|0)){break Gd}a=1;break Ad}a=(d|0)>1;d=d-1|0;if(a){continue}}break}a=0;if((p|0)>0){continue}break}break Ad}a=0;if(n>>>0<524289){break Ad}while(1)continue}if((c|0)<0){break yd}break zd}d=J[t+8>>2];if(d){na(d)}if((c|0)<0|a){break yd}}d=J[k>>2];n=0;p=0;a=0;if(c>>>0>=3){i=g&-4;s=0;while(1){f=p<<3;h=f+d|0;J[h+4>>2]=a;j=d+(f|8)|0;a=J[h>>2]+a|0;J[j+4>>2]=a;h=d+(f|16)|0;a=a+J[j>>2]|0;J[h+4>>2]=a;f=d+(f|24)|0;a=a+J[h>>2]|0;J[f+4>>2]=a;a=a+J[f>>2]|0;p=p+4|0;s=s+4|0;if((i|0)!=(s|0)){continue}break}}f=g&3;if(f){while(1){i=d+(p<<3)|0;J[i+4>>2]=a;p=p+1|0;a=J[i>>2]+a|0;n=n+1|0;if((f|0)!=(n|0)){continue}break}}if((a|0)!=524288){break yd}a=0;o=0;Jd:{if((c|0)<0){break Jd}f=J[k>>2];if(c){c=g&-2;d=0;while(1){i=a<<3;h=J[i+f>>2];if(h){i=i+r|0;o=(+M[i>>2]+ +M[i+4>>2]*4294967296)*va(+(h>>>0)*19073486328125e-19)+o}i=(a|1)<<3;h=J[i+f>>2];if(h){i=i+r|0;o=(+M[i>>2]+ +M[i+4>>2]*4294967296)*va(+(h>>>0)*19073486328125e-19)+o}a=a+2|0;d=d+2|0;if((c|0)!=(d|0)){continue}break}}if(!(g&1)){break Jd}a=a<<3;c=J[a+f>>2];if(!c){break Jd}a=a+r|0;o=(+M[a>>2]+ +M[a+4>>2]*4294967296)*va(+(c>>>0)*19073486328125e-19)+o}o=W(-o);Kd:{if(o<0x10000000000000000&o>=0){c=R(o)>=1?~~(o>0?T(V(o*2.3283064365386963e-10),4294967295):W((o-+(~~o>>>0>>>0))*2.3283064365386963e-10))>>>0:0;a=~~o>>>0;break Kd}c=0;a=0}J[k+16>>2]=a;J[k+20>>2]=c;Va(k,e)}ba=t+32|0;c=J[k+16>>2];d=J[k+20>>2];a=J[e+4>>2]-J[e>>2]|0;J[k+40>>2]=a;J[k+44>>2]=0;g=d<<1|c>>>31;c=(c<<1)+39|0;q=c>>>0<39?g+1|0:g;c=a+((q&7)<<29|c>>>3)|0;h=q>>>3|0;m=a>>>0>c>>>0?h+1|0:h;a=c+8|0;Ia(e,a);a=J[e>>2];J[k+28>>2]=0;J[k+32>>2]=2097152;J[k+24>>2]=a+J[k+40>>2];if((b|0)>0){a=2097152;while(1){c=b-1|0;f=J[k>>2]+(J[l+(c<<2)>>2]<<3)|0;d=J[f>>2];i=d<<10;if(i>>>0<=a>>>0){while(1){g=J[k+28>>2];J[k+28>>2]=g+1;H[g+J[k+24>>2]|0]=a;a=J[k+32>>2]>>>8|0;J[k+32>>2]=a;if(a>>>0>=i>>>0){continue}break}}g=J[f+4>>2];f=(a>>>0)/(d>>>0)|0;a=g+((f<<19)+(a-P(d,f)|0)|0)|0;J[k+32>>2]=a;d=(b|0)>1;b=c;if(d){continue}break}}a=ba-32|0;ba=a;c=J[e>>2]+J[k+40>>2]|0;b=J[k+32>>2];d=b-2097152|0;Ld:{if(d>>>0<=63){H[J[k+24>>2]+J[k+28>>2]|0]=b;f=J[k+28>>2]+1|0;break Ld}if(d>>>0<=16383){d=J[k+24>>2]+J[k+28>>2]|0;H[d+1|0]=b+16384>>>8;H[d|0]=b;f=J[k+28>>2]+2|0;break Ld}if(d>>>0<=4194303){d=J[k+24>>2]+J[k+28>>2]|0;H[d+2|0]=b+6291456>>>16;H[d+1|0]=b>>>8;H[d|0]=b;f=J[k+28>>2]+3|0;break Ld}if(d>>>0<=1073741823){d=J[k+24>>2]+J[k+28>>2]|0;f=b-1075838976|0;H[d+3|0]=f>>>24;H[d+2|0]=f>>>16;H[d+1|0]=b>>>8;H[d|0]=b;f=J[k+28>>2]+4|0;break Ld}f=J[k+28>>2]}b=f;J[a>>2]=0;J[a+4>>2]=0;H[a+24|0]=0;J[a+16>>2]=0;J[a+20>>2]=0;J[a+8>>2]=0;J[a+12>>2]=0;g=b>>31;xb(b,g,a);d=J[a+4>>2]-J[a>>2]|0;ta(d+c|0,c,b);ua(c,J[a>>2],d);c=J[k+40>>2];b=b+d|0;q=J[k+44>>2]+(f>>>0>b>>>0?g+1|0:g)|0;d=b;b=b+c|0;Ia(e,b);b=J[a+12>>2];J[a+12>>2]=0;if(b){na(b)}b=J[a>>2];if(b){J[a+4>>2]=b;na(b)}ba=a+32|0;a=J[k>>2];if(a){J[k+4>>2]=a;na(a)}a=J[k+48>>2];if(a){na(a)}ba=k- -64|0;break td}h=1;break v;case 13:u=a;k=0;n=0;r=0;s=0;f=0;i=0;l=ba+-64|0;ba=l;J[l+56>>2]=0;J[l+48>>2]=0;J[l+52>>2]=0;Md:{a=p+1|0;if(a){if(a>>>0>=536870912){break a}a=a<<3;n=oa(a);J[l+48>>2]=n;k=pa(n,0,(p<<3)+8|0)+a|0}Nd:{if((b|0)<=0){break Nd}a=0;if(b>>>0>=4){g=b&-4;while(1){c=a<<2;d=(J[c+u>>2]<<3)+n|0;h=J[d>>2];m=J[d+4>>2];h=h+1|0;m=h?m:m+1|0;J[d>>2]=h;J[d+4>>2]=m;d=(J[u+(c|4)>>2]<<3)+n|0;j=J[d>>2];h=J[d+4>>2];j=j+1|0;h=j?h:h+1|0;J[d>>2]=j;J[d+4>>2]=h;d=(J[u+(c|8)>>2]<<3)+n|0;h=J[d>>2];q=J[d+4>>2];h=h+1|0;q=h?q:q+1|0;J[d>>2]=h;J[d+4>>2]=q;c=(J[u+(c|12)>>2]<<3)+n|0;d=J[c>>2];m=J[c+4>>2];d=d+1|0;m=d?m:m+1|0;J[c>>2]=d;J[c+4>>2]=m;a=a+4|0;r=r+4|0;if((g|0)!=(r|0)){continue}break}}d=b&3;if(!d){break Nd}while(1){c=(J[u+(a<<2)>>2]<<3)+n|0;g=J[c>>2];h=J[c+4>>2];g=g+1|0;h=g?h:h+1|0;J[c>>2]=g;J[c+4>>2]=h;a=a+1|0;s=s+1|0;if((d|0)!=(s|0)){continue}break}}J[l+8>>2]=0;J[l+12>>2]=0;J[l+16>>2]=0;J[l+20>>2]=0;J[l+24>>2]=0;J[l+28>>2]=0;J[l+32>>2]=0;J[l>>2]=0;J[l+4>>2]=0;J[l+40>>2]=0;J[l+44>>2]=0;c=e;e=0;r=0;d=0;s=0;t=ba-32|0;ba=t;a=k-n>>3;Od:{if((a|0)<=0){break Od}x=a&3;Pd:{if(a>>>0<4){a=0;break Pd}A=a&-4;a=0;while(1){g=(a<<3)+n|0;p=J[g>>2];m=J[g+4>>2];E=m;q=a|1;k=(q<<3)+n|0;g=J[k>>2];v=a|2;D=(v<<3)+n|0;h=J[D>>2];y=a|3;z=(y<<3)+n|0;j=J[z>>2];d=p|m?a:d;m=J[k+4>>2];d=m|g?q:d;q=J[D+4>>2];k=J[z+4>>2];d=k|j?y:q|h?v:d;v=q;q=i+E|0;f=f+p|0;m=(f>>>0

>>0?q+1|0:q)+m|0;i=f;f=g+f|0;g=(i>>>0>f>>>0?m+1|0:m)+v|0;m=f;f=f+h|0;g=(m>>>0>f>>>0?g+1|0:g)+k|0;m=f;f=f+j|0;i=m>>>0>f>>>0?g+1|0:g;a=a+4|0;e=e+4|0;if((A|0)!=(e|0)){continue}break}}if(!x){break Od}while(1){g=(a<<3)+n|0;e=J[g>>2];g=J[g+4>>2];d=e|g?a:d;a=a+1|0;h=g+i|0;f=e+f|0;i=f>>>0>>0?h+1|0:h;r=r+1|0;if((x|0)!=(r|0)){continue}break}}g=d+1|0;J[l+12>>2]=g;e=J[l>>2];a=J[l+4>>2]-e>>3;Qd:{if(a>>>0>>0){Wa(l,g-a|0);break Qd}if(a>>>0<=g>>>0){break Qd}J[l+4>>2]=e+(g<<3)}k=0;Rd:{Sd:{Td:{Ud:{if((d|0)>=0){w=+(f>>>0)+ +(i>>>0)*4294967296;f=J[l>>2];a=0;while(1){i=a<<3;h=i+n|0;e=J[h>>2];h=J[h+4>>2];j=(e|h)!=0;m=f+i|0;o=(+(e>>>0)+ +(h>>>0)*4294967296)/w*1048576+.5;Vd:{if(o<4294967296&o>=0){e=~~o>>>0;break Vd}e=0}e=e?e:j?1:e;J[m>>2]=e;k=e+k|0;e=(a|0)==(d|0);a=a+1|0;if(!e){continue}break}if((k|0)==1048576){break Ud}}J[t+16>>2]=0;J[t+8>>2]=0;J[t+12>>2]=0;p=0;Wd:{if(!g){break Wd}if(g>>>0>=1073741824){break a}i=g<<2;s=oa(i);J[t+8>>2]=s;e=0;f=pa(s,0,i);a=0;if(d>>>0>=7){h=g&-8;while(1){J[f+(a<<2)>>2]=a;j=a|1;J[f+(j<<2)>>2]=j;j=a|2;J[f+(j<<2)>>2]=j;j=a|3;J[f+(j<<2)>>2]=j;j=a|4;J[f+(j<<2)>>2]=j;j=a|5;J[f+(j<<2)>>2]=j;j=a|6;J[f+(j<<2)>>2]=j;j=a|7;J[f+(j<<2)>>2]=j;a=a+8|0;p=p+8|0;if((h|0)!=(p|0)){continue}break}}p=f+i|0;i=g&7;if(!i){break Wd}while(1){J[f+(a<<2)>>2]=a;a=a+1|0;e=e+1|0;if((i|0)!=(e|0)){continue}break}}J[t+24>>2]=l;a=p-s|0;e=a>>2;Xd:{Yd:{if((a|0)>=513){a=e;while(1){f=oa(a<<2);if(f){break Yd}f=a>>>0>1;a=a>>>1|0;if(f){continue}break}}Wb(s,p,t+24|0,e,0,0);break Xd}Wb(s,p,t+24|0,e,f,a);na(f)}if((k|0)<1048576){a=J[l>>2]+(J[p-4>>2]<<3)|0;J[a>>2]=(J[a>>2]-k|0)- -1048576;a=0;break Td}if((d|0)>0){h=J[l>>2];r=k+-1048576|0;while(1){o=1048576/+(k|0);e=d;while(1){Zd:{_d:{f=h+(J[(e<<2)+s>>2]<<3)|0;a=J[f>>2];if(a>>>0>=2){q=f;m=a;w=V(o*+(a>>>0));$d:{if(R(w)<2147483648){i=~~w;break $d}i=-2147483648}f=(a|0)==(i|0)?1:a-i|0;a=(a|0)>(f|0)?f:a-1|0;a=(a|0)<(r|0)?a:r;J[q>>2]=m-a;r=r-a|0;k=k-a|0;if((k|0)!=1048576){break _d}k=1048576;break Zd}if((d|0)!=(e|0)){break Zd}a=1;break Td}a=(e|0)>1;e=e-1|0;if(a){continue}}break}a=0;if((r|0)>0){continue}break}break Td}a=0;if(k>>>0<1048577){break Td}while(1)continue}if((d|0)<0){break Rd}break Sd}e=J[t+8>>2];if(e){na(e)}if((d|0)<0|a){break Rd}}e=J[l>>2];k=0;r=0;a=0;if(d>>>0>=3){i=g&-4;s=0;while(1){f=r<<3;h=f+e|0;J[h+4>>2]=a;j=e+(f|8)|0;a=J[h>>2]+a|0;J[j+4>>2]=a;h=e+(f|16)|0;a=a+J[j>>2]|0;J[h+4>>2]=a;f=e+(f|24)|0;a=a+J[h>>2]|0;J[f+4>>2]=a;a=a+J[f>>2]|0;r=r+4|0;s=s+4|0;if((i|0)!=(s|0)){continue}break}}f=g&3;if(f){while(1){i=e+(r<<3)|0;J[i+4>>2]=a;r=r+1|0;a=J[i>>2]+a|0;k=k+1|0;if((f|0)!=(k|0)){continue}break}}if((a|0)!=1048576){break Rd}a=0;o=0;ae:{if((d|0)<0){break ae}f=J[l>>2];if(d){d=g&-2;e=0;while(1){i=a<<3;h=J[i+f>>2];if(h){i=i+n|0;o=(+M[i>>2]+ +M[i+4>>2]*4294967296)*va(+(h>>>0)*9.5367431640625e-7)+o}i=(a|1)<<3;h=J[i+f>>2];if(h){i=i+n|0;o=(+M[i>>2]+ +M[i+4>>2]*4294967296)*va(+(h>>>0)*9.5367431640625e-7)+o}a=a+2|0;e=e+2|0;if((d|0)!=(e|0)){continue}break}}if(!(g&1)){break ae}a=a<<3;d=J[a+f>>2];if(!d){break ae}a=a+n|0;o=(+M[a>>2]+ +M[a+4>>2]*4294967296)*va(+(d>>>0)*9.5367431640625e-7)+o}o=W(-o);be:{if(o<0x10000000000000000&o>=0){d=R(o)>=1?~~(o>0?T(V(o*2.3283064365386963e-10),4294967295):W((o-+(~~o>>>0>>>0))*2.3283064365386963e-10))>>>0:0;a=~~o>>>0;break be}d=0;a=0}J[l+16>>2]=a;J[l+20>>2]=d;Va(l,c)}ba=t+32|0;d=J[l+16>>2];e=J[l+20>>2];a=J[c+4>>2]-J[c>>2]|0;J[l+40>>2]=a;J[l+44>>2]=0;g=e<<1|d>>>31;d=(d<<1)+39|0;q=d>>>0<39?g+1|0:g;d=a+((q&7)<<29|d>>>3)|0;g=q>>>3|0;j=a>>>0>d>>>0?g+1|0:g;a=d+8|0;Ia(c,a);a=J[c>>2];J[l+28>>2]=0;J[l+32>>2]=4194304;J[l+24>>2]=a+J[l+40>>2];if((b|0)>0){a=4194304;while(1){d=b-1|0;f=J[l>>2]+(J[u+(d<<2)>>2]<<3)|0;e=J[f>>2];i=e<<10;if(i>>>0<=a>>>0){while(1){g=J[l+28>>2];J[l+28>>2]=g+1;H[g+J[l+24>>2]|0]=a;a=J[l+32>>2]>>>8|0;J[l+32>>2]=a;if(a>>>0>=i>>>0){continue}break}}g=J[f+4>>2];f=(a>>>0)/(e>>>0)|0;a=g+((f<<20)+(a-P(e,f)|0)|0)|0;J[l+32>>2]=a;e=(b|0)>1;b=d;if(e){continue}break}}rc(l,c);a=J[l>>2];if(a){J[l+4>>2]=a;na(a)}a=J[l+48>>2];if(a){na(a)}ba=l- -64|0;break Md}h=1;break v;case 14:u=a;k=0;n=0;r=0;s=0;f=0;i=0;l=ba+-64|0;ba=l;J[l+56>>2]=0;J[l+48>>2]=0;J[l+52>>2]=0;ce:{a=p+1|0;if(a){if(a>>>0>=536870912){break a}a=a<<3;n=oa(a);J[l+48>>2]=n;k=pa(n,0,(p<<3)+8|0)+a|0}de:{if((b|0)<=0){break de}a=0;if(b>>>0>=4){h=b&-4;while(1){c=a<<2;d=(J[c+u>>2]<<3)+n|0;j=J[d>>2];g=J[d+4>>2];j=j+1|0;g=j?g:g+1|0;J[d>>2]=j;J[d+4>>2]=g;d=(J[u+(c|4)>>2]<<3)+n|0;g=J[d>>2];q=J[d+4>>2];g=g+1|0;q=g?q:q+1|0;J[d>>2]=g;J[d+4>>2]=q;d=(J[u+(c|8)>>2]<<3)+n|0;g=J[d>>2];j=J[d+4>>2];g=g+1|0;j=g?j:j+1|0;J[d>>2]=g;J[d+4>>2]=j;c=(J[u+(c|12)>>2]<<3)+n|0;d=J[c>>2];g=J[c+4>>2];d=d+1|0;g=d?g:g+1|0;J[c>>2]=d;J[c+4>>2]=g;a=a+4|0;r=r+4|0;if((h|0)!=(r|0)){continue}break}}d=b&3;if(!d){break de}while(1){c=(J[u+(a<<2)>>2]<<3)+n|0;g=J[c>>2];q=J[c+4>>2];g=g+1|0;q=g?q:q+1|0;J[c>>2]=g;J[c+4>>2]=q;a=a+1|0;s=s+1|0;if((d|0)!=(s|0)){continue}break}}J[l+8>>2]=0;J[l+12>>2]=0;J[l+16>>2]=0;J[l+20>>2]=0;J[l+24>>2]=0;J[l+28>>2]=0;J[l+32>>2]=0;J[l>>2]=0;J[l+4>>2]=0;J[l+40>>2]=0;J[l+44>>2]=0;c=e;e=0;r=0;d=0;s=0;t=ba-32|0;ba=t;a=k-n>>3;ee:{if((a|0)<=0){break ee}A=a&3;fe:{if(a>>>0<4){a=0;break fe}E=a&-4;a=0;while(1){g=(a<<3)+n|0;x=J[g>>2];m=J[g+4>>2];D=m;q=a|1;k=(q<<3)+n|0;g=J[k>>2];v=a|2;p=(v<<3)+n|0;h=J[p>>2];y=a|3;z=(y<<3)+n|0;j=J[z>>2];d=m|x?a:d;m=J[k+4>>2];d=m|g?q:d;q=J[p+4>>2];k=J[z+4>>2];d=k|j?y:q|h?v:d;v=j;p=g;j=i+D|0;f=f+x|0;g=(f>>>0>>0?j+1|0:j)+m|0;m=f;f=f+p|0;g=(m>>>0>f>>>0?g+1|0:g)+q|0;m=f;f=f+h|0;m=(m>>>0>f>>>0?g+1|0:g)+k|0;g=f;f=f+v|0;i=g>>>0>f>>>0?m+1|0:m;a=a+4|0;e=e+4|0;if((E|0)!=(e|0)){continue}break}}if(!A){break ee}while(1){g=(a<<3)+n|0;e=J[g>>2];g=J[g+4>>2];d=e|g?a:d;a=a+1|0;q=g+i|0;f=e+f|0;i=f>>>0>>0?q+1|0:q;r=r+1|0;if((A|0)!=(r|0)){continue}break}}g=d+1|0;J[l+12>>2]=g;e=J[l>>2];a=J[l+4>>2]-e>>3;ge:{if(a>>>0>>0){Wa(l,g-a|0);break ge}if(a>>>0<=g>>>0){break ge}J[l+4>>2]=e+(g<<3)}k=0;he:{ie:{je:{ke:{if((d|0)>=0){w=+(f>>>0)+ +(i>>>0)*4294967296;f=J[l>>2];a=0;while(1){i=a<<3;h=i+n|0;e=J[h>>2];h=J[h+4>>2];j=(e|h)!=0;m=f+i|0;o=(+(e>>>0)+ +(h>>>0)*4294967296)/w*1048576+.5;le:{if(o<4294967296&o>=0){e=~~o>>>0;break le}e=0}e=e?e:j?1:e;J[m>>2]=e;k=e+k|0;e=(a|0)==(d|0);a=a+1|0;if(!e){continue}break}if((k|0)==1048576){break ke}}J[t+16>>2]=0;J[t+8>>2]=0;J[t+12>>2]=0;p=0;me:{if(!g){break me}if(g>>>0>=1073741824){break a}i=g<<2;s=oa(i);J[t+8>>2]=s;e=0;f=pa(s,0,i);a=0;if(d>>>0>=7){h=g&-8;while(1){J[f+(a<<2)>>2]=a;j=a|1;J[f+(j<<2)>>2]=j;j=a|2;J[f+(j<<2)>>2]=j;j=a|3;J[f+(j<<2)>>2]=j;j=a|4;J[f+(j<<2)>>2]=j;j=a|5;J[f+(j<<2)>>2]=j;j=a|6;J[f+(j<<2)>>2]=j;j=a|7;J[f+(j<<2)>>2]=j;a=a+8|0;p=p+8|0;if((h|0)!=(p|0)){continue}break}}p=f+i|0;i=g&7;if(!i){break me}while(1){J[f+(a<<2)>>2]=a;a=a+1|0;e=e+1|0;if((i|0)!=(e|0)){continue}break}}J[t+24>>2]=l;a=p-s|0;e=a>>2;ne:{oe:{if((a|0)>=513){a=e;while(1){f=oa(a<<2);if(f){break oe}f=a>>>0>1;a=a>>>1|0;if(f){continue}break}}Vb(s,p,t+24|0,e,0,0);break ne}Vb(s,p,t+24|0,e,f,a);na(f)}if((k|0)<1048576){a=J[l>>2]+(J[p-4>>2]<<3)|0;J[a>>2]=(J[a>>2]-k|0)- -1048576;a=0;break je}if((d|0)>0){h=J[l>>2];r=k+-1048576|0;while(1){o=1048576/+(k|0);e=d;while(1){pe:{qe:{f=h+(J[(e<<2)+s>>2]<<3)|0;a=J[f>>2];if(a>>>0>=2){q=f;m=a;w=V(o*+(a>>>0));re:{if(R(w)<2147483648){i=~~w;break re}i=-2147483648}f=(a|0)==(i|0)?1:a-i|0;a=(a|0)>(f|0)?f:a-1|0;a=(a|0)<(r|0)?a:r;J[q>>2]=m-a;r=r-a|0;k=k-a|0;if((k|0)!=1048576){break qe}k=1048576;break pe}if((d|0)!=(e|0)){break pe}a=1;break je}a=(e|0)>1;e=e-1|0;if(a){continue}}break}a=0;if((r|0)>0){continue}break}break je}a=0;if(k>>>0<1048577){break je}while(1)continue}if((d|0)<0){break he}break ie}e=J[t+8>>2];if(e){na(e)}if((d|0)<0|a){break he}}e=J[l>>2];k=0;r=0;a=0;if(d>>>0>=3){i=g&-4;s=0;while(1){f=r<<3;h=f+e|0;J[h+4>>2]=a;j=e+(f|8)|0;a=J[h>>2]+a|0;J[j+4>>2]=a;h=e+(f|16)|0;a=a+J[j>>2]|0;J[h+4>>2]=a;f=e+(f|24)|0;a=a+J[h>>2]|0;J[f+4>>2]=a;a=a+J[f>>2]|0;r=r+4|0;s=s+4|0;if((i|0)!=(s|0)){continue}break}}f=g&3;if(f){while(1){i=e+(r<<3)|0;J[i+4>>2]=a;r=r+1|0;a=J[i>>2]+a|0;k=k+1|0;if((f|0)!=(k|0)){continue}break}}if((a|0)!=1048576){break he}a=0;o=0;se:{if((d|0)<0){break se}f=J[l>>2];if(d){d=g&-2;e=0;while(1){i=a<<3;h=J[i+f>>2];if(h){i=i+n|0;o=(+M[i>>2]+ +M[i+4>>2]*4294967296)*va(+(h>>>0)*9.5367431640625e-7)+o}i=(a|1)<<3;h=J[i+f>>2];if(h){i=i+n|0;o=(+M[i>>2]+ +M[i+4>>2]*4294967296)*va(+(h>>>0)*9.5367431640625e-7)+o}a=a+2|0;e=e+2|0;if((d|0)!=(e|0)){continue}break}}if(!(g&1)){break se}a=a<<3;d=J[a+f>>2];if(!d){break se}a=a+n|0;o=(+M[a>>2]+ +M[a+4>>2]*4294967296)*va(+(d>>>0)*9.5367431640625e-7)+o}o=W(-o);te:{if(o<0x10000000000000000&o>=0){d=R(o)>=1?~~(o>0?T(V(o*2.3283064365386963e-10),4294967295):W((o-+(~~o>>>0>>>0))*2.3283064365386963e-10))>>>0:0;a=~~o>>>0;break te}d=0;a=0}J[l+16>>2]=a;J[l+20>>2]=d;Va(l,c)}ba=t+32|0;d=J[l+16>>2];e=J[l+20>>2];a=J[c+4>>2]-J[c>>2]|0;J[l+40>>2]=a;J[l+44>>2]=0;g=e<<1|d>>>31;d=(d<<1)+39|0;j=d>>>0<39?g+1|0:g;d=a+((j&7)<<29|d>>>3)|0;m=j>>>3|0;h=a>>>0>d>>>0?m+1|0:m;a=d+8|0;Ia(c,a);a=J[c>>2];J[l+28>>2]=0;J[l+32>>2]=4194304;J[l+24>>2]=a+J[l+40>>2];if((b|0)>0){a=4194304;while(1){d=b-1|0;f=J[l>>2]+(J[u+(d<<2)>>2]<<3)|0;e=J[f>>2];i=e<<10;if(i>>>0<=a>>>0){while(1){g=J[l+28>>2];J[l+28>>2]=g+1;H[g+J[l+24>>2]|0]=a;a=J[l+32>>2]>>>8|0;J[l+32>>2]=a;if(a>>>0>=i>>>0){continue}break}}g=J[f+4>>2];f=(a>>>0)/(e>>>0)|0;a=g+((f<<20)+(a-P(e,f)|0)|0)|0;J[l+32>>2]=a;e=(b|0)>1;b=d;if(e){continue}break}}rc(l,c);a=J[l>>2];if(a){J[l+4>>2]=a;na(a)}a=J[l+48>>2];if(a){na(a)}ba=l- -64|0;break ce}h=1;break v;case 15:u=a;k=0;n=0;r=0;s=0;f=0;i=0;l=ba+-64|0;ba=l;J[l+56>>2]=0;J[l+48>>2]=0;J[l+52>>2]=0;ue:{a=p+1|0;if(a){if(a>>>0>=536870912){break a}a=a<<3;n=oa(a);J[l+48>>2]=n;k=pa(n,0,(p<<3)+8|0)+a|0}ve:{if((b|0)<=0){break ve}a=0;if(b>>>0>=4){m=b&-4;while(1){c=a<<2;d=(J[c+u>>2]<<3)+n|0;h=J[d>>2];g=J[d+4>>2];h=h+1|0;g=h?g:g+1|0;J[d>>2]=h;J[d+4>>2]=g;d=(J[u+(c|4)>>2]<<3)+n|0;g=J[d>>2];j=J[d+4>>2];g=g+1|0;j=g?j:j+1|0;J[d>>2]=g;J[d+4>>2]=j;d=(J[u+(c|8)>>2]<<3)+n|0;g=J[d>>2];h=J[d+4>>2];g=g+1|0;h=g?h:h+1|0;J[d>>2]=g;J[d+4>>2]=h;c=(J[u+(c|12)>>2]<<3)+n|0;d=J[c>>2];g=J[c+4>>2];d=d+1|0;g=d?g:g+1|0;J[c>>2]=d;J[c+4>>2]=g;a=a+4|0;r=r+4|0;if((m|0)!=(r|0)){continue}break}}d=b&3;if(!d){break ve}while(1){c=(J[u+(a<<2)>>2]<<3)+n|0;g=J[c>>2];j=J[c+4>>2];g=g+1|0;j=g?j:j+1|0;J[c>>2]=g;J[c+4>>2]=j;a=a+1|0;s=s+1|0;if((d|0)!=(s|0)){continue}break}}J[l+8>>2]=0;J[l+12>>2]=0;J[l+16>>2]=0;J[l+20>>2]=0;J[l+24>>2]=0;J[l+28>>2]=0;J[l+32>>2]=0;J[l>>2]=0;J[l+4>>2]=0;J[l+40>>2]=0;J[l+44>>2]=0;c=e;e=0;r=0;d=0;s=0;t=ba-32|0;ba=t;a=k-n>>3;we:{if((a|0)<=0){break we}A=a&3;xe:{if(a>>>0<4){a=0;break xe}E=a&-4;a=0;while(1){g=(a<<3)+n|0;x=J[g>>2];m=J[g+4>>2];D=m;q=a|1;k=(q<<3)+n|0;g=J[k>>2];v=a|2;p=(v<<3)+n|0;h=J[p>>2];y=a|3;z=(y<<3)+n|0;j=J[z>>2];d=m|x?a:d;m=J[k+4>>2];d=m|g?q:d;q=J[p+4>>2];k=J[z+4>>2];d=k|j?y:q|h?v:d;v=h;p=g;h=i+D|0;f=f+x|0;g=(f>>>0>>0?h+1|0:h)+m|0;m=f;f=f+p|0;m=(m>>>0>f>>>0?g+1|0:g)+q|0;g=f;f=f+v|0;g=(g>>>0>f>>>0?m+1|0:m)+k|0;m=f;f=f+j|0;i=m>>>0>f>>>0?g+1|0:g;a=a+4|0;e=e+4|0;if((E|0)!=(e|0)){continue}break}}if(!A){break we}while(1){g=(a<<3)+n|0;e=J[g>>2];g=J[g+4>>2];d=e|g?a:d;a=a+1|0;j=g+i|0;f=e+f|0;i=f>>>0>>0?j+1|0:j;r=r+1|0;if((A|0)!=(r|0)){continue}break}}g=d+1|0;J[l+12>>2]=g;e=J[l>>2];a=J[l+4>>2]-e>>3;ye:{if(a>>>0>>0){Wa(l,g-a|0);break ye}if(a>>>0<=g>>>0){break ye}J[l+4>>2]=e+(g<<3)}k=0;ze:{Ae:{Be:{Ce:{if((d|0)>=0){w=+(f>>>0)+ +(i>>>0)*4294967296;f=J[l>>2];a=0;while(1){i=a<<3;h=i+n|0;e=J[h>>2];h=J[h+4>>2];j=(e|h)!=0;m=f+i|0;o=(+(e>>>0)+ +(h>>>0)*4294967296)/w*1048576+.5;De:{if(o<4294967296&o>=0){e=~~o>>>0;break De}e=0}e=e?e:j?1:e;J[m>>2]=e;k=e+k|0;e=(a|0)==(d|0);a=a+1|0;if(!e){continue}break}if((k|0)==1048576){break Ce}}J[t+16>>2]=0;J[t+8>>2]=0;J[t+12>>2]=0;p=0;Ee:{if(!g){break Ee}if(g>>>0>=1073741824){break a}i=g<<2;s=oa(i);J[t+8>>2]=s;e=0;f=pa(s,0,i);a=0;if(d>>>0>=7){h=g&-8;while(1){J[f+(a<<2)>>2]=a;j=a|1;J[f+(j<<2)>>2]=j;j=a|2;J[f+(j<<2)>>2]=j;j=a|3;J[f+(j<<2)>>2]=j;j=a|4;J[f+(j<<2)>>2]=j;j=a|5;J[f+(j<<2)>>2]=j;j=a|6;J[f+(j<<2)>>2]=j;j=a|7;J[f+(j<<2)>>2]=j;a=a+8|0;p=p+8|0;if((h|0)!=(p|0)){continue}break}}p=f+i|0;i=g&7;if(!i){break Ee}while(1){J[f+(a<<2)>>2]=a;a=a+1|0;e=e+1|0;if((i|0)!=(e|0)){continue}break}}J[t+24>>2]=l;a=p-s|0;e=a>>2;Fe:{Ge:{if((a|0)>=513){a=e;while(1){f=oa(a<<2);if(f){break Ge}f=a>>>0>1;a=a>>>1|0;if(f){continue}break}}Ub(s,p,t+24|0,e,0,0);break Fe}Ub(s,p,t+24|0,e,f,a);na(f)}if((k|0)<1048576){a=J[l>>2]+(J[p-4>>2]<<3)|0;J[a>>2]=(J[a>>2]-k|0)- -1048576;a=0;break Be}if((d|0)>0){h=J[l>>2];r=k+-1048576|0;while(1){o=1048576/+(k|0);e=d;while(1){He:{Ie:{f=h+(J[(e<<2)+s>>2]<<3)|0;a=J[f>>2];if(a>>>0>=2){q=f;m=a;w=V(o*+(a>>>0));Je:{if(R(w)<2147483648){i=~~w;break Je}i=-2147483648}f=(a|0)==(i|0)?1:a-i|0;a=(a|0)>(f|0)?f:a-1|0;a=(a|0)<(r|0)?a:r;J[q>>2]=m-a;r=r-a|0;k=k-a|0;if((k|0)!=1048576){break Ie}k=1048576;break He}if((d|0)!=(e|0)){break He}a=1;break Be}a=(e|0)>1;e=e-1|0;if(a){continue}}break}a=0;if((r|0)>0){continue}break}break Be}a=0;if(k>>>0<1048577){break Be}while(1)continue}if((d|0)<0){break ze}break Ae}e=J[t+8>>2];if(e){na(e)}if((d|0)<0|a){break ze}}e=J[l>>2];k=0;r=0;a=0;if(d>>>0>=3){i=g&-4;s=0;while(1){f=r<<3;h=f+e|0;J[h+4>>2]=a;j=e+(f|8)|0;a=J[h>>2]+a|0;J[j+4>>2]=a;h=e+(f|16)|0;a=a+J[j>>2]|0;J[h+4>>2]=a;f=e+(f|24)|0;a=a+J[h>>2]|0;J[f+4>>2]=a;a=a+J[f>>2]|0;r=r+4|0;s=s+4|0;if((i|0)!=(s|0)){continue}break}}f=g&3;if(f){while(1){i=e+(r<<3)|0;J[i+4>>2]=a;r=r+1|0;a=J[i>>2]+a|0;k=k+1|0;if((f|0)!=(k|0)){continue}break}}if((a|0)!=1048576){break ze}a=0;o=0;Ke:{if((d|0)<0){break Ke}f=J[l>>2];if(d){d=g&-2;e=0;while(1){i=a<<3;h=J[i+f>>2];if(h){i=i+n|0;o=(+M[i>>2]+ +M[i+4>>2]*4294967296)*va(+(h>>>0)*9.5367431640625e-7)+o}i=(a|1)<<3;h=J[i+f>>2];if(h){i=i+n|0;o=(+M[i>>2]+ +M[i+4>>2]*4294967296)*va(+(h>>>0)*9.5367431640625e-7)+o}a=a+2|0;e=e+2|0;if((d|0)!=(e|0)){continue}break}}if(!(g&1)){break Ke}a=a<<3;d=J[a+f>>2];if(!d){break Ke}a=a+n|0;o=(+M[a>>2]+ +M[a+4>>2]*4294967296)*va(+(d>>>0)*9.5367431640625e-7)+o}o=W(-o);Le:{if(o<0x10000000000000000&o>=0){d=R(o)>=1?~~(o>0?T(V(o*2.3283064365386963e-10),4294967295):W((o-+(~~o>>>0>>>0))*2.3283064365386963e-10))>>>0:0;a=~~o>>>0;break Le}d=0;a=0}J[l+16>>2]=a;J[l+20>>2]=d;Va(l,c)}ba=t+32|0;d=J[l+16>>2];e=J[l+20>>2];a=J[c+4>>2]-J[c>>2]|0;J[l+40>>2]=a;J[l+44>>2]=0;m=e<<1|d>>>31;d=(d<<1)+39|0;h=m;h=d>>>0<39?h+1|0:h;g=h>>>3|0;d=a+((h&7)<<29|d>>>3)|0;q=d>>>0>>0?g+1|0:g;a=d+8|0;Ia(c,a);a=J[c>>2];J[l+28>>2]=0;J[l+32>>2]=4194304;J[l+24>>2]=a+J[l+40>>2];if((b|0)>0){a=4194304;while(1){d=b-1|0;f=J[l>>2]+(J[u+(d<<2)>>2]<<3)|0;e=J[f>>2];i=e<<10;if(i>>>0<=a>>>0){while(1){g=J[l+28>>2];J[l+28>>2]=g+1;H[g+J[l+24>>2]|0]=a;a=J[l+32>>2]>>>8|0;J[l+32>>2]=a;if(a>>>0>=i>>>0){continue}break}}g=J[f+4>>2];f=(a>>>0)/(e>>>0)|0;a=g+((f<<20)+(a-P(e,f)|0)|0)|0;J[l+32>>2]=a;e=(b|0)>1;b=d;if(e){continue}break}}rc(l,c);a=J[l>>2];if(a){J[l+4>>2]=a;na(a)}a=J[l+48>>2];if(a){na(a)}ba=l- -64|0;break ue}h=1;break v;case 16:u=a;k=0;n=0;r=0;s=0;f=0;i=0;l=ba+-64|0;ba=l;J[l+56>>2]=0;J[l+48>>2]=0;J[l+52>>2]=0;Me:{a=p+1|0;if(a){if(a>>>0>=536870912){break a}a=a<<3;n=oa(a);J[l+48>>2]=n;k=pa(n,0,(p<<3)+8|0)+a|0}Ne:{if((b|0)<=0){break Ne}a=0;if(b>>>0>=4){g=b&-4;while(1){c=a<<2;d=(J[c+u>>2]<<3)+n|0;h=J[d>>2];m=J[d+4>>2];h=h+1|0;m=h?m:m+1|0;J[d>>2]=h;J[d+4>>2]=m;d=(J[u+(c|4)>>2]<<3)+n|0;j=J[d>>2];h=J[d+4>>2];j=j+1|0;h=j?h:h+1|0;J[d>>2]=j;J[d+4>>2]=h;d=(J[u+(c|8)>>2]<<3)+n|0;h=J[d>>2];q=J[d+4>>2];h=h+1|0;q=h?q:q+1|0;J[d>>2]=h;J[d+4>>2]=q;c=(J[u+(c|12)>>2]<<3)+n|0;d=J[c>>2];m=J[c+4>>2];d=d+1|0;m=d?m:m+1|0;J[c>>2]=d;J[c+4>>2]=m;a=a+4|0;r=r+4|0;if((g|0)!=(r|0)){continue}break}}d=b&3;if(!d){break Ne}while(1){c=(J[u+(a<<2)>>2]<<3)+n|0;g=J[c>>2];h=J[c+4>>2];g=g+1|0;h=g?h:h+1|0;J[c>>2]=g;J[c+4>>2]=h;a=a+1|0;s=s+1|0;if((d|0)!=(s|0)){continue}break}}J[l+8>>2]=0;J[l+12>>2]=0;J[l+16>>2]=0;J[l+20>>2]=0;J[l+24>>2]=0;J[l+28>>2]=0;J[l+32>>2]=0;J[l>>2]=0;J[l+4>>2]=0;J[l+40>>2]=0;J[l+44>>2]=0;c=e;e=0;r=0;d=0;s=0;t=ba-32|0;ba=t;a=k-n>>3;Oe:{if((a|0)<=0){break Oe}x=a&3;Pe:{if(a>>>0<4){a=0;break Pe}A=a&-4;a=0;while(1){g=(a<<3)+n|0;p=J[g>>2];m=J[g+4>>2];E=m;q=a|1;k=(q<<3)+n|0;g=J[k>>2];v=a|2;D=(v<<3)+n|0;h=J[D>>2];y=a|3;z=(y<<3)+n|0;j=J[z>>2];d=p|m?a:d;m=J[k+4>>2];d=m|g?q:d;q=J[D+4>>2];k=J[z+4>>2];d=k|j?y:q|h?v:d;v=q;q=i+E|0;f=f+p|0;m=(f>>>0

>>0?q+1|0:q)+m|0;i=f;f=g+f|0;g=(i>>>0>f>>>0?m+1|0:m)+v|0;m=f;f=f+h|0;g=(m>>>0>f>>>0?g+1|0:g)+k|0;m=f;f=f+j|0;i=m>>>0>f>>>0?g+1|0:g;a=a+4|0;e=e+4|0;if((A|0)!=(e|0)){continue}break}}if(!x){break Oe}while(1){g=(a<<3)+n|0;e=J[g>>2];g=J[g+4>>2];d=e|g?a:d;a=a+1|0;h=g+i|0;f=e+f|0;i=f>>>0>>0?h+1|0:h;r=r+1|0;if((x|0)!=(r|0)){continue}break}}g=d+1|0;J[l+12>>2]=g;e=J[l>>2];a=J[l+4>>2]-e>>3;Qe:{if(a>>>0>>0){Wa(l,g-a|0);break Qe}if(a>>>0<=g>>>0){break Qe}J[l+4>>2]=e+(g<<3)}k=0;Re:{Se:{Te:{Ue:{if((d|0)>=0){w=+(f>>>0)+ +(i>>>0)*4294967296;f=J[l>>2];a=0;while(1){i=a<<3;h=i+n|0;e=J[h>>2];h=J[h+4>>2];j=(e|h)!=0;m=f+i|0;o=(+(e>>>0)+ +(h>>>0)*4294967296)/w*1048576+.5;Ve:{if(o<4294967296&o>=0){e=~~o>>>0;break Ve}e=0}e=e?e:j?1:e;J[m>>2]=e;k=e+k|0;e=(a|0)==(d|0);a=a+1|0;if(!e){continue}break}if((k|0)==1048576){break Ue}}J[t+16>>2]=0;J[t+8>>2]=0;J[t+12>>2]=0;p=0;We:{if(!g){break We}if(g>>>0>=1073741824){break a}i=g<<2;s=oa(i);J[t+8>>2]=s;e=0;f=pa(s,0,i);a=0;if(d>>>0>=7){h=g&-8;while(1){J[f+(a<<2)>>2]=a;j=a|1;J[f+(j<<2)>>2]=j;j=a|2;J[f+(j<<2)>>2]=j;j=a|3;J[f+(j<<2)>>2]=j;j=a|4;J[f+(j<<2)>>2]=j;j=a|5;J[f+(j<<2)>>2]=j;j=a|6;J[f+(j<<2)>>2]=j;j=a|7;J[f+(j<<2)>>2]=j;a=a+8|0;p=p+8|0;if((h|0)!=(p|0)){continue}break}}p=f+i|0;i=g&7;if(!i){break We}while(1){J[f+(a<<2)>>2]=a;a=a+1|0;e=e+1|0;if((i|0)!=(e|0)){continue}break}}J[t+24>>2]=l;a=p-s|0;e=a>>2;Xe:{Ye:{if((a|0)>=513){a=e;while(1){f=oa(a<<2);if(f){break Ye}f=a>>>0>1;a=a>>>1|0;if(f){continue}break}}Tb(s,p,t+24|0,e,0,0);break Xe}Tb(s,p,t+24|0,e,f,a);na(f)}if((k|0)<1048576){a=J[l>>2]+(J[p-4>>2]<<3)|0;J[a>>2]=(J[a>>2]-k|0)- -1048576;a=0;break Te}if((d|0)>0){h=J[l>>2];r=k+-1048576|0;while(1){o=1048576/+(k|0);e=d;while(1){Ze:{_e:{f=h+(J[(e<<2)+s>>2]<<3)|0;a=J[f>>2];if(a>>>0>=2){q=f;m=a;w=V(o*+(a>>>0));$e:{if(R(w)<2147483648){i=~~w;break $e}i=-2147483648}f=(a|0)==(i|0)?1:a-i|0;a=(a|0)>(f|0)?f:a-1|0;a=(a|0)<(r|0)?a:r;J[q>>2]=m-a;r=r-a|0;k=k-a|0;if((k|0)!=1048576){break _e}k=1048576;break Ze}if((d|0)!=(e|0)){break Ze}a=1;break Te}a=(e|0)>1;e=e-1|0;if(a){continue}}break}a=0;if((r|0)>0){continue}break}break Te}a=0;if(k>>>0<1048577){break Te}while(1)continue}if((d|0)<0){break Re}break Se}e=J[t+8>>2];if(e){na(e)}if((d|0)<0|a){break Re}}e=J[l>>2];k=0;r=0;a=0;if(d>>>0>=3){i=g&-4;s=0;while(1){f=r<<3;h=f+e|0;J[h+4>>2]=a;j=e+(f|8)|0;a=J[h>>2]+a|0;J[j+4>>2]=a;h=e+(f|16)|0;a=a+J[j>>2]|0;J[h+4>>2]=a;f=e+(f|24)|0;a=a+J[h>>2]|0;J[f+4>>2]=a;a=a+J[f>>2]|0;r=r+4|0;s=s+4|0;if((i|0)!=(s|0)){continue}break}}f=g&3;if(f){while(1){i=e+(r<<3)|0;J[i+4>>2]=a;r=r+1|0;a=J[i>>2]+a|0;k=k+1|0;if((f|0)!=(k|0)){continue}break}}if((a|0)!=1048576){break Re}a=0;o=0;af:{if((d|0)<0){break af}f=J[l>>2];if(d){d=g&-2;e=0;while(1){i=a<<3;h=J[i+f>>2];if(h){i=i+n|0;o=(+M[i>>2]+ +M[i+4>>2]*4294967296)*va(+(h>>>0)*9.5367431640625e-7)+o}i=(a|1)<<3;h=J[i+f>>2];if(h){i=i+n|0;o=(+M[i>>2]+ +M[i+4>>2]*4294967296)*va(+(h>>>0)*9.5367431640625e-7)+o}a=a+2|0;e=e+2|0;if((d|0)!=(e|0)){continue}break}}if(!(g&1)){break af}a=a<<3;d=J[a+f>>2];if(!d){break af}a=a+n|0;o=(+M[a>>2]+ +M[a+4>>2]*4294967296)*va(+(d>>>0)*9.5367431640625e-7)+o}o=W(-o);bf:{if(o<0x10000000000000000&o>=0){d=R(o)>=1?~~(o>0?T(V(o*2.3283064365386963e-10),4294967295):W((o-+(~~o>>>0>>>0))*2.3283064365386963e-10))>>>0:0;a=~~o>>>0;break bf}d=0;a=0}J[l+16>>2]=a;J[l+20>>2]=d;Va(l,c)}ba=t+32|0;d=J[l+16>>2];e=J[l+20>>2];a=J[c+4>>2]-J[c>>2]|0;J[l+40>>2]=a;J[l+44>>2]=0;g=e<<1|d>>>31;d=(d<<1)+39|0;q=d>>>0<39?g+1|0:g;d=a+((q&7)<<29|d>>>3)|0;g=q>>>3|0;j=a>>>0>d>>>0?g+1|0:g;a=d+8|0;Ia(c,a);a=J[c>>2];J[l+28>>2]=0;J[l+32>>2]=4194304;J[l+24>>2]=a+J[l+40>>2];if((b|0)>0){a=4194304;while(1){d=b-1|0;f=J[l>>2]+(J[u+(d<<2)>>2]<<3)|0;e=J[f>>2];i=e<<10;if(i>>>0<=a>>>0){while(1){g=J[l+28>>2];J[l+28>>2]=g+1;H[g+J[l+24>>2]|0]=a;a=J[l+32>>2]>>>8|0;J[l+32>>2]=a;if(a>>>0>=i>>>0){continue}break}}g=J[f+4>>2];f=(a>>>0)/(e>>>0)|0;a=g+((f<<20)+(a-P(e,f)|0)|0)|0;J[l+32>>2]=a;e=(b|0)>1;b=d;if(e){continue}break}}rc(l,c);a=J[l>>2];if(a){J[l+4>>2]=a;na(a)}a=J[l+48>>2];if(a){na(a)}ba=l- -64|0;break Me}h=1;break v;case 17:break E;default:break v}}u=a;k=0;n=0;r=0;s=0;f=0;i=0;l=ba+-64|0;ba=l;J[l+56>>2]=0;J[l+48>>2]=0;J[l+52>>2]=0;cf:{a=p+1|0;if(a){if(a>>>0>=536870912){break a}a=a<<3;n=oa(a);J[l+48>>2]=n;k=pa(n,0,(p<<3)+8|0)+a|0}df:{if((b|0)<=0){break df}a=0;if(b>>>0>=4){h=b&-4;while(1){c=a<<2;d=(J[c+u>>2]<<3)+n|0;j=J[d>>2];g=J[d+4>>2];j=j+1|0;g=j?g:g+1|0;J[d>>2]=j;J[d+4>>2]=g;d=(J[u+(c|4)>>2]<<3)+n|0;g=J[d>>2];q=J[d+4>>2];g=g+1|0;q=g?q:q+1|0;J[d>>2]=g;J[d+4>>2]=q;d=(J[u+(c|8)>>2]<<3)+n|0;g=J[d>>2];j=J[d+4>>2];g=g+1|0;j=g?j:j+1|0;J[d>>2]=g;J[d+4>>2]=j;c=(J[u+(c|12)>>2]<<3)+n|0;d=J[c>>2];g=J[c+4>>2];d=d+1|0;g=d?g:g+1|0;J[c>>2]=d;J[c+4>>2]=g;a=a+4|0;r=r+4|0;if((h|0)!=(r|0)){continue}break}}d=b&3;if(!d){break df}while(1){c=(J[u+(a<<2)>>2]<<3)+n|0;g=J[c>>2];q=J[c+4>>2];g=g+1|0;q=g?q:q+1|0;J[c>>2]=g;J[c+4>>2]=q;a=a+1|0;s=s+1|0;if((d|0)!=(s|0)){continue}break}}J[l+8>>2]=0;J[l+12>>2]=0;J[l+16>>2]=0;J[l+20>>2]=0;J[l+24>>2]=0;J[l+28>>2]=0;J[l+32>>2]=0;J[l>>2]=0;J[l+4>>2]=0;J[l+40>>2]=0;J[l+44>>2]=0;c=e;e=0;r=0;d=0;s=0;t=ba-32|0;ba=t;a=k-n>>3;ef:{if((a|0)<=0){break ef}A=a&3;ff:{if(a>>>0<4){a=0;break ff}E=a&-4;a=0;while(1){g=(a<<3)+n|0;x=J[g>>2];m=J[g+4>>2];D=m;q=a|1;k=(q<<3)+n|0;g=J[k>>2];v=a|2;p=(v<<3)+n|0;h=J[p>>2];y=a|3;z=(y<<3)+n|0;j=J[z>>2];d=m|x?a:d;m=J[k+4>>2];d=m|g?q:d;q=J[p+4>>2];k=J[z+4>>2];d=k|j?y:q|h?v:d;v=j;p=g;j=i+D|0;f=f+x|0;g=(f>>>0>>0?j+1|0:j)+m|0;m=f;f=f+p|0;g=(m>>>0>f>>>0?g+1|0:g)+q|0;m=f;f=f+h|0;m=(m>>>0>f>>>0?g+1|0:g)+k|0;g=f;f=f+v|0;i=g>>>0>f>>>0?m+1|0:m;a=a+4|0;e=e+4|0;if((E|0)!=(e|0)){continue}break}}if(!A){break ef}while(1){g=(a<<3)+n|0;e=J[g>>2];g=J[g+4>>2];d=e|g?a:d;a=a+1|0;q=g+i|0;f=e+f|0;i=f>>>0>>0?q+1|0:q;r=r+1|0;if((A|0)!=(r|0)){continue}break}}g=d+1|0;J[l+12>>2]=g;e=J[l>>2];a=J[l+4>>2]-e>>3;gf:{if(a>>>0>>0){Wa(l,g-a|0);break gf}if(a>>>0<=g>>>0){break gf}J[l+4>>2]=e+(g<<3)}k=0;hf:{jf:{kf:{lf:{if((d|0)>=0){w=+(f>>>0)+ +(i>>>0)*4294967296;f=J[l>>2];a=0;while(1){i=a<<3;h=i+n|0;e=J[h>>2];h=J[h+4>>2];j=(e|h)!=0;m=f+i|0;o=(+(e>>>0)+ +(h>>>0)*4294967296)/w*1048576+.5;mf:{if(o<4294967296&o>=0){e=~~o>>>0;break mf}e=0}e=e?e:j?1:e;J[m>>2]=e;k=e+k|0;e=(a|0)==(d|0);a=a+1|0;if(!e){continue}break}if((k|0)==1048576){break lf}}J[t+16>>2]=0;J[t+8>>2]=0;J[t+12>>2]=0;p=0;nf:{if(!g){break nf}if(g>>>0>=1073741824){break a}i=g<<2;s=oa(i);J[t+8>>2]=s;e=0;f=pa(s,0,i);a=0;if(d>>>0>=7){h=g&-8;while(1){J[f+(a<<2)>>2]=a;j=a|1;J[f+(j<<2)>>2]=j;j=a|2;J[f+(j<<2)>>2]=j;j=a|3;J[f+(j<<2)>>2]=j;j=a|4;J[f+(j<<2)>>2]=j;j=a|5;J[f+(j<<2)>>2]=j;j=a|6;J[f+(j<<2)>>2]=j;j=a|7;J[f+(j<<2)>>2]=j;a=a+8|0;p=p+8|0;if((h|0)!=(p|0)){continue}break}}p=f+i|0;i=g&7;if(!i){break nf}while(1){J[f+(a<<2)>>2]=a;a=a+1|0;e=e+1|0;if((i|0)!=(e|0)){continue}break}}J[t+24>>2]=l;a=p-s|0;e=a>>2;of:{pf:{if((a|0)>=513){a=e;while(1){f=oa(a<<2);if(f){break pf}f=a>>>0>1;a=a>>>1|0;if(f){continue}break}}Sb(s,p,t+24|0,e,0,0);break of}Sb(s,p,t+24|0,e,f,a);na(f)}if((k|0)<1048576){a=J[l>>2]+(J[p-4>>2]<<3)|0;J[a>>2]=(J[a>>2]-k|0)- -1048576;a=0;break kf}if((d|0)>0){h=J[l>>2];r=k+-1048576|0;while(1){o=1048576/+(k|0);e=d;while(1){qf:{rf:{f=h+(J[(e<<2)+s>>2]<<3)|0;a=J[f>>2];if(a>>>0>=2){q=f;m=a;w=V(o*+(a>>>0));sf:{if(R(w)<2147483648){i=~~w;break sf}i=-2147483648}f=(a|0)==(i|0)?1:a-i|0;a=(a|0)>(f|0)?f:a-1|0;a=(a|0)<(r|0)?a:r;J[q>>2]=m-a;r=r-a|0;k=k-a|0;if((k|0)!=1048576){break rf}k=1048576;break qf}if((d|0)!=(e|0)){break qf}a=1;break kf}a=(e|0)>1;e=e-1|0;if(a){continue}}break}a=0;if((r|0)>0){continue}break}break kf}a=0;if(k>>>0<1048577){break kf}while(1)continue}if((d|0)<0){break hf}break jf}e=J[t+8>>2];if(e){na(e)}if((d|0)<0|a){break hf}}e=J[l>>2];k=0;r=0;a=0;if(d>>>0>=3){i=g&-4;s=0;while(1){f=r<<3;h=f+e|0;J[h+4>>2]=a;j=e+(f|8)|0;a=J[h>>2]+a|0;J[j+4>>2]=a;h=e+(f|16)|0;a=a+J[j>>2]|0;J[h+4>>2]=a;f=e+(f|24)|0;a=a+J[h>>2]|0;J[f+4>>2]=a;a=a+J[f>>2]|0;r=r+4|0;s=s+4|0;if((i|0)!=(s|0)){continue}break}}f=g&3;if(f){while(1){i=e+(r<<3)|0;J[i+4>>2]=a;r=r+1|0;a=J[i>>2]+a|0;k=k+1|0;if((f|0)!=(k|0)){continue}break}}if((a|0)!=1048576){break hf}a=0;o=0;tf:{if((d|0)<0){break tf}f=J[l>>2];if(d){d=g&-2;e=0;while(1){i=a<<3;h=J[i+f>>2];if(h){i=i+n|0;o=(+M[i>>2]+ +M[i+4>>2]*4294967296)*va(+(h>>>0)*9.5367431640625e-7)+o}i=(a|1)<<3;h=J[i+f>>2];if(h){i=i+n|0;o=(+M[i>>2]+ +M[i+4>>2]*4294967296)*va(+(h>>>0)*9.5367431640625e-7)+o}a=a+2|0;e=e+2|0;if((d|0)!=(e|0)){continue}break}}if(!(g&1)){break tf}a=a<<3;d=J[a+f>>2];if(!d){break tf}a=a+n|0;o=(+M[a>>2]+ +M[a+4>>2]*4294967296)*va(+(d>>>0)*9.5367431640625e-7)+o}o=W(-o);uf:{if(o<0x10000000000000000&o>=0){d=R(o)>=1?~~(o>0?T(V(o*2.3283064365386963e-10),4294967295):W((o-+(~~o>>>0>>>0))*2.3283064365386963e-10))>>>0:0;a=~~o>>>0;break uf}d=0;a=0}J[l+16>>2]=a;J[l+20>>2]=d;Va(l,c)}ba=t+32|0;d=J[l+16>>2];e=J[l+20>>2];a=J[c+4>>2]-J[c>>2]|0;J[l+40>>2]=a;J[l+44>>2]=0;g=e<<1|d>>>31;d=(d<<1)+39|0;j=d>>>0<39?g+1|0:g;d=a+((j&7)<<29|d>>>3)|0;m=j>>>3|0;h=a>>>0>d>>>0?m+1|0:m;a=d+8|0;Ia(c,a);a=J[c>>2];J[l+28>>2]=0;J[l+32>>2]=4194304;J[l+24>>2]=a+J[l+40>>2];if((b|0)>0){a=4194304;while(1){d=b-1|0;f=J[l>>2]+(J[u+(d<<2)>>2]<<3)|0;e=J[f>>2];i=e<<10;if(i>>>0<=a>>>0){while(1){g=J[l+28>>2];J[l+28>>2]=g+1;H[g+J[l+24>>2]|0]=a;a=J[l+32>>2]>>>8|0;J[l+32>>2]=a;if(a>>>0>=i>>>0){continue}break}}g=J[f+4>>2];f=(a>>>0)/(e>>>0)|0;a=g+((f<<20)+(a-P(e,f)|0)|0)|0;J[l+32>>2]=a;e=(b|0)>1;b=d;if(e){continue}break}}rc(l,c);a=J[l>>2];if(a){J[l+4>>2]=a;na(a)}a=J[l+48>>2];if(a){na(a)}ba=l- -64|0;break cf}h=1}ba=G+32|0}if(!F){break b}J[C+36>>2]=F;na(F)}ba=C+48|0;return h}qa();B()}function Ih(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=Q(0),x=0,y=0,z=0,A=0,C=0,D=0,E=0,F=0,G=0,T=0,U=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0;d=ba-1680|0;ba=d;c=10-cb(J[J[a+28>>2]+48>>2])|0;c=(c|0)>=6?6:c;f=J[a+72>>2];H[d+1679|0]=(c&255)==6?(f|0)>15?5:c:c;c=J[b+20>>2];if(!J[b+16>>2]&(c|0)<=0|(c|0)<0){sa(b,J[b+4>>2],d+1679|0,d+1680|0);f=J[a+72>>2]}y=J[J[J[a+28>>2]+4>>2]+80>>2];J[d+1668>>2]=0;J[d+1660>>2]=0;J[d+1664>>2]=0;J[d+1648>>2]=y;J[d+1652>>2]=f;J[d+1656>>2]=f<<2;a:{b:{c:{d:{g=P(f,y);if(g){if(g>>>0>=1073741824){break d}c=g<<2;h=oa(c);J[d+1660>>2]=h;k=c+h|0;J[d+1668>>2]=k;pa(h,0,c);J[d+1664>>2]=k}J[d+1672>>2]=h;k=J[a+4>>2];if((k|0)!=J[a+8>>2]){while(1){e=J[J[J[J[a+28>>2]+4>>2]+8>>2]+(J[(i<<2)+k>>2]<<2)>>2];c=J[e+28>>2];if(c-1>>>0>=6){if((c|0)!=9){break a}e=J[J[a+60>>2]+(p<<2)>>2];if(!e){break a}p=p+1|0;c=J[e+28>>2]}e:{f:{g:{switch(c-1|0){case 5:if(!y){break e}k=0;while(1){f=(J[d+1672>>2]+(o<<2)|0)+(P(J[d+1652>>2],k)<<2)|0;h=J[J[e>>2]>>2];g=J[e+48>>2];c=Hl(J[e+40>>2],J[e+44>>2],K[e+84|0]?k:J[J[e+68>>2]+(k<<2)>>2],0);j=c;c=c+g|0;ua(f,c+h|0,K[e+24|0]<<2);k=k+1|0;if((y|0)!=(k|0)){continue}break};break e;case 0:case 2:case 4:c=K[e+24|0];h:{if(!c){g=0;h=0;break h}h=0;c=c<<2;g=oa(c);pa(g,0,c);c=K[e+24|0];if(!c){break h}c=c<<2;h=oa(c);pa(h,0,c)}if(y){f=0;while(1){$c(e,K[e+84|0]?f:J[J[e+68>>2]+(f<<2)>>2],H[e+24|0],g);j=K[e+24|0];i:{if(!j){break i}l=J[a+48>>2];k=0;if((j|0)!=1){n=j&254;c=0;while(1){r=k<<2;J[r+h>>2]=J[g+r>>2]-J[l+(k+q<<2)>>2];r=k|1;v=r<<2;J[v+h>>2]=J[g+v>>2]-J[l+(q+r<<2)>>2];k=k+2|0;c=c+2|0;if((n|0)!=(c|0)){continue}break}}if(!(j&1)){break i}c=k<<2;J[c+h>>2]=J[c+g>>2]-J[l+(k+q<<2)>>2]}ua((J[d+1672>>2]+(o<<2)|0)+(P(J[d+1652>>2],f)<<2)|0,h,j<<2);f=f+1|0;if((y|0)!=(f|0)){continue}break}}c=K[e+24|0];if(h){na(h)}q=c+q|0;if(g){break f}break e;default:break g}}c=K[e+24|0];j:{if(!c){g=0;break j}c=c<<2;g=oa(c);pa(g,0,c)}if(y){k=0;while(1){c=K[e+84|0]?k:J[J[e+68>>2]+(k<<2)>>2];j=K[e+24|0];l=0;k:{if(!g){break k}l:{m:{switch(J[e+28>>2]-1|0){case 0:h=K[e+24|0];if(h>>>0>>0?h:j){h=J[e>>2];f=J[h>>2];n=J[e+48>>2];c=Hl(J[e+40>>2],J[e+44>>2],c,0);m=c;c=c+n|0;f=c+f|0;c=J[h+4>>2];while(1){if(c>>>0<=f>>>0){break k}J[(l<<2)+g>>2]=H[f|0];f=f+1|0;l=l+1|0;h=K[e+24|0];if(l>>>0<(h>>>0>>0?h:j)>>>0){continue}break}}break l;case 1:h=K[e+24|0];if(h>>>0>>0?h:j){h=J[e>>2];f=J[h>>2];n=J[e+48>>2];c=Hl(J[e+40>>2],J[e+44>>2],c,0);m=c;c=c+n|0;f=c+f|0;c=J[h+4>>2];while(1){if(c>>>0<=f>>>0){break k}J[(l<<2)+g>>2]=K[f|0];f=f+1|0;l=l+1|0;h=K[e+24|0];if(l>>>0<(h>>>0>>0?h:j)>>>0){continue}break}}break l;case 2:h=K[e+24|0];if(h>>>0>>0?h:j){h=J[e>>2];f=J[h>>2];n=J[e+48>>2];c=Hl(J[e+40>>2],J[e+44>>2],c,0);m=c;c=c+n|0;f=c+f|0;c=J[h+4>>2];while(1){if(c>>>0<=f>>>0){break k}J[(l<<2)+g>>2]=I[f>>1];f=f+2|0;l=l+1|0;h=K[e+24|0];if(l>>>0<(h>>>0>>0?h:j)>>>0){continue}break}}break l;case 3:h=K[e+24|0];if(h>>>0>>0?h:j){h=J[e>>2];f=J[h>>2];n=J[e+48>>2];c=Hl(J[e+40>>2],J[e+44>>2],c,0);m=c;c=c+n|0;f=c+f|0;c=J[h+4>>2];while(1){if(c>>>0<=f>>>0){break k}J[(l<<2)+g>>2]=L[f>>1];f=f+2|0;l=l+1|0;h=K[e+24|0];if(l>>>0<(h>>>0>>0?h:j)>>>0){continue}break}}break l;case 4:h=K[e+24|0];if(h>>>0>>0?h:j){h=J[e>>2];f=J[h>>2];n=J[e+48>>2];c=Hl(J[e+40>>2],J[e+44>>2],c,0);m=c;c=c+n|0;f=c+f|0;c=J[h+4>>2];while(1){if(c>>>0<=f>>>0){break k}J[(l<<2)+g>>2]=J[f>>2];f=f+4|0;l=l+1|0;h=K[e+24|0];if(l>>>0<(h>>>0>>0?h:j)>>>0){continue}break}}break l;case 5:h=K[e+24|0];if(h>>>0>>0?h:j){h=J[e>>2];f=J[h>>2];n=J[e+48>>2];c=Hl(J[e+40>>2],J[e+44>>2],c,0);m=c;c=c+n|0;f=c+f|0;c=J[h+4>>2];while(1){if(c>>>0<=f>>>0){break k}J[(l<<2)+g>>2]=J[f>>2];f=f+4|0;l=l+1|0;h=K[e+24|0];if(l>>>0<(h>>>0>>0?h:j)>>>0){continue}break}}break l;case 6:h=K[e+24|0];if(h>>>0>>0?h:j){h=J[e>>2];f=J[h>>2];n=J[e+48>>2];c=Hl(J[e+40>>2],J[e+44>>2],c,0);m=c;c=c+n|0;f=c+f|0;n=J[h+4>>2];while(1){if(f>>>0>=n>>>0){break k}c=J[f>>2];if(J[f+4>>2]){break k}J[(l<<2)+g>>2]=c;f=f+8|0;l=l+1|0;h=K[e+24|0];if(l>>>0<(h>>>0>>0?h:j)>>>0){continue}break}}break l;case 7:h=K[e+24|0];if(h>>>0>>0?h:j){h=J[e>>2];f=J[h>>2];n=J[e+48>>2];c=Hl(J[e+40>>2],J[e+44>>2],c,0);m=c;c=c+n|0;f=c+f|0;n=J[h+4>>2];while(1){if(f>>>0>=n>>>0){break k}c=J[f>>2];if(J[f+4>>2]){break k}J[(l<<2)+g>>2]=c;f=f+8|0;l=l+1|0;h=K[e+24|0];if(l>>>0<(h>>>0>>0?h:j)>>>0){continue}break}}break l;case 8:n:{o:{h=K[e+24|0];if(!(h>>>0>>0?h:j)){break o}f=J[e>>2];h=J[f>>2];l=J[e+48>>2];c=Hl(J[e+40>>2],J[e+44>>2],c,0);m=c;c=c+l|0;l=c+h|0;n=J[f+4>>2];f=n-h|0;if(!K[e+32|0]){if((c|0)>=(f|0)){break n}f=0;while(1){w=N[l>>2];if(w>=Q(4294967296)|w=Q(0)){c=~~w>>>0}else{c=0}J[m>>2]=c;f=f+1|0;h=K[e+24|0];if(f>>>0>=(h>>>0>>0?h:j)>>>0){break o}l=l+4|0;if(n>>>0>l>>>0){continue}break}break n}if((c|0)>=(f|0)){break n}f=0;while(1){w=N[l>>2];if(w>=Q(4294967296)|wQ(1)){break n}m=(f<<2)+g|0;t=V(+w*4294967295+.5);p:{if(t<4294967296&t>=0){c=~~t>>>0;break p}c=0}J[m>>2]=c;f=f+1|0;h=K[e+24|0];if(f>>>0>=(h>>>0>>0?h:j)>>>0){break o}l=l+4|0;if(n>>>0>l>>>0){continue}break}break n}if(h>>>0>=j>>>0){break n}pa((h<<2)+g|0,0,j-h<<2)}break k;case 9:q:{r:{h=K[e+24|0];if(!(h>>>0>>0?h:j)){break r}f=J[e>>2];h=J[f>>2];l=J[e+48>>2];c=Hl(J[e+40>>2],J[e+44>>2],c,0);m=c;c=c+l|0;l=c+h|0;n=J[f+4>>2];f=n-h|0;if(!K[e+32|0]){if((c|0)>=(f|0)){break q}f=0;while(1){t=O[l>>3];if(t>=4294967295|t<0|(R(t)==Infinity|t!=t)){break q}m=(f<<2)+g|0;if(t<4294967296&t>=0){c=~~t>>>0}else{c=0}J[m>>2]=c;f=f+1|0;h=K[e+24|0];if(f>>>0>=(h>>>0>>0?h:j)>>>0){break r}l=l+8|0;if(n>>>0>l>>>0){continue}break}break q}if((c|0)>=(f|0)){break q}f=0;while(1){t=O[l>>3];if(t>=4294967295|t<0|(R(t)==Infinity|t!=t)){break q}if(t>1){break q}m=(f<<2)+g|0;t=V(t*4294967295+.5);s:{if(t<4294967296&t>=0){c=~~t>>>0;break s}c=0}J[m>>2]=c;f=f+1|0;h=K[e+24|0];if(f>>>0>=(h>>>0>>0?h:j)>>>0){break r}l=l+8|0;if(n>>>0>l>>>0){continue}break}break q}if(h>>>0>=j>>>0){break q}pa((h<<2)+g|0,0,j-h<<2)}break k;case 10:break m;default:break k}}h=K[e+24|0];if(h>>>0>>0?h:j){h=J[e>>2];f=J[h>>2];n=J[e+48>>2];c=Hl(J[e+40>>2],J[e+44>>2],c,0);m=c;c=c+n|0;f=c+f|0;c=J[h+4>>2];while(1){if(c>>>0<=f>>>0){break k}J[(l<<2)+g>>2]=K[f|0];f=f+1|0;l=l+1|0;h=K[e+24|0];if(l>>>0<(h>>>0>>0?h:j)>>>0){continue}break}}if(h>>>0>=j>>>0){break k}pa((h<<2)+g|0,0,j-h<<2);break k}if(h>>>0>=j>>>0){break k}pa((h<<2)+g|0,0,j-h<<2)}ua((J[d+1672>>2]+(o<<2)|0)+(P(J[d+1652>>2],k)<<2)|0,g,K[e+24|0]<<2);k=k+1|0;if((y|0)!=(k|0)){continue}break}}if(!g){break e}}na(g)}o=K[e+24|0]+o|0;i=i+1|0;k=J[a+4>>2];if(i>>>0>2]-k>>2>>>0){continue}break}f=J[a+72>>2];g=P(y,f);h=J[d+1672>>2]}k=0;if((g|0)<=0){break b}c=g&1;if((g|0)==1){g=0;break c}e=g&-2;g=0;a=0;while(1){j=g<<2;l=J[j+h>>2];if(l){l=S(l);k=(l^31)<(k|0)?k:32-l|0}j=J[(j|4)+h>>2];if(j){j=S(j);k=(j^31)<(k|0)?k:32-j|0}g=g+2|0;a=a+2|0;if((e|0)!=(a|0)){continue}break}break c}qa();B()}if(!c){break b}a=J[(g<<2)+h>>2];if(!a){break b}a=S(a);k=(a^31)<(k|0)?k:32-a|0}t:{u:{switch(K[d+1679|0]){case 6:p=Zc(d+456|0,f);a=J[d+1652>>2];J[d+448>>2]=a;J[d+432>>2]=a;J[d+32>>2]=a;J[d+16>>2]=a;J[d+440>>2]=0;J[d+424>>2]=J[d+1648>>2];a=d+1648|0;J[d+444>>2]=a;c=J[d+444>>2];J[d+24>>2]=J[d+440>>2];J[d+28>>2]=c;J[d+428>>2]=a;J[d+420>>2]=k;a=J[d+428>>2];J[d+8>>2]=J[d+424>>2];J[d+12>>2]=a;n=ba-32|0;ba=n;J[p>>2]=J[d+420>>2];a=J[d+8>>2]-J[d+24>>2]|0;J[p+4>>2]=a;c=J[b+20>>2];if(!J[b+16>>2]&(c|0)<=0|(c|0)<0){a=p+4|0;sa(b,J[b+4>>2],p,a);c=J[b+20>>2];if(!J[b+16>>2]&(c|0)<=0|(c|0)<0){sa(b,J[b+4>>2],a,p+8|0)}a=J[a>>2]}if(a){W=p+12|0;te(W);X=p+1068|0;a=X;J[a+12>>2]=0;J[a+16>>2]=0;J[a+4>>2]=J[a>>2];Y=p+1088|0;a=Y;J[a+12>>2]=0;J[a+16>>2]=0;J[a+4>>2]=J[a>>2];Z=p+1108|0;a=Z;J[a+12>>2]=0;J[a+16>>2]=0;J[a+4>>2]=J[a>>2];J[n+24>>2]=J[d+32>>2];a=J[d+28>>2];J[n+16>>2]=J[d+24>>2];J[n+20>>2]=a;J[n+8>>2]=J[d+16>>2];a=J[d+12>>2];J[n>>2]=J[d+8>>2];J[n+4>>2]=a;c=0;g=0;i=ba+-64|0;ba=i;e=J[p+8>>2];J[i+48>>2]=0;J[i+40>>2]=0;J[i+44>>2]=0;v:{w:{if(e){if(e>>>0>=1073741824){break w}a=e<<2;c=oa(a);J[i+40>>2]=c;g=a+c|0;J[i+48>>2]=g;pa(c,0,a);J[i+44>>2]=g}a=J[p+1164>>2];k=J[a>>2];if(k){J[a+4>>2]=k;na(k);e=J[p+8>>2];g=J[i+44>>2];c=J[i+40>>2]}J[a+4>>2]=g;J[a>>2]=c;J[a+8>>2]=J[i+48>>2];c=0;J[i+48>>2]=0;J[i+40>>2]=0;J[i+44>>2]=0;a=0;x:{if(e){if(e>>>0>=1073741824){break x}k=e<<2;a=oa(k);J[i+40>>2]=a;c=a+k|0;J[i+48>>2]=c;pa(a,0,k);J[i+44>>2]=c}k=J[p+1176>>2];f=J[k>>2];if(f){J[k+4>>2]=f;na(f);c=J[i+44>>2];a=J[i+40>>2]}J[k+4>>2]=c;J[k>>2]=a;J[k+8>>2]=J[i+48>>2];h=J[n+20>>2];l=J[n+24>>2];f=J[n+4>>2];y=J[n+8>>2];c=J[n>>2];k=J[n+16>>2];J[i+56>>2]=0;J[i+60>>2]=0;J[i+48>>2]=0;J[i+52>>2]=0;J[i+40>>2]=0;J[i+44>>2]=0;fb(i+40|0);a=J[i+56>>2]+J[i+60>>2]|0;e=(a>>>0)/113|0;a=J[J[i+44>>2]+(e<<2)>>2]+P(a-P(e,113)|0,36)|0;J[a+32>>2]=0;J[a+28>>2]=c-k;J[a+24>>2]=0;J[a+16>>2]=f;J[a+20>>2]=y;J[a+12>>2]=c;J[a+4>>2]=h;J[a+8>>2]=l;J[a>>2]=k;e=J[i+60>>2]+1|0;J[i+60>>2]=e;if(e){a=l;aa=a&-4;_=a&3;ca=p+1068|0;$=p+12|0;da=p+1108|0;ea=a>>>0<4;while(1){a=J[i+44>>2];g=J[i+56>>2];o=e-1|0;c=g+o|0;k=(c>>>0)/113|0;c=J[a+(k<<2)>>2]+P(c-P(k,113)|0,36)|0;T=J[c+32>>2];j=J[c+12>>2];k=J[c>>2];J[i+60>>2]=o;c=J[i+48>>2];if((((a|0)!=(c|0)?P(c-a>>2,113)-1|0:0)-(e+g|0)|0)+1>>>0>=226){na(J[c-4>>2]);J[i+48>>2]=J[i+48>>2]-4}J[n+16>>2]=k;J[n>>2]=j;a=J[p+1164>>2];c=J[p+1176>>2];J[i+32>>2]=J[n+24>>2];e=J[n+20>>2];J[i+24>>2]=J[n+16>>2];J[i+28>>2]=e;J[i+16>>2]=J[n+8>>2];e=J[n+4>>2];J[i+8>>2]=J[n>>2];J[i+12>>2]=e;U=P(T,12);v=a+U|0;q=v;D=c+U|0;a=D;e=0;g=J[p+8>>2];y:{z:{A:{B:{s=J[i+8>>2];o=J[i+24>>2];u=s-o|0;if(u>>>0>=64){if(!g){break z}E=J[p+1140>>2];F=J[a>>2];G=J[p+1128>>2];if((o|0)!=(s|0)){break B}g=0;while(1){a=g<<2;c=a+G|0;J[c>>2]=0;q=a+E|0;e=J[p>>2];a=J[a+F>>2];J[q>>2]=e-a;if((a|0)!=(e|0)){q=c;a=J[c>>2];c=u-a|0;J[q>>2]=a>>>0>>0?c:a}c=J[p+8>>2];g=g+1|0;if(c>>>0>g>>>0){continue}break}break A}if(g>>>0<2){break y}o=g-1|0;q=o&3;c=J[a>>2];a=0;C:{if(g-2>>>0<3){g=1;break C}r=o&-4;g=1;o=0;while(1){s=g+3|0;u=g+2|0;x=g+1|0;e=M[c+(e<<2)>>2]>M[c+(g<<2)>>2]?g:e;e=M[c+(e<<2)>>2]>M[c+(x<<2)>>2]?x:e;e=M[c+(e<<2)>>2]>M[c+(u<<2)>>2]?u:e;e=M[c+(e<<2)>>2]>M[c+(s<<2)>>2]?s:e;g=g+4|0;o=o+4|0;if((r|0)!=(o|0)){continue}break}}if(!q){break y}while(1){e=M[c+(e<<2)>>2]>M[c+(g<<2)>>2]?g:e;g=g+1|0;a=a+1|0;if((q|0)!=(a|0)){continue}break}break y}z=J[i+28>>2];C=J[q>>2];fa=u&1;q=o+1|0;ga=(q|0)!=(s|0);m=J[i+32>>2];ha=P(m,o)<<2;while(1){a=e<<2;r=a+G|0;J[r>>2]=0;c=J[p>>2];g=J[a+F>>2];x=c-g|0;J[a+E>>2]=x;if((c|0)!=(g|0)){x=J[a+C>>2]+(1<>2]|0;c=J[r>>2];if(fa){c=(x>>>0>M[A+ha>>2])+c|0;J[r>>2]=c;a=q}else{a=o}g=a;if(ga){while(1){a=(x>>>0>M[A+(P(g,m)<<2)>>2])+c|0;J[r>>2]=a;c=a+(x>>>0>M[A+(P(m,g+1|0)<<2)>>2])|0;J[r>>2]=c;g=g+2|0;if((s|0)!=(g|0)){continue}break}}a=u-c|0;J[r>>2]=a>>>0>c>>>0?a:c}c=J[p+8>>2];e=e+1|0;if(c>>>0>e>>>0){continue}break}}if(!c){e=0;break z}u=c&1;q=J[p+1128>>2];r=J[p+1140>>2];D:{if((c|0)==1){g=0;c=0;e=0;break D}x=c&-2;g=0;c=0;e=0;o=0;while(1){a=g<<2;E:{if(!J[a+r>>2]){a=c;break E}s=J[a+q>>2];a=c>>>0>s>>>0?c:s;e=c>>>0>>0?g:e}A=g|1;c=A<<2;F:{if(!J[c+r>>2]){c=a;break F}s=J[c+q>>2];c=a>>>0>s>>>0?a:s;e=a>>>0>>0?A:e}g=g+2|0;o=o+2|0;if((x|0)!=(o|0)){continue}break}}if(!u){break z}a=g<<2;if(!J[a+r>>2]){break z}e=M[a+q>>2]>c>>>0?g:e}Ib(p+1088|0,4,e)}c=J[p>>2];q=e<<2;g=J[q+J[D>>2]>>2];G:{H:{if((c|0)==(g|0)){break H}I:{J:{x=j-k|0;if(x>>>0<=2){g=J[p+1152>>2];J[g>>2]=e;c=1;a=J[p+8>>2];if(a>>>0>1){break J}break I}a=J[p+1164>>2];F=T+1|0;A=P(F,12);o=a+A|0;if((o|0)!=(v|0)){bb(o,J[v>>2],J[v+4>>2]);a=J[p+1164>>2]}a=q+J[a+A>>2]|0;r=J[a>>2]+(1<>2]=r;a=k;K:{if((j|0)==(a|0)){break K}G=J[h+24>>2];D=G+q|0;a=j;c=k;if(!l){if(r>>>0>M[D>>2]){break K}while(1){a=a-1|0;if((c|0)==(a|0)){a=c;break K}if(r>>>0<=M[(q+J[f+24>>2]|0)+(P(a,y)<<2)>>2]){continue}c=c+1|0;if((c|0)!=(a|0)){continue}break}break K}while(1){g=P(c,l)<<2;if(r>>>0>M[g+D>>2]){c=c+1|0;if((c|0)!=(a|0)){continue}break K}while(1){a=a-1|0;if((c|0)==(a|0)){a=c;break K}v=J[f+24>>2]+(P(a,y)<<2)|0;if(r>>>0<=M[v+q>>2]){continue}break}s=g+G|0;E=0;g=0;o=0;if(!ea){while(1){u=g<<2;m=u+s|0;z=J[m>>2];C=m;m=v+u|0;J[C>>2]=J[m>>2];J[m>>2]=z;m=u|4;z=m+s|0;C=J[z>>2];m=v+m|0;J[z>>2]=J[m>>2];J[m>>2]=C;m=u|8;z=m+s|0;C=J[z>>2];m=v+m|0;J[z>>2]=J[m>>2];J[m>>2]=C;u=u|12;m=u+s|0;z=J[m>>2];u=v+u|0;J[m>>2]=J[u>>2];J[u>>2]=z;g=g+4|0;o=o+4|0;if((aa|0)!=(o|0)){continue}break}}if(_){while(1){o=g<<2;u=o+s|0;m=J[u>>2];o=o+v|0;J[u>>2]=J[o>>2];J[o>>2]=m;g=g+1|0;E=E+1|0;if((_|0)!=(E|0)){continue}break}}c=c+1|0;if((c|0)!=(a|0)){continue}break}}o=a-k|0;r=j-a|0;if((o|0)!=(r|0)){xc(da,o>>>0>>0)}c=S(x);v=c^31;g=x>>>1|0;L:{if(o>>>0>>0){if(!v){break L}s=g-o|0;c=1<<30-c;g=0;while(1){Ca((g<<5)+$|0,(c&s)!=0);c=c>>>1|0;g=g+1|0;if((v|0)!=(g|0)){continue}break}break L}if(!v){break L}s=g-r|0;c=1<<30-c;g=0;while(1){Ca((g<<5)+$|0,(c&s)!=0);c=c>>>1|0;g=g+1|0;if((v|0)!=(g|0)){continue}break}}m=q;c=J[p+1176>>2];g=c+U|0;q=J[g>>2];v=m+q|0;J[v>>2]=J[v>>2]+1;bb(c+A|0,q,J[g+4>>2]);if((a|0)!=(k|0)){g=J[i+60>>2]+J[i+56>>2]|0;q=J[i+48>>2];c=J[i+44>>2];if((g|0)==(((c|0)!=(q|0)?P(q-c>>2,113)-1|0:0)|0)){fb(i+40|0);g=J[i+56>>2]+J[i+60>>2]|0;q=J[i+44>>2]}else{q=c}c=(g>>>0)/113|0;c=J[q+(c<<2)>>2]+P(g-P(c,113)|0,36)|0;J[c+32>>2]=T;J[c+28>>2]=o;J[c+24>>2]=e;J[c+16>>2]=h;J[c+12>>2]=a;J[c+4>>2]=h;J[c+8>>2]=l;J[c>>2]=k;J[c+20>>2]=l;J[i+60>>2]=J[i+60>>2]+1}if((a|0)==(j|0)){break H}g=J[i+60>>2]+J[i+56>>2]|0;k=J[i+48>>2];c=J[i+44>>2];if((g|0)==(((c|0)!=(k|0)?P(k-c>>2,113)-1|0:0)|0)){fb(i+40|0);g=J[i+56>>2]+J[i+60>>2]|0;q=J[i+44>>2]}else{q=c}c=(g>>>0)/113|0;c=J[q+(c<<2)>>2]+P(g-P(c,113)|0,36)|0;J[c+32>>2]=F;J[c+28>>2]=r;J[c+24>>2]=e;J[c+16>>2]=f;J[c+20>>2]=y;J[c+12>>2]=j;J[c+4>>2]=h;J[c>>2]=a;J[c+8>>2]=l;e=J[i+60>>2]+1|0;J[i+60>>2]=e;break G}while(1){e=(a-1|0)!=(e|0)?e+1|0:0;J[g+(c<<2)>>2]=e;a=J[p+8>>2];c=c+1|0;if(a>>>0>c>>>0){continue}break}}g=0;c=a;if((j|0)==(k|0)){break H}while(1){M:{if(!c){c=0;break M}j=J[h+24>>2]+(P(J[h+4>>2],g+k|0)<<2)|0;e=0;while(1){c=J[p>>2];o=J[J[p+1152>>2]+(e<<2)>>2]<<2;q=J[o+J[D>>2]>>2];if((c|0)!=(q|0)){Ib(ca,c-q|0,J[j+o>>2]);a=J[p+8>>2]}c=a;e=e+1|0;if(c>>>0>e>>>0){continue}break}}g=g+1|0;if((x|0)!=(g|0)){continue}break}}e=J[i+60>>2]}if(e){continue}break}}J[i+60>>2]=0;f=J[i+48>>2];e=J[i+44>>2];a=f-e|0;if(a>>>0>=9){while(1){na(J[e>>2]);e=J[i+44>>2]+4|0;J[i+44>>2]=e;f=J[i+48>>2];a=f-e|0;if(a>>>0>8){continue}break}}c=56;N:{switch((a>>>2|0)-1|0){case 1:c=113;case 0:J[i+56>>2]=c;break;default:break N}}O:{if((e|0)==(f|0)){break O}while(1){na(J[e>>2]);e=e+4|0;if((f|0)!=(e|0)){continue}break}a=J[i+48>>2];c=J[i+44>>2];if((a|0)==(c|0)){break O}J[i+48>>2]=a+((c-a|0)+3&-4)}a=J[i+40>>2];if(a){na(a)}ba=i- -64|0;break v}qa();B()}qa();B()}se(W,b);eb(X,b);eb(Y,b);eb(Z,b)}ba=n+32|0;_c(p);break t;case 5:c=Zc(d+456|0,f);a=J[d+1652>>2];J[d+416>>2]=a;J[d+400>>2]=a;J[d- -64>>2]=a;J[d+48>>2]=a;J[d+408>>2]=0;J[d+392>>2]=J[d+1648>>2];a=d+1648|0;J[d+412>>2]=a;f=J[d+412>>2];J[d+56>>2]=J[d+408>>2];J[d+60>>2]=f;J[d+396>>2]=a;J[d+420>>2]=k;a=J[d+396>>2];J[d+40>>2]=J[d+392>>2];J[d+44>>2]=a;a=Ae(c,d+56|0,d+40|0,d+420|0,b);_c(c);if(a){break t}break a;case 4:c=Zc(d+456|0,f);a=J[d+1652>>2];J[d+384>>2]=a;J[d+368>>2]=a;J[d+96>>2]=a;J[d+80>>2]=a;J[d+376>>2]=0;J[d+360>>2]=J[d+1648>>2];a=d+1648|0;J[d+380>>2]=a;f=J[d+380>>2];J[d+88>>2]=J[d+376>>2];J[d+92>>2]=f;J[d+364>>2]=a;J[d+420>>2]=k;a=J[d+364>>2];J[d+72>>2]=J[d+360>>2];J[d+76>>2]=a;a=Ae(c,d+88|0,d+72|0,d+420|0,b);_c(c);if(a){break t}break a;case 3:c=ze(d+456|0,f);a=J[d+1652>>2];J[d+352>>2]=a;J[d+336>>2]=a;J[d+128>>2]=a;J[d+112>>2]=a;J[d+344>>2]=0;J[d+328>>2]=J[d+1648>>2];a=d+1648|0;J[d+348>>2]=a;f=J[d+348>>2];J[d+120>>2]=J[d+344>>2];J[d+124>>2]=f;J[d+332>>2]=a;J[d+420>>2]=k;a=J[d+332>>2];J[d+104>>2]=J[d+328>>2];J[d+108>>2]=a;a=ye(c,d+120|0,d+104|0,d+420|0,b);xe(c);if(a){break t}break a;case 2:c=ze(d+456|0,f);a=J[d+1652>>2];J[d+320>>2]=a;J[d+304>>2]=a;J[d+160>>2]=a;J[d+144>>2]=a;J[d+312>>2]=0;J[d+296>>2]=J[d+1648>>2];a=d+1648|0;J[d+316>>2]=a;f=J[d+316>>2];J[d+152>>2]=J[d+312>>2];J[d+156>>2]=f;J[d+300>>2]=a;J[d+420>>2]=k;a=J[d+300>>2];J[d+136>>2]=J[d+296>>2];J[d+140>>2]=a;a=ye(c,d+152|0,d+136|0,d+420|0,b);xe(c);if(a){break t}break a;case 1:c=we(d+456|0,f);a=J[d+1652>>2];J[d+288>>2]=a;J[d+272>>2]=a;J[d+192>>2]=a;J[d+176>>2]=a;J[d+280>>2]=0;J[d+264>>2]=J[d+1648>>2];a=d+1648|0;J[d+284>>2]=a;f=J[d+284>>2];J[d+184>>2]=J[d+280>>2];J[d+188>>2]=f;J[d+268>>2]=a;J[d+420>>2]=k;a=J[d+268>>2];J[d+168>>2]=J[d+264>>2];J[d+172>>2]=a;a=ve(c,d+184|0,d+168|0,d+420|0,b);ue(c);if(a){break t}break a;case 0:break u;default:break a}}c=we(d+456|0,f);a=J[d+1652>>2];J[d+256>>2]=a;J[d+240>>2]=a;J[d+224>>2]=a;J[d+208>>2]=a;J[d+248>>2]=0;J[d+232>>2]=J[d+1648>>2];a=d+1648|0;J[d+252>>2]=a;f=J[d+252>>2];J[d+216>>2]=J[d+248>>2];J[d+220>>2]=f;J[d+236>>2]=a;J[d+420>>2]=k;a=J[d+236>>2];J[d+200>>2]=J[d+232>>2];J[d+204>>2]=a;a=ve(c,d+216|0,d+200|0,d+420|0,b);ue(c);if(!a){break a}}s=1}a=J[d+1660>>2];if(a){J[d+1664>>2]=a;na(a)}ba=d+1680|0;return s|0}function Xe(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0,z=0,A=0,B=0,D=0,E=0,F=0,G=0,I=0;w=ba-160|0;ba=w;J[w+60>>2]=b;J[w+20>>2]=b;J[w+24>>2]=-1;h=w+16|0;J[h+112>>2]=0;J[h+116>>2]=0;n=J[h+44>>2]-J[h+4>>2]|0;J[h+120>>2]=n;J[h+124>>2]=n>>31;J[h+104>>2]=J[h+8>>2];s=ba-48|0;ba=s;if(d>>>0<=2){a:{d=d<<2;D=J[d+17292>>2];E=J[d+17280>>2];while(1){d=J[h+4>>2];b:{if((d|0)!=J[h+104>>2]){J[h+4>>2]=d+1;d=K[d|0];break b}d=La(h)}if((d|0)==32|d-9>>>0<5){continue}break}n=1;c:{d:{switch(d-43|0){case 0:case 2:break d;default:break c}}n=(d|0)==45?-1:1;d=J[h+4>>2];if((d|0)!=J[h+104>>2]){J[h+4>>2]=d+1;d=K[d|0];break c}d=La(h)}e:{f:{while(1){if(H[g+1154|0]==(d|32)){g:{if(g>>>0>6){break g}d=J[h+4>>2];if((d|0)!=J[h+104>>2]){J[h+4>>2]=d+1;d=K[d|0];break g}d=La(h)}g=g+1|0;if((g|0)!=8){continue}break f}break}if((g|0)!=3){if((g|0)==8){break f}if(g>>>0<4){break e}if((g|0)==8){break f}}d=J[h+116>>2];if((d|0)>0|(d|0)>=0){J[h+4>>2]=J[h+4>>2]-1}if(g>>>0<4){break f}d=(d|0)<0;while(1){if(!d){J[h+4>>2]=J[h+4>>2]-1}g=g-1|0;if(g>>>0>3){continue}break}}m=ba-16|0;ba=m;r=(C(Q(Q(n|0)*Q(Infinity))),v(2));d=r&2147483647;h:{if(d-8388608>>>0<=2130706431){l=(d>>>7|0)+1065353216|0;j=d<<25;break h}l=r>>>7|2147418112;j=r<<25;if(d>>>0>=2139095040){break h}l=0;j=0;if(!d){break h}g=d;d=S(d);Pa(m,g,0,0,0,d+81|0);i=J[m>>2];k=J[m+4>>2];l=J[m+12>>2]^65536|16265-d<<16;j=J[m+8>>2]}J[s>>2]=i;J[s+4>>2]=k;J[s+8>>2]=j;J[s+12>>2]=r&-2147483648|l;ba=m+16|0;i=J[s+8>>2];k=J[s+12>>2];j=J[s>>2];m=J[s+4>>2];break a}i:{j:{k:{if(g){break k}g=0;while(1){if(H[g+1434|0]!=(d|32)){break k}l:{if(g>>>0>1){break l}d=J[h+4>>2];if((d|0)!=J[h+104>>2]){J[h+4>>2]=d+1;d=K[d|0];break l}d=La(h)}g=g+1|0;if((g|0)!=3){continue}break}break j}m:{switch(g|0){case 0:n:{if((d|0)!=48){break n}g=J[h+4>>2];o:{if((g|0)!=J[h+104>>2]){J[h+4>>2]=g+1;g=K[g|0];break o}g=La(h)}if((g&-33)==88){f=ba-432|0;ba=f;d=J[h+4>>2];p:{if((d|0)!=J[h+104>>2]){J[h+4>>2]=d+1;g=K[d|0];break p}g=La(h)}q:{r:{while(1){if((g|0)!=48){s:{if((g|0)!=46){break q}d=J[h+4>>2];if((d|0)==J[h+104>>2]){break s}J[h+4>>2]=d+1;g=K[d|0];break r}}else{d=J[h+4>>2];if((d|0)!=J[h+104>>2]){x=1;J[h+4>>2]=d+1;g=K[d|0]}else{x=1;g=La(h)}continue}break}g=La(h)}e=1;if((g|0)!=48){break q}while(1){d=r;r=d-1|0;t=t-!d|0;d=J[h+4>>2];t:{if((d|0)!=J[h+104>>2]){J[h+4>>2]=d+1;g=K[d|0];break t}g=La(h)}if((g|0)==48){continue}break}x=1}m=1073676288;while(1){u:{d=g|32;v:{w:{F=g-48|0;if(F>>>0<10){break w}if((g|0)!=46&d-97>>>0>=6){break u}if((g|0)!=46){break w}if(e){break u}e=1;r=i;t=k;break v}d=(g|0)>57?d-87|0:F;x:{if((k|0)<=0&i>>>0<=7|(k|0)<0){p=d+(p<<4)|0;break x}if(!k&i>>>0<=28){$a(f+48|0,d);Ea(f+32|0,A,B,j,m,0,0,0,1073414144);A=J[f+32>>2];B=J[f+36>>2];j=J[f+40>>2];m=J[f+44>>2];Ea(f+16|0,J[f+48>>2],J[f+52>>2],J[f+56>>2],J[f+60>>2],A,B,j,m);_a(f,J[f+16>>2],J[f+20>>2],J[f+24>>2],J[f+28>>2],l,o,y,z);y=J[f+8>>2];z=J[f+12>>2];l=J[f>>2];o=J[f+4>>2];break x}if(G|!d){break x}Ea(f+80|0,A,B,j,m,0,0,0,1073610752);_a(f- -64|0,J[f+80>>2],J[f+84>>2],J[f+88>>2],J[f+92>>2],l,o,y,z);y=J[f+72>>2];z=J[f+76>>2];G=1;l=J[f+64>>2];o=J[f+68>>2]}i=i+1|0;k=i?k:k+1|0;x=1}d=J[h+4>>2];if((d|0)!=J[h+104>>2]){J[h+4>>2]=d+1;g=K[d|0]}else{g=La(h)}continue}break}y:{if(!x){d=J[h+116>>2];if((d|0)>0|(d|0)>=0){z:{d=J[h+4>>2];J[h+4>>2]=d-1;J[h+4>>2]=d-2;if(!e){break z}J[h+4>>2]=d-3}}qb(f+96|0,+(n|0)*0);l=J[f+96>>2];o=J[f+100>>2];i=J[f+108>>2];d=J[f+104>>2];break y}if((k|0)<=0&i>>>0<=7|(k|0)<0){j=i;m=k;while(1){p=p<<4;j=j+1|0;m=j?m:m+1|0;if((j|0)!=8|m){continue}break}}A:{B:{C:{if((g&-33)==80){j=Ye(h);d=ca;m=d;if(j|(d|0)!=-2147483648){break A}d=J[h+116>>2];if((d|0)>0|(d|0)>=0){break C}break B}j=0;m=0;if(J[h+116>>2]<0){break A}}J[h+4>>2]=J[h+4>>2]-1}j=0;m=0}if(!p){qb(f+112|0,+(n|0)*0);l=J[f+112>>2];o=J[f+116>>2];i=J[f+124>>2];d=J[f+120>>2];break y}d=e?r:i;k=(e?t:k)<<2|d>>>30;d=j+(d<<2)|0;g=k+m|0;g=d>>>0>>0?g+1|0:g;i=d-32|0;k=g-(d>>>0<32)|0;d=k;if(i>>>0>0-D>>>0&(d|0)>=0|(d|0)>0){J[4804]=68;$a(f+160|0,n);Ea(f+144|0,J[f+160>>2],J[f+164>>2],J[f+168>>2],J[f+172>>2],-1,-1,-1,2147418111);Ea(f+128|0,J[f+144>>2],J[f+148>>2],J[f+152>>2],J[f+156>>2],-1,-1,-1,2147418111);l=J[f+128>>2];o=J[f+132>>2];i=J[f+140>>2];d=J[f+136>>2];break y}d=D-226|0;j=d>>31;if((k|0)>=(j|0)&d>>>0<=i>>>0|(j|0)<(k|0)){if((p|0)>=0){while(1){_a(f+416|0,l,o,y,z,0,0,0,-1073807360);d=Oe(l,o,y,z,1073610752);j=(d|0)>=0;d=j;_a(f+400|0,l,o,y,z,d?J[f+416>>2]:l,d?J[f+420>>2]:o,d?J[f+424>>2]:y,d?J[f+428>>2]:z);d=i;i=d-1|0;k=k-!d|0;y=J[f+408>>2];z=J[f+412>>2];l=J[f+400>>2];o=J[f+404>>2];p=j|p<<1;if((p|0)>=0){continue}break}}g=k-((D>>31)+(i>>>0>>0)|0)|0;d=(i-D|0)+32|0;g=d>>>0<32?g+1|0:g;j=d>>>0>>0&(g|0)<=0|(g|0)<0?(d|0)>0?d:0:E;D:{if((j|0)>=113){$a(f+384|0,n);r=J[f+392>>2];t=J[f+396>>2];A=J[f+384>>2];B=J[f+388>>2];g=0;d=0;break D}qb(f+352|0,pd(144-j|0));$a(f+336|0,n);A=J[f+336>>2];B=J[f+340>>2];r=J[f+344>>2];t=J[f+348>>2];$e(f+368|0,J[f+352>>2],J[f+356>>2],J[f+360>>2],J[f+364>>2],A,B,r,t);q=J[f+376>>2];u=J[f+380>>2];g=J[f+372>>2];d=J[f+368>>2]}k=!(p&1)&((Hb(l,o,y,z,0,0,0,0)|0)!=0&(j|0)<32);Lb(f+320|0,k+p|0);Ea(f+304|0,A,B,r,t,J[f+320>>2],J[f+324>>2],J[f+328>>2],J[f+332>>2]);j=d;_a(f+272|0,J[f+304>>2],J[f+308>>2],J[f+312>>2],J[f+316>>2],d,g,q,u);d=k;Ea(f+288|0,A,B,r,t,d?0:l,d?0:o,d?0:y,d?0:z);_a(f+256|0,J[f+288>>2],J[f+292>>2],J[f+296>>2],J[f+300>>2],J[f+272>>2],J[f+276>>2],J[f+280>>2],J[f+284>>2]);od(f+240|0,J[f+256>>2],J[f+260>>2],J[f+264>>2],J[f+268>>2],j,g,q,u);d=J[f+240>>2];l=J[f+244>>2];j=J[f+248>>2];r=J[f+252>>2];if(!Hb(d,l,j,r,0,0,0,0)){J[4804]=68}_e(f+224|0,d,l,j,r,i);l=J[f+224>>2];o=J[f+228>>2];i=J[f+236>>2];d=J[f+232>>2];break y}J[4804]=68;$a(f+208|0,n);Ea(f+192|0,J[f+208>>2],J[f+212>>2],J[f+216>>2],J[f+220>>2],0,0,0,65536);Ea(f+176|0,J[f+192>>2],J[f+196>>2],J[f+200>>2],J[f+204>>2],0,0,0,65536);l=J[f+176>>2];o=J[f+180>>2];i=J[f+188>>2];d=J[f+184>>2]}J[s+16>>2]=l;J[s+20>>2]=o;J[s+24>>2]=d;J[s+28>>2]=i;ba=f+432|0;i=J[s+24>>2];k=J[s+28>>2];j=J[s+16>>2];m=J[s+20>>2];break a}if(J[h+116>>2]<0){break n}J[h+4>>2]=J[h+4>>2]-1}g=h;f=n;h=0;e=ba-8976|0;ba=e;G=0-D|0;F=G-E|0;E:{F:{while(1){if((d|0)!=48){G:{if((d|0)!=46){break E}d=J[g+4>>2];if((d|0)==J[g+104>>2]){break G}J[g+4>>2]=d+1;d=K[d|0];break F}}else{d=J[g+4>>2];if((d|0)!=J[g+104>>2]){J[g+4>>2]=d+1;d=K[d|0]}else{d=La(g)}h=1;continue}break}d=La(g)}q=1;if((d|0)!=48){break E}while(1){d=i;i=d-1|0;k=k-!d|0;d=J[g+4>>2];H:{if((d|0)!=J[g+104>>2]){J[g+4>>2]=d+1;d=K[d|0];break H}d=La(g)}if((d|0)==48){continue}break}h=1}J[e+784>>2]=0;I:{J:{n=(d|0)==46;l=d-48|0;K:{L:{if(n|l>>>0<=9){while(1){M:{if(n&1){if(!q){i=j;k=m;q=1;break M}n=!h;break L}j=j+1|0;m=j?m:m+1|0;if((p|0)<=2044){x=(d|0)==48?x:j;n=(e+784|0)+(p<<2)|0;if(u){l=(P(J[n>>2],10)+d|0)-48|0}J[n>>2]=l;h=1;l=u+1|0;d=(l|0)==9;u=d?0:l;p=d+p|0;break M}if((d|0)==48){break M}J[e+8960>>2]=J[e+8960>>2]|1;x=18396}d=J[g+4>>2];N:{if((d|0)!=J[g+104>>2]){J[g+4>>2]=d+1;d=K[d|0];break N}d=La(g)}n=(d|0)==46;l=d-48|0;if(n|l>>>0<10){continue}break}}i=q?i:j;k=q?k:m;if(!(!h|(d&-33)!=69)){l=Ye(g);d=ca;o=d;O:{if(l|(d|0)!=-2147483648){break O}l=0;o=0;if(J[g+116>>2]<0){break O}J[g+4>>2]=J[g+4>>2]-1}k=k+o|0;i=i+l|0;k=i>>>0>>0?k+1|0:k;break J}n=!h;if((d|0)<0){break K}}if(J[g+116>>2]<0){break K}J[g+4>>2]=J[g+4>>2]-1}if(!n){break J}J[4804]=28;j=0;m=0;J[g+112>>2]=0;J[g+116>>2]=0;d=J[g+44>>2]-J[g+4>>2]|0;J[g+120>>2]=d;J[g+124>>2]=d>>31;J[g+104>>2]=J[g+8>>2];i=0;d=0;break I}d=J[e+784>>2];if(!d){qb(e,+(f|0)*0);j=J[e>>2];m=J[e+4>>2];i=J[e+12>>2];d=J[e+8>>2];break I}if(!(j>>>0>9&(m|0)>=0|(m|0)>0|((i|0)!=(j|0)|(k|0)!=(m|0))|(d>>>E|0?(E|0)<=30:0))){$a(e+48|0,f);Lb(e+32|0,d);Ea(e+16|0,J[e+48>>2],J[e+52>>2],J[e+56>>2],J[e+60>>2],J[e+32>>2],J[e+36>>2],J[e+40>>2],J[e+44>>2]);j=J[e+16>>2];m=J[e+20>>2];i=J[e+28>>2];d=J[e+24>>2];break I}if(i>>>0>G>>>1>>>0&(k|0)>=0|(k|0)>0){J[4804]=68;$a(e+96|0,f);Ea(e+80|0,J[e+96>>2],J[e+100>>2],J[e+104>>2],J[e+108>>2],-1,-1,-1,2147418111);Ea(e- -64|0,J[e+80>>2],J[e+84>>2],J[e+88>>2],J[e+92>>2],-1,-1,-1,2147418111);j=J[e+64>>2];m=J[e+68>>2];i=J[e+76>>2];d=J[e+72>>2];break I}d=D-226|0;g=i>>>0>>0;d=d>>31;if(g&(k|0)<=(d|0)|(d|0)>(k|0)){J[4804]=68;$a(e+144|0,f);Ea(e+128|0,J[e+144>>2],J[e+148>>2],J[e+152>>2],J[e+156>>2],0,0,0,65536);Ea(e+112|0,J[e+128>>2],J[e+132>>2],J[e+136>>2],J[e+140>>2],0,0,0,65536);j=J[e+112>>2];m=J[e+116>>2];i=J[e+124>>2];d=J[e+120>>2];break I}if(u){if((u|0)<=8){d=(e+784|0)+(p<<2)|0;g=J[d>>2];while(1){g=P(g,10);u=u+1|0;if((u|0)!=9){continue}break}J[d>>2]=g}p=p+1|0}P:{q=i;if((x|0)>(i|0)|(x|0)>=9|(i|0)>17){break P}if((q|0)==9){$a(e+192|0,f);Lb(e+176|0,J[e+784>>2]);Ea(e+160|0,J[e+192>>2],J[e+196>>2],J[e+200>>2],J[e+204>>2],J[e+176>>2],J[e+180>>2],J[e+184>>2],J[e+188>>2]);j=J[e+160>>2];m=J[e+164>>2];i=J[e+172>>2];d=J[e+168>>2];break I}if((q|0)<=8){$a(e+272|0,f);Lb(e+256|0,J[e+784>>2]);Ea(e+240|0,J[e+272>>2],J[e+276>>2],J[e+280>>2],J[e+284>>2],J[e+256>>2],J[e+260>>2],J[e+264>>2],J[e+268>>2]);$a(e+224|0,J[(0-q<<2)+17280>>2]);Ne(e+208|0,J[e+240>>2],J[e+244>>2],J[e+248>>2],J[e+252>>2],J[e+224>>2],J[e+228>>2],J[e+232>>2],J[e+236>>2]);j=J[e+208>>2];m=J[e+212>>2];i=J[e+220>>2];d=J[e+216>>2];break I}d=(P(q,-3)+E|0)+27|0;i=J[e+784>>2];if(i>>>d|0?(d|0)<=30:0){break P}$a(e+352|0,f);Lb(e+336|0,i);Ea(e+320|0,J[e+352>>2],J[e+356>>2],J[e+360>>2],J[e+364>>2],J[e+336>>2],J[e+340>>2],J[e+344>>2],J[e+348>>2]);$a(e+304|0,J[(q<<2)+17208>>2]);Ea(e+288|0,J[e+320>>2],J[e+324>>2],J[e+328>>2],J[e+332>>2],J[e+304>>2],J[e+308>>2],J[e+312>>2],J[e+316>>2]);j=J[e+288>>2];m=J[e+292>>2];i=J[e+300>>2];d=J[e+296>>2];break I}while(1){d=p;p=d-1|0;if(!J[(e+784|0)+(p<<2)>>2]){continue}break}u=0;i=(q|0)%9|0;Q:{if(!i){n=0;break Q}n=0;i=(q|0)<0?i+9|0:i;R:{if(!d){d=0;break R}j=J[(0-i<<2)+17280>>2];k=1e9/(j|0)|0;l=0;g=0;while(1){m=(e+784|0)+(g<<2)|0;h=J[m>>2];p=(h>>>0)/(j>>>0)|0;l=p+l|0;J[m>>2]=l;l=!l&(g|0)==(n|0);n=l?n+1&2047:n;q=l?q-9|0:q;l=P(k,h-P(j,p)|0);g=g+1|0;if((g|0)!=(d|0)){continue}break}if(!l){break R}J[(e+784|0)+(d<<2)>>2]=l;d=d+1|0}q=(q-i|0)+9|0}while(1){x=(e+784|0)+(n<<2)|0;S:{while(1){if(((q|0)!=36|M[x>>2]>=10384593)&(q|0)>=36){break S}p=d+2047|0;l=0;h=d;while(1){d=h;o=p&2047;h=(e+784|0)+(o<<2)|0;i=J[h>>2];m=i>>>3|0;j=i<<29;i=j+l|0;g=m;k=i>>>0>>0?g+1|0:g;if(!k&i>>>0<1000000001){l=0}else{l=Jl(i,k,1e9,0);i=i-Hl(l,ca,1e9,0)|0}J[h>>2]=i;h=(o|0)!=(d-1&2047)?d:(n|0)==(o|0)?d:i?d:o;p=o-1|0;if((n|0)!=(o|0)){continue}break}u=u-29|0;if(!l){continue}break}n=n-1&2047;if((n|0)==(h|0)){i=e+784|0;d=i+((h+2046&2047)<<2)|0;g=d;k=J[d>>2];d=h-1&2047;J[g>>2]=k|J[i+(d<<2)>>2]}q=q+9|0;J[(e+784|0)+(n<<2)>>2]=l;continue}break}T:{U:while(1){i=d+1&2047;l=(e+784|0)+((d-1&2047)<<2)|0;while(1){j=(q|0)>45?9:1;V:{while(1){h=n;g=0;W:{while(1){X:{k=g+h&2047;if((k|0)==(d|0)){break X}k=J[(e+784|0)+(k<<2)>>2];m=J[(g<<2)+17232>>2];if(k>>>0>>0){break X}if(k>>>0>m>>>0){break W}g=g+1|0;if((g|0)!=4){continue}}break}if((q|0)!=36){break W}i=0;k=0;g=0;j=0;m=0;while(1){l=g+h&2047;if((l|0)==(d|0)){d=d+1&2047;J[(e+(d<<2)|0)+780>>2]=0}Lb(e+768|0,J[(e+784|0)+(l<<2)>>2]);Ea(e+752|0,i,k,j,m,0,0,1342177280,1075633366);_a(e+736|0,J[e+752>>2],J[e+756>>2],J[e+760>>2],J[e+764>>2],J[e+768>>2],J[e+772>>2],J[e+776>>2],J[e+780>>2]);j=J[e+744>>2];m=J[e+748>>2];i=J[e+736>>2];k=J[e+740>>2];g=g+1|0;if((g|0)!=4){continue}break}$a(e+720|0,f);Ea(e+704|0,i,k,j,m,J[e+720>>2],J[e+724>>2],J[e+728>>2],J[e+732>>2]);j=J[e+712>>2];m=J[e+716>>2];i=0;k=0;l=J[e+704>>2];o=J[e+708>>2];x=u+113|0;n=x-D|0;q=(n|0)<(E|0);g=q?(n|0)>0?n:0:E;if((g|0)<=112){break V}break T}u=j+u|0;n=d;if((d|0)==(h|0)){continue}break}m=1e9>>>j|0;p=-1<>2];k=k+(o>>>j|0)|0;J[g>>2]=k;k=!k&(h|0)==(n|0);n=k?n+1&2047:n;q=k?q-9|0:q;g=P(m,o&p);h=h+1&2047;if((h|0)!=(d|0)){continue}break}if(!g){continue}if((i|0)!=(n|0)){J[(e+784|0)+(d<<2)>>2]=g;d=i;continue U}J[l>>2]=J[l>>2]|1;continue}break}break}qb(e+656|0,pd(225-g|0));$e(e+688|0,J[e+656>>2],J[e+660>>2],J[e+664>>2],J[e+668>>2],l,o,j,m);y=J[e+696>>2];z=J[e+700>>2];A=J[e+688>>2];B=J[e+692>>2];qb(e+640|0,pd(113-g|0));Ze(e+672|0,l,o,j,m,J[e+640>>2],J[e+644>>2],J[e+648>>2],J[e+652>>2]);i=J[e+672>>2];k=J[e+676>>2];r=J[e+680>>2];t=J[e+684>>2];od(e+624|0,l,o,j,m,i,k,r,t);_a(e+608|0,A,B,y,z,J[e+624>>2],J[e+628>>2],J[e+632>>2],J[e+636>>2]);j=J[e+616>>2];m=J[e+620>>2];l=J[e+608>>2];o=J[e+612>>2]}p=h+4&2047;Y:{if((p|0)==(d|0)){break Y}p=J[(e+784|0)+(p<<2)>>2];Z:{if(p>>>0<=499999999){if(!p&(h+5&2047)==(d|0)){break Z}qb(e+496|0,+(f|0)*.25);_a(e+480|0,i,k,r,t,J[e+496>>2],J[e+500>>2],J[e+504>>2],J[e+508>>2]);r=J[e+488>>2];t=J[e+492>>2];i=J[e+480>>2];k=J[e+484>>2];break Z}if((p|0)!=5e8){qb(e+592|0,+(f|0)*.75);_a(e+576|0,i,k,r,t,J[e+592>>2],J[e+596>>2],J[e+600>>2],J[e+604>>2]);r=J[e+584>>2];t=J[e+588>>2];i=J[e+576>>2];k=J[e+580>>2];break Z}I=+(f|0);if((h+5&2047)==(d|0)){qb(e+528|0,I*.5);_a(e+512|0,i,k,r,t,J[e+528>>2],J[e+532>>2],J[e+536>>2],J[e+540>>2]);r=J[e+520>>2];t=J[e+524>>2];i=J[e+512>>2];k=J[e+516>>2];break Z}qb(e+560|0,I*.75);_a(e+544|0,i,k,r,t,J[e+560>>2],J[e+564>>2],J[e+568>>2],J[e+572>>2]);r=J[e+552>>2];t=J[e+556>>2];i=J[e+544>>2];k=J[e+548>>2]}if((g|0)>111){break Y}Ze(e+464|0,i,k,r,t,0,0,0,1073676288);if(Hb(J[e+464>>2],J[e+468>>2],J[e+472>>2],J[e+476>>2],0,0,0,0)){break Y}_a(e+448|0,i,k,r,t,0,0,0,1073676288);r=J[e+456>>2];t=J[e+460>>2];i=J[e+448>>2];k=J[e+452>>2]}_a(e+432|0,l,o,j,m,i,k,r,t);od(e+416|0,J[e+432>>2],J[e+436>>2],J[e+440>>2],J[e+444>>2],A,B,y,z);j=J[e+424>>2];m=J[e+428>>2];l=J[e+416>>2];o=J[e+420>>2];_:{if((F-2|0)>=(x&2147483647)){break _}J[e+408>>2]=j;J[e+412>>2]=m&2147483647;J[e+400>>2]=l;J[e+404>>2]=o;Ea(e+384|0,l,o,j,m,0,0,0,1073610752);d=Oe(J[e+400>>2],J[e+404>>2],J[e+408>>2],J[e+412>>2],1081081856);d=(d|0)>=0;j=d?J[e+392>>2]:j;m=d?J[e+396>>2]:m;l=d?J[e+384>>2]:l;o=d?J[e+388>>2]:o;u=d+u|0;if(!((Hb(i,k,r,t,0,0,0,0)|0)!=0&(d?q&(g|0)!=(n|0):q))&(u+110|0)<=(F|0)){break _}J[4804]=68}_e(e+368|0,l,o,j,m,u);j=J[e+368>>2];m=J[e+372>>2];i=J[e+380>>2];d=J[e+376>>2]}J[s+40>>2]=d;J[s+44>>2]=i;J[s+32>>2]=j;J[s+36>>2]=m;ba=e+8976|0;i=J[s+40>>2];k=J[s+44>>2];j=J[s+32>>2];m=J[s+36>>2];break a;case 3:break j;default:break m}}d=J[h+116>>2];if((d|0)>0|(d|0)>=0){J[h+4>>2]=J[h+4>>2]-1}J[4804]=28;break i}$:{d=J[h+4>>2];aa:{if((d|0)!=J[h+104>>2]){J[h+4>>2]=d+1;d=K[d|0];break aa}d=La(h)}if((d|0)==40){g=1;break $}k=2147450880;if(J[h+116>>2]<0){break a}J[h+4>>2]=J[h+4>>2]-1;break a}while(1){ba:{d=J[h+4>>2];ca:{if((d|0)!=J[h+104>>2]){J[h+4>>2]=d+1;d=K[d|0];break ca}d=La(h)}if(!(d-48>>>0<10|d-65>>>0<26|(d|0)==95)){if(d-97>>>0>=26){break ba}}g=g+1|0;continue}break}k=2147450880;if((d|0)==41){break a}d=J[h+116>>2];if((d|0)>0|(d|0)>=0){J[h+4>>2]=J[h+4>>2]-1}if(!g){break a}while(1){g=g-1|0;if((d|0)>0|(d|0)>=0){J[h+4>>2]=J[h+4>>2]-1}if(g){continue}break}break a}J[h+112>>2]=0;J[h+116>>2]=0;d=J[h+44>>2]-J[h+4>>2]|0;J[h+120>>2]=d;J[h+124>>2]=d>>31;J[h+104>>2]=J[h+8>>2]}}J[w>>2]=j;J[w+4>>2]=m;J[w+8>>2]=i;J[w+12>>2]=k;ba=s+48|0;d=J[w+8>>2];j=J[w+12>>2];i=J[w>>2];l=J[w+4>>2];if(c){J[c>>2]=((J[w+20>>2]+J[w+136>>2]|0)-J[w+60>>2]|0)+b}J[a+8>>2]=d;J[a+12>>2]=j;J[a>>2]=i;J[a+4>>2]=l;ba=w+160|0}function Kj(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;l=ba-32|0;ba=l;d=J[b+8>>2];a:{b:{if(K[b+352|0]){d=jf(d);f=J[b+12>>2];J[b+12>>2]=d;if(f){break b}break a}d=kf(d);f=J[b+12>>2];J[b+12>>2]=d;if(!f){break a}}qc(f)}c:{d=J[b+12>>2];d:{if(!(J[d+40>>2]!=((J[d+4>>2]-J[d>>2]>>2>>>0)/3|0)?d:0)){b=oa(32);H[b+29|0]=0;d=K[1828]|K[1829]<<8|(K[1830]<<16|K[1831]<<24);c=K[1824]|K[1825]<<8|(K[1826]<<16|K[1827]<<24);H[b+21|0]=c;H[b+22|0]=c>>>8;H[b+23|0]=c>>>16;H[b+24|0]=c>>>24;H[b+25|0]=d;H[b+26|0]=d>>>8;H[b+27|0]=d>>>16;H[b+28|0]=d>>>24;d=K[1823]|K[1824]<<8|(K[1825]<<16|K[1826]<<24);c=K[1819]|K[1820]<<8|(K[1821]<<16|K[1822]<<24);H[b+16|0]=c;H[b+17|0]=c>>>8;H[b+18|0]=c>>>16;H[b+19|0]=c>>>24;H[b+20|0]=d;H[b+21|0]=d>>>8;H[b+22|0]=d>>>16;H[b+23|0]=d>>>24;d=K[1815]|K[1816]<<8|(K[1817]<<16|K[1818]<<24);c=K[1811]|K[1812]<<8|(K[1813]<<16|K[1814]<<24);H[b+8|0]=c;H[b+9|0]=c>>>8;H[b+10|0]=c>>>16;H[b+11|0]=c>>>24;H[b+12|0]=d;H[b+13|0]=d>>>8;H[b+14|0]=d>>>16;H[b+15|0]=d>>>24;d=K[1807]|K[1808]<<8|(K[1809]<<16|K[1810]<<24);c=K[1803]|K[1804]<<8|(K[1805]<<16|K[1806]<<24);H[b|0]=c;H[b+1|0]=c>>>8;H[b+2|0]=c>>>16;H[b+3|0]=c>>>24;H[b+4|0]=d;H[b+5|0]=d>>>8;H[b+6|0]=d>>>16;H[b+7|0]=d>>>24;J[a>>2]=-1;Ga(a+4|0,b,29);na(b);break d}j=b+200|0;d=j;J[d+128>>2]=2;J[d+132>>2]=7;J[d+64>>2]=b;c=da[J[J[b>>2]+32>>2]](b)|0;J[d+88>>2]=c;c=J[c+28>>2]-J[c+24>>2]>>2;e=J[d+108>>2];h=J[d+104>>2];d=e-h>>2;e:{if(c>>>0>d>>>0){Fa(j+104|0,c-d|0);h=J[j+104>>2];e=J[j+108>>2];break e}if(c>>>0>=d>>>0){break e}e=(c<<2)+h|0;J[j+108>>2]=e}if((e|0)!=(h|0)){h=0;while(1){n=J[j+104>>2];q=n+(h<<2)|0;d=J[j+88>>2];f=-1;f:{if((h|0)==-1){break f}f=0;c=J[J[d+24>>2]+(h<<2)>>2];if((c|0)==-1){break f}k=J[d+12>>2];g=1;d=c;while(1){f=f+1|0;e=g;g:{if(e&255){g=0;i=d+1|0;d=(i>>>0)%3|0?i:d-2|0;if((d|0)==-1){d=c;break g}i=J[k+(d<<2)>>2];if((i|0)==-1){d=c;break g}d=c;p=i+1|0;i=(p>>>0)%3|0?p:i-2|0;if((i|0)==-1){break g}g=e;d=i;if((c|0)!=(d|0)){break g}break f}h:{if((d>>>0)%3|0){d=d-1|0;break h}d=d+2|0;if((d|0)==-1){break f}}d=J[k+(d<<2)>>2];if((d|0)==-1){break f}d=(d>>>0)%3|0?d-1|0:d+2|0;g=0}if((d|0)!=-1){continue}break}}J[q>>2]=f;h=h+1|0;if(h>>>0>2]-n>>2>>>0){continue}break}}c=j+92|0;h=J[j+88>>2];e=J[h>>2];d=J[h+4>>2]-e>>2;f=J[j+92>>2];g=J[j+96>>2]-f>>2;i:{if(d>>>0>g>>>0){Ld(c,d-g|0);h=J[j+88>>2];e=J[h>>2];break i}if(d>>>0>=g>>>0){break i}J[j+96>>2]=f+(d<<2)}d=J[h+4>>2];j:{if((d|0)==(e|0)){break j}d=d-e>>2;g=d>>>0<=1?1:d;i=g&3;d=J[c>>2];h=0;if(g-1>>>0>=3){g=g&-4;f=0;while(1){c=h<<2;J[c+d>>2]=J[c+e>>2];k=c|4;J[k+d>>2]=J[e+k>>2];k=c|8;J[k+d>>2]=J[e+k>>2];c=c|12;J[c+d>>2]=J[c+e>>2];h=h+4|0;f=f+4|0;if((g|0)!=(f|0)){continue}break}}if(!i){break j}while(1){c=h<<2;J[c+d>>2]=J[c+e>>2];h=h+1|0;m=m+1|0;if((i|0)!=(m|0)){continue}break}}c=(J[j+132>>2]-J[j+128>>2]|0)+1|0;e=J[j+140>>2];d=J[j+136>>2];g=(e-d|0)/12|0;k:{if(c>>>0>g>>>0){h=0;c=c-g|0;f=J[j+144>>2];d=J[j+140>>2];if(c>>>0<=(f-d|0)/12>>>0){if(c){e=d;d=P(c,12)-12|0;d=(d-((d>>>0)%12|0)|0)+12|0;d=pa(e,0,d)+d|0}J[j+140>>2]=d;break k}l:{m:{n:{e=J[j+136>>2];i=(d-e|0)/12|0;g=i+c|0;if(g>>>0<357913942){f=(f-e|0)/12|0;m=f<<1;f=f>>>0>=178956970?357913941:g>>>0>>0?m:g;if(f){if(f>>>0>=357913942){break n}h=oa(P(f,12))}g=P(i,12)+h|0;c=P(c,12)-12|0;i=(c-((c>>>0)%12|0)|0)+12|0;c=pa(g,0,i);i=c+i|0;f=P(f,12)+h|0;if((d|0)==(e|0)){break m}while(1){g=g-12|0;d=d-12|0;J[g>>2]=J[d>>2];J[g+4>>2]=J[d+4>>2];J[g+8>>2]=J[d+8>>2];J[d+8>>2]=0;J[d>>2]=0;J[d+4>>2]=0;if((d|0)!=(e|0)){continue}break}J[j+144>>2]=f;e=J[j+140>>2];J[j+140>>2]=i;d=J[j+136>>2];J[j+136>>2]=g;if((d|0)==(e|0)){break l}while(1){c=e-12|0;g=J[c>>2];if(g){J[e-8>>2]=g;na(g)}e=c;if((c|0)!=(d|0)){continue}break}break l}break c}xa();B()}J[j+144>>2]=f;J[j+140>>2]=i;J[j+136>>2]=c}if(d){na(d)}break k}if(c>>>0>>0){c=d+P(c,12)|0;if((c|0)!=(e|0)){while(1){d=e-12|0;g=J[d>>2];if(g){J[e-8>>2]=g;na(g)}e=d;if((d|0)!=(c|0)){continue}break}}J[j+140>>2]=c}}d=J[b+12>>2];Aa((J[d+28>>2]-J[d+24>>2]>>2)-J[d+44>>2]|0,J[J[b+4>>2]+44>>2]);d=J[b+12>>2];Aa(((J[d+4>>2]-J[d>>2]>>2>>>0)/3|0)-J[d+40>>2]|0,J[J[b+4>>2]+44>>2]);d=J[b+8>>2];c=J[d+100>>2];d=J[d+96>>2];H[l+16|0]=0;m=b+28|0;c=(c-d|0)/12|0;d=l+16|0;Na(m,c,d);c=J[b+12>>2];e=J[c+28>>2];c=J[c+24>>2];J[l+16>>2]=-1;wb(b+52|0,e-c>>2,d);d=J[b+40>>2];J[b+44>>2]=d;g=J[b+12>>2];c=J[g+4>>2]-J[g>>2]>>2;c=c-((c>>>0)%3|0)|0;o:{if(c>>>0<=J[b+48>>2]-d>>2>>>0){break o}if(c>>>0>=1073741824){break c}e=c<<2;c=oa(e);J[b+44>>2]=c;J[b+40>>2]=c;J[b+48>>2]=c+e;if(!d){break o}na(d);g=J[b+12>>2]}d=J[g+28>>2];c=J[g+24>>2];H[l+16|0]=0;Na(b+84|0,d-c>>2,l+16|0);J[b+164>>2]=-1;J[b+168>>2]=0;J[b+100>>2]=J[b+96>>2];J[b+112>>2]=J[b+108>>2];if(J[b+132>>2]){g=J[b+128>>2];if(g){while(1){d=J[g>>2];na(g);g=d;if(d){continue}break}}g=0;J[b+128>>2]=0;d=J[b+124>>2];p:{if(!d){break p}if(d>>>0>=4){f=d&-4;e=0;while(1){c=g<<2;J[c+J[b+120>>2]>>2]=0;J[J[b+120>>2]+(c|4)>>2]=0;J[J[b+120>>2]+(c|8)>>2]=0;J[J[b+120>>2]+(c|12)>>2]=0;g=g+4|0;e=e+4|0;if((f|0)!=(e|0)){continue}break}}d=d&3;if(!d){break p}f=0;while(1){J[J[b+120>>2]+(g<<2)>>2]=0;g=g+1|0;f=f+1|0;if((d|0)!=(f|0)){continue}break}}J[b+132>>2]=0}J[b+144>>2]=0;d=J[b+12>>2];c=J[d+28>>2];d=J[d+24>>2];J[l+16>>2]=-1;wb(b+152|0,c-d>>2,l+16|0);d=J[b+72>>2];J[b+76>>2]=d;q=b+72|0;c=J[b+12>>2];c=J[c+4>>2]-J[c>>2]|0;e=(c>>2>>>0)/3|0;q:{if(e>>>0<=J[b+80>>2]-d>>2>>>0){break q}if((c|0)<0){break c}e=e<<2;c=oa(e);J[b+76>>2]=c;J[b+72>>2]=c;J[b+80>>2]=c+e;if(!d){break q}na(d)}J[b- -64>>2]=0;if(!kg(b)){b=oa(32);H[b+29|0]=0;d=K[1768]|K[1769]<<8|(K[1770]<<16|K[1771]<<24);c=K[1764]|K[1765]<<8|(K[1766]<<16|K[1767]<<24);H[b+21|0]=c;H[b+22|0]=c>>>8;H[b+23|0]=c>>>16;H[b+24|0]=c>>>24;H[b+25|0]=d;H[b+26|0]=d>>>8;H[b+27|0]=d>>>16;H[b+28|0]=d>>>24;d=K[1763]|K[1764]<<8|(K[1765]<<16|K[1766]<<24);c=K[1759]|K[1760]<<8|(K[1761]<<16|K[1762]<<24);H[b+16|0]=c;H[b+17|0]=c>>>8;H[b+18|0]=c>>>16;H[b+19|0]=c>>>24;H[b+20|0]=d;H[b+21|0]=d>>>8;H[b+22|0]=d>>>16;H[b+23|0]=d>>>24;d=K[1755]|K[1756]<<8|(K[1757]<<16|K[1758]<<24);c=K[1751]|K[1752]<<8|(K[1753]<<16|K[1754]<<24);H[b+8|0]=c;H[b+9|0]=c>>>8;H[b+10|0]=c>>>16;H[b+11|0]=c>>>24;H[b+12|0]=d;H[b+13|0]=d>>>8;H[b+14|0]=d>>>16;H[b+15|0]=d>>>24;d=K[1747]|K[1748]<<8|(K[1749]<<16|K[1750]<<24);c=K[1743]|K[1744]<<8|(K[1745]<<16|K[1746]<<24);H[b|0]=c;H[b+1|0]=c>>>8;H[b+2|0]=c>>>16;H[b+3|0]=c>>>24;H[b+4|0]=d;H[b+5|0]=d>>>8;H[b+6|0]=d>>>16;H[b+7|0]=d>>>24;J[a>>2]=-1;Ga(a+4|0,b,29);na(b);break d}g=0;c=b;r:{if(K[b+352|0]){break r}b=J[c+8>>2];e=J[b+12>>2]-J[b+8>>2]|0;f=e>>2;b=f-1|0;d=J[c+176>>2];h=J[c+172>>2];i=(d-h|0)/136|0;s:{if(b>>>0>i>>>0){cg(c+172|0,b-i|0);break s}if(b>>>0>=i>>>0){break s}i=h+P(b,136)|0;if((i|0)!=(d|0)){while(1){b=d-136|0;h=J[b+116>>2];if(h){J[d-16>>2]=h;na(h)}h=J[d-32>>2];if(h){J[d-28>>2]=h;na(h)}pc(d-132|0);d=b;if((b|0)!=(i|0)){continue}break}}J[c+176>>2]=i}if((e|0)==4|(e|0)<=0){break r}i=(f|0)<=1?1:f;d=0;t:{while(1){h=J[J[J[c+8>>2]+8>>2]+(d<<2)>>2];if(J[h+56>>2]){k=P(g,136);b=k+J[c+172>>2]|0;J[b>>2]=d;e=J[b+104>>2];J[b+108>>2]=e;f=J[c+12>>2];f=J[f+4>>2]-J[f>>2]|0;n=f>>2;u:{if(n>>>0<=J[b+112>>2]-e>>2>>>0){break u}if((f|0)<0){break t}f=oa(f);J[b+108>>2]=f;J[b+104>>2]=f;J[b+112>>2]=f+(n<<2);if(!e){break u}na(e)}b=k+J[c+172>>2]|0;J[b+128>>2]=0;lf(b+4|0,J[c+8>>2],J[c+12>>2],h);g=g+1|0}d=d+1|0;if((i|0)!=(d|0)){continue}break}break r}break c}b=(J[c+176>>2]-J[c+172>>2]|0)/136|0;H[l+31|0]=b;d=J[J[c+4>>2]+44>>2];e=J[d+20>>2];if(!J[d+16>>2]&(e|0)<=0|(e|0)<0){sa(d,J[d+4>>2],l+31|0,l+32|0);b=K[l+31|0]}J[c+284>>2]=b&255;b=J[c+12>>2];g=J[b>>2];b=J[b+4>>2];ig(j);e=0;J[l+24>>2]=0;J[l+16>>2]=0;J[l+20>>2]=0;d=0;v:{w:{x:{b=b-g|0;if((b|0)>0){b=b>>>2|0;p=b>>>0<=1?1:b;g=0;while(1){b=(g>>>0)/3|0;s=b>>>5<<2;t=1<>2]>>2]&t){break y}if(Fc(J[c+12>>2],b)){break y}J[l+8>>2]=0;b=hg(c,b,l+8|0);Ca(j,b);i=J[l+8>>2];if(b){h=-1;f=-1;k=-1;z:{if((i|0)==-1){break z}n=J[J[c+12>>2]>>2];b=n+(i<<2)|0;h=i+1|0;h=(h>>>0)%3|0?h:i-2|0;if((h|0)!=-1){f=J[n+(h<<2)>>2]}h=J[b>>2];A:{if((i>>>0)%3|0){b=i-1|0;break A}b=i+2|0;k=-1;if((b|0)==-1){break z}}k=J[n+(b<<2)>>2]}b=J[c+84>>2];n=b+(h>>>3&536870908)|0;J[n>>2]=J[n>>2]|1<>>3&536870908)|0;J[h>>2]=J[h>>2]|1<>>3&536870908)|0;J[b>>2]=J[b>>2]|1<>2];h=J[c+104>>2];B:{if(b>>>0>>0){J[b>>2]=1;J[c+100>>2]=b+4;break B}k=b;b=J[c+96>>2];k=k-b|0;n=k>>2;f=n+1|0;if(f>>>0>=1073741824){break c}r=n<<2;h=h-b|0;n=h>>>1|0;f=h>>>0>=2147483644?1073741823:f>>>0>>0?n:f;if(f){if(f>>>0>=1073741824){break x}h=oa(f<<2)}else{h=0}n=r+h|0;J[n>>2]=1;r=f<<2;f=ta(h,b,k);J[c+104>>2]=r+f;J[c+100>>2]=n+4;J[c+96>>2]=f;if(!b){break B}na(b)}b=s+J[m>>2]|0;J[b>>2]=t|J[b>>2];h=-1;if((i|0)!=-1){b=i+1|0;h=(b>>>0)%3|0?b:i-2|0}C:{if(e>>>0>>0){J[e>>2]=h;e=e+4|0;J[l+20>>2]=e;break C}f=e-d>>2;b=f+1|0;if(b>>>0>=1073741824){break c}k=o-d|0;o=k>>>1|0;b=k>>>0>=2147483644?1073741823:b>>>0>>0?o:b;if(b){if(b>>>0>=1073741824){break x}k=oa(b<<2)}else{k=0}f=k+(f<<2)|0;J[f>>2]=h;o=k+(b<<2)|0;b=f+4|0;if((d|0)!=(e|0)){while(1){f=f-4|0;e=e-4|0;J[f>>2]=J[e>>2];if((d|0)!=(e|0)){continue}break}}J[l+24>>2]=o;J[l+20>>2]=b;J[l+16>>2]=f;if(d){na(d)}d=f;e=b}if((i|0)==-1){break y}b=i+1|0;b=(b>>>0)%3|0?b:i-2|0;if((b|0)==-1){break y}b=J[J[J[c+12>>2]+12>>2]+(b<<2)>>2];if((b|0)==-1){break y}f=(b>>>0)/3|0;if(J[J[m>>2]+(f>>>3&268435452)>>2]>>>f&1){break y}if(_f(c,b)){break y}break w}if((i|0)!=-1){b=i+1|0;b=(b>>>0)%3|0?b:i-2|0}else{b=-1}Hc(c,b,1);if(!_f(c,J[l+8>>2])){break w}}g=g+1|0;if((p|0)!=(g|0)){continue}break}}g=J[c+72>>2];b=J[c+76>>2];D:{if((g|0)==(b|0)){break D}f=b-4|0;if(g>>>0>=f>>>0){break D}while(1){i=J[g>>2];J[g>>2]=J[f>>2];J[f>>2]=i;f=f-4|0;g=g+4|0;if(f>>>0>g>>>0){continue}break}}fg(q,b,d,e);E:{if(J[c+172>>2]==J[c+176>>2]){break E}b=J[c+8>>2];e=J[b+100>>2];b=J[b+96>>2];H[l+8|0]=0;Na(m,(e-b|0)/12|0,l+8|0);g=J[c+72>>2];b=J[c+76>>2];if((g|0)==(b|0)){break E}while(1){eg(c,J[g>>2]);g=g+4|0;if((b|0)!=(g|0)){continue}break}}m=0;g=0;b=j+32|0;ya(j,b);if(!(!J[j+80>>2]|J[j+84>>2]<=0)){while(1){ya(J[j+80>>2]+(m<<5)|0,b);m=m+1|0;if((m|0)>2]){continue}break}}m=J[j+136>>2];if((m|0)!=J[j+140>>2]){while(1){e=P(g,12);f=e+m|0;Aa(J[f+4>>2]-J[f>>2]>>2,b);m=J[j+136>>2];e=e+m|0;f=J[e+4>>2];e=J[e>>2];if((f|0)!=(e|0)){ee(e,f-e>>2,1,0,b);m=J[j+136>>2]}g=g+1|0;if(g>>>0<(J[j+140>>2]-m|0)/12>>>0){continue}break}}Aa(J[c+324>>2],J[J[c+4>>2]+44>>2]);Aa(J[c+168>>2],J[J[c+4>>2]+44>>2]);if(!dg(c)){b=oa(32);H[b+28|0]=0;c=K[1909]|K[1910]<<8|(K[1911]<<16|K[1912]<<24);H[b+24|0]=c;H[b+25|0]=c>>>8;H[b+26|0]=c>>>16;H[b+27|0]=c>>>24;c=K[1905]|K[1906]<<8|(K[1907]<<16|K[1908]<<24);e=K[1901]|K[1902]<<8|(K[1903]<<16|K[1904]<<24);H[b+16|0]=e;H[b+17|0]=e>>>8;H[b+18|0]=e>>>16;H[b+19|0]=e>>>24;H[b+20|0]=c;H[b+21|0]=c>>>8;H[b+22|0]=c>>>16;H[b+23|0]=c>>>24;c=K[1897]|K[1898]<<8|(K[1899]<<16|K[1900]<<24);e=K[1893]|K[1894]<<8|(K[1895]<<16|K[1896]<<24);H[b+8|0]=e;H[b+9|0]=e>>>8;H[b+10|0]=e>>>16;H[b+11|0]=e>>>24;H[b+12|0]=c;H[b+13|0]=c>>>8;H[b+14|0]=c>>>16;H[b+15|0]=c>>>24;c=K[1889]|K[1890]<<8|(K[1891]<<16|K[1892]<<24);e=K[1885]|K[1886]<<8|(K[1887]<<16|K[1888]<<24);H[b|0]=e;H[b+1|0]=e>>>8;H[b+2|0]=e>>>16;H[b+3|0]=e>>>24;H[b+4|0]=c;H[b+5|0]=c>>>8;H[b+6|0]=c>>>16;H[b+7|0]=c>>>24;J[a>>2]=-1;Ga(a+4|0,b,28);na(b);break v}b=J[J[c+4>>2]+44>>2];e=J[b+20>>2];if(!J[b+16>>2]&(e|0)<=0|(e|0)<0){sa(b,J[b+4>>2],J[c+232>>2],J[c+236>>2])}J[a>>2]=0;J[a+4>>2]=0;J[a+8>>2]=0;J[a+12>>2]=0;break v}xa();B()}b=oa(48);H[b+32|0]=0;c=K[1703]|K[1704]<<8|(K[1705]<<16|K[1706]<<24);e=K[1699]|K[1700]<<8|(K[1701]<<16|K[1702]<<24);H[b+24|0]=e;H[b+25|0]=e>>>8;H[b+26|0]=e>>>16;H[b+27|0]=e>>>24;H[b+28|0]=c;H[b+29|0]=c>>>8;H[b+30|0]=c>>>16;H[b+31|0]=c>>>24;c=K[1695]|K[1696]<<8|(K[1697]<<16|K[1698]<<24);e=K[1691]|K[1692]<<8|(K[1693]<<16|K[1694]<<24);H[b+16|0]=e;H[b+17|0]=e>>>8;H[b+18|0]=e>>>16;H[b+19|0]=e>>>24;H[b+20|0]=c;H[b+21|0]=c>>>8;H[b+22|0]=c>>>16;H[b+23|0]=c>>>24;c=K[1687]|K[1688]<<8|(K[1689]<<16|K[1690]<<24);e=K[1683]|K[1684]<<8|(K[1685]<<16|K[1686]<<24);H[b+8|0]=e;H[b+9|0]=e>>>8;H[b+10|0]=e>>>16;H[b+11|0]=e>>>24;H[b+12|0]=c;H[b+13|0]=c>>>8;H[b+14|0]=c>>>16;H[b+15|0]=c>>>24;c=K[1679]|K[1680]<<8|(K[1681]<<16|K[1682]<<24);e=K[1675]|K[1676]<<8|(K[1677]<<16|K[1678]<<24);H[b|0]=e;H[b+1|0]=e>>>8;H[b+2|0]=e>>>16;H[b+3|0]=e>>>24;H[b+4|0]=c;H[b+5|0]=c>>>8;H[b+6|0]=c>>>16;H[b+7|0]=c>>>24;J[a>>2]=-1;Ga(a+4|0,b,32);na(b)}if(!d){break d}na(d)}ba=l+32|0;return}qa();B()}function el(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,C=0,D=0,E=0,F=0,G=0,I=0,L=0,M=0,N=0,O=0,Q=0,S=0,U=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,da=0,ea=0,fa=0;i=ba-224|0;ba=i;J[a+8>>2]=e;C=a+32|0;h=J[C>>2];f=J[a+36>>2]-h>>2;a:{if(f>>>0>>0){Fa(C,e-f|0);break a}if(e>>>0>=f>>>0){break a}J[a+36>>2]=h+(e<<2)}b:{if(!d){break b}g=J[b>>2];c:{if((d|0)<2){d=g;break c}h=1;f=d-1|0;s=f&1;d:{if((d|0)==2){d=g;break d}y=f&-2;d=g;while(1){j=(h<<2)+b|0;f=J[j+4>>2];j=J[j>>2];l=(j|0)<(d|0);d=l?j:d;t=(d|0)>(f|0);d=t?f:d;j=l?g:(g|0)<(j|0)?j:g;g=t?j:(f|0)>(j|0)?f:j;h=h+2|0;k=k+2|0;if((y|0)!=(k|0)){continue}break}}if(!s){break c}f=J[(h<<2)+b>>2];h=(f|0)<(d|0);d=h?f:d;g=h?g:(f|0)>(g|0)?f:g}J[a+16>>2]=g;J[a+12>>2]=d;f=g-d|0;d=(g>>31)-((d>>31)+(d>>>0>g>>>0)|0)|0;if(!d&f>>>0>2147483646|d){break b}d=f+1|0;J[a+20>>2]=d;f=d>>>1|0;J[a+24>>2]=f;J[a+28>>2]=0-f;if(d&1){break b}J[a+24>>2]=f-1}Z=J[a+52>>2];z=J[a+48>>2];J[i+184>>2]=0;J[i+188>>2]=0;J[i+176>>2]=0;J[i+180>>2]=0;J[i+168>>2]=0;J[i+172>>2]=0;J[i+160>>2]=0;J[i+164>>2]=0;J[i+152>>2]=0;J[i+156>>2]=0;J[i+144>>2]=0;J[i+148>>2]=0;e:{if(!e){g=0;d=0;break e}Fa(i+144|0,e);g=J[i+156>>2];d=J[i+160>>2]}d=d-g>>2;f:{if(d>>>0>=e>>>0){if(d>>>0<=e>>>0){break f}J[i+160>>2]=(e<<2)+g;break f}Fa(i+144|12,e-d|0)}f=J[i+168>>2];d=J[i+172>>2]-f>>2;g:{if(d>>>0>=e>>>0){if(d>>>0<=e>>>0){break g}J[i+172>>2]=f+(e<<2);break g}Fa(i+168|0,e-d|0)}h:{i:{f=J[i+180>>2];d=J[i+184>>2]-f>>2;j:{k:{if(d>>>0>=e>>>0){if(d>>>0>e>>>0){J[i+184>>2]=f+(e<<2)}J[i+136>>2]=0;J[i+128>>2]=0;J[i+132>>2]=0;if(e){break k}d=1;break j}Fa(i+180|0,e-d|0);J[i+136>>2]=0;J[i+128>>2]=0;J[i+132>>2]=0}if(e>>>0>=1073741824){break i}d=e<<2;f=oa(d);J[i+128>>2]=f;h=d+f|0;J[i+136>>2]=h;pa(f,0,d);J[i+132>>2]=h;d=0}A=a+152|0;h=J[a+152>>2];f=J[a+156>>2]-h>>2;l:{m:{if(f>>>0>>0){Fa(A,e-f|0);J[i+104>>2]=0;J[i+108>>2]=0;J[i+96>>2]=0;J[i+100>>2]=0;J[i+88>>2]=0;J[i+92>>2]=0;J[i+80>>2]=0;J[i+84>>2]=0;J[i+72>>2]=0;J[i+76>>2]=0;d=i- -64|0;J[d>>2]=0;J[d+4>>2]=0;J[i+56>>2]=0;J[i+60>>2]=0;J[i+48>>2]=0;J[i+52>>2]=0;break m}if(e>>>0>>0){J[a+156>>2]=h+(e<<2)}J[i+104>>2]=0;J[i+108>>2]=0;J[i+96>>2]=0;J[i+100>>2]=0;J[i+88>>2]=0;J[i+92>>2]=0;J[i+80>>2]=0;J[i+84>>2]=0;J[i+72>>2]=0;J[i+76>>2]=0;f=i- -64|0;J[f>>2]=0;J[f+4>>2]=0;J[i+56>>2]=0;J[i+60>>2]=0;J[i+48>>2]=0;J[i+52>>2]=0;s=0;if(d){break l}}d=e<<2;q=oa(d);s=pa(q,0,d)+d|0}d=J[a+56>>2];d=J[d+4>>2]-J[d>>2]|0;if((d|0)<5){break h}L=e&-2;M=e&1;_=e&-4;S=e&3;N=e-1|0;U=e<<2;O=a+112|0;y=d>>>2|0;Q=s-q|0;D=Q>>2;X=(Q-4&-4)+4|0;$=i+36|0;aa=i+24|0;while(1){f=J[a+56>>2];d=J[f>>2];n:{o:{t=y-1|0;if(t>>>0>2]-d>>2>>>0){f=0;j=0;k=J[d+(t<<2)>>2];p:{if((k|0)==-1){break p}o=1;d=k+2|0;j=(k>>>0)%3|0;u=j?k-1|0:d;E=1<>2];G=l+(u>>>3&536870908)|0;h=0;I=(j|0)!=0|(d|0)!=-1;d=k;while(1){q:{if(J[l+(d>>>3&536870908)>>2]>>>d&1){break q}j=J[J[J[z+64>>2]+12>>2]+(d<<2)>>2];if((j|0)==-1){break q}n=J[Z>>2];g=J[z+28>>2];m=J[n+(J[g+(j<<2)>>2]<<2)>>2];if((m|0)>=(t|0)){break q}p=j+1|0;p=J[n+(J[g+(((p>>>0)%3|0?p:j-2|0)<<2)>>2]<<2)>>2];if((p|0)>=(t|0)){break q}g=J[n+(J[g+(j+((j>>>0)%3|0?-1:2)<<2)>>2]<<2)>>2];if((g|0)>=(t|0)){break q}r:{if(!e){break r}j=J[(i+144|0)+P(h,12)>>2];n=P(e,g);p=P(e,p);x=P(e,m);g=0;m=0;if(N){while(1){J[j+(g<<2)>>2]=(J[(g+n<<2)+b>>2]+J[(g+p<<2)+b>>2]|0)-J[(g+x<<2)+b>>2];w=g|1;J[j+(w<<2)>>2]=(J[(n+w<<2)+b>>2]+J[(p+w<<2)+b>>2]|0)-J[(x+w<<2)+b>>2];g=g+2|0;m=m+2|0;if((L|0)!=(m|0)){continue}break}}if(!M){break r}J[j+(g<<2)>>2]=(J[(g+n<<2)+b>>2]+J[(g+p<<2)+b>>2]|0)-J[(g+x<<2)+b>>2]}j=4;h=h+1|0;if((h|0)==4){break p}}s:{if(o&1){g=d-2|0;j=d+1|0;d=-1;j=(j>>>0)%3|0?j:g;if((j|0)==-1|J[l+(j>>>3&536870908)>>2]>>>j&1){break s}j=J[J[J[z+64>>2]+12>>2]+(j<<2)>>2];if((j|0)==-1){break s}d=j+1|0;d=(d>>>0)%3|0?d:j-2|0;break s}t:{if((d>>>0)%3|0){g=d-1|0;break t}g=d+2|0;d=-1;if((g|0)==-1){break s}}d=-1;if(J[l+(g>>>3&536870908)>>2]>>>g&1){break s}j=J[J[J[z+64>>2]+12>>2]+(g<<2)>>2];if((j|0)==-1){break s}if((j>>>0)%3|0){d=j-1|0;break s}d=j+2|0}if((d|0)==(k|0)){j=h;break p}if((d|0)==-1&o){if(!I){j=h;break p}if(E&J[G>>2]){j=h;break p}d=J[J[J[z+64>>2]+12>>2]+(u<<2)>>2];if((d|0)==-1){j=h;break p}o=0;d=(d>>>0)%3|0?d-1|0:d+2|0}j=h;if((d|0)!=-1){continue}break}}H[i+16|0]=0;J[i+8>>2]=0;J[i+12>>2]=0;J[i+44>>2]=0;J[i+36>>2]=0;J[i+40>>2]=0;J[i+28>>2]=0;J[i+32>>2]=0;J[i+20>>2]=0;J[i+24>>2]=0;I=P(e,t)<<2;x=I+b|0;k=(P(y-2|0,e)<<2)+b|0;l=J[A>>2];d=0;if(e){while(1){g=f<<2;h=J[g+k>>2]-J[g+x>>2]|0;J[g+q>>2]=h;J[g+l>>2]=(h|0)<0?(h^-1)<<1|1:h<<1;g=d;d=h>>31;d=g+((d^h)-d|0)|0;f=f+1|0;if((f|0)!=(e|0)){continue}break}}f=i+200|0;Db(f,O,l,e);l=Cb(f);h=J[f+12>>2];f=J[f+16>>2];h=(((h-f|0)+1|0)/64|0)+f<<3;n=f<<3;f=h+n|0;h=(h>>31)+(n>>31)|0;g=ca+(f>>>0>>0?h+1|0:h)|0;h=f;f=f+l|0;h=h>>>0>f>>>0?g+1|0:g;E=(j|0)<=0;if(!E){o=(j<<3)-8|0;g=o+(i+48|0)|0;n=g;l=J[g>>2];g=J[g+4>>2];l=j+l|0;g=l>>>0>>0?g+1|0:g;J[n>>2]=l;J[n+4>>2]=g;v=W(Eb(l,J[o+(i+80|0)>>2])*(+(l>>>0)+ +(g|0)*4294967296));u:{if(R(v)<0x8000000000000000){l=R(v)>=1?~~(v>0?T(V(v*2.3283064365386963e-10),4294967295):W((v-+(~~v>>>0>>>0))*2.3283064365386963e-10))>>>0:0;g=~~v>>>0;break u}l=-2147483648;g=0}f=f+g|0;h=f}J[i+20>>2]=0;H[i+16|0]=0;J[i+8>>2]=f;J[i+12>>2]=d;tc(aa,k,k+U|0);bb($,q,s);v:{w:{x:{if(E){break x}n=(i+124|0)+j|0;l=n-1|0;Y=j<<3;d=Y-8|0;G=d+(i+48|0)|0;da=d+(i+80|0)|0;o=1;w=0;while(1){d=i+124|0;pa(d,1,j);w=w+1|0;pa(d,0,w);y:{z:while(1){if(e){pa(J[i+128>>2],0,U)}m=0;d=J[i+128>>2];u=0;while(1){if(!K[(i+124|0)+m|0]){A:{if(!e){break A}f=J[(i+144|0)+P(m,12)>>2];h=0;g=0;k=0;if(e>>>0>3){while(1){p=g<<2;r=p+d|0;J[r>>2]=J[r>>2]+J[f+p>>2];r=p|4;F=r+d|0;J[F>>2]=J[F>>2]+J[f+r>>2];r=p|8;F=r+d|0;J[F>>2]=J[F>>2]+J[f+r>>2];p=p|12;r=p+d|0;J[r>>2]=J[r>>2]+J[f+p>>2];g=g+4|0;k=k+4|0;if((_|0)!=(k|0)){continue}break}}if(!S){break A}while(1){k=g<<2;p=k+d|0;J[p>>2]=J[p>>2]+J[f+k>>2];g=g+1|0;h=h+1|0;if((S|0)!=(h|0)){continue}break}}u=1<>2];B:{C:{D:{if(e){g=0;d=0;if(N){break D}break C}k=J[A>>2];h=0;break B}while(1){h=g<<2;k=h+f|0;J[k>>2]=J[k>>2]/(o|0);h=(h|4)+f|0;J[h>>2]=J[h>>2]/(o|0);g=g+2|0;d=d+2|0;if((L|0)!=(d|0)){continue}break}}if(M){d=(g<<2)+f|0;J[d>>2]=J[d>>2]/(o|0)}k=J[A>>2];f=J[i+128>>2];d=0;h=0;if(!e){break B}while(1){m=d<<2;g=J[m+f>>2]-J[m+x>>2]|0;J[m+q>>2]=g;J[k+m>>2]=(g|0)<0?(g^-1)<<1|1:g<<1;m=h;h=g>>31;h=m+((h^g)-h|0)|0;d=d+1|0;if((e|0)!=(d|0)){continue}break}}d=i+200|0;Db(d,O,k,e);k=Cb(d);g=J[d+12>>2];d=J[d+16>>2];g=(((g-d|0)+1|0)/64|0)+d<<3;m=d<<3;d=g+m|0;d=d+k|0;k=J[G+4>>2];g=J[G>>2];v=W(Eb(g,J[da>>2]+o|0)*(+(g>>>0)+ +(k|0)*4294967296));E:{if(R(v)<0x8000000000000000){g=~~v>>>0;break E}g=0}d=g+d|0;g=J[i+8>>2];if(!((d|0)>=(g|0)&((d|0)>(g|0)|(h|0)>=J[i+12>>2]))){J[i+20>>2]=o;H[i+16|0]=u;J[i+8>>2]=d;J[i+12>>2]=h;k=J[i+132>>2];m=k-f|0;g=m>>2;d=J[i+32>>2];h=J[i+24>>2];F:{if(g>>>0<=d-h>>2>>>0){m=J[i+28>>2]-h|0;d=m+f|0;u=m>>2;m=u>>>0>>0?d:k;p=m-f|0;if((f|0)!=(m|0)){ta(h,f,p)}if(g>>>0>u>>>0){g=J[i+28>>2];if((k|0)==(m|0)){break F}while(1){J[g>>2]=J[d>>2];g=g+4|0;d=d+4|0;if((k|0)!=(d|0)){continue}break}break F}g=h+p|0;break F}if(h){J[i+28>>2]=h;na(h);J[i+32>>2]=0;J[i+24>>2]=0;J[i+28>>2]=0;d=0}if((m|0)<0){break w}h=d>>>1|0;d=d>>>0>=2147483644?1073741823:g>>>0>>0?h:g;if(d>>>0>=1073741824){break w}d=d<<2;g=oa(d);J[i+24>>2]=g;J[i+32>>2]=d+g;if((f|0)==(k|0)){break F}d=(m-4&-4)+4|0;g=ua(g,f,d)+d|0}J[i+28>>2]=g;d=J[i+44>>2];f=J[i+36>>2];G:{if(d-f>>2>>>0>=D>>>0){h=J[i+40>>2]-f|0;d=h+q|0;k=h>>2;h=k>>>0>>0?d:s;g=h-q|0;if((h|0)!=(q|0)){ta(f,q,g)}if(k>>>0>>0){g=J[i+40>>2];if((h|0)==(s|0)){break G}while(1){J[g>>2]=J[d>>2];g=g+4|0;d=d+4|0;if((s|0)!=(d|0)){continue}break}break G}g=f+g|0;break G}if(f){J[i+40>>2]=f;na(f);J[i+44>>2]=0;J[i+36>>2]=0;J[i+40>>2]=0;d=0}if((Q|0)<0){break v}f=d>>>1|0;d=d>>>0>=2147483644?1073741823:f>>>0>D>>>0?f:D;if(d>>>0>=1073741824){break v}d=d<<2;g=oa(d);J[i+36>>2]=g;J[i+44>>2]=d+g;if((q|0)==(s|0)){break G}g=ua(g,q,X)+X|0}J[i+40>>2]=g}if((l|0)==(i+124|0)){break y}g=K[l|0];d=-1;while(1){k=g&255;f=d-1|0;h=f+n|0;g=K[h|0];if(k>>>0>g>>>0){f=n;while(1){f=f-1|0;k=K[f|0];if(k>>>0<=g>>>0){continue}break}H[h|0]=k;H[f|0]=g;if((d|0)==-1){continue z}g=d+n|0;d=l;while(1){f=K[g|0];H[g|0]=K[d|0];H[d|0]=f;d=d-1|0;g=g+1|0;if(d>>>0>g>>>0){continue}break}continue z}d=f;if((h|0)!=(i+124|0)){continue}break}break}f=i+124|0;g=f;d=l;if(f>>>0>=d>>>0){break y}while(1){f=K[g|0];H[g|0]=K[d|0];H[d|0]=f;d=d-1|0;g=g+1|0;if(d>>>0>g>>>0){continue}break}}o=o+1|0;if((j|0)!=(w|0)){continue}break}if((j|0)<=0){break x}h=J[i+20>>2];g=h;d=i+Y|0;f=g+J[d+72>>2]|0;h=J[d+76>>2]+(g>>31)|0;J[d+72>>2]=f;J[d+76>>2]=f>>>0>>0?h+1|0:h}if(!e){break n}d=J[A>>2];g=0;f=J[i+36>>2];k=0;if(!N){break o}while(1){l=g<<2;h=J[l+f>>2];J[d+l>>2]=(h|0)<0?(h^-1)<<1|1:h<<1;l=l|4;h=J[l+f>>2];J[d+l>>2]=(h|0)<0?(h^-1)<<1|1:h<<1;g=g+2|0;k=k+2|0;if((L|0)!=(k|0)){continue}break}break o}qa();B()}qa();B()}ra();B()}if(!M){break n}h=g<<2;f=J[h+f>>2];J[d+h>>2]=(f|0)<0?(f^-1)<<1|1:f<<1}Nc(i+200|0,O,J[A>>2],e);H:{if(E){break H}g=P(j,12)+a|0;d=0;while(1){I:{k=J[g+56>>2];l=k<<5;f=J[g+52>>2];J:{if(!(K[i+16|0]>>>d&1)){h=f;K:{if((f|0)!=(l|0)){break K}if((f+1|0)<0){break I}L:{if(f>>>0<=1073741822){k=k<<6;l=(f&-32)+32|0;l=k>>>0>l>>>0?k:l;h=f;if(f>>>0>=l>>>0){break K}if((l|0)>=0){break L}break I}l=2147483647;h=-1;if(f>>>0>=2147483647){break K}}l=(l-1>>>5|0)+1|0;h=oa(l<<2);k=J[g+48>>2];J[h+((f>>>0>=33?f-1>>>5|0:0)<<2)>>2]=0;M:{N:{if(!f){break N}n=f>>>5|0;if(f>>>0>=32){ta(h,k,n<<2)}o=f&31;if(!o){break N}n=n<<2;m=n+h|0;o=-1>>>32-o|0;J[m>>2]=J[m>>2]&(o^-1)|o&J[k+n>>2];J[g+48>>2]=h;J[g+52>>2]=f;J[g+56>>2]=l;break M}J[g+48>>2]=h;J[g+52>>2]=f;J[g+56>>2]=l;h=f;if(!k){break K}}na(k);h=J[g+52>>2]}J[g+52>>2]=h+1;f=J[g+48>>2]+(h>>>3&536870908)|0;J[f>>2]=J[f>>2]|1<>>0<=1073741822){k=k<<6;l=(f&-32)+32|0;l=k>>>0>l>>>0?k:l;h=f;if(f>>>0>=l>>>0){break O}if((l|0)<0){break I}break P}l=2147483647;h=-1;if(f>>>0>=2147483647){break O}}l=(l-1>>>5|0)+1|0;h=oa(l<<2);k=J[g+48>>2];J[h+((f>>>0>=33?f-1>>>5|0:0)<<2)>>2]=0;Q:{R:{if(!f){break R}n=f>>>5|0;if(f>>>0>=32){ta(h,k,n<<2)}o=f&31;if(!o){break R}n=n<<2;m=n+h|0;o=-1>>>32-o|0;J[m>>2]=J[m>>2]&(o^-1)|o&J[k+n>>2];J[g+48>>2]=h;J[g+52>>2]=f;J[g+56>>2]=l;break Q}J[g+48>>2]=h;J[g+52>>2]=f;J[g+56>>2]=l;h=f;if(!k){break O}}na(k);h=J[g+52>>2]}J[g+52>>2]=h+1;f=J[g+48>>2]+(h>>>3&536870908)|0;k=J[f>>2];ea=f,fa=Ll(h)&k,J[ea>>2]=fa}d=d+1|0;if((j|0)!=(d|0)){continue}break H}break}qa();B()}g=J[a+8>>2];if((g|0)>0){n=c+I|0;d=J[C>>2];l=0;k=J[i+24>>2];while(1){h=d;if((g|0)>0){h=J[C>>2];g=0;while(1){f=g<<2;j=J[f+k>>2];o=J[a+16>>2];S:{if((j|0)>(o|0)){J[f+h>>2]=o;break S}f=f+h|0;o=J[a+12>>2];if((o|0)>(j|0)){J[f>>2]=o;break S}J[f>>2]=j}g=g+1|0;if((g|0)>2]){continue}break}}j=l<<2;f=j+n|0;j=J[j+x>>2]-J[h+j>>2]|0;J[f>>2]=j;T:{if((j|0)>2]){g=j+J[a+20>>2]|0}else{if((j|0)<=J[a+24>>2]){break T}g=j-J[a+20>>2]|0}J[f>>2]=g}k=h;g=J[a+8>>2];l=l+1|0;if((g|0)>(l|0)){continue}break}}d=J[i+36>>2];if(d){J[i+40>>2]=d;na(d)}d=J[i+24>>2];if(d){J[i+28>>2]=d;na(d)}d=(y|0)>2;y=t;if(d){continue}break}break h}qa();B()}if((e|0)>0){pa(J[i+144>>2],0,e<<2)}g=J[a+8>>2];if((g|0)>0){d=J[a+32>>2];l=0;k=J[i+144>>2];while(1){h=d;if((g|0)>0){h=J[C>>2];g=0;while(1){e=g<<2;f=J[e+k>>2];j=J[a+16>>2];U:{if((f|0)>(j|0)){J[e+h>>2]=j;break U}e=e+h|0;j=J[a+12>>2];if((j|0)>(f|0)){J[e>>2]=j;break U}J[e>>2]=f}g=g+1|0;if((g|0)>2]){continue}break}}f=l<<2;e=f+c|0;f=J[b+f>>2]-J[f+h>>2]|0;J[e>>2]=f;V:{if((f|0)>2]){f=f+J[a+20>>2]|0}else{if((f|0)<=J[a+24>>2]){break V}f=f-J[a+20>>2]|0}J[e>>2]=f}k=h;g=J[a+8>>2];l=l+1|0;if((g|0)>(l|0)){continue}break}}if(q){na(q)}a=J[i+128>>2];if(a){J[i+132>>2]=a;na(a)}a=J[i+180>>2];if(a){J[i+184>>2]=a;na(a)}a=J[i+168>>2];if(a){J[i+172>>2]=a;na(a)}a=J[i+156>>2];if(a){J[i+160>>2]=a;na(a)}a=J[i+144>>2];if(a){J[i+148>>2]=a;na(a)}ba=i+224|0;return 1}function Wk(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,C=0,D=0,E=0,F=0,G=0,I=0,L=0,M=0,N=0,O=0,Q=0,S=0,U=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,da=0,ea=0,fa=0;i=ba-224|0;ba=i;J[a+8>>2]=e;z=a+32|0;h=J[z>>2];f=J[a+36>>2]-h>>2;a:{if(f>>>0>>0){Fa(z,e-f|0);break a}if(e>>>0>=f>>>0){break a}J[a+36>>2]=h+(e<<2)}b:{if(!d){break b}g=J[b>>2];c:{if((d|0)<2){d=g;break c}h=1;f=d-1|0;w=f&1;d:{if((d|0)==2){d=g;break d}u=f&-2;d=g;while(1){j=(h<<2)+b|0;f=J[j+4>>2];j=J[j>>2];l=(j|0)<(d|0);d=l?j:d;m=(d|0)>(f|0);d=m?f:d;j=l?g:(g|0)<(j|0)?j:g;g=m?j:(f|0)>(j|0)?f:j;h=h+2|0;k=k+2|0;if((u|0)!=(k|0)){continue}break}}if(!w){break c}f=J[(h<<2)+b>>2];h=(f|0)<(d|0);d=h?f:d;g=h?g:(f|0)>(g|0)?f:g}J[a+16>>2]=g;J[a+12>>2]=d;f=g-d|0;d=(g>>31)-((d>>31)+(d>>>0>g>>>0)|0)|0;if(!d&f>>>0>2147483646|d){break b}d=f+1|0;J[a+20>>2]=d;f=d>>>1|0;J[a+24>>2]=f;J[a+28>>2]=0-f;if(d&1){break b}J[a+24>>2]=f-1}Z=J[a+52>>2];N=J[a+48>>2];J[i+184>>2]=0;J[i+188>>2]=0;J[i+176>>2]=0;J[i+180>>2]=0;J[i+168>>2]=0;J[i+172>>2]=0;J[i+160>>2]=0;J[i+164>>2]=0;J[i+152>>2]=0;J[i+156>>2]=0;J[i+144>>2]=0;J[i+148>>2]=0;e:{if(!e){g=0;d=0;break e}Fa(i+144|0,e);g=J[i+156>>2];d=J[i+160>>2]}d=d-g>>2;f:{if(d>>>0>=e>>>0){if(d>>>0<=e>>>0){break f}J[i+160>>2]=(e<<2)+g;break f}Fa(i+144|12,e-d|0)}f=J[i+168>>2];d=J[i+172>>2]-f>>2;g:{if(d>>>0>=e>>>0){if(d>>>0<=e>>>0){break g}J[i+172>>2]=f+(e<<2);break g}Fa(i+168|0,e-d|0)}h:{i:{f=J[i+180>>2];d=J[i+184>>2]-f>>2;j:{k:{if(d>>>0>=e>>>0){if(d>>>0>e>>>0){J[i+184>>2]=f+(e<<2)}J[i+136>>2]=0;J[i+128>>2]=0;J[i+132>>2]=0;if(e){break k}d=1;break j}Fa(i+180|0,e-d|0);J[i+136>>2]=0;J[i+128>>2]=0;J[i+132>>2]=0}if(e>>>0>=1073741824){break i}d=e<<2;f=oa(d);J[i+128>>2]=f;h=d+f|0;J[i+136>>2]=h;pa(f,0,d);J[i+132>>2]=h;d=0}x=a+152|0;h=J[a+152>>2];f=J[a+156>>2]-h>>2;l:{m:{if(f>>>0>>0){Fa(x,e-f|0);J[i+104>>2]=0;J[i+108>>2]=0;J[i+96>>2]=0;J[i+100>>2]=0;J[i+88>>2]=0;J[i+92>>2]=0;J[i+80>>2]=0;J[i+84>>2]=0;J[i+72>>2]=0;J[i+76>>2]=0;d=i- -64|0;J[d>>2]=0;J[d+4>>2]=0;J[i+56>>2]=0;J[i+60>>2]=0;J[i+48>>2]=0;J[i+52>>2]=0;break m}if(e>>>0>>0){J[a+156>>2]=h+(e<<2)}J[i+104>>2]=0;J[i+108>>2]=0;J[i+96>>2]=0;J[i+100>>2]=0;J[i+88>>2]=0;J[i+92>>2]=0;J[i+80>>2]=0;J[i+84>>2]=0;J[i+72>>2]=0;J[i+76>>2]=0;f=i- -64|0;J[f>>2]=0;J[f+4>>2]=0;J[i+56>>2]=0;J[i+60>>2]=0;J[i+48>>2]=0;J[i+52>>2]=0;u=0;if(d){break l}}d=e<<2;r=oa(d);u=pa(r,0,d)+d|0}d=J[a+56>>2];d=J[d+4>>2]-J[d>>2]|0;if((d|0)<5){break h}F=e&-2;G=e&1;_=e&-4;O=e&3;I=e-1|0;Q=e<<2;L=a+112|0;E=d>>>2|0;M=u-r|0;A=M>>2;S=(M-4&-4)+4|0;$=i+36|0;aa=i+24|0;while(1){f=J[a+56>>2];d=J[f>>2];n:{o:{w=E-1|0;if(w>>>0>2]-d>>2>>>0){f=0;l=0;d=J[d+(w<<2)>>2];p:{if((d|0)==-1){break p}m=J[N+12>>2];h=d+2|0;l=(d>>>0)%3|0;y=m+((l?d-1|0:h)<<2)|0;j=0;C=(l|0)!=0|(h|0)!=-1;q=1;h=d;while(1){l=J[m+(h<<2)>>2];q:{if((l|0)==-1){break q}k=-1;p=J[Z>>2];n=J[N>>2];g=p+(J[n+(l<<2)>>2]<<2)|0;o=l+1|0;o=(o>>>0)%3|0?o:l-2|0;if((o|0)!=-1){k=J[n+(o<<2)>>2]}o=J[g>>2];r:{s:{if((l>>>0)%3|0){g=l-1|0;break s}g=l+2|0;s=-1;if((g|0)==-1){break r}}s=J[n+(g<<2)>>2]}if((o|0)>=(w|0)){break q}g=J[p+(k<<2)>>2];if((g|0)>=(w|0)){break q}k=J[p+(s<<2)>>2];if((k|0)>=(w|0)){break q}l=J[(i+144|0)+P(j,12)>>2];t:{if(!e){break t}k=P(e,k);n=P(e,g);o=P(e,o);g=0;p=0;if(I){while(1){J[l+(g<<2)>>2]=(J[(g+k<<2)+b>>2]+J[(g+n<<2)+b>>2]|0)-J[(g+o<<2)+b>>2];s=g|1;J[l+(s<<2)>>2]=(J[(k+s<<2)+b>>2]+J[(n+s<<2)+b>>2]|0)-J[(o+s<<2)+b>>2];g=g+2|0;p=p+2|0;if((F|0)!=(p|0)){continue}break}}if(!G){break t}J[l+(g<<2)>>2]=(J[(g+k<<2)+b>>2]+J[(g+n<<2)+b>>2]|0)-J[(g+o<<2)+b>>2]}l=4;j=j+1|0;if((j|0)==4){break p}}u:{if(q&1){g=h+1|0;h=(g>>>0)%3|0?g:h-2|0;l=-1;if((h|0)==-1){break u}h=J[m+(h<<2)>>2];l=-1;if((h|0)==-1){break u}l=h+1|0;l=(l>>>0)%3|0?l:h-2|0;break u}v:{if((h>>>0)%3|0){g=h-1|0;break v}g=h+2|0;l=-1;if((g|0)==-1){break u}}h=J[m+(g<<2)>>2];l=-1;if((h|0)==-1){break u}l=h-1|0;if((h>>>0)%3|0){break u}l=h+2|0}h=l;if((d|0)==(h|0)){l=j;break p}if((h|0)==-1&q){if(!C){l=j;break p}h=J[y>>2];if((h|0)==-1){l=j;break p}q=0;h=(h>>>0)%3|0?h-1|0:h+2|0}l=j;if((h|0)!=-1){continue}break}}H[i+16|0]=0;J[i+8>>2]=0;J[i+12>>2]=0;J[i+44>>2]=0;J[i+36>>2]=0;J[i+40>>2]=0;J[i+28>>2]=0;J[i+32>>2]=0;J[i+20>>2]=0;J[i+24>>2]=0;U=P(e,w)<<2;s=U+b|0;k=(P(E-2|0,e)<<2)+b|0;g=J[x>>2];d=0;if(e){while(1){j=f<<2;h=J[j+k>>2]-J[j+s>>2]|0;J[j+r>>2]=h;J[g+j>>2]=(h|0)<0?(h^-1)<<1|1:h<<1;j=d;d=h>>31;d=j+((d^h)-d|0)|0;f=f+1|0;if((f|0)!=(e|0)){continue}break}}f=i+200|0;Db(f,L,g,e);j=Cb(f);h=J[f+12>>2];f=J[f+16>>2];h=(((h-f|0)+1|0)/64|0)+f<<3;m=f<<3;f=h+m|0;h=(h>>31)+(m>>31)|0;g=ca+(f>>>0>>0?h+1|0:h)|0;h=f;f=f+j|0;h=h>>>0>f>>>0?g+1|0:g;C=(l|0)<=0;if(!C){n=(l<<3)-8|0;j=n+(i+48|0)|0;m=j;g=J[j>>2];j=J[j+4>>2];g=g+l|0;j=g>>>0>>0?j+1|0:j;J[m>>2]=g;J[m+4>>2]=j;v=W(Eb(g,J[n+(i+80|0)>>2])*(+(g>>>0)+ +(j|0)*4294967296));w:{if(R(v)<0x8000000000000000){g=R(v)>=1?~~(v>0?T(V(v*2.3283064365386963e-10),4294967295):W((v-+(~~v>>>0>>>0))*2.3283064365386963e-10))>>>0:0;j=~~v>>>0;break w}g=-2147483648;j=0}f=f+j|0;h=f}J[i+20>>2]=0;H[i+16|0]=0;J[i+8>>2]=f;J[i+12>>2]=d;tc(aa,k,k+Q|0);bb($,r,u);x:{y:{z:{if(C){break z}n=(i+124|0)+l|0;m=n-1|0;X=l<<3;d=X-8|0;Y=d+(i+48|0)|0;da=d+(i+80|0)|0;q=1;y=0;while(1){d=i+124|0;pa(d,1,l);y=y+1|0;pa(d,0,y);A:{B:while(1){if(e){pa(J[i+128>>2],0,Q)}p=0;d=J[i+128>>2];j=0;while(1){if(!K[(i+124|0)+p|0]){C:{if(!e){break C}f=J[(i+144|0)+P(p,12)>>2];h=0;g=0;k=0;if(e>>>0>3){while(1){o=g<<2;t=o+d|0;J[t>>2]=J[t>>2]+J[f+o>>2];t=o|4;D=t+d|0;J[D>>2]=J[D>>2]+J[f+t>>2];t=o|8;D=t+d|0;J[D>>2]=J[D>>2]+J[f+t>>2];o=o|12;t=o+d|0;J[t>>2]=J[t>>2]+J[f+o>>2];g=g+4|0;k=k+4|0;if((_|0)!=(k|0)){continue}break}}if(!O){break C}while(1){k=g<<2;o=k+d|0;J[o>>2]=J[o>>2]+J[f+k>>2];g=g+1|0;h=h+1|0;if((O|0)!=(h|0)){continue}break}}j=1<>2];D:{E:{F:{if(e){g=0;d=0;if(I){break F}break E}k=J[x>>2];h=0;break D}while(1){h=g<<2;k=h+f|0;J[k>>2]=J[k>>2]/(q|0);h=(h|4)+f|0;J[h>>2]=J[h>>2]/(q|0);g=g+2|0;d=d+2|0;if((F|0)!=(d|0)){continue}break}}if(G){d=(g<<2)+f|0;J[d>>2]=J[d>>2]/(q|0)}k=J[x>>2];f=J[i+128>>2];d=0;h=0;if(!e){break D}while(1){p=d<<2;g=J[p+f>>2]-J[p+s>>2]|0;J[p+r>>2]=g;J[k+p>>2]=(g|0)<0?(g^-1)<<1|1:g<<1;o=h;h=g>>31;h=o+((h^g)-h|0)|0;d=d+1|0;if((e|0)!=(d|0)){continue}break}}d=i+200|0;Db(d,L,k,e);k=Cb(d);g=J[d+12>>2];d=J[d+16>>2];g=(((g-d|0)+1|0)/64|0)+d<<3;p=d<<3;d=g+p|0;d=d+k|0;k=J[Y+4>>2];g=J[Y>>2];v=W(Eb(g,J[da>>2]+q|0)*(+(g>>>0)+ +(k|0)*4294967296));G:{if(R(v)<0x8000000000000000){g=~~v>>>0;break G}g=0}d=g+d|0;g=J[i+8>>2];if(!((d|0)>=(g|0)&((d|0)>(g|0)|(h|0)>=J[i+12>>2]))){J[i+20>>2]=q;H[i+16|0]=j;J[i+8>>2]=d;J[i+12>>2]=h;j=J[i+132>>2];k=j-f|0;g=k>>2;d=J[i+32>>2];h=J[i+24>>2];H:{if(g>>>0<=d-h>>2>>>0){k=J[i+28>>2]-h|0;d=k+f|0;o=k>>2;k=o>>>0>>0?d:j;p=k-f|0;if((f|0)!=(k|0)){ta(h,f,p)}if(g>>>0>o>>>0){g=J[i+28>>2];if((j|0)==(k|0)){break H}while(1){J[g>>2]=J[d>>2];g=g+4|0;d=d+4|0;if((j|0)!=(d|0)){continue}break}break H}g=h+p|0;break H}if(h){J[i+28>>2]=h;na(h);J[i+32>>2]=0;J[i+24>>2]=0;J[i+28>>2]=0;d=0}if((k|0)<0){break y}h=d>>>1|0;d=d>>>0>=2147483644?1073741823:g>>>0>>0?h:g;if(d>>>0>=1073741824){break y}d=d<<2;g=oa(d);J[i+24>>2]=g;J[i+32>>2]=d+g;if((f|0)==(j|0)){break H}d=(k-4&-4)+4|0;g=ua(g,f,d)+d|0}J[i+28>>2]=g;d=J[i+44>>2];f=J[i+36>>2];I:{if(d-f>>2>>>0>=A>>>0){h=J[i+40>>2]-f|0;d=h+r|0;g=h>>2;h=g>>>0>>0?d:u;j=h-r|0;if((h|0)!=(r|0)){ta(f,r,j)}if(g>>>0>>0){g=J[i+40>>2];if((h|0)==(u|0)){break I}while(1){J[g>>2]=J[d>>2];g=g+4|0;d=d+4|0;if((u|0)!=(d|0)){continue}break}break I}g=f+j|0;break I}if(f){J[i+40>>2]=f;na(f);J[i+44>>2]=0;J[i+36>>2]=0;J[i+40>>2]=0;d=0}if((M|0)<0){break x}f=d>>>1|0;d=d>>>0>=2147483644?1073741823:f>>>0>A>>>0?f:A;if(d>>>0>=1073741824){break x}d=d<<2;g=oa(d);J[i+36>>2]=g;J[i+44>>2]=d+g;if((r|0)==(u|0)){break I}g=ua(g,r,S)+S|0}J[i+40>>2]=g}if((m|0)==(i+124|0)){break A}g=K[m|0];d=-1;while(1){j=g&255;f=d-1|0;h=f+n|0;g=K[h|0];if(j>>>0>g>>>0){f=n;while(1){f=f-1|0;j=K[f|0];if(j>>>0<=g>>>0){continue}break}H[h|0]=j;H[f|0]=g;if((d|0)==-1){continue B}g=d+n|0;d=m;while(1){f=K[g|0];H[g|0]=K[d|0];H[d|0]=f;d=d-1|0;g=g+1|0;if(d>>>0>g>>>0){continue}break}continue B}d=f;if((h|0)!=(i+124|0)){continue}break}break}f=i+124|0;g=f;d=m;if(f>>>0>=d>>>0){break A}while(1){f=K[g|0];H[g|0]=K[d|0];H[d|0]=f;d=d-1|0;g=g+1|0;if(d>>>0>g>>>0){continue}break}}q=q+1|0;if((l|0)!=(y|0)){continue}break}if((l|0)<=0){break z}h=J[i+20>>2];j=h;d=i+X|0;f=h+J[d+72>>2]|0;h=J[d+76>>2]+(h>>31)|0;J[d+72>>2]=f;J[d+76>>2]=f>>>0>>0?h+1|0:h}if(!e){break n}d=J[x>>2];g=0;f=J[i+36>>2];k=0;if(!I){break o}while(1){j=g<<2;h=J[j+f>>2];J[d+j>>2]=(h|0)<0?(h^-1)<<1|1:h<<1;j=j|4;h=J[j+f>>2];J[d+j>>2]=(h|0)<0?(h^-1)<<1|1:h<<1;g=g+2|0;k=k+2|0;if((F|0)!=(k|0)){continue}break}break o}qa();B()}qa();B()}ra();B()}if(!G){break n}h=g<<2;f=J[h+f>>2];J[d+h>>2]=(f|0)<0?(f^-1)<<1|1:f<<1}Nc(i+200|0,L,J[x>>2],e);J:{if(C){break J}g=P(l,12)+a|0;d=0;while(1){K:{j=J[g+56>>2];k=j<<5;f=J[g+52>>2];L:{if(!(K[i+16|0]>>>d&1)){h=f;M:{if((f|0)!=(k|0)){break M}if((f+1|0)<0){break K}N:{if(f>>>0<=1073741822){j=j<<6;k=(f&-32)+32|0;j=j>>>0>k>>>0?j:k;h=f;if(f>>>0>=j>>>0){break M}if((j|0)>=0){break N}break K}j=2147483647;h=-1;if(f>>>0>=2147483647){break M}}k=(j-1>>>5|0)+1|0;h=oa(k<<2);j=J[g+48>>2];J[h+((f>>>0>=33?f-1>>>5|0:0)<<2)>>2]=0;O:{P:{if(!f){break P}m=f>>>5|0;if(f>>>0>=32){ta(h,j,m<<2)}n=f&31;if(!n){break P}m=m<<2;q=m+h|0;n=-1>>>32-n|0;J[q>>2]=J[q>>2]&(n^-1)|n&J[j+m>>2];J[g+48>>2]=h;J[g+52>>2]=f;J[g+56>>2]=k;break O}J[g+48>>2]=h;J[g+52>>2]=f;J[g+56>>2]=k;h=f;if(!j){break M}}na(j);h=J[g+52>>2]}J[g+52>>2]=h+1;f=J[g+48>>2]+(h>>>3&536870908)|0;J[f>>2]=J[f>>2]|1<>>0<=1073741822){j=j<<6;k=(f&-32)+32|0;j=j>>>0>k>>>0?j:k;h=f;if(f>>>0>=j>>>0){break Q}if((j|0)<0){break K}break R}j=2147483647;h=-1;if(f>>>0>=2147483647){break Q}}k=(j-1>>>5|0)+1|0;h=oa(k<<2);j=J[g+48>>2];J[h+((f>>>0>=33?f-1>>>5|0:0)<<2)>>2]=0;S:{T:{if(!f){break T}m=f>>>5|0;if(f>>>0>=32){ta(h,j,m<<2)}n=f&31;if(!n){break T}m=m<<2;q=m+h|0;n=-1>>>32-n|0;J[q>>2]=J[q>>2]&(n^-1)|n&J[j+m>>2];J[g+48>>2]=h;J[g+52>>2]=f;J[g+56>>2]=k;break S}J[g+48>>2]=h;J[g+52>>2]=f;J[g+56>>2]=k;h=f;if(!j){break Q}}na(j);h=J[g+52>>2]}J[g+52>>2]=h+1;f=J[g+48>>2]+(h>>>3&536870908)|0;j=J[f>>2];ea=f,fa=Ll(h)&j,J[ea>>2]=fa}d=d+1|0;if((l|0)!=(d|0)){continue}break J}break}qa();B()}g=J[a+8>>2];if((g|0)>0){m=c+U|0;d=J[z>>2];j=0;k=J[i+24>>2];while(1){h=d;if((g|0)>0){h=J[z>>2];g=0;while(1){f=g<<2;l=J[f+k>>2];n=J[a+16>>2];U:{if((l|0)>(n|0)){J[f+h>>2]=n;break U}f=f+h|0;n=J[a+12>>2];if((n|0)>(l|0)){J[f>>2]=n;break U}J[f>>2]=l}g=g+1|0;if((g|0)>2]){continue}break}}l=j<<2;f=l+m|0;l=J[l+s>>2]-J[h+l>>2]|0;J[f>>2]=l;V:{if((l|0)>2]){g=l+J[a+20>>2]|0}else{if((l|0)<=J[a+24>>2]){break V}g=l-J[a+20>>2]|0}J[f>>2]=g}k=h;g=J[a+8>>2];j=j+1|0;if((g|0)>(j|0)){continue}break}}d=J[i+36>>2];if(d){J[i+40>>2]=d;na(d)}d=J[i+24>>2];if(d){J[i+28>>2]=d;na(d)}d=(E|0)>2;E=w;if(d){continue}break}break h}qa();B()}if((e|0)>0){pa(J[i+144>>2],0,e<<2)}g=J[a+8>>2];if((g|0)>0){d=J[a+32>>2];j=0;k=J[i+144>>2];while(1){h=d;if((g|0)>0){h=J[z>>2];g=0;while(1){e=g<<2;f=J[e+k>>2];l=J[a+16>>2];W:{if((f|0)>(l|0)){J[e+h>>2]=l;break W}e=e+h|0;l=J[a+12>>2];if((l|0)>(f|0)){J[e>>2]=l;break W}J[e>>2]=f}g=g+1|0;if((g|0)>2]){continue}break}}f=j<<2;e=f+c|0;f=J[b+f>>2]-J[f+h>>2]|0;J[e>>2]=f;X:{if((f|0)>2]){f=f+J[a+20>>2]|0}else{if((f|0)<=J[a+24>>2]){break X}f=f-J[a+20>>2]|0}J[e>>2]=f}k=h;g=J[a+8>>2];j=j+1|0;if((g|0)>(j|0)){continue}break}}if(r){na(r)}a=J[i+128>>2];if(a){J[i+132>>2]=a;na(a)}a=J[i+180>>2];if(a){J[i+184>>2]=a;na(a)}a=J[i+168>>2];if(a){J[i+172>>2]=a;na(a)}a=J[i+156>>2];if(a){J[i+160>>2]=a;na(a)}a=J[i+144>>2];if(a){J[i+148>>2]=a;na(a)}ba=i+224|0;return 1}function Fk(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,C=0,D=0,E=0,F=0,G=0,I=0,L=0,M=0,N=0,O=0,Q=0,S=0,U=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,da=0,ea=0,fa=0;g=ba-240|0;ba=g;Z=J[a+36>>2];C=J[a+32>>2];J[g+184>>2]=0;J[g+188>>2]=0;J[g+176>>2]=0;J[g+180>>2]=0;J[g+168>>2]=0;J[g+172>>2]=0;J[g+160>>2]=0;J[g+164>>2]=0;J[g+152>>2]=0;J[g+156>>2]=0;J[g+144>>2]=0;J[g+148>>2]=0;if(e){Fa(g+144|0,e);i=J[g+156>>2];d=J[g+160>>2]}else{d=0}d=d-i>>2;a:{if(d>>>0>=e>>>0){if(d>>>0<=e>>>0){break a}J[g+160>>2]=(e<<2)+i;break a}Fa(g+144|12,e-d|0)}d=J[g+168>>2];f=J[g+172>>2]-d>>2;b:{if(f>>>0>=e>>>0){if(e>>>0>=f>>>0){break b}J[g+172>>2]=d+(e<<2);break b}Fa(g+168|0,e-f|0)}c:{d:{d=J[g+180>>2];f=J[g+184>>2]-d>>2;e:{f:{if(f>>>0>=e>>>0){if(e>>>0>>0){J[g+184>>2]=d+(e<<2)}J[g+136>>2]=0;J[g+128>>2]=0;J[g+132>>2]=0;if(e){break f}d=1;break e}Fa(g+180|0,e-f|0);J[g+136>>2]=0;J[g+128>>2]=0;J[g+132>>2]=0}if(e>>>0>=1073741824){break d}j=e<<2;f=oa(j);J[g+128>>2]=f;d=f+j|0;J[g+136>>2]=d;pa(f,0,j);J[g+132>>2]=d;d=0}D=a+136|0;f=J[a+136>>2];j=J[a+140>>2]-f>>2;g:{h:{if(j>>>0>>0){Fa(D,e-j|0);J[g+104>>2]=0;J[g+108>>2]=0;J[g+96>>2]=0;J[g+100>>2]=0;J[g+88>>2]=0;J[g+92>>2]=0;J[g+80>>2]=0;J[g+84>>2]=0;J[g+72>>2]=0;J[g+76>>2]=0;d=g- -64|0;J[d>>2]=0;J[d+4>>2]=0;J[g+56>>2]=0;J[g+60>>2]=0;J[g+48>>2]=0;J[g+52>>2]=0;break h}if(e>>>0>>0){J[a+140>>2]=f+(e<<2)}J[g+104>>2]=0;J[g+108>>2]=0;J[g+96>>2]=0;J[g+100>>2]=0;J[g+88>>2]=0;J[g+92>>2]=0;J[g+80>>2]=0;J[g+84>>2]=0;J[g+72>>2]=0;J[g+76>>2]=0;f=g- -64|0;J[f>>2]=0;J[f+4>>2]=0;J[g+56>>2]=0;J[g+60>>2]=0;J[g+48>>2]=0;J[g+52>>2]=0;f=0;if(d){break g}}d=e<<2;t=oa(d);f=pa(t,0,d)+d|0}d=J[a+40>>2];d=J[d+4>>2]-J[d>>2]|0;if((d|0)<5){break c}M=e&-2;N=e&1;_=e&-4;U=e&3;O=e-1|0;X=e<<2;$=a+8|0;Q=a+96|0;G=d>>>2|0;E=f;S=f-t|0;F=S>>2;Y=(S-4&-4)+4|0;aa=g+36|0;da=g+24|0;while(1){d=J[a+40>>2];f=J[d>>2];i:{j:{z=G-1|0;if(z>>>0>2]-f>>2>>>0){d=0;j=0;l=J[f+(z<<2)>>2];k:{if((l|0)==-1){break k}u=1;h=l+2|0;j=(l>>>0)%3|0;A=j?l-1|0:h;r=1<>2];q=s+(A>>>3&536870908)|0;f=0;n=(j|0)!=0|(h|0)!=-1;h=l;while(1){l:{if(J[s+(h>>>3&536870908)>>2]>>>h&1){break l}o=J[J[J[C+64>>2]+12>>2]+(h<<2)>>2];if((o|0)==-1){break l}w=J[Z>>2];x=J[C+28>>2];k=J[w+(J[x+(o<<2)>>2]<<2)>>2];if((k|0)>=(z|0)){break l}j=o+1|0;m=J[w+(J[x+(((j>>>0)%3|0?j:o-2|0)<<2)>>2]<<2)>>2];if((m|0)>=(z|0)){break l}j=J[w+(J[x+(o+((o>>>0)%3|0?-1:2)<<2)>>2]<<2)>>2];if((j|0)>=(z|0)){break l}m:{if(!e){break m}o=J[(g+144|0)+P(f,12)>>2];x=P(e,j);w=P(e,m);m=P(e,k);i=0;p=0;if(O){while(1){J[o+(i<<2)>>2]=(J[(i+x<<2)+b>>2]+J[(i+w<<2)+b>>2]|0)-J[(i+m<<2)+b>>2];j=i|1;J[o+(j<<2)>>2]=(J[(j+x<<2)+b>>2]+J[(j+w<<2)+b>>2]|0)-J[(j+m<<2)+b>>2];i=i+2|0;p=p+2|0;if((M|0)!=(p|0)){continue}break}}if(!N){break m}J[o+(i<<2)>>2]=(J[(i+x<<2)+b>>2]+J[(i+w<<2)+b>>2]|0)-J[(i+m<<2)+b>>2]}j=4;f=f+1|0;if((f|0)==4){break k}}n:{if(u&1){j=h-2|0;m=h+1|0;h=-1;j=(m>>>0)%3|0?m:j;if((j|0)==-1|J[s+(j>>>3&536870908)>>2]>>>j&1){break n}m=J[J[J[C+64>>2]+12>>2]+(j<<2)>>2];if((m|0)==-1){break n}j=m+1|0;h=(j>>>0)%3|0?j:m-2|0;break n}o:{if((h>>>0)%3|0){i=h-1|0;break o}i=h+2|0;h=-1;if((i|0)==-1){break n}}h=-1;if(J[s+(i>>>3&536870908)>>2]>>>i&1){break n}j=J[J[J[C+64>>2]+12>>2]+(i<<2)>>2];if((j|0)==-1){break n}if((j>>>0)%3|0){h=j-1|0;break n}h=j+2|0}if((h|0)==(l|0)){j=f;break k}if((h|0)==-1&u){if(!n){j=f;break k}if(r&J[q>>2]){j=f;break k}j=J[J[J[C+64>>2]+12>>2]+(A<<2)>>2];if((j|0)==-1){j=f;break k}u=0;h=(j>>>0)%3|0?j-1|0:j+2|0}j=f;if((h|0)!=-1){continue}break}}H[g+16|0]=0;J[g+8>>2]=0;J[g+12>>2]=0;J[g+44>>2]=0;J[g+36>>2]=0;J[g+40>>2]=0;J[g+28>>2]=0;J[g+32>>2]=0;J[g+20>>2]=0;J[g+24>>2]=0;w=P(e,z)<<2;I=w+b|0;q=(P(G-2|0,e)<<2)+b|0;l=J[D>>2];h=0;if(e){while(1){f=d<<2;m=J[f+q>>2]-J[f+I>>2]|0;J[f+t>>2]=m;J[f+l>>2]=(m|0)<0?(m^-1)<<1|1:m<<1;f=m>>31;h=((f^m)-f|0)+h|0;d=d+1|0;if((e|0)!=(d|0)){continue}break}}d=g+200|0;Db(d,Q,l,e);m=Cb(d);f=J[d+12>>2];d=J[d+16>>2];f=(((f-d|0)+1|0)/64|0)+d<<3;d=d<<3;n=f+d|0;f=(f>>31)+(d>>31)|0;k=ca+(d>>>0>n>>>0?f+1|0:f)|0;f=m+n|0;d=f>>>0>>0?k+1|0:k;A=(j|0)<=0;if(!A){k=(j<<3)-8|0;l=k+(g+48|0)|0;n=l;m=J[l>>2];l=J[l+4>>2];m=j+m|0;l=m>>>0>>0?l+1|0:l;J[n>>2]=m;J[n+4>>2]=l;y=W(Eb(m,J[k+(g+80|0)>>2])*(+(m>>>0)+ +(l|0)*4294967296));p:{if(R(y)<0x8000000000000000){m=~~y>>>0;l=R(y)>=1?~~(y>0?T(V(y*2.3283064365386963e-10),4294967295):W((y-+(~~y>>>0>>>0))*2.3283064365386963e-10))>>>0:0;break p}m=0;l=-2147483648}f=f+m|0;d=f}J[g+20>>2]=0;H[g+16|0]=0;J[g+8>>2]=f;J[g+12>>2]=h;tc(da,q,q+X|0);bb(aa,t,E);q:{r:{s:{if(A){break s}m=(g+124|0)+j|0;l=m-1|0;r=j<<3;d=r-8|0;x=d+(g+48|0)|0;q=d+(g+80|0)|0;u=1;L=0;while(1){d=g+124|0;pa(d,1,j);L=L+1|0;pa(d,0,L);t:{u:while(1){if(e){pa(J[g+128>>2],0,X)}p=0;o=J[g+128>>2];s=0;while(1){if(!K[(g+124|0)+p|0]){v:{if(!e){break v}n=J[(g+144|0)+P(p,12)>>2];f=0;i=0;v=0;if(e>>>0>3){while(1){k=i<<2;d=k+o|0;J[d>>2]=J[d>>2]+J[k+n>>2];h=k|4;d=h+o|0;J[d>>2]=J[d>>2]+J[h+n>>2];h=k|8;d=h+o|0;J[d>>2]=J[d>>2]+J[h+n>>2];h=k|12;d=h+o|0;J[d>>2]=J[d>>2]+J[h+n>>2];i=i+4|0;v=v+4|0;if((_|0)!=(v|0)){continue}break}}if(!U){break v}while(1){h=i<<2;d=h+o|0;J[d>>2]=J[d>>2]+J[h+n>>2];i=i+1|0;f=f+1|0;if((U|0)!=(f|0)){continue}break}}s=1<>2];w:{x:{y:{if(e){i=0;h=0;if(O){break y}break x}v=J[D>>2];f=0;break w}while(1){k=i<<2;f=k+d|0;J[f>>2]=J[f>>2]/(u|0);f=(k|4)+d|0;J[f>>2]=J[f>>2]/(u|0);i=i+2|0;h=h+2|0;if((M|0)!=(h|0)){continue}break}}if(N){d=(i<<2)+d|0;J[d>>2]=J[d>>2]/(u|0)}v=J[D>>2];d=J[g+128>>2];h=0;f=0;if(!e){break w}while(1){k=h<<2;n=J[k+d>>2]-J[k+I>>2]|0;J[k+t>>2]=n;J[k+v>>2]=(n|0)<0?(n^-1)<<1|1:n<<1;i=f;f=n>>31;f=i+((f^n)-f|0)|0;h=h+1|0;if((h|0)!=(e|0)){continue}break}}h=g+200|0;Db(h,Q,v,e);n=Cb(h);i=J[h+12>>2];h=J[h+16>>2];k=(((i-h|0)+1|0)/64|0)+h<<3;h=h<<3;o=k+h|0;h=n+o|0;k=J[x+4>>2];n=J[x>>2];y=W(Eb(n,J[q>>2]+u|0)*(+(n>>>0)+ +(k|0)*4294967296));z:{if(R(y)<0x8000000000000000){i=~~y>>>0;break z}i=0}k=i+h|0;h=J[g+8>>2];if(!((k|0)>=(h|0)&((h|0)<(k|0)|(f|0)>=J[g+12>>2]))){J[g+20>>2]=u;H[g+16|0]=s;J[g+8>>2]=k;J[g+12>>2]=f;s=J[g+132>>2];k=s-d|0;o=k>>2;h=J[g+32>>2];p=J[g+24>>2];A:{if(o>>>0<=h-p>>2>>>0){f=J[g+28>>2]-p|0;h=f+d|0;f=f>>2;n=f>>>0>>0?h:s;k=n-d|0;if((d|0)!=(n|0)){ta(p,d,k)}if(f>>>0>>0){i=J[g+28>>2];if((n|0)==(s|0)){break A}while(1){J[i>>2]=J[h>>2];i=i+4|0;h=h+4|0;if((s|0)!=(h|0)){continue}break}break A}i=k+p|0;break A}if(p){J[g+28>>2]=p;na(p);J[g+32>>2]=0;J[g+24>>2]=0;J[g+28>>2]=0;h=0}if((k|0)<0){break r}f=h>>>1|0;f=h>>>0>=2147483644?1073741823:f>>>0>o>>>0?f:o;if(f>>>0>=1073741824){break r}f=f<<2;i=oa(f);J[g+24>>2]=i;J[g+32>>2]=f+i;if((d|0)==(s|0)){break A}f=d;d=(k-4&-4)+4|0;i=ua(i,f,d)+d|0}J[g+28>>2]=i;h=J[g+44>>2];n=J[g+36>>2];B:{if(h-n>>2>>>0>=F>>>0){d=J[g+40>>2]-n|0;h=d+t|0;d=d>>2;k=d>>>0>>0?h:E;f=k-t|0;if((k|0)!=(t|0)){ta(n,t,f)}if(d>>>0>>0){i=J[g+40>>2];if((k|0)==(E|0)){break B}while(1){J[i>>2]=J[h>>2];i=i+4|0;h=h+4|0;if((E|0)!=(h|0)){continue}break}break B}i=f+n|0;break B}if(n){J[g+40>>2]=n;na(n);J[g+44>>2]=0;J[g+36>>2]=0;J[g+40>>2]=0;h=0}if((S|0)<0){break q}d=h>>>1|0;d=h>>>0>=2147483644?1073741823:d>>>0>F>>>0?d:F;if(d>>>0>=1073741824){break q}d=d<<2;i=oa(d);J[g+36>>2]=i;J[g+44>>2]=d+i;if((t|0)==(E|0)){break B}i=ua(i,t,Y)+Y|0}J[g+40>>2]=i}if((l|0)==(g+124|0)){break t}i=K[l|0];h=-1;while(1){f=i&255;d=h-1|0;k=d+m|0;i=K[k|0];if(f>>>0>i>>>0){d=m;while(1){d=d-1|0;f=K[d|0];if(f>>>0<=i>>>0){continue}break}H[k|0]=f;H[d|0]=i;if((h|0)==-1){continue u}i=h+m|0;h=l;while(1){d=K[i|0];H[i|0]=K[h|0];H[h|0]=d;i=i+1|0;h=h-1|0;if(i>>>0>>0){continue}break}continue u}h=d;if((k|0)!=(g+124|0)){continue}break}break}d=g+124|0;i=d;h=l;if(d>>>0>=h>>>0){break t}while(1){d=K[i|0];H[i|0]=K[h|0];H[h|0]=d;i=i+1|0;h=h-1|0;if(i>>>0>>0){continue}break}}u=u+1|0;if((j|0)!=(L|0)){continue}break}if((j|0)<=0){break s}d=J[g+20>>2];f=d;l=g+r|0;h=d+J[l+72>>2]|0;d=J[l+76>>2]+(d>>31)|0;J[l+72>>2]=h;J[l+76>>2]=f>>>0>h>>>0?d+1|0:d}if(!e){break i}l=J[D>>2];i=0;h=J[g+36>>2];v=0;if(!O){break j}while(1){d=i<<2;f=J[d+h>>2];J[d+l>>2]=(f|0)<0?(f^-1)<<1|1:f<<1;d=d|4;f=J[d+h>>2];J[d+l>>2]=(f|0)<0?(f^-1)<<1|1:f<<1;i=i+2|0;v=v+2|0;if((M|0)!=(v|0)){continue}break}break j}qa();B()}qa();B()}ra();B()}if(!N){break i}d=i<<2;f=J[d+h>>2];J[d+l>>2]=(f|0)<0?(f^-1)<<1|1:f<<1}Nc(g+200|0,Q,J[D>>2],e);C:{if(A){break C}l=P(j,12)+a|0;h=0;while(1){D:{k=J[l+40>>2];m=k<<5;d=J[l+36>>2];E:{if(!(K[g+16|0]>>>h&1)){f=d;F:{if((d|0)!=(m|0)){break F}if((d+1|0)<0){break D}G:{if(d>>>0<=1073741822){k=k<<6;m=(d&-32)+32|0;i=k>>>0>m>>>0?k:m;f=d;if(d>>>0>=i>>>0){break F}if((i|0)>=0){break G}break D}i=2147483647;f=-1;if(d>>>0>=2147483647){break F}}n=(i-1>>>5|0)+1|0;r=oa(n<<2);q=J[l+32>>2];J[r+((d>>>0>=33?d-1>>>5|0:0)<<2)>>2]=0;H:{I:{if(!d){break I}f=d>>>5|0;if(d>>>0>=32){ta(r,q,f<<2)}k=d&31;if(!k){break I}m=f<<2;f=m+r|0;i=f;o=J[f>>2];f=-1>>>32-k|0;J[i>>2]=o&(f^-1)|f&J[m+q>>2];J[l+32>>2]=r;J[l+36>>2]=d;J[l+40>>2]=n;break H}J[l+32>>2]=r;J[l+36>>2]=d;J[l+40>>2]=n;f=d;if(!q){break F}}na(q);f=J[l+36>>2]}J[l+36>>2]=f+1;d=J[l+32>>2]+(f>>>3&536870908)|0;J[d>>2]=J[d>>2]|1<>>0<=1073741822){k=k<<6;m=(d&-32)+32|0;i=k>>>0>m>>>0?k:m;f=d;if(d>>>0>=i>>>0){break J}if((i|0)<0){break D}break K}i=2147483647;f=-1;if(d>>>0>=2147483647){break J}}n=(i-1>>>5|0)+1|0;r=oa(n<<2);q=J[l+32>>2];J[r+((d>>>0>=33?d-1>>>5|0:0)<<2)>>2]=0;L:{M:{if(!d){break M}f=d>>>5|0;if(d>>>0>=32){ta(r,q,f<<2)}k=d&31;if(!k){break M}m=f<<2;f=m+r|0;i=f;o=J[f>>2];f=-1>>>32-k|0;J[i>>2]=o&(f^-1)|f&J[m+q>>2];J[l+32>>2]=r;J[l+36>>2]=d;J[l+40>>2]=n;break L}J[l+32>>2]=r;J[l+36>>2]=d;J[l+40>>2]=n;f=d;if(!q){break J}}na(q);f=J[l+36>>2]}J[l+36>>2]=f+1;m=J[l+32>>2]+(f>>>3&536870908)|0;d=J[m>>2];ea=m,fa=Ll(f)&d,J[ea>>2]=fa}h=h+1|0;if((j|0)!=(h|0)){continue}break C}break}qa();B()}d=J[g+24>>2];j=J[d>>2];f=J[d+4>>2];d=J[I+4>>2];J[g+232>>2]=J[I>>2];J[g+236>>2]=d;J[g+224>>2]=j;J[g+228>>2]=f;Ya(g+200|0,$,g+232|0,g+224|0);d=c+w|0;J[d>>2]=J[g+200>>2];J[d+4>>2]=J[g+204>>2];d=J[g+36>>2];if(d){J[g+40>>2]=d;na(d)}d=J[g+24>>2];if(d){J[g+28>>2]=d;na(d)}d=(G|0)>2;G=z;if(d){continue}break}break c}qa();B()}d=J[g+144>>2];if((e|0)>0){pa(d,0,e<<2)}f=J[d>>2];e=J[d+4>>2];d=J[b+4>>2];J[g+200>>2]=J[b>>2];J[g+204>>2]=d;J[g+232>>2]=f;J[g+236>>2]=e;Ya(g+8|0,a+8|0,g+200|0,g+232|0);J[c>>2]=J[g+8>>2];J[c+4>>2]=J[g+12>>2];if(t){na(t)}a=J[g+128>>2];if(a){J[g+132>>2]=a;na(a)}a=J[g+180>>2];if(a){J[g+184>>2]=a;na(a)}a=J[g+168>>2];if(a){J[g+172>>2]=a;na(a)}a=J[g+156>>2];if(a){J[g+160>>2]=a;na(a)}a=J[g+144>>2];if(a){J[g+148>>2]=a;na(a)}ba=g+240|0;return 1}function tk(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,C=0,D=0,E=0,F=0,G=0,I=0,L=0,M=0,N=0,O=0,Q=0,S=0,U=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,da=0,ea=0,fa=0;g=ba-240|0;ba=g;Y=J[a+36>>2];M=J[a+32>>2];J[g+184>>2]=0;J[g+188>>2]=0;J[g+176>>2]=0;J[g+180>>2]=0;J[g+168>>2]=0;J[g+172>>2]=0;J[g+160>>2]=0;J[g+164>>2]=0;J[g+152>>2]=0;J[g+156>>2]=0;J[g+144>>2]=0;J[g+148>>2]=0;if(e){Fa(g+144|0,e);h=J[g+156>>2];d=J[g+160>>2]}else{d=0}d=d-h>>2;a:{if(d>>>0>=e>>>0){if(d>>>0<=e>>>0){break a}J[g+160>>2]=(e<<2)+h;break a}Fa(g+144|12,e-d|0)}f=J[g+168>>2];d=J[g+172>>2]-f>>2;b:{if(d>>>0>=e>>>0){if(d>>>0<=e>>>0){break b}J[g+172>>2]=f+(e<<2);break b}Fa(g+168|0,e-d|0)}c:{d:{f=J[g+180>>2];d=J[g+184>>2]-f>>2;e:{f:{if(d>>>0>=e>>>0){if(d>>>0>e>>>0){J[g+184>>2]=f+(e<<2)}J[g+136>>2]=0;J[g+128>>2]=0;J[g+132>>2]=0;if(e){break f}d=1;break e}Fa(g+180|0,e-d|0);J[g+136>>2]=0;J[g+128>>2]=0;J[g+132>>2]=0}if(e>>>0>=1073741824){break d}d=e<<2;f=oa(d);J[g+128>>2]=f;i=d+f|0;J[g+136>>2]=i;pa(f,0,d);J[g+132>>2]=i;d=0}x=a+136|0;i=J[a+136>>2];f=J[a+140>>2]-i>>2;g:{h:{if(f>>>0>>0){Fa(x,e-f|0);J[g+104>>2]=0;J[g+108>>2]=0;J[g+96>>2]=0;J[g+100>>2]=0;J[g+88>>2]=0;J[g+92>>2]=0;J[g+80>>2]=0;J[g+84>>2]=0;J[g+72>>2]=0;J[g+76>>2]=0;d=g- -64|0;J[d>>2]=0;J[d+4>>2]=0;J[g+56>>2]=0;J[g+60>>2]=0;J[g+48>>2]=0;J[g+52>>2]=0;break h}if(e>>>0>>0){J[a+140>>2]=i+(e<<2)}J[g+104>>2]=0;J[g+108>>2]=0;J[g+96>>2]=0;J[g+100>>2]=0;J[g+88>>2]=0;J[g+92>>2]=0;J[g+80>>2]=0;J[g+84>>2]=0;J[g+72>>2]=0;J[g+76>>2]=0;f=g- -64|0;J[f>>2]=0;J[f+4>>2]=0;J[g+56>>2]=0;J[g+60>>2]=0;J[g+48>>2]=0;J[g+52>>2]=0;v=0;if(d){break g}}d=e<<2;r=oa(d);v=pa(r,0,d)+d|0}d=J[a+40>>2];d=J[d+4>>2]-J[d>>2]|0;if((d|0)<5){break c}E=e&-2;F=e&1;Z=e&-4;N=e&3;G=e-1|0;O=e<<2;_=a+8|0;I=a+96|0;D=d>>>2|0;L=v-r|0;z=L>>2;Q=(L-4&-4)+4|0;$=g+36|0;aa=g+24|0;while(1){d=J[a+40>>2];f=J[d>>2];i:{j:{w=D-1|0;if(w>>>0>2]-f>>2>>>0){d=0;k=0;l=J[f+(w<<2)>>2];k:{if((l|0)==-1){break k}j=J[M+12>>2];i=l+2|0;k=(l>>>0)%3|0;y=j+((k?l-1|0:i)<<2)|0;f=0;A=(k|0)!=0|(i|0)!=-1;p=1;i=l;while(1){k=J[j+(i<<2)>>2];l:{if((k|0)==-1){break l}m=J[Y>>2];n=J[M>>2];s=J[m+(J[n+(k<<2)>>2]<<2)>>2];h=k+1|0;h=(h>>>0)%3|0?h:k-2|0;if((h|0)!=-1){o=J[n+(h<<2)>>2]}else{o=-1}m:{n:{if((k>>>0)%3|0){h=k-1|0;break n}h=k+2|0;q=-1;if((h|0)==-1){break m}}q=J[n+(h<<2)>>2]}if((s|0)>=(w|0)){break l}h=J[(o<<2)+m>>2];if((h|0)>=(w|0)){break l}n=J[m+(q<<2)>>2];if((n|0)>=(w|0)){break l}k=J[(g+144|0)+P(f,12)>>2];o:{if(!e){break o}n=P(e,n);o=P(e,h);s=P(e,s);h=0;m=0;if(G){while(1){J[k+(h<<2)>>2]=(J[(h+n<<2)+b>>2]+J[(h+o<<2)+b>>2]|0)-J[(h+s<<2)+b>>2];q=h|1;J[k+(q<<2)>>2]=(J[(n+q<<2)+b>>2]+J[(o+q<<2)+b>>2]|0)-J[(q+s<<2)+b>>2];h=h+2|0;m=m+2|0;if((E|0)!=(m|0)){continue}break}}if(!F){break o}J[k+(h<<2)>>2]=(J[(h+n<<2)+b>>2]+J[(h+o<<2)+b>>2]|0)-J[(h+s<<2)+b>>2]}k=4;f=f+1|0;if((f|0)==4){break k}}p:{if(p&1){h=i+1|0;i=(h>>>0)%3|0?h:i-2|0;k=-1;if((i|0)==-1){break p}i=J[j+(i<<2)>>2];k=-1;if((i|0)==-1){break p}k=i+1|0;k=(k>>>0)%3|0?k:i-2|0;break p}q:{if((i>>>0)%3|0){h=i-1|0;break q}h=i+2|0;k=-1;if((h|0)==-1){break p}}i=J[j+(h<<2)>>2];k=-1;if((i|0)==-1){break p}k=i-1|0;if((i>>>0)%3|0){break p}k=i+2|0}i=k;if((l|0)==(i|0)){k=f;break k}if((i|0)==-1&p){if(!A){k=f;break k}i=J[y>>2];if((i|0)==-1){k=f;break k}p=0;i=(i>>>0)%3|0?i-1|0:i+2|0}k=f;if((i|0)!=-1){continue}break}}H[g+16|0]=0;J[g+8>>2]=0;J[g+12>>2]=0;J[g+44>>2]=0;J[g+36>>2]=0;J[g+40>>2]=0;J[g+28>>2]=0;J[g+32>>2]=0;J[g+20>>2]=0;J[g+24>>2]=0;S=P(e,w)<<2;s=S+b|0;l=(P(D-2|0,e)<<2)+b|0;j=J[x>>2];h=0;if(e){while(1){i=d<<2;f=J[i+l>>2]-J[i+s>>2]|0;J[i+r>>2]=f;J[i+j>>2]=(f|0)<0?(f^-1)<<1|1:f<<1;i=f;f=f>>31;h=((i^f)-f|0)+h|0;d=d+1|0;if((e|0)!=(d|0)){continue}break}}d=g+200|0;Db(d,I,j,e);f=Cb(d);i=J[d+12>>2];d=J[d+16>>2];i=(((i-d|0)+1|0)/64|0)+d<<3;n=d<<3;d=i+n|0;i=(i>>31)+(n>>31)|0;j=ca+(d>>>0>>0?i+1|0:i)|0;i=d;d=d+f|0;f=i>>>0>d>>>0?j+1|0:j;A=(k|0)<=0;if(!A){p=(k<<3)-8|0;i=p+(g+48|0)|0;n=i;j=J[i>>2];i=J[i+4>>2];j=j+k|0;i=j>>>0>>0?i+1|0:i;J[n>>2]=j;J[n+4>>2]=i;u=W(Eb(j,J[p+(g+80|0)>>2])*(+(j>>>0)+ +(i|0)*4294967296));r:{if(R(u)<0x8000000000000000){j=R(u)>=1?~~(u>0?T(V(u*2.3283064365386963e-10),4294967295):W((u-+(~~u>>>0>>>0))*2.3283064365386963e-10))>>>0:0;i=~~u>>>0;break r}j=-2147483648;i=0}d=d+i|0;f=d}J[g+20>>2]=0;H[g+16|0]=0;J[g+8>>2]=d;J[g+12>>2]=h;tc(aa,l,l+O|0);bb($,r,v);s:{t:{u:{if(A){break u}n=(g+124|0)+k|0;l=n-1|0;U=k<<3;d=U-8|0;X=d+(g+48|0)|0;da=d+(g+80|0)|0;p=1;y=0;while(1){d=g+124|0;pa(d,1,k);y=y+1|0;pa(d,0,y);v:{w:while(1){if(e){pa(J[g+128>>2],0,O)}m=0;d=J[g+128>>2];f=0;while(1){if(!K[(g+124|0)+m|0]){x:{if(!e){break x}o=J[(g+144|0)+P(m,12)>>2];i=0;h=0;j=0;if(e>>>0>3){while(1){q=h<<2;t=q+d|0;J[t>>2]=J[t>>2]+J[o+q>>2];t=q|4;C=t+d|0;J[C>>2]=J[C>>2]+J[o+t>>2];t=q|8;C=t+d|0;J[C>>2]=J[C>>2]+J[o+t>>2];q=q|12;t=q+d|0;J[t>>2]=J[t>>2]+J[o+q>>2];h=h+4|0;j=j+4|0;if((Z|0)!=(j|0)){continue}break}}if(!N){break x}while(1){j=h<<2;q=j+d|0;J[q>>2]=J[q>>2]+J[j+o>>2];h=h+1|0;i=i+1|0;if((N|0)!=(i|0)){continue}break}}f=1<>2];y:{z:{A:{if(e){h=0;i=0;if(G){break A}break z}j=J[x>>2];i=0;break y}while(1){j=h<<2;m=j+d|0;J[m>>2]=J[m>>2]/(p|0);j=(j|4)+d|0;J[j>>2]=J[j>>2]/(p|0);h=h+2|0;i=i+2|0;if((E|0)!=(i|0)){continue}break}}if(F){d=(h<<2)+d|0;J[d>>2]=J[d>>2]/(p|0)}j=J[x>>2];d=J[g+128>>2];h=0;i=0;if(!e){break y}while(1){o=h<<2;m=J[o+d>>2]-J[o+s>>2]|0;J[o+r>>2]=m;J[j+o>>2]=(m|0)<0?(m^-1)<<1|1:m<<1;o=i;i=m>>31;i=o+((i^m)-i|0)|0;h=h+1|0;if((h|0)!=(e|0)){continue}break}}h=g+200|0;Db(h,I,j,e);m=Cb(h);o=J[h+12>>2];h=J[h+16>>2];j=(((o-h|0)+1|0)/64|0)+h<<3;o=h<<3;h=j+o|0;h=h+m|0;m=J[X+4>>2];j=J[X>>2];u=W(Eb(j,J[da>>2]+p|0)*(+(j>>>0)+ +(m|0)*4294967296));B:{if(R(u)<0x8000000000000000){o=~~u>>>0;break B}o=0}h=o+h|0;j=J[g+8>>2];if(!((h|0)>=(j|0)&((h|0)>(j|0)|(i|0)>=J[g+12>>2]))){J[g+20>>2]=p;H[g+16|0]=f;J[g+8>>2]=h;J[g+12>>2]=i;j=J[g+132>>2];m=j-d|0;h=m>>2;i=J[g+32>>2];f=J[g+24>>2];C:{if(h>>>0<=i-f>>2>>>0){m=J[g+28>>2]-f|0;i=m+d|0;q=m>>2;m=q>>>0>>0?i:j;o=m-d|0;if((d|0)!=(m|0)){ta(f,d,o)}if(h>>>0>q>>>0){h=J[g+28>>2];if((j|0)==(m|0)){break C}while(1){J[h>>2]=J[i>>2];h=h+4|0;i=i+4|0;if((j|0)!=(i|0)){continue}break}break C}h=f+o|0;break C}if(f){J[g+28>>2]=f;na(f);J[g+32>>2]=0;J[g+24>>2]=0;J[g+28>>2]=0;i=0}if((m|0)<0){break t}f=i>>>1|0;f=i>>>0>=2147483644?1073741823:f>>>0>h>>>0?f:h;if(f>>>0>=1073741824){break t}f=f<<2;h=oa(f);J[g+24>>2]=h;J[g+32>>2]=f+h;if((d|0)==(j|0)){break C}f=d;d=(m-4&-4)+4|0;h=ua(h,f,d)+d|0}J[g+28>>2]=h;i=J[g+44>>2];d=J[g+36>>2];D:{if(i-d>>2>>>0>=z>>>0){f=J[g+40>>2]-d|0;i=f+r|0;j=f>>2;f=j>>>0>>0?i:v;h=f-r|0;if((f|0)!=(r|0)){ta(d,r,h)}if(j>>>0>>0){h=J[g+40>>2];if((f|0)==(v|0)){break D}while(1){J[h>>2]=J[i>>2];h=h+4|0;i=i+4|0;if((v|0)!=(i|0)){continue}break}break D}h=d+h|0;break D}if(d){J[g+40>>2]=d;na(d);J[g+44>>2]=0;J[g+36>>2]=0;J[g+40>>2]=0;i=0}if((L|0)<0){break s}d=i>>>1|0;d=i>>>0>=2147483644?1073741823:d>>>0>z>>>0?d:z;if(d>>>0>=1073741824){break s}d=d<<2;h=oa(d);J[g+36>>2]=h;J[g+44>>2]=d+h;if((r|0)==(v|0)){break D}h=ua(h,r,Q)+Q|0}J[g+40>>2]=h}if((l|0)==(g+124|0)){break v}h=K[l|0];i=-1;while(1){j=h&255;d=i-1|0;f=d+n|0;h=K[f|0];if(j>>>0>h>>>0){d=n;while(1){d=d-1|0;j=K[d|0];if(j>>>0<=h>>>0){continue}break}H[f|0]=j;H[d|0]=h;if((i|0)==-1){continue w}h=i+n|0;i=l;while(1){d=K[h|0];H[h|0]=K[i|0];H[i|0]=d;h=h+1|0;i=i-1|0;if(h>>>0>>0){continue}break}continue w}i=d;if((f|0)!=(g+124|0)){continue}break}break}d=g+124|0;h=d;i=l;if(d>>>0>=i>>>0){break v}while(1){d=K[h|0];H[h|0]=K[i|0];H[i|0]=d;h=h+1|0;i=i-1|0;if(h>>>0>>0){continue}break}}p=p+1|0;if((k|0)!=(y|0)){continue}break}if((k|0)<=0){break u}f=J[g+20>>2];l=f;d=g+U|0;i=f+J[d+72>>2]|0;f=J[d+76>>2]+(f>>31)|0;J[d+72>>2]=i;J[d+76>>2]=i>>>0>>0?f+1|0:f}if(!e){break i}d=J[x>>2];h=0;f=J[g+36>>2];j=0;if(!G){break j}while(1){l=h<<2;i=J[l+f>>2];J[d+l>>2]=(i|0)<0?(i^-1)<<1|1:i<<1;l=l|4;i=J[l+f>>2];J[d+l>>2]=(i|0)<0?(i^-1)<<1|1:i<<1;h=h+2|0;j=j+2|0;if((E|0)!=(j|0)){continue}break}break j}qa();B()}qa();B()}ra();B()}if(!F){break i}i=h<<2;f=J[i+f>>2];J[d+i>>2]=(f|0)<0?(f^-1)<<1|1:f<<1}Nc(g+200|0,I,J[x>>2],e);E:{if(A){break E}l=P(k,12)+a|0;i=0;while(1){F:{h=J[l+40>>2];j=h<<5;d=J[l+36>>2];G:{if(!(K[g+16|0]>>>i&1)){f=d;H:{if((d|0)!=(j|0)){break H}if((d+1|0)<0){break F}I:{if(d>>>0<=1073741822){h=h<<6;j=(d&-32)+32|0;h=h>>>0>j>>>0?h:j;f=d;if(d>>>0>=h>>>0){break H}if((h|0)>=0){break I}break F}h=2147483647;f=-1;if(d>>>0>=2147483647){break H}}j=(h-1>>>5|0)+1|0;f=oa(j<<2);h=J[l+32>>2];J[f+((d>>>0>=33?d-1>>>5|0:0)<<2)>>2]=0;J:{K:{if(!d){break K}n=d>>>5|0;if(d>>>0>=32){ta(f,h,n<<2)}p=d&31;if(!p){break K}n=n<<2;m=n+f|0;p=-1>>>32-p|0;J[m>>2]=J[m>>2]&(p^-1)|p&J[h+n>>2];J[l+32>>2]=f;J[l+36>>2]=d;J[l+40>>2]=j;break J}J[l+32>>2]=f;J[l+36>>2]=d;J[l+40>>2]=j;f=d;if(!h){break H}}na(h);f=J[l+36>>2]}J[l+36>>2]=f+1;d=J[l+32>>2]+(f>>>3&536870908)|0;J[d>>2]=J[d>>2]|1<>>0<=1073741822){h=h<<6;j=(d&-32)+32|0;h=h>>>0>j>>>0?h:j;f=d;if(d>>>0>=h>>>0){break L}if((h|0)<0){break F}break M}h=2147483647;f=-1;if(d>>>0>=2147483647){break L}}j=(h-1>>>5|0)+1|0;f=oa(j<<2);h=J[l+32>>2];J[f+((d>>>0>=33?d-1>>>5|0:0)<<2)>>2]=0;N:{O:{if(!d){break O}n=d>>>5|0;if(d>>>0>=32){ta(f,h,n<<2)}p=d&31;if(!p){break O}n=n<<2;m=n+f|0;p=-1>>>32-p|0;J[m>>2]=J[m>>2]&(p^-1)|p&J[h+n>>2];J[l+32>>2]=f;J[l+36>>2]=d;J[l+40>>2]=j;break N}J[l+32>>2]=f;J[l+36>>2]=d;J[l+40>>2]=j;f=d;if(!h){break L}}na(h);f=J[l+36>>2]}J[l+36>>2]=f+1;d=J[l+32>>2]+(f>>>3&536870908)|0;h=J[d>>2];ea=d,fa=Ll(f)&h,J[ea>>2]=fa}i=i+1|0;if((k|0)!=(i|0)){continue}break E}break}qa();B()}d=J[g+24>>2];f=J[d>>2];d=J[d+4>>2];i=J[s+4>>2];J[g+232>>2]=J[s>>2];J[g+236>>2]=i;J[g+224>>2]=f;J[g+228>>2]=d;Ya(g+200|0,_,g+232|0,g+224|0);d=c+S|0;J[d>>2]=J[g+200>>2];J[d+4>>2]=J[g+204>>2];d=J[g+36>>2];if(d){J[g+40>>2]=d;na(d)}d=J[g+24>>2];if(d){J[g+28>>2]=d;na(d)}d=(D|0)>2;D=w;if(d){continue}break}break c}qa();B()}d=J[g+144>>2];if((e|0)>0){pa(d,0,e<<2)}e=J[d>>2];d=J[d+4>>2];f=J[b+4>>2];J[g+200>>2]=J[b>>2];J[g+204>>2]=f;J[g+232>>2]=e;J[g+236>>2]=d;Ya(g+8|0,a+8|0,g+200|0,g+232|0);J[c>>2]=J[g+8>>2];J[c+4>>2]=J[g+12>>2];if(r){na(r)}a=J[g+128>>2];if(a){J[g+132>>2]=a;na(a)}a=J[g+180>>2];if(a){J[g+184>>2]=a;na(a)}a=J[g+168>>2];if(a){J[g+172>>2]=a;na(a)}a=J[g+156>>2];if(a){J[g+160>>2]=a;na(a)}a=J[g+144>>2];if(a){J[g+148>>2]=a;na(a)}ba=g+240|0;return 1}function Nj(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;i=ba-32|0;ba=i;c=J[b+8>>2];a:{b:{if(K[b+288|0]){c=jf(c);e=J[b+12>>2];J[b+12>>2]=c;if(e){break b}break a}c=kf(c);e=J[b+12>>2];J[b+12>>2]=c;if(!e){break a}}qc(e)}c=J[b+12>>2];c:{if(!(J[c+40>>2]!=((J[c+4>>2]-J[c>>2]>>2>>>0)/3|0)?c:0)){b=oa(32);H[b+29|0]=0;c=K[1828]|K[1829]<<8|(K[1830]<<16|K[1831]<<24);d=K[1824]|K[1825]<<8|(K[1826]<<16|K[1827]<<24);H[b+21|0]=d;H[b+22|0]=d>>>8;H[b+23|0]=d>>>16;H[b+24|0]=d>>>24;H[b+25|0]=c;H[b+26|0]=c>>>8;H[b+27|0]=c>>>16;H[b+28|0]=c>>>24;c=K[1823]|K[1824]<<8|(K[1825]<<16|K[1826]<<24);d=K[1819]|K[1820]<<8|(K[1821]<<16|K[1822]<<24);H[b+16|0]=d;H[b+17|0]=d>>>8;H[b+18|0]=d>>>16;H[b+19|0]=d>>>24;H[b+20|0]=c;H[b+21|0]=c>>>8;H[b+22|0]=c>>>16;H[b+23|0]=c>>>24;c=K[1815]|K[1816]<<8|(K[1817]<<16|K[1818]<<24);d=K[1811]|K[1812]<<8|(K[1813]<<16|K[1814]<<24);H[b+8|0]=d;H[b+9|0]=d>>>8;H[b+10|0]=d>>>16;H[b+11|0]=d>>>24;H[b+12|0]=c;H[b+13|0]=c>>>8;H[b+14|0]=c>>>16;H[b+15|0]=c>>>24;c=K[1807]|K[1808]<<8|(K[1809]<<16|K[1810]<<24);d=K[1803]|K[1804]<<8|(K[1805]<<16|K[1806]<<24);H[b|0]=d;H[b+1|0]=d>>>8;H[b+2|0]=d>>>16;H[b+3|0]=d>>>24;H[b+4|0]=c;H[b+5|0]=c>>>8;H[b+6|0]=c>>>16;H[b+7|0]=c>>>24;J[a>>2]=-1;Ga(a+4|0,b,29);na(b);break c}J[b+264>>2]=b;Aa((J[c+28>>2]-J[c+24>>2]>>2)-J[c+44>>2]|0,J[J[b+4>>2]+44>>2]);c=J[b+12>>2];Aa(((J[c+4>>2]-J[c>>2]>>2>>>0)/3|0)-J[c+40>>2]|0,J[J[b+4>>2]+44>>2]);c=J[b+8>>2];d=J[c+100>>2];c=J[c+96>>2];H[i+16|0]=0;o=b+28|0;j=(d-c|0)/12|0;c=i+16|0;Na(o,j,c);d=J[b+12>>2];e=J[d+28>>2];d=J[d+24>>2];J[i+16>>2]=-1;wb(b+52|0,e-d>>2,c);c=J[b+40>>2];J[b+44>>2]=c;d:{e:{f:{g:{h:{i:{j:{d=J[b+12>>2];e=J[d+4>>2]-J[d>>2]>>2;e=e-((e>>>0)%3|0)|0;k:{if(e>>>0<=J[b+48>>2]-c>>2>>>0){break k}if(e>>>0>=1073741824){break j}g=e<<2;e=oa(g);J[b+44>>2]=e;J[b+40>>2]=e;J[b+48>>2]=e+g;if(!c){break k}na(c);d=J[b+12>>2]}c=J[d+28>>2];d=J[d+24>>2];H[i+16|0]=0;Na(b+84|0,c-d>>2,i+16|0);J[b+164>>2]=-1;J[b+168>>2]=0;J[b+100>>2]=J[b+96>>2];J[b+112>>2]=J[b+108>>2];if(J[b+132>>2]){d=J[b+128>>2];if(d){while(1){c=J[d>>2];na(d);d=c;if(c){continue}break}}d=0;J[b+128>>2]=0;c=J[b+124>>2];l:{if(!c){break l}if(c>>>0>=4){k=c&-4;g=0;while(1){e=d<<2;J[e+J[b+120>>2]>>2]=0;J[J[b+120>>2]+(e|4)>>2]=0;J[J[b+120>>2]+(e|8)>>2]=0;J[J[b+120>>2]+(e|12)>>2]=0;d=d+4|0;g=g+4|0;if((k|0)!=(g|0)){continue}break}}c=c&3;if(!c){break l}e=0;while(1){J[J[b+120>>2]+(d<<2)>>2]=0;d=d+1|0;e=e+1|0;if((c|0)!=(e|0)){continue}break}}J[b+132>>2]=0}J[b+144>>2]=0;c=J[b+12>>2];d=J[c+28>>2];c=J[c+24>>2];J[i+16>>2]=-1;wb(b+152|0,d-c>>2,i+16|0);c=J[b+72>>2];J[b+76>>2]=c;s=b+72|0;d=J[b+12>>2];d=J[d+4>>2]-J[d>>2]|0;e=(d>>2>>>0)/3|0;m:{if(e>>>0<=J[b+80>>2]-c>>2>>>0){break m}if((d|0)<0){break i}e=e<<2;d=oa(e);J[b+76>>2]=d;J[b+72>>2]=d;J[b+80>>2]=d+e;if(!c){break m}na(c)}J[b- -64>>2]=0;if(!kg(b)){b=oa(32);H[b+29|0]=0;c=K[1768]|K[1769]<<8|(K[1770]<<16|K[1771]<<24);d=K[1764]|K[1765]<<8|(K[1766]<<16|K[1767]<<24);H[b+21|0]=d;H[b+22|0]=d>>>8;H[b+23|0]=d>>>16;H[b+24|0]=d>>>24;H[b+25|0]=c;H[b+26|0]=c>>>8;H[b+27|0]=c>>>16;H[b+28|0]=c>>>24;c=K[1763]|K[1764]<<8|(K[1765]<<16|K[1766]<<24);d=K[1759]|K[1760]<<8|(K[1761]<<16|K[1762]<<24);H[b+16|0]=d;H[b+17|0]=d>>>8;H[b+18|0]=d>>>16;H[b+19|0]=d>>>24;H[b+20|0]=c;H[b+21|0]=c>>>8;H[b+22|0]=c>>>16;H[b+23|0]=c>>>24;c=K[1755]|K[1756]<<8|(K[1757]<<16|K[1758]<<24);d=K[1751]|K[1752]<<8|(K[1753]<<16|K[1754]<<24);H[b+8|0]=d;H[b+9|0]=d>>>8;H[b+10|0]=d>>>16;H[b+11|0]=d>>>24;H[b+12|0]=c;H[b+13|0]=c>>>8;H[b+14|0]=c>>>16;H[b+15|0]=c>>>24;c=K[1747]|K[1748]<<8|(K[1749]<<16|K[1750]<<24);d=K[1743]|K[1744]<<8|(K[1745]<<16|K[1746]<<24);H[b|0]=d;H[b+1|0]=d>>>8;H[b+2|0]=d>>>16;H[b+3|0]=d>>>24;H[b+4|0]=c;H[b+5|0]=c>>>8;H[b+6|0]=c>>>16;H[b+7|0]=c>>>24;J[a>>2]=-1;Ga(a+4|0,b,29);na(b);break c}c=b;n:{if(K[b+288|0]){break n}b=J[c+8>>2];e=J[b+12>>2]-J[b+8>>2]|0;g=e>>2;d=g-1|0;b=J[c+176>>2];f=J[c+172>>2];k=(b-f|0)/136|0;o:{if(d>>>0>k>>>0){cg(c+172|0,d-k|0);break o}if(d>>>0>=k>>>0){break o}k=f+P(d,136)|0;if((k|0)!=(b|0)){while(1){d=b-136|0;f=J[d+116>>2];if(f){J[b-16>>2]=f;na(f)}f=J[b-32>>2];if(f){J[b-28>>2]=f;na(f)}pc(b-132|0);b=d;if((k|0)!=(b|0)){continue}break}}J[c+176>>2]=k}if((e|0)==4|(e|0)<=0){break n}k=(g|0)<=1?1:g;b=0;p:{while(1){f=J[J[J[c+8>>2]+8>>2]+(b<<2)>>2];if(J[f+56>>2]){h=P(n,136);d=h+J[c+172>>2]|0;J[d>>2]=b;e=J[d+104>>2];J[d+108>>2]=e;g=J[c+12>>2];g=J[g+4>>2]-J[g>>2]|0;j=g>>2;q:{if(j>>>0<=J[d+112>>2]-e>>2>>>0){break q}if((g|0)<0){break p}g=oa(g);J[d+108>>2]=g;J[d+104>>2]=g;J[d+112>>2]=g+(j<<2);if(!e){break q}na(e)}d=h+J[c+172>>2]|0;J[d+128>>2]=0;lf(d+4|0,J[c+8>>2],J[c+12>>2],f);n=n+1|0}b=b+1|0;if((k|0)!=(b|0)){continue}break}break n}qa();B()}b=(J[c+176>>2]-J[c+172>>2]|0)/136|0;H[i+31|0]=b;d=J[J[c+4>>2]+44>>2];e=J[d+20>>2];if(!J[d+16>>2]&(e|0)<=0|(e|0)<0){sa(d,J[d+4>>2],i+31|0,i+32|0);b=K[i+31|0]}J[c+284>>2]=b&255;b=J[c+12>>2];d=J[b>>2];b=J[b+4>>2];n=c+200|0;ig(n);g=0;J[i+24>>2]=0;J[i+16>>2]=0;J[i+20>>2]=0;k=0;b=b-d|0;if((b|0)>0){b=b>>>2|0;t=b>>>0<=1?1:b;d=0;while(1){b=(d>>>0)/3|0;p=b>>>5<<2;r=1<>2]+p>>2]){break r}if(Fc(J[c+12>>2],b)){break r}J[i+8>>2]=0;b=hg(c,b,i+8|0);Ca(n,b);f=J[i+8>>2];if(b){h=-1;e=-1;j=-1;s:{if((f|0)==-1){break s}l=J[J[c+12>>2]>>2];b=l+(f<<2)|0;h=f+1|0;h=(h>>>0)%3|0?h:f-2|0;if((h|0)!=-1){e=J[l+(h<<2)>>2]}h=J[b>>2];t:{if((f>>>0)%3|0){b=f-1|0;break t}b=f+2|0;j=-1;if((b|0)==-1){break s}}j=J[l+(b<<2)>>2]}b=J[c+84>>2];l=b+(h>>>3&536870908)|0;J[l>>2]=J[l>>2]|1<>>3&536870908)|0;J[h>>2]=J[h>>2]|1<>>3&536870908)|0;J[b>>2]=J[b>>2]|1<>2];h=J[c+104>>2];u:{if(b>>>0>>0){J[b>>2]=1;J[c+100>>2]=b+4;break u}j=b;b=J[c+96>>2];j=j-b|0;l=j>>2;e=l+1|0;if(e>>>0>=1073741824){break h}q=l<<2;h=h-b|0;l=h>>>1|0;e=h>>>0>=2147483644?1073741823:e>>>0>>0?l:e;if(e){if(e>>>0>=1073741824){break g}h=oa(e<<2)}else{h=0}l=q+h|0;J[l>>2]=1;q=e<<2;e=ta(h,b,j);J[c+104>>2]=q+e;J[c+100>>2]=l+4;J[c+96>>2]=e;if(!b){break u}na(b)}b=J[o>>2]+p|0;J[b>>2]=J[b>>2]|r;h=-1;if((f|0)!=-1){b=f+1|0;h=(b>>>0)%3|0?b:f-2|0}v:{if(g>>>0>>0){J[g>>2]=h;g=g+4|0;J[i+20>>2]=g;break v}e=g-k>>2;b=e+1|0;if(b>>>0>=1073741824){break f}j=m-k|0;m=j>>>1|0;b=j>>>0>=2147483644?1073741823:b>>>0>>0?m:b;if(b){if(b>>>0>=1073741824){break g}j=oa(b<<2)}else{j=0}e=j+(e<<2)|0;J[e>>2]=h;m=j+(b<<2)|0;b=e+4|0;if((g|0)!=(k|0)){while(1){e=e-4|0;g=g-4|0;J[e>>2]=J[g>>2];if((g|0)!=(k|0)){continue}break}}J[i+24>>2]=m;J[i+20>>2]=b;J[i+16>>2]=e;if(k){na(k)}k=e;g=b}if((f|0)==-1){break r}b=f+1|0;b=(b>>>0)%3|0?b:f-2|0;if((b|0)==-1){break r}b=J[J[J[c+12>>2]+12>>2]+(b<<2)>>2];if((b|0)==-1){break r}e=(b>>>0)/3|0;if(J[J[o>>2]+(e>>>3&268435452)>>2]>>>e&1){break r}if(gg(c,b)){break r}break e}if((f|0)!=-1){b=f+1|0;b=(b>>>0)%3|0?b:f-2|0}else{b=-1}Hc(c,b,1);if(!gg(c,J[i+8>>2])){break e}}d=d+1|0;if((t|0)!=(d|0)){continue}break}}d=J[c+72>>2];b=J[c+76>>2];w:{if((d|0)==(b|0)){break w}e=b-4|0;if(e>>>0<=d>>>0){break w}while(1){f=J[d>>2];J[d>>2]=J[e>>2];J[e>>2]=f;d=d+4|0;e=e-4|0;if(d>>>0>>0){continue}break}}fg(s,b,k,g);x:{if(J[c+172>>2]==J[c+176>>2]){break x}b=J[c+8>>2];d=J[b+100>>2];b=J[b+96>>2];H[i+8|0]=0;Na(o,(d-b|0)/12|0,i+8|0);d=J[c+72>>2];b=J[c+76>>2];if((d|0)==(b|0)){break x}while(1){eg(c,J[d>>2]);d=d+4|0;if((b|0)!=(d|0)){continue}break}}e=n;h=e+32|0;b=J[e+64>>2];b=J[(da[J[J[b>>2]+40>>2]](b)|0)+56>>2];Fd(h,P((J[b+100>>2]-J[b+96>>2]|0)/12|0,3),0,1);b=J[e+72>>2]-J[e+68>>2]|0;y:{if((b|0)<=0){break y}d=J[e+52>>2];if(!J[e+48>>2]&(d|0)<=0|(d|0)<0){break y}b=b>>>2|0;while(1){g=b;b=b-1|0;d=J[e+52>>2];z:{if(!J[e+48>>2]&(d|0)<=0|(d|0)<0){break z}o=J[J[e+68>>2]+(b<<2)>>2];if(!(171>>>o&1)){break z}j=J[(o<<2)+11152>>2];f=J[e+44>>2];d=J[f+4>>2];n=0;while(1){m=d>>>3|0;p=m+J[f>>2]|0;l=K[p|0];d=d&7;u=p,v=Ll(d)&l,H[u|0]=v;m=m+J[f>>2]|0;H[m|0]=K[m|0]|(o>>>n&1)<>2]+1|0;J[f+4>>2]=d;n=n+1|0;if((j|0)!=(n|0)){continue}break}}if((g|0)>1){continue}break}}Ed(h);b=c+232|0;ya(e,b);if(!(!J[c+280>>2]|J[c+284>>2]<=0)){d=0;while(1){ya(J[c+280>>2]+(d<<5)|0,b);d=d+1|0;if((d|0)>2]){continue}break}}Aa(J[c+272>>2]-J[c+268>>2]>>2,J[J[c+4>>2]+44>>2]);Aa(J[c+168>>2],J[J[c+4>>2]+44>>2]);if(!dg(c)){b=oa(32);H[b+28|0]=0;c=K[1909]|K[1910]<<8|(K[1911]<<16|K[1912]<<24);H[b+24|0]=c;H[b+25|0]=c>>>8;H[b+26|0]=c>>>16;H[b+27|0]=c>>>24;c=K[1905]|K[1906]<<8|(K[1907]<<16|K[1908]<<24);d=K[1901]|K[1902]<<8|(K[1903]<<16|K[1904]<<24);H[b+16|0]=d;H[b+17|0]=d>>>8;H[b+18|0]=d>>>16;H[b+19|0]=d>>>24;H[b+20|0]=c;H[b+21|0]=c>>>8;H[b+22|0]=c>>>16;H[b+23|0]=c>>>24;c=K[1897]|K[1898]<<8|(K[1899]<<16|K[1900]<<24);d=K[1893]|K[1894]<<8|(K[1895]<<16|K[1896]<<24);H[b+8|0]=d;H[b+9|0]=d>>>8;H[b+10|0]=d>>>16;H[b+11|0]=d>>>24;H[b+12|0]=c;H[b+13|0]=c>>>8;H[b+14|0]=c>>>16;H[b+15|0]=c>>>24;c=K[1889]|K[1890]<<8|(K[1891]<<16|K[1892]<<24);d=K[1885]|K[1886]<<8|(K[1887]<<16|K[1888]<<24);H[b|0]=d;H[b+1|0]=d>>>8;H[b+2|0]=d>>>16;H[b+3|0]=d>>>24;H[b+4|0]=c;H[b+5|0]=c>>>8;H[b+6|0]=c>>>16;H[b+7|0]=c>>>24;J[a>>2]=-1;Ga(a+4|0,b,28);na(b);break d}b=J[J[c+4>>2]+44>>2];d=J[b+20>>2];if(!J[b+16>>2]&(d|0)<=0|(d|0)<0){sa(b,J[b+4>>2],J[c+232>>2],J[c+236>>2])}J[a>>2]=0;J[a+4>>2]=0;J[a+8>>2]=0;J[a+12>>2]=0;break d}qa();B()}qa();B()}qa();B()}xa();B()}qa();B()}b=oa(48);H[b+32|0]=0;c=K[1703]|K[1704]<<8|(K[1705]<<16|K[1706]<<24);d=K[1699]|K[1700]<<8|(K[1701]<<16|K[1702]<<24);H[b+24|0]=d;H[b+25|0]=d>>>8;H[b+26|0]=d>>>16;H[b+27|0]=d>>>24;H[b+28|0]=c;H[b+29|0]=c>>>8;H[b+30|0]=c>>>16;H[b+31|0]=c>>>24;c=K[1695]|K[1696]<<8|(K[1697]<<16|K[1698]<<24);d=K[1691]|K[1692]<<8|(K[1693]<<16|K[1694]<<24);H[b+16|0]=d;H[b+17|0]=d>>>8;H[b+18|0]=d>>>16;H[b+19|0]=d>>>24;H[b+20|0]=c;H[b+21|0]=c>>>8;H[b+22|0]=c>>>16;H[b+23|0]=c>>>24;c=K[1687]|K[1688]<<8|(K[1689]<<16|K[1690]<<24);d=K[1683]|K[1684]<<8|(K[1685]<<16|K[1686]<<24);H[b+8|0]=d;H[b+9|0]=d>>>8;H[b+10|0]=d>>>16;H[b+11|0]=d>>>24;H[b+12|0]=c;H[b+13|0]=c>>>8;H[b+14|0]=c>>>16;H[b+15|0]=c>>>24;c=K[1679]|K[1680]<<8|(K[1681]<<16|K[1682]<<24);d=K[1675]|K[1676]<<8|(K[1677]<<16|K[1678]<<24);H[b|0]=d;H[b+1|0]=d>>>8;H[b+2|0]=d>>>16;H[b+3|0]=d>>>24;H[b+4|0]=c;H[b+5|0]=c>>>8;H[b+6|0]=c>>>16;H[b+7|0]=c>>>24;J[a>>2]=-1;Ga(a+4|0,b,32);na(b)}if(!k){break c}na(k)}ba=i+32|0}function lf(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;f=ba-16|0;ba=f;a:{b:{if(c){J[a+88>>2]=0;J[a+92>>2]=0;e=J[a+84>>2];J[a+84>>2]=0;if(e){na(e)}J[a+76>>2]=0;J[a+80>>2]=0;e=J[a+72>>2];J[a+72>>2]=0;if(e){na(e)}e=J[c>>2];g=J[c+4>>2];H[f+15|0]=0;Na(a,g-e>>2,f+15|0);e=J[c+28>>2];g=J[c+24>>2];H[f+14|0]=0;Na(a+12|0,e-g>>2,f+14|0);wb(a+28|0,J[c+4>>2]-J[c>>2]>>2,14948);g=J[c+28>>2]-J[c+24>>2]|0;h=g>>2;j=J[a+52>>2];c:{if(h>>>0<=J[a+60>>2]-j>>2>>>0){break c}if((g|0)<0){break a}e=J[a+56>>2];g=oa(g);h=g+(h<<2)|0;i=g+(e-j&-4)|0;g=i;if((e|0)!=(j|0)){while(1){g=g-4|0;e=e-4|0;J[g>>2]=J[e>>2];if((e|0)!=(j|0)){continue}break}}J[a+60>>2]=h;J[a+56>>2]=i;J[a+52>>2]=g;if(!j){break c}na(j)}g=J[c+28>>2]-J[c+24>>2]|0;h=g>>2;j=J[a+40>>2];d:{if(h>>>0<=J[a+48>>2]-j>>2>>>0){break d}if((g|0)<0){break a}e=J[a+44>>2];g=oa(g);h=g+(h<<2)|0;i=g+(e-j&-4)|0;g=i;if((e|0)!=(j|0)){while(1){g=g-4|0;e=e-4|0;J[g>>2]=J[e>>2];if((e|0)!=(j|0)){continue}break}}J[a+48>>2]=h;J[a+44>>2]=i;J[a+40>>2]=g;if(!j){break d}na(j)}H[a+24|0]=1;J[a+64>>2]=c}ba=f+16|0;c=(c|0)!=0;break b}if(c){J[a+88>>2]=0;J[a+92>>2]=0;c=J[a+84>>2];J[a+84>>2]=0;if(c){na(c)}J[a+76>>2]=0;J[a+80>>2]=0;c=J[a+72>>2];J[a+72>>2]=0;if(c){na(c)}h=J[a+64>>2];if(J[h+4>>2]!=J[h>>2]){c=0;while(1){m=(c>>>0)/3|0;f=Fc(h,m);h=J[a+64>>2];e:{if(f){break e}j=J[J[h+12>>2]+(c<<2)>>2];f:{g:{if((j|0)==-1){f=J[a>>2]+(c>>>3&536870908)|0;J[f>>2]=J[f>>2]|1<>>0)%3|0?f:c-2|0;if((f|0)!=-1){e=J[J[h>>2]+(f<<2)>>2]}f=J[a+12>>2];g=f+(e>>>3&536870908)|0;J[g>>2]=J[g>>2]|1<>>0)%3|0){e=c-1|0;break g}g=-1;e=c+2|0;if((e|0)!=-1){break g}break f}if(c>>>0>j>>>0){break e}e=-1;k=K[d+84|0];g=-1;l=c+1|0;n=c-2|0;i=(l>>>0)%3|0?l:n;if((i|0)>=0){f=(i>>>0)/3|0;g=J[(J[b+96>>2]+P(f,12)|0)+(i-P(f,3)<<2)>>2]}f=j+((j>>>0)%3|0?-1:2)|0;if((f|0)>=0){e=(f>>>0)/3|0;e=J[(J[b+96>>2]+P(e,12)|0)+(f-P(e,3)<<2)>>2]}if(!k){o=J[d+68>>2];e=J[o+(e<<2)>>2];g=J[(g<<2)+o>>2]}if((e|0)==(g|0)){e=-1;g=-1;if((i|0)!=-1){g=i+1|0;g=(g>>>0)%3|0?g:i-2|0}h:{if((f|0)==-1){break h}if((f>>>0)%3|0){e=f-1|0;break h}e=f+2|0}f=-1;i=-1;if((g|0)>=0){i=(g>>>0)/3|0;i=J[(J[b+96>>2]+P(i,12)|0)+(g-P(i,3)<<2)>>2]}if((e|0)>=0){f=(e>>>0)/3|0;f=J[(J[b+96>>2]+P(f,12)|0)+(e-P(f,3)<<2)>>2]}if(!k){e=J[d+68>>2];f=J[e+(f<<2)>>2];i=J[e+(i<<2)>>2]}if((f|0)==(i|0)){break e}}H[a+24|0]=0;f=J[a>>2];e=f+(c>>>3&536870908)|0;J[e>>2]=J[e>>2]|1<>>3&536870908)|0;J[f>>2]=J[f>>2]|1<>>0)%3|0?l:n;if((f|0)!=-1){i=J[J[h>>2]+(f<<2)>>2]}f=J[a+12>>2];e=f+(i>>>3&536870908)|0;J[e>>2]=J[e>>2]|1<>2]+(e<<2)>>2]}e=(g>>>3&536870908)+f|0;J[e>>2]=J[e>>2]|1<>>0)%3|0?e:j-2|0;if((e|0)!=-1){g=J[J[h>>2]+(e<<2)>>2]}e=(g>>>3&536870908)+f|0;J[e>>2]=J[e>>2]|1<>>0)%3|0){e=j-1|0;break g}g=-1;e=j+2|0;if((e|0)==-1){break f}}g=J[J[h>>2]+(e<<2)>>2]}f=(g>>>3&536870908)+f|0;J[f>>2]=J[f>>2]|1<>>0>2]-J[h>>2]>>2>>>0){continue}break}}if(!(!b|!d)){h=b;j=d;b=0;l=0;e=a;J[e+56>>2]=J[e+52>>2];J[e+44>>2]=J[e+40>>2];k:{d=J[e+64>>2];f=J[d+24>>2];if((f|0)==J[d+28>>2]){break k}l:{m:{while(1){a=b;b=J[(l<<2)+f>>2];n:{if((b|0)==-1){b=a;break n}if((b|0)<0){c=-1}else{c=(b>>>0)/3|0;c=J[(J[h+96>>2]+P(c,12)|0)+(b-P(c,3)<<2)>>2]}c=K[j+84|0]?c:J[J[j+68>>2]+(c<<2)>>2];d=J[e+56>>2];g=J[e+60>>2];o:{if(d>>>0>>0){J[d>>2]=c;J[e+56>>2]=d+4;break o}i=J[e+52>>2];m=d-i>>2;f=m+1|0;if(f>>>0>=1073741824){break a}g=g-i|0;k=g>>>1|0;k=g>>>0>=2147483644?1073741823:f>>>0>>0?k:f;if(k){if(k>>>0>=1073741824){break m}g=oa(k<<2)}else{g=0}f=g+(m<<2)|0;J[f>>2]=c;c=f+4|0;if((d|0)!=(i|0)){while(1){f=f-4|0;d=d-4|0;J[f>>2]=J[d>>2];if((d|0)!=(i|0)){continue}break}}J[e+60>>2]=g+(k<<2);J[e+56>>2]=c;J[e+52>>2]=f;if(!i){break o}na(i)}p:{q:{if(!(J[J[e+12>>2]+(l>>>3&536870908)>>2]>>>l&1)){break q}c=b+1|0;c=(c>>>0)%3|0?c:b-2|0;if((c|0)==-1|J[J[e>>2]+(c>>>3&536870908)>>2]>>>c&1){break q}c=J[J[J[e+64>>2]+12>>2]+(c<<2)>>2];if((c|0)==-1){break q}d=c+1|0;d=(d>>>0)%3|0?d:c-2|0;if((d|0)==-1){break q}g=J[e+64>>2];i=J[e>>2];while(1){c=d;d=-1;f=c+1|0;f=(f>>>0)%3|0?f:c-2|0;r:{if((f|0)==-1|J[i+(f>>>3&536870908)>>2]>>>f&1){break r}f=J[J[g+12>>2]+(f<<2)>>2];if((f|0)==-1){break r}d=f+1|0;d=(d>>>0)%3|0?d:f-2|0}if((b|0)!=(d|0)){if((d|0)==-1){break p}continue}break}break k}c=b}J[J[e+28>>2]+(c<<2)>>2]=a;d=J[e+44>>2];s:{if((d|0)!=J[e+48>>2]){J[d>>2]=c;J[e+44>>2]=d+4;break s}g=J[e+40>>2];b=d-g|0;k=b>>2;f=k+1|0;if(f>>>0>=1073741824){break l}i=b>>>1|0;i=b>>>0>=2147483644?1073741823:f>>>0>>0?i:f;if(i){if(i>>>0>=1073741824){break m}b=oa(i<<2)}else{b=0}f=b+(k<<2)|0;J[f>>2]=c;k=f+4|0;if((d|0)!=(g|0)){while(1){f=f-4|0;d=d-4|0;J[f>>2]=J[d>>2];if((d|0)!=(g|0)){continue}break}}J[e+48>>2]=b+(i<<2);J[e+44>>2]=k;J[e+40>>2]=f;if(!g){break s}na(g)}b=a+1|0;d=J[e+64>>2];if((c|0)==-1){break n}t:{if((c>>>0)%3|0){f=c-1|0;break t}f=c+2|0;if((f|0)==-1){break n}}f=J[J[d+12>>2]+(f<<2)>>2];if((f|0)==-1){break n}i=f+((f>>>0)%3|0?-1:2)|0;if((i|0)==-1|(c|0)==(i|0)){break n}while(1){d=i+1|0;d=(d>>>0)%3|0?d:i-2|0;if(J[J[e>>2]+(d>>>3&536870908)>>2]>>>d&1){g=(i|0)<0?-1:J[(J[h+96>>2]+P((i>>>0)/3|0,12)|0)+((i>>>0)%3<<2)>>2];g=K[j+84|0]?g:J[J[j+68>>2]+(g<<2)>>2];d=J[e+56>>2];f=J[e+60>>2];u:{if(d>>>0>>0){J[d>>2]=g;J[e+56>>2]=d+4;break u}k=J[e+52>>2];n=d-k>>2;a=n+1|0;if(a>>>0>=1073741824){break a}f=f-k|0;m=f>>>1|0;m=f>>>0>=2147483644?1073741823:a>>>0>>0?m:a;if(m){if(m>>>0>=1073741824){break m}a=oa(m<<2)}else{a=0}f=a+(n<<2)|0;J[f>>2]=g;g=f+4|0;if((d|0)!=(k|0)){while(1){f=f-4|0;d=d-4|0;J[f>>2]=J[d>>2];if((d|0)!=(k|0)){continue}break}}J[e+60>>2]=a+(m<<2);J[e+56>>2]=g;J[e+52>>2]=f;if(!k){break u}na(k)}g=b+1|0;d=J[e+44>>2];v:{if((d|0)!=J[e+48>>2]){J[d>>2]=i;J[e+44>>2]=d+4;break v}k=J[e+40>>2];a=d-k|0;n=a>>2;f=n+1|0;if(f>>>0>=1073741824){break l}m=a>>>1|0;m=a>>>0>=2147483644?1073741823:f>>>0>>0?m:f;if(m){if(m>>>0>=1073741824){break m}a=oa(m<<2)}else{a=0}f=a+(n<<2)|0;J[f>>2]=i;n=f+4|0;if((d|0)!=(k|0)){while(1){f=f-4|0;d=d-4|0;J[f>>2]=J[d>>2];if((d|0)!=(k|0)){continue}break}}J[e+48>>2]=a+(m<<2);J[e+44>>2]=n;J[e+40>>2]=f;if(!k){break v}na(k)}a=b;b=g}J[J[e+28>>2]+(i<<2)>>2]=a;d=J[e+64>>2];w:{if((i>>>0)%3|0){f=i-1|0;break w}f=i+2|0;if((f|0)==-1){break n}}f=J[J[d+12>>2]+(f<<2)>>2];if((f|0)==-1){break n}i=f+((f>>>0)%3|0?-1:2)|0;if((i|0)==-1){break n}if((c|0)!=(i|0)){continue}break}}l=l+1|0;f=J[d+24>>2];if(l>>>0>2]-f>>2>>>0){continue}break}break k}xa();B()}break a}return}b=0;f=0;e=a;J[e+56>>2]=J[e+52>>2];J[e+44>>2]=J[e+40>>2];x:{d=J[e+64>>2];h=J[d+24>>2];if((h|0)==J[d+28>>2]){break x}y:{z:{while(1){a=b;b=J[(f<<2)+h>>2];A:{if((b|0)==-1){b=a;break A}d=J[e+56>>2];B:{if((d|0)!=J[e+60>>2]){J[d>>2]=a;J[e+56>>2]=d+4;break B}g=J[e+52>>2];c=d-g|0;h=c>>2;j=h+1|0;if(j>>>0>=1073741824){break a}i=c>>>1|0;j=c>>>0>=2147483644?1073741823:i>>>0>j>>>0?i:j;if(j){if(j>>>0>=1073741824){break z}c=oa(j<<2)}else{c=0}h=c+(h<<2)|0;J[h>>2]=a;i=h+4|0;if((d|0)!=(g|0)){while(1){h=h-4|0;d=d-4|0;J[h>>2]=J[d>>2];if((d|0)!=(g|0)){continue}break}}J[e+60>>2]=c+(j<<2);J[e+56>>2]=i;J[e+52>>2]=h;if(!g){break B}na(g)}C:{D:{if(!(J[J[e+12>>2]+(f>>>3&536870908)>>2]>>>f&1)){break D}c=b+1|0;c=(c>>>0)%3|0?c:b-2|0;if((c|0)==-1|J[J[e>>2]+(c>>>3&536870908)>>2]>>>c&1){break D}c=J[J[J[e+64>>2]+12>>2]+(c<<2)>>2];if((c|0)==-1){break D}d=c+1|0;d=(d>>>0)%3|0?d:c-2|0;if((d|0)==-1){break D}j=J[e+64>>2];h=J[e>>2];while(1){c=d;d=-1;g=c+1|0;g=(g>>>0)%3|0?g:c-2|0;E:{if((g|0)==-1|J[h+(g>>>3&536870908)>>2]>>>g&1){break E}g=J[J[j+12>>2]+(g<<2)>>2];if((g|0)==-1){break E}d=g+1|0;d=(d>>>0)%3|0?d:g-2|0}if((b|0)!=(d|0)){if((d|0)==-1){break C}continue}break}break x}c=b}J[J[e+28>>2]+(c<<2)>>2]=a;d=J[e+44>>2];F:{if((d|0)!=J[e+48>>2]){J[d>>2]=c;J[e+44>>2]=d+4;break F}g=J[e+40>>2];b=d-g|0;h=b>>2;j=h+1|0;if(j>>>0>=1073741824){break y}i=b>>>1|0;j=b>>>0>=2147483644?1073741823:i>>>0>j>>>0?i:j;if(j){if(j>>>0>=1073741824){break z}b=oa(j<<2)}else{b=0}h=b+(h<<2)|0;J[h>>2]=c;i=h+4|0;if((d|0)!=(g|0)){while(1){h=h-4|0;d=d-4|0;J[h>>2]=J[d>>2];if((d|0)!=(g|0)){continue}break}}J[e+48>>2]=b+(j<<2);J[e+44>>2]=i;J[e+40>>2]=h;if(!g){break F}na(g)}b=a+1|0;d=J[e+64>>2];if((c|0)==-1){break A}G:{if((c>>>0)%3|0){h=c-1|0;break G}h=c+2|0;if((h|0)==-1){break A}}g=J[J[d+12>>2]+(h<<2)>>2];if((g|0)==-1){break A}g=g+((g>>>0)%3|0?-1:2)|0;if((g|0)==-1|(c|0)==(g|0)){break A}while(1){d=g+1|0;d=(d>>>0)%3|0?d:g-2|0;if(J[J[e>>2]+(d>>>3&536870908)>>2]>>>d&1){d=J[e+56>>2];H:{if((d|0)!=J[e+60>>2]){J[d>>2]=b;J[e+56>>2]=d+4;break H}j=J[e+52>>2];a=d-j|0;l=a>>2;h=l+1|0;if(h>>>0>=1073741824){break a}i=a>>>1|0;i=a>>>0>=2147483644?1073741823:i>>>0>h>>>0?i:h;if(i){if(i>>>0>=1073741824){break z}a=oa(i<<2)}else{a=0}h=a+(l<<2)|0;J[h>>2]=b;l=h+4|0;if((d|0)!=(j|0)){while(1){h=h-4|0;d=d-4|0;J[h>>2]=J[d>>2];if((d|0)!=(j|0)){continue}break}}J[e+60>>2]=a+(i<<2);J[e+56>>2]=l;J[e+52>>2]=h;if(!j){break H}na(j)}j=b+1|0;d=J[e+44>>2];I:{if((d|0)!=J[e+48>>2]){J[d>>2]=g;J[e+44>>2]=d+4;break I}i=J[e+40>>2];a=d-i|0;k=a>>2;h=k+1|0;if(h>>>0>=1073741824){break y}l=a>>>1|0;l=a>>>0>=2147483644?1073741823:h>>>0>>0?l:h;if(l){if(l>>>0>=1073741824){break z}a=oa(l<<2)}else{a=0}h=a+(k<<2)|0;J[h>>2]=g;k=h+4|0;if((d|0)!=(i|0)){while(1){h=h-4|0;d=d-4|0;J[h>>2]=J[d>>2];if((d|0)!=(i|0)){continue}break}}J[e+48>>2]=a+(l<<2);J[e+44>>2]=k;J[e+40>>2]=h;if(!i){break I}na(i)}a=b;b=j}J[J[e+28>>2]+(g<<2)>>2]=a;d=J[e+64>>2];J:{if((g>>>0)%3|0){h=g-1|0;break J}h=g+2|0;if((h|0)==-1){break A}}g=J[J[d+12>>2]+(h<<2)>>2];if((g|0)==-1){break A}g=g+((g>>>0)%3|0?-1:2)|0;if((g|0)==-1){break A}if((c|0)!=(g|0)){continue}break}}f=f+1|0;h=J[d+24>>2];if(f>>>0>2]-h>>2>>>0){continue}break}break x}xa();B()}break a}}return}qa();B()}function mf(a){var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,C=0;z=ba-16|0;ba=z;b=oa(88);J[b>>2]=0;J[b+4>>2]=0;J[b+56>>2]=0;J[b+48>>2]=0;J[b+52>>2]=0;J[b+40>>2]=0;J[b+44>>2]=0;J[b+32>>2]=0;J[b+36>>2]=0;J[b+24>>2]=0;J[b+28>>2]=0;J[b+16>>2]=0;J[b+20>>2]=0;J[b+8>>2]=0;J[b+12>>2]=0;c=b- -64|0;J[c>>2]=0;J[c+4>>2]=0;J[b+72>>2]=0;J[b+76>>2]=0;J[b+80>>2]=0;J[b+84>>2]=0;J[b+60>>2]=b;c=a;w=ba-16|0;ba=w;J[b+80>>2]=0;J[b+84>>2]=0;d=J[b+76>>2];a=b;J[b+76>>2]=0;if(d){na(d)}J[a+68>>2]=0;J[a+72>>2]=0;b=a- -64|0;d=J[b>>2];J[b>>2]=0;if(d){na(d)}f=J[c+4>>2];d=J[c>>2];b=(f-d|0)/12|0;l=P(b,3);i=J[a>>2];e=J[a+4>>2]-i>>2;a:{if(l>>>0>e>>>0){Ld(a,l-e|0);f=J[c+4>>2];d=J[c>>2];b=(f-d|0)/12|0;break a}if(e>>>0<=l>>>0){break a}J[a+4>>2]=i+(l<<2)}b:{if((d|0)==(f|0)){break b}f=b>>>0<=1?1:b;e=f&1;g=J[a>>2];c=0;if(b>>>0>=2){i=f&-2;b=0;while(1){j=P(c,12);f=j+g|0;l=d+j|0;J[f>>2]=J[l>>2];J[g+(j|4)>>2]=J[l+4>>2];J[f+8>>2]=J[l+8>>2];f=P(c|1,12);l=f+g|0;f=d+f|0;J[l>>2]=J[f>>2];J[l+4>>2]=J[f+4>>2];J[l+8>>2]=J[f+8>>2];c=c+2|0;b=b+2|0;if((i|0)!=(b|0)){continue}break}}if(!e){break b}c=P(c,12);b=c+g|0;c=c+d|0;J[b>>2]=J[c>>2];J[b+4>>2]=J[c+4>>2];J[b+8>>2]=J[c+8>>2]}J[w+12>>2]=-1;c=0;f=0;g=0;o=ba-32|0;ba=o;c:{s=w+12|0;d:{if(!s){break d}b=J[a+4>>2];j=J[a>>2];e=b-j|0;m=e>>2;d=J[a+12>>2];i=J[a+16>>2]-d>>2;e:{if(m>>>0>i>>>0){Ma(a+12|0,m-i|0,14880);b=J[a+4>>2];j=J[a>>2];e=b-j|0;m=e>>2;break e}if(i>>>0<=m>>>0){break e}J[a+16>>2]=d+(m<<2)}J[o+24>>2]=0;J[o+16>>2]=0;J[o+20>>2]=0;d=(b|0)==(j|0);if(!d){if((e|0)<0){break c}f=oa(e);J[o+20>>2]=f;J[o+16>>2]=f;J[o+24>>2]=(m<<2)+f}f:{g:{h:{i:{j:{if(e){while(1){d=J[(c<<2)+j>>2];e=J[o+20>>2]-f>>2;k:{if(d>>>0>>0){break k}J[o>>2]=0;i=d+1|0;if(i>>>0>e>>>0){jc(o+16|0,i-e|0,o);j=J[a>>2];b=J[a+4>>2];f=J[o+16>>2];break k}if(e>>>0<=i>>>0){break k}J[o+20>>2]=(i<<2)+f}d=(d<<2)+f|0;J[d>>2]=J[d>>2]+1;c=c+1|0;e=b-j|0;m=e>>2;if(c>>>0>>0){continue}break}break j}e=0;if(!d){break i}break h}if((b|0)==(j|0)){e=0;break h}if(e>>>0>=2147483645){break g}}e=oa(e<<1);pa(e,255,m<<3)}J[o+8>>2]=0;J[o>>2]=0;J[o+4>>2]=0;c=J[o+20>>2];b=c-f|0;y=b>>2;l:{m:{if((c|0)==(f|0)){break m}if((b|0)<0){break l}v=oa(b);J[o>>2]=v;J[o+8>>2]=(y<<2)+v;q=pa(v,0,b);J[o+4>>2]=q+b;b=y>>>0<=1?1:y;l=b&3;c=0;if(b-1>>>0>=3){i=b&-4;while(1){p=g<<2;J[p+q>>2]=c;b=p|4;c=J[f+p>>2]+c|0;J[b+q>>2]=c;d=p|8;c=c+J[b+f>>2]|0;J[d+q>>2]=c;b=p|12;c=c+J[d+f>>2]|0;J[b+q>>2]=c;c=c+J[b+f>>2]|0;g=g+4|0;h=h+4|0;if((i|0)!=(h|0)){continue}break}}if(!l){break m}while(1){b=g<<2;J[b+q>>2]=c;g=g+1|0;c=J[b+f>>2]+c|0;r=r+1|0;if((l|0)!=(r|0)){continue}break}}if(!m){break f}u=J[a+40>>2];k=J[a+12>>2];l=0;while(1){q=l<<2;d=q+j|0;r=-1;b=l+1|0;c=(b>>>0)%3|0?b:l-2|0;if((c|0)!=-1){r=J[(c<<2)+j>>2]}p=J[d>>2];n:{o:{if(!((l>>>0)%3|0)){h=-1;c=l+2|0;if((c|0)!=-1){h=J[(c<<2)+j>>2]}if(!((p|0)==(r|0)|(h|0)==(p|0))&(h|0)!=(r|0)){break o}u=u+1|0;J[a+40>>2]=u;b=l+3|0;break n}h=J[d-4>>2]}c=h<<2;t=J[c+f>>2];p:{q:{if((t|0)<=0){break q}c=J[c+v>>2];g=0;while(1){i=(c<<3)+e|0;d=J[i>>2];if((d|0)==-1){break q}r:{if((d|0)!=(r|0)){break r}n=J[i+4>>2];if((n|0)!=-1){d=J[(n<<2)+j>>2]}else{d=-1}if((d|0)==(p|0)){break r}while(1){s:{d=c;g=g+1|0;if((t|0)<=(g|0)){break s}c=d+1|0;p=(c<<3)+e|0;x=J[p>>2];i=(d<<3)+e|0;J[i+4>>2]=J[p+4>>2];J[i>>2]=x;if((x|0)!=-1){continue}}break}J[(d<<3)+e>>2]=-1;if((n|0)==-1){break q}J[k+q>>2]=n;J[k+(n<<2)>>2]=l;break p}c=c+1|0;g=g+1|0;if((t|0)!=(g|0)){continue}break}}c=r<<2;d=J[c+f>>2];if((d|0)<=0){break p}c=J[c+v>>2];g=0;while(1){i=(c<<3)+e|0;if(J[i>>2]==-1){J[i>>2]=h;J[i+4>>2]=l;break p}c=c+1|0;g=g+1|0;if((d|0)!=(g|0)){continue}break}}}l=b;if(l>>>0>>0){continue}break}break f}break c}ke(1313);B()}J[s>>2]=y;if(v){na(v)}if(e){na(e)}c=J[o+16>>2];if(!c){break d}J[o+20>>2]=c;na(c)}ba=o+32|0;x=(s|0)!=0;if(x){n=ba-32|0;ba=n;c=J[a>>2];g=J[a+4>>2];J[n+24>>2]=0;J[n+16>>2]=0;J[n+20>>2]=0;if((c|0)==(g|0)){b=g}else{c=g-c|0;if((c|0)<0){break c}d=c>>2;b=(d-1>>>5|0)+1|0;c=oa(b<<2);J[n+24>>2]=b;J[n+20>>2]=0;J[n+16>>2]=c;mc(n+16|0,d);g=J[a>>2];b=J[a+4>>2]}J[n+8>>2]=0;J[n>>2]=0;while(1){t:{k=0;m=0;if((b|0)==(g|0)){break t}while(1){e=J[n+16>>2];u:{if(J[e+(m>>>3&536870908)>>2]>>>m&1){break u}b=J[n>>2];J[n+4>>2]=b;f=J[a+12>>2];c=m;while(1){v:{d=c+1|0;i=c;c=(d>>>0)%3|0?d:c-2|0;if((c|0)==-1){break v}d=J[f+(c<<2)>>2];if((d|0)==-1){break v}c=d+1|0;c=(c>>>0)%3|0?c:d-2|0;if((m|0)==(c|0)|(c|0)==-1){break v}if(!(J[e+(c>>>3&536870908)>>2]>>>c&1)){continue}}break}j=i;w:{x:{y:{while(1){c=J[n+16>>2]+(j>>>3&536870908)|0;J[c>>2]=J[c>>2]|1<>>0)%3|0?c:j-2|0;g=J[a>>2];q=(j>>>0)%3|0;d=(q?-1:2)+j|0;l=J[n>>2];p=(l|0)==(b|0);z:{if(p){break z}t=J[(e<<2)+g>>2];s=J[a+12>>2];c=l;if((d|0)!=-1){f=s+(d<<2)|0;while(1){A:{if((t|0)!=J[c>>2]){break A}u=J[f>>2];h=J[c+4>>2];if((u|0)==(h|0)){break A}f=d;b=-1;c=-1;if((h|0)==-1){break w}break x}c=c+8|0;if((b|0)!=(c|0)){continue}break}break z}while(1){if((t|0)==J[c>>2]){u=-1;f=-1;h=J[c+4>>2];if((h|0)!=-1){break x}}c=c+8|0;if((b|0)!=(c|0)){continue}break}}g=J[(d<<2)+g>>2];B:{if(J[n+8>>2]!=(b|0)){J[b>>2]=g;J[b+4>>2]=e;b=b+8|0;J[n+4>>2]=b;break B}h=b-l|0;d=h>>3;f=d+1|0;if(f>>>0>=536870912){break c}c=h>>>2|0;h=h>>>0>=2147483640?536870911:c>>>0>f>>>0?c:f;if(h){if(h>>>0>=536870912){break y}f=oa(h<<3)}else{f=0}c=f+(d<<3)|0;J[c>>2]=g;J[c+4>>2]=e;d=c+8|0;if(!p){while(1){b=b-8|0;e=J[b+4>>2];c=c-8|0;J[c>>2]=J[b>>2];J[c+4>>2]=e;if((b|0)!=(l|0)){continue}break}b=J[n>>2]}J[n+8>>2]=f+(h<<3);J[n+4>>2]=d;J[n>>2]=c;if(b){na(b)}b=d}C:{D:{if(q){c=j-1|0;break D}c=j+2|0;if((c|0)==-1){break C}}c=J[J[a+12>>2]+(c<<2)>>2];if((c|0)==-1){break C}j=c+((c>>>0)%3|0?-1:2)|0;if((i|0)==(j|0)){break C}if((j|0)!=-1){continue}}break}g=J[a>>2];break u}xa();B()}b=J[s+(h<<2)>>2];d=f;c=h}if((u|0)!=-1){J[s+(u<<2)>>2]=-1}if((b|0)!=-1){J[s+(b<<2)>>2]=-1}J[s+(d<<2)>>2]=-1;J[s+(c<<2)>>2]=-1;k=1}m=m+1|0;b=J[a+4>>2];if(m>>>0>2>>>0){continue}break}if(k){continue}}break}c=J[n>>2];if(c){na(c)}c=J[n+16>>2];if(c){na(c)}ba=n+32|0;l=0;k=ba-32|0;ba=k;f=J[w+12>>2];J[a+36>>2]=f;t=a+24|0;c=J[a+24>>2];b=J[a+28>>2]-c>>2;E:{F:{if(b>>>0>>0){Ma(t,f-b|0,14880);J[k+24>>2]=0;J[k+16>>2]=0;J[k+20>>2]=0;break F}if(b>>>0>f>>>0){J[a+28>>2]=c+(f<<2)}J[k+24>>2]=0;J[k+16>>2]=0;J[k+20>>2]=0;if(!f){break E}}if((f|0)<0){break c}b=(f-1>>>5|0)+1|0;c=oa(b<<2);J[k+24>>2]=b;J[k+20>>2]=0;J[k+16>>2]=c;mc(k+16|0,f)}c=J[a>>2];d=J[a+4>>2];J[k+8>>2]=0;J[k>>2]=0;J[k+4>>2]=0;G:{if((c|0)==(d|0)){c=d}else{c=d-c|0;if((c|0)<0){break c}d=c>>2;b=(d-1>>>5|0)+1|0;c=oa(b<<2);J[k+8>>2]=b;J[k+4>>2]=0;J[k>>2]=c;mc(k,d);d=J[a>>2];c=J[a+4>>2]}if(c-d>>>0<12){break G}H:{while(1){q=P(l,3);e=(q<<2)+d|0;h=J[e>>2];b=-1;i=q+1|0;if((i|0)!=-1){b=J[(i<<2)+d>>2]}I:{if((b|0)==(h|0)){break I}i=J[e+8>>2];if((i|0)==(h|0)|(b|0)==(i|0)){break I}r=0;m=J[k>>2];while(1){i=q+r|0;if(!(J[(i>>>3&536870908)+m>>2]>>>i&1)){c=J[(i<<2)+d>>2];b=1<>2];d=c>>>5|0;m=J[e+(d<<2)>>2];p=b&m;if(p){b=J[a+28>>2];J:{if((b|0)!=J[a+32>>2]){J[b>>2]=-1;J[a+28>>2]=b+4;break J}g=J[t>>2];j=b-g|0;e=j>>2;h=e+1|0;if(h>>>0>=1073741824){break c}d=j>>>1|0;j=j>>>0>=2147483644?1073741823:d>>>0>h>>>0?d:h;if(j){if(j>>>0>=1073741824){break H}d=oa(j<<2)}else{d=0}e=d+(e<<2)|0;J[e>>2]=-1;h=e+4|0;if((b|0)!=(g|0)){while(1){e=e-4|0;b=b-4|0;J[e>>2]=J[b>>2];if((b|0)!=(g|0)){continue}break}}J[a+32>>2]=d+(j<<2);J[a+28>>2]=h;J[a+24>>2]=e;if(!g){break J}na(g)}b=J[a+52>>2];K:{if((b|0)!=J[a+56>>2]){J[b>>2]=c;J[a+52>>2]=b+4;break K}g=J[a+48>>2];j=b-g|0;e=j>>2;h=e+1|0;if(h>>>0>=1073741824){break c}d=j>>>1|0;h=j>>>0>=2147483644?1073741823:d>>>0>h>>>0?d:h;if(h){if(h>>>0>=1073741824){break H}d=oa(h<<2)}else{d=0}e=d+(e<<2)|0;J[e>>2]=c;c=e+4|0;if((b|0)!=(g|0)){while(1){e=e-4|0;b=b-4|0;J[e>>2]=J[b>>2];if((b|0)!=(g|0)){continue}break}}J[a+56>>2]=d+(h<<2);J[a+52>>2]=c;J[a+48>>2]=e;if(!g){break K}na(g)}b=J[k+20>>2];c=J[k+24>>2];if((b|0)==c<<5){if((b+1|0)<0){break c}e=k+16|0;if(b>>>0<=1073741822){d=c<<6;c=(b&-32)+32|0;c=c>>>0>>0?d:c}else{c=2147483647}wc(e,c);b=J[k+20>>2]}J[k+20>>2]=b+1;e=J[k+16>>2];d=e+(b>>>3&536870908)|0;c=J[d>>2];A=d,C=Ll(b)&c,J[A>>2]=C;b=1<>>5|0;m=J[(d<<2)+e>>2];c=f;f=c+1|0}J[(d<<2)+e>>2]=b|m;j=J[a+24>>2]+(c<<2)|0;g=J[a+12>>2];d=J[a>>2];m=J[k>>2];b=i;L:{M:{N:{while(1){if((b|0)==-1){break N}e=(b>>>3&536870908)+m|0;J[e>>2]=J[e>>2]|1<>2]=b;if(p){J[(b<<2)+d>>2]=c}h=b+1|0;b=(h>>>0)%3|0?h:b-2|0;e=-1;O:{if((b|0)==-1){break O}h=J[g+(b<<2)>>2];e=-1;if((h|0)==-1){break O}b=h+1|0;e=(b>>>0)%3|0?b:h-2|0}b=e;if((i|0)!=(b|0)){continue}break}if((i|0)!=-1){break L}b=1;break M}if((i>>>0)%3|0){b=i-1|0;break M}b=i+2|0;if((b|0)==-1){break L}}b=J[g+(b<<2)>>2];if((b|0)==-1){break L}P:{if((b>>>0)%3|0){b=b-1|0;break P}b=b+2|0;if((b|0)==-1){break L}}e=J[a+12>>2];d=J[a>>2];while(1){i=(b>>>3&536870908)+m|0;J[i>>2]=J[i>>2]|1<>2]=c}Q:{if((b>>>0)%3|0){b=b-1|0;break Q}b=b+2|0;if((b|0)==-1){break L}}b=J[e+(b<<2)>>2];if((b|0)==-1){break L}b=b+((b>>>0)%3|0?-1:2)|0;if((b|0)!=-1){continue}break}}}r=r+1|0;if((r|0)!=3){continue}break}d=J[a>>2];c=J[a+4>>2]}l=l+1|0;if(l>>>0<(c-d>>2>>>0)/3>>>0){continue}break}break G}xa();B()}b=0;J[a+44>>2]=0;c=J[k+16>>2];d=J[k+20>>2];if(d){i=d&31;f=(d>>>3&536870908)+c|0;e=c;m=0;while(1){if(!(J[e>>2]>>>b&1)){m=m+1|0;J[a+44>>2]=m}d=(b|0)==31;b=d?0:b+1|0;e=(d<<2)+e|0;if((f|0)!=(e|0)|(b|0)!=(i|0)){continue}break}}b=J[k>>2];if(b){na(b);c=J[k+16>>2]}if(c){na(c)}ba=k+32|0}ba=w+16|0;if(!x){J[z+8>>2]=0;qc(a);a=0}ba=z+16|0;return a}qa();B()}function nd(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;l=ba-16|0;ba=l;a:{b:{c:{d:{e:{f:{g:{h:{i:{if(a>>>0<=244){g=J[4849];h=a>>>0<11?16:a+11&-8;c=h>>>3|0;b=g>>>c|0;if(b&3){c=c+((b^-1)&1)|0;a=c<<3;b=a+19436|0;d=J[a+19444>>2];a=J[d+8>>2];j:{if((b|0)==(a|0)){m=19396,n=Ll(c)&g,J[m>>2]=n;break j}J[a+12>>2]=b;J[b+8>>2]=a}a=d+8|0;b=c<<3;J[d+4>>2]=b|3;b=b+d|0;J[b+4>>2]=J[b+4>>2]|1;break a}k=J[4851];if(k>>>0>=h>>>0){break i}if(b){a=2<>2];a=J[e+8>>2];k:{if((b|0)==(a|0)){g=Ll(d)&g;J[4849]=g;break k}J[a+12>>2]=b;J[b+8>>2]=a}J[e+4>>2]=h|3;c=e+h|0;a=d<<3;d=a-h|0;J[c+4>>2]=d|1;J[a+e>>2]=d;if(k){b=(k&-8)+19436|0;f=J[4854];a=1<<(k>>>3);l:{if(!(a&g)){J[4849]=a|g;a=b;break l}a=J[b+8>>2]}J[b+8>>2]=f;J[a+12>>2]=f;J[f+12>>2]=b;J[f+8>>2]=a}a=e+8|0;J[4854]=c;J[4851]=d;break a}j=J[4850];if(!j){break i}c=J[(Gl(0-j&j)<<2)+19700>>2];f=(J[c+4>>2]&-8)-h|0;b=c;while(1){m:{a=J[b+16>>2];if(!a){a=J[b+20>>2];if(!a){break m}}b=(J[a+4>>2]&-8)-h|0;d=b>>>0>>0;f=d?b:f;c=d?a:c;b=a;continue}break}i=J[c+24>>2];d=J[c+12>>2];if((d|0)!=(c|0)){a=J[c+8>>2];J[a+12>>2]=d;J[d+8>>2]=a;break b}b=c+20|0;a=J[b>>2];if(!a){a=J[c+16>>2];if(!a){break h}b=c+16|0}while(1){e=b;d=a;b=a+20|0;a=J[b>>2];if(a){continue}b=d+16|0;a=J[d+16>>2];if(a){continue}break}J[e>>2]=0;break b}h=-1;if(a>>>0>4294967231){break i}a=a+11|0;h=a&-8;j=J[4850];if(!j){break i}f=0-h|0;g=0;n:{if(h>>>0<256){break n}g=31;if(h>>>0>16777215){break n}a=S(a>>>8|0);g=((h>>>38-a&1)-(a<<1)|0)+62|0}b=J[(g<<2)+19700>>2];o:{p:{q:{if(!b){a=0;break q}a=0;c=h<<((g|0)!=31?25-(g>>>1|0)|0:0);while(1){r:{e=(J[b+4>>2]&-8)-h|0;if(e>>>0>=f>>>0){break r}d=b;f=e;if(e){break r}f=0;a=b;break p}e=J[b+20>>2];b=J[((c>>>29&4)+b|0)+16>>2];a=e?(e|0)==(b|0)?a:e:a;c=c<<1;if(b){continue}break}}if(!(a|d)){d=0;a=2<>2]}if(!a){break o}}while(1){b=(J[a+4>>2]&-8)-h|0;c=b>>>0>>0;f=c?b:f;d=c?a:d;b=J[a+16>>2];if(b){a=b}else{a=J[a+20>>2]}if(a){continue}break}}if(!d|J[4851]-h>>>0<=f>>>0){break i}g=J[d+24>>2];c=J[d+12>>2];if((d|0)!=(c|0)){a=J[d+8>>2];J[a+12>>2]=c;J[c+8>>2]=a;break c}b=d+20|0;a=J[b>>2];if(!a){a=J[d+16>>2];if(!a){break g}b=d+16|0}while(1){e=b;c=a;b=a+20|0;a=J[b>>2];if(a){continue}b=c+16|0;a=J[c+16>>2];if(a){continue}break}J[e>>2]=0;break c}a=J[4851];if(a>>>0>=h>>>0){d=J[4854];b=a-h|0;s:{if(b>>>0>=16){c=d+h|0;J[c+4>>2]=b|1;J[a+d>>2]=b;J[d+4>>2]=h|3;break s}J[d+4>>2]=a|3;a=a+d|0;J[a+4>>2]=J[a+4>>2]|1;c=0;b=0}J[4851]=b;J[4854]=c;a=d+8|0;break a}i=J[4852];if(i>>>0>h>>>0){b=i-h|0;J[4852]=b;c=J[4855];a=c+h|0;J[4855]=a;J[a+4>>2]=b|1;J[c+4>>2]=h|3;a=c+8|0;break a}a=0;j=h+47|0;if(J[4967]){c=J[4969]}else{J[4970]=-1;J[4971]=-1;J[4968]=4096;J[4969]=4096;J[4967]=l+12&-16^1431655768;J[4972]=0;J[4960]=0;c=4096}e=j+c|0;f=0-c|0;b=e&f;if(b>>>0<=h>>>0){break a}d=J[4959];if(d){c=J[4957];g=c+b|0;if(d>>>0>>0|c>>>0>=g>>>0){break a}}t:{if(!(K[19840]&4)){u:{v:{w:{x:{d=J[4855];if(d){a=19844;while(1){c=J[a>>2];if(c>>>0<=d>>>0&d>>>0>2]>>>0){break x}a=J[a+8>>2];if(a){continue}break}}c=Kb(0);if((c|0)==-1){break u}g=b;d=J[4968];a=d-1|0;if(a&c){g=(b-c|0)+(a+c&0-d)|0}if(g>>>0<=h>>>0){break u}d=J[4959];if(d){a=J[4957];f=a+g|0;if(d>>>0>>0|a>>>0>=f>>>0){break u}}a=Kb(g);if((c|0)!=(a|0)){break w}break t}g=f&e-i;c=Kb(g);if((c|0)==(J[a>>2]+J[a+4>>2]|0)){break v}a=c}if((a|0)==-1){break u}if(h+48>>>0<=g>>>0){c=a;break t}c=J[4969];c=c+(j-g|0)&0-c;if((Kb(c)|0)==-1){break u}g=c+g|0;c=a;break t}if((c|0)!=-1){break t}}J[4960]=J[4960]|4}c=Kb(b);a=Kb(0);if((c|0)==-1|(a|0)==-1|a>>>0<=c>>>0){break d}g=a-c|0;if(g>>>0<=h+40>>>0){break d}}a=J[4957]+g|0;J[4957]=a;if(a>>>0>M[4958]){J[4958]=a}y:{e=J[4855];if(e){a=19844;while(1){d=J[a>>2];b=J[a+4>>2];if((d+b|0)==(c|0)){break y}a=J[a+8>>2];if(a){continue}break}break f}a=J[4853];if(!(a>>>0<=c>>>0?a:0)){J[4853]=c}a=0;J[4962]=g;J[4961]=c;J[4857]=-1;J[4858]=J[4967];J[4964]=0;while(1){d=a<<3;b=d+19436|0;J[d+19444>>2]=b;J[d+19448>>2]=b;a=a+1|0;if((a|0)!=32){continue}break}d=g-40|0;a=c+8&7?-8-c&7:0;b=d-a|0;J[4852]=b;a=a+c|0;J[4855]=a;J[a+4>>2]=b|1;J[(c+d|0)+4>>2]=40;J[4856]=J[4971];break e}if(K[a+12|0]&8|d>>>0>e>>>0|c>>>0<=e>>>0){break f}J[a+4>>2]=b+g;a=e+8&7?-8-e&7:0;c=a+e|0;J[4855]=c;b=J[4852]+g|0;a=b-a|0;J[4852]=a;J[c+4>>2]=a|1;J[(b+e|0)+4>>2]=40;J[4856]=J[4971];break e}d=0;break b}c=0;break c}if(M[4853]>c>>>0){J[4853]=c}b=c+g|0;a=19844;z:{A:{B:{C:{D:{E:{while(1){if((b|0)!=J[a>>2]){a=J[a+8>>2];if(a){continue}break E}break}if(!(K[a+12|0]&8)){break D}}a=19844;while(1){b=J[a>>2];if(b>>>0<=e>>>0){f=b+J[a+4>>2]|0;if(f>>>0>e>>>0){break C}}a=J[a+8>>2];continue}}J[a>>2]=c;J[a+4>>2]=J[a+4>>2]+g;j=(c+8&7?-8-c&7:0)+c|0;J[j+4>>2]=h|3;g=b+(b+8&7?-8-b&7:0)|0;i=h+j|0;a=g-i|0;if((e|0)==(g|0)){J[4855]=i;a=J[4852]+a|0;J[4852]=a;J[i+4>>2]=a|1;break A}if(J[4854]==(g|0)){J[4854]=i;a=J[4851]+a|0;J[4851]=a;J[i+4>>2]=a|1;J[a+i>>2]=a;break A}f=J[g+4>>2];if((f&3)==1){e=f&-8;F:{if(f>>>0<=255){d=J[g+8>>2];b=f>>>3|0;c=J[g+12>>2];if((c|0)==(d|0)){m=19396,n=J[4849]&Ll(b),J[m>>2]=n;break F}J[d+12>>2]=c;J[c+8>>2]=d;break F}h=J[g+24>>2];c=J[g+12>>2];G:{if((g|0)!=(c|0)){b=J[g+8>>2];J[b+12>>2]=c;J[c+8>>2]=b;break G}H:{f=g+20|0;b=J[f>>2];if(b){break H}f=g+16|0;b=J[f>>2];if(b){break H}c=0;break G}while(1){d=f;c=b;f=c+20|0;b=J[f>>2];if(b){continue}f=c+16|0;b=J[c+16>>2];if(b){continue}break}J[d>>2]=0}if(!h){break F}d=J[g+28>>2];b=(d<<2)+19700|0;I:{if(J[b>>2]==(g|0)){J[b>>2]=c;if(c){break I}m=19400,n=J[4850]&Ll(d),J[m>>2]=n;break F}J[h+(J[h+16>>2]==(g|0)?16:20)>>2]=c;if(!c){break F}}J[c+24>>2]=h;b=J[g+16>>2];if(b){J[c+16>>2]=b;J[b+24>>2]=c}b=J[g+20>>2];if(!b){break F}J[c+20>>2]=b;J[b+24>>2]=c}g=e+g|0;f=J[g+4>>2];a=a+e|0}J[g+4>>2]=f&-2;J[i+4>>2]=a|1;J[a+i>>2]=a;if(a>>>0<=255){b=(a&-8)+19436|0;c=J[4849];a=1<<(a>>>3);J:{if(!(c&a)){J[4849]=a|c;a=b;break J}a=J[b+8>>2]}J[b+8>>2]=i;J[a+12>>2]=i;J[i+12>>2]=b;J[i+8>>2]=a;break A}f=31;if(a>>>0<=16777215){b=S(a>>>8|0);f=((a>>>38-b&1)-(b<<1)|0)+62|0}J[i+28>>2]=f;J[i+16>>2]=0;J[i+20>>2]=0;b=(f<<2)+19700|0;d=J[4850];c=1<>2]=i;break K}f=a<<((f|0)!=31?25-(f>>>1|0)|0:0);c=J[b>>2];while(1){b=c;if((J[c+4>>2]&-8)==(a|0)){break B}c=f>>>29|0;f=f<<1;d=(c&4)+b|0;c=J[d+16>>2];if(c){continue}break}J[d+16>>2]=i}J[i+24>>2]=b;J[i+12>>2]=i;J[i+8>>2]=i;break A}d=g-40|0;a=c+8&7?-8-c&7:0;b=d-a|0;J[4852]=b;a=a+c|0;J[4855]=a;J[a+4>>2]=b|1;J[(c+d|0)+4>>2]=40;J[4856]=J[4971];a=(f+(f-39&7?39-f&7:0)|0)-47|0;d=a>>>0>>0?e:a;J[d+4>>2]=27;a=J[4964];J[d+16>>2]=J[4963];J[d+20>>2]=a;a=J[4962];J[d+8>>2]=J[4961];J[d+12>>2]=a;J[4963]=d+8;J[4962]=g;J[4961]=c;J[4964]=0;a=d+24|0;while(1){J[a+4>>2]=7;b=a+8|0;a=a+4|0;if(b>>>0>>0){continue}break}if((d|0)==(e|0)){break e}J[d+4>>2]=J[d+4>>2]&-2;f=d-e|0;J[e+4>>2]=f|1;J[d>>2]=f;if(f>>>0<=255){b=(f&-8)+19436|0;c=J[4849];a=1<<(f>>>3);L:{if(!(c&a)){J[4849]=a|c;a=b;break L}a=J[b+8>>2]}J[b+8>>2]=e;J[a+12>>2]=e;J[e+12>>2]=b;J[e+8>>2]=a;break e}a=31;if(f>>>0<=16777215){a=S(f>>>8|0);a=((f>>>38-a&1)-(a<<1)|0)+62|0}J[e+28>>2]=a;J[e+16>>2]=0;J[e+20>>2]=0;b=(a<<2)+19700|0;d=J[4850];c=1<>2]=e;break M}a=f<<((a|0)!=31?25-(a>>>1|0)|0:0);d=J[b>>2];while(1){b=d;if((f|0)==(J[b+4>>2]&-8)){break z}c=a>>>29|0;a=a<<1;c=(c&4)+b|0;d=J[c+16>>2];if(d){continue}break}J[c+16>>2]=e}J[e+24>>2]=b;J[e+12>>2]=e;J[e+8>>2]=e;break e}a=J[b+8>>2];J[a+12>>2]=i;J[b+8>>2]=i;J[i+24>>2]=0;J[i+12>>2]=b;J[i+8>>2]=a}a=j+8|0;break a}a=J[b+8>>2];J[a+12>>2]=e;J[b+8>>2]=e;J[e+24>>2]=0;J[e+12>>2]=b;J[e+8>>2]=a}a=J[4852];if(a>>>0<=h>>>0){break d}b=a-h|0;J[4852]=b;c=J[4855];a=c+h|0;J[4855]=a;J[a+4>>2]=b|1;J[c+4>>2]=h|3;a=c+8|0;break a}J[4804]=48;a=0;break a}N:{if(!g){break N}b=J[d+28>>2];a=(b<<2)+19700|0;O:{if(J[a>>2]==(d|0)){J[a>>2]=c;if(c){break O}j=Ll(b)&j;J[4850]=j;break N}J[g+(J[g+16>>2]==(d|0)?16:20)>>2]=c;if(!c){break N}}J[c+24>>2]=g;a=J[d+16>>2];if(a){J[c+16>>2]=a;J[a+24>>2]=c}a=J[d+20>>2];if(!a){break N}J[c+20>>2]=a;J[a+24>>2]=c}P:{if(f>>>0<=15){a=f+h|0;J[d+4>>2]=a|3;a=a+d|0;J[a+4>>2]=J[a+4>>2]|1;break P}J[d+4>>2]=h|3;e=d+h|0;J[e+4>>2]=f|1;J[e+f>>2]=f;if(f>>>0<=255){b=(f&-8)+19436|0;c=J[4849];a=1<<(f>>>3);Q:{if(!(c&a)){J[4849]=a|c;a=b;break Q}a=J[b+8>>2]}J[b+8>>2]=e;J[a+12>>2]=e;J[e+12>>2]=b;J[e+8>>2]=a;break P}a=31;if(f>>>0<=16777215){a=S(f>>>8|0);a=((f>>>38-a&1)-(a<<1)|0)+62|0}J[e+28>>2]=a;J[e+16>>2]=0;J[e+20>>2]=0;b=(a<<2)+19700|0;R:{c=1<>2]=e;break S}a=f<<((a|0)!=31?25-(a>>>1|0)|0:0);h=J[b>>2];while(1){b=h;if((J[b+4>>2]&-8)==(f|0)){break R}c=a>>>29|0;a=a<<1;c=(c&4)+b|0;h=J[c+16>>2];if(h){continue}break}J[c+16>>2]=e}J[e+24>>2]=b;J[e+12>>2]=e;J[e+8>>2]=e;break P}a=J[b+8>>2];J[a+12>>2]=e;J[b+8>>2]=e;J[e+24>>2]=0;J[e+12>>2]=b;J[e+8>>2]=a}a=d+8|0;break a}T:{if(!i){break T}b=J[c+28>>2];a=(b<<2)+19700|0;U:{if(J[a>>2]==(c|0)){J[a>>2]=d;if(d){break U}m=19400,n=Ll(b)&j,J[m>>2]=n;break T}J[i+(J[i+16>>2]==(c|0)?16:20)>>2]=d;if(!d){break T}}J[d+24>>2]=i;a=J[c+16>>2];if(a){J[d+16>>2]=a;J[a+24>>2]=d}a=J[c+20>>2];if(!a){break T}J[d+20>>2]=a;J[a+24>>2]=d}V:{if(f>>>0<=15){a=f+h|0;J[c+4>>2]=a|3;a=a+c|0;J[a+4>>2]=J[a+4>>2]|1;break V}J[c+4>>2]=h|3;d=c+h|0;J[d+4>>2]=f|1;J[d+f>>2]=f;if(k){b=(k&-8)+19436|0;e=J[4854];a=1<<(k>>>3);W:{if(!(a&g)){J[4849]=a|g;a=b;break W}a=J[b+8>>2]}J[b+8>>2]=e;J[a+12>>2]=e;J[e+12>>2]=b;J[e+8>>2]=a}J[4854]=d;J[4851]=f}a=c+8|0}ba=l+16|0;return a|0}function Kh(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=Q(0);e=ba+-64|0;ba=e;c=J[a+4>>2];i=J[a+8>>2];a:{if((c|0)==(i|0)){J[a+72>>2]=0;b=1;break a}d=i-c>>2;m=d>>>0<=1?1:d;j=m&3;h=J[J[a+28>>2]+4>>2];d=J[h+8>>2];if(m-1>>>0>=3){m=m&-4;while(1){l=g;g=b<<2;g=(((l+K[J[d+(J[g+c>>2]<<2)>>2]+24|0]|0)+K[J[d+(J[(g|4)+c>>2]<<2)>>2]+24|0]|0)+K[J[d+(J[(g|8)+c>>2]<<2)>>2]+24|0]|0)+K[J[d+(J[(g|12)+c>>2]<<2)>>2]+24|0]|0;b=b+4|0;k=k+4|0;if((m|0)!=(k|0)){continue}break}}if(j){while(1){g=K[J[d+(J[(b<<2)+c>>2]<<2)>>2]+24|0]+g|0;b=b+1|0;f=f+1|0;if((j|0)!=(f|0)){continue}break}}o=J[h+80>>2];J[a+72>>2]=g;if((c|0)==(i|0)){b=1;break a}m=0;while(1){b=J[(m<<2)+c>>2];J[e+60>>2]=b;b:{c:{d:{e:{f:{c=J[a+28>>2];i=J[J[J[c+4>>2]+8>>2]+(b<<2)>>2];switch(J[i+28>>2]-1|0){case 0:case 2:case 4:break e;case 8:break f;default:break b}}J[e+36>>2]=-1;J[e+32>>2]=2032;J[e+48>>2]=0;J[e+52>>2]=0;J[e+40>>2]=0;J[e+44>>2]=0;g=J[c+48>>2];b=oa(32);J[e+16>>2]=b;J[e+20>>2]=17;J[e+24>>2]=-2147483616;H[b+16|0]=K[1261];c=K[1257]|K[1258]<<8|(K[1259]<<16|K[1260]<<24);d=K[1253]|K[1254]<<8|(K[1255]<<16|K[1256]<<24);H[b+8|0]=d;H[b+9|0]=d>>>8;H[b+10|0]=d>>>16;H[b+11|0]=d>>>24;H[b+12|0]=c;H[b+13|0]=c>>>8;H[b+14|0]=c>>>16;H[b+15|0]=c>>>24;c=K[1249]|K[1250]<<8|(K[1251]<<16|K[1252]<<24);d=K[1245]|K[1246]<<8|(K[1247]<<16|K[1248]<<24);H[b|0]=d;H[b+1|0]=d>>>8;H[b+2|0]=d>>>16;H[b+3|0]=d>>>24;H[b+4|0]=c;H[b+5|0]=c>>>8;H[b+6|0]=c>>>16;H[b+7|0]=c>>>24;H[b+17|0]=0;g=jb(g,e+60|0,e+16|0,-1);if(H[e+27|0]<0){na(J[e+16>>2])}g:{if((g|0)<=0){break g}j=J[J[a+28>>2]+48>>2];b=oa(32);J[e+16>>2]=b;J[e+20>>2]=19;J[e+24>>2]=-2147483616;d=0;c=K[1429]|K[1430]<<8|(K[1431]<<16|K[1432]<<24);H[b+15|0]=c;H[b+16|0]=c>>>8;H[b+17|0]=c>>>16;H[b+18|0]=c>>>24;c=K[1426]|K[1427]<<8|(K[1428]<<16|K[1429]<<24);f=K[1422]|K[1423]<<8|(K[1424]<<16|K[1425]<<24);H[b+8|0]=f;H[b+9|0]=f>>>8;H[b+10|0]=f>>>16;H[b+11|0]=f>>>24;H[b+12|0]=c;H[b+13|0]=c>>>8;H[b+14|0]=c>>>16;H[b+15|0]=c>>>24;c=K[1418]|K[1419]<<8|(K[1420]<<16|K[1421]<<24);f=K[1414]|K[1415]<<8|(K[1416]<<16|K[1417]<<24);H[b|0]=f;H[b+1|0]=f>>>8;H[b+2|0]=f>>>16;H[b+3|0]=f>>>24;H[b+4|0]=c;H[b+5|0]=c>>>8;H[b+6|0]=c>>>16;H[b+7|0]=c>>>24;H[b+19|0]=0;h:{if(!yc(j,e+60|0,e+16|0)){break h}f=J[J[a+28>>2]+48>>2];b=oa(32);J[e>>2]=b;J[e+4>>2]=18;J[e+8>>2]=-2147483616;c=K[1547]|K[1548]<<8;H[b+16|0]=c;H[b+17|0]=c>>>8;c=K[1543]|K[1544]<<8|(K[1545]<<16|K[1546]<<24);d=K[1539]|K[1540]<<8|(K[1541]<<16|K[1542]<<24);H[b+8|0]=d;H[b+9|0]=d>>>8;H[b+10|0]=d>>>16;H[b+11|0]=d>>>24;H[b+12|0]=c;H[b+13|0]=c>>>8;H[b+14|0]=c>>>16;H[b+15|0]=c>>>24;c=K[1535]|K[1536]<<8|(K[1537]<<16|K[1538]<<24);d=K[1531]|K[1532]<<8|(K[1533]<<16|K[1534]<<24);H[b|0]=d;H[b+1|0]=d>>>8;H[b+2|0]=d>>>16;H[b+3|0]=d>>>24;H[b+4|0]=c;H[b+5|0]=c>>>8;H[b+6|0]=c>>>16;H[b+7|0]=c>>>24;H[b+18|0]=0;d=yc(f,e+60|0,e);if(H[e+11|0]>=0){break h}na(J[e>>2])}if(H[e+27|0]<0){na(J[e+16>>2])}i:{if(d){b=K[i+24|0];j:{if(!b){d=0;break j}b=b<<2;d=oa(b);pa(d,0,b)}j=J[J[a+28>>2]+48>>2];b=oa(32);J[e+16>>2]=b;J[e+20>>2]=19;J[e+24>>2]=-2147483616;c=K[1429]|K[1430]<<8|(K[1431]<<16|K[1432]<<24);H[b+15|0]=c;H[b+16|0]=c>>>8;H[b+17|0]=c>>>16;H[b+18|0]=c>>>24;c=K[1426]|K[1427]<<8|(K[1428]<<16|K[1429]<<24);f=K[1422]|K[1423]<<8|(K[1424]<<16|K[1425]<<24);H[b+8|0]=f;H[b+9|0]=f>>>8;H[b+10|0]=f>>>16;H[b+11|0]=f>>>24;H[b+12|0]=c;H[b+13|0]=c>>>8;H[b+14|0]=c>>>16;H[b+15|0]=c>>>24;c=K[1418]|K[1419]<<8|(K[1420]<<16|K[1421]<<24);f=K[1414]|K[1415]<<8|(K[1416]<<16|K[1417]<<24);H[b|0]=f;H[b+1|0]=f>>>8;H[b+2|0]=f>>>16;H[b+3|0]=f>>>24;H[b+4|0]=c;H[b+5|0]=c>>>8;H[b+6|0]=c>>>16;H[b+7|0]=c>>>24;H[b+19|0]=0;De(j,e+60|0,e+16|0,K[i+24|0],d);if(H[e+27|0]<0){na(J[e+16>>2])}j=J[J[a+28>>2]+48>>2];b=oa(32);J[e+16>>2]=b;J[e+20>>2]=18;J[e+24>>2]=-2147483616;c=K[1547]|K[1548]<<8;H[b+16|0]=c;H[b+17|0]=c>>>8;c=K[1543]|K[1544]<<8|(K[1545]<<16|K[1546]<<24);f=K[1539]|K[1540]<<8|(K[1541]<<16|K[1542]<<24);H[b+8|0]=f;H[b+9|0]=f>>>8;H[b+10|0]=f>>>16;H[b+11|0]=f>>>24;H[b+12|0]=c;H[b+13|0]=c>>>8;H[b+14|0]=c>>>16;H[b+15|0]=c>>>24;c=K[1535]|K[1536]<<8|(K[1537]<<16|K[1538]<<24);f=K[1531]|K[1532]<<8|(K[1533]<<16|K[1534]<<24);H[b|0]=f;H[b+1|0]=f>>>8;H[b+2|0]=f>>>16;H[b+3|0]=f>>>24;H[b+4|0]=c;H[b+5|0]=c>>>8;H[b+6|0]=c>>>16;H[b+7|0]=c>>>24;H[b+18|0]=0;p=Ce(j,e+60|0,e+16|0);if(H[e+27|0]<0){na(J[e+16>>2])}ch(e+32|0,g,d,K[i+24|0],p);if(!d){break i}na(d);break i}if(!_g(e+32|0,i,g)){break g}}d=J[a+40>>2];k:{if((d|0)!=J[a+44>>2]){J[d>>2]=2032;b=J[e+36>>2];J[d+16>>2]=0;J[d+8>>2]=0;J[d+12>>2]=0;J[d+4>>2]=b;b=J[e+44>>2];c=J[e+40>>2];if((b|0)!=(c|0)){b=b-c|0;if((b|0)<0){break d}c=oa(b);J[d+12>>2]=c;J[d+8>>2]=c;J[d+16>>2]=(b&-4)+c;b=J[e+40>>2];g=J[e+44>>2];if((b|0)!=(g|0)){while(1){N[c>>2]=N[b>>2];c=c+4|0;b=b+4|0;if((g|0)!=(b|0)){continue}break}}J[d+12>>2]=c}N[d+20>>2]=N[e+52>>2];J[a+40>>2]=d+24;break k}f=0;l:{m:{n:{o:{b=J[a+40>>2];j=J[a+36>>2];d=(b-j|0)/24|0;c=d+1|0;if(c>>>0<178956971){g=(J[a+44>>2]-j|0)/24|0;h=g<<1;h=g>>>0>=89478485?178956970:c>>>0>>0?h:c;if(h){if(h>>>0>=178956971){break o}f=oa(P(h,24))}c=P(d,24)+f|0;J[c>>2]=2032;d=J[e+36>>2];J[c+16>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;J[c+4>>2]=d;g=J[e+40>>2];k=J[e+44>>2];if((g|0)!=(k|0)){l=k-g|0;if((l|0)<0){break n}d=oa(l);J[c+8>>2]=d;J[c+16>>2]=(l&-4)+d;while(1){N[d>>2]=N[g>>2];d=d+4|0;g=g+4|0;if((k|0)!=(g|0)){continue}break}J[c+12>>2]=d}d=P(h,24)+f|0;N[c+20>>2]=N[e+52>>2];g=c+24|0;if((b|0)==(j|0)){break m}while(1){c=c-24|0;J[c>>2]=2032;b=b-24|0;J[c+4>>2]=J[b+4>>2];J[c+8>>2]=J[b+8>>2];J[c+12>>2]=J[b+12>>2];J[c+16>>2]=J[b+16>>2];J[b+16>>2]=0;J[b+8>>2]=0;J[b+12>>2]=0;N[c+20>>2]=N[b+20>>2];if((b|0)!=(j|0)){continue}break}J[a+44>>2]=d;d=J[a+40>>2];J[a+40>>2]=g;b=J[a+36>>2];J[a+36>>2]=c;if((b|0)==(d|0)){break l}while(1){d=d-24|0;da[J[J[d>>2]>>2]](d)|0;if((b|0)!=(d|0)){continue}break}break l}qa();B()}xa();B()}qa();B()}J[a+44>>2]=d;J[a+40>>2]=g;J[a+36>>2]=c}if(b){na(b)}}b=e+32|0;c=Mc(b,i,o);J[e>>2]=c;J[e+24>>2]=0;J[e+16>>2]=0;J[e+20>>2]=0;je(b,i,e+16|0,c);b=J[e+16>>2];if(b){J[e+20>>2]=b;na(b)}b=J[a+64>>2];p:{if(b>>>0>2]){c=J[e>>2];J[e>>2]=0;J[b>>2]=c;J[a+64>>2]=b+4;break p}c=0;q:{r:{s:{d=J[a+60>>2];g=J[a+64>>2]-d>>2;b=g+1|0;if(b>>>0<1073741824){d=J[a+68>>2]-d|0;i=d>>>1|0;d=d>>>0>=2147483644?1073741823:b>>>0>>0?i:b;if(d){if(d>>>0>=1073741824){break s}c=oa(d<<2)}i=J[e>>2];J[e>>2]=0;b=(g<<2)+c|0;J[b>>2]=i;d=(d<<2)+c|0;g=b+4|0;c=J[a+64>>2];i=J[a+60>>2];if((c|0)==(i|0)){break r}while(1){c=c-4|0;f=J[c>>2];J[c>>2]=0;b=b-4|0;J[b>>2]=f;if((c|0)!=(i|0)){continue}break}J[a+68>>2]=d;d=J[a+64>>2];J[a+64>>2]=g;c=J[a+60>>2];J[a+60>>2]=b;if((c|0)==(d|0)){break q}while(1){d=d-4|0;b=J[d>>2];J[d>>2]=0;if(b){Ka(b)}if((c|0)!=(d|0)){continue}break}break q}qa();B()}xa();B()}J[a+68>>2]=d;J[a+64>>2]=g;J[a+60>>2]=b}if(c){na(c)}}b=J[e>>2];J[e>>2]=0;if(b){Ka(b)}J[e+32>>2]=2032;b=J[e+40>>2];if(!b){break b}J[e+44>>2]=b;na(b);break b}J[e+32>>2]=2032;a=J[e+40>>2];if(a){J[e+44>>2]=a;na(a)}b=0;break a}j=0;t:{u:{g=K[i+24|0];v:{if(!g){d=0;break v}b=0;f=g<<2;d=oa(f);c=d;h=g&7;if(h){while(1){J[c>>2]=2147483647;c=c+4|0;b=b+1|0;if((h|0)!=(b|0)){continue}break}}if((g-1&1073741823)>>>0>=7){b=d+f|0;while(1){J[c+24>>2]=2147483647;J[c+28>>2]=2147483647;J[c+16>>2]=2147483647;J[c+20>>2]=2147483647;J[c+8>>2]=2147483647;J[c+12>>2]=2147483647;J[c>>2]=2147483647;J[c+4>>2]=2147483647;c=c+32|0;if((b|0)!=(c|0)){continue}break}}b=K[i+24|0];if(b){break u}}g=0;b=0;break t}b=b<<2;g=oa(b);pa(g,0,b);b=K[i+24|0]}if(!J[i+80>>2]){break c}while(1){$c(i,j,b<<24>>24,g);b=K[i+24|0];w:{if(!b){break w}c=0;if((b|0)!=1){l=b&254;f=0;while(1){h=c<<2;k=h+d|0;n=J[g+h>>2];if((n|0)>2]){J[k>>2]=n}h=h|4;k=h+d|0;h=J[g+h>>2];if(J[k>>2]>(h|0)){J[k>>2]=h}c=c+2|0;f=f+2|0;if((l|0)!=(f|0)){continue}break}}if(!(b&1)){break w}c=c<<2;f=c+d|0;c=J[c+g>>2];if(J[f>>2]<=(c|0)){break w}J[f>>2]=c}j=j+1|0;if(j>>>0>2]){continue}break}break c}qa();B()}c=0;x:{if(!b){break x}y:{while(1){z:{k=(c<<2)+d|0;b=J[a+52>>2];A:{if((b|0)!=J[a+56>>2]){J[b>>2]=J[k>>2];J[a+52>>2]=b+4;break A}h=b;b=J[a+48>>2];f=h-b|0;l=f>>2;j=l+1|0;if(j>>>0>=1073741824){break z}h=f>>>1|0;j=f>>>0>=2147483644?1073741823:j>>>0>>0?h:j;if(j){if(j>>>0>=1073741824){break y}h=oa(j<<2)}else{h=0}l=h+(l<<2)|0;J[l>>2]=J[k>>2];f=ta(h,b,f);J[a+56>>2]=f+(j<<2);J[a+52>>2]=l+4;J[a+48>>2]=f;if(!b){break A}na(b)}c=c+1|0;if(c>>>0>2];if(m>>>0>2]-c>>2>>>0){continue}break}}ba=e- -64|0;return b|0}function ml(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;i=ba-48|0;ba=i;h=J[a+4>>2];e=J[a+12>>2];J[i+40>>2]=0;J[i+32>>2]=0;J[i+36>>2]=0;J[i+24>>2]=0;J[i+28>>2]=0;J[i+16>>2]=0;J[i+20>>2]=0;J[i+8>>2]=0;J[i+12>>2]=0;l=J[J[J[h+4>>2]+8>>2]+(e<<2)>>2];d=i+8|0;if((b|0)==-1){b=bh(e,h)}a:{if((b|0)==-2){break a}if((da[J[J[h>>2]+8>>2]](h)|0)==1){j=ba-32|0;ba=j;k=J[J[J[h+4>>2]+8>>2]+(e<<2)>>2];b:{c:{d:{if((da[J[J[h>>2]+8>>2]](h)|0)!=1|b-1>>>0>5){break d}f=da[J[J[h>>2]+52>>2]](h)|0;g=da[J[J[h>>2]+60>>2]](h,e)|0;if(!f|!g){break d}c=da[J[J[h>>2]+56>>2]](h,e)|0;if(c){a=J[h+56>>2];J[j+20>>2]=c;J[j+16>>2]=a;J[j+28>>2]=g;J[j+24>>2]=g+12;e=j+16|0;a=0;e:{f:{switch(b-1|0){case 0:b=oa(60);J[b+4>>2]=k;J[b>>2]=3456;a=J[d+4>>2];J[b+8>>2]=J[d>>2];J[b+12>>2]=a;a=J[d+12>>2];J[b+16>>2]=J[d+8>>2];J[b+20>>2]=a;a=J[d+20>>2];J[b+24>>2]=J[d+16>>2];J[b+28>>2]=a;J[b+40>>2]=0;J[b+32>>2]=0;J[b+36>>2]=0;a=J[d+24>>2];g=J[d+28>>2];if((a|0)!=(g|0)){f=g-a|0;if((f|0)<0){break c}c=oa(f);J[b+32>>2]=c;J[b+40>>2]=(f&-4)+c;while(1){J[c>>2]=J[a>>2];c=c+4|0;a=a+4|0;if((g|0)!=(a|0)){continue}break}J[b+36>>2]=c}a=J[e+4>>2];J[b+44>>2]=J[e>>2];J[b+48>>2]=a;a=J[e+12>>2];J[b+52>>2]=J[e+8>>2];J[b+56>>2]=a;J[b>>2]=2748;a=b;break e;case 3:b=oa(168);J[b+4>>2]=k;J[b>>2]=3456;a=J[d+4>>2];J[b+8>>2]=J[d>>2];J[b+12>>2]=a;a=J[d+12>>2];J[b+16>>2]=J[d+8>>2];J[b+20>>2]=a;a=J[d+20>>2];J[b+24>>2]=J[d+16>>2];J[b+28>>2]=a;J[b+40>>2]=0;J[b+32>>2]=0;J[b+36>>2]=0;a=J[d+24>>2];g=J[d+28>>2];if((a|0)!=(g|0)){f=g-a|0;if((f|0)<0){break c}c=oa(f);J[b+32>>2]=c;J[b+40>>2]=(f&-4)+c;while(1){J[c>>2]=J[a>>2];c=c+4|0;a=a+4|0;if((g|0)!=(a|0)){continue}break}J[b+36>>2]=c}a=J[e+4>>2];J[b+44>>2]=J[e>>2];J[b+48>>2]=a;a=b;b=J[e+12>>2];J[a+52>>2]=J[e+8>>2];J[a+56>>2]=b;J[a+60>>2]=0;J[a+64>>2]=0;J[a>>2]=3512;J[a+68>>2]=0;J[a+72>>2]=0;J[a+76>>2]=0;J[a+80>>2]=0;J[a+84>>2]=0;J[a+88>>2]=0;J[a+92>>2]=0;J[a+96>>2]=0;J[a+100>>2]=0;J[a+104>>2]=0;J[a+108>>2]=0;J[a+128>>2]=0;J[a+132>>2]=0;J[a+120>>2]=0;J[a+112>>2]=0;J[a+116>>2]=0;J[a+136>>2]=0;J[a+140>>2]=0;J[a+144>>2]=0;J[a+160>>2]=0;J[a+152>>2]=0;J[a+156>>2]=0;break e;case 4:b=oa(104);J[b+4>>2]=k;J[b>>2]=3456;a=J[d+4>>2];J[b+8>>2]=J[d>>2];J[b+12>>2]=a;a=J[d+12>>2];J[b+16>>2]=J[d+8>>2];J[b+20>>2]=a;a=J[d+20>>2];J[b+24>>2]=J[d+16>>2];J[b+28>>2]=a;J[b+40>>2]=0;J[b+32>>2]=0;J[b+36>>2]=0;a=J[d+24>>2];g=J[d+28>>2];if((a|0)!=(g|0)){f=g-a|0;if((f|0)<0){break c}c=oa(f);J[b+32>>2]=c;J[b+40>>2]=(f&-4)+c;while(1){J[c>>2]=J[a>>2];c=c+4|0;a=a+4|0;if((g|0)!=(a|0)){continue}break}J[b+36>>2]=c}a=J[e+4>>2];J[b+44>>2]=J[e>>2];J[b+48>>2]=a;a=J[e+12>>2];J[b+52>>2]=J[e+8>>2];J[b+56>>2]=a;J[b+84>>2]=0;J[b+76>>2]=0;J[b+80>>2]=0;J[b+60>>2]=0;J[b+64>>2]=0;J[b>>2]=3760;a=J[e+4>>2];J[b+88>>2]=J[e>>2];J[b+92>>2]=a;a=J[e+12>>2];J[b+96>>2]=J[e+8>>2];J[b+100>>2]=a;a=b;break e;case 5:break f;default:break e}}a=oa(144);J[a+4>>2]=k;J[a>>2]=3456;b=J[d+4>>2];J[a+8>>2]=J[d>>2];J[a+12>>2]=b;b=J[d+12>>2];J[a+16>>2]=J[d+8>>2];J[a+20>>2]=b;b=J[d+20>>2];J[a+24>>2]=J[d+16>>2];J[a+28>>2]=b;J[a+40>>2]=0;J[a+32>>2]=0;J[a+36>>2]=0;g:{h:{c=J[d+28>>2];b=J[d+24>>2];if((c|0)!=(b|0)){c=c-b|0;if((c|0)<0){break h}b=oa(c);J[a+36>>2]=b;J[a+32>>2]=b;J[a+40>>2]=(c&-4)+b;c=J[d+24>>2];f=J[d+28>>2];if((c|0)!=(f|0)){while(1){J[b>>2]=J[c>>2];b=b+4|0;c=c+4|0;if((f|0)!=(c|0)){continue}break}}J[a+36>>2]=b}J[a>>2]=3400;b=J[e+4>>2];J[a+44>>2]=J[e>>2];J[a+48>>2]=b;b=J[e+12>>2];J[a+52>>2]=J[e+8>>2];J[a+56>>2]=b;b=a- -64|0;J[b>>2]=0;J[b+4>>2]=0;J[a+60>>2]=4624;J[a>>2]=3996;b=J[e+4>>2];J[a+72>>2]=J[e>>2];J[a+76>>2]=b;b=J[e+12>>2];J[a+80>>2]=J[e+8>>2];J[a+84>>2]=b;J[a+104>>2]=1065353216;J[a+108>>2]=-1;J[a+96>>2]=-1;J[a+100>>2]=-1;J[a+88>>2]=1;J[a+92>>2]=-1;J[a+60>>2]=4232;J[a+112>>2]=0;J[a+116>>2]=0;J[a+136>>2]=0;J[a+140>>2]=0;J[a+128>>2]=0;J[a+132>>2]=0;J[a+120>>2]=0;J[a+124>>2]=0;break g}qa();B()}break e}c=a;break d}a=J[h+56>>2];J[j+20>>2]=f;J[j+16>>2]=a;J[j+28>>2]=g;J[j+24>>2]=g+12;e=j+16|0;a=0;i:{j:{switch(b-1|0){case 0:b=oa(60);J[b+4>>2]=k;J[b>>2]=3456;a=J[d+4>>2];J[b+8>>2]=J[d>>2];J[b+12>>2]=a;a=J[d+12>>2];J[b+16>>2]=J[d+8>>2];J[b+20>>2]=a;a=J[d+20>>2];J[b+24>>2]=J[d+16>>2];J[b+28>>2]=a;J[b+40>>2]=0;J[b+32>>2]=0;J[b+36>>2]=0;a=J[d+24>>2];g=J[d+28>>2];if((a|0)!=(g|0)){f=g-a|0;if((f|0)<0){break c}c=oa(f);J[b+32>>2]=c;J[b+40>>2]=(f&-4)+c;while(1){J[c>>2]=J[a>>2];c=c+4|0;a=a+4|0;if((g|0)!=(a|0)){continue}break}J[b+36>>2]=c}a=J[e+4>>2];J[b+44>>2]=J[e>>2];J[b+48>>2]=a;a=J[e+12>>2];J[b+52>>2]=J[e+8>>2];J[b+56>>2]=a;J[b>>2]=4652;a=b;break i;case 3:b=oa(168);J[b+4>>2]=k;J[b>>2]=3456;a=J[d+4>>2];J[b+8>>2]=J[d>>2];J[b+12>>2]=a;a=J[d+12>>2];J[b+16>>2]=J[d+8>>2];J[b+20>>2]=a;a=J[d+20>>2];J[b+24>>2]=J[d+16>>2];J[b+28>>2]=a;J[b+40>>2]=0;J[b+32>>2]=0;J[b+36>>2]=0;a=J[d+24>>2];g=J[d+28>>2];if((a|0)!=(g|0)){f=g-a|0;if((f|0)<0){break c}c=oa(f);J[b+32>>2]=c;J[b+40>>2]=(f&-4)+c;while(1){J[c>>2]=J[a>>2];c=c+4|0;a=a+4|0;if((g|0)!=(a|0)){continue}break}J[b+36>>2]=c}a=J[e+4>>2];J[b+44>>2]=J[e>>2];J[b+48>>2]=a;a=b;b=J[e+12>>2];J[a+52>>2]=J[e+8>>2];J[a+56>>2]=b;J[a+60>>2]=0;J[a+64>>2]=0;J[a>>2]=5076;J[a+68>>2]=0;J[a+72>>2]=0;J[a+76>>2]=0;J[a+80>>2]=0;J[a+84>>2]=0;J[a+88>>2]=0;J[a+92>>2]=0;J[a+96>>2]=0;J[a+100>>2]=0;J[a+104>>2]=0;J[a+108>>2]=0;J[a+128>>2]=0;J[a+132>>2]=0;J[a+120>>2]=0;J[a+112>>2]=0;J[a+116>>2]=0;J[a+136>>2]=0;J[a+140>>2]=0;J[a+144>>2]=0;J[a+160>>2]=0;J[a+152>>2]=0;J[a+156>>2]=0;break i;case 4:b=oa(104);J[b+4>>2]=k;J[b>>2]=3456;a=J[d+4>>2];J[b+8>>2]=J[d>>2];J[b+12>>2]=a;a=J[d+12>>2];J[b+16>>2]=J[d+8>>2];J[b+20>>2]=a;a=J[d+20>>2];J[b+24>>2]=J[d+16>>2];J[b+28>>2]=a;J[b+40>>2]=0;J[b+32>>2]=0;J[b+36>>2]=0;a=J[d+24>>2];g=J[d+28>>2];if((a|0)!=(g|0)){f=g-a|0;if((f|0)<0){break c}c=oa(f);J[b+32>>2]=c;J[b+40>>2]=(f&-4)+c;while(1){J[c>>2]=J[a>>2];c=c+4|0;a=a+4|0;if((g|0)!=(a|0)){continue}break}J[b+36>>2]=c}a=J[e+4>>2];J[b+44>>2]=J[e>>2];J[b+48>>2]=a;a=J[e+12>>2];J[b+52>>2]=J[e+8>>2];J[b+56>>2]=a;J[b+84>>2]=0;J[b+76>>2]=0;J[b+80>>2]=0;J[b+60>>2]=0;J[b+64>>2]=0;J[b>>2]=5312;a=J[e+4>>2];J[b+88>>2]=J[e>>2];J[b+92>>2]=a;a=J[e+12>>2];J[b+96>>2]=J[e+8>>2];J[b+100>>2]=a;a=b;break i;case 5:break j;default:break i}}a=oa(144);J[a+4>>2]=k;J[a>>2]=3456;b=J[d+4>>2];J[a+8>>2]=J[d>>2];J[a+12>>2]=b;b=J[d+12>>2];J[a+16>>2]=J[d+8>>2];J[a+20>>2]=b;b=J[d+20>>2];J[a+24>>2]=J[d+16>>2];J[a+28>>2]=b;J[a+40>>2]=0;J[a+32>>2]=0;J[a+36>>2]=0;k:{l:{c=J[d+28>>2];b=J[d+24>>2];if((c|0)!=(b|0)){c=c-b|0;if((c|0)<0){break l}b=oa(c);J[a+36>>2]=b;J[a+32>>2]=b;J[a+40>>2]=(c&-4)+b;c=J[d+24>>2];f=J[d+28>>2];if((c|0)!=(f|0)){while(1){J[b>>2]=J[c>>2];b=b+4|0;c=c+4|0;if((f|0)!=(c|0)){continue}break}}J[a+36>>2]=b}J[a>>2]=5020;b=J[e+4>>2];J[a+44>>2]=J[e>>2];J[a+48>>2]=b;b=J[e+12>>2];J[a+52>>2]=J[e+8>>2];J[a+56>>2]=b;b=a- -64|0;J[b>>2]=0;J[b+4>>2]=0;J[a+60>>2]=6120;J[a>>2]=5536;b=J[e+4>>2];J[a+72>>2]=J[e>>2];J[a+76>>2]=b;b=J[e+12>>2];J[a+80>>2]=J[e+8>>2];J[a+84>>2]=b;J[a+104>>2]=1065353216;J[a+108>>2]=-1;J[a+96>>2]=-1;J[a+100>>2]=-1;J[a+88>>2]=1;J[a+92>>2]=-1;J[a+60>>2]=5756;J[a+112>>2]=0;J[a+116>>2]=0;J[a+136>>2]=0;J[a+140>>2]=0;J[a+128>>2]=0;J[a+132>>2]=0;J[a+120>>2]=0;J[a+124>>2]=0;break k}qa();B()}break i}c=a}ba=j+32|0;break b}qa();B()}if(c){break a}}c=oa(44);J[c+4>>2]=l;J[c>>2]=3456;a=J[d+4>>2];J[c+8>>2]=J[d>>2];J[c+12>>2]=a;a=J[d+12>>2];J[c+16>>2]=J[d+8>>2];J[c+20>>2]=a;a=J[d+20>>2];J[c+24>>2]=J[d+16>>2];J[c+28>>2]=a;J[c+40>>2]=0;J[c+32>>2]=0;J[c+36>>2]=0;m:{a=J[d+24>>2];l=J[d+28>>2];if((a|0)!=(l|0)){f=l-a|0;if((f|0)<0){break m}b=oa(f);J[c+32>>2]=b;J[c+40>>2]=(f&-4)+b;while(1){J[b>>2]=J[a>>2];b=b+4|0;a=a+4|0;if((l|0)!=(a|0)){continue}break}J[c+36>>2]=b}J[c>>2]=6148;break a}qa();B()}a=J[i+32>>2];if(a){J[i+36>>2]=a;na(a)}ba=i+48|0;return c|0}function Ne(a,b,c,d,e,f,g,h,i){var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,K=0,L=0,N=0,O=0,P=0;k=ba-336|0;ba=k;n=h;p=i&65535;o=d;m=e&65535;u=(e^i)&-2147483648;s=i>>>16&32767;q=e>>>16&32767;a:{b:{if(s-32767>>>0>4294934529&q-32767>>>0>=4294934530){break b}j=e&2147483647;if(!(!d&(j|0)==2147418112?!(b|c):j>>>0<2147418112)){r=d;u=e|32768;break a}e=i&2147483647;if(!(!h&(e|0)==2147418112?!(f|g):e>>>0<2147418112)){r=h;u=i|32768;b=f;c=g;break a}if(!(b|d|(j^2147418112|c))){if(!(f|h|(e^2147418112|g))){b=0;c=0;u=2147450880;break a}u=u|2147418112;b=0;c=0;break a}if(!(f|h|(e^2147418112|g))){b=0;c=0;break a}if(!(b|d|(c|j))){b=!(f|h|(e|g));r=b?0:r;u=b?2147450880:u;b=0;c=0;break a}if(!(f|h|(e|g))){u=u|2147418112;b=0;c=0;break a}if((j|0)==65535|j>>>0<65535){d=!(m|o);i=d;j=d?b:o;d=d<<6;h=d;i=S(i?c:m);d=d+((i|0)==32?S(j)+32|0:i)|0;Pa(k+320|0,b,c,o,m,d-15|0);v=16-d|0;o=J[k+328>>2];m=J[k+332>>2];c=J[k+324>>2];b=J[k+320>>2]}if(e>>>0>65535){break b}d=!(n|p);h=d;i=d?f:n;d=d<<6;e=d;h=S(h?g:p);d=d+((h|0)==32?S(i)+32|0:h)|0;Pa(k+304|0,f,g,n,p,d-15|0);v=(d+v|0)-16|0;n=J[k+312>>2];p=J[k+316>>2];f=J[k+304>>2];g=J[k+308>>2]}e=p|65536;A=e;B=n;d=n;j=e<<15|d>>>17;e=d<<15|g>>>17;d=e;i=0-d|0;h=j;j=1963258675-(j+((d|0)!=0)|0)|0;Xa(k+288|0,d,h,0,0,i,j,0,0);d=J[k+296>>2];Xa(k+272|0,0-d|0,0-(J[k+300>>2]+((d|0)!=0)|0)|0,0,0,i,j,0,0);d=J[k+280>>2];i=d<<1|J[k+276>>2]>>>31;d=J[k+284>>2]<<1|d>>>31;Xa(k+256|0,i,d,0,0,e,h,0,0);j=J[k+264>>2];Xa(k+240|0,i,d,0,0,0-j|0,0-(J[k+268>>2]+((j|0)!=0)|0)|0,0,0);i=J[k+248>>2];j=i<<1|J[k+244>>2]>>>31;d=J[k+252>>2]<<1|i>>>31;Xa(k+224|0,j,d,0,0,e,h,0,0);i=J[k+232>>2];Xa(k+208|0,j,d,0,0,0-i|0,0-(J[k+236>>2]+((i|0)!=0)|0)|0,0,0);d=J[k+216>>2];i=d<<1|J[k+212>>2]>>>31;d=J[k+220>>2]<<1|d>>>31;Xa(k+192|0,i,d,0,0,e,h,0,0);j=J[k+200>>2];Xa(k+176|0,i,d,0,0,0-j|0,0-(J[k+204>>2]+((j|0)!=0)|0)|0,0,0);i=e;e=J[k+184>>2];d=h;n=e<<1|J[k+180>>2]>>>31;h=n-1|0;e=(J[k+188>>2]<<1|e>>>31)-!n|0;Xa(k+160|0,i,d,0,0,h,e,0,0);d=h;Xa(k+144|0,f<<15,g<<15|f>>>17,0,0,d,e,0,0);t=k+112|0;y=J[k+168>>2];h=J[k+172>>2];n=J[k+160>>2];i=J[k+152>>2];l=n+i|0;p=J[k+164>>2];j=p+J[k+156>>2]|0;j=i>>>0>l>>>0?j+1|0:j;i=j;j=(p|0)==(j|0)&l>>>0>>0|j>>>0

>>0;p=j+y|0;j=j>>>0>p>>>0?h+1|0:h;n=!i&l>>>0>1|(i|0)!=0;h=n+p|0;j=n>>>0>h>>>0?j+1|0:j;Xa(t,d,e,0,0,0-h|0,0-(((h|0)!=0)+j|0)|0,0,0);Xa(k+128|0,1-l|0,0-((l>>>0>1)+i|0)|0,0,0,d,e,0,0);H=(q-s|0)+v|0;e=J[k+116>>2];t=e;d=J[k+112>>2];j=e<<1|d>>>31;n=d<<1;q=j;d=j;h=J[k+140>>2];z=h;e=J[k+136>>2];j=h<<1|e>>>31;i=e<<1|J[k+132>>2]>>>31;h=i+n|0;d=d+j|0;d=h>>>0>>0?d+1|0:d;e=d;d=d-(h>>>0<13927)|0;x=d;y=d;l=0;j=m|65536;I=j;K=o;d=o;j=j<<1|d>>>31;N=d<<1;O=j;D=j;d=Hl(x,l,j,0);j=ca;E=d;w=j;v=b<<1;d=c<<1|b>>>31;s=d;j=0;p=j;i=h-13927|0;x=(e|0)==(x|0)&i>>>0>>0|e>>>0>x>>>0;e=(e|0)==(q|0)&h>>>0>>0|e>>>0>>0;d=J[k+120>>2];h=J[k+124>>2]<<1|d>>>31;d=d<<1|t>>>31;j=h;l=z>>>31|0;d=l+d|0;j=d>>>0>>0?j+1|0:j;h=d;d=d+e|0;l=h>>>0>d>>>0?j+1|0:j;e=d;d=d+x|0;l=e>>>0>d>>>0?l+1|0:l;e=d-1|0;x=l-!d|0;q=0;j=Hl(s,p,x,q);d=j+E|0;h=ca+w|0;h=d>>>0>>0?h+1|0:h;t=(w|0)==(h|0)&d>>>0>>0|h>>>0>>0;j=0;z=e;L=c>>>31|0;C=L|o<<1;w=0;e=Hl(e,j,C,w);o=e+d|0;j=ca+h|0;l=0;j=e>>>0>o>>>0?j+1|0:j;n=j;d=(j|0)==(h|0)&d>>>0>o>>>0|h>>>0>j>>>0;e=d;d=d+t|0;l=e>>>0>d>>>0?1:l;e=Hl(D,p,x,q);d=e+d|0;j=ca+l|0;t=d;d=d>>>0>>0?j+1|0:j;e=Hl(D,p,z,w);m=ca;h=e;e=Hl(C,w,x,q);l=h+e|0;j=ca+m|0;j=e>>>0>l>>>0?j+1|0:j;e=j;j=(m|0)==(j|0)&h>>>0>l>>>0|j>>>0>>0;m=t+e|0;d=d+j|0;d=m>>>0>>0?d+1|0:d;t=m;m=d;e=0;d=e+o|0;j=l+n|0;j=d>>>0>>0?j+1|0:j;e=j;h=(j|0)==(n|0)&d>>>0>>0|j>>>0>>0;j=m;l=h;h=h+t|0;j=l>>>0>h>>>0?j+1|0:j;F=h;l=j;t=d;m=d;o=e;E=i;d=Hl(i,0,C,w);h=ca;e=d;i=Hl(y,r,s,r);d=d+i|0;j=ca+h|0;j=d>>>0>>0?j+1|0:j;i=(h|0)==(j|0)&d>>>0>>0|h>>>0>j>>>0;h=j;G=v&-2;e=Hl(z,w,G,0);n=e+d|0;j=ca+j|0;j=e>>>0>n>>>0?j+1|0:j;e=j;d=(j|0)==(h|0)&d>>>0>n>>>0|h>>>0>j>>>0;h=0;i=d+i|0;d=(i>>>0>>0?1:h)+o|0;j=l;m=i+m|0;d=m>>>0>>0?d+1|0:d;i=d;d=(d|0)==(o|0)&m>>>0>>0|d>>>0>>0;h=d;d=d+F|0;j=h>>>0>d>>>0?j+1|0:j;P=d;t=j;d=Hl(D,p,E,r);F=ca;D=d;h=Hl(x,q,G,r);d=d+h|0;j=ca+F|0;o=d;p=Hl(y,r,C,w);l=d+p|0;h=d>>>0>>0?j+1|0:j;d=h+ca|0;d=l>>>0

>>0?d+1|0:d;q=l;j=Hl(s,r,z,w);p=l+j|0;l=ca+d|0;l=j>>>0>p>>>0?l+1|0:l;z=0;C=(d|0)==(l|0)&p>>>0>>0|d>>>0>l>>>0;j=(h|0)==(F|0)&o>>>0>>0|h>>>0>>0;d=(d|0)==(h|0)&o>>>0>q>>>0|d>>>0>>0;d=d+j|0;d=d+C|0;h=l;q=h+m|0;j=(d|z)+i|0;j=h>>>0>q>>>0?j+1|0:j;o=j;d=(i|0)==(j|0)&m>>>0>q>>>0|i>>>0>j>>>0;j=t;h=d;d=d+P|0;j=h>>>0>d>>>0?j+1|0:j;z=d;i=j;d=Hl(y,r,G,r);y=ca;m=d;h=Hl(s,r,E,r);d=d+h|0;j=ca+y|0;j=d>>>0>>0?j+1|0:j;t=0;h=(j|0)==(y|0)&d>>>0>>0|j>>>0>>0;m=j;d=j+n|0;j=(h|t)+e|0;j=d>>>0>>0?j+1|0:j;h=j;m=(e|0)==(j|0)&d>>>0>>0|e>>>0>j>>>0;j=p;p=0;n=p+d|0;l=h+j|0;j=0;l=n>>>0

>>0?l+1|0:l;d=(h|0)==(l|0)&d>>>0>n>>>0|h>>>0>l>>>0;e=d;d=d+m|0;j=(e>>>0>d>>>0?1:j)+o|0;l=i;e=d;d=d+q|0;j=e>>>0>d>>>0?j+1|0:j;e=j;h=(o|0)==(j|0)&d>>>0>>0|j>>>0>>0;i=h;h=h+z|0;l=i>>>0>h>>>0?l+1|0:l;i=l;c:{if((l|0)==131071|l>>>0<131071){K=N|L;I=w|O;Xa(k+80|0,d,e,h,i,f,g,B,A);l=J[k+84>>2];p=l;j=b<<17;n=0;m=J[k+88>>2];c=n-m|0;b=J[k+80>>2];l=(l|b)!=0;o=c-l|0;m=(j-(J[k+92>>2]+(m>>>0>n>>>0)|0)|0)-(c>>>0>>0)|0;n=0-b|0;p=0-(((b|0)!=0)+p|0)|0;b=H+16382|0;break c}d=(e&1)<<31|d>>>1;e=h<<31|e>>>1;h=(i&1)<<31|h>>>1;i=i>>>1|0;Xa(k+96|0,d,e,h,i,f,g,B,A);o=J[k+100>>2];s=o;v=J[k+104>>2];n=0-v|0;l=J[k+96>>2];m=(o|l)!=0;o=n-m|0;m=((b<<16)-(J[k+108>>2]+(p>>>0>>0)|0)|0)-(m>>>0>n>>>0)|0;n=0-l|0;p=0-(((l|0)!=0)+s|0)|0;v=b;s=c;b=H+16383|0}if((b|0)>=32767){u=u|2147418112;b=0;c=0;break a}d:{if((b|0)>0){l=m<<1|o>>>31;o=o<<1|p>>>31;m=l;v=h;s=i&65535|b<<16;l=p<<1|n>>>31;i=n<<1;break d}if((b|0)<=-113){b=0;c=0;break a}Gb(k- -64|0,d,e,h,i,1-b|0);Pa(k+48|0,v,s,K,I,b+112|0);d=J[k+64>>2];e=J[k+68>>2];v=J[k+72>>2];s=J[k+76>>2];Xa(k+32|0,f,g,B,A,d,e,v,s);b=J[k+40>>2];c=J[k+56>>2];l=J[k+36>>2];o=b<<1|l>>>31;n=c-o|0;m=J[k+60>>2]-((J[k+44>>2]<<1|b>>>31)+(c>>>0>>0)|0)|0;b=J[k+32>>2];h=l<<1|b>>>31;j=b<<1;i=J[k+52>>2];c=J[k+48>>2];b=(h|0)==(i|0)&j>>>0>c>>>0|h>>>0>i>>>0;o=n-b|0;m=m-(b>>>0>n>>>0)|0;l=i-((c>>>0>>0)+h|0)|0;i=c-j|0}b=i;Xa(k+16|0,f,g,B,A,3,0,0,0);Xa(k,f,g,B,A,5,0,0,0);c=0;h=l+c|0;j=d&1;b=b+j|0;h=i>>>0>b>>>0?h+1|0:h;i=b;g=(g|0)==(h|0)&b>>>0>f>>>0|g>>>0>>0;l=m;b=(c|0)==(h|0)&b>>>0>>0|c>>>0>h>>>0;f=b+o|0;l=b>>>0>f>>>0?l+1|0:l;j=e;b=(l|0)==(A|0);b=b&(f|0)==(B|0)?g:b&f>>>0>B>>>0|l>>>0>A>>>0;c=b;b=b+d|0;j=c>>>0>b>>>0?j+1|0:j;c=j;d=(e|0)==(j|0)&b>>>0>>0|e>>>0>j>>>0;j=s;e=d;d=d+v|0;j=e>>>0>d>>>0?j+1|0:j;g=d;e=J[k+20>>2];m=(e|0)==(h|0)&M[k+16>>2]>>0|e>>>0>>0;e=J[k+28>>2];d=J[k+24>>2];e=j>>>0<2147418112&((d|0)==(f|0)&(e|0)==(l|0)?m:(e|0)==(l|0)&d>>>0>>0|e>>>0>>0);d=c;m=e;e=b+e|0;d=m>>>0>e>>>0?d+1|0:d;b=(c|0)==(d|0)&b>>>0>e>>>0|c>>>0>d>>>0;c=b;b=b+g|0;j=c>>>0>b>>>0?j+1|0:j;g=b;c=J[k+4>>2];h=(c|0)==(h|0)&M[k>>2]>>0|c>>>0>>0;c=J[k+12>>2];b=J[k+8>>2];b=j>>>0<2147418112&((b|0)==(f|0)&(c|0)==(l|0)?h:(c|0)==(l|0)&b>>>0>>0|c>>>0>>0);c=b;b=b+e|0;l=c>>>0>b>>>0?d+1|0:d;c=l;e=(d|0)==(l|0)&b>>>0>>0|d>>>0>l>>>0;d=j;f=e;e=e+g|0;d=f>>>0>e>>>0?d+1|0:d;r=e|r;u=d|u}J[a>>2]=b;J[a+4>>2]=c;J[a+8>>2]=r;J[a+12>>2]=u;ba=k+336|0}function ye(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,K=0,L=0,N=0,O=0,Q=0;s=ba-32|0;ba=s;J[a>>2]=J[d>>2];d=J[c>>2]-J[b>>2]|0;J[a+4>>2]=d;t=J[e+20>>2];if(!J[e+16>>2]&(t|0)<=0|(t|0)<0){d=a+4|0;sa(e,J[e+4>>2],a,d);t=J[e+20>>2];if(!J[e+16>>2]&(t|0)<=0|(t|0)<0){sa(e,J[e+4>>2],d,a+8|0)}d=J[d>>2]}if(d){F=a+12|0;za(F);G=a+44|0;d=G;J[d+12>>2]=0;J[d+16>>2]=0;J[d+4>>2]=J[d>>2];H=a- -64|0;d=H;J[d+12>>2]=0;J[d+16>>2]=0;J[d+4>>2]=J[d>>2];I=a+84|0;d=I;J[d+12>>2]=0;J[d+16>>2]=0;J[d+4>>2]=J[d>>2];J[s+24>>2]=J[b+8>>2];d=J[b+4>>2];J[s+16>>2]=J[b>>2];J[s+20>>2]=d;J[s+8>>2]=J[c+8>>2];b=J[c+4>>2];J[s>>2]=J[c>>2];J[s+4>>2]=b;c=0;b=0;f=ba-32|0;ba=f;o=a;i=J[a+8>>2];J[f+16>>2]=0;J[f+8>>2]=0;J[f+12>>2]=0;a:{b:{if(i){if(i>>>0>=1073741824){break b}a=i<<2;c=oa(a);J[f+8>>2]=c;b=a+c|0;J[f+16>>2]=b;pa(c,0,a);J[f+12>>2]=b}a=J[o+140>>2];d=J[a>>2];if(d){J[a+4>>2]=d;na(d);i=J[o+8>>2];c=J[f+8>>2];b=J[f+12>>2]}J[a+4>>2]=b;J[a>>2]=c;J[a+8>>2]=J[f+16>>2];c=0;J[f+16>>2]=0;J[f+8>>2]=0;J[f+12>>2]=0;b=0;c:{if(i){if(i>>>0>=1073741824){break c}a=i<<2;b=oa(a);J[f+8>>2]=b;c=a+b|0;J[f+16>>2]=c;pa(b,0,a);J[f+12>>2]=c}a=J[o+152>>2];d=J[a>>2];if(d){J[a+4>>2]=d;na(d);c=J[f+12>>2];b=J[f+8>>2]}J[a+4>>2]=c;J[a>>2]=b;J[a+8>>2]=J[f+16>>2];t=J[s+20>>2];z=J[s+24>>2];d=J[s+4>>2];C=J[s+8>>2];b=J[s>>2];c=J[s+16>>2];J[f+24>>2]=0;J[f+28>>2]=0;J[f+16>>2]=0;J[f+20>>2]=0;J[f+8>>2]=0;J[f+12>>2]=0;fb(f+8|0);a=J[f+24>>2]+J[f+28>>2]|0;v=(a>>>0)/113|0;a=J[J[f+12>>2]+(v<<2)>>2]+P(a-P(v,113)|0,36)|0;J[a+32>>2]=0;J[a+28>>2]=b-c;J[a+24>>2]=0;J[a+16>>2]=d;J[a+20>>2]=C;J[a+12>>2]=b;J[a+4>>2]=t;J[a+8>>2]=z;J[a>>2]=c;i=J[f+28>>2]+1|0;J[f+28>>2]=i;if(i){a=z;L=a&-4;K=a&3;N=o+44|0;m=o+12|0;O=o+84|0;Q=a>>>0<4;while(1){b=J[f+12>>2];h=J[f+24>>2];g=i-1|0;a=h+g|0;c=(a>>>0)/113|0;a=J[b+(c<<2)>>2]+P(a-P(c,113)|0,36)|0;E=J[a+32>>2];c=J[a+24>>2];v=J[a+12>>2];a=J[a>>2];J[f+28>>2]=g;g=J[f+16>>2];if((((b|0)!=(g|0)?P(g-b>>2,113)-1|0:0)-(h+i|0)|0)+1>>>0>=226){na(J[g-4>>2]);J[f+16>>2]=J[f+16>>2]-4}g=J[o>>2];i=(c|0)!=(J[o+8>>2]-1|0)?c+1|0:0;q=i<<2;D=P(E,12);h=D+J[o+152>>2]|0;c=J[q+J[h>>2]>>2];d:{e:{if((g|0)==(c|0)){break e}f:{g:{j=v-a|0;if(j>>>0<=2){g=J[o+128>>2];J[g>>2]=i;c=1;b=J[o+8>>2];if(b>>>0>1){break g}break f}h=J[o+140>>2];b=h+D|0;n=h;h=D+12|0;bb(n+h|0,J[b>>2],J[b+4>>2]);b=J[h+J[o+140>>2]>>2]+q|0;g=J[b>>2]+(1<>2]=g;b=a;h:{if((a|0)==(v|0)){break h}y=J[t+24>>2];n=y+q|0;b=v;c=a;if(!z){if(g>>>0>M[n>>2]){break h}while(1){b=b-1|0;if((c|0)==(b|0)){b=c;break h}if(g>>>0<=M[(J[d+24>>2]+q|0)+(P(b,C)<<2)>>2]){continue}c=c+1|0;if((c|0)!=(b|0)){continue}break}break h}while(1){h=P(c,z)<<2;if(g>>>0>M[h+n>>2]){c=c+1|0;if((c|0)!=(b|0)){continue}break h}while(1){b=b-1|0;if((c|0)==(b|0)){b=c;break h}r=J[d+24>>2]+(P(b,C)<<2)|0;if(g>>>0<=M[r+q>>2]){continue}break}w=h+y|0;u=0;h=0;p=0;if(!Q){while(1){k=h<<2;l=k+w|0;x=J[l>>2];A=l;l=k+r|0;J[A>>2]=J[l>>2];J[l>>2]=x;l=k|4;x=l+w|0;A=J[x>>2];l=l+r|0;J[x>>2]=J[l>>2];J[l>>2]=A;l=k|8;x=l+w|0;A=J[x>>2];l=l+r|0;J[x>>2]=J[l>>2];J[l>>2]=A;k=k|12;l=k+w|0;x=J[l>>2];k=k+r|0;J[l>>2]=J[k>>2];J[k>>2]=x;h=h+4|0;p=p+4|0;if((L|0)!=(p|0)){continue}break}}if(K){while(1){k=h<<2;p=k+w|0;l=J[p>>2];k=k+r|0;J[p>>2]=J[k>>2];J[k>>2]=l;h=h+1|0;u=u+1|0;if((K|0)!=(u|0)){continue}break}}c=c+1|0;if((c|0)!=(b|0)){continue}break}}r=b-a|0;w=v-b|0;if((r|0)!=(w|0)){xc(O,r>>>0>>0)}c=J[m>>2];n=J[c+8>>2];g=J[c+12>>2];h=(j>>>1|0)-(r>>>0>>0?r:w)|0;h=h<<24|(h&65280)<<8|(h>>>8&65280|h>>>24);h=h>>>4&252645135|(h&252645135)<<4;h=h>>>2&858993459|(h&858993459)<<2;l=h>>>1&1431655765|(h&1431655765)<<1;h=S(j)^31;p=32-h|0;k=l>>>p|0;j=Kl(k);n=j+n|0;g=j>>>0>n>>>0?g+1|0:g;J[c+8>>2]=n;J[c+12>>2]=g;g=h-j|0;n=g;j=g+J[c>>2]|0;g=J[c+4>>2]+(g>>31)|0;J[c>>2]=j;J[c+4>>2]=j>>>0>>0?g+1|0:g;i:{j:{k:{l:{c=J[m+28>>2];u=32-c|0;m:{if((u|0)>=(h|0)){g=c+h|0;J[m+28>>2]=g;n=J[m+24>>2]&(-1>>>p<>2]=n;if((g|0)!=32){break i}c=J[m+16>>2];if((c|0)!=J[m+20>>2]){J[c>>2]=n;J[m+16>>2]=c+4;h=0;c=0;break m}g=c;c=J[m+12>>2];k=g-c|0;u=k>>2;j=u+1|0;if(j>>>0>=1073741824){break l}h=0;g=0;p=k>>>1|0;j=k>>>0>=2147483644?1073741823:j>>>0

>>0?p:j;if(j){if(j>>>0>=1073741824){break k}g=oa(j<<2)}u=(u<<2)+g|0;J[u>>2]=n;g=ta(g,c,k);J[m+20>>2]=g+(j<<2);J[m+16>>2]=u+4;J[m+12>>2]=g;if(!c){c=0;break m}na(c);c=0;break m}p=J[m+24>>2]&(-1<>2]=p;c=J[m+16>>2];n:{if((c|0)!=J[m+20>>2]){J[c>>2]=p;J[m+16>>2]=c+4;break n}g=c;c=J[m+12>>2];g=g-c|0;y=g>>2;j=y+1|0;if(j>>>0>=1073741824){break j}n=g>>>1|0;j=g>>>0>=2147483644?1073741823:j>>>0>>0?n:j;if(j){if(j>>>0>=1073741824){break k}n=oa(j<<2)}else{n=0}y=n+(y<<2)|0;J[y>>2]=p;g=ta(n,c,g);J[m+20>>2]=g+(j<<2);J[m+16>>2]=y+4;J[m+12>>2]=g;if(!c){break n}na(c)}c=h-u|0;h=-1>>>32-c&k>>>u}J[m+28>>2]=c;J[m+24>>2]=h;break i}qa();B()}xa();B()}qa();B()}c=J[o+152>>2];g=c+D|0;h=J[g>>2];q=h+q|0;J[q>>2]=J[q>>2]+1;q=E+1|0;bb(c+P(q,12)|0,h,J[g+4>>2]);if((a|0)!=(b|0)){h=J[f+28>>2]+J[f+24>>2]|0;c=J[f+16>>2];g=J[f+12>>2];if((h|0)==(((c|0)!=(g|0)?P(c-g>>2,113)-1|0:0)|0)){fb(f+8|0);h=J[f+24>>2]+J[f+28>>2]|0;g=J[f+12>>2]}c=(h>>>0)/113|0;c=J[g+(c<<2)>>2]+P(h-P(c,113)|0,36)|0;J[c+32>>2]=E;J[c+28>>2]=r;J[c+24>>2]=i;J[c+16>>2]=t;J[c+12>>2]=b;J[c+4>>2]=t;J[c+8>>2]=z;J[c>>2]=a;J[c+20>>2]=z;J[f+28>>2]=J[f+28>>2]+1}if((b|0)==(v|0)){break e}g=J[f+28>>2]+J[f+24>>2]|0;a=J[f+16>>2];c=J[f+12>>2];if((g|0)==(((a|0)!=(c|0)?P(a-c>>2,113)-1|0:0)|0)){fb(f+8|0);g=J[f+24>>2]+J[f+28>>2]|0;c=J[f+12>>2]}a=(g>>>0)/113|0;a=J[c+(a<<2)>>2]+P(g-P(a,113)|0,36)|0;J[a+32>>2]=q;J[a+28>>2]=w;J[a+24>>2]=i;J[a+16>>2]=d;J[a+20>>2]=C;J[a+12>>2]=v;J[a+4>>2]=t;J[a>>2]=b;J[a+8>>2]=z;i=J[f+28>>2]+1|0;J[f+28>>2]=i;break d}while(1){i=(b-1|0)!=(i|0)?i+1|0:0;J[g+(c<<2)>>2]=i;b=J[o+8>>2];c=c+1|0;if(b>>>0>c>>>0){continue}break}}if(!b|(a|0)==(v|0)){break e}g=0;c=1;while(1){i=0;o:{if(!c){c=0;break o}v=J[t+24>>2]+(P(J[t+4>>2],a+g|0)<<2)|0;while(1){c=J[o>>2];q=J[J[o+128>>2]+(i<<2)>>2]<<2;r=J[q+J[h>>2]>>2];if((c|0)!=(r|0)){Ib(N,c-r|0,J[v+q>>2]);b=J[o+8>>2]}c=b;i=i+1|0;if(c>>>0>i>>>0){continue}break}}g=g+1|0;if((j|0)!=(g|0)){continue}break}}i=J[f+28>>2]}if(i){continue}break}}J[f+28>>2]=0;a=J[f+16>>2];i=J[f+12>>2];b=a-i|0;if(b>>>0>=9){while(1){na(J[i>>2]);i=J[f+12>>2]+4|0;J[f+12>>2]=i;a=J[f+16>>2];b=a-i|0;if(b>>>0>8){continue}break}}c=56;p:{switch((b>>>2|0)-1|0){case 1:c=113;case 0:J[f+24>>2]=c;break;default:break p}}q:{if((a|0)==(i|0)){break q}while(1){na(J[i>>2]);i=i+4|0;if((i|0)!=(a|0)){continue}break}a=J[f+16>>2];b=J[f+12>>2];if((a|0)==(b|0)){break q}J[f+16>>2]=a+((b-a|0)+3&-4)}a=J[f+8>>2];if(a){na(a)}ba=f+32|0;break a}qa();B()}qa();B()}ya(F,e);eb(G,e);eb(H,e);eb(I,e)}ba=s+32|0;return 1}function Re(a,b,c,d,e,f){a=a|0;b=+b;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0,z=0,B=0,C=0;m=ba-560|0;ba=m;J[m+44>>2]=0;A(+b);g=v(1)|0;v(0)|0;a:{if((g|0)<0){s=1;y=1173;b=-b;A(+b);g=v(1)|0;v(0)|0;break a}if(e&2048){s=1;y=1176;break a}s=e&1;y=s?1179:1174;z=!s}b:{if((g&2146435072)==2146435072){g=s+3|0;Qa(a,32,c,g,e&-65537);Oa(a,y,s);d=f&32;Oa(a,b!=b?d?1434:1643:d?1506:1647,3);Qa(a,32,c,g,e^8192);n=(c|0)<(g|0)?g:c;break b}u=m+16|0;c:{d:{e:{b=Ve(b,m+44|0);b=b+b;if(b!=0){g=J[m+44>>2];J[m+44>>2]=g-1;w=f|32;if((w|0)!=97){break e}break c}w=f|32;if((w|0)==97){break c}k=J[m+44>>2];l=(d|0)<0?6:d;break d}k=g-29|0;J[m+44>>2]=k;b=b*268435456;l=(d|0)<0?6:d}q=(m+48|0)+((k|0)>=0?288:0)|0;h=q;while(1){if(b<4294967296&b>=0){d=~~b>>>0}else{d=0}J[h>>2]=d;h=h+4|0;b=(b-+(d>>>0))*1e9;if(b!=0){continue}break}f:{if((k|0)<=0){d=k;g=h;i=q;break f}i=q;d=k;while(1){o=(d|0)>=29?29:d;g=h-4|0;g:{if(i>>>0>g>>>0){break g}d=0;while(1){j=J[g>>2];x=d;d=o&31;if((o&63)>>>0>=32){n=j<>>32-d;d=j<>>0>x>>>0?j+1|0:j,1e9,0);B=g,C=x-Hl(d,ca,1e9,0)|0,J[B>>2]=C;g=g-4|0;if(i>>>0<=g>>>0){continue}break}if(!d){break g}i=i-4|0;J[i>>2]=d}while(1){g=h;if(i>>>0>>0){h=g-4|0;if(!J[h>>2]){continue}}break}d=J[m+44>>2]-o|0;J[m+44>>2]=d;h=g;if((d|0)>0){continue}break}}if((d|0)<0){t=((l+25>>>0)/9|0)+1|0;p=(w|0)==102;while(1){d=0-d|0;n=(d|0)>=9?9:d;h:{if(g>>>0<=i>>>0){h=J[i>>2];break h}o=1e9>>>n|0;j=-1<>2];J[h>>2]=x+(d>>>n|0);d=P(o,d&j);h=h+4|0;if(h>>>0>>0){continue}break}h=J[i>>2];if(!d){break h}J[g>>2]=d;g=g+4|0}d=n+J[m+44>>2]|0;J[m+44>>2]=d;i=(!h<<2)+i|0;h=p?q:i;g=g-h>>2>(t|0)?h+(t<<2)|0:g;if((d|0)<0){continue}break}}d=0;i:{if(g>>>0<=i>>>0){break i}d=P(q-i>>2,9);h=10;j=J[i>>2];if(j>>>0<10){break i}while(1){d=d+1|0;h=P(h,10);if(j>>>0>=h>>>0){continue}break}}h=(l-((w|0)!=102?d:0)|0)-((w|0)==103&(l|0)!=0)|0;if((h|0)<(P(g-q>>2,9)-9|0)){o=h+9216|0;j=(o|0)/9|0;k=((((k|0)<0?4:292)+m|0)+(j<<2)|0)-4048|0;h=10;n=o-P(j,9)|0;if((n|0)<=7){while(1){h=P(h,10);n=n+1|0;if((n|0)!=8){continue}break}}o=J[k>>2];t=(o>>>0)/(h>>>0)|0;p=o-P(h,t)|0;j=k+4|0;j:{if(!p&(j|0)==(g|0)){break j}k:{if(!(t&1)){b=9007199254740992;if(!(H[k-4|0]&1)|((h|0)!=1e9|i>>>0>=k>>>0)){break k}}b=9007199254740994}r=(g|0)==(j|0)?1:1.5;j=h>>>1|0;r=j>>>0>p>>>0?.5:(j|0)==(p|0)?r:1.5;if(!(K[y|0]!=45|z)){r=-r;b=-b}j=o-p|0;J[k>>2]=j;if(b+r==b){break j}d=h+j|0;J[k>>2]=d;if(d>>>0>=1e9){while(1){J[k>>2]=0;k=k-4|0;if(k>>>0>>0){i=i-4|0;J[i>>2]=0}d=J[k>>2]+1|0;J[k>>2]=d;if(d>>>0>999999999){continue}break}}d=P(q-i>>2,9);h=10;j=J[i>>2];if(j>>>0<10){break j}while(1){d=d+1|0;h=P(h,10);if(j>>>0>=h>>>0){continue}break}}h=k+4|0;g=g>>>0>h>>>0?h:g}while(1){j=g;o=g>>>0<=i>>>0;if(!o){g=j-4|0;if(!J[g>>2]){continue}}break}l:{if((w|0)!=103){k=e&8;break l}h=l?l:1;g=(h|0)>(d|0)&(d|0)>-5;l=(g?d^-1:-1)+h|0;f=(g?-1:-2)+f|0;k=e&8;if(k){break l}g=-9;m:{if(o){break m}k=J[j-4>>2];if(!k){break m}n=10;g=0;if((k>>>0)%10|0){break m}while(1){h=g;g=g+1|0;n=P(n,10);if(!((k>>>0)%(n>>>0)|0)){continue}break}g=h^-1}h=P(j-q>>2,9);if((f&-33)==70){k=0;g=(g+h|0)-9|0;g=(g|0)>0?g:0;l=(g|0)>(l|0)?l:g;break l}k=0;g=((d+h|0)+g|0)-9|0;g=(g|0)>0?g:0;l=(g|0)>(l|0)?l:g}n=-1;o=k|l;if(((o?2147483645:2147483646)|0)<(l|0)){break b}p=(((o|0)!=0)+l|0)+1|0;h=f&-33;n:{if((h|0)==70){if((p^2147483647)<(d|0)){break b}g=(d|0)>0?d:0;break n}g=d>>31;g=Mb((g^d)-g|0,0,u);if((u-g|0)<=1){while(1){g=g-1|0;H[g|0]=48;if((u-g|0)<2){continue}break}}t=g-2|0;H[t|0]=f;H[g-1|0]=(d|0)<0?45:43;g=u-t|0;if((g|0)>(p^2147483647)){break b}}d=g+p|0;if((d|0)>(s^2147483647)){break b}p=d+s|0;Qa(a,32,c,p,e);Oa(a,y,s);Qa(a,48,c,p,e^65536);o:{p:{q:{if((h|0)==70){f=m+16|0;d=f|8;k=f|9;h=i>>>0>q>>>0?q:i;i=h;while(1){g=Mb(J[i>>2],0,k);r:{if((h|0)!=(i|0)){if(m+16>>>0>=g>>>0){break r}while(1){g=g-1|0;H[g|0]=48;if(m+16>>>0>>0){continue}break}break r}if((g|0)!=(k|0)){break r}H[m+24|0]=48;g=d}Oa(a,g,k-g|0);i=i+4|0;if(q>>>0>=i>>>0){continue}break}if(o){Oa(a,1981,1)}if((l|0)<=0|i>>>0>=j>>>0){break q}while(1){g=Mb(J[i>>2],0,k);if(g>>>0>m+16>>>0){while(1){g=g-1|0;H[g|0]=48;if(m+16>>>0>>0){continue}break}}Oa(a,g,(l|0)>=9?9:l);g=l-9|0;i=i+4|0;if(j>>>0<=i>>>0){break p}d=(l|0)>9;l=g;if(d){continue}break}break p}s:{if((l|0)<0){break s}q=i>>>0>>0?j:i+4|0;f=m+16|0;d=f|8;j=f|9;h=i;while(1){g=Mb(J[h>>2],0,j);if((j|0)==(g|0)){H[m+24|0]=48;g=d}t:{if((h|0)!=(i|0)){if(m+16>>>0>=g>>>0){break t}while(1){g=g-1|0;H[g|0]=48;if(m+16>>>0>>0){continue}break}break t}Oa(a,g,1);g=g+1|0;if(!(k|l)){break t}Oa(a,1981,1)}f=j-g|0;Oa(a,g,(f|0)>(l|0)?l:f);l=l-f|0;h=h+4|0;if(q>>>0<=h>>>0){break s}if((l|0)>=0){continue}break}}Qa(a,48,l+18|0,18,0);Oa(a,t,u-t|0);break o}g=l}Qa(a,48,g+9|0,9,0)}Qa(a,32,c,p,e^8192);n=(c|0)<(p|0)?p:c;break b}k=(f<<26>>31&9)+y|0;u:{if(d>>>0>11){break u}g=12-d|0;r=16;while(1){r=r*16;g=g-1|0;if(g){continue}break}if(K[k|0]==45){b=-(r+(-b-r));break u}b=b+r-r}g=J[m+44>>2];h=g>>31;g=Mb((g^h)-h|0,0,u);if((u|0)==(g|0)){H[m+15|0]=48;g=m+15|0}q=s|2;i=f&32;h=J[m+44>>2];l=g-2|0;H[l|0]=f+15;H[g-1|0]=(h|0)<0?45:43;g=e&8;h=m+16|0;while(1){f=h;if(R(b)<2147483648){j=~~b}else{j=-2147483648}H[h|0]=i|K[j+17776|0];b=(b-+(j|0))*16;h=f+1|0;if(!(!((d|0)>0|g)&b==0|(h-(m+16|0)|0)!=1)){H[f+1|0]=46;h=f+2|0}if(b!=0){continue}break}n=-1;g=u-l|0;f=g+q|0;if((2147483645-f|0)<(d|0)){break b}v:{w:{if(!d){break w}i=h-(m+16|0)|0;if((i-2|0)>=(d|0)){break w}d=d+2|0;break v}i=h-(m+16|0)|0;d=i}f=d+f|0;Qa(a,32,c,f,e);Oa(a,k,q);Qa(a,48,c,f,e^65536);Oa(a,m+16|0,i);Qa(a,48,d-i|0,0,0);Oa(a,l,g);Qa(a,32,c,f,e^8192);n=(c|0)<(f|0)?f:c}ba=m+560|0;return n|0}function Ae(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,K=0,L=0,N=0,O=0,Q=0;o=ba-32|0;ba=o;J[a>>2]=J[d>>2];d=J[c>>2]-J[b>>2]|0;J[a+4>>2]=d;p=J[e+20>>2];if(!J[e+16>>2]&(p|0)<=0|(p|0)<0){d=a+4|0;sa(e,J[e+4>>2],a,d);p=J[e+20>>2];if(!J[e+16>>2]&(p|0)<=0|(p|0)<0){sa(e,J[e+4>>2],d,a+8|0)}d=J[d>>2]}if(d){C=a+12|0;te(C);D=a+1068|0;d=D;J[d+12>>2]=0;J[d+16>>2]=0;J[d+4>>2]=J[d>>2];E=a+1088|0;d=E;J[d+12>>2]=0;J[d+16>>2]=0;J[d+4>>2]=J[d>>2];F=a+1108|0;d=F;J[d+12>>2]=0;J[d+16>>2]=0;J[d+4>>2]=J[d>>2];J[o+24>>2]=J[b+8>>2];d=J[b+4>>2];J[o+16>>2]=J[b>>2];J[o+20>>2]=d;J[o+8>>2]=J[c+8>>2];b=J[c+4>>2];J[o>>2]=J[c>>2];J[o+4>>2]=b;b=0;f=ba-32|0;ba=f;l=a;h=J[a+8>>2];J[f+16>>2]=0;J[f+8>>2]=0;J[f+12>>2]=0;a:{b:{if(h){if(h>>>0>=1073741824){break b}a=h<<2;b=oa(a);J[f+8>>2]=b;g=a+b|0;J[f+16>>2]=g;pa(b,0,a);J[f+12>>2]=g}a=J[l+1164>>2];c=J[a>>2];if(c){J[a+4>>2]=c;na(c);h=J[l+8>>2];g=J[f+12>>2];b=J[f+8>>2]}J[a+4>>2]=g;J[a>>2]=b;J[a+8>>2]=J[f+16>>2];b=0;J[f+16>>2]=0;J[f+8>>2]=0;J[f+12>>2]=0;a=0;c:{if(h){if(h>>>0>=1073741824){break c}c=h<<2;a=oa(c);J[f+8>>2]=a;b=a+c|0;J[f+16>>2]=b;pa(a,0,c);J[f+12>>2]=b}c=J[l+1176>>2];d=J[c>>2];if(d){J[c+4>>2]=d;na(d);b=J[f+12>>2];a=J[f+8>>2]}J[c+4>>2]=b;J[c>>2]=a;J[c+8>>2]=J[f+16>>2];p=J[o+20>>2];u=J[o+24>>2];d=J[o+4>>2];x=J[o+8>>2];b=J[o>>2];c=J[o+16>>2];J[f+24>>2]=0;J[f+28>>2]=0;J[f+16>>2]=0;J[f+20>>2]=0;J[f+8>>2]=0;J[f+12>>2]=0;fb(f+8|0);a=J[f+24>>2]+J[f+28>>2]|0;r=(a>>>0)/113|0;a=J[J[f+12>>2]+(r<<2)>>2]+P(a-P(r,113)|0,36)|0;J[a+32>>2]=0;J[a+28>>2]=b-c;J[a+24>>2]=0;J[a+16>>2]=d;J[a+20>>2]=x;J[a+12>>2]=b;J[a+4>>2]=p;J[a+8>>2]=u;J[a>>2]=c;h=J[f+28>>2]+1|0;J[f+28>>2]=h;if(h){a=u;L=a&-4;G=a&3;N=l+1068|0;H=l+12|0;O=l+1108|0;Q=a>>>0<4;while(1){b=J[f+12>>2];m=J[f+24>>2];j=h-1|0;a=m+j|0;c=(a>>>0)/113|0;a=J[b+(c<<2)>>2]+P(a-P(c,113)|0,36)|0;z=J[a+32>>2];g=J[a+24>>2];r=J[a+12>>2];c=J[a>>2];J[f+28>>2]=j;a=J[f+16>>2];if((((a|0)!=(b|0)?P(a-b>>2,113)-1|0:0)-(h+m|0)|0)+1>>>0>=226){na(J[a-4>>2]);J[f+16>>2]=J[f+16>>2]-4}b=J[l>>2];h=(g|0)!=(J[l+8>>2]-1|0)?g+1|0:0;m=h<<2;y=P(z,12);j=y+J[l+1176>>2]|0;g=J[m+J[j>>2]>>2];d:{e:{if((b|0)==(g|0)){break e}f:{g:{t=r-c|0;if(t>>>0<=2){g=J[l+1152>>2];J[g>>2]=h;b=1;a=J[l+8>>2];if(a>>>0>1){break g}break f}j=J[l+1164>>2];a=j+y|0;i=j;j=y+12|0;bb(i+j|0,J[a>>2],J[a+4>>2]);a=m+J[j+J[l+1164>>2]>>2]|0;j=J[a>>2]+(1<>2]=j;a=c;h:{if((r|0)==(a|0)){break h}I=J[p+24>>2];K=m+I|0;a=r;b=c;if(!u){if(j>>>0>M[K>>2]){break h}while(1){a=a-1|0;if((b|0)==(a|0)){a=b;break h}if(j>>>0<=M[(m+J[d+24>>2]|0)+(P(a,x)<<2)>>2]){continue}b=b+1|0;if((b|0)!=(a|0)){continue}break}break h}while(1){g=P(b,u)<<2;if(j>>>0>M[g+K>>2]){b=b+1|0;if((b|0)!=(a|0)){continue}break h}while(1){a=a-1|0;if((b|0)==(a|0)){a=b;break h}n=J[d+24>>2]+(P(a,x)<<2)|0;if(j>>>0<=M[n+m>>2]){continue}break}q=g+I|0;A=0;g=0;v=0;if(!Q){while(1){k=g<<2;i=k+q|0;s=J[i>>2];w=i;i=k+n|0;J[w>>2]=J[i>>2];J[i>>2]=s;i=k|4;s=i+q|0;w=J[s>>2];i=i+n|0;J[s>>2]=J[i>>2];J[i>>2]=w;i=k|8;s=i+q|0;w=J[s>>2];i=i+n|0;J[s>>2]=J[i>>2];J[i>>2]=w;k=k|12;i=k+q|0;s=J[i>>2];k=k+n|0;J[i>>2]=J[k>>2];J[k>>2]=s;g=g+4|0;v=v+4|0;if((L|0)!=(v|0)){continue}break}}if(G){while(1){k=g<<2;v=k+q|0;i=J[v>>2];k=k+n|0;J[v>>2]=J[k>>2];J[k>>2]=i;g=g+1|0;A=A+1|0;if((A|0)!=(G|0)){continue}break}}b=b+1|0;if((b|0)!=(a|0)){continue}break}}j=a-c|0;n=r-a|0;if((j|0)!=(n|0)){xc(O,j>>>0>>0)}k=z+1|0;b=S(t);q=b^31;g=t>>>1|0;i:{if(j>>>0>>0){if(!q){break i}t=g-j|0;b=1<<30-b;g=0;while(1){Ca((g<<5)+H|0,(b&t)!=0);b=b>>>1|0;g=g+1|0;if((q|0)!=(g|0)){continue}break}break i}if(!q){break i}t=g-n|0;b=1<<30-b;g=0;while(1){Ca((g<<5)+H|0,(b&t)!=0);b=b>>>1|0;g=g+1|0;if((q|0)!=(g|0)){continue}break}}i=m;b=J[l+1176>>2];g=b+y|0;m=J[g>>2];q=i+m|0;J[q>>2]=J[q>>2]+1;bb(b+P(k,12)|0,m,J[g+4>>2]);if((a|0)!=(c|0)){g=J[f+28>>2]+J[f+24>>2]|0;m=J[f+16>>2];b=J[f+12>>2];if((g|0)==(((b|0)!=(m|0)?P(m-b>>2,113)-1|0:0)|0)){fb(f+8|0);g=J[f+24>>2]+J[f+28>>2]|0;i=J[f+12>>2]}else{i=b}b=(g>>>0)/113|0;b=J[i+(b<<2)>>2]+P(g-P(b,113)|0,36)|0;J[b+32>>2]=z;J[b+28>>2]=j;J[b+24>>2]=h;J[b+16>>2]=p;J[b+12>>2]=a;J[b+4>>2]=p;J[b+8>>2]=u;J[b>>2]=c;J[b+20>>2]=u;J[f+28>>2]=J[f+28>>2]+1}if((a|0)==(r|0)){break e}g=J[f+28>>2]+J[f+24>>2]|0;c=J[f+16>>2];b=J[f+12>>2];if((g|0)==(((b|0)!=(c|0)?P(c-b>>2,113)-1|0:0)|0)){fb(f+8|0);g=J[f+24>>2]+J[f+28>>2]|0;c=J[f+12>>2]}else{c=b}b=(g>>>0)/113|0;b=J[c+(b<<2)>>2]+P(g-P(b,113)|0,36)|0;J[b+32>>2]=k;J[b+28>>2]=n;J[b+24>>2]=h;J[b+16>>2]=d;J[b+20>>2]=x;J[b+12>>2]=r;J[b+4>>2]=p;J[b>>2]=a;J[b+8>>2]=u;h=J[f+28>>2]+1|0;J[f+28>>2]=h;break d}while(1){h=(a-1|0)!=(h|0)?h+1|0:0;J[g+(b<<2)>>2]=h;a=J[l+8>>2];b=b+1|0;if(a>>>0>b>>>0){continue}break}}g=0;b=a;if((c|0)==(r|0)){break e}while(1){j:{if(!b){b=0;break j}r=J[p+24>>2]+(P(J[p+4>>2],c+g|0)<<2)|0;h=0;while(1){b=J[l>>2];m=J[J[l+1152>>2]+(h<<2)>>2]<<2;n=J[m+J[j>>2]>>2];if((b|0)!=(n|0)){Ib(N,b-n|0,J[m+r>>2]);a=J[l+8>>2]}b=a;h=h+1|0;if(h>>>0>>0){continue}break}}g=g+1|0;if((t|0)!=(g|0)){continue}break}}h=J[f+28>>2]}if(h){continue}break}}J[f+28>>2]=0;c=J[f+16>>2];h=J[f+12>>2];a=c-h|0;if(a>>>0>=9){while(1){na(J[h>>2]);h=J[f+12>>2]+4|0;J[f+12>>2]=h;c=J[f+16>>2];a=c-h|0;if(a>>>0>8){continue}break}}b=56;k:{switch((a>>>2|0)-1|0){case 1:b=113;case 0:J[f+24>>2]=b;break;default:break k}}l:{if((c|0)==(h|0)){break l}while(1){na(J[h>>2]);h=h+4|0;if((h|0)!=(c|0)){continue}break}a=J[f+16>>2];b=J[f+12>>2];if((a|0)==(b|0)){break l}J[f+16>>2]=a+((b-a|0)+3&-4)}a=J[f+8>>2];if(a){na(a)}ba=f+32|0;break a}qa();B()}qa();B()}se(C,e);eb(D,e);eb(E,e);eb(F,e)}ba=o+32|0;return 1}function Ue(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;l=1510;g=ba-80|0;ba=g;J[g+76>>2]=1510;w=g+55|0;r=g+56|0;a:{b:{c:{d:{e:while(1){h=l;if((n^2147483647)<(e|0)){break d}n=e+n|0;f:{g:{h:{e=h;f=K[e|0];if(f){while(1){i:{f=f&255;j:{if(!f){l=e;break j}if((f|0)!=37){break i}f=e;while(1){if(K[f+1|0]!=37){l=f;break j}e=e+1|0;k=K[f+2|0];l=f+2|0;f=l;if((k|0)==37){continue}break}}e=e-h|0;v=n^2147483647;if((e|0)>(v|0)){break d}if(a){Oa(a,h,e)}if(e){continue e}J[g+76>>2]=l;e=l+1|0;o=-1;if(!(K[l+2|0]!=36|H[l+1|0]-48>>>0>=10)){o=H[l+1|0]-48|0;s=1;e=l+3|0}J[g+76>>2]=e;m=0;f=H[e|0];l=f-32|0;k:{if(l>>>0>31){i=e;break k}i=e;l=1<>2]=i;m=m|l;f=H[e+1|0];l=f-32|0;if(l>>>0>=32){break k}e=i;l=1<>>0>=10)){J[((H[i+1|0]<<2)+d|0)-192>>2]=10;f=i+3|0;s=1;e=J[((H[i+1|0]<<3)+c|0)-384>>2];break m}if(s){break h}f=i+1|0;if(!a){J[g+76>>2]=f;s=0;p=0;break l}e=J[b>>2];J[b>>2]=e+4;s=0;e=J[e>>2]}J[g+76>>2]=f;p=e;if((e|0)>=0){break l}p=0-p|0;m=m|8192;break l}p=Te(g+76|0);if((p|0)<0){break d}f=J[g+76>>2]}e=0;j=-1;n:{if(K[f|0]!=46){l=f;f=0;break n}if(K[f+1|0]==42){o:{if(!(K[f+3|0]!=36|H[f+2|0]-48>>>0>=10)){J[((H[f+2|0]<<2)+d|0)-192>>2]=10;l=f+4|0;j=J[((H[f+2|0]<<3)+c|0)-384>>2];break o}if(s){break h}l=f+2|0;j=0;if(!a){break o}f=J[b>>2];J[b>>2]=f+4;j=J[f>>2]}J[g+76>>2]=l;f=(j^-1)>>>31|0;break n}J[g+76>>2]=f+1;j=Te(g+76|0);l=J[g+76>>2];f=1}t=f;while(1){q=e;i=28;k=l;e=H[k|0];if(e-123>>>0<4294967238){break c}l=k+1|0;e=K[(e+P(q,58)|0)+17247|0];if(e-1>>>0<8){continue}break}J[g+76>>2]=l;p:{q:{if((e|0)!=27){if(!e){break c}if((o|0)>=0){J[(o<<2)+d>>2]=e;f=(o<<3)+c|0;e=J[f+4>>2];J[g+64>>2]=J[f>>2];J[g+68>>2]=e;break q}if(!a){break f}Se(g- -64|0,e,b);break p}if((o|0)>=0){break c}}e=0;if(!a){continue e}}f=m&-65537;m=m&8192?f:m;o=0;u=1163;i=r;r:{s:{t:{u:{v:{w:{x:{y:{z:{A:{B:{C:{D:{E:{F:{G:{e=H[k|0];e=q?(e&15)==3?e&-33:e:e;switch(e-88|0){case 11:break r;case 9:case 13:case 14:case 15:break s;case 27:break x;case 12:case 17:break A;case 23:break B;case 0:case 32:break C;case 24:break D;case 22:break E;case 29:break F;case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 10:case 16:case 18:case 19:case 20:case 21:case 25:case 26:case 28:case 30:case 31:break g;default:break G}}H:{switch(e-65|0){case 0:case 4:case 5:case 6:break s;case 2:break v;case 1:case 3:break g;default:break H}}if((e|0)==83){break w}break g}f=J[g+64>>2];k=J[g+68>>2];e=1163;break z}e=0;I:{switch(q&255){case 0:J[J[g+64>>2]>>2]=n;continue e;case 1:J[J[g+64>>2]>>2]=n;continue e;case 2:h=J[g+64>>2];J[h>>2]=n;J[h+4>>2]=n>>31;continue e;case 3:I[J[g+64>>2]>>1]=n;continue e;case 4:H[J[g+64>>2]]=n;continue e;case 6:J[J[g+64>>2]>>2]=n;continue e;case 7:break I;default:continue e}}h=J[g+64>>2];J[h>>2]=n;J[h+4>>2]=n>>31;continue e}j=j>>>0<=8?8:j;m=m|8;e=120}h=r;f=J[g+64>>2];k=J[g+68>>2];if(f|k){x=e&32;while(1){h=h-1|0;H[h|0]=x|K[(f&15)+17776|0];y=!k&f>>>0>15|(k|0)!=0;q=k;k=k>>>4|0;f=(q&15)<<28|f>>>4;if(y){continue}break}}if(!(J[g+64>>2]|J[g+68>>2])|!(m&8)){break y}u=(e>>>4|0)+1163|0;o=2;break y}e=r;h=J[g+68>>2];k=h;f=J[g+64>>2];if(h|f){while(1){e=e-1|0;H[e|0]=f&7|48;q=!k&f>>>0>7|(k|0)!=0;h=k;k=h>>>3|0;f=(h&7)<<29|f>>>3;if(q){continue}break}}h=e;if(!(m&8)){break y}e=r-h|0;j=(e|0)<(j|0)?j:e+1|0;break y}f=J[g+64>>2];e=J[g+68>>2];k=e;if((e|0)<0){h=0-(k+((f|0)!=0)|0)|0;k=h;f=0-f|0;J[g+64>>2]=f;J[g+68>>2]=h;o=1;e=1163;break z}if(m&2048){o=1;e=1164;break z}o=m&1;e=o?1165:1163}u=e;h=Mb(f,k,r)}if((j|0)<0?t:0){break d}m=t?m&-65537:m;e=J[g+64>>2];f=J[g+68>>2];if(!(j|(e|f)!=0)){h=r;j=0;break g}e=!(e|f)+(r-h|0)|0;j=(e|0)<(j|0)?j:e;break g}q=j>>>0>=2147483647?2147483647:j;i=q;m=(i|0)!=0;e=J[g+64>>2];h=e?e:1983;e=h;J:{K:{L:{M:{if(!(e&3)|!i){break M}while(1){if(!K[e|0]){break L}i=i-1|0;m=(i|0)!=0;e=e+1|0;if(!(e&3)){break M}if(i){continue}break}}if(!m){break K}if(!(!K[e|0]|i>>>0<4)){while(1){k=J[e>>2];if((k^-1)&k-16843009&-2139062144){break L}e=e+4|0;i=i-4|0;if(i>>>0>3){continue}break}}if(!i){break K}}while(1){if(!K[e|0]){break J}e=e+1|0;i=i-1|0;if(i){continue}break}}e=0}e=e?e-h|0:q;i=e+h|0;if((j|0)>=0){m=f;j=e;break g}m=f;j=e;if(K[i|0]){break d}break g}if(j){f=J[g+64>>2];break u}e=0;Qa(a,32,p,0,m);break t}J[g+12>>2]=0;J[g+8>>2]=J[g+64>>2];f=g+8|0;J[g+64>>2]=f;j=-1}e=0;N:{while(1){h=J[f>>2];if(!h){break N}k=Pe(g+4|0,h);h=(k|0)<0;if(!(h|k>>>0>j-e>>>0)){f=f+4|0;e=e+k|0;if(j>>>0>e>>>0){continue}break N}break}if(h){break b}}i=61;if((e|0)<0){break c}Qa(a,32,p,e,m);if(!e){e=0;break t}i=0;f=J[g+64>>2];while(1){h=J[f>>2];if(!h){break t}h=Pe(g+4|0,h);i=h+i|0;if(i>>>0>e>>>0){break t}Oa(a,g+4|0,h);f=f+4|0;if(e>>>0>i>>>0){continue}break}}Qa(a,32,p,e,m^8192);e=(e|0)<(p|0)?p:e;continue e}if((j|0)<0?t:0){break d}i=61;e=Re(a,O[g+64>>3],p,j,m,e);if((e|0)>=0){continue e}break c}H[g+55|0]=J[g+64>>2];j=1;h=w;m=f;break g}f=K[e+1|0];e=e+1|0;continue}}if(a){break a}if(!s){break f}e=1;while(1){a=J[(e<<2)+d>>2];if(a){Se((e<<3)+c|0,a,b);n=1;e=e+1|0;if((e|0)!=10){continue}break a}break}n=1;if(e>>>0>=10){break a}while(1){if(J[(e<<2)+d>>2]){break h}e=e+1|0;if((e|0)!=10){continue}break}break a}i=28;break c}k=i-h|0;f=(j|0)>(k|0)?j:k;if((f|0)>(o^2147483647)){break d}i=61;j=f+o|0;e=(j|0)<(p|0)?p:j;if((v|0)<(e|0)){break c}Qa(a,32,e,j,m);Oa(a,u,o);Qa(a,48,e,j,m^65536);Qa(a,48,f,k,0);Oa(a,h,k);Qa(a,32,e,j,m^8192);continue}break}n=0;break a}i=61}J[4804]=i}n=-1}ba=g+80|0;return n}function Qf(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0;g=ba-16|0;ba=g;J[b+44>>2]=d;J[b+48>>2]=c;d=J[b+12>>2];f=J[b+8>>2];if((d|0)!=(f|0)){while(1){d=d-4|0;e=J[d>>2];J[d>>2]=0;if(e){da[J[J[e>>2]+4>>2]](e)}if((d|0)!=(f|0)){continue}break}}J[b+12>>2]=f;J[b+24>>2]=J[b+20>>2];J[b+36>>2]=J[b+32>>2];a:{if(!J[b+4>>2]){b=oa(32);H[b+23|0]=0;c=K[1670]|K[1671]<<8|(K[1672]<<16|K[1673]<<24);d=K[1666]|K[1667]<<8|(K[1668]<<16|K[1669]<<24);H[b+15|0]=d;H[b+16|0]=d>>>8;H[b+17|0]=d>>>16;H[b+18|0]=d>>>24;H[b+19|0]=c;H[b+20|0]=c>>>8;H[b+21|0]=c>>>16;H[b+22|0]=c>>>24;c=K[1663]|K[1664]<<8|(K[1665]<<16|K[1666]<<24);d=K[1659]|K[1660]<<8|(K[1661]<<16|K[1662]<<24);H[b+8|0]=d;H[b+9|0]=d>>>8;H[b+10|0]=d>>>16;H[b+11|0]=d>>>24;H[b+12|0]=c;H[b+13|0]=c>>>8;H[b+14|0]=c>>>16;H[b+15|0]=c>>>24;c=K[1655]|K[1656]<<8|(K[1657]<<16|K[1658]<<24);d=K[1651]|K[1652]<<8|(K[1653]<<16|K[1654]<<24);H[b|0]=d;H[b+1|0]=d>>>8;H[b+2|0]=d>>>16;H[b+3|0]=d>>>24;H[b+4|0]=c;H[b+5|0]=c>>>8;H[b+6|0]=c>>>16;H[b+7|0]=c>>>24;J[a>>2]=-1;Ga(a+4|0,b,23);na(b);break a}d=ba-16|0;ba=d;e=J[b+44>>2];f=J[e+20>>2];if(!J[e+16>>2]&(f|0)<=0|(f|0)<0){sa(e,J[e+4>>2],1637,1642)}e=da[J[J[b>>2]+8>>2]](b)|0;H[d+15|0]=e;H[d+14|0]=2;H[d+13|0]=e&255?2:3;e=J[b+44>>2];f=J[e+20>>2];b:{if(!!J[e+16>>2]&(f|0)>=0|(f|0)>0){break b}sa(e,J[e+4>>2],d+14|0,d+15|0);e=J[b+44>>2];f=J[e+20>>2];if(!!J[e+16>>2]&(f|0)>=0|(f|0)>0){break b}sa(e,J[e+4>>2],d+13|0,d+14|0);e=J[b+44>>2];f=J[e+20>>2];if(!!J[e+16>>2]&(f|0)>=0|(f|0)>0){break b}sa(e,J[e+4>>2],d+15|0,d+16|0);e=J[b+44>>2]}j=d,k=da[J[J[b>>2]+12>>2]](b)|0,H[j+12|0]=k;f=J[e+20>>2];if(!J[e+16>>2]&(f|0)<=0|(f|0)<0){sa(e,J[e+4>>2],d+12|0,d+13|0)}I[d+10>>1]=(J[J[b+4>>2]+4>>2]!=0)<<15;e=J[b+44>>2];f=J[e+20>>2];if(!J[e+16>>2]&(f|0)<=0|(f|0)<0){sa(e,J[e+4>>2],d+10|0,d+12|0)}J[a>>2]=0;J[a+4>>2]=0;J[a+8>>2]=0;J[a+12>>2]=0;ba=d+16|0;if(J[a>>2]){break a}if(H[a+15|0]<0){na(J[a+4>>2])}d=J[J[b+4>>2]+4>>2];c:{if(!d){J[a>>2]=0;J[a+4>>2]=0;J[a+8>>2]=0;J[a+12>>2]=0;break c}e=J[b+44>>2];if(d){Aa(J[d+28>>2]-J[d+24>>2]>>2,e);f=J[d+24>>2];i=J[d+28>>2];if((f|0)!=(i|0)){while(1){h=J[f>>2];if(h){Aa(J[h+24>>2],e);td(g,e,h)}f=f+4|0;if((i|0)!=(f|0)){continue}break}}td(g,e,d)}if(d){J[a>>2]=0;J[a+4>>2]=0;J[a+8>>2]=0;J[a+12>>2]=0;break c}d=oa(32);H[d+26|0]=0;e=K[1882]|K[1883]<<8;H[d+24|0]=e;H[d+25|0]=e>>>8;e=K[1878]|K[1879]<<8|(K[1880]<<16|K[1881]<<24);f=K[1874]|K[1875]<<8|(K[1876]<<16|K[1877]<<24);H[d+16|0]=f;H[d+17|0]=f>>>8;H[d+18|0]=f>>>16;H[d+19|0]=f>>>24;H[d+20|0]=e;H[d+21|0]=e>>>8;H[d+22|0]=e>>>16;H[d+23|0]=e>>>24;e=K[1870]|K[1871]<<8|(K[1872]<<16|K[1873]<<24);f=K[1866]|K[1867]<<8|(K[1868]<<16|K[1869]<<24);H[d+8|0]=f;H[d+9|0]=f>>>8;H[d+10|0]=f>>>16;H[d+11|0]=f>>>24;H[d+12|0]=e;H[d+13|0]=e>>>8;H[d+14|0]=e>>>16;H[d+15|0]=e>>>24;e=K[1862]|K[1863]<<8|(K[1864]<<16|K[1865]<<24);f=K[1858]|K[1859]<<8|(K[1860]<<16|K[1861]<<24);H[d|0]=f;H[d+1|0]=f>>>8;H[d+2|0]=f>>>16;H[d+3|0]=f>>>24;H[d+4|0]=e;H[d+5|0]=e>>>8;H[d+6|0]=e>>>16;H[d+7|0]=e>>>24;J[a>>2]=-1;Ga(a+4|0,d,26);na(d);if(J[a>>2]){break a}if(H[a+15|0]>=0){break c}na(J[a+4>>2])}if(!(da[J[J[b>>2]+16>>2]](b)|0)){b=oa(32);H[b+29|0]=0;c=K[1798]|K[1799]<<8|(K[1800]<<16|K[1801]<<24);d=K[1794]|K[1795]<<8|(K[1796]<<16|K[1797]<<24);H[b+21|0]=d;H[b+22|0]=d>>>8;H[b+23|0]=d>>>16;H[b+24|0]=d>>>24;H[b+25|0]=c;H[b+26|0]=c>>>8;H[b+27|0]=c>>>16;H[b+28|0]=c>>>24;c=K[1793]|K[1794]<<8|(K[1795]<<16|K[1796]<<24);d=K[1789]|K[1790]<<8|(K[1791]<<16|K[1792]<<24);H[b+16|0]=d;H[b+17|0]=d>>>8;H[b+18|0]=d>>>16;H[b+19|0]=d>>>24;H[b+20|0]=c;H[b+21|0]=c>>>8;H[b+22|0]=c>>>16;H[b+23|0]=c>>>24;c=K[1785]|K[1786]<<8|(K[1787]<<16|K[1788]<<24);d=K[1781]|K[1782]<<8|(K[1783]<<16|K[1784]<<24);H[b+8|0]=d;H[b+9|0]=d>>>8;H[b+10|0]=d>>>16;H[b+11|0]=d>>>24;H[b+12|0]=c;H[b+13|0]=c>>>8;H[b+14|0]=c>>>16;H[b+15|0]=c>>>24;c=K[1777]|K[1778]<<8|(K[1779]<<16|K[1780]<<24);d=K[1773]|K[1774]<<8|(K[1775]<<16|K[1776]<<24);H[b|0]=d;H[b+1|0]=d>>>8;H[b+2|0]=d>>>16;H[b+3|0]=d>>>24;H[b+4|0]=c;H[b+5|0]=c>>>8;H[b+6|0]=c>>>16;H[b+7|0]=c>>>24;J[a>>2]=-1;Ga(a+4|0,b,29);na(b);break a}if(!(da[J[J[b>>2]+20>>2]](b)|0)){b=oa(32);H[b+31|0]=0;c=K[1941]|K[1942]<<8|(K[1943]<<16|K[1944]<<24);d=K[1937]|K[1938]<<8|(K[1939]<<16|K[1940]<<24);H[b+23|0]=d;H[b+24|0]=d>>>8;H[b+25|0]=d>>>16;H[b+26|0]=d>>>24;H[b+27|0]=c;H[b+28|0]=c>>>8;H[b+29|0]=c>>>16;H[b+30|0]=c>>>24;c=K[1934]|K[1935]<<8|(K[1936]<<16|K[1937]<<24);d=K[1930]|K[1931]<<8|(K[1932]<<16|K[1933]<<24);H[b+16|0]=d;H[b+17|0]=d>>>8;H[b+18|0]=d>>>16;H[b+19|0]=d>>>24;H[b+20|0]=c;H[b+21|0]=c>>>8;H[b+22|0]=c>>>16;H[b+23|0]=c>>>24;c=K[1926]|K[1927]<<8|(K[1928]<<16|K[1929]<<24);d=K[1922]|K[1923]<<8|(K[1924]<<16|K[1925]<<24);H[b+8|0]=d;H[b+9|0]=d>>>8;H[b+10|0]=d>>>16;H[b+11|0]=d>>>24;H[b+12|0]=c;H[b+13|0]=c>>>8;H[b+14|0]=c>>>16;H[b+15|0]=c>>>24;c=K[1918]|K[1919]<<8|(K[1920]<<16|K[1921]<<24);d=K[1914]|K[1915]<<8|(K[1916]<<16|K[1917]<<24);H[b|0]=d;H[b+1|0]=d>>>8;H[b+2|0]=d>>>16;H[b+3|0]=d>>>24;H[b+4|0]=c;H[b+5|0]=c>>>8;H[b+6|0]=c>>>16;H[b+7|0]=c>>>24;J[a>>2]=-1;Ga(a+4|0,b,31);na(b);break a}da[J[J[b>>2]+24>>2]](a,b);if(J[a>>2]){break a}if(H[a+15|0]<0){na(J[a+4>>2])}if(!(da[J[J[b>>2]+28>>2]](b)|0)){b=Pc(g,1708);J[a>>2]=-1;a=a+4|0;if(H[b+11|0]>=0){c=J[b+4>>2];J[a>>2]=J[b>>2];J[a+4>>2]=c;J[a+8>>2]=J[b+8>>2];break a}Ga(a,J[b>>2],J[b+4>>2]);if(H[b+11|0]>=0){break a}na(J[b>>2]);break a}d=c;c=Pc(g,1214);d=Pb(d,c,0);if(H[c+11|0]<0){na(J[c>>2])}if(d){da[J[J[b>>2]+48>>2]](b)}J[a>>2]=0;J[a+4>>2]=0;J[a+8>>2]=0;J[a+12>>2]=0}ba=g+16|0}function ve(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,K=0,L=0,N=0,O=0,Q=0;o=ba-32|0;ba=o;J[a>>2]=J[d>>2];d=J[c>>2]-J[b>>2]|0;J[a+4>>2]=d;p=J[e+20>>2];if(!J[e+16>>2]&(p|0)<=0|(p|0)<0){d=a+4|0;sa(e,J[e+4>>2],a,d);p=J[e+20>>2];if(!J[e+16>>2]&(p|0)<=0|(p|0)<0){sa(e,J[e+4>>2],d,a+8|0)}d=J[d>>2]}if(d){C=a+12|0;d=C;J[d+12>>2]=0;J[d+16>>2]=0;J[d+4>>2]=J[d>>2];D=a+32|0;d=D;J[d+12>>2]=0;J[d+16>>2]=0;J[d+4>>2]=J[d>>2];E=a+52|0;d=E;J[d+12>>2]=0;J[d+16>>2]=0;J[d+4>>2]=J[d>>2];F=a+72|0;d=F;J[d+12>>2]=0;J[d+16>>2]=0;J[d+4>>2]=J[d>>2];J[o+24>>2]=J[b+8>>2];d=J[b+4>>2];J[o+16>>2]=J[b>>2];J[o+20>>2]=d;J[o+8>>2]=J[c+8>>2];b=J[c+4>>2];J[o>>2]=J[c>>2];J[o+4>>2]=b;c=0;b=0;f=ba-32|0;ba=f;l=a;g=J[a+8>>2];J[f+16>>2]=0;J[f+8>>2]=0;J[f+12>>2]=0;a:{b:{if(g){if(g>>>0>=1073741824){break b}a=g<<2;c=oa(a);J[f+8>>2]=c;b=a+c|0;J[f+16>>2]=b;pa(c,0,a);J[f+12>>2]=b}a=J[l+128>>2];d=J[a>>2];if(d){J[a+4>>2]=d;na(d);g=J[l+8>>2];c=J[f+8>>2];b=J[f+12>>2]}J[a+4>>2]=b;J[a>>2]=c;J[a+8>>2]=J[f+16>>2];c=0;J[f+16>>2]=0;J[f+8>>2]=0;J[f+12>>2]=0;b=0;c:{if(g){if(g>>>0>=1073741824){break c}a=g<<2;b=oa(a);J[f+8>>2]=b;c=a+b|0;J[f+16>>2]=c;pa(b,0,a);J[f+12>>2]=c}a=J[l+140>>2];d=J[a>>2];if(d){J[a+4>>2]=d;na(d);c=J[f+12>>2];b=J[f+8>>2]}J[a+4>>2]=c;J[a>>2]=b;J[a+8>>2]=J[f+16>>2];p=J[o+20>>2];t=J[o+24>>2];d=J[o+4>>2];w=J[o+8>>2];b=J[o>>2];c=J[o+16>>2];J[f+24>>2]=0;J[f+28>>2]=0;J[f+16>>2]=0;J[f+20>>2]=0;J[f+8>>2]=0;J[f+12>>2]=0;fb(f+8|0);a=J[f+24>>2]+J[f+28>>2]|0;q=(a>>>0)/113|0;a=J[J[f+12>>2]+(q<<2)>>2]+P(a-P(q,113)|0,36)|0;J[a+32>>2]=0;J[a+28>>2]=b-c;J[a+24>>2]=0;J[a+16>>2]=d;J[a+20>>2]=w;J[a+12>>2]=b;J[a+4>>2]=p;J[a+8>>2]=t;J[a>>2]=c;g=J[f+28>>2]+1|0;J[f+28>>2]=g;if(g){a=t;K=a&-4;G=a&3;L=l+32|0;N=l+12|0;O=l+72|0;Q=a>>>0<4;while(1){b=J[f+12>>2];i=J[f+24>>2];h=g-1|0;a=i+h|0;c=(a>>>0)/113|0;a=J[b+(c<<2)>>2]+P(a-P(c,113)|0,36)|0;z=J[a+32>>2];c=J[a+24>>2];q=J[a+12>>2];a=J[a>>2];J[f+28>>2]=h;h=J[f+16>>2];if((((b|0)!=(h|0)?P(h-b>>2,113)-1|0:0)-(g+i|0)|0)+1>>>0>=226){na(J[h-4>>2]);J[f+16>>2]=J[f+16>>2]-4}i=J[l>>2];g=(c|0)!=(J[l+8>>2]-1|0)?c+1|0:0;h=g<<2;x=P(z,12);k=x+J[l+140>>2]|0;c=J[h+J[k>>2]>>2];d:{e:{if((i|0)==(c|0)){break e}f:{g:{y=q-a|0;if(y>>>0<=2){h=J[l+116>>2];J[h>>2]=g;c=1;b=J[l+8>>2];if(b>>>0>1){break g}break f}k=J[l+128>>2];b=k+x|0;j=k;k=x+12|0;bb(j+k|0,J[b>>2],J[b+4>>2]);b=h+J[k+J[l+128>>2]>>2]|0;k=J[b>>2]+(1<>2]=k;b=a;h:{if((a|0)==(q|0)){break h}H=J[p+24>>2];I=h+H|0;b=q;c=a;if(!t){if(k>>>0>M[I>>2]){break h}while(1){b=b-1|0;if((c|0)==(b|0)){b=c;break h}if(k>>>0<=M[(h+J[d+24>>2]|0)+(P(b,w)<<2)>>2]){continue}c=c+1|0;if((c|0)!=(b|0)){continue}break}break h}while(1){i=P(c,t)<<2;if(k>>>0>M[i+I>>2]){c=c+1|0;if((c|0)!=(b|0)){continue}break h}while(1){b=b-1|0;if((c|0)==(b|0)){b=c;break h}n=J[d+24>>2]+(P(b,w)<<2)|0;if(k>>>0<=M[n+h>>2]){continue}break}r=i+H|0;A=0;i=0;u=0;if(!Q){while(1){m=i<<2;j=m+r|0;s=J[j>>2];v=j;j=n+m|0;J[v>>2]=J[j>>2];J[j>>2]=s;j=m|4;s=j+r|0;v=J[s>>2];j=j+n|0;J[s>>2]=J[j>>2];J[j>>2]=v;j=m|8;s=j+r|0;v=J[s>>2];j=j+n|0;J[s>>2]=J[j>>2];J[j>>2]=v;m=m|12;j=m+r|0;s=J[j>>2];m=n+m|0;J[j>>2]=J[m>>2];J[m>>2]=s;i=i+4|0;u=u+4|0;if((K|0)!=(u|0)){continue}break}}if(G){while(1){m=i<<2;u=m+r|0;j=J[u>>2];m=n+m|0;J[u>>2]=J[m>>2];J[m>>2]=j;i=i+1|0;A=A+1|0;if((A|0)!=(G|0)){continue}break}}c=c+1|0;if((c|0)!=(b|0)){continue}break}}k=b-a|0;n=q-b|0;if((k|0)!=(n|0)){xc(O,k>>>0>>0)}Ib(N,S(y)^31,(y>>>1|0)-(k>>>0>>0?k:n)|0);j=h;c=J[l+140>>2];h=c+x|0;i=J[h>>2];r=j+i|0;J[r>>2]=J[r>>2]+1;r=z+1|0;bb(c+P(r,12)|0,i,J[h+4>>2]);if((a|0)!=(b|0)){i=J[f+28>>2]+J[f+24>>2]|0;c=J[f+16>>2];h=J[f+12>>2];if((i|0)==(((c|0)!=(h|0)?P(c-h>>2,113)-1|0:0)|0)){fb(f+8|0);i=J[f+24>>2]+J[f+28>>2]|0;h=J[f+12>>2]}c=(i>>>0)/113|0;c=J[h+(c<<2)>>2]+P(i-P(c,113)|0,36)|0;J[c+32>>2]=z;J[c+28>>2]=k;J[c+24>>2]=g;J[c+16>>2]=p;J[c+12>>2]=b;J[c+4>>2]=p;J[c+8>>2]=t;J[c>>2]=a;J[c+20>>2]=t;J[f+28>>2]=J[f+28>>2]+1}if((b|0)==(q|0)){break e}h=J[f+28>>2]+J[f+24>>2]|0;a=J[f+16>>2];c=J[f+12>>2];if((h|0)==(((a|0)!=(c|0)?P(a-c>>2,113)-1|0:0)|0)){fb(f+8|0);h=J[f+24>>2]+J[f+28>>2]|0;c=J[f+12>>2]}a=(h>>>0)/113|0;a=J[c+(a<<2)>>2]+P(h-P(a,113)|0,36)|0;J[a+32>>2]=r;J[a+28>>2]=n;J[a+24>>2]=g;J[a+16>>2]=d;J[a+20>>2]=w;J[a+12>>2]=q;J[a+4>>2]=p;J[a>>2]=b;J[a+8>>2]=t;g=J[f+28>>2]+1|0;J[f+28>>2]=g;break d}while(1){g=(b-1|0)!=(g|0)?g+1|0:0;J[h+(c<<2)>>2]=g;b=J[l+8>>2];c=c+1|0;if(b>>>0>c>>>0){continue}break}}if(!b|(a|0)==(q|0)){break e}h=0;c=1;while(1){g=0;i:{if(!c){c=0;break i}q=J[p+24>>2]+(P(J[p+4>>2],a+h|0)<<2)|0;while(1){c=J[l>>2];i=J[J[l+116>>2]+(g<<2)>>2]<<2;n=J[i+J[k>>2]>>2];if((c|0)!=(n|0)){Ib(L,c-n|0,J[i+q>>2]);b=J[l+8>>2]}c=b;g=g+1|0;if(c>>>0>g>>>0){continue}break}}h=h+1|0;if((y|0)!=(h|0)){continue}break}}g=J[f+28>>2]}if(g){continue}break}}J[f+28>>2]=0;a=J[f+16>>2];g=J[f+12>>2];b=a-g|0;if(b>>>0>=9){while(1){na(J[g>>2]);g=J[f+12>>2]+4|0;J[f+12>>2]=g;a=J[f+16>>2];b=a-g|0;if(b>>>0>8){continue}break}}c=56;j:{switch((b>>>2|0)-1|0){case 1:c=113;case 0:J[f+24>>2]=c;break;default:break j}}k:{if((a|0)==(g|0)){break k}while(1){na(J[g>>2]);g=g+4|0;if((g|0)!=(a|0)){continue}break}a=J[f+16>>2];b=J[f+12>>2];if((a|0)==(b|0)){break k}J[f+16>>2]=a+((b-a|0)+3&-4)}a=J[f+8>>2];if(a){na(a)}ba=f+32|0;break a}qa();B()}qa();B()}eb(C,e);eb(D,e);eb(E,e);eb(F,e)}ba=o+32|0;return 1}function gg(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;l=ba-32|0;ba=l;d=J[a+16>>2];J[a+20>>2]=d;a:{b:{c:{d:{e:{f:{g:{h:{if((d|0)!=J[a+24>>2]){J[d>>2]=b;b=d+4|0;J[a+20>>2]=b;e=d;break h}e=oa(4);J[e>>2]=b;b=e+4|0;J[a+24>>2]=b;J[a+20>>2]=b;J[a+16>>2]=e;if(d){break g}}d=J[a+8>>2];d=J[d+100>>2]-J[d+96>>2]|0;break f}na(d);b=J[a+20>>2];e=J[a+16>>2];if((b|0)==(e|0)){break e}d=J[a+8>>2];d=J[d+100>>2]-J[d+96>>2]|0}if((d|0)>0){q=a+120|0;d=(d|0)/12|0;r=(d|0)<=1?1:d;while(1){i:{j:{e=b-4|0;b=J[e>>2];if((b|0)==-1){break j}d=(b>>>0)/3|0;if(J[J[a+28>>2]+(d>>>3&268435452)>>2]>>>d&1){break j}m=0;while(1){J[a+164>>2]=J[a+164>>2]+1;e=b;g=(b>>>0)/3|0;f=(b|0)==-1;n=f?-1:g;b=J[a+28>>2]+(n>>>3&536870908)|0;J[b>>2]=J[b>>2]|1<>2];k:{if((b|0)!=J[a+80>>2]){J[b>>2]=e;J[a+76>>2]=b+4;break k}i=J[a+72>>2];j=b-i|0;c=j>>2;k=c+1|0;if(k>>>0>1073741823){break d}d=j>>>1|0;k=j>>>0>=2147483644?1073741823:d>>>0>k>>>0?d:k;if(k){if(k>>>0>1073741823){break a}d=oa(k<<2)}else{d=0}h=d+(c<<2)|0;J[h>>2]=e;c=h+4|0;if((b|0)!=(i|0)){while(1){h=h-4|0;b=b-4|0;J[h>>2]=J[b>>2];if((b|0)!=(i|0)){continue}break}}J[a+80>>2]=d+(k<<2);J[a+76>>2]=c;J[a+72>>2]=h;if(!i){break k}na(i)}b=-1;h=J[a+12>>2];b=(e|0)!=-1?J[J[h>>2]+(e<<2)>>2]:b;k=b<<2;p=J[k+J[a+152>>2]>>2];l:{m:{c=J[a+84>>2]+(b>>>3&536870908)|0;d=J[c>>2];b=1<>2]=b|d;if((p|0)==-1){break m}}n:{if(f){break n}b=-1;d=e+1|0;f=(d>>>0)%3|0?d:e-2|0;if((f|0)!=-1){b=J[J[h+12>>2]+(f<<2)>>2]}i=e-P(g,3)|0;o:{p:{if(i){c=e-1|0;break p}c=e+2|0;d=-1;if((c|0)==-1){break o}}d=J[J[h+12>>2]+(c<<2)>>2]}o=(d|0)==-1;j=o?-1:(d>>>0)/3|0;q:{if((f|0)==-1){break q}g=J[h+12>>2];c=J[g+(f<<2)>>2];if((c|0)==-1){break q}f=J[a+28>>2];c=(c>>>0)/3|0;if(J[f+(c>>>3&268435452)>>2]>>>c&1){break q}r:{s:{if(i){h=e-1|0;break s}h=e+2|0;if((h|0)==-1){break r}}c=J[(h<<2)+g>>2];if((c|0)==-1){break r}c=(c>>>0)/3|0;if(J[f+(c>>>3&268435452)>>2]>>>c&1){break r}c=J[a+272>>2];t:{if((c|0)!=J[a+276>>2]){J[c>>2]=1;J[a+272>>2]=c+4;break t}i=J[a+268>>2];j=c-i|0;f=j>>2;g=f+1|0;if(g>>>0>1073741823){break c}c=j>>>1|0;g=j>>>0>=2147483644?1073741823:c>>>0>g>>>0?c:g;if(g){if(g>>>0>1073741823){break a}c=oa(g<<2)}else{c=0}f=c+(f<<2)|0;J[f>>2]=1;c=ta(c,i,j);J[a+276>>2]=c+(g<<2);J[a+272>>2]=f+4;J[a+268>>2]=c;if(!i){break t}na(i)}J[a+168>>2]=J[a+168>>2]+1;u:{if((p|0)==-1){break u}c=J[J[a+152>>2]+k>>2];if(J[J[a+140>>2]+(c>>>3&536870908)>>2]>>>c&1){break u}Hc(a,e,0)}c=J[a+164>>2];J[l+4>>2]=n;e=l+4|0;J[l+16>>2]=e;bg(l+24|0,q,e,l+16|0);J[J[l+24>>2]+12>>2]=c;h=J[a+20>>2];J[h-4>>2]=d;if(J[a+24>>2]!=(h|0)){J[h>>2]=b;J[a+20>>2]=h+4;break i}g=J[a+16>>2];f=h-g|0;e=f>>2;c=e+1|0;if(c>>>0>1073741823){break b}d=f>>>1|0;c=f>>>0>=2147483644?1073741823:c>>>0>>0?d:c;if(c){if(c>>>0>1073741823){break a}d=oa(c<<2)}else{d=0}e=d+(e<<2)|0;J[e>>2]=b;b=e+4|0;if((g|0)!=(h|0)){while(1){e=e-4|0;h=h-4|0;J[e>>2]=J[h>>2];if((g|0)!=(h|0)){continue}break}}J[a+24>>2]=d+(c<<2);J[a+20>>2]=b;J[a+16>>2]=e;if(!g){break i}na(g);break i}if(!o){Qb(a,J[a+164>>2],0,j)}d=J[a+272>>2];if((d|0)!=J[a+276>>2]){J[d>>2]=3;J[a+272>>2]=d+4;break l}g=J[a+268>>2];f=d-g|0;e=f>>2;c=e+1|0;if(c>>>0>1073741823){break c}d=f>>>1|0;c=f>>>0>=2147483644?1073741823:c>>>0>>0?d:c;if(c){if(c>>>0>1073741823){break a}d=oa(c<<2)}else{d=0}e=d+(e<<2)|0;J[e>>2]=3;d=ta(d,g,f);J[a+276>>2]=d+(c<<2);J[a+272>>2]=e+4;J[a+268>>2]=d;if(!g){break l}na(g);break l}c=(b|0)==-1;if(!c){Qb(a,J[a+164>>2],1,c?-1:(b>>>0)/3|0)}v:{w:{if(i){b=e-1|0;break w}b=e+2|0;if((b|0)==-1){break v}}b=J[J[J[a+12>>2]+12>>2]+(b<<2)>>2];if((b|0)==-1){break v}b=(b>>>0)/3|0;if(J[J[a+28>>2]+(b>>>3&268435452)>>2]>>>b&1){break v}b=J[a+272>>2];if((b|0)!=J[a+276>>2]){J[b>>2]=5;J[a+272>>2]=b+4;b=d;break l}g=J[a+268>>2];f=b-g|0;e=f>>2;c=e+1|0;if(c>>>0>1073741823){break c}b=f>>>1|0;c=f>>>0>=2147483644?1073741823:b>>>0>c>>>0?b:c;if(c){if(c>>>0>1073741823){break a}b=oa(c<<2)}else{b=0}e=b+(e<<2)|0;J[e>>2]=5;b=ta(b,g,f);J[a+276>>2]=b+(c<<2);J[a+272>>2]=e+4;J[a+268>>2]=b;if(!g){b=d;break l}na(g);b=d;break l}if(o){break n}Qb(a,J[a+164>>2],0,j)}b=J[a+272>>2];x:{if((b|0)!=J[a+276>>2]){J[b>>2]=7;J[a+272>>2]=b+4;break x}f=J[a+268>>2];c=b-f|0;d=c>>2;e=d+1|0;if(e>>>0>1073741823){break c}b=c>>>1|0;e=c>>>0>=2147483644?1073741823:b>>>0>e>>>0?b:e;if(e){if(e>>>0>1073741823){break a}b=oa(e<<2)}else{b=0}d=b+(d<<2)|0;J[d>>2]=7;b=ta(b,f,c);J[a+276>>2]=b+(e<<2);J[a+272>>2]=d+4;J[a+268>>2]=b;if(!f){break x}na(f)}J[a+20>>2]=J[a+20>>2]-4;break i}b=J[a+272>>2];y:{if((b|0)!=J[a+276>>2]){J[b>>2]=0;J[a+272>>2]=b+4;break y}g=J[a+268>>2];f=b-g|0;d=f>>2;c=d+1|0;if(c>>>0>1073741823){break c}b=f>>>1|0;c=f>>>0>=2147483644?1073741823:b>>>0>c>>>0?b:c;if(c){if(c>>>0>1073741823){break a}b=oa(c<<2)}else{b=0}d=b+(d<<2)|0;J[d>>2]=0;b=ta(b,g,f);J[a+276>>2]=b+(c<<2);J[a+272>>2]=d+4;J[a+268>>2]=b;if(!g){break y}na(g)}b=-1;if((e|0)==-1){break l}d=e+1|0;d=(d>>>0)%3|0?d:e-2|0;if((d|0)==-1){break l}b=J[J[J[a+12>>2]+12>>2]+(d<<2)>>2]}m=m+1|0;if((r|0)!=(m|0)){continue}break}break i}J[a+20>>2]=e}b=J[a+20>>2];if((b|0)!=J[a+16>>2]){continue}break}break e}f=J[a+28>>2];while(1){d=b-4|0;c=J[d>>2];z:{if((c|0)!=-1){c=(c>>>0)/3|0;if(!(J[f+(c>>>3&268435452)>>2]>>>c&1)){break z}}J[a+20>>2]=d;b=d}if((b|0)!=(e|0)){continue}break}}ba=l+32|0;return 1}qa();B()}qa();B()}qa();B()}xa();B()}function $c(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=Q(0),n=Q(0),o=0;a:{b:{if(!d){break b}c:{switch(J[a+28>>2]-1|0){case 0:e=K[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=J[a>>2];h=J[e>>2];k=J[a+48>>2];b=Hl(J[a+40>>2],J[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=J[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}J[(g<<2)+d>>2]=H[b|0];b=b+1|0;g=g+1|0;e=K[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 1:e=K[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=J[a>>2];h=J[e>>2];k=J[a+48>>2];b=Hl(J[a+40>>2],J[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=J[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}J[(g<<2)+d>>2]=K[b|0];b=b+1|0;g=g+1|0;e=K[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 2:e=K[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=J[a>>2];h=J[e>>2];k=J[a+48>>2];b=Hl(J[a+40>>2],J[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=J[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}J[(g<<2)+d>>2]=I[b>>1];b=b+2|0;g=g+1|0;e=K[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 3:e=K[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=J[a>>2];h=J[e>>2];k=J[a+48>>2];b=Hl(J[a+40>>2],J[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=J[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}J[(g<<2)+d>>2]=L[b>>1];b=b+2|0;g=g+1|0;e=K[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 4:e=K[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=J[a>>2];h=J[e>>2];k=J[a+48>>2];b=Hl(J[a+40>>2],J[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=J[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}J[(g<<2)+d>>2]=J[b>>2];b=b+4|0;g=g+1|0;e=K[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 5:e=K[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=J[a>>2];h=J[e>>2];k=J[a+48>>2];b=Hl(J[a+40>>2],J[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=J[e+4>>2];while(1){if(b>>>0>=h>>>0){return 0}e=J[b>>2];if((e|0)<0){break b}J[(g<<2)+d>>2]=e;b=b+4|0;g=g+1|0;e=K[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 6:e=K[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=J[a>>2];h=J[e>>2];k=J[a+48>>2];b=Hl(J[a+40>>2],J[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;k=J[e+4>>2];while(1){if(b>>>0>=k>>>0){break b}h=J[b+4>>2];e=J[b>>2];if(e- -2147483648>>>0<2147483648?h+1|0:h){break b}J[(g<<2)+d>>2]=e;b=b+8|0;g=g+1|0;e=K[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 7:e=K[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=J[a>>2];h=J[e>>2];k=J[a+48>>2];b=Hl(J[a+40>>2],J[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=J[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}k=J[b+4>>2];e=J[b>>2];if(!k&e>>>0>2147483647|k){break b}J[(g<<2)+d>>2]=e;b=b+8|0;g=g+1|0;e=K[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 8:d:{e:{e=K[a+24|0];c=c&255;if(!(c>>>0>e>>>0?e:c)){break e}e=J[a>>2];j=J[e>>2];g=j;f=J[a+48>>2];b=Hl(J[a+40>>2],J[a+44>>2],b,0);i=b;b=b+f|0;g=b+g|0;f=J[e+4>>2];e=f-j|0;if(!K[a+32|0]){j=0;if((b|0)>=(e|0)){break d}b=0;while(1){m=N[g>>2];if(m>=Q(2147483648)|m>2]=i;b=b+1|0;e=K[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break e}g=g+4|0;if(f>>>0>g>>>0){continue}break}break d}j=0;if((b|0)>=(e|0)){break d}b=0;while(1){m=N[g>>2];if(m>=Q(2147483648)|mQ(1)){break d}e=(b<<2)+d|0;l=V(+m*2147483647+.5);f:{if(R(l)<2147483648){i=~~l;break f}i=-2147483648}J[e>>2]=i;b=b+1|0;e=K[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break e}g=g+4|0;if(f>>>0>g>>>0){continue}break}break d}j=1;if(c>>>0<=e>>>0){break d}pa((e<<2)+d|0,0,c-e<<2)}return j;case 9:g:{h:{e=K[a+24|0];c=c&255;if(!(c>>>0>e>>>0?e:c)){break h}e=J[a>>2];j=J[e>>2];g=j;f=J[a+48>>2];b=Hl(J[a+40>>2],J[a+44>>2],b,0);i=b;b=b+f|0;g=b+g|0;f=J[e+4>>2];e=f-j|0;if(!K[a+32|0]){j=0;if((b|0)>=(e|0)){break g}b=0;while(1){l=O[g>>3];if(l>=2147483647|l<-2147483648|l!=l){break g}o=R(l);if(o==Infinity){break g}e=(b<<2)+d|0;if(o<2147483648){i=~~l}else{i=-2147483648}J[e>>2]=i;b=b+1|0;e=K[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break h}g=g+8|0;if(f>>>0>g>>>0){continue}break}break g}j=0;if((b|0)>=(e|0)){break g}b=0;while(1){l=O[g>>3];if(l>=2147483647|l<-2147483648|(R(l)==Infinity|l!=l)){break g}if(l<0|l>1){break g}e=(b<<2)+d|0;l=V(l*2147483647+.5);i:{if(R(l)<2147483648){i=~~l;break i}i=-2147483648}J[e>>2]=i;b=b+1|0;e=K[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break h}g=g+8|0;if(f>>>0>g>>>0){continue}break}break g}j=1;if(c>>>0<=e>>>0){break g}pa((e<<2)+d|0,0,c-e<<2)}return j;case 10:break c;default:break b}}e=K[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=J[a>>2];h=J[e>>2];k=J[a+48>>2];b=Hl(J[a+40>>2],J[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=J[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}J[(g<<2)+d>>2]=K[b|0];b=b+1|0;g=g+1|0;e=K[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}pa((e<<2)+d|0,0,(c&255)-e<<2)}return j}pa((e<<2)+d|0,0,(c&255)-e<<2);return 1}function fe(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;g=J[b+48>>2];if(!g){b=oa(32);H[b+23|0]=0;c=K[1670]|K[1671]<<8|(K[1672]<<16|K[1673]<<24);e=K[1666]|K[1667]<<8|(K[1668]<<16|K[1669]<<24);H[b+15|0]=e;H[b+16|0]=e>>>8;H[b+17|0]=e>>>16;H[b+18|0]=e>>>24;H[b+19|0]=c;H[b+20|0]=c>>>8;H[b+21|0]=c>>>16;H[b+22|0]=c>>>24;c=K[1663]|K[1664]<<8|(K[1665]<<16|K[1666]<<24);e=K[1659]|K[1660]<<8|(K[1661]<<16|K[1662]<<24);H[b+8|0]=e;H[b+9|0]=e>>>8;H[b+10|0]=e>>>16;H[b+11|0]=e>>>24;H[b+12|0]=c;H[b+13|0]=c>>>8;H[b+14|0]=c>>>16;H[b+15|0]=c>>>24;c=K[1655]|K[1656]<<8|(K[1657]<<16|K[1658]<<24);e=K[1651]|K[1652]<<8|(K[1653]<<16|K[1654]<<24);H[b|0]=e;H[b+1|0]=e>>>8;H[b+2|0]=e>>>16;H[b+3|0]=e>>>24;H[b+4|0]=c;H[b+5|0]=c>>>8;H[b+6|0]=c>>>16;H[b+7|0]=c>>>24;J[a>>2]=-1;Ga(a+4|0,b,23);na(b);return}h=J[b+52>>2];if(!h){e=ba-32|0;ba=e;d=oa(16);J[e+16>>2]=d;J[e+20>>2]=15;J[e+24>>2]=-2147483632;f=K[1587]|K[1588]<<8|(K[1589]<<16|K[1590]<<24);h=K[1583]|K[1584]<<8|(K[1585]<<16|K[1586]<<24);H[d+7|0]=h;H[d+8|0]=h>>>8;H[d+9|0]=h>>>16;H[d+10|0]=h>>>24;H[d+11|0]=f;H[d+12|0]=f>>>8;H[d+13|0]=f>>>16;H[d+14|0]=f>>>24;f=K[1580]|K[1581]<<8|(K[1582]<<16|K[1583]<<24);h=K[1576]|K[1577]<<8|(K[1578]<<16|K[1579]<<24);H[d|0]=h;H[d+1|0]=h>>>8;H[d+2|0]=h>>>16;H[d+3|0]=h>>>24;H[d+4|0]=f;H[d+5|0]=f>>>8;H[d+6|0]=f>>>16;H[d+7|0]=f>>>24;H[d+15|0]=0;h=b+4|0;j=Bb(h,e+16|0,-1);if(H[e+27|0]<0){na(J[e+16>>2])}a:{b:{c:{d:{e:{switch(j+1|0){case 1:d=oa(56);J[d>>2]=0;J[d+4>>2]=0;J[d+48>>2]=0;J[d+52>>2]=0;J[d+40>>2]=0;J[d+44>>2]=0;J[d+32>>2]=0;J[d+36>>2]=0;J[d+24>>2]=0;J[d+28>>2]=0;J[d+16>>2]=0;J[d+20>>2]=0;J[d+8>>2]=0;J[d+12>>2]=0;d=nc(d);J[d>>2]=12672;break c;case 0:break e;default:break d}}if((cb(h)|0)!=10){break d}d=oa(56);J[d>>2]=0;J[d+4>>2]=0;J[d+48>>2]=0;J[d+52>>2]=0;J[d+40>>2]=0;J[d+44>>2]=0;J[d+32>>2]=0;J[d+36>>2]=0;J[d+24>>2]=0;J[d+28>>2]=0;J[d+16>>2]=0;J[d+20>>2]=0;J[d+8>>2]=0;J[d+12>>2]=0;d=nc(d);J[d>>2]=12672;break c}J[e+12>>2]=0;f:{i=J[g+12>>2];f=J[g+8>>2];if((i-f|0)>0){d=0;while(1){k=J[J[(d<<2)+f>>2]+28>>2];if(k-1>>>0>=6){if((k|0)!=9){break f}d=oa(32);J[e+16>>2]=d;J[e+20>>2]=17;J[e+24>>2]=-2147483616;H[d+16|0]=K[1261];f=K[1257]|K[1258]<<8|(K[1259]<<16|K[1260]<<24);i=K[1253]|K[1254]<<8|(K[1255]<<16|K[1256]<<24);H[d+8|0]=i;H[d+9|0]=i>>>8;H[d+10|0]=i>>>16;H[d+11|0]=i>>>24;H[d+12|0]=f;H[d+13|0]=f>>>8;H[d+14|0]=f>>>16;H[d+15|0]=f>>>24;f=K[1249]|K[1250]<<8|(K[1251]<<16|K[1252]<<24);i=K[1245]|K[1246]<<8|(K[1247]<<16|K[1248]<<24);H[d|0]=i;H[d+1|0]=i>>>8;H[d+2|0]=i>>>16;H[d+3|0]=i>>>24;H[d+4|0]=f;H[d+5|0]=f>>>8;H[d+6|0]=f>>>16;H[d+7|0]=f>>>24;H[d+17|0]=0;d=jb(h,e+12|0,e+16|0,-1);if(H[e+27|0]<0){na(J[e+16>>2])}if((d|0)<=0){break f}f=J[g+8>>2];i=J[g+12>>2];d=J[e+12>>2]}d=d+1|0;J[e+12>>2]=d;if(i-f>>2>(d|0)){continue}break}}d=oa(56);J[d>>2]=0;J[d+4>>2]=0;J[d+48>>2]=0;J[d+52>>2]=0;J[d+40>>2]=0;J[d+44>>2]=0;J[d+32>>2]=0;J[d+36>>2]=0;J[d+24>>2]=0;J[d+28>>2]=0;J[d+16>>2]=0;J[d+20>>2]=0;J[d+8>>2]=0;J[d+12>>2]=0;d=nc(d);J[d>>2]=12564;break c}if((j|0)==1){break b}d=oa(56);J[d>>2]=0;J[d+4>>2]=0;J[d+48>>2]=0;J[d+52>>2]=0;J[d+40>>2]=0;J[d+44>>2]=0;J[d+32>>2]=0;J[d+36>>2]=0;J[d+24>>2]=0;J[d+28>>2]=0;J[d+16>>2]=0;J[d+20>>2]=0;J[d+8>>2]=0;J[d+12>>2]=0;d=nc(d);J[d>>2]=12672}J[d+4>>2]=g;Qf(a,d,h,c);if(!J[a>>2]){if(H[a+15|0]<0){na(J[a+4>>2])}c=J[d+52>>2];J[b+44>>2]=0;J[b+40>>2]=c;J[a+8>>2]=0;J[a+12>>2]=0;J[a>>2]=0;J[a+4>>2]=0}da[J[J[d>>2]+4>>2]](d);break a}b=oa(32);H[b+24|0]=0;c=K[1853]|K[1854]<<8|(K[1855]<<16|K[1856]<<24);d=K[1849]|K[1850]<<8|(K[1851]<<16|K[1852]<<24);H[b+16|0]=d;H[b+17|0]=d>>>8;H[b+18|0]=d>>>16;H[b+19|0]=d>>>24;H[b+20|0]=c;H[b+21|0]=c>>>8;H[b+22|0]=c>>>16;H[b+23|0]=c>>>24;c=K[1845]|K[1846]<<8|(K[1847]<<16|K[1848]<<24);d=K[1841]|K[1842]<<8|(K[1843]<<16|K[1844]<<24);H[b+8|0]=d;H[b+9|0]=d>>>8;H[b+10|0]=d>>>16;H[b+11|0]=d>>>24;H[b+12|0]=c;H[b+13|0]=c>>>8;H[b+14|0]=c>>>16;H[b+15|0]=c>>>24;c=K[1837]|K[1838]<<8|(K[1839]<<16|K[1840]<<24);d=K[1833]|K[1834]<<8|(K[1835]<<16|K[1836]<<24);H[b|0]=d;H[b+1|0]=d>>>8;H[b+2|0]=d>>>16;H[b+3|0]=d>>>24;H[b+4|0]=c;H[b+5|0]=c>>>8;H[b+6|0]=c>>>16;H[b+7|0]=c>>>24;J[a>>2]=-1;Ga(a+4|0,b,24);na(b)}ba=e+32|0;return}d=ba-16|0;ba=d;e=oa(16);J[d>>2]=e;J[d+4>>2]=15;J[d+8>>2]=-2147483632;g=K[1587]|K[1588]<<8|(K[1589]<<16|K[1590]<<24);f=K[1583]|K[1584]<<8|(K[1585]<<16|K[1586]<<24);H[e+7|0]=f;H[e+8|0]=f>>>8;H[e+9|0]=f>>>16;H[e+10|0]=f>>>24;H[e+11|0]=g;H[e+12|0]=g>>>8;H[e+13|0]=g>>>16;H[e+14|0]=g>>>24;g=K[1580]|K[1581]<<8|(K[1582]<<16|K[1583]<<24);f=K[1576]|K[1577]<<8|(K[1578]<<16|K[1579]<<24);H[e|0]=f;H[e+1|0]=f>>>8;H[e+2|0]=f>>>16;H[e+3|0]=f>>>24;H[e+4|0]=g;H[e+5|0]=g>>>8;H[e+6|0]=g>>>16;H[e+7|0]=g>>>24;H[e+15|0]=0;g=b+4|0;e=Bb(g,d,-1);if(H[d+11|0]<0){na(J[d>>2])}g:{h:{i:{switch(e+1|0){case 0:if((cb(g)|0)==10){break h}break;case 2:break i;default:break h}}e=Tf(oa(68));J[e+64>>2]=0;J[e>>2]=10404;break g}e=Tf(oa(64));J[e>>2]=12280}J[e+56>>2]=h;J[e+4>>2]=h;Qf(a,e,g,c);if(!J[a>>2]){if(H[a+15|0]<0){na(J[a+4>>2])}J[b+40>>2]=J[e+52>>2];J[b+44>>2]=J[e+60>>2];J[a+8>>2]=0;J[a+12>>2]=0;J[a>>2]=0;J[a+4>>2]=0}da[J[J[e>>2]+4>>2]](e);ba=d+16|0}function ci(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=Q(0),u=0,v=0,w=0,x=0,y=Q(0),z=0,A=0;c=ba+-64|0;ba=c;f=J[a+80>>2];J[c+40>>2]=0;J[c+44>>2]=0;J[c+56>>2]=a;J[c+48>>2]=a;J[c+32>>2]=0;J[c+36>>2]=0;J[c+52>>2]=1065353216;df(c+32|0,f);f=J[a+80>>2];J[c+24>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;a:{b:{c:{d:{if(!f){break d}if(f>>>0>=1073741824){break a}f=f<<2;s=oa(f);J[c+16>>2]=s;b=f+s|0;J[c+24>>2]=b;pa(s,0,f);J[c+20>>2]=b;J[c+8>>2]=0;J[c>>2]=0;J[c+4>>2]=0;z=c+40|0;f=0;while(1){e=0;b=J[c+48>>2];m=J[b+8>>2];n=J[b+12>>2]-m|0;v=(n|0)<=0;e:{if(v){break e}b=n>>>2|0;b=b>>>0<=1?1:b;i=b&1;h=0;if(n>>>0>=8){g=b&1073741822;b=0;while(1){j=h<<2;d=J[j+m>>2];if(K[d+84|0]){d=f}else{d=J[J[d+68>>2]+(f<<2)>>2]}h=h+2|0;l=d<<3^e<<2;e=J[m+(j|4)>>2];if(K[e+84|0]){d=f}else{d=J[J[e+68>>2]+(f<<2)>>2]}e=l^d<<2;b=b+2|0;if((g|0)!=(b|0)){continue}break}}if(!i){break e}b=J[m+(h<<2)>>2];if(K[b+84|0]){b=f}else{b=J[J[b+68>>2]+(f<<2)>>2]}e=b<<2^e<<1}f:{g:{j=J[c+36>>2];if(!j){break g}g=J[c+32>>2];i=Kl(j)>>>0>1;b=j-1&e;h:{if(!i){break h}b=e;if(b>>>0>>0){break h}b=(e>>>0)%(j>>>0)|0}d=b;b=J[g+(d<<2)>>2];if(!b){break g}k=J[b>>2];if(!k){break g}p=J[c+56>>2];i:{j:{if(!i){w=j-1|0;while(1){b=J[k+4>>2];k:{if((b|0)!=(e|0)){if((d|0)==(b&w)){break k}break g}x=J[p+8>>2];b=J[p+12>>2]-x|0;if((b|0)<4){break i}i=J[k+8>>2];o=b>>2;A=(o|0)<=1?1:o;l=0;h=0;while(1){b=f;g=J[x+(h<<2)>>2];if(K[g+84|0]){g=i}else{g=J[g+68>>2];b=J[g+(f<<2)>>2];g=J[g+(i<<2)>>2]}if((b|0)==(g|0)){h=h+1|0;l=(o|0)<=(h|0);if((h|0)!=(A|0)){continue}}break}if(l){break j}}k=J[k>>2];if(k){continue}break}break g}while(1){b=J[k+4>>2];l:{if((b|0)!=(e|0)){if(b>>>0>=j>>>0){b=(b>>>0)%(j>>>0)|0}if((b|0)==(d|0)){break l}break g}w=J[p+8>>2];b=J[p+12>>2]-w|0;if((b|0)<4){break i}i=J[k+8>>2];o=b>>2;x=(o|0)<=1?1:o;l=0;h=0;while(1){b=f;g=J[w+(h<<2)>>2];if(K[g+84|0]){g=i}else{g=J[g+68>>2];b=J[g+(f<<2)>>2];g=J[g+(i<<2)>>2]}if((b|0)==(g|0)){h=h+1|0;l=(o|0)<=(h|0);if((h|0)!=(x|0)){continue}}break}if(l){break j}}k=J[k>>2];if(k){continue}break}break g}if(!k){break g}}J[(f<<2)+s>>2]=J[k+12>>2];break f}m:{if(v){e=0;break m}b=n>>>2|0;b=b>>>0<=1?1:b;i=b&1;e=0;h=0;if(n>>>0>=8){g=b&1073741822;b=0;while(1){l=h<<2;d=J[l+m>>2];if(K[d+84|0]){d=f}else{d=J[J[d+68>>2]+(f<<2)>>2]}h=h+2|0;n=d<<3^e<<2;e=J[m+(l|4)>>2];if(K[e+84|0]){d=f}else{d=J[J[e+68>>2]+(f<<2)>>2]}e=n^d<<2;b=b+2|0;if((g|0)!=(b|0)){continue}break}}if(!i){break m}b=J[m+(h<<2)>>2];if(K[b+84|0]){b=f}else{b=J[J[b+68>>2]+(f<<2)>>2]}e=b<<2^e<<1}n:{o:{if(!j){break o}m=j-1|0;if(m&j){k=e>>>0>=j>>>0?(e>>>0)%(j>>>0)|0:e;g=J[J[c+32>>2]+(k<<2)>>2];if(!g){break o}m=J[c+56>>2];while(1){g=J[g>>2];if(!g){break o}b=J[g+4>>2];if((b|0)!=(e|0)){if(b>>>0>=j>>>0){b=(b>>>0)%(j>>>0)|0}if((b|0)!=(k|0)){break o}}p=J[m+8>>2];b=J[m+12>>2]-p|0;if((b|0)<4){break n}d=J[g+8>>2];n=b>>2;o=(n|0)<=1?1:n;l=0;h=0;while(1){b=f;i=J[p+(h<<2)>>2];if(K[i+84|0]){i=d}else{i=J[i+68>>2];b=J[i+(f<<2)>>2];i=J[i+(d<<2)>>2]}if((b|0)==(i|0)){h=h+1|0;l=(n|0)<=(h|0);if((h|0)!=(o|0)){continue}}break}if(!l){continue}break}break n}k=e&m;g=J[J[c+32>>2]+(k<<2)>>2];if(!g){break o}n=J[c+56>>2];while(1){g=J[g>>2];if(!g){break o}b=J[g+4>>2];if((b|0)!=(e|0)&(b&m)!=(k|0)){break o}o=J[n+8>>2];b=J[n+12>>2]-o|0;if((b|0)<4){break n}d=J[g+8>>2];p=b>>2;v=(p|0)<=1?1:p;l=0;h=0;while(1){b=f;i=J[o+(h<<2)>>2];if(K[i+84|0]){i=d}else{i=J[i+68>>2];b=J[i+(f<<2)>>2];i=J[i+(d<<2)>>2]}if((b|0)==(i|0)){h=h+1|0;l=(p|0)<=(h|0);if((h|0)!=(v|0)){continue}}break}if(!l){continue}break}break n}d=oa(16);J[d+8>>2]=f;J[d+4>>2]=e;J[d>>2]=0;J[d+12>>2]=u;y=Q(J[c+44>>2]+1>>>0);t=N[c+52>>2];p:{if(y>Q(t*Q(j>>>0))?0:j){break p}g=c+32|0;i=(j-1&j)!=0|j>>>0<3|j<<1;t=Q(W(Q(y/t)));q:{if(t=Q(0)){b=~~t>>>0;break q}b=0}df(g,b>>>0>>0?i:b);j=J[c+36>>2];b=j-1|0;if(!(b&j)){k=b&e;break p}if(e>>>0>>0){k=e;break p}k=(e>>>0)%(j>>>0)|0}e=J[c+32>>2]+(k<<2)|0;b=J[e>>2];r:{s:{if(!b){J[d>>2]=J[c+40>>2];J[c+40>>2]=d;J[e>>2]=z;b=J[d>>2];if(!b){break r}b=J[b+4>>2];e=j-1|0;t:{if(!(e&j)){b=b&e;break t}if(b>>>0>>0){break t}b=(b>>>0)%(j>>>0)|0}b=J[c+32>>2]+(b<<2)|0;break s}J[d>>2]=J[b>>2]}J[b>>2]=d}J[c+44>>2]=J[c+44>>2]+1;q=J[c+8>>2];r=J[c+4>>2];s=J[c+16>>2]}J[(f<<2)+s>>2]=u;u=u+1|0;if((q|0)!=(r|0)){J[r>>2]=f;r=r+4|0;J[c+4>>2]=r;break f}e=J[c>>2];b=q-e|0;i=b>>2;d=i+1|0;if(d>>>0>=1073741824){break c}g=b>>>1|0;d=b>>>0>=2147483644?1073741823:d>>>0>>0?g:d;if(d){if(d>>>0>=1073741824){break b}b=oa(d<<2)}else{b=0}h=b+(i<<2)|0;J[h>>2]=f;r=h+4|0;if((e|0)!=(q|0)){while(1){h=h-4|0;q=q-4|0;J[h>>2]=J[q>>2];if((e|0)!=(q|0)){continue}break}}q=b+(d<<2)|0;J[c+8>>2]=q;J[c+4>>2]=r;J[c>>2]=h;if(e){na(e)}}f=f+1|0;b=J[a+80>>2];if(f>>>0>>0){continue}break}if((b|0)!=(u|0)){da[J[J[a>>2]+24>>2]](a,c+16|0,c);J[a+80>>2]=u}a=J[c>>2];if(!a){break d}J[c+4>>2]=a;na(a)}a=J[c+16>>2];if(a){J[c+20>>2]=a;na(a)}f=J[c+40>>2];if(f){while(1){a=J[f>>2];na(f);f=a;if(f){continue}break}}a=J[c+32>>2];J[c+32>>2]=0;if(a){na(a)}ba=c- -64|0;return}qa();B()}xa();B()}qa();B()}function hb(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=Q(0),l=0,m=0,n=Q(0),o=0;a:{if(!d){break a}b:{c:{switch(J[a+28>>2]-1|0){case 0:e=K[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=J[a>>2];h=J[e>>2];i=J[a+48>>2];b=Hl(J[a+40>>2],J[a+44>>2],b,0);j=b;b=b+i|0;b=b+h|0;h=J[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=(g<<3)+d|0;i=H[b|0];J[e>>2]=i;J[e+4>>2]=i>>31;b=b+1|0;g=g+1|0;e=K[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 1:e=K[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=J[a>>2];h=J[e>>2];i=J[a+48>>2];b=Hl(J[a+40>>2],J[a+44>>2],b,0);j=b;b=b+i|0;b=b+h|0;h=J[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=(g<<3)+d|0;J[e>>2]=K[b|0];J[e+4>>2]=0;b=b+1|0;g=g+1|0;e=K[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 2:e=K[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=J[a>>2];h=J[e>>2];i=J[a+48>>2];b=Hl(J[a+40>>2],J[a+44>>2],b,0);j=b;b=b+i|0;b=b+h|0;h=J[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=(g<<3)+d|0;i=I[b>>1];J[e>>2]=i;J[e+4>>2]=i>>31;b=b+2|0;g=g+1|0;e=K[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 3:e=K[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=J[a>>2];h=J[e>>2];i=J[a+48>>2];b=Hl(J[a+40>>2],J[a+44>>2],b,0);j=b;b=b+i|0;b=b+h|0;h=J[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=(g<<3)+d|0;J[e>>2]=L[b>>1];J[e+4>>2]=0;b=b+2|0;g=g+1|0;e=K[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 4:e=K[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=J[a>>2];h=J[e>>2];i=J[a+48>>2];b=Hl(J[a+40>>2],J[a+44>>2],b,0);j=b;b=b+i|0;b=b+h|0;h=J[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=(g<<3)+d|0;i=J[b>>2];J[e>>2]=i;J[e+4>>2]=i>>31;b=b+4|0;g=g+1|0;e=K[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 5:e=K[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=J[a>>2];h=J[e>>2];i=J[a+48>>2];b=Hl(J[a+40>>2],J[a+44>>2],b,0);j=b;b=b+i|0;b=b+h|0;h=J[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=(g<<3)+d|0;J[e>>2]=J[b>>2];J[e+4>>2]=0;b=b+4|0;g=g+1|0;e=K[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 6:e=K[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=J[a>>2];h=J[e>>2];i=J[a+48>>2];b=Hl(J[a+40>>2],J[a+44>>2],b,0);j=b;b=b+i|0;b=b+h|0;h=J[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}i=J[b+4>>2];e=(g<<3)+d|0;J[e>>2]=J[b>>2];J[e+4>>2]=i;b=b+8|0;g=g+1|0;e=K[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 7:e=K[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=J[a>>2];h=J[e>>2];i=J[a+48>>2];b=Hl(J[a+40>>2],J[a+44>>2],b,0);j=b;b=b+i|0;b=b+h|0;h=J[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=J[b>>2];i=J[b+4>>2];if((i|0)<0){break a}j=(g<<3)+d|0;J[j>>2]=e;J[j+4>>2]=i;b=b+8|0;g=g+1|0;e=K[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 8:d:{e=K[a+24|0];f=c&255;if(!(e>>>0>>0?e:f)){break d}if(K[a+32|0]){break a}e=J[a+48>>2];b=Hl(J[a+40>>2],J[a+44>>2],b,0);j=b;b=b+e|0;e=J[a>>2];i=J[e+4>>2];e=J[e>>2];if((b|0)>=(i-e|0)){break a}g=b+e|0;h=c&255;b=0;while(1){k=N[g>>2];if(k>=Q(0x8000000000000000)|k=Q(1)?~~(k>Q(0)?Q(T(Q(V(Q(k*Q(2.3283064365386963e-10)))),Q(4294967296))):Q(W(Q(Q(k-Q(~~k>>>0>>>0))*Q(2.3283064365386963e-10)))))>>>0:0;m=~~k>>>0;break e}j=-2147483648;m=0}J[e>>2]=m;J[e+4>>2]=j;b=b+1|0;e=K[a+24|0];if(b>>>0>=(e>>>0>>0?e:h)>>>0){break d}g=g+4|0;if(i>>>0>g>>>0){continue}break}break a}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 9:f:{e=K[a+24|0];f=c&255;if(!(e>>>0>>0?e:f)){break f}if(K[a+32|0]){break a}e=J[a+48>>2];b=Hl(J[a+40>>2],J[a+44>>2],b,0);j=b;b=b+e|0;e=J[a>>2];i=J[e+4>>2];e=J[e>>2];if((b|0)>=(i-e|0)){break a}g=b+e|0;h=c&255;b=0;while(1){l=O[g>>3];if(l>=0x8000000000000000|l<-0x8000000000000000|l!=l){break a}o=R(l);if(o==Infinity){break a}e=(b<<3)+d|0;g:{if(o<0x8000000000000000){j=R(l)>=1?~~(l>0?T(V(l*2.3283064365386963e-10),4294967295):W((l-+(~~l>>>0>>>0))*2.3283064365386963e-10))>>>0:0;m=~~l>>>0;break g}j=-2147483648;m=0}J[e>>2]=m;J[e+4>>2]=j;b=b+1|0;e=K[a+24|0];if(b>>>0>=(e>>>0>>0?e:h)>>>0){break f}g=g+8|0;if(i>>>0>g>>>0){continue}break}break a}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 10:break c;default:break a}}e=K[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=J[a>>2];h=J[e>>2];i=J[a+48>>2];b=Hl(J[a+40>>2],J[a+44>>2],b,0);j=b;b=b+i|0;b=b+h|0;h=J[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=(g<<3)+d|0;J[e>>2]=K[b|0];J[e+4>>2]=0;b=b+1|0;g=g+1|0;e=K[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0}pa(d,0,a<<3)}}function ak(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;e=ba-16|0;ba=e;f=J[a+48>>2];b=oa(32);J[e>>2]=b;J[e+4>>2]=20;J[e+8>>2]=-2147483616;c=K[1359]|K[1360]<<8|(K[1361]<<16|K[1362]<<24);H[b+16|0]=c;H[b+17|0]=c>>>8;H[b+18|0]=c>>>16;H[b+19|0]=c>>>24;c=K[1355]|K[1356]<<8|(K[1357]<<16|K[1358]<<24);d=K[1351]|K[1352]<<8|(K[1353]<<16|K[1354]<<24);H[b+8|0]=d;H[b+9|0]=d>>>8;H[b+10|0]=d>>>16;H[b+11|0]=d>>>24;H[b+12|0]=c;H[b+13|0]=c>>>8;H[b+14|0]=c>>>16;H[b+15|0]=c>>>24;c=K[1347]|K[1348]<<8|(K[1349]<<16|K[1350]<<24);d=K[1343]|K[1344]<<8|(K[1345]<<16|K[1346]<<24);H[b|0]=d;H[b+1|0]=d>>>8;H[b+2|0]=d>>>16;H[b+3|0]=d>>>24;H[b+4|0]=c;H[b+5|0]=c>>>8;H[b+6|0]=c>>>16;H[b+7|0]=c>>>24;H[b+20|0]=0;f=Lf(f+24|0,e);if(H[e+11|0]<0){na(J[e>>2])}g=J[a+48>>2];b=oa(32);J[e>>2]=b;J[e+4>>2]=22;J[e+8>>2]=-2147483616;c=K[1338]|K[1339]<<8|(K[1340]<<16|K[1341]<<24);d=K[1334]|K[1335]<<8|(K[1336]<<16|K[1337]<<24);H[b+14|0]=d;H[b+15|0]=d>>>8;H[b+16|0]=d>>>16;H[b+17|0]=d>>>24;H[b+18|0]=c;H[b+19|0]=c>>>8;H[b+20|0]=c>>>16;H[b+21|0]=c>>>24;c=K[1332]|K[1333]<<8|(K[1334]<<16|K[1335]<<24);d=K[1328]|K[1329]<<8|(K[1330]<<16|K[1331]<<24);H[b+8|0]=d;H[b+9|0]=d>>>8;H[b+10|0]=d>>>16;H[b+11|0]=d>>>24;H[b+12|0]=c;H[b+13|0]=c>>>8;H[b+14|0]=c>>>16;H[b+15|0]=c>>>24;c=K[1324]|K[1325]<<8|(K[1326]<<16|K[1327]<<24);d=K[1320]|K[1321]<<8|(K[1322]<<16|K[1323]<<24);H[b|0]=d;H[b+1|0]=d>>>8;H[b+2|0]=d>>>16;H[b+3|0]=d>>>24;H[b+4|0]=c;H[b+5|0]=c>>>8;H[b+6|0]=c>>>16;H[b+7|0]=c>>>24;H[b+22|0]=0;g=Lf(g+24|0,e);if(H[e+11|0]<0){na(J[e>>2])}b=J[a+64>>2];J[a+64>>2]=0;if(b){da[J[J[b>>2]+4>>2]](b)}b=J[a+56>>2];h=J[b+100>>2];i=J[a+48>>2];j=J[b+96>>2];b=oa(32);J[e>>2]=b;J[e+4>>2]=18;J[e+8>>2]=-2147483616;c=K[1566]|K[1567]<<8;H[b+16|0]=c;H[b+17|0]=c>>>8;c=K[1562]|K[1563]<<8|(K[1564]<<16|K[1565]<<24);d=K[1558]|K[1559]<<8|(K[1560]<<16|K[1561]<<24);H[b+8|0]=d;H[b+9|0]=d>>>8;H[b+10|0]=d>>>16;H[b+11|0]=d>>>24;H[b+12|0]=c;H[b+13|0]=c>>>8;H[b+14|0]=c>>>16;H[b+15|0]=c>>>24;c=K[1554]|K[1555]<<8|(K[1556]<<16|K[1557]<<24);d=K[1550]|K[1551]<<8|(K[1552]<<16|K[1553]<<24);H[b|0]=d;H[b+1|0]=d>>>8;H[b+2|0]=d>>>16;H[b+3|0]=d>>>24;H[b+4|0]=c;H[b+5|0]=c>>>8;H[b+6|0]=c>>>16;H[b+7|0]=c>>>24;H[b+18|0]=0;b=Bb(i,e,-1);if(H[e+11|0]<0){na(J[e>>2])}c=(h-j|0)/12|0;a:{b:{c:{d:{e:{f:{g:{h:{switch(b+1|0){case 1:break f;case 3:break g;case 0:break h;default:break c}}if(!f){break g}if(c>>>0<1e3|(cb(J[a+48>>2])|0)>4|g^1){break e}}b=J[a+44>>2];H[e|0]=2;c=J[b+20>>2];if(!J[b+16>>2]&(c|0)<=0|(c|0)<0){sa(b,J[b+4>>2],e,e+1|0)}b=oa(360);J[b+4>>2]=0;J[b+8>>2]=0;J[b+72>>2]=0;J[b+76>>2]=0;J[b>>2]=10584;J[b+12>>2]=0;J[b+16>>2]=0;J[b+20>>2]=0;J[b+24>>2]=0;J[b+28>>2]=0;J[b+32>>2]=0;J[b+36>>2]=0;J[b+40>>2]=0;J[b+44>>2]=0;J[b+48>>2]=0;J[b+52>>2]=0;J[b+56>>2]=0;J[b+60>>2]=0;J[b+64>>2]=0;J[b+80>>2]=0;J[b+84>>2]=0;J[b+88>>2]=0;J[b+92>>2]=0;J[b+96>>2]=0;J[b+100>>2]=0;J[b+104>>2]=0;J[b+108>>2]=0;J[b+112>>2]=0;J[b+116>>2]=0;J[b+120>>2]=0;J[b+124>>2]=0;J[b+128>>2]=0;J[b+132>>2]=0;J[b+136>>2]=1065353216;J[b+156>>2]=0;J[b+160>>2]=0;J[b+148>>2]=0;J[b+152>>2]=0;J[b+140>>2]=0;J[b+144>>2]=0;J[b+168>>2]=0;J[b+172>>2]=0;J[b+164>>2]=-1;J[b+176>>2]=0;J[b+180>>2]=0;J[b+184>>2]=0;J[b+188>>2]=0;J[b+192>>2]=0;c=b+200|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=b+232|0;J[c>>2]=0;J[c+4>>2]=0;H[c+24|0]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;J[b+304>>2]=0;J[b+308>>2]=0;J[b+296>>2]=0;J[b+300>>2]=0;J[b+288>>2]=0;J[b+292>>2]=0;J[b+280>>2]=0;J[b+284>>2]=0;J[b+272>>2]=0;J[b+276>>2]=0;J[b+264>>2]=0;J[b+268>>2]=0;H[b+352|0]=0;J[b+344>>2]=0;J[b+336>>2]=0;J[b+340>>2]=0;J[b+328>>2]=2;J[b+332>>2]=7;J[b+320>>2]=-1;J[b+324>>2]=0;J[b+312>>2]=0;J[b+316>>2]=-1;break d}if(!f){break c}}b=J[a+44>>2];H[e|0]=0;c=J[b+20>>2];if(!J[b+16>>2]&(c|0)<=0|(c|0)<0){sa(b,J[b+4>>2],e,e+1|0)}b=oa(296);J[b+4>>2]=0;J[b+8>>2]=0;J[b+72>>2]=0;J[b+76>>2]=0;J[b>>2]=10532;J[b+12>>2]=0;J[b+16>>2]=0;J[b+20>>2]=0;J[b+24>>2]=0;J[b+28>>2]=0;J[b+32>>2]=0;J[b+36>>2]=0;J[b+40>>2]=0;J[b+44>>2]=0;J[b+48>>2]=0;J[b+52>>2]=0;J[b+56>>2]=0;J[b+60>>2]=0;J[b+64>>2]=0;J[b+80>>2]=0;J[b+84>>2]=0;J[b+88>>2]=0;J[b+92>>2]=0;J[b+96>>2]=0;J[b+100>>2]=0;J[b+104>>2]=0;J[b+108>>2]=0;J[b+112>>2]=0;J[b+116>>2]=0;J[b+120>>2]=0;J[b+124>>2]=0;J[b+128>>2]=0;J[b+132>>2]=0;J[b+136>>2]=1065353216;J[b+156>>2]=0;J[b+160>>2]=0;J[b+148>>2]=0;J[b+152>>2]=0;J[b+140>>2]=0;J[b+144>>2]=0;J[b+168>>2]=0;J[b+172>>2]=0;J[b+164>>2]=-1;J[b+176>>2]=0;J[b+180>>2]=0;J[b+184>>2]=0;J[b+188>>2]=0;J[b+192>>2]=0;c=b+200|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=b+232|0;J[c>>2]=0;J[c+4>>2]=0;H[c+24|0]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;H[b+288|0]=0;J[b+280>>2]=0;J[b+284>>2]=0;J[b+272>>2]=0;J[b+276>>2]=0;J[b+264>>2]=0;J[b+268>>2]=0}c=J[a+64>>2];J[a+64>>2]=b;if(!c){break b}da[J[J[c>>2]+4>>2]](c)}b=J[a+64>>2];if(b){break b}a=0;break a}a=da[J[J[b>>2]+8>>2]](b,a)|0}ba=e+16|0;return a|0}function qh(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,C=0,D=0,E=0,F=0,G=0,I=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0;i=ba-80|0;ba=i;f=-1;h=-1;a:{if((b|0)==-1){break a}h=b+1|0;f=(h>>>0)%3|0?h:b-2|0;h=b-1|0;if((b>>>0)%3|0){break a}h=b+2|0}e=J[a+36>>2];b=J[e>>2];b:{c:{d:{e:{f:{g:{e=J[e+4>>2]-b>>2;g=f<<2;f=J[J[a+32>>2]+28>>2];g=J[g+f>>2];if(e>>>0<=g>>>0){break g}h=J[f+(h<<2)>>2];if(h>>>0>=e>>>0){break g}h:{j=J[b+(h<<2)>>2];g=J[b+(g<<2)>>2];if((j|0)>=(d|0)|(g|0)>=(d|0)){break h}b=(j<<3)+c|0;z=J[b+4>>2];f=(g<<3)+c|0;h=J[f+4>>2];f=J[f>>2];C=J[b>>2];if(!((f|0)!=(C|0)|(h|0)!=(z|0))){J[a+8>>2]=f;J[a+12>>2]=h;break c}b=J[J[a+4>>2]+(d<<2)>>2];J[i+72>>2]=0;J[i+76>>2]=0;e=i- -64|0;J[e>>2]=0;J[e+4>>2]=0;J[i+56>>2]=0;J[i+60>>2]=0;e=J[a>>2];if(!K[e+84|0]){b=J[J[e+68>>2]+(b<<2)>>2]}hb(e,b,H[e+24|0],i+56|0);b=J[J[a+4>>2]+(g<<2)>>2];J[i+48>>2]=0;J[i+52>>2]=0;J[i+40>>2]=0;J[i+44>>2]=0;J[i+32>>2]=0;J[i+36>>2]=0;e=J[a>>2];if(!K[e+84|0]){b=J[J[e+68>>2]+(b<<2)>>2]}hb(e,b,H[e+24|0],i+32|0);b=J[J[a+4>>2]+(j<<2)>>2];J[i+24>>2]=0;J[i+28>>2]=0;J[i+16>>2]=0;J[i+20>>2]=0;J[i+8>>2]=0;J[i+12>>2]=0;e=J[a>>2];if(!K[e+84|0]){b=J[J[e+68>>2]+(b<<2)>>2]}hb(e,b,H[e+24|0],i+8|0);b=J[i+16>>2];p=J[i+40>>2];u=b-p|0;N=J[i+44>>2];b=J[i+20>>2]-(N+(b>>>0

>>0)|0)|0;I=b;e=Hl(u,b,u,b);j=ca;b=J[i+8>>2];x=J[i+32>>2];D=b-x|0;O=J[i+36>>2];b=J[i+12>>2]-(O+(b>>>0>>0)|0)|0;L=b;k=e;e=Hl(D,b,D,b);b=k+e|0;k=ca+j|0;k=b>>>0>>0?k+1|0:k;e=J[i+24>>2];E=J[i+48>>2];F=e-E|0;P=J[i+52>>2];e=J[i+28>>2]-(P+(e>>>0>>0)|0)|0;M=e;m=b;b=Hl(F,e,F,e);o=m+b|0;e=ca+k|0;q=b>>>0>o>>>0?e+1|0:e;if(!(q|o)){break h}b=0;v=Jl(-1,2147483647,o,q);e=f;f=e>>31;G=f;r=e;e=f>>31;g=e;l=r^e;e=l-e|0;f=(f^g)-((g>>>0>l>>>0)+g|0)|0;g=f;f=h>>31;Q=f;s=h;h=f>>31;l=s^h;n=l-h|0;k=f>>31;h=(k^f)-((h>>>0>l>>>0)+k|0)|0;f=(h|0)==(g|0)&e>>>0>n>>>0|g>>>0>h>>>0;e=f?e:n;j=ca;h=f?g:h;if((j|0)==(h|0)&e>>>0>v>>>0|h>>>0>j>>>0){break b}j=J[i+64>>2];R=J[i+68>>2];h=Hl(j-p|0,R-((j>>>0

>>0)+N|0)|0,u,I);f=ca;l=J[i+56>>2];S=J[i+60>>2];e=Hl(l-x|0,S-((l>>>0>>0)+O|0)|0,D,L);h=e+h|0;g=ca+f|0;g=e>>>0>h>>>0?g+1|0:g;f=h;n=J[i+72>>2];T=J[i+76>>2];h=Hl(n-E|0,T-((n>>>0>>0)+P|0)|0,F,M);t=f+h|0;f=ca+g|0;f=h>>>0>t>>>0?f+1|0:f;v=f;e=f>>31;k=e^t;h=k-e|0;k=(e^f)-((e>>>0>k>>>0)+e|0)|0;f=C;C=f-r|0;f=(f>>31)-((f>>>0>>0)+G|0)|0;U=f;A=f>>31;m=A^C;g=m-A|0;e=f>>31;f=(e^f)-((m>>>0>>0)+e|0)|0;m=f;A=z-s|0;f=(z>>31)-((s>>>0>z>>>0)+Q|0)|0;z=f;e=g;W=e;w=f>>31;y=w^A;V=y-w|0;g=f>>31;f=(g^f)-((w>>>0>y>>>0)+g|0)|0;e=(m|0)==(f|0)&e>>>0>V>>>0|f>>>0>>0;f=Jl(-1,2147483647,e?W:V,e?m:f);e=ca;if((e|0)==(k|0)&f>>>0>>0|e>>>0>>0){break b}f=h;h=k;e=L>>31;g=e;m=e^D;e=m-e|0;g=(g^L)-((g>>>0>m>>>0)+g|0)|0;k=I>>31;w=k^u;y=w-k|0;k=(k^I)-((k>>>0>w>>>0)+k|0)|0;m=(g|0)==(k|0)&e>>>0>y>>>0|g>>>0>k>>>0;e=m?e:y;g=m?g:k;k=M>>31;m=e;w=k^F;y=w-k|0;k=(k^M)-((k>>>0>w>>>0)+k|0)|0;e=(g|0)==(k|0)&e>>>0>y>>>0|g>>>0>k>>>0;e=Jl(-1,2147483647,e?m:y,e?g:k);g=ca;if((g|0)==(h|0)&e>>>0>>0|g>>>0>>0){break b}b=Hl(t,v,A,z);h=ca;f=Hl(o,q,s,Q);s=f+b|0;b=ca+h|0;k=f>>>0>s>>>0?b+1|0:b;b=Hl(t,v,C,U);h=ca;f=b;b=Hl(r,G,o,q);r=f+b|0;e=ca+h|0;G=b>>>0>r>>>0?e+1|0:e;h=1;b=0;g=Il(Hl(t,v,u,I),ca,o,q);e=g+p|0;f=ca+N|0;f=e>>>0>>0?f+1|0:f;g=j-e|0;f=R-((e>>>0>j>>>0)+f|0)|0;j=Hl(g,f,g,f);p=ca;e=Il(Hl(t,v,D,L),ca,o,q);f=e+x|0;g=ca+O|0;g=e>>>0>f>>>0?g+1|0:g;e=l-f|0;f=S-((f>>>0>l>>>0)+g|0)|0;g=Hl(e,f,e,f);f=g+j|0;e=ca+p|0;e=f>>>0>>0?e+1|0:e;l=f;j=Il(Hl(t,v,F,M),ca,o,q);g=j+E|0;f=ca+P|0;f=g>>>0>>0?f+1|0:f;j=n-g|0;f=T-((g>>>0>n>>>0)+f|0)|0;j=Hl(j,f,j,f);f=j+l|0;g=ca+e|0;f=Hl(f,f>>>0>>0?g+1|0:g,o,q);e=ca;j=e;if(!e&f>>>0<=1){break f}l=f;while(1){g=b<<1|h>>>31;h=h<<1;b=g;n=!e&l>>>0>7|(e|0)!=0;l=(e&3)<<30|l>>>2;e=e>>>2|0;if(n){continue}break}break e}if((d|0)>(g|0)){b=g<<1}else{if((d|0)<=0){J[a+8>>2]=0;J[a+12>>2]=0;break c}b=(d<<1)-2|0}b=(b<<2)+c|0;J[a+8>>2]=J[b>>2];J[a+12>>2]=J[b+4>>2];break c}ra();B()}b=j;h=f;if(f-1|0){break d}}while(1){e=Jl(f,j,h,b);b=b+ca|0;g=h;h=e+h|0;b=g>>>0>h>>>0?b+1|0:b;h=(b&1)<<31|h>>>1;b=b>>>1|0;e=Hl(h,b,h,b);g=ca;if((j|0)==(g|0)&e>>>0>f>>>0|g>>>0>j>>>0){continue}break}}t=a+16|0;j=(d<<3)+c|0;d=J[j+4>>2];g=Hl(h,b,C,U);p=ca;c=Il(s-g|0,k-(p+(g>>>0>s>>>0)|0)|0,o,q);f=d-c|0;e=d>>31;l=e-(ca+(c>>>0>d>>>0)|0)|0;n=Hl(f,l,f,l);u=ca;j=J[j>>2];f=j>>31;v=f;l=Hl(h,b,A,z);x=ca;b=G+x|0;h=l+r|0;b=h>>>0>>0?b+1|0:b;m=n;h=Il(h,b,o,q);b=j-h|0;f=f-(ca+(h>>>0>j>>>0)|0)|0;n=Hl(b,f,b,f);b=m+n|0;f=ca+u|0;u=b;n=b>>>0>>0?f+1|0:f;f=e;e=k+p|0;b=g+s|0;e=b>>>0>>0?e+1|0:e;b=Il(b,e,o,q);e=d-b|0;d=f-(ca+(b>>>0>d>>>0)|0)|0;e=Hl(e,d,e,d);p=ca;d=Il(r-l|0,G-((l>>>0>r>>>0)+x|0)|0,o,q);f=j-d|0;g=v-(ca+(d>>>0>j>>>0)|0)|0;j=Hl(f,g,f,g);g=j+e|0;f=ca+p|0;f=g>>>0>>0?f+1|0:f;i:{if((f|0)==(n|0)&g>>>0>u>>>0|f>>>0>n>>>0){H[i+7|0]=1;Wc(t,i+7|0);break i}H[i+7|0]=0;Wc(t,i+7|0);c=b;h=d}J[a+8>>2]=h;J[a+12>>2]=c}b=1}ba=i+80|0;return b}function lh(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,C=0,D=0,E=0,F=0,G=0,I=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0;i=ba-80|0;ba=i;h=-1;a:{if((b|0)==-1){break a}f=J[a+32>>2];e=b+1|0;e=(e>>>0)%3|0?e:b-2|0;if((e|0)!=-1){h=J[J[f>>2]+(e<<2)>>2]}e=((b>>>0)%3|0?-1:2)+b|0;b=-1;b=(e|0)!=-1?J[J[f>>2]+(e<<2)>>2]:b;e=J[a+36>>2];f=J[e>>2];e=J[e+4>>2]-f>>2;if(e>>>0<=h>>>0|b>>>0>=e>>>0){break a}b:{c:{d:{e:{f:{g:{j=J[f+(b<<2)>>2];g=J[f+(h<<2)>>2];if((j|0)>=(d|0)|(g|0)>=(d|0)){break g}b=(j<<3)+c|0;z=J[b+4>>2];f=(g<<3)+c|0;h=J[f+4>>2];f=J[f>>2];C=J[b>>2];if(!((f|0)!=(C|0)|(h|0)!=(z|0))){J[a+8>>2]=f;J[a+12>>2]=h;break c}b=J[J[a+4>>2]+(d<<2)>>2];J[i+72>>2]=0;J[i+76>>2]=0;e=i- -64|0;J[e>>2]=0;J[e+4>>2]=0;J[i+56>>2]=0;J[i+60>>2]=0;e=J[a>>2];if(!K[e+84|0]){b=J[J[e+68>>2]+(b<<2)>>2]}hb(e,b,H[e+24|0],i+56|0);b=J[J[a+4>>2]+(g<<2)>>2];J[i+48>>2]=0;J[i+52>>2]=0;J[i+40>>2]=0;J[i+44>>2]=0;J[i+32>>2]=0;J[i+36>>2]=0;e=J[a>>2];if(!K[e+84|0]){b=J[J[e+68>>2]+(b<<2)>>2]}hb(e,b,H[e+24|0],i+32|0);b=J[J[a+4>>2]+(j<<2)>>2];J[i+24>>2]=0;J[i+28>>2]=0;J[i+16>>2]=0;J[i+20>>2]=0;J[i+8>>2]=0;J[i+12>>2]=0;e=J[a>>2];if(!K[e+84|0]){b=J[J[e+68>>2]+(b<<2)>>2]}hb(e,b,H[e+24|0],i+8|0);b=J[i+16>>2];p=J[i+40>>2];u=b-p|0;N=J[i+44>>2];b=J[i+20>>2]-(N+(b>>>0

>>0)|0)|0;I=b;e=Hl(u,b,u,b);j=ca;b=J[i+8>>2];x=J[i+32>>2];D=b-x|0;O=J[i+36>>2];b=J[i+12>>2]-(O+(b>>>0>>0)|0)|0;L=b;k=e;e=Hl(D,b,D,b);b=k+e|0;k=ca+j|0;k=b>>>0>>0?k+1|0:k;e=J[i+24>>2];E=J[i+48>>2];F=e-E|0;P=J[i+52>>2];e=J[i+28>>2]-(P+(e>>>0>>0)|0)|0;M=e;m=b;b=Hl(F,e,F,e);o=m+b|0;e=ca+k|0;q=b>>>0>o>>>0?e+1|0:e;if(!(q|o)){break g}b=0;v=Jl(-1,2147483647,o,q);e=f;f=e>>31;G=f;r=e;e=f>>31;g=e;l=r^e;e=l-e|0;f=(f^g)-((g>>>0>l>>>0)+g|0)|0;g=f;f=h>>31;Q=f;s=h;h=f>>31;l=s^h;n=l-h|0;k=f>>31;h=(k^f)-((h>>>0>l>>>0)+k|0)|0;f=(h|0)==(g|0)&e>>>0>n>>>0|g>>>0>h>>>0;e=f?e:n;j=ca;h=f?g:h;if((j|0)==(h|0)&e>>>0>v>>>0|h>>>0>j>>>0){break b}j=J[i+64>>2];R=J[i+68>>2];h=Hl(j-p|0,R-((j>>>0

>>0)+N|0)|0,u,I);f=ca;l=J[i+56>>2];S=J[i+60>>2];e=Hl(l-x|0,S-((l>>>0>>0)+O|0)|0,D,L);h=e+h|0;g=ca+f|0;g=e>>>0>h>>>0?g+1|0:g;f=h;n=J[i+72>>2];T=J[i+76>>2];h=Hl(n-E|0,T-((n>>>0>>0)+P|0)|0,F,M);t=f+h|0;f=ca+g|0;f=h>>>0>t>>>0?f+1|0:f;v=f;e=f>>31;k=e^t;h=k-e|0;k=(e^f)-((e>>>0>k>>>0)+e|0)|0;f=C;C=f-r|0;f=(f>>31)-((f>>>0>>0)+G|0)|0;U=f;A=f>>31;m=A^C;g=m-A|0;e=f>>31;f=(e^f)-((m>>>0>>0)+e|0)|0;m=f;A=z-s|0;f=(z>>31)-((s>>>0>z>>>0)+Q|0)|0;z=f;e=g;W=e;w=f>>31;y=w^A;V=y-w|0;g=f>>31;f=(g^f)-((w>>>0>y>>>0)+g|0)|0;e=(m|0)==(f|0)&e>>>0>V>>>0|f>>>0>>0;f=Jl(-1,2147483647,e?W:V,e?m:f);e=ca;if((e|0)==(k|0)&f>>>0>>0|e>>>0>>0){break b}f=h;h=k;e=L>>31;g=e;m=e^D;e=m-e|0;g=(g^L)-((g>>>0>m>>>0)+g|0)|0;k=I>>31;w=k^u;y=w-k|0;k=(k^I)-((k>>>0>w>>>0)+k|0)|0;m=(g|0)==(k|0)&e>>>0>y>>>0|g>>>0>k>>>0;e=m?e:y;g=m?g:k;k=M>>31;m=e;w=k^F;y=w-k|0;k=(k^M)-((k>>>0>w>>>0)+k|0)|0;e=(g|0)==(k|0)&e>>>0>y>>>0|g>>>0>k>>>0;e=Jl(-1,2147483647,e?m:y,e?g:k);g=ca;if((g|0)==(h|0)&e>>>0>>0|g>>>0>>0){break b}b=Hl(t,v,A,z);h=ca;f=Hl(o,q,s,Q);s=f+b|0;b=ca+h|0;k=f>>>0>s>>>0?b+1|0:b;b=Hl(t,v,C,U);h=ca;f=b;b=Hl(r,G,o,q);r=f+b|0;e=ca+h|0;G=b>>>0>r>>>0?e+1|0:e;h=1;b=0;g=Il(Hl(t,v,u,I),ca,o,q);e=g+p|0;f=ca+N|0;f=e>>>0>>0?f+1|0:f;g=j-e|0;f=R-((e>>>0>j>>>0)+f|0)|0;j=Hl(g,f,g,f);p=ca;e=Il(Hl(t,v,D,L),ca,o,q);f=e+x|0;g=ca+O|0;g=e>>>0>f>>>0?g+1|0:g;e=l-f|0;f=S-((f>>>0>l>>>0)+g|0)|0;g=Hl(e,f,e,f);f=g+j|0;e=ca+p|0;e=f>>>0>>0?e+1|0:e;l=f;j=Il(Hl(t,v,F,M),ca,o,q);g=j+E|0;f=ca+P|0;f=g>>>0>>0?f+1|0:f;j=n-g|0;f=T-((g>>>0>n>>>0)+f|0)|0;j=Hl(j,f,j,f);f=j+l|0;g=ca+e|0;f=Hl(f,f>>>0>>0?g+1|0:g,o,q);e=ca;j=e;if(!e&f>>>0<=1){break f}l=f;while(1){g=b<<1|h>>>31;h=h<<1;b=g;n=!e&l>>>0>7|(e|0)!=0;l=(e&3)<<30|l>>>2;e=e>>>2|0;if(n){continue}break}break e}if((d|0)>(g|0)){b=g<<1}else{if((d|0)<=0){J[a+8>>2]=0;J[a+12>>2]=0;break c}b=(d<<1)-2|0}b=(b<<2)+c|0;J[a+8>>2]=J[b>>2];J[a+12>>2]=J[b+4>>2];break c}b=j;h=f;if(f-1|0){break d}}while(1){e=Jl(f,j,h,b);b=b+ca|0;g=h;h=e+h|0;b=g>>>0>h>>>0?b+1|0:b;h=(b&1)<<31|h>>>1;b=b>>>1|0;e=Hl(h,b,h,b);g=ca;if((j|0)==(g|0)&e>>>0>f>>>0|g>>>0>j>>>0){continue}break}}t=a+16|0;j=(d<<3)+c|0;d=J[j+4>>2];g=Hl(h,b,C,U);p=ca;c=Il(s-g|0,k-(p+(g>>>0>s>>>0)|0)|0,o,q);f=d-c|0;e=d>>31;l=e-(ca+(c>>>0>d>>>0)|0)|0;n=Hl(f,l,f,l);u=ca;j=J[j>>2];f=j>>31;v=f;l=Hl(h,b,A,z);x=ca;b=G+x|0;h=l+r|0;b=h>>>0>>0?b+1|0:b;m=n;h=Il(h,b,o,q);b=j-h|0;f=f-(ca+(h>>>0>j>>>0)|0)|0;n=Hl(b,f,b,f);b=m+n|0;f=ca+u|0;u=b;n=b>>>0>>0?f+1|0:f;f=e;e=k+p|0;b=g+s|0;e=b>>>0>>0?e+1|0:e;b=Il(b,e,o,q);e=d-b|0;d=f-(ca+(b>>>0>d>>>0)|0)|0;e=Hl(e,d,e,d);p=ca;d=Il(r-l|0,G-((l>>>0>r>>>0)+x|0)|0,o,q);f=j-d|0;g=v-(ca+(d>>>0>j>>>0)|0)|0;j=Hl(f,g,f,g);g=j+e|0;f=ca+p|0;f=g>>>0>>0?f+1|0:f;h:{if((f|0)==(n|0)&g>>>0>u>>>0|f>>>0>n>>>0){H[i+7|0]=1;Wc(t,i+7|0);break h}H[i+7|0]=0;Wc(t,i+7|0);c=b;h=d}J[a+8>>2]=h;J[a+12>>2]=c}b=1}ba=i+80|0;return b}ra();B()}function Zc(a,b){var c=0,d=0,e=0,f=0,g=0,h=0;e=ba-16|0;ba=e;J[a+8>>2]=b;J[a>>2]=0;d=a+12|0;J[d>>2]=0;J[d+4>>2]=0;J[d+24>>2]=0;J[d+28>>2]=0;J[d+16>>2]=0;J[d+20>>2]=0;J[d+8>>2]=0;J[d+12>>2]=0;c=d+32|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=d- -64|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=d+96|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=d+128|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=d+160|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=d+192|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=d+224|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=d+256|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=d+288|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=d+320|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=d+352|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=d+384|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=d+416|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=d+448|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=d+480|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=d+512|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=d+544|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=d+576|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=d+608|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=d+640|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=d+672|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=d+704|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=d+736|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=d+768|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=d+800|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=d+832|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=d+864|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=d+896|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=d+928|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=d+960|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;d=d+992|0;J[d>>2]=0;J[d+4>>2]=0;J[d+24>>2]=0;J[d+28>>2]=0;J[d+16>>2]=0;J[d+20>>2]=0;J[d+8>>2]=0;J[d+12>>2]=0;d=a+1036|0;J[d>>2]=0;J[d+4>>2]=0;J[d+24>>2]=0;J[d+28>>2]=0;J[d+16>>2]=0;J[d+20>>2]=0;J[d+8>>2]=0;J[d+12>>2]=0;d=a+1068|0;J[d>>2]=0;J[d+4>>2]=0;J[d+16>>2]=0;J[d+8>>2]=0;J[d+12>>2]=0;d=a+1088|0;J[d>>2]=0;J[d+4>>2]=0;J[d+16>>2]=0;J[d+8>>2]=0;J[d+12>>2]=0;d=a+1108|0;J[d>>2]=0;J[d+4>>2]=0;J[d+16>>2]=0;J[d+8>>2]=0;J[d+12>>2]=0;J[a+1136>>2]=0;J[a+1128>>2]=0;J[a+1132>>2]=0;h=a+1164|0;a:{b:{if(b){if(b>>>0<1073741824){break b}qa();B()}J[a+1140>>2]=0;J[a+1144>>2]=0;d=a+1156|0;J[d>>2]=0;J[d+4>>2]=0;d=a+1148|0;J[d>>2]=0;J[d+4>>2]=0;J[e+8>>2]=0;J[e>>2]=0;J[e+4>>2]=0;d=1;break a}d=b<<2;c=oa(d);J[a+1128>>2]=c;f=c+d|0;J[a+1136>>2]=f;pa(c,0,d);g=a+1148|0;J[g>>2]=0;J[a+1140>>2]=0;J[a+1144>>2]=0;J[a+1132>>2]=f;c=oa(d);J[a+1140>>2]=c;f=c+d|0;J[g>>2]=f;pa(c,0,d);g=a+1160|0;J[g>>2]=0;J[a+1152>>2]=0;J[a+1156>>2]=0;J[a+1144>>2]=f;c=oa(d);J[a+1152>>2]=c;f=c+d|0;J[g>>2]=f;pa(c,0,d);J[a+1156>>2]=f;c=oa(d);J[e>>2]=c;f=c+d|0;J[e+8>>2]=f;pa(c,0,d);J[e+4>>2]=f;d=b<<5|1}Jb(h,d,e);c=J[e>>2];if(c){J[e+4>>2]=c;na(c)}J[e+8>>2]=0;J[e>>2]=0;J[e+4>>2]=0;if(b){b=b<<2;c=oa(b);J[e>>2]=c;f=b+c|0;J[e+8>>2]=f;pa(c,0,b);J[e+4>>2]=f}Jb(a+1176|0,d,e);b=J[e>>2];if(b){J[e+4>>2]=b;na(b)}ba=e+16|0;return a}function Xf(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;a:{b:{c:{d:{e:{if(J[a+92>>2]==J[a+88>>2]){break e}c=J[a+52>>2];f:{if((c|0)!=J[a+56>>2]){J[c>>2]=b;J[a+52>>2]=c+4;break f}h=J[a+48>>2];g=c-h|0;d=g>>2;f=d+1|0;if(f>>>0>=1073741824){break a}e=g>>>1|0;g=g>>>0>=2147483644?1073741823:f>>>0>>0?e:f;if(g){if(g>>>0>=1073741824){break d}e=oa(g<<2)}else{e=0}f=e+(d<<2)|0;J[f>>2]=b;d=f+4|0;if((c|0)!=(h|0)){while(1){f=f-4|0;c=c-4|0;J[f>>2]=J[c>>2];if((c|0)!=(h|0)){continue}break}}J[a+56>>2]=e+(g<<2);J[a+52>>2]=d;J[a+48>>2]=f;if(!h){break f}na(h)}J[a+84>>2]=0;c=-1;e=-1;g:{if((b|0)==-1){break g}d=J[a+4>>2];e=b+1|0;e=(e>>>0)%3|0?e:b-2|0;if((e|0)!=-1){c=J[J[d>>2]+(e<<2)>>2]}h:{if((b>>>0)%3|0){l=b-1|0;break h}l=b+2|0;e=-1;if((l|0)==-1){break g}}e=J[J[d>>2]+(l<<2)>>2]}i=e>>>3&536870908;d=J[a+36>>2];h=d+(c>>>3&536870908)|0;g=J[h>>2];f=1<>2]=f|g;f=a+8|0;if((b|0)!=-1){d=b+1|0;d=(d>>>0)%3|0?d:b-2|0}else{d=-1}mb(f,c,d);d=J[a+36>>2]}f=d+i|0;d=J[f>>2];c=1<>2]=c|d;d=a+8|0;c=-1;i:{if((b|0)==-1){break i}c=b-1|0;if((b>>>0)%3|0){break i}c=b+2|0}mb(d,e,c)}c=-1;c=(b|0)!=-1?J[J[J[a+4>>2]>>2]+(b<<2)>>2]:c;f=J[a+36>>2]+(c>>>3&536870908)|0;d=J[f>>2];e=1<>2]=d|e;mb(a+8|0,c,b)}d=J[a+84>>2];if((d|0)>2){break e}while(1){e=P(d,12)+a|0;b=J[e+52>>2];if((b|0)==J[e+48>>2]){d=d+1|0;if((d|0)!=3){continue}break e}b=b-4|0;c=J[b>>2];J[e+52>>2]=b;J[a+84>>2]=d;if((c|0)==-1){break e}f=J[a+24>>2];b=(c>>>0)/3|0;j:{if(J[f+(b>>>3&268435452)>>2]>>>b&1){break j}k:{while(1){k=(c>>>0)/3|0;b=(k>>>3&268435452)+f|0;J[b>>2]=J[b>>2]|1<>2]>>2]+(c<<2)>>2]:d;f=J[a+36>>2]+(d>>>3&536870908)|0;e=J[f>>2];b=1<>2]=b|e;i=J[(J[J[a+16>>2]+96>>2]+P(k,12)|0)+((c>>>0)%3<<2)>>2];l=J[J[a+20>>2]+4>>2];f=J[l+4>>2];t:{if((f|0)!=J[l+8>>2]){J[f>>2]=i;J[l+4>>2]=f+4;break t}j=J[l>>2];h=f-j|0;g=h>>2;e=g+1|0;if(e>>>0>=1073741824){break s}b=h>>>1|0;h=h>>>0>=2147483644?1073741823:b>>>0>e>>>0?b:e;if(h){if(h>>>0>=1073741824){break d}e=oa(h<<2)}else{e=0}b=e+(g<<2)|0;J[b>>2]=i;g=b+4|0;if((f|0)!=(j|0)){while(1){b=b-4|0;f=f-4|0;J[b>>2]=J[f>>2];if((f|0)!=(j|0)){continue}break}}J[l+8>>2]=e+(h<<2);J[l+4>>2]=g;J[l>>2]=b;if(!j){break t}na(j)}j=J[a+12>>2];f=J[j+4>>2];u:{if((f|0)!=J[j+8>>2]){J[f>>2]=c;J[j+4>>2]=f+4;break u}i=J[j>>2];h=f-i|0;g=h>>2;e=g+1|0;if(e>>>0>=1073741824){break r}b=h>>>1|0;h=h>>>0>=2147483644?1073741823:b>>>0>e>>>0?b:e;if(h){if(h>>>0>=1073741824){break d}e=oa(h<<2)}else{e=0}b=e+(g<<2)|0;J[b>>2]=c;g=b+4|0;if((f|0)!=(i|0)){while(1){b=b-4|0;f=f-4|0;J[b>>2]=J[f>>2];if((f|0)!=(i|0)){continue}break}}J[j+8>>2]=e+(h<<2);J[j+4>>2]=g;J[j>>2]=b;if(!i){break u}na(i)}b=J[a+12>>2];J[J[b+12>>2]+(d<<2)>>2]=J[b+24>>2];J[b+24>>2]=J[b+24>>2]+1}if((c|0)==-1){break k}g=J[a+4>>2];f=-1;b=c+1|0;b=(b>>>0)%3|0?b:c-2|0;if((b|0)!=-1){f=J[J[g+12>>2]+(b<<2)>>2]}v:{w:{if((P(k,3)|0)!=(c|0)){d=c-1|0;break w}d=c+2|0;c=-1;if((d|0)==-1){break v}}c=J[J[g+12>>2]+(d<<2)>>2]}d=(c|0)==-1;e=(c>>>0)/3|0;if((f|0)!=-1){b=(f>>>0)/3|0;b=J[J[a+24>>2]+(b>>>3&268435452)>>2]&1<>2]+(b>>>3&536870908)>>2]>>>b&1){break x}k=0;b=J[J[g>>2]+(c<<2)>>2];if(!(J[J[a+36>>2]+(b>>>3&536870908)>>2]>>>b&1)){b=J[a+88>>2]+(b<<2)|0;e=J[b>>2];J[b>>2]=e+1;k=(e|0)<=0?2:1}if(J[a+84>>2]>=(k|0)&l){break m}j=P(k,12)+a|0;b=J[j+52>>2];y:{if((b|0)!=J[j+56>>2]){J[b>>2]=c;J[j+52>>2]=b+4;break y}i=J[j+48>>2];h=b-i|0;d=h>>2;g=d+1|0;if(g>>>0>=1073741824){break c}e=h>>>1|0;g=h>>>0>=2147483644?1073741823:e>>>0>g>>>0?e:g;if(g){if(g>>>0>=1073741824){break d}e=oa(g<<2)}else{e=0}d=e+(d<<2)|0;J[d>>2]=c;c=d+4|0;if((b|0)!=(i|0)){while(1){d=d-4|0;b=b-4|0;J[d>>2]=J[b>>2];if((b|0)!=(i|0)){continue}break}}J[j+48>>2]=d;J[j+52>>2]=c;J[j+56>>2]=e+(g<<2);if(!i){break y}na(i)}if(J[a+84>>2]<=(k|0)){break x}J[a+84>>2]=k}if(l){break k}c=-1;if((f|0)==-1){break n}}c=J[J[J[a+4>>2]>>2]+(f<<2)>>2]}b=0;if(!(J[J[a+36>>2]+(c>>>3&536870908)>>2]>>>c&1)){b=J[a+88>>2]+(c<<2)|0;c=J[b>>2];J[b>>2]=c+1;b=(c|0)<=0?2:1}if(J[a+84>>2]<(b|0)){break l}c=f}f=J[a+24>>2];continue}break}k=P(b,12)+a|0;c=J[k+52>>2];z:{if((c|0)!=J[k+56>>2]){J[c>>2]=f;J[k+52>>2]=c+4;break z}i=J[k+48>>2];h=c-i|0;d=h>>2;g=d+1|0;if(g>>>0>=1073741824){break b}e=h>>>1|0;g=h>>>0>=2147483644?1073741823:e>>>0>g>>>0?e:g;if(g){if(g>>>0>=1073741824){break d}e=oa(g<<2)}else{e=0}d=e+(d<<2)|0;J[d>>2]=f;f=d+4|0;if((c|0)!=(i|0)){while(1){d=d-4|0;c=c-4|0;J[d>>2]=J[c>>2];if((c|0)!=(i|0)){continue}break}}J[k+48>>2]=d;J[k+52>>2]=f;J[k+56>>2]=e+(g<<2);if(!i){break z}na(i)}d=J[a+84>>2];if((d|0)<=(b|0)){break j}J[a+84>>2]=b;d=b;break j}d=J[a+84>>2]}if((d|0)<3){continue}break}}return 1}xa();B()}qa();B()}qa();B()}qa();B()}function Ha(a){var b=0,c=0,d=0,e=0,f=0,g=0;e=ba-16|0;ba=e;J[e+12>>2]=a;a:{if(a>>>0<=211){d=J[Ke(17792,17984,e+12|0)>>2];break a}if(a>>>0>=4294967292){Z();B()}f=(a>>>0)/210|0;d=P(f,210);J[e+8>>2]=a-d;g=Ke(17984,18176,e+8|0)-17984>>2;while(1){d=J[(g<<2)+17984>>2]+d|0;a=5;while(1){b:{if((a|0)==47){a=211;while(1){b=(d>>>0)/(a>>>0)|0;if(b>>>0>>0){break a}if((P(a,b)|0)==(d|0)){break b}b=a+10|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+12|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+16|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+18|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+22|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+28|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+30|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+36|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+40|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+42|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+46|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+52|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+58|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+60|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+66|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+70|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+72|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+78|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+82|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+88|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+96|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+100|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+102|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+106|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+108|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+112|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+120|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+126|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+130|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+136|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+138|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+142|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+148|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+150|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+156|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+162|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+166|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+168|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+172|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+178|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+180|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+186|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+190|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+192|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+196|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+198|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+208|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}a=a+210|0;if((P(b,c)|0)!=(d|0)){continue}break}break b}b=J[(a<<2)+17792>>2];c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}a=a+1|0;if((P(b,c)|0)!=(d|0)){continue}}break}d=g+1|0;a=(d|0)==48;g=a?0:d;f=a+f|0;d=P(f,210);continue}}ba=e+16|0;return d}function Hd(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=Q(0),q=0,r=0,s=0,t=0,u=Q(0);f=ba-112|0;ba=f;J[f+88>>2]=0;J[f+92>>2]=0;J[f+80>>2]=0;J[f+84>>2]=0;J[f+96>>2]=1065353216;c=J[a+80>>2];J[f+40>>2]=0;J[f+32>>2]=0;J[f+36>>2]=0;a:{if(c){if(c>>>0>=1073741824){break a}h=c<<2;l=oa(h);J[f+32>>2]=l;c=h+l|0;J[f+40>>2]=c;pa(l,0,h);J[f+36>>2]=c;while(1){d=J[J[b>>2]>>2];h=J[b+48>>2];c=Hl(J[b+40>>2],J[b+44>>2],o,0);j=c;c=c+h|0;e=c+d|0;c=K[e+12|0]|K[e+13|0]<<8|(K[e+14|0]<<16|K[e+15|0]<<24);J[f+72>>2]=K[e+8|0]|K[e+9|0]<<8|(K[e+10|0]<<16|K[e+11|0]<<24);J[f+76>>2]=c;c=K[e+4|0]|K[e+5|0]<<8|(K[e+6|0]<<16|K[e+7|0]<<24);J[f+64>>2]=K[e|0]|K[e+1|0]<<8|(K[e+2|0]<<16|K[e+3|0]<<24);J[f+68>>2]=c;k=K[e+12|0]|K[e+13|0]<<8|(K[e+14|0]<<16|K[e+15|0]<<24);h=K[e+8|0]|K[e+9|0]<<8|(K[e+10|0]<<16|K[e+11|0]<<24);J[f+56>>2]=h;J[f+60>>2]=k;d=K[e+4|0]|K[e+5|0]<<8|(K[e+6|0]<<16|K[e+7|0]<<24);c=K[e|0]|K[e+1|0]<<8|(K[e+2|0]<<16|K[e+3|0]<<24);J[f+48>>2]=c;J[f+52>>2]=d;J[f+16>>2]=h;J[f+20>>2]=k;J[f+8>>2]=c;J[f+12>>2]=d;J[f+24>>2]=q;c=0;m=f+8|0;h=J[m+12>>2]^(J[m+8>>2]^(J[m+4>>2]^(J[m>>2]^318)+239)+239)+239;b:{c:{n=f+80|0;j=J[n+4>>2];if(!j){break c}d=Kl(j);d:{if(d>>>0>=2){c=h;if(c>>>0>=j>>>0){c=(h>>>0)%(j>>>0)|0}i=J[J[n>>2]+(c<<2)>>2];if(!i){break c}if(d>>>0<2){break d}k=J[m+12>>2];r=J[m+8>>2];s=J[m+4>>2];e=J[m>>2];while(1){i=J[i>>2];if(!i){break c}d=J[i+4>>2];if((d|0)!=(h|0)){if(d>>>0>=j>>>0){d=(d>>>0)%(j>>>0)|0}if((c|0)!=(d|0)){break c}}d=J[i+8>>2];e:{if((d|0)!=(e|0)){d=(d|0)==(e|0);break e}d=J[i+12>>2];if((d|0)!=(s|0)){d=(d|0)==(s|0);break e}d=J[i+16>>2];if((d|0)!=(r|0)){d=(d|0)==(r|0);break e}d=(k|0)==J[i+20>>2]}if(!d){continue}break}c=0;break b}c=h&j-1;i=J[J[n>>2]+(c<<2)>>2];if(!i){break c}}e=j-1|0;k=J[m+12>>2];t=J[m+8>>2];r=J[m+4>>2];s=J[m>>2];while(1){i=J[i>>2];if(!i){break c}d=J[i+4>>2];if((d|0)!=(h|0)&(d&e)!=(c|0)){break c}d=J[i+8>>2];f:{if((d|0)!=(s|0)){d=(d|0)==(s|0);break f}d=J[i+12>>2];if((d|0)!=(r|0)){d=(d|0)==(r|0);break f}d=J[i+16>>2];if((d|0)!=(t|0)){d=(d|0)==(t|0);break f}d=(k|0)==J[i+20>>2]}if(!d){continue}break}c=0;break b}i=oa(28);d=J[m+12>>2];J[i+16>>2]=J[m+8>>2];J[i+20>>2]=d;d=J[m+4>>2];J[i+8>>2]=J[m>>2];J[i+12>>2]=d;d=J[m+16>>2];J[i>>2]=0;J[i+4>>2]=h;J[i+24>>2]=d;p=Q(J[n+12>>2]+1>>>0);u=N[n+16>>2];g:{if(p>Q(u*Q(j>>>0))?0:j){break g}c=2;d=(j-1&j)!=0|j>>>0<3|j<<1;p=Q(W(Q(p/u)));h:{if(p=Q(0)){k=~~p>>>0;break h}k=0}d=d>>>0>k>>>0?d:k;i:{if((d|0)==1){break i}if(!(d&d-1)){c=d;break i}c=Ha(d);j=J[n+4>>2]}j:{if(c>>>0<=j>>>0){if(c>>>0>=j>>>0){break j}k=j>>>0<3;p=Q(W(Q(Q(M[n+12>>2])/N[n+16>>2])));k:{if(p=Q(0)){d=~~p>>>0;break k}d=0}l:{m:{if(k){break m}if(Kl(j)>>>0>1){break m}d=d>>>0<2?d:1<<32-S(d-1|0);break l}d=Ha(d)}c=c>>>0>d>>>0?c:d;if(j>>>0<=c>>>0){break j}}db(n,c)}j=J[n+4>>2];c=j-1|0;if(!(c&j)){c=c&h;break g}if(h>>>0>>0){c=h;break g}c=(h>>>0)%(j>>>0)|0}h=J[n>>2]+(c<<2)|0;c=J[h>>2];n:{o:{if(!c){c=n+8|0;J[i>>2]=J[c>>2];J[n+8>>2]=i;J[h>>2]=c;c=J[i>>2];if(!c){break n}c=J[c+4>>2];h=j-1|0;p:{if(!(h&j)){c=c&h;break p}if(c>>>0>>0){break p}c=(c>>>0)%(j>>>0)|0}c=J[n>>2]+(c<<2)|0;break o}J[i>>2]=J[c>>2]}J[c>>2]=i}J[n+12>>2]=J[n+12>>2]+1;c=1}H[f+108|0]=c;J[f+104>>2]=i;q:{if(!K[f+108|0]){J[(o<<2)+l>>2]=J[J[f+104>>2]+24>>2];break q}c=J[a+40>>2];ua(J[J[a>>2]>>2]+P(c,q)|0,f- -64|0,c);l=J[f+32>>2];J[l+(o<<2)>>2]=q;q=q+1|0}o=o+1|0;g=o?g:g+1|0;e=J[a+80>>2];if(!g&o>>>0>>0){continue}break}if((e|0)!=(q|0)){r:{if(!K[a+84|0]){b=J[a+72>>2];e=J[a+68>>2];if((b|0)==(e|0)){break r}b=b-e>>2;g=b>>>0<=1?1:b;h=g&3;c=0;b=0;if(g-1>>>0>=3){o=g&-4;k=0;while(1){d=b<<2;g=d+e|0;J[g>>2]=J[(J[g>>2]<<2)+l>>2];g=e+(d|4)|0;J[g>>2]=J[(J[g>>2]<<2)+l>>2];g=e+(d|8)|0;J[g>>2]=J[(J[g>>2]<<2)+l>>2];g=e+(d|12)|0;J[g>>2]=J[(J[g>>2]<<2)+l>>2];b=b+4|0;k=k+4|0;if((o|0)!=(k|0)){continue}break}}if(!h){break r}while(1){g=e+(b<<2)|0;J[g>>2]=J[(J[g>>2]<<2)+l>>2];b=b+1|0;c=c+1|0;if((h|0)!=(c|0)){continue}break}break r}H[a+84|0]=0;g=a+68|0;b=J[a+68>>2];c=J[a+72>>2]-b>>2;s:{if(c>>>0>>0){Ma(g,e-c|0,2176);e=J[a+80>>2];break s}if(c>>>0<=e>>>0){break s}J[a+72>>2]=b+(e<<2)}if(!e){break r}d=J[g>>2];c=0;b=0;if(e>>>0>=4){o=e&-4;k=0;while(1){h=b<<2;J[h+d>>2]=J[h+l>>2];g=h|4;J[g+d>>2]=J[g+l>>2];g=h|8;J[g+d>>2]=J[g+l>>2];g=h|12;J[g+d>>2]=J[g+l>>2];b=b+4|0;k=k+4|0;if((o|0)!=(k|0)){continue}break}}o=e&3;if(!o){break r}while(1){g=b<<2;J[g+d>>2]=J[g+l>>2];b=b+1|0;c=c+1|0;if((o|0)!=(c|0)){continue}break}}J[a+80>>2]=q}na(l)}b=J[f+88>>2];if(b){while(1){a=J[b>>2];na(b);b=a;if(b){continue}break}}a=J[f+80>>2];J[f+80>>2]=0;if(a){na(a)}ba=f+112|0;return q}qa();B()}function ll(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;h=ba-32|0;ba=h;a:{b:{if(!J[J[a+8>>2]+80>>2]){e=1;break b}H[h+31|0]=254;d=J[a+36>>2];if(d){if(!(da[J[J[a>>2]+40>>2]](a,d)|0)){break b}d=J[a+36>>2];n=h,o=da[J[J[d>>2]+8>>2]](d)|0,H[n+31|0]=o}d=J[c+20>>2];if(!J[c+16>>2]&(d|0)<=0|(d|0)<0){sa(c,J[c+4>>2],h+31|0,h+32|0)}d=J[a+36>>2];c:{if(!d){break c}n=h,o=da[J[J[d>>2]+36>>2]](d)|0,H[n+16|0]=o;d=J[c+20>>2];if(!!J[c+16>>2]&(d|0)>=0|(d|0)>0){break c}sa(c,J[c+4>>2],h+16|0,h+17|0)}d=J[a+32>>2];e=J[d+48>>2];f=J[J[d>>2]>>2];g=J[d+80>>2];k=K[d+24|0];J[h+24>>2]=0;J[h+16>>2]=0;J[h+20>>2]=0;g=P(g,k);if(g){if(g>>>0>=1073741824){break a}d=g<<2;i=oa(d);pa(i,0,d)}d=e+f|0;f=J[a+36>>2];d:{e:{f:{if(!f){break f}e=0;if(!(da[J[J[f>>2]+44>>2]](f,d,i,g,k,J[b>>2])|0)){break d}e=J[a+36>>2];if(!e){break f}if(da[J[J[e>>2]+32>>2]](e)|0){break e}d=J[a+36>>2]?i:d}e=0;f=0;g:{if((g|0)<=0){break g}if((g|0)!=1){m=g&-2;while(1){l=e<<2;j=J[l+d>>2];J[i+l>>2]=(j|0)<0?(j^-1)<<1|1:j<<1;l=l|4;j=J[l+d>>2];J[i+l>>2]=(j|0)<0?(j^-1)<<1|1:j<<1;e=e+2|0;f=f+2|0;if((m|0)!=(f|0)){continue}break}}if(!(g&1)){break g}e=e<<2;d=J[e+d>>2];J[e+i>>2]=(d|0)<0?(d^-1)<<1|1:d<<1}}h:{i:{j:{k:{d=J[a+4>>2];if(!d){break k}j=J[d+48>>2];d=oa(48);J[h>>2]=d;J[h+4>>2]=34;J[h+8>>2]=-2147483600;e=K[1411]|K[1412]<<8;H[d+32|0]=e;H[d+33|0]=e>>>8;e=K[1407]|K[1408]<<8|(K[1409]<<16|K[1410]<<24);f=K[1403]|K[1404]<<8|(K[1405]<<16|K[1406]<<24);H[d+24|0]=f;H[d+25|0]=f>>>8;H[d+26|0]=f>>>16;H[d+27|0]=f>>>24;H[d+28|0]=e;H[d+29|0]=e>>>8;H[d+30|0]=e>>>16;H[d+31|0]=e>>>24;e=K[1399]|K[1400]<<8|(K[1401]<<16|K[1402]<<24);f=K[1395]|K[1396]<<8|(K[1397]<<16|K[1398]<<24);H[d+16|0]=f;H[d+17|0]=f>>>8;H[d+18|0]=f>>>16;H[d+19|0]=f>>>24;H[d+20|0]=e;H[d+21|0]=e>>>8;H[d+22|0]=e>>>16;H[d+23|0]=e>>>24;e=K[1391]|K[1392]<<8|(K[1393]<<16|K[1394]<<24);f=K[1387]|K[1388]<<8|(K[1389]<<16|K[1390]<<24);H[d+8|0]=f;H[d+9|0]=f>>>8;H[d+10|0]=f>>>16;H[d+11|0]=f>>>24;H[d+12|0]=e;H[d+13|0]=e>>>8;H[d+14|0]=e>>>16;H[d+15|0]=e>>>24;e=K[1383]|K[1384]<<8|(K[1385]<<16|K[1386]<<24);f=K[1379]|K[1380]<<8|(K[1381]<<16|K[1382]<<24);H[d|0]=f;H[d+1|0]=f>>>8;H[d+2|0]=f>>>16;H[d+3|0]=f>>>24;H[d+4|0]=e;H[d+5|0]=e>>>8;H[d+6|0]=e>>>16;H[d+7|0]=e>>>24;H[d+34|0]=0;d=Pb(j,h,1);if(H[h+11|0]<0){na(J[h>>2])}if(d){break k}if(!g){break j}d=0;e=0;b=0;if(g>>>0>=4){j=g&-4;f=0;while(1){k=e<<2;b=J[(k|12)+i>>2]|(J[(k|8)+i>>2]|(J[(k|4)+i>>2]|(J[i+k>>2]|b)));e=e+4|0;f=f+4|0;if((j|0)!=(f|0)){continue}break}}f=g&3;if(f){while(1){b=J[(e<<2)+i>>2]|b;e=e+1|0;d=d+1|0;if((f|0)!=(d|0)){continue}break}}if(!b){break j}d=4-(S(b)>>>3|0)|0;break i}H[h|0]=1;d=J[c+20>>2];if(!J[c+16>>2]&(d|0)<=0|(d|0)<0){sa(c,J[c+4>>2],h,h+1|0)}J[h>>2]=h|4;J[h+4>>2]=0;J[h+8>>2]=0;d=J[a+4>>2];if(d){j=10-cb(J[d+48>>2])|0;e=ba-16|0;ba=e;l:{if(j>>>0>10){break l}d=oa(48);J[e>>2]=d;J[e+4>>2]=33;J[e+8>>2]=-2147483600;H[d+32|0]=K[1470];g=K[1466]|K[1467]<<8|(K[1468]<<16|K[1469]<<24);f=K[1462]|K[1463]<<8|(K[1464]<<16|K[1465]<<24);H[d+24|0]=f;H[d+25|0]=f>>>8;H[d+26|0]=f>>>16;H[d+27|0]=f>>>24;H[d+28|0]=g;H[d+29|0]=g>>>8;H[d+30|0]=g>>>16;H[d+31|0]=g>>>24;g=K[1458]|K[1459]<<8|(K[1460]<<16|K[1461]<<24);f=K[1454]|K[1455]<<8|(K[1456]<<16|K[1457]<<24);H[d+16|0]=f;H[d+17|0]=f>>>8;H[d+18|0]=f>>>16;H[d+19|0]=f>>>24;H[d+20|0]=g;H[d+21|0]=g>>>8;H[d+22|0]=g>>>16;H[d+23|0]=g>>>24;g=K[1450]|K[1451]<<8|(K[1452]<<16|K[1453]<<24);f=K[1446]|K[1447]<<8|(K[1448]<<16|K[1449]<<24);H[d+8|0]=f;H[d+9|0]=f>>>8;H[d+10|0]=f>>>16;H[d+11|0]=f>>>24;H[d+12|0]=g;H[d+13|0]=g>>>8;H[d+14|0]=g>>>16;H[d+15|0]=g>>>24;g=K[1442]|K[1443]<<8|(K[1444]<<16|K[1445]<<24);f=K[1438]|K[1439]<<8|(K[1440]<<16|K[1441]<<24);H[d|0]=f;H[d+1|0]=f>>>8;H[d+2|0]=f>>>16;H[d+3|0]=f>>>24;H[d+4|0]=g;H[d+5|0]=g>>>8;H[d+6|0]=g>>>16;H[d+7|0]=g>>>24;H[d+33|0]=0;vb(h,e,j);if(H[e+11|0]>=0){break l}na(J[e>>2])}ba=e+16|0}b=ee(i,P(k,J[b+4>>2]-J[b>>2]>>2),k,h,c);Da(h,J[h+4>>2]);e=0;if(b){break h}break d}d=1}H[h|0]=0;b=J[c+20>>2];m:{if(!!J[c+16>>2]&(b|0)>=0|(b|0)>0){break m}e=h+1|0;sa(c,J[c+4>>2],h,e);f=J[c+16>>2];b=J[c+20>>2];H[h|0]=d;if(!!f&(b|0)>=0|(b|0)>0){break m}sa(c,J[c+4>>2],h,e)}n:{if((d|0)!=J[3712]){if(!g){break h}e=J[c+20>>2];f=e;b=J[c+16>>2];if(!!b&(e|0)>=0|(e|0)>0){break h}e=0;break n}b=J[c+20>>2];if(!!J[c+16>>2]&(b|0)>=0|(b|0)>0){break h}sa(c,J[c+4>>2],i,(g<<2)+i|0);break h}while(1){if(!b&(f|0)<=0|(f|0)<0){b=(e<<2)+i|0;sa(c,J[c+4>>2],b,b+d|0)}e=e+1|0;if((g|0)==(e|0)){break h}b=J[c+16>>2];f=J[c+20>>2];continue}}e=1;a=J[a+36>>2];if(!a){break d}da[J[J[a>>2]+40>>2]](a,c)|0}if(!i){break b}na(i)}ba=h+32|0;return e|0}qa();B()}function Ea(a,b,c,d,e,f,g,h,i){var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0;k=ba-96|0;ba=k;u=i&65535;o=(e^i)&-2147483648;q=e&65535;z=q;Q=i>>>16&32767;R=e>>>16&32767;a:{b:{if(Q-32767>>>0>4294934529&R-32767>>>0>=4294934530){break b}s=e&2147483647;r=s;j=d;if(!(!d&(r|0)==2147418112?!(b|c):r>>>0<2147418112)){m=d;o=e|32768;break a}s=i&2147483647;p=s;e=h;if(!(!e&(p|0)==2147418112?!(f|g):p>>>0<2147418112)){m=h;o=i|32768;b=f;c=g;break a}if(!(b|j|(r^2147418112|c))){if(!(e|f|(g|p))){o=2147450880;b=0;c=0;break a}o=o|2147418112;b=0;c=0;break a}if(!(e|f|(p^2147418112|g))){e=b|j;d=c|r;b=0;c=0;if(!(d|e)){o=2147450880;break a}o=o|2147418112;break a}if(!(b|j|(c|r))){b=0;c=0;break a}if(!(e|f|(g|p))){b=0;c=0;break a}if((r|0)==65535|r>>>0<65535){j=!(d|q);i=j?b:d;s=j<<6;e=S(i)+32|0;i=S(j?c:q);i=s+((i|0)==32?e:i)|0;Pa(k+80|0,b,c,d,q,i-15|0);t=16-i|0;d=J[k+88>>2];z=J[k+92>>2];c=J[k+84>>2];b=J[k+80>>2]}if(p>>>0>65535){break b}i=!(h|u);e=i?f:h;q=i<<6;j=S(e)+32|0;e=S(i?g:u);e=q+((e|0)==32?j:e)|0;Pa(k- -64|0,f,g,h,u,e-15|0);t=(t-e|0)+16|0;h=J[k+72>>2];u=J[k+76>>2];f=J[k+64>>2];g=J[k+68>>2]}e=f;f=g<<15|f>>>17;i=e<<15;e=0;v=i&-32768;K=c;s=Hl(v,e,c,0);e=ca;y=e;L=f;r=b;b=Hl(f,0,b,0);i=b+s|0;f=ca+e|0;c=b>>>0>i>>>0?f+1|0:f;j=0;b=Hl(r,l,v,l);p=j+b|0;f=i;e=f+ca|0;e=b>>>0>p>>>0?e+1|0:e;q=e;M=(f|0)==(e|0)&j>>>0>p>>>0|e>>>0>>0;N=d;w=Hl(v,l,d,0);O=ca;b=Hl(K,l,L,l);x=b+w|0;j=ca+O|0;j=b>>>0>x>>>0?j+1|0:j;b=u<<15|h>>>17;A=h<<15|g>>>17;d=Hl(A,0,r,l);B=d+x|0;f=ca+j|0;f=d>>>0>B>>>0?f+1|0:f;C=f;d=(c|0)==(y|0)&i>>>0>>0|c>>>0>>0;D=c+B|0;f=d+f|0;f=c>>>0>D>>>0?f+1|0:f;u=f;g=D;c=f;E=z|65536;z=Hl(v,l,E,n);P=ca;d=Hl(N,m,L,l);F=d+z|0;e=ca+P|0;e=d>>>0>F>>>0?e+1|0:e;i=e;G=b|-2147483648;b=Hl(G,0,r,l);H=b+F|0;f=ca+e|0;f=b>>>0>H>>>0?f+1|0:f;b=Hl(A,m,K,l);y=b+H|0;I=f;f=f+ca|0;s=b>>>0>y>>>0?f+1|0:f;b=0;r=b+g|0;e=c+y|0;v=b>>>0>r>>>0?e+1|0:e;f=v;b=r+M|0;c=b>>>0>>0?f+1|0:f;t=((R+Q|0)+t|0)-16383|0;d=Hl(G,m,K,l);h=ca;e=Hl(E,m,L,l);g=e+d|0;f=ca+h|0;f=e>>>0>g>>>0?f+1|0:f;n=(h|0)==(f|0)&d>>>0>g>>>0|f>>>0>>0;h=f;e=Hl(A,m,N,m);d=e+g|0;f=ca+f|0;f=d>>>0>>0?f+1|0:f;e=f;g=(f|0)==(h|0)&d>>>0>>0|f>>>0>>0;f=0;h=g;g=g+n|0;f=h>>>0>g>>>0?1:f;h=g;g=Hl(G,m,E,m);h=h+g|0;f=ca+f|0;M=h;g=g>>>0>h>>>0?f+1|0:f;h=d;l=e;e=(j|0)==(O|0)&w>>>0>x>>>0|j>>>0>>0;f=0;j=(j|0)==(C|0)&x>>>0>B>>>0|j>>>0>C>>>0;n=j;j=e+j|0;e=(n>>>0>j>>>0?1:f)+l|0;f=g;d=d+j|0;e=d>>>0>>0?e+1|0:e;n=e;w=d;d=(e|0)==(l|0)&d>>>0>>0|e>>>0>>0;e=d;d=d+M|0;f=e>>>0>d>>>0?f+1|0:f;j=d;g=f;e=Hl(A,m,E,m);l=ca;d=Hl(G,m,N,m);h=d+e|0;f=ca+l|0;f=d>>>0>h>>>0?f+1|0:f;d=f;f=(l|0)==(f|0)&e>>>0>h>>>0|f>>>0>>0;x=d+j|0;e=f+g|0;e=d>>>0>x>>>0?e+1|0:e;l=x;g=e;e=0;d=e+w|0;f=h+n|0;f=d>>>0>>0?f+1|0:f;e=f;h=(n|0)==(f|0)&d>>>0>>0|f>>>0>>0;f=g;g=h+l|0;f=g>>>0>>0?f+1|0:f;w=g;g=f;h=d;j=e;e=(s|0)==(I|0)&y>>>0>>0|s>>>0>>0;d=(i|0)==(P|0)&z>>>0>F>>>0|i>>>0

>>0;i=(i|0)==(I|0)&F>>>0>H>>>0|i>>>0>I>>>0;d=d+i|0;d=d+e|0;n=s;i=n+h|0;e=d+j|0;f=g;d=i;e=d>>>0>>0?e+1|0:e;h=(e|0)==(j|0)&h>>>0>d>>>0|e>>>0>>0;g=h+w|0;f=h>>>0>g>>>0?f+1|0:f;j=g;g=f;h=d;f=0;i=e;n=(u|0)==(v|0)&r>>>0>>0|u>>>0>v>>>0;l=n;n=n+((u|0)==(C|0)&B>>>0>D>>>0|u>>>0>>0)|0;e=e+(l>>>0>n>>>0?1:f)|0;f=g;d=d+n|0;e=d>>>0>>0?e+1|0:e;h=(e|0)==(i|0)&d>>>0>>0|e>>>0>>0;g=h;h=h+j|0;f=g>>>0>h>>>0?f+1|0:f;i=f;c:{if(f&65536){t=t+1|0;break c}j=q>>>31|0;g=0;f=i<<1|h>>>31;h=h<<1|e>>>31;i=f;f=e<<1|d>>>31;d=d<<1|c>>>31;e=f;f=q<<1|p>>>31;p=p<<1;q=f;f=c<<1|b>>>31;b=b<<1|j;c=f|g}if((t|0)>=32767){o=o|2147418112;b=0;c=0;break a}d:{if((t|0)<=0){g=1-t|0;if(g>>>0<=127){f=t+127|0;Pa(k+48|0,p,q,b,c,f);Pa(k+32|0,d,e,h,i,f);Gb(k+16|0,p,q,b,c,g);Gb(k,d,e,h,i,g);p=J[k+32>>2]|J[k+16>>2]|(J[k+48>>2]|J[k+56>>2]|(J[k+52>>2]|J[k+60>>2]))!=0;q=J[k+36>>2]|J[k+20>>2];b=J[k+40>>2]|J[k+24>>2];c=J[k+44>>2]|J[k+28>>2];d=J[k>>2];e=J[k+4>>2];g=J[k+8>>2];f=J[k+12>>2];break d}b=0;c=0;break a}g=h;f=i&65535|t<<16}m=g|m;o=f|o;if(!(!b&(c|0)==-2147483648?!(p|q):(c|0)>0|(c|0)>=0)){b=d+1|0;c=b?e:e+1|0;d=(e|0)==(c|0)&b>>>0>>0|c>>>0>>0;e=o;m=d+m|0;o=m>>>0>>0?e+1|0:e;break a}if(b|p|(c^-2147483648|q)){b=d;c=e;break a}j=o;f=e;b=d&1;c=b;b=b+d|0;c=c>>>0>b>>>0?f+1|0:f;d=(f|0)==(c|0)&b>>>0>>0|c>>>0>>0;m=d+m|0;o=d>>>0>m>>>0?j+1|0:j}J[a>>2]=b;J[a+4>>2]=c;J[a+8>>2]=m;J[a+12>>2]=o;ba=k+96|0}function ej(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;o=ba-16|0;ba=o;a:{if(!(da[J[J[a>>2]+32>>2]](a)|0)){break a}e=J[a+44>>2];c=J[a+12>>2];b=J[a+8>>2];H[o+15|0]=c-b>>>2;d=J[e+20>>2];if(!J[e+16>>2]&(d|0)<=0|(d|0)<0){sa(e,J[e+4>>2],o+15|0,o+16|0);c=J[a+12>>2];b=J[a+8>>2]}if((b|0)!=(c|0)){while(1){e=J[b>>2];if(!(da[J[J[e>>2]+8>>2]](e,a,J[a+4>>2])|0)){break a}b=b+4|0;if((c|0)!=(b|0)){continue}break}}f=ba-48|0;ba=f;e=a;q=a+32|0;g=J[a+12>>2];a=J[a+8>>2];d=g-a|0;c=d>>2;h=J[e+32>>2];b=J[e+36>>2]-h>>2;b:{if(c>>>0>b>>>0){Fa(q,c-b|0);g=J[e+12>>2];a=J[e+8>>2];d=g-a|0;c=d>>2;break b}if(b>>>0<=c>>>0){break b}J[e+36>>2]=h+(c<<2)}J[f+40>>2]=0;J[f+32>>2]=0;J[f+36>>2]=0;b=a;c:{d:{if((a|0)!=(g|0)){if((d|0)<0){break d}a=(c-1>>>5|0)+1|0;b=oa(a<<2);J[f+40>>2]=a;J[f+36>>2]=0;J[f+32>>2]=b;mc(f+32|0,c);b=J[e+12>>2];a=J[e+8>>2]}e:{while(1){f:{c=b-a>>2;if(k>>>0>>0){g=(a|0)!=(b|0);m=0;b=a;d=0;if(!g){break f}while(1){i=J[f+32>>2];n=d>>>5<<2;h=J[i+n>>2];p=1<>2];c=J[g+4>>2];if((c|0)!=J[g+8>>2]){while(1){a=0;c=J[(b<<2)+c>>2];h:{if((da[J[J[g>>2]+24>>2]](g,c)|0)<=0){break h}while(1){i:{g=J[l+J[e+8>>2]>>2];g=da[J[J[g>>2]+28>>2]](g,c,a)|0;if((g|0)==(d|0)){break i}g=J[J[e+20>>2]+(g<<2)>>2];if(J[J[f+32>>2]+(g>>>3&536870908)>>2]>>>g&1){break i}j=0;break h}g=J[l+J[e+8>>2]>>2];a=a+1|0;if((da[J[J[g>>2]+24>>2]](g,c)|0)>(a|0)){continue}break}}a=J[e+8>>2];g=J[l+a>>2];c=J[g+4>>2];b=b+1|0;if(b>>>0>2]-c>>2>>>0){continue}break}if(!j){break g}i=J[f+32>>2];h=J[n+i>>2]}J[J[q>>2]+(k<<2)>>2]=d;J[i+n>>2]=h|p;m=1;k=k+1|0}b=J[e+12>>2];c=b-a>>2;d=d+1|0;if(c>>>0>d>>>0){continue}break}break f}m=0;J[f+24>>2]=0;J[f+16>>2]=0;J[f+20>>2]=0;d=J[e+4>>2];c=J[d+12>>2];d=J[d+8>>2];J[f+8>>2]=0;J[f>>2]=0;J[f+4>>2]=0;j:{k:{l:{if((c|0)!=(d|0)){a=c-d|0;if((a|0)<0){break l}a=a>>2;b=(a-1>>>5|0)+1|0;c=oa(b<<2);J[f+8>>2]=b;J[f+4>>2]=0;J[f>>2]=c;mc(f,a);b=J[e+12>>2];a=J[e+8>>2]}m:{if((a|0)==(b|0)){b=1;break m}while(1){g=J[J[q>>2]+(m<<2)>>2]<<2;b=J[g+a>>2];b=J[b+8>>2]-J[b+4>>2]|0;n:{if((b|0)<8){break n}c=b>>2;b=J[f+16>>2];a=J[f+20>>2]-b>>2;o:{if(c>>>0>a>>>0){Fa(f+16|0,c-a|0);break o}if(a>>>0<=c>>>0){break o}J[f+20>>2]=b+(c<<2)}i=(c|0)<=1?1:c;h=0;p:{while(1){if((c|0)<=(h|0)){break p}b=0;d=J[f>>2];j=0;while(1){p=1<>>5<<2;q:{if(p&J[n+d>>2]){break q}a=0;d=J[g+J[e+8>>2]>>2];k=J[J[d+4>>2]+(b<<2)>>2];if((da[J[J[d>>2]+24>>2]](d,k)|0)>0){while(1){d=J[g+J[e+8>>2]>>2];l=da[J[J[d>>2]+28>>2]](d,k,a)|0;d=J[f>>2];if(!(J[d+(l>>>3&536870908)>>2]>>>l&1)){break q}d=J[g+J[e+8>>2]>>2];a=a+1|0;if((da[J[J[d>>2]+24>>2]](d,k)|0)>(a|0)){continue}break}}J[J[f+16>>2]+(h<<2)>>2]=b;d=J[f>>2];a=n+d|0;J[a>>2]=p|J[a>>2];j=1;h=h+1|0}b=b+1|0;if((i|0)!=(b|0)){continue}break}if((c|0)<=(h|0)|j){continue}break}b=0;break m}a=J[e+8>>2];b=J[g+a>>2];d=J[b+4>>2];J[b+8>>2]=d;J[b+20>>2]=J[b+16>>2];g=J[f+16>>2];l=J[f+20>>2];if((g|0)==(l|0)){break n}k=b+16|0;c=d;while(1){a=J[g>>2];r:{if(J[b+12>>2]!=(c|0)){J[c>>2]=a;J[b+8>>2]=c+4;break r}c=c-d|0;i=c>>2;h=i+1|0;if(h>>>0>=1073741824){break k}j=c>>>1|0;h=c>>>0>=2147483644?1073741823:h>>>0>>0?j:h;if(h){if(h>>>0>=1073741824){break j}j=oa(h<<2)}else{j=0}i=j+(i<<2)|0;J[i>>2]=a;c=ta(j,d,c);J[b+12>>2]=c+(h<<2);J[b+8>>2]=i+4;J[b+4>>2]=c;if(!d){break r}na(d)}c=J[b+16>>2];d=J[b+20>>2]-c>>2;s:{if((d|0)>(a|0)){break s}J[f+44>>2]=-1;h=a+1|0;if(h>>>0>d>>>0){jc(k,h-d|0,f+44|0);c=J[k>>2];break s}if(d>>>0<=h>>>0){break s}J[b+20>>2]=(h<<2)+c}a=(a<<2)+c|0;c=J[b+8>>2];d=J[b+4>>2];J[a>>2]=(c-d>>2)-1;g=g+4|0;if((l|0)!=(g|0)){continue}break}a=J[e+8>>2]}b=1;m=m+1|0;if(m>>>0>2]-a>>2>>>0){continue}break}}a=J[f>>2];if(a){na(a)}a=J[f+16>>2];if(!a){break e}J[f+20>>2]=a;na(a);break e}qa();B()}qa();B()}xa();B()}if(m&1|c>>>0<=k>>>0){continue}break}b=0}a=J[f+32>>2];if(a){na(a)}ba=f+48|0;break c}qa();B()}if(!b){break a}b=J[e+32>>2];a=J[e+36>>2];t:{if((b|0)==(a|0)){break t}while(1){if(!(da[J[J[e>>2]+40>>2]](e,J[b>>2])|0)){break a}b=b+4|0;if((a|0)!=(b|0)){continue}break}b=J[e+32>>2];a=J[e+36>>2];if((b|0)==(a|0)){break t}while(1){c=J[J[e+8>>2]+(J[b>>2]<<2)>>2];if(!(da[J[J[c>>2]+12>>2]](c,J[e+44>>2])|0)){break a}b=b+4|0;if((a|0)!=(b|0)){continue}break}}r=da[J[J[e>>2]+44>>2]](e)|0}ba=o+16|0;return r|0}function Id(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=Q(0),p=0,q=0,r=0,s=Q(0);f=ba-96|0;ba=f;J[f+72>>2]=0;J[f+76>>2]=0;J[f+64>>2]=0;J[f+68>>2]=0;J[f+80>>2]=1065353216;c=J[a+80>>2];J[f+24>>2]=0;J[f+16>>2]=0;J[f+20>>2]=0;a:{if(c){if(c>>>0>=1073741824){break a}e=c<<2;k=oa(e);J[f+16>>2]=k;c=e+k|0;J[f+24>>2]=c;pa(k,0,e);J[f+20>>2]=c;while(1){d=J[J[b>>2]>>2];e=J[b+48>>2];c=Hl(J[b+40>>2],J[b+44>>2],n,0);h=c;c=c+e|0;e=c+d|0;J[f+56>>2]=K[e+8|0]|K[e+9|0]<<8|(K[e+10|0]<<16|K[e+11|0]<<24);c=K[e+4|0]|K[e+5|0]<<8|(K[e+6|0]<<16|K[e+7|0]<<24);J[f+48>>2]=K[e|0]|K[e+1|0]<<8|(K[e+2|0]<<16|K[e+3|0]<<24);J[f+52>>2]=c;c=K[e+8|0]|K[e+9|0]<<8|(K[e+10|0]<<16|K[e+11|0]<<24);J[f+40>>2]=c;d=K[e+4|0]|K[e+5|0]<<8|(K[e+6|0]<<16|K[e+7|0]<<24);e=K[e|0]|K[e+1|0]<<8|(K[e+2|0]<<16|K[e+3|0]<<24);J[f+32>>2]=e;J[f+36>>2]=d;J[f+8>>2]=c;J[f>>2]=e;J[f+4>>2]=d;J[f+12>>2]=p;c=0;e=J[f+8>>2]^(J[f+4>>2]^(J[f>>2]^318)+239)+239;b:{c:{m=f- -64|0;h=J[m+4>>2];if(!h){break c}d=Kl(h);d:{if(d>>>0>=2){c=e;if(e>>>0>=h>>>0){c=(e>>>0)%(h>>>0)|0}i=J[J[m>>2]+(c<<2)>>2];if(!i){break c}if(d>>>0<2){break d}l=J[f+8>>2];q=J[f+4>>2];j=J[f>>2];while(1){i=J[i>>2];if(!i){break c}d=J[i+4>>2];if((d|0)!=(e|0)){if(d>>>0>=h>>>0){d=(d>>>0)%(h>>>0)|0}if((c|0)!=(d|0)){break c}}d=J[i+8>>2];e:{if((d|0)!=(j|0)){d=(d|0)==(j|0);break e}d=J[i+12>>2];if((d|0)!=(q|0)){d=(d|0)==(q|0);break e}d=(l|0)==J[i+16>>2]}if(!d){continue}break}c=0;break b}c=e&h-1;i=J[J[m>>2]+(c<<2)>>2];if(!i){break c}}j=h-1|0;l=J[f+8>>2];r=J[f+4>>2];q=J[f>>2];while(1){i=J[i>>2];if(!i){break c}d=J[i+4>>2];if((d|0)!=(e|0)&(d&j)!=(c|0)){break c}d=J[i+8>>2];f:{if((d|0)!=(q|0)){d=(d|0)==(q|0);break f}d=J[i+12>>2];if((d|0)!=(r|0)){d=(d|0)==(r|0);break f}d=(l|0)==J[i+16>>2]}if(!d){continue}break}c=0;break b}i=oa(24);J[i+16>>2]=J[f+8>>2];d=J[f+4>>2];J[i+8>>2]=J[f>>2];J[i+12>>2]=d;d=J[f+12>>2];J[i>>2]=0;J[i+4>>2]=e;J[i+20>>2]=d;o=Q(J[m+12>>2]+1>>>0);s=N[m+16>>2];g:{if(o>Q(s*Q(h>>>0))?0:h){break g}c=2;d=(h-1&h)!=0|h>>>0<3|h<<1;o=Q(W(Q(o/s)));h:{if(o=Q(0)){l=~~o>>>0;break h}l=0}d=d>>>0>l>>>0?d:l;i:{if((d|0)==1){break i}if(!(d&d-1)){c=d;break i}c=Ha(d);h=J[m+4>>2]}j:{if(c>>>0<=h>>>0){if(c>>>0>=h>>>0){break j}l=h>>>0<3;o=Q(W(Q(Q(M[m+12>>2])/N[m+16>>2])));k:{if(o=Q(0)){d=~~o>>>0;break k}d=0}l:{m:{if(l){break m}if(Kl(h)>>>0>1){break m}d=d>>>0<2?d:1<<32-S(d-1|0);break l}d=Ha(d)}c=c>>>0>d>>>0?c:d;if(h>>>0<=c>>>0){break j}}db(m,c)}h=J[m+4>>2];c=h-1|0;if(!(c&h)){c=c&e;break g}if(e>>>0>>0){c=e;break g}c=(e>>>0)%(h>>>0)|0}e=J[m>>2]+(c<<2)|0;c=J[e>>2];n:{o:{if(!c){c=m+8|0;J[i>>2]=J[c>>2];J[m+8>>2]=i;J[e>>2]=c;c=J[i>>2];if(!c){break n}c=J[c+4>>2];e=h-1|0;p:{if(!(e&h)){c=c&e;break p}if(c>>>0>>0){break p}c=(c>>>0)%(h>>>0)|0}c=J[m>>2]+(c<<2)|0;break o}J[i>>2]=J[c>>2]}J[c>>2]=i}J[m+12>>2]=J[m+12>>2]+1;c=1}H[f+92|0]=c;J[f+88>>2]=i;q:{if(!K[f+92|0]){J[(n<<2)+k>>2]=J[J[f+88>>2]+20>>2];break q}c=J[a+40>>2];ua(J[J[a>>2]>>2]+P(c,p)|0,f+48|0,c);k=J[f+16>>2];J[k+(n<<2)>>2]=p;p=p+1|0}n=n+1|0;g=n?g:g+1|0;j=J[a+80>>2];if(!g&n>>>0>>0){continue}break}if((j|0)!=(p|0)){r:{if(!K[a+84|0]){b=J[a+72>>2];j=J[a+68>>2];if((b|0)==(j|0)){break r}b=b-j>>2;g=b>>>0<=1?1:b;e=g&3;c=0;b=0;if(g-1>>>0>=3){n=g&-4;l=0;while(1){d=b<<2;g=d+j|0;J[g>>2]=J[(J[g>>2]<<2)+k>>2];g=j+(d|4)|0;J[g>>2]=J[(J[g>>2]<<2)+k>>2];g=j+(d|8)|0;J[g>>2]=J[(J[g>>2]<<2)+k>>2];g=j+(d|12)|0;J[g>>2]=J[(J[g>>2]<<2)+k>>2];b=b+4|0;l=l+4|0;if((n|0)!=(l|0)){continue}break}}if(!e){break r}while(1){g=j+(b<<2)|0;J[g>>2]=J[(J[g>>2]<<2)+k>>2];b=b+1|0;c=c+1|0;if((e|0)!=(c|0)){continue}break}break r}H[a+84|0]=0;g=a+68|0;b=J[a+68>>2];c=J[a+72>>2]-b>>2;s:{if(c>>>0>>0){Ma(g,j-c|0,2176);j=J[a+80>>2];break s}if(c>>>0<=j>>>0){break s}J[a+72>>2]=b+(j<<2)}if(!j){break r}d=J[g>>2];c=0;b=0;if(j>>>0>=4){n=j&-4;l=0;while(1){e=b<<2;J[e+d>>2]=J[e+k>>2];g=e|4;J[g+d>>2]=J[g+k>>2];g=e|8;J[g+d>>2]=J[g+k>>2];g=e|12;J[g+d>>2]=J[g+k>>2];b=b+4|0;l=l+4|0;if((n|0)!=(l|0)){continue}break}}n=j&3;if(!n){break r}while(1){g=b<<2;J[g+d>>2]=J[g+k>>2];b=b+1|0;c=c+1|0;if((n|0)!=(c|0)){continue}break}}J[a+80>>2]=p}na(k)}b=J[f+72>>2];if(b){while(1){a=J[b>>2];na(b);b=a;if(b){continue}break}}a=J[f+64>>2];J[f+64>>2]=0;if(a){na(a)}ba=f+96|0;return p}qa();B()}function jj(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;j=ba-16|0;ba=j;c=J[b+56>>2];f=J[c+100>>2];e=J[c+96>>2];d=(f-e|0)/12|0;Aa(d,J[b+44>>2]);Aa(J[J[b+56>>2]+80>>2],J[b+44>>2]);k=J[b+48>>2];c=oa(32);J[j>>2]=c;J[j+4>>2]=21;J[j+8>>2]=-2147483616;g=K[1149]|K[1150]<<8|(K[1151]<<16|K[1152]<<24);i=K[1145]|K[1146]<<8|(K[1147]<<16|K[1148]<<24);H[c+13|0]=i;H[c+14|0]=i>>>8;H[c+15|0]=i>>>16;H[c+16|0]=i>>>24;H[c+17|0]=g;H[c+18|0]=g>>>8;H[c+19|0]=g>>>16;H[c+20|0]=g>>>24;g=K[1144]|K[1145]<<8|(K[1146]<<16|K[1147]<<24);i=K[1140]|K[1141]<<8|(K[1142]<<16|K[1143]<<24);H[c+8|0]=i;H[c+9|0]=i>>>8;H[c+10|0]=i>>>16;H[c+11|0]=i>>>24;H[c+12|0]=g;H[c+13|0]=g>>>8;H[c+14|0]=g>>>16;H[c+15|0]=g>>>24;g=K[1136]|K[1137]<<8|(K[1138]<<16|K[1139]<<24);i=K[1132]|K[1133]<<8|(K[1134]<<16|K[1135]<<24);H[c|0]=i;H[c+1|0]=i>>>8;H[c+2|0]=i>>>16;H[c+3|0]=i>>>24;H[c+4|0]=g;H[c+5|0]=g>>>8;H[c+6|0]=g>>>16;H[c+7|0]=g>>>24;H[c+21|0]=0;g=Pb(k,j,0);if(H[j+11|0]<0){na(J[j>>2])}c=J[b+44>>2];a:{if(g){H[j|0]=0;d=J[c+20>>2];if(!J[c+16>>2]&(d|0)<=0|(d|0)<0){sa(c,J[c+4>>2],j,j+1|0)}e=0;c=0;g=ba-16|0;ba=g;J[g>>2]=0;J[g+4>>2]=0;d=J[b+56>>2];f=J[d+100>>2];d=J[d+96>>2];if((f|0)!=(d|0)){c=(f-d|0)/12|0;p=c>>>0<=1?1:c;c=0;d=J[g>>2];b:{c:{while(1){d:{i=J[J[b+56>>2]+96>>2]+P(n,12)|0;l=J[i>>2];f=l-m|0;k=f>>31;k=(f^k)-k<<1|f>>>31;e:{if((e|0)!=(h|0)){J[e>>2]=k;e=e+4|0;J[g+4>>2]=e;break e}f=e-c|0;m=f>>2;h=m+1|0;if(h>>>0>=1073741824){break d}e=f>>>1|0;h=f>>>0>=2147483644?1073741823:e>>>0>h>>>0?e:h;if(h){if(h>>>0>=1073741824){break c}d=oa(h<<2)}else{d=0}e=d+(m<<2)|0;J[e>>2]=k;f=ta(d,c,f);e=e+4|0;J[g+4>>2]=e;h=f+(h<<2)|0;if(c){na(c)}c=f}o=J[i+4>>2];f=o-l|0;k=f>>31;k=(f^k)-k<<1|f>>>31;f:{if((e|0)!=(h|0)){J[e>>2]=k;e=e+4|0;J[g+4>>2]=e;break f}f=e-c|0;l=f>>2;h=l+1|0;if(h>>>0>1073741823){break d}e=f>>>1|0;h=f>>>0>=2147483644?1073741823:e>>>0>h>>>0?e:h;if(h){if(h>>>0>1073741823){break c}d=oa(h<<2)}else{d=0}e=d+(l<<2)|0;J[e>>2]=k;f=ta(d,c,f);e=e+4|0;J[g+4>>2]=e;h=f+(h<<2)|0;if(c){na(c)}c=f}m=J[i+8>>2];f=m-o|0;i=f>>31;i=(f^i)-i<<1|f>>>31;g:{if((e|0)!=(h|0)){J[e>>2]=i;e=e+4|0;J[g+4>>2]=e;break g}f=e-c|0;k=f>>2;h=k+1|0;if(h>>>0>1073741823){break d}e=f>>>1|0;h=f>>>0>=2147483644?1073741823:e>>>0>h>>>0?e:h;if(h){if(h>>>0>1073741823){break c}d=oa(h<<2)}else{d=0}e=d+(k<<2)|0;J[e>>2]=i;f=ta(d,c,f);e=e+4|0;J[g+4>>2]=e;h=f+(h<<2)|0;if(c){na(c)}c=f}n=n+1|0;if((p|0)!=(n|0)){continue}break b}break}J[g+8>>2]=e;J[g>>2]=d;qa();B()}J[g>>2]=d;xa();B()}J[g>>2]=d}ee(c,e-c>>2,1,0,J[b+44>>2]);if(c){na(c)}ba=g+16|0;break a}H[j|0]=1;g=J[c+20>>2];if(!J[c+16>>2]&(g|0)<=0|(g|0)<0){sa(c,J[c+4>>2],j,j+1|0)}c=J[J[b+56>>2]+80>>2];if(c>>>0<=255){if((f|0)==(e|0)){break a}h=d>>>0<=1?1:d;f=j+1|0;c=0;while(1){d=J[b+44>>2];e=J[J[b+56>>2]+96>>2]+P(c,12)|0;H[j|0]=J[e>>2];g=J[d+20>>2];h:{if(!!J[d+16>>2]&(g|0)>=0|(g|0)>0){break h}sa(d,J[d+4>>2],j,f);d=J[b+44>>2];g=J[d+20>>2];i=J[d+16>>2];H[j|0]=J[e+4>>2];if(!!i&(g|0)>=0|(g|0)>0){break h}sa(d,J[d+4>>2],j,f);d=J[b+44>>2];g=J[d+20>>2];i=J[d+16>>2];H[j|0]=J[e+8>>2];if(!!i&(g|0)>=0|(g|0)>0){break h}sa(d,J[d+4>>2],j,f)}c=c+1|0;if((h|0)!=(c|0)){continue}break}break a}if(c>>>0<=65535){if((f|0)==(e|0)){break a}h=d>>>0<=1?1:d;f=j+2|0;c=0;while(1){d=J[b+44>>2];e=J[J[b+56>>2]+96>>2]+P(c,12)|0;I[j>>1]=J[e>>2];g=J[d+20>>2];i:{if(!!J[d+16>>2]&(g|0)>=0|(g|0)>0){break i}sa(d,J[d+4>>2],j,f);d=J[b+44>>2];g=J[d+20>>2];i=J[d+16>>2];I[j>>1]=J[e+4>>2];if(!!i&(g|0)>=0|(g|0)>0){break i}sa(d,J[d+4>>2],j,f);d=J[b+44>>2];g=J[d+20>>2];i=J[d+16>>2];I[j>>1]=J[e+8>>2];if(!!i&(g|0)>=0|(g|0)>0){break i}sa(d,J[d+4>>2],j,f)}c=c+1|0;if((h|0)!=(c|0)){continue}break}break a}if(c>>>0>=2097152){if((f|0)==(e|0)){break a}c=J[b+44>>2];f=!!J[c+16>>2];c=J[c+20>>2];if(f&(c|0)>=0|(c|0)>0){break a}f=d>>>0<=1?1:d;c=0;while(1){d=J[b+44>>2];e=J[d+20>>2];if(!J[d+16>>2]&(e|0)<=0|(e|0)<0){e=d;g=J[d+4>>2];d=J[J[b+56>>2]+96>>2]+P(c,12)|0;sa(e,g,d,d+12|0)}c=c+1|0;if((f|0)!=(c|0)){continue}break}break a}if((f|0)==(e|0)){break a}f=d>>>0<=1?1:d;c=0;while(1){d=J[J[b+56>>2]+96>>2]+P(c,12)|0;Aa(J[d>>2],J[b+44>>2]);Aa(J[d+4>>2],J[b+44>>2]);Aa(J[d+8>>2],J[b+44>>2]);c=c+1|0;if((f|0)!=(c|0)){continue}break}}J[a>>2]=0;J[a+4>>2]=0;J[a+8>>2]=0;J[a+12>>2]=0;ba=j+16|0}function vf(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=Q(0),p=0,q=0,r=0,s=0,t=0,u=0,v=Q(0);i=ba-80|0;ba=i;J[i+56>>2]=0;J[i+60>>2]=0;J[i+48>>2]=0;J[i+52>>2]=0;J[i+64>>2]=1065353216;c=J[a+80>>2];J[i+32>>2]=0;J[i+24>>2]=0;J[i+28>>2]=0;a:{if(c){if(c>>>0>=1073741824){break a}f=c<<2;k=oa(f);J[i+24>>2]=k;c=f+k|0;J[i+32>>2]=c;pa(k,0,f);J[i+28>>2]=c;while(1){d=J[J[b>>2]>>2];f=J[b+48>>2];c=Hl(J[b+40>>2],J[b+44>>2],n,0);g=c;c=c+f|0;c=c+d|0;f=K[c|0]|K[c+1|0]<<8|(K[c+2|0]<<16|K[c+3|0]<<24);c=K[c+4|0]|K[c+5|0]<<8|(K[c+6|0]<<16|K[c+7|0]<<24);J[i+40>>2]=f;J[i+44>>2]=c;J[i+16>>2]=p;J[i+8>>2]=f;J[i+12>>2]=c;c=0;m=i+8|0;f=L[m+6>>1]^(L[m+4>>1]^(L[m+2>>1]^(L[m>>1]^318)+239)+239)+239;b:{c:{l=i+48|0;g=J[l+4>>2];if(!g){break c}d=Kl(g);d:{if(d>>>0>=2){c=f;if(c>>>0>=g>>>0){c=(f>>>0)%(g>>>0)|0}h=J[J[l>>2]+(c<<2)>>2];if(!h){break c}if(d>>>0<2){break d}q=L[m>>1];r=L[m+2>>1];t=L[m+4>>1];j=L[m+6>>1];while(1){h=J[h>>2];if(!h){break c}d=J[h+4>>2];if((d|0)!=(f|0)){if(d>>>0>=g>>>0){d=(d>>>0)%(g>>>0)|0}if((c|0)!=(d|0)){break c}}d=L[h+8>>1];e:{if((d|0)!=(q|0)){d=(d|0)==(q|0);break e}d=L[h+10>>1];if((d|0)!=(r|0)){d=(d|0)==(r|0);break e}d=L[h+12>>1];if((d|0)!=(t|0)){d=(d|0)==(t|0);break e}d=(j|0)==L[h+14>>1]}if(!d){continue}break}c=0;break b}c=f&g-1;h=J[J[l>>2]+(c<<2)>>2];if(!h){break c}}t=g-1|0;u=L[m>>1];q=L[m+2>>1];r=L[m+4>>1];j=L[m+6>>1];while(1){h=J[h>>2];if(!h){break c}d=J[h+4>>2];if((d|0)!=(f|0)&(d&t)!=(c|0)){break c}d=L[h+8>>1];f:{if((d|0)!=(u|0)){d=(d|0)==(u|0);break f}d=L[h+10>>1];if((d|0)!=(q|0)){d=(d|0)==(q|0);break f}d=L[h+12>>1];if((d|0)!=(r|0)){d=(d|0)==(r|0);break f}d=(j|0)==L[h+14>>1]}if(!d){continue}break}c=0;break b}h=oa(20);d=J[m+4>>2];J[h+8>>2]=J[m>>2];J[h+12>>2]=d;d=J[m+8>>2];J[h+4>>2]=f;J[h+16>>2]=d;J[h>>2]=0;o=Q(J[l+12>>2]+1>>>0);v=N[l+16>>2];g:{if(o>Q(v*Q(g>>>0))?0:g){break g}c=2;d=(g-1&g)!=0|g>>>0<3|g<<1;o=Q(W(Q(o/v)));h:{if(o=Q(0)){j=~~o>>>0;break h}j=0}d=d>>>0>j>>>0?d:j;i:{if((d|0)==1){break i}if(!(d&d-1)){c=d;break i}c=Ha(d);g=J[l+4>>2]}j:{if(c>>>0<=g>>>0){if(c>>>0>=g>>>0){break j}j=g>>>0<3;o=Q(W(Q(Q(M[l+12>>2])/N[l+16>>2])));k:{if(o=Q(0)){d=~~o>>>0;break k}d=0}l:{m:{if(j){break m}if(Kl(g)>>>0>1){break m}d=d>>>0<2?d:1<<32-S(d-1|0);break l}d=Ha(d)}c=c>>>0>d>>>0?c:d;if(g>>>0<=c>>>0){break j}}db(l,c)}g=J[l+4>>2];c=g-1|0;if(!(c&g)){c=c&f;break g}if(f>>>0>>0){c=f;break g}c=(f>>>0)%(g>>>0)|0}f=J[l>>2]+(c<<2)|0;c=J[f>>2];n:{o:{if(!c){c=l+8|0;J[h>>2]=J[c>>2];J[l+8>>2]=h;J[f>>2]=c;c=J[h>>2];if(!c){break n}c=J[c+4>>2];f=g-1|0;p:{if(!(f&g)){c=c&f;break p}if(c>>>0>>0){break p}c=(c>>>0)%(g>>>0)|0}c=J[l>>2]+(c<<2)|0;break o}J[h>>2]=J[c>>2]}J[c>>2]=h}J[l+12>>2]=J[l+12>>2]+1;c=1}H[i+76|0]=c;J[i+72>>2]=h;q:{if(!K[i+76|0]){J[(n<<2)+k>>2]=J[J[i+72>>2]+16>>2];break q}c=J[a+40>>2];ua(J[J[a>>2]>>2]+P(c,p)|0,i+40|0,c);k=J[i+24>>2];J[k+(n<<2)>>2]=p;p=p+1|0}n=n+1|0;e=n?e:e+1|0;j=J[a+80>>2];if(!e&n>>>0>>0){continue}break}if((j|0)!=(p|0)){r:{if(!K[a+84|0]){b=J[a+72>>2];j=J[a+68>>2];if((b|0)==(j|0)){break r}b=b-j>>2;e=b>>>0<=1?1:b;f=e&3;c=0;b=0;if(e-1>>>0>=3){n=e&-4;while(1){d=b<<2;e=d+j|0;J[e>>2]=J[(J[e>>2]<<2)+k>>2];e=j+(d|4)|0;J[e>>2]=J[(J[e>>2]<<2)+k>>2];e=j+(d|8)|0;J[e>>2]=J[(J[e>>2]<<2)+k>>2];e=j+(d|12)|0;J[e>>2]=J[(J[e>>2]<<2)+k>>2];b=b+4|0;s=s+4|0;if((n|0)!=(s|0)){continue}break}}if(!f){break r}while(1){e=j+(b<<2)|0;J[e>>2]=J[(J[e>>2]<<2)+k>>2];b=b+1|0;c=c+1|0;if((f|0)!=(c|0)){continue}break}break r}H[a+84|0]=0;e=a+68|0;b=J[a+68>>2];c=J[a+72>>2]-b>>2;s:{if(c>>>0>>0){Ma(e,j-c|0,2176);j=J[a+80>>2];break s}if(c>>>0<=j>>>0){break s}J[a+72>>2]=b+(j<<2)}if(!j){break r}d=J[e>>2];c=0;b=0;if(j>>>0>=4){n=j&-4;while(1){f=b<<2;J[f+d>>2]=J[f+k>>2];e=f|4;J[e+d>>2]=J[e+k>>2];e=f|8;J[e+d>>2]=J[e+k>>2];e=f|12;J[e+d>>2]=J[e+k>>2];b=b+4|0;s=s+4|0;if((n|0)!=(s|0)){continue}break}}n=j&3;if(!n){break r}while(1){e=b<<2;J[e+d>>2]=J[e+k>>2];b=b+1|0;c=c+1|0;if((n|0)!=(c|0)){continue}break}}J[a+80>>2]=p}na(k)}b=J[i+56>>2];if(b){while(1){a=J[b>>2];na(b);b=a;if(b){continue}break}}a=J[i+48>>2];J[i+48>>2]=0;if(a){na(a)}ba=i+80|0;return p}qa();B()}function wf(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=Q(0),p=0,q=0,r=0,s=Q(0);e=ba-80|0;ba=e;J[e+56>>2]=0;J[e+60>>2]=0;J[e+48>>2]=0;J[e+52>>2]=0;J[e+64>>2]=1065353216;c=J[a+80>>2];J[e+24>>2]=0;J[e+16>>2]=0;J[e+20>>2]=0;a:{if(c){if(c>>>0>=1073741824){break a}g=c<<2;k=oa(g);J[e+16>>2]=k;c=g+k|0;J[e+24>>2]=c;pa(k,0,g);J[e+20>>2]=c;while(1){d=J[J[b>>2]>>2];g=J[b+48>>2];c=Hl(J[b+40>>2],J[b+44>>2],n,0);h=c;c=c+g|0;c=c+d|0;I[e+44>>1]=K[c+4|0]|K[c+5|0]<<8;J[e+40>>2]=K[c|0]|K[c+1|0]<<8|(K[c+2|0]<<16|K[c+3|0]<<24);g=K[c+4|0]|K[c+5|0]<<8;I[e+36>>1]=g;c=K[c|0]|K[c+1|0]<<8|(K[c+2|0]<<16|K[c+3|0]<<24);J[e+32>>2]=c;I[e+4>>1]=g;J[e>>2]=c;J[e+8>>2]=p;c=0;g=L[e+4>>1]^(L[e+2>>1]^(L[e>>1]^318)+239)+239;b:{c:{m=e+48|0;h=J[m+4>>2];if(!h){break c}d=Kl(h);d:{if(d>>>0>=2){c=g;if(c>>>0>=h>>>0){c=(g>>>0)%(h>>>0)|0}i=J[J[m>>2]+(c<<2)>>2];if(!i){break c}if(d>>>0<2){break d}q=L[e>>1];j=L[e+2>>1];l=L[e+4>>1];while(1){i=J[i>>2];if(!i){break c}d=J[i+4>>2];if((d|0)!=(g|0)){if(d>>>0>=h>>>0){d=(d>>>0)%(h>>>0)|0}if((c|0)!=(d|0)){break c}}d=L[i+8>>1];e:{if((d|0)!=(q|0)){d=(d|0)==(q|0);break e}d=L[i+10>>1];if((d|0)!=(j|0)){d=(d|0)==(j|0);break e}d=(l|0)==L[i+12>>1]}if(!d){continue}break}c=0;break b}c=g&h+262143;i=J[J[m>>2]+(c<<2)>>2];if(!i){break c}}j=h-1|0;r=L[e>>1];q=L[e+2>>1];l=L[e+4>>1];while(1){i=J[i>>2];if(!i){break c}d=J[i+4>>2];if((d|0)!=(g|0)&(d&j)!=(c|0)){break c}d=L[i+8>>1];f:{if((d|0)!=(r|0)){d=(d|0)==(r|0);break f}d=L[i+10>>1];if((d|0)!=(q|0)){d=(d|0)==(q|0);break f}d=(l|0)==L[i+12>>1]}if(!d){continue}break}c=0;break b}i=oa(20);I[i+12>>1]=L[e+4>>1];J[i+8>>2]=J[e>>2];d=J[e+8>>2];J[i>>2]=0;J[i+4>>2]=g;J[i+16>>2]=d;o=Q(J[m+12>>2]+1>>>0);s=N[m+16>>2];g:{if(o>Q(s*Q(h>>>0))?0:h){break g}c=2;d=(h-1&h)!=0|h>>>0<3|h<<1;o=Q(W(Q(o/s)));h:{if(o=Q(0)){l=~~o>>>0;break h}l=0}d=d>>>0>l>>>0?d:l;i:{if((d|0)==1){break i}if(!(d&d-1)){c=d;break i}c=Ha(d);h=J[m+4>>2]}j:{if(c>>>0<=h>>>0){if(c>>>0>=h>>>0){break j}l=h>>>0<3;o=Q(W(Q(Q(M[m+12>>2])/N[m+16>>2])));k:{if(o=Q(0)){d=~~o>>>0;break k}d=0}l:{m:{if(l){break m}if(Kl(h)>>>0>1){break m}d=d>>>0<2?d:1<<32-S(d-1|0);break l}d=Ha(d)}c=c>>>0>d>>>0?c:d;if(h>>>0<=c>>>0){break j}}db(m,c)}h=J[m+4>>2];c=h-1|0;if(!(c&h)){c=c&g;break g}if(g>>>0>>0){c=g;break g}c=(g>>>0)%(h>>>0)|0}g=J[m>>2]+(c<<2)|0;c=J[g>>2];n:{o:{if(!c){c=m+8|0;J[i>>2]=J[c>>2];J[m+8>>2]=i;J[g>>2]=c;c=J[i>>2];if(!c){break n}c=J[c+4>>2];g=h-1|0;p:{if(!(g&h)){c=c&g;break p}if(c>>>0>>0){break p}c=(c>>>0)%(h>>>0)|0}c=J[m>>2]+(c<<2)|0;break o}J[i>>2]=J[c>>2]}J[c>>2]=i}J[m+12>>2]=J[m+12>>2]+1;c=1}H[e+76|0]=c;J[e+72>>2]=i;q:{if(!K[e+76|0]){J[(n<<2)+k>>2]=J[J[e+72>>2]+16>>2];break q}c=J[a+40>>2];ua(J[J[a>>2]>>2]+P(c,p)|0,e+40|0,c);k=J[e+16>>2];J[k+(n<<2)>>2]=p;p=p+1|0}n=n+1|0;f=n?f:f+1|0;j=J[a+80>>2];if(!f&n>>>0>>0){continue}break}if((j|0)!=(p|0)){r:{if(!K[a+84|0]){b=J[a+72>>2];j=J[a+68>>2];if((b|0)==(j|0)){break r}b=b-j>>2;f=b>>>0<=1?1:b;g=f&3;c=0;b=0;if(f-1>>>0>=3){n=f&-4;l=0;while(1){d=b<<2;f=d+j|0;J[f>>2]=J[(J[f>>2]<<2)+k>>2];f=j+(d|4)|0;J[f>>2]=J[(J[f>>2]<<2)+k>>2];f=j+(d|8)|0;J[f>>2]=J[(J[f>>2]<<2)+k>>2];f=j+(d|12)|0;J[f>>2]=J[(J[f>>2]<<2)+k>>2];b=b+4|0;l=l+4|0;if((n|0)!=(l|0)){continue}break}}if(!g){break r}while(1){f=j+(b<<2)|0;J[f>>2]=J[(J[f>>2]<<2)+k>>2];b=b+1|0;c=c+1|0;if((g|0)!=(c|0)){continue}break}break r}H[a+84|0]=0;f=a+68|0;b=J[a+68>>2];c=J[a+72>>2]-b>>2;s:{if(c>>>0>>0){Ma(f,j-c|0,2176);j=J[a+80>>2];break s}if(c>>>0<=j>>>0){break s}J[a+72>>2]=b+(j<<2)}if(!j){break r}d=J[f>>2];c=0;b=0;if(j>>>0>=4){n=j&-4;l=0;while(1){g=b<<2;J[g+d>>2]=J[g+k>>2];f=g|4;J[f+d>>2]=J[f+k>>2];f=g|8;J[f+d>>2]=J[f+k>>2];f=g|12;J[f+d>>2]=J[f+k>>2];b=b+4|0;l=l+4|0;if((n|0)!=(l|0)){continue}break}}n=j&3;if(!n){break r}while(1){f=b<<2;J[f+d>>2]=J[f+k>>2];b=b+1|0;c=c+1|0;if((n|0)!=(c|0)){continue}break}}J[a+80>>2]=p}na(k)}b=J[e+56>>2];if(b){while(1){a=J[b>>2];na(b);b=a;if(b){continue}break}}a=J[e+48>>2];J[e+48>>2]=0;if(a){na(a)}ba=e+80|0;return p}qa();B()}function If(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=Q(0),q=0,r=0,s=0,t=0,u=Q(0);i=ba+-64|0;ba=i;J[i+40>>2]=0;J[i+44>>2]=0;J[i+32>>2]=0;J[i+36>>2]=0;J[i+48>>2]=1065353216;c=J[a+80>>2];J[i+24>>2]=0;J[i+16>>2]=0;J[i+20>>2]=0;a:{if(c){if(c>>>0>=1073741824){break a}f=c<<2;k=oa(f);J[i+16>>2]=k;c=f+k|0;J[i+24>>2]=c;pa(k,0,f);J[i+20>>2]=c;while(1){d=J[J[b>>2]>>2];f=J[b+48>>2];c=Hl(J[b+40>>2],J[b+44>>2],o,0);g=c;c=c+f|0;c=c+d|0;c=K[c|0]|K[c+1|0]<<8|(K[c+2|0]<<16|K[c+3|0]<<24);J[i+28>>2]=c;J[i+12>>2]=q;J[i+8>>2]=c;c=0;n=i+8|0;f=K[n+3|0]^(K[n+2|0]^(K[n+1|0]^(K[n|0]^318)+239)+239)+239;b:{c:{m=i+32|0;g=J[m+4>>2];if(!g){break c}d=Kl(g);d:{if(d>>>0>=2){c=f;if(c>>>0>=g>>>0){c=(f>>>0)%(g>>>0)|0}h=J[J[m>>2]+(c<<2)>>2];if(!h){break c}if(d>>>0<2){break d}r=K[n|0];s=K[n+1|0];j=K[n+2|0];l=K[n+3|0];while(1){h=J[h>>2];if(!h){break c}d=J[h+4>>2];if((d|0)!=(f|0)){if(d>>>0>=g>>>0){d=(d>>>0)%(g>>>0)|0}if((c|0)!=(d|0)){break c}}d=K[h+8|0];e:{if((d|0)!=(r|0)){d=(d|0)==(r|0);break e}d=K[h+9|0];if((d|0)!=(s|0)){d=(d|0)==(s|0);break e}d=K[h+10|0];if((d|0)!=(j|0)){d=(d|0)==(j|0);break e}d=(l|0)==K[h+11|0]}if(!d){continue}break}c=0;break b}c=f&g-1;h=J[J[m>>2]+(c<<2)>>2];if(!h){break c}}j=g-1|0;t=K[n|0];r=K[n+1|0];s=K[n+2|0];l=K[n+3|0];while(1){h=J[h>>2];if(!h){break c}d=J[h+4>>2];if((d|0)!=(f|0)&(d&j)!=(c|0)){break c}d=K[h+8|0];f:{if((d|0)!=(t|0)){d=(d|0)==(t|0);break f}d=K[h+9|0];if((d|0)!=(r|0)){d=(d|0)==(r|0);break f}d=K[h+10|0];if((d|0)!=(s|0)){d=(d|0)==(s|0);break f}d=(l|0)==K[h+11|0]}if(!d){continue}break}c=0;break b}h=oa(16);J[h+8>>2]=J[n>>2];d=J[n+4>>2];J[h+4>>2]=f;J[h+12>>2]=d;J[h>>2]=0;p=Q(J[m+12>>2]+1>>>0);u=N[m+16>>2];g:{if(p>Q(u*Q(g>>>0))?0:g){break g}c=2;d=(g-1&g)!=0|g>>>0<3|g<<1;p=Q(W(Q(p/u)));h:{if(p=Q(0)){l=~~p>>>0;break h}l=0}d=d>>>0>l>>>0?d:l;i:{if((d|0)==1){break i}if(!(d&d-1)){c=d;break i}c=Ha(d);g=J[m+4>>2]}j:{if(c>>>0<=g>>>0){if(c>>>0>=g>>>0){break j}l=g>>>0<3;p=Q(W(Q(Q(M[m+12>>2])/N[m+16>>2])));k:{if(p=Q(0)){d=~~p>>>0;break k}d=0}l:{m:{if(l){break m}if(Kl(g)>>>0>1){break m}d=d>>>0<2?d:1<<32-S(d-1|0);break l}d=Ha(d)}c=c>>>0>d>>>0?c:d;if(g>>>0<=c>>>0){break j}}db(m,c)}g=J[m+4>>2];c=g-1|0;if(!(c&g)){c=c&f;break g}if(f>>>0>>0){c=f;break g}c=(f>>>0)%(g>>>0)|0}f=J[m>>2]+(c<<2)|0;c=J[f>>2];n:{o:{if(!c){c=m+8|0;J[h>>2]=J[c>>2];J[m+8>>2]=h;J[f>>2]=c;c=J[h>>2];if(!c){break n}c=J[c+4>>2];f=g-1|0;p:{if(!(f&g)){c=c&f;break p}if(c>>>0>>0){break p}c=(c>>>0)%(g>>>0)|0}c=J[m>>2]+(c<<2)|0;break o}J[h>>2]=J[c>>2]}J[c>>2]=h}J[m+12>>2]=J[m+12>>2]+1;c=1}H[i+60|0]=c;J[i+56>>2]=h;q:{if(!K[i+60|0]){J[(o<<2)+k>>2]=J[J[i+56>>2]+12>>2];break q}c=J[a+40>>2];ua(J[J[a>>2]>>2]+P(c,q)|0,i+28|0,c);k=J[i+16>>2];J[k+(o<<2)>>2]=q;q=q+1|0}o=o+1|0;e=o?e:e+1|0;j=J[a+80>>2];if(!e&o>>>0>>0){continue}break}if((j|0)!=(q|0)){r:{if(!K[a+84|0]){b=J[a+72>>2];j=J[a+68>>2];if((b|0)==(j|0)){break r}b=b-j>>2;e=b>>>0<=1?1:b;f=e&3;c=0;b=0;if(e-1>>>0>=3){o=e&-4;l=0;while(1){d=b<<2;e=d+j|0;J[e>>2]=J[(J[e>>2]<<2)+k>>2];e=j+(d|4)|0;J[e>>2]=J[(J[e>>2]<<2)+k>>2];e=j+(d|8)|0;J[e>>2]=J[(J[e>>2]<<2)+k>>2];e=j+(d|12)|0;J[e>>2]=J[(J[e>>2]<<2)+k>>2];b=b+4|0;l=l+4|0;if((o|0)!=(l|0)){continue}break}}if(!f){break r}while(1){e=j+(b<<2)|0;J[e>>2]=J[(J[e>>2]<<2)+k>>2];b=b+1|0;c=c+1|0;if((f|0)!=(c|0)){continue}break}break r}H[a+84|0]=0;e=a+68|0;b=J[a+68>>2];c=J[a+72>>2]-b>>2;s:{if(c>>>0>>0){Ma(e,j-c|0,2176);j=J[a+80>>2];break s}if(c>>>0<=j>>>0){break s}J[a+72>>2]=b+(j<<2)}if(!j){break r}d=J[e>>2];c=0;b=0;if(j>>>0>=4){o=j&-4;l=0;while(1){f=b<<2;J[f+d>>2]=J[f+k>>2];e=f|4;J[e+d>>2]=J[e+k>>2];e=f|8;J[e+d>>2]=J[e+k>>2];e=f|12;J[e+d>>2]=J[e+k>>2];b=b+4|0;l=l+4|0;if((o|0)!=(l|0)){continue}break}}o=j&3;if(!o){break r}while(1){e=b<<2;J[e+d>>2]=J[e+k>>2];b=b+1|0;c=c+1|0;if((o|0)!=(c|0)){continue}break}}J[a+80>>2]=q}na(k)}b=J[i+40>>2];if(b){while(1){a=J[b>>2];na(b);b=a;if(b){continue}break}}a=J[i+32>>2];J[i+32>>2]=0;if(a){na(a)}ba=i- -64|0;return q}qa();B()}function Tc(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;e=ba-96|0;ba=e;f=J[a+16>>2];H[e+92|0]=1;J[e+88>>2]=b;J[e+84>>2]=b;J[e+80>>2]=f;j=J[a+20>>2];d=J[j>>2];a:{b:{f=J[J[f+28>>2]+(b<<2)>>2];if(f>>>0>2]-d>>2>>>0){d=J[J[a+8>>2]+(J[d+(f<<2)>>2]<<2)>>2];f=J[a+4>>2];if(!K[f+84|0]){d=J[J[f+68>>2]+(d<<2)>>2]}J[e+72>>2]=0;J[e+76>>2]=0;j=e- -64|0;J[j>>2]=0;J[j+4>>2]=0;J[e+56>>2]=0;J[e+60>>2]=0;hb(f,d,H[f+24|0],e+56|0);if((b|0)!=-1){f=b+1|0;j=(f>>>0)%3|0?f:b-2|0;m=((b>>>0)%3|0?-1:2)+b|0;while(1){d=j;f=m;c:{if(!J[a+28>>2]){break c}f=b+1|0;d=(f>>>0)%3|0?f:b-2|0;f=b-1|0;if((b>>>0)%3|0){break c}f=b+2|0}n=J[a+20>>2];b=J[n>>2];d=J[J[J[a+16>>2]+28>>2]+(d<<2)>>2];if(d>>>0>=J[n+4>>2]-b>>2>>>0){break b}d=J[J[a+8>>2]+(J[b+(d<<2)>>2]<<2)>>2];b=J[a+4>>2];if(!K[b+84|0]){d=J[J[b+68>>2]+(d<<2)>>2]}J[e+48>>2]=0;J[e+52>>2]=0;J[e+40>>2]=0;J[e+44>>2]=0;J[e+32>>2]=0;J[e+36>>2]=0;hb(b,d,H[b+24|0],e+32|0);d=J[a+20>>2];b=J[d>>2];f=J[J[J[a+16>>2]+28>>2]+(f<<2)>>2];if(f>>>0>=J[d+4>>2]-b>>2>>>0){break a}d=J[J[a+8>>2]+(J[b+(f<<2)>>2]<<2)>>2];b=J[a+4>>2];if(!K[b+84|0]){d=J[J[b+68>>2]+(d<<2)>>2]}J[e+24>>2]=0;J[e+28>>2]=0;J[e+16>>2]=0;J[e+20>>2]=0;J[e+8>>2]=0;J[e+12>>2]=0;hb(b,d,H[b+24|0],e+8|0);g=J[e+8>>2];b=J[e+56>>2];d=g-b|0;p=J[e+60>>2];t=J[e+12>>2]-(p+(b>>>0>g>>>0)|0)|0;h=J[e+40>>2];f=J[e+64>>2];n=h-f|0;u=J[e+68>>2];x=J[e+44>>2]-(u+(f>>>0>h>>>0)|0)|0;g=Hl(d,t,n,x);v=o-g|0;w=i-(ca+(g>>>0>o>>>0)|0)|0;i=v;h=J[e+16>>2];g=h-f|0;u=J[e+20>>2]-((f>>>0>h>>>0)+u|0)|0;k=J[e+32>>2];h=k-b|0;v=J[e+36>>2]-((b>>>0>k>>>0)+p|0)|0;b=Hl(g,u,h,v);o=i+b|0;i=ca+w|0;i=b>>>0>o>>>0?i+1|0:i;b=l;l=d;p=t;k=J[e+48>>2];f=J[e+72>>2];d=k-f|0;t=J[e+76>>2];w=J[e+52>>2]-(t+(f>>>0>k>>>0)|0)|0;l=Hl(l,p,d,w);k=b+l|0;b=ca+q|0;b=k>>>0>>0?b+1|0:b;l=J[e+24>>2];p=l-f|0;f=J[e+28>>2]-((f>>>0>l>>>0)+t|0)|0;q=Hl(p,f,h,v);l=k-q|0;q=b-(ca+(k>>>0>>0)|0)|0;b=Hl(g,u,d,w);d=r-b|0;b=s-(ca+(b>>>0>r>>>0)|0)|0;s=Hl(p,f,n,x);r=s+d|0;b=ca+b|0;s=r>>>0>>0?b+1|0:b;b=J[e+88>>2];f=J[e+80>>2];d:{if(K[e+92|0]){e:{f:{g:{h:{if((b|0)==-1){break h}d=b+1|0;b=(d>>>0)%3|0?d:b-2|0;if((b|0)==-1|J[J[f>>2]+(b>>>3&536870908)>>2]>>>b&1){break h}b=J[J[J[f+64>>2]+12>>2]+(b<<2)>>2];if((b|0)!=-1){break g}}J[e+88>>2]=-1;break f}d=b+1|0;b=(d>>>0)%3|0?d:b-2|0;J[e+88>>2]=b;if((b|0)!=-1){break e}}b=J[e+84>>2];d=-1;i:{if((b|0)==-1){break i}j:{if((b>>>0)%3|0){b=b-1|0;break j}b=b+2|0;d=-1;if((b|0)==-1){break i}}d=-1;if(J[J[f>>2]+(b>>>3&536870908)>>2]>>>b&1){break i}b=J[J[J[f+64>>2]+12>>2]+(b<<2)>>2];d=-1;if((b|0)==-1){break i}d=b-1|0;if((b>>>0)%3|0){break i}d=b+2|0}H[e+92|0]=0;J[e+88>>2]=d;break d}if((b|0)!=J[e+84>>2]){break d}J[e+88>>2]=-1;break d}d=-1;k:{if((b|0)==-1){break k}l:{if((b>>>0)%3|0){b=b-1|0;break l}b=b+2|0;d=-1;if((b|0)==-1){break k}}d=-1;if(J[J[f>>2]+(b>>>3&536870908)>>2]>>>b&1){break k}b=J[J[J[f+64>>2]+12>>2]+(b<<2)>>2];d=-1;if((b|0)==-1){break k}d=b-1|0;if((b>>>0)%3|0){break k}d=b+2|0}J[e+88>>2]=d}b=J[e+88>>2];if((b|0)!=-1){continue}break}}b=s>>31;f=b^r;d=f-b|0;b=(b^s)-((b>>>0>f>>>0)+b|0)|0;m=-1;f=2147483647;g=q>>31;h=g^l;j=h-g|0;n=(g^q)-((h>>>0>>0)+g|0)|0;h=n;k=j^-1;g=h^2147483647;n=i;m:{n:{if(!J[a+28>>2]){if((b|0)==(g|0)&d>>>0>k>>>0|b>>>0>g>>>0){break m}b=b+h|0;a=d+j|0;b=a>>>0>>0?b+1|0:b;f=a;g=i;a=g>>31;d=a;m=d^o;a=m-d|0;i=a;d=(d^g)-((d>>>0>m>>>0)+d|0)|0;a=a+f|0;d=d^2147483647;i=(d|0)==(b|0)&(i^-1)>>>0>>0|b>>>0>d>>>0;a=i?-1:a;if(!(i&0)&(a|0)<=536870912|(a|0)<536870912){break m}b=0;a=a>>>29|0;break n}o:{if((b|0)==(g|0)&d>>>0>k>>>0|b>>>0>g>>>0){break o}b=b+h|0;a=d+j|0;b=a>>>0>>0?b+1|0:b;k=i;d=i>>31;h=d^o;i=h-d|0;j=(d^k)-((d>>>0>h>>>0)+d|0)|0;g=j^2147483647;d=a;a=i;if((g|0)==(b|0)&d>>>0>(a^-1)>>>0|b>>>0>g>>>0){break o}b=b+j|0;m=a+d|0;b=m>>>0>>0?b+1|0:b;f=b;if(!b&m>>>0<536870913){break m}}b=f>>>29|0;a=(f&536870911)<<3|m>>>29}o=Il(o,n,a,b);l=Il(l,q,a,b);r=Il(r,s,a,b)}J[c+8>>2]=o;J[c+4>>2]=l;J[c>>2]=r;ba=e+96|0;return}ra();B()}ra();B()}ra();B()}function Kf(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=Q(0),p=0,q=0,r=0,s=Q(0);e=ba+-64|0;ba=e;J[e+40>>2]=0;J[e+44>>2]=0;J[e+32>>2]=0;J[e+36>>2]=0;J[e+48>>2]=1065353216;c=J[a+80>>2];J[e+16>>2]=0;J[e+8>>2]=0;J[e+12>>2]=0;a:{if(c){if(c>>>0>=1073741824){break a}g=c<<2;k=oa(g);J[e+8>>2]=k;c=g+k|0;J[e+16>>2]=c;pa(k,0,g);J[e+12>>2]=c;while(1){d=J[J[b>>2]>>2];g=J[b+48>>2];c=Hl(J[b+40>>2],J[b+44>>2],n,0);h=c;c=c+g|0;c=c+d|0;H[e+30|0]=K[c+2|0];I[e+28>>1]=K[c|0]|K[c+1|0]<<8;g=K[c+2|0];H[e+26|0]=g;c=K[c|0]|K[c+1|0]<<8;I[e+24>>1]=c;H[e+2|0]=g;I[e>>1]=c;J[e+4>>2]=p;c=0;g=K[e+2|0]^(K[e+1|0]^(K[e|0]^318)+239)+239;b:{c:{m=e+32|0;h=J[m+4>>2];if(!h){break c}d=Kl(h);d:{if(d>>>0>=2){c=g;if(c>>>0>=h>>>0){c=(g>>>0)%(h>>>0)|0}i=J[J[m>>2]+(c<<2)>>2];if(!i){break c}if(d>>>0<2){break d}q=K[e|0];j=K[e+1|0];l=K[e+2|0];while(1){i=J[i>>2];if(!i){break c}d=J[i+4>>2];if((d|0)!=(g|0)){if(d>>>0>=h>>>0){d=(d>>>0)%(h>>>0)|0}if((c|0)!=(d|0)){break c}}d=K[i+8|0];e:{if((d|0)!=(q|0)){d=(d|0)==(q|0);break e}d=K[i+9|0];if((d|0)!=(j|0)){d=(d|0)==(j|0);break e}d=(l|0)==K[i+10|0]}if(!d){continue}break}c=0;break b}c=g&h-1;i=J[J[m>>2]+(c<<2)>>2];if(!i){break c}}j=h-1|0;r=K[e|0];q=K[e+1|0];l=K[e+2|0];while(1){i=J[i>>2];if(!i){break c}d=J[i+4>>2];if((d|0)!=(g|0)&(d&j)!=(c|0)){break c}d=K[i+8|0];f:{if((d|0)!=(r|0)){d=(d|0)==(r|0);break f}d=K[i+9|0];if((d|0)!=(q|0)){d=(d|0)==(q|0);break f}d=(l|0)==K[i+10|0]}if(!d){continue}break}c=0;break b}i=oa(16);H[i+10|0]=K[e+2|0];I[i+8>>1]=L[e>>1];d=J[e+4>>2];J[i>>2]=0;J[i+4>>2]=g;J[i+12>>2]=d;o=Q(J[m+12>>2]+1>>>0);s=N[m+16>>2];g:{if(o>Q(s*Q(h>>>0))?0:h){break g}c=2;d=(h-1&h)!=0|h>>>0<3|h<<1;o=Q(W(Q(o/s)));h:{if(o=Q(0)){l=~~o>>>0;break h}l=0}d=d>>>0>l>>>0?d:l;i:{if((d|0)==1){break i}if(!(d&d-1)){c=d;break i}c=Ha(d);h=J[m+4>>2]}j:{if(c>>>0<=h>>>0){if(c>>>0>=h>>>0){break j}l=h>>>0<3;o=Q(W(Q(Q(M[m+12>>2])/N[m+16>>2])));k:{if(o=Q(0)){d=~~o>>>0;break k}d=0}l:{m:{if(l){break m}if(Kl(h)>>>0>1){break m}d=d>>>0<2?d:1<<32-S(d-1|0);break l}d=Ha(d)}c=c>>>0>d>>>0?c:d;if(h>>>0<=c>>>0){break j}}db(m,c)}h=J[m+4>>2];c=h-1|0;if(!(c&h)){c=c&g;break g}if(g>>>0>>0){c=g;break g}c=(g>>>0)%(h>>>0)|0}g=J[m>>2]+(c<<2)|0;c=J[g>>2];n:{o:{if(!c){c=m+8|0;J[i>>2]=J[c>>2];J[m+8>>2]=i;J[g>>2]=c;c=J[i>>2];if(!c){break n}c=J[c+4>>2];g=h-1|0;p:{if(!(g&h)){c=c&g;break p}if(c>>>0>>0){break p}c=(c>>>0)%(h>>>0)|0}c=J[m>>2]+(c<<2)|0;break o}J[i>>2]=J[c>>2]}J[c>>2]=i}J[m+12>>2]=J[m+12>>2]+1;c=1}H[e+60|0]=c;J[e+56>>2]=i;q:{if(!K[e+60|0]){J[(n<<2)+k>>2]=J[J[e+56>>2]+12>>2];break q}c=J[a+40>>2];ua(J[J[a>>2]>>2]+P(c,p)|0,e+28|0,c);k=J[e+8>>2];J[k+(n<<2)>>2]=p;p=p+1|0}n=n+1|0;f=n?f:f+1|0;j=J[a+80>>2];if(!f&n>>>0>>0){continue}break}if((j|0)!=(p|0)){r:{if(!K[a+84|0]){b=J[a+72>>2];j=J[a+68>>2];if((b|0)==(j|0)){break r}b=b-j>>2;f=b>>>0<=1?1:b;g=f&3;c=0;b=0;if(f-1>>>0>=3){n=f&-4;l=0;while(1){d=b<<2;f=d+j|0;J[f>>2]=J[(J[f>>2]<<2)+k>>2];f=j+(d|4)|0;J[f>>2]=J[(J[f>>2]<<2)+k>>2];f=j+(d|8)|0;J[f>>2]=J[(J[f>>2]<<2)+k>>2];f=j+(d|12)|0;J[f>>2]=J[(J[f>>2]<<2)+k>>2];b=b+4|0;l=l+4|0;if((n|0)!=(l|0)){continue}break}}if(!g){break r}while(1){f=j+(b<<2)|0;J[f>>2]=J[(J[f>>2]<<2)+k>>2];b=b+1|0;c=c+1|0;if((g|0)!=(c|0)){continue}break}break r}H[a+84|0]=0;f=a+68|0;b=J[a+68>>2];c=J[a+72>>2]-b>>2;s:{if(c>>>0>>0){Ma(f,j-c|0,2176);j=J[a+80>>2];break s}if(c>>>0<=j>>>0){break s}J[a+72>>2]=b+(j<<2)}if(!j){break r}d=J[f>>2];c=0;b=0;if(j>>>0>=4){n=j&-4;l=0;while(1){g=b<<2;J[g+d>>2]=J[g+k>>2];f=g|4;J[f+d>>2]=J[f+k>>2];f=g|8;J[f+d>>2]=J[f+k>>2];f=g|12;J[f+d>>2]=J[f+k>>2];b=b+4|0;l=l+4|0;if((n|0)!=(l|0)){continue}break}}n=j&3;if(!n){break r}while(1){f=b<<2;J[f+d>>2]=J[f+k>>2];b=b+1|0;c=c+1|0;if((n|0)!=(c|0)){continue}break}}J[a+80>>2]=p}na(k)}b=J[e+40>>2];if(b){while(1){a=J[b>>2];na(b);b=a;if(b){continue}break}}a=J[e+32>>2];J[e+32>>2]=0;if(a){na(a)}ba=e- -64|0;return p}qa();B()}function Rc(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;f=ba-96|0;ba=f;d=J[a+16>>2];H[f+92|0]=1;J[f+88>>2]=b;J[f+84>>2]=b;J[f+80>>2]=d;a:{if((b|0)==-1){break a}j=J[a+20>>2];e=J[j>>2];d=J[J[d>>2]+(b<<2)>>2];if(d>>>0>=J[j+4>>2]-e>>2>>>0){break a}e=J[J[a+8>>2]+(J[e+(d<<2)>>2]<<2)>>2];d=J[a+4>>2];if(!K[d+84|0]){e=J[J[d+68>>2]+(e<<2)>>2]}J[f+72>>2]=0;J[f+76>>2]=0;j=f- -64|0;J[j>>2]=0;J[j+4>>2]=0;J[f+56>>2]=0;J[f+60>>2]=0;hb(d,e,H[d+24|0],f+56|0);d=b+1|0;j=(d>>>0)%3|0?d:b-2|0;m=((b>>>0)%3|0?-1:2)+b|0;b:{c:{while(1){e=j;d=m;d:{if(!J[a+28>>2]){break d}d=b+1|0;e=(d>>>0)%3|0?d:b-2|0;d=b-1|0;if((b>>>0)%3|0){break d}d=b+2|0}if((e|0)==-1){break b}n=J[a+20>>2];b=J[n>>2];e=J[J[J[a+16>>2]>>2]+(e<<2)>>2];if(e>>>0>=J[n+4>>2]-b>>2>>>0){break b}e=J[J[a+8>>2]+(J[b+(e<<2)>>2]<<2)>>2];b=J[a+4>>2];if(!K[b+84|0]){e=J[J[b+68>>2]+(e<<2)>>2]}J[f+48>>2]=0;J[f+52>>2]=0;J[f+40>>2]=0;J[f+44>>2]=0;J[f+32>>2]=0;J[f+36>>2]=0;hb(b,e,H[b+24|0],f+32|0);if((d|0)==-1){break c}e=J[a+20>>2];b=J[e>>2];d=J[J[J[a+16>>2]>>2]+(d<<2)>>2];if(d>>>0>=J[e+4>>2]-b>>2>>>0){break c}e=J[J[a+8>>2]+(J[b+(d<<2)>>2]<<2)>>2];b=J[a+4>>2];if(!K[b+84|0]){e=J[J[b+68>>2]+(e<<2)>>2]}J[f+24>>2]=0;J[f+28>>2]=0;J[f+16>>2]=0;J[f+20>>2]=0;J[f+8>>2]=0;J[f+12>>2]=0;hb(b,e,H[b+24|0],f+8|0);g=J[f+8>>2];b=J[f+56>>2];e=g-b|0;p=J[f+60>>2];t=J[f+12>>2]-(p+(b>>>0>g>>>0)|0)|0;h=J[f+40>>2];d=J[f+64>>2];n=h-d|0;u=J[f+68>>2];x=J[f+44>>2]-(u+(d>>>0>h>>>0)|0)|0;g=Hl(e,t,n,x);v=o-g|0;w=i-(ca+(g>>>0>o>>>0)|0)|0;i=v;h=J[f+16>>2];g=h-d|0;u=J[f+20>>2]-((d>>>0>h>>>0)+u|0)|0;k=J[f+32>>2];h=k-b|0;v=J[f+36>>2]-((b>>>0>k>>>0)+p|0)|0;b=Hl(g,u,h,v);o=i+b|0;i=ca+w|0;i=b>>>0>o>>>0?i+1|0:i;b=l;l=e;p=t;k=J[f+48>>2];d=J[f+72>>2];e=k-d|0;t=J[f+76>>2];w=J[f+52>>2]-(t+(d>>>0>k>>>0)|0)|0;l=Hl(l,p,e,w);k=b+l|0;b=ca+q|0;b=k>>>0>>0?b+1|0:b;l=J[f+24>>2];p=l-d|0;d=J[f+28>>2]-((d>>>0>l>>>0)+t|0)|0;q=Hl(p,d,h,v);l=k-q|0;q=b-(ca+(k>>>0>>0)|0)|0;b=Hl(g,u,e,w);e=r-b|0;b=s-(ca+(b>>>0>r>>>0)|0)|0;s=Hl(p,d,n,x);r=s+e|0;b=ca+b|0;s=r>>>0>>0?b+1|0:b;b=J[f+88>>2];e=J[f+80>>2];e:{if(K[f+92|0]){f:{g:{h:{i:{if((b|0)==-1){break i}d=b+1|0;b=(d>>>0)%3|0?d:b-2|0;if((b|0)==-1){break i}b=J[J[e+12>>2]+(b<<2)>>2];if((b|0)!=-1){break h}}J[f+88>>2]=-1;break g}d=b+1|0;b=(d>>>0)%3|0?d:b-2|0;J[f+88>>2]=b;if((b|0)!=-1){break f}}b=J[f+84>>2];d=-1;j:{if((b|0)==-1){break j}k:{if((b>>>0)%3|0){b=b-1|0;break k}b=b+2|0;d=-1;if((b|0)==-1){break j}}b=J[J[e+12>>2]+(b<<2)>>2];d=-1;if((b|0)==-1){break j}d=b-1|0;if((b>>>0)%3|0){break j}d=b+2|0}H[f+92|0]=0;J[f+88>>2]=d;break e}if((b|0)!=J[f+84>>2]){break e}J[f+88>>2]=-1;break e}d=-1;l:{if((b|0)==-1){break l}m:{if((b>>>0)%3|0){b=b-1|0;break m}b=b+2|0;d=-1;if((b|0)==-1){break l}}b=J[J[e+12>>2]+(b<<2)>>2];d=-1;if((b|0)==-1){break l}d=b-1|0;if((b>>>0)%3|0){break l}d=b+2|0}J[f+88>>2]=d}b=J[f+88>>2];if((b|0)!=-1){continue}break}b=s>>31;d=b^r;e=d-b|0;b=(b^s)-((b>>>0>d>>>0)+b|0)|0;m=-1;d=2147483647;g=q>>31;h=g^l;j=h-g|0;n=(g^q)-((h>>>0>>0)+g|0)|0;h=n;k=j^-1;g=h^2147483647;n=i;n:{o:{if(!J[a+28>>2]){if((b|0)==(g|0)&e>>>0>k>>>0|b>>>0>g>>>0){break n}b=b+h|0;a=e+j|0;b=a>>>0>>0?b+1|0:b;d=a;g=i;a=g>>31;e=a;m=e^o;a=m-e|0;i=a;e=(e^g)-((e>>>0>m>>>0)+e|0)|0;a=a+d|0;e=e^2147483647;i=(e|0)==(b|0)&(i^-1)>>>0>>0|b>>>0>e>>>0;a=i?-1:a;if(!(i&0)&(a|0)<=536870912|(a|0)<536870912){break n}b=0;a=a>>>29|0;break o}p:{if((b|0)==(g|0)&e>>>0>k>>>0|b>>>0>g>>>0){break p}b=b+h|0;a=e+j|0;b=a>>>0>>0?b+1|0:b;k=i;e=i>>31;h=e^o;i=h-e|0;j=(e^k)-((e>>>0>h>>>0)+e|0)|0;g=j^2147483647;e=a;a=i;if((g|0)==(b|0)&e>>>0>(a^-1)>>>0|b>>>0>g>>>0){break p}b=b+j|0;m=a+e|0;b=m>>>0>>0?b+1|0:b;d=b;if(!b&m>>>0<536870913){break n}}b=d>>>29|0;a=(d&536870911)<<3|m>>>29}o=Il(o,n,a,b);l=Il(l,q,a,b);r=Il(r,s,a,b)}J[c+8>>2]=o;J[c+4>>2]=l;J[c>>2]=r;ba=f+96|0;return}ra();B()}ra();B()}ra();B()}function Jd(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=Q(0),o=0,p=0,q=0,r=0,s=0,t=Q(0);h=ba-80|0;ba=h;J[h+56>>2]=0;J[h+60>>2]=0;J[h+48>>2]=0;J[h+52>>2]=0;J[h+64>>2]=1065353216;c=J[a+80>>2];J[h+32>>2]=0;J[h+24>>2]=0;J[h+28>>2]=0;a:{if(c){if(c>>>0>=1073741824){break a}f=c<<2;k=oa(f);J[h+24>>2]=k;c=f+k|0;J[h+32>>2]=c;pa(k,0,f);J[h+28>>2]=c;while(1){d=J[J[b>>2]>>2];f=J[b+48>>2];c=Hl(J[b+40>>2],J[b+44>>2],m,0);g=c;c=c+f|0;c=c+d|0;f=K[c|0]|K[c+1|0]<<8|(K[c+2|0]<<16|K[c+3|0]<<24);c=K[c+4|0]|K[c+5|0]<<8|(K[c+6|0]<<16|K[c+7|0]<<24);J[h+40>>2]=f;J[h+44>>2]=c;J[h+16>>2]=p;J[h+8>>2]=f;J[h+12>>2]=c;c=0;o=h+8|0;f=J[o+4>>2]^(J[o>>2]^318)+239;b:{c:{l=h+48|0;g=J[l+4>>2];if(!g){break c}d=Kl(g);d:{if(d>>>0>=2){c=f;if(c>>>0>=g>>>0){c=(f>>>0)%(g>>>0)|0}j=J[J[l>>2]+(c<<2)>>2];if(!j){break c}if(d>>>0<2){break d}i=J[o+4>>2];r=J[o>>2];while(1){j=J[j>>2];if(!j){break c}d=J[j+4>>2];if((d|0)!=(f|0)){if(d>>>0>=g>>>0){d=(d>>>0)%(g>>>0)|0}if((c|0)!=(d|0)){break c}}d=J[j+8>>2];e:{if((d|0)!=(r|0)){d=(d|0)==(r|0);break e}d=(i|0)==J[j+12>>2]}if(!d){continue}break}c=0;break b}c=f&g-1;j=J[J[l>>2]+(c<<2)>>2];if(!j){break c}}r=g-1|0;i=J[o+4>>2];s=J[o>>2];while(1){j=J[j>>2];if(!j){break c}d=J[j+4>>2];if((d|0)!=(f|0)&(d&r)!=(c|0)){break c}d=J[j+8>>2];f:{if((d|0)!=(s|0)){d=(d|0)==(s|0);break f}d=(i|0)==J[j+12>>2]}if(!d){continue}break}c=0;break b}j=oa(20);d=J[o+4>>2];J[j+8>>2]=J[o>>2];J[j+12>>2]=d;d=J[o+8>>2];J[j+4>>2]=f;J[j+16>>2]=d;J[j>>2]=0;n=Q(J[l+12>>2]+1>>>0);t=N[l+16>>2];g:{if(n>Q(t*Q(g>>>0))?0:g){break g}c=2;d=(g-1&g)!=0|g>>>0<3|g<<1;n=Q(W(Q(n/t)));h:{if(n=Q(0)){i=~~n>>>0;break h}i=0}d=d>>>0>i>>>0?d:i;i:{if((d|0)==1){break i}if(!(d&d-1)){c=d;break i}c=Ha(d);g=J[l+4>>2]}j:{if(c>>>0<=g>>>0){if(c>>>0>=g>>>0){break j}i=g>>>0<3;n=Q(W(Q(Q(M[l+12>>2])/N[l+16>>2])));k:{if(n=Q(0)){d=~~n>>>0;break k}d=0}l:{m:{if(i){break m}if(Kl(g)>>>0>1){break m}d=d>>>0<2?d:1<<32-S(d-1|0);break l}d=Ha(d)}c=c>>>0>d>>>0?c:d;if(g>>>0<=c>>>0){break j}}db(l,c)}g=J[l+4>>2];c=g-1|0;if(!(c&g)){c=c&f;break g}if(f>>>0>>0){c=f;break g}c=(f>>>0)%(g>>>0)|0}f=J[l>>2]+(c<<2)|0;c=J[f>>2];n:{o:{if(!c){c=l+8|0;J[j>>2]=J[c>>2];J[l+8>>2]=j;J[f>>2]=c;c=J[j>>2];if(!c){break n}c=J[c+4>>2];f=g-1|0;p:{if(!(f&g)){c=c&f;break p}if(c>>>0>>0){break p}c=(c>>>0)%(g>>>0)|0}c=J[l>>2]+(c<<2)|0;break o}J[j>>2]=J[c>>2]}J[c>>2]=j}J[l+12>>2]=J[l+12>>2]+1;c=1}H[h+76|0]=c;J[h+72>>2]=j;q:{if(!K[h+76|0]){J[(m<<2)+k>>2]=J[J[h+72>>2]+16>>2];break q}c=J[a+40>>2];ua(J[J[a>>2]>>2]+P(c,p)|0,h+40|0,c);k=J[h+24>>2];J[k+(m<<2)>>2]=p;p=p+1|0}m=m+1|0;e=m?e:e+1|0;i=J[a+80>>2];if(!e&m>>>0>>0){continue}break}if((i|0)!=(p|0)){r:{if(!K[a+84|0]){b=J[a+72>>2];i=J[a+68>>2];if((b|0)==(i|0)){break r}b=b-i>>2;e=b>>>0<=1?1:b;f=e&3;c=0;b=0;if(e-1>>>0>=3){m=e&-4;while(1){d=b<<2;e=d+i|0;J[e>>2]=J[(J[e>>2]<<2)+k>>2];e=i+(d|4)|0;J[e>>2]=J[(J[e>>2]<<2)+k>>2];e=i+(d|8)|0;J[e>>2]=J[(J[e>>2]<<2)+k>>2];e=i+(d|12)|0;J[e>>2]=J[(J[e>>2]<<2)+k>>2];b=b+4|0;q=q+4|0;if((m|0)!=(q|0)){continue}break}}if(!f){break r}while(1){e=i+(b<<2)|0;J[e>>2]=J[(J[e>>2]<<2)+k>>2];b=b+1|0;c=c+1|0;if((f|0)!=(c|0)){continue}break}break r}H[a+84|0]=0;e=a+68|0;b=J[a+68>>2];c=J[a+72>>2]-b>>2;s:{if(c>>>0>>0){Ma(e,i-c|0,2176);i=J[a+80>>2];break s}if(c>>>0<=i>>>0){break s}J[a+72>>2]=b+(i<<2)}if(!i){break r}d=J[e>>2];c=0;b=0;if(i>>>0>=4){m=i&-4;while(1){f=b<<2;J[f+d>>2]=J[f+k>>2];e=f|4;J[e+d>>2]=J[e+k>>2];e=f|8;J[e+d>>2]=J[e+k>>2];e=f|12;J[e+d>>2]=J[e+k>>2];b=b+4|0;q=q+4|0;if((m|0)!=(q|0)){continue}break}}m=i&3;if(!m){break r}while(1){e=b<<2;J[e+d>>2]=J[e+k>>2];b=b+1|0;c=c+1|0;if((m|0)!=(c|0)){continue}break}}J[a+80>>2]=p}na(k)}b=J[h+56>>2];if(b){while(1){a=J[b>>2];na(b);b=a;if(b){continue}break}}a=J[h+48>>2];J[h+48>>2]=0;if(a){na(a)}ba=h+80|0;return p}qa();B()}function fb(a){var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;f=ba-32|0;ba=f;a:{b=J[a+16>>2];b:{if(b>>>0>=113){J[a+16>>2]=b-113;b=J[a+4>>2];j=J[b>>2];c=b+4|0;J[a+4>>2]=c;b=J[a+8>>2];c:{if((b|0)!=J[a+12>>2]){d=b;break c}k=J[a>>2];if(k>>>0>>0){e=((c-k>>2)+1|0)/-2<<2;b=b-c|0;d=ta(e+c|0,c,b)+b|0;J[a+8>>2]=d;J[a+4>>2]=e+J[a+4>>2];break c}d=(b|0)==(k|0)?1:b-k>>1;if(d>>>0>=1073741824){break a}e=d<<2;h=oa(e);l=e+h|0;e=h+(d&-4)|0;d=e;d:{if((b|0)==(c|0)){break d}b=b-c|0;m=b&-4;i=b-4|0;g=(i>>>2|0)+1&7;e:{if(!g){b=e;break e}d=0;b=e;while(1){J[b>>2]=J[c>>2];c=c+4|0;b=b+4|0;d=d+1|0;if((g|0)!=(d|0)){continue}break}}d=e+m|0;if(i>>>0<28){break d}while(1){J[b>>2]=J[c>>2];J[b+4>>2]=J[c+4>>2];J[b+8>>2]=J[c+8>>2];J[b+12>>2]=J[c+12>>2];J[b+16>>2]=J[c+16>>2];J[b+20>>2]=J[c+20>>2];J[b+24>>2]=J[c+24>>2];J[b+28>>2]=J[c+28>>2];c=c+32|0;b=b+32|0;if((d|0)!=(b|0)){continue}break}}J[a+12>>2]=l;J[a+8>>2]=d;J[a+4>>2]=e;J[a>>2]=h;if(!k){break c}na(k);d=J[a+8>>2]}J[d>>2]=j;J[a+8>>2]=J[a+8>>2]+4;break b}c=J[a+8>>2];b=J[a+4>>2];l=c-b|0;h=l>>2;g=J[a+12>>2];d=J[a>>2];e=g-d|0;if(h>>>0>2>>>0){if((c|0)!=(g|0)){n=f,o=oa(4068),J[n+8>>2]=o;d=a;f:{g:{b=J[a+8>>2];h:{if((b|0)!=J[a+12>>2]){e=b;break h}c=J[d+4>>2];h=J[d>>2];if(c>>>0>h>>>0){g=((c-h>>2)+1|0)/-2<<2;a=b-c|0;e=ta(g+c|0,c,a)+a|0;J[d+8>>2]=e;J[d+4>>2]=g+J[d+4>>2];break h}e=(b|0)==(h|0)?1:b-h>>1;if(e>>>0>=1073741824){break g}a=e<<2;j=oa(a);l=a+j|0;a=j+(e&-4)|0;e=a;i:{if((b|0)==(c|0)){break i}b=b-c|0;m=b&-4;i=b-4|0;g=(i>>>2|0)+1&7;j:{if(!g){b=a;break j}e=0;b=a;while(1){J[b>>2]=J[c>>2];c=c+4|0;b=b+4|0;e=e+1|0;if((g|0)!=(e|0)){continue}break}}e=a+m|0;if(i>>>0<28){break i}while(1){J[b>>2]=J[c>>2];J[b+4>>2]=J[c+4>>2];J[b+8>>2]=J[c+8>>2];J[b+12>>2]=J[c+12>>2];J[b+16>>2]=J[c+16>>2];J[b+20>>2]=J[c+20>>2];J[b+24>>2]=J[c+24>>2];J[b+28>>2]=J[c+28>>2];c=c+32|0;b=b+32|0;if((e|0)!=(b|0)){continue}break}}J[d+12>>2]=l;J[d+8>>2]=e;J[d+4>>2]=a;J[d>>2]=j;if(!h){break h}na(h);e=J[d+8>>2]}J[e>>2]=J[f+8>>2];J[d+8>>2]=J[d+8>>2]+4;break f}xa();B()}break b}n=f,o=oa(4068),J[n+8>>2]=o;qe(a,f+8|0);b=J[a+4>>2];j=J[b>>2];c=b+4|0;J[a+4>>2]=c;b=J[a+8>>2];k:{if((b|0)!=J[a+12>>2]){d=b;break k}k=J[a>>2];if(k>>>0>>0){e=((c-k>>2)+1|0)/-2<<2;b=b-c|0;d=ta(e+c|0,c,b)+b|0;J[a+8>>2]=d;J[a+4>>2]=e+J[a+4>>2];break k}d=(b|0)==(k|0)?1:b-k>>1;if(d>>>0>=1073741824){break a}e=d<<2;h=oa(e);l=e+h|0;e=h+(d&-4)|0;d=e;l:{if((b|0)==(c|0)){break l}b=b-c|0;m=b&-4;i=b-4|0;g=(i>>>2|0)+1&7;m:{if(!g){b=e;break m}d=0;b=e;while(1){J[b>>2]=J[c>>2];c=c+4|0;b=b+4|0;d=d+1|0;if((g|0)!=(d|0)){continue}break}}d=e+m|0;if(i>>>0<28){break l}while(1){J[b>>2]=J[c>>2];J[b+4>>2]=J[c+4>>2];J[b+8>>2]=J[c+8>>2];J[b+12>>2]=J[c+12>>2];J[b+16>>2]=J[c+16>>2];J[b+20>>2]=J[c+20>>2];J[b+24>>2]=J[c+24>>2];J[b+28>>2]=J[c+28>>2];c=c+32|0;b=b+32|0;if((d|0)!=(b|0)){continue}break}}J[a+12>>2]=l;J[a+8>>2]=d;J[a+4>>2]=e;J[a>>2]=h;if(!k){break k}na(k);d=J[a+8>>2]}J[d>>2]=j;J[a+8>>2]=J[a+8>>2]+4;break b}J[f+24>>2]=a+12;m=(d|0)==(g|0)?1:e>>1;if(m>>>0>=1073741824){break a}e=m<<2;g=oa(e);J[f+8>>2]=g;j=e+g|0;J[f+20>>2]=j;d=(h<<2)+g|0;J[f+12>>2]=d;i=oa(4068);n:{if((h|0)!=(m|0)){break n}if((l|0)>0){d=((h+1|0)/-2<<2)+d|0;J[f+12>>2]=d;break n}d=(b|0)==(c|0)?1:l>>1;if(d>>>0>=1073741824){break a}b=d<<2;e=oa(b);J[f+8>>2]=e;j=b+e|0;J[f+20>>2]=j;d=e+(d&-4)|0;J[f+12>>2]=d;na(g);b=J[a+4>>2];c=J[a+8>>2];g=e}J[d>>2]=i;i=d+4|0;J[f+16>>2]=i;e=b;if((b|0)!=(c|0)){while(1){c=c-4|0;qe(f+8|0,c);if(J[a+4>>2]!=(c|0)){continue}break}j=J[f+20>>2];i=J[f+16>>2];d=J[f+12>>2];g=J[f+8>>2];e=c;b=J[a+8>>2]}c=J[a>>2];J[a>>2]=g;J[f+8>>2]=c;J[a+4>>2]=d;J[f+12>>2]=e;J[a+8>>2]=i;J[f+16>>2]=b;d=J[a+12>>2];J[a+12>>2]=j;J[f+20>>2]=d;if((b|0)!=(e|0)){J[f+16>>2]=((e-b|0)+3&-4)+b}if(!c){break b}na(c)}ba=f+32|0;return}xa();B()}function _k(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;k=ba-48|0;ba=k;J[a+68>>2]=f;o=a+112|0;za(o);d=J[a+56>>2];e=J[d>>2];d=J[d+4>>2];J[k+40>>2]=0;J[k+32>>2]=0;J[k+36>>2]=0;J[k+16>>2]=0;J[k+20>>2]=0;J[k+8>>2]=0;J[k+12>>2]=0;J[k>>2]=0;J[k+4>>2]=0;a:{d=d-e|0;if((d|0)>0){p=a+60|0;d=d>>>2|0;q=d>>>0<=1?1:d;r=c+4|0;while(1){e=J[a+56>>2];d=J[e>>2];if(J[e+4>>2]-d>>2>>>0<=n>>>0){break a}Tc(p,J[d+(n<<2)>>2],k+32|0);f=J[k+36>>2];d=f>>31;g=J[k+32>>2];e=g>>31;i=(d^f)-d+((e^g)-e)|0;h=J[k+40>>2];d=h>>31;e=(d^h)-d|0;d=0;m=e;e=e+i|0;d=m>>>0>e>>>0?1:d;b:{if(!(d|e)){j=J[a+108>>2];i=j;break b}j=J[a+108>>2];i=j>>31;f=Il(Hl(j,i,f,f>>31),ca,e,d);l=f>>31;i=Il(Hl(j,i,g,g>>31),ca,e,d);d=i>>31;d=(f^l)-l+((d^i)-d)|0;h=(h|0)<0?d-j|0:j-d|0}c:{if((i|0)>=0){e=f+j|0;l=h+j|0;break c}d:{if((f|0)<0){d=h>>31;e=(d^h)-d|0;break d}d=h>>31;e=J[a+100>>2]+(d-(d^h)|0)|0}if((h|0)<0){d=f>>31;l=(d^f)-d|0;break c}d=f>>31;l=J[a+100>>2]+(d-(d^f)|0)|0}d=J[a+100>>2];m=d;g=d;e:{if(!(e|l)){break e}if(!((d|0)!=(l|0)|e)){m=l;g=l;break e}if(!((d|0)!=(e|0)|l)){m=e;g=e;break e}if(!((j|0)>=(l|0)|e)){m=(j<<1)-l|0;g=0;break e}if(!((d|0)!=(e|0)|(j|0)<=(l|0))){m=(j<<1)-l|0;g=e;break e}if(!((d|0)!=(l|0)|(e|0)>=(j|0))){m=l;g=(j<<1)-e|0;break e}if(l){m=l;g=e;break e}m=0;g=e;if((e|0)<=(j|0)){break e}g=(j<<1)-e|0}J[k+28>>2]=m;J[k+24>>2]=g;J[k+40>>2]=0-h;J[k+36>>2]=0-f;J[k+32>>2]=0-i;f:{if((i|0)<=0){i=j-h|0;e=j-f|0;break f}e=f>>31;e=(e^f)-e|0;i=(h|0)>0?e:d-e|0;e=h>>31;e=(e^h)-e|0;e=(f|0)>0?e:d-e|0}g:{if(!(e|i)){i=d;break g}if(!((d|0)!=(i|0)|e)){i=d;break g}f=(d|0)!=(e|0);if(!(i|f)){i=d;break g}if(!((i|0)<=(j|0)|e)){i=(j<<1)-i|0;d=0;break g}if(!((i|0)>=(j|0)|f)){i=(j<<1)-i|0;break g}if(!((d|0)!=(i|0)|(e|0)>=(j|0))){i=d;d=(j<<1)-e|0;break g}if(i){d=e;break g}i=0;if((e|0)<=(j|0)){d=e;break g}d=(j<<1)-e|0}J[k+20>>2]=i;J[k+16>>2]=d;h=J[a+8>>2];h:{if((h|0)<=0){break h}l=(n<<3)+b|0;i=J[a+32>>2];e=0;g=k+24|0;while(1){j=i;if((h|0)>0){j=J[a+32>>2];f=0;while(1){d=f<<2;m=J[d+g>>2];h=J[a+16>>2];i:{if((m|0)>(h|0)){J[d+j>>2]=h;break i}d=d+j|0;h=J[a+12>>2];if((h|0)>(m|0)){J[d>>2]=h;break i}J[d>>2]=m}f=f+1|0;h=J[a+8>>2];if((f|0)<(h|0)){continue}break}}f=e<<2;d=f+(k+8|0)|0;g=J[f+l>>2]-J[f+j>>2]|0;J[d>>2]=g;f=d;d=J[a+28>>2];j:{if((g|0)<(d|0)){g=g+J[a+20>>2]|0}else{if((g|0)<=J[a+24>>2]){break j}g=g-J[a+20>>2]|0}J[f>>2]=g}g=j;e=e+1|0;if((e|0)<(h|0)){continue}break}if((h|0)<=0){break h}i=J[a+32>>2];e=0;g=k+16|0;while(1){j=i;if((h|0)>0){j=J[a+32>>2];f=0;while(1){d=f<<2;m=J[d+g>>2];h=J[a+16>>2];k:{if((m|0)>(h|0)){J[d+j>>2]=h;break k}d=d+j|0;h=J[a+12>>2];if((h|0)>(m|0)){J[d>>2]=h;break k}J[d>>2]=m}f=f+1|0;h=J[a+8>>2];if((f|0)<(h|0)){continue}break}d=J[a+28>>2]}g=e<<2;f=g+k|0;g=J[g+l>>2]-J[j+g>>2]|0;J[f>>2]=g;l:{if((d|0)>(g|0)){g=g+J[a+20>>2]|0}else{if((g|0)<=J[a+24>>2]){break l}g=g-J[a+20>>2]|0}J[f>>2]=g}g=j;e=e+1|0;if((e|0)<(h|0)){continue}break}}f=J[k+8>>2];e=J[a+108>>2];m:{if((f|0)>(e|0)){f=f-J[a+96>>2]|0;break m}if((0-e|0)<=(f|0)){break m}f=J[a+96>>2]+f|0}J[k+8>>2]=f;h=J[k+12>>2];n:{if((e|0)<(h|0)){h=h-J[a+96>>2]|0;break n}if((0-e|0)<=(h|0)){break n}h=J[a+96>>2]+h|0}J[k+12>>2]=h;d=J[k>>2];o:{if((e|0)<(d|0)){d=d-J[a+96>>2]|0;break o}if((0-e|0)<=(d|0)){break o}d=J[a+96>>2]+d|0}g=n<<1;J[k>>2]=d;i=J[k+4>>2];p:{if((e|0)<(i|0)){i=i-J[a+96>>2]|0;break p}if((0-e|0)<=(i|0)){break p}i=J[a+96>>2]+i|0}J[k+4>>2]=i;e=h>>31;e=(e^h)-e|0;l=f>>31;l=(l^f)-l|0;m=l>>>0>(e^2147483647)>>>0?2147483647:e+l|0;e=i>>31;e=(e^i)-e|0;l=d>>31;l=(l^d)-l|0;e=m>>>0>=(l>>>0>(e^2147483647)>>>0?2147483647:e+l|0)>>>0;Ca(o,e);g=g<<2;d=e?d:f;J[g+c>>2]=(J[a+96>>2]&d>>31)+d;d=e?i:h;J[g+r>>2]=(J[a+96>>2]&d>>31)+d;n=n+1|0;if((q|0)!=(n|0)){continue}break}}ba=k+48|0;return 1}ra();B()}function Qk(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;k=ba-48|0;ba=k;J[a+68>>2]=f;o=a+112|0;za(o);d=J[a+56>>2];e=J[d>>2];d=J[d+4>>2];J[k+40>>2]=0;J[k+32>>2]=0;J[k+36>>2]=0;J[k+16>>2]=0;J[k+20>>2]=0;J[k+8>>2]=0;J[k+12>>2]=0;J[k>>2]=0;J[k+4>>2]=0;a:{d=d-e|0;if((d|0)>0){p=a+60|0;d=d>>>2|0;q=d>>>0<=1?1:d;r=c+4|0;while(1){e=J[a+56>>2];d=J[e>>2];if(J[e+4>>2]-d>>2>>>0<=n>>>0){break a}Rc(p,J[d+(n<<2)>>2],k+32|0);f=J[k+36>>2];d=f>>31;g=J[k+32>>2];e=g>>31;i=(d^f)-d+((e^g)-e)|0;h=J[k+40>>2];d=h>>31;e=(d^h)-d|0;d=0;m=e;e=e+i|0;d=m>>>0>e>>>0?1:d;b:{if(!(d|e)){j=J[a+108>>2];i=j;break b}j=J[a+108>>2];i=j>>31;f=Il(Hl(j,i,f,f>>31),ca,e,d);l=f>>31;i=Il(Hl(j,i,g,g>>31),ca,e,d);d=i>>31;d=(f^l)-l+((d^i)-d)|0;h=(h|0)<0?d-j|0:j-d|0}c:{if((i|0)>=0){e=f+j|0;l=h+j|0;break c}d:{if((f|0)<0){d=h>>31;e=(d^h)-d|0;break d}d=h>>31;e=J[a+100>>2]+(d-(d^h)|0)|0}if((h|0)<0){d=f>>31;l=(d^f)-d|0;break c}d=f>>31;l=J[a+100>>2]+(d-(d^f)|0)|0}d=J[a+100>>2];m=d;g=d;e:{if(!(e|l)){break e}if(!((d|0)!=(l|0)|e)){m=l;g=l;break e}if(!((d|0)!=(e|0)|l)){m=e;g=e;break e}if(!((j|0)>=(l|0)|e)){m=(j<<1)-l|0;g=0;break e}if(!((d|0)!=(e|0)|(j|0)<=(l|0))){m=(j<<1)-l|0;g=e;break e}if(!((d|0)!=(l|0)|(e|0)>=(j|0))){m=l;g=(j<<1)-e|0;break e}if(l){m=l;g=e;break e}m=0;g=e;if((e|0)<=(j|0)){break e}g=(j<<1)-e|0}J[k+28>>2]=m;J[k+24>>2]=g;J[k+40>>2]=0-h;J[k+36>>2]=0-f;J[k+32>>2]=0-i;f:{if((i|0)<=0){i=j-h|0;e=j-f|0;break f}e=f>>31;e=(e^f)-e|0;i=(h|0)>0?e:d-e|0;e=h>>31;e=(e^h)-e|0;e=(f|0)>0?e:d-e|0}g:{if(!(e|i)){i=d;break g}if(!((d|0)!=(i|0)|e)){i=d;break g}f=(d|0)!=(e|0);if(!(i|f)){i=d;break g}if(!((i|0)<=(j|0)|e)){i=(j<<1)-i|0;d=0;break g}if(!((i|0)>=(j|0)|f)){i=(j<<1)-i|0;break g}if(!((d|0)!=(i|0)|(e|0)>=(j|0))){i=d;d=(j<<1)-e|0;break g}if(i){d=e;break g}i=0;if((e|0)<=(j|0)){d=e;break g}d=(j<<1)-e|0}J[k+20>>2]=i;J[k+16>>2]=d;h=J[a+8>>2];h:{if((h|0)<=0){break h}l=(n<<3)+b|0;i=J[a+32>>2];e=0;g=k+24|0;while(1){j=i;if((h|0)>0){j=J[a+32>>2];f=0;while(1){d=f<<2;m=J[d+g>>2];h=J[a+16>>2];i:{if((m|0)>(h|0)){J[d+j>>2]=h;break i}d=d+j|0;h=J[a+12>>2];if((h|0)>(m|0)){J[d>>2]=h;break i}J[d>>2]=m}f=f+1|0;h=J[a+8>>2];if((f|0)<(h|0)){continue}break}}f=e<<2;d=f+(k+8|0)|0;g=J[f+l>>2]-J[f+j>>2]|0;J[d>>2]=g;f=d;d=J[a+28>>2];j:{if((g|0)<(d|0)){g=g+J[a+20>>2]|0}else{if((g|0)<=J[a+24>>2]){break j}g=g-J[a+20>>2]|0}J[f>>2]=g}g=j;e=e+1|0;if((e|0)<(h|0)){continue}break}if((h|0)<=0){break h}i=J[a+32>>2];e=0;g=k+16|0;while(1){j=i;if((h|0)>0){j=J[a+32>>2];f=0;while(1){d=f<<2;m=J[d+g>>2];h=J[a+16>>2];k:{if((m|0)>(h|0)){J[d+j>>2]=h;break k}d=d+j|0;h=J[a+12>>2];if((h|0)>(m|0)){J[d>>2]=h;break k}J[d>>2]=m}f=f+1|0;h=J[a+8>>2];if((f|0)<(h|0)){continue}break}d=J[a+28>>2]}g=e<<2;f=g+k|0;g=J[g+l>>2]-J[j+g>>2]|0;J[f>>2]=g;l:{if((d|0)>(g|0)){g=g+J[a+20>>2]|0}else{if((g|0)<=J[a+24>>2]){break l}g=g-J[a+20>>2]|0}J[f>>2]=g}g=j;e=e+1|0;if((e|0)<(h|0)){continue}break}}f=J[k+8>>2];e=J[a+108>>2];m:{if((f|0)>(e|0)){f=f-J[a+96>>2]|0;break m}if((0-e|0)<=(f|0)){break m}f=J[a+96>>2]+f|0}J[k+8>>2]=f;h=J[k+12>>2];n:{if((e|0)<(h|0)){h=h-J[a+96>>2]|0;break n}if((0-e|0)<=(h|0)){break n}h=J[a+96>>2]+h|0}J[k+12>>2]=h;d=J[k>>2];o:{if((e|0)<(d|0)){d=d-J[a+96>>2]|0;break o}if((0-e|0)<=(d|0)){break o}d=J[a+96>>2]+d|0}g=n<<1;J[k>>2]=d;i=J[k+4>>2];p:{if((e|0)<(i|0)){i=i-J[a+96>>2]|0;break p}if((0-e|0)<=(i|0)){break p}i=J[a+96>>2]+i|0}J[k+4>>2]=i;e=h>>31;e=(e^h)-e|0;l=f>>31;l=(l^f)-l|0;m=l>>>0>(e^2147483647)>>>0?2147483647:e+l|0;e=i>>31;e=(e^i)-e|0;l=d>>31;l=(l^d)-l|0;e=m>>>0>=(l>>>0>(e^2147483647)>>>0?2147483647:e+l|0)>>>0;Ca(o,e);g=g<<2;d=e?d:f;J[g+c>>2]=(J[a+96>>2]&d>>31)+d;d=e?i:h;J[g+r>>2]=(J[a+96>>2]&d>>31)+d;n=n+1|0;if((q|0)!=(n|0)){continue}break}}ba=k+48|0;return 1}ra();B()}function Ef(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=Q(0),p=0,q=0,r=0,s=Q(0);h=ba+-64|0;ba=h;J[h+40>>2]=0;J[h+44>>2]=0;J[h+32>>2]=0;J[h+36>>2]=0;J[h+48>>2]=1065353216;c=J[a+80>>2];J[h+24>>2]=0;J[h+16>>2]=0;J[h+20>>2]=0;a:{if(c){if(c>>>0>=1073741824){break a}f=c<<2;k=oa(f);J[h+16>>2]=k;c=f+k|0;J[h+24>>2]=c;pa(k,0,f);J[h+20>>2]=c;while(1){d=J[J[b>>2]>>2];f=J[b+48>>2];c=Hl(J[b+40>>2],J[b+44>>2],n,0);g=c;c=c+f|0;c=c+d|0;c=K[c|0]|K[c+1|0]<<8|(K[c+2|0]<<16|K[c+3|0]<<24);J[h+28>>2]=c;J[h+12>>2]=q;J[h+8>>2]=c;c=0;p=h+8|0;f=L[p+2>>1]^(L[p>>1]^318)+239;b:{c:{m=h+32|0;g=J[m+4>>2];if(!g){break c}d=Kl(g);d:{if(d>>>0>=2){c=f;if(c>>>0>=g>>>0){c=(f>>>0)%(g>>>0)|0}i=J[J[m>>2]+(c<<2)>>2];if(!i){break c}if(d>>>0<2){break d}j=L[p>>1];l=L[p+2>>1];while(1){i=J[i>>2];if(!i){break c}d=J[i+4>>2];if((d|0)!=(f|0)){if(d>>>0>=g>>>0){d=(d>>>0)%(g>>>0)|0}if((c|0)!=(d|0)){break c}}d=L[i+8>>1];e:{if((d|0)!=(j|0)){d=(d|0)==(j|0);break e}d=(l|0)==L[i+10>>1]}if(!d){continue}break}c=0;break b}c=f&g+131071;i=J[J[m>>2]+(c<<2)>>2];if(!i){break c}}j=g-1|0;r=L[p>>1];l=L[p+2>>1];while(1){i=J[i>>2];if(!i){break c}d=J[i+4>>2];if((d|0)!=(f|0)&(d&j)!=(c|0)){break c}d=L[i+8>>1];f:{if((d|0)!=(r|0)){d=(d|0)==(r|0);break f}d=(l|0)==L[i+10>>1]}if(!d){continue}break}c=0;break b}i=oa(16);J[i+8>>2]=J[p>>2];d=J[p+4>>2];J[i+4>>2]=f;J[i+12>>2]=d;J[i>>2]=0;o=Q(J[m+12>>2]+1>>>0);s=N[m+16>>2];g:{if(o>Q(s*Q(g>>>0))?0:g){break g}c=2;d=(g-1&g)!=0|g>>>0<3|g<<1;o=Q(W(Q(o/s)));h:{if(o=Q(0)){l=~~o>>>0;break h}l=0}d=d>>>0>l>>>0?d:l;i:{if((d|0)==1){break i}if(!(d&d-1)){c=d;break i}c=Ha(d);g=J[m+4>>2]}j:{if(c>>>0<=g>>>0){if(c>>>0>=g>>>0){break j}l=g>>>0<3;o=Q(W(Q(Q(M[m+12>>2])/N[m+16>>2])));k:{if(o=Q(0)){d=~~o>>>0;break k}d=0}l:{m:{if(l){break m}if(Kl(g)>>>0>1){break m}d=d>>>0<2?d:1<<32-S(d-1|0);break l}d=Ha(d)}c=c>>>0>d>>>0?c:d;if(g>>>0<=c>>>0){break j}}db(m,c)}g=J[m+4>>2];c=g-1|0;if(!(c&g)){c=c&f;break g}if(f>>>0>>0){c=f;break g}c=(f>>>0)%(g>>>0)|0}f=J[m>>2]+(c<<2)|0;c=J[f>>2];n:{o:{if(!c){c=m+8|0;J[i>>2]=J[c>>2];J[m+8>>2]=i;J[f>>2]=c;c=J[i>>2];if(!c){break n}c=J[c+4>>2];f=g-1|0;p:{if(!(f&g)){c=c&f;break p}if(c>>>0>>0){break p}c=(c>>>0)%(g>>>0)|0}c=J[m>>2]+(c<<2)|0;break o}J[i>>2]=J[c>>2]}J[c>>2]=i}J[m+12>>2]=J[m+12>>2]+1;c=1}H[h+60|0]=c;J[h+56>>2]=i;q:{if(!K[h+60|0]){J[(n<<2)+k>>2]=J[J[h+56>>2]+12>>2];break q}c=J[a+40>>2];ua(J[J[a>>2]>>2]+P(c,q)|0,h+28|0,c);k=J[h+16>>2];J[k+(n<<2)>>2]=q;q=q+1|0}n=n+1|0;e=n?e:e+1|0;j=J[a+80>>2];if(!e&n>>>0>>0){continue}break}if((j|0)!=(q|0)){r:{if(!K[a+84|0]){b=J[a+72>>2];j=J[a+68>>2];if((b|0)==(j|0)){break r}b=b-j>>2;e=b>>>0<=1?1:b;f=e&3;c=0;b=0;if(e-1>>>0>=3){n=e&-4;l=0;while(1){d=b<<2;e=d+j|0;J[e>>2]=J[(J[e>>2]<<2)+k>>2];e=j+(d|4)|0;J[e>>2]=J[(J[e>>2]<<2)+k>>2];e=j+(d|8)|0;J[e>>2]=J[(J[e>>2]<<2)+k>>2];e=j+(d|12)|0;J[e>>2]=J[(J[e>>2]<<2)+k>>2];b=b+4|0;l=l+4|0;if((n|0)!=(l|0)){continue}break}}if(!f){break r}while(1){e=j+(b<<2)|0;J[e>>2]=J[(J[e>>2]<<2)+k>>2];b=b+1|0;c=c+1|0;if((f|0)!=(c|0)){continue}break}break r}H[a+84|0]=0;e=a+68|0;b=J[a+68>>2];c=J[a+72>>2]-b>>2;s:{if(c>>>0>>0){Ma(e,j-c|0,2176);j=J[a+80>>2];break s}if(c>>>0<=j>>>0){break s}J[a+72>>2]=b+(j<<2)}if(!j){break r}d=J[e>>2];c=0;b=0;if(j>>>0>=4){n=j&-4;l=0;while(1){f=b<<2;J[f+d>>2]=J[f+k>>2];e=f|4;J[e+d>>2]=J[e+k>>2];e=f|8;J[e+d>>2]=J[e+k>>2];e=f|12;J[e+d>>2]=J[e+k>>2];b=b+4|0;l=l+4|0;if((n|0)!=(l|0)){continue}break}}n=j&3;if(!n){break r}while(1){e=b<<2;J[e+d>>2]=J[e+k>>2];b=b+1|0;c=c+1|0;if((n|0)!=(c|0)){continue}break}}J[a+80>>2]=q}na(k)}b=J[h+40>>2];if(b){while(1){a=J[b>>2];na(b);b=a;if(b){continue}break}}a=J[h+32>>2];J[h+32>>2]=0;if(a){na(a)}ba=h- -64|0;return q}qa();B()}function Jg(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;p=ba-32|0;ba=p;a:{if((c|0)<=0){break a}t=c&3;b:{if(c>>>0<4){c=0;break b}z=c&-4;c=0;while(1){g=(c<<3)+b|0;s=J[g>>2];u=J[g+4>>2];v=c|1;g=(v<<3)+b|0;i=J[g>>2];w=c|2;h=(w<<3)+b|0;m=J[h>>2];x=c|3;j=(x<<3)+b|0;y=J[j>>2];g=J[g+4>>2];h=J[h+4>>2];j=J[j+4>>2];n=j|y?x:h|m?w:g|i?v:s|u?c:n;f=f+u|0;e=e+s|0;f=(e>>>0>>0?f+1|0:f)+g|0;g=e;e=e+i|0;f=(g>>>0>e>>>0?f+1|0:f)+h|0;g=e;e=e+m|0;f=(g>>>0>e>>>0?f+1|0:f)+j|0;g=e;e=e+y|0;f=g>>>0>e>>>0?f+1|0:f;c=c+4|0;l=l+4|0;if((z|0)!=(l|0)){continue}break}}if(!t){break a}while(1){g=(c<<3)+b|0;i=J[g>>2];g=J[g+4>>2];n=i|g?c:n;c=c+1|0;f=f+g|0;e=e+i|0;f=e>>>0>>0?f+1|0:f;o=o+1|0;if((t|0)!=(o|0)){continue}break}}m=n+1|0;J[a+12>>2]=m;c=J[a>>2];g=J[a+4>>2]-c>>3;c:{if(g>>>0>>0){Wa(a,m-g|0);break c}if(g>>>0<=m>>>0){break c}J[a+4>>2]=c+(m<<3)}j=0;d:{e:{f:{g:{h:{if((n|0)>=0){k=+(e>>>0)+ +(f>>>0)*4294967296;i=J[a>>2];c=0;while(1){f=c<<3;e=f+b|0;h=J[e>>2];e=J[e+4>>2];g=(h|e)!=0;l=f+i|0;r=(+(h>>>0)+ +(e>>>0)*4294967296)/k*4096+.5;i:{if(r<4294967296&r>=0){e=~~r>>>0;break i}e=0}e=e?e:g?1:e;J[l>>2]=e;j=e+j|0;e=(c|0)==(n|0);c=c+1|0;if(!e){continue}break}if((j|0)==4096){break h}}J[p+16>>2]=0;J[p+8>>2]=0;J[p+12>>2]=0;i=0;j:{if(!m){break j}if(m>>>0>=1073741824){break g}g=m<<2;q=oa(g);J[p+8>>2]=q;l=0;h=pa(q,0,g);c=0;if(n>>>0>=7){f=m&-8;while(1){J[h+(c<<2)>>2]=c;e=c|1;J[h+(e<<2)>>2]=e;e=c|2;J[h+(e<<2)>>2]=e;e=c|3;J[h+(e<<2)>>2]=e;e=c|4;J[h+(e<<2)>>2]=e;e=c|5;J[h+(e<<2)>>2]=e;e=c|6;J[h+(e<<2)>>2]=e;e=c|7;J[h+(e<<2)>>2]=e;c=c+8|0;i=i+8|0;if((f|0)!=(i|0)){continue}break}}i=h+g|0;e=m&7;if(!e){break j}while(1){J[h+(c<<2)>>2]=c;c=c+1|0;l=l+1|0;if((e|0)!=(l|0)){continue}break}}J[p+24>>2]=a;c=i-q|0;e=c>>2;k:{l:{if((c|0)>=513){c=e;while(1){f=oa(c<<2);if(f){break l}f=c>>>0>1;c=c>>>1|0;if(f){continue}break}}hc(q,i,p+24|0,e,0,0);break k}hc(q,i,p+24|0,e,f,c);na(f)}if((j|0)<4096){c=J[a>>2]+(J[i-4>>2]<<3)|0;J[c>>2]=(J[c>>2]-j|0)+4096;c=0;break f}if((n|0)>0){f=J[a>>2];o=j-4096|0;while(1){r=4096/+(j|0);l=n;while(1){m:{n:{e=f+(J[(l<<2)+q>>2]<<3)|0;c=J[e>>2];if(c>>>0>=2){h=e;i=c;k=V(r*+(c>>>0));o:{if(R(k)<2147483648){g=~~k;break o}g=-2147483648}e=(c|0)==(g|0)?1:c-g|0;c=(c|0)>(e|0)?e:c-1|0;c=(c|0)<(o|0)?c:o;J[h>>2]=i-c;o=o-c|0;j=j-c|0;if((j|0)!=4096){break n}j=4096;break m}if((n|0)!=(l|0)){break m}c=1;break f}c=(l|0)>1;l=l-1|0;if(c){continue}}break}c=0;if((o|0)>0){continue}break}break f}c=0;if(j>>>0<4097){break f}while(1)continue}if((n|0)<0){break d}break e}qa();B()}e=J[p+8>>2];if(e){na(e)}if((n|0)<0|c){break d}}h=J[a>>2];j=0;o=0;c=0;if(n>>>0>=3){g=m&-4;q=0;while(1){i=o<<3;f=i+h|0;J[f+4>>2]=c;e=h+(i|8)|0;c=J[f>>2]+c|0;J[e+4>>2]=c;f=h+(i|16)|0;c=c+J[e>>2]|0;J[f+4>>2]=c;e=h+(i|24)|0;c=c+J[f>>2]|0;J[e+4>>2]=c;c=c+J[e>>2]|0;o=o+4|0;q=q+4|0;if((g|0)!=(q|0)){continue}break}}f=m&3;if(f){while(1){e=h+(o<<3)|0;J[e+4>>2]=c;o=o+1|0;c=J[e>>2]+c|0;j=j+1|0;if((f|0)!=(j|0)){continue}break}}if((c|0)!=4096){break d}c=0;k=0;p:{if((n|0)<0){break p}h=J[a>>2];if(n){i=m&-2;l=0;while(1){e=c<<3;g=J[e+h>>2];if(g){f=b+e|0;k=(+M[f>>2]+ +M[f+4>>2]*4294967296)*va(+(g>>>0)*.000244140625)+k}e=(c|1)<<3;g=J[e+h>>2];if(g){f=b+e|0;k=(+M[f>>2]+ +M[f+4>>2]*4294967296)*va(+(g>>>0)*.000244140625)+k}c=c+2|0;l=l+2|0;if((i|0)!=(l|0)){continue}break}}if(!(m&1)){break p}c=c<<3;e=J[c+h>>2];if(!e){break p}c=b+c|0;k=(+M[c>>2]+ +M[c+4>>2]*4294967296)*va(+(e>>>0)*.000244140625)+k}k=W(-k);q:{if(k<0x10000000000000000&k>=0){c=~~k>>>0;b=R(k)>=1?~~(k>0?T(V(k*2.3283064365386963e-10),4294967295):W((k-+(~~k>>>0>>>0))*2.3283064365386963e-10))>>>0:0;break q}c=0;b=0}J[a+16>>2]=c;J[a+20>>2]=b;Va(a,d)}ba=p+32|0}function Kk(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;b=ba-48|0;ba=b;g=J[J[a+4>>2]+48>>2];J[b+8>>2]=J[a+12>>2];c=oa(32);J[b+24>>2]=c;J[b+28>>2]=17;J[b+32>>2]=-2147483616;H[c+16|0]=K[1261];f=K[1257]|K[1258]<<8|(K[1259]<<16|K[1260]<<24);e=K[1253]|K[1254]<<8|(K[1255]<<16|K[1256]<<24);H[c+8|0]=e;H[c+9|0]=e>>>8;H[c+10|0]=e>>>16;H[c+11|0]=e>>>24;H[c+12|0]=f;H[c+13|0]=f>>>8;H[c+14|0]=f>>>16;H[c+15|0]=f>>>24;f=K[1249]|K[1250]<<8|(K[1251]<<16|K[1252]<<24);e=K[1245]|K[1246]<<8|(K[1247]<<16|K[1248]<<24);H[c|0]=e;H[c+1|0]=e>>>8;H[c+2|0]=e>>>16;H[c+3|0]=e>>>24;H[c+4|0]=f;H[c+5|0]=f>>>8;H[c+6|0]=f>>>16;H[c+7|0]=f>>>24;H[c+17|0]=0;c=jb(g,b+8|0,b+24|0,-1);if(H[b+35|0]<0){na(J[b+24>>2])}J[b+32>>2]=-1;J[b+36>>2]=1065353216;J[b+24>>2]=-1;J[b+28>>2]=-1;J[b+40>>2]=-1;c=-1<>>0>28){break a}J[b+24>>2]=c+1;c=-2<>2]=c^-1;c=c^-2;J[b+32>>2]=c;J[b+40>>2]=c>>1;N[b+36>>2]=Q(2)/Q(c|0)}g=bh(J[a+12>>2],J[a+4>>2]);h=J[J[a+4>>2]+48>>2];J[b+20>>2]=J[a+12>>2];c=oa(32);J[b+8>>2]=c;J[b+12>>2]=17;J[b+16>>2]=-2147483616;H[c+16|0]=K[1529];f=K[1525]|K[1526]<<8|(K[1527]<<16|K[1528]<<24);e=K[1521]|K[1522]<<8|(K[1523]<<16|K[1524]<<24);H[c+8|0]=e;H[c+9|0]=e>>>8;H[c+10|0]=e>>>16;H[c+11|0]=e>>>24;H[c+12|0]=f;H[c+13|0]=f>>>8;H[c+14|0]=f>>>16;H[c+15|0]=f>>>24;f=K[1517]|K[1518]<<8|(K[1519]<<16|K[1520]<<24);e=K[1513]|K[1514]<<8|(K[1515]<<16|K[1516]<<24);H[c|0]=e;H[c+1|0]=e>>>8;H[c+2|0]=e>>>16;H[c+3|0]=e>>>24;H[c+4|0]=f;H[c+5|0]=f>>>8;H[c+6|0]=f>>>16;H[c+7|0]=f>>>24;H[c+17|0]=0;c=jb(h,b+20|0,b+8|0,g);if(H[b+19|0]<0){na(J[b+8>>2])}b:{c:{d:{switch(c|0){case 6:e=J[a+4>>2];h=J[a+12>>2];a=J[J[J[e+4>>2]+8>>2]+(h<<2)>>2];if((da[J[J[e>>2]+8>>2]](e)|0)!=1){break c}c=b+24|0;f=ba-32|0;ba=f;i=J[J[J[e+4>>2]+8>>2]+(h<<2)>>2];e:{if((da[J[J[e>>2]+8>>2]](e)|0)!=1){break e}j=da[J[J[e>>2]+52>>2]](e)|0;g=da[J[J[e>>2]+60>>2]](e,h)|0;if(!j|!g){break e}d=da[J[J[e>>2]+56>>2]](e,h)|0;if(d){e=J[e+56>>2];J[f+20>>2]=d;J[f+16>>2]=e;J[f+28>>2]=g;J[f+24>>2]=g+12;d=oa(128);J[d+4>>2]=i;e=J[c+4>>2];J[d+8>>2]=J[c>>2];J[d+12>>2]=e;e=J[c+12>>2];J[d+16>>2]=J[c+8>>2];J[d+20>>2]=e;J[d+24>>2]=J[c+16>>2];c=J[f+20>>2];J[d+28>>2]=J[f+16>>2];J[d+32>>2]=c;c=J[f+28>>2];J[d+36>>2]=J[f+24>>2];J[d+40>>2]=c;J[d+48>>2]=0;J[d+52>>2]=0;J[d>>2]=7524;c=J[f+20>>2];J[d+56>>2]=J[f+16>>2];J[d+60>>2]=c;e=J[f+28>>2];c=d- -64|0;J[c>>2]=J[f+24>>2];J[c+4>>2]=e;J[d+88>>2]=1065353216;J[d+92>>2]=-1;J[d+80>>2]=-1;J[d+84>>2]=-1;J[d+72>>2]=1;J[d+76>>2]=-1;J[d+44>>2]=7784;J[d+96>>2]=0;J[d+100>>2]=0;J[d+120>>2]=0;J[d+124>>2]=0;J[d+112>>2]=0;J[d+116>>2]=0;J[d+104>>2]=0;J[d+108>>2]=0;break e}d=J[e+56>>2];J[f+20>>2]=j;J[f+16>>2]=d;J[f+28>>2]=g;J[f+24>>2]=g+12;d=oa(128);J[d+4>>2]=i;e=J[c+4>>2];J[d+8>>2]=J[c>>2];J[d+12>>2]=e;e=J[c+12>>2];J[d+16>>2]=J[c+8>>2];J[d+20>>2]=e;J[d+24>>2]=J[c+16>>2];c=J[f+20>>2];J[d+28>>2]=J[f+16>>2];J[d+32>>2]=c;c=J[f+28>>2];J[d+36>>2]=J[f+24>>2];J[d+40>>2]=c;J[d+48>>2]=0;J[d+52>>2]=0;J[d>>2]=9148;c=J[f+20>>2];J[d+56>>2]=J[f+16>>2];J[d+60>>2]=c;e=J[f+28>>2];c=d- -64|0;J[c>>2]=J[f+24>>2];J[c+4>>2]=e;J[d+88>>2]=1065353216;J[d+92>>2]=-1;J[d+80>>2]=-1;J[d+84>>2]=-1;J[d+72>>2]=1;J[d+76>>2]=-1;J[d+44>>2]=9392;J[d+96>>2]=0;J[d+100>>2]=0;J[d+120>>2]=0;J[d+124>>2]=0;J[d+112>>2]=0;J[d+116>>2]=0;J[d+104>>2]=0;J[d+108>>2]=0}ba=f+32|0;if(!d){break c}break b;case 0:break d;default:break b}}c=J[a+4>>2];a=J[J[J[c+4>>2]+8>>2]+(J[a+12>>2]<<2)>>2];if((da[J[J[c>>2]+8>>2]](c)|0)!=1){break c}da[J[J[c>>2]+8>>2]](c)|0}d=oa(28);J[d+4>>2]=a;a=J[b+28>>2];J[d+8>>2]=J[b+24>>2];J[d+12>>2]=a;a=J[b+36>>2];J[d+16>>2]=J[b+32>>2];J[d+20>>2]=a;J[d+24>>2]=J[b+40>>2];J[d>>2]=9804}ba=b+48|0;return d|0}function Nf(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=Q(0),p=0,q=0,r=0,s=Q(0);h=ba+-64|0;ba=h;J[h+40>>2]=0;J[h+44>>2]=0;J[h+32>>2]=0;J[h+36>>2]=0;J[h+48>>2]=1065353216;c=J[a+80>>2];J[h+24>>2]=0;J[h+16>>2]=0;J[h+20>>2]=0;a:{if(c){if(c>>>0>=1073741824){break a}f=c<<2;k=oa(f);J[h+16>>2]=k;c=f+k|0;J[h+24>>2]=c;pa(k,0,f);J[h+20>>2]=c;while(1){d=J[J[b>>2]>>2];f=J[b+48>>2];c=Hl(J[b+40>>2],J[b+44>>2],n,0);g=c;c=c+f|0;c=c+d|0;c=K[c|0]|K[c+1|0]<<8;I[h+30>>1]=c;J[h+12>>2]=q;I[h+8>>1]=c;c=0;p=h+8|0;f=K[p+1|0]^(K[p|0]^318)+239;b:{c:{m=h+32|0;g=J[m+4>>2];if(!g){break c}d=Kl(g);d:{if(d>>>0>=2){c=f;if(c>>>0>=g>>>0){c=(f>>>0)%(g>>>0)|0}i=J[J[m>>2]+(c<<2)>>2];if(!i){break c}if(d>>>0<2){break d}j=K[p|0];l=K[p+1|0];while(1){i=J[i>>2];if(!i){break c}d=J[i+4>>2];if((d|0)!=(f|0)){if(d>>>0>=g>>>0){d=(d>>>0)%(g>>>0)|0}if((c|0)!=(d|0)){break c}}d=K[i+8|0];e:{if((d|0)!=(j|0)){d=(d|0)==(j|0);break e}d=(l|0)==K[i+9|0]}if(!d){continue}break}c=0;break b}c=f&g+1023;i=J[J[m>>2]+(c<<2)>>2];if(!i){break c}}j=g-1|0;r=K[p|0];l=K[p+1|0];while(1){i=J[i>>2];if(!i){break c}d=J[i+4>>2];if((d|0)!=(f|0)&(d&j)!=(c|0)){break c}d=K[i+8|0];f:{if((d|0)!=(r|0)){d=(d|0)==(r|0);break f}d=(l|0)==K[i+9|0]}if(!d){continue}break}c=0;break b}i=oa(16);I[i+8>>1]=L[p>>1];d=J[p+4>>2];J[i+4>>2]=f;J[i+12>>2]=d;J[i>>2]=0;o=Q(J[m+12>>2]+1>>>0);s=N[m+16>>2];g:{if(o>Q(s*Q(g>>>0))?0:g){break g}c=2;d=(g-1&g)!=0|g>>>0<3|g<<1;o=Q(W(Q(o/s)));h:{if(o=Q(0)){l=~~o>>>0;break h}l=0}d=d>>>0>l>>>0?d:l;i:{if((d|0)==1){break i}if(!(d&d-1)){c=d;break i}c=Ha(d);g=J[m+4>>2]}j:{if(c>>>0<=g>>>0){if(c>>>0>=g>>>0){break j}l=g>>>0<3;o=Q(W(Q(Q(M[m+12>>2])/N[m+16>>2])));k:{if(o=Q(0)){d=~~o>>>0;break k}d=0}l:{m:{if(l){break m}if(Kl(g)>>>0>1){break m}d=d>>>0<2?d:1<<32-S(d-1|0);break l}d=Ha(d)}c=c>>>0>d>>>0?c:d;if(g>>>0<=c>>>0){break j}}db(m,c)}g=J[m+4>>2];c=g-1|0;if(!(c&g)){c=c&f;break g}if(f>>>0>>0){c=f;break g}c=(f>>>0)%(g>>>0)|0}f=J[m>>2]+(c<<2)|0;c=J[f>>2];n:{o:{if(!c){c=m+8|0;J[i>>2]=J[c>>2];J[m+8>>2]=i;J[f>>2]=c;c=J[i>>2];if(!c){break n}c=J[c+4>>2];f=g-1|0;p:{if(!(f&g)){c=c&f;break p}if(c>>>0>>0){break p}c=(c>>>0)%(g>>>0)|0}c=J[m>>2]+(c<<2)|0;break o}J[i>>2]=J[c>>2]}J[c>>2]=i}J[m+12>>2]=J[m+12>>2]+1;c=1}H[h+60|0]=c;J[h+56>>2]=i;q:{if(!K[h+60|0]){J[(n<<2)+k>>2]=J[J[h+56>>2]+12>>2];break q}c=J[a+40>>2];ua(J[J[a>>2]>>2]+P(c,q)|0,h+30|0,c);k=J[h+16>>2];J[k+(n<<2)>>2]=q;q=q+1|0}n=n+1|0;e=n?e:e+1|0;j=J[a+80>>2];if(!e&n>>>0>>0){continue}break}if((j|0)!=(q|0)){r:{if(!K[a+84|0]){b=J[a+72>>2];j=J[a+68>>2];if((b|0)==(j|0)){break r}b=b-j>>2;e=b>>>0<=1?1:b;f=e&3;c=0;b=0;if(e-1>>>0>=3){n=e&-4;l=0;while(1){d=b<<2;e=d+j|0;J[e>>2]=J[(J[e>>2]<<2)+k>>2];e=j+(d|4)|0;J[e>>2]=J[(J[e>>2]<<2)+k>>2];e=j+(d|8)|0;J[e>>2]=J[(J[e>>2]<<2)+k>>2];e=j+(d|12)|0;J[e>>2]=J[(J[e>>2]<<2)+k>>2];b=b+4|0;l=l+4|0;if((n|0)!=(l|0)){continue}break}}if(!f){break r}while(1){e=j+(b<<2)|0;J[e>>2]=J[(J[e>>2]<<2)+k>>2];b=b+1|0;c=c+1|0;if((f|0)!=(c|0)){continue}break}break r}H[a+84|0]=0;e=a+68|0;b=J[a+68>>2];c=J[a+72>>2]-b>>2;s:{if(c>>>0>>0){Ma(e,j-c|0,2176);j=J[a+80>>2];break s}if(c>>>0<=j>>>0){break s}J[a+72>>2]=b+(j<<2)}if(!j){break r}d=J[e>>2];c=0;b=0;if(j>>>0>=4){n=j&-4;l=0;while(1){f=b<<2;J[f+d>>2]=J[f+k>>2];e=f|4;J[e+d>>2]=J[e+k>>2];e=f|8;J[e+d>>2]=J[e+k>>2];e=f|12;J[e+d>>2]=J[e+k>>2];b=b+4|0;l=l+4|0;if((n|0)!=(l|0)){continue}break}}n=j&3;if(!n){break r}while(1){e=b<<2;J[e+d>>2]=J[e+k>>2];b=b+1|0;c=c+1|0;if((n|0)!=(c|0)){continue}break}}J[a+80>>2]=q}na(k)}b=J[h+40>>2];if(b){while(1){a=J[b>>2];na(b);b=a;if(b){continue}break}}a=J[h+32>>2];J[h+32>>2]=0;if(a){na(a)}ba=h- -64|0;return q}qa();B()}function Vg(a,b,c,d,e,f){var g=0,h=0,i=0,j=0,k=0,l=0;h=ba-16|0;ba=h;J[h+12>>2]=b;b=oa(32);J[h>>2]=b;J[h+4>>2]=17;J[h+8>>2]=-2147483616;H[b+16|0]=K[1261];g=K[1257]|K[1258]<<8|(K[1259]<<16|K[1260]<<24);i=K[1253]|K[1254]<<8|(K[1255]<<16|K[1256]<<24);H[b+8|0]=i;H[b+9|0]=i>>>8;H[b+10|0]=i>>>16;H[b+11|0]=i>>>24;H[b+12|0]=g;H[b+13|0]=g>>>8;H[b+14|0]=g>>>16;H[b+15|0]=g>>>24;g=K[1249]|K[1250]<<8|(K[1251]<<16|K[1252]<<24);i=K[1245]|K[1246]<<8|(K[1247]<<16|K[1248]<<24);H[b|0]=i;H[b+1|0]=i>>>8;H[b+2|0]=i>>>16;H[b+3|0]=i>>>24;H[b+4|0]=g;H[b+5|0]=g>>>8;H[b+6|0]=g>>>16;H[b+7|0]=g>>>24;H[b+17|0]=0;i=a+4|0;Wg(i,h+12|0,h,c);if(H[h+11|0]<0){na(J[h>>2])}a=oa(32);J[h>>2]=a;J[h+4>>2]=19;J[h+8>>2]=-2147483616;b=K[1429]|K[1430]<<8|(K[1431]<<16|K[1432]<<24);H[a+15|0]=b;H[a+16|0]=b>>>8;H[a+17|0]=b>>>16;H[a+18|0]=b>>>24;b=K[1426]|K[1427]<<8|(K[1428]<<16|K[1429]<<24);c=K[1422]|K[1423]<<8|(K[1424]<<16|K[1425]<<24);H[a+8|0]=c;H[a+9|0]=c>>>8;H[a+10|0]=c>>>16;H[a+11|0]=c>>>24;H[a+12|0]=b;H[a+13|0]=b>>>8;H[a+14|0]=b>>>16;H[a+15|0]=b>>>24;b=K[1418]|K[1419]<<8|(K[1420]<<16|K[1421]<<24);c=K[1414]|K[1415]<<8|(K[1416]<<16|K[1417]<<24);H[a|0]=c;H[a+1|0]=c>>>8;H[a+2|0]=c>>>16;H[a+3|0]=c>>>24;H[a+4|0]=b;H[a+5|0]=b>>>8;H[a+6|0]=b>>>16;H[a+7|0]=b>>>24;H[a+19|0]=0;g=ba-48|0;ba=g;j=J[h+12>>2];a=i+16|0;c=J[a>>2];a:{b:{if(!c){break b}b=a;while(1){k=(j|0)>J[c+16>>2];b=k?b:c;c=J[(k?c+4|0:c)>>2];if(c){continue}break}if((a|0)==(b|0)){break b}if((j|0)>=J[b+16>>2]){break a}}J[g+28>>2]=0;J[g+32>>2]=0;c=g+24|0;J[g+24>>2]=c|4;a=g+16|0;J[a>>2]=0;J[a+4>>2]=0;J[g+8>>2]=j;J[g+12>>2]=a;a=g+8|0;Oc(g+40|0,i+12|0,a,a);b=J[g+40>>2];Da(a|4,J[g+16>>2]);Da(c,J[g+28>>2])}b=b+20|0;a=ba-48|0;ba=a;J[a+24>>2]=0;J[a+16>>2]=0;J[a+20>>2]=0;c:{if((d|0)<=0){break c}gd(a,N[e>>2]);c=K[a+11|0];j=c<<24>>24<0;jd(a+16|0,j?J[a>>2]:a,j?J[a+4>>2]:c);if(H[a+11|0]<0){na(J[a>>2])}c=1;if((d|0)==1){break c}while(1){j=a+16|0;jd(j,2020,rb(2020));gd(a,N[(c<<2)+e>>2]);l=j;j=K[a+11|0];k=j<<24>>24<0;jd(l,k?J[a>>2]:a,k?J[a+4>>2]:j);if(H[a+11|0]<0){na(J[a>>2])}c=c+1|0;if((d|0)!=(c|0)){continue}break}}J[a+40>>2]=h;ge(a,b,h,a+40|0);d=J[a>>2];b=d+28|0;d:{if((b|0)==(a+16|0)){break d}e=K[a+27|0];c=e<<24>>24;if(H[d+39|0]>=0){if((c|0)>=0){c=J[a+20>>2];J[b>>2]=J[a+16>>2];J[b+4>>2]=c;J[b+8>>2]=J[a+24>>2];break d}hd(b,J[a+16>>2],J[a+20>>2]);break d}d=b;b=(c|0)<0;id(d,b?J[a+16>>2]:a+16|0,b?J[a+20>>2]:e)}if(H[a+27|0]<0){na(J[a+16>>2])}ba=a+48|0;ba=g+48|0;if(H[h+11|0]<0){na(J[h>>2])}a=oa(32);J[h>>2]=a;J[h+4>>2]=18;J[h+8>>2]=-2147483616;b=K[1547]|K[1548]<<8;H[a+16|0]=b;H[a+17|0]=b>>>8;b=K[1543]|K[1544]<<8|(K[1545]<<16|K[1546]<<24);c=K[1539]|K[1540]<<8|(K[1541]<<16|K[1542]<<24);H[a+8|0]=c;H[a+9|0]=c>>>8;H[a+10|0]=c>>>16;H[a+11|0]=c>>>24;H[a+12|0]=b;H[a+13|0]=b>>>8;H[a+14|0]=b>>>16;H[a+15|0]=b>>>24;b=K[1535]|K[1536]<<8|(K[1537]<<16|K[1538]<<24);c=K[1531]|K[1532]<<8|(K[1533]<<16|K[1534]<<24);H[a|0]=c;H[a+1|0]=c>>>8;H[a+2|0]=c>>>16;H[a+3|0]=c>>>24;H[a+4|0]=b;H[a+5|0]=b>>>8;H[a+6|0]=b>>>16;H[a+7|0]=b>>>24;H[a+18|0]=0;b=ba-48|0;ba=b;c=J[h+12>>2];a=i+16|0;e=J[a>>2];e:{f:{if(!e){break f}d=a;while(1){g=(c|0)>J[e+16>>2];d=g?d:e;e=J[(g?e+4|0:e)>>2];if(e){continue}break}if((a|0)==(d|0)){break f}if((c|0)>=J[d+16>>2]){break e}}J[b+28>>2]=0;J[b+32>>2]=0;e=b+24|0;J[b+24>>2]=e|4;a=b+16|0;J[a>>2]=0;J[a+4>>2]=0;J[b+8>>2]=c;J[b+12>>2]=a;a=b+8|0;Oc(b+40|0,i+12|0,a,a);d=J[b+40>>2];Da(a|4,J[b+16>>2]);Da(e,J[b+28>>2])}a=ba-48|0;ba=a;gd(a+8|0,f);J[a+32>>2]=h;ge(a+40|0,d+20|0,h,a+32|0);c=J[a+40>>2];if(H[c+39|0]<0){na(J[c+28>>2])}d=J[a+12>>2];J[c+28>>2]=J[a+8>>2];J[c+32>>2]=d;J[c+36>>2]=J[a+16>>2];ba=a+48|0;ba=b+48|0;if(H[h+11|0]<0){na(J[h>>2])}ba=h+16|0}function lk(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=Q(0);f=ba-32|0;ba=f;J[f+28>>2]=c;a:{if(!me(a,b,c)){break a}i=J[J[J[b+4>>2]+8>>2]+(c<<2)>>2];if(J[i+28>>2]!=9){break a}g=J[b+48>>2];c=oa(32);J[f+16>>2]=c;J[f+20>>2]=17;J[f+24>>2]=-2147483616;H[c+16|0]=K[1261];e=K[1257]|K[1258]<<8|(K[1259]<<16|K[1260]<<24);h=K[1253]|K[1254]<<8|(K[1255]<<16|K[1256]<<24);H[c+8|0]=h;H[c+9|0]=h>>>8;H[c+10|0]=h>>>16;H[c+11|0]=h>>>24;H[c+12|0]=e;H[c+13|0]=e>>>8;H[c+14|0]=e>>>16;H[c+15|0]=e>>>24;e=K[1249]|K[1250]<<8|(K[1251]<<16|K[1252]<<24);h=K[1245]|K[1246]<<8|(K[1247]<<16|K[1248]<<24);H[c|0]=h;H[c+1|0]=h>>>8;H[c+2|0]=h>>>16;H[c+3|0]=h>>>24;H[c+4|0]=e;H[c+5|0]=e>>>8;H[c+6|0]=e>>>16;H[c+7|0]=e>>>24;H[c+17|0]=0;h=jb(g,f+28|0,f+16|0,-1);if(H[f+27|0]<0){na(J[f+16>>2])}if((h|0)<=0){break a}j=J[b+48>>2];c=oa(32);J[f+16>>2]=c;J[f+20>>2]=19;J[f+24>>2]=-2147483616;e=K[1429]|K[1430]<<8|(K[1431]<<16|K[1432]<<24);H[c+15|0]=e;H[c+16|0]=e>>>8;H[c+17|0]=e>>>16;H[c+18|0]=e>>>24;e=K[1426]|K[1427]<<8|(K[1428]<<16|K[1429]<<24);g=K[1422]|K[1423]<<8|(K[1424]<<16|K[1425]<<24);H[c+8|0]=g;H[c+9|0]=g>>>8;H[c+10|0]=g>>>16;H[c+11|0]=g>>>24;H[c+12|0]=e;H[c+13|0]=e>>>8;H[c+14|0]=e>>>16;H[c+15|0]=e>>>24;e=K[1418]|K[1419]<<8|(K[1420]<<16|K[1421]<<24);g=K[1414]|K[1415]<<8|(K[1416]<<16|K[1417]<<24);H[c|0]=g;H[c+1|0]=g>>>8;H[c+2|0]=g>>>16;H[c+3|0]=g>>>24;H[c+4|0]=e;H[c+5|0]=e>>>8;H[c+6|0]=e>>>16;H[c+7|0]=e>>>24;H[c+19|0]=0;b:{if(!yc(j,f+28|0,f+16|0)){break b}g=J[b+48>>2];c=oa(32);J[f>>2]=c;J[f+4>>2]=18;J[f+8>>2]=-2147483616;d=K[1547]|K[1548]<<8;H[c+16|0]=d;H[c+17|0]=d>>>8;d=K[1543]|K[1544]<<8|(K[1545]<<16|K[1546]<<24);e=K[1539]|K[1540]<<8|(K[1541]<<16|K[1542]<<24);H[c+8|0]=e;H[c+9|0]=e>>>8;H[c+10|0]=e>>>16;H[c+11|0]=e>>>24;H[c+12|0]=d;H[c+13|0]=d>>>8;H[c+14|0]=d>>>16;H[c+15|0]=d>>>24;d=K[1535]|K[1536]<<8|(K[1537]<<16|K[1538]<<24);e=K[1531]|K[1532]<<8|(K[1533]<<16|K[1534]<<24);H[c|0]=e;H[c+1|0]=e>>>8;H[c+2|0]=e>>>16;H[c+3|0]=e>>>24;H[c+4|0]=d;H[c+5|0]=d>>>8;H[c+6|0]=d>>>16;H[c+7|0]=d>>>24;H[c+18|0]=0;d=yc(g,f+28|0,f);if(H[f+11|0]>=0){break b}na(J[f>>2])}if(H[f+27|0]<0){na(J[f+16>>2])}c:{if(d){c=0;d=K[i+24|0];if(d){d=d<<2;c=oa(d);pa(c,0,d)}j=J[b+48>>2];d=oa(32);J[f+16>>2]=d;J[f+20>>2]=19;J[f+24>>2]=-2147483616;e=K[1429]|K[1430]<<8|(K[1431]<<16|K[1432]<<24);H[d+15|0]=e;H[d+16|0]=e>>>8;H[d+17|0]=e>>>16;H[d+18|0]=e>>>24;e=K[1426]|K[1427]<<8|(K[1428]<<16|K[1429]<<24);g=K[1422]|K[1423]<<8|(K[1424]<<16|K[1425]<<24);H[d+8|0]=g;H[d+9|0]=g>>>8;H[d+10|0]=g>>>16;H[d+11|0]=g>>>24;H[d+12|0]=e;H[d+13|0]=e>>>8;H[d+14|0]=e>>>16;H[d+15|0]=e>>>24;e=K[1418]|K[1419]<<8|(K[1420]<<16|K[1421]<<24);g=K[1414]|K[1415]<<8|(K[1416]<<16|K[1417]<<24);H[d|0]=g;H[d+1|0]=g>>>8;H[d+2|0]=g>>>16;H[d+3|0]=g>>>24;H[d+4|0]=e;H[d+5|0]=e>>>8;H[d+6|0]=e>>>16;H[d+7|0]=e>>>24;H[d+19|0]=0;De(j,f+28|0,f+16|0,K[i+24|0],c);if(H[f+27|0]<0){na(J[f+16>>2])}g=J[b+48>>2];b=oa(32);J[f+16>>2]=b;J[f+20>>2]=18;J[f+24>>2]=-2147483616;d=K[1547]|K[1548]<<8;H[b+16|0]=d;H[b+17|0]=d>>>8;d=K[1543]|K[1544]<<8|(K[1545]<<16|K[1546]<<24);e=K[1539]|K[1540]<<8|(K[1541]<<16|K[1542]<<24);H[b+8|0]=e;H[b+9|0]=e>>>8;H[b+10|0]=e>>>16;H[b+11|0]=e>>>24;H[b+12|0]=d;H[b+13|0]=d>>>8;H[b+14|0]=d>>>16;H[b+15|0]=d>>>24;d=K[1535]|K[1536]<<8|(K[1537]<<16|K[1538]<<24);e=K[1531]|K[1532]<<8|(K[1533]<<16|K[1534]<<24);H[b|0]=e;H[b+1|0]=e>>>8;H[b+2|0]=e>>>16;H[b+3|0]=e>>>24;H[b+4|0]=d;H[b+5|0]=d>>>8;H[b+6|0]=d>>>16;H[b+7|0]=d>>>24;H[b+18|0]=0;k=Ce(g,f+28|0,f+16|0);if(H[f+27|0]<0){na(J[f+16>>2])}a=ch(a+40|0,h,c,K[i+24|0],k);if(c){na(c)}d=0;if(a){break c}break a}d=0;if(!_g(a+40|0,i,h)){break a}}d=1}ba=f+32|0;return d|0}function _f(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;k=ba-32|0;ba=k;c=J[a+16>>2];J[a+20>>2]=c;a:{b:{c:{d:{e:{f:{g:{if((c|0)!=J[a+24>>2]){J[c>>2]=b;b=c+4|0;J[a+20>>2]=b;d=c;break g}d=oa(4);J[d>>2]=b;b=d+4|0;J[a+24>>2]=b;J[a+20>>2]=b;J[a+16>>2]=d;if(c){break f}}c=J[a+8>>2];c=J[c+100>>2]-J[c+96>>2]|0;break e}na(c);b=J[a+20>>2];d=J[a+16>>2];if((b|0)==(d|0)){break d}c=J[a+8>>2];c=J[c+100>>2]-J[c+96>>2]|0}if((c|0)>0){r=a+120|0;m=a+200|0;c=(c|0)/12|0;s=(c|0)<=1?1:c;while(1){h:{i:{d=b-4|0;b=J[d>>2];if((b|0)==-1){break i}c=(b>>>0)/3|0;if(J[J[a+28>>2]+(c>>>3&268435452)>>2]>>>c&1){break i}n=0;while(1){J[a+164>>2]=J[a+164>>2]+1;e=b;h=(b>>>0)/3|0;g=(b|0)==-1;o=g?-1:h;b=J[a+28>>2]+(o>>>3&536870908)|0;J[b>>2]=J[b>>2]|1<>2];j:{if((b|0)!=J[a+80>>2]){J[b>>2]=e;J[a+76>>2]=b+4;break j}j=J[a+72>>2];l=b-j|0;d=l>>2;i=d+1|0;if(i>>>0>1073741823){break c}c=l>>>1|0;i=l>>>0>=2147483644?1073741823:c>>>0>i>>>0?c:i;if(i){if(i>>>0>1073741823){break a}c=oa(i<<2)}else{c=0}f=c+(d<<2)|0;J[f>>2]=e;d=f+4|0;if((b|0)!=(j|0)){while(1){f=f-4|0;b=b-4|0;J[f>>2]=J[b>>2];if((b|0)!=(j|0)){continue}break}}J[a+80>>2]=c+(i<<2);J[a+76>>2]=d;J[a+72>>2]=f;if(!j){break j}na(j)}J[a+320>>2]=e;b=-1;f=J[a+12>>2];b=(e|0)!=-1?J[J[f>>2]+(e<<2)>>2]:b;i=b<<2;q=J[i+J[a+152>>2]>>2];k:{l:{d=J[a+84>>2]+(b>>>3&536870908)|0;c=J[d>>2];b=1<>2]=b|c;if((q|0)==-1){break l}}m:{if(g){break m}b=-1;c=e+1|0;g=(c>>>0)%3|0?c:e-2|0;if((g|0)!=-1){b=J[J[f+12>>2]+(g<<2)>>2]}j=e-P(h,3)|0;n:{o:{if(j){d=e-1|0;break o}d=e+2|0;c=-1;if((d|0)==-1){break n}}c=J[J[f+12>>2]+(d<<2)>>2]}p=(c|0)==-1;l=p?-1:(c>>>0)/3|0;p:{if((g|0)==-1){break p}h=J[f+12>>2];d=J[h+(g<<2)>>2];if((d|0)==-1){break p}g=J[a+28>>2];d=(d>>>0)/3|0;if(J[g+(d>>>3&268435452)>>2]>>>d&1){break p}q:{r:{if(j){f=e-1|0;break r}f=e+2|0;if((f|0)==-1){break q}}d=J[(f<<2)+h>>2];if((d|0)==-1){break q}d=(d>>>0)/3|0;if(J[g+(d>>>3&268435452)>>2]>>>d&1){break q}oc(m,1);J[a+168>>2]=J[a+168>>2]+1;s:{if((q|0)==-1){break s}d=J[J[a+152>>2]+i>>2];if(J[J[a+140>>2]+(d>>>3&536870908)>>2]>>>d&1){break s}Hc(a,e,0)}e=J[a+164>>2];J[k+4>>2]=o;d=k+4|0;J[k+16>>2]=d;bg(k+24|0,r,d,k+16|0);J[J[k+24>>2]+12>>2]=e;f=J[a+20>>2];J[f-4>>2]=c;if(J[a+24>>2]!=(f|0)){J[f>>2]=b;J[a+20>>2]=f+4;break h}h=J[a+16>>2];g=f-h|0;d=g>>2;e=d+1|0;if(e>>>0>1073741823){break b}c=g>>>1|0;e=g>>>0>=2147483644?1073741823:c>>>0>e>>>0?c:e;if(e){if(e>>>0>1073741823){break a}c=oa(e<<2)}else{c=0}d=c+(d<<2)|0;J[d>>2]=b;b=d+4|0;if((f|0)!=(h|0)){while(1){d=d-4|0;f=f-4|0;J[d>>2]=J[f>>2];if((f|0)!=(h|0)){continue}break}}J[a+24>>2]=c+(e<<2);J[a+20>>2]=b;J[a+16>>2]=d;if(!h){break h}na(h);break h}if(!p){Qb(a,J[a+164>>2],0,l)}oc(m,3);break k}d=(b|0)==-1;if(!d){Qb(a,J[a+164>>2],1,d?-1:(b>>>0)/3|0)}t:{u:{if(j){b=e-1|0;break u}b=e+2|0;if((b|0)==-1){break t}}b=J[J[J[a+12>>2]+12>>2]+(b<<2)>>2];if((b|0)==-1){break t}b=(b>>>0)/3|0;if(J[J[a+28>>2]+(b>>>3&268435452)>>2]>>>b&1){break t}oc(m,5);b=c;break k}if(p){break m}Qb(a,J[a+164>>2],0,l)}oc(m,7);J[a+20>>2]=J[a+20>>2]-4;break h}oc(m,0);b=-1;if((e|0)==-1){break k}c=e+1|0;c=(c>>>0)%3|0?c:e-2|0;if((c|0)==-1){break k}b=J[J[J[a+12>>2]+12>>2]+(c<<2)>>2]}n=n+1|0;if((s|0)!=(n|0)){continue}break}break h}J[a+20>>2]=d}b=J[a+20>>2];if((b|0)!=J[a+16>>2]){continue}break}break d}g=J[a+28>>2];while(1){c=b-4|0;e=J[c>>2];v:{if((e|0)!=-1){e=(e>>>0)/3|0;if(!(J[g+(e>>>3&268435452)>>2]>>>e&1)){break v}}J[a+20>>2]=c;b=c}if((b|0)!=(d|0)){continue}break}}ba=k+32|0;return 1}qa();B()}qa();B()}xa();B()}function Ff(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=Q(0),p=0,q=0,r=Q(0);g=ba+-64|0;ba=g;J[g+40>>2]=0;J[g+44>>2]=0;J[g+32>>2]=0;J[g+36>>2]=0;J[g+48>>2]=1065353216;c=J[a+80>>2];J[g+24>>2]=0;J[g+16>>2]=0;J[g+20>>2]=0;a:{if(c){if(c>>>0>=1073741824){break a}e=c<<2;j=oa(e);J[g+16>>2]=j;c=e+j|0;J[g+24>>2]=c;pa(j,0,e);J[g+20>>2]=c;while(1){d=J[J[b>>2]>>2];e=J[b+48>>2];c=Hl(J[b+40>>2],J[b+44>>2],m,0);f=c;c=c+e|0;c=c+d|0;c=K[c|0]|K[c+1|0]<<8;I[g+30>>1]=c;J[g+12>>2]=p;I[g+8>>1]=c;c=0;q=g+8|0;n=L[q>>1];e=n^318;b:{c:{k=g+32|0;f=J[k+4>>2];if(!f){break c}d=Kl(f);d:{if(d>>>0>=2){c=e;if(f>>>0<=c>>>0){c=(e>>>0)%(f>>>0)|0}h=J[J[k>>2]+(c<<2)>>2];if(!h){break c}if(d>>>0<=1){break d}while(1){h=J[h>>2];if(!h){break c}d=J[h+4>>2];if((d|0)!=(e|0)){if(d>>>0>=f>>>0){d=(d>>>0)%(f>>>0)|0}if((c|0)!=(d|0)){break c}}if(L[h+8>>1]!=(n|0)){continue}break}c=0;break b}c=e&f-1;h=J[J[k>>2]+(c<<2)>>2];if(!h){break c}}l=f-1|0;while(1){h=J[h>>2];if(!h){break c}d=J[h+4>>2];if((e|0)!=(d|0)&(d&l)!=(c|0)){break c}if(L[h+8>>1]!=(n|0)){continue}break}c=0;break b}h=oa(16);I[h+8>>1]=L[q>>1];d=J[q+4>>2];J[h+4>>2]=e;J[h+12>>2]=d;J[h>>2]=0;o=Q(J[k+12>>2]+1>>>0);r=N[k+16>>2];e:{if(o>Q(r*Q(f>>>0))?0:f){break e}c=2;d=(f-1&f)!=0|f>>>0<3|f<<1;o=Q(W(Q(o/r)));f:{if(o=Q(0)){l=~~o>>>0;break f}l=0}d=d>>>0>l>>>0?d:l;g:{if((d|0)==1){break g}if(!(d&d-1)){c=d;break g}c=Ha(d);f=J[k+4>>2]}h:{if(c>>>0<=f>>>0){if(c>>>0>=f>>>0){break h}l=f>>>0<3;o=Q(W(Q(Q(M[k+12>>2])/N[k+16>>2])));i:{if(o=Q(0)){d=~~o>>>0;break i}d=0}j:{k:{if(l){break k}if(Kl(f)>>>0>1){break k}d=d>>>0<2?d:1<<32-S(d-1|0);break j}d=Ha(d)}c=c>>>0>d>>>0?c:d;if(f>>>0<=c>>>0){break h}}db(k,c)}f=J[k+4>>2];c=f-1|0;if(!(c&f)){c=c&e;break e}if(e>>>0>>0){c=e;break e}c=(e>>>0)%(f>>>0)|0}e=J[k>>2]+(c<<2)|0;c=J[e>>2];l:{m:{if(!c){c=k+8|0;J[h>>2]=J[c>>2];J[k+8>>2]=h;J[e>>2]=c;c=J[h>>2];if(!c){break l}c=J[c+4>>2];e=f-1|0;n:{if(!(e&f)){c=c&e;break n}if(c>>>0>>0){break n}c=(c>>>0)%(f>>>0)|0}c=J[k>>2]+(c<<2)|0;break m}J[h>>2]=J[c>>2]}J[c>>2]=h}J[k+12>>2]=J[k+12>>2]+1;c=1}H[g+60|0]=c;J[g+56>>2]=h;o:{if(!K[g+60|0]){J[(m<<2)+j>>2]=J[J[g+56>>2]+12>>2];break o}c=J[a+40>>2];ua(J[J[a>>2]>>2]+P(c,p)|0,g+30|0,c);j=J[g+16>>2];J[j+(m<<2)>>2]=p;p=p+1|0}m=m+1|0;i=m?i:i+1|0;c=J[a+80>>2];if(!i&m>>>0>>0){continue}break}if((c|0)!=(p|0)){p:{if(!K[a+84|0]){b=J[a+72>>2];d=J[a+68>>2];if((b|0)==(d|0)){break p}b=b-d>>2;c=b>>>0<=1?1:b;m=c&3;n=0;b=0;if(c-1>>>0>=3){i=c&-4;l=0;while(1){e=b<<2;c=e+d|0;J[c>>2]=J[(J[c>>2]<<2)+j>>2];c=d+(e|4)|0;J[c>>2]=J[(J[c>>2]<<2)+j>>2];c=d+(e|8)|0;J[c>>2]=J[(J[c>>2]<<2)+j>>2];c=d+(e|12)|0;J[c>>2]=J[(J[c>>2]<<2)+j>>2];b=b+4|0;l=l+4|0;if((i|0)!=(l|0)){continue}break}}if(!m){break p}while(1){c=d+(b<<2)|0;J[c>>2]=J[(J[c>>2]<<2)+j>>2];b=b+1|0;n=n+1|0;if((m|0)!=(n|0)){continue}break}break p}H[a+84|0]=0;m=a+68|0;b=J[a+68>>2];i=J[a+72>>2]-b>>2;q:{if(i>>>0>>0){Ma(m,c-i|0,2176);c=J[a+80>>2];break q}if(c>>>0>=i>>>0){break q}J[a+72>>2]=b+(c<<2)}if(!c){break p}d=J[m>>2];n=0;b=0;if(c>>>0>=4){m=c&-4;l=0;while(1){e=b<<2;J[e+d>>2]=J[e+j>>2];i=e|4;J[i+d>>2]=J[j+i>>2];i=e|8;J[i+d>>2]=J[j+i>>2];i=e|12;J[i+d>>2]=J[j+i>>2];b=b+4|0;l=l+4|0;if((m|0)!=(l|0)){continue}break}}i=c&3;if(!i){break p}while(1){c=b<<2;J[c+d>>2]=J[c+j>>2];b=b+1|0;n=n+1|0;if((i|0)!=(n|0)){continue}break}}J[a+80>>2]=p}na(j)}b=J[g+40>>2];if(b){while(1){a=J[b>>2];na(b);b=a;if(b){continue}break}}a=J[g+32>>2];J[g+32>>2]=0;if(a){na(a)}ba=g- -64|0;return p}qa();B()}function Yk(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;J[a+8>>2]=e;q=a+32|0;f=J[q>>2];h=J[a+36>>2]-f>>2;a:{if(h>>>0>>0){Fa(q,e-h|0);break a}if(e>>>0>=h>>>0){break a}J[a+36>>2]=f+(e<<2)}b:{if(!d){break b}g=J[b>>2];c:{if((d|0)<2){h=g;break c}f=1;h=d-1|0;l=h&1;d:{if((d|0)==2){h=g;break d}o=h&-2;d=0;h=g;while(1){i=(f<<2)+b|0;p=J[i+4>>2];k=J[i>>2];j=(k|0)<(h|0);h=j?k:h;i=(h|0)>(p|0);h=i?p:h;g=j?g:(g|0)<(k|0)?k:g;g=i?g:(g|0)<(p|0)?p:g;f=f+2|0;d=d+2|0;if((o|0)!=(d|0)){continue}break}}if(!l){break c}f=J[(f<<2)+b>>2];d=(f|0)<(h|0);h=d?f:h;g=d?g:(f|0)>(g|0)?f:g}J[a+16>>2]=g;J[a+12>>2]=h;f=(g>>31)-((h>>31)+(g>>>0>>0)|0)|0;d=g-h|0;if(!f&d>>>0>2147483646|f){break b}f=d+1|0;J[a+20>>2]=f;d=f>>>1|0;J[a+24>>2]=d;J[a+28>>2]=0-d;if(f&1){break b}J[a+24>>2]=d-1}s=e<<2;d=e>>>0>1073741823?-1:s;h=pa(oa(d),0,d);d=J[a+56>>2];t=J[d>>2];d=J[d+4>>2]-t|0;if((d|0)>=5){w=J[a+52>>2];u=J[a+48>>2];x=e&-2;y=e&1;v=d>>2;l=v;while(1){o=l;e:{f:{l=l-1|0;if(v>>>0>l>>>0){p=P(e,l);d=J[(l<<2)+t>>2];if((d|0)==-1){break f}g=J[J[u+12>>2]+(d<<2)>>2];if((g|0)==-1){break f}j=J[w>>2];k=J[u>>2];i=J[j+(J[k+(g<<2)>>2]<<2)>>2];d=g+1|0;d=(d>>>0)%3|0?d:g-2|0;if((d|0)!=-1){f=J[k+(d<<2)>>2]}else{f=-1}g:{h:{if((g>>>0)%3|0){g=g-1|0;break h}g=g+2|0;d=-1;if((g|0)==-1){break g}}d=J[k+(g<<2)>>2]}if((i|0)>=(l|0)){break f}f=J[(f<<2)+j>>2];if((f|0)>=(l|0)){break f}d=J[j+(d<<2)>>2];if((d|0)>=(l|0)){break f}i:{if((e|0)<=0){break i}k=P(d,e);j=P(e,f);i=P(e,i);g=0;d=0;if((e|0)!=1){while(1){J[h+(g<<2)>>2]=(J[(g+k<<2)+b>>2]+J[(g+j<<2)+b>>2]|0)-J[(g+i<<2)+b>>2];f=g|1;J[h+(f<<2)>>2]=(J[(f+k<<2)+b>>2]+J[(f+j<<2)+b>>2]|0)-J[(f+i<<2)+b>>2];g=g+2|0;d=d+2|0;if((x|0)!=(d|0)){continue}break}}if(!y){break i}J[h+(g<<2)>>2]=(J[(g+k<<2)+b>>2]+J[(g+j<<2)+b>>2]|0)-J[(g+i<<2)+b>>2]}g=J[a+8>>2];if((g|0)<=0){break e}d=p<<2;p=d+c|0;k=b+d|0;i=J[q>>2];m=0;d=h;while(1){f=i;if((g|0)>0){f=J[q>>2];g=0;while(1){n=g<<2;r=J[n+d>>2];j=J[a+16>>2];j:{if((r|0)>(j|0)){J[f+n>>2]=j;break j}n=f+n|0;j=J[a+12>>2];if((j|0)>(r|0)){J[n>>2]=j;break j}J[n>>2]=r}g=g+1|0;if((g|0)>2]){continue}break}}g=m<<2;d=g+p|0;g=J[g+k>>2]-J[f+g>>2]|0;J[d>>2]=g;k:{if((g|0)>2]){g=g+J[a+20>>2]|0}else{if((g|0)<=J[a+24>>2]){break k}g=g-J[a+20>>2]|0}J[d>>2]=g}d=f;g=J[a+8>>2];m=m+1|0;if((g|0)>(m|0)){continue}break}break e}ra();B()}g=J[a+8>>2];if((g|0)<=0){break e}d=p<<2;p=d+c|0;k=b+d|0;d=(P(o-2|0,e)<<2)+b|0;i=J[q>>2];m=0;while(1){f=i;if((g|0)>0){f=J[q>>2];g=0;while(1){n=g<<2;r=J[n+d>>2];j=J[a+16>>2];l:{if((r|0)>(j|0)){J[f+n>>2]=j;break l}n=f+n|0;j=J[a+12>>2];if((j|0)>(r|0)){J[n>>2]=j;break l}J[n>>2]=r}g=g+1|0;if((g|0)>2]){continue}break}}g=m<<2;d=g+p|0;g=J[g+k>>2]-J[f+g>>2]|0;J[d>>2]=g;m:{if((g|0)>2]){g=g+J[a+20>>2]|0}else{if((g|0)<=J[a+24>>2]){break m}g=g-J[a+20>>2]|0}J[d>>2]=g}d=f;g=J[a+8>>2];m=m+1|0;if((g|0)>(m|0)){continue}break}}if((o|0)>2){continue}break}}if((e|0)>0){pa(h,0,s)}g=J[a+8>>2];if((g|0)>0){e=J[a+32>>2];m=0;d=h;while(1){f=e;if((g|0)>0){f=J[q>>2];g=0;while(1){o=g<<2;l=J[o+d>>2];i=J[a+16>>2];n:{if((l|0)>(i|0)){J[f+o>>2]=i;break n}o=f+o|0;i=J[a+12>>2];if((i|0)>(l|0)){J[o>>2]=i;break n}J[o>>2]=l}g=g+1|0;if((g|0)>2]){continue}break}}g=m<<2;d=g+c|0;g=J[b+g>>2]-J[f+g>>2]|0;J[d>>2]=g;o:{if((g|0)>2]){g=g+J[a+20>>2]|0}else{if((g|0)<=J[a+24>>2]){break o}g=g-J[a+20>>2]|0}J[d>>2]=g}d=f;g=J[a+8>>2];m=m+1|0;if((g|0)>(m|0)){continue}break}}na(h);return 1}function Rf(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=Q(0),p=0,q=0,r=Q(0);g=ba+-64|0;ba=g;J[g+40>>2]=0;J[g+44>>2]=0;J[g+32>>2]=0;J[g+36>>2]=0;J[g+48>>2]=1065353216;c=J[a+80>>2];J[g+24>>2]=0;J[g+16>>2]=0;J[g+20>>2]=0;a:{if(c){if(c>>>0>=1073741824){break a}e=c<<2;j=oa(e);J[g+16>>2]=j;c=e+j|0;J[g+24>>2]=c;pa(j,0,e);J[g+20>>2]=c;while(1){d=J[J[b>>2]>>2];e=J[b+48>>2];c=Hl(J[b+40>>2],J[b+44>>2],m,0);f=c;c=c+e|0;c=K[c+d|0];H[g+31|0]=c;J[g+12>>2]=p;H[g+8|0]=c;c=0;q=g+8|0;n=K[q|0];e=n^318;b:{c:{k=g+32|0;f=J[k+4>>2];if(!f){break c}d=Kl(f);d:{if(d>>>0>=2){c=e;if(f>>>0<=c>>>0){c=(e>>>0)%(f>>>0)|0}h=J[J[k>>2]+(c<<2)>>2];if(!h){break c}if(d>>>0<=1){break d}while(1){h=J[h>>2];if(!h){break c}d=J[h+4>>2];if((d|0)!=(e|0)){if(d>>>0>=f>>>0){d=(d>>>0)%(f>>>0)|0}if((c|0)!=(d|0)){break c}}if(K[h+8|0]!=(n|0)){continue}break}c=0;break b}c=e&f-1;h=J[J[k>>2]+(c<<2)>>2];if(!h){break c}}l=f-1|0;while(1){h=J[h>>2];if(!h){break c}d=J[h+4>>2];if((e|0)!=(d|0)&(d&l)!=(c|0)){break c}if(K[h+8|0]!=(n|0)){continue}break}c=0;break b}h=oa(16);H[h+8|0]=K[q|0];d=J[q+4>>2];J[h+4>>2]=e;J[h+12>>2]=d;J[h>>2]=0;o=Q(J[k+12>>2]+1>>>0);r=N[k+16>>2];e:{if(o>Q(r*Q(f>>>0))?0:f){break e}c=2;d=(f-1&f)!=0|f>>>0<3|f<<1;o=Q(W(Q(o/r)));f:{if(o=Q(0)){l=~~o>>>0;break f}l=0}d=d>>>0>l>>>0?d:l;g:{if((d|0)==1){break g}if(!(d&d-1)){c=d;break g}c=Ha(d);f=J[k+4>>2]}h:{if(c>>>0<=f>>>0){if(c>>>0>=f>>>0){break h}l=f>>>0<3;o=Q(W(Q(Q(M[k+12>>2])/N[k+16>>2])));i:{if(o=Q(0)){d=~~o>>>0;break i}d=0}j:{k:{if(l){break k}if(Kl(f)>>>0>1){break k}d=d>>>0<2?d:1<<32-S(d-1|0);break j}d=Ha(d)}c=c>>>0>d>>>0?c:d;if(f>>>0<=c>>>0){break h}}db(k,c)}f=J[k+4>>2];c=f-1|0;if(!(c&f)){c=c&e;break e}if(e>>>0>>0){c=e;break e}c=(e>>>0)%(f>>>0)|0}e=J[k>>2]+(c<<2)|0;c=J[e>>2];l:{m:{if(!c){c=k+8|0;J[h>>2]=J[c>>2];J[k+8>>2]=h;J[e>>2]=c;c=J[h>>2];if(!c){break l}c=J[c+4>>2];e=f-1|0;n:{if(!(e&f)){c=c&e;break n}if(c>>>0>>0){break n}c=(c>>>0)%(f>>>0)|0}c=J[k>>2]+(c<<2)|0;break m}J[h>>2]=J[c>>2]}J[c>>2]=h}J[k+12>>2]=J[k+12>>2]+1;c=1}H[g+60|0]=c;J[g+56>>2]=h;o:{if(!K[g+60|0]){J[(m<<2)+j>>2]=J[J[g+56>>2]+12>>2];break o}c=J[a+40>>2];ua(J[J[a>>2]>>2]+P(c,p)|0,g+31|0,c);j=J[g+16>>2];J[j+(m<<2)>>2]=p;p=p+1|0}m=m+1|0;i=m?i:i+1|0;c=J[a+80>>2];if(!i&m>>>0>>0){continue}break}if((c|0)!=(p|0)){p:{if(!K[a+84|0]){b=J[a+72>>2];d=J[a+68>>2];if((b|0)==(d|0)){break p}b=b-d>>2;c=b>>>0<=1?1:b;m=c&3;n=0;b=0;if(c-1>>>0>=3){i=c&-4;l=0;while(1){e=b<<2;c=e+d|0;J[c>>2]=J[(J[c>>2]<<2)+j>>2];c=d+(e|4)|0;J[c>>2]=J[(J[c>>2]<<2)+j>>2];c=d+(e|8)|0;J[c>>2]=J[(J[c>>2]<<2)+j>>2];c=d+(e|12)|0;J[c>>2]=J[(J[c>>2]<<2)+j>>2];b=b+4|0;l=l+4|0;if((i|0)!=(l|0)){continue}break}}if(!m){break p}while(1){c=d+(b<<2)|0;J[c>>2]=J[(J[c>>2]<<2)+j>>2];b=b+1|0;n=n+1|0;if((m|0)!=(n|0)){continue}break}break p}H[a+84|0]=0;m=a+68|0;b=J[a+68>>2];i=J[a+72>>2]-b>>2;q:{if(i>>>0>>0){Ma(m,c-i|0,2176);c=J[a+80>>2];break q}if(c>>>0>=i>>>0){break q}J[a+72>>2]=b+(c<<2)}if(!c){break p}d=J[m>>2];n=0;b=0;if(c>>>0>=4){m=c&-4;l=0;while(1){e=b<<2;J[e+d>>2]=J[e+j>>2];i=e|4;J[i+d>>2]=J[j+i>>2];i=e|8;J[i+d>>2]=J[j+i>>2];i=e|12;J[i+d>>2]=J[j+i>>2];b=b+4|0;l=l+4|0;if((m|0)!=(l|0)){continue}break}}i=c&3;if(!i){break p}while(1){c=b<<2;J[c+d>>2]=J[c+j>>2];b=b+1|0;n=n+1|0;if((i|0)!=(n|0)){continue}break}}J[a+80>>2]=p}na(j)}b=J[g+40>>2];if(b){while(1){a=J[b>>2];na(b);b=a;if(b){continue}break}}a=J[g+32>>2];J[g+32>>2]=0;if(a){na(a)}ba=g- -64|0;return p}qa();B()}function gl(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;J[a+8>>2]=e;q=a+32|0;f=J[q>>2];h=J[a+36>>2]-f>>2;a:{if(h>>>0>>0){Fa(q,e-h|0);break a}if(e>>>0>=h>>>0){break a}J[a+36>>2]=f+(e<<2)}b:{if(!d){break b}g=J[b>>2];c:{if((d|0)<2){h=g;break c}f=1;h=d-1|0;l=h&1;d:{if((d|0)==2){h=g;break d}o=h&-2;d=0;h=g;while(1){i=(f<<2)+b|0;m=J[i+4>>2];p=J[i>>2];j=(p|0)<(h|0);h=j?p:h;i=(h|0)>(m|0);h=i?m:h;g=j?g:(g|0)<(p|0)?p:g;g=i?g:(g|0)<(m|0)?m:g;f=f+2|0;d=d+2|0;if((o|0)!=(d|0)){continue}break}}if(!l){break c}f=J[(f<<2)+b>>2];d=(f|0)<(h|0);h=d?f:h;g=d?g:(f|0)>(g|0)?f:g}J[a+16>>2]=g;J[a+12>>2]=h;f=(g>>31)-((h>>31)+(g>>>0>>0)|0)|0;d=g-h|0;if(!f&d>>>0>2147483646|f){break b}f=d+1|0;J[a+20>>2]=f;d=f>>>1|0;J[a+24>>2]=d;J[a+28>>2]=0-d;if(f&1){break b}J[a+24>>2]=d-1}t=e<<2;d=e>>>0>1073741823?-1:t;h=pa(oa(d),0,d);d=J[a+56>>2];u=J[d>>2];d=J[d+4>>2]-u|0;if((d|0)>=5){w=J[a+52>>2];s=J[a+48>>2];x=e&-2;y=e&1;v=d>>2;l=v;while(1){o=l;e:{f:{l=l-1|0;if(v>>>0>l>>>0){p=P(e,l);d=J[(l<<2)+u>>2];if((d|0)==-1|J[J[s>>2]+(d>>>3&536870908)>>2]>>>d&1){break f}m=J[J[J[s+64>>2]+12>>2]+(d<<2)>>2];if((m|0)==-1){break f}i=J[w>>2];j=J[s+28>>2];g=J[i+(J[j+(m<<2)>>2]<<2)>>2];if((g|0)>=(l|0)){break f}d=m+1|0;f=J[i+(J[j+(((d>>>0)%3|0?d:m-2|0)<<2)>>2]<<2)>>2];if((f|0)>=(l|0)){break f}d=J[i+(J[j+(m+((m>>>0)%3|0?-1:2)<<2)>>2]<<2)>>2];if((d|0)>=(l|0)){break f}g:{if((e|0)<=0){break g}j=P(d,e);i=P(e,f);f=P(e,g);g=0;k=0;if((e|0)!=1){while(1){J[h+(g<<2)>>2]=(J[(g+j<<2)+b>>2]+J[(g+i<<2)+b>>2]|0)-J[(f+g<<2)+b>>2];d=g|1;J[h+(d<<2)>>2]=(J[(d+j<<2)+b>>2]+J[(d+i<<2)+b>>2]|0)-J[(d+f<<2)+b>>2];g=g+2|0;k=k+2|0;if((x|0)!=(k|0)){continue}break}}if(!y){break g}J[h+(g<<2)>>2]=(J[(g+j<<2)+b>>2]+J[(g+i<<2)+b>>2]|0)-J[(f+g<<2)+b>>2]}g=J[a+8>>2];if((g|0)<=0){break e}d=p<<2;m=d+c|0;p=b+d|0;i=J[q>>2];k=0;d=h;while(1){f=i;if((g|0)>0){f=J[q>>2];g=0;while(1){n=g<<2;r=J[n+d>>2];j=J[a+16>>2];h:{if((r|0)>(j|0)){J[f+n>>2]=j;break h}n=f+n|0;j=J[a+12>>2];if((j|0)>(r|0)){J[n>>2]=j;break h}J[n>>2]=r}g=g+1|0;if((g|0)>2]){continue}break}}g=k<<2;d=g+m|0;g=J[g+p>>2]-J[f+g>>2]|0;J[d>>2]=g;i:{if((g|0)>2]){g=g+J[a+20>>2]|0}else{if((g|0)<=J[a+24>>2]){break i}g=g-J[a+20>>2]|0}J[d>>2]=g}d=f;g=J[a+8>>2];k=k+1|0;if((g|0)>(k|0)){continue}break}break e}ra();B()}g=J[a+8>>2];if((g|0)<=0){break e}d=p<<2;m=d+c|0;p=b+d|0;d=(P(o-2|0,e)<<2)+b|0;i=J[q>>2];k=0;while(1){f=i;if((g|0)>0){f=J[q>>2];g=0;while(1){n=g<<2;r=J[n+d>>2];j=J[a+16>>2];j:{if((r|0)>(j|0)){J[f+n>>2]=j;break j}n=f+n|0;j=J[a+12>>2];if((j|0)>(r|0)){J[n>>2]=j;break j}J[n>>2]=r}g=g+1|0;if((g|0)>2]){continue}break}}g=k<<2;d=g+m|0;g=J[g+p>>2]-J[f+g>>2]|0;J[d>>2]=g;k:{if((g|0)>2]){g=g+J[a+20>>2]|0}else{if((g|0)<=J[a+24>>2]){break k}g=g-J[a+20>>2]|0}J[d>>2]=g}d=f;g=J[a+8>>2];k=k+1|0;if((g|0)>(k|0)){continue}break}}if((o|0)>2){continue}break}}if((e|0)>0){pa(h,0,t)}g=J[a+8>>2];if((g|0)>0){e=J[a+32>>2];k=0;d=h;while(1){f=e;if((g|0)>0){f=J[q>>2];g=0;while(1){o=g<<2;l=J[o+d>>2];i=J[a+16>>2];l:{if((l|0)>(i|0)){J[f+o>>2]=i;break l}o=f+o|0;i=J[a+12>>2];if((i|0)>(l|0)){J[o>>2]=i;break l}J[o>>2]=l}g=g+1|0;if((g|0)>2]){continue}break}}g=k<<2;d=g+c|0;g=J[b+g>>2]-J[f+g>>2]|0;J[d>>2]=g;m:{if((g|0)>2]){g=g+J[a+20>>2]|0}else{if((g|0)<=J[a+24>>2]){break m}g=g-J[a+20>>2]|0}J[d>>2]=g}d=f;g=J[a+8>>2];k=k+1|0;if((g|0)>(k|0)){continue}break}}na(h);return 1}function je(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=Q(0),f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=Q(0),p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;if(J[c>>2]==J[c+4>>2]){m=J[d+80>>2];u=ba-16|0;ba=u;g=J[a+4>>2];k=K[b+24|0];h=J[d+48>>2];n=J[J[d>>2]>>2];c=u+8|0;J[c>>2]=1065353216;d=c;N[c>>2]=Q(-1<>2];c=oa(k<<2);a:{if(!m|!k){break a}p=h+n|0;o=N[d>>2];n=J[a+8>>2];v=J[b>>2];d=J[b+48>>2];g=J[b+40>>2];w=J[b+44>>2];if(!K[b+84|0]){f=J[b+68>>2];s=k&254;t=k&1;a=0;while(1){b=J[v>>2];l=Hl(g,w,J[f+(i<<2)>>2],0)+d|0;h=ua(c,b+l|0,g);b=0;q=0;if((k|0)!=1){while(1){l=p+(a<<2)|0;j=b<<2;e=Q(V(Q(Q(o*Q(N[j+h>>2]-N[n+j>>2]))+Q(.5))));b:{if(Q(R(e))>2]=r;j=j|4;e=Q(V(Q(Q(o*Q(N[j+h>>2]-N[n+j>>2]))+Q(.5))));c:{if(Q(R(e))>2]=j;b=b+2|0;a=a+2|0;q=q+2|0;if((s|0)!=(q|0)){continue}break}}if(t){l=p+(a<<2)|0;b=b<<2;e=Q(V(Q(Q(o*Q(N[b+h>>2]-N[b+n>>2]))+Q(.5))));d:{if(Q(R(e))>2]=b;a=a+1|0}i=i+1|0;if((m|0)!=(i|0)){continue}break}break a}s=k&254;t=k&1;a=0;while(1){b=J[v>>2];h=Hl(g,w,i,l)+d|0;j=ua(c,b+h|0,g);b=0;q=0;if((k|0)!=1){while(1){h=p+(a<<2)|0;f=b<<2;e=Q(V(Q(Q(o*Q(N[f+j>>2]-N[f+n>>2]))+Q(.5))));e:{if(Q(R(e))>2]=r;f=f|4;e=Q(V(Q(Q(o*Q(N[f+j>>2]-N[f+n>>2]))+Q(.5))));f:{if(Q(R(e))>2]=f;b=b+2|0;a=a+2|0;q=q+2|0;if((s|0)!=(q|0)){continue}break}}if(t){h=p+(a<<2)|0;b=b<<2;e=Q(V(Q(Q(o*Q(N[b+j>>2]-N[b+n>>2]))+Q(.5))));g:{if(Q(R(e))>2]=b;a=a+1|0}b=l;i=i+1|0;b=i?b:b+1|0;l=b;if((i|0)!=(m|0)|b){continue}break}}na(c);ba=u+16|0;return 1}j=ba-16|0;ba=j;m=J[a+4>>2];i=K[b+24|0];g=J[d+48>>2];h=J[J[d>>2]>>2];d=j+8|0;J[d>>2]=1065353216;l=d;N[d>>2]=Q(-1<>2];d=oa(i<<2);m=J[c+4>>2];q=J[c>>2];h:{if(!i|(m|0)==(q|0)){break h}n=h+g|0;c=m-q>>2;u=c>>>0<=1?1:c;o=N[l>>2];h=J[a+8>>2];v=J[b>>2];l=J[b+48>>2];m=J[b+40>>2];w=J[b+44>>2];if(K[b+84|0]){s=i&254;t=i&1;a=0;c=0;while(1){b=J[v>>2];g=Hl(m,w,J[q+(c<<2)>>2],0)+l|0;p=ua(d,b+g|0,m);b=0;k=0;if((i|0)!=1){while(1){g=n+(a<<2)|0;f=b<<2;e=Q(V(Q(Q(o*Q(N[f+p>>2]-N[h+f>>2]))+Q(.5))));i:{if(Q(R(e))>2]=r;f=f|4;e=Q(V(Q(Q(o*Q(N[f+p>>2]-N[h+f>>2]))+Q(.5))));j:{if(Q(R(e))>2]=f;b=b+2|0;a=a+2|0;k=k+2|0;if((s|0)!=(k|0)){continue}break}}if(t){g=n+(a<<2)|0;b=b<<2;e=Q(V(Q(Q(o*Q(N[b+p>>2]-N[b+h>>2]))+Q(.5))));k:{if(Q(R(e))>2]=b;a=a+1|0}c=c+1|0;if((u|0)!=(c|0)){continue}break}break h}s=J[b+68>>2];t=i&254;x=i&1;a=0;c=0;while(1){b=J[v>>2];g=Hl(m,w,J[s+(J[q+(c<<2)>>2]<<2)>>2],0)+l|0;p=ua(d,b+g|0,m);b=0;k=0;if((i|0)!=1){while(1){g=n+(a<<2)|0;f=b<<2;e=Q(V(Q(Q(o*Q(N[f+p>>2]-N[h+f>>2]))+Q(.5))));l:{if(Q(R(e))>2]=r;f=f|4;e=Q(V(Q(Q(o*Q(N[f+p>>2]-N[h+f>>2]))+Q(.5))));m:{if(Q(R(e))>2]=f;b=b+2|0;a=a+2|0;k=k+2|0;if((t|0)!=(k|0)){continue}break}}if(x){g=n+(a<<2)|0;b=b<<2;e=Q(V(Q(Q(o*Q(N[b+p>>2]-N[b+h>>2]))+Q(.5))));n:{if(Q(R(e))>2]=b;a=a+1|0}c=c+1|0;if((u|0)!=(c|0)){continue}break}}na(d);ba=j+16|0;return 1}function bi(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=Q(0);c=1;a:{if(!J[a+80>>2]){break a}f=J[a+8>>2];if((J[a+12>>2]-f|0)<4){break a}while(1){b=J[(n<<2)+f>>2];k=0;l=0;j=0;c=0;f=0;e=-1;b:{c:{d:{e:{switch(J[b+28>>2]-1|0){case 8:f:{switch(K[b+24|0]-1|0){case 0:e=ba+-64|0;ba=e;J[e+40>>2]=0;J[e+44>>2]=0;J[e+32>>2]=0;J[e+36>>2]=0;J[e+48>>2]=1065353216;g=J[b+80>>2];J[e+24>>2]=0;J[e+16>>2]=0;J[e+20>>2]=0;g:{h:{if(g){if(g>>>0>=1073741824){break h}d=g<<2;g=oa(d);J[e+16>>2]=g;h=d+g|0;J[e+24>>2]=h;pa(g,0,d);J[e+20>>2]=h;while(1){d=J[J[b>>2]>>2];h=J[b+48>>2];m=Hl(J[b+40>>2],J[b+44>>2],c,0);h=h+m|0;d=d+h|0;o=(x(2,K[d|0]|K[d+1|0]<<8|(K[d+2|0]<<16|K[d+3|0]<<24)),D());N[e+28>>2]=o;J[e+12>>2]=k;N[e+8>>2]=o;d=e+8|0;qf(e+56|0,e+32|0,d,d);i:{if(!K[e+60|0]){J[(c<<2)+g>>2]=J[J[e+56>>2]+12>>2];break i}g=J[b+40>>2];ua(J[J[b>>2]>>2]+P(g,k)|0,e+28|0,g);g=J[e+16>>2];J[g+(c<<2)>>2]=k;k=k+1|0}c=c+1|0;f=c?f:f+1|0;d=J[b+80>>2];if(!f&c>>>0>>0){continue}break}if((d|0)!=(k|0)){j:{if(!K[b+84|0]){c=J[b+72>>2];f=J[b+68>>2];if((c|0)==(f|0)){break j}c=c-f>>2;d=c>>>0<=1?1:c;h=d&3;c=0;if(d-1>>>0>=3){m=d&-4;while(1){d=c<<2;i=d+f|0;J[i>>2]=J[(J[i>>2]<<2)+g>>2];i=f+(d|4)|0;J[i>>2]=J[(J[i>>2]<<2)+g>>2];i=f+(d|8)|0;J[i>>2]=J[(J[i>>2]<<2)+g>>2];d=f+(d|12)|0;J[d>>2]=J[(J[d>>2]<<2)+g>>2];c=c+4|0;j=j+4|0;if((m|0)!=(j|0)){continue}break}}if(!h){break j}while(1){d=f+(c<<2)|0;J[d>>2]=J[(J[d>>2]<<2)+g>>2];c=c+1|0;l=l+1|0;if((h|0)!=(l|0)){continue}break}break j}H[b+84|0]=0;c=b+68|0;h=J[b+68>>2];f=J[b+72>>2]-h>>2;k:{if(f>>>0>>0){Ma(c,d-f|0,2176);d=J[b+80>>2];break k}if(d>>>0>=f>>>0){break k}J[b+72>>2]=h+(d<<2)}if(!d){break j}f=J[c>>2];c=0;if(d>>>0>=4){m=d&-4;while(1){h=c<<2;J[h+f>>2]=J[g+h>>2];i=h|4;J[i+f>>2]=J[g+i>>2];i=h|8;J[i+f>>2]=J[g+i>>2];h=h|12;J[h+f>>2]=J[g+h>>2];c=c+4|0;j=j+4|0;if((m|0)!=(j|0)){continue}break}}d=d&3;if(!d){break j}while(1){j=c<<2;J[j+f>>2]=J[g+j>>2];c=c+1|0;l=l+1|0;if((d|0)!=(l|0)){continue}break}}J[b+80>>2]=k}na(g)}c=J[e+40>>2];if(c){while(1){f=J[c>>2];na(c);c=f;if(c){continue}break}}c=J[e+32>>2];J[e+32>>2]=0;if(c){na(c)}ba=e- -64|0;c=k;break g}qa();B()}break d;case 1:c=Jd(b,b);break d;case 2:c=Id(b,b);break d;case 3:break f;default:break c}}c=Hd(b,b);break d;case 0:l:{switch(K[b+24|0]-1|0){case 0:c=Rf(b,b);break d;case 1:c=Nf(b,b);break d;case 2:c=Kf(b,b);break d;case 3:break l;default:break c}}c=If(b,b);break d;case 1:case 10:m:{switch(K[b+24|0]-1|0){case 0:c=Rf(b,b);break d;case 1:c=Nf(b,b);break d;case 2:c=Kf(b,b);break d;case 3:break m;default:break c}}c=If(b,b);break d;case 3:n:{switch(K[b+24|0]-1|0){case 0:c=Ff(b,b);break d;case 1:c=Ef(b,b);break d;case 2:c=wf(b,b);break d;case 3:break n;default:break c}}c=vf(b,b);break d;case 2:o:{switch(K[b+24|0]-1|0){case 0:c=Ff(b,b);break d;case 1:c=Ef(b,b);break d;case 2:c=wf(b,b);break d;case 3:break o;default:break c}}c=vf(b,b);break d;case 5:p:{switch(K[b+24|0]-1|0){case 0:c=uf(b,b);break d;case 1:c=Jd(b,b);break d;case 2:c=Id(b,b);break d;case 3:break p;default:break c}}c=Hd(b,b);break d;case 4:break e;default:break b}}q:{switch(K[b+24|0]-1|0){case 0:c=uf(b,b);break d;case 1:c=Jd(b,b);break d;case 2:c=Id(b,b);break d;case 3:break q;default:break c}}c=Hd(b,b)}e=c;if(e){break b}}e=-1}c=(e|0)!=0;if(!e){break a}n=n+1|0;f=J[a+8>>2];if((n|0)>2]-f>>2){continue}break}}return c|0}function ic(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;k=ba-16|0;ba=k;a:{if(!J[a+8>>2]){break a}e=J[a>>2];J[a>>2]=a+4;J[J[a+4>>2]+8>>2]=0;J[a+4>>2]=0;J[a+8>>2]=0;f=J[e+4>>2];e=f?f:e;if(!e){Da(a,e);break a}h=J[e+8>>2];b:{if(!h){break b}f=J[h>>2];if((f|0)==(e|0)){J[h>>2]=0;d=h;f=J[d+4>>2];if(!f){break b}while(1){d=f;f=J[d>>2];if(f){continue}f=J[d+4>>2];if(f){continue}break}break b}J[h+4>>2]=0;d=h;if(!f){break b}while(1){d=f;f=J[d>>2];if(f){continue}f=J[d+4>>2];if(f){continue}break}}c:{if((b|0)==(c|0)){h=e;break c}f=b;while(1){h=d;J[k+12>>2]=e+28;J[k+8>>2]=e+16;b=f+16|0;d=J[k+8>>2];d:{if((b|0)==(d|0)){break d}i=K[b+11|0];g=i<<24>>24;if(H[d+11|0]>=0){if((g|0)>=0){g=J[b+4>>2];J[d>>2]=J[b>>2];J[d+4>>2]=g;J[d+8>>2]=J[b+8>>2];break d}hd(d,J[b>>2],J[b+4>>2]);break d}l=d;d=(g|0)<0;id(l,d?J[b>>2]:b,d?J[b+4>>2]:i)}d=J[k+12>>2];g=b+12|0;if((d|0)!=(g|0)){e:{j=K[b+23|0];i=j<<24>>24;if(H[d+11|0]>=0){if((i|0)>=0){b=J[g+4>>2];J[d>>2]=J[g>>2];J[d+4>>2]=b;J[d+8>>2]=J[g+8>>2];break e}hd(d,J[b+12>>2],J[b+16>>2]);break e}l=d;d=(i|0)<0;id(l,d?J[b+12>>2]:g,d?J[b+16>>2]:j)}}g=J[a+4>>2];f:{if(!g){b=a+4|0;d=b;break f}b=K[e+27|0];d=b<<24>>24<0;j=d?J[e+16>>2]:e+16|0;i=d?J[e+20>>2]:b;while(1){b=g;g=K[b+27|0];d=g<<24>>24<0;g:{h:{i:{g=d?J[b+20>>2]:g;l=g>>>0>>0?g:i;if(l){d=Ba(j,d?J[b+16>>2]:b+16|0,l);if(d){break i}}if(g>>>0>i>>>0){break h}break g}if((d|0)>=0){break g}}d=b;g=J[b>>2];if(g){continue}break f}g=J[b+4>>2];if(g){continue}break}d=b+4|0}J[e+8>>2]=b;J[e>>2]=0;J[e+4>>2]=0;J[d>>2]=e;b=e;e=J[J[a>>2]>>2];if(e){J[a>>2]=e;b=J[d>>2]}sb(J[a+4>>2],b);J[a+8>>2]=J[a+8>>2]+1;d=0;j:{if(!h){break j}e=J[h+8>>2];if(!e){break j}b=J[e>>2];if((h|0)==(b|0)){J[e>>2]=0;d=e;b=J[d+4>>2];if(!b){break j}while(1){d=b;b=J[b>>2];if(b){continue}b=J[d+4>>2];if(b){continue}break}break j}J[e+4>>2]=0;d=e;if(!b){break j}while(1){d=b;b=J[b>>2];if(b){continue}b=J[d+4>>2];if(b){continue}break}}e=J[f+4>>2];k:{if(e){while(1){b=e;e=J[b>>2];if(e){continue}break k}}while(1){b=J[f+8>>2];e=J[b>>2]!=(f|0);f=b;if(e){continue}break}}if(!h){break c}f=b;e=h;if((b|0)!=(c|0)){continue}break}}Da(a,h);if(!d){break a}while(1){e=J[d+8>>2];if(e){d=e;continue}break}Da(a,d)}if((b|0)!=(c|0)){while(1){f=oa(40);g=f+16|0;l:{if(H[b+27|0]>=0){d=J[b+20>>2];J[g>>2]=J[b+16>>2];J[g+4>>2]=d;J[g+8>>2]=J[b+24>>2];break l}Ga(g,J[b+16>>2],J[b+20>>2])}d=a+4|0;e=f+28|0;m:{if(H[b+39|0]>=0){h=J[b+32>>2];J[e>>2]=J[b+28>>2];J[e+4>>2]=h;J[e+8>>2]=J[b+36>>2];break m}Ga(e,J[b+28>>2],J[b+32>>2])}e=d;h=J[d>>2];n:{if(!h){break n}e=K[f+27|0];d=e<<24>>24<0;i=d?J[f+20>>2]:e;g=d?J[f+16>>2]:g;while(1){d=h;h=K[d+27|0];e=h<<24>>24<0;o:{p:{q:{h=e?J[d+20>>2]:h;j=h>>>0>>0?h:i;if(j){e=Ba(g,e?J[d+16>>2]:d+16|0,j);if(e){break q}}if(h>>>0>i>>>0){break p}break o}if((e|0)>=0){break o}}e=d;h=J[d>>2];if(h){continue}break n}h=J[d+4>>2];if(h){continue}break}e=d+4|0}J[f+8>>2]=d;J[f>>2]=0;J[f+4>>2]=0;J[e>>2]=f;d=f;f=J[J[a>>2]>>2];if(f){J[a>>2]=f;d=J[e>>2]}sb(J[a+4>>2],d);J[a+8>>2]=J[a+8>>2]+1;f=J[b+4>>2];r:{if(f){while(1){e=f;f=J[e>>2];if(f){continue}break r}}while(1){e=J[b+8>>2];d=J[e>>2]!=(b|0);b=e;if(d){continue}break}}b=e;if((c|0)!=(b|0)){continue}break}}ba=k+16|0}function ef(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;a:{if((b|0)<0){break a}c=J[a+12>>2];d=J[a+8>>2];if(c-d>>2>>>0<=b>>>0){break a}d=d+(b<<2)|0;e=J[d>>2];i=J[e+60>>2];f=J[e+56>>2];e=d+4|0;if((e|0)!=(c|0)){while(1){h=J[e>>2];J[e>>2]=0;g=J[d>>2];J[d>>2]=h;if(g){Ka(g)}d=d+4|0;e=e+4|0;if((e|0)!=(c|0)){continue}break}c=J[a+12>>2]}if((c|0)!=(d|0)){while(1){c=c-4|0;e=J[c>>2];J[c>>2]=0;if(e){Ka(e)}if((c|0)!=(d|0)){continue}break}}J[a+12>>2]=d;g=J[a+4>>2];b:{if(!g|(i|0)<0){break b}c=J[g+24>>2];d=J[g+28>>2];if((c|0)==(d|0)){break b}while(1){if((i|0)==J[J[c>>2]+24>>2]){d=c+4|0;i=J[g+28>>2];if((d|0)!=(i|0)){while(1){h=J[d>>2];J[d>>2]=0;e=J[c>>2];J[c>>2]=h;if(e){lb(e+12|0,J[e+16>>2]);kb(e,J[e+4>>2]);na(e)}c=c+4|0;d=d+4|0;if((i|0)!=(d|0)){continue}break}d=J[g+28>>2]}if((c|0)!=(d|0)){while(1){d=d-4|0;e=J[d>>2];J[d>>2]=0;if(e){lb(e+12|0,J[e+16>>2]);kb(e,J[e+4>>2]);na(e)}if((c|0)!=(d|0)){continue}break}}J[g+28>>2]=c;break b}c=c+4|0;if((d|0)!=(c|0)){continue}break}}c:{if((f|0)>4){break c}d:{e=P(f,12)+a|0;c=J[e+20>>2];d=J[e+24>>2];if((c|0)==(d|0)){break d}while(1){if(J[c>>2]==(b|0)){break d}c=c+4|0;if((d|0)!=(c|0)){continue}break}break c}if((c|0)==(d|0)){break c}f=c;c=c+4|0;ta(f,c,d-c|0);J[e+24>>2]=d-4}c=J[a+24>>2];d=J[a+20>>2];e:{if((c|0)==(d|0)){break e}e=c-d|0;c=e>>2;g=c>>>0<=1?1:c;i=g&1;c=0;if(e>>>0>=8){g=g&-2;e=0;while(1){f=c<<2;h=f+d|0;j=J[h>>2];if((j|0)>(b|0)){J[h>>2]=j-1}f=d+(f|4)|0;h=J[f>>2];if((h|0)>(b|0)){J[f>>2]=h-1}c=c+2|0;e=e+2|0;if((g|0)!=(e|0)){continue}break}}if(!i){break e}c=d+(c<<2)|0;d=J[c>>2];if((d|0)<=(b|0)){break e}J[c>>2]=d-1}c=J[a+36>>2];d=J[a+32>>2];f:{if((c|0)==(d|0)){break f}e=c-d|0;c=e>>2;g=c>>>0<=1?1:c;i=g&1;c=0;if(e>>>0>=8){g=g&-2;e=0;while(1){f=c<<2;h=f+d|0;j=J[h>>2];if((j|0)>(b|0)){J[h>>2]=j-1}f=d+(f|4)|0;h=J[f>>2];if((h|0)>(b|0)){J[f>>2]=h-1}c=c+2|0;e=e+2|0;if((g|0)!=(e|0)){continue}break}}if(!i){break f}c=d+(c<<2)|0;d=J[c>>2];if((d|0)<=(b|0)){break f}J[c>>2]=d-1}c=J[a+48>>2];d=J[a+44>>2];g:{if((c|0)==(d|0)){break g}e=c-d|0;c=e>>2;g=c>>>0<=1?1:c;i=g&1;c=0;if(e>>>0>=8){g=g&-2;e=0;while(1){f=c<<2;h=f+d|0;j=J[h>>2];if((j|0)>(b|0)){J[h>>2]=j-1}f=d+(f|4)|0;h=J[f>>2];if((h|0)>(b|0)){J[f>>2]=h-1}c=c+2|0;e=e+2|0;if((g|0)!=(e|0)){continue}break}}if(!i){break g}c=d+(c<<2)|0;d=J[c>>2];if((d|0)<=(b|0)){break g}J[c>>2]=d-1}c=J[a+60>>2];d=J[a+56>>2];h:{if((c|0)==(d|0)){break h}e=c-d|0;c=e>>2;g=c>>>0<=1?1:c;i=g&1;c=0;if(e>>>0>=8){g=g&-2;e=0;while(1){f=c<<2;h=f+d|0;j=J[h>>2];if((j|0)>(b|0)){J[h>>2]=j-1}f=d+(f|4)|0;h=J[f>>2];if((h|0)>(b|0)){J[f>>2]=h-1}c=c+2|0;e=e+2|0;if((g|0)!=(e|0)){continue}break}}if(!i){break h}c=d+(c<<2)|0;d=J[c>>2];if((d|0)<=(b|0)){break h}J[c>>2]=d-1}c=J[a+72>>2];a=J[a+68>>2];if((c|0)==(a|0)){break a}d=c-a|0;c=d>>2;e=c>>>0<=1?1:c;g=e&1;c=0;if(d>>>0>=8){d=e&-2;e=0;while(1){i=c<<2;f=i+a|0;h=J[f>>2];if((h|0)>(b|0)){J[f>>2]=h-1}i=a+(i|4)|0;f=J[i>>2];if((f|0)>(b|0)){J[i>>2]=f-1}c=c+2|0;e=e+2|0;if((d|0)!=(e|0)){continue}break}}if(!g){break a}f=b;a=a+(c<<2)|0;b=J[a>>2];if((f|0)>=(b|0)){break a}J[a>>2]=b-1}}function _a(a,b,c,d,e,f,g,h,i){var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;j=ba-112|0;ba=j;k=i&2147483647;a:{b:{l=e&2147483647;m=!(b|c);if(!(d|l?l-2147418112>>>0<2147549184:m)){o=k-2147418112|0;if(!h&(o|0)==-2147418112?f|g:(o|0)==-2147418112&(h|0)!=0|o>>>0>2147549184){break b}}if(!(!d&(l|0)==2147418112?m:l>>>0<2147418112)){h=d;i=e|32768;f=b;g=c;break a}if(!(!h&(k|0)==2147418112?!(f|g):k>>>0<2147418112)){i=i|32768;break a}if(!(b|d|(l^2147418112|c))){n=d;d=!(b^f|d^h|(c^g|e^i^-2147483648));h=d?0:n;i=d?2147450880:e;f=d?0:b;g=d?0:c;break a}if(!(f|h|(k^2147418112|g))){break a}if(!(b|d|(c|l))){if(f|h|(g|k)){break a}f=b&f;g=c&g;h=d&h;i=e&i;break a}if(f|h|(g|k)){break b}f=b;g=c;h=d;i=e;break a}n=(k|0)==(l|0);r=n&(d|0)==(h|0)?(c|0)==(g|0)&b>>>0>>0|c>>>0>>0:n&d>>>0>>0|k>>>0>l>>>0;m=r;l=m?f:b;o=m?g:c;n=m?i:e;s=n;m=m?h:d;q=n&65535;d=r?d:h;e=r?e:i;t=e;n=e>>>16&32767;p=s>>>16&32767;if(!p){e=!(m|q);i=e;k=e?l:m;e=e<<6;h=e;i=S(i?o:q);e=e+((i|0)==32?S(k)+32|0:i)|0;Pa(j+96|0,l,o,m,q,e-15|0);m=J[j+104>>2];q=J[j+108>>2];o=J[j+100>>2];p=16-e|0;l=J[j+96>>2]}f=r?b:f;g=r?c:g;h=d;i=t&65535;if(!n){b=!(h|i);e=b;k=b?f:h;b=b<<6;c=b;e=S(e?g:i);b=b+((e|0)==32?S(k)+32|0:e)|0;Pa(j+80|0,f,g,h,i,b-15|0);n=16-b|0;h=J[j+88>>2];i=J[j+92>>2];g=J[j+84>>2];f=J[j+80>>2]}c=i<<3|h>>>29;b=h<<3|g>>>29;c=c|524288;h=m<<3|o>>>29;i=q<<3|m>>>29;r=s^t;e=g<<3|f>>>29;d=f<<3;c:{if((n|0)==(p|0)){break c}f=p-n|0;if(f>>>0>127){b=0;c=0;e=0;d=1;break c}Pa(j- -64|0,d,e,b,c,128-f|0);Gb(j+48|0,d,e,b,c,f);b=J[j+56>>2];c=J[j+60>>2];e=J[j+52>>2];d=J[j+48>>2]|(J[j+64>>2]|J[j+72>>2]|(J[j+68>>2]|J[j+76>>2]))!=0}m=d;k=e;n=h;q=i|524288;e=o<<3|l>>>29;o=l<<3;l=e;d:{if((r|0)<0){f=0;g=0;h=0;i=0;if(!(m^o|b^n|(k^l|c^q))){break a}d=o-m|0;e=l-((m>>>0>o>>>0)+k|0)|0;f=n-b|0;g=(k|0)==(l|0)&m>>>0>o>>>0|k>>>0>l>>>0;h=f-g|0;b=(q-((b>>>0>n>>>0)+c|0)|0)-(f>>>0>>0)|0;i=b;if(b>>>0>524287){break d}b=!(h|i);f=b;g=b?d:h;b=b<<6;c=b;f=S(f?e:i);b=b+((f|0)==32?S(g)+32|0:f)|0;b=b-12|0;Pa(j+32|0,d,e,h,i,b);p=p-b|0;h=J[j+40>>2];i=J[j+44>>2];d=J[j+32>>2];e=J[j+36>>2];break d}e=k+l|0;d=m+o|0;e=d>>>0>>0?e+1|0:e;f=(k|0)==(e|0)&d>>>0>>0|e>>>0>>0;k=c+q|0;b=b+n|0;k=b>>>0>>0?k+1|0:k;h=b+f|0;i=h>>>0>>0?k+1|0:k;if(!(i&1048576)){break d}d=m&1|((e&1)<<31|d>>>1);e=h<<31|e>>>1;p=p+1|0;h=(i&1)<<31|h>>>1;i=i>>>1|0}c=0;l=s&-2147483648;if((p|0)>=32767){h=c;i=l|2147418112;f=0;g=0;break a}n=0;e:{if((p|0)>0){n=p;break e}Pa(j+16|0,d,e,h,i,p+127|0);Gb(j,d,e,h,i,1-p|0);d=J[j>>2]|(J[j+16>>2]|J[j+24>>2]|(J[j+20>>2]|J[j+28>>2]))!=0;e=J[j+4>>2];h=J[j+8>>2];i=J[j+12>>2]}o=d&7;d=(e&7)<<29|d>>>3;f=(o>>>0>4)+d|0;b=h<<29|e>>>3;g=d>>>0>f>>>0?b+1|0:b;d=(b|0)==(g|0)&d>>>0>f>>>0|b>>>0>g>>>0;b=c|((i&7)<<29|h>>>3);h=d+b|0;i=l|(i>>>3&65535|n<<16);i=b>>>0>h>>>0?i+1|0:i;f:{if((o|0)==4){b=0;k=g+b|0;d=f;c=f&1;f=f+c|0;g=d>>>0>f>>>0?k+1|0:k;b=(b|0)==(g|0)&c>>>0>f>>>0|b>>>0>g>>>0;h=b+h|0;i=b>>>0>h>>>0?i+1|0:i;break f}if(!o){break a}}}J[a>>2]=f;J[a+4>>2]=g;J[a+8>>2]=h;J[a+12>>2]=i;ba=j+112|0}function na(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;a:{if(!a){break a}d=a-8|0;b=J[a-4>>2];a=b&-8;f=d+a|0;b:{if(b&1){break b}if(!(b&3)){break a}b=J[d>>2];d=d-b|0;if(d>>>0>>0<=255){e=J[d+8>>2];b=b>>>3|0;c=J[d+12>>2];if((c|0)==(e|0)){i=19396,j=J[4849]&Ll(b),J[i>>2]=j;break b}J[e+12>>2]=c;J[c+8>>2]=e;break b}h=J[d+24>>2];b=J[d+12>>2];c:{if((d|0)!=(b|0)){c=J[d+8>>2];J[c+12>>2]=b;J[b+8>>2]=c;break c}d:{e=d+20|0;c=J[e>>2];if(c){break d}e=d+16|0;c=J[e>>2];if(c){break d}b=0;break c}while(1){g=e;b=c;e=b+20|0;c=J[e>>2];if(c){continue}e=b+16|0;c=J[b+16>>2];if(c){continue}break}J[g>>2]=0}if(!h){break b}e=J[d+28>>2];c=(e<<2)+19700|0;e:{if(J[c>>2]==(d|0)){J[c>>2]=b;if(b){break e}i=19400,j=J[4850]&Ll(e),J[i>>2]=j;break b}J[h+(J[h+16>>2]==(d|0)?16:20)>>2]=b;if(!b){break b}}J[b+24>>2]=h;c=J[d+16>>2];if(c){J[b+16>>2]=c;J[c+24>>2]=b}c=J[d+20>>2];if(!c){break b}J[b+20>>2]=c;J[c+24>>2]=b;break b}b=J[f+4>>2];if((b&3)!=3){break b}J[4851]=a;J[f+4>>2]=b&-2;J[d+4>>2]=a|1;J[a+d>>2]=a;return}if(d>>>0>=f>>>0){break a}b=J[f+4>>2];if(!(b&1)){break a}f:{if(!(b&2)){if(J[4855]==(f|0)){J[4855]=d;a=J[4852]+a|0;J[4852]=a;J[d+4>>2]=a|1;if(J[4854]!=(d|0)){break a}J[4851]=0;J[4854]=0;return}if(J[4854]==(f|0)){J[4854]=d;a=J[4851]+a|0;J[4851]=a;J[d+4>>2]=a|1;J[a+d>>2]=a;return}a=(b&-8)+a|0;g:{if(b>>>0<=255){e=J[f+8>>2];b=b>>>3|0;c=J[f+12>>2];if((c|0)==(e|0)){i=19396,j=J[4849]&Ll(b),J[i>>2]=j;break g}J[e+12>>2]=c;J[c+8>>2]=e;break g}h=J[f+24>>2];b=J[f+12>>2];h:{if((f|0)!=(b|0)){c=J[f+8>>2];J[c+12>>2]=b;J[b+8>>2]=c;break h}i:{e=f+20|0;c=J[e>>2];if(c){break i}e=f+16|0;c=J[e>>2];if(c){break i}b=0;break h}while(1){g=e;b=c;e=b+20|0;c=J[e>>2];if(c){continue}e=b+16|0;c=J[b+16>>2];if(c){continue}break}J[g>>2]=0}if(!h){break g}e=J[f+28>>2];c=(e<<2)+19700|0;j:{if(J[c>>2]==(f|0)){J[c>>2]=b;if(b){break j}i=19400,j=J[4850]&Ll(e),J[i>>2]=j;break g}J[h+(J[h+16>>2]==(f|0)?16:20)>>2]=b;if(!b){break g}}J[b+24>>2]=h;c=J[f+16>>2];if(c){J[b+16>>2]=c;J[c+24>>2]=b}c=J[f+20>>2];if(!c){break g}J[b+20>>2]=c;J[c+24>>2]=b}J[d+4>>2]=a|1;J[a+d>>2]=a;if(J[4854]!=(d|0)){break f}J[4851]=a;return}J[f+4>>2]=b&-2;J[d+4>>2]=a|1;J[a+d>>2]=a}if(a>>>0<=255){b=(a&-8)+19436|0;c=J[4849];a=1<<(a>>>3);k:{if(!(c&a)){J[4849]=a|c;a=b;break k}a=J[b+8>>2]}J[b+8>>2]=d;J[a+12>>2]=d;J[d+12>>2]=b;J[d+8>>2]=a;return}e=31;if(a>>>0<=16777215){b=S(a>>>8|0);e=((a>>>38-b&1)-(b<<1)|0)+62|0}J[d+28>>2]=e;J[d+16>>2]=0;J[d+20>>2]=0;g=(e<<2)+19700|0;l:{m:{c=J[4850];b=1<>2]=d;J[d+24>>2]=g;break n}e=a<<((e|0)!=31?25-(e>>>1|0)|0:0);b=J[g>>2];while(1){c=b;if((J[b+4>>2]&-8)==(a|0)){break m}b=e>>>29|0;e=e<<1;g=c+(b&4)|0;b=J[g+16>>2];if(b){continue}break}J[g+16>>2]=d;J[d+24>>2]=c}J[d+12>>2]=d;J[d+8>>2]=d;break l}a=J[c+8>>2];J[a+12>>2]=d;J[c+8>>2]=d;J[d+24>>2]=0;J[d+12>>2]=c;J[d+8>>2]=a}a=J[4857]-1|0;J[4857]=a?a:-1}}function xk(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;k=ba-48|0;ba=k;d=J[a+8>>2];if(d-2>>>0<=28){J[a+76>>2]=d;e=-1<>2]=d;J[a+80>>2]=e^-1;J[a+92>>2]=(d|0)/2;N[a+88>>2]=Q(2)/Q(d|0)}J[a+52>>2]=f;o=a+96|0;za(o);d=J[a+40>>2];e=J[d>>2];d=J[d+4>>2];J[k+16>>2]=0;J[k+8>>2]=0;J[k+12>>2]=0;a:{d=d-e|0;if((d|0)>0){p=a+8|0;q=a+44|0;d=d>>>2|0;r=d>>>0<=1?1:d;s=c+4|0;while(1){e=J[a+40>>2];d=J[e>>2];if(J[e+4>>2]-d>>2>>>0<=n>>>0){break a}Tc(q,J[d+(n<<2)>>2],k+8|0);f=J[k+12>>2];d=f>>31;i=J[k+8>>2];e=i>>31;g=(d^f)-d+((e^i)-e)|0;l=J[k+16>>2];d=l>>31;e=(d^l)-d|0;d=0;m=e;e=e+g|0;d=m>>>0>e>>>0?1:d;b:{if(!(d|e)){j=J[a+92>>2];g=j;break b}j=J[a+92>>2];g=j>>31;f=Il(Hl(j,g,f,f>>31),ca,e,d);h=f>>31;g=Il(Hl(j,g,i,i>>31),ca,e,d);d=g>>31;d=(f^h)-h+((d^g)-d)|0;l=(l|0)<0?d-j|0:j-d|0}c:{if((g|0)>=0){i=f+j|0;h=j+l|0;break c}d:{if((f|0)<0){d=l>>31;i=(d^l)-d|0;break d}d=l>>31;i=J[a+84>>2]+(d-(d^l)|0)|0}if((l|0)<0){d=f>>31;h=(d^f)-d|0;break c}d=f>>31;h=J[a+84>>2]+(d-(d^f)|0)|0}d=J[a+84>>2];m=d;e=d;e:{if(!(h|i)){break e}if(!((d|0)!=(h|0)|i)){m=h;e=h;break e}if(!((d|0)!=(i|0)|h)){m=i;e=i;break e}if(!((h|0)<=(j|0)|i)){m=(j<<1)-h|0;e=0;break e}if(!((d|0)!=(i|0)|(h|0)>=(j|0))){m=(j<<1)-h|0;e=i;break e}if(!((d|0)!=(h|0)|(j|0)<=(i|0))){m=h;e=(j<<1)-i|0;break e}if(h){m=h;e=i;break e}m=0;e=i;if((e|0)<=(j|0)){break e}e=(j<<1)-i|0}i=e;J[k+16>>2]=0-l;J[k+12>>2]=0-f;J[k+8>>2]=0-g;f:{if((g|0)<=0){g=j-l|0;e=j-f|0;break f}e=f>>31;e=(e^f)-e|0;g=(l|0)>0?e:d-e|0;e=l>>31;e=(e^l)-e|0;e=(f|0)>0?e:d-e|0}g:{if(!(e|g)){g=d;break g}if(!((d|0)!=(g|0)|e)){g=d;break g}f=(d|0)!=(e|0);if(!(g|f)){g=d;break g}if(!((g|0)<=(j|0)|e)){g=(j<<1)-g|0;d=0;break g}if(!((g|0)>=(j|0)|f)){g=(j<<1)-g|0;break g}if(!((d|0)!=(g|0)|(e|0)>=(j|0))){g=d;d=(j<<1)-e|0;break g}if(g){d=e;break g}g=0;if((e|0)<=(j|0)){d=e;break g}d=(j<<1)-e|0}e=(n<<3)+b|0;f=J[e>>2];h=J[e+4>>2];J[k+28>>2]=m;J[k+24>>2]=i;J[k+32>>2]=f;J[k+36>>2]=h;i=k+40|0;h=k+32|0;m=k+24|0;Ya(i,p,h,m);f=J[k+44>>2];l=J[k+40>>2];j=J[e>>2];e=J[e+4>>2];J[k+28>>2]=g;J[k+24>>2]=d;J[k+32>>2]=j;J[k+36>>2]=e;Ya(i,p,h,m);d=J[k+44>>2];g=J[k+40>>2];e=J[a+92>>2];h:{if((e|0)<(l|0)){l=l-J[a+80>>2]|0;break h}if((0-e|0)<=(l|0)){break h}l=J[a+80>>2]+l|0}i:{if((e|0)<(f|0)){f=f-J[a+80>>2]|0;break i}if((0-e|0)<=(f|0)){break i}f=J[a+80>>2]+f|0}j:{if((e|0)<(g|0)){g=g-J[a+80>>2]|0;break j}if((0-e|0)<=(g|0)){break j}g=J[a+80>>2]+g|0}i=n<<1;k:{if((d|0)>(e|0)){d=d-J[a+80>>2]|0;break k}if((0-e|0)<=(d|0)){break k}d=J[a+80>>2]+d|0}e=f>>31;e=(e^f)-e|0;h=l>>31;h=(h^l)-h|0;m=h>>>0>(e^2147483647)>>>0?2147483647:e+h|0;e=d>>31;e=(e^d)-e|0;h=g>>31;h=(h^g)-h|0;e=m>>>0>=(h>>>0>(e^2147483647)>>>0?2147483647:e+h|0)>>>0;Ca(o,e);i=i<<2;g=e?g:l;J[i+c>>2]=(J[a+80>>2]&g>>31)+g;d=e?d:f;J[i+s>>2]=(J[a+80>>2]&d>>31)+d;n=n+1|0;if((r|0)!=(n|0)){continue}break}}ba=k+48|0;return 1}ra();B()}function nk(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;k=ba-48|0;ba=k;d=J[a+8>>2];if(d-2>>>0<=28){J[a+76>>2]=d;e=-1<>2]=d;J[a+80>>2]=e^-1;J[a+92>>2]=(d|0)/2;N[a+88>>2]=Q(2)/Q(d|0)}J[a+52>>2]=f;o=a+96|0;za(o);d=J[a+40>>2];e=J[d>>2];d=J[d+4>>2];J[k+16>>2]=0;J[k+8>>2]=0;J[k+12>>2]=0;a:{d=d-e|0;if((d|0)>0){p=a+8|0;q=a+44|0;d=d>>>2|0;r=d>>>0<=1?1:d;s=c+4|0;while(1){e=J[a+40>>2];d=J[e>>2];if(J[e+4>>2]-d>>2>>>0<=n>>>0){break a}Rc(q,J[d+(n<<2)>>2],k+8|0);f=J[k+12>>2];d=f>>31;i=J[k+8>>2];e=i>>31;g=(d^f)-d+((e^i)-e)|0;l=J[k+16>>2];d=l>>31;e=(d^l)-d|0;d=0;m=e;e=e+g|0;d=m>>>0>e>>>0?1:d;b:{if(!(d|e)){j=J[a+92>>2];g=j;break b}j=J[a+92>>2];g=j>>31;f=Il(Hl(j,g,f,f>>31),ca,e,d);h=f>>31;g=Il(Hl(j,g,i,i>>31),ca,e,d);d=g>>31;d=(f^h)-h+((d^g)-d)|0;l=(l|0)<0?d-j|0:j-d|0}c:{if((g|0)>=0){i=f+j|0;h=j+l|0;break c}d:{if((f|0)<0){d=l>>31;i=(d^l)-d|0;break d}d=l>>31;i=J[a+84>>2]+(d-(d^l)|0)|0}if((l|0)<0){d=f>>31;h=(d^f)-d|0;break c}d=f>>31;h=J[a+84>>2]+(d-(d^f)|0)|0}d=J[a+84>>2];m=d;e=d;e:{if(!(h|i)){break e}if(!((d|0)!=(h|0)|i)){m=h;e=h;break e}if(!((d|0)!=(i|0)|h)){m=i;e=i;break e}if(!((h|0)<=(j|0)|i)){m=(j<<1)-h|0;e=0;break e}if(!((d|0)!=(i|0)|(h|0)>=(j|0))){m=(j<<1)-h|0;e=i;break e}if(!((d|0)!=(h|0)|(j|0)<=(i|0))){m=h;e=(j<<1)-i|0;break e}if(h){m=h;e=i;break e}m=0;e=i;if((e|0)<=(j|0)){break e}e=(j<<1)-i|0}i=e;J[k+16>>2]=0-l;J[k+12>>2]=0-f;J[k+8>>2]=0-g;f:{if((g|0)<=0){g=j-l|0;e=j-f|0;break f}e=f>>31;e=(e^f)-e|0;g=(l|0)>0?e:d-e|0;e=l>>31;e=(e^l)-e|0;e=(f|0)>0?e:d-e|0}g:{if(!(e|g)){g=d;break g}if(!((d|0)!=(g|0)|e)){g=d;break g}f=(d|0)!=(e|0);if(!(g|f)){g=d;break g}if(!((g|0)<=(j|0)|e)){g=(j<<1)-g|0;d=0;break g}if(!((g|0)>=(j|0)|f)){g=(j<<1)-g|0;break g}if(!((d|0)!=(g|0)|(e|0)>=(j|0))){g=d;d=(j<<1)-e|0;break g}if(g){d=e;break g}g=0;if((e|0)<=(j|0)){d=e;break g}d=(j<<1)-e|0}e=(n<<3)+b|0;f=J[e>>2];h=J[e+4>>2];J[k+28>>2]=m;J[k+24>>2]=i;J[k+32>>2]=f;J[k+36>>2]=h;i=k+40|0;h=k+32|0;m=k+24|0;Ya(i,p,h,m);f=J[k+44>>2];l=J[k+40>>2];j=J[e>>2];e=J[e+4>>2];J[k+28>>2]=g;J[k+24>>2]=d;J[k+32>>2]=j;J[k+36>>2]=e;Ya(i,p,h,m);d=J[k+44>>2];g=J[k+40>>2];e=J[a+92>>2];h:{if((e|0)<(l|0)){l=l-J[a+80>>2]|0;break h}if((0-e|0)<=(l|0)){break h}l=J[a+80>>2]+l|0}i:{if((e|0)<(f|0)){f=f-J[a+80>>2]|0;break i}if((0-e|0)<=(f|0)){break i}f=J[a+80>>2]+f|0}j:{if((e|0)<(g|0)){g=g-J[a+80>>2]|0;break j}if((0-e|0)<=(g|0)){break j}g=J[a+80>>2]+g|0}i=n<<1;k:{if((d|0)>(e|0)){d=d-J[a+80>>2]|0;break k}if((0-e|0)<=(d|0)){break k}d=J[a+80>>2]+d|0}e=f>>31;e=(e^f)-e|0;h=l>>31;h=(h^l)-h|0;m=h>>>0>(e^2147483647)>>>0?2147483647:e+h|0;e=d>>31;e=(e^d)-e|0;h=g>>31;h=(h^g)-h|0;e=m>>>0>=(h>>>0>(e^2147483647)>>>0?2147483647:e+h|0)>>>0;Ca(o,e);i=i<<2;g=e?g:l;J[i+c>>2]=(J[a+80>>2]&g>>31)+g;d=e?d:f;J[i+s>>2]=(J[a+80>>2]&d>>31)+d;n=n+1|0;if((r|0)!=(n|0)){continue}break}}ba=k+48|0;return 1}ra();B()}function Vf(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;if((b|0)==-1){return 1}g=(b>>>0)/3|0;if(!(J[J[a+24>>2]+(g>>>3&268435452)>>2]>>>g&1)){e=J[a+48>>2];J[a+52>>2]=e;a:{if((e|0)!=J[a+56>>2]){J[e>>2]=b;J[a+52>>2]=e+4;break a}d=oa(4);J[d>>2]=b;c=d+4|0;J[a+56>>2]=c;J[a+52>>2]=c;J[a+48>>2]=d;if(!e){break a}na(e)}c=b+1|0;i=(c>>>0)%3|0?c:b-2|0;c=J[J[a+4>>2]+28>>2];k=J[(i<<2)+c>>2];if((k|0)==-1){return 0}e=(b-P(g,3)|0?-1:2)+b|0;j=J[c+(e<<2)>>2];if((j|0)==-1){return 0}b=J[a+36>>2];g=b+(k>>>3&536870908)|0;d=J[g>>2];c=1<>2]=c|d;mb(a+8|0,k,i);b=J[a+36>>2]}d=(j>>>3&536870908)+b|0;c=J[d>>2];b=1<>2]=b|c;mb(a+8|0,j,e)}f=J[a+52>>2];if((f|0)==J[a+48>>2]){return 1}k=a+8|0;while(1){b:{c:{f=f-4|0;b=J[f>>2];if((b|0)==-1){break c}c=(b>>>0)/3|0;g=J[a+24>>2]+(c>>>3&268435452)|0;d=J[g>>2];c=1<>2]=c|d;h=J[a+4>>2];c=J[J[h+28>>2]+(b<<2)>>2];if((c|0)==-1){return 0}while(1){d=b;d:{e:{j=J[a+36>>2]+(c>>>3&536870908)|0;i=J[j>>2];e=1<>2]+(c<<2)>>2];g:{if((g|0)==-1){break g}b=g+1|0;b=(b>>>0)%3|0?b:g-2|0;if((b|0)==-1|J[J[h>>2]+(b>>>3&536870908)>>2]>>>b&1){break g}g=J[J[J[h+64>>2]+12>>2]+(b<<2)>>2];if((g|0)!=-1){break f}}J[j>>2]=e|i;mb(k,c,d);h=J[a+4>>2];break e}J[j>>2]=e|i;mb(k,c,d);h=J[a+4>>2];b=g+1|0;if((((b>>>0)%3|0?b:g-2|0)|0)==-1){break e}b=-1;h:{if((d|0)==-1){break h}c=d+1|0;c=(c>>>0)%3|0?c:d-2|0;if((c|0)==-1|J[J[h>>2]+(c>>>3&536870908)>>2]>>>c&1){break h}b=J[J[J[h+64>>2]+12>>2]+(c<<2)>>2]}c=(b>>>0)/3|0;d=1<>2];e=c>>>5|0;j=J[f+(e<<2)>>2];break d}i:{j:{if((d|0)==-1){break j}c=-1;b=d+1|0;b=(b>>>0)%3|0?b:d-2|0;if(!((b|0)==-1|J[J[h>>2]+(b>>>3&536870908)>>2]>>>b&1)){c=J[J[J[h+64>>2]+12>>2]+(b<<2)>>2]}k:{l:{if((d>>>0)%3|0){f=d-1|0;break l}f=d+2|0;b=-1;if((f|0)==-1){break k}}b=-1;if(J[J[h>>2]+(f>>>3&536870908)>>2]>>>f&1){break k}b=J[J[J[h+64>>2]+12>>2]+(f<<2)>>2]}g=(b|0)==-1;i=g?-1:(b>>>0)/3|0;if((c|0)!=-1){f=J[a+24>>2];d=(c>>>0)/3|0;e=d>>>5|0;j=J[f+(e<<2)>>2];d=1<>2];e=i>>>5|0;j=J[f+(e<<2)>>2];if(!(d&j)){break d}}f=J[a+52>>2]-4|0;J[a+52>>2]=f;break b}if(g){b=c;break d}if(J[(i>>>3&536870908)+f>>2]>>>i&1){b=c;break d}h=J[a+52>>2];J[h-4>>2]=b;if(J[a+56>>2]!=(h|0)){J[h>>2]=c;f=h+4|0;break c}m:{i=J[a+48>>2];e=h-i|0;g=e>>2;d=g+1|0;if(d>>>0<1073741824){b=e>>>1|0;e=e>>>0>=2147483644?1073741823:b>>>0>d>>>0?b:d;if(e){if(e>>>0>=1073741824){break m}d=oa(e<<2)}else{d=0}b=d+(g<<2)|0;J[b>>2]=c;f=b+4|0;if((h|0)!=(i|0)){while(1){b=b-4|0;h=h-4|0;J[b>>2]=J[h>>2];if((h|0)!=(i|0)){continue}break}}J[a+56>>2]=d+(e<<2);J[a+52>>2]=f;J[a+48>>2]=b;if(!i){break b}na(i);f=J[a+52>>2];break b}qa();B()}xa();B()}J[(e<<2)+f>>2]=d|j;c=J[J[h+28>>2]+(b<<2)>>2];if((c|0)!=-1){continue}break}return 0}J[a+52>>2]=f}if(J[a+48>>2]!=(f|0)){continue}break}}return 1}function cg(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;h=J[a+8>>2];d=J[a+4>>2];if((h-d|0)/136>>>0>=b>>>0){a:{if(!b){break a}c=d;f=b&7;if(f){while(1){Ra(c);c=c+136|0;e=e+1|0;if((f|0)!=(e|0)){continue}break}}d=P(b,136)+d|0;if((b-1&536870911)>>>0<7){break a}while(1){Ra(c);Ra(c+136|0);Ra(c+272|0);Ra(c+408|0);Ra(c+544|0);Ra(c+680|0);Ra(c+816|0);Ra(c+952|0);c=c+1088|0;if((c|0)!=(d|0)){continue}break}}J[a+4>>2]=d;return}b:{c:{d:{c=J[a>>2];f=(d-c|0)/136|0;g=f+b|0;if(g>>>0<31580642){d=(h-c|0)/136|0;c=d<<1;g=d>>>0>=15790320?31580641:c>>>0>g>>>0?c:g;if(g){if(g>>>0>=31580642){break d}i=oa(P(g,136))}d=P(f,136)+i|0;c=d;f=b&7;if(f){while(1){Ra(c);c=c+136|0;e=e+1|0;if((f|0)!=(e|0)){continue}break}}h=P(b,136)+d|0;if((b-1&536870911)>>>0>=7){while(1){Ra(c);Ra(c+136|0);Ra(c+272|0);Ra(c+408|0);Ra(c+544|0);Ra(c+680|0);Ra(c+816|0);Ra(c+952|0);c=c+1088|0;if((h|0)!=(c|0)){continue}break}}f=P(g,136)+i|0;c=J[a+4>>2];e=J[a>>2];if((c|0)==(e|0)){break c}while(1){d=d-136|0;c=c-136|0;J[d>>2]=J[c>>2];J[d+4>>2]=J[c+4>>2];J[d+8>>2]=J[c+8>>2];J[d+12>>2]=J[c+12>>2];J[c+12>>2]=0;J[c+4>>2]=0;J[c+8>>2]=0;J[d+16>>2]=J[c+16>>2];J[d+20>>2]=J[c+20>>2];J[d+24>>2]=J[c+24>>2];J[c+24>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;b=K[c+28|0];J[d+40>>2]=0;J[d+32>>2]=0;J[d+36>>2]=0;H[d+28|0]=b;J[d+32>>2]=J[c+32>>2];J[d+36>>2]=J[c+36>>2];J[d+40>>2]=J[c+40>>2];J[c+40>>2]=0;J[c+32>>2]=0;J[c+36>>2]=0;J[d+52>>2]=0;J[d+44>>2]=0;J[d+48>>2]=0;J[d+44>>2]=J[c+44>>2];J[d+48>>2]=J[c+48>>2];J[d+52>>2]=J[c+52>>2];J[c+52>>2]=0;J[c+44>>2]=0;J[c+48>>2]=0;b=d- -64|0;J[b>>2]=0;J[d+56>>2]=0;J[d+60>>2]=0;J[d+56>>2]=J[c+56>>2];J[d+60>>2]=J[c+60>>2];i=b;b=c- -64|0;J[i>>2]=J[b>>2];J[b>>2]=0;J[c+56>>2]=0;J[c+60>>2]=0;J[d+68>>2]=J[c+68>>2];b=J[c+72>>2];J[d+84>>2]=0;J[d+76>>2]=0;J[d+80>>2]=0;J[d+72>>2]=b;J[d+76>>2]=J[c+76>>2];J[d+80>>2]=J[c+80>>2];J[d+84>>2]=J[c+84>>2];J[c+84>>2]=0;J[c+76>>2]=0;J[c+80>>2]=0;J[d+96>>2]=0;J[d+88>>2]=0;J[d+92>>2]=0;J[d+88>>2]=J[c+88>>2];J[d+92>>2]=J[c+92>>2];J[d+96>>2]=J[c+96>>2];J[c+96>>2]=0;J[c+88>>2]=0;J[c+92>>2]=0;b=K[c+100|0];J[d+112>>2]=0;J[d+104>>2]=0;J[d+108>>2]=0;H[d+100|0]=b;J[d+104>>2]=J[c+104>>2];J[d+108>>2]=J[c+108>>2];J[d+112>>2]=J[c+112>>2];J[c+112>>2]=0;J[c+104>>2]=0;J[c+108>>2]=0;J[d+124>>2]=0;J[d+116>>2]=0;J[d+120>>2]=0;J[d+116>>2]=J[c+116>>2];J[d+120>>2]=J[c+120>>2];J[d+124>>2]=J[c+124>>2];J[c+124>>2]=0;J[c+116>>2]=0;J[c+120>>2]=0;J[d+128>>2]=J[c+128>>2];J[d+132>>2]=J[c+132>>2];if((c|0)!=(e|0)){continue}break}J[a+8>>2]=f;e=J[a+4>>2];J[a+4>>2]=h;c=J[a>>2];J[a>>2]=d;if((c|0)==(e|0)){break b}while(1){a=e-136|0;b=J[a+116>>2];if(b){J[e-16>>2]=b;na(b)}b=J[e-32>>2];if(b){J[e-28>>2]=b;na(b)}pc(e-132|0);e=a;if((a|0)!=(c|0)){continue}break}break b}qa();B()}xa();B()}J[a+8>>2]=f;J[a+4>>2]=h;J[a>>2]=d}if(c){na(c)}}function Qj(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;e=ba+-64|0;ba=e;a:{b:{c:{d:{if(!K[a+288|0]){break d}c=1;h=da[J[J[a>>2]+40>>2]](a)|0;if((J[h+12>>2]-J[h+8>>2]|0)<=0){break d}kc(J[J[(da[J[J[a>>2]+40>>2]](a)|0)+8>>2]>>2],b);break c}c=b<<2;f=J[c+J[J[(da[J[J[a>>2]+40>>2]](a)|0)+56>>2]+84>>2]>>2];i=J[c+J[J[(da[J[J[a>>2]+40>>2]](a)|0)+4>>2]+8>>2]>>2];h=-1;c=J[a+176>>2];d=J[a+172>>2];e:{if((c|0)==(d|0)){break e}c=(c-d|0)/136|0;g=c>>>0<=1?1:c;c=0;while(1){if(J[d+P(c,136)>>2]==(b|0)){h=c;break e}c=c+1|0;if((g|0)!=(c|0)){continue}break}}f:{g:{h:{i:{if(!K[a+288|0]){c=J[i+56>>2];if(!(!f|!c)){if(!K[(d+P(h,136)|0)+28|0]|(f|0)!=1){break i}break h}if(c){break h}}c=a+40|0;break g}d=d+P(h,136)|0;c=J[d+56>>2];f=J[d+60>>2];J[e>>2]=-1;wb(d+116|0,f-c>>2,e);c=oa(80);f=J[a+8>>2];J[c+12>>2]=0;J[c+16>>2]=0;J[c>>2]=11984;J[c+4>>2]=0;J[c+20>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+32>>2]=0;J[c+36>>2]=0;J[c+40>>2]=0;J[c+44>>2]=0;J[c+48>>2]=0;J[c+52>>2]=0;J[c+76>>2]=0;i=d+104|0;J[c+72>>2]=i;J[c+68>>2]=f;J[c- -64>>2]=0;g=c+56|0;J[g>>2]=0;J[g+4>>2]=0;J[c+8>>2]=10876;J[e+40>>2]=0;J[e+44>>2]=0;J[e+32>>2]=0;J[e+36>>2]=0;j=e+24|0;J[j>>2]=0;J[j+4>>2]=0;J[e+16>>2]=0;J[e+20>>2]=0;J[e+56>>2]=0;J[e+8>>2]=0;J[e+12>>2]=0;J[e+48>>2]=0;J[e+52>>2]=0;J[e>>2]=10876;l=d+4|0;J[e+4>>2]=l;d=J[d+68>>2];k=J[d>>2];d=J[d+4>>2];H[e+63|0]=0;k=(d-k>>2>>>0)/3|0;d=e+63|0;Na(j,k,d);j=J[e+4>>2];k=J[j+56>>2];j=J[j+52>>2];H[e+63|0]=0;Na(e+36|0,k-j>>2,d);J[e+20>>2]=c;J[e+16>>2]=f;J[e+12>>2]=i;J[e+8>>2]=l;J[c+76>>2]=a+72;Kc(c+8|0,e);Rb(g,J[e+48>>2],J[e+52>>2]);J[e>>2]=10876;d=J[e+48>>2];if(d){J[e+52>>2]=d;na(d)}J[e>>2]=11128;d=J[e+36>>2];if(d){na(d)}d=J[e+24>>2];if(d){na(d)}d=0;break f}c=J[a+12>>2];f=J[c+28>>2];c=J[c+24>>2];J[e>>2]=-1;g=d;d=P(h,136);g=g+d|0;wb(g+116|0,f-c>>2,e);H[(d+J[a+172>>2]|0)+100|0]=0;c=g+104|0}j:{k:{if(cb(J[(da[J[J[a>>2]+40>>2]](a)|0)+48>>2])|J[i+56>>2]){break k}if(K[a+288|0]){d=J[a+8>>2];if((J[d+12>>2]-J[d+8>>2]|0)>4){break k}}d=1;c=ng(a,c);break j}d=0;c=mg(a,c)}if(c){break f}c=0;break c}J[((h|0)==-1?a+68|0:(J[a+172>>2]+P(h,136)|0)+132|0)>>2]=d;i=pe(oa(76),c,b);b=J[a+188>>2];l:{if((b|0)!=J[a+192>>2]){J[b>>2]=h;J[a+188>>2]=b+4;break l}c=b;b=J[a+184>>2];c=c-b|0;g=c>>2;d=g+1|0;if(d>>>0>=1073741824){break b}f=c>>>1|0;d=c>>>0>=2147483644?1073741823:d>>>0>>0?f:d;if(d){if(d>>>0>=1073741824){break a}f=oa(d<<2)}else{f=0}g=f+(g<<2)|0;J[g>>2]=h;c=ta(f,b,c);J[a+192>>2]=c+(d<<2);J[a+188>>2]=g+4;J[a+184>>2]=c;if(!b){break l}na(b)}a=da[J[J[a>>2]+40>>2]](a)|0;J[e>>2]=i;b=J[a+12>>2];m:{if(b>>>0>2]){J[e>>2]=0;J[b>>2]=i;J[a+12>>2]=b+4;break m}Ic(a+8|0,e)}a=J[e>>2];J[e>>2]=0;if(a){da[J[J[a>>2]+4>>2]](a)}c=1}ba=e- -64|0;return c|0}qa();B()}xa();B()}function Lj(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;e=ba+-64|0;ba=e;a:{b:{c:{d:{if(!K[a+352|0]){break d}c=1;h=da[J[J[a>>2]+40>>2]](a)|0;if((J[h+12>>2]-J[h+8>>2]|0)<=0){break d}kc(J[J[(da[J[J[a>>2]+40>>2]](a)|0)+8>>2]>>2],b);break c}c=b<<2;f=J[c+J[J[(da[J[J[a>>2]+40>>2]](a)|0)+56>>2]+84>>2]>>2];i=J[c+J[J[(da[J[J[a>>2]+40>>2]](a)|0)+4>>2]+8>>2]>>2];h=-1;c=J[a+176>>2];d=J[a+172>>2];e:{if((c|0)==(d|0)){break e}c=(c-d|0)/136|0;g=c>>>0<=1?1:c;c=0;while(1){if(J[d+P(c,136)>>2]==(b|0)){h=c;break e}c=c+1|0;if((g|0)!=(c|0)){continue}break}}f:{g:{h:{i:{if(!K[a+352|0]){c=J[i+56>>2];if(!(!f|!c)){if(!K[(d+P(h,136)|0)+28|0]|(f|0)!=1){break i}break h}if(c){break h}}c=a+40|0;break g}d=d+P(h,136)|0;c=J[d+56>>2];f=J[d+60>>2];J[e>>2]=-1;wb(d+116|0,f-c>>2,e);c=oa(80);f=J[a+8>>2];J[c+12>>2]=0;J[c+16>>2]=0;J[c>>2]=11984;J[c+4>>2]=0;J[c+20>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+32>>2]=0;J[c+36>>2]=0;J[c+40>>2]=0;J[c+44>>2]=0;J[c+48>>2]=0;J[c+52>>2]=0;J[c+76>>2]=0;i=d+104|0;J[c+72>>2]=i;J[c+68>>2]=f;J[c- -64>>2]=0;g=c+56|0;J[g>>2]=0;J[g+4>>2]=0;J[c+8>>2]=10876;J[e+40>>2]=0;J[e+44>>2]=0;J[e+32>>2]=0;J[e+36>>2]=0;j=e+24|0;J[j>>2]=0;J[j+4>>2]=0;J[e+16>>2]=0;J[e+20>>2]=0;J[e+56>>2]=0;J[e+8>>2]=0;J[e+12>>2]=0;J[e+48>>2]=0;J[e+52>>2]=0;J[e>>2]=10876;l=d+4|0;J[e+4>>2]=l;d=J[d+68>>2];k=J[d>>2];d=J[d+4>>2];H[e+63|0]=0;k=(d-k>>2>>>0)/3|0;d=e+63|0;Na(j,k,d);j=J[e+4>>2];k=J[j+56>>2];j=J[j+52>>2];H[e+63|0]=0;Na(e+36|0,k-j>>2,d);J[e+20>>2]=c;J[e+16>>2]=f;J[e+12>>2]=i;J[e+8>>2]=l;J[c+76>>2]=a+72;Kc(c+8|0,e);Rb(g,J[e+48>>2],J[e+52>>2]);J[e>>2]=10876;d=J[e+48>>2];if(d){J[e+52>>2]=d;na(d)}J[e>>2]=11128;d=J[e+36>>2];if(d){na(d)}d=J[e+24>>2];if(d){na(d)}d=0;break f}c=J[a+12>>2];f=J[c+28>>2];c=J[c+24>>2];J[e>>2]=-1;g=d;d=P(h,136);g=g+d|0;wb(g+116|0,f-c>>2,e);H[(d+J[a+172>>2]|0)+100|0]=0;c=g+104|0}j:{k:{if(cb(J[(da[J[J[a>>2]+40>>2]](a)|0)+48>>2])|J[i+56>>2]){break k}if(K[a+352|0]){d=J[a+8>>2];if((J[d+12>>2]-J[d+8>>2]|0)>4){break k}}d=1;c=ng(a,c);break j}d=0;c=mg(a,c)}if(c){break f}c=0;break c}J[((h|0)==-1?a+68|0:(J[a+172>>2]+P(h,136)|0)+132|0)>>2]=d;i=pe(oa(76),c,b);b=J[a+188>>2];l:{if((b|0)!=J[a+192>>2]){J[b>>2]=h;J[a+188>>2]=b+4;break l}c=b;b=J[a+184>>2];c=c-b|0;g=c>>2;d=g+1|0;if(d>>>0>=1073741824){break b}f=c>>>1|0;d=c>>>0>=2147483644?1073741823:d>>>0>>0?f:d;if(d){if(d>>>0>=1073741824){break a}f=oa(d<<2)}else{f=0}g=f+(g<<2)|0;J[g>>2]=h;c=ta(f,b,c);J[a+192>>2]=c+(d<<2);J[a+188>>2]=g+4;J[a+184>>2]=c;if(!b){break l}na(b)}a=da[J[J[a>>2]+40>>2]](a)|0;J[e>>2]=i;b=J[a+12>>2];m:{if(b>>>0>2]){J[e>>2]=0;J[b>>2]=i;J[a+12>>2]=b+4;break m}Ic(a+8|0,e)}a=J[e>>2];J[e>>2]=0;if(a){da[J[J[a>>2]+4>>2]](a)}c=1}ba=e- -64|0;return c|0}qa();B()}xa();B()}function oc(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;j=ba-16|0;ba=j;J[a+124>>2]=J[a+124>>2]+1;h=-1;d=J[a+120>>2];c=-1;a:{if((d|0)==-1){break a}c=d+1|0;h=(c>>>0)%3|0?c:d-2|0;c=d-1|0;if((d>>>0)%3|0){break a}c=d+2|0}e=J[a+104>>2];f=J[a+92>>2];g=f+(h<<2)|0;k=e+(J[g>>2]<<2)|0;i=J[k>>2];b:{c:{switch(b|0){case 0:case 1:J[k>>2]=i-1;d=(J[(c<<2)+f>>2]<<2)+e|0;J[d>>2]=J[d>>2]-1;if((b|0)!=1){break b}g=0;d:{if((c|0)==-1){d=0;break d}d=0;c=J[J[J[a+88>>2]+12>>2]+(c<<2)>>2];if((c|0)==-1){break d}while(1){e:{e=J[a+64>>2];if(da[J[J[e>>2]+36>>2]](e,(c>>>0)/3|0)|0){break e}d=d+1|0;e=c+1|0;c=(e>>>0)%3|0?e:c-2|0;if((c|0)==-1){break e}c=J[J[J[a+88>>2]+12>>2]+(c<<2)>>2];if((c|0)!=-1){continue}}break}e=J[a+104>>2];f=J[a+92>>2]}J[(J[(J[a+120>>2]<<2)+f>>2]<<2)+e>>2]=d+1;f:{if((h|0)==-1){break f}c=J[J[J[a+88>>2]+12>>2]+(h<<2)>>2];if((c|0)==-1){break f}e=J[a+108>>2]-e>>2;while(1){f=J[a+64>>2];d=(c>>>0)/3|0;if(da[J[J[f>>2]+36>>2]](f,d)|0){break f}f=c+1|0;J[J[a+92>>2]+(((f>>>0)%3|0?f:c-2|0)<<2)>>2]=e;g=g+1|0;f=J[a+88>>2];g:{if((P(d,3)|0)!=(c|0)){c=c-1|0;break g}c=c+2|0;if((c|0)==-1){break f}}c=J[J[f+12>>2]+(c<<2)>>2];if((c|0)!=-1){continue}break}}J[j+12>>2]=g+1;h:{c=J[a+108>>2];f=J[a+112>>2];if(c>>>0>>0){J[c>>2]=J[j+12>>2];J[a+108>>2]=c+4;break h}i:{d=c;c=J[a+104>>2];d=d-c|0;h=d>>2;e=h+1|0;if(e>>>0<1073741824){f=f-c|0;g=f>>>1|0;e=f>>>0>=2147483644?1073741823:e>>>0>>0?g:e;if(e){if(e>>>0>=1073741824){break i}f=oa(e<<2)}else{f=0}h=f+(h<<2)|0;J[h>>2]=J[j+12>>2];g=e<<2;e=ta(f,c,d);J[a+112>>2]=g+e;J[a+108>>2]=h+4;J[a+104>>2]=e;if(c){na(c)}break h}qa();B()}xa();B()}break b;case 5:d=(J[(d<<2)+f>>2]<<2)+e|0;J[d>>2]=J[d>>2]-1;d=(J[g>>2]<<2)+e|0;J[d>>2]=J[d>>2]-1;c=(J[(c<<2)+f>>2]<<2)+e|0;J[c>>2]=J[c>>2]-2;break b;case 3:d=(J[(d<<2)+f>>2]<<2)+e|0;J[d>>2]=J[d>>2]-1;d=(J[g>>2]<<2)+e|0;J[d>>2]=J[d>>2]-2;c=(J[(c<<2)+f>>2]<<2)+e|0;J[c>>2]=J[c>>2]-1;break b;case 7:break c;default:break b}}d=(J[(d<<2)+f>>2]<<2)+e|0;J[d>>2]=J[d>>2]-2;d=(J[g>>2]<<2)+e|0;J[d>>2]=J[d>>2]-2;c=(J[(c<<2)+f>>2]<<2)+e|0;J[c>>2]=J[c>>2]-2}j:{k:{c=J[a+116>>2];l:{if((c|0)==-1){break l}h=J[(c<<2)+11184>>2];c=J[a+132>>2];d=(c|0)>(i|0)?i:c;c=J[a+128>>2];c=J[a+136>>2]+P((c|0)<=(i|0)?d-c|0:0,12)|0;e=J[c+4>>2];d=J[c+8>>2];if(e>>>0>>0){J[e>>2]=h;J[c+4>>2]=e+4;break l}f=e;e=J[c>>2];i=f-e|0;g=i>>2;f=g+1|0;if(f>>>0>=1073741824){break k}d=d-e|0;k=d>>>1|0;f=d>>>0>=2147483644?1073741823:f>>>0>>0?k:f;if(f){if(f>>>0>=1073741824){break j}d=oa(f<<2)}else{d=0}g=d+(g<<2)|0;J[g>>2]=h;d=ta(d,e,i);J[c>>2]=d;J[c+4>>2]=g+4;J[c+8>>2]=d+(f<<2);if(!e){break l}na(e)}J[a+116>>2]=b;ba=j+16|0;return}qa();B()}xa();B()}function Wf(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;if((b|0)==-1){return 1}g=(b>>>0)/3|0;if(!(J[J[a+24>>2]+(g>>>3&268435452)>>2]>>>g&1)){f=J[a+48>>2];J[a+52>>2]=f;a:{if((f|0)!=J[a+56>>2]){J[f>>2]=b;J[a+52>>2]=f+4;break a}d=oa(4);J[d>>2]=b;c=d+4|0;J[a+56>>2]=c;J[a+52>>2]=c;J[a+48>>2]=d;if(!f){break a}na(f)}e=-1;d=J[a+4>>2];c=b+1|0;i=(c>>>0)%3|0?c:b-2|0;if((i|0)!=-1){e=J[J[d>>2]+(i<<2)>>2]}b:{h=b-P(g,3)|0;if(h){c=b-1|0;break b}c=b+2|0;if((c|0)!=-1){break b}return 0}if((e|0)==-1){return 0}j=J[J[d>>2]+(c<<2)>>2];if((j|0)==-1){return 0}c=J[a+36>>2];f=c+(e>>>3&536870908)|0;g=J[f>>2];d=1<>2]=d|g;mb(a+8|0,e,i);c=J[a+36>>2]}g=(j>>>3&536870908)+c|0;d=J[g>>2];c=1<>2]=c|d;mb(a+8|0,j,(h?-1:2)+b|0)}c=J[a+52>>2];if((c|0)==J[a+48>>2]){return 1}j=a+8|0;while(1){c:{d:{c=c-4|0;b=J[c>>2];if((b|0)==-1){break d}d=(b>>>0)/3|0;f=J[a+24>>2]+(d>>>3&268435452)|0;g=J[f>>2];d=1<>2]=d|g;while(1){i=J[a+4>>2];e=J[J[i>>2]+(b<<2)>>2];if((e|0)==-1){return 0}e:{f:{h=J[a+36>>2]+(e>>>3&536870908)|0;f=J[h>>2];g=1<>2]+(e<<2)>>2];h:{if((d|0)==-1){break h}c=d+1|0;c=(c>>>0)%3|0?c:d-2|0;if((c|0)==-1){break h}d=J[J[i+12>>2]+(c<<2)>>2];if((d|0)!=-1){break g}}J[h>>2]=f|g;mb(j,e,b);break f}J[h>>2]=f|g;mb(j,e,b);c=d+1|0;if((((c>>>0)%3|0?c:d-2|0)|0)==-1){break f}c=b-2|0;d=b+1|0;b=-1;c=(d>>>0)%3|0?d:c;if((c|0)!=-1){b=J[J[J[a+4>>2]+12>>2]+(c<<2)>>2]}c=(b>>>0)/3|0;d=1<>2];f=c>>>5|0;i=J[e+(f<<2)>>2];break e}c=-1;g=J[a+4>>2];d=b+1|0;d=(d>>>0)%3|0?d:b-2|0;if((d|0)!=-1){c=J[J[g+12>>2]+(d<<2)>>2]}i:{j:{if((b>>>0)%3|0){e=b-1|0;break j}e=b+2|0;b=-1;if((e|0)==-1){break i}}b=J[J[g+12>>2]+(e<<2)>>2]}g=(b|0)==-1;h=g?-1:(b>>>0)/3|0;k:{if((c|0)!=-1){e=J[a+24>>2];d=(c>>>0)/3|0;f=d>>>5|0;i=J[e+(f<<2)>>2];d=1<>2];f=h>>>5|0;i=J[e+(f<<2)>>2];if(!(d&i)){break e}}c=J[a+52>>2]-4|0;J[a+52>>2]=c;break c}if(g){b=c;break e}if(J[(h>>>3&536870908)+e>>2]>>>h&1){b=c;break e}e=J[a+52>>2];J[e-4>>2]=b;if(J[a+56>>2]!=(e|0)){J[e>>2]=c;c=e+4|0;break d}l:{h=J[a+48>>2];f=e-h|0;g=f>>2;d=g+1|0;if(d>>>0<1073741824){b=f>>>1|0;f=f>>>0>=2147483644?1073741823:b>>>0>d>>>0?b:d;if(f){if(f>>>0>=1073741824){break l}d=oa(f<<2)}else{d=0}b=d+(g<<2)|0;J[b>>2]=c;c=b+4|0;if((e|0)!=(h|0)){while(1){b=b-4|0;e=e-4|0;J[b>>2]=J[e>>2];if((e|0)!=(h|0)){continue}break}}J[a+56>>2]=d+(f<<2);J[a+52>>2]=c;J[a+48>>2]=b;if(!h){break c}na(h);c=J[a+52>>2];break c}qa();B()}xa();B()}J[(f<<2)+e>>2]=d|i;if((b|0)!=-1){continue}break}return 0}J[a+52>>2]=c}if(J[a+48>>2]!=(c|0)){continue}break}}return 1}function Mg(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;d=a+4|0;if((d|0)!=(b|0)){ic(d,J[b>>2],b+4|0);f=J[b+12>>2];k=b+16|0;d=0;h=a+16|0;a:{if(!J[h+8>>2]){break a}e=J[h>>2];j=h+4|0;J[h>>2]=j;J[J[h+4>>2]+8>>2]=0;J[h+4>>2]=0;J[h+8>>2]=0;c=J[e+4>>2];g=c?c:e;if(!g){nb(h,g);break a}e=J[g+8>>2];b:{if(!e){break b}c=J[e>>2];if((g|0)==(c|0)){J[e>>2]=0;d=e;c=J[e+4>>2];if(!c){break b}while(1){d=c;c=J[c>>2];if(c){continue}c=J[d+4>>2];if(c){continue}break}break b}J[e+4>>2]=0;d=e;if(!c){break b}while(1){d=c;c=J[c>>2];if(c){continue}c=J[d+4>>2];if(c){continue}break}}c:{if((f|0)==(k|0)){i=g;break c}c=f;while(1){i=d;J[g+16>>2]=J[c+16>>2];if((c|0)!=(g|0)){ic(g+20|0,J[c+20>>2],c+24|0)}f=j;d=f;e=J[d>>2];d:{if(!e){break d}l=J[g+16>>2];while(1){f=e;if((l|0)>2]){d=f;e=J[d>>2];if(e){continue}break d}e=J[f+4>>2];if(e){continue}break}d=f+4|0}J[g+8>>2]=f;J[g>>2]=0;J[g+4>>2]=0;J[d>>2]=g;f=J[J[h>>2]>>2];if(f){J[h>>2]=f;g=J[d>>2]}sb(J[h+4>>2],g);J[h+8>>2]=J[h+8>>2]+1;d=0;e:{if(!i){break e}e=J[i+8>>2];if(!e){break e}f=J[e>>2];if((i|0)==(f|0)){J[e>>2]=0;d=e;f=J[e+4>>2];if(!f){break e}while(1){d=f;f=J[d>>2];if(f){continue}f=J[d+4>>2];if(f){continue}break}break e}J[e+4>>2]=0;d=e;if(!f){break e}while(1){d=f;f=J[d>>2];if(f){continue}f=J[d+4>>2];if(f){continue}break}}e=J[c+4>>2];f:{if(e){while(1){f=e;e=J[e>>2];if(e){continue}break f}}while(1){f=J[c+8>>2];e=J[f>>2]!=(c|0);c=f;if(e){continue}break}}if(!i){break c}g=i;c=f;if((k|0)!=(c|0)){continue}break}}nb(h,i);if(!d){break a}while(1){c=J[d+8>>2];if(c){d=c;continue}break}nb(h,d)}if((f|0)!=(k|0)){while(1){n=ba-16|0;ba=n;i=oa(32);g=f+16|0;d=J[g>>2];m=i+24|0;J[m>>2]=0;J[m+4>>2]=0;J[i+16>>2]=d;l=i+20|0;J[l>>2]=m;e=h+4|0;c=J[g+4>>2];j=g+8|0;if((c|0)!=(j|0)){while(1){d=c+16|0;Qg(n+8|0,l,m,d,d);g=J[c+4>>2];g:{if(g){while(1){d=g;g=J[d>>2];if(g){continue}break g}}while(1){d=J[c+8>>2];g=J[d>>2]!=(c|0);c=d;if(g){continue}break}}c=d;if((j|0)!=(c|0)){continue}break}}c=e;d=J[c>>2];h:{if(!d){break h}g=J[i+16>>2];while(1){e=d;if((g|0)>2]){c=e;d=J[c>>2];if(d){continue}break h}d=J[e+4>>2];if(d){continue}break}c=e+4|0}J[i+8>>2]=e;J[i>>2]=0;J[i+4>>2]=0;J[c>>2]=i;d=i;e=J[J[h>>2]>>2];if(e){J[h>>2]=e;d=J[c>>2]}sb(J[h+4>>2],d);J[h+8>>2]=J[h+8>>2]+1;ba=n+16|0;e=J[f+4>>2];i:{if(e){while(1){c=e;e=J[c>>2];if(e){continue}break i}}while(1){c=J[f+8>>2];d=J[c>>2]!=(f|0);f=c;if(d){continue}break}}f=c;if((c|0)!=(k|0)){continue}break}}ic(a+28|0,J[b+24>>2],b+28|0)}}function nl(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;m=ba-16|0;ba=m;f=J[a+4>>2];a:{b:{if(f){if(da[J[J[a>>2]+52>>2]](a,b,J[J[f+4>>2]+80>>2])|0){break b}break a}if(!(da[J[J[a>>2]+52>>2]](a,b,0)|0)){break a}}n=1;if(!K[a+28|0]){break a}d=J[a+32>>2];i=J[a+8>>2];c=J[i+80>>2];f=0;J[m+8>>2]=0;J[m>>2]=0;J[m+4>>2]=0;c:{d:{e:{if(c){if(c>>>0>=1073741824){break e}c=c<<2;f=oa(c);pa(f,0,c)}e=J[b+4>>2];c=J[b>>2];f:{if((e|0)==(c|0)){break f}b=e-c>>2;if(K[i+84|0]){e=b>>>0<=1?1:b;h=e&3;b=0;if(e-1>>>0>=3){j=e&-4;e=0;while(1){J[(J[c+(b<<2)>>2]<<2)+f>>2]=b;k=b|1;J[(J[c+(k<<2)>>2]<<2)+f>>2]=k;k=b|2;J[(J[c+(k<<2)>>2]<<2)+f>>2]=k;k=b|3;J[(J[c+(k<<2)>>2]<<2)+f>>2]=k;b=b+4|0;e=e+4|0;if((j|0)!=(e|0)){continue}break}}if(!h){break f}while(1){J[(J[c+(b<<2)>>2]<<2)+f>>2]=b;b=b+1|0;g=g+1|0;if((h|0)!=(g|0)){continue}break}break f}g=b>>>0<=1?1:b;j=g&3;h=J[i+68>>2];e=0;b=0;if(g-1>>>0>=3){k=g&-4;g=0;while(1){J[(J[h+(J[c+(b<<2)>>2]<<2)>>2]<<2)+f>>2]=b;l=b|1;J[(J[h+(J[c+(l<<2)>>2]<<2)>>2]<<2)+f>>2]=l;l=b|2;J[(J[h+(J[c+(l<<2)>>2]<<2)>>2]<<2)+f>>2]=l;l=b|3;J[(J[h+(J[c+(l<<2)>>2]<<2)>>2]<<2)+f>>2]=l;b=b+4|0;g=g+4|0;if((k|0)!=(g|0)){continue}break}}if(!j){break f}while(1){J[(J[h+(J[c+(b<<2)>>2]<<2)>>2]<<2)+f>>2]=b;b=b+1|0;e=e+1|0;if((j|0)!=(e|0)){continue}break}}b=J[a+4>>2];g:{if(!K[d+84|0]){break g}c=J[J[b+4>>2]+80>>2];H[d+84|0]=0;g=J[d+68>>2];e=J[d+72>>2]-g>>2;if(e>>>0>>0){Ma(d+68|0,c-e|0,2736);b=J[a+4>>2];break g}if(c>>>0>=e>>>0){break g}J[d+72>>2]=g+(c<<2)}h=J[J[b+4>>2]+80>>2];if(!h){break d}c=J[d+68>>2];if(K[i+84|0]){a=0;b=0;if(h>>>0>=4){g=h&-4;e=0;while(1){d=b<<2;J[d+c>>2]=J[f+d>>2];i=d|4;J[i+c>>2]=J[f+i>>2];i=d|8;J[i+c>>2]=J[f+i>>2];d=d|12;J[d+c>>2]=J[f+d>>2];b=b+4|0;e=e+4|0;if((g|0)!=(e|0)){continue}break}}e=h&3;if(!e){break c}while(1){d=b<<2;J[d+c>>2]=J[f+d>>2];b=b+1|0;a=a+1|0;if((e|0)!=(a|0)){continue}break}break c}a=J[i+68>>2];e=0;b=0;if(h>>>0>=4){i=h&-4;g=0;while(1){d=b<<2;J[d+c>>2]=J[(J[a+d>>2]<<2)+f>>2];j=d|4;J[j+c>>2]=J[(J[a+j>>2]<<2)+f>>2];j=d|8;J[j+c>>2]=J[(J[a+j>>2]<<2)+f>>2];d=d|12;J[d+c>>2]=J[(J[a+d>>2]<<2)+f>>2];b=b+4|0;g=g+4|0;if((i|0)!=(g|0)){continue}break}}d=h&3;if(!d){break c}while(1){g=b<<2;J[g+c>>2]=J[(J[a+g>>2]<<2)+f>>2];b=b+1|0;e=e+1|0;if((d|0)!=(e|0)){continue}break}break c}qa();B()}if(!f){break a}}na(f)}ba=m+16|0;return n|0}function Pg(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;a:{b:{c:{d:{e:{f:{i=a+4|0;g:{if((i|0)==(b|0)){break g}f=K[b+27|0];g=f<<24>>24<0;h=K[e+11|0];j=h<<24>>24;k=(j|0)<0;f=g?J[b+20>>2]:f;h=k?J[e+4>>2]:h;l=f>>>0>>0;m=l?f:h;if(m){k=k?J[e>>2]:e;g=g?J[b+16>>2]:b+16|0;n=Ba(k,g,m);if(!n){if(f>>>0>h>>>0){break g}break f}if((n|0)>=0){break f}break g}if(f>>>0<=h>>>0){break e}}d=J[b>>2];h:{f=b;i:{if((f|0)==J[a>>2]){break i}j:{if(!d){a=b;while(1){f=J[a+8>>2];h=J[f>>2]==(a|0);a=f;if(h){continue}break}break j}a=d;while(1){f=a;a=J[f+4>>2];if(a){continue}break}}a=K[e+11|0];k=a<<24>>24;h=(k|0)<0;j=K[f+27|0];g=j<<24>>24<0;k:{a=h?J[e+4>>2]:a;j=g?J[f+20>>2]:j;l=a>>>0>>0?a:j;if(l){h=Ba(g?J[f+16>>2]:f+16|0,h?J[e>>2]:e,l);if(h){break k}}if(a>>>0>j>>>0){break i}break h}if((h|0)>=0){break h}}if(!d){J[c>>2]=b;return b}J[c>>2]=f;return f+4|0}d=J[i>>2];if(!d){J[c>>2]=i;return i}e=(k|0)<0?J[e>>2]:e;b=i;while(1){f=d;d=K[f+27|0];i=d<<24>>24<0;d=i?J[f+20>>2]:d;h=d>>>0>>0;l:{m:{n:{o:{g=h?d:a;p:{if(g){i=i?J[f+16>>2]:f+16|0;j=Ba(e,i,g);if(!j){if(a>>>0>>0){break p}break o}if((j|0)>=0){break o}break p}if(a>>>0>=d>>>0){break n}}b=f;d=J[f>>2];if(d){continue}break b}d=Ba(i,e,g);if(d){break m}}if(h){break l}break b}if((d|0)>=0){break b}}b=f+4|0;d=J[f+4>>2];if(d){continue}break}break b}a=Ba(g,k,m);if(a){break d}}if(l){break c}break a}if((a|0)>=0){break a}}d=J[b+4>>2];q:{if(!d){a=b;while(1){f=J[a+8>>2];g=J[f>>2]!=(a|0);a=f;if(g){continue}break}break q}a=d;while(1){f=a;a=J[f>>2];if(a){continue}break}}r:{s:{if((f|0)==(i|0)){break s}g=K[f+27|0];a=g<<24>>24<0;t:{g=a?J[f+20>>2]:g;k=h>>>0>g>>>0?g:h;if(k){a=Ba((j|0)<0?J[e>>2]:e,a?J[f+16>>2]:f+16|0,k);if(a){break t}}if(h>>>0>>0){break s}break r}if((a|0)>=0){break r}}if(!d){J[c>>2]=b;return b+4|0}J[c>>2]=f;return f}a=J[i>>2];if(!a){J[c>>2]=i;return i}d=(j|0)<0?J[e>>2]:e;b=i;while(1){f=a;a=K[f+27|0];e=a<<24>>24<0;a=e?J[f+20>>2]:a;i=a>>>0>>0;u:{v:{w:{x:{g=i?a:h;y:{if(g){e=e?J[f+16>>2]:f+16|0;j=Ba(d,e,g);if(!j){if(a>>>0>h>>>0){break y}break x}if((j|0)>=0){break x}break y}if(a>>>0<=h>>>0){break w}}b=f;a=J[f>>2];if(a){continue}break b}a=Ba(e,d,g);if(a){break v}}if(i){break u}break b}if((a|0)>=0){break b}}b=f+4|0;a=J[f+4>>2];if(a){continue}break}}J[c>>2]=f;return b}J[c>>2]=b;J[d>>2]=b;return d}function Dc(a,b){var c=0,d=0,e=0,f=0,g=0,h=0;a:{b:{d=b;g=J[b>>2];if(g){c=J[b+4>>2];if(!c){break b}while(1){d=c;c=J[c>>2];if(c){continue}break}}g=J[d+4>>2];if(g){break b}g=0;e=1;break a}J[g+8>>2]=J[d+8>>2];e=0}f=J[d+8>>2];c=J[f>>2];c:{if((d|0)==(c|0)){J[f>>2]=g;if((a|0)==(d|0)){c=0;a=g;break c}c=J[f+4>>2];break c}J[f+4>>2]=g}h=!K[d+12|0];if((b|0)!=(d|0)){f=J[b+8>>2];J[d+8>>2]=f;J[f+((J[J[b+8>>2]>>2]!=(b|0))<<2)>>2]=d;f=J[b>>2];J[d>>2]=f;J[f+8>>2]=d;f=J[b+4>>2];J[d+4>>2]=f;if(f){J[f+8>>2]=d}H[d+12|0]=K[b+12|0];a=(a|0)==(b|0)?d:a}if(!(h|!a)){if(e){while(1){b=K[c+12|0];d:{e=J[c+8>>2];if(J[e>>2]!=(c|0)){if(!b){H[c+12|0]=1;H[e+12|0]=0;d=J[e+4>>2];b=J[d>>2];J[e+4>>2]=b;if(b){J[b+8>>2]=e}J[d+8>>2]=J[e+8>>2];b=J[e+8>>2];J[(((e|0)!=J[b>>2])<<2)+b>>2]=d;J[d>>2]=e;J[e+8>>2]=d;b=J[c>>2];a=(b|0)==(a|0)?c:a;c=J[b+4>>2]}e:{f:{d=J[c>>2];g:{if(!(K[d+12|0]?0:d)){b=J[c+4>>2];if(K[b+12|0]?0:b){break g}H[c+12|0]=0;c=J[c+8>>2];h:{if((c|0)==(a|0)){c=a;break h}if(K[c+12|0]){break d}}H[c+12|0]=1;return}b=J[c+4>>2];if(!b){break f}}if(K[b+12|0]){break f}d=c;break e}H[d+12|0]=1;H[c+12|0]=0;a=J[d+4>>2];J[c>>2]=a;if(a){J[a+8>>2]=c}J[d+8>>2]=J[c+8>>2];a=J[c+8>>2];J[((J[a>>2]!=(c|0))<<2)+a>>2]=d;J[d+4>>2]=c;J[c+8>>2]=d;b=c}c=J[d+8>>2];H[d+12|0]=K[c+12|0];H[c+12|0]=1;H[b+12|0]=1;b=J[c+4>>2];a=J[b>>2];J[c+4>>2]=a;if(a){J[a+8>>2]=c}J[b+8>>2]=J[c+8>>2];a=J[c+8>>2];J[(((c|0)!=J[a>>2])<<2)+a>>2]=b;J[b>>2]=c;J[c+8>>2]=b;return}if(!b){H[c+12|0]=1;H[e+12|0]=0;b=J[c+4>>2];J[e>>2]=b;if(b){J[b+8>>2]=e}J[c+8>>2]=J[e+8>>2];b=J[e+8>>2];J[(((e|0)!=J[b>>2])<<2)+b>>2]=c;J[c+4>>2]=e;J[e+8>>2]=c;a=(a|0)==(e|0)?c:a;c=J[e>>2]}b=J[c>>2];i:{if(!(!b|K[b+12|0])){d=c;break i}d=J[c+4>>2];if(!(K[d+12|0]?0:d)){H[c+12|0]=0;c=J[c+8>>2];if((a|0)!=(c|0)?K[c+12|0]:0){break d}H[c+12|0]=1;return}if(b){if(!K[b+12|0]){d=c;break i}d=J[c+4>>2]}H[d+12|0]=1;H[c+12|0]=0;a=J[d>>2];J[c+4>>2]=a;if(a){J[a+8>>2]=c}J[d+8>>2]=J[c+8>>2];a=J[c+8>>2];J[((J[a>>2]!=(c|0))<<2)+a>>2]=d;J[d>>2]=c;J[c+8>>2]=d;b=c}c=J[d+8>>2];H[d+12|0]=K[c+12|0];H[c+12|0]=1;H[b+12|0]=1;b=J[c>>2];a=J[b+4>>2];J[c>>2]=a;if(a){J[a+8>>2]=c}J[b+8>>2]=J[c+8>>2];a=J[c+8>>2];J[(((c|0)!=J[a>>2])<<2)+a>>2]=b;J[b+4>>2]=c;J[c+8>>2]=b;return}b=J[c+8>>2];c=J[((J[b>>2]==(c|0))<<2)+b>>2];continue}}H[g+12|0]=1}}function wc(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;h=ba-32|0;ba=h;a:{b:{if(J[a+8>>2]<<5>>>0>=b>>>0){break b}if((b|0)<0){break a}b=(b-1>>>5|0)+1|0;c=oa(b<<2);J[h+24>>2]=b;J[h+20>>2]=0;J[h+16>>2]=c;b=J[a>>2];J[h+12>>2]=0;J[h+8>>2]=b;c=J[a+4>>2];J[h+4>>2]=c&31;J[h>>2]=b+(c>>>3&536870908);e=ba-32|0;ba=e;i=J[h+4>>2];g=J[h+12>>2];j=J[h>>2];d=J[h+8>>2];b=(i-g|0)+(j-d<<3)|0;f=J[h+20>>2];c=b+f|0;J[h+20>>2]=c;if(!((c-1^f-1)>>>0<32?f:0)){J[J[h+16>>2]+((c>>>0>=33?c-1>>>5|0:0)<<2)>>2]=0}c=J[h+16>>2]+(f>>>3&536870908)|0;f=f&31;c:{if((f|0)==(g|0)){if((b|0)<=0){break c}if(g){i=32-g|0;f=(b|0)<(i|0)?b:i;i=-1<>>i-f;J[c>>2]=J[c>>2]&(i^-1)|i&J[d>>2];d=d+4|0;c=(g+f>>>3&536870908)+c|0;b=b-f|0}g=(b|0)/32|0;if(b+31>>>0>=63){ta(c,d,g<<2)}b=b-(g<<5)|0;if((b|0)<=0){break c}f=c;c=g<<2;g=f+c|0;b=-1>>>32-b|0;J[g>>2]=J[g>>2]&(b^-1)|b&J[c+d>>2];break c}J[e+28>>2]=g;J[e+24>>2]=d;J[e+20>>2]=i;J[e+16>>2]=j;J[e+12>>2]=f;J[e+8>>2]=c;b=J[e+28>>2];c=J[e+24>>2];g=(J[e+20>>2]-b|0)+(J[e+16>>2]-c<<3)|0;d:{if((g|0)<=0){b=J[e+12>>2];d=J[e+8>>2];break d}e:{if(!b){b=J[e+12>>2];break e}d=J[e+12>>2];j=32-d|0;k=32-b|0;f=(g|0)<(k|0)?g:k;i=f>>>0>j>>>0?j:f;l=J[e+8>>2];m=J[l>>2]&(-1<>>j-i^-1);j=J[c>>2]&(-1<>>k-f);J[l>>2]=m|(b>>>0>>0?j<>>b-d|0);c=d+i|0;b=c&31;J[e+12>>2]=b;d=l+(c>>>3&536870908)|0;J[e+8>>2]=d;c=f-i|0;if((c|0)>0){J[d>>2]=J[d>>2]&(-1>>>32-c^-1)|j>>>i+J[e+28>>2];J[e+12>>2]=c;b=c}g=g-f|0;c=J[e+24>>2]+4|0;J[e+24>>2]=c}i=-1<=32){j=i^-1;while(1){d=J[e+8>>2];c=J[c>>2];J[d>>2]=j&J[d>>2]|c<>2]=d+4;J[d+4>>2]=i&J[d+4>>2]|c>>>f;c=J[e+24>>2]+4|0;J[e+24>>2]=c;d=g>>>0>63;g=g-32|0;if(d){continue}break}}d=J[e+8>>2];if((g|0)<=0){break d}j=f;f=(g|0)>(f|0)?f:g;j=J[d>>2]&(i&-1>>>j-f^-1);i=J[c>>2]&-1>>>32-g;J[d>>2]=j|i<>2]=c;d=(b>>>3&536870908)+d|0;J[e+8>>2]=d;b=g-f|0;if((b|0)<=0){b=c;break d}J[d>>2]=J[d>>2]&(-1>>>32-b^-1)|i>>>f;J[e+12>>2]=b}J[e+4>>2]=b;J[e>>2]=d}ba=e+32|0;b=J[a>>2];J[a>>2]=J[h+16>>2];J[h+16>>2]=b;c=J[a+4>>2];J[a+4>>2]=J[h+20>>2];J[h+20>>2]=c;c=J[a+8>>2];J[a+8>>2]=J[h+24>>2];J[h+24>>2]=c;if(!b){break b}na(b)}ba=h+32|0;return}qa();B()}function Yj(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;g=ba-16|0;ba=g;b=J[a+64>>2];a:{if(!b){break a}i=da[J[J[b>>2]+32>>2]](b)|0;if(!i){break a}n=(J[i+28>>2]-J[i+24>>2]>>2)-J[i+44>>2]|0;b=J[a+56>>2];d=J[b+8>>2];b:{if((J[b+12>>2]-d|0)<5){break b}J[g+8>>2]=0;J[g>>2]=0;J[g+4>>2]=0;c:{d:{while(1){e:{f:{if(!J[J[(c<<2)+d>>2]+56>>2]){break f}j=da[J[J[a>>2]+56>>2]](a,c)|0;if(!j){break f}if(J[g+8>>2]!=(f|0)){J[f>>2]=j;f=f+4|0;J[g+4>>2]=f;break f}b=J[g>>2];h=f-b|0;f=h>>2;d=f+1|0;if(d>>>0>=1073741824){break e}e=h>>>1|0;d=h>>>0>=2147483644?1073741823:d>>>0>>0?e:d;if(d){if(d>>>0>=1073741824){break d}e=oa(d<<2)}else{e=0}f=e+(f<<2)|0;J[f>>2]=j;h=ta(e,b,h);J[g+8>>2]=h+(d<<2);f=f+4|0;J[g+4>>2]=f;J[g>>2]=h;if(!b){break f}na(b)}m=J[a+56>>2];d=J[m+8>>2];c=c+1|0;if((c|0)>2]-d>>2){continue}break c}break}qa();B()}xa();B()}j=J[g>>2];o=J[i+24>>2];b=J[i+28>>2];if((o|0)!=(b|0)){b=b-o>>2;q=b>>>0<=1?1:b;b=f-j>>2;r=b>>>0<=1?1:b;while(1){e=J[(p<<2)+o>>2];if((e|0)!=-1){g:{if((e|0)<0){c=(e>>>0)%3|0;b=-1;break g}b=(e>>>0)/3|0;c=e-P(b,3)|0;b=J[(J[m+96>>2]+P(b,12)|0)+(c<<2)>>2]}h:{i:{if(c){c=e-1|0;break i}c=e+2|0;if((c|0)!=-1){break i}l=0;break h}l=0;c=J[J[i+12>>2]+(c<<2)>>2];if((c|0)==-1){break h}j:{if((c>>>0)%3|0){d=c-1|0;break j}d=c+2|0;if((d|0)==-1){break h}}h=e;while(1){c=(d|0)<0?-1:J[(J[m+96>>2]+P((d>>>0)/3|0,12)|0)+((d>>>0)%3<<2)>>2];k:{if((b|0)==(c|0)){c=0;if((f|0)==(j|0)){c=b;break k}l:{while(1){k=J[J[(c<<2)+j>>2]+28>>2];if(J[k+(d<<2)>>2]!=J[k+(h<<2)>>2]){break l}c=c+1|0;if((r|0)!=(c|0)){continue}break}c=b;break k}c=b}l=l+1|0}if((d|0)==(e|0)|(d|0)==-1){break h}m:{if((d>>>0)%3|0){b=d-1|0;break m}b=d+2|0;if((b|0)==-1){break h}}k=J[J[i+12>>2]+(b<<2)>>2];if((k|0)==-1){break h}b=c;h=d;c=k+((k>>>0)%3|0?-1:2)|0;d=c;if((c|0)!=-1){continue}break}}c=1;b=e+1|0;b=(b>>>0)%3|0?b:e-2|0;n:{if((b|0)==-1){break n}b=J[J[i+12>>2]+(b<<2)>>2];if((b|0)==-1){break n}c=b+1|0;c=(((c>>>0)%3|0?c:b-2|0)|0)==-1}n=(l+n|0)-((c^-1)&(l|0)!=0)|0}p=p+1|0;if((q|0)!=(p|0)){continue}break}}if(!j){break b}na(j)}J[a+52>>2]=n}ba=g+16|0}function Ze(a,b,c,d,e,f,g,h,i){var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;j=ba-128|0;ba=j;a:{b:{c:{if(!Hb(f,g,h,i,0,0,0,0)){break c}l=i&65535;n=i>>>16&32767;d:{e:{if((n|0)!=32767){k=4;if(n){break e}k=f|h|(g|l)?3:2;break d}k=!(f|h|(g|l))}}s=e>>>16|0;o=s&32767;if((o|0)==32767){break c}if(k){break b}}Ea(j+16|0,b,c,d,e,f,g,h,i);b=J[j+16>>2];d=J[j+20>>2];e=J[j+24>>2];c=J[j+28>>2];Ne(j,b,d,e,c,b,d,e,c);d=J[j+8>>2];e=J[j+12>>2];h=J[j>>2];i=J[j+4>>2];break a}k=d;p=e&2147483647;n=h;m=i&2147483647;if((Hb(b,c,k,p,f,g,h,m)|0)<=0){if(Hb(b,c,k,p,f,g,n,m)){h=b;i=c;break a}Ea(j+112|0,b,c,d,e,0,0,0,0);d=J[j+120>>2];e=J[j+124>>2];h=J[j+112>>2];i=J[j+116>>2];break a}q=i>>>16&32767;if(o){i=c;h=b}else{Ea(j+96|0,b,c,k,p,0,0,0,1081540608);k=J[j+104>>2];h=J[j+108>>2];p=h;o=(h>>>16|0)-120|0;i=J[j+100>>2];h=J[j+96>>2]}if(!q){Ea(j+80|0,f,g,n,m,0,0,0,1081540608);n=J[j+88>>2];f=J[j+92>>2];m=f;q=(f>>>16|0)-120|0;g=J[j+84>>2];f=J[j+80>>2]}r=n;t=m&65535|65536;p=p&65535|65536;if((o|0)>(q|0)){while(1){m=k-r|0;l=(g|0)==(i|0)&f>>>0>h>>>0|g>>>0>i>>>0;n=m-l|0;l=(p-((k>>>0>>0)+t|0)|0)-(l>>>0>m>>>0)|0;f:{if((l|0)>0|(l|0)>=0){k=h;h=h-f|0;i=i-((f>>>0>k>>>0)+g|0)|0;if(!(h|n|(i|l))){Ea(j+32|0,b,c,d,e,0,0,0,0);d=J[j+40>>2];e=J[j+44>>2];h=J[j+32>>2];i=J[j+36>>2];break a}l=l<<1|n>>>31;k=n<<1|i>>>31;break f}l=p<<1|k>>>31;k=k<<1|i>>>31}p=l;l=i<<1|h>>>31;h=h<<1;i=l;o=o-1|0;if((o|0)>(q|0)){continue}break}o=q}m=k-r|0;l=(g|0)==(i|0)&f>>>0>h>>>0|g>>>0>i>>>0;n=m-l|0;l=(p-((k>>>0>>0)+t|0)|0)-(l>>>0>m>>>0)|0;m=l;g:{if((l|0)<0){n=k;m=p;break g}k=h;h=h-f|0;i=i-((f>>>0>k>>>0)+g|0)|0;if(h|n|(i|m)){break g}Ea(j+48|0,b,c,d,e,0,0,0,0);d=J[j+56>>2];e=J[j+60>>2];h=J[j+48>>2];i=J[j+52>>2];break a}if((m|0)==65535|m>>>0<65535){while(1){b=i>>>31|0;o=o-1|0;p=i<<1|h>>>31;h=h<<1;i=p;c=b;b=m<<1|n>>>31;n=c|n<<1;m=b;if(b>>>0<65536){continue}break}}b=s&32768;if((o|0)<=0){Ea(j- -64|0,h,i,n,m&65535|(b|o+120)<<16,0,0,0,1065811968);d=J[j+72>>2];e=J[j+76>>2];h=J[j+64>>2];i=J[j+68>>2];break a}d=n;e=m&65535|(b|o)<<16}J[a>>2]=h;J[a+4>>2]=i;J[a+8>>2]=d;J[a+12>>2]=e;ba=j+128|0}function Ki(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0;f=ba+-64|0;ba=f;a:{b:{c:{d:{e:{f:{if(!b){break f}e=rb(c);if(e>>>0>=2147483632){break e}g:{h:{if(e>>>0>=11){a=(e|15)+1|0;g=oa(a);J[f+56>>2]=a|-2147483648;J[f+48>>2]=g;a=e+g|0;break h}H[f+59|0]=e;g=f+48|0;a=e+g|0;if(!e){break g}}ua(g,c,e)}H[a|0]=0;e=rb(d);if(e>>>0>=2147483632){break d}i:{j:{if(e>>>0>=11){a=(e|15)+1|0;g=oa(a);J[f+40>>2]=a|-2147483648;J[f+32>>2]=g;a=e+g|0;break j}H[f+43|0]=e;g=f+32|0;a=e+g|0;if(!e){break i}}ua(g,d,e)}H[a|0]=0;e=rb(c);if(e>>>0>=2147483632){break c}k:{l:{if(e>>>0>=11){a=(e|15)+1|0;g=oa(a);J[f+24>>2]=a|-2147483648;J[f+16>>2]=g;J[f+20>>2]=e;a=e+g|0;break l}H[f+27|0]=e;g=f+16|0;a=e+g|0;if(!e){break k}}ua(g,c,e)}H[a|0]=0;c=rb(d);if(c>>>0>=2147483632){break b}m:{n:{if(c>>>0>=11){e=(c|15)+1|0;a=oa(e);J[f+8>>2]=e|-2147483648;J[f>>2]=a;J[f+4>>2]=c;g=a+c|0;break n}H[f+11|0]=c;g=c+f|0;a=f;if(!c){break m}}ua(a,d,c)}H[g|0]=0;e=ba-48|0;ba=e;d=ob(b,f+16|0);if((d|0)!=(b+4|0)){a=J[d+4>>2];o:{if(!a){a=d;while(1){c=J[a+8>>2];g=J[c>>2]!=(a|0);a=c;if(g){continue}break}break o}while(1){c=a;a=J[a>>2];if(a){continue}break}}if((d|0)==J[b>>2]){J[b>>2]=c}J[b+8>>2]=J[b+8>>2]-1;Dc(J[b+4>>2],d);a=J[d+28>>2];if(a){J[d+32>>2]=a;na(a)}if(H[d+27|0]<0){na(J[d+16>>2])}na(d)}g=0;J[e+8>>2]=0;J[e>>2]=0;J[e+4>>2]=0;c=K[f+11|0];d=c<<24>>24;p:{q:{h=J[f+4>>2];a=(d|0)<0?h:c;if(a){if((a|0)<0){break q}c=a;g=oa(a);a=pa(g,0,a);c=c+a|0;J[e+8>>2]=c;J[e+4>>2]=c;J[e>>2]=a;h=J[f+4>>2];c=K[f+11|0];d=c}a=d<<24>>24<0;ua(g,a?J[f>>2]:f,a?h:c);break p}qa();B()}r:{if(H[f+27|0]>=0){J[e+24>>2]=J[f+24>>2];a=J[f+20>>2];J[e+16>>2]=J[f+16>>2];J[e+20>>2]=a;break r}Ga(e+16|0,J[f+16>>2],J[f+20>>2])}Ob(e+28|0,e);a=e+16|0;Cc(e+40|0,b,a,a);a=J[e+28>>2];if(a){J[e+32>>2]=a;na(a)}if(H[e+27|0]<0){na(J[e+16>>2])}a=J[e>>2];if(a){J[e+4>>2]=a;na(a)}ba=e+48|0;if(H[f+11|0]<0){na(J[f>>2])}if(H[f+27|0]<0){na(J[f+16>>2])}if(H[f+43|0]<0){na(J[f+32>>2])}if(H[f+59|0]>=0){break f}na(J[f+48>>2])}ba=f- -64|0;a=(b|0)!=0;break a}gb();B()}gb();B()}gb();B()}gb();B()}return a|0}function nf(a,b){var c=0,d=0,e=0,f=0;f=ba-16|0;ba=f;e=oa(32);J[f>>2]=e;J[f+4>>2]=30;J[f+8>>2]=-2147483616;c=K[1240]|K[1241]<<8|(K[1242]<<16|K[1243]<<24);d=K[1236]|K[1237]<<8|(K[1238]<<16|K[1239]<<24);H[e+22|0]=d;H[e+23|0]=d>>>8;H[e+24|0]=d>>>16;H[e+25|0]=d>>>24;H[e+26|0]=c;H[e+27|0]=c>>>8;H[e+28|0]=c>>>16;H[e+29|0]=c>>>24;c=K[1234]|K[1235]<<8|(K[1236]<<16|K[1237]<<24);d=K[1230]|K[1231]<<8|(K[1232]<<16|K[1233]<<24);H[e+16|0]=d;H[e+17|0]=d>>>8;H[e+18|0]=d>>>16;H[e+19|0]=d>>>24;H[e+20|0]=c;H[e+21|0]=c>>>8;H[e+22|0]=c>>>16;H[e+23|0]=c>>>24;c=K[1226]|K[1227]<<8|(K[1228]<<16|K[1229]<<24);d=K[1222]|K[1223]<<8|(K[1224]<<16|K[1225]<<24);H[e+8|0]=d;H[e+9|0]=d>>>8;H[e+10|0]=d>>>16;H[e+11|0]=d>>>24;H[e+12|0]=c;H[e+13|0]=c>>>8;H[e+14|0]=c>>>16;H[e+15|0]=c>>>24;c=K[1218]|K[1219]<<8|(K[1220]<<16|K[1221]<<24);d=K[1214]|K[1215]<<8|(K[1216]<<16|K[1217]<<24);H[e|0]=d;H[e+1|0]=d>>>8;H[e+2|0]=d>>>16;H[e+3|0]=d>>>24;H[e+4|0]=c;H[e+5|0]=c>>>8;H[e+6|0]=c>>>16;H[e+7|0]=c>>>24;H[e+30|0]=0;e=a+4|0;vb(e,f,b);if(H[f+11|0]<0){na(J[f>>2])}a=oa(32);J[f>>2]=a;J[f+4>>2]=29;J[f+8>>2]=-2147483616;c=K[1308]|K[1309]<<8|(K[1310]<<16|K[1311]<<24);d=K[1304]|K[1305]<<8|(K[1306]<<16|K[1307]<<24);H[a+21|0]=d;H[a+22|0]=d>>>8;H[a+23|0]=d>>>16;H[a+24|0]=d>>>24;H[a+25|0]=c;H[a+26|0]=c>>>8;H[a+27|0]=c>>>16;H[a+28|0]=c>>>24;c=K[1303]|K[1304]<<8|(K[1305]<<16|K[1306]<<24);d=K[1299]|K[1300]<<8|(K[1301]<<16|K[1302]<<24);H[a+16|0]=d;H[a+17|0]=d>>>8;H[a+18|0]=d>>>16;H[a+19|0]=d>>>24;H[a+20|0]=c;H[a+21|0]=c>>>8;H[a+22|0]=c>>>16;H[a+23|0]=c>>>24;c=K[1295]|K[1296]<<8|(K[1297]<<16|K[1298]<<24);d=K[1291]|K[1292]<<8|(K[1293]<<16|K[1294]<<24);H[a+8|0]=d;H[a+9|0]=d>>>8;H[a+10|0]=d>>>16;H[a+11|0]=d>>>24;H[a+12|0]=c;H[a+13|0]=c>>>8;H[a+14|0]=c>>>16;H[a+15|0]=c>>>24;c=K[1287]|K[1288]<<8|(K[1289]<<16|K[1290]<<24);d=K[1283]|K[1284]<<8|(K[1285]<<16|K[1286]<<24);H[a|0]=d;H[a+1|0]=d>>>8;H[a+2|0]=d>>>16;H[a+3|0]=d>>>24;H[a+4|0]=c;H[a+5|0]=c>>>8;H[a+6|0]=c>>>16;H[a+7|0]=c>>>24;H[a+29|0]=0;vb(e,f,b);if(H[f+11|0]<0){na(J[f>>2])}ba=f+16|0}function sd(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;j=ba-32|0;ba=j;J[a+4>>2]=0;J[a+8>>2]=0;c=a+16|0;J[c>>2]=0;J[c+4>>2]=0;i=a+4|0;J[a>>2]=i;J[a+12>>2]=c;f=J[b>>2];k=b+4|0;if((f|0)!=(k|0)){while(1){g=ba-16|0;ba=g;c=f+16|0;h=Pg(a,i,g+12|0,g+8|0,c);d=J[h>>2];if(d){c=0}else{d=oa(40);e=d+16|0;a:{if(H[c+11|0]>=0){l=J[c+4>>2];J[e>>2]=J[c>>2];J[e+4>>2]=l;J[e+8>>2]=J[c+8>>2];break a}Ga(e,J[c>>2],J[c+4>>2])}Ob(d+28|0,c+12|0);J[d+8>>2]=J[g+12>>2];J[d>>2]=0;J[d+4>>2]=0;J[h>>2]=d;c=d;e=J[J[a>>2]>>2];if(e){J[a>>2]=e;c=J[h>>2]}sb(J[a+4>>2],c);J[a+8>>2]=J[a+8>>2]+1;c=1}H[j+28|0]=c;J[j+24>>2]=d;ba=g+16|0;c=J[f+4>>2];b:{if(c){while(1){f=c;c=J[c>>2];if(c){continue}break b}}while(1){c=f;f=J[f+8>>2];if((c|0)!=J[f>>2]){continue}break}}if((f|0)!=(k|0)){continue}break}}f=J[b+12>>2];l=b+16|0;if((f|0)!=(l|0)){g=a+12|0;while(1){m=oa(24);sd(m,J[f+28>>2]);b=f+16|0;J[j+16>>2]=b;c:{d:{c=J[g+4>>2];e:{if(!c){d=g+4|0;b=d;break e}d=K[b+11|0];e=d<<24>>24<0;h=e?J[b>>2]:b;e=e?J[b+4>>2]:d;while(1){b=c;i=K[c+27|0];d=i<<24>>24<0;c=d?J[c+20>>2]:i;i=c>>>0>>0;f:{g:{h:{i:{k=i?c:e;j:{if(k){d=d?J[b+16>>2]:b+16|0;n=Ba(h,d,k);if(!n){if(c>>>0>e>>>0){break j}break i}if((n|0)>=0){break i}break j}if(c>>>0<=e>>>0){break h}}d=b;c=J[b>>2];if(c){continue}break e}c=Ba(d,h,k);if(c){break g}}if(i){break f}break d}if((c|0)>=0){break d}}c=J[b+4>>2];if(c){continue}break}d=b+4|0}c=oa(32);h=c+16|0;e=J[j+16>>2];k:{if(H[e+11|0]>=0){i=J[e+4>>2];J[h>>2]=J[e>>2];J[h+4>>2]=i;J[h+8>>2]=J[e+8>>2];break k}Ga(h,J[e>>2],J[e+4>>2])}J[c+8>>2]=b;J[c>>2]=0;J[c+4>>2]=0;J[c+28>>2]=0;J[d>>2]=c;b=c;e=J[J[g>>2]>>2];if(e){J[g>>2]=e;b=J[d>>2]}sb(J[g+4>>2],b);J[g+8>>2]=J[g+8>>2]+1;b=1;break c}c=b;b=0}H[j+28|0]=b;J[j+24>>2]=c;c=J[j+24>>2];b=J[c+28>>2];J[c+28>>2]=m;if(b){lb(b+12|0,J[b+16>>2]);kb(b,J[b+4>>2]);na(b)}c=J[f+4>>2];l:{if(c){while(1){f=c;c=J[c>>2];if(c){continue}break l}}while(1){b=f;f=J[f+8>>2];if((b|0)!=J[f>>2]){continue}break}}if((f|0)!=(l|0)){continue}break}}ba=j+32|0;return a}function Pk(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;J[a+8>>2]=e;m=a+32|0;g=J[m>>2];f=J[a+36>>2]-g>>2;a:{if(f>>>0>>0){Fa(m,e-f|0);break a}if(e>>>0>=f>>>0){break a}J[a+36>>2]=g+(e<<2)}b:{if(!d){break b}g=J[b>>2];c:{if((d|0)<2){i=g;break c}f=1;i=d-1|0;q=i&1;d:{if((d|0)==2){i=g;break d}o=i&-2;i=g;while(1){j=(f<<2)+b|0;k=J[j+4>>2];j=J[j>>2];l=(j|0)<(i|0);i=l?j:i;p=(i|0)>(k|0);i=p?k:i;g=l?g:(g|0)<(j|0)?j:g;g=p?g:(g|0)<(k|0)?k:g;f=f+2|0;h=h+2|0;if((o|0)!=(h|0)){continue}break}}if(!q){break c}f=J[(f<<2)+b>>2];h=(f|0)<(i|0);i=h?f:i;g=h?g:(f|0)>(g|0)?f:g}J[a+16>>2]=g;J[a+12>>2]=i;f=g-i|0;g=(g>>31)-((i>>31)+(g>>>0>>0)|0)|0;if(!g&f>>>0>2147483646|g){break b}f=f+1|0;J[a+20>>2]=f;g=f>>>1|0;J[a+24>>2]=g;J[a+28>>2]=0-g;if(f&1){break b}J[a+24>>2]=g-1}k=d-e|0;g=J[a+8>>2];if(!((k|0)<=0|(g|0)<=0)){p=0-e<<2;while(1){if((g|0)>0){d=k<<2;q=d+c|0;o=b+d|0;h=o+p|0;d=J[m>>2];i=0;while(1){f=d;if((g|0)>0){f=J[m>>2];g=0;while(1){j=g<<2;l=J[j+h>>2];n=J[a+16>>2];e:{if((l|0)>(n|0)){J[f+j>>2]=n;break e}j=f+j|0;n=J[a+12>>2];if((n|0)>(l|0)){J[j>>2]=n;break e}J[j>>2]=l}g=g+1|0;if((g|0)>2]){continue}break}}h=i<<2;g=h+q|0;h=J[h+o>>2]-J[f+h>>2]|0;J[g>>2]=h;f:{if((h|0)>2]){h=h+J[a+20>>2]|0}else{if((h|0)<=J[a+24>>2]){break f}h=h-J[a+20>>2]|0}J[g>>2]=h}h=f;g=J[a+8>>2];i=i+1|0;if((g|0)>(i|0)){continue}break}}k=k-e|0;if((k|0)>0){continue}break}}i=0;d=e>>>0>1073741823?-1:e<<2;d=pa(oa(d),0,d);if((g|0)>0){e=J[a+32>>2];h=d;while(1){f=e;if((g|0)>0){f=J[m>>2];g=0;while(1){k=g<<2;j=J[k+h>>2];l=J[a+16>>2];g:{if((j|0)>(l|0)){J[f+k>>2]=l;break g}k=f+k|0;l=J[a+12>>2];if((l|0)>(j|0)){J[k>>2]=l;break g}J[k>>2]=j}g=g+1|0;if((g|0)>2]){continue}break}}h=i<<2;g=h+c|0;h=J[b+h>>2]-J[f+h>>2]|0;J[g>>2]=h;h:{if((h|0)>2]){h=h+J[a+20>>2]|0}else{if((h|0)<=J[a+24>>2]){break h}h=h-J[a+20>>2]|0}J[g>>2]=h}h=f;g=J[a+8>>2];i=i+1|0;if((g|0)>(i|0)){continue}break}}na(d);return 1}function uf(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;d=ba+-64|0;ba=d;J[d+40>>2]=0;J[d+44>>2]=0;J[d+32>>2]=0;J[d+36>>2]=0;J[d+48>>2]=1065353216;e=J[a+80>>2];J[d+24>>2]=0;J[d+16>>2]=0;J[d+20>>2]=0;a:{if(e){if(e>>>0>=1073741824){break a}c=e<<2;e=oa(c);J[d+16>>2]=e;g=c+e|0;J[d+24>>2]=g;pa(e,0,c);J[d+20>>2]=g;while(1){c=J[J[b>>2]>>2];g=J[b+48>>2];h=Hl(J[b+40>>2],J[b+44>>2],f,0);g=g+h|0;c=c+g|0;c=K[c|0]|K[c+1|0]<<8|(K[c+2|0]<<16|K[c+3|0]<<24);J[d+28>>2]=c;J[d+12>>2]=k;J[d+8>>2]=c;c=d+8|0;qf(d+56|0,d+32|0,c,c);b:{if(!K[d+60|0]){J[(f<<2)+e>>2]=J[J[d+56>>2]+12>>2];break b}e=J[a+40>>2];ua(J[J[a>>2]>>2]+P(e,k)|0,d+28|0,e);e=J[d+16>>2];J[e+(f<<2)>>2]=k;k=k+1|0}f=f+1|0;i=f?i:i+1|0;c=J[a+80>>2];if(!i&f>>>0>>0){continue}break}if((c|0)!=(k|0)){c:{if(!K[a+84|0]){b=J[a+72>>2];f=J[a+68>>2];if((b|0)==(f|0)){break c}b=b-f>>2;c=b>>>0<=1?1:b;h=c&3;i=0;b=0;if(c-1>>>0>=3){l=c&-4;g=0;while(1){c=b<<2;j=c+f|0;J[j>>2]=J[(J[j>>2]<<2)+e>>2];j=f+(c|4)|0;J[j>>2]=J[(J[j>>2]<<2)+e>>2];j=f+(c|8)|0;J[j>>2]=J[(J[j>>2]<<2)+e>>2];c=f+(c|12)|0;J[c>>2]=J[(J[c>>2]<<2)+e>>2];b=b+4|0;g=g+4|0;if((l|0)!=(g|0)){continue}break}}if(!h){break c}while(1){c=f+(b<<2)|0;J[c>>2]=J[(J[c>>2]<<2)+e>>2];b=b+1|0;i=i+1|0;if((h|0)!=(i|0)){continue}break}break c}H[a+84|0]=0;b=a+68|0;i=J[a+68>>2];f=J[a+72>>2]-i>>2;d:{if(f>>>0>>0){Ma(b,c-f|0,2176);c=J[a+80>>2];break d}if(c>>>0>=f>>>0){break d}J[a+72>>2]=i+(c<<2)}if(!c){break c}f=J[b>>2];i=0;b=0;if(c>>>0>=4){l=c&-4;g=0;while(1){h=b<<2;J[h+f>>2]=J[e+h>>2];j=h|4;J[j+f>>2]=J[e+j>>2];j=h|8;J[j+f>>2]=J[e+j>>2];h=h|12;J[h+f>>2]=J[e+h>>2];b=b+4|0;g=g+4|0;if((l|0)!=(g|0)){continue}break}}c=c&3;if(!c){break c}while(1){g=b<<2;J[g+f>>2]=J[e+g>>2];b=b+1|0;i=i+1|0;if((c|0)!=(i|0)){continue}break}}J[a+80>>2]=k}na(e)}b=J[d+40>>2];if(b){while(1){a=J[b>>2];na(b);b=a;if(b){continue}break}}a=J[d+32>>2];J[d+32>>2]=0;if(a){na(a)}ba=d- -64|0;return k}qa();B()}function Rj(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;f=ba-16|0;ba=f;J[a+4>>2]=b;J[a+8>>2]=J[b+56>>2];J[a+188>>2]=J[a+184>>2];e=J[b+48>>2];c=oa(32);H[c+19|0]=0;b=K[1278]|K[1279]<<8|(K[1280]<<16|K[1281]<<24);H[c+15|0]=b;H[c+16|0]=b>>>8;H[c+17|0]=b>>>16;H[c+18|0]=b>>>24;b=K[1275]|K[1276]<<8|(K[1277]<<16|K[1278]<<24);d=K[1271]|K[1272]<<8|(K[1273]<<16|K[1274]<<24);H[c+8|0]=d;H[c+9|0]=d>>>8;H[c+10|0]=d>>>16;H[c+11|0]=d>>>24;H[c+12|0]=b;H[c+13|0]=b>>>8;H[c+14|0]=b>>>16;H[c+15|0]=b>>>24;b=K[1267]|K[1268]<<8|(K[1269]<<16|K[1270]<<24);d=K[1263]|K[1264]<<8|(K[1265]<<16|K[1266]<<24);H[c|0]=d;H[c+1|0]=d>>>8;H[c+2|0]=d>>>16;H[c+3|0]=d>>>24;H[c+4|0]=b;H[c+5|0]=b>>>8;H[c+6|0]=b>>>16;H[c+7|0]=b>>>24;a:{b:{b=J[e+4>>2];if(b){while(1){d=K[b+27|0];e=d<<24>>24<0;d=e?J[b+20>>2]:d;h=d>>>0<19;c:{d:{e:{f:{g:{h:{g=h?d:19;if(g){e=e?J[b+16>>2]:b+16|0;i=Ba(c,e,g);if(i){break h}if(d>>>0<=19){break g}break c}if(d>>>0<=19){break f}break c}if((i|0)<0){break c}}d=Ba(e,c,g);if(d){break e}}if(h){break d}break b}if((d|0)>=0){break b}}b=b+4|0}b=J[b>>2];if(b){continue}break}}na(c);if((cb(J[J[a+4>>2]+48>>2])|0)>=6){H[a+288|0]=1;break a}H[a+288|0]=0;break a}na(c);e=J[J[a+4>>2]+48>>2];b=oa(32);J[f>>2]=b;J[f+4>>2]=19;J[f+8>>2]=-2147483616;c=K[1278]|K[1279]<<8|(K[1280]<<16|K[1281]<<24);H[b+15|0]=c;H[b+16|0]=c>>>8;H[b+17|0]=c>>>16;H[b+18|0]=c>>>24;c=K[1275]|K[1276]<<8|(K[1277]<<16|K[1278]<<24);d=K[1271]|K[1272]<<8|(K[1273]<<16|K[1274]<<24);H[b+8|0]=d;H[b+9|0]=d>>>8;H[b+10|0]=d>>>16;H[b+11|0]=d>>>24;H[b+12|0]=c;H[b+13|0]=c>>>8;H[b+14|0]=c>>>16;H[b+15|0]=c>>>24;c=K[1267]|K[1268]<<8|(K[1269]<<16|K[1270]<<24);d=K[1263]|K[1264]<<8|(K[1265]<<16|K[1266]<<24);H[b|0]=d;H[b+1|0]=d>>>8;H[b+2|0]=d>>>16;H[b+3|0]=d>>>24;H[b+4|0]=c;H[b+5|0]=c>>>8;H[b+6|0]=c>>>16;H[b+7|0]=c>>>24;H[b+19|0]=0;j=a,k=Pb(e,f,0),H[j+288|0]=k;if(H[f+11|0]>=0){break a}na(J[f>>2])}ba=f+16|0;return 1}function Mj(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;f=ba-16|0;ba=f;J[a+4>>2]=b;J[a+8>>2]=J[b+56>>2];J[a+188>>2]=J[a+184>>2];e=J[b+48>>2];c=oa(32);H[c+19|0]=0;b=K[1278]|K[1279]<<8|(K[1280]<<16|K[1281]<<24);H[c+15|0]=b;H[c+16|0]=b>>>8;H[c+17|0]=b>>>16;H[c+18|0]=b>>>24;b=K[1275]|K[1276]<<8|(K[1277]<<16|K[1278]<<24);d=K[1271]|K[1272]<<8|(K[1273]<<16|K[1274]<<24);H[c+8|0]=d;H[c+9|0]=d>>>8;H[c+10|0]=d>>>16;H[c+11|0]=d>>>24;H[c+12|0]=b;H[c+13|0]=b>>>8;H[c+14|0]=b>>>16;H[c+15|0]=b>>>24;b=K[1267]|K[1268]<<8|(K[1269]<<16|K[1270]<<24);d=K[1263]|K[1264]<<8|(K[1265]<<16|K[1266]<<24);H[c|0]=d;H[c+1|0]=d>>>8;H[c+2|0]=d>>>16;H[c+3|0]=d>>>24;H[c+4|0]=b;H[c+5|0]=b>>>8;H[c+6|0]=b>>>16;H[c+7|0]=b>>>24;a:{b:{b=J[e+4>>2];if(b){while(1){d=K[b+27|0];e=d<<24>>24<0;d=e?J[b+20>>2]:d;h=d>>>0<19;c:{d:{e:{f:{g:{h:{g=h?d:19;if(g){e=e?J[b+16>>2]:b+16|0;i=Ba(c,e,g);if(i){break h}if(d>>>0<=19){break g}break c}if(d>>>0<=19){break f}break c}if((i|0)<0){break c}}d=Ba(e,c,g);if(d){break e}}if(h){break d}break b}if((d|0)>=0){break b}}b=b+4|0}b=J[b>>2];if(b){continue}break}}na(c);if((cb(J[J[a+4>>2]+48>>2])|0)>=6){H[a+352|0]=1;break a}H[a+352|0]=0;break a}na(c);e=J[J[a+4>>2]+48>>2];b=oa(32);J[f>>2]=b;J[f+4>>2]=19;J[f+8>>2]=-2147483616;c=K[1278]|K[1279]<<8|(K[1280]<<16|K[1281]<<24);H[b+15|0]=c;H[b+16|0]=c>>>8;H[b+17|0]=c>>>16;H[b+18|0]=c>>>24;c=K[1275]|K[1276]<<8|(K[1277]<<16|K[1278]<<24);d=K[1271]|K[1272]<<8|(K[1273]<<16|K[1274]<<24);H[b+8|0]=d;H[b+9|0]=d>>>8;H[b+10|0]=d>>>16;H[b+11|0]=d>>>24;H[b+12|0]=c;H[b+13|0]=c>>>8;H[b+14|0]=c>>>16;H[b+15|0]=c>>>24;c=K[1267]|K[1268]<<8|(K[1269]<<16|K[1270]<<24);d=K[1263]|K[1264]<<8|(K[1265]<<16|K[1266]<<24);H[b|0]=d;H[b+1|0]=d>>>8;H[b+2|0]=d>>>16;H[b+3|0]=d>>>24;H[b+4|0]=c;H[b+5|0]=c>>>8;H[b+6|0]=c>>>16;H[b+7|0]=c>>>24;H[b+19|0]=0;j=a,k=Pb(e,f,0),H[j+352|0]=k;if(H[f+11|0]>=0){break a}na(J[f>>2])}ba=f+16|0;return 1}function uh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;c=ba-32|0;ba=c;d=a- -64|0;Aa(J[d>>2],b);if(J[d>>2]){J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;za(c);d=J[a+64>>2];if((d|0)>0){while(1){f=d-1|0;Ca(c,J[J[a+60>>2]+(f>>>3&536870908)>>2]>>>f&1);e=d>>>0>1;d=f;if(e){continue}break}}ya(c,b);wa(c)}Aa(J[a+76>>2],b);if(J[a+76>>2]){J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;za(c);d=J[a+76>>2];if((d|0)>=2){while(1){f=d-2|0;Ca(c,J[J[a+72>>2]+(f>>>3&536870908)>>2]>>>f&1);e=d-1|0;Ca(c,J[J[a+72>>2]+(e>>>3&536870908)>>2]>>>e&1);e=d>>>0>3;d=f;if(e){continue}break}}ya(c,b);wa(c)}Aa(J[a+88>>2],b);if(J[a+88>>2]){J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;za(c);d=J[a+88>>2];if((d|0)>=3){while(1){f=d-3|0;Ca(c,J[J[a+84>>2]+(f>>>3&536870908)>>2]>>>f&1);e=d-2|0;Ca(c,J[J[a+84>>2]+(e>>>3&536870908)>>2]>>>e&1);e=d-1|0;Ca(c,J[J[a+84>>2]+(e>>>3&536870908)>>2]>>>e&1);e=d>>>0>5;d=f;if(e){continue}break}}ya(c,b);wa(c)}Aa(J[a+100>>2],b);if(J[a+100>>2]){J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;za(c);d=J[a+100>>2];if((d|0)>=4){while(1){f=d-4|0;Ca(c,J[J[a+96>>2]+(f>>>3&536870908)>>2]>>>f&1);e=d-3|0;Ca(c,J[J[a+96>>2]+(e>>>3&536870908)>>2]>>>e&1);e=d-2|0;Ca(c,J[J[a+96>>2]+(e>>>3&536870908)>>2]>>>e&1);e=d-1|0;Ca(c,J[J[a+96>>2]+(e>>>3&536870908)>>2]>>>e&1);e=d>>>0>7;d=f;if(e){continue}break}}ya(c,b);wa(c)}J[c>>2]=J[a+12>>2];d=J[b+20>>2];a:{if(!!J[b+16>>2]&(d|0)>=0|(d|0)>0){break a}f=c+4|0;sa(b,J[b+4>>2],c,f);d=J[b+20>>2];e=J[b+16>>2];J[c>>2]=J[a+16>>2];if(!!e&(d|0)>=0|(d|0)>0){break a}sa(b,J[b+4>>2],c,f)}ba=c+32|0;return 1}function jh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;c=ba-32|0;ba=c;Aa(J[a+48>>2],b);if(J[a+48>>2]){J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;za(c);d=J[a+48>>2];if((d|0)>0){while(1){f=d-1|0;Ca(c,J[J[a+44>>2]+(f>>>3&536870908)>>2]>>>f&1);e=d>>>0>1;d=f;if(e){continue}break}}ya(c,b);wa(c)}Aa(J[a+60>>2],b);if(J[a+60>>2]){J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;za(c);d=J[a+60>>2];if((d|0)>=2){while(1){f=d-2|0;Ca(c,J[J[a+56>>2]+(f>>>3&536870908)>>2]>>>f&1);e=d-1|0;Ca(c,J[J[a+56>>2]+(e>>>3&536870908)>>2]>>>e&1);e=d>>>0>3;d=f;if(e){continue}break}}ya(c,b);wa(c)}Aa(J[a+72>>2],b);if(J[a+72>>2]){J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;za(c);d=J[a+72>>2];if((d|0)>=3){while(1){f=d-3|0;Ca(c,J[J[a+68>>2]+(f>>>3&536870908)>>2]>>>f&1);e=d-2|0;Ca(c,J[J[a+68>>2]+(e>>>3&536870908)>>2]>>>e&1);e=d-1|0;Ca(c,J[J[a+68>>2]+(e>>>3&536870908)>>2]>>>e&1);e=d>>>0>5;d=f;if(e){continue}break}}ya(c,b);wa(c)}Aa(J[a+84>>2],b);if(J[a+84>>2]){J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;za(c);d=J[a+84>>2];if((d|0)>=4){while(1){f=d-4|0;Ca(c,J[J[a+80>>2]+(f>>>3&536870908)>>2]>>>f&1);e=d-3|0;Ca(c,J[J[a+80>>2]+(e>>>3&536870908)>>2]>>>e&1);e=d-2|0;Ca(c,J[J[a+80>>2]+(e>>>3&536870908)>>2]>>>e&1);e=d-1|0;Ca(c,J[J[a+80>>2]+(e>>>3&536870908)>>2]>>>e&1);e=d>>>0>7;d=f;if(e){continue}break}}ya(c,b);wa(c)}J[c>>2]=J[a+12>>2];d=J[b+20>>2];a:{if(!!J[b+16>>2]&(d|0)>=0|(d|0)>0){break a}f=c+4|0;sa(b,J[b+4>>2],c,f);d=J[b+20>>2];e=J[b+16>>2];J[c>>2]=J[a+24>>2];if(!!e&(d|0)>=0|(d|0)>0){break a}sa(b,J[b+4>>2],c,f)}ba=c+32|0;return 1}function wk(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;d=ba-32|0;ba=d;o=e<<2;f=e>>>0>1073741823?-1:o;l=pa(oa(f),0,f);f=J[a+40>>2];f=J[f+4>>2]-J[f>>2]|0;if((f|0)>=5){q=J[a+36>>2];p=J[a+32>>2];r=e&-2;s=e&1;t=a+8|0;f=f>>>2|0;while(1){j=J[a+40>>2];g=J[j>>2];a:{b:{h=J[j+4>>2]-g>>2;j=f-1|0;if(h>>>0>j>>>0){u=P(e,j);g=J[g+(j<<2)>>2];if((g|0)==-1){break b}g=J[J[p+12>>2]+(g<<2)>>2];if((g|0)==-1){break b}k=J[q>>2];h=J[p>>2];m=J[k+(J[h+(g<<2)>>2]<<2)>>2];i=g+1|0;i=(i>>>0)%3|0?i:g-2|0;if((i|0)!=-1){i=J[h+(i<<2)>>2]}else{i=-1}c:{d:{if((g>>>0)%3|0){g=g-1|0;break d}g=g+2|0;n=-1;if((g|0)==-1){break c}}n=J[h+(g<<2)>>2]}if((j|0)<=(m|0)){break b}g=J[(i<<2)+k>>2];if((g|0)>=(j|0)){break b}h=J[k+(n<<2)>>2];if((h|0)>=(j|0)){break b}e:{if((e|0)<=0){break e}h=P(e,h);k=P(e,g);m=P(e,m);g=0;n=0;if((e|0)!=1){while(1){J[(g<<2)+l>>2]=(J[(g+h<<2)+b>>2]+J[(g+k<<2)+b>>2]|0)-J[(g+m<<2)+b>>2];i=g|1;J[(i<<2)+l>>2]=(J[(h+i<<2)+b>>2]+J[(i+k<<2)+b>>2]|0)-J[(i+m<<2)+b>>2];g=g+2|0;n=n+2|0;if((r|0)!=(n|0)){continue}break}}if(!s){break e}J[(g<<2)+l>>2]=(J[(g+h<<2)+b>>2]+J[(g+k<<2)+b>>2]|0)-J[(g+m<<2)+b>>2]}g=J[l>>2];h=J[l+4>>2];break a}ra();B()}h=(P(f-2|0,e)<<2)+b|0;g=J[h>>2];h=J[h+4>>2]}k=u<<2;m=k+b|0;i=J[m+4>>2];J[d+16>>2]=J[m>>2];J[d+20>>2]=i;J[d+8>>2]=g;J[d+12>>2]=h;Ya(d+24|0,t,d+16|0,d+8|0);g=c+k|0;J[g>>2]=J[d+24>>2];J[g+4>>2]=J[d+28>>2];g=(f|0)>2;f=j;if(g){continue}break}}if((e|0)>0){pa(l,0,o)}e=J[l>>2];f=J[l+4>>2];g=J[b+4>>2];J[d+16>>2]=J[b>>2];J[d+20>>2]=g;J[d+8>>2]=e;J[d+12>>2]=f;Ya(d+24|0,a+8|0,d+16|0,d+8|0);J[c>>2]=J[d+24>>2];J[c+4>>2]=J[d+28>>2];na(l);ba=d+32|0;return 1}function fg(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;k=J[a>>2];n=b-k|0;h=(n&-4)+k|0;i=d-c|0;if((i|0)<=0){return}a:{l=i>>2;g=J[a+8>>2];j=J[a+4>>2];if((l|0)<=g-j>>2){f=j-h|0;g=f>>2;if((g|0)>=(l|0)){b=j;g=d;break a}b=j;g=(g<<2)+c|0;if((g|0)!=(d|0)){e=g;while(1){J[b>>2]=J[e>>2];b=b+4|0;e=e+4|0;if((e|0)!=(d|0)){continue}break}}J[a+4>>2]=b;if((f|0)>0){break a}return}b:{f=l+(j-k>>2)|0;if(f>>>0<1073741824){e=g-k|0;g=e>>>1|0;m=e>>>0>=2147483644?1073741823:f>>>0>>0?g:f;if(m){if(m>>>0>=1073741824){break b}g=oa(m<<2)}else{g=0}e=g+(n&-4)|0;f=e;if((c|0)!=(d|0)){f=ua(e,c,i&-4)+(l<<2)|0}c:{if((b|0)==(k|0)){break c}i=n-4|0;d=(i>>>2|0)+1&3;d:{if(!d){b=h;break d}c=0;b=h;while(1){e=e-4|0;b=b-4|0;J[e>>2]=J[b>>2];c=c+1|0;if((d|0)!=(c|0)){continue}break}}if(i>>>0<12){break c}while(1){J[e-4>>2]=J[b-4>>2];J[e-8>>2]=J[b-8>>2];J[e-12>>2]=J[b-12>>2];e=e-16|0;b=b-16|0;J[e>>2]=J[b>>2];if((b|0)!=(k|0)){continue}break}}if((h|0)!=(j|0)){while(1){J[f>>2]=J[h>>2];f=f+4|0;h=h+4|0;if((j|0)!=(h|0)){continue}break}}J[a+8>>2]=(m<<2)+g;J[a+4>>2]=f;J[a>>2]=e;if(k){na(k)}return}qa();B()}xa();B()}d=l<<2;i=d+h|0;f=b;e=b-d|0;if(j>>>0>e>>>0){d=e;while(1){J[f>>2]=J[d>>2];f=f+4|0;d=d+4|0;if(j>>>0>d>>>0){continue}break}}J[a+4>>2]=f;e:{if((b|0)==(i|0)){break e}d=(b-i|0)-4|0;a=(d>>>2|0)+1&3;if(a){f=0;while(1){b=b-4|0;e=e-4|0;J[b>>2]=J[e>>2];f=f+1|0;if((a|0)!=(f|0)){continue}break}}if(d>>>0<12){break e}while(1){J[b-4>>2]=J[e-4>>2];J[b-8>>2]=J[e-8>>2];J[b-12>>2]=J[e-12>>2];b=b-16|0;e=e-16|0;J[b>>2]=J[e>>2];if((e|0)!=(h|0)){continue}break}}if((c|0)==(g|0)){return}b=h;while(1){J[b>>2]=J[c>>2];b=b+4|0;c=c+4|0;if((g|0)!=(c|0)){continue}break}}function ff(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;k=ba-16|0;ba=k;J[k+8>>2]=c;h=J[a+12>>2];d=J[a+8>>2];g=h-d>>2;a:{if((g|0)>(b|0)){break a}e=b+1|0;if(e>>>0>g>>>0){l=e-g|0;f=J[a+16>>2];d=J[a+12>>2];if(l>>>0<=f-d>>2>>>0){if(l){e=d;d=l<<2;d=pa(e,0,d)+d|0}J[a+12>>2]=d;break a}b:{c:{d:{m=J[a+8>>2];g=d-m>>2;i=g+l|0;if(i>>>0<1073741824){e=f-m|0;f=e>>>1|0;e=e>>>0>=2147483644?1073741823:f>>>0>i>>>0?f:i;if(e){if(e>>>0>=1073741824){break d}j=oa(e<<2)}h=(g<<2)+j|0;f=l<<2;i=pa(h,0,f);g=f+i|0;e=(e<<2)+j|0;if((d|0)==(m|0)){break c}while(1){d=d-4|0;f=J[d>>2];J[d>>2]=0;h=h-4|0;J[h>>2]=f;if((d|0)!=(m|0)){continue}break}J[a+16>>2]=e;e=J[a+12>>2];J[a+12>>2]=g;d=J[a+8>>2];J[a+8>>2]=h;if((d|0)==(e|0)){break b}while(1){e=e-4|0;f=J[e>>2];J[e>>2]=0;if(f){Ka(f)}if((d|0)!=(e|0)){continue}break}break b}qa();B()}xa();B()}J[a+16>>2]=e;J[a+12>>2]=g;J[a+8>>2]=i}if(d){na(d)}break a}if(e>>>0>=g>>>0){break a}d=d+(e<<2)|0;if((d|0)!=(h|0)){while(1){h=h-4|0;c=J[h>>2];J[h>>2]=0;if(c){Ka(c)}if((d|0)!=(h|0)){continue}break}c=J[k+8>>2]}J[a+12>>2]=d}e:{f:{d=J[c+56>>2];g:{if((d|0)>4){break g}j=P(d,12)+a|0;d=J[j+24>>2];if((d|0)!=J[j+28>>2]){J[d>>2]=b;J[j+24>>2]=d+4;break g}i=J[j+20>>2];g=d-i|0;f=g>>2;e=f+1|0;if(e>>>0>=1073741824){break f}d=g>>>1|0;e=g>>>0>=2147483644?1073741823:d>>>0>e>>>0?d:e;if(e){if(e>>>0>=1073741824){break e}d=oa(e<<2)}else{d=0}f=d+(f<<2)|0;J[f>>2]=b;d=ta(d,i,g);J[j+20>>2]=d;J[j+24>>2]=f+4;J[j+28>>2]=d+(e<<2);if(!i){break g}na(i)}J[c+60>>2]=b;a=J[a+8>>2];J[k+8>>2]=0;a=a+(b<<2)|0;b=J[a>>2];J[a>>2]=c;if(b){Ka(b)}a=J[k+8>>2];J[k+8>>2]=0;if(a){Ka(a)}ba=k+16|0;return}qa();B()}xa();B()}function qf(a,b,c,d){var e=0,f=0,g=0,h=0,i=Q(0),j=0,k=0,l=Q(0);j=J[c>>2];g=j^318;a:{b:{f=J[b+4>>2];if(!f){break b}h=Kl(f);c:{if(h>>>0>=2){e=g;if(e>>>0>=f>>>0){e=(g>>>0)%(f>>>0)|0}c=J[J[b>>2]+(e<<2)>>2];if(!c){break b}if(h>>>0<=1){break c}while(1){c=J[c>>2];if(!c){break b}h=J[c+4>>2];if((h|0)!=(g|0)){if(f>>>0<=h>>>0){h=(h>>>0)%(f>>>0)|0}if((e|0)!=(h|0)){break b}}if(J[c+8>>2]!=(j|0)){continue}break}b=0;break a}e=f-1&g;c=J[J[b>>2]+(e<<2)>>2];if(!c){break b}}h=f-1|0;while(1){c=J[c>>2];if(!c){break b}k=J[c+4>>2];if((k|0)!=(g|0)&(h&k)!=(e|0)){break b}if(J[c+8>>2]!=(j|0)){continue}break}b=0;break a}c=oa(16);J[c+8>>2]=J[d>>2];d=J[d+4>>2];J[c+4>>2]=g;J[c+12>>2]=d;J[c>>2]=0;i=Q(J[b+12>>2]+1>>>0);l=N[b+16>>2];d:{if(i>Q(l*Q(f>>>0))?0:f){break d}d=2;h=(f-1&f)!=0|f>>>0<3|f<<1;i=Q(W(Q(i/l)));e:{if(i=Q(0)){e=~~i>>>0;break e}e=0}e=e>>>0>>0?h:e;f:{if((e|0)==1){break f}if(!(e&e-1)){d=e;break f}d=Ha(e);f=J[b+4>>2]}g:{if(d>>>0<=f>>>0){if(d>>>0>=f>>>0){break g}h=f>>>0<3;i=Q(W(Q(Q(M[b+12>>2])/N[b+16>>2])));h:{if(i=Q(0)){e=~~i>>>0;break h}e=0}i:{j:{if(h){break j}if(Kl(f)>>>0>1){break j}e=e>>>0<2?e:1<<32-S(e-1|0);break i}e=Ha(e)}d=d>>>0>e>>>0?d:e;if(f>>>0<=d>>>0){break g}}db(b,d)}f=J[b+4>>2];d=f-1|0;if(!(d&f)){e=d&g;break d}if(f>>>0>g>>>0){e=g;break d}e=(g>>>0)%(f>>>0)|0}g=J[b>>2]+(e<<2)|0;d=J[g>>2];k:{l:{if(!d){d=b+8|0;J[c>>2]=J[d>>2];J[b+8>>2]=c;J[g>>2]=d;d=J[c>>2];if(!d){break k}d=J[d+4>>2];g=f-1|0;m:{if(!(g&f)){d=d&g;break m}if(d>>>0>>0){break m}d=(d>>>0)%(f>>>0)|0}d=J[b>>2]+(d<<2)|0;break l}J[c>>2]=J[d>>2]}J[d>>2]=c}J[b+12>>2]=J[b+12>>2]+1;b=1}H[a+4|0]=b;J[a>>2]=c}function bl(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;J[a+8>>2]=e;J[a- -64>>2]=f;o=a+32|0;f=J[o>>2];g=J[a+36>>2]-f>>2;a:{if(g>>>0>>0){Fa(o,e-g|0);break a}if(e>>>0>=g>>>0){break a}J[a+36>>2]=f+(e<<2)}b:{if(!d){break b}f=J[b>>2];c:{if((d|0)<2){d=f;break c}h=1;g=d-1|0;n=g&1;d:{if((d|0)==2){d=f;break d}q=g&-2;g=0;d=f;while(1){j=(h<<2)+b|0;k=J[j+4>>2];l=J[j>>2];i=(l|0)<(d|0);d=i?l:d;j=(d|0)>(k|0);d=j?k:d;f=i?f:(f|0)<(l|0)?l:f;f=j?f:(f|0)<(k|0)?k:f;h=h+2|0;g=g+2|0;if((q|0)!=(g|0)){continue}break}}if(!n){break c}h=J[(h<<2)+b>>2];g=(h|0)<(d|0);d=g?h:d;f=g?f:(f|0)<(h|0)?h:f}J[a+16>>2]=f;J[a+12>>2]=d;g=f-d|0;f=(f>>31)-((d>>31)+(d>>>0>f>>>0)|0)|0;d=g;if(!f&d>>>0>2147483646|f){break b}f=d+1|0;J[a+20>>2]=f;d=f>>>1|0;J[a+24>>2]=d;J[a+28>>2]=0-d;if(f&1){break b}J[a+24>>2]=d-1}r=1;e:{d=J[a+56>>2];d=J[d+4>>2]-J[d>>2]|0;if((d|0)>=4){t=a+60|0;q=a+68|0;n=d>>>2|0;while(1){d=J[a+56>>2];f=J[d>>2];i=n-1|0;if(i>>>0>=J[d+4>>2]-f>>2>>>0){break e}r=qh(t,J[f+(i<<2)>>2],b,i);if(!r){return 0}f=J[a+8>>2];if((f|0)>0){d=P(e,i)<<2;k=d+c|0;l=b+d|0;j=J[o>>2];p=0;g=q;while(1){h=j;if((f|0)>0){h=J[o>>2];f=0;while(1){m=f<<2;s=J[m+g>>2];d=J[a+16>>2];f:{if((s|0)>(d|0)){J[h+m>>2]=d;break f}m=h+m|0;d=J[a+12>>2];if((d|0)>(s|0)){J[m>>2]=d;break f}J[m>>2]=s}f=f+1|0;if((f|0)>2]){continue}break}}f=p<<2;d=f+k|0;f=J[f+l>>2]-J[f+h>>2]|0;J[d>>2]=f;g:{if((f|0)>2]){f=f+J[a+20>>2]|0}else{if((f|0)<=J[a+24>>2]){break g}f=f-J[a+20>>2]|0}J[d>>2]=f}g=h;f=J[a+8>>2];p=p+1|0;if((f|0)>(p|0)){continue}break}}d=(n|0)>1;n=i;if(d){continue}break}}return r|0}ra();B()}function Tk(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;J[a+8>>2]=e;J[a- -64>>2]=f;o=a+32|0;f=J[o>>2];g=J[a+36>>2]-f>>2;a:{if(g>>>0>>0){Fa(o,e-g|0);break a}if(e>>>0>=g>>>0){break a}J[a+36>>2]=f+(e<<2)}b:{if(!d){break b}f=J[b>>2];c:{if((d|0)<2){d=f;break c}h=1;g=d-1|0;n=g&1;d:{if((d|0)==2){d=f;break d}q=g&-2;g=0;d=f;while(1){j=(h<<2)+b|0;k=J[j+4>>2];l=J[j>>2];i=(l|0)<(d|0);d=i?l:d;j=(d|0)>(k|0);d=j?k:d;f=i?f:(f|0)<(l|0)?l:f;f=j?f:(f|0)<(k|0)?k:f;h=h+2|0;g=g+2|0;if((q|0)!=(g|0)){continue}break}}if(!n){break c}h=J[(h<<2)+b>>2];g=(h|0)<(d|0);d=g?h:d;f=g?f:(f|0)<(h|0)?h:f}J[a+16>>2]=f;J[a+12>>2]=d;g=f-d|0;f=(f>>31)-((d>>31)+(d>>>0>f>>>0)|0)|0;d=g;if(!f&d>>>0>2147483646|f){break b}f=d+1|0;J[a+20>>2]=f;d=f>>>1|0;J[a+24>>2]=d;J[a+28>>2]=0-d;if(f&1){break b}J[a+24>>2]=d-1}r=1;e:{d=J[a+56>>2];d=J[d+4>>2]-J[d>>2]|0;if((d|0)>=4){t=a+60|0;q=a+68|0;n=d>>>2|0;while(1){d=J[a+56>>2];f=J[d>>2];i=n-1|0;if(i>>>0>=J[d+4>>2]-f>>2>>>0){break e}r=lh(t,J[f+(i<<2)>>2],b,i);if(!r){return 0}f=J[a+8>>2];if((f|0)>0){d=P(e,i)<<2;k=d+c|0;l=b+d|0;j=J[o>>2];p=0;g=q;while(1){h=j;if((f|0)>0){h=J[o>>2];f=0;while(1){m=f<<2;s=J[m+g>>2];d=J[a+16>>2];f:{if((s|0)>(d|0)){J[h+m>>2]=d;break f}m=h+m|0;d=J[a+12>>2];if((d|0)>(s|0)){J[m>>2]=d;break f}J[m>>2]=s}f=f+1|0;if((f|0)>2]){continue}break}}f=p<<2;d=f+k|0;f=J[f+l>>2]-J[f+h>>2]|0;J[d>>2]=f;g:{if((f|0)>2]){f=f+J[a+20>>2]|0}else{if((f|0)<=J[a+24>>2]){break g}f=f-J[a+20>>2]|0}J[d>>2]=f}g=h;f=J[a+8>>2];p=p+1|0;if((f|0)>(p|0)){continue}break}}d=(n|0)>1;n=i;if(d){continue}break}}return r|0}ra();B()}function bg(a,b,c,d){var e=0,f=0,g=0,h=0,i=Q(0),j=0,k=Q(0);h=J[c>>2];a:{b:{e=J[b+4>>2];if(!e){break b}g=Kl(e);c:{if(g>>>0>=2){f=h;if(f>>>0>=e>>>0){f=(h>>>0)%(e>>>0)|0}c=J[J[b>>2]+(f<<2)>>2];if(!c){break b}if(g>>>0<=1){break c}while(1){c=J[c>>2];if(!c){break b}g=J[c+4>>2];if((g|0)!=(h|0)){if(e>>>0<=g>>>0){g=(g>>>0)%(e>>>0)|0}if((f|0)!=(g|0)){break b}}if(J[c+8>>2]!=(h|0)){continue}break}b=0;break a}f=e-1&h;c=J[J[b>>2]+(f<<2)>>2];if(!c){break b}}g=e-1|0;while(1){c=J[c>>2];if(!c){break b}j=J[c+4>>2];if((j|0)!=(h|0)&(g&j)!=(f|0)){break b}if(J[c+8>>2]!=(h|0)){continue}break}b=0;break a}c=oa(16);d=J[J[d>>2]>>2];J[c+12>>2]=0;J[c+8>>2]=d;J[c+4>>2]=h;J[c>>2]=0;k=Q(J[b+12>>2]+1>>>0);i=N[b+16>>2];d:{if(k>Q(i*Q(e>>>0))?0:e){break d}f=2;g=(e-1&e)!=0|e>>>0<3|e<<1;i=Q(W(Q(k/i)));e:{if(i=Q(0)){d=~~i>>>0;break e}d=0}d=d>>>0>>0?g:d;f:{if((d|0)==1){break f}if(!(d&d-1)){f=d;break f}f=Ha(d);e=J[b+4>>2]}g:{if(e>>>0>=f>>>0){if(e>>>0<=f>>>0){break g}g=e>>>0<3;i=Q(W(Q(Q(M[b+12>>2])/N[b+16>>2])));h:{if(i=Q(0)){d=~~i>>>0;break h}d=0}i:{j:{if(g){break j}if(Kl(e)>>>0>1){break j}d=d>>>0<2?d:1<<32-S(d-1|0);break i}d=Ha(d)}f=d>>>0>>0?f:d;if(f>>>0>=e>>>0){break g}}db(b,f)}e=J[b+4>>2];d=e-1|0;if(!(d&e)){f=d&h;break d}if(e>>>0>h>>>0){f=h;break d}f=(h>>>0)%(e>>>0)|0}f=J[b>>2]+(f<<2)|0;d=J[f>>2];k:{l:{if(!d){d=b+8|0;J[c>>2]=J[d>>2];J[b+8>>2]=c;J[f>>2]=d;d=J[c>>2];if(!d){break k}d=J[d+4>>2];f=e-1|0;m:{if(!(f&e)){d=d&f;break m}if(d>>>0>>0){break m}d=(d>>>0)%(e>>>0)|0}d=J[b>>2]+(d<<2)|0;break l}J[c>>2]=J[d>>2]}J[d>>2]=c}J[b+12>>2]=J[b+12>>2]+1;b=1}H[a+4|0]=b;J[a>>2]=c}function Ik(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;d=ba-32|0;ba=d;p=e<<2;f=e>>>0>1073741823?-1:p;l=pa(oa(f),0,f);f=J[a+40>>2];f=J[f+4>>2]-J[f>>2]|0;if((f|0)>=5){q=J[a+36>>2];n=J[a+32>>2];r=e&-2;s=e&1;t=a+8|0;f=f>>>2|0;while(1){j=J[a+40>>2];g=J[j>>2];a:{b:{h=J[j+4>>2]-g>>2;j=f-1|0;if(h>>>0>j>>>0){u=P(e,j);g=J[g+(j<<2)>>2];if((g|0)==-1|J[J[n>>2]+(g>>>3&536870908)>>2]>>>g&1){break b}g=J[J[J[n+64>>2]+12>>2]+(g<<2)>>2];if((g|0)==-1){break b}k=J[q>>2];h=J[n+28>>2];m=J[k+(J[h+(g<<2)>>2]<<2)>>2];if((m|0)>=(j|0)){break b}i=g+1|0;i=J[k+(J[h+(((i>>>0)%3|0?i:g-2|0)<<2)>>2]<<2)>>2];if((i|0)>=(j|0)){break b}g=J[k+(J[h+(g+((g>>>0)%3|0?-1:2)<<2)>>2]<<2)>>2];if((g|0)>=(j|0)){break b}c:{if((e|0)<=0){break c}h=P(e,g);k=P(e,i);m=P(e,m);g=0;o=0;if((e|0)!=1){while(1){J[(g<<2)+l>>2]=(J[(g+h<<2)+b>>2]+J[(g+k<<2)+b>>2]|0)-J[(g+m<<2)+b>>2];i=g|1;J[(i<<2)+l>>2]=(J[(h+i<<2)+b>>2]+J[(i+k<<2)+b>>2]|0)-J[(i+m<<2)+b>>2];g=g+2|0;o=o+2|0;if((r|0)!=(o|0)){continue}break}}if(!s){break c}J[(g<<2)+l>>2]=(J[(g+h<<2)+b>>2]+J[(g+k<<2)+b>>2]|0)-J[(g+m<<2)+b>>2]}g=J[l>>2];h=J[l+4>>2];break a}ra();B()}h=(P(f-2|0,e)<<2)+b|0;g=J[h>>2];h=J[h+4>>2]}k=u<<2;m=k+b|0;i=J[m+4>>2];J[d+16>>2]=J[m>>2];J[d+20>>2]=i;J[d+8>>2]=g;J[d+12>>2]=h;Ya(d+24|0,t,d+16|0,d+8|0);g=c+k|0;J[g>>2]=J[d+24>>2];J[g+4>>2]=J[d+28>>2];g=(f|0)>2;f=j;if(g){continue}break}}if((e|0)>0){pa(l,0,p)}e=J[l>>2];f=J[l+4>>2];g=J[b+4>>2];J[d+16>>2]=J[b>>2];J[d+20>>2]=g;J[d+8>>2]=e;J[d+12>>2]=f;Ya(d+24|0,a+8|0,d+16|0,d+8|0);J[c>>2]=J[d+24>>2];J[c+4>>2]=J[d+28>>2];na(l);ba=d+32|0;return 1}function ya(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;g=ba-32|0;ba=g;e=J[a>>2];d=J[e>>2];c=J[e+4>>2];k=+(d>>>0)+ +(c>>>0)*4294967296;c=J[e+12>>2]+c|0;i=d;d=J[e+8>>2];e=i+d|0;c=e>>>0>>0?c+1|0:c;i=e;e=!(c|e);k=k/(+((e?1:i)>>>0)+ +((e?0:c)>>>0)*4294967296)*256+.5;a:{if(k<4294967296&k>=0){c=~~k>>>0;break a}c=0}c=c>>>0>=255?255:c;l=!c+c|0;H[g+23|0]=l;j=J[a+16>>2];p=J[a+12>>2];J[g+16>>2]=0;J[g+8>>2]=0;J[g+12>>2]=0;b:{c:{c=(j-p<<1)- -64|0;if(c){if((c|0)<0){break c}h=oa(c);pa(h,0,c)}c=J[a+28>>2]-1|0;if((c|0)<0){d=4096;break b}m=0-l|0;q=m&255;i=J[a+24>>2];d=4096;while(1){n=i&1<>>0<=d>>>0){H[f+h|0]=d;f=f+1|0;d=d>>>8|0}o=(e<<3)+12784|0;Hl(J[o>>2],0,d,0);d=((n?0:q)+d|0)+P(256-e|0,ca+d>>>J[o+4>>2]|0)|0;c=c-1|0;if((c|0)>=0){continue}break}break b}qa();B()}if((j|0)!=(p|0)){m=0-l|0;q=m&255;while(1){j=j-4|0;i=J[j>>2];c=31;while(1){e=c;n=i&1<>>0<=d>>>0){H[f+h|0]=d;f=f+1|0;d=d>>>8|0}o=(c<<3)+12784|0;Hl(J[o>>2],0,d,0);d=((n?0:q)+d|0)+P(256-c|0,ca+d>>>J[o+4>>2]|0)|0;c=e-1|0;if(e){continue}break}if((j|0)!=(p|0)){continue}break}}c=d-4096|0;d:{if(c>>>0<=63){H[f+h|0]=d;f=f+1|0;break d}if(c>>>0<=16383){c=f+h|0;H[c|0]=d;H[c+1|0]=d+12288>>>8;f=f+2|0;break d}if(c>>>0>4194303){break d}c=f+h|0;H[c|0]=d;e=d+8384512|0;H[c+2|0]=e>>>16;H[c+1|0]=e>>>8;f=f+3|0}c=J[b+20>>2];if(!J[b+16>>2]&(c|0)<=0|(c|0)<0){sa(b,J[b+4>>2],g+23|0,g+24|0)}Aa(f,b);c=J[b+20>>2];if(!J[b+16>>2]&(c|0)<=0|(c|0)<0){sa(b,J[b+4>>2],h,f+h|0)}J[g+24>>2]=0;J[g+28>>2]=0;ie(a,g+24|0);J[a+24>>2]=0;J[a+28>>2]=0;J[a+16>>2]=J[a+12>>2];if(h){na(h)}ba=g+32|0}function he(a){var b=0,c=0,d=0,e=0;d=ba-16|0;ba=d;J[a+4>>2]=0;J[a+8>>2]=0;c=a+16|0;b=c;J[b>>2]=0;J[b+4>>2]=0;J[a>>2]=a+4;b=a+28|0;J[b>>2]=0;J[b+4>>2]=0;J[a+12>>2]=c;J[a+24>>2]=b;b=oa(32);J[d>>2]=b;J[d+4>>2]=20;J[d+8>>2]=-2147483616;c=K[1359]|K[1360]<<8|(K[1361]<<16|K[1362]<<24);H[b+16|0]=c;H[b+17|0]=c>>>8;H[b+18|0]=c>>>16;H[b+19|0]=c>>>24;c=K[1355]|K[1356]<<8|(K[1357]<<16|K[1358]<<24);e=K[1351]|K[1352]<<8|(K[1353]<<16|K[1354]<<24);H[b+8|0]=e;H[b+9|0]=e>>>8;H[b+10|0]=e>>>16;H[b+11|0]=e>>>24;H[b+12|0]=c;H[b+13|0]=c>>>8;H[b+14|0]=c>>>16;H[b+15|0]=c>>>24;c=K[1347]|K[1348]<<8|(K[1349]<<16|K[1350]<<24);e=K[1343]|K[1344]<<8|(K[1345]<<16|K[1346]<<24);H[b|0]=e;H[b+1|0]=e>>>8;H[b+2|0]=e>>>16;H[b+3|0]=e>>>24;H[b+4|0]=c;H[b+5|0]=c>>>8;H[b+6|0]=c>>>16;H[b+7|0]=c>>>24;H[b+20|0]=0;e=a+24|0;vb(e,d,1);if(H[d+11|0]<0){na(J[d>>2])}a=oa(32);J[d>>2]=a;J[d+4>>2]=22;J[d+8>>2]=-2147483616;b=K[1338]|K[1339]<<8|(K[1340]<<16|K[1341]<<24);c=K[1334]|K[1335]<<8|(K[1336]<<16|K[1337]<<24);H[a+14|0]=c;H[a+15|0]=c>>>8;H[a+16|0]=c>>>16;H[a+17|0]=c>>>24;H[a+18|0]=b;H[a+19|0]=b>>>8;H[a+20|0]=b>>>16;H[a+21|0]=b>>>24;b=K[1332]|K[1333]<<8|(K[1334]<<16|K[1335]<<24);c=K[1328]|K[1329]<<8|(K[1330]<<16|K[1331]<<24);H[a+8|0]=c;H[a+9|0]=c>>>8;H[a+10|0]=c>>>16;H[a+11|0]=c>>>24;H[a+12|0]=b;H[a+13|0]=b>>>8;H[a+14|0]=b>>>16;H[a+15|0]=b>>>24;b=K[1324]|K[1325]<<8|(K[1326]<<16|K[1327]<<24);c=K[1320]|K[1321]<<8|(K[1322]<<16|K[1323]<<24);H[a|0]=c;H[a+1|0]=c>>>8;H[a+2|0]=c>>>16;H[a+3|0]=c>>>24;H[a+4|0]=b;H[a+5|0]=b>>>8;H[a+6|0]=b>>>16;H[a+7|0]=b>>>24;H[a+22|0]=0;vb(e,d,1);if(H[d+11|0]<0){na(J[d>>2])}ba=d+16|0}function of(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;f=J[a+8>>2];e=J[a+4>>2];if((f-e|0)/12>>>0>=b>>>0){a:{if(!b){break a}d=e;g=P(b,12)-12|0;h=((g>>>0)/12|0)+1&3;if(h){while(1){f=J[c+4>>2];J[d>>2]=J[c>>2];J[d+4>>2]=f;J[d+8>>2]=J[c+8>>2];d=d+12|0;j=j+1|0;if((h|0)!=(j|0)){continue}break}}e=P(b,12)+e|0;if(g>>>0<36){break a}while(1){b=J[c+4>>2];J[d>>2]=J[c>>2];J[d+4>>2]=b;J[d+8>>2]=J[c+8>>2];J[d+20>>2]=J[c+8>>2];b=J[c+4>>2];J[d+12>>2]=J[c>>2];J[d+16>>2]=b;J[d+32>>2]=J[c+8>>2];b=J[c+4>>2];J[d+24>>2]=J[c>>2];J[d+28>>2]=b;b=J[c+4>>2];J[d+36>>2]=J[c>>2];J[d+40>>2]=b;J[d+44>>2]=J[c+8>>2];d=d+48|0;if((e|0)!=(d|0)){continue}break}}J[a+4>>2]=e;return}b:{d=J[a>>2];h=(e-d|0)/12|0;g=h+b|0;if(g>>>0<357913942){f=(f-d|0)/12|0;d=f<<1;k=f>>>0>=178956970?357913941:d>>>0>g>>>0?d:g;if(k){if(k>>>0>=357913942){break b}l=oa(P(k,12))}i=P(h,12)+l|0;d=i;g=P(b,12);h=g-12|0;f=((h>>>0)/12|0)+1&3;if(f){while(1){b=J[c+4>>2];J[d>>2]=J[c>>2];J[d+4>>2]=b;J[d+8>>2]=J[c+8>>2];d=d+12|0;j=j+1|0;if((f|0)!=(j|0)){continue}break}}f=g+i|0;if(h>>>0>=36){while(1){b=J[c+4>>2];J[d>>2]=J[c>>2];J[d+4>>2]=b;J[d+8>>2]=J[c+8>>2];J[d+20>>2]=J[c+8>>2];b=J[c+4>>2];J[d+12>>2]=J[c>>2];J[d+16>>2]=b;J[d+32>>2]=J[c+8>>2];b=J[c+4>>2];J[d+24>>2]=J[c>>2];J[d+28>>2]=b;b=J[c+4>>2];J[d+36>>2]=J[c>>2];J[d+40>>2]=b;J[d+44>>2]=J[c+8>>2];d=d+48|0;if((f|0)!=(d|0)){continue}break}}c=J[a>>2];if((c|0)!=(e|0)){while(1){e=e-12|0;b=J[e+4>>2];i=i-12|0;d=i;J[d>>2]=J[e>>2];J[d+4>>2]=b;J[d+8>>2]=J[e+8>>2];if((c|0)!=(e|0)){continue}break}e=J[a>>2]}J[a+8>>2]=P(k,12)+l;J[a+4>>2]=f;J[a>>2]=i;if(e){na(e)}return}qa();B()}xa();B()}function ng(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;c=ba-112|0;ba=c;d=oa(120);i=J[a+8>>2];J[d+12>>2]=0;J[d+16>>2]=0;J[d>>2]=11224;J[d+4>>2]=0;J[d+20>>2]=0;J[d+24>>2]=0;J[d+28>>2]=0;J[d+32>>2]=0;J[d+36>>2]=0;J[d+40>>2]=0;J[d+44>>2]=0;J[d+48>>2]=0;J[d+52>>2]=0;J[d+56>>2]=0;J[d+60>>2]=0;J[d+8>>2]=11436;e=d- -64|0;J[e>>2]=0;J[e+4>>2]=0;J[d+72>>2]=0;J[d+76>>2]=0;J[d+80>>2]=0;J[d+84>>2]=0;J[d+88>>2]=0;J[d+116>>2]=0;J[d+112>>2]=b;J[d+108>>2]=i;J[d+104>>2]=0;J[d+96>>2]=0;J[d+100>>2]=0;g=J[a+12>>2];J[c+48>>2]=0;J[c+52>>2]=0;J[c+40>>2]=0;J[c+44>>2]=0;f=c+32|0;e=f;J[e>>2]=0;J[e+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;e=c- -64|0;J[e>>2]=0;J[e+4>>2]=0;J[c+72>>2]=0;J[c+76>>2]=0;J[c+80>>2]=0;J[c+84>>2]=0;J[c+88>>2]=0;J[c+104>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+56>>2]=0;J[c+60>>2]=0;J[c+8>>2]=11436;J[c+96>>2]=0;J[c+100>>2]=0;J[c+12>>2]=g;h=J[g>>2];e=J[g+4>>2];H[c+111|0]=0;j=f;f=c+111|0;Na(j,(e-h>>2>>>0)/3|0,f);e=J[c+12>>2];h=J[e+28>>2];e=J[e+24>>2];H[c+111|0]=0;Na(c+44|0,h-e>>2,f);J[c+28>>2]=d;J[c+24>>2]=i;J[c+20>>2]=b;J[c+16>>2]=g;J[d+116>>2]=a+72;a=d+8|0;b=c+8|0;Kc(a,b);a:{if((a|0)==(b|0)){J[d+92>>2]=J[b+84>>2];break a}Rb(d+56|0,J[b+48>>2],J[b+52>>2]);Rb(d+68|0,J[b+60>>2],J[b- -64>>2]);Rb(d+80|0,J[b+72>>2],J[b+76>>2]);J[d+92>>2]=J[b+84>>2];bb(d+96|0,J[b+88>>2],J[b+92>>2])}J[c+8>>2]=11436;a=J[c+96>>2];if(a){J[c+100>>2]=a;na(a)}a=J[c+80>>2];if(a){J[c+84>>2]=a;na(a)}a=J[c+68>>2];if(a){J[c+72>>2]=a;na(a)}a=J[c+56>>2];if(a){J[c+60>>2]=a;na(a)}J[c+8>>2]=11672;a=J[c+44>>2];if(a){na(a)}a=J[c+32>>2];if(a){na(a)}ba=c+112|0;return d}function vb(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;g=ba-48|0;ba=g;f=ba-32|0;ba=f;h=f+21|0;d=h;l=f+32|0;e=l;if(!((d|0)==(e|0)|(c|0)>=0)){H[d|0]=45;d=d+1|0;c=0-c|0}i=e-d|0;a:{if((i|0)<=9){j=P(32-S(c|1)|0,1233)>>12;k=61;if((i|0)<((M[(j<<2)+18192>>2]<=c>>>0)+j|0)){break a}}b:{if(c>>>0<=999999){if(c>>>0<=9999){if(c>>>0<=99){if(c>>>0<=9){H[d|0]=c+48;e=d+1|0;break b}e=Fb(d,c);break b}if(c>>>0<=999){e=(c>>>0)/100|0;H[d|0]=e+48;e=Fb(d+1|0,c-P(e,100)|0);break b}e=fd(d,c);break b}if(c>>>0<=99999){e=(c>>>0)/1e4|0;H[d|0]=e+48;e=fd(d+1|0,c-P(e,1e4)|0);break b}e=ed(d,c);break b}if(c>>>0<=99999999){if(c>>>0<=9999999){e=(c>>>0)/1e6|0;H[d|0]=e+48;e=ed(d+1|0,c-P(e,1e6)|0);break b}e=dd(d,c);break b}if(c>>>0<=999999999){e=(c>>>0)/1e8|0;H[d|0]=e+48;e=dd(d+1|0,c-P(e,1e8)|0);break b}e=d;d=(c>>>0)/1e8|0;e=dd(Fb(e,d),c-P(d,1e8)|0)}k=0}J[f+12>>2]=k;J[f+8>>2]=e;j=ba-16|0;ba=j;e=ba-16|0;ba=e;c=g+8|0;c:{i=J[f+8>>2];f=i-h|0;if(f>>>0<=2147483631){d:{if(f>>>0<11){H[c+11|0]=f|K[c+11|0]&128;H[c+11|0]=K[c+11|0]&127;d=c;break d}k=e+8|0;if(f>>>0>=11){m=f+16&-16;d=m-1|0;d=(d|0)==11?m:d}else{d=10}Ac(k,d+1|0);d=J[e+8>>2];J[c>>2]=d;J[c+8>>2]=J[c+8>>2]&-2147483648|J[e+12>>2]&2147483647;J[c+8>>2]=J[c+8>>2]|-2147483648;J[c+4>>2]=f}while(1){if((h|0)!=(i|0)){H[d|0]=K[h|0];d=d+1|0;h=h+1|0;continue}break}H[e+7|0]=0;H[d|0]=K[e+7|0];ba=e+16|0;break c}gb();B()}ba=j+16|0;ba=l;J[g+32>>2]=b;ge(g+40|0,a,b,g+32|0);a=J[g+40>>2];if(H[a+39|0]<0){na(J[a+28>>2])}b=J[g+12>>2];J[a+28>>2]=J[g+8>>2];J[a+32>>2]=b;J[a+36>>2]=J[g+16>>2];ba=g+48|0}function df(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=Q(0);a:{b:{c:{d:{d=2;e:{if((b|0)==1){break e}d=b;if(!(b-1&b)){break e}d=Ha(b)}b=J[a+4>>2];if(d>>>0<=b>>>0){if(b>>>0<=d>>>0){break a}e=b>>>0<3;i=Q(W(Q(Q(M[a+12>>2])/N[a+20>>2])));f:{if(i=Q(0)){c=~~i>>>0;break f}c=0}g:{h:{if(e){break h}if(Kl(b)>>>0>1){break h}c=c>>>0<2?c:1<<32-S(c-1|0);break g}c=Ha(c)}d=c>>>0>>0?d:c;if(b>>>0<=d>>>0){break a}if(!d){break d}}if(d>>>0>=1073741824){break c}c=oa(d<<2);b=J[a>>2];J[a>>2]=c;if(b){na(b)}J[a+4>>2]=d;e=0;b=0;if(d-1>>>0>=3){g=d&-4;while(1){c=b<<2;J[c+J[a>>2]>>2]=0;J[J[a>>2]+(c|4)>>2]=0;J[J[a>>2]+(c|8)>>2]=0;J[J[a>>2]+(c|12)>>2]=0;b=b+4|0;f=f+4|0;if((g|0)!=(f|0)){continue}break}}c=d&3;if(c){while(1){J[J[a>>2]+(b<<2)>>2]=0;b=b+1|0;e=e+1|0;if((c|0)!=(e|0)){continue}break}}b=J[a+8>>2];if(!b){break a}c=a+8|0;f=J[b+4>>2];e=d-1|0;if(!(e&d)){break b}f=d>>>0<=f>>>0?(f>>>0)%(d>>>0)|0:f;J[J[a>>2]+(f<<2)>>2]=c;while(1){c=J[b>>2];if(!c){break a}e=J[c+4>>2];if(e>>>0>=d>>>0){e=(e>>>0)%(d>>>0)|0}if((e|0)==(f|0)){b=c;continue}g=e<<2;h=g+J[a>>2]|0;if(J[h>>2]){J[b>>2]=J[c>>2];J[c>>2]=J[J[g+J[a>>2]>>2]>>2];J[J[g+J[a>>2]>>2]>>2]=c}else{J[h>>2]=b;b=c;f=e}continue}}b=J[a>>2];J[a>>2]=0;if(b){na(b)}J[a+4>>2]=0;break a}xa();B()}f=e&f;J[J[a>>2]+(f<<2)>>2]=c;while(1){c=J[b>>2];if(!c){break a}d=e&J[c+4>>2];if((d|0)==(f|0)){b=c;continue}g=d<<2;h=g+J[a>>2]|0;if(J[h>>2]){J[b>>2]=J[c>>2];J[c>>2]=J[J[g+J[a>>2]>>2]>>2];J[J[g+J[a>>2]>>2]>>2]=c}else{J[h>>2]=b;b=c;f=d}continue}}}function Be(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;h=ba-32|0;ba=h;e=a+4|0;a=ob(a,b);a:{if((e|0)==(a|0)){break a}b:{if(H[a+39|0]>=0){J[h+24>>2]=J[a+36>>2];b=J[a+32>>2];J[h+16>>2]=J[a+28>>2];J[h+20>>2]=b;break b}Ga(h+16|0,J[a+28>>2],J[a+32>>2])}b=K[h+27|0];a=b<<24>>24;if(!(!((a|0)<0?J[h+20>>2]:b)|(c|0)<=0)){b=0;a=(a|0)<0?J[h+16>>2]:h+16|0;while(1){c:{l=ba-16|0;ba=l;Xe(l,a,h+12|0,0);j=J[l>>2];k=J[l+4>>2];i=ba-32|0;ba=i;n=J[l+12>>2];g=n&2147483647;e=g-1065418752|0;m=g-1082064896|0;f=J[l+8>>2];d:{if((e|0)==(m|0)&f>>>0>>0|e>>>0>>0){g=(n&33554431)<<7|f>>>25;e=0;m=e;f=f&33554431;if(!(!e&(f|0)==16777216?!(j|k):!e&f>>>0<16777216)){e=g+1073741825|0;break d}e=g+1073741824|0;if(f^16777216|j|(k|m)){break d}e=(g&1)+e|0;break d}if(!(!f&(g|0)==2147418112?!(j|k):g>>>0<2147418112)){e=((n&33554431)<<7|f>>>25)&4194303|2143289344;break d}e=2139095040;if(g>>>0>1082064895){break d}e=0;g=g>>>16|0;if(g>>>0<16145){break d}e=n&65535|65536;Pa(i+16|0,j,k,f,e,g-16129|0);Gb(i,j,k,f,e,16257-g|0);f=J[i+8>>2];e=(J[i+12>>2]&33554431)<<7|f>>>25;g=J[i>>2]|(J[i+16>>2]|J[i+24>>2]|(J[i+20>>2]|J[i+28>>2]))!=0;k=J[i+4>>2];j=0;f=f&33554431;if(!(!j&(f|0)==16777216?!(g|k):!j&f>>>0<16777216)){e=e+1|0;break d}if(f^16777216|g|(j|k)){break d}e=(e&1)+e|0}ba=i+32|0;ba=l+16|0;m=a;a=J[h+12>>2];if((m|0)==(a|0)){break c}J[(b<<2)+d>>2]=n&-2147483648|e;b=b+1|0;if((c|0)!=(b|0)){continue}}break}a=K[h+27|0]}if(a<<24>>24>=0){break a}na(J[h+16>>2])}ba=h+32|0}function bh(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;f=J[b+48>>2];d=ba-32|0;ba=d;J[d+28>>2]=a;a=0;a:{if((cb(f)|0)>9){break a}if((da[J[J[b>>2]+8>>2]](b)|0)!=1){break a}a=oa(32);J[d+16>>2]=a;J[d+20>>2]=17;J[d+24>>2]=-2147483616;H[a+16|0]=K[1261];e=K[1257]|K[1258]<<8|(K[1259]<<16|K[1260]<<24);c=K[1253]|K[1254]<<8|(K[1255]<<16|K[1256]<<24);H[a+8|0]=c;H[a+9|0]=c>>>8;H[a+10|0]=c>>>16;H[a+11|0]=c>>>24;H[a+12|0]=e;H[a+13|0]=e>>>8;H[a+14|0]=e>>>16;H[a+15|0]=e>>>24;e=K[1249]|K[1250]<<8|(K[1251]<<16|K[1252]<<24);c=K[1245]|K[1246]<<8|(K[1247]<<16|K[1248]<<24);H[a|0]=c;H[a+1|0]=c>>>8;H[a+2|0]=c>>>16;H[a+3|0]=c>>>24;H[a+4|0]=e;H[a+5|0]=e>>>8;H[a+6|0]=e>>>16;H[a+7|0]=e>>>24;H[a+17|0]=0;a=jb(f,d+28|0,d+16|0,-1);if(H[d+27|0]<0){na(J[d+16>>2])}c=J[b+4>>2];e=J[J[c+8>>2]+(J[d+28>>2]<<2)>>2];b:{if((a|0)==-1|J[e+56>>2]!=3|K[e+24|0]!=2){break b}c=rd(c);if(!c){break b}c=J[c+28>>2];if(!(2558>>>c&c>>>0<12)){h=d,i=Nb(J[b+4>>2],0),J[h+12>>2]=i;c=Pc(d+16|0,1245);g=jb(f,d+12|0,c,-1);if(H[c+11|0]<0){na(J[c>>2])}if((a+(g<<1)|0)>63|g-1>>>0>20){break b}}a=5;if((cb(f)|0)<4){break a}}a=J[e+56>>2];e=cb(f);if((a|0)==1){c:{if((e|0)>3){break c}h=d,i=Nb(J[b+4>>2],0),J[h+12>>2]=i;a=rd(J[b+4>>2]);if(!a){break c}a=J[a+28>>2];if(2558>>>a&a>>>0<12){a=6;break a}a=Pc(d+16|0,1245);b=jb(f,d+12|0,a,-1);if(H[a+11|0]<0){na(J[a>>2])}a=6;if((b|0)>0){break a}}a=0;break a}a=0;if((e|0)>7){break a}a=1;if((cb(f)|0)>1){break a}a=M[J[b+4>>2]+80>>2]<40?1:4}ba=d+32|0;return a}function hc(a,b,c,d,e,f){var g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;e=b-4|0;b=J[e>>2];if(d>>>0<=b>>>0){break c}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break c}if(M[c+(b<<3)>>2]>=M[c+(d<<3)>>2]){break a}J[a>>2]=b;J[e>>2]=d;break a;case 0:case 1:break a;default:break d}}if((d|0)>128){break b}if((a|0)==(b|0)){break a}d=a+4|0;if((d|0)==(b|0)){break a}i=J[c>>2];while(1){f=J[d>>2];e:{e=a;if((e|0)==(d|0)){break e}f:{h=J[i>>2];j=J[i+4>>2]-h>>3;if(j>>>0<=f>>>0){break f}k=h+(f<<3)|0;e=d;while(1){c=e-4|0;g=J[c>>2];if(g>>>0>=j>>>0){break f}if(M[k>>2]>=M[h+(g<<3)>>2]){break e}J[e>>2]=g;e=c;if((e|0)!=(a|0)){continue}break}e=a;break e}ra();B()}J[e>>2]=f;d=d+4|0;if((d|0)!=(b|0)){continue}break}break a}ra();B()}h=d>>>1|0;g=d-h|0;j=h<<2;i=j+a|0;g:{h:{if((d|0)<=(f|0)){Ig(a,i,c,h,e);f=b;b=e+j|0;Ig(i,f,c,g,b);f=(d<<2)+e|0;c=J[c>>2];d=b;while(1){if((d|0)==(f|0)){if((b|0)==(e|0)){break a}while(1){J[a>>2]=J[e>>2];a=a+4|0;e=e+4|0;if((b|0)!=(e|0)){continue}break}break a}i=J[c>>2];g=J[c+4>>2]-i>>3;h=J[d>>2];if(g>>>0<=h>>>0){break h}k=g;g=J[e>>2];if(k>>>0<=g>>>0){break h}j=g;k=h;h=J[i+(h<<3)>>2];i=J[i+(g<<3)>>2];g=h>>>0>=i>>>0;J[a>>2]=g?j:k;d=((i>>>0>h>>>0)<<2)+d|0;a=a+4|0;e=(g<<2)+e|0;if((b|0)!=(e|0)){continue}break}break g}hc(a,i,c,h,e,f);hc(i,b,c,g,e,f);de(a,i,b,c,h,g,e,f);return}ra();B()}if((d|0)==(f|0)){break a}while(1){J[a>>2]=J[d>>2];a=a+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}}}function gc(a,b,c,d,e,f){var g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;e=b-4|0;b=J[e>>2];if(d>>>0<=b>>>0){break c}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break c}if(M[c+(b<<3)>>2]>=M[c+(d<<3)>>2]){break a}J[a>>2]=b;J[e>>2]=d;break a;case 0:case 1:break a;default:break d}}if((d|0)>128){break b}if((a|0)==(b|0)){break a}d=a+4|0;if((d|0)==(b|0)){break a}i=J[c>>2];while(1){f=J[d>>2];e:{e=a;if((e|0)==(d|0)){break e}f:{h=J[i>>2];j=J[i+4>>2]-h>>3;if(j>>>0<=f>>>0){break f}k=h+(f<<3)|0;e=d;while(1){c=e-4|0;g=J[c>>2];if(g>>>0>=j>>>0){break f}if(M[k>>2]>=M[h+(g<<3)>>2]){break e}J[e>>2]=g;e=c;if((e|0)!=(a|0)){continue}break}e=a;break e}ra();B()}J[e>>2]=f;d=d+4|0;if((d|0)!=(b|0)){continue}break}break a}ra();B()}h=d>>>1|0;g=d-h|0;j=h<<2;i=j+a|0;g:{h:{if((d|0)<=(f|0)){Hg(a,i,c,h,e);f=b;b=e+j|0;Hg(i,f,c,g,b);f=(d<<2)+e|0;c=J[c>>2];d=b;while(1){if((d|0)==(f|0)){if((b|0)==(e|0)){break a}while(1){J[a>>2]=J[e>>2];a=a+4|0;e=e+4|0;if((b|0)!=(e|0)){continue}break}break a}i=J[c>>2];g=J[c+4>>2]-i>>3;h=J[d>>2];if(g>>>0<=h>>>0){break h}k=g;g=J[e>>2];if(k>>>0<=g>>>0){break h}j=g;k=h;h=J[i+(h<<3)>>2];i=J[i+(g<<3)>>2];g=h>>>0>=i>>>0;J[a>>2]=g?j:k;d=((i>>>0>h>>>0)<<2)+d|0;a=a+4|0;e=(g<<2)+e|0;if((b|0)!=(e|0)){continue}break}break g}gc(a,i,c,h,e,f);gc(i,b,c,g,e,f);ce(a,i,b,c,h,g,e,f);return}ra();B()}if((d|0)==(f|0)){break a}while(1){J[a>>2]=J[d>>2];a=a+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}}}function fc(a,b,c,d,e,f){var g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;e=b-4|0;b=J[e>>2];if(d>>>0<=b>>>0){break c}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break c}if(M[c+(b<<3)>>2]>=M[c+(d<<3)>>2]){break a}J[a>>2]=b;J[e>>2]=d;break a;case 0:case 1:break a;default:break d}}if((d|0)>128){break b}if((a|0)==(b|0)){break a}d=a+4|0;if((d|0)==(b|0)){break a}i=J[c>>2];while(1){f=J[d>>2];e:{e=a;if((e|0)==(d|0)){break e}f:{h=J[i>>2];j=J[i+4>>2]-h>>3;if(j>>>0<=f>>>0){break f}k=h+(f<<3)|0;e=d;while(1){c=e-4|0;g=J[c>>2];if(g>>>0>=j>>>0){break f}if(M[k>>2]>=M[h+(g<<3)>>2]){break e}J[e>>2]=g;e=c;if((e|0)!=(a|0)){continue}break}e=a;break e}ra();B()}J[e>>2]=f;d=d+4|0;if((d|0)!=(b|0)){continue}break}break a}ra();B()}h=d>>>1|0;g=d-h|0;j=h<<2;i=j+a|0;g:{h:{if((d|0)<=(f|0)){Gg(a,i,c,h,e);f=b;b=e+j|0;Gg(i,f,c,g,b);f=(d<<2)+e|0;c=J[c>>2];d=b;while(1){if((d|0)==(f|0)){if((b|0)==(e|0)){break a}while(1){J[a>>2]=J[e>>2];a=a+4|0;e=e+4|0;if((b|0)!=(e|0)){continue}break}break a}i=J[c>>2];g=J[c+4>>2]-i>>3;h=J[d>>2];if(g>>>0<=h>>>0){break h}k=g;g=J[e>>2];if(k>>>0<=g>>>0){break h}j=g;k=h;h=J[i+(h<<3)>>2];i=J[i+(g<<3)>>2];g=h>>>0>=i>>>0;J[a>>2]=g?j:k;d=((i>>>0>h>>>0)<<2)+d|0;a=a+4|0;e=(g<<2)+e|0;if((b|0)!=(e|0)){continue}break}break g}fc(a,i,c,h,e,f);fc(i,b,c,g,e,f);be(a,i,b,c,h,g,e,f);return}ra();B()}if((d|0)==(f|0)){break a}while(1){J[a>>2]=J[d>>2];a=a+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}}}function ec(a,b,c,d,e,f){var g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;e=b-4|0;b=J[e>>2];if(d>>>0<=b>>>0){break c}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break c}if(M[c+(b<<3)>>2]>=M[c+(d<<3)>>2]){break a}J[a>>2]=b;J[e>>2]=d;break a;case 0:case 1:break a;default:break d}}if((d|0)>128){break b}if((a|0)==(b|0)){break a}d=a+4|0;if((d|0)==(b|0)){break a}i=J[c>>2];while(1){f=J[d>>2];e:{e=a;if((e|0)==(d|0)){break e}f:{h=J[i>>2];j=J[i+4>>2]-h>>3;if(j>>>0<=f>>>0){break f}k=h+(f<<3)|0;e=d;while(1){c=e-4|0;g=J[c>>2];if(g>>>0>=j>>>0){break f}if(M[k>>2]>=M[h+(g<<3)>>2]){break e}J[e>>2]=g;e=c;if((e|0)!=(a|0)){continue}break}e=a;break e}ra();B()}J[e>>2]=f;d=d+4|0;if((d|0)!=(b|0)){continue}break}break a}ra();B()}h=d>>>1|0;g=d-h|0;j=h<<2;i=j+a|0;g:{h:{if((d|0)<=(f|0)){Fg(a,i,c,h,e);f=b;b=e+j|0;Fg(i,f,c,g,b);f=(d<<2)+e|0;c=J[c>>2];d=b;while(1){if((d|0)==(f|0)){if((b|0)==(e|0)){break a}while(1){J[a>>2]=J[e>>2];a=a+4|0;e=e+4|0;if((b|0)!=(e|0)){continue}break}break a}i=J[c>>2];g=J[c+4>>2]-i>>3;h=J[d>>2];if(g>>>0<=h>>>0){break h}k=g;g=J[e>>2];if(k>>>0<=g>>>0){break h}j=g;k=h;h=J[i+(h<<3)>>2];i=J[i+(g<<3)>>2];g=h>>>0>=i>>>0;J[a>>2]=g?j:k;d=((i>>>0>h>>>0)<<2)+d|0;a=a+4|0;e=(g<<2)+e|0;if((b|0)!=(e|0)){continue}break}break g}ec(a,i,c,h,e,f);ec(i,b,c,g,e,f);ae(a,i,b,c,h,g,e,f);return}ra();B()}if((d|0)==(f|0)){break a}while(1){J[a>>2]=J[d>>2];a=a+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}}}function dc(a,b,c,d,e,f){var g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;e=b-4|0;b=J[e>>2];if(d>>>0<=b>>>0){break c}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break c}if(M[c+(b<<3)>>2]>=M[c+(d<<3)>>2]){break a}J[a>>2]=b;J[e>>2]=d;break a;case 0:case 1:break a;default:break d}}if((d|0)>128){break b}if((a|0)==(b|0)){break a}d=a+4|0;if((d|0)==(b|0)){break a}i=J[c>>2];while(1){f=J[d>>2];e:{e=a;if((e|0)==(d|0)){break e}f:{h=J[i>>2];j=J[i+4>>2]-h>>3;if(j>>>0<=f>>>0){break f}k=h+(f<<3)|0;e=d;while(1){c=e-4|0;g=J[c>>2];if(g>>>0>=j>>>0){break f}if(M[k>>2]>=M[h+(g<<3)>>2]){break e}J[e>>2]=g;e=c;if((e|0)!=(a|0)){continue}break}e=a;break e}ra();B()}J[e>>2]=f;d=d+4|0;if((d|0)!=(b|0)){continue}break}break a}ra();B()}h=d>>>1|0;g=d-h|0;j=h<<2;i=j+a|0;g:{h:{if((d|0)<=(f|0)){Eg(a,i,c,h,e);f=b;b=e+j|0;Eg(i,f,c,g,b);f=(d<<2)+e|0;c=J[c>>2];d=b;while(1){if((d|0)==(f|0)){if((b|0)==(e|0)){break a}while(1){J[a>>2]=J[e>>2];a=a+4|0;e=e+4|0;if((b|0)!=(e|0)){continue}break}break a}i=J[c>>2];g=J[c+4>>2]-i>>3;h=J[d>>2];if(g>>>0<=h>>>0){break h}k=g;g=J[e>>2];if(k>>>0<=g>>>0){break h}j=g;k=h;h=J[i+(h<<3)>>2];i=J[i+(g<<3)>>2];g=h>>>0>=i>>>0;J[a>>2]=g?j:k;d=((i>>>0>h>>>0)<<2)+d|0;a=a+4|0;e=(g<<2)+e|0;if((b|0)!=(e|0)){continue}break}break g}dc(a,i,c,h,e,f);dc(i,b,c,g,e,f);$d(a,i,b,c,h,g,e,f);return}ra();B()}if((d|0)==(f|0)){break a}while(1){J[a>>2]=J[d>>2];a=a+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}}}function cc(a,b,c,d,e,f){var g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;e=b-4|0;b=J[e>>2];if(d>>>0<=b>>>0){break c}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break c}if(M[c+(b<<3)>>2]>=M[c+(d<<3)>>2]){break a}J[a>>2]=b;J[e>>2]=d;break a;case 0:case 1:break a;default:break d}}if((d|0)>128){break b}if((a|0)==(b|0)){break a}d=a+4|0;if((d|0)==(b|0)){break a}i=J[c>>2];while(1){f=J[d>>2];e:{e=a;if((e|0)==(d|0)){break e}f:{h=J[i>>2];j=J[i+4>>2]-h>>3;if(j>>>0<=f>>>0){break f}k=h+(f<<3)|0;e=d;while(1){c=e-4|0;g=J[c>>2];if(g>>>0>=j>>>0){break f}if(M[k>>2]>=M[h+(g<<3)>>2]){break e}J[e>>2]=g;e=c;if((e|0)!=(a|0)){continue}break}e=a;break e}ra();B()}J[e>>2]=f;d=d+4|0;if((d|0)!=(b|0)){continue}break}break a}ra();B()}h=d>>>1|0;g=d-h|0;j=h<<2;i=j+a|0;g:{h:{if((d|0)<=(f|0)){Dg(a,i,c,h,e);f=b;b=e+j|0;Dg(i,f,c,g,b);f=(d<<2)+e|0;c=J[c>>2];d=b;while(1){if((d|0)==(f|0)){if((b|0)==(e|0)){break a}while(1){J[a>>2]=J[e>>2];a=a+4|0;e=e+4|0;if((b|0)!=(e|0)){continue}break}break a}i=J[c>>2];g=J[c+4>>2]-i>>3;h=J[d>>2];if(g>>>0<=h>>>0){break h}k=g;g=J[e>>2];if(k>>>0<=g>>>0){break h}j=g;k=h;h=J[i+(h<<3)>>2];i=J[i+(g<<3)>>2];g=h>>>0>=i>>>0;J[a>>2]=g?j:k;d=((i>>>0>h>>>0)<<2)+d|0;a=a+4|0;e=(g<<2)+e|0;if((b|0)!=(e|0)){continue}break}break g}cc(a,i,c,h,e,f);cc(i,b,c,g,e,f);_d(a,i,b,c,h,g,e,f);return}ra();B()}if((d|0)==(f|0)){break a}while(1){J[a>>2]=J[d>>2];a=a+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}}}function bc(a,b,c,d,e,f){var g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;e=b-4|0;b=J[e>>2];if(d>>>0<=b>>>0){break c}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break c}if(M[c+(b<<3)>>2]>=M[c+(d<<3)>>2]){break a}J[a>>2]=b;J[e>>2]=d;break a;case 0:case 1:break a;default:break d}}if((d|0)>128){break b}if((a|0)==(b|0)){break a}d=a+4|0;if((d|0)==(b|0)){break a}i=J[c>>2];while(1){f=J[d>>2];e:{e=a;if((e|0)==(d|0)){break e}f:{h=J[i>>2];j=J[i+4>>2]-h>>3;if(j>>>0<=f>>>0){break f}k=h+(f<<3)|0;e=d;while(1){c=e-4|0;g=J[c>>2];if(g>>>0>=j>>>0){break f}if(M[k>>2]>=M[h+(g<<3)>>2]){break e}J[e>>2]=g;e=c;if((e|0)!=(a|0)){continue}break}e=a;break e}ra();B()}J[e>>2]=f;d=d+4|0;if((d|0)!=(b|0)){continue}break}break a}ra();B()}h=d>>>1|0;g=d-h|0;j=h<<2;i=j+a|0;g:{h:{if((d|0)<=(f|0)){Cg(a,i,c,h,e);f=b;b=e+j|0;Cg(i,f,c,g,b);f=(d<<2)+e|0;c=J[c>>2];d=b;while(1){if((d|0)==(f|0)){if((b|0)==(e|0)){break a}while(1){J[a>>2]=J[e>>2];a=a+4|0;e=e+4|0;if((b|0)!=(e|0)){continue}break}break a}i=J[c>>2];g=J[c+4>>2]-i>>3;h=J[d>>2];if(g>>>0<=h>>>0){break h}k=g;g=J[e>>2];if(k>>>0<=g>>>0){break h}j=g;k=h;h=J[i+(h<<3)>>2];i=J[i+(g<<3)>>2];g=h>>>0>=i>>>0;J[a>>2]=g?j:k;d=((i>>>0>h>>>0)<<2)+d|0;a=a+4|0;e=(g<<2)+e|0;if((b|0)!=(e|0)){continue}break}break g}bc(a,i,c,h,e,f);bc(i,b,c,g,e,f);Zd(a,i,b,c,h,g,e,f);return}ra();B()}if((d|0)==(f|0)){break a}while(1){J[a>>2]=J[d>>2];a=a+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}}}function ac(a,b,c,d,e,f){var g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;e=b-4|0;b=J[e>>2];if(d>>>0<=b>>>0){break c}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break c}if(M[c+(b<<3)>>2]>=M[c+(d<<3)>>2]){break a}J[a>>2]=b;J[e>>2]=d;break a;case 0:case 1:break a;default:break d}}if((d|0)>128){break b}if((a|0)==(b|0)){break a}d=a+4|0;if((d|0)==(b|0)){break a}i=J[c>>2];while(1){f=J[d>>2];e:{e=a;if((e|0)==(d|0)){break e}f:{h=J[i>>2];j=J[i+4>>2]-h>>3;if(j>>>0<=f>>>0){break f}k=h+(f<<3)|0;e=d;while(1){c=e-4|0;g=J[c>>2];if(g>>>0>=j>>>0){break f}if(M[k>>2]>=M[h+(g<<3)>>2]){break e}J[e>>2]=g;e=c;if((e|0)!=(a|0)){continue}break}e=a;break e}ra();B()}J[e>>2]=f;d=d+4|0;if((d|0)!=(b|0)){continue}break}break a}ra();B()}h=d>>>1|0;g=d-h|0;j=h<<2;i=j+a|0;g:{h:{if((d|0)<=(f|0)){Bg(a,i,c,h,e);f=b;b=e+j|0;Bg(i,f,c,g,b);f=(d<<2)+e|0;c=J[c>>2];d=b;while(1){if((d|0)==(f|0)){if((b|0)==(e|0)){break a}while(1){J[a>>2]=J[e>>2];a=a+4|0;e=e+4|0;if((b|0)!=(e|0)){continue}break}break a}i=J[c>>2];g=J[c+4>>2]-i>>3;h=J[d>>2];if(g>>>0<=h>>>0){break h}k=g;g=J[e>>2];if(k>>>0<=g>>>0){break h}j=g;k=h;h=J[i+(h<<3)>>2];i=J[i+(g<<3)>>2];g=h>>>0>=i>>>0;J[a>>2]=g?j:k;d=((i>>>0>h>>>0)<<2)+d|0;a=a+4|0;e=(g<<2)+e|0;if((b|0)!=(e|0)){continue}break}break g}ac(a,i,c,h,e,f);ac(i,b,c,g,e,f);Yd(a,i,b,c,h,g,e,f);return}ra();B()}if((d|0)==(f|0)){break a}while(1){J[a>>2]=J[d>>2];a=a+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}}}function _b(a,b,c,d,e,f){var g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;e=b-4|0;b=J[e>>2];if(d>>>0<=b>>>0){break c}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break c}if(M[c+(b<<3)>>2]>=M[c+(d<<3)>>2]){break a}J[a>>2]=b;J[e>>2]=d;break a;case 0:case 1:break a;default:break d}}if((d|0)>128){break b}if((a|0)==(b|0)){break a}d=a+4|0;if((d|0)==(b|0)){break a}i=J[c>>2];while(1){f=J[d>>2];e:{e=a;if((e|0)==(d|0)){break e}f:{h=J[i>>2];j=J[i+4>>2]-h>>3;if(j>>>0<=f>>>0){break f}k=h+(f<<3)|0;e=d;while(1){c=e-4|0;g=J[c>>2];if(g>>>0>=j>>>0){break f}if(M[k>>2]>=M[h+(g<<3)>>2]){break e}J[e>>2]=g;e=c;if((e|0)!=(a|0)){continue}break}e=a;break e}ra();B()}J[e>>2]=f;d=d+4|0;if((d|0)!=(b|0)){continue}break}break a}ra();B()}h=d>>>1|0;g=d-h|0;j=h<<2;i=j+a|0;g:{h:{if((d|0)<=(f|0)){zg(a,i,c,h,e);f=b;b=e+j|0;zg(i,f,c,g,b);f=(d<<2)+e|0;c=J[c>>2];d=b;while(1){if((d|0)==(f|0)){if((b|0)==(e|0)){break a}while(1){J[a>>2]=J[e>>2];a=a+4|0;e=e+4|0;if((b|0)!=(e|0)){continue}break}break a}i=J[c>>2];g=J[c+4>>2]-i>>3;h=J[d>>2];if(g>>>0<=h>>>0){break h}k=g;g=J[e>>2];if(k>>>0<=g>>>0){break h}j=g;k=h;h=J[i+(h<<3)>>2];i=J[i+(g<<3)>>2];g=h>>>0>=i>>>0;J[a>>2]=g?j:k;d=((i>>>0>h>>>0)<<2)+d|0;a=a+4|0;e=(g<<2)+e|0;if((b|0)!=(e|0)){continue}break}break g}_b(a,i,c,h,e,f);_b(i,b,c,g,e,f);Wd(a,i,b,c,h,g,e,f);return}ra();B()}if((d|0)==(f|0)){break a}while(1){J[a>>2]=J[d>>2];a=a+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}}}function Zb(a,b,c,d,e,f){var g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;e=b-4|0;b=J[e>>2];if(d>>>0<=b>>>0){break c}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break c}if(M[c+(b<<3)>>2]>=M[c+(d<<3)>>2]){break a}J[a>>2]=b;J[e>>2]=d;break a;case 0:case 1:break a;default:break d}}if((d|0)>128){break b}if((a|0)==(b|0)){break a}d=a+4|0;if((d|0)==(b|0)){break a}i=J[c>>2];while(1){f=J[d>>2];e:{e=a;if((e|0)==(d|0)){break e}f:{h=J[i>>2];j=J[i+4>>2]-h>>3;if(j>>>0<=f>>>0){break f}k=h+(f<<3)|0;e=d;while(1){c=e-4|0;g=J[c>>2];if(g>>>0>=j>>>0){break f}if(M[k>>2]>=M[h+(g<<3)>>2]){break e}J[e>>2]=g;e=c;if((e|0)!=(a|0)){continue}break}e=a;break e}ra();B()}J[e>>2]=f;d=d+4|0;if((d|0)!=(b|0)){continue}break}break a}ra();B()}h=d>>>1|0;g=d-h|0;j=h<<2;i=j+a|0;g:{h:{if((d|0)<=(f|0)){yg(a,i,c,h,e);f=b;b=e+j|0;yg(i,f,c,g,b);f=(d<<2)+e|0;c=J[c>>2];d=b;while(1){if((d|0)==(f|0)){if((b|0)==(e|0)){break a}while(1){J[a>>2]=J[e>>2];a=a+4|0;e=e+4|0;if((b|0)!=(e|0)){continue}break}break a}i=J[c>>2];g=J[c+4>>2]-i>>3;h=J[d>>2];if(g>>>0<=h>>>0){break h}k=g;g=J[e>>2];if(k>>>0<=g>>>0){break h}j=g;k=h;h=J[i+(h<<3)>>2];i=J[i+(g<<3)>>2];g=h>>>0>=i>>>0;J[a>>2]=g?j:k;d=((i>>>0>h>>>0)<<2)+d|0;a=a+4|0;e=(g<<2)+e|0;if((b|0)!=(e|0)){continue}break}break g}Zb(a,i,c,h,e,f);Zb(i,b,c,g,e,f);Vd(a,i,b,c,h,g,e,f);return}ra();B()}if((d|0)==(f|0)){break a}while(1){J[a>>2]=J[d>>2];a=a+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}}}function Yb(a,b,c,d,e,f){var g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;e=b-4|0;b=J[e>>2];if(d>>>0<=b>>>0){break c}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break c}if(M[c+(b<<3)>>2]>=M[c+(d<<3)>>2]){break a}J[a>>2]=b;J[e>>2]=d;break a;case 0:case 1:break a;default:break d}}if((d|0)>128){break b}if((a|0)==(b|0)){break a}d=a+4|0;if((d|0)==(b|0)){break a}i=J[c>>2];while(1){f=J[d>>2];e:{e=a;if((e|0)==(d|0)){break e}f:{h=J[i>>2];j=J[i+4>>2]-h>>3;if(j>>>0<=f>>>0){break f}k=h+(f<<3)|0;e=d;while(1){c=e-4|0;g=J[c>>2];if(g>>>0>=j>>>0){break f}if(M[k>>2]>=M[h+(g<<3)>>2]){break e}J[e>>2]=g;e=c;if((e|0)!=(a|0)){continue}break}e=a;break e}ra();B()}J[e>>2]=f;d=d+4|0;if((d|0)!=(b|0)){continue}break}break a}ra();B()}h=d>>>1|0;g=d-h|0;j=h<<2;i=j+a|0;g:{h:{if((d|0)<=(f|0)){wg(a,i,c,h,e);f=b;b=e+j|0;wg(i,f,c,g,b);f=(d<<2)+e|0;c=J[c>>2];d=b;while(1){if((d|0)==(f|0)){if((b|0)==(e|0)){break a}while(1){J[a>>2]=J[e>>2];a=a+4|0;e=e+4|0;if((b|0)!=(e|0)){continue}break}break a}i=J[c>>2];g=J[c+4>>2]-i>>3;h=J[d>>2];if(g>>>0<=h>>>0){break h}k=g;g=J[e>>2];if(k>>>0<=g>>>0){break h}j=g;k=h;h=J[i+(h<<3)>>2];i=J[i+(g<<3)>>2];g=h>>>0>=i>>>0;J[a>>2]=g?j:k;d=((i>>>0>h>>>0)<<2)+d|0;a=a+4|0;e=(g<<2)+e|0;if((b|0)!=(e|0)){continue}break}break g}Yb(a,i,c,h,e,f);Yb(i,b,c,g,e,f);Ud(a,i,b,c,h,g,e,f);return}ra();B()}if((d|0)==(f|0)){break a}while(1){J[a>>2]=J[d>>2];a=a+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}}}function Xb(a,b,c,d,e,f){var g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;e=b-4|0;b=J[e>>2];if(d>>>0<=b>>>0){break c}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break c}if(M[c+(b<<3)>>2]>=M[c+(d<<3)>>2]){break a}J[a>>2]=b;J[e>>2]=d;break a;case 0:case 1:break a;default:break d}}if((d|0)>128){break b}if((a|0)==(b|0)){break a}d=a+4|0;if((d|0)==(b|0)){break a}i=J[c>>2];while(1){f=J[d>>2];e:{e=a;if((e|0)==(d|0)){break e}f:{h=J[i>>2];j=J[i+4>>2]-h>>3;if(j>>>0<=f>>>0){break f}k=h+(f<<3)|0;e=d;while(1){c=e-4|0;g=J[c>>2];if(g>>>0>=j>>>0){break f}if(M[k>>2]>=M[h+(g<<3)>>2]){break e}J[e>>2]=g;e=c;if((e|0)!=(a|0)){continue}break}e=a;break e}ra();B()}J[e>>2]=f;d=d+4|0;if((d|0)!=(b|0)){continue}break}break a}ra();B()}h=d>>>1|0;g=d-h|0;j=h<<2;i=j+a|0;g:{h:{if((d|0)<=(f|0)){vg(a,i,c,h,e);f=b;b=e+j|0;vg(i,f,c,g,b);f=(d<<2)+e|0;c=J[c>>2];d=b;while(1){if((d|0)==(f|0)){if((b|0)==(e|0)){break a}while(1){J[a>>2]=J[e>>2];a=a+4|0;e=e+4|0;if((b|0)!=(e|0)){continue}break}break a}i=J[c>>2];g=J[c+4>>2]-i>>3;h=J[d>>2];if(g>>>0<=h>>>0){break h}k=g;g=J[e>>2];if(k>>>0<=g>>>0){break h}j=g;k=h;h=J[i+(h<<3)>>2];i=J[i+(g<<3)>>2];g=h>>>0>=i>>>0;J[a>>2]=g?j:k;d=((i>>>0>h>>>0)<<2)+d|0;a=a+4|0;e=(g<<2)+e|0;if((b|0)!=(e|0)){continue}break}break g}Xb(a,i,c,h,e,f);Xb(i,b,c,g,e,f);Td(a,i,b,c,h,g,e,f);return}ra();B()}if((d|0)==(f|0)){break a}while(1){J[a>>2]=J[d>>2];a=a+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}}}function Wb(a,b,c,d,e,f){var g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;e=b-4|0;b=J[e>>2];if(d>>>0<=b>>>0){break c}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break c}if(M[c+(b<<3)>>2]>=M[c+(d<<3)>>2]){break a}J[a>>2]=b;J[e>>2]=d;break a;case 0:case 1:break a;default:break d}}if((d|0)>128){break b}if((a|0)==(b|0)){break a}d=a+4|0;if((d|0)==(b|0)){break a}i=J[c>>2];while(1){f=J[d>>2];e:{e=a;if((e|0)==(d|0)){break e}f:{h=J[i>>2];j=J[i+4>>2]-h>>3;if(j>>>0<=f>>>0){break f}k=h+(f<<3)|0;e=d;while(1){c=e-4|0;g=J[c>>2];if(g>>>0>=j>>>0){break f}if(M[k>>2]>=M[h+(g<<3)>>2]){break e}J[e>>2]=g;e=c;if((e|0)!=(a|0)){continue}break}e=a;break e}ra();B()}J[e>>2]=f;d=d+4|0;if((d|0)!=(b|0)){continue}break}break a}ra();B()}h=d>>>1|0;g=d-h|0;j=h<<2;i=j+a|0;g:{h:{if((d|0)<=(f|0)){ug(a,i,c,h,e);f=b;b=e+j|0;ug(i,f,c,g,b);f=(d<<2)+e|0;c=J[c>>2];d=b;while(1){if((d|0)==(f|0)){if((b|0)==(e|0)){break a}while(1){J[a>>2]=J[e>>2];a=a+4|0;e=e+4|0;if((b|0)!=(e|0)){continue}break}break a}i=J[c>>2];g=J[c+4>>2]-i>>3;h=J[d>>2];if(g>>>0<=h>>>0){break h}k=g;g=J[e>>2];if(k>>>0<=g>>>0){break h}j=g;k=h;h=J[i+(h<<3)>>2];i=J[i+(g<<3)>>2];g=h>>>0>=i>>>0;J[a>>2]=g?j:k;d=((i>>>0>h>>>0)<<2)+d|0;a=a+4|0;e=(g<<2)+e|0;if((b|0)!=(e|0)){continue}break}break g}Wb(a,i,c,h,e,f);Wb(i,b,c,g,e,f);Sd(a,i,b,c,h,g,e,f);return}ra();B()}if((d|0)==(f|0)){break a}while(1){J[a>>2]=J[d>>2];a=a+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}}}function Vb(a,b,c,d,e,f){var g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;e=b-4|0;b=J[e>>2];if(d>>>0<=b>>>0){break c}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break c}if(M[c+(b<<3)>>2]>=M[c+(d<<3)>>2]){break a}J[a>>2]=b;J[e>>2]=d;break a;case 0:case 1:break a;default:break d}}if((d|0)>128){break b}if((a|0)==(b|0)){break a}d=a+4|0;if((d|0)==(b|0)){break a}i=J[c>>2];while(1){f=J[d>>2];e:{e=a;if((e|0)==(d|0)){break e}f:{h=J[i>>2];j=J[i+4>>2]-h>>3;if(j>>>0<=f>>>0){break f}k=h+(f<<3)|0;e=d;while(1){c=e-4|0;g=J[c>>2];if(g>>>0>=j>>>0){break f}if(M[k>>2]>=M[h+(g<<3)>>2]){break e}J[e>>2]=g;e=c;if((e|0)!=(a|0)){continue}break}e=a;break e}ra();B()}J[e>>2]=f;d=d+4|0;if((d|0)!=(b|0)){continue}break}break a}ra();B()}h=d>>>1|0;g=d-h|0;j=h<<2;i=j+a|0;g:{h:{if((d|0)<=(f|0)){tg(a,i,c,h,e);f=b;b=e+j|0;tg(i,f,c,g,b);f=(d<<2)+e|0;c=J[c>>2];d=b;while(1){if((d|0)==(f|0)){if((b|0)==(e|0)){break a}while(1){J[a>>2]=J[e>>2];a=a+4|0;e=e+4|0;if((b|0)!=(e|0)){continue}break}break a}i=J[c>>2];g=J[c+4>>2]-i>>3;h=J[d>>2];if(g>>>0<=h>>>0){break h}k=g;g=J[e>>2];if(k>>>0<=g>>>0){break h}j=g;k=h;h=J[i+(h<<3)>>2];i=J[i+(g<<3)>>2];g=h>>>0>=i>>>0;J[a>>2]=g?j:k;d=((i>>>0>h>>>0)<<2)+d|0;a=a+4|0;e=(g<<2)+e|0;if((b|0)!=(e|0)){continue}break}break g}Vb(a,i,c,h,e,f);Vb(i,b,c,g,e,f);Rd(a,i,b,c,h,g,e,f);return}ra();B()}if((d|0)==(f|0)){break a}while(1){J[a>>2]=J[d>>2];a=a+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}}}function Ub(a,b,c,d,e,f){var g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;e=b-4|0;b=J[e>>2];if(d>>>0<=b>>>0){break c}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break c}if(M[c+(b<<3)>>2]>=M[c+(d<<3)>>2]){break a}J[a>>2]=b;J[e>>2]=d;break a;case 0:case 1:break a;default:break d}}if((d|0)>128){break b}if((a|0)==(b|0)){break a}d=a+4|0;if((d|0)==(b|0)){break a}i=J[c>>2];while(1){f=J[d>>2];e:{e=a;if((e|0)==(d|0)){break e}f:{h=J[i>>2];j=J[i+4>>2]-h>>3;if(j>>>0<=f>>>0){break f}k=h+(f<<3)|0;e=d;while(1){c=e-4|0;g=J[c>>2];if(g>>>0>=j>>>0){break f}if(M[k>>2]>=M[h+(g<<3)>>2]){break e}J[e>>2]=g;e=c;if((e|0)!=(a|0)){continue}break}e=a;break e}ra();B()}J[e>>2]=f;d=d+4|0;if((d|0)!=(b|0)){continue}break}break a}ra();B()}h=d>>>1|0;g=d-h|0;j=h<<2;i=j+a|0;g:{h:{if((d|0)<=(f|0)){sg(a,i,c,h,e);f=b;b=e+j|0;sg(i,f,c,g,b);f=(d<<2)+e|0;c=J[c>>2];d=b;while(1){if((d|0)==(f|0)){if((b|0)==(e|0)){break a}while(1){J[a>>2]=J[e>>2];a=a+4|0;e=e+4|0;if((b|0)!=(e|0)){continue}break}break a}i=J[c>>2];g=J[c+4>>2]-i>>3;h=J[d>>2];if(g>>>0<=h>>>0){break h}k=g;g=J[e>>2];if(k>>>0<=g>>>0){break h}j=g;k=h;h=J[i+(h<<3)>>2];i=J[i+(g<<3)>>2];g=h>>>0>=i>>>0;J[a>>2]=g?j:k;d=((i>>>0>h>>>0)<<2)+d|0;a=a+4|0;e=(g<<2)+e|0;if((b|0)!=(e|0)){continue}break}break g}Ub(a,i,c,h,e,f);Ub(i,b,c,g,e,f);Qd(a,i,b,c,h,g,e,f);return}ra();B()}if((d|0)==(f|0)){break a}while(1){J[a>>2]=J[d>>2];a=a+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}}}function Tb(a,b,c,d,e,f){var g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;e=b-4|0;b=J[e>>2];if(d>>>0<=b>>>0){break c}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break c}if(M[c+(b<<3)>>2]>=M[c+(d<<3)>>2]){break a}J[a>>2]=b;J[e>>2]=d;break a;case 0:case 1:break a;default:break d}}if((d|0)>128){break b}if((a|0)==(b|0)){break a}d=a+4|0;if((d|0)==(b|0)){break a}i=J[c>>2];while(1){f=J[d>>2];e:{e=a;if((e|0)==(d|0)){break e}f:{h=J[i>>2];j=J[i+4>>2]-h>>3;if(j>>>0<=f>>>0){break f}k=h+(f<<3)|0;e=d;while(1){c=e-4|0;g=J[c>>2];if(g>>>0>=j>>>0){break f}if(M[k>>2]>=M[h+(g<<3)>>2]){break e}J[e>>2]=g;e=c;if((e|0)!=(a|0)){continue}break}e=a;break e}ra();B()}J[e>>2]=f;d=d+4|0;if((d|0)!=(b|0)){continue}break}break a}ra();B()}h=d>>>1|0;g=d-h|0;j=h<<2;i=j+a|0;g:{h:{if((d|0)<=(f|0)){rg(a,i,c,h,e);f=b;b=e+j|0;rg(i,f,c,g,b);f=(d<<2)+e|0;c=J[c>>2];d=b;while(1){if((d|0)==(f|0)){if((b|0)==(e|0)){break a}while(1){J[a>>2]=J[e>>2];a=a+4|0;e=e+4|0;if((b|0)!=(e|0)){continue}break}break a}i=J[c>>2];g=J[c+4>>2]-i>>3;h=J[d>>2];if(g>>>0<=h>>>0){break h}k=g;g=J[e>>2];if(k>>>0<=g>>>0){break h}j=g;k=h;h=J[i+(h<<3)>>2];i=J[i+(g<<3)>>2];g=h>>>0>=i>>>0;J[a>>2]=g?j:k;d=((i>>>0>h>>>0)<<2)+d|0;a=a+4|0;e=(g<<2)+e|0;if((b|0)!=(e|0)){continue}break}break g}Tb(a,i,c,h,e,f);Tb(i,b,c,g,e,f);Pd(a,i,b,c,h,g,e,f);return}ra();B()}if((d|0)==(f|0)){break a}while(1){J[a>>2]=J[d>>2];a=a+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}}}function Sb(a,b,c,d,e,f){var g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;e=b-4|0;b=J[e>>2];if(d>>>0<=b>>>0){break c}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break c}if(M[c+(b<<3)>>2]>=M[c+(d<<3)>>2]){break a}J[a>>2]=b;J[e>>2]=d;break a;case 0:case 1:break a;default:break d}}if((d|0)>128){break b}if((a|0)==(b|0)){break a}d=a+4|0;if((d|0)==(b|0)){break a}i=J[c>>2];while(1){f=J[d>>2];e:{e=a;if((e|0)==(d|0)){break e}f:{h=J[i>>2];j=J[i+4>>2]-h>>3;if(j>>>0<=f>>>0){break f}k=h+(f<<3)|0;e=d;while(1){c=e-4|0;g=J[c>>2];if(g>>>0>=j>>>0){break f}if(M[k>>2]>=M[h+(g<<3)>>2]){break e}J[e>>2]=g;e=c;if((e|0)!=(a|0)){continue}break}e=a;break e}ra();B()}J[e>>2]=f;d=d+4|0;if((d|0)!=(b|0)){continue}break}break a}ra();B()}h=d>>>1|0;g=d-h|0;j=h<<2;i=j+a|0;g:{h:{if((d|0)<=(f|0)){qg(a,i,c,h,e);f=b;b=e+j|0;qg(i,f,c,g,b);f=(d<<2)+e|0;c=J[c>>2];d=b;while(1){if((d|0)==(f|0)){if((b|0)==(e|0)){break a}while(1){J[a>>2]=J[e>>2];a=a+4|0;e=e+4|0;if((b|0)!=(e|0)){continue}break}break a}i=J[c>>2];g=J[c+4>>2]-i>>3;h=J[d>>2];if(g>>>0<=h>>>0){break h}k=g;g=J[e>>2];if(k>>>0<=g>>>0){break h}j=g;k=h;h=J[i+(h<<3)>>2];i=J[i+(g<<3)>>2];g=h>>>0>=i>>>0;J[a>>2]=g?j:k;d=((i>>>0>h>>>0)<<2)+d|0;a=a+4|0;e=(g<<2)+e|0;if((b|0)!=(e|0)){continue}break}break g}Sb(a,i,c,h,e,f);Sb(i,b,c,g,e,f);Od(a,i,b,c,h,g,e,f);return}ra();B()}if((d|0)==(f|0)){break a}while(1){J[a>>2]=J[d>>2];a=a+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}}}function $b(a,b,c,d,e,f){var g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;e=b-4|0;b=J[e>>2];if(d>>>0<=b>>>0){break c}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break c}if(M[c+(b<<3)>>2]>=M[c+(d<<3)>>2]){break a}J[a>>2]=b;J[e>>2]=d;break a;case 0:case 1:break a;default:break d}}if((d|0)>128){break b}if((a|0)==(b|0)){break a}d=a+4|0;if((d|0)==(b|0)){break a}i=J[c>>2];while(1){f=J[d>>2];e:{e=a;if((e|0)==(d|0)){break e}f:{h=J[i>>2];j=J[i+4>>2]-h>>3;if(j>>>0<=f>>>0){break f}k=h+(f<<3)|0;e=d;while(1){c=e-4|0;g=J[c>>2];if(g>>>0>=j>>>0){break f}if(M[k>>2]>=M[h+(g<<3)>>2]){break e}J[e>>2]=g;e=c;if((e|0)!=(a|0)){continue}break}e=a;break e}ra();B()}J[e>>2]=f;d=d+4|0;if((d|0)!=(b|0)){continue}break}break a}ra();B()}h=d>>>1|0;g=d-h|0;j=h<<2;i=j+a|0;g:{h:{if((d|0)<=(f|0)){Ag(a,i,c,h,e);f=b;b=e+j|0;Ag(i,f,c,g,b);f=(d<<2)+e|0;c=J[c>>2];d=b;while(1){if((d|0)==(f|0)){if((b|0)==(e|0)){break a}while(1){J[a>>2]=J[e>>2];a=a+4|0;e=e+4|0;if((b|0)!=(e|0)){continue}break}break a}i=J[c>>2];g=J[c+4>>2]-i>>3;h=J[d>>2];if(g>>>0<=h>>>0){break h}k=g;g=J[e>>2];if(k>>>0<=g>>>0){break h}j=g;k=h;h=J[i+(h<<3)>>2];i=J[i+(g<<3)>>2];g=h>>>0>=i>>>0;J[a>>2]=g?j:k;d=((i>>>0>h>>>0)<<2)+d|0;a=a+4|0;e=(g<<2)+e|0;if((b|0)!=(e|0)){continue}break}break g}$b(a,i,c,h,e,f);$b(i,b,c,g,e,f);Xd(a,i,b,c,h,g,e,f);return}ra();B()}if((d|0)==(f|0)){break a}while(1){J[a>>2]=J[d>>2];a=a+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}}}function Ii(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0;a=ba-32|0;ba=a;a:{b:{c:{d:{if(!b){break d}f=rb(c);if(f>>>0>=2147483632){break c}e:{f:{if(f>>>0>=11){g=(f|15)+1|0;h=oa(g);J[a+24>>2]=g|-2147483648;J[a+16>>2]=h;J[a+20>>2]=f;g=f+h|0;break f}H[a+27|0]=f;h=a+16|0;g=f+h|0;if(!f){break e}}ua(h,c,f)}H[g|0]=0;J[a+8>>2]=0;J[a>>2]=0;J[a+4>>2]=0;if(e){if((e|0)<0){break b}c=e<<2;e=oa(c);J[a>>2]=e;f=c+e|0;J[a+8>>2]=f;ua(e,d,c);J[a+4>>2]=f}f=ba-48|0;ba=f;e=ob(b,a+16|0);if((e|0)!=(b+4|0)){c=J[e+4>>2];g:{if(!c){c=e;while(1){d=J[c+8>>2];g=J[d>>2]!=(c|0);c=d;if(g){continue}break}break g}while(1){d=c;c=J[c>>2];if(c){continue}break}}if((e|0)==J[b>>2]){J[b>>2]=d}J[b+8>>2]=J[b+8>>2]-1;Dc(J[b+4>>2],e);c=J[e+28>>2];if(c){J[e+32>>2]=c;na(c)}if(H[e+27|0]<0){na(J[e+16>>2])}na(e)}J[f+8>>2]=0;J[f>>2]=0;J[f+4>>2]=0;c=J[a+4>>2];d=J[a>>2];e=c-d|0;g=0;h:{i:{if((c|0)!=(d|0)){if((e|0)<0){break i}g=oa(e);c=pa(g,0,e);h=c+e|0;J[f+8>>2]=h;J[f+4>>2]=h;J[f>>2]=c;c=d}ua(g,c,e);j:{if(H[a+27|0]>=0){J[f+24>>2]=J[a+24>>2];c=J[a+20>>2];J[f+16>>2]=J[a+16>>2];J[f+20>>2]=c;break j}Ga(f+16|0,J[a+16>>2],J[a+20>>2])}Ob(f+28|0,f);c=f+16|0;Cc(f+40|0,b,c,c);c=J[f+28>>2];if(c){J[f+32>>2]=c;na(c)}if(H[f+27|0]<0){na(J[f+16>>2])}c=J[f>>2];if(c){J[f+4>>2]=c;na(c)}ba=f+48|0;break h}qa();B()}c=J[a>>2];if(c){J[a+4>>2]=c;na(c)}if(H[a+27|0]>=0){break d}na(J[a+16>>2])}ba=a+32|0;a=(b|0)!=0;break a}gb();B()}qa();B()}return a|0}function gd(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;d=ba-16|0;ba=d;g=ba-16|0;ba=g;J[d>>2]=0;J[d+4>>2]=0;J[d+8>>2]=0;ba=g+16|0;md(d,K[d+11|0]>>>7|0?(J[d+8>>2]&2147483647)-1|0:10);i=ba-16|0;ba=i;l=+b;if(K[d+11|0]>>>7|0){g=J[d+4>>2]}else{g=K[d+11|0]&127}while(1){a:{if(K[d+11|0]>>>7|0){e=J[d>>2]}else{e=d}O[i>>3]=l;k=ba-16|0;ba=k;J[k+12>>2]=i;c=ba-160|0;ba=c;f=g+1|0;h=f?e:c+158|0;J[c+144>>2]=h;e=-1;j=f-1|0;J[c+148>>2]=f>>>0>=j>>>0?j:0;c=pa(c,0,144);J[c+76>>2]=-1;J[c+36>>2]=371;J[c+80>>2]=-1;J[c+44>>2]=c+159;J[c+84>>2]=c+144;b:{if((f|0)<0){J[4804]=61;break b}H[h|0]=0;h=0;f=ba-208|0;ba=f;J[f+204>>2]=i;e=f+160|0;pa(e,0,40);J[f+200>>2]=J[f+204>>2];c:{if((Ue(0,f+200|0,f+80|0,e)|0)<0){e=-1;break c}m=J[c+76>>2]>=0;j=J[c>>2];if(J[c+72>>2]<=0){J[c>>2]=j&-33}d:{e:{f:{if(!J[c+48>>2]){J[c+48>>2]=80;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;h=J[c+44>>2];J[c+44>>2]=f;break f}if(J[c+16>>2]){break e}}e=-1;if(We(c)){break d}}e=Ue(c,f+200|0,f+80|0,f+160|0)}if(h){da[J[c+36>>2]](c,0,0)|0;J[c+48>>2]=0;J[c+44>>2]=h;J[c+28>>2]=0;h=J[c+20>>2];J[c+16>>2]=0;J[c+20>>2]=0;e=h?e:-1}h=J[c>>2];J[c>>2]=h|j&32;e=h&32?-1:e;if(!m){break c}}ba=f+208|0}ba=c+160|0;ba=k+16|0;g:{if((e|0)>=0){if(e>>>0<=g>>>0){break a}g=e;break g}g=g<<1|1}md(d,g);continue}break}md(d,e);g=J[d+4>>2];J[a>>2]=J[d>>2];J[a+4>>2]=g;J[a+8>>2]=J[d+8>>2];J[d>>2]=0;J[d+4>>2]=0;J[d+8>>2]=0;ba=i+16|0;if(K[d+11|0]>>>7|0){na(J[d>>2])}ba=d+16|0}function tl(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;c=ba-16|0;ba=c;b=J[J[a+4>>2]+(b<<2)>>2];J[c+12>>2]=b;a=J[a+28>>2];e=J[J[J[a+4>>2]+8>>2]+(b<<2)>>2];b=J[e+28>>2];a:{if(b-1>>>0>=6){b:{if((b|0)!=9){break b}f=J[a+48>>2];a=oa(32);J[c>>2]=a;J[c+4>>2]=17;J[c+8>>2]=-2147483616;H[a+16|0]=K[1261];b=K[1257]|K[1258]<<8|(K[1259]<<16|K[1260]<<24);d=K[1253]|K[1254]<<8|(K[1255]<<16|K[1256]<<24);H[a+8|0]=d;H[a+9|0]=d>>>8;H[a+10|0]=d>>>16;H[a+11|0]=d>>>24;H[a+12|0]=b;H[a+13|0]=b>>>8;H[a+14|0]=b>>>16;H[a+15|0]=b>>>24;b=K[1249]|K[1250]<<8|(K[1251]<<16|K[1252]<<24);d=K[1245]|K[1246]<<8|(K[1247]<<16|K[1248]<<24);H[a|0]=d;H[a+1|0]=d>>>8;H[a+2|0]=d>>>16;H[a+3|0]=d>>>24;H[a+4|0]=b;H[a+5|0]=b>>>8;H[a+6|0]=b>>>16;H[a+7|0]=b>>>24;H[a+17|0]=0;a=jb(f,c+12|0,c,-1);if(H[c+11|0]<0){na(J[c>>2])}if((a|0)<=0){break b}if(J[e+56>>2]==1){a=oa(48);J[a>>2]=0;J[a+4>>2]=0;J[a+40>>2]=0;J[a+44>>2]=0;J[a+32>>2]=0;J[a+36>>2]=0;J[a+24>>2]=0;J[a+28>>2]=0;J[a+16>>2]=0;J[a+20>>2]=0;J[a+8>>2]=0;J[a+12>>2]=0;a=ne(a);J[a+40>>2]=1032;J[a>>2]=6308;J[a+44>>2]=-1;break a}a=ne(oa(64));J[a+40>>2]=2032;J[a>>2]=9988;J[a+48>>2]=0;J[a+52>>2]=0;J[a+44>>2]=-1;J[a+56>>2]=0;J[a+60>>2]=0;break a}a=oa(36);J[a+32>>2]=0;J[a+12>>2]=-1;J[a+4>>2]=0;J[a+8>>2]=0;J[a+16>>2]=0;J[a+20>>2]=0;J[a>>2]=2392;H[a+21|0]=0;H[a+22|0]=0;H[a+23|0]=0;H[a+24|0]=0;H[a+25|0]=0;H[a+26|0]=0;H[a+27|0]=0;H[a+28|0]=0;break a}a=ne(oa(40))}ba=c+16|0;return a|0}function ul(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;e=J[a+8>>2]-J[a+4>>2]>>2;b=J[a+40>>2];d=J[a+36>>2];c=b-d>>2;a:{if(e>>>0>c>>>0){g=e-c|0;d=J[a+44>>2];b=J[a+40>>2];if(g>>>0<=d-b>>2>>>0){if(g){i=b;b=g<<2;b=pa(i,0,b)+b|0}J[a+40>>2]=b;break a}b:{c:{d:{j=J[a+36>>2];e=b-j>>2;f=e+g|0;if(f>>>0<1073741824){c=d-j|0;d=c>>>1|0;c=c>>>0>=2147483644?1073741823:d>>>0>f>>>0?d:f;if(c){if(c>>>0>=1073741824){break d}i=oa(c<<2)}h=(e<<2)+i|0;d=g<<2;f=pa(h,0,d);e=d+f|0;c=(c<<2)+i|0;if((b|0)==(j|0)){break c}while(1){b=b-4|0;d=J[b>>2];J[b>>2]=0;h=h-4|0;J[h>>2]=d;if((b|0)!=(j|0)){continue}break}J[a+44>>2]=c;c=J[a+40>>2];J[a+40>>2]=e;b=J[a+36>>2];J[a+36>>2]=h;if((b|0)==(c|0)){break b}while(1){c=c-4|0;d=J[c>>2];J[c>>2]=0;if(d){da[J[J[d>>2]+4>>2]](d)}if((b|0)!=(c|0)){continue}break}break b}qa();B()}xa();B()}J[a+44>>2]=c;J[a+40>>2]=e;J[a+36>>2]=f}if(b){na(b)}break a}if(c>>>0<=e>>>0){break a}d=d+(e<<2)|0;if((d|0)!=(b|0)){while(1){b=b-4|0;c=J[b>>2];J[b>>2]=0;if(c){da[J[J[c>>2]+4>>2]](c)}if((b|0)!=(d|0)){continue}break}}J[a+40>>2]=d}if(J[a+8>>2]==J[a+4>>2]){return 1}b=0;while(1){e=da[J[J[a>>2]+56>>2]](a,b)|0;c=b<<2;d=c+J[a+36>>2]|0;f=J[d>>2];J[d>>2]=e;if(f){da[J[J[f>>2]+4>>2]](f)}c=J[c+J[a+36>>2]>>2];d=(c|0)!=0;if(c){if(!(!(J[J[a+48>>2]+(b>>>3&536870908)>>2]>>>b&1)|M[a+52>>2]<=b>>>0)){H[c+28|0]=1}b=b+1|0;if(b>>>0>2]-J[a+4>>2]>>2>>>0){continue}}break}return d|0}function Yf(a){a=a|0;var b=0,c=0,d=0,e=0,f=0;J[a>>2]=10584;c=a+200|0;d=J[c+136>>2];if(d){b=d;e=J[c+140>>2];if((b|0)!=(e|0)){while(1){b=e-12|0;f=J[b>>2];if(f){J[e-8>>2]=f;na(f)}e=b;if((b|0)!=(d|0)){continue}break}b=J[c+136>>2]}J[c+140>>2]=d;na(b)}b=J[c+104>>2];if(b){J[c+108>>2]=b;na(b)}b=J[c+92>>2];if(b){J[c+96>>2]=b;na(b)}d=J[c+80>>2];J[c+80>>2]=0;if(d){e=d-4|0;b=J[e>>2];if(b){b=d+(b<<5)|0;while(1){b=wa(b-32|0);if((d|0)!=(b|0)){continue}break}}na(e)}b=J[c+68>>2];if(b){J[c+72>>2]=b;na(b)}b=J[c+44>>2];J[c+44>>2]=0;if(b){na(b)}b=J[c+32>>2];if(b){J[c+36>>2]=b;na(b)}wa(c);b=J[a+184>>2];if(b){J[a+188>>2]=b;na(b)}d=J[a+172>>2];if(d){b=J[a+176>>2];e=d;if((b|0)!=(d|0)){while(1){e=b-136|0;f=J[e+116>>2];if(f){J[b-16>>2]=f;na(f)}f=J[b-32>>2];if(f){J[b-28>>2]=f;na(f)}pc(b-132|0);b=e;if((d|0)!=(b|0)){continue}break}e=J[a+172>>2]}J[a+176>>2]=d;na(e)}b=J[a+152>>2];if(b){J[a+156>>2]=b;na(b)}b=J[a+140>>2];if(b){na(b)}b=J[a+128>>2];if(b){while(1){e=J[b>>2];na(b);b=e;if(b){continue}break}}b=J[a+120>>2];J[a+120>>2]=0;if(b){na(b)}b=J[a+108>>2];if(b){J[a+112>>2]=b;na(b)}b=J[a+96>>2];if(b){J[a+100>>2]=b;na(b)}b=J[a+84>>2];if(b){na(b)}b=J[a+72>>2];if(b){J[a+76>>2]=b;na(b)}b=J[a+52>>2];if(b){J[a+56>>2]=b;na(b)}b=J[a+40>>2];if(b){J[a+44>>2]=b;na(b)}b=J[a+28>>2];if(b){na(b)}b=J[a+16>>2];if(b){J[a+20>>2]=b;na(b)}b=J[a+12>>2];J[a+12>>2]=0;if(b){qc(b)}return a|0}function Xd(a,b,c,d,e,f,g,h){var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;s=ba-16|0;ba=s;a:{if(!f){break a}while(1){if(!((e|0)<=(h|0)|(f|0)<=(h|0))){if(!e){break a}i=J[d>>2];o=J[i>>2];b:{c:{p=J[i+4>>2]-o>>3;i=J[b>>2];d:{if(p>>>0<=i>>>0){break d}n=(i<<3)+o|0;while(1){j=J[a>>2];if(j>>>0>=p>>>0){break d}if(M[n>>2]>=M[(j<<3)+o>>2]){a=a+4|0;e=e-1|0;if(e){continue}break a}break}e:{f:{if((e|0)<(f|0)){n=(f|0)/2|0;i=(n<<2)+b|0;g:{if((a|0)==(b|0)){j=b;break g}j=J[i>>2];if(j>>>0>=p>>>0){break d}m=b-a>>2;l=m>>>1|0;q=(l<<2)+a|0;k=J[q>>2];if(k>>>0>=p>>>0){break d}r=q+4|0;q=J[(j<<3)+o>>2];k=q>>>0>2];j=k?a:r;m=k?l:m+(l^-1)|0;if(!m){break g}while(1){l=m>>>1|0;k=(l<<2)+j|0;r=J[k>>2];if(r>>>0>=p>>>0){break d}t=k+4|0;k=q>>>0>2];j=k?j:t;m=k?l:(l^-1)+m|0;if(m){continue}break}}l=j-a>>2;break f}if((e|0)==1){J[a>>2]=i;J[b>>2]=j;break a}l=(e|0)/2|0;j=(l<<2)+a|0;i=c;if((i|0)!=(b|0)){m=c-b>>2;i=J[j>>2];if(i>>>0>=p>>>0){break e}q=(i<<3)+o|0;i=b;while(1){n=m>>>1|0;k=(n<<2)+i|0;r=J[k>>2];if(r>>>0>=p>>>0){break d}t=k+4|0;k=M[(r<<3)+o>>2]>2];i=k?t:i;m=k?(n^-1)+m|0:n;if(m){continue}break}}n=i-b>>2}Ta(s+8|0,j,b,i);b=J[s+8>>2];e=e-l|0;f=f-n|0;if((l+n|0)>=(e+f|0)){break c}Xd(a,j,b,d,l,n,g,h);a=b;b=i;break b}}ra();B()}Xd(b,i,c,d,e,f,g,h);f=n;e=l;c=b;b=j}if(f){continue}break a}break}Sa(a,b,c,d,e,f,g)}ba=s+16|0} function de(a,b,c,d,e,f,g,h){var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;s=ba-16|0;ba=s;a:{if(!f){break a}while(1){if(!((e|0)<=(h|0)|(f|0)<=(h|0))){if(!e){break a}i=J[d>>2];o=J[i>>2];b:{c:{p=J[i+4>>2]-o>>3;i=J[b>>2];d:{if(p>>>0<=i>>>0){break d}n=(i<<3)+o|0;while(1){j=J[a>>2];if(j>>>0>=p>>>0){break d}if(M[n>>2]>=M[(j<<3)+o>>2]){a=a+4|0;e=e-1|0;if(e){continue}break a}break}e:{f:{if((e|0)<(f|0)){n=(f|0)/2|0;i=(n<<2)+b|0;g:{if((a|0)==(b|0)){j=b;break g}j=J[i>>2];if(j>>>0>=p>>>0){break d}m=b-a>>2;l=m>>>1|0;q=(l<<2)+a|0;k=J[q>>2];if(k>>>0>=p>>>0){break d}r=q+4|0;q=J[(j<<3)+o>>2];k=q>>>0>2];j=k?a:r;m=k?l:m+(l^-1)|0;if(!m){break g}while(1){l=m>>>1|0;k=(l<<2)+j|0;r=J[k>>2];if(r>>>0>=p>>>0){break d}t=k+4|0;k=q>>>0>2];j=k?j:t;m=k?l:(l^-1)+m|0;if(m){continue}break}}l=j-a>>2;break f}if((e|0)==1){J[a>>2]=i;J[b>>2]=j;break a}l=(e|0)/2|0;j=(l<<2)+a|0;i=c;if((i|0)!=(b|0)){m=c-b>>2;i=J[j>>2];if(i>>>0>=p>>>0){break e}q=(i<<3)+o|0;i=b;while(1){n=m>>>1|0;k=(n<<2)+i|0;r=J[k>>2];if(r>>>0>=p>>>0){break d}t=k+4|0;k=M[(r<<3)+o>>2]>2];i=k?t:i;m=k?(n^-1)+m|0:n;if(m){continue}break}}n=i-b>>2}Ta(s+8|0,j,b,i);b=J[s+8>>2];e=e-l|0;f=f-n|0;if((l+n|0)>=(e+f|0)){break c}de(a,j,b,d,l,n,g,h);a=b;b=i;break b}}ra();B()}de(b,i,c,d,e,f,g,h);f=n;e=l;c=b;b=j}if(f){continue}break a}break}Sa(a,b,c,d,e,f,g)}ba=s+16|0}function ce(a,b,c,d,e,f,g,h){var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;s=ba-16|0;ba=s;a:{if(!f){break a}while(1){if(!((e|0)<=(h|0)|(f|0)<=(h|0))){if(!e){break a}i=J[d>>2];o=J[i>>2];b:{c:{p=J[i+4>>2]-o>>3;i=J[b>>2];d:{if(p>>>0<=i>>>0){break d}n=(i<<3)+o|0;while(1){j=J[a>>2];if(j>>>0>=p>>>0){break d}if(M[n>>2]>=M[(j<<3)+o>>2]){a=a+4|0;e=e-1|0;if(e){continue}break a}break}e:{f:{if((e|0)<(f|0)){n=(f|0)/2|0;i=(n<<2)+b|0;g:{if((a|0)==(b|0)){j=b;break g}j=J[i>>2];if(j>>>0>=p>>>0){break d}m=b-a>>2;l=m>>>1|0;q=(l<<2)+a|0;k=J[q>>2];if(k>>>0>=p>>>0){break d}r=q+4|0;q=J[(j<<3)+o>>2];k=q>>>0>2];j=k?a:r;m=k?l:m+(l^-1)|0;if(!m){break g}while(1){l=m>>>1|0;k=(l<<2)+j|0;r=J[k>>2];if(r>>>0>=p>>>0){break d}t=k+4|0;k=q>>>0>2];j=k?j:t;m=k?l:(l^-1)+m|0;if(m){continue}break}}l=j-a>>2;break f}if((e|0)==1){J[a>>2]=i;J[b>>2]=j;break a}l=(e|0)/2|0;j=(l<<2)+a|0;i=c;if((i|0)!=(b|0)){m=c-b>>2;i=J[j>>2];if(i>>>0>=p>>>0){break e}q=(i<<3)+o|0;i=b;while(1){n=m>>>1|0;k=(n<<2)+i|0;r=J[k>>2];if(r>>>0>=p>>>0){break d}t=k+4|0;k=M[(r<<3)+o>>2]>2];i=k?t:i;m=k?(n^-1)+m|0:n;if(m){continue}break}}n=i-b>>2}Ta(s+8|0,j,b,i);b=J[s+8>>2];e=e-l|0;f=f-n|0;if((l+n|0)>=(e+f|0)){break c}ce(a,j,b,d,l,n,g,h);a=b;b=i;break b}}ra();B()}ce(b,i,c,d,e,f,g,h);f=n;e=l;c=b;b=j}if(f){continue}break a}break}Sa(a,b,c,d,e,f,g)}ba=s+16|0}function be(a,b,c,d,e,f,g,h){var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;s=ba-16|0;ba=s;a:{if(!f){break a}while(1){if(!((e|0)<=(h|0)|(f|0)<=(h|0))){if(!e){break a}i=J[d>>2];o=J[i>>2];b:{c:{p=J[i+4>>2]-o>>3;i=J[b>>2];d:{if(p>>>0<=i>>>0){break d}n=(i<<3)+o|0;while(1){j=J[a>>2];if(j>>>0>=p>>>0){break d}if(M[n>>2]>=M[(j<<3)+o>>2]){a=a+4|0;e=e-1|0;if(e){continue}break a}break}e:{f:{if((e|0)<(f|0)){n=(f|0)/2|0;i=(n<<2)+b|0;g:{if((a|0)==(b|0)){j=b;break g}j=J[i>>2];if(j>>>0>=p>>>0){break d}m=b-a>>2;l=m>>>1|0;q=(l<<2)+a|0;k=J[q>>2];if(k>>>0>=p>>>0){break d}r=q+4|0;q=J[(j<<3)+o>>2];k=q>>>0>2];j=k?a:r;m=k?l:m+(l^-1)|0;if(!m){break g}while(1){l=m>>>1|0;k=(l<<2)+j|0;r=J[k>>2];if(r>>>0>=p>>>0){break d}t=k+4|0;k=q>>>0>2];j=k?j:t;m=k?l:(l^-1)+m|0;if(m){continue}break}}l=j-a>>2;break f}if((e|0)==1){J[a>>2]=i;J[b>>2]=j;break a}l=(e|0)/2|0;j=(l<<2)+a|0;i=c;if((i|0)!=(b|0)){m=c-b>>2;i=J[j>>2];if(i>>>0>=p>>>0){break e}q=(i<<3)+o|0;i=b;while(1){n=m>>>1|0;k=(n<<2)+i|0;r=J[k>>2];if(r>>>0>=p>>>0){break d}t=k+4|0;k=M[(r<<3)+o>>2]>2];i=k?t:i;m=k?(n^-1)+m|0:n;if(m){continue}break}}n=i-b>>2}Ta(s+8|0,j,b,i);b=J[s+8>>2];e=e-l|0;f=f-n|0;if((l+n|0)>=(e+f|0)){break c}be(a,j,b,d,l,n,g,h);a=b;b=i;break b}}ra();B()}be(b,i,c,d,e,f,g,h);f=n;e=l;c=b;b=j}if(f){continue}break a}break}Sa(a,b,c,d,e,f,g)}ba=s+16|0}function ae(a,b,c,d,e,f,g,h){var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;s=ba-16|0;ba=s;a:{if(!f){break a}while(1){if(!((e|0)<=(h|0)|(f|0)<=(h|0))){if(!e){break a}i=J[d>>2];o=J[i>>2];b:{c:{p=J[i+4>>2]-o>>3;i=J[b>>2];d:{if(p>>>0<=i>>>0){break d}n=(i<<3)+o|0;while(1){j=J[a>>2];if(j>>>0>=p>>>0){break d}if(M[n>>2]>=M[(j<<3)+o>>2]){a=a+4|0;e=e-1|0;if(e){continue}break a}break}e:{f:{if((e|0)<(f|0)){n=(f|0)/2|0;i=(n<<2)+b|0;g:{if((a|0)==(b|0)){j=b;break g}j=J[i>>2];if(j>>>0>=p>>>0){break d}m=b-a>>2;l=m>>>1|0;q=(l<<2)+a|0;k=J[q>>2];if(k>>>0>=p>>>0){break d}r=q+4|0;q=J[(j<<3)+o>>2];k=q>>>0>2];j=k?a:r;m=k?l:m+(l^-1)|0;if(!m){break g}while(1){l=m>>>1|0;k=(l<<2)+j|0;r=J[k>>2];if(r>>>0>=p>>>0){break d}t=k+4|0;k=q>>>0>2];j=k?j:t;m=k?l:(l^-1)+m|0;if(m){continue}break}}l=j-a>>2;break f}if((e|0)==1){J[a>>2]=i;J[b>>2]=j;break a}l=(e|0)/2|0;j=(l<<2)+a|0;i=c;if((i|0)!=(b|0)){m=c-b>>2;i=J[j>>2];if(i>>>0>=p>>>0){break e}q=(i<<3)+o|0;i=b;while(1){n=m>>>1|0;k=(n<<2)+i|0;r=J[k>>2];if(r>>>0>=p>>>0){break d}t=k+4|0;k=M[(r<<3)+o>>2]>2];i=k?t:i;m=k?(n^-1)+m|0:n;if(m){continue}break}}n=i-b>>2}Ta(s+8|0,j,b,i);b=J[s+8>>2];e=e-l|0;f=f-n|0;if((l+n|0)>=(e+f|0)){break c}ae(a,j,b,d,l,n,g,h);a=b;b=i;break b}}ra();B()}ae(b,i,c,d,e,f,g,h);f=n;e=l;c=b;b=j}if(f){continue}break a}break}Sa(a,b,c,d,e,f,g)}ba=s+16|0}function _d(a,b,c,d,e,f,g,h){var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;s=ba-16|0;ba=s;a:{if(!f){break a}while(1){if(!((e|0)<=(h|0)|(f|0)<=(h|0))){if(!e){break a}i=J[d>>2];o=J[i>>2];b:{c:{p=J[i+4>>2]-o>>3;i=J[b>>2];d:{if(p>>>0<=i>>>0){break d}n=(i<<3)+o|0;while(1){j=J[a>>2];if(j>>>0>=p>>>0){break d}if(M[n>>2]>=M[(j<<3)+o>>2]){a=a+4|0;e=e-1|0;if(e){continue}break a}break}e:{f:{if((e|0)<(f|0)){n=(f|0)/2|0;i=(n<<2)+b|0;g:{if((a|0)==(b|0)){j=b;break g}j=J[i>>2];if(j>>>0>=p>>>0){break d}m=b-a>>2;l=m>>>1|0;q=(l<<2)+a|0;k=J[q>>2];if(k>>>0>=p>>>0){break d}r=q+4|0;q=J[(j<<3)+o>>2];k=q>>>0>2];j=k?a:r;m=k?l:m+(l^-1)|0;if(!m){break g}while(1){l=m>>>1|0;k=(l<<2)+j|0;r=J[k>>2];if(r>>>0>=p>>>0){break d}t=k+4|0;k=q>>>0>2];j=k?j:t;m=k?l:(l^-1)+m|0;if(m){continue}break}}l=j-a>>2;break f}if((e|0)==1){J[a>>2]=i;J[b>>2]=j;break a}l=(e|0)/2|0;j=(l<<2)+a|0;i=c;if((i|0)!=(b|0)){m=c-b>>2;i=J[j>>2];if(i>>>0>=p>>>0){break e}q=(i<<3)+o|0;i=b;while(1){n=m>>>1|0;k=(n<<2)+i|0;r=J[k>>2];if(r>>>0>=p>>>0){break d}t=k+4|0;k=M[(r<<3)+o>>2]>2];i=k?t:i;m=k?(n^-1)+m|0:n;if(m){continue}break}}n=i-b>>2}Ta(s+8|0,j,b,i);b=J[s+8>>2];e=e-l|0;f=f-n|0;if((l+n|0)>=(e+f|0)){break c}_d(a,j,b,d,l,n,g,h);a=b;b=i;break b}}ra();B()}_d(b,i,c,d,e,f,g,h);f=n;e=l;c=b;b=j}if(f){continue}break a}break}Sa(a,b,c,d,e,f,g)}ba=s+16|0}function Zd(a,b,c,d,e,f,g,h){var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;s=ba-16|0;ba=s;a:{if(!f){break a}while(1){if(!((e|0)<=(h|0)|(f|0)<=(h|0))){if(!e){break a}i=J[d>>2];o=J[i>>2];b:{c:{p=J[i+4>>2]-o>>3;i=J[b>>2];d:{if(p>>>0<=i>>>0){break d}n=(i<<3)+o|0;while(1){j=J[a>>2];if(j>>>0>=p>>>0){break d}if(M[n>>2]>=M[(j<<3)+o>>2]){a=a+4|0;e=e-1|0;if(e){continue}break a}break}e:{f:{if((e|0)<(f|0)){n=(f|0)/2|0;i=(n<<2)+b|0;g:{if((a|0)==(b|0)){j=b;break g}j=J[i>>2];if(j>>>0>=p>>>0){break d}m=b-a>>2;l=m>>>1|0;q=(l<<2)+a|0;k=J[q>>2];if(k>>>0>=p>>>0){break d}r=q+4|0;q=J[(j<<3)+o>>2];k=q>>>0>2];j=k?a:r;m=k?l:m+(l^-1)|0;if(!m){break g}while(1){l=m>>>1|0;k=(l<<2)+j|0;r=J[k>>2];if(r>>>0>=p>>>0){break d}t=k+4|0;k=q>>>0>2];j=k?j:t;m=k?l:(l^-1)+m|0;if(m){continue}break}}l=j-a>>2;break f}if((e|0)==1){J[a>>2]=i;J[b>>2]=j;break a}l=(e|0)/2|0;j=(l<<2)+a|0;i=c;if((i|0)!=(b|0)){m=c-b>>2;i=J[j>>2];if(i>>>0>=p>>>0){break e}q=(i<<3)+o|0;i=b;while(1){n=m>>>1|0;k=(n<<2)+i|0;r=J[k>>2];if(r>>>0>=p>>>0){break d}t=k+4|0;k=M[(r<<3)+o>>2]>2];i=k?t:i;m=k?(n^-1)+m|0:n;if(m){continue}break}}n=i-b>>2}Ta(s+8|0,j,b,i);b=J[s+8>>2];e=e-l|0;f=f-n|0;if((l+n|0)>=(e+f|0)){break c}Zd(a,j,b,d,l,n,g,h);a=b;b=i;break b}}ra();B()}Zd(b,i,c,d,e,f,g,h);f=n;e=l;c=b;b=j}if(f){continue}break a}break}Sa(a,b,c,d,e,f,g)}ba=s+16|0}function Yd(a,b,c,d,e,f,g,h){var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;s=ba-16|0;ba=s;a:{if(!f){break a}while(1){if(!((e|0)<=(h|0)|(f|0)<=(h|0))){if(!e){break a}i=J[d>>2];o=J[i>>2];b:{c:{p=J[i+4>>2]-o>>3;i=J[b>>2];d:{if(p>>>0<=i>>>0){break d}n=(i<<3)+o|0;while(1){j=J[a>>2];if(j>>>0>=p>>>0){break d}if(M[n>>2]>=M[(j<<3)+o>>2]){a=a+4|0;e=e-1|0;if(e){continue}break a}break}e:{f:{if((e|0)<(f|0)){n=(f|0)/2|0;i=(n<<2)+b|0;g:{if((a|0)==(b|0)){j=b;break g}j=J[i>>2];if(j>>>0>=p>>>0){break d}m=b-a>>2;l=m>>>1|0;q=(l<<2)+a|0;k=J[q>>2];if(k>>>0>=p>>>0){break d}r=q+4|0;q=J[(j<<3)+o>>2];k=q>>>0>2];j=k?a:r;m=k?l:m+(l^-1)|0;if(!m){break g}while(1){l=m>>>1|0;k=(l<<2)+j|0;r=J[k>>2];if(r>>>0>=p>>>0){break d}t=k+4|0;k=q>>>0>2];j=k?j:t;m=k?l:(l^-1)+m|0;if(m){continue}break}}l=j-a>>2;break f}if((e|0)==1){J[a>>2]=i;J[b>>2]=j;break a}l=(e|0)/2|0;j=(l<<2)+a|0;i=c;if((i|0)!=(b|0)){m=c-b>>2;i=J[j>>2];if(i>>>0>=p>>>0){break e}q=(i<<3)+o|0;i=b;while(1){n=m>>>1|0;k=(n<<2)+i|0;r=J[k>>2];if(r>>>0>=p>>>0){break d}t=k+4|0;k=M[(r<<3)+o>>2]>2];i=k?t:i;m=k?(n^-1)+m|0:n;if(m){continue}break}}n=i-b>>2}Ta(s+8|0,j,b,i);b=J[s+8>>2];e=e-l|0;f=f-n|0;if((l+n|0)>=(e+f|0)){break c}Yd(a,j,b,d,l,n,g,h);a=b;b=i;break b}}ra();B()}Yd(b,i,c,d,e,f,g,h);f=n;e=l;c=b;b=j}if(f){continue}break a}break}Sa(a,b,c,d,e,f,g)}ba=s+16|0}function Wd(a,b,c,d,e,f,g,h){var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;s=ba-16|0;ba=s;a:{if(!f){break a}while(1){if(!((e|0)<=(h|0)|(f|0)<=(h|0))){if(!e){break a}i=J[d>>2];o=J[i>>2];b:{c:{p=J[i+4>>2]-o>>3;i=J[b>>2];d:{if(p>>>0<=i>>>0){break d}n=(i<<3)+o|0;while(1){j=J[a>>2];if(j>>>0>=p>>>0){break d}if(M[n>>2]>=M[(j<<3)+o>>2]){a=a+4|0;e=e-1|0;if(e){continue}break a}break}e:{f:{if((e|0)<(f|0)){n=(f|0)/2|0;i=(n<<2)+b|0;g:{if((a|0)==(b|0)){j=b;break g}j=J[i>>2];if(j>>>0>=p>>>0){break d}m=b-a>>2;l=m>>>1|0;q=(l<<2)+a|0;k=J[q>>2];if(k>>>0>=p>>>0){break d}r=q+4|0;q=J[(j<<3)+o>>2];k=q>>>0>2];j=k?a:r;m=k?l:m+(l^-1)|0;if(!m){break g}while(1){l=m>>>1|0;k=(l<<2)+j|0;r=J[k>>2];if(r>>>0>=p>>>0){break d}t=k+4|0;k=q>>>0>2];j=k?j:t;m=k?l:(l^-1)+m|0;if(m){continue}break}}l=j-a>>2;break f}if((e|0)==1){J[a>>2]=i;J[b>>2]=j;break a}l=(e|0)/2|0;j=(l<<2)+a|0;i=c;if((i|0)!=(b|0)){m=c-b>>2;i=J[j>>2];if(i>>>0>=p>>>0){break e}q=(i<<3)+o|0;i=b;while(1){n=m>>>1|0;k=(n<<2)+i|0;r=J[k>>2];if(r>>>0>=p>>>0){break d}t=k+4|0;k=M[(r<<3)+o>>2]>2];i=k?t:i;m=k?(n^-1)+m|0:n;if(m){continue}break}}n=i-b>>2}Ta(s+8|0,j,b,i);b=J[s+8>>2];e=e-l|0;f=f-n|0;if((l+n|0)>=(e+f|0)){break c}Wd(a,j,b,d,l,n,g,h);a=b;b=i;break b}}ra();B()}Wd(b,i,c,d,e,f,g,h);f=n;e=l;c=b;b=j}if(f){continue}break a}break}Sa(a,b,c,d,e,f,g)}ba=s+16|0}function Vd(a,b,c,d,e,f,g,h){var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;s=ba-16|0;ba=s;a:{if(!f){break a}while(1){if(!((e|0)<=(h|0)|(f|0)<=(h|0))){if(!e){break a}i=J[d>>2];o=J[i>>2];b:{c:{p=J[i+4>>2]-o>>3;i=J[b>>2];d:{if(p>>>0<=i>>>0){break d}n=(i<<3)+o|0;while(1){j=J[a>>2];if(j>>>0>=p>>>0){break d}if(M[n>>2]>=M[(j<<3)+o>>2]){a=a+4|0;e=e-1|0;if(e){continue}break a}break}e:{f:{if((e|0)<(f|0)){n=(f|0)/2|0;i=(n<<2)+b|0;g:{if((a|0)==(b|0)){j=b;break g}j=J[i>>2];if(j>>>0>=p>>>0){break d}m=b-a>>2;l=m>>>1|0;q=(l<<2)+a|0;k=J[q>>2];if(k>>>0>=p>>>0){break d}r=q+4|0;q=J[(j<<3)+o>>2];k=q>>>0>2];j=k?a:r;m=k?l:m+(l^-1)|0;if(!m){break g}while(1){l=m>>>1|0;k=(l<<2)+j|0;r=J[k>>2];if(r>>>0>=p>>>0){break d}t=k+4|0;k=q>>>0>2];j=k?j:t;m=k?l:(l^-1)+m|0;if(m){continue}break}}l=j-a>>2;break f}if((e|0)==1){J[a>>2]=i;J[b>>2]=j;break a}l=(e|0)/2|0;j=(l<<2)+a|0;i=c;if((i|0)!=(b|0)){m=c-b>>2;i=J[j>>2];if(i>>>0>=p>>>0){break e}q=(i<<3)+o|0;i=b;while(1){n=m>>>1|0;k=(n<<2)+i|0;r=J[k>>2];if(r>>>0>=p>>>0){break d}t=k+4|0;k=M[(r<<3)+o>>2]>2];i=k?t:i;m=k?(n^-1)+m|0:n;if(m){continue}break}}n=i-b>>2}Ta(s+8|0,j,b,i);b=J[s+8>>2];e=e-l|0;f=f-n|0;if((l+n|0)>=(e+f|0)){break c}Vd(a,j,b,d,l,n,g,h);a=b;b=i;break b}}ra();B()}Vd(b,i,c,d,e,f,g,h);f=n;e=l;c=b;b=j}if(f){continue}break a}break}Sa(a,b,c,d,e,f,g)}ba=s+16|0}function Ud(a,b,c,d,e,f,g,h){var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;s=ba-16|0;ba=s;a:{if(!f){break a}while(1){if(!((e|0)<=(h|0)|(f|0)<=(h|0))){if(!e){break a}i=J[d>>2];o=J[i>>2];b:{c:{p=J[i+4>>2]-o>>3;i=J[b>>2];d:{if(p>>>0<=i>>>0){break d}n=(i<<3)+o|0;while(1){j=J[a>>2];if(j>>>0>=p>>>0){break d}if(M[n>>2]>=M[(j<<3)+o>>2]){a=a+4|0;e=e-1|0;if(e){continue}break a}break}e:{f:{if((e|0)<(f|0)){n=(f|0)/2|0;i=(n<<2)+b|0;g:{if((a|0)==(b|0)){j=b;break g}j=J[i>>2];if(j>>>0>=p>>>0){break d}m=b-a>>2;l=m>>>1|0;q=(l<<2)+a|0;k=J[q>>2];if(k>>>0>=p>>>0){break d}r=q+4|0;q=J[(j<<3)+o>>2];k=q>>>0>2];j=k?a:r;m=k?l:m+(l^-1)|0;if(!m){break g}while(1){l=m>>>1|0;k=(l<<2)+j|0;r=J[k>>2];if(r>>>0>=p>>>0){break d}t=k+4|0;k=q>>>0>2];j=k?j:t;m=k?l:(l^-1)+m|0;if(m){continue}break}}l=j-a>>2;break f}if((e|0)==1){J[a>>2]=i;J[b>>2]=j;break a}l=(e|0)/2|0;j=(l<<2)+a|0;i=c;if((i|0)!=(b|0)){m=c-b>>2;i=J[j>>2];if(i>>>0>=p>>>0){break e}q=(i<<3)+o|0;i=b;while(1){n=m>>>1|0;k=(n<<2)+i|0;r=J[k>>2];if(r>>>0>=p>>>0){break d}t=k+4|0;k=M[(r<<3)+o>>2]>2];i=k?t:i;m=k?(n^-1)+m|0:n;if(m){continue}break}}n=i-b>>2}Ta(s+8|0,j,b,i);b=J[s+8>>2];e=e-l|0;f=f-n|0;if((l+n|0)>=(e+f|0)){break c}Ud(a,j,b,d,l,n,g,h);a=b;b=i;break b}}ra();B()}Ud(b,i,c,d,e,f,g,h);f=n;e=l;c=b;b=j}if(f){continue}break a}break}Sa(a,b,c,d,e,f,g)}ba=s+16|0}function Td(a,b,c,d,e,f,g,h){var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;s=ba-16|0;ba=s;a:{if(!f){break a}while(1){if(!((e|0)<=(h|0)|(f|0)<=(h|0))){if(!e){break a}i=J[d>>2];o=J[i>>2];b:{c:{p=J[i+4>>2]-o>>3;i=J[b>>2];d:{if(p>>>0<=i>>>0){break d}n=(i<<3)+o|0;while(1){j=J[a>>2];if(j>>>0>=p>>>0){break d}if(M[n>>2]>=M[(j<<3)+o>>2]){a=a+4|0;e=e-1|0;if(e){continue}break a}break}e:{f:{if((e|0)<(f|0)){n=(f|0)/2|0;i=(n<<2)+b|0;g:{if((a|0)==(b|0)){j=b;break g}j=J[i>>2];if(j>>>0>=p>>>0){break d}m=b-a>>2;l=m>>>1|0;q=(l<<2)+a|0;k=J[q>>2];if(k>>>0>=p>>>0){break d}r=q+4|0;q=J[(j<<3)+o>>2];k=q>>>0>2];j=k?a:r;m=k?l:m+(l^-1)|0;if(!m){break g}while(1){l=m>>>1|0;k=(l<<2)+j|0;r=J[k>>2];if(r>>>0>=p>>>0){break d}t=k+4|0;k=q>>>0>2];j=k?j:t;m=k?l:(l^-1)+m|0;if(m){continue}break}}l=j-a>>2;break f}if((e|0)==1){J[a>>2]=i;J[b>>2]=j;break a}l=(e|0)/2|0;j=(l<<2)+a|0;i=c;if((i|0)!=(b|0)){m=c-b>>2;i=J[j>>2];if(i>>>0>=p>>>0){break e}q=(i<<3)+o|0;i=b;while(1){n=m>>>1|0;k=(n<<2)+i|0;r=J[k>>2];if(r>>>0>=p>>>0){break d}t=k+4|0;k=M[(r<<3)+o>>2]>2];i=k?t:i;m=k?(n^-1)+m|0:n;if(m){continue}break}}n=i-b>>2}Ta(s+8|0,j,b,i);b=J[s+8>>2];e=e-l|0;f=f-n|0;if((l+n|0)>=(e+f|0)){break c}Td(a,j,b,d,l,n,g,h);a=b;b=i;break b}}ra();B()}Td(b,i,c,d,e,f,g,h);f=n;e=l;c=b;b=j}if(f){continue}break a}break}Sa(a,b,c,d,e,f,g)}ba=s+16|0}function Sd(a,b,c,d,e,f,g,h){var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;s=ba-16|0;ba=s;a:{if(!f){break a}while(1){if(!((e|0)<=(h|0)|(f|0)<=(h|0))){if(!e){break a}i=J[d>>2];o=J[i>>2];b:{c:{p=J[i+4>>2]-o>>3;i=J[b>>2];d:{if(p>>>0<=i>>>0){break d}n=(i<<3)+o|0;while(1){j=J[a>>2];if(j>>>0>=p>>>0){break d}if(M[n>>2]>=M[(j<<3)+o>>2]){a=a+4|0;e=e-1|0;if(e){continue}break a}break}e:{f:{if((e|0)<(f|0)){n=(f|0)/2|0;i=(n<<2)+b|0;g:{if((a|0)==(b|0)){j=b;break g}j=J[i>>2];if(j>>>0>=p>>>0){break d}m=b-a>>2;l=m>>>1|0;q=(l<<2)+a|0;k=J[q>>2];if(k>>>0>=p>>>0){break d}r=q+4|0;q=J[(j<<3)+o>>2];k=q>>>0>2];j=k?a:r;m=k?l:m+(l^-1)|0;if(!m){break g}while(1){l=m>>>1|0;k=(l<<2)+j|0;r=J[k>>2];if(r>>>0>=p>>>0){break d}t=k+4|0;k=q>>>0>2];j=k?j:t;m=k?l:(l^-1)+m|0;if(m){continue}break}}l=j-a>>2;break f}if((e|0)==1){J[a>>2]=i;J[b>>2]=j;break a}l=(e|0)/2|0;j=(l<<2)+a|0;i=c;if((i|0)!=(b|0)){m=c-b>>2;i=J[j>>2];if(i>>>0>=p>>>0){break e}q=(i<<3)+o|0;i=b;while(1){n=m>>>1|0;k=(n<<2)+i|0;r=J[k>>2];if(r>>>0>=p>>>0){break d}t=k+4|0;k=M[(r<<3)+o>>2]>2];i=k?t:i;m=k?(n^-1)+m|0:n;if(m){continue}break}}n=i-b>>2}Ta(s+8|0,j,b,i);b=J[s+8>>2];e=e-l|0;f=f-n|0;if((l+n|0)>=(e+f|0)){break c}Sd(a,j,b,d,l,n,g,h);a=b;b=i;break b}}ra();B()}Sd(b,i,c,d,e,f,g,h);f=n;e=l;c=b;b=j}if(f){continue}break a}break}Sa(a,b,c,d,e,f,g)}ba=s+16|0}function Rd(a,b,c,d,e,f,g,h){var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;s=ba-16|0;ba=s;a:{if(!f){break a}while(1){if(!((e|0)<=(h|0)|(f|0)<=(h|0))){if(!e){break a}i=J[d>>2];o=J[i>>2];b:{c:{p=J[i+4>>2]-o>>3;i=J[b>>2];d:{if(p>>>0<=i>>>0){break d}n=(i<<3)+o|0;while(1){j=J[a>>2];if(j>>>0>=p>>>0){break d}if(M[n>>2]>=M[(j<<3)+o>>2]){a=a+4|0;e=e-1|0;if(e){continue}break a}break}e:{f:{if((e|0)<(f|0)){n=(f|0)/2|0;i=(n<<2)+b|0;g:{if((a|0)==(b|0)){j=b;break g}j=J[i>>2];if(j>>>0>=p>>>0){break d}m=b-a>>2;l=m>>>1|0;q=(l<<2)+a|0;k=J[q>>2];if(k>>>0>=p>>>0){break d}r=q+4|0;q=J[(j<<3)+o>>2];k=q>>>0>2];j=k?a:r;m=k?l:m+(l^-1)|0;if(!m){break g}while(1){l=m>>>1|0;k=(l<<2)+j|0;r=J[k>>2];if(r>>>0>=p>>>0){break d}t=k+4|0;k=q>>>0>2];j=k?j:t;m=k?l:(l^-1)+m|0;if(m){continue}break}}l=j-a>>2;break f}if((e|0)==1){J[a>>2]=i;J[b>>2]=j;break a}l=(e|0)/2|0;j=(l<<2)+a|0;i=c;if((i|0)!=(b|0)){m=c-b>>2;i=J[j>>2];if(i>>>0>=p>>>0){break e}q=(i<<3)+o|0;i=b;while(1){n=m>>>1|0;k=(n<<2)+i|0;r=J[k>>2];if(r>>>0>=p>>>0){break d}t=k+4|0;k=M[(r<<3)+o>>2]>2];i=k?t:i;m=k?(n^-1)+m|0:n;if(m){continue}break}}n=i-b>>2}Ta(s+8|0,j,b,i);b=J[s+8>>2];e=e-l|0;f=f-n|0;if((l+n|0)>=(e+f|0)){break c}Rd(a,j,b,d,l,n,g,h);a=b;b=i;break b}}ra();B()}Rd(b,i,c,d,e,f,g,h);f=n;e=l;c=b;b=j}if(f){continue}break a}break}Sa(a,b,c,d,e,f,g)}ba=s+16|0}function Qd(a,b,c,d,e,f,g,h){var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;s=ba-16|0;ba=s;a:{if(!f){break a}while(1){if(!((e|0)<=(h|0)|(f|0)<=(h|0))){if(!e){break a}i=J[d>>2];o=J[i>>2];b:{c:{p=J[i+4>>2]-o>>3;i=J[b>>2];d:{if(p>>>0<=i>>>0){break d}n=(i<<3)+o|0;while(1){j=J[a>>2];if(j>>>0>=p>>>0){break d}if(M[n>>2]>=M[(j<<3)+o>>2]){a=a+4|0;e=e-1|0;if(e){continue}break a}break}e:{f:{if((e|0)<(f|0)){n=(f|0)/2|0;i=(n<<2)+b|0;g:{if((a|0)==(b|0)){j=b;break g}j=J[i>>2];if(j>>>0>=p>>>0){break d}m=b-a>>2;l=m>>>1|0;q=(l<<2)+a|0;k=J[q>>2];if(k>>>0>=p>>>0){break d}r=q+4|0;q=J[(j<<3)+o>>2];k=q>>>0>2];j=k?a:r;m=k?l:m+(l^-1)|0;if(!m){break g}while(1){l=m>>>1|0;k=(l<<2)+j|0;r=J[k>>2];if(r>>>0>=p>>>0){break d}t=k+4|0;k=q>>>0>2];j=k?j:t;m=k?l:(l^-1)+m|0;if(m){continue}break}}l=j-a>>2;break f}if((e|0)==1){J[a>>2]=i;J[b>>2]=j;break a}l=(e|0)/2|0;j=(l<<2)+a|0;i=c;if((i|0)!=(b|0)){m=c-b>>2;i=J[j>>2];if(i>>>0>=p>>>0){break e}q=(i<<3)+o|0;i=b;while(1){n=m>>>1|0;k=(n<<2)+i|0;r=J[k>>2];if(r>>>0>=p>>>0){break d}t=k+4|0;k=M[(r<<3)+o>>2]>2];i=k?t:i;m=k?(n^-1)+m|0:n;if(m){continue}break}}n=i-b>>2}Ta(s+8|0,j,b,i);b=J[s+8>>2];e=e-l|0;f=f-n|0;if((l+n|0)>=(e+f|0)){break c}Qd(a,j,b,d,l,n,g,h);a=b;b=i;break b}}ra();B()}Qd(b,i,c,d,e,f,g,h);f=n;e=l;c=b;b=j}if(f){continue}break a}break}Sa(a,b,c,d,e,f,g)}ba=s+16|0}function Pd(a,b,c,d,e,f,g,h){var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;s=ba-16|0;ba=s;a:{if(!f){break a}while(1){if(!((e|0)<=(h|0)|(f|0)<=(h|0))){if(!e){break a}i=J[d>>2];o=J[i>>2];b:{c:{p=J[i+4>>2]-o>>3;i=J[b>>2];d:{if(p>>>0<=i>>>0){break d}n=(i<<3)+o|0;while(1){j=J[a>>2];if(j>>>0>=p>>>0){break d}if(M[n>>2]>=M[(j<<3)+o>>2]){a=a+4|0;e=e-1|0;if(e){continue}break a}break}e:{f:{if((e|0)<(f|0)){n=(f|0)/2|0;i=(n<<2)+b|0;g:{if((a|0)==(b|0)){j=b;break g}j=J[i>>2];if(j>>>0>=p>>>0){break d}m=b-a>>2;l=m>>>1|0;q=(l<<2)+a|0;k=J[q>>2];if(k>>>0>=p>>>0){break d}r=q+4|0;q=J[(j<<3)+o>>2];k=q>>>0>2];j=k?a:r;m=k?l:m+(l^-1)|0;if(!m){break g}while(1){l=m>>>1|0;k=(l<<2)+j|0;r=J[k>>2];if(r>>>0>=p>>>0){break d}t=k+4|0;k=q>>>0>2];j=k?j:t;m=k?l:(l^-1)+m|0;if(m){continue}break}}l=j-a>>2;break f}if((e|0)==1){J[a>>2]=i;J[b>>2]=j;break a}l=(e|0)/2|0;j=(l<<2)+a|0;i=c;if((i|0)!=(b|0)){m=c-b>>2;i=J[j>>2];if(i>>>0>=p>>>0){break e}q=(i<<3)+o|0;i=b;while(1){n=m>>>1|0;k=(n<<2)+i|0;r=J[k>>2];if(r>>>0>=p>>>0){break d}t=k+4|0;k=M[(r<<3)+o>>2]>2];i=k?t:i;m=k?(n^-1)+m|0:n;if(m){continue}break}}n=i-b>>2}Ta(s+8|0,j,b,i);b=J[s+8>>2];e=e-l|0;f=f-n|0;if((l+n|0)>=(e+f|0)){break c}Pd(a,j,b,d,l,n,g,h);a=b;b=i;break b}}ra();B()}Pd(b,i,c,d,e,f,g,h);f=n;e=l;c=b;b=j}if(f){continue}break a}break}Sa(a,b,c,d,e,f,g)}ba=s+16|0}function Od(a,b,c,d,e,f,g,h){var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;s=ba-16|0;ba=s;a:{if(!f){break a}while(1){if(!((e|0)<=(h|0)|(f|0)<=(h|0))){if(!e){break a}i=J[d>>2];o=J[i>>2];b:{c:{p=J[i+4>>2]-o>>3;i=J[b>>2];d:{if(p>>>0<=i>>>0){break d}n=(i<<3)+o|0;while(1){j=J[a>>2];if(j>>>0>=p>>>0){break d}if(M[n>>2]>=M[(j<<3)+o>>2]){a=a+4|0;e=e-1|0;if(e){continue}break a}break}e:{f:{if((e|0)<(f|0)){n=(f|0)/2|0;i=(n<<2)+b|0;g:{if((a|0)==(b|0)){j=b;break g}j=J[i>>2];if(j>>>0>=p>>>0){break d}m=b-a>>2;l=m>>>1|0;q=(l<<2)+a|0;k=J[q>>2];if(k>>>0>=p>>>0){break d}r=q+4|0;q=J[(j<<3)+o>>2];k=q>>>0>2];j=k?a:r;m=k?l:m+(l^-1)|0;if(!m){break g}while(1){l=m>>>1|0;k=(l<<2)+j|0;r=J[k>>2];if(r>>>0>=p>>>0){break d}t=k+4|0;k=q>>>0>2];j=k?j:t;m=k?l:(l^-1)+m|0;if(m){continue}break}}l=j-a>>2;break f}if((e|0)==1){J[a>>2]=i;J[b>>2]=j;break a}l=(e|0)/2|0;j=(l<<2)+a|0;i=c;if((i|0)!=(b|0)){m=c-b>>2;i=J[j>>2];if(i>>>0>=p>>>0){break e}q=(i<<3)+o|0;i=b;while(1){n=m>>>1|0;k=(n<<2)+i|0;r=J[k>>2];if(r>>>0>=p>>>0){break d}t=k+4|0;k=M[(r<<3)+o>>2]>2];i=k?t:i;m=k?(n^-1)+m|0:n;if(m){continue}break}}n=i-b>>2}Ta(s+8|0,j,b,i);b=J[s+8>>2];e=e-l|0;f=f-n|0;if((l+n|0)>=(e+f|0)){break c}Od(a,j,b,d,l,n,g,h);a=b;b=i;break b}}ra();B()}Od(b,i,c,d,e,f,g,h);f=n;e=l;c=b;b=j}if(f){continue}break a}break}Sa(a,b,c,d,e,f,g)}ba=s+16|0}function $d(a,b,c,d,e,f,g,h){var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;s=ba-16|0;ba=s;a:{if(!f){break a}while(1){if(!((e|0)<=(h|0)|(f|0)<=(h|0))){if(!e){break a}i=J[d>>2];o=J[i>>2];b:{c:{p=J[i+4>>2]-o>>3;i=J[b>>2];d:{if(p>>>0<=i>>>0){break d}n=(i<<3)+o|0;while(1){j=J[a>>2];if(j>>>0>=p>>>0){break d}if(M[n>>2]>=M[(j<<3)+o>>2]){a=a+4|0;e=e-1|0;if(e){continue}break a}break}e:{f:{if((e|0)<(f|0)){n=(f|0)/2|0;i=(n<<2)+b|0;g:{if((a|0)==(b|0)){j=b;break g}j=J[i>>2];if(j>>>0>=p>>>0){break d}m=b-a>>2;l=m>>>1|0;q=(l<<2)+a|0;k=J[q>>2];if(k>>>0>=p>>>0){break d}r=q+4|0;q=J[(j<<3)+o>>2];k=q>>>0>2];j=k?a:r;m=k?l:m+(l^-1)|0;if(!m){break g}while(1){l=m>>>1|0;k=(l<<2)+j|0;r=J[k>>2];if(r>>>0>=p>>>0){break d}t=k+4|0;k=q>>>0>2];j=k?j:t;m=k?l:(l^-1)+m|0;if(m){continue}break}}l=j-a>>2;break f}if((e|0)==1){J[a>>2]=i;J[b>>2]=j;break a}l=(e|0)/2|0;j=(l<<2)+a|0;i=c;if((i|0)!=(b|0)){m=c-b>>2;i=J[j>>2];if(i>>>0>=p>>>0){break e}q=(i<<3)+o|0;i=b;while(1){n=m>>>1|0;k=(n<<2)+i|0;r=J[k>>2];if(r>>>0>=p>>>0){break d}t=k+4|0;k=M[(r<<3)+o>>2]>2];i=k?t:i;m=k?(n^-1)+m|0:n;if(m){continue}break}}n=i-b>>2}Ta(s+8|0,j,b,i);b=J[s+8>>2];e=e-l|0;f=f-n|0;if((l+n|0)>=(e+f|0)){break c}$d(a,j,b,d,l,n,g,h);a=b;b=i;break b}}ra();B()}$d(b,i,c,d,e,f,g,h);f=n;e=l;c=b;b=j}if(f){continue}break a}break}Sa(a,b,c,d,e,f,g)}ba=s+16|0}function Kg(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;m=ba-16|0;ba=m;f=J[b+28>>2];g=J[b+24>>2];J[a+8>>2]=g;J[a+12>>2]=f;f=J[b+20>>2];J[a>>2]=J[b+16>>2];J[a+4>>2]=f;f=J[b+36>>2];J[a+16>>2]=J[b+32>>2];J[a+20>>2]=f;J[a+8>>2]=d+g;a:{b:{if((d|0)>0){j=J[b>>2];f=J[a+12>>2];n=J[a+16>>2];o=O[a>>3];while(1){i=J[b+4>>2]-j>>2;g=J[(h<<2)+c>>2];c:{if(i>>>0>g>>>0){break c}J[m+12>>2]=0;k=g+1|0;if(k>>>0>i>>>0){jc(b,k-i|0,m+12|0);j=J[b>>2];break c}if(i>>>0<=k>>>0){break c}J[b+4>>2]=(k<<2)+j}k=(g<<2)+j|0;i=J[k>>2];d:{if((i|0)>=2){l=+(i|0);l=va(l)*l;break d}l=0;if(i){break d}n=n+1|0;J[a+16>>2]=n;if(f>>>0>=g>>>0){break d}J[a+12>>2]=g;f=g}g=i+1|0;J[k>>2]=g;p=+(g|0);o=va(p)*p-l+o;O[a>>3]=o;h=h+1|0;if((h|0)!=(d|0)){continue}break}if(e){break b}if((d|0)<=0){break a}a=J[b>>2];j=0;h=0;if(d>>>0>=4){g=d&-4;e=0;while(1){b=h<<2;f=a+(J[b+c>>2]<<2)|0;J[f>>2]=J[f>>2]-1;f=a+(J[(b|4)+c>>2]<<2)|0;J[f>>2]=J[f>>2]-1;f=a+(J[(b|8)+c>>2]<<2)|0;J[f>>2]=J[f>>2]-1;b=a+(J[(b|12)+c>>2]<<2)|0;J[b>>2]=J[b>>2]-1;h=h+4|0;e=e+4|0;if((g|0)!=(e|0)){continue}break}}b=d&3;if(!b){break a}while(1){d=a+(J[(h<<2)+c>>2]<<2)|0;J[d>>2]=J[d>>2]-1;h=h+1|0;j=j+1|0;if((b|0)!=(j|0)){continue}break}break a}if(!e){break a}}c=J[a+4>>2];J[b+16>>2]=J[a>>2];J[b+20>>2]=c;J[b+32>>2]=J[a+16>>2];c=J[a+12>>2];J[b+24>>2]=J[a+8>>2];J[b+28>>2]=c}ba=m+16|0}function Ya(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;e=J[b+16>>2];f=J[c+4>>2]-e|0;J[c>>2]=0|J[c>>2]-e;J[c+4>>2]=f;f=J[d+4>>2]-e|0;e=J[d>>2]-e|0;J[d>>2]=g|e;J[d+4>>2]=f;i=J[b+16>>2];g=f>>31;h=(g^f)-g|0;g=e>>31;if(i>>>0>>0){j=J[c+4>>2];k=J[c>>2];a:{b:{if((k|0)>=0){h=1;g=1;if((j|0)>=0){break a}e=1;h=-1;g=-1;if(k){break b}break a}e=-1;h=-1;g=-1;if((j|0)<=0){break a}}h=(j|0)<=0?-1:1;g=e}f=1;e=-1;l=k<<1;k=P(g,i);l=l-k|0;g=(P(g,h)|0)>=0;h=P(h,i);J[c+4>>2]=((g?0-l|0:l)+h|0)/2;h=(j<<1)-h|0;J[c>>2]=(k+(g?0-h|0:h)|0)/2;g=J[d+4>>2];h=J[d>>2];c:{d:{if((h|0)>=0){e=1;if((g|0)>=0){break c}if(h){break d}f=-1;e=-1;break c}f=-1;if((g|0)<=0){break c}}f=(g|0)<=0?-1:1}i=h<<1;h=J[b+16>>2];j=P(h,e);i=i-j|0;e=(P(f,e)|0)>=0;h=P(f,h);f=((e?0-i|0:i)+h|0)/2|0;J[d+4>>2]=f;g=(g<<1)-h|0;e=(j+(e?0-g|0:g)|0)/2|0;J[d>>2]=e}e:{f:{g:{h:{i:{j:{if(e){if((e|0)>=0){break j}if((f|0)>0){break h}break e}if(f){break i}f=0;e=0;break e}if((f|0)<0){break g}f=0-J[c+4>>2]|0;J[c>>2]=0-J[c>>2];J[c+4>>2]=f;e=0-J[d>>2]|0;f=0-J[d+4>>2]|0;break f}if((f|0)<=0){break g}}f=J[c>>2];J[c>>2]=0-J[c+4>>2];J[c+4>>2]=f;e=0-J[d+4>>2]|0;f=J[d>>2];break f}f=0-J[c>>2]|0;J[c>>2]=J[c+4>>2];J[c+4>>2]=f;e=J[d+4>>2];f=0-J[d>>2]|0}J[d>>2]=e;J[d+4>>2]=f}d=J[c>>2];b=J[b+4>>2];c=J[c+4>>2]-f|0;J[a+4>>2]=(b&c>>31)+c;c=a;a=d-e|0;J[c>>2]=(b&a>>31)+a}function eg(a,b){var c=0,d=0,e=0,f=0,g=0;e=-1;c=(b|0)==-1;d=-1;a:{if(c){break a}d=b+1|0;e=(d>>>0)%3|0?d:b-2|0;d=b-1|0;if((b>>>0)%3|0){break a}d=b+2|0}f=c?-1:(b>>>0)/3|0;g=J[a+28>>2]+(f>>>3&536870908)|0;J[g>>2]=J[g>>2]|1<>2]+12>>2]+(b<<2)>>2];if((c|0)==-1){break b}c=(c>>>0)/3|0;if(J[J[a+28>>2]+(c>>>3&268435452)>>2]>>>c&1){break b}c=J[a+172>>2];if((c|0)==J[a+176>>2]){break b}f=1<>>5<<2;b=0;while(1){Ca(J[a+280>>2]+(b<<5)|0,(f&J[g+J[(P(b,136)+c|0)+4>>2]>>2])!=0);b=b+1|0;c=J[a+172>>2];if(b>>>0<(J[a+176>>2]-c|0)/136>>>0){continue}break}}c:{if((e|0)==-1){break c}b=J[J[J[a+12>>2]+12>>2]+(e<<2)>>2];if((b|0)==-1){break c}b=(b>>>0)/3|0;if(J[J[a+28>>2]+(b>>>3&268435452)>>2]>>>b&1){break c}c=J[a+172>>2];if((c|0)==J[a+176>>2]){break c}f=1<>>5<<2;b=0;while(1){Ca(J[a+280>>2]+(b<<5)|0,(f&J[e+J[(P(b,136)+c|0)+4>>2]>>2])!=0);b=b+1|0;c=J[a+172>>2];if(b>>>0<(J[a+176>>2]-c|0)/136>>>0){continue}break}}d:{if((d|0)==-1){break d}b=J[J[J[a+12>>2]+12>>2]+(d<<2)>>2];if((b|0)==-1){break d}b=(b>>>0)/3|0;if(J[J[a+28>>2]+(b>>>3&268435452)>>2]>>>b&1){break d}c=J[a+172>>2];if((c|0)==J[a+176>>2]){break d}e=1<>>5<<2;b=0;while(1){Ca(J[a+280>>2]+(b<<5)|0,(e&J[d+J[(P(b,136)+c|0)+4>>2]>>2])!=0);b=b+1|0;c=J[a+172>>2];if(b>>>0<(J[a+176>>2]-c|0)/136>>>0){continue}break}}}function yf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0;a=0;a:{if(!d|(!b|(c|0)<0)){break a}f=J[b+8>>2];if(J[b+12>>2]-f>>2<=(c|0)){break a}if(!J[b+4>>2]){a=oa(36);J[a+4>>2]=0;J[a+8>>2]=0;J[a+24>>2]=0;J[a+28>>2]=0;e=a+16|0;J[e>>2]=0;J[e+4>>2]=0;J[a>>2]=a+4;J[a+32>>2]=0;J[a+12>>2]=e;J[b+4>>2]=a}a=J[J[f+(c<<2)>>2]+60>>2];d=sd(oa(28),d);J[d+24>>2]=a;a=J[b+4>>2];c=ba-16|0;ba=c;J[c+8>>2]=d;b:{if(!d){break b}b=J[a+28>>2];c:{if(b>>>0>2]){J[c+8>>2]=0;J[b>>2]=d;J[a+28>>2]=b+4;break c}b=0;d:{e:{f:{e=J[a+24>>2];f=J[a+28>>2]-e>>2;d=f+1|0;if(d>>>0<1073741824){e=J[a+32>>2]-e|0;g=e>>>1|0;e=e>>>0>=2147483644?1073741823:d>>>0>>0?g:d;if(e){if(e>>>0>=1073741824){break f}b=oa(e<<2)}g=J[c+8>>2];J[c+8>>2]=0;d=(f<<2)+b|0;J[d>>2]=g;e=(e<<2)+b|0;f=d+4|0;b=J[a+28>>2];g=J[a+24>>2];if((b|0)==(g|0)){break e}while(1){b=b-4|0;h=J[b>>2];J[b>>2]=0;d=d-4|0;J[d>>2]=h;if((b|0)!=(g|0)){continue}break}J[a+32>>2]=e;e=J[a+28>>2];J[a+28>>2]=f;b=J[a+24>>2];J[a+24>>2]=d;if((b|0)==(e|0)){break d}while(1){e=e-4|0;a=J[e>>2];J[e>>2]=0;if(a){lb(a+12|0,J[a+16>>2]);kb(a,J[a+4>>2]);na(a)}if((b|0)!=(e|0)){continue}break}break d}qa();B()}xa();B()}J[a+32>>2]=e;J[a+28>>2]=f;J[a+24>>2]=d}if(b){na(b)}}a=J[c+8>>2];J[c+8>>2]=0;if(!a){break b}lb(a+12|0,J[a+16>>2]);kb(a,J[a+4>>2]);na(a)}ba=c+16|0;a=1}return a|0}function pl(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0;e=J[a+16>>2];a:{if(J[a+20>>2]-e>>2<=(b|0)){break a}h=J[e+(b<<2)>>2];if((h|0)<0){break a}if(M[a+52>>2]<=h>>>0){b:{b=ba-16|0;ba=b;c:{f=J[a+52>>2];c=h+1|0;d:{if(f>>>0>>0){e=c-f|0;g=J[a+56>>2];d=g<<5;e:{if(!(e>>>0>d>>>0|f>>>0>d-e>>>0)){J[a+52>>2]=c;d=f&31;c=J[a+48>>2]+(f>>>3&536870908)|0;break e}J[b+8>>2]=0;J[b>>2]=0;J[b+4>>2]=0;if((c|0)<0){break c}if(d>>>0<=1073741822){d=g<<6;c=c+31&-32;c=c>>>0>>0?d:c}else{c=2147483647}wc(b,c);d=J[a+52>>2];J[b+4>>2]=d+e;f=J[a+48>>2];c=J[b>>2];f:{if((d|0)<=0){d=0;break f}g=d>>>5|0;if(d>>>0>=32){ta(c,f,g<<2)}g=g<<2;c=g+c|0;d=d&31;if(d){i=-1>>>32-d|0;J[c>>2]=J[c>>2]&(i^-1)|J[f+g>>2]&i}f=J[a+48>>2]}J[a+48>>2]=J[b>>2];J[b>>2]=f;g=J[a+52>>2];J[a+52>>2]=J[b+4>>2];J[b+4>>2]=g;g=J[a+56>>2];J[a+56>>2]=J[b+8>>2];J[b+8>>2]=g;if(!f){break e}na(f)}if(!e){break d}if(d){f=32-d|0;g=e>>>0>f>>>0?f:e;J[c>>2]=J[c>>2]&(-1<>>f-g^-1);e=e-g|0;c=c+4|0}d=e>>>5|0;if(e>>>0>=32){pa(c,0,d<<2)}if((e&-32)==(e|0)){break d}c=(d<<2)+c|0;J[c>>2]=J[c>>2]&(-1>>>32-(e&31)^-1);break d}J[a+52>>2]=c}ba=b+16|0;break b}qa();B()}}c=1;b=J[a+48>>2]+(h>>>3&536870908)|0;J[b>>2]=J[b>>2]|1<>2];a=J[a+36>>2];if(b-a>>2>>>0<=h>>>0){break a}H[J[a+(h<<2)>>2]+28|0]=1}return c|0}function Va(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;g=ba-16|0;ba=g;Aa(J[a+12>>2],b);a:{if(!J[a+12>>2]){break a}n=g+15|0;o=g+16|0;while(1){b:{c:{e=J[a>>2];j=J[e+(h<<3)>>2];c=j>>>0<64;if(!c){d=1;if(j>>>0<16384){break c}d=2;if(j>>>0<=4194303){break c}break a}d=0;if(j){break c}while(1){d:{if(J[(e+(d+h<<3)|0)+8>>2]){c=d;break d}c=d+1|0;if(J[(e+(h+c<<3)|0)+8>>2]){break d}c=d+2|0;if(J[(e+(h+c<<3)|0)+8>>2]){break d}c=63;d=d+3|0;if((d|0)!=63){continue}}break}H[g+15|0]=c<<2|3;d=J[b+20>>2];if(!J[b+16>>2]&(d|0)<=0|(d|0)<0){sa(b,J[b+4>>2],g+15|0,o)}h=c+h|0;break b}H[g+14|0]=j<<2|d;e=J[b+20>>2];if(!J[b+16>>2]&(e|0)<=0|(e|0)<0){sa(b,J[b+4>>2],g+14|0,n)}if(c){break b}c=J[b+20>>2];if(!!J[b+16>>2]&(c|0)>=0|(c|0)>0){break b}p=d>>>0<=1?1:d;d=0;while(1){d=d+1|0;e:{c=J[b+20>>2];if(!!J[b+16>>2]&(c|0)>=0|(c|0)>0){break e}m=j>>>(d<<3)-2|0;f=J[b+8>>2];e=J[b+4>>2];if((f-e|0)>0){H[e|0]=m;J[b+4>>2]=e+1;break e}k=J[b>>2];c=e-k|0;i=c+1|0;if((i|0)>=0){f=f-k|0;l=f<<1;f=f>>>0>=1073741823?2147483647:i>>>0>>0?l:i;if(f){i=oa(f)}else{i=0}l=i+c|0;H[l|0]=m;c=ta(i,k,c);e=ta(l+1|0,e,0);J[b+8>>2]=c+f;J[b+4>>2]=e;J[b>>2]=c;if(!k){break e}na(k);break e}qa();B()}if((d|0)!=(p|0)){continue}break}}h=h+1|0;if(h>>>0>2]){continue}break}}ba=g+16|0}function Ye(a){var b=0,c=0,d=0,e=0,f=0;a:{b:{c:{d:{e:{b=J[a+4>>2];f:{if((b|0)!=J[a+104>>2]){J[a+4>>2]=b+1;b=K[b|0];break f}b=La(a)}switch(b-43|0){case 0:case 2:break e;default:break d}}f=(b|0)==45;b=J[a+4>>2];g:{if((b|0)!=J[a+104>>2]){J[a+4>>2]=b+1;b=K[b|0];break g}b=La(a)}e=b-58|0;if(e>>>0>4294967285){break c}if(J[a+116>>2]<0){break b}J[a+4>>2]=J[a+4>>2]-1;break b}e=b-58|0}if(e>>>0<4294967286){break b}e=b-48|0;if(e>>>0<10){while(1){d=(P(d,10)+b|0)-48|0;c=(d|0)<214748364;b=J[a+4>>2];h:{if((b|0)!=J[a+104>>2]){J[a+4>>2]=b+1;b=K[b|0];break h}b=La(a)}e=b-48|0;if(c&e>>>0<=9){continue}break}c=d>>31}i:{if(e>>>0>=10){break i}while(1){d=Hl(d,c,10,0);b=d+b|0;c=ca;c=b>>>0>>0?c+1|0:c;d=b-48|0;c=c-(b>>>0<48)|0;b=J[a+4>>2];j:{if((b|0)!=J[a+104>>2]){J[a+4>>2]=b+1;b=K[b|0];break j}b=La(a)}e=b-48|0;if(e>>>0>9){break i}if(d>>>0<2061584302&(c|0)<=21474836|(c|0)<21474836){continue}break}}if(e>>>0<10){while(1){b=J[a+4>>2];k:{if((b|0)!=J[a+104>>2]){J[a+4>>2]=b+1;b=K[b|0];break k}b=La(a)}if(b-48>>>0<10){continue}break}}b=J[a+116>>2];if((b|0)>0|(b|0)>=0){J[a+4>>2]=J[a+4>>2]-1}a=d;d=f?0-a|0:a;c=f?0-(((a|0)!=0)+c|0)|0:c;break a}c=-2147483648;if(J[a+116>>2]<0){break a}J[a+4>>2]=J[a+4>>2]-1;ca=-2147483648;return 0}ca=c;return d}function Hi(a,b,c,d){a=a|0;b=b|0;c=c|0;d=+d;var e=0,f=0,g=0,h=0,i=0;g=ba-16|0;ba=g;a:{b:{c:{if(!b){break c}e=rb(c);if(e>>>0>=2147483632){break b}d:{e:{if(e>>>0>=11){f=(e|15)+1|0;a=oa(f);J[g+8>>2]=f|-2147483648;J[g>>2]=a;J[g+4>>2]=e;f=a+e|0;break e}H[g+11|0]=e;f=e+g|0;a=g;if(!e){break d}}ua(a,c,e)}H[f|0]=0;h=ba-16|0;ba=h;O[h+8>>3]=d;f=ba-48|0;ba=f;e=ob(b,g);if((e|0)!=(b+4|0)){a=J[e+4>>2];f:{if(!a){a=e;while(1){c=J[a+8>>2];i=J[c>>2]!=(a|0);a=c;if(i){continue}break}break f}while(1){c=a;a=J[a>>2];if(a){continue}break}}if((e|0)==J[b>>2]){J[b>>2]=c}J[b+8>>2]=J[b+8>>2]-1;Dc(J[b+4>>2],e);a=J[e+28>>2];if(a){J[e+32>>2]=a;na(a)}if(H[e+27|0]<0){na(J[e+16>>2])}na(e)}a=oa(8);J[f>>2]=a;c=a+8|0;J[f+8>>2]=c;J[f+4>>2]=c;c=J[h+12>>2];e=J[h+8>>2];H[a|0]=e;H[a+1|0]=e>>>8;H[a+2|0]=e>>>16;H[a+3|0]=e>>>24;H[a+4|0]=c;H[a+5|0]=c>>>8;H[a+6|0]=c>>>16;H[a+7|0]=c>>>24;g:{if(H[g+11|0]>=0){J[f+24>>2]=J[g+8>>2];a=J[g+4>>2];J[f+16>>2]=J[g>>2];J[f+20>>2]=a;break g}Ga(f+16|0,J[g>>2],J[g+4>>2])}Ob(f+28|0,f);a=f+16|0;Cc(f+40|0,b,a,a);a=J[f+28>>2];if(a){J[f+32>>2]=a;na(a)}if(H[f+27|0]<0){na(J[f+16>>2])}a=J[f>>2];if(a){J[f+4>>2]=a;na(a)}ba=f+48|0;ba=h+16|0;if(H[g+11|0]>=0){break c}na(J[g>>2])}ba=g+16|0;a=(b|0)!=0;break a}gb();B()}return a|0}function ze(a,b){var c=0,d=0,e=0,f=0,g=0;e=ba-16|0;ba=e;J[a+8>>2]=b;J[a>>2]=0;c=a+12|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;J[a+44>>2]=0;J[a+48>>2]=0;J[a+60>>2]=0;J[a+52>>2]=0;J[a+56>>2]=0;c=a- -64|0;J[c>>2]=0;J[c+4>>2]=0;J[c+16>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;J[a+84>>2]=0;J[a+88>>2]=0;J[a+100>>2]=0;J[a+92>>2]=0;J[a+96>>2]=0;J[a+112>>2]=0;J[a+104>>2]=0;J[a+108>>2]=0;g=a+140|0;a:{b:{if(b){if(b>>>0<1073741824){break b}qa();B()}J[a+116>>2]=0;J[a+120>>2]=0;J[a+132>>2]=0;J[a+136>>2]=0;J[a+124>>2]=0;J[a+128>>2]=0;J[e+8>>2]=0;J[e>>2]=0;J[e+4>>2]=0;c=1;break a}c=b<<2;d=oa(c);J[a+104>>2]=d;f=c+d|0;J[a+112>>2]=f;pa(d,0,c);J[a+124>>2]=0;J[a+116>>2]=0;J[a+120>>2]=0;J[a+108>>2]=f;d=oa(c);J[a+116>>2]=d;f=c+d|0;J[a+124>>2]=f;pa(d,0,c);J[a+136>>2]=0;J[a+128>>2]=0;J[a+132>>2]=0;J[a+120>>2]=f;d=oa(c);J[a+128>>2]=d;f=c+d|0;J[a+136>>2]=f;pa(d,0,c);J[a+132>>2]=f;d=oa(c);J[e>>2]=d;f=c+d|0;J[e+8>>2]=f;pa(d,0,c);J[e+4>>2]=f;c=b<<5|1}Jb(g,c,e);d=J[e>>2];if(d){J[e+4>>2]=d;na(d)}J[e+8>>2]=0;J[e>>2]=0;J[e+4>>2]=0;if(b){b=b<<2;d=oa(b);J[e>>2]=d;f=b+d|0;J[e+8>>2]=f;pa(d,0,b);J[e+4>>2]=f}Jb(a+152|0,c,e);b=J[e>>2];if(b){J[e+4>>2]=b;na(b)}ba=e+16|0;return a}function lj(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0;f=ba-16|0;ba=f;da[J[J[b>>2]+64>>2]](a,b);if(!J[a>>2]){if(H[a+15|0]<0){na(J[a+4>>2])}g=J[b+48>>2];c=oa(32);J[f>>2]=c;J[f+4>>2]=29;J[f+8>>2]=-2147483616;d=K[1308]|K[1309]<<8|(K[1310]<<16|K[1311]<<24);e=K[1304]|K[1305]<<8|(K[1306]<<16|K[1307]<<24);H[c+21|0]=e;H[c+22|0]=e>>>8;H[c+23|0]=e>>>16;H[c+24|0]=e>>>24;H[c+25|0]=d;H[c+26|0]=d>>>8;H[c+27|0]=d>>>16;H[c+28|0]=d>>>24;d=K[1303]|K[1304]<<8|(K[1305]<<16|K[1306]<<24);e=K[1299]|K[1300]<<8|(K[1301]<<16|K[1302]<<24);H[c+16|0]=e;H[c+17|0]=e>>>8;H[c+18|0]=e>>>16;H[c+19|0]=e>>>24;H[c+20|0]=d;H[c+21|0]=d>>>8;H[c+22|0]=d>>>16;H[c+23|0]=d>>>24;d=K[1295]|K[1296]<<8|(K[1297]<<16|K[1298]<<24);e=K[1291]|K[1292]<<8|(K[1293]<<16|K[1294]<<24);H[c+8|0]=e;H[c+9|0]=e>>>8;H[c+10|0]=e>>>16;H[c+11|0]=e>>>24;H[c+12|0]=d;H[c+13|0]=d>>>8;H[c+14|0]=d>>>16;H[c+15|0]=d>>>24;d=K[1287]|K[1288]<<8|(K[1289]<<16|K[1290]<<24);e=K[1283]|K[1284]<<8|(K[1285]<<16|K[1286]<<24);H[c|0]=e;H[c+1|0]=e>>>8;H[c+2|0]=e>>>16;H[c+3|0]=e>>>24;H[c+4|0]=d;H[c+5|0]=d>>>8;H[c+6|0]=d>>>16;H[c+7|0]=d>>>24;H[c+29|0]=0;c=Pb(g,f,0);if(H[f+11|0]<0){na(J[f>>2])}if(c){da[J[J[b>>2]+68>>2]](b)}J[a>>2]=0;J[a+4>>2]=0;J[a+8>>2]=0;J[a+12>>2]=0}ba=f+16|0}function db(a,b){var c=0,d=0,e=0,f=0,g=0,h=0;a:{b:{c:{d:{if(b){if(b>>>0>=1073741824){break d}d=oa(b<<2);c=J[a>>2];J[a>>2]=d;if(c){na(c)}J[a+4>>2]=b;c=0;if(b>>>0>=4){d=b&-4;while(1){g=c<<2;J[g+J[a>>2]>>2]=0;J[J[a>>2]+(g|4)>>2]=0;J[J[a>>2]+(g|8)>>2]=0;J[J[a>>2]+(g|12)>>2]=0;c=c+4|0;e=e+4|0;if((d|0)!=(e|0)){continue}break}}d=b&3;if(d){while(1){J[J[a>>2]+(c<<2)>>2]=0;c=c+1|0;f=f+1|0;if((d|0)!=(f|0)){continue}break}}d=J[a+8>>2];if(!d){break a}c=a+8|0;f=J[d+4>>2];e=Kl(b);if(e>>>0<2){break c}f=b>>>0<=f>>>0?(f>>>0)%(b>>>0)|0:f;J[J[a>>2]+(f<<2)>>2]=c;c=J[d>>2];if(!c){break a}if(e>>>0<=1){break b}while(1){e=J[c+4>>2];if(e>>>0>=b>>>0){e=(e>>>0)%(b>>>0)|0}e:{if((f|0)==(e|0)){d=c;break e}h=e<<2;g=h+J[a>>2]|0;if(!J[g>>2]){J[g>>2]=d;d=c;f=e;break e}J[d>>2]=J[c>>2];J[c>>2]=J[J[h+J[a>>2]>>2]>>2];J[J[h+J[a>>2]>>2]>>2]=c}c=J[d>>2];if(c){continue}break}break a}b=J[a>>2];J[a>>2]=0;if(b){na(b)}J[a+4>>2]=0;break a}xa();B()}f=b-1&f;J[J[a>>2]+(f<<2)>>2]=c;c=J[d>>2];if(!c){break a}}g=b-1|0;while(1){b=g&J[c+4>>2];f:{if((b|0)==(f|0)){d=c;break f}h=b<<2;e=h+J[a>>2]|0;if(J[e>>2]){J[d>>2]=J[c>>2];J[c>>2]=J[J[h+J[a>>2]>>2]>>2];J[J[h+J[a>>2]>>2]>>2]=c;break f}J[e>>2]=d;d=c;f=b}c=J[d>>2];if(c){continue}break}}}function cb(a){var b=0,c=0,d=0,e=0,f=0;e=ba-16|0;ba=e;b=oa(16);J[e>>2]=b;J[e+4>>2]=14;J[e+8>>2]=-2147483632;c=K[1602]|K[1603]<<8|(K[1604]<<16|K[1605]<<24);d=K[1598]|K[1599]<<8|(K[1600]<<16|K[1601]<<24);H[b+6|0]=d;H[b+7|0]=d>>>8;H[b+8|0]=d>>>16;H[b+9|0]=d>>>24;H[b+10|0]=c;H[b+11|0]=c>>>8;H[b+12|0]=c>>>16;H[b+13|0]=c>>>24;c=K[1596]|K[1597]<<8|(K[1598]<<16|K[1599]<<24);d=K[1592]|K[1593]<<8|(K[1594]<<16|K[1595]<<24);H[b|0]=d;H[b+1|0]=d>>>8;H[b+2|0]=d>>>16;H[b+3|0]=d>>>24;H[b+4|0]=c;H[b+5|0]=c>>>8;H[b+6|0]=c>>>16;H[b+7|0]=c>>>24;H[b+14|0]=0;f=Bb(a,e,-1);if(H[e+11|0]<0){na(J[e>>2])}b=oa(16);J[e>>2]=b;J[e+4>>2]=14;J[e+8>>2]=-2147483632;c=K[1617]|K[1618]<<8|(K[1619]<<16|K[1620]<<24);d=K[1613]|K[1614]<<8|(K[1615]<<16|K[1616]<<24);H[b+6|0]=d;H[b+7|0]=d>>>8;H[b+8|0]=d>>>16;H[b+9|0]=d>>>24;H[b+10|0]=c;H[b+11|0]=c>>>8;H[b+12|0]=c>>>16;H[b+13|0]=c>>>24;c=K[1611]|K[1612]<<8|(K[1613]<<16|K[1614]<<24);d=K[1607]|K[1608]<<8|(K[1609]<<16|K[1610]<<24);H[b|0]=d;H[b+1|0]=d>>>8;H[b+2|0]=d>>>16;H[b+3|0]=d>>>24;H[b+4|0]=c;H[b+5|0]=c>>>8;H[b+6|0]=c>>>16;H[b+7|0]=c>>>24;H[b+14|0]=0;a=Bb(a,e,-1);if(H[e+11|0]<0){na(J[e>>2])}ba=e+16|0;a=(a|0)<(f|0)?f:a;return(a|0)==-1?5:a}function ei(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;ff(a,b,c);c=J[a+84>>2];d=J[a+88>>2]-c>>2;a:{if((d|0)>(b|0)){break a}b=b+1|0;if(b>>>0>d>>>0){b:{d=b-d|0;e=J[a+92>>2];c=J[a+88>>2];if(d>>>0<=e-c>>2>>>0){c:{if(!d){break c}b=c;e=d&7;if(e){while(1){J[b>>2]=1;b=b+4|0;f=f+1|0;if((e|0)!=(f|0)){continue}break}}c=(d<<2)+c|0;if((d-1&1073741823)>>>0<7){break c}while(1){J[b+24>>2]=1;J[b+28>>2]=1;J[b+16>>2]=1;J[b+20>>2]=1;J[b+8>>2]=1;J[b+12>>2]=1;J[b>>2]=1;J[b+4>>2]=1;b=b+32|0;if((c|0)!=(b|0)){continue}break}}J[a+88>>2]=c;break b}d:{b=c;c=J[a+84>>2];i=b-c|0;g=i>>2;b=g+d|0;if(b>>>0<1073741824){e=e-c|0;h=e>>>1|0;e=e>>>0>=2147483644?1073741823:b>>>0>>0?h:b;if(e){if(e>>>0>=1073741824){break d}j=oa(e<<2)}g=(g<<2)+j|0;b=g;h=d&7;if(h){while(1){J[b>>2]=1;b=b+4|0;f=f+1|0;if((h|0)!=(f|0)){continue}break}}f=g+(d<<2)|0;if((d-1&1073741823)>>>0>=7){while(1){J[b+24>>2]=1;J[b+28>>2]=1;J[b+16>>2]=1;J[b+20>>2]=1;J[b+8>>2]=1;J[b+12>>2]=1;J[b>>2]=1;J[b+4>>2]=1;b=b+32|0;if((f|0)!=(b|0)){continue}break}}b=ta(j,c,i);J[a+88>>2]=f;J[a+84>>2]=b;J[a+92>>2]=b+(e<<2);if(c){na(c)}break b}qa();B()}xa();B()}return}if(b>>>0>=d>>>0){break a}J[a+88>>2]=c+(b<<2)}}function ie(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;a:{c=J[a+8>>2];e=J[a>>2];if(c-e>>3>>>0>=2){f=J[a+4>>2];h=f-e>>3;d=h>>>0>=2?2:h;b:{if(!d){break b}c=e;g=d;i=d&7;if(i){while(1){k=J[b+4>>2];J[c>>2]=J[b>>2];J[c+4>>2]=k;g=g-1|0;c=c+8|0;j=j+1|0;if((j|0)!=(i|0)){continue}break}}if(d>>>0<8){break b}while(1){d=J[b+4>>2];J[c>>2]=J[b>>2];J[c+4>>2]=d;d=J[b+4>>2];J[c+8>>2]=J[b>>2];J[c+12>>2]=d;d=J[b+4>>2];J[c+16>>2]=J[b>>2];J[c+20>>2]=d;d=J[b+4>>2];J[c+24>>2]=J[b>>2];J[c+28>>2]=d;d=J[b+4>>2];J[c+32>>2]=J[b>>2];J[c+36>>2]=d;d=J[b+4>>2];J[c+40>>2]=J[b>>2];J[c+44>>2]=d;d=J[b+4>>2];J[c+48>>2]=J[b>>2];J[c+52>>2]=d;d=J[b+4>>2];J[c+56>>2]=J[b>>2];J[c+60>>2]=d;c=c- -64|0;g=g-8|0;if(g){continue}break}}if(h>>>0<2){c=(2-h<<3)+f|0;while(1){e=J[b+4>>2];J[f>>2]=J[b>>2];J[f+4>>2]=e;f=f+8|0;if((c|0)!=(f|0)){continue}break}J[a+4>>2]=c;return}break a}if(e){J[a+4>>2]=e;na(e);J[a+8>>2]=0;J[a>>2]=0;J[a+4>>2]=0;c=0}e=c>>>2|0;e=c>>>0>=2147483640?536870911:e>>>0<=2?2:e;if(e>>>0<536870912){c=e<<3;e=oa(c);J[a>>2]=e;J[a+8>>2]=c+e;d=J[b>>2];g=J[b+4>>2];c=e;b=0;while(1){J[c>>2]=d;J[c+4>>2]=g;c=c+8|0;b=b+1|0;if((b|0)!=2){continue}break}break a}qa();B()}J[a+4>>2]=e+16}function we(a,b){var c=0,d=0,e=0,f=0,g=0;d=ba-16|0;ba=d;J[a+8>>2]=b;J[a>>2]=0;J[a+12>>2]=0;J[a+16>>2]=0;J[a+28>>2]=0;J[a+20>>2]=0;J[a+24>>2]=0;J[a+32>>2]=0;J[a+36>>2]=0;J[a+48>>2]=0;J[a+40>>2]=0;J[a+44>>2]=0;J[a+52>>2]=0;J[a+56>>2]=0;J[a+68>>2]=0;J[a+60>>2]=0;J[a+64>>2]=0;J[a+72>>2]=0;J[a+76>>2]=0;J[a+88>>2]=0;J[a+80>>2]=0;J[a+84>>2]=0;J[a+100>>2]=0;J[a+92>>2]=0;J[a+96>>2]=0;g=a+128|0;a:{b:{if(b){if(b>>>0<1073741824){break b}qa();B()}J[a+104>>2]=0;J[a+108>>2]=0;J[a+120>>2]=0;J[a+124>>2]=0;J[a+112>>2]=0;J[a+116>>2]=0;J[d+8>>2]=0;J[d>>2]=0;J[d+4>>2]=0;e=1;break a}e=b<<2;c=oa(e);J[a+92>>2]=c;f=c+e|0;J[a+100>>2]=f;pa(c,0,e);J[a+112>>2]=0;J[a+104>>2]=0;J[a+108>>2]=0;J[a+96>>2]=f;c=oa(e);J[a+104>>2]=c;f=c+e|0;J[a+112>>2]=f;pa(c,0,e);J[a+124>>2]=0;J[a+116>>2]=0;J[a+120>>2]=0;J[a+108>>2]=f;c=oa(e);J[a+116>>2]=c;f=c+e|0;J[a+124>>2]=f;pa(c,0,e);J[a+120>>2]=f;c=oa(e);J[d>>2]=c;f=c+e|0;J[d+8>>2]=f;pa(c,0,e);J[d+4>>2]=f;e=b<<5|1}Jb(g,e,d);c=J[d>>2];if(c){J[d+4>>2]=c;na(c)}J[d+8>>2]=0;J[d>>2]=0;J[d+4>>2]=0;if(b){b=b<<2;c=oa(b);J[d>>2]=c;f=b+c|0;J[d+8>>2]=f;pa(c,0,b);J[d+4>>2]=f}Jb(a+140|0,e,d);b=J[d>>2];if(b){J[d+4>>2]=b;na(b)}ba=d+16|0;return a}function Ji(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0;f=ba-16|0;ba=f;a:{b:{c:{if(!b){break c}e=rb(c);if(e>>>0>=2147483632){break b}d:{e:{if(e>>>0>=11){g=(e|15)+1|0;a=oa(g);J[f+8>>2]=g|-2147483648;J[f>>2]=a;J[f+4>>2]=e;g=a+e|0;break e}H[f+11|0]=e;g=e+f|0;a=f;if(!e){break d}}ua(a,c,e)}H[g|0]=0;g=ba-16|0;ba=g;J[g+12>>2]=d;e=ba-48|0;ba=e;d=ob(b,f);if((d|0)!=(b+4|0)){a=J[d+4>>2];f:{if(!a){a=d;while(1){c=J[a+8>>2];h=J[c>>2]!=(a|0);a=c;if(h){continue}break}break f}while(1){c=a;a=J[a>>2];if(a){continue}break}}if((d|0)==J[b>>2]){J[b>>2]=c}J[b+8>>2]=J[b+8>>2]-1;Dc(J[b+4>>2],d);a=J[d+28>>2];if(a){J[d+32>>2]=a;na(a)}if(H[d+27|0]<0){na(J[d+16>>2])}na(d)}a=oa(4);J[e>>2]=a;c=a+4|0;J[e+8>>2]=c;J[e+4>>2]=c;c=J[g+12>>2];H[a|0]=c;H[a+1|0]=c>>>8;H[a+2|0]=c>>>16;H[a+3|0]=c>>>24;g:{if(H[f+11|0]>=0){J[e+24>>2]=J[f+8>>2];a=J[f+4>>2];J[e+16>>2]=J[f>>2];J[e+20>>2]=a;break g}Ga(e+16|0,J[f>>2],J[f+4>>2])}Ob(e+28|0,e);a=e+16|0;Cc(e+40|0,b,a,a);a=J[e+28>>2];if(a){J[e+32>>2]=a;na(a)}if(H[e+27|0]<0){na(J[e+16>>2])}a=J[e>>2];if(a){J[e+4>>2]=a;na(a)}ba=e+48|0;ba=g+16|0;if(H[f+11|0]>=0){break c}na(J[f>>2])}ba=f+16|0;a=(b|0)!=0;break a}gb();B()}return a|0}function wb(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;d=J[a+8>>2];e=J[a>>2];if(d-e>>2>>>0>=b>>>0){f=J[a+4>>2];h=f-e>>2;i=b>>>0>h>>>0?h:b;a:{if(!i){break a}d=e;g=i;j=g&7;if(j){while(1){J[d>>2]=J[c>>2];g=g-1|0;d=d+4|0;k=k+1|0;if((k|0)!=(j|0)){continue}break}}if(i>>>0<8){break a}while(1){J[d>>2]=J[c>>2];J[d+4>>2]=J[c>>2];J[d+8>>2]=J[c>>2];J[d+12>>2]=J[c>>2];J[d+16>>2]=J[c>>2];J[d+20>>2]=J[c>>2];J[d+24>>2]=J[c>>2];J[d+28>>2]=J[c>>2];d=d+32|0;g=g-8|0;if(g){continue}break}}if(b>>>0>h>>>0){b=(b-h<<2)+f|0;while(1){J[f>>2]=J[c>>2];f=f+4|0;if((b|0)!=(f|0)){continue}break}J[a+4>>2]=b;return}J[a+4>>2]=e+(b<<2);return}if(e){J[a+4>>2]=e;na(e);J[a+8>>2]=0;J[a>>2]=0;J[a+4>>2]=0;d=0}b:{if(b>>>0>=1073741824){break b}e=d>>>1|0;d=d>>>0>=2147483644?1073741823:b>>>0>>0?e:b;if(d>>>0>=1073741824){break b}d=d<<2;e=oa(d);J[a>>2]=e;J[a+8>>2]=d+e;c=J[c>>2];d=e;g=b&7;if(g){while(1){J[d>>2]=c;d=d+4|0;f=f+1|0;if((g|0)!=(f|0)){continue}break}}e=e+(b<<2)|0;if((b-1&1073741823)>>>0>=7){while(1){J[d+28>>2]=c;J[d+24>>2]=c;J[d+20>>2]=c;J[d+16>>2]=c;J[d+12>>2]=c;J[d+8>>2]=c;J[d+4>>2]=c;J[d>>2]=c;d=d+32|0;if((e|0)!=(d|0)){continue}break}}J[a+4>>2]=e;return}qa();B()}function Ma(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;d=J[a+8>>2];e=J[a+4>>2];if(d-e>>2>>>0>=b>>>0){a:{if(!b){break a}d=e;g=b&7;if(g){while(1){J[d>>2]=J[c>>2];d=d+4|0;f=f+1|0;if((g|0)!=(f|0)){continue}break}}e=(b<<2)+e|0;if((b-1&1073741823)>>>0<7){break a}while(1){J[d>>2]=J[c>>2];J[d+4>>2]=J[c>>2];J[d+8>>2]=J[c>>2];J[d+12>>2]=J[c>>2];J[d+16>>2]=J[c>>2];J[d+20>>2]=J[c>>2];J[d+24>>2]=J[c>>2];J[d+28>>2]=J[c>>2];d=d+32|0;if((e|0)!=(d|0)){continue}break}}J[a+4>>2]=e;return}b:{i=J[a>>2];f=e-i>>2;h=f+b|0;if(h>>>0<1073741824){j=d-i|0;d=j>>>1|0;h=j>>>0>=2147483644?1073741823:d>>>0>h>>>0?d:h;if(h){if(h>>>0>=1073741824){break b}k=oa(h<<2)}f=(f<<2)+k|0;d=f;j=b&7;if(j){while(1){J[d>>2]=J[c>>2];d=d+4|0;g=g+1|0;if((j|0)!=(g|0)){continue}break}}g=(b<<2)+f|0;if((b-1&1073741823)>>>0>=7){while(1){J[d>>2]=J[c>>2];J[d+4>>2]=J[c>>2];J[d+8>>2]=J[c>>2];J[d+12>>2]=J[c>>2];J[d+16>>2]=J[c>>2];J[d+20>>2]=J[c>>2];J[d+24>>2]=J[c>>2];J[d+28>>2]=J[c>>2];d=d+32|0;if((g|0)!=(d|0)){continue}break}}if((e|0)!=(i|0)){while(1){f=f-4|0;e=e-4|0;J[f>>2]=J[e>>2];if((e|0)!=(i|0)){continue}break}}J[a+8>>2]=(h<<2)+k;J[a+4>>2]=g;J[a>>2]=f;if(i){na(i)}return}qa();B()}xa();B()}function kg(a){var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;a:{b=J[a+12>>2];c=J[b+4>>2];b=J[b>>2];if((c|0)!=(b|0)){b=c-b>>2;j=b>>>0<=1?1:b;k=a+140|0;while(1){b:{if(Fc(J[a+12>>2],(e>>>0)/3|0)){break b}b=J[a+12>>2];if(J[J[b+12>>2]+(e<<2)>>2]!=-1){break b}f=J[a+152>>2];d=e+1|0;d=(d>>>0)%3|0?d:e-2|0;if((d|0)!=-1){b=J[J[b>>2]+(d<<2)>>2]}else{b=-1}c=b<<2;if(J[f+c>>2]!=-1){break b}g=-1;h=J[a+144>>2];b=h;d=J[a+148>>2];if((b|0)==d<<5){if((h+1|0)<0){break a}if(h>>>0<=1073741822){b=d<<6;d=(h&-32)+32|0;b=b>>>0>d>>>0?b:d}else{b=2147483647}wc(k,b);f=J[a+152>>2];g=J[c+f>>2];b=J[a+144>>2]}J[a+144>>2]=b+1;d=J[a+140>>2]+(b>>>3&536870908)|0;i=J[d>>2];m=d,n=Ll(b)&i,J[m>>2]=n;if((g|0)!=-1){break b}c=c+f|0;i=J[a+12>>2];b=e;while(1){d=b;J[c>>2]=h;b=-1;g=-1;c:{if((d|0)==-1){break c}c=d+1|0;c=(c>>>0)%3|0?c:d-2|0;if((c|0)==-1){break c}l=J[i+12>>2];while(1){d=J[(c<<2)+l>>2];if((d|0)!=-1){c=d+1|0;c=(c>>>0)%3|0?c:d-2|0;if((c|0)!=-1){continue}break c}break}b=c+1|0;b=(b>>>0)%3|0?b:c-2|0;if((b|0)!=-1){g=J[J[i>>2]+(b<<2)>>2]}b=c}c=(g<<2)+f|0;if(J[c>>2]==-1){continue}break}}e=e+1|0;if((j|0)!=(e|0)){continue}break}}return 1}qa();B()}function mb(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;f=(c>>>0)/3|0;j=J[(J[J[a+8>>2]+96>>2]+P(f,12)|0)+(c-P(f,3)<<2)>>2];a:{h=J[J[a+12>>2]+4>>2];e=J[h+4>>2];if((e|0)!=J[h+8>>2]){J[e>>2]=j;J[h+4>>2]=e+4;break a}b:{i=J[h>>2];f=e-i|0;g=f>>2;d=g+1|0;if(d>>>0<1073741824){k=g<<2;g=f>>>1|0;g=f>>>0>=2147483644?1073741823:d>>>0>>0?g:d;if(g){if(g>>>0>=1073741824){break b}f=oa(g<<2)}else{f=0}d=k+f|0;J[d>>2]=j;j=d+4|0;if((e|0)!=(i|0)){while(1){d=d-4|0;e=e-4|0;J[d>>2]=J[e>>2];if((e|0)!=(i|0)){continue}break}}J[h+8>>2]=f+(g<<2);J[h+4>>2]=j;J[h>>2]=d;if(i){na(i)}break a}qa();B()}xa();B()}c:{d:{h=J[a+4>>2];e=J[h+4>>2];e:{if((e|0)!=J[h+8>>2]){J[e>>2]=c;J[h+4>>2]=e+4;break e}i=J[h>>2];f=e-i|0;j=f>>2;d=j+1|0;if(d>>>0>=1073741824){break d}g=f>>>1|0;g=f>>>0>=2147483644?1073741823:d>>>0>>0?g:d;if(g){if(g>>>0>=1073741824){break c}f=oa(g<<2)}else{f=0}d=f+(j<<2)|0;J[d>>2]=c;c=d+4|0;if((e|0)!=(i|0)){while(1){d=d-4|0;e=e-4|0;J[d>>2]=J[e>>2];if((e|0)!=(i|0)){continue}break}}J[h+8>>2]=f+(g<<2);J[h+4>>2]=c;J[h>>2]=d;if(!i){break e}na(i)}a=J[a+4>>2];J[J[a+12>>2]+(b<<2)>>2]=J[a+24>>2];J[a+24>>2]=J[a+24>>2]+1;return}qa();B()}xa();B()}function $g(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;i=ba-16|0;ba=i;J[a+4>>2]=0;J[a+8>>2]=0;d=a+16|0;J[d>>2]=0;J[d+4>>2]=0;J[a>>2]=a+4;g=a+28|0;J[g>>2]=0;J[g+4>>2]=0;J[a+12>>2]=d;J[a+24>>2]=g;if((b+4|0)!=(a|0)){ic(a,J[b+4>>2],b+8|0)}d=a+24|0;if((d|0)!=(b+28|0)){ic(d,J[b+28>>2],b+32|0)}J[i+12>>2]=0;h=J[c+12>>2];f=J[c+8>>2];a:{if((h-f|0)<=0){break a}g=b+20|0;if(!J[g>>2]){break a}while(1){b=J[g>>2];b:{if(!b){break b}j=J[J[(e<<2)+f>>2]+56>>2];d=g;while(1){k=(j|0)>J[b+16>>2];d=k?d:b;b=J[(k?b+4|0:b)>>2];if(b){continue}break}if((d|0)==(g|0)|(j|0)>2]){break b}h=d+20|0;e=ba-48|0;ba=e;j=J[i+12>>2];d=a+16|0;f=J[d>>2];c:{d:{if(!f){break d}b=d;while(1){k=(j|0)>J[f+16>>2];b=k?b:f;f=J[(k?f+4|0:f)>>2];if(f){continue}break}if((b|0)==(d|0)){break d}if((j|0)>=J[b+16>>2]){break c}}J[e+28>>2]=0;J[e+32>>2]=0;f=e+24|0;J[e+24>>2]=f|4;b=e+16|0;J[b>>2]=0;J[b+4>>2]=0;J[e+8>>2]=j;J[e+12>>2]=b;d=e+8|0;Oc(e+40|0,a+12|0,d,d);b=J[e+40>>2];Da(d|4,J[e+16>>2]);Da(f,J[e+28>>2])}b=b+20|0;if((b|0)!=(h|0)){ic(b,J[h>>2],h+4|0)}ba=e+48|0;f=J[c+8>>2];h=J[c+12>>2];e=J[i+12>>2]}e=e+1|0;J[i+12>>2]=e;if(h-f>>2>(e|0)){continue}break}}ba=i+16|0}function Yg(a,b,c){var d=0,e=0,f=0,g=0;f=ba-16|0;ba=f;d=oa(16);J[f>>2]=d;J[f+4>>2]=14;J[f+8>>2]=-2147483632;g=K[1602]|K[1603]<<8|(K[1604]<<16|K[1605]<<24);e=K[1598]|K[1599]<<8|(K[1600]<<16|K[1601]<<24);H[d+6|0]=e;H[d+7|0]=e>>>8;H[d+8|0]=e>>>16;H[d+9|0]=e>>>24;H[d+10|0]=g;H[d+11|0]=g>>>8;H[d+12|0]=g>>>16;H[d+13|0]=g>>>24;g=K[1596]|K[1597]<<8|(K[1598]<<16|K[1599]<<24);e=K[1592]|K[1593]<<8|(K[1594]<<16|K[1595]<<24);H[d|0]=e;H[d+1|0]=e>>>8;H[d+2|0]=e>>>16;H[d+3|0]=e>>>24;H[d+4|0]=g;H[d+5|0]=g>>>8;H[d+6|0]=g>>>16;H[d+7|0]=g>>>24;H[d+14|0]=0;d=a+4|0;vb(d,f,b);if(H[f+11|0]<0){na(J[f>>2])}a=oa(16);J[f>>2]=a;J[f+4>>2]=14;J[f+8>>2]=-2147483632;e=K[1617]|K[1618]<<8|(K[1619]<<16|K[1620]<<24);b=K[1613]|K[1614]<<8|(K[1615]<<16|K[1616]<<24);H[a+6|0]=b;H[a+7|0]=b>>>8;H[a+8|0]=b>>>16;H[a+9|0]=b>>>24;H[a+10|0]=e;H[a+11|0]=e>>>8;H[a+12|0]=e>>>16;H[a+13|0]=e>>>24;e=K[1611]|K[1612]<<8|(K[1613]<<16|K[1614]<<24);b=K[1607]|K[1608]<<8|(K[1609]<<16|K[1610]<<24);H[a|0]=b;H[a+1|0]=b>>>8;H[a+2|0]=b>>>16;H[a+3|0]=b>>>24;H[a+4|0]=e;H[a+5|0]=e>>>8;H[a+6|0]=e>>>16;H[a+7|0]=e>>>24;H[a+14|0]=0;vb(d,f,c);if(H[f+11|0]<0){na(J[f>>2])}ba=f+16|0}function sa(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0;h=d-c|0;if((h|0)<=0){return}a:{e=J[a+8>>2];i=J[a+4>>2];if((e-i|0)>=(h|0)){j=i-b|0;if((j|0)>=(h|0)){f=i;g=d;break a}f=i;g=c+j|0;if((g|0)!=(d|0)){e=g;while(1){H[f|0]=K[e|0];f=f+1|0;e=e+1|0;if((e|0)!=(d|0)){continue}break}}J[a+4>>2]=f;if((j|0)>0){break a}return}k=J[a>>2];g=(i-k|0)+h|0;if((g|0)>=0){j=b-k|0;f=e-k|0;e=f<<1;f=f>>>0>=1073741823?2147483647:e>>>0>g>>>0?e:g;if(f){e=oa(f)}else{e=0}g=j+e|0;if((c|0)!=(d|0)){g=ua(g,c,h)+h|0}d=ta(e,k,j);c=i-b|0;b=ta(g,b,c);J[a+8>>2]=e+f;J[a+4>>2]=b+c;J[a>>2]=d;if(k){na(k)}return}qa();B()}e=f;d=e-h|0;if(i>>>0>d>>>0){while(1){H[e|0]=K[d|0];e=e+1|0;d=d+1|0;if(i>>>0>d>>>0){continue}break}}J[a+4>>2]=e;a=b+h|0;if((a|0)!=(f|0)){a=f-a|0;ta(f-a|0,b,a)}if((c|0)==(g|0)){return}f=(c^-1)+g|0;a=g-c&7;b:{if(!a){e=b;break b}d=0;e=b;while(1){H[e|0]=K[c|0];e=e+1|0;c=c+1|0;d=d+1|0;if((a|0)!=(d|0)){continue}break}}if(f>>>0<7){return}while(1){H[e|0]=K[c|0];H[e+1|0]=K[c+1|0];H[e+2|0]=K[c+2|0];H[e+3|0]=K[c+3|0];H[e+4|0]=K[c+4|0];H[e+5|0]=K[c+5|0];H[e+6|0]=K[c+6|0];H[e+7|0]=K[c+7|0];e=e+8|0;c=c+8|0;if((g|0)!=(c|0)){continue}break}}function La(a){var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;b=J[a+112>>2];e=J[a+116>>2];h=(b|e)!=0;c=b;d=J[a+4>>2];g=J[a+44>>2];b=d-g|0;i=b;f=b+J[a+120>>2]|0;b=J[a+124>>2]+(b>>31)|0;a:{b=f>>>0>>0?b+1|0:b;if(!((c>>>0<=f>>>0&(b|0)>=(e|0)|(b|0)>(e|0))&h)){e=ba-16|0;ba=e;d=-1;c=J[a+72>>2];J[a+72>>2]=c-1|c;if(J[a+20>>2]!=J[a+28>>2]){da[J[a+36>>2]](a,0,0)|0}J[a+28>>2]=0;J[a+16>>2]=0;J[a+20>>2]=0;c=J[a>>2];b:{if(c&4){J[a>>2]=c|32;c=-1;break b}g=J[a+44>>2]+J[a+48>>2]|0;J[a+8>>2]=g;J[a+4>>2]=g;c=c<<27>>31}c:{if(c){break c}if((da[J[a+32>>2]](a,e+15|0,1)|0)!=1){break c}d=K[e+15|0]}ba=e+16|0;e=d;if((d|0)>=0){break a}g=J[a+44>>2];d=J[a+4>>2]}J[a+112>>2]=-1;J[a+116>>2]=-1;J[a+104>>2]=d;e=g-d|0;d=e+f|0;b=(e>>31)+b|0;J[a+120>>2]=d;J[a+124>>2]=d>>>0>>0?b+1|0:b;return-1}d=f+1|0;b=d?b:b+1|0;h=J[a+4>>2];g=J[a+8>>2];c=J[a+116>>2];i=c;f=J[a+112>>2];d:{if(!(c|f)){break d}c=f-d|0;f=i-(b+(d>>>0>f>>>0)|0)|0;j=g-h|0;i=j>>31;if((f|0)>=(i|0)&c>>>0>=j>>>0|(f|0)>(i|0)){break d}g=c+h|0}J[a+104>>2]=g;f=J[a+44>>2];c=f-h|0;d=c+d|0;b=(c>>31)+b|0;J[a+120>>2]=d;J[a+124>>2]=d>>>0>>0?b+1|0:b;if(f>>>0>=h>>>0){H[h-1|0]=e}return e}function yc(a,b,c){var d=0,e=0,f=0,g=0,h=0;a:{b:{f=a+16|0;d=J[f>>2];if(!d){break b}g=J[b>>2];b=f;while(1){e=(g|0)>J[d+16>>2];b=e?b:d;d=J[(e?d+4|0:d)>>2];if(d){continue}break}if((b|0)==(f|0)|(g|0)>2]){break b}d=J[b+24>>2];if(!d){break a}a=K[c+11|0];b=a<<24>>24<0;f=b?J[c>>2]:c;a=b?J[c+4>>2]:a;while(1){b=K[d+27|0];c=b<<24>>24<0;b=c?J[d+20>>2]:b;g=b>>>0>>0;c:{d:{e:{f:{g:{h:{e=g?b:a;if(e){c=c?J[d+16>>2]:d+16|0;h=Ba(f,c,e);if(h){break h}if(a>>>0>=b>>>0){break g}break c}if(a>>>0>=b>>>0){break f}break c}if((h|0)<0){break c}}b=Ba(c,f,e);if(b){break e}}if(g){break d}return 1}if((b|0)<0){break d}return 1}d=d+4|0}d=J[d>>2];if(d){continue}break}break a}d=J[a+4>>2];if(!d){break a}a=K[c+11|0];b=a<<24>>24<0;f=b?J[c>>2]:c;a=b?J[c+4>>2]:a;while(1){b=K[d+27|0];c=b<<24>>24<0;b=c?J[d+20>>2]:b;g=b>>>0>>0;i:{j:{k:{l:{m:{n:{e=g?b:a;if(e){c=c?J[d+16>>2]:d+16|0;h=Ba(f,c,e);if(h){break n}if(a>>>0>=b>>>0){break m}break i}if(a>>>0>=b>>>0){break l}break i}if((h|0)<0){break i}}b=Ba(c,f,e);if(b){break k}}if(g){break j}return 1}if((b|0)<0){break j}return 1}d=d+4|0}d=J[d>>2];if(d){continue}break}}return 0}function ua(a,b,c){var d=0,e=0,f=0;if(c>>>0>=512){aa(a|0,b|0,c|0);return a}e=a+c|0;a:{if(!((a^b)&3)){b:{if(!(a&3)){c=a;break b}if(!c){c=a;break b}c=a;while(1){H[c|0]=K[b|0];b=b+1|0;c=c+1|0;if(!(c&3)){break b}if(c>>>0>>0){continue}break}}d=e&-4;c:{if(d>>>0<64){break c}f=d+-64|0;if(f>>>0>>0){break c}while(1){J[c>>2]=J[b>>2];J[c+4>>2]=J[b+4>>2];J[c+8>>2]=J[b+8>>2];J[c+12>>2]=J[b+12>>2];J[c+16>>2]=J[b+16>>2];J[c+20>>2]=J[b+20>>2];J[c+24>>2]=J[b+24>>2];J[c+28>>2]=J[b+28>>2];J[c+32>>2]=J[b+32>>2];J[c+36>>2]=J[b+36>>2];J[c+40>>2]=J[b+40>>2];J[c+44>>2]=J[b+44>>2];J[c+48>>2]=J[b+48>>2];J[c+52>>2]=J[b+52>>2];J[c+56>>2]=J[b+56>>2];J[c+60>>2]=J[b+60>>2];b=b- -64|0;c=c- -64|0;if(f>>>0>=c>>>0){continue}break}}if(c>>>0>=d>>>0){break a}while(1){J[c>>2]=J[b>>2];b=b+4|0;c=c+4|0;if(d>>>0>c>>>0){continue}break}break a}if(e>>>0<4){c=a;break a}d=e-4|0;if(d>>>0>>0){c=a;break a}c=a;while(1){H[c|0]=K[b|0];H[c+1|0]=K[b+1|0];H[c+2|0]=K[b+2|0];H[c+3|0]=K[b+3|0];b=b+4|0;c=c+4|0;if(d>>>0>=c>>>0){continue}break}}if(c>>>0>>0){while(1){H[c|0]=K[b|0];b=b+1|0;c=c+1|0;if((e|0)!=(c|0)){continue}break}}return a}function Zf(a){a=a|0;var b=0,c=0,d=0,e=0;J[a>>2]=10532;c=J[a+280>>2];J[a+280>>2]=0;if(c){d=c-4|0;b=J[d>>2];if(b){b=c+(b<<5)|0;while(1){b=wa(b-32|0);if((c|0)!=(b|0)){continue}break}}na(d)}b=J[a+268>>2];if(b){J[a+272>>2]=b;na(b)}b=J[a+244>>2];J[a+244>>2]=0;if(b){na(b)}b=J[a+232>>2];if(b){J[a+236>>2]=b;na(b)}wa(a+200|0);b=J[a+184>>2];if(b){J[a+188>>2]=b;na(b)}c=J[a+172>>2];if(c){d=c;b=J[a+176>>2];if((c|0)!=(b|0)){while(1){d=b-136|0;e=J[d+116>>2];if(e){J[b-16>>2]=e;na(e)}e=J[b-32>>2];if(e){J[b-28>>2]=e;na(e)}pc(b-132|0);b=d;if((c|0)!=(b|0)){continue}break}d=J[a+172>>2]}J[a+176>>2]=c;na(d)}b=J[a+152>>2];if(b){J[a+156>>2]=b;na(b)}b=J[a+140>>2];if(b){na(b)}b=J[a+128>>2];if(b){while(1){c=J[b>>2];na(b);b=c;if(b){continue}break}}b=J[a+120>>2];J[a+120>>2]=0;if(b){na(b)}b=J[a+108>>2];if(b){J[a+112>>2]=b;na(b)}b=J[a+96>>2];if(b){J[a+100>>2]=b;na(b)}b=J[a+84>>2];if(b){na(b)}b=J[a+72>>2];if(b){J[a+76>>2]=b;na(b)}b=J[a+52>>2];if(b){J[a+56>>2]=b;na(b)}b=J[a+40>>2];if(b){J[a+44>>2]=b;na(b)}b=J[a+28>>2];if(b){na(b)}b=J[a+16>>2];if(b){J[a+20>>2]=b;na(b)}b=J[a+12>>2];J[a+12>>2]=0;if(b){qc(b)}return a|0}function Hc(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0;f=-1;a:{if((b|0)==-1){h=J[a+12>>2];d=1;g=-1;break a}h=J[a+12>>2];b:{c:{if((b>>>0)%3|0){e=b-1|0;break c}e=b+2|0;if((e|0)!=-1){break c}d=1;break b}g=J[h+12>>2];while(1){f=e;d=J[g+(e<<2)>>2];if((d|0)!=-1){f=-1;e=d+1|0;e=(e>>>0)%3|0?e:d-2|0;if((e|0)!=-1){continue}}break}d=(d|0)!=-1;g=-1;if((b|0)==-1){break a}}g=J[J[h>>2]+(b<<2)>>2]}b=0;if(c){b=J[a+84>>2]+(g>>>3&536870908)|0;J[b>>2]=J[b>>2]|1<>2]+(g<<2)>>2];e=J[a+140>>2]+(c>>>3&536870908)|0;J[e>>2]=J[e>>2]|1<>>0)%3|0){e=f-1|0;break e}e=f+2|0;c=-1;if((e|0)==-1){break d}}c=J[J[h>>2]+(e<<2)>>2]}if((g|0)!=(c|0)){i=J[a+84>>2];while(1){a=f;f=(c>>>3&536870908)+i|0;J[f>>2]=J[f>>2]|1<>>0)%3|0?d:a-2|0;if((d|0)==-1){break f}e=J[h+12>>2];while(1){a=J[e+(d<<2)>>2];if((a|0)!=-1){d=a+1|0;d=(d>>>0)%3|0?d:a-2|0;if((d|0)!=-1){continue}break f}break}g:{if((d>>>0)%3|0){e=d-1|0;break g}e=d+2|0;if((e|0)!=-1){break g}f=-3;break f}c=J[J[h>>2]+(e<<2)>>2];f=d}b=b+1|0;if((c|0)!=(g|0)){continue}break}}}function Qb(a,b,c,d){var e=0,f=0,g=0,h=0,i=0;a:{b:{g=J[a+124>>2];c:{if(!g){break c}e=J[a+120>>2];i=Kl(g);h=g-1&d;d:{if(i>>>0<=1){break d}h=d;if(d>>>0>>0){break d}h=(d>>>0)%(g>>>0)|0}e=J[e+(h<<2)>>2];if(!e){break c}f=J[e>>2];if(!f){break c}e:{if(i>>>0<=1){e=g-1|0;while(1){g=J[f+4>>2];f:{if((g|0)!=(d|0)){if((h|0)==(e&g)){break f}break c}if(J[f+8>>2]==(d|0)){break e}}f=J[f>>2];if(f){continue}break}break c}while(1){e=J[f+4>>2];g:{if((e|0)!=(d|0)){if(e>>>0>=g>>>0){e=(e>>>0)%(g>>>0)|0}if((e|0)==(h|0)){break g}break c}if(J[f+8>>2]==(d|0)){break e}}f=J[f>>2];if(f){continue}break}break c}f=J[f+12>>2];if((f|0)==-1){break c}g=c&1;c=J[a+112>>2];if((c|0)!=J[a+116>>2]){H[c+8|0]=g;J[c+4>>2]=b;J[c>>2]=f;J[a+112>>2]=c+12;return}d=J[a+108>>2];i=c-d|0;c=(i|0)/12|0;e=c+1|0;if(e>>>0>=357913942){break b}h=c<<1;e=c>>>0>=178956970?357913941:e>>>0>>0?h:e;if(e){if(e>>>0>=357913942){break a}h=oa(P(e,12))}else{h=0}c=h+P(c,12)|0;H[c+8|0]=g;J[c+4>>2]=b;J[c>>2]=f;b=ta(c+P((i|0)/-12|0,12)|0,d,i);J[a+116>>2]=h+P(e,12);J[a+112>>2]=c+12;J[a+108>>2]=b;if(!d){break c}na(d)}return}qa();B()}xa();B()}function jc(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;d=J[a+8>>2];e=J[a+4>>2];if(d-e>>2>>>0>=b>>>0){a:{if(!b){break a}d=e;f=b&7;if(f){while(1){J[d>>2]=J[c>>2];d=d+4|0;h=h+1|0;if((f|0)!=(h|0)){continue}break}}e=(b<<2)+e|0;if((b-1&1073741823)>>>0<7){break a}while(1){J[d>>2]=J[c>>2];J[d+4>>2]=J[c>>2];J[d+8>>2]=J[c>>2];J[d+12>>2]=J[c>>2];J[d+16>>2]=J[c>>2];J[d+20>>2]=J[c>>2];J[d+24>>2]=J[c>>2];J[d+28>>2]=J[c>>2];d=d+32|0;if((e|0)!=(d|0)){continue}break}}J[a+4>>2]=e;return}b:{i=J[a>>2];j=e-i|0;f=j>>2;g=f+b|0;if(g>>>0<1073741824){d=d-i|0;e=d>>>1|0;g=d>>>0>=2147483644?1073741823:e>>>0>g>>>0?e:g;if(g){if(g>>>0>=1073741824){break b}k=oa(g<<2)}f=(f<<2)+k|0;d=f;e=b&7;if(e){while(1){J[d>>2]=J[c>>2];d=d+4|0;h=h+1|0;if((e|0)!=(h|0)){continue}break}}e=f+(b<<2)|0;if((b-1&1073741823)>>>0>=7){while(1){J[d>>2]=J[c>>2];J[d+4>>2]=J[c>>2];J[d+8>>2]=J[c>>2];J[d+12>>2]=J[c>>2];J[d+16>>2]=J[c>>2];J[d+20>>2]=J[c>>2];J[d+24>>2]=J[c>>2];J[d+28>>2]=J[c>>2];d=d+32|0;if((e|0)!=(d|0)){continue}break}}b=ta(k,i,j);J[a+4>>2]=e;J[a>>2]=b;J[a+8>>2]=b+(g<<2);if(i){na(i)}return}qa();B()}xa();B()}function cf(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;f=J[c>>2];m=J[c+4>>2];a:{if((f|0)==(m|0)){h=J[a+12>>2];b=J[a+8>>2];i=h-b|0;c=0;break a}o=J[b>>2];h=J[a+12>>2];b=J[a+8>>2];i=h-b|0;if((i|0)<=0){c=0;while(1){e=J[(J[f>>2]<<2)+o>>2];c=c>>>0>e>>>0?c:e+1|0;f=f+4|0;if((m|0)!=(f|0)){continue}break}break a}c=i>>>2|0;c=c>>>0<=1?1:c;q=c&1073741822;r=c&1;c=0;s=i>>>0<8;while(1){e=J[f>>2];k=e<<2;l=J[o+k>>2];if(l>>>0>=c>>>0){c=0;j=0;if(!s){while(1){p=c<<2;d=J[p+b>>2];g=J[d+68>>2];d=K[d+84|0]?e:J[g+k>>2];n=g;g=l<<2;J[n+g>>2]=d;n=g;d=J[(p|4)+b>>2];g=J[d+68>>2];J[n+g>>2]=K[d+84|0]?e:J[g+k>>2];c=c+2|0;j=j+2|0;if((q|0)!=(j|0)){continue}break}}if(r){c=J[(c<<2)+b>>2];d=J[c+68>>2];j=d+(l<<2)|0;if(!K[c+84|0]){e=J[d+k>>2]}J[j>>2]=e}c=l+1|0}f=f+4|0;if((m|0)!=(f|0)){continue}break}}d=0;if((i|0)>0){while(1){b=J[(d<<2)+b>>2];H[b+84|0]=0;f=J[b+68>>2];e=J[b+72>>2]-f>>2;b:{if(e>>>0>>0){Ma(b+68|0,c-e|0,15024);h=J[a+12>>2];break b}if(c>>>0>=e>>>0){break b}J[b+72>>2]=f+(c<<2)}d=d+1|0;b=J[a+8>>2];if((d|0)>2){continue}break}}}function me(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0;J[a+4>>2]=b;d=J[J[J[b+4>>2]+8>>2]+(c<<2)>>2];J[a+12>>2]=c;J[a+8>>2]=d;a:{if((da[J[J[a>>2]+32>>2]](a)|0)==1&J[J[a+8>>2]+28>>2]-1>>>0>5){break a}f=J[b+48>>2];d=ba-16|0;ba=d;J[d+12>>2]=c;b=oa(32);J[d>>2]=b;J[d+4>>2]=17;J[d+8>>2]=-2147483616;H[b+16|0]=K[1529];c=K[1525]|K[1526]<<8|(K[1527]<<16|K[1528]<<24);e=K[1521]|K[1522]<<8|(K[1523]<<16|K[1524]<<24);H[b+8|0]=e;H[b+9|0]=e>>>8;H[b+10|0]=e>>>16;H[b+11|0]=e>>>24;H[b+12|0]=c;H[b+13|0]=c>>>8;H[b+14|0]=c>>>16;H[b+15|0]=c>>>24;c=K[1517]|K[1518]<<8|(K[1519]<<16|K[1520]<<24);e=K[1513]|K[1514]<<8|(K[1515]<<16|K[1516]<<24);H[b|0]=e;H[b+1|0]=e>>>8;H[b+2|0]=e>>>16;H[b+3|0]=e>>>24;H[b+4|0]=c;H[b+5|0]=c>>>8;H[b+6|0]=c>>>16;H[b+7|0]=c>>>24;H[b+17|0]=0;b=jb(f,d+12|0,d,-1);if(H[d+11|0]<0){na(J[d>>2])}ba=d+16|0;c=da[J[J[a>>2]+48>>2]](a,(b|0)==-1?-1:b>>>0>6?-2:b)|0;b=J[a+36>>2];J[a+36>>2]=c;e=1;if(b){da[J[J[b>>2]+4>>2]](b);c=J[a+36>>2]}if(!c){break a}if(da[J[J[a>>2]+36>>2]](a,c)|0){break a}b=J[a+36>>2];J[a+36>>2]=0;if(!b){break a}da[J[J[b>>2]+4>>2]](b)}return e|0}function md(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;a:{if(K[a+11|0]>>>7|0){e=J[a+4>>2]}else{e=K[a+11|0]&127}if(e>>>0>>0){h=ba-16|0;ba=h;g=b-e|0;if(g){f=K[a+11|0]>>>7|0?(J[a+8>>2]&2147483647)-1|0:10;if(K[a+11|0]>>>7|0){b=J[a+4>>2]}else{b=K[a+11|0]&127}i=b+g|0;if(f-b>>>0>>0){b:{d=ba-16|0;ba=d;c=i-f|0;if(c>>>0<=2147483631-f>>>0){if(K[a+11|0]>>>7|0){e=J[a>>2]}else{e=a}if(f>>>0<1073741799){J[d+12>>2]=f<<1;J[d>>2]=c+f;c=ba-16|0;ba=c;ba=c+16|0;c=d+12|0;c=J[(M[d>>2]>2]?c:d)>>2];if(c>>>0>=11){j=c+16&-16;c=j-1|0;c=(c|0)==11?j:c}else{c=10}c=c+1|0}else{c=2147483631}Ac(d,c);c=J[d>>2];if(b){Ab(c,e,b)}if((f|0)!=10){na(e)}J[a>>2]=c;J[a+8>>2]=J[a+8>>2]&-2147483648|J[d+4>>2]&2147483647;J[a+8>>2]=J[a+8>>2]|-2147483648;ba=d+16|0;break b}gb();B()}}if(K[a+11|0]>>>7|0){e=J[a>>2]}else{e=a}b=e+b|0;d=ba-16|0;ba=d;H[d+15|0]=0;while(1){if(g){H[b|0]=K[d+15|0];g=g-1|0;b=b+1|0;continue}break}ba=d+16|0;ld(a,i);H[h+15|0]=0;H[e+i|0]=K[h+15|0]}ba=h+16|0;break a}if(K[a+11|0]>>>7|0){e=J[a>>2]}else{e=a}d=ba-16|0;ba=d;ld(a,b);H[d+15|0]=0;H[b+e|0]=K[d+15|0];ba=d+16|0}}function kf(a){var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;f=ba-16|0;ba=f;a:{d=rd(a);b:{if(!d){a=0;break b}e=J[a+100>>2];g=J[a+96>>2];J[f+8>>2]=0;J[f>>2]=0;J[f+4>>2]=0;b=e-g|0;c=(b|0)/12|0;c:{if((e|0)==(g|0)){break c}if(c>>>0>=357913942){break a}e=oa(b);J[f>>2]=e;J[f+8>>2]=e+P(c,12);a=0;h=e;e=b-12|0;b=(e-((e>>>0)%12|0)|0)+12|0;e=pa(h,0,b);J[f+4>>2]=b+e;if(K[d+84|0]){d=c>>>0<=1?1:c;i=d&1;if(c>>>0>=2){j=d&-2;c=0;while(1){b=P(a,12);d=b+g|0;h=J[d>>2];k=J[d+4>>2];b=b+e|0;J[b+8>>2]=J[d+8>>2];J[b>>2]=h;J[b+4>>2]=k;b=P(a|1,12);d=b+g|0;h=J[d>>2];k=J[d+4>>2];b=b+e|0;J[b+8>>2]=J[d+8>>2];J[b>>2]=h;J[b+4>>2]=k;a=a+2|0;c=c+2|0;if((j|0)!=(c|0)){continue}break}}if(!i){break c}c=P(a,12);a=c+g|0;g=J[a+4>>2];d=J[a>>2];c=c+e|0;J[c+8>>2]=J[a+8>>2];J[c>>2]=d;J[c+4>>2]=g;break c}i=c>>>0<=1?1:c;a=J[d+68>>2];c=0;while(1){b=P(c,12);d=b+g|0;j=J[a+(J[d>>2]<<2)>>2];h=J[a+(J[d+4>>2]<<2)>>2];b=b+e|0;J[b+8>>2]=J[a+(J[d+8>>2]<<2)>>2];J[b+4>>2]=h;J[b>>2]=j;c=c+1|0;if((i|0)!=(c|0)){continue}break}}a=mf(f);c=J[f>>2];if(!c){break b}J[f+4>>2]=c;na(c)}ba=f+16|0;return a}qa();B()}function Kd(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;a:{if(J[a+64>>2]){break a}c=oa(32);J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;d=J[a+64>>2];J[a+64>>2]=c;if(!d){break a}c=J[d>>2];if(c){J[d+4>>2]=c;na(c)}na(d)}d=J[a+64>>2];c=J[a+28>>2]-1|0;if(c>>>0<=10){i=J[(c<<2)+14832>>2]}else{i=-1}c=P(i,K[a+24|0]);i=c;k=c>>31;c=Hl(c,k,b,0);b:{if((ca|0)<0){break b}c:{f=J[d+4>>2];e=J[d>>2];g=f-e|0;d:{if(c>>>0>g>>>0){j=c-g|0;h=J[d+8>>2];if(j>>>0<=h-f>>>0){l=d,m=pa(f,0,j)+j|0,J[l+4>>2]=m;break d}if((c|0)<0){break c}f=h-e|0;h=f<<1;f=f>>>0>=1073741823?2147483647:c>>>0>>0?h:c;h=oa(f);pa(h+g|0,0,j);g=ta(h,e,g);J[d+8>>2]=g+f;J[d+4>>2]=c+g;J[d>>2]=g;if(!e){break d}na(e);break d}if(c>>>0>=g>>>0){break d}J[d+4>>2]=c+e}c=J[d+28>>2];e=J[d+24>>2]+1|0;c=e?c:c+1|0;J[d+24>>2]=e;J[d+28>>2]=c;e=1;break b}qa();B()}if(e){c=J[a+64>>2];J[a>>2]=c;d=J[c+20>>2];J[a+8>>2]=J[c+16>>2];J[a+12>>2]=d;d=J[c+24>>2];c=J[c+28>>2];J[a+48>>2]=0;J[a+52>>2]=0;J[a+40>>2]=i;J[a+44>>2]=k;J[a+16>>2]=d;J[a+20>>2]=c;J[a+80>>2]=b}}function _g(a,b,c){var d=0,e=Q(0),f=0,g=Q(0),h=0,i=0,j=Q(0),k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;if(!(J[a+4>>2]!=-1|c-1>>>0>29)){J[a+4>>2]=c;h=K[b+24|0];c=0;J[a+20>>2]=0;if(h){d=h<<2;c=oa(d);f=pa(c,0,d)+d|0}d=J[a+8>>2];if(d){J[a+12>>2]=d;na(d)}J[a+8>>2]=c;J[a+16>>2]=f;J[a+12>>2]=f;d=h<<2;k=oa(d);o=oa(d);d=J[b+40>>2];s=J[b+44>>2];p=d;l=J[b+48>>2];m=J[b>>2];ua(c,l+J[m>>2]|0,d);n=ua(k,l+J[m>>2]|0,d);b=J[b+80>>2];a:{if(!(!h|b>>>0<2)){k=b;d=1;c=0;while(1){b=J[m>>2];f=Hl(d,c,p,s)+l|0;t=ua(o,b+f|0,p);u=J[a+8>>2];f=0;b=0;while(1){i=b<<2;q=t+i|0;e=N[q>>2];if(e!=e){break a}r=i+u|0;if(N[r>>2]>e){N[r>>2]=e;e=N[q>>2]}i=i+n|0;if(N[i>>2]>2]=e}b=b+1|0;if((h|0)!=(b|0)){continue}break}d=d+1|0;c=d?c:c+1|0;if((d|0)!=(k|0)|c){continue}break}}e=N[a+20>>2];if(h){c=J[a+8>>2];f=0;b=0;while(1){d=b<<2;g=N[d+c>>2];if(g!=g|Q(R(g))==Q(Infinity)){break a}j=N[d+n>>2];if(j!=j|Q(R(j))==Q(Infinity)){break a}g=Q(j-g);if(g>e){N[a+20>>2]=g;e=g}b=b+1|0;if((h|0)!=(b|0)){continue}break}}f=1;if(e!=Q(0)){break a}J[a+20>>2]=1065353216}na(o);na(n)}return f}function va(a){var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;A(+a);d=v(1)|0;b=v(0)|0;c=d>>>16|0;f=d-1072604335|0;if((f|0)==135337|f>>>0<135337){if(!b&(d|0)==1072693248){return 0}g=O[1879];a=a+-1;A(+a);b=v(1)|0;v(0)|0;x(0,0);x(1,b|0);h=+z();i=g*h;e=a*a;j=e*(a*O[1888]+O[1887]);k=i+j;l=e*e;return k+(l*(l*(e*(a*O[1896]+O[1895])+(a*O[1894]+O[1893]))+(e*(a*O[1892]+O[1891])+(a*O[1890]+O[1889])))+((a-h)*g+a*O[1880]+(j+(i-k))))}a:{if(c-32752>>>0<=4294934559){if(!(d&2147483647|b)){b=ba-16|0;O[b+8>>3]=-1;return O[b+8>>3]/0}if(!b&(d|0)==2146435072){break a}if(!(!(c&32768)&(c&32752)!=32752)){a=a-a;return a/a}A(+(a*4503599627370496));d=v(1)|0;b=v(0)|0;d=d-54525952|0}c=d-1072037888|0;f=c;c=(c>>>14&63)<<4;g=O[c+15184>>3]+ +(f>>20);h=O[1879];a=O[c+15176>>3];x(0,b-0|0);x(1,d-((f&-1048576)+(b>>>0>>0)|0)|0);a=a*(+z()-O[c+16200>>3]-O[c+16208>>3]);A(+a);b=v(1)|0;v(0)|0;x(0,0);x(1,b|0);i=+z();j=h*i;k=g+j;e=a*a;a=k+(e*(e*e*(a*O[1886]+O[1885])+(e*(a*O[1884]+O[1883])+(a*O[1882]+O[1881])))+((a-i)*h+O[1880]*a+(j+(g-k))))}return a}function Ib(a,b,c){var d=0,e=0,f=0,g=0,h=0;e=32-b|0;c=c<>2];f=32-d|0;c:{if((f|0)>=(b|0)){b=b+d|0;J[a+16>>2]=b;f=J[a+12>>2]|c>>>d;J[a+12>>2]=f;if((b|0)!=32){break c}b=J[a+4>>2];d:{if((b|0)!=J[a+8>>2]){J[b>>2]=f;J[a+4>>2]=b+4;break d}c=b;b=J[a>>2];c=c-b|0;g=c>>2;d=g+1|0;if(d>>>0>=1073741824){break b}e=c>>>1|0;d=c>>>0>=2147483644?1073741823:d>>>0>>0?e:d;if(d){if(d>>>0>=1073741824){break a}e=oa(d<<2)}else{e=0}g=e+(g<<2)|0;J[g>>2]=f;c=ta(e,b,c);J[a+8>>2]=c+(d<<2);J[a+4>>2]=g+4;J[a>>2]=c;if(!b){break d}na(b)}J[a+12>>2]=0;J[a+16>>2]=0;return}b=b-f|0;J[a+16>>2]=b;g=c>>>e|0;f=J[a+12>>2]|g>>>b;J[a+12>>2]=f;b=J[a+4>>2];e:{if((b|0)!=J[a+8>>2]){J[b>>2]=f;J[a+4>>2]=b+4;break e}c=b;b=J[a>>2];c=c-b|0;h=c>>2;d=h+1|0;if(d>>>0>=1073741824){break b}e=c>>>1|0;d=c>>>0>=2147483644?1073741823:d>>>0>>0?e:d;if(d){if(d>>>0>=1073741824){break a}e=oa(d<<2)}else{e=0}h=e+(h<<2)|0;J[h>>2]=f;c=ta(e,b,c);J[a+8>>2]=c+(d<<2);J[a+4>>2]=h+4;J[a>>2]=c;if(!b){break e}na(b)}J[a+12>>2]=g<<32-J[a+16>>2]}return}qa();B()}xa();B()}function sb(a,b){var c=0,d=0,e=0;c=(a|0)==(b|0);H[b+12|0]=c;a:{if(c){break a}while(1){d=J[b+8>>2];if(K[d+12|0]){break a}b:{c=J[d+8>>2];e=J[c>>2];if((e|0)==(d|0)){e=J[c+4>>2];if(!(!e|K[e+12|0])){break b}c:{if(J[d>>2]==(b|0)){b=d;break c}b=J[d+4>>2];a=J[b>>2];J[d+4>>2]=a;if(a){J[a+8>>2]=d;c=J[d+8>>2]}J[b+8>>2]=c;a=J[d+8>>2];J[((J[a>>2]!=(d|0))<<2)+a>>2]=b;J[b>>2]=d;J[d+8>>2]=b;c=J[b+8>>2];d=J[c>>2]}H[b+12|0]=1;H[c+12|0]=0;a=J[d+4>>2];J[c>>2]=a;if(a){J[a+8>>2]=c}J[d+8>>2]=J[c+8>>2];a=J[c+8>>2];J[((J[a>>2]!=(c|0))<<2)+a>>2]=d;J[d+4>>2]=c;J[c+8>>2]=d;return}if(!(K[e+12|0]|!e)){break b}d:{if(J[d>>2]!=(b|0)){b=d;break d}a=J[b+4>>2];J[d>>2]=a;if(a){J[a+8>>2]=d;c=J[d+8>>2]}J[b+8>>2]=c;a=J[d+8>>2];J[((J[a>>2]!=(d|0))<<2)+a>>2]=b;J[b+4>>2]=d;J[d+8>>2]=b;c=J[b+8>>2]}H[b+12|0]=1;H[c+12|0]=0;a=J[c+4>>2];b=J[a>>2];J[c+4>>2]=b;if(b){J[b+8>>2]=c}J[a+8>>2]=J[c+8>>2];b=J[c+8>>2];J[((J[b>>2]!=(c|0))<<2)+b>>2]=a;J[a>>2]=c;J[c+8>>2]=a;break a}H[d+12|0]=1;H[c+12|0]=(a|0)==(c|0);H[e+12|0]=1;b=c;if((c|0)!=(a|0)){continue}break}}}function Jl(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;a:{b:{c:{d:{e:{f:{g:{h:{i:{j:{k:{if(b){if(!c){break k}if(!d){break j}e=S(d)-S(b)|0;if(e>>>0<=31){break i}break c}if((d|0)==1|d>>>0>1){break c}ca=0;a=(a>>>0)/(c>>>0)|0;break a}if(!a){break h}if(!d|d-1&d){break g}a=b>>>Gl(d)|0;ca=0;break a}if(!(c-1&c)){break f}h=(S(c)+33|0)-S(b)|0;g=0-h|0;break d}h=e+1|0;g=63-e|0;break d}ca=0;a=(b>>>0)/(d>>>0)|0;break a}e=S(d)-S(b)|0;if(e>>>0<31){break e}break c}if((c|0)==1){break b}d=Gl(c);c=d&31;if((d&63)>>>0>=32){a=b>>>c|0}else{e=b>>>c|0;a=((1<>>c}ca=e;break a}h=e+1|0;g=63-e|0}e=h&63;f=e&31;if(e>>>0>=32){e=0;i=b>>>f|0}else{e=b>>>f|0;i=((1<>>f}g=g&63;f=g&31;if(g>>>0>=32){b=a<>>32-f|b<>>31;e=i<<1|b>>>31;f=m-(j+(e>>>0>g>>>0)|0)>>31;k=c&f;i=e-k|0;e=j-((d&f)+(e>>>0>>0)|0)|0;b=b<<1|a>>>31;a=l|a<<1;l=f&1;h=h-1|0;if(h){continue}break}}ca=b<<1|a>>>31;a=l|a<<1;break a}a=0;b=0}ca=b}return a}function Lg(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;j=ba-16|0;ba=j;J[j+8>>2]=0;J[j>>2]=0;J[j+4>>2]=0;a:{b:{e=c+1|0;if(e){if(e>>>0>=1073741824){break b}h=oa(e<<2);pa(h,0,(c<<2)+4|0)}c:{if((b|0)<=0){break c}e=0;if(b>>>0>=4){k=b&-4;while(1){f=e<<2;i=(J[f+a>>2]<<2)+h|0;J[i>>2]=J[i>>2]+1;i=(J[(f|4)+a>>2]<<2)+h|0;J[i>>2]=J[i>>2]+1;i=(J[(f|8)+a>>2]<<2)+h|0;J[i>>2]=J[i>>2]+1;f=(J[(f|12)+a>>2]<<2)+h|0;J[f>>2]=J[f>>2]+1;e=e+4|0;l=l+4|0;if((k|0)!=(l|0)){continue}break}}f=b&3;if(!f){break c}while(1){k=(J[(e<<2)+a>>2]<<2)+h|0;J[k>>2]=J[k>>2]+1;e=e+1|0;m=m+1|0;if((f|0)!=(m|0)){continue}break}}e=0;if((c|0)<0){a=0;break a}o=+(b|0);a=0;while(1){b=J[(e<<2)+h>>2];if((b|0)>0){n=+(b|0);g=n*va(n/o)+g;a=a+1|0}b=(c|0)==(e|0);e=e+1|0;if(!b){continue}break}break a}qa();B()}if(d){J[d>>2]=a}if(h){na(h)}g=-g;d:{if(R(g)<0x8000000000000000){b=R(g)>=1?~~(g>0?T(V(g*2.3283064365386963e-10),4294967295):W((g-+(~~g>>>0>>>0))*2.3283064365386963e-10))>>>0:0;a=~~g>>>0;break d}b=-2147483648;a=0}ba=j+16|0;ca=b;return a}function Ig(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{e:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;h=b-4|0;b=J[h>>2];if(d>>>0<=b>>>0){break d}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break d}if(M[c+(b<<3)>>2]>2]){J[e>>2]=b;J[e+4>>2]=J[a>>2];return}J[e>>2]=d;J[e+4>>2]=J[h>>2];return;default:if((d|0)<=8){Ua(a,b,e,c);return}g=d>>>1|0;i=g<<2;h=i+a|0;hc(a,h,c,g,e,g);d=d-g|0;hc(h,b,c,d,e+i|0,d);c=J[c>>2];d=h;while(1){if((b|0)==(d|0)){if((a|0)==(h|0)){break a}while(1){J[e>>2]=J[a>>2];e=e+4|0;a=a+4|0;if((h|0)!=(a|0)){continue}break}break a}g=J[c>>2];f=J[c+4>>2]-g>>3;i=J[d>>2];if(f>>>0<=i>>>0){break c}j=f;f=J[a>>2];if(j>>>0<=f>>>0){break c}j=i;k=f;i=J[g+(i<<3)>>2];g=J[g+(f<<3)>>2];f=i>>>0>>0;J[e>>2]=f?j:k;d=(f<<2)+d|0;e=e+4|0;a=((g>>>0<=i>>>0)<<2)+a|0;if((h|0)!=(a|0)){continue}break};break b;case 0:break a;case 1:break e}}J[e>>2]=J[a>>2];break a}ra();B()}ra();B()}if((b|0)==(d|0)){break a}while(1){J[e>>2]=J[d>>2];e=e+4|0;d=d+4|0;if((d|0)!=(b|0)){continue}break}}} function zg(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{e:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;h=b-4|0;b=J[h>>2];if(d>>>0<=b>>>0){break d}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break d}if(M[c+(b<<3)>>2]>2]){J[e>>2]=b;J[e+4>>2]=J[a>>2];return}J[e>>2]=d;J[e+4>>2]=J[h>>2];return;default:if((d|0)<=8){Ua(a,b,e,c);return}g=d>>>1|0;i=g<<2;h=i+a|0;_b(a,h,c,g,e,g);d=d-g|0;_b(h,b,c,d,e+i|0,d);c=J[c>>2];d=h;while(1){if((b|0)==(d|0)){if((a|0)==(h|0)){break a}while(1){J[e>>2]=J[a>>2];e=e+4|0;a=a+4|0;if((h|0)!=(a|0)){continue}break}break a}g=J[c>>2];f=J[c+4>>2]-g>>3;i=J[d>>2];if(f>>>0<=i>>>0){break c}j=f;f=J[a>>2];if(j>>>0<=f>>>0){break c}j=i;k=f;i=J[g+(i<<3)>>2];g=J[g+(f<<3)>>2];f=i>>>0>>0;J[e>>2]=f?j:k;d=(f<<2)+d|0;e=e+4|0;a=((g>>>0<=i>>>0)<<2)+a|0;if((h|0)!=(a|0)){continue}break};break b;case 0:break a;case 1:break e}}J[e>>2]=J[a>>2];break a}ra();B()}ra();B()}if((b|0)==(d|0)){break a}while(1){J[e>>2]=J[d>>2];e=e+4|0;d=d+4|0;if((d|0)!=(b|0)){continue}break}}}function yg(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{e:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;h=b-4|0;b=J[h>>2];if(d>>>0<=b>>>0){break d}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break d}if(M[c+(b<<3)>>2]>2]){J[e>>2]=b;J[e+4>>2]=J[a>>2];return}J[e>>2]=d;J[e+4>>2]=J[h>>2];return;default:if((d|0)<=8){Ua(a,b,e,c);return}g=d>>>1|0;i=g<<2;h=i+a|0;Zb(a,h,c,g,e,g);d=d-g|0;Zb(h,b,c,d,e+i|0,d);c=J[c>>2];d=h;while(1){if((b|0)==(d|0)){if((a|0)==(h|0)){break a}while(1){J[e>>2]=J[a>>2];e=e+4|0;a=a+4|0;if((h|0)!=(a|0)){continue}break}break a}g=J[c>>2];f=J[c+4>>2]-g>>3;i=J[d>>2];if(f>>>0<=i>>>0){break c}j=f;f=J[a>>2];if(j>>>0<=f>>>0){break c}j=i;k=f;i=J[g+(i<<3)>>2];g=J[g+(f<<3)>>2];f=i>>>0>>0;J[e>>2]=f?j:k;d=(f<<2)+d|0;e=e+4|0;a=((g>>>0<=i>>>0)<<2)+a|0;if((h|0)!=(a|0)){continue}break};break b;case 0:break a;case 1:break e}}J[e>>2]=J[a>>2];break a}ra();B()}ra();B()}if((b|0)==(d|0)){break a}while(1){J[e>>2]=J[d>>2];e=e+4|0;d=d+4|0;if((d|0)!=(b|0)){continue}break}}}function wg(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{e:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;h=b-4|0;b=J[h>>2];if(d>>>0<=b>>>0){break d}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break d}if(M[c+(b<<3)>>2]>2]){J[e>>2]=b;J[e+4>>2]=J[a>>2];return}J[e>>2]=d;J[e+4>>2]=J[h>>2];return;default:if((d|0)<=8){Ua(a,b,e,c);return}g=d>>>1|0;i=g<<2;h=i+a|0;Yb(a,h,c,g,e,g);d=d-g|0;Yb(h,b,c,d,e+i|0,d);c=J[c>>2];d=h;while(1){if((b|0)==(d|0)){if((a|0)==(h|0)){break a}while(1){J[e>>2]=J[a>>2];e=e+4|0;a=a+4|0;if((h|0)!=(a|0)){continue}break}break a}g=J[c>>2];f=J[c+4>>2]-g>>3;i=J[d>>2];if(f>>>0<=i>>>0){break c}j=f;f=J[a>>2];if(j>>>0<=f>>>0){break c}j=i;k=f;i=J[g+(i<<3)>>2];g=J[g+(f<<3)>>2];f=i>>>0>>0;J[e>>2]=f?j:k;d=(f<<2)+d|0;e=e+4|0;a=((g>>>0<=i>>>0)<<2)+a|0;if((h|0)!=(a|0)){continue}break};break b;case 0:break a;case 1:break e}}J[e>>2]=J[a>>2];break a}ra();B()}ra();B()}if((b|0)==(d|0)){break a}while(1){J[e>>2]=J[d>>2];e=e+4|0;d=d+4|0;if((d|0)!=(b|0)){continue}break}}}function vg(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{e:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;h=b-4|0;b=J[h>>2];if(d>>>0<=b>>>0){break d}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break d}if(M[c+(b<<3)>>2]>2]){J[e>>2]=b;J[e+4>>2]=J[a>>2];return}J[e>>2]=d;J[e+4>>2]=J[h>>2];return;default:if((d|0)<=8){Ua(a,b,e,c);return}g=d>>>1|0;i=g<<2;h=i+a|0;Xb(a,h,c,g,e,g);d=d-g|0;Xb(h,b,c,d,e+i|0,d);c=J[c>>2];d=h;while(1){if((b|0)==(d|0)){if((a|0)==(h|0)){break a}while(1){J[e>>2]=J[a>>2];e=e+4|0;a=a+4|0;if((h|0)!=(a|0)){continue}break}break a}g=J[c>>2];f=J[c+4>>2]-g>>3;i=J[d>>2];if(f>>>0<=i>>>0){break c}j=f;f=J[a>>2];if(j>>>0<=f>>>0){break c}j=i;k=f;i=J[g+(i<<3)>>2];g=J[g+(f<<3)>>2];f=i>>>0>>0;J[e>>2]=f?j:k;d=(f<<2)+d|0;e=e+4|0;a=((g>>>0<=i>>>0)<<2)+a|0;if((h|0)!=(a|0)){continue}break};break b;case 0:break a;case 1:break e}}J[e>>2]=J[a>>2];break a}ra();B()}ra();B()}if((b|0)==(d|0)){break a}while(1){J[e>>2]=J[d>>2];e=e+4|0;d=d+4|0;if((d|0)!=(b|0)){continue}break}}}function ug(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{e:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;h=b-4|0;b=J[h>>2];if(d>>>0<=b>>>0){break d}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break d}if(M[c+(b<<3)>>2]>2]){J[e>>2]=b;J[e+4>>2]=J[a>>2];return}J[e>>2]=d;J[e+4>>2]=J[h>>2];return;default:if((d|0)<=8){Ua(a,b,e,c);return}g=d>>>1|0;i=g<<2;h=i+a|0;Wb(a,h,c,g,e,g);d=d-g|0;Wb(h,b,c,d,e+i|0,d);c=J[c>>2];d=h;while(1){if((b|0)==(d|0)){if((a|0)==(h|0)){break a}while(1){J[e>>2]=J[a>>2];e=e+4|0;a=a+4|0;if((h|0)!=(a|0)){continue}break}break a}g=J[c>>2];f=J[c+4>>2]-g>>3;i=J[d>>2];if(f>>>0<=i>>>0){break c}j=f;f=J[a>>2];if(j>>>0<=f>>>0){break c}j=i;k=f;i=J[g+(i<<3)>>2];g=J[g+(f<<3)>>2];f=i>>>0>>0;J[e>>2]=f?j:k;d=(f<<2)+d|0;e=e+4|0;a=((g>>>0<=i>>>0)<<2)+a|0;if((h|0)!=(a|0)){continue}break};break b;case 0:break a;case 1:break e}}J[e>>2]=J[a>>2];break a}ra();B()}ra();B()}if((b|0)==(d|0)){break a}while(1){J[e>>2]=J[d>>2];e=e+4|0;d=d+4|0;if((d|0)!=(b|0)){continue}break}}}function tg(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{e:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;h=b-4|0;b=J[h>>2];if(d>>>0<=b>>>0){break d}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break d}if(M[c+(b<<3)>>2]>2]){J[e>>2]=b;J[e+4>>2]=J[a>>2];return}J[e>>2]=d;J[e+4>>2]=J[h>>2];return;default:if((d|0)<=8){Ua(a,b,e,c);return}g=d>>>1|0;i=g<<2;h=i+a|0;Vb(a,h,c,g,e,g);d=d-g|0;Vb(h,b,c,d,e+i|0,d);c=J[c>>2];d=h;while(1){if((b|0)==(d|0)){if((a|0)==(h|0)){break a}while(1){J[e>>2]=J[a>>2];e=e+4|0;a=a+4|0;if((h|0)!=(a|0)){continue}break}break a}g=J[c>>2];f=J[c+4>>2]-g>>3;i=J[d>>2];if(f>>>0<=i>>>0){break c}j=f;f=J[a>>2];if(j>>>0<=f>>>0){break c}j=i;k=f;i=J[g+(i<<3)>>2];g=J[g+(f<<3)>>2];f=i>>>0>>0;J[e>>2]=f?j:k;d=(f<<2)+d|0;e=e+4|0;a=((g>>>0<=i>>>0)<<2)+a|0;if((h|0)!=(a|0)){continue}break};break b;case 0:break a;case 1:break e}}J[e>>2]=J[a>>2];break a}ra();B()}ra();B()}if((b|0)==(d|0)){break a}while(1){J[e>>2]=J[d>>2];e=e+4|0;d=d+4|0;if((d|0)!=(b|0)){continue}break}}}function sg(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{e:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;h=b-4|0;b=J[h>>2];if(d>>>0<=b>>>0){break d}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break d}if(M[c+(b<<3)>>2]>2]){J[e>>2]=b;J[e+4>>2]=J[a>>2];return}J[e>>2]=d;J[e+4>>2]=J[h>>2];return;default:if((d|0)<=8){Ua(a,b,e,c);return}g=d>>>1|0;i=g<<2;h=i+a|0;Ub(a,h,c,g,e,g);d=d-g|0;Ub(h,b,c,d,e+i|0,d);c=J[c>>2];d=h;while(1){if((b|0)==(d|0)){if((a|0)==(h|0)){break a}while(1){J[e>>2]=J[a>>2];e=e+4|0;a=a+4|0;if((h|0)!=(a|0)){continue}break}break a}g=J[c>>2];f=J[c+4>>2]-g>>3;i=J[d>>2];if(f>>>0<=i>>>0){break c}j=f;f=J[a>>2];if(j>>>0<=f>>>0){break c}j=i;k=f;i=J[g+(i<<3)>>2];g=J[g+(f<<3)>>2];f=i>>>0>>0;J[e>>2]=f?j:k;d=(f<<2)+d|0;e=e+4|0;a=((g>>>0<=i>>>0)<<2)+a|0;if((h|0)!=(a|0)){continue}break};break b;case 0:break a;case 1:break e}}J[e>>2]=J[a>>2];break a}ra();B()}ra();B()}if((b|0)==(d|0)){break a}while(1){J[e>>2]=J[d>>2];e=e+4|0;d=d+4|0;if((d|0)!=(b|0)){continue}break}}}function rg(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{e:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;h=b-4|0;b=J[h>>2];if(d>>>0<=b>>>0){break d}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break d}if(M[c+(b<<3)>>2]>2]){J[e>>2]=b;J[e+4>>2]=J[a>>2];return}J[e>>2]=d;J[e+4>>2]=J[h>>2];return;default:if((d|0)<=8){Ua(a,b,e,c);return}g=d>>>1|0;i=g<<2;h=i+a|0;Tb(a,h,c,g,e,g);d=d-g|0;Tb(h,b,c,d,e+i|0,d);c=J[c>>2];d=h;while(1){if((b|0)==(d|0)){if((a|0)==(h|0)){break a}while(1){J[e>>2]=J[a>>2];e=e+4|0;a=a+4|0;if((h|0)!=(a|0)){continue}break}break a}g=J[c>>2];f=J[c+4>>2]-g>>3;i=J[d>>2];if(f>>>0<=i>>>0){break c}j=f;f=J[a>>2];if(j>>>0<=f>>>0){break c}j=i;k=f;i=J[g+(i<<3)>>2];g=J[g+(f<<3)>>2];f=i>>>0>>0;J[e>>2]=f?j:k;d=(f<<2)+d|0;e=e+4|0;a=((g>>>0<=i>>>0)<<2)+a|0;if((h|0)!=(a|0)){continue}break};break b;case 0:break a;case 1:break e}}J[e>>2]=J[a>>2];break a}ra();B()}ra();B()}if((b|0)==(d|0)){break a}while(1){J[e>>2]=J[d>>2];e=e+4|0;d=d+4|0;if((d|0)!=(b|0)){continue}break}}}function qg(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{e:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;h=b-4|0;b=J[h>>2];if(d>>>0<=b>>>0){break d}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break d}if(M[c+(b<<3)>>2]>2]){J[e>>2]=b;J[e+4>>2]=J[a>>2];return}J[e>>2]=d;J[e+4>>2]=J[h>>2];return;default:if((d|0)<=8){Ua(a,b,e,c);return}g=d>>>1|0;i=g<<2;h=i+a|0;Sb(a,h,c,g,e,g);d=d-g|0;Sb(h,b,c,d,e+i|0,d);c=J[c>>2];d=h;while(1){if((b|0)==(d|0)){if((a|0)==(h|0)){break a}while(1){J[e>>2]=J[a>>2];e=e+4|0;a=a+4|0;if((h|0)!=(a|0)){continue}break}break a}g=J[c>>2];f=J[c+4>>2]-g>>3;i=J[d>>2];if(f>>>0<=i>>>0){break c}j=f;f=J[a>>2];if(j>>>0<=f>>>0){break c}j=i;k=f;i=J[g+(i<<3)>>2];g=J[g+(f<<3)>>2];f=i>>>0>>0;J[e>>2]=f?j:k;d=(f<<2)+d|0;e=e+4|0;a=((g>>>0<=i>>>0)<<2)+a|0;if((h|0)!=(a|0)){continue}break};break b;case 0:break a;case 1:break e}}J[e>>2]=J[a>>2];break a}ra();B()}ra();B()}if((b|0)==(d|0)){break a}while(1){J[e>>2]=J[d>>2];e=e+4|0;d=d+4|0;if((d|0)!=(b|0)){continue}break}}}function Hg(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{e:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;h=b-4|0;b=J[h>>2];if(d>>>0<=b>>>0){break d}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break d}if(M[c+(b<<3)>>2]>2]){J[e>>2]=b;J[e+4>>2]=J[a>>2];return}J[e>>2]=d;J[e+4>>2]=J[h>>2];return;default:if((d|0)<=8){Ua(a,b,e,c);return}g=d>>>1|0;i=g<<2;h=i+a|0;gc(a,h,c,g,e,g);d=d-g|0;gc(h,b,c,d,e+i|0,d);c=J[c>>2];d=h;while(1){if((b|0)==(d|0)){if((a|0)==(h|0)){break a}while(1){J[e>>2]=J[a>>2];e=e+4|0;a=a+4|0;if((h|0)!=(a|0)){continue}break}break a}g=J[c>>2];f=J[c+4>>2]-g>>3;i=J[d>>2];if(f>>>0<=i>>>0){break c}j=f;f=J[a>>2];if(j>>>0<=f>>>0){break c}j=i;k=f;i=J[g+(i<<3)>>2];g=J[g+(f<<3)>>2];f=i>>>0>>0;J[e>>2]=f?j:k;d=(f<<2)+d|0;e=e+4|0;a=((g>>>0<=i>>>0)<<2)+a|0;if((h|0)!=(a|0)){continue}break};break b;case 0:break a;case 1:break e}}J[e>>2]=J[a>>2];break a}ra();B()}ra();B()}if((b|0)==(d|0)){break a}while(1){J[e>>2]=J[d>>2];e=e+4|0;d=d+4|0;if((d|0)!=(b|0)){continue}break}}}function Gg(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{e:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;h=b-4|0;b=J[h>>2];if(d>>>0<=b>>>0){break d}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break d}if(M[c+(b<<3)>>2]>2]){J[e>>2]=b;J[e+4>>2]=J[a>>2];return}J[e>>2]=d;J[e+4>>2]=J[h>>2];return;default:if((d|0)<=8){Ua(a,b,e,c);return}g=d>>>1|0;i=g<<2;h=i+a|0;fc(a,h,c,g,e,g);d=d-g|0;fc(h,b,c,d,e+i|0,d);c=J[c>>2];d=h;while(1){if((b|0)==(d|0)){if((a|0)==(h|0)){break a}while(1){J[e>>2]=J[a>>2];e=e+4|0;a=a+4|0;if((h|0)!=(a|0)){continue}break}break a}g=J[c>>2];f=J[c+4>>2]-g>>3;i=J[d>>2];if(f>>>0<=i>>>0){break c}j=f;f=J[a>>2];if(j>>>0<=f>>>0){break c}j=i;k=f;i=J[g+(i<<3)>>2];g=J[g+(f<<3)>>2];f=i>>>0>>0;J[e>>2]=f?j:k;d=(f<<2)+d|0;e=e+4|0;a=((g>>>0<=i>>>0)<<2)+a|0;if((h|0)!=(a|0)){continue}break};break b;case 0:break a;case 1:break e}}J[e>>2]=J[a>>2];break a}ra();B()}ra();B()}if((b|0)==(d|0)){break a}while(1){J[e>>2]=J[d>>2];e=e+4|0;d=d+4|0;if((d|0)!=(b|0)){continue}break}}}function Fg(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{e:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;h=b-4|0;b=J[h>>2];if(d>>>0<=b>>>0){break d}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break d}if(M[c+(b<<3)>>2]>2]){J[e>>2]=b;J[e+4>>2]=J[a>>2];return}J[e>>2]=d;J[e+4>>2]=J[h>>2];return;default:if((d|0)<=8){Ua(a,b,e,c);return}g=d>>>1|0;i=g<<2;h=i+a|0;ec(a,h,c,g,e,g);d=d-g|0;ec(h,b,c,d,e+i|0,d);c=J[c>>2];d=h;while(1){if((b|0)==(d|0)){if((a|0)==(h|0)){break a}while(1){J[e>>2]=J[a>>2];e=e+4|0;a=a+4|0;if((h|0)!=(a|0)){continue}break}break a}g=J[c>>2];f=J[c+4>>2]-g>>3;i=J[d>>2];if(f>>>0<=i>>>0){break c}j=f;f=J[a>>2];if(j>>>0<=f>>>0){break c}j=i;k=f;i=J[g+(i<<3)>>2];g=J[g+(f<<3)>>2];f=i>>>0>>0;J[e>>2]=f?j:k;d=(f<<2)+d|0;e=e+4|0;a=((g>>>0<=i>>>0)<<2)+a|0;if((h|0)!=(a|0)){continue}break};break b;case 0:break a;case 1:break e}}J[e>>2]=J[a>>2];break a}ra();B()}ra();B()}if((b|0)==(d|0)){break a}while(1){J[e>>2]=J[d>>2];e=e+4|0;d=d+4|0;if((d|0)!=(b|0)){continue}break}}}function Eg(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{e:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;h=b-4|0;b=J[h>>2];if(d>>>0<=b>>>0){break d}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break d}if(M[c+(b<<3)>>2]>2]){J[e>>2]=b;J[e+4>>2]=J[a>>2];return}J[e>>2]=d;J[e+4>>2]=J[h>>2];return;default:if((d|0)<=8){Ua(a,b,e,c);return}g=d>>>1|0;i=g<<2;h=i+a|0;dc(a,h,c,g,e,g);d=d-g|0;dc(h,b,c,d,e+i|0,d);c=J[c>>2];d=h;while(1){if((b|0)==(d|0)){if((a|0)==(h|0)){break a}while(1){J[e>>2]=J[a>>2];e=e+4|0;a=a+4|0;if((h|0)!=(a|0)){continue}break}break a}g=J[c>>2];f=J[c+4>>2]-g>>3;i=J[d>>2];if(f>>>0<=i>>>0){break c}j=f;f=J[a>>2];if(j>>>0<=f>>>0){break c}j=i;k=f;i=J[g+(i<<3)>>2];g=J[g+(f<<3)>>2];f=i>>>0>>0;J[e>>2]=f?j:k;d=(f<<2)+d|0;e=e+4|0;a=((g>>>0<=i>>>0)<<2)+a|0;if((h|0)!=(a|0)){continue}break};break b;case 0:break a;case 1:break e}}J[e>>2]=J[a>>2];break a}ra();B()}ra();B()}if((b|0)==(d|0)){break a}while(1){J[e>>2]=J[d>>2];e=e+4|0;d=d+4|0;if((d|0)!=(b|0)){continue}break}}}function Dg(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{e:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;h=b-4|0;b=J[h>>2];if(d>>>0<=b>>>0){break d}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break d}if(M[c+(b<<3)>>2]>2]){J[e>>2]=b;J[e+4>>2]=J[a>>2];return}J[e>>2]=d;J[e+4>>2]=J[h>>2];return;default:if((d|0)<=8){Ua(a,b,e,c);return}g=d>>>1|0;i=g<<2;h=i+a|0;cc(a,h,c,g,e,g);d=d-g|0;cc(h,b,c,d,e+i|0,d);c=J[c>>2];d=h;while(1){if((b|0)==(d|0)){if((a|0)==(h|0)){break a}while(1){J[e>>2]=J[a>>2];e=e+4|0;a=a+4|0;if((h|0)!=(a|0)){continue}break}break a}g=J[c>>2];f=J[c+4>>2]-g>>3;i=J[d>>2];if(f>>>0<=i>>>0){break c}j=f;f=J[a>>2];if(j>>>0<=f>>>0){break c}j=i;k=f;i=J[g+(i<<3)>>2];g=J[g+(f<<3)>>2];f=i>>>0>>0;J[e>>2]=f?j:k;d=(f<<2)+d|0;e=e+4|0;a=((g>>>0<=i>>>0)<<2)+a|0;if((h|0)!=(a|0)){continue}break};break b;case 0:break a;case 1:break e}}J[e>>2]=J[a>>2];break a}ra();B()}ra();B()}if((b|0)==(d|0)){break a}while(1){J[e>>2]=J[d>>2];e=e+4|0;d=d+4|0;if((d|0)!=(b|0)){continue}break}}}function Cg(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{e:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;h=b-4|0;b=J[h>>2];if(d>>>0<=b>>>0){break d}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break d}if(M[c+(b<<3)>>2]>2]){J[e>>2]=b;J[e+4>>2]=J[a>>2];return}J[e>>2]=d;J[e+4>>2]=J[h>>2];return;default:if((d|0)<=8){Ua(a,b,e,c);return}g=d>>>1|0;i=g<<2;h=i+a|0;bc(a,h,c,g,e,g);d=d-g|0;bc(h,b,c,d,e+i|0,d);c=J[c>>2];d=h;while(1){if((b|0)==(d|0)){if((a|0)==(h|0)){break a}while(1){J[e>>2]=J[a>>2];e=e+4|0;a=a+4|0;if((h|0)!=(a|0)){continue}break}break a}g=J[c>>2];f=J[c+4>>2]-g>>3;i=J[d>>2];if(f>>>0<=i>>>0){break c}j=f;f=J[a>>2];if(j>>>0<=f>>>0){break c}j=i;k=f;i=J[g+(i<<3)>>2];g=J[g+(f<<3)>>2];f=i>>>0>>0;J[e>>2]=f?j:k;d=(f<<2)+d|0;e=e+4|0;a=((g>>>0<=i>>>0)<<2)+a|0;if((h|0)!=(a|0)){continue}break};break b;case 0:break a;case 1:break e}}J[e>>2]=J[a>>2];break a}ra();B()}ra();B()}if((b|0)==(d|0)){break a}while(1){J[e>>2]=J[d>>2];e=e+4|0;d=d+4|0;if((d|0)!=(b|0)){continue}break}}}function Bg(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{e:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;h=b-4|0;b=J[h>>2];if(d>>>0<=b>>>0){break d}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break d}if(M[c+(b<<3)>>2]>2]){J[e>>2]=b;J[e+4>>2]=J[a>>2];return}J[e>>2]=d;J[e+4>>2]=J[h>>2];return;default:if((d|0)<=8){Ua(a,b,e,c);return}g=d>>>1|0;i=g<<2;h=i+a|0;ac(a,h,c,g,e,g);d=d-g|0;ac(h,b,c,d,e+i|0,d);c=J[c>>2];d=h;while(1){if((b|0)==(d|0)){if((a|0)==(h|0)){break a}while(1){J[e>>2]=J[a>>2];e=e+4|0;a=a+4|0;if((h|0)!=(a|0)){continue}break}break a}g=J[c>>2];f=J[c+4>>2]-g>>3;i=J[d>>2];if(f>>>0<=i>>>0){break c}j=f;f=J[a>>2];if(j>>>0<=f>>>0){break c}j=i;k=f;i=J[g+(i<<3)>>2];g=J[g+(f<<3)>>2];f=i>>>0>>0;J[e>>2]=f?j:k;d=(f<<2)+d|0;e=e+4|0;a=((g>>>0<=i>>>0)<<2)+a|0;if((h|0)!=(a|0)){continue}break};break b;case 0:break a;case 1:break e}}J[e>>2]=J[a>>2];break a}ra();B()}ra();B()}if((b|0)==(d|0)){break a}while(1){J[e>>2]=J[d>>2];e=e+4|0;d=d+4|0;if((d|0)!=(b|0)){continue}break}}}function Ag(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{e:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;h=b-4|0;b=J[h>>2];if(d>>>0<=b>>>0){break d}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break d}if(M[c+(b<<3)>>2]>2]){J[e>>2]=b;J[e+4>>2]=J[a>>2];return}J[e>>2]=d;J[e+4>>2]=J[h>>2];return;default:if((d|0)<=8){Ua(a,b,e,c);return}g=d>>>1|0;i=g<<2;h=i+a|0;$b(a,h,c,g,e,g);d=d-g|0;$b(h,b,c,d,e+i|0,d);c=J[c>>2];d=h;while(1){if((b|0)==(d|0)){if((a|0)==(h|0)){break a}while(1){J[e>>2]=J[a>>2];e=e+4|0;a=a+4|0;if((h|0)!=(a|0)){continue}break}break a}g=J[c>>2];f=J[c+4>>2]-g>>3;i=J[d>>2];if(f>>>0<=i>>>0){break c}j=f;f=J[a>>2];if(j>>>0<=f>>>0){break c}j=i;k=f;i=J[g+(i<<3)>>2];g=J[g+(f<<3)>>2];f=i>>>0>>0;J[e>>2]=f?j:k;d=(f<<2)+d|0;e=e+4|0;a=((g>>>0<=i>>>0)<<2)+a|0;if((h|0)!=(a|0)){continue}break};break b;case 0:break a;case 1:break e}}J[e>>2]=J[a>>2];break a}ra();B()}ra();B()}if((b|0)==(d|0)){break a}while(1){J[e>>2]=J[d>>2];e=e+4|0;d=d+4|0;if((d|0)!=(b|0)){continue}break}}}function zj(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0;g=ba-16|0;ba=g;e=J[a+4>>2];d=J[e>>2];a:{b=J[a+12>>2];c=J[b+28>>2]-J[b+24>>2]|0;f=c>>2;b:{if(f>>>0<=J[e+8>>2]-d>>2>>>0){break b}if((c|0)<0){break a}b=J[e+4>>2];c=oa(c);f=c+(f<<2)|0;h=c+(b-d&-4)|0;c=h;if((b|0)!=(d|0)){while(1){c=c-4|0;b=b-4|0;J[c>>2]=J[b>>2];if((b|0)!=(d|0)){continue}break}}J[e+8>>2]=f;J[e+4>>2]=h;J[e>>2]=c;if(!d){break b}na(d)}b=J[a+12>>2];c=J[b+28>>2];b=J[b+24>>2];J[g+12>>2]=0;b=c-b>>2;d=a+96|0;e=J[d>>2];c=J[a+100>>2]-e>>2;c:{if(b>>>0>c>>>0){jc(d,b-c|0,g+12|0);break c}if(b>>>0>=c>>>0){break c}J[a+100>>2]=e+(b<<2)}e=a+8|0;b=J[a+116>>2];d:{if(b){d=J[b>>2];if((d|0)==J[b+4>>2]){c=1;break d}b=0;while(1){c=Xf(e,J[(b<<2)+d>>2]);if(!c){break d}f=J[a+116>>2];d=J[f>>2];b=b+1|0;if(b>>>0>2]-d>>2>>>0){continue}break}break d}c=1;a=J[a+12>>2];a=J[a+4>>2]-J[a>>2]|0;if(a>>>0<12){break d}a=(a>>2>>>0)/3|0;b=0;while(1){c=Xf(e,P(b,3));if(!c){break d}b=b+1|0;if((a|0)!=(b|0)){continue}break}}ba=g+16|0;return c|0}qa();B()}function Zk(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;c=J[b+88>>2];if(!(!c|J[c>>2]!=1)){e=J[c+8>>2];J[a+4>>2]=K[e|0]|K[e+1|0]<<8|(K[e+2|0]<<16|K[e+3|0]<<24);f=a+8|0;d=K[b+24|0];h=J[a+8>>2];g=J[a+12>>2]-h>>2;a:{if(d>>>0>g>>>0){Fa(f,d-g|0);d=K[b+24|0];e=J[c+8>>2];break a}if(d>>>0>=g>>>0){break a}J[a+12>>2]=h+(d<<2)}b:{if(!d){b=4;break b}h=d&3;f=J[f>>2];c:{if(d-1>>>0<3){b=4;d=0;break c}k=d&252;d=0;b=4;while(1){g=d<<2;c=b+e|0;J[g+f>>2]=K[c|0]|K[c+1|0]<<8|(K[c+2|0]<<16|K[c+3|0]<<24);J[f+(g|4)>>2]=K[c+4|0]|K[c+5|0]<<8|(K[c+6|0]<<16|K[c+7|0]<<24);J[f+(g|8)>>2]=K[c+8|0]|K[c+9|0]<<8|(K[c+10|0]<<16|K[c+11|0]<<24);J[f+(g|12)>>2]=K[c+12|0]|K[c+13|0]<<8|(K[c+14|0]<<16|K[c+15|0]<<24);d=d+4|0;b=b+16|0;i=i+4|0;if((k|0)!=(i|0)){continue}break}}if(!h){break b}while(1){c=b+e|0;J[f+(d<<2)>>2]=K[c|0]|K[c+1|0]<<8|(K[c+2|0]<<16|K[c+3|0]<<24);d=d+1|0;b=b+4|0;j=j+1|0;if((h|0)!=(j|0)){continue}break}}d=a;a=b+e|0;J[d+20>>2]=K[a|0]|K[a+1|0]<<8|(K[a+2|0]<<16|K[a+3|0]<<24);d=1}return d|0}function Le(a,b,c,d){var e=0,f=0,g=0,h=0;g=ba-32|0;ba=g;e=d&2147483647;h=e;f=e-1006698496|0;e=e-1140785152|0;a:{if((f|0)==(e|0)&0|e>>>0>f>>>0){e=c<<4|b>>>28;c=d<<4|c>>>28;b=b&268435455;if((b|0)==134217728&(a|0)!=0|b>>>0>134217728){f=c+1073741824|0;e=e+1|0;f=e?f:f+1|0;break a}f=c+1073741824|0;if(a|(b|0)!=134217728){break a}a=e&1;e=a+e|0;f=a>>>0>e>>>0?f+1|0:f;break a}if(!(!c&(h|0)==2147418112?!(a|b):h>>>0<2147418112)){a=d<<4|c>>>28;e=c<<4|b>>>28;f=a&524287|2146959360;break a}e=0;f=2146435072;if(h>>>0>1140785151){break a}f=0;h=h>>>16|0;if(h>>>0<15249){break a}e=d&65535|65536;Pa(g+16|0,a,b,c,e,h-15233|0);Gb(g,a,b,c,e,15361-h|0);b=J[g+8>>2];e=b<<4;b=J[g+12>>2]<<4|b>>>28;c=J[g>>2];f=J[g+4>>2];h=f;e=f>>>28|e;f=b;a=h&268435455;b=c|(J[g+16>>2]|J[g+24>>2]|(J[g+20>>2]|J[g+28>>2]))!=0;if((a|0)==134217728&(b|0)!=0|a>>>0>134217728){e=e+1|0;f=e?f:f+1|0;break a}if(b|(a|0)!=134217728){break a}a=e;e=e+(e&1)|0;f=a>>>0>e>>>0?f+1|0:f}ba=g+32|0;x(0,e|0);x(1,d&-2147483648|f);return+z()}function nj(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;k=J[a+12>>2];c=J[a+68>>2];d=J[c+80>>2];H[b+84|0]=0;n=b+68|0;i=J[b+68>>2];e=J[b+72>>2]-i>>2;a:{if(e>>>0>>0){Ma(n,d-e|0,11424);c=J[a+68>>2];d=J[c+80>>2];break a}if(d>>>0>=e>>>0){break a}J[b+72>>2]=i+(d<<2)}b=J[c+100>>2];e=J[c+96>>2];i=(b-e|0)/12|0;m=1;b:{if((b|0)==(e|0)){break b}k=J[k+28>>2];f=J[k>>2];if((f|0)==-1){return 0}o=i>>>0<=1?1:i;c=e;b=0;m=0;while(1){g=J[c>>2];if(g>>>0>=d>>>0){break b}j=J[J[a+72>>2]+12>>2];h=J[j+(f<<2)>>2];if(h>>>0>=d>>>0){break b}f=J[n>>2];J[f+(g<<2)>>2]=h;g=k+(l<<2)|0;h=J[g+4>>2];if((h|0)==-1){break b}l=J[c+4>>2];if(l>>>0>=d>>>0){break b}h=J[(h<<2)+j>>2];if(h>>>0>=d>>>0){break b}J[f+(l<<2)>>2]=h;g=J[g+8>>2];if((g|0)==-1){break b}c=J[c+8>>2];if(c>>>0>=d>>>0){break b}j=J[(g<<2)+j>>2];if(j>>>0>=d>>>0){break b}J[f+(c<<2)>>2]=j;b=b+1|0;m=i>>>0<=b>>>0;if((b|0)==(o|0)){break b}c=e+P(b,12)|0;l=P(b,3);f=J[k+(l<<2)>>2];if((f|0)!=-1){continue}break}}return m|0}function xg(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;h=J[d+80>>2];e=ba-48|0;ba=e;a=J[a+4>>2];m=a-2|0;a:{if(m>>>0>28){break a}j=J[J[d>>2]>>2]+J[d+48>>2]|0;J[e+16>>2]=a;a=-1<>2]=a^-1;a=-2-a|0;J[e+24>>2]=a;J[e+32>>2]=(a|0)/2;N[e+28>>2]=Q(2)/Q(a|0);f=J[c>>2];if((f|0)!=J[c+4>>2]){a=0;d=0;while(1){g=J[(d<<2)+f>>2];h=e+36|0;k=J[J[b>>2]>>2];l=J[b+48>>2];f=J[b+40>>2];i=J[b+44>>2];if(!K[b+84|0]){g=J[J[b+68>>2]+(g<<2)>>2]}g=Hl(f,i,g,0);i=g;g=g+l|0;ua(h,g+k|0,f);Uf(e+16|0,h,e+12|0,e+8|0);f=a<<2;J[f+j>>2]=J[e+12>>2];J[(f|4)+j>>2]=J[e+8>>2];a=a+2|0;d=d+1|0;f=J[c>>2];if(d>>>0>2]-f>>2>>>0){continue}break}break a}if(!h){break a}d=0;a=0;while(1){k=e+36|0;l=J[J[b>>2]>>2];i=J[b+48>>2];c=J[b+40>>2];f=Hl(c,J[b+44>>2],K[b+84|0]?a:J[J[b+68>>2]+(a<<2)>>2],0);g=f;f=f+i|0;ua(k,f+l|0,c);Uf(e+16|0,k,e+12|0,e+8|0);c=d<<2;J[c+j>>2]=J[e+12>>2];J[(c|4)+j>>2]=J[e+8>>2];d=d+2|0;a=a+1|0;if((h|0)!=(a|0)){continue}break}}ba=e+48|0;return m>>>0<29|0}function yk(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=Q(0),j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;k=ba-16|0;ba=k;if(J[c+28>>2]==9){d=J[a+4>>2];h=K[c+24|0];e=h<<2;f=oa(e);l=k+8|0;J[l>>2]=1065353216;i=N[a+20>>2];d=-1<0){N[l>>2]=i/Q(d|0)}o=(d|0)>0;a:{if(!o){break a}j=J[c+80>>2];if(!j){break a}if(h){p=J[J[b>>2]>>2]+J[b+48>>2]|0;t=h&254;u=h&1;b=0;while(1){m=J[a+8>>2];i=N[l>>2];d=0;n=0;if((h|0)!=1){while(1){g=d<<2;q=(b<<2)+p|0;N[g+f>>2]=Q(i*Q(J[q>>2]))+N[g+m>>2];g=g|4;N[g+f>>2]=Q(i*Q(J[q+4>>2]))+N[g+m>>2];d=d+2|0;b=b+2|0;n=n+2|0;if((t|0)!=(n|0)){continue}break}}if(u){d=d<<2;N[d+f>>2]=Q(i*Q(J[(b<<2)+p>>2]))+N[d+m>>2];b=b+1|0}ua(J[J[c+64>>2]>>2]+r|0,f,e);r=e+r|0;s=s+1|0;if((s|0)!=(j|0)){continue}break}break a}b=0;if((j|0)!=1){a=j&-2;d=0;while(1){ua(J[J[c+64>>2]>>2]+b|0,f,e);b=b+e|0;ua(b+J[J[c+64>>2]>>2]|0,f,e);b=b+e|0;d=d+2|0;if((a|0)!=(d|0)){continue}break}}if(!(j&1)){break a}ua(J[J[c+64>>2]>>2]+b|0,f,e)}na(f)}ba=k+16|0;return o|0}function Aj(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;c=J[a+12>>2];d=J[a+108>>2];e=J[d+80>>2];H[b+84|0]=0;m=b+68|0;h=J[b+68>>2];f=J[b+72>>2]-h>>2;a:{if(f>>>0>>0){Ma(m,e-f|0,11424);d=J[a+108>>2];e=J[d+80>>2];break a}if(e>>>0>=f>>>0){break a}J[b+72>>2]=h+(e<<2)}b=J[d+100>>2];f=J[d+96>>2];h=(b-f|0)/12|0;k=1;b:{if((b|0)==(f|0)){break b}n=h>>>0<=1?1:h;o=J[c>>2];c=0;d=f;b=0;k=0;while(1){c=(c<<2)+o|0;i=J[c>>2];if((i|0)==-1){break b}g=J[d>>2];if(g>>>0>=e>>>0){break b}l=J[J[a+112>>2]+12>>2];j=J[l+(i<<2)>>2];if(j>>>0>=e>>>0){break b}i=J[m>>2];J[i+(g<<2)>>2]=j;g=J[c+4>>2];if((g|0)==-1){break b}j=J[d+4>>2];if(j>>>0>=e>>>0){break b}g=J[(g<<2)+l>>2];if(g>>>0>=e>>>0){break b}J[i+(j<<2)>>2]=g;c=J[c+8>>2];if((c|0)==-1){break b}d=J[d+8>>2];if(d>>>0>=e>>>0){break b}c=J[(c<<2)+l>>2];if(c>>>0>=e>>>0){break b}J[i+(d<<2)>>2]=c;b=b+1|0;k=h>>>0<=b>>>0;if((b|0)==(n|0)){break b}c=P(b,3);d=f+P(b,12)|0;if((b|0)!=1431655765){continue}break}}return k|0}function sj(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;c=J[a+12>>2];d=J[a+68>>2];e=J[d+80>>2];H[b+84|0]=0;m=b+68|0;h=J[b+68>>2];f=J[b+72>>2]-h>>2;a:{if(f>>>0>>0){Ma(m,e-f|0,11424);d=J[a+68>>2];e=J[d+80>>2];break a}if(e>>>0>=f>>>0){break a}J[b+72>>2]=h+(e<<2)}b=J[d+100>>2];f=J[d+96>>2];h=(b-f|0)/12|0;k=1;b:{if((b|0)==(f|0)){break b}n=h>>>0<=1?1:h;o=J[c>>2];c=0;d=f;b=0;k=0;while(1){c=(c<<2)+o|0;i=J[c>>2];if((i|0)==-1){break b}g=J[d>>2];if(g>>>0>=e>>>0){break b}l=J[J[a+72>>2]+12>>2];j=J[l+(i<<2)>>2];if(j>>>0>=e>>>0){break b}i=J[m>>2];J[i+(g<<2)>>2]=j;g=J[c+4>>2];if((g|0)==-1){break b}j=J[d+4>>2];if(j>>>0>=e>>>0){break b}g=J[(g<<2)+l>>2];if(g>>>0>=e>>>0){break b}J[i+(j<<2)>>2]=g;c=J[c+8>>2];if((c|0)==-1){break b}d=J[d+8>>2];if(d>>>0>=e>>>0){break b}c=J[(c<<2)+l>>2];if(c>>>0>=e>>>0){break b}J[i+(d<<2)>>2]=c;b=b+1|0;k=h>>>0<=b>>>0;if((b|0)==(n|0)){break b}c=P(b,3);d=f+P(b,12)|0;if((b|0)!=1431655765){continue}break}}return k|0}function mg(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;c=ba+-64|0;ba=c;d=oa(80);i=J[a+8>>2];J[d+12>>2]=0;J[d+16>>2]=0;J[d>>2]=11692;J[d+4>>2]=0;J[d+20>>2]=0;J[d+24>>2]=0;J[d+28>>2]=0;J[d+32>>2]=0;J[d+36>>2]=0;J[d+40>>2]=0;J[d+44>>2]=0;J[d+48>>2]=0;J[d+52>>2]=0;J[d+76>>2]=0;J[d+72>>2]=b;J[d+68>>2]=i;J[d- -64>>2]=0;j=d+56|0;e=j;J[e>>2]=0;J[e+4>>2]=0;J[d+8>>2]=11856;e=J[a+12>>2];J[c+40>>2]=0;J[c+44>>2]=0;J[c+32>>2]=0;J[c+36>>2]=0;f=c+24|0;J[f>>2]=0;J[f+4>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+56>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;J[c+48>>2]=0;J[c+52>>2]=0;J[c>>2]=11856;J[c+4>>2]=e;g=J[e>>2];h=J[e+4>>2];H[c+63|0]=0;k=f;f=c+63|0;Na(k,(h-g>>2>>>0)/3|0,f);g=J[c+4>>2];h=J[g+28>>2];g=J[g+24>>2];H[c+63|0]=0;Na(c+36|0,h-g>>2,f);J[c+20>>2]=d;J[c+16>>2]=i;J[c+12>>2]=b;J[c+8>>2]=e;J[d+76>>2]=a+72;Kc(d+8|0,c);Rb(j,J[c+48>>2],J[c+52>>2]);J[c>>2]=11856;a=J[c+48>>2];if(a){J[c+52>>2]=a;na(a)}J[c>>2]=11672;a=J[c+36>>2];if(a){na(a)}a=J[c+24>>2];if(a){na(a)}ba=c- -64|0;return d}function Sa(a,b,c,d,e,f,g){var h=0,i=0,j=0,k=0,l=0;a:{b:{if((e|0)<=(f|0)){if((a|0)==(b|0)){break b}f=g;e=a;while(1){J[f>>2]=J[e>>2];f=f+4|0;e=e+4|0;if((e|0)!=(b|0)){continue}break}if((f|0)==(g|0)){break b}d=J[d>>2];while(1){if((b|0)==(c|0)){ta(a,g,f-g|0);return}c:{e=J[d>>2];h=J[d+4>>2]-e>>3;i=J[b>>2];if(h>>>0<=i>>>0){break c}j=h;h=J[g>>2];if(j>>>0<=h>>>0){break c}j=h;k=i;i=J[e+(i<<3)>>2];e=J[e+(h<<3)>>2];h=i>>>0>=e>>>0;J[a>>2]=h?j:k;b=((e>>>0>i>>>0)<<2)+b|0;a=a+4|0;g=(h<<2)+g|0;if((g|0)!=(f|0)){continue}break b}break}ra();B()}if((b|0)==(c|0)){break b}f=g;e=b;while(1){J[f>>2]=J[e>>2];f=f+4|0;e=e+4|0;if((e|0)!=(c|0)){continue}break}if((f|0)==(g|0)){break b}while(1){if((a|0)==(b|0)){a=f-g|0;ta(c-a|0,g,a);return}i=J[d>>2];e=J[i>>2];h=J[i+4>>2]-e>>3;k=f-4|0;i=J[k>>2];if(h>>>0<=i>>>0){break a}j=h;l=b-4|0;h=J[l>>2];if(j>>>0<=h>>>0){break a}c=c-4|0;e=M[e+(i<<3)>>2]>2];J[c>>2]=e?h:i;b=e?l:b;f=e?f:k;if((g|0)!=(f|0)){continue}break}}return}ra();B()}function _c(a){var b=0,c=0,d=0,e=0;c=J[a+1176>>2];if(c){d=c;b=J[a+1180>>2];if((c|0)!=(b|0)){while(1){d=b-12|0;e=J[d>>2];if(e){J[b-8>>2]=e;na(e)}b=d;if((c|0)!=(b|0)){continue}break}d=J[a+1176>>2]}J[a+1180>>2]=c;na(d)}c=J[a+1164>>2];if(c){d=c;b=J[a+1168>>2];if((c|0)!=(b|0)){while(1){d=b-12|0;e=J[d>>2];if(e){J[b-8>>2]=e;na(e)}b=d;if((c|0)!=(b|0)){continue}break}d=J[a+1164>>2]}J[a+1168>>2]=c;na(d)}b=J[a+1152>>2];if(b){J[a+1156>>2]=b;na(b)}b=J[a+1140>>2];if(b){J[a+1144>>2]=b;na(b)}b=J[a+1128>>2];if(b){J[a+1132>>2]=b;na(b)}tb(a+1108|0);tb(a+1088|0);tb(a+1068|0);wa(a+1036|0);a=a+12|0;wa(a+992|0);wa(a+960|0);wa(a+928|0);wa(a+896|0);wa(a+864|0);wa(a+832|0);wa(a+800|0);wa(a+768|0);wa(a+736|0);wa(a+704|0);wa(a+672|0);wa(a+640|0);wa(a+608|0);wa(a+576|0);wa(a+544|0);wa(a+512|0);wa(a+480|0);wa(a+448|0);wa(a+416|0);wa(a+384|0);wa(a+352|0);wa(a+320|0);wa(a+288|0);wa(a+256|0);wa(a+224|0);wa(a+192|0);wa(a+160|0);wa(a+128|0);wa(a+96|0);wa(a- -64|0);wa(a+32|0);wa(a)}function Ed(a){var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;d=ba-32|0;ba=d;a:{b=J[a+16>>2];c=J[a+20>>2];if(!!b&(c|0)>=0|(c|0)>0){e=J[J[a+12>>2]+4>>2]+7|0;f=e>>>0<7?1:f;c=f>>>3|0;f=f<<29|e>>>3;if(K[a+24|0]){e=J[a+4>>2];J[d>>2]=0;J[d+4>>2]=0;H[d+24|0]=0;J[d+16>>2]=0;J[d+20>>2]=0;J[d+8>>2]=0;J[d+12>>2]=0;xb(f,c,d);c=e-b|0;e=c-8|0;b=J[d+4>>2]-J[d>>2]|0;ta(e+b|0,c,f);ua(e,J[d>>2],b);c=8-b|0;b=J[a+20>>2];e=c;c=c+J[a+16>>2]|0;b=e>>>0>c>>>0?b+1|0:b;J[a+16>>2]=c;J[a+20>>2]=b;b=J[d+12>>2];J[d+12>>2]=0;if(b){na(b)}b=J[d>>2];if(b){J[d+4>>2]=b;na(b)}b=J[a+16>>2]}b=f-b|0;g=J[a+4>>2];f=J[a>>2];e=g-f|0;c=b+e|0;b:{if(c>>>0>e>>>0){h=J[a+8>>2];if(h-g>>>0>=b>>>0){i=a,j=pa(g,0,b)+b|0,J[i+4>>2]=j;break b}if((c|0)<0){break a}g=h-f|0;h=g<<1;g=g>>>0>=1073741823?2147483647:c>>>0>>0?h:c;h=oa(g);pa(h+e|0,0,b);b=ta(h,f,e);J[a+8>>2]=b+g;J[a+4>>2]=b+c;J[a>>2]=b;if(!f){break b}na(f);break b}if(c>>>0>=e>>>0){break b}J[a+4>>2]=c+f}J[a+16>>2]=0;J[a+20>>2]=0}ba=d+32|0;return}qa();B()}function dj(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;b=J[a+4>>2];b=J[b+12>>2]-J[b+8>>2]|0;a:{if((b|0)>3){b=0;while(1){if(da[J[J[a>>2]+36>>2]](a,b)|0){b=b+1|0;c=J[a+4>>2];c=J[c+12>>2]-J[c+8>>2]>>2;if((b|0)<(c|0)){continue}break a}break}return 0}c=b>>2}b=a+20|0;d=J[a+20>>2];e=J[a+24>>2]-d>>2;b:{if(e>>>0>>0){Fa(b,c-e|0);break b}if(c>>>0>=e>>>0){break b}J[a+24>>2]=d+(c<<2)}f=J[a+8>>2];a=J[a+12>>2];if((f|0)==(a|0)){return 1}a=a-f>>2;j=a>>>0<=1?1:a;e=J[b>>2];b=0;while(1){a=J[(b<<2)+f>>2];d=J[a+8>>2];c=J[a+4>>2];c:{if((d|0)==(c|0)){break c}a=d-c>>2;d=a>>>0<=1?1:a;i=d&3;g=0;a=0;if(d-1>>>0>=3){k=d&-4;h=0;while(1){d=a<<2;J[e+(J[d+c>>2]<<2)>>2]=b;J[e+(J[c+(d|4)>>2]<<2)>>2]=b;J[e+(J[c+(d|8)>>2]<<2)>>2]=b;J[e+(J[c+(d|12)>>2]<<2)>>2]=b;a=a+4|0;h=h+4|0;if((k|0)!=(h|0)){continue}break}}if(!i){break c}while(1){J[e+(J[c+(a<<2)>>2]<<2)>>2]=b;a=a+1|0;g=g+1|0;if((g|0)!=(i|0)){continue}break}}b=b+1|0;if((j|0)!=(b|0)){continue}break}return 1}function ek(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;e=J[a+12>>2];i=J[a+8>>2];d=e-i>>2;b=K[b+24|0];a:{if(d>>>0>>0){Fa(a+8|0,b-d|0);i=J[a+8>>2];e=J[a+12>>2];break a}if(b>>>0>=d>>>0){break a}e=(b<<2)+i|0;J[a+12>>2]=e}b=0;f=J[c+8>>2];h=J[c+12>>2];j=J[c+20>>2];e=e-i|0;d=J[c+16>>2];g=e+d|0;j=e>>>0>g>>>0?j+1|0:j;b:{if(f>>>0>>0&(h|0)<=(j|0)|(h|0)<(j|0)){break b}ua(i,d+J[c>>2]|0,e);d=J[c+20>>2];g=e;e=e+J[c+16>>2]|0;d=g>>>0>e>>>0?d+1|0:d;J[c+16>>2]=e;J[c+20>>2]=d;f=J[c+8>>2];h=J[c+12>>2];g=e+4|0;d=g>>>0<4?d+1|0:d;if(f>>>0>>0&(d|0)>=(h|0)|(d|0)>(h|0)){break b}d=e+J[c>>2]|0;J[a+20>>2]=K[d|0]|K[d+1|0]<<8|(K[d+2|0]<<16|K[d+3|0]<<24);d=J[c+20>>2];g=d;f=d;e=J[c+16>>2];d=e+4|0;f=d>>>0<4?f+1|0:f;J[c+16>>2]=d;J[c+20>>2]=f;h=J[c+12>>2];if((f|0)>=(h|0)&d>>>0>=M[c+8>>2]|(f|0)>(h|0)){break b}f=K[d+J[c>>2]|0];d=g;e=e+5|0;d=e>>>0<5?d+1|0:d;J[c+16>>2]=e;J[c+20>>2]=d;if(f-1>>>0>29){break b}J[a+4>>2]=f;b=1}return b|0}function qe(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;a:{f=J[a+4>>2];b:{if((f|0)!=J[a>>2]){c=f;break b}g=J[a+8>>2];c=J[a+12>>2];if(g>>>0>>0){e=((c-g>>2)+1|0)/2<<2;c=e+g|0;if((f|0)!=(g|0)){d=g-f|0;c=c-d|0;ta(c,f,d);f=J[a+8>>2]}J[a+4>>2]=c;J[a+8>>2]=e+f;break b}d=(c|0)==(f|0)?1:c-f>>1;if(d>>>0>=1073741824){break a}c=d<<2;i=oa(c);k=i+c|0;c=(d+3&-4)+i|0;h=c;c:{if((f|0)==(g|0)){break c}g=g-f|0;l=g&-4;e=c;d=f;j=g-4|0;g=(j>>>2|0)+1&7;if(g){h=0;while(1){J[e>>2]=J[d>>2];d=d+4|0;e=e+4|0;h=h+1|0;if((g|0)!=(h|0)){continue}break}}h=c+l|0;if(j>>>0<28){break c}while(1){J[e>>2]=J[d>>2];J[e+4>>2]=J[d+4>>2];J[e+8>>2]=J[d+8>>2];J[e+12>>2]=J[d+12>>2];J[e+16>>2]=J[d+16>>2];J[e+20>>2]=J[d+20>>2];J[e+24>>2]=J[d+24>>2];J[e+28>>2]=J[d+28>>2];d=d+32|0;e=e+32|0;if((h|0)!=(e|0)){continue}break}}J[a+12>>2]=k;J[a+8>>2]=h;J[a+4>>2]=c;J[a>>2]=i;if(!f){break b}na(f);c=J[a+4>>2]}J[c-4>>2]=J[b>>2];J[a+4>>2]=J[a+4>>2]-4;return}xa();B()}function vd(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;f=c-b|0;e=J[a+8>>2];d=J[a>>2];if(f>>>0<=e-d>>>0){h=J[a+4>>2]-d|0;e=h+b|0;g=f>>>0>h>>>0?e:c;a:{if((g|0)==(b|0)){break a}k=(b^-1)+g|0;i=g-b&7;if(i){while(1){H[d|0]=K[b|0];d=d+1|0;b=b+1|0;j=j+1|0;if((j|0)!=(i|0)){continue}break}}if(k>>>0<7){break a}while(1){H[d|0]=K[b|0];H[d+1|0]=K[b+1|0];H[d+2|0]=K[b+2|0];H[d+3|0]=K[b+3|0];H[d+4|0]=K[b+4|0];H[d+5|0]=K[b+5|0];H[d+6|0]=K[b+6|0];H[d+7|0]=K[b+7|0];d=d+8|0;b=b+8|0;if((g|0)!=(b|0)){continue}break}}if(f>>>0>h>>>0){b=J[a+4>>2];if((c|0)!=(g|0)){while(1){H[b|0]=K[e|0];b=b+1|0;e=e+1|0;if((e|0)!=(c|0)){continue}break}}J[a+4>>2]=b;return}J[a+4>>2]=d;return}if(d){J[a+4>>2]=d;na(d);J[a+8>>2]=0;J[a>>2]=0;J[a+4>>2]=0;e=0}b:{if((f|0)<0){break b}d=e<<1;e=e>>>0>=1073741823?2147483647:d>>>0>f>>>0?d:f;if((e|0)<0){break b}d=oa(e);J[a+4>>2]=d;J[a>>2]=d;J[a+8>>2]=d+e;if((b|0)!=(c|0)){d=ua(d,b,f)+f|0}J[a+4>>2]=d;return}qa();B()}function Uf(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;j=+N[b>>2];k=+N[b+4>>2];l=+N[b+8>>2];g=R(j)+R(k)+R(l);a:{if(!(g>1e-6)){j=1;k=0;e=0;break a}g=1/g;k=g*k;j=g*j;e=g*l<0}h=J[a+16>>2];l=+(h|0);g=V(j*l+.5);b:{if(R(g)<2147483648){m=~~g;break b}m=-2147483648}f=m>>31;i=(f^m)-f|0;g=V(k*l+.5);c:{if(R(g)<2147483648){f=~~g;break c}f=-2147483648}b=f>>31;b=h-(i+((f^b)-b|0)|0)|0;i=(b|0)>0?b:0;e=e?0-i|0:i;f=f+(b>>31&((f|0)>0?b:0-b|0))|0;d:{if((m|0)>=0){b=e+h|0;a=J[a+8>>2];e=h+f|0;break d}b=f>>31;b=(b^f)-b|0;a=J[a+8>>2];b=(e|0)<0?b:a-b|0;e=(f|0)<0?i:a-i|0}e:{if(!(b|e)){b=a;break e}if(!((a|0)!=(b|0)|e)){b=a;break e}if(!((a|0)!=(e|0)|b)){b=a;break e}if(!((b|0)<=(h|0)|e)){b=(h<<1)-b|0;a=0;break e}if(!((a|0)!=(e|0)|(b|0)>=(h|0))){b=(h<<1)-b|0;break e}if(!((a|0)!=(b|0)|(e|0)>=(h|0))){b=a;a=(h<<1)-e|0;break e}if(b){a=e;break e}b=0;if((e|0)<=(h|0)){a=e;break e}a=(h<<1)-e|0}J[c>>2]=a;J[d>>2]=b}function ge(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0;a:{b:{e=J[b+4>>2];c:{if(!e){f=b+4|0;c=f;break c}f=K[c+11|0];g=f<<24>>24<0;i=g?J[c>>2]:c;g=g?J[c+4>>2]:f;while(1){c=e;h=K[e+27|0];f=h<<24>>24<0;e=f?J[e+20>>2]:h;h=e>>>0>>0;d:{e:{f:{g:{j=h?e:g;h:{if(j){f=f?J[c+16>>2]:c+16|0;k=Ba(i,f,j);if(!k){if(e>>>0>g>>>0){break h}break g}if((k|0)>=0){break g}break h}if(e>>>0<=g>>>0){break f}}f=c;e=J[c>>2];if(e){continue}break c}e=Ba(f,i,j);if(e){break e}}if(h){break d}break b}if((e|0)>=0){break b}}e=J[c+4>>2];if(e){continue}break}f=c+4|0}e=oa(40);g=e+16|0;d=J[d>>2];i:{if(H[d+11|0]>=0){i=J[d+4>>2];J[g>>2]=J[d>>2];J[g+4>>2]=i;J[g+8>>2]=J[d+8>>2];break i}Ga(g,J[d>>2],J[d+4>>2])}J[e+8>>2]=c;J[e>>2]=0;J[e+4>>2]=0;J[e+36>>2]=0;J[e+28>>2]=0;J[e+32>>2]=0;J[f>>2]=e;c=e;d=J[J[b>>2]>>2];if(d){J[b>>2]=d;c=J[f>>2]}sb(J[b+4>>2],c);J[b+8>>2]=J[b+8>>2]+1;b=1;break a}e=c;b=0}H[a+4|0]=b;J[a>>2]=e}function rc(a,b){var c=0,d=0,e=0,f=0,g=0,h=0;d=ba-32|0;ba=d;h=J[b>>2]+J[a+40>>2]|0;e=J[a+32>>2];c=e-4194304|0;a:{if(c>>>0<=63){H[J[a+24>>2]+J[a+28>>2]|0]=e;g=J[a+28>>2]+1|0;break a}if(c>>>0<=16383){c=J[a+24>>2]+J[a+28>>2]|0;H[c+1|0]=e+16384>>>8;H[c|0]=e;g=J[a+28>>2]+2|0;break a}if(c>>>0<=4194303){c=J[a+24>>2]+J[a+28>>2]|0;H[c+2|0]=e+4194304>>>16;H[c+1|0]=e>>>8;H[c|0]=e;g=J[a+28>>2]+3|0;break a}if(c>>>0<=1073741823){f=J[a+24>>2]+J[a+28>>2]|0;c=e-1077936128|0;H[f+3|0]=c>>>24;H[f+2|0]=c>>>16;H[f+1|0]=e>>>8;H[f|0]=e;g=J[a+28>>2]+4|0;break a}g=J[a+28>>2]}f=g;J[d>>2]=0;J[d+4>>2]=0;H[d+24|0]=0;J[d+16>>2]=0;J[d+20>>2]=0;J[d+8>>2]=0;J[d+12>>2]=0;c=f>>31;xb(f,c,d);e=J[d+4>>2]-J[d>>2]|0;ta(e+h|0,h,f);ua(h,J[d>>2],e);h=J[a+40>>2];a=J[a+44>>2];f=e+f|0;c=a+(g>>>0>f>>>0?c+1|0:c)|0;a=f+h|0;Ia(b,a);a=J[d+12>>2];J[d+12>>2]=0;if(a){na(a)}a=J[d>>2];if(a){J[d+4>>2]=a;na(a)}ba=d+32|0}function yb(a,b){var c=0,d=0,e=0,f=0,g=0,h=0;d=ba-32|0;ba=d;h=J[b>>2]+J[a+40>>2]|0;f=J[a+32>>2];c=f-16384|0;a:{if(c>>>0<=63){H[J[a+24>>2]+J[a+28>>2]|0]=f;g=J[a+28>>2]+1|0;break a}if(c>>>0<=16383){c=J[a+24>>2]+J[a+28>>2]|0;H[c|0]=f;H[c+1|0]=f>>>8;g=J[a+28>>2]+2|0;break a}if(c>>>0<=4194303){e=J[a+24>>2]+J[a+28>>2]|0;c=f+8372224|0;H[e+2|0]=c>>>16;H[e+1|0]=c>>>8;H[e|0]=f;g=J[a+28>>2]+3|0;break a}if(c>>>0<=1073741823){e=J[a+24>>2]+J[a+28>>2]|0;c=f-1073758208|0;H[e+3|0]=c>>>24;H[e+2|0]=c>>>16;H[e+1|0]=c>>>8;H[e|0]=f;g=J[a+28>>2]+4|0;break a}g=J[a+28>>2]}e=g;J[d>>2]=0;J[d+4>>2]=0;H[d+24|0]=0;J[d+16>>2]=0;J[d+20>>2]=0;J[d+8>>2]=0;J[d+12>>2]=0;c=e>>31;xb(e,c,d);f=J[d+4>>2]-J[d>>2]|0;ta(f+h|0,h,e);ua(h,J[d>>2],f);h=J[a+40>>2];a=J[a+44>>2];e=e+f|0;c=a+(g>>>0>e>>>0?c+1|0:c)|0;a=e+h|0;Ia(b,a);a=J[d+12>>2];J[d+12>>2]=0;if(a){na(a)}a=J[d>>2];if(a){J[d+4>>2]=a;na(a)}ba=d+32|0}function ii(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=Q(0),f=Q(0),g=Q(0),h=Q(0),i=Q(0),j=0,k=Q(0),l=Q(0),m=Q(0),n=Q(0),o=0;a:{if(J[c+28>>2]!=9|K[c+24|0]!=3){break a}a=J[a+4>>2];if(a-2>>>0>28){break a}o=1;j=J[c+80>>2];if(!j){break a}k=Q(Q(2)/Q((1<>2]>>2]+J[c+48>>2]|0;a=J[J[b>>2]>>2]+J[b+48>>2]|0;b=0;while(1){g=Q(0);l=Q(0);m=Q(0);e=Q(Q(Q(J[a>>2])*k)+Q(-1));f=Q(Q(Q(J[a+4>>2])*k)+Q(-1));i=Q(Q(Q(1)-Q(R(e)))-Q(R(f)));h=Q(U(Q(-i),Q(0)));n=Q(-h);f=Q(f+(f>>8;H[c+10|0]=d>>>16;H[c+11|0]=d>>>24;d=(C(l),v(2));H[c+4|0]=d;H[c+5|0]=d>>>8;H[c+6|0]=d>>>16;H[c+7|0]=d>>>24;d=(C(g),v(2));H[c|0]=d;H[c+1|0]=d>>>8;H[c+2|0]=d>>>16;H[c+3|0]=d>>>24;c=c+12|0;b=b+1|0;if((j|0)!=(b|0)){continue}break}}return o|0}function lg(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;c=ba-16|0;ba=c;b=J[J[a+184>>2]+(b<<2)>>2];H[c+15|0]=b;e=J[J[a+4>>2]+44>>2];d=J[e+20>>2];if(!J[e+16>>2]&(d|0)<=0|(d|0)<0){sa(e,J[e+4>>2],c+15|0,c+16|0);b=K[c+15|0]}a:{b:{c:{if(b<<24>>24<0){e=J[a+68>>2];break c}b=J[J[a+172>>2]+P(b&255,136)>>2];d=da[J[J[a>>2]+40>>2]](a)|0;f=J[a+172>>2]+P(H[c+15|0],136)|0;e=J[f+132>>2];d:{switch(J[J[J[d+56>>2]+84>>2]+(b<<2)>>2]){case 0:break c;case 1:break d;default:break b}}if(!K[f+28|0]){break b}}b=J[J[a+4>>2]+44>>2];H[c+14|0]=0;d=J[b+20>>2];if(!!J[b+16>>2]&(d|0)>=0|(d|0)>0){break a}sa(b,J[b+4>>2],c+14|0,c+15|0);break a}b=J[J[a+4>>2]+44>>2];H[c+13|0]=1;d=J[b+20>>2];if(!!J[b+16>>2]&(d|0)>=0|(d|0)>0){break a}sa(b,J[b+4>>2],c+13|0,c+14|0)}a=J[J[a+4>>2]+44>>2];H[c+12|0]=e;b=J[a+20>>2];if(!J[a+16>>2]&(b|0)<=0|(b|0)<0){sa(a,J[a+4>>2],c+12|0,c+13|0)}ba=c+16|0;return 1}function Cc(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0;a:{b:{e=J[b+4>>2];c:{if(!e){f=b+4|0;c=f;break c}f=K[c+11|0];g=f<<24>>24<0;h=g?J[c>>2]:c;g=g?J[c+4>>2]:f;while(1){c=e;e=K[e+27|0];f=e<<24>>24<0;e=f?J[c+20>>2]:e;j=e>>>0>>0;d:{e:{f:{g:{i=j?e:g;h:{if(i){f=f?J[c+16>>2]:c+16|0;k=Ba(h,f,i);if(!k){if(e>>>0>g>>>0){break h}break g}if((k|0)>=0){break g}break h}if(e>>>0<=g>>>0){break f}}f=c;e=J[c>>2];if(e){continue}break c}e=Ba(f,h,i);if(e){break e}}if(j){break d}break b}if((e|0)>=0){break b}}e=J[c+4>>2];if(e){continue}break}f=c+4|0}e=oa(40);J[e+24>>2]=J[d+8>>2];g=J[d+4>>2];h=J[d>>2];J[e+16>>2]=h;J[e+20>>2]=g;J[d>>2]=0;J[d+4>>2]=0;J[d+8>>2]=0;Ob(e+28|0,d+12|0);J[e+8>>2]=c;J[e>>2]=0;J[e+4>>2]=0;J[f>>2]=e;c=e;d=J[J[b>>2]>>2];if(d){J[b>>2]=d;c=J[f>>2]}sb(J[b+4>>2],c);J[b+8>>2]=J[b+8>>2]+1;b=1;break a}e=c;b=0}H[a+4|0]=b;J[a>>2]=e}function El(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;j=1;a:{b:{c:{if((da[J[J[b>>2]+20>>2]](b)|0)<=0){break c}while(1){e=Nb(J[J[a+4>>2]+4>>2],da[J[J[b>>2]+24>>2]](b,i)|0);j=(e|0)!=-1;if((e|0)==-1){break c}c=J[a+20>>2];d:{if((c|0)!=J[a+24>>2]){J[c>>2]=e;J[a+20>>2]=c+4;break d}f=c;c=J[a+16>>2];d=f-c|0;h=d>>2;g=h+1|0;if(g>>>0>=1073741824){break b}f=d>>>1|0;g=d>>>0>=2147483644?1073741823:g>>>0>>0?f:g;if(g){if(g>>>0>=1073741824){break a}f=oa(g<<2)}else{f=0}h=f+(h<<2)|0;J[h>>2]=e;d=ta(f,c,d);J[a+24>>2]=d+(g<<2);J[a+20>>2]=h+4;J[a+16>>2]=d;if(!c){break d}na(c)}c=J[a+4>>2];e:{if((e|0)<0){break e}d=J[c+4>>2];if(J[d+12>>2]-J[d+8>>2]>>2<=(e|0)){break e}c=J[J[c+8>>2]+(J[J[c+20>>2]+(e<<2)>>2]<<2)>>2];da[J[J[c>>2]+32>>2]](c,e)|0}i=i+1|0;if((da[J[J[b>>2]+20>>2]](b)|0)>(i|0)){continue}break}}return j|0}qa();B()}xa();B()}function Ta(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0;if((b|0)==(c|0)){J[a+4>>2]=d;J[a>>2]=d;return}if((c|0)==(d|0)){J[a+4>>2]=c;J[a>>2]=b;return}a:{if((b+4|0)==(c|0)){f=J[b>>2];e=b;b=d-c|0;c=ta(e,c,b)+b|0;J[c>>2]=f;break a}if((c+4|0)==(d|0)){f=d-4|0;e=J[f>>2];c=d;if((b|0)!=(f|0)){f=f-b|0;c=d-f|0;ta(c,b,f)}J[b>>2]=e;break a}g=c-b>>2;h=d-c>>2;if((g|0)==(h|0)){e=c;while(1){f=J[b>>2];J[b>>2]=J[e>>2];J[e>>2]=f;b=b+4|0;if((c|0)==(b|0)){break a}e=e+4|0;if((e|0)!=(d|0)){continue}break}break a}e=h;f=g;while(1){c=f;f=e;e=(c|0)%(e|0)|0;if(e){continue}break}if(f){e=(f<<2)+b|0;while(1){e=e-4|0;j=g<<2;c=e+j|0;k=J[e>>2];f=e;while(1){i=f;f=c;J[i>>2]=J[c>>2];i=c+j|0;c=d-c>>2;c=(c|0)>(g|0)?i:(g-c<<2)+b|0;if((e|0)!=(c|0)){continue}break}J[f>>2]=k;if((b|0)!=(e|0)){continue}break}}c=(h<<2)+b|0}J[a+4>>2]=d;J[a>>2]=c}function Kc(a,b){var c=0,d=0;c=J[b+8>>2];J[a+4>>2]=J[b+4>>2];J[a+8>>2]=c;J[a+20>>2]=J[b+20>>2];c=J[b+16>>2];J[a+12>>2]=J[b+12>>2];J[a+16>>2]=c;a:{b:{if((a|0)!=(b|0)){c=J[b+28>>2];if(c){d=J[a+24>>2];if(J[a+32>>2]<<5>>>0>>0){if(d){na(d);J[a+32>>2]=0;J[a+24>>2]=0;J[a+28>>2]=0;c=J[b+28>>2]}if((c|0)<0){break b}c=(c-1>>>5|0)+1|0;d=oa(c<<2);J[a+32>>2]=c;J[a+28>>2]=0;J[a+24>>2]=d;c=J[b+28>>2]}ta(d,J[b+24>>2],(c-1>>>3&536870908)+4|0);c=J[b+28>>2]}else{c=0}J[a+28>>2]=c;c=J[b+40>>2];if(c){d=J[a+36>>2];if(J[a+44>>2]<<5>>>0>>0){if(d){na(d);J[a+44>>2]=0;J[a+36>>2]=0;J[a+40>>2]=0;c=J[b+40>>2]}if((c|0)<0){break a}c=(c-1>>>5|0)+1|0;d=oa(c<<2);J[a+44>>2]=c;J[a+40>>2]=0;J[a+36>>2]=d;c=J[b+40>>2]}ta(d,J[b+36>>2],(c-1>>>3&536870908)+4|0);b=J[b+40>>2]}else{b=0}J[a+40>>2]=b}return}qa();B()}qa();B()}function jf(a){var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;f=ba-16|0;ba=f;d=J[a+100>>2];e=J[a+96>>2];J[f+8>>2]=0;J[f>>2]=0;J[f+4>>2]=0;b=d-e|0;g=(b|0)/12|0;a:{b:{if((d|0)==(e|0)){break b}if(g>>>0>=357913942){break a}d=oa(b);J[f>>2]=d;J[f+8>>2]=d+P(g,12);a=0;c=d;d=b-12|0;b=(d-((d>>>0)%12|0)|0)+12|0;d=pa(c,0,b);J[f+4>>2]=b+d;b=g>>>0<=1?1:g;j=b&1;if(g>>>0>=2){k=b&-2;g=0;while(1){c=P(a,12);b=c+e|0;h=J[b>>2];i=J[b+4>>2];c=d+c|0;J[c+8>>2]=J[b+8>>2];J[c>>2]=h;J[c+4>>2]=i;c=P(a|1,12);b=c+e|0;h=J[b>>2];i=J[b+4>>2];c=d+c|0;J[c+8>>2]=J[b+8>>2];J[c>>2]=h;J[c+4>>2]=i;a=a+2|0;g=g+2|0;if((k|0)!=(g|0)){continue}break}}if(!j){break b}c=e;e=P(a,12);a=c+e|0;g=J[a+4>>2];b=J[a>>2];e=d+e|0;J[e+8>>2]=J[a+8>>2];J[e>>2]=b;J[e+4>>2]=g}e=mf(f);a=J[f>>2];if(a){J[f+4>>2]=a;na(a)}ba=f+16|0;return e}qa();B()}function dg(a){var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;d=J[a+112>>2];b=J[a+108>>2];c=(d-b|0)/12|0;Aa(c,J[J[a+4>>2]+44>>2]);if((b|0)!=(d|0)){f=c>>>0<=1?1:c;d=0;while(1){b=J[a+108>>2]+P(d,12)|0;Aa(J[b+4>>2]-g|0,J[J[a+4>>2]+44>>2]);Aa(J[b+4>>2]-J[b>>2]|0,J[J[a+4>>2]+44>>2]);g=J[b+4>>2];d=d+1|0;if((f|0)!=(d|0)){continue}break}d=0;Fd(J[J[a+4>>2]+44>>2],c,0,0);b=J[J[a+4>>2]+44>>2];e=!!J[b+16>>2];b=J[b+20>>2];if(e&(b|0)>=0|(b|0)>0){f=c>>>0<=1?1:c;while(1){c=J[J[a+4>>2]+44>>2];b=J[c+20>>2];if(!!J[c+16>>2]&(b|0)>=0|(b|0)>0){g=K[(J[a+108>>2]+P(d,12)|0)+8|0];c=J[c+12>>2];e=J[c+4>>2];b=e>>>3|0;h=b+J[c>>2]|0;i=K[h|0];e=e&7;j=h,k=Ll(e)&i,H[j|0]=k;b=b+J[c>>2]|0;H[b|0]=K[b|0]|(g&1)<>2]=J[c+4>>2]+1}d=d+1|0;if((f|0)!=(d|0)){continue}break}}Ed(J[J[a+4>>2]+44>>2])}return 1}function mj(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0;e=J[a+4>>2];d=J[e>>2];a:{b=J[a+12>>2];c=J[b+56>>2]-J[b+52>>2]|0;f=c>>2;b:{if(f>>>0<=J[e+8>>2]-d>>2>>>0){break b}if((c|0)<0){break a}b=J[e+4>>2];c=oa(c);f=c+(f<<2)|0;g=c+(b-d&-4)|0;c=g;if((b|0)!=(d|0)){while(1){c=c-4|0;b=b-4|0;J[c>>2]=J[b>>2];if((b|0)!=(d|0)){continue}break}}J[e+8>>2]=f;J[e+4>>2]=g;J[e>>2]=c;if(!d){break b}na(d)}e=a+8|0;b=J[a+76>>2];c:{if(b){d=J[b>>2];if((d|0)==J[b+4>>2]){return 1}b=0;while(1){c=Vf(e,J[(b<<2)+d>>2]);if(!c){break c}f=J[a+76>>2];d=J[f>>2];b=b+1|0;if(b>>>0>2]-d>>2>>>0){continue}break}break c}c=1;a=J[J[a+12>>2]+64>>2];a=J[a+4>>2]-J[a>>2]|0;if(a>>>0<12){break c}a=(a>>2>>>0)/3|0;b=0;while(1){c=Vf(e,P(b,3));if(!c){break c}b=b+1|0;if((a|0)!=(b|0)){continue}break}}return c|0}qa();B()}function rj(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0;e=J[a+4>>2];d=J[e>>2];a:{b=J[a+12>>2];c=J[b+28>>2]-J[b+24>>2]|0;f=c>>2;b:{if(f>>>0<=J[e+8>>2]-d>>2>>>0){break b}if((c|0)<0){break a}b=J[e+4>>2];c=oa(c);f=c+(f<<2)|0;g=c+(b-d&-4)|0;c=g;if((b|0)!=(d|0)){while(1){c=c-4|0;b=b-4|0;J[c>>2]=J[b>>2];if((b|0)!=(d|0)){continue}break}}J[e+8>>2]=f;J[e+4>>2]=g;J[e>>2]=c;if(!d){break b}na(d)}e=a+8|0;b=J[a+76>>2];c:{if(b){d=J[b>>2];if((d|0)==J[b+4>>2]){return 1}b=0;while(1){c=Wf(e,J[(b<<2)+d>>2]);if(!c){break c}f=J[a+76>>2];d=J[f>>2];b=b+1|0;if(b>>>0>2]-d>>2>>>0){continue}break}break c}c=1;a=J[a+12>>2];a=J[a+4>>2]-J[a>>2]|0;if(a>>>0<12){break c}a=(a>>2>>>0)/3|0;b=0;while(1){c=Wf(e,P(b,3));if(!c){break c}b=b+1|0;if((a|0)!=(b|0)){continue}break}}return c|0}qa();B()}function Ok(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;d=ba-16|0;ba=d;J[d+12>>2]=c;a:{if(!me(a,b,c)|K[J[a+8>>2]+24|0]!=3){break a}f=J[b+48>>2];b=oa(32);J[d>>2]=b;J[d+4>>2]=17;J[d+8>>2]=-2147483616;H[b+16|0]=K[1261];c=K[1257]|K[1258]<<8|(K[1259]<<16|K[1260]<<24);e=K[1253]|K[1254]<<8|(K[1255]<<16|K[1256]<<24);H[b+8|0]=e;H[b+9|0]=e>>>8;H[b+10|0]=e>>>16;H[b+11|0]=e>>>24;H[b+12|0]=c;H[b+13|0]=c>>>8;H[b+14|0]=c>>>16;H[b+15|0]=c>>>24;c=K[1249]|K[1250]<<8|(K[1251]<<16|K[1252]<<24);e=K[1245]|K[1246]<<8|(K[1247]<<16|K[1248]<<24);H[b|0]=e;H[b+1|0]=e>>>8;H[b+2|0]=e>>>16;H[b+3|0]=e>>>24;H[b+4|0]=c;H[b+5|0]=c>>>8;H[b+6|0]=c>>>16;H[b+7|0]=c>>>24;H[b+17|0]=0;b=jb(f,d+12|0,d,-1);if(H[d+11|0]<0){na(J[d>>2])}if((b|0)<=0){break a}J[a+44>>2]=b;g=1}ba=d+16|0;return g|0}function Oc(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0;i=ba-16|0;ba=i;e=J[b+4>>2];a:{b:{if(!e){h=b+4|0;g=h;break b}f=J[c>>2];while(1){g=e;c=J[e+16>>2];if((c|0)>(f|0)){h=g;e=J[g>>2];if(e){continue}break b}if((c|0)>=(f|0)){f=g;b=0;break a}e=J[g+4>>2];if(e){continue}break}h=g+4|0}f=oa(32);c=J[d>>2];j=f+24|0;e=j;J[e>>2]=0;J[e+4>>2]=0;J[f+16>>2]=c;k=f+20|0;J[k>>2]=e;e=J[d+4>>2];d=d+8|0;if((e|0)!=(d|0)){while(1){c=e+16|0;Qg(i+8|0,k,j,c,c);c=J[e+4>>2];c:{if(c){while(1){e=c;c=J[e>>2];if(c){continue}break c}}while(1){c=e;e=J[e+8>>2];if((c|0)!=J[e>>2]){continue}break}}if((d|0)!=(e|0)){continue}break}}J[f+8>>2]=g;J[f>>2]=0;J[f+4>>2]=0;J[h>>2]=f;e=f;c=J[J[b>>2]>>2];if(c){J[b>>2]=c;e=J[h>>2]}sb(J[b+4>>2],e);J[b+8>>2]=J[b+8>>2]+1;b=1}H[a+4|0]=b;J[a>>2]=f;ba=i+16|0}function Me(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;c=ba-16|0;ba=c;Aa(J[a+8>>2]-J[a+4>>2]>>2,b);e=J[a+4>>2];if((e|0)!=J[a+8>>2]){h=c+13|0;i=c+14|0;j=c+15|0;k=c+16|0;while(1){e=J[J[J[a+32>>2]+8>>2]+(J[(g<<2)+e>>2]<<2)>>2];H[c+15|0]=J[e+56>>2];d=J[b+20>>2];a:{if(!!J[b+16>>2]&(d|0)>=0|(d|0)>0){break a}sa(b,J[b+4>>2],c+15|0,k);d=J[b+20>>2];f=J[b+16>>2];H[c+14|0]=J[e+28>>2];if(!!f&(d|0)>=0|(d|0)>0){break a}sa(b,J[b+4>>2],c+14|0,j);d=J[b+20>>2];f=J[b+16>>2];H[c+13|0]=K[e+24|0];if(!!f&(d|0)>=0|(d|0)>0){break a}sa(b,J[b+4>>2],c+13|0,i);d=J[b+20>>2];f=J[b+16>>2];H[c+12|0]=K[e+32|0];if(!!f&(d|0)>=0|(d|0)>0){break a}sa(b,J[b+4>>2],c+12|0,h)}Aa(J[e+60>>2],b);g=g+1|0;e=J[a+4>>2];if(g>>>0>2]-e>>2>>>0){continue}break}}ba=c+16|0;return 1}function eb(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;g=ba-16|0;ba=g;a:{b:{c=J[a+4>>2];c:{if((c|0)!=J[a+8>>2]){J[c>>2]=J[a+12>>2];c=c+4|0;J[a+4>>2]=c;break c}e=J[a>>2];c=c-e|0;h=c>>2;d=h+1|0;if(d>>>0>=1073741824){break b}f=c>>>1|0;d=c>>>0>=2147483644?1073741823:d>>>0>>0?f:d;if(d){if(d>>>0>=1073741824){break a}f=oa(d<<2)}else{f=0}h=f+(h<<2)|0;J[h>>2]=J[a+12>>2];i=d<<2;d=ta(f,e,c);J[a+8>>2]=i+d;c=h+4|0;J[a+4>>2]=c;J[a>>2]=d;if(!e){break c}na(e);c=J[a+4>>2]}f=c;c=J[a>>2];J[g+12>>2]=f-c;e=J[b+20>>2];d:{if(!!J[b+16>>2]&(e|0)>=0|(e|0)>0){break d}sa(b,J[b+4>>2],g+12|0,g+16|0);c=J[a>>2];e=J[b+20>>2];if(!!J[b+16>>2]&(e|0)>=0|(e|0)>0){break d}sa(b,J[b+4>>2],c,J[g+12>>2]+c|0);c=J[a>>2]}J[a+12>>2]=0;J[a+16>>2]=0;J[a+4>>2]=c;ba=g+16|0;return}qa();B()}xa();B()}function ta(a,b,c){var d=0,e=0;a:{if((a|0)==(b|0)){break a}e=a+c|0;if(b-e>>>0<=0-(c<<1)>>>0){return ua(a,b,c)}d=(a^b)&3;b:{c:{if(a>>>0>>0){if(d){d=a;break b}if(!(a&3)){d=a;break c}d=a;while(1){if(!c){break a}H[d|0]=K[b|0];b=b+1|0;c=c-1|0;d=d+1|0;if(d&3){continue}break}break c}d:{if(d){break d}if(e&3){while(1){if(!c){break a}c=c-1|0;d=c+a|0;H[d|0]=K[b+c|0];if(d&3){continue}break}}if(c>>>0<=3){break d}while(1){c=c-4|0;J[c+a>>2]=J[b+c>>2];if(c>>>0>3){continue}break}}if(!c){break a}while(1){c=c-1|0;H[c+a|0]=K[b+c|0];if(c){continue}break}break a}if(c>>>0<=3){break b}while(1){J[d>>2]=J[b>>2];b=b+4|0;d=d+4|0;c=c-4|0;if(c>>>0>3){continue}break}}if(!c){break a}while(1){H[d|0]=K[b|0];d=d+1|0;b=b+1|0;c=c-1|0;if(c){continue}break}}return a}function hg(a,b,c){var d=0,e=0,f=0,g=0;a:{b=P(b,3);if((b|0)==-1){break a}b:{e=J[a+12>>2];f=J[e+12>>2];d=b<<2;c:{if(J[f+d>>2]==-1){break c}a=J[a+152>>2];e=J[e>>2];if(J[a+(J[e+d>>2]<<2)>>2]!=-1){break b}d=b+1|0;b=(d>>>0)%3|0?d:b-2|0;if((b|0)==-1){break a}d=b<<2;if(J[d+f>>2]==-1){break c}if(J[a+(J[d+e>>2]<<2)>>2]!=-1){break b}d=b+1|0;b=(d>>>0)%3|0?d:b-2|0;if((b|0)==-1){break a}d=b<<2;if(J[d+f>>2]==-1){break c}if(J[a+(J[d+e>>2]<<2)>>2]!=-1){break b}g=1;a=b+1|0;b=(a>>>0)%3|0?a:b-2|0}J[c>>2]=b;return g}while(1){d:{a=b;e:{if((b>>>0)%3|0){b=a-1|0;break e}b=a+2|0;if((b|0)==-1){break d}}b=J[(b<<2)+f>>2];if((b|0)==-1){break d}b=b+((b>>>0)%3|0?-1:2)|0;if((b|0)!=-1){continue}}break}J[c>>2]=a+((a>>>0)%3|0?-1:2);return 0}J[c>>2]=-1;return 0}function Se(a,b,c){a:{switch(b-9|0){case 0:b=J[c>>2];J[c>>2]=b+4;J[a>>2]=J[b>>2];return;case 6:b=J[c>>2];J[c>>2]=b+4;b=I[b>>1];J[a>>2]=b;J[a+4>>2]=b>>31;return;case 7:b=J[c>>2];J[c>>2]=b+4;J[a>>2]=L[b>>1];J[a+4>>2]=0;return;case 8:b=J[c>>2];J[c>>2]=b+4;b=H[b|0];J[a>>2]=b;J[a+4>>2]=b>>31;return;case 9:b=J[c>>2];J[c>>2]=b+4;J[a>>2]=K[b|0];J[a+4>>2]=0;return;case 16:b=J[c>>2]+7&-8;J[c>>2]=b+8;O[a>>3]=O[b>>3];return;case 17:Qe(a,c);default:return;case 1:case 4:case 14:b=J[c>>2];J[c>>2]=b+4;b=J[b>>2];J[a>>2]=b;J[a+4>>2]=b>>31;return;case 2:case 5:case 11:case 15:b=J[c>>2];J[c>>2]=b+4;J[a>>2]=J[b>>2];J[a+4>>2]=0;return;case 3:case 10:case 12:case 13:break a}}b=J[c>>2]+7&-8;J[c>>2]=b+8;c=J[b+4>>2];J[a>>2]=J[b>>2];J[a+4>>2]=c}function _e(a,b,c,d,e,f){var g=0;g=ba-80|0;ba=g;a:{if((f|0)>=16384){Ea(g+32|0,b,c,d,e,0,0,0,2147352576);d=J[g+40>>2];e=J[g+44>>2];b=J[g+32>>2];c=J[g+36>>2];if(f>>>0<32767){f=f-16383|0;break a}Ea(g+16|0,b,c,d,e,0,0,0,2147352576);f=((f|0)>=49149?49149:f)-32766|0;d=J[g+24>>2];e=J[g+28>>2];b=J[g+16>>2];c=J[g+20>>2];break a}if((f|0)>-16383){break a}Ea(g- -64|0,b,c,d,e,0,0,0,7471104);d=J[g+72>>2];e=J[g+76>>2];b=J[g+64>>2];c=J[g+68>>2];if(f>>>0>4294934644){f=f+16269|0;break a}Ea(g+48|0,b,c,d,e,0,0,0,7471104);f=((f|0)<=-48920?-48920:f)+32538|0;d=J[g+56>>2];e=J[g+60>>2];b=J[g+48>>2];c=J[g+52>>2]}Ea(g,b,c,d,e,0,0,0,f+16383<<16);b=J[g+12>>2];J[a+8>>2]=J[g+8>>2];J[a+12>>2]=b;b=J[g+4>>2];J[a>>2]=J[g>>2];J[a+4>>2]=b;ba=g+80|0}function bd(a,b,c){var d=0,e=0,f=0;d=ba+-64|0;ba=d;f=J[a>>2];e=J[f-4>>2];f=J[f-8>>2];J[d+32>>2]=0;J[d+36>>2]=0;J[d+40>>2]=0;J[d+44>>2]=0;J[d+48>>2]=0;J[d+52>>2]=0;H[d+55|0]=0;H[d+56|0]=0;H[d+57|0]=0;H[d+58|0]=0;H[d+59|0]=0;H[d+60|0]=0;H[d+61|0]=0;H[d+62|0]=0;J[d+24>>2]=0;J[d+28>>2]=0;J[d+20>>2]=0;J[d+16>>2]=b;J[d+12>>2]=a;J[d+8>>2]=c;a=a+f|0;b=0;a:{if(pb(e,c,0)){J[d+56>>2]=1;da[J[J[e>>2]+20>>2]](e,d+8|0,a,a,1,0);b=J[d+32>>2]==1?a:0;break a}da[J[J[e>>2]+24>>2]](e,d+8|0,a,1,0);b:{switch(J[d+44>>2]){case 0:b=J[d+48>>2]==1?J[d+36>>2]==1?J[d+40>>2]==1?J[d+28>>2]:0:0:0;break a;case 1:break b;default:break a}}if(J[d+32>>2]!=1){if(J[d+48>>2]|J[d+36>>2]!=1|J[d+40>>2]!=1){break a}}b=J[d+24>>2]}ba=d- -64|0;return b}function Ca(a,b){var c=0,d=0,e=0,f=0;c=J[a>>2];a:{if(b){b=J[c+12>>2];d=J[c+8>>2]+1|0;b=d?b:b+1|0;J[c+8>>2]=d;J[c+12>>2]=b;b=J[a+28>>2];J[a+24>>2]=J[a+24>>2]|1<>2];d=J[c>>2]+1|0;b=d?b:b+1|0;J[c>>2]=d;J[c+4>>2]=b;b=J[a+28>>2]}b=b+1|0;J[a+28>>2]=b;b:{c:{if((b|0)==32){b=J[a+16>>2];d:{if((b|0)!=J[a+20>>2]){J[b>>2]=J[a+24>>2];J[a+16>>2]=b+4;break d}e=b;b=J[a+12>>2];c=e-b|0;f=c>>2;d=f+1|0;if(d>>>0>=1073741824){break c}e=c>>>1|0;d=c>>>0>=2147483644?1073741823:d>>>0>>0?e:d;if(d){if(d>>>0>=1073741824){break b}e=oa(d<<2)}else{e=0}f=e+(f<<2)|0;J[f>>2]=J[a+24>>2];c=ta(e,b,c);J[a+20>>2]=c+(d<<2);J[a+16>>2]=f+4;J[a+12>>2]=c;if(!b){break d}na(b)}J[a+24>>2]=0;J[a+28>>2]=0}return}qa();B()}xa();B()}function pa(a,b,c){var d=0,e=0,f=0,g=0;a:{if(!c){break a}H[a|0]=b;d=a+c|0;H[d-1|0]=b;if(c>>>0<3){break a}H[a+2|0]=b;H[a+1|0]=b;H[d-3|0]=b;H[d-2|0]=b;if(c>>>0<7){break a}H[a+3|0]=b;H[d-4|0]=b;if(c>>>0<9){break a}d=0-a&3;e=d+a|0;b=P(b&255,16843009);J[e>>2]=b;d=c-d&-4;c=d+e|0;J[c-4>>2]=b;if(d>>>0<9){break a}J[e+8>>2]=b;J[e+4>>2]=b;J[c-8>>2]=b;J[c-12>>2]=b;if(d>>>0<25){break a}J[e+24>>2]=b;J[e+20>>2]=b;J[e+16>>2]=b;J[e+12>>2]=b;J[c-16>>2]=b;J[c-20>>2]=b;J[c-24>>2]=b;J[c-28>>2]=b;g=e&4|24;c=d-g|0;if(c>>>0<32){break a}d=Hl(b,0,1,1);f=ca;b=e+g|0;while(1){J[b+24>>2]=d;J[b+28>>2]=f;J[b+16>>2]=d;J[b+20>>2]=f;J[b+8>>2]=d;J[b+12>>2]=f;J[b>>2]=d;J[b+4>>2]=f;b=b+32|0;c=c-32|0;if(c>>>0>31){continue}break}}return a}function De(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;a:{g=a+16|0;f=J[g>>2];b:{if(!f){break b}i=J[b>>2];b=g;while(1){h=(i|0)>J[f+16>>2];b=h?b:f;f=J[(h?f+4|0:f)>>2];if(f){continue}break}if((b|0)==(g|0)|(i|0)>2]){break b}f=J[b+24>>2];if(!f){break b}m=b+20|0;b=K[c+11|0];g=b<<24>>24<0;i=g?J[c>>2]:c;b=g?J[c+4>>2]:b;while(1){g=K[f+27|0];h=g<<24>>24<0;g=h?J[f+20>>2]:g;k=g>>>0>>0;c:{d:{e:{f:{g:{h:{j=k?g:b;if(j){h=h?J[f+16>>2]:f+16|0;l=Ba(i,h,j);if(l){break h}if(b>>>0>=g>>>0){break g}break c}if(b>>>0>=g>>>0){break f}break c}if((l|0)<0){break c}}g=Ba(h,i,j);if(g){break e}}if(k){break d}break a}if((g|0)<0){break d}break a}f=f+4|0}f=J[f>>2];if(f){continue}break}}Be(a,c,d,e);return}Be(m,c,d,e)}function jb(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;f=a+16|0;e=J[f>>2];a:{if(!e){break a}g=J[b>>2];b=f;while(1){h=(g|0)>J[e+16>>2];b=h?b:e;e=J[(h?e+4|0:e)>>2];if(e){continue}break}if((b|0)==(f|0)|(g|0)>2]){break a}e=J[b+24>>2];if(!e){break a}g=b+20|0;b=K[c+11|0];f=b<<24>>24<0;h=f?J[c>>2]:c;b=f?J[c+4>>2]:b;while(1){f=K[e+27|0];i=f<<24>>24<0;f=i?J[e+20>>2]:f;k=f>>>0>>0;b:{c:{d:{e:{f:{g:{j=k?f:b;if(j){i=i?J[e+16>>2]:e+16|0;l=Ba(h,i,j);if(l){break g}if(b>>>0>=f>>>0){break f}break b}if(b>>>0>=f>>>0){break e}break b}if((l|0)<0){break b}}f=Ba(i,h,j);if(f){break d}}if(k){break c}return Bb(g,c,d)}if((f|0)<0){break c}return Bb(g,c,d)}e=e+4|0}e=J[e>>2];if(e){continue}break}}return Bb(a,c,d)}function Fd(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0;a:{e=J[a+20>>2];b:{if(!((!J[a+16>>2]&(e|0)<=0|(e|0)<0)&(!!b&(c|0)>=0|(c|0)>0))){break b}H[a+24|0]=d;e=b+7|0;c=e>>>0<7?c+1|0:c;e=(c&7)<<29|e>>>3;J[a+16>>2]=e;J[a+20>>2]=c>>>3;f=J[a+4>>2];h=J[a>>2];c=f-h|0;b=c+8|0;d=d?b:c;b=d+e|0;c:{if(b>>>0>c>>>0){e=b-c|0;g=J[a+8>>2];if(e>>>0<=g-f>>>0){i=a,j=pa(f,0,e)+e|0,J[i+4>>2]=j;break c}if((b|0)<0){break a}f=g-h|0;g=f<<1;f=f>>>0>=1073741823?2147483647:b>>>0>>0?g:b;g=oa(f);pa(g+c|0,0,e);c=ta(g,h,c);J[a+8>>2]=c+f;J[a+4>>2]=b+c;J[a>>2]=c;if(!h){break c}na(h);break c}if(b>>>0>=c>>>0){break c}J[a+4>>2]=b+h}c=J[a>>2];b=oa(8);J[b+4>>2]=0;J[b>>2]=c+d;c=J[a+12>>2];J[a+12>>2]=b;if(!c){break b}na(c)}return}qa();B()}function Ce(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;e=a+16|0;d=J[e>>2];a:{if(!d){break a}f=J[b>>2];b=e;while(1){g=(f|0)>J[d+16>>2];b=g?b:d;d=J[(g?d+4|0:d)>>2];if(d){continue}break}if((b|0)==(e|0)|(f|0)>2]){break a}d=J[b+24>>2];if(!d){break a}f=b+20|0;b=K[c+11|0];e=b<<24>>24<0;g=e?J[c>>2]:c;b=e?J[c+4>>2]:b;while(1){e=K[d+27|0];h=e<<24>>24<0;e=h?J[d+20>>2]:e;j=e>>>0>>0;b:{c:{d:{e:{f:{g:{i=j?e:b;if(i){h=h?J[d+16>>2]:d+16|0;k=Ba(g,h,i);if(k){break g}if(b>>>0>=e>>>0){break f}break b}if(b>>>0>=e>>>0){break e}break b}if((k|0)<0){break b}}e=Ba(h,g,i);if(e){break d}}if(j){break c}return Dd(f,c)}if((e|0)<0){break c}return Dd(f,c)}d=d+4|0}d=J[d>>2];if(d){continue}break}}return Dd(a,c)}function td(a,b,c){var d=0,e=0,f=0,g=0;Aa(J[c+8>>2],b);e=J[c>>2];g=c+4|0;if((e|0)!=(g|0)){while(1){if(!hf(b,e+16|0)){return}d=J[e+32>>2]-J[e+28>>2]|0;Aa(d,b);f=J[b+20>>2];if(!J[b+16>>2]&(f|0)<=0|(f|0)<0){f=J[e+28>>2];sa(b,J[b+4>>2],f,d+f|0)}f=J[e+4>>2];a:{if(f){while(1){d=f;f=J[d>>2];if(f){continue}break a}}while(1){d=J[e+8>>2];f=J[d>>2]!=(e|0);e=d;if(f){continue}break}}e=d;if((d|0)!=(g|0)){continue}break}}Aa(J[c+20>>2],b);d=J[c+12>>2];c=c+16|0;if((d|0)==(c|0)){return}while(1){if(!hf(b,d+16|0)){return}td(a,b,J[d+28>>2]);f=d;e=J[d+4>>2];b:{if(e){while(1){d=e;e=J[d>>2];if(e){continue}break b}}while(1){d=J[f+8>>2];e=J[d>>2]!=(f|0);f=d;if(e){continue}break}}if((c|0)!=(d|0)){continue}break}}function kl(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;j=J[b+4>>2]-J[b>>2]>>2;f=J[a+8>>2];i=K[f+24|0];d=i;g=ba+-64|0;ba=g;e=Lc(g);h=P(d,J[3712]);Nd(e,J[J[a+8>>2]+56>>2],0,d,5,h,h>>31);e=jg(oa(96),e);Kd(e,j);d=J[a+32>>2];J[a+32>>2]=e;if(d){Ka(d)}a:{if(!c){break a}d=J[a+32>>2];H[d+84|0]=0;h=J[d+68>>2];e=J[d+72>>2]-h>>2;if(e>>>0>>0){Ma(d+68|0,c-e|0,2736);break a}if(c>>>0>=e>>>0){break a}J[d+72>>2]=h+(c<<2)}ba=g- -64|0;c=J[b>>2];d=J[b+4>>2];if((c|0)==(d|0)){return 1}a=J[a+32>>2];g=J[J[a>>2]>>2]+J[a+48>>2]|0;b=0;while(1){a=J[c>>2];if(!K[f+84|0]){a=J[J[f+68>>2]+(a<<2)>>2]}a=$c(f,a,H[f+24|0],g+(b<<2)|0);if(a){b=b+i|0;c=c+4|0;if((d|0)!=(c|0)){continue}}break}return a|0}function Rb(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0;f=c-b|0;h=f>>2;d=J[a+8>>2];e=J[a>>2];if(h>>>0<=d-e>>2>>>0){d=J[a+4>>2];g=d-e|0;f=g+b|0;i=g>>2;g=i>>>0>>0?f:c;if((g|0)!=(b|0)){while(1){J[e>>2]=J[b>>2];e=e+4|0;b=b+4|0;if((g|0)!=(b|0)){continue}break}}if(h>>>0>i>>>0){if((c|0)!=(g|0)){while(1){J[d>>2]=J[f>>2];d=d+4|0;f=f+4|0;if((f|0)!=(c|0)){continue}break}}J[a+4>>2]=d;return}J[a+4>>2]=e;return}if(e){J[a+4>>2]=e;na(e);J[a+8>>2]=0;J[a>>2]=0;J[a+4>>2]=0;d=0}a:{if((f|0)<0){break a}e=d>>>1|0;d=d>>>0>=2147483644?1073741823:e>>>0>h>>>0?e:h;if(d>>>0>=1073741824){break a}e=d<<2;d=oa(e);J[a>>2]=d;J[a+8>>2]=d+e;if((b|0)!=(c|0)){c=b;b=(f-4&-4)+4|0;d=ua(d,c,b)+b|0}J[a+4>>2]=d;return}qa();B()}function Na(a,b,c){var d=0,e=0,f=0;e=ba-16|0;ba=e;J[a+4>>2]=0;a:{b:{if(!b){break b}f=J[a+8>>2];d=f<<5;c:{if(d>>>0>=b>>>0){J[a+4>>2]=b;break c}J[e+8>>2]=0;J[e>>2]=0;J[e+4>>2]=0;if((b|0)<0){break a}if(d>>>0<=1073741822){f=f<<6;d=b+31&-32;d=d>>>0>>0?f:d}else{d=2147483647}wc(e,d);f=J[a>>2];J[a>>2]=J[e>>2];J[e>>2]=f;d=J[a+4>>2];J[a+4>>2]=b;J[e+4>>2]=d;d=J[a+8>>2];J[a+8>>2]=J[e+8>>2];J[e+8>>2]=d;if(!f){break c}na(f)}d=b>>>5|0;a=J[a>>2];if(K[c|0]){if(b>>>0>=32){pa(a,255,d<<2)}if((b&-32)==(b|0)){break b}a=a+(d<<2)|0;J[a>>2]=J[a>>2]|-1>>>32-(b&31);break b}if(b>>>0>=32){pa(a,0,d<<2)}if((b&-32)==(b|0)){break b}a=a+(d<<2)|0;J[a>>2]=J[a>>2]&(-1>>>32-(b&31)^-1)}ba=e+16|0;return}qa();B()}function kc(a,b){var c=0,d=0,e=0,f=0,g=0,h=0;h=ba-16|0;ba=h;a:{b:{c=J[a+8>>2];c:{if((c|0)!=J[a+12>>2]){J[c>>2]=b;J[a+8>>2]=c+4;break c}f=c;c=J[a+4>>2];e=f-c|0;g=e>>2;d=g+1|0;if(d>>>0>=1073741824){break b}f=e>>>1|0;d=e>>>0>=2147483644?1073741823:d>>>0>>0?f:d;if(d){if(d>>>0>=1073741824){break a}f=oa(d<<2)}else{f=0}g=f+(g<<2)|0;J[g>>2]=b;e=ta(f,c,e);J[a+12>>2]=e+(d<<2);J[a+8>>2]=g+4;J[a+4>>2]=e;if(!c){break c}na(c)}c=J[a+16>>2];e=J[a+20>>2]-c>>2;d:{if((e|0)>(b|0)){break d}J[h+12>>2]=-1;d=b+1|0;if(d>>>0>e>>>0){jc(a+16|0,d-e|0,h+12|0);c=J[a+16>>2];break d}if(d>>>0>=e>>>0){break d}J[a+20>>2]=(d<<2)+c}J[(b<<2)+c>>2]=(J[a+8>>2]-J[a+4>>2]>>2)-1;ba=h+16|0;return}qa();B()}xa();B()}function gh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0;d=ba-48|0;ba=d;J[d+40>>2]=J[a- -64>>2];c=J[b+20>>2];if(!J[b+16>>2]&(c|0)<=0|(c|0)<0){sa(b,J[b+4>>2],d+40|0,d+44|0)}c=d+8|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;za(c);if(J[d+40>>2]>0){f=1;while(1){g=f;f=J[J[a+60>>2]+(e>>>3&536870908)>>2]>>>e|0;Ca(c,(g^f^-1)&1);f=f&1;e=e+1|0;if((e|0)>2]){continue}break}}ya(c,b);J[d+44>>2]=J[a+12>>2];e=J[b+20>>2];a:{if(!!J[b+16>>2]&(e|0)>=0|(e|0)>0){break a}f=d+48|0;sa(b,J[b+4>>2],d+44|0,f);e=J[b+20>>2];g=J[b+16>>2];J[d+44>>2]=J[a+24>>2];if(!!g&(e|0)>=0|(e|0)>0){break a}sa(b,J[b+4>>2],d+44|0,f)}wa(c);ba=d+48|0;return 1}function rh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0;d=ba-48|0;ba=d;J[d+40>>2]=J[a+80>>2];c=J[b+20>>2];if(!J[b+16>>2]&(c|0)<=0|(c|0)<0){sa(b,J[b+4>>2],d+40|0,d+44|0)}c=d+8|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;za(c);if(J[d+40>>2]>0){f=1;while(1){g=f;f=J[J[a+76>>2]+(e>>>3&536870908)>>2]>>>e|0;Ca(c,(g^f^-1)&1);f=f&1;e=e+1|0;if((e|0)>2]){continue}break}}ya(c,b);J[d+44>>2]=J[a+12>>2];e=J[b+20>>2];a:{if(!!J[b+16>>2]&(e|0)>=0|(e|0)>0){break a}f=d+48|0;sa(b,J[b+4>>2],d+44|0,f);e=J[b+20>>2];g=J[b+16>>2];J[d+44>>2]=J[a+16>>2];if(!!g&(e|0)>=0|(e|0)>0){break a}sa(b,J[b+4>>2],d+44|0,f)}wa(c);ba=d+48|0;return 1}function Ic(a,b){var c=0,d=0,e=0,f=0,g=0;a:{b:{c:{e=J[a>>2];f=J[a+4>>2]-e>>2;c=f+1|0;if(c>>>0<1073741824){e=J[a+8>>2]-e|0;g=e>>>1|0;c=e>>>0>=2147483644?1073741823:c>>>0>>0?g:c;if(c){if(c>>>0>=1073741824){break c}d=oa(c<<2)}e=J[b>>2];J[b>>2]=0;b=(f<<2)+d|0;J[b>>2]=e;c=(c<<2)+d|0;e=b+4|0;d=J[a+4>>2];f=J[a>>2];if((d|0)==(f|0)){break b}while(1){d=d-4|0;g=J[d>>2];J[d>>2]=0;b=b-4|0;J[b>>2]=g;if((d|0)!=(f|0)){continue}break}J[a+8>>2]=c;c=J[a+4>>2];J[a+4>>2]=e;d=J[a>>2];J[a>>2]=b;if((c|0)==(d|0)){break a}while(1){c=c-4|0;a=J[c>>2];J[c>>2]=0;if(a){da[J[J[a>>2]+4>>2]](a)}if((c|0)!=(d|0)){continue}break}break a}qa();B()}xa();B()}J[a+8>>2]=c;J[a+4>>2]=e;J[a>>2]=b}if(d){na(d)}}function kd(a,b,c,d,e,f,g,h){var i=0,j=0,k=0;i=ba-16|0;ba=i;if((b^-1)+2147483631>>>0>=c>>>0){if(K[a+11|0]>>>7|0){k=J[a>>2]}else{k=a}if(b>>>0<1073741799){J[i+12>>2]=b<<1;J[i>>2]=b+c;c=ba-16|0;ba=c;ba=c+16|0;c=i+12|0;c=J[(M[i>>2]>2]?c:i)>>2];if(c>>>0>=11){j=c+16&-16;c=j-1|0;c=(c|0)==11?j:c}else{c=10}c=c+1|0}else{c=2147483631}Ac(i,c);c=J[i>>2];if(e){Ab(c,k,e)}if(g){Ab(c+e|0,h,g)}j=e+f|0;h=d-j|0;if((d|0)!=(j|0)){Ab((c+e|0)+g|0,(e+k|0)+f|0,h)}if((b|0)!=10){na(k)}J[a>>2]=c;J[a+8>>2]=J[a+8>>2]&-2147483648|J[i+4>>2]&2147483647;J[a+8>>2]=J[a+8>>2]|-2147483648;b=a;a=h+(e+g|0)|0;J[b+4>>2]=a;H[i+12|0]=0;H[a+c|0]=K[i+12|0];ba=i+16|0;return}gb();B()}function Lk(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0;J[b>>2]=1;f=b+8|0;c=J[b+8>>2];d=J[b+12>>2]-c|0;if(d>>>0<=4294967291){Gc(f,d+4|0);c=J[f>>2]}c=c+d|0;d=J[a+4>>2];H[c|0]=d;H[c+1|0]=d>>>8;H[c+2|0]=d>>>16;H[c+3|0]=d>>>24;c=J[a+8>>2];if((c|0)!=J[a+12>>2]){d=0;while(1){g=(d<<2)+c|0;c=J[b+8>>2];e=J[b+12>>2]-c|0;if(e>>>0<=4294967291){Gc(f,e+4|0);c=J[f>>2]}c=c+e|0;e=J[g>>2];H[c|0]=e;H[c+1|0]=e>>>8;H[c+2|0]=e>>>16;H[c+3|0]=e>>>24;d=d+1|0;c=J[a+8>>2];if(d>>>0>2]-c>>2>>>0){continue}break}}c=J[b+12>>2];b=J[b+8>>2];c=c-b|0;if(c>>>0<=4294967291){Gc(f,c+4|0);b=J[f>>2]}b=b+c|0;a=J[a+20>>2];H[b|0]=a;H[b+1|0]=a>>>8;H[b+2|0]=a>>>16;H[b+3|0]=a>>>24}function bb(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0;f=c-b|0;g=f>>2;d=J[a+8>>2];e=J[a>>2];if(g>>>0<=d-e>>2>>>0){f=J[a+4>>2]-e|0;d=f+b|0;h=f>>2;f=h>>>0>>0?d:c;i=f-b|0;if((b|0)!=(f|0)){ta(e,b,i)}if(g>>>0>h>>>0){b=J[a+4>>2];if((c|0)!=(f|0)){while(1){J[b>>2]=J[d>>2];b=b+4|0;d=d+4|0;if((d|0)!=(c|0)){continue}break}}J[a+4>>2]=b;return}J[a+4>>2]=e+i;return}if(e){J[a+4>>2]=e;na(e);J[a+8>>2]=0;J[a>>2]=0;J[a+4>>2]=0;d=0}a:{if((f|0)<0){break a}e=d>>>1|0;d=d>>>0>=2147483644?1073741823:e>>>0>g>>>0?e:g;if(d>>>0>=1073741824){break a}e=d<<2;d=oa(e);J[a>>2]=d;J[a+8>>2]=d+e;if((b|0)!=(c|0)){c=b;b=(f-4&-4)+4|0;d=ua(d,c,b)+b|0}J[a+4>>2]=d;return}qa();B()}function Xg(a,b,c){var d=0,e=0,f=0;d=ba-16|0;ba=d;J[d+12>>2]=b;b=oa(32);J[d>>2]=b;J[d+4>>2]=17;J[d+8>>2]=-2147483616;H[b+16|0]=K[1261];e=K[1257]|K[1258]<<8|(K[1259]<<16|K[1260]<<24);f=K[1253]|K[1254]<<8|(K[1255]<<16|K[1256]<<24);H[b+8|0]=f;H[b+9|0]=f>>>8;H[b+10|0]=f>>>16;H[b+11|0]=f>>>24;H[b+12|0]=e;H[b+13|0]=e>>>8;H[b+14|0]=e>>>16;H[b+15|0]=e>>>24;e=K[1249]|K[1250]<<8|(K[1251]<<16|K[1252]<<24);f=K[1245]|K[1246]<<8|(K[1247]<<16|K[1248]<<24);H[b|0]=f;H[b+1|0]=f>>>8;H[b+2|0]=f>>>16;H[b+3|0]=f>>>24;H[b+4|0]=e;H[b+5|0]=e>>>8;H[b+6|0]=e>>>16;H[b+7|0]=e>>>24;H[b+17|0]=0;Wg(a+4|0,d+12|0,d,c);if(H[d+11|0]<0){na(J[d>>2])}ba=d+16|0}function Ua(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0;a:{b:{if((a|0)==(b|0)){break b}J[c>>2]=J[a>>2];e=a+4|0;if((e|0)==(b|0)){break b}a=J[d>>2];g=J[a>>2];i=J[a+4>>2]-g>>3;a=c;while(1){d=J[e>>2];if(d>>>0>=i>>>0){break a}f=J[a>>2];if(f>>>0>=i>>>0){break a}j=a+4|0;c:{if(M[(d<<3)+g>>2]>2]){J[a+4>>2]=f;h=c;d:{if((a|0)==(c|0)){break d}while(1){k=J[e>>2];if(k>>>0>=i>>>0){break a}f=a-4|0;d=J[f>>2];if(d>>>0>=i>>>0){break a}h=a;if(M[(k<<3)+g>>2]>=M[(d<<3)+g>>2]){break d}J[a>>2]=d;a=f;if((c|0)!=(a|0)){continue}break}h=c}J[h>>2]=J[e>>2];break c}J[j>>2]=d}a=j;e=e+4|0;if((e|0)!=(b|0)){continue}break}}return}ra();B()}function mk(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0;f=ba-32|0;ba=f;d=d-e|0;if((d|0)>0){i=a+8|0;k=0-e<<2;while(1){j=d<<2;g=j+b|0;h=g+k|0;l=J[h>>2];h=J[h+4>>2];m=J[g+4>>2];J[f+16>>2]=J[g>>2];J[f+20>>2]=m;J[f+8>>2]=l;J[f+12>>2]=h;Ya(f+24|0,i,f+16|0,f+8|0);g=c+j|0;J[g>>2]=J[f+24>>2];J[g+4>>2]=J[f+28>>2];d=d-e|0;if((d|0)>0){continue}break}}d=e>>>0>1073741823?-1:e<<2;d=pa(oa(d),0,d);e=J[d>>2];g=J[d+4>>2];i=J[b+4>>2];J[f+16>>2]=J[b>>2];J[f+20>>2]=i;J[f+8>>2]=e;J[f+12>>2]=g;Ya(f+24|0,a+8|0,f+16|0,f+8|0);J[c>>2]=J[f+24>>2];J[c+4>>2]=J[f+28>>2];na(d);ba=f+32|0;return 1}function qk(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;g=ba-32|0;ba=g;J[a+48>>2]=f;i=1;a:{d=J[a+40>>2];d=J[d+4>>2]-J[d>>2]|0;b:{if((d|0)<4){break b}l=a+44|0;m=a+8|0;f=d>>>2|0;while(1){d=J[a+40>>2];i=J[d>>2];h=J[d+4>>2]-i>>2;d=f-1|0;if(h>>>0<=d>>>0){break a}i=lh(l,J[i+(d<<2)>>2],b,d);if(!i){break b}h=J[a+52>>2];n=J[a+56>>2];j=P(d,e)<<2;k=j+b|0;o=J[k+4>>2];J[g+16>>2]=J[k>>2];J[g+20>>2]=o;J[g+8>>2]=h;J[g+12>>2]=n;Ya(g+24|0,m,g+16|0,g+8|0);h=c+j|0;J[h>>2]=J[g+24>>2];J[h+4>>2]=J[g+28>>2];h=f>>>0>1;f=d;if(h){continue}break}}ba=g+32|0;return i|0}ra();B()}function Ck(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;g=ba-32|0;ba=g;J[a+48>>2]=f;i=1;a:{d=J[a+40>>2];d=J[d+4>>2]-J[d>>2]|0;b:{if((d|0)<4){break b}l=a+44|0;m=a+8|0;f=d>>>2|0;while(1){d=J[a+40>>2];i=J[d>>2];h=J[d+4>>2]-i>>2;d=f-1|0;if(h>>>0<=d>>>0){break a}i=qh(l,J[i+(d<<2)>>2],b,d);if(!i){break b}h=J[a+52>>2];n=J[a+56>>2];j=P(d,e)<<2;k=j+b|0;o=J[k+4>>2];J[g+16>>2]=J[k>>2];J[g+20>>2]=o;J[g+8>>2]=h;J[g+12>>2]=n;Ya(g+24|0,m,g+16|0,g+8|0);h=c+j|0;J[h>>2]=J[g+24>>2];J[h+4>>2]=J[g+28>>2];h=f>>>0>1;f=d;if(h){continue}break}}ba=g+32|0;return i|0}ra();B()}function hi(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;cf(a,b,c);e=J[a+96>>2];a=J[a+100>>2];a:{if((e|0)==(a|0)){break a}d=(a-e|0)/12|0;f=d>>>0<=1?1:d;g=f&1;a=J[b>>2];c=0;if(d>>>0>=2){f=f&-2;d=0;while(1){b=P(c,12)+e|0;J[b>>2]=J[a+(J[b>>2]<<2)>>2];J[b+4>>2]=J[a+(J[b+4>>2]<<2)>>2];J[b+8>>2]=J[a+(J[b+8>>2]<<2)>>2];b=P(c|1,12)+e|0;J[b>>2]=J[a+(J[b>>2]<<2)>>2];J[b+4>>2]=J[a+(J[b+4>>2]<<2)>>2];J[b+8>>2]=J[a+(J[b+8>>2]<<2)>>2];c=c+2|0;d=d+2|0;if((f|0)!=(d|0)){continue}break}}if(!g){break a}b=P(c,12)+e|0;J[b>>2]=J[a+(J[b>>2]<<2)>>2];J[b+4>>2]=J[a+(J[b+4>>2]<<2)>>2];J[b+8>>2]=J[a+(J[b+8>>2]<<2)>>2]}}function Tg(a,b){var c=0,d=0,e=0,f=0;f=ba-16|0;ba=f;c=oa(16);J[f>>2]=c;J[f+4>>2]=15;J[f+8>>2]=-2147483632;d=K[1587]|K[1588]<<8|(K[1589]<<16|K[1590]<<24);e=K[1583]|K[1584]<<8|(K[1585]<<16|K[1586]<<24);H[c+7|0]=e;H[c+8|0]=e>>>8;H[c+9|0]=e>>>16;H[c+10|0]=e>>>24;H[c+11|0]=d;H[c+12|0]=d>>>8;H[c+13|0]=d>>>16;H[c+14|0]=d>>>24;d=K[1580]|K[1581]<<8|(K[1582]<<16|K[1583]<<24);e=K[1576]|K[1577]<<8|(K[1578]<<16|K[1579]<<24);H[c|0]=e;H[c+1|0]=e>>>8;H[c+2|0]=e>>>16;H[c+3|0]=e>>>24;H[c+4|0]=d;H[c+5|0]=d>>>8;H[c+6|0]=d>>>16;H[c+7|0]=d>>>24;H[c+15|0]=0;vb(a+4|0,f,b);if(H[f+11|0]<0){na(J[f>>2])}ba=f+16|0}function Gi(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;a=ba-16|0;ba=a;a:{if(!b){break a}J[a+8>>2]=0;J[a>>2]=0;J[a+4>>2]=0;h=b+96|0;g=J[b+96>>2];e=(J[b+100>>2]-g|0)/12|0;b:{if(e>>>0>>0){of(h,c-e|0,a);break b}if(c>>>0>>0){J[b+100>>2]=g+P(c,12)}if(!c){break a}}g=J[h>>2];e=0;while(1){i=P(e,12);f=i+d|0;j=J[f>>2];k=J[f+8>>2];l=J[f+4>>2];f=(J[b+100>>2]-g|0)/12|0;c:{if(f>>>0>e>>>0){e=e+1|0;break c}J[a+8>>2]=0;J[a>>2]=0;J[a+4>>2]=0;e=e+1|0;of(h,e-f|0,a);g=J[h>>2]}f=g+i|0;J[f+8>>2]=k;J[f+4>>2]=l;J[f>>2]=j;if((c|0)!=(e|0)){continue}break}}ba=a+16|0;return(b|0)!=0|0}function Hb(a,b,c,d,e,f,g,h){var i=0,j=0,k=0,l=0;i=1;j=d&2147483647;l=j;k=(j|0)==2147418112;a:{if(k&!c?a|b:k&(c|0)!=0|j>>>0>2147418112){break a}j=h&2147483647;k=(j|0)==2147418112;if(k&!g?e|f:k&(g|0)!=0|j>>>0>2147418112){break a}if(!(a|e|(c|g)|(b|f|(j|l)))){return 0}i=d&h;if((i|0)>0|(i|0)>=0){i=-1;if((c|0)==(g|0)&(d|0)==(h|0)?(b|0)==(f|0)&a>>>0>>0|b>>>0>>0:c>>>0>>0&(d|0)<=(h|0)|(d|0)<(h|0)){break a}return(a^e|c^g|(b^f|d^h))!=0}i=-1;if((c|0)==(g|0)&(d|0)==(h|0)?(b|0)==(f|0)&a>>>0>e>>>0|b>>>0>f>>>0:c>>>0>g>>>0&(d|0)>=(h|0)|(d|0)>(h|0)){break a}i=(a^e|c^g|(b^f|d^h))!=0}return i}function Jb(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0;J[a+8>>2]=0;J[a>>2]=0;J[a+4>>2]=0;a:{b:{if(b){if(b>>>0>=357913942){break b}b=P(b,12);d=oa(b);J[a+4>>2]=d;J[a>>2]=d;e=b+d|0;J[a+8>>2]=e;f=J[c+4>>2];g=J[c>>2];c:{if((f|0)==(g|0)){b=b-12|0;pa(d,0,(b-((b>>>0)%12|0)|0)+12|0);break c}h=f-g|0;if((h|0)<0){break a}i=h&-4;while(1){J[d+8>>2]=0;J[d>>2]=0;J[d+4>>2]=0;b=oa(h);J[d>>2]=b;J[d+8>>2]=b+i;c=g;while(1){J[b>>2]=J[c>>2];b=b+4|0;c=c+4|0;if((f|0)!=(c|0)){continue}break}J[d+4>>2]=b;d=d+12|0;if((e|0)!=(d|0)){continue}break}}J[a+4>>2]=e}return}qa();B()}J[d+8>>2]=0;J[d>>2]=0;J[d+4>>2]=0;qa();B()}function tc(a,b,c){var d=0,e=0,f=0,g=0,h=0;f=c-b|0;g=f>>2;e=J[a+8>>2];d=J[a>>2];if(g>>>0<=e-d>>2>>>0){e=J[a+4>>2]-d|0;f=e>>2;e=f>>>0>>0?b+e|0:c;h=e-b|0;if((b|0)!=(e|0)){ta(d,b,h)}if(f>>>0>>0){b=c-e|0;d=J[a+4>>2];if((c|0)!=(e|0)){ta(d,e,b)}J[a+4>>2]=b+d;return}J[a+4>>2]=d+h;return}if(d){J[a+4>>2]=d;na(d);J[a+8>>2]=0;J[a>>2]=0;J[a+4>>2]=0;e=0}a:{if((f|0)<0){break a}d=e>>>1|0;d=e>>>0>=2147483644?1073741823:d>>>0>g>>>0?d:g;if(d>>>0>=1073741824){break a}e=d<<2;d=oa(e);J[a+4>>2]=d;J[a>>2]=d;J[a+8>>2]=d+e;if((b|0)!=(c|0)){ua(d,b,f)}J[a+4>>2]=d+(g<<2);return}qa();B()}function jg(a,b){var c=0;c=J[b+4>>2];J[a>>2]=J[b>>2];J[a+4>>2]=c;c=J[b+60>>2];J[a+56>>2]=J[b+56>>2];J[a+60>>2]=c;c=J[b+52>>2];J[a+48>>2]=J[b+48>>2];J[a+52>>2]=c;c=J[b+44>>2];J[a+40>>2]=J[b+40>>2];J[a+44>>2]=c;c=J[b+36>>2];J[a+32>>2]=J[b+32>>2];J[a+36>>2]=c;c=J[b+28>>2];J[a+24>>2]=J[b+24>>2];J[a+28>>2]=c;c=J[b+20>>2];J[a+16>>2]=J[b+16>>2];J[a+20>>2]=c;c=J[b+12>>2];J[a+8>>2]=J[b+8>>2];J[a+12>>2]=c;J[a+88>>2]=0;J[a+64>>2]=0;J[a+68>>2]=0;J[a+72>>2]=0;J[a+76>>2]=0;H[a+77|0]=0;H[a+78|0]=0;H[a+79|0]=0;H[a+80|0]=0;H[a+81|0]=0;H[a+82|0]=0;H[a+83|0]=0;H[a+84|0]=0;return a}function ob(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;f=a+4|0;a=J[a+4>>2];a:{b:{if(!a){break b}d=K[b+11|0];c=d<<24>>24<0;g=c?J[b>>2]:b;d=c?J[b+4>>2]:d;b=f;while(1){e=K[a+27|0];c=e<<24>>24<0;e=c?J[a+20>>2]:e;h=e>>>0>d>>>0;i=h?d:e;c:{if(i){c=Ba(c?J[a+16>>2]:a+16|0,g,i);if(c){break c}}c=d>>>0>e>>>0?-1:h}c=(c|0)<0;b=c?b:a;a=J[(c?a+4|0:a)>>2];if(a){continue}break}if((b|0)==(f|0)){break b}c=K[b+27|0];a=c<<24>>24<0;d:{c=a?J[b+20>>2]:c;e=c>>>0>>0?c:d;if(e){a=Ba(g,a?J[b+16>>2]:b+16|0,e);if(a){break d}}if(c>>>0>d>>>0){break b}break a}if((a|0)>=0){break a}}b=f}return b}function xe(a){var b=0,c=0,d=0,e=0;c=J[a+152>>2];if(c){d=c;b=J[a+156>>2];if((c|0)!=(b|0)){while(1){d=b-12|0;e=J[d>>2];if(e){J[b-8>>2]=e;na(e)}b=d;if((c|0)!=(b|0)){continue}break}d=J[a+152>>2]}J[a+156>>2]=c;na(d)}c=J[a+140>>2];if(c){d=c;b=J[a+144>>2];if((c|0)!=(b|0)){while(1){d=b-12|0;e=J[d>>2];if(e){J[b-8>>2]=e;na(e)}b=d;if((c|0)!=(b|0)){continue}break}d=J[a+140>>2]}J[a+144>>2]=c;na(d)}b=J[a+128>>2];if(b){J[a+132>>2]=b;na(b)}b=J[a+116>>2];if(b){J[a+120>>2]=b;na(b)}b=J[a+104>>2];if(b){J[a+108>>2]=b;na(b)}tb(a+84|0);tb(a- -64|0);tb(a+44|0);wa(a+12|0)}function Uh(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;if(pb(a,J[b+8>>2],e)){if(!(J[b+28>>2]==1|J[b+4>>2]!=(c|0))){J[b+28>>2]=d}return}a:{if(pb(a,J[b>>2],e)){if(!(J[b+16>>2]!=(c|0)&J[b+20>>2]!=(c|0))){if((d|0)!=1){break a}J[b+32>>2]=1;return}J[b+32>>2]=d;b:{if(J[b+44>>2]==4){break b}I[b+52>>1]=0;a=J[a+8>>2];da[J[J[a>>2]+20>>2]](a,b,c,c,1,e);if(K[b+53|0]){J[b+44>>2]=3;if(!K[b+52|0]){break b}break a}J[b+44>>2]=4}J[b+20>>2]=c;J[b+40>>2]=J[b+40>>2]+1;if(J[b+36>>2]!=1|J[b+24>>2]!=2){break a}H[b+54|0]=1;return}a=J[a+8>>2];da[J[J[a>>2]+24>>2]](a,b,c,d,e)}}function xc(a,b){var c=0,d=0,e=0,f=0;c=J[a+16>>2];if(b){J[a+12>>2]=J[a+12>>2]|-2147483648>>>c}b=c+1|0;J[a+16>>2]=b;a:{b:{if((b|0)==32){b=J[a+4>>2];c:{if((b|0)!=J[a+8>>2]){J[b>>2]=J[a+12>>2];J[a+4>>2]=b+4;break c}d=b;b=J[a>>2];c=d-b|0;f=c>>2;e=f+1|0;if(e>>>0>=1073741824){break b}d=c>>>1|0;e=c>>>0>=2147483644?1073741823:e>>>0>>0?d:e;if(e){if(e>>>0>=1073741824){break a}d=oa(e<<2)}else{d=0}f=d+(f<<2)|0;J[f>>2]=J[a+12>>2];c=ta(d,b,c);J[a+8>>2]=c+(e<<2);J[a+4>>2]=f+4;J[a>>2]=c;if(!b){break c}na(b)}J[a+12>>2]=0;J[a+16>>2]=0}return}qa();B()}xa();B()}function ue(a){var b=0,c=0,d=0,e=0;c=J[a+140>>2];if(c){d=c;b=J[a+144>>2];if((c|0)!=(b|0)){while(1){d=b-12|0;e=J[d>>2];if(e){J[b-8>>2]=e;na(e)}b=d;if((c|0)!=(b|0)){continue}break}d=J[a+140>>2]}J[a+144>>2]=c;na(d)}c=J[a+128>>2];if(c){d=c;b=J[a+132>>2];if((c|0)!=(b|0)){while(1){d=b-12|0;e=J[d>>2];if(e){J[b-8>>2]=e;na(e)}b=d;if((c|0)!=(b|0)){continue}break}d=J[a+128>>2]}J[a+132>>2]=c;na(d)}b=J[a+116>>2];if(b){J[a+120>>2]=b;na(b)}b=J[a+104>>2];if(b){J[a+108>>2]=b;na(b)}b=J[a+92>>2];if(b){J[a+96>>2]=b;na(b)}tb(a+72|0);tb(a+52|0);tb(a+32|0);tb(a+12|0)}function Qg(a,b,c,d,e){var f=0,g=0,h=0;f=ba-16|0;ba=f;g=Pg(b,c,f+12|0,f+8|0,d);d=J[g>>2];if(d){b=0}else{d=oa(40);c=d+16|0;a:{if(H[e+11|0]>=0){h=J[e+4>>2];J[c>>2]=J[e>>2];J[c+4>>2]=h;J[c+8>>2]=J[e+8>>2];break a}Ga(c,J[e>>2],J[e+4>>2])}c=d+28|0;b:{if(H[e+23|0]>=0){e=e+12|0;h=J[e+4>>2];J[c>>2]=J[e>>2];J[c+4>>2]=h;J[c+8>>2]=J[e+8>>2];break b}Ga(c,J[e+12>>2],J[e+16>>2])}J[d+8>>2]=J[f+12>>2];J[d>>2]=0;J[d+4>>2]=0;J[g>>2]=d;e=d;c=J[J[b>>2]>>2];if(c){J[b>>2]=c;e=J[g>>2]}sb(J[b+4>>2],e);J[b+8>>2]=J[b+8>>2]+1;b=1}H[a+4|0]=b;J[a>>2]=d;ba=f+16|0}function ig(a){var b=0,c=0,d=0,e=0;za(a);c=J[a+84>>2];a:{if((c|0)<=0){break a}b=c<<5;d=oa(c>>>0>134217727?-1:b|4);J[d>>2]=c;d=d+4|0;c=d+b|0;b=d;while(1){J[b>>2]=0;J[b+4>>2]=0;J[b+24>>2]=0;J[b+28>>2]=0;J[b+16>>2]=0;J[b+20>>2]=0;J[b+8>>2]=0;J[b+12>>2]=0;b=b+32|0;if((c|0)!=(b|0)){continue}break}e=J[a+80>>2];J[a+80>>2]=d;if(e){c=e-4|0;d=J[c>>2];if(d){b=(d<<5)+e|0;while(1){b=wa(b-32|0);if((e|0)!=(b|0)){continue}break}}na(c)}if(J[a+84>>2]<=0){break a}b=0;while(1){za(J[a+80>>2]+(b<<5)|0);b=b+1|0;if((b|0)>2]){continue}break}}}function qb(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;f=ba-16|0;ba=f;A(+b);g=v(1)|0;d=v(0)|0;c=g&2147483647;e=c+-1048576|0;a:{if((e|0)==2145386495|e>>>0<2145386495){h=d<<28;e=c>>>4|0;c=(c&15)<<28|d>>>4;d=e+1006632960|0;break a}if((c|0)==2146435072|c>>>0>2146435072){h=d<<28;c=(g&15)<<28|d>>>4;d=g>>>4|2147418112;break a}if(!(c|d)){c=0;d=0;break a}e=c;c=c?S(c):S(d)+32|0;Pa(f,d,e,0,0,c+49|0);i=J[f>>2];h=J[f+4>>2];e=15372-c<<16;c=J[f+8>>2];d=e|J[f+12>>2]^65536}J[a>>2]=i;J[a+4>>2]=h;J[a+8>>2]=c;J[a+12>>2]=g&-2147483648|d;ba=f+16|0}function yi(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;f=ba-48|0;ba=f;a:{if(!b){a=0;break a}e=f+16|0;J[e>>2]=0;J[e+4>>2]=0;H[e+24|0]=0;J[e+16>>2]=0;J[e+20>>2]=0;J[e+8>>2]=0;J[e+12>>2]=0;g=0;b:{if((Nb(b,0)|0)==-1){break b}if(c){g=0;if(!(da[J[J[b>>2]+16>>2]](b)|0)){break b}da[J[J[b>>2]+20>>2]](b)}ah(f,a,b,e);a=J[f>>2];if(H[f+15|0]<0){na(J[f+4>>2])}g=0;if(a){break b}vd(d,J[e>>2],J[e+4>>2]);g=J[e+4>>2]-J[e>>2]|0}a=g;b=J[e+12>>2];J[e+12>>2]=0;if(b){na(b)}b=J[e>>2];if(!b){break a}J[e+4>>2]=b;na(b)}ba=f+48|0;return a|0}function re(a){a=a|0;var b=0,c=0,d=0;J[a>>2]=2284;d=J[a+60>>2];if(d){b=d;c=J[a- -64>>2];if((b|0)!=(c|0)){while(1){c=c-4|0;b=J[c>>2];J[c>>2]=0;if(b){Ka(b)}if((c|0)!=(d|0)){continue}break}b=J[a+60>>2]}J[a+64>>2]=d;na(b)}b=J[a+48>>2];if(b){J[a+52>>2]=b;na(b)}d=J[a+36>>2];if(d){b=d;c=J[a+40>>2];if((b|0)!=(c|0)){while(1){c=c-24|0;da[J[J[c>>2]>>2]](c)|0;if((c|0)!=(d|0)){continue}break}b=J[a+36>>2]}J[a+40>>2]=d;na(b)}J[a>>2]=2188;b=J[a+16>>2];if(b){J[a+20>>2]=b;na(b)}b=J[a+4>>2];if(b){J[a+8>>2]=b;na(b)}return a|0}function Ld(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;c=J[a+8>>2];d=J[a+4>>2];if(c-d>>2>>>0>=b>>>0){if(b){b=b<<2;d=pa(d,0,b)+b|0}J[a+4>>2]=d;return}a:{f=J[a>>2];g=d-f>>2;e=g+b|0;if(e>>>0<1073741824){c=c-f|0;h=c>>>1|0;e=c>>>0>=2147483644?1073741823:e>>>0>>0?h:e;if(e){if(e>>>0>=1073741824){break a}i=oa(e<<2)}c=(g<<2)+i|0;b=b<<2;b=pa(c,0,b)+b|0;if((d|0)!=(f|0)){while(1){c=c-4|0;d=d-4|0;J[c>>2]=J[d>>2];if((d|0)!=(f|0)){continue}break}}J[a+8>>2]=(e<<2)+i;J[a+4>>2]=b;J[a>>2]=c;if(f){na(f)}return}qa();B()}xa();B()}function zi(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0;e=ba-48|0;ba=e;a:{if(!b){a=0;break a}d=e+16|0;J[d>>2]=0;J[d+4>>2]=0;H[d+24|0]=0;J[d+16>>2]=0;J[d+20>>2]=0;J[d+8>>2]=0;J[d+12>>2]=0;f=0;b:{if((Nb(b,0)|0)==-1){break b}f=0;if(!(da[J[J[b>>2]+16>>2]](b)|0)){break b}da[J[J[b>>2]+20>>2]](b);Zg(e,a,b,d);a=J[e>>2];if(H[e+15|0]<0){na(J[e+4>>2])}f=0;if(a){break b}vd(c,J[d>>2],J[d+4>>2]);f=J[d+4>>2]-J[d>>2]|0}a=f;b=J[d+12>>2];J[d+12>>2]=0;if(b){na(b)}b=J[d>>2];if(!b){break a}J[d+4>>2]=b;na(b)}ba=e+48|0;return a|0}function Gb(a,b,c,d,e,f){var g=0,h=0,i=0,j=0;a:{if(f&64){c=f+-64|0;b=c&31;if((c&63)>>>0>=32){c=0;b=e>>>b|0}else{c=e>>>b|0;b=((1<>>b}d=0;e=0;break a}if(!f){break a}i=d;h=64-f|0;g=h&31;if((h&63)>>>0>=32){h=i<>>32-g|e<>>0>=32){g=0;b=c>>>b|0}else{g=c>>>b|0;b=((1<>>b}b=j|b;c=g|h;g=d;d=f&31;if((f&63)>>>0>=32){h=0;d=e>>>d|0}else{h=e>>>d|0;d=((1<>>d}e=h}J[a>>2]=b;J[a+4>>2]=c;J[a+8>>2]=d;J[a+12>>2]=e}function hf(a,b){var c=0,d=0,e=0,f=0,g=0,h=0;c=ba-16|0;ba=c;e=K[b+11|0];e=e<<24>>24<0?J[b+4>>2]:e;a:{if(e>>>0>255){break a}if(!e){H[c+15|0]=0;b=J[a+20>>2];if(!!J[a+16>>2]&(b|0)>=0|(b|0)>0){break a}sa(a,J[a+4>>2],c+15|0,c+16|0);break a}H[c+14|0]=e;d=J[a+20>>2];if(!!J[a+16>>2]&(d|0)>=0|(d|0)>0){break a}sa(a,J[a+4>>2],c+14|0,c+15|0);d=J[a+20>>2];if(!!J[a+16>>2]&(d|0)>=0|(d|0)>0){break a}g=a;h=J[a+4>>2];a=K[b+11|0];d=a<<24>>24<0;f=d?J[b>>2]:b;sa(g,h,f,(d?J[b+4>>2]:a)+f|0)}ba=c+16|0;return e>>>0<256}function Gc(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;a:{c=J[a+4>>2];e=J[a>>2];d=c-e|0;b:{if(d>>>0>>0){g=b-d|0;f=J[a+8>>2];if(g>>>0<=f-c>>>0){h=a,i=pa(c,0,g)+g|0,J[h+4>>2]=i;break b}if((b|0)<0){break a}c=f-e|0;f=c<<1;c=c>>>0>=1073741823?2147483647:b>>>0>>0?f:b;f=oa(c);pa(f+d|0,0,g);d=ta(f,e,d);J[a+8>>2]=d+c;J[a+4>>2]=b+d;J[a>>2]=d;if(!e){break b}na(e);break b}if(b>>>0>=d>>>0){break b}J[a+4>>2]=b+e}b=J[a+28>>2];c=b;d=b+1|0;b=J[a+24>>2]+1|0;e=b?c:d;J[a+24>>2]=b;J[a+28>>2]=e;return}qa();B()}function pi(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0;d=ba-48|0;ba=d;e=J[a+4>>2];a:{if(!e){break a}if(b){if(!(da[J[J[e>>2]+16>>2]](e)|0)){break a}b=J[a+4>>2];da[J[J[b>>2]+20>>2]](b)}b=d+16|0;J[b>>2]=0;J[b+4>>2]=0;H[b+24|0]=0;J[b+16>>2]=0;J[b+20>>2]=0;J[b+8>>2]=0;J[b+12>>2]=0;fe(d,J[a>>2],b);a=J[d>>2];if(H[d+15|0]<0){na(J[d+4>>2])}if(!a){vd(c,J[b>>2],J[b+4>>2]);f=J[b+4>>2]-J[b>>2]|0}a=J[b+12>>2];J[b+12>>2]=0;if(a){na(a)}a=J[b>>2];if(!a){break a}J[b+4>>2]=a;na(a)}ba=d+48|0;return f|0}function Dl(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0;e=1;a:{if((da[J[J[b>>2]+20>>2]](b)|0)<=0){break a}while(1){e=0;d=Nb(J[J[a+4>>2]+4>>2],da[J[J[b>>2]+24>>2]](b,f)|0);if((d|0)==-1){break a}c=J[a+4>>2];g=0;b:{if((d|0)<0){break b}h=J[c+4>>2];if(J[h+12>>2]-J[h+8>>2]>>2<=(d|0)){break b}c=J[J[c+8>>2]+(J[J[c+20>>2]+(d<<2)>>2]<<2)>>2];g=da[J[J[c>>2]+36>>2]](c,d)|0}if(!(da[J[J[b>>2]+28>>2]](b,g)|0)){break a}e=1;f=f+1|0;if((da[J[J[b>>2]+20>>2]](b)|0)>(f|0)){continue}break}}return e|0}function Pa(a,b,c,d,e,f){var g=0,h=0,i=0;a:{if(f&64){d=b;e=f+-64|0;b=e&31;if((e&63)>>>0>=32){e=d<>>32-b|c<>>0>=32){h=g<>>32-d|e<>>0>=32){e=0;b=c>>>d|0}else{e=c>>>d|0;b=((1<>>d}d=i|b;e=e|h;b=f&31;if((f&63)>>>0>=32){h=g<>>32-b|c<>2]=b;J[a+4>>2]=c;J[a+8>>2]=d;J[a+12>>2]=e}function se(a,b){ya(a,b);ya(a+32|0,b);ya(a- -64|0,b);ya(a+96|0,b);ya(a+128|0,b);ya(a+160|0,b);ya(a+192|0,b);ya(a+224|0,b);ya(a+256|0,b);ya(a+288|0,b);ya(a+320|0,b);ya(a+352|0,b);ya(a+384|0,b);ya(a+416|0,b);ya(a+448|0,b);ya(a+480|0,b);ya(a+512|0,b);ya(a+544|0,b);ya(a+576|0,b);ya(a+608|0,b);ya(a+640|0,b);ya(a+672|0,b);ya(a+704|0,b);ya(a+736|0,b);ya(a+768|0,b);ya(a+800|0,b);ya(a+832|0,b);ya(a+864|0,b);ya(a+896|0,b);ya(a+928|0,b);ya(a+960|0,b);ya(a+992|0,b);ya(a+1024|0,b)}function Ch(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;d=J[J[a+8>>2]+40>>2];h=oa((d|0)<0?-1:d);g=J[b>>2];i=J[b+4>>2];if((g|0)!=(i|0)){k=d+h|0;while(1){e=J[(j<<2)+g>>2];f=J[a+8>>2];if(!K[f+84|0]){e=J[J[f+68>>2]+(e<<2)>>2]}l=J[J[f>>2]>>2];d=J[f+40>>2];e=J[f+48>>2]+Hl(d,J[f+44>>2],e,0)|0;e=ua(h,e+l|0,d);d=J[c+20>>2];if(!J[c+16>>2]&(d|0)<=0|(d|0)<0){sa(c,J[c+4>>2],e,k);g=J[b>>2];i=J[b+4>>2]}j=j+1|0;if(j>>>0>2>>>0){continue}break}}na(h);return 1}function Pe(a,b){if(!a){return 0}a:{b:{if(a){if(b>>>0<=127){break b}c:{if(!J[J[4843]>>2]){if((b&-128)==57216){break b}break c}if(b>>>0<=2047){H[a+1|0]=b&63|128;H[a|0]=b>>>6|192;a=2;break a}if(!((b&-8192)!=57344&b>>>0>=55296)){H[a+2|0]=b&63|128;H[a|0]=b>>>12|224;H[a+1|0]=b>>>6&63|128;a=3;break a}if(b-65536>>>0<=1048575){H[a+3|0]=b&63|128;H[a|0]=b>>>18|240;H[a+2|0]=b>>>6&63|128;H[a+1|0]=b>>>12&63|128;a=4;break a}}J[4804]=25;a=-1}else{a=1}break a}H[a|0]=b;a=1}return a}function Je(a,b,c){var d=0,e=0,f=0,g=0,h=0;f=ba-16|0;ba=f;d=ba-32|0;ba=d;e=ba-16|0;ba=e;J[e+12>>2]=a;J[e+8>>2]=a+b;J[d+24>>2]=J[e+12>>2];J[d+28>>2]=J[e+8>>2];ba=e+16|0;b=ba-16|0;ba=b;h=J[d+28>>2];e=J[d+24>>2];g=h-e|0;if((e|0)!=(h|0)){ta(c,e,g)}J[b+12>>2]=e+g;J[b+8>>2]=c+g;J[d+16>>2]=J[b+12>>2];J[d+20>>2]=J[b+8>>2];ba=b+16|0;J[d+12>>2]=(J[d+16>>2]-a|0)+a;J[d+8>>2]=(J[d+20>>2]-c|0)+c;J[f+8>>2]=J[d+12>>2];J[f+12>>2]=J[d+8>>2];ba=d+32|0;ba=f+16|0;return J[f+12>>2]}function aj(a,b){a=a|0;b=b|0;var c=0,d=0;c=ba-16|0;ba=c;d=J[a+8>>2];a:{if((d|0)==J[a+12>>2]){b=bf(oa(76),b);J[b+36>>2]=0;J[b+40>>2]=0;J[b>>2]=2284;J[b+44>>2]=0;J[b+48>>2]=0;J[b+52>>2]=0;J[b+56>>2]=0;J[b+60>>2]=0;J[b+64>>2]=0;J[b+68>>2]=0;J[b+72>>2]=0;J[c+8>>2]=b;d=J[a+12>>2];b:{if(d>>>0>2]){J[c+8>>2]=0;J[d>>2]=b;J[a+12>>2]=d+4;break b}Ic(a+8|0,c+8|0)}a=J[c+8>>2];J[c+8>>2]=0;if(!a){break a}da[J[J[a>>2]+4>>2]](a);break a}kc(J[d>>2],b)}ba=c+16|0;return 1}function Wg(a,b,c,d){var e=0,f=0,g=0,h=0,i=0;e=ba-48|0;ba=e;h=J[b>>2];f=a+16|0;b=J[f>>2];a:{b:{if(!b){break b}g=f;while(1){i=J[b+16>>2]<(h|0);g=i?g:b;b=J[(i?b+4|0:b)>>2];if(b){continue}break}if((g|0)==(f|0)){break b}if(J[g+16>>2]<=(h|0)){break a}}J[e+28>>2]=0;J[e+32>>2]=0;f=e+24|0;J[e+24>>2]=f|4;b=e+16|0;J[b>>2]=0;J[b+4>>2]=0;J[e+8>>2]=h;J[e+12>>2]=b;b=a+12|0;a=e+8|0;Oc(e+40|0,b,a,a);g=J[e+40>>2];Da(a|4,J[e+16>>2]);Da(f,J[e+28>>2])}vb(g+20|0,c,d);ba=e+48|0}function Ec(a){a=a|0;var b=0,c=0,d=0;J[a>>2]=14964;b=J[a+68>>2];if(b){J[a+72>>2]=b;na(b)}b=J[a+56>>2];if(b){J[a+60>>2]=b;na(b)}b=J[a+44>>2];if(b){J[a+48>>2]=b;na(b)}b=J[a+32>>2];if(b){J[a+36>>2]=b;na(b)}b=J[a+20>>2];if(b){J[a+24>>2]=b;na(b)}b=J[a+8>>2];if(b){d=b;c=J[a+12>>2];if((b|0)!=(c|0)){while(1){c=c-4|0;d=J[c>>2];J[c>>2]=0;if(d){Ka(d)}if((b|0)!=(c|0)){continue}break}d=J[a+8>>2]}J[a+12>>2]=b;na(d)}b=J[a+4>>2];J[a+4>>2]=0;if(b){pf(b)}return a|0}function Ah(a){a=a|0;var b=0,c=0,d=0;J[a>>2]=2496;b=J[a+72>>2];J[a+72>>2]=0;if(b){da[J[J[b>>2]+4>>2]](b)}b=J[a+60>>2];if(b){J[a- -64>>2]=b;na(b)}b=J[a+48>>2];if(b){na(b)}d=J[a+36>>2];if(d){c=J[a+40>>2];b=d;if((c|0)!=(b|0)){while(1){c=c-4|0;b=J[c>>2];J[c>>2]=0;if(b){da[J[J[b>>2]+4>>2]](b)}if((c|0)!=(d|0)){continue}break}b=J[a+36>>2]}J[a+40>>2]=d;na(b)}J[a>>2]=2188;b=J[a+16>>2];if(b){J[a+20>>2]=b;na(b)}b=J[a+4>>2];if(b){J[a+8>>2]=b;na(b)}return a|0}function Ra(a){J[a>>2]=-1;J[a+4>>2]=0;J[a+8>>2]=0;J[a+32>>2]=0;J[a+36>>2]=0;H[a+28|0]=1;J[a+20>>2]=0;J[a+24>>2]=0;J[a+12>>2]=0;J[a+16>>2]=0;J[a+40>>2]=0;J[a+44>>2]=0;J[a+48>>2]=0;J[a+52>>2]=0;J[a+56>>2]=0;J[a+60>>2]=0;J[a+64>>2]=0;J[a+68>>2]=0;J[a+76>>2]=0;J[a+80>>2]=0;J[a+84>>2]=0;J[a+88>>2]=0;J[a+92>>2]=0;J[a+96>>2]=0;J[a+72>>2]=a+4;J[a+104>>2]=0;J[a+108>>2]=0;H[a+100|0]=1;J[a+112>>2]=0;J[a+116>>2]=0;J[a+120>>2]=0;J[a+124>>2]=0;J[a+128>>2]=0}function Fa(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;e=J[a+8>>2];c=J[a+4>>2];if(e-c>>2>>>0>=b>>>0){if(b){b=b<<2;c=pa(c,0,b)+b|0}J[a+4>>2]=c;return}a:{f=c;c=J[a>>2];g=f-c|0;h=g>>2;d=h+b|0;if(d>>>0<1073741824){e=e-c|0;f=e>>>1|0;d=e>>>0>=2147483644?1073741823:d>>>0>>0?f:d;if(d){if(d>>>0>=1073741824){break a}i=oa(d<<2)}b=b<<2;e=pa((h<<2)+i|0,0,b);f=d<<2;d=ta(i,c,g);J[a+8>>2]=f+d;J[a+4>>2]=b+e;J[a>>2]=d;if(c){na(c)}return}qa();B()}xa();B()}function Wa(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;e=J[a+8>>2];c=J[a+4>>2];if(e-c>>3>>>0>=b>>>0){if(b){b=b<<3;c=pa(c,0,b)+b|0}J[a+4>>2]=c;return}a:{f=c;c=J[a>>2];g=f-c|0;h=g>>3;d=h+b|0;if(d>>>0<536870912){e=e-c|0;f=e>>>2|0;d=e>>>0>=2147483640?536870911:d>>>0>>0?f:d;if(d){if(d>>>0>=536870912){break a}i=oa(d<<3)}b=b<<3;e=pa((h<<3)+i|0,0,b);f=d<<3;d=ta(i,c,g);J[a+8>>2]=f+d;J[a+4>>2]=b+e;J[a>>2]=d;if(c){na(c)}return}qa();B()}xa();B()}function Oe(a,b,c,d,e){var f=0,g=0,h=0;h=-1;g=d&2147483647;f=(g|0)==2147418112;a:{if(f&!c?a|b:f&(c|0)!=0|g>>>0>2147418112){break a}f=e&2147483647;if(((f|0)==2147418112&0|f>>>0>2147418112)&(f|0)!=2147418112){break a}if(!(a|c|(f|g|b))){return 0}f=d&e;if((f|0)>0|(f|0)>=0){if(((c|0)!=0|(d|0)!=(e|0))&(d|0)<(e|0)){break a}return(a|c|(d^e|b))!=0}if(!c&(d|0)==(e|0)?a|b:(c|0)!=0&(d|0)>=(e|0)|(d|0)>(e|0)){break a}h=(a|c|(d^e|b))!=0}return h}function Xa(a,b,c,d,e,f,g,h,i){var j=0,k=0,l=0,m=0;i=Hl(b,c,h,i);h=ca;e=Hl(d,e,f,g);i=e+i|0;d=ca+h|0;h=e>>>0>i>>>0?d+1|0:d;j=g;e=0;k=c;d=0;c=Hl(g,e,c,d);g=c+i|0;i=ca+h|0;l=g;c=c>>>0>g>>>0?i+1|0:i;g=Hl(f,0,b,0);h=ca;i=0;d=Hl(f,i,k,d);h=h+d|0;f=ca+i|0;f=d>>>0>h>>>0?f+1|0:f;i=f+l|0;d=c;f=f>>>0>i>>>0?d+1|0:d;c=Hl(b,m,j,e)+h|0;e=ca;e=c>>>0>>0?e+1|0:e;h=e+i|0;i=f;J[a+8>>2]=h;J[a+12>>2]=e>>>0>h>>>0?i+1|0:i;J[a>>2]=g;J[a+4>>2]=c}function Ia(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;a:{c=J[a+4>>2];f=J[a>>2];d=c-f|0;b:{if(d>>>0>>0){g=b-d|0;e=J[a+8>>2];if(g>>>0<=e-c>>>0){h=a,i=pa(c,0,g)+g|0,J[h+4>>2]=i;return}if((b|0)<0){break a}c=e-f|0;e=c<<1;c=c>>>0>=1073741823?2147483647:b>>>0>>0?e:b;e=oa(c);pa(e+d|0,0,g);d=ta(e,f,d);J[a+8>>2]=d+c;J[a+4>>2]=b+d;J[a>>2]=d;if(!f){break b}na(f);return}if(b>>>0>=d>>>0){break b}J[a+4>>2]=b+f}return}qa();B()}function Ug(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;d=ba-16|0;ba=d;e=J[a+4>>2];a:{if((e|0)==-1){break a}c=J[b+20>>2];if(!!J[b+16>>2]&(c|0)>=0|(c|0)>0){break a}sa(b,J[b+4>>2],J[a+8>>2],J[a+12>>2]);c=J[b+20>>2];if(!!J[b+16>>2]&(c|0)>=0|(c|0)>0){break a}sa(b,J[b+4>>2],a+20|0,a+24|0);c=J[b+20>>2];f=J[b+16>>2];H[d+15|0]=J[a+4>>2];if(!!f&(c|0)>=0|(c|0)>0){break a}sa(b,J[b+4>>2],d+15|0,d+16|0)}ba=d+16|0;return(e|0)!=-1|0}function fj(a){a=a|0;var b=0,c=0,d=0,e=0,f=0;a:{b=J[a+8>>2];b:{if((b|0)<0){break b}c=J[a+4>>2];e=J[c>>2];d=J[c+4>>2]-e>>2;c:{if(d>>>0>>0){Ld(c,b-d|0);f=J[a+8>>2];break c}f=b;if(b>>>0>=d>>>0){break c}J[c+4>>2]=e+(b<<2);f=b}d=f;if((d|0)<=0){break b}a=J[a+4>>2];c=J[a>>2];e=J[a+4>>2]-c>>2;a=0;while(1){if((a|0)==(e|0)){break a}J[c+(a<<2)>>2]=a;a=a+1|0;if((d|0)!=(a|0)){continue}break}}return(b^-1)>>>31|0}ra();B()}function te(a){za(a);za(a+32|0);za(a- -64|0);za(a+96|0);za(a+128|0);za(a+160|0);za(a+192|0);za(a+224|0);za(a+256|0);za(a+288|0);za(a+320|0);za(a+352|0);za(a+384|0);za(a+416|0);za(a+448|0);za(a+480|0);za(a+512|0);za(a+544|0);za(a+576|0);za(a+608|0);za(a+640|0);za(a+672|0);za(a+704|0);za(a+736|0);za(a+768|0);za(a+800|0);za(a+832|0);za(a+864|0);za(a+896|0);za(a+928|0);za(a+960|0);za(a+992|0);za(a+1024|0)}function Ga(a,b,c){var d=0,e=0,f=0,g=0;e=ba-16|0;ba=e;a:{b:{if(c>>>0<11){d=a;H[a+11|0]=K[a+11|0]&128|c;H[a+11|0]=K[a+11|0]&127;break b}if(c>>>0>2147483631){break a}g=e+8|0;if(c>>>0>=11){f=c+16&-16;d=f-1|0;d=(d|0)==11?f:d}else{d=10}Ac(g,d+1|0);d=J[e+8>>2];J[a>>2]=d;J[a+8>>2]=J[a+8>>2]&-2147483648|J[e+12>>2]&2147483647;J[a+8>>2]=J[a+8>>2]|-2147483648;J[a+4>>2]=c}Ab(d,b,c+1|0);ba=e+16|0;return}gb();B()}function Zg(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;e=ba-96|0;ba=e;f=Ng(e+40|0,c);$g(e,b,c);Mg(f,e);Da(e+24|0,J[e+28>>2]);nb(e+12|0,J[e+16>>2]);Da(e,J[e+4>>2]);fe(a,f,d);if(!J[a>>2]){if(H[a+15|0]<0){na(J[a+4>>2])}J[b+40>>2]=J[f+40>>2];J[b+44>>2]=J[f+44>>2];J[a+8>>2]=0;J[a+12>>2]=0;J[a>>2]=0;J[a+4>>2]=0}J[f>>2]=10256;Da(f+28|0,J[f+32>>2]);nb(f+16|0,J[f+20>>2]);Da(f+4|0,J[f+8>>2]);ba=e+96|0}function mc(a,b){var c=0,d=0,e=0;c=J[a+4>>2];d=c+b|0;J[a+4>>2]=d;if(!((d-1^c-1)>>>0<32?c:0)){J[J[a>>2]+((d>>>0>=33?d-1>>>5|0:0)<<2)>>2]=0}a:{if(!b){break a}a=J[a>>2]+(c>>>3&536870908)|0;c=c&31;if(c){d=32-c|0;e=b>>>0>d>>>0?d:b;J[a>>2]=J[a>>2]&(-1<>>d-e^-1);b=b-e|0;a=a+4|0}c=b>>>5|0;if(b>>>0>=32){pa(a,0,c<<2)}if((b&-32)==(b|0)){break a}a=(c<<2)+a|0;J[a>>2]=J[a>>2]&(-1>>>32-(b&31)^-1)}}function Oa(a,b,c){var d=0,e=0,f=0;if(!(K[a|0]&32)){a:{d=b;b=a;a=J[b+16>>2];b:{if(!a){if(We(b)){break b}a=J[b+16>>2]}f=J[b+20>>2];if(a-f>>>0>>0){da[J[b+36>>2]](b,d,c)|0;break a}c:{if(J[b+80>>2]<0){break c}a=c;while(1){e=a;if(!a){break c}a=e-1|0;if(K[d+a|0]!=10){continue}break}if(da[J[b+36>>2]](b,d,e)>>>0>>0){break b}d=d+e|0;c=c-e|0;f=J[b+20>>2]}ua(f,d,c);J[b+20>>2]=J[b+20>>2]+c}}}}function Wj(a){a=a|0;var b=0,c=0,d=0;J[a>>2]=10404;b=J[a+64>>2];J[a+64>>2]=0;if(b){da[J[J[b>>2]+4>>2]](b)}J[a>>2]=12468;b=J[a+32>>2];if(b){J[a+36>>2]=b;na(b)}b=J[a+20>>2];if(b){J[a+24>>2]=b;na(b)}d=J[a+8>>2];if(d){c=J[a+12>>2];b=d;if((c|0)!=(b|0)){while(1){c=c-4|0;b=J[c>>2];J[c>>2]=0;if(b){da[J[J[b>>2]+4>>2]](b)}if((c|0)!=(d|0)){continue}break}b=J[a+8>>2]}J[a+12>>2]=d;na(b)}return a|0}function zl(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0;d=ba-16|0;ba=d;f=Me(a,b);a:{if(!f){break a}c=J[a+36>>2];if((c|0)==J[a+40>>2]){break a}g=d+16|0;while(1){c=J[(e<<2)+c>>2];h=d,i=da[J[J[c>>2]+32>>2]](c)|0,H[h+15|0]=i;c=J[b+20>>2];if(!J[b+16>>2]&(c|0)<=0|(c|0)<0){sa(b,J[b+4>>2],d+15|0,g)}e=e+1|0;c=J[a+36>>2];if(e>>>0>2]-c>>2>>>0){continue}break}}ba=d+16|0;return f|0}function Vj(a){a=a|0;var b=0,c=0,d=0;J[a>>2]=10404;b=J[a+64>>2];J[a+64>>2]=0;if(b){da[J[J[b>>2]+4>>2]](b)}J[a>>2]=12468;b=J[a+32>>2];if(b){J[a+36>>2]=b;na(b)}b=J[a+20>>2];if(b){J[a+24>>2]=b;na(b)}d=J[a+8>>2];if(d){c=J[a+12>>2];b=d;if((c|0)!=(b|0)){while(1){c=c-4|0;b=J[c>>2];J[c>>2]=0;if(b){da[J[J[b>>2]+4>>2]](b)}if((c|0)!=(d|0)){continue}break}b=J[a+8>>2]}J[a+12>>2]=d;na(b)}na(a)}function og(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;c=J[a+176>>2];d=J[a+172>>2];e=(c-d|0)/136|0;a:{if((c|0)==(d|0)){break a}c=0;b:{c:{d:{if(J[d>>2]==(b|0)){b=1}else{f=e>>>0<=1?1:e;while(1){c=c+1|0;if((f|0)==(c|0)){break d}if(J[P(c,136)+d>>2]!=(b|0)){continue}break}b=c>>>0>>0}if(b){break c}break a}if(c>>>0>>0){break b}break a}d=(P(c,136)+d|0)+104|0}return d|0}return a+40|0}function Sf(a,b){a=a|0;b=b|0;var c=0,d=0;c=ba-16|0;ba=c;a:{if(!b){d=oa(76);b=oa(12);J[b+8>>2]=J[J[a+4>>2]+80>>2];J[b>>2]=12404;J[b+4>>2]=0;d=pe(d,b,0);J[c+8>>2]=d;b=J[a+12>>2];b:{if(b>>>0>2]){J[c+8>>2]=0;J[b>>2]=d;J[a+12>>2]=b+4;break b}Ic(a+8|0,c+8|0)}a=J[c+8>>2];J[c+8>>2]=0;if(!a){break a}da[J[J[a>>2]+4>>2]](a);break a}kc(J[J[a+8>>2]>>2],b)}ba=c+16|0;return 1}function Jh(a,b){a=a|0;b=b|0;var c=0,d=0;c=J[a+36>>2];if((c|0)!=J[a+40>>2]){while(1){c=P(d,24)+c|0;da[J[J[c>>2]+28>>2]](c,b)|0;d=d+1|0;c=J[a+36>>2];if(d>>>0<(J[a+40>>2]-c|0)/24>>>0){continue}break}}c=J[a+48>>2];if((c|0)!=J[a+52>>2]){d=0;while(1){c=J[(d<<2)+c>>2];Aa((c|0)<0?(c^-1)<<1|1:c<<1,b);d=d+1|0;c=J[a+48>>2];if(d>>>0>2]-c>>2>>>0){continue}break}}return 1}function ud(a,b,c,d,e,f){var g=0,h=0,i=0;i=-1;a:{if(!a){break a}g=Jc(oa(96));Md(g,b,d<<24>>24,f,c);b=qd(a,g);if(c){g=J[J[a+8>>2]+(b<<2)>>2];while(1){f=J[g+40>>2];ua(J[J[g>>2]>>2]+P(f,K[g+84|0]?h:J[J[g+68>>2]+(h<<2)>>2])|0,(P(d,h)<<2)+e|0,f);h=h+1|0;if((h|0)!=(c|0)){continue}break}}d=J[a+80>>2];b:{if(!d){J[a+80>>2]=c;break b}if((c|0)!=(d|0)){break a}}i=b}return i}function rf(a,b,c,d,e,f){var g=0,h=0,i=0;i=-1;a:{if(!a){break a}g=Jc(oa(96));Md(g,b,d<<24>>24,f,c);b=qd(a,g);if(c){g=J[J[a+8>>2]+(b<<2)>>2];while(1){f=J[g+40>>2];ua(J[J[g>>2]>>2]+P(f,K[g+84|0]?h:J[J[g+68>>2]+(h<<2)>>2])|0,(P(d,h)<<1)+e|0,f);h=h+1|0;if((h|0)!=(c|0)){continue}break}}d=J[a+80>>2];b:{if(!d){J[a+80>>2]=c;break b}if((c|0)!=(d|0)){break a}}i=b}return i}function sf(a,b,c,d,e,f){var g=0,h=0,i=0;i=-1;a:{if(!a){break a}g=Jc(oa(96));Md(g,b,d<<24>>24,f,c);b=qd(a,g);if(c){g=J[J[a+8>>2]+(b<<2)>>2];while(1){f=J[g+40>>2];ua(J[J[g>>2]>>2]+P(f,K[g+84|0]?h:J[J[g+68>>2]+(h<<2)>>2])|0,P(d,h)+e|0,f);h=h+1|0;if((h|0)!=(c|0)){continue}break}}d=J[a+80>>2];b:{if(!d){J[a+80>>2]=c;break b}if((c|0)!=(d|0)){break a}}i=b}return i}function Th(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;if(pb(a,J[b+8>>2],e)){if(!(J[b+28>>2]==1|J[b+4>>2]!=(c|0))){J[b+28>>2]=d}return}a:{if(!pb(a,J[b>>2],e)){break a}if(!(J[b+16>>2]!=(c|0)&J[b+20>>2]!=(c|0))){if((d|0)!=1){break a}J[b+32>>2]=1;return}J[b+20>>2]=c;J[b+32>>2]=d;J[b+40>>2]=J[b+40>>2]+1;if(!(J[b+36>>2]!=1|J[b+24>>2]!=2)){H[b+54|0]=1}J[b+44>>2]=4}}function Mc(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0;e=ba+-64|0;ba=e;d=da[J[J[a>>2]+44>>2]](a,b)|0;a=da[J[J[a>>2]+40>>2]](a,b)|0;f=Lc(e);g=J[b+56>>2];h=d&255;i=a;a=a-1|0;if(a>>>0<=10){a=J[(a<<2)+14832>>2]}else{a=-1}d=P(a,d);Nd(f,g,0,h,i,d,d>>31);a=jg(oa(96),f);Kd(a,c);H[a+84|0]=1;J[a+72>>2]=J[a+68>>2];J[a+60>>2]=J[b+60>>2];ba=e- -64|0;return a|0}function Md(a,b,c,d,e){var f=0,g=0,h=0;f=oa(32);J[f+16>>2]=0;J[f+20>>2]=0;J[f+8>>2]=0;J[f>>2]=0;J[f+4>>2]=0;J[f+24>>2]=0;J[f+28>>2]=0;g=J[a+64>>2];J[a+64>>2]=f;if(g){f=J[g>>2];if(f){J[g+4>>2]=f;na(f)}na(g);f=J[a+64>>2]}h=c&255;g=d-1|0;if(g>>>0<=10){g=J[(g<<2)+14832>>2]}else{g=-1}c=P(g,c);Nd(a,b,f,h,d,c,c>>31);Kd(a,e);H[a+84|0]=1;J[a+72>>2]=J[a+68>>2]}function _h(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0;e=J[a+84>>2];f=J[e>>2];d=J[e+4>>2];h=J[a+28>>2];g=J[a+20>>2]-h|0;g=d>>>0>>0?d:g;if(g){ua(f,h,g);f=g+J[e>>2]|0;J[e>>2]=f;d=J[e+4>>2]-g|0;J[e+4>>2]=d}d=c>>>0>d>>>0?d:c;if(d){ua(f,b,d);f=d+J[e>>2]|0;J[e>>2]=f;J[e+4>>2]=J[e+4>>2]-d}H[f|0]=0;b=J[a+44>>2];J[a+28>>2]=b;J[a+20>>2]=b;return c|0}function xb(a,b,c){var d=0,e=0,f=0,g=0;d=ba-16|0;ba=d;H[d+15|0]=a&127;a:{if(!b&a>>>0>=128|b){H[d+15|0]=a|128;e=J[c+20>>2];if(!!J[c+16>>2]&(e|0)>=0|(e|0)>0){break a}sa(c,J[c+4>>2],d+15|0,d+16|0);f=xb((b&127)<<25|a>>>7,b>>>7|0,c);break a}a=J[c+20>>2];if(!!J[c+16>>2]&(a|0)>=0|(a|0)>0){break a}g=1;sa(c,J[c+4>>2],d+15|0,d+16|0)}ba=d+16|0;return g|f}function Fe(a,b,c,d){H[a+53|0]=1;a:{if(J[a+4>>2]!=(c|0)){break a}H[a+52|0]=1;c=J[a+16>>2];b:{if(!c){J[a+36>>2]=1;J[a+24>>2]=d;J[a+16>>2]=b;if((d|0)!=1){break a}if(J[a+48>>2]==1){break b}break a}if((b|0)==(c|0)){c=J[a+24>>2];if((c|0)==2){J[a+24>>2]=d;c=d}if(J[a+48>>2]!=1){break a}if((c|0)==1){break b}break a}J[a+36>>2]=J[a+36>>2]+1}H[a+54|0]=1}}function Fc(a,b){var c=0,d=0,e=0,f=0;d=1;a:{if((b|0)==-1){break a}b=P(b,3);if((b|0)==-1){break a}d=-1;e=J[a>>2];a=e+(b<<2)|0;c=b+1|0;c=(c>>>0)%3|0?c:b-2|0;if((c|0)!=-1){d=J[(c<<2)+e>>2]}a=J[a>>2];f=(a|0)==(d|0);b:{c:{if((b>>>0)%3|0){b=b-1|0;break c}b=b+2|0;c=-1;if((b|0)==-1){break b}}c=J[(b<<2)+e>>2]}d=f|(c|0)==(a|0)|(d|0)==(c|0)}return d}function jd(a,b,c){var d=0,e=0,f=0;f=ba-16|0;ba=f;d=K[a+11|0]>>>7|0?(J[a+8>>2]&2147483647)-1|0:10;if(K[a+11|0]>>>7|0){e=J[a+4>>2]}else{e=K[a+11|0]&127}a:{if(d-e>>>0>=c>>>0){if(!c){break a}if(K[a+11|0]>>>7|0){d=J[a>>2]}else{d=a}Ab(d+e|0,b,c);b=a;a=c+e|0;ld(b,a);H[f+15|0]=0;H[a+d|0]=K[f+15|0];break a}kd(a,d,(c+e|0)-d|0,e,e,0,c,b)}ba=f+16|0}function Xh(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;e=ba+-64|0;ba=e;d=1;a:{if(pb(a,b,0)){break a}d=0;if(!b){break a}b=bd(b,18476,18524);d=0;if(!b){break a}d=e+8|0;pa(d|4,0,52);J[e+56>>2]=1;J[e+20>>2]=-1;J[e+16>>2]=a;J[e+8>>2]=b;da[J[J[b>>2]+28>>2]](b,d,J[c>>2],1);a=J[e+32>>2];if((a|0)==1){J[c>>2]=J[e+24>>2]}d=(a|0)==1}ba=e- -64|0;return d|0}function Al(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0;J[a+32>>2]=c;J[a+28>>2]=b;a:{if(!(da[J[J[a>>2]+52>>2]](a)|0)){break a}e=J[a+4>>2];if((e|0)==J[a+8>>2]){return 1}c=0;while(1){d=c<<2;f=J[d+J[a+36>>2]>>2];d=da[J[J[f>>2]+8>>2]](f,b,J[d+e>>2])|0;if(!d){break a}c=c+1|0;e=J[a+4>>2];if(c>>>0>2]-e>>2>>>0){continue}break}}return d|0}function Pj(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=ba-16|0;ba=d;J[a+4>>2]=b;b=J[b+64>>2];e=J[b>>2];b=J[b+4>>2];H[d+15|0]=0;Na(a+24|0,(b-e>>2>>>0)/3|0,d+15|0);b=J[a+4>>2];e=J[b+56>>2];b=J[b+52>>2];H[d+14|0]=0;Na(a+36|0,e-b>>2,d+14|0);b=J[c+12>>2];J[a+16>>2]=J[c+8>>2];J[a+20>>2]=b;b=J[c+4>>2];J[a+8>>2]=J[c>>2];J[a+12>>2]=b;ba=d+16|0}function Aa(a,b){var c=0,d=0,e=0;c=ba-16|0;ba=c;H[c+15|0]=a&127;a:{if(a>>>0>=128){H[c+15|0]=a|128;d=J[b+20>>2];if(!!J[b+16>>2]&(d|0)>=0|(d|0)>0){a=0;break a}sa(b,J[b+4>>2],c+15|0,c+16|0);a=Aa(a>>>7|0,b);break a}a=0;d=J[b+20>>2];if(!!J[b+16>>2]&(d|0)>=0|(d|0)>0){break a}e=1;sa(b,J[b+4>>2],c+15|0,c+16|0)}ba=c+16|0;return a|e}function Wc(a,b){var c=0,d=0;a:{c=J[a+4>>2];d=J[a+8>>2];if((c|0)==d<<5){if((c+1|0)<0){break a}if(c>>>0<=1073741822){d=d<<6;c=(c&-32)+32|0;c=c>>>0>>0?d:c}else{c=2147483647}wc(a,c);c=J[a+4>>2]}J[a+4>>2]=c+1;d=1<>2]+(c>>>3&536870908)|0;if(K[b|0]){J[a>>2]=d|J[a>>2];return}J[a>>2]=J[a>>2]&(d^-1);return}qa();B()}function Ej(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=ba-16|0;ba=d;J[a+4>>2]=b;e=J[b>>2];b=J[b+4>>2];H[d+15|0]=0;Na(a+24|0,(b-e>>2>>>0)/3|0,d+15|0);b=J[a+4>>2];e=J[b+28>>2];b=J[b+24>>2];H[d+14|0]=0;Na(a+36|0,e-b>>2,d+14|0);b=J[c+12>>2];J[a+16>>2]=J[c+8>>2];J[a+20>>2]=b;b=J[c+4>>2];J[a+8>>2]=J[c>>2];J[a+12>>2]=b;ba=d+16|0}function Bc(a){var b=0,c=0,d=0,e=0;while(1){b=a;a=b+1|0;c=H[b|0];if((c|0)==32|c-9>>>0<5){continue}break}a:{b:{c:{c=H[b|0];switch(c-43|0){case 0:break b;case 2:break c;default:break a}}e=1}c=H[a|0];b=a}if(c-48>>>0<10){while(1){d=(P(d,10)-H[b|0]|0)+48|0;a=H[b+1|0];b=b+1|0;if(a-48>>>0<10){continue}break}}return e?d:0-d|0}function kj(a){a=a|0;var b=0,c=0,d=0;J[a>>2]=12468;b=J[a+32>>2];if(b){J[a+36>>2]=b;na(b)}b=J[a+20>>2];if(b){J[a+24>>2]=b;na(b)}d=J[a+8>>2];if(d){c=J[a+12>>2];b=d;if((c|0)!=(b|0)){while(1){c=c-4|0;b=J[c>>2];J[c>>2]=0;if(b){da[J[J[b>>2]+4>>2]](b)}if((c|0)!=(d|0)){continue}break}b=J[a+8>>2]}J[a+12>>2]=d;na(b)}return a|0}function Gd(a){a=a|0;var b=0,c=0,d=0;J[a>>2]=12468;b=J[a+32>>2];if(b){J[a+36>>2]=b;na(b)}b=J[a+20>>2];if(b){J[a+24>>2]=b;na(b)}d=J[a+8>>2];if(d){c=J[a+12>>2];b=d;if((c|0)!=(b|0)){while(1){c=c-4|0;b=J[c>>2];J[c>>2]=0;if(b){da[J[J[b>>2]+4>>2]](b)}if((c|0)!=(d|0)){continue}break}b=J[a+8>>2]}J[a+12>>2]=d;na(b)}na(a)}function nh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;c=ba-16|0;ba=c;J[c+12>>2]=J[a+12>>2];d=J[b+20>>2];a:{if(!!J[b+16>>2]&(d|0)>=0|(d|0)>0){break a}sa(b,J[b+4>>2],c+12|0,c+16|0);d=J[b+20>>2];e=J[b+16>>2];J[c+8>>2]=J[a+16>>2];if(!!e&(d|0)>=0|(d|0)>0){break a}sa(b,J[b+4>>2],c+8|0,c+12|0)}ya(a+112|0,b);ba=c+16|0;return 1}function pd(a){var b=0;b=1;a:{if((a|0)>=1024){b=898846567431158e293;if(a>>>0<2047){a=a-1023|0;break a}b=Infinity;a=((a|0)>=3069?3069:a)-2046|0;break a}if((a|0)>-1023){break a}b=2004168360008973e-307;if(a>>>0>4294965304){a=a+969|0;break a}b=0;a=((a|0)<=-2960?-2960:a)+1938|0}x(0,0);x(1,a+1023<<20);return b*+z()}function dh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;c=ba-16|0;ba=c;J[c+12>>2]=J[a+12>>2];d=J[b+20>>2];a:{if(!!J[b+16>>2]&(d|0)>=0|(d|0)>0){break a}sa(b,J[b+4>>2],c+12|0,c+16|0);d=J[b+20>>2];e=J[b+16>>2];J[c+8>>2]=J[a+24>>2];if(!!e&(d|0)>=0|(d|0)>0){break a}sa(b,J[b+4>>2],c+8|0,c+12|0)}ya(a+96|0,b);ba=c+16|0;return 1}function hl(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;c=ba-16|0;ba=c;J[c+12>>2]=J[a+12>>2];d=J[b+20>>2];a:{if(!!J[b+16>>2]&(d|0)>=0|(d|0)>0){break a}sa(b,J[b+4>>2],c+12|0,c+16|0);d=J[b+20>>2];e=J[b+16>>2];J[c+8>>2]=J[a+16>>2];if(!!e&(d|0)>=0|(d|0)>0){break a}sa(b,J[b+4>>2],c+8|0,c+12|0)}ba=c+16|0;return 1}function Jk(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;c=ba-16|0;ba=c;J[c+12>>2]=J[a+12>>2];d=J[b+20>>2];a:{if(!!J[b+16>>2]&(d|0)>=0|(d|0)>0){break a}sa(b,J[b+4>>2],c+12|0,c+16|0);d=J[b+20>>2];e=J[b+16>>2];J[c+8>>2]=J[a+24>>2];if(!!e&(d|0)>=0|(d|0)>0){break a}sa(b,J[b+4>>2],c+8|0,c+12|0)}ba=c+16|0;return 1}function Ba(a,b,c){var d=0,e=0;a:{b:{if(c>>>0>=4){if((a|b)&3){break b}while(1){if(J[a>>2]!=J[b>>2]){break b}b=b+4|0;a=a+4|0;c=c-4|0;if(c>>>0>3){continue}break}}if(!c){break a}}while(1){d=K[a|0];e=K[b|0];if((d|0)==(e|0)){b=b+1|0;a=a+1|0;c=c-1|0;if(c){continue}break a}break}return d-e|0}return 0}function $a(a,b){var c=0,d=0,e=0,f=0;d=ba-16|0;ba=d;a:{if(!b){b=0;break a}c=b>>31;e=(c^b)-c|0;c=S(e);Pa(d,e,0,0,0,c+81|0);e=0+J[d+8>>2]|0;c=(J[d+12>>2]^65536)+(16414-c<<16)|0;c=e>>>0>>0?c+1|0:c;f=b&-2147483648|c;c=J[d+4>>2];b=J[d>>2]}J[a>>2]=b;J[a+4>>2]=c;J[a+8>>2]=e;J[a+12>>2]=f;ba=d+16|0}function Cj(a){a=a|0;var b=0;J[a+8>>2]=11436;J[a>>2]=11224;b=J[a+96>>2];if(b){J[a+100>>2]=b;na(b)}b=J[a+80>>2];if(b){J[a+84>>2]=b;na(b)}b=J[a+68>>2];if(b){J[a+72>>2]=b;na(b)}b=J[a+56>>2];if(b){J[a+60>>2]=b;na(b)}J[a+8>>2]=11672;b=J[a+44>>2];if(b){na(b)}b=J[a+32>>2];if(b){na(b)}return a|0}function pf(a){var b=0,c=0,d=0;if(a){d=J[a+24>>2];if(d){b=d;c=J[a+28>>2];if((b|0)!=(c|0)){while(1){c=c-4|0;b=J[c>>2];J[c>>2]=0;if(b){lb(b+12|0,J[b+16>>2]);kb(b,J[b+4>>2]);na(b)}if((c|0)!=(d|0)){continue}break}b=J[a+24>>2]}J[a+28>>2]=d;na(b)}lb(a+12|0,J[a+16>>2]);kb(a,J[a+4>>2]);na(a)}}function vh(a){a=a|0;var b=0;J[a>>2]=3512;b=J[a+152>>2];if(b){J[a+156>>2]=b;na(b)}b=J[a+112>>2];if(b){J[a+116>>2]=b;na(b)}b=J[a+96>>2];if(b){na(b)}b=J[a+84>>2];if(b){na(b)}b=J[a+72>>2];if(b){na(b)}b=J[a+60>>2];if(b){na(b)}J[a>>2]=3456;b=J[a+32>>2];if(b){J[a+36>>2]=b;na(b)}return a|0}function mh(a){a=a|0;var b=0;J[a>>2]=5076;b=J[a+152>>2];if(b){J[a+156>>2]=b;na(b)}b=J[a+112>>2];if(b){J[a+116>>2]=b;na(b)}b=J[a+96>>2];if(b){na(b)}b=J[a+84>>2];if(b){na(b)}b=J[a+72>>2];if(b){na(b)}b=J[a+60>>2];if(b){na(b)}J[a>>2]=3456;b=J[a+32>>2];if(b){J[a+36>>2]=b;na(b)}return a|0}function Bj(a){a=a|0;var b=0;J[a+8>>2]=11436;J[a>>2]=11224;b=J[a+96>>2];if(b){J[a+100>>2]=b;na(b)}b=J[a+80>>2];if(b){J[a+84>>2]=b;na(b)}b=J[a+68>>2];if(b){J[a+72>>2]=b;na(b)}b=J[a+56>>2];if(b){J[a+60>>2]=b;na(b)}J[a+8>>2]=11672;b=J[a+44>>2];if(b){na(b)}b=J[a+32>>2];if(b){na(b)}na(a)}function Hh(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0;h=J[c+8>>2];e=J[c+16>>2];g=J[c+12>>2];f=g;d=J[c+20>>2];if(h>>>0>e>>>0&(f|0)>=(d|0)|(d|0)<(f|0)){b=K[J[c>>2]+e|0];i=e+1|0;f=i?d:d+1|0;J[c+16>>2]=i;J[c+20>>2]=f;J[a+4>>2]=b}return e>>>0>>0&(d|0)<=(g|0)|(d|0)<(g|0)}function pb(a,b,c){var d=0;if(!c){return J[a+4>>2]==J[b+4>>2]}if((a|0)==(b|0)){return 1}d=J[a+4>>2];a=K[d|0];c=J[b+4>>2];b=K[c|0];a:{if(!a|(b|0)!=(a|0)){break a}while(1){b=K[c+1|0];a=K[d+1|0];if(!a){break a}c=c+1|0;d=d+1|0;if((a|0)==(b|0)){continue}break}}return(a|0)==(b|0)}function Cb(a){var b=0,c=0;c=J[a+8>>2];if((c|0)>=2){b=+(c|0);b=W(b*va(b)-O[a>>3]);if(R(b)<0x8000000000000000){ca=R(b)>=1?~~(b>0?T(V(b*2.3283064365386963e-10),4294967295):W((b-+(~~b>>>0>>>0))*2.3283064365386963e-10))>>>0:0;return~~b>>>0}a=-2147483648}else{a=0}ca=a;return 0}function Dj(a){a=a|0;var b=0;J[a>>2]=11436;b=J[a+88>>2];if(b){J[a+92>>2]=b;na(b)}b=J[a+72>>2];if(b){J[a+76>>2]=b;na(b)}b=J[a+60>>2];if(b){J[a- -64>>2]=b;na(b)}b=J[a+48>>2];if(b){J[a+52>>2]=b;na(b)}J[a>>2]=11672;b=J[a+36>>2];if(b){na(b)}b=J[a+24>>2];if(b){na(b)}return a|0}function Ob(a,b){var c=0,d=0,e=0;J[a+8>>2]=0;J[a>>2]=0;J[a+4>>2]=0;a:{c=J[b+4>>2];d=J[b>>2];b:{if((c|0)==(d|0)){a=c;break b}c=c-d|0;if((c|0)<0){break a}d=c;e=oa(c);c=pa(e,0,c);d=d+c|0;J[a+8>>2]=d;J[a+4>>2]=d;J[a>>2]=c;c=J[b>>2];a=J[b+4>>2]}ua(e,c,a-c|0);return}qa();B()}function yj(a){a=a|0;var b=0;J[a>>2]=11436;b=J[a+88>>2];if(b){J[a+92>>2]=b;na(b)}b=J[a+72>>2];if(b){J[a+76>>2]=b;na(b)}b=J[a+60>>2];if(b){J[a- -64>>2]=b;na(b)}b=J[a+48>>2];if(b){J[a+52>>2]=b;na(b)}J[a>>2]=11672;b=J[a+36>>2];if(b){na(b)}b=J[a+24>>2];if(b){na(b)}na(a)}function vi(a){a=a|0;var b=0,c=0;b=oa(8);J[b+4>>2]=a;J[b>>2]=0;a:{b:{c:{if(!a){break c}c=bd(a,15016,14936);if(!c){break c}c=Ng(oa(56),c);a=J[b>>2];J[b>>2]=c;if(a){break b}break a}c=Og(oa(56),a);a=J[b>>2];J[b>>2]=c;if(!a){break a}}da[J[J[a>>2]+4>>2]](a)}return b|0}function ik(a){a=a|0;var b=0;J[a+40>>2]=2032;J[a>>2]=9988;b=J[a+48>>2];if(b){J[a+52>>2]=b;na(b)}J[a>>2]=2624;b=J[a+36>>2];J[a+36>>2]=0;if(b){da[J[J[b>>2]+4>>2]](b)}J[a>>2]=2392;b=J[a+32>>2];J[a+32>>2]=0;if(b){Ka(b)}b=J[a+16>>2];if(b){J[a+20>>2]=b;na(b)}return a|0}function ah(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;e=ba-96|0;ba=e;f=Og(e+40|0,c);$g(e,b,c);Mg(f,e);Da(e+24|0,J[e+28>>2]);nb(e+12|0,J[e+16>>2]);Da(e,J[e+4>>2]);fe(a,f,d);J[f>>2]=10256;Da(f+28|0,J[f+32>>2]);nb(f+16|0,J[f+20>>2]);Da(f+4|0,J[f+8>>2]);ba=e+96|0}function qc(a){var b=0;if(a){b=J[a+76>>2];if(b){J[a+80>>2]=b;na(b)}b=J[a- -64>>2];if(b){J[a+68>>2]=b;na(b)}b=J[a+48>>2];if(b){J[a+52>>2]=b;na(b)}b=J[a+24>>2];if(b){J[a+28>>2]=b;na(b)}b=J[a+12>>2];if(b){J[a+16>>2]=b;na(b)}b=J[a>>2];if(b){J[a+4>>2]=b;na(b)}na(a)}}function Ke(a,b,c){var d=0,e=0,f=0,g=0;f=ba-16|0;ba=f;d=ba-16|0;ba=d;b=b-a>>2;while(1){if(b){J[d+12>>2]=a;e=b>>>1|0;J[d+12>>2]=J[d+12>>2]+(e<<2);g=(e^-1)+b|0;b=e;e=M[J[d+12>>2]>>2]>2];b=e?g:b;a=e?J[d+12>>2]+4|0:a;continue}break}ba=d+16|0;ba=f+16|0;return a}function pc(a){var b=0;b=J[a+84>>2];if(b){J[a+88>>2]=b;na(b)}b=J[a+72>>2];if(b){J[a+76>>2]=b;na(b)}b=J[a+52>>2];if(b){J[a+56>>2]=b;na(b)}b=J[a+40>>2];if(b){J[a+44>>2]=b;na(b)}b=J[a+28>>2];if(b){J[a+32>>2]=b;na(b)}b=J[a+12>>2];if(b){na(b)}a=J[a>>2];if(a){na(a)}}function Lb(a,b){var c=0,d=0,e=0,f=0;c=ba-16|0;ba=c;a:{if(!b){b=0;break a}d=b;b=S(b);Pa(c,d,0,0,0,b+81|0);d=0+J[c+8>>2]|0;b=(J[c+12>>2]^65536)+(16414-b<<16)|0;f=e>>>0>d>>>0?b+1|0:b;e=J[c+4>>2];b=J[c>>2]}J[a>>2]=b;J[a+4>>2]=e;J[a+8>>2]=d;J[a+12>>2]=f;ba=c+16|0}function hk(a){a=a|0;var b=0;J[a+40>>2]=2032;J[a>>2]=9988;b=J[a+48>>2];if(b){J[a+52>>2]=b;na(b)}J[a>>2]=2624;b=J[a+36>>2];J[a+36>>2]=0;if(b){da[J[J[b>>2]+4>>2]](b)}J[a>>2]=2392;b=J[a+32>>2];J[a+32>>2]=0;if(b){Ka(b)}b=J[a+16>>2];if(b){J[a+20>>2]=b;na(b)}na(a)}function Mb(a,b,c){var d=0,e=0,f=0,g=0;if(b){while(1){c=c-1|0;e=a;a=Jl(a,b,10,0);d=ca;f=c,g=e-Hl(a,d,10,0)|48,H[f|0]=g;e=b>>>0>9;b=d;if(e){continue}break}}if(a){while(1){c=c-1|0;b=(a>>>0)/10|0;H[c|0]=a-P(b,10)|48;d=a>>>0>9;a=b;if(d){continue}break}}return c}function yl(a,b){a=a|0;b=b|0;var c=0,d=0;c=J[a+72>>2];a:{if(!c){break a}J[c+4>>2]=a+60;if(!(da[J[J[c>>2]+12>>2]](c)|0)){break a}if(!(da[J[J[a>>2]+40>>2]](a)|0)){break a}if(!(da[J[J[a>>2]+44>>2]](a,b)|0)){break a}d=da[J[J[a>>2]+48>>2]](a,b)|0}return d|0}function pg(a,b){a=a|0;b=b|0;var c=0,d=0;c=J[a+172>>2];a=J[a+176>>2];if((c|0)!=(a|0)){a=(a-c|0)/136|0;d=a>>>0<=1?1:a;a=0;while(1){if(J[P(a,136)+c>>2]==(b|0)){a=P(a,136)+c|0;return(K[a+100|0]?a+4|0:0)|0}a=a+1|0;if((d|0)!=(a|0)){continue}break}}return 0}function jk(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;e=ba-16|0;ba=e;d=a+40|0;c=Mc(d,J[a+8>>2],J[b+4>>2]-J[b>>2]>>2);d=je(d,J[a+8>>2],b,c);a:{if(d){b=J[a+32>>2];J[a+32>>2]=c;if(!b){break a}Ka(b);break a}J[e+8>>2]=0;if(!c){break a}Ka(c)}ba=e+16|0;return d|0}function Mk(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;e=ba-16|0;ba=e;d=a+40|0;c=Mc(d,J[a+8>>2],J[b+4>>2]-J[b>>2]>>2);d=xg(d,J[a+8>>2],b,c);a:{if(d){b=J[a+32>>2];J[a+32>>2]=c;if(!b){break a}Ka(b);break a}J[e+8>>2]=0;if(!c){break a}Ka(c)}ba=e+16|0;return d|0}function rb(a){var b=0,c=0,d=0;b=a;a:{if(b&3){while(1){if(!K[b|0]){break a}b=b+1|0;if(b&3){continue}break}}while(1){c=b;b=b+4|0;d=J[c>>2];if(!((d^-1)&d-16843009&-2139062144)){continue}break}while(1){b=c;c=b+1|0;if(K[b|0]){continue}break}}return b-a|0}function Nd(a,b,c,d,e,f,g){var h=0;J[a>>2]=c;if(c){h=J[c+20>>2];J[a+8>>2]=J[c+16>>2];J[a+12>>2]=h;h=J[c+28>>2];J[a+16>>2]=J[c+24>>2];J[a+20>>2]=h}J[a+56>>2]=b;J[a+48>>2]=0;J[a+52>>2]=0;J[a+40>>2]=f;J[a+44>>2]=g;H[a+32|0]=0;J[a+28>>2]=e;H[a+24|0]=d}function Ve(a,b){var c=0,d=0,e=0;A(+a);d=v(1)|0;e=v(0)|0;c=d>>>20&2047;if((c|0)!=2047){if(!c){if(a==0){c=0}else{a=Ve(a*0x10000000000000000,b);c=J[b>>2]+-64|0}J[b>>2]=c;return a}J[b>>2]=c-1022;x(0,e|0);x(1,d&-2146435073|1071644672);a=+z()}return a}function wl(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;c=J[a+36>>2];if((c|0)==J[a+40>>2]){return 1}f=a+60|0;while(1){c=J[(d<<2)+c>>2];e=da[J[J[c>>2]+20>>2]](c,f,b)|0;if(e){d=d+1|0;c=J[a+36>>2];if(d>>>0>2]-c>>2>>>0){continue}}break}return e|0}function Pc(a,b){var c=0,d=0,e=0;c=rb(b);if(c>>>0<2147483632){a:{b:{if(c>>>0>=11){d=(c|15)+1|0;e=oa(d);J[a+8>>2]=d|-2147483648;J[a>>2]=e;J[a+4>>2]=c;d=c+e|0;break b}H[a+11|0]=c;d=a+c|0;e=a;if(!c){break a}}ta(e,b,c)}H[d|0]=0;return a}gb();B()}function ne(a){J[a+32>>2]=0;J[a+12>>2]=-1;J[a+4>>2]=0;J[a+8>>2]=0;J[a+16>>2]=0;J[a+20>>2]=0;J[a>>2]=2392;H[a+21|0]=0;H[a+22|0]=0;H[a+23|0]=0;H[a+24|0]=0;H[a+25|0]=0;H[a+26|0]=0;H[a+27|0]=0;H[a+28|0]=0;J[a+36>>2]=0;J[a>>2]=2624;return a}function xl(a){a=a|0;var b=0,c=0,d=0,e=0;b=J[a+36>>2];if((b|0)==J[a+40>>2]){return 1}e=a+60|0;while(1){b=J[(c<<2)+b>>2];d=da[J[J[b>>2]+16>>2]](b,e)|0;if(d){c=c+1|0;b=J[a+36>>2];if(c>>>0>2]-b>>2>>>0){continue}}break}return d|0}function vk(a){a=a|0;var b=0;J[a>>2]=8640;b=J[a+136>>2];if(b){J[a+140>>2]=b;na(b)}b=J[a+96>>2];if(b){J[a+100>>2]=b;na(b)}b=J[a+80>>2];if(b){na(b)}b=J[a+68>>2];if(b){na(b)}b=J[a+56>>2];if(b){na(b)}b=J[a+44>>2];if(b){na(b)}return a|0}function Pf(a,b){a=a|0;b=b|0;var c=0,d=0;c=ba-16|0;ba=c;J[c+12>>2]=J[J[b+4>>2]+80>>2];b=J[b+44>>2];d=J[b+20>>2];if(!J[b+16>>2]&(d|0)<=0|(d|0)<0){sa(b,J[b+4>>2],c+12|0,c+16|0)}J[a>>2]=0;J[a+4>>2]=0;J[a+8>>2]=0;J[a+12>>2]=0;ba=c+16|0}function Hk(a){a=a|0;var b=0;J[a>>2]=6992;b=J[a+136>>2];if(b){J[a+140>>2]=b;na(b)}b=J[a+96>>2];if(b){J[a+100>>2]=b;na(b)}b=J[a+80>>2];if(b){na(b)}b=J[a+68>>2];if(b){na(b)}b=J[a+56>>2];if(b){na(b)}b=J[a+44>>2];if(b){na(b)}return a|0}function Ka(a){a=a|0;var b=0,c=0;if(a){b=J[a+88>>2];J[a+88>>2]=0;if(b){c=J[b+8>>2];if(c){J[b+12>>2]=c;na(c)}na(b)}b=J[a+68>>2];if(b){J[a+72>>2]=b;na(b)}b=J[a+64>>2];J[a+64>>2]=0;if(b){c=J[b>>2];if(c){J[b+4>>2]=c;na(c)}na(b)}na(a)}}function Te(a){var b=0,c=0,d=0;if(H[J[a>>2]]-48>>>0>=10){return 0}while(1){d=J[a>>2];c=-1;if(b>>>0<=214748364){c=H[d|0]-48|0;b=P(b,10);c=(c|0)>(b^2147483647)?-1:c+b|0}J[a>>2]=d+1;b=c;if(H[d+1|0]-48>>>0<10){continue}break}return b}function vl(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;c=J[a+36>>2];if((c|0)==J[a+40>>2]){return 1}while(1){c=J[(d<<2)+c>>2];e=da[J[J[c>>2]+24>>2]](c,b)|0;if(e){d=d+1|0;c=J[a+36>>2];if(d>>>0>2]-c>>2>>>0){continue}}break}return e|0}function uk(a){a=a|0;var b=0;J[a>>2]=8640;b=J[a+136>>2];if(b){J[a+140>>2]=b;na(b)}b=J[a+96>>2];if(b){J[a+100>>2]=b;na(b)}b=J[a+80>>2];if(b){na(b)}b=J[a+68>>2];if(b){na(b)}b=J[a+56>>2];if(b){na(b)}b=J[a+44>>2];if(b){na(b)}na(a)}function Gk(a){a=a|0;var b=0;J[a>>2]=6992;b=J[a+136>>2];if(b){J[a+140>>2]=b;na(b)}b=J[a+96>>2];if(b){J[a+100>>2]=b;na(b)}b=J[a+80>>2];if(b){na(b)}b=J[a+68>>2];if(b){na(b)}b=J[a+56>>2];if(b){na(b)}b=J[a+44>>2];if(b){na(b)}na(a)}function cj(a){a=a|0;var b=0,c=0,d=0;b=J[a+32>>2];d=J[a+36>>2];if((b|0)==(d|0)){return 1}while(1){c=J[J[a+8>>2]+(J[b>>2]<<2)>>2];c=da[J[J[c>>2]+20>>2]](c,J[a+44>>2])|0;if(c){b=b+4|0;if((d|0)!=(b|0)){continue}}break}return c|0}function Il(a,b,c,d){var e=0,f=0,g=0,h=0;f=b^d;g=f>>31;e=b>>31;a=a^e;h=a-e|0;e=(b^e)-((a>>>0>>0)+e|0)|0;a=d>>31;b=c^a;f=f>>31;a=Jl(h,e,b-a|0,(a^d)-((a>>>0>b>>>0)+a|0)|0)^f;b=a-f|0;ca=(g^ca)-((a>>>0>>0)+g|0)|0;return b}function id(a,b,c){var d=0,e=0,f=0;e=ba-16|0;ba=e;d=J[a+8>>2]&2147483647;a:{if(d>>>0>c>>>0){d=J[a>>2];J[a+4>>2]=c;Ab(d,b,c);H[e+15|0]=0;H[c+d|0]=K[e+15|0];break a}f=a;a=J[a+4>>2];kd(f,d-1|0,(c-d|0)+1|0,a,0,a,c,b)}ba=e+16|0}function Ge(a,b){a=a|0;b=b|0;var c=0,d=0;c=ba-16|0;ba=c;a=J[a+4>>2];a:{if((a|0)==-1){break a}H[c+15|0]=a;d=J[b+20>>2];if(!!J[b+16>>2]&(d|0)>=0|(d|0)>0){break a}sa(b,J[b+4>>2],c+15|0,c+16|0)}ba=c+16|0;return(a|0)!=-1|0} function hd(a,b,c){var d=0,e=0;d=ba-16|0;ba=d;a:{if(c>>>0<=10){H[a+11|0]=K[a+11|0]&128|c;H[a+11|0]=K[a+11|0]&127;Ab(a,b,c);H[d+15|0]=0;H[a+c|0]=K[d+15|0];break a}e=a;a=K[a+11|0]&127;kd(e,10,c-10|0,a,0,a,c,b)}ba=d+16|0}function Hl(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0;e=c>>>16|0;f=a>>>16|0;j=P(e,f);g=c&65535;h=a&65535;i=P(g,h);f=(i>>>16|0)+P(f,g)|0;e=(f&65535)+P(e,h)|0;ca=(P(b,c)+j|0)+P(a,d)+(f>>>16)+(e>>>16)|0;return i&65535|e<<16}function He(a,b,c){var d=0;d=J[a+16>>2];if(!d){J[a+36>>2]=1;J[a+24>>2]=c;J[a+16>>2]=b;return}a:{if((b|0)==(d|0)){if(J[a+24>>2]!=2){break a}J[a+24>>2]=c;return}H[a+54|0]=1;J[a+24>>2]=2;J[a+36>>2]=J[a+36>>2]+1}}function zk(a,b){a=a|0;b=b|0;var c=0,d=0;J[b>>2]=2;c=J[b+8>>2];d=J[b+12>>2]-c|0;if(d>>>0<=4294967291){Gc(b+8|0,d+4|0);c=J[b+8>>2]}b=c+d|0;a=J[a+4>>2];H[b|0]=a;H[b+1|0]=a>>>8;H[b+2|0]=a>>>16;H[b+3|0]=a>>>24}function Qa(a,b,c,d,e){var f=0;f=ba-256|0;ba=f;if(!(e&73728|(c|0)<=(d|0))){d=c-d|0;c=d>>>0<256;pa(f,b&255,c?d:256);if(!c){while(1){Oa(a,f,256);d=d-256|0;if(d>>>0>255){continue}break}}Oa(a,f,d)}ba=f+256|0}function Dd(a,b){var c=0,d=Q(0),e=0;b=ob(a,b);if((b|0)!=(a+4|0)){a=ba-16|0;ba=a;c=b+28|0;Xe(a,H[b+39|0]<0?J[c>>2]:c,0,1);e=Le(J[a>>2],J[a+4>>2],J[a+8>>2],J[a+12>>2]);ba=a+16|0;d=Q(e)}else{d=Q(1)}return d}function ol(a,b){a=a|0;b=b|0;var c=0,d=0;d=J[a+16>>2];c=0;a:{if(J[a+20>>2]-d>>2<=(b|0)){break a}b=J[(b<<2)+d>>2];c=0;if((b|0)<0){break a}a=J[J[a+36>>2]+(b<<2)>>2];b=J[a+32>>2];c=b?b:J[a+8>>2]}return c|0}function rl(a,b){a=a|0;b=b|0;var c=0,d=0;d=J[a+16>>2];c=0;a:{if(J[a+20>>2]-d>>2<=(b|0)){break a}b=J[(b<<2)+d>>2];c=0;if((b|0)<0){break a}a=J[J[a+36>>2]+(b<<2)>>2];c=J[a+20>>2]-J[a+16>>2]>>2}return c|0}function ql(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=-1;e=J[a+16>>2];a:{if(J[a+20>>2]-e>>2<=(b|0)){break a}b=J[(b<<2)+e>>2];if((b|0)<0){break a}d=J[J[J[J[a+36>>2]+(b<<2)>>2]+16>>2]+(c<<2)>>2]}return d|0}function yh(a){a=a|0;var b=0;J[a>>2]=2624;b=J[a+36>>2];J[a+36>>2]=0;if(b){da[J[J[b>>2]+4>>2]](b)}J[a>>2]=2392;b=J[a+32>>2];J[a+32>>2]=0;if(b){Ka(b)}b=J[a+16>>2];if(b){J[a+20>>2]=b;na(b)}return a|0}function wa(a){var b=0,c=0;c=ba-16|0;ba=c;J[c+8>>2]=0;J[c+12>>2]=0;ie(a,c+8|0);J[a+24>>2]=0;J[a+28>>2]=0;b=J[a+12>>2];J[a+16>>2]=b;if(b){na(b)}b=J[a>>2];if(b){J[a+4>>2]=b;na(b)}ba=c+16|0;return a}function Jc(a){a=Lc(a);J[a+64>>2]=0;J[a+68>>2]=0;J[a+88>>2]=0;J[a+72>>2]=0;J[a+76>>2]=0;H[a+77|0]=0;H[a+78|0]=0;H[a+79|0]=0;H[a+80|0]=0;H[a+81|0]=0;H[a+82|0]=0;H[a+83|0]=0;H[a+84|0]=0;return a}function xh(a){a=a|0;var b=0;J[a>>2]=2624;b=J[a+36>>2];J[a+36>>2]=0;if(b){da[J[J[b>>2]+4>>2]](b)}J[a>>2]=2392;b=J[a+32>>2];J[a+32>>2]=0;if(b){Ka(b)}b=J[a+16>>2];if(b){J[a+20>>2]=b;na(b)}na(a)}function nc(a){J[a+52>>2]=0;J[a+4>>2]=0;J[a+8>>2]=0;J[a>>2]=12468;J[a+12>>2]=0;J[a+16>>2]=0;J[a+20>>2]=0;J[a+24>>2]=0;J[a+28>>2]=0;J[a+32>>2]=0;J[a+36>>2]=0;J[a+40>>2]=0;J[a+44>>2]=0;return a}function We(a){var b=0;b=J[a+72>>2];J[a+72>>2]=b-1|b;b=J[a>>2];if(b&8){J[a>>2]=b|32;return-1}J[a+4>>2]=0;J[a+8>>2]=0;b=J[a+44>>2];J[a+28>>2]=b;J[a+20>>2]=b;J[a+16>>2]=b+J[a+48>>2];return 0}function Lc(a){J[a+8>>2]=0;J[a+12>>2]=0;J[a>>2]=0;J[a+40>>2]=0;J[a+44>>2]=0;J[a+28>>2]=9;H[a+24|0]=1;J[a+56>>2]=-1;J[a+60>>2]=0;J[a+16>>2]=0;J[a+20>>2]=0;J[a+48>>2]=0;J[a+52>>2]=0;return a}function od(a,b,c,d,e,f,g,h,i){var j=0;j=ba-16|0;ba=j;_a(j,b,c,d,e,f,g,h,i^-2147483648);d=J[j>>2];c=J[j+4>>2];b=J[j+12>>2];J[a+8>>2]=J[j+8>>2];J[a+12>>2]=b;J[a>>2]=d;J[a+4>>2]=c;ba=j+16|0}function yd(a,b,c){a=a|0;b=b|0;c=c|0;a=0;a:{if(J[b+4>>2]|!b){break a}a=sd(oa(36),c);J[a+24>>2]=0;J[a+28>>2]=0;J[a+32>>2]=0;c=J[b+4>>2];J[b+4>>2]=a;a=1;if(!c){break a}pf(c)}return a|0}function pe(a,b,c){a=bf(a,c);J[a+36>>2]=0;J[a+40>>2]=0;J[a>>2]=2496;J[a+72>>2]=b;J[a+44>>2]=0;J[a+48>>2]=0;J[a+52>>2]=0;J[a+56>>2]=0;J[a+60>>2]=0;J[a+64>>2]=0;J[a+68>>2]=0;return a}function di(a,b){a=a|0;b=b|0;var c=0,d=0;ef(a,b);a:{if((b|0)<0){break a}d=J[a+88>>2];c=J[a+84>>2];if(d-c>>2<=(b|0)){break a}c=(b<<2)+c|0;b=c+4|0;ta(c,b,d-b|0);J[a+88>>2]=d-4}}function xf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;a=0;a:{if(!b|(c|0)<0){break a}e=J[b+12>>2];b=J[b+8>>2];if(e-b>>2<=(c|0)){break a}H[J[b+(c<<2)>>2]+32|0]=d;a=1}return a|0}function uj(a){a=a|0;var b=0;J[a+8>>2]=11856;J[a>>2]=11692;b=J[a+56>>2];if(b){J[a+60>>2]=b;na(b)}J[a+8>>2]=11672;b=J[a+44>>2];if(b){na(b)}b=J[a+32>>2];if(b){na(b)}return a|0}function pj(a){a=a|0;var b=0;J[a+8>>2]=10876;J[a>>2]=11984;b=J[a+56>>2];if(b){J[a+60>>2]=b;na(b)}J[a+8>>2]=11128;b=J[a+44>>2];if(b){na(b)}b=J[a+32>>2];if(b){na(b)}return a|0}function Kb(a){var b=0,c=0;b=J[4773];c=a+7&-8;a=b+c|0;a:{if(a>>>0<=b>>>0?c:0){break a}if(a>>>0>ea()<<16>>>0){if(!($(a|0)|0)){break a}}J[4773]=a;return b}J[4804]=48;return-1}function tj(a){a=a|0;var b=0;J[a+8>>2]=11856;J[a>>2]=11692;b=J[a+56>>2];if(b){J[a+60>>2]=b;na(b)}J[a+8>>2]=11672;b=J[a+44>>2];if(b){na(b)}b=J[a+32>>2];if(b){na(b)}na(a)}function oj(a){a=a|0;var b=0;J[a+8>>2]=10876;J[a>>2]=11984;b=J[a+56>>2];if(b){J[a+60>>2]=b;na(b)}J[a+8>>2]=11128;b=J[a+44>>2];if(b){na(b)}b=J[a+32>>2];if(b){na(b)}na(a)}function lb(a,b){if(b){lb(a,J[b>>2]);lb(a,J[b+4>>2]);a=J[b+28>>2];J[b+28>>2]=0;if(a){lb(a+12|0,J[a+16>>2]);kb(a,J[a+4>>2]);na(a)}if(H[b+27|0]<0){na(J[b+16>>2])}na(b)}}function Ie(a,b){var c=0,d=0,e=0,f=0;J[a>>2]=18812;J[a>>2]=18924;c=rb(b);d=oa(c+13|0);J[d+8>>2]=0;J[d+4>>2]=c;J[d>>2]=c;e=a,f=ua(d+12|0,b,c+1|0),J[e+4>>2]=f;return a}function Nh(a,b){a=a|0;b=b|0;var c=0;a:{if(!(da[J[J[a>>2]+40>>2]](a)|0)){break a}if(!(da[J[J[a>>2]+44>>2]](a,b)|0)){break a}c=da[J[J[a>>2]+48>>2]](a,b)|0}return c|0}function Xj(a){a=a|0;var b=0;a:{b=J[a+64>>2];if(!b){break a}b=da[J[J[b>>2]+32>>2]](b)|0;if(!b){break a}J[a+60>>2]=((J[b+4>>2]-J[b>>2]>>2>>>0)/3|0)-J[b+40>>2]}}function Fl(a,b){a=a|0;b=b|0;var c=0;b=J[b+88>>2];if(!(!b|J[b>>2]!=2)){c=a;a=J[b+8>>2];J[c+4>>2]=K[a|0]|K[a+1|0]<<8|(K[a+2|0]<<16|K[a+3|0]<<24);c=1}return c|0}function vj(a){a=a|0;var b=0;J[a>>2]=11856;b=J[a+48>>2];if(b){J[a+52>>2]=b;na(b)}J[a>>2]=11672;b=J[a+36>>2];if(b){na(b)}b=J[a+24>>2];if(b){na(b)}return a|0}function Oj(a){a=a|0;var b=0;J[a>>2]=10876;b=J[a+48>>2];if(b){J[a+52>>2]=b;na(b)}J[a>>2]=11128;b=J[a+36>>2];if(b){na(b)}b=J[a+24>>2];if(b){na(b)}return a|0}function Lf(a,b){var c=0;a:{c=a+4|0;a=ob(a,b);if((c|0)==(a|0)){break a}b=a+28|0;a=Bc(H[a+39|0]<0?J[b>>2]:b);if((a|0)==-1){break a}return(a|0)!=0}return 0}function Pb(a,b,c){var d=0;d=a+4|0;a=ob(a,b);a:{if((d|0)==(a|0)){break a}b=a+28|0;a=Bc(H[a+39|0]<0?J[b>>2]:b);if((a|0)==-1){break a}c=(a|0)!=0}return c}function qj(a){a=a|0;var b=0;J[a>>2]=11856;b=J[a+48>>2];if(b){J[a+52>>2]=b;na(b)}J[a>>2]=11672;b=J[a+36>>2];if(b){na(b)}b=J[a+24>>2];if(b){na(b)}na(a)}function Hj(a){a=a|0;var b=0;J[a>>2]=10876;b=J[a+48>>2];if(b){J[a+52>>2]=b;na(b)}J[a>>2]=11128;b=J[a+36>>2];if(b){na(b)}b=J[a+24>>2];if(b){na(b)}na(a)}function bf(a,b){J[a+4>>2]=0;J[a+8>>2]=0;J[a>>2]=2188;J[a+12>>2]=0;J[a+16>>2]=0;J[a+20>>2]=0;J[a+24>>2]=0;J[a+28>>2]=0;J[a+32>>2]=0;kc(a,b);return a}function Sh(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;if(pb(a,J[b+8>>2],f)){Fe(b,c,d,e);return}a=J[a+8>>2];da[J[J[a>>2]+20>>2]](a,b,c,d,e,f)}function ph(a){a=a|0;var b=0;a:{if(!J[a- -64>>2]|!J[a+68>>2]|(!J[a+44>>2]|!J[a+48>>2])){break a}if(!J[a+52>>2]){break a}b=J[a+56>>2]!=0}return b|0}function fh(a){a=a|0;var b=0;a:{if(!J[a+48>>2]|!J[a+52>>2]|(!J[a+28>>2]|!J[a+32>>2])){break a}if(!J[a+36>>2]){break a}b=J[a+40>>2]!=0}return b|0}function rd(a){var b=0,c=0;b=J[a+20>>2];a:{if((J[a+24>>2]-b|0)<=0){break a}b=J[b>>2];if((b|0)==-1){break a}c=J[J[a+8>>2]+(b<<2)>>2]}return c}function Ti(){var a=0;a=gf(oa(108));J[a+84>>2]=0;J[a+88>>2]=0;J[a>>2]=14892;J[a+92>>2]=0;J[a+96>>2]=0;J[a+100>>2]=0;J[a+104>>2]=0;return a|0}function Nb(a,b){var c=0;c=-1;a:{if((b|0)==-1|(b|0)>4){break a}b=P(b,12)+a|0;a=J[b+20>>2];if((J[b+24>>2]-a|0)<=0){break a}c=J[a>>2]}return c}function Qe(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;c=b;b=J[b>>2]+7&-8;J[c>>2]=b+16;d=a,e=Le(J[b>>2],J[b+4>>2],J[b+8>>2],J[b+12>>2]),O[d>>3]=e}function gi(a){a=a|0;var b=0;J[a>>2]=14892;b=J[a+96>>2];if(b){J[a+100>>2]=b;na(b)}b=J[a+84>>2];if(b){J[a+88>>2]=b;na(b)}return Ec(a)|0}function za(a){var b=0;b=ba-16|0;ba=b;J[b+8>>2]=0;J[b+12>>2]=0;ie(a,b+8|0);J[a+24>>2]=0;J[a+28>>2]=0;J[a+16>>2]=J[a+12>>2];ba=b+16|0}function fi(a){a=a|0;var b=0;J[a>>2]=14892;b=J[a+96>>2];if(b){J[a+100>>2]=b;na(b)}b=J[a+84>>2];if(b){J[a+88>>2]=b;na(b)}na(Ec(a))}function kb(a,b){if(b){kb(a,J[b>>2]);kb(a,J[b+4>>2]);a=J[b+28>>2];if(a){J[b+32>>2]=a;na(a)}if(H[b+27|0]<0){na(J[b+16>>2])}na(b)}}function dl(a){a=a|0;var b=0;J[a>>2]=3760;b=J[a+76>>2];if(b){na(b)}J[a>>2]=3456;b=J[a+32>>2];if(b){J[a+36>>2]=b;na(b)}return a|0}function Vk(a){a=a|0;var b=0;J[a>>2]=5312;b=J[a+76>>2];if(b){na(b)}J[a>>2]=3456;b=J[a+32>>2];if(b){J[a+36>>2]=b;na(b)}return a|0}function Cl(a){a=a|0;var b=0;J[a>>2]=2392;b=J[a+32>>2];J[a+32>>2]=0;if(b){Ka(b)}b=J[a+16>>2];if(b){J[a+20>>2]=b;na(b)}return a|0}function Zh(a){a=a|0;var b=0;J[a>>2]=2188;b=J[a+16>>2];if(b){J[a+20>>2]=b;na(b)}b=J[a+4>>2];if(b){J[a+8>>2]=b;na(b)}return a|0}function Vh(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;if(pb(a,J[b+8>>2],0)){He(b,c,d);return}a=J[a+8>>2];da[J[J[a>>2]+28>>2]](a,b,c,d)}function Qi(){var a=0,b=0;a=oa(24);J[a+4>>2]=0;J[a+8>>2]=0;b=a+16|0;J[b>>2]=0;J[b+4>>2]=0;J[a>>2]=a+4;J[a+12>>2]=b;return a|0}function cl(a){a=a|0;var b=0;J[a>>2]=3760;b=J[a+76>>2];if(b){na(b)}J[a>>2]=3456;b=J[a+32>>2];if(b){J[a+36>>2]=b;na(b)}na(a)}function Uk(a){a=a|0;var b=0;J[a>>2]=5312;b=J[a+76>>2];if(b){na(b)}J[a>>2]=3456;b=J[a+32>>2];if(b){J[a+36>>2]=b;na(b)}na(a)}function Bl(a){a=a|0;var b=0;J[a>>2]=2392;b=J[a+32>>2];J[a+32>>2]=0;if(b){Ka(b)}b=J[a+16>>2];if(b){J[a+20>>2]=b;na(b)}na(a)}function oa(a){var b=0;a=a?a:1;a:{while(1){b=nd(a);if(b){break a}b=J[4973];if(b){da[b|0]();continue}break}Z();B()}return b}function Da(a,b){if(b){Da(a,J[b>>2]);Da(a,J[b+4>>2]);if(H[b+39|0]<0){na(J[b+28>>2])}if(H[b+27|0]<0){na(J[b+16>>2])}na(b)}}function Ee(a){a=a|0;var b=0,c=0;J[a>>2]=18924;b=J[a+4>>2]-12|0;c=J[b+8>>2]-1|0;J[b+8>>2]=c;if((c|0)<0){na(b)}return a|0}function ch(a,b,c,d,e){var f=0;f=b-1|0;if(f>>>0<=29){J[a+4>>2]=b;tc(a+8|0,c,(d<<2)+c|0);N[a+20>>2]=e}return f>>>0<30}function al(a){a=a|0;var b=0;J[a>>2]=3996;wa(a+112|0);J[a>>2]=3456;b=J[a+32>>2];if(b){J[a+36>>2]=b;na(b)}return a|0}function Sk(a){a=a|0;var b=0;J[a>>2]=5536;wa(a+112|0);J[a>>2]=3456;b=J[a+32>>2];if(b){J[a+36>>2]=b;na(b)}return a|0}function Og(a,b){J[a>>2]=10256;he(a+4|0);J[a+52>>2]=0;J[a+48>>2]=b;J[a>>2]=10352;J[a+40>>2]=0;J[a+44>>2]=0;return a}function Ng(a,b){J[a>>2]=10256;he(a+4|0);J[a+52>>2]=b;J[a+48>>2]=b;J[a>>2]=10352;J[a+40>>2]=0;J[a+44>>2]=0;return a}function Fh(a,b,c){a=a|0;b=b|0;c=c|0;J[a+4>>2]=b;b=J[J[J[b+4>>2]+8>>2]+(c<<2)>>2];J[a+12>>2]=c;J[a+8>>2]=b;return 1}function $e(a,b,c,d,e,f,g,h,i){J[a>>2]=b;J[a+4>>2]=c;J[a+8>>2]=d;J[a+12>>2]=e&65535|(i>>>16&32768|e>>>16&32767)<<16}function th(a){a=a|0;var b=0;if(!(!J[a+60>>2]|!J[a+44>>2]|(!J[a+48>>2]|!J[a+52>>2]))){b=J[a+56>>2]!=0}return b|0}function ih(a){a=a|0;var b=0;if(!(!J[a+44>>2]|!J[a+28>>2]|(!J[a+32>>2]|!J[a+36>>2]))){b=J[a+40>>2]!=0}return b|0}function wi(a){a=a|0;if(a){J[a>>2]=10332;Da(a+28|0,J[a+32>>2]);sc(a+16|0,J[a+20>>2]);Da(a+4|0,J[a+8>>2]);na(a)}}function Rk(a){a=a|0;var b=0;J[a>>2]=5536;wa(a+112|0);J[a>>2]=3456;b=J[a+32>>2];if(b){J[a+36>>2]=b;na(b)}na(a)}function Mf(a,b){var c=0;c=a+4|0;a=ob(a,b);if((c|0)==(a|0)){return-1}b=a+28|0;return Bc(H[a+39|0]<0?J[b>>2]:b)}function Eb(a,b){var c=0,d=0;if(!(!a|!b|(a|0)==(b|0))){c=+(b>>>0)/+(a>>>0);d=1-c;c=-(c*va(c)+d*va(d))}return c}function $k(a){a=a|0;var b=0;J[a>>2]=3996;wa(a+112|0);J[a>>2]=3456;b=J[a+32>>2];if(b){J[a+36>>2]=b;na(b)}na(a)}function gk(a){a=a|0;J[a>>2]=10256;Da(a+28|0,J[a+32>>2]);nb(a+16|0,J[a+20>>2]);Da(a+4|0,J[a+8>>2]);return a|0}function fk(a){a=a|0;J[a>>2]=10332;Da(a+28|0,J[a+32>>2]);sc(a+16|0,J[a+20>>2]);Da(a+4|0,J[a+8>>2]);return a|0}function Bb(a,b,c){var d=0;d=a+4|0;a=ob(a,b);if((d|0)!=(a|0)){b=a+28|0;c=Bc(H[a+39|0]<0?J[b>>2]:b)}return c}function ld(a,b){if(K[a+11|0]>>>7|0){J[a+4>>2]=b;return}H[a+11|0]=K[a+11|0]&128|b;H[a+11|0]=K[a+11|0]&127}function Fi(){var a=0;a=oa(48);J[a>>2]=10332;he(a+4|0);J[a>>2]=10116;J[a+40>>2]=0;J[a+44>>2]=0;return a|0}function Sg(a){a=a|0;J[a>>2]=10332;Da(a+28|0,J[a+32>>2]);sc(a+16|0,J[a+20>>2]);Da(a+4|0,J[a+8>>2]);na(a)}function Rg(a){a=a|0;J[a>>2]=10256;Da(a+28|0,J[a+32>>2]);nb(a+16|0,J[a+20>>2]);Da(a+4|0,J[a+8>>2]);na(a)}function xj(a){a=a|0;var b=0;J[a>>2]=11672;b=J[a+36>>2];if(b){na(b)}b=J[a+24>>2];if(b){na(b)}return a|0}function Gj(a){a=a|0;var b=0;J[a>>2]=11128;b=J[a+36>>2];if(b){na(b)}b=J[a+24>>2];if(b){na(b)}return a|0}function qd(a,b){da[J[J[a>>2]+8>>2]](a,J[a+12>>2]-J[a+8>>2]>>2,b);return(J[a+12>>2]-J[a+8>>2]>>2)-1|0}function Yc(a){a=a|0;var b=0;if(!(!J[a+52>>2]|(!J[a+44>>2]|!J[a+48>>2]))){b=J[a+56>>2]!=0}return b|0}function Qc(a){a=a|0;var b=0;if(!(!J[a+36>>2]|(!J[a+28>>2]|!J[a+32>>2]))){b=J[a+40>>2]!=0}return b|0}function wj(a){a=a|0;var b=0;J[a>>2]=11672;b=J[a+36>>2];if(b){na(b)}b=J[a+24>>2];if(b){na(b)}na(a)}function Fj(a){a=a|0;var b=0;J[a>>2]=11128;b=J[a+36>>2];if(b){na(b)}b=J[a+24>>2];if(b){na(b)}na(a)}function oh(a,b){a=a|0;b=b|0;var c=0;if(!(J[b+56>>2]|K[b+24|0]!=3)){J[a- -64>>2]=b;c=1}return c|0}function sh(a,b){a=a|0;b=b|0;var c=0;if(!(J[b+56>>2]|K[b+24|0]!=3)){J[a+60>>2]=b;c=1}return c|0}function hh(a,b){a=a|0;b=b|0;var c=0;if(!(J[b+56>>2]|K[b+24|0]!=3)){J[a+44>>2]=b;c=1}return c|0}function eh(a,b){a=a|0;b=b|0;var c=0;if(!(J[b+56>>2]|K[b+24|0]!=3)){J[a+48>>2]=b;c=1}return c|0}function Rh(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;if(pb(a,J[b+8>>2],f)){Fe(b,c,d,e)}}function xa(){var a=0;a=cd(4);J[a>>2]=18812;J[a>>2]=18772;J[a>>2]=18792;_(a|0,18904,14);B()}function mi(a){a=a|0;var b=0;if(a){b=J[a>>2];J[a>>2]=0;if(b){da[J[J[b>>2]+4>>2]](b)}na(a)}}function il(a){a=a|0;var b=0;J[a>>2]=3456;b=J[a+32>>2];if(b){J[a+36>>2]=b;na(b)}return a|0}function dk(a){a=a|0;var b=0;J[a>>2]=2032;b=J[a+8>>2];if(b){J[a+12>>2]=b;na(b)}return a|0}function tb(a){var b=0;J[a+12>>2]=0;J[a+16>>2]=0;b=a;a=J[a>>2];J[b+4>>2]=a;if(a){na(a)}}function hj(a){a=a|0;var b=0;b=a;a=J[a+56>>2];J[b+60>>2]=(J[a+100>>2]-J[a+96>>2]|0)/12}function zf(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return ud(b,c,d,e,f,6)|0}function zd(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return ud(b,c,d,e,f,5)|0}function le(a){a=a|0;var b=0;J[a>>2]=3456;b=J[a+32>>2];if(b){J[a+36>>2]=b;na(b)}na(a)}function Df(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return sf(b,c,d,e,f,1)|0}function Cf(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return sf(b,c,d,e,f,2)|0}function Bf(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return rf(b,c,d,e,f,3)|0}function Af(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return rf(b,c,d,e,f,4)|0}function Ad(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return ud(b,c,d,e,f,9)|0}function ck(a){a=a|0;var b=0;J[a>>2]=2032;b=J[a+8>>2];if(b){J[a+12>>2]=b;na(b)}na(a)}function si(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=Q(f);Vg(J[a>>2],b,c,d,e,f)}function sc(a,b){if(b){sc(a,J[b>>2]);sc(a,J[b+4>>2]);Da(b+20|0,J[b+24>>2]);na(b)}}function nb(a,b){if(b){nb(a,J[b>>2]);nb(a,J[b+4>>2]);Da(b+20|0,J[b+24>>2]);na(b)}}function Zj(a,b){a=a|0;b=b|0;var c=0;c=a;a=J[b+64>>2];da[J[J[a>>2]+28>>2]](c,a)}function Ek(a){a=a|0;var b=0;J[a>>2]=7264;b=J[a+60>>2];if(b){na(b)}return a|0} function sk(a){a=a|0;var b=0;J[a>>2]=8900;b=J[a+60>>2];if(b){na(b)}return a|0}function Wh(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;if(pb(a,J[b+8>>2],0)){He(b,c,d)}}function Kl(a){var b=0;while(1){if(a){a=a-1&a;b=b+1|0;continue}break}return b}function Ci(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=Q(f);Vg(a,b,c,d,e,f)}function fd(a,b){var c=0;c=a;a=(b>>>0)/100|0;return Fb(Fb(c,a),b-P(a,100)|0)}function ed(a,b){var c=0;c=a;a=(b>>>0)/1e4|0;return fd(Fb(c,a),b-P(a,1e4)|0)}function dd(a,b){var c=0;c=a;a=(b>>>0)/1e6|0;return ed(Fb(c,a),b-P(a,1e6)|0)}function _j(a,b){a=a|0;b=b|0;a=J[a+64>>2];return da[J[J[a>>2]+24>>2]](a,b)|0}function Tj(a,b){a=a|0;b=b|0;a=J[a+64>>2];return da[J[J[a>>2]+12>>2]](a,b)|0}function Sj(a,b){a=a|0;b=b|0;a=J[a+64>>2];return da[J[J[a>>2]+16>>2]](a,b)|0}function $j(a,b){a=a|0;b=b|0;a=J[a+64>>2];return da[J[J[a>>2]+20>>2]](a,b)|0}function $f(a,b){a=a|0;b=b|0;return J[J[a+28>>2]+(b>>>3&536870908)>>2]>>>b&1}function bj(a,b){a=a|0;b=b|0;J[a>>2]=0;J[a+4>>2]=0;J[a+8>>2]=0;J[a+12>>2]=0}function Oi(){var a=0;a=oa(12);J[a+8>>2]=0;J[a>>2]=0;J[a+4>>2]=0;return a|0}function Ll(a){var b=0;b=a&31;a=0-a&31;return(-1>>>b&-2)<>>a} function Li(a){a=a|0;var b=0;if(a){b=J[a>>2];if(b){J[a+4>>2]=b;na(b)}na(a)}}function Dh(a,b,c){a=a|0;b=b|0;c=c|0;return da[J[J[a>>2]+44>>2]](a,b,c)|0}function rk(a){a=a|0;var b=0;J[a>>2]=8900;b=J[a+60>>2];if(b){na(b)}na(a)}function Dk(a){a=a|0;var b=0;J[a>>2]=7264;b=J[a+60>>2];if(b){na(b)}na(a)}function ra(){var a=0;a=Ie(cd(8),1313);J[a>>2]=19024;_(a|0,19056,1);B()}function gj(a,b){a=a|0;b=b|0;H[b+84|0]=1;J[b+72>>2]=J[b+68>>2];return 1}function Tf(a){a=nc(a);J[a+56>>2]=0;J[a+60>>2]=0;J[a>>2]=12164;return a}function Sc(a,b){a=a|0;b=b|0;if(b>>>0<=1){J[a+28>>2]=b}return b>>>0<2|0}function Pi(a){a=a|0;if(a){lb(a+12|0,J[a+16>>2]);kb(a,J[a+4>>2]);na(a)}}function $h(a,b,c){a=a|0;b=b|0;c=c|0;J[a+32>>2]=c;J[a+28>>2]=b;return 1}function Qh(a){a=a|0;if(!a){return 0}return(bd(a,18476,18620)|0)!=0|0}function Uj(a){a=a|0;a=J[a+64>>2];return da[J[J[a>>2]+32>>2]](a)|0}function Eh(a,b){a=a|0;b=b|0;J[a+12>>2]=-1;J[a+8>>2]=b;return 1}function ke(a){a=Ie(cd(8),a);J[a>>2]=18972;_(a|0,19004,1);B()}function Si(a){a=a|0;return(J[a+100>>2]-J[a+96>>2]|0)/12|0}function pk(a){a=a|0;J[a>>2]=9148;wa(a+96|0);return a|0}function Bk(a){a=a|0;J[a>>2]=7524;wa(a+96|0);return a|0}function Ac(a,b){var c=0;c=oa(b);J[a+4>>2]=b;J[a>>2]=c}function ti(a,b,c){a=a|0;b=b|0;c=c|0;Xg(J[a>>2],b,c)}function ri(a,b,c){a=a|0;b=b|0;c=c|0;Yg(J[a>>2],b,c)}function gf(a){J[a>>2]=14964;pa(a+4|0,0,80);return a}function ij(a){a=a|0;J[a+52>>2]=J[J[a+56>>2]+80>>2]}function Hf(a){a=a|0;return J[a+12>>2]-J[a+8>>2]>>2}function Gl(a){if(a){return 31-S(a-1^a)|0}return 32}function ok(a){a=a|0;J[a>>2]=9148;wa(a+96|0);na(a)}function kk(a,b){a=a|0;b=b|0;return Ug(a+40|0,b)|0}function Of(a){a=a|0;J[a+52>>2]=J[J[a+4>>2]+80>>2]}function Nk(a,b){a=a|0;b=b|0;return Ge(a+40|0,b)|0}function Ni(a,b){a=a|0;b=b|0;return H[J[a>>2]+b|0]}function Gf(a){a=a|0;if(a){da[J[J[a>>2]+4>>2]](a)}}function Ak(a){a=a|0;J[a>>2]=7524;wa(a+96|0);na(a)}function Mi(a){a=a|0;return J[a+4>>2]-J[a>>2]|0}function Fb(a,b){return Je((b<<1)+18240|0,2,a)}function Di(a,b,c){a=a|0;b=b|0;c=c|0;Xg(a,b,c)}function Bi(a,b,c){a=a|0;b=b|0;c=c|0;Yg(a,b,c)}function bk(a,b){a=a|0;b=b|0;return K[b+24|0]}function Lh(a,b,c){a=a|0;b=b|0;c=c|0;return-1}function oi(a){a=a|0;return J[J[a>>2]+40>>2]}function ni(a){a=a|0;return J[J[a>>2]+44>>2]}function ui(a,b){a=a|0;b=b|0;Tg(J[a>>2],b)}function qi(a,b){a=a|0;b=b|0;nf(J[a>>2],b)}function Ri(a,b){a=a|0;b=b|0;J[a+80>>2]=b}function xi(a){a=a|0;return J[a+44>>2]}function uc(a){a=a|0;return J[a+28>>2]}function ag(a){a=a|0;return J[a+12>>2]}function Zi(a){a=a|0;return J[a+56>>2]}function Wi(a){a=a|0;return J[a+48>>2]}function Vi(a){a=a|0;return J[a+60>>2]}function Jf(a){a=a|0;return J[a+40>>2]}function Cd(a){a=a|0;return J[a+80>>2]}function Bh(){J[4843]=19252;J[4825]=42}function zh(a,b){a=a|0;b=b|0;return 6}function zc(a,b){a=a|0;b=b|0;return 1}function wh(a,b){a=a|0;b=b|0;return-1}function vc(a){a=a|0;return J[a+4>>2]}function jl(a,b){a=a|0;b=b|0;return 2}function cd(a){return nd(a+80|0)+80|0}function Za(a,b){a=a|0;b=b|0;return 0}function Yi(a){a=a|0;return H[a+24|0]}function Xi(a){a=a|0;return K[a+32|0]}function Ei(a,b){a=a|0;b=b|0;Tg(a,b)}function Ai(a,b){a=a|0;b=b|0;nf(a,b)}function Nc(a,b,c,d){Kg(a,b,c,d,1)}function Db(a,b,c,d){Kg(a,b,c,d,0)}function lc(a){a=a|0;if(a){na(a)}}function _i(){return Jc(oa(96))|0}function Ui(){return gf(oa(84))|0}function $i(){return Lc(oa(64))|0}function ad(a){a=a|0;Ee(a);na(a)}function Ph(a){a=a|0;return 1364}function Oh(a){a=a|0;return 1622}function Mh(a){a=a|0;return 1472}function ub(a){a=a|0;return a|0}function sl(a){a=a|0;na(Ah(a))}function fl(a){a=a|0;na(vh(a))}function ai(a){a=a|0;na(Ec(a))}function Xk(a){a=a|0;na(mh(a))}function Jj(a){a=a|0;na(Zf(a))}function Ij(a){a=a|0;na(Yf(a))}function Gh(a){a=a|0;na(re(a))}function oe(a){a=a|0;return 2}function kh(a){a=a|0;return 3}function ib(a){a=a|0;return 0}function Xc(a){a=a|0;return 4}function Vc(a){a=a|0;return 5}function Uc(a){a=a|0;return 6}function Ja(a){a=a|0;return 1}function Bd(){return oa(1)|0}function Ab(a,b,c){Je(b,c,a)}function qa(){ke(1313);B()}function gb(){ke(1493);B()}function ab(a){a=a|0;na(a)}function zb(a){a=a|0;B()}function xd(){return 0}function wd(){return 1}function tf(){return-1}function li(){return 2}function ki(){return 3}function ji(){return 4}function Yh(){Z();B()}function af(a){a=a|0} // EMSCRIPTEN_END_FUNCS e=K;p(q);var da=c([null,Ee,ub,ab,oe,Fl,zk,xg,ii,Ge,Hh,Mc,zh,jl,ub,dk,ck,Ja,Zk,Lk,je,yk,Ug,ek,zh,bk,Zh,zb,$h,Me,Yh,Nh,Za,Lh,Za,Za,Ja,zc,re,Gh,oe,Kh,Ih,Jh,Cl,Bl,Fh,Eh,zc,Dh,zc,ib,ib,El,Dl,Ch,Ah,sl,Al,zl,ib,yl,rl,ql,pl,ol,xl,wl,vl,ul,tl,yh,xh,me,nl,Ja,ll,ml,kl,il,le,Ja,vc,Yc,ib,wh,Za,ib,Ja,hl,gl,zb,zb,vh,fl,Xc,Yc,uh,el,dl,cl,Vc,th,Ja,Za,sh,rh,bl,al,$k,Uc,ph,Ja,Za,oh,nh,_k,ub,ab,Sc,uc,Tc,zb,le,Ja,Yc,Yk,zb,mh,Xk,Xc,Yc,uh,Wk,Vk,Uk,Vc,th,Ja,Za,sh,rh,Tk,Sk,Rk,Uc,ph,Ja,Za,oh,nh,Qk,ub,ab,Sc,uc,Rc,zb,le,ib,Ja,Pk,yh,xh,Ok,Nk,Ja,kh,Kk,Mk,ub,ab,Ja,vc,Qc,ib,wh,Za,Ja,kh,Jk,Ik,Hk,Gk,Xc,Qc,jh,Fk,Ek,Dk,Vc,ih,Ja,Za,hh,gh,Ck,Bk,Ak,Uc,fh,Ja,Za,eh,dh,xk,ub,ab,Sc,uc,Tc,ab,Ja,Qc,wk,vk,uk,Xc,Qc,jh,tk,sk,rk,Vc,ih,Ja,Za,hh,gh,qk,pk,ok,Uc,fh,Ja,Za,eh,dh,nk,ub,ab,Sc,uc,Rc,ab,ib,Ja,mk,ik,hk,lk,kk,Ja,oe,jk,fk,Sg,ah,Zg,gk,Rg,Sg,Rg,Wj,Vj,Ja,Ja,ak,Ja,lj,ej,dj,$j,_j,cj,Yj,Uj,Tj,Sj,Zj,Xj,Zf,Jj,Rj,pg,og,Qj,lg,Nj,ag,$f,vc,Yf,Ij,Mj,pg,og,Lj,lg,Kj,ag,$f,vc,Oj,Hj,Pj,Gj,Fj,Cj,Bj,Aj,zj,Dj,yj,Ej,xj,wj,uj,tj,sj,rj,vj,qj,pj,oj,nj,mj,kj,zb,Ja,zc,ib,Za,Za,Gd,ib,Sf,ij,jj,hj,ub,ab,gj,fj,zb,ib,bj,Gd,Ja,Pf,aj,Of,Gd,ib,Pf,Sf,Of,gi,fi,ei,di,bi,ci,hi,Ec,ai,ff,ef,cf,Re,Qe,_h,ub,ab,af,af,Xh,Rh,Th,Wh,ab,Sh,Uh,Vh,ab,Oh,ab,Mh,ab,Ph,ad,vc,ad,ad]);function ea(){return G.byteLength/65536|0}function ja(ka){ka=ka|0;var fa=ea()|0;var ga=fa+ka|0;if(fa0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&c<=57343){len+=4;++i}else{len+=3}}return len}var HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateMemoryViews(){var b=wasmMemory.buffer;Module["HEAP8"]=HEAP8=new Int8Array(b);Module["HEAP16"]=HEAP16=new Int16Array(b);Module["HEAP32"]=HEAP32=new Int32Array(b);Module["HEAPU8"]=HEAPU8=new Uint8Array(b);Module["HEAPU16"]=HEAPU16=new Uint16Array(b);Module["HEAPU32"]=HEAPU32=new Uint32Array(b);Module["HEAPF32"]=HEAPF32=new Float32Array(b);Module["HEAPF64"]=HEAPF64=new Float64Array(b)}var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||16777216;assert(INITIAL_MEMORY>=65536,"INITIAL_MEMORY should be larger than STACK_SIZE, was "+INITIAL_MEMORY+"! (STACK_SIZE="+65536+")");if(Module["wasmMemory"]){wasmMemory=Module["wasmMemory"]}else{wasmMemory=new WebAssembly.Memory({"initial":INITIAL_MEMORY/65536,"maximum":2147483648/65536})}updateMemoryViews();INITIAL_MEMORY=wasmMemory.buffer.byteLength;var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;function keepRuntimeAlive(){return noExitRuntime}function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function addRunDependency(id){runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}function abort(what){if(Module["onAbort"]){Module["onAbort"](what)}what="Aborted("+what+")";err(what);ABORT=true;EXITSTATUS=1;what+=". Build with -sASSERTIONS for more info.";var e=new WebAssembly.RuntimeError(what);readyPromiseReject(e);throw e}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith("file://")}var wasmBinaryFile;wasmBinaryFile="draco_encoder.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}var binary=tryParseAsDataURI(file);if(binary){return binary}if(readBinary){return readBinary(file)}throw"both async and sync fetching of the wasm failed"}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch=="function"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={"a":wasmImports};function receiveInstance(instance,module){var exports=instance.exports;Module["asm"]=exports;wasmTable=Module["asm"]["g"];addOnInit(Module["asm"]["f"]);removeRunDependency("wasm-instantiate")}addRunDependency("wasm-instantiate");function receiveInstantiationResult(result){receiveInstance(result["instance"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(function(instance){return instance}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming=="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&!ENVIRONMENT_IS_NODE&&typeof fetch=="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);readyPromiseReject(e)}}instantiateAsync().catch(readyPromiseReject);return{}}function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){callbacks.shift()(Module)}}function intArrayToString(array){var ret=[];for(var i=0;i255){chr&=255}ret.push(String.fromCharCode(chr))}return ret.join("")}function ExceptionInfo(excPtr){this.excPtr=excPtr;this.ptr=excPtr-24;this.set_type=function(type){HEAPU32[this.ptr+4>>2]=type};this.get_type=function(){return HEAPU32[this.ptr+4>>2]};this.set_destructor=function(destructor){HEAPU32[this.ptr+8>>2]=destructor};this.get_destructor=function(){return HEAPU32[this.ptr+8>>2]};this.set_refcount=function(refcount){HEAP32[this.ptr>>2]=refcount};this.set_caught=function(caught){caught=caught?1:0;HEAP8[this.ptr+12>>0]=caught};this.get_caught=function(){return HEAP8[this.ptr+12>>0]!=0};this.set_rethrown=function(rethrown){rethrown=rethrown?1:0;HEAP8[this.ptr+13>>0]=rethrown};this.get_rethrown=function(){return HEAP8[this.ptr+13>>0]!=0};this.init=function(type,destructor){this.set_adjusted_ptr(0);this.set_type(type);this.set_destructor(destructor);this.set_refcount(0);this.set_caught(false);this.set_rethrown(false)};this.add_ref=function(){var value=HEAP32[this.ptr>>2];HEAP32[this.ptr>>2]=value+1};this.release_ref=function(){var prev=HEAP32[this.ptr>>2];HEAP32[this.ptr>>2]=prev-1;return prev===1};this.set_adjusted_ptr=function(adjustedPtr){HEAPU32[this.ptr+16>>2]=adjustedPtr};this.get_adjusted_ptr=function(){return HEAPU32[this.ptr+16>>2]};this.get_exception_ptr=function(){var isPointer=___cxa_is_pointer_type(this.get_type());if(isPointer){return HEAPU32[this.excPtr>>2]}var adjusted=this.get_adjusted_ptr();if(adjusted!==0)return adjusted;return this.excPtr}}var exceptionLast=0;var uncaughtExceptionCount=0;function ___cxa_throw(ptr,type,destructor){var info=new ExceptionInfo(ptr);info.init(type,destructor);exceptionLast=ptr;uncaughtExceptionCount++;throw ptr}function _abort(){abort("")}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function getHeapMax(){return 2147483648}function emscripten_realloc_buffer(size){var b=wasmMemory.buffer;try{wasmMemory.grow(size-b.byteLength+65535>>>16);updateMemoryViews();return 1}catch(e){}}function _emscripten_resize_heap(requestedSize){var oldSize=HEAPU8.length;requestedSize=requestedSize>>>0;var maxHeapSize=getHeapMax();if(requestedSize>maxHeapSize){return false}let alignUp=(x,multiple)=>x+(multiple-x%multiple)%multiple;for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignUp(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=emscripten_realloc_buffer(newSize);if(replacement){return true}}return false}function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var decodeBase64=typeof atob=="function"?atob:function(input){var keyStr="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";var output="";var chr1,chr2,chr3;var enc1,enc2,enc3,enc4;var i=0;input=input.replace(/[^A-Za-z0-9\+\/\=]/g,"");do{enc1=keyStr.indexOf(input.charAt(i++));enc2=keyStr.indexOf(input.charAt(i++));enc3=keyStr.indexOf(input.charAt(i++));enc4=keyStr.indexOf(input.charAt(i++));chr1=enc1<<2|enc2>>4;chr2=(enc2&15)<<4|enc3>>2;chr3=(enc3&3)<<6|enc4;output=output+String.fromCharCode(chr1);if(enc3!==64){output=output+String.fromCharCode(chr2)}if(enc4!==64){output=output+String.fromCharCode(chr3)}}while(i0){return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();readyPromiseResolve(Module);if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}run();function WrapperObject(){}WrapperObject.prototype=Object.create(WrapperObject.prototype);WrapperObject.prototype.constructor=WrapperObject;WrapperObject.prototype.__class__=WrapperObject;WrapperObject.__cache__={};Module["WrapperObject"]=WrapperObject;function getCache(__class__){return(__class__||WrapperObject).__cache__}Module["getCache"]=getCache;function wrapPointer(ptr,__class__){var cache=getCache(__class__);var ret=cache[ptr];if(ret)return ret;ret=Object.create((__class__||WrapperObject).prototype);ret.ptr=ptr;return cache[ptr]=ret}Module["wrapPointer"]=wrapPointer;function castObject(obj,__class__){return wrapPointer(obj.ptr,__class__)}Module["castObject"]=castObject;Module["NULL"]=wrapPointer(0);function destroy(obj){if(!obj["__destroy__"])throw"Error: Cannot destroy object. (Did you create it yourself?)";obj["__destroy__"]();delete getCache(obj.__class__)[obj.ptr]}Module["destroy"]=destroy;function compare(obj1,obj2){return obj1.ptr===obj2.ptr}Module["compare"]=compare;function getPointer(obj){return obj.ptr}Module["getPointer"]=getPointer;function getClass(obj){return obj.__class__}Module["getClass"]=getClass;var ensureCache={buffer:0,size:0,pos:0,temps:[],needed:0,prepare:function(){if(ensureCache.needed){for(var i=0;i=ensureCache.size){assert(len>0);ensureCache.needed+=len;ret=Module["_malloc"](len);ensureCache.temps.push(ret)}else{ret=ensureCache.buffer+ensureCache.pos;ensureCache.pos+=len}return ret},copy:function(array,view,offset){offset>>>=0;var bytes=view.BYTES_PER_ELEMENT;switch(bytes){case 2:offset>>>=1;break;case 4:offset>>>=2;break;case 8:offset>>>=3;break}for(var i=0;i>>0,$jscomp.propertyToPolyfillSymbol[k]=$jscomp.IS_SYMBOL_NATIVE? $jscomp.global.Symbol(k):$jscomp.POLYFILL_PREFIX+m+"$"+k),$jscomp.defineProperty(r,$jscomp.propertyToPolyfillSymbol[k],{configurable:!0,writable:!0,value:p})))}; $jscomp.polyfill("Promise",function(l){function p(){this.batch_=null}function m(h){return h instanceof k?h:new k(function(q,w){q(h)})}if(l&&(!($jscomp.FORCE_POLYFILL_PROMISE||$jscomp.FORCE_POLYFILL_PROMISE_WHEN_NO_UNHANDLED_REJECTION&&"undefined"===typeof $jscomp.global.PromiseRejectionEvent)||!$jscomp.global.Promise||-1===$jscomp.global.Promise.toString().indexOf("[native code]")))return l;p.prototype.asyncExecute=function(h){if(null==this.batch_){this.batch_=[];var q=this;this.asyncExecuteFunction(function(){q.executeBatch_()})}this.batch_.push(h)}; var r=$jscomp.global.setTimeout;p.prototype.asyncExecuteFunction=function(h){r(h,0)};p.prototype.executeBatch_=function(){for(;this.batch_&&this.batch_.length;){var h=this.batch_;this.batch_=[];for(var q=0;q=C}},"es6","es3"); $jscomp.polyfill("Array.prototype.copyWithin",function(l){function p(m){m=Number(m);return Infinity===m||-Infinity===m?m:m|0}return l?l:function(m,r,k){var C=this.length;m=p(m);r=p(r);k=void 0===k?C:p(k);m=0>m?Math.max(C+m,0):Math.min(m,C);r=0>r?Math.max(C+r,0):Math.min(r,C);k=0>k?Math.max(C+k,0):Math.min(k,C);if(mr;)--k in this?this[--m]=this[k]:delete this[--m];return this}},"es6","es3"); $jscomp.typedArrayCopyWithin=function(l){return l?l:Array.prototype.copyWithin};$jscomp.polyfill("Int8Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Uint8Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Uint8ClampedArray.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Int16Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5"); $jscomp.polyfill("Uint16Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Int32Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Uint32Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Float32Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Float64Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5"); var DracoEncoderModule=function(){var l="undefined"!==typeof document&&document.currentScript?document.currentScript.src:void 0;"undefined"!==typeof __filename&&(l=l||__filename);return function(p){function m(f){return a.locateFile?a.locateFile(f,L):L+f}function r(){var f=ba.buffer;a.HEAP8=O=new Int8Array(f);a.HEAP16=ea=new Int16Array(f);a.HEAP32=S=new Int32Array(f);a.HEAPU8=fa=new Uint8Array(f);a.HEAPU16=new Uint16Array(f);a.HEAPU32=T=new Uint32Array(f);a.HEAPF32=ha=new Float32Array(f);a.HEAPF64= new Float64Array(f)}function k(f){if(a.onAbort)a.onAbort(f);f="Aborted("+f+")";W(f);na=!0;f=new WebAssembly.RuntimeError(f+". Build with -sASSERTIONS for more info.");ca(f);throw f;}function C(f){try{if(f==K&&X)return new Uint8Array(X);if(ia)return ia(f);throw"both async and sync fetching of the wasm failed";}catch(b){k(b)}}function h(){if(!X&&(oa||Y)){if("function"==typeof fetch&&!K.startsWith("file://"))return fetch(K,{credentials:"same-origin"}).then(function(f){if(!f.ok)throw"failed to load wasm binary file at '"+ K+"'";return f.arrayBuffer()}).catch(function(){return C(K)});if(ja)return new Promise(function(f,b){ja(K,function(c){f(new Uint8Array(c))},b)})}return Promise.resolve().then(function(){return C(K)})}function q(f){for(;0>2]=b};this.get_type=function(){return T[this.ptr+4>>2]};this.set_destructor=function(b){T[this.ptr+8>>2]=b};this.get_destructor=function(){return T[this.ptr+8>>2]};this.set_refcount= function(b){S[this.ptr>>2]=b};this.set_caught=function(b){O[this.ptr+12>>0]=b?1:0};this.get_caught=function(){return 0!=O[this.ptr+12>>0]};this.set_rethrown=function(b){O[this.ptr+13>>0]=b?1:0};this.get_rethrown=function(){return 0!=O[this.ptr+13>>0]};this.init=function(b,c){this.set_adjusted_ptr(0);this.set_type(b);this.set_destructor(c);this.set_refcount(0);this.set_caught(!1);this.set_rethrown(!1)};this.add_ref=function(){S[this.ptr>>2]+=1};this.release_ref=function(){var b=S[this.ptr>>2];S[this.ptr>> 2]=b-1;return 1===b};this.set_adjusted_ptr=function(b){T[this.ptr+16>>2]=b};this.get_adjusted_ptr=function(){return T[this.ptr+16>>2]};this.get_exception_ptr=function(){if(pa(this.get_type()))return T[this.excPtr>>2];var b=this.get_adjusted_ptr();return 0!==b?b:this.excPtr}}function B(){function f(){if(!da&&(da=!0,a.calledRun=!0,!na)){qa=!0;q(ka);ra(a);if(a.onRuntimeInitialized)a.onRuntimeInitialized();if(a.postRun)for("function"==typeof a.postRun&&(a.postRun=[a.postRun]);a.postRun.length;)sa.unshift(a.postRun.shift()); q(sa)}}if(!(0=d?b++:2047>=d?b+=2:55296<=d&&57343>=d?(b+=4,++c):b+=3}b=Array(b+1);c=0;d=b.length;if(0=g){var t=f.charCodeAt(++e);g=65536+((g&1023)<<10)|t&1023}if(127>=g){if(c>=d)break;b[c++]=g}else{if(2047>=g){if(c+1>=d)break;b[c++]=192|g>>6}else{if(65535>=g){if(c+2>=d)break;b[c++]=224|g>>12}else{if(c+3>=d)break;b[c++]=240|g>>18;b[c++]=128|g>>12&63}b[c++]=128|g>>6&63}b[c++]=128|g&63}}b[c]=0}f=n.alloc(b,O);n.copy(b,O,f);return f}return f} function Q(f){if("object"===typeof f){var b=n.alloc(f,O);n.copy(f,O,b);return b}return f}function R(f){if("object"===typeof f){var b=n.alloc(f,ea);n.copy(f,ea,b);return b}return f}function V(f){if("object"===typeof f){var b=n.alloc(f,S);n.copy(f,S,b);return b}return f}function Z(f){if("object"===typeof f){var b=n.alloc(f,ha);n.copy(f,ha,b);return b}return f}function P(){throw"cannot construct a VoidPtr, no constructor in IDL";}function M(){this.ptr=ua();D(M)[this.ptr]=this}function z(){this.ptr=va(); D(z)[this.ptr]=this}function G(){this.ptr=wa();D(G)[this.ptr]=this}function E(){this.ptr=xa();D(E)[this.ptr]=this}function N(){this.ptr=ya();D(N)[this.ptr]=this}function H(){this.ptr=za();D(H)[this.ptr]=this}function F(){this.ptr=Aa();D(F)[this.ptr]=this}function x(){this.ptr=Ba();D(x)[this.ptr]=this}function u(){this.ptr=Ca();D(u)[this.ptr]=this}function y(){this.ptr=Da();D(y)[this.ptr]=this}function A(f){f&&"object"===typeof f&&(f=f.ptr);this.ptr=Ea(f);D(A)[this.ptr]=this}p=void 0===p?{}:p;var a= "undefined"!=typeof p?p:{},ra,ca;a.ready=new Promise(function(f,b){ra=f;ca=b});var Fa=!1,Ga=!1;a.onRuntimeInitialized=function(){Fa=!0;if(Ga&&"function"===typeof a.onModuleLoaded)a.onModuleLoaded(a)};a.onModuleParsed=function(){Ga=!0;if(Fa&&"function"===typeof a.onModuleLoaded)a.onModuleLoaded(a)};a.isVersionSupported=function(f){if("string"!==typeof f)return!1;f=f.split(".");return 2>f.length||3=f[1]?!0:0!=f[0]||10>>=0;if(2147483648=c;c*=2){var d=b*(1+.2/c);d=Math.min(d,f+100663296);var e=Math;d=Math.max(f,d);e=e.min.call(e,2147483648, d+(65536-d%65536)%65536);a:{d=ba.buffer;try{ba.grow(e-d.byteLength+65535>>>16);r();var g=1;break a}catch(t){}g=void 0}if(g)return!0}return!1}};(function(){function f(e,g){a.asm=e.exports;ba=a.asm.e;r();ka.unshift(a.asm.f);U--;a.monitorRunDependencies&&a.monitorRunDependencies(U);0==U&&(null!==ma&&(clearInterval(ma),ma=null),aa&&(e=aa,aa=null,e()))}function b(e){f(e.instance)}function c(e){return h().then(function(g){return WebAssembly.instantiate(g,d)}).then(function(g){return g}).then(e,function(g){W("failed to asynchronously prepare wasm: "+ g);k(g)})}var d={a:qc};U++;a.monitorRunDependencies&&a.monitorRunDependencies(U);if(a.instantiateWasm)try{return a.instantiateWasm(d,f)}catch(e){W("Module.instantiateWasm callback failed with error: "+e),ca(e)}(function(){return X||"function"!=typeof WebAssembly.instantiateStreaming||K.startsWith("data:application/octet-stream;base64,")||K.startsWith("file://")||Ia||"function"!=typeof fetch?c(b):fetch(K,{credentials:"same-origin"}).then(function(e){return WebAssembly.instantiateStreaming(e,d).then(b, function(g){W("wasm streaming compile failed: "+g);W("falling back to ArrayBuffer instantiation");return c(b)})})})().catch(ca);return{}})();var La=a._emscripten_bind_VoidPtr___destroy___0=function(){return(La=a._emscripten_bind_VoidPtr___destroy___0=a.asm.h).apply(null,arguments)},ua=a._emscripten_bind_GeometryAttribute_GeometryAttribute_0=function(){return(ua=a._emscripten_bind_GeometryAttribute_GeometryAttribute_0=a.asm.i).apply(null,arguments)},Ma=a._emscripten_bind_GeometryAttribute___destroy___0= function(){return(Ma=a._emscripten_bind_GeometryAttribute___destroy___0=a.asm.j).apply(null,arguments)},va=a._emscripten_bind_PointAttribute_PointAttribute_0=function(){return(va=a._emscripten_bind_PointAttribute_PointAttribute_0=a.asm.k).apply(null,arguments)},Na=a._emscripten_bind_PointAttribute_size_0=function(){return(Na=a._emscripten_bind_PointAttribute_size_0=a.asm.l).apply(null,arguments)},Oa=a._emscripten_bind_PointAttribute_attribute_type_0=function(){return(Oa=a._emscripten_bind_PointAttribute_attribute_type_0= a.asm.m).apply(null,arguments)},Pa=a._emscripten_bind_PointAttribute_data_type_0=function(){return(Pa=a._emscripten_bind_PointAttribute_data_type_0=a.asm.n).apply(null,arguments)},Qa=a._emscripten_bind_PointAttribute_num_components_0=function(){return(Qa=a._emscripten_bind_PointAttribute_num_components_0=a.asm.o).apply(null,arguments)},Ra=a._emscripten_bind_PointAttribute_normalized_0=function(){return(Ra=a._emscripten_bind_PointAttribute_normalized_0=a.asm.p).apply(null,arguments)},Sa=a._emscripten_bind_PointAttribute_byte_stride_0= function(){return(Sa=a._emscripten_bind_PointAttribute_byte_stride_0=a.asm.q).apply(null,arguments)},Ta=a._emscripten_bind_PointAttribute_byte_offset_0=function(){return(Ta=a._emscripten_bind_PointAttribute_byte_offset_0=a.asm.r).apply(null,arguments)},Ua=a._emscripten_bind_PointAttribute_unique_id_0=function(){return(Ua=a._emscripten_bind_PointAttribute_unique_id_0=a.asm.s).apply(null,arguments)},Va=a._emscripten_bind_PointAttribute___destroy___0=function(){return(Va=a._emscripten_bind_PointAttribute___destroy___0= a.asm.t).apply(null,arguments)},wa=a._emscripten_bind_PointCloud_PointCloud_0=function(){return(wa=a._emscripten_bind_PointCloud_PointCloud_0=a.asm.u).apply(null,arguments)},Wa=a._emscripten_bind_PointCloud_num_attributes_0=function(){return(Wa=a._emscripten_bind_PointCloud_num_attributes_0=a.asm.v).apply(null,arguments)},Xa=a._emscripten_bind_PointCloud_num_points_0=function(){return(Xa=a._emscripten_bind_PointCloud_num_points_0=a.asm.w).apply(null,arguments)},Ya=a._emscripten_bind_PointCloud___destroy___0= function(){return(Ya=a._emscripten_bind_PointCloud___destroy___0=a.asm.x).apply(null,arguments)},xa=a._emscripten_bind_Mesh_Mesh_0=function(){return(xa=a._emscripten_bind_Mesh_Mesh_0=a.asm.y).apply(null,arguments)},Za=a._emscripten_bind_Mesh_num_faces_0=function(){return(Za=a._emscripten_bind_Mesh_num_faces_0=a.asm.z).apply(null,arguments)},$a=a._emscripten_bind_Mesh_num_attributes_0=function(){return($a=a._emscripten_bind_Mesh_num_attributes_0=a.asm.A).apply(null,arguments)},ab=a._emscripten_bind_Mesh_num_points_0= function(){return(ab=a._emscripten_bind_Mesh_num_points_0=a.asm.B).apply(null,arguments)},bb=a._emscripten_bind_Mesh_set_num_points_1=function(){return(bb=a._emscripten_bind_Mesh_set_num_points_1=a.asm.C).apply(null,arguments)},cb=a._emscripten_bind_Mesh___destroy___0=function(){return(cb=a._emscripten_bind_Mesh___destroy___0=a.asm.D).apply(null,arguments)},ya=a._emscripten_bind_Metadata_Metadata_0=function(){return(ya=a._emscripten_bind_Metadata_Metadata_0=a.asm.E).apply(null,arguments)},db=a._emscripten_bind_Metadata___destroy___0= function(){return(db=a._emscripten_bind_Metadata___destroy___0=a.asm.F).apply(null,arguments)},za=a._emscripten_bind_DracoInt8Array_DracoInt8Array_0=function(){return(za=a._emscripten_bind_DracoInt8Array_DracoInt8Array_0=a.asm.G).apply(null,arguments)},eb=a._emscripten_bind_DracoInt8Array_GetValue_1=function(){return(eb=a._emscripten_bind_DracoInt8Array_GetValue_1=a.asm.H).apply(null,arguments)},fb=a._emscripten_bind_DracoInt8Array_size_0=function(){return(fb=a._emscripten_bind_DracoInt8Array_size_0= a.asm.I).apply(null,arguments)},gb=a._emscripten_bind_DracoInt8Array___destroy___0=function(){return(gb=a._emscripten_bind_DracoInt8Array___destroy___0=a.asm.J).apply(null,arguments)},Aa=a._emscripten_bind_MetadataBuilder_MetadataBuilder_0=function(){return(Aa=a._emscripten_bind_MetadataBuilder_MetadataBuilder_0=a.asm.K).apply(null,arguments)},hb=a._emscripten_bind_MetadataBuilder_AddStringEntry_3=function(){return(hb=a._emscripten_bind_MetadataBuilder_AddStringEntry_3=a.asm.L).apply(null,arguments)}, ib=a._emscripten_bind_MetadataBuilder_AddIntEntry_3=function(){return(ib=a._emscripten_bind_MetadataBuilder_AddIntEntry_3=a.asm.M).apply(null,arguments)},jb=a._emscripten_bind_MetadataBuilder_AddIntEntryArray_4=function(){return(jb=a._emscripten_bind_MetadataBuilder_AddIntEntryArray_4=a.asm.N).apply(null,arguments)},kb=a._emscripten_bind_MetadataBuilder_AddDoubleEntry_3=function(){return(kb=a._emscripten_bind_MetadataBuilder_AddDoubleEntry_3=a.asm.O).apply(null,arguments)},lb=a._emscripten_bind_MetadataBuilder___destroy___0= function(){return(lb=a._emscripten_bind_MetadataBuilder___destroy___0=a.asm.P).apply(null,arguments)},Ba=a._emscripten_bind_PointCloudBuilder_PointCloudBuilder_0=function(){return(Ba=a._emscripten_bind_PointCloudBuilder_PointCloudBuilder_0=a.asm.Q).apply(null,arguments)},mb=a._emscripten_bind_PointCloudBuilder_AddFloatAttribute_5=function(){return(mb=a._emscripten_bind_PointCloudBuilder_AddFloatAttribute_5=a.asm.R).apply(null,arguments)},nb=a._emscripten_bind_PointCloudBuilder_AddInt8Attribute_5= function(){return(nb=a._emscripten_bind_PointCloudBuilder_AddInt8Attribute_5=a.asm.S).apply(null,arguments)},ob=a._emscripten_bind_PointCloudBuilder_AddUInt8Attribute_5=function(){return(ob=a._emscripten_bind_PointCloudBuilder_AddUInt8Attribute_5=a.asm.T).apply(null,arguments)},pb=a._emscripten_bind_PointCloudBuilder_AddInt16Attribute_5=function(){return(pb=a._emscripten_bind_PointCloudBuilder_AddInt16Attribute_5=a.asm.U).apply(null,arguments)},qb=a._emscripten_bind_PointCloudBuilder_AddUInt16Attribute_5= function(){return(qb=a._emscripten_bind_PointCloudBuilder_AddUInt16Attribute_5=a.asm.V).apply(null,arguments)},rb=a._emscripten_bind_PointCloudBuilder_AddInt32Attribute_5=function(){return(rb=a._emscripten_bind_PointCloudBuilder_AddInt32Attribute_5=a.asm.W).apply(null,arguments)},sb=a._emscripten_bind_PointCloudBuilder_AddUInt32Attribute_5=function(){return(sb=a._emscripten_bind_PointCloudBuilder_AddUInt32Attribute_5=a.asm.X).apply(null,arguments)},tb=a._emscripten_bind_PointCloudBuilder_AddMetadata_2= function(){return(tb=a._emscripten_bind_PointCloudBuilder_AddMetadata_2=a.asm.Y).apply(null,arguments)},ub=a._emscripten_bind_PointCloudBuilder_SetMetadataForAttribute_3=function(){return(ub=a._emscripten_bind_PointCloudBuilder_SetMetadataForAttribute_3=a.asm.Z).apply(null,arguments)},vb=a._emscripten_bind_PointCloudBuilder_SetNormalizedFlagForAttribute_3=function(){return(vb=a._emscripten_bind_PointCloudBuilder_SetNormalizedFlagForAttribute_3=a.asm._).apply(null,arguments)},wb=a._emscripten_bind_PointCloudBuilder___destroy___0= function(){return(wb=a._emscripten_bind_PointCloudBuilder___destroy___0=a.asm.$).apply(null,arguments)},Ca=a._emscripten_bind_MeshBuilder_MeshBuilder_0=function(){return(Ca=a._emscripten_bind_MeshBuilder_MeshBuilder_0=a.asm.aa).apply(null,arguments)},xb=a._emscripten_bind_MeshBuilder_AddFacesToMesh_3=function(){return(xb=a._emscripten_bind_MeshBuilder_AddFacesToMesh_3=a.asm.ba).apply(null,arguments)},yb=a._emscripten_bind_MeshBuilder_AddFloatAttributeToMesh_5=function(){return(yb=a._emscripten_bind_MeshBuilder_AddFloatAttributeToMesh_5= a.asm.ca).apply(null,arguments)},zb=a._emscripten_bind_MeshBuilder_AddInt32AttributeToMesh_5=function(){return(zb=a._emscripten_bind_MeshBuilder_AddInt32AttributeToMesh_5=a.asm.da).apply(null,arguments)},Ab=a._emscripten_bind_MeshBuilder_AddMetadataToMesh_2=function(){return(Ab=a._emscripten_bind_MeshBuilder_AddMetadataToMesh_2=a.asm.ea).apply(null,arguments)},Bb=a._emscripten_bind_MeshBuilder_AddFloatAttribute_5=function(){return(Bb=a._emscripten_bind_MeshBuilder_AddFloatAttribute_5=a.asm.fa).apply(null, arguments)},Cb=a._emscripten_bind_MeshBuilder_AddInt8Attribute_5=function(){return(Cb=a._emscripten_bind_MeshBuilder_AddInt8Attribute_5=a.asm.ga).apply(null,arguments)},Db=a._emscripten_bind_MeshBuilder_AddUInt8Attribute_5=function(){return(Db=a._emscripten_bind_MeshBuilder_AddUInt8Attribute_5=a.asm.ha).apply(null,arguments)},Eb=a._emscripten_bind_MeshBuilder_AddInt16Attribute_5=function(){return(Eb=a._emscripten_bind_MeshBuilder_AddInt16Attribute_5=a.asm.ia).apply(null,arguments)},Fb=a._emscripten_bind_MeshBuilder_AddUInt16Attribute_5= function(){return(Fb=a._emscripten_bind_MeshBuilder_AddUInt16Attribute_5=a.asm.ja).apply(null,arguments)},Gb=a._emscripten_bind_MeshBuilder_AddInt32Attribute_5=function(){return(Gb=a._emscripten_bind_MeshBuilder_AddInt32Attribute_5=a.asm.ka).apply(null,arguments)},Hb=a._emscripten_bind_MeshBuilder_AddUInt32Attribute_5=function(){return(Hb=a._emscripten_bind_MeshBuilder_AddUInt32Attribute_5=a.asm.la).apply(null,arguments)},Ib=a._emscripten_bind_MeshBuilder_AddMetadata_2=function(){return(Ib=a._emscripten_bind_MeshBuilder_AddMetadata_2= a.asm.ma).apply(null,arguments)},Jb=a._emscripten_bind_MeshBuilder_SetMetadataForAttribute_3=function(){return(Jb=a._emscripten_bind_MeshBuilder_SetMetadataForAttribute_3=a.asm.na).apply(null,arguments)},Kb=a._emscripten_bind_MeshBuilder_SetNormalizedFlagForAttribute_3=function(){return(Kb=a._emscripten_bind_MeshBuilder_SetNormalizedFlagForAttribute_3=a.asm.oa).apply(null,arguments)},Lb=a._emscripten_bind_MeshBuilder___destroy___0=function(){return(Lb=a._emscripten_bind_MeshBuilder___destroy___0= a.asm.pa).apply(null,arguments)},Da=a._emscripten_bind_Encoder_Encoder_0=function(){return(Da=a._emscripten_bind_Encoder_Encoder_0=a.asm.qa).apply(null,arguments)},Mb=a._emscripten_bind_Encoder_SetEncodingMethod_1=function(){return(Mb=a._emscripten_bind_Encoder_SetEncodingMethod_1=a.asm.ra).apply(null,arguments)},Nb=a._emscripten_bind_Encoder_SetAttributeQuantization_2=function(){return(Nb=a._emscripten_bind_Encoder_SetAttributeQuantization_2=a.asm.sa).apply(null,arguments)},Ob=a._emscripten_bind_Encoder_SetAttributeExplicitQuantization_5= function(){return(Ob=a._emscripten_bind_Encoder_SetAttributeExplicitQuantization_5=a.asm.ta).apply(null,arguments)},Pb=a._emscripten_bind_Encoder_SetSpeedOptions_2=function(){return(Pb=a._emscripten_bind_Encoder_SetSpeedOptions_2=a.asm.ua).apply(null,arguments)},Qb=a._emscripten_bind_Encoder_SetTrackEncodedProperties_1=function(){return(Qb=a._emscripten_bind_Encoder_SetTrackEncodedProperties_1=a.asm.va).apply(null,arguments)},Rb=a._emscripten_bind_Encoder_EncodeMeshToDracoBuffer_2=function(){return(Rb= a._emscripten_bind_Encoder_EncodeMeshToDracoBuffer_2=a.asm.wa).apply(null,arguments)},Sb=a._emscripten_bind_Encoder_EncodePointCloudToDracoBuffer_3=function(){return(Sb=a._emscripten_bind_Encoder_EncodePointCloudToDracoBuffer_3=a.asm.xa).apply(null,arguments)},Tb=a._emscripten_bind_Encoder_GetNumberOfEncodedPoints_0=function(){return(Tb=a._emscripten_bind_Encoder_GetNumberOfEncodedPoints_0=a.asm.ya).apply(null,arguments)},Ub=a._emscripten_bind_Encoder_GetNumberOfEncodedFaces_0=function(){return(Ub= a._emscripten_bind_Encoder_GetNumberOfEncodedFaces_0=a.asm.za).apply(null,arguments)},Vb=a._emscripten_bind_Encoder___destroy___0=function(){return(Vb=a._emscripten_bind_Encoder___destroy___0=a.asm.Aa).apply(null,arguments)},Ea=a._emscripten_bind_ExpertEncoder_ExpertEncoder_1=function(){return(Ea=a._emscripten_bind_ExpertEncoder_ExpertEncoder_1=a.asm.Ba).apply(null,arguments)},Wb=a._emscripten_bind_ExpertEncoder_SetEncodingMethod_1=function(){return(Wb=a._emscripten_bind_ExpertEncoder_SetEncodingMethod_1= a.asm.Ca).apply(null,arguments)},Xb=a._emscripten_bind_ExpertEncoder_SetAttributeQuantization_2=function(){return(Xb=a._emscripten_bind_ExpertEncoder_SetAttributeQuantization_2=a.asm.Da).apply(null,arguments)},Yb=a._emscripten_bind_ExpertEncoder_SetAttributeExplicitQuantization_5=function(){return(Yb=a._emscripten_bind_ExpertEncoder_SetAttributeExplicitQuantization_5=a.asm.Ea).apply(null,arguments)},Zb=a._emscripten_bind_ExpertEncoder_SetSpeedOptions_2=function(){return(Zb=a._emscripten_bind_ExpertEncoder_SetSpeedOptions_2= a.asm.Fa).apply(null,arguments)},$b=a._emscripten_bind_ExpertEncoder_SetTrackEncodedProperties_1=function(){return($b=a._emscripten_bind_ExpertEncoder_SetTrackEncodedProperties_1=a.asm.Ga).apply(null,arguments)},ac=a._emscripten_bind_ExpertEncoder_EncodeToDracoBuffer_2=function(){return(ac=a._emscripten_bind_ExpertEncoder_EncodeToDracoBuffer_2=a.asm.Ha).apply(null,arguments)},bc=a._emscripten_bind_ExpertEncoder_GetNumberOfEncodedPoints_0=function(){return(bc=a._emscripten_bind_ExpertEncoder_GetNumberOfEncodedPoints_0= a.asm.Ia).apply(null,arguments)},cc=a._emscripten_bind_ExpertEncoder_GetNumberOfEncodedFaces_0=function(){return(cc=a._emscripten_bind_ExpertEncoder_GetNumberOfEncodedFaces_0=a.asm.Ja).apply(null,arguments)},dc=a._emscripten_bind_ExpertEncoder___destroy___0=function(){return(dc=a._emscripten_bind_ExpertEncoder___destroy___0=a.asm.Ka).apply(null,arguments)},ec=a._emscripten_enum_draco_GeometryAttribute_Type_INVALID=function(){return(ec=a._emscripten_enum_draco_GeometryAttribute_Type_INVALID=a.asm.La).apply(null, arguments)},fc=a._emscripten_enum_draco_GeometryAttribute_Type_POSITION=function(){return(fc=a._emscripten_enum_draco_GeometryAttribute_Type_POSITION=a.asm.Ma).apply(null,arguments)},gc=a._emscripten_enum_draco_GeometryAttribute_Type_NORMAL=function(){return(gc=a._emscripten_enum_draco_GeometryAttribute_Type_NORMAL=a.asm.Na).apply(null,arguments)},hc=a._emscripten_enum_draco_GeometryAttribute_Type_COLOR=function(){return(hc=a._emscripten_enum_draco_GeometryAttribute_Type_COLOR=a.asm.Oa).apply(null, arguments)},ic=a._emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD=function(){return(ic=a._emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD=a.asm.Pa).apply(null,arguments)},jc=a._emscripten_enum_draco_GeometryAttribute_Type_GENERIC=function(){return(jc=a._emscripten_enum_draco_GeometryAttribute_Type_GENERIC=a.asm.Qa).apply(null,arguments)},kc=a._emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE=function(){return(kc=a._emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE= a.asm.Ra).apply(null,arguments)},lc=a._emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD=function(){return(lc=a._emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD=a.asm.Sa).apply(null,arguments)},mc=a._emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH=function(){return(mc=a._emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH=a.asm.Ta).apply(null,arguments)},nc=a._emscripten_enum_draco_MeshEncoderMethod_MESH_SEQUENTIAL_ENCODING=function(){return(nc=a._emscripten_enum_draco_MeshEncoderMethod_MESH_SEQUENTIAL_ENCODING= a.asm.Ua).apply(null,arguments)},oc=a._emscripten_enum_draco_MeshEncoderMethod_MESH_EDGEBREAKER_ENCODING=function(){return(oc=a._emscripten_enum_draco_MeshEncoderMethod_MESH_EDGEBREAKER_ENCODING=a.asm.Va).apply(null,arguments)};a._malloc=function(){return(a._malloc=a.asm.Wa).apply(null,arguments)};a._free=function(){return(a._free=a.asm.Xa).apply(null,arguments)};var pa=function(){return(pa=a.asm.Ya).apply(null,arguments)};a.___start_em_js=19116;a.___stop_em_js=19214;var da;aa=function b(){da||B(); da||(aa=b)};if(a.preInit)for("function"==typeof a.preInit&&(a.preInit=[a.preInit]);0=n.size?(0>>=0;switch(c.BYTES_PER_ELEMENT){case 2:d>>>=1;break;case 4:d>>>=2;break;case 8:d>>>=3}for(var e=0;e>>0,$jscomp.propertyToPolyfillSymbol[h]=$jscomp.IS_SYMBOL_NATIVE? $jscomp.global.Symbol(h):$jscomp.POLYFILL_PREFIX+l+"$"+h),$jscomp.defineProperty(p,$jscomp.propertyToPolyfillSymbol[h],{configurable:!0,writable:!0,value:n})))}; $jscomp.polyfill("Promise",function(k){function n(){this.batch_=null}function l(f){return f instanceof h?f:new h(function(q,v){q(f)})}if(k&&(!($jscomp.FORCE_POLYFILL_PROMISE||$jscomp.FORCE_POLYFILL_PROMISE_WHEN_NO_UNHANDLED_REJECTION&&"undefined"===typeof $jscomp.global.PromiseRejectionEvent)||!$jscomp.global.Promise||-1===$jscomp.global.Promise.toString().indexOf("[native code]")))return k;n.prototype.asyncExecute=function(f){if(null==this.batch_){this.batch_=[];var q=this;this.asyncExecuteFunction(function(){q.executeBatch_()})}this.batch_.push(f)}; var p=$jscomp.global.setTimeout;n.prototype.asyncExecuteFunction=function(f){p(f,0)};n.prototype.executeBatch_=function(){for(;this.batch_&&this.batch_.length;){var f=this.batch_;this.batch_=[];for(var q=0;q=A}},"es6","es3"); $jscomp.polyfill("Array.prototype.copyWithin",function(k){function n(l){l=Number(l);return Infinity===l||-Infinity===l?l:l|0}return k?k:function(l,p,h){var A=this.length;l=n(l);p=n(p);h=void 0===h?A:n(h);l=0>l?Math.max(A+l,0):Math.min(l,A);p=0>p?Math.max(A+p,0):Math.min(p,A);h=0>h?Math.max(A+h,0):Math.min(h,A);if(lp;)--h in this?this[--l]=this[h]:delete this[--l];return this}},"es6","es3"); $jscomp.typedArrayCopyWithin=function(k){return k?k:Array.prototype.copyWithin};$jscomp.polyfill("Int8Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Uint8Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Uint8ClampedArray.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Int16Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5"); $jscomp.polyfill("Uint16Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Int32Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Uint32Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Float32Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Float64Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5"); var DracoDecoderModule=function(){var k="undefined"!==typeof document&&document.currentScript?document.currentScript.src:void 0;"undefined"!==typeof __filename&&(k=k||__filename);return function(n){function l(e){return a.locateFile?a.locateFile(e,U):U+e}function p(e,b,c){var d=b+c;for(c=b;e[c]&&!(c>=d);)++c;if(16g?d+=String.fromCharCode(g):(g-=65536,d+=String.fromCharCode(55296|g>>10,56320|g&1023))}}else d+=String.fromCharCode(g)}return d}function h(e,b){return e?p(ea,e,b):""}function A(){var e=ja.buffer;a.HEAP8=Y=new Int8Array(e);a.HEAP16=new Int16Array(e);a.HEAP32=ca=new Int32Array(e);a.HEAPU8=ea=new Uint8Array(e);a.HEAPU16=new Uint16Array(e);a.HEAPU32=V=new Uint32Array(e);a.HEAPF32=new Float32Array(e);a.HEAPF64=new Float64Array(e)}function f(e){if(a.onAbort)a.onAbort(e); e="Aborted("+e+")";da(e);wa=!0;e=new WebAssembly.RuntimeError(e+". Build with -sASSERTIONS for more info.");ka(e);throw e;}function q(e){try{if(e==P&&fa)return new Uint8Array(fa);if(ma)return ma(e);throw"both async and sync fetching of the wasm failed";}catch(b){f(b)}}function v(){if(!fa&&(xa||ha)){if("function"==typeof fetch&&!P.startsWith("file://"))return fetch(P,{credentials:"same-origin"}).then(function(e){if(!e.ok)throw"failed to load wasm binary file at '"+P+"'";return e.arrayBuffer()}).catch(function(){return q(P)}); if(na)return new Promise(function(e,b){na(P,function(c){e(new Uint8Array(c))},b)})}return Promise.resolve().then(function(){return q(P)})}function z(e){for(;0>2]=b};this.get_type=function(){return V[this.ptr+4>>2]};this.set_destructor=function(b){V[this.ptr+8>>2]=b};this.get_destructor=function(){return V[this.ptr+8>>2]};this.set_refcount=function(b){ca[this.ptr>>2]=b};this.set_caught=function(b){Y[this.ptr+ 12>>0]=b?1:0};this.get_caught=function(){return 0!=Y[this.ptr+12>>0]};this.set_rethrown=function(b){Y[this.ptr+13>>0]=b?1:0};this.get_rethrown=function(){return 0!=Y[this.ptr+13>>0]};this.init=function(b,c){this.set_adjusted_ptr(0);this.set_type(b);this.set_destructor(c);this.set_refcount(0);this.set_caught(!1);this.set_rethrown(!1)};this.add_ref=function(){ca[this.ptr>>2]+=1};this.release_ref=function(){var b=ca[this.ptr>>2];ca[this.ptr>>2]=b-1;return 1===b};this.set_adjusted_ptr=function(b){V[this.ptr+ 16>>2]=b};this.get_adjusted_ptr=function(){return V[this.ptr+16>>2]};this.get_exception_ptr=function(){if(ya(this.get_type()))return V[this.excPtr>>2];var b=this.get_adjusted_ptr();return 0!==b?b:this.excPtr}}function ba(){function e(){if(!la&&(la=!0,a.calledRun=!0,!wa)){za=!0;z(oa);Aa(a);if(a.onRuntimeInitialized)a.onRuntimeInitialized();if(a.postRun)for("function"==typeof a.postRun&&(a.postRun=[a.postRun]);a.postRun.length;)Ba.unshift(a.postRun.shift());z(Ba)}}if(!(0=d?b++:2047>=d?b+=2:55296<=d&&57343>= d?(b+=4,++c):b+=3}b=Array(b+1);c=0;d=b.length;if(0=u){var X=e.charCodeAt(++g);u=65536+((u&1023)<<10)|X&1023}if(127>=u){if(c>=d)break;b[c++]=u}else{if(2047>=u){if(c+1>=d)break;b[c++]=192|u>>6}else{if(65535>=u){if(c+2>=d)break;b[c++]=224|u>>12}else{if(c+3>=d)break;b[c++]=240|u>>18;b[c++]=128|u>>12&63}b[c++]=128|u>>6&63}b[c++]=128|u&63}}b[c]=0}e=r.alloc(b,Y);r.copy(b,Y,e);return e}return e}function pa(e){if("object"===typeof e){var b= r.alloc(e,Y);r.copy(e,Y,b);return b}return e}function Z(){throw"cannot construct a VoidPtr, no constructor in IDL";}function S(){this.ptr=Da();x(S)[this.ptr]=this}function Q(){this.ptr=Ea();x(Q)[this.ptr]=this}function W(){this.ptr=Fa();x(W)[this.ptr]=this}function w(){this.ptr=Ga();x(w)[this.ptr]=this}function C(){this.ptr=Ha();x(C)[this.ptr]=this}function F(){this.ptr=Ia();x(F)[this.ptr]=this}function G(){this.ptr=Ja();x(G)[this.ptr]=this}function E(){this.ptr=Ka();x(E)[this.ptr]=this}function T(){this.ptr= La();x(T)[this.ptr]=this}function B(){throw"cannot construct a Status, no constructor in IDL";}function H(){this.ptr=Ma();x(H)[this.ptr]=this}function I(){this.ptr=Na();x(I)[this.ptr]=this}function J(){this.ptr=Oa();x(J)[this.ptr]=this}function K(){this.ptr=Pa();x(K)[this.ptr]=this}function L(){this.ptr=Qa();x(L)[this.ptr]=this}function M(){this.ptr=Ra();x(M)[this.ptr]=this}function N(){this.ptr=Sa();x(N)[this.ptr]=this}function y(){this.ptr=Ta();x(y)[this.ptr]=this}function m(){this.ptr=Ua();x(m)[this.ptr]= this}n=void 0===n?{}:n;var a="undefined"!=typeof n?n:{},Aa,ka;a.ready=new Promise(function(e,b){Aa=e;ka=b});var Va=!1,Wa=!1;a.onRuntimeInitialized=function(){Va=!0;if(Wa&&"function"===typeof a.onModuleLoaded)a.onModuleLoaded(a)};a.onModuleParsed=function(){Wa=!0;if(Va&&"function"===typeof a.onModuleLoaded)a.onModuleLoaded(a)};a.isVersionSupported=function(e){if("string"!==typeof e)return!1;e=e.split(".");return 2>e.length||3=e[1]?!0:0!=e[0]||10>>=0;if(2147483648=c;c*=2){var d=b*(1+.2/c);d=Math.min(d,e+100663296);var g=Math;d=Math.max(e,d);g=g.min.call(g,2147483648,d+(65536-d%65536)%65536);a:{d=ja.buffer;try{ja.grow(g-d.byteLength+65535>>>16);A();var u=1;break a}catch(X){}u=void 0}if(u)return!0}return!1},f:function(e){return 52},d:function(e,b,c,d,g){return 70},c:function(e,b,c,d){for(var g=0,u=0;u>2],ab=V[b+4>>2];b+=8;for(var sa=0;sa>2]=g;return 0}};(function(){function e(g,u){a.asm=g.exports;ja=a.asm.h;A();oa.unshift(a.asm.i);aa--;a.monitorRunDependencies&&a.monitorRunDependencies(aa);0==aa&&(null!==ra&&(clearInterval(ra),ra=null),ia&&(g=ia,ia=null,g()))}function b(g){e(g.instance)}function c(g){return v().then(function(u){return WebAssembly.instantiate(u,d)}).then(function(u){return u}).then(g,function(u){da("failed to asynchronously prepare wasm: "+u);f(u)})}var d={a:xd};aa++;a.monitorRunDependencies&&a.monitorRunDependencies(aa); if(a.instantiateWasm)try{return a.instantiateWasm(d,e)}catch(g){da("Module.instantiateWasm callback failed with error: "+g),ka(g)}(function(){return fa||"function"!=typeof WebAssembly.instantiateStreaming||P.startsWith("data:application/octet-stream;base64,")||P.startsWith("file://")||Ya||"function"!=typeof fetch?c(b):fetch(P,{credentials:"same-origin"}).then(function(g){return WebAssembly.instantiateStreaming(g,d).then(b,function(u){da("wasm streaming compile failed: "+u);da("falling back to ArrayBuffer instantiation"); return c(b)})})})().catch(ka);return{}})();var bb=a._emscripten_bind_VoidPtr___destroy___0=function(){return(bb=a._emscripten_bind_VoidPtr___destroy___0=a.asm.k).apply(null,arguments)},Da=a._emscripten_bind_DecoderBuffer_DecoderBuffer_0=function(){return(Da=a._emscripten_bind_DecoderBuffer_DecoderBuffer_0=a.asm.l).apply(null,arguments)},cb=a._emscripten_bind_DecoderBuffer_Init_2=function(){return(cb=a._emscripten_bind_DecoderBuffer_Init_2=a.asm.m).apply(null,arguments)},db=a._emscripten_bind_DecoderBuffer___destroy___0= function(){return(db=a._emscripten_bind_DecoderBuffer___destroy___0=a.asm.n).apply(null,arguments)},Ea=a._emscripten_bind_AttributeTransformData_AttributeTransformData_0=function(){return(Ea=a._emscripten_bind_AttributeTransformData_AttributeTransformData_0=a.asm.o).apply(null,arguments)},eb=a._emscripten_bind_AttributeTransformData_transform_type_0=function(){return(eb=a._emscripten_bind_AttributeTransformData_transform_type_0=a.asm.p).apply(null,arguments)},fb=a._emscripten_bind_AttributeTransformData___destroy___0= function(){return(fb=a._emscripten_bind_AttributeTransformData___destroy___0=a.asm.q).apply(null,arguments)},Fa=a._emscripten_bind_GeometryAttribute_GeometryAttribute_0=function(){return(Fa=a._emscripten_bind_GeometryAttribute_GeometryAttribute_0=a.asm.r).apply(null,arguments)},gb=a._emscripten_bind_GeometryAttribute___destroy___0=function(){return(gb=a._emscripten_bind_GeometryAttribute___destroy___0=a.asm.s).apply(null,arguments)},Ga=a._emscripten_bind_PointAttribute_PointAttribute_0=function(){return(Ga= a._emscripten_bind_PointAttribute_PointAttribute_0=a.asm.t).apply(null,arguments)},hb=a._emscripten_bind_PointAttribute_size_0=function(){return(hb=a._emscripten_bind_PointAttribute_size_0=a.asm.u).apply(null,arguments)},ib=a._emscripten_bind_PointAttribute_GetAttributeTransformData_0=function(){return(ib=a._emscripten_bind_PointAttribute_GetAttributeTransformData_0=a.asm.v).apply(null,arguments)},jb=a._emscripten_bind_PointAttribute_attribute_type_0=function(){return(jb=a._emscripten_bind_PointAttribute_attribute_type_0= a.asm.w).apply(null,arguments)},kb=a._emscripten_bind_PointAttribute_data_type_0=function(){return(kb=a._emscripten_bind_PointAttribute_data_type_0=a.asm.x).apply(null,arguments)},lb=a._emscripten_bind_PointAttribute_num_components_0=function(){return(lb=a._emscripten_bind_PointAttribute_num_components_0=a.asm.y).apply(null,arguments)},mb=a._emscripten_bind_PointAttribute_normalized_0=function(){return(mb=a._emscripten_bind_PointAttribute_normalized_0=a.asm.z).apply(null,arguments)},nb=a._emscripten_bind_PointAttribute_byte_stride_0= function(){return(nb=a._emscripten_bind_PointAttribute_byte_stride_0=a.asm.A).apply(null,arguments)},ob=a._emscripten_bind_PointAttribute_byte_offset_0=function(){return(ob=a._emscripten_bind_PointAttribute_byte_offset_0=a.asm.B).apply(null,arguments)},pb=a._emscripten_bind_PointAttribute_unique_id_0=function(){return(pb=a._emscripten_bind_PointAttribute_unique_id_0=a.asm.C).apply(null,arguments)},qb=a._emscripten_bind_PointAttribute___destroy___0=function(){return(qb=a._emscripten_bind_PointAttribute___destroy___0= a.asm.D).apply(null,arguments)},Ha=a._emscripten_bind_AttributeQuantizationTransform_AttributeQuantizationTransform_0=function(){return(Ha=a._emscripten_bind_AttributeQuantizationTransform_AttributeQuantizationTransform_0=a.asm.E).apply(null,arguments)},rb=a._emscripten_bind_AttributeQuantizationTransform_InitFromAttribute_1=function(){return(rb=a._emscripten_bind_AttributeQuantizationTransform_InitFromAttribute_1=a.asm.F).apply(null,arguments)},sb=a._emscripten_bind_AttributeQuantizationTransform_quantization_bits_0= function(){return(sb=a._emscripten_bind_AttributeQuantizationTransform_quantization_bits_0=a.asm.G).apply(null,arguments)},tb=a._emscripten_bind_AttributeQuantizationTransform_min_value_1=function(){return(tb=a._emscripten_bind_AttributeQuantizationTransform_min_value_1=a.asm.H).apply(null,arguments)},ub=a._emscripten_bind_AttributeQuantizationTransform_range_0=function(){return(ub=a._emscripten_bind_AttributeQuantizationTransform_range_0=a.asm.I).apply(null,arguments)},vb=a._emscripten_bind_AttributeQuantizationTransform___destroy___0= function(){return(vb=a._emscripten_bind_AttributeQuantizationTransform___destroy___0=a.asm.J).apply(null,arguments)},Ia=a._emscripten_bind_AttributeOctahedronTransform_AttributeOctahedronTransform_0=function(){return(Ia=a._emscripten_bind_AttributeOctahedronTransform_AttributeOctahedronTransform_0=a.asm.K).apply(null,arguments)},wb=a._emscripten_bind_AttributeOctahedronTransform_InitFromAttribute_1=function(){return(wb=a._emscripten_bind_AttributeOctahedronTransform_InitFromAttribute_1=a.asm.L).apply(null, arguments)},xb=a._emscripten_bind_AttributeOctahedronTransform_quantization_bits_0=function(){return(xb=a._emscripten_bind_AttributeOctahedronTransform_quantization_bits_0=a.asm.M).apply(null,arguments)},yb=a._emscripten_bind_AttributeOctahedronTransform___destroy___0=function(){return(yb=a._emscripten_bind_AttributeOctahedronTransform___destroy___0=a.asm.N).apply(null,arguments)},Ja=a._emscripten_bind_PointCloud_PointCloud_0=function(){return(Ja=a._emscripten_bind_PointCloud_PointCloud_0=a.asm.O).apply(null, arguments)},zb=a._emscripten_bind_PointCloud_num_attributes_0=function(){return(zb=a._emscripten_bind_PointCloud_num_attributes_0=a.asm.P).apply(null,arguments)},Ab=a._emscripten_bind_PointCloud_num_points_0=function(){return(Ab=a._emscripten_bind_PointCloud_num_points_0=a.asm.Q).apply(null,arguments)},Bb=a._emscripten_bind_PointCloud___destroy___0=function(){return(Bb=a._emscripten_bind_PointCloud___destroy___0=a.asm.R).apply(null,arguments)},Ka=a._emscripten_bind_Mesh_Mesh_0=function(){return(Ka= a._emscripten_bind_Mesh_Mesh_0=a.asm.S).apply(null,arguments)},Cb=a._emscripten_bind_Mesh_num_faces_0=function(){return(Cb=a._emscripten_bind_Mesh_num_faces_0=a.asm.T).apply(null,arguments)},Db=a._emscripten_bind_Mesh_num_attributes_0=function(){return(Db=a._emscripten_bind_Mesh_num_attributes_0=a.asm.U).apply(null,arguments)},Eb=a._emscripten_bind_Mesh_num_points_0=function(){return(Eb=a._emscripten_bind_Mesh_num_points_0=a.asm.V).apply(null,arguments)},Fb=a._emscripten_bind_Mesh___destroy___0=function(){return(Fb= a._emscripten_bind_Mesh___destroy___0=a.asm.W).apply(null,arguments)},La=a._emscripten_bind_Metadata_Metadata_0=function(){return(La=a._emscripten_bind_Metadata_Metadata_0=a.asm.X).apply(null,arguments)},Gb=a._emscripten_bind_Metadata___destroy___0=function(){return(Gb=a._emscripten_bind_Metadata___destroy___0=a.asm.Y).apply(null,arguments)},Hb=a._emscripten_bind_Status_code_0=function(){return(Hb=a._emscripten_bind_Status_code_0=a.asm.Z).apply(null,arguments)},Ib=a._emscripten_bind_Status_ok_0=function(){return(Ib= a._emscripten_bind_Status_ok_0=a.asm._).apply(null,arguments)},Jb=a._emscripten_bind_Status_error_msg_0=function(){return(Jb=a._emscripten_bind_Status_error_msg_0=a.asm.$).apply(null,arguments)},Kb=a._emscripten_bind_Status___destroy___0=function(){return(Kb=a._emscripten_bind_Status___destroy___0=a.asm.aa).apply(null,arguments)},Ma=a._emscripten_bind_DracoFloat32Array_DracoFloat32Array_0=function(){return(Ma=a._emscripten_bind_DracoFloat32Array_DracoFloat32Array_0=a.asm.ba).apply(null,arguments)}, Lb=a._emscripten_bind_DracoFloat32Array_GetValue_1=function(){return(Lb=a._emscripten_bind_DracoFloat32Array_GetValue_1=a.asm.ca).apply(null,arguments)},Mb=a._emscripten_bind_DracoFloat32Array_size_0=function(){return(Mb=a._emscripten_bind_DracoFloat32Array_size_0=a.asm.da).apply(null,arguments)},Nb=a._emscripten_bind_DracoFloat32Array___destroy___0=function(){return(Nb=a._emscripten_bind_DracoFloat32Array___destroy___0=a.asm.ea).apply(null,arguments)},Na=a._emscripten_bind_DracoInt8Array_DracoInt8Array_0= function(){return(Na=a._emscripten_bind_DracoInt8Array_DracoInt8Array_0=a.asm.fa).apply(null,arguments)},Ob=a._emscripten_bind_DracoInt8Array_GetValue_1=function(){return(Ob=a._emscripten_bind_DracoInt8Array_GetValue_1=a.asm.ga).apply(null,arguments)},Pb=a._emscripten_bind_DracoInt8Array_size_0=function(){return(Pb=a._emscripten_bind_DracoInt8Array_size_0=a.asm.ha).apply(null,arguments)},Qb=a._emscripten_bind_DracoInt8Array___destroy___0=function(){return(Qb=a._emscripten_bind_DracoInt8Array___destroy___0= a.asm.ia).apply(null,arguments)},Oa=a._emscripten_bind_DracoUInt8Array_DracoUInt8Array_0=function(){return(Oa=a._emscripten_bind_DracoUInt8Array_DracoUInt8Array_0=a.asm.ja).apply(null,arguments)},Rb=a._emscripten_bind_DracoUInt8Array_GetValue_1=function(){return(Rb=a._emscripten_bind_DracoUInt8Array_GetValue_1=a.asm.ka).apply(null,arguments)},Sb=a._emscripten_bind_DracoUInt8Array_size_0=function(){return(Sb=a._emscripten_bind_DracoUInt8Array_size_0=a.asm.la).apply(null,arguments)},Tb=a._emscripten_bind_DracoUInt8Array___destroy___0= function(){return(Tb=a._emscripten_bind_DracoUInt8Array___destroy___0=a.asm.ma).apply(null,arguments)},Pa=a._emscripten_bind_DracoInt16Array_DracoInt16Array_0=function(){return(Pa=a._emscripten_bind_DracoInt16Array_DracoInt16Array_0=a.asm.na).apply(null,arguments)},Ub=a._emscripten_bind_DracoInt16Array_GetValue_1=function(){return(Ub=a._emscripten_bind_DracoInt16Array_GetValue_1=a.asm.oa).apply(null,arguments)},Vb=a._emscripten_bind_DracoInt16Array_size_0=function(){return(Vb=a._emscripten_bind_DracoInt16Array_size_0= a.asm.pa).apply(null,arguments)},Wb=a._emscripten_bind_DracoInt16Array___destroy___0=function(){return(Wb=a._emscripten_bind_DracoInt16Array___destroy___0=a.asm.qa).apply(null,arguments)},Qa=a._emscripten_bind_DracoUInt16Array_DracoUInt16Array_0=function(){return(Qa=a._emscripten_bind_DracoUInt16Array_DracoUInt16Array_0=a.asm.ra).apply(null,arguments)},Xb=a._emscripten_bind_DracoUInt16Array_GetValue_1=function(){return(Xb=a._emscripten_bind_DracoUInt16Array_GetValue_1=a.asm.sa).apply(null,arguments)}, Yb=a._emscripten_bind_DracoUInt16Array_size_0=function(){return(Yb=a._emscripten_bind_DracoUInt16Array_size_0=a.asm.ta).apply(null,arguments)},Zb=a._emscripten_bind_DracoUInt16Array___destroy___0=function(){return(Zb=a._emscripten_bind_DracoUInt16Array___destroy___0=a.asm.ua).apply(null,arguments)},Ra=a._emscripten_bind_DracoInt32Array_DracoInt32Array_0=function(){return(Ra=a._emscripten_bind_DracoInt32Array_DracoInt32Array_0=a.asm.va).apply(null,arguments)},$b=a._emscripten_bind_DracoInt32Array_GetValue_1= function(){return($b=a._emscripten_bind_DracoInt32Array_GetValue_1=a.asm.wa).apply(null,arguments)},ac=a._emscripten_bind_DracoInt32Array_size_0=function(){return(ac=a._emscripten_bind_DracoInt32Array_size_0=a.asm.xa).apply(null,arguments)},bc=a._emscripten_bind_DracoInt32Array___destroy___0=function(){return(bc=a._emscripten_bind_DracoInt32Array___destroy___0=a.asm.ya).apply(null,arguments)},Sa=a._emscripten_bind_DracoUInt32Array_DracoUInt32Array_0=function(){return(Sa=a._emscripten_bind_DracoUInt32Array_DracoUInt32Array_0= a.asm.za).apply(null,arguments)},cc=a._emscripten_bind_DracoUInt32Array_GetValue_1=function(){return(cc=a._emscripten_bind_DracoUInt32Array_GetValue_1=a.asm.Aa).apply(null,arguments)},dc=a._emscripten_bind_DracoUInt32Array_size_0=function(){return(dc=a._emscripten_bind_DracoUInt32Array_size_0=a.asm.Ba).apply(null,arguments)},ec=a._emscripten_bind_DracoUInt32Array___destroy___0=function(){return(ec=a._emscripten_bind_DracoUInt32Array___destroy___0=a.asm.Ca).apply(null,arguments)},Ta=a._emscripten_bind_MetadataQuerier_MetadataQuerier_0= function(){return(Ta=a._emscripten_bind_MetadataQuerier_MetadataQuerier_0=a.asm.Da).apply(null,arguments)},fc=a._emscripten_bind_MetadataQuerier_HasEntry_2=function(){return(fc=a._emscripten_bind_MetadataQuerier_HasEntry_2=a.asm.Ea).apply(null,arguments)},gc=a._emscripten_bind_MetadataQuerier_GetIntEntry_2=function(){return(gc=a._emscripten_bind_MetadataQuerier_GetIntEntry_2=a.asm.Fa).apply(null,arguments)},hc=a._emscripten_bind_MetadataQuerier_GetIntEntryArray_3=function(){return(hc=a._emscripten_bind_MetadataQuerier_GetIntEntryArray_3= a.asm.Ga).apply(null,arguments)},ic=a._emscripten_bind_MetadataQuerier_GetDoubleEntry_2=function(){return(ic=a._emscripten_bind_MetadataQuerier_GetDoubleEntry_2=a.asm.Ha).apply(null,arguments)},jc=a._emscripten_bind_MetadataQuerier_GetStringEntry_2=function(){return(jc=a._emscripten_bind_MetadataQuerier_GetStringEntry_2=a.asm.Ia).apply(null,arguments)},kc=a._emscripten_bind_MetadataQuerier_NumEntries_1=function(){return(kc=a._emscripten_bind_MetadataQuerier_NumEntries_1=a.asm.Ja).apply(null,arguments)}, lc=a._emscripten_bind_MetadataQuerier_GetEntryName_2=function(){return(lc=a._emscripten_bind_MetadataQuerier_GetEntryName_2=a.asm.Ka).apply(null,arguments)},mc=a._emscripten_bind_MetadataQuerier___destroy___0=function(){return(mc=a._emscripten_bind_MetadataQuerier___destroy___0=a.asm.La).apply(null,arguments)},Ua=a._emscripten_bind_Decoder_Decoder_0=function(){return(Ua=a._emscripten_bind_Decoder_Decoder_0=a.asm.Ma).apply(null,arguments)},nc=a._emscripten_bind_Decoder_DecodeArrayToPointCloud_3=function(){return(nc= a._emscripten_bind_Decoder_DecodeArrayToPointCloud_3=a.asm.Na).apply(null,arguments)},oc=a._emscripten_bind_Decoder_DecodeArrayToMesh_3=function(){return(oc=a._emscripten_bind_Decoder_DecodeArrayToMesh_3=a.asm.Oa).apply(null,arguments)},pc=a._emscripten_bind_Decoder_GetAttributeId_2=function(){return(pc=a._emscripten_bind_Decoder_GetAttributeId_2=a.asm.Pa).apply(null,arguments)},qc=a._emscripten_bind_Decoder_GetAttributeIdByName_2=function(){return(qc=a._emscripten_bind_Decoder_GetAttributeIdByName_2= a.asm.Qa).apply(null,arguments)},rc=a._emscripten_bind_Decoder_GetAttributeIdByMetadataEntry_3=function(){return(rc=a._emscripten_bind_Decoder_GetAttributeIdByMetadataEntry_3=a.asm.Ra).apply(null,arguments)},sc=a._emscripten_bind_Decoder_GetAttribute_2=function(){return(sc=a._emscripten_bind_Decoder_GetAttribute_2=a.asm.Sa).apply(null,arguments)},tc=a._emscripten_bind_Decoder_GetAttributeByUniqueId_2=function(){return(tc=a._emscripten_bind_Decoder_GetAttributeByUniqueId_2=a.asm.Ta).apply(null,arguments)}, uc=a._emscripten_bind_Decoder_GetMetadata_1=function(){return(uc=a._emscripten_bind_Decoder_GetMetadata_1=a.asm.Ua).apply(null,arguments)},vc=a._emscripten_bind_Decoder_GetAttributeMetadata_2=function(){return(vc=a._emscripten_bind_Decoder_GetAttributeMetadata_2=a.asm.Va).apply(null,arguments)},wc=a._emscripten_bind_Decoder_GetFaceFromMesh_3=function(){return(wc=a._emscripten_bind_Decoder_GetFaceFromMesh_3=a.asm.Wa).apply(null,arguments)},xc=a._emscripten_bind_Decoder_GetTriangleStripsFromMesh_2= function(){return(xc=a._emscripten_bind_Decoder_GetTriangleStripsFromMesh_2=a.asm.Xa).apply(null,arguments)},yc=a._emscripten_bind_Decoder_GetTrianglesUInt16Array_3=function(){return(yc=a._emscripten_bind_Decoder_GetTrianglesUInt16Array_3=a.asm.Ya).apply(null,arguments)},zc=a._emscripten_bind_Decoder_GetTrianglesUInt32Array_3=function(){return(zc=a._emscripten_bind_Decoder_GetTrianglesUInt32Array_3=a.asm.Za).apply(null,arguments)},Ac=a._emscripten_bind_Decoder_GetAttributeFloat_3=function(){return(Ac= a._emscripten_bind_Decoder_GetAttributeFloat_3=a.asm._a).apply(null,arguments)},Bc=a._emscripten_bind_Decoder_GetAttributeFloatForAllPoints_3=function(){return(Bc=a._emscripten_bind_Decoder_GetAttributeFloatForAllPoints_3=a.asm.$a).apply(null,arguments)},Cc=a._emscripten_bind_Decoder_GetAttributeIntForAllPoints_3=function(){return(Cc=a._emscripten_bind_Decoder_GetAttributeIntForAllPoints_3=a.asm.ab).apply(null,arguments)},Dc=a._emscripten_bind_Decoder_GetAttributeInt8ForAllPoints_3=function(){return(Dc= a._emscripten_bind_Decoder_GetAttributeInt8ForAllPoints_3=a.asm.bb).apply(null,arguments)},Ec=a._emscripten_bind_Decoder_GetAttributeUInt8ForAllPoints_3=function(){return(Ec=a._emscripten_bind_Decoder_GetAttributeUInt8ForAllPoints_3=a.asm.cb).apply(null,arguments)},Fc=a._emscripten_bind_Decoder_GetAttributeInt16ForAllPoints_3=function(){return(Fc=a._emscripten_bind_Decoder_GetAttributeInt16ForAllPoints_3=a.asm.db).apply(null,arguments)},Gc=a._emscripten_bind_Decoder_GetAttributeUInt16ForAllPoints_3= function(){return(Gc=a._emscripten_bind_Decoder_GetAttributeUInt16ForAllPoints_3=a.asm.eb).apply(null,arguments)},Hc=a._emscripten_bind_Decoder_GetAttributeInt32ForAllPoints_3=function(){return(Hc=a._emscripten_bind_Decoder_GetAttributeInt32ForAllPoints_3=a.asm.fb).apply(null,arguments)},Ic=a._emscripten_bind_Decoder_GetAttributeUInt32ForAllPoints_3=function(){return(Ic=a._emscripten_bind_Decoder_GetAttributeUInt32ForAllPoints_3=a.asm.gb).apply(null,arguments)},Jc=a._emscripten_bind_Decoder_GetAttributeDataArrayForAllPoints_5= function(){return(Jc=a._emscripten_bind_Decoder_GetAttributeDataArrayForAllPoints_5=a.asm.hb).apply(null,arguments)},Kc=a._emscripten_bind_Decoder_SkipAttributeTransform_1=function(){return(Kc=a._emscripten_bind_Decoder_SkipAttributeTransform_1=a.asm.ib).apply(null,arguments)},Lc=a._emscripten_bind_Decoder_GetEncodedGeometryType_Deprecated_1=function(){return(Lc=a._emscripten_bind_Decoder_GetEncodedGeometryType_Deprecated_1=a.asm.jb).apply(null,arguments)},Mc=a._emscripten_bind_Decoder_DecodeBufferToPointCloud_2= function(){return(Mc=a._emscripten_bind_Decoder_DecodeBufferToPointCloud_2=a.asm.kb).apply(null,arguments)},Nc=a._emscripten_bind_Decoder_DecodeBufferToMesh_2=function(){return(Nc=a._emscripten_bind_Decoder_DecodeBufferToMesh_2=a.asm.lb).apply(null,arguments)},Oc=a._emscripten_bind_Decoder___destroy___0=function(){return(Oc=a._emscripten_bind_Decoder___destroy___0=a.asm.mb).apply(null,arguments)},Pc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_INVALID_TRANSFORM=function(){return(Pc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_INVALID_TRANSFORM= a.asm.nb).apply(null,arguments)},Qc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_NO_TRANSFORM=function(){return(Qc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_NO_TRANSFORM=a.asm.ob).apply(null,arguments)},Rc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_QUANTIZATION_TRANSFORM=function(){return(Rc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_QUANTIZATION_TRANSFORM=a.asm.pb).apply(null,arguments)},Sc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_OCTAHEDRON_TRANSFORM= function(){return(Sc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_OCTAHEDRON_TRANSFORM=a.asm.qb).apply(null,arguments)},Tc=a._emscripten_enum_draco_GeometryAttribute_Type_INVALID=function(){return(Tc=a._emscripten_enum_draco_GeometryAttribute_Type_INVALID=a.asm.rb).apply(null,arguments)},Uc=a._emscripten_enum_draco_GeometryAttribute_Type_POSITION=function(){return(Uc=a._emscripten_enum_draco_GeometryAttribute_Type_POSITION=a.asm.sb).apply(null,arguments)},Vc=a._emscripten_enum_draco_GeometryAttribute_Type_NORMAL= function(){return(Vc=a._emscripten_enum_draco_GeometryAttribute_Type_NORMAL=a.asm.tb).apply(null,arguments)},Wc=a._emscripten_enum_draco_GeometryAttribute_Type_COLOR=function(){return(Wc=a._emscripten_enum_draco_GeometryAttribute_Type_COLOR=a.asm.ub).apply(null,arguments)},Xc=a._emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD=function(){return(Xc=a._emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD=a.asm.vb).apply(null,arguments)},Yc=a._emscripten_enum_draco_GeometryAttribute_Type_GENERIC= function(){return(Yc=a._emscripten_enum_draco_GeometryAttribute_Type_GENERIC=a.asm.wb).apply(null,arguments)},Zc=a._emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE=function(){return(Zc=a._emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE=a.asm.xb).apply(null,arguments)},$c=a._emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD=function(){return($c=a._emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD=a.asm.yb).apply(null,arguments)},ad=a._emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH= function(){return(ad=a._emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH=a.asm.zb).apply(null,arguments)},bd=a._emscripten_enum_draco_DataType_DT_INVALID=function(){return(bd=a._emscripten_enum_draco_DataType_DT_INVALID=a.asm.Ab).apply(null,arguments)},cd=a._emscripten_enum_draco_DataType_DT_INT8=function(){return(cd=a._emscripten_enum_draco_DataType_DT_INT8=a.asm.Bb).apply(null,arguments)},dd=a._emscripten_enum_draco_DataType_DT_UINT8=function(){return(dd=a._emscripten_enum_draco_DataType_DT_UINT8= a.asm.Cb).apply(null,arguments)},ed=a._emscripten_enum_draco_DataType_DT_INT16=function(){return(ed=a._emscripten_enum_draco_DataType_DT_INT16=a.asm.Db).apply(null,arguments)},fd=a._emscripten_enum_draco_DataType_DT_UINT16=function(){return(fd=a._emscripten_enum_draco_DataType_DT_UINT16=a.asm.Eb).apply(null,arguments)},gd=a._emscripten_enum_draco_DataType_DT_INT32=function(){return(gd=a._emscripten_enum_draco_DataType_DT_INT32=a.asm.Fb).apply(null,arguments)},hd=a._emscripten_enum_draco_DataType_DT_UINT32= function(){return(hd=a._emscripten_enum_draco_DataType_DT_UINT32=a.asm.Gb).apply(null,arguments)},id=a._emscripten_enum_draco_DataType_DT_INT64=function(){return(id=a._emscripten_enum_draco_DataType_DT_INT64=a.asm.Hb).apply(null,arguments)},jd=a._emscripten_enum_draco_DataType_DT_UINT64=function(){return(jd=a._emscripten_enum_draco_DataType_DT_UINT64=a.asm.Ib).apply(null,arguments)},kd=a._emscripten_enum_draco_DataType_DT_FLOAT32=function(){return(kd=a._emscripten_enum_draco_DataType_DT_FLOAT32=a.asm.Jb).apply(null, arguments)},ld=a._emscripten_enum_draco_DataType_DT_FLOAT64=function(){return(ld=a._emscripten_enum_draco_DataType_DT_FLOAT64=a.asm.Kb).apply(null,arguments)},md=a._emscripten_enum_draco_DataType_DT_BOOL=function(){return(md=a._emscripten_enum_draco_DataType_DT_BOOL=a.asm.Lb).apply(null,arguments)},nd=a._emscripten_enum_draco_DataType_DT_TYPES_COUNT=function(){return(nd=a._emscripten_enum_draco_DataType_DT_TYPES_COUNT=a.asm.Mb).apply(null,arguments)},od=a._emscripten_enum_draco_StatusCode_OK=function(){return(od= a._emscripten_enum_draco_StatusCode_OK=a.asm.Nb).apply(null,arguments)},pd=a._emscripten_enum_draco_StatusCode_DRACO_ERROR=function(){return(pd=a._emscripten_enum_draco_StatusCode_DRACO_ERROR=a.asm.Ob).apply(null,arguments)},qd=a._emscripten_enum_draco_StatusCode_IO_ERROR=function(){return(qd=a._emscripten_enum_draco_StatusCode_IO_ERROR=a.asm.Pb).apply(null,arguments)},rd=a._emscripten_enum_draco_StatusCode_INVALID_PARAMETER=function(){return(rd=a._emscripten_enum_draco_StatusCode_INVALID_PARAMETER= a.asm.Qb).apply(null,arguments)},sd=a._emscripten_enum_draco_StatusCode_UNSUPPORTED_VERSION=function(){return(sd=a._emscripten_enum_draco_StatusCode_UNSUPPORTED_VERSION=a.asm.Rb).apply(null,arguments)},td=a._emscripten_enum_draco_StatusCode_UNKNOWN_VERSION=function(){return(td=a._emscripten_enum_draco_StatusCode_UNKNOWN_VERSION=a.asm.Sb).apply(null,arguments)};a._malloc=function(){return(a._malloc=a.asm.Tb).apply(null,arguments)};a._free=function(){return(a._free=a.asm.Ub).apply(null,arguments)}; var ya=function(){return(ya=a.asm.Vb).apply(null,arguments)};a.___start_em_js=15856;a.___stop_em_js=15954;var la;ia=function b(){la||ba();la||(ia=b)};if(a.preInit)for("function"==typeof a.preInit&&(a.preInit=[a.preInit]);0=r.size?(0>>=0;switch(c.BYTES_PER_ELEMENT){case 2:d>>>=1;break;case 4:d>>>=2;break;case 8:d>>>=3}for(var g=0;gb.byteLength)return a.INVALID_GEOMETRY_TYPE;switch(b[7]){case 0:return a.POINT_CLOUD;case 1:return a.TRIANGULAR_MESH;default:return a.INVALID_GEOMETRY_TYPE}};return n.ready}}(); "object"===typeof exports&&"object"===typeof module?module.exports=DracoDecoderModule:"function"===typeof define&&define.amd?define([],function(){return DracoDecoderModule}):"object"===typeof exports&&(exports.DracoDecoderModule=DracoDecoderModule); ================================================ FILE: packages/sdk/public/libs/draco/draco_wasm_wrapper_gltf.js ================================================ var $jscomp=$jscomp||{};$jscomp.scope={};$jscomp.arrayIteratorImpl=function(h){var n=0;return function(){return n>>0,$jscomp.propertyToPolyfillSymbol[l]=$jscomp.IS_SYMBOL_NATIVE? $jscomp.global.Symbol(l):$jscomp.POLYFILL_PREFIX+k+"$"+l),$jscomp.defineProperty(p,$jscomp.propertyToPolyfillSymbol[l],{configurable:!0,writable:!0,value:n})))}; $jscomp.polyfill("Promise",function(h){function n(){this.batch_=null}function k(f){return f instanceof l?f:new l(function(q,u){q(f)})}if(h&&(!($jscomp.FORCE_POLYFILL_PROMISE||$jscomp.FORCE_POLYFILL_PROMISE_WHEN_NO_UNHANDLED_REJECTION&&"undefined"===typeof $jscomp.global.PromiseRejectionEvent)||!$jscomp.global.Promise||-1===$jscomp.global.Promise.toString().indexOf("[native code]")))return h;n.prototype.asyncExecute=function(f){if(null==this.batch_){this.batch_=[];var q=this;this.asyncExecuteFunction(function(){q.executeBatch_()})}this.batch_.push(f)}; var p=$jscomp.global.setTimeout;n.prototype.asyncExecuteFunction=function(f){p(f,0)};n.prototype.executeBatch_=function(){for(;this.batch_&&this.batch_.length;){var f=this.batch_;this.batch_=[];for(var q=0;q=y}},"es6","es3"); $jscomp.polyfill("Array.prototype.copyWithin",function(h){function n(k){k=Number(k);return Infinity===k||-Infinity===k?k:k|0}return h?h:function(k,p,l){var y=this.length;k=n(k);p=n(p);l=void 0===l?y:n(l);k=0>k?Math.max(y+k,0):Math.min(k,y);p=0>p?Math.max(y+p,0):Math.min(p,y);l=0>l?Math.max(y+l,0):Math.min(l,y);if(kp;)--l in this?this[--k]=this[l]:delete this[--k];return this}},"es6","es3"); $jscomp.typedArrayCopyWithin=function(h){return h?h:Array.prototype.copyWithin};$jscomp.polyfill("Int8Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Uint8Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Uint8ClampedArray.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Int16Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5"); $jscomp.polyfill("Uint16Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Int32Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Uint32Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Float32Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Float64Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5"); var DracoDecoderModule=function(){var h="undefined"!==typeof document&&document.currentScript?document.currentScript.src:void 0;"undefined"!==typeof __filename&&(h=h||__filename);return function(n){function k(e){return a.locateFile?a.locateFile(e,U):U+e}function p(e,b){if(e){var c=ia;var d=e+b;for(b=e;c[b]&&!(b>=d);)++b;if(16g?d+=String.fromCharCode(g):(g-=65536,d+=String.fromCharCode(55296|g>>10,56320|g&1023))}}else d+=String.fromCharCode(g)}c=d}}else c="";return c}function l(){var e=ja.buffer;a.HEAP8=W=new Int8Array(e);a.HEAP16=new Int16Array(e);a.HEAP32=ca=new Int32Array(e);a.HEAPU8=ia=new Uint8Array(e);a.HEAPU16=new Uint16Array(e);a.HEAPU32=Y=new Uint32Array(e);a.HEAPF32=new Float32Array(e);a.HEAPF64=new Float64Array(e)}function y(e){if(a.onAbort)a.onAbort(e); e="Aborted("+e+")";da(e);sa=!0;e=new WebAssembly.RuntimeError(e+". Build with -sASSERTIONS for more info.");ka(e);throw e;}function f(e){try{if(e==P&&ea)return new Uint8Array(ea);if(ma)return ma(e);throw"both async and sync fetching of the wasm failed";}catch(b){y(b)}}function q(){if(!ea&&(ta||fa)){if("function"==typeof fetch&&!P.startsWith("file://"))return fetch(P,{credentials:"same-origin"}).then(function(e){if(!e.ok)throw"failed to load wasm binary file at '"+P+"'";return e.arrayBuffer()}).catch(function(){return f(P)}); if(na)return new Promise(function(e,b){na(P,function(c){e(new Uint8Array(c))},b)})}return Promise.resolve().then(function(){return f(P)})}function u(e){for(;0>2]=b};this.get_type=function(){return Y[this.ptr+4>>2]};this.set_destructor=function(b){Y[this.ptr+8>>2]=b};this.get_destructor=function(){return Y[this.ptr+8>>2]};this.set_refcount=function(b){ca[this.ptr>>2]=b};this.set_caught=function(b){W[this.ptr+ 12>>0]=b?1:0};this.get_caught=function(){return 0!=W[this.ptr+12>>0]};this.set_rethrown=function(b){W[this.ptr+13>>0]=b?1:0};this.get_rethrown=function(){return 0!=W[this.ptr+13>>0]};this.init=function(b,c){this.set_adjusted_ptr(0);this.set_type(b);this.set_destructor(c);this.set_refcount(0);this.set_caught(!1);this.set_rethrown(!1)};this.add_ref=function(){ca[this.ptr>>2]+=1};this.release_ref=function(){var b=ca[this.ptr>>2];ca[this.ptr>>2]=b-1;return 1===b};this.set_adjusted_ptr=function(b){Y[this.ptr+ 16>>2]=b};this.get_adjusted_ptr=function(){return Y[this.ptr+16>>2]};this.get_exception_ptr=function(){if(ua(this.get_type()))return Y[this.excPtr>>2];var b=this.get_adjusted_ptr();return 0!==b?b:this.excPtr}}function F(){function e(){if(!la&&(la=!0,a.calledRun=!0,!sa)){va=!0;u(oa);wa(a);if(a.onRuntimeInitialized)a.onRuntimeInitialized();if(a.postRun)for("function"==typeof a.postRun&&(a.postRun=[a.postRun]);a.postRun.length;)xa.unshift(a.postRun.shift());u(xa)}}if(!(0=d?b++:2047>=d?b+=2:55296<=d&&57343>= d?(b+=4,++c):b+=3}b=Array(b+1);c=0;d=b.length;if(0=t){var aa=e.charCodeAt(++g);t=65536+((t&1023)<<10)|aa&1023}if(127>=t){if(c>=d)break;b[c++]=t}else{if(2047>=t){if(c+1>=d)break;b[c++]=192|t>>6}else{if(65535>=t){if(c+2>=d)break;b[c++]=224|t>>12}else{if(c+3>=d)break;b[c++]=240|t>>18;b[c++]=128|t>>12&63}b[c++]=128|t>>6&63}b[c++]=128|t&63}}b[c]=0}e=r.alloc(b,W);r.copy(b,W,e);return e}return e}function Z(e){if("object"=== typeof e){var b=r.alloc(e,W);r.copy(e,W,b);return b}return e}function X(){throw"cannot construct a VoidPtr, no constructor in IDL";}function S(){this.ptr=za();w(S)[this.ptr]=this}function Q(){this.ptr=Aa();w(Q)[this.ptr]=this}function V(){this.ptr=Ba();w(V)[this.ptr]=this}function x(){this.ptr=Ca();w(x)[this.ptr]=this}function D(){this.ptr=Da();w(D)[this.ptr]=this}function G(){this.ptr=Ea();w(G)[this.ptr]=this}function H(){this.ptr=Fa();w(H)[this.ptr]=this}function E(){this.ptr=Ga();w(E)[this.ptr]= this}function T(){this.ptr=Ha();w(T)[this.ptr]=this}function C(){throw"cannot construct a Status, no constructor in IDL";}function I(){this.ptr=Ia();w(I)[this.ptr]=this}function J(){this.ptr=Ja();w(J)[this.ptr]=this}function K(){this.ptr=Ka();w(K)[this.ptr]=this}function L(){this.ptr=La();w(L)[this.ptr]=this}function M(){this.ptr=Ma();w(M)[this.ptr]=this}function N(){this.ptr=Na();w(N)[this.ptr]=this}function O(){this.ptr=Oa();w(O)[this.ptr]=this}function z(){this.ptr=Pa();w(z)[this.ptr]=this}function m(){this.ptr= Qa();w(m)[this.ptr]=this}n=void 0===n?{}:n;var a="undefined"!=typeof n?n:{},wa,ka;a.ready=new Promise(function(e,b){wa=e;ka=b});var Ra=!1,Sa=!1;a.onRuntimeInitialized=function(){Ra=!0;if(Sa&&"function"===typeof a.onModuleLoaded)a.onModuleLoaded(a)};a.onModuleParsed=function(){Sa=!0;if(Ra&&"function"===typeof a.onModuleLoaded)a.onModuleLoaded(a)};a.isVersionSupported=function(e){if("string"!==typeof e)return!1;e=e.split(".");return 2>e.length||3=e[1]?!0:0!=e[0]||10< e[1]?!1:!0};var Ta=Object.assign({},a),ta="object"==typeof window,fa="function"==typeof importScripts,Ua="object"==typeof process&&"object"==typeof process.versions&&"string"==typeof process.versions.node,U="";if(Ua){var Va=require("fs"),pa=require("path");U=fa?pa.dirname(U)+"/":__dirname+"/";var Wa=function(e,b){e=e.startsWith("file://")?new URL(e):pa.normalize(e);return Va.readFileSync(e,b?void 0:"utf8")};var ma=function(e){e=Wa(e,!0);e.buffer||(e=new Uint8Array(e));return e};var na=function(e, b,c){e=e.startsWith("file://")?new URL(e):pa.normalize(e);Va.readFile(e,function(d,g){d?c(d):b(g.buffer)})};1>>=0;if(2147483648=c;c*=2){var d=b*(1+.2/c);d=Math.min(d,e+100663296);var g=Math;d=Math.max(e,d);g=g.min.call(g,2147483648,d+(65536-d%65536)%65536);a:{d=ja.buffer;try{ja.grow(g-d.byteLength+65535>>>16);l();var t=1;break a}catch(aa){}t=void 0}if(t)return!0}return!1}};(function(){function e(g,t){a.asm=g.exports;ja=a.asm.e;l();oa.unshift(a.asm.f);ba--;a.monitorRunDependencies&&a.monitorRunDependencies(ba);0==ba&&(null!==qa&&(clearInterval(qa),qa=null),ha&&(g=ha,ha=null,g()))}function b(g){e(g.instance)} function c(g){return q().then(function(t){return WebAssembly.instantiate(t,d)}).then(function(t){return t}).then(g,function(t){da("failed to asynchronously prepare wasm: "+t);y(t)})}var d={a:qd};ba++;a.monitorRunDependencies&&a.monitorRunDependencies(ba);if(a.instantiateWasm)try{return a.instantiateWasm(d,e)}catch(g){da("Module.instantiateWasm callback failed with error: "+g),ka(g)}(function(){return ea||"function"!=typeof WebAssembly.instantiateStreaming||P.startsWith("data:application/octet-stream;base64,")|| P.startsWith("file://")||Ua||"function"!=typeof fetch?c(b):fetch(P,{credentials:"same-origin"}).then(function(g){return WebAssembly.instantiateStreaming(g,d).then(b,function(t){da("wasm streaming compile failed: "+t);da("falling back to ArrayBuffer instantiation");return c(b)})})})().catch(ka);return{}})();var Xa=a._emscripten_bind_VoidPtr___destroy___0=function(){return(Xa=a._emscripten_bind_VoidPtr___destroy___0=a.asm.h).apply(null,arguments)},za=a._emscripten_bind_DecoderBuffer_DecoderBuffer_0= function(){return(za=a._emscripten_bind_DecoderBuffer_DecoderBuffer_0=a.asm.i).apply(null,arguments)},Ya=a._emscripten_bind_DecoderBuffer_Init_2=function(){return(Ya=a._emscripten_bind_DecoderBuffer_Init_2=a.asm.j).apply(null,arguments)},Za=a._emscripten_bind_DecoderBuffer___destroy___0=function(){return(Za=a._emscripten_bind_DecoderBuffer___destroy___0=a.asm.k).apply(null,arguments)},Aa=a._emscripten_bind_AttributeTransformData_AttributeTransformData_0=function(){return(Aa=a._emscripten_bind_AttributeTransformData_AttributeTransformData_0= a.asm.l).apply(null,arguments)},$a=a._emscripten_bind_AttributeTransformData_transform_type_0=function(){return($a=a._emscripten_bind_AttributeTransformData_transform_type_0=a.asm.m).apply(null,arguments)},ab=a._emscripten_bind_AttributeTransformData___destroy___0=function(){return(ab=a._emscripten_bind_AttributeTransformData___destroy___0=a.asm.n).apply(null,arguments)},Ba=a._emscripten_bind_GeometryAttribute_GeometryAttribute_0=function(){return(Ba=a._emscripten_bind_GeometryAttribute_GeometryAttribute_0= a.asm.o).apply(null,arguments)},bb=a._emscripten_bind_GeometryAttribute___destroy___0=function(){return(bb=a._emscripten_bind_GeometryAttribute___destroy___0=a.asm.p).apply(null,arguments)},Ca=a._emscripten_bind_PointAttribute_PointAttribute_0=function(){return(Ca=a._emscripten_bind_PointAttribute_PointAttribute_0=a.asm.q).apply(null,arguments)},cb=a._emscripten_bind_PointAttribute_size_0=function(){return(cb=a._emscripten_bind_PointAttribute_size_0=a.asm.r).apply(null,arguments)},db=a._emscripten_bind_PointAttribute_GetAttributeTransformData_0= function(){return(db=a._emscripten_bind_PointAttribute_GetAttributeTransformData_0=a.asm.s).apply(null,arguments)},eb=a._emscripten_bind_PointAttribute_attribute_type_0=function(){return(eb=a._emscripten_bind_PointAttribute_attribute_type_0=a.asm.t).apply(null,arguments)},fb=a._emscripten_bind_PointAttribute_data_type_0=function(){return(fb=a._emscripten_bind_PointAttribute_data_type_0=a.asm.u).apply(null,arguments)},gb=a._emscripten_bind_PointAttribute_num_components_0=function(){return(gb=a._emscripten_bind_PointAttribute_num_components_0= a.asm.v).apply(null,arguments)},hb=a._emscripten_bind_PointAttribute_normalized_0=function(){return(hb=a._emscripten_bind_PointAttribute_normalized_0=a.asm.w).apply(null,arguments)},ib=a._emscripten_bind_PointAttribute_byte_stride_0=function(){return(ib=a._emscripten_bind_PointAttribute_byte_stride_0=a.asm.x).apply(null,arguments)},jb=a._emscripten_bind_PointAttribute_byte_offset_0=function(){return(jb=a._emscripten_bind_PointAttribute_byte_offset_0=a.asm.y).apply(null,arguments)},kb=a._emscripten_bind_PointAttribute_unique_id_0= function(){return(kb=a._emscripten_bind_PointAttribute_unique_id_0=a.asm.z).apply(null,arguments)},lb=a._emscripten_bind_PointAttribute___destroy___0=function(){return(lb=a._emscripten_bind_PointAttribute___destroy___0=a.asm.A).apply(null,arguments)},Da=a._emscripten_bind_AttributeQuantizationTransform_AttributeQuantizationTransform_0=function(){return(Da=a._emscripten_bind_AttributeQuantizationTransform_AttributeQuantizationTransform_0=a.asm.B).apply(null,arguments)},mb=a._emscripten_bind_AttributeQuantizationTransform_InitFromAttribute_1= function(){return(mb=a._emscripten_bind_AttributeQuantizationTransform_InitFromAttribute_1=a.asm.C).apply(null,arguments)},nb=a._emscripten_bind_AttributeQuantizationTransform_quantization_bits_0=function(){return(nb=a._emscripten_bind_AttributeQuantizationTransform_quantization_bits_0=a.asm.D).apply(null,arguments)},ob=a._emscripten_bind_AttributeQuantizationTransform_min_value_1=function(){return(ob=a._emscripten_bind_AttributeQuantizationTransform_min_value_1=a.asm.E).apply(null,arguments)},pb= a._emscripten_bind_AttributeQuantizationTransform_range_0=function(){return(pb=a._emscripten_bind_AttributeQuantizationTransform_range_0=a.asm.F).apply(null,arguments)},qb=a._emscripten_bind_AttributeQuantizationTransform___destroy___0=function(){return(qb=a._emscripten_bind_AttributeQuantizationTransform___destroy___0=a.asm.G).apply(null,arguments)},Ea=a._emscripten_bind_AttributeOctahedronTransform_AttributeOctahedronTransform_0=function(){return(Ea=a._emscripten_bind_AttributeOctahedronTransform_AttributeOctahedronTransform_0= a.asm.H).apply(null,arguments)},rb=a._emscripten_bind_AttributeOctahedronTransform_InitFromAttribute_1=function(){return(rb=a._emscripten_bind_AttributeOctahedronTransform_InitFromAttribute_1=a.asm.I).apply(null,arguments)},sb=a._emscripten_bind_AttributeOctahedronTransform_quantization_bits_0=function(){return(sb=a._emscripten_bind_AttributeOctahedronTransform_quantization_bits_0=a.asm.J).apply(null,arguments)},tb=a._emscripten_bind_AttributeOctahedronTransform___destroy___0=function(){return(tb= a._emscripten_bind_AttributeOctahedronTransform___destroy___0=a.asm.K).apply(null,arguments)},Fa=a._emscripten_bind_PointCloud_PointCloud_0=function(){return(Fa=a._emscripten_bind_PointCloud_PointCloud_0=a.asm.L).apply(null,arguments)},ub=a._emscripten_bind_PointCloud_num_attributes_0=function(){return(ub=a._emscripten_bind_PointCloud_num_attributes_0=a.asm.M).apply(null,arguments)},vb=a._emscripten_bind_PointCloud_num_points_0=function(){return(vb=a._emscripten_bind_PointCloud_num_points_0=a.asm.N).apply(null, arguments)},wb=a._emscripten_bind_PointCloud___destroy___0=function(){return(wb=a._emscripten_bind_PointCloud___destroy___0=a.asm.O).apply(null,arguments)},Ga=a._emscripten_bind_Mesh_Mesh_0=function(){return(Ga=a._emscripten_bind_Mesh_Mesh_0=a.asm.P).apply(null,arguments)},xb=a._emscripten_bind_Mesh_num_faces_0=function(){return(xb=a._emscripten_bind_Mesh_num_faces_0=a.asm.Q).apply(null,arguments)},yb=a._emscripten_bind_Mesh_num_attributes_0=function(){return(yb=a._emscripten_bind_Mesh_num_attributes_0= a.asm.R).apply(null,arguments)},zb=a._emscripten_bind_Mesh_num_points_0=function(){return(zb=a._emscripten_bind_Mesh_num_points_0=a.asm.S).apply(null,arguments)},Ab=a._emscripten_bind_Mesh___destroy___0=function(){return(Ab=a._emscripten_bind_Mesh___destroy___0=a.asm.T).apply(null,arguments)},Ha=a._emscripten_bind_Metadata_Metadata_0=function(){return(Ha=a._emscripten_bind_Metadata_Metadata_0=a.asm.U).apply(null,arguments)},Bb=a._emscripten_bind_Metadata___destroy___0=function(){return(Bb=a._emscripten_bind_Metadata___destroy___0= a.asm.V).apply(null,arguments)},Cb=a._emscripten_bind_Status_code_0=function(){return(Cb=a._emscripten_bind_Status_code_0=a.asm.W).apply(null,arguments)},Db=a._emscripten_bind_Status_ok_0=function(){return(Db=a._emscripten_bind_Status_ok_0=a.asm.X).apply(null,arguments)},Eb=a._emscripten_bind_Status_error_msg_0=function(){return(Eb=a._emscripten_bind_Status_error_msg_0=a.asm.Y).apply(null,arguments)},Fb=a._emscripten_bind_Status___destroy___0=function(){return(Fb=a._emscripten_bind_Status___destroy___0= a.asm.Z).apply(null,arguments)},Ia=a._emscripten_bind_DracoFloat32Array_DracoFloat32Array_0=function(){return(Ia=a._emscripten_bind_DracoFloat32Array_DracoFloat32Array_0=a.asm._).apply(null,arguments)},Gb=a._emscripten_bind_DracoFloat32Array_GetValue_1=function(){return(Gb=a._emscripten_bind_DracoFloat32Array_GetValue_1=a.asm.$).apply(null,arguments)},Hb=a._emscripten_bind_DracoFloat32Array_size_0=function(){return(Hb=a._emscripten_bind_DracoFloat32Array_size_0=a.asm.aa).apply(null,arguments)},Ib= a._emscripten_bind_DracoFloat32Array___destroy___0=function(){return(Ib=a._emscripten_bind_DracoFloat32Array___destroy___0=a.asm.ba).apply(null,arguments)},Ja=a._emscripten_bind_DracoInt8Array_DracoInt8Array_0=function(){return(Ja=a._emscripten_bind_DracoInt8Array_DracoInt8Array_0=a.asm.ca).apply(null,arguments)},Jb=a._emscripten_bind_DracoInt8Array_GetValue_1=function(){return(Jb=a._emscripten_bind_DracoInt8Array_GetValue_1=a.asm.da).apply(null,arguments)},Kb=a._emscripten_bind_DracoInt8Array_size_0= function(){return(Kb=a._emscripten_bind_DracoInt8Array_size_0=a.asm.ea).apply(null,arguments)},Lb=a._emscripten_bind_DracoInt8Array___destroy___0=function(){return(Lb=a._emscripten_bind_DracoInt8Array___destroy___0=a.asm.fa).apply(null,arguments)},Ka=a._emscripten_bind_DracoUInt8Array_DracoUInt8Array_0=function(){return(Ka=a._emscripten_bind_DracoUInt8Array_DracoUInt8Array_0=a.asm.ga).apply(null,arguments)},Mb=a._emscripten_bind_DracoUInt8Array_GetValue_1=function(){return(Mb=a._emscripten_bind_DracoUInt8Array_GetValue_1= a.asm.ha).apply(null,arguments)},Nb=a._emscripten_bind_DracoUInt8Array_size_0=function(){return(Nb=a._emscripten_bind_DracoUInt8Array_size_0=a.asm.ia).apply(null,arguments)},Ob=a._emscripten_bind_DracoUInt8Array___destroy___0=function(){return(Ob=a._emscripten_bind_DracoUInt8Array___destroy___0=a.asm.ja).apply(null,arguments)},La=a._emscripten_bind_DracoInt16Array_DracoInt16Array_0=function(){return(La=a._emscripten_bind_DracoInt16Array_DracoInt16Array_0=a.asm.ka).apply(null,arguments)},Pb=a._emscripten_bind_DracoInt16Array_GetValue_1= function(){return(Pb=a._emscripten_bind_DracoInt16Array_GetValue_1=a.asm.la).apply(null,arguments)},Qb=a._emscripten_bind_DracoInt16Array_size_0=function(){return(Qb=a._emscripten_bind_DracoInt16Array_size_0=a.asm.ma).apply(null,arguments)},Rb=a._emscripten_bind_DracoInt16Array___destroy___0=function(){return(Rb=a._emscripten_bind_DracoInt16Array___destroy___0=a.asm.na).apply(null,arguments)},Ma=a._emscripten_bind_DracoUInt16Array_DracoUInt16Array_0=function(){return(Ma=a._emscripten_bind_DracoUInt16Array_DracoUInt16Array_0= a.asm.oa).apply(null,arguments)},Sb=a._emscripten_bind_DracoUInt16Array_GetValue_1=function(){return(Sb=a._emscripten_bind_DracoUInt16Array_GetValue_1=a.asm.pa).apply(null,arguments)},Tb=a._emscripten_bind_DracoUInt16Array_size_0=function(){return(Tb=a._emscripten_bind_DracoUInt16Array_size_0=a.asm.qa).apply(null,arguments)},Ub=a._emscripten_bind_DracoUInt16Array___destroy___0=function(){return(Ub=a._emscripten_bind_DracoUInt16Array___destroy___0=a.asm.ra).apply(null,arguments)},Na=a._emscripten_bind_DracoInt32Array_DracoInt32Array_0= function(){return(Na=a._emscripten_bind_DracoInt32Array_DracoInt32Array_0=a.asm.sa).apply(null,arguments)},Vb=a._emscripten_bind_DracoInt32Array_GetValue_1=function(){return(Vb=a._emscripten_bind_DracoInt32Array_GetValue_1=a.asm.ta).apply(null,arguments)},Wb=a._emscripten_bind_DracoInt32Array_size_0=function(){return(Wb=a._emscripten_bind_DracoInt32Array_size_0=a.asm.ua).apply(null,arguments)},Xb=a._emscripten_bind_DracoInt32Array___destroy___0=function(){return(Xb=a._emscripten_bind_DracoInt32Array___destroy___0= a.asm.va).apply(null,arguments)},Oa=a._emscripten_bind_DracoUInt32Array_DracoUInt32Array_0=function(){return(Oa=a._emscripten_bind_DracoUInt32Array_DracoUInt32Array_0=a.asm.wa).apply(null,arguments)},Yb=a._emscripten_bind_DracoUInt32Array_GetValue_1=function(){return(Yb=a._emscripten_bind_DracoUInt32Array_GetValue_1=a.asm.xa).apply(null,arguments)},Zb=a._emscripten_bind_DracoUInt32Array_size_0=function(){return(Zb=a._emscripten_bind_DracoUInt32Array_size_0=a.asm.ya).apply(null,arguments)},$b=a._emscripten_bind_DracoUInt32Array___destroy___0= function(){return($b=a._emscripten_bind_DracoUInt32Array___destroy___0=a.asm.za).apply(null,arguments)},Pa=a._emscripten_bind_MetadataQuerier_MetadataQuerier_0=function(){return(Pa=a._emscripten_bind_MetadataQuerier_MetadataQuerier_0=a.asm.Aa).apply(null,arguments)},ac=a._emscripten_bind_MetadataQuerier_HasEntry_2=function(){return(ac=a._emscripten_bind_MetadataQuerier_HasEntry_2=a.asm.Ba).apply(null,arguments)},bc=a._emscripten_bind_MetadataQuerier_GetIntEntry_2=function(){return(bc=a._emscripten_bind_MetadataQuerier_GetIntEntry_2= a.asm.Ca).apply(null,arguments)},cc=a._emscripten_bind_MetadataQuerier_GetIntEntryArray_3=function(){return(cc=a._emscripten_bind_MetadataQuerier_GetIntEntryArray_3=a.asm.Da).apply(null,arguments)},dc=a._emscripten_bind_MetadataQuerier_GetDoubleEntry_2=function(){return(dc=a._emscripten_bind_MetadataQuerier_GetDoubleEntry_2=a.asm.Ea).apply(null,arguments)},ec=a._emscripten_bind_MetadataQuerier_GetStringEntry_2=function(){return(ec=a._emscripten_bind_MetadataQuerier_GetStringEntry_2=a.asm.Fa).apply(null, arguments)},fc=a._emscripten_bind_MetadataQuerier_NumEntries_1=function(){return(fc=a._emscripten_bind_MetadataQuerier_NumEntries_1=a.asm.Ga).apply(null,arguments)},gc=a._emscripten_bind_MetadataQuerier_GetEntryName_2=function(){return(gc=a._emscripten_bind_MetadataQuerier_GetEntryName_2=a.asm.Ha).apply(null,arguments)},hc=a._emscripten_bind_MetadataQuerier___destroy___0=function(){return(hc=a._emscripten_bind_MetadataQuerier___destroy___0=a.asm.Ia).apply(null,arguments)},Qa=a._emscripten_bind_Decoder_Decoder_0= function(){return(Qa=a._emscripten_bind_Decoder_Decoder_0=a.asm.Ja).apply(null,arguments)},ic=a._emscripten_bind_Decoder_DecodeArrayToPointCloud_3=function(){return(ic=a._emscripten_bind_Decoder_DecodeArrayToPointCloud_3=a.asm.Ka).apply(null,arguments)},jc=a._emscripten_bind_Decoder_DecodeArrayToMesh_3=function(){return(jc=a._emscripten_bind_Decoder_DecodeArrayToMesh_3=a.asm.La).apply(null,arguments)},kc=a._emscripten_bind_Decoder_GetAttributeId_2=function(){return(kc=a._emscripten_bind_Decoder_GetAttributeId_2= a.asm.Ma).apply(null,arguments)},lc=a._emscripten_bind_Decoder_GetAttributeIdByName_2=function(){return(lc=a._emscripten_bind_Decoder_GetAttributeIdByName_2=a.asm.Na).apply(null,arguments)},mc=a._emscripten_bind_Decoder_GetAttributeIdByMetadataEntry_3=function(){return(mc=a._emscripten_bind_Decoder_GetAttributeIdByMetadataEntry_3=a.asm.Oa).apply(null,arguments)},nc=a._emscripten_bind_Decoder_GetAttribute_2=function(){return(nc=a._emscripten_bind_Decoder_GetAttribute_2=a.asm.Pa).apply(null,arguments)}, oc=a._emscripten_bind_Decoder_GetAttributeByUniqueId_2=function(){return(oc=a._emscripten_bind_Decoder_GetAttributeByUniqueId_2=a.asm.Qa).apply(null,arguments)},pc=a._emscripten_bind_Decoder_GetMetadata_1=function(){return(pc=a._emscripten_bind_Decoder_GetMetadata_1=a.asm.Ra).apply(null,arguments)},qc=a._emscripten_bind_Decoder_GetAttributeMetadata_2=function(){return(qc=a._emscripten_bind_Decoder_GetAttributeMetadata_2=a.asm.Sa).apply(null,arguments)},rc=a._emscripten_bind_Decoder_GetFaceFromMesh_3= function(){return(rc=a._emscripten_bind_Decoder_GetFaceFromMesh_3=a.asm.Ta).apply(null,arguments)},sc=a._emscripten_bind_Decoder_GetTriangleStripsFromMesh_2=function(){return(sc=a._emscripten_bind_Decoder_GetTriangleStripsFromMesh_2=a.asm.Ua).apply(null,arguments)},tc=a._emscripten_bind_Decoder_GetTrianglesUInt16Array_3=function(){return(tc=a._emscripten_bind_Decoder_GetTrianglesUInt16Array_3=a.asm.Va).apply(null,arguments)},uc=a._emscripten_bind_Decoder_GetTrianglesUInt32Array_3=function(){return(uc= a._emscripten_bind_Decoder_GetTrianglesUInt32Array_3=a.asm.Wa).apply(null,arguments)},vc=a._emscripten_bind_Decoder_GetAttributeFloat_3=function(){return(vc=a._emscripten_bind_Decoder_GetAttributeFloat_3=a.asm.Xa).apply(null,arguments)},wc=a._emscripten_bind_Decoder_GetAttributeFloatForAllPoints_3=function(){return(wc=a._emscripten_bind_Decoder_GetAttributeFloatForAllPoints_3=a.asm.Ya).apply(null,arguments)},xc=a._emscripten_bind_Decoder_GetAttributeIntForAllPoints_3=function(){return(xc=a._emscripten_bind_Decoder_GetAttributeIntForAllPoints_3= a.asm.Za).apply(null,arguments)},yc=a._emscripten_bind_Decoder_GetAttributeInt8ForAllPoints_3=function(){return(yc=a._emscripten_bind_Decoder_GetAttributeInt8ForAllPoints_3=a.asm._a).apply(null,arguments)},zc=a._emscripten_bind_Decoder_GetAttributeUInt8ForAllPoints_3=function(){return(zc=a._emscripten_bind_Decoder_GetAttributeUInt8ForAllPoints_3=a.asm.$a).apply(null,arguments)},Ac=a._emscripten_bind_Decoder_GetAttributeInt16ForAllPoints_3=function(){return(Ac=a._emscripten_bind_Decoder_GetAttributeInt16ForAllPoints_3= a.asm.ab).apply(null,arguments)},Bc=a._emscripten_bind_Decoder_GetAttributeUInt16ForAllPoints_3=function(){return(Bc=a._emscripten_bind_Decoder_GetAttributeUInt16ForAllPoints_3=a.asm.bb).apply(null,arguments)},Cc=a._emscripten_bind_Decoder_GetAttributeInt32ForAllPoints_3=function(){return(Cc=a._emscripten_bind_Decoder_GetAttributeInt32ForAllPoints_3=a.asm.cb).apply(null,arguments)},Dc=a._emscripten_bind_Decoder_GetAttributeUInt32ForAllPoints_3=function(){return(Dc=a._emscripten_bind_Decoder_GetAttributeUInt32ForAllPoints_3= a.asm.db).apply(null,arguments)},Ec=a._emscripten_bind_Decoder_GetAttributeDataArrayForAllPoints_5=function(){return(Ec=a._emscripten_bind_Decoder_GetAttributeDataArrayForAllPoints_5=a.asm.eb).apply(null,arguments)},Fc=a._emscripten_bind_Decoder_SkipAttributeTransform_1=function(){return(Fc=a._emscripten_bind_Decoder_SkipAttributeTransform_1=a.asm.fb).apply(null,arguments)},Gc=a._emscripten_bind_Decoder_GetEncodedGeometryType_Deprecated_1=function(){return(Gc=a._emscripten_bind_Decoder_GetEncodedGeometryType_Deprecated_1= a.asm.gb).apply(null,arguments)},Hc=a._emscripten_bind_Decoder_DecodeBufferToPointCloud_2=function(){return(Hc=a._emscripten_bind_Decoder_DecodeBufferToPointCloud_2=a.asm.hb).apply(null,arguments)},Ic=a._emscripten_bind_Decoder_DecodeBufferToMesh_2=function(){return(Ic=a._emscripten_bind_Decoder_DecodeBufferToMesh_2=a.asm.ib).apply(null,arguments)},Jc=a._emscripten_bind_Decoder___destroy___0=function(){return(Jc=a._emscripten_bind_Decoder___destroy___0=a.asm.jb).apply(null,arguments)},Kc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_INVALID_TRANSFORM= function(){return(Kc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_INVALID_TRANSFORM=a.asm.kb).apply(null,arguments)},Lc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_NO_TRANSFORM=function(){return(Lc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_NO_TRANSFORM=a.asm.lb).apply(null,arguments)},Mc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_QUANTIZATION_TRANSFORM=function(){return(Mc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_QUANTIZATION_TRANSFORM= a.asm.mb).apply(null,arguments)},Nc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_OCTAHEDRON_TRANSFORM=function(){return(Nc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_OCTAHEDRON_TRANSFORM=a.asm.nb).apply(null,arguments)},Oc=a._emscripten_enum_draco_GeometryAttribute_Type_INVALID=function(){return(Oc=a._emscripten_enum_draco_GeometryAttribute_Type_INVALID=a.asm.ob).apply(null,arguments)},Pc=a._emscripten_enum_draco_GeometryAttribute_Type_POSITION=function(){return(Pc=a._emscripten_enum_draco_GeometryAttribute_Type_POSITION= a.asm.pb).apply(null,arguments)},Qc=a._emscripten_enum_draco_GeometryAttribute_Type_NORMAL=function(){return(Qc=a._emscripten_enum_draco_GeometryAttribute_Type_NORMAL=a.asm.qb).apply(null,arguments)},Rc=a._emscripten_enum_draco_GeometryAttribute_Type_COLOR=function(){return(Rc=a._emscripten_enum_draco_GeometryAttribute_Type_COLOR=a.asm.rb).apply(null,arguments)},Sc=a._emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD=function(){return(Sc=a._emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD= a.asm.sb).apply(null,arguments)},Tc=a._emscripten_enum_draco_GeometryAttribute_Type_GENERIC=function(){return(Tc=a._emscripten_enum_draco_GeometryAttribute_Type_GENERIC=a.asm.tb).apply(null,arguments)},Uc=a._emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE=function(){return(Uc=a._emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE=a.asm.ub).apply(null,arguments)},Vc=a._emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD=function(){return(Vc=a._emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD= a.asm.vb).apply(null,arguments)},Wc=a._emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH=function(){return(Wc=a._emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH=a.asm.wb).apply(null,arguments)},Xc=a._emscripten_enum_draco_DataType_DT_INVALID=function(){return(Xc=a._emscripten_enum_draco_DataType_DT_INVALID=a.asm.xb).apply(null,arguments)},Yc=a._emscripten_enum_draco_DataType_DT_INT8=function(){return(Yc=a._emscripten_enum_draco_DataType_DT_INT8=a.asm.yb).apply(null,arguments)},Zc= a._emscripten_enum_draco_DataType_DT_UINT8=function(){return(Zc=a._emscripten_enum_draco_DataType_DT_UINT8=a.asm.zb).apply(null,arguments)},$c=a._emscripten_enum_draco_DataType_DT_INT16=function(){return($c=a._emscripten_enum_draco_DataType_DT_INT16=a.asm.Ab).apply(null,arguments)},ad=a._emscripten_enum_draco_DataType_DT_UINT16=function(){return(ad=a._emscripten_enum_draco_DataType_DT_UINT16=a.asm.Bb).apply(null,arguments)},bd=a._emscripten_enum_draco_DataType_DT_INT32=function(){return(bd=a._emscripten_enum_draco_DataType_DT_INT32= a.asm.Cb).apply(null,arguments)},cd=a._emscripten_enum_draco_DataType_DT_UINT32=function(){return(cd=a._emscripten_enum_draco_DataType_DT_UINT32=a.asm.Db).apply(null,arguments)},dd=a._emscripten_enum_draco_DataType_DT_INT64=function(){return(dd=a._emscripten_enum_draco_DataType_DT_INT64=a.asm.Eb).apply(null,arguments)},ed=a._emscripten_enum_draco_DataType_DT_UINT64=function(){return(ed=a._emscripten_enum_draco_DataType_DT_UINT64=a.asm.Fb).apply(null,arguments)},fd=a._emscripten_enum_draco_DataType_DT_FLOAT32= function(){return(fd=a._emscripten_enum_draco_DataType_DT_FLOAT32=a.asm.Gb).apply(null,arguments)},gd=a._emscripten_enum_draco_DataType_DT_FLOAT64=function(){return(gd=a._emscripten_enum_draco_DataType_DT_FLOAT64=a.asm.Hb).apply(null,arguments)},hd=a._emscripten_enum_draco_DataType_DT_BOOL=function(){return(hd=a._emscripten_enum_draco_DataType_DT_BOOL=a.asm.Ib).apply(null,arguments)},id=a._emscripten_enum_draco_DataType_DT_TYPES_COUNT=function(){return(id=a._emscripten_enum_draco_DataType_DT_TYPES_COUNT= a.asm.Jb).apply(null,arguments)},jd=a._emscripten_enum_draco_StatusCode_OK=function(){return(jd=a._emscripten_enum_draco_StatusCode_OK=a.asm.Kb).apply(null,arguments)},kd=a._emscripten_enum_draco_StatusCode_DRACO_ERROR=function(){return(kd=a._emscripten_enum_draco_StatusCode_DRACO_ERROR=a.asm.Lb).apply(null,arguments)},ld=a._emscripten_enum_draco_StatusCode_IO_ERROR=function(){return(ld=a._emscripten_enum_draco_StatusCode_IO_ERROR=a.asm.Mb).apply(null,arguments)},md=a._emscripten_enum_draco_StatusCode_INVALID_PARAMETER= function(){return(md=a._emscripten_enum_draco_StatusCode_INVALID_PARAMETER=a.asm.Nb).apply(null,arguments)},nd=a._emscripten_enum_draco_StatusCode_UNSUPPORTED_VERSION=function(){return(nd=a._emscripten_enum_draco_StatusCode_UNSUPPORTED_VERSION=a.asm.Ob).apply(null,arguments)},od=a._emscripten_enum_draco_StatusCode_UNKNOWN_VERSION=function(){return(od=a._emscripten_enum_draco_StatusCode_UNKNOWN_VERSION=a.asm.Pb).apply(null,arguments)};a._malloc=function(){return(a._malloc=a.asm.Qb).apply(null,arguments)}; a._free=function(){return(a._free=a.asm.Rb).apply(null,arguments)};var ua=function(){return(ua=a.asm.Sb).apply(null,arguments)};a.___start_em_js=11660;a.___stop_em_js=11758;var la;ha=function b(){la||F();la||(ha=b)};if(a.preInit)for("function"==typeof a.preInit&&(a.preInit=[a.preInit]);0=r.size?(0>>=0;switch(c.BYTES_PER_ELEMENT){case 2:d>>>=1;break;case 4:d>>>=2;break;case 8:d>>>=3}for(var g=0;gb.byteLength)return a.INVALID_GEOMETRY_TYPE;switch(b[7]){case 0:return a.POINT_CLOUD;case 1:return a.TRIANGULAR_MESH;default:return a.INVALID_GEOMETRY_TYPE}};return n.ready}}();"object"===typeof exports&&"object"===typeof module?module.exports=DracoDecoderModule:"function"===typeof define&&define.amd?define([],function(){return DracoDecoderModule}):"object"===typeof exports&&(exports.DracoDecoderModule=DracoDecoderModule); ================================================ FILE: packages/sdk/public/libs/draco/gltf/draco_decoder.js ================================================ var DracoDecoderModule = (() => { var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined; if (typeof __filename !== 'undefined') _scriptDir = _scriptDir || __filename; return ( function(DracoDecoderModule = {}) { var Module=typeof DracoDecoderModule!="undefined"?DracoDecoderModule:{};var readyPromiseResolve,readyPromiseReject;Module["ready"]=new Promise(function(resolve,reject){readyPromiseResolve=resolve;readyPromiseReject=reject});var isRuntimeInitialized=false;var isModuleParsed=false;Module["onRuntimeInitialized"]=function(){isRuntimeInitialized=true;if(isModuleParsed){if(typeof Module["onModuleLoaded"]==="function"){Module["onModuleLoaded"](Module)}}};Module["onModuleParsed"]=function(){isModuleParsed=true;if(isRuntimeInitialized){if(typeof Module["onModuleLoaded"]==="function"){Module["onModuleLoaded"](Module)}}};function isVersionSupported(versionString){if(typeof versionString!=="string")return false;const version=versionString.split(".");if(version.length<2||version.length>3)return false;if(version[0]==1&&version[1]>=0&&version[1]<=5)return true;if(version[0]!=0||version[1]>10)return false;return true}Module["isVersionSupported"]=isVersionSupported;var moduleOverrides=Object.assign({},Module);var arguments_=[];var thisProgram="./this.program";var quit_=(status,toThrow)=>{throw toThrow};var ENVIRONMENT_IS_WEB=typeof window=="object";var ENVIRONMENT_IS_WORKER=typeof importScripts=="function";var ENVIRONMENT_IS_NODE=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string";var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;function logExceptionOnExit(e){if(e instanceof ExitStatus)return;let toLog=e;err("exiting due to exception: "+toLog)}if(ENVIRONMENT_IS_NODE){var fs=require("fs");var nodePath=require("path");if(ENVIRONMENT_IS_WORKER){scriptDirectory=nodePath.dirname(scriptDirectory)+"/"}else{scriptDirectory=__dirname+"/"}read_=(filename,binary)=>{var ret=tryParseAsDataURI(filename);if(ret){return binary?ret:ret.toString()}filename=isFileURI(filename)?new URL(filename):nodePath.normalize(filename);return fs.readFileSync(filename,binary?undefined:"utf8")};readBinary=filename=>{var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}return ret};readAsync=(filename,onload,onerror)=>{var ret=tryParseAsDataURI(filename);if(ret){onload(ret)}filename=isFileURI(filename)?new URL(filename):nodePath.normalize(filename);fs.readFile(filename,function(err,data){if(err)onerror(err);else onload(data.buffer)})};if(process["argv"].length>1){thisProgram=process["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);quit_=(status,toThrow)=>{if(keepRuntimeAlive()){process["exitCode"]=status;throw toThrow}logExceptionOnExit(toThrow);process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(_scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.replace(/[?#].*/,"").lastIndexOf("/")+1)}else{scriptDirectory=""}{read_=url=>{try{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText}catch(err){var data=tryParseAsDataURI(url);if(data){return intArrayToString(data)}throw err}};if(ENVIRONMENT_IS_WORKER){readBinary=url=>{try{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}catch(err){var data=tryParseAsDataURI(url);if(data){return data}throw err}}}readAsync=(url,onload,onerror)=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=()=>{if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}var data=tryParseAsDataURI(url);if(data){onload(data.buffer);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=title=>document.title=title}else{}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);Object.assign(Module,moduleOverrides);moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||true;var WebAssembly={Memory:function(opts){this.buffer=new ArrayBuffer(opts["initial"]*65536)},Module:function(binary){},Instance:function(module,info){this.exports=( // EMSCRIPTEN_START_ASM function instantiate(ia){function c(d){d.set=function(a,b){this[a]=b};d.get=function(a){return this[a]};return d}var e;var f=new Uint8Array(123);for(var a=25;a>=0;--a){f[48+a]=52+a;f[65+a]=a;f[97+a]=26+a}f[43]=62;f[47]=63;function l(m,n,o){var g,h,a=0,i=n,j=o.length,k=n+(j*3>>2)-(o[j-2]=="=")-(o[j-1]=="=");for(;a>4;if(i>2;if(i>2];o=F[c+12>>2];g=F[c+16>>2];a:{if((e|0)>=(o|0)&g>>>0>=I[c+8>>2]|(e|0)>(o|0)){break a}o=G[g+F[c>>2]|0];g=g+1|0;e=g?e:e+1|0;F[c+16>>2]=g;F[c+20>>2]=e;b:{switch(o|0){case 0:e=a;f=b;g=d;a=0;d=0;j=Z+-64|0;Z=j;F[j+56>>2]=0;F[j+48>>2]=0;F[j+52>>2]=0;F[j+40>>2]=0;F[j+44>>2]=0;F[j+32>>2]=0;F[j+36>>2]=0;F[j+24>>2]=0;F[j+28>>2]=0;F[j+16>>2]=0;F[j+20>>2]=0;F[j+8>>2]=0;F[j+12>>2]=0;c:{if(!Nd(j+8|0,c)){break c}if(!Md(j+8|0,c)|(F[j+20>>2]?0:e)){break c}hc(c,0,0);if(e){s=f<<2;t=F[j+36>>2];u=F[j+48>>2];x=F[j+24>>2];l=F[j+56>>2];i=F[j+52>>2];while(1){d:{if(l>>>0>16383){break d}while(1){if((i|0)<=0){break d}i=i-1|0;F[j+52>>2]=i;l=G[i+u|0]|l<<8;F[j+56>>2]=l;if(l>>>0<16384){continue}break}}a=l&4095;r=F[(a<<2)+x>>2];b=(r<<3)+t|0;l=(L(F[b>>2],l>>>12|0)+a|0)-F[b+4>>2]|0;F[j+56>>2]=l;if((f|0)>0){a=0;if(!G[c+36|0]|r>>>0>32){break c}o=d+f|0;e:{if(!r){ma(g+(d<<2)|0,0,s);break e}y=r&-2;z=r&1;b=F[c+32>>2];h=F[c+28>>2];q=F[c+24>>2];while(1){k=0;a=b;m=0;n=0;if((r|0)!=1){while(1){p=q+(a>>>3|0)|0;f:{if(p>>>0>=h>>>0){p=0;break f}p=G[p|0];b=a+1|0;F[c+32>>2]=b;p=p>>>(a&7)&1;a=b}p=p<>>3|0)|0;if(v>>>0>>0){m=G[v|0];b=a+1|0;F[c+32>>2]=b;m=m>>>(a&7)&1;a=b}v=k|1;k=k+2|0;m=p|m<>>3|0)|0;if(p>>>0>>0){p=G[p|0];b=a+1|0;F[c+32>>2]=b;a=p>>>(a&7)&1}else{a=0}m=a<>2]=m;d=d+1|0;if((o|0)!=(d|0)){continue}break}}d=o}w=f+w|0;if(e>>>0>w>>>0){continue}break}}D[c+36|0]=0;f=F[c+20>>2];a=0;m=F[c+32>>2]+7|0;a=m>>>0<7?1:a;m=a<<29|m>>>3;b=m+F[c+16>>2]|0;a=(a>>>3|0)+f|0;F[c+16>>2]=b;F[c+20>>2]=b>>>0>>0?a+1|0:a;a=1}b=F[j+36>>2];if(b){F[j+40>>2]=b;ja(b)}b=F[j+24>>2];if(b){F[j+28>>2]=b;ja(b)}b=F[j+8>>2];if(b){F[j+12>>2]=b;ja(b)}Z=j- -64|0;return a;case 1:break b;default:break a}}b=0;e=F[c+20>>2];o=F[c+12>>2];g=F[c+16>>2];g:{if((e|0)>=(o|0)&g>>>0>=I[c+8>>2]|(e|0)>(o|0)){break g}o=G[g+F[c>>2]|0];g=g+1|0;e=g?e:e+1|0;F[c+16>>2]=g;F[c+20>>2]=e;h:{switch(o-1|0){case 8:o=a;r=d;e=Z+-64|0;Z=e;F[e+56>>2]=0;F[e+48>>2]=0;F[e+52>>2]=0;F[e+40>>2]=0;F[e+44>>2]=0;F[e+32>>2]=0;F[e+36>>2]=0;F[e+24>>2]=0;F[e+28>>2]=0;F[e+16>>2]=0;F[e+20>>2]=0;F[e+8>>2]=0;F[e+12>>2]=0;h=e+8|0;i:{j:{if(!H[c+38>>1]){break j}if(!Ta(1,h+12|0,c)){break j}b=F[c+8>>2];d=F[c+16>>2];f=b-d|0;i=F[h+12>>2];b=F[c+12>>2]-(F[c+20>>2]+(b>>>0>>0)|0)|0;if(f>>>0>>6>>>0&(b|0)<=0|(b|0)<0){break j}b=F[h>>2];a=F[h+4>>2]-b>>2;k:{if(a>>>0>>0){qa(h,i-a|0);i=F[h+12>>2];break k}if(a>>>0<=i>>>0){break k}F[h+4>>2]=b+(i<<2)}g=1;if(!i){break i}f=F[c+16>>2];d=F[c+20>>2];s=F[h>>2];j=F[c+8>>2];n=F[c+12>>2];b=0;while(1){g=0;if((d|0)>=(n|0)&f>>>0>=j>>>0|(d|0)>(n|0)){break i}g=F[c>>2];p=G[g+f|0];a=d;f=f+1|0;a=f?a:a+1|0;F[c+16>>2]=f;d=a;F[c+20>>2]=a;a=p>>>2|0;l=0;l:{m:{n:{o:{t=p&3;switch(t|0){case 0:break m;case 3:break o;default:break n}}a=a+b|0;g=0;if(a>>>0>=i>>>0){break i}ma(s+(b<<2)|0,0,(p&252)+4|0);b=a;break l}while(1){if((f|0)==(j|0)&(d|0)==(n|0)){break j}i=G[f+g|0];f=f+1|0;d=f?d:d+1|0;F[c+16>>2]=f;F[c+20>>2]=d;a=i<<(l<<3|6)|a;l=l+1|0;if((t|0)!=(l|0)){continue}break}}F[s+(b<<2)>>2]=a}b=b+1|0;i=F[h+12>>2];if(b>>>0>>0){continue}break}a=h+16|0;n=F[h>>2];d=F[h+16>>2];b=F[h+20>>2]-d|0;p:{if(b>>>0<=32767){qa(a,8192-(b>>>2|0)|0);break p}if((b|0)==32768){break p}F[h+20>>2]=d+32768}d=h+28|0;b=F[d>>2];f=F[h+32>>2]-b>>3;q:{if(f>>>0>>0){_a(d,i-f|0);b=F[d>>2];break q}if(f>>>0>i>>>0){F[h+32>>2]=(i<<3)+b}if(!i){break j}}j=F[a>>2];f=0;d=0;while(1){g=n+(f<<2)|0;l=F[g>>2];h=(f<<3)+b|0;a=d;F[h+4>>2]=a;F[h>>2]=l;g=F[g>>2];d=g+a|0;if(d>>>0>8192){break j}r:{if(a>>>0>=d>>>0){break r}l=0;h=g&7;if(h){while(1){F[j+(a<<2)>>2]=f;a=a+1|0;l=l+1|0;if((h|0)!=(l|0)){continue}break}}if(g-1>>>0<=6){break r}while(1){g=j+(a<<2)|0;F[g>>2]=f;F[g+28>>2]=f;F[g+24>>2]=f;F[g+20>>2]=f;F[g+16>>2]=f;F[g+12>>2]=f;F[g+8>>2]=f;F[g+4>>2]=f;a=a+8|0;if((d|0)!=(a|0)){continue}break}}f=f+1|0;if((i|0)!=(f|0)){continue}break}k=(d|0)==8192}g=k}s:{if(!g|(F[e+20>>2]?0:o)){break s}d=0;k=Z-16|0;Z=k;t:{if(!Sa(1,k+8|0,c)){break t}a=F[c+8>>2];f=F[c+16>>2];g=a-f|0;j=F[k+12>>2];i=F[c+20>>2];a=F[c+12>>2]-(i+(a>>>0>>0)|0)|0;b=F[k+8>>2];if((j|0)==(a|0)&g>>>0>>0|a>>>0>>0){break t}a=i+j|0;g=b+f|0;a=g>>>0>>0?a+1|0:a;F[c+16>>2]=g;F[c+20>>2]=a;if((b|0)<=0){break t}a=f+F[c>>2]|0;F[e+48>>2]=a;c=b-1|0;f=c+a|0;g=G[f|0];u:{if(g>>>0<=63){F[e+52>>2]=c;a=G[f|0]&63;break u}v:{switch((g>>>6|0)-1|0){case 0:if(b>>>0<2){break t}b=b-2|0;F[e+52>>2]=b;a=a+b|0;a=G[a+1|0]<<8&16128|G[a|0];break u;case 1:if(b>>>0<3){break t}b=b-3|0;F[e+52>>2]=b;a=a+b|0;a=G[a+1|0]<<8|G[a+2|0]<<16&4128768|G[a|0];break u;default:break v}}b=b-4|0;F[e+52>>2]=b;a=a+b|0;a=(G[a|0]|G[a+1|0]<<8|(G[a+2|0]<<16|G[a+3|0]<<24))&1073741823}F[e+56>>2]=a+32768;d=a>>>0<8355840}Z=k+16|0;if(!d){break s}if(!o){m=1;break s}b=F[e+52>>2];a=F[e+56>>2];c=F[e+36>>2];d=F[e+48>>2];f=F[e+24>>2];while(1){w:{if(a>>>0>32767){break w}while(1){if((b|0)<=0){break w}b=b-1|0;F[e+52>>2]=b;a=G[b+d|0]|a<<8;F[e+56>>2]=a;if(a>>>0<32768){continue}break}}m=a&8191;k=F[f+(m<<2)>>2];g=c+(k<<3)|0;a=(L(F[g>>2],a>>>13|0)+m|0)-F[g+4>>2]|0;F[e+56>>2]=a;F[r+(q<<2)>>2]=k;m=1;q=q+1|0;if((o|0)!=(q|0)){continue}break}}a=F[e+36>>2];if(a){F[e+40>>2]=a;ja(a)}a=F[e+24>>2];if(a){F[e+28>>2]=a;ja(a)}a=F[e+8>>2];if(a){F[e+12>>2]=a;ja(a)}Z=e- -64|0;b=m;break g;case 9:o=a;r=d;g=Z+-64|0;Z=g;F[g+56>>2]=0;F[g+48>>2]=0;F[g+52>>2]=0;F[g+40>>2]=0;F[g+44>>2]=0;F[g+32>>2]=0;F[g+36>>2]=0;F[g+24>>2]=0;F[g+28>>2]=0;F[g+16>>2]=0;F[g+20>>2]=0;F[g+8>>2]=0;F[g+12>>2]=0;h=g+8|0;x:{y:{if(!H[c+38>>1]){break y}if(!Ta(1,h+12|0,c)){break y}b=F[c+8>>2];d=F[c+16>>2];f=b-d|0;i=F[h+12>>2];b=F[c+12>>2]-(F[c+20>>2]+(b>>>0>>0)|0)|0;if(f>>>0>>6>>>0&(b|0)<=0|(b|0)<0){break y}b=F[h>>2];a=F[h+4>>2]-b>>2;z:{if(a>>>0>>0){qa(h,i-a|0);i=F[h+12>>2];break z}if(a>>>0<=i>>>0){break z}F[h+4>>2]=b+(i<<2)}e=1;if(!i){break x}f=F[c+16>>2];d=F[c+20>>2];s=F[h>>2];j=F[c+8>>2];n=F[c+12>>2];b=0;while(1){e=0;if((d|0)>=(n|0)&f>>>0>=j>>>0|(d|0)>(n|0)){break x}t=F[c>>2];p=G[t+f|0];e=d;f=f+1|0;e=f?e:e+1|0;F[c+16>>2]=f;d=e;F[c+20>>2]=e;a=p>>>2|0;l=0;A:{B:{C:{D:{e=p&3;switch(e|0){case 0:break B;case 3:break D;default:break C}}a=a+b|0;e=0;if(a>>>0>=i>>>0){break x}ma(s+(b<<2)|0,0,(p&252)+4|0);b=a;break A}while(1){if((f|0)==(j|0)&(d|0)==(n|0)){break y}i=G[f+t|0];f=f+1|0;d=f?d:d+1|0;F[c+16>>2]=f;F[c+20>>2]=d;a=i<<(l<<3|6)|a;l=l+1|0;if((e|0)!=(l|0)){continue}break}}F[s+(b<<2)>>2]=a}b=b+1|0;i=F[h+12>>2];if(b>>>0>>0){continue}break}a=h+16|0;n=F[h>>2];d=F[h+16>>2];b=F[h+20>>2]-d|0;E:{if(b>>>0<=131071){qa(a,32768-(b>>>2|0)|0);break E}if((b|0)==131072){break E}F[h+20>>2]=d+131072}d=h+28|0;b=F[d>>2];f=F[h+32>>2]-b>>3;F:{if(f>>>0>>0){_a(d,i-f|0);b=F[d>>2];break F}if(f>>>0>i>>>0){F[h+32>>2]=(i<<3)+b}if(!i){break y}}j=F[a>>2];f=0;d=0;while(1){e=n+(f<<2)|0;l=F[e>>2];h=(f<<3)+b|0;a=d;F[h+4>>2]=a;F[h>>2]=l;e=F[e>>2];d=e+a|0;if(d>>>0>32768){break y}G:{if(a>>>0>=d>>>0){break G}l=0;h=e&7;if(h){while(1){F[j+(a<<2)>>2]=f;a=a+1|0;l=l+1|0;if((h|0)!=(l|0)){continue}break}}if(e-1>>>0<=6){break G}while(1){e=j+(a<<2)|0;F[e>>2]=f;F[e+28>>2]=f;F[e+24>>2]=f;F[e+20>>2]=f;F[e+16>>2]=f;F[e+12>>2]=f;F[e+8>>2]=f;F[e+4>>2]=f;a=a+8|0;if((d|0)!=(a|0)){continue}break}}f=f+1|0;if((i|0)!=(f|0)){continue}break}k=(d|0)==32768}e=k}H:{if(!e|(F[g+20>>2]?0:o)){break H}d=0;f=Z-16|0;Z=f;I:{if(!Sa(1,f+8|0,c)){break I}e=F[c+8>>2];b=F[c+16>>2];k=e-b|0;j=F[f+12>>2];i=F[c+20>>2];e=F[c+12>>2]-(i+(b>>>0>e>>>0)|0)|0;a=F[f+8>>2];if((j|0)==(e|0)&k>>>0>>0|e>>>0>>0){break I}e=i+j|0;k=a+b|0;e=k>>>0>>0?e+1|0:e;F[c+16>>2]=k;F[c+20>>2]=e;if((a|0)<=0){break I}b=b+F[c>>2]|0;F[g+48>>2]=b;c=a-1|0;e=c+b|0;k=G[e|0];J:{if(k>>>0<=63){F[g+52>>2]=c;a=G[e|0]&63;break J}K:{switch((k>>>6|0)-1|0){case 0:if(a>>>0<2){break I}a=a-2|0;F[g+52>>2]=a;a=a+b|0;a=G[a+1|0]<<8&16128|G[a|0];break J;case 1:if(a>>>0<3){break I}a=a-3|0;F[g+52>>2]=a;a=a+b|0;a=G[a+1|0]<<8|G[a+2|0]<<16&4128768|G[a|0];break J;default:break K}}a=a-4|0;F[g+52>>2]=a;a=a+b|0;a=(G[a|0]|G[a+1|0]<<8|(G[a+2|0]<<16|G[a+3|0]<<24))&1073741823}F[g+56>>2]=a+131072;d=a>>>0<33423360}Z=f+16|0;if(!d){break H}if(!o){m=1;break H}b=F[g+52>>2];a=F[g+56>>2];c=F[g+36>>2];d=F[g+48>>2];f=F[g+24>>2];while(1){L:{if(a>>>0>131071){break L}while(1){if((b|0)<=0){break L}b=b-1|0;F[g+52>>2]=b;a=G[b+d|0]|a<<8;F[g+56>>2]=a;if(a>>>0<131072){continue}break}}m=a&32767;e=F[f+(m<<2)>>2];k=c+(e<<3)|0;a=(L(F[k>>2],a>>>15|0)+m|0)-F[k+4>>2]|0;F[g+56>>2]=a;F[r+(q<<2)>>2]=e;m=1;q=q+1|0;if((o|0)!=(q|0)){continue}break}}a=F[g+36>>2];if(a){F[g+40>>2]=a;ja(a)}a=F[g+24>>2];if(a){F[g+28>>2]=a;ja(a)}a=F[g+8>>2];if(a){F[g+12>>2]=a;ja(a)}Z=g- -64|0;b=m;break g;case 10:o=a;r=d;g=Z+-64|0;Z=g;F[g+56>>2]=0;F[g+48>>2]=0;F[g+52>>2]=0;F[g+40>>2]=0;F[g+44>>2]=0;F[g+32>>2]=0;F[g+36>>2]=0;F[g+24>>2]=0;F[g+28>>2]=0;F[g+16>>2]=0;F[g+20>>2]=0;F[g+8>>2]=0;F[g+12>>2]=0;h=g+8|0;M:{N:{if(!H[c+38>>1]){break N}if(!Ta(1,h+12|0,c)){break N}b=F[c+8>>2];d=F[c+16>>2];f=b-d|0;i=F[h+12>>2];b=F[c+12>>2]-(F[c+20>>2]+(b>>>0>>0)|0)|0;if(f>>>0>>6>>>0&(b|0)<=0|(b|0)<0){break N}b=F[h>>2];a=F[h+4>>2]-b>>2;O:{if(a>>>0>>0){qa(h,i-a|0);i=F[h+12>>2];break O}if(a>>>0<=i>>>0){break O}F[h+4>>2]=b+(i<<2)}e=1;if(!i){break M}f=F[c+16>>2];d=F[c+20>>2];s=F[h>>2];j=F[c+8>>2];n=F[c+12>>2];b=0;while(1){e=0;if((d|0)>=(n|0)&f>>>0>=j>>>0|(d|0)>(n|0)){break M}t=F[c>>2];p=G[t+f|0];a=d;f=f+1|0;a=f?a:a+1|0;F[c+16>>2]=f;d=a;F[c+20>>2]=a;a=p>>>2|0;l=0;P:{Q:{R:{S:{u=p&3;switch(u|0){case 0:break Q;case 3:break S;default:break R}}a=a+b|0;e=0;if(a>>>0>=i>>>0){break M}ma(s+(b<<2)|0,0,(p&252)+4|0);b=a;break P}while(1){if((f|0)==(j|0)&(d|0)==(n|0)){break N}i=G[f+t|0];e=d;f=f+1|0;e=f?e:e+1|0;F[c+16>>2]=f;d=e;F[c+20>>2]=e;a=i<<(l<<3|6)|a;l=l+1|0;if((u|0)!=(l|0)){continue}break}}F[s+(b<<2)>>2]=a}b=b+1|0;i=F[h+12>>2];if(b>>>0>>0){continue}break}a=h+16|0;n=F[h>>2];d=F[h+16>>2];b=F[h+20>>2]-d|0;T:{if(b>>>0<=262143){qa(a,65536-(b>>>2|0)|0);break T}if((b|0)==262144){break T}F[h+20>>2]=d+262144}d=h+28|0;b=F[d>>2];f=F[h+32>>2]-b>>3;U:{if(f>>>0>>0){_a(d,i-f|0);b=F[d>>2];break U}if(f>>>0>i>>>0){F[h+32>>2]=(i<<3)+b}if(!i){break N}}j=F[a>>2];f=0;d=0;while(1){e=n+(f<<2)|0;l=F[e>>2];h=(f<<3)+b|0;a=d;F[h+4>>2]=a;F[h>>2]=l;e=F[e>>2];d=e+a|0;if(d>>>0>65536){break N}V:{if(a>>>0>=d>>>0){break V}l=0;h=e&7;if(h){while(1){F[j+(a<<2)>>2]=f;a=a+1|0;l=l+1|0;if((h|0)!=(l|0)){continue}break}}if(e-1>>>0<=6){break V}while(1){e=j+(a<<2)|0;F[e>>2]=f;F[e+28>>2]=f;F[e+24>>2]=f;F[e+20>>2]=f;F[e+16>>2]=f;F[e+12>>2]=f;F[e+8>>2]=f;F[e+4>>2]=f;a=a+8|0;if((d|0)!=(a|0)){continue}break}}f=f+1|0;if((i|0)!=(f|0)){continue}break}k=(d|0)==65536}e=k}W:{if(!e|(F[g+20>>2]?0:o)){break W}d=0;e=Z-16|0;Z=e;X:{if(!Sa(1,e+8|0,c)){break X}a=F[c+8>>2];f=F[c+16>>2];k=a-f|0;j=F[e+12>>2];i=F[c+20>>2];a=F[c+12>>2]-(i+(a>>>0>>0)|0)|0;b=F[e+8>>2];if((j|0)==(a|0)&k>>>0>>0|a>>>0>>0){break X}a=i+j|0;k=b+f|0;a=k>>>0>>0?a+1|0:a;F[c+16>>2]=k;F[c+20>>2]=a;if((b|0)<=0){break X}a=f+F[c>>2]|0;F[g+48>>2]=a;c=b-1|0;f=c+a|0;k=G[f|0];Y:{if(k>>>0<=63){F[g+52>>2]=c;a=G[f|0]&63;break Y}Z:{switch((k>>>6|0)-1|0){case 0:if(b>>>0<2){break X}b=b-2|0;F[g+52>>2]=b;a=a+b|0;a=G[a+1|0]<<8&16128|G[a|0];break Y;case 1:if(b>>>0<3){break X}b=b-3|0;F[g+52>>2]=b;a=a+b|0;a=G[a+1|0]<<8|G[a+2|0]<<16&4128768|G[a|0];break Y;default:break Z}}b=b-4|0;F[g+52>>2]=b;a=a+b|0;a=(G[a|0]|G[a+1|0]<<8|(G[a+2|0]<<16|G[a+3|0]<<24))&1073741823}F[g+56>>2]=a+262144;d=a>>>0<66846720}Z=e+16|0;if(!d){break W}if(!o){m=1;break W}b=F[g+52>>2];a=F[g+56>>2];c=F[g+36>>2];d=F[g+48>>2];f=F[g+24>>2];while(1){_:{if(a>>>0>262143){break _}while(1){if((b|0)<=0){break _}b=b-1|0;F[g+52>>2]=b;a=G[b+d|0]|a<<8;F[g+56>>2]=a;if(a>>>0<262144){continue}break}}m=a&65535;e=F[f+(m<<2)>>2];k=c+(e<<3)|0;a=(L(F[k>>2],a>>>16|0)+m|0)-F[k+4>>2]|0;F[g+56>>2]=a;F[r+(q<<2)>>2]=e;m=1;q=q+1|0;if((o|0)!=(q|0)){continue}break}}a=F[g+36>>2];if(a){F[g+40>>2]=a;ja(a)}a=F[g+24>>2];if(a){F[g+28>>2]=a;ja(a)}a=F[g+8>>2];if(a){F[g+12>>2]=a;ja(a)}Z=g- -64|0;b=m;break g;case 11:o=a;r=d;g=Z+-64|0;Z=g;F[g+56>>2]=0;F[g+48>>2]=0;F[g+52>>2]=0;F[g+40>>2]=0;F[g+44>>2]=0;F[g+32>>2]=0;F[g+36>>2]=0;F[g+24>>2]=0;F[g+28>>2]=0;F[g+16>>2]=0;F[g+20>>2]=0;F[g+8>>2]=0;F[g+12>>2]=0;h=g+8|0;$:{aa:{if(!H[c+38>>1]){break aa}if(!Ta(1,h+12|0,c)){break aa}b=F[c+8>>2];d=F[c+16>>2];f=b-d|0;i=F[h+12>>2];b=F[c+12>>2]-(F[c+20>>2]+(b>>>0>>0)|0)|0;if(f>>>0>>6>>>0&(b|0)<=0|(b|0)<0){break aa}b=F[h>>2];a=F[h+4>>2]-b>>2;ba:{if(a>>>0>>0){qa(h,i-a|0);i=F[h+12>>2];break ba}if(a>>>0<=i>>>0){break ba}F[h+4>>2]=b+(i<<2)}e=1;if(!i){break $}f=F[c+16>>2];d=F[c+20>>2];s=F[h>>2];j=F[c+8>>2];n=F[c+12>>2];b=0;while(1){e=0;if((d|0)>=(n|0)&f>>>0>=j>>>0|(d|0)>(n|0)){break $}t=F[c>>2];p=G[t+f|0];e=d;f=f+1|0;e=f?e:e+1|0;F[c+16>>2]=f;d=e;F[c+20>>2]=e;a=p>>>2|0;l=0;ca:{da:{ea:{fa:{e=p&3;switch(e|0){case 0:break da;case 3:break fa;default:break ea}}a=a+b|0;e=0;if(a>>>0>=i>>>0){break $}ma(s+(b<<2)|0,0,(p&252)+4|0);b=a;break ca}while(1){if((f|0)==(j|0)&(d|0)==(n|0)){break aa}i=G[f+t|0];f=f+1|0;d=f?d:d+1|0;F[c+16>>2]=f;F[c+20>>2]=d;a=i<<(l<<3|6)|a;l=l+1|0;if((e|0)!=(l|0)){continue}break}}F[s+(b<<2)>>2]=a}b=b+1|0;i=F[h+12>>2];if(b>>>0>>0){continue}break}a=h+16|0;n=F[h>>2];d=F[h+16>>2];b=F[h+20>>2]-d|0;ga:{if(b>>>0<=1048575){qa(a,262144-(b>>>2|0)|0);break ga}if((b|0)==1048576){break ga}F[h+20>>2]=d- -1048576}d=h+28|0;b=F[d>>2];f=F[h+32>>2]-b>>3;ha:{if(f>>>0>>0){_a(d,i-f|0);b=F[d>>2];break ha}if(f>>>0>i>>>0){F[h+32>>2]=(i<<3)+b}if(!i){break aa}}j=F[a>>2];f=0;d=0;while(1){e=n+(f<<2)|0;l=F[e>>2];h=(f<<3)+b|0;a=d;F[h+4>>2]=a;F[h>>2]=l;e=F[e>>2];d=e+a|0;if(d>>>0>262144){break aa}ia:{if(a>>>0>=d>>>0){break ia}l=0;h=e&7;if(h){while(1){F[j+(a<<2)>>2]=f;a=a+1|0;l=l+1|0;if((h|0)!=(l|0)){continue}break}}if(e-1>>>0<=6){break ia}while(1){e=j+(a<<2)|0;F[e>>2]=f;F[e+28>>2]=f;F[e+24>>2]=f;F[e+20>>2]=f;F[e+16>>2]=f;F[e+12>>2]=f;F[e+8>>2]=f;F[e+4>>2]=f;a=a+8|0;if((d|0)!=(a|0)){continue}break}}f=f+1|0;if((i|0)!=(f|0)){continue}break}k=(d|0)==262144}e=k}ja:{if(!e|(F[g+20>>2]?0:o)){break ja}d=0;f=Z-16|0;Z=f;ka:{if(!Sa(1,f+8|0,c)){break ka}e=F[c+8>>2];b=F[c+16>>2];k=e-b|0;j=F[f+12>>2];i=F[c+20>>2];e=F[c+12>>2]-(i+(b>>>0>e>>>0)|0)|0;a=F[f+8>>2];if((j|0)==(e|0)&k>>>0>>0|e>>>0>>0){break ka}e=i+j|0;k=a+b|0;e=k>>>0>>0?e+1|0:e;F[c+16>>2]=k;F[c+20>>2]=e;if((a|0)<=0){break ka}b=b+F[c>>2]|0;F[g+48>>2]=b;c=a-1|0;e=c+b|0;k=G[e|0];la:{if(k>>>0<=63){F[g+52>>2]=c;a=G[e|0]&63;break la}ma:{switch((k>>>6|0)-1|0){case 0:if(a>>>0<2){break ka}a=a-2|0;F[g+52>>2]=a;a=a+b|0;a=G[a+1|0]<<8&16128|G[a|0];break la;case 1:if(a>>>0<3){break ka}a=a-3|0;F[g+52>>2]=a;a=a+b|0;a=G[a+1|0]<<8|G[a+2|0]<<16&4128768|G[a|0];break la;default:break ma}}a=a-4|0;F[g+52>>2]=a;a=a+b|0;a=(G[a|0]|G[a+1|0]<<8|(G[a+2|0]<<16|G[a+3|0]<<24))&1073741823}F[g+56>>2]=a- -1048576;d=a>>>0<267386880}Z=f+16|0;if(!d){break ja}if(!o){m=1;break ja}b=F[g+52>>2];a=F[g+56>>2];c=F[g+36>>2];d=F[g+48>>2];f=F[g+24>>2];while(1){na:{if(a>>>0>1048575){break na}while(1){if((b|0)<=0){break na}b=b-1|0;F[g+52>>2]=b;a=G[b+d|0]|a<<8;F[g+56>>2]=a;if(a>>>0<1048576){continue}break}}m=a&262143;e=F[f+(m<<2)>>2];k=c+(e<<3)|0;a=(L(F[k>>2],a>>>18|0)+m|0)-F[k+4>>2]|0;F[g+56>>2]=a;F[r+(q<<2)>>2]=e;m=1;q=q+1|0;if((o|0)!=(q|0)){continue}break}}a=F[g+36>>2];if(a){F[g+40>>2]=a;ja(a)}a=F[g+24>>2];if(a){F[g+28>>2]=a;ja(a)}a=F[g+8>>2];if(a){F[g+12>>2]=a;ja(a)}Z=g- -64|0;b=m;break g;case 12:o=a;r=d;e=Z+-64|0;Z=e;F[e+56>>2]=0;F[e+48>>2]=0;F[e+52>>2]=0;F[e+40>>2]=0;F[e+44>>2]=0;F[e+32>>2]=0;F[e+36>>2]=0;F[e+24>>2]=0;F[e+28>>2]=0;F[e+16>>2]=0;F[e+20>>2]=0;F[e+8>>2]=0;F[e+12>>2]=0;h=e+8|0;oa:{pa:{if(!H[c+38>>1]){break pa}if(!Ta(1,h+12|0,c)){break pa}b=F[c+8>>2];d=F[c+16>>2];f=b-d|0;i=F[h+12>>2];b=F[c+12>>2]-(F[c+20>>2]+(b>>>0>>0)|0)|0;if(f>>>0>>6>>>0&(b|0)<=0|(b|0)<0){break pa}b=F[h>>2];a=F[h+4>>2]-b>>2;qa:{if(a>>>0>>0){qa(h,i-a|0);i=F[h+12>>2];break qa}if(a>>>0<=i>>>0){break qa}F[h+4>>2]=b+(i<<2)}g=1;if(!i){break oa}f=F[c+16>>2];d=F[c+20>>2];s=F[h>>2];j=F[c+8>>2];n=F[c+12>>2];b=0;while(1){g=0;if((d|0)>=(n|0)&f>>>0>=j>>>0|(d|0)>(n|0)){break oa}g=F[c>>2];p=G[g+f|0];a=d;f=f+1|0;a=f?a:a+1|0;F[c+16>>2]=f;d=a;F[c+20>>2]=a;a=p>>>2|0;l=0;ra:{sa:{ta:{ua:{t=p&3;switch(t|0){case 0:break sa;case 3:break ua;default:break ta}}a=a+b|0;g=0;if(a>>>0>=i>>>0){break oa}ma(s+(b<<2)|0,0,(p&252)+4|0);b=a;break ra}while(1){if((f|0)==(j|0)&(d|0)==(n|0)){break pa}i=G[f+g|0];f=f+1|0;d=f?d:d+1|0;F[c+16>>2]=f;F[c+20>>2]=d;a=i<<(l<<3|6)|a;l=l+1|0;if((t|0)!=(l|0)){continue}break}}F[s+(b<<2)>>2]=a}b=b+1|0;i=F[h+12>>2];if(b>>>0>>0){continue}break}a=h+16|0;n=F[h>>2];d=F[h+16>>2];b=F[h+20>>2]-d|0;va:{if(b>>>0<=2097151){qa(a,524288-(b>>>2|0)|0);break va}if((b|0)==2097152){break va}F[h+20>>2]=d+2097152}d=h+28|0;b=F[d>>2];f=F[h+32>>2]-b>>3;wa:{if(f>>>0>>0){_a(d,i-f|0);b=F[d>>2];break wa}if(f>>>0>i>>>0){F[h+32>>2]=(i<<3)+b}if(!i){break pa}}j=F[a>>2];f=0;d=0;while(1){g=n+(f<<2)|0;l=F[g>>2];h=(f<<3)+b|0;a=d;F[h+4>>2]=a;F[h>>2]=l;g=F[g>>2];d=g+a|0;if(d>>>0>524288){break pa}xa:{if(a>>>0>=d>>>0){break xa}l=0;h=g&7;if(h){while(1){F[j+(a<<2)>>2]=f;a=a+1|0;l=l+1|0;if((h|0)!=(l|0)){continue}break}}if(g-1>>>0<=6){break xa}while(1){g=j+(a<<2)|0;F[g>>2]=f;F[g+28>>2]=f;F[g+24>>2]=f;F[g+20>>2]=f;F[g+16>>2]=f;F[g+12>>2]=f;F[g+8>>2]=f;F[g+4>>2]=f;a=a+8|0;if((d|0)!=(a|0)){continue}break}}f=f+1|0;if((i|0)!=(f|0)){continue}break}k=(d|0)==524288}g=k}ya:{if(!g|(F[e+20>>2]?0:o)){break ya}d=0;k=Z-16|0;Z=k;za:{if(!Sa(1,k+8|0,c)){break za}a=F[c+8>>2];f=F[c+16>>2];g=a-f|0;j=F[k+12>>2];i=F[c+20>>2];a=F[c+12>>2]-(i+(a>>>0>>0)|0)|0;b=F[k+8>>2];if((j|0)==(a|0)&g>>>0>>0|a>>>0>>0){break za}a=i+j|0;g=b+f|0;a=g>>>0>>0?a+1|0:a;F[c+16>>2]=g;F[c+20>>2]=a;if((b|0)<=0){break za}a=f+F[c>>2]|0;F[e+48>>2]=a;c=b-1|0;f=c+a|0;g=G[f|0];Aa:{if(g>>>0<=63){F[e+52>>2]=c;a=G[f|0]&63;break Aa}Ba:{switch((g>>>6|0)-1|0){case 0:if(b>>>0<2){break za}b=b-2|0;F[e+52>>2]=b;a=a+b|0;a=G[a+1|0]<<8&16128|G[a|0];break Aa;case 1:if(b>>>0<3){break za}b=b-3|0;F[e+52>>2]=b;a=a+b|0;a=G[a+1|0]<<8|G[a+2|0]<<16&4128768|G[a|0];break Aa;default:break Ba}}b=b-4|0;F[e+52>>2]=b;a=a+b|0;a=(G[a|0]|G[a+1|0]<<8|(G[a+2|0]<<16|G[a+3|0]<<24))&1073741823}F[e+56>>2]=a+2097152;d=a>>>0<534773760}Z=k+16|0;if(!d){break ya}if(!o){m=1;break ya}b=F[e+52>>2];a=F[e+56>>2];c=F[e+36>>2];d=F[e+48>>2];f=F[e+24>>2];while(1){Ca:{if(a>>>0>2097151){break Ca}while(1){if((b|0)<=0){break Ca}b=b-1|0;F[e+52>>2]=b;a=G[b+d|0]|a<<8;F[e+56>>2]=a;if(a>>>0<2097152){continue}break}}m=a&524287;k=F[f+(m<<2)>>2];g=c+(k<<3)|0;a=(L(F[g>>2],a>>>19|0)+m|0)-F[g+4>>2]|0;F[e+56>>2]=a;F[r+(q<<2)>>2]=k;m=1;q=q+1|0;if((o|0)!=(q|0)){continue}break}}a=F[e+36>>2];if(a){F[e+40>>2]=a;ja(a)}a=F[e+24>>2];if(a){F[e+28>>2]=a;ja(a)}a=F[e+8>>2];if(a){F[e+12>>2]=a;ja(a)}Z=e- -64|0;b=m;break g;case 17:b=Ld(a,c,d);break g;case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:b=Z+-64|0;Z=b;F[b+56>>2]=0;F[b+48>>2]=0;F[b+52>>2]=0;F[b+40>>2]=0;F[b+44>>2]=0;F[b+32>>2]=0;F[b+36>>2]=0;F[b+24>>2]=0;F[b+28>>2]=0;F[b+16>>2]=0;F[b+20>>2]=0;F[b+8>>2]=0;F[b+12>>2]=0;Da:{if(!Nd(b+8|0,c)|(F[b+20>>2]?0:a)){break Da}if(!Md(b+8|0,c)){break Da}if(!a){f=1;break Da}m=F[b+52>>2];c=F[b+56>>2];e=F[b+36>>2];g=F[b+48>>2];o=F[b+24>>2];while(1){Ea:{if(c>>>0>16383){break Ea}while(1){if((m|0)<=0){break Ea}m=m-1|0;F[b+52>>2]=m;c=G[g+m|0]|c<<8;F[b+56>>2]=c;if(c>>>0<16384){continue}break}}f=c&4095;j=F[o+(f<<2)>>2];r=e+(j<<3)|0;c=(L(F[r>>2],c>>>12|0)+f|0)-F[r+4>>2]|0;F[b+56>>2]=c;F[(k<<2)+d>>2]=j;f=1;k=k+1|0;if((k|0)!=(a|0)){continue}break}}a=F[b+36>>2];if(a){F[b+40>>2]=a;ja(a)}a=F[b+24>>2];if(a){F[b+28>>2]=a;ja(a)}a=F[b+8>>2];if(a){F[b+12>>2]=a;ja(a)}Z=b- -64|0;b=f;break g;case 13:case 14:case 15:case 16:break h;default:break g}}b=Ld(a,c,d)}f=b}return f}function ih(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,J=0,K=0,M=0,N=0,O=0,P=0;u=Z+-64|0;Z=u;F[a+132>>2]=0;if(F[a+148>>2]){b=F[a+144>>2];if(b){while(1){f=F[b>>2];ja(b);b=f;if(b){continue}break}}b=0;F[a+144>>2]=0;f=F[a+140>>2];a:{if(!f){break a}if(f>>>0>=4){c=f&-4;while(1){e=b<<2;F[e+F[a+136>>2]>>2]=0;F[F[a+136>>2]+(e|4)>>2]=0;F[F[a+136>>2]+(e|8)>>2]=0;F[F[a+136>>2]+(e|12)>>2]=0;b=b+4|0;d=d+4|0;if((c|0)!=(d|0)){continue}break}}f=f&3;if(!f){break a}d=0;while(1){F[F[a+136>>2]+(b<<2)>>2]=0;b=b+1|0;d=d+1|0;if((f|0)!=(d|0)){continue}break}}F[a+148>>2]=0}b:{c:{if(!Da(1,u+60|0,F[F[a+4>>2]+32>>2])){break c}F[a+156>>2]=F[u+60>>2];if(!Da(1,u+56|0,F[F[a+4>>2]+32>>2])){break c}e=F[u+56>>2];if(e>>>0>1431655765|I[a+156>>2]>L(e,3)>>>0){break c}b=F[F[a+4>>2]+32>>2];c=F[b+8>>2];k=F[b+12>>2];d=F[b+20>>2];f=F[b+16>>2];if((k|0)<=(d|0)&f>>>0>=c>>>0|(d|0)>(k|0)){break c}k=G[f+F[b>>2]|0];f=f+1|0;d=f?d:d+1|0;F[b+16>>2]=f;F[b+20>>2]=d;if(!Da(1,u+52|0,b)){break c}q=F[u+52>>2];if(q>>>0>e>>>0|e>>>0>q+((q>>>0)/3|0)>>>0){break c}if(!Da(1,u+48|0,F[F[a+4>>2]+32>>2])){break c}d=F[u+48>>2];if(d>>>0>q>>>0){break c}F[a+28>>2]=F[a+24>>2];f=Zb(ka(88));b=F[a+8>>2];F[a+8>>2]=f;if(b){Za(b);if(!F[a+8>>2]){break c}}F[a+164>>2]=F[a+160>>2];Ib(a+160|0,e);F[a+176>>2]=F[a+172>>2];Ib(a+172|0,e);F[a- -64>>2]=0;F[a+92>>2]=-1;F[a+84>>2]=-1;F[a+88>>2]=-1;F[a+40>>2]=F[a+36>>2];F[a+52>>2]=F[a+48>>2];F[a+76>>2]=F[a+72>>2];A=a+216|0;Dd(A);Cd(A,k);if(!_c(F[a+8>>2],e,d+F[a+156>>2]|0)){break c}b=F[a+156>>2];D[u+8|0]=1;Ea(a+120|0,b+d|0,u+8|0);if((Bd(a,F[F[a+4>>2]+32>>2])|0)==-1){break c}c=a+232|0;b=c;F[b+144>>2]=a;f=F[($[F[F[a>>2]+32>>2]](a)|0)+32>>2];f=F[f>>2]+F[f+16>>2]|0;e=F[($[F[F[a>>2]+32>>2]](a)|0)+32>>2];e=F[e+8>>2]-F[e+16>>2]|0;O=b,P=H[F[($[F[F[a>>2]+32>>2]](a)|0)+32>>2]+38>>1],E[O+38>>1]=P;F[b>>2]=f;F[b+16>>2]=0;F[b+20>>2]=0;F[b+8>>2]=e;F[b+12>>2]=0;O=b,P=$[F[F[a>>2]+36>>2]](a)|0,F[O+148>>2]=P;F[a+372>>2]=k;F[a+384>>2]=d+F[a+156>>2];K=Ja(u+8|0);k=K;f=0;j=Z-16|0;Z=j;d:{if(!Aa(b+80|0,b)){break d}if(!yd(c)){break d}b=F[c+4>>2];F[k>>2]=F[c>>2];F[k+4>>2]=b;b=F[c+36>>2];F[k+32>>2]=F[c+32>>2];F[k+36>>2]=b;b=F[c+28>>2];F[k+24>>2]=F[c+24>>2];F[k+28>>2]=b;b=F[c+20>>2];F[k+16>>2]=F[c+16>>2];F[k+20>>2]=b;b=F[c+12>>2];F[k+8>>2]=F[c+8>>2];F[k+12>>2]=b;F[c+176>>2]=2;F[c+180>>2]=7;b=F[c+152>>2];if((b|0)<0){break d}F[j+12>>2]=0;f=2;h=F[c+156>>2];e=F[c+160>>2]-h>>2;e:{if(e>>>0>>0){Fa(c+156|0,b-e|0,j+12|0);f=F[c+176>>2];d=F[c+180>>2];break e}d=7;if(b>>>0>=e>>>0){break e}F[c+160>>2]=h+(b<<2)}e=c+184|0;d=(d-f|0)+1|0;b=F[c+188>>2];f=F[c+184>>2];s=(b-f|0)/12|0;f:{if(d>>>0>s>>>0){h=0;b=d-s|0;o=F[e+8>>2];f=F[e+4>>2];g:{if(b>>>0<=(o-f|0)/12>>>0){if(b){b=L(b,12)-12|0;b=(b-((b>>>0)%12|0)|0)+12|0;f=ma(f,0,b)+b|0}F[e+4>>2]=f;break g}h:{i:{j:{s=F[e>>2];g=(f-s|0)/12|0;d=g+b|0;if(d>>>0<357913942){o=(o-s|0)/12|0;i=o<<1;o=o>>>0>=178956970?357913941:d>>>0>>0?i:d;if(o){if(o>>>0>=357913942){break j}h=ka(L(o,12))}d=L(g,12)+h|0;b=L(b,12)-12|0;g=(b-((b>>>0)%12|0)|0)+12|0;b=ma(d,0,g);g=b+g|0;h=L(o,12)+h|0;if((f|0)==(s|0)){break i}while(1){d=d-12|0;f=f-12|0;F[d>>2]=F[f>>2];F[d+4>>2]=F[f+4>>2];F[d+8>>2]=F[f+8>>2];F[f+8>>2]=0;F[f>>2]=0;F[f+4>>2]=0;if((f|0)!=(s|0)){continue}break}F[e+8>>2]=h;b=F[e+4>>2];F[e+4>>2]=g;f=F[e>>2];F[e>>2]=d;if((b|0)==(f|0)){break h}while(1){d=b-12|0;h=F[d>>2];if(h){F[b-8>>2]=h;ja(h)}b=d;if((f|0)!=(b|0)){continue}break}break h}break b}oa();v()}F[e+8>>2]=h;F[e+4>>2]=g;F[e>>2]=b}if(f){ja(f)}}d=F[c+188>>2];break f}if(d>>>0>=s>>>0){d=b;break f}d=f+L(d,12)|0;if((d|0)!=(b|0)){while(1){f=b-12|0;h=F[f>>2];if(h){F[b-8>>2]=h;ja(h)}b=f;if((d|0)!=(b|0)){continue}break}}F[c+188>>2]=d}s=c+196|0;f=F[c+184>>2];b=(d-f|0)/12|0;o=F[c+196>>2];h=F[c+200>>2]-o>>2;k:{if(b>>>0>h>>>0){qa(s,b-h|0);f=F[c+184>>2];d=F[c+188>>2];break k}if(b>>>0>=h>>>0){break k}F[c+200>>2]=o+(b<<2)}if((d|0)==(f|0)){f=1;break d}b=0;while(1){l:{if(!Da(1,j+8|0,k)){break l}f=F[j+8>>2];d=F[c+148>>2];if(f>>>0>(F[d+4>>2]-F[d>>2]>>2>>>0)/3>>>0){break l}if(f){g=L(b,12);h=g+F[e>>2]|0;d=F[h>>2];o=F[h+4>>2]-d>>2;m:{if(o>>>0>>0){qa(h,f-o|0);d=F[g+F[e>>2]>>2];break m}if(f>>>0>=o>>>0){break m}F[h+4>>2]=(f<<2)+d}mc(f,1,k,d);F[F[s>>2]+(b<<2)>>2]=f}f=1;b=b+1|0;if(b>>>0<(F[c+188>>2]-F[c+184>>2]|0)/12>>>0){continue}break d}break}f=0}Z=j+16|0;n:{if(!f){break n}e=0;c=0;d=0;b=0;k=0;f=0;s=0;o=0;l=Z-96|0;Z=l;F[l+72>>2]=0;F[l+64>>2]=0;F[l+68>>2]=0;F[l+48>>2]=0;F[l+52>>2]=0;F[l+40>>2]=0;F[l+44>>2]=0;F[l+56>>2]=1065353216;F[l+32>>2]=0;F[l+24>>2]=0;F[l+28>>2]=0;j=a;C=F[a+124>>2];o:{p:{q:{r:{s:{if((q|0)<=0){break s}J=j+232|0;M=F[j+216>>2]!=F[j+220>>2];B=1;t:{while(1){h=s;s=h+1|0;u:{v:{w:{g=F[j+404>>2];if((g|0)==-1){F[j+400>>2]=7;break w}a=-1;i=F[j+428>>2]+(g<<2)|0;m=F[i>>2];g=m-1|0;F[i>>2]=g;if((m|0)<=0){break r}g=F[F[F[j+416>>2]+L(F[j+404>>2],12)>>2]+(g<<2)>>2];if(g>>>0>4){break r}i=F[(g<<2)+8896>>2];F[j+400>>2]=i;if(!g){if((b|0)==(c|0)){break r}i=-1;m=F[j+8>>2];B=F[m+24>>2];t=c-4|0;e=F[t>>2];g=-1;x:{if((e|0)==-1){break x}p=e+1|0;p=(p>>>0)%3|0?p:e-2|0;g=-1;if((p|0)==-1){break x}g=F[F[m>>2]+(p<<2)>>2]}n=F[B+(g<<2)>>2];if((n|0)!=-1){i=n+1|0;i=(i>>>0)%3|0?i:n-2|0}if((e|0)!=-1&F[F[m+12>>2]+(e<<2)>>2]!=-1|(e|0)==(i|0)){break r}n=F[m+12>>2];if((i|0)!=-1&F[n+(i<<2)>>2]!=-1){break r}p=L(h,3);h=p+1|0;F[n+(e<<2)>>2]=h;x=h<<2;F[x+n>>2]=e;r=p+2|0;F[n+(i<<2)>>2]=r;w=r<<2;F[w+n>>2]=i;n=-1;h=-1;y:{if((e|0)==-1){break y}z:{if((e>>>0)%3|0){e=e-1|0;break z}e=e+2|0;h=-1;if((e|0)==-1){break y}}h=F[F[m>>2]+(e<<2)>>2]}e=h;A:{if((i|0)==-1){break A}h=i+1|0;h=(h>>>0)%3|0?h:i-2|0;if((h|0)==-1){break A}n=F[F[m>>2]+(h<<2)>>2]}if((e|0)==(g|0)|(g|0)==(n|0)){break r}a=F[m>>2];F[a+(p<<2)>>2]=g;F[a+x>>2]=n;F[a+w>>2]=e;if((e|0)!=-1){F[B+(e<<2)>>2]=r}a=F[j+120>>2]+(g>>>3&536870908)|0;e=F[a>>2];O=a,P=oi(g)&e,F[O>>2]=P;F[t>>2]=p;e=b;kc(J,p);break u}B:{switch(i-1|0){case 2:case 4:if((b|0)==(c|0)){break r}r=c-4|0;e=F[r>>2];i=F[j+8>>2];m=F[i+12>>2];if((e|0)!=-1&F[m+(e<<2)>>2]!=-1){break r}c=L(h,3);n=(g|0)==3;g=c+(n?2:1)|0;t=g<<2;F[t+m>>2]=e;F[m+(e<<2)>>2]=g;Ma(i+24|0,8324);p=F[j+8>>2];m=F[p+24>>2];if(F[p+28>>2]-m>>2>(C|0)){break r}a=F[p>>2];w=a+t|0;p=F[i+28>>2];i=F[i+24>>2];t=(p-i>>2)-1|0;F[w>>2]=t;if((i|0)!=(p|0)){F[m+(t<<2)>>2]=g}g=n?c:c+2|0;w=a+(c+n<<2)|0;C:{if((e|0)==-1){F[a+(g<<2)>>2]=-1;i=-1;break C}D:{E:{F:{if((e>>>0)%3|0){i=e-1|0;break F}i=e+2|0;if((i|0)==-1){break E}}i=F[a+(i<<2)>>2];F[a+(g<<2)>>2]=i;if((i|0)==-1){break D}F[m+(i<<2)>>2]=g;break D}F[a+(g<<2)>>2]=-1}i=e+1|0;e=(i>>>0)%3|0?i:e-2|0;i=-1;if((e|0)==-1){break C}i=F[a+(e<<2)>>2]}F[w>>2]=i;F[r>>2]=c;e=b;break v;case 6:break w;case 0:break B;default:break r}}if((e|0)==(c|0)){break r}f=c-4|0;m=F[f>>2];F[l+68>>2]=f;n=F[l+44>>2];G:{if(!n){break G}g=F[l+40>>2];p=ni(n)>>>0>1;a=h&n+2147483647;H:{if(!p){break H}a=h;if(a>>>0>>0){break H}a=(h>>>0)%(n>>>0)|0}i=a;a=F[g+(i<<2)>>2];if(!a){break G}a=F[a>>2];if(!a){break G}I:{if(!p){g=n-1|0;while(1){n=F[a+4>>2];J:{if((n|0)!=(h|0)){if((i|0)==(g&n)){break J}break G}if((h|0)==F[a+8>>2]){break I}}a=F[a>>2];if(a){continue}break}break G}while(1){g=F[a+4>>2];K:{if((g|0)!=(h|0)){if(g>>>0>=n>>>0){g=(g>>>0)%(n>>>0)|0}if((g|0)==(i|0)){break K}break G}if((h|0)==F[a+8>>2]){break I}}a=F[a>>2];if(a){continue}break}break G}if((f|0)!=(k|0)){F[f>>2]=F[a+12>>2];F[l+68>>2]=c;f=c;break G}b=k-e|0;c=b>>2;d=c+1|0;if(d>>>0>=1073741824){break b}f=b>>>1|0;d=b>>>0>=2147483644?1073741823:d>>>0>>0?f:d;if(d){if(d>>>0>=1073741824){break p}f=ka(d<<2)}else{f=0}b=f+(c<<2)|0;F[b>>2]=F[a+12>>2];d=f+(d<<2)|0;f=b+4|0;if((e|0)!=(k|0)){while(1){b=b-4|0;k=k-4|0;F[b>>2]=F[k>>2];if((e|0)!=(k|0)){continue}break}}F[l+72>>2]=d;F[l+68>>2]=f;F[l+64>>2]=b;if(e){ja(e)}e=b;k=d}if((e|0)==(f|0)){break t}x=f-4|0;a=F[x>>2];if((a|0)==(m|0)){break t}i=(a|0)==-1;g=F[j+8>>2];if(!i&F[F[g+12>>2]+(a<<2)>>2]!=-1){break t}n=F[g+12>>2];if((m|0)!=-1&F[n+(m<<2)>>2]!=-1){break t}p=L(h,3);t=p+2|0;F[n+(a<<2)>>2]=t;c=t<<2;F[c+n>>2]=a;h=p+1|0;F[n+(m<<2)>>2]=h;w=h<<2;F[w+n>>2]=m;L:{M:{N:{if(!i){if((a>>>0)%3|0){h=a-1|0;break N}h=a+2|0;if((h|0)!=-1){break N}i=F[g>>2];h=-1;break M}h=-1;i=F[g>>2];F[i+(p<<2)>>2]=-1;r=-1;break L}i=F[g>>2];h=F[i+(h<<2)>>2]}F[(p<<2)+i>>2]=h;r=a+1|0;a=(r>>>0)%3|0?r:a-2|0;r=-1;if((a|0)==-1){break L}r=F[(a<<2)+i>>2]}F[i+w>>2]=r;O:{if((m|0)==-1){F[c+i>>2]=-1;r=-1;c=-1;break O}P:{Q:{R:{if((m>>>0)%3|0){a=m-1|0;break R}a=m+2|0;if((a|0)==-1){break Q}}a=F[(a<<2)+i>>2];F[c+i>>2]=a;if((a|0)==-1){break P}F[F[g+24>>2]+(a<<2)>>2]=t;break P}F[c+i>>2]=-1}r=-1;a=m+1|0;a=(a>>>0)%3|0?a:m-2|0;c=-1;if((a|0)==-1){break O}r=F[(a<<2)+i>>2];c=a}a=F[j+388>>2];t=h<<2;m=a+t|0;w=a;a=r<<2;F[m>>2]=F[m>>2]+F[w+a>>2];w=a;a=F[g+24>>2];m=w+a|0;if((h|0)!=-1){F[a+t>>2]=F[m>>2]}a=c;while(1){if((a|0)!=-1){F[(a<<2)+i>>2]=h;t=a+1|0;a=(t>>>0)%3|0?t:a-2|0;g=-1;S:{if((a|0)==-1){break S}a=F[n+(a<<2)>>2];g=-1;if((a|0)==-1){break S}g=a+1|0;g=(g>>>0)%3|0?g:a-2|0}a=g;if((c|0)!=(a|0)){continue}break t}break}F[m>>2]=-1;T:{U:{if(M){break U}if((y|0)!=(z|0)){F[z>>2]=r;z=z+4|0;F[l+28>>2]=z;break U}a=y-o|0;g=a>>2;c=g+1|0;if(c>>>0>=1073741824){break T}h=a>>>1|0;h=a>>>0>=2147483644?1073741823:c>>>0>>0?h:c;if(h){if(h>>>0>=1073741824){break p}c=ka(h<<2)}else{c=0}a=c+(g<<2)|0;F[a>>2]=r;z=a+4|0;if((o|0)!=(y|0)){while(1){a=a-4|0;y=y-4|0;F[a>>2]=F[y>>2];if((o|0)!=(y|0)){continue}break}}y=c+(h<<2)|0;F[l+32>>2]=y;F[l+28>>2]=z;F[l+24>>2]=a;if(o){ja(o)}o=a}F[x>>2]=p;c=f;kc(J,p);break u}break b}g=F[j+8>>2];Ma(g+24|0,8324);a=-1;k=F[j+8>>2];f=L(h,3);i=F[g+28>>2];m=F[g+24>>2];n=i-m|0;g=n>>2;p=g-1|0;F[F[k>>2]+(f<<2)>>2]=p;Ma(k+24|0,8324);r=f+1|0;F[F[k>>2]+(r<<2)>>2]=(F[k+28>>2]-F[k+24>>2]>>2)-1;k=F[j+8>>2];Ma(k+24|0,8324);t=f+2|0;F[F[k>>2]+(t<<2)>>2]=(F[k+28>>2]-F[k+24>>2]>>2)-1;x=F[j+8>>2];k=F[x+24>>2];if(F[x+28>>2]-k>>2>(C|0)){break r}V:{W:{if((i|0)!=(m|0)){F[k+(p<<2)>>2]=f;a=0;if((n|0)==-4){break W}}F[k+(g<<2)>>2]=r;a=g+1|0;if((a|0)==-1){break V}}F[k+(a<<2)>>2]=t}if((d|0)!=(c|0)){F[c>>2]=f;f=c+4|0;F[l+68>>2]=f;k=d;break v}a=d-b|0;k=a>>2;e=k+1|0;if(e>>>0>=1073741824){break b}c=a>>>1|0;a=a>>>0>=2147483644?1073741823:e>>>0>>0?c:e;if(a){if(a>>>0>=1073741824){break p}c=ka(a<<2)}else{c=0}e=c+(k<<2)|0;F[e>>2]=f;k=c+(a<<2)|0;f=e+4|0;if((b|0)!=(d|0)){while(1){e=e-4|0;d=d-4|0;F[e>>2]=F[d>>2];if((b|0)!=(d|0)){continue}break}}F[l+72>>2]=k;F[l+68>>2]=f;F[l+64>>2]=e;if(b){ja(b)}d=k;b=e}kc(J,F[f-4>>2]);a=F[j+40>>2];X:{if((a|0)==F[j+36>>2]){break X}c=a-12|0;g=F[c+4>>2];h=q+(h^-1)|0;if(g>>>0>h>>>0){break t}if((g|0)!=(h|0)){break X}i=G[a-4|0];g=F[c>>2];F[j+40>>2]=c;if((g|0)<0){break t}m=f-4|0;a=F[m>>2];F[l+20>>2]=q+(g^-1);c=l+20|0;F[l+88>>2]=c;Fb(l,l+40|0,c,l+88|0);g=F[l>>2];Y:{if(i&1){c=-1;if((a|0)==-1){break Y}c=a+1|0;c=(c>>>0)%3|0?c:a-2|0;break Y}c=-1;if((a|0)==-1){break Y}c=a-1|0;if((a>>>0)%3|0){break Y}c=a+2|0}F[g+12>>2]=c;a=F[j+40>>2];if((a|0)==F[j+36>>2]){break X}while(1){c=a-12|0;g=F[c+4>>2];if(g>>>0>h>>>0){break t}if((g|0)!=(h|0)){break X}i=G[a-4|0];g=F[c>>2];F[j+40>>2]=c;if((g|0)<0){break t}a=F[m>>2];F[l+20>>2]=q+(g^-1);c=l+20|0;F[l+88>>2]=c;Fb(l,l+40|0,c,l+88|0);g=F[l>>2];Z:{if(i&1){c=-1;if((a|0)==-1){break Z}c=a+1|0;c=(c>>>0)%3|0?c:a-2|0;break Z}c=-1;if((a|0)==-1){break Z}c=a-1|0;if((a>>>0)%3|0){break Z}c=a+2|0}F[g+12>>2]=c;a=F[j+40>>2];if((a|0)!=F[j+36>>2]){continue}break}}c=f}B=(q|0)>(s|0);if((q|0)!=(s|0)){continue}break}s=q;break s}a=-1;if(B){break r}}a=-1;c=F[j+8>>2];if(F[c+28>>2]-F[c+24>>2]>>2>(C|0)){break r}if((b|0)!=(f|0)){m=j+72|0;k=j+60|0;n=j+312|0;while(1){f=f-4|0;q=F[f>>2];F[l+68>>2]=f;_:{if(wa(n)){g=F[j+8>>2];o=F[g>>2];if(((F[g+4>>2]-o>>2>>>0)/3|0)<=(s|0)){a=-1;break r}b=-1;i=F[g+24>>2];a=-1;$:{if((q|0)==-1){break $}e=q+1|0;e=(e>>>0)%3|0?e:q-2|0;a=-1;if((e|0)==-1){break $}a=F[o+(e<<2)>>2]}e=a;a=F[i+(e<<2)>>2];aa:{if((a|0)==-1){h=1;c=-1;break aa}h=1;c=-1;d=a+1|0;a=(d>>>0)%3|0?d:a-2|0;if((a|0)==-1){break aa}h=0;b=a+1|0;b=(b>>>0)%3|0?b:a-2|0;if((b|0)!=-1){c=F[o+(b<<2)>>2]}b=a}a=-1;d=-1;i=F[i+(c<<2)>>2];if((i|0)!=-1){d=i+1|0;d=(d>>>0)%3|0?d:i-2|0}if((b|0)==(q|0)|(d|0)==(q|0)|((q|0)!=-1&F[F[g+12>>2]+(q<<2)>>2]!=-1|(b|0)==(d|0))){break r}if(!h&F[F[g+12>>2]+(b<<2)>>2]!=-1){break r}h=-1;g=F[g+12>>2];i=-1;ba:{if((d|0)==-1){break ba}if(F[g+(d<<2)>>2]!=-1){break r}a=d+1|0;a=(a>>>0)%3|0?a:d-2|0;i=-1;if((a|0)==-1){break ba}i=F[o+(a<<2)>>2]}a=L(s,3);F[l>>2]=a;F[g+(a<<2)>>2]=q;F[g+(q<<2)>>2]=a;a=F[l>>2]+1|0;F[g+(a<<2)>>2]=b;F[g+(b<<2)>>2]=a;a=F[l>>2]+2|0;F[g+(a<<2)>>2]=d;F[g+(d<<2)>>2]=a;a=F[l>>2];F[o+(a<<2)>>2]=c;b=a+1|0;d=o+(b<<2)|0;F[d>>2]=i;q=a+2|0;o=o+(q<<2)|0;F[o>>2]=e;a=F[j+120>>2];e=b?c:-1;c=a+(e>>>3&536870908)|0;g=F[c>>2];O=c,P=oi(e)&g,F[O>>2]=P;h=(b|0)!=-1?F[d>>2]:h;b=a+(h>>>3&536870908)|0;d=F[b>>2];O=b,P=oi(h)&d,F[O>>2]=P;d=-1;d=(q|0)!=-1?F[o>>2]:d;a=a+(d>>>3&536870908)|0;b=F[a>>2];O=a,P=oi(d)&b,F[O>>2]=P;D[l+88|0]=1;wd(k,l+88|0);Ma(m,l);s=s+1|0;b=F[l+64>>2];break _}d=F[j+64>>2];a=F[j+68>>2];if((d|0)==a<<5){if((d+1|0)<0){break b}if(d>>>0<=1073741822){a=a<<6;d=(d&-32)+32|0;a=a>>>0>d>>>0?a:d}else{a=2147483647}$a(k,a);d=F[j+64>>2]}F[j+64>>2]=d+1;a=F[j+60>>2]+(d>>>3&536870908)|0;e=F[a>>2];O=a,P=oi(d)&e,F[O>>2]=P;d=F[j+76>>2];if((d|0)!=F[j+80>>2]){F[d>>2]=q;F[j+76>>2]=d+4;break _}c=F[m>>2];a=d-c|0;o=a>>2;e=o+1|0;if(e>>>0>=1073741824){break b}h=a>>>1|0;h=a>>>0>=2147483644?1073741823:e>>>0>>0?h:e;if(h){if(h>>>0>=1073741824){break p}a=ka(h<<2)}else{a=0}e=a+(o<<2)|0;F[e>>2]=q;q=e+4|0;if((d|0)!=(c|0)){while(1){e=e-4|0;d=d-4|0;F[e>>2]=F[d>>2];if((d|0)!=(c|0)){continue}break}}F[j+80>>2]=a+(h<<2);F[j+76>>2]=q;F[j+72>>2]=e;if(!c){break _}ja(c)}if((b|0)!=(f|0)){continue}break}c=F[j+8>>2]}a=-1;if(((F[c+4>>2]-F[c>>2]>>2>>>0)/3|0)!=(s|0)){break r}a=F[c+28>>2]-F[c+24>>2]>>2;f=F[l+24>>2];h=F[l+28>>2];if((f|0)==(h|0)){break q}while(1){b=F[f>>2];k=F[c+24>>2];d=a-1|0;e=k+(d<<2)|0;if(F[e>>2]==-1){while(1){d=a-2|0;a=a-1|0;e=k+(d<<2)|0;if(F[e>>2]==-1){continue}break}}if(b>>>0<=d>>>0){F[l>>2]=c;e=F[e>>2];D[l+12|0]=1;F[l+8>>2]=e;F[l+4>>2]=e;if((e|0)!=-1){while(1){e=F[F[j+8>>2]>>2]+(e<<2)|0;if(F[e>>2]!=(d|0)){a=-1;break r}F[e>>2]=b;nc(l);e=F[l+8>>2];if((e|0)!=-1){continue}break}c=F[j+8>>2]}k=F[c+24>>2];e=k+(d<<2)|0;if((b|0)!=-1){F[k+(b<<2)>>2]=F[e>>2]}F[e>>2]=-1;e=1<>2];b=k+(b>>>3&536870908)|0;k=k+(d>>>3&536870908)|0;d=1<>2]&d){e=e|F[b>>2]}else{e=F[b>>2]&(e^-1)}F[b>>2]=e;F[k>>2]=F[k>>2]&(d^-1);a=a-1|0}f=f+4|0;if((h|0)!=(f|0)){continue}break}}f=F[l+24>>2]}if(f){ja(f)}b=F[l+48>>2];if(b){while(1){d=F[b>>2];ja(b);b=d;if(b){continue}break}}b=F[l+40>>2];F[l+40>>2]=0;if(b){ja(b)}b=F[l+64>>2];if(b){F[l+68>>2]=b;ja(b)}Z=l+96|0;break o}oa();v()}f=a;if((a|0)==-1){break n}a=K;b=F[a+16>>2];d=b+F[a>>2]|0;b=F[a+8>>2]-b|0;a=F[F[j+4>>2]+32>>2];E[a+38>>1]=H[a+38>>1];F[a>>2]=d;F[a+16>>2]=0;F[a+20>>2]=0;F[a+8>>2]=b;F[a+12>>2]=0;ca:{if(F[j+216>>2]==F[j+220>>2]){break ca}a=F[j+8>>2];if(F[a+4>>2]==F[a>>2]){break ca}b=0;while(1){if(Ad(j,b)){b=b+3|0;a=F[j+8>>2];if(b>>>0>2]-F[a>>2]>>2>>>0){continue}break ca}break}break n}if(G[j+308|0]){D[j+308|0]=0;d=F[j+292>>2];a=0;e=F[j+304>>2]+7|0;a=e>>>0<7?1:a;e=a<<29|e>>>3;b=e+F[j+288>>2]|0;a=(a>>>3|0)+d|0;F[j+288>>2]=b;F[j+292>>2]=b>>>0>>0?a+1|0:a}b=F[j+216>>2];if((b|0)!=F[j+220>>2]){a=0;while(1){e=L(a,144);Zc((e+b|0)+4|0,F[j+8>>2]);d=F[A>>2];c=d+e|0;b=F[c+132>>2];c=F[c+136>>2];if((b|0)!=(c|0)){while(1){Xc((e+F[A>>2]|0)+4|0,F[b>>2]);b=b+4|0;if((c|0)!=(b|0)){continue}break}d=F[A>>2]}if(!Yc((d+e|0)+4|0)){break n}a=a+1|0;b=F[j+216>>2];if(a>>>0<(F[j+220>>2]-b|0)/144>>>0){continue}break}}a=F[j+8>>2];Hb(j+184|0,F[a+28>>2]-F[a+24>>2]>>2);d=F[j+216>>2];if((d|0)!=F[j+220>>2]){b=0;while(1){a=L(b,144)+d|0;d=F[a+60>>2]-F[a+56>>2]>>2;c=a+104|0;a=F[j+8>>2];a=F[a+28>>2]-F[a+24>>2]>>2;Hb(c,(a|0)<(d|0)?d:a);b=b+1|0;d=F[j+216>>2];if(b>>>0<(F[j+220>>2]-d|0)/144>>>0){continue}break}}N=zd(j,f)}}Z=u- -64|0;return N|0}na();v()}function lh(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,J=0,K=0,M=0,N=0;t=Z+-64|0;Z=t;F[a+132>>2]=0;if(F[a+148>>2]){c=F[a+144>>2];if(c){while(1){b=F[c>>2];ja(c);c=b;if(b){continue}break}}c=0;F[a+144>>2]=0;b=F[a+140>>2];a:{if(!b){break a}if(b>>>0>=4){h=b&-4;while(1){e=c<<2;F[e+F[a+136>>2]>>2]=0;F[F[a+136>>2]+(e|4)>>2]=0;F[F[a+136>>2]+(e|8)>>2]=0;F[F[a+136>>2]+(e|12)>>2]=0;c=c+4|0;g=g+4|0;if((h|0)!=(g|0)){continue}break}}b=b&3;if(!b){break a}g=0;while(1){F[F[a+136>>2]+(c<<2)>>2]=0;c=c+1|0;g=g+1|0;if((b|0)!=(g|0)){continue}break}}F[a+148>>2]=0}b:{if(!Da(1,t+60|0,F[F[a+4>>2]+32>>2])){break b}F[a+156>>2]=F[t+60>>2];if(!Da(1,t+56|0,F[F[a+4>>2]+32>>2])){break b}e=F[t+56>>2];if(e>>>0>1431655765|I[a+156>>2]>L(e,3)>>>0){break b}c=F[F[a+4>>2]+32>>2];h=F[c+8>>2];m=F[c+12>>2];b=F[c+20>>2];g=F[c+16>>2];if((m|0)<=(b|0)&g>>>0>=h>>>0|(b|0)>(m|0)){break b}h=G[g+F[c>>2]|0];g=g+1|0;b=g?b:b+1|0;F[c+16>>2]=g;F[c+20>>2]=b;if(!Da(1,t+52|0,c)){break b}n=F[t+52>>2];if(n>>>0>e>>>0|e>>>0>n+((n>>>0)/3|0)>>>0){break b}if(!Da(1,t+48|0,F[F[a+4>>2]+32>>2])){break b}c=F[t+48>>2];if(c>>>0>n>>>0){break b}F[a+28>>2]=F[a+24>>2];g=Zb(ka(88));b=F[a+8>>2];F[a+8>>2]=g;if(b){Za(b);if(!F[a+8>>2]){break b}}F[a+164>>2]=F[a+160>>2];Ib(a+160|0,e);F[a+176>>2]=F[a+172>>2];Ib(a+172|0,e);F[a- -64>>2]=0;F[a+92>>2]=-1;F[a+84>>2]=-1;F[a+88>>2]=-1;F[a+40>>2]=F[a+36>>2];F[a+52>>2]=F[a+48>>2];F[a+76>>2]=F[a+72>>2];y=a+216|0;Dd(y);Cd(y,h);if(!_c(F[a+8>>2],e,c+F[a+156>>2]|0)){break b}b=F[a+156>>2];D[t+8|0]=1;Ea(a+120|0,b+c|0,t+8|0);if((Bd(a,F[F[a+4>>2]+32>>2])|0)==-1){break b}c=a+232|0;F[c+144>>2]=a;b=F[($[F[F[a>>2]+32>>2]](a)|0)+32>>2];b=F[b>>2]+F[b+16>>2]|0;g=F[($[F[F[a>>2]+32>>2]](a)|0)+32>>2];g=F[g+8>>2]-F[g+16>>2]|0;M=c,N=H[F[($[F[F[a>>2]+32>>2]](a)|0)+32>>2]+38>>1],E[M+38>>1]=N;F[c>>2]=b;F[c+16>>2]=0;F[c+20>>2]=0;F[c+8>>2]=g;F[c+12>>2]=0;F[a+372>>2]=h;C=Ja(t+8|0);h=C;m=0;d=Z-16|0;Z=d;b=F[c+4>>2];F[c+40>>2]=F[c>>2];F[c+44>>2]=b;b=F[c+36>>2];F[c+72>>2]=F[c+32>>2];F[c+76>>2]=b;g=F[c+28>>2];b=c- -64|0;F[b>>2]=F[c+24>>2];F[b+4>>2]=g;b=F[c+20>>2];F[c+56>>2]=F[c+16>>2];F[c+60>>2]=b;b=F[c+12>>2];F[c+48>>2]=F[c+8>>2];F[c+52>>2]=b;c:{d:{if(hc(c+40|0,1,d+8|0)){b=F[c+44>>2];F[c>>2]=F[c+40>>2];F[c+4>>2]=b;b=F[c+76>>2];F[c+32>>2]=F[c+72>>2];F[c+36>>2]=b;b=F[c+68>>2];F[c+24>>2]=F[c+64>>2];F[c+28>>2]=b;g=F[c+60>>2];f=g;b=F[c+56>>2];F[c+16>>2]=b;F[c+20>>2]=g;e=F[c+52>>2];g=F[c+48>>2];F[c+8>>2]=g;F[c+12>>2]=e;k=F[d+12>>2];i=e-((b>>>0>g>>>0)+f|0)|0;e=g-b|0;g=F[d+8>>2];if((k|0)==(i|0)&e>>>0>=g>>>0|i>>>0>k>>>0){break d}}break c}e=f+k|0;b=b+g|0;e=b>>>0>>0?e+1|0:e;F[c+16>>2]=b;F[c+20>>2]=e;if(!Aa(c+80|0,c)){break c}if(!yd(c)){break c}b=F[c+4>>2];F[h>>2]=F[c>>2];F[h+4>>2]=b;b=F[c+36>>2];F[h+32>>2]=F[c+32>>2];F[h+36>>2]=b;b=F[c+28>>2];F[h+24>>2]=F[c+24>>2];F[h+28>>2]=b;b=F[c+20>>2];F[h+16>>2]=F[c+16>>2];F[h+20>>2]=b;b=F[c+12>>2];F[h+8>>2]=F[c+8>>2];F[h+12>>2]=b;m=1}Z=d+16|0;e:{if(!m){break e}b=0;c=0;g=0;m=0;j=Z-96|0;Z=j;F[j+72>>2]=0;F[j+64>>2]=0;F[j+68>>2]=0;F[j+48>>2]=0;F[j+52>>2]=0;F[j+40>>2]=0;F[j+44>>2]=0;F[j+56>>2]=1065353216;F[j+32>>2]=0;F[j+24>>2]=0;F[j+28>>2]=0;h=a;B=F[a+124>>2];f:{g:{h:{i:{j:{k:{l:{m:{if((n|0)<=0){break m}J=F[h+216>>2]!=F[h+220>>2];z=1;while(1){e=m;m=e+1|0;n:{o:{p:{q:{r:{s:{t:{u:{v:{w:{x:{y:{z:{A:{B:{if(!G[h+308|0]){break B}k=F[h+296>>2];d=F[h+304>>2];a=k+(d>>>3|0)|0;l=F[h+300>>2];if(a>>>0>=l>>>0){break B}f=G[a|0];a=d+1|0;F[h+304>>2]=a;p=f>>>(d&7)&1;if(!p){break B}i=0;f=a>>>3|0;r=k+f|0;C:{if(r>>>0>=l>>>0){d=a;a=0;break C}r=G[r|0];d=d+2|0;F[h+304>>2]=d;f=d>>>3|0;a=r>>>(a&7)&1}f=f+k|0;if(f>>>0>>0){f=G[f|0];F[h+304>>2]=d+1;i=f>>>(d&7)<<1&2}f=-1;i=p|(a|i)<<1;switch(i-1|0){case 6:break y;case 0:break z;case 2:case 4:break A;default:break l}}if((c|0)==(g|0)){f=-1;break l}d=-1;i=F[h+8>>2];z=F[i+24>>2];r=c-4|0;b=F[r>>2];a=-1;D:{if((b|0)==-1){break D}k=b+1|0;k=(k>>>0)%3|0?k:b-2|0;a=-1;if((k|0)==-1){break D}a=F[F[i>>2]+(k<<2)>>2]}f=F[z+(a<<2)>>2];if((f|0)!=-1){d=f+1|0;d=(d>>>0)%3|0?d:f-2|0}if((b|0)==(d|0)){f=-1;break l}if((b|0)!=-1){f=-1;if(F[F[i+12>>2]+(b<<2)>>2]!=-1){break l}}k=F[i+12>>2];if((d|0)!=-1){f=-1;if(F[k+(d<<2)>>2]!=-1){break l}}l=L(e,3);e=l+1|0;F[k+(b<<2)>>2]=e;s=e<<2;F[s+k>>2]=b;p=l+2|0;F[k+(d<<2)>>2]=p;u=p<<2;F[u+k>>2]=d;k=-1;e=-1;E:{if((b|0)==-1){break E}F:{if((b>>>0)%3|0){b=b-1|0;break F}b=b+2|0;e=-1;if((b|0)==-1){break E}}e=F[F[i>>2]+(b<<2)>>2]}b=e;G:{if((d|0)==-1){break G}e=d+1|0;e=(e>>>0)%3|0?e:d-2|0;if((e|0)==-1){break G}k=F[F[i>>2]+(e<<2)>>2]}f=-1;if((a|0)==(b|0)|(a|0)==(k|0)){break l}e=F[i>>2];F[e+(l<<2)>>2]=a;F[e+s>>2]=k;F[e+u>>2]=b;if((b|0)!=-1){F[z+(b<<2)>>2]=p}b=F[h+120>>2]+(a>>>3&536870908)|0;e=F[b>>2];M=b,N=oi(a)&e,F[M>>2]=N;F[r>>2]=l;b=g;break n}if((c|0)==(g|0)){break l}r=c-4|0;b=F[r>>2];a=F[h+8>>2];d=F[a+12>>2];if((b|0)!=-1&F[d+(b<<2)>>2]!=-1){break l}l=(i|0)==5;i=L(e,3);p=(l?2:1)+i|0;s=p<<2;F[s+d>>2]=b;F[d+(b<<2)>>2]=p;Ma(a+24|0,8324);d=F[h+8>>2];k=F[d+24>>2];if(F[d+28>>2]-k>>2>(B|0)){break l}d=F[d>>2];u=d+s|0;f=F[a+28>>2];a=F[a+24>>2];s=(f-a>>2)-1|0;F[u>>2]=s;if((a|0)!=(f|0)){F[k+(s<<2)>>2]=p}f=l?i:i+2|0;l=d+(i+l<<2)|0;H:{if((b|0)==-1){F[d+(f<<2)>>2]=-1;a=-1;break H}I:{J:{K:{if((b>>>0)%3|0){a=b-1|0;break K}a=b+2|0;if((a|0)==-1){break J}}a=F[d+(a<<2)>>2];F[d+(f<<2)>>2]=a;if((a|0)==-1){break I}F[k+(a<<2)>>2]=f;break I}F[d+(f<<2)>>2]=-1}f=b+1|0;b=(f>>>0)%3|0?f:b-2|0;a=-1;if((b|0)==-1){break H}a=F[d+(b<<2)>>2]}F[l>>2]=a;F[r>>2]=i;b=g;break t}if((b|0)==(c|0)){break l}a=c-4|0;k=F[a>>2];F[j+68>>2]=a;l=F[j+44>>2];L:{if(!l){c=a;break L}f=F[j+40>>2];p=ni(l)>>>0>1;d=e&l+2147483647;M:{if(!p){break M}d=e;if(d>>>0>>0){break M}d=(e>>>0)%(l>>>0)|0}i=d;d=F[f+(i<<2)>>2];if(!d){c=a;break L}d=F[d>>2];if(!d){c=a;break L}N:{if(!p){f=l-1|0;while(1){l=F[d+4>>2];O:{if((l|0)!=(e|0)){if((i|0)==(f&l)){break O}c=a;break L}if((e|0)==F[d+8>>2]){break N}}d=F[d>>2];if(d){continue}break}c=a;break L}while(1){f=F[d+4>>2];P:{if((f|0)!=(e|0)){if(f>>>0>=l>>>0){f=(f>>>0)%(l>>>0)|0}if((f|0)==(i|0)){break P}c=a;break L}if((e|0)==F[d+8>>2]){break N}}d=F[d>>2];if(d){continue}break}c=a;break L}if((a|0)!=(q|0)){F[a>>2]=F[d+12>>2];F[j+68>>2]=c;break L}a=q-b|0;g=a>>2;c=g+1|0;if(c>>>0>=1073741824){break x}f=a>>>1|0;f=a>>>0>=2147483644?1073741823:c>>>0>>0?f:c;if(f){if(f>>>0>=1073741824){break j}a=ka(f<<2)}else{a=0}g=a+(g<<2)|0;F[g>>2]=F[d+12>>2];c=g+4|0;if((b|0)!=(q|0)){while(1){g=g-4|0;q=q-4|0;F[g>>2]=F[q>>2];if((b|0)!=(q|0)){continue}break}}q=a+(f<<2)|0;F[j+72>>2]=q;F[j+68>>2]=c;F[j+64>>2]=g;if(b){ja(b)}}if((c|0)==(g|0)){break p}s=c-4|0;b=F[s>>2];if((b|0)==(k|0)){break p}a=(b|0)==-1;f=F[h+8>>2];if(!a&F[F[f+12>>2]+(b<<2)>>2]!=-1){break p}l=F[f+12>>2];if((k|0)!=-1&F[l+(k<<2)>>2]!=-1){break p}p=L(e,3);r=p+2|0;F[l+(b<<2)>>2]=r;e=r<<2;F[e+l>>2]=b;d=p+1|0;F[l+(k<<2)>>2]=d;u=d<<2;F[u+l>>2]=k;if(a){break w}if((b>>>0)%3|0){d=b-1|0;break s}d=b+2|0;if((d|0)!=-1){break s}a=F[f>>2];d=-1;break r}i=F[h+8>>2];Ma(i+24|0,8324);d=F[h+8>>2];a=L(e,3);k=F[i+28>>2];l=F[i+24>>2];p=k-l|0;i=p>>2;r=i-1|0;F[F[d>>2]+(a<<2)>>2]=r;Ma(d+24|0,8324);s=a+1|0;F[F[d>>2]+(s<<2)>>2]=(F[d+28>>2]-F[d+24>>2]>>2)-1;d=F[h+8>>2];Ma(d+24|0,8324);u=a+2|0;F[F[d>>2]+(u<<2)>>2]=(F[d+28>>2]-F[d+24>>2]>>2)-1;A=F[h+8>>2];d=F[A+24>>2];if(F[A+28>>2]-d>>2>(B|0)){break l}Q:{R:{if((k|0)!=(l|0)){F[d+(r<<2)>>2]=a;f=0;if((p|0)==-4){break R}}F[d+(i<<2)>>2]=s;f=i+1|0;if((f|0)==-1){break Q}}F[d+(f<<2)>>2]=u}if((c|0)!=(q|0)){F[c>>2]=a;c=c+4|0;F[j+68>>2]=c;break t}g=c-b|0;i=g>>2;d=i+1|0;if(d>>>0>=1073741824){break v}f=g>>>1|0;d=g>>>0>=2147483644?1073741823:d>>>0>>0?f:d;if(d){if(d>>>0>=1073741824){break j}f=ka(d<<2)}else{f=0}g=f+(i<<2)|0;F[g>>2]=a;q=f+(d<<2)|0;a=g+4|0;if((b|0)!=(c|0)){while(1){g=g-4|0;c=c-4|0;F[g>>2]=F[c>>2];if((b|0)!=(c|0)){continue}break}}F[j+72>>2]=q;F[j+68>>2]=a;F[j+64>>2]=g;if(!b){break u}ja(b);break u}na();v()}d=-1;a=F[f>>2];F[a+(p<<2)>>2]=-1;i=-1;break q}na();v()}c=a;b=g}a=F[h+40>>2];if((a|0)==F[h+36>>2]){break n}d=a-12|0;i=F[d+4>>2];f=n+(e^-1)|0;if(i>>>0>f>>>0){break p}if((f|0)!=(i|0)){break n}i=G[a-4|0];e=F[d>>2];F[h+40>>2]=d;if((e|0)<0){break p}k=c-4|0;a=F[k>>2];F[j+20>>2]=n+(e^-1);e=j+20|0;F[j+88>>2]=e;Fb(j,j+40|0,e,j+88|0);d=F[j>>2];S:{if(i&1){e=-1;if((a|0)==-1){break S}e=a+1|0;e=(e>>>0)%3|0?e:a-2|0;break S}e=-1;if((a|0)==-1){break S}e=a-1|0;if((a>>>0)%3|0){break S}e=a+2|0}F[d+12>>2]=e;d=F[h+40>>2];if((d|0)==F[h+36>>2]){break n}while(1){a=d-12|0;e=F[a+4>>2];if(e>>>0>f>>>0){break p}if((f|0)!=(e|0)){break n}d=G[d-4|0];e=F[a>>2];F[h+40>>2]=a;if((e|0)<0){break p}a=F[k>>2];F[j+20>>2]=n+(e^-1);e=j+20|0;F[j+88>>2]=e;Fb(j,j+40|0,e,j+88|0);i=F[j>>2];T:{if(d&1){e=-1;if((a|0)==-1){break T}e=a+1|0;e=(e>>>0)%3|0?e:a-2|0;break T}e=-1;if((a|0)==-1){break T}e=a-1|0;if((a>>>0)%3|0){break T}e=a+2|0}F[i+12>>2]=e;d=F[h+40>>2];if((d|0)!=F[h+36>>2]){continue}break}break n}a=F[f>>2];d=F[a+(d<<2)>>2]}F[(p<<2)+a>>2]=d;A=b+1|0;b=(A>>>0)%3|0?A:b-2|0;i=-1;if((b|0)==-1){break q}i=F[(b<<2)+a>>2]}F[a+u>>2]=i;U:{if((k|0)==-1){F[a+e>>2]=-1;i=-1;e=-1;break U}V:{W:{X:{if((k>>>0)%3|0){b=k-1|0;break X}b=k+2|0;if((b|0)==-1){break W}}b=F[(b<<2)+a>>2];F[a+e>>2]=b;if((b|0)==-1){break V}F[F[f+24>>2]+(b<<2)>>2]=r;break V}F[a+e>>2]=-1}i=-1;b=k+1|0;b=(b>>>0)%3|0?b:k-2|0;e=-1;if((b|0)==-1){break U}i=F[(b<<2)+a>>2];e=b}b=F[f+24>>2];k=b+(i<<2)|0;if((d|0)!=-1){F[b+(d<<2)>>2]=F[k>>2]}b=e;while(1){if((b|0)==-1){break o}F[(b<<2)+a>>2]=d;r=b+1|0;b=(r>>>0)%3|0?r:b-2|0;f=-1;Y:{if((b|0)==-1){break Y}b=F[l+(b<<2)>>2];f=-1;if((b|0)==-1){break Y}f=b+1|0;f=(f>>>0)%3|0?f:b-2|0}b=f;if((e|0)!=(b|0)){continue}break}}f=-1;if(!z){break m}break l}F[k>>2]=-1;Z:{if(J){break Z}if((w|0)!=(x|0)){F[x>>2]=i;x=x+4|0;F[j+28>>2]=x;break Z}a=w-o|0;d=a>>2;b=d+1|0;if(b>>>0>=1073741824){break i}e=a>>>1|0;e=a>>>0>=2147483644?1073741823:b>>>0>>0?e:b;if(e){if(e>>>0>=1073741824){break j}a=ka(e<<2)}else{a=0}b=a+(d<<2)|0;F[b>>2]=i;x=b+4|0;if((o|0)!=(w|0)){while(1){b=b-4|0;w=w-4|0;F[b>>2]=F[w>>2];if((o|0)!=(w|0)){continue}break}}w=a+(e<<2)|0;F[j+32>>2]=w;F[j+28>>2]=x;F[j+24>>2]=b;if(o){ja(o)}o=b}F[s>>2]=p;b=g}z=(m|0)<(n|0);if((m|0)!=(n|0)){continue}break}m=n}f=-1;a=F[h+8>>2];if(F[a+28>>2]-F[a+24>>2]>>2>(B|0)){break l}if((c|0)!=(g|0)){l=h+72|0;e=h+60|0;w=h+312|0;while(1){c=c-4|0;i=F[c>>2];F[j+68>>2]=c;_:{if(wa(w)){q=F[h+8>>2];k=F[q>>2];if(((F[q+4>>2]-k>>2>>>0)/3|0)<=(m|0)){f=-1;break l}a=-1;f=-1;b=-1;x=F[q+24>>2];g=-1;$:{if((i|0)==-1){break $}n=i+1|0;n=(n>>>0)%3|0?n:i-2|0;g=-1;if((n|0)==-1){break $}g=F[k+(n<<2)>>2]}n=g;o=F[x+(n<<2)>>2];aa:{if((o|0)==-1){d=1;g=-1;break aa}d=1;p=o+1|0;o=(p>>>0)%3|0?p:o-2|0;g=-1;if((o|0)==-1){break aa}d=0;a=o;g=a+1|0;g=(g>>>0)%3|0?g:a-2|0;if((g|0)!=-1){g=F[k+(g<<2)>>2]}else{g=-1}}o=F[(g<<2)+x>>2];if((o|0)!=-1){b=o+1|0;b=(b>>>0)%3|0?b:o-2|0}if((a|0)==(i|0)|(b|0)==(i|0)|((i|0)!=-1&F[F[q+12>>2]+(i<<2)>>2]!=-1|(a|0)==(b|0))){break l}if(!d&F[F[q+12>>2]+(a<<2)>>2]!=-1){break l}d=-1;o=F[q+12>>2];q=-1;ba:{if((b|0)==-1){break ba}if(F[o+(b<<2)>>2]!=-1){break l}f=b+1|0;f=(f>>>0)%3|0?f:b-2|0;q=-1;if((f|0)==-1){break ba}q=F[k+(f<<2)>>2]}f=L(m,3);F[j>>2]=f;F[o+(f<<2)>>2]=i;F[o+(i<<2)>>2]=f;f=F[j>>2]+1|0;F[o+(f<<2)>>2]=a;F[o+(a<<2)>>2]=f;a=F[j>>2]+2|0;F[o+(a<<2)>>2]=b;F[o+(b<<2)>>2]=a;a=F[j>>2];F[k+(a<<2)>>2]=g;b=a+1|0;f=k+(b<<2)|0;F[f>>2]=q;o=a+2|0;i=k+(o<<2)|0;F[i>>2]=n;a=F[h+120>>2];g=b?g:-1;n=a+(g>>>3&536870908)|0;k=F[n>>2];M=n,N=oi(g)&k,F[M>>2]=N;d=(b|0)!=-1?F[f>>2]:d;b=a+(d>>>3&536870908)|0;g=F[b>>2];M=b,N=oi(d)&g,F[M>>2]=N;b=-1;b=(o|0)!=-1?F[i>>2]:b;a=a+(b>>>3&536870908)|0;g=F[a>>2];M=a,N=oi(b)&g,F[M>>2]=N;D[j+88|0]=1;wd(e,j+88|0);Ma(l,j);m=m+1|0;g=F[j+64>>2];break _}b=F[h+64>>2];a=F[h+68>>2];if((b|0)==a<<5){if((b+1|0)<0){break h}if(b>>>0<=1073741822){a=a<<6;b=(b&-32)+32|0;a=a>>>0>b>>>0?a:b}else{a=2147483647}$a(e,a);b=F[h+64>>2]}F[h+64>>2]=b+1;a=F[h+60>>2]+(b>>>3&536870908)|0;d=F[a>>2];M=a,N=oi(b)&d,F[M>>2]=N;b=F[h+76>>2];if((b|0)!=F[h+80>>2]){F[b>>2]=i;F[h+76>>2]=b+4;break _}f=F[l>>2];a=b-f|0;o=a>>2;d=o+1|0;if(d>>>0>=1073741824){break g}n=a>>>1|0;n=a>>>0>=2147483644?1073741823:d>>>0>>0?n:d;if(n){if(n>>>0>=1073741824){break j}a=ka(n<<2)}else{a=0}d=a+(o<<2)|0;F[d>>2]=i;o=d+4|0;if((b|0)!=(f|0)){while(1){d=d-4|0;b=b-4|0;F[d>>2]=F[b>>2];if((b|0)!=(f|0)){continue}break}}F[h+80>>2]=a+(n<<2);F[h+76>>2]=o;F[h+72>>2]=d;if(!f){break _}ja(f)}if((c|0)!=(g|0)){continue}break}a=F[h+8>>2]}f=-1;if(((F[a+4>>2]-F[a>>2]>>2>>>0)/3|0)!=(m|0)){break l}f=F[a+28>>2]-F[a+24>>2]>>2;c=F[j+24>>2];n=F[j+28>>2];if((c|0)==(n|0)){break k}while(1){g=F[c>>2];e=F[a+24>>2];b=f-1|0;d=e+(b<<2)|0;if(F[d>>2]==-1){while(1){b=f-2|0;f=f-1|0;d=e+(b<<2)|0;if(F[d>>2]==-1){continue}break}}if(b>>>0>=g>>>0){F[j>>2]=a;d=F[d>>2];D[j+12|0]=1;F[j+8>>2]=d;F[j+4>>2]=d;if((d|0)!=-1){while(1){a=F[F[h+8>>2]>>2]+(d<<2)|0;if(F[a>>2]!=(b|0)){f=-1;break l}F[a>>2]=g;nc(j);d=F[j+8>>2];if((d|0)!=-1){continue}break}a=F[h+8>>2]}m=F[a+24>>2];e=m+(b<<2)|0;if((g|0)!=-1){F[m+(g<<2)>>2]=F[e>>2]}F[e>>2]=-1;e=1<>2];g=m+(g>>>3&536870908)|0;d=1<>>3&536870908)|0;if(d&F[m>>2]){b=e|F[g>>2]}else{b=F[g>>2]&(e^-1)}F[g>>2]=b;F[m>>2]=F[m>>2]&(d^-1);f=f-1|0}c=c+4|0;if((n|0)!=(c|0)){continue}break}}c=F[j+24>>2]}if(c){ja(c)}a=F[j+48>>2];if(a){while(1){c=F[a>>2];ja(a);a=c;if(a){continue}break}}a=F[j+40>>2];F[j+40>>2]=0;if(a){ja(a)}a=F[j+64>>2];if(a){F[j+68>>2]=a;ja(a)}Z=j+96|0;a=f;break f}oa();v()}na();v()}na();v()}na();v()}b=a;if((a|0)==-1){break e}a=C;c=F[a+16>>2];g=c+F[a>>2]|0;c=F[a+8>>2]-c|0;a=F[F[h+4>>2]+32>>2];E[a+38>>1]=H[a+38>>1];F[a>>2]=g;F[a+16>>2]=0;F[a+20>>2]=0;F[a+8>>2]=c;F[a+12>>2]=0;ca:{if(F[h+216>>2]==F[h+220>>2]){break ca}a=F[h+8>>2];if(F[a+4>>2]==F[a>>2]){break ca}c=0;while(1){if(Ad(h,c)){c=c+3|0;a=F[h+8>>2];if(c>>>0>2]-F[a>>2]>>2>>>0){continue}break ca}break}break e}if(G[h+308|0]){D[h+308|0]=0;g=F[h+292>>2];a=0;e=F[h+304>>2]+7|0;a=e>>>0<7?1:a;c=a>>>3|0;m=a<<29|e>>>3;a=m+F[h+288>>2]|0;e=c+g|0;F[h+288>>2]=a;F[h+292>>2]=a>>>0>>0?e+1|0:e}c=F[h+216>>2];if((c|0)!=F[h+220>>2]){a=0;while(1){e=L(a,144);Zc((e+c|0)+4|0,F[h+8>>2]);g=F[y>>2];m=g+e|0;c=F[m+132>>2];m=F[m+136>>2];if((c|0)!=(m|0)){while(1){Xc((e+F[y>>2]|0)+4|0,F[c>>2]);c=c+4|0;if((m|0)!=(c|0)){continue}break}g=F[y>>2]}if(!Yc((g+e|0)+4|0)){break e}a=a+1|0;c=F[h+216>>2];if(a>>>0<(F[h+220>>2]-c|0)/144>>>0){continue}break}}a=F[h+8>>2];Hb(h+184|0,F[a+28>>2]-F[a+24>>2]>>2);g=F[h+216>>2];if((g|0)!=F[h+220>>2]){c=0;while(1){a=L(c,144)+g|0;g=F[a+60>>2]-F[a+56>>2]>>2;e=a+104|0;a=F[h+8>>2];a=F[a+28>>2]-F[a+24>>2]>>2;Hb(e,(a|0)<(g|0)?g:a);c=c+1|0;g=F[h+216>>2];if(c>>>0<(F[h+220>>2]-g|0)/144>>>0){continue}break}}K=zd(h,b)}}Z=t- -64|0;return K|0}function Cf(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,E=0,H=0,I=0,J=0,K=0,M=0,N=0,O=0;B=c;c=0;m=Z-96|0;Z=m;l=m+16|0;ma(l,0,76);F[m+92>>2]=-1;F[m+8>>2]=0;F[m>>2]=0;F[m+4>>2]=0;r=Z-16|0;Z=r;F[l+68>>2]=0;F[l+72>>2]=0;F[l>>2]=b;s=Z-16|0;Z=s;u=b;a=F[b+20>>2];a:{if((F[b+24>>2]-a|0)<=0){break a}a=F[a>>2];if((a|0)==-1){break a}c=F[F[u+8>>2]+(a<<2)>>2]}b:{c:{d:{if(!c){a=0;break d}a=F[u+100>>2];e=F[u+96>>2];F[s+8>>2]=0;F[s>>2]=0;F[s+4>>2]=0;f=a-e|0;b=(f|0)/12|0;e:{if((a|0)==(e|0)){break e}if(b>>>0>=357913942){break c}d=ka(f);F[s>>2]=d;F[s+8>>2]=d+L(b,12);a=0;n=d;f=f-12|0;d=(f-((f>>>0)%12|0)|0)+12|0;f=ma(n,0,d);F[s+4>>2]=d+f;if(G[c+84|0]){c=b>>>0<=1?1:b;h=c&1;if(b>>>0>=2){g=c&-2;c=0;while(1){d=L(a,12);b=d+e|0;i=F[b+4>>2];j=F[b>>2];d=d+f|0;F[d+8>>2]=F[b+8>>2];F[d>>2]=j;F[d+4>>2]=i;d=L(a|1,12);b=d+e|0;i=F[b+4>>2];j=F[b>>2];d=d+f|0;F[d+8>>2]=F[b+8>>2];F[d>>2]=j;F[d+4>>2]=i;a=a+2|0;c=c+2|0;if((g|0)!=(c|0)){continue}break}}if(!h){break e}b=L(a,12);a=b+e|0;c=F[a+4>>2];e=F[a>>2];b=b+f|0;F[b+8>>2]=F[a+8>>2];F[b>>2]=e;F[b+4>>2]=c;break e}h=b>>>0<=1?1:b;a=F[c+68>>2];c=0;while(1){d=L(c,12);b=d+e|0;g=F[a+(F[b>>2]<<2)>>2];i=F[a+(F[b+4>>2]<<2)>>2];d=d+f|0;F[d+8>>2]=F[a+(F[b+8>>2]<<2)>>2];F[d+4>>2]=i;F[d>>2]=g;c=c+1|0;if((h|0)!=(c|0)){continue}break}}d=0;H=Z-16|0;Z=H;h=ka(88);Zb(h);C=Z-16|0;Z=C;F[h+80>>2]=0;F[h+84>>2]=0;a=F[h+76>>2];F[h+76>>2]=0;if(a){ja(a)}F[h+68>>2]=0;F[h+72>>2]=0;b=h- -64|0;a=F[b>>2];F[b>>2]=0;if(a){ja(a)}g=F[s+4>>2];b=F[s>>2];c=(g-b|0)/12|0;a=L(c,3);f=F[h>>2];e=F[h+4>>2]-f>>2;f:{if(a>>>0>e>>>0){nd(h,a-e|0);g=F[s+4>>2];b=F[s>>2];c=(g-b|0)/12|0;break f}if(a>>>0>=e>>>0){break f}F[h+4>>2]=f+(a<<2)}g:{if((b|0)==(g|0)){break g}e=c>>>0<=1?1:c;g=e&1;a=F[h>>2];if(c>>>0>=2){i=e&-2;c=0;while(1){e=L(d,12);j=e+a|0;f=b+e|0;F[j>>2]=F[f>>2];F[a+(e|4)>>2]=F[f+4>>2];F[j+8>>2]=F[f+8>>2];f=L(d|1,12);e=f+a|0;f=b+f|0;F[e>>2]=F[f>>2];F[e+4>>2]=F[f+4>>2];F[e+8>>2]=F[f+8>>2];d=d+2|0;c=c+2|0;if((i|0)!=(c|0)){continue}break}}if(!g){break g}c=L(d,12);a=c+a|0;b=b+c|0;F[a>>2]=F[b>>2];F[a+4>>2]=F[b+4>>2];F[a+8>>2]=F[b+8>>2]}F[C+12>>2]=-1;a=0;e=0;g=0;f=Z-32|0;Z=f;h:{i:{w=C+12|0;j:{if(!w){break j}c=F[h+4>>2];j=F[h>>2];d=c-j|0;i=d>>2;n=F[h+12>>2];b=F[h+16>>2]-n>>2;k:{if(i>>>0>b>>>0){ab(h+12|0,i-b|0,10228);c=F[h+4>>2];j=F[h>>2];d=c-j|0;i=d>>2;break k}if(b>>>0<=i>>>0){break k}F[h+16>>2]=n+(i<<2)}F[f+24>>2]=0;F[f+16>>2]=0;F[f+20>>2]=0;b=(c|0)==(j|0);if(!b){if((d|0)<0){break i}e=ka(d);F[f+20>>2]=e;F[f+16>>2]=e;F[f+24>>2]=(i<<2)+e}l:{m:{n:{o:{p:{if(d){while(1){i=F[(a<<2)+j>>2];b=F[f+20>>2]-e>>2;q:{if(i>>>0>>0){break q}F[f>>2]=0;d=i+1|0;if(d>>>0>b>>>0){Fa(f+16|0,d-b|0,f);j=F[h>>2];c=F[h+4>>2];e=F[f+16>>2];break q}if(b>>>0<=d>>>0){break q}F[f+20>>2]=(d<<2)+e}b=(i<<2)+e|0;F[b>>2]=F[b>>2]+1;a=a+1|0;d=c-j|0;i=d>>2;if(a>>>0>>0){continue}break}break p}d=0;if(!b){break o}break n}if((c|0)==(j|0)){d=0;break n}if(d>>>0>=2147483645){break m}}d=ka(d<<1);ma(d,255,i<<3)}F[f+8>>2]=0;F[f>>2]=0;F[f+4>>2]=0;b=F[f+20>>2];a=b-e|0;t=a>>2;r:{s:{if((b|0)==(e|0)){break s}if((a|0)<0){break r}q=ka(a);F[f>>2]=q;F[f+8>>2]=(t<<2)+q;b=ma(q,0,a);F[f+4>>2]=b+a;c=t>>>0<=1?1:t;n=c&3;a=0;if(c-1>>>0>=3){o=c&-4;while(1){c=g<<2;F[c+b>>2]=a;x=c|4;a=F[c+e>>2]+a|0;F[x+b>>2]=a;y=c|8;a=a+F[e+x>>2]|0;F[y+b>>2]=a;c=c|12;a=a+F[e+y>>2]|0;F[c+b>>2]=a;a=a+F[c+e>>2]|0;g=g+4|0;p=p+4|0;if((o|0)!=(p|0)){continue}break}}if(!n){break s}while(1){c=g<<2;F[c+b>>2]=a;g=g+1|0;a=F[c+e>>2]+a|0;k=k+1|0;if((n|0)!=(k|0)){continue}break}}if(!i){break l}x=F[h+40>>2];y=F[h+12>>2];n=0;while(1){I=n<<2;a=I+j|0;k=-1;c=n+1|0;b=(c>>>0)%3|0?c:n-2|0;if((b|0)!=-1){k=F[(b<<2)+j>>2]}b=F[a>>2];t:{u:{if(!((n>>>0)%3|0)){p=-1;a=n+2|0;if((a|0)!=-1){p=F[(a<<2)+j>>2]}if(!((b|0)==(k|0)|(b|0)==(p|0))&(k|0)!=(p|0)){break u}x=x+1|0;F[h+40>>2]=x;c=n+3|0;break t}p=F[a-4>>2]}a=p<<2;A=F[a+e>>2];v:{w:{if((A|0)<=0){break w}a=F[a+q>>2];g=0;while(1){o=(a<<3)+d|0;z=F[o>>2];if((z|0)==-1){break w}x:{if((k|0)!=(z|0)){break x}o=F[o+4>>2];if((o|0)!=-1){z=F[(o<<2)+j>>2]}else{z=-1}if((z|0)==(b|0)){break x}while(1){y:{b=a;g=g+1|0;if((A|0)<=(g|0)){break y}a=b+1|0;J=(a<<3)+d|0;z=F[J>>2];K=(b<<3)+d|0;F[K+4>>2]=F[J+4>>2];F[K>>2]=z;if((z|0)!=-1){continue}}break}F[(b<<3)+d>>2]=-1;if((o|0)==-1){break w}F[y+I>>2]=o;F[y+(o<<2)>>2]=n;break v}a=a+1|0;g=g+1|0;if((A|0)!=(g|0)){continue}break}}a=k<<2;k=F[a+e>>2];if((k|0)<=0){break v}a=F[a+q>>2];g=0;while(1){b=(a<<3)+d|0;if(F[b>>2]==-1){F[b>>2]=p;F[b+4>>2]=n;break v}a=a+1|0;g=g+1|0;if((k|0)!=(g|0)){continue}break}}}n=c;if(n>>>0>>0){continue}break}break l}break i}na();v()}F[w>>2]=t;if(q){ja(q)}if(d){ja(d)}a=F[f+16>>2];if(!a){break j}F[f+20>>2]=a;ja(a)}Z=f+32|0;x=(w|0)!=0;if(x){k=Z-32|0;Z=k;a=F[h>>2];g=F[h+4>>2];F[k+24>>2]=0;F[k+16>>2]=0;F[k+20>>2]=0;if((a|0)==(g|0)){c=g}else{a=g-a|0;if((a|0)<0){break i}a=a>>2;b=(a-1>>>5|0)+1|0;c=ka(b<<2);F[k+24>>2]=b;F[k+20>>2]=0;F[k+16>>2]=c;Yb(k+16|0,a);g=F[h>>2];c=F[h+4>>2]}F[k+8>>2]=0;F[k>>2]=0;while(1){z:{o=0;i=0;if((c|0)==(g|0)){break z}while(1){b=F[k+16>>2];A:{if(F[b+(i>>>3&536870908)>>2]>>>i&1){break A}c=F[k>>2];F[k+4>>2]=c;e=F[h+12>>2];a=i;while(1){B:{f=a+1|0;d=a;a=(f>>>0)%3|0?f:a-2|0;if((a|0)==-1){break B}a=F[e+(a<<2)>>2];if((a|0)==-1){break B}f=a+1|0;a=(f>>>0)%3|0?f:a-2|0;if((i|0)==(a|0)|(a|0)==-1){break B}if(!(F[b+(a>>>3&536870908)>>2]>>>a&1)){continue}}break}j=d;C:{D:{E:{while(1){a=F[k+16>>2]+(j>>>3&536870908)|0;F[a>>2]=F[a>>2]|1<>>0)%3|0?a:j-2|0;g=F[h>>2];y=(j>>>0)%3|0;b=(y?-1:2)+j|0;n=F[k>>2];A=(n|0)==(c|0);F:{if(A){break F}w=F[(f<<2)+g>>2];q=F[h+12>>2];a=n;if((b|0)!=-1){e=q+(b<<2)|0;while(1){G:{if((w|0)!=F[a>>2]){break G}p=F[a+4>>2];t=F[e>>2];if((p|0)==(t|0)){break G}e=b;c=-1;a=-1;if((p|0)==-1){break C}break D}a=a+8|0;if((c|0)!=(a|0)){continue}break}break F}while(1){if((w|0)==F[a>>2]){t=-1;e=-1;p=F[a+4>>2];if((p|0)!=-1){break D}}a=a+8|0;if((c|0)!=(a|0)){continue}break}}b=F[(b<<2)+g>>2];H:{if(F[k+8>>2]!=(c|0)){F[c>>2]=b;F[c+4>>2]=f;c=c+8|0;F[k+4>>2]=c;break H}a=c-n|0;p=a>>3;e=p+1|0;if(e>>>0>=536870912){break i}g=a>>>2|0;g=a>>>0>=2147483640?536870911:e>>>0>>0?g:e;if(g){if(g>>>0>=536870912){break E}e=ka(g<<3)}else{e=0}a=e+(p<<3)|0;F[a>>2]=b;F[a+4>>2]=f;b=a+8|0;if(!A){while(1){c=c-8|0;f=F[c+4>>2];a=a-8|0;F[a>>2]=F[c>>2];F[a+4>>2]=f;if((c|0)!=(n|0)){continue}break}c=F[k>>2]}F[k+8>>2]=e+(g<<3);F[k+4>>2]=b;F[k>>2]=a;if(c){ja(c)}c=b}I:{J:{if(y){a=j-1|0;break J}a=j+2|0;if((a|0)==-1){break I}}a=F[F[h+12>>2]+(a<<2)>>2];if((a|0)==-1){break I}j=a+((a>>>0)%3|0?-1:2)|0;if((d|0)==(j|0)){break I}if((j|0)!=-1){continue}}break}g=F[h>>2];break A}oa();v()}c=F[q+(p<<2)>>2];b=e;a=p}if((t|0)!=-1){F[q+(t<<2)>>2]=-1}if((c|0)!=-1){F[q+(c<<2)>>2]=-1}F[q+(b<<2)>>2]=-1;F[q+(a<<2)>>2]=-1;o=1}i=i+1|0;c=F[h+4>>2];if(i>>>0>2>>>0){continue}break}if(o){continue}}break}a=F[k>>2];if(a){ja(a)}a=F[k+16>>2];if(a){ja(a)}Z=k+32|0;n=0;g=Z-32|0;Z=g;e=F[C+12>>2];F[h+36>>2]=e;p=h+24|0;b=F[h+24>>2];a=F[h+28>>2]-b>>2;K:{L:{if(a>>>0>>0){ab(p,e-a|0,10228);F[g+24>>2]=0;F[g+16>>2]=0;F[g+20>>2]=0;break L}if(a>>>0>e>>>0){F[h+28>>2]=b+(e<<2)}F[g+24>>2]=0;F[g+16>>2]=0;F[g+20>>2]=0;if(!e){break K}}if((e|0)<0){break i}a=(e-1>>>5|0)+1|0;b=ka(a<<2);F[g+24>>2]=a;F[g+20>>2]=0;F[g+16>>2]=b;Yb(g+16|0,e)}a=F[h>>2];b=F[h+4>>2];F[g+8>>2]=0;F[g>>2]=0;F[g+4>>2]=0;M:{if((a|0)==(b|0)){a=b}else{a=b-a|0;if((a|0)<0){break i}a=a>>2;b=(a-1>>>5|0)+1|0;c=ka(b<<2);F[g+8>>2]=b;F[g+4>>2]=0;F[g>>2]=c;Yb(g,a);b=F[h>>2];a=F[h+4>>2]}if(a-b>>>0<12){break M}N:{while(1){q=L(n,3);d=(q<<2)+b|0;f=F[d>>2];c=-1;i=q+1|0;if((i|0)!=-1){c=F[(i<<2)+b>>2]}O:{if((c|0)==(f|0)){break O}i=f;f=F[d+8>>2];if((i|0)==(f|0)|(c|0)==(f|0)){break O}k=0;i=F[g>>2];while(1){f=k+q|0;if(!(F[(f>>>3&536870908)+i>>2]>>>f&1)){a=F[(f<<2)+b>>2];c=1<>2];b=a>>>5|0;i=F[d+(b<<2)>>2];t=c&i;if(t){c=F[h+28>>2];P:{if((c|0)!=F[h+32>>2]){F[c>>2]=-1;F[h+28>>2]=c+4;break P}i=F[p>>2];b=c-i|0;o=b>>2;d=o+1|0;if(d>>>0>=1073741824){break i}j=b>>>1|0;j=b>>>0>=2147483644?1073741823:d>>>0>>0?j:d;if(j){if(j>>>0>=1073741824){break N}b=ka(j<<2)}else{b=0}d=b+(o<<2)|0;F[d>>2]=-1;o=d+4|0;if((c|0)!=(i|0)){while(1){d=d-4|0;c=c-4|0;F[d>>2]=F[c>>2];if((c|0)!=(i|0)){continue}break}}F[h+32>>2]=b+(j<<2);F[h+28>>2]=o;F[h+24>>2]=d;if(!i){break P}ja(i)}c=F[h+52>>2];Q:{if((c|0)!=F[h+56>>2]){F[c>>2]=a;F[h+52>>2]=c+4;break Q}i=F[h+48>>2];b=c-i|0;o=b>>2;d=o+1|0;if(d>>>0>=1073741824){break i}j=b>>>1|0;j=b>>>0>=2147483644?1073741823:d>>>0>>0?j:d;if(j){if(j>>>0>=1073741824){break N}b=ka(j<<2)}else{b=0}d=b+(o<<2)|0;F[d>>2]=a;a=d+4|0;if((c|0)!=(i|0)){while(1){d=d-4|0;c=c-4|0;F[d>>2]=F[c>>2];if((c|0)!=(i|0)){continue}break}}F[h+56>>2]=b+(j<<2);F[h+52>>2]=a;F[h+48>>2]=d;if(!i){break Q}ja(i)}c=F[g+20>>2];a=F[g+24>>2];if((c|0)==a<<5){if((c+1|0)<0){break i}b=g+16|0;if(c>>>0<=1073741822){a=a<<6;c=(c&-32)+32|0;a=a>>>0>c>>>0?a:c}else{a=2147483647}$a(b,a);c=F[g+20>>2]}F[g+20>>2]=c+1;d=F[g+16>>2];a=d+(c>>>3&536870908)|0;b=F[a>>2];N=a,O=oi(c)&b,F[N>>2]=O;c=1<>>5|0;i=F[(b<<2)+d>>2];a=e;e=a+1|0}F[(b<<2)+d>>2]=c|i;o=F[h+24>>2]+(a<<2)|0;j=F[h+12>>2];b=F[h>>2];i=F[g>>2];c=f;R:{S:{T:{while(1){if((c|0)==-1){break T}d=(c>>>3&536870908)+i|0;F[d>>2]=F[d>>2]|1<>2]=c;if(t){F[(c<<2)+b>>2]=a}w=c+1|0;c=(w>>>0)%3|0?w:c-2|0;d=-1;U:{if((c|0)==-1){break U}c=F[j+(c<<2)>>2];d=-1;if((c|0)==-1){break U}d=c+1|0;d=(d>>>0)%3|0?d:c-2|0}c=d;if((f|0)!=(c|0)){continue}break}if((f|0)!=-1){break R}c=1;break S}if((f>>>0)%3|0){c=f-1|0;break S}c=f+2|0;if((c|0)==-1){break R}}c=F[j+(c<<2)>>2];if((c|0)==-1){break R}V:{if((c>>>0)%3|0){c=c-1|0;break V}c=c+2|0;if((c|0)==-1){break R}}f=F[h+12>>2];b=F[h>>2];while(1){d=(c>>>3&536870908)+i|0;F[d>>2]=F[d>>2]|1<>2]=a}W:{if((c>>>0)%3|0){c=c-1|0;break W}c=c+2|0;if((c|0)==-1){break R}}c=F[f+(c<<2)>>2];if((c|0)==-1){break R}c=c+((c>>>0)%3|0?-1:2)|0;if((c|0)!=-1){continue}break}}}k=k+1|0;if((k|0)!=3){continue}break}b=F[h>>2];a=F[h+4>>2]}n=n+1|0;if(n>>>0<(a-b>>2>>>0)/3>>>0){continue}break}break M}oa();v()}c=0;F[h+44>>2]=0;a=F[g+16>>2];b=F[g+20>>2];if(b){e=b&31;b=(b>>>3&536870908)+a|0;d=a;i=0;while(1){if(!(F[d>>2]>>>c&1)){i=i+1|0;F[h+44>>2]=i}f=(c|0)==31;c=f?0:c+1|0;d=(f<<2)+d|0;if((b|0)!=(d|0)|(c|0)!=(e|0)){continue}break}}b=F[g>>2];if(b){ja(b);a=F[g+16>>2]}if(a){ja(a)}Z=g+32|0}Z=C+16|0;if(!x){F[H+8>>2]=0;Za(h);h=0}Z=H+16|0;a=h;break h}na();v()}b=F[s>>2];if(!b){break d}F[s+4>>2]=b;ja(b)}Z=s+16|0;break b}na();v()}c=F[l+4>>2];b=a;F[l+4>>2]=a;if(c){Za(c);b=F[l+4>>2]}X:{if(!b){break X}a=F[u+100>>2];c=F[u+96>>2];D[r+12|0]=0;Ea(l+56|0,(a-c|0)/12|0,r+12|0);a=F[u+100>>2];c=F[u+96>>2];if((a|0)==(c|0)){break X}while(1){if(!(F[F[l+56>>2]+(E>>>3&536870908)>>2]>>>E&1)){a=L(E,3);Vb(l,0,a);c=F[l+8>>2];e=F[l+12>>2];Vb(l,1,a+1|0);f=F[l+20>>2];d=F[l+24>>2];Vb(l,2,a+2|0);n=(c|0)==(e|0)?-1:0;a=d-f>>2;c=e-c>>2;e=a>>>0>c>>>0;c=F[l+36>>2]-F[l+32>>2]>>2>>>0>(e?a:c)>>>0?2:e?1:n;Y:{if(F[l+68>>2]<=0){break Y}F[r+12>>2]=F[l+76>>2];F[r+8>>2]=m;Qa(r+8|0,r+12|0);a=F[((c<<2)+l|0)+44>>2];if((a|0)<0){a=-1}else{e=(a>>>0)/3|0;a=F[(F[F[l>>2]+96>>2]+L(e,12)|0)+(a-L(e,3)<<2)>>2]}F[r+12>>2]=a;F[r+8>>2]=m;Qa(r+8|0,r+12|0);e=F[l+72>>2];F[l+72>>2]=e+2;if(!(e&1)){break Y}F[r+12>>2]=a;F[r+8>>2]=m;Qa(r+8|0,r+12|0);F[l+72>>2]=F[l+72>>2]+1}d=0;e=Z-16|0;Z=e;F[l+68>>2]=F[l+68>>2]+1;a=L(c,12)+l|0;a=F[a+12>>2]-F[a+8>>2]|0;if((a|0)>0){a=a>>>2|0;h=a>>>0<=1?1:a;c=F[((c<<2)+l|0)+44>>2];while(1){a=c;f=(a>>>0)/3|0;c=(a|0)==-1;g=c?-1:f;i=F[l+56>>2]+(g>>>3&536870908)|0;F[i>>2]=F[i>>2]|1<>2]=F[l+72>>2]+1;Z:{_:{$:{aa:{ba:{if(!d){ca:{if((a|0)>=0){F[e+12>>2]=F[(F[F[l>>2]+96>>2]+L(f,12)|0)+((a>>>0)%3<<2)>>2];F[e+8>>2]=m;Qa(e+8|0,e+12|0);break ca}F[e+12>>2]=-1;F[e+8>>2]=m;Qa(e+8|0,e+12|0);if(c){break ba}}c=-1;f=a+1|0;f=(f>>>0)%3|0?f:a-2|0;if((f|0)>=0){g=(f>>>0)/3|0;f=F[(F[F[l>>2]+96>>2]+L(g,12)|0)+(f-L(g,3)<<2)>>2]}else{f=-1}F[e+12>>2]=f;F[e+8>>2]=m;Qa(e+8|0,e+12|0);f=((a>>>0)%3|0?-1:2)+a|0;if((f|0)<0){break aa}c=(f>>>0)/3|0;c=F[(F[F[l>>2]+96>>2]+L(c,12)|0)+(f-L(c,3)<<2)>>2];break aa}c=(a|0)<0?-1:F[(F[F[l>>2]+96>>2]+L(f,12)|0)+((a>>>0)%3<<2)>>2];F[l+76>>2]=c;F[e+12>>2]=c;F[e+8>>2]=m;Qa(e+8|0,e+12|0);if(d&1){c=-1;if((a|0)==-1){break Z}if((L(f,3)|0)!=(a|0)){a=a-1|0;break _}a=a+2|0;break $}c=-1;if((a|0)==-1){break Z}c=a+1|0;a=(c>>>0)%3|0?c:a-2|0;break $}c=-1;F[e+12>>2]=-1;F[e+8>>2]=m;Qa(e+8|0,e+12|0)}F[l+76>>2]=c;F[e+12>>2]=c;F[e+8>>2]=m;Qa(e+8|0,e+12|0)}c=-1;if((a|0)==-1){break Z}}c=F[F[F[l+4>>2]+12>>2]+(a<<2)>>2]}d=d+1|0;if((h|0)!=(d|0)){continue}break}}Z=e+16|0;c=F[u+96>>2];a=F[u+100>>2]}E=E+1|0;if(E>>>0<(a-c|0)/12>>>0){continue}break}}Z=r+16|0;da:{if(b){a=F[B>>2];if(a){F[B+4>>2]=a;ja(a)}F[B>>2]=F[m>>2];F[B+4>>2]=F[m+4>>2];F[B+8>>2]=F[m+8>>2];M=F[m+84>>2];break da}a=F[m>>2];if(!a){break da}F[m+4>>2]=a;ja(a)}a=F[m+72>>2];if(a){ja(a)}a=F[m+48>>2];if(a){F[m+52>>2]=a;ja(a)}a=F[m+36>>2];if(a){F[m+40>>2]=a;ja(a)}a=F[m+24>>2];if(a){F[m+28>>2]=a;ja(a)}a=F[m+20>>2];F[m+20>>2]=0;if(a){Za(a)}Z=m+96|0;return M|0}function sf(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;i=b;a=0;b=0;a:{b:{switch(d-1|0){case 0:j=F[i+80>>2];h=G[c+24|0];c:{if((L(j,h)|0)!=(e|0)){break c}d=F[c+28>>2]!=1;b=G[c+84|0];if(!(d|!b)){la(f,F[F[c>>2]>>2]+F[c+48>>2]|0,e);b=1;break c}if(h){a=ka(h);ma(a,0,h)}d:{if(!j){b=1;break d}if(!d){if(h){d=0;e=0;while(1){i=d+f|0;k=F[F[c>>2]>>2];m=F[c+48>>2];g=F[c+40>>2];b=ki(g,F[c+44>>2],G[c+84|0]?e:F[F[c+68>>2]+(e<<2)>>2],0);n=b;b=b+m|0;la(i,la(a,b+k|0,g),h);d=d+h|0;b=1;e=e+1|0;if((j|0)!=(e|0)){continue}break}break d}if(b){b=1;h=F[c>>2];e=F[c+48>>2];f=F[c+40>>2];i=F[c+44>>2];if((j|0)!=1){g=j&-2;c=0;d=0;while(1){k=F[h>>2];m=ki(f,i,c,0)+e|0;k=la(a,k+m|0,f);m=F[h>>2];n=ki(f,i,c|1,0)+e|0;la(k,m+n|0,f);c=c+2|0;d=d+2|0;if((g|0)!=(d|0)){continue}break}g=c}if(!(j&1)){break d}c=F[h>>2];d=ki(g,0,f,i)+e|0;la(a,c+d|0,f);break d}b=1;h=F[c>>2];e=F[c+48>>2];g=F[c+68>>2];f=F[c+40>>2];i=F[c+44>>2];c=0;if((j|0)!=1){k=j&-2;d=0;while(1){m=F[h>>2];n=c<<2;l=ki(f,i,F[n+g>>2],0)+e|0;m=la(a,m+l|0,f);l=F[h>>2];n=ki(f,i,F[g+(n|4)>>2],0)+e|0;la(m,l+n|0,f);c=c+2|0;d=d+2|0;if((k|0)!=(d|0)){continue}break}}if(!(j&1)){break d}d=F[h>>2];c=ki(f,i,F[g+(c<<2)>>2],0)+e|0;la(a,c+d|0,f);break d}b=0;if(!h){d=0;while(1){if(!Cb(c,G[c+84|0]?d:F[F[c+68>>2]+(d<<2)>>2],D[c+24|0],a)){break d}d=d+1|0;b=j>>>0<=d>>>0;if((d|0)!=(j|0)){continue}break}break d}d=0;e=0;while(1){if(!Cb(c,G[c+84|0]?e:F[F[c+68>>2]+(e<<2)>>2],D[c+24|0],a)){break d}la(d+f|0,a,h);d=d+h|0;e=e+1|0;b=j>>>0<=e>>>0;if((e|0)!=(j|0)){continue}break}}if(!a){break c}ja(a)}break a;case 2:n=G[c+24|0];l=n<<1;j=F[i+80>>2];e:{if((L(l,j)|0)!=(e|0)){break e}i=F[c+28>>2]!=3;d=G[c+84|0];if(!(i|!d)){la(f,F[F[c>>2]>>2]+F[c+48>>2]|0,e);a=1;break e}f:{if(!n){e=0;break f}e=ka(l);ma(e,0,l)}g:{if(!j){a=1;break g}if(!i){o=F[c+68>>2];k=F[c>>2];b=F[c+48>>2];i=F[c+40>>2];m=F[c+44>>2];if(n){if(!d){c=0;d=0;while(1){a=1;g=F[k>>2];p=ki(i,m,F[o+(d<<2)>>2],0)+b|0;la((c<<1)+f|0,la(e,g+p|0,i),l);c=c+n|0;d=d+1|0;if((j|0)!=(d|0)){continue}break}break g}c=0;while(1){a=1;o=F[k>>2];p=ki(g,h,i,m)+b|0;la((c<<1)+f|0,la(e,o+p|0,i),l);c=c+n|0;d=h;g=g+1|0;d=g?d:d+1|0;h=d;if((j|0)!=(g|0)|d){continue}break}break g}if(!d){a=1;c=0;if((j|0)!=1){f=j&-2;d=0;while(1){h=F[k>>2];g=c<<2;n=ki(i,m,F[g+o>>2],0)+b|0;h=la(e,h+n|0,i);n=F[k>>2];g=ki(i,m,F[o+(g|4)>>2],0)+b|0;la(h,g+n|0,i);c=c+2|0;d=d+2|0;if((f|0)!=(d|0)){continue}break}}if(!(j&1)){break g}d=F[k>>2];b=ki(i,m,F[o+(c<<2)>>2],0)+b|0;la(e,b+d|0,i);break g}n=j&1;a=1;if((j|0)!=1){j=j&-2;f=0;c=0;while(1){d=F[k>>2];l=ki(g,h,i,m)+b|0;d=la(e,d+l|0,i);l=F[k>>2];o=ki(i,m,g|1,h)+b|0;la(d,l+o|0,i);g=g+2|0;h=g>>>0<2?h+1|0:h;f=f+2|0;d=f>>>0<2?c+1|0:c;c=d;if((f|0)!=(j|0)|c){continue}break}}if(!n){break g}c=F[k>>2];b=ki(g,h,i,m)+b|0;la(e,b+c|0,i);break g}if(!n){d=0;while(1){if(!Ab(c,G[c+84|0]?d:F[F[c+68>>2]+(d<<2)>>2],D[c+24|0],e)){break g}d=d+1|0;a=j>>>0<=d>>>0;if((d|0)!=(j|0)){continue}break}break g}d=0;while(1){if(!Ab(c,G[c+84|0]?d:F[F[c+68>>2]+(d<<2)>>2],D[c+24|0],e)){break g}la((b<<1)+f|0,e,l);b=b+n|0;d=d+1|0;a=j>>>0<=d>>>0;if((d|0)!=(j|0)){continue}break}}if(!e){break e}ja(e)}b=a;break a;case 4:l=G[c+24|0];o=l<<2;j=F[i+80>>2];h:{if((L(o,j)|0)!=(e|0)){break h}i=F[c+28>>2]!=5;d=G[c+84|0];if(!(i|!d)){la(f,F[F[c>>2]>>2]+F[c+48>>2]|0,e);b=1;break h}i:{if(!l){e=0;break i}e=ka(o);ma(e,0,o)}b=1;j:{if(!j){break j}if(!i){a=F[c+68>>2];m=F[c>>2];i=F[c+48>>2];k=F[c+40>>2];n=F[c+44>>2];if(l){if(!d){c=0;d=0;while(1){g=F[m>>2];p=ki(k,n,F[a+(d<<2)>>2],0)+i|0;la((c<<2)+f|0,la(e,g+p|0,k),o);c=c+l|0;d=d+1|0;if((j|0)!=(d|0)){continue}break}break j}c=0;while(1){d=F[m>>2];p=ki(g,h,k,n)+i|0;la((c<<2)+f|0,la(e,d+p|0,k),o);c=c+l|0;g=g+1|0;a=g?h:h+1|0;h=a;if((j|0)!=(g|0)|h){continue}break}break j}if(!d){c=0;if((j|0)!=1){f=j&-2;d=0;while(1){h=F[m>>2];g=c<<2;l=ki(k,n,F[g+a>>2],0)+i|0;h=la(e,h+l|0,k);l=F[m>>2];g=ki(k,n,F[a+(g|4)>>2],0)+i|0;la(h,g+l|0,k);c=c+2|0;d=d+2|0;if((f|0)!=(d|0)){continue}break}}if(!(j&1)){break j}d=F[m>>2];a=ki(k,n,F[a+(c<<2)>>2],0)+i|0;la(e,a+d|0,k);break j}l=j&1;if((j|0)!=1){j=j&-2;f=0;c=0;while(1){a=F[m>>2];d=ki(g,h,k,n)+i|0;a=la(e,a+d|0,k);d=F[m>>2];o=ki(k,n,g|1,h)+i|0;la(a,d+o|0,k);d=h;g=g+2|0;h=g>>>0<2?d+1|0:d;f=f+2|0;a=f>>>0<2?c+1|0:c;c=a;if((f|0)!=(j|0)|c){continue}break}}if(!l){break j}a=F[m>>2];c=ki(g,h,k,n)+i|0;la(e,a+c|0,k);break j}b=0;if(!l){d=0;while(1){if(!yb(c,G[c+84|0]?d:F[F[c+68>>2]+(d<<2)>>2],D[c+24|0],e)){break j}d=d+1|0;b=j>>>0<=d>>>0;if((d|0)!=(j|0)){continue}break}break j}d=0;while(1){if(!yb(c,G[c+84|0]?d:F[F[c+68>>2]+(d<<2)>>2],D[c+24|0],e)){break j}la((a<<2)+f|0,e,o);a=a+l|0;d=d+1|0;b=j>>>0<=d>>>0;if((d|0)!=(j|0)){continue}break}}if(!e){break h}ja(e)}break a;case 1:j=F[i+80>>2];h=G[c+24|0];k:{if((L(j,h)|0)!=(e|0)){break k}d=F[c+28>>2]!=2;b=G[c+84|0];if(!(d|!b)){la(f,F[F[c>>2]>>2]+F[c+48>>2]|0,e);b=1;break k}if(h){a=ka(h);ma(a,0,h)}l:{if(!j){b=1;break l}if(!d){if(h){d=0;e=0;while(1){i=d+f|0;k=F[F[c>>2]>>2];m=F[c+48>>2];g=F[c+40>>2];b=ki(g,F[c+44>>2],G[c+84|0]?e:F[F[c+68>>2]+(e<<2)>>2],0);n=b;b=b+m|0;la(i,la(a,b+k|0,g),h);d=d+h|0;b=1;e=e+1|0;if((j|0)!=(e|0)){continue}break}break l}if(b){b=1;h=F[c>>2];e=F[c+48>>2];f=F[c+40>>2];i=F[c+44>>2];if((j|0)!=1){g=j&-2;c=0;d=0;while(1){k=F[h>>2];m=ki(f,i,c,0)+e|0;k=la(a,k+m|0,f);m=F[h>>2];n=ki(f,i,c|1,0)+e|0;la(k,m+n|0,f);c=c+2|0;d=d+2|0;if((g|0)!=(d|0)){continue}break}g=c}if(!(j&1)){break l}c=F[h>>2];d=ki(g,0,f,i)+e|0;la(a,c+d|0,f);break l}b=1;h=F[c>>2];e=F[c+48>>2];g=F[c+68>>2];f=F[c+40>>2];i=F[c+44>>2];c=0;if((j|0)!=1){k=j&-2;d=0;while(1){m=F[h>>2];n=c<<2;l=ki(f,i,F[n+g>>2],0)+e|0;m=la(a,m+l|0,f);l=F[h>>2];n=ki(f,i,F[g+(n|4)>>2],0)+e|0;la(m,l+n|0,f);c=c+2|0;d=d+2|0;if((k|0)!=(d|0)){continue}break}}if(!(j&1)){break l}d=F[h>>2];c=ki(f,i,F[g+(c<<2)>>2],0)+e|0;la(a,c+d|0,f);break l}b=0;if(!h){d=0;while(1){if(!Bb(c,G[c+84|0]?d:F[F[c+68>>2]+(d<<2)>>2],D[c+24|0],a)){break l}d=d+1|0;b=j>>>0<=d>>>0;if((d|0)!=(j|0)){continue}break}break l}d=0;e=0;while(1){if(!Bb(c,G[c+84|0]?e:F[F[c+68>>2]+(e<<2)>>2],D[c+24|0],a)){break l}la(d+f|0,a,h);d=d+h|0;e=e+1|0;b=j>>>0<=e>>>0;if((e|0)!=(j|0)){continue}break}}if(!a){break k}ja(a)}break a;case 3:n=G[c+24|0];l=n<<1;j=F[i+80>>2];m:{if((L(l,j)|0)!=(e|0)){break m}i=F[c+28>>2]!=4;d=G[c+84|0];if(!(i|!d)){la(f,F[F[c>>2]>>2]+F[c+48>>2]|0,e);a=1;break m}n:{if(!n){e=0;break n}e=ka(l);ma(e,0,l)}o:{if(!j){a=1;break o}if(!i){o=F[c+68>>2];k=F[c>>2];b=F[c+48>>2];i=F[c+40>>2];m=F[c+44>>2];if(n){if(!d){c=0;d=0;while(1){a=1;g=F[k>>2];p=ki(i,m,F[o+(d<<2)>>2],0)+b|0;la((c<<1)+f|0,la(e,g+p|0,i),l);c=c+n|0;d=d+1|0;if((j|0)!=(d|0)){continue}break}break o}c=0;while(1){a=1;o=F[k>>2];p=ki(g,h,i,m)+b|0;la((c<<1)+f|0,la(e,o+p|0,i),l);c=c+n|0;d=h;g=g+1|0;d=g?d:d+1|0;h=d;if((j|0)!=(g|0)|d){continue}break}break o}if(!d){a=1;c=0;if((j|0)!=1){f=j&-2;d=0;while(1){h=F[k>>2];g=c<<2;n=ki(i,m,F[g+o>>2],0)+b|0;h=la(e,h+n|0,i);n=F[k>>2];g=ki(i,m,F[o+(g|4)>>2],0)+b|0;la(h,g+n|0,i);c=c+2|0;d=d+2|0;if((f|0)!=(d|0)){continue}break}}if(!(j&1)){break o}d=F[k>>2];b=ki(i,m,F[o+(c<<2)>>2],0)+b|0;la(e,b+d|0,i);break o}n=j&1;a=1;if((j|0)!=1){j=j&-2;f=0;c=0;while(1){d=F[k>>2];l=ki(g,h,i,m)+b|0;d=la(e,d+l|0,i);l=F[k>>2];o=ki(i,m,g|1,h)+b|0;la(d,l+o|0,i);g=g+2|0;h=g>>>0<2?h+1|0:h;f=f+2|0;d=f>>>0<2?c+1|0:c;c=d;if((f|0)!=(j|0)|c){continue}break}}if(!n){break o}c=F[k>>2];b=ki(g,h,i,m)+b|0;la(e,b+c|0,i);break o}if(!n){d=0;while(1){if(!zb(c,G[c+84|0]?d:F[F[c+68>>2]+(d<<2)>>2],D[c+24|0],e)){break o}d=d+1|0;a=j>>>0<=d>>>0;if((d|0)!=(j|0)){continue}break}break o}d=0;while(1){if(!zb(c,G[c+84|0]?d:F[F[c+68>>2]+(d<<2)>>2],D[c+24|0],e)){break o}la((b<<1)+f|0,e,l);b=b+n|0;d=d+1|0;a=j>>>0<=d>>>0;if((d|0)!=(j|0)){continue}break}}if(!e){break m}ja(e)}b=a;break a;case 5:l=G[c+24|0];o=l<<2;j=F[i+80>>2];p:{if((L(o,j)|0)!=(e|0)){break p}i=F[c+28>>2]!=6;d=G[c+84|0];if(!(i|!d)){la(f,F[F[c>>2]>>2]+F[c+48>>2]|0,e);b=1;break p}q:{if(!l){e=0;break q}e=ka(o);ma(e,0,o)}b=1;r:{if(!j){break r}if(!i){a=F[c+68>>2];m=F[c>>2];i=F[c+48>>2];k=F[c+40>>2];n=F[c+44>>2];if(l){if(!d){c=0;d=0;while(1){g=F[m>>2];p=ki(k,n,F[a+(d<<2)>>2],0)+i|0;la((c<<2)+f|0,la(e,g+p|0,k),o);c=c+l|0;d=d+1|0;if((j|0)!=(d|0)){continue}break}break r}c=0;while(1){d=F[m>>2];p=ki(g,h,k,n)+i|0;la((c<<2)+f|0,la(e,d+p|0,k),o);c=c+l|0;g=g+1|0;a=g?h:h+1|0;h=a;if((j|0)!=(g|0)|h){continue}break}break r}if(!d){c=0;if((j|0)!=1){f=j&-2;d=0;while(1){h=F[m>>2];g=c<<2;l=ki(k,n,F[g+a>>2],0)+i|0;h=la(e,h+l|0,k);l=F[m>>2];g=ki(k,n,F[a+(g|4)>>2],0)+i|0;la(h,g+l|0,k);c=c+2|0;d=d+2|0;if((f|0)!=(d|0)){continue}break}}if(!(j&1)){break r}d=F[m>>2];a=ki(k,n,F[a+(c<<2)>>2],0)+i|0;la(e,a+d|0,k);break r}l=j&1;if((j|0)!=1){j=j&-2;f=0;c=0;while(1){a=F[m>>2];d=ki(g,h,k,n)+i|0;a=la(e,a+d|0,k);d=F[m>>2];o=ki(k,n,g|1,h)+i|0;la(a,d+o|0,k);d=h;g=g+2|0;h=g>>>0<2?d+1|0:d;f=f+2|0;a=f>>>0<2?c+1|0:c;c=a;if((f|0)!=(j|0)|c){continue}break}}if(!l){break r}a=F[m>>2];c=ki(g,h,k,n)+i|0;la(e,a+c|0,k);break r}b=0;if(!l){d=0;while(1){if(!xb(c,G[c+84|0]?d:F[F[c+68>>2]+(d<<2)>>2],D[c+24|0],e)){break r}d=d+1|0;b=j>>>0<=d>>>0;if((d|0)!=(j|0)){continue}break}break r}d=0;while(1){if(!xb(c,G[c+84|0]?d:F[F[c+68>>2]+(d<<2)>>2],D[c+24|0],e)){break r}la((a<<2)+f|0,e,o);a=a+l|0;d=d+1|0;b=j>>>0<=d>>>0;if((d|0)!=(j|0)){continue}break}}if(!e){break p}ja(e)}break a;case 8:p=G[c+24|0];q=p<<2;k=F[i+80>>2];s:{if((L(q,k)|0)!=(e|0)){break s}i=F[c+28>>2];t:{if(!p){break t}a=ka(q);d=a;m=q-4|0;l=(m>>>2|0)+1&7;if(l){e=0;while(1){F[d>>2]=-1073741824;d=d+4|0;e=e+1|0;if((l|0)!=(e|0)){continue}break}}if(m>>>0<28){break t}e=(p<<2)+a|0;while(1){F[d+24>>2]=-1073741824;F[d+28>>2]=-1073741824;F[d+16>>2]=-1073741824;F[d+20>>2]=-1073741824;F[d+8>>2]=-1073741824;F[d+12>>2]=-1073741824;F[d>>2]=-1073741824;F[d+4>>2]=-1073741824;d=d+32|0;if((e|0)!=(d|0)){continue}break}}u:{if(!k){b=1;break u}if((i|0)==9){r=F[c+68>>2];l=F[c>>2];i=F[c+48>>2];s=G[c+84|0];m=F[c+44>>2];c=F[c+40>>2];o=c;if(p){e=0;d=0;while(1){h=(e<<2)+f|0;g=F[l>>2];b=ki(c,m,s?d:F[r+(d<<2)>>2],0)+i|0;la(h,la(a,b+g|0,o),q);e=e+p|0;b=1;d=d+1|0;if((k|0)!=(d|0)){continue}break}break u}if(!s){b=1;d=0;if((k|0)!=1){f=k&-2;e=0;while(1){h=F[l>>2];g=d<<2;j=ki(c,m,F[g+r>>2],0)+i|0;h=la(a,h+j|0,o);j=F[l>>2];g=ki(c,m,F[r+(g|4)>>2],0)+i|0;la(h,j+g|0,o);d=d+2|0;e=e+2|0;if((f|0)!=(e|0)){continue}break}}if(!(k&1)){break u}e=F[l>>2];c=ki(c,m,F[r+(d<<2)>>2],0)+i|0;la(a,c+e|0,o);break u}f=k&1;b=1;if((k|0)!=1){k=k&-2;while(1){d=F[l>>2];e=ki(g,h,c,m)+i|0;d=la(a,d+e|0,o);e=F[l>>2];p=ki(c,m,g|1,h)+i|0;la(d,e+p|0,o);g=g+2|0;h=g>>>0<2?h+1|0:h;d=j;e=n+2|0;d=e>>>0<2?d+1|0:d;n=e;j=d;if((e|0)!=(k|0)|d){continue}break}}if(!f){break u}d=F[l>>2];c=ki(g,h,c,m)+i|0;la(a,c+d|0,o);break u}if(!p){d=0;while(1){if(!lb(c,G[c+84|0]?d:F[F[c+68>>2]+(d<<2)>>2],D[c+24|0],a)){break u}d=d+1|0;b=k>>>0<=d>>>0;if((d|0)!=(k|0)){continue}break}break u}e=0;d=0;while(1){if(!lb(c,G[c+84|0]?d:F[F[c+68>>2]+(d<<2)>>2],D[c+24|0],a)){break u}la((e<<2)+f|0,a,q);e=e+p|0;d=d+1|0;b=k>>>0<=d>>>0;if((d|0)!=(k|0)){continue}break}}if(!a){break s}ja(a)}a=b;break;default:break b}}b=a}return b|0}function Pd(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;h=Z-80|0;Z=h;e=F[c+36>>2];F[h+72>>2]=F[c+32>>2];F[h+76>>2]=e;f=F[c+28>>2];e=h- -64|0;F[e>>2]=F[c+24>>2];F[e+4>>2]=f;e=F[c+20>>2];F[h+56>>2]=F[c+16>>2];F[h+60>>2]=e;e=F[c+12>>2];F[h+48>>2]=F[c+8>>2];F[h+52>>2]=e;e=F[c+4>>2];F[h+40>>2]=F[c>>2];F[h+44>>2]=e;jc(a,h+40|0,h+24|0);a:{if(F[a>>2]){break a}if(D[a+15|0]<0){ja(F[a+4>>2])}if(G[h+31|0]!=1){b=ka(32);D[b+20|0]=0;c=G[1446]|G[1447]<<8|(G[1448]<<16|G[1449]<<24);D[b+16|0]=c;D[b+17|0]=c>>>8;D[b+18|0]=c>>>16;D[b+19|0]=c>>>24;c=G[1442]|G[1443]<<8|(G[1444]<<16|G[1445]<<24);d=G[1438]|G[1439]<<8|(G[1440]<<16|G[1441]<<24);D[b+8|0]=d;D[b+9|0]=d>>>8;D[b+10|0]=d>>>16;D[b+11|0]=d>>>24;D[b+12|0]=c;D[b+13|0]=c>>>8;D[b+14|0]=c>>>16;D[b+15|0]=c>>>24;c=G[1434]|G[1435]<<8|(G[1436]<<16|G[1437]<<24);d=G[1430]|G[1431]<<8|(G[1432]<<16|G[1433]<<24);D[b|0]=d;D[b+1|0]=d>>>8;D[b+2|0]=d>>>16;D[b+3|0]=d>>>24;D[b+4|0]=c;D[b+5|0]=c>>>8;D[b+6|0]=c>>>16;D[b+7|0]=c>>>24;F[a>>2]=-1;ra(a+4|0,b,20);ja(b);break a}j=Z-16|0;Z=j;b:{c:{switch(G[h+32|0]){case 0:e=Kd(ka(48));F[e>>2]=9864;F[h+8>>2]=0;F[h+12>>2]=0;F[h>>2]=0;F[h+4>>2]=0;F[h+16>>2]=e;break b;case 1:e=Kd(ka(52));F[e+48>>2]=0;F[e>>2]=8176;F[h+8>>2]=0;F[h+12>>2]=0;F[h>>2]=0;F[h+4>>2]=0;F[h+16>>2]=e;break b;default:break c}}f=ka(32);D[f+28|0]=0;e=G[1520]|G[1521]<<8|(G[1522]<<16|G[1523]<<24);D[f+24|0]=e;D[f+25|0]=e>>>8;D[f+26|0]=e>>>16;D[f+27|0]=e>>>24;e=G[1516]|G[1517]<<8|(G[1518]<<16|G[1519]<<24);g=G[1512]|G[1513]<<8|(G[1514]<<16|G[1515]<<24);D[f+16|0]=g;D[f+17|0]=g>>>8;D[f+18|0]=g>>>16;D[f+19|0]=g>>>24;D[f+20|0]=e;D[f+21|0]=e>>>8;D[f+22|0]=e>>>16;D[f+23|0]=e>>>24;e=G[1508]|G[1509]<<8|(G[1510]<<16|G[1511]<<24);g=G[1504]|G[1505]<<8|(G[1506]<<16|G[1507]<<24);D[f+8|0]=g;D[f+9|0]=g>>>8;D[f+10|0]=g>>>16;D[f+11|0]=g>>>24;D[f+12|0]=e;D[f+13|0]=e>>>8;D[f+14|0]=e>>>16;D[f+15|0]=e>>>24;e=G[1500]|G[1501]<<8|(G[1502]<<16|G[1503]<<24);g=G[1496]|G[1497]<<8|(G[1498]<<16|G[1499]<<24);D[f|0]=g;D[f+1|0]=g>>>8;D[f+2|0]=g>>>16;D[f+3|0]=g>>>24;D[f+4|0]=e;D[f+5|0]=e>>>8;D[f+6|0]=e>>>16;D[f+7|0]=e>>>24;F[j>>2]=-1;e=j|4;ra(e,f,28);k=D[j+15|0];F[h>>2]=F[j>>2];g=h+4|0;d:{if((k|0)>=0){k=F[e+4>>2];F[g>>2]=F[e>>2];F[g+4>>2]=k;F[g+8>>2]=F[e+8>>2];F[h+16>>2]=0;break d}ra(g,F[j+4>>2],F[j+8>>2]);e=D[j+15|0];F[h+16>>2]=0;if((e|0)>=0){break d}ja(F[j+4>>2])}ja(f)}Z=j+16|0;e=F[h>>2];e:{if(e){F[a>>2]=e;a=a+4|0;if(D[h+15|0]>=0){b=h|4;c=F[b+4>>2];F[a>>2]=F[b>>2];F[a+4>>2]=c;F[a+8>>2]=F[b+8>>2];break e}ra(a,F[h+4>>2],F[h+8>>2]);break e}e=F[h+16>>2];F[h+16>>2]=0;F[e+44>>2]=d;f=Z-32|0;Z=f;F[e+32>>2]=c;F[e+40>>2]=b;F[e+4>>2]=d;jc(a,c,f+16|0);f:{if(F[a>>2]){break f}if(D[a+15|0]<0){ja(F[a+4>>2])}b=G[f+23|0];if(($[F[F[e>>2]+8>>2]](e)|0)!=(b|0)){b=ka(64);D[b+50|0]=0;c=G[1304]|G[1305]<<8;D[b+48|0]=c;D[b+49|0]=c>>>8;c=G[1300]|G[1301]<<8|(G[1302]<<16|G[1303]<<24);d=G[1296]|G[1297]<<8|(G[1298]<<16|G[1299]<<24);D[b+40|0]=d;D[b+41|0]=d>>>8;D[b+42|0]=d>>>16;D[b+43|0]=d>>>24;D[b+44|0]=c;D[b+45|0]=c>>>8;D[b+46|0]=c>>>16;D[b+47|0]=c>>>24;c=G[1292]|G[1293]<<8|(G[1294]<<16|G[1295]<<24);d=G[1288]|G[1289]<<8|(G[1290]<<16|G[1291]<<24);D[b+32|0]=d;D[b+33|0]=d>>>8;D[b+34|0]=d>>>16;D[b+35|0]=d>>>24;D[b+36|0]=c;D[b+37|0]=c>>>8;D[b+38|0]=c>>>16;D[b+39|0]=c>>>24;c=G[1284]|G[1285]<<8|(G[1286]<<16|G[1287]<<24);d=G[1280]|G[1281]<<8|(G[1282]<<16|G[1283]<<24);D[b+24|0]=d;D[b+25|0]=d>>>8;D[b+26|0]=d>>>16;D[b+27|0]=d>>>24;D[b+28|0]=c;D[b+29|0]=c>>>8;D[b+30|0]=c>>>16;D[b+31|0]=c>>>24;c=G[1276]|G[1277]<<8|(G[1278]<<16|G[1279]<<24);d=G[1272]|G[1273]<<8|(G[1274]<<16|G[1275]<<24);D[b+16|0]=d;D[b+17|0]=d>>>8;D[b+18|0]=d>>>16;D[b+19|0]=d>>>24;D[b+20|0]=c;D[b+21|0]=c>>>8;D[b+22|0]=c>>>16;D[b+23|0]=c>>>24;c=G[1268]|G[1269]<<8|(G[1270]<<16|G[1271]<<24);d=G[1264]|G[1265]<<8|(G[1266]<<16|G[1267]<<24);D[b+8|0]=d;D[b+9|0]=d>>>8;D[b+10|0]=d>>>16;D[b+11|0]=d>>>24;D[b+12|0]=c;D[b+13|0]=c>>>8;D[b+14|0]=c>>>16;D[b+15|0]=c>>>24;c=G[1260]|G[1261]<<8|(G[1262]<<16|G[1263]<<24);d=G[1256]|G[1257]<<8|(G[1258]<<16|G[1259]<<24);D[b|0]=d;D[b+1|0]=d>>>8;D[b+2|0]=d>>>16;D[b+3|0]=d>>>24;D[b+4|0]=c;D[b+5|0]=c>>>8;D[b+6|0]=c>>>16;D[b+7|0]=c>>>24;F[a>>2]=-1;ra(a+4|0,b,50);ja(b);break f}c=G[f+21|0];D[e+36|0]=c;d=G[f+22|0];D[e+37|0]=d;if((c|0)!=2){b=ka(32);D[b+26|0]=0;c=G[1427]|G[1428]<<8;D[b+24|0]=c;D[b+25|0]=c>>>8;c=G[1423]|G[1424]<<8|(G[1425]<<16|G[1426]<<24);d=G[1419]|G[1420]<<8|(G[1421]<<16|G[1422]<<24);D[b+16|0]=d;D[b+17|0]=d>>>8;D[b+18|0]=d>>>16;D[b+19|0]=d>>>24;D[b+20|0]=c;D[b+21|0]=c>>>8;D[b+22|0]=c>>>16;D[b+23|0]=c>>>24;c=G[1415]|G[1416]<<8|(G[1417]<<16|G[1418]<<24);d=G[1411]|G[1412]<<8|(G[1413]<<16|G[1414]<<24);D[b+8|0]=d;D[b+9|0]=d>>>8;D[b+10|0]=d>>>16;D[b+11|0]=d>>>24;D[b+12|0]=c;D[b+13|0]=c>>>8;D[b+14|0]=c>>>16;D[b+15|0]=c>>>24;c=G[1407]|G[1408]<<8|(G[1409]<<16|G[1410]<<24);d=G[1403]|G[1404]<<8|(G[1405]<<16|G[1406]<<24);D[b|0]=d;D[b+1|0]=d>>>8;D[b+2|0]=d>>>16;D[b+3|0]=d>>>24;D[b+4|0]=c;D[b+5|0]=c>>>8;D[b+6|0]=c>>>16;D[b+7|0]=c>>>24;F[a>>2]=-5;ra(a+4|0,b,26);ja(b);break f}b=b?2:3;if((b|0)!=(d|0)){b=ka(32);D[b+26|0]=0;c=G[1400]|G[1401]<<8;D[b+24|0]=c;D[b+25|0]=c>>>8;c=G[1396]|G[1397]<<8|(G[1398]<<16|G[1399]<<24);d=G[1392]|G[1393]<<8|(G[1394]<<16|G[1395]<<24);D[b+16|0]=d;D[b+17|0]=d>>>8;D[b+18|0]=d>>>16;D[b+19|0]=d>>>24;D[b+20|0]=c;D[b+21|0]=c>>>8;D[b+22|0]=c>>>16;D[b+23|0]=c>>>24;c=G[1388]|G[1389]<<8|(G[1390]<<16|G[1391]<<24);d=G[1384]|G[1385]<<8|(G[1386]<<16|G[1387]<<24);D[b+8|0]=d;D[b+9|0]=d>>>8;D[b+10|0]=d>>>16;D[b+11|0]=d>>>24;D[b+12|0]=c;D[b+13|0]=c>>>8;D[b+14|0]=c>>>16;D[b+15|0]=c>>>24;c=G[1380]|G[1381]<<8|(G[1382]<<16|G[1383]<<24);d=G[1376]|G[1377]<<8|(G[1378]<<16|G[1379]<<24);D[b|0]=d;D[b+1|0]=d>>>8;D[b+2|0]=d>>>16;D[b+3|0]=d>>>24;D[b+4|0]=c;D[b+5|0]=c>>>8;D[b+6|0]=c>>>16;D[b+7|0]=c>>>24;F[a>>2]=-5;ra(a+4|0,b,26);ja(b);break f}E[F[e+32>>2]+38>>1]=b|512;g:{if(E[f+26>>1]>=0){break g}j=Z-16|0;Z=j;d=ka(36);b=d;F[b+4>>2]=0;F[b+8>>2]=0;F[b+24>>2]=0;F[b+28>>2]=0;b=b+16|0;F[b>>2]=0;F[b+4>>2]=0;F[d>>2]=d+4;F[d+32>>2]=0;F[d+12>>2]=b;F[j>>2]=0;c=F[e+32>>2];k=Z-16|0;Z=k;b=0;h:{if(!d){break h}F[j>>2]=c;F[k+12>>2]=0;b=0;if(!fb(1,k+12|0,c)){break h}n=F[k+12>>2];if(n){while(1){i:{if(fb(1,k+8|0,F[j>>2])){b=ka(28);F[b+4>>2]=0;F[b+8>>2]=0;c=b+16|0;F[c>>2]=0;F[c+4>>2]=0;F[b>>2]=b+4;F[b+12>>2]=c;F[b+24>>2]=F[k+8>>2];if(Vc(j,b)){break i}Ca(b+12|0,F[b+16>>2]);Ba(b,F[b+4>>2]);ja(b)}b=0;break h}g=Z-16|0;Z=g;F[g+8>>2]=b;j:{if(!b){break j}c=F[d+28>>2];k:{if(c>>>0>2]){F[g+8>>2]=0;F[c>>2]=b;F[d+28>>2]=c+4;break k}c=0;l:{m:{n:{i=F[d+24>>2];m=F[d+28>>2]-i>>2;b=m+1|0;if(b>>>0<1073741824){i=F[d+32>>2]-i|0;l=i>>>1|0;i=i>>>0>=2147483644?1073741823:b>>>0>>0?l:b;if(i){if(i>>>0>=1073741824){break n}c=ka(i<<2)}l=F[g+8>>2];F[g+8>>2]=0;b=(m<<2)+c|0;F[b>>2]=l;i=(i<<2)+c|0;m=b+4|0;c=F[d+28>>2];l=F[d+24>>2];if((c|0)==(l|0)){break m}while(1){c=c-4|0;p=F[c>>2];F[c>>2]=0;b=b-4|0;F[b>>2]=p;if((c|0)!=(l|0)){continue}break}F[d+32>>2]=i;i=F[d+28>>2];F[d+28>>2]=m;c=F[d+24>>2];F[d+24>>2]=b;if((c|0)==(i|0)){break l}while(1){i=i-4|0;b=F[i>>2];F[i>>2]=0;if(b){Ca(b+12|0,F[b+16>>2]);Ba(b,F[b+4>>2]);ja(b)}if((c|0)!=(i|0)){continue}break}break l}na();v()}oa();v()}F[d+32>>2]=i;F[d+28>>2]=m;F[d+24>>2]=b}if(c){ja(c)}}b=F[g+8>>2];F[g+8>>2]=0;if(!b){break j}Ca(b+12|0,F[b+16>>2]);Ba(b,F[b+4>>2]);ja(b)}Z=g+16|0;o=o+1|0;if((n|0)!=(o|0)){continue}break}}b=Vc(j,d)}Z=k+16|0;o:{if(b){c=F[e+4>>2];b=F[c+4>>2];F[c+4>>2]=d;if(b){ic(b)}F[a>>2]=0;F[a+4>>2]=0;F[a+8>>2]=0;F[a+12>>2]=0;break o}b=ka(32);D[b+26|0]=0;c=G[1549]|G[1550]<<8;D[b+24|0]=c;D[b+25|0]=c>>>8;c=G[1545]|G[1546]<<8|(G[1547]<<16|G[1548]<<24);g=G[1541]|G[1542]<<8|(G[1543]<<16|G[1544]<<24);D[b+16|0]=g;D[b+17|0]=g>>>8;D[b+18|0]=g>>>16;D[b+19|0]=g>>>24;D[b+20|0]=c;D[b+21|0]=c>>>8;D[b+22|0]=c>>>16;D[b+23|0]=c>>>24;c=G[1537]|G[1538]<<8|(G[1539]<<16|G[1540]<<24);g=G[1533]|G[1534]<<8|(G[1535]<<16|G[1536]<<24);D[b+8|0]=g;D[b+9|0]=g>>>8;D[b+10|0]=g>>>16;D[b+11|0]=g>>>24;D[b+12|0]=c;D[b+13|0]=c>>>8;D[b+14|0]=c>>>16;D[b+15|0]=c>>>24;c=G[1529]|G[1530]<<8|(G[1531]<<16|G[1532]<<24);g=G[1525]|G[1526]<<8|(G[1527]<<16|G[1528]<<24);D[b|0]=g;D[b+1|0]=g>>>8;D[b+2|0]=g>>>16;D[b+3|0]=g>>>24;D[b+4|0]=c;D[b+5|0]=c>>>8;D[b+6|0]=c>>>16;D[b+7|0]=c>>>24;F[a>>2]=-1;ra(a+4|0,b,26);ja(b);F[j+8>>2]=0;ic(d)}Z=j+16|0;if(F[a>>2]){break f}if(D[a+15|0]>=0){break g}ja(F[a+4>>2])}if(!($[F[F[e>>2]+12>>2]](e)|0)){b=ka(48);D[b+33|0]=0;D[b+32|0]=G[1374];c=G[1370]|G[1371]<<8|(G[1372]<<16|G[1373]<<24);d=G[1366]|G[1367]<<8|(G[1368]<<16|G[1369]<<24);D[b+24|0]=d;D[b+25|0]=d>>>8;D[b+26|0]=d>>>16;D[b+27|0]=d>>>24;D[b+28|0]=c;D[b+29|0]=c>>>8;D[b+30|0]=c>>>16;D[b+31|0]=c>>>24;c=G[1362]|G[1363]<<8|(G[1364]<<16|G[1365]<<24);d=G[1358]|G[1359]<<8|(G[1360]<<16|G[1361]<<24);D[b+16|0]=d;D[b+17|0]=d>>>8;D[b+18|0]=d>>>16;D[b+19|0]=d>>>24;D[b+20|0]=c;D[b+21|0]=c>>>8;D[b+22|0]=c>>>16;D[b+23|0]=c>>>24;c=G[1354]|G[1355]<<8|(G[1356]<<16|G[1357]<<24);d=G[1350]|G[1351]<<8|(G[1352]<<16|G[1353]<<24);D[b+8|0]=d;D[b+9|0]=d>>>8;D[b+10|0]=d>>>16;D[b+11|0]=d>>>24;D[b+12|0]=c;D[b+13|0]=c>>>8;D[b+14|0]=c>>>16;D[b+15|0]=c>>>24;c=G[1346]|G[1347]<<8|(G[1348]<<16|G[1349]<<24);d=G[1342]|G[1343]<<8|(G[1344]<<16|G[1345]<<24);D[b|0]=d;D[b+1|0]=d>>>8;D[b+2|0]=d>>>16;D[b+3|0]=d>>>24;D[b+4|0]=c;D[b+5|0]=c>>>8;D[b+6|0]=c>>>16;D[b+7|0]=c>>>24;F[a>>2]=-1;ra(a+4|0,b,33);ja(b);break f}if(!($[F[F[e>>2]+20>>2]](e)|0)){b=Eb(f,1552);F[a>>2]=-1;c=a+4|0;if(D[b+11|0]>=0){d=F[b+4>>2];F[c>>2]=F[b>>2];F[c+4>>2]=d;F[c+8>>2]=F[b+8>>2];break f}ra(c,F[b>>2],F[b+4>>2]);if(D[b+11|0]>=0){break f}ja(F[b>>2]);break f}if(!($[F[F[e>>2]+24>>2]](e)|0)){b=Eb(f,1307);F[a>>2]=-1;c=a+4|0;if(D[b+11|0]>=0){d=F[b+4>>2];F[c>>2]=F[b>>2];F[c+4>>2]=d;F[c+8>>2]=F[b+8>>2];break f}ra(c,F[b>>2],F[b+4>>2]);if(D[b+11|0]>=0){break f}ja(F[b>>2]);break f}F[a>>2]=0;F[a+4>>2]=0;F[a+8>>2]=0;F[a+12>>2]=0}Z=f+32|0;if(!F[a>>2]){if(D[a+15|0]<0){ja(F[a+4>>2])}F[a>>2]=0;F[a+4>>2]=0;F[a+8>>2]=0;F[a+12>>2]=0}$[F[F[e>>2]+4>>2]](e)}a=F[h+16>>2];F[h+16>>2]=0;if(a){$[F[F[a>>2]+4>>2]](a)}if(D[h+15|0]>=0){break a}ja(F[h+4>>2])}Z=h+80|0}function Ub(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;l=Z-16|0;Z=l;a:{b:{c:{d:{e:{f:{g:{h:{i:{if(a>>>0<=244){g=F[2941];h=a>>>0<11?16:a+11&-8;c=h>>>3|0;b=g>>>c|0;if(b&3){c=c+((b^-1)&1)|0;a=c<<3;b=a+11804|0;d=F[a+11812>>2];a=F[d+8>>2];j:{if((b|0)==(a|0)){m=11764,n=oi(c)&g,F[m>>2]=n;break j}F[a+12>>2]=b;F[b+8>>2]=a}a=d+8|0;b=c<<3;F[d+4>>2]=b|3;b=b+d|0;F[b+4>>2]=F[b+4>>2]|1;break a}k=F[2943];if(k>>>0>=h>>>0){break i}if(b){a=2<>2];a=F[e+8>>2];k:{if((b|0)==(a|0)){g=oi(d)&g;F[2941]=g;break k}F[a+12>>2]=b;F[b+8>>2]=a}F[e+4>>2]=h|3;c=e+h|0;a=d<<3;d=a-h|0;F[c+4>>2]=d|1;F[a+e>>2]=d;if(k){b=(k&-8)+11804|0;f=F[2946];a=1<<(k>>>3);l:{if(!(a&g)){F[2941]=a|g;a=b;break l}a=F[b+8>>2]}F[b+8>>2]=f;F[a+12>>2]=f;F[f+12>>2]=b;F[f+8>>2]=a}a=e+8|0;F[2946]=c;F[2943]=d;break a}j=F[2942];if(!j){break i}c=F[(ji(0-j&j)<<2)+12068>>2];f=(F[c+4>>2]&-8)-h|0;b=c;while(1){m:{a=F[b+16>>2];if(!a){a=F[b+20>>2];if(!a){break m}}b=(F[a+4>>2]&-8)-h|0;d=b>>>0>>0;f=d?b:f;c=d?a:c;b=a;continue}break}i=F[c+24>>2];d=F[c+12>>2];if((d|0)!=(c|0)){a=F[c+8>>2];F[a+12>>2]=d;F[d+8>>2]=a;break b}b=c+20|0;a=F[b>>2];if(!a){a=F[c+16>>2];if(!a){break h}b=c+16|0}while(1){e=b;d=a;b=a+20|0;a=F[b>>2];if(a){continue}b=d+16|0;a=F[d+16>>2];if(a){continue}break}F[e>>2]=0;break b}h=-1;if(a>>>0>4294967231){break i}a=a+11|0;h=a&-8;j=F[2942];if(!j){break i}f=0-h|0;g=0;n:{if(h>>>0<256){break n}g=31;if(h>>>0>16777215){break n}a=O(a>>>8|0);g=((h>>>38-a&1)-(a<<1)|0)+62|0}b=F[(g<<2)+12068>>2];o:{p:{q:{if(!b){a=0;break q}a=0;c=h<<((g|0)!=31?25-(g>>>1|0)|0:0);while(1){r:{e=(F[b+4>>2]&-8)-h|0;if(e>>>0>=f>>>0){break r}d=b;f=e;if(e){break r}f=0;a=b;break p}e=F[b+20>>2];b=F[((c>>>29&4)+b|0)+16>>2];a=e?(e|0)==(b|0)?a:e:a;c=c<<1;if(b){continue}break}}if(!(a|d)){d=0;a=2<>2]}if(!a){break o}}while(1){b=(F[a+4>>2]&-8)-h|0;c=b>>>0>>0;f=c?b:f;d=c?a:d;b=F[a+16>>2];if(b){a=b}else{a=F[a+20>>2]}if(a){continue}break}}if(!d|F[2943]-h>>>0<=f>>>0){break i}g=F[d+24>>2];c=F[d+12>>2];if((d|0)!=(c|0)){a=F[d+8>>2];F[a+12>>2]=c;F[c+8>>2]=a;break c}b=d+20|0;a=F[b>>2];if(!a){a=F[d+16>>2];if(!a){break g}b=d+16|0}while(1){e=b;c=a;b=a+20|0;a=F[b>>2];if(a){continue}b=c+16|0;a=F[c+16>>2];if(a){continue}break}F[e>>2]=0;break c}a=F[2943];if(a>>>0>=h>>>0){d=F[2946];b=a-h|0;s:{if(b>>>0>=16){c=d+h|0;F[c+4>>2]=b|1;F[a+d>>2]=b;F[d+4>>2]=h|3;break s}F[d+4>>2]=a|3;a=a+d|0;F[a+4>>2]=F[a+4>>2]|1;c=0;b=0}F[2943]=b;F[2946]=c;a=d+8|0;break a}i=F[2944];if(i>>>0>h>>>0){b=i-h|0;F[2944]=b;c=F[2947];a=c+h|0;F[2947]=a;F[a+4>>2]=b|1;F[c+4>>2]=h|3;a=c+8|0;break a}a=0;j=h+47|0;if(F[3059]){c=F[3061]}else{F[3062]=-1;F[3063]=-1;F[3060]=4096;F[3061]=4096;F[3059]=l+12&-16^1431655768;F[3064]=0;F[3052]=0;c=4096}e=j+c|0;f=0-c|0;b=e&f;if(b>>>0<=h>>>0){break a}d=F[3051];if(d){c=F[3049];g=c+b|0;if(d>>>0>>0|c>>>0>=g>>>0){break a}}t:{if(!(G[12208]&4)){u:{v:{w:{x:{d=F[2947];if(d){a=12212;while(1){c=F[a>>2];if(c>>>0<=d>>>0&d>>>0>2]>>>0){break x}a=F[a+8>>2];if(a){continue}break}}c=eb(0);if((c|0)==-1){break u}g=b;d=F[3060];a=d-1|0;if(a&c){g=(b-c|0)+(a+c&0-d)|0}if(g>>>0<=h>>>0){break u}d=F[3051];if(d){a=F[3049];f=a+g|0;if(d>>>0>>0|a>>>0>=f>>>0){break u}}a=eb(g);if((c|0)!=(a|0)){break w}break t}g=f&e-i;c=eb(g);if((c|0)==(F[a>>2]+F[a+4>>2]|0)){break v}a=c}if((a|0)==-1){break u}if(h+48>>>0<=g>>>0){c=a;break t}c=F[3061];c=c+(j-g|0)&0-c;if((eb(c)|0)==-1){break u}g=c+g|0;c=a;break t}if((c|0)!=-1){break t}}F[3052]=F[3052]|4}c=eb(b);a=eb(0);if((c|0)==-1|(a|0)==-1|a>>>0<=c>>>0){break d}g=a-c|0;if(g>>>0<=h+40>>>0){break d}}a=F[3049]+g|0;F[3049]=a;if(a>>>0>I[3050]){F[3050]=a}y:{e=F[2947];if(e){a=12212;while(1){d=F[a>>2];b=F[a+4>>2];if((d+b|0)==(c|0)){break y}a=F[a+8>>2];if(a){continue}break}break f}a=F[2945];if(!(a>>>0<=c>>>0?a:0)){F[2945]=c}a=0;F[3054]=g;F[3053]=c;F[2949]=-1;F[2950]=F[3059];F[3056]=0;while(1){d=a<<3;b=d+11804|0;F[d+11812>>2]=b;F[d+11816>>2]=b;a=a+1|0;if((a|0)!=32){continue}break}d=g-40|0;a=c+8&7?-8-c&7:0;b=d-a|0;F[2944]=b;a=a+c|0;F[2947]=a;F[a+4>>2]=b|1;F[(c+d|0)+4>>2]=40;F[2948]=F[3063];break e}if(G[a+12|0]&8|d>>>0>e>>>0|c>>>0<=e>>>0){break f}F[a+4>>2]=b+g;a=e+8&7?-8-e&7:0;c=a+e|0;F[2947]=c;b=F[2944]+g|0;a=b-a|0;F[2944]=a;F[c+4>>2]=a|1;F[(b+e|0)+4>>2]=40;F[2948]=F[3063];break e}d=0;break b}c=0;break c}if(I[2945]>c>>>0){F[2945]=c}b=c+g|0;a=12212;z:{A:{B:{C:{D:{E:{while(1){if((b|0)!=F[a>>2]){a=F[a+8>>2];if(a){continue}break E}break}if(!(G[a+12|0]&8)){break D}}a=12212;while(1){b=F[a>>2];if(b>>>0<=e>>>0){f=b+F[a+4>>2]|0;if(f>>>0>e>>>0){break C}}a=F[a+8>>2];continue}}F[a>>2]=c;F[a+4>>2]=F[a+4>>2]+g;j=(c+8&7?-8-c&7:0)+c|0;F[j+4>>2]=h|3;g=b+(b+8&7?-8-b&7:0)|0;i=h+j|0;a=g-i|0;if((e|0)==(g|0)){F[2947]=i;a=F[2944]+a|0;F[2944]=a;F[i+4>>2]=a|1;break A}if(F[2946]==(g|0)){F[2946]=i;a=F[2943]+a|0;F[2943]=a;F[i+4>>2]=a|1;F[a+i>>2]=a;break A}f=F[g+4>>2];if((f&3)==1){e=f&-8;F:{if(f>>>0<=255){d=F[g+8>>2];b=f>>>3|0;c=F[g+12>>2];if((c|0)==(d|0)){m=11764,n=F[2941]&oi(b),F[m>>2]=n;break F}F[d+12>>2]=c;F[c+8>>2]=d;break F}h=F[g+24>>2];c=F[g+12>>2];G:{if((g|0)!=(c|0)){b=F[g+8>>2];F[b+12>>2]=c;F[c+8>>2]=b;break G}H:{f=g+20|0;b=F[f>>2];if(b){break H}f=g+16|0;b=F[f>>2];if(b){break H}c=0;break G}while(1){d=f;c=b;f=c+20|0;b=F[f>>2];if(b){continue}f=c+16|0;b=F[c+16>>2];if(b){continue}break}F[d>>2]=0}if(!h){break F}d=F[g+28>>2];b=(d<<2)+12068|0;I:{if(F[b>>2]==(g|0)){F[b>>2]=c;if(c){break I}m=11768,n=F[2942]&oi(d),F[m>>2]=n;break F}F[h+(F[h+16>>2]==(g|0)?16:20)>>2]=c;if(!c){break F}}F[c+24>>2]=h;b=F[g+16>>2];if(b){F[c+16>>2]=b;F[b+24>>2]=c}b=F[g+20>>2];if(!b){break F}F[c+20>>2]=b;F[b+24>>2]=c}g=e+g|0;f=F[g+4>>2];a=a+e|0}F[g+4>>2]=f&-2;F[i+4>>2]=a|1;F[a+i>>2]=a;if(a>>>0<=255){b=(a&-8)+11804|0;c=F[2941];a=1<<(a>>>3);J:{if(!(c&a)){F[2941]=a|c;a=b;break J}a=F[b+8>>2]}F[b+8>>2]=i;F[a+12>>2]=i;F[i+12>>2]=b;F[i+8>>2]=a;break A}f=31;if(a>>>0<=16777215){b=O(a>>>8|0);f=((a>>>38-b&1)-(b<<1)|0)+62|0}F[i+28>>2]=f;F[i+16>>2]=0;F[i+20>>2]=0;b=(f<<2)+12068|0;d=F[2942];c=1<>2]=i;break K}f=a<<((f|0)!=31?25-(f>>>1|0)|0:0);c=F[b>>2];while(1){b=c;if((F[c+4>>2]&-8)==(a|0)){break B}c=f>>>29|0;f=f<<1;d=(c&4)+b|0;c=F[d+16>>2];if(c){continue}break}F[d+16>>2]=i}F[i+24>>2]=b;F[i+12>>2]=i;F[i+8>>2]=i;break A}d=g-40|0;a=c+8&7?-8-c&7:0;b=d-a|0;F[2944]=b;a=a+c|0;F[2947]=a;F[a+4>>2]=b|1;F[(c+d|0)+4>>2]=40;F[2948]=F[3063];a=(f+(f-39&7?39-f&7:0)|0)-47|0;d=a>>>0>>0?e:a;F[d+4>>2]=27;a=F[3056];F[d+16>>2]=F[3055];F[d+20>>2]=a;a=F[3054];F[d+8>>2]=F[3053];F[d+12>>2]=a;F[3055]=d+8;F[3054]=g;F[3053]=c;F[3056]=0;a=d+24|0;while(1){F[a+4>>2]=7;b=a+8|0;a=a+4|0;if(b>>>0>>0){continue}break}if((d|0)==(e|0)){break e}F[d+4>>2]=F[d+4>>2]&-2;f=d-e|0;F[e+4>>2]=f|1;F[d>>2]=f;if(f>>>0<=255){b=(f&-8)+11804|0;c=F[2941];a=1<<(f>>>3);L:{if(!(c&a)){F[2941]=a|c;a=b;break L}a=F[b+8>>2]}F[b+8>>2]=e;F[a+12>>2]=e;F[e+12>>2]=b;F[e+8>>2]=a;break e}a=31;if(f>>>0<=16777215){a=O(f>>>8|0);a=((f>>>38-a&1)-(a<<1)|0)+62|0}F[e+28>>2]=a;F[e+16>>2]=0;F[e+20>>2]=0;b=(a<<2)+12068|0;d=F[2942];c=1<>2]=e;break M}a=f<<((a|0)!=31?25-(a>>>1|0)|0:0);d=F[b>>2];while(1){b=d;if((f|0)==(F[b+4>>2]&-8)){break z}c=a>>>29|0;a=a<<1;c=(c&4)+b|0;d=F[c+16>>2];if(d){continue}break}F[c+16>>2]=e}F[e+24>>2]=b;F[e+12>>2]=e;F[e+8>>2]=e;break e}a=F[b+8>>2];F[a+12>>2]=i;F[b+8>>2]=i;F[i+24>>2]=0;F[i+12>>2]=b;F[i+8>>2]=a}a=j+8|0;break a}a=F[b+8>>2];F[a+12>>2]=e;F[b+8>>2]=e;F[e+24>>2]=0;F[e+12>>2]=b;F[e+8>>2]=a}a=F[2944];if(a>>>0<=h>>>0){break d}b=a-h|0;F[2944]=b;c=F[2947];a=c+h|0;F[2947]=a;F[a+4>>2]=b|1;F[c+4>>2]=h|3;a=c+8|0;break a}F[2940]=48;a=0;break a}N:{if(!g){break N}b=F[d+28>>2];a=(b<<2)+12068|0;O:{if(F[a>>2]==(d|0)){F[a>>2]=c;if(c){break O}j=oi(b)&j;F[2942]=j;break N}F[g+(F[g+16>>2]==(d|0)?16:20)>>2]=c;if(!c){break N}}F[c+24>>2]=g;a=F[d+16>>2];if(a){F[c+16>>2]=a;F[a+24>>2]=c}a=F[d+20>>2];if(!a){break N}F[c+20>>2]=a;F[a+24>>2]=c}P:{if(f>>>0<=15){a=f+h|0;F[d+4>>2]=a|3;a=a+d|0;F[a+4>>2]=F[a+4>>2]|1;break P}F[d+4>>2]=h|3;e=d+h|0;F[e+4>>2]=f|1;F[e+f>>2]=f;if(f>>>0<=255){b=(f&-8)+11804|0;c=F[2941];a=1<<(f>>>3);Q:{if(!(c&a)){F[2941]=a|c;a=b;break Q}a=F[b+8>>2]}F[b+8>>2]=e;F[a+12>>2]=e;F[e+12>>2]=b;F[e+8>>2]=a;break P}a=31;if(f>>>0<=16777215){a=O(f>>>8|0);a=((f>>>38-a&1)-(a<<1)|0)+62|0}F[e+28>>2]=a;F[e+16>>2]=0;F[e+20>>2]=0;b=(a<<2)+12068|0;R:{c=1<>2]=e;break S}a=f<<((a|0)!=31?25-(a>>>1|0)|0:0);h=F[b>>2];while(1){b=h;if((F[b+4>>2]&-8)==(f|0)){break R}c=a>>>29|0;a=a<<1;c=(c&4)+b|0;h=F[c+16>>2];if(h){continue}break}F[c+16>>2]=e}F[e+24>>2]=b;F[e+12>>2]=e;F[e+8>>2]=e;break P}a=F[b+8>>2];F[a+12>>2]=e;F[b+8>>2]=e;F[e+24>>2]=0;F[e+12>>2]=b;F[e+8>>2]=a}a=d+8|0;break a}T:{if(!i){break T}b=F[c+28>>2];a=(b<<2)+12068|0;U:{if(F[a>>2]==(c|0)){F[a>>2]=d;if(d){break U}m=11768,n=oi(b)&j,F[m>>2]=n;break T}F[i+(F[i+16>>2]==(c|0)?16:20)>>2]=d;if(!d){break T}}F[d+24>>2]=i;a=F[c+16>>2];if(a){F[d+16>>2]=a;F[a+24>>2]=d}a=F[c+20>>2];if(!a){break T}F[d+20>>2]=a;F[a+24>>2]=d}V:{if(f>>>0<=15){a=f+h|0;F[c+4>>2]=a|3;a=a+c|0;F[a+4>>2]=F[a+4>>2]|1;break V}F[c+4>>2]=h|3;d=c+h|0;F[d+4>>2]=f|1;F[d+f>>2]=f;if(k){b=(k&-8)+11804|0;e=F[2946];a=1<<(k>>>3);W:{if(!(a&g)){F[2941]=a|g;a=b;break W}a=F[b+8>>2]}F[b+8>>2]=e;F[a+12>>2]=e;F[e+12>>2]=b;F[e+8>>2]=a}F[2946]=d;F[2943]=f}a=c+8|0}Z=l+16|0;return a|0}function Vc(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0,z=0,A=0;m=Z-32|0;Z=m;o=ka(12);F[o+8>>2]=0;F[o+4>>2]=b;F[o>>2]=0;s=o+12|0;b=s;a:{b:{c:{while(1){b=b-12|0;w=F[b+8>>2];j=F[b+4>>2];t=F[b>>2];if(t){if((w|0)>1e3){break a}F[m+24>>2]=0;F[m+16>>2]=0;F[m+20>>2]=0;d=1;c=F[a>>2];e=F[c+8>>2];h=F[c+12>>2];g=F[c+20>>2];f=F[c+16>>2];d:{if((h|0)<=(g|0)&f>>>0>=e>>>0|(g|0)>(h|0)){break d}e=G[f+F[c>>2]|0];h=c;c=g;f=f+1|0;c=f?c:c+1|0;F[h+16>>2]=f;F[h+20>>2]=c;Sb(m+16|0,e);if(e){c=F[a>>2];n=Tb(m+16|0);p=F[c+8>>2];g=F[c+12>>2];h=F[c+20>>2];f=F[c+16>>2];k=f+e|0;h=k>>>0>>0?h+1|0:h;if((g|0)<=(h|0)&k>>>0>p>>>0|(g|0)<(h|0)){break d}la(n,f+F[c>>2]|0,e);d=F[c+20>>2];f=e;e=e+F[c+16>>2]|0;d=f>>>0>e>>>0?d+1|0:d;F[c+16>>2]=e;F[c+20>>2]=d}j=ka(24);c=j;F[c+4>>2]=0;F[c+8>>2]=0;c=c+16|0;F[c>>2]=0;F[c+4>>2]=0;F[j>>2]=j+4;F[j+12>>2]=c;e=Z-32|0;Z=e;h=t+12|0;c=m+16|0;u=Ya(h,c);i=t+16|0;e:{if((u|0)==(i|0)){F[e+16>>2]=c;f:{g:{d=F[h+4>>2];h:{if(!d){f=h+4|0;c=f;break h}f=G[c+11|0];g=f<<24>>24<0;n=g?F[c>>2]:c;g=g?F[c+4>>2]:f;while(1){c=d;d=G[c+27|0];f=d<<24>>24<0;d=f?F[c+20>>2]:d;p=d>>>0>>0;i:{j:{k:{l:{k=p?d:g;m:{if(k){f=f?F[c+16>>2]:c+16|0;q=sa(n,f,k);if(!q){if(d>>>0>g>>>0){break m}break l}if((q|0)>=0){break l}break m}if(d>>>0<=g>>>0){break k}}f=c;d=F[c>>2];if(d){continue}break h}d=sa(f,n,k);if(d){break j}}if(p){break i}break g}if((d|0)>=0){break g}}d=F[c+4>>2];if(d){continue}break}f=c+4|0}d=ka(32);n=d+16|0;g=F[e+16>>2];n:{if(D[g+11|0]>=0){p=F[g+4>>2];F[n>>2]=F[g>>2];F[n+4>>2]=p;F[n+8>>2]=F[g+8>>2];break n}ra(n,F[g>>2],F[g+4>>2])}F[d+8>>2]=c;F[d>>2]=0;F[d+4>>2]=0;F[d+28>>2]=0;F[f>>2]=d;c=d;g=F[F[h>>2]>>2];if(g){F[h>>2]=g;c=F[f>>2]}nb(F[h+4>>2],c);F[h+8>>2]=F[h+8>>2]+1;c=1;break f}d=c;c=0}D[e+28|0]=c;F[e+24>>2]=d;d=F[e+24>>2];c=F[d+28>>2];F[d+28>>2]=j;if(!c){break e}Ca(c+12|0,F[c+16>>2]);Ba(c,F[c+4>>2]);ja(c);break e}if(!j){break e}Ca(j+12|0,F[j+16>>2]);Ba(j,F[j+4>>2]);ja(j)}Z=e+32|0;d=(i|0)!=(u|0)}if(D[m+27|0]<0){ja(F[m+16>>2])}if(d){break a}}if(!j){break a}F[m+16>>2]=0;if(!fb(1,m+16|0,F[a>>2])){break a}q=0;x=F[m+16>>2];if(x){while(1){d=0;i=Z-32|0;Z=i;F[i+24>>2]=0;F[i+16>>2]=0;F[i+20>>2]=0;c=F[a>>2];f=F[c+8>>2];o:{p:{h=F[c+12>>2];g=F[c+20>>2];e=F[c+16>>2];q:{if((h|0)<=(g|0)&e>>>0>=f>>>0|(g|0)>(h|0)){break q}f=G[e+F[c>>2]|0];h=c;c=g;e=e+1|0;c=e?c:c+1|0;F[h+16>>2]=e;F[h+20>>2]=c;Sb(i+16|0,f);if(f){e=F[a>>2];n=Tb(i+16|0);p=F[e+8>>2];g=F[e+12>>2];c=F[e+20>>2];h=F[e+16>>2];k=h+f|0;c=k>>>0>>0?c+1|0:c;if(k>>>0>p>>>0&(c|0)>=(g|0)|(c|0)>(g|0)){break q}la(n,h+F[e>>2]|0,f);c=F[e+20>>2];g=f;f=f+F[e+16>>2]|0;c=g>>>0>f>>>0?c+1|0:c;F[e+16>>2]=f;F[e+20>>2]=c}F[i+12>>2]=0;if(!fb(1,i+12|0,F[a>>2])){break q}f=F[i+12>>2];if(!f){break q}e=F[a>>2];c=F[e+8>>2];h=F[e+16>>2];g=c-h|0;c=F[e+12>>2]-(F[e+20>>2]+(c>>>0>>0)|0)|0;if((c|0)<=0&f>>>0>g>>>0|(c|0)<0){break q}F[i+8>>2]=0;F[i>>2]=0;F[i+4>>2]=0;if((f|0)<0){break p}d=ka(f);F[i>>2]=d;c=d+f|0;F[i+8>>2]=c;l=ma(d,0,f);F[i+4>>2]=c;h=F[e+12>>2];y=h;p=F[e+8>>2];c=F[e+20>>2];k=F[e+16>>2];g=f+k|0;c=g>>>0>>0?c+1|0:c;u=g;n=c;r:{if((c|0)<=(h|0)&g>>>0<=p>>>0|(c|0)<(h|0)){la(l,F[e>>2]+k|0,f);d=F[e+20>>2];c=f+F[e+16>>2]|0;d=c>>>0>>0?d+1|0:d;F[e+16>>2]=c;F[e+20>>2]=d;h=Z-48|0;Z=h;e=Ya(j,i+16|0);if((e|0)!=(j+4|0)){c=F[e+4>>2];s:{if(!c){c=e;while(1){d=F[c+8>>2];f=F[d>>2]!=(c|0);c=d;if(f){continue}break}break s}while(1){d=c;c=F[c>>2];if(c){continue}break}}if((e|0)==F[j>>2]){F[j>>2]=d}F[j+8>>2]=F[j+8>>2]-1;f=F[j+4>>2];t:{u:{g=e;d=e;e=F[d>>2];if(e){c=F[g+4>>2];if(!c){break u}while(1){d=c;c=F[c>>2];if(c){continue}break}}e=F[d+4>>2];if(e){break u}e=0;k=1;break t}F[e+8>>2]=F[d+8>>2];k=0}l=F[d+8>>2];c=F[l>>2];v:{if((d|0)==(c|0)){F[l>>2]=e;if((d|0)==(f|0)){c=0;f=e;break v}c=F[l+4>>2];break v}F[l+4>>2]=e}r=!G[d+12|0];if((d|0)!=(g|0)){l=F[g+8>>2];F[d+8>>2]=l;F[l+(((g|0)!=F[F[g+8>>2]>>2])<<2)>>2]=d;l=F[g>>2];F[d>>2]=l;F[l+8>>2]=d;l=F[g+4>>2];F[d+4>>2]=l;if(l){F[l+8>>2]=d}D[d+12|0]=G[g+12|0];f=(f|0)==(g|0)?d:f}w:{if(r|!f){break w}if(k){while(1){e=G[c+12|0];x:{d=F[c+8>>2];if(F[d>>2]!=(c|0)){if(!e){D[c+12|0]=1;D[d+12|0]=0;e=F[d+4>>2];k=F[e>>2];F[d+4>>2]=k;if(k){F[k+8>>2]=d}F[e+8>>2]=F[d+8>>2];k=F[d+8>>2];F[(((d|0)!=F[k>>2])<<2)+k>>2]=e;F[e>>2]=d;F[d+8>>2]=e;d=c;c=F[c>>2];f=(c|0)==(f|0)?d:f;c=F[c+4>>2]}y:{z:{d=F[c>>2];A:{if(!(G[d+12|0]?0:d)){e=F[c+4>>2];if(G[e+12|0]?0:e){break A}D[c+12|0]=0;c=F[c+8>>2];B:{if((f|0)==(c|0)){c=f;break B}if(G[c+12|0]){break x}}D[c+12|0]=1;break w}e=F[c+4>>2];if(!e){break z}}if(G[e+12|0]){break z}d=c;break y}D[d+12|0]=1;D[c+12|0]=0;e=F[d+4>>2];F[c>>2]=e;if(e){F[e+8>>2]=c}F[d+8>>2]=F[c+8>>2];e=F[c+8>>2];F[((F[e>>2]!=(c|0))<<2)+e>>2]=d;F[d+4>>2]=c;F[c+8>>2]=d;e=c}c=F[d+8>>2];D[d+12|0]=G[c+12|0];D[c+12|0]=1;D[e+12|0]=1;d=F[c+4>>2];e=F[d>>2];F[c+4>>2]=e;if(e){F[e+8>>2]=c}F[d+8>>2]=F[c+8>>2];e=F[c+8>>2];F[(((c|0)!=F[e>>2])<<2)+e>>2]=d;F[d>>2]=c;F[c+8>>2]=d;break w}if(!e){D[c+12|0]=1;D[d+12|0]=0;e=F[c+4>>2];F[d>>2]=e;if(e){F[e+8>>2]=d}F[c+8>>2]=F[d+8>>2];e=F[d+8>>2];F[(((d|0)!=F[e>>2])<<2)+e>>2]=c;F[c+4>>2]=d;F[d+8>>2]=c;f=(d|0)==(f|0)?c:f;c=F[d>>2]}e=F[c>>2];C:{if(!(!e|G[e+12|0])){d=c;break C}d=F[c+4>>2];if(!(G[d+12|0]?0:d)){D[c+12|0]=0;c=F[c+8>>2];if((c|0)!=(f|0)?G[c+12|0]:0){break x}D[c+12|0]=1;break w}if(e){if(!G[e+12|0]){d=c;break C}d=F[c+4>>2]}D[d+12|0]=1;D[c+12|0]=0;e=F[d>>2];F[c+4>>2]=e;if(e){F[e+8>>2]=c}F[d+8>>2]=F[c+8>>2];e=F[c+8>>2];F[((F[e>>2]!=(c|0))<<2)+e>>2]=d;F[d>>2]=c;F[c+8>>2]=d;e=c}c=F[d+8>>2];D[d+12|0]=G[c+12|0];D[c+12|0]=1;D[e+12|0]=1;d=F[c>>2];e=F[d+4>>2];F[c>>2]=e;if(e){F[e+8>>2]=c}F[d+8>>2]=F[c+8>>2];e=F[c+8>>2];F[(((c|0)!=F[e>>2])<<2)+e>>2]=d;F[d+4>>2]=c;F[c+8>>2]=d;break w}d=c;c=F[c+8>>2];c=F[(((d|0)==F[c>>2])<<2)+c>>2];continue}}D[e+12|0]=1}c=F[g+28>>2];if(c){F[g+32>>2]=c;ja(c)}if(D[g+27|0]<0){ja(F[g+16>>2])}ja(g)}F[h+8>>2]=0;F[h>>2]=0;F[h+4>>2]=0;c=F[i+4>>2];d=F[i>>2];f=c-d|0;e=0;D:{E:{if((c|0)!=(d|0)){if((f|0)<0){break E}e=ka(f);c=ma(e,0,f);g=c+f|0;F[h+8>>2]=g;F[h+4>>2]=g;F[h>>2]=c;c=d}la(e,c,f);F:{if(D[i+27|0]>=0){F[h+24>>2]=F[i+24>>2];c=F[i+20>>2];F[h+16>>2]=F[i+16>>2];F[h+20>>2]=c;break F}ra(h+16|0,F[i+16>>2],F[i+20>>2])}Tc(h+28|0,h);f=h+16|0;c=f;G:{H:{d=F[j+4>>2];I:{if(!d){e=j+4|0;c=e;break I}e=G[c+11|0];g=e<<24>>24<0;k=g?F[c>>2]:c;g=g?F[c+4>>2]:e;while(1){c=d;d=G[c+27|0];e=d<<24>>24<0;d=e?F[c+20>>2]:d;l=d>>>0>>0;J:{K:{L:{M:{r=l?d:g;N:{if(r){e=e?F[c+16>>2]:c+16|0;z=sa(k,e,r);if(!z){if(d>>>0>g>>>0){break N}break M}if((z|0)>=0){break M}break N}if(d>>>0<=g>>>0){break L}}e=c;d=F[c>>2];if(d){continue}break I}d=sa(e,k,r);if(d){break K}}if(l){break J}break H}if((d|0)>=0){break H}}d=F[c+4>>2];if(d){continue}break}e=c+4|0}d=ka(40);F[d+24>>2]=F[f+8>>2];g=F[f+4>>2];F[d+16>>2]=F[f>>2];F[d+20>>2]=g;F[f>>2]=0;F[f+4>>2]=0;F[f+8>>2]=0;Tc(d+28|0,f+12|0);F[d+8>>2]=c;F[d>>2]=0;F[d+4>>2]=0;F[e>>2]=d;c=d;f=F[F[j>>2]>>2];if(f){F[j>>2]=f;c=F[e>>2]}nb(F[j+4>>2],c);F[j+8>>2]=F[j+8>>2]+1;c=1;break G}d=c;c=0}D[h+44|0]=c;F[h+40>>2]=d;c=F[h+28>>2];if(c){F[h+32>>2]=c;ja(c)}if(D[h+27|0]<0){ja(F[h+16>>2])}c=F[h>>2];if(c){F[h+4>>2]=c;ja(c)}Z=h+48|0;break D}na();v()}d=F[i>>2];if(!d){break r}}F[i+4>>2]=d;ja(d)}d=(n|0)<=(y|0)&p>>>0>=u>>>0|(n|0)<(y|0)}if(D[i+27|0]<0){ja(F[i+16>>2])}Z=i+32|0;break o}na();v()}if(!d){break a}q=q+1|0;if((x|0)!=(q|0)){continue}break}}F[m+12>>2]=0;if(!fb(1,m+12|0,F[a>>2])){break a}c=F[a>>2];e=F[c+8>>2];f=F[c+16>>2];h=e-f|0;d=F[m+12>>2];c=F[c+12>>2]-(F[c+20>>2]+(e>>>0>>0)|0)|0;if(h>>>0>>0&(c|0)<=0|(c|0)<0){break a}if(d){q=0;h=((t|0)!=0)+w|0;while(1){O:{if(b>>>0>>0){F[b+8>>2]=h;F[b+4>>2]=0;F[b>>2]=j;b=b+12|0;d=F[m+12>>2];break O}c=b-o|0;g=(c|0)/12|0;b=g+1|0;if(b>>>0>=357913942){break c}e=(s-o|0)/12|0;f=e<<1;e=e>>>0>=178956970?357913941:b>>>0>>0?f:b;if(e){if(e>>>0>=357913942){break b}f=ka(L(e,12))}else{f=0}b=f+L(g,12)|0;F[b+8>>2]=h;F[b+4>>2]=0;F[b>>2]=j;c=pa(b+L((c|0)/-12|0,12)|0,o,c);s=f+L(e,12)|0;b=b+12|0;if(o){ja(o)}o=c}q=q+1|0;if(q>>>0>>0){continue}break}}if((b|0)!=(o|0)){continue}break}A=1;break a}na();v()}oa();v()}if(o){ja(o)}Z=m+32|0;return A}function me(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;h=Z-48|0;Z=h;a:{if((c|0)!=1){break a}i=F[a+4>>2];c=F[a+12>>2];F[h+40>>2]=0;F[h+32>>2]=0;F[h+36>>2]=0;F[h+24>>2]=0;F[h+28>>2]=0;F[h+16>>2]=0;F[h+20>>2]=0;F[h+8>>2]=0;F[h+12>>2]=0;d=h+8|0;b:{if((b|0)==-2){break b}k=F[F[F[i+4>>2]+8>>2]+(c<<2)>>2];if(($[F[F[i>>2]+8>>2]](i)|0)==1){j=Z-32|0;Z=j;l=F[F[F[i+4>>2]+8>>2]+(c<<2)>>2];c:{d:{e:{if(($[F[F[i>>2]+8>>2]](i)|0)!=1|b-1>>>0>5){break e}g=$[F[F[i>>2]+36>>2]](i)|0;f=$[F[F[i>>2]+44>>2]](i,c)|0;if(!g|!f){break e}c=$[F[F[i>>2]+40>>2]](i,c)|0;if(c){a=F[i+44>>2];F[j+12>>2]=c;F[j+8>>2]=a;F[j+20>>2]=f;F[j+16>>2]=f+12;f=j+8|0;a=0;f:{g:{switch(b-1|0){case 0:b=ka(60);F[b+4>>2]=l;F[b>>2]=2960;a=F[d+4>>2];F[b+8>>2]=F[d>>2];F[b+12>>2]=a;a=F[d+12>>2];F[b+16>>2]=F[d+8>>2];F[b+20>>2]=a;a=F[d+20>>2];F[b+24>>2]=F[d+16>>2];F[b+28>>2]=a;F[b+40>>2]=0;F[b+32>>2]=0;F[b+36>>2]=0;a=F[d+24>>2];g=F[d+28>>2];if((a|0)!=(g|0)){c=g-a|0;if((c|0)<0){break d}e=ka(c);F[b+32>>2]=e;F[b+40>>2]=(c&-4)+e;while(1){F[e>>2]=F[a>>2];e=e+4|0;a=a+4|0;if((g|0)!=(a|0)){continue}break}F[b+36>>2]=e}a=F[f+4>>2];F[b+44>>2]=F[f>>2];F[b+48>>2]=a;a=F[f+12>>2];F[b+52>>2]=F[f+8>>2];F[b+56>>2]=a;F[b>>2]=2252;a=b;break f;case 3:b=ka(112);F[b+4>>2]=l;F[b>>2]=2960;a=F[d+4>>2];F[b+8>>2]=F[d>>2];F[b+12>>2]=a;a=F[d+12>>2];F[b+16>>2]=F[d+8>>2];F[b+20>>2]=a;a=F[d+20>>2];F[b+24>>2]=F[d+16>>2];F[b+28>>2]=a;F[b+40>>2]=0;F[b+32>>2]=0;F[b+36>>2]=0;a=F[d+24>>2];g=F[d+28>>2];if((a|0)!=(g|0)){c=g-a|0;if((c|0)<0){break d}e=ka(c);F[b+32>>2]=e;F[b+40>>2]=(c&-4)+e;while(1){F[e>>2]=F[a>>2];e=e+4|0;a=a+4|0;if((g|0)!=(a|0)){continue}break}F[b+36>>2]=e}a=F[f+4>>2];F[b+44>>2]=F[f>>2];F[b+48>>2]=a;a=F[f+12>>2];F[b+52>>2]=F[f+8>>2];F[b+56>>2]=a;F[b+60>>2]=0;F[b+64>>2]=0;F[b>>2]=3016;F[b+68>>2]=0;F[b+72>>2]=0;F[b+76>>2]=0;F[b+80>>2]=0;F[b+84>>2]=0;F[b+88>>2]=0;F[b+92>>2]=0;F[b+96>>2]=0;F[b+100>>2]=0;F[b+104>>2]=0;F[b+108>>2]=0;a=b;break f;case 4:b=ka(104);F[b+4>>2]=l;F[b>>2]=2960;a=F[d+4>>2];F[b+8>>2]=F[d>>2];F[b+12>>2]=a;a=F[d+12>>2];F[b+16>>2]=F[d+8>>2];F[b+20>>2]=a;a=F[d+20>>2];F[b+24>>2]=F[d+16>>2];F[b+28>>2]=a;F[b+40>>2]=0;F[b+32>>2]=0;F[b+36>>2]=0;a=F[d+24>>2];g=F[d+28>>2];if((a|0)!=(g|0)){c=g-a|0;if((c|0)<0){break d}e=ka(c);F[b+32>>2]=e;F[b+40>>2]=(c&-4)+e;while(1){F[e>>2]=F[a>>2];e=e+4|0;a=a+4|0;if((g|0)!=(a|0)){continue}break}F[b+36>>2]=e}a=F[f+4>>2];F[b+44>>2]=F[f>>2];F[b+48>>2]=a;a=F[f+12>>2];F[b+52>>2]=F[f+8>>2];F[b+56>>2]=a;F[b+84>>2]=0;F[b+76>>2]=0;F[b+80>>2]=0;F[b+60>>2]=0;F[b+64>>2]=0;F[b>>2]=3264;a=F[f+4>>2];F[b+88>>2]=F[f>>2];F[b+92>>2]=a;a=F[f+12>>2];F[b+96>>2]=F[f+8>>2];F[b+100>>2]=a;a=b;break f;case 5:break g;default:break f}}a=ka(128);F[a+4>>2]=l;F[a>>2]=2960;b=F[d+4>>2];F[a+8>>2]=F[d>>2];F[a+12>>2]=b;b=F[d+12>>2];F[a+16>>2]=F[d+8>>2];F[a+20>>2]=b;b=F[d+20>>2];F[a+24>>2]=F[d+16>>2];F[a+28>>2]=b;F[a+40>>2]=0;F[a+32>>2]=0;F[a+36>>2]=0;h:{i:{c=F[d+28>>2];b=F[d+24>>2];if((c|0)!=(b|0)){c=c-b|0;if((c|0)<0){break i}b=ka(c);F[a+36>>2]=b;F[a+32>>2]=b;F[a+40>>2]=(c&-4)+b;e=F[d+24>>2];c=F[d+28>>2];if((e|0)!=(c|0)){while(1){F[b>>2]=F[e>>2];b=b+4|0;e=e+4|0;if((c|0)!=(e|0)){continue}break}}F[a+36>>2]=b}F[a>>2]=2904;b=F[f+4>>2];F[a+44>>2]=F[f>>2];F[a+48>>2]=b;b=F[f+12>>2];F[a+52>>2]=F[f+8>>2];F[a+56>>2]=b;b=a- -64|0;F[b>>2]=0;F[b+4>>2]=0;F[a+60>>2]=4128;F[a>>2]=3500;b=F[f+4>>2];F[a+72>>2]=F[f>>2];F[a+76>>2]=b;b=F[f+12>>2];F[a+80>>2]=F[f+8>>2];F[a+84>>2]=b;F[a+104>>2]=1065353216;F[a+108>>2]=-1;F[a+96>>2]=-1;F[a+100>>2]=-1;F[a+88>>2]=1;F[a+92>>2]=-1;F[a+60>>2]=3736;F[a+112>>2]=0;F[a+116>>2]=0;D[a+117|0]=0;D[a+118|0]=0;D[a+119|0]=0;D[a+120|0]=0;D[a+121|0]=0;D[a+122|0]=0;D[a+123|0]=0;D[a+124|0]=0;break h}na();v()}break f}e=a;break e}a=F[i+44>>2];F[j+12>>2]=g;F[j+8>>2]=a;F[j+20>>2]=f;F[j+16>>2]=f+12;f=j+8|0;a=0;j:{k:{switch(b-1|0){case 0:b=ka(60);F[b+4>>2]=l;F[b>>2]=2960;a=F[d+4>>2];F[b+8>>2]=F[d>>2];F[b+12>>2]=a;a=F[d+12>>2];F[b+16>>2]=F[d+8>>2];F[b+20>>2]=a;a=F[d+20>>2];F[b+24>>2]=F[d+16>>2];F[b+28>>2]=a;F[b+40>>2]=0;F[b+32>>2]=0;F[b+36>>2]=0;a=F[d+24>>2];g=F[d+28>>2];if((a|0)!=(g|0)){c=g-a|0;if((c|0)<0){break d}e=ka(c);F[b+32>>2]=e;F[b+40>>2]=(c&-4)+e;while(1){F[e>>2]=F[a>>2];e=e+4|0;a=a+4|0;if((g|0)!=(a|0)){continue}break}F[b+36>>2]=e}a=F[f+4>>2];F[b+44>>2]=F[f>>2];F[b+48>>2]=a;a=F[f+12>>2];F[b+52>>2]=F[f+8>>2];F[b+56>>2]=a;F[b>>2]=4156;a=b;break j;case 3:b=ka(112);F[b+4>>2]=l;F[b>>2]=2960;a=F[d+4>>2];F[b+8>>2]=F[d>>2];F[b+12>>2]=a;a=F[d+12>>2];F[b+16>>2]=F[d+8>>2];F[b+20>>2]=a;a=F[d+20>>2];F[b+24>>2]=F[d+16>>2];F[b+28>>2]=a;F[b+40>>2]=0;F[b+32>>2]=0;F[b+36>>2]=0;a=F[d+24>>2];g=F[d+28>>2];if((a|0)!=(g|0)){c=g-a|0;if((c|0)<0){break d}e=ka(c);F[b+32>>2]=e;F[b+40>>2]=(c&-4)+e;while(1){F[e>>2]=F[a>>2];e=e+4|0;a=a+4|0;if((g|0)!=(a|0)){continue}break}F[b+36>>2]=e}a=F[f+4>>2];F[b+44>>2]=F[f>>2];F[b+48>>2]=a;a=F[f+12>>2];F[b+52>>2]=F[f+8>>2];F[b+56>>2]=a;F[b+60>>2]=0;F[b+64>>2]=0;F[b>>2]=4580;F[b+68>>2]=0;F[b+72>>2]=0;F[b+76>>2]=0;F[b+80>>2]=0;F[b+84>>2]=0;F[b+88>>2]=0;F[b+92>>2]=0;F[b+96>>2]=0;F[b+100>>2]=0;F[b+104>>2]=0;F[b+108>>2]=0;a=b;break j;case 4:b=ka(104);F[b+4>>2]=l;F[b>>2]=2960;a=F[d+4>>2];F[b+8>>2]=F[d>>2];F[b+12>>2]=a;a=F[d+12>>2];F[b+16>>2]=F[d+8>>2];F[b+20>>2]=a;a=F[d+20>>2];F[b+24>>2]=F[d+16>>2];F[b+28>>2]=a;F[b+40>>2]=0;F[b+32>>2]=0;F[b+36>>2]=0;a=F[d+24>>2];g=F[d+28>>2];if((a|0)!=(g|0)){c=g-a|0;if((c|0)<0){break d}e=ka(c);F[b+32>>2]=e;F[b+40>>2]=(c&-4)+e;while(1){F[e>>2]=F[a>>2];e=e+4|0;a=a+4|0;if((g|0)!=(a|0)){continue}break}F[b+36>>2]=e}a=F[f+4>>2];F[b+44>>2]=F[f>>2];F[b+48>>2]=a;a=F[f+12>>2];F[b+52>>2]=F[f+8>>2];F[b+56>>2]=a;F[b+84>>2]=0;F[b+76>>2]=0;F[b+80>>2]=0;F[b+60>>2]=0;F[b+64>>2]=0;F[b>>2]=4816;a=F[f+4>>2];F[b+88>>2]=F[f>>2];F[b+92>>2]=a;a=F[f+12>>2];F[b+96>>2]=F[f+8>>2];F[b+100>>2]=a;a=b;break j;case 5:break k;default:break j}}a=ka(128);F[a+4>>2]=l;F[a>>2]=2960;b=F[d+4>>2];F[a+8>>2]=F[d>>2];F[a+12>>2]=b;b=F[d+12>>2];F[a+16>>2]=F[d+8>>2];F[a+20>>2]=b;b=F[d+20>>2];F[a+24>>2]=F[d+16>>2];F[a+28>>2]=b;F[a+40>>2]=0;F[a+32>>2]=0;F[a+36>>2]=0;l:{m:{c=F[d+28>>2];b=F[d+24>>2];if((c|0)!=(b|0)){c=c-b|0;if((c|0)<0){break m}b=ka(c);F[a+36>>2]=b;F[a+32>>2]=b;F[a+40>>2]=(c&-4)+b;e=F[d+24>>2];c=F[d+28>>2];if((e|0)!=(c|0)){while(1){F[b>>2]=F[e>>2];b=b+4|0;e=e+4|0;if((c|0)!=(e|0)){continue}break}}F[a+36>>2]=b}F[a>>2]=4524;b=F[f+4>>2];F[a+44>>2]=F[f>>2];F[a+48>>2]=b;b=F[f+12>>2];F[a+52>>2]=F[f+8>>2];F[a+56>>2]=b;b=a- -64|0;F[b>>2]=0;F[b+4>>2]=0;F[a+60>>2]=5624;F[a>>2]=5040;b=F[f+4>>2];F[a+72>>2]=F[f>>2];F[a+76>>2]=b;b=F[f+12>>2];F[a+80>>2]=F[f+8>>2];F[a+84>>2]=b;F[a+104>>2]=1065353216;F[a+108>>2]=-1;F[a+96>>2]=-1;F[a+100>>2]=-1;F[a+88>>2]=1;F[a+92>>2]=-1;F[a+60>>2]=5260;F[a+112>>2]=0;F[a+116>>2]=0;D[a+117|0]=0;D[a+118|0]=0;D[a+119|0]=0;D[a+120|0]=0;D[a+121|0]=0;D[a+122|0]=0;D[a+123|0]=0;D[a+124|0]=0;break l}na();v()}break j}e=a}Z=j+32|0;break c}na();v()}if(e){break b}}e=ka(44);F[e+4>>2]=k;F[e>>2]=2960;a=F[d+4>>2];F[e+8>>2]=F[d>>2];F[e+12>>2]=a;a=F[d+12>>2];F[e+16>>2]=F[d+8>>2];F[e+20>>2]=a;a=F[d+20>>2];F[e+24>>2]=F[d+16>>2];F[e+28>>2]=a;F[e+40>>2]=0;F[e+32>>2]=0;F[e+36>>2]=0;n:{c=F[d+24>>2];b=F[d+28>>2];if((c|0)!=(b|0)){a=b-c|0;if((a|0)<0){break n}k=ka(a);F[e+32>>2]=k;F[e+40>>2]=(a&-4)+k;while(1){F[k>>2]=F[c>>2];k=k+4|0;c=c+4|0;if((b|0)!=(c|0)){continue}break}F[e+36>>2]=k}F[e>>2]=5652;break b}na();v()}k=e;a=F[h+32>>2];if(!a){break a}F[h+36>>2]=a;ja(a)}Z=h+48|0;return k|0}function rf(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0,z=0,A=0;m=Z-16|0;Z=m;F[m+12>>2]=b;b=ka(32);F[m>>2]=b;F[m+4>>2]=24;F[m+8>>2]=-2147483616;c=G[1196]|G[1197]<<8|(G[1198]<<16|G[1199]<<24);d=G[1192]|G[1193]<<8|(G[1194]<<16|G[1195]<<24);D[b+16|0]=d;D[b+17|0]=d>>>8;D[b+18|0]=d>>>16;D[b+19|0]=d>>>24;D[b+20|0]=c;D[b+21|0]=c>>>8;D[b+22|0]=c>>>16;D[b+23|0]=c>>>24;c=G[1188]|G[1189]<<8|(G[1190]<<16|G[1191]<<24);d=G[1184]|G[1185]<<8|(G[1186]<<16|G[1187]<<24);D[b+8|0]=d;D[b+9|0]=d>>>8;D[b+10|0]=d>>>16;D[b+11|0]=d>>>24;D[b+12|0]=c;D[b+13|0]=c>>>8;D[b+14|0]=c>>>16;D[b+15|0]=c>>>24;c=G[1180]|G[1181]<<8|(G[1182]<<16|G[1183]<<24);d=G[1176]|G[1177]<<8|(G[1178]<<16|G[1179]<<24);D[b|0]=d;D[b+1|0]=d>>>8;D[b+2|0]=d>>>16;D[b+3|0]=d>>>24;D[b+4|0]=c;D[b+5|0]=c>>>8;D[b+6|0]=c>>>16;D[b+7|0]=c>>>24;D[b+24|0]=0;l=Z-48|0;Z=l;f=F[m+12>>2];d=a;a=a+16|0;b=F[a>>2];a:{b:{if(!b){break b}c=a;while(1){e=(f|0)>F[b+16>>2];c=e?c:b;b=F[(e?b+4|0:b)>>2];if(b){continue}break}if((a|0)==(c|0)){break b}if((f|0)>=F[c+16>>2]){break a}}F[l+28>>2]=0;F[l+32>>2]=0;y=l+24|0;F[l+24>>2]=y|4;a=l+16|0;F[a>>2]=0;F[a+4>>2]=0;F[l+8>>2]=f;F[l+12>>2]=a;t=l+8|0;a=t;x=Z-16|0;Z=x;u=d+12|0;c=F[u+4>>2];c:{d:{if(!c){o=u+4|0;d=o;break d}a=F[a>>2];while(1){d=c;b=F[c+16>>2];if((b|0)>(a|0)){o=d;c=F[d>>2];if(c){continue}break d}if((a|0)<=(b|0)){g=d;a=0;break c}c=F[d+4>>2];if(c){continue}break}o=d+4|0}g=ka(32);b=F[t>>2];q=g+24|0;a=q;F[a>>2]=0;F[a+4>>2]=0;F[g+16>>2]=b;r=g+20|0;F[r>>2]=a;c=F[t+4>>2];z=t+8|0;if((c|0)!=(z|0)){while(1){p=Z-16|0;Z=p;a=p+8|0;k=c+16|0;e:{f:{g:{h:{i:{j:{k:{f=q;e=r+4|0;l:{if((f|0)==(e|0)){break l}b=G[f+27|0];h=b<<24>>24<0;i=G[k+11|0];n=i<<24>>24;j=(n|0)<0;i=j?F[k+4>>2]:i;b=h?F[f+20>>2]:b;s=i>>>0>b>>>0;w=s?b:i;if(w){j=j?F[k>>2]:k;h=h?F[f+16>>2]:f+16|0;A=sa(j,h,w);if(!A){if(b>>>0>i>>>0){break l}break k}if((A|0)>=0){break k}break l}if(b>>>0<=i>>>0){break j}}h=F[f>>2];m:{a=f;n:{if((a|0)==F[r>>2]){break n}o:{if(!h){b=f;while(1){a=F[b+8>>2];i=F[a>>2]==(b|0);b=a;if(i){continue}break}break o}b=h;while(1){a=b;b=F[b+4>>2];if(b){continue}break}}i=G[k+11|0];s=i<<24>>24;b=(s|0)<0;j=G[a+27|0];n=j<<24>>24<0;p:{i=b?F[k+4>>2]:i;j=n?F[a+20>>2]:j;w=i>>>0>>0?i:j;if(w){b=sa(n?F[a+16>>2]:a+16|0,b?F[k>>2]:k,w);if(b){break p}}if(i>>>0>j>>>0){break n}break m}if((b|0)>=0){break m}}if(!h){F[p+12>>2]=f;a=f;break e}F[p+12>>2]=a;a=a+4|0;break e}b=F[e>>2];if(!b){F[p+12>>2]=e;a=e;break e}h=(s|0)<0?F[k>>2]:k;f=e;while(1){a=b;b=G[b+27|0];e=b<<24>>24<0;b=e?F[a+20>>2]:b;k=b>>>0>>0;q:{r:{s:{t:{n=k?b:i;u:{if(n){e=e?F[a+16>>2]:a+16|0;j=sa(h,e,n);if(!j){if(b>>>0>i>>>0){break u}break t}if((j|0)>=0){break t}break u}if(b>>>0<=i>>>0){break s}}f=a;b=F[a>>2];if(b){continue}break g}b=sa(e,h,n);if(b){break r}}if(k){break q}break g}if((b|0)>=0){break g}}f=a+4|0;b=F[a+4>>2];if(b){continue}break}break g}b=sa(h,j,w);if(b){break i}}if(s){break h}break f}if((b|0)>=0){break f}}h=F[f+4>>2];v:{if(!h){b=f;while(1){a=F[b+8>>2];j=F[a>>2]!=(b|0);b=a;if(j){continue}break}break v}b=h;while(1){a=b;b=F[b>>2];if(b){continue}break}}w:{x:{if((a|0)==(e|0)){break x}j=G[a+27|0];b=j<<24>>24<0;y:{j=b?F[a+20>>2]:j;s=i>>>0>j>>>0?j:i;if(s){b=sa((n|0)<0?F[k>>2]:k,b?F[a+16>>2]:a+16|0,s);if(b){break y}}if(i>>>0>>0){break x}break w}if((b|0)>=0){break w}}if(!h){F[p+12>>2]=f;a=f+4|0;break e}F[p+12>>2]=a;break e}b=F[e>>2];if(!b){F[p+12>>2]=e;a=e;break e}h=(n|0)<0?F[k>>2]:k;f=e;while(1){a=b;b=G[b+27|0];e=b<<24>>24<0;b=e?F[a+20>>2]:b;k=b>>>0>>0;z:{A:{B:{C:{n=k?b:i;D:{if(n){e=e?F[a+16>>2]:a+16|0;j=sa(h,e,n);if(!j){if(b>>>0>i>>>0){break D}break C}if((j|0)>=0){break C}break D}if(b>>>0<=i>>>0){break B}}f=a;b=F[a>>2];if(b){continue}break g}b=sa(e,h,n);if(b){break A}}if(k){break z}break g}if((b|0)>=0){break g}}f=a+4|0;b=F[a+4>>2];if(b){continue}break}}F[p+12>>2]=a;a=f;break e}F[p+12>>2]=f;F[a>>2]=f}f=a;a=F[a>>2];if(a){b=0}else{a=ka(40);b=a+16|0;E:{if(D[c+27|0]>=0){e=F[c+20>>2];F[b>>2]=F[c+16>>2];F[b+4>>2]=e;F[b+8>>2]=F[c+24>>2];break E}ra(b,F[c+16>>2],F[c+20>>2])}b=a+28|0;F:{if(D[c+39|0]>=0){e=F[c+32>>2];F[b>>2]=F[c+28>>2];F[b+4>>2]=e;F[b+8>>2]=F[c+36>>2];break F}ra(b,F[c+28>>2],F[c+32>>2])}F[a+8>>2]=F[p+12>>2];F[a>>2]=0;F[a+4>>2]=0;F[f>>2]=a;b=a;e=F[F[r>>2]>>2];if(e){F[r>>2]=e;b=F[f>>2]}nb(F[r+4>>2],b);F[r+8>>2]=F[r+8>>2]+1;b=1}D[x+12|0]=b;F[x+8>>2]=a;Z=p+16|0;b=F[c+4>>2];G:{if(b){while(1){c=b;b=F[b>>2];if(b){continue}break G}}while(1){a=c;c=F[c+8>>2];if((a|0)!=F[c>>2]){continue}break}}if((c|0)!=(z|0)){continue}break}}F[g+8>>2]=d;F[g>>2]=0;F[g+4>>2]=0;F[o>>2]=g;c=g;a=F[F[u>>2]>>2];if(a){F[u>>2]=a;c=F[o>>2]}nb(F[u+4>>2],c);F[u+8>>2]=F[u+8>>2]+1;a=1}D[l+44|0]=a;F[l+40>>2]=g;Z=x+16|0;c=F[l+40>>2];ib(t|4,F[l+16>>2]);ib(y,F[l+28>>2])}f=Z-48|0;Z=f;d=f+8|0;g=Z-32|0;Z=g;o=g+32|0;b=o;a=g+21|0;H:{if((b|0)==(a|0)){break H}}e=b-a|0;I:{if((e|0)<=9){h=61;if((e|0)<(I[2684]<=1|0)){break I}}D[a|0]=49;b=a+1|0;h=0}F[g+12>>2]=h;F[g+8>>2]=b;h=Z-16|0;Z=h;e=Z-16|0;Z=e;J:{q=F[g+8>>2];g=q-a|0;if(g>>>0<=2147483631){K:{if(g>>>0<11){D[d+11|0]=g|G[d+11|0]&128;D[d+11|0]=G[d+11|0]&127;b=d;break K}t=e+8|0;if(g>>>0>=11){k=g+16&-16;b=k-1|0;b=(b|0)==11?k:b}else{b=10}sb(t,b+1|0);b=F[e+8>>2];F[d>>2]=b;F[d+8>>2]=F[d+8>>2]&-2147483648|F[e+12>>2]&2147483647;F[d+8>>2]=F[d+8>>2]|-2147483648;F[d+4>>2]=g}while(1){if((a|0)!=(q|0)){D[b|0]=G[a|0];b=b+1|0;a=a+1|0;continue}break}D[e+7|0]=0;D[b|0]=G[e+7|0];Z=e+16|0;break J}za();v()}Z=h+16|0;Z=o;F[f+32>>2]=m;L:{M:{a=c+20|0;d=F[a+4>>2];N:{if(!d){g=a+4|0;c=g;break N}b=G[m+11|0];c=b<<24>>24<0;e=c?F[m>>2]:m;b=c?F[m+4>>2]:b;while(1){c=d;d=G[c+27|0];g=d<<24>>24<0;d=g?F[c+20>>2]:d;o=d>>>0>>0;O:{P:{Q:{R:{h=o?d:b;S:{if(h){g=g?F[c+16>>2]:c+16|0;q=sa(e,g,h);if(!q){if(b>>>0>>0){break S}break R}if((q|0)>=0){break R}break S}if(b>>>0>=d>>>0){break Q}}g=c;d=F[c>>2];if(d){continue}break N}d=sa(g,e,h);if(d){break P}}if(o){break O}break M}if((d|0)>=0){break M}}d=F[c+4>>2];if(d){continue}break}g=c+4|0}d=ka(40);e=d+16|0;b=F[f+32>>2];T:{if(D[b+11|0]>=0){o=F[b+4>>2];F[e>>2]=F[b>>2];F[e+4>>2]=o;F[e+8>>2]=F[b+8>>2];break T}ra(e,F[b>>2],F[b+4>>2])}F[d+8>>2]=c;F[d>>2]=0;F[d+4>>2]=0;F[d+36>>2]=0;F[d+28>>2]=0;F[d+32>>2]=0;F[g>>2]=d;c=d;b=F[F[a>>2]>>2];if(b){F[a>>2]=b;c=F[g>>2]}nb(F[a+4>>2],c);F[a+8>>2]=F[a+8>>2]+1;a=1;break L}d=c;a=0}D[f+44|0]=a;F[f+40>>2]=d;a=F[f+40>>2];if(D[a+39|0]<0){ja(F[a+28>>2])}b=F[f+12>>2];F[a+28>>2]=F[f+8>>2];F[a+32>>2]=b;F[a+36>>2]=F[f+16>>2];Z=f+48|0;Z=l+48|0;if(D[m+11|0]<0){ja(F[m>>2])}Z=m+16|0}function zd(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0;h=Z-32|0;Z=h;g=F[F[a+4>>2]+44>>2];c=F[a+8>>2];d=F[c>>2];c=F[c+4>>2];F[h+24>>2]=0;F[h+16>>2]=0;F[h+20>>2]=0;d=(c-d>>2>>>0)/3|0;c=F[g+96>>2];f=(F[g+100>>2]-c|0)/12|0;a:{if(d>>>0>f>>>0){e=d-f|0;i=F[g+104>>2];c=F[g+100>>2];if(e>>>0<=(i-c|0)/12>>>0){b:{if(!e){break b}d=c;f=L(e,12)-12|0;i=((f>>>0)/12|0)+1&3;if(i){while(1){l=F[h+20>>2];F[d>>2]=F[h+16>>2];F[d+4>>2]=l;F[d+8>>2]=F[h+24>>2];d=d+12|0;j=j+1|0;if((i|0)!=(j|0)){continue}break}}c=L(e,12)+c|0;if(f>>>0<36){break b}while(1){f=F[h+20>>2];F[d>>2]=F[h+16>>2];F[d+4>>2]=f;F[d+8>>2]=F[h+24>>2];F[d+20>>2]=F[h+24>>2];f=F[h+20>>2];F[d+12>>2]=F[h+16>>2];F[d+16>>2]=f;F[d+32>>2]=F[h+24>>2];f=F[h+20>>2];F[d+24>>2]=F[h+16>>2];F[d+28>>2]=f;f=F[h+20>>2];F[d+36>>2]=F[h+16>>2];F[d+40>>2]=f;F[d+44>>2]=F[h+24>>2];d=d+48|0;if((d|0)!=(c|0)){continue}break}}F[g+100>>2]=c;break a}c:{f=F[g+96>>2];n=(c-f|0)/12|0;d=n+e|0;if(d>>>0<357913942){f=(i-f|0)/12|0;i=f<<1;i=f>>>0>=178956970?357913941:d>>>0>>0?i:d;if(i){if(i>>>0>=357913942){break c}l=ka(L(i,12))}f=L(n,12)+l|0;d=f;e=L(e,12);n=e-12|0;q=((n>>>0)/12|0)+1&3;if(q){while(1){r=F[h+20>>2];F[d>>2]=F[h+16>>2];F[d+4>>2]=r;F[d+8>>2]=F[h+24>>2];d=d+12|0;j=j+1|0;if((q|0)!=(j|0)){continue}break}}e=e+f|0;if(n>>>0>=36){while(1){j=F[h+20>>2];F[d>>2]=F[h+16>>2];F[d+4>>2]=j;F[d+8>>2]=F[h+24>>2];F[d+20>>2]=F[h+24>>2];j=F[h+20>>2];F[d+12>>2]=F[h+16>>2];F[d+16>>2]=j;F[d+32>>2]=F[h+24>>2];j=F[h+20>>2];F[d+24>>2]=F[h+16>>2];F[d+28>>2]=j;j=F[h+20>>2];F[d+36>>2]=F[h+16>>2];F[d+40>>2]=j;F[d+44>>2]=F[h+24>>2];d=d+48|0;if((e|0)!=(d|0)){continue}break}}j=F[g+96>>2];if((j|0)!=(c|0)){while(1){c=c-12|0;n=F[c+4>>2];f=f-12|0;d=f;F[d>>2]=F[c>>2];F[d+4>>2]=n;F[d+8>>2]=F[c+8>>2];if((c|0)!=(j|0)){continue}break}c=F[g+96>>2]}F[g+104>>2]=L(i,12)+l;F[g+100>>2]=e;F[g+96>>2]=f;if(c){ja(c)}break a}na();v()}oa();v()}if(d>>>0>=f>>>0){break a}F[g+100>>2]=c+L(d,12)}d:{if(F[a+216>>2]==F[a+220>>2]){j=F[a+4>>2];c=F[j+44>>2];d=F[c+100>>2];f=F[c+96>>2];if((d|0)!=(f|0)){c=(d-f|0)/12|0;o=c>>>0<=1?1:c;c=0;while(1){d=F[a+8>>2];i=f+L(c,12)|0;g=L(c,3);e:{f:{if((g|0)==-1){e=F[(F[d>>2]+(g<<2)|0)+4>>2];k=-1;g=1;break f}e=-1;k=F[F[d>>2]+(g<<2)>>2];l=g+1|0;if((l|0)==-1){g=0;break f}e=F[F[d>>2]+(l<<2)>>2];g=g+2|0;m=-1;if((g|0)==-1){break e}}m=F[F[d>>2]+(g<<2)>>2]}F[i+8>>2]=m;F[i+4>>2]=e;F[i>>2]=k;c=c+1|0;if((o|0)!=(c|0)){continue}break}}F[F[j+4>>2]+80>>2]=b;c=1;break d}d=0;F[h+24>>2]=0;F[h+16>>2]=0;F[h+20>>2]=0;l=F[a+8>>2];c=F[l>>2];g=F[l+4>>2];F[h+8>>2]=0;F[h>>2]=0;F[h+4>>2]=0;b=0;g:{h:{i:{j:{k:{l:{if((c|0)!=(g|0)){c=g-c|0;if((c|0)<0){break l}b=ka(c);F[h>>2]=b;F[h+8>>2]=(c&-4)+b;u=h,w=ma(b,0,c)+c|0,F[u+4>>2]=w}c=F[l+24>>2];if((F[l+28>>2]-c|0)<4){break h}f=0;while(1){g=F[(p<<2)+c>>2];m:{if((g|0)==-1){break m}n:{if(F[F[a+120>>2]+(p>>>3&536870908)>>2]>>>p&1){break n}n=F[a+216>>2];c=F[a+220>>2];if((n|0)==(c|0)){break n}e=g+2|0;i=(g>>>0)%3|0;q=i?g-1|0:e;c=(c-n|0)/144|0;r=c>>>0<=1?1:c;j=0;t=(i|0)!=0|(e|0)!=-1;while(1){s=g<<2;i=L(j,144)+n|0;c=F[s+F[F[i+68>>2]>>2]>>2];o:{if(!(F[F[i+16>>2]+(c>>>3&536870908)>>2]>>>c&1)){break o}c=-1;p:{if(!t){break p}e=F[F[l+12>>2]+(q<<2)>>2];c=-1;if((e|0)==-1){break p}c=e-1|0;if((e>>>0)%3|0){break p}c=e+2|0}if((g|0)==(c|0)){break o}e=s;s=F[i+32>>2];i=F[e+s>>2];while(1){e=0;if((c|0)==-1){break g}if((i|0)!=F[s+(c<<2)>>2]){g=c;break n}q:{r:{if((c>>>0)%3|0){e=c-1|0;break r}e=c+2|0;m=-1;if((e|0)==-1){break q}}c=F[F[l+12>>2]+(e<<2)>>2];m=-1;if((c|0)==-1){break q}m=c-1|0;if((c>>>0)%3|0){break q}m=c+2|0}c=m;if((g|0)!=(c|0)){continue}break}}j=j+1|0;if((r|0)!=(j|0)){continue}break}}i=k-f|0;e=i>>2;F[(g<<2)+b>>2]=e;s:{if(k>>>0>>0){F[k>>2]=g;k=k+4|0;F[h+20>>2]=k;break s}c=e+1|0;if(c>>>0>=1073741824){break k}d=o-f|0;k=d>>>1|0;c=d>>>0>=2147483644?1073741823:c>>>0>>0?k:c;if(c){if(c>>>0>=1073741824){break j}d=ka(c<<2)}else{d=0}e=d+(e<<2)|0;F[e>>2]=g;m=c<<2;c=pa(d,f,i);o=m+c|0;F[h+24>>2]=o;k=e+4|0;F[h+20>>2]=k;F[h+16>>2]=c;if(f){ja(f);l=F[a+8>>2]}f=c}if((g|0)==-1){break m}t:{if((g>>>0)%3|0){c=g-1|0;break t}c=g+2|0;if((c|0)==-1){break m}}c=F[F[l+12>>2]+(c<<2)>>2];if((c|0)==-1){break m}c=c+((c>>>0)%3|0?-1:2)|0;if((c|0)==-1){break m}e=g;if((c|0)==(g|0)){break m}while(1){i=c;u:{v:{c=F[a+220>>2];j=F[a+216>>2];if((c|0)==(j|0)){break v}c=(c-j|0)/144|0;n=c>>>0<=1?1:c;c=0;while(1){q=F[(j+L(c,144)|0)+32>>2];r=i<<2;if(F[q+r>>2]==F[q+(e<<2)>>2]){c=c+1|0;if((n|0)!=(c|0)){continue}break v}break}j=k-d|0;e=j>>2;F[b+r>>2]=e;if(k>>>0>>0){F[k>>2]=i;k=k+4|0;F[h+20>>2]=k;f=d;break u}c=e+1|0;if(c>>>0>=1073741824){break i}f=o-d|0;k=f>>>1|0;c=f>>>0>=2147483644?1073741823:c>>>0>>0?k:c;if(c){if(c>>>0>=1073741824){break j}f=ka(c<<2)}else{f=0}e=f+(e<<2)|0;F[e>>2]=i;m=c<<2;c=pa(f,d,j);o=m+c|0;F[h+24>>2]=o;k=e+4|0;F[h+20>>2]=k;F[h+16>>2]=c;if(!d){d=c;break u}ja(d);l=F[a+8>>2];d=c;break u}F[(i<<2)+b>>2]=F[(e<<2)+b>>2]}if((i|0)==-1){break m}w:{if((i>>>0)%3|0){c=i-1|0;break w}c=i+2|0;if((c|0)==-1){break m}}c=F[F[l+12>>2]+(c<<2)>>2];if((c|0)==-1){break m}c=c+((c>>>0)%3|0?-1:2)|0;if((c|0)==-1){break m}e=i;if((c|0)!=(g|0)){continue}break}}p=p+1|0;c=F[l+24>>2];if((p|0)>2]-c>>2){continue}break}break h}na();v()}na();v()}oa();v()}na();v()}i=F[a+4>>2];a=F[i+44>>2];c=F[a+100>>2];a=F[a+96>>2];x:{if((c|0)==(a|0)){break x}g=(c-a|0)/12|0;f=g>>>0<=1?1:g;l=f&1;c=0;if(g>>>0>=2){j=f&-2;g=0;while(1){e=L(c,12);f=e+b|0;o=F[f>>2];p=F[f+4>>2];e=a+e|0;F[e+8>>2]=F[f+8>>2];F[e>>2]=o;F[e+4>>2]=p;e=L(c|1,12);f=e+b|0;o=F[f>>2];p=F[f+4>>2];e=a+e|0;F[e+8>>2]=F[f+8>>2];F[e>>2]=o;F[e+4>>2]=p;c=c+2|0;g=g+2|0;if((j|0)!=(g|0)){continue}break}}if(!l){break x}g=L(c,12);c=g+b|0;f=F[c>>2];e=F[c+4>>2];a=a+g|0;F[a+8>>2]=F[c+8>>2];F[a>>2]=f;F[a+4>>2]=e}F[F[i+4>>2]+80>>2]=k-d>>2;e=1}c=e;if(b){ja(b)}if(!d){break d}F[h+20>>2]=d;ja(d)}Z=h+32|0;return c}function de(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,G=0,H=0,I=0,J=0,K=0,M=0,N=0,O=0,P=0;g=Z+-64|0;Z=g;F[a+8>>2]=e;y=a+32|0;f=F[y>>2];d=F[a+36>>2]-f>>2;a:{b:{if(d>>>0>>0){qa(y,e-d|0);F[g+56>>2]=0;F[g+60>>2]=0;F[g+48>>2]=0;F[g+52>>2]=0;F[g+40>>2]=0;F[g+44>>2]=0;F[g+32>>2]=0;F[g+36>>2]=0;F[g+24>>2]=0;F[g+28>>2]=0;F[g+16>>2]=0;F[g+20>>2]=0;F[g>>2]=0;break b}if(d>>>0>e>>>0){F[a+36>>2]=f+(e<<2)}F[g+56>>2]=0;F[g+60>>2]=0;F[g+48>>2]=0;F[g+52>>2]=0;F[g+40>>2]=0;F[g+44>>2]=0;F[g+32>>2]=0;F[g+36>>2]=0;F[g+24>>2]=0;F[g+28>>2]=0;F[g+16>>2]=0;F[g+20>>2]=0;F[g>>2]=0;d=0;if(!e){break a}}Fa(g+16|0,e,g);h=F[g+28>>2];d=F[g+32>>2]}F[g>>2]=0;d=d-h>>2;c:{if(d>>>0>=e>>>0){if(d>>>0<=e>>>0){break c}F[g+32>>2]=(e<<2)+h;break c}Fa(g+16|12,e-d|0,g)}F[g>>2]=0;f=F[g+40>>2];d=F[g+44>>2]-f>>2;d:{if(d>>>0>=e>>>0){if(d>>>0<=e>>>0){break d}F[g+44>>2]=f+(e<<2);break d}Fa(g+40|0,e-d|0,g)}F[g>>2]=0;f=F[g+52>>2];d=F[g+56>>2]-f>>2;e:{if(d>>>0>=e>>>0){if(d>>>0<=e>>>0){break e}F[g+56>>2]=f+(e<<2);break e}Fa(g+52|0,e-d|0,g)}f:{if(F[a+8>>2]<=0){break f}i=F[g+16>>2];j=F[a+32>>2];h=0;while(1){d=h<<2;f=F[d+i>>2];m=F[a+16>>2];g:{if((f|0)>(m|0)){F[d+j>>2]=m;break g}d=d+j|0;m=F[a+12>>2];if((m|0)>(f|0)){F[d>>2]=m;break g}F[d>>2]=f}h=h+1|0;d=F[a+8>>2];if((h|0)<(d|0)){continue}break}if((d|0)<=0){break f}d=0;while(1){i=d<<2;f=i+c|0;i=F[b+i>>2]+F[j+i>>2]|0;F[f>>2]=i;h:{if((i|0)>F[a+16>>2]){i=i-F[a+20>>2]|0}else{if((i|0)>=F[a+12>>2]){break h}i=i+F[a+20>>2]|0}F[f>>2]=i}d=d+1|0;if((d|0)>2]){continue}break}}H=F[a+52>>2];t=F[a+48>>2];z=ka(16);d=z;F[d>>2]=0;F[d+4>>2]=0;F[d+8>>2]=0;F[d+12>>2]=0;F[g+8>>2]=0;F[g>>2]=0;F[g+4>>2]=0;i:{if(e){if(e>>>0>=1073741824){break i}d=e<<2;r=ka(d);F[g>>2]=r;F[g+8>>2]=d+r;ma(r,0,d)}A=1;d=F[a+56>>2];B=F[d>>2];d=F[d+4>>2]-B|0;j:{if((d|0)<8){break j}w=d>>2;I=(w|0)<=2?2:w;J=w>>>0<=1?1:w;C=e&-2;D=e&1;K=e&-4;E=e&3;G=e-1|0;M=e<<2;N=e>>>0<4;A=0;m=1;while(1){k:{l:{m:{n:{if((m|0)!=(J|0)){o:{p:{f=F[(m<<2)+B>>2];if((f|0)==-1){break p}k=1;d=f+2|0;j=(f>>>0)%3|0;x=j?f-1|0:d;s=1<>2];O=n+(x>>>3&536870908)|0;i=0;P=(j|0)!=0|(d|0)!=-1;d=f;q:{while(1){r:{if(F[n+(d>>>3&536870908)>>2]>>>d&1){break r}j=F[F[F[t+64>>2]+12>>2]+(d<<2)>>2];if((j|0)==-1){break r}l=F[H>>2];h=F[t+28>>2];p=F[l+(F[h+(j<<2)>>2]<<2)>>2];if((p|0)>=(m|0)){break r}q=j+1|0;q=F[l+(F[h+(((q>>>0)%3|0?q:j-2|0)<<2)>>2]<<2)>>2];if((q|0)>=(m|0)){break r}h=F[l+(F[h+(j+((j>>>0)%3|0?-1:2)<<2)>>2]<<2)>>2];if((h|0)>=(m|0)){break r}s:{if(!e){break s}j=F[(g+16|0)+L(i,12)>>2];l=L(e,h);q=L(e,q);p=L(e,p);h=0;o=0;if(G){while(1){F[j+(h<<2)>>2]=(F[(h+l<<2)+c>>2]+F[(h+q<<2)+c>>2]|0)-F[(h+p<<2)+c>>2];u=h|1;F[j+(u<<2)>>2]=(F[(l+u<<2)+c>>2]+F[(q+u<<2)+c>>2]|0)-F[(p+u<<2)+c>>2];h=h+2|0;o=o+2|0;if((C|0)!=(o|0)){continue}break}}if(!D){break s}F[j+(h<<2)>>2]=(F[(h+l<<2)+c>>2]+F[(h+q<<2)+c>>2]|0)-F[(h+p<<2)+c>>2]}j=4;i=i+1|0;if((i|0)==4){break q}}t:{if(k&1){h=d-2|0;j=d+1|0;d=-1;j=(j>>>0)%3|0?j:h;if((j|0)==-1|F[n+(j>>>3&536870908)>>2]>>>j&1){break t}j=F[F[F[t+64>>2]+12>>2]+(j<<2)>>2];if((j|0)==-1){break t}d=j+1|0;d=(d>>>0)%3|0?d:j-2|0;break t}u:{if((d>>>0)%3|0){h=d-1|0;break u}h=d+2|0;d=-1;if((h|0)==-1){break t}}d=-1;if(F[n+(h>>>3&536870908)>>2]>>>h&1){break t}j=F[F[F[t+64>>2]+12>>2]+(h<<2)>>2];if((j|0)==-1){break t}if((j>>>0)%3|0){d=j-1|0;break t}d=j+2|0}v:{if((d|0)==(f|0)){break v}if((d|0)==-1&k){if(!P|s&F[O>>2]){break v}d=F[F[F[t+64>>2]+12>>2]+(x<<2)>>2];if((d|0)==-1){break v}k=0;d=(d>>>0)%3|0?d-1|0:d+2|0}if((d|0)!=-1){continue}}break}j=i;if((j|0)<=0){break p}}if(e){ma(r,0,M)}d=j-1|0;q=(d<<2)+z|0;d=L(d,12)+a|0;u=d;x=F[d- -64>>2];k=0;d=F[g>>2];f=0;while(1){i=F[q>>2];F[q>>2]=i+1;if(i>>>0>=x>>>0){break j}w:{if(F[F[u+60>>2]+(i>>>3&536870908)>>2]>>>i&1){break w}f=f+1|0;if(!e){break w}n=F[(g+16|0)+L(k,12)>>2];i=0;h=0;p=0;if(!N){while(1){l=h<<2;o=l+d|0;F[o>>2]=F[l+n>>2]+F[o>>2];o=l|4;s=o+d|0;F[s>>2]=F[n+o>>2]+F[s>>2];o=l|8;s=o+d|0;F[s>>2]=F[n+o>>2]+F[s>>2];l=l|12;o=l+d|0;F[o>>2]=F[l+n>>2]+F[o>>2];h=h+4|0;p=p+4|0;if((K|0)!=(p|0)){continue}break}}if(!E){break w}while(1){l=h<<2;p=l+d|0;F[p>>2]=F[l+n>>2]+F[p>>2];h=h+1|0;i=i+1|0;if((E|0)!=(i|0)){continue}break}}k=k+1|0;if((k|0)!=(j|0)){continue}break}i=L(e,m);if(!f){break o}if(!e){break l}h=0;d=0;if(G){break n}break m}i=L(e,m)}if(F[a+8>>2]<=0){break k}k=(L(m-1|0,e)<<2)+c|0;j=F[y>>2];h=0;while(1){d=h<<2;f=F[d+k>>2];n=F[a+16>>2];x:{if((f|0)>(n|0)){F[d+j>>2]=n;break x}d=d+j|0;n=F[a+12>>2];if((n|0)>(f|0)){F[d>>2]=n;break x}F[d>>2]=f}h=h+1|0;f=F[a+8>>2];if((h|0)<(f|0)){continue}break}d=0;if((f|0)<=0){break k}f=i<<2;h=f+c|0;k=b+f|0;while(1){i=d<<2;f=i+h|0;i=F[i+k>>2]+F[j+i>>2]|0;F[f>>2]=i;y:{if((i|0)>F[a+16>>2]){i=i-F[a+20>>2]|0}else{if((i|0)>=F[a+12>>2]){break y}i=i+F[a+20>>2]|0}F[f>>2]=i}d=d+1|0;if((d|0)>2]){continue}break}break k}ta();v()}while(1){j=h<<2;k=j+r|0;F[k>>2]=F[k>>2]/(f|0);j=(j|4)+r|0;F[j>>2]=F[j>>2]/(f|0);h=h+2|0;d=d+2|0;if((C|0)!=(d|0)){continue}break}}if(!D){break l}d=(h<<2)+r|0;F[d>>2]=F[d>>2]/(f|0)}if(F[a+8>>2]<=0){break k}j=F[y>>2];h=0;while(1){d=h<<2;f=F[d+r>>2];k=F[a+16>>2];z:{if((f|0)>(k|0)){F[d+j>>2]=k;break z}d=d+j|0;k=F[a+12>>2];if((k|0)>(f|0)){F[d>>2]=k;break z}F[d>>2]=f}h=h+1|0;f=F[a+8>>2];if((h|0)<(f|0)){continue}break}d=0;if((f|0)<=0){break k}f=i<<2;h=f+c|0;k=b+f|0;while(1){i=d<<2;f=i+h|0;i=F[i+k>>2]+F[j+i>>2]|0;F[f>>2]=i;A:{if((i|0)>F[a+16>>2]){i=i-F[a+20>>2]|0}else{if((i|0)>=F[a+12>>2]){break A}i=i+F[a+20>>2]|0}F[f>>2]=i}d=d+1|0;if((d|0)>2]){continue}break}}m=m+1|0;A=(w|0)<=(m|0);if((m|0)!=(I|0)){continue}break}}a=F[g>>2];if(a){ja(a)}ja(z);a=F[g+52>>2];if(a){F[g+56>>2]=a;ja(a)}a=F[g+40>>2];if(a){F[g+44>>2]=a;ja(a)}a=F[g+28>>2];if(a){F[g+32>>2]=a;ja(a)}a=F[g+16>>2];if(a){F[g+20>>2]=a;ja(a)}Z=g- -64|0;return A|0}na();v()}function $h(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,G=0,H=0,I=0,J=0,K=0,M=0,N=0;h=Z+-64|0;Z=h;F[a+8>>2]=e;x=a+32|0;f=F[x>>2];d=F[a+36>>2]-f>>2;a:{b:{if(d>>>0>>0){qa(x,e-d|0);F[h+56>>2]=0;F[h+60>>2]=0;F[h+48>>2]=0;F[h+52>>2]=0;F[h+40>>2]=0;F[h+44>>2]=0;F[h+32>>2]=0;F[h+36>>2]=0;F[h+24>>2]=0;F[h+28>>2]=0;F[h+16>>2]=0;F[h+20>>2]=0;F[h>>2]=0;break b}if(d>>>0>e>>>0){F[a+36>>2]=f+(e<<2)}F[h+56>>2]=0;F[h+60>>2]=0;F[h+48>>2]=0;F[h+52>>2]=0;F[h+40>>2]=0;F[h+44>>2]=0;F[h+32>>2]=0;F[h+36>>2]=0;F[h+24>>2]=0;F[h+28>>2]=0;F[h+16>>2]=0;F[h+20>>2]=0;F[h>>2]=0;d=0;if(!e){break a}}Fa(h+16|0,e,h);i=F[h+28>>2];d=F[h+32>>2]}F[h>>2]=0;d=d-i>>2;c:{if(d>>>0>=e>>>0){if(d>>>0<=e>>>0){break c}F[h+32>>2]=(e<<2)+i;break c}Fa(h+16|12,e-d|0,h)}F[h>>2]=0;f=F[h+40>>2];d=F[h+44>>2]-f>>2;d:{if(d>>>0>=e>>>0){if(d>>>0<=e>>>0){break d}F[h+44>>2]=f+(e<<2);break d}Fa(h+40|0,e-d|0,h)}F[h>>2]=0;f=F[h+52>>2];d=F[h+56>>2]-f>>2;e:{if(d>>>0>=e>>>0){if(d>>>0<=e>>>0){break e}F[h+56>>2]=f+(e<<2);break e}Fa(h+52|0,e-d|0,h)}f:{if(F[a+8>>2]<=0){break f}g=F[h+16>>2];j=F[a+32>>2];i=0;while(1){d=i<<2;f=F[d+g>>2];m=F[a+16>>2];g:{if((f|0)>(m|0)){F[d+j>>2]=m;break g}d=d+j|0;m=F[a+12>>2];if((m|0)>(f|0)){F[d>>2]=m;break g}F[d>>2]=f}i=i+1|0;d=F[a+8>>2];if((i|0)<(d|0)){continue}break}if((d|0)<=0){break f}d=0;while(1){g=d<<2;f=g+c|0;g=F[b+g>>2]+F[g+j>>2]|0;F[f>>2]=g;h:{if((g|0)>F[a+16>>2]){g=g-F[a+20>>2]|0}else{if((g|0)>=F[a+12>>2]){break h}g=g+F[a+20>>2]|0}F[f>>2]=g}d=d+1|0;if((d|0)>2]){continue}break}}H=F[a+52>>2];A=F[a+48>>2];y=ka(16);d=y;F[d>>2]=0;F[d+4>>2]=0;F[d+8>>2]=0;F[d+12>>2]=0;F[h+8>>2]=0;F[h>>2]=0;F[h+4>>2]=0;i:{if(e){if(e>>>0>=1073741824){break i}d=e<<2;t=ka(d);F[h>>2]=t;F[h+8>>2]=d+t;ma(t,0,d)}z=1;d=F[a+56>>2];B=F[d>>2];d=F[d+4>>2]-B|0;j:{if((d|0)<8){break j}w=d>>2;I=(w|0)<=2?2:w;J=w>>>0<=1?1:w;C=e&-2;D=e&1;K=e&-4;E=e&3;G=e-1|0;M=e<<2;N=e>>>0<4;z=0;m=1;while(1){k:{l:{m:{n:{if((m|0)!=(J|0)){o:{p:{f=F[(m<<2)+B>>2];if((f|0)==-1){break p}n=F[A+12>>2];d=f+2|0;g=(f>>>0)%3|0;q=n+((g?f-1|0:d)<<2)|0;j=0;u=(g|0)!=0|(d|0)!=-1;k=1;d=f;q:{while(1){g=F[n+(d<<2)>>2];r:{if((g|0)==-1){break r}l=-1;p=F[H>>2];r=F[A>>2];i=p+(F[r+(g<<2)>>2]<<2)|0;o=g+1|0;o=(o>>>0)%3|0?o:g-2|0;if((o|0)!=-1){l=F[r+(o<<2)>>2]}o=F[i>>2];s:{t:{if((g>>>0)%3|0){i=g-1|0;break t}i=g+2|0;s=-1;if((i|0)==-1){break s}}s=F[r+(i<<2)>>2]}if((m|0)<=(o|0)){break r}i=F[p+(l<<2)>>2];if((i|0)>=(m|0)){break r}l=F[p+(s<<2)>>2];if((l|0)>=(m|0)){break r}g=F[(h+16|0)+L(j,12)>>2];u:{if(!e){break u}l=L(e,l);r=L(e,i);p=L(e,o);i=0;s=0;if(G){while(1){F[g+(i<<2)>>2]=(F[(i+l<<2)+c>>2]+F[(i+r<<2)+c>>2]|0)-F[(i+p<<2)+c>>2];o=i|1;F[g+(o<<2)>>2]=(F[(l+o<<2)+c>>2]+F[(o+r<<2)+c>>2]|0)-F[(o+p<<2)+c>>2];i=i+2|0;s=s+2|0;if((C|0)!=(s|0)){continue}break}}if(!D){break u}F[g+(i<<2)>>2]=(F[(i+l<<2)+c>>2]+F[(i+r<<2)+c>>2]|0)-F[(i+p<<2)+c>>2]}g=4;j=j+1|0;if((j|0)==4){break q}}v:{if(k&1){i=d+1|0;d=(i>>>0)%3|0?i:d-2|0;g=-1;if((d|0)==-1){break v}d=F[n+(d<<2)>>2];g=-1;if((d|0)==-1){break v}g=d+1|0;g=(g>>>0)%3|0?g:d-2|0;break v}w:{if((d>>>0)%3|0){i=d-1|0;break w}i=d+2|0;g=-1;if((i|0)==-1){break v}}d=F[n+(i<<2)>>2];g=-1;if((d|0)==-1){break v}g=d-1|0;if((d>>>0)%3|0){break v}g=d+2|0}d=g;x:{if((f|0)==(d|0)){break x}if((d|0)==-1&k){if(!u){break x}d=F[q>>2];if((d|0)==-1){break x}k=0;d=(d>>>0)%3|0?d-1|0:d+2|0}if((d|0)!=-1){continue}}break}g=j;if((g|0)<=0){break p}}if(e){ma(t,0,M)}d=g-1|0;r=(d<<2)+y|0;d=L(d,12)+a|0;o=d;s=F[d- -64>>2];k=0;d=F[h>>2];f=0;while(1){j=F[r>>2];F[r>>2]=j+1;if(j>>>0>=s>>>0){break j}y:{if(F[F[o+60>>2]+(j>>>3&536870908)>>2]>>>j&1){break y}f=f+1|0;if(!e){break y}j=F[(h+16|0)+L(k,12)>>2];l=0;i=0;p=0;if(!N){while(1){n=i<<2;q=n+d|0;F[q>>2]=F[j+n>>2]+F[q>>2];q=n|4;u=q+d|0;F[u>>2]=F[j+q>>2]+F[u>>2];q=n|8;u=q+d|0;F[u>>2]=F[j+q>>2]+F[u>>2];n=n|12;q=n+d|0;F[q>>2]=F[j+n>>2]+F[q>>2];i=i+4|0;p=p+4|0;if((K|0)!=(p|0)){continue}break}}if(!E){break y}while(1){n=i<<2;p=n+d|0;F[p>>2]=F[j+n>>2]+F[p>>2];i=i+1|0;l=l+1|0;if((E|0)!=(l|0)){continue}break}}k=k+1|0;if((k|0)!=(g|0)){continue}break}g=L(e,m);if(!f){break o}if(!e){break l}i=0;d=0;if(G){break n}break m}g=L(e,m)}if(F[a+8>>2]<=0){break k}k=(L(m-1|0,e)<<2)+c|0;j=F[x>>2];i=0;while(1){d=i<<2;f=F[d+k>>2];l=F[a+16>>2];z:{if((f|0)>(l|0)){F[d+j>>2]=l;break z}d=d+j|0;l=F[a+12>>2];if((l|0)>(f|0)){F[d>>2]=l;break z}F[d>>2]=f}i=i+1|0;f=F[a+8>>2];if((i|0)<(f|0)){continue}break}d=0;if((f|0)<=0){break k}f=g<<2;i=f+c|0;k=b+f|0;while(1){g=d<<2;f=g+i|0;g=F[g+k>>2]+F[g+j>>2]|0;F[f>>2]=g;A:{if((g|0)>F[a+16>>2]){g=g-F[a+20>>2]|0}else{if((g|0)>=F[a+12>>2]){break A}g=g+F[a+20>>2]|0}F[f>>2]=g}d=d+1|0;if((d|0)>2]){continue}break}break k}ta();v()}while(1){j=i<<2;k=j+t|0;F[k>>2]=F[k>>2]/(f|0);j=(j|4)+t|0;F[j>>2]=F[j>>2]/(f|0);i=i+2|0;d=d+2|0;if((C|0)!=(d|0)){continue}break}}if(!D){break l}d=(i<<2)+t|0;F[d>>2]=F[d>>2]/(f|0)}if(F[a+8>>2]<=0){break k}j=F[x>>2];i=0;while(1){d=i<<2;f=F[d+t>>2];k=F[a+16>>2];B:{if((f|0)>(k|0)){F[d+j>>2]=k;break B}d=d+j|0;k=F[a+12>>2];if((k|0)>(f|0)){F[d>>2]=k;break B}F[d>>2]=f}i=i+1|0;f=F[a+8>>2];if((i|0)<(f|0)){continue}break}d=0;if((f|0)<=0){break k}f=g<<2;i=f+c|0;k=b+f|0;while(1){g=d<<2;f=g+i|0;g=F[g+k>>2]+F[g+j>>2]|0;F[f>>2]=g;C:{if((g|0)>F[a+16>>2]){g=g-F[a+20>>2]|0}else{if((g|0)>=F[a+12>>2]){break C}g=g+F[a+20>>2]|0}F[f>>2]=g}d=d+1|0;if((d|0)>2]){continue}break}}m=m+1|0;z=(w|0)<=(m|0);if((m|0)!=(I|0)){continue}break}}a=F[h>>2];if(a){ja(a)}ja(y);a=F[h+52>>2];if(a){F[h+56>>2]=a;ja(a)}a=F[h+40>>2];if(a){F[h+44>>2]=a;ja(a)}a=F[h+28>>2];if(a){F[h+32>>2]=a;ja(a)}a=F[h+16>>2];if(a){F[h+20>>2]=a;ja(a)}Z=h- -64|0;return z|0}na();v()}function Yh(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,E=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,$=0,aa=0;a:{b:{if((e|0)!=2){break b}F[a+8>>2]=2;F[a- -64>>2]=f;M=a+32|0;e=F[M>>2];d=F[a+36>>2]-e|0;c:{if(d>>>0<=7){qa(M,2-(d>>>2|0)|0);break c}if((d|0)==8){break c}F[a+36>>2]=e+8}i=1;d=F[a+56>>2];d=F[d+4>>2]-F[d>>2]|0;if((d|0)<=0){break b}o=a+60|0;d=d>>>2|0;X=d>>>0<=1?1:d;Y=a+68|0;d=0;while(1){f=F[a+56>>2];e=F[f>>2];if(F[f+4>>2]-e>>2>>>0<=d>>>0){break a}k=Z-80|0;Z=k;f=-1;d:{e:{e=F[e+(d<<2)>>2];if((e|0)==-1){break e}i=F[o+32>>2];g=e+1|0;g=(g>>>0)%3|0?g:e-2|0;if((g|0)!=-1){f=F[F[i>>2]+(g<<2)>>2]}p=-1;e=e+((e>>>0)%3|0?-1:2)|0;if((e|0)!=-1){p=F[F[i>>2]+(e<<2)>>2]}i=F[o+36>>2];e=F[i>>2];i=F[i+4>>2]-e>>2;if(i>>>0<=f>>>0|i>>>0<=p>>>0){break e}f:{g:{h:{i:{j:{k:{j=F[e+(p<<2)>>2];f=F[e+(f<<2)>>2];if((j|0)>=(d|0)|(f|0)>=(d|0)){break k}i=(j<<3)+c|0;w=F[i+4>>2];g=(f<<3)+c|0;e=F[g+4>>2];l=F[i>>2];i=F[g>>2];if(!((l|0)!=(i|0)|(e|0)!=(w|0))){F[o+8>>2]=i;F[o+12>>2]=e;break j}p=F[F[o+4>>2]+(d<<2)>>2];F[k+72>>2]=0;F[k+76>>2]=0;g=k- -64|0;F[g>>2]=0;F[g+4>>2]=0;F[k+56>>2]=0;F[k+60>>2]=0;g=F[o>>2];if(!G[g+84|0]){p=F[F[g+68>>2]+(p<<2)>>2]}Ga(g,p,D[g+24|0],k+56|0);p=F[F[o+4>>2]+(f<<2)>>2];F[k+48>>2]=0;F[k+52>>2]=0;F[k+40>>2]=0;F[k+44>>2]=0;F[k+32>>2]=0;F[k+36>>2]=0;g=F[o>>2];if(!G[g+84|0]){p=F[F[g+68>>2]+(p<<2)>>2]}Ga(g,p,D[g+24|0],k+32|0);p=F[F[o+4>>2]+(j<<2)>>2];F[k+24>>2]=0;F[k+28>>2]=0;F[k+16>>2]=0;F[k+20>>2]=0;F[k+8>>2]=0;F[k+12>>2]=0;g=F[o>>2];if(!G[g+84|0]){p=F[F[g+68>>2]+(p<<2)>>2]}Ga(g,p,D[g+24|0],k+8|0);g=F[k+16>>2];n=F[k+40>>2];x=g-n|0;N=F[k+44>>2];g=F[k+20>>2]-(N+(g>>>0>>0)|0)|0;H=g;j=ki(x,g,x,g);q=_;g=F[k+8>>2];z=F[k+32>>2];A=g-z|0;O=F[k+36>>2];g=F[k+12>>2]-(O+(g>>>0>>0)|0)|0;I=g;h=j;j=ki(A,g,A,g);g=h+j|0;h=_+q|0;h=g>>>0>>0?h+1|0:h;j=F[k+24>>2];B=F[k+48>>2];C=j-B|0;P=F[k+52>>2];j=F[k+28>>2]-(P+(j>>>0>>0)|0)|0;J=j;m=g;g=ki(C,j,C,j);r=m+g|0;h=_+h|0;s=g>>>0>r>>>0?h+1|0:h;if(!(s|r)){break k}p=0;E=mi(-1,2147483647,r,s);f=i>>31;R=f;h=f>>31;Q=i;g=h;q=i^g;i=q-g|0;f=(f^g)-((g>>>0>q>>>0)+g|0)|0;g=f;f=e>>31;S=f;K=e;e=f>>31;q=K^e;m=q-e|0;h=f>>31;e=(h^f)-((e>>>0>q>>>0)+h|0)|0;f=(g|0)==(e|0)&i>>>0>m>>>0|e>>>0>>0;i=f?i:m;j=_;e=f?g:e;if((j|0)==(e|0)&i>>>0>E>>>0|e>>>0>j>>>0){break f}i=F[k+64>>2];T=F[k+68>>2];e=ki(i-n|0,T-((i>>>0>>0)+N|0)|0,x,H);f=_;g=F[k+56>>2];U=F[k+60>>2];j=ki(g-z|0,U-((g>>>0>>0)+O|0)|0,A,I);e=j+e|0;h=_+f|0;h=e>>>0>>0?h+1|0:h;f=e;m=F[k+72>>2];V=F[k+76>>2];e=ki(m-B|0,V-((m>>>0>>0)+P|0)|0,C,J);j=f+e|0;f=_+h|0;q=e>>>0>j>>>0?f+1|0:f;e=l;E=e-Q|0;e=(e>>31)-((e>>>0>>0)+R|0)|0;W=e;l=e>>31;y=l^E;f=y-l|0;h=e>>31;e=(h^e)-((l>>>0>y>>>0)+h|0)|0;h=e;y=w-K|0;e=(w>>31)-((w>>>0>>0)+S|0)|0;w=e;l=f;t=e>>31;u=t^y;L=u-t|0;f=e>>31;e=(f^e)-((t>>>0>u>>>0)+f|0)|0;f=(h|0)==(e|0)&l>>>0>L>>>0|e>>>0>>0;f=mi(-1,2147483647,f?l:L,f?h:e)>>>0>>0;e=_;if(f&(e|0)<=(q|0)|(e|0)<(q|0)){break f}e=I>>31;f=e;l=e^A;e=l-e|0;f=(f^I)-((f>>>0>l>>>0)+f|0)|0;h=H>>31;t=h^x;u=t-h|0;l=(h^H)-((h>>>0>t>>>0)+h|0)|0;h=(f|0)==(l|0)&e>>>0>u>>>0|f>>>0>l>>>0;e=h?e:u;f=h?f:l;h=J>>31;L=e;t=h^C;u=t-h|0;l=(h^J)-((h>>>0>t>>>0)+h|0)|0;e=(f|0)==(l|0)&e>>>0>u>>>0|f>>>0>l>>>0;f=mi(-1,2147483647,e?L:u,e?f:l)>>>0>>0;e=_;if(f&(e|0)<=(q|0)|(e|0)<(q|0)){break f}l=1;e=0;f=n;n=li(ki(j,q,x,H),_,r,s);f=f+n|0;h=_+N|0;h=f>>>0>>0?h+1|0:h;n=i-f|0;f=T-((f>>>0>i>>>0)+h|0)|0;n=ki(n,f,n,f);x=_;f=g;h=li(ki(j,q,A,I),_,r,s);i=h+z|0;g=_+O|0;g=h>>>0>i>>>0?g+1|0:g;h=f-i|0;f=U-((f>>>0>>0)+g|0)|0;g=ki(h,f,h,f);i=g+n|0;f=_+x|0;f=g>>>0>i>>>0?f+1|0:f;n=i;g=li(ki(j,q,C,J),_,r,s);i=g+B|0;h=_+P|0;h=g>>>0>i>>>0?h+1|0:h;g=m-i|0;i=V-((i>>>0>m>>>0)+h|0)|0;m=ki(g,i,g,i);i=m+n|0;g=_+f|0;f=ki(i,i>>>0>>0?g+1|0:g,r,s);i=_;m=i;if(!i&f>>>0<=1){break i}h=f;while(1){g=e<<1|l>>>31;l=l<<1;e=g;n=!i&h>>>0>7|(i|0)!=0;h=(i&3)<<30|h>>>2;i=i>>>2|0;if(n){continue}break}break h}if((d|0)>(f|0)){e=f<<1}else{if((d|0)<=0){F[o+8>>2]=0;F[o+12>>2]=0;break j}e=(d<<1)-2|0}e=(e<<2)+c|0;F[o+8>>2]=F[e>>2];F[o+12>>2]=F[e+4>>2]}p=1;break f}e=m;l=f;if(f-1|0){break g}}while(1){i=mi(f,m,l,e);h=e+_|0;e=i+l|0;h=e>>>0>>0?h+1|0:h;l=(h&1)<<31|e>>>1;e=h>>>1|0;i=ki(l,e,l,e);g=_;if((m|0)==(g|0)&f>>>0>>0|g>>>0>m>>>0){continue}break}}f=F[o+20>>2];if(!f){break f}g=f-1|0;h=F[F[o+16>>2]+(g>>>3&536870908)>>2];F[o+20>>2]=g;p=1;f=ki(j,q,y,w);i=_;n=ki(r,s,K,S);m=n+f|0;f=_+i|0;f=m>>>0>>0?f+1|0:f;i=ki(l,e,E,W);g=h>>>g&1;h=g?0-i|0:i;m=h+m|0;n=f;f=_;i=n+(g?0-(f+((i|0)!=0)|0)|0:f)|0;$=o,aa=li(m,h>>>0>m>>>0?i+1|0:i,r,s),F[$+12>>2]=aa;f=ki(j,q,E,W);i=_;j=ki(r,s,Q,R);f=j+f|0;h=_+i|0;e=ki(l,e,y,w);i=0-e|0;l=_;h=(f>>>0>>0?h+1|0:h)+(g?l:0-(((e|0)!=0)+l|0)|0)|0;i=g?e:i;f=i+f|0;$=o,aa=li(f,f>>>0>>0?h+1|0:h,r,s),F[$+8>>2]=aa}Z=k+80|0;e=p;break d}ta();v()}i=e;if(!e){return 0}l:{if(F[a+8>>2]<=0){break l}l=F[M>>2];e=0;while(1){f=e<<2;g=F[f+Y>>2];j=F[a+16>>2];m:{if((g|0)>(j|0)){F[f+l>>2]=j;break m}f=f+l|0;j=F[a+12>>2];if((j|0)>(g|0)){F[f>>2]=j;break m}F[f>>2]=g}e=e+1|0;g=F[a+8>>2];if((e|0)<(g|0)){continue}break}f=0;if((g|0)<=0){break l}e=d<<3;j=e+c|0;q=b+e|0;while(1){g=f<<2;e=g+j|0;g=F[g+q>>2]+F[g+l>>2]|0;F[e>>2]=g;n:{if((g|0)>F[a+16>>2]){g=g-F[a+20>>2]|0}else{if((g|0)>=F[a+12>>2]){break n}g=g+F[a+20>>2]|0}F[e>>2]=g}f=f+1|0;if((f|0)>2]){continue}break}}d=d+1|0;if((X|0)!=(d|0)){continue}break}}return i|0}ta();v()}function hi(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,E=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,$=0,aa=0;a:{b:{if((e|0)!=2){break b}F[a+8>>2]=2;F[a- -64>>2]=f;M=a+32|0;e=F[M>>2];d=F[a+36>>2]-e|0;c:{if(d>>>0<=7){qa(M,2-(d>>>2|0)|0);break c}if((d|0)==8){break c}F[a+36>>2]=e+8}p=1;d=F[a+56>>2];d=F[d+4>>2]-F[d>>2]|0;if((d|0)<=0){break b}o=a+60|0;d=d>>>2|0;X=d>>>0<=1?1:d;Y=a+68|0;d=0;while(1){e=F[a+56>>2];h=F[e>>2];if(F[e+4>>2]-h>>2>>>0<=d>>>0){break a}k=Z-80|0;Z=k;f=-1;h=F[h+(d<<2)>>2];e=-1;d:{if((h|0)==-1){break d}e=h+1|0;f=(e>>>0)%3|0?e:h-2|0;e=h-1|0;if((h>>>0)%3|0){break d}e=h+2|0}g=F[o+36>>2];h=F[g>>2];e:{f:{g:{h:{i:{g=F[g+4>>2]-h>>2;i=f<<2;f=F[F[o+32>>2]+28>>2];j=F[i+f>>2];if(g>>>0<=j>>>0){break i}e=F[f+(e<<2)>>2];if(e>>>0>=g>>>0){break i}j:{k:{l=F[h+(e<<2)>>2];f=F[h+(j<<2)>>2];if((l|0)>=(d|0)|(f|0)>=(d|0)){break k}h=(l<<3)+c|0;w=F[h+4>>2];g=(f<<3)+c|0;e=F[g+4>>2];j=F[h>>2];h=F[g>>2];if(!((j|0)!=(h|0)|(e|0)!=(w|0))){F[o+8>>2]=h;F[o+12>>2]=e;break j}p=F[F[o+4>>2]+(d<<2)>>2];F[k+72>>2]=0;F[k+76>>2]=0;g=k- -64|0;F[g>>2]=0;F[g+4>>2]=0;F[k+56>>2]=0;F[k+60>>2]=0;g=F[o>>2];if(!G[g+84|0]){p=F[F[g+68>>2]+(p<<2)>>2]}Ga(g,p,D[g+24|0],k+56|0);p=F[F[o+4>>2]+(f<<2)>>2];F[k+48>>2]=0;F[k+52>>2]=0;F[k+40>>2]=0;F[k+44>>2]=0;F[k+32>>2]=0;F[k+36>>2]=0;g=F[o>>2];if(!G[g+84|0]){p=F[F[g+68>>2]+(p<<2)>>2]}Ga(g,p,D[g+24|0],k+32|0);p=F[F[o+4>>2]+(l<<2)>>2];F[k+24>>2]=0;F[k+28>>2]=0;F[k+16>>2]=0;F[k+20>>2]=0;F[k+8>>2]=0;F[k+12>>2]=0;g=F[o>>2];if(!G[g+84|0]){p=F[F[g+68>>2]+(p<<2)>>2]}Ga(g,p,D[g+24|0],k+8|0);g=F[k+16>>2];n=F[k+40>>2];x=g-n|0;N=F[k+44>>2];g=F[k+20>>2]-(N+(g>>>0>>0)|0)|0;H=g;l=ki(x,g,x,g);q=_;g=F[k+8>>2];z=F[k+32>>2];A=g-z|0;O=F[k+36>>2];g=F[k+12>>2]-(O+(g>>>0>>0)|0)|0;I=g;i=l;l=ki(A,g,A,g);g=i+l|0;i=_+q|0;i=g>>>0>>0?i+1|0:i;l=F[k+24>>2];B=F[k+48>>2];C=l-B|0;P=F[k+52>>2];l=F[k+28>>2]-(P+(l>>>0>>0)|0)|0;J=l;m=g;g=ki(C,l,C,l);r=m+g|0;i=_+i|0;s=g>>>0>r>>>0?i+1|0:i;if(!(s|r)){break k}p=0;E=mi(-1,2147483647,r,s);f=h>>31;R=f;i=f>>31;Q=h;g=i;q=h^g;h=q-g|0;f=(f^g)-((g>>>0>q>>>0)+g|0)|0;g=f;f=e>>31;S=f;K=e;e=f>>31;q=K^e;m=q-e|0;i=f>>31;e=(i^f)-((e>>>0>q>>>0)+i|0)|0;f=(g|0)==(e|0)&h>>>0>m>>>0|e>>>0>>0;h=f?h:m;l=_;e=f?g:e;if((l|0)==(e|0)&h>>>0>E>>>0|e>>>0>l>>>0){break e}h=F[k+64>>2];T=F[k+68>>2];e=ki(h-n|0,T-((h>>>0>>0)+N|0)|0,x,H);f=_;g=F[k+56>>2];U=F[k+60>>2];l=ki(g-z|0,U-((g>>>0>>0)+O|0)|0,A,I);e=l+e|0;i=_+f|0;i=e>>>0>>0?i+1|0:i;f=e;m=F[k+72>>2];V=F[k+76>>2];e=ki(m-B|0,V-((m>>>0>>0)+P|0)|0,C,J);l=f+e|0;f=_+i|0;q=e>>>0>l>>>0?f+1|0:f;e=j;E=e-Q|0;e=(e>>31)-((e>>>0>>0)+R|0)|0;W=e;j=e>>31;y=j^E;f=y-j|0;i=e>>31;e=(i^e)-((j>>>0>y>>>0)+i|0)|0;i=e;y=w-K|0;e=(w>>31)-((w>>>0>>0)+S|0)|0;w=e;j=f;t=e>>31;u=t^y;L=u-t|0;f=e>>31;e=(f^e)-((t>>>0>u>>>0)+f|0)|0;f=(i|0)==(e|0)&j>>>0>L>>>0|e>>>0>>0;f=mi(-1,2147483647,f?j:L,f?i:e)>>>0>>0;e=_;if(f&(e|0)<=(q|0)|(e|0)<(q|0)){break e}e=I>>31;f=e;j=e^A;e=j-e|0;f=(f^I)-((f>>>0>j>>>0)+f|0)|0;i=H>>31;t=i^x;u=t-i|0;j=(i^H)-((i>>>0>t>>>0)+i|0)|0;i=(f|0)==(j|0)&e>>>0>u>>>0|f>>>0>j>>>0;e=i?e:u;f=i?f:j;i=J>>31;L=e;t=i^C;u=t-i|0;j=(i^J)-((i>>>0>t>>>0)+i|0)|0;e=(f|0)==(j|0)&e>>>0>u>>>0|f>>>0>j>>>0;f=mi(-1,2147483647,e?L:u,e?f:j)>>>0>>0;e=_;if(f&(e|0)<=(q|0)|(e|0)<(q|0)){break e}j=1;e=0;f=n;n=li(ki(l,q,x,H),_,r,s);f=f+n|0;i=_+N|0;i=f>>>0>>0?i+1|0:i;n=h-f|0;f=T-((f>>>0>h>>>0)+i|0)|0;n=ki(n,f,n,f);x=_;f=g;i=li(ki(l,q,A,I),_,r,s);h=i+z|0;g=_+O|0;g=h>>>0>>0?g+1|0:g;i=f-h|0;f=U-((f>>>0>>0)+g|0)|0;g=ki(i,f,i,f);h=g+n|0;f=_+x|0;f=h>>>0>>0?f+1|0:f;n=h;g=li(ki(l,q,C,J),_,r,s);h=g+B|0;i=_+P|0;i=h>>>0>>0?i+1|0:i;g=m-h|0;h=V-((h>>>0>m>>>0)+i|0)|0;m=ki(g,h,g,h);h=m+n|0;g=_+f|0;f=ki(h,h>>>0>>0?g+1|0:g,r,s);h=_;m=h;if(!h&f>>>0<=1){break h}i=f;while(1){g=e<<1|j>>>31;j=j<<1;e=g;n=!h&i>>>0>7|(h|0)!=0;i=(h&3)<<30|i>>>2;h=h>>>2|0;if(n){continue}break}break g}if((d|0)>(f|0)){e=f<<1}else{if((d|0)<=0){F[o+8>>2]=0;F[o+12>>2]=0;break j}e=(d<<1)-2|0}e=(e<<2)+c|0;F[o+8>>2]=F[e>>2];F[o+12>>2]=F[e+4>>2]}p=1;break e}ta();v()}e=m;j=f;if(f-1|0){break f}}while(1){h=mi(f,m,j,e);i=e+_|0;e=h+j|0;i=e>>>0>>0?i+1|0:i;j=(i&1)<<31|e>>>1;e=i>>>1|0;h=ki(j,e,j,e);g=_;if((m|0)==(g|0)&f>>>0>>0|g>>>0>m>>>0){continue}break}}f=F[o+20>>2];if(!f){break e}g=f-1|0;i=F[F[o+16>>2]+(g>>>3&536870908)>>2];F[o+20>>2]=g;p=1;f=ki(l,q,y,w);h=_;n=ki(r,s,K,S);m=n+f|0;f=_+h|0;f=m>>>0>>0?f+1|0:f;h=ki(j,e,E,W);g=i>>>g&1;i=g?0-h|0:h;m=i+m|0;n=f;f=_;h=n+(g?0-(f+((h|0)!=0)|0)|0:f)|0;$=o,aa=li(m,i>>>0>m>>>0?h+1|0:h,r,s),F[$+12>>2]=aa;f=ki(l,q,E,W);h=_;l=ki(r,s,Q,R);f=l+f|0;i=_+h|0;e=ki(j,e,y,w);h=0-e|0;j=_;i=(f>>>0>>0?i+1|0:i)+(g?j:0-(((e|0)!=0)+j|0)|0)|0;h=g?e:h;f=h+f|0;$=o,aa=li(f,f>>>0>>0?i+1|0:i,r,s),F[$+8>>2]=aa}Z=k+80|0;if(!p){return 0}l:{if(F[a+8>>2]<=0){break l}g=F[M>>2];e=0;while(1){f=e<<2;h=F[f+Y>>2];j=F[a+16>>2];m:{if((h|0)>(j|0)){F[f+g>>2]=j;break m}f=f+g|0;j=F[a+12>>2];if((j|0)>(h|0)){F[f>>2]=j;break m}F[f>>2]=h}e=e+1|0;h=F[a+8>>2];if((e|0)<(h|0)){continue}break}f=0;if((h|0)<=0){break l}e=d<<3;j=e+c|0;l=b+e|0;while(1){h=f<<2;e=h+j|0;h=F[h+l>>2]+F[h+g>>2]|0;F[e>>2]=h;n:{if((h|0)>F[a+16>>2]){i=h-F[a+20>>2]|0}else{if((h|0)>=F[a+12>>2]){break n}i=h+F[a+20>>2]|0}F[e>>2]=i}f=f+1|0;if((f|0)>2]){continue}break}}d=d+1|0;if((X|0)!=(d|0)){continue}break}}return p|0}ta();v()}function Gd(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;n=Z-96|0;Z=n;m=F[a+4>>2];d=F[m+32>>2];j=F[d+8>>2];i=F[d+12>>2];e=i;c=F[d+20>>2];f=F[d+16>>2];a:{if((e|0)<=(c|0)&f>>>0>=j>>>0|(c|0)>(e|0)){break a}o=F[d>>2];h=G[o+f|0];g=f+1|0;e=g?c:c+1|0;F[d+16>>2]=g;F[d+20>>2]=e;if((e|0)>=(i|0)&g>>>0>=j>>>0|(e|0)>(i|0)){break a}p=G[g+o|0];g=f+2|0;e=g>>>0<2?c+1|0:c;F[d+16>>2]=g;F[d+20>>2]=e;l=h<<24>>24;b:{if((l|0)>=0){k=F[a+216>>2];if(h>>>0>=(F[a+220>>2]-k|0)/144>>>0){break a}k=k+L(h,144)|0;if(F[k>>2]<0){break b}break a}if(F[a+212>>2]>=0){break a}k=a+212|0}F[k>>2]=b;c:{d:{e:{f:{g:{h:{k=H[m+36>>1];i:{if(((k<<8|k>>>8)&65535)>>>0>=258){if((e|0)>=(i|0)&g>>>0>=j>>>0|(e|0)>(i|0)){break a}e=G[g+o|0];f=f+3|0;c=f>>>0<3?c+1|0:c;F[d+16>>2]=f;F[d+20>>2]=c;if(e>>>0>1){break a}d=e>>>0<2?e:0;if(!p){break i}if(!d){break h}break a}if(p){break g}d=0}if((l|0)<0){e=a+184|0}else{c=F[a+216>>2]+L(h,144)|0;D[c+100|0]=0;e=c+104|0}if((d|0)!=1){break e}c=Z-112|0;Z=c;g=F[F[a+4>>2]+44>>2];d=ka(120);F[d>>2]=8924;F[d+4>>2]=0;F[d+116>>2]=0;F[d+112>>2]=e;F[d+108>>2]=g;F[d+12>>2]=0;F[d+16>>2]=0;F[d+20>>2]=0;F[d+24>>2]=0;F[d+28>>2]=0;F[d+32>>2]=0;F[d+36>>2]=0;F[d+40>>2]=0;F[d+44>>2]=0;F[d+48>>2]=0;F[d+52>>2]=0;F[d+56>>2]=0;F[d+60>>2]=0;F[d+8>>2]=9136;f=d- -64|0;F[f>>2]=0;F[f+4>>2]=0;F[d+72>>2]=0;F[d+76>>2]=0;F[d+80>>2]=0;F[d+84>>2]=0;F[d+88>>2]=0;F[d+104>>2]=0;F[d+96>>2]=0;F[d+100>>2]=0;f=F[a+8>>2];F[c+48>>2]=0;F[c+52>>2]=0;F[c+40>>2]=0;F[c+44>>2]=0;j=c+32|0;F[j>>2]=0;F[j+4>>2]=0;F[c+24>>2]=0;F[c+28>>2]=0;h=c- -64|0;F[h>>2]=0;F[h+4>>2]=0;F[c+72>>2]=0;F[c+76>>2]=0;F[c+80>>2]=0;F[c+84>>2]=0;F[c+88>>2]=0;F[c+104>>2]=0;F[c+16>>2]=0;F[c+20>>2]=0;F[c+56>>2]=0;F[c+60>>2]=0;F[c+8>>2]=9136;F[c+96>>2]=0;F[c+100>>2]=0;F[c+12>>2]=f;h=F[f>>2];i=F[f+4>>2];D[c+111|0]=0;k=j;j=c+111|0;Ea(k,(i-h>>2>>>0)/3|0,j);h=F[c+12>>2];i=F[h+28>>2];h=F[h+24>>2];D[c+111|0]=0;Ea(c+44|0,i-h>>2,j);F[c+28>>2]=d;F[c+24>>2]=g;F[c+20>>2]=e;F[c+16>>2]=f;f=d+8|0;e=c+8|0;lc(f,e);j:{if((e|0)==(f|0)){F[d+92>>2]=F[e+84>>2];break j}gb(d+56|0,F[e+48>>2],F[e+52>>2]);gb(d+68|0,F[e+60>>2],F[e- -64>>2]);gb(d+80|0,F[e+72>>2],F[e+76>>2]);F[d+92>>2]=F[e+84>>2];k:{h=F[e+92>>2];j=F[e+88>>2];i=h-j|0;e=i>>2;f=F[d+104>>2];g=F[d+96>>2];if(e>>>0<=f-g>>2>>>0){i=F[d+100>>2]-g|0;f=i+j|0;m=i>>2;i=e>>>0>m>>>0?f:h;l=i-j|0;if((i|0)!=(j|0)){pa(g,j,l)}if(e>>>0>m>>>0){e=F[d+100>>2];if((h|0)!=(i|0)){while(1){F[e>>2]=F[f>>2];e=e+4|0;f=f+4|0;if((h|0)!=(f|0)){continue}break}}F[d+100>>2]=e;break k}F[d+100>>2]=g+l;break k}if(g){F[d+100>>2]=g;ja(g);F[d+104>>2]=0;F[d+96>>2]=0;F[d+100>>2]=0;f=0}l:{if((i|0)<0){break l}g=f>>>1|0;e=f>>>0>=2147483644?1073741823:e>>>0>>0?g:e;if(e>>>0>=1073741824){break l}f=e<<2;e=ka(f);F[d+96>>2]=e;F[d+104>>2]=e+f;if((h|0)!=(j|0)){f=e;e=(i-4&-4)+4|0;e=la(f,j,e)+e|0}F[d+100>>2]=e;break k}na();v()}}F[c+8>>2]=9136;e=F[c+96>>2];if(e){F[c+100>>2]=e;ja(e)}e=F[c+80>>2];if(e){F[c+84>>2]=e;ja(e)}e=F[c+68>>2];if(e){F[c+72>>2]=e;ja(e)}e=F[c+56>>2];if(e){F[c+60>>2]=e;ja(e)}F[c+8>>2]=9372;e=F[c+44>>2];if(e){ja(e)}e=F[c+32>>2];if(e){ja(e)}Z=c+112|0;break d}if((l|0)>=0){break f}break a}if((l|0)<0){break a}}e=F[a+216>>2];c=F[m+44>>2];d=ka(80);F[d>>2]=9684;F[d+4>>2]=0;F[d+76>>2]=0;F[d+68>>2]=c;F[d+8>>2]=8624;F[d+12>>2]=0;F[d+16>>2]=0;F[d+20>>2]=0;F[d+24>>2]=0;F[d+28>>2]=0;F[d+32>>2]=0;F[d+36>>2]=0;F[d+40>>2]=0;F[d+44>>2]=0;F[d+48>>2]=0;F[d+52>>2]=0;e=e+L(h,144)|0;f=e+104|0;F[d+72>>2]=f;F[d- -64>>2]=0;F[d+56>>2]=0;F[d+60>>2]=0;F[n+24>>2]=c;c=n;F[c+68>>2]=0;F[c+72>>2]=0;F[c+60>>2]=0;F[c+64>>2]=0;F[c+52>>2]=0;F[c+56>>2]=0;F[c+44>>2]=0;F[c+48>>2]=0;F[c+84>>2]=0;F[c+88>>2]=0;F[c+76>>2]=0;F[c+80>>2]=0;F[c+28>>2]=d;g=F[c+28>>2];F[c+8>>2]=F[c+24>>2];F[c+12>>2]=g;F[c+20>>2]=f;f=e+4|0;F[c+16>>2]=f;F[c+36>>2]=0;F[c+40>>2]=0;F[c+32>>2]=8624;e=F[c+20>>2];F[c>>2]=F[c+16>>2];F[c+4>>2]=e;e=c+32|0;Fd(e,f,c);c=d+8|0;lc(c,e);if((c|0)!=(e|0)){gb(d+56|0,F[e+48>>2],F[e+52>>2])}Ed(e);break c}c=Z+-64|0;Z=c;g=F[F[a+4>>2]+44>>2];d=ka(80);F[d>>2]=9392;F[d+4>>2]=0;F[d+76>>2]=0;F[d+72>>2]=e;F[d+68>>2]=g;F[d+8>>2]=9556;F[d+12>>2]=0;F[d+16>>2]=0;F[d+20>>2]=0;F[d+24>>2]=0;F[d+28>>2]=0;F[d+32>>2]=0;F[d+36>>2]=0;F[d+40>>2]=0;F[d+44>>2]=0;F[d+48>>2]=0;F[d+52>>2]=0;F[d- -64>>2]=0;j=d+56|0;f=j;F[f>>2]=0;F[f+4>>2]=0;f=F[a+8>>2];F[c+40>>2]=0;F[c+44>>2]=0;F[c+32>>2]=0;F[c+36>>2]=0;h=c+24|0;F[h>>2]=0;F[h+4>>2]=0;F[c+16>>2]=0;F[c+20>>2]=0;F[c+56>>2]=0;F[c+8>>2]=0;F[c+12>>2]=0;F[c+48>>2]=0;F[c+52>>2]=0;F[c>>2]=9556;F[c+4>>2]=f;i=F[f>>2];l=F[f+4>>2];D[c+63|0]=0;k=h;h=c+63|0;Ea(k,(l-i>>2>>>0)/3|0,h);i=F[c+4>>2];l=F[i+28>>2];i=F[i+24>>2];D[c+63|0]=0;Ea(c+36|0,l-i>>2,h);F[c+20>>2]=d;F[c+16>>2]=g;F[c+12>>2]=e;F[c+8>>2]=f;lc(d+8|0,c);gb(j,F[c+48>>2],F[c+52>>2]);F[c>>2]=9556;e=F[c+48>>2];if(e){F[c+52>>2]=e;ja(e)}F[c>>2]=9372;e=F[c+36>>2];if(e){ja(e)}e=F[c+24>>2];if(e){ja(e)}Z=c- -64|0}if(!d){break a}}d=yc(ka(64),d);c=F[a+4>>2];a=d;d=b;m:{n:{if((d|0)>=0){g=c+8|0;b=F[c+12>>2];j=F[c+8>>2];e=b-j>>2;o:{if((e|0)>(d|0)){break o}f=d+1|0;if(d>>>0>=e>>>0){Pb(g,f-e|0);break o}if(e>>>0<=f>>>0){break o}f=j+(f<<2)|0;if((f|0)!=(b|0)){while(1){b=b-4|0;e=F[b>>2];F[b>>2]=0;if(e){$[F[F[e>>2]+4>>2]](e)}if((b|0)!=(f|0)){continue}break}}F[c+12>>2]=f}c=F[g>>2]+(d<<2)|0;b=F[c>>2];F[c>>2]=a;if(b){break n}break m}b=a;if(!a){break m}}$[F[F[b>>2]+4>>2]](b)}q=(d^-1)>>>31|0}Z=n+96|0;return q|0}function Ab(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=M(0),n=M(0),o=0;a:{b:{if(!d){break b}c:{switch(F[a+28>>2]-1|0){case 0:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[a>>2];h=F[e>>2];k=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}E[(g<<1)+d>>1]=D[b|0];b=b+1|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 1:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[a>>2];h=F[e>>2];k=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}E[(g<<1)+d>>1]=G[b|0];b=b+1|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 2:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[a>>2];h=F[e>>2];k=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}E[(g<<1)+d>>1]=H[b>>1];b=b+2|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 3:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[a>>2];h=F[e>>2];k=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){return 0}e=E[b>>1];if((e|0)<0){break b}E[(g<<1)+d>>1]=e;b=b+2|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 4:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[a>>2];h=F[e>>2];k=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}e=F[b>>2];if(e+32768>>>0>65535){break b}E[(g<<1)+d>>1]=e;b=b+4|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 5:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[a>>2];h=F[e>>2];k=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}e=F[b>>2];if(e>>>0>32767){break b}E[(g<<1)+d>>1]=e;b=b+4|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 6:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[a>>2];h=F[e>>2];k=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;k=F[e+4>>2];while(1){if(b>>>0>=k>>>0){break b}h=F[b+4>>2];e=F[b>>2];i=e+32768|0;h=i>>>0<32768?h+1|0:h;if(!h&i>>>0>65535|h){break b}E[(g<<1)+d>>1]=e;b=b+8|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 7:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[a>>2];h=F[e>>2];k=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}k=F[b+4>>2];e=F[b>>2];if(!k&e>>>0>32767|k){break b}E[(g<<1)+d>>1]=e;b=b+8|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 8:d:{e:{e=G[a+24|0];c=c&255;if(!(c>>>0>e>>>0?e:c)){break e}e=F[a>>2];j=F[e>>2];g=j;f=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+f|0;g=b+g|0;f=F[e+4>>2];e=f-j|0;if(!G[a+32|0]){j=0;if((b|0)>=(e|0)){break d}b=0;while(1){m=J[g>>2];if(m>=M(32767)|m>1]=i;b=b+1|0;e=G[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break e}g=g+4|0;if(f>>>0>g>>>0){continue}break}break d}j=0;if((b|0)>=(e|0)){break d}b=0;while(1){m=J[g>>2];if(m>=M(32767)|mM(1)){break d}e=(b<<1)+d|0;l=R(+m*32767+.5);f:{if(N(l)<2147483648){i=~~l;break f}i=-2147483648}E[e>>1]=i;b=b+1|0;e=G[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break e}g=g+4|0;if(f>>>0>g>>>0){continue}break}break d}j=1;if(c>>>0<=e>>>0){break d}ma((e<<1)+d|0,0,c-e<<1)}return j;case 9:g:{h:{e=G[a+24|0];c=c&255;if(!(c>>>0>e>>>0?e:c)){break h}e=F[a>>2];j=F[e>>2];g=j;f=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+f|0;g=b+g|0;f=F[e+4>>2];e=f-j|0;if(!G[a+32|0]){j=0;if((b|0)>=(e|0)){break g}b=0;while(1){l=K[g>>3];if(l>=32767|l<-32768|l!=l){break g}o=N(l);if(o==Infinity){break g}e=(b<<1)+d|0;if(o<2147483648){i=~~l}else{i=-2147483648}E[e>>1]=i;b=b+1|0;e=G[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break h}g=g+8|0;if(f>>>0>g>>>0){continue}break}break g}j=0;if((b|0)>=(e|0)){break g}b=0;while(1){l=K[g>>3];if(l>=32767|l<-32768|(N(l)==Infinity|l!=l)){break g}if(l<0|l>1){break g}e=(b<<1)+d|0;l=R(l*32767+.5);i:{if(N(l)<2147483648){i=~~l;break i}i=-2147483648}E[e>>1]=i;b=b+1|0;e=G[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break h}g=g+8|0;if(f>>>0>g>>>0){continue}break}break g}j=1;if(c>>>0<=e>>>0){break g}ma((e<<1)+d|0,0,c-e<<1)}return j;case 10:break c;default:break b}}e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[a>>2];h=F[e>>2];k=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}E[(g<<1)+d>>1]=G[b|0];b=b+1|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}ma((e<<1)+d|0,0,(c&255)-e<<1)}return j}ma((e<<1)+d|0,0,(c&255)-e<<1);return 1}function yb(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=M(0),n=M(0),o=0;a:{b:{if(!d){break b}c:{switch(F[a+28>>2]-1|0){case 0:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[a>>2];h=F[e>>2];k=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}F[(g<<2)+d>>2]=D[b|0];b=b+1|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 1:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[a>>2];h=F[e>>2];k=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}F[(g<<2)+d>>2]=G[b|0];b=b+1|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 2:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[a>>2];h=F[e>>2];k=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}F[(g<<2)+d>>2]=E[b>>1];b=b+2|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 3:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[a>>2];h=F[e>>2];k=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}F[(g<<2)+d>>2]=H[b>>1];b=b+2|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 4:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[a>>2];h=F[e>>2];k=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}F[(g<<2)+d>>2]=F[b>>2];b=b+4|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 5:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[a>>2];h=F[e>>2];k=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){return 0}e=F[b>>2];if((e|0)<0){break b}F[(g<<2)+d>>2]=e;b=b+4|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 6:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[a>>2];h=F[e>>2];k=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;k=F[e+4>>2];while(1){if(b>>>0>=k>>>0){break b}h=F[b+4>>2];e=F[b>>2];if(e- -2147483648>>>0<2147483648?h+1|0:h){break b}F[(g<<2)+d>>2]=e;b=b+8|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 7:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[a>>2];h=F[e>>2];k=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}k=F[b+4>>2];e=F[b>>2];if(!k&e>>>0>2147483647|k){break b}F[(g<<2)+d>>2]=e;b=b+8|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 8:d:{e:{e=G[a+24|0];c=c&255;if(!(c>>>0>e>>>0?e:c)){break e}e=F[a>>2];j=F[e>>2];g=j;f=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+f|0;g=b+g|0;f=F[e+4>>2];e=f-j|0;if(!G[a+32|0]){j=0;if((b|0)>=(e|0)){break d}b=0;while(1){m=J[g>>2];if(m>=M(2147483648)|m>2]=i;b=b+1|0;e=G[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break e}g=g+4|0;if(f>>>0>g>>>0){continue}break}break d}j=0;if((b|0)>=(e|0)){break d}b=0;while(1){m=J[g>>2];if(m>=M(2147483648)|mM(1)){break d}e=(b<<2)+d|0;l=R(+m*2147483647+.5);f:{if(N(l)<2147483648){i=~~l;break f}i=-2147483648}F[e>>2]=i;b=b+1|0;e=G[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break e}g=g+4|0;if(f>>>0>g>>>0){continue}break}break d}j=1;if(c>>>0<=e>>>0){break d}ma((e<<2)+d|0,0,c-e<<2)}return j;case 9:g:{h:{e=G[a+24|0];c=c&255;if(!(c>>>0>e>>>0?e:c)){break h}e=F[a>>2];j=F[e>>2];g=j;f=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+f|0;g=b+g|0;f=F[e+4>>2];e=f-j|0;if(!G[a+32|0]){j=0;if((b|0)>=(e|0)){break g}b=0;while(1){l=K[g>>3];if(l>=2147483647|l<-2147483648|l!=l){break g}o=N(l);if(o==Infinity){break g}e=(b<<2)+d|0;if(o<2147483648){i=~~l}else{i=-2147483648}F[e>>2]=i;b=b+1|0;e=G[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break h}g=g+8|0;if(f>>>0>g>>>0){continue}break}break g}j=0;if((b|0)>=(e|0)){break g}b=0;while(1){l=K[g>>3];if(l>=2147483647|l<-2147483648|(N(l)==Infinity|l!=l)){break g}if(l<0|l>1){break g}e=(b<<2)+d|0;l=R(l*2147483647+.5);i:{if(N(l)<2147483648){i=~~l;break i}i=-2147483648}F[e>>2]=i;b=b+1|0;e=G[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break h}g=g+8|0;if(f>>>0>g>>>0){continue}break}break g}j=1;if(c>>>0<=e>>>0){break g}ma((e<<2)+d|0,0,c-e<<2)}return j;case 10:break c;default:break b}}e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[a>>2];h=F[e>>2];k=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}F[(g<<2)+d>>2]=G[b|0];b=b+1|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}ma((e<<2)+d|0,0,(c&255)-e<<2)}return j}ma((e<<2)+d|0,0,(c&255)-e<<2);return 1}function zb(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=M(0);a:{b:{if(!d){break b}c:{switch(F[a+28>>2]-1|0){case 0:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[a>>2];h=F[e>>2];k=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){return 0}e=D[b|0];if((e|0)<0){break b}E[(g<<1)+d>>1]=e&255;b=b+1|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break b}break a;case 1:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[a>>2];h=F[e>>2];k=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}E[(g<<1)+d>>1]=G[b|0];b=b+1|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break b}break a;case 2:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[a>>2];h=F[e>>2];k=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){return 0}e=E[b>>1];if((e|0)<0){break b}E[(g<<1)+d>>1]=e;b=b+2|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break b}break a;case 3:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[a>>2];h=F[e>>2];k=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}E[(g<<1)+d>>1]=H[b>>1];b=b+2|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break b}break a;case 4:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[a>>2];h=F[e>>2];k=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}e=F[b>>2];if(e>>>0>65535){break b}E[(g<<1)+d>>1]=e;b=b+4|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break b}break a;case 5:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[a>>2];h=F[e>>2];k=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}e=F[b>>2];if(e>>>0>65535){break b}E[(g<<1)+d>>1]=e;b=b+4|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break b}break a;case 6:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[a>>2];h=F[e>>2];k=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}k=F[b+4>>2];e=F[b>>2];if(!k&e>>>0>65535|k){break b}E[(g<<1)+d>>1]=e;b=b+8|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break b}break a;case 7:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[a>>2];h=F[e>>2];k=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}k=F[b+4>>2];e=F[b>>2];if(!k&e>>>0>65535|k){break b}E[(g<<1)+d>>1]=e;b=b+8|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break b}break a;case 8:d:{e:{e=G[a+24|0];c=c&255;if(!(c>>>0>e>>>0?e:c)){break e}e=F[a>>2];l=F[e>>2];g=l;f=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+f|0;g=b+g|0;f=F[e+4>>2];e=f-l|0;if(!G[a+32|0]){l=0;if((b|0)>=(e|0)){break d}b=0;while(1){m=J[g>>2];if(m>=M(65535)|m=M(0)){i=~~m>>>0}else{i=0}E[e>>1]=i;b=b+1|0;e=G[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break e}g=g+4|0;if(f>>>0>g>>>0){continue}break}break d}l=0;if((b|0)>=(e|0)){break d}b=0;while(1){m=J[g>>2];if(m>=M(65535)|mM(1)){break d}e=(b<<1)+d|0;j=R(+m*65535+.5);f:{if(j<4294967296&j>=0){i=~~j>>>0;break f}i=0}E[e>>1]=i;b=b+1|0;e=G[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break e}g=g+4|0;if(f>>>0>g>>>0){continue}break}break d}l=1;if(c>>>0<=e>>>0){break d}ma((e<<1)+d|0,0,c-e<<1)}return l;case 9:g:{h:{e=G[a+24|0];c=c&255;if(!(c>>>0>e>>>0?e:c)){break h}e=F[a>>2];l=F[e>>2];g=l;f=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+f|0;g=b+g|0;f=F[e+4>>2];e=f-l|0;if(!G[a+32|0]){l=0;if((b|0)>=(e|0)){break g}b=0;while(1){j=K[g>>3];if(j>=65535|j<0|(N(j)==Infinity|j!=j)){break g}e=(b<<1)+d|0;if(j<4294967296&j>=0){i=~~j>>>0}else{i=0}E[e>>1]=i;b=b+1|0;e=G[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break h}g=g+8|0;if(f>>>0>g>>>0){continue}break}break g}l=0;if((b|0)>=(e|0)){break g}b=0;while(1){j=K[g>>3];if(j>=65535|j<0|(N(j)==Infinity|j!=j)){break g}if(j>1){break g}e=(b<<1)+d|0;j=R(j*65535+.5);i:{if(j<4294967296&j>=0){i=~~j>>>0;break i}i=0}E[e>>1]=i;b=b+1|0;e=G[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break h}g=g+8|0;if(f>>>0>g>>>0){continue}break}break g}l=1;if(c>>>0<=e>>>0){break g}ma((e<<1)+d|0,0,c-e<<1)}return l;case 10:break c;default:break b}}e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[a>>2];h=F[e>>2];k=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+k|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}E[(g<<1)+d>>1]=G[b|0];b=b+1|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break b}ma((e<<1)+d|0,0,(c&255)-e<<1)}return l}ma((e<<1)+d|0,0,(c&255)-e<<1);return 1}function Ga(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=M(0),l=0,m=0,n=M(0),o=0;a:{if(!d){break a}b:{c:{switch(F[a+28>>2]-1|0){case 0:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[a>>2];h=F[e>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);j=b;b=b+i|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=(g<<3)+d|0;i=D[b|0];F[e>>2]=i;F[e+4>>2]=i>>31;b=b+1|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 1:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[a>>2];h=F[e>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);j=b;b=b+i|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=(g<<3)+d|0;F[e>>2]=G[b|0];F[e+4>>2]=0;b=b+1|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 2:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[a>>2];h=F[e>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);j=b;b=b+i|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=(g<<3)+d|0;i=E[b>>1];F[e>>2]=i;F[e+4>>2]=i>>31;b=b+2|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 3:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[a>>2];h=F[e>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);j=b;b=b+i|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=(g<<3)+d|0;F[e>>2]=H[b>>1];F[e+4>>2]=0;b=b+2|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 4:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[a>>2];h=F[e>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);j=b;b=b+i|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=(g<<3)+d|0;i=F[b>>2];F[e>>2]=i;F[e+4>>2]=i>>31;b=b+4|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 5:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[a>>2];h=F[e>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);j=b;b=b+i|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=(g<<3)+d|0;F[e>>2]=F[b>>2];F[e+4>>2]=0;b=b+4|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 6:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[a>>2];h=F[e>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);j=b;b=b+i|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}i=F[b+4>>2];e=(g<<3)+d|0;F[e>>2]=F[b>>2];F[e+4>>2]=i;b=b+8|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 7:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[a>>2];h=F[e>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);j=b;b=b+i|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=F[b>>2];i=F[b+4>>2];if((i|0)<0){break a}j=(g<<3)+d|0;F[j>>2]=e;F[j+4>>2]=i;b=b+8|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 8:d:{e=G[a+24|0];f=c&255;if(!(e>>>0>>0?e:f)){break d}if(G[a+32|0]){break a}e=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);j=b;b=b+e|0;e=F[a>>2];i=F[e+4>>2];e=F[e>>2];if((b|0)>=(i-e|0)){break a}g=b+e|0;h=c&255;b=0;while(1){k=J[g>>2];if(k>=M(0x8000000000000000)|k=M(1)?~~(k>M(0)?M(P(M(R(M(k*M(2.3283064365386963e-10)))),M(4294967296))):M(S(M(M(k-M(~~k>>>0>>>0))*M(2.3283064365386963e-10)))))>>>0:0;m=~~k>>>0;break e}j=-2147483648;m=0}F[e>>2]=m;F[e+4>>2]=j;b=b+1|0;e=G[a+24|0];if(b>>>0>=(e>>>0>>0?e:h)>>>0){break d}g=g+4|0;if(i>>>0>g>>>0){continue}break}break a}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 9:f:{e=G[a+24|0];f=c&255;if(!(e>>>0>>0?e:f)){break f}if(G[a+32|0]){break a}e=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);j=b;b=b+e|0;e=F[a>>2];i=F[e+4>>2];e=F[e>>2];if((b|0)>=(i-e|0)){break a}g=b+e|0;h=c&255;b=0;while(1){l=K[g>>3];if(l>=0x8000000000000000|l<-0x8000000000000000|l!=l){break a}o=N(l);if(o==Infinity){break a}e=(b<<3)+d|0;g:{if(o<0x8000000000000000){j=N(l)>=1?~~(l>0?P(R(l*2.3283064365386963e-10),4294967295):S((l-+(~~l>>>0>>>0))*2.3283064365386963e-10))>>>0:0;m=~~l>>>0;break g}j=-2147483648;m=0}F[e>>2]=m;F[e+4>>2]=j;b=b+1|0;e=G[a+24|0];if(b>>>0>=(e>>>0>>0?e:h)>>>0){break f}g=g+8|0;if(i>>>0>g>>>0){continue}break}break a}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 10:break c;default:break a}}e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[a>>2];h=F[e>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);j=b;b=b+i|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=(g<<3)+d|0;F[e>>2]=G[b|0];F[e+4>>2]=0;b=b+1|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0}ma(d,0,a<<3)}}function le(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;j=a;a:{b:{c:{d:{e:{f:{g:{h:{a=F[a+8>>2];switch(F[a+28>>2]-1|0){case 4:break c;case 5:break d;case 2:break e;case 3:break f;case 0:break g;case 1:break h;default:break a}}f=G[a+24|0];c=ka(f);a=F[j+16>>2];if(F[a+80>>2]){g=F[F[a>>2]>>2]+F[a+48>>2]|0}else{g=0}if(!b){break b}if(f){o=f&252;l=f&3;h=f>>>0<4;while(1){a=0;e=0;if(!h){while(1){k=g+(d<<2)|0;D[a+c|0]=F[k>>2];D[(a|1)+c|0]=F[k+4>>2];D[(a|2)+c|0]=F[k+8>>2];D[(a|3)+c|0]=F[k+12>>2];a=a+4|0;d=d+4|0;e=e+4|0;if((o|0)!=(e|0)){continue}break}}e=0;if(l){while(1){D[a+c|0]=F[g+(d<<2)>>2];a=a+1|0;d=d+1|0;e=e+1|0;if((l|0)!=(e|0)){continue}break}}la(F[F[F[j+8>>2]+64>>2]>>2]+m|0,c,f);m=f+m|0;n=n+1|0;if((n|0)!=(b|0)){continue}break}break b}a=0;if((b|0)!=1){g=b&-2;while(1){la(F[F[F[j+8>>2]+64>>2]>>2]+a|0,c,f);a=a+f|0;la(a+F[F[F[j+8>>2]+64>>2]>>2]|0,c,f);a=a+f|0;d=d+2|0;if((g|0)!=(d|0)){continue}break}}if(!(b&1)){break b}la(F[F[F[j+8>>2]+64>>2]>>2]+a|0,c,f);break b}f=G[a+24|0];c=ka(f);a=F[j+16>>2];if(F[a+80>>2]){g=F[F[a>>2]>>2]+F[a+48>>2]|0}else{g=0}if(!b){break b}if(f){o=f&252;l=f&3;h=f>>>0<4;while(1){a=0;e=0;if(!h){while(1){k=g+(d<<2)|0;D[a+c|0]=F[k>>2];D[(a|1)+c|0]=F[k+4>>2];D[(a|2)+c|0]=F[k+8>>2];D[(a|3)+c|0]=F[k+12>>2];a=a+4|0;d=d+4|0;e=e+4|0;if((o|0)!=(e|0)){continue}break}}e=0;if(l){while(1){D[a+c|0]=F[g+(d<<2)>>2];a=a+1|0;d=d+1|0;e=e+1|0;if((l|0)!=(e|0)){continue}break}}la(F[F[F[j+8>>2]+64>>2]>>2]+m|0,c,f);m=f+m|0;n=n+1|0;if((n|0)!=(b|0)){continue}break}break b}a=0;if((b|0)!=1){g=b&-2;while(1){la(F[F[F[j+8>>2]+64>>2]>>2]+a|0,c,f);a=a+f|0;la(a+F[F[F[j+8>>2]+64>>2]>>2]|0,c,f);a=a+f|0;d=d+2|0;if((g|0)!=(d|0)){continue}break}}if(!(b&1)){break b}la(F[F[F[j+8>>2]+64>>2]>>2]+a|0,c,f);break b}h=G[a+24|0];i=h<<1;c=ka(i);a=F[j+16>>2];if(F[a+80>>2]){g=F[F[a>>2]>>2]+F[a+48>>2]|0}else{g=0}if(!b){break b}if(h){o=h&252;l=h&3;h=h>>>0<4;while(1){a=0;e=0;if(!h){while(1){f=a<<1;k=g+(d<<2)|0;E[f+c>>1]=F[k>>2];E[(f|2)+c>>1]=F[k+4>>2];E[(f|4)+c>>1]=F[k+8>>2];E[(f|6)+c>>1]=F[k+12>>2];a=a+4|0;d=d+4|0;e=e+4|0;if((o|0)!=(e|0)){continue}break}}e=0;if(l){while(1){E[(a<<1)+c>>1]=F[g+(d<<2)>>2];a=a+1|0;d=d+1|0;e=e+1|0;if((l|0)!=(e|0)){continue}break}}la(F[F[F[j+8>>2]+64>>2]>>2]+n|0,c,i);n=i+n|0;m=m+1|0;if((m|0)!=(b|0)){continue}break}break b}a=0;if((b|0)!=1){g=b&-2;while(1){la(F[F[F[j+8>>2]+64>>2]>>2]+a|0,c,i);a=a+i|0;la(a+F[F[F[j+8>>2]+64>>2]>>2]|0,c,i);a=a+i|0;d=d+2|0;if((g|0)!=(d|0)){continue}break}}if(!(b&1)){break b}la(F[F[F[j+8>>2]+64>>2]>>2]+a|0,c,i);break b}h=G[a+24|0];i=h<<1;c=ka(i);a=F[j+16>>2];if(F[a+80>>2]){g=F[F[a>>2]>>2]+F[a+48>>2]|0}else{g=0}if(!b){break b}if(h){o=h&252;l=h&3;h=h>>>0<4;while(1){a=0;e=0;if(!h){while(1){f=a<<1;k=g+(d<<2)|0;E[f+c>>1]=F[k>>2];E[(f|2)+c>>1]=F[k+4>>2];E[(f|4)+c>>1]=F[k+8>>2];E[(f|6)+c>>1]=F[k+12>>2];a=a+4|0;d=d+4|0;e=e+4|0;if((o|0)!=(e|0)){continue}break}}e=0;if(l){while(1){E[(a<<1)+c>>1]=F[g+(d<<2)>>2];a=a+1|0;d=d+1|0;e=e+1|0;if((l|0)!=(e|0)){continue}break}}la(F[F[F[j+8>>2]+64>>2]>>2]+n|0,c,i);n=i+n|0;m=m+1|0;if((m|0)!=(b|0)){continue}break}break b}a=0;if((b|0)!=1){g=b&-2;while(1){la(F[F[F[j+8>>2]+64>>2]>>2]+a|0,c,i);a=a+i|0;la(a+F[F[F[j+8>>2]+64>>2]>>2]|0,c,i);a=a+i|0;d=d+2|0;if((g|0)!=(d|0)){continue}break}}if(!(b&1)){break b}la(F[F[F[j+8>>2]+64>>2]>>2]+a|0,c,i);break b}h=G[a+24|0];i=h<<2;c=ka(i);a=F[j+16>>2];if(F[a+80>>2]){g=F[F[a>>2]>>2]+F[a+48>>2]|0}else{g=0}if(!b){break b}if(h){o=h&252;l=h&3;h=h>>>0<4;while(1){a=0;e=0;if(!h){while(1){f=a<<2;k=g+(d<<2)|0;F[f+c>>2]=F[k>>2];F[(f|4)+c>>2]=F[k+4>>2];F[(f|8)+c>>2]=F[k+8>>2];F[(f|12)+c>>2]=F[k+12>>2];a=a+4|0;d=d+4|0;e=e+4|0;if((o|0)!=(e|0)){continue}break}}e=0;if(l){while(1){F[(a<<2)+c>>2]=F[g+(d<<2)>>2];a=a+1|0;d=d+1|0;e=e+1|0;if((l|0)!=(e|0)){continue}break}}la(F[F[F[j+8>>2]+64>>2]>>2]+n|0,c,i);n=i+n|0;m=m+1|0;if((m|0)!=(b|0)){continue}break}break b}a=0;if((b|0)!=1){g=b&-2;while(1){la(F[F[F[j+8>>2]+64>>2]>>2]+a|0,c,i);a=a+i|0;la(a+F[F[F[j+8>>2]+64>>2]>>2]|0,c,i);a=a+i|0;d=d+2|0;if((g|0)!=(d|0)){continue}break}}if(!(b&1)){break b}la(F[F[F[j+8>>2]+64>>2]>>2]+a|0,c,i);break b}h=G[a+24|0];i=h<<2;c=ka(i);a=F[j+16>>2];if(F[a+80>>2]){g=F[F[a>>2]>>2]+F[a+48>>2]|0}else{g=0}if(!b){break b}if(h){o=h&252;l=h&3;h=h>>>0<4;while(1){a=0;e=0;if(!h){while(1){f=a<<2;k=g+(d<<2)|0;F[f+c>>2]=F[k>>2];F[(f|4)+c>>2]=F[k+4>>2];F[(f|8)+c>>2]=F[k+8>>2];F[(f|12)+c>>2]=F[k+12>>2];a=a+4|0;d=d+4|0;e=e+4|0;if((o|0)!=(e|0)){continue}break}}e=0;if(l){while(1){F[(a<<2)+c>>2]=F[g+(d<<2)>>2];a=a+1|0;d=d+1|0;e=e+1|0;if((l|0)!=(e|0)){continue}break}}la(F[F[F[j+8>>2]+64>>2]>>2]+n|0,c,i);n=i+n|0;m=m+1|0;if((m|0)!=(b|0)){continue}break}break b}a=0;if((b|0)!=1){g=b&-2;while(1){la(F[F[F[j+8>>2]+64>>2]>>2]+a|0,c,i);a=a+i|0;la(a+F[F[F[j+8>>2]+64>>2]>>2]|0,c,i);a=a+i|0;d=d+2|0;if((g|0)!=(d|0)){continue}break}}if(!(b&1)){break b}la(F[F[F[j+8>>2]+64>>2]>>2]+a|0,c,i)}ja(c);c=1}return c|0}function xb(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=M(0);a:{b:{if(!d){break b}c:{switch(F[a+28>>2]-1|0){case 0:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[a>>2];h=F[e>>2];l=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+l|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}F[(g<<2)+d>>2]=D[b|0];b=b+1|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 1:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[a>>2];h=F[e>>2];l=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+l|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}F[(g<<2)+d>>2]=G[b|0];b=b+1|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 2:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[a>>2];h=F[e>>2];l=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+l|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}F[(g<<2)+d>>2]=E[b>>1];b=b+2|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 3:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[a>>2];h=F[e>>2];l=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+l|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}F[(g<<2)+d>>2]=H[b>>1];b=b+2|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 4:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[a>>2];h=F[e>>2];l=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+l|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}F[(g<<2)+d>>2]=F[b>>2];b=b+4|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 5:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[a>>2];h=F[e>>2];l=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+l|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}F[(g<<2)+d>>2]=F[b>>2];b=b+4|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 6:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[a>>2];h=F[e>>2];l=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+l|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}e=F[b>>2];if(F[b+4>>2]){break b}F[(g<<2)+d>>2]=e;b=b+8|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 7:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[a>>2];h=F[e>>2];l=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+l|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}e=F[b>>2];if(F[b+4>>2]){break b}F[(g<<2)+d>>2]=e;b=b+8|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 8:d:{e:{e=G[a+24|0];c=c&255;if(!(c>>>0>e>>>0?e:c)){break e}e=F[a>>2];k=F[e>>2];g=k;f=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+f|0;g=b+g|0;f=F[e+4>>2];e=f-k|0;if(!G[a+32|0]){k=0;if((b|0)>=(e|0)){break d}b=0;while(1){m=J[g>>2];if(m>=M(4294967296)|m=M(0)){i=~~m>>>0}else{i=0}F[e>>2]=i;b=b+1|0;e=G[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break e}g=g+4|0;if(f>>>0>g>>>0){continue}break}break d}k=0;if((b|0)>=(e|0)){break d}b=0;while(1){m=J[g>>2];if(m>=M(4294967296)|mM(1)){break d}e=(b<<2)+d|0;j=R(+m*4294967295+.5);f:{if(j<4294967296&j>=0){i=~~j>>>0;break f}i=0}F[e>>2]=i;b=b+1|0;e=G[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break e}g=g+4|0;if(f>>>0>g>>>0){continue}break}break d}k=1;if(c>>>0<=e>>>0){break d}ma((e<<2)+d|0,0,c-e<<2)}return k;case 9:g:{h:{e=G[a+24|0];c=c&255;if(!(c>>>0>e>>>0?e:c)){break h}e=F[a>>2];k=F[e>>2];g=k;f=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+f|0;g=b+g|0;f=F[e+4>>2];e=f-k|0;if(!G[a+32|0]){k=0;if((b|0)>=(e|0)){break g}b=0;while(1){j=K[g>>3];if(j>=4294967295|j<0|(N(j)==Infinity|j!=j)){break g}e=(b<<2)+d|0;if(j<4294967296&j>=0){i=~~j>>>0}else{i=0}F[e>>2]=i;b=b+1|0;e=G[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break h}g=g+8|0;if(f>>>0>g>>>0){continue}break}break g}k=0;if((b|0)>=(e|0)){break g}b=0;while(1){j=K[g>>3];if(j>=4294967295|j<0|(N(j)==Infinity|j!=j)){break g}if(j>1){break g}e=(b<<2)+d|0;j=R(j*4294967295+.5);i:{if(j<4294967296&j>=0){i=~~j>>>0;break i}i=0}F[e>>2]=i;b=b+1|0;e=G[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break h}g=g+8|0;if(f>>>0>g>>>0){continue}break}break g}k=1;if(c>>>0<=e>>>0){break g}ma((e<<2)+d|0,0,c-e<<2)}return k;case 10:break c;default:break b}}e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[a>>2];h=F[e>>2];l=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);i=b;b=b+l|0;b=b+h|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break b}F[(g<<2)+d>>2]=G[b|0];b=b+1|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}ma((e<<2)+d|0,0,(c&255)-e<<2)}return k}ma((e<<2)+d|0,0,(c&255)-e<<2);return 1}function rd(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;a:{b:{c:{d:{e:{if(F[a+92>>2]==F[a+88>>2]){break e}c=F[a+52>>2];f:{if((c|0)!=F[a+56>>2]){F[c>>2]=b;F[a+52>>2]=c+4;break f}h=F[a+48>>2];g=c-h|0;d=g>>2;f=d+1|0;if(f>>>0>=1073741824){break a}e=g>>>1|0;g=g>>>0>=2147483644?1073741823:f>>>0>>0?e:f;if(g){if(g>>>0>=1073741824){break d}e=ka(g<<2)}else{e=0}f=e+(d<<2)|0;F[f>>2]=b;d=f+4|0;if((c|0)!=(h|0)){while(1){f=f-4|0;c=c-4|0;F[f>>2]=F[c>>2];if((c|0)!=(h|0)){continue}break}}F[a+56>>2]=e+(g<<2);F[a+52>>2]=d;F[a+48>>2]=f;if(!h){break f}ja(h)}F[a+84>>2]=0;c=-1;e=-1;g:{if((b|0)==-1){break g}d=F[a+4>>2];e=b+1|0;e=(e>>>0)%3|0?e:b-2|0;if((e|0)!=-1){c=F[F[d>>2]+(e<<2)>>2]}h:{if((b>>>0)%3|0){l=b-1|0;break h}l=b+2|0;e=-1;if((l|0)==-1){break g}}e=F[F[d>>2]+(l<<2)>>2]}i=e>>>3&536870908;d=F[a+36>>2];h=d+(c>>>3&536870908)|0;g=F[h>>2];f=1<>2]=f|g;f=a+8|0;if((b|0)!=-1){d=b+1|0;d=(d>>>0)%3|0?d:b-2|0}else{d=-1}Ka(f,c,d);d=F[a+36>>2]}f=d+i|0;d=F[f>>2];c=1<>2]=c|d;d=a+8|0;c=-1;i:{if((b|0)==-1){break i}c=b-1|0;if((b>>>0)%3|0){break i}c=b+2|0}Ka(d,e,c)}c=-1;c=(b|0)!=-1?F[F[F[a+4>>2]>>2]+(b<<2)>>2]:c;f=F[a+36>>2]+(c>>>3&536870908)|0;d=F[f>>2];e=1<>2]=d|e;Ka(a+8|0,c,b)}d=F[a+84>>2];if((d|0)>2){break e}while(1){e=L(d,12)+a|0;b=F[e+52>>2];if((b|0)==F[e+48>>2]){d=d+1|0;if((d|0)!=3){continue}break e}b=b-4|0;c=F[b>>2];F[e+52>>2]=b;F[a+84>>2]=d;if((c|0)==-1){break e}f=F[a+24>>2];b=(c>>>0)/3|0;j:{if(F[f+(b>>>3&268435452)>>2]>>>b&1){break j}k:{while(1){k=(c>>>0)/3|0;b=(k>>>3&268435452)+f|0;F[b>>2]=F[b>>2]|1<>2]>>2]+(c<<2)>>2]:d;f=F[a+36>>2]+(d>>>3&536870908)|0;e=F[f>>2];b=1<>2]=b|e;i=F[(F[F[a+16>>2]+96>>2]+L(k,12)|0)+((c>>>0)%3<<2)>>2];l=F[F[a+20>>2]+4>>2];f=F[l+4>>2];t:{if((f|0)!=F[l+8>>2]){F[f>>2]=i;F[l+4>>2]=f+4;break t}j=F[l>>2];h=f-j|0;g=h>>2;e=g+1|0;if(e>>>0>=1073741824){break s}b=h>>>1|0;h=h>>>0>=2147483644?1073741823:b>>>0>e>>>0?b:e;if(h){if(h>>>0>=1073741824){break d}e=ka(h<<2)}else{e=0}b=e+(g<<2)|0;F[b>>2]=i;g=b+4|0;if((f|0)!=(j|0)){while(1){b=b-4|0;f=f-4|0;F[b>>2]=F[f>>2];if((f|0)!=(j|0)){continue}break}}F[l+8>>2]=e+(h<<2);F[l+4>>2]=g;F[l>>2]=b;if(!j){break t}ja(j)}j=F[a+12>>2];f=F[j+4>>2];u:{if((f|0)!=F[j+8>>2]){F[f>>2]=c;F[j+4>>2]=f+4;break u}i=F[j>>2];h=f-i|0;g=h>>2;e=g+1|0;if(e>>>0>=1073741824){break r}b=h>>>1|0;h=h>>>0>=2147483644?1073741823:b>>>0>e>>>0?b:e;if(h){if(h>>>0>=1073741824){break d}e=ka(h<<2)}else{e=0}b=e+(g<<2)|0;F[b>>2]=c;g=b+4|0;if((f|0)!=(i|0)){while(1){b=b-4|0;f=f-4|0;F[b>>2]=F[f>>2];if((f|0)!=(i|0)){continue}break}}F[j+8>>2]=e+(h<<2);F[j+4>>2]=g;F[j>>2]=b;if(!i){break u}ja(i)}b=F[a+12>>2];F[F[b+12>>2]+(d<<2)>>2]=F[b+24>>2];F[b+24>>2]=F[b+24>>2]+1}if((c|0)==-1){break k}g=F[a+4>>2];f=-1;b=c+1|0;b=(b>>>0)%3|0?b:c-2|0;if((b|0)!=-1){f=F[F[g+12>>2]+(b<<2)>>2]}v:{w:{if((L(k,3)|0)!=(c|0)){d=c-1|0;break w}d=c+2|0;c=-1;if((d|0)==-1){break v}}c=F[F[g+12>>2]+(d<<2)>>2]}d=(c|0)==-1;e=(c>>>0)/3|0;if((f|0)!=-1){b=(f>>>0)/3|0;b=F[F[a+24>>2]+(b>>>3&268435452)>>2]&1<>2]+(b>>>3&536870908)>>2]>>>b&1){break x}k=0;b=F[F[g>>2]+(c<<2)>>2];if(!(F[F[a+36>>2]+(b>>>3&536870908)>>2]>>>b&1)){b=F[a+88>>2]+(b<<2)|0;e=F[b>>2];F[b>>2]=e+1;k=(e|0)<=0?2:1}if(F[a+84>>2]>=(k|0)&l){break m}j=L(k,12)+a|0;b=F[j+52>>2];y:{if((b|0)!=F[j+56>>2]){F[b>>2]=c;F[j+52>>2]=b+4;break y}i=F[j+48>>2];h=b-i|0;d=h>>2;g=d+1|0;if(g>>>0>=1073741824){break c}e=h>>>1|0;g=h>>>0>=2147483644?1073741823:e>>>0>g>>>0?e:g;if(g){if(g>>>0>=1073741824){break d}e=ka(g<<2)}else{e=0}d=e+(d<<2)|0;F[d>>2]=c;c=d+4|0;if((b|0)!=(i|0)){while(1){d=d-4|0;b=b-4|0;F[d>>2]=F[b>>2];if((b|0)!=(i|0)){continue}break}}F[j+48>>2]=d;F[j+52>>2]=c;F[j+56>>2]=e+(g<<2);if(!i){break y}ja(i)}if(F[a+84>>2]<=(k|0)){break x}F[a+84>>2]=k}if(l){break k}c=-1;if((f|0)==-1){break n}}c=F[F[F[a+4>>2]>>2]+(f<<2)>>2]}b=0;if(!(F[F[a+36>>2]+(c>>>3&536870908)>>2]>>>c&1)){b=F[a+88>>2]+(c<<2)|0;c=F[b>>2];F[b>>2]=c+1;b=(c|0)<=0?2:1}if(F[a+84>>2]<(b|0)){break l}c=f}f=F[a+24>>2];continue}break}k=L(b,12)+a|0;c=F[k+52>>2];z:{if((c|0)!=F[k+56>>2]){F[c>>2]=f;F[k+52>>2]=c+4;break z}i=F[k+48>>2];h=c-i|0;d=h>>2;g=d+1|0;if(g>>>0>=1073741824){break b}e=h>>>1|0;g=h>>>0>=2147483644?1073741823:e>>>0>g>>>0?e:g;if(g){if(g>>>0>=1073741824){break d}e=ka(g<<2)}else{e=0}d=e+(d<<2)|0;F[d>>2]=f;f=d+4|0;if((c|0)!=(i|0)){while(1){d=d-4|0;c=c-4|0;F[d>>2]=F[c>>2];if((c|0)!=(i|0)){continue}break}}F[k+48>>2]=d;F[k+52>>2]=f;F[k+56>>2]=e+(g<<2);if(!i){break z}ja(i)}d=F[a+84>>2];if((d|0)<=(b|0)){break j}F[a+84>>2]=b;d=b;break j}d=F[a+84>>2]}if((d|0)<3){continue}break}}return 1}oa();v()}na();v()}na();v()}na();v()}function Mc(a){var b=0,c=0,d=0,e=0,f=0,g=0;e=Z-16|0;Z=e;F[e+12>>2]=a;a:{if(a>>>0<=211){d=F[Lc(10352,10544,e+12|0)>>2];break a}if(a>>>0>=4294967292){V();v()}f=(a>>>0)/210|0;d=L(f,210);F[e+8>>2]=a-d;g=Lc(10544,10736,e+8|0)-10544>>2;while(1){d=F[(g<<2)+10544>>2]+d|0;a=5;while(1){b:{if((a|0)==47){a=211;while(1){b=(d>>>0)/(a>>>0)|0;if(b>>>0>>0){break a}if((L(a,b)|0)==(d|0)){break b}b=a+10|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+12|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+16|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+18|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+22|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+28|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+30|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+36|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+40|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+42|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+46|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+52|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+58|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+60|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+66|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+70|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+72|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+78|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+82|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+88|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+96|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+100|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+102|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+106|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+108|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+112|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+120|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+126|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+130|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+136|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+138|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+142|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+148|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+150|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+156|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+162|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+166|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+168|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+172|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+178|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+180|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+186|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+190|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+192|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+196|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+198|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+208|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}a=a+210|0;if((L(b,c)|0)!=(d|0)){continue}break}break b}b=F[(a<<2)+10352>>2];c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}a=a+1|0;if((L(b,c)|0)!=(d|0)){continue}}break}d=g+1|0;a=(d|0)==48;g=a?0:d;f=a+f|0;d=L(f,210);continue}}Z=e+16|0;return d}function lb(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=M(0),k=0,l=0;a:{if(!d){break a}b:{c:{switch(F[a+28>>2]-1|0){case 0:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[a>>2];g=F[e>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);k=b;b=b+i|0;b=b+g|0;g=F[e+4>>2];i=G[a+32|0];while(1){if(b>>>0>=g>>>0){break a}j=M(D[b|0]);J[(h<<2)+d>>2]=i?M(j/M(127)):j;b=b+1|0;h=h+1|0;e=G[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break a}d=(e<<2)+d|0;a=(c&255)-e|0;break b;case 1:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[a>>2];g=F[e>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);k=b;b=b+i|0;b=b+g|0;g=F[e+4>>2];i=G[a+32|0];while(1){if(b>>>0>=g>>>0){break a}j=M(G[b|0]);J[(h<<2)+d>>2]=i?M(j/M(255)):j;b=b+1|0;h=h+1|0;e=G[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break a}d=(e<<2)+d|0;a=(c&255)-e|0;break b;case 2:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[a>>2];g=F[e>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);k=b;b=b+i|0;b=b+g|0;g=F[e+4>>2];i=G[a+32|0];while(1){if(b>>>0>=g>>>0){break a}j=M(E[b>>1]);J[(h<<2)+d>>2]=i?M(j/M(32767)):j;b=b+2|0;h=h+1|0;e=G[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break a}d=(e<<2)+d|0;a=(c&255)-e|0;break b;case 3:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[a>>2];g=F[e>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);k=b;b=b+i|0;b=b+g|0;g=F[e+4>>2];i=G[a+32|0];while(1){if(b>>>0>=g>>>0){break a}j=M(H[b>>1]);J[(h<<2)+d>>2]=i?M(j/M(65535)):j;b=b+2|0;h=h+1|0;e=G[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break a}d=(e<<2)+d|0;a=(c&255)-e|0;break b;case 4:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[a>>2];g=F[e>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);k=b;b=b+i|0;b=b+g|0;g=F[e+4>>2];i=G[a+32|0];while(1){if(b>>>0>=g>>>0){break a}j=M(F[b>>2]);J[(h<<2)+d>>2]=i?M(j*M(4.656612873077393e-10)):j;b=b+4|0;h=h+1|0;e=G[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break a}d=(e<<2)+d|0;a=(c&255)-e|0;break b;case 5:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[a>>2];g=F[e>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);k=b;b=b+i|0;b=b+g|0;g=F[e+4>>2];i=G[a+32|0];while(1){if(b>>>0>=g>>>0){break a}j=M(I[b>>2]);J[(h<<2)+d>>2]=i?M(j*M(2.3283064365386963e-10)):j;b=b+4|0;h=h+1|0;e=G[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break a}d=(e<<2)+d|0;a=(c&255)-e|0;break b;case 6:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[a>>2];g=F[e>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);k=b;b=b+i|0;b=b+g|0;g=F[e+4>>2];i=G[a+32|0];while(1){if(b>>>0>=g>>>0){break a}j=M(+I[b>>2]+ +F[b+4>>2]*4294967296);J[(h<<2)+d>>2]=i?M(j*M(10842021724855044e-35)):j;b=b+8|0;h=h+1|0;e=G[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break a}d=(e<<2)+d|0;a=(c&255)-e|0;break b;case 7:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[a>>2];g=F[e>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);k=b;b=b+i|0;b=b+g|0;g=F[e+4>>2];i=G[a+32|0];while(1){if(b>>>0>=g>>>0){break a}j=M(+I[b>>2]+ +I[b+4>>2]*4294967296);J[(h<<2)+d>>2]=i?M(j*M(5.421010862427522e-20)):j;b=b+8|0;h=h+1|0;e=G[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break a}d=(e<<2)+d|0;a=(c&255)-e|0;break b;case 8:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[a>>2];g=F[e>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);k=b;b=b+i|0;b=b+g|0;g=F[e+4>>2];while(1){if(b>>>0>=g>>>0){break a}J[(h<<2)+d>>2]=J[b>>2];b=b+4|0;h=h+1|0;e=G[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break a}d=(e<<2)+d|0;a=(c&255)-e|0;break b;case 9:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[a>>2];g=F[e>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);k=b;b=b+i|0;b=b+g|0;g=F[e+4>>2];while(1){if(b>>>0>=g>>>0){break a}J[(h<<2)+d>>2]=K[b>>3];b=b+8|0;h=h+1|0;e=G[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break a}d=(e<<2)+d|0;a=(c&255)-e|0;break b;case 10:break c;default:break a}}e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[a>>2];g=F[e>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);k=b;b=b+i|0;b=b+g|0;g=F[e+4>>2];while(1){if(b>>>0>=g>>>0){break a}J[(h<<2)+d>>2]=G[b|0]?M(1):M(0);b=b+1|0;h=h+1|0;e=G[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}l=1;if(e>>>0>=f>>>0){break a}d=(e<<2)+d|0;a=(c&255)-e|0}ma(d,0,a<<2)}return l}function Cb(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=M(0),m=M(0);a:{b:{if(!d){break b}c:{switch(F[a+28>>2]-1|0){case 0:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[F[a>>2]>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break b}D[d+g|0]=G[b|0];b=b+1|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 1:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[F[a>>2]>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){return 0}e=D[b|0];if((e|0)<0){break b}D[d+g|0]=e;b=b+1|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 2:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[F[a>>2]>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break b}e=H[b>>1];if((e+128&65535)>>>0>255){break b}D[d+g|0]=e;b=b+2|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 3:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[F[a>>2]>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break b}e=H[b>>1];if(e>>>0>127){break b}D[d+g|0]=e;b=b+2|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 4:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[F[a>>2]>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break b}e=F[b>>2];if(e+128>>>0>255){break b}D[d+g|0]=e;b=b+4|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 5:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[F[a>>2]>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break b}e=F[b>>2];if(e>>>0>127){break b}D[d+g|0]=e;b=b+4|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 6:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[F[a>>2]>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break b}i=F[b+4>>2];e=F[b>>2];h=e+128|0;i=h>>>0<128?i+1|0:i;if(!i&h>>>0>255|i){break b}D[d+g|0]=e;b=b+8|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 7:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[F[a>>2]>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break b}i=F[b+4>>2];e=F[b>>2];if(!i&e>>>0>127|i){break b}D[d+g|0]=e;b=b+8|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 8:e=G[a+24|0];c=c&255;d:{if(c>>>0>e>>>0?e:c){e=F[F[a>>2]>>2];f=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);h=b;b=b+f|0;b=b+e|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break d}l=J[b>>2];if(l>=M(127)|lM(1)){break d}j=R(+l*127+.5);if(!(N(j)<2147483648)){break f}h=~~j;break e}if(!(m>>0<(c>>>0>e>>>0?e:c)>>>0){continue}break}}k=1;if(c>>>0<=e>>>0){break d}ma(d+e|0,0,c-e|0)}return k;case 9:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[F[a>>2]>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break b}j=K[b>>3];if(j>=127|j<-128|(N(j)==Infinity|j!=j)){break b}e=d+g|0;if(G[a+32|0]){if(j<0|j>1){break b}j=R(j*127+.5)}g:{if(N(j)<2147483648){h=~~j;break g}h=-2147483648}D[e|0]=h;b=b+8|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 10:break c;default:break b}}e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[F[a>>2]>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break b}D[d+g|0]=G[b|0];b=b+1|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}ma(d+e|0,0,(c&255)-e|0)}return k}ma(d+e|0,0,(c&255)-e|0);return 1}function Bb(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=M(0);a:{b:{if(!d){break b}c:{switch(F[a+28>>2]-1|0){case 0:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[F[a>>2]>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){return 0}e=D[b|0];if((e|0)<0){break b}D[d+g|0]=e;b=b+1|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 1:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[F[a>>2]>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break b}D[d+g|0]=G[b|0];b=b+1|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 2:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[F[a>>2]>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break b}e=H[b>>1];if(e>>>0>255){break b}D[d+g|0]=e;b=b+2|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 3:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[F[a>>2]>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break b}e=H[b>>1];if(e>>>0>255){break b}D[d+g|0]=e;b=b+2|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 4:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[F[a>>2]>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break b}e=F[b>>2];if(e>>>0>255){break b}D[d+g|0]=e;b=b+4|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 5:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[F[a>>2]>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break b}e=F[b>>2];if(e>>>0>255){break b}D[d+g|0]=e;b=b+4|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 6:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[F[a>>2]>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break b}i=F[b+4>>2];e=F[b>>2];if(!i&e>>>0>255|i){break b}D[d+g|0]=e;b=b+8|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 7:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[F[a>>2]>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break b}i=F[b+4>>2];e=F[b>>2];if(!i&e>>>0>255|i){break b}D[d+g|0]=e;b=b+8|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 8:e=G[a+24|0];c=c&255;d:{if(c>>>0>e>>>0?e:c){e=F[F[a>>2]>>2];f=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);h=b;b=b+f|0;b=b+e|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break d}l=J[b>>2];if(l>=M(255)|lM(1)){break d}j=R(+l*255+.5);if(!(j<4294967296&j>=0)){break f}h=~~j>>>0;break e}if(!(l=M(0))){break f}h=~~l>>>0;break e}h=0}D[e|0]=h;b=b+4|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(c>>>0>e>>>0?e:c)>>>0){continue}break}}k=1;if(c>>>0<=e>>>0){break d}ma(d+e|0,0,c-e|0)}return k;case 9:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[F[a>>2]>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break b}j=K[b>>3];if(j>=255|j<0|(N(j)==Infinity|j!=j)){break b}e=d+g|0;if(G[a+32|0]){if(j>1){break b}j=R(j*255+.5)}g:{if(j<4294967296&j>=0){h=~~j>>>0;break g}h=0}D[e|0]=h;b=b+8|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}break a;case 10:break c;default:break b}}e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[F[a>>2]>>2];i=F[a+48>>2];b=ki(F[a+40>>2],F[a+44>>2],b,0);h=b;b=b+i|0;b=b+e|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break b}D[d+g|0]=G[b|0];b=b+1|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break b}ma(d+e|0,0,(c&255)-e|0)}return k}ma(d+e|0,0,(c&255)-e|0);return 1}function jc(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0;e=Z-48|0;Z=e;f=H[5053]|H[5054]<<16;d=H[5051]|H[5052]<<16;E[e+38>>1]=d;E[e+40>>1]=d>>>16;E[e+42>>1]=f;E[e+44>>1]=f>>>16;d=F[2525];F[e+32>>2]=F[2524];F[e+36>>2]=d;d=F[2523];F[e+24>>2]=F[2522];F[e+28>>2]=d;d=F[2521];F[e+16>>2]=F[2520];F[e+20>>2]=d;g=F[b+8>>2];i=F[b+12>>2];h=F[b+20>>2];d=F[b+16>>2];f=d+5|0;h=f>>>0<5?h+1|0:h;a:{b:{if(g>>>0>>0&(h|0)>=(i|0)|(h|0)>(i|0)){d=ya(e+16|0);if(d>>>0>=2147483632){break a}c:{d:{if(d>>>0>=11){b=(d|15)+1|0;c=ka(b);F[e+8>>2]=b|-2147483648;F[e>>2]=c;F[e+4>>2]=d;b=c+d|0;break d}D[e+11|0]=d;b=d+e|0;c=e;if(!d){break c}}la(c,e+16|0,d)}D[b|0]=0;F[a>>2]=-2;b=a+4|0;if(D[e+11|0]>=0){a=F[e+4>>2];F[b>>2]=F[e>>2];F[b+4>>2]=a;F[b+8>>2]=F[e+8>>2];break b}ra(b,F[e>>2],F[e+4>>2]);if(D[e+11|0]>=0){break b}ja(F[e>>2]);break b}f=d+F[b>>2]|0;d=G[f|0]|G[f+1|0]<<8|(G[f+2|0]<<16|G[f+3|0]<<24);D[c|0]=d;D[c+1|0]=d>>>8;D[c+2|0]=d>>>16;D[c+3|0]=d>>>24;D[c+4|0]=G[f+4|0];d=F[b+20>>2];f=F[b+16>>2]+5|0;d=f>>>0<5?d+1|0:d;F[b+16>>2]=f;F[b+20>>2]=d;if(sa(c,1250,5)){d=ka(32);D[d+17|0]=0;D[d+16|0]=G[1494];c=G[1490]|G[1491]<<8|(G[1492]<<16|G[1493]<<24);b=G[1486]|G[1487]<<8|(G[1488]<<16|G[1489]<<24);D[d+8|0]=b;D[d+9|0]=b>>>8;D[d+10|0]=b>>>16;D[d+11|0]=b>>>24;D[d+12|0]=c;D[d+13|0]=c>>>8;D[d+14|0]=c>>>16;D[d+15|0]=c>>>24;c=G[1482]|G[1483]<<8|(G[1484]<<16|G[1485]<<24);b=G[1478]|G[1479]<<8|(G[1480]<<16|G[1481]<<24);D[d|0]=b;D[d+1|0]=b>>>8;D[d+2|0]=b>>>16;D[d+3|0]=b>>>24;D[d+4|0]=c;D[d+5|0]=c>>>8;D[d+6|0]=c>>>16;D[d+7|0]=c>>>24;F[a>>2]=-1;ra(a+4|0,d,17);ja(d);break b}g=F[b+12>>2];if((g|0)<=(d|0)&I[b+8>>2]<=f>>>0|(d|0)>(g|0)){d=ya(e+16|0);if(d>>>0>=2147483632){break a}e:{f:{if(d>>>0>=11){b=(d|15)+1|0;c=ka(b);F[e+8>>2]=b|-2147483648;F[e>>2]=c;F[e+4>>2]=d;b=c+d|0;break f}D[e+11|0]=d;b=d+e|0;c=e;if(!d){break e}}la(c,e+16|0,d)}D[b|0]=0;F[a>>2]=-2;b=a+4|0;if(D[e+11|0]>=0){a=F[e+4>>2];F[b>>2]=F[e>>2];F[b+4>>2]=a;F[b+8>>2]=F[e+8>>2];break b}ra(b,F[e>>2],F[e+4>>2]);if(D[e+11|0]>=0){break b}ja(F[e>>2]);break b}D[c+5|0]=G[f+F[b>>2]|0];g=F[b+20>>2];d=F[b+16>>2]+1|0;g=d?g:g+1|0;F[b+16>>2]=d;F[b+20>>2]=g;f=F[b+12>>2];if((f|0)<=(g|0)&I[b+8>>2]<=d>>>0|(g|0)>(f|0)){d=ya(e+16|0);if(d>>>0>=2147483632){break a}g:{h:{if(d>>>0>=11){b=(d|15)+1|0;c=ka(b);F[e+8>>2]=b|-2147483648;F[e>>2]=c;F[e+4>>2]=d;b=c+d|0;break h}D[e+11|0]=d;b=d+e|0;c=e;if(!d){break g}}la(c,e+16|0,d)}D[b|0]=0;F[a>>2]=-2;b=a+4|0;if(D[e+11|0]>=0){a=F[e+4>>2];F[b>>2]=F[e>>2];F[b+4>>2]=a;F[b+8>>2]=F[e+8>>2];break b}ra(b,F[e>>2],F[e+4>>2]);if(D[e+11|0]>=0){break b}ja(F[e>>2]);break b}D[c+6|0]=G[d+F[b>>2]|0];h=F[b+20>>2];d=F[b+16>>2]+1|0;h=d?h:h+1|0;F[b+16>>2]=d;F[b+20>>2]=h;f=F[b+12>>2];if((f|0)<=(h|0)&I[b+8>>2]<=d>>>0|(f|0)<(h|0)){d=ya(e+16|0);if(d>>>0>=2147483632){break a}i:{j:{if(d>>>0>=11){b=(d|15)+1|0;c=ka(b);F[e+8>>2]=b|-2147483648;F[e>>2]=c;F[e+4>>2]=d;b=c+d|0;break j}D[e+11|0]=d;b=d+e|0;c=e;if(!d){break i}}la(c,e+16|0,d)}D[b|0]=0;F[a>>2]=-2;b=a+4|0;if(D[e+11|0]>=0){a=F[e+4>>2];F[b>>2]=F[e>>2];F[b+4>>2]=a;F[b+8>>2]=F[e+8>>2];break b}ra(b,F[e>>2],F[e+4>>2]);if(D[e+11|0]>=0){break b}ja(F[e>>2]);break b}D[c+7|0]=G[d+F[b>>2]|0];g=F[b+20>>2];d=F[b+16>>2]+1|0;g=d?g:g+1|0;F[b+16>>2]=d;F[b+20>>2]=g;f=F[b+12>>2];if((f|0)<=(g|0)&I[b+8>>2]<=d>>>0|(g|0)>(f|0)){c=Eb(e,e+16|0);F[a>>2]=-2;b=a+4|0;if(D[c+11|0]>=0){a=F[c+4>>2];F[b>>2]=F[c>>2];F[b+4>>2]=a;F[b+8>>2]=F[c+8>>2];break b}ra(b,F[c>>2],F[c+4>>2]);if(D[c+11|0]>=0){break b}ja(F[c>>2]);break b}D[c+8|0]=G[d+F[b>>2]|0];d=F[b+20>>2];g=F[b+16>>2];f=g+1|0;i=f?d:d+1|0;F[b+16>>2]=f;F[b+20>>2]=i;i=F[b+8>>2];h=F[b+12>>2];g=g+3|0;d=g>>>0<3?d+1|0:d;if(g>>>0>i>>>0&(d|0)>=(h|0)|(d|0)>(h|0)){c=Eb(e,e+16|0);F[a>>2]=-2;b=a+4|0;if(D[c+11|0]>=0){a=F[c+4>>2];F[b>>2]=F[c>>2];F[b+4>>2]=a;F[b+8>>2]=F[c+8>>2];break b}ra(b,F[c>>2],F[c+4>>2]);if(D[c+11|0]>=0){break b}ja(F[c>>2]);break b}d=c;c=F[b>>2]+f|0;E[d+10>>1]=G[c|0]|G[c+1|0]<<8;g=F[b+20>>2];c=F[b+16>>2]+2|0;g=c>>>0<2?g+1|0:g;F[b+16>>2]=c;F[b+20>>2]=g;F[a+8>>2]=0;F[a+12>>2]=0;F[a>>2]=0;F[a+4>>2]=0}Z=e+48|0;return}za();v()}function Mb(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0;e=Z-96|0;Z=e;f=F[a+16>>2];D[e+92|0]=1;F[e+88>>2]=b;F[e+84>>2]=b;F[e+80>>2]=f;j=F[a+20>>2];d=F[j>>2];a:{b:{f=F[F[f+28>>2]+(b<<2)>>2];if(f>>>0>2]-d>>2>>>0){d=F[F[a+8>>2]+(F[d+(f<<2)>>2]<<2)>>2];f=F[a+4>>2];if(!G[f+84|0]){d=F[F[f+68>>2]+(d<<2)>>2]}F[e+72>>2]=0;F[e+76>>2]=0;j=e- -64|0;F[j>>2]=0;F[j+4>>2]=0;F[e+56>>2]=0;F[e+60>>2]=0;Ga(f,d,D[f+24|0],e+56|0);if((b|0)!=-1){f=b+1|0;j=(f>>>0)%3|0?f:b-2|0;m=((b>>>0)%3|0?-1:2)+b|0;while(1){d=j;f=m;c:{if(!F[a+28>>2]){break c}f=b+1|0;d=(f>>>0)%3|0?f:b-2|0;f=b-1|0;if((b>>>0)%3|0){break c}f=b+2|0}n=F[a+20>>2];b=F[n>>2];d=F[F[F[a+16>>2]+28>>2]+(d<<2)>>2];if(d>>>0>=F[n+4>>2]-b>>2>>>0){break b}d=F[F[a+8>>2]+(F[b+(d<<2)>>2]<<2)>>2];b=F[a+4>>2];if(!G[b+84|0]){d=F[F[b+68>>2]+(d<<2)>>2]}F[e+48>>2]=0;F[e+52>>2]=0;F[e+40>>2]=0;F[e+44>>2]=0;F[e+32>>2]=0;F[e+36>>2]=0;Ga(b,d,D[b+24|0],e+32|0);d=F[a+20>>2];b=F[d>>2];f=F[F[F[a+16>>2]+28>>2]+(f<<2)>>2];if(f>>>0>=F[d+4>>2]-b>>2>>>0){break a}d=F[F[a+8>>2]+(F[b+(f<<2)>>2]<<2)>>2];b=F[a+4>>2];if(!G[b+84|0]){d=F[F[b+68>>2]+(d<<2)>>2]}F[e+24>>2]=0;F[e+28>>2]=0;F[e+16>>2]=0;F[e+20>>2]=0;F[e+8>>2]=0;F[e+12>>2]=0;Ga(b,d,D[b+24|0],e+8|0);g=F[e+8>>2];b=F[e+56>>2];d=g-b|0;p=F[e+60>>2];t=F[e+12>>2]-(p+(b>>>0>g>>>0)|0)|0;h=F[e+40>>2];f=F[e+64>>2];n=h-f|0;u=F[e+68>>2];y=F[e+44>>2]-(u+(f>>>0>h>>>0)|0)|0;g=ki(d,t,n,y);w=o-g|0;x=i-(_+(g>>>0>o>>>0)|0)|0;i=w;h=F[e+16>>2];g=h-f|0;u=F[e+20>>2]-((f>>>0>h>>>0)+u|0)|0;k=F[e+32>>2];h=k-b|0;w=F[e+36>>2]-((b>>>0>k>>>0)+p|0)|0;b=ki(g,u,h,w);o=i+b|0;i=_+x|0;i=b>>>0>o>>>0?i+1|0:i;b=l;l=d;p=t;k=F[e+48>>2];f=F[e+72>>2];d=k-f|0;t=F[e+76>>2];x=F[e+52>>2]-(t+(f>>>0>k>>>0)|0)|0;l=ki(l,p,d,x);k=b+l|0;b=_+q|0;b=k>>>0>>0?b+1|0:b;l=F[e+24>>2];p=l-f|0;f=F[e+28>>2]-((f>>>0>l>>>0)+t|0)|0;q=ki(p,f,h,w);l=k-q|0;q=b-(_+(k>>>0>>0)|0)|0;b=ki(g,u,d,x);d=r-b|0;b=s-(_+(b>>>0>r>>>0)|0)|0;s=ki(p,f,n,y);r=s+d|0;b=_+b|0;s=r>>>0>>0?b+1|0:b;b=F[e+88>>2];f=F[e+80>>2];d:{if(G[e+92|0]){e:{f:{g:{h:{if((b|0)==-1){break h}d=b+1|0;b=(d>>>0)%3|0?d:b-2|0;if((b|0)==-1|F[F[f>>2]+(b>>>3&536870908)>>2]>>>b&1){break h}b=F[F[F[f+64>>2]+12>>2]+(b<<2)>>2];if((b|0)!=-1){break g}}F[e+88>>2]=-1;break f}d=b+1|0;b=(d>>>0)%3|0?d:b-2|0;F[e+88>>2]=b;if((b|0)!=-1){break e}}b=F[e+84>>2];d=-1;i:{if((b|0)==-1){break i}j:{if((b>>>0)%3|0){b=b-1|0;break j}b=b+2|0;d=-1;if((b|0)==-1){break i}}d=-1;if(F[F[f>>2]+(b>>>3&536870908)>>2]>>>b&1){break i}b=F[F[F[f+64>>2]+12>>2]+(b<<2)>>2];d=-1;if((b|0)==-1){break i}d=b-1|0;if((b>>>0)%3|0){break i}d=b+2|0}D[e+92|0]=0;F[e+88>>2]=d;break d}if((b|0)!=F[e+84>>2]){break d}F[e+88>>2]=-1;break d}d=-1;k:{if((b|0)==-1){break k}l:{if((b>>>0)%3|0){b=b-1|0;break l}b=b+2|0;d=-1;if((b|0)==-1){break k}}d=-1;if(F[F[f>>2]+(b>>>3&536870908)>>2]>>>b&1){break k}b=F[F[F[f+64>>2]+12>>2]+(b<<2)>>2];d=-1;if((b|0)==-1){break k}d=b-1|0;if((b>>>0)%3|0){break k}d=b+2|0}F[e+88>>2]=d}b=F[e+88>>2];if((b|0)!=-1){continue}break}}b=s>>31;f=b^r;d=f-b|0;b=(b^s)-((b>>>0>f>>>0)+b|0)|0;m=-1;f=2147483647;g=q>>31;h=g^l;j=h-g|0;n=(g^q)-((h>>>0>>0)+g|0)|0;h=n;k=j^-1;g=h^2147483647;n=i;m:{n:{if(!F[a+28>>2]){if((b|0)==(g|0)&d>>>0>k>>>0|b>>>0>g>>>0){break m}b=b+h|0;a=d+j|0;b=a>>>0>>0?b+1|0:b;f=a;g=i;a=g>>31;d=a;m=d^o;a=m-d|0;i=a;d=(d^g)-((d>>>0>m>>>0)+d|0)|0;a=a+f|0;d=d^2147483647;i=(d|0)==(b|0)&(i^-1)>>>0>>0|b>>>0>d>>>0;a=i?-1:a;if(!(i&0)&(a|0)<=536870912|(a|0)<536870912){break m}b=0;a=a>>>29|0;break n}o:{if((b|0)==(g|0)&d>>>0>k>>>0|b>>>0>g>>>0){break o}b=b+h|0;a=d+j|0;b=a>>>0>>0?b+1|0:b;k=i;d=i>>31;h=d^o;i=h-d|0;j=(d^k)-((d>>>0>h>>>0)+d|0)|0;g=j^2147483647;d=a;a=i;if((g|0)==(b|0)&d>>>0>(a^-1)>>>0|b>>>0>g>>>0){break o}b=b+j|0;m=a+d|0;b=m>>>0>>0?b+1|0:b;f=b;if(!b&m>>>0<536870913){break m}}b=f>>>29|0;a=(f&536870911)<<3|m>>>29}o=li(o,n,a,b);l=li(l,q,a,b);r=li(r,s,a,b)}F[c+8>>2]=o;F[c+4>>2]=l;F[c>>2]=r;Z=e+96|0;return}ta();v()}ta();v()}ta();v()}function te(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;g=Z-16|0;Z=g;f=1;m=$[F[F[a>>2]+24>>2]](a)|0;a:{if((m|0)<=0){break a}r=a+48|0;f=0;while(1){b:{c:{if(!F[($[F[F[a>>2]+28>>2]](a)|0)+40>>2]){break c}o=l<<2;d=F[o+F[a+36>>2]>>2];c=F[d+8>>2];e=bb(d);if(!e){break c}h=F[($[F[F[a>>2]+28>>2]](a)|0)+40>>2];F[g+12>>2]=F[c+56>>2];d=ka(32);F[g>>2]=d;F[g+4>>2]=24;F[g+8>>2]=-2147483616;c=G[1196]|G[1197]<<8|(G[1198]<<16|G[1199]<<24);b=G[1192]|G[1193]<<8|(G[1194]<<16|G[1195]<<24);D[d+16|0]=b;D[d+17|0]=b>>>8;D[d+18|0]=b>>>16;D[d+19|0]=b>>>24;D[d+20|0]=c;D[d+21|0]=c>>>8;D[d+22|0]=c>>>16;D[d+23|0]=c>>>24;c=G[1188]|G[1189]<<8|(G[1190]<<16|G[1191]<<24);b=G[1184]|G[1185]<<8|(G[1186]<<16|G[1187]<<24);D[d+8|0]=b;D[d+9|0]=b>>>8;D[d+10|0]=b>>>16;D[d+11|0]=b>>>24;D[d+12|0]=c;D[d+13|0]=c>>>8;D[d+14|0]=c>>>16;D[d+15|0]=c>>>24;c=G[1180]|G[1181]<<8|(G[1182]<<16|G[1183]<<24);b=G[1176]|G[1177]<<8|(G[1178]<<16|G[1179]<<24);D[d|0]=b;D[d+1|0]=b>>>8;D[d+2|0]=b>>>16;D[d+3|0]=b>>>24;D[d+4|0]=c;D[d+5|0]=c>>>8;D[d+6|0]=c>>>16;D[d+7|0]=c>>>24;D[d+24|0]=0;c=h+16|0;b=F[c>>2];d:{e:{if(!b){break e}i=F[g+12>>2];d=c;while(1){k=(i|0)>F[b+16>>2];d=k?d:b;b=F[(k?b+4|0:b)>>2];if(b){continue}break}if((c|0)==(d|0)|(i|0)>2]){break e}b=F[d+24>>2];if(!b){break e}i=d+20|0;d=G[g+11|0];c=d<<24>>24<0;k=c?F[g>>2]:g;d=c?F[g+4>>2]:d;while(1){c=G[b+27|0];j=c<<24>>24<0;c=j?F[b+20>>2]:c;p=c>>>0>>0;f:{g:{h:{i:{j:{k:{n=p?c:d;if(n){j=j?F[b+16>>2]:b+16|0;q=sa(k,j,n);if(q){break k}if(c>>>0<=d>>>0){break j}break f}if(c>>>0<=d>>>0){break i}break f}if((q|0)<0){break f}}c=sa(j,k,n);if(c){break h}}if(p){break g}d=gc(i,g);break d}if((c|0)<0){break g}d=gc(i,g);break d}b=b+4|0}b=F[b>>2];if(b){continue}break}}d=gc(h,g)}if(D[g+11|0]<0){ja(F[g>>2])}if(!d){break c}d=0;c=F[F[o+F[a+36>>2]>>2]+8>>2];if(!F[c+64>>2]){b=ka(32);F[b+16>>2]=0;F[b+20>>2]=0;F[b+8>>2]=0;F[b>>2]=0;F[b+4>>2]=0;F[b+24>>2]=0;F[b+28>>2]=0;f=F[c+64>>2];F[c+64>>2]=b;if(f){b=F[f>>2];if(b){F[f+4>>2]=b;ja(b)}ja(f);b=F[c+64>>2]}F[c>>2]=b;f=F[b+20>>2];F[c+8>>2]=F[b+16>>2];F[c+12>>2]=f;f=F[b+24>>2];b=F[b+28>>2];F[c+48>>2]=0;F[c+52>>2]=0;F[c+40>>2]=0;F[c+44>>2]=0;F[c+16>>2]=f;F[c+20>>2]=b}l:{D[c+24|0]=G[e+24|0];F[c+28>>2]=F[e+28>>2];D[c+32|0]=G[e+32|0];b=F[e+44>>2];F[c+40>>2]=F[e+40>>2];F[c+44>>2]=b;b=F[e+52>>2];F[c+48>>2]=F[e+48>>2];F[c+52>>2]=b;F[c+56>>2]=F[e+56>>2];b=F[e+12>>2];F[c+8>>2]=F[e+8>>2];F[c+12>>2]=b;b=F[e+20>>2];F[c+16>>2]=F[e+16>>2];F[c+20>>2]=b;F[c+60>>2]=F[e+60>>2];f=F[e>>2];m:{if(!f){F[c>>2]=0;b=1;break m}h=F[c>>2];b=0;if(!h){break m}b=F[f>>2];f=F[f+4>>2]-b|0;md(h,b,f,0);b=1}if(!b){break l}D[c+84|0]=G[e+84|0];F[c+80>>2]=F[e+80>>2];if((c|0)!=(e|0)){gb(c+68|0,F[e+68>>2],F[e+72>>2])}n:{h=F[e+88>>2];o:{if(h){f=ka(40);e=F[h>>2];F[f+16>>2]=0;F[f+8>>2]=0;F[f+12>>2]=0;F[f>>2]=e;e=F[h+12>>2];b=F[h+8>>2];if((e|0)!=(b|0)){b=e-b|0;if((b|0)<0){break n}e=ka(b);F[f+12>>2]=e;F[f+8>>2]=e;F[f+16>>2]=b+e;b=F[h+8>>2];i=F[h+12>>2];p:{if((b|0)==(i|0)){break p}k=i+(b^-1)|0;j=i-b&7;if(j){while(1){D[e|0]=G[b|0];e=e+1|0;b=b+1|0;d=d+1|0;if((j|0)!=(d|0)){continue}break}}if(k>>>0<7){break p}while(1){D[e|0]=G[b|0];D[e+1|0]=G[b+1|0];D[e+2|0]=G[b+2|0];D[e+3|0]=G[b+3|0];D[e+4|0]=G[b+4|0];D[e+5|0]=G[b+5|0];D[e+6|0]=G[b+6|0];D[e+7|0]=G[b+7|0];e=e+8|0;b=b+8|0;if((i|0)!=(b|0)){continue}break}}F[f+12>>2]=e}d=F[h+36>>2];F[f+32>>2]=F[h+32>>2];F[f+36>>2]=d;d=F[h+28>>2];F[f+24>>2]=F[h+24>>2];F[f+28>>2]=d;e=F[c+88>>2];F[c+88>>2]=f;if(e){break o}break l}e=F[c+88>>2];F[c+88>>2]=0;if(!e){break l}}d=F[e+8>>2];if(d){F[e+12>>2]=d;ja(d)}ja(e);break l}na();v()}break b}d=F[F[a+36>>2]+(l<<2)>>2];if(!($[F[F[d>>2]+24>>2]](d,r)|0)){break a}}l=l+1|0;f=(m|0)<=(l|0);if((l|0)!=(m|0)){continue}break}}Z=g+16|0;return f|0}function Jg(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;f=Z-32|0;Z=f;a:{if(!hb(1,f+28|0,F[a+32>>2])){break a}if(!hb(1,f+24|0,F[a+32>>2])){break a}l=F[f+28>>2];if(l>>>0>1431655765){break a}d=F[a+32>>2];c=d;i=F[c+8>>2];b=F[c+16>>2];h=F[c+12>>2];c=F[c+20>>2];g=li(i-b|0,h-(c+(b>>>0>i>>>0)|0)|0,3,0);if(!_&g>>>0>>0){break a}n=F[f+24>>2];g=ki(l,0,3,0);if(!_&g>>>0>>0|((c|0)>=(h|0)&b>>>0>=i>>>0|(c|0)>(h|0))){break a}i=G[b+F[d>>2]|0];b=b+1|0;c=b?c:c+1|0;F[d+16>>2]=b;F[d+20>>2]=c;b:{c:{if(!i){d=0;c=Z-32|0;Z=c;F[c+24>>2]=0;F[c+16>>2]=0;F[c+20>>2]=0;d:{e:{b=L(l,3);if(b){if(b>>>0>=1073741824){break e}i=L(l,12);d=ka(i);ma(d,0,i)}b=mc(b,1,F[a+32>>2],d);f:{g:{if(!(!l|!b)){i=0;while(1){h:{g=e;b=(i<<2)+d|0;h=F[b>>2];e=h>>>1|0;h=g+(h&1?0-e|0:e)|0;if((h|0)<0){break h}F[c>>2]=h;e=F[b+4>>2];g=e>>>1|0;h=h+(e&1?0-g|0:g)|0;if((h|0)<0){break h}F[c+4>>2]=h;b=F[b+8>>2];e=b>>>1|0;e=h+(b&1?0-e|0:e)|0;if((e|0)<0){break h}F[c+8>>2]=e;mb(F[a+44>>2]+96|0,c);i=i+3|0;b=1;j=j+1|0;if((j|0)!=(l|0)){continue}break g}break}b=0;break g}if(!d){break f}}ja(d)}Z=c+32|0;break d}na();v()}if(b){break c}break a}if(n>>>0<=255){if(!l){break c}while(1){i:{F[f+16>>2]=0;F[f+8>>2]=0;F[f+12>>2]=0;d=F[a+32>>2];b=d;i=F[b+16>>2];e=F[b+8>>2];c=F[b+20>>2];g=F[b+12>>2];b=g;if(e>>>0<=i>>>0&(c|0)>=(b|0)|(b|0)<(c|0)){break i}j=F[d>>2];m=G[j+i|0];b=c;h=i+1|0;b=h?b:b+1|0;F[d+16>>2]=h;F[d+20>>2]=b;F[f+8>>2]=m;m=e>>>0>>0&(c|0)>=(g|0)|(c|0)>(g|0);e=m?i:e;g=m?c:g;if((e|0)==(h|0)&(g|0)==(b|0)){break i}m=G[h+j|0];b=c;h=i+2|0;b=h>>>0<2?b+1|0:b;F[d+16>>2]=h;F[d+20>>2]=b;F[f+12>>2]=m;if((e|0)==(h|0)&(b|0)==(g|0)){break i}h=G[h+j|0];b=c;c=i+3|0;b=c>>>0<3?b+1|0:b;F[d+16>>2]=c;F[d+20>>2]=b;F[f+16>>2]=h;mb(F[a+44>>2]+96|0,f+8|0);k=k+1|0;if((l|0)!=(k|0)){continue}break c}break}k=0;break a}if(n>>>0<=65535){if(!l){break c}while(1){j:{F[f+16>>2]=0;F[f+8>>2]=0;F[f+12>>2]=0;j=F[a+32>>2];b=j;c=F[b+8>>2];d=F[b+12>>2];h=F[b+16>>2];b=F[b+20>>2];i=b;e=h+2|0;b=e>>>0<2?b+1|0:b;if(c>>>0>>0&(b|0)>=(d|0)|(b|0)>(d|0)){break j}m=F[j>>2];g=m+h|0;g=G[g|0]|G[g+1|0]<<8;F[j+16>>2]=e;F[j+20>>2]=b;F[f+8>>2]=g;b=i;g=h+4|0;b=g>>>0<4?b+1|0:b;if(c>>>0>>0&(b|0)>=(d|0)|(b|0)>(d|0)){break j}e=e+m|0;e=G[e|0]|G[e+1|0]<<8;F[j+16>>2]=g;F[j+20>>2]=b;F[f+12>>2]=e;e=c;b=i;c=h+6|0;b=c>>>0<6?b+1|0:b;if(c>>>0>e>>>0&(b|0)>=(d|0)|(b|0)>(d|0)){break j}d=g+m|0;d=G[d|0]|G[d+1|0]<<8;F[j+16>>2]=c;F[j+20>>2]=b;F[f+16>>2]=d;mb(F[a+44>>2]+96|0,f+8|0);k=k+1|0;if((l|0)!=(k|0)){continue}break c}break}k=0;break a}k:{if(n>>>0>2097151){break k}b=H[a+36>>1];if(((b<<8|b>>>8)&65535)>>>0<514){break k}if(!l){break c}while(1){l:{F[f+16>>2]=0;F[f+8>>2]=0;F[f+12>>2]=0;if(!hb(1,f+4|0,F[a+32>>2])){break l}F[f+8>>2]=F[f+4>>2];if(!hb(1,f+4|0,F[a+32>>2])){break l}F[f+12>>2]=F[f+4>>2];if(!hb(1,f+4|0,F[a+32>>2])){break l}F[f+16>>2]=F[f+4>>2];mb(F[a+44>>2]+96|0,f+8|0);k=k+1|0;if((l|0)!=(k|0)){continue}break c}break}k=0;break a}if(!l){break c}while(1){F[f+16>>2]=0;F[f+8>>2]=0;F[f+12>>2]=0;j=F[a+32>>2];b=j;c=F[b+8>>2];d=F[b+12>>2];h=F[b+16>>2];b=F[b+20>>2];i=b;e=h+4|0;b=e>>>0<4?b+1|0:b;if(c>>>0>>0&(b|0)>=(d|0)|(b|0)>(d|0)){break b}m=F[j>>2];g=m+h|0;g=G[g|0]|G[g+1|0]<<8|(G[g+2|0]<<16|G[g+3|0]<<24);F[j+16>>2]=e;F[j+20>>2]=b;F[f+8>>2]=g;b=i;g=h+8|0;b=g>>>0<8?b+1|0:b;if(c>>>0>>0&(b|0)>=(d|0)|(b|0)>(d|0)){break b}e=e+m|0;e=G[e|0]|G[e+1|0]<<8|(G[e+2|0]<<16|G[e+3|0]<<24);F[j+16>>2]=g;F[j+20>>2]=b;F[f+12>>2]=e;e=c;b=i;c=h+12|0;b=c>>>0<12?b+1|0:b;if(c>>>0>e>>>0&(b|0)>=(d|0)|(b|0)>(d|0)){break b}d=g+m|0;d=G[d|0]|G[d+1|0]<<8|(G[d+2|0]<<16|G[d+3|0]<<24);F[j+16>>2]=c;F[j+20>>2]=b;F[f+16>>2]=d;mb(F[a+44>>2]+96|0,f+8|0);k=k+1|0;if((l|0)!=(k|0)){continue}break}}F[F[a+4>>2]+80>>2]=n;k=1;break a}k=0}Z=f+32|0;return k|0}function Ld(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;g=Z+-64|0;Z=g;F[g+56>>2]=0;F[g+48>>2]=0;F[g+52>>2]=0;F[g+40>>2]=0;F[g+44>>2]=0;F[g+32>>2]=0;F[g+36>>2]=0;F[g+24>>2]=0;F[g+28>>2]=0;F[g+16>>2]=0;F[g+20>>2]=0;F[g+8>>2]=0;F[g+12>>2]=0;h=g+8|0;a:{b:{if(!H[b+38>>1]){break b}if(!Ta(1,h+12|0,b)){break b}e=F[b+8>>2];f=F[b+16>>2];j=e-f|0;k=F[h+12>>2];e=F[b+12>>2]-(F[b+20>>2]+(e>>>0>>0)|0)|0;if(j>>>0>>6>>>0&(e|0)<=0|(e|0)<0){break b}e=F[h>>2];d=F[h+4>>2]-e>>2;c:{if(d>>>0>>0){qa(h,k-d|0);k=F[h+12>>2];break c}if(d>>>0<=k>>>0){break c}F[h+4>>2]=e+(k<<2)}i=1;if(!k){break a}e=F[b+16>>2];d=F[b+20>>2];r=F[h>>2];l=F[b+8>>2];o=F[b+12>>2];j=0;while(1){i=0;if((d|0)>=(o|0)&e>>>0>=l>>>0|(d|0)>(o|0)){break a}i=F[b>>2];p=G[i+e|0];e=e+1|0;d=e?d:d+1|0;F[b+16>>2]=e;F[b+20>>2]=d;f=p>>>2|0;m=0;d:{e:{f:{g:{s=p&3;switch(s|0){case 3:break g;case 0:break e;default:break f}}f=f+j|0;i=0;if(f>>>0>=k>>>0){break a}ma(r+(j<<2)|0,0,(p&252)+4|0);j=f;break d}while(1){if((e|0)==(l|0)&(d|0)==(o|0)){break b}k=G[e+i|0];e=e+1|0;d=e?d:d+1|0;F[b+16>>2]=e;F[b+20>>2]=d;f=k<<(m<<3|6)|f;m=m+1|0;if((s|0)!=(m|0)){continue}break}}F[r+(j<<2)>>2]=f}j=j+1|0;k=F[h+12>>2];if(j>>>0>>0){continue}break}d=h+16|0;o=F[h>>2];f=F[h+16>>2];e=F[h+20>>2]-f|0;h:{if(e>>>0<=4194303){qa(d,1048576-(e>>>2|0)|0);break h}if((e|0)==4194304){break h}F[h+20>>2]=f+4194304}e=h+28|0;j=F[e>>2];f=F[h+32>>2]-j>>3;i:{if(f>>>0>>0){_a(e,k-f|0);j=F[e>>2];break i}if(f>>>0>k>>>0){F[h+32>>2]=(k<<3)+j}if(!k){break b}}l=F[d>>2];d=0;i=0;while(1){e=o+(d<<2)|0;h=F[e>>2];m=(d<<3)+j|0;f=i;F[m+4>>2]=f;F[m>>2]=h;e=F[e>>2];i=e+f|0;if(i>>>0>1048576){break b}j:{if(f>>>0>=i>>>0){break j}m=0;h=e&7;if(h){while(1){F[l+(f<<2)>>2]=d;f=f+1|0;m=m+1|0;if((h|0)!=(m|0)){continue}break}}if(e-1>>>0<=6){break j}while(1){e=l+(f<<2)|0;F[e>>2]=d;F[e+28>>2]=d;F[e+24>>2]=d;F[e+20>>2]=d;F[e+16>>2]=d;F[e+12>>2]=d;F[e+8>>2]=d;F[e+4>>2]=d;f=f+8|0;if((i|0)!=(f|0)){continue}break}}d=d+1|0;if((k|0)!=(d|0)){continue}break}n=(i|0)==1048576}i=n}k:{if(!i|(F[g+20>>2]?0:a)){break k}i=0;j=Z-16|0;Z=j;l:{if(!Sa(1,j+8|0,b)){break l}d=F[b+8>>2];f=F[b+16>>2];l=d-f|0;n=F[j+12>>2];h=F[b+20>>2];d=F[b+12>>2]-(h+(d>>>0>>0)|0)|0;e=F[j+8>>2];if((n|0)==(d|0)&e>>>0>l>>>0|d>>>0>>0){break l}d=h+n|0;l=e+f|0;d=l>>>0>>0?d+1|0:d;F[b+16>>2]=l;F[b+20>>2]=d;if((e|0)<=0){break l}b=f+F[b>>2]|0;F[g+48>>2]=b;d=e-1|0;f=d+b|0;l=G[f|0];m:{if(l>>>0<=63){F[g+52>>2]=d;b=G[f|0]&63;break m}n:{switch((l>>>6|0)-1|0){case 0:if(e>>>0<2){break l}d=e-2|0;F[g+52>>2]=d;b=b+d|0;b=G[b+1|0]<<8&16128|G[b|0];break m;case 1:if(e>>>0<3){break l}d=e-3|0;F[g+52>>2]=d;b=b+d|0;b=G[b+1|0]<<8|G[b+2|0]<<16&4128768|G[b|0];break m;default:break n}}d=e-4|0;F[g+52>>2]=d;b=b+d|0;b=(G[b|0]|G[b+1|0]<<8|(G[b+2|0]<<16|G[b+3|0]<<24))&1073741823}F[g+56>>2]=b+4194304;i=b>>>0<1069547520}Z=j+16|0;if(!i){break k}if(!a){t=1;break k}b=F[g+52>>2];f=F[g+56>>2];d=F[g+36>>2];e=F[g+48>>2];j=F[g+24>>2];while(1){o:{if(f>>>0>4194303){break o}while(1){if((b|0)<=0){break o}b=b-1|0;F[g+52>>2]=b;f=G[b+e|0]|f<<8;F[g+56>>2]=f;if(f>>>0<4194304){continue}break}}i=f&1048575;l=F[j+(i<<2)>>2];n=d+(l<<3)|0;f=(L(F[n>>2],f>>>20|0)+i|0)-F[n+4>>2]|0;F[g+56>>2]=f;F[(q<<2)+c>>2]=l;t=1;q=q+1|0;if((q|0)!=(a|0)){continue}break}}a=F[g+36>>2];if(a){F[g+40>>2]=a;ja(a)}a=F[g+24>>2];if(a){F[g+28>>2]=a;ja(a)}a=F[g+8>>2];if(a){F[g+12>>2]=a;ja(a)}Z=g- -64|0;return t}function kh(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=M(0),f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=M(0),p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;if(F[c>>2]==F[c+4>>2]){m=F[d+80>>2];u=Z-16|0;Z=u;g=F[a+4>>2];k=G[b+24|0];h=F[d+48>>2];n=F[F[d>>2]>>2];c=u+8|0;F[c>>2]=1065353216;d=c;J[c>>2]=M(-1<>2];c=ka(k<<2);a:{if(!m|!k){break a}p=h+n|0;o=J[d>>2];n=F[a+8>>2];v=F[b>>2];d=F[b+48>>2];g=F[b+40>>2];w=F[b+44>>2];if(!G[b+84|0]){f=F[b+68>>2];s=k&254;t=k&1;a=0;while(1){b=F[v>>2];l=ki(g,w,F[f+(i<<2)>>2],0)+d|0;h=la(c,b+l|0,g);b=0;q=0;if((k|0)!=1){while(1){l=p+(a<<2)|0;j=b<<2;e=M(R(M(M(o*M(J[j+h>>2]-J[n+j>>2]))+M(.5))));b:{if(M(N(e))>2]=r;j=j|4;e=M(R(M(M(o*M(J[j+h>>2]-J[n+j>>2]))+M(.5))));c:{if(M(N(e))>2]=j;b=b+2|0;a=a+2|0;q=q+2|0;if((s|0)!=(q|0)){continue}break}}if(t){l=p+(a<<2)|0;b=b<<2;e=M(R(M(M(o*M(J[b+h>>2]-J[b+n>>2]))+M(.5))));d:{if(M(N(e))>2]=b;a=a+1|0}i=i+1|0;if((m|0)!=(i|0)){continue}break}break a}s=k&254;t=k&1;a=0;while(1){b=F[v>>2];h=ki(g,w,i,l)+d|0;j=la(c,b+h|0,g);b=0;q=0;if((k|0)!=1){while(1){h=p+(a<<2)|0;f=b<<2;e=M(R(M(M(o*M(J[f+j>>2]-J[f+n>>2]))+M(.5))));e:{if(M(N(e))>2]=r;f=f|4;e=M(R(M(M(o*M(J[f+j>>2]-J[f+n>>2]))+M(.5))));f:{if(M(N(e))>2]=f;b=b+2|0;a=a+2|0;q=q+2|0;if((s|0)!=(q|0)){continue}break}}if(t){h=p+(a<<2)|0;b=b<<2;e=M(R(M(M(o*M(J[b+j>>2]-J[b+n>>2]))+M(.5))));g:{if(M(N(e))>2]=b;a=a+1|0}b=l;i=i+1|0;b=i?b:b+1|0;l=b;if((i|0)!=(m|0)|b){continue}break}}ja(c);Z=u+16|0;return 1}j=Z-16|0;Z=j;m=F[a+4>>2];i=G[b+24|0];g=F[d+48>>2];h=F[F[d>>2]>>2];d=j+8|0;F[d>>2]=1065353216;l=d;J[d>>2]=M(-1<>2];d=ka(i<<2);m=F[c+4>>2];q=F[c>>2];h:{if(!i|(m|0)==(q|0)){break h}n=h+g|0;c=m-q>>2;u=c>>>0<=1?1:c;o=J[l>>2];h=F[a+8>>2];v=F[b>>2];l=F[b+48>>2];m=F[b+40>>2];w=F[b+44>>2];if(G[b+84|0]){s=i&254;t=i&1;a=0;c=0;while(1){b=F[v>>2];g=ki(m,w,F[q+(c<<2)>>2],0)+l|0;p=la(d,b+g|0,m);b=0;k=0;if((i|0)!=1){while(1){g=n+(a<<2)|0;f=b<<2;e=M(R(M(M(o*M(J[f+p>>2]-J[h+f>>2]))+M(.5))));i:{if(M(N(e))>2]=r;f=f|4;e=M(R(M(M(o*M(J[f+p>>2]-J[h+f>>2]))+M(.5))));j:{if(M(N(e))>2]=f;b=b+2|0;a=a+2|0;k=k+2|0;if((s|0)!=(k|0)){continue}break}}if(t){g=n+(a<<2)|0;b=b<<2;e=M(R(M(M(o*M(J[b+p>>2]-J[b+h>>2]))+M(.5))));k:{if(M(N(e))>2]=b;a=a+1|0}c=c+1|0;if((u|0)!=(c|0)){continue}break}break h}s=F[b+68>>2];t=i&254;x=i&1;a=0;c=0;while(1){b=F[v>>2];g=ki(m,w,F[s+(F[q+(c<<2)>>2]<<2)>>2],0)+l|0;p=la(d,b+g|0,m);b=0;k=0;if((i|0)!=1){while(1){g=n+(a<<2)|0;f=b<<2;e=M(R(M(M(o*M(J[f+p>>2]-J[h+f>>2]))+M(.5))));l:{if(M(N(e))>2]=r;f=f|4;e=M(R(M(M(o*M(J[f+p>>2]-J[h+f>>2]))+M(.5))));m:{if(M(N(e))>2]=f;b=b+2|0;a=a+2|0;k=k+2|0;if((t|0)!=(k|0)){continue}break}}if(x){g=n+(a<<2)|0;b=b<<2;e=M(R(M(M(o*M(J[b+p>>2]-J[b+h>>2]))+M(.5))));n:{if(M(N(e))>2]=b;a=a+1|0}c=c+1|0;if((u|0)!=(c|0)){continue}break}}ja(d);Z=j+16|0;return 1} function Cd(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;c=F[a+4>>2];e=F[a>>2];f=(c-e|0)/144|0;if(f>>>0>>0){e=a;b=b-f|0;h=F[a+8>>2];c=F[a+4>>2];a:{if(b>>>0<=(h-c|0)/144>>>0){b:{if(!b){break b}a=c;f=b&7;if(f){while(1){va(a);a=a+144|0;d=d+1|0;if((f|0)!=(d|0)){continue}break}}c=L(b,144)+c|0;if((b-1&268435455)>>>0<7){break b}while(1){va(a);va(a+144|0);va(a+288|0);va(a+432|0);va(a+576|0);va(a+720|0);va(a+864|0);va(a+1008|0);a=a+1152|0;if((c|0)!=(a|0)){continue}break}}F[e+4>>2]=c;break a}c:{d:{e:{a=c;c=F[e>>2];i=(a-c|0)/144|0;a=i+b|0;if(a>>>0<29826162){c=(h-c|0)/144|0;f=c<<1;f=c>>>0>=14913080?29826161:a>>>0>>0?f:a;if(f){if(f>>>0>=29826162){break e}g=ka(L(f,144))}c=L(i,144)+g|0;a=c;h=b&7;if(h){while(1){va(a);a=a+144|0;d=d+1|0;if((h|0)!=(d|0)){continue}break}}h=L(b,144)+c|0;if((b-1&268435455)>>>0>=7){while(1){va(a);va(a+144|0);va(a+288|0);va(a+432|0);va(a+576|0);va(a+720|0);va(a+864|0);va(a+1008|0);a=a+1152|0;if((h|0)!=(a|0)){continue}break}}b=L(f,144)+g|0;d=F[e+4>>2];f=F[e>>2];if((d|0)==(f|0)){break d}while(1){c=c-144|0;d=d-144|0;a=d;F[c>>2]=F[a>>2];F[c+4>>2]=F[a+4>>2];F[c+8>>2]=F[a+8>>2];F[c+12>>2]=F[a+12>>2];F[a+12>>2]=0;F[a+4>>2]=0;F[a+8>>2]=0;F[c+16>>2]=F[a+16>>2];F[c+20>>2]=F[a+20>>2];F[c+24>>2]=F[a+24>>2];F[a+24>>2]=0;F[a+16>>2]=0;F[a+20>>2]=0;g=G[a+28|0];F[c+40>>2]=0;F[c+32>>2]=0;F[c+36>>2]=0;D[c+28|0]=g;F[c+32>>2]=F[a+32>>2];F[c+36>>2]=F[a+36>>2];F[c+40>>2]=F[a+40>>2];F[a+40>>2]=0;F[a+32>>2]=0;F[a+36>>2]=0;F[c+52>>2]=0;F[c+44>>2]=0;F[c+48>>2]=0;F[c+44>>2]=F[a+44>>2];F[c+48>>2]=F[a+48>>2];F[c+52>>2]=F[a+52>>2];F[a+52>>2]=0;F[a+44>>2]=0;F[a+48>>2]=0;g=c- -64|0;F[g>>2]=0;F[c+56>>2]=0;F[c+60>>2]=0;F[c+56>>2]=F[a+56>>2];F[c+60>>2]=F[a+60>>2];i=g;g=a- -64|0;F[i>>2]=F[g>>2];F[g>>2]=0;F[a+56>>2]=0;F[a+60>>2]=0;F[c+68>>2]=F[a+68>>2];g=F[a+72>>2];F[c+84>>2]=0;F[c+76>>2]=0;F[c+80>>2]=0;F[c+72>>2]=g;F[c+76>>2]=F[a+76>>2];F[c+80>>2]=F[a+80>>2];F[c+84>>2]=F[a+84>>2];F[a+84>>2]=0;F[a+76>>2]=0;F[a+80>>2]=0;F[c+96>>2]=0;F[c+88>>2]=0;F[c+92>>2]=0;F[c+88>>2]=F[a+88>>2];F[c+92>>2]=F[a+92>>2];F[c+96>>2]=F[a+96>>2];F[a+96>>2]=0;F[a+88>>2]=0;F[a+92>>2]=0;g=G[a+100|0];F[c+112>>2]=0;F[c+104>>2]=0;F[c+108>>2]=0;D[c+100|0]=g;F[c+104>>2]=F[a+104>>2];F[c+108>>2]=F[a+108>>2];F[c+112>>2]=F[a+112>>2];F[a+112>>2]=0;F[a+104>>2]=0;F[a+108>>2]=0;F[c+124>>2]=0;F[c+116>>2]=0;F[c+120>>2]=0;F[c+116>>2]=F[a+116>>2];F[c+120>>2]=F[a+120>>2];F[c+124>>2]=F[a+124>>2];F[a+124>>2]=0;F[a+116>>2]=0;F[a+120>>2]=0;g=F[a+128>>2];F[c+140>>2]=0;F[c+132>>2]=0;F[c+136>>2]=0;F[c+128>>2]=g;F[c+132>>2]=F[a+132>>2];F[c+136>>2]=F[a+136>>2];F[c+140>>2]=F[a+140>>2];F[a+140>>2]=0;F[a+132>>2]=0;F[a+136>>2]=0;if((a|0)!=(f|0)){continue}break}F[e+8>>2]=b;a=F[e+4>>2];F[e+4>>2]=h;d=F[e>>2];F[e>>2]=c;if((a|0)==(d|0)){break c}while(1){b=a-144|0;c=F[b+132>>2];if(c){F[a-8>>2]=c;ja(c)}c=F[a-28>>2];if(c){F[a-24>>2]=c;ja(c)}c=F[a-40>>2];if(c){F[a-36>>2]=c;ja(c)}Gb(a-140|0);a=b;if((d|0)!=(a|0)){continue}break}break c}na();v()}oa();v()}F[e+8>>2]=b;F[e+4>>2]=h;F[e>>2]=c}if(d){ja(d)}}return}if(b>>>0>>0){e=e+L(b,144)|0;if((e|0)!=(c|0)){while(1){b=c-144|0;d=F[b+132>>2];if(d){F[c-8>>2]=d;ja(d)}d=F[c-28>>2];if(d){F[c-24>>2]=d;ja(d)}d=F[c-40>>2];if(d){F[c-36>>2]=d;ja(d)}Gb(c-140|0);c=b;if((e|0)!=(c|0)){continue}break}}F[a+4>>2]=e}}function Yc(a){var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;F[a+56>>2]=F[a+52>>2];F[a+44>>2]=F[a+40>>2];b=F[a+64>>2];c=F[b+24>>2];if((c|0)==F[b+28>>2]){return 1}a:{b:{c:{while(1){g=i;i=F[(k<<2)+c>>2];d:{if((i|0)==-1){i=g;break d}b=F[a+56>>2];e:{if((b|0)!=F[a+60>>2]){F[b>>2]=g;F[a+56>>2]=b+4;break e}d=F[a+52>>2];e=b-d|0;h=e>>2;c=h+1|0;if(c>>>0>=1073741824){break c}f=e>>>1|0;f=e>>>0>=2147483644?1073741823:c>>>0>>0?f:c;if(f){if(f>>>0>=1073741824){break b}e=ka(f<<2)}else{e=0}c=e+(h<<2)|0;F[c>>2]=g;h=c+4|0;if((b|0)!=(d|0)){while(1){c=c-4|0;b=b-4|0;F[c>>2]=F[b>>2];if((b|0)!=(d|0)){continue}break}}F[a+60>>2]=e+(f<<2);F[a+56>>2]=h;F[a+52>>2]=c;if(!d){break e}ja(d)}f:{g:{if(!(F[F[a+12>>2]+(k>>>3&536870908)>>2]>>>k&1)){break g}e=i+1|0;e=(e>>>0)%3|0?e:i-2|0;if((e|0)==-1|F[F[a>>2]+(e>>>3&536870908)>>2]>>>e&1){break g}e=F[F[F[a+64>>2]+12>>2]+(e<<2)>>2];if((e|0)==-1){break g}b=e+1|0;b=(b>>>0)%3|0?b:e-2|0;if((b|0)==-1){break g}c=F[a+64>>2];f=F[a>>2];while(1){e=b;b=-1;d=e+1|0;d=(d>>>0)%3|0?d:e-2|0;h:{if((d|0)==-1|F[f+(d>>>3&536870908)>>2]>>>d&1){break h}d=F[F[c+12>>2]+(d<<2)>>2];if((d|0)==-1){break h}b=d+1|0;b=(b>>>0)%3|0?b:d-2|0}if((b|0)!=(i|0)){if((b|0)==-1){break f}continue}break}return 0}e=i}F[F[a+28>>2]+(e<<2)>>2]=g;b=F[a+44>>2];i:{if((b|0)!=F[a+48>>2]){F[b>>2]=e;F[a+44>>2]=b+4;break i}d=F[a+40>>2];i=b-d|0;h=i>>2;c=h+1|0;if(c>>>0>=1073741824){break a}f=i>>>1|0;f=i>>>0>=2147483644?1073741823:c>>>0>>0?f:c;if(f){if(f>>>0>=1073741824){break b}i=ka(f<<2)}else{i=0}c=i+(h<<2)|0;F[c>>2]=e;h=c+4|0;if((b|0)!=(d|0)){while(1){c=c-4|0;b=b-4|0;F[c>>2]=F[b>>2];if((b|0)!=(d|0)){continue}break}}F[a+48>>2]=i+(f<<2);F[a+44>>2]=h;F[a+40>>2]=c;if(!d){break i}ja(d)}i=g+1|0;b=F[a+64>>2];if((e|0)==-1){break d}j:{if((e>>>0)%3|0){c=e-1|0;break j}c=e+2|0;if((c|0)==-1){break d}}d=F[F[b+12>>2]+(c<<2)>>2];if((d|0)==-1){break d}f=d+((d>>>0)%3|0?-1:2)|0;if((f|0)==-1|(e|0)==(f|0)){break d}while(1){b=f+1|0;b=(b>>>0)%3|0?b:f-2|0;if(F[F[a>>2]+(b>>>3&536870908)>>2]>>>b&1){b=F[a+56>>2];k:{if((b|0)!=F[a+60>>2]){F[b>>2]=i;F[a+56>>2]=b+4;break k}d=F[a+52>>2];g=b-d|0;j=g>>2;c=j+1|0;if(c>>>0>=1073741824){break c}h=g>>>1|0;h=g>>>0>=2147483644?1073741823:c>>>0>>0?h:c;if(h){if(h>>>0>=1073741824){break b}g=ka(h<<2)}else{g=0}c=g+(j<<2)|0;F[c>>2]=i;j=c+4|0;if((b|0)!=(d|0)){while(1){c=c-4|0;b=b-4|0;F[c>>2]=F[b>>2];if((b|0)!=(d|0)){continue}break}}F[a+60>>2]=g+(h<<2);F[a+56>>2]=j;F[a+52>>2]=c;if(!d){break k}ja(d)}d=i+1|0;b=F[a+44>>2];l:{if((b|0)!=F[a+48>>2]){F[b>>2]=f;F[a+44>>2]=b+4;break l}h=F[a+40>>2];g=b-h|0;l=g>>2;c=l+1|0;if(c>>>0>=1073741824){break a}j=g>>>1|0;j=g>>>0>=2147483644?1073741823:c>>>0>>0?j:c;if(j){if(j>>>0>=1073741824){break b}g=ka(j<<2)}else{g=0}c=g+(l<<2)|0;F[c>>2]=f;l=c+4|0;if((b|0)!=(h|0)){while(1){c=c-4|0;b=b-4|0;F[c>>2]=F[b>>2];if((b|0)!=(h|0)){continue}break}}F[a+48>>2]=g+(j<<2);F[a+44>>2]=l;F[a+40>>2]=c;if(!h){break l}ja(h)}g=i;i=d}F[F[a+28>>2]+(f<<2)>>2]=g;b=F[a+64>>2];m:{if((f>>>0)%3|0){c=f-1|0;break m}c=f+2|0;if((c|0)==-1){break d}}d=F[F[b+12>>2]+(c<<2)>>2];if((d|0)==-1){break d}f=d+((d>>>0)%3|0?-1:2)|0;if((f|0)==-1){break d}if((e|0)!=(f|0)){continue}break}}k=k+1|0;c=F[b+24>>2];if(k>>>0>2]-c>>2>>>0){continue}break}return 1}na();v()}oa();v()}na();v()}function Kb(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0;f=Z-96|0;Z=f;e=F[a+16>>2];D[f+92|0]=1;F[f+88>>2]=b;F[f+84>>2]=b;F[f+80>>2]=e;a:{if((b|0)==-1){break a}j=F[a+20>>2];d=F[j>>2];e=F[F[e>>2]+(b<<2)>>2];if(e>>>0>=F[j+4>>2]-d>>2>>>0){break a}e=F[F[a+8>>2]+(F[d+(e<<2)>>2]<<2)>>2];d=F[a+4>>2];if(!G[d+84|0]){e=F[F[d+68>>2]+(e<<2)>>2]}F[f+72>>2]=0;F[f+76>>2]=0;j=f- -64|0;F[j>>2]=0;F[j+4>>2]=0;F[f+56>>2]=0;F[f+60>>2]=0;Ga(d,e,D[d+24|0],f+56|0);e=b+1|0;j=(e>>>0)%3|0?e:b-2|0;n=((b>>>0)%3|0?-1:2)+b|0;b:{c:{while(1){d=j;e=n;d:{if(!F[a+28>>2]){break d}e=b+1|0;d=(e>>>0)%3|0?e:b-2|0;e=b-1|0;if((b>>>0)%3|0){break d}e=b+2|0}if((d|0)==-1){break b}m=F[a+20>>2];b=F[m>>2];d=F[F[F[a+16>>2]>>2]+(d<<2)>>2];if(d>>>0>=F[m+4>>2]-b>>2>>>0){break b}d=F[F[a+8>>2]+(F[(d<<2)+b>>2]<<2)>>2];b=F[a+4>>2];if(!G[b+84|0]){d=F[F[b+68>>2]+(d<<2)>>2]}F[f+48>>2]=0;F[f+52>>2]=0;F[f+40>>2]=0;F[f+44>>2]=0;F[f+32>>2]=0;F[f+36>>2]=0;Ga(b,d,D[b+24|0],f+32|0);if((e|0)==-1){break c}d=F[a+20>>2];b=F[d>>2];e=F[F[F[a+16>>2]>>2]+(e<<2)>>2];if(e>>>0>=F[d+4>>2]-b>>2>>>0){break c}d=F[F[a+8>>2]+(F[b+(e<<2)>>2]<<2)>>2];b=F[a+4>>2];if(!G[b+84|0]){d=F[F[b+68>>2]+(d<<2)>>2]}F[f+24>>2]=0;F[f+28>>2]=0;F[f+16>>2]=0;F[f+20>>2]=0;F[f+8>>2]=0;F[f+12>>2]=0;Ga(b,d,D[b+24|0],f+8|0);g=F[f+8>>2];b=F[f+56>>2];d=g-b|0;p=F[f+60>>2];t=F[f+12>>2]-(p+(b>>>0>g>>>0)|0)|0;i=F[f+40>>2];e=F[f+64>>2];m=i-e|0;u=F[f+68>>2];y=F[f+44>>2]-(u+(e>>>0>i>>>0)|0)|0;g=ki(d,t,m,y);w=o-g|0;x=h-(_+(g>>>0>o>>>0)|0)|0;h=w;i=F[f+16>>2];g=i-e|0;u=F[f+20>>2]-((e>>>0>i>>>0)+u|0)|0;k=F[f+32>>2];i=k-b|0;w=F[f+36>>2]-((b>>>0>k>>>0)+p|0)|0;b=ki(g,u,i,w);o=h+b|0;h=_+x|0;h=b>>>0>o>>>0?h+1|0:h;b=l;l=d;p=t;k=F[f+48>>2];e=F[f+72>>2];d=k-e|0;t=F[f+76>>2];x=F[f+52>>2]-(t+(e>>>0>k>>>0)|0)|0;l=ki(l,p,d,x);k=b+l|0;b=_+q|0;b=k>>>0>>0?b+1|0:b;l=F[f+24>>2];p=l-e|0;e=F[f+28>>2]-((e>>>0>l>>>0)+t|0)|0;q=ki(p,e,i,w);l=k-q|0;q=b-(_+(k>>>0>>0)|0)|0;b=ki(g,u,d,x);d=r-b|0;b=s-(_+(b>>>0>r>>>0)|0)|0;s=ki(p,e,m,y);r=s+d|0;b=_+b|0;s=r>>>0>>0?b+1|0:b;nc(f+80|0);b=F[f+88>>2];if((b|0)!=-1){continue}break}b=s>>31;e=b^r;d=e-b|0;b=(b^s)-((b>>>0>e>>>0)+b|0)|0;n=-1;e=2147483647;m=q>>31;g=m;i=g^l;j=i-g|0;m=(g^q)-((i>>>0>>0)+g|0)|0;i=m;k=j^-1;g=i^2147483647;m=h;e:{f:{if(!F[a+28>>2]){if((b|0)==(g|0)&d>>>0>k>>>0|b>>>0>g>>>0){break e}b=b+i|0;a=d+j|0;b=a>>>0>>0?b+1|0:b;e=a;g=h;a=g>>31;d=a;n=d^o;a=n-d|0;h=a;d=(d^g)-((d>>>0>n>>>0)+d|0)|0;a=a+e|0;d=d^2147483647;h=(d|0)==(b|0)&(h^-1)>>>0>>0|b>>>0>d>>>0;a=h?-1:a;if(!(h&0)&(a|0)<=536870912|(a|0)<536870912){break e}b=0;a=a>>>29|0;break f}g:{if((b|0)==(g|0)&d>>>0>k>>>0|b>>>0>g>>>0){break g}b=b+i|0;a=d+j|0;b=a>>>0>>0?b+1|0:b;k=h;h=h>>31;g=h;i=g^o;h=i-g|0;j=(g^k)-((g>>>0>i>>>0)+g|0)|0;g=j^2147483647;d=a;a=h;if((g|0)==(b|0)&d>>>0>(a^-1)>>>0|b>>>0>g>>>0){break g}b=b+j|0;n=a+d|0;b=n>>>0>>0?b+1|0:b;e=b;if(!b&n>>>0<536870913){break e}}b=e>>>29|0;a=(e&536870911)<<3|n>>>29}o=li(o,m,a,b);l=li(l,q,a,b);r=li(r,s,a,b)}F[c+8>>2]=o;F[c+4>>2]=l;F[c>>2]=r;Z=f+96|0;return}ta();v()}ta();v()}ta();v()}function Nc(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;a:{if((b|0)<0){break a}c=F[a+12>>2];d=F[a+8>>2];if(c-d>>2>>>0<=b>>>0){break a}d=d+(b<<2)|0;e=F[d>>2];i=F[e+60>>2];f=F[e+56>>2];e=d+4|0;if((e|0)!=(c|0)){while(1){h=F[e>>2];F[e>>2]=0;g=F[d>>2];F[d>>2]=h;if(g){xa(g)}d=d+4|0;e=e+4|0;if((e|0)!=(c|0)){continue}break}c=F[a+12>>2]}if((c|0)!=(d|0)){while(1){c=c-4|0;e=F[c>>2];F[c>>2]=0;if(e){xa(e)}if((c|0)!=(d|0)){continue}break}}F[a+12>>2]=d;g=F[a+4>>2];b:{if(!g|(i|0)<0){break b}c=F[g+24>>2];d=F[g+28>>2];if((c|0)==(d|0)){break b}while(1){if((i|0)==F[F[c>>2]+24>>2]){d=c+4|0;i=F[g+28>>2];if((d|0)!=(i|0)){while(1){h=F[d>>2];F[d>>2]=0;e=F[c>>2];F[c>>2]=h;if(e){Ca(e+12|0,F[e+16>>2]);Ba(e,F[e+4>>2]);ja(e)}c=c+4|0;d=d+4|0;if((i|0)!=(d|0)){continue}break}d=F[g+28>>2]}if((c|0)!=(d|0)){while(1){d=d-4|0;e=F[d>>2];F[d>>2]=0;if(e){Ca(e+12|0,F[e+16>>2]);Ba(e,F[e+4>>2]);ja(e)}if((c|0)!=(d|0)){continue}break}}F[g+28>>2]=c;break b}c=c+4|0;if((d|0)!=(c|0)){continue}break}}c:{if((f|0)>4){break c}d:{e=L(f,12)+a|0;c=F[e+20>>2];d=F[e+24>>2];if((c|0)==(d|0)){break d}while(1){if(F[c>>2]==(b|0)){break d}c=c+4|0;if((d|0)!=(c|0)){continue}break}break c}if((c|0)==(d|0)){break c}f=c;c=c+4|0;pa(f,c,d-c|0);F[e+24>>2]=d-4}c=F[a+24>>2];d=F[a+20>>2];e:{if((c|0)==(d|0)){break e}e=c-d|0;c=e>>2;g=c>>>0<=1?1:c;i=g&1;c=0;if(e>>>0>=8){g=g&-2;e=0;while(1){f=c<<2;h=f+d|0;j=F[h>>2];if((j|0)>(b|0)){F[h>>2]=j-1}f=d+(f|4)|0;h=F[f>>2];if((h|0)>(b|0)){F[f>>2]=h-1}c=c+2|0;e=e+2|0;if((g|0)!=(e|0)){continue}break}}if(!i){break e}c=d+(c<<2)|0;d=F[c>>2];if((d|0)<=(b|0)){break e}F[c>>2]=d-1}c=F[a+36>>2];d=F[a+32>>2];f:{if((c|0)==(d|0)){break f}e=c-d|0;c=e>>2;g=c>>>0<=1?1:c;i=g&1;c=0;if(e>>>0>=8){g=g&-2;e=0;while(1){f=c<<2;h=f+d|0;j=F[h>>2];if((j|0)>(b|0)){F[h>>2]=j-1}f=d+(f|4)|0;h=F[f>>2];if((h|0)>(b|0)){F[f>>2]=h-1}c=c+2|0;e=e+2|0;if((g|0)!=(e|0)){continue}break}}if(!i){break f}c=d+(c<<2)|0;d=F[c>>2];if((d|0)<=(b|0)){break f}F[c>>2]=d-1}c=F[a+48>>2];d=F[a+44>>2];g:{if((c|0)==(d|0)){break g}e=c-d|0;c=e>>2;g=c>>>0<=1?1:c;i=g&1;c=0;if(e>>>0>=8){g=g&-2;e=0;while(1){f=c<<2;h=f+d|0;j=F[h>>2];if((j|0)>(b|0)){F[h>>2]=j-1}f=d+(f|4)|0;h=F[f>>2];if((h|0)>(b|0)){F[f>>2]=h-1}c=c+2|0;e=e+2|0;if((g|0)!=(e|0)){continue}break}}if(!i){break g}c=d+(c<<2)|0;d=F[c>>2];if((d|0)<=(b|0)){break g}F[c>>2]=d-1}c=F[a+60>>2];d=F[a+56>>2];h:{if((c|0)==(d|0)){break h}e=c-d|0;c=e>>2;g=c>>>0<=1?1:c;i=g&1;c=0;if(e>>>0>=8){g=g&-2;e=0;while(1){f=c<<2;h=f+d|0;j=F[h>>2];if((j|0)>(b|0)){F[h>>2]=j-1}f=d+(f|4)|0;h=F[f>>2];if((h|0)>(b|0)){F[f>>2]=h-1}c=c+2|0;e=e+2|0;if((g|0)!=(e|0)){continue}break}}if(!i){break h}c=d+(c<<2)|0;d=F[c>>2];if((d|0)<=(b|0)){break h}F[c>>2]=d-1}c=F[a+72>>2];a=F[a+68>>2];if((c|0)==(a|0)){break a}d=c-a|0;c=d>>2;e=c>>>0<=1?1:c;g=e&1;c=0;if(d>>>0>=8){d=e&-2;e=0;while(1){i=c<<2;f=i+a|0;h=F[f>>2];if((h|0)>(b|0)){F[f>>2]=h-1}i=a+(i|4)|0;f=F[i>>2];if((f|0)>(b|0)){F[i>>2]=f-1}c=c+2|0;e=e+2|0;if((d|0)!=(e|0)){continue}break}}if(!g){break a}f=b;a=a+(c<<2)|0;b=F[a>>2];if((f|0)>=(b|0)){break a}F[a>>2]=b-1}}function ja(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;a:{if(!a){break a}d=a-8|0;b=F[a-4>>2];a=b&-8;f=d+a|0;b:{if(b&1){break b}if(!(b&3)){break a}b=F[d>>2];d=d-b|0;if(d>>>0>>0<=255){e=F[d+8>>2];b=b>>>3|0;c=F[d+12>>2];if((c|0)==(e|0)){i=11764,j=F[2941]&oi(b),F[i>>2]=j;break b}F[e+12>>2]=c;F[c+8>>2]=e;break b}h=F[d+24>>2];b=F[d+12>>2];c:{if((d|0)!=(b|0)){c=F[d+8>>2];F[c+12>>2]=b;F[b+8>>2]=c;break c}d:{e=d+20|0;c=F[e>>2];if(c){break d}e=d+16|0;c=F[e>>2];if(c){break d}b=0;break c}while(1){g=e;b=c;e=b+20|0;c=F[e>>2];if(c){continue}e=b+16|0;c=F[b+16>>2];if(c){continue}break}F[g>>2]=0}if(!h){break b}e=F[d+28>>2];c=(e<<2)+12068|0;e:{if(F[c>>2]==(d|0)){F[c>>2]=b;if(b){break e}i=11768,j=F[2942]&oi(e),F[i>>2]=j;break b}F[h+(F[h+16>>2]==(d|0)?16:20)>>2]=b;if(!b){break b}}F[b+24>>2]=h;c=F[d+16>>2];if(c){F[b+16>>2]=c;F[c+24>>2]=b}c=F[d+20>>2];if(!c){break b}F[b+20>>2]=c;F[c+24>>2]=b;break b}b=F[f+4>>2];if((b&3)!=3){break b}F[2943]=a;F[f+4>>2]=b&-2;F[d+4>>2]=a|1;F[a+d>>2]=a;return}if(d>>>0>=f>>>0){break a}b=F[f+4>>2];if(!(b&1)){break a}f:{if(!(b&2)){if(F[2947]==(f|0)){F[2947]=d;a=F[2944]+a|0;F[2944]=a;F[d+4>>2]=a|1;if(F[2946]!=(d|0)){break a}F[2943]=0;F[2946]=0;return}if(F[2946]==(f|0)){F[2946]=d;a=F[2943]+a|0;F[2943]=a;F[d+4>>2]=a|1;F[a+d>>2]=a;return}a=(b&-8)+a|0;g:{if(b>>>0<=255){e=F[f+8>>2];b=b>>>3|0;c=F[f+12>>2];if((c|0)==(e|0)){i=11764,j=F[2941]&oi(b),F[i>>2]=j;break g}F[e+12>>2]=c;F[c+8>>2]=e;break g}h=F[f+24>>2];b=F[f+12>>2];h:{if((f|0)!=(b|0)){c=F[f+8>>2];F[c+12>>2]=b;F[b+8>>2]=c;break h}i:{e=f+20|0;c=F[e>>2];if(c){break i}e=f+16|0;c=F[e>>2];if(c){break i}b=0;break h}while(1){g=e;b=c;e=b+20|0;c=F[e>>2];if(c){continue}e=b+16|0;c=F[b+16>>2];if(c){continue}break}F[g>>2]=0}if(!h){break g}e=F[f+28>>2];c=(e<<2)+12068|0;j:{if(F[c>>2]==(f|0)){F[c>>2]=b;if(b){break j}i=11768,j=F[2942]&oi(e),F[i>>2]=j;break g}F[h+(F[h+16>>2]==(f|0)?16:20)>>2]=b;if(!b){break g}}F[b+24>>2]=h;c=F[f+16>>2];if(c){F[b+16>>2]=c;F[c+24>>2]=b}c=F[f+20>>2];if(!c){break g}F[b+20>>2]=c;F[c+24>>2]=b}F[d+4>>2]=a|1;F[a+d>>2]=a;if(F[2946]!=(d|0)){break f}F[2943]=a;return}F[f+4>>2]=b&-2;F[d+4>>2]=a|1;F[a+d>>2]=a}if(a>>>0<=255){b=(a&-8)+11804|0;c=F[2941];a=1<<(a>>>3);k:{if(!(c&a)){F[2941]=a|c;a=b;break k}a=F[b+8>>2]}F[b+8>>2]=d;F[a+12>>2]=d;F[d+12>>2]=b;F[d+8>>2]=a;return}e=31;if(a>>>0<=16777215){b=O(a>>>8|0);e=((a>>>38-b&1)-(b<<1)|0)+62|0}F[d+28>>2]=e;F[d+16>>2]=0;F[d+20>>2]=0;g=(e<<2)+12068|0;l:{m:{c=F[2942];b=1<>2]=d;F[d+24>>2]=g;break n}e=a<<((e|0)!=31?25-(e>>>1|0)|0:0);b=F[g>>2];while(1){c=b;if((F[b+4>>2]&-8)==(a|0)){break m}b=e>>>29|0;e=e<<1;g=c+(b&4)|0;b=F[g+16>>2];if(b){continue}break}F[g+16>>2]=d;F[d+24>>2]=c}F[d+12>>2]=d;F[d+8>>2]=d;break l}a=F[c+8>>2];F[a+12>>2]=d;F[c+8>>2]=d;F[d+24>>2]=0;F[d+12>>2]=c;F[d+8>>2]=a}a=F[2949]-1|0;F[2949]=a?a:-1}}function di(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0;F[a+8>>2]=e;n=a+32|0;h=F[n>>2];f=F[a+36>>2]-h>>2;a:{if(f>>>0>>0){qa(n,e-f|0);d=F[a+8>>2];break a}d=e;if(d>>>0>=f>>>0){break a}F[a+36>>2]=h+(e<<2);d=e}s=F[a+52>>2];p=F[a+48>>2];f=0;h=e>>>0>1073741823?-1:e<<2;m=ma(ka(h),0,h);b:{if((d|0)<=0){break b}g=F[a+32>>2];while(1){d=f<<2;h=F[d+m>>2];j=F[a+16>>2];c:{if((h|0)>(j|0)){F[d+g>>2]=j;break c}d=d+g|0;j=F[a+12>>2];if((j|0)>(h|0)){F[d>>2]=j;break c}F[d>>2]=h}d=F[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}if((d|0)<=0){break b}f=0;while(1){h=f<<2;d=h+c|0;h=F[b+h>>2]+F[g+h>>2]|0;F[d>>2]=h;d:{if((h|0)>F[a+16>>2]){i=h-F[a+20>>2]|0}else{if((h|0)>=F[a+12>>2]){break d}i=h+F[a+20>>2]|0}F[d>>2]=i}d=F[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}}f=F[a+56>>2];q=F[f>>2];f=F[f+4>>2]-q|0;if((f|0)>=5){o=f>>>2|0;t=o>>>0<=2?2:o;u=e&-2;w=e&1;h=1;while(1){e:{f:{if((h|0)!=(o|0)){r=L(e,h);f=F[(h<<2)+q>>2];if((f|0)==-1){break f}f=F[F[p+12>>2]+(f<<2)>>2];if((f|0)==-1){break f}j=F[s>>2];g=F[p>>2];k=F[j+(F[g+(f<<2)>>2]<<2)>>2];i=f+1|0;i=(i>>>0)%3|0?i:f-2|0;if((i|0)!=-1){i=F[g+(i<<2)>>2]}else{i=-1}g:{h:{if((f>>>0)%3|0){f=f-1|0;break h}f=f+2|0;l=-1;if((f|0)==-1){break g}}l=F[g+(f<<2)>>2]}if((h|0)<=(k|0)){break f}f=F[(i<<2)+j>>2];if((f|0)>=(h|0)){break f}g=F[j+(l<<2)>>2];if((g|0)>=(h|0)){break f}i:{if((e|0)<=0){break i}g=L(e,g);j=L(e,f);k=L(e,k);f=0;l=0;if((e|0)!=1){while(1){F[(f<<2)+m>>2]=(F[(f+g<<2)+c>>2]+F[(f+j<<2)+c>>2]|0)-F[(f+k<<2)+c>>2];i=f|1;F[(i<<2)+m>>2]=(F[(g+i<<2)+c>>2]+F[(j+i<<2)+c>>2]|0)-F[(i+k<<2)+c>>2];f=f+2|0;l=l+2|0;if((u|0)!=(l|0)){continue}break}}if(!w){break i}F[(f<<2)+m>>2]=(F[(f+g<<2)+c>>2]+F[(f+j<<2)+c>>2]|0)-F[(f+k<<2)+c>>2]}if((d|0)<=0){break e}j=F[n>>2];f=0;while(1){d=f<<2;g=F[d+m>>2];k=F[a+16>>2];j:{if((g|0)>(k|0)){F[d+j>>2]=k;break j}d=d+j|0;k=F[a+12>>2];if((k|0)>(g|0)){F[d>>2]=k;break j}F[d>>2]=g}d=F[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}f=0;if((d|0)<=0){break e}d=r<<2;k=d+c|0;i=b+d|0;while(1){g=f<<2;d=g+k|0;g=F[g+i>>2]+F[g+j>>2]|0;F[d>>2]=g;k:{if((g|0)>F[a+16>>2]){l=g-F[a+20>>2]|0}else{if((g|0)>=F[a+12>>2]){break k}l=g+F[a+20>>2]|0}F[d>>2]=l}d=F[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}break e}ta();v()}if((d|0)<=0){break e}k=(L(h-1|0,e)<<2)+c|0;j=F[n>>2];f=0;while(1){d=f<<2;g=F[d+k>>2];i=F[a+16>>2];l:{if((g|0)>(i|0)){F[d+j>>2]=i;break l}d=d+j|0;i=F[a+12>>2];if((i|0)>(g|0)){F[d>>2]=i;break l}F[d>>2]=g}d=F[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}f=0;if((d|0)<=0){break e}d=r<<2;k=d+c|0;i=b+d|0;while(1){g=f<<2;d=g+k|0;g=F[g+i>>2]+F[g+j>>2]|0;F[d>>2]=g;m:{if((g|0)>F[a+16>>2]){l=g-F[a+20>>2]|0}else{if((g|0)>=F[a+12>>2]){break m}l=g+F[a+20>>2]|0}F[d>>2]=l}d=F[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}}h=h+1|0;if((t|0)!=(h|0)){continue}break}}ja(m);return 1}function od(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;if((b|0)==-1){return 1}g=(b>>>0)/3|0;if(!(F[F[a+24>>2]+(g>>>3&268435452)>>2]>>>g&1)){e=F[a+48>>2];F[a+52>>2]=e;a:{if((e|0)!=F[a+56>>2]){F[e>>2]=b;F[a+52>>2]=e+4;break a}d=ka(4);F[d>>2]=b;c=d+4|0;F[a+56>>2]=c;F[a+52>>2]=c;F[a+48>>2]=d;if(!e){break a}ja(e)}c=b+1|0;i=(c>>>0)%3|0?c:b-2|0;c=F[F[a+4>>2]+28>>2];k=F[(i<<2)+c>>2];if((k|0)==-1){return 0}e=(b-L(g,3)|0?-1:2)+b|0;j=F[c+(e<<2)>>2];if((j|0)==-1){return 0}b=F[a+36>>2];g=b+(k>>>3&536870908)|0;d=F[g>>2];c=1<>2]=c|d;Ka(a+8|0,k,i);b=F[a+36>>2]}d=(j>>>3&536870908)+b|0;c=F[d>>2];b=1<>2]=b|c;Ka(a+8|0,j,e)}f=F[a+52>>2];if((f|0)==F[a+48>>2]){return 1}k=a+8|0;while(1){b:{c:{f=f-4|0;b=F[f>>2];if((b|0)==-1){break c}c=(b>>>0)/3|0;g=F[a+24>>2]+(c>>>3&268435452)|0;d=F[g>>2];c=1<>2]=c|d;h=F[a+4>>2];c=F[F[h+28>>2]+(b<<2)>>2];if((c|0)==-1){return 0}while(1){d=b;d:{e:{j=F[a+36>>2]+(c>>>3&536870908)|0;i=F[j>>2];e=1<>2]+(c<<2)>>2];g:{if((g|0)==-1){break g}b=g+1|0;b=(b>>>0)%3|0?b:g-2|0;if((b|0)==-1|F[F[h>>2]+(b>>>3&536870908)>>2]>>>b&1){break g}g=F[F[F[h+64>>2]+12>>2]+(b<<2)>>2];if((g|0)!=-1){break f}}F[j>>2]=e|i;Ka(k,c,d);h=F[a+4>>2];break e}F[j>>2]=e|i;Ka(k,c,d);h=F[a+4>>2];b=g+1|0;if((((b>>>0)%3|0?b:g-2|0)|0)==-1){break e}b=-1;h:{if((d|0)==-1){break h}c=d+1|0;c=(c>>>0)%3|0?c:d-2|0;if((c|0)==-1|F[F[h>>2]+(c>>>3&536870908)>>2]>>>c&1){break h}b=F[F[F[h+64>>2]+12>>2]+(c<<2)>>2]}c=(b>>>0)/3|0;d=1<>2];e=c>>>5|0;j=F[f+(e<<2)>>2];break d}i:{j:{if((d|0)==-1){break j}c=-1;b=d+1|0;b=(b>>>0)%3|0?b:d-2|0;if(!((b|0)==-1|F[F[h>>2]+(b>>>3&536870908)>>2]>>>b&1)){c=F[F[F[h+64>>2]+12>>2]+(b<<2)>>2]}k:{l:{if((d>>>0)%3|0){f=d-1|0;break l}f=d+2|0;b=-1;if((f|0)==-1){break k}}b=-1;if(F[F[h>>2]+(f>>>3&536870908)>>2]>>>f&1){break k}b=F[F[F[h+64>>2]+12>>2]+(f<<2)>>2]}g=(b|0)==-1;i=g?-1:(b>>>0)/3|0;if((c|0)!=-1){f=F[a+24>>2];d=(c>>>0)/3|0;e=d>>>5|0;j=F[f+(e<<2)>>2];d=1<>2];e=i>>>5|0;j=F[f+(e<<2)>>2];if(!(d&j)){break d}}f=F[a+52>>2]-4|0;F[a+52>>2]=f;break b}if(g){b=c;break d}if(F[(i>>>3&536870908)+f>>2]>>>i&1){b=c;break d}h=F[a+52>>2];F[h-4>>2]=b;if(F[a+56>>2]!=(h|0)){F[h>>2]=c;f=h+4|0;break c}m:{i=F[a+48>>2];e=h-i|0;g=e>>2;d=g+1|0;if(d>>>0<1073741824){b=e>>>1|0;e=e>>>0>=2147483644?1073741823:b>>>0>d>>>0?b:d;if(e){if(e>>>0>=1073741824){break m}d=ka(e<<2)}else{d=0}b=d+(g<<2)|0;F[b>>2]=c;f=b+4|0;if((h|0)!=(i|0)){while(1){b=b-4|0;h=h-4|0;F[b>>2]=F[h>>2];if((h|0)!=(i|0)){continue}break}}F[a+56>>2]=d+(e<<2);F[a+52>>2]=f;F[a+48>>2]=b;if(!i){break b}ja(i);f=F[a+52>>2];break b}na();v()}oa();v()}F[(e<<2)+f>>2]=d|j;c=F[F[h+28>>2]+(b<<2)>>2];if((c|0)!=-1){continue}break}return 0}F[a+52>>2]=f}if(F[a+48>>2]!=(f|0)){continue}break}}return 1}function he(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0;F[a+8>>2]=e;m=a+32|0;h=F[m>>2];f=F[a+36>>2]-h>>2;a:{if(f>>>0>>0){qa(m,e-f|0);d=F[a+8>>2];break a}d=e;if(d>>>0>=f>>>0){break a}F[a+36>>2]=h+(e<<2);d=e}s=F[a+52>>2];n=F[a+48>>2];f=0;h=e>>>0>1073741823?-1:e<<2;l=ma(ka(h),0,h);b:{if((d|0)<=0){break b}g=F[a+32>>2];while(1){d=f<<2;h=F[d+l>>2];i=F[a+16>>2];c:{if((h|0)>(i|0)){F[d+g>>2]=i;break c}d=d+g|0;i=F[a+12>>2];if((i|0)>(h|0)){F[d>>2]=i;break c}F[d>>2]=h}d=F[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}if((d|0)<=0){break b}f=0;while(1){h=f<<2;d=h+c|0;h=F[b+h>>2]+F[g+h>>2]|0;F[d>>2]=h;d:{if((h|0)>F[a+16>>2]){h=h-F[a+20>>2]|0}else{if((h|0)>=F[a+12>>2]){break d}h=h+F[a+20>>2]|0}F[d>>2]=h}d=F[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}}f=F[a+56>>2];q=F[f>>2];f=F[f+4>>2]-q|0;if((f|0)>=5){o=f>>>2|0;t=o>>>0<=2?2:o;u=e&-2;w=e&1;h=1;while(1){e:{f:{if((h|0)!=(o|0)){r=L(e,h);f=F[(h<<2)+q>>2];if((f|0)==-1|F[F[n>>2]+(f>>>3&536870908)>>2]>>>f&1){break f}f=F[F[F[n+64>>2]+12>>2]+(f<<2)>>2];if((f|0)==-1){break f}i=F[s>>2];g=F[n+28>>2];k=F[i+(F[g+(f<<2)>>2]<<2)>>2];if((k|0)>=(h|0)){break f}j=f+1|0;j=F[i+(F[g+(((j>>>0)%3|0?j:f-2|0)<<2)>>2]<<2)>>2];if((j|0)>=(h|0)){break f}f=F[i+(F[g+(f+((f>>>0)%3|0?-1:2)<<2)>>2]<<2)>>2];if((f|0)>=(h|0)){break f}g:{if((e|0)<=0){break g}g=L(e,f);i=L(e,j);k=L(e,k);f=0;p=0;if((e|0)!=1){while(1){F[(f<<2)+l>>2]=(F[(f+g<<2)+c>>2]+F[(f+i<<2)+c>>2]|0)-F[(f+k<<2)+c>>2];j=f|1;F[(j<<2)+l>>2]=(F[(g+j<<2)+c>>2]+F[(i+j<<2)+c>>2]|0)-F[(k+j<<2)+c>>2];f=f+2|0;p=p+2|0;if((u|0)!=(p|0)){continue}break}}if(!w){break g}F[(f<<2)+l>>2]=(F[(f+g<<2)+c>>2]+F[(f+i<<2)+c>>2]|0)-F[(f+k<<2)+c>>2]}if((d|0)<=0){break e}i=F[m>>2];f=0;while(1){d=f<<2;g=F[d+l>>2];k=F[a+16>>2];h:{if((g|0)>(k|0)){F[d+i>>2]=k;break h}d=d+i|0;k=F[a+12>>2];if((k|0)>(g|0)){F[d>>2]=k;break h}F[d>>2]=g}d=F[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}f=0;if((d|0)<=0){break e}d=r<<2;k=d+c|0;j=b+d|0;while(1){g=f<<2;d=g+k|0;g=F[g+j>>2]+F[g+i>>2]|0;F[d>>2]=g;i:{if((g|0)>F[a+16>>2]){g=g-F[a+20>>2]|0}else{if((g|0)>=F[a+12>>2]){break i}g=g+F[a+20>>2]|0}F[d>>2]=g}d=F[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}break e}ta();v()}if((d|0)<=0){break e}k=(L(h-1|0,e)<<2)+c|0;i=F[m>>2];f=0;while(1){d=f<<2;g=F[d+k>>2];j=F[a+16>>2];j:{if((g|0)>(j|0)){F[d+i>>2]=j;break j}d=d+i|0;j=F[a+12>>2];if((j|0)>(g|0)){F[d>>2]=j;break j}F[d>>2]=g}d=F[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}f=0;if((d|0)<=0){break e}d=r<<2;k=d+c|0;j=b+d|0;while(1){g=f<<2;d=g+k|0;g=F[g+j>>2]+F[g+i>>2]|0;F[d>>2]=g;k:{if((g|0)>F[a+16>>2]){g=g-F[a+20>>2]|0}else{if((g|0)>=F[a+12>>2]){break k}g=g+F[a+20>>2]|0}F[d>>2]=g}d=F[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}}h=h+1|0;if((t|0)!=(h|0)){continue}break}}ja(l);return 1}function Fb(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=M(0),k=0,l=0,m=M(0);i=F[c>>2];a:{b:{f=F[b+4>>2];if(!f){break b}g=ni(f);c:{if(g>>>0>=2){e=i;if(f>>>0<=e>>>0){e=(i>>>0)%(f>>>0)|0}c=F[F[b>>2]+(e<<2)>>2];if(!c){break b}if(g>>>0<=1){break c}while(1){c=F[c>>2];if(!c){break b}g=F[c+4>>2];if((g|0)!=(i|0)){if(f>>>0<=g>>>0){g=(g>>>0)%(f>>>0)|0}if((e|0)!=(g|0)){break b}}if(F[c+8>>2]!=(i|0)){continue}break}b=0;break a}e=f-1&i;c=F[F[b>>2]+(e<<2)>>2];if(!c){break b}}h=f-1|0;while(1){c=F[c>>2];if(!c){break b}g=F[c+4>>2];if((g|0)!=(i|0)&(g&h)!=(e|0)){break b}if(F[c+8>>2]!=(i|0)){continue}break}b=0;break a}c=ka(16);d=F[F[d>>2]>>2];F[c+12>>2]=0;F[c+8>>2]=d;F[c+4>>2]=i;F[c>>2]=0;m=M(F[b+12>>2]+1>>>0);j=J[b+16>>2];d:{if(m>M(j*M(f>>>0))?0:f){break d}e=2;d=(f-1&f)!=0|f>>>0<3|f<<1;j=M(S(M(m/j)));e:{if(j=M(0)){g=~~j>>>0;break e}g=0}d=d>>>0>g>>>0?d:g;f:{if((d|0)==1){break f}if(!(d&d-1)){e=d;break f}e=Mc(d);f=F[b+4>>2]}g:{if(e>>>0<=f>>>0){if(e>>>0>=f>>>0){break g}g=f>>>0<3;j=M(S(M(M(I[b+12>>2])/J[b+16>>2])));h:{if(j=M(0)){d=~~j>>>0;break h}d=0}i:{j:{if(g){break j}if(ni(f)>>>0>1){break j}d=d>>>0<2?d:1<<32-O(d-1|0);break i}d=Mc(d)}e=d>>>0>>0?e:d;if(f>>>0<=e>>>0){break g}}f=0;g=0;h=e;k:{l:{m:{n:{if(e){if(h>>>0>=1073741824){break n}d=ka(h<<2);e=F[b>>2];F[b>>2]=d;if(e){ja(e)}F[b+4>>2]=h;d=0;if(h>>>0>=4){e=h&-4;while(1){k=d<<2;F[k+F[b>>2]>>2]=0;F[F[b>>2]+(k|4)>>2]=0;F[F[b>>2]+(k|8)>>2]=0;F[F[b>>2]+(k|12)>>2]=0;d=d+4|0;g=g+4|0;if((e|0)!=(g|0)){continue}break}}e=h&3;if(e){while(1){F[F[b>>2]+(d<<2)>>2]=0;d=d+1|0;f=f+1|0;if((e|0)!=(f|0)){continue}break}}e=F[b+8>>2];if(!e){break k}d=b+8|0;f=F[e+4>>2];g=ni(h);if(g>>>0<2){break m}f=f>>>0>=h>>>0?(f>>>0)%(h>>>0)|0:f;F[F[b>>2]+(f<<2)>>2]=d;d=F[e>>2];if(!d){break k}if(g>>>0<=1){break l}while(1){g=F[d+4>>2];if(h>>>0<=g>>>0){g=(g>>>0)%(h>>>0)|0}o:{if((f|0)==(g|0)){e=d;break o}l=g<<2;k=l+F[b>>2]|0;if(!F[k>>2]){F[k>>2]=e;e=d;f=g;break o}F[e>>2]=F[d>>2];F[d>>2]=F[F[l+F[b>>2]>>2]>>2];F[F[l+F[b>>2]>>2]>>2]=d}d=F[e>>2];if(d){continue}break}break k}d=F[b>>2];F[b>>2]=0;if(d){ja(d)}F[b+4>>2]=0;break k}oa();v()}f=h-1&f;F[F[b>>2]+(f<<2)>>2]=d;d=F[e>>2];if(!d){break k}}k=h-1|0;while(1){g=k&F[d+4>>2];p:{if((g|0)==(f|0)){e=d;break p}l=g<<2;h=l+F[b>>2]|0;if(F[h>>2]){F[e>>2]=F[d>>2];F[d>>2]=F[F[l+F[b>>2]>>2]>>2];F[F[l+F[b>>2]>>2]>>2]=d;break p}F[h>>2]=e;e=d;f=g}d=F[e>>2];if(d){continue}break}}}f=F[b+4>>2];d=f-1|0;if(!(d&f)){e=d&i;break d}if(f>>>0>i>>>0){e=i;break d}e=(i>>>0)%(f>>>0)|0}e=F[b>>2]+(e<<2)|0;d=F[e>>2];q:{r:{if(!d){d=b+8|0;F[c>>2]=F[d>>2];F[b+8>>2]=c;F[e>>2]=d;d=F[c>>2];if(!d){break q}d=F[d+4>>2];e=f-1|0;s:{if(!(e&f)){d=d&e;break s}if(d>>>0>>0){break s}d=(d>>>0)%(f>>>0)|0}d=F[b>>2]+(d<<2)|0;break r}F[c>>2]=F[d>>2]}F[d>>2]=c}F[b+12>>2]=F[b+12>>2]+1;b=1}D[a+4|0]=b;F[a>>2]=c}function Vb(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;j=L(b,12)+a|0;F[j+12>>2]=F[j+8>>2];m=(c|0)==-1?-1:(c>>>0)/3|0;d=1;k=c;a:{b:{c:{while(1){d:{l=d;if(!d){if((k|0)==-1){break d}if((Wc(a,((k>>>0)%3|0?-1:2)+k|0)|0)==-1){break a}c=k+1|0;d=(c>>>0)%3|0?c:k-2|0;if((d|0)==-1){break a}c=d+1|0;c=(c>>>0)%3|0?c:d-2|0;if((c|0)==-1){break a}d=F[F[F[a+4>>2]+12>>2]+(c<<2)>>2];if((d|0)==-1){break a}c=d+1|0;c=(c>>>0)%3|0?c:d-2|0;if((c|0)==-1){break a}m=(c>>>0)/3|0}e:{d=F[a+56>>2]+(m>>>3&536870908)|0;h=F[d>>2];e=1<>2]=e|h;d=F[j+12>>2];f:{if((d|0)!=F[j+16>>2]){F[d>>2]=m;F[j+12>>2]=d+4;break f}n=F[j+8>>2];h=d-n|0;e=h>>2;i=e+1|0;if(i>>>0>=1073741824){break c}g=h>>>1|0;i=h>>>0>=2147483644?1073741823:i>>>0>>0?g:i;if(i){if(i>>>0>=1073741824){break b}g=ka(i<<2)}else{g=0}h=g+(e<<2)|0;F[h>>2]=m;e=h+4|0;if((d|0)!=(n|0)){while(1){h=h-4|0;d=d-4|0;F[h>>2]=F[d>>2];if((d|0)!=(n|0)){continue}break}}F[j+8>>2]=h;F[j+12>>2]=e;F[j+16>>2]=g+(i<<2);if(!n){break f}ja(n)}g=f+1|0;g:{h:{i:{if(!f){break i}if(g&1){if((c|0)==-1){c=-1;break g}d=c+1|0;c=(d>>>0)%3|0?d:c-2|0;break i}k=l?k:c;if((c|0)==-1){c=-1;break g}if((c>>>0)%3|0){d=c-1|0;break h}c=c+2|0}d=c;c=-1;if((d|0)==-1){break g}}c=F[F[F[a+4>>2]+12>>2]+(d<<2)>>2];h=-1;f=-1;e=d+1|0;e=(e>>>0)%3|0?e:d-2|0;if((e|0)>=0){f=(e>>>0)/3|0;f=F[(F[F[a>>2]+96>>2]+L(f,12)|0)+(e-L(f,3)<<2)>>2]}j:{if((c|0)==-1){break j}i=((c>>>0)%3|0?-1:2)+c|0;if((i|0)<0){break j}e=(i>>>0)/3|0;h=F[(F[F[a>>2]+96>>2]+L(e,12)|0)+(i-L(e,3)<<2)>>2]}if((f|0)!=(h|0)){c=-1;break g}k:{l:{f=((d>>>0)%3|0?-1:2)+d|0;if((f|0)>=0){d=(f>>>0)/3|0;if((c|0)!=-1){break l}c=-1;break g}d=-1;if((c|0)!=-1){break k}c=-1;break g}d=F[(F[F[a>>2]+96>>2]+L(d,12)|0)+(f-L(d,3)<<2)>>2]}f=c+1|0;e=(f>>>0)%3|0?f:c-2|0;if((e|0)>=0){f=(e>>>0)/3|0;f=F[(F[F[a>>2]+96>>2]+L(f,12)|0)+(e-L(f,3)<<2)>>2]}else{f=-1}if((f|0)!=(d|0)){c=-1;break g}f=g;m=(c>>>0)/3|0;d=F[a+56>>2]+(m>>>3&268435452)|0;h=F[d>>2];e=1<>2]-4|0;g=F[l>>2];d=F[a+56>>2]+(g>>>3&536870908)|0;c=F[d>>2];o=d,p=oi(g)&c,F[o>>2]=p;F[j+12>>2]=l;break a}d=0;if(l){continue}break a}break}k=-1;Wc(a,-1);break a}na();v()}oa();v()}F[((b<<2)+a|0)+44>>2]=k;b=F[j+12>>2];i=F[j+8>>2];m:{if((b|0)==(i|0)){break m}c=b-i|0;b=c>>2;b=b>>>0<=1?1:b;k=b&1;e=F[a+56>>2];d=0;if(c>>>0>=8){f=b&-2;c=0;while(1){l=d<<2;g=F[l+i>>2];b=e+(g>>>3&536870908)|0;a=F[b>>2];o=b,p=oi(g)&a,F[o>>2]=p;g=F[i+(l|4)>>2];b=e+(g>>>3&536870908)|0;a=F[b>>2];o=b,p=oi(g)&a,F[o>>2]=p;d=d+2|0;c=c+2|0;if((f|0)!=(c|0)){continue}break}}if(!k){break m}c=F[i+(d<<2)>>2];b=e+(c>>>3&536870908)|0;a=F[b>>2];o=b,p=oi(c)&a,F[o>>2]=p}}function pd(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;if((b|0)==-1){return 1}g=(b>>>0)/3|0;if(!(F[F[a+24>>2]+(g>>>3&268435452)>>2]>>>g&1)){f=F[a+48>>2];F[a+52>>2]=f;a:{if((f|0)!=F[a+56>>2]){F[f>>2]=b;F[a+52>>2]=f+4;break a}d=ka(4);F[d>>2]=b;c=d+4|0;F[a+56>>2]=c;F[a+52>>2]=c;F[a+48>>2]=d;if(!f){break a}ja(f)}e=-1;d=F[a+4>>2];c=b+1|0;i=(c>>>0)%3|0?c:b-2|0;if((i|0)!=-1){e=F[F[d>>2]+(i<<2)>>2]}b:{h=b-L(g,3)|0;if(h){c=b-1|0;break b}c=b+2|0;if((c|0)!=-1){break b}return 0}if((e|0)==-1){return 0}j=F[F[d>>2]+(c<<2)>>2];if((j|0)==-1){return 0}c=F[a+36>>2];f=c+(e>>>3&536870908)|0;g=F[f>>2];d=1<>2]=d|g;Ka(a+8|0,e,i);c=F[a+36>>2]}g=(j>>>3&536870908)+c|0;d=F[g>>2];c=1<>2]=c|d;Ka(a+8|0,j,(h?-1:2)+b|0)}c=F[a+52>>2];if((c|0)==F[a+48>>2]){return 1}j=a+8|0;while(1){c:{d:{c=c-4|0;b=F[c>>2];if((b|0)==-1){break d}d=(b>>>0)/3|0;f=F[a+24>>2]+(d>>>3&268435452)|0;g=F[f>>2];d=1<>2]=d|g;while(1){i=F[a+4>>2];e=F[F[i>>2]+(b<<2)>>2];if((e|0)==-1){return 0}e:{f:{h=F[a+36>>2]+(e>>>3&536870908)|0;f=F[h>>2];g=1<>2]+(e<<2)>>2];h:{if((d|0)==-1){break h}c=d+1|0;c=(c>>>0)%3|0?c:d-2|0;if((c|0)==-1){break h}d=F[F[i+12>>2]+(c<<2)>>2];if((d|0)!=-1){break g}}F[h>>2]=f|g;Ka(j,e,b);break f}F[h>>2]=f|g;Ka(j,e,b);c=d+1|0;if((((c>>>0)%3|0?c:d-2|0)|0)==-1){break f}c=b-2|0;d=b+1|0;b=-1;c=(d>>>0)%3|0?d:c;if((c|0)!=-1){b=F[F[F[a+4>>2]+12>>2]+(c<<2)>>2]}c=(b>>>0)/3|0;d=1<>2];f=c>>>5|0;i=F[e+(f<<2)>>2];break e}c=-1;g=F[a+4>>2];d=b+1|0;d=(d>>>0)%3|0?d:b-2|0;if((d|0)!=-1){c=F[F[g+12>>2]+(d<<2)>>2]}i:{j:{if((b>>>0)%3|0){e=b-1|0;break j}e=b+2|0;b=-1;if((e|0)==-1){break i}}b=F[F[g+12>>2]+(e<<2)>>2]}g=(b|0)==-1;h=g?-1:(b>>>0)/3|0;k:{if((c|0)!=-1){e=F[a+24>>2];d=(c>>>0)/3|0;f=d>>>5|0;i=F[e+(f<<2)>>2];d=1<>2];f=h>>>5|0;i=F[e+(f<<2)>>2];if(!(d&i)){break e}}c=F[a+52>>2]-4|0;F[a+52>>2]=c;break c}if(g){b=c;break e}if(F[(h>>>3&536870908)+e>>2]>>>h&1){b=c;break e}e=F[a+52>>2];F[e-4>>2]=b;if(F[a+56>>2]!=(e|0)){F[e>>2]=c;c=e+4|0;break d}l:{h=F[a+48>>2];f=e-h|0;g=f>>2;d=g+1|0;if(d>>>0<1073741824){b=f>>>1|0;f=f>>>0>=2147483644?1073741823:b>>>0>d>>>0?b:d;if(f){if(f>>>0>=1073741824){break l}d=ka(f<<2)}else{d=0}b=d+(g<<2)|0;F[b>>2]=c;c=b+4|0;if((e|0)!=(h|0)){while(1){b=b-4|0;e=e-4|0;F[b>>2]=F[e>>2];if((e|0)!=(h|0)){continue}break}}F[a+56>>2]=d+(f<<2);F[a+52>>2]=c;F[a+48>>2]=b;if(!h){break c}ja(h);c=F[a+52>>2];break c}na();v()}oa();v()}F[(f<<2)+e>>2]=d|i;if((b|0)!=-1){continue}break}return 0}F[a+52>>2]=c}if(F[a+48>>2]!=(c|0)){continue}break}}return 1}function ee(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;h=Z-32|0;Z=h;a:{b:{if(!Oa(1,h+28|0,b)){break b}d=F[h+28>>2];c=F[F[a+48>>2]+64>>2];if(d>>>0>F[c+4>>2]-F[c>>2]>>2>>>0){break b}c:{if(d){Na(a+60|0,d);c=h+8|0;F[c>>2]=0;F[c+4>>2]=0;D[c+5|0]=0;D[c+6|0]=0;D[c+7|0]=0;D[c+8|0]=0;D[c+9|0]=0;D[c+10|0]=0;D[c+11|0]=0;D[c+12|0]=0;if(!Aa(c,b)){break c}while(1){f=1<>2]+(e>>>3&536870908)|0;if(j){i=f|F[g>>2]}else{i=F[g>>2]&(f^-1)}F[g>>2]=i;e=e+1|0;if((d|0)!=(e|0)){continue}break}}if(!Oa(1,h+28|0,b)){break b}d=F[h+28>>2];c=F[F[a+48>>2]+64>>2];if(d>>>0>F[c+4>>2]-F[c>>2]>>2>>>0){break b}if(d){e=0;Na(a+72|0,d);c=h+8|0;F[c>>2]=0;F[c+4>>2]=0;D[c+5|0]=0;D[c+6|0]=0;D[c+7|0]=0;D[c+8|0]=0;D[c+9|0]=0;D[c+10|0]=0;D[c+11|0]=0;D[c+12|0]=0;if(!Aa(c,b)){break c}while(1){f=1<>2]+(e>>>3&536870908)|0;if(j){i=f|F[g>>2]}else{i=F[g>>2]&(f^-1)}F[g>>2]=i;e=e+1|0;if((d|0)!=(e|0)){continue}break}}if(!Oa(1,h+28|0,b)){break b}d=F[h+28>>2];c=F[F[a+48>>2]+64>>2];if(d>>>0>F[c+4>>2]-F[c>>2]>>2>>>0){break b}if(d){e=0;Na(a+84|0,d);c=h+8|0;F[c>>2]=0;F[c+4>>2]=0;D[c+5|0]=0;D[c+6|0]=0;D[c+7|0]=0;D[c+8|0]=0;D[c+9|0]=0;D[c+10|0]=0;D[c+11|0]=0;D[c+12|0]=0;if(!Aa(c,b)){break c}while(1){f=1<>2]+(e>>>3&536870908)|0;if(j){i=f|F[g>>2]}else{i=F[g>>2]&(f^-1)}F[g>>2]=i;e=e+1|0;if((d|0)!=(e|0)){continue}break}}if(!Oa(1,h+28|0,b)){break b}d=F[h+28>>2];c=F[F[a+48>>2]+64>>2];if(d>>>0>F[c+4>>2]-F[c>>2]>>2>>>0){break b}if(d){e=0;Na(a+96|0,d);c=h+8|0;F[c>>2]=0;F[c+4>>2]=0;D[c+5|0]=0;D[c+6|0]=0;D[c+7|0]=0;D[c+8|0]=0;D[c+9|0]=0;D[c+10|0]=0;D[c+11|0]=0;D[c+12|0]=0;if(!Aa(c,b)){break c}while(1){f=1<>2]+(e>>>3&536870908)|0;if(j){i=f|F[g>>2]}else{i=F[g>>2]&(f^-1)}F[g>>2]=i;e=e+1|0;if((d|0)!=(e|0)){continue}break}}e=0;c=F[b+8>>2];f=F[b+12>>2];d=c;c=F[b+20>>2];i=c;g=F[b+16>>2];j=g+4|0;c=j>>>0<4?c+1|0:c;if(d>>>0>>0&(c|0)>=(f|0)|(c|0)>(f|0)){break a}m=F[b>>2];k=m+g|0;l=G[k|0]|G[k+1|0]<<8|(G[k+2|0]<<16|G[k+3|0]<<24);F[b+16>>2]=j;F[b+20>>2]=c;k=d;d=f;c=i;f=g+8|0;c=f>>>0<8?c+1|0:c;if(f>>>0>k>>>0&(c|0)>=(d|0)|(c|0)>(d|0)){break a}d=j+m|0;d=G[d|0]|G[d+1|0]<<8|(G[d+2|0]<<16|G[d+3|0]<<24);F[b+16>>2]=f;F[b+20>>2]=c;if((d|0)<(l|0)){break a}F[a+16>>2]=d;F[a+12>>2]=l;c=(d>>31)-((l>>31)+(d>>>0>>0)|0)|0;b=d-l|0;if(!c&b>>>0>2147483646|c){break a}e=1;b=b+1|0;F[a+20>>2]=b;c=b>>>1|0;F[a+24>>2]=c;F[a+28>>2]=0-c;if(b&1){break a}F[a+24>>2]=c-1;break a}}e=0}Z=h+32|0;return e|0}function ai(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;h=Z-32|0;Z=h;a:{b:{if(!Oa(1,h+28|0,b)){break b}d=F[h+28>>2];c=F[a+48>>2];if(d>>>0>F[c+4>>2]-F[c>>2]>>2>>>0){break b}c:{if(d){Na(a+60|0,d);c=h+8|0;F[c>>2]=0;F[c+4>>2]=0;D[c+5|0]=0;D[c+6|0]=0;D[c+7|0]=0;D[c+8|0]=0;D[c+9|0]=0;D[c+10|0]=0;D[c+11|0]=0;D[c+12|0]=0;if(!Aa(c,b)){break c}while(1){f=1<>2]+(e>>>3&536870908)|0;if(j){i=f|F[g>>2]}else{i=F[g>>2]&(f^-1)}F[g>>2]=i;e=e+1|0;if((d|0)!=(e|0)){continue}break}}if(!Oa(1,h+28|0,b)){break b}d=F[h+28>>2];c=F[a+48>>2];if(d>>>0>F[c+4>>2]-F[c>>2]>>2>>>0){break b}if(d){e=0;Na(a+72|0,d);c=h+8|0;F[c>>2]=0;F[c+4>>2]=0;D[c+5|0]=0;D[c+6|0]=0;D[c+7|0]=0;D[c+8|0]=0;D[c+9|0]=0;D[c+10|0]=0;D[c+11|0]=0;D[c+12|0]=0;if(!Aa(c,b)){break c}while(1){f=1<>2]+(e>>>3&536870908)|0;if(j){i=f|F[g>>2]}else{i=F[g>>2]&(f^-1)}F[g>>2]=i;e=e+1|0;if((d|0)!=(e|0)){continue}break}}if(!Oa(1,h+28|0,b)){break b}d=F[h+28>>2];c=F[a+48>>2];if(d>>>0>F[c+4>>2]-F[c>>2]>>2>>>0){break b}if(d){e=0;Na(a+84|0,d);c=h+8|0;F[c>>2]=0;F[c+4>>2]=0;D[c+5|0]=0;D[c+6|0]=0;D[c+7|0]=0;D[c+8|0]=0;D[c+9|0]=0;D[c+10|0]=0;D[c+11|0]=0;D[c+12|0]=0;if(!Aa(c,b)){break c}while(1){f=1<>2]+(e>>>3&536870908)|0;if(j){i=f|F[g>>2]}else{i=F[g>>2]&(f^-1)}F[g>>2]=i;e=e+1|0;if((d|0)!=(e|0)){continue}break}}if(!Oa(1,h+28|0,b)){break b}d=F[h+28>>2];c=F[a+48>>2];if(d>>>0>F[c+4>>2]-F[c>>2]>>2>>>0){break b}if(d){e=0;Na(a+96|0,d);c=h+8|0;F[c>>2]=0;F[c+4>>2]=0;D[c+5|0]=0;D[c+6|0]=0;D[c+7|0]=0;D[c+8|0]=0;D[c+9|0]=0;D[c+10|0]=0;D[c+11|0]=0;D[c+12|0]=0;if(!Aa(c,b)){break c}while(1){f=1<>2]+(e>>>3&536870908)|0;if(j){i=f|F[g>>2]}else{i=F[g>>2]&(f^-1)}F[g>>2]=i;e=e+1|0;if((d|0)!=(e|0)){continue}break}}e=0;c=F[b+8>>2];f=F[b+12>>2];d=c;c=F[b+20>>2];i=c;g=F[b+16>>2];j=g+4|0;c=j>>>0<4?c+1|0:c;if(d>>>0>>0&(c|0)>=(f|0)|(c|0)>(f|0)){break a}m=F[b>>2];k=m+g|0;l=G[k|0]|G[k+1|0]<<8|(G[k+2|0]<<16|G[k+3|0]<<24);F[b+16>>2]=j;F[b+20>>2]=c;k=d;d=f;c=i;f=g+8|0;c=f>>>0<8?c+1|0:c;if(f>>>0>k>>>0&(c|0)>=(d|0)|(c|0)>(d|0)){break a}d=j+m|0;d=G[d|0]|G[d+1|0]<<8|(G[d+2|0]<<16|G[d+3|0]<<24);F[b+16>>2]=f;F[b+20>>2]=c;if((d|0)<(l|0)){break a}F[a+16>>2]=d;F[a+12>>2]=l;c=(d>>31)-((l>>31)+(d>>>0>>0)|0)|0;b=d-l|0;if(!c&b>>>0>2147483646|c){break a}e=1;b=b+1|0;F[a+20>>2]=b;c=b>>>1|0;F[a+24>>2]=c;F[a+28>>2]=0-c;if(b&1){break a}F[a+24>>2]=c-1;break a}}e=0}Z=h+32|0;return e|0}function uh(a){a=a|0;var b=0,c=0,d=0,e=0;c=F[a+32>>2];d=F[c+16>>2];e=F[c+12>>2];b=F[c+20>>2];if(I[c+8>>2]>d>>>0&(e|0)>=(b|0)|(b|0)<(e|0)){e=G[F[c>>2]+d|0];d=d+1|0;b=d?b:b+1|0;F[c+16>>2]=d;F[c+20>>2]=b;b=F[a+48>>2];F[a+48>>2]=0;if(b){$[F[F[b>>2]+4>>2]](b)}a:{b:{c:{d:{switch(e|0){case 0:b=ka(384);F[b>>2]=8284;ma(b+4|0,0,80);F[b+96>>2]=0;F[b+100>>2]=0;F[b+92>>2]=-1;F[b+84>>2]=-1;F[b+88>>2]=-1;F[b+104>>2]=0;F[b+108>>2]=0;F[b+112>>2]=0;F[b+116>>2]=0;F[b+120>>2]=0;F[b+124>>2]=0;F[b+128>>2]=0;F[b+132>>2]=0;F[b+136>>2]=0;F[b+140>>2]=0;F[b+144>>2]=0;F[b+148>>2]=0;F[b+156>>2]=0;F[b+160>>2]=0;F[b+152>>2]=1065353216;F[b+164>>2]=0;F[b+168>>2]=0;F[b+172>>2]=0;F[b+176>>2]=0;F[b+180>>2]=0;F[b+184>>2]=0;F[b+188>>2]=0;F[b+192>>2]=0;F[b+196>>2]=0;F[b+200>>2]=0;F[b+204>>2]=0;F[b+208>>2]=0;F[b+212>>2]=-1;F[b+216>>2]=0;F[b+220>>2]=0;F[b+224>>2]=0;Ja(b+232|0);Ja(b+272|0);c=b+312|0;F[c>>2]=0;F[c+4>>2]=0;D[c+5|0]=0;D[c+6|0]=0;D[c+7|0]=0;D[c+8|0]=0;D[c+9|0]=0;D[c+10|0]=0;D[c+11|0]=0;D[c+12|0]=0;Ja(b+328|0);F[b+376>>2]=0;F[b+368>>2]=0;F[b+372>>2]=0;break c;case 2:break d;default:break b}}b=ka(440);F[b>>2]=8336;ma(b+4|0,0,80);F[b+96>>2]=0;F[b+100>>2]=0;F[b+92>>2]=-1;F[b+84>>2]=-1;F[b+88>>2]=-1;F[b+104>>2]=0;F[b+108>>2]=0;F[b+112>>2]=0;F[b+116>>2]=0;F[b+120>>2]=0;F[b+124>>2]=0;F[b+128>>2]=0;F[b+132>>2]=0;F[b+136>>2]=0;F[b+140>>2]=0;F[b+144>>2]=0;F[b+148>>2]=0;F[b+156>>2]=0;F[b+160>>2]=0;F[b+152>>2]=1065353216;F[b+164>>2]=0;F[b+168>>2]=0;F[b+172>>2]=0;F[b+176>>2]=0;F[b+180>>2]=0;F[b+184>>2]=0;F[b+188>>2]=0;F[b+192>>2]=0;F[b+196>>2]=0;F[b+200>>2]=0;F[b+204>>2]=0;F[b+208>>2]=0;F[b+212>>2]=-1;F[b+216>>2]=0;F[b+220>>2]=0;F[b+224>>2]=0;Ja(b+232|0);Ja(b+272|0);c=b+312|0;F[c>>2]=0;F[c+4>>2]=0;D[c+5|0]=0;D[c+6|0]=0;D[c+7|0]=0;D[c+8|0]=0;D[c+9|0]=0;D[c+10|0]=0;D[c+11|0]=0;D[c+12|0]=0;Ja(b+328|0);F[b+392>>2]=0;F[b+396>>2]=0;F[b+384>>2]=0;F[b+388>>2]=0;F[b+376>>2]=0;F[b+380>>2]=0;F[b+368>>2]=0;F[b+372>>2]=0;F[b+416>>2]=0;F[b+420>>2]=0;F[b+408>>2]=2;F[b+412>>2]=7;F[b+400>>2]=-1;F[b+404>>2]=-1;F[b+424>>2]=0;F[b+428>>2]=0;F[b+432>>2]=0;F[b+436>>2]=0}c=F[a+48>>2];F[a+48>>2]=b;if(!c){break a}$[F[F[c>>2]+4>>2]](c)}b=F[a+48>>2];if(b){break a}return 0}a=$[F[F[b>>2]+8>>2]](b,a)|0}else{a=0}return a|0}function ei(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;g=Z-32|0;Z=g;F[a+68>>2]=f;d=F[a+56>>2];e=F[d>>2];d=F[d+4>>2];F[g+24>>2]=0;F[g+16>>2]=0;F[g+20>>2]=0;a:{d=d-e|0;if((d|0)>0){m=a+60|0;d=d>>>2|0;n=d>>>0<=1?1:d;o=a+112|0;while(1){e=F[a+56>>2];d=F[e>>2];if(F[e+4>>2]-d>>2>>>0<=j>>>0){break a}Mb(m,F[d+(j<<2)>>2],g+16|0);i=F[g+20>>2];d=i>>31;h=F[g+16>>2];e=h>>31;f=(d^i)-d+((e^h)-e)|0;k=F[g+24>>2];d=k>>31;e=(d^k)-d|0;d=0;l=e;e=e+f|0;d=l>>>0>e>>>0?1:d;b:{if(!(d|e)){F[g+16>>2]=F[a+108>>2];break b}f=F[a+108>>2];l=f>>31;h=li(ki(f,l,h,h>>31),_,e,d);F[g+16>>2]=h;d=li(ki(f,l,i,i>>31),_,e,d);F[g+20>>2]=d;e=d;d=d>>31;e=(e^d)-d|0;d=h>>31;d=e+((d^h)-d|0)|0;if((k|0)>=0){F[g+24>>2]=f-d;break b}F[g+24>>2]=d-f}d=wa(o);f=F[g+16>>2];c:{if(d){F[g+24>>2]=0-F[g+24>>2];e=0-F[g+20>>2]|0;F[g+20>>2]=e;f=0-f|0;F[g+16>>2]=f;break c}e=F[g+20>>2]}d:{if((f|0)>=0){f=F[a+108>>2];d=f+F[g+24>>2]|0;f=e+f|0;break d}e:{if((e|0)<0){d=F[g+24>>2];f=d>>31;f=(d^f)-f|0;break e}d=F[g+24>>2];f=d>>31;f=F[a+100>>2]+(f-(d^f)|0)|0}if((d|0)<0){d=e>>31;d=(d^e)-d|0;break d}d=e>>31;d=F[a+100>>2]+(d-(d^e)|0)|0}e=F[a+100>>2];f:{if(!(d|f)){d=e;f=d;break f}if(!((d|0)!=(e|0)|f)){f=d;break f}if(!((e|0)!=(f|0)|d)){d=f;break f}g:{if(f){break g}i=F[a+108>>2];if((i|0)>=(d|0)){break g}d=(i<<1)-d|0;f=0;break f}h:{if((e|0)!=(f|0)){break h}i=F[a+108>>2];if((i|0)<=(d|0)){break h}d=(i<<1)-d|0;break f}i:{if((d|0)!=(e|0)){break i}e=F[a+108>>2];if((e|0)<=(f|0)){break i}f=(e<<1)-f|0;break f}if(d){break f}d=0;e=F[a+108>>2];if((e|0)>=(f|0)){break f}f=(e<<1)-f|0}F[g+12>>2]=d;F[g+8>>2]=f;j:{if(F[a+8>>2]<=0){break j}i=F[a+32>>2];f=0;while(1){d=f<<2;e=F[d+(g+8|0)>>2];h=F[a+16>>2];k:{if((e|0)>(h|0)){F[d+i>>2]=h;break k}d=d+i|0;h=F[a+12>>2];if((h|0)>(e|0)){F[d>>2]=h;break k}F[d>>2]=e}f=f+1|0;e=F[a+8>>2];if((f|0)<(e|0)){continue}break}d=0;if((e|0)<=0){break j}e=j<<3;h=e+c|0;k=b+e|0;while(1){f=d<<2;e=f+h|0;f=F[f+k>>2]+F[f+i>>2]|0;F[e>>2]=f;l:{if((f|0)>F[a+16>>2]){f=f-F[a+20>>2]|0}else{if((f|0)>=F[a+12>>2]){break l}f=f+F[a+20>>2]|0}F[e>>2]=f}d=d+1|0;if((d|0)>2]){continue}break}}j=j+1|0;if((n|0)!=(j|0)){continue}break}}Z=g+32|0;return 1}ta();v()}function Vh(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;g=Z-32|0;Z=g;F[a+68>>2]=f;d=F[a+56>>2];e=F[d>>2];d=F[d+4>>2];F[g+24>>2]=0;F[g+16>>2]=0;F[g+20>>2]=0;a:{d=d-e|0;if((d|0)>0){m=a+60|0;d=d>>>2|0;n=d>>>0<=1?1:d;o=a+112|0;while(1){e=F[a+56>>2];d=F[e>>2];if(F[e+4>>2]-d>>2>>>0<=j>>>0){break a}Kb(m,F[d+(j<<2)>>2],g+16|0);i=F[g+20>>2];d=i>>31;h=F[g+16>>2];e=h>>31;f=(d^i)-d+((e^h)-e)|0;k=F[g+24>>2];d=k>>31;e=(d^k)-d|0;d=0;l=e;e=e+f|0;d=l>>>0>e>>>0?1:d;b:{if(!(d|e)){F[g+16>>2]=F[a+108>>2];break b}f=F[a+108>>2];l=f>>31;h=li(ki(f,l,h,h>>31),_,e,d);F[g+16>>2]=h;d=li(ki(f,l,i,i>>31),_,e,d);F[g+20>>2]=d;e=d;d=d>>31;e=(e^d)-d|0;d=h>>31;d=e+((d^h)-d|0)|0;if((k|0)>=0){F[g+24>>2]=f-d;break b}F[g+24>>2]=d-f}d=wa(o);f=F[g+16>>2];c:{if(d){F[g+24>>2]=0-F[g+24>>2];e=0-F[g+20>>2]|0;F[g+20>>2]=e;f=0-f|0;F[g+16>>2]=f;break c}e=F[g+20>>2]}d:{if((f|0)>=0){f=F[a+108>>2];d=f+F[g+24>>2]|0;f=e+f|0;break d}e:{if((e|0)<0){d=F[g+24>>2];f=d>>31;f=(d^f)-f|0;break e}d=F[g+24>>2];f=d>>31;f=F[a+100>>2]+(f-(d^f)|0)|0}if((d|0)<0){d=e>>31;d=(d^e)-d|0;break d}d=e>>31;d=F[a+100>>2]+(d-(d^e)|0)|0}e=F[a+100>>2];f:{if(!(d|f)){d=e;f=d;break f}if(!((d|0)!=(e|0)|f)){f=d;break f}if(!((e|0)!=(f|0)|d)){d=f;break f}g:{if(f){break g}i=F[a+108>>2];if((i|0)>=(d|0)){break g}d=(i<<1)-d|0;f=0;break f}h:{if((e|0)!=(f|0)){break h}i=F[a+108>>2];if((i|0)<=(d|0)){break h}d=(i<<1)-d|0;break f}i:{if((d|0)!=(e|0)){break i}e=F[a+108>>2];if((e|0)<=(f|0)){break i}f=(e<<1)-f|0;break f}if(d){break f}d=0;e=F[a+108>>2];if((e|0)>=(f|0)){break f}f=(e<<1)-f|0}F[g+12>>2]=d;F[g+8>>2]=f;j:{if(F[a+8>>2]<=0){break j}i=F[a+32>>2];f=0;while(1){d=f<<2;e=F[d+(g+8|0)>>2];h=F[a+16>>2];k:{if((e|0)>(h|0)){F[d+i>>2]=h;break k}d=d+i|0;h=F[a+12>>2];if((h|0)>(e|0)){F[d>>2]=h;break k}F[d>>2]=e}f=f+1|0;e=F[a+8>>2];if((f|0)<(e|0)){continue}break}d=0;if((e|0)<=0){break j}e=j<<3;h=e+c|0;k=b+e|0;while(1){f=d<<2;e=f+h|0;f=F[f+k>>2]+F[f+i>>2]|0;F[e>>2]=f;l:{if((f|0)>F[a+16>>2]){f=f-F[a+20>>2]|0}else{if((f|0)>=F[a+12>>2]){break l}f=f+F[a+20>>2]|0}F[e>>2]=f}d=d+1|0;if((d|0)>2]){continue}break}}j=j+1|0;if((n|0)!=(j|0)){continue}break}}Z=g+32|0;return 1}ta();v()}function $a(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;h=Z-32|0;Z=h;a:{b:{if(F[a+8>>2]<<5>>>0>=b>>>0){break b}if((b|0)<0){break a}b=(b-1>>>5|0)+1|0;c=ka(b<<2);F[h+24>>2]=b;F[h+20>>2]=0;F[h+16>>2]=c;b=F[a>>2];F[h+12>>2]=0;F[h+8>>2]=b;c=F[a+4>>2];F[h+4>>2]=c&31;F[h>>2]=b+(c>>>3&536870908);e=Z-32|0;Z=e;i=F[h+4>>2];g=F[h+12>>2];j=F[h>>2];d=F[h+8>>2];b=(i-g|0)+(j-d<<3)|0;f=F[h+20>>2];c=b+f|0;F[h+20>>2]=c;if(!((c-1^f-1)>>>0<32?f:0)){F[F[h+16>>2]+((c>>>0>=33?c-1>>>5|0:0)<<2)>>2]=0}c=F[h+16>>2]+(f>>>3&536870908)|0;f=f&31;c:{if((f|0)==(g|0)){if((b|0)<=0){break c}if(g){i=32-g|0;f=(b|0)<(i|0)?b:i;i=-1<>>i-f;F[c>>2]=F[c>>2]&(i^-1)|i&F[d>>2];d=d+4|0;c=(g+f>>>3&536870908)+c|0;b=b-f|0}g=(b|0)/32|0;if(b+31>>>0>=63){pa(c,d,g<<2)}b=b-(g<<5)|0;if((b|0)<=0){break c}f=c;c=g<<2;g=f+c|0;b=-1>>>32-b|0;F[g>>2]=F[g>>2]&(b^-1)|b&F[c+d>>2];break c}F[e+28>>2]=g;F[e+24>>2]=d;F[e+20>>2]=i;F[e+16>>2]=j;F[e+12>>2]=f;F[e+8>>2]=c;b=F[e+28>>2];c=F[e+24>>2];g=(F[e+20>>2]-b|0)+(F[e+16>>2]-c<<3)|0;d:{if((g|0)<=0){b=F[e+12>>2];d=F[e+8>>2];break d}e:{if(!b){b=F[e+12>>2];break e}d=F[e+12>>2];j=32-d|0;k=32-b|0;f=(g|0)<(k|0)?g:k;i=f>>>0>j>>>0?j:f;l=F[e+8>>2];m=F[l>>2]&(-1<>>j-i^-1);j=F[c>>2]&(-1<>>k-f);F[l>>2]=m|(b>>>0>>0?j<>>b-d|0);c=d+i|0;b=c&31;F[e+12>>2]=b;d=l+(c>>>3&536870908)|0;F[e+8>>2]=d;c=f-i|0;if((c|0)>0){F[d>>2]=F[d>>2]&(-1>>>32-c^-1)|j>>>i+F[e+28>>2];F[e+12>>2]=c;b=c}g=g-f|0;c=F[e+24>>2]+4|0;F[e+24>>2]=c}i=-1<=32){j=i^-1;while(1){d=F[e+8>>2];c=F[c>>2];F[d>>2]=j&F[d>>2]|c<>2]=d+4;F[d+4>>2]=i&F[d+4>>2]|c>>>f;c=F[e+24>>2]+4|0;F[e+24>>2]=c;d=g>>>0>63;g=g-32|0;if(d){continue}break}}d=F[e+8>>2];if((g|0)<=0){break d}j=f;f=(g|0)>(f|0)?f:g;j=F[d>>2]&(i&-1>>>j-f^-1);i=F[c>>2]&-1>>>32-g;F[d>>2]=j|i<>2]=c;d=(b>>>3&536870908)+d|0;F[e+8>>2]=d;b=g-f|0;if((b|0)<=0){b=c;break d}F[d>>2]=F[d>>2]&(-1>>>32-b^-1)|i>>>f;F[e+12>>2]=b}F[e+4>>2]=b;F[e>>2]=d}Z=e+32|0;b=F[a>>2];F[a>>2]=F[h+16>>2];F[h+16>>2]=b;c=F[a+4>>2];F[a+4>>2]=F[h+20>>2];F[h+20>>2]=c;c=F[a+8>>2];F[a+8>>2]=F[h+24>>2];F[h+24>>2]=c;if(!b){break b}ja(b)}Z=h+32|0;return}na();v()}function xc(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;n=$[F[F[a>>2]+44>>2]](a)|0;a:{if((n|0)<=0){break a}i=F[b+4>>2]-F[b>>2]>>2;e=Z+-64|0;Z=e;f=kb(e);d=L(F[2541],n);cc(f,F[F[a+8>>2]+56>>2],n&255,5,0,d,d>>31);f=bc(ka(96),f);D[f+84|0]=1;F[f+72>>2]=F[f+68>>2];ac(f,i);F[f+60>>2]=F[F[a+8>>2]+60>>2];d=F[a+16>>2];F[a+16>>2]=f;if(d){xa(d)}Z=e- -64|0;h=F[a+16>>2];if(!F[h+80>>2]){break a}j=F[F[h>>2]>>2];if(!j){break a}m=F[c+12>>2];e=m;d=F[c+20>>2];g=F[c+8>>2];k=F[c+16>>2];if((e|0)<=(d|0)&g>>>0<=k>>>0|(d|0)>(e|0)){break a}l=L(i,n);i=j+F[h+48>>2]|0;h=F[c>>2];j=G[h+k|0];e=k+1|0;f=e?d:d+1|0;F[c+16>>2]=e;F[c+20>>2]=f;b:{c:{if(j){if(mc(l,n,c,i)){break c}break a}if((f|0)>=(m|0)&e>>>0>=g>>>0|(f|0)>(m|0)){break a}g=G[e+h|0];f=k+2|0;d=f>>>0<2?d+1|0:d;F[c+16>>2]=f;F[c+20>>2]=d;d=F[F[a+16>>2]+64>>2];d=F[d+4>>2]-F[d>>2]|0;if((g|0)==F[2541]){e=l<<2;if(e>>>0>d>>>0){break a}g=F[c+8>>2];k=F[c+12>>2];j=F[c+20>>2];d=F[c+16>>2];f=e+d|0;j=f>>>0>>0?j+1|0:j;if(f>>>0>g>>>0&(j|0)>=(k|0)|(j|0)>(k|0)){break a}la(i,d+F[c>>2]|0,e);f=F[c+20>>2];d=e+F[c+16>>2]|0;f=d>>>0>>0?f+1|0:f;F[c+16>>2]=d;F[c+20>>2]=f;break c}if(d>>>0>>0){break a}d=F[c+8>>2];f=F[c+16>>2];e=d-f|0;m=d>>>0>>0;d=F[c+20>>2];k=F[c+12>>2]-(m+d|0)|0;m=ki(g,0,l,0)>>>0>e>>>0;e=_;if(m&(e|0)>=(k|0)|(e|0)>(k|0)){break a}e=1;if(!l){break b}h=0;while(1){k=F[c+8>>2];j=F[c+12>>2];e=f+g|0;d=e>>>0>>0?d+1|0:d;if(e>>>0>k>>>0&(d|0)>=(j|0)|(d|0)>(j|0)){return 0}la(i+(h<<2)|0,F[c>>2]+f|0,g);d=F[c+20>>2];f=g+F[c+16>>2]|0;d=f>>>0>>0?d+1|0:d;F[c+16>>2]=f;F[c+20>>2]=d;h=h+1|0;if((l|0)!=(h|0)){continue}break}}e=1;if(!l){break b}d=F[a+20>>2];if(d){e=0;if($[F[F[d>>2]+32>>2]](d)|0){break b}}g=0;h=0;d:{if((l|0)<=0){break d}if((l|0)!=1){f=l&-2;while(1){e=g<<2;d=F[e+i>>2];F[e+i>>2]=0-(d&1)^d>>>1;d=e|4;e=F[d+i>>2];F[d+i>>2]=0-(e&1)^e>>>1;g=g+2|0;h=h+2|0;if((f|0)!=(h|0)){continue}break}}if(!(l&1)){break d}d=g<<2;f=F[d+i>>2];F[d+i>>2]=0-(f&1)^f>>>1}e=0}d=e;f=F[a+20>>2];e:{if(!f){break e}if(!($[F[F[f>>2]+40>>2]](f,c)|0)){break a}if(d){break e}a=F[a+20>>2];if(!($[F[F[a>>2]+44>>2]](a,i,i,l,n,F[b>>2])|0)){break a}}o=1}return o|0}function Lh(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;g=Z-48|0;Z=g;d=F[a+8>>2];if(d-2>>>0<=28){F[a+76>>2]=d;e=-1<>2]=d;F[a+80>>2]=e^-1;F[a+92>>2]=(d|0)/2;J[a+88>>2]=M(2)/M(d|0)}F[a+52>>2]=f;d=F[a+40>>2];e=F[d>>2];d=F[d+4>>2];F[g+16>>2]=0;F[g+8>>2]=0;F[g+12>>2]=0;a:{d=d-e|0;if((d|0)>0){m=a+8|0;n=a+44|0;d=d>>>2|0;o=d>>>0<=1?1:d;p=a+96|0;while(1){e=F[a+40>>2];d=F[e>>2];if(F[e+4>>2]-d>>2>>>0<=j>>>0){break a}Mb(n,F[d+(j<<2)>>2],g+8|0);h=F[g+12>>2];d=h>>31;i=F[g+8>>2];e=i>>31;f=(d^h)-d+((e^i)-e)|0;l=F[g+16>>2];d=l>>31;e=(d^l)-d|0;d=0;k=e;e=e+f|0;d=k>>>0>e>>>0?1:d;b:{if(!(d|e)){F[g+8>>2]=F[a+92>>2];break b}f=F[a+92>>2];k=f>>31;i=li(ki(f,k,i,i>>31),_,e,d);F[g+8>>2]=i;d=li(ki(f,k,h,h>>31),_,e,d);F[g+12>>2]=d;e=d>>31;e=(d^e)-e|0;d=i>>31;d=e+((d^i)-d|0)|0;if((l|0)>=0){F[g+16>>2]=f-d;break b}F[g+16>>2]=d-f}d=wa(p);f=F[g+8>>2];c:{if(d){F[g+16>>2]=0-F[g+16>>2];e=0-F[g+12>>2]|0;F[g+12>>2]=e;f=0-f|0;F[g+8>>2]=f;break c}e=F[g+12>>2]}d:{if((f|0)>=0){f=F[a+92>>2];d=f+F[g+16>>2]|0;f=e+f|0;break d}e:{if((e|0)<0){d=F[g+16>>2];f=d>>31;f=(d^f)-f|0;break e}d=F[g+16>>2];f=d>>31;f=F[a+84>>2]+(f-(d^f)|0)|0}if((d|0)<0){d=e>>31;d=(d^e)-d|0;break d}d=e>>31;d=F[a+84>>2]+(d-(d^e)|0)|0}e=F[a+84>>2];f:{if(!(d|f)){d=e;f=d;break f}if(!((d|0)!=(e|0)|f)){f=d;break f}if(!((e|0)!=(f|0)|d)){d=f;break f}g:{if(f){break g}h=F[a+92>>2];if((h|0)>=(d|0)){break g}d=(h<<1)-d|0;f=0;break f}h:{if((e|0)!=(f|0)){break h}h=F[a+92>>2];if((h|0)<=(d|0)){break h}d=(h<<1)-d|0;break f}i:{if((d|0)!=(e|0)){break i}e=F[a+92>>2];if((e|0)<=(f|0)){break i}f=(e<<1)-f|0;break f}if(d){break f}d=0;e=F[a+92>>2];if((e|0)>=(f|0)){break f}f=(e<<1)-f|0}e=j<<3;h=e+b|0;i=F[h>>2];h=F[h+4>>2];F[g+36>>2]=d;F[g+32>>2]=f;F[g+24>>2]=i;F[g+28>>2]=h;Jb(g+40|0,m,g+32|0,g+24|0);d=c+e|0;F[d>>2]=F[g+40>>2];F[d+4>>2]=F[g+44>>2];j=j+1|0;if((o|0)!=(j|0)){continue}break}}Z=g+48|0;return 1}ta();v()}function Hh(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;g=Z-48|0;Z=g;d=F[a+8>>2];if(d-2>>>0<=28){F[a+76>>2]=d;e=-1<>2]=d;F[a+80>>2]=e^-1;F[a+92>>2]=(d|0)/2;J[a+88>>2]=M(2)/M(d|0)}F[a+52>>2]=f;d=F[a+40>>2];e=F[d>>2];d=F[d+4>>2];F[g+16>>2]=0;F[g+8>>2]=0;F[g+12>>2]=0;a:{d=d-e|0;if((d|0)>0){m=a+8|0;n=a+44|0;d=d>>>2|0;o=d>>>0<=1?1:d;p=a+96|0;while(1){e=F[a+40>>2];d=F[e>>2];if(F[e+4>>2]-d>>2>>>0<=j>>>0){break a}Kb(n,F[d+(j<<2)>>2],g+8|0);h=F[g+12>>2];d=h>>31;i=F[g+8>>2];e=i>>31;f=(d^h)-d+((e^i)-e)|0;l=F[g+16>>2];d=l>>31;e=(d^l)-d|0;d=0;k=e;e=e+f|0;d=k>>>0>e>>>0?1:d;b:{if(!(d|e)){F[g+8>>2]=F[a+92>>2];break b}f=F[a+92>>2];k=f>>31;i=li(ki(f,k,i,i>>31),_,e,d);F[g+8>>2]=i;d=li(ki(f,k,h,h>>31),_,e,d);F[g+12>>2]=d;e=d>>31;e=(d^e)-e|0;d=i>>31;d=e+((d^i)-d|0)|0;if((l|0)>=0){F[g+16>>2]=f-d;break b}F[g+16>>2]=d-f}d=wa(p);f=F[g+8>>2];c:{if(d){F[g+16>>2]=0-F[g+16>>2];e=0-F[g+12>>2]|0;F[g+12>>2]=e;f=0-f|0;F[g+8>>2]=f;break c}e=F[g+12>>2]}d:{if((f|0)>=0){f=F[a+92>>2];d=f+F[g+16>>2]|0;f=e+f|0;break d}e:{if((e|0)<0){d=F[g+16>>2];f=d>>31;f=(d^f)-f|0;break e}d=F[g+16>>2];f=d>>31;f=F[a+84>>2]+(f-(d^f)|0)|0}if((d|0)<0){d=e>>31;d=(d^e)-d|0;break d}d=e>>31;d=F[a+84>>2]+(d-(d^e)|0)|0}e=F[a+84>>2];f:{if(!(d|f)){d=e;f=d;break f}if(!((d|0)!=(e|0)|f)){f=d;break f}if(!((e|0)!=(f|0)|d)){d=f;break f}g:{if(f){break g}h=F[a+92>>2];if((h|0)>=(d|0)){break g}d=(h<<1)-d|0;f=0;break f}h:{if((e|0)!=(f|0)){break h}h=F[a+92>>2];if((h|0)<=(d|0)){break h}d=(h<<1)-d|0;break f}i:{if((d|0)!=(e|0)){break i}e=F[a+92>>2];if((e|0)<=(f|0)){break i}f=(e<<1)-f|0;break f}if(d){break f}d=0;e=F[a+92>>2];if((e|0)>=(f|0)){break f}f=(e<<1)-f|0}e=j<<3;h=e+b|0;i=F[h>>2];h=F[h+4>>2];F[g+36>>2]=d;F[g+32>>2]=f;F[g+24>>2]=i;F[g+28>>2]=h;Jb(g+40|0,m,g+32|0,g+24|0);d=c+e|0;F[d>>2]=F[g+40>>2];F[d+4>>2]=F[g+44>>2];j=j+1|0;if((o|0)!=(j|0)){continue}break}}Z=g+48|0;return 1}ta();v()}function Nd(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;a:{if(!H[b+38>>1]){break a}if(!Ta(1,a+12|0,b)){break a}d=F[b+8>>2];e=F[b+16>>2];g=d-e|0;f=F[a+12>>2];d=F[b+12>>2]-(F[b+20>>2]+(d>>>0>>0)|0)|0;if(g>>>0>>6>>>0&(d|0)<=0|(d|0)<0){break a}d=F[a>>2];c=F[a+4>>2]-d>>2;b:{if(c>>>0>>0){qa(a,f-c|0);f=F[a+12>>2];break b}if(c>>>0<=f>>>0){break b}F[a+4>>2]=d+(f<<2)}if(!f){return 1}d=F[b+16>>2];c=F[b+20>>2];l=F[a>>2];j=F[b+8>>2];i=F[b+12>>2];g=0;while(1){if((c|0)>=(i|0)&d>>>0>=j>>>0|(c|0)>(i|0)){return 0}m=F[b>>2];k=G[m+d|0];d=d+1|0;c=d?c:c+1|0;F[b+16>>2]=d;F[b+20>>2]=c;e=k>>>2|0;h=0;c:{d:{e:{f:{n=k&3;switch(n|0){case 3:break f;case 0:break d;default:break e}}e=e+g|0;if(e>>>0>=f>>>0){return 0}ma(l+(g<<2)|0,0,(k&252)+4|0);g=e;break c}while(1){if((d|0)==(j|0)&(c|0)==(i|0)){break a}f=G[d+m|0];d=d+1|0;c=d?c:c+1|0;F[b+16>>2]=d;F[b+20>>2]=c;e=f<<(h<<3|6)|e;h=h+1|0;if((n|0)!=(h|0)){continue}break}}F[l+(g<<2)>>2]=e}f=F[a+12>>2];g=g+1|0;if(f>>>0>g>>>0){continue}break}b=a+16|0;j=F[a>>2];d=F[a+16>>2];c=F[a+20>>2]-d|0;g:{if(c>>>0<=16383){qa(b,4096-(c>>>2|0)|0);break g}if((c|0)==16384){break g}F[a+20>>2]=d+16384}c=a+28|0;g=F[c>>2];d=F[a+32>>2]-g>>3;h:{if(d>>>0>>0){_a(c,f-d|0);g=F[c>>2];break h}if(d>>>0>f>>>0){F[a+32>>2]=(f<<3)+g}if(!f){break a}}d=F[b>>2];b=0;a=0;while(1){c=j+(b<<2)|0;h=F[c>>2];e=a;i=(b<<3)+g|0;F[i+4>>2]=a;F[i>>2]=h;c=F[c>>2];a=c+a|0;if(a>>>0>4096){break a}i:{if(a>>>0<=e>>>0){break i}h=0;i=c&7;if(i){while(1){F[d+(e<<2)>>2]=b;e=e+1|0;h=h+1|0;if((i|0)!=(h|0)){continue}break}}if(c-1>>>0<=6){break i}while(1){c=d+(e<<2)|0;F[c>>2]=b;F[c+28>>2]=b;F[c+24>>2]=b;F[c+20>>2]=b;F[c+16>>2]=b;F[c+12>>2]=b;F[c+8>>2]=b;F[c+4>>2]=b;e=e+8|0;if((e|0)!=(a|0)){continue}break}}b=b+1|0;if((f|0)!=(b|0)){continue}break}o=(a|0)==4096}return o}function qf(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;f=Z-32|0;Z=f;e=f+8|0;c=Z-80|0;Z=c;a=F[b+36>>2];F[c+72>>2]=F[b+32>>2];F[c+76>>2]=a;d=F[b+28>>2];a=c- -64|0;F[a>>2]=F[b+24>>2];F[a+4>>2]=d;a=F[b+20>>2];F[c+56>>2]=F[b+16>>2];F[c+60>>2]=a;a=F[b+12>>2];F[c+48>>2]=F[b+8>>2];F[c+52>>2]=a;a=F[b+4>>2];F[c+40>>2]=F[b>>2];F[c+44>>2]=a;jc(c+8|0,c+40|0,c+24|0);a=F[c+8>>2];a:{if(a){F[e>>2]=a;a=e+4|0;if(D[c+23|0]>=0){b=c+8|4;e=F[b+4>>2];F[a>>2]=F[b>>2];F[a+4>>2]=e;F[a+8>>2]=F[b+8>>2];break a}ra(a,F[c+12>>2],F[c+16>>2]);if(D[c+23|0]>=0){break a}ja(F[c+12>>2]);break a}if(D[c+23|0]<0){ja(F[c+12>>2])}a=G[c+31|0];if(a>>>0>=2){b=ka(32);D[b+26|0]=0;a=G[1475]|G[1476]<<8;D[b+24|0]=a;D[b+25|0]=a>>>8;a=G[1471]|G[1472]<<8|(G[1473]<<16|G[1474]<<24);d=G[1467]|G[1468]<<8|(G[1469]<<16|G[1470]<<24);D[b+16|0]=d;D[b+17|0]=d>>>8;D[b+18|0]=d>>>16;D[b+19|0]=d>>>24;D[b+20|0]=a;D[b+21|0]=a>>>8;D[b+22|0]=a>>>16;D[b+23|0]=a>>>24;a=G[1463]|G[1464]<<8|(G[1465]<<16|G[1466]<<24);d=G[1459]|G[1460]<<8|(G[1461]<<16|G[1462]<<24);D[b+8|0]=d;D[b+9|0]=d>>>8;D[b+10|0]=d>>>16;D[b+11|0]=d>>>24;D[b+12|0]=a;D[b+13|0]=a>>>8;D[b+14|0]=a>>>16;D[b+15|0]=a>>>24;a=G[1455]|G[1456]<<8|(G[1457]<<16|G[1458]<<24);d=G[1451]|G[1452]<<8|(G[1453]<<16|G[1454]<<24);D[b|0]=d;D[b+1|0]=d>>>8;D[b+2|0]=d>>>16;D[b+3|0]=d>>>24;D[b+4|0]=a;D[b+5|0]=a>>>8;D[b+6|0]=a>>>16;D[b+7|0]=a>>>24;F[c+8>>2]=-1;a=c+8|4;ra(a,b,26);d=D[c+23|0];F[e>>2]=F[c+8>>2];e=e+4|0;if((d|0)>=0){d=F[a+4>>2];F[e>>2]=F[a>>2];F[e+4>>2]=d;F[e+8>>2]=F[a+8>>2];ja(b);break a}ra(e,F[c+12>>2],F[c+16>>2]);if(D[c+23|0]<0){ja(F[c+12>>2])}ja(b);break a}F[e>>2]=0;F[e+4>>2]=0;F[e+16>>2]=a;F[e+8>>2]=0;F[e+12>>2]=0}Z=c+80|0;a=F[f+24>>2];if(D[f+23|0]<0){ja(F[f+12>>2])}Z=f+32|0;return a|0}function Ph(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0;e=Z-32|0;Z=e;a:{if((c|0)!=3){break a}c=F[a+4>>2];f=F[a+12>>2];F[e+24>>2]=-1;F[e+16>>2]=-1;F[e+20>>2]=1065353216;F[e+8>>2]=-1;F[e+12>>2]=-1;if((b|0)==-2){break a}i=F[F[F[c+4>>2]+8>>2]+(f<<2)>>2];if(($[F[F[c>>2]+8>>2]](c)|0)==1){h=F[F[F[c+4>>2]+8>>2]+(f<<2)>>2];b:{if(($[F[F[c>>2]+8>>2]](c)|0)!=1|b-1>>>0>5){break b}g=$[F[F[c>>2]+36>>2]](c)|0;a=$[F[F[c>>2]+44>>2]](c,f)|0;if(!g|!a){break b}f=$[F[F[c>>2]+40>>2]](c,f)|0;c:{if(f){if((b|0)!=6){break b}b=F[c+44>>2];d=ka(112);F[d+4>>2]=h;c=F[e+12>>2];F[d+8>>2]=F[e+8>>2];F[d+12>>2]=c;c=F[e+20>>2];F[d+16>>2]=F[e+16>>2];F[d+20>>2]=c;F[d+24>>2]=F[e+24>>2];F[d+40>>2]=a;c=a+12|0;F[d+36>>2]=c;F[d+32>>2]=f;F[d+28>>2]=b;F[d+68>>2]=a;F[d- -64>>2]=c;F[d+60>>2]=f;F[d+56>>2]=b;F[d+48>>2]=0;F[d+52>>2]=0;F[d>>2]=5928;F[d+88>>2]=1065353216;F[d+92>>2]=-1;F[d+80>>2]=-1;F[d+84>>2]=-1;F[d+72>>2]=1;F[d+76>>2]=-1;F[d+44>>2]=6492;a=d+96|0;break c}if((b|0)!=6){break b}b=F[c+44>>2];d=ka(112);F[d+4>>2]=h;c=F[e+12>>2];F[d+8>>2]=F[e+8>>2];F[d+12>>2]=c;c=F[e+20>>2];F[d+16>>2]=F[e+16>>2];F[d+20>>2]=c;F[d+24>>2]=F[e+24>>2];F[d+40>>2]=a;c=a+12|0;F[d+36>>2]=c;F[d+32>>2]=g;F[d+28>>2]=b;F[d+68>>2]=a;F[d- -64>>2]=c;F[d+60>>2]=g;F[d+56>>2]=b;F[d+48>>2]=0;F[d+52>>2]=0;F[d>>2]=6932;F[d+88>>2]=1065353216;F[d+92>>2]=-1;F[d+80>>2]=-1;F[d+84>>2]=-1;F[d+72>>2]=1;F[d+76>>2]=-1;F[d+44>>2]=7352;a=d+96|0}F[a>>2]=0;F[a+4>>2]=0;D[a+5|0]=0;D[a+6|0]=0;D[a+7|0]=0;D[a+8|0]=0;D[a+9|0]=0;D[a+10|0]=0;D[a+11|0]=0;D[a+12|0]=0}if(d){break a}}d=ka(28);F[d+4>>2]=i;a=F[e+12>>2];F[d+8>>2]=F[e+8>>2];F[d+12>>2]=a;a=F[e+20>>2];F[d+16>>2]=F[e+16>>2];F[d+20>>2]=a;F[d+24>>2]=F[e+24>>2];F[d>>2]=7764}Z=e+32|0;return d|0}function $c(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;f=Z-80|0;Z=f;a:{if(!Wb(1,f+76|0,b)){break a}k=F[f+76>>2];if(!k){break a}c=F[b+8>>2];e=F[b+16>>2];c=ki(c-e|0,F[b+12>>2]-(F[b+20>>2]+(c>>>0>>0)|0)|0,5,0);e=_;if(c>>>0>>0&(e|0)<=0|(e|0)<0){break a}c=F[a+4>>2];d=F[a+8>>2]-c>>2;b:{if(d>>>0>>0){qa(a+4|0,k-d|0);break b}if(d>>>0<=k>>>0){break b}F[a+8>>2]=c+(k<<2)}p=a+16|0;l=F[a+32>>2];while(1){g=F[b+12>>2];c=g;d=F[b+20>>2];h=F[b+8>>2];e=F[b+16>>2];if((c|0)<=(d|0)&h>>>0<=e>>>0|(c|0)<(d|0)){d=0;break a}m=F[b>>2];q=G[m+e|0];c=d;i=e+1|0;c=i?c:c+1|0;F[b+16>>2]=i;F[b+20>>2]=c;if(h>>>0<=i>>>0&(c|0)>=(g|0)|(c|0)>(g|0)){d=0;break a}i=G[i+m|0];c=d;j=e+2|0;c=j>>>0<2?c+1|0:c;F[b+16>>2]=j;F[b+20>>2]=c;if(h>>>0<=j>>>0&(c|0)>=(g|0)|(c|0)>(g|0)){d=0;break a}j=G[j+m|0];c=d;n=e+3|0;c=n>>>0<3?c+1|0:c;F[b+16>>2]=n;F[b+20>>2]=c;if(h>>>0<=n>>>0&(c|0)>=(g|0)|(c|0)>(g|0)){d=0;break a}h=G[m+n|0];c=d;d=e+4|0;c=d>>>0<4?c+1|0:c;F[b+16>>2]=d;F[b+20>>2]=c;if(q>>>0>4){d=0;break a}if((i-12&255)>>>0<245){d=0;break a}if(!j){d=0;break a}c=kb(f+8|0);g=(h|0)!=0;d=i-1|0;if(d>>>0<=10){d=F[(d<<2)+10148>>2]}else{d=-1}d=L(d,j);cc(c,q,j,i,g,d,d>>31);if(Wb(1,f+4|0,b)){e=F[f+4>>2];F[f+68>>2]=e;d=bc(ka(96),c);$[F[F[l>>2]+8>>2]](l,F[l+12>>2]-F[l+8>>2]>>2,d);d=(F[l+12>>2]-F[l+8>>2]>>2)-1|0;h=d<<2;F[F[h+F[l+8>>2]>>2]+60>>2]=e;F[F[a+4>>2]+(o<<2)>>2]=d;c=F[a+16>>2];e=F[a+20>>2]-c>>2;c:{if((e|0)>(d|0)){break c}F[f>>2]=-1;d=d+1|0;if(d>>>0>e>>>0){Fa(p,d-e|0,f);c=F[p>>2];break c}if(d>>>0>=e>>>0){break c}F[a+20>>2]=(d<<2)+c}F[c+h>>2]=o;d=1;o=o+1|0;if((o|0)!=(k|0)){continue}break a}break}d=0}Z=f+80|0;return d|0}function Oc(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;k=Z-16|0;Z=k;F[k+8>>2]=c;h=F[a+12>>2];d=F[a+8>>2];g=h-d>>2;a:{if((g|0)>(b|0)){break a}e=b+1|0;if(e>>>0>g>>>0){l=e-g|0;f=F[a+16>>2];d=F[a+12>>2];if(l>>>0<=f-d>>2>>>0){if(l){e=d;d=l<<2;d=ma(e,0,d)+d|0}F[a+12>>2]=d;break a}b:{c:{d:{m=F[a+8>>2];g=d-m>>2;i=g+l|0;if(i>>>0<1073741824){e=f-m|0;f=e>>>1|0;e=e>>>0>=2147483644?1073741823:f>>>0>i>>>0?f:i;if(e){if(e>>>0>=1073741824){break d}j=ka(e<<2)}h=(g<<2)+j|0;f=l<<2;i=ma(h,0,f);g=f+i|0;e=(e<<2)+j|0;if((d|0)==(m|0)){break c}while(1){d=d-4|0;f=F[d>>2];F[d>>2]=0;h=h-4|0;F[h>>2]=f;if((d|0)!=(m|0)){continue}break}F[a+16>>2]=e;e=F[a+12>>2];F[a+12>>2]=g;d=F[a+8>>2];F[a+8>>2]=h;if((d|0)==(e|0)){break b}while(1){e=e-4|0;f=F[e>>2];F[e>>2]=0;if(f){xa(f)}if((d|0)!=(e|0)){continue}break}break b}na();v()}oa();v()}F[a+16>>2]=e;F[a+12>>2]=g;F[a+8>>2]=i}if(d){ja(d)}break a}if(e>>>0>=g>>>0){break a}d=d+(e<<2)|0;if((d|0)!=(h|0)){while(1){h=h-4|0;c=F[h>>2];F[h>>2]=0;if(c){xa(c)}if((d|0)!=(h|0)){continue}break}c=F[k+8>>2]}F[a+12>>2]=d}e:{f:{d=F[c+56>>2];g:{if((d|0)>4){break g}j=L(d,12)+a|0;d=F[j+24>>2];if((d|0)!=F[j+28>>2]){F[d>>2]=b;F[j+24>>2]=d+4;break g}i=F[j+20>>2];g=d-i|0;f=g>>2;e=f+1|0;if(e>>>0>=1073741824){break f}d=g>>>1|0;e=g>>>0>=2147483644?1073741823:d>>>0>e>>>0?d:e;if(e){if(e>>>0>=1073741824){break e}d=ka(e<<2)}else{d=0}f=d+(f<<2)|0;F[f>>2]=b;d=pa(d,i,g);F[j+20>>2]=d;F[j+24>>2]=f+4;F[j+28>>2]=d+(e<<2);if(!i){break g}ja(i)}F[c+60>>2]=b;a=F[a+8>>2];F[k+8>>2]=0;a=a+(b<<2)|0;b=F[a>>2];F[a>>2]=c;if(b){xa(b)}a=F[k+8>>2];F[k+8>>2]=0;if(a){xa(a)}Z=k+16|0;return}na();v()}oa();v()}function Pf(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;i=c;d=a;a:{if(F[a+12>>2]==(b|0)){break a}a=b;b=F[d+4>>2];e=F[d>>2];if((b|0)!=(e|0)){while(1){c=b-12|0;if(D[b-1|0]<0){ja(F[c>>2])}b=c;if((e|0)!=(b|0)){continue}break}}F[d+12>>2]=a;F[d+4>>2]=e;c=F[a>>2];j=a+4|0;if((c|0)==(j|0)){break a}while(1){a=F[d+4>>2];b:{if((a|0)!=F[d+8>>2]){c:{if(D[c+27|0]>=0){b=F[c+20>>2];F[a>>2]=F[c+16>>2];F[a+4>>2]=b;F[a+8>>2]=F[c+24>>2];break c}ra(a,F[c+16>>2],F[c+20>>2])}F[d+4>>2]=a+12;break b}g=0;d:{e:{f:{a=F[d+4>>2];e=F[d>>2];f=(a-e|0)/12|0;b=f+1|0;if(b>>>0<357913942){h=(F[d+8>>2]-e|0)/12|0;k=h<<1;b=h>>>0>=178956970?357913941:b>>>0>>0?k:b;if(b){if(b>>>0>=357913942){break f}g=ka(L(b,12))}h=L(b,12);b=L(f,12)+g|0;g:{if(D[c+27|0]>=0){f=F[c+20>>2];F[b>>2]=F[c+16>>2];F[b+4>>2]=f;F[b+8>>2]=F[c+24>>2];break g}ra(b,F[c+16>>2],F[c+20>>2]);e=F[d>>2];a=F[d+4>>2]}g=g+h|0;f=b+12|0;if((a|0)==(e|0)){break e}while(1){a=a-12|0;h=F[a+4>>2];b=b-12|0;F[b>>2]=F[a>>2];F[b+4>>2]=h;F[b+8>>2]=F[a+8>>2];F[a>>2]=0;F[a+4>>2]=0;F[a+8>>2]=0;if((a|0)!=(e|0)){continue}break}F[d+8>>2]=g;a=F[d+4>>2];F[d+4>>2]=f;e=F[d>>2];F[d>>2]=b;if((a|0)==(e|0)){break d}while(1){b=a-12|0;if(D[a-1|0]<0){ja(F[b>>2])}a=b;if((e|0)!=(b|0)){continue}break}break d}na();v()}oa();v()}F[d+8>>2]=g;F[d+4>>2]=f;F[d>>2]=b}if(e){ja(e)}}b=F[c+4>>2];h:{if(b){while(1){a=b;b=F[b>>2];if(b){continue}break h}}while(1){a=F[c+8>>2];b=F[a>>2]!=(c|0);c=a;if(b){continue}break}}c=a;if((j|0)!=(a|0)){continue}break}}a=0;i:{if((i|0)<0){break i}b=F[d>>2];if((F[d+4>>2]-b|0)/12>>>0<=i>>>0){break i}a=b+L(i,12)|0;a=D[a+11|0]<0?F[a>>2]:a}return a|0}function Ad(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;i=Z-16|0;Z=i;F[i>>2]=b;f=-1;a:{if((b|0)==-1){F[i+4>>2]=-1;break a}f=b+1|0;F[i+4>>2]=(f>>>0)%3|0?f:b-2|0;if((b>>>0)%3|0){f=b-1|0;break a}f=b+2|0}F[i+8>>2]=f;n=(b>>>0)/3|0;b:{c:{d:{while(1){e:{f:{j=F[(l<<2)+i>>2];if((j|0)!=-1){f=F[F[F[a+8>>2]+12>>2]+(j<<2)>>2];if((f|0)!=-1){break f}}f=0;g=F[a+216>>2];if((g|0)==F[a+220>>2]){break e}while(1){g=L(f,144)+g|0;d=F[g+136>>2];c=F[g+140>>2];g:{if(d>>>0>>0){F[d>>2]=j;F[g+136>>2]=d+4;break g}e=d;d=F[g+132>>2];k=e-d|0;e=k>>2;h=e+1|0;if(h>>>0>=1073741824){break d}m=e<<2;c=c-d|0;e=c>>>1|0;h=c>>>0>=2147483644?1073741823:h>>>0>>0?e:h;if(h){if(h>>>0>=1073741824){break c}c=ka(h<<2)}else{c=0}e=m+c|0;F[e>>2]=j;c=pa(c,d,k);F[g+132>>2]=c;F[g+136>>2]=e+4;F[g+140>>2]=c+(h<<2);if(!d){break g}ja(d)}f=f+1|0;g=F[a+216>>2];if(f>>>0<(F[a+220>>2]-g|0)/144>>>0){continue}break}break e}if((b|0)==-1|(f>>>0)/3>>>0>>0){break e}f=0;if(F[a+220>>2]==F[a+216>>2]){break e}while(1){h:{if(!wa(F[a+368>>2]+(f<<4)|0)){break h}g=F[a+216>>2]+L(f,144)|0;d=F[g+136>>2];c=F[g+140>>2];if(d>>>0>>0){F[d>>2]=j;F[g+136>>2]=d+4;break h}e=d;d=F[g+132>>2];k=e-d|0;e=k>>2;h=e+1|0;if(h>>>0>=1073741824){break b}m=e<<2;c=c-d|0;e=c>>>1|0;h=c>>>0>=2147483644?1073741823:h>>>0>>0?e:h;if(h){if(h>>>0>=1073741824){break c}c=ka(h<<2)}else{c=0}e=m+c|0;F[e>>2]=j;c=pa(c,d,k);F[g+132>>2]=c;F[g+136>>2]=e+4;F[g+140>>2]=c+(h<<2);if(!d){break h}ja(d)}f=f+1|0;if(f>>>0<(F[a+220>>2]-F[a+216>>2]|0)/144>>>0){continue}break}}l=l+1|0;if((l|0)!=3){continue}break}Z=i+16|0;return 1}na();v()}oa();v()}na();v()}function Bd(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;h=Z-16|0;Z=h;m=-1;a:{b:{c:{if(!Da(1,h+12|0,b)){break c}j=F[h+12>>2];if(j){c=F[a+8>>2];if((F[c+4>>2]-F[c>>2]>>2>>>0)/3>>>0>>0){break c}while(1){if(!Da(1,h+8|0,b)){break c}c=F[h+8>>2];if(!Da(1,h+8|0,b)){break c}g=c+g|0;c=F[h+8>>2];if(g>>>0>>0){break c}e=g-c|0;c=F[a+40>>2];d:{if((c|0)!=F[a+44>>2]){F[c+4>>2]=g;F[c>>2]=e;F[a+40>>2]=c+12;j=F[h+12>>2];break d}d=c;c=F[a+36>>2];l=d-c|0;d=(l|0)/12|0;f=d+1|0;if(f>>>0>=357913942){break b}i=d<<1;f=d>>>0>=178956970?357913941:f>>>0>>0?i:f;if(f){if(f>>>0>=357913942){break a}i=ka(L(f,12))}else{i=0}d=i+L(d,12)|0;F[d+4>>2]=g;F[d>>2]=e;e=pa(d+L((l|0)/-12|0,12)|0,c,l);F[a+44>>2]=i+L(f,12);F[a+40>>2]=d+12;F[a+36>>2]=e;if(!c){break d}ja(c)}k=k+1|0;if(k>>>0>>0){continue}break}g=0;hc(b,0,0);if(j){while(1){c=G[b+36|0];d=H[F[a+4>>2]+36>>1];e:{f:{if(((d<<8|d>>>8)&65535)>>>0<=513){if(!c){break e}e=0;d=F[b+32>>2];k=d>>>3|0;f=F[b+24>>2];c=k+f|0;i=F[b+28>>2];g:{if(c>>>0>=i>>>0){c=d;break g}e=G[c|0];c=d+1|0;F[b+32>>2]=c;k=c>>>3|0;e=e>>>(d&7)&1}if(i>>>0>f+k>>>0){break f}break e}if(!c){break e}e=0;c=F[b+32>>2];d=F[b+24>>2]+(c>>>3|0)|0;if(d>>>0>=I[b+28>>2]){break e}e=G[d|0]>>>(c&7)&1}F[b+32>>2]=c+1}c=F[a+36>>2]+L(g,12)|0;D[c+8|0]=G[c+8|0]&254|e&1;g=g+1|0;if((j|0)!=(g|0)){continue}break}}D[b+36|0]=0;d=F[b+20>>2];a=0;e=F[b+32>>2]+7|0;a=e>>>0<7?1:a;e=a<<29|e>>>3;c=e+F[b+16>>2]|0;a=(a>>>3|0)+d|0;F[b+16>>2]=c;F[b+20>>2]=c>>>0>>0?a+1|0:a}m=F[b+16>>2]}Z=h+16|0;return m}na();v()}oa();v()}function xf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;m=Z-16|0;Z=m;l=F[b+80>>2];e=G[c+24|0];a=L(l,e);a:{b:{c:{d:{b=F[c+28>>2];if(!(!G[c+84|0]|(b|0)!=1&(b|0)!=2)){b=F[c+48>>2];c=F[F[c>>2]>>2];F[m+8>>2]=0;F[m>>2]=0;F[m+4>>2]=0;if(a){if((a|0)<0){break d}f=ka(a);h=la(f,b+c|0,a)+a|0}a=F[d>>2];if(a){F[d+4>>2]=a;ja(a)}F[d+8>>2]=h;F[d+4>>2]=h;F[d>>2]=f;b=1;break a}if(e){f=ka(e);ma(f,0,e)}e:{i=F[d+4>>2];b=F[d>>2];g=i-b|0;f:{if(g>>>0>>0){k=a-g|0;j=F[d+8>>2];if(k>>>0<=j-i>>>0){n=d,o=ma(i,0,k)+k|0,F[n+4>>2]=o;break f}if((a|0)<0){break e}i=j-b|0;j=i<<1;i=i>>>0>=1073741823?2147483647:a>>>0>>0?j:a;j=ka(i);ma(j+g|0,0,k);g=pa(j,b,g);F[d+8>>2]=g+i;F[d+4>>2]=a+g;F[d>>2]=g;if(!b){break f}ja(b);break f}if(a>>>0>=g>>>0){break f}F[d+4>>2]=a+b}if(!l){b=1;break c}if(!e){b=0;a=0;while(1){if(!Cb(c,G[c+84|0]?a:F[F[c+68>>2]+(a<<2)>>2],D[c+24|0],f)){break c}a=a+1|0;b=l>>>0<=a>>>0;if((a|0)!=(l|0)){continue}break}break c}i=e&252;g=e&3;b=0;j=e>>>0<4;e=0;while(1){if(!Cb(c,G[c+84|0]?e:F[F[c+68>>2]+(e<<2)>>2],D[c+24|0],f)){break c}b=0;a=0;k=0;if(!j){while(1){D[F[d>>2]+h|0]=G[a+f|0];D[(F[d>>2]+h|0)+1|0]=G[(a|1)+f|0];D[(F[d>>2]+h|0)+2|0]=G[(a|2)+f|0];D[(F[d>>2]+h|0)+3|0]=G[(a|3)+f|0];a=a+4|0;h=h+4|0;k=k+4|0;if((i|0)!=(k|0)){continue}break}}if(g){while(1){D[F[d>>2]+h|0]=G[a+f|0];a=a+1|0;h=h+1|0;b=b+1|0;if((g|0)!=(b|0)){continue}break}}e=e+1|0;b=l>>>0<=e>>>0;if((e|0)!=(l|0)){continue}break}break b}na();v()}na();v()}if(!f){break a}}ja(f)}Z=m+16|0;return b&1}function wf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;m=Z-16|0;Z=m;l=F[b+80>>2];e=G[c+24|0];a=L(l,e);a:{b:{c:{d:{b=F[c+28>>2];if(!(!G[c+84|0]|(b|0)!=1&(b|0)!=2)){b=F[c+48>>2];c=F[F[c>>2]>>2];F[m+8>>2]=0;F[m>>2]=0;F[m+4>>2]=0;if(a){if((a|0)<0){break d}f=ka(a);h=la(f,b+c|0,a)+a|0}a=F[d>>2];if(a){F[d+4>>2]=a;ja(a)}F[d+8>>2]=h;F[d+4>>2]=h;F[d>>2]=f;b=1;break a}if(e){f=ka(e);ma(f,0,e)}e:{i=F[d+4>>2];b=F[d>>2];g=i-b|0;f:{if(g>>>0>>0){k=a-g|0;j=F[d+8>>2];if(k>>>0<=j-i>>>0){n=d,o=ma(i,0,k)+k|0,F[n+4>>2]=o;break f}if((a|0)<0){break e}i=j-b|0;j=i<<1;i=i>>>0>=1073741823?2147483647:a>>>0>>0?j:a;j=ka(i);ma(j+g|0,0,k);g=pa(j,b,g);F[d+8>>2]=g+i;F[d+4>>2]=a+g;F[d>>2]=g;if(!b){break f}ja(b);break f}if(a>>>0>=g>>>0){break f}F[d+4>>2]=a+b}if(!l){b=1;break c}if(!e){b=0;a=0;while(1){if(!Bb(c,G[c+84|0]?a:F[F[c+68>>2]+(a<<2)>>2],D[c+24|0],f)){break c}a=a+1|0;b=l>>>0<=a>>>0;if((a|0)!=(l|0)){continue}break}break c}i=e&252;g=e&3;b=0;j=e>>>0<4;e=0;while(1){if(!Bb(c,G[c+84|0]?e:F[F[c+68>>2]+(e<<2)>>2],D[c+24|0],f)){break c}b=0;a=0;k=0;if(!j){while(1){D[F[d>>2]+h|0]=G[a+f|0];D[(F[d>>2]+h|0)+1|0]=G[(a|1)+f|0];D[(F[d>>2]+h|0)+2|0]=G[(a|2)+f|0];D[(F[d>>2]+h|0)+3|0]=G[(a|3)+f|0];a=a+4|0;h=h+4|0;k=k+4|0;if((i|0)!=(k|0)){continue}break}}if(g){while(1){D[F[d>>2]+h|0]=G[a+f|0];a=a+1|0;h=h+1|0;b=b+1|0;if((g|0)!=(b|0)){continue}break}}e=e+1|0;b=l>>>0<=e>>>0;if((e|0)!=(l|0)){continue}break}break b}na();v()}na();v()}if(!f){break a}}ja(f)}Z=m+16|0;return b&1}function Jb(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;k=F[b+16>>2];h=F[c+4>>2]-k|0;e=F[c>>2]-k|0;F[c>>2]=e;f=h;F[c+4>>2]=f;l=F[b+16>>2];f=f>>31;g=(h^f)-f|0;f=e>>31;m=l>>>0>=g+((f^e)-f|0)>>>0;a:{if(m){f=h;break a}b:{c:{if((e|0)>=0){g=1;j=1;if((h|0)>=0){break b}i=1;g=-1;j=-1;if(e){break c}break b}i=-1;g=-1;j=-1;if((h|0)<=0){break b}}g=(h|0)<=0?-1:1;j=i}n=L(j,l);f=(e<<1)-n|0;i=(L(g,j)|0)>=0;e=L(g,l);f=((i?0-f|0:f)+e|0)/2|0;F[c+4>>2]=f;e=(h<<1)-e|0;e=((i?0-e|0:e)+n|0)/2|0;F[c>>2]=e}d:{e:{f:{g:{h:{i:{j:{if(e){if((e|0)<0){break j}if((f|0)>=0){break i}break f}if(f){break h}j=1;g=0;f=0;i=0;break d}j=1;if((f|0)>0){break g}i=(f|0)>0?3:0;g=f;f=e;break d}g=0-f|0;f=0-e|0;i=2;break e}if((f|0)<=0){break f}}f=0-f|0;g=e;i=3;break e}g=0-e|0;i=1}F[c>>2]=f;F[c+4>>2]=g;j=0}e=F[d>>2]+f|0;h=F[b+16>>2];k:{if((e|0)>(h|0)){e=e-F[b+4>>2]|0;break k}if((0-h|0)<=(e|0)){break k}e=F[b+4>>2]+e|0}c=F[d+4>>2]+g|0;l:{if((h|0)<(c|0)){c=c-F[b+4>>2]|0;break l}if((0-h|0)<=(c|0)){break l}c=F[b+4>>2]+c|0}m:{if(j){b=c;break m}b=c;n:{o:{p:{d=4-i|0;switch((d>>>0<4?d:0-i|0)-1|0){case 2:break n;case 1:break o;case 0:break p;default:break m}}b=0-e|0;e=c;break m}b=0-c|0;e=0-e|0;break m}b=e;e=0-c|0}q:{if(m){c=b;break q}r:{s:{if((e|0)>=0){c=1;f=1;if((b|0)>=0){break r}d=1;c=-1;f=-1;if(e){break s}break r}d=-1;c=-1;f=-1;if((b|0)<=0){break r}}c=(b|0)<=0?-1:1;f=d}d=e<<1;e=L(f,h);d=d-e|0;f=(L(c,f)|0)>=0;g=f?0-d|0:d;d=L(c,h);c=(g+d|0)/2|0;b=(b<<1)-d|0;e=(e+(f?0-b|0:b)|0)/2|0}b=a;F[b>>2]=e+k;F[b+4>>2]=c+k}function Uh(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;F[a+8>>2]=e;m=a+32|0;h=F[m>>2];g=F[a+36>>2]-h>>2;a:{if(g>>>0>>0){qa(m,e-g|0);f=F[a+8>>2];break a}f=e;if(f>>>0>=g>>>0){break a}F[a+36>>2]=h+(e<<2);f=e}g=e>>>0>1073741823?-1:e<<2;n=ma(ka(g),0,g);b:{if((f|0)<=0){break b}h=F[a+32>>2];while(1){f=i<<2;g=F[f+n>>2];j=F[a+16>>2];c:{if((g|0)>(j|0)){F[f+h>>2]=j;break c}f=f+h|0;j=F[a+12>>2];if((j|0)>(g|0)){F[f>>2]=j;break c}F[f>>2]=g}f=F[a+8>>2];i=i+1|0;if((f|0)>(i|0)){continue}break}if((f|0)<=0){break b}i=0;while(1){g=i<<2;f=g+c|0;g=F[b+g>>2]+F[g+h>>2]|0;F[f>>2]=g;d:{if((g|0)>F[a+16>>2]){g=g-F[a+20>>2]|0}else{if((g|0)>=F[a+12>>2]){break d}g=g+F[a+20>>2]|0}F[f>>2]=g}f=F[a+8>>2];i=i+1|0;if((f|0)>(i|0)){continue}break}}if(!((d|0)<=(e|0)|(f|0)<=0)){p=0-e<<2;g=e;while(1){e:{if((f|0)<=0){break e}l=g<<2;o=l+c|0;q=o+p|0;j=F[m>>2];i=0;while(1){f=i<<2;h=F[f+q>>2];k=F[a+16>>2];f:{if((h|0)>(k|0)){F[f+j>>2]=k;break f}f=f+j|0;k=F[a+12>>2];if((k|0)>(h|0)){F[f>>2]=k;break f}F[f>>2]=h}f=F[a+8>>2];i=i+1|0;if((f|0)>(i|0)){continue}break}i=0;if((f|0)<=0){break e}l=b+l|0;while(1){h=i<<2;f=h+o|0;h=F[h+l>>2]+F[h+j>>2]|0;F[f>>2]=h;g:{if((h|0)>F[a+16>>2]){h=h-F[a+20>>2]|0}else{if((h|0)>=F[a+12>>2]){break g}h=h+F[a+20>>2]|0}F[f>>2]=h}f=F[a+8>>2];i=i+1|0;if((f|0)>(i|0)){continue}break}}g=e+g|0;if((g|0)<(d|0)){continue}break}}ja(n);return 1}function yf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;j=F[b+80>>2];b=G[c+24|0];g=L(j,b);a:{if(!b){break a}h=b<<2;f=ka(h);a=f;k=b&7;if(k){while(1){F[a>>2]=-1073741824;a=a+4|0;e=e+1|0;if((k|0)!=(e|0)){continue}break}}if((b-1&1073741823)>>>0<7){break a}e=f+h|0;while(1){F[a+24>>2]=-1073741824;F[a+28>>2]=-1073741824;F[a+16>>2]=-1073741824;F[a+20>>2]=-1073741824;F[a+8>>2]=-1073741824;F[a+12>>2]=-1073741824;F[a>>2]=-1073741824;F[a+4>>2]=-1073741824;a=a+32|0;if((e|0)!=(a|0)){continue}break}}e=F[d>>2];a=F[d+4>>2]-e>>2;b:{if(a>>>0>>0){qa(d,g-a|0);break b}if(a>>>0<=g>>>0){break b}F[d+4>>2]=e+(g<<2)}c:{d:{e:{if(!j){i=1;break e}if(!b){a=0;while(1){if(!lb(c,G[c+84|0]?a:F[F[c+68>>2]+(a<<2)>>2],D[c+24|0],f)){break e}a=a+1|0;i=j>>>0<=a>>>0;if((a|0)!=(j|0)){continue}break}break e}n=b&252;k=b&3;o=b>>>0<4;e=0;b=0;while(1){if(!lb(c,G[c+84|0]?b:F[F[c+68>>2]+(b<<2)>>2],D[c+24|0],f)){break e}m=F[d>>2];i=0;a=0;l=0;if(!o){while(1){g=(e<<2)+m|0;h=a<<2;J[g>>2]=J[h+f>>2];J[g+4>>2]=J[(h|4)+f>>2];J[g+8>>2]=J[(h|8)+f>>2];J[g+12>>2]=J[(h|12)+f>>2];a=a+4|0;e=e+4|0;l=l+4|0;if((n|0)!=(l|0)){continue}break}}if(k){while(1){J[(e<<2)+m>>2]=J[(a<<2)+f>>2];a=a+1|0;e=e+1|0;i=i+1|0;if((k|0)!=(i|0)){continue}break}}b=b+1|0;i=j>>>0<=b>>>0;if((b|0)!=(j|0)){continue}break}break d}if(!f){break c}}ja(f)}return i|0}function $d(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;k=Z-16|0;Z=k;c=F[b+20>>2];d=F[b+16>>2];e=d+4|0;c=e>>>0<4?c+1|0:c;g=F[b+12>>2];a:{if(I[b+8>>2]>>0&(g|0)<=(c|0)|(c|0)>(g|0)){break a}d=d+F[b>>2]|0;h=G[d|0]|G[d+1|0]<<8|(G[d+2|0]<<16|G[d+3|0]<<24);F[b+16>>2]=e;F[b+20>>2]=c;if((h|0)<0){break a}Na(a+76|0,h);c=k;F[c>>2]=0;F[c+4>>2]=0;D[c+5|0]=0;D[c+6|0]=0;D[c+7|0]=0;D[c+8|0]=0;D[c+9|0]=0;D[c+10|0]=0;D[c+11|0]=0;D[c+12|0]=0;b:{if(!Aa(c,b)){break b}if(h){g=1;while(1){d=1<>2]+(i>>>3&536870908)|0;e=e^g;if(e&1){d=F[f>>2]&(d^-1)}else{d=d|F[f>>2]}g=e^1;F[f>>2]=d;i=i+1|0;if((h|0)!=(i|0)){continue}break}}i=0;c=F[b+8>>2];e=F[b+12>>2];f=e;e=F[b+20>>2];g=e;l=F[b+16>>2];d=l+4|0;e=d>>>0<4?e+1|0:e;h=d;if(d>>>0>c>>>0&(e|0)>=(f|0)|(e|0)>(f|0)){break b}m=F[b>>2];d=m+l|0;j=G[d|0]|G[d+1|0]<<8|(G[d+2|0]<<16|G[d+3|0]<<24);F[b+16>>2]=h;F[b+20>>2]=e;d=c;c=g;e=l+8|0;c=e>>>0<8?c+1|0:c;if(d>>>0>>0&(c|0)>=(f|0)|(c|0)>(f|0)){break b}d=h+m|0;d=G[d|0]|G[d+1|0]<<8|(G[d+2|0]<<16|G[d+3|0]<<24);F[b+16>>2]=e;F[b+20>>2]=c;if((d|0)<(j|0)){break b}F[a+16>>2]=d;F[a+12>>2]=j;c=(d>>31)-((j>>31)+(d>>>0>>0)|0)|0;b=d-j|0;if(!c&b>>>0>2147483646|c){break b}i=1;c=b+1|0;F[a+20>>2]=c;b=c>>>1|0;F[a+24>>2]=b;F[a+28>>2]=0-b;if(c&1){break b}F[a+24>>2]=b-1}}Z=k+16|0;return i|0}function tf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;a=0;k=Z-16|0;Z=k;j=F[b+80>>2];e=G[c+24|0];b=L(j,e);a:{b:{c:{d:{f=F[c+28>>2];if(!(!G[c+84|0]|(f|0)!=5&(f|0)!=6)){e=F[c+48>>2];c=F[F[c>>2]>>2];F[k+8>>2]=0;F[k>>2]=0;F[k+4>>2]=0;if(b){if((b|0)<0){break d}b=b<<2;a=ka(b);g=la(a,c+e|0,b)+b|0}b=F[d>>2];if(b){F[d+4>>2]=b;ja(b)}F[d+8>>2]=g;F[d+4>>2]=g;F[d>>2]=a;h=1;break a}if(e){f=e<<2;a=ka(f);ma(a,0,f)}i=F[d>>2];f=F[d+4>>2]-i>>2;e:{if(f>>>0>>0){qa(d,b-f|0);break e}if(b>>>0>=f>>>0){break e}F[d+4>>2]=i+(b<<2)}if(!j){h=1;break c}if(!e){b=0;while(1){if(!xb(c,G[c+84|0]?b:F[F[c+68>>2]+(b<<2)>>2],D[c+24|0],a)){break c}b=b+1|0;h=j>>>0<=b>>>0;if((b|0)!=(j|0)){continue}break}break c}o=e&252;m=e&3;p=e>>>0<4;e=0;while(1){if(!xb(c,G[c+84|0]?e:F[F[c+68>>2]+(e<<2)>>2],D[c+24|0],a)){break c}n=F[d>>2];l=0;b=0;h=0;if(!p){while(1){f=(g<<2)+n|0;i=b<<2;F[f>>2]=F[i+a>>2];F[f+4>>2]=F[(i|4)+a>>2];F[f+8>>2]=F[(i|8)+a>>2];F[f+12>>2]=F[(i|12)+a>>2];b=b+4|0;g=g+4|0;h=h+4|0;if((o|0)!=(h|0)){continue}break}}if(m){while(1){F[(g<<2)+n>>2]=F[(b<<2)+a>>2];b=b+1|0;g=g+1|0;l=l+1|0;if((l|0)!=(m|0)){continue}break}}e=e+1|0;h=j>>>0<=e>>>0;if((e|0)!=(j|0)){continue}break}break b}na();v()}if(!a){break a}}ja(a)}Z=k+16|0;return h|0}function cd(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;a=0;k=Z-16|0;Z=k;j=F[b+80>>2];e=G[c+24|0];b=L(j,e);a:{b:{c:{d:{f=F[c+28>>2];if(!(!G[c+84|0]|(f|0)!=5&(f|0)!=6)){e=F[c+48>>2];c=F[F[c>>2]>>2];F[k+8>>2]=0;F[k>>2]=0;F[k+4>>2]=0;if(b){if((b|0)<0){break d}b=b<<2;a=ka(b);g=la(a,c+e|0,b)+b|0}b=F[d>>2];if(b){F[d+4>>2]=b;ja(b)}F[d+8>>2]=g;F[d+4>>2]=g;F[d>>2]=a;h=1;break a}if(e){f=e<<2;a=ka(f);ma(a,0,f)}i=F[d>>2];f=F[d+4>>2]-i>>2;e:{if(f>>>0>>0){qa(d,b-f|0);break e}if(b>>>0>=f>>>0){break e}F[d+4>>2]=i+(b<<2)}if(!j){h=1;break c}if(!e){b=0;while(1){if(!yb(c,G[c+84|0]?b:F[F[c+68>>2]+(b<<2)>>2],D[c+24|0],a)){break c}b=b+1|0;h=j>>>0<=b>>>0;if((b|0)!=(j|0)){continue}break}break c}o=e&252;m=e&3;p=e>>>0<4;e=0;while(1){if(!yb(c,G[c+84|0]?e:F[F[c+68>>2]+(e<<2)>>2],D[c+24|0],a)){break c}n=F[d>>2];l=0;b=0;h=0;if(!p){while(1){f=(g<<2)+n|0;i=b<<2;F[f>>2]=F[i+a>>2];F[f+4>>2]=F[(i|4)+a>>2];F[f+8>>2]=F[(i|8)+a>>2];F[f+12>>2]=F[(i|12)+a>>2];b=b+4|0;g=g+4|0;h=h+4|0;if((o|0)!=(h|0)){continue}break}}if(m){while(1){F[(g<<2)+n>>2]=F[(b<<2)+a>>2];b=b+1|0;g=g+1|0;l=l+1|0;if((l|0)!=(m|0)){continue}break}}e=e+1|0;h=j>>>0<=e>>>0;if((e|0)!=(j|0)){continue}break}break b}na();v()}if(!a){break a}}ja(a)}Z=k+16|0;return h|0}function vf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;a=0;k=Z-16|0;Z=k;j=F[b+80>>2];e=G[c+24|0];b=L(j,e);a:{b:{c:{d:{f=F[c+28>>2];if(!(!G[c+84|0]|(f|0)!=3&(f|0)!=4)){e=F[c+48>>2];c=F[F[c>>2]>>2];F[k+8>>2]=0;F[k>>2]=0;F[k+4>>2]=0;if(b){if((b|0)<0){break d}b=b<<1;a=ka(b);g=la(a,c+e|0,b)+b|0}b=F[d>>2];if(b){F[d+4>>2]=b;ja(b)}F[d+8>>2]=g;F[d+4>>2]=g;F[d>>2]=a;h=1;break a}if(e){f=e<<1;a=ka(f);ma(a,0,f)}i=F[d>>2];f=F[d+4>>2]-i>>1;e:{if(f>>>0>>0){kd(d,b-f|0);break e}if(b>>>0>=f>>>0){break e}F[d+4>>2]=i+(b<<1)}if(!j){h=1;break c}if(!e){b=0;while(1){if(!Ab(c,G[c+84|0]?b:F[F[c+68>>2]+(b<<2)>>2],D[c+24|0],a)){break c}b=b+1|0;h=j>>>0<=b>>>0;if((b|0)!=(j|0)){continue}break}break c}o=e&252;m=e&3;p=e>>>0<4;e=0;while(1){if(!Ab(c,G[c+84|0]?e:F[F[c+68>>2]+(e<<2)>>2],D[c+24|0],a)){break c}n=F[d>>2];l=0;b=0;h=0;if(!p){while(1){f=(g<<1)+n|0;i=b<<1;E[f>>1]=H[i+a>>1];E[f+2>>1]=H[(i|2)+a>>1];E[f+4>>1]=H[(i|4)+a>>1];E[f+6>>1]=H[(i|6)+a>>1];b=b+4|0;g=g+4|0;h=h+4|0;if((o|0)!=(h|0)){continue}break}}if(m){while(1){E[(g<<1)+n>>1]=H[(b<<1)+a>>1];b=b+1|0;g=g+1|0;l=l+1|0;if((l|0)!=(m|0)){continue}break}}e=e+1|0;h=j>>>0<=e>>>0;if((e|0)!=(j|0)){continue}break}break b}na();v()}if(!a){break a}}ja(a)}Z=k+16|0;return h|0}function uf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;a=0;k=Z-16|0;Z=k;j=F[b+80>>2];e=G[c+24|0];b=L(j,e);a:{b:{c:{d:{f=F[c+28>>2];if(!(!G[c+84|0]|(f|0)!=3&(f|0)!=4)){e=F[c+48>>2];c=F[F[c>>2]>>2];F[k+8>>2]=0;F[k>>2]=0;F[k+4>>2]=0;if(b){if((b|0)<0){break d}b=b<<1;a=ka(b);g=la(a,c+e|0,b)+b|0}b=F[d>>2];if(b){F[d+4>>2]=b;ja(b)}F[d+8>>2]=g;F[d+4>>2]=g;F[d>>2]=a;h=1;break a}if(e){f=e<<1;a=ka(f);ma(a,0,f)}i=F[d>>2];f=F[d+4>>2]-i>>1;e:{if(f>>>0>>0){kd(d,b-f|0);break e}if(b>>>0>=f>>>0){break e}F[d+4>>2]=i+(b<<1)}if(!j){h=1;break c}if(!e){b=0;while(1){if(!zb(c,G[c+84|0]?b:F[F[c+68>>2]+(b<<2)>>2],D[c+24|0],a)){break c}b=b+1|0;h=j>>>0<=b>>>0;if((b|0)!=(j|0)){continue}break}break c}o=e&252;m=e&3;p=e>>>0<4;e=0;while(1){if(!zb(c,G[c+84|0]?e:F[F[c+68>>2]+(e<<2)>>2],D[c+24|0],a)){break c}n=F[d>>2];l=0;b=0;h=0;if(!p){while(1){f=(g<<1)+n|0;i=b<<1;E[f>>1]=H[i+a>>1];E[f+2>>1]=H[(i|2)+a>>1];E[f+4>>1]=H[(i|4)+a>>1];E[f+6>>1]=H[(i|6)+a>>1];b=b+4|0;g=g+4|0;h=h+4|0;if((o|0)!=(h|0)){continue}break}}if(m){while(1){E[(g<<1)+n>>1]=H[(b<<1)+a>>1];b=b+1|0;g=g+1|0;l=l+1|0;if((l|0)!=(m|0)){continue}break}}e=e+1|0;h=j>>>0<=e>>>0;if((e|0)!=(j|0)){continue}break}break b}na();v()}if(!a){break a}}ja(a)}Z=k+16|0;return h|0}function kc(a,b){var c=0,d=0,e=0,f=0,g=0;f=-1;d=-1;a:{if((b|0)==-1){break a}d=b+1|0;f=(d>>>0)%3|0?d:b-2|0;d=b-1|0;if((b>>>0)%3|0){break a}d=b+2|0}b:{c:{d:{switch(F[a+168>>2]){case 0:case 1:e=F[a+148>>2];c=1;b=F[a+156>>2];g=b+(((f|0)==-1?-1:F[F[e>>2]+(f<<2)>>2])<<2)|0;F[g>>2]=F[g>>2]+1;b=(((d|0)==-1?-1:F[F[e>>2]+(d<<2)>>2])<<2)+b|0;break c;case 5:e=F[a+148>>2];c=-1;c=((b|0)!=-1?F[F[e>>2]+(b<<2)>>2]:c)<<2;b=F[a+156>>2];c=c+b|0;F[c>>2]=F[c>>2]+1;c=(((f|0)==-1?-1:F[F[e>>2]+(f<<2)>>2])<<2)+b|0;F[c>>2]=F[c>>2]+1;c=2;b=(((d|0)==-1?-1:F[F[e>>2]+(d<<2)>>2])<<2)+b|0;break c;case 3:e=F[a+148>>2];c=-1;c=((b|0)!=-1?F[F[e>>2]+(b<<2)>>2]:c)<<2;b=F[a+156>>2];c=c+b|0;F[c>>2]=F[c>>2]+1;c=(((f|0)==-1?-1:F[F[e>>2]+(f<<2)>>2])<<2)+b|0;F[c>>2]=F[c>>2]+2;c=1;b=(((d|0)==-1?-1:F[F[e>>2]+(d<<2)>>2])<<2)+b|0;break c;case 7:break d;default:break b}}e=F[a+148>>2];c=-1;c=((b|0)!=-1?F[F[e>>2]+(b<<2)>>2]:c)<<2;b=F[a+156>>2];c=c+b|0;F[c>>2]=F[c>>2]+2;c=(((f|0)==-1?-1:F[F[e>>2]+(f<<2)>>2])<<2)+b|0;F[c>>2]=F[c>>2]+2;c=2;b=(((d|0)==-1?-1:F[F[e>>2]+(d<<2)>>2])<<2)+b|0}F[b>>2]=F[b>>2]+c}c=a;b=F[F[a+156>>2]+(((f|0)==-1?-1:F[F[F[a+148>>2]>>2]+(f<<2)>>2])<<2)>>2];d=F[a+180>>2];a=F[a+176>>2];F[c+172>>2]=(a|0)<=(b|0)?((b|0)<(d|0)?b:d)-a|0:0}function Dg(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;a:{b=F[a+32>>2];f=F[b+8>>2];h=F[b+12>>2];g=F[b+20>>2];c=F[b+16>>2];e=0;b:{if((h|0)<=(g|0)&c>>>0>=f>>>0|(g|0)>(h|0)){break b}f=G[F[b>>2]+c|0];e=b;b=g;c=c+1|0;b=c?b:b+1|0;F[e+16>>2]=c;F[e+20>>2]=b;c:{if(!f){break c}while(1){if($[F[F[a>>2]+16>>2]](a,d)|0){d=d+1|0;if((f|0)!=(d|0)){continue}break c}break}return 0}d=F[a+8>>2];b=F[a+12>>2];if((d|0)!=(b|0)){while(1){c=F[d>>2];if(!($[F[F[c>>2]+8>>2]](c,a,F[a+4>>2])|0)){break a}d=d+4|0;if((b|0)!=(d|0)){continue}break}}d:{if(!f){break d}d=0;while(1){b=F[F[a+8>>2]+(d<<2)>>2];if(!($[F[F[b>>2]+12>>2]](b,F[a+32>>2])|0)){break a}d=d+1|0;if((f|0)!=(d|0)){continue}break}if(!f){break d}i=a+20|0;b=0;while(1){d=0;j=b<<2;c=F[j+F[a+8>>2]>>2];k=$[F[F[c>>2]+24>>2]](c)|0;if((k|0)>0){while(1){c=F[F[a+8>>2]+j>>2];c=$[F[F[c>>2]+20>>2]](c,d)|0;e=F[a+20>>2];g=F[a+24>>2]-e>>2;e:{if(c>>>0>>0){break e}h=c+1|0;if(h>>>0>g>>>0){qa(i,h-g|0);e=F[i>>2];break e}if(g>>>0<=h>>>0){break e}F[a+24>>2]=(h<<2)+e}F[(c<<2)+e>>2]=b;d=d+1|0;if((k|0)!=(d|0)){continue}break}}b=b+1|0;if((f|0)!=(b|0)){continue}break}}e=0;if(!($[F[F[a>>2]+28>>2]](a)|0)){break b}e=$[F[F[a>>2]+32>>2]](a)|0}return e|0}return 0}function Ye(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;Oc(a,b,c);c=F[a+84>>2];d=F[a+88>>2]-c>>2;a:{if((d|0)>(b|0)){break a}b=b+1|0;if(b>>>0>d>>>0){b:{d=b-d|0;e=F[a+92>>2];c=F[a+88>>2];if(d>>>0<=e-c>>2>>>0){c:{if(!d){break c}b=c;e=d&7;if(e){while(1){F[b>>2]=1;b=b+4|0;f=f+1|0;if((e|0)!=(f|0)){continue}break}}c=(d<<2)+c|0;if((d-1&1073741823)>>>0<7){break c}while(1){F[b+24>>2]=1;F[b+28>>2]=1;F[b+16>>2]=1;F[b+20>>2]=1;F[b+8>>2]=1;F[b+12>>2]=1;F[b>>2]=1;F[b+4>>2]=1;b=b+32|0;if((c|0)!=(b|0)){continue}break}}F[a+88>>2]=c;break b}d:{b=c;c=F[a+84>>2];i=b-c|0;g=i>>2;b=g+d|0;if(b>>>0<1073741824){e=e-c|0;h=e>>>1|0;e=e>>>0>=2147483644?1073741823:b>>>0>>0?h:b;if(e){if(e>>>0>=1073741824){break d}j=ka(e<<2)}g=(g<<2)+j|0;b=g;h=d&7;if(h){while(1){F[b>>2]=1;b=b+4|0;f=f+1|0;if((h|0)!=(f|0)){continue}break}}f=g+(d<<2)|0;if((d-1&1073741823)>>>0>=7){while(1){F[b+24>>2]=1;F[b+28>>2]=1;F[b+16>>2]=1;F[b+20>>2]=1;F[b+8>>2]=1;F[b+12>>2]=1;F[b>>2]=1;F[b+4>>2]=1;b=b+32|0;if((f|0)!=(b|0)){continue}break}}b=pa(j,c,i);F[a+88>>2]=f;F[a+84>>2]=b;F[a+92>>2]=b+(e<<2);if(c){ja(c)}break b}na();v()}oa();v()}return}if(b>>>0>=d>>>0){break a}F[a+88>>2]=c+(b<<2)}}function ab(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;d=F[a+8>>2];e=F[a+4>>2];if(d-e>>2>>>0>=b>>>0){a:{if(!b){break a}d=e;g=b&7;if(g){while(1){F[d>>2]=F[c>>2];d=d+4|0;f=f+1|0;if((g|0)!=(f|0)){continue}break}}e=(b<<2)+e|0;if((b-1&1073741823)>>>0<7){break a}while(1){F[d>>2]=F[c>>2];F[d+4>>2]=F[c>>2];F[d+8>>2]=F[c>>2];F[d+12>>2]=F[c>>2];F[d+16>>2]=F[c>>2];F[d+20>>2]=F[c>>2];F[d+24>>2]=F[c>>2];F[d+28>>2]=F[c>>2];d=d+32|0;if((e|0)!=(d|0)){continue}break}}F[a+4>>2]=e;return}b:{i=F[a>>2];f=e-i>>2;h=f+b|0;if(h>>>0<1073741824){j=d-i|0;d=j>>>1|0;h=j>>>0>=2147483644?1073741823:d>>>0>h>>>0?d:h;if(h){if(h>>>0>=1073741824){break b}k=ka(h<<2)}f=(f<<2)+k|0;d=f;j=b&7;if(j){while(1){F[d>>2]=F[c>>2];d=d+4|0;g=g+1|0;if((j|0)!=(g|0)){continue}break}}g=(b<<2)+f|0;if((b-1&1073741823)>>>0>=7){while(1){F[d>>2]=F[c>>2];F[d+4>>2]=F[c>>2];F[d+8>>2]=F[c>>2];F[d+12>>2]=F[c>>2];F[d+16>>2]=F[c>>2];F[d+20>>2]=F[c>>2];F[d+24>>2]=F[c>>2];F[d+28>>2]=F[c>>2];d=d+32|0;if((g|0)!=(d|0)){continue}break}}if((e|0)!=(i|0)){while(1){f=f-4|0;e=e-4|0;F[f>>2]=F[e>>2];if((e|0)!=(i|0)){continue}break}}F[a+8>>2]=(h<<2)+k;F[a+4>>2]=g;F[a>>2]=f;if(i){ja(i)}return}na();v()}oa();v()}function Xb(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;d=F[a+8>>2];e=F[a>>2];if(d-e>>2>>>0>=b>>>0){f=F[a+4>>2];h=f-e>>2;i=b>>>0>h>>>0?h:b;a:{if(!i){break a}d=e;g=i;j=g&7;if(j){while(1){F[d>>2]=F[c>>2];g=g-1|0;d=d+4|0;k=k+1|0;if((k|0)!=(j|0)){continue}break}}if(i>>>0<8){break a}while(1){F[d>>2]=F[c>>2];F[d+4>>2]=F[c>>2];F[d+8>>2]=F[c>>2];F[d+12>>2]=F[c>>2];F[d+16>>2]=F[c>>2];F[d+20>>2]=F[c>>2];F[d+24>>2]=F[c>>2];F[d+28>>2]=F[c>>2];d=d+32|0;g=g-8|0;if(g){continue}break}}if(b>>>0>h>>>0){b=(b-h<<2)+f|0;while(1){F[f>>2]=F[c>>2];f=f+4|0;if((b|0)!=(f|0)){continue}break}F[a+4>>2]=b;return}F[a+4>>2]=e+(b<<2);return}if(e){F[a+4>>2]=e;ja(e);F[a+8>>2]=0;F[a>>2]=0;F[a+4>>2]=0;d=0}b:{if(b>>>0>=1073741824){break b}e=d>>>1|0;d=d>>>0>=2147483644?1073741823:b>>>0>>0?e:b;if(d>>>0>=1073741824){break b}d=d<<2;e=ka(d);F[a>>2]=e;F[a+8>>2]=d+e;c=F[c>>2];d=e;g=b&7;if(g){while(1){F[d>>2]=c;d=d+4|0;f=f+1|0;if((g|0)!=(f|0)){continue}break}}e=e+(b<<2)|0;if((b-1&1073741823)>>>0>=7){while(1){F[d+28>>2]=c;F[d+24>>2]=c;F[d+20>>2]=c;F[d+16>>2]=c;F[d+12>>2]=c;F[d+8>>2]=c;F[d+4>>2]=c;F[d>>2]=c;d=d+32|0;if((e|0)!=(d|0)){continue}break}}F[a+4>>2]=e;return}na();v()}function Ka(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;f=(c>>>0)/3|0;j=F[(F[F[a+8>>2]+96>>2]+L(f,12)|0)+(c-L(f,3)<<2)>>2];a:{h=F[F[a+12>>2]+4>>2];e=F[h+4>>2];if((e|0)!=F[h+8>>2]){F[e>>2]=j;F[h+4>>2]=e+4;break a}b:{i=F[h>>2];f=e-i|0;g=f>>2;d=g+1|0;if(d>>>0<1073741824){k=g<<2;g=f>>>1|0;g=f>>>0>=2147483644?1073741823:d>>>0>>0?g:d;if(g){if(g>>>0>=1073741824){break b}f=ka(g<<2)}else{f=0}d=k+f|0;F[d>>2]=j;j=d+4|0;if((e|0)!=(i|0)){while(1){d=d-4|0;e=e-4|0;F[d>>2]=F[e>>2];if((e|0)!=(i|0)){continue}break}}F[h+8>>2]=f+(g<<2);F[h+4>>2]=j;F[h>>2]=d;if(i){ja(i)}break a}na();v()}oa();v()}c:{d:{h=F[a+4>>2];e=F[h+4>>2];e:{if((e|0)!=F[h+8>>2]){F[e>>2]=c;F[h+4>>2]=e+4;break e}i=F[h>>2];f=e-i|0;j=f>>2;d=j+1|0;if(d>>>0>=1073741824){break d}g=f>>>1|0;g=f>>>0>=2147483644?1073741823:d>>>0>>0?g:d;if(g){if(g>>>0>=1073741824){break c}f=ka(g<<2)}else{f=0}d=f+(j<<2)|0;F[d>>2]=c;c=d+4|0;if((e|0)!=(i|0)){while(1){d=d-4|0;e=e-4|0;F[d>>2]=F[e>>2];if((e|0)!=(i|0)){continue}break}}F[h+8>>2]=f+(g<<2);F[h+4>>2]=c;F[h>>2]=d;if(!i){break e}ja(i)}a=F[a+4>>2];F[F[a+12>>2]+(b<<2)>>2]=F[a+24>>2];F[a+24>>2]=F[a+24>>2]+1;return}na();v()}oa();v()}function pb(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0;h=d-c|0;if((h|0)<=0){return}a:{e=F[a+8>>2];i=F[a+4>>2];if((e-i|0)>=(h|0)){j=i-b|0;if((j|0)>=(h|0)){f=i;g=d;break a}f=i;g=c+j|0;if((g|0)!=(d|0)){e=g;while(1){D[f|0]=G[e|0];f=f+1|0;e=e+1|0;if((e|0)!=(d|0)){continue}break}}F[a+4>>2]=f;if((j|0)>0){break a}return}k=F[a>>2];g=(i-k|0)+h|0;if((g|0)>=0){j=b-k|0;f=e-k|0;e=f<<1;f=f>>>0>=1073741823?2147483647:e>>>0>g>>>0?e:g;if(f){e=ka(f)}else{e=0}g=j+e|0;if((c|0)!=(d|0)){g=la(g,c,h)+h|0}d=pa(e,k,j);c=i-b|0;b=pa(g,b,c);F[a+8>>2]=e+f;F[a+4>>2]=b+c;F[a>>2]=d;if(k){ja(k)}return}na();v()}e=f;d=e-h|0;if(i>>>0>d>>>0){while(1){D[e|0]=G[d|0];e=e+1|0;d=d+1|0;if(i>>>0>d>>>0){continue}break}}F[a+4>>2]=e;a=b+h|0;if((a|0)!=(f|0)){a=f-a|0;pa(f-a|0,b,a)}if((c|0)==(g|0)){return}f=(c^-1)+g|0;a=g-c&7;b:{if(!a){e=b;break b}d=0;e=b;while(1){D[e|0]=G[c|0];e=e+1|0;c=c+1|0;d=d+1|0;if((a|0)!=(d|0)){continue}break}}if(f>>>0<7){return}while(1){D[e|0]=G[c|0];D[e+1|0]=G[c+1|0];D[e+2|0]=G[c+2|0];D[e+3|0]=G[c+3|0];D[e+4|0]=G[c+4|0];D[e+5|0]=G[c+5|0];D[e+6|0]=G[c+6|0];D[e+7|0]=G[c+7|0];e=e+8|0;c=c+8|0;if((g|0)!=(c|0)){continue}break}}function la(a,b,c){var d=0,e=0,f=0;if(c>>>0>=512){Y(a|0,b|0,c|0);return a}e=a+c|0;a:{if(!((a^b)&3)){b:{if(!(a&3)){c=a;break b}if(!c){c=a;break b}c=a;while(1){D[c|0]=G[b|0];b=b+1|0;c=c+1|0;if(!(c&3)){break b}if(c>>>0>>0){continue}break}}d=e&-4;c:{if(d>>>0<64){break c}f=d+-64|0;if(f>>>0>>0){break c}while(1){F[c>>2]=F[b>>2];F[c+4>>2]=F[b+4>>2];F[c+8>>2]=F[b+8>>2];F[c+12>>2]=F[b+12>>2];F[c+16>>2]=F[b+16>>2];F[c+20>>2]=F[b+20>>2];F[c+24>>2]=F[b+24>>2];F[c+28>>2]=F[b+28>>2];F[c+32>>2]=F[b+32>>2];F[c+36>>2]=F[b+36>>2];F[c+40>>2]=F[b+40>>2];F[c+44>>2]=F[b+44>>2];F[c+48>>2]=F[b+48>>2];F[c+52>>2]=F[b+52>>2];F[c+56>>2]=F[b+56>>2];F[c+60>>2]=F[b+60>>2];b=b- -64|0;c=c- -64|0;if(f>>>0>=c>>>0){continue}break}}if(c>>>0>=d>>>0){break a}while(1){F[c>>2]=F[b>>2];b=b+4|0;c=c+4|0;if(d>>>0>c>>>0){continue}break}break a}if(e>>>0<4){c=a;break a}d=e-4|0;if(d>>>0>>0){c=a;break a}c=a;while(1){D[c|0]=G[b|0];D[c+1|0]=G[b+1|0];D[c+2|0]=G[b+2|0];D[c+3|0]=G[b+3|0];b=b+4|0;c=c+4|0;if(d>>>0>=c>>>0){continue}break}}if(c>>>0>>0){while(1){D[c|0]=G[b|0];b=b+1|0;c=c+1|0;if((e|0)!=(c|0)){continue}break}}return a}function sd(a){a=a|0;var b=0,c=0,d=0,e=0,f=0;F[a>>2]=8336;d=a+232|0;b=F[d+196>>2];if(b){F[d+200>>2]=b;ja(b)}c=F[d+184>>2];if(c){b=c;e=F[d+188>>2];if((b|0)!=(e|0)){while(1){b=e-12|0;f=F[b>>2];if(f){F[e-8>>2]=f;ja(f)}e=b;if((b|0)!=(c|0)){continue}break}b=F[d+184>>2]}F[d+188>>2]=c;ja(b)}b=F[d+156>>2];if(b){F[d+160>>2]=b;ja(b)}c=F[d+136>>2];F[d+136>>2]=0;if(c){e=c-4|0;b=F[e>>2];if(b){b=c+(b<<4)|0;while(1){b=b-16|0;if((c|0)!=(b|0)){continue}break}}ja(e)}td(a+216|0);b=F[a+196>>2];if(b){F[a+200>>2]=b;ja(b)}b=F[a+184>>2];if(b){F[a+188>>2]=b;ja(b)}b=F[a+172>>2];if(b){F[a+176>>2]=b;ja(b)}b=F[a+160>>2];if(b){F[a+164>>2]=b;ja(b)}b=F[a+144>>2];if(b){while(1){c=F[b>>2];ja(b);b=c;if(b){continue}break}}b=F[a+136>>2];F[a+136>>2]=0;if(b){ja(b)}b=F[a+120>>2];if(b){ja(b)}b=F[a+108>>2];if(b){ja(b)}b=F[a+96>>2];if(b){ja(b)}b=F[a+72>>2];if(b){F[a+76>>2]=b;ja(b)}b=F[a+60>>2];if(b){ja(b)}b=F[a+48>>2];if(b){F[a+52>>2]=b;ja(b)}b=F[a+36>>2];if(b){F[a+40>>2]=b;ja(b)}b=F[a+24>>2];if(b){F[a+28>>2]=b;ja(b)}b=F[a+12>>2];if(b){F[a+16>>2]=b;ja(b)}b=F[a+8>>2];F[a+8>>2]=0;if(b){Za(b)}return a|0}function Fa(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;d=F[a+8>>2];e=F[a+4>>2];if(d-e>>2>>>0>=b>>>0){a:{if(!b){break a}d=e;f=b&7;if(f){while(1){F[d>>2]=F[c>>2];d=d+4|0;h=h+1|0;if((f|0)!=(h|0)){continue}break}}e=(b<<2)+e|0;if((b-1&1073741823)>>>0<7){break a}while(1){F[d>>2]=F[c>>2];F[d+4>>2]=F[c>>2];F[d+8>>2]=F[c>>2];F[d+12>>2]=F[c>>2];F[d+16>>2]=F[c>>2];F[d+20>>2]=F[c>>2];F[d+24>>2]=F[c>>2];F[d+28>>2]=F[c>>2];d=d+32|0;if((e|0)!=(d|0)){continue}break}}F[a+4>>2]=e;return}b:{i=F[a>>2];j=e-i|0;f=j>>2;g=f+b|0;if(g>>>0<1073741824){d=d-i|0;e=d>>>1|0;g=d>>>0>=2147483644?1073741823:e>>>0>g>>>0?e:g;if(g){if(g>>>0>=1073741824){break b}k=ka(g<<2)}f=(f<<2)+k|0;d=f;e=b&7;if(e){while(1){F[d>>2]=F[c>>2];d=d+4|0;h=h+1|0;if((e|0)!=(h|0)){continue}break}}e=f+(b<<2)|0;if((b-1&1073741823)>>>0>=7){while(1){F[d>>2]=F[c>>2];F[d+4>>2]=F[c>>2];F[d+8>>2]=F[c>>2];F[d+12>>2]=F[c>>2];F[d+16>>2]=F[c>>2];F[d+20>>2]=F[c>>2];F[d+24>>2]=F[c>>2];F[d+28>>2]=F[c>>2];d=d+32|0;if((e|0)!=(d|0)){continue}break}}b=pa(k,i,j);F[a+4>>2]=e;F[a>>2]=b;F[a+8>>2]=b+(g<<2);if(i){ja(i)}return}na();v()}oa();v()}function Sb(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;if(G[a+11|0]>>>7|0){d=F[a+4>>2]}else{d=G[a+11|0]&127}if(d>>>0>>0){h=Z-16|0;Z=h;b=b-d|0;if(b){g=G[a+11|0]>>>7|0?(F[a+8>>2]&2147483647)-1|0:10;if(G[a+11|0]>>>7|0){d=F[a+4>>2]}else{d=G[a+11|0]&127}i=d+b|0;if(g-d>>>0>>0){a:{e=Z-16|0;Z=e;c=i-g|0;if(c>>>0<=2147483631-g>>>0){if(G[a+11|0]>>>7|0){f=F[a>>2]}else{f=a}if(g>>>0<1073741799){F[e+12>>2]=g<<1;F[e>>2]=c+g;c=Z-16|0;Z=c;Z=c+16|0;c=e+12|0;c=F[(I[e>>2]>2]?c:e)>>2];if(c>>>0>=11){j=c+16&-16;c=j-1|0;c=(c|0)==11?j:c}else{c=10}c=c+1|0}else{c=2147483631}sb(e,c);c=F[e>>2];if(d){db(c,f,d)}if((g|0)!=10){ja(f)}F[a>>2]=c;F[a+8>>2]=F[a+8>>2]&-2147483648|F[e+4>>2]&2147483647;F[a+8>>2]=F[a+8>>2]|-2147483648;Z=e+16|0;break a}za();v()}}f=d;if(G[a+11|0]>>>7|0){d=F[a>>2]}else{d=a}f=f+d|0;e=Z-16|0;Z=e;D[e+15|0]=0;while(1){if(b){D[f|0]=G[e+15|0];b=b-1|0;f=f+1|0;continue}break}Z=e+16|0;Ic(a,i);D[h+15|0]=0;D[d+i|0]=G[h+15|0]}Z=h+16|0;return}if(G[a+11|0]>>>7|0){d=F[a>>2]}else{d=a}f=Z-16|0;Z=f;Ic(a,b);D[f+15|0]=0;D[b+d|0]=G[f+15|0];Z=f+16|0}function Zc(a,b){var c=0,d=0,e=0,f=0,g=0,h=0;g=Z-16|0;Z=g;a:{b:{if(b){F[a+88>>2]=0;F[a+92>>2]=0;d=F[a+84>>2];F[a+84>>2]=0;if(d){ja(d)}F[a+76>>2]=0;F[a+80>>2]=0;d=F[a+72>>2];F[a+72>>2]=0;if(d){ja(d)}d=F[b>>2];c=F[b+4>>2];D[g+15|0]=0;Ea(a,c-d>>2,g+15|0);d=F[b+28>>2];c=F[b+24>>2];D[g+14|0]=0;Ea(a+12|0,d-c>>2,g+14|0);Xb(a+28|0,F[b+4>>2]-F[b>>2]>>2,10284);c=F[b+28>>2]-F[b+24>>2]|0;f=c>>2;e=F[a+52>>2];c:{if(f>>>0<=F[a+60>>2]-e>>2>>>0){break c}if((c|0)<0){break b}d=F[a+56>>2];c=ka(c);f=c+(f<<2)|0;h=c+(d-e&-4)|0;c=h;if((d|0)!=(e|0)){while(1){c=c-4|0;d=d-4|0;F[c>>2]=F[d>>2];if((d|0)!=(e|0)){continue}break}}F[a+60>>2]=f;F[a+56>>2]=h;F[a+52>>2]=c;if(!e){break c}ja(e)}c=F[b+28>>2]-F[b+24>>2]|0;f=c>>2;e=F[a+40>>2];d:{if(f>>>0<=F[a+48>>2]-e>>2>>>0){break d}if((c|0)<0){break a}d=F[a+44>>2];c=ka(c);f=c+(f<<2)|0;h=c+(d-e&-4)|0;c=h;if((d|0)!=(e|0)){while(1){c=c-4|0;d=d-4|0;F[c>>2]=F[d>>2];if((d|0)!=(e|0)){continue}break}}F[a+48>>2]=f;F[a+44>>2]=h;F[a+40>>2]=c;if(!e){break d}ja(e)}D[a+24|0]=1;F[a+64>>2]=b}Z=g+16|0;return}na();v()}na();v()}function nb(a,b){var c=0,d=0,e=0;c=(a|0)==(b|0);D[b+12|0]=c;a:{if(c){break a}while(1){d=F[b+8>>2];if(G[d+12|0]){break a}b:{c=F[d+8>>2];e=F[c>>2];if((e|0)==(d|0)){e=F[c+4>>2];if(!(!e|G[e+12|0])){break b}c:{if(F[d>>2]==(b|0)){b=d;break c}b=F[d+4>>2];a=F[b>>2];F[d+4>>2]=a;if(a){F[a+8>>2]=d;c=F[d+8>>2]}F[b+8>>2]=c;a=F[d+8>>2];F[((F[a>>2]!=(d|0))<<2)+a>>2]=b;F[b>>2]=d;F[d+8>>2]=b;c=F[b+8>>2];d=F[c>>2]}D[b+12|0]=1;D[c+12|0]=0;a=F[d+4>>2];F[c>>2]=a;if(a){F[a+8>>2]=c}F[d+8>>2]=F[c+8>>2];a=F[c+8>>2];F[((F[a>>2]!=(c|0))<<2)+a>>2]=d;F[d+4>>2]=c;F[c+8>>2]=d;return}if(!(G[e+12|0]|!e)){break b}d:{if(F[d>>2]!=(b|0)){b=d;break d}a=F[b+4>>2];F[d>>2]=a;if(a){F[a+8>>2]=d;c=F[d+8>>2]}F[b+8>>2]=c;a=F[d+8>>2];F[((F[a>>2]!=(d|0))<<2)+a>>2]=b;F[b+4>>2]=d;F[d+8>>2]=b;c=F[b+8>>2]}D[b+12|0]=1;D[c+12|0]=0;a=F[c+4>>2];b=F[a>>2];F[c+4>>2]=b;if(b){F[b+8>>2]=c}F[a+8>>2]=F[c+8>>2];b=F[c+8>>2];F[((F[b>>2]!=(c|0))<<2)+b>>2]=a;F[a>>2]=c;F[c+8>>2]=a;break a}D[d+12|0]=1;D[c+12|0]=(a|0)==(c|0);D[e+12|0]=1;b=c;if((c|0)!=(a|0)){continue}break}}}function mi(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;a:{b:{c:{d:{e:{f:{g:{h:{i:{j:{k:{if(b){if(!c){break k}if(!d){break j}e=O(d)-O(b)|0;if(e>>>0<=31){break i}break c}if((d|0)==1|d>>>0>1){break c}_=0;a=(a>>>0)/(c>>>0)|0;break a}if(!a){break h}if(!d|d-1&d){break g}a=b>>>ji(d)|0;_=0;break a}if(!(c-1&c)){break f}h=(O(c)+33|0)-O(b)|0;g=0-h|0;break d}h=e+1|0;g=63-e|0;break d}_=0;a=(b>>>0)/(d>>>0)|0;break a}e=O(d)-O(b)|0;if(e>>>0<31){break e}break c}if((c|0)==1){break b}d=ji(c);c=d&31;if((d&63)>>>0>=32){a=b>>>c|0}else{e=b>>>c|0;a=((1<>>c}_=e;break a}h=e+1|0;g=63-e|0}e=h&63;f=e&31;if(e>>>0>=32){e=0;i=b>>>f|0}else{e=b>>>f|0;i=((1<>>f}g=g&63;f=g&31;if(g>>>0>=32){b=a<>>32-f|b<>>31;e=i<<1|b>>>31;f=m-(j+(e>>>0>g>>>0)|0)>>31;k=c&f;i=e-k|0;e=j-((d&f)+(e>>>0>>0)|0)|0;b=b<<1|a>>>31;a=l|a<<1;l=f&1;h=h-1|0;if(h){continue}break}}_=b<<1|a>>>31;a=l|a<<1;break a}a=0;b=0}_=b}return a}function yh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;c=F[b+88>>2];if(!(!c|F[c>>2]!=1)){e=F[c+8>>2];F[a+4>>2]=G[e|0]|G[e+1|0]<<8|(G[e+2|0]<<16|G[e+3|0]<<24);f=a+8|0;d=G[b+24|0];h=F[a+8>>2];g=F[a+12>>2]-h>>2;a:{if(d>>>0>g>>>0){qa(f,d-g|0);d=G[b+24|0];e=F[c+8>>2];break a}if(d>>>0>=g>>>0){break a}F[a+12>>2]=h+(d<<2)}b:{if(!d){b=4;break b}h=d&3;f=F[f>>2];c:{if(d-1>>>0<3){b=4;d=0;break c}k=d&252;d=0;b=4;while(1){g=d<<2;c=b+e|0;F[g+f>>2]=G[c|0]|G[c+1|0]<<8|(G[c+2|0]<<16|G[c+3|0]<<24);F[f+(g|4)>>2]=G[c+4|0]|G[c+5|0]<<8|(G[c+6|0]<<16|G[c+7|0]<<24);F[f+(g|8)>>2]=G[c+8|0]|G[c+9|0]<<8|(G[c+10|0]<<16|G[c+11|0]<<24);F[f+(g|12)>>2]=G[c+12|0]|G[c+13|0]<<8|(G[c+14|0]<<16|G[c+15|0]<<24);d=d+4|0;b=b+16|0;i=i+4|0;if((k|0)!=(i|0)){continue}break}}if(!h){break b}while(1){c=b+e|0;F[f+(d<<2)>>2]=G[c|0]|G[c+1|0]<<8|(G[c+2|0]<<16|G[c+3|0]<<24);d=d+1|0;b=b+4|0;j=j+1|0;if((h|0)!=(j|0)){continue}break}}d=a;a=b+e|0;F[d+20>>2]=G[a|0]|G[a+1|0]<<8|(G[a+2|0]<<16|G[a+3|0]<<24);d=1}return d|0}function Yg(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0;g=Z-16|0;Z=g;e=F[a+4>>2];d=F[e>>2];a:{b=F[a+12>>2];c=F[b+28>>2]-F[b+24>>2]|0;f=c>>2;b:{if(f>>>0<=F[e+8>>2]-d>>2>>>0){break b}if((c|0)<0){break a}b=F[e+4>>2];c=ka(c);f=c+(f<<2)|0;h=c+(b-d&-4)|0;c=h;if((b|0)!=(d|0)){while(1){c=c-4|0;b=b-4|0;F[c>>2]=F[b>>2];if((b|0)!=(d|0)){continue}break}}F[e+8>>2]=f;F[e+4>>2]=h;F[e>>2]=c;if(!d){break b}ja(d)}b=F[a+12>>2];c=F[b+28>>2];b=F[b+24>>2];F[g+12>>2]=0;b=c-b>>2;d=a+96|0;e=F[d>>2];c=F[a+100>>2]-e>>2;c:{if(b>>>0>c>>>0){Fa(d,b-c|0,g+12|0);break c}if(b>>>0>=c>>>0){break c}F[a+100>>2]=e+(b<<2)}e=a+8|0;b=F[a+116>>2];d:{if(b){d=F[b>>2];if((d|0)==F[b+4>>2]){c=1;break d}b=0;while(1){c=rd(e,F[(b<<2)+d>>2]);if(!c){break d}f=F[a+116>>2];d=F[f>>2];b=b+1|0;if(b>>>0>2]-d>>2>>>0){continue}break}break d}c=1;a=F[a+12>>2];a=F[a+4>>2]-F[a>>2]|0;if(a>>>0<12){break d}a=(a>>2>>>0)/3|0;b=0;while(1){c=rd(e,L(b,3));if(!c){break d}b=b+1|0;if((a|0)!=(b|0)){continue}break}}Z=g+16|0;return c|0}na();v()}function md(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0;a:{b:{c:{if(!b){if((d|0)<0){break a}f=F[a+4>>2];b=F[a>>2];d=f-b|0;if(c>>>0>d>>>0){g=c-d|0;e=F[a+8>>2];if(g>>>0<=e-f>>>0){i=a,j=ma(f,0,g)+g|0,F[i+4>>2]=j;break c}if((c|0)<0){break b}f=e-b|0;e=f<<1;f=f>>>0>=1073741823?2147483647:c>>>0>>0?e:c;e=ka(f);ma(e+d|0,0,g);d=pa(e,b,d);F[a+8>>2]=d+f;F[a+4>>2]=c+d;F[a>>2]=d;if(!b){break c}ja(b);break c}if(c>>>0>=d>>>0){break c}F[a+4>>2]=b+c;break c}if((d|0)<0){break a}e=F[a+4>>2];f=F[a>>2];g=e-f|0;d:{if((d|0)<=0&c>>>0<=g>>>0|(d|0)<0){break d}if(c>>>0>g>>>0){d=c-g|0;h=F[a+8>>2];if(d>>>0<=h-e>>>0){i=a,j=ma(e,0,d)+d|0,F[i+4>>2]=j;break d}if((c|0)<0){break b}e=h-f|0;h=e<<1;e=e>>>0>=1073741823?2147483647:c>>>0>>0?h:c;h=ka(e);ma(h+g|0,0,d);d=pa(h,f,g);F[a+8>>2]=d+e;F[a+4>>2]=c+d;F[a>>2]=d;if(!f){break d}ja(f);break d}if(c>>>0>=g>>>0){break d}F[a+4>>2]=c+f}if(!c){break c}pa(F[a>>2],b,c)}b=F[a+28>>2];c=F[a+24>>2]+1|0;b=c?b:b+1|0;F[a+24>>2]=c;F[a+28>>2]=b;g=1;break a}na();v()}return g}function Lg(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;k=F[a+12>>2];c=F[a+68>>2];d=F[c+80>>2];D[b+84|0]=0;n=b+68|0;i=F[b+68>>2];e=F[b+72>>2]-i>>2;a:{if(e>>>0>>0){ab(n,d-e|0,9124);c=F[a+68>>2];d=F[c+80>>2];break a}if(d>>>0>=e>>>0){break a}F[b+72>>2]=i+(d<<2)}b=F[c+100>>2];e=F[c+96>>2];i=(b-e|0)/12|0;m=1;b:{if((b|0)==(e|0)){break b}k=F[k+28>>2];f=F[k>>2];if((f|0)==-1){return 0}o=i>>>0<=1?1:i;c=e;b=0;m=0;while(1){g=F[c>>2];if(g>>>0>=d>>>0){break b}j=F[F[a+72>>2]+12>>2];h=F[j+(f<<2)>>2];if(h>>>0>=d>>>0){break b}f=F[n>>2];F[f+(g<<2)>>2]=h;g=k+(l<<2)|0;h=F[g+4>>2];if((h|0)==-1){break b}l=F[c+4>>2];if(l>>>0>=d>>>0){break b}h=F[(h<<2)+j>>2];if(h>>>0>=d>>>0){break b}F[f+(l<<2)>>2]=h;g=F[g+8>>2];if((g|0)==-1){break b}c=F[c+8>>2];if(c>>>0>=d>>>0){break b}j=F[(g<<2)+j>>2];if(j>>>0>=d>>>0){break b}F[f+(c<<2)>>2]=j;b=b+1|0;m=i>>>0<=b>>>0;if((b|0)==(o|0)){break b}c=e+L(b,12)|0;l=L(b,3);f=F[k+(l<<2)>>2];if((f|0)!=-1){continue}break}}return m|0}function ag(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;h=F[d+80>>2];e=Z-48|0;Z=e;a=F[a+4>>2];m=a-2|0;a:{if(m>>>0>28){break a}j=F[F[d>>2]>>2]+F[d+48>>2]|0;F[e+16>>2]=a;a=-1<>2]=a^-1;a=-2-a|0;F[e+24>>2]=a;F[e+32>>2]=(a|0)/2;J[e+28>>2]=M(2)/M(a|0);f=F[c>>2];if((f|0)!=F[c+4>>2]){a=0;d=0;while(1){g=F[(d<<2)+f>>2];h=e+36|0;k=F[F[b>>2]>>2];l=F[b+48>>2];f=F[b+40>>2];i=F[b+44>>2];if(!G[b+84|0]){g=F[F[b+68>>2]+(g<<2)>>2]}g=ki(f,i,g,0);i=g;g=g+l|0;la(h,g+k|0,f);Kc(e+16|0,h,e+12|0,e+8|0);f=a<<2;F[f+j>>2]=F[e+12>>2];F[(f|4)+j>>2]=F[e+8>>2];a=a+2|0;d=d+1|0;f=F[c>>2];if(d>>>0>2]-f>>2>>>0){continue}break}break a}if(!h){break a}d=0;a=0;while(1){k=e+36|0;l=F[F[b>>2]>>2];i=F[b+48>>2];c=F[b+40>>2];f=ki(c,F[b+44>>2],G[b+84|0]?a:F[F[b+68>>2]+(a<<2)>>2],0);g=f;f=f+i|0;la(k,f+l|0,c);Kc(e+16|0,k,e+12|0,e+8|0);c=d<<2;F[c+j>>2]=F[e+12>>2];F[(c|4)+j>>2]=F[e+8>>2];d=d+2|0;a=a+1|0;if((h|0)!=(a|0)){continue}break}}Z=e+48|0;return m>>>0<29|0}function Zg(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;c=F[a+12>>2];d=F[a+108>>2];e=F[d+80>>2];D[b+84|0]=0;m=b+68|0;h=F[b+68>>2];f=F[b+72>>2]-h>>2;a:{if(f>>>0>>0){ab(m,e-f|0,9124);d=F[a+108>>2];e=F[d+80>>2];break a}if(e>>>0>=f>>>0){break a}F[b+72>>2]=h+(e<<2)}b=F[d+100>>2];f=F[d+96>>2];h=(b-f|0)/12|0;k=1;b:{if((b|0)==(f|0)){break b}n=h>>>0<=1?1:h;o=F[c>>2];c=0;d=f;b=0;k=0;while(1){c=(c<<2)+o|0;i=F[c>>2];if((i|0)==-1){break b}g=F[d>>2];if(g>>>0>=e>>>0){break b}l=F[F[a+112>>2]+12>>2];j=F[l+(i<<2)>>2];if(j>>>0>=e>>>0){break b}i=F[m>>2];F[i+(g<<2)>>2]=j;g=F[c+4>>2];if((g|0)==-1){break b}j=F[d+4>>2];if(j>>>0>=e>>>0){break b}g=F[(g<<2)+l>>2];if(g>>>0>=e>>>0){break b}F[i+(j<<2)>>2]=g;c=F[c+8>>2];if((c|0)==-1){break b}d=F[d+8>>2];if(d>>>0>=e>>>0){break b}c=F[(c<<2)+l>>2];if(c>>>0>=e>>>0){break b}F[i+(d<<2)>>2]=c;b=b+1|0;k=h>>>0<=b>>>0;if((b|0)==(n|0)){break b}c=L(b,3);d=f+L(b,12)|0;if((b|0)!=1431655765){continue}break}}return k|0}function xd(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=M(0),j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;k=Z-16|0;Z=k;if(F[c+28>>2]==9){d=F[a+4>>2];h=G[c+24|0];e=h<<2;f=ka(e);l=k+8|0;F[l>>2]=1065353216;i=J[a+20>>2];d=-1<0){J[l>>2]=i/M(d|0)}o=(d|0)>0;a:{if(!o){break a}j=F[c+80>>2];if(!j){break a}if(h){p=F[F[b>>2]>>2]+F[b+48>>2]|0;t=h&254;u=h&1;b=0;while(1){m=F[a+8>>2];i=J[l>>2];d=0;n=0;if((h|0)!=1){while(1){g=d<<2;q=(b<<2)+p|0;J[g+f>>2]=M(i*M(F[q>>2]))+J[g+m>>2];g=g|4;J[g+f>>2]=M(i*M(F[q+4>>2]))+J[g+m>>2];d=d+2|0;b=b+2|0;n=n+2|0;if((t|0)!=(n|0)){continue}break}}if(u){d=d<<2;J[d+f>>2]=M(i*M(F[(b<<2)+p>>2]))+J[d+m>>2];b=b+1|0}la(F[F[c+64>>2]>>2]+r|0,f,e);r=e+r|0;s=s+1|0;if((s|0)!=(j|0)){continue}break}break a}b=0;if((j|0)!=1){a=j&-2;d=0;while(1){la(F[F[c+64>>2]>>2]+b|0,f,e);b=b+e|0;la(b+F[F[c+64>>2]>>2]|0,f,e);b=b+e|0;d=d+2|0;if((a|0)!=(d|0)){continue}break}}if(!(j&1)){break a}la(F[F[c+64>>2]>>2]+b|0,f,e)}ja(f)}Z=k+16|0;return o|0}function Rg(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;c=F[a+12>>2];d=F[a+68>>2];e=F[d+80>>2];D[b+84|0]=0;m=b+68|0;h=F[b+68>>2];f=F[b+72>>2]-h>>2;a:{if(f>>>0>>0){ab(m,e-f|0,9124);d=F[a+68>>2];e=F[d+80>>2];break a}if(e>>>0>=f>>>0){break a}F[b+72>>2]=h+(e<<2)}b=F[d+100>>2];f=F[d+96>>2];h=(b-f|0)/12|0;k=1;b:{if((b|0)==(f|0)){break b}n=h>>>0<=1?1:h;o=F[c>>2];c=0;d=f;b=0;k=0;while(1){c=(c<<2)+o|0;i=F[c>>2];if((i|0)==-1){break b}g=F[d>>2];if(g>>>0>=e>>>0){break b}l=F[F[a+72>>2]+12>>2];j=F[l+(i<<2)>>2];if(j>>>0>=e>>>0){break b}i=F[m>>2];F[i+(g<<2)>>2]=j;g=F[c+4>>2];if((g|0)==-1){break b}j=F[d+4>>2];if(j>>>0>=e>>>0){break b}g=F[(g<<2)+l>>2];if(g>>>0>=e>>>0){break b}F[i+(j<<2)>>2]=g;c=F[c+8>>2];if((c|0)==-1){break b}d=F[d+8>>2];if(d>>>0>=e>>>0){break b}c=F[(c<<2)+l>>2];if(c>>>0>=e>>>0){break b}F[i+(d<<2)>>2]=c;b=b+1|0;k=h>>>0<=b>>>0;if((b|0)==(n|0)){break b}c=L(b,3);d=f+L(b,12)|0;if((b|0)!=1431655765){continue}break}}return k|0}function Na(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;d=Z-16|0;Z=d;a:{f=F[a+4>>2];b:{if(f>>>0>>0){e=b-f|0;c=F[a+8>>2];g=c<<5;c:{if(!(e>>>0>g>>>0|f>>>0>g-e>>>0)){F[a+4>>2]=b;h=f&31;b=F[a>>2]+(f>>>3&536870908)|0;break c}F[d+8>>2]=0;F[d>>2]=0;F[d+4>>2]=0;if((b|0)<0){break a}if(g>>>0<=1073741822){c=c<<6;b=b+31&-32;b=b>>>0>>0?c:b}else{b=2147483647}$a(d,b);f=F[a+4>>2];F[d+4>>2]=f+e;i=F[a>>2];b=F[d>>2];d:{if((f|0)<=0){break d}c=f>>>5|0;if(f>>>0>=32){pa(b,i,c<<2)}g=c<<2;b=g+b|0;h=f&31;if(h){c=-1>>>32-h|0;F[b>>2]=F[b>>2]&(c^-1)|F[i+g>>2]&c}i=F[a>>2]}F[a>>2]=F[d>>2];F[d>>2]=i;c=F[a+4>>2];F[a+4>>2]=F[d+4>>2];F[d+4>>2]=c;c=F[a+8>>2];F[a+8>>2]=F[d+8>>2];F[d+8>>2]=c;if(!i){break c}ja(i)}if(!e){break b}if(h){c=32-h|0;a=c>>>0>>0?c:e;F[b>>2]=F[b>>2]&(-1<>>c-a^-1);e=e-a|0;b=b+4|0}a=e>>>5|0;if(e>>>0>=32){ma(b,0,a<<2)}if((e&-32)==(e|0)){break b}a=(a<<2)+b|0;F[a>>2]=F[a>>2]&(-1>>>32-(e&31)^-1);break b}F[a+4>>2]=b}Z=d+16|0;return}na();v()}function Aa(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;i=Z-16|0;Z=i;f=F[b+20>>2];h=F[b+12>>2];c=F[b+16>>2];a:{if((f|0)>=(h|0)&c>>>0>=I[b+8>>2]|(f|0)>(h|0)){break a}D[a+12|0]=G[c+F[b>>2]|0];c=F[b+20>>2];f=F[b+16>>2]+1|0;c=f?c:c+1|0;F[b+16>>2]=f;F[b+20>>2]=c;if(!Qd(1,i+12|0,b)){break a}h=F[b+8>>2];f=F[b+16>>2];g=h-f|0;c=F[i+12>>2];d=f>>>0>h>>>0;h=F[b+20>>2];e=F[b+12>>2]-(d+h|0)|0;if(g>>>0>>0&(e|0)<=0|(e|0)<0|(c|0)<=0){break a}g=f+F[b>>2]|0;F[a>>2]=g;b:{c:{e=c-1|0;j=e+g|0;d=G[j|0];d:{if(d>>>0<=63){F[a+4>>2]=e;d=G[j|0]&63;break d}e:{switch((d>>>6|0)-1|0){case 1:break c;case 0:break e;default:break a}}if(c>>>0<2){break a}e=c-2|0;F[a+4>>2]=e;g=g+e|0;d=G[g+1|0]<<8&16128|G[g|0]}F[a+8>>2]=d+4096;break b}if(c>>>0<3){break a}e=c-3|0;F[a+4>>2]=e;d=a;a=g+e|0;a=G[a+1|0]<<8|G[a+2|0]<<16&4128768|G[a|0];F[d+8>>2]=a+4096;if(a>>>0>1044479){break a}}a=h;d=c;c=c+f|0;a=d>>>0>c>>>0?a+1|0:a;F[b+16>>2]=c;F[b+20>>2]=a;k=1}Z=i+16|0;return k}function qd(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;e=F[a+12>>2];i=F[a+8>>2];d=e-i>>2;b=G[b+24|0];a:{if(d>>>0>>0){qa(a+8|0,b-d|0);i=F[a+8>>2];e=F[a+12>>2];break a}if(b>>>0>=d>>>0){break a}e=(b<<2)+i|0;F[a+12>>2]=e}b=0;f=F[c+8>>2];h=F[c+12>>2];j=F[c+20>>2];e=e-i|0;d=F[c+16>>2];g=e+d|0;j=e>>>0>g>>>0?j+1|0:j;b:{if(f>>>0>>0&(h|0)<=(j|0)|(h|0)<(j|0)){break b}la(i,d+F[c>>2]|0,e);d=F[c+20>>2];g=e;e=e+F[c+16>>2]|0;d=g>>>0>e>>>0?d+1|0:d;F[c+16>>2]=e;F[c+20>>2]=d;f=F[c+8>>2];h=F[c+12>>2];g=e+4|0;d=g>>>0<4?d+1|0:d;if(f>>>0>>0&(d|0)>=(h|0)|(d|0)>(h|0)){break b}d=e+F[c>>2]|0;F[a+20>>2]=G[d|0]|G[d+1|0]<<8|(G[d+2|0]<<16|G[d+3|0]<<24);d=F[c+20>>2];g=d;f=d;e=F[c+16>>2];d=e+4|0;f=d>>>0<4?f+1|0:f;F[c+16>>2]=d;F[c+20>>2]=f;h=F[c+12>>2];if((f|0)>=(h|0)&d>>>0>=I[c+8>>2]|(f|0)>(h|0)){break b}f=G[d+F[c>>2]|0];d=g;e=e+5|0;d=e>>>0<5?d+1|0:d;F[c+16>>2]=e;F[c+20>>2]=d;if(f-1>>>0>29){break b}F[a+4>>2]=f;b=1}return b|0}function Kc(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;j=+J[b>>2];k=+J[b+4>>2];l=+J[b+8>>2];g=N(j)+N(k)+N(l);a:{if(!(g>1e-6)){j=1;k=0;e=0;break a}g=1/g;k=g*k;j=g*j;e=g*l<0}h=F[a+16>>2];l=+(h|0);g=R(j*l+.5);b:{if(N(g)<2147483648){m=~~g;break b}m=-2147483648}f=m>>31;i=(f^m)-f|0;g=R(k*l+.5);c:{if(N(g)<2147483648){f=~~g;break c}f=-2147483648}b=f>>31;b=h-(i+((f^b)-b|0)|0)|0;i=(b|0)>0?b:0;e=e?0-i|0:i;f=f+(b>>31&((f|0)>0?b:0-b|0))|0;d:{if((m|0)>=0){b=e+h|0;a=F[a+8>>2];e=h+f|0;break d}b=f>>31;b=(b^f)-b|0;a=F[a+8>>2];b=(e|0)<0?b:a-b|0;e=(f|0)<0?i:a-i|0}e:{if(!(b|e)){b=a;break e}if(!((a|0)!=(b|0)|e)){b=a;break e}if(!((a|0)!=(e|0)|b)){b=a;break e}if(!((b|0)<=(h|0)|e)){b=(h<<1)-b|0;a=0;break e}if(!((a|0)!=(e|0)|(b|0)>=(h|0))){b=(h<<1)-b|0;break e}if(!((a|0)!=(b|0)|(e|0)>=(h|0))){b=a;a=(h<<1)-e|0;break e}if(b){a=e;break e}b=0;if((e|0)<=(h|0)){a=e;break e}a=(h<<1)-e|0}F[c>>2]=a;F[d>>2]=b}function ye(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;a:{if(!$c(a,b)){break a}h=a+36|0;g=$[F[F[a>>2]+24>>2]](a)|0;e=F[a+40>>2];d=F[a+36>>2];c=e-d>>2;b:{if(g>>>0>c>>>0){Pb(h,g-c|0);break b}if(c>>>0<=g>>>0){break b}d=d+(g<<2)|0;if((d|0)!=(e|0)){while(1){e=e-4|0;c=F[e>>2];F[e>>2]=0;if(c){$[F[F[c>>2]+4>>2]](c)}if((d|0)!=(e|0)){continue}break}}F[a+40>>2]=d}c=1;if((g|0)<=0){break a}e=0;while(1){c:{c=F[b+20>>2];f=F[b+12>>2];d=F[b+16>>2];if((c|0)>=(f|0)&d>>>0>=I[b+8>>2]|(c|0)>(f|0)){break c}f=G[F[b>>2]+d|0];d=d+1|0;c=d?c:c+1|0;F[b+16>>2]=d;F[b+20>>2]=c;d=$[F[F[a>>2]+48>>2]](a,f)|0;f=e<<2;i=f+F[a+36>>2]|0;c=F[i>>2];F[i>>2]=d;if(c){$[F[F[c>>2]+4>>2]](c)}c=F[F[h>>2]+f>>2];if(!c){break c}if(!(k=c,l=$[F[F[a>>2]+28>>2]](a)|0,m=$[F[F[a>>2]+20>>2]](a,e)|0,j=F[F[c>>2]+8>>2],$[j](k|0,l|0,m|0)|0)){break c}c=1;e=e+1|0;if((g|0)!=(e|0)){continue}break a}break}c=0}return c|0}function Xc(a,b){var c=0,d=0,e=0,f=0,g=0,h=0;g=F[a>>2];c=g+(b>>>3&536870908)|0;F[c>>2]=F[c>>2]|1<>2];e=(b|0)==-1;d=-1;a:{if(e){break a}c=b+1|0;c=(c>>>0)%3|0?c:b-2|0;d=-1;if((c|0)==-1){break a}d=F[F[f>>2]+(c<<2)>>2]}c=F[a+12>>2];h=(d>>>3&536870908)+c|0;F[h>>2]=F[h>>2]|1<>>0)%3|0){e=b-1|0;break e}e=b+2|0;d=-1;if((e|0)==-1){break d}}d=F[F[f>>2]+(e<<2)>>2]}e=(d>>>3&536870908)+c|0;F[e>>2]=F[e>>2]|1<>2]+(b<<2)>>2];if((b|0)==-1){break b}D[a+24|0]=0;a=(b>>>3&536870908)+g|0;F[a>>2]=F[a>>2]|1<>>0)%3|0?a:b-2|0;if((a|0)!=-1){d=F[F[f>>2]+(a<<2)>>2]}a=c+(d>>>3&536870908)|0;F[a>>2]=F[a>>2]|1<>>0)%3|0){b=b-1|0;break g}b=b+2|0;a=-1;if((b|0)==-1){break f}}a=F[F[f>>2]+(b<<2)>>2]}b=1<>>3&536870908)|0;c=F[a>>2];break c}a=c+536870908|0;b=F[c+536870908>>2];c=-2147483648}F[a>>2]=b|c}}function zc(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=M(0),f=M(0),g=M(0),h=M(0),i=M(0),j=0,k=M(0),l=M(0),m=M(0),n=M(0),o=0;a:{if(F[c+28>>2]!=9|G[c+24|0]!=3){break a}a=F[a+4>>2];if(a-2>>>0>28){break a}o=1;j=F[c+80>>2];if(!j){break a}k=M(M(2)/M((1<>2]>>2]+F[c+48>>2]|0;a=F[F[b>>2]>>2]+F[b+48>>2]|0;b=0;while(1){g=M(0);l=M(0);m=M(0);e=M(M(M(F[a>>2])*k)+M(-1));f=M(M(M(F[a+4>>2])*k)+M(-1));i=M(M(M(1)-M(N(e)))-M(N(f)));h=M(Q(M(-i),M(0)));n=M(-h);f=M(f+(f>>8;D[c+10|0]=d>>>16;D[c+11|0]=d>>>24;d=(w(l),y(2));D[c+4|0]=d;D[c+5|0]=d>>>8;D[c+6|0]=d>>>16;D[c+7|0]=d>>>24;d=(w(g),y(2));D[c|0]=d;D[c+1|0]=d>>>8;D[c+2|0]=d>>>16;D[c+3|0]=d>>>24;c=c+12|0;b=b+1|0;if((j|0)!=(b|0)){continue}break}}return o|0}function Md(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;g=Z-16|0;Z=g;a:{if(!Sa(1,g+8|0,b)){break a}d=F[b+8>>2];e=F[b+16>>2];f=d-e|0;h=F[g+12>>2];c=d>>>0>>0;d=F[b+20>>2];i=F[b+12>>2]-(c+d|0)|0;c=F[g+8>>2];if((h|0)==(i|0)&c>>>0>f>>>0|h>>>0>i>>>0){break a}d=d+h|0;f=c+e|0;d=f>>>0>>0?d+1|0:d;F[b+16>>2]=f;F[b+20>>2]=d;if((c|0)<=0){break a}b=F[b>>2]+e|0;F[a+40>>2]=b;e=c-1|0;d=b+e|0;f=G[d|0];b:{if(f>>>0<=63){F[a+44>>2]=e;b=G[d|0]&63;break b}c:{switch((f>>>6|0)-1|0){case 0:if(c>>>0<2){break a}c=c-2|0;F[a+44>>2]=c;b=b+c|0;b=G[b+1|0]<<8&16128|G[b|0];break b;case 1:if(c>>>0<3){break a}c=c-3|0;F[a+44>>2]=c;b=b+c|0;b=G[b+1|0]<<8|G[b+2|0]<<16&4128768|G[b|0];break b;default:break c}}c=c-4|0;F[a+44>>2]=c;b=b+c|0;b=(G[b|0]|G[b+1|0]<<8|(G[b+2|0]<<16|G[b+3|0]<<24))&1073741823}F[a+48>>2]=b+16384;j=b>>>0<4177920}Z=g+16|0;return j}function Tf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;a:{a=Z-32|0;Z=a;e=ya(c);if(e>>>0<2147483632){b:{c:{if(e>>>0>=11){g=(e|15)+1|0;f=ka(g);F[a+24>>2]=g|-2147483648;F[a+16>>2]=f;F[a+20>>2]=e;g=e+f|0;break c}D[a+27|0]=e;f=a+16|0;g=e+f|0;if(!e){break b}}la(f,c,e)}D[g|0]=0;F[a+8>>2]=0;F[a>>2]=0;F[a+4>>2]=0;d:{c=Ya(b,a+16|0);if((c|0)==(b+4|0)){break d}b=F[c+28>>2];e=F[c+32>>2];if((b|0)==(e|0)){break d}b=e-b|0;if(b&3){break d}e=b>>>2|0;f=F[a+4>>2];b=F[a>>2];g=f-b>>2;e:{if(e>>>0>g>>>0){qa(a,e-g|0);b=F[a>>2];f=F[a+4>>2];break e}if(e>>>0>=g>>>0){break e}f=(e<<2)+b|0;F[a+4>>2]=f}if((b|0)!=(f|0)){e=b;b=F[c+28>>2];la(e,b,F[c+32>>2]-b|0);break d}ta();v()}b=F[d>>2];if(b){F[d+4>>2]=b;ja(b)}F[d>>2]=F[a>>2];F[d+4>>2]=F[a+4>>2];F[d+8>>2]=F[a+8>>2];if(D[a+27|0]<0){ja(F[a+16>>2])}Z=a+32|0;break a}za();v()}}function ud(a){a=a|0;var b=0,c=0,d=0,e=0;F[a>>2]=8284;d=F[a+368>>2];F[a+368>>2]=0;if(d){e=d-4|0;b=F[e>>2];if(b){c=(b<<4)+d|0;while(1){c=c-16|0;if((d|0)!=(c|0)){continue}break}}ja(e)}td(a+216|0);b=F[a+196>>2];if(b){F[a+200>>2]=b;ja(b)}b=F[a+184>>2];if(b){F[a+188>>2]=b;ja(b)}b=F[a+172>>2];if(b){F[a+176>>2]=b;ja(b)}b=F[a+160>>2];if(b){F[a+164>>2]=b;ja(b)}c=F[a+144>>2];if(c){while(1){b=F[c>>2];ja(c);c=b;if(b){continue}break}}b=F[a+136>>2];F[a+136>>2]=0;if(b){ja(b)}b=F[a+120>>2];if(b){ja(b)}b=F[a+108>>2];if(b){ja(b)}b=F[a+96>>2];if(b){ja(b)}b=F[a+72>>2];if(b){F[a+76>>2]=b;ja(b)}b=F[a+60>>2];if(b){ja(b)}b=F[a+48>>2];if(b){F[a+52>>2]=b;ja(b)}b=F[a+36>>2];if(b){F[a+40>>2]=b;ja(b)}b=F[a+24>>2];if(b){F[a+28>>2]=b;ja(b)}b=F[a+12>>2];if(b){F[a+16>>2]=b;ja(b)}b=F[a+8>>2];F[a+8>>2]=0;if(b){Za(b)}return a|0}function Vf(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;d=Z-16|0;Z=d;a:{e=ya(c);if(e>>>0<2147483632){b:{c:{if(e>>>0>=11){f=(e|15)+1|0;a=ka(f);F[d+8>>2]=f|-2147483648;F[d>>2]=a;F[d+4>>2]=e;f=a+e|0;break c}D[d+11|0]=e;f=d+e|0;a=d;if(!e){break b}}la(a,c,e)}D[f|0]=0;c=G[d+11|0];e=c<<24>>24;b=F[b+4>>2];a=0;d:{if(!b){break d}a=c;c=(e|0)<0;a=c?F[d+4>>2]:a;f=c?F[d>>2]:d;while(1){c=G[b+27|0];g=c<<24>>24<0;c=g?F[b+20>>2]:c;i=c>>>0>>0;e:{f:{g:{h:{i:{j:{h=i?c:a;if(h){g=g?F[b+16>>2]:b+16|0;j=sa(f,g,h);if(j){break j}if(a>>>0>=c>>>0){break i}break e}if(a>>>0>=c>>>0){break h}break e}if((j|0)<0){break e}}c=sa(g,f,h);if(c){break g}}if(i){break f}a=1;break d}if((c|0)<0){break f}a=1;break d}b=b+4|0}b=F[b>>2];if(b){continue}break}a=0}if((e|0)<0){ja(F[d>>2])}Z=d+16|0;break a}za();v()}return a|0}function lc(a,b){var c=0,d=0;c=F[b+8>>2];F[a+4>>2]=F[b+4>>2];F[a+8>>2]=c;F[a+20>>2]=F[b+20>>2];c=F[b+16>>2];F[a+12>>2]=F[b+12>>2];F[a+16>>2]=c;a:{b:{if((a|0)!=(b|0)){c=F[b+28>>2];if(c){d=F[a+24>>2];if(F[a+32>>2]<<5>>>0>>0){if(d){ja(d);F[a+32>>2]=0;F[a+24>>2]=0;F[a+28>>2]=0;c=F[b+28>>2]}if((c|0)<0){break b}c=(c-1>>>5|0)+1|0;d=ka(c<<2);F[a+32>>2]=c;F[a+28>>2]=0;F[a+24>>2]=d;c=F[b+28>>2]}pa(d,F[b+24>>2],(c-1>>>3&536870908)+4|0);c=F[b+28>>2]}else{c=0}F[a+28>>2]=c;c=F[b+40>>2];if(c){d=F[a+36>>2];if(F[a+44>>2]<<5>>>0>>0){if(d){ja(d);F[a+44>>2]=0;F[a+36>>2]=0;F[a+40>>2]=0;c=F[b+40>>2]}if((c|0)<0){break a}c=(c-1>>>5|0)+1|0;d=ka(c<<2);F[a+44>>2]=c;F[a+40>>2]=0;F[a+36>>2]=d;c=F[b+40>>2]}pa(d,F[b+36>>2],(c-1>>>3&536870908)+4|0);b=F[b+40>>2]}else{b=0}F[a+40>>2]=b}return}na();v()}na();v()}function nc(a){var b=0,c=0,d=0;b=F[a+8>>2];d=F[a>>2];a:{if(G[a+12|0]){b:{c:{d:{e:{if((b|0)==-1){break e}c=b+1|0;b=(c>>>0)%3|0?c:b-2|0;if((b|0)==-1){break e}b=F[F[d+12>>2]+(b<<2)>>2];if((b|0)!=-1){break d}}F[a+8>>2]=-1;break c}c=b+1|0;b=(c>>>0)%3|0?c:b-2|0;F[a+8>>2]=b;if((b|0)!=-1){break b}}c=F[a+4>>2];b=-1;f:{if((c|0)==-1){break f}g:{if((c>>>0)%3|0){c=c-1|0;break g}c=c+2|0;b=-1;if((c|0)==-1){break f}}c=F[F[d+12>>2]+(c<<2)>>2];b=-1;if((c|0)==-1){break f}b=c-1|0;if((c>>>0)%3|0){break f}b=c+2|0}D[a+12|0]=0;F[a+8>>2]=b;return}if((b|0)!=F[a+4>>2]){break a}F[a+8>>2]=-1;return}c=-1;h:{if((b|0)==-1){break h}i:{if((b>>>0)%3|0){b=b-1|0;break i}b=b+2|0;c=-1;if((b|0)==-1){break h}}b=F[F[d+12>>2]+(b<<2)>>2];c=-1;if((b|0)==-1){break h}c=b-1|0;if((b>>>0)%3|0){break h}c=b+2|0}F[a+8>>2]=c}}function Od(a){var b=0,c=0,d=0;b=ka(32);D[b+26|0]=0;c=G[1475]|G[1476]<<8;D[b+24|0]=c;D[b+25|0]=c>>>8;c=G[1471]|G[1472]<<8|(G[1473]<<16|G[1474]<<24);d=G[1467]|G[1468]<<8|(G[1469]<<16|G[1470]<<24);D[b+16|0]=d;D[b+17|0]=d>>>8;D[b+18|0]=d>>>16;D[b+19|0]=d>>>24;D[b+20|0]=c;D[b+21|0]=c>>>8;D[b+22|0]=c>>>16;D[b+23|0]=c>>>24;c=G[1463]|G[1464]<<8|(G[1465]<<16|G[1466]<<24);d=G[1459]|G[1460]<<8|(G[1461]<<16|G[1462]<<24);D[b+8|0]=d;D[b+9|0]=d>>>8;D[b+10|0]=d>>>16;D[b+11|0]=d>>>24;D[b+12|0]=c;D[b+13|0]=c>>>8;D[b+14|0]=c>>>16;D[b+15|0]=c>>>24;c=G[1455]|G[1456]<<8|(G[1457]<<16|G[1458]<<24);d=G[1451]|G[1452]<<8|(G[1453]<<16|G[1454]<<24);D[b|0]=d;D[b+1|0]=d>>>8;D[b+2|0]=d>>>16;D[b+3|0]=d>>>24;D[b+4|0]=c;D[b+5|0]=c>>>8;D[b+6|0]=c>>>16;D[b+7|0]=c>>>24;F[a>>2]=-1;ra(a+4|0,b,26);ja(b)}function Kg(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0;e=F[a+4>>2];d=F[e>>2];a:{b=F[a+12>>2];c=F[b+56>>2]-F[b+52>>2]|0;f=c>>2;b:{if(f>>>0<=F[e+8>>2]-d>>2>>>0){break b}if((c|0)<0){break a}b=F[e+4>>2];c=ka(c);f=c+(f<<2)|0;g=c+(b-d&-4)|0;c=g;if((b|0)!=(d|0)){while(1){c=c-4|0;b=b-4|0;F[c>>2]=F[b>>2];if((b|0)!=(d|0)){continue}break}}F[e+8>>2]=f;F[e+4>>2]=g;F[e>>2]=c;if(!d){break b}ja(d)}e=a+8|0;b=F[a+76>>2];c:{if(b){d=F[b>>2];if((d|0)==F[b+4>>2]){return 1}b=0;while(1){c=od(e,F[(b<<2)+d>>2]);if(!c){break c}f=F[a+76>>2];d=F[f>>2];b=b+1|0;if(b>>>0>2]-d>>2>>>0){continue}break}break c}c=1;a=F[F[a+12>>2]+64>>2];a=F[a+4>>2]-F[a>>2]|0;if(a>>>0<12){break c}a=(a>>2>>>0)/3|0;b=0;while(1){c=od(e,L(b,3));if(!c){break c}b=b+1|0;if((a|0)!=(b|0)){continue}break}}return c|0}na();v()}function Qg(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0;e=F[a+4>>2];d=F[e>>2];a:{b=F[a+12>>2];c=F[b+28>>2]-F[b+24>>2]|0;f=c>>2;b:{if(f>>>0<=F[e+8>>2]-d>>2>>>0){break b}if((c|0)<0){break a}b=F[e+4>>2];c=ka(c);f=c+(f<<2)|0;g=c+(b-d&-4)|0;c=g;if((b|0)!=(d|0)){while(1){c=c-4|0;b=b-4|0;F[c>>2]=F[b>>2];if((b|0)!=(d|0)){continue}break}}F[e+8>>2]=f;F[e+4>>2]=g;F[e>>2]=c;if(!d){break b}ja(d)}e=a+8|0;b=F[a+76>>2];c:{if(b){d=F[b>>2];if((d|0)==F[b+4>>2]){return 1}b=0;while(1){c=pd(e,F[(b<<2)+d>>2]);if(!c){break c}f=F[a+76>>2];d=F[f>>2];b=b+1|0;if(b>>>0>2]-d>>2>>>0){continue}break}break c}c=1;a=F[a+12>>2];a=F[a+4>>2]-F[a>>2]|0;if(a>>>0<12){break c}a=(a>>2>>>0)/3|0;b=0;while(1){c=pd(e,L(b,3));if(!c){break c}b=b+1|0;if((a|0)!=(b|0)){continue}break}}return c|0}na();v()}function pa(a,b,c){var d=0,e=0;a:{if((a|0)==(b|0)){break a}e=a+c|0;if(b-e>>>0<=0-(c<<1)>>>0){return la(a,b,c)}d=(a^b)&3;b:{c:{if(a>>>0>>0){if(d){d=a;break b}if(!(a&3)){d=a;break c}d=a;while(1){if(!c){break a}D[d|0]=G[b|0];b=b+1|0;c=c-1|0;d=d+1|0;if(d&3){continue}break}break c}d:{if(d){break d}if(e&3){while(1){if(!c){break a}c=c-1|0;d=c+a|0;D[d|0]=G[b+c|0];if(d&3){continue}break}}if(c>>>0<=3){break d}while(1){c=c-4|0;F[c+a>>2]=F[b+c>>2];if(c>>>0>3){continue}break}}if(!c){break a}while(1){c=c-1|0;D[c+a|0]=G[b+c|0];if(c){continue}break}break a}if(c>>>0<=3){break b}while(1){F[d>>2]=F[b>>2];b=b+4|0;d=d+4|0;c=c-4|0;if(c>>>0>3){continue}break}}if(!c){break a}while(1){D[d|0]=G[b|0];d=d+1|0;b=b+1|0;c=c-1|0;if(c){continue}break}}return a}function Pb(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;d=F[a+8>>2];c=F[a+4>>2];if(d-c>>2>>>0>=b>>>0){if(b){b=b<<2;c=ma(c,0,b)+b|0}F[a+4>>2]=c;return}a:{b:{c:{g=F[a>>2];f=c-g>>2;e=f+b|0;if(e>>>0<1073741824){d=d-g|0;h=d>>>1|0;e=d>>>0>=2147483644?1073741823:e>>>0>>0?h:e;if(e){if(e>>>0>=1073741824){break c}i=ka(e<<2)}d=(f<<2)+i|0;f=b<<2;b=ma(d,0,f);f=b+f|0;e=(e<<2)+i|0;if((c|0)==(g|0)){break b}while(1){c=c-4|0;b=F[c>>2];F[c>>2]=0;d=d-4|0;F[d>>2]=b;if((c|0)!=(g|0)){continue}break}F[a+8>>2]=e;b=F[a+4>>2];F[a+4>>2]=f;c=F[a>>2];F[a>>2]=d;if((b|0)==(c|0)){break a}while(1){b=b-4|0;a=F[b>>2];F[b>>2]=0;if(a){$[F[F[a>>2]+4>>2]](a)}if((b|0)!=(c|0)){continue}break}break a}na();v()}oa();v()}F[a+8>>2]=e;F[a+4>>2]=f;F[a>>2]=b}if(c){ja(c)}}function Yd(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;e=F[b+8>>2];d=F[b+12>>2];g=d;d=F[b+20>>2];k=d;h=F[b+16>>2];c=h+4|0;d=c>>>0<4?d+1|0:d;i=c;a:{if(c>>>0>e>>>0&(d|0)>=(g|0)|(d|0)>(g|0)){break a}j=F[b>>2];c=j+h|0;f=G[c|0]|G[c+1|0]<<8|(G[c+2|0]<<16|G[c+3|0]<<24);F[b+16>>2]=i;F[b+20>>2]=d;c=e;e=k;d=h+8|0;e=d>>>0<8?e+1|0:e;if(c>>>0>>0&(e|0)>=(g|0)|(e|0)>(g|0)){break a}c=i+j|0;c=G[c|0]|G[c+1|0]<<8|(G[c+2|0]<<16|G[c+3|0]<<24);F[b+16>>2]=d;F[b+20>>2]=e;if((c|0)<(f|0)){break a}F[a+16>>2]=c;F[a+12>>2]=f;d=(c>>31)-((f>>31)+(c>>>0>>0)|0)|0;e=c-f|0;if(!d&e>>>0>2147483646|d){break a}d=e+1|0;F[a+20>>2]=d;e=d>>>1|0;F[a+24>>2]=e;F[a+28>>2]=0-e;if(!(d&1)){F[a+24>>2]=e-1}l=Aa(a+112|0,b)}return l|0}function Wc(a,b){var c=0,d=0,e=0,f=0;d=-1;e=-1;f=-1;a:{b:{if((b|0)==-1){break b}e=F[F[F[a+4>>2]+12>>2]+(b<<2)>>2];c=b+1|0;c=(c>>>0)%3|0?c:b-2|0;if((c|0)>=0){f=(c>>>0)/3|0;f=F[(F[F[a>>2]+96>>2]+L(f,12)|0)+(c-L(f,3)<<2)>>2]}c:{if((e|0)==-1){break c}c=((e>>>0)%3|0?-1:2)+e|0;if((c|0)<0){break c}d=(c>>>0)/3|0;d=F[(F[F[a>>2]+96>>2]+L(d,12)|0)+(c-L(d,3)<<2)>>2]}c=-1;if((d|0)!=(f|0)){break a}f=-1;d:{b=((b>>>0)%3|0?-1:2)+b|0;if((b|0)>=0){d=(b>>>0)/3|0;d=F[(F[F[a>>2]+96>>2]+L(d,12)|0)+(b-L(d,3)<<2)>>2];if((e|0)==-1){break b}break d}d=-1;if((e|0)!=-1){break d}break b}b=e+1|0;b=(b>>>0)%3|0?b:e-2|0;if((b|0)<0){break b}c=F[F[a>>2]+96>>2];a=(b>>>0)/3|0;f=F[(c+L(a,12)|0)+(b-L(a,3)<<2)>>2]}c=(d|0)!=(f|0)?-1:e}return c}function Fc(a,b){var c=0,d=0,e=0;c=Z+-64|0;Z=c;d=F[a>>2];e=F[d-4>>2];d=F[d-8>>2];F[c+32>>2]=0;F[c+36>>2]=0;F[c+40>>2]=0;F[c+44>>2]=0;F[c+48>>2]=0;F[c+52>>2]=0;D[c+55|0]=0;D[c+56|0]=0;D[c+57|0]=0;D[c+58|0]=0;D[c+59|0]=0;D[c+60|0]=0;D[c+61|0]=0;D[c+62|0]=0;F[c+24>>2]=0;F[c+28>>2]=0;F[c+20>>2]=0;F[c+16>>2]=11020;F[c+12>>2]=a;F[c+8>>2]=b;a=a+d|0;d=0;a:{if(La(e,b,0)){F[c+56>>2]=1;$[F[F[e>>2]+20>>2]](e,c+8|0,a,a,1,0);d=F[c+32>>2]==1?a:0;break a}$[F[F[e>>2]+24>>2]](e,c+8|0,a,1,0);b:{switch(F[c+44>>2]){case 0:d=F[c+48>>2]==1?F[c+36>>2]==1?F[c+40>>2]==1?F[c+28>>2]:0:0:0;break a;case 1:break b;default:break a}}if(F[c+32>>2]!=1){if(F[c+48>>2]|F[c+36>>2]!=1|F[c+40>>2]!=1){break a}}d=F[c+24>>2]}Z=c- -64|0;return d}function ma(a,b,c){var d=0,e=0,f=0,g=0;a:{if(!c){break a}D[a|0]=b;d=a+c|0;D[d-1|0]=b;if(c>>>0<3){break a}D[a+2|0]=b;D[a+1|0]=b;D[d-3|0]=b;D[d-2|0]=b;if(c>>>0<7){break a}D[a+3|0]=b;D[d-4|0]=b;if(c>>>0<9){break a}d=0-a&3;e=d+a|0;b=L(b&255,16843009);F[e>>2]=b;d=c-d&-4;c=d+e|0;F[c-4>>2]=b;if(d>>>0<9){break a}F[e+8>>2]=b;F[e+4>>2]=b;F[c-8>>2]=b;F[c-12>>2]=b;if(d>>>0<25){break a}F[e+24>>2]=b;F[e+20>>2]=b;F[e+16>>2]=b;F[e+12>>2]=b;F[c-16>>2]=b;F[c-20>>2]=b;F[c-24>>2]=b;F[c-28>>2]=b;g=e&4|24;c=d-g|0;if(c>>>0<32){break a}d=ki(b,0,1,1);f=_;b=e+g|0;while(1){F[b+24>>2]=d;F[b+28>>2]=f;F[b+16>>2]=d;F[b+20>>2]=f;F[b+8>>2]=d;F[b+12>>2]=f;F[b>>2]=d;F[b+4>>2]=f;b=b+32|0;c=c-32|0;if(c>>>0>31){continue}break}}return a}function ie(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;d=F[b+8>>2];e=F[b+12>>2];g=e;e=F[b+20>>2];k=e;h=F[b+16>>2];c=h+4|0;e=c>>>0<4?e+1|0:e;i=c;a:{if(c>>>0>d>>>0&(e|0)>=(g|0)|(e|0)>(g|0)){break a}j=F[b>>2];c=j+h|0;f=G[c|0]|G[c+1|0]<<8|(G[c+2|0]<<16|G[c+3|0]<<24);F[b+16>>2]=i;F[b+20>>2]=e;c=d;d=k;e=h+8|0;d=e>>>0<8?d+1|0:d;if(c>>>0>>0&(d|0)>=(g|0)|(d|0)>(g|0)){break a}c=i+j|0;c=G[c|0]|G[c+1|0]<<8|(G[c+2|0]<<16|G[c+3|0]<<24);F[b+16>>2]=e;F[b+20>>2]=d;if((c|0)<(f|0)){break a}F[a+16>>2]=c;F[a+12>>2]=f;d=(c>>31)-((f>>31)+(c>>>0>>0)|0)|0;b=c-f|0;if(!d&b>>>0>2147483646|d){break a}l=1;d=b+1|0;F[a+20>>2]=d;b=d>>>1|0;F[a+24>>2]=b;F[a+28>>2]=0-b;if(d&1){break a}F[a+24>>2]=b-1}return l|0}function Uc(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;d=Z-16|0;Z=d;f=F[a+24>>2];k=F[a+28>>2];a:{if((f|0)!=(k|0)){while(1){F[d+8>>2]=0;F[d>>2]=0;F[d+4>>2]=0;a=Sc(F[f>>2],b,d);g=G[d+11|0];h=g<<24>>24;i=3;b:{c:{d:{if(!a){break d}i=0;a=G[c+11|0];e=a<<24>>24;j=(h|0)<0?F[d+4>>2]:g;if((j|0)!=(((e|0)<0?F[c+4>>2]:a)|0)){break d}a=(e|0)<0?F[c>>2]:c;e=(h|0)<0;e:{if(!e){e=d;if(!h){break e}while(1){if(G[e|0]!=G[a|0]){break d}a=a+1|0;e=e+1|0;g=g-1|0;if(g){continue}break}break e}if(!j){break e}if(sa(e?F[d>>2]:d,a,j)){break c}}l=F[f>>2];i=1}if((h|0)>=0){break b}}ja(F[d>>2])}f:{switch(i|0){case 0:case 3:break f;default:break a}}f=f+4|0;if((k|0)!=(f|0)){continue}break}}l=0}Z=d+16|0;return l}function gb(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0;f=c-b|0;h=f>>2;d=F[a+8>>2];e=F[a>>2];if(h>>>0<=d-e>>2>>>0){d=F[a+4>>2];g=d-e|0;f=g+b|0;i=g>>2;g=i>>>0>>0?f:c;if((g|0)!=(b|0)){while(1){F[e>>2]=F[b>>2];e=e+4|0;b=b+4|0;if((g|0)!=(b|0)){continue}break}}if(h>>>0>i>>>0){if((c|0)!=(g|0)){while(1){F[d>>2]=F[f>>2];d=d+4|0;f=f+4|0;if((f|0)!=(c|0)){continue}break}}F[a+4>>2]=d;return}F[a+4>>2]=e;return}if(e){F[a+4>>2]=e;ja(e);F[a+8>>2]=0;F[a>>2]=0;F[a+4>>2]=0;d=0}a:{if((f|0)<0){break a}e=d>>>1|0;d=d>>>0>=2147483644?1073741823:e>>>0>h>>>0?e:h;if(d>>>0>=1073741824){break a}e=d<<2;d=ka(e);F[a>>2]=d;F[a+8>>2]=d+e;if((b|0)!=(c|0)){c=b;b=(f-4&-4)+4|0;d=la(d,c,b)+b|0}F[a+4>>2]=d;return}na();v()}function Ea(a,b,c){var d=0,e=0,f=0;e=Z-16|0;Z=e;F[a+4>>2]=0;a:{b:{if(!b){break b}f=F[a+8>>2];d=f<<5;c:{if(d>>>0>=b>>>0){F[a+4>>2]=b;break c}F[e+8>>2]=0;F[e>>2]=0;F[e+4>>2]=0;if((b|0)<0){break a}if(d>>>0<=1073741822){f=f<<6;d=b+31&-32;d=d>>>0>>0?f:d}else{d=2147483647}$a(e,d);f=F[a>>2];F[a>>2]=F[e>>2];F[e>>2]=f;d=F[a+4>>2];F[a+4>>2]=b;F[e+4>>2]=d;d=F[a+8>>2];F[a+8>>2]=F[e+8>>2];F[e+8>>2]=d;if(!f){break c}ja(f)}d=b>>>5|0;a=F[a>>2];if(G[c|0]){if(b>>>0>=32){ma(a,255,d<<2)}if((b&-32)==(b|0)){break b}a=a+(d<<2)|0;F[a>>2]=F[a>>2]|-1>>>32-(b&31);break b}if(b>>>0>=32){ma(a,0,d<<2)}if((b&-32)==(b|0)){break b}a=a+(d<<2)|0;F[a>>2]=F[a>>2]&(-1>>>32-(b&31)^-1)}Z=e+16|0;return}na();v()}function If(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;e=Z-32|0;Z=e;a:{b:{f=ya(c);if(f>>>0<2147483632){c:{d:{if(f>>>0>=11){a=(f|15)+1|0;g=ka(a);F[e+24>>2]=a|-2147483648;F[e+16>>2]=g;F[e+20>>2]=f;a=f+g|0;break d}D[e+27|0]=f;g=e+16|0;a=f+g|0;if(!f){break c}}la(g,c,f)}D[a|0]=0;c=ya(d);if(c>>>0>=2147483632){break b}e:{f:{if(c>>>0>=11){f=(c|15)+1|0;a=ka(f);F[e+8>>2]=f|-2147483648;F[e>>2]=a;F[e+4>>2]=c;g=a+c|0;break f}D[e+11|0]=c;g=c+e|0;a=e;if(!c){break e}}la(a,d,c)}D[g|0]=0;c=F[b+4>>2];a=-1;g:{if(!c){break g}c=Uc(c,e+16|0,e);a=-1;if(!c){break g}a=Pc(b,F[c+24>>2])}if(D[e+11|0]<0){ja(F[e>>2])}if(D[e+27|0]<0){ja(F[e+16>>2])}Z=e+32|0;break a}za();v()}za();v()}return a|0}function se(a,b){a=a|0;b=b|0;a=0;a:{switch(b|0){case 0:a=ka(20);F[a+12>>2]=-1;F[a+16>>2]=0;F[a+4>>2]=0;F[a+8>>2]=0;F[a>>2]=1920;return a|0;case 1:a=ka(24);F[a+12>>2]=-1;F[a+16>>2]=0;F[a+4>>2]=0;F[a+8>>2]=0;F[a>>2]=1920;F[a+20>>2]=0;F[a>>2]=2136;return a|0;case 2:a=ka(48);F[a+12>>2]=-1;F[a+16>>2]=0;F[a+4>>2]=0;F[a+8>>2]=0;F[a>>2]=1920;F[a+20>>2]=0;F[a>>2]=2136;F[a+24>>2]=1624;F[a>>2]=7948;F[a+32>>2]=0;F[a+36>>2]=0;F[a+28>>2]=-1;F[a+40>>2]=0;F[a+44>>2]=0;return a|0;case 3:a=ka(32);F[a+12>>2]=-1;F[a+16>>2]=0;F[a+4>>2]=0;F[a+8>>2]=0;F[a>>2]=1920;F[a+20>>2]=0;F[a>>2]=2136;F[a+24>>2]=1032;F[a>>2]=5812;F[a+28>>2]=-1;break;default:break a}}return a|0}function Be(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;f=F[b>>2];b=F[b+4>>2];d=F[F[a+8>>2]+40>>2];j=d;m=ka((d|0)<0?-1:d);i=b-f|0;e=1;a:{if((i|0)<4){break a}b=0;g=F[c+16>>2];k=d;f=g+d|0;d=0+F[c+20>>2]|0;d=f>>>0>>0?d+1|0:d;h=F[c+12>>2];e=0;if(I[c+8>>2]>>0&(d|0)>=(h|0)|(d|0)>(h|0)){break a}e=i>>2;i=(e|0)<=1?1:e;while(1){b:{g=la(m,F[c>>2]+g|0,j);F[c+16>>2]=f;F[c+20>>2]=d;la(F[F[F[a+8>>2]+64>>2]>>2]+b|0,g,j);l=l+1|0;if((i|0)==(l|0)){break b}b=b+j|0;d=n+F[c+20>>2]|0;g=F[c+16>>2];f=k+g|0;d=f>>>0>>0?d+1|0:d;h=F[c+12>>2];if((d|0)<=(h|0)&I[c+8>>2]>=f>>>0|(d|0)<(h|0)){continue}}break}e=(e|0)<=(l|0)}ja(m);return e|0}function mh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0;F[b>>2]=1;f=b+8|0;c=F[b+8>>2];d=F[b+12>>2]-c|0;if(d>>>0<=4294967291){Db(f,d+4|0);c=F[f>>2]}c=c+d|0;d=F[a+4>>2];D[c|0]=d;D[c+1|0]=d>>>8;D[c+2|0]=d>>>16;D[c+3|0]=d>>>24;c=F[a+8>>2];if((c|0)!=F[a+12>>2]){d=0;while(1){g=(d<<2)+c|0;c=F[b+8>>2];e=F[b+12>>2]-c|0;if(e>>>0<=4294967291){Db(f,e+4|0);c=F[f>>2]}c=c+e|0;e=F[g>>2];D[c|0]=e;D[c+1|0]=e>>>8;D[c+2|0]=e>>>16;D[c+3|0]=e>>>24;d=d+1|0;c=F[a+8>>2];if(d>>>0>2]-c>>2>>>0){continue}break}}c=F[b+12>>2];b=F[b+8>>2];c=c-b|0;if(c>>>0<=4294967291){Db(f,c+4|0);b=F[f>>2]}b=b+c|0;a=F[a+20>>2];D[b|0]=a;D[b+1|0]=a>>>8;D[b+2|0]=a>>>16;D[b+3|0]=a>>>24}function mb(a,b){var c=0,d=0,e=0,f=0,g=0,h=0;c=F[a+4>>2];if((c|0)!=F[a+8>>2]){e=F[b+4>>2];F[c>>2]=F[b>>2];F[c+4>>2]=e;F[c+8>>2]=F[b+8>>2];F[a+4>>2]=c+12;return}a:{g=F[a>>2];d=(c-g|0)/12|0;e=d+1|0;if(e>>>0<357913942){f=d<<1;f=d>>>0>=178956970?357913941:e>>>0>>0?f:e;if(f){if(f>>>0>=357913942){break a}e=ka(L(f,12))}else{e=0}d=e+L(d,12)|0;h=F[b+4>>2];F[d>>2]=F[b>>2];F[d+4>>2]=h;F[d+8>>2]=F[b+8>>2];b=d+12|0;if((c|0)!=(g|0)){while(1){c=c-12|0;h=F[c+4>>2];d=d-12|0;F[d>>2]=F[c>>2];F[d+4>>2]=h;F[d+8>>2]=F[c+8>>2];if((c|0)!=(g|0)){continue}break}c=F[a>>2]}F[a+8>>2]=e+L(f,12);F[a+4>>2]=b;F[a>>2]=d;if(c){ja(c)}return}na();v()}oa();v()}function ne(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;h=F[c+12>>2];f=h;e=F[c+20>>2];i=F[c+8>>2];g=F[c+16>>2];a:{if((f|0)<=(e|0)&i>>>0<=g>>>0|(e|0)>(f|0)){break a}j=F[c>>2];k=D[j+g|0];d=e;f=g+1|0;d=f?d:d+1|0;F[c+16>>2]=f;F[c+20>>2]=d;b:{if((k|0)==-2){break b}if((d|0)>=(h|0)&f>>>0>=i>>>0|(d|0)>(h|0)){break a}d=D[f+j|0];g=g+2|0;e=g>>>0<2?e+1|0:e;F[c+16>>2]=g;F[c+20>>2]=e;if((d-4&255)>>>0<251){break a}e=$[F[F[a>>2]+40>>2]](a,k,d)|0;d=F[a+20>>2];F[a+20>>2]=e;if(!d){break b}$[F[F[d>>2]+4>>2]](d)}d=F[a+20>>2];if(d){if(!($[F[F[a>>2]+28>>2]](a,d)|0)){break a}}l=$[F[F[a>>2]+36>>2]](a,b,c)|0}return l|0}function Bf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;a:{if(I[b+80>>2]>65535){break a}a=F[b+100>>2];b=F[b+96>>2];e=(a-b|0)/12|0;f=L(e,6);g=(f|0)==(c|0);if((a|0)==(b|0)|(c|0)!=(f|0)){break a}g=1;c=e>>>0<=1?1:e;i=c&1;a=0;if(e>>>0>=2){j=c&-2;c=0;while(1){f=L(a,6);h=f+d|0;e=b+L(a,12)|0;E[h>>1]=F[e>>2];E[(f|2)+d>>1]=F[e+4>>2];E[h+4>>1]=F[e+8>>2];f=a|1;e=L(f,6)+d|0;f=b+L(f,12)|0;E[e>>1]=F[f>>2];E[e+2>>1]=F[f+4>>2];E[e+4>>1]=F[f+8>>2];a=a+2|0;c=c+2|0;if((j|0)!=(c|0)){continue}break}}if(!i){break a}c=L(a,6)+d|0;a=b+L(a,12)|0;E[c>>1]=F[a>>2];E[c+2>>1]=F[a+4>>2];E[c+4>>1]=F[a+8>>2]}return g|0}function Gh(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;f=Z-32|0;Z=f;h=e>>>0>1073741823?-1:e<<2;h=ma(ka(h),0,h);g=F[b>>2];i=F[b+4>>2];k=F[h+4>>2];F[f+16>>2]=F[h>>2];F[f+20>>2]=k;F[f+8>>2]=g;F[f+12>>2]=i;i=a+8|0;Jb(f+24|0,i,f+16|0,f+8|0);F[c>>2]=F[f+24>>2];F[c+4>>2]=F[f+28>>2];if((d|0)>(e|0)){k=0-e<<2;a=e;while(1){g=a<<2;j=g+b|0;m=F[j>>2];j=F[j+4>>2];g=c+g|0;l=g+k|0;n=F[l+4>>2];F[f+16>>2]=F[l>>2];F[f+20>>2]=n;F[f+8>>2]=m;F[f+12>>2]=j;Jb(f+24|0,i,f+16|0,f+8|0);F[g>>2]=F[f+24>>2];F[g+4>>2]=F[f+28>>2];a=a+e|0;if((d|0)>(a|0)){continue}break}}ja(h);Z=f+32|0;return 1}function Sf(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;a=Z-32|0;Z=a;F[a+24>>2]=0;F[a+28>>2]=0;a:{d=ya(c);if(d>>>0<2147483632){b:{c:{if(d>>>0>=11){e=(d|15)+1|0;f=ka(e);F[a+16>>2]=e|-2147483648;F[a+8>>2]=f;F[a+12>>2]=d;e=d+f|0;break c}D[a+19|0]=d;f=a+8|0;e=f+d|0;if(!d){break b}}la(f,c,d)}D[e|0]=0;c=b+4|0;b=Ya(b,a+8|0);d:{if((c|0)==(b|0)){break d}c=F[b+32>>2];b=F[b+28>>2];if((c-b|0)!=8){break d}c=G[b+4|0]|G[b+5|0]<<8|(G[b+6|0]<<16|G[b+7|0]<<24);F[a+24>>2]=G[b|0]|G[b+1|0]<<8|(G[b+2|0]<<16|G[b+3|0]<<24);F[a+28>>2]=c}g=K[a+24>>3];if(D[a+19|0]<0){ja(F[a+8>>2])}Z=a+32|0;break a}za();v()}return+g}function Gc(a,b,c,d,e,f,g){var h=0,i=0,j=0;h=Z-16|0;Z=h;if((b^-1)+2147483631>>>0>=c>>>0){if(G[a+11|0]>>>7|0){i=F[a>>2]}else{i=a}if(b>>>0<1073741799){F[h+12>>2]=b<<1;F[h>>2]=b+c;c=Z-16|0;Z=c;Z=c+16|0;c=h+12|0;c=F[(I[h>>2]>2]?c:h)>>2];if(c>>>0>=11){j=c+16&-16;c=j-1|0;c=(c|0)==11?j:c}else{c=10}c=c+1|0}else{c=2147483631}sb(h,c);c=F[h>>2];if(f){db(c,g,f)}g=d-e|0;if((d|0)!=(e|0)){db(c+f|0,e+i|0,g)}if((b|0)!=10){ja(i)}F[a>>2]=c;F[a+8>>2]=F[a+8>>2]&-2147483648|F[h+4>>2]&2147483647;F[a+8>>2]=F[a+8>>2]|-2147483648;b=a;a=f+g|0;F[b+4>>2]=a;D[h+12|0]=0;D[a+c|0]=G[h+12|0];Z=h+16|0;return}za();v()}function _c(a,b,c){var d=0,e=0,f=0,g=0;a:{f=b>>>0<1431655766&(b|c)>=0;b:{if(!f){break b}b=L(b,3);Xb(a,b,10224);Xb(a+12|0,b,10228);d=F[a+24>>2];c:{if(F[a+32>>2]-d>>2>>>0>=c>>>0){break c}if(c>>>0>=1073741824){break a}b=F[a+28>>2];e=c<<2;c=ka(e);e=c+e|0;g=c+(b-d&-4)|0;c=g;if((b|0)!=(d|0)){while(1){c=c-4|0;b=b-4|0;F[c>>2]=F[b>>2];if((b|0)!=(d|0)){continue}break}}F[a+32>>2]=e;F[a+28>>2]=g;F[a+24>>2]=c;if(!d){break c}ja(d)}F[a+80>>2]=0;F[a+84>>2]=0;b=F[a+76>>2];F[a+76>>2]=0;if(b){ja(b)}F[a+68>>2]=0;F[a+72>>2]=0;b=a- -64|0;a=F[b>>2];F[b>>2]=0;if(!a){break b}ja(a)}return f}na();v()}function yd(a){var b=0,c=0,d=0,e=0,f=0;f=1;c=F[a+140>>2];a:{if((c|0)<=0){break a}b=c<<4;d=ka(c>>>0>268435455?-1:b|4);F[d>>2]=c;d=d+4|0;c=d+b|0;b=d;while(1){F[b>>2]=0;F[b+4>>2]=0;D[b+5|0]=0;D[b+6|0]=0;D[b+7|0]=0;D[b+8|0]=0;D[b+9|0]=0;D[b+10|0]=0;D[b+11|0]=0;D[b+12|0]=0;b=b+16|0;if((c|0)!=(b|0)){continue}break}e=F[a+136>>2];F[a+136>>2]=d;if(e){c=e-4|0;d=F[c>>2];if(d){b=(d<<4)+e|0;while(1){b=b-16|0;if((e|0)!=(b|0)){continue}break}}ja(c)}b=0;if(F[a+140>>2]<=0){break a}while(1){f=Aa(F[a+136>>2]+(b<<4)|0,a);if(!f){break a}b=b+1|0;if((b|0)>2]){continue}break}}return f} function Sd(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;d=F[b+8>>2];c=F[b+12>>2];g=c;c=F[b+20>>2];i=c;h=F[b+16>>2];f=h+4|0;c=f>>>0<4?c+1|0:c;a:{if(d>>>0>>0&(c|0)>=(g|0)|(c|0)>(g|0)){break a}e=h+F[b>>2]|0;e=G[e|0]|G[e+1|0]<<8|(G[e+2|0]<<16|G[e+3|0]<<24);F[b+16>>2]=f;F[b+20>>2]=c;f=d;d=i;c=h+8|0;d=c>>>0<8?d+1|0:d;if(c>>>0>f>>>0&(d|0)>=(g|0)|(d|0)>(g|0)){break a}F[b+16>>2]=c;F[b+20>>2]=d;if(!(e&1)){break a}d=O(e)^31;if(d-1>>>0>28){break a}F[a+8>>2]=d+1;d=-2<>2]=c;F[a+12>>2]=d^-1;F[a+24>>2]=c>>1;J[a+20>>2]=M(2)/M(c|0);j=Aa(a+96|0,b)}return j|0}function bc(a,b){var c=0;c=F[b+4>>2];F[a>>2]=F[b>>2];F[a+4>>2]=c;c=F[b+60>>2];F[a+56>>2]=F[b+56>>2];F[a+60>>2]=c;c=F[b+52>>2];F[a+48>>2]=F[b+48>>2];F[a+52>>2]=c;c=F[b+44>>2];F[a+40>>2]=F[b+40>>2];F[a+44>>2]=c;c=F[b+36>>2];F[a+32>>2]=F[b+32>>2];F[a+36>>2]=c;c=F[b+28>>2];F[a+24>>2]=F[b+24>>2];F[a+28>>2]=c;c=F[b+20>>2];F[a+16>>2]=F[b+16>>2];F[a+20>>2]=c;c=F[b+12>>2];F[a+8>>2]=F[b+8>>2];F[a+12>>2]=c;F[a+88>>2]=0;F[a+64>>2]=0;F[a+68>>2]=0;F[a+72>>2]=0;F[a+76>>2]=0;D[a+77|0]=0;D[a+78|0]=0;D[a+79|0]=0;D[a+80|0]=0;D[a+81|0]=0;D[a+82|0]=0;D[a+83|0]=0;D[a+84|0]=0;return a}function ac(a,b){var c=0,d=0,e=0,f=0,g=0;a:{if(F[a+64>>2]){break a}c=ka(32);F[c+16>>2]=0;F[c+20>>2]=0;F[c+8>>2]=0;F[c>>2]=0;F[c+4>>2]=0;F[c+24>>2]=0;F[c+28>>2]=0;d=F[a+64>>2];F[a+64>>2]=c;if(!d){break a}c=F[d>>2];if(c){F[d+4>>2]=c;ja(c)}ja(d)}d=F[a+64>>2];c=F[a+28>>2]-1|0;if(c>>>0<=10){c=F[(c<<2)+10148>>2]}else{c=-1}c=L(c,G[a+24|0]);f=c>>31;g=md(d,0,ki(c,f,b,0),_);if(g){d=F[a+64>>2];F[a>>2]=d;e=F[d+20>>2];F[a+8>>2]=F[d+16>>2];F[a+12>>2]=e;e=F[d+24>>2];d=F[d+28>>2];F[a+48>>2]=0;F[a+52>>2]=0;F[a+40>>2]=c;F[a+44>>2]=f;F[a+16>>2]=e;F[a+20>>2]=d;F[a+80>>2]=b}return g}function Af(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;a=F[b+100>>2];b=F[b+96>>2];h=a-b|0;a:{if((h|0)!=(c|0)|(a|0)==(b|0)){break a}g=(c|0)/12|0;e=g>>>0<=1?1:g;j=e&1;a=0;if(g>>>0>=2){k=e&-2;g=0;while(1){e=L(a,12);i=e+d|0;f=b+e|0;F[i>>2]=F[f>>2];F[(e|4)+d>>2]=F[f+4>>2];F[i+8>>2]=F[f+8>>2];f=L(a|1,12);e=f+d|0;f=b+f|0;F[e>>2]=F[f>>2];F[e+4>>2]=F[f+4>>2];F[e+8>>2]=F[f+8>>2];a=a+2|0;g=g+2|0;if((k|0)!=(g|0)){continue}break}}if(!j){break a}e=d;d=L(a,12);a=e+d|0;b=b+d|0;F[a>>2]=F[b>>2];F[a+4>>2]=F[b+4>>2];F[a+8>>2]=F[b+8>>2]}return(c|0)==(h|0)|0}function Kh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;c=F[b+8>>2];d=F[b+12>>2];g=d;d=F[b+20>>2];i=d;h=F[b+16>>2];f=h+4|0;d=f>>>0<4?d+1|0:d;a:{if(c>>>0>>0&(d|0)>=(g|0)|(d|0)>(g|0)){break a}e=h+F[b>>2]|0;e=G[e|0]|G[e+1|0]<<8|(G[e+2|0]<<16|G[e+3|0]<<24);F[b+16>>2]=f;F[b+20>>2]=d;f=c;c=i;d=h+8|0;c=d>>>0<8?c+1|0:c;if(d>>>0>f>>>0&(c|0)>=(g|0)|(c|0)>(g|0)){break a}F[b+16>>2]=d;F[b+20>>2]=c;if(!(e&1)){break a}b=O(e)^31;if(b-1>>>0>28){break a}j=1;F[a+8>>2]=b+1;b=-2<>2]=c;F[a+12>>2]=b^-1;F[a+24>>2]=c>>1;J[a+20>>2]=M(2)/M(c|0)}return j|0}function Ya(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;f=a+4|0;a=F[a+4>>2];a:{b:{if(!a){break b}d=G[b+11|0];c=d<<24>>24<0;g=c?F[b>>2]:b;d=c?F[b+4>>2]:d;b=f;while(1){e=G[a+27|0];c=e<<24>>24<0;e=c?F[a+20>>2]:e;h=e>>>0>d>>>0;i=h?d:e;c:{if(i){c=sa(c?F[a+16>>2]:a+16|0,g,i);if(c){break c}}c=d>>>0>e>>>0?-1:h}c=(c|0)<0;b=c?b:a;a=F[(c?a+4|0:a)>>2];if(a){continue}break}if((b|0)==(f|0)){break b}c=G[b+27|0];a=c<<24>>24<0;d:{c=a?F[b+20>>2]:c;e=c>>>0>>0?c:d;if(e){a=sa(g,a?F[b+16>>2]:b+16|0,e);if(a){break d}}if(c>>>0>d>>>0){break b}break a}if((a|0)>=0){break a}}b=f}return b}function Oe(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;if(La(a,F[b+8>>2],e)){if(!(F[b+28>>2]==1|F[b+4>>2]!=(c|0))){F[b+28>>2]=d}return}a:{if(La(a,F[b>>2],e)){if(!(F[b+16>>2]!=(c|0)&F[b+20>>2]!=(c|0))){if((d|0)!=1){break a}F[b+32>>2]=1;return}F[b+32>>2]=d;b:{if(F[b+44>>2]==4){break b}E[b+52>>1]=0;a=F[a+8>>2];$[F[F[a>>2]+20>>2]](a,b,c,c,1,e);if(G[b+53|0]){F[b+44>>2]=3;if(!G[b+52|0]){break b}break a}F[b+44>>2]=4}F[b+20>>2]=c;F[b+40>>2]=F[b+40>>2]+1;if(F[b+36>>2]!=1|F[b+24>>2]!=2){break a}D[b+54|0]=1;return}a=F[a+8>>2];$[F[F[a>>2]+24>>2]](a,b,c,d,e)}}function Ig(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0;f=ka(64);c=ka(12);F[c+8>>2]=F[F[a+4>>2]+80>>2];F[c>>2]=9968;F[c+4>>2]=0;f=yc(f,c);a:{b:{if((b|0)<0){c=f;break b}h=a+8|0;c=F[a+12>>2];e=F[a+8>>2];g=c-e>>2;c:{if((g|0)>(b|0)){break c}d=b+1|0;if(b>>>0>=g>>>0){Pb(h,d-g|0);break c}if(d>>>0>=g>>>0){break c}e=e+(d<<2)|0;if((e|0)!=(c|0)){while(1){c=c-4|0;d=F[c>>2];F[c>>2]=0;if(d){$[F[F[d>>2]+4>>2]](d)}if((c|0)!=(e|0)){continue}break}}F[a+12>>2]=e}a=F[h>>2]+(b<<2)|0;c=F[a>>2];F[a>>2]=f;if(!c){break a}}$[F[F[c>>2]+4>>2]](c)}return(b^-1)>>>31|0}function we(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0;c=F[a+60>>2];a:{if(!c){break a}F[c+4>>2]=a+48;if(!($[F[F[c>>2]+12>>2]](c)|0)){break a}b:{c=$[F[F[a>>2]+24>>2]](a)|0;if((c|0)<=0){break b}while(1){c:{f=F[($[F[F[a>>2]+28>>2]](a)|0)+4>>2];g=$[F[F[a>>2]+20>>2]](a,d)|0;e=F[a+60>>2];if(!($[F[F[e>>2]+8>>2]](e,F[F[f+8>>2]+(g<<2)>>2])|0)){break c}d=d+1|0;if((c|0)!=(d|0)){continue}break b}break}return 0}d=0;if(!($[F[F[a>>2]+36>>2]](a,b)|0)){break a}if(!($[F[F[a>>2]+40>>2]](a,b)|0)){break a}d=$[F[F[a>>2]+44>>2]](a)|0}return d|0}function Id(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;c=F[a+216>>2];if((c|0)!=F[a+220>>2]){while(1){a:{c=F[L(e,144)+c>>2];if((c|0)<0){break a}d=F[a+4>>2];f=F[d+8>>2];if((c|0)>=F[d+12>>2]-f>>2){break a}d=0;c=F[(c<<2)+f>>2];if(($[F[F[c>>2]+24>>2]](c)|0)<=0){break a}while(1){if(($[F[F[c>>2]+20>>2]](c,d)|0)!=(b|0)){d=d+1|0;if(($[F[F[c>>2]+24>>2]](c)|0)>(d|0)){continue}break a}break}a=F[a+216>>2]+L(e,144)|0;return(G[a+100|0]?a+4|0:0)|0}e=e+1|0;c=F[a+216>>2];if(e>>>0<(F[a+220>>2]-c|0)/144>>>0){continue}break}}return 0}function nd(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;c=F[a+8>>2];d=F[a+4>>2];if(c-d>>2>>>0>=b>>>0){if(b){b=b<<2;d=ma(d,0,b)+b|0}F[a+4>>2]=d;return}a:{f=F[a>>2];g=d-f>>2;e=g+b|0;if(e>>>0<1073741824){c=c-f|0;h=c>>>1|0;e=c>>>0>=2147483644?1073741823:e>>>0>>0?h:e;if(e){if(e>>>0>=1073741824){break a}i=ka(e<<2)}c=(g<<2)+i|0;b=b<<2;b=ma(c,0,b)+b|0;if((d|0)!=(f|0)){while(1){c=c-4|0;d=d-4|0;F[c>>2]=F[d>>2];if((d|0)!=(f|0)){continue}break}}F[a+8>>2]=(e<<2)+i;F[a+4>>2]=b;F[a>>2]=c;if(f){ja(f)}return}na();v()}oa();v()}function bb(a){var b=0,c=0,d=0,e=0,f=0;d=F[a+8>>2];a:{if(G[d+84|0]){break a}b=F[a+16>>2];if(!b|!G[b+84|0]){break a}c=F[d+72>>2];e=F[d+68>>2];D[b+84|0]=0;c=c-e>>2;f=F[b+68>>2];e=F[b+72>>2]-f>>2;b:{if(c>>>0>e>>>0){ab(b+68|0,c-e|0,2004);d=F[a+8>>2];break b}if(c>>>0>=e>>>0){break b}F[b+72>>2]=f+(c<<2)}if(G[d+84|0]){break a}c=F[d+68>>2];if((c|0)==F[d+72>>2]){break a}e=F[F[a+16>>2]+68>>2];b=0;while(1){f=b<<2;F[f+e>>2]=F[c+f>>2];b=b+1|0;c=F[d+68>>2];if(b>>>0>2]-c>>2>>>0){continue}break}}return F[a+16>>2]}function Lf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;e=Z+-64|0;Z=e;f=Ja(e+8|0);F[f+16>>2]=0;F[f+20>>2]=0;F[f>>2]=b;F[f+8>>2]=c;F[f+12>>2]=0;b=e+48|0;Pd(b,a,f,d);F[a+24>>2]=F[e+48>>2];f=a+24|0;a:{if((f|0)==(b|0)){break a}b=a+28|0;c=e+48|4;g=G[e+63|0];d=g<<24>>24;if(D[a+39|0]>=0){if((d|0)>=0){a=F[c+4>>2];F[b>>2]=F[c>>2];F[b+4>>2]=a;F[b+8>>2]=F[c+8>>2];break a}qb(b,F[e+52>>2],F[e+56>>2]);break a}a=(d|0)<0;rb(b,a?F[e+52>>2]:c,a?F[e+56>>2]:g)}if(D[e+63|0]<0){ja(F[e+52>>2])}Z=e- -64|0;return f|0}function Jf(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0;a=Z-32|0;Z=a;a:{d=ya(c);if(d>>>0<2147483632){b:{c:{if(d>>>0>=11){e=(d|15)+1|0;f=ka(e);F[a+24>>2]=e|-2147483648;F[a+16>>2]=f;F[a+20>>2]=d;e=d+f|0;break c}D[a+27|0]=d;f=a+16|0;e=f+d|0;if(!d){break b}}la(f,c,d)}D[e|0]=0;D[a+4|0]=0;F[a>>2]=1701667182;D[a+11|0]=4;d=F[b+4>>2];c=-1;d:{if(!d){break d}d=Uc(d,a,a+16|0);c=-1;if(!d){break d}c=Pc(b,F[d+24>>2])}b=c;if(D[a+11|0]<0){ja(F[a>>2])}if(D[a+27|0]<0){ja(F[a+16>>2])}Z=a+32|0;break a}za();v()}return b|0}function Hd(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;c=F[a+216>>2];if((c|0)!=F[a+220>>2]){while(1){a:{c=F[L(e,144)+c>>2];if((c|0)<0){break a}d=F[a+4>>2];f=F[d+8>>2];if((c|0)>=F[d+12>>2]-f>>2){break a}d=0;c=F[(c<<2)+f>>2];if(($[F[F[c>>2]+24>>2]](c)|0)<=0){break a}while(1){if(($[F[F[c>>2]+20>>2]](c,d)|0)!=(b|0)){d=d+1|0;if(($[F[F[c>>2]+24>>2]](c)|0)>(d|0)){continue}break a}break}return(F[a+216>>2]+L(e,144)|0)+104|0}e=e+1|0;c=F[a+216>>2];if(e>>>0<(F[a+220>>2]-c|0)/144>>>0){continue}break}}return a+184|0}function Uf(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0;d=Z-16|0;Z=d;F[d+12>>2]=0;a:{e=ya(c);if(e>>>0<2147483632){b:{c:{if(e>>>0>=11){f=(e|15)+1|0;a=ka(f);F[d+8>>2]=f|-2147483648;F[d>>2]=a;F[d+4>>2]=e;f=a+e|0;break c}D[d+11|0]=e;f=d+e|0;a=d;if(!e){break b}}la(a,c,e)}D[f|0]=0;a=Ya(b,d);d:{if((a|0)==(b+4|0)){break d}b=F[a+32>>2];a=F[a+28>>2];if((b-a|0)!=4){break d}F[d+12>>2]=G[a|0]|G[a+1|0]<<8|(G[a+2|0]<<16|G[a+3|0]<<24)}a=F[d+12>>2];if(D[d+11|0]<0){ja(F[d>>2])}Z=d+16|0;break a}za();v()}return a|0}function Mf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;d=Z+-64|0;Z=d;e=Ja(d+8|0);F[e+16>>2]=0;F[e+20>>2]=0;F[e>>2]=b;F[e+8>>2]=c;F[e+12>>2]=0;b=d+48|0;Od(b);F[a+24>>2]=F[d+48>>2];f=a+24|0;a:{if((b|0)==(f|0)){break a}b=a+28|0;c=d+48|4;g=G[d+63|0];e=g<<24>>24;if(D[a+39|0]>=0){if((e|0)>=0){a=F[c+4>>2];F[b>>2]=F[c>>2];F[b+4>>2]=a;F[b+8>>2]=F[c+8>>2];break a}qb(b,F[d+52>>2],F[d+56>>2]);break a}a=(e|0)<0;rb(b,a?F[d+52>>2]:c,a?F[d+56>>2]:g)}if(D[d+63|0]<0){ja(F[d+52>>2])}Z=d- -64|0;return f|0}function Ce(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0;e=1;a:{if(($[F[F[b>>2]+20>>2]](b)|0)<=0){break a}while(1){e=0;d=Qc(F[F[a+4>>2]+4>>2],$[F[F[b>>2]+24>>2]](b,f)|0);if((d|0)==-1){break a}g=F[a+4>>2];c=0;b:{if((d|0)<0){break b}h=F[g+4>>2];if((d|0)>=F[h+12>>2]-F[h+8>>2]>>2){break b}c=F[F[g+8>>2]+(F[F[g+20>>2]+(d<<2)>>2]<<2)>>2];c=$[F[F[c>>2]+32>>2]](c,d)|0}if(!c){break a}if(!($[F[F[b>>2]+28>>2]](b,c)|0)){break a}e=1;f=f+1|0;if(($[F[F[b>>2]+20>>2]](b)|0)>(f|0)){continue}break}}return e|0}function Db(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;a:{c=F[a+4>>2];e=F[a>>2];d=c-e|0;b:{if(d>>>0>>0){g=b-d|0;f=F[a+8>>2];if(g>>>0<=f-c>>>0){h=a,i=ma(c,0,g)+g|0,F[h+4>>2]=i;break b}if((b|0)<0){break a}c=f-e|0;f=c<<1;c=c>>>0>=1073741823?2147483647:b>>>0>>0?f:b;f=ka(c);ma(f+d|0,0,g);d=pa(f,e,d);F[a+8>>2]=d+c;F[a+4>>2]=b+d;F[a>>2]=d;if(!e){break b}ja(e);break b}if(b>>>0>=d>>>0){break b}F[a+4>>2]=b+e}b=F[a+28>>2];c=b;d=b+1|0;b=F[a+24>>2]+1|0;e=b?c:d;F[a+24>>2]=b;F[a+28>>2]=e;return}na();v()}function Ma(a,b){var c=0,d=0,e=0,f=0,g=0,h=0;e=F[a+4>>2];if((e|0)!=F[a+8>>2]){F[e>>2]=F[b>>2];F[a+4>>2]=e+4;return}a:{g=F[a>>2];f=e-g|0;c=f>>2;d=c+1|0;if(d>>>0<1073741824){h=c<<2;c=f>>>1|0;c=f>>>0>=2147483644?1073741823:c>>>0>d>>>0?c:d;if(c){if(c>>>0>=1073741824){break a}f=ka(c<<2)}else{f=0}d=h+f|0;F[d>>2]=F[b>>2];b=d+4|0;if((e|0)!=(g|0)){while(1){d=d-4|0;e=e-4|0;F[d>>2]=F[e>>2];if((e|0)!=(g|0)){continue}break}}F[a+8>>2]=f+(c<<2);F[a+4>>2]=b;F[a>>2]=d;if(g){ja(g)}return}na();v()}oa();v()}function va(a){F[a>>2]=-1;F[a+4>>2]=0;F[a+8>>2]=0;F[a+32>>2]=0;F[a+36>>2]=0;D[a+28|0]=1;F[a+20>>2]=0;F[a+24>>2]=0;F[a+12>>2]=0;F[a+16>>2]=0;F[a+40>>2]=0;F[a+44>>2]=0;F[a+48>>2]=0;F[a+52>>2]=0;F[a+56>>2]=0;F[a+60>>2]=0;F[a+64>>2]=0;F[a+68>>2]=0;F[a+76>>2]=0;F[a+80>>2]=0;F[a+84>>2]=0;F[a+88>>2]=0;F[a+92>>2]=0;F[a+96>>2]=0;F[a+72>>2]=a+4;F[a+104>>2]=0;F[a+108>>2]=0;D[a+100|0]=1;F[a+112>>2]=0;F[a+116>>2]=0;F[a+120>>2]=0;F[a+124>>2]=0;F[a+128>>2]=0;F[a+132>>2]=0;F[a+136>>2]=0;F[a+140>>2]=0}function Hb(a,b){var c=0,d=0,e=0,f=0;d=F[a+12>>2];c=F[a+16>>2]-d>>2;a:{if(c>>>0>>0){qa(a+12|0,b-c|0);break a}if(b>>>0>=c>>>0){break a}F[a+16>>2]=d+(b<<2)}b:{c=F[a>>2];c:{if(F[a+8>>2]-c>>2>>>0>=b>>>0){break c}if(b>>>0>=1073741824){break b}d=F[a+4>>2];e=b<<2;b=ka(e);e=b+e|0;f=b+(d-c&-4)|0;b=f;if((c|0)!=(d|0)){while(1){b=b-4|0;d=d-4|0;F[b>>2]=F[d>>2];if((c|0)!=(d|0)){continue}break}}F[a+8>>2]=e;F[a+4>>2]=f;F[a>>2]=b;if(!c){break c}ja(c)}return}na();v()}function tb(a){a=a|0;var b=0,c=0,d=0;F[a>>2]=10300;b=F[a+68>>2];if(b){F[a+72>>2]=b;ja(b)}b=F[a+56>>2];if(b){F[a+60>>2]=b;ja(b)}b=F[a+44>>2];if(b){F[a+48>>2]=b;ja(b)}b=F[a+32>>2];if(b){F[a+36>>2]=b;ja(b)}b=F[a+20>>2];if(b){F[a+24>>2]=b;ja(b)}b=F[a+8>>2];if(b){d=b;c=F[a+12>>2];if((b|0)!=(c|0)){while(1){c=c-4|0;d=F[c>>2];F[c>>2]=0;if(d){xa(d)}if((b|0)!=(c|0)){continue}break}d=F[a+8>>2]}F[a+12>>2]=b;ja(d)}b=F[a+4>>2];F[a+4>>2]=0;if(b){ic(b)}return a|0}function qa(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;e=F[a+8>>2];c=F[a+4>>2];if(e-c>>2>>>0>=b>>>0){if(b){b=b<<2;c=ma(c,0,b)+b|0}F[a+4>>2]=c;return}a:{f=c;c=F[a>>2];g=f-c|0;h=g>>2;d=h+b|0;if(d>>>0<1073741824){e=e-c|0;f=e>>>1|0;d=e>>>0>=2147483644?1073741823:d>>>0>>0?f:d;if(d){if(d>>>0>=1073741824){break a}i=ka(d<<2)}b=b<<2;e=ma((h<<2)+i|0,0,b);f=d<<2;d=pa(i,c,g);F[a+8>>2]=f+d;F[a+4>>2]=b+e;F[a>>2]=d;if(c){ja(c)}return}na();v()}oa();v()}function gc(a,b){var c=0,d=0,e=0,f=0;c=a+4|0;a=Ya(a,b);a:{if((c|0)==(a|0)){break a}b=a+28|0;b=D[a+39|0]<0?F[b>>2]:b;while(1){a=b;b=a+1|0;c=D[a|0];if((c|0)==32|c-9>>>0<5){continue}break}b:{c:{d:{c=D[a|0];switch(c-43|0){case 0:break c;case 2:break d;default:break b}}e=1}c=D[b|0];a=b}if(c-48>>>0<10){while(1){d=(L(d,10)-D[a|0]|0)+48|0;b=D[a+1|0];a=a+1|0;if(b-48>>>0<10){continue}break}}a=e?d:0-d|0;if((a|0)==-1){break a}f=(a|0)!=0}return f}function Qa(a,b){var c=0,d=0,e=0,f=0,g=0,h=0;a=F[a>>2];c=F[a+4>>2];e=F[a+8>>2];if(c>>>0>>0){F[c>>2]=F[b>>2];F[a+4>>2]=c+4;return}a:{d=c;c=F[a>>2];g=d-c|0;d=g>>2;f=d+1|0;if(f>>>0<1073741824){h=d<<2;e=e-c|0;d=e>>>1|0;f=e>>>0>=2147483644?1073741823:f>>>0>>0?d:f;if(f){if(f>>>0>=1073741824){break a}e=ka(f<<2)}else{e=0}d=h+e|0;F[d>>2]=F[b>>2];b=pa(e,c,g);F[a+8>>2]=b+(f<<2);F[a+4>>2]=d+4;F[a>>2]=b;if(c){ja(c)}return}na();v()}oa();v()}function db(a,b,c){var d=0,e=0,f=0,g=0,h=0;f=Z-16|0;Z=f;d=Z-32|0;Z=d;e=Z-16|0;Z=e;F[e+12>>2]=b;F[e+8>>2]=b+c;F[d+24>>2]=F[e+12>>2];F[d+28>>2]=F[e+8>>2];Z=e+16|0;c=Z-16|0;Z=c;h=F[d+28>>2];e=F[d+24>>2];g=h-e|0;if((e|0)!=(h|0)){pa(a,e,g)}F[c+12>>2]=e+g;F[c+8>>2]=a+g;F[d+16>>2]=F[c+12>>2];F[d+20>>2]=F[c+8>>2];Z=c+16|0;F[d+12>>2]=(F[d+16>>2]-b|0)+b;F[d+8>>2]=(F[d+20>>2]-a|0)+a;F[f+8>>2]=F[d+12>>2];F[f+12>>2]=F[d+8>>2];Z=d+32|0;Z=f+16|0}function _a(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;e=F[a+8>>2];c=F[a+4>>2];if(e-c>>3>>>0>=b>>>0){if(b){b=b<<3;c=ma(c,0,b)+b|0}F[a+4>>2]=c;return}a:{f=c;c=F[a>>2];g=f-c|0;h=g>>3;d=h+b|0;if(d>>>0<536870912){e=e-c|0;f=e>>>2|0;d=e>>>0>=2147483640?536870911:d>>>0>>0?f:d;if(d){if(d>>>0>=536870912){break a}i=ka(d<<3)}b=b<<3;e=ma((h<<3)+i|0,0,b);f=d<<3;d=pa(i,c,g);F[a+8>>2]=f+d;F[a+4>>2]=b+e;F[a>>2]=d;if(c){ja(c)}return}na();v()}oa();v()}function re(a){a=a|0;var b=0,c=0,d=0;F[a>>2]=2016;b=F[a+60>>2];F[a+60>>2]=0;if(b){$[F[F[b>>2]+4>>2]](b)}b=F[a+48>>2];if(b){F[a+52>>2]=b;ja(b)}d=F[a+36>>2];if(d){c=F[a+40>>2];b=d;if((c|0)!=(b|0)){while(1){c=c-4|0;b=F[c>>2];F[c>>2]=0;if(b){$[F[F[b>>2]+4>>2]](b)}if((c|0)!=(d|0)){continue}break}b=F[a+36>>2]}F[a+40>>2]=d;ja(b)}F[a>>2]=1776;b=F[a+16>>2];if(b){F[a+20>>2]=b;ja(b)}b=F[a+4>>2];if(b){F[a+8>>2]=b;ja(b)}return a|0}function qe(a){a=a|0;var b=0,c=0,d=0;F[a>>2]=2016;b=F[a+60>>2];F[a+60>>2]=0;if(b){$[F[F[b>>2]+4>>2]](b)}b=F[a+48>>2];if(b){F[a+52>>2]=b;ja(b)}d=F[a+36>>2];if(d){c=F[a+40>>2];b=d;if((c|0)!=(b|0)){while(1){c=c-4|0;b=F[c>>2];F[c>>2]=0;if(b){$[F[F[b>>2]+4>>2]](b)}if((c|0)!=(d|0)){continue}break}b=F[a+36>>2]}F[a+40>>2]=d;ja(b)}F[a>>2]=1776;b=F[a+16>>2];if(b){F[a+20>>2]=b;ja(b)}b=F[a+4>>2];if(b){F[a+8>>2]=b;ja(b)}ja(a)}function Eg(a){a=a|0;var b=0,c=0,d=0,e=0,f=0;a:{b=F[a+8>>2];b:{if((b|0)<0){break b}c=F[a+4>>2];e=F[c>>2];d=F[c+4>>2]-e>>2;c:{if(d>>>0>>0){nd(c,b-d|0);f=F[a+8>>2];break c}f=b;if(b>>>0>=d>>>0){break c}F[c+4>>2]=e+(b<<2);f=b}d=f;if((d|0)<=0){break b}a=F[a+4>>2];c=F[a>>2];e=F[a+4>>2]-c>>2;a=0;while(1){if((a|0)==(e|0)){break a}F[c+(a<<2)>>2]=a;a=a+1|0;if((d|0)!=(a|0)){continue}break}}return(b^-1)>>>31|0}ta();v()}function fh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;d=Z-16|0;Z=d;e=F[a+4>>2];a:{if((e|0)==-1){break a}c=F[b+20>>2];if(!!F[b+16>>2]&(c|0)>=0|(c|0)>0){break a}pb(b,F[b+4>>2],F[a+8>>2],F[a+12>>2]);c=F[b+20>>2];if(!!F[b+16>>2]&(c|0)>=0|(c|0)>0){break a}pb(b,F[b+4>>2],a+20|0,a+24|0);c=F[b+20>>2];f=F[b+16>>2];D[d+15|0]=F[a+4>>2];if(!!f&(c|0)>=0|(c|0)>0){break a}pb(b,F[b+4>>2],d+15|0,d+16|0)}Z=d+16|0;return(e|0)!=-1|0}function kd(a,b){var c=0,d=0,e=0,f=0,g=0,h=0;e=F[a+8>>2];c=F[a+4>>2];if(e-c>>1>>>0>=b>>>0){if(b){b=b<<1;c=ma(c,0,b)+b|0}F[a+4>>2]=c;return}a:{f=c;c=F[a>>2];g=f-c|0;f=g>>1;d=f+b|0;if((d|0)>=0){e=e-c|0;d=e>>>0>=2147483646?2147483647:d>>>0>>0?e:d;if(d){if((d|0)<0){break a}h=ka(d<<1)}b=b<<1;e=ma((f<<1)+h|0,0,b);f=d<<1;d=pa(h,c,g);F[a+8>>2]=f+d;F[a+4>>2]=b+e;F[a>>2]=d;if(c){ja(c)}return}na();v()}oa();v()}function of(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;d=Z-16|0;Z=d;Pd(d,a,b,c);F[a+24>>2]=F[d>>2];e=a+24|0;a:{if((e|0)==(d|0)){break a}b=a+28|0;c=d|4;f=G[d+15|0];g=f<<24>>24;if(D[a+39|0]>=0){if((g|0)>=0){a=F[c+4>>2];F[b>>2]=F[c>>2];F[b+4>>2]=a;F[b+8>>2]=F[c+8>>2];break a}qb(b,F[d+4>>2],F[d+8>>2]);break a}a=(g|0)<0;rb(b,a?F[d+4>>2]:c,a?F[d+8>>2]:f)}if(D[d+15|0]<0){ja(F[d+4>>2])}Z=d+16|0;return e|0}function ra(a,b,c){var d=0,e=0,f=0,g=0;e=Z-16|0;Z=e;a:{b:{if(c>>>0<11){d=a;D[a+11|0]=G[a+11|0]&128|c;D[a+11|0]=G[a+11|0]&127;break b}if(c>>>0>2147483631){break a}g=e+8|0;if(c>>>0>=11){f=c+16&-16;d=f-1|0;d=(d|0)==11?f:d}else{d=10}sb(g,d+1|0);d=F[e+8>>2];F[a>>2]=d;F[a+8>>2]=F[a+8>>2]&-2147483648|F[e+12>>2]&2147483647;F[a+8>>2]=F[a+8>>2]|-2147483648;F[a+4>>2]=c}db(d,b,c+1|0);Z=e+16|0;return}za();v()}function pf(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;b=Z-16|0;Z=b;Od(b);F[a+24>>2]=F[b>>2];e=a+24|0;a:{if((e|0)==(b|0)){break a}c=a+28|0;d=b|4;f=G[b+15|0];g=f<<24>>24;if(D[a+39|0]>=0){if((g|0)>=0){a=F[d+4>>2];F[c>>2]=F[d>>2];F[c+4>>2]=a;F[c+8>>2]=F[d+8>>2];break a}qb(c,F[b+4>>2],F[b+8>>2]);break a}a=(g|0)<0;rb(c,a?F[b+4>>2]:d,a?F[b+8>>2]:f)}if(D[b+15|0]<0){ja(F[b+4>>2])}Z=b+16|0;return e|0}function Rf(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;d=Z-16|0;Z=d;a:{e=ya(c);if(e>>>0<2147483632){b:{c:{if(e>>>0>=11){g=(e|15)+1|0;f=ka(g);F[d+8>>2]=g|-2147483648;F[d>>2]=f;F[d+4>>2]=e;g=e+f|0;break c}D[d+11|0]=e;g=d+e|0;f=d;if(!e){break b}}la(f,c,e)}D[g|0]=0;f=a+16|0;c=Sc(b,d,f);b=F[a+16>>2];a=D[a+27|0];if(D[d+11|0]<0){ja(F[d>>2])}Z=d+16|0;a=c?(a|0)<0?b:f:0;break a}za();v()}return a|0}function Yb(a,b){var c=0,d=0,e=0;c=F[a+4>>2];d=c+b|0;F[a+4>>2]=d;if(!((d-1^c-1)>>>0<32?c:0)){F[F[a>>2]+((d>>>0>=33?d-1>>>5|0:0)<<2)>>2]=0}a:{if(!b){break a}a=F[a>>2]+(c>>>3&536870908)|0;c=c&31;if(c){d=32-c|0;e=b>>>0>d>>>0?d:b;F[a>>2]=F[a>>2]&(-1<>>d-e^-1);b=b-e|0;a=a+4|0}c=b>>>5|0;if(b>>>0>=32){ma(a,0,c<<2)}if((b&-32)==(b|0)){break a}a=(c<<2)+a|0;F[a>>2]=F[a>>2]&(-1>>>32-(b&31)^-1)}}function ld(a,b,c){var d=0,e=0,f=0,g=0;a:{if(a>>>0>10){break a}d=F[c+20>>2];f=F[c+12>>2];e=F[c+16>>2];if((d|0)>=(f|0)&e>>>0>=I[c+8>>2]|(d|0)>(f|0)){break a}f=D[e+F[c>>2]|0];e=e+1|0;d=e?d:d+1|0;F[c+16>>2]=e;F[c+20>>2]=d;d=f;b:{if((d|0)<0){if(!ld(a+1|0,b,c)){break a}a=F[b>>2];d=d&127|a<<7;a=F[b+4>>2]<<7|a>>>25;break b}d=d&255;a=0}F[b>>2]=d;F[b+4>>2]=a;g=1}return g}function Sa(a,b,c){var d=0,e=0,f=0,g=0;a:{if(a>>>0>10){break a}d=F[c+20>>2];f=F[c+12>>2];e=F[c+16>>2];if((d|0)>=(f|0)&e>>>0>=I[c+8>>2]|(d|0)>(f|0)){break a}f=D[e+F[c>>2]|0];e=e+1|0;d=e?d:d+1|0;F[c+16>>2]=e;F[c+20>>2]=d;d=f;b:{if((d|0)<0){if(!Sa(a+1|0,b,c)){break a}a=F[b>>2];d=d&127|a<<7;a=F[b+4>>2]<<7|a>>>25;break b}d=d&255;a=0}F[b>>2]=d;F[b+4>>2]=a;g=1}return g}function Ne(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;if(La(a,F[b+8>>2],e)){if(!(F[b+28>>2]==1|F[b+4>>2]!=(c|0))){F[b+28>>2]=d}return}a:{if(!La(a,F[b>>2],e)){break a}if(!(F[b+16>>2]!=(c|0)&F[b+20>>2]!=(c|0))){if((d|0)!=1){break a}F[b+32>>2]=1;return}F[b+20>>2]=c;F[b+32>>2]=d;F[b+40>>2]=F[b+40>>2]+1;if(!(F[b+36>>2]!=1|F[b+24>>2]!=2)){D[b+54|0]=1}F[b+44>>2]=4}}function jg(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0;e=Z+-64|0;Z=e;d=$[F[F[a>>2]+44>>2]](a,b)|0;a=$[F[F[a>>2]+40>>2]](a,b)|0;f=kb(e);g=F[b+56>>2];h=d&255;i=a;a=a-1|0;if(a>>>0<=10){a=F[(a<<2)+10148>>2]}else{a=-1}d=L(a,d);cc(f,g,h,i,0,d,d>>31);a=bc(ka(96),f);ac(a,c);D[a+84|0]=1;F[a+72>>2]=F[a+68>>2];F[a+60>>2]=F[b+60>>2];Z=e- -64|0;return a|0}function rh(a){a=a|0;var b=0,c=0,d=0;F[a>>2]=8176;b=F[a+48>>2];F[a+48>>2]=0;if(b){$[F[F[b>>2]+4>>2]](b)}F[a>>2]=10032;b=F[a+20>>2];if(b){F[a+24>>2]=b;ja(b)}d=F[a+8>>2];if(d){c=F[a+12>>2];b=d;if((c|0)!=(b|0)){while(1){c=c-4|0;b=F[c>>2];F[c>>2]=0;if(b){$[F[F[b>>2]+4>>2]](b)}if((c|0)!=(d|0)){continue}break}b=F[a+8>>2]}F[a+12>>2]=d;ja(b)}return a|0}function Dc(a,b,c,d){D[a+53|0]=1;a:{if(F[a+4>>2]!=(c|0)){break a}D[a+52|0]=1;c=F[a+16>>2];b:{if(!c){F[a+36>>2]=1;F[a+24>>2]=d;F[a+16>>2]=b;if((d|0)!=1){break a}if(F[a+48>>2]==1){break b}break a}if((b|0)==(c|0)){c=F[a+24>>2];if((c|0)==2){F[a+24>>2]=d;c=d}if(F[a+48>>2]!=1){break a}if((c|0)==1){break b}break a}F[a+36>>2]=F[a+36>>2]+1}D[a+54|0]=1}}function qh(a){a=a|0;var b=0,c=0,d=0;F[a>>2]=8176;b=F[a+48>>2];F[a+48>>2]=0;if(b){$[F[F[b>>2]+4>>2]](b)}F[a>>2]=10032;b=F[a+20>>2];if(b){F[a+24>>2]=b;ja(b)}d=F[a+8>>2];if(d){c=F[a+12>>2];b=d;if((c|0)!=(b|0)){while(1){c=c-4|0;b=F[c>>2];F[c>>2]=0;if(b){$[F[F[b>>2]+4>>2]](b)}if((c|0)!=(d|0)){continue}break}b=F[a+8>>2]}F[a+12>>2]=d;ja(b)}ja(a)}function Se(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;e=Z+-64|0;Z=e;d=1;a:{if(La(a,b,0)){break a}d=0;if(!b){break a}b=Fc(b,11068);d=0;if(!b){break a}d=e+8|0;ma(d|4,0,52);F[e+56>>2]=1;F[e+20>>2]=-1;F[e+16>>2]=a;F[e+8>>2]=b;$[F[F[b>>2]+28>>2]](b,d,F[c>>2],1);a=F[e+32>>2];if((a|0)==1){F[c>>2]=F[e+24>>2]}d=(a|0)==1}Z=e- -64|0;return d|0}function Fd(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=Z-16|0;Z=d;F[a+4>>2]=b;b=F[b+64>>2];e=F[b>>2];b=F[b+4>>2];D[d+15|0]=0;Ea(a+24|0,(b-e>>2>>>0)/3|0,d+15|0);b=F[a+4>>2];e=F[b+56>>2];b=F[b+52>>2];D[d+14|0]=0;Ea(a+36|0,e-b>>2,d+14|0);b=F[c+12>>2];F[a+16>>2]=F[c+8>>2];F[a+20>>2]=b;b=F[c+4>>2];F[a+8>>2]=F[c>>2];F[a+12>>2]=b;Z=d+16|0}function zf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;a=Z-16|0;Z=a;f=D[b+24|0];e=F[2555];F[a+8>>2]=F[2554];F[a+12>>2]=e;e=F[2553];F[a>>2]=F[2552];F[a+4>>2]=e;e=lb(b,c,f,a);if(e){b=0;if(f){c=(f&255)<<2;b=ka(c);g=la(b,a,c)+c|0}c=F[d>>2];if(c){F[d+4>>2]=c;ja(c)}F[d+8>>2]=g;F[d+4>>2]=g;F[d>>2]=b}Z=a+16|0;return e|0}function wd(a,b){var c=0,d=0;a:{c=F[a+4>>2];d=F[a+8>>2];if((c|0)==d<<5){if((c+1|0)<0){break a}if(c>>>0<=1073741822){d=d<<6;c=(c&-32)+32|0;c=c>>>0>>0?d:c}else{c=2147483647}$a(a,c);c=F[a+4>>2]}F[a+4>>2]=c+1;d=1<>2]+(c>>>3&536870908)|0;if(G[b|0]){F[a>>2]=d|F[a>>2];return}F[a>>2]=F[a>>2]&(d^-1);return}na();v()}function Zb(a){var b=0;F[a>>2]=0;F[a+4>>2]=0;F[a+56>>2]=0;F[a+48>>2]=0;F[a+52>>2]=0;F[a+40>>2]=0;F[a+44>>2]=0;F[a+32>>2]=0;F[a+36>>2]=0;F[a+24>>2]=0;F[a+28>>2]=0;F[a+16>>2]=0;F[a+20>>2]=0;F[a+8>>2]=0;F[a+12>>2]=0;b=a- -64|0;F[b>>2]=0;F[b+4>>2]=0;F[a+72>>2]=0;F[a+76>>2]=0;F[a+80>>2]=0;F[a+84>>2]=0;F[a+60>>2]=a;return a}function ve(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0;f=$[F[F[a>>2]+24>>2]](a)|0;c=1;a:{if((f|0)<=0){break a}d=F[F[a+36>>2]>>2];g=a+48|0;c=0;if(!($[F[F[d>>2]+16>>2]](d,g,b)|0)){break a}while(1){e=e+1|0;if((f|0)!=(e|0)){d=F[F[a+36>>2]+(e<<2)>>2];if($[F[F[d>>2]+16>>2]](d,g,b)|0){continue}}break}c=(e|0)>=(f|0)}return c|0}function ue(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0;f=$[F[F[a>>2]+24>>2]](a)|0;c=1;a:{if((f|0)<=0){break a}d=F[F[a+36>>2]>>2];g=a+48|0;c=0;if(!($[F[F[d>>2]+20>>2]](d,g,b)|0)){break a}while(1){e=e+1|0;if((f|0)!=(e|0)){d=F[F[a+36>>2]+(e<<2)>>2];if($[F[F[d>>2]+20>>2]](d,g,b)|0){continue}}break}c=(e|0)>=(f|0)}return c|0}function bh(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=Z-16|0;Z=d;F[a+4>>2]=b;e=F[b>>2];b=F[b+4>>2];D[d+15|0]=0;Ea(a+24|0,(b-e>>2>>>0)/3|0,d+15|0);b=F[a+4>>2];e=F[b+28>>2];b=F[b+24>>2];D[d+14|0]=0;Ea(a+36|0,e-b>>2,d+14|0);b=F[c+12>>2];F[a+16>>2]=F[c+8>>2];F[a+20>>2]=b;b=F[c+4>>2];F[a+8>>2]=F[c>>2];F[a+12>>2]=b;Z=d+16|0}function hb(a,b,c){var d=0,e=0,f=0,g=0;a:{if(a>>>0>5){break a}d=F[c+20>>2];e=F[c+12>>2];f=F[c+16>>2];if((d|0)>=(e|0)&f>>>0>=I[c+8>>2]|(d|0)>(e|0)){break a}e=G[F[c>>2]+f|0];f=f+1|0;d=f?d:d+1|0;F[c+16>>2]=f;F[c+20>>2]=d;d=e<<24>>24;if((d|0)<0){if(!hb(a+1|0,b,c)){break a}e=d&127|F[b>>2]<<7}F[b>>2]=e;g=1}return g}function fb(a,b,c){var d=0,e=0,f=0,g=0;a:{if(a>>>0>5){break a}d=F[c+20>>2];e=F[c+12>>2];f=F[c+16>>2];if((d|0)>=(e|0)&f>>>0>=I[c+8>>2]|(d|0)>(e|0)){break a}e=G[F[c>>2]+f|0];f=f+1|0;d=f?d:d+1|0;F[c+16>>2]=f;F[c+20>>2]=d;d=e<<24>>24;if((d|0)<0){if(!fb(a+1|0,b,c)){break a}e=d&127|F[b>>2]<<7}F[b>>2]=e;g=1}return g}function Wb(a,b,c){var d=0,e=0,f=0,g=0;a:{if(a>>>0>5){break a}d=F[c+20>>2];e=F[c+12>>2];f=F[c+16>>2];if((d|0)>=(e|0)&f>>>0>=I[c+8>>2]|(d|0)>(e|0)){break a}e=G[F[c>>2]+f|0];f=f+1|0;d=f?d:d+1|0;F[c+16>>2]=f;F[c+20>>2]=d;d=e<<24>>24;if((d|0)<0){if(!Wb(a+1|0,b,c)){break a}e=d&127|F[b>>2]<<7}F[b>>2]=e;g=1}return g}function Ta(a,b,c){var d=0,e=0,f=0,g=0;a:{if(a>>>0>5){break a}d=F[c+20>>2];e=F[c+12>>2];f=F[c+16>>2];if((d|0)>=(e|0)&f>>>0>=I[c+8>>2]|(d|0)>(e|0)){break a}e=G[F[c>>2]+f|0];f=f+1|0;d=f?d:d+1|0;F[c+16>>2]=f;F[c+20>>2]=d;d=e<<24>>24;if((d|0)<0){if(!Ta(a+1|0,b,c)){break a}e=d&127|F[b>>2]<<7}F[b>>2]=e;g=1}return g}function Qd(a,b,c){var d=0,e=0,f=0,g=0;a:{if(a>>>0>5){break a}d=F[c+20>>2];e=F[c+12>>2];f=F[c+16>>2];if((d|0)>=(e|0)&f>>>0>=I[c+8>>2]|(d|0)>(e|0)){break a}e=G[F[c>>2]+f|0];f=f+1|0;d=f?d:d+1|0;F[c+16>>2]=f;F[c+20>>2]=d;d=e<<24>>24;if((d|0)<0){if(!Qd(a+1|0,b,c)){break a}e=d&127|F[b>>2]<<7}F[b>>2]=e;g=1}return g}function Oa(a,b,c){var d=0,e=0,f=0,g=0;a:{if(a>>>0>5){break a}d=F[c+20>>2];e=F[c+12>>2];f=F[c+16>>2];if((d|0)>=(e|0)&f>>>0>=I[c+8>>2]|(d|0)>(e|0)){break a}e=G[F[c>>2]+f|0];f=f+1|0;d=f?d:d+1|0;F[c+16>>2]=f;F[c+20>>2]=d;d=e<<24>>24;if((d|0)<0){if(!Oa(a+1|0,b,c)){break a}e=d&127|F[b>>2]<<7}F[b>>2]=e;g=1}return g}function Da(a,b,c){var d=0,e=0,f=0,g=0;a:{if(a>>>0>5){break a}d=F[c+20>>2];e=F[c+12>>2];f=F[c+16>>2];if((d|0)>=(e|0)&f>>>0>=I[c+8>>2]|(d|0)>(e|0)){break a}e=G[F[c>>2]+f|0];f=f+1|0;d=f?d:d+1|0;F[c+16>>2]=f;F[c+20>>2]=d;d=e<<24>>24;if((d|0)<0){if(!Da(a+1|0,b,c)){break a}e=d&127|F[b>>2]<<7}F[b>>2]=e;g=1}return g}function sa(a,b,c){var d=0,e=0;a:{b:{if(c>>>0>=4){if((a|b)&3){break b}while(1){if(F[a>>2]!=F[b>>2]){break b}b=b+4|0;a=a+4|0;c=c-4|0;if(c>>>0>3){continue}break}}if(!c){break a}}while(1){d=G[a|0];e=G[b|0];if((d|0)==(e|0)){b=b+1|0;a=a+1|0;c=c-1|0;if(c){continue}break a}break}return d-e|0}return 0}function td(a){var b=0,c=0,d=0,e=0;d=F[a>>2];if(d){e=d;c=F[a+4>>2];if((d|0)!=(c|0)){while(1){e=c-144|0;b=F[e+132>>2];if(b){F[c-8>>2]=b;ja(b)}b=F[c-28>>2];if(b){F[c-24>>2]=b;ja(b)}b=F[c-40>>2];if(b){F[c-36>>2]=b;ja(b)}Gb(c-140|0);c=e;if((d|0)!=(c|0)){continue}break}e=F[a>>2]}F[a+4>>2]=d;ja(e)}}function Ef(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=F[b+4>>2];a:{if(!d){break a}b=F[F[F[b+8>>2]+(c<<2)>>2]+60>>2];if((b|0)<0){break a}a=F[d+24>>2];c=F[d+28>>2];if((a|0)==(c|0)){break a}b:{while(1){e=F[a>>2];if((b|0)==F[e+24>>2]){break b}a=a+4|0;if((c|0)!=(a|0)){continue}break}e=0}}return e|0}function ic(a){var b=0,c=0,d=0;if(a){d=F[a+24>>2];if(d){b=d;c=F[a+28>>2];if((b|0)!=(c|0)){while(1){c=c-4|0;b=F[c>>2];F[c>>2]=0;if(b){Ca(b+12|0,F[b+16>>2]);Ba(b,F[b+4>>2]);ja(b)}if((c|0)!=(d|0)){continue}break}b=F[a+24>>2]}F[a+28>>2]=d;ja(b)}Ca(a+12|0,F[a+16>>2]);Ba(a,F[a+4>>2]);ja(a)}}function $g(a){a=a|0;var b=0;F[a+8>>2]=9136;F[a>>2]=8924;b=F[a+96>>2];if(b){F[a+100>>2]=b;ja(b)}b=F[a+80>>2];if(b){F[a+84>>2]=b;ja(b)}b=F[a+68>>2];if(b){F[a+72>>2]=b;ja(b)}b=F[a+56>>2];if(b){F[a+60>>2]=b;ja(b)}F[a+8>>2]=9372;b=F[a+44>>2];if(b){ja(b)}b=F[a+32>>2];if(b){ja(b)}return a|0}function _g(a){a=a|0;var b=0;F[a+8>>2]=9136;F[a>>2]=8924;b=F[a+96>>2];if(b){F[a+100>>2]=b;ja(b)}b=F[a+80>>2];if(b){F[a+84>>2]=b;ja(b)}b=F[a+68>>2];if(b){F[a+72>>2]=b;ja(b)}b=F[a+56>>2];if(b){F[a+60>>2]=b;ja(b)}F[a+8>>2]=9372;b=F[a+44>>2];if(b){ja(b)}b=F[a+32>>2];if(b){ja(b)}ja(a)}function wh(a){a=a|0;var b=0,c=0,d=0;F[a>>2]=10032;b=F[a+20>>2];if(b){F[a+24>>2]=b;ja(b)}d=F[a+8>>2];if(d){c=F[a+12>>2];b=d;if((c|0)!=(b|0)){while(1){c=c-4|0;b=F[c>>2];F[c>>2]=0;if(b){$[F[F[b>>2]+4>>2]](b)}if((c|0)!=(d|0)){continue}break}b=F[a+8>>2]}F[a+12>>2]=d;ja(b)}return a|0}function uc(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0;h=F[c+8>>2];e=F[c+16>>2];g=F[c+12>>2];f=g;d=F[c+20>>2];if(h>>>0>e>>>0&(f|0)>=(d|0)|(d|0)<(f|0)){b=G[F[c>>2]+e|0];i=e+1|0;f=i?d:d+1|0;F[c+16>>2]=i;F[c+20>>2]=f;F[a+4>>2]=b}return e>>>0>>0&(d|0)<=(g|0)|(d|0)<(g|0)}function La(a,b,c){var d=0;if(!c){return F[a+4>>2]==F[b+4>>2]}if((a|0)==(b|0)){return 1}d=F[a+4>>2];a=G[d|0];c=F[b+4>>2];b=G[c|0];a:{if(!a|(b|0)!=(a|0)){break a}while(1){b=G[c+1|0];a=G[d+1|0];if(!a){break a}c=c+1|0;d=d+1|0;if((a|0)==(b|0)){continue}break}}return(a|0)==(b|0)}function Gg(a){a=a|0;var b=0,c=0,d=0;F[a>>2]=10032;b=F[a+20>>2];if(b){F[a+24>>2]=b;ja(b)}d=F[a+8>>2];if(d){c=F[a+12>>2];b=d;if((c|0)!=(b|0)){while(1){c=c-4|0;b=F[c>>2];F[c>>2]=0;if(b){$[F[F[b>>2]+4>>2]](b)}if((c|0)!=(d|0)){continue}break}b=F[a+8>>2]}F[a+12>>2]=d;ja(b)}ja(a)}function Gf(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=F[b+12>>2];b=F[b+8>>2];a=0;a:{if((d|0)==(b|0)){break a}a=d-b>>2;d=a>>>0<=1?1:a;a=0;b:{while(1){e=F[b+(a<<2)>>2];if(F[e+60>>2]==(c|0)){break b}a=a+1|0;if((d|0)!=(a|0)){continue}break}a=0;break a}a=(a|0)!=-1?e:0}return a|0}function ah(a){a=a|0;var b=0;F[a>>2]=9136;b=F[a+88>>2];if(b){F[a+92>>2]=b;ja(b)}b=F[a+72>>2];if(b){F[a+76>>2]=b;ja(b)}b=F[a+60>>2];if(b){F[a- -64>>2]=b;ja(b)}b=F[a+48>>2];if(b){F[a+52>>2]=b;ja(b)}F[a>>2]=9372;b=F[a+36>>2];if(b){ja(b)}b=F[a+24>>2];if(b){ja(b)}return a|0}function Tc(a,b){var c=0,d=0,e=0;F[a+8>>2]=0;F[a>>2]=0;F[a+4>>2]=0;a:{c=F[b+4>>2];d=F[b>>2];b:{if((c|0)==(d|0)){a=c;break b}c=c-d|0;if((c|0)<0){break a}d=c;e=ka(c);c=ma(e,0,c);d=d+c|0;F[a+8>>2]=d;F[a+4>>2]=d;F[a>>2]=c;c=F[b>>2];a=F[b+4>>2]}la(e,c,a-c|0);return}na();v()}function Dd(a){var b=0,c=0,d=0,e=0;c=F[a+4>>2];d=F[a>>2];if((c|0)!=(d|0)){while(1){e=c-144|0;b=F[e+132>>2];if(b){F[c-8>>2]=b;ja(b)}b=F[c-28>>2];if(b){F[c-24>>2]=b;ja(b)}b=F[c-40>>2];if(b){F[c-36>>2]=b;ja(b)}Gb(c-140|0);c=e;if((d|0)!=(c|0)){continue}break}}F[a+4>>2]=d}function Xg(a){a=a|0;var b=0;F[a>>2]=9136;b=F[a+88>>2];if(b){F[a+92>>2]=b;ja(b)}b=F[a+72>>2];if(b){F[a+76>>2]=b;ja(b)}b=F[a+60>>2];if(b){F[a- -64>>2]=b;ja(b)}b=F[a+48>>2];if(b){F[a+52>>2]=b;ja(b)}F[a>>2]=9372;b=F[a+36>>2];if(b){ja(b)}b=F[a+24>>2];if(b){ja(b)}ja(a)}function Za(a){var b=0;if(a){b=F[a+76>>2];if(b){F[a+80>>2]=b;ja(b)}b=F[a- -64>>2];if(b){F[a+68>>2]=b;ja(b)}b=F[a+48>>2];if(b){F[a+52>>2]=b;ja(b)}b=F[a+24>>2];if(b){F[a+28>>2]=b;ja(b)}b=F[a+12>>2];if(b){F[a+16>>2]=b;ja(b)}b=F[a>>2];if(b){F[a+4>>2]=b;ja(b)}ja(a)}}function Gb(a){var b=0;b=F[a+84>>2];if(b){F[a+88>>2]=b;ja(b)}b=F[a+72>>2];if(b){F[a+76>>2]=b;ja(b)}b=F[a+52>>2];if(b){F[a+56>>2]=b;ja(b)}b=F[a+40>>2];if(b){F[a+44>>2]=b;ja(b)}b=F[a+28>>2];if(b){F[a+32>>2]=b;ja(b)}b=F[a+12>>2];if(b){ja(b)}a=F[a>>2];if(a){ja(a)}}function Lc(a,b,c){var d=0,e=0,f=0,g=0;f=Z-16|0;Z=f;d=Z-16|0;Z=d;b=b-a>>2;while(1){if(b){F[d+12>>2]=a;e=b>>>1|0;F[d+12>>2]=F[d+12>>2]+(e<<2);g=(e^-1)+b|0;b=e;e=I[F[d+12>>2]>>2]>2];b=e?g:b;a=e?F[d+12>>2]+4|0:a;continue}break}Z=d+16|0;Z=f+16|0;return a}function id(a,b){var c=0,d=0;d=ka(40);F[d>>2]=-1;c=d+8|0;F[c+16>>2]=0;F[c+20>>2]=0;F[c+8>>2]=0;F[c>>2]=0;F[c+4>>2]=0;F[c+24>>2]=0;F[c+28>>2]=0;$[F[F[a>>2]+16>>2]](a,d);a=F[b+88>>2];F[b+88>>2]=d;if(a){b=F[a+8>>2];if(b){F[a+12>>2]=b;ja(b)}ja(a)}return 1}function ya(a){var b=0,c=0,d=0;b=a;a:{if(b&3){while(1){if(!G[b|0]){break a}b=b+1|0;if(b&3){continue}break}}while(1){c=b;b=b+4|0;d=F[c>>2];if(!((d^-1)&d-16843009&-2139062144)){continue}break}while(1){b=c;c=b+1|0;if(G[b|0]){continue}break}}return b-a|0}function wa(a){var b=0,c=0,d=0,e=0,f=0;d=G[a+12|0];c=F[a+8>>2];a:{if(c>>>0>4095){break a}b=F[a+4>>2];if((b|0)<=0){break a}b=b-1|0;F[a+4>>2]=b;c=G[b+F[a>>2]|0]|c<<8}d=0-d&255;b=L(d,c>>>8|0);e=c&255;f=e>>>0>>0;F[a+8>>2]=f?b+e|0:c-(b+d|0)|0;return f}function yc(a,b){F[a+4>>2]=0;F[a+8>>2]=0;F[a>>2]=1776;F[a+12>>2]=0;F[a+16>>2]=0;F[a+20>>2]=0;F[a+24>>2]=0;F[a+28>>2]=0;F[a+32>>2]=0;F[a+36>>2]=0;F[a+40>>2]=0;F[a>>2]=2016;F[a+60>>2]=b;F[a+44>>2]=0;F[a+48>>2]=0;F[a+52>>2]=0;F[a+56>>2]=0;return a}function Eb(a,b){var c=0,d=0,e=0;c=ya(b);if(c>>>0<2147483632){a:{b:{if(c>>>0>=11){d=(c|15)+1|0;e=ka(d);F[a+8>>2]=d|-2147483648;F[a>>2]=e;F[a+4>>2]=c;d=c+e|0;break b}D[a+11|0]=c;d=a+c|0;e=a;if(!c){break a}}pa(e,b,c)}D[d|0]=0;return a}za();v()}function Of(a){a=a|0;var b=0,c=0,d=0;if(a){if(D[a+27|0]<0){ja(F[a+16>>2])}b=F[a>>2];if(b){c=b;d=F[a+4>>2];if((b|0)!=(d|0)){while(1){c=d-12|0;if(D[d-1|0]<0){ja(F[c>>2])}d=c;if((d|0)!=(b|0)){continue}break}c=F[a>>2]}F[a+4>>2]=b;ja(c)}ja(a)}}function xa(a){a=a|0;var b=0,c=0;if(a){b=F[a+88>>2];F[a+88>>2]=0;if(b){c=F[b+8>>2];if(c){F[b+12>>2]=c;ja(c)}ja(b)}b=F[a+68>>2];if(b){F[a+72>>2]=b;ja(b)}b=F[a+64>>2];F[a+64>>2]=0;if(b){c=F[b>>2];if(c){F[b+4>>2]=c;ja(c)}ja(b)}ja(a)}}function Ib(a,b){var c=0,d=0,e=0;a:{c=F[a>>2];b:{if(F[a+8>>2]-c>>2>>>0>=b>>>0){break b}if(b>>>0>=1073741824){break a}d=F[a+4>>2]-c|0;e=b<<2;b=pa(ka(e),c,d);F[a+8>>2]=b+e;F[a+4>>2]=b+d;F[a>>2]=b;if(!c){break b}ja(c)}return}na();v()}function Df(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;b=F[b+96>>2];a=ka(12);b=b+L(c,12)|0;c=F[b+4>>2];F[a>>2]=F[b>>2];F[a+4>>2]=c;F[a+8>>2]=F[b+8>>2];b=F[d>>2];if(b){F[d+4>>2]=b;ja(b)}F[d>>2]=a;a=a+12|0;F[d+8>>2]=a;F[d+4>>2]=a;return 1}function Ah(a){a=a|0;var b=0;F[a+24>>2]=1624;F[a>>2]=7948;b=F[a+32>>2];if(b){F[a+36>>2]=b;ja(b)}F[a>>2]=2136;b=F[a+20>>2];F[a+20>>2]=0;if(b){$[F[F[b>>2]+4>>2]](b)}F[a>>2]=1920;b=F[a+16>>2];F[a+16>>2]=0;if(b){xa(b)}return a|0}function li(a,b,c,d){var e=0,f=0,g=0,h=0;f=b^d;g=f>>31;e=b>>31;a=a^e;h=a-e|0;e=(b^e)-((a>>>0>>0)+e|0)|0;a=d>>31;b=c^a;f=f>>31;a=mi(h,e,b-a|0,(a^d)-((a>>>0>b>>>0)+a|0)|0)^f;b=a-f|0;_=(g^_)-((a>>>0>>0)+g|0)|0;return b}function zh(a){a=a|0;var b=0;F[a+24>>2]=1624;F[a>>2]=7948;b=F[a+32>>2];if(b){F[a+36>>2]=b;ja(b)}F[a>>2]=2136;b=F[a+20>>2];F[a+20>>2]=0;if(b){$[F[F[b>>2]+4>>2]](b)}F[a>>2]=1920;b=F[a+16>>2];F[a+16>>2]=0;if(b){xa(b)}ja(a)}function rb(a,b,c){var d=0,e=0,f=0;e=Z-16|0;Z=e;d=F[a+8>>2]&2147483647;a:{if(d>>>0>c>>>0){d=F[a>>2];F[a+4>>2]=c;db(d,b,c);D[e+15|0]=0;D[c+d|0]=G[e+15|0];break a}f=a;a=F[a+4>>2];Gc(f,d-1|0,(c-d|0)+1|0,a,a,c,b)}Z=e+16|0}function xe(a,b){a=a|0;b=b|0;var c=0,d=0;c=Z-16|0;Z=c;a=F[a+4>>2];a:{if((a|0)==-1){break a}D[c+15|0]=a;d=F[b+20>>2];if(!!F[b+16>>2]&(d|0)>=0|(d|0)>0){break a}pb(b,F[b+4>>2],c+15|0,c+16|0)}Z=c+16|0;return(a|0)!=-1|0}function ki(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0;e=c>>>16|0;f=a>>>16|0;j=L(e,f);g=c&65535;h=a&65535;i=L(g,h);f=(i>>>16|0)+L(f,g)|0;e=(f&65535)+L(e,h)|0;_=(L(b,c)+j|0)+L(a,d)+(f>>>16)+(e>>>16)|0;return i&65535|e<<16}function qb(a,b,c){var d=0,e=0;d=Z-16|0;Z=d;a:{if(c>>>0<=10){D[a+11|0]=G[a+11|0]&128|c;D[a+11|0]=G[a+11|0]&127;db(a,b,c);D[d+15|0]=0;D[a+c|0]=G[d+15|0];break a}e=a;a=G[a+11|0]&127;Gc(e,10,c-10|0,a,a,c,b)}Z=d+16|0}function Ec(a,b,c){var d=0;d=F[a+16>>2];if(!d){F[a+36>>2]=1;F[a+24>>2]=c;F[a+16>>2]=b;return}a:{if((b|0)==(d|0)){if(F[a+24>>2]!=2){break a}F[a+24>>2]=c;return}D[a+54|0]=1;F[a+24>>2]=2;F[a+36>>2]=F[a+36>>2]+1}}function vg(){var a=0;a=kb(ka(96));F[a+64>>2]=0;F[a+68>>2]=0;F[a+88>>2]=0;F[a+72>>2]=0;F[a+76>>2]=0;D[a+77|0]=0;D[a+78|0]=0;D[a+79|0]=0;D[a+80|0]=0;D[a+81|0]=0;D[a+82|0]=0;D[a+83|0]=0;D[a+84|0]=0;return a|0}function jh(a,b){a=a|0;b=b|0;var c=0,d=0;F[b>>2]=2;c=F[b+8>>2];d=F[b+12>>2]-c|0;if(d>>>0<=4294967291){Db(b+8|0,d+4|0);c=F[b+8>>2]}b=c+d|0;a=F[a+4>>2];D[b|0]=a;D[b+1|0]=a>>>8;D[b+2|0]=a>>>16;D[b+3|0]=a>>>24}function ge(a){a=a|0;var b=0;F[a>>2]=3016;b=F[a+96>>2];if(b){ja(b)}b=F[a+84>>2];if(b){ja(b)}b=F[a+72>>2];if(b){ja(b)}b=F[a+60>>2];if(b){ja(b)}F[a>>2]=2960;b=F[a+32>>2];if(b){F[a+36>>2]=b;ja(b)}return a|0}function ci(a){a=a|0;var b=0;F[a>>2]=4580;b=F[a+96>>2];if(b){ja(b)}b=F[a+84>>2];if(b){ja(b)}b=F[a+72>>2];if(b){ja(b)}b=F[a+60>>2];if(b){ja(b)}F[a>>2]=2960;b=F[a+32>>2];if(b){F[a+36>>2]=b;ja(b)}return a|0}function Cg(a){a=a|0;var b=0,c=0,d=0;b=F[a+8>>2];d=F[a+12>>2];if((b|0)==(d|0)){return 1}while(1){c=F[b>>2];c=$[F[F[c>>2]+16>>2]](c,F[a+32>>2])|0;if(c){b=b+4|0;if((d|0)!=(b|0)){continue}}break}return c|0}function Pc(a,b){var c=0,d=0;c=F[a+8>>2];a=F[a+12>>2];if((c|0)!=(a|0)){a=a-c>>2;d=a>>>0<=1?1:a;a=0;while(1){if(F[F[(a<<2)+c>>2]+60>>2]==(b|0)){return a}a=a+1|0;if((d|0)!=(a|0)){continue}break}}return-1}function fe(a){a=a|0;var b=0;F[a>>2]=3016;b=F[a+96>>2];if(b){ja(b)}b=F[a+84>>2];if(b){ja(b)}b=F[a+72>>2];if(b){ja(b)}b=F[a+60>>2];if(b){ja(b)}F[a>>2]=2960;b=F[a+32>>2];if(b){F[a+36>>2]=b;ja(b)}ja(a)}function bi(a){a=a|0;var b=0;F[a>>2]=4580;b=F[a+96>>2];if(b){ja(b)}b=F[a+84>>2];if(b){ja(b)}b=F[a+72>>2];if(b){ja(b)}b=F[a+60>>2];if(b){ja(b)}F[a>>2]=2960;b=F[a+32>>2];if(b){F[a+36>>2]=b;ja(b)}ja(a)}function Sc(a,b,c){var d=0,e=0;d=a+4|0;a=Ya(a,b);a:{if((d|0)==(a|0)){break a}b=F[a+32>>2];d=F[a+28>>2];if((b|0)==(d|0)){break a}Sb(c,b-d|0);c=Tb(c);b=F[a+28>>2];la(c,b,F[a+32>>2]-b|0);e=1}return e}function Kd(a){F[a+40>>2]=0;F[a+4>>2]=0;F[a+8>>2]=0;F[a>>2]=10032;F[a+12>>2]=0;F[a+16>>2]=0;F[a+20>>2]=0;F[a+24>>2]=0;F[a+28>>2]=0;F[a+32>>2]=0;E[a+36>>1]=0;F[a+44>>2]=0;F[a>>2]=8080;return a}function kb(a){F[a+8>>2]=0;F[a+12>>2]=0;F[a>>2]=0;F[a+40>>2]=0;F[a+44>>2]=0;F[a+28>>2]=9;D[a+24|0]=1;F[a+56>>2]=-1;F[a+60>>2]=0;F[a+16>>2]=0;F[a+20>>2]=0;F[a+48>>2]=0;F[a+52>>2]=0;return a}function pe(a,b){a=a|0;b=b|0;var c=0,d=0;d=F[a+16>>2];c=0;a:{if(F[a+20>>2]-d>>2<=(b|0)){break a}b=F[(b<<2)+d>>2];c=0;if((b|0)<0){break a}c=bb(F[F[a+36>>2]+(b<<2)>>2])}return c|0}function Nf(){var a=0,b=0;a=ka(40);F[a+4>>2]=0;F[a+8>>2]=0;F[a+24>>2]=0;F[a+28>>2]=0;b=a+16|0;F[b>>2]=0;F[b+4>>2]=0;F[a>>2]=a+4;F[a+12>>2]=b;F[a+32>>2]=0;F[a+36>>2]=0;return a|0}function Xe(a,b){a=a|0;b=b|0;var c=0,d=0;Nc(a,b);a:{if((b|0)<0){break a}d=F[a+88>>2];c=F[a+84>>2];if(d-c>>2<=(b|0)){break a}c=(b<<2)+c|0;b=c+4|0;pa(c,b,d-b|0);F[a+88>>2]=d-4}}function eb(a){var b=0,c=0;b=F[2909];c=a+7&-8;a=b+c|0;a:{if(a>>>0<=b>>>0?c:0){break a}if(a>>>0>aa()<<16>>>0){if(!(X(a|0)|0)){break a}}F[2909]=a;return b}F[2940]=48;return-1}function Th(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;F[a+4>>2]=b;b=F[F[F[b+4>>2]+8>>2]+(c<<2)>>2];F[a+12>>2]=c;F[a+8>>2]=b;a=F[a+8>>2];if(G[a+24|0]==3){d=F[a+28>>2]==9}return d|0}function Tg(a){a=a|0;var b=0;F[a+8>>2]=9556;F[a>>2]=9392;b=F[a+56>>2];if(b){F[a+60>>2]=b;ja(b)}F[a+8>>2]=9372;b=F[a+44>>2];if(b){ja(b)}b=F[a+32>>2];if(b){ja(b)}return a|0}function Ng(a){a=a|0;var b=0;F[a+8>>2]=8624;F[a>>2]=9684;b=F[a+56>>2];if(b){F[a+60>>2]=b;ja(b)}F[a+8>>2]=8876;b=F[a+44>>2];if(b){ja(b)}b=F[a+32>>2];if(b){ja(b)}return a|0}function Ee(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=F[a+8>>2];a:{if(!G[d+24|0]){break a}if(!ac(d,F[b+4>>2]-F[b>>2]>>2)){break a}e=$[F[F[a>>2]+32>>2]](a,b,c)|0}return e|0}function Fh(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;F[a+4>>2]=b;d=F[F[F[b+4>>2]+8>>2]+(c<<2)>>2];F[a+12>>2]=c;F[a+8>>2]=d;return F[F[F[F[b+4>>2]+8>>2]+(c<<2)>>2]+28>>2]==9|0}function Ca(a,b){if(b){Ca(a,F[b>>2]);Ca(a,F[b+4>>2]);a=F[b+28>>2];F[b+28>>2]=0;if(a){Ca(a+12|0,F[a+16>>2]);Ba(a,F[a+4>>2]);ja(a)}if(D[b+27|0]<0){ja(F[b+16>>2])}ja(b)}}function Sg(a){a=a|0;var b=0;F[a+8>>2]=9556;F[a>>2]=9392;b=F[a+56>>2];if(b){F[a+60>>2]=b;ja(b)}F[a+8>>2]=9372;b=F[a+44>>2];if(b){ja(b)}b=F[a+32>>2];if(b){ja(b)}ja(a)}function Mg(a){a=a|0;var b=0;F[a+8>>2]=8624;F[a>>2]=9684;b=F[a+56>>2];if(b){F[a+60>>2]=b;ja(b)}F[a+8>>2]=8876;b=F[a+44>>2];if(b){ja(b)}b=F[a+32>>2];if(b){ja(b)}ja(a)}function Hc(a,b){var c=0,d=0,e=0,f=0;F[a>>2]=11356;F[a>>2]=11468;c=ya(b);d=ka(c+13|0);F[d+8>>2]=0;F[d+4>>2]=c;F[d>>2]=c;e=a,f=la(d+12|0,b,c+1|0),F[e+4>>2]=f;return a}function hc(a,b,c){a:{if(b){b=0;if(!ld(1,c,a)){break a}}D[a+36|0]=1;F[a+32>>2]=0;b=F[a+16>>2];c=b+F[a>>2]|0;F[a+24>>2]=c;F[a+28>>2]=c+(F[a+8>>2]-b|0);b=1}return b}function Ue(a,b){a=a|0;b=b|0;var c=0;a:{if(!($[F[F[a>>2]+36>>2]](a,b)|0)){break a}if(!($[F[F[a>>2]+40>>2]](a,b)|0)){break a}c=$[F[F[a>>2]+44>>2]](a)|0}return c|0}function _d(a){a=a|0;var b=0;a:{if(!F[a- -64>>2]|!F[a+68>>2]|(!F[a+44>>2]|!F[a+48>>2])){break a}if(!F[a+52>>2]|!F[a+56>>2]){break a}b=F[a+92>>2]!=-1}return b|0}function ii(a,b){a=a|0;b=b|0;var c=0;b=F[b+88>>2];if(!(!b|F[b>>2]!=2)){c=a;a=F[b+8>>2];F[c+4>>2]=G[a|0]|G[a+1|0]<<8|(G[a+2|0]<<16|G[a+3|0]<<24);c=1}return c|0}function wc(a){a=a|0;var b=0;F[a>>2]=2136;b=F[a+20>>2];F[a+20>>2]=0;if(b){$[F[F[b>>2]+4>>2]](b)}F[a>>2]=1920;b=F[a+16>>2];F[a+16>>2]=0;if(b){xa(b)}return a|0}function Ud(a){a=a|0;var b=0;a:{if(!F[a+48>>2]|!F[a+52>>2]|(!F[a+28>>2]|!F[a+32>>2])){break a}if(!F[a+36>>2]|!F[a+40>>2]){break a}b=F[a+76>>2]!=-1}return b|0}function Ug(a){a=a|0;var b=0;F[a>>2]=9556;b=F[a+48>>2];if(b){F[a+52>>2]=b;ja(b)}F[a>>2]=9372;b=F[a+36>>2];if(b){ja(b)}b=F[a+24>>2];if(b){ja(b)}return a|0}function Ed(a){a=a|0;var b=0;F[a>>2]=8624;b=F[a+48>>2];if(b){F[a+52>>2]=b;ja(b)}F[a>>2]=8876;b=F[a+36>>2];if(b){ja(b)}b=F[a+24>>2];if(b){ja(b)}return a|0}function vc(a){a=a|0;var b=0;F[a>>2]=2136;b=F[a+20>>2];F[a+20>>2]=0;if(b){$[F[F[b>>2]+4>>2]](b)}F[a>>2]=1920;b=F[a+16>>2];F[a+16>>2]=0;if(b){xa(b)}ja(a)}function yg(){var a=0,b=0;b=ka(40);F[b>>2]=-1;a=b+8|0;F[a+16>>2]=0;F[a+20>>2]=0;F[a+8>>2]=0;F[a>>2]=0;F[a+4>>2]=0;F[a+24>>2]=0;F[a+28>>2]=0;return b|0}function eh(a){a=a|0;var b=0;F[a>>2]=8624;b=F[a+48>>2];if(b){F[a+52>>2]=b;ja(b)}F[a>>2]=8876;b=F[a+36>>2];if(b){ja(b)}b=F[a+24>>2];if(b){ja(b)}ja(a)}function Og(a){a=a|0;var b=0;F[a>>2]=9556;b=F[a+48>>2];if(b){F[a+52>>2]=b;ja(b)}F[a>>2]=9372;b=F[a+36>>2];if(b){ja(b)}b=F[a+24>>2];if(b){ja(b)}ja(a)}function Ja(a){F[a+8>>2]=0;F[a+12>>2]=0;F[a>>2]=0;F[a+16>>2]=0;F[a+20>>2]=0;F[a+32>>2]=0;F[a+24>>2]=0;F[a+28>>2]=0;E[a+38>>1]=0;D[a+36|0]=0;return a}function Me(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;if(La(a,F[b+8>>2],f)){Dc(b,c,d,e);return}a=F[a+8>>2];$[F[F[a>>2]+20>>2]](a,b,c,d,e,f)}function Eh(a,b,c){a=a|0;b=b|0;c=c|0;a:{if(G[F[a+4>>2]+36|0]>=2){b=0;if(!($[F[F[a>>2]+52>>2]](a)|0)){break a}}b=id(a+24|0,F[a+16>>2])}return b|0}function hg(){var a=0;a=Rc(ka(108));F[a+84>>2]=0;F[a+88>>2]=0;F[a>>2]=10240;F[a+92>>2]=0;F[a+96>>2]=0;F[a+100>>2]=0;F[a+104>>2]=0;return a|0}function Qc(a,b){var c=0;c=-1;a:{if((b|0)==-1|(b|0)>4){break a}b=L(b,12)+a|0;a=F[b+20>>2];if((F[b+24>>2]-a|0)<=0){break a}c=F[a>>2]}return c}function cc(a,b,c,d,e,f,g){F[a>>2]=0;F[a+56>>2]=b;F[a+48>>2]=0;F[a+52>>2]=0;F[a+40>>2]=f;F[a+44>>2]=g;D[a+32|0]=e;F[a+28>>2]=d;D[a+24|0]=c}function Sh(a,b,c){a=a|0;b=b|0;c=c|0;a:{if(G[F[a+4>>2]+36|0]>=2){b=0;if(!uc(a+24|0,bb(a),c)){break a}}b=id(a+24|0,F[a+16>>2])}return b|0}function _e(a){a=a|0;var b=0;F[a>>2]=10240;b=F[a+96>>2];if(b){F[a+100>>2]=b;ja(b)}b=F[a+84>>2];if(b){F[a+88>>2]=b;ja(b)}return tb(a)|0}function Tb(a){var b=0;if(G[a+11|0]>>>7|0){b=F[a+4>>2]}else{b=G[a+11|0]&127}if(!b){sc(1222);v()}if(G[a+11|0]>>>7|0){a=F[a>>2]}return a}function Ze(a){a=a|0;var b=0;F[a>>2]=10240;b=F[a+96>>2];if(b){F[a+100>>2]=b;ja(b)}b=F[a+84>>2];if(b){F[a+88>>2]=b;ja(b)}ja(tb(a))}function ce(a){a=a|0;var b=0;F[a>>2]=3264;b=F[a+76>>2];if(b){ja(b)}F[a>>2]=2960;b=F[a+32>>2];if(b){F[a+36>>2]=b;ja(b)}return a|0}function _h(a){a=a|0;var b=0;F[a>>2]=4816;b=F[a+76>>2];if(b){ja(b)}F[a>>2]=2960;b=F[a+32>>2];if(b){F[a+36>>2]=b;ja(b)}return a|0}function Ba(a,b){if(b){Ba(a,F[b>>2]);Ba(a,F[b+4>>2]);a=F[b+28>>2];if(a){F[b+32>>2]=a;ja(a)}if(D[b+27|0]<0){ja(F[b+16>>2])}ja(b)}}function Wf(){var a=0;a=ka(28);F[a>>2]=0;F[a+4>>2]=0;F[a+24>>2]=0;F[a+16>>2]=0;F[a+20>>2]=0;F[a+8>>2]=0;F[a+12>>2]=0;return a|0}function We(a){a=a|0;var b=0;F[a>>2]=1776;b=F[a+16>>2];if(b){F[a+20>>2]=b;ja(b)}b=F[a+4>>2];if(b){F[a+8>>2]=b;ja(b)}return a|0}function fg(){var a=0,b=0;a=ka(24);F[a+4>>2]=0;F[a+8>>2]=0;b=a+16|0;F[b>>2]=0;F[b+4>>2]=0;F[a>>2]=a+4;F[a+12>>2]=b;return a|0}function Pe(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;if(La(a,F[b+8>>2],0)){Ec(b,c,d);return}a=F[a+8>>2];$[F[F[a>>2]+28>>2]](a,b,c,d)}function be(a){a=a|0;var b=0;F[a>>2]=3264;b=F[a+76>>2];if(b){ja(b)}F[a>>2]=2960;b=F[a+32>>2];if(b){F[a+36>>2]=b;ja(b)}ja(a)}function Zh(a){a=a|0;var b=0;F[a>>2]=4816;b=F[a+76>>2];if(b){ja(b)}F[a>>2]=2960;b=F[a+32>>2];if(b){F[a+36>>2]=b;ja(b)}ja(a)}function ka(a){var b=0;a=a?a:1;a:{while(1){b=Ub(a);if(b){break a}b=F[3065];if(b){$[b|0]();continue}break}V();v()}return b}function ib(a,b){if(b){ib(a,F[b>>2]);ib(a,F[b+4>>2]);if(D[b+39|0]<0){ja(F[b+28>>2])}if(D[b+27|0]<0){ja(F[b+16>>2])}ja(b)}}function Cc(a){a=a|0;var b=0,c=0;F[a>>2]=11468;b=F[a+4>>2]-12|0;c=F[b+8>>2]-1|0;F[b+8>>2]=c;if((c|0)<0){ja(b)}return a|0}function ng(){var a=0;a=ka(24);F[a+8>>2]=0;F[a+12>>2]=0;F[a+4>>2]=-1;F[a>>2]=1624;F[a+16>>2]=0;F[a+20>>2]=0;return a|0}function Ac(a,b,c){a=a|0;b=b|0;c=c|0;F[a+4>>2]=b;b=F[F[F[b+4>>2]+8>>2]+(c<<2)>>2];F[a+12>>2]=c;F[a+8>>2]=b;return 1}function pc(a){a=a|0;var b=0;if(!(!F[a+60>>2]|!F[a+44>>2]|(!F[a+48>>2]|!F[a+52>>2]))){b=F[a+56>>2]!=0}return b|0}function Ic(a,b){if(G[a+11|0]>>>7|0){F[a+4>>2]=b;return}D[a+11|0]=G[a+11|0]&128|b;D[a+11|0]=G[a+11|0]&127}function gi(a){a=a|0;var b=0;F[a>>2]=3500;F[a>>2]=2960;b=F[a+32>>2];if(b){F[a+36>>2]=b;ja(b)}return a|0}function Xh(a){a=a|0;var b=0;F[a>>2]=5040;F[a>>2]=2960;b=F[a+32>>2];if(b){F[a+36>>2]=b;ja(b)}return a|0}function nf(a){a=a|0;if(a){if(D[a+39|0]<0){ja(F[a+28>>2])}$b(a+12|0,F[a+16>>2]);ib(a,F[a+4>>2]);ja(a)}}function dh(a){a=a|0;var b=0;F[a>>2]=8876;b=F[a+36>>2];if(b){ja(b)}b=F[a+24>>2];if(b){ja(b)}return a|0}function Wg(a){a=a|0;var b=0;F[a>>2]=9372;b=F[a+36>>2];if(b){ja(b)}b=F[a+24>>2];if(b){ja(b)}return a|0}function ob(a){a=a|0;var b=0;if(!(!F[a+52>>2]|(!F[a+44>>2]|!F[a+48>>2]))){b=F[a+56>>2]!=0}return b|0}function oc(a,b){a=a|0;b=b|0;var c=0;if(!(F[b+56>>2]|!b|G[b+24|0]!=3)){F[a+60>>2]=b;c=1}return c|0}function fi(a){a=a|0;var b=0;F[a>>2]=3500;F[a>>2]=2960;b=F[a+32>>2];if(b){F[a+36>>2]=b;ja(b)}ja(a)}function Wh(a){a=a|0;var b=0;F[a>>2]=5040;F[a>>2]=2960;b=F[a+32>>2];if(b){F[a+36>>2]=b;ja(b)}ja(a)}function zg(a,b,c){a=a|0;b=b|0;c=c|0;F[a+16>>2]=0;F[a+20>>2]=0;F[a>>2]=b;F[a+8>>2]=c;F[a+12>>2]=0}function ch(a){a=a|0;var b=0;F[a>>2]=8876;b=F[a+36>>2];if(b){ja(b)}b=F[a+24>>2];if(b){ja(b)}ja(a)}function Zd(a,b){a=a|0;b=b|0;var c=0;if(!(F[b+56>>2]|G[b+24|0]!=3)){F[a- -64>>2]=b;c=1}return c|0}function Vg(a){a=a|0;var b=0;F[a>>2]=9372;b=F[a+36>>2];if(b){ja(b)}b=F[a+24>>2];if(b){ja(b)}ja(a)}function Td(a,b){a=a|0;b=b|0;var c=0;if(!(F[b+56>>2]|G[b+24|0]!=3)){F[a+48>>2]=b;c=1}return c|0}function Le(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;if(La(a,F[b+8>>2],f)){Dc(b,c,d,e)}}function oa(){var a=0;a=Rb(4);F[a>>2]=11356;F[a>>2]=11316;F[a>>2]=11336;W(a|0,11448,14);v()}function je(a){a=a|0;var b=0;F[a>>2]=2960;b=F[a+32>>2];if(b){F[a+36>>2]=b;ja(b)}return a|0}function Ae(a){a=a|0;var b=0;F[a>>2]=1920;b=F[a+16>>2];F[a+16>>2]=0;if(b){xa(b)}return a|0}function Pg(a){a=a|0;var b=0;F[a>>2]=1624;b=F[a+8>>2];if(b){F[a+12>>2]=b;ja(b)}return a|0}function Ch(a){a=a|0;var b=0;b=bb(a);return qd(a+24|0,b?b:F[a+8>>2],F[F[a+4>>2]+32>>2])|0}function ze(a){a=a|0;var b=0;F[a>>2]=1920;b=F[a+16>>2];F[a+16>>2]=0;if(b){xa(b)}ja(a)}function Ob(a){a=a|0;var b=0;F[a>>2]=2960;b=F[a+32>>2];if(b){F[a+36>>2]=b;ja(b)}ja(a)}function Hg(a){a=a|0;var b=0;F[a>>2]=1624;b=F[a+8>>2];if(b){F[a+12>>2]=b;ja(b)}ja(a)}function oe(a,b){a=a|0;b=b|0;return $[F[F[a>>2]+48>>2]](a,F[b+4>>2]-F[b>>2]>>2)|0}function $b(a,b){if(b){$b(a,F[b>>2]);$b(a,F[b+4>>2]);ib(b+20|0,F[b+24>>2]);ja(b)}}function xg(a){a=a|0;var b=0;if(a){b=F[a+8>>2];if(b){F[a+12>>2]=b;ja(b)}ja(a)}}function xh(a){a=a|0;if(!F[a+44>>2]){return 0}return $[F[F[a>>2]+48>>2]](a)|0}function ni(a){var b=0;while(1){if(a){a=a-1&a;b=b+1|0;continue}break}return b}function Qe(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;if(La(a,F[b+8>>2],0)){Ec(b,c,d)}}function vh(a,b){a=a|0;b=b|0;a=F[a+48>>2];return $[F[F[a>>2]+20>>2]](a,b)|0}function oi(a){var b=0;b=a&31;a=0-a&31;return(-1>>>b&-2)<>>a} function oh(a,b){a=a|0;b=b|0;a=F[a+48>>2];return $[F[F[a>>2]+12>>2]](a,b)|0}function nh(a,b){a=a|0;b=b|0;a=F[a+48>>2];return $[F[F[a>>2]+16>>2]](a,b)|0}function Xa(){var a=0;a=ka(12);F[a>>2]=0;F[a+4>>2]=0;F[a+8>>2]=0;return a|0}function Wa(a){a=a|0;var b=0;if(a){b=F[a>>2];if(b){F[a+4>>2]=b;ja(b)}ja(a)}}function mf(a,b,c){a=a|0;b=b|0;c=c|0;F[a+32>>2]=c;F[a+28>>2]=b;return 1}function eg(a){a=a|0;if(a){Ca(a+12|0,F[a+16>>2]);Ba(a,F[a+4>>2]);ja(a)}}function Lb(a,b){a=a|0;b=b|0;if(b>>>0<=1){F[a+28>>2]=b}return b>>>0<2|0}function Fg(a,b){a=a|0;b=b|0;D[b+84|0]=1;F[b+72>>2]=F[b+68>>2];return 1}function kg(){var a=0;a=ka(8);F[a+4>>2]=-1;F[a>>2]=1032;return a|0}function Hf(a,b,c){a=a|0;b=b|0;c=c|0;return F[F[b+8>>2]+(c<<2)>>2]}function th(a){a=a|0;a=F[a+48>>2];return $[F[F[a>>2]+24>>2]](a)|0}function sh(a){a=a|0;a=F[a+48>>2];return $[F[F[a>>2]+28>>2]](a)|0}function ph(a){a=a|0;a=F[a+48>>2];return $[F[F[a>>2]+36>>2]](a)|0}function Rh(a,b){a=a|0;b=b|0;return zc(a+24|0,bb(a),F[a+8>>2])|0}function Bh(a,b){a=a|0;b=b|0;return xd(a+24|0,bb(a),F[a+8>>2])|0}function bg(a){a=a|0;if(a){if(D[a+15|0]<0){ja(F[a+4>>2])}ja(a)}}function Ke(a){a=a|0;if(!a){return 0}return(Fc(a,11164)|0)!=0|0}function Fe(a,b){a=a|0;b=b|0;F[a+12>>2]=-1;F[a+8>>2]=b;return 1}function hd(a,b){a=a|0;b=b|0;return $[F[F[a>>2]+12>>2]](a,b)|0}function Dh(a,b){a=a|0;b=b|0;return $[F[F[a>>2]+56>>2]](a,b)|0}function sc(a){a=Hc(Rb(8),a);F[a>>2]=11568;W(a|0,11600,1);v()}function mg(a,b){a=a|0;b=b|0;return M(J[F[a+8>>2]+(b<<2)>>2])}function Rd(a){a=Hc(Rb(8),a);F[a>>2]=11516;W(a|0,11548,1);v()}function $f(a,b){a=a|0;b=b|0;return M(J[F[a>>2]+(b<<2)>>2])}function gg(a){a=a|0;return(F[a+100>>2]-F[a+96>>2]|0)/12|0}function cg(a){a=a|0;return(D[a+15|0]<0?F[a+4>>2]:a+4|0)|0}function Re(a,b){a=a|0;b=b|0;return F[F[a+4>>2]+(b<<2)>>2]}function dd(a,b){a=a|0;b=b|0;return F[F[a>>2]+(b<<2)>>2]}function Yf(a,b){a=a|0;b=b|0;return E[F[a>>2]+(b<<1)>>1]}function Xf(a,b){a=a|0;b=b|0;return H[F[a>>2]+(b<<1)>>1]}function Vd(a,b,c){a=a|0;b=b|0;c=c|0;return xc(a,b,c)|0}function sb(a,b){var c=0;c=ka(b);F[a+4>>2]=b;F[a>>2]=c}function Kf(a,b,c){a=a|0;b=b|0;c=c|0;return Qc(b,c)|0}function Rc(a){F[a>>2]=10300;ma(a+4|0,0,80);return a}function ji(a){if(a){return 31-O(a-1^a)|0}return 32}function gd(a){a=a|0;return F[a+12>>2]-F[a+8>>2]>>2}function _f(a,b){a=a|0;b=b|0;return D[F[a>>2]+b|0]}function Zf(a,b){a=a|0;b=b|0;return G[F[a>>2]+b|0]}function Ie(a){a=a|0;return F[a+8>>2]-F[a+4>>2]>>2}function wb(a){a=a|0;if(a){$[F[F[a>>2]+4>>2]](a)}}function Jd(a,b){a=a|0;b=b|0;F[a+4>>2]=b;return 1}function ed(a){a=a|0;return F[a+4>>2]-F[a>>2]>>1}function dc(a){a=a|0;return F[a+4>>2]-F[a>>2]>>2}function fd(a){a=a|0;return F[a+4>>2]-F[a>>2]|0}function ke(a){a=a|0;return G[F[a+8>>2]+24|0]}function Qf(a,b){a=a|0;b=b|0;return F[b+8>>2]}function Ff(a,b){a=a|0;b=b|0;return F[b+4>>2]}function De(a,b,c){a=a|0;b=b|0;c=c|0;return 1}function Bg(a,b){a=a|0;b=b|0;return G[b+24|0]}function Oh(a){a=a|0;F[a>>2]=5928;return a|0}function Jh(a){a=a|0;F[a>>2]=6932;return a|0}function lg(a){a=a|0;return M(J[a+20>>2])}function Nh(a){a=a|0;F[a>>2]=5928;ja(a)}function Ih(a){a=a|0;F[a>>2]=6932;ja(a)}function ug(a){a=a|0;return F[a+88>>2]}function tg(a){a=a|0;return F[a+56>>2]}function qg(a){a=a|0;return F[a+40>>2]}function pg(a){a=a|0;return F[a+48>>2]}function og(a){a=a|0;return F[a+60>>2]}function ec(a){a=a|0;return F[a+80>>2]}function cb(a){a=a|0;return F[a+28>>2]}function vd(a){a=a|0;return F[a+8>>2]}function tc(a,b){a=a|0;b=b|0;return-1}function sg(a){a=a|0;return D[a+24|0]}function rg(a){a=a|0;return G[a+32|0]}function dg(a){a=a|0;return!F[a>>2]|0}function Wd(a,b){a=a|0;b=b|0;return 6}function Va(a){a=a|0;return F[a+4>>2]}function Rb(a){return Ub(a+80|0)+80|0}function Qh(a,b){a=a|0;b=b|0;return 2}function Ia(a,b){a=a|0;b=b|0;return 0}function Bc(a,b){a=a|0;b=b|0;return 1}function jd(a){a=a|0;return F[a>>2]}function wg(){return kb(ka(64))|0}function ig(){return Rc(ka(84))|0}function fc(a){a=a|0;if(a){ja(a)}}function Ag(){return Ja(ka(40))|0}function Qb(a){a=a|0;Cc(a);ja(a)}function Je(a){a=a|0;return 1161}function He(a){a=a|0;return 1235}function Ge(a){a=a|0;return 1201}function Pa(a){a=a|0;return a|0}function hh(a){a=a|0;ja(ud(a))}function gh(a){a=a|0;ja(sd(a))}function Ve(a){a=a|0;ja(tb(a))}function ua(a){a=a|0;return 1}function rc(a){a=a|0;return 4}function qc(a){a=a|0;return 5}function Xd(a){a=a|0;return 2}function Ua(a){a=a|0;return 0}function Nb(a){a=a|0;return 6}function Mh(a){a=a|0;return 3}function za(){Rd(1222);v()}function ta(){sc(1154);v()}function na(){Rd(1154);v()}function Ha(a){a=a|0;ja(a)}function Ra(a){a=a|0;v()}function ff(){return 10}function ef(){return 11}function df(){return 12}function vb(){return-1}function ub(){return 1}function lf(){return 5}function kf(){return 6}function jf(){return 7}function jb(){return 0}function hf(){return 8}function gf(){return 9}function cf(){return-2}function bf(){return-3}function bd(){return 3}function af(){return-4}function ad(){return 4}function _b(){return 2}function $e(){return-5}function Te(){V();v()}function Jc(a){a=a|0}function ae(){} // EMSCRIPTEN_END_FUNCS e=G;p(q);var $=c([null,Cc,Pa,Ha,Xd,ii,jh,ag,zc,xe,uc,jg,Wd,Qh,Pa,Pg,Hg,ua,yh,mh,kh,xd,fh,qd,Wd,Bg,We,Ra,mf,$c,Ue,Re,Ie,cb,Ia,Te,Bc,ua,Ae,ze,Ac,Fe,Ee,De,Bc,Ce,Be,re,qe,ye,we,pe,ve,ue,te,se,wc,vc,Ac,oe,ne,xc,me,ke,le,je,Ob,ua,Va,ob,Ua,tc,Ia,Ua,ua,ie,he,Ra,Ra,ge,fe,rc,ob,ee,de,ce,be,qc,pc,ua,Ia,oc,$d,hi,gi,fi,Nb,_d,ua,Ia,Zd,Yd,ei,Pa,Ha,Lb,cb,Mb,Ra,Ob,ua,ob,di,Ra,ci,bi,rc,ob,ai,$h,_h,Zh,qc,pc,ua,Ia,oc,$d,Yh,Xh,Wh,Nb,_d,ua,Ia,Zd,Yd,Vh,Pa,Ha,Lb,cb,Kb,Ra,Ob,Ua,ua,Uh,wc,vc,Th,Sh,Vd,Ph,Xd,Rh,Oh,Nh,Nb,Va,Ud,ua,Ia,Td,ua,Mh,Sd,Lh,Pa,Ha,Lb,cb,Mb,Jh,Ih,Nb,Ud,ua,Ia,Td,Sd,Hh,Pa,Ha,Lb,cb,Kb,Pa,Ha,Ua,ua,Ua,tc,Ia,Kh,Gh,Ah,zh,Fh,Eh,Vd,Dh,Ch,Bh,wh,Ra,ua,ua,xh,Dg,Cg,ua,Ua,Ia,Ia,rh,qh,uh,vh,sh,ph,oh,nh,th,ud,hh,Jd,Id,Hd,Gd,lh,ua,Va,vd,sd,gh,Jd,Id,Hd,Gd,ih,ua,Va,vd,Ed,eh,Fd,dh,ch,$g,_g,Zg,Yg,ah,Xg,bh,Wg,Vg,Tg,Sg,Rg,Qg,Ug,Og,Ng,Mg,Lg,Kg,Gg,Ig,Jg,Pa,Ha,Fg,Eg,Ra,Ua,ua,_e,Ze,Ye,Xe,tb,Ve,Oc,Nc,Pa,Ha,Jc,Jc,Se,Le,Ne,Qe,Ha,Me,Oe,Pe,Ha,He,Ha,Ge,Ha,Je,Qb,Va,Qb,Qb]);function aa(){return C.byteLength/65536|0}function fa(ga){ga=ga|0;var ba=aa()|0;var ca=ba+ga|0;if(ba=endIdx))++endPtr;if(endPtr-idx>16&&heapOrArray.buffer&&UTF8Decoder){return UTF8Decoder.decode(heapOrArray.subarray(idx,endPtr))}var str="";while(idx>10,56320|ch&1023)}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&c<=57343){len+=4;++i}else{len+=3}}return len}var HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateMemoryViews(){var b=wasmMemory.buffer;Module["HEAP8"]=HEAP8=new Int8Array(b);Module["HEAP16"]=HEAP16=new Int16Array(b);Module["HEAP32"]=HEAP32=new Int32Array(b);Module["HEAPU8"]=HEAPU8=new Uint8Array(b);Module["HEAPU16"]=HEAPU16=new Uint16Array(b);Module["HEAPU32"]=HEAPU32=new Uint32Array(b);Module["HEAPF32"]=HEAPF32=new Float32Array(b);Module["HEAPF64"]=HEAPF64=new Float64Array(b)}var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||16777216;assert(INITIAL_MEMORY>=65536,"INITIAL_MEMORY should be larger than STACK_SIZE, was "+INITIAL_MEMORY+"! (STACK_SIZE="+65536+")");if(Module["wasmMemory"]){wasmMemory=Module["wasmMemory"]}else{wasmMemory=new WebAssembly.Memory({"initial":INITIAL_MEMORY/65536,"maximum":2147483648/65536})}updateMemoryViews();INITIAL_MEMORY=wasmMemory.buffer.byteLength;var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;function keepRuntimeAlive(){return noExitRuntime}function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function addRunDependency(id){runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}function abort(what){if(Module["onAbort"]){Module["onAbort"](what)}what="Aborted("+what+")";err(what);ABORT=true;EXITSTATUS=1;what+=". Build with -sASSERTIONS for more info.";var e=new WebAssembly.RuntimeError(what);readyPromiseReject(e);throw e}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith("file://")}var wasmBinaryFile;wasmBinaryFile="draco_decoder_gltf.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}var binary=tryParseAsDataURI(file);if(binary){return binary}if(readBinary){return readBinary(file)}throw"both async and sync fetching of the wasm failed"}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch=="function"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={"a":wasmImports};function receiveInstance(instance,module){var exports=instance.exports;Module["asm"]=exports;wasmTable=Module["asm"]["g"];addOnInit(Module["asm"]["f"]);removeRunDependency("wasm-instantiate")}addRunDependency("wasm-instantiate");function receiveInstantiationResult(result){receiveInstance(result["instance"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(function(instance){return instance}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming=="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&!ENVIRONMENT_IS_NODE&&typeof fetch=="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);readyPromiseReject(e)}}instantiateAsync().catch(readyPromiseReject);return{}}function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){callbacks.shift()(Module)}}function intArrayToString(array){var ret=[];for(var i=0;i255){chr&=255}ret.push(String.fromCharCode(chr))}return ret.join("")}function ExceptionInfo(excPtr){this.excPtr=excPtr;this.ptr=excPtr-24;this.set_type=function(type){HEAPU32[this.ptr+4>>2]=type};this.get_type=function(){return HEAPU32[this.ptr+4>>2]};this.set_destructor=function(destructor){HEAPU32[this.ptr+8>>2]=destructor};this.get_destructor=function(){return HEAPU32[this.ptr+8>>2]};this.set_refcount=function(refcount){HEAP32[this.ptr>>2]=refcount};this.set_caught=function(caught){caught=caught?1:0;HEAP8[this.ptr+12>>0]=caught};this.get_caught=function(){return HEAP8[this.ptr+12>>0]!=0};this.set_rethrown=function(rethrown){rethrown=rethrown?1:0;HEAP8[this.ptr+13>>0]=rethrown};this.get_rethrown=function(){return HEAP8[this.ptr+13>>0]!=0};this.init=function(type,destructor){this.set_adjusted_ptr(0);this.set_type(type);this.set_destructor(destructor);this.set_refcount(0);this.set_caught(false);this.set_rethrown(false)};this.add_ref=function(){var value=HEAP32[this.ptr>>2];HEAP32[this.ptr>>2]=value+1};this.release_ref=function(){var prev=HEAP32[this.ptr>>2];HEAP32[this.ptr>>2]=prev-1;return prev===1};this.set_adjusted_ptr=function(adjustedPtr){HEAPU32[this.ptr+16>>2]=adjustedPtr};this.get_adjusted_ptr=function(){return HEAPU32[this.ptr+16>>2]};this.get_exception_ptr=function(){var isPointer=___cxa_is_pointer_type(this.get_type());if(isPointer){return HEAPU32[this.excPtr>>2]}var adjusted=this.get_adjusted_ptr();if(adjusted!==0)return adjusted;return this.excPtr}}var exceptionLast=0;var uncaughtExceptionCount=0;function ___cxa_throw(ptr,type,destructor){var info=new ExceptionInfo(ptr);info.init(type,destructor);exceptionLast=ptr;uncaughtExceptionCount++;throw ptr}function _abort(){abort("")}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function getHeapMax(){return 2147483648}function emscripten_realloc_buffer(size){var b=wasmMemory.buffer;try{wasmMemory.grow(size-b.byteLength+65535>>>16);updateMemoryViews();return 1}catch(e){}}function _emscripten_resize_heap(requestedSize){var oldSize=HEAPU8.length;requestedSize=requestedSize>>>0;var maxHeapSize=getHeapMax();if(requestedSize>maxHeapSize){return false}let alignUp=(x,multiple)=>x+(multiple-x%multiple)%multiple;for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignUp(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=emscripten_realloc_buffer(newSize);if(replacement){return true}}return false}function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var decodeBase64=typeof atob=="function"?atob:function(input){var keyStr="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";var output="";var chr1,chr2,chr3;var enc1,enc2,enc3,enc4;var i=0;input=input.replace(/[^A-Za-z0-9\+\/\=]/g,"");do{enc1=keyStr.indexOf(input.charAt(i++));enc2=keyStr.indexOf(input.charAt(i++));enc3=keyStr.indexOf(input.charAt(i++));enc4=keyStr.indexOf(input.charAt(i++));chr1=enc1<<2|enc2>>4;chr2=(enc2&15)<<4|enc3>>2;chr3=(enc3&3)<<6|enc4;output=output+String.fromCharCode(chr1);if(enc3!==64){output=output+String.fromCharCode(chr2)}if(enc4!==64){output=output+String.fromCharCode(chr3)}}while(i0){return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();readyPromiseResolve(Module);if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}run();function WrapperObject(){}WrapperObject.prototype=Object.create(WrapperObject.prototype);WrapperObject.prototype.constructor=WrapperObject;WrapperObject.prototype.__class__=WrapperObject;WrapperObject.__cache__={};Module["WrapperObject"]=WrapperObject;function getCache(__class__){return(__class__||WrapperObject).__cache__}Module["getCache"]=getCache;function wrapPointer(ptr,__class__){var cache=getCache(__class__);var ret=cache[ptr];if(ret)return ret;ret=Object.create((__class__||WrapperObject).prototype);ret.ptr=ptr;return cache[ptr]=ret}Module["wrapPointer"]=wrapPointer;function castObject(obj,__class__){return wrapPointer(obj.ptr,__class__)}Module["castObject"]=castObject;Module["NULL"]=wrapPointer(0);function destroy(obj){if(!obj["__destroy__"])throw"Error: Cannot destroy object. (Did you create it yourself?)";obj["__destroy__"]();delete getCache(obj.__class__)[obj.ptr]}Module["destroy"]=destroy;function compare(obj1,obj2){return obj1.ptr===obj2.ptr}Module["compare"]=compare;function getPointer(obj){return obj.ptr}Module["getPointer"]=getPointer;function getClass(obj){return obj.__class__}Module["getClass"]=getClass;var ensureCache={buffer:0,size:0,pos:0,temps:[],needed:0,prepare:function(){if(ensureCache.needed){for(var i=0;i=ensureCache.size){assert(len>0);ensureCache.needed+=len;ret=Module["_malloc"](len);ensureCache.temps.push(ret)}else{ret=ensureCache.buffer+ensureCache.pos;ensureCache.pos+=len}return ret},copy:function(array,view,offset){offset>>>=0;var bytes=view.BYTES_PER_ELEMENT;switch(bytes){case 2:offset>>>=1;break;case 4:offset>>>=2;break;case 8:offset>>>=3;break}for(var i=0;i3)return false;if(version[0]==1&&version[1]>=0&&version[1]<=3)return true;if(version[0]!=0||version[1]>10)return false;return true}Module["isVersionSupported"]=isVersionSupported;var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}Module["arguments"]=[];Module["thisProgram"]="./this.program";Module["quit"]=(function(status,toThrow){throw toThrow});Module["preRun"]=[];Module["postRun"]=[];var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;if(Module["ENVIRONMENT"]){if(Module["ENVIRONMENT"]==="WEB"){ENVIRONMENT_IS_WEB=true}else if(Module["ENVIRONMENT"]==="WORKER"){ENVIRONMENT_IS_WORKER=true}else if(Module["ENVIRONMENT"]==="NODE"){ENVIRONMENT_IS_NODE=true}else if(Module["ENVIRONMENT"]==="SHELL"){ENVIRONMENT_IS_SHELL=true}else{throw new Error("Module['ENVIRONMENT'] value is not valid. must be one of: WEB|WORKER|NODE|SHELL.")}}else{ENVIRONMENT_IS_WEB=typeof window==="object";ENVIRONMENT_IS_WORKER=typeof importScripts==="function";ENVIRONMENT_IS_NODE=typeof process==="object"&&typeof require==="function"&&!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_WORKER;ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER}if(ENVIRONMENT_IS_NODE){var nodeFS;var nodePath;Module["read"]=function shell_read(filename,binary){var ret;ret=tryParseAsDataURI(filename);if(!ret){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);ret=nodeFS["readFileSync"](filename)}return binary?ret:ret.toString()};Module["readBinary"]=function readBinary(filename){var ret=Module["read"](filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};if(process["argv"].length>1){Module["thisProgram"]=process["argv"][1].replace(/\\/g,"/")}Module["arguments"]=process["argv"].slice(2);process["on"]("uncaughtException",(function(ex){if(!(ex instanceof ExitStatus)){throw ex}}));process["on"]("unhandledRejection",(function(reason,p){process["exit"](1)}));Module["inspect"]=(function(){return"[Emscripten Module object]"})}else if(ENVIRONMENT_IS_SHELL){if(typeof read!="undefined"){Module["read"]=function shell_read(f){var data=tryParseAsDataURI(f);if(data){return intArrayToString(data)}return read(f)}}Module["readBinary"]=function readBinary(f){var data;data=tryParseAsDataURI(f);if(data){return data}if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(f))}data=read(f,"binary");assert(typeof data==="object");return data};if(typeof scriptArgs!="undefined"){Module["arguments"]=scriptArgs}else if(typeof arguments!="undefined"){Module["arguments"]=arguments}if(typeof quit==="function"){Module["quit"]=(function(status,toThrow){quit(status)})}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){Module["read"]=function shell_read(url){try{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText}catch(err){var data=tryParseAsDataURI(url);if(data){return intArrayToString(data)}throw err}};if(ENVIRONMENT_IS_WORKER){Module["readBinary"]=function readBinary(url){try{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}catch(err){var data=tryParseAsDataURI(url);if(data){return data}throw err}}}Module["readAsync"]=function readAsync(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function xhr_onload(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}var data=tryParseAsDataURI(url);if(data){onload(data.buffer);return}onerror()};xhr.onerror=onerror;xhr.send(null)};Module["setWindowTitle"]=(function(title){document.title=title})}Module["print"]=typeof console!=="undefined"?console.log.bind(console):typeof print!=="undefined"?print:null;Module["printErr"]=typeof printErr!=="undefined"?printErr:typeof console!=="undefined"&&console.warn.bind(console)||Module["print"];Module.print=Module["print"];Module.printErr=Module["printErr"];for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=undefined;var STACK_ALIGN=16;function staticAlloc(size){assert(!staticSealed);var ret=STATICTOP;STATICTOP=STATICTOP+size+15&-16;return ret}function dynamicAlloc(size){assert(DYNAMICTOP_PTR);var ret=HEAP32[DYNAMICTOP_PTR>>2];var end=ret+size+15&-16;HEAP32[DYNAMICTOP_PTR>>2]=end;if(end>=TOTAL_MEMORY){var success=enlargeMemory();if(!success){HEAP32[DYNAMICTOP_PTR>>2]=ret;return 0}}return ret}function alignMemory(size,factor){if(!factor)factor=STACK_ALIGN;var ret=size=Math.ceil(size/factor)*factor;return ret}function getNativeTypeSize(type){switch(type){case"i1":case"i8":return 1;case"i16":return 2;case"i32":return 4;case"i64":return 8;case"float":return 4;case"double":return 8;default:{if(type[type.length-1]==="*"){return 4}else if(type[0]==="i"){var bits=parseInt(type.substr(1));assert(bits%8===0);return bits/8}else{return 0}}}}function warnOnce(text){if(!warnOnce.shown)warnOnce.shown={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;Module.printErr(text)}}var jsCallStartIndex=1;var functionPointers=new Array(0);var funcWrappers={};function dynCall(sig,ptr,args){if(args&&args.length){return Module["dynCall_"+sig].apply(null,[ptr].concat(args))}else{return Module["dynCall_"+sig].call(null,ptr)}}var GLOBAL_BASE=8;var ABORT=0;var EXITSTATUS=0;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}function getCFunc(ident){var func=Module["_"+ident];assert(func,"Cannot call unknown function "+ident+", make sure it is exported");return func}var JSfuncs={"stackSave":(function(){stackSave()}),"stackRestore":(function(){stackRestore()}),"arrayToC":(function(arr){var ret=stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}),"stringToC":(function(str){var ret=0;if(str!==null&&str!==undefined&&str!==0){var len=(str.length<<2)+1;ret=stackAlloc(len);stringToUTF8(str,ret,len)}return ret})};var toC={"string":JSfuncs["stringToC"],"array":JSfuncs["arrayToC"]};function ccall(ident,returnType,argTypes,args,opts){var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i>0]=value;break;case"i8":HEAP8[ptr>>0]=value;break;case"i16":HEAP16[ptr>>1]=value;break;case"i32":HEAP32[ptr>>2]=value;break;case"i64":tempI64=[value>>>0,(tempDouble=value,+Math_abs(tempDouble)>=+1?tempDouble>+0?(Math_min(+Math_floor(tempDouble/+4294967296),+4294967295)|0)>>>0:~~+Math_ceil((tempDouble- +(~~tempDouble>>>0))/+4294967296)>>>0:0)],HEAP32[ptr>>2]=tempI64[0],HEAP32[ptr+4>>2]=tempI64[1];break;case"float":HEAPF32[ptr>>2]=value;break;case"double":HEAPF64[ptr>>3]=value;break;default:abort("invalid type for setValue: "+type)}}var ALLOC_STATIC=2;var ALLOC_NONE=4;function allocate(slab,types,allocator,ptr){var zeroinit,size;if(typeof slab==="number"){zeroinit=true;size=slab}else{zeroinit=false;size=slab.length}var singleType=typeof types==="string"?types:null;var ret;if(allocator==ALLOC_NONE){ret=ptr}else{ret=[typeof _malloc==="function"?_malloc:staticAlloc,stackAlloc,staticAlloc,dynamicAlloc][allocator===undefined?ALLOC_STATIC:allocator](Math.max(size,singleType?1:types.length))}if(zeroinit){var stop;ptr=ret;assert((ret&3)==0);stop=ret+(size&~3);for(;ptr>2]=0}stop=ret+size;while(ptr>0]=0}return ret}if(singleType==="i8"){if(slab.subarray||slab.slice){HEAPU8.set(slab,ret)}else{HEAPU8.set(new Uint8Array(slab),ret)}return ret}var i=0,type,typeSize,previousType;while(i>0];hasUtf|=t;if(t==0&&!length)break;i++;if(length&&i==length)break}if(!length)length=i;var ret="";if(hasUtf<128){var MAX_CHUNK=1024;var curr;while(length>0){curr=String.fromCharCode.apply(String,HEAPU8.subarray(ptr,ptr+Math.min(length,MAX_CHUNK)));ret=ret?ret+curr:curr;ptr+=MAX_CHUNK;length-=MAX_CHUNK}return ret}return UTF8ToString(ptr)}var UTF8Decoder=typeof TextDecoder!=="undefined"?new TextDecoder("utf8"):undefined;function UTF8ArrayToString(u8Array,idx){var endPtr=idx;while(u8Array[endPtr])++endPtr;if(endPtr-idx>16&&u8Array.subarray&&UTF8Decoder){return UTF8Decoder.decode(u8Array.subarray(idx,endPtr))}else{var u0,u1,u2,u3,u4,u5;var str="";while(1){u0=u8Array[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}u1=u8Array[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}u2=u8Array[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u3=u8Array[idx++]&63;if((u0&248)==240){u0=(u0&7)<<18|u1<<12|u2<<6|u3}else{u4=u8Array[idx++]&63;if((u0&252)==248){u0=(u0&3)<<24|u1<<18|u2<<12|u3<<6|u4}else{u5=u8Array[idx++]&63;u0=(u0&1)<<30|u1<<24|u2<<18|u3<<12|u4<<6|u5}}}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}}}function UTF8ToString(ptr){return UTF8ArrayToString(HEAPU8,ptr)}function stringToUTF8Array(str,outU8Array,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127){if(outIdx>=endIdx)break;outU8Array[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;outU8Array[outIdx++]=192|u>>6;outU8Array[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;outU8Array[outIdx++]=224|u>>12;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}else if(u<=2097151){if(outIdx+3>=endIdx)break;outU8Array[outIdx++]=240|u>>18;outU8Array[outIdx++]=128|u>>12&63;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}else if(u<=67108863){if(outIdx+4>=endIdx)break;outU8Array[outIdx++]=248|u>>24;outU8Array[outIdx++]=128|u>>18&63;outU8Array[outIdx++]=128|u>>12&63;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}else{if(outIdx+5>=endIdx)break;outU8Array[outIdx++]=252|u>>30;outU8Array[outIdx++]=128|u>>24&63;outU8Array[outIdx++]=128|u>>18&63;outU8Array[outIdx++]=128|u>>12&63;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}}outU8Array[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127){++len}else if(u<=2047){len+=2}else if(u<=65535){len+=3}else if(u<=2097151){len+=4}else if(u<=67108863){len+=5}else{len+=6}}return len}var UTF16Decoder=typeof TextDecoder!=="undefined"?new TextDecoder("utf-16le"):undefined;function demangle(func){return func}function demangleAll(text){var regex=/__Z[\w\d_]+/g;return text.replace(regex,(function(x){var y=demangle(x);return x===y?x:x+" ["+y+"]"}))}function jsStackTrace(){var err=new Error;if(!err.stack){try{throw new Error(0)}catch(e){err=e}if(!err.stack){return"(no stack trace available)"}}return err.stack.toString()}var WASM_PAGE_SIZE=65536;var ASMJS_PAGE_SIZE=16777216;var MIN_TOTAL_MEMORY=16777216;function alignUp(x,multiple){if(x%multiple>0){x+=multiple-x%multiple}return x}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBuffer(buf){Module["buffer"]=buffer=buf}function updateGlobalBufferViews(){Module["HEAP8"]=HEAP8=new Int8Array(buffer);Module["HEAP16"]=HEAP16=new Int16Array(buffer);Module["HEAP32"]=HEAP32=new Int32Array(buffer);Module["HEAPU8"]=HEAPU8=new Uint8Array(buffer);Module["HEAPU16"]=HEAPU16=new Uint16Array(buffer);Module["HEAPU32"]=HEAPU32=new Uint32Array(buffer);Module["HEAPF32"]=HEAPF32=new Float32Array(buffer);Module["HEAPF64"]=HEAPF64=new Float64Array(buffer)}var STATIC_BASE,STATICTOP,staticSealed;var STACK_BASE,STACKTOP,STACK_MAX;var DYNAMIC_BASE,DYNAMICTOP_PTR;STATIC_BASE=STATICTOP=STACK_BASE=STACKTOP=STACK_MAX=DYNAMIC_BASE=DYNAMICTOP_PTR=0;staticSealed=false;function abortOnCannotGrowMemory(){abort("Cannot enlarge memory arrays. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value "+TOTAL_MEMORY+", (2) compile with -s ALLOW_MEMORY_GROWTH=1 which allows increasing the size at runtime but prevents some optimizations, (3) set Module.TOTAL_MEMORY to a higher value before the program runs, or (4) if you want malloc to return NULL (0) instead of this abort, compile with -s ABORTING_MALLOC=0 ")}if(!Module["reallocBuffer"])Module["reallocBuffer"]=(function(size){var ret;try{if(ArrayBuffer.transfer){ret=ArrayBuffer.transfer(buffer,size)}else{var oldHEAP8=HEAP8;ret=new ArrayBuffer(size);var temp=new Int8Array(ret);temp.set(oldHEAP8)}}catch(e){return false}var success=_emscripten_replace_memory(ret);if(!success)return false;return ret});function enlargeMemory(){var PAGE_MULTIPLE=Module["usingWasm"]?WASM_PAGE_SIZE:ASMJS_PAGE_SIZE;var LIMIT=2147483648-PAGE_MULTIPLE;if(HEAP32[DYNAMICTOP_PTR>>2]>LIMIT){return false}var OLD_TOTAL_MEMORY=TOTAL_MEMORY;TOTAL_MEMORY=Math.max(TOTAL_MEMORY,MIN_TOTAL_MEMORY);while(TOTAL_MEMORY>2]){if(TOTAL_MEMORY<=536870912){TOTAL_MEMORY=alignUp(2*TOTAL_MEMORY,PAGE_MULTIPLE)}else{TOTAL_MEMORY=Math.min(alignUp((3*TOTAL_MEMORY+2147483648)/4,PAGE_MULTIPLE),LIMIT)}}var replacement=Module["reallocBuffer"](TOTAL_MEMORY);if(!replacement||replacement.byteLength!=TOTAL_MEMORY){TOTAL_MEMORY=OLD_TOTAL_MEMORY;return false}updateGlobalBuffer(replacement);updateGlobalBufferViews();return true}var byteLength;try{byteLength=Function.prototype.call.bind(Object.getOwnPropertyDescriptor(ArrayBuffer.prototype,"byteLength").get);byteLength(new ArrayBuffer(4))}catch(e){byteLength=(function(buffer){return buffer.byteLength})}var TOTAL_STACK=Module["TOTAL_STACK"]||5242880;var TOTAL_MEMORY=Module["TOTAL_MEMORY"]||16777216;if(TOTAL_MEMORY0){var callback=callbacks.shift();if(typeof callback=="function"){callback();continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){Module["dynCall_v"](func)}else{Module["dynCall_vi"](func,callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function ensureInitRuntime(){if(runtimeInitialized)return;runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){callRuntimeCallbacks(__ATEXIT__);runtimeExited=true}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnPreMain(cb){__ATMAIN__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}var Math_abs=Math.abs;var Math_cos=Math.cos;var Math_sin=Math.sin;var Math_tan=Math.tan;var Math_acos=Math.acos;var Math_asin=Math.asin;var Math_atan=Math.atan;var Math_atan2=Math.atan2;var Math_exp=Math.exp;var Math_log=Math.log;var Math_sqrt=Math.sqrt;var Math_ceil=Math.ceil;var Math_floor=Math.floor;var Math_pow=Math.pow;var Math_imul=Math.imul;var Math_fround=Math.fround;var Math_round=Math.round;var Math_min=Math.min;var Math_max=Math.max;var Math_clz32=Math.clz32;var Math_trunc=Math.trunc;var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function addRunDependency(id){runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["preloadedImages"]={};Module["preloadedAudios"]={};var memoryInitializer=null;var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return String.prototype.startsWith?filename.startsWith(dataURIPrefix):filename.indexOf(dataURIPrefix)===0}STATIC_BASE=GLOBAL_BASE;STATICTOP=STATIC_BASE+19728;__ATINIT__.push();memoryInitializer="data:application/octet-stream;base64,HBwAAGQcAAAYAAAAAAAAAPQbAACLHAAAHBwAAKgcAAAYAAAAAAAAAPQbAADRHAAAHBwAAO0cAAAwAAAAAAAAAPQbAAAPHQAAHBwAADQdAAAwAAAAAAAAABwcAADsKQAASAAAAAAAAAAcHAAAZB0AAIAAAAAAAAAAHBwAAL0dAACQAAAAAAAAABwcAAARHgAAoAAAAAAAAAAcHAAARR4AALAAAAAAAAAA9BsAAHAeAAAcHAAAlB4AAMgAAAAAAAAA9BsAADIfAAAcHAAA0B8AAOAAAAAAAAAAHBwAAGggAACAAAAAAAAAABwcAADxIAAA4AAAAAAAAAAcHAAAiyEAAOAAAAAAAAAAHBwAAB0iAADgAAAAAAAAABwcAADDIgAA4AAAAAAAAAAcHAAAXiMAAOAAAAAAAAAAHBwAAPQjAABQAQAAAAAAAPQbAACfJAAAHBwAAEolAABoAQAAAAAAABwcAADvJQAAgAAAAAAAAAAcHAAAhSYAAGgBAAAAAAAAHBwAACwnAABoAQAAAAAAABwcAADLJwAAaAEAAAAAAAAcHAAAfigAAGgBAAAAAAAAHBwAACYpAABoAQAAAAAAABwcAADaNwAAYAAAAAAAAAAcHAAAGCoAAOgBAAAAAAAAHBwAAIkqAACQAAAAAAAAABwcAAD1KgAACAIAAAAAAAD0GwAAqysAABwcAABhLAAAIAIAAAAAAAAcHAAAES0AAOgBAAAAAAAAHBwAALItAAAgAgAAAAAAABwcAABkLgAAIAIAAAAAAAAcHAAADi8AACACAAAAAAAAHBwAAMwvAAAgAgAAAAAAABwcAAB/MAAAIAIAAAAAAAAcHAAALTEAAJACAAAAAAAA9BsAAPAxAAAcHAAAszIAAKgCAAAAAAAAHBwAAHAzAADoAQAAAAAAABwcAAAeNAAAqAIAAAAAAAAcHAAA3TQAAKgCAAAAAAAAHBwAAJQ1AACoAgAAAAAAABwcAABfNgAAqAIAAAAAAAAcHAAAHzcAAKgCAAAAAAAAHBwAAAU4AABgAAAAAAAAABwcAAAJOQAAmAMAAAAAAAAcHAAACzwAAIADAAAAAAAA9BsAACo5AAAcHAAAcjkAAFADAAAAAAAA9BsAADw6AAD0GwAAVjoAABwcAACROgAAUAMAAAAAAAAcHAAATjsAAFADAAAAAAAA9BsAAFc8AAAcHAAAhTwAAIADAAAAAAAAHBwAANg8AADIAwAAAAAAABwcAAAePQAAmAMAAAAAAAAcHAAABD0AAFADAAAAAAAA9BsAAD49AAAcHAAAFD4AAMgDAAAAAAAAHBwAADY+AADIAwAAAAAAABwcAACVPgAAAAQAAAAAAAD0GwAA5z4AAPQbAAAWSQAAHBwAAHZJAAAgBAAAAAAAABwcAAAjSQAAMAQAAAAAAAD0GwAAREkAABwcAABRSQAAEAQAAAAAAAAcHAAAWEoAAAgEAAAAAAAAHBwAAGhKAABIBAAAAAAAABwcAACdSgAAIAQAAAAAAAAcHAAAeUoAAGgEAAAAAAAAAAAAAAgAAAABAAAAAgAAAAEAAAABAAAAAQAAAAAAAAAgAAAAAwAAAAQAAAACAAAAAgAAAAIAAAD//////////wAAAAAwAAAABQAAAAYAAAABAAAAAwAAAAEAAAAEAAAABQAAAAIAAAAGAAAABwAAAAMAAAABAAAACAAAAAAAAAA4AAAABwAAAAgAAAABAAAAAwAAAAQAAAAEAAAABQAAAAIAAAAGAAAABwAAAAUAAAAJAAAACgAAAAAAAABIAAAACQAAAAoAAAADAAAACwAAAAwAAAAEAAAADQAAAAYAAAAHAAAADgAAAA8AAAAFAAAAAAAAAFAAAAALAAAADAAAAAYAAAAQAAAACAAAABEAAAASAAAABwAAABMAAAAUAAAACQAAABUAAAAWAAAACgAAAAEAAAAAAAAAYAAAAA0AAAAOAAAACAAAAAsAAAAXAAAABAAAAA0AAAAGAAAACwAAAA4AAAAPAAAACQAAAAIAAAAKAAAA/////wAAAACAAAAADwAAABAAAAABAAAADAAAAAEAAAANAAAAGAAAABkAAAAOAAAADwAAABoAAAABAAAAAAAAAHAAAAAPAAAAEQAAABAAAAAMAAAAEQAAAA0AAAAYAAAAGQAAAA4AAAAPAAAAGgAAAAEAAAAAAAAAMAEAAA8AAAASAAAAEgAAAAwAAAATAAAADQAAABgAAAAZAAAADgAAAA8AAAAaAAAAAgAAAAAAAAAgAQAADwAAABMAAAAUAAAADAAAABUAAAANAAAAGAAAABkAAAAOAAAADwAAABoAAAADAAAAAAAAAAABAAAUAAAAFQAAABYAAAAMAAAAFwAAABgAAAAbAAAAHAAAAA4AAAAPAAAAHQAAAAQAAAAAAAAA8AAAABYAAAAXAAAAGQAAAAwAAAAaAAAAGwAAAB4AAAAfAAAADgAAAA8AAAAgAAAABQAAAAAAAADQAAAAGAAAABkAAAAcAAAADAAAAB0AAAAeAAAAIQAAACIAAAAOAAAADwAAACMAAAAGAAAAAAAAALgAAAAaAAAAGwAAACQAAAAfAAAAAwAAAAAAAADgAAAADwAAABwAAAABAAAADAAAAAEAAAANAAAAGAAAABkAAAAOAAAADwAAABoAAAABAAAAAAAAABABAAAdAAAAHgAAACAAAAAMAAAAIQAAAA0AAAAYAAAAGQAAAA4AAAAPAAAAJQAAAAcAAAAAAAAAuAEAAA8AAAAfAAAAIgAAAAwAAAAjAAAADQAAABgAAAAZAAAADgAAAA8AAAAaAAAACAAAAAAAAACoAQAADwAAACAAAAAkAAAADAAAACUAAAANAAAAGAAAABkAAAAOAAAADwAAABoAAAAJAAAAAAAAAIgBAAAhAAAAIgAAACYAAAAMAAAAJwAAACgAAAAmAAAAJwAAAA4AAAAPAAAAKAAAAAoAAAAAAAAAeAEAACMAAAAkAAAAKQAAAAwAAAAqAAAAKwAAACkAAAAqAAAADgAAAA8AAAArAAAACwAAAAAAAABYAQAAJQAAACYAAAAsAAAADAAAAC0AAAAuAAAALAAAAC0AAAAOAAAADwAAAC4AAAAMAAAAAAAAAEABAAAnAAAAKAAAAC8AAAAvAAAABAAAAAAAAABoAQAADwAAACkAAAABAAAADAAAAAEAAAANAAAAGAAAABkAAAAOAAAADwAAABoAAAABAAAAAAAAAJgBAAAqAAAAKwAAADAAAAAMAAAAMQAAAA0AAAAYAAAAGQAAAA4AAAAPAAAAMAAAAA0AAAAAAAAAyAEAACwAAAAtAAAACwAAAAsAAAAXAAAABAAAADEAAAAyAAAAMwAAAA4AAAAPAAAACQAAAAUAAAAMAAAAAAAAANgBAAAuAAAALwAAADQAAAA1AAAANgAAADcAAAAyAAAAMwAAADgAAAA5AAAANAAAAA4AAAAAAAAAcAIAAC4AAAAwAAAAOgAAADUAAAA7AAAANwAAADIAAAAzAAAAOAAAADkAAAA0AAAADwAAAAAAAABgAgAALgAAADEAAAA8AAAANQAAAD0AAAA3AAAAMgAAADMAAAA4AAAAOQAAADQAAAAQAAAAAAAAAFACAAAyAAAAMwAAAD4AAAA1AAAAPwAAADcAAAAyAAAAMwAAADgAAAA5AAAANQAAABEAAAAAAAAAQAIAADQAAAA1AAAAQAAAADUAAABBAAAAQgAAADYAAAA3AAAAOAAAADkAAAA4AAAAEgAAAAAAAAAwAgAANgAAADcAAABDAAAANQAAAEQAAABFAAAAOQAAADoAAAA4AAAAOQAAADsAAAATAAAAAAAAABACAAA4AAAAOQAAAEYAAAA1AAAARwAAAEgAAAA8AAAAPQAAADgAAAA5AAAAPgAAABQAAAAAAAAA+AEAADoAAAA7AAAAPwAAAEkAAAAGAAAAAAAAAPgCAAAuAAAAPAAAAEoAAAA1AAAASwAAADcAAAAyAAAAMwAAADgAAAA5AAAANAAAABUAAAAAAAAA6AIAAC4AAAA9AAAATAAAADUAAABNAAAANwAAADIAAAAzAAAAOAAAADkAAAA0AAAAFgAAAAAAAADYAgAAPgAAAD8AAABOAAAANQAAAE8AAAA3AAAAMgAAADMAAAA4AAAAOQAAAEAAAAAXAAAAAAAAAMgCAABAAAAAQQAAAFAAAAA1AAAAUQAAAFIAAABBAAAAQgAAADgAAAA5AAAAQwAAABgAAAAAAAAAuAIAAEIAAABDAAAAUwAAADUAAABUAAAAVQAAAEQAAABFAAAAOAAAADkAAABGAAAAGQAAAAAAAACYAgAARAAAAEUAAABWAAAANQAAAFcAAABYAAAARwAAAEgAAAA4AAAAOQAAAEkAAAAaAAAAAAAAAIACAABGAAAARwAAAEoAAABZAAAABwAAAAAAAAAIAwAASAAAAEkAAAANAAAACwAAABcAAAAEAAAASwAAAFoAAABbAAAADgAAAA8AAAAJAAAAAgAAAA4AAAAAAAAAGAMAAEoAAABLAAAAXAAAAF0AAABeAAAAXwAAAGAAAABhAAAAYgAAAEwAAABNAAAAYwAAAGQAAABOAAAATwAAAGUAAAAAAAAAKAMAAEwAAABNAAAAUAAAAFEAAABSAAAAUwAAAFQAAABmAAAAZwAAAFUAAABoAAAAAQAAAAMAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAMAAAAAAAAAQAMAAE4AAABPAAAAVgAAAGkAAAAAAAAAOAMAAFAAAABRAAAAUgAAAP////8AAAAAYAMAAFMAAABUAAAAVwAAAGoAAAAAAAAAWAMAAFUAAABWAAAAVwAAAAAAAABwAwAAWAAAAFkAAABYAAAAawAAAAAAAACIAwAAWgAAAFsAAABZAAAAWgAAAFsAAABcAAAAXQAAAGwAAABtAAAAXgAAAG4AAAAAAAAAAQAAAAUAAAACAAAABQAAAAMAAAAFAAAABAAAAAAAAACYAwAAXAAAAF0AAABcAAAAAQAAAG8AAABfAAAAYAAAAGEAAABiAAAAAQAAAF8AAABjAAAAcAAAAGAAAABhAAAAAQAAAAAAAACoAwAAXAAAAF4AAABcAAAAcQAAAG8AAABfAAAAYAAAAGEAAABiAAAAYgAAAF8AAABjAAAAcAAAAGAAAABhAAAAcgAAAAAAAAC4AwAAXwAAAGAAAABjAAAAcwAAAAAAAADIAwAAXAAAAGEAAAB0AAAAAQAAAG8AAABfAAAAdQAAAGEAAABiAAAAAQAAAF8AAABjAAAAAAAAANADAABcAAAAYgAAAHQAAAB2AAAAbwAAAF8AAAB3AAAAYQAAAGIAAABkAAAAXwAAAGMAAAAAAAAA4AMAAFwAAABjAAAAdAAAAHgAAABvAAAAXwAAAHkAAABhAAAAYgAAAGUAAABfAAAAYwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAFZVVVUCAAAAAAAAAAIAAACamZmZAwAAAFZVVVUDAAAAJUmSJAMAAAAAAAAAAwAAAMhxHMcEAAAAmpmZmQQAAABGF110BAAAAFZVVVUEAAAAPLETOwQAAAAlSZIkBAAAABIREREEAAAAAAAAAAQAAADi4eHhBQAAAMhxHMcFAAAAy2sorwUAAACamZmZBQAAAIdhGIYFAAAARhdddAUAAACRhSxkBQAAAFZVVVUFAAAAexSuRwUAAAA8sRM7BQAAANtLaC8FAAAAJUmSJAUAAAASlnsaBQAAABIREREFAAAAhRBCCAUAAAAAAAAABQAAAAgffPAGAAAA4uHh4QYAAADVQR3UBgAAAMhxHMcGAAAATZHPugYAAADLayivBgAAAKVBGqQGAAAAmpmZmQYAAAD6GJyPBgAAAIdhGIYGAAAAGPQFfQYAAABGF110BgAAAG3BFmwGAAAAkYUsZAYAAAC6gphcBgAAAFZVVVUGAAAAcwpeTgYAAAB7FK5HBgAAAEJBQUEGAAAAPLETOwYAAACzzyE1BgAAANtLaC8GAAAAnxLkKQYAAAAlSZIkBgAAAN1HcB8GAAAAEpZ7GgYAAAD45bEVBgAAABIREREGAAAA/BSXDAYAAACFEEIIBgAAAAVBEAQGAAAAAAAAAAYAAAD5gR/4BwAAAAgffPAHAAAAwBoT6QcAAADi4eHhBwAAAGwH5toHAAAA1UEd1AcAAACRaIXNBwAAAMhxHMcHAAAAOXDgwAcAAABNkc+6BwAAAE8b6LQHAAAAy2sorwcAAAAH9o6pBwAAAKVBGqQHAAAAUunIngcAAACamZmZBwAAAM4Pi5QHAAAA+hicjwcAAAD3kMuKBwAAAIdhGIYHAAAAgoGBgQcAAAAY9AV9BwAAABjIpHgHAAAARhdddAcAAADBBS5wBwAAAG3BFmwHAAAAaYEWaAcAAACRhSxkBwAAAAYWWGAHAAAAuoKYXAcAAAAJI+1YBwAAAFZVVVUHAAAAr37QUQcAAABzCl5OBwAAAAZq/UoHAAAAexSuRwcAAABXhm9EBwAAAEJBQUEHAAAAz8siPgcAAAA8sRM7BwAAADmBEzgHAAAAs88hNQcAAACjND4yBwAAANtLaC8HAAAA2bSfLAcAAACfEuQpBwAAAIkLNScHAAAAJUmSJAcAAAATePshBwAAAN1HcB8HAAAA22rwHAcAAAASlnsaBwAAABmBERgHAAAA+OWxFQcAAAAUgVwTBwAAABIREREHAAAAv1bPDgcAAAD8FJcMBwAAAKcQaAoHAAAAhRBCCAcAAAAw3SQGBwAAAAVBEAQHAAAAEQgEAgcAAAAAAAAABwAAACDwB/wIAAAA+YEf+AgAAADlWUb0CAAAAAgffPAIAAAAMXvA7AgAAADAGhPpCAAAAJGsc+UIAAAA4uHh4QgAAABAbl3eCAAAAGwH5toIAAAATGV71wgAAADVQR3UCAAAAPdYy9AIAAAAkWiFzQgAAABWMEvKCAAAAMhxHMcIAAAAHfD4wwgAAAA5cODACAAAAJq40r0IAAAATZHPuggAAADew9a3CAAAAE8b6LQIAAAAB2QDsggAAADLayivCAAAAK0BV6wIAAAAB/aOqQgAAABuGtCmCAAAAKVBGqQIAAAAmD9toQgAAABS6cieCAAAAO8ULZwIAAAAmpmZmQgAAACBTw6XCAAAAM4Pi5QIAAAAnrQPkggAAAD6GJyPCAAAANQYMI0IAAAA95DLiggAAAALX26ICAAAAIdhGIYIAAAArHfJgwgAAACCgYGBCAAAANFfQH8IAAAAGPQFfQgAAACPINJ6CAAAABjIpHgIAAAARM59dggAAABGF110CAAAAPWHQnIIAAAAwQUucAgAAAC1dh9uCAAAAG3BFmwIAAAAFs0TaggAAABpgRZoCAAAAKbGHmYIAAAAkYUsZAgAAABxpz9iCAAAAAYWWGAIAAAAjrt1XggAAAC6gphcCAAAALFWwFoIAAAACSPtWAgAAADG0x5XCAAAAFZVVVUIAAAAkJSQUwgAAACvftBRCAAAAFEBFVAIAAAAcwpeTggAAABziKtMCAAAAAZq/UoIAAAAPJ5TSQgAAAB7FK5HCAAAAIC8DEYIAAAAV4ZvRAgAAABeYtZCCAAAAEJBQUEIAAAA/BOwPwgAAADPyyI+CAAAAEhamTwIAAAAPLETOwgAAADCwpE5CAAAADmBEzgIAAAAPt+YNggAAACzzyE1CAAAALZFrjMIAAAAozQ+MggAAAAUkNEwCAAAANtLaC8IAAAABVwCLggAAADZtJ8sCAAAANFKQCsIAAAAnxLkKQgAAAApAYsoCAAAAIkLNScIAAAACSfiJQgAAAAlSZIkCAAAAIpnRSMIAAAAE3j7IQgAAADHcLQgCAAAAN1HcB8IAAAAtPMuHggAAADbavAcCAAAAAWktBsIAAAAEpZ7GggAAAAJOEUZCAAAABmBERgIAAAAlWjgFggAAAD45bEVCAAAAOHwhRQIAAAAFIFcEwgAAAB2jjUSCAAAABIREREIAAAAEAHvDwgAAAC/Vs8OCAAAAIkKsg0IAAAA/BSXDAgAAADDbn4LCAAAAKcQaAoIAAAAkfNTCQgAAACFEEIICAAAAKVgMgcIAAAAMN0kBggAAAB+fxkFCAAAAAVBEAQIAAAAUhsJAwgAAAARCAQCCAAAAAIBAQEIAAAA/////wAAAADwAwAAZAAAAGUAAAAIAAAAAwAAAHoAAABmAAAACQAAAP////8AAAAAAAQAAGcAAABoAAAACgAAAAQAAAB6AAAAZgAAAAsAAAD/////VBgAAAUAAAAAAAAAAAAAAHsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8AAAAQAAAACE0AAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAP//////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANxMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAABkAAAA6AMAABAnAACghgEAQEIPAICWmAAA4fUFX3CJAP8JLw8AAAAAAgAAAAMAAAAFAAAABwAAAAsAAAANAAAAEQAAABMAAAAXAAAAHQAAAB8AAAAlAAAAKQAAACsAAAAvAAAANQAAADsAAAA9AAAAQwAAAEcAAABJAAAATwAAAFMAAABZAAAAYQAAAGUAAABnAAAAawAAAG0AAABxAAAAfwAAAIMAAACJAAAAiwAAAJUAAACXAAAAnQAAAKMAAACnAAAArQAAALMAAAC1AAAAvwAAAMEAAADFAAAAxwAAANMAAAABAAAACwAAAA0AAAARAAAAEwAAABcAAAAdAAAAHwAAACUAAAApAAAAKwAAAC8AAAA1AAAAOwAAAD0AAABDAAAARwAAAEkAAABPAAAAUwAAAFkAAABhAAAAZQAAAGcAAABrAAAAbQAAAHEAAAB5AAAAfwAAAIMAAACJAAAAiwAAAI8AAACVAAAAlwAAAJ0AAACjAAAApwAAAKkAAACtAAAAswAAALUAAAC7AAAAvwAAAMEAAADFAAAAxwAAANEAAAACAAAAAAAAABAEAABpAAAAagAAAGsAAABsAAAAEgAAAAEAAAABAAAAAQAAAAAAAAA4BAAAaQAAAG0AAABrAAAAbAAAABIAAAACAAAAAgAAAAIAAAAAAAAASAQAAG4AAABvAAAAfAAAAAAAAABYBAAAbgAAAHAAAAB8AAAATjVkcmFjbzI4QXR0cmlidXRlT2N0YWhlZHJvblRyYW5zZm9ybUUATjVkcmFjbzE4QXR0cmlidXRlVHJhbnNmb3JtRQBONWRyYWNvMzBBdHRyaWJ1dGVRdWFudGl6YXRpb25UcmFuc2Zvcm1FAE41ZHJhY28xN0F0dHJpYnV0ZXNFbmNvZGVyRQBONWRyYWNvMjNLZFRyZWVBdHRyaWJ1dGVzRW5jb2RlckUATjVkcmFjbzI2U2VxdWVudGlhbEF0dHJpYnV0ZUVuY29kZXJFAE41ZHJhY28zN1NlcXVlbnRpYWxBdHRyaWJ1dGVFbmNvZGVyc0NvbnRyb2xsZXJFAE41ZHJhY28yOFByZWRpY3Rpb25TY2hlbWVEZWx0YUVuY29kZXJJaU5TXzM3UHJlZGljdGlvblNjaGVtZVdyYXBFbmNvZGluZ1RyYW5zZm9ybUlpaUVFRUUATjVkcmFjbzIzUHJlZGljdGlvblNjaGVtZUVuY29kZXJJaU5TXzM3UHJlZGljdGlvblNjaGVtZVdyYXBFbmNvZGluZ1RyYW5zZm9ybUlpaUVFRUUATjVkcmFjbzM3UHJlZGljdGlvblNjaGVtZVR5cGVkRW5jb2RlckludGVyZmFjZUlpaUVFAE41ZHJhY28zMlByZWRpY3Rpb25TY2hlbWVFbmNvZGVySW50ZXJmYWNlRQBONWRyYWNvMjVQcmVkaWN0aW9uU2NoZW1lSW50ZXJmYWNlRQBONWRyYWNvNDhNZXNoUHJlZGljdGlvblNjaGVtZUdlb21ldHJpY05vcm1hbFByZWRpY3RvckFyZWFJaU5TXzM3UHJlZGljdGlvblNjaGVtZVdyYXBFbmNvZGluZ1RyYW5zZm9ybUlpaUVFTlNfMjRNZXNoUHJlZGljdGlvblNjaGVtZURhdGFJTlNfMTFDb3JuZXJUYWJsZUVFRUVFAE41ZHJhY280OE1lc2hQcmVkaWN0aW9uU2NoZW1lR2VvbWV0cmljTm9ybWFsUHJlZGljdG9yQmFzZUlpTlNfMzdQcmVkaWN0aW9uU2NoZW1lV3JhcEVuY29kaW5nVHJhbnNmb3JtSWlpRUVOU18yNE1lc2hQcmVkaWN0aW9uU2NoZW1lRGF0YUlOU18xMUNvcm5lclRhYmxlRUVFRUUATjVkcmFjbzQyTWVzaFByZWRpY3Rpb25TY2hlbWVHZW9tZXRyaWNOb3JtYWxFbmNvZGVySWlOU18zN1ByZWRpY3Rpb25TY2hlbWVXcmFwRW5jb2RpbmdUcmFuc2Zvcm1JaWlFRU5TXzI0TWVzaFByZWRpY3Rpb25TY2hlbWVEYXRhSU5TXzExQ29ybmVyVGFibGVFRUVFRQBONWRyYWNvMjdNZXNoUHJlZGljdGlvblNjaGVtZUVuY29kZXJJaU5TXzM3UHJlZGljdGlvblNjaGVtZVdyYXBFbmNvZGluZ1RyYW5zZm9ybUlpaUVFTlNfMjRNZXNoUHJlZGljdGlvblNjaGVtZURhdGFJTlNfMTFDb3JuZXJUYWJsZUVFRUVFAE41ZHJhY280NE1lc2hQcmVkaWN0aW9uU2NoZW1lVGV4Q29vcmRzUG9ydGFibGVFbmNvZGVySWlOU18zN1ByZWRpY3Rpb25TY2hlbWVXcmFwRW5jb2RpbmdUcmFuc2Zvcm1JaWlFRU5TXzI0TWVzaFByZWRpY3Rpb25TY2hlbWVEYXRhSU5TXzExQ29ybmVyVGFibGVFRUVFRQBONWRyYWNvMzZNZXNoUHJlZGljdGlvblNjaGVtZVRleENvb3Jkc0VuY29kZXJJaU5TXzM3UHJlZGljdGlvblNjaGVtZVdyYXBFbmNvZGluZ1RyYW5zZm9ybUlpaUVFTlNfMjRNZXNoUHJlZGljdGlvblNjaGVtZURhdGFJTlNfMTFDb3JuZXJUYWJsZUVFRUVFAE41ZHJhY281Nk1lc2hQcmVkaWN0aW9uU2NoZW1lQ29uc3RyYWluZWRNdWx0aVBhcmFsbGVsb2dyYW1FbmNvZGVySWlOU18zN1ByZWRpY3Rpb25TY2hlbWVXcmFwRW5jb2RpbmdUcmFuc2Zvcm1JaWlFRU5TXzI0TWVzaFByZWRpY3Rpb25TY2hlbWVEYXRhSU5TXzExQ29ybmVyVGFibGVFRUVFRQBONWRyYWNvNDVNZXNoUHJlZGljdGlvblNjaGVtZU11bHRpUGFyYWxsZWxvZ3JhbUVuY29kZXJJaU5TXzM3UHJlZGljdGlvblNjaGVtZVdyYXBFbmNvZGluZ1RyYW5zZm9ybUlpaUVFTlNfMjRNZXNoUHJlZGljdGlvblNjaGVtZURhdGFJTlNfMTFDb3JuZXJUYWJsZUVFRUVFAE41ZHJhY280ME1lc2hQcmVkaWN0aW9uU2NoZW1lUGFyYWxsZWxvZ3JhbUVuY29kZXJJaU5TXzM3UHJlZGljdGlvblNjaGVtZVdyYXBFbmNvZGluZ1RyYW5zZm9ybUlpaUVFTlNfMjRNZXNoUHJlZGljdGlvblNjaGVtZURhdGFJTlNfMTFDb3JuZXJUYWJsZUVFRUVFAE41ZHJhY280OE1lc2hQcmVkaWN0aW9uU2NoZW1lR2VvbWV0cmljTm9ybWFsUHJlZGljdG9yQXJlYUlpTlNfMzdQcmVkaWN0aW9uU2NoZW1lV3JhcEVuY29kaW5nVHJhbnNmb3JtSWlpRUVOU18yNE1lc2hQcmVkaWN0aW9uU2NoZW1lRGF0YUlOU18yNE1lc2hBdHRyaWJ1dGVDb3JuZXJUYWJsZUVFRUVFAE41ZHJhY280OE1lc2hQcmVkaWN0aW9uU2NoZW1lR2VvbWV0cmljTm9ybWFsUHJlZGljdG9yQmFzZUlpTlNfMzdQcmVkaWN0aW9uU2NoZW1lV3JhcEVuY29kaW5nVHJhbnNmb3JtSWlpRUVOU18yNE1lc2hQcmVkaWN0aW9uU2NoZW1lRGF0YUlOU18yNE1lc2hBdHRyaWJ1dGVDb3JuZXJUYWJsZUVFRUVFAE41ZHJhY280Mk1lc2hQcmVkaWN0aW9uU2NoZW1lR2VvbWV0cmljTm9ybWFsRW5jb2RlcklpTlNfMzdQcmVkaWN0aW9uU2NoZW1lV3JhcEVuY29kaW5nVHJhbnNmb3JtSWlpRUVOU18yNE1lc2hQcmVkaWN0aW9uU2NoZW1lRGF0YUlOU18yNE1lc2hBdHRyaWJ1dGVDb3JuZXJUYWJsZUVFRUVFAE41ZHJhY28yN01lc2hQcmVkaWN0aW9uU2NoZW1lRW5jb2RlcklpTlNfMzdQcmVkaWN0aW9uU2NoZW1lV3JhcEVuY29kaW5nVHJhbnNmb3JtSWlpRUVOU18yNE1lc2hQcmVkaWN0aW9uU2NoZW1lRGF0YUlOU18yNE1lc2hBdHRyaWJ1dGVDb3JuZXJUYWJsZUVFRUVFAE41ZHJhY280NE1lc2hQcmVkaWN0aW9uU2NoZW1lVGV4Q29vcmRzUG9ydGFibGVFbmNvZGVySWlOU18zN1ByZWRpY3Rpb25TY2hlbWVXcmFwRW5jb2RpbmdUcmFuc2Zvcm1JaWlFRU5TXzI0TWVzaFByZWRpY3Rpb25TY2hlbWVEYXRhSU5TXzI0TWVzaEF0dHJpYnV0ZUNvcm5lclRhYmxlRUVFRUUATjVkcmFjbzM2TWVzaFByZWRpY3Rpb25TY2hlbWVUZXhDb29yZHNFbmNvZGVySWlOU18zN1ByZWRpY3Rpb25TY2hlbWVXcmFwRW5jb2RpbmdUcmFuc2Zvcm1JaWlFRU5TXzI0TWVzaFByZWRpY3Rpb25TY2hlbWVEYXRhSU5TXzI0TWVzaEF0dHJpYnV0ZUNvcm5lclRhYmxlRUVFRUUATjVkcmFjbzU2TWVzaFByZWRpY3Rpb25TY2hlbWVDb25zdHJhaW5lZE11bHRpUGFyYWxsZWxvZ3JhbUVuY29kZXJJaU5TXzM3UHJlZGljdGlvblNjaGVtZVdyYXBFbmNvZGluZ1RyYW5zZm9ybUlpaUVFTlNfMjRNZXNoUHJlZGljdGlvblNjaGVtZURhdGFJTlNfMjRNZXNoQXR0cmlidXRlQ29ybmVyVGFibGVFRUVFRQBONWRyYWNvNDVNZXNoUHJlZGljdGlvblNjaGVtZU11bHRpUGFyYWxsZWxvZ3JhbUVuY29kZXJJaU5TXzM3UHJlZGljdGlvblNjaGVtZVdyYXBFbmNvZGluZ1RyYW5zZm9ybUlpaUVFTlNfMjRNZXNoUHJlZGljdGlvblNjaGVtZURhdGFJTlNfMjRNZXNoQXR0cmlidXRlQ29ybmVyVGFibGVFRUVFRQBONWRyYWNvNDBNZXNoUHJlZGljdGlvblNjaGVtZVBhcmFsbGVsb2dyYW1FbmNvZGVySWlOU18zN1ByZWRpY3Rpb25TY2hlbWVXcmFwRW5jb2RpbmdUcmFuc2Zvcm1JaWlFRU5TXzI0TWVzaFByZWRpY3Rpb25TY2hlbWVEYXRhSU5TXzI0TWVzaEF0dHJpYnV0ZUNvcm5lclRhYmxlRUVFRUUAdXNlX2J1aWx0X2luX2F0dHJpYnV0ZV9jb21wcmVzc2lvbgBONWRyYWNvMzNTZXF1ZW50aWFsSW50ZWdlckF0dHJpYnV0ZUVuY29kZXJFAE41ZHJhY28yOFByZWRpY3Rpb25TY2hlbWVEZWx0YUVuY29kZXJJaU5TXzYyUHJlZGljdGlvblNjaGVtZU5vcm1hbE9jdGFoZWRyb25DYW5vbmljYWxpemVkRW5jb2RpbmdUcmFuc2Zvcm1JaUVFRUUATjVkcmFjbzIzUHJlZGljdGlvblNjaGVtZUVuY29kZXJJaU5TXzYyUHJlZGljdGlvblNjaGVtZU5vcm1hbE9jdGFoZWRyb25DYW5vbmljYWxpemVkRW5jb2RpbmdUcmFuc2Zvcm1JaUVFRUUATjVkcmFjbzQ4TWVzaFByZWRpY3Rpb25TY2hlbWVHZW9tZXRyaWNOb3JtYWxQcmVkaWN0b3JBcmVhSWlOU182MlByZWRpY3Rpb25TY2hlbWVOb3JtYWxPY3RhaGVkcm9uQ2Fub25pY2FsaXplZEVuY29kaW5nVHJhbnNmb3JtSWlFRU5TXzI0TWVzaFByZWRpY3Rpb25TY2hlbWVEYXRhSU5TXzExQ29ybmVyVGFibGVFRUVFRQBONWRyYWNvNDhNZXNoUHJlZGljdGlvblNjaGVtZUdlb21ldHJpY05vcm1hbFByZWRpY3RvckJhc2VJaU5TXzYyUHJlZGljdGlvblNjaGVtZU5vcm1hbE9jdGFoZWRyb25DYW5vbmljYWxpemVkRW5jb2RpbmdUcmFuc2Zvcm1JaUVFTlNfMjRNZXNoUHJlZGljdGlvblNjaGVtZURhdGFJTlNfMTFDb3JuZXJUYWJsZUVFRUVFAE41ZHJhY280Mk1lc2hQcmVkaWN0aW9uU2NoZW1lR2VvbWV0cmljTm9ybWFsRW5jb2RlcklpTlNfNjJQcmVkaWN0aW9uU2NoZW1lTm9ybWFsT2N0YWhlZHJvbkNhbm9uaWNhbGl6ZWRFbmNvZGluZ1RyYW5zZm9ybUlpRUVOU18yNE1lc2hQcmVkaWN0aW9uU2NoZW1lRGF0YUlOU18xMUNvcm5lclRhYmxlRUVFRUUATjVkcmFjbzI3TWVzaFByZWRpY3Rpb25TY2hlbWVFbmNvZGVySWlOU182MlByZWRpY3Rpb25TY2hlbWVOb3JtYWxPY3RhaGVkcm9uQ2Fub25pY2FsaXplZEVuY29kaW5nVHJhbnNmb3JtSWlFRU5TXzI0TWVzaFByZWRpY3Rpb25TY2hlbWVEYXRhSU5TXzExQ29ybmVyVGFibGVFRUVFRQBONWRyYWNvNDRNZXNoUHJlZGljdGlvblNjaGVtZVRleENvb3Jkc1BvcnRhYmxlRW5jb2RlcklpTlNfNjJQcmVkaWN0aW9uU2NoZW1lTm9ybWFsT2N0YWhlZHJvbkNhbm9uaWNhbGl6ZWRFbmNvZGluZ1RyYW5zZm9ybUlpRUVOU18yNE1lc2hQcmVkaWN0aW9uU2NoZW1lRGF0YUlOU18xMUNvcm5lclRhYmxlRUVFRUUATjVkcmFjbzM2TWVzaFByZWRpY3Rpb25TY2hlbWVUZXhDb29yZHNFbmNvZGVySWlOU182MlByZWRpY3Rpb25TY2hlbWVOb3JtYWxPY3RhaGVkcm9uQ2Fub25pY2FsaXplZEVuY29kaW5nVHJhbnNmb3JtSWlFRU5TXzI0TWVzaFByZWRpY3Rpb25TY2hlbWVEYXRhSU5TXzExQ29ybmVyVGFibGVFRUVFRQBONWRyYWNvNTZNZXNoUHJlZGljdGlvblNjaGVtZUNvbnN0cmFpbmVkTXVsdGlQYXJhbGxlbG9ncmFtRW5jb2RlcklpTlNfNjJQcmVkaWN0aW9uU2NoZW1lTm9ybWFsT2N0YWhlZHJvbkNhbm9uaWNhbGl6ZWRFbmNvZGluZ1RyYW5zZm9ybUlpRUVOU18yNE1lc2hQcmVkaWN0aW9uU2NoZW1lRGF0YUlOU18xMUNvcm5lclRhYmxlRUVFRUUATjVkcmFjbzQ1TWVzaFByZWRpY3Rpb25TY2hlbWVNdWx0aVBhcmFsbGVsb2dyYW1FbmNvZGVySWlOU182MlByZWRpY3Rpb25TY2hlbWVOb3JtYWxPY3RhaGVkcm9uQ2Fub25pY2FsaXplZEVuY29kaW5nVHJhbnNmb3JtSWlFRU5TXzI0TWVzaFByZWRpY3Rpb25TY2hlbWVEYXRhSU5TXzExQ29ybmVyVGFibGVFRUVFRQBONWRyYWNvNDBNZXNoUHJlZGljdGlvblNjaGVtZVBhcmFsbGVsb2dyYW1FbmNvZGVySWlOU182MlByZWRpY3Rpb25TY2hlbWVOb3JtYWxPY3RhaGVkcm9uQ2Fub25pY2FsaXplZEVuY29kaW5nVHJhbnNmb3JtSWlFRU5TXzI0TWVzaFByZWRpY3Rpb25TY2hlbWVEYXRhSU5TXzExQ29ybmVyVGFibGVFRUVFRQBONWRyYWNvNDhNZXNoUHJlZGljdGlvblNjaGVtZUdlb21ldHJpY05vcm1hbFByZWRpY3RvckFyZWFJaU5TXzYyUHJlZGljdGlvblNjaGVtZU5vcm1hbE9jdGFoZWRyb25DYW5vbmljYWxpemVkRW5jb2RpbmdUcmFuc2Zvcm1JaUVFTlNfMjRNZXNoUHJlZGljdGlvblNjaGVtZURhdGFJTlNfMjRNZXNoQXR0cmlidXRlQ29ybmVyVGFibGVFRUVFRQBONWRyYWNvNDhNZXNoUHJlZGljdGlvblNjaGVtZUdlb21ldHJpY05vcm1hbFByZWRpY3RvckJhc2VJaU5TXzYyUHJlZGljdGlvblNjaGVtZU5vcm1hbE9jdGFoZWRyb25DYW5vbmljYWxpemVkRW5jb2RpbmdUcmFuc2Zvcm1JaUVFTlNfMjRNZXNoUHJlZGljdGlvblNjaGVtZURhdGFJTlNfMjRNZXNoQXR0cmlidXRlQ29ybmVyVGFibGVFRUVFRQBONWRyYWNvNDJNZXNoUHJlZGljdGlvblNjaGVtZUdlb21ldHJpY05vcm1hbEVuY29kZXJJaU5TXzYyUHJlZGljdGlvblNjaGVtZU5vcm1hbE9jdGFoZWRyb25DYW5vbmljYWxpemVkRW5jb2RpbmdUcmFuc2Zvcm1JaUVFTlNfMjRNZXNoUHJlZGljdGlvblNjaGVtZURhdGFJTlNfMjRNZXNoQXR0cmlidXRlQ29ybmVyVGFibGVFRUVFRQBONWRyYWNvMjdNZXNoUHJlZGljdGlvblNjaGVtZUVuY29kZXJJaU5TXzYyUHJlZGljdGlvblNjaGVtZU5vcm1hbE9jdGFoZWRyb25DYW5vbmljYWxpemVkRW5jb2RpbmdUcmFuc2Zvcm1JaUVFTlNfMjRNZXNoUHJlZGljdGlvblNjaGVtZURhdGFJTlNfMjRNZXNoQXR0cmlidXRlQ29ybmVyVGFibGVFRUVFRQBONWRyYWNvNDRNZXNoUHJlZGljdGlvblNjaGVtZVRleENvb3Jkc1BvcnRhYmxlRW5jb2RlcklpTlNfNjJQcmVkaWN0aW9uU2NoZW1lTm9ybWFsT2N0YWhlZHJvbkNhbm9uaWNhbGl6ZWRFbmNvZGluZ1RyYW5zZm9ybUlpRUVOU18yNE1lc2hQcmVkaWN0aW9uU2NoZW1lRGF0YUlOU18yNE1lc2hBdHRyaWJ1dGVDb3JuZXJUYWJsZUVFRUVFAE41ZHJhY28zNk1lc2hQcmVkaWN0aW9uU2NoZW1lVGV4Q29vcmRzRW5jb2RlcklpTlNfNjJQcmVkaWN0aW9uU2NoZW1lTm9ybWFsT2N0YWhlZHJvbkNhbm9uaWNhbGl6ZWRFbmNvZGluZ1RyYW5zZm9ybUlpRUVOU18yNE1lc2hQcmVkaWN0aW9uU2NoZW1lRGF0YUlOU18yNE1lc2hBdHRyaWJ1dGVDb3JuZXJUYWJsZUVFRUVFAE41ZHJhY281Nk1lc2hQcmVkaWN0aW9uU2NoZW1lQ29uc3RyYWluZWRNdWx0aVBhcmFsbGVsb2dyYW1FbmNvZGVySWlOU182MlByZWRpY3Rpb25TY2hlbWVOb3JtYWxPY3RhaGVkcm9uQ2Fub25pY2FsaXplZEVuY29kaW5nVHJhbnNmb3JtSWlFRU5TXzI0TWVzaFByZWRpY3Rpb25TY2hlbWVEYXRhSU5TXzI0TWVzaEF0dHJpYnV0ZUNvcm5lclRhYmxlRUVFRUUATjVkcmFjbzQ1TWVzaFByZWRpY3Rpb25TY2hlbWVNdWx0aVBhcmFsbGVsb2dyYW1FbmNvZGVySWlOU182MlByZWRpY3Rpb25TY2hlbWVOb3JtYWxPY3RhaGVkcm9uQ2Fub25pY2FsaXplZEVuY29kaW5nVHJhbnNmb3JtSWlFRU5TXzI0TWVzaFByZWRpY3Rpb25TY2hlbWVEYXRhSU5TXzI0TWVzaEF0dHJpYnV0ZUNvcm5lclRhYmxlRUVFRUUATjVkcmFjbzQwTWVzaFByZWRpY3Rpb25TY2hlbWVQYXJhbGxlbG9ncmFtRW5jb2RlcklpTlNfNjJQcmVkaWN0aW9uU2NoZW1lTm9ybWFsT2N0YWhlZHJvbkNhbm9uaWNhbGl6ZWRFbmNvZGluZ1RyYW5zZm9ybUlpRUVOU18yNE1lc2hQcmVkaWN0aW9uU2NoZW1lRGF0YUlOU18yNE1lc2hBdHRyaWJ1dGVDb3JuZXJUYWJsZUVFRUVFAE41ZHJhY28zMlNlcXVlbnRpYWxOb3JtYWxBdHRyaWJ1dGVFbmNvZGVyRQBONWRyYWNvMzhTZXF1ZW50aWFsUXVhbnRpemF0aW9uQXR0cmlidXRlRW5jb2RlckUAcHJlZGljdGlvbl9zY2hlbWUAZW5jb2Rpbmdfc3BlZWQAZGVjb2Rpbmdfc3BlZWQAcXVhbnRpemF0aW9uX29yaWdpbgBxdWFudGl6YXRpb25fcmFuZ2UAIABlbmNvZGluZ19tZXRob2QAcXVhbnRpemF0aW9uX2JpdHMASW52YWxpZCBlbmNvZGluZyBtZXRob2QuAHN0YW5kYXJkX2VkZ2VicmVha2VyAHByZWRpY3RpdmVfZWRnZWJyZWFrZXIAZWRnZWJyZWFrZXJfbWV0aG9kAE41ZHJhY28yMk1lc2hFZGdlQnJlYWtlckVuY29kZXJFAE41ZHJhY28yOUNvcm5lclRhYmxlVHJhdmVyc2FsUHJvY2Vzc29ySU5TXzI0TWVzaEF0dHJpYnV0ZUNvcm5lclRhYmxlRUVFAE41ZHJhY28yMk1lc2hUcmF2ZXJzYWxTZXF1ZW5jZXJJTlNfMjBFZGdlQnJlYWtlclRyYXZlcnNlcklOU18yOUNvcm5lclRhYmxlVHJhdmVyc2FsUHJvY2Vzc29ySU5TXzI0TWVzaEF0dHJpYnV0ZUNvcm5lclRhYmxlRUVFTlNfMzZNZXNoQXR0cmlidXRlSW5kaWNlc0VuY29kaW5nT2JzZXJ2ZXJJUzNfRUVOU18xOUVkZ2VCcmVha2VyT2JzZXJ2ZXJFRUVFRQBONWRyYWNvMTVQb2ludHNTZXF1ZW5jZXJFAE41ZHJhY28yOUNvcm5lclRhYmxlVHJhdmVyc2FsUHJvY2Vzc29ySU5TXzExQ29ybmVyVGFibGVFRUUATjVkcmFjbzIyTWVzaFRyYXZlcnNhbFNlcXVlbmNlcklOU18yMEVkZ2VCcmVha2VyVHJhdmVyc2VySU5TXzI5Q29ybmVyVGFibGVUcmF2ZXJzYWxQcm9jZXNzb3JJTlNfMTFDb3JuZXJUYWJsZUVFRU5TXzM2TWVzaEF0dHJpYnV0ZUluZGljZXNFbmNvZGluZ09ic2VydmVySVMzX0VFTlNfMTlFZGdlQnJlYWtlck9ic2VydmVyRUVFRUUATjVkcmFjbzIyTWVzaFRyYXZlcnNhbFNlcXVlbmNlcklOU18yNVByZWRpY3Rpb25EZWdyZWVUcmF2ZXJzZXJJTlNfMjlDb3JuZXJUYWJsZVRyYXZlcnNhbFByb2Nlc3NvcklOU18xMUNvcm5lclRhYmxlRUVFTlNfMzZNZXNoQXR0cmlidXRlSW5kaWNlc0VuY29kaW5nT2JzZXJ2ZXJJUzNfRUVFRUVFAHNwbGl0X21lc2hfb25fc2VhbXMATjVkcmFjbzI2TWVzaEVkZ2VCcmVha2VyRW5jb2RlckltcGxJTlNfMzFNZXNoRWRnZUJyZWFrZXJUcmF2ZXJzYWxFbmNvZGVyRUVFAE41ZHJhY28zNU1lc2hFZGdlQnJlYWtlckVuY29kZXJJbXBsSW50ZXJmYWNlRQBONWRyYWNvMjZNZXNoRWRnZUJyZWFrZXJFbmNvZGVySW1wbElOU18zOE1lc2hFZGdlQnJlYWtlclRyYXZlcnNhbFZhbGVuY2VFbmNvZGVyRUVFAE41ZHJhY28xMU1lc2hFbmNvZGVyRQBjb21wcmVzc19jb25uZWN0aXZpdHkATjVkcmFjbzE1TGluZWFyU2VxdWVuY2VyRQBONWRyYWNvMjFNZXNoU2VxdWVudGlhbEVuY29kZXJFAE41ZHJhY28xN1BvaW50Q2xvdWRFbmNvZGVyRQBJbnZhbGlkIGlucHV0IGdlb21ldHJ5LgBGYWlsZWQgdG8gaW5pdGlhbGl6ZSBlbmNvZGVyLgBGYWlsZWQgdG8gZW5jb2RlIGludGVybmFsIGRhdGEuAEZhaWxlZCB0byBlbmNvZGUgZ2VvbWV0cnkgZGF0YS4ARmFpbGVkIHRvIGVuY29kZSBwb2ludCBhdHRyaWJ1dGVzLgBGYWlsZWQgdG8gZW5jb2RlIG1ldGFkYXRhLgBEUkFDTwBONWRyYWNvMjNQb2ludENsb3VkS2RUcmVlRW5jb2RlckUATjVkcmFjbzI3UG9pbnRDbG91ZFNlcXVlbnRpYWxFbmNvZGVyRQBzeW1ib2xfZW5jb2RpbmdfbWV0aG9kAHN5bWJvbF9lbmNvZGluZ19jb21wcmVzc2lvbl9sZXZlbABONWRyYWNvNE1lc2hFAGFsbG9jYXRvcjxUPjo6YWxsb2NhdGUoc2l6ZV90IG4pICduJyBleGNlZWRzIG1heGltdW0gc3VwcG9ydGVkIHNpemUATjVkcmFjbzEwUG9pbnRDbG91ZEUAEQAKABEREQAAAAAFAAAAAAAACQAAAAALAAAAAAAAAAARAA8KERERAwoHAAETCQsLAAAJBgsAAAsABhEAAAAREREAAAAAAAAAAAAAAAAAAAAACwAAAAAAAAAAEQAKChEREQAKAAACAAkLAAAACQALAAALAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAwAAAAADAAAAAAJDAAAAAAADAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAANAAAABA0AAAAACQ4AAAAAAA4AAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAADwAAAAAPAAAAAAkQAAAAAAAQAAAQAAASAAAAEhISAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABIAAAASEhIAAAAAAAAJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALAAAAAAAAAAAAAAAKAAAAAAoAAAAACQsAAAAAAAsAAAsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAAAAAADAAAAAAMAAAAAAkMAAAAAAAMAAAMAAAtKyAgIDBYMHgAKG51bGwpAC0wWCswWCAwWC0weCsweCAweABpbmYASU5GAE5BTgAwMTIzNDU2Nzg5QUJDREVGLgBUISIZDQECAxFLHAwQBAsdEh4naG5vcHFiIAUGDxMUFRoIFgcoJBcYCQoOGx8lI4OCfSYqKzw9Pj9DR0pNWFlaW1xdXl9gYWNkZWZnaWprbHJzdHl6e3wASWxsZWdhbCBieXRlIHNlcXVlbmNlAERvbWFpbiBlcnJvcgBSZXN1bHQgbm90IHJlcHJlc2VudGFibGUATm90IGEgdHR5AFBlcm1pc3Npb24gZGVuaWVkAE9wZXJhdGlvbiBub3QgcGVybWl0dGVkAE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkATm8gc3VjaCBwcm9jZXNzAEZpbGUgZXhpc3RzAFZhbHVlIHRvbyBsYXJnZSBmb3IgZGF0YSB0eXBlAE5vIHNwYWNlIGxlZnQgb24gZGV2aWNlAE91dCBvZiBtZW1vcnkAUmVzb3VyY2UgYnVzeQBJbnRlcnJ1cHRlZCBzeXN0ZW0gY2FsbABSZXNvdXJjZSB0ZW1wb3JhcmlseSB1bmF2YWlsYWJsZQBJbnZhbGlkIHNlZWsAQ3Jvc3MtZGV2aWNlIGxpbmsAUmVhZC1vbmx5IGZpbGUgc3lzdGVtAERpcmVjdG9yeSBub3QgZW1wdHkAQ29ubmVjdGlvbiByZXNldCBieSBwZWVyAE9wZXJhdGlvbiB0aW1lZCBvdXQAQ29ubmVjdGlvbiByZWZ1c2VkAEhvc3QgaXMgZG93bgBIb3N0IGlzIHVucmVhY2hhYmxlAEFkZHJlc3MgaW4gdXNlAEJyb2tlbiBwaXBlAEkvTyBlcnJvcgBObyBzdWNoIGRldmljZSBvciBhZGRyZXNzAEJsb2NrIGRldmljZSByZXF1aXJlZABObyBzdWNoIGRldmljZQBOb3QgYSBkaXJlY3RvcnkASXMgYSBkaXJlY3RvcnkAVGV4dCBmaWxlIGJ1c3kARXhlYyBmb3JtYXQgZXJyb3IASW52YWxpZCBhcmd1bWVudABBcmd1bWVudCBsaXN0IHRvbyBsb25nAFN5bWJvbGljIGxpbmsgbG9vcABGaWxlbmFtZSB0b28gbG9uZwBUb28gbWFueSBvcGVuIGZpbGVzIGluIHN5c3RlbQBObyBmaWxlIGRlc2NyaXB0b3JzIGF2YWlsYWJsZQBCYWQgZmlsZSBkZXNjcmlwdG9yAE5vIGNoaWxkIHByb2Nlc3MAQmFkIGFkZHJlc3MARmlsZSB0b28gbGFyZ2UAVG9vIG1hbnkgbGlua3MATm8gbG9ja3MgYXZhaWxhYmxlAFJlc291cmNlIGRlYWRsb2NrIHdvdWxkIG9jY3VyAFN0YXRlIG5vdCByZWNvdmVyYWJsZQBQcmV2aW91cyBvd25lciBkaWVkAE9wZXJhdGlvbiBjYW5jZWxlZABGdW5jdGlvbiBub3QgaW1wbGVtZW50ZWQATm8gbWVzc2FnZSBvZiBkZXNpcmVkIHR5cGUASWRlbnRpZmllciByZW1vdmVkAERldmljZSBub3QgYSBzdHJlYW0ATm8gZGF0YSBhdmFpbGFibGUARGV2aWNlIHRpbWVvdXQAT3V0IG9mIHN0cmVhbXMgcmVzb3VyY2VzAExpbmsgaGFzIGJlZW4gc2V2ZXJlZABQcm90b2NvbCBlcnJvcgBCYWQgbWVzc2FnZQBGaWxlIGRlc2NyaXB0b3IgaW4gYmFkIHN0YXRlAE5vdCBhIHNvY2tldABEZXN0aW5hdGlvbiBhZGRyZXNzIHJlcXVpcmVkAE1lc3NhZ2UgdG9vIGxhcmdlAFByb3RvY29sIHdyb25nIHR5cGUgZm9yIHNvY2tldABQcm90b2NvbCBub3QgYXZhaWxhYmxlAFByb3RvY29sIG5vdCBzdXBwb3J0ZWQAU29ja2V0IHR5cGUgbm90IHN1cHBvcnRlZABOb3Qgc3VwcG9ydGVkAFByb3RvY29sIGZhbWlseSBub3Qgc3VwcG9ydGVkAEFkZHJlc3MgZmFtaWx5IG5vdCBzdXBwb3J0ZWQgYnkgcHJvdG9jb2wAQWRkcmVzcyBub3QgYXZhaWxhYmxlAE5ldHdvcmsgaXMgZG93bgBOZXR3b3JrIHVucmVhY2hhYmxlAENvbm5lY3Rpb24gcmVzZXQgYnkgbmV0d29yawBDb25uZWN0aW9uIGFib3J0ZWQATm8gYnVmZmVyIHNwYWNlIGF2YWlsYWJsZQBTb2NrZXQgaXMgY29ubmVjdGVkAFNvY2tldCBub3QgY29ubmVjdGVkAENhbm5vdCBzZW5kIGFmdGVyIHNvY2tldCBzaHV0ZG93bgBPcGVyYXRpb24gYWxyZWFkeSBpbiBwcm9ncmVzcwBPcGVyYXRpb24gaW4gcHJvZ3Jlc3MAU3RhbGUgZmlsZSBoYW5kbGUAUmVtb3RlIEkvTyBlcnJvcgBRdW90YSBleGNlZWRlZABObyBtZWRpdW0gZm91bmQAV3JvbmcgbWVkaXVtIHR5cGUATm8gZXJyb3IgaW5mb3JtYXRpb24AAGluZmluaXR5AG5hbgAlZAAlZgB0ZXJtaW5hdGluZyB3aXRoICVzIGV4Y2VwdGlvbiBvZiB0eXBlICVzOiAlcwB0ZXJtaW5hdGluZyB3aXRoICVzIGV4Y2VwdGlvbiBvZiB0eXBlICVzAHRlcm1pbmF0aW5nIHdpdGggJXMgZm9yZWlnbiBleGNlcHRpb24AdGVybWluYXRpbmcAdW5jYXVnaHQAU3Q5ZXhjZXB0aW9uAE4xMF9fY3h4YWJpdjExNl9fc2hpbV90eXBlX2luZm9FAFN0OXR5cGVfaW5mbwBOMTBfX2N4eGFiaXYxMjBfX3NpX2NsYXNzX3R5cGVfaW5mb0UATjEwX19jeHhhYml2MTE3X19jbGFzc190eXBlX2luZm9FAHB0aHJlYWRfb25jZSBmYWlsdXJlIGluIF9fY3hhX2dldF9nbG9iYWxzX2Zhc3QoKQBjYW5ub3QgY3JlYXRlIHB0aHJlYWQga2V5IGZvciBfX2N4YV9nZXRfZ2xvYmFscygpAGNhbm5vdCB6ZXJvIG91dCB0aHJlYWQgdmFsdWUgZm9yIF9fY3hhX2dldF9nbG9iYWxzKCkAdGVybWluYXRlX2hhbmRsZXIgdW5leHBlY3RlZGx5IHJldHVybmVkAFN0MTFsb2dpY19lcnJvcgBTdDEybGVuZ3RoX2Vycm9yAE4xMF9fY3h4YWJpdjExOV9fcG9pbnRlcl90eXBlX2luZm9FAE4xMF9fY3h4YWJpdjExN19fcGJhc2VfdHlwZV9pbmZvRQ==";var tempDoublePtr=STATICTOP;STATICTOP+=16;function ___cxa_allocate_exception(size){return _malloc(size)}function __ZSt18uncaught_exceptionv(){return!!__ZSt18uncaught_exceptionv.uncaught_exception}var EXCEPTIONS={last:0,caught:[],infos:{},deAdjust:(function(adjusted){if(!adjusted||EXCEPTIONS.infos[adjusted])return adjusted;for(var ptr in EXCEPTIONS.infos){var info=EXCEPTIONS.infos[ptr];if(info.adjusted===adjusted){return ptr}}return adjusted}),addRef:(function(ptr){if(!ptr)return;var info=EXCEPTIONS.infos[ptr];info.refcount++}),decRef:(function(ptr){if(!ptr)return;var info=EXCEPTIONS.infos[ptr];assert(info.refcount>0);info.refcount--;if(info.refcount===0&&!info.rethrown){if(info.destructor){Module["dynCall_vi"](info.destructor,ptr)}delete EXCEPTIONS.infos[ptr];___cxa_free_exception(ptr)}}),clearRef:(function(ptr){if(!ptr)return;var info=EXCEPTIONS.infos[ptr];info.refcount=0})};function ___cxa_begin_catch(ptr){var info=EXCEPTIONS.infos[ptr];if(info&&!info.caught){info.caught=true;__ZSt18uncaught_exceptionv.uncaught_exception--}if(info)info.rethrown=false;EXCEPTIONS.caught.push(ptr);EXCEPTIONS.addRef(EXCEPTIONS.deAdjust(ptr));return ptr}function ___cxa_pure_virtual(){ABORT=true;throw"Pure virtual function called!"}function ___resumeException(ptr){if(!EXCEPTIONS.last){EXCEPTIONS.last=ptr}throw ptr+" - Exception catching is disabled, this exception cannot be caught. Compile with -s DISABLE_EXCEPTION_CATCHING=0 or DISABLE_EXCEPTION_CATCHING=2 to catch."}function ___cxa_find_matching_catch(){var thrown=EXCEPTIONS.last;if(!thrown){return(setTempRet0(0),0)|0}var info=EXCEPTIONS.infos[thrown];var throwntype=info.type;if(!throwntype){return(setTempRet0(0),thrown)|0}var typeArray=Array.prototype.slice.call(arguments);var pointer=Module["___cxa_is_pointer_type"](throwntype);if(!___cxa_find_matching_catch.buffer)___cxa_find_matching_catch.buffer=_malloc(4);HEAP32[___cxa_find_matching_catch.buffer>>2]=thrown;thrown=___cxa_find_matching_catch.buffer;for(var i=0;i>2];info.adjusted=thrown;return(setTempRet0(typeArray[i]),thrown)|0}}thrown=HEAP32[thrown>>2];return(setTempRet0(throwntype),thrown)|0}function ___cxa_throw(ptr,type,destructor){EXCEPTIONS.infos[ptr]={ptr:ptr,adjusted:ptr,type:type,destructor:destructor,refcount:0,caught:false,rethrown:false};EXCEPTIONS.last=ptr;if(!("uncaught_exception"in __ZSt18uncaught_exceptionv)){__ZSt18uncaught_exceptionv.uncaught_exception=1}else{__ZSt18uncaught_exceptionv.uncaught_exception++}throw ptr+" - Exception catching is disabled, this exception cannot be caught. Compile with -s DISABLE_EXCEPTION_CATCHING=0 or DISABLE_EXCEPTION_CATCHING=2 to catch."}var cttz_i8=allocate([8,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,6,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,7,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,6,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0],"i8",ALLOC_STATIC);function ___gxx_personality_v0(){}var SYSCALLS={varargs:0,get:(function(varargs){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret}),getStr:(function(){var ret=Pointer_stringify(SYSCALLS.get());return ret}),get64:(function(){var low=SYSCALLS.get(),high=SYSCALLS.get();if(low>=0)assert(high===0);else assert(high===-1);return low}),getZero:(function(){assert(SYSCALLS.get()===0)})};function ___syscall140(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),offset_high=SYSCALLS.get(),offset_low=SYSCALLS.get(),result=SYSCALLS.get(),whence=SYSCALLS.get();var offset=offset_low;FS.llseek(stream,offset,whence);HEAP32[result>>2]=stream.position;if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function flush_NO_FILESYSTEM(){var fflush=Module["_fflush"];if(fflush)fflush(0);var printChar=___syscall146.printChar;if(!printChar)return;var buffers=___syscall146.buffers;if(buffers[1].length)printChar(1,10);if(buffers[2].length)printChar(2,10)}function ___syscall146(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.get(),iov=SYSCALLS.get(),iovcnt=SYSCALLS.get();var ret=0;if(!___syscall146.buffers){___syscall146.buffers=[null,[],[]];___syscall146.printChar=(function(stream,curr){var buffer=___syscall146.buffers[stream];assert(buffer);if(curr===0||curr===10){(stream===1?Module["print"]:Module["printErr"])(UTF8ArrayToString(buffer,0));buffer.length=0}else{buffer.push(curr)}})}for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];for(var j=0;j>2]=PTHREAD_SPECIFIC_NEXT_KEY;PTHREAD_SPECIFIC[PTHREAD_SPECIFIC_NEXT_KEY]=0;PTHREAD_SPECIFIC_NEXT_KEY++;return 0}function _pthread_once(ptr,func){if(!_pthread_once.seen)_pthread_once.seen={};if(ptr in _pthread_once.seen)return;Module["dynCall_v"](func);_pthread_once.seen[ptr]=1}function _pthread_setspecific(key,value){if(!(key in PTHREAD_SPECIFIC)){return ERRNO_CODES.EINVAL}PTHREAD_SPECIFIC[key]=value;return 0}function ___setErrNo(value){if(Module["___errno_location"])HEAP32[Module["___errno_location"]()>>2]=value;return value}DYNAMICTOP_PTR=staticAlloc(4);STACK_BASE=STACKTOP=alignMemory(STATICTOP);STACK_MAX=STACK_BASE+TOTAL_STACK;DYNAMIC_BASE=alignMemory(STACK_MAX);HEAP32[DYNAMICTOP_PTR>>2]=DYNAMIC_BASE;staticSealed=true;var ASSERTIONS=false;function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}function intArrayToString(array){var ret=[];for(var i=0;i255){if(ASSERTIONS){assert(false,"Character code "+chr+" ("+String.fromCharCode(chr)+") at offset "+i+" not in 0x00-0xFF.")}chr&=255}ret.push(String.fromCharCode(chr))}return ret.join("")}var decodeBase64=typeof atob==="function"?atob:(function(input){var keyStr="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";var output="";var chr1,chr2,chr3;var enc1,enc2,enc3,enc4;var i=0;input=input.replace(/[^A-Za-z0-9\+\/\=]/g,"");do{enc1=keyStr.indexOf(input.charAt(i++));enc2=keyStr.indexOf(input.charAt(i++));enc3=keyStr.indexOf(input.charAt(i++));enc4=keyStr.indexOf(input.charAt(i++));chr1=enc1<<2|enc2>>4;chr2=(enc2&15)<<4|enc3>>2;chr3=(enc3&3)<<6|enc4;output=output+String.fromCharCode(chr1);if(enc3!==64){output=output+String.fromCharCode(chr2)}if(enc4!==64){output=output+String.fromCharCode(chr3)}}while(i2147483648)return false;b=new a(newBuffer);d=new c(newBuffer);f=new e(newBuffer);h=new g(newBuffer);j=new i(newBuffer);l=new k(newBuffer);n=new m(newBuffer);p=new o(newBuffer);buffer=newBuffer;return true} // EMSCRIPTEN_START_FUNCS function be(a,b,c,d,e,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0;h=u;u=u+16|0;i=h+4|0;j=h;f[a+72>>2]=e;f[a+64>>2]=g;g=Lq(e>>>0>1073741823?-1:e<<2)|0;k=a+68|0;l=f[k>>2]|0;f[k>>2]=g;if(l|0)Mq(l);l=a+8|0;Mh(l,b,d,e);d=a+56|0;g=f[d>>2]|0;m=f[g+4>>2]|0;n=f[g>>2]|0;o=m-n|0;if((o|0)<=0){u=h;return 1}p=(o>>>2)+-1|0;o=a+16|0;q=a+32|0;r=a+12|0;s=a+28|0;t=a+20|0;v=a+24|0;if(m-n>>2>>>0>p>>>0){w=p;x=n}else{y=g;aq(y)}while(1){f[j>>2]=f[x+(w<<2)>>2];f[i>>2]=f[j>>2];Cc(a,i,b,w);g=X(w,e)|0;n=b+(g<<2)|0;p=c+(g<<2)|0;g=f[l>>2]|0;if((g|0)>0){m=0;z=f[k>>2]|0;A=g;while(1){if((A|0)>0){g=0;do{B=f[z+(g<<2)>>2]|0;C=f[o>>2]|0;if((B|0)>(C|0)){D=f[q>>2]|0;f[D+(g<<2)>>2]=C;E=D}else{D=f[r>>2]|0;C=f[q>>2]|0;f[C+(g<<2)>>2]=(B|0)<(D|0)?D:B;E=C}g=g+1|0}while((g|0)<(f[l>>2]|0));F=E}else F=f[q>>2]|0;g=(f[n+(m<<2)>>2]|0)-(f[F+(m<<2)>>2]|0)|0;C=p+(m<<2)|0;f[C>>2]=g;if((g|0)>=(f[s>>2]|0)){if((g|0)>(f[v>>2]|0)){G=g-(f[t>>2]|0)|0;H=21}}else{G=(f[t>>2]|0)+g|0;H=21}if((H|0)==21){H=0;f[C>>2]=G}m=m+1|0;A=f[l>>2]|0;if((m|0)>=(A|0))break;else z=F}}w=w+-1|0;if((w|0)<=-1){H=5;break}z=f[d>>2]|0;x=f[z>>2]|0;if((f[z+4>>2]|0)-x>>2>>>0<=w>>>0){y=z;H=6;break}}if((H|0)==5){u=h;return 1}else if((H|0)==6)aq(y);return 0}function ce(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0;g=u;u=u+64|0;h=g+48|0;i=g;j=d+1|0;f[h>>2]=0;k=h+4|0;f[k>>2]=0;f[h+8>>2]=0;do if(j)if(j>>>0>536870911)aq(h);else{l=ln(j<<3)|0;f[h>>2]=l;m=l+(j<<3)|0;f[h+8>>2]=m;sj(l|0,0,(d<<3)+8|0)|0;f[k>>2]=m;n=l;o=m;break}else{n=0;o=0}while(0);d=(c|0)>0;if(d){j=0;do{m=n+(f[a+(j<<2)>>2]<<3)|0;l=m;p=Vn(f[l>>2]|0,f[l+4>>2]|0,1,0)|0;l=m;f[l>>2]=p;f[l+4>>2]=I;j=j+1|0}while((j|0)!=(c|0))}j=i+40|0;l=j;f[l>>2]=0;f[l+4>>2]=0;f[i>>2]=0;f[i+4>>2]=0;f[i+8>>2]=0;f[i+12>>2]=0;f[i+16>>2]=0;f[i+20>>2]=0;Uc(i,n,o-n>>3,e)|0;n=i+16|0;o=Tn(f[n>>2]|0,f[n+4>>2]|0,1)|0;n=(f[e+4>>2]|0)-(f[e>>2]|0)|0;l=j;f[l>>2]=n;f[l+4>>2]=0;l=Vn(o|0,I|0,39,0)|0;o=Yn(l|0,I|0,3)|0;l=Vn(o|0,I|0,8,0)|0;o=Vn(l|0,I|0,n|0,0)|0;Cl(e,o,I);o=i+24|0;f[o>>2]=(f[e>>2]|0)+(f[j>>2]|0);j=i+28|0;f[j>>2]=0;n=i+32|0;f[n>>2]=4194304;if(d){d=c;c=4194304;do{l=d;d=d+-1|0;p=f[a+(d<<2)>>2]|0;m=f[i>>2]|0;q=f[m+(p<<3)>>2]|0;r=q<<10;if(c>>>0>>0)s=c;else{t=c;while(1){v=f[o>>2]|0;w=f[j>>2]|0;f[j>>2]=w+1;b[v+w>>0]=t;w=(f[n>>2]|0)>>>8;f[n>>2]=w;if(w>>>0>>0){s=w;break}else t=w}}c=(((s>>>0)/(q>>>0)|0)<<20)+((s>>>0)%(q>>>0)|0)+(f[m+(p<<3)+4>>2]|0)|0;f[n>>2]=c}while((l|0)>1)}Mf(i,e);e=f[i>>2]|0;if(e|0){c=i+4|0;i=f[c>>2]|0;if((i|0)!=(e|0))f[c>>2]=i+(~((i+-8-e|0)>>>3)<<3);Oq(e)}e=f[h>>2]|0;if(!e){u=g;return 1}h=f[k>>2]|0;if((h|0)!=(e|0))f[k>>2]=h+(~((h+-8-e|0)>>>3)<<3);Oq(e);u=g;return 1}function de(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0;g=u;u=u+64|0;h=g+48|0;i=g;j=d+1|0;f[h>>2]=0;k=h+4|0;f[k>>2]=0;f[h+8>>2]=0;do if(j)if(j>>>0>536870911)aq(h);else{l=ln(j<<3)|0;f[h>>2]=l;m=l+(j<<3)|0;f[h+8>>2]=m;sj(l|0,0,(d<<3)+8|0)|0;f[k>>2]=m;n=l;o=m;break}else{n=0;o=0}while(0);d=(c|0)>0;if(d){j=0;do{m=n+(f[a+(j<<2)>>2]<<3)|0;l=m;p=Vn(f[l>>2]|0,f[l+4>>2]|0,1,0)|0;l=m;f[l>>2]=p;f[l+4>>2]=I;j=j+1|0}while((j|0)!=(c|0))}j=i+40|0;l=j;f[l>>2]=0;f[l+4>>2]=0;f[i>>2]=0;f[i+4>>2]=0;f[i+8>>2]=0;f[i+12>>2]=0;f[i+16>>2]=0;f[i+20>>2]=0;Vc(i,n,o-n>>3,e)|0;n=i+16|0;o=Tn(f[n>>2]|0,f[n+4>>2]|0,1)|0;n=(f[e+4>>2]|0)-(f[e>>2]|0)|0;l=j;f[l>>2]=n;f[l+4>>2]=0;l=Vn(o|0,I|0,39,0)|0;o=Yn(l|0,I|0,3)|0;l=Vn(o|0,I|0,8,0)|0;o=Vn(l|0,I|0,n|0,0)|0;Cl(e,o,I);o=i+24|0;f[o>>2]=(f[e>>2]|0)+(f[j>>2]|0);j=i+28|0;f[j>>2]=0;n=i+32|0;f[n>>2]=4194304;if(d){d=c;c=4194304;do{l=d;d=d+-1|0;p=f[a+(d<<2)>>2]|0;m=f[i>>2]|0;q=f[m+(p<<3)>>2]|0;r=q<<10;if(c>>>0>>0)s=c;else{t=c;while(1){v=f[o>>2]|0;w=f[j>>2]|0;f[j>>2]=w+1;b[v+w>>0]=t;w=(f[n>>2]|0)>>>8;f[n>>2]=w;if(w>>>0>>0){s=w;break}else t=w}}c=(((s>>>0)/(q>>>0)|0)<<20)+((s>>>0)%(q>>>0)|0)+(f[m+(p<<3)+4>>2]|0)|0;f[n>>2]=c}while((l|0)>1)}Mf(i,e);e=f[i>>2]|0;if(e|0){c=i+4|0;i=f[c>>2]|0;if((i|0)!=(e|0))f[c>>2]=i+(~((i+-8-e|0)>>>3)<<3);Oq(e)}e=f[h>>2]|0;if(!e){u=g;return 1}h=f[k>>2]|0;if((h|0)!=(e|0))f[k>>2]=h+(~((h+-8-e|0)>>>3)<<3);Oq(e);u=g;return 1}function ee(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0;g=u;u=u+64|0;h=g+48|0;i=g;j=d+1|0;f[h>>2]=0;k=h+4|0;f[k>>2]=0;f[h+8>>2]=0;do if(j)if(j>>>0>536870911)aq(h);else{l=ln(j<<3)|0;f[h>>2]=l;m=l+(j<<3)|0;f[h+8>>2]=m;sj(l|0,0,(d<<3)+8|0)|0;f[k>>2]=m;n=l;o=m;break}else{n=0;o=0}while(0);d=(c|0)>0;if(d){j=0;do{m=n+(f[a+(j<<2)>>2]<<3)|0;l=m;p=Vn(f[l>>2]|0,f[l+4>>2]|0,1,0)|0;l=m;f[l>>2]=p;f[l+4>>2]=I;j=j+1|0}while((j|0)!=(c|0))}j=i+40|0;l=j;f[l>>2]=0;f[l+4>>2]=0;f[i>>2]=0;f[i+4>>2]=0;f[i+8>>2]=0;f[i+12>>2]=0;f[i+16>>2]=0;f[i+20>>2]=0;Wc(i,n,o-n>>3,e)|0;n=i+16|0;o=Tn(f[n>>2]|0,f[n+4>>2]|0,1)|0;n=(f[e+4>>2]|0)-(f[e>>2]|0)|0;l=j;f[l>>2]=n;f[l+4>>2]=0;l=Vn(o|0,I|0,39,0)|0;o=Yn(l|0,I|0,3)|0;l=Vn(o|0,I|0,8,0)|0;o=Vn(l|0,I|0,n|0,0)|0;Cl(e,o,I);o=i+24|0;f[o>>2]=(f[e>>2]|0)+(f[j>>2]|0);j=i+28|0;f[j>>2]=0;n=i+32|0;f[n>>2]=4194304;if(d){d=c;c=4194304;do{l=d;d=d+-1|0;p=f[a+(d<<2)>>2]|0;m=f[i>>2]|0;q=f[m+(p<<3)>>2]|0;r=q<<10;if(c>>>0>>0)s=c;else{t=c;while(1){v=f[o>>2]|0;w=f[j>>2]|0;f[j>>2]=w+1;b[v+w>>0]=t;w=(f[n>>2]|0)>>>8;f[n>>2]=w;if(w>>>0>>0){s=w;break}else t=w}}c=(((s>>>0)/(q>>>0)|0)<<20)+((s>>>0)%(q>>>0)|0)+(f[m+(p<<3)+4>>2]|0)|0;f[n>>2]=c}while((l|0)>1)}Mf(i,e);e=f[i>>2]|0;if(e|0){c=i+4|0;i=f[c>>2]|0;if((i|0)!=(e|0))f[c>>2]=i+(~((i+-8-e|0)>>>3)<<3);Oq(e)}e=f[h>>2]|0;if(!e){u=g;return 1}h=f[k>>2]|0;if((h|0)!=(e|0))f[k>>2]=h+(~((h+-8-e|0)>>>3)<<3);Oq(e);u=g;return 1}function fe(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0;g=u;u=u+64|0;h=g+48|0;i=g;j=d+1|0;f[h>>2]=0;k=h+4|0;f[k>>2]=0;f[h+8>>2]=0;do if(j)if(j>>>0>536870911)aq(h);else{l=ln(j<<3)|0;f[h>>2]=l;m=l+(j<<3)|0;f[h+8>>2]=m;sj(l|0,0,(d<<3)+8|0)|0;f[k>>2]=m;n=l;o=m;break}else{n=0;o=0}while(0);d=(c|0)>0;if(d){j=0;do{m=n+(f[a+(j<<2)>>2]<<3)|0;l=m;p=Vn(f[l>>2]|0,f[l+4>>2]|0,1,0)|0;l=m;f[l>>2]=p;f[l+4>>2]=I;j=j+1|0}while((j|0)!=(c|0))}j=i+40|0;l=j;f[l>>2]=0;f[l+4>>2]=0;f[i>>2]=0;f[i+4>>2]=0;f[i+8>>2]=0;f[i+12>>2]=0;f[i+16>>2]=0;f[i+20>>2]=0;Xc(i,n,o-n>>3,e)|0;n=i+16|0;o=Tn(f[n>>2]|0,f[n+4>>2]|0,1)|0;n=(f[e+4>>2]|0)-(f[e>>2]|0)|0;l=j;f[l>>2]=n;f[l+4>>2]=0;l=Vn(o|0,I|0,39,0)|0;o=Yn(l|0,I|0,3)|0;l=Vn(o|0,I|0,8,0)|0;o=Vn(l|0,I|0,n|0,0)|0;Cl(e,o,I);o=i+24|0;f[o>>2]=(f[e>>2]|0)+(f[j>>2]|0);j=i+28|0;f[j>>2]=0;n=i+32|0;f[n>>2]=4194304;if(d){d=c;c=4194304;do{l=d;d=d+-1|0;p=f[a+(d<<2)>>2]|0;m=f[i>>2]|0;q=f[m+(p<<3)>>2]|0;r=q<<10;if(c>>>0>>0)s=c;else{t=c;while(1){v=f[o>>2]|0;w=f[j>>2]|0;f[j>>2]=w+1;b[v+w>>0]=t;w=(f[n>>2]|0)>>>8;f[n>>2]=w;if(w>>>0>>0){s=w;break}else t=w}}c=(((s>>>0)/(q>>>0)|0)<<20)+((s>>>0)%(q>>>0)|0)+(f[m+(p<<3)+4>>2]|0)|0;f[n>>2]=c}while((l|0)>1)}Mf(i,e);e=f[i>>2]|0;if(e|0){c=i+4|0;i=f[c>>2]|0;if((i|0)!=(e|0))f[c>>2]=i+(~((i+-8-e|0)>>>3)<<3);Oq(e)}e=f[h>>2]|0;if(!e){u=g;return 1}h=f[k>>2]|0;if((h|0)!=(e|0))f[k>>2]=h+(~((h+-8-e|0)>>>3)<<3);Oq(e);u=g;return 1}function ge(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0;g=u;u=u+64|0;h=g+48|0;i=g;j=d+1|0;f[h>>2]=0;k=h+4|0;f[k>>2]=0;f[h+8>>2]=0;do if(j)if(j>>>0>536870911)aq(h);else{l=ln(j<<3)|0;f[h>>2]=l;m=l+(j<<3)|0;f[h+8>>2]=m;sj(l|0,0,(d<<3)+8|0)|0;f[k>>2]=m;n=l;o=m;break}else{n=0;o=0}while(0);d=(c|0)>0;if(d){j=0;do{m=n+(f[a+(j<<2)>>2]<<3)|0;l=m;p=Vn(f[l>>2]|0,f[l+4>>2]|0,1,0)|0;l=m;f[l>>2]=p;f[l+4>>2]=I;j=j+1|0}while((j|0)!=(c|0))}j=i+40|0;l=j;f[l>>2]=0;f[l+4>>2]=0;f[i>>2]=0;f[i+4>>2]=0;f[i+8>>2]=0;f[i+12>>2]=0;f[i+16>>2]=0;f[i+20>>2]=0;Yc(i,n,o-n>>3,e)|0;n=i+16|0;o=Tn(f[n>>2]|0,f[n+4>>2]|0,1)|0;n=(f[e+4>>2]|0)-(f[e>>2]|0)|0;l=j;f[l>>2]=n;f[l+4>>2]=0;l=Vn(o|0,I|0,39,0)|0;o=Yn(l|0,I|0,3)|0;l=Vn(o|0,I|0,8,0)|0;o=Vn(l|0,I|0,n|0,0)|0;Cl(e,o,I);o=i+24|0;f[o>>2]=(f[e>>2]|0)+(f[j>>2]|0);j=i+28|0;f[j>>2]=0;n=i+32|0;f[n>>2]=4194304;if(d){d=c;c=4194304;do{l=d;d=d+-1|0;p=f[a+(d<<2)>>2]|0;m=f[i>>2]|0;q=f[m+(p<<3)>>2]|0;r=q<<10;if(c>>>0>>0)s=c;else{t=c;while(1){v=f[o>>2]|0;w=f[j>>2]|0;f[j>>2]=w+1;b[v+w>>0]=t;w=(f[n>>2]|0)>>>8;f[n>>2]=w;if(w>>>0>>0){s=w;break}else t=w}}c=(((s>>>0)/(q>>>0)|0)<<20)+((s>>>0)%(q>>>0)|0)+(f[m+(p<<3)+4>>2]|0)|0;f[n>>2]=c}while((l|0)>1)}Mf(i,e);e=f[i>>2]|0;if(e|0){c=i+4|0;i=f[c>>2]|0;if((i|0)!=(e|0))f[c>>2]=i+(~((i+-8-e|0)>>>3)<<3);Oq(e)}e=f[h>>2]|0;if(!e){u=g;return 1}h=f[k>>2]|0;if((h|0)!=(e|0))f[k>>2]=h+(~((h+-8-e|0)>>>3)<<3);Oq(e);u=g;return 1}function he(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0;g=u;u=u+64|0;h=g+48|0;i=g;j=d+1|0;f[h>>2]=0;k=h+4|0;f[k>>2]=0;f[h+8>>2]=0;do if(j)if(j>>>0>536870911)aq(h);else{l=ln(j<<3)|0;f[h>>2]=l;m=l+(j<<3)|0;f[h+8>>2]=m;sj(l|0,0,(d<<3)+8|0)|0;f[k>>2]=m;n=l;o=m;break}else{n=0;o=0}while(0);d=(c|0)>0;if(d){j=0;do{m=n+(f[a+(j<<2)>>2]<<3)|0;l=m;p=Vn(f[l>>2]|0,f[l+4>>2]|0,1,0)|0;l=m;f[l>>2]=p;f[l+4>>2]=I;j=j+1|0}while((j|0)!=(c|0))}j=i+40|0;l=j;f[l>>2]=0;f[l+4>>2]=0;f[i>>2]=0;f[i+4>>2]=0;f[i+8>>2]=0;f[i+12>>2]=0;f[i+16>>2]=0;f[i+20>>2]=0;Zc(i,n,o-n>>3,e)|0;n=i+16|0;o=Tn(f[n>>2]|0,f[n+4>>2]|0,1)|0;n=(f[e+4>>2]|0)-(f[e>>2]|0)|0;l=j;f[l>>2]=n;f[l+4>>2]=0;l=Vn(o|0,I|0,39,0)|0;o=Yn(l|0,I|0,3)|0;l=Vn(o|0,I|0,8,0)|0;o=Vn(l|0,I|0,n|0,0)|0;Cl(e,o,I);o=i+24|0;f[o>>2]=(f[e>>2]|0)+(f[j>>2]|0);j=i+28|0;f[j>>2]=0;n=i+32|0;f[n>>2]=2097152;if(d){d=c;c=2097152;do{l=d;d=d+-1|0;p=f[a+(d<<2)>>2]|0;m=f[i>>2]|0;q=f[m+(p<<3)>>2]|0;r=q<<10;if(c>>>0>>0)s=c;else{t=c;while(1){v=f[o>>2]|0;w=f[j>>2]|0;f[j>>2]=w+1;b[v+w>>0]=t;w=(f[n>>2]|0)>>>8;f[n>>2]=w;if(w>>>0>>0){s=w;break}else t=w}}c=(((s>>>0)/(q>>>0)|0)<<19)+((s>>>0)%(q>>>0)|0)+(f[m+(p<<3)+4>>2]|0)|0;f[n>>2]=c}while((l|0)>1)}Nf(i,e);e=f[i>>2]|0;if(e|0){c=i+4|0;i=f[c>>2]|0;if((i|0)!=(e|0))f[c>>2]=i+(~((i+-8-e|0)>>>3)<<3);Oq(e)}e=f[h>>2]|0;if(!e){u=g;return 1}h=f[k>>2]|0;if((h|0)!=(e|0))f[k>>2]=h+(~((h+-8-e|0)>>>3)<<3);Oq(e);u=g;return 1}function ie(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0;g=u;u=u+64|0;h=g+48|0;i=g;j=d+1|0;f[h>>2]=0;k=h+4|0;f[k>>2]=0;f[h+8>>2]=0;do if(j)if(j>>>0>536870911)aq(h);else{l=ln(j<<3)|0;f[h>>2]=l;m=l+(j<<3)|0;f[h+8>>2]=m;sj(l|0,0,(d<<3)+8|0)|0;f[k>>2]=m;n=l;o=m;break}else{n=0;o=0}while(0);d=(c|0)>0;if(d){j=0;do{m=n+(f[a+(j<<2)>>2]<<3)|0;l=m;p=Vn(f[l>>2]|0,f[l+4>>2]|0,1,0)|0;l=m;f[l>>2]=p;f[l+4>>2]=I;j=j+1|0}while((j|0)!=(c|0))}j=i+40|0;l=j;f[l>>2]=0;f[l+4>>2]=0;f[i>>2]=0;f[i+4>>2]=0;f[i+8>>2]=0;f[i+12>>2]=0;f[i+16>>2]=0;f[i+20>>2]=0;_c(i,n,o-n>>3,e)|0;n=i+16|0;o=Tn(f[n>>2]|0,f[n+4>>2]|0,1)|0;n=(f[e+4>>2]|0)-(f[e>>2]|0)|0;l=j;f[l>>2]=n;f[l+4>>2]=0;l=Vn(o|0,I|0,39,0)|0;o=Yn(l|0,I|0,3)|0;l=Vn(o|0,I|0,8,0)|0;o=Vn(l|0,I|0,n|0,0)|0;Cl(e,o,I);o=i+24|0;f[o>>2]=(f[e>>2]|0)+(f[j>>2]|0);j=i+28|0;f[j>>2]=0;n=i+32|0;f[n>>2]=1048576;if(d){d=c;c=1048576;do{l=d;d=d+-1|0;p=f[a+(d<<2)>>2]|0;m=f[i>>2]|0;q=f[m+(p<<3)>>2]|0;r=q<<10;if(c>>>0>>0)s=c;else{t=c;while(1){v=f[o>>2]|0;w=f[j>>2]|0;f[j>>2]=w+1;b[v+w>>0]=t;w=(f[n>>2]|0)>>>8;f[n>>2]=w;if(w>>>0>>0){s=w;break}else t=w}}c=(((s>>>0)/(q>>>0)|0)<<18)+((s>>>0)%(q>>>0)|0)+(f[m+(p<<3)+4>>2]|0)|0;f[n>>2]=c}while((l|0)>1)}Of(i,e);e=f[i>>2]|0;if(e|0){c=i+4|0;i=f[c>>2]|0;if((i|0)!=(e|0))f[c>>2]=i+(~((i+-8-e|0)>>>3)<<3);Oq(e)}e=f[h>>2]|0;if(!e){u=g;return 1}h=f[k>>2]|0;if((h|0)!=(e|0))f[k>>2]=h+(~((h+-8-e|0)>>>3)<<3);Oq(e);u=g;return 1}function je(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=Oa,t=Oa,u=Oa,v=0,w=0,x=0,y=0,z=0;c=f[b>>2]|0;b=a+4|0;d=f[b>>2]|0;e=(d|0)==0;a:do if(!e){g=d+-1|0;h=(g&d|0)==0;if(!h)if(c>>>0>>0)i=c;else i=(c>>>0)%(d>>>0)|0;else i=g&c;j=f[(f[a>>2]|0)+(i<<2)>>2]|0;if(!j)k=i;else{if(h){h=j;while(1){l=f[h>>2]|0;if(!l){k=i;break a}m=f[l+4>>2]|0;if(!((m|0)==(c|0)|(m&g|0)==(i|0))){k=i;break a}if((f[l+8>>2]|0)==(c|0)){o=l;break}else h=l}p=o+12|0;return p|0}else q=j;while(1){h=f[q>>2]|0;if(!h){k=i;break a}g=f[h+4>>2]|0;if((g|0)!=(c|0)){if(g>>>0>>0)r=g;else r=(g>>>0)%(d>>>0)|0;if((r|0)!=(i|0)){k=i;break a}}if((f[h+8>>2]|0)==(c|0)){o=h;break}else q=h}p=o+12|0;return p|0}}else k=0;while(0);q=ln(16)|0;f[q+8>>2]=c;f[q+12>>2]=0;f[q+4>>2]=c;f[q>>2]=0;i=a+12|0;s=$(((f[i>>2]|0)+1|0)>>>0);t=$(d>>>0);u=$(n[a+16>>2]);do if(e|$(u*t)>>0<3|(d+-1&d|0)!=0)&1;j=~~$(W($(s/u)))>>>0;Hi(a,r>>>0>>0?j:r);r=f[b>>2]|0;j=r+-1|0;if(!(j&r)){v=r;w=j&c;break}if(c>>>0>>0){v=r;w=c}else{v=r;w=(c>>>0)%(r>>>0)|0}}else{v=d;w=k}while(0);k=(f[a>>2]|0)+(w<<2)|0;w=f[k>>2]|0;if(!w){d=a+8|0;f[q>>2]=f[d>>2];f[d>>2]=q;f[k>>2]=d;d=f[q>>2]|0;if(d|0){k=f[d+4>>2]|0;d=v+-1|0;if(d&v)if(k>>>0>>0)x=k;else x=(k>>>0)%(v>>>0)|0;else x=k&d;y=(f[a>>2]|0)+(x<<2)|0;z=30}}else{f[q>>2]=f[w>>2];y=w;z=30}if((z|0)==30)f[y>>2]=q;f[i>>2]=(f[i>>2]|0)+1;o=q;p=o+12|0;return p|0}function ke(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0;g=u;u=u+64|0;h=g+48|0;i=g;j=d+1|0;f[h>>2]=0;k=h+4|0;f[k>>2]=0;f[h+8>>2]=0;do if(j)if(j>>>0>536870911)aq(h);else{l=ln(j<<3)|0;f[h>>2]=l;m=l+(j<<3)|0;f[h+8>>2]=m;sj(l|0,0,(d<<3)+8|0)|0;f[k>>2]=m;n=l;o=m;break}else{n=0;o=0}while(0);d=(c|0)>0;if(d){j=0;do{m=n+(f[a+(j<<2)>>2]<<3)|0;l=m;p=Vn(f[l>>2]|0,f[l+4>>2]|0,1,0)|0;l=m;f[l>>2]=p;f[l+4>>2]=I;j=j+1|0}while((j|0)!=(c|0))}j=i+40|0;l=j;f[l>>2]=0;f[l+4>>2]=0;f[i>>2]=0;f[i+4>>2]=0;f[i+8>>2]=0;f[i+12>>2]=0;f[i+16>>2]=0;f[i+20>>2]=0;$c(i,n,o-n>>3,e)|0;n=i+16|0;o=Tn(f[n>>2]|0,f[n+4>>2]|0,1)|0;n=(f[e+4>>2]|0)-(f[e>>2]|0)|0;l=j;f[l>>2]=n;f[l+4>>2]=0;l=Vn(o|0,I|0,39,0)|0;o=Yn(l|0,I|0,3)|0;l=Vn(o|0,I|0,8,0)|0;o=Vn(l|0,I|0,n|0,0)|0;Cl(e,o,I);o=i+24|0;f[o>>2]=(f[e>>2]|0)+(f[j>>2]|0);j=i+28|0;f[j>>2]=0;n=i+32|0;f[n>>2]=262144;if(d){d=c;c=262144;do{l=d;d=d+-1|0;p=f[a+(d<<2)>>2]|0;m=f[i>>2]|0;q=f[m+(p<<3)>>2]|0;r=q<<10;if(c>>>0>>0)s=c;else{t=c;while(1){v=f[o>>2]|0;w=f[j>>2]|0;f[j>>2]=w+1;b[v+w>>0]=t;w=(f[n>>2]|0)>>>8;f[n>>2]=w;if(w>>>0>>0){s=w;break}else t=w}}c=(((s>>>0)/(q>>>0)|0)<<16)+((s>>>0)%(q>>>0)|0)+(f[m+(p<<3)+4>>2]|0)|0;f[n>>2]=c}while((l|0)>1)}Rf(i,e);e=f[i>>2]|0;if(e|0){c=i+4|0;i=f[c>>2]|0;if((i|0)!=(e|0))f[c>>2]=i+(~((i+-8-e|0)>>>3)<<3);Oq(e)}e=f[h>>2]|0;if(!e){u=g;return 1}h=f[k>>2]|0;if((h|0)!=(e|0))f[k>>2]=h+(~((h+-8-e|0)>>>3)<<3);Oq(e);u=g;return 1}function le(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0;g=u;u=u+64|0;h=g+48|0;i=g;j=d+1|0;f[h>>2]=0;k=h+4|0;f[k>>2]=0;f[h+8>>2]=0;do if(j)if(j>>>0>536870911)aq(h);else{l=ln(j<<3)|0;f[h>>2]=l;m=l+(j<<3)|0;f[h+8>>2]=m;sj(l|0,0,(d<<3)+8|0)|0;f[k>>2]=m;n=l;o=m;break}else{n=0;o=0}while(0);d=(c|0)>0;if(d){j=0;do{m=n+(f[a+(j<<2)>>2]<<3)|0;l=m;p=Vn(f[l>>2]|0,f[l+4>>2]|0,1,0)|0;l=m;f[l>>2]=p;f[l+4>>2]=I;j=j+1|0}while((j|0)!=(c|0))}j=i+40|0;l=j;f[l>>2]=0;f[l+4>>2]=0;f[i>>2]=0;f[i+4>>2]=0;f[i+8>>2]=0;f[i+12>>2]=0;f[i+16>>2]=0;f[i+20>>2]=0;ad(i,n,o-n>>3,e)|0;n=i+16|0;o=Tn(f[n>>2]|0,f[n+4>>2]|0,1)|0;n=(f[e+4>>2]|0)-(f[e>>2]|0)|0;l=j;f[l>>2]=n;f[l+4>>2]=0;l=Vn(o|0,I|0,39,0)|0;o=Yn(l|0,I|0,3)|0;l=Vn(o|0,I|0,8,0)|0;o=Vn(l|0,I|0,n|0,0)|0;Cl(e,o,I);o=i+24|0;f[o>>2]=(f[e>>2]|0)+(f[j>>2]|0);j=i+28|0;f[j>>2]=0;n=i+32|0;f[n>>2]=131072;if(d){d=c;c=131072;do{l=d;d=d+-1|0;p=f[a+(d<<2)>>2]|0;m=f[i>>2]|0;q=f[m+(p<<3)>>2]|0;r=q<<10;if(c>>>0>>0)s=c;else{t=c;while(1){v=f[o>>2]|0;w=f[j>>2]|0;f[j>>2]=w+1;b[v+w>>0]=t;w=(f[n>>2]|0)>>>8;f[n>>2]=w;if(w>>>0>>0){s=w;break}else t=w}}c=(((s>>>0)/(q>>>0)|0)<<15)+((s>>>0)%(q>>>0)|0)+(f[m+(p<<3)+4>>2]|0)|0;f[n>>2]=c}while((l|0)>1)}Sf(i,e);e=f[i>>2]|0;if(e|0){c=i+4|0;i=f[c>>2]|0;if((i|0)!=(e|0))f[c>>2]=i+(~((i+-8-e|0)>>>3)<<3);Oq(e)}e=f[h>>2]|0;if(!e){u=g;return 1}h=f[k>>2]|0;if((h|0)!=(e|0))f[k>>2]=h+(~((h+-8-e|0)>>>3)<<3);Oq(e);u=g;return 1}function me(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0;g=u;u=u+64|0;h=g+48|0;i=g;j=d+1|0;f[h>>2]=0;k=h+4|0;f[k>>2]=0;f[h+8>>2]=0;do if(j)if(j>>>0>536870911)aq(h);else{l=ln(j<<3)|0;f[h>>2]=l;m=l+(j<<3)|0;f[h+8>>2]=m;sj(l|0,0,(d<<3)+8|0)|0;f[k>>2]=m;n=l;o=m;break}else{n=0;o=0}while(0);d=(c|0)>0;if(d){j=0;do{m=n+(f[a+(j<<2)>>2]<<3)|0;l=m;p=Vn(f[l>>2]|0,f[l+4>>2]|0,1,0)|0;l=m;f[l>>2]=p;f[l+4>>2]=I;j=j+1|0}while((j|0)!=(c|0))}j=i+40|0;l=j;f[l>>2]=0;f[l+4>>2]=0;f[i>>2]=0;f[i+4>>2]=0;f[i+8>>2]=0;f[i+12>>2]=0;f[i+16>>2]=0;f[i+20>>2]=0;bd(i,n,o-n>>3,e)|0;n=i+16|0;o=Tn(f[n>>2]|0,f[n+4>>2]|0,1)|0;n=(f[e+4>>2]|0)-(f[e>>2]|0)|0;l=j;f[l>>2]=n;f[l+4>>2]=0;l=Vn(o|0,I|0,39,0)|0;o=Yn(l|0,I|0,3)|0;l=Vn(o|0,I|0,8,0)|0;o=Vn(l|0,I|0,n|0,0)|0;Cl(e,o,I);o=i+24|0;f[o>>2]=(f[e>>2]|0)+(f[j>>2]|0);j=i+28|0;f[j>>2]=0;n=i+32|0;f[n>>2]=32768;if(d){d=c;c=32768;do{l=d;d=d+-1|0;p=f[a+(d<<2)>>2]|0;m=f[i>>2]|0;q=f[m+(p<<3)>>2]|0;r=q<<10;if(c>>>0>>0)s=c;else{t=c;while(1){v=f[o>>2]|0;w=f[j>>2]|0;f[j>>2]=w+1;b[v+w>>0]=t;w=(f[n>>2]|0)>>>8;f[n>>2]=w;if(w>>>0>>0){s=w;break}else t=w}}c=(((s>>>0)/(q>>>0)|0)<<13)+((s>>>0)%(q>>>0)|0)+(f[m+(p<<3)+4>>2]|0)|0;f[n>>2]=c}while((l|0)>1)}Uf(i,e);e=f[i>>2]|0;if(e|0){c=i+4|0;i=f[c>>2]|0;if((i|0)!=(e|0))f[c>>2]=i+(~((i+-8-e|0)>>>3)<<3);Oq(e)}e=f[h>>2]|0;if(!e){u=g;return 1}h=f[k>>2]|0;if((h|0)!=(e|0))f[k>>2]=h+(~((h+-8-e|0)>>>3)<<3);Oq(e);u=g;return 1}function ne(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0;g=u;u=u+64|0;h=g+48|0;i=g;j=d+1|0;f[h>>2]=0;k=h+4|0;f[k>>2]=0;f[h+8>>2]=0;do if(j)if(j>>>0>536870911)aq(h);else{l=ln(j<<3)|0;f[h>>2]=l;m=l+(j<<3)|0;f[h+8>>2]=m;sj(l|0,0,(d<<3)+8|0)|0;f[k>>2]=m;n=l;o=m;break}else{n=0;o=0}while(0);d=(c|0)>0;if(d){j=0;do{m=n+(f[a+(j<<2)>>2]<<3)|0;l=m;p=Vn(f[l>>2]|0,f[l+4>>2]|0,1,0)|0;l=m;f[l>>2]=p;f[l+4>>2]=I;j=j+1|0}while((j|0)!=(c|0))}j=i+40|0;l=j;f[l>>2]=0;f[l+4>>2]=0;f[i>>2]=0;f[i+4>>2]=0;f[i+8>>2]=0;f[i+12>>2]=0;f[i+16>>2]=0;f[i+20>>2]=0;cd(i,n,o-n>>3,e)|0;n=i+16|0;o=Tn(f[n>>2]|0,f[n+4>>2]|0,1)|0;n=(f[e+4>>2]|0)-(f[e>>2]|0)|0;l=j;f[l>>2]=n;f[l+4>>2]=0;l=Vn(o|0,I|0,39,0)|0;o=Yn(l|0,I|0,3)|0;l=Vn(o|0,I|0,8,0)|0;o=Vn(l|0,I|0,n|0,0)|0;Cl(e,o,I);o=i+24|0;f[o>>2]=(f[e>>2]|0)+(f[j>>2]|0);j=i+28|0;f[j>>2]=0;n=i+32|0;f[n>>2]=16384;if(d){d=c;c=16384;do{l=d;d=d+-1|0;p=f[a+(d<<2)>>2]|0;m=f[i>>2]|0;q=f[m+(p<<3)>>2]|0;r=q<<10;if(c>>>0>>0)s=c;else{t=c;while(1){v=f[o>>2]|0;w=f[j>>2]|0;f[j>>2]=w+1;b[v+w>>0]=t;w=(f[n>>2]|0)>>>8;f[n>>2]=w;if(w>>>0>>0){s=w;break}else t=w}}c=(((s>>>0)/(q>>>0)|0)<<12)+((s>>>0)%(q>>>0)|0)+(f[m+(p<<3)+4>>2]|0)|0;f[n>>2]=c}while((l|0)>1)}_f(i,e);e=f[i>>2]|0;if(e|0){c=i+4|0;i=f[c>>2]|0;if((i|0)!=(e|0))f[c>>2]=i+(~((i+-8-e|0)>>>3)<<3);Oq(e)}e=f[h>>2]|0;if(!e){u=g;return 1}h=f[k>>2]|0;if((h|0)!=(e|0))f[k>>2]=h+(~((h+-8-e|0)>>>3)<<3);Oq(e);u=g;return 1}function oe(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0;g=u;u=u+64|0;h=g+48|0;i=g;j=d+1|0;f[h>>2]=0;k=h+4|0;f[k>>2]=0;f[h+8>>2]=0;do if(j)if(j>>>0>536870911)aq(h);else{l=ln(j<<3)|0;f[h>>2]=l;m=l+(j<<3)|0;f[h+8>>2]=m;sj(l|0,0,(d<<3)+8|0)|0;f[k>>2]=m;n=l;o=m;break}else{n=0;o=0}while(0);d=(c|0)>0;if(d){j=0;do{m=n+(f[a+(j<<2)>>2]<<3)|0;l=m;p=Vn(f[l>>2]|0,f[l+4>>2]|0,1,0)|0;l=m;f[l>>2]=p;f[l+4>>2]=I;j=j+1|0}while((j|0)!=(c|0))}j=i+40|0;l=j;f[l>>2]=0;f[l+4>>2]=0;f[i>>2]=0;f[i+4>>2]=0;f[i+8>>2]=0;f[i+12>>2]=0;f[i+16>>2]=0;f[i+20>>2]=0;dd(i,n,o-n>>3,e)|0;n=i+16|0;o=Tn(f[n>>2]|0,f[n+4>>2]|0,1)|0;n=(f[e+4>>2]|0)-(f[e>>2]|0)|0;l=j;f[l>>2]=n;f[l+4>>2]=0;l=Vn(o|0,I|0,39,0)|0;o=Yn(l|0,I|0,3)|0;l=Vn(o|0,I|0,8,0)|0;o=Vn(l|0,I|0,n|0,0)|0;Cl(e,o,I);o=i+24|0;f[o>>2]=(f[e>>2]|0)+(f[j>>2]|0);j=i+28|0;f[j>>2]=0;n=i+32|0;f[n>>2]=16384;if(d){d=c;c=16384;do{l=d;d=d+-1|0;p=f[a+(d<<2)>>2]|0;m=f[i>>2]|0;q=f[m+(p<<3)>>2]|0;r=q<<10;if(c>>>0>>0)s=c;else{t=c;while(1){v=f[o>>2]|0;w=f[j>>2]|0;f[j>>2]=w+1;b[v+w>>0]=t;w=(f[n>>2]|0)>>>8;f[n>>2]=w;if(w>>>0>>0){s=w;break}else t=w}}c=(((s>>>0)/(q>>>0)|0)<<12)+((s>>>0)%(q>>>0)|0)+(f[m+(p<<3)+4>>2]|0)|0;f[n>>2]=c}while((l|0)>1)}_f(i,e);e=f[i>>2]|0;if(e|0){c=i+4|0;i=f[c>>2]|0;if((i|0)!=(e|0))f[c>>2]=i+(~((i+-8-e|0)>>>3)<<3);Oq(e)}e=f[h>>2]|0;if(!e){u=g;return 1}h=f[k>>2]|0;if((h|0)!=(e|0))f[k>>2]=h+(~((h+-8-e|0)>>>3)<<3);Oq(e);u=g;return 1}function pe(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0;g=u;u=u+64|0;h=g+48|0;i=g;j=d+1|0;f[h>>2]=0;k=h+4|0;f[k>>2]=0;f[h+8>>2]=0;do if(j)if(j>>>0>536870911)aq(h);else{l=ln(j<<3)|0;f[h>>2]=l;m=l+(j<<3)|0;f[h+8>>2]=m;sj(l|0,0,(d<<3)+8|0)|0;f[k>>2]=m;n=l;o=m;break}else{n=0;o=0}while(0);d=(c|0)>0;if(d){j=0;do{m=n+(f[a+(j<<2)>>2]<<3)|0;l=m;p=Vn(f[l>>2]|0,f[l+4>>2]|0,1,0)|0;l=m;f[l>>2]=p;f[l+4>>2]=I;j=j+1|0}while((j|0)!=(c|0))}j=i+40|0;l=j;f[l>>2]=0;f[l+4>>2]=0;f[i>>2]=0;f[i+4>>2]=0;f[i+8>>2]=0;f[i+12>>2]=0;f[i+16>>2]=0;f[i+20>>2]=0;ed(i,n,o-n>>3,e)|0;n=i+16|0;o=Tn(f[n>>2]|0,f[n+4>>2]|0,1)|0;n=(f[e+4>>2]|0)-(f[e>>2]|0)|0;l=j;f[l>>2]=n;f[l+4>>2]=0;l=Vn(o|0,I|0,39,0)|0;o=Yn(l|0,I|0,3)|0;l=Vn(o|0,I|0,8,0)|0;o=Vn(l|0,I|0,n|0,0)|0;Cl(e,o,I);o=i+24|0;f[o>>2]=(f[e>>2]|0)+(f[j>>2]|0);j=i+28|0;f[j>>2]=0;n=i+32|0;f[n>>2]=16384;if(d){d=c;c=16384;do{l=d;d=d+-1|0;p=f[a+(d<<2)>>2]|0;m=f[i>>2]|0;q=f[m+(p<<3)>>2]|0;r=q<<10;if(c>>>0>>0)s=c;else{t=c;while(1){v=f[o>>2]|0;w=f[j>>2]|0;f[j>>2]=w+1;b[v+w>>0]=t;w=(f[n>>2]|0)>>>8;f[n>>2]=w;if(w>>>0>>0){s=w;break}else t=w}}c=(((s>>>0)/(q>>>0)|0)<<12)+((s>>>0)%(q>>>0)|0)+(f[m+(p<<3)+4>>2]|0)|0;f[n>>2]=c}while((l|0)>1)}_f(i,e);e=f[i>>2]|0;if(e|0){c=i+4|0;i=f[c>>2]|0;if((i|0)!=(e|0))f[c>>2]=i+(~((i+-8-e|0)>>>3)<<3);Oq(e)}e=f[h>>2]|0;if(!e){u=g;return 1}h=f[k>>2]|0;if((h|0)!=(e|0))f[k>>2]=h+(~((h+-8-e|0)>>>3)<<3);Oq(e);u=g;return 1}function qe(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0;g=u;u=u+64|0;h=g+48|0;i=g;j=d+1|0;f[h>>2]=0;k=h+4|0;f[k>>2]=0;f[h+8>>2]=0;do if(j)if(j>>>0>536870911)aq(h);else{l=ln(j<<3)|0;f[h>>2]=l;m=l+(j<<3)|0;f[h+8>>2]=m;sj(l|0,0,(d<<3)+8|0)|0;f[k>>2]=m;n=l;o=m;break}else{n=0;o=0}while(0);d=(c|0)>0;if(d){j=0;do{m=n+(f[a+(j<<2)>>2]<<3)|0;l=m;p=Vn(f[l>>2]|0,f[l+4>>2]|0,1,0)|0;l=m;f[l>>2]=p;f[l+4>>2]=I;j=j+1|0}while((j|0)!=(c|0))}j=i+40|0;l=j;f[l>>2]=0;f[l+4>>2]=0;f[i>>2]=0;f[i+4>>2]=0;f[i+8>>2]=0;f[i+12>>2]=0;f[i+16>>2]=0;f[i+20>>2]=0;fd(i,n,o-n>>3,e)|0;n=i+16|0;o=Tn(f[n>>2]|0,f[n+4>>2]|0,1)|0;n=(f[e+4>>2]|0)-(f[e>>2]|0)|0;l=j;f[l>>2]=n;f[l+4>>2]=0;l=Vn(o|0,I|0,39,0)|0;o=Yn(l|0,I|0,3)|0;l=Vn(o|0,I|0,8,0)|0;o=Vn(l|0,I|0,n|0,0)|0;Cl(e,o,I);o=i+24|0;f[o>>2]=(f[e>>2]|0)+(f[j>>2]|0);j=i+28|0;f[j>>2]=0;n=i+32|0;f[n>>2]=16384;if(d){d=c;c=16384;do{l=d;d=d+-1|0;p=f[a+(d<<2)>>2]|0;m=f[i>>2]|0;q=f[m+(p<<3)>>2]|0;r=q<<10;if(c>>>0>>0)s=c;else{t=c;while(1){v=f[o>>2]|0;w=f[j>>2]|0;f[j>>2]=w+1;b[v+w>>0]=t;w=(f[n>>2]|0)>>>8;f[n>>2]=w;if(w>>>0>>0){s=w;break}else t=w}}c=(((s>>>0)/(q>>>0)|0)<<12)+((s>>>0)%(q>>>0)|0)+(f[m+(p<<3)+4>>2]|0)|0;f[n>>2]=c}while((l|0)>1)}_f(i,e);e=f[i>>2]|0;if(e|0){c=i+4|0;i=f[c>>2]|0;if((i|0)!=(e|0))f[c>>2]=i+(~((i+-8-e|0)>>>3)<<3);Oq(e)}e=f[h>>2]|0;if(!e){u=g;return 1}h=f[k>>2]|0;if((h|0)!=(e|0))f[k>>2]=h+(~((h+-8-e|0)>>>3)<<3);Oq(e);u=g;return 1}function re(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0;g=u;u=u+64|0;h=g+48|0;i=g;j=d+1|0;f[h>>2]=0;k=h+4|0;f[k>>2]=0;f[h+8>>2]=0;do if(j)if(j>>>0>536870911)aq(h);else{l=ln(j<<3)|0;f[h>>2]=l;m=l+(j<<3)|0;f[h+8>>2]=m;sj(l|0,0,(d<<3)+8|0)|0;f[k>>2]=m;n=l;o=m;break}else{n=0;o=0}while(0);d=(c|0)>0;if(d){j=0;do{m=n+(f[a+(j<<2)>>2]<<3)|0;l=m;p=Vn(f[l>>2]|0,f[l+4>>2]|0,1,0)|0;l=m;f[l>>2]=p;f[l+4>>2]=I;j=j+1|0}while((j|0)!=(c|0))}j=i+40|0;l=j;f[l>>2]=0;f[l+4>>2]=0;f[i>>2]=0;f[i+4>>2]=0;f[i+8>>2]=0;f[i+12>>2]=0;f[i+16>>2]=0;f[i+20>>2]=0;gd(i,n,o-n>>3,e)|0;n=i+16|0;o=Tn(f[n>>2]|0,f[n+4>>2]|0,1)|0;n=(f[e+4>>2]|0)-(f[e>>2]|0)|0;l=j;f[l>>2]=n;f[l+4>>2]=0;l=Vn(o|0,I|0,39,0)|0;o=Yn(l|0,I|0,3)|0;l=Vn(o|0,I|0,8,0)|0;o=Vn(l|0,I|0,n|0,0)|0;Cl(e,o,I);o=i+24|0;f[o>>2]=(f[e>>2]|0)+(f[j>>2]|0);j=i+28|0;f[j>>2]=0;n=i+32|0;f[n>>2]=16384;if(d){d=c;c=16384;do{l=d;d=d+-1|0;p=f[a+(d<<2)>>2]|0;m=f[i>>2]|0;q=f[m+(p<<3)>>2]|0;r=q<<10;if(c>>>0>>0)s=c;else{t=c;while(1){v=f[o>>2]|0;w=f[j>>2]|0;f[j>>2]=w+1;b[v+w>>0]=t;w=(f[n>>2]|0)>>>8;f[n>>2]=w;if(w>>>0>>0){s=w;break}else t=w}}c=(((s>>>0)/(q>>>0)|0)<<12)+((s>>>0)%(q>>>0)|0)+(f[m+(p<<3)+4>>2]|0)|0;f[n>>2]=c}while((l|0)>1)}_f(i,e);e=f[i>>2]|0;if(e|0){c=i+4|0;i=f[c>>2]|0;if((i|0)!=(e|0))f[c>>2]=i+(~((i+-8-e|0)>>>3)<<3);Oq(e)}e=f[h>>2]|0;if(!e){u=g;return 1}h=f[k>>2]|0;if((h|0)!=(e|0))f[k>>2]=h+(~((h+-8-e|0)>>>3)<<3);Oq(e);u=g;return 1}function se(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0;g=u;u=u+64|0;h=g+48|0;i=g;j=d+1|0;f[h>>2]=0;k=h+4|0;f[k>>2]=0;f[h+8>>2]=0;do if(j)if(j>>>0>536870911)aq(h);else{l=ln(j<<3)|0;f[h>>2]=l;m=l+(j<<3)|0;f[h+8>>2]=m;sj(l|0,0,(d<<3)+8|0)|0;f[k>>2]=m;n=l;o=m;break}else{n=0;o=0}while(0);d=(c|0)>0;if(d){j=0;do{m=n+(f[a+(j<<2)>>2]<<3)|0;l=m;p=Vn(f[l>>2]|0,f[l+4>>2]|0,1,0)|0;l=m;f[l>>2]=p;f[l+4>>2]=I;j=j+1|0}while((j|0)!=(c|0))}j=i+40|0;l=j;f[l>>2]=0;f[l+4>>2]=0;f[i>>2]=0;f[i+4>>2]=0;f[i+8>>2]=0;f[i+12>>2]=0;f[i+16>>2]=0;f[i+20>>2]=0;hd(i,n,o-n>>3,e)|0;n=i+16|0;o=Tn(f[n>>2]|0,f[n+4>>2]|0,1)|0;n=(f[e+4>>2]|0)-(f[e>>2]|0)|0;l=j;f[l>>2]=n;f[l+4>>2]=0;l=Vn(o|0,I|0,39,0)|0;o=Yn(l|0,I|0,3)|0;l=Vn(o|0,I|0,8,0)|0;o=Vn(l|0,I|0,n|0,0)|0;Cl(e,o,I);o=i+24|0;f[o>>2]=(f[e>>2]|0)+(f[j>>2]|0);j=i+28|0;f[j>>2]=0;n=i+32|0;f[n>>2]=16384;if(d){d=c;c=16384;do{l=d;d=d+-1|0;p=f[a+(d<<2)>>2]|0;m=f[i>>2]|0;q=f[m+(p<<3)>>2]|0;r=q<<10;if(c>>>0>>0)s=c;else{t=c;while(1){v=f[o>>2]|0;w=f[j>>2]|0;f[j>>2]=w+1;b[v+w>>0]=t;w=(f[n>>2]|0)>>>8;f[n>>2]=w;if(w>>>0>>0){s=w;break}else t=w}}c=(((s>>>0)/(q>>>0)|0)<<12)+((s>>>0)%(q>>>0)|0)+(f[m+(p<<3)+4>>2]|0)|0;f[n>>2]=c}while((l|0)>1)}_f(i,e);e=f[i>>2]|0;if(e|0){c=i+4|0;i=f[c>>2]|0;if((i|0)!=(e|0))f[c>>2]=i+(~((i+-8-e|0)>>>3)<<3);Oq(e)}e=f[h>>2]|0;if(!e){u=g;return 1}h=f[k>>2]|0;if((h|0)!=(e|0))f[k>>2]=h+(~((h+-8-e|0)>>>3)<<3);Oq(e);u=g;return 1}function te(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0;g=u;u=u+64|0;h=g+48|0;i=g;j=d+1|0;f[h>>2]=0;k=h+4|0;f[k>>2]=0;f[h+8>>2]=0;do if(j)if(j>>>0>536870911)aq(h);else{l=ln(j<<3)|0;f[h>>2]=l;m=l+(j<<3)|0;f[h+8>>2]=m;sj(l|0,0,(d<<3)+8|0)|0;f[k>>2]=m;n=l;o=m;break}else{n=0;o=0}while(0);d=(c|0)>0;if(d){j=0;do{m=n+(f[a+(j<<2)>>2]<<3)|0;l=m;p=Vn(f[l>>2]|0,f[l+4>>2]|0,1,0)|0;l=m;f[l>>2]=p;f[l+4>>2]=I;j=j+1|0}while((j|0)!=(c|0))}j=i+40|0;l=j;f[l>>2]=0;f[l+4>>2]=0;f[i>>2]=0;f[i+4>>2]=0;f[i+8>>2]=0;f[i+12>>2]=0;f[i+16>>2]=0;f[i+20>>2]=0;id(i,n,o-n>>3,e)|0;n=i+16|0;o=Tn(f[n>>2]|0,f[n+4>>2]|0,1)|0;n=(f[e+4>>2]|0)-(f[e>>2]|0)|0;l=j;f[l>>2]=n;f[l+4>>2]=0;l=Vn(o|0,I|0,39,0)|0;o=Yn(l|0,I|0,3)|0;l=Vn(o|0,I|0,8,0)|0;o=Vn(l|0,I|0,n|0,0)|0;Cl(e,o,I);o=i+24|0;f[o>>2]=(f[e>>2]|0)+(f[j>>2]|0);j=i+28|0;f[j>>2]=0;n=i+32|0;f[n>>2]=16384;if(d){d=c;c=16384;do{l=d;d=d+-1|0;p=f[a+(d<<2)>>2]|0;m=f[i>>2]|0;q=f[m+(p<<3)>>2]|0;r=q<<10;if(c>>>0>>0)s=c;else{t=c;while(1){v=f[o>>2]|0;w=f[j>>2]|0;f[j>>2]=w+1;b[v+w>>0]=t;w=(f[n>>2]|0)>>>8;f[n>>2]=w;if(w>>>0>>0){s=w;break}else t=w}}c=(((s>>>0)/(q>>>0)|0)<<12)+((s>>>0)%(q>>>0)|0)+(f[m+(p<<3)+4>>2]|0)|0;f[n>>2]=c}while((l|0)>1)}_f(i,e);e=f[i>>2]|0;if(e|0){c=i+4|0;i=f[c>>2]|0;if((i|0)!=(e|0))f[c>>2]=i+(~((i+-8-e|0)>>>3)<<3);Oq(e)}e=f[h>>2]|0;if(!e){u=g;return 1}h=f[k>>2]|0;if((h|0)!=(e|0))f[k>>2]=h+(~((h+-8-e|0)>>>3)<<3);Oq(e);u=g;return 1}function ue(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0;g=u;u=u+64|0;h=g+48|0;i=g;j=d+1|0;f[h>>2]=0;k=h+4|0;f[k>>2]=0;f[h+8>>2]=0;do if(j)if(j>>>0>536870911)aq(h);else{l=ln(j<<3)|0;f[h>>2]=l;m=l+(j<<3)|0;f[h+8>>2]=m;sj(l|0,0,(d<<3)+8|0)|0;f[k>>2]=m;n=l;o=m;break}else{n=0;o=0}while(0);d=(c|0)>0;if(d){j=0;do{m=n+(f[a+(j<<2)>>2]<<3)|0;l=m;p=Vn(f[l>>2]|0,f[l+4>>2]|0,1,0)|0;l=m;f[l>>2]=p;f[l+4>>2]=I;j=j+1|0}while((j|0)!=(c|0))}j=i+40|0;l=j;f[l>>2]=0;f[l+4>>2]=0;f[i>>2]=0;f[i+4>>2]=0;f[i+8>>2]=0;f[i+12>>2]=0;f[i+16>>2]=0;f[i+20>>2]=0;jd(i,n,o-n>>3,e)|0;n=i+16|0;o=Tn(f[n>>2]|0,f[n+4>>2]|0,1)|0;n=(f[e+4>>2]|0)-(f[e>>2]|0)|0;l=j;f[l>>2]=n;f[l+4>>2]=0;l=Vn(o|0,I|0,39,0)|0;o=Yn(l|0,I|0,3)|0;l=Vn(o|0,I|0,8,0)|0;o=Vn(l|0,I|0,n|0,0)|0;Cl(e,o,I);o=i+24|0;f[o>>2]=(f[e>>2]|0)+(f[j>>2]|0);j=i+28|0;f[j>>2]=0;n=i+32|0;f[n>>2]=16384;if(d){d=c;c=16384;do{l=d;d=d+-1|0;p=f[a+(d<<2)>>2]|0;m=f[i>>2]|0;q=f[m+(p<<3)>>2]|0;r=q<<10;if(c>>>0>>0)s=c;else{t=c;while(1){v=f[o>>2]|0;w=f[j>>2]|0;f[j>>2]=w+1;b[v+w>>0]=t;w=(f[n>>2]|0)>>>8;f[n>>2]=w;if(w>>>0>>0){s=w;break}else t=w}}c=(((s>>>0)/(q>>>0)|0)<<12)+((s>>>0)%(q>>>0)|0)+(f[m+(p<<3)+4>>2]|0)|0;f[n>>2]=c}while((l|0)>1)}_f(i,e);e=f[i>>2]|0;if(e|0){c=i+4|0;i=f[c>>2]|0;if((i|0)!=(e|0))f[c>>2]=i+(~((i+-8-e|0)>>>3)<<3);Oq(e)}e=f[h>>2]|0;if(!e){u=g;return 1}h=f[k>>2]|0;if((h|0)!=(e|0))f[k>>2]=h+(~((h+-8-e|0)>>>3)<<3);Oq(e);u=g;return 1}function ve(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0;c=u;u=u+16|0;d=c+4|0;e=c;f[a+64>>2]=b;g=a+128|0;f[g>>2]=2;h=a+132|0;f[h>>2]=7;i=Qa[f[(f[b>>2]|0)+32>>2]&127](b)|0;b=a+88|0;f[b>>2]=i;j=a+104|0;k=(f[i+28>>2]|0)-(f[i+24>>2]|0)>>2;i=a+108|0;l=f[i>>2]|0;m=f[j>>2]|0;n=l-m>>2;o=m;p=l;if(k>>>0<=n>>>0)if(k>>>0>>0?(q=o+(k<<2)|0,(q|0)!=(p|0)):0){o=p+(~((p+-4-q|0)>>>2)<<2)|0;f[i>>2]=o;r=o;s=m}else{r=l;s=m}else{Ci(j,k-n|0);r=f[i>>2]|0;s=f[j>>2]|0}if((r|0)!=(s|0)){s=0;do{r=f[b>>2]|0;f[e>>2]=s;f[d>>2]=f[e>>2];n=hh(r,d)|0;r=f[j>>2]|0;f[r+(s<<2)>>2]=n;s=s+1|0}while(s>>>0<(f[i>>2]|0)-r>>2>>>0)}i=a+92|0;s=f[b>>2]|0;j=f[s>>2]|0;d=(f[s+4>>2]|0)-j>>2;e=a+96|0;r=f[e>>2]|0;n=f[i>>2]|0;k=r-n>>2;m=n;n=r;if(d>>>0<=k>>>0)if(d>>>0>>0?(r=m+(d<<2)|0,(r|0)!=(n|0)):0){f[e>>2]=n+(~((n+-4-r|0)>>>2)<<2);t=s;v=j}else{t=s;v=j}else{Ci(i,d-k|0);k=f[b>>2]|0;t=k;v=f[k>>2]|0}k=f[t+4>>2]|0;if((k|0)!=(v|0)){v=f[i>>2]|0;i=f[t>>2]|0;t=k-i>>2;k=0;do{f[v+(k<<2)>>2]=f[i+(k<<2)>>2];k=k+1|0}while(k>>>0>>0)}t=(f[h>>2]|0)-(f[g>>2]|0)+1|0;g=a+136|0;h=a+140|0;a=f[h>>2]|0;k=f[g>>2]|0;i=(a-k|0)/12|0;v=a;if(t>>>0>i>>>0){Kf(g,t-i|0);u=c;return 1}if(t>>>0>=i>>>0){u=c;return 1}i=k+(t*12|0)|0;if((i|0)==(v|0)){u=c;return 1}else w=v;while(1){v=w+-12|0;f[h>>2]=v;t=f[v>>2]|0;if(!t)x=v;else{v=w+-8|0;k=f[v>>2]|0;if((k|0)!=(t|0))f[v>>2]=k+(~((k+-4-t|0)>>>2)<<2);Oq(t);x=f[h>>2]|0}if((x|0)==(i|0))break;else w=x}u=c;return 1}function we(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;e=f[b>>2]|0;g=f[b+4>>2]|0;h=((f[c>>2]|0)-e<<3)+(f[c+4>>2]|0)-g|0;c=e;if((h|0)<=0){i=d+4|0;j=f[d>>2]|0;f[a>>2]=j;k=a+4|0;l=f[i>>2]|0;f[k>>2]=l;return}if(!g){e=d+4|0;m=h;n=e;o=f[e>>2]|0;p=c}else{e=32-g|0;q=(h|0)<(e|0)?h:e;r=-1>>>(e-q|0)&-1<>2];e=d+4|0;s=f[e>>2]|0;t=32-s|0;u=t>>>0>>0?t:q;v=f[d>>2]|0;w=f[v>>2]&~(-1>>>(t-u|0)&-1<>2]=w;s=f[e>>2]|0;f[v>>2]=(s>>>0>g>>>0?r<>>(g-s|0))|w;w=(f[e>>2]|0)+u|0;s=v+(w>>>5<<2)|0;f[d>>2]=s;v=w&31;f[e>>2]=v;w=q-u|0;if((w|0)>0){f[s>>2]=f[s>>2]&~(-1>>>(32-w|0))|r>>>(g+u|0);f[e>>2]=w;x=w}else x=v;v=c+4|0;f[b>>2]=v;m=h-q|0;n=e;o=x;p=v}v=32-o|0;x=-1<31){o=~x;e=f[d>>2]|0;q=~m;h=m+((q|0)>-64?q:-64)+32|0;q=(h>>>5)+1|0;c=m+-32-(h&-32)|0;h=m;w=p;u=f[e>>2]|0;g=e;while(1){r=f[w>>2]|0;s=u&o;f[g>>2]=s;f[g>>2]=s|r<>2];g=g+4|0;u=f[g>>2]&x|r>>>v;f[g>>2]=u;if((h|0)<=63)break;else{h=h+-32|0;w=w+4|0}}w=p+(q<<2)|0;f[b>>2]=w;f[d>>2]=e+(q<<2);y=c;z=w}else{y=m;z=p}if((y|0)<=0){i=n;j=f[d>>2]|0;f[a>>2]=j;k=a+4|0;l=f[i>>2]|0;f[k>>2]=l;return}p=f[z>>2]&-1>>>(32-y|0);z=(v|0)<(y|0)?v:y;m=f[d>>2]|0;w=f[m>>2]&~(-1<>2]&-1>>>(v-z|0));f[m>>2]=w;f[m>>2]=w|p<>2];w=(f[n>>2]|0)+z|0;v=m+(w>>>5<<2)|0;f[d>>2]=v;f[n>>2]=w&31;w=y-z|0;if((w|0)<=0){i=n;j=f[d>>2]|0;f[a>>2]=j;k=a+4|0;l=f[i>>2]|0;f[k>>2]=l;return}f[v>>2]=f[v>>2]&~(-1>>>(32-w|0))|p>>>z;f[n>>2]=w;i=n;j=f[d>>2]|0;f[a>>2]=j;k=a+4|0;l=f[i>>2]|0;f[k>>2]=l;return}function xe(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;e=f[b>>2]|0;g=b+4|0;h=f[g>>2]|0;i=((f[c>>2]|0)-e<<3)+(f[c+4>>2]|0)-h|0;c=e;if((i|0)<=0){j=d+4|0;k=f[d>>2]|0;f[a>>2]=k;l=a+4|0;m=f[j>>2]|0;f[l>>2]=m;return}if(!h){e=d+4|0;n=i;o=e;p=c;q=f[e>>2]|0}else{e=32-h|0;r=(i|0)<(e|0)?i:e;s=-1>>>(e-r|0)&-1<>2];c=d+4|0;h=f[c>>2]|0;e=32-h|0;t=e>>>0>>0?e:r;u=f[d>>2]|0;v=f[u>>2]&~(-1>>>(e-t|0)&-1<>2]=v;h=f[c>>2]|0;e=f[g>>2]|0;f[u>>2]=(h>>>0>e>>>0?s<>>(e-h|0))|v;v=(f[c>>2]|0)+t|0;h=u+(v>>>5<<2)|0;f[d>>2]=h;u=v&31;f[c>>2]=u;v=r-t|0;if((v|0)>0){e=f[h>>2]&~(-1>>>(32-v|0));f[h>>2]=e;f[h>>2]=e|s>>>((f[g>>2]|0)+t|0);f[c>>2]=v;w=v}else w=u;u=(f[b>>2]|0)+4|0;f[b>>2]=u;n=i-r|0;o=c;p=u;q=w}w=32-q|0;u=-1<31){q=~u;c=~n;r=n+((c|0)>-64?c:-64)+32&-32;c=n;i=p;while(1){v=f[i>>2]|0;t=f[d>>2]|0;g=f[t>>2]&q;f[t>>2]=g;f[t>>2]=g|v<>2];g=t+4|0;f[d>>2]=g;f[g>>2]=f[g>>2]&u|v>>>w;i=(f[b>>2]|0)+4|0;f[b>>2]=i;if((c|0)<=63)break;else c=c+-32|0}x=n+-32-r|0;y=i}else{x=n;y=p}if((x|0)<=0){j=o;k=f[d>>2]|0;f[a>>2]=k;l=a+4|0;m=f[j>>2]|0;f[l>>2]=m;return}p=f[y>>2]&-1>>>(32-x|0);y=(w|0)<(x|0)?w:x;n=f[d>>2]|0;i=f[n>>2]&~(-1<>2]&-1>>>(w-y|0));f[n>>2]=i;f[n>>2]=i|p<>2];i=(f[o>>2]|0)+y|0;w=n+(i>>>5<<2)|0;f[d>>2]=w;f[o>>2]=i&31;i=x-y|0;if((i|0)<=0){j=o;k=f[d>>2]|0;f[a>>2]=k;l=a+4|0;m=f[j>>2]|0;f[l>>2]=m;return}f[w>>2]=f[w>>2]&~(-1>>>(32-i|0))|p>>>y;f[o>>2]=i;j=o;k=f[d>>2]|0;f[a>>2]=k;l=a+4|0;m=f[j>>2]|0;f[l>>2]=m;return}function ye(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;d=u;u=u+16|0;e=d+4|0;g=d;h=d+9|0;i=d+8|0;j=f[(f[a+184>>2]|0)+(c<<2)>>2]&255;b[h>>0]=j;c=a+4|0;k=f[(f[c>>2]|0)+44>>2]|0;l=k+16|0;m=f[l+4>>2]|0;if((m|0)>0|(m|0)==0&(f[l>>2]|0)>>>0>0)n=j;else{f[g>>2]=f[k+4>>2];f[e>>2]=f[g>>2];Me(k,e,h,h+1|0)|0;n=b[h>>0]|0}a:do if(n<<24>>24>-1){k=a+172|0;j=f[(f[k>>2]|0)+((n<<24>>24)*136|0)>>2]|0;l=(Qa[f[(f[a>>2]|0)+40>>2]&127](a)|0)+52|0;m=b[h>>0]|0;o=f[k>>2]|0;k=f[o+(m*136|0)+132>>2]|0;switch(f[(f[(f[l>>2]|0)+84>>2]|0)+(j<<2)>>2]|0){case 0:{p=k;q=7;break a;break}case 1:{if(b[o+(m*136|0)+28>>0]|0){p=k;q=7;break a}break}default:{}}m=f[(f[c>>2]|0)+44>>2]|0;b[i>>0]=1;o=m+16|0;j=f[o+4>>2]|0;if(!((j|0)>0|(j|0)==0&(f[o>>2]|0)>>>0>0)){f[g>>2]=f[m+4>>2];f[e>>2]=f[g>>2];Me(m,e,i,i+1|0)|0}r=k}else{p=f[a+68>>2]|0;q=7}while(0);if((q|0)==7){q=f[(f[c>>2]|0)+44>>2]|0;b[i>>0]=0;a=q+16|0;h=f[a+4>>2]|0;if(!((h|0)>0|(h|0)==0&(f[a>>2]|0)>>>0>0)){f[g>>2]=f[q+4>>2];f[e>>2]=f[g>>2];Me(q,e,i,i+1|0)|0}r=p}p=f[(f[c>>2]|0)+44>>2]|0;b[i>>0]=r;r=p+16|0;c=f[r+4>>2]|0;if((c|0)>0|(c|0)==0&(f[r>>2]|0)>>>0>0){u=d;return 1}f[g>>2]=f[p+4>>2];f[e>>2]=f[g>>2];Me(p,e,i,i+1|0)|0;u=d;return 1}function ze(a,b,c,d,e,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0;h=u;u=u+16|0;i=h+4|0;j=h;k=a+60|0;f[a+64>>2]=g;g=a+8|0;Mh(g,b,d,e);d=a+56|0;l=f[d>>2]|0;m=f[l+4>>2]|0;n=f[l>>2]|0;o=m-n|0;if((o|0)<=0){u=h;return 1}p=(o>>>2)+-1|0;o=a+68|0;q=a+16|0;r=a+32|0;s=a+12|0;t=a+28|0;v=a+20|0;w=a+24|0;if(m-n>>2>>>0>p>>>0){x=p;y=n}else{z=l;aq(z)}while(1){f[j>>2]=f[y+(x<<2)>>2];f[i>>2]=f[j>>2];ub(k,i,b,x);l=X(x,e)|0;n=b+(l<<2)|0;p=c+(l<<2)|0;l=f[g>>2]|0;if((l|0)>0){m=0;a=o;A=l;while(1){if((A|0)>0){l=0;do{B=f[a+(l<<2)>>2]|0;C=f[q>>2]|0;if((B|0)>(C|0)){D=f[r>>2]|0;f[D+(l<<2)>>2]=C;E=D}else{D=f[s>>2]|0;C=f[r>>2]|0;f[C+(l<<2)>>2]=(B|0)<(D|0)?D:B;E=C}l=l+1|0}while((l|0)<(f[g>>2]|0));F=E}else F=f[r>>2]|0;l=(f[n+(m<<2)>>2]|0)-(f[F+(m<<2)>>2]|0)|0;C=p+(m<<2)|0;f[C>>2]=l;if((l|0)>=(f[t>>2]|0)){if((l|0)>(f[w>>2]|0)){G=l-(f[v>>2]|0)|0;H=18}}else{G=(f[v>>2]|0)+l|0;H=18}if((H|0)==18){H=0;f[C>>2]=G}m=m+1|0;A=f[g>>2]|0;if((m|0)>=(A|0))break;else a=F}}x=x+-1|0;if((x|0)<=-1){H=3;break}a=f[d>>2]|0;y=f[a>>2]|0;if((f[a+4>>2]|0)-y>>2>>>0<=x>>>0){z=a;H=4;break}}if((H|0)==3){u=h;return 1}else if((H|0)==4)aq(z);return 0}function Ae(a,b,c,d,e,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0;h=u;u=u+16|0;i=h+4|0;j=h;k=a+60|0;f[a+64>>2]=g;g=a+8|0;Mh(g,b,d,e);d=a+56|0;l=f[d>>2]|0;m=f[l+4>>2]|0;n=f[l>>2]|0;o=m-n|0;if((o|0)<=0){u=h;return 1}p=(o>>>2)+-1|0;o=a+68|0;q=a+16|0;r=a+32|0;s=a+12|0;t=a+28|0;v=a+20|0;w=a+24|0;if(m-n>>2>>>0>p>>>0){x=p;y=n}else{z=l;aq(z)}while(1){f[j>>2]=f[y+(x<<2)>>2];f[i>>2]=f[j>>2];tb(k,i,b,x);l=X(x,e)|0;n=b+(l<<2)|0;p=c+(l<<2)|0;l=f[g>>2]|0;if((l|0)>0){m=0;a=o;A=l;while(1){if((A|0)>0){l=0;do{B=f[a+(l<<2)>>2]|0;C=f[q>>2]|0;if((B|0)>(C|0)){D=f[r>>2]|0;f[D+(l<<2)>>2]=C;E=D}else{D=f[s>>2]|0;C=f[r>>2]|0;f[C+(l<<2)>>2]=(B|0)<(D|0)?D:B;E=C}l=l+1|0}while((l|0)<(f[g>>2]|0));F=E}else F=f[r>>2]|0;l=(f[n+(m<<2)>>2]|0)-(f[F+(m<<2)>>2]|0)|0;C=p+(m<<2)|0;f[C>>2]=l;if((l|0)>=(f[t>>2]|0)){if((l|0)>(f[w>>2]|0)){G=l-(f[v>>2]|0)|0;H=18}}else{G=(f[v>>2]|0)+l|0;H=18}if((H|0)==18){H=0;f[C>>2]=G}m=m+1|0;A=f[g>>2]|0;if((m|0)>=(A|0))break;else a=F}}x=x+-1|0;if((x|0)<=-1){H=3;break}a=f[d>>2]|0;y=f[a>>2]|0;if((f[a+4>>2]|0)-y>>2>>>0<=x>>>0){z=a;H=4;break}}if((H|0)==3){u=h;return 1}else if((H|0)==4)aq(z);return 0}function Be(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0;b=u;u=u+16|0;c=b+4|0;d=b;e=a+12|0;g=f[e>>2]|0;h=(f[g+4>>2]|0)-(f[g>>2]|0)>>2;if(!h){u=b;return 1}i=a+152|0;j=a+140|0;k=a+144|0;l=a+148|0;a=0;m=g;while(1){f[d>>2]=(a>>>0)/3|0;f[c>>2]=f[d>>2];if(!(_j(m,c)|0)?(g=f[e>>2]|0,(f[(f[g+12>>2]|0)+(a<<2)>>2]|0)==-1):0){n=a+1|0;o=((n>>>0)%3|0|0)==0?a+-2|0:n;if((o|0)==-1)p=-1;else p=f[(f[g>>2]|0)+(o<<2)>>2]|0;o=f[i>>2]|0;if((f[o+(p<<2)>>2]|0)==-1){g=f[k>>2]|0;n=f[l>>2]|0;if((g|0)==(n<<5|0)){if((g+1|0)<0){q=11;break}r=n<<6;n=g+32&-32;vi(j,g>>>0<1073741823?(r>>>0>>0?n:r):2147483647);s=f[k>>2]|0;t=f[i>>2]|0}else{s=g;t=o}f[k>>2]=s+1;o=(f[j>>2]|0)+(s>>>5<<2)|0;f[o>>2]=f[o>>2]&~(1<<(s&31));o=t+(p<<2)|0;if((f[o>>2]|0)==-1){r=a;n=o;while(1){f[n>>2]=g;o=r+1|0;a:do if((r|0)!=-1?(v=((o>>>0)%3|0|0)==0?r+-2|0:o,(v|0)!=-1):0){w=f[e>>2]|0;x=f[w+12>>2]|0;y=v;while(1){v=f[x+(y<<2)>>2]|0;if((v|0)==-1)break;z=v+1|0;A=((z>>>0)%3|0|0)==0?v+-2|0:z;if((A|0)==-1){B=-1;C=-1;break a}else y=A}x=y+1|0;A=((x>>>0)%3|0|0)==0?y+-2|0:x;if((A|0)==-1){B=y;C=-1}else{B=y;C=f[(f[w>>2]|0)+(A<<2)>>2]|0}}else{B=-1;C=-1}while(0);n=t+(C<<2)|0;if((f[n>>2]|0)!=-1)break;else r=B}}}}r=a+1|0;if(r>>>0>=h>>>0){q=3;break}a=r;m=f[e>>2]|0}if((q|0)==3){u=b;return 1}else if((q|0)==11)aq(j);return 0}function Ce(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;d=u;u=u+32|0;e=d+8|0;g=d;h=a+4|0;i=f[h>>2]|0;if(i>>>0>=b>>>0){f[h>>2]=b;u=d;return}j=a+8|0;k=f[j>>2]|0;l=k<<5;m=b-i|0;if(l>>>0>>0|i>>>0>(l-m|0)>>>0){f[e>>2]=0;n=e+4|0;f[n>>2]=0;o=e+8|0;f[o>>2]=0;if((b|0)<0)aq(a);p=k<<6;k=b+31&-32;vi(e,l>>>0<1073741823?(p>>>0>>0?k:p):2147483647);p=f[h>>2]|0;f[n>>2]=p+m;k=f[a>>2]|0;l=k;q=f[e>>2]|0;r=(l+(p>>>5<<2)-k<<3)+(p&31)|0;if((r|0)>0){p=r>>>5;im(q|0,k|0,p<<2|0)|0;k=r&31;r=q+(p<<2)|0;s=r;if(!k){t=0;v=s}else{w=-1>>>(32-k|0);f[r>>2]=f[r>>2]&~w|f[l+(p<<2)>>2]&w;t=k;v=s}}else{t=0;v=q}f[g>>2]=v;f[g+4>>2]=t;t=g;g=f[t>>2]|0;v=f[t+4>>2]|0;t=f[a>>2]|0;f[a>>2]=f[e>>2];f[e>>2]=t;e=f[h>>2]|0;f[h>>2]=f[n>>2];f[n>>2]=e;e=f[j>>2]|0;f[j>>2]=f[o>>2];f[o>>2]=e;if(t|0)Oq(t);x=g;y=v}else{v=(f[a>>2]|0)+(i>>>5<<2)|0;f[h>>2]=b;x=v;y=i&31}if(!m){u=d;return}i=(y|0)==0;v=x;if(c){if(i){z=m;A=x;B=v}else{c=32-y|0;b=c>>>0>m>>>0?m:c;f[v>>2]=f[v>>2]|-1>>>(c-b|0)&-1<>>5;sj(A|0,-1,c<<2|0)|0;A=z&31;z=B+(c<<2)|0;if(!A){u=d;return}f[z>>2]=f[z>>2]|-1>>>(32-A|0);u=d;return}else{if(i){C=m;D=x;E=v}else{x=32-y|0;i=x>>>0>m>>>0?m:x;f[v>>2]=f[v>>2]&~(-1>>>(x-i|0)&-1<>>5;sj(D|0,0,y<<2|0)|0;D=C&31;C=E+(y<<2)|0;if(!D){u=d;return}f[C>>2]=f[C>>2]&~(-1>>>(32-D|0));u=d;return}}function De(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0;a=u;u=u+48|0;g=a+36|0;h=a+24|0;i=a+12|0;j=a;if(!c){k=0;u=a;return k|0}f[g>>2]=0;f[g+4>>2]=0;f[g+8>>2]=0;l=Gj(d)|0;if(l>>>0>4294967279)aq(g);if(l>>>0<11){b[g+11>>0]=l;if(!l)m=g;else{n=g;o=7}}else{p=l+16&-16;q=ln(p)|0;f[g>>2]=q;f[g+8>>2]=p|-2147483648;f[g+4>>2]=l;n=q;o=7}if((o|0)==7){kh(n|0,d|0,l|0)|0;m=n}b[m+l>>0]=0;f[h>>2]=0;f[h+4>>2]=0;f[h+8>>2]=0;l=Gj(e)|0;if(l>>>0>4294967279)aq(h);if(l>>>0<11){b[h+11>>0]=l;if(!l)r=h;else{s=h;o=13}}else{m=l+16&-16;n=ln(m)|0;f[h>>2]=n;f[h+8>>2]=m|-2147483648;f[h+4>>2]=l;s=n;o=13}if((o|0)==13){kh(s|0,e|0,l|0)|0;r=s}b[r+l>>0]=0;f[i>>2]=0;f[i+4>>2]=0;f[i+8>>2]=0;l=Gj(d)|0;if(l>>>0>4294967279)aq(i);if(l>>>0<11){b[i+11>>0]=l;if(!l)t=i;else{v=i;o=19}}else{r=l+16&-16;s=ln(r)|0;f[i>>2]=s;f[i+8>>2]=r|-2147483648;f[i+4>>2]=l;v=s;o=19}if((o|0)==19){kh(v|0,d|0,l|0)|0;t=v}b[t+l>>0]=0;f[j>>2]=0;f[j+4>>2]=0;f[j+8>>2]=0;l=Gj(e)|0;if(l>>>0>4294967279)aq(j);if(l>>>0<11){b[j+11>>0]=l;if(!l)w=j;else{x=j;o=25}}else{t=l+16&-16;v=ln(t)|0;f[j>>2]=v;f[j+8>>2]=t|-2147483648;f[j+4>>2]=l;x=v;o=25}if((o|0)==25){kh(x|0,e|0,l|0)|0;w=x}b[w+l>>0]=0;mn(c,i,j);if((b[j+11>>0]|0)<0)Oq(f[j>>2]|0);if((b[i+11>>0]|0)<0)Oq(f[i>>2]|0);if((b[h+11>>0]|0)<0)Oq(f[h>>2]|0);if((b[g+11>>0]|0)<0)Oq(f[g>>2]|0);k=1;u=a;return k|0}function Ee(a,c){a=a|0;c=c|0;var d=0,e=0,g=0;f[a>>2]=f[c>>2];d=c+4|0;f[a+4>>2]=f[d>>2];e=c+8|0;f[a+8>>2]=f[e>>2];g=c+12|0;f[a+12>>2]=f[g>>2];f[d>>2]=0;f[e>>2]=0;f[g>>2]=0;g=c+16|0;f[a+16>>2]=f[g>>2];e=c+20|0;f[a+20>>2]=f[e>>2];d=c+24|0;f[a+24>>2]=f[d>>2];f[g>>2]=0;f[e>>2]=0;f[d>>2]=0;b[a+28>>0]=b[c+28>>0]|0;d=a+32|0;e=c+32|0;f[d>>2]=0;g=a+36|0;f[g>>2]=0;f[a+40>>2]=0;f[d>>2]=f[e>>2];d=c+36|0;f[g>>2]=f[d>>2];g=c+40|0;f[a+40>>2]=f[g>>2];f[g>>2]=0;f[d>>2]=0;f[e>>2]=0;e=a+44|0;d=c+44|0;f[e>>2]=0;g=a+48|0;f[g>>2]=0;f[a+52>>2]=0;f[e>>2]=f[d>>2];e=c+48|0;f[g>>2]=f[e>>2];g=c+52|0;f[a+52>>2]=f[g>>2];f[g>>2]=0;f[e>>2]=0;f[d>>2]=0;d=a+56|0;e=c+56|0;f[d>>2]=0;g=a+60|0;f[g>>2]=0;f[a+64>>2]=0;f[d>>2]=f[e>>2];d=c+60|0;f[g>>2]=f[d>>2];g=c+64|0;f[a+64>>2]=f[g>>2];f[g>>2]=0;f[d>>2]=0;f[e>>2]=0;f[a+68>>2]=f[c+68>>2];f[a+72>>2]=f[c+72>>2];e=a+76|0;d=c+76|0;f[e>>2]=0;g=a+80|0;f[g>>2]=0;f[a+84>>2]=0;f[e>>2]=f[d>>2];e=c+80|0;f[g>>2]=f[e>>2];g=c+84|0;f[a+84>>2]=f[g>>2];f[g>>2]=0;f[e>>2]=0;f[d>>2]=0;d=a+88|0;e=c+88|0;f[d>>2]=0;g=a+92|0;f[g>>2]=0;f[a+96>>2]=0;f[d>>2]=f[e>>2];d=c+92|0;f[g>>2]=f[d>>2];g=c+96|0;f[a+96>>2]=f[g>>2];f[g>>2]=0;f[d>>2]=0;f[e>>2]=0;b[a+100>>0]=b[c+100>>0]|0;e=a+104|0;d=c+104|0;f[e>>2]=0;g=a+108|0;f[g>>2]=0;f[a+112>>2]=0;f[e>>2]=f[d>>2];e=c+108|0;f[g>>2]=f[e>>2];g=c+112|0;f[a+112>>2]=f[g>>2];f[g>>2]=0;f[e>>2]=0;f[d>>2]=0;d=a+116|0;e=c+116|0;f[d>>2]=0;g=a+120|0;f[g>>2]=0;f[a+124>>2]=0;f[d>>2]=f[e>>2];d=c+120|0;f[g>>2]=f[d>>2];g=c+124|0;f[a+124>>2]=f[g>>2];f[g>>2]=0;f[d>>2]=0;f[e>>2]=0;f[a+128>>2]=f[c+128>>2];f[a+132>>2]=f[c+132>>2];return}function Fe(a,c,d,e,g){a=a|0;c=c|0;d=d|0;e=e|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0;h=u;u=u+48|0;i=h+36|0;j=h+24|0;k=h+8|0;l=h+4|0;m=h;n=e+4|0;Rh(i,c,(f[n>>2]|0)-(f[e>>2]|0)>>2,2,g,d,1);g=f[i>>2]|0;o=(f[f[g>>2]>>2]|0)+(f[g+48>>2]|0)|0;f[k>>2]=-1;f[k+4>>2]=-1;f[k+8>>2]=-1;f[k+12>>2]=-1;p=f[c+4>>2]|0;if((p+-2|0)>>>0<=28){f[k>>2]=p;c=1<>2]=c+-1;p=c+-2|0;f[k+8>>2]=p;f[k+12>>2]=(p|0)/2|0;p=f[e>>2]|0;if((f[n>>2]|0)==(p|0))q=g;else{c=d+84|0;r=d+68|0;s=d+48|0;t=d+40|0;v=0;w=0;x=p;while(1){p=f[x+(v<<2)>>2]|0;if(!(b[c>>0]|0))y=f[(f[r>>2]|0)+(p<<2)>>2]|0;else y=p;p=s;z=f[p>>2]|0;A=f[p+4>>2]|0;p=t;B=f[p>>2]|0;C=un(B|0,f[p+4>>2]|0,y|0,0)|0;p=Vn(C|0,I|0,z|0,A|0)|0;kh(j|0,(f[f[d>>2]>>2]|0)+p|0,B|0)|0;rf(k,j,l,m);f[o+(w<<2)>>2]=f[l>>2];f[o+((w|1)<<2)>>2]=f[m>>2];v=v+1|0;x=f[e>>2]|0;if(v>>>0>=(f[n>>2]|0)-x>>2>>>0)break;else w=w+2|0}q=f[i>>2]|0}f[a>>2]=q;f[i>>2]=0;u=h;return}f[a>>2]=0;f[i>>2]=0;if(!g){u=h;return}i=g+88|0;a=f[i>>2]|0;f[i>>2]=0;if(a|0){i=f[a+8>>2]|0;if(i|0){q=a+12|0;if((f[q>>2]|0)!=(i|0))f[q>>2]=i;Oq(i)}Oq(a)}a=f[g+68>>2]|0;if(a|0){i=g+72|0;q=f[i>>2]|0;if((q|0)!=(a|0))f[i>>2]=q+(~((q+-4-a|0)>>>2)<<2);Oq(a)}a=g+64|0;q=f[a>>2]|0;f[a>>2]=0;if(q|0){a=f[q>>2]|0;if(a|0){i=q+4|0;if((f[i>>2]|0)!=(a|0))f[i>>2]=a;Oq(a)}Oq(q)}Oq(g);u=h;return}function Ge(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;d=a+8|0;e=f[d>>2]|0;g=a+4|0;h=f[g>>2]|0;if(((e-h|0)/136|0)>>>0>=c>>>0){i=c;j=h;do{f[j>>2]=-1;Ok(j+4|0);b[j+100>>0]=1;k=j+104|0;f[k>>2]=0;f[k+4>>2]=0;f[k+8>>2]=0;f[k+12>>2]=0;f[k+16>>2]=0;f[k+20>>2]=0;f[k+24>>2]=0;j=(f[g>>2]|0)+136|0;f[g>>2]=j;i=i+-1|0}while((i|0)!=0);return}i=f[a>>2]|0;j=(h-i|0)/136|0;h=j+c|0;if(h>>>0>31580641)aq(a);k=(e-i|0)/136|0;i=k<<1;e=k>>>0<15790320?(i>>>0>>0?h:i):31580641;do if(e)if(e>>>0>31580641){i=ra(8)|0;Oo(i,16035);f[i>>2]=7256;va(i|0,1112,110)}else{l=ln(e*136|0)|0;break}else l=0;while(0);i=l+(j*136|0)|0;j=i;h=l+(e*136|0)|0;e=c;c=j;l=i;do{f[l>>2]=-1;Ok(l+4|0);b[l+100>>0]=1;k=l+104|0;f[k>>2]=0;f[k+4>>2]=0;f[k+8>>2]=0;f[k+12>>2]=0;f[k+16>>2]=0;f[k+20>>2]=0;f[k+24>>2]=0;l=c+136|0;c=l;e=e+-1|0}while((e|0)!=0);e=f[a>>2]|0;l=f[g>>2]|0;if((l|0)==(e|0)){m=j;n=e;o=e}else{k=l;l=j;j=i;do{k=k+-136|0;Ee(j+-136|0,k);j=l+-136|0;l=j}while((k|0)!=(e|0));m=l;n=f[a>>2]|0;o=f[g>>2]|0}f[a>>2]=m;f[g>>2]=c;f[d>>2]=h;h=n;if((o|0)!=(h|0)){d=o;do{o=f[d+-20>>2]|0;if(o|0){c=d+-16|0;g=f[c>>2]|0;if((g|0)!=(o|0))f[c>>2]=g+(~((g+-4-o|0)>>>2)<<2);Oq(o)}o=f[d+-32>>2]|0;if(o|0){g=d+-28|0;c=f[g>>2]|0;if((c|0)!=(o|0))f[g>>2]=c+(~((c+-4-o|0)>>>2)<<2);Oq(o)}Mi(d+-132|0);d=d+-136|0}while((d|0)!=(h|0))}if(!n)return;Oq(n);return}function He(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;c=f[b>>2]|0;b=a+12|0;d=(c|0)==-1;e=c+1|0;do if(!d){g=((e>>>0)%3|0|0)==0?c+-2|0:e;if(!((c>>>0)%3|0)){h=g;i=c+2|0;break}else{h=g;i=c+-1|0;break}}else{h=-1;i=-1}while(0);e=d?-1:(c>>>0)/3|0;g=a+28|0;j=(f[g>>2]|0)+(e>>>5<<2)|0;f[j>>2]=1<<(e&31)|f[j>>2];j=a+172|0;e=a+176|0;k=a+280|0;if(((!d?(d=f[(f[(f[b>>2]|0)+12>>2]|0)+(c<<2)>>2]|0,(d|0)!=-1):0)?(a=(d>>>0)/3|0,(f[(f[g>>2]|0)+(a>>>5<<2)>>2]&1<<(a&31)|0)==0):0)?(a=f[j>>2]|0,(f[e>>2]|0)!=(a|0)):0){d=c>>>5;l=1<<(c&31);c=0;m=a;do{a=(f[k>>2]|0)+(c<<5)|0;if(!(l&f[(f[m+(c*136|0)+4>>2]|0)+(d<<2)>>2]))fj(a,0);else fj(a,1);c=c+1|0;m=f[j>>2]|0}while(c>>>0<(((f[e>>2]|0)-m|0)/136|0)>>>0)}if((((h|0)!=-1?(m=f[(f[(f[b>>2]|0)+12>>2]|0)+(h<<2)>>2]|0,(m|0)!=-1):0)?(c=(m>>>0)/3|0,(f[(f[g>>2]|0)+(c>>>5<<2)>>2]&1<<(c&31)|0)==0):0)?(c=f[j>>2]|0,(f[e>>2]|0)!=(c|0)):0){m=h>>>5;d=1<<(h&31);h=0;l=c;do{c=(f[k>>2]|0)+(h<<5)|0;if(!(d&f[(f[l+(h*136|0)+4>>2]|0)+(m<<2)>>2]))fj(c,0);else fj(c,1);h=h+1|0;l=f[j>>2]|0}while(h>>>0<(((f[e>>2]|0)-l|0)/136|0)>>>0)}if((i|0)==-1)return 1;l=f[(f[(f[b>>2]|0)+12>>2]|0)+(i<<2)>>2]|0;if((l|0)==-1)return 1;b=(l>>>0)/3|0;if(f[(f[g>>2]|0)+(b>>>5<<2)>>2]&1<<(b&31)|0)return 1;b=f[j>>2]|0;if((f[e>>2]|0)==(b|0))return 1;g=i>>>5;l=1<<(i&31);i=0;h=b;do{b=(f[k>>2]|0)+(i<<5)|0;if(!(l&f[(f[h+(i*136|0)+4>>2]|0)+(g<<2)>>2]))fj(b,0);else fj(b,1);i=i+1|0;h=f[j>>2]|0}while(i>>>0<(((f[e>>2]|0)-h|0)/136|0)>>>0);return 1}function Ie(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0;d=u;u=u+16|0;e=d+4|0;g=d;h=d+8|0;i=a+4|0;j=a+8|0;ci((f[j>>2]|0)-(f[i>>2]|0)>>2,c)|0;k=f[i>>2]|0;if((f[j>>2]|0)==(k|0)){u=d;return 1}l=a+32|0;a=c+16|0;m=c+4|0;n=h+1|0;o=h+1|0;p=h+1|0;q=h+1|0;r=0;s=k;do{k=f[(f[(f[l>>2]|0)+8>>2]|0)+(f[s+(r<<2)>>2]<<2)>>2]|0;b[h>>0]=f[k+56>>2];t=a;v=f[t>>2]|0;w=f[t+4>>2]|0;if((w|0)>0|(w|0)==0&v>>>0>0){x=w;y=v}else{f[g>>2]=f[m>>2];f[e>>2]=f[g>>2];Me(c,e,h,q)|0;v=a;x=f[v+4>>2]|0;y=f[v>>2]|0}b[h>>0]=f[k+28>>2];if((x|0)>0|(x|0)==0&y>>>0>0){z=x;A=y}else{f[g>>2]=f[m>>2];f[e>>2]=f[g>>2];Me(c,e,h,p)|0;v=a;z=f[v+4>>2]|0;A=f[v>>2]|0}b[h>>0]=b[k+24>>0]|0;if((z|0)>0|(z|0)==0&A>>>0>0){B=z;C=A}else{f[g>>2]=f[m>>2];f[e>>2]=f[g>>2];Me(c,e,h,o)|0;v=a;B=f[v+4>>2]|0;C=f[v>>2]|0}b[h>>0]=b[k+32>>0]|0;if(!((B|0)>0|(B|0)==0&C>>>0>0)){f[g>>2]=f[m>>2];f[e>>2]=f[g>>2];Me(c,e,h,n)|0}ci(f[k+60>>2]|0,c)|0;r=r+1|0;s=f[i>>2]|0}while(r>>>0<(f[j>>2]|0)-s>>2>>>0);u=d;return 1}function Je(a,c,d,e,g){a=a|0;c=c|0;d=d|0;e=e|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=Oa,D=Oa,E=Oa,F=Oa;h=u;u=u+16|0;i=h;j=e+4|0;k=b[d+24>>0]|0;l=k<<24>>24;Rh(a,c,(f[j>>2]|0)-(f[e>>2]|0)>>2,l,g,d,1);g=f[a>>2]|0;a=(f[f[g>>2]>>2]|0)+(f[g+48>>2]|0)|0;g=f[c+4>>2]|0;Ap(i);Ko(i,$(n[c+20>>2]),(1<>>0>1073741823?-1:l<<2)|0;m=f[j>>2]|0;j=f[e>>2]|0;e=j;if((m|0)==(j|0)){Mq(g);u=h;return}o=d+68|0;p=d+48|0;q=d+40|0;r=c+8|0;c=i+4|0;s=(b[d+84>>0]|0)==0;t=m-j>>2;if(k<<24>>24>0){v=0;w=0}else{k=0;do{j=f[e+(k<<2)>>2]|0;if(s)x=f[(f[o>>2]|0)+(j<<2)>>2]|0;else x=j;j=p;m=f[j>>2]|0;y=f[j+4>>2]|0;j=q;z=f[j>>2]|0;A=un(z|0,f[j+4>>2]|0,x|0,0)|0;j=Vn(A|0,I|0,m|0,y|0)|0;kh(g|0,(f[f[d>>2]>>2]|0)+j|0,z|0)|0;k=k+1|0}while(k>>>0>>0);Mq(g);u=h;return}while(1){k=f[e+(v<<2)>>2]|0;if(s)B=f[(f[o>>2]|0)+(k<<2)>>2]|0;else B=k;k=p;x=f[k>>2]|0;z=f[k+4>>2]|0;k=q;j=f[k>>2]|0;y=un(j|0,f[k+4>>2]|0,B|0,0)|0;k=Vn(y|0,I|0,x|0,z|0)|0;kh(g|0,(f[f[d>>2]>>2]|0)+k|0,j|0)|0;j=f[r>>2]|0;C=$(n[i>>2]);k=0;z=w;while(1){D=$(n[g+(k<<2)>>2]);E=$(D-$(n[j+(k<<2)>>2]));x=E<$(0.0);D=$(-E);F=$((x?D:E)/C);y=~~$(J($($(F*$(f[c>>2]|0))+$(.5))));f[a+(z<<2)>>2]=x?0-y|0:y;k=k+1|0;if((k|0)==(l|0))break;else z=z+1|0}v=v+1|0;if(v>>>0>=t>>>0)break;else w=w+l|0}Mq(g);u=h;return}function Ke(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0;d=u;u=u+32|0;e=d+16|0;g=d+12|0;h=d+8|0;i=d+4|0;j=d;lp(a);f[a+16>>2]=0;f[a+20>>2]=0;f[a+12>>2]=a+16;k=a+24|0;lp(k);if((a|0)!=(b|0)){f[h>>2]=f[b>>2];f[i>>2]=b+4;f[g>>2]=f[h>>2];f[e>>2]=f[i>>2];Oc(a,g,e)}l=b+24|0;if((k|0)!=(l|0)){f[h>>2]=f[l>>2];f[i>>2]=b+28;f[g>>2]=f[h>>2];f[e>>2]=f[i>>2];Oc(k,g,e)}f[j>>2]=0;k=c+8|0;l=c+12|0;c=f[l>>2]|0;m=f[k>>2]|0;if((c-m|0)<=0){u=d;return}n=b+16|0;b=m;m=c;c=0;while(1){o=f[(f[b+(c<<2)>>2]|0)+56>>2]|0;p=f[n>>2]|0;if(p){q=n;r=p;a:while(1){p=r;while(1){if((f[p+16>>2]|0)>=(o|0))break;s=f[p+4>>2]|0;if(!s){t=q;break a}else p=s}r=f[p>>2]|0;if(!r){t=p;break}else q=p}if((t|0)!=(n|0)?(o|0)>=(f[t+16>>2]|0):0){q=t+20|0;r=Hd(a,j)|0;if((r|0)!=(q|0)){f[h>>2]=f[q>>2];f[i>>2]=t+24;f[g>>2]=f[h>>2];f[e>>2]=f[i>>2];Oc(r,g,e)}v=f[j>>2]|0;w=f[k>>2]|0;x=f[l>>2]|0}else{v=c;w=b;x=m}}else{v=c;w=b;x=m}c=v+1|0;f[j>>2]=c;if((c|0)>=(x-w>>2|0))break;else{b=w;m=x}}u=d;return}function Le(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0;d=u;u=u+16|0;e=d+4|0;g=d;h=d+8|0;i=a+12|0;ci(f[i>>2]|0,c)|0;if(!(f[i>>2]|0)){j=1;u=d;return j|0}k=c+16|0;l=c+4|0;m=h+1|0;n=h+1|0;o=h+1|0;p=0;while(1){q=f[a>>2]|0;r=f[q+(p<<3)>>2]|0;if(r>>>0>63)if(r>>>0>16383)if(r>>>0>4194303){j=0;s=20;break}else{t=2;s=13}else{t=1;s=13}else if(!r){v=p+1|0;w=0;while(1){if(f[q+(v+w<<3)>>2]|0){x=w;break}y=w+1|0;if(y>>>0<63)w=y;else{x=y;break}}b[h>>0]=x<<2|3;w=k;v=f[w+4>>2]|0;if(!((v|0)>0|(v|0)==0&(f[w>>2]|0)>>>0>0)){f[g>>2]=f[l>>2];f[e>>2]=f[g>>2];Me(c,e,h,o)|0}z=x+p|0}else{t=0;s=13}if((s|0)==13){s=0;b[h>>0]=t|r<<2;w=k;v=f[w+4>>2]|0;if(!((v|0)>0|(v|0)==0&(f[w>>2]|0)>>>0>0)){f[g>>2]=f[l>>2];f[e>>2]=f[g>>2];Me(c,e,h,n)|0}if(!t)z=p;else{w=0;do{w=w+1|0;b[h>>0]=r>>>((w<<3)+-2|0);v=k;q=f[v+4>>2]|0;if(!((q|0)>0|(q|0)==0&(f[v>>2]|0)>>>0>0)){f[g>>2]=f[l>>2];f[e>>2]=f[g>>2];Me(c,e,h,m)|0}}while((w|0)<(t|0));z=p}}p=z+1|0;if(p>>>0>=(f[i>>2]|0)>>>0){j=1;s=20;break}}if((s|0)==20){u=d;return j|0}return 0}function Me(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;g=f[a>>2]|0;h=g;i=(f[c>>2]|0)-h|0;c=g+i|0;j=e-d|0;if((j|0)<=0){k=c;return k|0}l=a+8|0;m=f[l>>2]|0;n=a+4|0;o=f[n>>2]|0;p=o;if((j|0)<=(m-p|0)){q=p-c|0;if((j|0)>(q|0)){r=d+q|0;if((r|0)==(e|0))s=o;else{t=r;u=o;while(1){b[u>>0]=b[t>>0]|0;t=t+1|0;v=(f[n>>2]|0)+1|0;f[n>>2]=v;if((t|0)==(e|0)){s=v;break}else u=v}}if((q|0)>0){w=r;x=s}else{k=c;return k|0}}else{w=e;x=o}s=x-(c+j)|0;r=c+s|0;if(r>>>0>>0){q=r;r=x;do{b[r>>0]=b[q>>0]|0;q=q+1|0;r=(f[n>>2]|0)+1|0;f[n>>2]=r}while((q|0)!=(o|0))}if(s|0)im(x+(0-s)|0,c|0,s|0)|0;if((w|0)==(d|0)){k=c;return k|0}else{y=d;z=c}while(1){b[z>>0]=b[y>>0]|0;y=y+1|0;if((y|0)==(w|0)){k=c;break}else z=z+1|0}return k|0}z=p-h+j|0;if((z|0)<0)aq(a);j=m-h|0;h=j<<1;m=j>>>0<1073741823?(h>>>0>>0?z:h):2147483647;h=c;if(!m)A=0;else A=ln(m)|0;z=A+i|0;i=z;j=A+m|0;if((d|0)==(e|0)){B=i;C=g}else{g=d;d=i;i=z;do{b[i>>0]=b[g>>0]|0;i=d+1|0;d=i;g=g+1|0}while((g|0)!=(e|0));B=d;C=f[a>>2]|0}d=h-C|0;e=z+(0-d)|0;if((d|0)>0)kh(e|0,C|0,d|0)|0;d=(f[n>>2]|0)-h|0;if((d|0)>0){h=B;kh(h|0,c|0,d|0)|0;D=h+d|0;E=f[a>>2]|0}else{D=B;E=C}f[a>>2]=e;f[n>>2]=D;f[l>>2]=j;if(!E){k=z;return k|0}Oq(E);k=z;return k|0}function Ne(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;e=u;u=u+16|0;g=e;h=f[(f[c+4>>2]|0)+(d<<2)>>2]|0;d=f[c+28>>2]|0;c=f[(f[(f[d+4>>2]|0)+8>>2]|0)+(h<<2)>>2]|0;switch(f[c+28>>2]|0){case 5:case 6:case 3:case 4:case 1:case 2:{i=ln(40)|0;zo(i);j=i;k=j;f[a>>2]=k;u=e;return}case 9:{l=3;break}default:{}}if((l|0)==3){i=f[d+48>>2]|0;d=ln(32)|0;f[g>>2]=d;f[g+8>>2]=-2147483616;f[g+4>>2]=17;m=d;n=14495;o=m+17|0;do{b[m>>0]=b[n>>0]|0;m=m+1|0;n=n+1|0}while((m|0)<(o|0));b[d+17>>0]=0;d=i+16|0;n=f[d>>2]|0;if(n){p=d;q=n;a:while(1){n=q;while(1){if((f[n+16>>2]|0)>=(h|0))break;r=f[n+4>>2]|0;if(!r){s=p;break a}else n=r}q=f[n>>2]|0;if(!q){s=n;break}else p=n}if(((s|0)!=(d|0)?(h|0)>=(f[s+16>>2]|0):0)?(h=s+20|0,(Jh(h,g)|0)!=0):0)t=Hk(h,g,-1)|0;else l=12}else l=12;if((l|0)==12)t=Hk(i,g,-1)|0;if((b[g+11>>0]|0)<0)Oq(f[g>>2]|0);if((t|0)>0)if((f[c+56>>2]|0)==1){c=ln(48)|0;m=c;o=m+48|0;do{f[m>>2]=0;m=m+4|0}while((m|0)<(o|0));zo(c);f[c>>2]=2496;f[c+40>>2]=1168;f[c+44>>2]=-1;j=c;k=j;f[a>>2]=k;u=e;return}else{c=ln(64)|0;ym(c);j=c;k=j;f[a>>2]=k;u=e;return}}c=ln(36)|0;Hm(c);j=c;k=j;f[a>>2]=k;u=e;return}function Oe(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;d=(c|0)==(a|0);b[c+12>>0]=d&1;if(d)return;else e=c;while(1){g=e+8|0;h=f[g>>2]|0;c=h+12|0;if(b[c>>0]|0){i=23;break}j=h+8|0;k=f[j>>2]|0;d=f[k>>2]|0;if((d|0)==(h|0)){l=f[k+4>>2]|0;if(!l){i=7;break}m=l+12|0;if(!(b[m>>0]|0))n=m;else{i=7;break}}else{if(!d){i=16;break}m=d+12|0;if(!(b[m>>0]|0))n=m;else{i=16;break}}b[c>>0]=1;c=(k|0)==(a|0);b[k+12>>0]=c&1;b[n>>0]=1;if(c){i=23;break}else e=k}if((i|0)==7){if((f[h>>2]|0)==(e|0)){o=h;p=k}else{n=h+4|0;a=f[n>>2]|0;c=f[a>>2]|0;f[n>>2]=c;if(!c)q=k;else{f[c+8>>2]=h;q=f[j>>2]|0}f[a+8>>2]=q;q=f[j>>2]|0;f[((f[q>>2]|0)==(h|0)?q:q+4|0)>>2]=a;f[a>>2]=h;f[j>>2]=a;o=a;p=f[a+8>>2]|0}b[o+12>>0]=1;b[p+12>>0]=0;o=f[p>>2]|0;a=o+4|0;q=f[a>>2]|0;f[p>>2]=q;if(q|0)f[q+8>>2]=p;q=p+8|0;f[o+8>>2]=f[q>>2];c=f[q>>2]|0;f[((f[c>>2]|0)==(p|0)?c:c+4|0)>>2]=o;f[a>>2]=p;f[q>>2]=o;return}else if((i|0)==16){if((f[h>>2]|0)==(e|0)){o=e+4|0;q=f[o>>2]|0;f[h>>2]=q;if(!q)r=k;else{f[q+8>>2]=h;r=f[j>>2]|0}f[g>>2]=r;r=f[j>>2]|0;f[((f[r>>2]|0)==(h|0)?r:r+4|0)>>2]=e;f[o>>2]=h;f[j>>2]=e;s=e;t=f[e+8>>2]|0}else{s=h;t=k}b[s+12>>0]=1;b[t+12>>0]=0;s=t+4|0;k=f[s>>2]|0;h=f[k>>2]|0;f[s>>2]=h;if(h|0)f[h+8>>2]=t;h=t+8|0;f[k+8>>2]=f[h>>2];s=f[h>>2]|0;f[((f[s>>2]|0)==(t|0)?s:s+4|0)>>2]=k;f[k>>2]=t;f[h>>2]=k;return}else if((i|0)==23)return}function Pe(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;d=f[b>>2]|0;b=a+12|0;e=(d|0)==-1;do if(e){g=1;h=-1;i=-1}else{j=d+(((d>>>0)%3|0|0)==0?2:-1)|0;if((j|0)!=-1){k=f[(f[b>>2]|0)+12>>2]|0;l=j;while(1){j=f[k+(l<<2)>>2]|0;if((j|0)==-1){m=0;n=l;break}o=j+1|0;l=((o>>>0)%3|0|0)==0?j+-2|0:o;if((l|0)==-1){m=1;n=-1;break}}if(e){g=m;h=-1;i=n;break}else{p=m;q=n}}else{p=1;q=-1}g=p;h=f[(f[f[b>>2]>>2]|0)+(d<<2)>>2]|0;i=q}while(0);if(c){c=(f[a+84>>2]|0)+(h>>>5<<2)|0;f[c>>2]=f[c>>2]|1<<(h&31);r=1}else r=0;c=f[(f[a+152>>2]|0)+(h<<2)>>2]|0;q=(f[a+140>>2]|0)+(c>>>5<<2)|0;f[q>>2]=f[q>>2]|1<<(c&31);if(!g){g=(((i>>>0)%3|0|0)==0?2:-1)+i|0;if((g|0)==-1){s=-1;t=i}else{s=f[(f[f[b>>2]>>2]|0)+(g<<2)>>2]|0;t=i}}else{s=-1;t=-1}if((s|0)==(h|0)){u=r;return u|0}i=f[a+84>>2]|0;a=r;r=s;s=t;while(1){t=i+(r>>>5<<2)|0;f[t>>2]=f[t>>2]|1<<(r&31);t=a+1|0;g=s+1|0;a:do if((s|0)!=-1?(c=((g>>>0)%3|0|0)==0?s+-2|0:g,(c|0)!=-1):0){q=f[b>>2]|0;d=f[q+12>>2]|0;p=c;while(1){c=f[d+(p<<2)>>2]|0;if((c|0)==-1)break;n=c+1|0;m=((n>>>0)%3|0|0)==0?c+-2|0:n;if((m|0)==-1){v=-1;w=-1;break a}else p=m}d=(((p>>>0)%3|0|0)==0?2:-1)+p|0;if((d|0)==-1){v=-1;w=p}else{v=f[(f[q>>2]|0)+(d<<2)>>2]|0;w=p}}else{v=-1;w=-1}while(0);if((v|0)==(h|0)){u=t;break}else{a=t;r=v;s=w}}return u|0}function Qe(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=Oa,C=Oa,D=Oa,E=Oa;g=u;u=u+16|0;h=g;i=b[d+24>>0]|0;j=i<<24>>24;Rh(a,c,e,j,0,d,1);k=f[a>>2]|0;a=(f[f[k>>2]>>2]|0)+(f[k+48>>2]|0)|0;k=f[c+4>>2]|0;Ap(h);Ko(h,$(n[c+20>>2]),(1<>>0>1073741823?-1:j<<2)|0;if(!e){Mq(k);u=g;return}l=d+68|0;m=d+48|0;o=d+40|0;p=c+8|0;c=h+4|0;q=(b[d+84>>0]|0)==0;if(i<<24>>24>0){r=0;s=0}else{i=0;do{if(q)t=f[(f[l>>2]|0)+(i<<2)>>2]|0;else t=i;v=m;w=f[v>>2]|0;x=f[v+4>>2]|0;v=o;y=f[v>>2]|0;z=un(y|0,f[v+4>>2]|0,t|0,0)|0;v=Vn(z|0,I|0,w|0,x|0)|0;kh(k|0,(f[f[d>>2]>>2]|0)+v|0,y|0)|0;i=i+1|0}while((i|0)!=(e|0));Mq(k);u=g;return}while(1){if(q)A=f[(f[l>>2]|0)+(s<<2)>>2]|0;else A=s;i=m;t=f[i>>2]|0;y=f[i+4>>2]|0;i=o;v=f[i>>2]|0;x=un(v|0,f[i+4>>2]|0,A|0,0)|0;i=Vn(x|0,I|0,t|0,y|0)|0;kh(k|0,(f[f[d>>2]>>2]|0)+i|0,v|0)|0;v=f[p>>2]|0;B=$(n[h>>2]);i=0;y=r;while(1){C=$(n[k+(i<<2)>>2]);D=$(C-$(n[v+(i<<2)>>2]));t=D<$(0.0);C=$(-D);E=$((t?C:D)/B);x=~~$(J($($(E*$(f[c>>2]|0))+$(.5))));f[a+(y<<2)>>2]=t?0-x|0:x;i=i+1|0;if((i|0)==(j|0))break;else y=y+1|0}s=s+1|0;if((s|0)==(e|0))break;else r=r+j|0}Mq(k);u=g;return}function Re(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;c=a+4|0;d=f[c>>2]|0;e=a+100|0;if(d>>>0<(f[e>>2]|0)>>>0){f[c>>2]=d+1;g=h[d>>0]|0}else g=Si(a)|0;switch(g|0){case 43:case 45:{d=(g|0)==45&1;i=f[c>>2]|0;if(i>>>0<(f[e>>2]|0)>>>0){f[c>>2]=i+1;j=h[i>>0]|0}else j=Si(a)|0;if((b|0)!=0&(j+-48|0)>>>0>9?(f[e>>2]|0)!=0:0){f[c>>2]=(f[c>>2]|0)+-1;k=d;l=j}else{k=d;l=j}break}default:{k=0;l=g}}if((l+-48|0)>>>0>9)if(!(f[e>>2]|0)){m=-2147483648;n=0}else{f[c>>2]=(f[c>>2]|0)+-1;m=-2147483648;n=0}else{g=0;j=l;while(1){g=j+-48+(g*10|0)|0;l=f[c>>2]|0;if(l>>>0<(f[e>>2]|0)>>>0){f[c>>2]=l+1;o=h[l>>0]|0}else o=Si(a)|0;if(!((o+-48|0)>>>0<10&(g|0)<214748364))break;else j=o}j=((g|0)<0)<<31>>31;if((o+-48|0)>>>0<10){l=o;d=g;b=j;while(1){i=un(d|0,b|0,10,0)|0;p=I;q=Vn(l|0,((l|0)<0)<<31>>31|0,-48,-1)|0;r=Vn(q|0,I|0,i|0,p|0)|0;p=I;i=f[c>>2]|0;if(i>>>0<(f[e>>2]|0)>>>0){f[c>>2]=i+1;s=h[i>>0]|0}else s=Si(a)|0;if((s+-48|0)>>>0<10&((p|0)<21474836|(p|0)==21474836&r>>>0<2061584302)){l=s;d=r;b=p}else{t=s;u=r;v=p;break}}}else{t=o;u=g;v=j}if((t+-48|0)>>>0<10)do{t=f[c>>2]|0;if(t>>>0<(f[e>>2]|0)>>>0){f[c>>2]=t+1;w=h[t>>0]|0}else w=Si(a)|0}while((w+-48|0)>>>0<10);if(f[e>>2]|0)f[c>>2]=(f[c>>2]|0)+-1;c=(k|0)!=0;k=Xn(0,0,u|0,v|0)|0;m=c?I:v;n=c?k:u}I=m;return n|0}function Se(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;b=a+1176|0;c=f[b>>2]|0;if(c|0){d=a+1180|0;e=f[d>>2]|0;if((e|0)==(c|0))g=c;else{h=e;while(1){e=h+-12|0;f[d>>2]=e;i=f[e>>2]|0;if(!i)j=e;else{e=h+-8|0;k=f[e>>2]|0;if((k|0)!=(i|0))f[e>>2]=k+(~((k+-4-i|0)>>>2)<<2);Oq(i);j=f[d>>2]|0}if((j|0)==(c|0))break;else h=j}g=f[b>>2]|0}Oq(g)}g=a+1164|0;b=f[g>>2]|0;if(b|0){j=a+1168|0;h=f[j>>2]|0;if((h|0)==(b|0))l=b;else{c=h;while(1){h=c+-12|0;f[j>>2]=h;d=f[h>>2]|0;if(!d)m=h;else{h=c+-8|0;i=f[h>>2]|0;if((i|0)!=(d|0))f[h>>2]=i+(~((i+-4-d|0)>>>2)<<2);Oq(d);m=f[j>>2]|0}if((m|0)==(b|0))break;else c=m}l=f[g>>2]|0}Oq(l)}l=f[a+1152>>2]|0;if(l|0){g=a+1156|0;m=f[g>>2]|0;if((m|0)!=(l|0))f[g>>2]=m+(~((m+-4-l|0)>>>2)<<2);Oq(l)}l=f[a+1140>>2]|0;if(l|0){m=a+1144|0;g=f[m>>2]|0;if((g|0)!=(l|0))f[m>>2]=g+(~((g+-4-l|0)>>>2)<<2);Oq(l)}l=f[a+1128>>2]|0;if(!l){n=a+1108|0;jl(n);o=a+1088|0;jl(o);p=a+1068|0;jl(p);q=a+1036|0;Fj(q);r=a+12|0;Nh(r);return}g=a+1132|0;m=f[g>>2]|0;if((m|0)!=(l|0))f[g>>2]=m+(~((m+-4-l|0)>>>2)<<2);Oq(l);n=a+1108|0;jl(n);o=a+1088|0;jl(o);p=a+1068|0;jl(p);q=a+1036|0;Fj(q);r=a+12|0;Nh(r);return}function Te(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;d=u;u=u+16|0;e=d;g=a+4|0;h=f[g>>2]|0;i=f[(f[a>>2]|0)+52>>2]|0;if(!h){if(!(Sa[i&31](a,c,0)|0)){j=0;u=d;return j|0}}else if(!(Sa[i&31](a,c,f[(f[h+4>>2]|0)+80>>2]|0)|0)){j=0;u=d;return j|0}if(!(b[a+28>>0]|0)){j=1;u=d;return j|0}h=f[a+8>>2]|0;i=f[a+32>>2]|0;a=f[h+80>>2]|0;f[e>>2]=0;k=e+4|0;f[k>>2]=0;f[e+8>>2]=0;do if(a)if(a>>>0>1073741823)aq(e);else{l=a<<2;m=ln(l)|0;f[e>>2]=m;n=m+(a<<2)|0;f[e+8>>2]=n;sj(m|0,0,l|0)|0;f[k>>2]=n;o=m;p=n;q=m;break}else{o=0;p=0;q=0}while(0);e=f[c+4>>2]|0;a=f[c>>2]|0;c=a;a:do if((e|0)!=(a|0)){m=e-a>>2;if(b[h+84>>0]|0){n=0;while(1){f[o+(f[c+(n<<2)>>2]<<2)>>2]=n;n=n+1|0;if(n>>>0>=m>>>0)break a}}n=f[h+68>>2]|0;l=0;do{f[o+(f[n+(f[c+(l<<2)>>2]<<2)>>2]<<2)>>2]=l;l=l+1|0}while(l>>>0>>0)}while(0);c=f[(f[(f[g>>2]|0)+4>>2]|0)+80>>2]|0;b:do if(c|0){g=f[i+68>>2]|0;if(b[h+84>>0]|0){a=0;while(1){f[g+(a<<2)>>2]=f[o+(a<<2)>>2];a=a+1|0;if(a>>>0>=c>>>0)break b}}a=f[h+68>>2]|0;e=0;do{f[g+(e<<2)>>2]=f[o+(f[a+(e<<2)>>2]<<2)>>2];e=e+1|0}while(e>>>0>>0)}while(0);if(o|0){if((p|0)!=(o|0))f[k>>2]=p+(~((p+-4-o|0)>>>2)<<2);Oq(q)}j=1;u=d;return j|0}function Ue(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0;c=u;u=u+16|0;d=c;f[a>>2]=0;f[a+8>>2]=b;Oh(a+12|0);wn(a+1036|0);vo(a+1068|0);vo(a+1088|0);vo(a+1108|0);e=a+1128|0;f[e>>2]=0;g=a+1132|0;f[g>>2]=0;f[a+1136>>2]=0;h=(b|0)==0;do if(!h)if(b>>>0>1073741823)aq(e);else{i=b<<2;j=ln(i)|0;f[e>>2]=j;k=j+(b<<2)|0;f[a+1136>>2]=k;sj(j|0,0,i|0)|0;f[g>>2]=k;break}while(0);g=a+1140|0;f[g>>2]=0;e=a+1144|0;f[e>>2]=0;f[a+1148>>2]=0;if(!h){k=b<<2;i=ln(k)|0;f[g>>2]=i;g=i+(b<<2)|0;f[a+1148>>2]=g;sj(i|0,0,k|0)|0;f[e>>2]=g}g=a+1152|0;f[g>>2]=0;e=a+1156|0;f[e>>2]=0;f[a+1160>>2]=0;if(!h){k=b<<2;i=ln(k)|0;f[g>>2]=i;g=i+(b<<2)|0;f[a+1160>>2]=g;sj(i|0,0,k|0)|0;f[e>>2]=g}g=b<<5|1;f[d>>2]=0;e=d+4|0;f[e>>2]=0;f[d+8>>2]=0;if(!h){k=b<<2;i=ln(k)|0;f[d>>2]=i;j=i+(b<<2)|0;f[d+8>>2]=j;sj(i|0,0,k|0)|0;f[e>>2]=j}lk(a+1164|0,g,d);j=f[d>>2]|0;if(j|0){k=f[e>>2]|0;if((k|0)!=(j|0))f[e>>2]=k+(~((k+-4-j|0)>>>2)<<2);Oq(j)}f[d>>2]=0;j=d+4|0;f[j>>2]=0;f[d+8>>2]=0;if(!h){h=b<<2;k=ln(h)|0;f[d>>2]=k;e=k+(b<<2)|0;f[d+8>>2]=e;sj(k|0,0,h|0)|0;f[j>>2]=e}lk(a+1176|0,g,d);g=f[d>>2]|0;if(!g){u=c;return}d=f[j>>2]|0;if((d|0)!=(g|0))f[j>>2]=d+(~((d+-4-g|0)>>>2)<<2);Oq(g);u=c;return}function Ve(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0.0,D=0.0,E=0.0;g=u;u=u+16|0;h=g;i=b+16|0;f[a>>2]=f[i>>2];f[a+4>>2]=f[i+4>>2];f[a+8>>2]=f[i+8>>2];f[a+12>>2]=f[i+12>>2];f[a+16>>2]=f[i+16>>2];f[a+20>>2]=f[i+20>>2];j=a+8|0;f[j>>2]=(f[j>>2]|0)+d;j=(d|0)>0;if(j){k=b+4|0;l=a+16|0;m=a+12|0;n=f[b>>2]|0;o=n;q=0;r=o;s=n;n=o;while(1){o=f[c+(q<<2)>>2]|0;t=f[k>>2]|0;if(t-s>>2>>>0>o>>>0){v=r;w=n}else{x=o+1|0;f[h>>2]=0;y=t-s>>2;z=s;A=t;if(x>>>0<=y>>>0)if(x>>>0>>0?(t=z+(x<<2)|0,(t|0)!=(A|0)):0){f[k>>2]=A+(~((A+-4-t|0)>>>2)<<2);B=r}else B=r;else{Ch(b,x-y|0,h);B=f[b>>2]|0}v=B;w=B}y=w+(o<<2)|0;x=f[y>>2]|0;s=w;if((x|0)<=1)if((x|0)==0?(f[l>>2]=(f[l>>2]|0)+1,o>>>0>(f[m>>2]|0)>>>0):0){f[m>>2]=o;C=0.0}else C=0.0;else{D=+(x|0);C=+Zg(D)*D}x=(f[y>>2]|0)+1|0;f[y>>2]=x;D=+(x|0);E=+Zg(D)*D-C;p[a>>3]=+p[a>>3]+E;q=q+1|0;if((q|0)==(d|0))break;else{r=v;n=w}}}if(e){f[i>>2]=f[a>>2];f[i+4>>2]=f[a+4>>2];f[i+8>>2]=f[a+8>>2];f[i+12>>2]=f[a+12>>2];f[i+16>>2]=f[a+16>>2];u=g;return}if(!j){u=g;return}j=f[b>>2]|0;b=0;do{a=j+(f[c+(b<<2)>>2]<<2)|0;f[a>>2]=(f[a>>2]|0)+-1;b=b+1|0}while((b|0)!=(d|0));u=g;return}function We(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0.0;a:do if(b>>>0<=20)do switch(b|0){case 9:{d=(f[c>>2]|0)+(4-1)&~(4-1);e=f[d>>2]|0;f[c>>2]=d+4;f[a>>2]=e;break a;break}case 10:{e=(f[c>>2]|0)+(4-1)&~(4-1);d=f[e>>2]|0;f[c>>2]=e+4;e=a;f[e>>2]=d;f[e+4>>2]=((d|0)<0)<<31>>31;break a;break}case 11:{d=(f[c>>2]|0)+(4-1)&~(4-1);e=f[d>>2]|0;f[c>>2]=d+4;d=a;f[d>>2]=e;f[d+4>>2]=0;break a;break}case 12:{d=(f[c>>2]|0)+(8-1)&~(8-1);e=d;g=f[e>>2]|0;h=f[e+4>>2]|0;f[c>>2]=d+8;d=a;f[d>>2]=g;f[d+4>>2]=h;break a;break}case 13:{h=(f[c>>2]|0)+(4-1)&~(4-1);d=f[h>>2]|0;f[c>>2]=h+4;h=(d&65535)<<16>>16;d=a;f[d>>2]=h;f[d+4>>2]=((h|0)<0)<<31>>31;break a;break}case 14:{h=(f[c>>2]|0)+(4-1)&~(4-1);d=f[h>>2]|0;f[c>>2]=h+4;h=a;f[h>>2]=d&65535;f[h+4>>2]=0;break a;break}case 15:{h=(f[c>>2]|0)+(4-1)&~(4-1);d=f[h>>2]|0;f[c>>2]=h+4;h=(d&255)<<24>>24;d=a;f[d>>2]=h;f[d+4>>2]=((h|0)<0)<<31>>31;break a;break}case 16:{h=(f[c>>2]|0)+(4-1)&~(4-1);d=f[h>>2]|0;f[c>>2]=h+4;h=a;f[h>>2]=d&255;f[h+4>>2]=0;break a;break}case 17:{h=(f[c>>2]|0)+(8-1)&~(8-1);i=+p[h>>3];f[c>>2]=h+8;p[a>>3]=i;break a;break}case 18:{h=(f[c>>2]|0)+(8-1)&~(8-1);i=+p[h>>3];f[c>>2]=h+8;p[a>>3]=i;break a;break}default:break a}while(0);while(0);return}function Xe(a){a=a|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;c=u;u=u+16|0;d=c+4|0;e=c;g=c+8|0;if(!(Qa[f[(f[a>>2]|0)+32>>2]&127](a)|0)){h=0;u=c;return h|0}i=a+44|0;j=f[i>>2]|0;k=a+8|0;l=a+12|0;m=f[l>>2]|0;n=f[k>>2]|0;b[g>>0]=(m-n|0)>>>2;o=j+16|0;p=f[o+4>>2]|0;if((p|0)>0|(p|0)==0&(f[o>>2]|0)>>>0>0){q=k;r=n;s=m}else{f[e>>2]=f[j+4>>2];f[d>>2]=f[e>>2];Me(j,d,g,g+1|0)|0;q=k;r=f[k>>2]|0;s=f[l>>2]|0}a:do if((r|0)!=(s|0)){l=a+4|0;k=r;while(1){g=f[k>>2]|0;k=k+4|0;if(!(Sa[f[(f[g>>2]|0)+8>>2]&31](g,a,f[l>>2]|0)|0)){h=0;break}if((k|0)==(s|0))break a}u=c;return h|0}while(0);if(!(xc(a)|0)){h=0;u=c;return h|0}s=a+32|0;r=f[s>>2]|0;k=a+36|0;l=f[k>>2]|0;b:do if((r|0)!=(l|0)){g=r;do{if(!(Ra[f[(f[a>>2]|0)+40>>2]&127](a,f[g>>2]|0)|0)){h=0;t=18;break}g=g+4|0}while((g|0)!=(l|0));if((t|0)==18){u=c;return h|0}g=f[s>>2]|0;d=f[k>>2]|0;if((g|0)!=(d|0)){j=g;while(1){g=f[(f[q>>2]|0)+(f[j>>2]<<2)>>2]|0;j=j+4|0;if(!(Ra[f[(f[g>>2]|0)+12>>2]&127](g,f[i>>2]|0)|0)){h=0;break}if((j|0)==(d|0))break b}u=c;return h|0}}while(0);h=Qa[f[(f[a>>2]|0)+44>>2]&127](a)|0;u=c;return h|0}function Ye(a,b){a=a|0;b=b|0;ld(a,b);ld(a+32|0,b);ld(a+64|0,b);ld(a+96|0,b);ld(a+128|0,b);ld(a+160|0,b);ld(a+192|0,b);ld(a+224|0,b);ld(a+256|0,b);ld(a+288|0,b);ld(a+320|0,b);ld(a+352|0,b);ld(a+384|0,b);ld(a+416|0,b);ld(a+448|0,b);ld(a+480|0,b);ld(a+512|0,b);ld(a+544|0,b);ld(a+576|0,b);ld(a+608|0,b);ld(a+640|0,b);ld(a+672|0,b);ld(a+704|0,b);ld(a+736|0,b);ld(a+768|0,b);ld(a+800|0,b);ld(a+832|0,b);ld(a+864|0,b);ld(a+896|0,b);ld(a+928|0,b);ld(a+960|0,b);ld(a+992|0,b);ld(a+1024|0,b);return}function Ze(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0;c=u;u=u+32|0;d=c;e=a+4|0;g=f[a>>2]|0;h=(f[e>>2]|0)-g>>2;i=h+1|0;if(i>>>0>1073741823)aq(a);j=a+8|0;k=(f[j>>2]|0)-g|0;g=k>>1;l=k>>2>>>0<536870911?(g>>>0>>0?i:g):1073741823;f[d+12>>2]=0;f[d+16>>2]=a+8;do if(l)if(l>>>0>1073741823){g=ra(8)|0;Oo(g,16035);f[g>>2]=7256;va(g|0,1112,110)}else{m=ln(l<<2)|0;break}else m=0;while(0);f[d>>2]=m;g=m+(h<<2)|0;h=d+8|0;i=d+4|0;f[i>>2]=g;k=m+(l<<2)|0;l=d+12|0;f[l>>2]=k;m=f[b>>2]|0;f[b>>2]=0;f[g>>2]=m;m=g+4|0;f[h>>2]=m;b=f[a>>2]|0;n=f[e>>2]|0;if((n|0)==(b|0)){o=g;p=l;q=h;r=b;s=m;t=n;v=k;w=o;f[a>>2]=w;f[i>>2]=r;f[e>>2]=s;f[q>>2]=t;x=f[j>>2]|0;f[j>>2]=v;f[p>>2]=x;f[d>>2]=r;ki(d);u=c;return}else{y=n;z=g}do{y=y+-4|0;g=f[y>>2]|0;f[y>>2]=0;f[z+-4>>2]=g;z=(f[i>>2]|0)+-4|0;f[i>>2]=z}while((y|0)!=(b|0));o=z;p=l;q=h;r=f[a>>2]|0;s=f[h>>2]|0;t=f[e>>2]|0;v=f[l>>2]|0;w=o;f[a>>2]=w;f[i>>2]=r;f[e>>2]=s;f[q>>2]=t;x=f[j>>2]|0;f[j>>2]=v;f[p>>2]=x;f[d>>2]=r;ki(d);u=c;return}function _e(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;d=u;u=u+32|0;e=d+12|0;g=d;h=nl(c,0)|0;if(!h){f[a>>2]=0;u=d;return}i=f[c+100>>2]|0;j=f[c+96>>2]|0;c=i-j|0;k=(c|0)/12|0;f[e>>2]=0;l=e+4|0;f[l>>2]=0;f[e+8>>2]=0;m=j;do if(c)if(k>>>0>357913941)aq(e);else{n=ln(c)|0;f[e>>2]=n;f[e+8>>2]=n+(k*12|0);sj(n|0,0,c|0)|0;f[l>>2]=n+c;o=n;break}else o=0;while(0);f[g>>2]=0;f[g+4>>2]=0;f[g+8>>2]=0;a:do if((i|0)!=(j|0)){c=g+4|0;n=g+8|0;if(b[h+84>>0]|0){p=0;while(1){q=m+(p*12|0)|0;f[g>>2]=f[q>>2];f[g+4>>2]=f[q+4>>2];f[g+8>>2]=f[q+8>>2];f[o+(p*12|0)>>2]=f[g>>2];f[o+(p*12|0)+4>>2]=f[c>>2];f[o+(p*12|0)+8>>2]=f[n>>2];p=p+1|0;if(p>>>0>=k>>>0)break a}}p=f[h+68>>2]|0;q=0;do{r=f[p+(f[m+(q*12|0)>>2]<<2)>>2]|0;f[g>>2]=r;s=f[p+(f[m+(q*12|0)+4>>2]<<2)>>2]|0;f[c>>2]=s;t=f[p+(f[m+(q*12|0)+8>>2]<<2)>>2]|0;f[n>>2]=t;f[o+(q*12|0)>>2]=r;f[o+(q*12|0)+4>>2]=s;f[o+(q*12|0)+8>>2]=t;q=q+1|0}while(q>>>0>>0)}while(0);Kj(a,e);a=f[e>>2]|0;if(a|0){e=f[l>>2]|0;if((e|0)!=(a|0))f[l>>2]=e+(~(((e+-12-a|0)>>>0)/12|0)*12|0);Oq(a)}u=d;return}function $e(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0;c=u;u=u+16|0;d=c;f[a>>2]=0;f[a+8>>2]=b;wn(a+12|0);vo(a+44|0);vo(a+64|0);vo(a+84|0);e=a+104|0;f[e>>2]=0;g=a+108|0;f[g>>2]=0;f[a+112>>2]=0;h=(b|0)==0;do if(!h)if(b>>>0>1073741823)aq(e);else{i=b<<2;j=ln(i)|0;f[e>>2]=j;k=j+(b<<2)|0;f[a+112>>2]=k;sj(j|0,0,i|0)|0;f[g>>2]=k;break}while(0);g=a+116|0;f[g>>2]=0;e=a+120|0;f[e>>2]=0;f[a+124>>2]=0;if(!h){k=b<<2;i=ln(k)|0;f[g>>2]=i;g=i+(b<<2)|0;f[a+124>>2]=g;sj(i|0,0,k|0)|0;f[e>>2]=g}g=a+128|0;f[g>>2]=0;e=a+132|0;f[e>>2]=0;f[a+136>>2]=0;if(!h){k=b<<2;i=ln(k)|0;f[g>>2]=i;g=i+(b<<2)|0;f[a+136>>2]=g;sj(i|0,0,k|0)|0;f[e>>2]=g}g=b<<5|1;f[d>>2]=0;e=d+4|0;f[e>>2]=0;f[d+8>>2]=0;if(!h){k=b<<2;i=ln(k)|0;f[d>>2]=i;j=i+(b<<2)|0;f[d+8>>2]=j;sj(i|0,0,k|0)|0;f[e>>2]=j}lk(a+140|0,g,d);j=f[d>>2]|0;if(j|0){k=f[e>>2]|0;if((k|0)!=(j|0))f[e>>2]=k+(~((k+-4-j|0)>>>2)<<2);Oq(j)}f[d>>2]=0;j=d+4|0;f[j>>2]=0;f[d+8>>2]=0;if(!h){h=b<<2;k=ln(h)|0;f[d>>2]=k;e=k+(b<<2)|0;f[d+8>>2]=e;sj(k|0,0,h|0)|0;f[j>>2]=e}lk(a+152|0,g,d);g=f[d>>2]|0;if(!g){u=c;return}d=f[j>>2]|0;if((d|0)!=(g|0))f[j>>2]=d+(~((d+-4-g|0)>>>2)<<2);Oq(g);u=c;return}function af(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0;c=u;u=u+16|0;d=c;f[a>>2]=0;f[a+8>>2]=b;vo(a+12|0);vo(a+32|0);vo(a+52|0);vo(a+72|0);e=a+92|0;f[e>>2]=0;g=a+96|0;f[g>>2]=0;f[a+100>>2]=0;h=(b|0)==0;do if(!h)if(b>>>0>1073741823)aq(e);else{i=b<<2;j=ln(i)|0;f[e>>2]=j;k=j+(b<<2)|0;f[a+100>>2]=k;sj(j|0,0,i|0)|0;f[g>>2]=k;break}while(0);g=a+104|0;f[g>>2]=0;e=a+108|0;f[e>>2]=0;f[a+112>>2]=0;if(!h){k=b<<2;i=ln(k)|0;f[g>>2]=i;g=i+(b<<2)|0;f[a+112>>2]=g;sj(i|0,0,k|0)|0;f[e>>2]=g}g=a+116|0;f[g>>2]=0;e=a+120|0;f[e>>2]=0;f[a+124>>2]=0;if(!h){k=b<<2;i=ln(k)|0;f[g>>2]=i;g=i+(b<<2)|0;f[a+124>>2]=g;sj(i|0,0,k|0)|0;f[e>>2]=g}g=b<<5|1;f[d>>2]=0;e=d+4|0;f[e>>2]=0;f[d+8>>2]=0;if(!h){k=b<<2;i=ln(k)|0;f[d>>2]=i;j=i+(b<<2)|0;f[d+8>>2]=j;sj(i|0,0,k|0)|0;f[e>>2]=j}lk(a+128|0,g,d);j=f[d>>2]|0;if(j|0){k=f[e>>2]|0;if((k|0)!=(j|0))f[e>>2]=k+(~((k+-4-j|0)>>>2)<<2);Oq(j)}f[d>>2]=0;j=d+4|0;f[j>>2]=0;f[d+8>>2]=0;if(!h){h=b<<2;k=ln(h)|0;f[d>>2]=k;e=k+(b<<2)|0;f[d+8>>2]=e;sj(k|0,0,h|0)|0;f[j>>2]=e}lk(a+140|0,g,d);g=f[d>>2]|0;if(!g){u=c;return}d=f[j>>2]|0;if((d|0)!=(g|0))f[j>>2]=d+(~((d+-4-g|0)>>>2)<<2);Oq(g);u=c;return}function bf(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;d=ln(40)|0;e=d+16|0;pj(e,c);pj(d+28|0,c+12|0);c=a+4|0;g=f[c>>2]|0;do if(g){h=b[d+27>>0]|0;i=h<<24>>24<0;j=i?f[d+20>>2]|0:h&255;h=i?f[e>>2]|0:e;i=g;while(1){k=i+16|0;l=b[k+11>>0]|0;m=l<<24>>24<0;n=m?f[i+20>>2]|0:l&255;l=n>>>0>>0?n:j;if((l|0)!=0?(o=Vk(h,m?f[k>>2]|0:k,l)|0,(o|0)!=0):0)if((o|0)<0)p=7;else p=9;else if(j>>>0>>0)p=7;else p=9;if((p|0)==7){p=0;n=f[i>>2]|0;if(!n){p=8;break}else q=n}else if((p|0)==9){p=0;r=i+4|0;n=f[r>>2]|0;if(!n){p=11;break}else q=n}i=q}if((p|0)==8){s=i;t=i;break}else if((p|0)==11){s=i;t=r;break}}else{s=c;t=c}while(0);f[d>>2]=0;f[d+4>>2]=0;f[d+8>>2]=s;f[t>>2]=d;s=f[f[a>>2]>>2]|0;if(!s){u=d;v=a+4|0;w=f[v>>2]|0;Oe(w,u);x=a+8|0;y=f[x>>2]|0;z=y+1|0;f[x>>2]=z;return d|0}f[a>>2]=s;u=f[t>>2]|0;v=a+4|0;w=f[v>>2]|0;Oe(w,u);x=a+8|0;y=f[x>>2]|0;z=y+1|0;f[x>>2]=z;return d|0}function cf(a){a=a|0;var b=0,c=0,d=0;f[a>>2]=3680;wi(a+200|0);b=f[a+184>>2]|0;if(b|0){c=a+188|0;d=f[c>>2]|0;if((d|0)!=(b|0))f[c>>2]=d+(~((d+-4-b|0)>>>2)<<2);Oq(b)}kj(a+172|0);b=f[a+152>>2]|0;if(b|0){d=a+156|0;c=f[d>>2]|0;if((c|0)!=(b|0))f[d>>2]=c+(~((c+-4-b|0)>>>2)<<2);Oq(b)}b=f[a+140>>2]|0;if(b|0)Oq(b);b=f[a+128>>2]|0;if(b|0){c=b;do{b=c;c=f[c>>2]|0;Oq(b)}while((c|0)!=0)}c=a+120|0;b=f[c>>2]|0;f[c>>2]=0;if(b|0)Oq(b);b=f[a+108>>2]|0;if(b|0){c=a+112|0;d=f[c>>2]|0;if((d|0)!=(b|0))f[c>>2]=d+(~(((d+-12-b|0)>>>0)/12|0)*12|0);Oq(b)}b=f[a+96>>2]|0;if(b|0){d=a+100|0;c=f[d>>2]|0;if((c|0)!=(b|0))f[d>>2]=c+(~((c+-4-b|0)>>>2)<<2);Oq(b)}b=f[a+84>>2]|0;if(b|0)Oq(b);b=f[a+72>>2]|0;if(b|0){c=a+76|0;d=f[c>>2]|0;if((d|0)!=(b|0))f[c>>2]=d+(~((d+-4-b|0)>>>2)<<2);Oq(b)}b=f[a+52>>2]|0;if(b|0){d=a+56|0;c=f[d>>2]|0;if((c|0)!=(b|0))f[d>>2]=c+(~((c+-4-b|0)>>>2)<<2);Oq(b)}b=f[a+40>>2]|0;if(b|0){c=a+44|0;d=f[c>>2]|0;if((d|0)!=(b|0))f[c>>2]=d+(~((d+-4-b|0)>>>2)<<2);Oq(b)}b=f[a+28>>2]|0;if(b|0)Oq(b);b=f[a+16>>2]|0;if(b|0){d=a+20|0;c=f[d>>2]|0;if((c|0)!=(b|0))f[d>>2]=c+(~((c+-4-b|0)>>>2)<<2);Oq(b)}b=a+12|0;a=f[b>>2]|0;f[b>>2]=0;if(!a)return;Ii(a);Oq(a);return}function df(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;b=a+140|0;c=f[b>>2]|0;if(c|0){d=a+144|0;e=f[d>>2]|0;if((e|0)==(c|0))g=c;else{h=e;while(1){e=h+-12|0;f[d>>2]=e;i=f[e>>2]|0;if(!i)j=e;else{e=h+-8|0;k=f[e>>2]|0;if((k|0)!=(i|0))f[e>>2]=k+(~((k+-4-i|0)>>>2)<<2);Oq(i);j=f[d>>2]|0}if((j|0)==(c|0))break;else h=j}g=f[b>>2]|0}Oq(g)}g=a+128|0;b=f[g>>2]|0;if(b|0){j=a+132|0;h=f[j>>2]|0;if((h|0)==(b|0))l=b;else{c=h;while(1){h=c+-12|0;f[j>>2]=h;d=f[h>>2]|0;if(!d)m=h;else{h=c+-8|0;i=f[h>>2]|0;if((i|0)!=(d|0))f[h>>2]=i+(~((i+-4-d|0)>>>2)<<2);Oq(d);m=f[j>>2]|0}if((m|0)==(b|0))break;else c=m}l=f[g>>2]|0}Oq(l)}l=f[a+116>>2]|0;if(l|0){g=a+120|0;m=f[g>>2]|0;if((m|0)!=(l|0))f[g>>2]=m+(~((m+-4-l|0)>>>2)<<2);Oq(l)}l=f[a+104>>2]|0;if(l|0){m=a+108|0;g=f[m>>2]|0;if((g|0)!=(l|0))f[m>>2]=g+(~((g+-4-l|0)>>>2)<<2);Oq(l)}l=f[a+92>>2]|0;if(!l){n=a+72|0;jl(n);o=a+52|0;jl(o);p=a+32|0;jl(p);q=a+12|0;jl(q);return}g=a+96|0;m=f[g>>2]|0;if((m|0)!=(l|0))f[g>>2]=m+(~((m+-4-l|0)>>>2)<<2);Oq(l);n=a+72|0;jl(n);o=a+52|0;jl(o);p=a+32|0;jl(p);q=a+12|0;jl(q);return}function ef(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;b=a+152|0;c=f[b>>2]|0;if(c|0){d=a+156|0;e=f[d>>2]|0;if((e|0)==(c|0))g=c;else{h=e;while(1){e=h+-12|0;f[d>>2]=e;i=f[e>>2]|0;if(!i)j=e;else{e=h+-8|0;k=f[e>>2]|0;if((k|0)!=(i|0))f[e>>2]=k+(~((k+-4-i|0)>>>2)<<2);Oq(i);j=f[d>>2]|0}if((j|0)==(c|0))break;else h=j}g=f[b>>2]|0}Oq(g)}g=a+140|0;b=f[g>>2]|0;if(b|0){j=a+144|0;h=f[j>>2]|0;if((h|0)==(b|0))l=b;else{c=h;while(1){h=c+-12|0;f[j>>2]=h;d=f[h>>2]|0;if(!d)m=h;else{h=c+-8|0;i=f[h>>2]|0;if((i|0)!=(d|0))f[h>>2]=i+(~((i+-4-d|0)>>>2)<<2);Oq(d);m=f[j>>2]|0}if((m|0)==(b|0))break;else c=m}l=f[g>>2]|0}Oq(l)}l=f[a+128>>2]|0;if(l|0){g=a+132|0;m=f[g>>2]|0;if((m|0)!=(l|0))f[g>>2]=m+(~((m+-4-l|0)>>>2)<<2);Oq(l)}l=f[a+116>>2]|0;if(l|0){m=a+120|0;g=f[m>>2]|0;if((g|0)!=(l|0))f[m>>2]=g+(~((g+-4-l|0)>>>2)<<2);Oq(l)}l=f[a+104>>2]|0;if(!l){n=a+84|0;jl(n);o=a+64|0;jl(o);p=a+44|0;jl(p);q=a+12|0;Fj(q);return}g=a+108|0;m=f[g>>2]|0;if((m|0)!=(l|0))f[g>>2]=m+(~((m+-4-l|0)>>>2)<<2);Oq(l);n=a+84|0;jl(n);o=a+64|0;jl(o);p=a+44|0;jl(p);q=a+12|0;Fj(q);return}function ff(a){a=a|0;var b=0,c=0,d=0;f[a>>2]=3480;uj(a+200|0);b=f[a+184>>2]|0;if(b|0){c=a+188|0;d=f[c>>2]|0;if((d|0)!=(b|0))f[c>>2]=d+(~((d+-4-b|0)>>>2)<<2);Oq(b)}kj(a+172|0);b=f[a+152>>2]|0;if(b|0){d=a+156|0;c=f[d>>2]|0;if((c|0)!=(b|0))f[d>>2]=c+(~((c+-4-b|0)>>>2)<<2);Oq(b)}b=f[a+140>>2]|0;if(b|0)Oq(b);b=f[a+128>>2]|0;if(b|0){c=b;do{b=c;c=f[c>>2]|0;Oq(b)}while((c|0)!=0)}c=a+120|0;b=f[c>>2]|0;f[c>>2]=0;if(b|0)Oq(b);b=f[a+108>>2]|0;if(b|0){c=a+112|0;d=f[c>>2]|0;if((d|0)!=(b|0))f[c>>2]=d+(~(((d+-12-b|0)>>>0)/12|0)*12|0);Oq(b)}b=f[a+96>>2]|0;if(b|0){d=a+100|0;c=f[d>>2]|0;if((c|0)!=(b|0))f[d>>2]=c+(~((c+-4-b|0)>>>2)<<2);Oq(b)}b=f[a+84>>2]|0;if(b|0)Oq(b);b=f[a+72>>2]|0;if(b|0){c=a+76|0;d=f[c>>2]|0;if((d|0)!=(b|0))f[c>>2]=d+(~((d+-4-b|0)>>>2)<<2);Oq(b)}b=f[a+52>>2]|0;if(b|0){d=a+56|0;c=f[d>>2]|0;if((c|0)!=(b|0))f[d>>2]=c+(~((c+-4-b|0)>>>2)<<2);Oq(b)}b=f[a+40>>2]|0;if(b|0){c=a+44|0;d=f[c>>2]|0;if((d|0)!=(b|0))f[c>>2]=d+(~((d+-4-b|0)>>>2)<<2);Oq(b)}b=f[a+28>>2]|0;if(b|0)Oq(b);b=f[a+16>>2]|0;if(b|0){d=a+20|0;c=f[d>>2]|0;if((c|0)!=(b|0))f[d>>2]=c+(~((c+-4-b|0)>>>2)<<2);Oq(b)}b=a+12|0;a=f[b>>2]|0;f[b>>2]=0;if(!a)return;Ii(a);Oq(a);return}function gf(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;e=u;u=u+144|0;g=e+136|0;h=e+104|0;i=e;j=ln(124)|0;k=f[c+8>>2]|0;f[j+4>>2]=0;f[j>>2]=3656;f[j+12>>2]=3636;f[j+100>>2]=0;f[j+104>>2]=0;f[j+108>>2]=0;l=j+16|0;m=l+80|0;do{f[l>>2]=0;l=l+4|0}while((l|0)<(m|0));f[j+112>>2]=k;f[j+116>>2]=d;n=j+120|0;f[n>>2]=0;o=j;f[h>>2]=3636;p=h+4|0;q=p+4|0;f[q>>2]=0;f[q+4>>2]=0;f[q+8>>2]=0;f[q+12>>2]=0;f[q+16>>2]=0;f[q+20>>2]=0;q=f[c+12>>2]|0;f[i+4>>2]=3636;f[i+92>>2]=0;f[i+96>>2]=0;f[i+100>>2]=0;l=i+8|0;m=l+80|0;do{f[l>>2]=0;l=l+4|0}while((l|0)<(m|0));l=q;f[p>>2]=l;m=((f[l+4>>2]|0)-(f[q>>2]|0)>>2>>>0)/3|0;b[g>>0]=0;qh(h+8|0,m,g);Va[f[(f[h>>2]|0)+8>>2]&127](h);f[i>>2]=f[p>>2];fg(i+4|0,h)|0;f[i+36>>2]=q;f[i+40>>2]=d;f[i+44>>2]=k;f[i+48>>2]=j;f[n>>2]=c+72;Sg(j,i);f[a>>2]=o;Qi(i);f[h>>2]=3636;i=f[h+20>>2]|0;if(i|0)Oq(i);i=f[h+8>>2]|0;if(!i){u=e;return}Oq(i);u=e;return}function hf(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;c=u;u=u+48|0;d=c+44|0;e=c+40|0;g=c+36|0;h=c+32|0;i=c;f[h>>2]=f[a+60>>2];j=b+16|0;k=j;l=f[k+4>>2]|0;if(!((l|0)>0|(l|0)==0&(f[k>>2]|0)>>>0>0)){f[e>>2]=f[b+4>>2];f[d>>2]=f[e>>2];Me(b,d,h,h+4|0)|0}wn(i);tk(i);if((f[h>>2]|0)>0){k=a+56|0;l=1;m=0;do{n=l;l=(f[(f[k>>2]|0)+(m>>>5<<2)>>2]&1<<(m&31)|0)!=0;fj(i,n^l^1);m=m+1|0}while((m|0)<(f[h>>2]|0))}ld(i,b);f[g>>2]=f[a+12>>2];h=j;m=f[h>>2]|0;l=f[h+4>>2]|0;if((l|0)>0|(l|0)==0&m>>>0>0){o=l;p=m}else{f[e>>2]=f[b+4>>2];f[d>>2]=f[e>>2];Me(b,d,g,g+4|0)|0;m=j;o=f[m+4>>2]|0;p=f[m>>2]|0}f[g>>2]=f[a+20>>2];if((o|0)>0|(o|0)==0&p>>>0>0){Fj(i);u=c;return 1}f[e>>2]=f[b+4>>2];f[d>>2]=f[e>>2];Me(b,d,g,g+4|0)|0;Fj(i);u=c;return 1}function jf(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;g=u;u=u+16|0;h=g;if((f[c+56>>2]|0)==-1){i=-1;u=g;return i|0}j=ln(96)|0;tl(j,c);f[h>>2]=j;j=vh(a,h)|0;c=f[h>>2]|0;f[h>>2]=0;if(c|0){h=c+88|0;k=f[h>>2]|0;f[h>>2]=0;if(k|0){h=f[k+8>>2]|0;if(h|0){l=k+12|0;if((f[l>>2]|0)!=(h|0))f[l>>2]=h;Oq(h)}Oq(k)}k=f[c+68>>2]|0;if(k|0){h=c+72|0;l=f[h>>2]|0;if((l|0)!=(k|0))f[h>>2]=l+(~((l+-4-k|0)>>>2)<<2);Oq(k)}k=c+64|0;l=f[k>>2]|0;f[k>>2]=0;if(l|0){k=f[l>>2]|0;if(k|0){h=l+4|0;if((f[h>>2]|0)!=(k|0))f[h>>2]=k;Oq(k)}Oq(l)}Oq(c)}c=a+8|0;l=(f[c>>2]|0)+(j<<2)|0;k=f[l>>2]|0;do if(!d){h=f[a+80>>2]|0;b[k+84>>0]=0;m=k+68|0;n=k+72|0;o=f[n>>2]|0;p=f[m>>2]|0;q=o-p>>2;r=o;if(h>>>0>q>>>0){Ch(m,h-q|0,6220);break}if(h>>>0>>0?(q=p+(h<<2)|0,(q|0)!=(r|0)):0)f[n>>2]=r+(~((r+-4-q|0)>>>2)<<2)}else{b[k+84>>0]=1;q=f[k+68>>2]|0;r=k+72|0;n=f[r>>2]|0;if((n|0)==(q|0))s=k;else{f[r>>2]=n+(~((n+-4-q|0)>>>2)<<2);s=f[l>>2]|0}f[s+80>>2]=f[a+80>>2]}while(0);if(!e){i=j;u=g;return i|0}Bj(f[(f[c>>2]|0)+(j<<2)>>2]|0,e)|0;i=j;u=g;return i|0}function kf(a,b,c,d,e,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0;d=u;u=u+32|0;h=d+24|0;i=d+16|0;j=d;k=d+8|0;f[a+52>>2]=e;f[a+44>>2]=g;g=Lq(e>>>0>1073741823?-1:e<<2)|0;l=a+48|0;m=f[l>>2]|0;f[l>>2]=g;if(m|0)Mq(m);m=a+36|0;g=f[m>>2]|0;n=f[g+4>>2]|0;o=f[g>>2]|0;p=n-o|0;if((p|0)<=0){u=d;return 1}q=(p>>>2)+-1|0;p=a+8|0;r=i+4|0;s=j+4|0;t=h+4|0;if(n-o>>2>>>0>q>>>0){v=q;w=o}else{x=g;aq(x)}while(1){f[k>>2]=f[w+(v<<2)>>2];f[h>>2]=f[k>>2];Bc(a,h,b,v);g=X(v,e)|0;o=b+(g<<2)|0;q=f[l>>2]|0;n=c+(g<<2)|0;g=f[o+4>>2]|0;y=f[q>>2]|0;z=f[q+4>>2]|0;f[i>>2]=f[o>>2];f[r>>2]=g;f[j>>2]=y;f[s>>2]=z;Od(h,p,i,j);f[n>>2]=f[h>>2];f[n+4>>2]=f[t>>2];v=v+-1|0;if((v|0)<=-1){A=5;break}n=f[m>>2]|0;w=f[n>>2]|0;if((f[n+4>>2]|0)-w>>2>>>0<=v>>>0){x=n;A=6;break}}if((A|0)==5){u=d;return 1}else if((A|0)==6)aq(x);return 0}function lf(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;d=f[c>>2]|0;c=f[d>>2]|0;e=f[a+4>>2]|0;g=f[d+4>>2]|0;h=e+-1|0;i=(h&e|0)==0;if(!i)if(g>>>0>>0)j=g;else j=(g>>>0)%(e>>>0)|0;else j=h&g;g=(f[a>>2]|0)+(j<<2)|0;k=f[g>>2]|0;while(1){l=f[k>>2]|0;if((l|0)==(d|0))break;else k=l}if((k|0)!=(a+8|0)){l=f[k+4>>2]|0;if(!i)if(l>>>0>>0)m=l;else m=(l>>>0)%(e>>>0)|0;else m=l&h;if((m|0)==(j|0)){n=c;o=21}else o=13}else o=13;do if((o|0)==13){if(c|0){m=f[c+4>>2]|0;if(!i)if(m>>>0>>0)p=m;else p=(m>>>0)%(e>>>0)|0;else p=m&h;if((p|0)==(j|0)){q=c;r=c;o=22;break}}f[g>>2]=0;n=f[d>>2]|0;o=21}while(0);if((o|0)==21){g=n;if(!n)s=g;else{q=n;r=g;o=22}}if((o|0)==22){o=f[q+4>>2]|0;if(!i)if(o>>>0>>0)t=o;else t=(o>>>0)%(e>>>0)|0;else t=o&h;if((t|0)==(j|0))s=r;else{f[(f[a>>2]|0)+(t<<2)>>2]=k;s=f[d>>2]|0}}f[k>>2]=s;f[d>>2]=0;s=a+12|0;f[s>>2]=(f[s>>2]|0)+-1;if(!d)return c|0;s=d+8|0;a=f[d+20>>2]|0;if(a|0){k=d+24|0;if((f[k>>2]|0)!=(a|0))f[k>>2]=a;Oq(a)}if((b[s+11>>0]|0)<0)Oq(f[s>>2]|0);Oq(d);return c|0}function mf(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0;b=u;u=u+16|0;c=b+4|0;d=b;f[c>>2]=0;e=c+4|0;f[e>>2]=0;f[c+8>>2]=0;g=a+52|0;h=f[g>>2]|0;i=(f[h+100>>2]|0)-(f[h+96>>2]|0)|0;j=(i|0)/12|0;if(!i){k=0;l=0}else{i=c+8|0;m=0;n=0;o=h;h=0;p=0;while(1){q=f[o+96>>2]|0;r=f[q+(n*12|0)>>2]|0;s=r-m|0;t=((s|0)>-1?s:0-s|0)<<1|s>>>31;f[d>>2]=t;if((h|0)==(p|0)){Ri(c,d);v=f[e>>2]|0;w=f[i>>2]|0}else{f[h>>2]=t;t=h+4|0;f[e>>2]=t;v=t;w=p}t=f[q+(n*12|0)+4>>2]|0;s=t-r|0;r=((s|0)>-1?s:0-s|0)<<1|s>>>31;f[d>>2]=r;if((v|0)==(w|0)){Ri(c,d);x=f[e>>2]|0;y=f[i>>2]|0}else{f[v>>2]=r;r=v+4|0;f[e>>2]=r;x=r;y=w}r=f[q+(n*12|0)+8>>2]|0;q=r-t|0;t=((q|0)>-1?q:0-q|0)<<1|q>>>31;f[d>>2]=t;if((x|0)==(y|0))Ri(c,d);else{f[x>>2]=t;f[e>>2]=x+4}t=n+1|0;if(t>>>0>=j>>>0)break;m=r;n=t;o=f[g>>2]|0;h=f[e>>2]|0;p=f[i>>2]|0}k=f[c>>2]|0;l=f[e>>2]|0}Mc(k,l-k>>2,1,0,f[a+44>>2]|0)|0;a=f[c>>2]|0;if(!a){u=b;return 1}c=f[e>>2]|0;if((c|0)!=(a|0))f[e>>2]=c+(~((c+-4-a|0)>>>2)<<2);Oq(a);u=b;return 1}function nf(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;c=u;u=u+48|0;d=c+44|0;e=c+40|0;g=c+36|0;h=c+32|0;i=c;f[h>>2]=f[a+80>>2];j=b+16|0;k=j;l=f[k+4>>2]|0;if(!((l|0)>0|(l|0)==0&(f[k>>2]|0)>>>0>0)){f[e>>2]=f[b+4>>2];f[d>>2]=f[e>>2];Me(b,d,h,h+4|0)|0}wn(i);tk(i);if((f[h>>2]|0)>0){k=a+76|0;l=1;m=0;do{n=l;l=(f[(f[k>>2]|0)+(m>>>5<<2)>>2]&1<<(m&31)|0)!=0;fj(i,n^l^1);m=m+1|0}while((m|0)<(f[h>>2]|0))}ld(i,b);f[g>>2]=f[a+12>>2];h=j;m=f[h>>2]|0;l=f[h+4>>2]|0;if((l|0)>0|(l|0)==0&m>>>0>0){o=l;p=m}else{f[e>>2]=f[b+4>>2];f[d>>2]=f[e>>2];Me(b,d,g,g+4|0)|0;m=j;o=f[m+4>>2]|0;p=f[m>>2]|0}f[g>>2]=f[a+16>>2];if((o|0)>0|(o|0)==0&p>>>0>0){Fj(i);u=c;return 1}f[e>>2]=f[b+4>>2];f[d>>2]=f[e>>2];Me(b,d,g,g+4|0)|0;Fj(i);u=c;return 1}function of(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;c=u;u=u+16|0;d=c+12|0;e=c+8|0;g=c+4|0;h=c;if(!b){i=ln(76)|0;j=ln(12)|0;k=f[(f[a+4>>2]|0)+80>>2]|0;f[j+4>>2]=0;f[j>>2]=3908;f[j+8>>2]=k;f[h>>2]=j;rl(i,h,0);j=i;f[g>>2]=j;i=a+12|0;k=f[i>>2]|0;if(k>>>0<(f[a+16>>2]|0)>>>0){f[g>>2]=0;f[k>>2]=j;f[i>>2]=k+4;l=g}else{Qg(a+8|0,g);l=g}g=f[l>>2]|0;f[l>>2]=0;if(g|0)Va[f[(f[g>>2]|0)+4>>2]&127](g);g=f[h>>2]|0;f[h>>2]=0;if(!g){u=c;return 1}Va[f[(f[g>>2]|0)+4>>2]&127](g);u=c;return 1}g=f[f[a+8>>2]>>2]|0;f[d>>2]=b;a=g+4|0;h=g+8|0;l=f[h>>2]|0;if((l|0)==(f[g+12>>2]|0))Ri(a,d);else{f[l>>2]=b;f[h>>2]=l+4}l=f[d>>2]|0;b=g+16|0;k=g+20|0;g=f[k>>2]|0;i=f[b>>2]|0;j=g-i>>2;m=i;if((l|0)<(j|0)){n=m;o=l}else{i=l+1|0;f[e>>2]=-1;p=g;if(i>>>0<=j>>>0)if(i>>>0>>0?(g=m+(i<<2)|0,(g|0)!=(p|0)):0){f[k>>2]=p+(~((p+-4-g|0)>>>2)<<2);q=l;r=m}else{q=l;r=m}else{Ch(b,i-j|0,e);q=f[d>>2]|0;r=f[b>>2]|0}n=r;o=q}f[n+(o<<2)>>2]=((f[h>>2]|0)-(f[a>>2]|0)>>2)+-1;u=c;return 1}function pf(a,b,c,d,e,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0;d=u;u=u+32|0;h=d+24|0;i=d+16|0;j=d;k=d+8|0;f[a+52>>2]=e;f[a+44>>2]=g;g=Lq(e>>>0>1073741823?-1:e<<2)|0;l=a+48|0;m=f[l>>2]|0;f[l>>2]=g;if(m|0)Mq(m);m=a+36|0;g=f[m>>2]|0;n=f[g+4>>2]|0;o=f[g>>2]|0;p=n-o|0;if((p|0)<=0){u=d;return 1}q=(p>>>2)+-1|0;p=a+8|0;r=i+4|0;s=j+4|0;t=h+4|0;if(n-o>>2>>>0>q>>>0){v=q;w=o}else{x=g;aq(x)}while(1){f[k>>2]=f[w+(v<<2)>>2];f[h>>2]=f[k>>2];Ac(a,h,b,v);g=X(v,e)|0;o=b+(g<<2)|0;q=f[l>>2]|0;n=c+(g<<2)|0;g=f[o+4>>2]|0;y=f[q>>2]|0;z=f[q+4>>2]|0;f[i>>2]=f[o>>2];f[r>>2]=g;f[j>>2]=y;f[s>>2]=z;Od(h,p,i,j);f[n>>2]=f[h>>2];f[n+4>>2]=f[t>>2];v=v+-1|0;if((v|0)<=-1){A=5;break}n=f[m>>2]|0;w=f[n>>2]|0;if((f[n+4>>2]|0)-w>>2>>>0<=v>>>0){x=n;A=6;break}}if((A|0)==5){u=d;return 1}else if((A|0)==6)aq(x);return 0}function qf(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;d=a+8|0;e=f[d>>2]|0;g=f[a>>2]|0;h=g;do if(e-g>>3>>>0>=b>>>0){i=a+4|0;j=f[i>>2]|0;k=j-g>>3;l=k>>>0>>0;m=l?k:b;n=j;if(m|0){j=m;m=h;while(1){o=c;p=f[o+4>>2]|0;q=m;f[q>>2]=f[o>>2];f[q+4>>2]=p;j=j+-1|0;if(!j)break;else m=m+8|0}}if(!l){m=h+(b<<3)|0;if((m|0)==(n|0))return;else{r=i;s=n+(~((n+-8-m|0)>>>3)<<3)|0;break}}else{m=b-k|0;j=m;p=n;while(1){q=c;o=f[q+4>>2]|0;t=p;f[t>>2]=f[q>>2];f[t+4>>2]=o;j=j+-1|0;if(!j)break;else p=p+8|0}r=i;s=n+(m<<3)|0;break}}else{p=g;if(!g)u=e;else{j=a+4|0;k=f[j>>2]|0;if((k|0)!=(h|0))f[j>>2]=k+(~((k+-8-g|0)>>>3)<<3);Oq(p);f[d>>2]=0;f[j>>2]=0;f[a>>2]=0;u=0}if(b>>>0>536870911)aq(a);j=u>>2;p=u>>3>>>0<268435455?(j>>>0>>0?b:j):536870911;if(p>>>0>536870911)aq(a);j=ln(p<<3)|0;k=a+4|0;f[k>>2]=j;f[a>>2]=j;f[d>>2]=j+(p<<3);p=b;l=j;while(1){o=c;t=f[o+4>>2]|0;q=l;f[q>>2]=f[o>>2];f[q+4>>2]=t;p=p+-1|0;if(!p)break;else l=l+8|0}r=k;s=j+(b<<3)|0}while(0);f[r>>2]=s;return}function rf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0.0,g=0.0,h=0.0,i=0.0,j=0.0,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;e=+$(n[b>>2]);g=+K(+e);h=+$(n[b+4>>2]);i=g+ +K(+h);g=+$(n[b+8>>2]);j=i+ +K(+g);b=j>1.0e-06;i=1.0/j;k=f[a+12>>2]|0;j=+(k|0);l=~~+J(+((b?i*e:1.0)*j+.5));m=~~+J(+((b?i*h:0.0)*j+.5));o=(l|0)>-1;p=k-(o?l:0-l|0)-((m|0)>-1?m:0-m|0)|0;l=(p|0)<0;q=(l?((m|0)>0?p:0-p|0):0)+m|0;m=l?0:p;p=(b?i*g:0.0)<0.0?0-m|0:m;do if(!o){if((q|0)<0)r=(p|0)>-1?p:0-p|0;else r=(f[a+8>>2]|0)-((p|0)>-1?p:0-p|0)|0;if((p|0)<0){s=(q|0)>-1?q:0-q|0;t=r;break}else{s=(f[a+8>>2]|0)-((q|0)>-1?q:0-q|0)|0;t=r;break}}else{s=k+p|0;t=k+q|0}while(0);q=(t|0)==0;p=(s|0)==0;r=f[a+8>>2]|0;if(!(s|t)){u=r;v=r;f[c>>2]=u;f[d>>2]=v;return}a=(r|0)==(s|0);if(q&a){u=s;v=s;f[c>>2]=u;f[d>>2]=v;return}o=(r|0)==(t|0);if(p&o){u=t;v=t;f[c>>2]=u;f[d>>2]=v;return}if(q&(k|0)<(s|0)){u=0;v=(k<<1)-s|0;f[c>>2]=u;f[d>>2]=v;return}if(o&(k|0)>(s|0)){u=t;v=(k<<1)-s|0;f[c>>2]=u;f[d>>2]=v;return}if(a&(k|0)>(t|0)){u=(k<<1)-t|0;v=s;f[c>>2]=u;f[d>>2]=v;return}if(!p){u=t;v=s;f[c>>2]=u;f[d>>2]=v;return}u=(k|0)<(t|0)?(k<<1)-t|0:t;v=0;f[c>>2]=u;f[d>>2]=v;return}function sf(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0;g=u;u=u+32|0;h=g+12|0;i=g;f[a>>2]=f[d>>2];d=a+4|0;f[d>>2]=(f[c>>2]|0)-(f[b>>2]|0);j=e+16|0;k=j;l=f[k+4>>2]|0;if(!((l|0)>0|(l|0)==0&(f[k>>2]|0)>>>0>0)?(k=e+4|0,f[i>>2]=f[k>>2],f[h>>2]=f[i>>2],Me(e,h,a,a+4|0)|0,l=j,j=f[l+4>>2]|0,!((j|0)>0|(j|0)==0&(f[l>>2]|0)>>>0>0)):0){f[i>>2]=f[k>>2];f[h>>2]=f[i>>2];Me(e,h,d,d+4|0)|0;m=i}else m=i;if(!(f[d>>2]|0)){u=g;return 1}d=a+12|0;Gg(d);m=a+1068|0;Mm(m);k=a+1088|0;Mm(k);l=a+1108|0;Mm(l);f[i>>2]=f[b>>2];f[i+4>>2]=f[b+4>>2];f[i+8>>2]=f[b+8>>2];f[h>>2]=f[c>>2];f[h+4>>2]=f[c+4>>2];f[h+8>>2]=f[c+8>>2];ib(a,i,h);Ye(d,e);Bg(m,e);Bg(k,e);Bg(l,e);u=g;return 1}function tf(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0;g=u;u=u+32|0;h=g+12|0;i=g;f[a>>2]=f[d>>2];d=a+4|0;f[d>>2]=(f[c>>2]|0)-(f[b>>2]|0);j=e+16|0;k=j;l=f[k+4>>2]|0;if(!((l|0)>0|(l|0)==0&(f[k>>2]|0)>>>0>0)?(k=e+4|0,f[i>>2]=f[k>>2],f[h>>2]=f[i>>2],Me(e,h,a,a+4|0)|0,l=j,j=f[l+4>>2]|0,!((j|0)>0|(j|0)==0&(f[l>>2]|0)>>>0>0)):0){f[i>>2]=f[k>>2];f[h>>2]=f[i>>2];Me(e,h,d,d+4|0)|0;m=i}else m=i;if(!(f[d>>2]|0)){u=g;return 1}d=a+12|0;Gg(d);m=a+1068|0;Mm(m);k=a+1088|0;Mm(k);l=a+1108|0;Mm(l);f[i>>2]=f[b>>2];f[i+4>>2]=f[b+4>>2];f[i+8>>2]=f[b+8>>2];f[h>>2]=f[c>>2];f[h+4>>2]=f[c+4>>2];f[h+8>>2]=f[c+8>>2];kb(a,i,h);Ye(d,e);Bg(m,e);Bg(k,e);Bg(l,e);u=g;return 1}function uf(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0;c=u;u=u+32|0;d=c;e=a+8|0;g=f[e>>2]|0;h=a+4|0;i=f[h>>2]|0;j=i;if(g-i>>2>>>0>=b>>>0){sj(i|0,0,b<<2|0)|0;f[h>>2]=i+(b<<2);u=c;return}k=f[a>>2]|0;l=i-k>>2;m=l+b|0;n=k;if(m>>>0>1073741823)aq(a);o=g-k|0;p=o>>1;q=o>>2>>>0<536870911?(p>>>0>>0?m:p):1073741823;f[d+12>>2]=0;f[d+16>>2]=a+8;do if(q)if(q>>>0>1073741823){p=ra(8)|0;Oo(p,16035);f[p>>2]=7256;va(p|0,1112,110)}else{r=ln(q<<2)|0;break}else r=0;while(0);f[d>>2]=r;p=r+(l<<2)|0;l=d+8|0;m=d+4|0;f[m>>2]=p;o=r+(q<<2)|0;q=d+12|0;f[q>>2]=o;r=p+(b<<2)|0;sj(p|0,0,b<<2|0)|0;f[l>>2]=r;if((j|0)==(n|0)){s=p;t=q;v=l;w=k;x=r;y=i;z=o;A=g}else{g=j;j=p;do{g=g+-4|0;p=f[g>>2]|0;f[g>>2]=0;f[j+-4>>2]=p;j=(f[m>>2]|0)+-4|0;f[m>>2]=j}while((g|0)!=(n|0));s=j;t=q;v=l;w=f[a>>2]|0;x=f[l>>2]|0;y=f[h>>2]|0;z=f[q>>2]|0;A=f[e>>2]|0}f[a>>2]=s;f[m>>2]=w;f[h>>2]=x;f[v>>2]=y;f[e>>2]=z;f[t>>2]=A;f[d>>2]=w;ki(d);u=c;return}function vf(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;d=f[a+8>>2]|0;e=a+76|0;g=f[e>>2]|0;h=f[g+80>>2]|0;b[c+84>>0]=0;i=c+68|0;j=c+72|0;k=f[j>>2]|0;l=f[i>>2]|0;m=k-l>>2;n=l;l=k;if(h>>>0<=m>>>0)if(h>>>0>>0?(k=n+(h<<2)|0,(k|0)!=(l|0)):0){f[j>>2]=l+(~((l+-4-k|0)>>>2)<<2);o=g;p=h}else{o=g;p=h}else{Ch(i,h-m|0,3600);m=f[e>>2]|0;o=m;p=f[m+80>>2]|0}m=(f[o+100>>2]|0)-(f[o+96>>2]|0)|0;e=(m|0)/12|0;if(!m){q=1;return q|0}m=a+80|0;a=c+68|0;c=f[o+96>>2]|0;o=0;while(1){h=o*3|0;if((h|0)==-1)r=-1;else r=f[(f[d>>2]|0)+(h<<2)>>2]|0;i=f[(f[m>>2]|0)+12>>2]|0;g=f[i+(r<<2)>>2]|0;if(g>>>0>=p>>>0){q=0;s=12;break}k=f[a>>2]|0;f[k+(f[c+(o*12|0)>>2]<<2)>>2]=g;g=h+1|0;if((g|0)==-1)t=-1;else t=f[(f[d>>2]|0)+(g<<2)>>2]|0;g=f[i+(t<<2)>>2]|0;if(g>>>0>=p>>>0){q=0;s=12;break}f[k+(f[c+(o*12|0)+4>>2]<<2)>>2]=g;g=h+2|0;if((g|0)==-1)u=-1;else u=f[(f[d>>2]|0)+(g<<2)>>2]|0;g=f[i+(u<<2)>>2]|0;if(g>>>0>=p>>>0){q=0;s=12;break}f[k+(f[c+(o*12|0)+8>>2]<<2)>>2]=g;o=o+1|0;if(o>>>0>=e>>>0){q=1;s=12;break}}if((s|0)==12)return q|0;return 0}function wf(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;d=f[a+8>>2]|0;e=a+112|0;g=f[e>>2]|0;h=f[g+80>>2]|0;b[c+84>>0]=0;i=c+68|0;j=c+72|0;k=f[j>>2]|0;l=f[i>>2]|0;m=k-l>>2;n=l;l=k;if(h>>>0<=m>>>0)if(h>>>0>>0?(k=n+(h<<2)|0,(k|0)!=(l|0)):0){f[j>>2]=l+(~((l+-4-k|0)>>>2)<<2);o=g;p=h}else{o=g;p=h}else{Ch(i,h-m|0,3600);m=f[e>>2]|0;o=m;p=f[m+80>>2]|0}m=(f[o+100>>2]|0)-(f[o+96>>2]|0)|0;e=(m|0)/12|0;if(!m){q=1;return q|0}m=a+116|0;a=c+68|0;c=f[o+96>>2]|0;o=0;while(1){h=o*3|0;if((h|0)==-1)r=-1;else r=f[(f[d>>2]|0)+(h<<2)>>2]|0;i=f[(f[m>>2]|0)+12>>2]|0;g=f[i+(r<<2)>>2]|0;if(g>>>0>=p>>>0){q=0;s=12;break}k=f[a>>2]|0;f[k+(f[c+(o*12|0)>>2]<<2)>>2]=g;g=h+1|0;if((g|0)==-1)t=-1;else t=f[(f[d>>2]|0)+(g<<2)>>2]|0;g=f[i+(t<<2)>>2]|0;if(g>>>0>=p>>>0){q=0;s=12;break}f[k+(f[c+(o*12|0)+4>>2]<<2)>>2]=g;g=h+2|0;if((g|0)==-1)u=-1;else u=f[(f[d>>2]|0)+(g<<2)>>2]|0;g=f[i+(u<<2)>>2]|0;if(g>>>0>=p>>>0){q=0;s=12;break}f[k+(f[c+(o*12|0)+8>>2]<<2)>>2]=g;o=o+1|0;if(o>>>0>=e>>>0){q=1;s=12;break}}if((s|0)==12)return q|0;return 0}function xf(a,c,d,e,g){a=a|0;c=c|0;d=d|0;e=e|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;d=u;u=u+16|0;h=d;i=f[a+124>>2]|0;if(!i){u=d;return}j=i+-1|0;k=(j&i|0)==0;if(!k)if(i>>>0>g>>>0)l=g;else l=(g>>>0)%(i>>>0)|0;else l=j&g;m=f[(f[a+120>>2]|0)+(l<<2)>>2]|0;if(!m){u=d;return}n=f[m>>2]|0;if(!n){u=d;return}a:do if(k){m=n;while(1){o=f[m+4>>2]|0;p=(o|0)==(g|0);if(!(p|(o&j|0)==(l|0))){q=24;break}if(p?(f[m+8>>2]|0)==(g|0):0){r=m;break a}m=f[m>>2]|0;if(!m){q=24;break}}if((q|0)==24){u=d;return}}else{m=n;while(1){p=f[m+4>>2]|0;if((p|0)==(g|0)){if((f[m+8>>2]|0)==(g|0)){r=m;break a}}else{if(p>>>0>>0)s=p;else s=(p>>>0)%(i>>>0)|0;if((s|0)!=(l|0)){q=24;break}}m=f[m>>2]|0;if(!m){q=24;break}}if((q|0)==24){u=d;return}}while(0);q=f[r+12>>2]|0;if((q|0)==-1){u=d;return}f[h>>2]=q;f[h+4>>2]=c;b[h+8>>0]=e&1;e=a+112|0;c=f[e>>2]|0;if((c|0)==(f[a+116>>2]|0))yi(a+108|0,h);else{f[c>>2]=f[h>>2];f[c+4>>2]=f[h+4>>2];f[c+8>>2]=f[h+8>>2];f[e>>2]=(f[e>>2]|0)+12}u=d;return}function yf(a,b){a=a|0;b=b|0;var c=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;c=d[b>>1]|0;e=d[b+2>>1]|0;g=d[b+4>>1]|0;h=d[b+6>>1]|0;b=((((c^318)&65535)+239^e&65535)+239^g&65535)+239^h&65535;i=f[a+4>>2]|0;if(!i){j=0;return j|0}k=i+-1|0;l=(k&i|0)==0;if(!l)if(b>>>0>>0)m=b;else m=(b>>>0)%(i>>>0)|0;else m=b&k;n=f[(f[a>>2]|0)+(m<<2)>>2]|0;if(!n){j=0;return j|0}a=f[n>>2]|0;if(!a){j=0;return j|0}if(l){l=a;while(1){n=f[l+4>>2]|0;o=(n|0)==(b|0);if(!(o|(n&k|0)==(m|0))){j=0;p=25;break}if((((o?(o=l+8|0,(d[o>>1]|0)==c<<16>>16):0)?(d[o+2>>1]|0)==e<<16>>16:0)?(d[l+12>>1]|0)==g<<16>>16:0)?(d[o+6>>1]|0)==h<<16>>16:0){j=l;p=25;break}l=f[l>>2]|0;if(!l){j=0;p=25;break}}if((p|0)==25)return j|0}else q=a;while(1){a=f[q+4>>2]|0;if((a|0)==(b|0)){l=q+8|0;if((((d[l>>1]|0)==c<<16>>16?(d[l+2>>1]|0)==e<<16>>16:0)?(d[q+12>>1]|0)==g<<16>>16:0)?(d[l+6>>1]|0)==h<<16>>16:0){j=q;p=25;break}}else{if(a>>>0>>0)r=a;else r=(a>>>0)%(i>>>0)|0;if((r|0)!=(m|0)){j=0;p=25;break}}q=f[q>>2]|0;if(!q){j=0;p=25;break}}if((p|0)==25)return j|0;return 0}function zf(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0;g=u;u=u+32|0;h=g+12|0;i=g;f[a>>2]=f[d>>2];d=a+4|0;f[d>>2]=(f[c>>2]|0)-(f[b>>2]|0);j=e+16|0;k=j;l=f[k+4>>2]|0;if(!((l|0)>0|(l|0)==0&(f[k>>2]|0)>>>0>0)?(k=e+4|0,f[i>>2]=f[k>>2],f[h>>2]=f[i>>2],Me(e,h,a,a+4|0)|0,l=j,j=f[l+4>>2]|0,!((j|0)>0|(j|0)==0&(f[l>>2]|0)>>>0>0)):0){f[i>>2]=f[k>>2];f[h>>2]=f[i>>2];Me(e,h,d,d+4|0)|0;m=i}else m=i;if(!(f[d>>2]|0)){u=g;return 1}d=a+12|0;Mm(d);m=a+32|0;Mm(m);k=a+52|0;Mm(k);l=a+72|0;Mm(l);f[i>>2]=f[b>>2];f[i+4>>2]=f[b+4>>2];f[i+8>>2]=f[b+8>>2];f[h>>2]=f[c>>2];f[h+4>>2]=f[c+4>>2];f[h+8>>2]=f[c+8>>2];hb(a,i,h);Bg(d,e);Bg(m,e);Bg(k,e);Bg(l,e);u=g;return 1}function Af(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0;g=u;u=u+32|0;h=g+12|0;i=g;f[a>>2]=f[d>>2];d=a+4|0;f[d>>2]=(f[c>>2]|0)-(f[b>>2]|0);j=e+16|0;k=j;l=f[k+4>>2]|0;if(!((l|0)>0|(l|0)==0&(f[k>>2]|0)>>>0>0)?(k=e+4|0,f[i>>2]=f[k>>2],f[h>>2]=f[i>>2],Me(e,h,a,a+4|0)|0,l=j,j=f[l+4>>2]|0,!((j|0)>0|(j|0)==0&(f[l>>2]|0)>>>0>0)):0){f[i>>2]=f[k>>2];f[h>>2]=f[i>>2];Me(e,h,d,d+4|0)|0;m=i}else m=i;if(!(f[d>>2]|0)){u=g;return 1}d=a+12|0;tk(d);m=a+44|0;Mm(m);k=a+64|0;Mm(k);l=a+84|0;Mm(l);f[i>>2]=f[b>>2];f[i+4>>2]=f[b+4>>2];f[i+8>>2]=f[b+8>>2];f[h>>2]=f[c>>2];f[h+4>>2]=f[c+4>>2];f[h+8>>2]=f[c+8>>2];lb(a,i,h);ld(d,e);Bg(m,e);Bg(k,e);Bg(l,e);u=g;return 1}function Bf(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0;a=u;u=u+16|0;e=a+4|0;g=a;h=a+8|0;i=d+11|0;j=b[i>>0]|0;k=j<<24>>24<0;if(k){l=f[d+4>>2]|0;if(l>>>0>255){m=0;u=a;return m|0}else n=l}else n=j&255;if(!n){b[h>>0]=0;n=c+16|0;l=f[n+4>>2]|0;if(!((l|0)>0|(l|0)==0&(f[n>>2]|0)>>>0>0)){f[g>>2]=f[c+4>>2];f[e>>2]=f[g>>2];Me(c,e,h,h+1|0)|0}m=1;u=a;return m|0}n=d+4|0;l=f[n>>2]|0;b[h>>0]=k?l:j&255;k=c+16|0;o=k;p=f[o>>2]|0;q=f[o+4>>2]|0;if((q|0)>0|(q|0)==0&p>>>0>0){r=j;s=q;t=p;v=l}else{f[g>>2]=f[c+4>>2];f[e>>2]=f[g>>2];Me(c,e,h,h+1|0)|0;h=k;r=b[i>>0]|0;s=f[h+4>>2]|0;t=f[h>>2]|0;v=f[n>>2]|0}n=r<<24>>24<0;h=n?f[d>>2]|0:d;if(!((s|0)>0|(s|0)==0&t>>>0>0)){f[g>>2]=f[c+4>>2];f[e>>2]=f[g>>2];Me(c,e,h,h+(n?v:r&255)|0)|0}m=1;u=a;return m|0}function Cf(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;c=a+4|0;d=f[a>>2]|0;e=((f[c>>2]|0)-d|0)/24|0;g=e+1|0;if(g>>>0>178956970)aq(a);h=a+8|0;i=((f[h>>2]|0)-d|0)/24|0;d=i<<1;j=i>>>0<89478485?(d>>>0>>0?g:d):178956970;do if(j)if(j>>>0>178956970){d=ra(8)|0;Oo(d,16035);f[d>>2]=7256;va(d|0,1112,110)}else{k=ln(j*24|0)|0;break}else k=0;while(0);d=k+(e*24|0)|0;g=d;i=k+(j*24|0)|0;f[d>>2]=1196;f[k+(e*24|0)+4>>2]=f[b+4>>2];fk(k+(e*24|0)+8|0,b+8|0);f[k+(e*24|0)+20>>2]=f[b+20>>2];b=d+24|0;e=f[a>>2]|0;k=f[c>>2]|0;if((k|0)==(e|0)){l=g;m=e;n=e}else{j=k;k=g;g=d;do{f[g+-24>>2]=1196;f[g+-20>>2]=f[j+-20>>2];d=g+-16|0;o=j+-16|0;f[d>>2]=0;p=g+-12|0;f[p>>2]=0;f[g+-8>>2]=0;f[d>>2]=f[o>>2];d=j+-12|0;f[p>>2]=f[d>>2];p=j+-8|0;f[g+-8>>2]=f[p>>2];f[p>>2]=0;f[d>>2]=0;f[o>>2]=0;f[g+-4>>2]=f[j+-4>>2];j=j+-24|0;g=k+-24|0;k=g}while((j|0)!=(e|0));l=k;m=f[a>>2]|0;n=f[c>>2]|0}f[a>>2]=l;f[c>>2]=b;f[h>>2]=i;i=m;if((n|0)!=(i|0)){h=n;do{h=h+-24|0;Va[f[f[h>>2]>>2]&127](h)}while((h|0)!=(i|0))}if(!m)return;Oq(m);return}function Df(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;c=u;u=u+32|0;d=c+24|0;e=c+16|0;g=c+8|0;h=c;f[a>>2]=3588;f[a+4>>2]=f[b+4>>2];i=a+8|0;j=b+8|0;f[i>>2]=0;k=a+12|0;f[k>>2]=0;l=a+16|0;f[l>>2]=0;m=b+12|0;n=f[m>>2]|0;do if(n|0)if((n|0)<0)aq(i);else{o=((n+-1|0)>>>5)+1|0;p=ln(o<<2)|0;f[i>>2]=p;f[k>>2]=0;f[l>>2]=o;o=f[j>>2]|0;f[g>>2]=o;f[g+4>>2]=0;p=f[m>>2]|0;f[h>>2]=o+(p>>>5<<2);f[h+4>>2]=p&31;f[e>>2]=f[g>>2];f[e+4>>2]=f[g+4>>2];f[d>>2]=f[h>>2];f[d+4>>2]=f[h+4>>2];Tf(i,e,d);break}while(0);i=a+20|0;f[i>>2]=0;m=a+24|0;f[m>>2]=0;j=a+28|0;f[j>>2]=0;a=b+24|0;l=f[a>>2]|0;if(!l){u=c;return}if((l|0)<0)aq(i);k=((l+-1|0)>>>5)+1|0;l=ln(k<<2)|0;f[i>>2]=l;f[m>>2]=0;f[j>>2]=k;k=f[b+20>>2]|0;f[g>>2]=k;f[g+4>>2]=0;b=f[a>>2]|0;f[h>>2]=k+(b>>>5<<2);f[h+4>>2]=b&31;f[e>>2]=f[g>>2];f[e+4>>2]=f[g+4>>2];f[d>>2]=f[h>>2];f[d+4>>2]=f[h+4>>2];Tf(i,e,d);u=c;return}function Ef(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;d=b[c>>0]|0;e=b[c+1>>0]|0;g=b[c+2>>0]|0;h=b[c+3>>0]|0;c=(((d&255^318)+239^e&255)+239^g&255)+239^h&255;i=f[a+4>>2]|0;if(!i){j=0;return j|0}k=i+-1|0;l=(k&i|0)==0;if(!l)if(c>>>0>>0)m=c;else m=(c>>>0)%(i>>>0)|0;else m=c&k;n=f[(f[a>>2]|0)+(m<<2)>>2]|0;if(!n){j=0;return j|0}a=f[n>>2]|0;if(!a){j=0;return j|0}if(l){l=a;while(1){n=f[l+4>>2]|0;o=(n|0)==(c|0);if(!(o|(n&k|0)==(m|0))){j=0;p=25;break}if((((o?(o=l+8|0,(b[o>>0]|0)==d<<24>>24):0)?(b[o+1>>0]|0)==e<<24>>24:0)?(b[o+2>>0]|0)==g<<24>>24:0)?(b[o+3>>0]|0)==h<<24>>24:0){j=l;p=25;break}l=f[l>>2]|0;if(!l){j=0;p=25;break}}if((p|0)==25)return j|0}else q=a;while(1){a=f[q+4>>2]|0;if((a|0)==(c|0)){l=q+8|0;if((((b[l>>0]|0)==d<<24>>24?(b[l+1>>0]|0)==e<<24>>24:0)?(b[l+2>>0]|0)==g<<24>>24:0)?(b[l+3>>0]|0)==h<<24>>24:0){j=q;p=25;break}}else{if(a>>>0>>0)r=a;else r=(a>>>0)%(i>>>0)|0;if((r|0)!=(m|0)){j=0;p=25;break}}q=f[q>>2]|0;if(!q){j=0;p=25;break}}if((p|0)==25)return j|0;return 0}function Ff(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;c=u;u=u+32|0;d=c+24|0;e=c+16|0;g=c+8|0;h=c;f[a>>2]=3636;f[a+4>>2]=f[b+4>>2];i=a+8|0;j=b+8|0;f[i>>2]=0;k=a+12|0;f[k>>2]=0;l=a+16|0;f[l>>2]=0;m=b+12|0;n=f[m>>2]|0;do if(n|0)if((n|0)<0)aq(i);else{o=((n+-1|0)>>>5)+1|0;p=ln(o<<2)|0;f[i>>2]=p;f[k>>2]=0;f[l>>2]=o;o=f[j>>2]|0;f[g>>2]=o;f[g+4>>2]=0;p=f[m>>2]|0;f[h>>2]=o+(p>>>5<<2);f[h+4>>2]=p&31;f[e>>2]=f[g>>2];f[e+4>>2]=f[g+4>>2];f[d>>2]=f[h>>2];f[d+4>>2]=f[h+4>>2];Tf(i,e,d);break}while(0);i=a+20|0;f[i>>2]=0;m=a+24|0;f[m>>2]=0;j=a+28|0;f[j>>2]=0;a=b+24|0;l=f[a>>2]|0;if(!l){u=c;return}if((l|0)<0)aq(i);k=((l+-1|0)>>>5)+1|0;l=ln(k<<2)|0;f[i>>2]=l;f[m>>2]=0;f[j>>2]=k;k=f[b+20>>2]|0;f[g>>2]=k;f[g+4>>2]=0;b=f[a>>2]|0;f[h>>2]=k+(b>>>5<<2);f[h+4>>2]=b&31;f[e>>2]=f[g>>2];f[e+4>>2]=f[g+4>>2];f[d>>2]=f[h>>2];f[d+4>>2]=f[h+4>>2];Tf(i,e,d);u=c;return}function Gf(a,b,c,d,e,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0;d=u;u=u+32|0;h=d+24|0;i=d+16|0;j=d;k=d+8|0;l=a+40|0;f[a+44>>2]=g;g=a+36|0;m=f[g>>2]|0;n=f[m+4>>2]|0;o=f[m>>2]|0;p=n-o|0;if((p|0)<=0){u=d;return 1}q=(p>>>2)+-1|0;p=a+8|0;r=a+48|0;s=a+52|0;a=i+4|0;t=j+4|0;v=h+4|0;if(n-o>>2>>>0>q>>>0){w=q;x=o}else{y=m;aq(y)}while(1){f[k>>2]=f[x+(w<<2)>>2];f[h>>2]=f[k>>2];ub(l,h,b,w);m=X(w,e)|0;o=b+(m<<2)|0;q=c+(m<<2)|0;m=f[o+4>>2]|0;n=f[r>>2]|0;z=f[s>>2]|0;f[i>>2]=f[o>>2];f[a>>2]=m;f[j>>2]=n;f[t>>2]=z;Od(h,p,i,j);f[q>>2]=f[h>>2];f[q+4>>2]=f[v>>2];w=w+-1|0;if((w|0)<=-1){A=3;break}q=f[g>>2]|0;x=f[q>>2]|0;if((f[q+4>>2]|0)-x>>2>>>0<=w>>>0){y=q;A=4;break}}if((A|0)==3){u=d;return 1}else if((A|0)==4)aq(y);return 0}function Hf(a,b,c,d,e,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0;h=u;u=u+32|0;i=h;j=h+16|0;k=f[(f[(f[b+4>>2]|0)+8>>2]|0)+(d<<2)>>2]|0;do if((c+-1|0)>>>0<6&(Qa[f[(f[b>>2]|0)+8>>2]&127](b)|0)==1){l=Qa[f[(f[b>>2]|0)+48>>2]&127](b)|0;m=Ra[f[(f[b>>2]|0)+56>>2]&127](b,d)|0;if((l|0)==0|(m|0)==0){f[a>>2]=0;u=h;return}n=Ra[f[(f[b>>2]|0)+52>>2]&127](b,d)|0;if(!n){f[i>>2]=f[b+52>>2];f[i+4>>2]=l;f[i+12>>2]=m;f[i+8>>2]=m+12;Cd(a,j,c,k,e,i,g);if(!(f[a>>2]|0)){f[a>>2]=0;break}u=h;return}else{f[i>>2]=f[b+52>>2];f[i+4>>2]=n;f[i+12>>2]=m;f[i+8>>2]=m+12;Ad(a,j,c,k,e,i,g);if(!(f[a>>2]|0)){f[a>>2]=0;break}u=h;return}}while(0);f[a>>2]=0;u=h;return}function If(a,b,c,d,e,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0;d=u;u=u+32|0;h=d+24|0;i=d+16|0;j=d;k=d+8|0;l=a+40|0;f[a+44>>2]=g;g=a+36|0;m=f[g>>2]|0;n=f[m+4>>2]|0;o=f[m>>2]|0;p=n-o|0;if((p|0)<=0){u=d;return 1}q=(p>>>2)+-1|0;p=a+8|0;r=a+48|0;s=a+52|0;a=i+4|0;t=j+4|0;v=h+4|0;if(n-o>>2>>>0>q>>>0){w=q;x=o}else{y=m;aq(y)}while(1){f[k>>2]=f[x+(w<<2)>>2];f[h>>2]=f[k>>2];tb(l,h,b,w);m=X(w,e)|0;o=b+(m<<2)|0;q=c+(m<<2)|0;m=f[o+4>>2]|0;n=f[r>>2]|0;z=f[s>>2]|0;f[i>>2]=f[o>>2];f[a>>2]=m;f[j>>2]=n;f[t>>2]=z;Od(h,p,i,j);f[q>>2]=f[h>>2];f[q+4>>2]=f[v>>2];w=w+-1|0;if((w|0)<=-1){A=3;break}q=f[g>>2]|0;x=f[q>>2]|0;if((f[q+4>>2]|0)-x>>2>>>0<=w>>>0){y=q;A=4;break}}if((A|0)==3){u=d;return 1}else if((A|0)==4)aq(y);return 0}function Jf(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;d=f[b>>2]|0;b=f[c>>2]|0;e=b-d>>2;g=a+8|0;h=f[g>>2]|0;i=f[a>>2]|0;j=i;k=b;if(e>>>0<=h-i>>2>>>0){l=a+4|0;m=(f[l>>2]|0)-i>>2;n=e>>>0>m>>>0;o=n?d+(m<<2)|0:b;b=o-d|0;m=b>>2;if(m|0)im(i|0,d|0,b|0)|0;b=j+(m<<2)|0;if(!n){n=f[l>>2]|0;if((n|0)==(b|0))return;f[l>>2]=n+(~((n+-4-b|0)>>>2)<<2);return}b=f[c>>2]|0;c=o;if((b|0)==(c|0))return;n=f[l>>2]|0;m=b+-4-o|0;o=c;c=n;while(1){f[c>>2]=f[o>>2];o=o+4|0;if((o|0)==(b|0))break;else c=c+4|0}f[l>>2]=n+((m>>>2)+1<<2);return}m=i;if(!i)p=h;else{h=a+4|0;n=f[h>>2]|0;if((n|0)!=(j|0))f[h>>2]=n+(~((n+-4-i|0)>>>2)<<2);Oq(m);f[g>>2]=0;f[h>>2]=0;f[a>>2]=0;p=0}if(e>>>0>1073741823)aq(a);h=p>>1;m=p>>2>>>0<536870911?(h>>>0>>0?e:h):1073741823;if(m>>>0>1073741823)aq(a);h=ln(m<<2)|0;e=a+4|0;f[e>>2]=h;f[a>>2]=h;f[g>>2]=h+(m<<2);m=d;if((k|0)==(m|0))return;g=k+-4-d|0;d=m;m=h;while(1){f[m>>2]=f[d>>2];d=d+4|0;if((d|0)==(k|0))break;else m=m+4|0}f[e>>2]=h+((g>>>2)+1<<2);return}function Kf(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;c=a+8|0;d=f[c>>2]|0;e=a+4|0;g=f[e>>2]|0;h=g;if(((d-g|0)/12|0)>>>0>=b>>>0){sj(g|0,0,b*12|0)|0;f[e>>2]=h+(b*12|0);return}i=f[a>>2]|0;j=(g-i|0)/12|0;g=j+b|0;k=i;if(g>>>0>357913941)aq(a);l=(d-i|0)/12|0;d=l<<1;m=l>>>0<178956970?(d>>>0>>0?g:d):357913941;do if(m)if(m>>>0>357913941){d=ra(8)|0;Oo(d,16035);f[d>>2]=7256;va(d|0,1112,110)}else{n=ln(m*12|0)|0;break}else n=0;while(0);d=n+(j*12|0)|0;j=d;g=n+(m*12|0)|0;sj(d|0,0,b*12|0)|0;m=d+(b*12|0)|0;if((h|0)==(k|0)){o=j;p=i;q=h}else{i=h;h=j;j=d;do{d=j+-12|0;b=i;i=i+-12|0;f[d>>2]=0;n=j+-8|0;f[n>>2]=0;f[j+-4>>2]=0;f[d>>2]=f[i>>2];d=b+-8|0;f[n>>2]=f[d>>2];n=b+-4|0;f[j+-4>>2]=f[n>>2];f[n>>2]=0;f[d>>2]=0;f[i>>2]=0;j=h+-12|0;h=j}while((i|0)!=(k|0));o=h;p=f[a>>2]|0;q=f[e>>2]|0}f[a>>2]=o;f[e>>2]=m;f[c>>2]=g;g=p;if((q|0)!=(g|0)){c=q;do{q=c;c=c+-12|0;m=f[c>>2]|0;if(m|0){e=q+-8|0;q=f[e>>2]|0;if((q|0)!=(m|0))f[e>>2]=q+(~((q+-4-m|0)>>>2)<<2);Oq(m)}}while((c|0)!=(g|0))}if(!p)return;Oq(p);return}function Lf(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;b=u;u=u+16|0;c=b+4|0;d=b;e=a+8|0;g=f[e>>2]|0;gk(f[a+4>>2]|0,(f[g+28>>2]|0)-(f[g+24>>2]|0)>>2);g=a+100|0;h=f[e>>2]|0;i=(f[h+28>>2]|0)-(f[h+24>>2]|0)>>2;f[c>>2]=0;h=a+104|0;j=f[h>>2]|0;k=f[g>>2]|0;l=j-k>>2;m=k;k=j;if(i>>>0<=l>>>0){if(i>>>0>>0?(j=m+(i<<2)|0,(j|0)!=(k|0)):0)f[h>>2]=k+(~((k+-4-j|0)>>>2)<<2)}else Ch(g,i-l|0,c);l=a+120|0;a=f[l>>2]|0;if(!a){i=f[e>>2]|0;g=(f[i+4>>2]|0)-(f[i>>2]|0)>>2;i=(g>>>0)/3|0;if(g>>>0<=2){u=b;return 1}g=0;do{f[d>>2]=g*3;f[c>>2]=f[d>>2];wb(e,c);g=g+1|0}while((g|0)<(i|0));u=b;return 1}else{i=f[a>>2]|0;if((f[a+4>>2]|0)==(i|0)){u=b;return 1}a=0;g=i;do{f[d>>2]=f[g+(a<<2)>>2];f[c>>2]=f[d>>2];wb(e,c);a=a+1|0;i=f[l>>2]|0;g=f[i>>2]|0}while(a>>>0<(f[i+4>>2]|0)-g>>2>>>0);u=b;return 1}return 0}function Mf(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;d=u;u=u+32|0;e=d;g=a+40|0;h=(f[c>>2]|0)+(f[g>>2]|0)|0;i=a+24|0;j=f[a+32>>2]|0;k=j+-4194304|0;do if(k>>>0>=64){if(k>>>0<16384){l=a+28|0;m=(f[i>>2]|0)+(f[l>>2]|0)|0;n=j+-4177920|0;b[m>>0]=n;b[m+1>>0]=n>>>8;o=(f[l>>2]|0)+2|0;break}if(k>>>0<4194304){l=a+28|0;n=(f[i>>2]|0)+(f[l>>2]|0)|0;m=j+4194304|0;b[n>>0]=m;b[n+1>>0]=m>>>8;b[n+2>>0]=m>>>16;o=(f[l>>2]|0)+3|0;break}if(k>>>0<1073741824){l=a+28|0;m=(f[i>>2]|0)+(f[l>>2]|0)|0;n=j+-1077936128|0;b[m>>0]=n;b[m+1>>0]=n>>>8;b[m+2>>0]=n>>>16;b[m+3>>0]=n>>>24;o=(f[l>>2]|0)+4|0;break}else{o=f[a+28>>2]|0;break}}else{l=a+28|0;b[(f[i>>2]|0)+(f[l>>2]|0)>>0]=k;o=(f[l>>2]|0)+1|0}while(0);k=((o|0)<0)<<31>>31;Gn(e);yh(o,k,e)|0;i=e+4|0;a=(f[i>>2]|0)-(f[e>>2]|0)|0;im(h+a|0,h|0,o|0)|0;kh(h|0,f[e>>2]|0,a|0)|0;h=g;g=f[h>>2]|0;j=f[h+4>>2]|0;h=Vn(a|0,0,o|0,k|0)|0;k=Vn(h|0,I|0,g|0,j|0)|0;Cl(c,k,I);k=e+12|0;c=f[k>>2]|0;f[k>>2]=0;if(c|0)Oq(c);c=f[e>>2]|0;if(!c){u=d;return}if((f[i>>2]|0)!=(c|0))f[i>>2]=c;Oq(c);u=d;return}function Nf(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;d=u;u=u+32|0;e=d;g=a+40|0;h=(f[c>>2]|0)+(f[g>>2]|0)|0;i=a+24|0;j=f[a+32>>2]|0;k=j+-2097152|0;do if(k>>>0>=64){if(k>>>0<16384){l=a+28|0;m=(f[i>>2]|0)+(f[l>>2]|0)|0;n=j+-2080768|0;b[m>>0]=n;b[m+1>>0]=n>>>8;o=(f[l>>2]|0)+2|0;break}if(k>>>0<4194304){l=a+28|0;n=(f[i>>2]|0)+(f[l>>2]|0)|0;m=j+6291456|0;b[n>>0]=m;b[n+1>>0]=m>>>8;b[n+2>>0]=m>>>16;o=(f[l>>2]|0)+3|0;break}if(k>>>0<1073741824){l=a+28|0;m=(f[i>>2]|0)+(f[l>>2]|0)|0;n=j+-1075838976|0;b[m>>0]=n;b[m+1>>0]=n>>>8;b[m+2>>0]=n>>>16;b[m+3>>0]=n>>>24;o=(f[l>>2]|0)+4|0;break}else{o=f[a+28>>2]|0;break}}else{l=a+28|0;b[(f[i>>2]|0)+(f[l>>2]|0)>>0]=k;o=(f[l>>2]|0)+1|0}while(0);k=((o|0)<0)<<31>>31;Gn(e);yh(o,k,e)|0;i=e+4|0;a=(f[i>>2]|0)-(f[e>>2]|0)|0;im(h+a|0,h|0,o|0)|0;kh(h|0,f[e>>2]|0,a|0)|0;h=g;g=f[h>>2]|0;j=f[h+4>>2]|0;h=Vn(a|0,0,o|0,k|0)|0;k=Vn(h|0,I|0,g|0,j|0)|0;Cl(c,k,I);k=e+12|0;c=f[k>>2]|0;f[k>>2]=0;if(c|0)Oq(c);c=f[e>>2]|0;if(!c){u=d;return}if((f[i>>2]|0)!=(c|0))f[i>>2]=c;Oq(c);u=d;return}function Of(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;d=u;u=u+32|0;e=d;g=a+40|0;h=(f[c>>2]|0)+(f[g>>2]|0)|0;i=a+24|0;j=f[a+32>>2]|0;k=j+-1048576|0;do if(k>>>0>=64){if(k>>>0<16384){l=a+28|0;m=(f[i>>2]|0)+(f[l>>2]|0)|0;n=j+-1032192|0;b[m>>0]=n;b[m+1>>0]=n>>>8;o=(f[l>>2]|0)+2|0;break}if(k>>>0<4194304){l=a+28|0;n=(f[i>>2]|0)+(f[l>>2]|0)|0;m=j+7340032|0;b[n>>0]=m;b[n+1>>0]=m>>>8;b[n+2>>0]=m>>>16;o=(f[l>>2]|0)+3|0;break}if(k>>>0<1073741824){l=a+28|0;m=(f[i>>2]|0)+(f[l>>2]|0)|0;n=j+-1074790400|0;b[m>>0]=n;b[m+1>>0]=n>>>8;b[m+2>>0]=n>>>16;b[m+3>>0]=n>>>24;o=(f[l>>2]|0)+4|0;break}else{o=f[a+28>>2]|0;break}}else{l=a+28|0;b[(f[i>>2]|0)+(f[l>>2]|0)>>0]=k;o=(f[l>>2]|0)+1|0}while(0);k=((o|0)<0)<<31>>31;Gn(e);yh(o,k,e)|0;i=e+4|0;a=(f[i>>2]|0)-(f[e>>2]|0)|0;im(h+a|0,h|0,o|0)|0;kh(h|0,f[e>>2]|0,a|0)|0;h=g;g=f[h>>2]|0;j=f[h+4>>2]|0;h=Vn(a|0,0,o|0,k|0)|0;k=Vn(h|0,I|0,g|0,j|0)|0;Cl(c,k,I);k=e+12|0;c=f[k>>2]|0;f[k>>2]=0;if(c|0)Oq(c);c=f[e>>2]|0;if(!c){u=d;return}if((f[i>>2]|0)!=(c|0))f[i>>2]=c;Oq(c);u=d;return}function Pf(a,c,d,e,g,h,i){a=a|0;c=c|0;d=d|0;e=e|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0;a=u;u=u+96|0;j=a;if(!c){k=-1;u=a;return k|0}Tm(j);Jj(j,d,0,g&255,i,0,g<<1,0,0,0);i=jf(c,j,1,e)|0;d=f[(f[c+8>>2]|0)+(i<<2)>>2]|0;if(e|0){l=d+84|0;m=d+68|0;n=d+40|0;o=d+64|0;d=0;do{if(!(b[l>>0]|0))p=f[(f[m>>2]|0)+(d<<2)>>2]|0;else p=d;q=h+((X(d,g)|0)<<1)|0;r=n;s=f[r>>2]|0;t=un(s|0,f[r+4>>2]|0,p|0,0)|0;kh((f[f[o>>2]>>2]|0)+t|0,q|0,s|0)|0;d=d+1|0}while((d|0)!=(e|0))}d=c+80|0;c=f[d>>2]|0;if(c)if((c|0)==(e|0))v=10;else w=-1;else{f[d>>2]=e;v=10}if((v|0)==10)w=i;i=j+88|0;v=f[i>>2]|0;f[i>>2]=0;if(v|0){i=f[v+8>>2]|0;if(i|0){e=v+12|0;if((f[e>>2]|0)!=(i|0))f[e>>2]=i;Oq(i)}Oq(v)}v=f[j+68>>2]|0;if(v|0){i=j+72|0;e=f[i>>2]|0;if((e|0)!=(v|0))f[i>>2]=e+(~((e+-4-v|0)>>>2)<<2);Oq(v)}v=j+64|0;j=f[v>>2]|0;f[v>>2]=0;if(j|0){v=f[j>>2]|0;if(v|0){e=j+4|0;if((f[e>>2]|0)!=(v|0))f[e>>2]=v;Oq(v)}Oq(j)}k=w;u=a;return k|0}function Qf(a,c,d,e,g,h,i){a=a|0;c=c|0;d=d|0;e=e|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0;a=u;u=u+96|0;j=a;if(!c){k=-1;u=a;return k|0}Tm(j);Jj(j,d,0,g&255,i,0,g<<2,0,0,0);i=jf(c,j,1,e)|0;d=f[(f[c+8>>2]|0)+(i<<2)>>2]|0;if(e|0){l=d+84|0;m=d+68|0;n=d+40|0;o=d+64|0;d=0;do{if(!(b[l>>0]|0))p=f[(f[m>>2]|0)+(d<<2)>>2]|0;else p=d;q=h+((X(d,g)|0)<<2)|0;r=n;s=f[r>>2]|0;t=un(s|0,f[r+4>>2]|0,p|0,0)|0;kh((f[f[o>>2]>>2]|0)+t|0,q|0,s|0)|0;d=d+1|0}while((d|0)!=(e|0))}d=c+80|0;c=f[d>>2]|0;if(c)if((c|0)==(e|0))v=10;else w=-1;else{f[d>>2]=e;v=10}if((v|0)==10)w=i;i=j+88|0;v=f[i>>2]|0;f[i>>2]=0;if(v|0){i=f[v+8>>2]|0;if(i|0){e=v+12|0;if((f[e>>2]|0)!=(i|0))f[e>>2]=i;Oq(i)}Oq(v)}v=f[j+68>>2]|0;if(v|0){i=j+72|0;e=f[i>>2]|0;if((e|0)!=(v|0))f[i>>2]=e+(~((e+-4-v|0)>>>2)<<2);Oq(v)}v=j+64|0;j=f[v>>2]|0;f[v>>2]=0;if(j|0){v=f[j>>2]|0;if(v|0){e=j+4|0;if((f[e>>2]|0)!=(v|0))f[e>>2]=v;Oq(v)}Oq(j)}k=w;u=a;return k|0}function Rf(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;d=u;u=u+32|0;e=d;g=a+40|0;h=(f[c>>2]|0)+(f[g>>2]|0)|0;i=a+24|0;j=f[a+32>>2]|0;k=j+-262144|0;do if(k>>>0>=64){if(k>>>0<16384){l=a+28|0;m=(f[i>>2]|0)+(f[l>>2]|0)|0;n=j+-245760|0;b[m>>0]=n;b[m+1>>0]=n>>>8;o=(f[l>>2]|0)+2|0;break}if(k>>>0<4194304){l=a+28|0;n=(f[i>>2]|0)+(f[l>>2]|0)|0;m=j+8126464|0;b[n>>0]=m;b[n+1>>0]=m>>>8;b[n+2>>0]=m>>>16;o=(f[l>>2]|0)+3|0;break}if(k>>>0<1073741824){l=a+28|0;m=(f[i>>2]|0)+(f[l>>2]|0)|0;n=j+-1074003968|0;b[m>>0]=n;b[m+1>>0]=n>>>8;b[m+2>>0]=n>>>16;b[m+3>>0]=n>>>24;o=(f[l>>2]|0)+4|0;break}else{o=f[a+28>>2]|0;break}}else{l=a+28|0;b[(f[i>>2]|0)+(f[l>>2]|0)>>0]=k;o=(f[l>>2]|0)+1|0}while(0);k=((o|0)<0)<<31>>31;Gn(e);yh(o,k,e)|0;i=e+4|0;a=(f[i>>2]|0)-(f[e>>2]|0)|0;im(h+a|0,h|0,o|0)|0;kh(h|0,f[e>>2]|0,a|0)|0;h=g;g=f[h>>2]|0;j=f[h+4>>2]|0;h=Vn(a|0,0,o|0,k|0)|0;k=Vn(h|0,I|0,g|0,j|0)|0;Cl(c,k,I);k=e+12|0;c=f[k>>2]|0;f[k>>2]=0;if(c|0)Oq(c);c=f[e>>2]|0;if(!c){u=d;return}if((f[i>>2]|0)!=(c|0))f[i>>2]=c;Oq(c);u=d;return}function Sf(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;d=u;u=u+32|0;e=d;g=a+40|0;h=(f[c>>2]|0)+(f[g>>2]|0)|0;i=a+24|0;j=f[a+32>>2]|0;k=j+-131072|0;do if(k>>>0>=64){if(k>>>0<16384){l=a+28|0;m=(f[i>>2]|0)+(f[l>>2]|0)|0;n=j+-114688|0;b[m>>0]=n;b[m+1>>0]=n>>>8;o=(f[l>>2]|0)+2|0;break}if(k>>>0<4194304){l=a+28|0;n=(f[i>>2]|0)+(f[l>>2]|0)|0;m=j+8257536|0;b[n>>0]=m;b[n+1>>0]=m>>>8;b[n+2>>0]=m>>>16;o=(f[l>>2]|0)+3|0;break}if(k>>>0<1073741824){l=a+28|0;m=(f[i>>2]|0)+(f[l>>2]|0)|0;n=j+-1073872896|0;b[m>>0]=n;b[m+1>>0]=n>>>8;b[m+2>>0]=n>>>16;b[m+3>>0]=n>>>24;o=(f[l>>2]|0)+4|0;break}else{o=f[a+28>>2]|0;break}}else{l=a+28|0;b[(f[i>>2]|0)+(f[l>>2]|0)>>0]=k;o=(f[l>>2]|0)+1|0}while(0);k=((o|0)<0)<<31>>31;Gn(e);yh(o,k,e)|0;i=e+4|0;a=(f[i>>2]|0)-(f[e>>2]|0)|0;im(h+a|0,h|0,o|0)|0;kh(h|0,f[e>>2]|0,a|0)|0;h=g;g=f[h>>2]|0;j=f[h+4>>2]|0;h=Vn(a|0,0,o|0,k|0)|0;k=Vn(h|0,I|0,g|0,j|0)|0;Cl(c,k,I);k=e+12|0;c=f[k>>2]|0;f[k>>2]=0;if(c|0)Oq(c);c=f[e>>2]|0;if(!c){u=d;return}if((f[i>>2]|0)!=(c|0))f[i>>2]=c;Oq(c);u=d;return}function Tf(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0;d=u;u=u+48|0;e=d+40|0;g=d+32|0;h=d+8|0;i=d;j=d+24|0;k=d+16|0;l=a+4|0;m=f[l>>2]|0;n=b;b=f[n>>2]|0;o=f[n+4>>2]|0;n=c;c=f[n>>2]|0;p=f[n+4>>2]|0;n=c-b<<3;f[l>>2]=m-o+p+n;l=(f[a>>2]|0)+(m>>>5<<2)|0;a=m&31;m=l;if((a|0)!=(o|0)){q=h;f[q>>2]=b;f[q+4>>2]=o;q=i;f[q>>2]=c;f[q+4>>2]=p;f[j>>2]=m;f[j+4>>2]=a;f[g>>2]=f[h>>2];f[g+4>>2]=f[h+4>>2];f[e>>2]=f[i>>2];f[e+4>>2]=f[i+4>>2];we(k,g,e,j);u=d;return}j=p-o+n|0;n=b;if((j|0)>0){if(!o){r=j;s=0;t=l;v=b;w=n}else{b=32-o|0;p=(j|0)<(b|0)?j:b;e=-1>>>(b-p|0)&-1<>2]=f[l>>2]&~e|f[n>>2]&e;e=p+o|0;b=n+4|0;r=j-p|0;s=e&31;t=l+(e>>>5<<2)|0;v=b;w=b}b=(r|0)/32|0;im(t|0,v|0,b<<2|0)|0;v=r-(b<<5)|0;r=t+(b<<2)|0;t=r;if((v|0)>0){e=-1>>>(32-v|0);f[r>>2]=f[r>>2]&~e|f[w+(b<<2)>>2]&e;x=v;y=t}else{x=s;y=t}}else{x=o;y=m}f[k>>2]=y;f[k+4>>2]=x;u=d;return}function Uf(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;d=u;u=u+32|0;e=d;g=a+40|0;h=(f[c>>2]|0)+(f[g>>2]|0)|0;i=a+24|0;j=f[a+32>>2]|0;k=j+-32768|0;do if(k>>>0>=64){if(k>>>0<16384){l=a+28|0;m=(f[i>>2]|0)+(f[l>>2]|0)|0;n=j+-16384|0;b[m>>0]=n;b[m+1>>0]=n>>>8;o=(f[l>>2]|0)+2|0;break}if(k>>>0<4194304){l=a+28|0;n=(f[i>>2]|0)+(f[l>>2]|0)|0;m=j+8355840|0;b[n>>0]=m;b[n+1>>0]=m>>>8;b[n+2>>0]=m>>>16;o=(f[l>>2]|0)+3|0;break}if(k>>>0<1073741824){l=a+28|0;m=(f[i>>2]|0)+(f[l>>2]|0)|0;n=j+-1073774592|0;b[m>>0]=n;b[m+1>>0]=n>>>8;b[m+2>>0]=n>>>16;b[m+3>>0]=n>>>24;o=(f[l>>2]|0)+4|0;break}else{o=f[a+28>>2]|0;break}}else{l=a+28|0;b[(f[i>>2]|0)+(f[l>>2]|0)>>0]=k;o=(f[l>>2]|0)+1|0}while(0);k=((o|0)<0)<<31>>31;Gn(e);yh(o,k,e)|0;i=e+4|0;a=(f[i>>2]|0)-(f[e>>2]|0)|0;im(h+a|0,h|0,o|0)|0;kh(h|0,f[e>>2]|0,a|0)|0;h=g;g=f[h>>2]|0;j=f[h+4>>2]|0;h=Vn(a|0,0,o|0,k|0)|0;k=Vn(h|0,I|0,g|0,j|0)|0;Cl(c,k,I);k=e+12|0;c=f[k>>2]|0;f[k>>2]=0;if(c|0)Oq(c);c=f[e>>2]|0;if(!c){u=d;return}if((f[i>>2]|0)!=(c|0))f[i>>2]=c;Oq(c);u=d;return}function Vf(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;c=f[b>>2]|0;d=f[b+4>>2]|0;e=f[b+8>>2]|0;g=f[b+12>>2]|0;b=(((c^318)+239^d)+239^e)+239^g;h=f[a+4>>2]|0;if(!h){i=0;return i|0}j=h+-1|0;k=(j&h|0)==0;if(!k)if(b>>>0>>0)l=b;else l=(b>>>0)%(h>>>0)|0;else l=b&j;m=f[(f[a>>2]|0)+(l<<2)>>2]|0;if(!m){i=0;return i|0}a=f[m>>2]|0;if(!a){i=0;return i|0}if(k){k=a;while(1){m=f[k+4>>2]|0;n=(m|0)==(b|0);if(!(n|(m&j|0)==(l|0))){i=0;o=25;break}if((((n?(f[k+8>>2]|0)==(c|0):0)?(f[k+12>>2]|0)==(d|0):0)?(f[k+16>>2]|0)==(e|0):0)?(f[k+20>>2]|0)==(g|0):0){i=k;o=25;break}k=f[k>>2]|0;if(!k){i=0;o=25;break}}if((o|0)==25)return i|0}else p=a;while(1){a=f[p+4>>2]|0;if((a|0)==(b|0)){if((((f[p+8>>2]|0)==(c|0)?(f[p+12>>2]|0)==(d|0):0)?(f[p+16>>2]|0)==(e|0):0)?(f[p+20>>2]|0)==(g|0):0){i=p;o=25;break}}else{if(a>>>0>>0)q=a;else q=(a>>>0)%(h>>>0)|0;if((q|0)!=(l|0)){i=0;o=25;break}}p=f[p>>2]|0;if(!p){i=0;o=25;break}}if((o|0)==25)return i|0;return 0}function Wf(a,c,d,e,g,h,i){a=a|0;c=c|0;d=d|0;e=e|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0;a=u;u=u+96|0;j=a;if(!c){k=-1;u=a;return k|0}Tm(j);Jj(j,d,0,g&255,i,0,g,0,0,0);i=jf(c,j,1,e)|0;d=f[(f[c+8>>2]|0)+(i<<2)>>2]|0;if(e|0){l=d+84|0;m=d+68|0;n=d+40|0;o=d+64|0;d=0;do{if(!(b[l>>0]|0))p=f[(f[m>>2]|0)+(d<<2)>>2]|0;else p=d;q=h+(X(d,g)|0)|0;r=n;s=f[r>>2]|0;t=un(s|0,f[r+4>>2]|0,p|0,0)|0;kh((f[f[o>>2]>>2]|0)+t|0,q|0,s|0)|0;d=d+1|0}while((d|0)!=(e|0))}d=c+80|0;c=f[d>>2]|0;if(c)if((c|0)==(e|0))v=10;else w=-1;else{f[d>>2]=e;v=10}if((v|0)==10)w=i;i=j+88|0;v=f[i>>2]|0;f[i>>2]=0;if(v|0){i=f[v+8>>2]|0;if(i|0){e=v+12|0;if((f[e>>2]|0)!=(i|0))f[e>>2]=i;Oq(i)}Oq(v)}v=f[j+68>>2]|0;if(v|0){i=j+72|0;e=f[i>>2]|0;if((e|0)!=(v|0))f[i>>2]=e+(~((e+-4-v|0)>>>2)<<2);Oq(v)}v=j+64|0;j=f[v>>2]|0;f[v>>2]=0;if(j|0){v=f[j>>2]|0;if(v|0){e=j+4|0;if((f[e>>2]|0)!=(v|0))f[e>>2]=v;Oq(v)}Oq(j)}k=w;u=a;return k|0}function Xf(a,b,c,d,e,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0;h=u;u=u+32|0;i=h;j=h+16|0;k=f[(f[(f[b+4>>2]|0)+8>>2]|0)+(d<<2)>>2]|0;do if((c+-1|0)>>>0<6&(Qa[f[(f[b>>2]|0)+8>>2]&127](b)|0)==1){l=Qa[f[(f[b>>2]|0)+48>>2]&127](b)|0;m=Ra[f[(f[b>>2]|0)+56>>2]&127](b,d)|0;if((l|0)==0|(m|0)==0){f[a>>2]=0;u=h;return}n=Ra[f[(f[b>>2]|0)+52>>2]&127](b,d)|0;if(!n){f[i>>2]=f[b+52>>2];f[i+4>>2]=l;f[i+12>>2]=m;f[i+8>>2]=m+12;qd(a,j,c,k,e,i,g);if(!(f[a>>2]|0)){f[a>>2]=0;break}u=h;return}else{f[i>>2]=f[b+52>>2];f[i+4>>2]=n;f[i+12>>2]=m;f[i+8>>2]=m+12;pd(a,j,c,k,e,i,g);if(!(f[a>>2]|0)){f[a>>2]=0;break}u=h;return}}while(0);f[a>>2]=0;u=h;return}function Yf(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;e=f[d>>2]|0;g=f[d+4>>2]|0;if((e|0)==(g|0)){h=0;i=a+12|0;j=a+8|0}else{d=f[c>>2]|0;c=a+8|0;k=a+12|0;a=0;l=e;while(1){e=f[l>>2]|0;m=f[d+(e<<2)>>2]|0;if(m>>>0>>0)n=a;else{o=f[c>>2]|0;p=(f[k>>2]|0)-o|0;q=o;if((p|0)>0){o=p>>>2;p=0;do{r=f[q+(p<<2)>>2]|0;s=f[r+68>>2]|0;if(!(b[r+84>>0]|0))t=f[s+(e<<2)>>2]|0;else t=e;f[s+(m<<2)>>2]=t;p=p+1|0}while((p|0)<(o|0))}n=m+1|0}l=l+4|0;if((l|0)==(g|0)){h=n;i=k;j=c;break}else a=n}}n=f[i>>2]|0;a=f[j>>2]|0;if((n-a|0)>0){u=0;v=a;w=n}else return;while(1){n=f[v+(u<<2)>>2]|0;b[n+84>>0]=0;a=n+68|0;c=n+72|0;n=f[c>>2]|0;k=f[a>>2]|0;g=n-k>>2;l=k;k=n;if(h>>>0<=g>>>0)if(h>>>0>>0?(n=l+(h<<2)|0,(n|0)!=(k|0)):0){f[c>>2]=k+(~((k+-4-n|0)>>>2)<<2);x=v;y=w}else{x=v;y=w}else{Ch(a,h-g|0,6220);x=f[j>>2]|0;y=f[i>>2]|0}u=u+1|0;if((u|0)>=(y-x>>2|0))break;else{v=x;w=y}}return}function Zf(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;d=b;e=c-d>>2;g=a+8|0;h=f[g>>2]|0;i=f[a>>2]|0;j=i;if(e>>>0<=h-i>>2>>>0){k=a+4|0;l=(f[k>>2]|0)-i>>2;m=e>>>0>l>>>0;n=b+(l<<2)|0;l=m?n:c;o=l;p=o-d|0;q=p>>2;if(q|0)im(i|0,b|0,p|0)|0;p=j+(q<<2)|0;if(!m){m=f[k>>2]|0;if((m|0)==(p|0))return;f[k>>2]=m+(~((m+-4-p|0)>>>2)<<2);return}if((l|0)==(c|0))return;l=f[k>>2]|0;p=((c+-4-o|0)>>>2)+1|0;o=n;n=l;while(1){f[n>>2]=f[o>>2];o=o+4|0;if((o|0)==(c|0))break;else n=n+4|0}f[k>>2]=l+(p<<2);return}p=i;if(!i)r=h;else{h=a+4|0;l=f[h>>2]|0;if((l|0)!=(j|0))f[h>>2]=l+(~((l+-4-i|0)>>>2)<<2);Oq(p);f[g>>2]=0;f[h>>2]=0;f[a>>2]=0;r=0}if(e>>>0>1073741823)aq(a);h=r>>1;p=r>>2>>>0<536870911?(h>>>0>>0?e:h):1073741823;if(p>>>0>1073741823)aq(a);h=ln(p<<2)|0;e=a+4|0;f[e>>2]=h;f[a>>2]=h;f[g>>2]=h+(p<<2);if((b|0)==(c|0))return;p=((c+-4-d|0)>>>2)+1|0;d=b;b=h;while(1){f[b>>2]=f[d>>2];d=d+4|0;if((d|0)==(c|0))break;else b=b+4|0}f[e>>2]=h+(p<<2);return}function _f(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;d=u;u=u+32|0;e=d;g=a+40|0;h=(f[c>>2]|0)+(f[g>>2]|0)|0;i=a+24|0;j=f[a+32>>2]|0;k=j+-16384|0;do if(k>>>0>=64){if(k>>>0<16384){l=a+28|0;m=(f[i>>2]|0)+(f[l>>2]|0)|0;b[m>>0]=j;b[m+1>>0]=j>>>8;n=(f[l>>2]|0)+2|0;break}if(k>>>0<4194304){l=a+28|0;m=(f[i>>2]|0)+(f[l>>2]|0)|0;o=j+8372224|0;b[m>>0]=o;b[m+1>>0]=o>>>8;b[m+2>>0]=o>>>16;n=(f[l>>2]|0)+3|0;break}if(k>>>0<1073741824){l=a+28|0;o=(f[i>>2]|0)+(f[l>>2]|0)|0;m=j+-1073758208|0;b[o>>0]=m;b[o+1>>0]=m>>>8;b[o+2>>0]=m>>>16;b[o+3>>0]=m>>>24;n=(f[l>>2]|0)+4|0;break}else{n=f[a+28>>2]|0;break}}else{l=a+28|0;b[(f[i>>2]|0)+(f[l>>2]|0)>>0]=k;n=(f[l>>2]|0)+1|0}while(0);k=((n|0)<0)<<31>>31;Gn(e);yh(n,k,e)|0;i=e+4|0;a=(f[i>>2]|0)-(f[e>>2]|0)|0;im(h+a|0,h|0,n|0)|0;kh(h|0,f[e>>2]|0,a|0)|0;h=g;g=f[h>>2]|0;j=f[h+4>>2]|0;h=Vn(a|0,0,n|0,k|0)|0;k=Vn(h|0,I|0,g|0,j|0)|0;Cl(c,k,I);k=e+12|0;c=f[k>>2]|0;f[k>>2]=0;if(c|0)Oq(c);c=f[e>>2]|0;if(!c){u=d;return}if((f[i>>2]|0)!=(c|0))f[i>>2]=c;Oq(c);u=d;return}function $f(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;d=b;e=c-d>>2;g=a+8|0;h=f[g>>2]|0;i=f[a>>2]|0;j=i;if(e>>>0<=h-i>>2>>>0){k=a+4|0;l=(f[k>>2]|0)-i>>2;m=e>>>0>l>>>0;n=b+(l<<2)|0;l=m?n:c;o=l;p=o-d|0;q=p>>2;if(q|0)im(i|0,b|0,p|0)|0;p=j+(q<<2)|0;if(!m){m=f[k>>2]|0;if((m|0)==(p|0))return;f[k>>2]=m+(~((m+-4-p|0)>>>2)<<2);return}if((l|0)==(c|0))return;l=f[k>>2]|0;p=c+-4-o|0;o=n;n=l;while(1){f[n>>2]=f[o>>2];o=o+4|0;if((o|0)==(c|0))break;else n=n+4|0}f[k>>2]=l+((p>>>2)+1<<2);return}p=i;if(!i)r=h;else{h=a+4|0;l=f[h>>2]|0;if((l|0)!=(j|0))f[h>>2]=l+(~((l+-4-i|0)>>>2)<<2);Oq(p);f[g>>2]=0;f[h>>2]=0;f[a>>2]=0;r=0}if(e>>>0>1073741823)aq(a);h=r>>1;p=r>>2>>>0<536870911?(h>>>0>>0?e:h):1073741823;if(p>>>0>1073741823)aq(a);h=ln(p<<2)|0;e=a+4|0;f[e>>2]=h;f[a>>2]=h;f[g>>2]=h+(p<<2);if((b|0)==(c|0))return;p=c+-4-d|0;d=b;b=h;while(1){f[b>>2]=f[d>>2];d=d+4|0;if((d|0)==(c|0))break;else b=b+4|0}f[e>>2]=h+((p>>>2)+1<<2);return}function ag(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0;g=u;u=u+80|0;h=g;i=g+64|0;Il(h);j=f[(f[a+8>>2]|0)+56>>2]|0;k=X(Vl(5)|0,d)|0;Jj(h,j,0,d&255,5,0,k,((k|0)<0)<<31>>31,0,0);k=ln(96)|0;tl(k,h);Bj(k,c)|0;f[i>>2]=k;gj(a,i);k=f[i>>2]|0;f[i>>2]=0;if(k|0){i=k+88|0;c=f[i>>2]|0;f[i>>2]=0;if(c|0){i=f[c+8>>2]|0;if(i|0){h=c+12|0;if((f[h>>2]|0)!=(i|0))f[h>>2]=i;Oq(i)}Oq(c)}c=f[k+68>>2]|0;if(c|0){i=k+72|0;h=f[i>>2]|0;if((h|0)!=(c|0))f[i>>2]=h+(~((h+-4-c|0)>>>2)<<2);Oq(c)}c=k+64|0;h=f[c>>2]|0;f[c>>2]=0;if(h|0){c=f[h>>2]|0;if(c|0){i=h+4|0;if((f[i>>2]|0)!=(c|0))f[i>>2]=c;Oq(c)}Oq(h)}Oq(k)}if(!e){u=g;return}k=f[a+32>>2]|0;b[k+84>>0]=0;a=k+68|0;h=k+72|0;k=f[h>>2]|0;c=f[a>>2]|0;i=k-c>>2;d=k;if(i>>>0>>0){Ch(a,e-i|0,1532);u=g;return}if(i>>>0<=e>>>0){u=g;return}i=c+(e<<2)|0;if((i|0)==(d|0)){u=g;return}f[h>>2]=d+(~((d+-4-i|0)>>>2)<<2);u=g;return}function bg(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0;c=u;u=u+16|0;d=c+4|0;e=c;g=a+4|0;h=f[g>>2]|0;i=a+8|0;j=f[i>>2]|0;if((j|0)==(h|0))k=h;else{l=j+(~((j+-4-h|0)>>>2)<<2)|0;f[i>>2]=l;k=l}l=a+16|0;h=f[l>>2]|0;j=a+20|0;m=f[j>>2]|0;n=h;if((m|0)!=(h|0))f[j>>2]=m+(~((m+-4-n|0)>>>2)<<2);m=f[b>>2]|0;h=f[b+4>>2]|0;if((m|0)==(h|0)){u=c;return}b=a+12|0;a=m;m=k;k=n;while(1){n=f[a>>2]|0;f[d>>2]=n;if((m|0)==(f[b>>2]|0)){Ri(g,d);o=f[l>>2]|0}else{f[m>>2]=n;f[i>>2]=m+4;o=k}n=f[d>>2]|0;p=f[j>>2]|0;q=p-o>>2;r=o;if((n|0)<(q|0)){s=r;t=n;v=o}else{w=n+1|0;f[e>>2]=-1;x=p;if(w>>>0<=q>>>0)if(w>>>0>>0?(p=r+(w<<2)|0,(p|0)!=(x|0)):0){f[j>>2]=x+(~((x+-4-p|0)>>>2)<<2);y=n;z=r;A=o}else{y=n;z=r;A=o}else{Ch(l,w-q|0,e);q=f[l>>2]|0;y=f[d>>2]|0;z=q;A=q}s=z;t=y;v=A}m=f[i>>2]|0;f[s+(t<<2)>>2]=(m-(f[g>>2]|0)>>2)+-1;a=a+4|0;if((a|0)==(h|0))break;else k=v}u=c;return}function cg(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;c=u;u=u+16|0;d=c;e=a+76|0;g=f[e>>2]|0;h=a+80|0;i=f[h>>2]|0;if((i|0)!=(g|0))f[h>>2]=i+(~((i+-4-g|0)>>>2)<<2);f[e>>2]=0;f[h>>2]=0;f[a+84>>2]=0;if(g|0)Oq(g);g=a+64|0;h=f[g>>2]|0;e=a+68|0;if((f[e>>2]|0)!=(h|0))f[e>>2]=h;f[g>>2]=0;f[e>>2]=0;f[a+72>>2]=0;if(h|0)Oq(h);h=b+4|0;e=f[h>>2]|0;g=f[b>>2]|0;i=((e-g|0)/12|0)*3|0;j=a+4|0;k=f[j>>2]|0;l=f[a>>2]|0;m=k-l>>2;n=l;l=k;k=g;if(i>>>0<=m>>>0)if(i>>>0>>0?(o=n+(i<<2)|0,(o|0)!=(l|0)):0){f[j>>2]=l+(~((l+-4-o|0)>>>2)<<2);p=e;q=g;r=k}else{p=e;q=g;r=k}else{Ci(a,i-m|0);m=f[b>>2]|0;p=f[h>>2]|0;q=m;r=m}if((p|0)!=(q|0)){q=f[a>>2]|0;m=(p-r|0)/12|0;p=0;do{h=p*3|0;f[q+(h<<2)>>2]=f[r+(p*12|0)>>2];f[q+(h+1<<2)>>2]=f[r+(p*12|0)+4>>2];f[q+(h+2<<2)>>2]=f[r+(p*12|0)+8>>2];p=p+1|0}while(p>>>0>>0)}f[d>>2]=-1;if(!(rc(a,d)|0)){s=0;u=c;return s|0}eb(a,f[d>>2]|0)|0;s=1;u=c;return s|0}function dg(a,b){a=a|0;b=b|0;var c=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;c=d[b>>1]|0;e=d[b+2>>1]|0;g=d[b+4>>1]|0;b=(((c^318)&65535)+239^e&65535)+239^g&65535;h=f[a+4>>2]|0;if(!h){i=0;return i|0}j=h+-1|0;k=(j&h|0)==0;if(!k)if(b>>>0>>0)l=b;else l=(b>>>0)%(h>>>0)|0;else l=b&j;m=f[(f[a>>2]|0)+(l<<2)>>2]|0;if(!m){i=0;return i|0}a=f[m>>2]|0;if(!a){i=0;return i|0}if(k){k=a;while(1){m=f[k+4>>2]|0;n=(m|0)==(b|0);if(!(n|(m&j|0)==(l|0))){i=0;o=23;break}if(((n?(n=k+8|0,(d[n>>1]|0)==c<<16>>16):0)?(d[n+2>>1]|0)==e<<16>>16:0)?(d[k+12>>1]|0)==g<<16>>16:0){i=k;o=23;break}k=f[k>>2]|0;if(!k){i=0;o=23;break}}if((o|0)==23)return i|0}else p=a;while(1){a=f[p+4>>2]|0;if((a|0)==(b|0)){k=p+8|0;if(((d[k>>1]|0)==c<<16>>16?(d[k+2>>1]|0)==e<<16>>16:0)?(d[p+12>>1]|0)==g<<16>>16:0){i=p;o=23;break}}else{if(a>>>0>>0)q=a;else q=(a>>>0)%(h>>>0)|0;if((q|0)!=(l|0)){i=0;o=23;break}}p=f[p>>2]|0;if(!p){i=0;o=23;break}}if((o|0)==23)return i|0;return 0}function eg(a){a=a|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;c=u;u=u+32|0;d=c;e=a+16|0;g=e;h=f[g>>2]|0;i=f[g+4>>2]|0;if(!((i|0)>0|(i|0)==0&h>>>0>0)){u=c;return}g=Vn(f[(f[a+12>>2]|0)+4>>2]|0,0,7,0)|0;j=Yn(g|0,I|0,3)|0;g=I;if(!(b[a+24>>0]|0)){k=a+4|0;l=k;m=k;n=h;o=i}else{k=f[a>>2]|0;p=a+4|0;q=k+((f[p>>2]|0)-k)|0;k=Vn(h|0,i|0,8,0)|0;i=q+(0-k)|0;f[d>>2]=0;f[d+4>>2]=0;f[d+8>>2]=0;f[d+12>>2]=0;f[d+16>>2]=0;f[d+20>>2]=0;b[d+24>>0]=0;yh(j,g,d)|0;k=d+4|0;q=(f[k>>2]|0)-(f[d>>2]|0)|0;im(i+q|0,i+8|0,j|0)|0;kh(i|0,f[d>>2]|0,q|0)|0;i=e;h=Vn(f[i>>2]|0,f[i+4>>2]|0,8-q|0,0)|0;q=e;f[q>>2]=h;f[q+4>>2]=I;q=d+12|0;h=f[q>>2]|0;f[q>>2]=0;if(h|0)Oq(h);h=f[d>>2]|0;if(h|0){if((f[k>>2]|0)!=(h|0))f[k>>2]=h;Oq(h)}h=e;l=p;m=p;n=f[h>>2]|0;o=f[h+4>>2]|0}h=f[l>>2]|0;l=f[a>>2]|0;p=h-l|0;k=Xn(j|0,g|0,n|0,o|0)|0;o=Vn(k|0,I|0,p|0,0)|0;k=l;l=h;if(p>>>0>=o>>>0){if(p>>>0>o>>>0?(h=k+o|0,(h|0)!=(l|0)):0)f[m>>2]=h}else Fi(a,o-p|0);p=e;f[p>>2]=0;f[p+4>>2]=0;u=c;return}function fg(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;f[a+4>>2]=f[b+4>>2];c=a+8|0;d=b+8|0;if((a|0)==(b|0))return a|0;e=b+12|0;g=f[e>>2]|0;if(!g)h=0;else{i=a+16|0;do if(g>>>0>f[i>>2]<<5>>>0){j=f[c>>2]|0;if(!j)k=g;else{Oq(j);f[c>>2]=0;f[i>>2]=0;f[a+12>>2]=0;k=f[e>>2]|0}if((k|0)<0)aq(c);else{j=((k+-1|0)>>>5)+1|0;l=ln(j<<2)|0;f[c>>2]=l;f[a+12>>2]=0;f[i>>2]=j;m=f[e>>2]|0;n=l;break}}else{m=g;n=f[c>>2]|0}while(0);im(n|0,f[d>>2]|0,((m+-1|0)>>>5<<2)+4|0)|0;h=f[e>>2]|0}f[a+12>>2]=h;h=a+20|0;e=b+20|0;m=b+24|0;b=f[m>>2]|0;if(!b)o=0;else{d=a+28|0;do if(b>>>0>f[d>>2]<<5>>>0){n=f[h>>2]|0;if(!n)p=b;else{Oq(n);f[h>>2]=0;f[d>>2]=0;f[a+24>>2]=0;p=f[m>>2]|0}if((p|0)<0)aq(h);else{n=((p+-1|0)>>>5)+1|0;c=ln(n<<2)|0;f[h>>2]=c;f[a+24>>2]=0;f[d>>2]=n;q=f[m>>2]|0;r=c;break}}else{q=b;r=f[h>>2]|0}while(0);im(r|0,f[e>>2]|0,((q+-1|0)>>>5<<2)+4|0)|0;o=f[m>>2]|0}f[a+24>>2]=o;return a|0}function gg(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;f[c>>2]=1;d=a+4|0;e=c+8|0;g=c+12|0;c=f[e>>2]|0;i=(f[g>>2]|0)-c|0;if(i>>>0<4294967292){Lk(e,i+4|0,0);j=f[e>>2]|0}else j=c;c=j+i|0;i=h[d>>0]|h[d+1>>0]<<8|h[d+2>>0]<<16|h[d+3>>0]<<24;b[c>>0]=i;b[c+1>>0]=i>>8;b[c+2>>0]=i>>16;b[c+3>>0]=i>>24;i=a+8|0;c=a+12|0;d=f[i>>2]|0;if((f[c>>2]|0)!=(d|0)){j=0;k=d;do{d=k+(j<<2)|0;l=f[e>>2]|0;m=(f[g>>2]|0)-l|0;if(m>>>0<4294967292){Lk(e,m+4|0,0);n=f[e>>2]|0}else n=l;l=n+m|0;m=h[d>>0]|h[d+1>>0]<<8|h[d+2>>0]<<16|h[d+3>>0]<<24;b[l>>0]=m;b[l+1>>0]=m>>8;b[l+2>>0]=m>>16;b[l+3>>0]=m>>24;j=j+1|0;k=f[i>>2]|0}while(j>>>0<(f[c>>2]|0)-k>>2>>>0)}k=a+20|0;a=f[e>>2]|0;c=(f[g>>2]|0)-a|0;if(c>>>0<4294967292){Lk(e,c+4|0,0);o=f[e>>2]|0;p=o+c|0;q=h[k>>0]|h[k+1>>0]<<8|h[k+2>>0]<<16|h[k+3>>0]<<24;b[p>>0]=q;b[p+1>>0]=q>>8;b[p+2>>0]=q>>16;b[p+3>>0]=q>>24;return}else{o=a;p=o+c|0;q=h[k>>0]|h[k+1>>0]<<8|h[k+2>>0]<<16|h[k+3>>0]<<24;b[p>>0]=q;b[p+1>>0]=q>>8;b[p+2>>0]=q>>16;b[p+3>>0]=q>>24;return}}function hg(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;d=a+8|0;e=f[d>>2]|0;g=f[a>>2]|0;h=g;do if(e-g>>2>>>0>=b>>>0){i=a+4|0;j=f[i>>2]|0;k=j-g>>2;l=k>>>0>>0;m=l?k:b;n=j;if(m|0){j=m;m=h;while(1){f[m>>2]=f[c>>2];j=j+-1|0;if(!j)break;else m=m+4|0}}if(!l){m=h+(b<<2)|0;if((m|0)==(n|0))return;else{o=i;p=n+(~((n+-4-m|0)>>>2)<<2)|0;break}}else{m=b-k|0;j=m;q=n;while(1){f[q>>2]=f[c>>2];j=j+-1|0;if(!j)break;else q=q+4|0}o=i;p=n+(m<<2)|0;break}}else{q=g;if(!g)r=e;else{j=a+4|0;k=f[j>>2]|0;if((k|0)!=(h|0))f[j>>2]=k+(~((k+-4-g|0)>>>2)<<2);Oq(q);f[d>>2]=0;f[j>>2]=0;f[a>>2]=0;r=0}if(b>>>0>1073741823)aq(a);j=r>>1;q=r>>2>>>0<536870911?(j>>>0>>0?b:j):1073741823;if(q>>>0>1073741823)aq(a);j=ln(q<<2)|0;k=a+4|0;f[k>>2]=j;f[a>>2]=j;f[d>>2]=j+(q<<2);q=b;l=j;while(1){f[l>>2]=f[c>>2];q=q+-1|0;if(!q)break;else l=l+4|0}o=k;p=j+(b<<2)|0}while(0);f[o>>2]=p;return}function ig(a,b,c,d,e,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0;h=jh(a,b,c,d,g)|0;i=f[e>>2]|0;j=f[d>>2]|0;k=f[g>>2]|0;g=f[k>>2]|0;l=(f[k+4>>2]|0)-g>>3;if(l>>>0<=i>>>0)aq(k);m=g;if(l>>>0<=j>>>0)aq(k);if((f[m+(i<<3)>>2]|0)>>>0>=(f[m+(j<<3)>>2]|0)>>>0){n=h;return n|0}f[d>>2]=i;f[e>>2]=j;j=f[d>>2]|0;e=f[c>>2]|0;if(l>>>0<=j>>>0)aq(k);if(l>>>0<=e>>>0)aq(k);if((f[m+(j<<3)>>2]|0)>>>0>=(f[m+(e<<3)>>2]|0)>>>0){n=h+1|0;return n|0}f[c>>2]=j;f[d>>2]=e;e=f[c>>2]|0;d=f[b>>2]|0;if(l>>>0<=e>>>0)aq(k);if(l>>>0<=d>>>0)aq(k);if((f[m+(e<<3)>>2]|0)>>>0>=(f[m+(d<<3)>>2]|0)>>>0){n=h+2|0;return n|0}f[b>>2]=e;f[c>>2]=d;d=f[b>>2]|0;c=f[a>>2]|0;if(l>>>0<=d>>>0)aq(k);if(l>>>0<=c>>>0)aq(k);if((f[m+(d<<3)>>2]|0)>>>0>=(f[m+(c<<3)>>2]|0)>>>0){n=h+3|0;return n|0}f[a>>2]=d;f[b>>2]=c;n=h+4|0;return n|0}function jg(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;d=b[c>>0]|0;e=b[c+1>>0]|0;g=b[c+2>>0]|0;c=((d&255^318)+239^e&255)+239^g&255;h=f[a+4>>2]|0;if(!h){i=0;return i|0}j=h+-1|0;k=(j&h|0)==0;if(!k)if(c>>>0>>0)l=c;else l=(c>>>0)%(h>>>0)|0;else l=c&j;m=f[(f[a>>2]|0)+(l<<2)>>2]|0;if(!m){i=0;return i|0}a=f[m>>2]|0;if(!a){i=0;return i|0}if(k){k=a;while(1){m=f[k+4>>2]|0;n=(m|0)==(c|0);if(!(n|(m&j|0)==(l|0))){i=0;o=23;break}if(((n?(n=k+8|0,(b[n>>0]|0)==d<<24>>24):0)?(b[n+1>>0]|0)==e<<24>>24:0)?(b[n+2>>0]|0)==g<<24>>24:0){i=k;o=23;break}k=f[k>>2]|0;if(!k){i=0;o=23;break}}if((o|0)==23)return i|0}else p=a;while(1){a=f[p+4>>2]|0;if((a|0)==(c|0)){k=p+8|0;if(((b[k>>0]|0)==d<<24>>24?(b[k+1>>0]|0)==e<<24>>24:0)?(b[k+2>>0]|0)==g<<24>>24:0){i=p;o=23;break}}else{if(a>>>0>>0)q=a;else q=(a>>>0)%(h>>>0)|0;if((q|0)!=(l|0)){i=0;o=23;break}}p=f[p>>2]|0;if(!p){i=0;o=23;break}}if((o|0)==23)return i|0;return 0}function kg(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;b=u;u=u+16|0;c=b;d=a+36|0;e=a+4|0;g=a+8|0;h=(f[g>>2]|0)-(f[e>>2]|0)>>2;i=a+40|0;j=f[i>>2]|0;k=f[d>>2]|0;l=j-k>>2;m=k;k=j;if(h>>>0<=l>>>0){if(h>>>0>>0?(j=m+(h<<2)|0,(j|0)!=(k|0)):0){m=k;do{k=m+-4|0;f[i>>2]=k;n=f[k>>2]|0;f[k>>2]=0;if(n|0)Va[f[(f[n>>2]|0)+4>>2]&127](n);m=f[i>>2]|0}while((m|0)!=(j|0))}}else Eg(d,h-l|0);if((f[g>>2]|0)==(f[e>>2]|0)){o=1;u=b;return o|0}l=a+52|0;h=a+48|0;j=0;while(1){Xa[f[(f[a>>2]|0)+56>>2]&15](c,a,j);m=(f[d>>2]|0)+(j<<2)|0;i=f[c>>2]|0;f[c>>2]=0;n=f[m>>2]|0;f[m>>2]=i;if(n|0)Va[f[(f[n>>2]|0)+4>>2]&127](n);n=f[c>>2]|0;f[c>>2]=0;if(n|0)Va[f[(f[n>>2]|0)+4>>2]&127](n);n=f[(f[d>>2]|0)+(j<<2)>>2]|0;if(!n){o=0;p=19;break}if(j>>>0<(f[l>>2]|0)>>>0?f[(f[h>>2]|0)+(j>>>5<<2)>>2]&1<<(j&31)|0:0)Bp(n);j=j+1|0;if(j>>>0>=(f[g>>2]|0)-(f[e>>2]|0)>>2>>>0){o=1;p=19;break}}if((p|0)==19){u=b;return o|0}return 0}function lg(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;d=u;u=u+16|0;e=d+4|0;g=d;ci(f[c+12>>2]|0,b)|0;h=f[c+8>>2]|0;a:do if(h|0){i=b+16|0;j=b+4|0;k=h;while(1){l=k;if(!(Bf(0,b,l+8|0)|0)){m=0;break}n=l+20|0;o=(f[l+24>>2]|0)-(f[n>>2]|0)|0;ci(o,b)|0;l=f[n>>2]|0;n=i;p=f[n+4>>2]|0;if(!((p|0)>0|(p|0)==0&(f[n>>2]|0)>>>0>0)){f[g>>2]=f[j>>2];f[e>>2]=f[g>>2];Me(b,e,l,l+o|0)|0}k=f[k>>2]|0;if(!k)break a}u=d;return m|0}while(0);ci(f[c+32>>2]|0,b)|0;e=f[c+28>>2]|0;if(!e){m=1;u=d;return m|0}else q=e;while(1){e=q;if(!(Bf(0,b,e+8|0)|0)){m=0;r=10;break}lg(a,b,f[e+20>>2]|0)|0;q=f[q>>2]|0;if(!q){m=1;r=10;break}}if((r|0)==10){u=d;return m|0}return 0}function mg(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;c=u;u=u+16|0;d=c+8|0;e=c+4|0;g=c;h=a+8|0;i=a+12|0;j=f[h>>2]|0;if((f[i>>2]|0)==(j|0)){k=ln(76)|0;vn(k,b);l=k;f[g>>2]=l;k=f[i>>2]|0;if(k>>>0<(f[a+16>>2]|0)>>>0){f[g>>2]=0;f[k>>2]=l;f[i>>2]=k+4;m=g}else{Qg(h,g);m=g}g=f[m>>2]|0;f[m>>2]=0;if(!g){u=c;return 1}Va[f[(f[g>>2]|0)+4>>2]&127](g);u=c;return 1}g=f[j>>2]|0;f[d>>2]=b;j=g+4|0;m=g+8|0;h=f[m>>2]|0;if((h|0)==(f[g+12>>2]|0))Ri(j,d);else{f[h>>2]=b;f[m>>2]=h+4}h=f[d>>2]|0;b=g+16|0;k=g+20|0;g=f[k>>2]|0;i=f[b>>2]|0;l=g-i>>2;a=i;if((h|0)<(l|0)){n=a;o=h}else{i=h+1|0;f[e>>2]=-1;p=g;if(i>>>0<=l>>>0)if(i>>>0>>0?(g=a+(i<<2)|0,(g|0)!=(p|0)):0){f[k>>2]=p+(~((p+-4-g|0)>>>2)<<2);q=h;r=a}else{q=h;r=a}else{Ch(b,i-l|0,e);q=f[d>>2]|0;r=f[b>>2]|0}n=r;o=q}f[n+(o<<2)>>2]=((f[m>>2]|0)-(f[j>>2]|0)>>2)+-1;u=c;return 1}function ng(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;d=c;e=b;g=d-e|0;h=g>>2;i=a+8|0;j=f[i>>2]|0;k=f[a>>2]|0;l=k;if(h>>>0>j-k>>2>>>0){m=k;if(!k)n=j;else{j=a+4|0;o=f[j>>2]|0;if((o|0)!=(l|0))f[j>>2]=o+(~((o+-4-k|0)>>>2)<<2);Oq(m);f[i>>2]=0;f[j>>2]=0;f[a>>2]=0;n=0}if(h>>>0>1073741823)aq(a);j=n>>1;m=n>>2>>>0<536870911?(j>>>0>>0?h:j):1073741823;if(m>>>0>1073741823)aq(a);j=ln(m<<2)|0;n=a+4|0;f[n>>2]=j;f[a>>2]=j;f[i>>2]=j+(m<<2);if((g|0)<=0)return;kh(j|0,b|0,g|0)|0;f[n>>2]=j+(g>>>2<<2);return}g=a+4|0;a=f[g>>2]|0;j=a-k>>2;k=h>>>0>j>>>0;h=k?b+(j<<2)|0:c;c=a;j=a;if((h|0)==(b|0))p=l;else{a=h+-4-e|0;e=b;b=l;while(1){f[b>>2]=f[e>>2];e=e+4|0;if((e|0)==(h|0))break;else b=b+4|0}p=l+((a>>>2)+1<<2)|0}if(k){k=d-h|0;if((k|0)<=0)return;kh(j|0,h|0,k|0)|0;f[g>>2]=(f[g>>2]|0)+(k>>>2<<2);return}else{if((p|0)==(c|0))return;f[g>>2]=c+(~((c+-4-p|0)>>>2)<<2);return}}function og(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;d=f[a+8>>2]|0;e=a+76|0;g=f[e>>2]|0;h=f[g+80>>2]|0;b[c+84>>0]=0;i=c+68|0;j=c+72|0;k=f[j>>2]|0;l=f[i>>2]|0;m=k-l>>2;n=l;l=k;if(h>>>0<=m>>>0)if(h>>>0>>0?(k=n+(h<<2)|0,(k|0)!=(l|0)):0){f[j>>2]=l+(~((l+-4-k|0)>>>2)<<2);o=g;p=h}else{o=g;p=h}else{Ch(i,h-m|0,3600);m=f[e>>2]|0;o=m;p=f[m+80>>2]|0}m=(f[o+100>>2]|0)-(f[o+96>>2]|0)|0;e=(m|0)/12|0;if(!m){q=1;return q|0}m=c+68|0;c=f[o+96>>2]|0;o=f[d+28>>2]|0;d=f[(f[a+80>>2]|0)+12>>2]|0;a=0;while(1){h=a*3|0;i=f[d+(f[o+(h<<2)>>2]<<2)>>2]|0;if(i>>>0>=p>>>0){q=0;r=10;break}g=f[m>>2]|0;f[g+(f[c+(a*12|0)>>2]<<2)>>2]=i;i=f[d+(f[o+(h+1<<2)>>2]<<2)>>2]|0;if(i>>>0>=p>>>0){q=0;r=10;break}f[g+(f[c+(a*12|0)+4>>2]<<2)>>2]=i;i=f[d+(f[o+(h+2<<2)>>2]<<2)>>2]|0;if(i>>>0>=p>>>0){q=0;r=10;break}f[g+(f[c+(a*12|0)+8>>2]<<2)>>2]=i;a=a+1|0;if(a>>>0>=e>>>0){q=1;r=10;break}}if((r|0)==10)return q|0;return 0}function pg(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;e=u;u=u+16|0;g=e;if(!(xh(a,c,d)|0)){h=0;u=e;return h|0}if((b[(f[a+8>>2]|0)+24>>0]|0)!=3){h=0;u=e;return h|0}i=f[c+48>>2]|0;c=ln(32)|0;f[g>>2]=c;f[g+8>>2]=-2147483616;f[g+4>>2]=17;j=c;k=14495;l=j+17|0;do{b[j>>0]=b[k>>0]|0;j=j+1|0;k=k+1|0}while((j|0)<(l|0));b[c+17>>0]=0;c=i+16|0;k=f[c>>2]|0;if(k){j=c;l=k;a:while(1){k=l;while(1){if((f[k+16>>2]|0)>=(d|0))break;m=f[k+4>>2]|0;if(!m){n=j;break a}else k=m}l=f[k>>2]|0;if(!l){n=k;break}else j=k}if(((n|0)!=(c|0)?(f[n+16>>2]|0)<=(d|0):0)?(d=n+20|0,(Jh(d,g)|0)!=0):0)o=Hk(d,g,-1)|0;else p=12}else p=12;if((p|0)==12)o=Hk(i,g,-1)|0;if((b[g+11>>0]|0)<0)Oq(f[g>>2]|0);if((o|0)<1){h=0;u=e;return h|0}ip(a+40|0,o);h=1;u=e;return h|0}function qg(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;c=f[b>>2]|0;d=f[b+4>>2]|0;e=f[b+8>>2]|0;b=((c^318)+239^d)+239^e;g=f[a+4>>2]|0;if(!g){h=0;return h|0}i=g+-1|0;j=(i&g|0)==0;if(!j)if(b>>>0>>0)k=b;else k=(b>>>0)%(g>>>0)|0;else k=b&i;l=f[(f[a>>2]|0)+(k<<2)>>2]|0;if(!l){h=0;return h|0}a=f[l>>2]|0;if(!a){h=0;return h|0}if(j){j=a;while(1){l=f[j+4>>2]|0;m=(l|0)==(b|0);if(!(m|(l&i|0)==(k|0))){h=0;n=23;break}if(((m?(f[j+8>>2]|0)==(c|0):0)?(f[j+12>>2]|0)==(d|0):0)?(f[j+16>>2]|0)==(e|0):0){h=j;n=23;break}j=f[j>>2]|0;if(!j){h=0;n=23;break}}if((n|0)==23)return h|0}else o=a;while(1){a=f[o+4>>2]|0;if((a|0)==(b|0)){if(((f[o+8>>2]|0)==(c|0)?(f[o+12>>2]|0)==(d|0):0)?(f[o+16>>2]|0)==(e|0):0){h=o;n=23;break}}else{if(a>>>0>>0)p=a;else p=(a>>>0)%(g>>>0)|0;if((p|0)!=(k|0)){h=0;n=23;break}}o=f[o>>2]|0;if(!o){h=0;n=23;break}}if((n|0)==23)return h|0;return 0}function rg(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;e=c;g=d-e|0;h=a+8|0;i=f[h>>2]|0;j=f[a>>2]|0;k=j;if(g>>>0>(i-j|0)>>>0){if(!j)l=i;else{i=a+4|0;if((f[i>>2]|0)!=(k|0))f[i>>2]=k;Oq(k);f[h>>2]=0;f[i>>2]=0;f[a>>2]=0;l=0}if((g|0)<0)aq(a);i=l<<1;m=l>>>0<1073741823?(i>>>0>>0?g:i):2147483647;if((m|0)<0)aq(a);i=ln(m)|0;l=a+4|0;f[l>>2]=i;f[a>>2]=i;f[h>>2]=i+m;if((c|0)==(d|0))return;else{n=c;o=i}do{b[o>>0]=b[n>>0]|0;n=n+1|0;o=(f[l>>2]|0)+1|0;f[l>>2]=o}while((n|0)!=(d|0));return}n=a+4|0;a=(f[n>>2]|0)-j|0;j=g>>>0>a>>>0;g=c+a|0;a=j?g:d;if((a|0)==(c|0))p=k;else{o=c;c=k;while(1){b[c>>0]=b[o>>0]|0;o=o+1|0;if((o|0)==(a|0))break;else c=c+1|0}p=k+(a-e)|0}if(!j){if((f[n>>2]|0)==(p|0))return;f[n>>2]=p;return}if((a|0)==(d|0))return;a=g;g=f[n>>2]|0;do{b[g>>0]=b[a>>0]|0;a=a+1|0;g=(f[n>>2]|0)+1|0;f[n>>2]=g}while((a|0)!=(d|0));return}function sg(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;d=c>>>1&1431655765|c<<1&-1431655766;c=d>>>2&858993459|d<<2&-858993460;d=c>>>4&252645135|c<<4&-252645136;c=d>>>8&16711935|d<<8&-16711936;d=32-b|0;e=(c>>>16|c<<16)>>>d;c=e-(e>>>1&1431655765)|0;g=(c>>>2&858993459)+(c&858993459)|0;c=(X((g>>>4)+g&252645135,16843009)|0)>>>24;g=b-c|0;h=f[a>>2]|0;i=h;j=Vn(f[i>>2]|0,f[i+4>>2]|0,g|0,((g|0)<0)<<31>>31|0)|0;g=h;f[g>>2]=j;f[g+4>>2]=I;g=h+8|0;h=g;j=Vn(f[h>>2]|0,f[h+4>>2]|0,c|0,0)|0;c=g;f[c>>2]=j;f[c+4>>2]=I;c=a+28|0;j=f[c>>2]|0;g=32-j|0;h=a+24|0;do if((g|0)>=(b|0)){i=-1>>>d<>2]&~i|i&e<>2]=k;i=j+b|0;f[c>>2]=i;if((i|0)!=32)return;i=a+16|0;l=f[i>>2]|0;if((l|0)==(f[a+20>>2]|0)){Ri(a+12|0,h);m=0;n=0;break}else{f[l>>2]=k;f[i>>2]=l+4;m=0;n=0;break}}else{l=-1>>>j<>2]&~l|l&e<>2]=i;l=a+16|0;k=f[l>>2]|0;if((k|0)==(f[a+20>>2]|0))Ri(a+12|0,h);else{f[k>>2]=i;f[l>>2]=k+4}k=b-g|0;m=k;n=-1>>>(32-k|0)&e>>>g}while(0);f[h>>2]=n;f[c>>2]=m;return}function tg(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;e=c&255;g=(d|0)!=0;a:do if(g&(a&3|0)!=0){h=c&255;i=a;j=d;while(1){if((b[i>>0]|0)==h<<24>>24){k=i;l=j;m=6;break a}n=i+1|0;o=j+-1|0;p=(o|0)!=0;if(p&(n&3|0)!=0){i=n;j=o}else{q=n;r=o;s=p;m=5;break}}}else{q=a;r=d;s=g;m=5}while(0);if((m|0)==5)if(s){k=q;l=r;m=6}else{t=q;u=0}b:do if((m|0)==6){q=c&255;if((b[k>>0]|0)==q<<24>>24){t=k;u=l}else{r=X(e,16843009)|0;c:do if(l>>>0>3){s=k;g=l;while(1){d=f[s>>2]^r;if((d&-2139062144^-2139062144)&d+-16843009|0)break;d=s+4|0;a=g+-4|0;if(a>>>0>3){s=d;g=a}else{v=d;w=a;m=11;break c}}x=s;y=g}else{v=k;w=l;m=11}while(0);if((m|0)==11)if(!w){t=v;u=0;break}else{x=v;y=w}while(1){if((b[x>>0]|0)==q<<24>>24){t=x;u=y;break b}r=x+1|0;y=y+-1|0;if(!y){t=r;u=0;break}else x=r}}}while(0);return (u|0?t:0)|0}function ug(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;c=a+4|0;d=f[c>>2]|0;e=f[a>>2]|0;g=e;do if((d|0)==(e|0)){h=a+8|0;i=f[h>>2]|0;j=a+12|0;k=f[j>>2]|0;l=k;if(i>>>0>>0){k=i;m=((l-k>>2)+1|0)/2|0;n=i+(m<<2)|0;o=k-d|0;k=o>>2;p=n+(0-k<<2)|0;if(!k){q=n;r=i}else{im(p|0,d|0,o|0)|0;q=p;r=f[h>>2]|0}f[c>>2]=q;f[h>>2]=r+(m<<2);s=q;break}m=l-g>>1;l=(m|0)==0?1:m;if(l>>>0>1073741823){m=ra(8)|0;Oo(m,16035);f[m>>2]=7256;va(m|0,1112,110)}m=ln(l<<2)|0;p=m;o=m+((l+3|0)>>>2<<2)|0;n=o;k=m+(l<<2)|0;if((d|0)==(i|0)){t=n;u=d}else{l=o;m=n;v=d;do{f[l>>2]=f[v>>2];l=m+4|0;m=l;v=v+4|0}while((v|0)!=(i|0));t=m;u=f[a>>2]|0}f[a>>2]=p;f[c>>2]=n;f[h>>2]=t;f[j>>2]=k;if(!u)s=o;else{Oq(u);s=f[c>>2]|0}}else s=d;while(0);f[s+-4>>2]=f[b>>2];f[c>>2]=(f[c>>2]|0)+-4;return}function vg(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;d=u;u=u+16|0;e=d+4|0;g=d;h=d+8|0;i=a+4|0;if((f[i>>2]|0)==-1){j=0;u=d;return j|0}k=f[a+8>>2]|0;l=c+16|0;m=l;n=f[m>>2]|0;o=f[m+4>>2]|0;if(!((o|0)>0|(o|0)==0&n>>>0>0)){m=(f[a+12>>2]|0)-k|0;p=c+4|0;f[g>>2]=f[p>>2];f[e>>2]=f[g>>2];Me(c,e,k,k+m|0)|0;m=l;k=f[m>>2]|0;q=f[m+4>>2]|0;m=a+20|0;if((q|0)>0|(q|0)==0&k>>>0>0){r=q;s=k;t=g}else{f[g>>2]=f[p>>2];f[e>>2]=f[g>>2];Me(c,e,m,m+4|0)|0;m=l;r=f[m+4>>2]|0;s=f[m>>2]|0;t=g}}else{r=o;s=n;t=g}b[h>>0]=f[i>>2];if(!((r|0)>0|(r|0)==0&s>>>0>0)){f[g>>2]=f[c+4>>2];f[e>>2]=f[g>>2];Me(c,e,h,h+1|0)|0}j=1;u=d;return j|0}function wg(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0;e=u;u=u+16|0;g=e+4|0;h=e;i=a+8|0;a=f[i>>2]|0;j=f[a+40>>2]|0;k=Lq((j|0)>-1?j:-1)|0;l=c+4|0;m=f[l>>2]|0;n=f[c>>2]|0;if((m|0)==(n|0)){Mq(k);u=e;return 1}o=d+16|0;p=d+4|0;q=k+j|0;j=0;r=n;n=a;s=a;a=m;while(1){m=f[r+(j<<2)>>2]|0;if(!(b[n+84>>0]|0))t=f[(f[n+68>>2]|0)+(m<<2)>>2]|0;else t=m;m=s+48|0;v=f[m>>2]|0;w=f[m+4>>2]|0;m=s+40|0;x=f[m>>2]|0;y=un(x|0,f[m+4>>2]|0,t|0,0)|0;m=Vn(y|0,I|0,v|0,w|0)|0;kh(k|0,(f[f[s>>2]>>2]|0)+m|0,x|0)|0;x=o;m=f[x+4>>2]|0;if((m|0)>0|(m|0)==0&(f[x>>2]|0)>>>0>0){z=r;A=a}else{f[h>>2]=f[p>>2];f[g>>2]=f[h>>2];Me(d,g,k,q)|0;z=f[c>>2]|0;A=f[l>>2]|0}x=j+1|0;if(x>>>0>=A-z>>2>>>0)break;m=f[i>>2]|0;j=x;r=z;n=m;s=m;a=A}Mq(k);u=e;return 1}function xg(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0;d=(f[b>>2]|0)*3|0;if((d|0)==-1){e=0;g=-1;f[c>>2]=g;return e|0}b=f[a+12>>2]|0;h=f[b+12>>2]|0;if((f[h+(d<<2)>>2]|0)==-1){e=0;g=d;f[c>>2]=g;return e|0}i=f[b>>2]|0;b=f[a+152>>2]|0;if((f[b+(f[i+(d<<2)>>2]<<2)>>2]|0)==-1){a=d+1|0;j=((a>>>0)%3|0|0)==0?d+-2|0:a;if((j|0)==-1){e=0;g=-1;f[c>>2]=g;return e|0}if((f[h+(j<<2)>>2]|0)==-1){e=0;g=j;f[c>>2]=g;return e|0}if((f[b+(f[i+(j<<2)>>2]<<2)>>2]|0)==-1){a=j+1|0;k=((a>>>0)%3|0|0)==0?j+-2|0:a;if((k|0)==-1){e=0;g=-1;f[c>>2]=g;return e|0}if((f[h+(k<<2)>>2]|0)==-1){e=0;g=k;f[c>>2]=g;return e|0}if((f[b+(f[i+(k<<2)>>2]<<2)>>2]|0)==-1){i=k+1|0;e=1;g=((i>>>0)%3|0|0)==0?k+-2|0:i;f[c>>2]=g;return e|0}else l=k}else l=j}else l=d;while(1){d=(((l>>>0)%3|0|0)==0?2:-1)+l|0;if((d|0)==-1)break;j=f[h+(d<<2)>>2]|0;if((j|0)==-1)break;d=j+(((j>>>0)%3|0|0)==0?2:-1)|0;if((d|0)==-1)break;else l=d}e=0;g=(((l>>>0)%3|0|0)==0?2:-1)+l|0;f[c>>2]=g;return e|0}function yg(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;e=a+4|0;g=f[e>>2]|0;if(!g){f[c>>2]=e;h=e;return h|0}e=b[d+11>>0]|0;i=e<<24>>24<0;j=i?f[d+4>>2]|0:e&255;e=i?f[d>>2]|0:d;d=a+4|0;a=g;while(1){g=a+16|0;i=b[g+11>>0]|0;k=i<<24>>24<0;l=k?f[a+20>>2]|0:i&255;i=l>>>0>>0;m=i?l:j;if((m|0)!=0?(n=Vk(e,k?f[g>>2]|0:g,m)|0,(n|0)!=0):0)if((n|0)<0)o=8;else o=10;else if(j>>>0>>0)o=8;else o=10;if((o|0)==8){o=0;n=f[a>>2]|0;if(!n){o=9;break}else{p=a;q=n}}else if((o|0)==10){o=0;n=j>>>0>>0?j:l;if((n|0)!=0?(l=Vk(k?f[g>>2]|0:g,e,n)|0,(l|0)!=0):0){if((l|0)>=0){o=16;break}}else o=12;if((o|0)==12?(o=0,!i):0){o=16;break}r=a+4|0;i=f[r>>2]|0;if(!i){o=15;break}else{p=r;q=i}}d=p;a=q}if((o|0)==9){f[c>>2]=a;h=a;return h|0}else if((o|0)==15){f[c>>2]=a;h=r;return h|0}else if((o|0)==16){f[c>>2]=a;h=d;return h|0}return 0}function zg(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0;d=u;u=u+32|0;e=d+24|0;g=d+16|0;h=d+8|0;i=d;j=a+4|0;k=f[j>>2]|0;l=f[b>>2]|0;m=f[b+4>>2]|0;b=f[c>>2]|0;n=f[c+4>>2]|0;c=b-l<<3;f[j>>2]=k-m+n+c;j=(f[a>>2]|0)+(k>>>5<<2)|0;a=k&31;k=j;if((m|0)!=(a|0)){f[e>>2]=l;f[e+4>>2]=m;f[g>>2]=b;f[g+4>>2]=n;f[h>>2]=k;f[h+4>>2]=a;xe(i,e,g,h);u=d;return}h=n-m+c|0;c=l;if((h|0)>0){if(!m){o=h;p=j;q=0;r=l;s=c}else{l=32-m|0;n=(h|0)<(l|0)?h:l;g=-1>>>(l-n|0)&-1<>2]=f[j>>2]&~g|f[c>>2]&g;g=n+m|0;l=c+4|0;o=h-n|0;p=j+(g>>>5<<2)|0;q=g&31;r=l;s=l}l=(o|0)/32|0;im(p|0,r|0,l<<2|0)|0;r=o-(l<<5)|0;o=p+(l<<2)|0;p=o;if((r|0)>0){g=-1>>>(32-r|0);f[o>>2]=f[o>>2]&~g|f[s+(l<<2)>>2]&g;t=r;v=p}else{t=q;v=p}}else{t=m;v=k}f[i>>2]=v;f[i+4>>2]=t;u=d;return}function Ag(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;c=a+8|0;d=f[c>>2]|0;e=a+12|0;g=f[e>>2]|0;h=g;do if((d|0)==(g|0)){i=a+4|0;j=f[i>>2]|0;k=f[a>>2]|0;l=k;if(j>>>0>k>>>0){m=j;n=((m-l>>2)+1|0)/-2|0;o=j+(n<<2)|0;p=d-m|0;m=p>>2;if(!m)q=j;else{im(o|0,j|0,p|0)|0;q=f[i>>2]|0}p=o+(m<<2)|0;f[c>>2]=p;f[i>>2]=q+(n<<2);r=p;break}p=h-l>>1;l=(p|0)==0?1:p;if(l>>>0>1073741823){p=ra(8)|0;Oo(p,16035);f[p>>2]=7256;va(p|0,1112,110)}p=ln(l<<2)|0;n=p;m=p+(l>>>2<<2)|0;o=m;s=p+(l<<2)|0;if((j|0)==(d|0)){t=o;u=k}else{k=m;m=o;l=j;do{f[k>>2]=f[l>>2];k=m+4|0;m=k;l=l+4|0}while((l|0)!=(d|0));t=m;u=f[a>>2]|0}f[a>>2]=n;f[i>>2]=o;f[c>>2]=t;f[e>>2]=s;if(!u)r=t;else{Oq(u);r=f[c>>2]|0}}else r=d;while(0);f[r>>2]=f[b>>2];f[c>>2]=(f[c>>2]|0)+4;return}function Bg(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;c=u;u=u+16|0;d=c+8|0;e=c+4|0;g=c;h=a+12|0;i=a+4|0;j=f[i>>2]|0;if((j|0)==(f[a+8>>2]|0)){Ri(a,h);k=f[i>>2]|0}else{f[j>>2]=f[h>>2];l=j+4|0;f[i>>2]=l;k=l}l=f[a>>2]|0;f[g>>2]=k-l;k=b+16|0;j=k;m=f[j+4>>2]|0;if(!((m|0)>0|(m|0)==0&(f[j>>2]|0)>>>0>0)){f[e>>2]=f[b+4>>2];f[d>>2]=f[e>>2];Me(b,d,g,g+4|0)|0;j=f[a>>2]|0;m=f[g>>2]|0;g=k;k=f[g+4>>2]|0;if((k|0)>0|(k|0)==0&(f[g>>2]|0)>>>0>0){n=j;o=e}else{f[e>>2]=f[b+4>>2];f[d>>2]=f[e>>2];Me(b,d,j,j+m|0)|0;n=f[a>>2]|0;o=e}}else{n=l;o=e}e=f[i>>2]|0;if((e|0)==(n|0)){f[h>>2]=0;p=a+16|0;f[p>>2]=0;u=c;return}f[i>>2]=e+(~((e+-4-n|0)>>>2)<<2);f[h>>2]=0;p=a+16|0;f[p>>2]=0;u=c;return}function Cg(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;e=c;g=d-e|0;h=a+8|0;i=f[h>>2]|0;j=f[a>>2]|0;k=j;if(g>>>0>(i-j|0)>>>0){if(!j)l=i;else{i=a+4|0;if((f[i>>2]|0)!=(k|0))f[i>>2]=k;Oq(k);f[h>>2]=0;f[i>>2]=0;f[a>>2]=0;l=0}if((g|0)<0)aq(a);i=l<<1;m=l>>>0<1073741823?(i>>>0>>0?g:i):2147483647;if((m|0)<0)aq(a);i=ln(m)|0;l=a+4|0;f[l>>2]=i;f[a>>2]=i;f[h>>2]=i+m;if((c|0)==(d|0))return;else{n=c;o=i}do{b[o>>0]=b[n>>0]|0;n=n+1|0;o=(f[l>>2]|0)+1|0;f[l>>2]=o}while((n|0)!=(d|0));return}else{n=a+4|0;a=(f[n>>2]|0)-j|0;j=g>>>0>a>>>0;g=c+a|0;a=j?g:d;o=a-e|0;if(o|0)im(k|0,c|0,o|0)|0;c=k+o|0;if(!j){if((f[n>>2]|0)==(c|0))return;f[n>>2]=c;return}if((a|0)==(d|0))return;a=g;g=f[n>>2]|0;do{b[g>>0]=b[a>>0]|0;a=a+1|0;g=(f[n>>2]|0)+1|0;f[n>>2]=g}while((a|0)!=(d|0));return}}function Dg(a){a=a|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;c=u;u=u+16|0;d=c;if(b[a+352>>0]|0){u=c;return 1}e=a+8|0;g=f[e>>2]|0;h=(f[g+12>>2]|0)-(f[g+8>>2]|0)|0;g=h>>2;i=a+172|0;Gi(i,g+-1|0);if(!((g|0)!=1&(h|0)>0)){u=c;return 1}h=a+12|0;a=0;j=0;while(1){k=f[(f[(f[e>>2]|0)+8>>2]|0)+(a<<2)>>2]|0;if(!(f[k+56>>2]|0))l=j;else{m=f[i>>2]|0;f[m+(j*136|0)>>2]=a;n=f[m+(j*136|0)+104>>2]|0;o=m+(j*136|0)+108|0;p=f[o>>2]|0;if((p|0)!=(n|0))f[o>>2]=p+(~((p+-4-n|0)>>>2)<<2);n=f[h>>2]|0;gk(m+(j*136|0)+104|0,(f[n+4>>2]|0)-(f[n>>2]|0)>>2);n=(f[i>>2]|0)+(j*136|0)+116|0;m=f[h>>2]|0;p=(f[m+4>>2]|0)-(f[m>>2]|0)>>2;f[d>>2]=-1;hg(n,p,d);p=f[i>>2]|0;f[p+(j*136|0)+128>>2]=0;Gc(p+(j*136|0)+4|0,f[e>>2]|0,f[h>>2]|0,k)|0;l=j+1|0}a=a+1|0;if((a|0)>=(g|0))break;else j=l}u=c;return 1}function Eg(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;c=a+8|0;d=f[c>>2]|0;e=a+4|0;g=f[e>>2]|0;h=g;if(d-g>>2>>>0>=b>>>0){sj(g|0,0,b<<2|0)|0;f[e>>2]=g+(b<<2);return}i=f[a>>2]|0;j=g-i>>2;g=j+b|0;k=i;if(g>>>0>1073741823)aq(a);l=d-i|0;d=l>>1;m=l>>2>>>0<536870911?(d>>>0>>0?g:d):1073741823;do if(m)if(m>>>0>1073741823){d=ra(8)|0;Oo(d,16035);f[d>>2]=7256;va(d|0,1112,110)}else{n=ln(m<<2)|0;break}else n=0;while(0);d=n+(j<<2)|0;sj(d|0,0,b<<2|0)|0;b=d;j=n+(m<<2)|0;m=n+(g<<2)|0;if((h|0)==(k|0)){o=b;p=i;q=h}else{i=h;h=b;b=d;do{i=i+-4|0;d=f[i>>2]|0;f[i>>2]=0;f[b+-4>>2]=d;b=h+-4|0;h=b}while((i|0)!=(k|0));o=h;p=f[a>>2]|0;q=f[e>>2]|0}f[a>>2]=o;f[e>>2]=m;f[c>>2]=j;j=p;if((q|0)!=(j|0)){c=q;do{c=c+-4|0;q=f[c>>2]|0;f[c>>2]=0;if(q|0)Va[f[(f[q>>2]|0)+4>>2]&127](q)}while((c|0)!=(j|0))}if(!p)return;Oq(p);return}function Fg(a,c,d,e,g,h){a=a|0;c=c|0;d=d|0;e=e|0;g=g|0;h=$(h);var i=0,j=0,k=0,l=0,m=0,n=0;i=u;u=u+16|0;j=i;k=i+4|0;f[j>>2]=c;c=ln(32)|0;f[k>>2]=c;f[k+8>>2]=-2147483616;f[k+4>>2]=17;l=c;m=14495;n=l+17|0;do{b[l>>0]=b[m>>0]|0;l=l+1|0;m=m+1|0}while((l|0)<(n|0));b[c+17>>0]=0;Xj(Hd(a,j)|0,k,d);if((b[k+11>>0]|0)<0)Oq(f[k>>2]|0);d=ln(32)|0;f[k>>2]=d;f[k+8>>2]=-2147483616;f[k+4>>2]=19;l=d;m=14438;n=l+19|0;do{b[l>>0]=b[m>>0]|0;l=l+1|0;m=m+1|0}while((l|0)<(n|0));b[d+19>>0]=0;si(Hd(a,j)|0,k,g,e);if((b[k+11>>0]|0)<0)Oq(f[k>>2]|0);e=ln(32)|0;f[k>>2]=e;f[k+8>>2]=-2147483616;f[k+4>>2]=18;l=e;m=14458;n=l+18|0;do{b[l>>0]=b[m>>0]|0;l=l+1|0;m=m+1|0}while((l|0)<(n|0));b[e+18>>0]=0;Tj(Hd(a,j)|0,k,h);if((b[k+11>>0]|0)>=0){u=i;return}Oq(f[k>>2]|0);u=i;return}function Gg(a){a=a|0;tk(a);tk(a+32|0);tk(a+64|0);tk(a+96|0);tk(a+128|0);tk(a+160|0);tk(a+192|0);tk(a+224|0);tk(a+256|0);tk(a+288|0);tk(a+320|0);tk(a+352|0);tk(a+384|0);tk(a+416|0);tk(a+448|0);tk(a+480|0);tk(a+512|0);tk(a+544|0);tk(a+576|0);tk(a+608|0);tk(a+640|0);tk(a+672|0);tk(a+704|0);tk(a+736|0);tk(a+768|0);tk(a+800|0);tk(a+832|0);tk(a+864|0);tk(a+896|0);tk(a+928|0);tk(a+960|0);tk(a+992|0);tk(a+1024|0);return}function Hg(a){a=a|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;c=u;u=u+16|0;d=c;if(b[a+288>>0]|0){u=c;return 1}e=a+8|0;g=f[e>>2]|0;h=(f[g+12>>2]|0)-(f[g+8>>2]|0)|0;g=h>>2;i=a+172|0;Gi(i,g+-1|0);if(!((g|0)!=1&(h|0)>0)){u=c;return 1}h=a+12|0;a=0;j=0;while(1){k=f[(f[(f[e>>2]|0)+8>>2]|0)+(a<<2)>>2]|0;if(!(f[k+56>>2]|0))l=j;else{m=f[i>>2]|0;f[m+(j*136|0)>>2]=a;n=f[m+(j*136|0)+104>>2]|0;o=m+(j*136|0)+108|0;p=f[o>>2]|0;if((p|0)!=(n|0))f[o>>2]=p+(~((p+-4-n|0)>>>2)<<2);n=f[h>>2]|0;gk(m+(j*136|0)+104|0,(f[n+4>>2]|0)-(f[n>>2]|0)>>2);n=(f[i>>2]|0)+(j*136|0)+116|0;m=f[h>>2]|0;p=(f[m+4>>2]|0)-(f[m>>2]|0)>>2;f[d>>2]=-1;hg(n,p,d);p=f[i>>2]|0;f[p+(j*136|0)+128>>2]=0;Gc(p+(j*136|0)+4|0,f[e>>2]|0,f[h>>2]|0,k)|0;l=j+1|0}a=a+1|0;if((a|0)>=(g|0))break;else j=l}u=c;return 1}function Ig(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;d=c;e=b;g=d-e|0;h=g>>2;i=a+8|0;j=f[i>>2]|0;k=f[a>>2]|0;l=k;if(h>>>0<=j-k>>2>>>0){m=a+4|0;n=(f[m>>2]|0)-k>>2;o=h>>>0>n>>>0;p=o?b+(n<<2)|0:c;c=p;n=c-e|0;e=n>>2;if(e|0)im(k|0,b|0,n|0)|0;n=l+(e<<2)|0;if(o){o=d-c|0;if((o|0)<=0)return;kh(f[m>>2]|0,p|0,o|0)|0;f[m>>2]=(f[m>>2]|0)+(o>>>2<<2);return}else{o=f[m>>2]|0;if((o|0)==(n|0))return;f[m>>2]=o+(~((o+-4-n|0)>>>2)<<2);return}}n=k;if(!k)q=j;else{j=a+4|0;o=f[j>>2]|0;if((o|0)!=(l|0))f[j>>2]=o+(~((o+-4-k|0)>>>2)<<2);Oq(n);f[i>>2]=0;f[j>>2]=0;f[a>>2]=0;q=0}if(h>>>0>1073741823)aq(a);j=q>>1;n=q>>2>>>0<536870911?(j>>>0>>0?h:j):1073741823;if(n>>>0>1073741823)aq(a);j=ln(n<<2)|0;h=a+4|0;f[h>>2]=j;f[a>>2]=j;f[i>>2]=j+(n<<2);if((g|0)<=0)return;kh(j|0,b|0,g|0)|0;f[h>>2]=j+(g>>>2<<2);return}function Jg(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0.0,p=0,q=0.0,r=0.0,s=0.0,t=0,v=0.0;e=u;u=u+16|0;g=e;h=c+1|0;f[g>>2]=0;i=g+4|0;f[i>>2]=0;f[g+8>>2]=0;do if(h)if(h>>>0>1073741823)aq(g);else{j=ln(h<<2)|0;f[g>>2]=j;k=j+(h<<2)|0;f[g+8>>2]=k;sj(j|0,0,(c<<2)+4|0)|0;f[i>>2]=k;l=j;m=k;n=j;break}else{l=0;m=0;n=0}while(0);if((b|0)>0){g=0;do{j=l+(f[a+(g<<2)>>2]<<2)|0;f[j>>2]=(f[j>>2]|0)+1;g=g+1|0}while((g|0)!=(b|0))}o=+(b|0);if((c|0)<0){p=0;q=0.0}else{c=0;r=0.0;b=0;while(1){g=f[l+(b<<2)>>2]|0;s=+(g|0);if((g|0)>0){t=c+1|0;v=r+ +Zg(s/o)*s}else{t=c;v=r}b=b+1|0;if((b|0)==(h|0)){p=t;q=v;break}else{c=t;r=v}}}if(d|0)f[d>>2]=p;v=-q;p=~~v>>>0;d=+K(v)>=1.0?(v>0.0?~~+Y(+J(v/4294967296.0),4294967295.0)>>>0:~~+W((v-+(~~v>>>0))/4294967296.0)>>>0):0;if(!l){I=d;u=e;return p|0}if((m|0)!=(l|0))f[i>>2]=m+(~((m+-4-l|0)>>>2)<<2);Oq(n);I=d;u=e;return p|0}function Kg(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;e=u;u=u+16|0;g=e+4|0;h=e;i=ln(32)|0;f[a>>2]=i;f[a+4>>2]=c+4;c=a+8|0;b[c>>0]=0;f[i+16>>2]=f[d>>2];a=i+20|0;f[i+24>>2]=0;f[i+28>>2]=0;j=i+24|0;f[a>>2]=j;i=f[d+4>>2]|0;k=d+8|0;if((i|0)==(k|0)){b[c>>0]=1;u=e;return}d=j;j=i;while(1){i=j+16|0;f[h>>2]=d;f[g>>2]=f[h>>2];ph(a,g,i,i)|0;i=f[j+4>>2]|0;if(!i){l=j+8|0;m=f[l>>2]|0;if((f[m>>2]|0)==(j|0))n=m;else{m=l;do{l=f[m>>2]|0;m=l+8|0;o=f[m>>2]|0}while((f[o>>2]|0)!=(l|0));n=o}}else{m=i;while(1){o=f[m>>2]|0;if(!o)break;else m=o}n=m}if((n|0)==(k|0))break;else j=n}b[c>>0]=1;u=e;return}function Lg(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0;d=u;u=u+16|0;e=d;f[e>>2]=b;g=a+8|0;if(((f[a+12>>2]|0)-(f[g>>2]|0)>>2|0)<=(b|0))Bh(g,b+1|0);h=f[(f[c>>2]|0)+56>>2]|0;do if((h|0)<5){i=a+20+(h*12|0)+4|0;j=f[i>>2]|0;if((j|0)==(f[a+20+(h*12|0)+8>>2]|0)){Ri(a+20+(h*12|0)|0,e);break}else{f[j>>2]=b;f[i>>2]=j+4;break}}while(0);b=f[c>>2]|0;h=f[e>>2]|0;f[b+60>>2]=h;e=(f[g>>2]|0)+(h<<2)|0;f[c>>2]=0;c=f[e>>2]|0;f[e>>2]=b;if(!c){u=d;return}b=c+88|0;e=f[b>>2]|0;f[b>>2]=0;if(e|0){b=f[e+8>>2]|0;if(b|0){h=e+12|0;if((f[h>>2]|0)!=(b|0))f[h>>2]=b;Oq(b)}Oq(e)}e=f[c+68>>2]|0;if(e|0){b=c+72|0;h=f[b>>2]|0;if((h|0)!=(e|0))f[b>>2]=h+(~((h+-4-e|0)>>>2)<<2);Oq(e)}e=c+64|0;h=f[e>>2]|0;f[e>>2]=0;if(h|0){e=f[h>>2]|0;if(e|0){b=h+4|0;if((f[b>>2]|0)!=(e|0))f[b>>2]=e;Oq(e)}Oq(h)}Oq(c);u=d;return}function Mg(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0,i=0;b=u;u=u+16|0;c=b+4|0;d=b;e=a+8|0;g=f[e>>2]|0;gk(f[a+4>>2]|0,(f[g+56>>2]|0)-(f[g+52>>2]|0)>>2);g=a+84|0;a=f[g>>2]|0;if(!a){h=f[(f[e>>2]|0)+64>>2]|0;i=(f[h+4>>2]|0)-(f[h>>2]|0)>>2;h=(i>>>0)/3|0;if(i>>>0<=2){u=b;return 1}i=0;do{f[d>>2]=i*3;f[c>>2]=f[d>>2];Zb(e,c);i=i+1|0}while((i|0)<(h|0));u=b;return 1}else{h=f[a>>2]|0;if((f[a+4>>2]|0)==(h|0)){u=b;return 1}a=0;i=h;do{f[d>>2]=f[i+(a<<2)>>2];f[c>>2]=f[d>>2];Zb(e,c);a=a+1|0;h=f[g>>2]|0;i=f[h>>2]|0}while(a>>>0<(f[h+4>>2]|0)-i>>2>>>0);u=b;return 1}return 0}function Ng(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0;d=u;u=u+48|0;e=d+16|0;g=d;h=d+32|0;i=a+28|0;j=f[i>>2]|0;f[h>>2]=j;k=a+20|0;l=(f[k>>2]|0)-j|0;f[h+4>>2]=l;f[h+8>>2]=b;f[h+12>>2]=c;b=l+c|0;l=a+60|0;f[g>>2]=f[l>>2];f[g+4>>2]=h;f[g+8>>2]=2;j=to(Aa(146,g|0)|0)|0;a:do if((b|0)!=(j|0)){g=2;m=b;n=h;o=j;while(1){if((o|0)<0)break;m=m-o|0;p=f[n+4>>2]|0;q=o>>>0>p>>>0;r=q?n+8|0:n;s=g+(q<<31>>31)|0;t=o-(q?p:0)|0;f[r>>2]=(f[r>>2]|0)+t;p=r+4|0;f[p>>2]=(f[p>>2]|0)-t;f[e>>2]=f[l>>2];f[e+4>>2]=r;f[e+8>>2]=s;o=to(Aa(146,e|0)|0)|0;if((m|0)==(o|0)){v=3;break a}else{g=s;n=r}}f[a+16>>2]=0;f[i>>2]=0;f[k>>2]=0;f[a>>2]=f[a>>2]|32;if((g|0)==2)w=0;else w=c-(f[n+4>>2]|0)|0}else v=3;while(0);if((v|0)==3){v=f[a+44>>2]|0;f[a+16>>2]=v+(f[a+48>>2]|0);a=v;f[i>>2]=a;f[k>>2]=a;w=c}u=d;return w|0}function Og(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0,i=0;f[a>>2]=6192;b=f[a+68>>2]|0;if(b|0){c=a+72|0;d=f[c>>2]|0;if((d|0)!=(b|0))f[c>>2]=d+(~((d+-4-b|0)>>>2)<<2);Oq(b)}b=f[a+56>>2]|0;if(b|0){d=a+60|0;c=f[d>>2]|0;if((c|0)!=(b|0))f[d>>2]=c+(~((c+-4-b|0)>>>2)<<2);Oq(b)}b=f[a+44>>2]|0;if(b|0){c=a+48|0;d=f[c>>2]|0;if((d|0)!=(b|0))f[c>>2]=d+(~((d+-4-b|0)>>>2)<<2);Oq(b)}b=f[a+32>>2]|0;if(b|0){d=a+36|0;c=f[d>>2]|0;if((c|0)!=(b|0))f[d>>2]=c+(~((c+-4-b|0)>>>2)<<2);Oq(b)}b=f[a+20>>2]|0;if(b|0){c=a+24|0;d=f[c>>2]|0;if((d|0)!=(b|0))f[c>>2]=d+(~((d+-4-b|0)>>>2)<<2);Oq(b)}hi(a+8|0);b=a+4|0;a=f[b>>2]|0;f[b>>2]=0;if(!a)return;b=a+40|0;d=f[b>>2]|0;if(d|0){c=a+44|0;e=f[c>>2]|0;if((e|0)==(d|0))g=d;else{h=e;do{e=h+-4|0;f[c>>2]=e;i=f[e>>2]|0;f[e>>2]=0;if(i|0){bj(i);Oq(i)}h=f[c>>2]|0}while((h|0)!=(d|0));g=f[b>>2]|0}Oq(g)}bj(a);Oq(a);return}function Pg(a){a=a|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0;c=a+12|0;d=f[a>>2]|0;e=a+8|0;g=f[e>>2]|0;h=(g|0)==-1;if(!(b[c>>0]|0)){do if(((!h?(i=(((g>>>0)%3|0|0)==0?2:-1)+g|0,(i|0)!=-1):0)?(f[(f[d>>2]|0)+(i>>>5<<2)>>2]&1<<(i&31)|0)==0:0)?(j=f[(f[(f[d+64>>2]|0)+12>>2]|0)+(i<<2)>>2]|0,(j|0)!=-1):0)if(!((j>>>0)%3|0)){k=j+2|0;break}else{k=j+-1|0;break}else k=-1;while(0);f[e>>2]=k;return}k=g+1|0;if(((!h?(h=((k>>>0)%3|0|0)==0?g+-2|0:k,(h|0)!=-1):0)?(f[(f[d>>2]|0)+(h>>>5<<2)>>2]&1<<(h&31)|0)==0:0)?(k=f[(f[(f[d+64>>2]|0)+12>>2]|0)+(h<<2)>>2]|0,h=k+1|0,(k|0)!=-1):0){g=((h>>>0)%3|0|0)==0?k+-2|0:h;f[e>>2]=g;if((g|0)!=-1){if((g|0)!=(f[a+4>>2]|0))return;f[e>>2]=-1;return}}else f[e>>2]=-1;g=f[a+4>>2]|0;do if((((g|0)!=-1?(a=(((g>>>0)%3|0|0)==0?2:-1)+g|0,(a|0)!=-1):0)?(f[(f[d>>2]|0)+(a>>>5<<2)>>2]&1<<(a&31)|0)==0:0)?(h=f[(f[(f[d+64>>2]|0)+12>>2]|0)+(a<<2)>>2]|0,(h|0)!=-1):0)if(!((h>>>0)%3|0)){l=h+2|0;break}else{l=h+-1|0;break}else l=-1;while(0);f[e>>2]=l;b[c>>0]=0;return}function Qg(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;c=a+4|0;d=f[a>>2]|0;e=(f[c>>2]|0)-d>>2;g=e+1|0;if(g>>>0>1073741823)aq(a);h=a+8|0;i=(f[h>>2]|0)-d|0;d=i>>1;j=i>>2>>>0<536870911?(d>>>0>>0?g:d):1073741823;do if(j)if(j>>>0>1073741823){d=ra(8)|0;Oo(d,16035);f[d>>2]=7256;va(d|0,1112,110)}else{k=ln(j<<2)|0;break}else k=0;while(0);d=k+(e<<2)|0;e=d;g=k+(j<<2)|0;j=f[b>>2]|0;f[b>>2]=0;f[d>>2]=j;j=d+4|0;b=f[a>>2]|0;k=f[c>>2]|0;if((k|0)==(b|0)){l=e;m=b;n=b}else{i=k;k=e;e=d;do{i=i+-4|0;d=f[i>>2]|0;f[i>>2]=0;f[e+-4>>2]=d;e=k+-4|0;k=e}while((i|0)!=(b|0));l=k;m=f[a>>2]|0;n=f[c>>2]|0}f[a>>2]=l;f[c>>2]=j;f[h>>2]=g;g=m;if((n|0)!=(g|0)){h=n;do{h=h+-4|0;n=f[h>>2]|0;f[h>>2]=0;if(n|0)Va[f[(f[n>>2]|0)+4>>2]&127](n)}while((h|0)!=(g|0))}if(!m)return;Oq(m);return}function Rg(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;d=a+4|0;a=f[d>>2]|0;do if(a|0){e=b[c+11>>0]|0;g=e<<24>>24<0;h=g?f[c+4>>2]|0:e&255;e=g?f[c>>2]|0:c;g=d;i=a;a:while(1){j=i;while(1){k=j+16|0;l=b[k+11>>0]|0;m=l<<24>>24<0;n=m?f[j+20>>2]|0:l&255;l=h>>>0>>0?h:n;if((l|0)!=0?(o=Vk(m?f[k>>2]|0:k,e,l)|0,(o|0)!=0):0){if((o|0)>=0)break}else p=6;if((p|0)==6?(p=0,n>>>0>=h>>>0):0)break;n=f[j+4>>2]|0;if(!n){q=g;break a}else j=n}i=f[j>>2]|0;if(!i){q=j;break}else g=j}if((q|0)!=(d|0)){g=q+16|0;i=b[g+11>>0]|0;n=i<<24>>24<0;o=n?f[q+20>>2]|0:i&255;i=o>>>0>>0?o:h;if(i|0?(l=Vk(e,n?f[g>>2]|0:g,i)|0,l|0):0){if((l|0)<0)break;else r=q;return r|0}if(h>>>0>=o>>>0){r=q;return r|0}}}while(0);r=d;return r|0}function Sg(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;c=a+8|0;f[c>>2]=f[b>>2];fg(a+12|0,b+4|0)|0;d=a+44|0;e=b+36|0;f[d>>2]=f[e>>2];f[d+4>>2]=f[e+4>>2];f[d+8>>2]=f[e+8>>2];f[d+12>>2]=f[e+12>>2];if((c|0)==(b|0)){f[a+96>>2]=f[b+88>>2];return}else{ng(a+60|0,f[b+52>>2]|0,f[b+56>>2]|0);ng(a+72|0,f[b+64>>2]|0,f[b+68>>2]|0);ng(a+84|0,f[b+76>>2]|0,f[b+80>>2]|0);f[a+96>>2]=f[b+88>>2];Ig(a+100|0,f[b+92>>2]|0,f[b+96>>2]|0);return}}function Tg(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0;d=a+8|0;e=f[d>>2]|0;g=a+4|0;h=f[g>>2]|0;if(((e-h|0)/12|0)>>>0>=b>>>0){i=b;j=h;do{f[j>>2]=f[c>>2];f[j+4>>2]=f[c+4>>2];f[j+8>>2]=f[c+8>>2];j=(f[g>>2]|0)+12|0;f[g>>2]=j;i=i+-1|0}while((i|0)!=0);return}i=f[a>>2]|0;j=(h-i|0)/12|0;h=j+b|0;if(h>>>0>357913941)aq(a);k=(e-i|0)/12|0;i=k<<1;e=k>>>0<178956970?(i>>>0>>0?h:i):357913941;do if(e)if(e>>>0>357913941){i=ra(8)|0;Oo(i,16035);f[i>>2]=7256;va(i|0,1112,110)}else{l=ln(e*12|0)|0;break}else l=0;while(0);i=l+(j*12|0)|0;j=l+(e*12|0)|0;e=b;b=i;l=i;do{f[b>>2]=f[c>>2];f[b+4>>2]=f[c+4>>2];f[b+8>>2]=f[c+8>>2];b=l+12|0;l=b;e=e+-1|0}while((e|0)!=0);e=f[a>>2]|0;b=(f[g>>2]|0)-e|0;c=i+(((b|0)/-12|0)*12|0)|0;if((b|0)>0)kh(c|0,e|0,b|0)|0;f[a>>2]=c;f[g>>2]=l;f[d>>2]=j;if(!e)return;Oq(e);return}function Ug(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;c=a+4|0;d=f[a>>2]|0;e=(f[c>>2]|0)-d>>2;g=e+1|0;if(g>>>0>1073741823)aq(a);h=a+8|0;i=(f[h>>2]|0)-d|0;d=i>>1;j=i>>2>>>0<536870911?(d>>>0>>0?g:d):1073741823;do if(j)if(j>>>0>1073741823){d=ra(8)|0;Oo(d,16035);f[d>>2]=7256;va(d|0,1112,110)}else{k=ln(j<<2)|0;break}else k=0;while(0);d=k+(e<<2)|0;e=d;g=k+(j<<2)|0;j=f[b>>2]|0;f[b>>2]=0;f[d>>2]=j;j=d+4|0;b=f[a>>2]|0;k=f[c>>2]|0;if((k|0)==(b|0)){l=e;m=b;n=b}else{i=k;k=e;e=d;do{i=i+-4|0;d=f[i>>2]|0;f[i>>2]=0;f[e+-4>>2]=d;e=k+-4|0;k=e}while((i|0)!=(b|0));l=k;m=f[a>>2]|0;n=f[c>>2]|0}f[a>>2]=l;f[c>>2]=j;f[h>>2]=g;g=m;if((n|0)!=(g|0)){h=n;do{h=h+-4|0;n=f[h>>2]|0;f[h>>2]=0;if(n|0){bj(n);Oq(n)}}while((h|0)!=(g|0))}if(!m)return;Oq(m);return}function Vg(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;e=f[b>>2]|0;g=f[a>>2]|0;h=f[d>>2]|0;d=f[h>>2]|0;i=(f[h+4>>2]|0)-d>>3;if(i>>>0<=e>>>0)aq(h);j=d;if(i>>>0<=g>>>0)aq(h);d=f[j+(e<<3)>>2]|0;k=f[c>>2]|0;if(i>>>0<=k>>>0)aq(h);l=j+(g<<3)|0;m=(f[j+(k<<3)>>2]|0)>>>0>>0;if(d>>>0<(f[l>>2]|0)>>>0){if(m){f[a>>2]=k;f[c>>2]=g;n=1;return n|0}f[a>>2]=e;f[b>>2]=g;d=f[c>>2]|0;if(i>>>0<=d>>>0)aq(h);if((f[j+(d<<3)>>2]|0)>>>0>=(f[l>>2]|0)>>>0){n=1;return n|0}f[b>>2]=d;f[c>>2]=g;n=2;return n|0}if(!m){n=0;return n|0}f[b>>2]=k;f[c>>2]=e;e=f[b>>2]|0;c=f[a>>2]|0;if(i>>>0<=e>>>0)aq(h);if(i>>>0<=c>>>0)aq(h);if((f[j+(e<<3)>>2]|0)>>>0>=(f[j+(c<<3)>>2]|0)>>>0){n=1;return n|0}f[a>>2]=e;f[b>>2]=c;n=2;return n|0}function Wg(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0,i=0;b=u;u=u+16|0;c=b+4|0;d=b;e=a+8|0;g=f[e>>2]|0;gk(f[a+4>>2]|0,(f[g+28>>2]|0)-(f[g+24>>2]|0)>>2);g=a+84|0;a=f[g>>2]|0;if(!a){h=f[e>>2]|0;i=(f[h+4>>2]|0)-(f[h>>2]|0)>>2;h=(i>>>0)/3|0;if(i>>>0<=2){u=b;return 1}i=0;do{f[d>>2]=i*3;f[c>>2]=f[d>>2];dc(e,c);i=i+1|0}while((i|0)<(h|0));u=b;return 1}else{h=f[a>>2]|0;if((f[a+4>>2]|0)==(h|0)){u=b;return 1}a=0;i=h;do{f[d>>2]=f[i+(a<<2)>>2];f[c>>2]=f[d>>2];dc(e,c);a=a+1|0;h=f[g>>2]|0;i=f[h>>2]|0}while(a>>>0<(f[h+4>>2]|0)-i>>2>>>0);u=b;return 1}return 0}function Xg(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;a=u;u=u+16|0;e=a;if(!b){g=0;u=a;return g|0}h=b+96|0;i=b+100|0;f[e>>2]=0;f[e+4>>2]=0;f[e+8>>2]=0;b=f[i>>2]|0;j=f[h>>2]|0;k=(b-j|0)/12|0;l=j;j=b;if(k>>>0>=c>>>0){if(k>>>0>c>>>0?(b=l+(c*12|0)|0,(b|0)!=(j|0)):0)f[i>>2]=j+(~(((j+-12-b|0)>>>0)/12|0)*12|0);if(!c){g=1;u=a;return g|0}}else Tg(h,c-k|0,e);k=0;b=f[h>>2]|0;while(1){j=k*3|0;l=f[d+(j<<2)>>2]|0;m=f[d+(j+1<<2)>>2]|0;n=f[d+(j+2<<2)>>2]|0;j=((f[i>>2]|0)-b|0)/12|0;o=k;k=k+1|0;if(o>>>0>>0){p=b;q=b}else{f[e>>2]=0;f[e+4>>2]=0;f[e+8>>2]=0;Tg(h,k-j|0,e);j=f[h>>2]|0;p=j;q=j}f[p+(o*12|0)>>2]=l;f[p+(o*12|0)+4>>2]=m;f[p+(o*12|0)+8>>2]=n;if((k|0)==(c|0)){g=1;break}else b=q}u=a;return g|0}function Yg(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,g=0,h=0;e=u;u=u+80|0;g=e+36|0;h=e;ao(g,c);Ke(h,b,c);Ph(g,h);Ej(h+24|0,f[h+28>>2]|0);Oj(h+12|0,f[h+16>>2]|0);Ej(h,f[h+4>>2]|0);cj(a,g,d);Ej(g+24|0,f[g+28>>2]|0);Oj(g+12|0,f[g+16>>2]|0);Ej(g,f[g+4>>2]|0);u=e;return}function Zg(a){a=+a;var b=0,c=0,d=0,e=0.0,g=0,h=0,i=0,j=0,k=0,l=0,m=0.0,n=0.0,o=0.0,q=0.0,r=0.0,t=0.0;p[s>>3]=a;b=f[s>>2]|0;c=f[s+4>>2]|0;d=(c|0)<0;do if(d|c>>>0<1048576){if((b|0)==0&(c&2147483647|0)==0){e=-1.0/(a*a);break}if(d){e=(a-a)/0.0;break}else{p[s>>3]=a*18014398509481984.0;g=f[s+4>>2]|0;h=-1077;i=g;j=f[s>>2]|0;k=g;l=9;break}}else if(c>>>0<=2146435071)if((b|0)==0&0==0&(c|0)==1072693248)e=0.0;else{h=-1023;i=c;j=b;k=c;l=9}else e=a;while(0);if((l|0)==9){l=i+614242|0;f[s>>2]=j;f[s+4>>2]=(l&1048575)+1072079006;a=+p[s>>3]+-1.0;m=a*a*.5;n=a/(a+2.0);o=n*n;q=o*o;p[s>>3]=a-m;j=f[s+4>>2]|0;f[s>>2]=0;f[s+4>>2]=j;r=+p[s>>3];t=a-r-m+n*(m+(q*(q*(q*.15313837699209373+.22222198432149784)+.3999999999940942)+o*(q*(q*(q*.14798198605116586+.1818357216161805)+.2857142874366239)+.6666666666666735)));q=r*1.4426950407214463;o=+(h+(l>>>20)|0);m=q+o;e=m+(q+(o-m)+(t*1.4426950407214463+(t+r)*1.6751713164886512e-10))}return +e}function _g(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;d=u;u=u+16|0;e=d;g=ln(32)|0;f[e>>2]=g;f[e+8>>2]=-2147483616;f[e+4>>2]=17;h=g;i=14390;j=h+17|0;do{b[h>>0]=b[i>>0]|0;h=h+1|0;i=i+1|0}while((h|0)<(j|0));b[g+17>>0]=0;g=c+16|0;i=f[g>>2]|0;if(i){h=g;j=i;a:while(1){i=j;while(1){if((f[i+16>>2]|0)>=(a|0))break;k=f[i+4>>2]|0;if(!k){l=h;break a}else i=k}j=f[i>>2]|0;if(!j){l=i;break}else h=i}if(((l|0)!=(g|0)?(f[l+16>>2]|0)<=(a|0):0)?(a=l+20|0,(Jh(a,e)|0)!=0):0)m=a;else n=10}else n=10;if((n|0)==10)m=c;c=Hk(m,e,-1)|0;if((b[e+11>>0]|0)>=0){o=(c|0)==-1;p=c>>>0>6;q=p?-2:c;r=o?-1:q;u=d;return r|0}Oq(f[e>>2]|0);o=(c|0)==-1;p=c>>>0>6;q=p?-2:c;r=o?-1:q;u=d;return r|0}function $g(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0;d=u;u=u+16|0;e=d;g=f[c>>2]|0;f[c>>2]=0;f[e>>2]=g;Lg(a,b,e);g=f[e>>2]|0;f[e>>2]=0;if(g|0){e=g+88|0;c=f[e>>2]|0;f[e>>2]=0;if(c|0){e=f[c+8>>2]|0;if(e|0){h=c+12|0;if((f[h>>2]|0)!=(e|0))f[h>>2]=e;Oq(e)}Oq(c)}c=f[g+68>>2]|0;if(c|0){e=g+72|0;h=f[e>>2]|0;if((h|0)!=(c|0))f[e>>2]=h+(~((h+-4-c|0)>>>2)<<2);Oq(c)}c=g+64|0;h=f[c>>2]|0;f[c>>2]=0;if(h|0){c=f[h>>2]|0;if(c|0){e=h+4|0;if((f[e>>2]|0)!=(c|0))f[e>>2]=c;Oq(c)}Oq(h)}Oq(g)}g=a+84|0;h=a+88|0;a=f[h>>2]|0;c=f[g>>2]|0;e=a-c>>2;if((e|0)>(b|0)){u=d;return}i=b+1|0;b=a;if(i>>>0>e>>>0){Fh(g,i-e|0);u=d;return}if(i>>>0>=e>>>0){u=d;return}e=c+(i<<2)|0;if((e|0)==(b|0)){u=d;return}f[h>>2]=b+(~((b+-4-e|0)>>>2)<<2);u=d;return}function ah(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0;d=u;u=u+16|0;e=d;g=a+4|0;f[g>>2]=c;f[a+8>>2]=f[c+52>>2];h=f[a+184>>2]|0;i=a+188|0;j=f[i>>2]|0;if((j|0)!=(h|0))f[i>>2]=j+(~((j+-4-h|0)>>>2)<<2);h=f[c+48>>2]|0;c=ln(32)|0;f[e>>2]=c;f[e+8>>2]=-2147483616;f[e+4>>2]=19;j=c;i=15351;k=j+19|0;do{b[j>>0]=b[i>>0]|0;j=j+1|0;i=i+1|0}while((j|0)<(k|0));b[c+19>>0]=0;c=(Jh(h,e)|0)==0;if((b[e+11>>0]|0)<0)Oq(f[e>>2]|0);h=f[(f[g>>2]|0)+48>>2]|0;if(c){c=(mi(h)|0)>5&1;b[a+352>>0]=c;u=d;return 1}c=ln(32)|0;f[e>>2]=c;f[e+8>>2]=-2147483616;f[e+4>>2]=19;j=c;i=15351;k=j+19|0;do{b[j>>0]=b[i>>0]|0;j=j+1|0;i=i+1|0}while((j|0)<(k|0));b[c+19>>0]=0;c=(Yj(h,e,0)|0)&1;b[a+352>>0]=c;if((b[e+11>>0]|0)<0)Oq(f[e>>2]|0);u=d;return 1}function bh(a){a=a|0;var c=0,d=0,e=0,g=0,i=0,j=0,k=0,l=0,m=0;c=a+108|0;d=(f[a+112>>2]|0)-(f[c>>2]|0)|0;e=(d|0)/12|0;g=a+4|0;ci(e,f[(f[g>>2]|0)+44>>2]|0)|0;if(!d)return 1;d=0;a=0;while(1){i=f[c>>2]|0;j=i+(d*12|0)+4|0;ci((f[j>>2]|0)-a|0,f[(f[g>>2]|0)+44>>2]|0)|0;ci((f[j>>2]|0)-(f[i+(d*12|0)>>2]|0)|0,f[(f[g>>2]|0)+44>>2]|0)|0;d=d+1|0;if(d>>>0>=e>>>0)break;else a=f[j>>2]|0}zi(f[(f[g>>2]|0)+44>>2]|0,e,0,0)|0;a=0;do{d=f[(f[g>>2]|0)+44>>2]|0;j=d+16|0;i=f[j+4>>2]|0;if((i|0)>0|(i|0)==0&(f[j>>2]|0)>>>0>0){j=f[d+12>>2]|0;d=j+4|0;i=f[d>>2]|0;k=b[(f[c>>2]|0)+(a*12|0)+8>>0]&1;l=i>>>3;m=i&7;i=(f[j>>2]|0)+l|0;b[i>>0]=(1<>0]|0);i=(f[j>>2]|0)+l|0;b[i>>0]=k<>0]|0);f[d>>2]=(f[d>>2]|0)+1}a=a+1|0}while(a>>>0>>0);eg(f[(f[g>>2]|0)+44>>2]|0);return 1}function ch(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,g=0,h=0;e=u;u=u+80|0;g=e+36|0;h=e;io(g,c);Ke(h,b,c);Ph(g,h);Ej(h+24|0,f[h+28>>2]|0);Oj(h+12|0,f[h+16>>2]|0);Ej(h,f[h+4>>2]|0);cj(a,g,d);Ej(g+24|0,f[g+28>>2]|0);Oj(g+12|0,f[g+16>>2]|0);Ej(g,f[g+4>>2]|0);u=e;return}function dh(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0;d=u;u=u+16|0;e=d;g=a+4|0;f[g>>2]=c;f[a+8>>2]=f[c+52>>2];h=f[a+184>>2]|0;i=a+188|0;j=f[i>>2]|0;if((j|0)!=(h|0))f[i>>2]=j+(~((j+-4-h|0)>>>2)<<2);h=f[c+48>>2]|0;c=ln(32)|0;f[e>>2]=c;f[e+8>>2]=-2147483616;f[e+4>>2]=19;j=c;i=15351;k=j+19|0;do{b[j>>0]=b[i>>0]|0;j=j+1|0;i=i+1|0}while((j|0)<(k|0));b[c+19>>0]=0;c=(Jh(h,e)|0)==0;if((b[e+11>>0]|0)<0)Oq(f[e>>2]|0);h=f[(f[g>>2]|0)+48>>2]|0;if(c){c=(mi(h)|0)>5&1;b[a+288>>0]=c;u=d;return 1}c=ln(32)|0;f[e>>2]=c;f[e+8>>2]=-2147483616;f[e+4>>2]=19;j=c;i=15351;k=j+19|0;do{b[j>>0]=b[i>>0]|0;j=j+1|0;i=i+1|0}while((j|0)<(k|0));b[c+19>>0]=0;c=(Yj(h,e,0)|0)&1;b[a+288>>0]=c;if((b[e+11>>0]|0)<0)Oq(f[e>>2]|0);u=d;return 1}function eh(a,b,c,d,e,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;g=u;u=u+32|0;h=g+16|0;i=g+8|0;j=g;k=d-e|0;d=a+8|0;if((k|0)>0){a=0-e|0;l=i+4|0;m=j+4|0;n=h+4|0;o=k;do{k=b+(o<<2)|0;p=k+(a<<2)|0;q=c+(o<<2)|0;r=f[k+4>>2]|0;s=f[p>>2]|0;t=f[p+4>>2]|0;f[i>>2]=f[k>>2];f[l>>2]=r;f[j>>2]=s;f[m>>2]=t;Od(h,d,i,j);f[q>>2]=f[h>>2];f[q+4>>2]=f[n>>2];o=o-e|0}while((o|0)>0)}o=e>>>0>1073741823?-1:e<<2;e=Lq(o)|0;sj(e|0,0,o|0)|0;o=f[b+4>>2]|0;n=f[e>>2]|0;m=f[e+4>>2]|0;f[i>>2]=f[b>>2];f[i+4>>2]=o;f[j>>2]=n;f[j+4>>2]=m;Od(h,d,i,j);f[c>>2]=f[h>>2];f[c+4>>2]=f[h+4>>2];Mq(e);u=g;return 1}function fh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;c=u;u=u+32|0;d=c+12|0;e=c;g=f[b+100>>2]|0;h=f[b+96>>2]|0;b=g-h|0;i=(b|0)/12|0;f[d>>2]=0;j=d+4|0;f[j>>2]=0;f[d+8>>2]=0;k=h;do if(b)if(i>>>0>357913941)aq(d);else{l=ln(b)|0;f[d>>2]=l;f[d+8>>2]=l+(i*12|0);sj(l|0,0,b|0)|0;f[j>>2]=l+b;m=l;break}else m=0;while(0);f[e>>2]=0;f[e+4>>2]=0;f[e+8>>2]=0;if((g|0)!=(h|0)){h=e+4|0;g=e+8|0;b=0;do{l=k+(b*12|0)|0;f[e>>2]=f[l>>2];f[e+4>>2]=f[l+4>>2];f[e+8>>2]=f[l+8>>2];f[m+(b*12|0)>>2]=f[e>>2];f[m+(b*12|0)+4>>2]=f[h>>2];f[m+(b*12|0)+8>>2]=f[g>>2];b=b+1|0}while(b>>>0>>0)}Kj(a,d);a=f[d>>2]|0;if(!a){u=c;return}d=f[j>>2]|0;if((d|0)!=(a|0))f[j>>2]=d+(~(((d+-12-a|0)>>>0)/12|0)*12|0);Oq(a);u=c;return}function gh(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;if(c>>>0>4294967279)aq(a);d=a+11|0;e=b[d>>0]|0;g=e<<24>>24<0;if(g){h=f[a+4>>2]|0;i=(f[a+8>>2]&2147483647)+-1|0}else{h=e&255;i=10}j=h>>>0>c>>>0?h:c;c=j>>>0<11;k=c?10:(j+16&-16)+-1|0;do if((k|0)!=(i|0)){do if(c){j=f[a>>2]|0;if(g){l=0;m=j;n=a;o=13}else{Fo(a,j,(e&255)+1|0)|0;Oq(j);o=16}}else{j=k+1|0;p=ln(j)|0;if(g){l=1;m=f[a>>2]|0;n=p;o=13;break}else{Fo(p,a,(e&255)+1|0)|0;q=p;r=j;s=a+4|0;o=15;break}}while(0);if((o|0)==13){j=a+4|0;Fo(n,m,(f[j>>2]|0)+1|0)|0;Oq(m);if(l){q=n;r=k+1|0;s=j;o=15}else o=16}if((o|0)==15){f[a+8>>2]=r|-2147483648;f[s>>2]=h;f[a>>2]=q;break}else if((o|0)==16){b[d>>0]=h;break}}while(0);return}function hh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;c=f[b>>2]|0;if((c|0)==-1){d=-1;return d|0}b=f[(f[a+24>>2]|0)+(c<<2)>>2]|0;if((b|0)==-1){d=0;return d|0}c=a+12|0;a=0;e=0;g=b;a:while(1){b:do if(e){h=a+1|0;i=(((g>>>0)%3|0|0)==0?2:-1)+g|0;if((i|0)==-1){d=h;j=15;break a}k=f[(f[c>>2]|0)+(i<<2)>>2]|0;if((k|0)==-1){d=h;j=15;break a}if(!((k>>>0)%3|0)){l=k+2|0;m=h;break}else{l=k+-1|0;m=h;break}}else{h=a;k=g;while(1){i=h+1|0;n=k+1|0;o=((n>>>0)%3|0|0)==0?k+-2|0:n;if((o|0)==-1){l=b;m=i;break b}n=f[(f[c>>2]|0)+(o<<2)>>2]|0;o=n+1|0;if((n|0)==-1){l=b;m=i;break b}k=((o>>>0)%3|0|0)==0?n+-2|0:o;if((k|0)==-1){l=b;m=i;break b}if((k|0)==(b|0)){d=i;j=15;break a}else h=i}}while(0);if((l|0)==-1){d=m;j=15;break}else{a=m;e=1;g=l}}if((j|0)==15)return d|0;return 0}function ih(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;d=a+8|0;Vg(a,a+4|0,d,c)|0;e=a+12|0;if((e|0)==(b|0))return;g=f[c>>2]|0;c=f[g>>2]|0;h=(f[g+4>>2]|0)-c>>3;i=c;c=e;e=d;a:while(1){d=f[c>>2]|0;j=f[e>>2]|0;if(h>>>0<=d>>>0){k=5;break}if(h>>>0<=j>>>0){k=7;break}l=i+(d<<3)|0;if((f[l>>2]|0)>>>0<(f[i+(j<<3)>>2]|0)>>>0){m=e;n=c;o=j;while(1){f[n>>2]=o;if((m|0)==(a|0)){p=a;break}j=m+-4|0;o=f[j>>2]|0;if(h>>>0<=o>>>0){k=11;break a}if((f[l>>2]|0)>>>0>=(f[i+(o<<3)>>2]|0)>>>0){p=m;break}else{q=m;m=j;n=q}}f[p>>2]=d}n=c+4|0;if((n|0)==(b|0)){k=3;break}else{m=c;c=n;e=m}}if((k|0)==3)return;else if((k|0)==5)aq(g);else if((k|0)==7)aq(g);else if((k|0)==11)aq(g)}function jh(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0;g=Vg(a,b,c,e)|0;h=f[d>>2]|0;i=f[c>>2]|0;j=f[e>>2]|0;e=f[j>>2]|0;k=(f[j+4>>2]|0)-e>>3;if(k>>>0<=h>>>0)aq(j);l=e;if(k>>>0<=i>>>0)aq(j);if((f[l+(h<<3)>>2]|0)>>>0>=(f[l+(i<<3)>>2]|0)>>>0){m=g;return m|0}f[c>>2]=h;f[d>>2]=i;i=f[c>>2]|0;d=f[b>>2]|0;if(k>>>0<=i>>>0)aq(j);if(k>>>0<=d>>>0)aq(j);if((f[l+(i<<3)>>2]|0)>>>0>=(f[l+(d<<3)>>2]|0)>>>0){m=g+1|0;return m|0}f[b>>2]=i;f[c>>2]=d;d=f[b>>2]|0;c=f[a>>2]|0;if(k>>>0<=d>>>0)aq(j);if(k>>>0<=c>>>0)aq(j);if((f[l+(d<<3)>>2]|0)>>>0>=(f[l+(c<<3)>>2]|0)>>>0){m=g+2|0;return m|0}f[a>>2]=d;f[b>>2]=c;m=g+3|0;return m|0}function kh(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0;if((d|0)>=8192)return Da(a|0,c|0,d|0)|0;e=a|0;g=a+d|0;if((a&3)==(c&3)){while(a&3){if(!d)return e|0;b[a>>0]=b[c>>0]|0;a=a+1|0;c=c+1|0;d=d-1|0}h=g&-4|0;d=h-64|0;while((a|0)<=(d|0)){f[a>>2]=f[c>>2];f[a+4>>2]=f[c+4>>2];f[a+8>>2]=f[c+8>>2];f[a+12>>2]=f[c+12>>2];f[a+16>>2]=f[c+16>>2];f[a+20>>2]=f[c+20>>2];f[a+24>>2]=f[c+24>>2];f[a+28>>2]=f[c+28>>2];f[a+32>>2]=f[c+32>>2];f[a+36>>2]=f[c+36>>2];f[a+40>>2]=f[c+40>>2];f[a+44>>2]=f[c+44>>2];f[a+48>>2]=f[c+48>>2];f[a+52>>2]=f[c+52>>2];f[a+56>>2]=f[c+56>>2];f[a+60>>2]=f[c+60>>2];a=a+64|0;c=c+64|0}while((a|0)<(h|0)){f[a>>2]=f[c>>2];a=a+4|0;c=c+4|0}}else{h=g-4|0;while((a|0)<(h|0)){b[a>>0]=b[c>>0]|0;b[a+1>>0]=b[c+1>>0]|0;b[a+2>>0]=b[c+2>>0]|0;b[a+3>>0]=b[c+3>>0]|0;a=a+4|0;c=c+4|0}}while((a|0)<(g|0)){b[a>>0]=b[c>>0]|0;a=a+1|0;c=c+1|0}return e|0}function lh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0;c=u;u=u+16|0;d=c+4|0;e=c;f[a>>2]=1232;g=a+4|0;f[g>>2]=0;f[g+4>>2]=0;f[g+8>>2]=0;f[g+12>>2]=0;f[g+16>>2]=0;f[g+20>>2]=0;f[g+24>>2]=0;f[g+28>>2]=0;f[d>>2]=b;b=a+4|0;g=a+8|0;Ri(b,d);h=f[d>>2]|0;i=a+20|0;j=f[i>>2]|0;k=a+16|0;a=f[k>>2]|0;l=j-a>>2;m=a;if((h|0)<(l|0)){n=m;o=h;p=f[g>>2]|0;q=f[b>>2]|0;r=p-q|0;s=r>>2;t=s+-1|0;v=n+(o<<2)|0;f[v>>2]=t;u=c;return}a=h+1|0;f[e>>2]=-1;w=j;if(a>>>0<=l>>>0)if(a>>>0>>0?(j=m+(a<<2)|0,(j|0)!=(w|0)):0){f[i>>2]=w+(~((w+-4-j|0)>>>2)<<2);x=h;y=m}else{x=h;y=m}else{Ch(k,a-l|0,e);x=f[d>>2]|0;y=f[k>>2]|0}n=y;o=x;p=f[g>>2]|0;q=f[b>>2]|0;r=p-q|0;s=r>>2;t=s+-1|0;v=n+(o<<2)|0;f[v>>2]=t;u=c;return}function mh(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0;b=a+4|0;c=f[b>>2]|0;d=(f[c+12>>2]|0)-(f[c+8>>2]|0)|0;c=d>>2;a:do if((d|0)>0){e=0;while(1){if(!(Ra[f[(f[a>>2]|0)+36>>2]&127](a,e)|0)){g=0;break}e=e+1|0;h=f[b>>2]|0;i=(f[h+12>>2]|0)-(f[h+8>>2]|0)>>2;if((e|0)>=(i|0)){j=i;break a}}return g|0}else j=c;while(0);c=a+20|0;b=a+24|0;d=f[b>>2]|0;e=f[c>>2]|0;i=d-e>>2;h=e;e=d;if(j>>>0<=i>>>0){if(j>>>0>>0?(d=h+(j<<2)|0,(d|0)!=(e|0)):0)f[b>>2]=e+(~((e+-4-d|0)>>>2)<<2)}else Ci(c,j-i|0);i=f[a+12>>2]|0;j=f[a+8>>2]|0;a=j;if((i|0)==(j|0)){g=1;return g|0}d=i-j>>2;j=0;do{i=f[a+(j<<2)>>2]|0;e=f[i+8>>2]|0;b=f[i+4>>2]|0;i=b;if((e|0)!=(b|0)?(h=f[c>>2]|0,k=e-b>>2,f[h+(f[i>>2]<<2)>>2]=j,k>>>0>1):0){b=1;do{f[h+(f[i+(b<<2)>>2]<<2)>>2]=j;b=b+1|0}while(b>>>0>>0)}j=j+1|0}while(j>>>0>>0);g=1;return g|0}function nh(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;d=f[c+88>>2]|0;if(!d){e=0;return e|0}if((f[d>>2]|0)!=1){e=0;return e|0}g=d+8|0;d=f[g>>2]|0;f[a+4>>2]=h[d>>0]|h[d+1>>0]<<8|h[d+2>>0]<<16|h[d+3>>0]<<24;i=a+8|0;j=c+24|0;c=b[j>>0]|0;k=c<<24>>24;l=a+12|0;m=f[l>>2]|0;n=f[i>>2]|0;o=m-n>>2;p=n;n=m;if(o>>>0>=k>>>0)if(o>>>0>k>>>0?(m=p+(k<<2)|0,(m|0)!=(n|0)):0){f[l>>2]=n+(~((n+-4-m|0)>>>2)<<2);q=c;r=d}else{q=c;r=d}else{Ci(i,k-o|0);q=b[j>>0]|0;r=f[g>>2]|0}g=r+4|0;j=h[g>>0]|h[g+1>>0]<<8|h[g+2>>0]<<16|h[g+3>>0]<<24;if(q<<24>>24>0){g=f[i>>2]|0;i=q<<24>>24;q=j;o=4;k=0;while(1){f[g+(k<<2)>>2]=q;o=o+4|0;k=k+1|0;d=r+o|0;c=h[d>>0]|h[d+1>>0]<<8|h[d+2>>0]<<16|h[d+3>>0]<<24;if((k|0)>=(i|0)){s=c;break}else q=c}}else s=j;f[a+20>>2]=s;e=1;return e|0}function oh(a,c,d,e,g){a=a|0;c=c|0;d=d|0;e=e|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;do if(!(fp(a,f[c+8>>2]|0,g)|0)){if(!(fp(a,f[c>>2]|0,g)|0)){h=f[a+8>>2]|0;Za[f[(f[h>>2]|0)+24>>2]&3](h,c,d,e,g);break}if((f[c+16>>2]|0)!=(d|0)?(h=c+20|0,(f[h>>2]|0)!=(d|0)):0){f[c+32>>2]=e;i=c+44|0;if((f[i>>2]|0)==4)break;j=c+52|0;b[j>>0]=0;k=c+53|0;b[k>>0]=0;l=f[a+8>>2]|0;_a[f[(f[l>>2]|0)+20>>2]&3](l,c,d,d,1,g);if(b[k>>0]|0)if(!(b[j>>0]|0)){m=3;n=11}else o=3;else{m=4;n=11}if((n|0)==11){f[h>>2]=d;h=c+40|0;f[h>>2]=(f[h>>2]|0)+1;if((f[c+36>>2]|0)==1?(f[c+24>>2]|0)==2:0){b[c+54>>0]=1;o=m}else o=m}f[i>>2]=o;break}if((e|0)==1)f[c+32>>2]=1}else Vm(0,c,d,e);while(0);return}function ph(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0;e=u;u=u+16|0;g=e+12|0;h=e+8|0;i=e;f[i>>2]=f[b>>2];f[g>>2]=f[i>>2];i=Kd(a,g,h,e+4|0,c)|0;c=f[i>>2]|0;if(c|0){j=c;u=e;return j|0}c=ln(40)|0;pj(c+16|0,d);pj(c+28|0,d+12|0);d=f[h>>2]|0;f[c>>2]=0;f[c+4>>2]=0;f[c+8>>2]=d;f[i>>2]=c;d=f[f[a>>2]>>2]|0;if(!d)k=c;else{f[a>>2]=d;k=f[i>>2]|0}Oe(f[a+4>>2]|0,k);k=a+8|0;f[k>>2]=(f[k>>2]|0)+1;j=c;u=e;return j|0}function qh(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;e=u;u=u+16|0;g=e;h=a+4|0;f[h>>2]=0;if(!c){u=e;return}i=a+8|0;j=f[i>>2]|0;k=j<<5;if(k>>>0>>0){f[g>>2]=0;l=g+4|0;f[l>>2]=0;m=g+8|0;f[m>>2]=0;if((c|0)<0)aq(a);n=j<<6;j=c+31&-32;vi(g,k>>>0<1073741823?(n>>>0>>0?j:n):2147483647);n=f[a>>2]|0;f[a>>2]=f[g>>2];f[g>>2]=n;g=f[h>>2]|0;f[h>>2]=c;f[l>>2]=g;g=f[i>>2]|0;f[i>>2]=f[m>>2];f[m>>2]=g;if(n|0)Oq(n);o=a}else{f[h>>2]=c;o=a}a=f[o>>2]|0;o=a;h=a;a=c>>>5;n=a<<2;if(!(b[d>>0]|0)){sj(h|0,0,n|0)|0;d=c&31;g=o+(a<<2)|0;if(!d){u=e;return}f[g>>2]=f[g>>2]&~(-1>>>(32-d|0));u=e;return}else{sj(h|0,-1,n|0)|0;n=c&31;c=o+(a<<2)|0;if(!n){u=e;return}f[c>>2]=f[c>>2]|-1>>>(32-n|0);u=e;return}}function rh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;c=u;u=u+16|0;d=c+8|0;e=c+4|0;g=c;f[g>>2]=f[a+12>>2];h=b+16|0;i=h;j=f[i>>2]|0;k=f[i+4>>2]|0;if((k|0)>0|(k|0)==0&j>>>0>0){l=k;m=j}else{f[e>>2]=f[b+4>>2];f[d>>2]=f[e>>2];Me(b,d,g,g+4|0)|0;j=h;l=f[j+4>>2]|0;m=f[j>>2]|0}f[g>>2]=f[a+20>>2];if((l|0)>0|(l|0)==0&m>>>0>0){n=a+88|0;ld(n,b);u=c;return 1}f[e>>2]=f[b+4>>2];f[d>>2]=f[e>>2];Me(b,d,g,g+4|0)|0;n=a+88|0;ld(n,b);u=c;return 1}function sh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;c=u;u=u+16|0;d=c+8|0;e=c+4|0;g=c;f[g>>2]=f[a+12>>2];h=b+16|0;i=h;j=f[i>>2]|0;k=f[i+4>>2]|0;if((k|0)>0|(k|0)==0&j>>>0>0){l=k;m=j}else{f[e>>2]=f[b+4>>2];f[d>>2]=f[e>>2];Me(b,d,g,g+4|0)|0;j=h;l=f[j+4>>2]|0;m=f[j>>2]|0}f[g>>2]=f[a+16>>2];if((l|0)>0|(l|0)==0&m>>>0>0){n=a+108|0;ld(n,b);u=c;return 1}f[e>>2]=f[b+4>>2];f[d>>2]=f[e>>2];Me(b,d,g,g+4|0)|0;n=a+108|0;ld(n,b);u=c;return 1}function th(a){a=a|0;var c=0,d=0,e=0,g=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;c=a+32|0;d=f[a+64>>2]|0;e=(Qa[f[(f[d>>2]|0)+40>>2]&127](d)|0)+52|0;d=f[e>>2]|0;zi(c,(((f[d+100>>2]|0)-(f[d+96>>2]|0)|0)/12|0)*3|0,0,1)|0;d=a+68|0;e=f[d>>2]|0;g=(f[a+72>>2]|0)-e|0;if((g|0)<=0){eg(c);return}i=a+48|0;j=a+44|0;a=(g>>>2)+-1|0;g=e;while(1){e=f[g+(a<<2)>>2]|0;k=f[3524+(e<<2)>>2]|0;l=i;m=f[l+4>>2]|0;if((m|0)>0|(m|0)==0&(f[l>>2]|0)>>>0>0?(l=f[j>>2]|0,171>>>e&1|0):0){m=l+4|0;n=0;o=f[m>>2]|0;do{p=o>>>3;q=o&7;r=(f[l>>2]|0)+p|0;b[r>>0]=(1<>0]|0);r=(f[l>>2]|0)+p|0;b[r>>0]=(e>>>n&1)<>0]|0);o=(f[m>>2]|0)+1|0;f[m>>2]=o;n=n+1|0}while((n|0)!=(k|0))}k=a+-1|0;if((k|0)<=-1)break;a=k;g=f[d>>2]|0}eg(c);return}function uh(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0;g=u;u=u+48|0;h=g;i=g+32|0;if(!c){j=0;u=g;return j|0}Gn(h);do if((dm(c,0)|0)!=-1){if(d){if(!(Qa[f[(f[c>>2]|0)+16>>2]&127](c)|0)){k=0;break}Va[f[(f[c>>2]|0)+20>>2]&127](c)}Yg(i,a,c,h);l=(f[i>>2]|0)==0;m=i+4|0;if((b[m+11>>0]|0)<0)Oq(f[m>>2]|0);if(l){l=f[h>>2]|0;m=h+4|0;rg(e,l,l+((f[m>>2]|0)-l)|0);k=(f[m>>2]|0)-(f[h>>2]|0)|0}else k=0}else k=0;while(0);e=h+12|0;i=f[e>>2]|0;f[e>>2]=0;if(i|0)Oq(i);i=f[h>>2]|0;if(i|0){e=h+4|0;if((f[e>>2]|0)!=(i|0))f[e>>2]=i;Oq(i)}j=k;u=g;return j|0}function vh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;c=u;u=u+16|0;d=c;e=f[(f[a>>2]|0)+8>>2]|0;g=a+8|0;h=a+12|0;i=(f[h>>2]|0)-(f[g>>2]|0)>>2;j=f[b>>2]|0;f[b>>2]=0;f[d>>2]=j;Xa[e&15](a,i,d);i=f[d>>2]|0;f[d>>2]=0;if(!i){k=f[h>>2]|0;l=f[g>>2]|0;m=k-l|0;n=m>>2;o=n+-1|0;u=c;return o|0}d=i+88|0;a=f[d>>2]|0;f[d>>2]=0;if(a|0){d=f[a+8>>2]|0;if(d|0){e=a+12|0;if((f[e>>2]|0)!=(d|0))f[e>>2]=d;Oq(d)}Oq(a)}a=f[i+68>>2]|0;if(a|0){d=i+72|0;e=f[d>>2]|0;if((e|0)!=(a|0))f[d>>2]=e+(~((e+-4-a|0)>>>2)<<2);Oq(a)}a=i+64|0;e=f[a>>2]|0;f[a>>2]=0;if(e|0){a=f[e>>2]|0;if(a|0){d=e+4|0;if((f[d>>2]|0)!=(a|0))f[d>>2]=a;Oq(a)}Oq(e)}Oq(i);k=f[h>>2]|0;l=f[g>>2]|0;m=k-l|0;n=m>>2;o=n+-1|0;u=c;return o|0}function wh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0;c=a+8|0;d=f[c>>2]|0;e=a+4|0;g=f[e>>2]|0;if(d-g>>3>>>0>=b>>>0){h=b;i=g;do{j=i;f[j>>2]=0;f[j+4>>2]=0;i=(f[e>>2]|0)+8|0;f[e>>2]=i;h=h+-1|0}while((h|0)!=0);return}h=f[a>>2]|0;i=g-h>>3;g=i+b|0;if(g>>>0>536870911)aq(a);j=d-h|0;h=j>>2;d=j>>3>>>0<268435455?(h>>>0>>0?g:h):536870911;do if(d)if(d>>>0>536870911){h=ra(8)|0;Oo(h,16035);f[h>>2]=7256;va(h|0,1112,110)}else{k=ln(d<<3)|0;break}else k=0;while(0);h=k+(i<<3)|0;i=k+(d<<3)|0;d=b;b=h;k=h;do{g=b;f[g>>2]=0;f[g+4>>2]=0;b=k+8|0;k=b;d=d+-1|0}while((d|0)!=0);d=f[a>>2]|0;b=(f[e>>2]|0)-d|0;g=h+(0-(b>>3)<<3)|0;if((b|0)>0)kh(g|0,d|0,b|0)|0;f[a>>2]=g;f[e>>2]=k;f[c>>2]=i;if(!d)return;Oq(d);return}function xh(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0;d=u;u=u+16|0;e=d;if(!(bn(a,b,c)|0)){g=0;u=d;return g|0}if((Qa[f[(f[a>>2]|0)+32>>2]&127](a)|0)<<24>>24==1?((f[(f[a+8>>2]|0)+28>>2]|0)+-1|0)>>>0>=6:0){g=0;u=d;return g|0}h=_g(c,f[b+48>>2]|0)|0;Xa[f[(f[a>>2]|0)+48>>2]&15](e,a,h);h=a+36|0;b=f[e>>2]|0;f[e>>2]=0;c=f[h>>2]|0;f[h>>2]=b;if(!c){f[e>>2]=0;i=b}else{Va[f[(f[c>>2]|0)+4>>2]&127](c);c=f[e>>2]|0;f[e>>2]=0;if(c|0)Va[f[(f[c>>2]|0)+4>>2]&127](c);i=f[h>>2]|0}if(!i){g=1;u=d;return g|0}if(Ra[f[(f[a>>2]|0)+36>>2]&127](a,i)|0){g=1;u=d;return g|0}i=f[h>>2]|0;f[h>>2]=0;if(!i){g=1;u=d;return g|0}Va[f[(f[i>>2]|0)+4>>2]&127](i);g=1;u=d;return g|0}function yh(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;e=u;u=u+16|0;g=e+4|0;h=e;i=e+8|0;j=a&255;b[i>>0]=j&127;do if(c>>>0>0|(c|0)==0&a>>>0>127){b[i>>0]=j|-128;k=d+16|0;l=f[k+4>>2]|0;if((l|0)>0|(l|0)==0&(f[k>>2]|0)>>>0>0){m=0;break}else{f[h>>2]=f[d+4>>2];f[g>>2]=f[h>>2];Me(d,g,i,i+1|0)|0;k=Yn(a|0,c|0,7)|0;m=yh(k,I,d)|0;break}}else{k=d+16|0;l=f[k+4>>2]|0;if((l|0)>0|(l|0)==0&(f[k>>2]|0)>>>0>0){m=0;break}f[h>>2]=f[d+4>>2];f[g>>2]=f[h>>2];Me(d,g,i,i+1|0)|0;n=1;u=e;return n|0}while(0);n=m;u=e;return n|0}function zh(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0;g=f[(f[(f[d+4>>2]|0)+8>>2]|0)+(c<<2)>>2]|0;if((b|0)==-1)h=Xi(c,d)|0;else h=b;if((h|0)==-2)i=0;else{do if((Qa[f[(f[d>>2]|0)+8>>2]&127](d)|0)==1){Xf(a,d,h,c,e,514);if(!(f[a>>2]|0)){f[a>>2]=0;break}else return}while(0);c=ln(44)|0;f[c>>2]=1544;f[c+4>>2]=g;g=c+8|0;f[g>>2]=f[e>>2];f[g+4>>2]=f[e+4>>2];f[g+8>>2]=f[e+8>>2];f[g+12>>2]=f[e+12>>2];f[g+16>>2]=f[e+16>>2];f[g+20>>2]=f[e+20>>2];fk(c+32|0,e+24|0);f[c>>2]=1600;i=c}f[a>>2]=i;return}function Ah(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;e=u;u=u+224|0;g=e+120|0;h=e+80|0;i=e;j=e+136|0;k=h;l=k+40|0;do{f[k>>2]=0;k=k+4|0}while((k|0)<(l|0));f[g>>2]=f[d>>2];if((qb(0,c,g,i,h)|0)<0)m=-1;else{if((f[a+76>>2]|0)>-1)n=Tq(a)|0;else n=0;d=f[a>>2]|0;k=d&32;if((b[a+74>>0]|0)<1)f[a>>2]=d&-33;d=a+48|0;if(!(f[d>>2]|0)){l=a+44|0;o=f[l>>2]|0;f[l>>2]=j;p=a+28|0;f[p>>2]=j;q=a+20|0;f[q>>2]=j;f[d>>2]=80;r=a+16|0;f[r>>2]=j+80;j=qb(a,c,g,i,h)|0;if(!o)s=j;else{Sa[f[a+36>>2]&31](a,0,0)|0;t=(f[q>>2]|0)==0?-1:j;f[l>>2]=o;f[d>>2]=0;f[r>>2]=0;f[p>>2]=0;f[q>>2]=0;s=t}}else s=qb(a,c,g,i,h)|0;h=f[a>>2]|0;f[a>>2]=h|k;if(n|0)Sq(a);m=(h&32|0)==0?s:-1}u=e;return m|0}function Bh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0;c=a+4|0;d=f[c>>2]|0;e=f[a>>2]|0;g=d-e>>2;h=d;if(g>>>0>>0){uf(a,b-g|0);return}if(g>>>0<=b>>>0)return;g=e+(b<<2)|0;if((g|0)==(h|0))return;else i=h;do{h=i+-4|0;f[c>>2]=h;b=f[h>>2]|0;f[h>>2]=0;if(b|0){h=b+88|0;e=f[h>>2]|0;f[h>>2]=0;if(e|0){h=f[e+8>>2]|0;if(h|0){a=e+12|0;if((f[a>>2]|0)!=(h|0))f[a>>2]=h;Oq(h)}Oq(e)}e=f[b+68>>2]|0;if(e|0){h=b+72|0;a=f[h>>2]|0;if((a|0)!=(e|0))f[h>>2]=a+(~((a+-4-e|0)>>>2)<<2);Oq(e)}e=b+64|0;a=f[e>>2]|0;f[e>>2]=0;if(a|0){e=f[a>>2]|0;if(e|0){h=a+4|0;if((f[h>>2]|0)!=(e|0))f[h>>2]=e;Oq(e)}Oq(a)}Oq(b)}i=f[c>>2]|0}while((i|0)!=(g|0));return}function Ch(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;d=a+8|0;e=f[d>>2]|0;g=a+4|0;h=f[g>>2]|0;i=h;if(e-h>>2>>>0>=b>>>0){j=b;k=i;while(1){f[k>>2]=f[c>>2];j=j+-1|0;if(!j)break;else k=k+4|0}f[g>>2]=i+(b<<2);return}i=f[a>>2]|0;k=h-i|0;h=k>>2;j=h+b|0;if(j>>>0>1073741823)aq(a);l=e-i|0;e=l>>1;m=l>>2>>>0<536870911?(e>>>0>>0?j:e):1073741823;do if(m)if(m>>>0>1073741823){e=ra(8)|0;Oo(e,16035);f[e>>2]=7256;va(e|0,1112,110)}else{e=ln(m<<2)|0;n=e;o=e;break}else{n=0;o=0}while(0);e=n+(h<<2)|0;h=n+(m<<2)|0;m=b;j=e;while(1){f[j>>2]=f[c>>2];m=m+-1|0;if(!m)break;else j=j+4|0}if((k|0)>0)kh(o|0,i|0,k|0)|0;f[a>>2]=n;f[g>>2]=e+(b<<2);f[d>>2]=h;if(!i)return;Oq(i);return}function Dh(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;e=(f[a>>2]|0)+1794895138|0;g=gp(f[a+8>>2]|0,e)|0;h=gp(f[a+12>>2]|0,e)|0;i=gp(f[a+16>>2]|0,e)|0;a:do if((g>>>0>>2>>>0?(j=c-(g<<2)|0,h>>>0>>0&i>>>0>>0):0)?((i|h)&3|0)==0:0){j=h>>>2;k=i>>>2;l=0;m=g;while(1){n=m>>>1;o=l+n|0;p=o<<1;q=p+j|0;r=gp(f[a+(q<<2)>>2]|0,e)|0;s=gp(f[a+(q+1<<2)>>2]|0,e)|0;if(!(s>>>0>>0&r>>>0<(c-s|0)>>>0)){t=0;break a}if(b[a+(s+r)>>0]|0){t=0;break a}r=hl(d,a+s|0)|0;if(!r)break;s=(r|0)<0;if((m|0)==1){t=0;break a}else{l=s?l:o;m=s?n:m-n|0}}m=p+k|0;l=gp(f[a+(m<<2)>>2]|0,e)|0;j=gp(f[a+(m+1<<2)>>2]|0,e)|0;if(j>>>0>>0&l>>>0<(c-j|0)>>>0)t=(b[a+(j+l)>>0]|0)==0?a+j|0:0;else t=0}else t=0;while(0);return t|0}function Eh(a,c,e,g){a=a|0;c=c|0;e=e|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;h=u;u=u+64|0;i=h;j=f[a>>2]|0;k=a+(f[j+-8>>2]|0)|0;l=f[j+-4>>2]|0;f[i>>2]=e;f[i+4>>2]=a;f[i+8>>2]=c;f[i+12>>2]=g;g=i+16|0;c=i+20|0;a=i+24|0;j=i+28|0;m=i+32|0;n=i+40|0;o=g;p=o+36|0;do{f[o>>2]=0;o=o+4|0}while((o|0)<(p|0));d[g+36>>1]=0;b[g+38>>0]=0;a:do if(fp(l,e,0)|0){f[i+48>>2]=1;_a[f[(f[l>>2]|0)+20>>2]&3](l,i,k,k,1,0);q=(f[a>>2]|0)==1?k:0}else{Za[f[(f[l>>2]|0)+24>>2]&3](l,i,k,1,0);switch(f[i+36>>2]|0){case 0:{q=(f[n>>2]|0)==1&(f[j>>2]|0)==1&(f[m>>2]|0)==1?f[c>>2]|0:0;break a;break}case 1:break;default:{q=0;break a}}if((f[a>>2]|0)!=1?!((f[n>>2]|0)==0&(f[j>>2]|0)==1&(f[m>>2]|0)==1):0){q=0;break}q=f[g>>2]|0}while(0);u=h;return q|0}function Fh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;c=a+8|0;d=f[c>>2]|0;e=a+4|0;g=f[e>>2]|0;h=g;if(d-g>>2>>>0>=b>>>0){i=b;j=h;while(1){f[j>>2]=1;i=i+-1|0;if(!i)break;else j=j+4|0}f[e>>2]=h+(b<<2);return}h=f[a>>2]|0;j=g-h|0;g=j>>2;i=g+b|0;if(i>>>0>1073741823)aq(a);k=d-h|0;d=k>>1;l=k>>2>>>0<536870911?(d>>>0>>0?i:d):1073741823;do if(l)if(l>>>0>1073741823){d=ra(8)|0;Oo(d,16035);f[d>>2]=7256;va(d|0,1112,110)}else{d=ln(l<<2)|0;m=d;n=d;break}else{m=0;n=0}while(0);d=m+(g<<2)|0;g=m+(l<<2)|0;l=b;i=d;while(1){f[i>>2]=1;l=l+-1|0;if(!l)break;else i=i+4|0}if((j|0)>0)kh(n|0,h|0,j|0)|0;f[a>>2]=m;f[e>>2]=d+(b<<2);f[c>>2]=g;if(!h)return;Oq(h);return}function Gh(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0;d=u;u=u+16|0;e=d;if(!c){g=0;u=d;return g|0}h=a+84|0;i=f[h>>2]|0;j=a+88|0;k=f[j>>2]|0;if((k|0)!=(i|0))f[j>>2]=k+(~((k+-4-i|0)>>>2)<<2);f[h>>2]=0;f[j>>2]=0;f[a+92>>2]=0;if(i|0)Oq(i);i=a+72|0;j=f[i>>2]|0;h=a+76|0;if((f[h>>2]|0)!=(j|0))f[h>>2]=j;f[i>>2]=0;f[h>>2]=0;f[a+80>>2]=0;if(j|0)Oq(j);j=c+4|0;h=(f[j>>2]|0)-(f[c>>2]|0)>>2;b[e>>0]=0;qh(a,h,e);h=c+24|0;i=c+28|0;k=(f[i>>2]|0)-(f[h>>2]|0)>>2;b[e>>0]=0;qh(a+12|0,k,e);hg(a+28|0,(f[j>>2]|0)-(f[c>>2]|0)>>2,6180);gk(a+52|0,(f[i>>2]|0)-(f[h>>2]|0)>>2);gk(a+40|0,(f[i>>2]|0)-(f[h>>2]|0)>>2);f[a+64>>2]=c;b[a+24>>0]=1;g=1;u=d;return g|0}function Hh(a){a=a|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0;c=a+12|0;d=f[a>>2]|0;e=a+8|0;g=f[e>>2]|0;h=(g|0)==-1;if(!(b[c>>0]|0)){do if((!h?(i=(((g>>>0)%3|0|0)==0?2:-1)+g|0,(i|0)!=-1):0)?(j=f[(f[d+12>>2]|0)+(i<<2)>>2]|0,(j|0)!=-1):0)if(!((j>>>0)%3|0)){k=j+2|0;break}else{k=j+-1|0;break}else k=-1;while(0);f[e>>2]=k;return}k=g+1|0;if((!h?(h=((k>>>0)%3|0|0)==0?g+-2|0:k,(h|0)!=-1):0)?(k=f[(f[d+12>>2]|0)+(h<<2)>>2]|0,h=k+1|0,(k|0)!=-1):0){g=((h>>>0)%3|0|0)==0?k+-2|0:h;f[e>>2]=g;if((g|0)!=-1){if((g|0)!=(f[a+4>>2]|0))return;f[e>>2]=-1;return}}else f[e>>2]=-1;g=f[a+4>>2]|0;do if(((g|0)!=-1?(a=(((g>>>0)%3|0|0)==0?2:-1)+g|0,(a|0)!=-1):0)?(h=f[(f[d+12>>2]|0)+(a<<2)>>2]|0,(h|0)!=-1):0)if(!((h>>>0)%3|0)){l=h+2|0;break}else{l=h+-1|0;break}else l=-1;while(0);f[e>>2]=l;b[c>>0]=0;return}function Ih(a,b){a=a|0;b=b|0;var c=0,d=Oa,e=0,g=0;if((b|0)!=1)if(!(b+-1&b))c=b;else c=cb(b)|0;else c=2;b=f[a+4>>2]|0;if(c>>>0>b>>>0){Td(a,c);return}if(c>>>0>=b>>>0)return;d=$((f[a+12>>2]|0)>>>0);e=~~$(W($(d/$(n[a+20>>2]))))>>>0;if(b>>>0>2&(b+-1&b|0)==0)g=1<<32-(_(e+-1|0)|0);else g=cb(e)|0;e=c>>>0>>0?g:c;if(e>>>0>=b>>>0)return;Td(a,e);return}function Jh(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;d=f[a+4>>2]|0;if(!d){e=0;return e|0}a=b[c+11>>0]|0;g=a<<24>>24<0;h=g?f[c+4>>2]|0:a&255;a=g?f[c>>2]|0:c;c=d;while(1){d=c+16|0;g=b[d+11>>0]|0;i=g<<24>>24<0;j=i?f[c+20>>2]|0:g&255;g=j>>>0>>0;k=g?j:h;if((k|0)!=0?(l=Vk(a,i?f[d>>2]|0:d,k)|0,(l|0)!=0):0)if((l|0)<0)m=7;else m=8;else if(h>>>0>>0)m=7;else m=8;if((m|0)==7){m=0;n=c}else if((m|0)==8){m=0;l=h>>>0>>0?h:j;if((l|0)!=0?(j=Vk(i?f[d>>2]|0:d,a,l)|0,(j|0)!=0):0){if((j|0)>=0){e=1;m=14;break}}else m=10;if((m|0)==10?(m=0,!g):0){e=1;m=14;break}n=c+4|0}c=f[n>>2]|0;if(!c){e=0;m=14;break}}if((m|0)==14)return e|0;return 0}function Kh(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;e=u;u=u+16|0;g=e+4|0;h=e;i=f[a+8>>2]|0;j=i+24|0;k=b[j>>0]|0;l=c+4|0;ag(a,(f[l>>2]|0)-(f[c>>2]|0)>>2,k,d);d=f[a+32>>2]|0;a=(f[f[d>>2]>>2]|0)+(f[d+48>>2]|0)|0;d=f[c>>2]|0;c=f[l>>2]|0;if((d|0)==(c|0)){m=1;u=e;return m|0}l=i+84|0;n=i+68|0;o=0;p=d;while(1){d=f[p>>2]|0;if(!(b[l>>0]|0))q=f[(f[n>>2]|0)+(d<<2)>>2]|0;else q=d;f[h>>2]=q;d=b[j>>0]|0;f[g>>2]=f[h>>2];if(!(Qb(i,g,d,a+(o<<2)|0)|0)){m=0;r=7;break}p=p+4|0;if((p|0)==(c|0)){m=1;r=7;break}else o=o+k|0}if((r|0)==7){u=e;return m|0}return 0}function Lh(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0,i=0;f[a>>2]=1408;b=a+72|0;c=f[b>>2]|0;f[b>>2]=0;if(c|0)Va[f[(f[c>>2]|0)+4>>2]&127](c);c=f[a+60>>2]|0;if(c|0){b=a+64|0;d=f[b>>2]|0;if((d|0)!=(c|0))f[b>>2]=d+(~((d+-4-c|0)>>>2)<<2);Oq(c)}c=f[a+48>>2]|0;if(c|0)Oq(c);c=a+36|0;d=f[c>>2]|0;if(d|0){b=a+40|0;e=f[b>>2]|0;if((e|0)==(d|0))g=d;else{h=e;do{e=h+-4|0;f[b>>2]=e;i=f[e>>2]|0;f[e>>2]=0;if(i|0)Va[f[(f[i>>2]|0)+4>>2]&127](i);h=f[b>>2]|0}while((h|0)!=(d|0));g=f[c>>2]|0}Oq(g)}f[a>>2]=1232;g=f[a+16>>2]|0;if(g|0){c=a+20|0;d=f[c>>2]|0;if((d|0)!=(g|0))f[c>>2]=d+(~((d+-4-g|0)>>>2)<<2);Oq(g)}g=f[a+4>>2]|0;if(!g)return;d=a+8|0;a=f[d>>2]|0;if((a|0)!=(g|0))f[d>>2]=a+(~((a+-4-g|0)>>>2)<<2);Oq(g);return}function Mh(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;f[a>>2]=d;e=a+24|0;g=a+28|0;h=f[g>>2]|0;i=f[e>>2]|0;j=h-i>>2;k=i;i=h;if(j>>>0>=d>>>0){if(j>>>0>d>>>0?(h=k+(d<<2)|0,(h|0)!=(i|0)):0)f[g>>2]=i+(~((i+-4-h|0)>>>2)<<2)}else Ci(e,d-j|0);if(!c)return;j=f[b>>2]|0;if((c|0)>1){d=j;e=j;h=1;while(1){i=f[b+(h<<2)>>2]|0;g=(i|0)<(e|0);k=g?i:e;l=g?d:(i|0)>(d|0)?i:d;h=h+1|0;if((h|0)==(c|0)){m=l;n=k;break}else{d=l;e=k}}}else{m=j;n=j}f[a+4>>2]=n;f[a+8>>2]=m;j=Xn(m|0,((m|0)<0)<<31>>31|0,n|0,((n|0)<0)<<31>>31|0)|0;n=I;if(!(n>>>0<0|(n|0)==0&j>>>0<2147483647))return;n=j+1|0;f[a+12>>2]=n;j=(n|0)/2|0;m=a+16|0;f[m>>2]=j;f[a+20>>2]=0-j;if(n&1|0)return;f[m>>2]=j+-1;return}function Nh(a){a=a|0;Fj(a+992|0);Fj(a+960|0);Fj(a+928|0);Fj(a+896|0);Fj(a+864|0);Fj(a+832|0);Fj(a+800|0);Fj(a+768|0);Fj(a+736|0);Fj(a+704|0);Fj(a+672|0);Fj(a+640|0);Fj(a+608|0);Fj(a+576|0);Fj(a+544|0);Fj(a+512|0);Fj(a+480|0);Fj(a+448|0);Fj(a+416|0);Fj(a+384|0);Fj(a+352|0);Fj(a+320|0);Fj(a+288|0);Fj(a+256|0);Fj(a+224|0);Fj(a+192|0);Fj(a+160|0);Fj(a+128|0);Fj(a+96|0);Fj(a+64|0);Fj(a+32|0);Fj(a);return}function Oh(a){a=a|0;wn(a);wn(a+32|0);wn(a+64|0);wn(a+96|0);wn(a+128|0);wn(a+160|0);wn(a+192|0);wn(a+224|0);wn(a+256|0);wn(a+288|0);wn(a+320|0);wn(a+352|0);wn(a+384|0);wn(a+416|0);wn(a+448|0);wn(a+480|0);wn(a+512|0);wn(a+544|0);wn(a+576|0);wn(a+608|0);wn(a+640|0);wn(a+672|0);wn(a+704|0);wn(a+736|0);wn(a+768|0);wn(a+800|0);wn(a+832|0);wn(a+864|0);wn(a+896|0);wn(a+928|0);wn(a+960|0);wn(a+992|0);return}function Ph(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0;c=u;u=u+16|0;d=c+12|0;e=c+8|0;g=c+4|0;h=c;i=(a|0)==(b|0);if(!i){f[g>>2]=f[b>>2];f[h>>2]=b+4;f[e>>2]=f[g>>2];f[d>>2]=f[h>>2];Oc(a,e,d)}if(!i){f[g>>2]=f[b+12>>2];f[h>>2]=b+16;f[e>>2]=f[g>>2];f[d>>2]=f[h>>2];Hc(a+12|0,e,d)}if(i){u=c;return}f[g>>2]=f[b+24>>2];f[h>>2]=b+28;f[e>>2]=f[g>>2];f[d>>2]=f[h>>2];Oc(a+24|0,e,d);u=c;return}function Qh(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0;a=u;u=u+16|0;e=a;if((c|0)<0|((b|0)==0|(d|0)==0)){g=0;u=a;return g|0}h=f[b+8>>2]|0;if(((f[b+12>>2]|0)-h>>2|0)<=(c|0)){g=0;u=a;return g|0}i=b+4|0;if(!(f[i>>2]|0)){j=ln(52)|0;f[j>>2]=0;f[j+4>>2]=0;f[j+8>>2]=0;f[j+12>>2]=0;n[j+16>>2]=$(1.0);k=j+20|0;f[k>>2]=0;f[k+4>>2]=0;f[k+8>>2]=0;f[k+12>>2]=0;n[j+36>>2]=$(1.0);f[j+40>>2]=0;f[j+44>>2]=0;f[j+48>>2]=0;f[b+4>>2]=j}j=f[(f[h+(c<<2)>>2]|0)+60>>2]|0;c=ln(44)|0;Ub(c,d);f[c+40>>2]=j;j=f[i>>2]|0;f[e>>2]=c;mk(j,e)|0;j=f[e>>2]|0;f[e>>2]=0;if(!j){g=1;u=a;return g|0}bj(j);Oq(j);g=1;u=a;return g|0}function Rh(a,c,d,e,g,h,i){a=a|0;c=c|0;d=d|0;e=e|0;g=g|0;h=h|0;i=i|0;var j=0,k=0;c=u;u=u+64|0;j=c;k=i?6:5;Il(j);i=f[h+56>>2]|0;h=X(Vl(k)|0,e)|0;Jj(j,i,0,e&255,k,0,h,((h|0)<0)<<31>>31,0,0);h=ln(96)|0;tl(h,j);f[a>>2]=h;Bj(h,d)|0;d=h+84|0;if(!g){b[d>>0]=1;a=f[h+68>>2]|0;j=h+72|0;k=f[j>>2]|0;if((k|0)==(a|0)){u=c;return}f[j>>2]=k+(~((k+-4-a|0)>>>2)<<2);u=c;return}b[d>>0]=0;d=h+68|0;a=h+72|0;h=f[a>>2]|0;k=f[d>>2]|0;j=h-k>>2;e=h;if(j>>>0>>0){Ch(d,g-j|0,1216);u=c;return}if(j>>>0<=g>>>0){u=c;return}j=k+(g<<2)|0;if((j|0)==(e|0)){u=c;return}f[a>>2]=e+(~((e+-4-j|0)>>>2)<<2);u=c;return}function Sh(a,b){a=a|0;b=b|0;var c=0,d=Oa,e=0,g=0;if((b|0)!=1)if(!(b+-1&b))c=b;else c=cb(b)|0;else c=2;b=f[a+4>>2]|0;if(c>>>0>b>>>0){rd(a,c);return}if(c>>>0>=b>>>0)return;d=$((f[a+12>>2]|0)>>>0);e=~~$(W($(d/$(n[a+16>>2]))))>>>0;if(b>>>0>2&(b+-1&b|0)==0)g=1<<32-(_(e+-1|0)|0);else g=cb(e)|0;e=c>>>0>>0?g:c;if(e>>>0>=b>>>0)return;rd(a,e);return}function Th(a,b){a=a|0;b=b|0;var c=0,d=Oa,e=0,g=0;if((b|0)!=1)if(!(b+-1&b))c=b;else c=cb(b)|0;else c=2;b=f[a+4>>2]|0;if(c>>>0>b>>>0){vd(a,c);return}if(c>>>0>=b>>>0)return;d=$((f[a+12>>2]|0)>>>0);e=~~$(W($(d/$(n[a+16>>2]))))>>>0;if(b>>>0>2&(b+-1&b|0)==0)g=1<<32-(_(e+-1|0)|0);else g=cb(e)|0;e=c>>>0>>0?g:c;if(e>>>0>=b>>>0)return;vd(a,e);return}function Uh(a,b){a=a|0;b=b|0;var c=0,d=Oa,e=0,g=0;if((b|0)!=1)if(!(b+-1&b))c=b;else c=cb(b)|0;else c=2;b=f[a+4>>2]|0;if(c>>>0>b>>>0){Fd(a,c);return}if(c>>>0>=b>>>0)return;d=$((f[a+12>>2]|0)>>>0);e=~~$(W($(d/$(n[a+16>>2]))))>>>0;if(b>>>0>2&(b+-1&b|0)==0)g=1<<32-(_(e+-1|0)|0);else g=cb(e)|0;e=c>>>0>>0?g:c;if(e>>>0>=b>>>0)return;Fd(a,e);return}function Vh(a,b){a=a|0;b=b|0;var c=0,d=Oa,e=0,g=0;if((b|0)!=1)if(!(b+-1&b))c=b;else c=cb(b)|0;else c=2;b=f[a+4>>2]|0;if(c>>>0>b>>>0){Pd(a,c);return}if(c>>>0>=b>>>0)return;d=$((f[a+12>>2]|0)>>>0);e=~~$(W($(d/$(n[a+16>>2]))))>>>0;if(b>>>0>2&(b+-1&b|0)==0)g=1<<32-(_(e+-1|0)|0);else g=cb(e)|0;e=c>>>0>>0?g:c;if(e>>>0>=b>>>0)return;Pd(a,e);return}function Wh(a,b){a=a|0;b=b|0;var c=0,d=Oa,e=0,g=0;if((b|0)!=1)if(!(b+-1&b))c=b;else c=cb(b)|0;else c=2;b=f[a+4>>2]|0;if(c>>>0>b>>>0){ud(a,c);return}if(c>>>0>=b>>>0)return;d=$((f[a+12>>2]|0)>>>0);e=~~$(W($(d/$(n[a+16>>2]))))>>>0;if(b>>>0>2&(b+-1&b|0)==0)g=1<<32-(_(e+-1|0)|0);else g=cb(e)|0;e=c>>>0>>0?g:c;if(e>>>0>=b>>>0)return;ud(a,e);return}function Xh(a,b){a=a|0;b=b|0;var c=0,d=Oa,e=0,g=0;if((b|0)!=1)if(!(b+-1&b))c=b;else c=cb(b)|0;else c=2;b=f[a+4>>2]|0;if(c>>>0>b>>>0){zd(a,c);return}if(c>>>0>=b>>>0)return;d=$((f[a+12>>2]|0)>>>0);e=~~$(W($(d/$(n[a+16>>2]))))>>>0;if(b>>>0>2&(b+-1&b|0)==0)g=1<<32-(_(e+-1|0)|0);else g=cb(e)|0;e=c>>>0>>0?g:c;if(e>>>0>=b>>>0)return;zd(a,e);return}function Yh(a,b){a=a|0;b=b|0;var c=0,d=Oa,e=0,g=0;if((b|0)!=1)if(!(b+-1&b))c=b;else c=cb(b)|0;else c=2;b=f[a+4>>2]|0;if(c>>>0>b>>>0){Jd(a,c);return}if(c>>>0>=b>>>0)return;d=$((f[a+12>>2]|0)>>>0);e=~~$(W($(d/$(n[a+16>>2]))))>>>0;if(b>>>0>2&(b+-1&b|0)==0)g=1<<32-(_(e+-1|0)|0);else g=cb(e)|0;e=c>>>0>>0?g:c;if(e>>>0>=b>>>0)return;Jd(a,e);return}function Zh(a,b){a=a|0;b=b|0;var c=0,d=Oa,e=0,g=0;if((b|0)!=1)if(!(b+-1&b))c=b;else c=cb(b)|0;else c=2;b=f[a+4>>2]|0;if(c>>>0>b>>>0){sd(a,c);return}if(c>>>0>=b>>>0)return;d=$((f[a+12>>2]|0)>>>0);e=~~$(W($(d/$(n[a+16>>2]))))>>>0;if(b>>>0>2&(b+-1&b|0)==0)g=1<<32-(_(e+-1|0)|0);else g=cb(e)|0;e=c>>>0>>0?g:c;if(e>>>0>=b>>>0)return;sd(a,e);return}function _h(a,b){a=a|0;b=b|0;var c=0,d=Oa,e=0,g=0;if((b|0)!=1)if(!(b+-1&b))c=b;else c=cb(b)|0;else c=2;b=f[a+4>>2]|0;if(c>>>0>b>>>0){wd(a,c);return}if(c>>>0>=b>>>0)return;d=$((f[a+12>>2]|0)>>>0);e=~~$(W($(d/$(n[a+16>>2]))))>>>0;if(b>>>0>2&(b+-1&b|0)==0)g=1<<32-(_(e+-1|0)|0);else g=cb(e)|0;e=c>>>0>>0?g:c;if(e>>>0>=b>>>0)return;wd(a,e);return}function $h(a,b){a=a|0;b=b|0;var c=0,d=Oa,e=0,g=0;if((b|0)!=1)if(!(b+-1&b))c=b;else c=cb(b)|0;else c=2;b=f[a+4>>2]|0;if(c>>>0>b>>>0){Gd(a,c);return}if(c>>>0>=b>>>0)return;d=$((f[a+12>>2]|0)>>>0);e=~~$(W($(d/$(n[a+16>>2]))))>>>0;if(b>>>0>2&(b+-1&b|0)==0)g=1<<32-(_(e+-1|0)|0);else g=cb(e)|0;e=c>>>0>>0?g:c;if(e>>>0>=b>>>0)return;Gd(a,e);return}function ai(a,b){a=a|0;b=b|0;var c=0,d=Oa,e=0,g=0;if((b|0)!=1)if(!(b+-1&b))c=b;else c=cb(b)|0;else c=2;b=f[a+4>>2]|0;if(c>>>0>b>>>0){Qd(a,c);return}if(c>>>0>=b>>>0)return;d=$((f[a+12>>2]|0)>>>0);e=~~$(W($(d/$(n[a+16>>2]))))>>>0;if(b>>>0>2&(b+-1&b|0)==0)g=1<<32-(_(e+-1|0)|0);else g=cb(e)|0;e=c>>>0>>0?g:c;if(e>>>0>=b>>>0)return;Qd(a,e);return}function bi(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;g=u;u=u+16|0;h=g;f[h>>2]=0;f[h+4>>2]=0;f[h+8>>2]=0;i=ln(16)|0;f[h>>2]=i;f[h+8>>2]=-2147483632;f[h+4>>2]=15;j=i;k=14479;l=j+15|0;do{b[j>>0]=b[k>>0]|0;j=j+1|0;k=k+1|0}while((j|0)<(l|0));b[i+15>>0]=0;i=Hk(c,h,-1)|0;if((b[h+11>>0]|0)<0)Oq(f[h>>2]|0);switch(i|0){case -1:{if((mi(c)|0)==10)m=6;else m=5;break}case 1:{m=5;break}default:m=6}if((m|0)==5){i=ln(60)|0;Lo(i);n=i}else if((m|0)==6){m=ln(56)|0;tp(m);n=m}xo(n,d);Md(a,n,c,e);Va[f[(f[n>>2]|0)+4>>2]&127](n);u=g;return}function ci(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0;d=u;u=u+16|0;e=d+4|0;g=d;h=d+8|0;b[h>>0]=a&127;do if(a>>>0>127){b[h>>0]=a|128;i=c+16|0;j=f[i+4>>2]|0;if((j|0)>0|(j|0)==0&(f[i>>2]|0)>>>0>0){k=0;break}else{f[g>>2]=f[c+4>>2];f[e>>2]=f[g>>2];Me(c,e,h,h+1|0)|0;k=ci(a>>>7,c)|0;break}}else{i=c+16|0;j=f[i+4>>2]|0;if((j|0)>0|(j|0)==0&(f[i>>2]|0)>>>0>0){k=0;break}f[g>>2]=f[c+4>>2];f[e>>2]=f[g>>2];Me(c,e,h,h+1|0)|0;l=1;u=d;return l|0}while(0);l=k;u=d;return l|0} function vc(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0;e=u;u=u+32|0;g=e+16|0;h=e+12|0;i=e+8|0;j=e+4|0;k=e;switch(f[c+28>>2]|0){case 9:{l=f[d>>2]|0;switch(b[c+24>>0]|0){case 1:{f[h>>2]=l;f[g>>2]=f[h>>2];m=hc(a,c,g)|0;break}case 2:{f[i>>2]=l;f[g>>2]=f[i>>2];m=Wb(a,c,g)|0;break}case 3:{f[j>>2]=l;f[g>>2]=f[j>>2];m=uc(a,c,g)|0;break}case 4:{f[k>>2]=l;f[g>>2]=f[k>>2];m=mc(a,c,g)|0;break}default:m=0}n=m;break}case 1:{m=f[d>>2]|0;switch(b[c+24>>0]|0){case 1:{f[h>>2]=m;f[g>>2]=f[h>>2];o=gc(a,c,g)|0;break}case 2:{f[i>>2]=m;f[g>>2]=f[i>>2];o=Xb(a,c,g)|0;break}case 3:{f[j>>2]=m;f[g>>2]=f[j>>2];o=sc(a,c,g)|0;break}case 4:{f[k>>2]=m;f[g>>2]=f[k>>2];o=lc(a,c,g)|0;break}default:o=0}n=o;break}case 11:case 2:{o=f[d>>2]|0;switch(b[c+24>>0]|0){case 1:{f[h>>2]=o;f[g>>2]=f[h>>2];p=gc(a,c,g)|0;break}case 2:{f[i>>2]=o;f[g>>2]=f[i>>2];p=Xb(a,c,g)|0;break}case 3:{f[j>>2]=o;f[g>>2]=f[j>>2];p=sc(a,c,g)|0;break}case 4:{f[k>>2]=o;f[g>>2]=f[k>>2];p=lc(a,c,g)|0;break}default:p=0}n=p;break}case 4:{p=f[d>>2]|0;switch(b[c+24>>0]|0){case 1:{f[h>>2]=p;f[g>>2]=f[h>>2];q=ec(a,c,g)|0;break}case 2:{f[i>>2]=p;f[g>>2]=f[i>>2];q=Vb(a,c,g)|0;break}case 3:{f[j>>2]=p;f[g>>2]=f[j>>2];q=nc(a,c,g)|0;break}case 4:{f[k>>2]=p;f[g>>2]=f[k>>2];q=jc(a,c,g)|0;break}default:q=0}n=q;break}case 3:{q=f[d>>2]|0;switch(b[c+24>>0]|0){case 1:{f[h>>2]=q;f[g>>2]=f[h>>2];r=ec(a,c,g)|0;break}case 2:{f[i>>2]=q;f[g>>2]=f[i>>2];r=Vb(a,c,g)|0;break}case 3:{f[j>>2]=q;f[g>>2]=f[j>>2];r=nc(a,c,g)|0;break}case 4:{f[k>>2]=q;f[g>>2]=f[k>>2];r=jc(a,c,g)|0;break}default:r=0}n=r;break}case 6:{r=f[d>>2]|0;switch(b[c+24>>0]|0){case 1:{f[h>>2]=r;f[g>>2]=f[h>>2];s=hc(a,c,g)|0;break}case 2:{f[i>>2]=r;f[g>>2]=f[i>>2];s=Wb(a,c,g)|0;break}case 3:{f[j>>2]=r;f[g>>2]=f[j>>2];s=uc(a,c,g)|0;break}case 4:{f[k>>2]=r;f[g>>2]=f[k>>2];s=mc(a,c,g)|0;break}default:s=0}n=s;break}case 5:{s=f[d>>2]|0;switch(b[c+24>>0]|0){case 1:{f[h>>2]=s;f[g>>2]=f[h>>2];t=hc(a,c,g)|0;break}case 2:{f[i>>2]=s;f[g>>2]=f[i>>2];t=Wb(a,c,g)|0;break}case 3:{f[j>>2]=s;f[g>>2]=f[j>>2];t=uc(a,c,g)|0;break}case 4:{f[k>>2]=s;f[g>>2]=f[k>>2];t=mc(a,c,g)|0;break}default:t=0}n=t;break}default:{v=-1;u=e;return v|0}}v=(n|0)==0?-1:n;u=e;return v|0}function wc(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;e=u;u=u+32|0;g=e+16|0;h=e+12|0;i=e+29|0;j=e;k=e+28|0;if(!(f[(f[a+8>>2]|0)+80>>2]|0)){l=1;u=e;return l|0}b[i>>0]=-2;m=a+36|0;n=f[m>>2]|0;if(n)if(Ra[f[(f[a>>2]|0)+40>>2]&127](a,n)|0){n=f[m>>2]|0;o=(Qa[f[(f[n>>2]|0)+8>>2]&127](n)|0)&255;b[i>>0]=o;p=5}else q=0;else p=5;if((p|0)==5){o=d+16|0;n=o;r=f[n+4>>2]|0;if(!((r|0)>0|(r|0)==0&(f[n>>2]|0)>>>0>0)){f[h>>2]=f[d+4>>2];f[g>>2]=f[h>>2];Me(d,g,i,i+1|0)|0}i=f[m>>2]|0;if(i|0?(n=(Qa[f[(f[i>>2]|0)+36>>2]&127](i)|0)&255,b[j>>0]=n,n=o,i=f[n+4>>2]|0,!((i|0)>0|(i|0)==0&(f[n>>2]|0)>>>0>0)):0){f[h>>2]=f[d+4>>2];f[g>>2]=f[h>>2];Me(d,g,j,j+1|0)|0}n=f[a+32>>2]|0;i=b[n+24>>0]|0;r=X(f[n+80>>2]|0,i)|0;s=(f[f[n>>2]>>2]|0)+(f[n+48>>2]|0)|0;f[j>>2]=0;n=j+4|0;f[n>>2]=0;f[j+8>>2]=0;t=(r|0)==0;do if(!t)if(r>>>0>1073741823)aq(j);else{v=r<<2;w=ln(v)|0;f[j>>2]=w;x=w+(r<<2)|0;f[j+8>>2]=x;sj(w|0,0,v|0)|0;f[n>>2]=x;y=w;break}else y=0;while(0);w=f[m>>2]|0;do if(w){Ta[f[(f[w>>2]|0)+44>>2]&31](w,s,y,r,i,f[c>>2]|0)|0;x=f[m>>2]|0;if(!x){z=s;A=f[j>>2]|0;p=20;break}if(!(Qa[f[(f[x>>2]|0)+32>>2]&127](x)|0)){x=f[j>>2]|0;z=f[m>>2]|0?x:s;A=x;p=20}}else{z=s;A=y;p=20}while(0);if((p|0)==20)xm(z,r,A);A=a+4|0;a=f[A>>2]|0;do if(a){z=f[a+48>>2]|0;f[g>>2]=0;f[g+4>>2]=0;f[g+8>>2]=0;y=ln(48)|0;f[g>>2]=y;f[g+8>>2]=-2147483600;f[g+4>>2]=34;s=y;w=10697;x=s+34|0;do{b[s>>0]=b[w>>0]|0;s=s+1|0;w=w+1|0}while((s|0)<(x|0));b[y+34>>0]=0;w=Yj(z,g,1)|0;if((b[g+11>>0]|0)<0)Oq(f[g>>2]|0);if(!w){if(!t){w=f[j>>2]|0;s=0;x=0;do{x=f[w+(s<<2)>>2]|x;s=s+1|0}while((s|0)!=(r|0));if(x)B=((_(x|0)|0)>>>3^3)+1|0;else B=1}else B=1;b[k>>0]=0;s=o;w=f[s>>2]|0;z=f[s+4>>2]|0;if((z|0)>0|(z|0)==0&w>>>0>0){C=z;D=w}else{f[h>>2]=f[d+4>>2];f[g>>2]=f[h>>2];Me(d,g,k,k+1|0)|0;w=o;C=f[w+4>>2]|0;D=f[w>>2]|0}b[k>>0]=B;if(!((C|0)>0|(C|0)==0&D>>>0>0)){f[h>>2]=f[d+4>>2];f[g>>2]=f[h>>2];Me(d,g,k,k+1|0)|0}if((B|0)==(Vl(5)|0)){w=f[j>>2]|0;z=o;s=f[z+4>>2]|0;if(!((s|0)>0|(s|0)==0&(f[z>>2]|0)>>>0>0)){f[h>>2]=f[d+4>>2];f[g>>2]=f[h>>2];Me(d,g,w,w+(r<<2)|0)|0}p=48;break}if(t)p=48;else{w=d+4|0;z=0;do{s=(f[j>>2]|0)+(z<<2)|0;y=o;v=f[y+4>>2]|0;if(!((v|0)>0|(v|0)==0&(f[y>>2]|0)>>>0>0)){f[h>>2]=f[w>>2];f[g>>2]=f[h>>2];Me(d,g,s,s+B|0)|0}z=z+1|0}while(z>>>0>>0);p=48}}else p=27}else p=27;while(0);if((p|0)==27){b[k>>0]=1;r=o;o=f[r+4>>2]|0;if(!((o|0)>0|(o|0)==0&(f[r>>2]|0)>>>0>0)){f[h>>2]=f[d+4>>2];f[g>>2]=f[h>>2];Me(d,g,k,k+1|0)|0}lp(g);k=f[A>>2]|0;if(k|0)Zj(g,10-(mi(f[k+48>>2]|0)|0)|0)|0;k=Mc(f[j>>2]|0,X((f[c+4>>2]|0)-(f[c>>2]|0)>>2,i)|0,i,g,d)|0;Ej(g,f[g+4>>2]|0);if(k)p=48;else E=0}if((p|0)==48){p=f[m>>2]|0;if(!p)E=1;else{Ra[f[(f[p>>2]|0)+40>>2]&127](p,d)|0;E=1}}d=f[j>>2]|0;if(d|0){j=f[n>>2]|0;if((j|0)!=(d|0))f[n>>2]=j+(~((j+-4-d|0)>>>2)<<2);Oq(d)}q=E}l=q;u=e;return l|0}function xc(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0;b=u;u=u+48|0;c=b+24|0;d=b+12|0;e=b;g=a+32|0;h=a+8|0;i=a+12|0;j=f[i>>2]|0;k=f[h>>2]|0;l=j-k>>2;m=a+36|0;n=f[m>>2]|0;o=f[g>>2]|0;p=n-o>>2;q=o;o=n;n=k;if(l>>>0<=p>>>0)if(l>>>0

>>0?(r=q+(l<<2)|0,(r|0)!=(o|0)):0){f[m>>2]=o+(~((o+-4-r|0)>>>2)<<2);s=n;t=k;v=j}else{s=n;t=k;v=j}else{Ci(g,l-p|0);p=f[h>>2]|0;s=p;t=p;v=f[i>>2]|0}p=v-t|0;l=p>>2;f[c>>2]=0;j=c+4|0;f[j>>2]=0;k=c+8|0;f[k>>2]=0;if(l|0){if((p|0)<0)aq(c);p=((l+-1|0)>>>5)+1|0;n=ln(p<<2)|0;f[c>>2]=n;f[k>>2]=p;f[j>>2]=l;j=l>>>5;sj(n|0,0,j<<2|0)|0;p=l&31;l=n+(j<<2)|0;if(p|0)f[l>>2]=f[l>>2]&~(-1>>>(32-p|0))}p=a+20|0;l=0;j=s;s=t;t=v;while(1){if(l>>>0>2>>>0){w=0;x=0;y=l;z=s;A=j}else{B=25;break}while(1){v=x>>>5;n=1<<(x&31);do if(!(f[(f[c>>2]|0)+(v<<2)>>2]&n)){k=f[A+(x<<2)>>2]|0;if((f[k+8>>2]|0)!=(f[k+4>>2]|0)){r=0;o=1;m=A;q=k;while(1){k=f[(f[q+4>>2]|0)+(r<<2)>>2]|0;C=0;D=m;while(1){E=f[D+(x<<2)>>2]|0;if((C|0)>=(Ra[f[(f[E>>2]|0)+24>>2]&127](E,k)|0)){F=o;break}E=f[(f[h>>2]|0)+(x<<2)>>2]|0;G=Sa[f[(f[E>>2]|0)+28>>2]&31](E,k,C)|0;if((G|0)!=(x|0)?(E=f[(f[p>>2]|0)+(G<<2)>>2]|0,(1<<(E&31)&f[(f[c>>2]|0)+(E>>>5<<2)>>2]|0)==0):0){F=0;break}C=C+1|0;D=f[h>>2]|0}r=r+1|0;m=f[h>>2]|0;q=f[m+(x<<2)>>2]|0;if(r>>>0>=(f[q+8>>2]|0)-(f[q+4>>2]|0)>>2>>>0)break;else o=F}o=m;if(F)H=o;else{I=w;J=y;K=o;break}}else H=z;f[(f[g>>2]|0)+(y<<2)>>2]=x;o=(f[c>>2]|0)+(v<<2)|0;f[o>>2]=f[o>>2]|n;I=1;J=y+1|0;K=H}else{I=w;J=y;K=z}while(0);x=x+1|0;L=f[i>>2]|0;M=L-K>>2;A=K;if(x>>>0>=M>>>0)break;else{w=I;y=J;z=K}}if(J>>>0>>0&(I^1)){N=0;break}else{l=J;j=A;s=K;t=L}}if((B|0)==25){f[d>>2]=0;B=d+4|0;f[B>>2]=0;f[d+8>>2]=0;L=f[a+4>>2]|0;a=(f[L+12>>2]|0)-(f[L+8>>2]|0)|0;L=a>>2;f[e>>2]=0;K=e+4|0;f[K>>2]=0;A=e+8|0;f[A>>2]=0;if(L|0){if((a|0)<0)aq(e);a=((L+-1|0)>>>5)+1|0;J=ln(a<<2)|0;f[e>>2]=J;f[A>>2]=a;f[K>>2]=L;K=L>>>5;sj(J|0,0,K<<2|0)|0;a=L&31;L=J+(K<<2)|0;if(a|0)f[L>>2]=f[L>>2]&~(-1>>>(32-a|0))}a:do if((t|0)==(s|0))O=1;else{a=0;L=j;K=s;J=t;while(1){A=f[(f[g>>2]|0)+(a<<2)>>2]|0;l=f[L+(A<<2)>>2]|0;I=(f[l+8>>2]|0)-(f[l+4>>2]|0)|0;l=I>>2;if((I|0)<8){P=K;Q=J}else{I=f[B>>2]|0;M=f[d>>2]|0;z=I-M>>2;y=M;M=I;if(l>>>0<=z>>>0)if(l>>>0>>0?(I=y+(l<<2)|0,(I|0)!=(M|0)):0){f[B>>2]=M+(~((M+-4-I|0)>>>2)<<2);R=0}else R=0;else{Ci(d,l-z|0);R=0}while(1){if((R|0)<(l|0)){S=0;T=0;U=R}else break;while(1){z=f[(f[h>>2]|0)+(A<<2)>>2]|0;I=f[(f[z+4>>2]|0)+(S<<2)>>2]|0;M=S>>>5;y=1<<(S&31);if(!(f[(f[e>>2]|0)+(M<<2)>>2]&y)){w=0;x=1;H=z;while(1){if((w|0)>=(Ra[f[(f[H>>2]|0)+24>>2]&127](H,I)|0)){V=x;break}z=f[(f[h>>2]|0)+(A<<2)>>2]|0;F=Sa[f[(f[z>>2]|0)+28>>2]&31](z,I,w)|0;z=(f[(f[e>>2]|0)+(F>>>5<<2)>>2]&1<<(F&31)|0)!=0;F=x&z;if(!z){V=F;break}w=w+1|0;x=F;H=f[(f[h>>2]|0)+(A<<2)>>2]|0}if(V){f[(f[d>>2]|0)+(U<<2)>>2]=S;H=(f[e>>2]|0)+(M<<2)|0;f[H>>2]=f[H>>2]|y;W=1;X=U+1|0}else{W=T;X=U}}else{W=T;X=U}S=S+1|0;if((S|0)>=(l|0))break;else{T=W;U=X}}if(W|(X|0)>=(l|0))R=X;else{O=0;break a}}bg(f[(f[h>>2]|0)+(A<<2)>>2]|0,d);P=f[h>>2]|0;Q=f[i>>2]|0}a=a+1|0;if(a>>>0>=Q-P>>2>>>0){O=1;break}else{L=P;K=P;J=Q}}}while(0);Q=f[e>>2]|0;if(Q|0)Oq(Q);Q=f[d>>2]|0;if(Q|0){d=f[B>>2]|0;if((d|0)!=(Q|0))f[B>>2]=d+(~((d+-4-Q|0)>>>2)<<2);Oq(Q)}N=O}O=f[c>>2]|0;if(!O){u=b;return N|0}Oq(O);u=b;return N|0}function yc(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0;if(!a)return;b=a+-8|0;c=f[4788]|0;d=f[a+-4>>2]|0;a=d&-8;e=b+a|0;do if(!(d&1)){g=f[b>>2]|0;if(!(d&3))return;h=b+(0-g)|0;i=g+a|0;if(h>>>0>>0)return;if((f[4789]|0)==(h|0)){j=e+4|0;k=f[j>>2]|0;if((k&3|0)!=3){l=h;m=i;n=h;break}f[4786]=i;f[j>>2]=k&-2;f[h+4>>2]=i|1;f[h+i>>2]=i;return}k=g>>>3;if(g>>>0<256){g=f[h+8>>2]|0;j=f[h+12>>2]|0;if((j|0)==(g|0)){f[4784]=f[4784]&~(1<>2]=j;f[j+8>>2]=g;l=h;m=i;n=h;break}}g=f[h+24>>2]|0;j=f[h+12>>2]|0;do if((j|0)==(h|0)){k=h+16|0;o=k+4|0;p=f[o>>2]|0;if(!p){q=f[k>>2]|0;if(!q){r=0;break}else{s=q;t=k}}else{s=p;t=o}while(1){o=s+20|0;p=f[o>>2]|0;if(p|0){s=p;t=o;continue}o=s+16|0;p=f[o>>2]|0;if(!p)break;else{s=p;t=o}}f[t>>2]=0;r=s}else{o=f[h+8>>2]|0;f[o+12>>2]=j;f[j+8>>2]=o;r=j}while(0);if(g){j=f[h+28>>2]|0;o=19440+(j<<2)|0;if((f[o>>2]|0)==(h|0)){f[o>>2]=r;if(!r){f[4785]=f[4785]&~(1<>2]|0)!=(h|0)&1)<<2)>>2]=r;if(!r){l=h;m=i;n=h;break}}f[r+24>>2]=g;j=h+16|0;o=f[j>>2]|0;if(o|0){f[r+16>>2]=o;f[o+24>>2]=r}o=f[j+4>>2]|0;if(o){f[r+20>>2]=o;f[o+24>>2]=r;l=h;m=i;n=h}else{l=h;m=i;n=h}}else{l=h;m=i;n=h}}else{l=b;m=a;n=b}while(0);if(n>>>0>=e>>>0)return;b=e+4|0;a=f[b>>2]|0;if(!(a&1))return;if(!(a&2)){if((f[4790]|0)==(e|0)){r=(f[4787]|0)+m|0;f[4787]=r;f[4790]=l;f[l+4>>2]=r|1;if((l|0)!=(f[4789]|0))return;f[4789]=0;f[4786]=0;return}if((f[4789]|0)==(e|0)){r=(f[4786]|0)+m|0;f[4786]=r;f[4789]=n;f[l+4>>2]=r|1;f[n+r>>2]=r;return}r=(a&-8)+m|0;s=a>>>3;do if(a>>>0<256){t=f[e+8>>2]|0;c=f[e+12>>2]|0;if((c|0)==(t|0)){f[4784]=f[4784]&~(1<>2]=c;f[c+8>>2]=t;break}}else{t=f[e+24>>2]|0;c=f[e+12>>2]|0;do if((c|0)==(e|0)){d=e+16|0;o=d+4|0;j=f[o>>2]|0;if(!j){p=f[d>>2]|0;if(!p){u=0;break}else{v=p;w=d}}else{v=j;w=o}while(1){o=v+20|0;j=f[o>>2]|0;if(j|0){v=j;w=o;continue}o=v+16|0;j=f[o>>2]|0;if(!j)break;else{v=j;w=o}}f[w>>2]=0;u=v}else{o=f[e+8>>2]|0;f[o+12>>2]=c;f[c+8>>2]=o;u=c}while(0);if(t|0){c=f[e+28>>2]|0;h=19440+(c<<2)|0;if((f[h>>2]|0)==(e|0)){f[h>>2]=u;if(!u){f[4785]=f[4785]&~(1<>2]|0)!=(e|0)&1)<<2)>>2]=u;if(!u)break}f[u+24>>2]=t;c=e+16|0;h=f[c>>2]|0;if(h|0){f[u+16>>2]=h;f[h+24>>2]=u}h=f[c+4>>2]|0;if(h|0){f[u+20>>2]=h;f[h+24>>2]=u}}}while(0);f[l+4>>2]=r|1;f[n+r>>2]=r;if((l|0)==(f[4789]|0)){f[4786]=r;return}else x=r}else{f[b>>2]=a&-2;f[l+4>>2]=m|1;f[n+m>>2]=m;x=m}m=x>>>3;if(x>>>0<256){n=19176+(m<<1<<2)|0;a=f[4784]|0;b=1<>2]|0;z=b}f[z>>2]=l;f[y+12>>2]=l;f[l+8>>2]=y;f[l+12>>2]=n;return}n=x>>>8;if(n)if(x>>>0>16777215)A=31;else{y=(n+1048320|0)>>>16&8;z=n<>>16&4;b=z<>>16&2;a=14-(n|y|z)+(b<>>15)|0;A=x>>>(a+7|0)&1|a<<1}else A=0;a=19440+(A<<2)|0;f[l+28>>2]=A;f[l+20>>2]=0;f[l+16>>2]=0;z=f[4785]|0;b=1<>>1)|0);n=f[a>>2]|0;while(1){if((f[n+4>>2]&-8|0)==(x|0)){B=73;break}C=n+16+(y>>>31<<2)|0;m=f[C>>2]|0;if(!m){B=72;break}else{y=y<<1;n=m}}if((B|0)==72){f[C>>2]=l;f[l+24>>2]=n;f[l+12>>2]=l;f[l+8>>2]=l;break}else if((B|0)==73){y=n+8|0;t=f[y>>2]|0;f[t+12>>2]=l;f[y>>2]=l;f[l+8>>2]=t;f[l+12>>2]=n;f[l+24>>2]=0;break}}else{f[4785]=z|b;f[a>>2]=l;f[l+24>>2]=a;f[l+12>>2]=l;f[l+8>>2]=l}while(0);l=(f[4792]|0)+-1|0;f[4792]=l;if(!l)D=19592;else return;while(1){l=f[D>>2]|0;if(!l)break;else D=l+8|0}f[4792]=-1;return}function zc(a){a=a|0;var c=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0;c=u;u=u+32|0;e=c+4|0;g=c;h=c+16|0;i=a+52|0;j=f[i>>2]|0;k=(f[j+100>>2]|0)-(f[j+96>>2]|0)|0;j=(k|0)/12|0;l=a+44|0;ci(j,f[l>>2]|0)|0;ci(f[(f[i>>2]|0)+80>>2]|0,f[l>>2]|0)|0;m=f[a+48>>2]|0;n=ln(32)|0;f[e>>2]=n;f[e+8>>2]=-2147483616;f[e+4>>2]=21;o=n;p=15598;q=o+21|0;do{b[o>>0]=b[p>>0]|0;o=o+1|0;p=p+1|0}while((o|0)<(q|0));b[n+21>>0]=0;n=Yj(m,e,0)|0;if((b[e+11>>0]|0)<0)Oq(f[e>>2]|0);m=f[l>>2]|0;if(n){b[h>>0]=0;n=m+16|0;p=f[n+4>>2]|0;if(!((p|0)>0|(p|0)==0&(f[n>>2]|0)>>>0>0)){f[g>>2]=f[m+4>>2];f[e>>2]=f[g>>2];Me(m,e,h,h+1|0)|0}mf(a)|0;u=c;return 1}b[h>>0]=1;a=m+16|0;n=f[a+4>>2]|0;if(!((n|0)>0|(n|0)==0&(f[a>>2]|0)>>>0>0)){f[g>>2]=f[m+4>>2];f[e>>2]=f[g>>2];Me(m,e,h,h+1|0)|0}m=f[i>>2]|0;a=f[m+80>>2]|0;if(a>>>0<256){if(!k){u=c;return 1}n=h+1|0;p=h+1|0;o=h+1|0;q=0;r=m;while(1){s=f[r+96>>2]|0;t=f[l>>2]|0;b[h>>0]=f[s+(q*12|0)>>2];v=t+16|0;w=f[v>>2]|0;x=f[v+4>>2]|0;if((x|0)>0|(x|0)==0&w>>>0>0){y=w;z=t;A=x}else{f[g>>2]=f[t+4>>2];f[e>>2]=f[g>>2];Me(t,e,h,o)|0;t=f[l>>2]|0;x=t+16|0;y=f[x>>2]|0;z=t;A=f[x+4>>2]|0}b[h>>0]=f[s+(q*12|0)+4>>2];if((A|0)>0|(A|0)==0&y>>>0>0){B=A;C=y;D=z}else{f[g>>2]=f[z+4>>2];f[e>>2]=f[g>>2];Me(z,e,h,p)|0;x=f[l>>2]|0;t=x+16|0;B=f[t+4>>2]|0;C=f[t>>2]|0;D=x}b[h>>0]=f[s+(q*12|0)+8>>2];if(!((B|0)>0|(B|0)==0&C>>>0>0)){f[g>>2]=f[D+4>>2];f[e>>2]=f[g>>2];Me(D,e,h,n)|0}s=q+1|0;if(s>>>0>=j>>>0)break;q=s;r=f[i>>2]|0}u=c;return 1}if(a>>>0<65536){if(!k){u=c;return 1}r=h+2|0;q=h+2|0;n=h+2|0;D=0;C=m;while(1){B=f[C+96>>2]|0;p=f[l>>2]|0;d[h>>1]=f[B+(D*12|0)>>2];z=p+16|0;y=f[z>>2]|0;A=f[z+4>>2]|0;if((A|0)>0|(A|0)==0&y>>>0>0){E=A;F=y;G=p}else{f[g>>2]=f[p+4>>2];f[e>>2]=f[g>>2];Me(p,e,h,n)|0;p=f[l>>2]|0;y=p+16|0;E=f[y+4>>2]|0;F=f[y>>2]|0;G=p}d[h>>1]=f[B+(D*12|0)+4>>2];if((E|0)>0|(E|0)==0&F>>>0>0){H=E;I=F;J=G}else{f[g>>2]=f[G+4>>2];f[e>>2]=f[g>>2];Me(G,e,h,q)|0;p=f[l>>2]|0;y=p+16|0;H=f[y+4>>2]|0;I=f[y>>2]|0;J=p}d[h>>1]=f[B+(D*12|0)+8>>2];if(!((H|0)>0|(H|0)==0&I>>>0>0)){f[g>>2]=f[J+4>>2];f[e>>2]=f[g>>2];Me(J,e,h,r)|0}B=D+1|0;if(B>>>0>=j>>>0)break;D=B;C=f[i>>2]|0}u=c;return 1}C=(k|0)!=0;if(a>>>0<2097152){if(C){K=0;L=m}else{u=c;return 1}while(1){a=f[L+96>>2]|0;ci(f[a+(K*12|0)>>2]|0,f[l>>2]|0)|0;ci(f[a+(K*12|0)+4>>2]|0,f[l>>2]|0)|0;ci(f[a+(K*12|0)+8>>2]|0,f[l>>2]|0)|0;a=K+1|0;if(a>>>0>=j>>>0)break;K=a;L=f[i>>2]|0}u=c;return 1}if(!C){u=c;return 1}C=0;L=m;while(1){m=(f[L+96>>2]|0)+(C*12|0)|0;K=f[l>>2]|0;a=K+16|0;k=f[a+4>>2]|0;if(!((k|0)>0|(k|0)==0&(f[a>>2]|0)>>>0>0)){f[g>>2]=f[K+4>>2];f[e>>2]=f[g>>2];Me(K,e,m,m+12|0)|0}m=C+1|0;if(m>>>0>=j>>>0)break;C=m;L=f[i>>2]|0}u=c;return 1}function Ac(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0,v=Oa,w=Oa,x=Oa,y=Oa,z=0,A=0,B=0,C=Oa,D=Oa,E=Oa,F=Oa,G=Oa,H=Oa,I=Oa,K=Oa,M=Oa,N=Oa,O=Oa,P=0,Q=Oa,R=Oa,S=0;g=u;u=u+48|0;h=g+40|0;i=g+36|0;j=g+24|0;k=g+12|0;l=g;m=a+28|0;o=f[c>>2]|0;c=o+1|0;if((o|0)!=-1){p=((c>>>0)%3|0|0)==0?o+-2|0:c;c=o+(((o>>>0)%3|0|0)==0?2:-1)|0;if((p|0)==-1)q=-1;else q=f[(f[f[m>>2]>>2]|0)+(p<<2)>>2]|0;if((c|0)==-1){r=-1;s=q}else{r=f[(f[f[m>>2]>>2]|0)+(c<<2)>>2]|0;s=q}}else{r=-1;s=-1}q=f[a+32>>2]|0;c=f[q>>2]|0;m=(f[q+4>>2]|0)-c>>2;if(m>>>0<=s>>>0)aq(q);p=c;c=f[p+(s<<2)>>2]|0;if(m>>>0<=r>>>0)aq(q);q=f[p+(r<<2)>>2]|0;r=(c|0)<(e|0);if(!(r&(q|0)<(e|0))){do if(r)t=c;else{if((e|0)>0){t=e+-1|0;break}p=a+52|0;if((f[p>>2]|0)<=0){u=g;return}m=f[a+48>>2]|0;s=0;do{f[m+(s<<2)>>2]=0;s=s+1|0}while((s|0)<(f[p>>2]|0));u=g;return}while(0);r=a+52|0;p=f[r>>2]|0;s=X(p,t)|0;if((p|0)<=0){u=g;return}p=f[a+48>>2]|0;t=0;do{f[p+(t<<2)>>2]=f[d+(t+s<<2)>>2];t=t+1|0}while((t|0)<(f[r>>2]|0));u=g;return}r=a+52|0;t=f[r>>2]|0;s=X(t,c)|0;v=$(f[d+(s<<2)>>2]|0);w=$(f[d+(s+1<<2)>>2]|0);s=X(t,q)|0;x=$(f[d+(s<<2)>>2]|0);y=$(f[d+(s+1<<2)>>2]|0);if(!(x!=v|y!=w)){s=f[a+48>>2]|0;f[s>>2]=~~x;f[s+4>>2]=~~y;u=g;return}s=a+44|0;t=f[(f[s>>2]|0)+(e<<2)>>2]|0;f[j>>2]=0;f[j+4>>2]=0;f[j+8>>2]=0;p=a+40|0;m=f[p>>2]|0;if(!(b[m+84>>0]|0))z=f[(f[m+68>>2]|0)+(t<<2)>>2]|0;else z=t;f[i>>2]=z;z=b[m+24>>0]|0;f[h>>2]=f[i>>2];mb(m,h,z,j)|0;z=f[(f[s>>2]|0)+(c<<2)>>2]|0;f[k>>2]=0;f[k+4>>2]=0;f[k+8>>2]=0;c=f[p>>2]|0;if(!(b[c+84>>0]|0))A=f[(f[c+68>>2]|0)+(z<<2)>>2]|0;else A=z;f[i>>2]=A;A=b[c+24>>0]|0;f[h>>2]=f[i>>2];mb(c,h,A,k)|0;A=f[(f[s>>2]|0)+(q<<2)>>2]|0;f[l>>2]=0;f[l+4>>2]=0;f[l+8>>2]=0;q=f[p>>2]|0;if(!(b[q+84>>0]|0))B=f[(f[q+68>>2]|0)+(A<<2)>>2]|0;else B=A;f[i>>2]=B;B=b[q+24>>0]|0;f[h>>2]=f[i>>2];mb(q,h,B,l)|0;C=$(n[l>>2]);D=$(n[k>>2]);E=$(C-D);C=$(n[l+4>>2]);F=$(n[k+4>>2]);G=$(C-F);C=$(n[l+8>>2]);H=$(n[k+8>>2]);I=$(C-H);C=$($(n[j>>2])-D);D=$($(n[j+4>>2])-F);F=$($(n[j+8>>2])-H);H=$($($($(E*E)+$(0.0))+$(G*G))+$(I*I));if(H>$(0.0)){K=$($($($($(E*C)+$(0.0))+$(G*D))+$(I*F))/H);M=$(C-$(E*K));E=$(D-$(G*K));G=$(F-$(I*K));N=K;O=$(L($($($(G*G)+$($(E*E)+$($(M*M)+$(0.0))))/H)))}else{N=$(0.0);O=$(0.0)}H=$(x-v);x=$(y-w);y=$($(H*N)+v);v=$(H*O);H=$($(x*N)+w);w=$(x*O);O=$(y-w);x=$(H+v);N=$(y+w);w=$(H-v);j=X(f[r>>2]|0,e)|0;v=$(f[d+(j<<2)>>2]|0);H=$(f[d+(j+1<<2)>>2]|0);y=$(v-O);M=$(H-x);E=$(v-N);v=$(H-w);j=$($($(y*y)+$(0.0))+$(M*M))<$($($(E*E)+$(0.0))+$(v*v));d=a+56|0;e=a+60|0;r=f[e>>2]|0;k=f[a+64>>2]|0;l=(r|0)==(k<<5|0);if(j){do if(l)if((r+1|0)<0)aq(d);else{j=k<<6;B=r+32&-32;vi(d,r>>>0<1073741823?(j>>>0>>0?B:j):2147483647);P=f[e>>2]|0;break}else P=r;while(0);f[e>>2]=P+1;j=(f[d>>2]|0)+(P>>>5<<2)|0;f[j>>2]=f[j>>2]|1<<(P&31);Q=O;R=x}else{do if(l)if((r+1|0)<0)aq(d);else{P=k<<6;j=r+32&-32;vi(d,r>>>0<1073741823?(P>>>0>>0?j:P):2147483647);S=f[e>>2]|0;break}else S=r;while(0);f[e>>2]=S+1;e=(f[d>>2]|0)+(S>>>5<<2)|0;f[e>>2]=f[e>>2]&~(1<<(S&31));Q=N;R=w}S=~~+J(+(+Q+.5));e=f[a+48>>2]|0;f[e>>2]=S;S=~~+J(+(+R+.5));f[e+4>>2]=S;u=g;return}function Bc(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=Oa,v=Oa,w=Oa,x=Oa,y=0,z=0,A=0,B=Oa,C=Oa,D=Oa,E=Oa,F=Oa,G=Oa,H=Oa,I=Oa,K=Oa,M=Oa,N=Oa,O=0,P=Oa,Q=Oa,R=0;g=u;u=u+48|0;h=g+40|0;i=g+36|0;j=g+24|0;k=g+12|0;l=g;m=a+28|0;o=f[c>>2]|0;c=o+1|0;do if((o|0)!=-1){p=((c>>>0)%3|0|0)==0?o+-2|0:c;if(!((o>>>0)%3|0)){q=o+2|0;r=p;break}else{q=o+-1|0;r=p;break}}else{q=-1;r=-1}while(0);o=f[(f[m>>2]|0)+28>>2]|0;m=f[o+(r<<2)>>2]|0;r=f[o+(q<<2)>>2]|0;q=f[a+32>>2]|0;o=f[q>>2]|0;c=(f[q+4>>2]|0)-o>>2;if(c>>>0<=m>>>0)aq(q);p=o;o=f[p+(m<<2)>>2]|0;if(c>>>0<=r>>>0)aq(q);q=f[p+(r<<2)>>2]|0;r=(o|0)<(e|0);if(!(r&(q|0)<(e|0))){do if(r)s=o;else{if((e|0)>0){s=e+-1|0;break}p=a+52|0;if((f[p>>2]|0)<=0){u=g;return}c=f[a+48>>2]|0;m=0;do{f[c+(m<<2)>>2]=0;m=m+1|0}while((m|0)<(f[p>>2]|0));u=g;return}while(0);r=a+52|0;p=f[r>>2]|0;m=X(p,s)|0;if((p|0)<=0){u=g;return}p=f[a+48>>2]|0;s=0;do{f[p+(s<<2)>>2]=f[d+(s+m<<2)>>2];s=s+1|0}while((s|0)<(f[r>>2]|0));u=g;return}r=a+52|0;s=f[r>>2]|0;m=X(s,o)|0;t=$(f[d+(m<<2)>>2]|0);v=$(f[d+(m+1<<2)>>2]|0);m=X(s,q)|0;w=$(f[d+(m<<2)>>2]|0);x=$(f[d+(m+1<<2)>>2]|0);if(!(w!=t|x!=v)){m=f[a+48>>2]|0;f[m>>2]=~~w;f[m+4>>2]=~~x;u=g;return}m=a+44|0;s=f[(f[m>>2]|0)+(e<<2)>>2]|0;f[j>>2]=0;f[j+4>>2]=0;f[j+8>>2]=0;p=a+40|0;c=f[p>>2]|0;if(!(b[c+84>>0]|0))y=f[(f[c+68>>2]|0)+(s<<2)>>2]|0;else y=s;f[i>>2]=y;y=b[c+24>>0]|0;f[h>>2]=f[i>>2];mb(c,h,y,j)|0;y=f[(f[m>>2]|0)+(o<<2)>>2]|0;f[k>>2]=0;f[k+4>>2]=0;f[k+8>>2]=0;o=f[p>>2]|0;if(!(b[o+84>>0]|0))z=f[(f[o+68>>2]|0)+(y<<2)>>2]|0;else z=y;f[i>>2]=z;z=b[o+24>>0]|0;f[h>>2]=f[i>>2];mb(o,h,z,k)|0;z=f[(f[m>>2]|0)+(q<<2)>>2]|0;f[l>>2]=0;f[l+4>>2]=0;f[l+8>>2]=0;q=f[p>>2]|0;if(!(b[q+84>>0]|0))A=f[(f[q+68>>2]|0)+(z<<2)>>2]|0;else A=z;f[i>>2]=A;A=b[q+24>>0]|0;f[h>>2]=f[i>>2];mb(q,h,A,l)|0;B=$(n[l>>2]);C=$(n[k>>2]);D=$(B-C);B=$(n[l+4>>2]);E=$(n[k+4>>2]);F=$(B-E);B=$(n[l+8>>2]);G=$(n[k+8>>2]);H=$(B-G);B=$($(n[j>>2])-C);C=$($(n[j+4>>2])-E);E=$($(n[j+8>>2])-G);G=$($($($(D*D)+$(0.0))+$(F*F))+$(H*H));if(G>$(0.0)){I=$($($($($(D*B)+$(0.0))+$(F*C))+$(H*E))/G);K=$(B-$(D*I));D=$(C-$(F*I));F=$(E-$(H*I));M=I;N=$(L($($($(F*F)+$($(D*D)+$($(K*K)+$(0.0))))/G)))}else{M=$(0.0);N=$(0.0)}G=$(w-t);w=$(x-v);x=$($(G*M)+t);t=$(G*N);G=$($(w*M)+v);v=$(w*N);N=$(x-v);w=$(G+t);M=$(x+v);v=$(G-t);j=X(f[r>>2]|0,e)|0;t=$(f[d+(j<<2)>>2]|0);G=$(f[d+(j+1<<2)>>2]|0);x=$(t-N);K=$(G-w);D=$(t-M);t=$(G-v);j=$($($(x*x)+$(0.0))+$(K*K))<$($($(D*D)+$(0.0))+$(t*t));d=a+56|0;e=a+60|0;r=f[e>>2]|0;k=f[a+64>>2]|0;l=(r|0)==(k<<5|0);if(j){do if(l)if((r+1|0)<0)aq(d);else{j=k<<6;A=r+32&-32;vi(d,r>>>0<1073741823?(j>>>0>>0?A:j):2147483647);O=f[e>>2]|0;break}else O=r;while(0);f[e>>2]=O+1;j=(f[d>>2]|0)+(O>>>5<<2)|0;f[j>>2]=f[j>>2]|1<<(O&31);P=N;Q=w}else{do if(l)if((r+1|0)<0)aq(d);else{O=k<<6;j=r+32&-32;vi(d,r>>>0<1073741823?(O>>>0>>0?j:O):2147483647);R=f[e>>2]|0;break}else R=r;while(0);f[e>>2]=R+1;e=(f[d>>2]|0)+(R>>>5<<2)|0;f[e>>2]=f[e>>2]&~(1<<(R&31));P=M;Q=v}R=~~+J(+(+P+.5));e=f[a+48>>2]|0;f[e>>2]=R;R=~~+J(+(+Q+.5));f[e+4>>2]=R;u=g;return}function Cc(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0,v=Oa,w=Oa,x=Oa,y=Oa,z=0,A=0,B=0,C=Oa,D=Oa,E=Oa,F=Oa,G=Oa,H=Oa,I=Oa,K=Oa,M=Oa,N=Oa,O=Oa,P=0,Q=Oa,R=Oa,S=0;g=u;u=u+48|0;h=g+40|0;i=g+36|0;j=g+24|0;k=g+12|0;l=g;m=a+48|0;o=f[c>>2]|0;c=o+1|0;if((o|0)!=-1){p=((c>>>0)%3|0|0)==0?o+-2|0:c;c=o+(((o>>>0)%3|0|0)==0?2:-1)|0;if((p|0)==-1)q=-1;else q=f[(f[f[m>>2]>>2]|0)+(p<<2)>>2]|0;if((c|0)==-1){r=-1;s=q}else{r=f[(f[f[m>>2]>>2]|0)+(c<<2)>>2]|0;s=q}}else{r=-1;s=-1}q=f[a+52>>2]|0;c=f[q>>2]|0;m=(f[q+4>>2]|0)-c>>2;if(m>>>0<=s>>>0)aq(q);p=c;c=f[p+(s<<2)>>2]|0;if(m>>>0<=r>>>0)aq(q);q=f[p+(r<<2)>>2]|0;r=(c|0)<(e|0);if(!(r&(q|0)<(e|0))){do if(r)t=c;else{if((e|0)>0){t=e+-1|0;break}p=a+72|0;if((f[p>>2]|0)<=0){u=g;return}m=f[a+68>>2]|0;s=0;do{f[m+(s<<2)>>2]=0;s=s+1|0}while((s|0)<(f[p>>2]|0));u=g;return}while(0);r=a+72|0;p=f[r>>2]|0;s=X(p,t)|0;if((p|0)<=0){u=g;return}p=f[a+68>>2]|0;t=0;do{f[p+(t<<2)>>2]=f[d+(t+s<<2)>>2];t=t+1|0}while((t|0)<(f[r>>2]|0));u=g;return}r=a+72|0;t=f[r>>2]|0;s=X(t,c)|0;v=$(f[d+(s<<2)>>2]|0);w=$(f[d+(s+1<<2)>>2]|0);s=X(t,q)|0;x=$(f[d+(s<<2)>>2]|0);y=$(f[d+(s+1<<2)>>2]|0);if(!(x!=v|y!=w)){s=f[a+68>>2]|0;f[s>>2]=~~x;f[s+4>>2]=~~y;u=g;return}s=a+64|0;t=f[(f[s>>2]|0)+(e<<2)>>2]|0;f[j>>2]=0;f[j+4>>2]=0;f[j+8>>2]=0;p=a+60|0;m=f[p>>2]|0;if(!(b[m+84>>0]|0))z=f[(f[m+68>>2]|0)+(t<<2)>>2]|0;else z=t;f[i>>2]=z;z=b[m+24>>0]|0;f[h>>2]=f[i>>2];mb(m,h,z,j)|0;z=f[(f[s>>2]|0)+(c<<2)>>2]|0;f[k>>2]=0;f[k+4>>2]=0;f[k+8>>2]=0;c=f[p>>2]|0;if(!(b[c+84>>0]|0))A=f[(f[c+68>>2]|0)+(z<<2)>>2]|0;else A=z;f[i>>2]=A;A=b[c+24>>0]|0;f[h>>2]=f[i>>2];mb(c,h,A,k)|0;A=f[(f[s>>2]|0)+(q<<2)>>2]|0;f[l>>2]=0;f[l+4>>2]=0;f[l+8>>2]=0;q=f[p>>2]|0;if(!(b[q+84>>0]|0))B=f[(f[q+68>>2]|0)+(A<<2)>>2]|0;else B=A;f[i>>2]=B;B=b[q+24>>0]|0;f[h>>2]=f[i>>2];mb(q,h,B,l)|0;C=$(n[l>>2]);D=$(n[k>>2]);E=$(C-D);C=$(n[l+4>>2]);F=$(n[k+4>>2]);G=$(C-F);C=$(n[l+8>>2]);H=$(n[k+8>>2]);I=$(C-H);C=$($(n[j>>2])-D);D=$($(n[j+4>>2])-F);F=$($(n[j+8>>2])-H);H=$($($($(E*E)+$(0.0))+$(G*G))+$(I*I));if(H>$(0.0)){K=$($($($($(E*C)+$(0.0))+$(G*D))+$(I*F))/H);M=$(C-$(E*K));E=$(D-$(G*K));G=$(F-$(I*K));N=K;O=$(L($($($(G*G)+$($(E*E)+$($(M*M)+$(0.0))))/H)))}else{N=$(0.0);O=$(0.0)}H=$(x-v);x=$(y-w);y=$($(H*N)+v);v=$(H*O);H=$($(x*N)+w);w=$(x*O);O=$(y-w);x=$(H+v);N=$(y+w);w=$(H-v);j=X(f[r>>2]|0,e)|0;v=$(f[d+(j<<2)>>2]|0);H=$(f[d+(j+1<<2)>>2]|0);y=$(v-O);M=$(H-x);E=$(v-N);v=$(H-w);j=$($($(y*y)+$(0.0))+$(M*M))<$($($(E*E)+$(0.0))+$(v*v));d=a+76|0;e=a+80|0;r=f[e>>2]|0;k=f[a+84>>2]|0;l=(r|0)==(k<<5|0);if(j){do if(l)if((r+1|0)<0)aq(d);else{j=k<<6;B=r+32&-32;vi(d,r>>>0<1073741823?(j>>>0>>0?B:j):2147483647);P=f[e>>2]|0;break}else P=r;while(0);f[e>>2]=P+1;j=(f[d>>2]|0)+(P>>>5<<2)|0;f[j>>2]=f[j>>2]|1<<(P&31);Q=O;R=x}else{do if(l)if((r+1|0)<0)aq(d);else{P=k<<6;j=r+32&-32;vi(d,r>>>0<1073741823?(P>>>0>>0?j:P):2147483647);S=f[e>>2]|0;break}else S=r;while(0);f[e>>2]=S+1;e=(f[d>>2]|0)+(S>>>5<<2)|0;f[e>>2]=f[e>>2]&~(1<<(S&31));Q=N;R=w}S=~~+J(+(+Q+.5));e=f[a+68>>2]|0;f[e>>2]=S;S=~~+J(+(+R+.5));f[e+4>>2]=S;u=g;return}function Dc(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=Oa,v=Oa,w=Oa,x=Oa,y=0,z=0,A=0,B=Oa,C=Oa,D=Oa,E=Oa,F=Oa,G=Oa,H=Oa,I=Oa,K=Oa,M=Oa,N=Oa,O=0,P=Oa,Q=Oa,R=0;g=u;u=u+48|0;h=g+40|0;i=g+36|0;j=g+24|0;k=g+12|0;l=g;m=a+48|0;o=f[c>>2]|0;c=o+1|0;do if((o|0)!=-1){p=((c>>>0)%3|0|0)==0?o+-2|0:c;if(!((o>>>0)%3|0)){q=o+2|0;r=p;break}else{q=o+-1|0;r=p;break}}else{q=-1;r=-1}while(0);o=f[(f[m>>2]|0)+28>>2]|0;m=f[o+(r<<2)>>2]|0;r=f[o+(q<<2)>>2]|0;q=f[a+52>>2]|0;o=f[q>>2]|0;c=(f[q+4>>2]|0)-o>>2;if(c>>>0<=m>>>0)aq(q);p=o;o=f[p+(m<<2)>>2]|0;if(c>>>0<=r>>>0)aq(q);q=f[p+(r<<2)>>2]|0;r=(o|0)<(e|0);if(!(r&(q|0)<(e|0))){do if(r)s=o;else{if((e|0)>0){s=e+-1|0;break}p=a+72|0;if((f[p>>2]|0)<=0){u=g;return}c=f[a+68>>2]|0;m=0;do{f[c+(m<<2)>>2]=0;m=m+1|0}while((m|0)<(f[p>>2]|0));u=g;return}while(0);r=a+72|0;p=f[r>>2]|0;m=X(p,s)|0;if((p|0)<=0){u=g;return}p=f[a+68>>2]|0;s=0;do{f[p+(s<<2)>>2]=f[d+(s+m<<2)>>2];s=s+1|0}while((s|0)<(f[r>>2]|0));u=g;return}r=a+72|0;s=f[r>>2]|0;m=X(s,o)|0;t=$(f[d+(m<<2)>>2]|0);v=$(f[d+(m+1<<2)>>2]|0);m=X(s,q)|0;w=$(f[d+(m<<2)>>2]|0);x=$(f[d+(m+1<<2)>>2]|0);if(!(w!=t|x!=v)){m=f[a+68>>2]|0;f[m>>2]=~~w;f[m+4>>2]=~~x;u=g;return}m=a+64|0;s=f[(f[m>>2]|0)+(e<<2)>>2]|0;f[j>>2]=0;f[j+4>>2]=0;f[j+8>>2]=0;p=a+60|0;c=f[p>>2]|0;if(!(b[c+84>>0]|0))y=f[(f[c+68>>2]|0)+(s<<2)>>2]|0;else y=s;f[i>>2]=y;y=b[c+24>>0]|0;f[h>>2]=f[i>>2];mb(c,h,y,j)|0;y=f[(f[m>>2]|0)+(o<<2)>>2]|0;f[k>>2]=0;f[k+4>>2]=0;f[k+8>>2]=0;o=f[p>>2]|0;if(!(b[o+84>>0]|0))z=f[(f[o+68>>2]|0)+(y<<2)>>2]|0;else z=y;f[i>>2]=z;z=b[o+24>>0]|0;f[h>>2]=f[i>>2];mb(o,h,z,k)|0;z=f[(f[m>>2]|0)+(q<<2)>>2]|0;f[l>>2]=0;f[l+4>>2]=0;f[l+8>>2]=0;q=f[p>>2]|0;if(!(b[q+84>>0]|0))A=f[(f[q+68>>2]|0)+(z<<2)>>2]|0;else A=z;f[i>>2]=A;A=b[q+24>>0]|0;f[h>>2]=f[i>>2];mb(q,h,A,l)|0;B=$(n[l>>2]);C=$(n[k>>2]);D=$(B-C);B=$(n[l+4>>2]);E=$(n[k+4>>2]);F=$(B-E);B=$(n[l+8>>2]);G=$(n[k+8>>2]);H=$(B-G);B=$($(n[j>>2])-C);C=$($(n[j+4>>2])-E);E=$($(n[j+8>>2])-G);G=$($($($(D*D)+$(0.0))+$(F*F))+$(H*H));if(G>$(0.0)){I=$($($($($(D*B)+$(0.0))+$(F*C))+$(H*E))/G);K=$(B-$(D*I));D=$(C-$(F*I));F=$(E-$(H*I));M=I;N=$(L($($($(F*F)+$($(D*D)+$($(K*K)+$(0.0))))/G)))}else{M=$(0.0);N=$(0.0)}G=$(w-t);w=$(x-v);x=$($(G*M)+t);t=$(G*N);G=$($(w*M)+v);v=$(w*N);N=$(x-v);w=$(G+t);M=$(x+v);v=$(G-t);j=X(f[r>>2]|0,e)|0;t=$(f[d+(j<<2)>>2]|0);G=$(f[d+(j+1<<2)>>2]|0);x=$(t-N);K=$(G-w);D=$(t-M);t=$(G-v);j=$($($(x*x)+$(0.0))+$(K*K))<$($($(D*D)+$(0.0))+$(t*t));d=a+76|0;e=a+80|0;r=f[e>>2]|0;k=f[a+84>>2]|0;l=(r|0)==(k<<5|0);if(j){do if(l)if((r+1|0)<0)aq(d);else{j=k<<6;A=r+32&-32;vi(d,r>>>0<1073741823?(j>>>0>>0?A:j):2147483647);O=f[e>>2]|0;break}else O=r;while(0);f[e>>2]=O+1;j=(f[d>>2]|0)+(O>>>5<<2)|0;f[j>>2]=f[j>>2]|1<<(O&31);P=N;Q=w}else{do if(l)if((r+1|0)<0)aq(d);else{O=k<<6;j=r+32&-32;vi(d,r>>>0<1073741823?(O>>>0>>0?j:O):2147483647);R=f[e>>2]|0;break}else R=r;while(0);f[e>>2]=R+1;e=(f[d>>2]|0)+(R>>>5<<2)|0;f[e>>2]=f[e>>2]&~(1<<(R&31));P=M;Q=v}R=~~+J(+(+P+.5));e=f[a+68>>2]|0;f[e>>2]=R;R=~~+J(+(+Q+.5));f[e+4>>2]=R;u=g;return}function Ec(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,i=0,j=0,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=Oa,F=Oa,G=Oa,H=0,I=0,J=0,K=0;d=b[c+11>>0]|0;e=d<<24>>24<0;g=e?f[c>>2]|0:c;i=e?f[c+4>>2]|0:d&255;if(i>>>0>3){d=g;e=i;j=i;while(1){k=X(h[d>>0]|h[d+1>>0]<<8|h[d+2>>0]<<16|h[d+3>>0]<<24,1540483477)|0;e=(X(k>>>24^k,1540483477)|0)^(X(e,1540483477)|0);j=j+-4|0;if(j>>>0<=3)break;else d=d+4|0}d=i+-4|0;j=d&-4;l=d-j|0;m=g+(j+4)|0;o=e}else{l=i;m=g;o=i}switch(l|0){case 3:{p=h[m+2>>0]<<16^o;q=6;break}case 2:{p=o;q=6;break}case 1:{r=o;q=7;break}default:s=o}if((q|0)==6){r=h[m+1>>0]<<8^p;q=7}if((q|0)==7)s=X(r^h[m>>0],1540483477)|0;m=X(s>>>13^s,1540483477)|0;s=m>>>15^m;m=a+4|0;r=f[m>>2]|0;p=(r|0)==0;a:do if(!p){o=r+-1|0;l=(o&r|0)==0;if(!l)if(s>>>0>>0)t=s;else t=(s>>>0)%(r>>>0)|0;else t=s&o;e=f[(f[a>>2]|0)+(t<<2)>>2]|0;if((e|0)!=0?(j=f[e>>2]|0,(j|0)!=0):0){e=(i|0)==0;if(l){if(e){l=j;while(1){d=f[l+4>>2]|0;if(!((d|0)==(s|0)|(d&o|0)==(t|0))){u=t;break a}d=b[l+8+11>>0]|0;if(!((d<<24>>24<0?f[l+12>>2]|0:d&255)|0)){v=l;break}l=f[l>>2]|0;if(!l){u=t;break a}}w=v+20|0;return w|0}else x=j;b:while(1){l=f[x+4>>2]|0;if(!((l|0)==(s|0)|(l&o|0)==(t|0))){u=t;break a}l=x+8|0;d=b[l+11>>0]|0;k=d<<24>>24<0;y=d&255;do if(((k?f[x+12>>2]|0:y)|0)==(i|0)){d=f[l>>2]|0;if(k)if(!(Vk(d,g,i)|0)){v=x;q=63;break b}else break;if((b[g>>0]|0)==(d&255)<<24>>24){d=l;z=y;A=g;do{z=z+-1|0;d=d+1|0;if(!z){v=x;q=63;break b}A=A+1|0}while((b[d>>0]|0)==(b[A>>0]|0))}}while(0);x=f[x>>2]|0;if(!x){u=t;break a}}if((q|0)==63){w=v+20|0;return w|0}}if(e){o=j;while(1){y=f[o+4>>2]|0;if((y|0)!=(s|0)){if(y>>>0>>0)B=y;else B=(y>>>0)%(r>>>0)|0;if((B|0)!=(t|0)){u=t;break a}}y=b[o+8+11>>0]|0;if(!((y<<24>>24<0?f[o+12>>2]|0:y&255)|0)){v=o;break}o=f[o>>2]|0;if(!o){u=t;break a}}w=v+20|0;return w|0}else C=j;c:while(1){o=f[C+4>>2]|0;if((o|0)!=(s|0)){if(o>>>0>>0)D=o;else D=(o>>>0)%(r>>>0)|0;if((D|0)!=(t|0)){u=t;break a}}o=C+8|0;e=b[o+11>>0]|0;y=e<<24>>24<0;l=e&255;do if(((y?f[C+12>>2]|0:l)|0)==(i|0)){e=f[o>>2]|0;if(y)if(!(Vk(e,g,i)|0)){v=C;q=63;break c}else break;if((b[g>>0]|0)==(e&255)<<24>>24){e=o;k=l;A=g;do{k=k+-1|0;e=e+1|0;if(!k){v=C;q=63;break c}A=A+1|0}while((b[e>>0]|0)==(b[A>>0]|0))}}while(0);C=f[C>>2]|0;if(!C){u=t;break a}}if((q|0)==63){w=v+20|0;return w|0}}else u=t}else u=0;while(0);t=ln(24)|0;pj(t+8|0,c);f[t+20>>2]=0;f[t+4>>2]=s;f[t>>2]=0;c=a+12|0;E=$(((f[c>>2]|0)+1|0)>>>0);F=$(r>>>0);G=$(n[a+16>>2]);do if(p|$(G*F)>>0<3|(r+-1&r|0)!=0)&1;g=~~$(W($(E/G)))>>>0;ei(a,C>>>0>>0?g:C);C=f[m>>2]|0;g=C+-1|0;if(!(g&C)){H=C;I=g&s;break}if(s>>>0>>0){H=C;I=s}else{H=C;I=(s>>>0)%(C>>>0)|0}}else{H=r;I=u}while(0);u=(f[a>>2]|0)+(I<<2)|0;I=f[u>>2]|0;if(!I){r=a+8|0;f[t>>2]=f[r>>2];f[r>>2]=t;f[u>>2]=r;r=f[t>>2]|0;if(r|0){u=f[r+4>>2]|0;r=H+-1|0;if(r&H)if(u>>>0>>0)J=u;else J=(u>>>0)%(H>>>0)|0;else J=u&r;K=(f[a>>2]|0)+(J<<2)|0;q=61}}else{f[t>>2]=f[I>>2];K=I;q=61}if((q|0)==61)f[K>>2]=t;f[c>>2]=(f[c>>2]|0)+1;v=t;w=v+20|0;return w|0}function Fc(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var g=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0.0,q=0.0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0.0,G=0.0,H=0,J=0,K=0,L=0,M=0,N=0,O=0.0,P=0,Q=0.0,R=0.0,S=0,T=0.0,U=0,V=0,W=0,X=0.0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0.0,da=0,ea=0.0;g=a+4|0;i=f[g>>2]|0;j=a+100|0;if(i>>>0<(f[j>>2]|0)>>>0){f[g>>2]=i+1;k=h[i>>0]|0;l=0}else{k=Si(a)|0;l=0}a:while(1){switch(k|0){case 46:{m=8;break a;break}case 48:break;default:{n=0;o=0;p=1.0;q=0.0;r=0;s=k;t=l;u=0;v=0;w=0;x=0;break a}}i=f[g>>2]|0;if(i>>>0<(f[j>>2]|0)>>>0){f[g>>2]=i+1;k=h[i>>0]|0;l=1;continue}else{k=Si(a)|0;l=1;continue}}if((m|0)==8){k=f[g>>2]|0;if(k>>>0<(f[j>>2]|0)>>>0){f[g>>2]=k+1;y=h[k>>0]|0}else y=Si(a)|0;if((y|0)==48){k=0;i=0;while(1){z=f[g>>2]|0;if(z>>>0<(f[j>>2]|0)>>>0){f[g>>2]=z+1;A=h[z>>0]|0}else A=Si(a)|0;z=Vn(k|0,i|0,-1,-1)|0;B=I;if((A|0)==48){k=z;i=B}else{n=1;o=0;p=1.0;q=0.0;r=0;s=A;t=1;u=0;v=0;w=z;x=B;break}}}else{n=1;o=0;p=1.0;q=0.0;r=0;s=y;t=l;u=0;v=0;w=0;x=0}}while(1){l=s+-48|0;y=s|32;if(l>>>0>=10){A=(s|0)==46;if(!(A|(y+-97|0)>>>0<6)){C=s;break}if(A)if(!n){D=1;E=o;F=p;G=q;H=r;J=t;K=v;L=u;M=v;N=u}else{C=46;break}else m=20}else m=20;if((m|0)==20){m=0;A=(s|0)>57?y+-87|0:l;do if(!((u|0)<0|(u|0)==0&v>>>0<8))if((u|0)<0|(u|0)==0&v>>>0<14){O=p*.0625;P=o;Q=O;R=q+O*+(A|0);S=r;break}else{l=(o|0)!=0|(A|0)==0;P=l?o:1;Q=p;R=l?q:q+p*.5;S=r;break}else{P=o;Q=p;R=q;S=A+(r<<4)|0}while(0);A=Vn(v|0,u|0,1,0)|0;D=n;E=P;F=Q;G=R;H=S;J=1;K=w;L=x;M=A;N=I}A=f[g>>2]|0;if(A>>>0<(f[j>>2]|0)>>>0){f[g>>2]=A+1;n=D;o=E;p=F;q=G;r=H;s=h[A>>0]|0;t=J;u=N;v=M;w=K;x=L;continue}else{n=D;o=E;p=F;q=G;r=H;s=Si(a)|0;t=J;u=N;v=M;w=K;x=L;continue}}do if(!t){L=(f[j>>2]|0)==0;if(!L)f[g>>2]=(f[g>>2]|0)+-1;if(e){if(!L)f[g>>2]=(f[g>>2]|0)+-1;if(!((n|0)==0|L))f[g>>2]=(f[g>>2]|0)+-1}else Ym(a,0);T=+(d|0)*0.0}else{L=(n|0)==0;K=L?v:w;M=L?u:x;if((u|0)<0|(u|0)==0&v>>>0<8){L=r;N=v;J=u;while(1){s=L<<4;H=N;N=Vn(N|0,J|0,1,0)|0;if(!((J|0)<0|(J|0)==0&H>>>0<7)){U=s;break}else{L=s;J=I}}}else U=r;if((C|32|0)==112){J=Re(a,e)|0;L=I;if((J|0)==0&(L|0)==-2147483648){if(!e){Ym(a,0);T=0.0;break}if(!(f[j>>2]|0)){V=0;W=0}else{f[g>>2]=(f[g>>2]|0)+-1;V=0;W=0}}else{V=J;W=L}}else if(!(f[j>>2]|0)){V=0;W=0}else{f[g>>2]=(f[g>>2]|0)+-1;V=0;W=0}L=Tn(K|0,M|0,2)|0;J=Vn(L|0,I|0,-32,-1)|0;L=Vn(J|0,I|0,V|0,W|0)|0;J=I;if(!U){T=+(d|0)*0.0;break}N=0-c|0;s=((N|0)<0)<<31>>31;if((J|0)>(s|0)|(J|0)==(s|0)&L>>>0>N>>>0){N=Vq()|0;f[N>>2]=34;T=+(d|0)*1797693134862315708145274.0e284*1797693134862315708145274.0e284;break}N=c+-106|0;s=((N|0)<0)<<31>>31;if((J|0)<(s|0)|(J|0)==(s|0)&L>>>0>>0){N=Vq()|0;f[N>>2]=34;T=+(d|0)*2.2250738585072014e-308*2.2250738585072014e-308;break}if((U|0)>-1){G=q;N=U;s=L;H=J;while(1){E=!(G>=.5);o=N<<1|(E^1)&1;F=G+(E?G:G+-1.0);E=Vn(s|0,H|0,-1,-1)|0;D=I;if((o|0)>-1){G=F;N=o;s=E;H=D}else{X=F;Y=o;Z=E;_=D;break}}}else{X=q;Y=U;Z=L;_=J}H=((b|0)<0)<<31>>31;s=Xn(32,0,c|0,((c|0)<0)<<31>>31|0)|0;N=Vn(s|0,I|0,Z|0,_|0)|0;s=I;if((s|0)<(H|0)|(s|0)==(H|0)&N>>>0>>0)if((N|0)>0){$=N;m=59}else{aa=0;ba=84;m=61}else{$=b;m=59}if((m|0)==59)if(($|0)<53){aa=$;ba=84-$|0;m=61}else{ca=0.0;da=$;ea=+(d|0)}if((m|0)==61){G=+(d|0);ca=+rq(+bk(1.0,ba),G);da=aa;ea=G}N=(Y&1|0)==0&(X!=0.0&(da|0)<32);G=(N?0.0:X)*ea+(ca+ea*+((Y+(N&1)|0)>>>0))-ca;if(!(G!=0.0)){N=Vq()|0;f[N>>2]=34}T=+sq(G,Z)}while(0);return +T}function Gc(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0;g=u;u=u+16|0;h=g+4|0;i=g;if(!(Gh(a,d)|0)){j=0;u=g;return j|0}d=a+84|0;k=f[d>>2]|0;l=a+88|0;m=f[l>>2]|0;if((m|0)!=(k|0))f[l>>2]=m+(~((m+-4-k|0)>>>2)<<2);f[d>>2]=0;f[l>>2]=0;f[a+92>>2]=0;if(k|0)Oq(k);k=a+72|0;l=f[k>>2]|0;d=a+76|0;if((f[d>>2]|0)!=(l|0))f[d>>2]=l;f[k>>2]=0;f[d>>2]=0;f[a+80>>2]=0;if(l|0)Oq(l);l=a+64|0;d=f[l>>2]|0;if((f[d+4>>2]|0)!=(f[d>>2]|0)){k=a+12|0;m=e+84|0;n=e+68|0;o=c+96|0;p=a+24|0;q=0;r=d;do{f[i>>2]=(q>>>0)/3|0;f[h>>2]=f[i>>2];d=_j(r,h)|0;r=f[l>>2]|0;do if(!d){s=f[(f[r+12>>2]|0)+(q<<2)>>2]|0;if((s|0)==-1){t=(f[a>>2]|0)+(q>>>5<<2)|0;f[t>>2]=f[t>>2]|1<<(q&31);t=q+1|0;v=((t>>>0)%3|0|0)==0?q+-2|0:t;if((v|0)==-1)w=-1;else w=f[(f[r>>2]|0)+(v<<2)>>2]|0;v=(f[k>>2]|0)+(w>>>5<<2)|0;f[v>>2]=f[v>>2]|1<<(w&31);v=(((q>>>0)%3|0|0)==0?2:-1)+q|0;if((v|0)==-1)x=-1;else x=f[(f[r>>2]|0)+(v<<2)>>2]|0;v=(f[k>>2]|0)+(x>>>5<<2)|0;f[v>>2]=f[v>>2]|1<<(x&31);break}if(s>>>0>=q>>>0){v=q+1|0;t=((v>>>0)%3|0|0)==0?q+-2|0:v;y=s+(((s>>>0)%3|0|0)==0?2:-1)|0;z=(t|0)==-1;if(!(b[m>>0]|0)){if(z)A=-1;else A=f[(f[o>>2]|0)+(((t|0)/3|0)*12|0)+(((t|0)%3|0)<<2)>>2]|0;B=(y|0)==-1;if(B)C=-1;else C=f[(f[o>>2]|0)+(((y|0)/3|0)*12|0)+(((y|0)%3|0)<<2)>>2]|0;D=f[n>>2]|0;if((f[D+(A<<2)>>2]|0)==(f[D+(C<<2)>>2]|0)){E=t+1|0;if(z)F=-1;else F=((E>>>0)%3|0|0)==0?t+-2|0:E;do if(!B)if(!((y>>>0)%3|0)){G=y+2|0;break}else{G=y+-1|0;break}else G=-1;while(0);if((F|0)==-1)H=-1;else H=f[(f[o>>2]|0)+(((F|0)/3|0)*12|0)+(((F|0)%3|0)<<2)>>2]|0;if((G|0)==-1)I=-1;else I=f[(f[o>>2]|0)+(((G|0)/3|0)*12|0)+(((G|0)%3|0)<<2)>>2]|0;if((f[D+(H<<2)>>2]|0)==(f[D+(I<<2)>>2]|0))break}}else{if(z)J=-1;else J=f[(f[o>>2]|0)+(((t|0)/3|0)*12|0)+(((t|0)%3|0)<<2)>>2]|0;B=(y|0)==-1;if(B)K=-1;else K=f[(f[o>>2]|0)+(((y|0)/3|0)*12|0)+(((y|0)%3|0)<<2)>>2]|0;if((J|0)==(K|0)){E=t+1|0;if(z)L=-1;else L=((E>>>0)%3|0|0)==0?t+-2|0:E;do if(!B)if(!((y>>>0)%3|0)){M=y+2|0;break}else{M=y+-1|0;break}else M=-1;while(0);if((L|0)==-1)N=-1;else N=f[(f[o>>2]|0)+(((L|0)/3|0)*12|0)+(((L|0)%3|0)<<2)>>2]|0;if((M|0)==-1)O=-1;else O=f[(f[o>>2]|0)+(((M|0)/3|0)*12|0)+(((M|0)%3|0)<<2)>>2]|0;if((N|0)==(O|0))break}}b[p>>0]=0;y=f[a>>2]|0;B=y+(q>>>5<<2)|0;f[B>>2]=f[B>>2]|1<<(q&31);B=y+(s>>>5<<2)|0;f[B>>2]=f[B>>2]|1<<(s&31);B=((v>>>0)%3|0|0)==0?q+-2|0:v;if((B|0)==-1)P=-1;else P=f[(f[r>>2]|0)+(B<<2)>>2]|0;B=(f[k>>2]|0)+(P>>>5<<2)|0;f[B>>2]=f[B>>2]|1<<(P&31);B=(((q>>>0)%3|0|0)==0?2:-1)+q|0;if((B|0)==-1)Q=-1;else Q=f[(f[r>>2]|0)+(B<<2)>>2]|0;B=(f[k>>2]|0)+(Q>>>5<<2)|0;f[B>>2]=f[B>>2]|1<<(Q&31);B=s+1|0;y=((B>>>0)%3|0|0)==0?s+-2|0:B;if((y|0)==-1)R=-1;else R=f[(f[r>>2]|0)+(y<<2)>>2]|0;y=(f[k>>2]|0)+(R>>>5<<2)|0;f[y>>2]=f[y>>2]|1<<(R&31);y=(((s>>>0)%3|0|0)==0?2:-1)+s|0;if((y|0)==-1)S=-1;else S=f[(f[r>>2]|0)+(y<<2)>>2]|0;y=(f[k>>2]|0)+(S>>>5<<2)|0;f[y>>2]=f[y>>2]|1<<(S&31)}}while(0);q=q+1|0}while(q>>>0<(f[r+4>>2]|0)-(f[r>>2]|0)>>2>>>0)}if((c|0)!=0&(e|0)!=0){Qc(a,c,e);j=1;u=g;return j|0}else{md(a,0,0);j=1;u=g;return j|0}return 0}function Hc(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0;d=u;u=u+32|0;e=d+12|0;g=d+8|0;h=d+4|0;i=d;j=a+8|0;a:do if(f[j>>2]|0?(k=f[a>>2]|0,l=a+4|0,f[a>>2]=l,f[(f[l>>2]|0)+8>>2]=0,f[l>>2]=0,f[j>>2]=0,m=f[k+4>>2]|0,n=(m|0)==0?k:m,n|0):0){m=a+4|0;k=n;n=f[b>>2]|0;while(1){if((n|0)==(f[c>>2]|0))break;o=k+16|0;f[o>>2]=f[n+16>>2];if((k|0)!=(n|0)){f[h>>2]=f[n+20>>2];f[i>>2]=n+24;f[g>>2]=f[h>>2];f[e>>2]=f[i>>2];Oc(k+20|0,g,e)}p=k+8|0;q=f[p>>2]|0;do if(q){r=f[q>>2]|0;if((r|0)==(k|0)){f[q>>2]=0;s=f[q+4>>2]|0;if(!s){t=q;break}else v=s;while(1){s=f[v>>2]|0;if(s|0){v=s;continue}s=f[v+4>>2]|0;if(!s)break;else v=s}t=v;break}else{f[q+4>>2]=0;if(!r){t=q;break}else w=r;while(1){s=f[w>>2]|0;if(s|0){w=s;continue}s=f[w+4>>2]|0;if(!s)break;else w=s}t=w;break}}else t=0;while(0);q=f[l>>2]|0;do if(q){r=f[o>>2]|0;s=q;while(1){if((r|0)<(f[s+16>>2]|0)){x=f[s>>2]|0;if(!x){y=22;break}else z=x}else{A=s+4|0;x=f[A>>2]|0;if(!x){y=25;break}else z=x}s=z}if((y|0)==22){y=0;B=s;C=s;break}else if((y|0)==25){y=0;B=s;C=A;break}}else{B=l;C=l}while(0);f[k>>2]=0;f[k+4>>2]=0;f[p>>2]=B;f[C>>2]=k;q=f[f[a>>2]>>2]|0;if(!q)D=k;else{f[a>>2]=q;D=f[C>>2]|0}Oe(f[m>>2]|0,D);f[j>>2]=(f[j>>2]|0)+1;q=f[n+4>>2]|0;if(!q){o=n+8|0;r=f[o>>2]|0;if((f[r>>2]|0)==(n|0))E=r;else{r=o;do{o=f[r>>2]|0;r=o+8|0;x=f[r>>2]|0}while((f[x>>2]|0)!=(o|0));E=x}}else{r=q;while(1){p=f[r>>2]|0;if(!p)break;else r=p}E=r}f[b>>2]=E;if(!t)break a;else{k=t;n=E}}n=f[k+8>>2]|0;if(!n)F=k;else{m=n;while(1){n=f[m+8>>2]|0;if(!n)break;else m=n}F=m}Oj(a,F)}while(0);F=f[b>>2]|0;E=f[c>>2]|0;if((F|0)==(E|0)){u=d;return}c=a+4|0;t=a+4|0;D=F;while(1){Kg(e,a,D+16|0);F=f[c>>2]|0;do if(F){C=f[e>>2]|0;B=f[C+16>>2]|0;A=F;while(1){if((B|0)<(f[A+16>>2]|0)){z=f[A>>2]|0;if(!z){y=43;break}else G=z}else{H=A+4|0;z=f[H>>2]|0;if(!z){y=46;break}else G=z}A=G}if((y|0)==43){y=0;I=A;J=A;K=C;break}else if((y|0)==46){y=0;I=A;J=H;K=C;break}}else{I=c;J=c;K=f[e>>2]|0}while(0);f[K>>2]=0;f[K+4>>2]=0;f[K+8>>2]=I;f[J>>2]=K;F=f[f[a>>2]>>2]|0;if(!F)L=K;else{f[a>>2]=F;L=f[J>>2]|0}Oe(f[t>>2]|0,L);f[j>>2]=(f[j>>2]|0)+1;F=f[D+4>>2]|0;if(!F){m=D+8|0;B=f[m>>2]|0;if((f[B>>2]|0)==(D|0))M=B;else{B=m;do{m=f[B>>2]|0;B=m+8|0;r=f[B>>2]|0}while((f[r>>2]|0)!=(m|0));M=r}}else{B=F;while(1){r=f[B>>2]|0;if(!r)break;else B=r}M=B}f[b>>2]=M;if((M|0)==(E|0))break;else D=M}u=d;return}function Ic(a,b,c,d,e,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0;g=u;u=u+32|0;d=g+16|0;h=g+8|0;i=g;j=f[a+28>>2]|0;k=f[a+32>>2]|0;l=e>>>0>1073741823?-1:e<<2;m=Lq(l)|0;sj(m|0,0,l|0)|0;n=Lq(l)|0;sj(n|0,0,l|0)|0;l=a+36|0;o=f[l>>2]|0;p=f[o+4>>2]|0;q=f[o>>2]|0;r=p-q|0;a:do if((r|0)>4){s=r>>2;t=(e|0)>0;v=a+8|0;w=h+4|0;x=i+4|0;y=d+4|0;z=m+4|0;A=h+4|0;B=i+4|0;C=d+4|0;D=j+12|0;E=e<<2;F=s+-1|0;if(p-q>>2>>>0>F>>>0){G=s;H=F;I=q}else{J=o;aq(J)}while(1){F=f[I+(H<<2)>>2]|0;if(t)sj(m|0,0,E|0)|0;if((F|0)!=-1){s=f[D>>2]|0;K=0;L=F;while(1){M=f[s+(L<<2)>>2]|0;if((M|0)!=-1){N=f[j>>2]|0;O=f[k>>2]|0;P=f[O+(f[N+(M<<2)>>2]<<2)>>2]|0;Q=M+1|0;R=((Q>>>0)%3|0|0)==0?M+-2|0:Q;if((R|0)==-1)S=-1;else S=f[N+(R<<2)>>2]|0;R=f[O+(S<<2)>>2]|0;Q=(((M>>>0)%3|0|0)==0?2:-1)+M|0;if((Q|0)==-1)T=-1;else T=f[N+(Q<<2)>>2]|0;Q=f[O+(T<<2)>>2]|0;if((P|0)<(H|0)&(R|0)<(H|0)&(Q|0)<(H|0)){O=X(P,e)|0;P=X(R,e)|0;R=X(Q,e)|0;if(t){Q=0;do{f[n+(Q<<2)>>2]=(f[b+(Q+R<<2)>>2]|0)+(f[b+(Q+P<<2)>>2]|0)-(f[b+(Q+O<<2)>>2]|0);Q=Q+1|0}while((Q|0)!=(e|0));if(t){Q=0;do{O=m+(Q<<2)|0;f[O>>2]=(f[O>>2]|0)+(f[n+(Q<<2)>>2]|0);Q=Q+1|0}while((Q|0)!=(e|0))}}U=K+1|0}else U=K}else U=K;Q=(((L>>>0)%3|0|0)==0?2:-1)+L|0;do if((Q|0)!=-1?(O=f[s+(Q<<2)>>2]|0,(O|0)!=-1):0)if(!((O>>>0)%3|0)){V=O+2|0;break}else{V=O+-1|0;break}else V=-1;while(0);L=(V|0)==(F|0)?-1:V;if((L|0)==-1)break;else K=U}K=X(H,e)|0;if(!U){W=K;Y=30}else{if(t){L=0;do{F=m+(L<<2)|0;f[F>>2]=(f[F>>2]|0)/(U|0)|0;L=L+1|0}while((L|0)!=(e|0))}L=b+(K<<2)|0;F=c+(K<<2)|0;s=f[L+4>>2]|0;Q=f[m>>2]|0;O=f[z>>2]|0;f[h>>2]=f[L>>2];f[A>>2]=s;f[i>>2]=Q;f[B>>2]=O;Od(d,v,h,i);f[F>>2]=f[d>>2];f[F+4>>2]=f[C>>2]}}else{W=X(H,e)|0;Y=30}if((Y|0)==30){Y=0;F=b+(W<<2)|0;O=b+((X(G+-2|0,e)|0)<<2)|0;Q=c+(W<<2)|0;s=f[F+4>>2]|0;L=f[O>>2]|0;P=f[O+4>>2]|0;f[h>>2]=f[F>>2];f[w>>2]=s;f[i>>2]=L;f[x>>2]=P;Od(d,v,h,i);f[Q>>2]=f[d>>2];f[Q+4>>2]=f[y>>2]}if((G|0)<=2)break a;Q=f[l>>2]|0;I=f[Q>>2]|0;P=H+-1|0;if((f[Q+4>>2]|0)-I>>2>>>0<=P>>>0){J=Q;break}else{Q=H;H=P;G=Q}}aq(J)}while(0);if((e|0)<=0){Z=a+8|0;_=b+4|0;$=f[b>>2]|0;aa=f[_>>2]|0;ba=m+4|0;ca=f[m>>2]|0;da=f[ba>>2]|0;f[h>>2]=$;ea=h+4|0;f[ea>>2]=aa;f[i>>2]=ca;fa=i+4|0;f[fa>>2]=da;Od(d,Z,h,i);ga=f[d>>2]|0;f[c>>2]=ga;ha=d+4|0;ia=f[ha>>2]|0;ja=c+4|0;f[ja>>2]=ia;Mq(n);Mq(m);u=g;return 1}sj(m|0,0,e<<2|0)|0;Z=a+8|0;_=b+4|0;$=f[b>>2]|0;aa=f[_>>2]|0;ba=m+4|0;ca=f[m>>2]|0;da=f[ba>>2]|0;f[h>>2]=$;ea=h+4|0;f[ea>>2]=aa;f[i>>2]=ca;fa=i+4|0;f[fa>>2]=da;Od(d,Z,h,i);ga=f[d>>2]|0;f[c>>2]=ga;ha=d+4|0;ia=f[ha>>2]|0;ja=c+4|0;f[ja>>2]=ia;Mq(n);Mq(m);u=g;return 1}function Jc(a,b,c,d,e,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0;g=a+8|0;Mh(g,b,d,e);d=e>>>0>1073741823?-1:e<<2;h=Lq(d)|0;sj(h|0,0,d|0)|0;d=f[a+48>>2]|0;i=f[a+56>>2]|0;j=f[i>>2]|0;k=(f[i+4>>2]|0)-j|0;l=k>>2;a:do if((k|0)>4){m=f[a+52>>2]|0;n=a+16|0;o=a+32|0;p=a+12|0;q=a+28|0;r=a+20|0;s=a+24|0;t=d+12|0;u=(e|0)>0;v=j;w=l;while(1){x=w;w=w+-1|0;if(l>>>0<=w>>>0)break;y=f[v+(w<<2)>>2]|0;z=X(w,e)|0;if((y|0)!=-1?(A=f[(f[t>>2]|0)+(y<<2)>>2]|0,(A|0)!=-1):0){y=f[d>>2]|0;B=f[m>>2]|0;C=f[B+(f[y+(A<<2)>>2]<<2)>>2]|0;D=A+1|0;E=((D>>>0)%3|0|0)==0?A+-2|0:D;if((E|0)==-1)F=-1;else F=f[y+(E<<2)>>2]|0;E=f[B+(F<<2)>>2]|0;D=(((A>>>0)%3|0|0)==0?2:-1)+A|0;if((D|0)==-1)G=-1;else G=f[y+(D<<2)>>2]|0;D=f[B+(G<<2)>>2]|0;if((C|0)<(w|0)&(E|0)<(w|0)&(D|0)<(w|0)){B=X(C,e)|0;C=X(E,e)|0;E=X(D,e)|0;if(u){D=0;do{f[h+(D<<2)>>2]=(f[b+(D+E<<2)>>2]|0)+(f[b+(D+C<<2)>>2]|0)-(f[b+(D+B<<2)>>2]|0);D=D+1|0}while((D|0)!=(e|0))}D=b+(z<<2)|0;B=c+(z<<2)|0;C=f[g>>2]|0;if((C|0)>0){E=0;y=h;A=C;while(1){if((A|0)>0){C=0;do{H=f[y+(C<<2)>>2]|0;I=f[n>>2]|0;if((H|0)>(I|0)){J=f[o>>2]|0;f[J+(C<<2)>>2]=I;K=J}else{J=f[p>>2]|0;I=f[o>>2]|0;f[I+(C<<2)>>2]=(H|0)<(J|0)?J:H;K=I}C=C+1|0}while((C|0)<(f[g>>2]|0));L=K}else L=f[o>>2]|0;C=(f[D+(E<<2)>>2]|0)-(f[L+(E<<2)>>2]|0)|0;I=B+(E<<2)|0;f[I>>2]=C;if((C|0)>=(f[q>>2]|0)){if((C|0)>(f[s>>2]|0)){M=C-(f[r>>2]|0)|0;N=42}}else{M=(f[r>>2]|0)+C|0;N=42}if((N|0)==42){N=0;f[I>>2]=M}E=E+1|0;A=f[g>>2]|0;if((E|0)>=(A|0))break;else y=L}}}else N=16}else N=16;if((N|0)==16?(N=0,y=b+(z<<2)|0,A=c+(z<<2)|0,E=f[g>>2]|0,(E|0)>0):0){B=0;D=b+((X(x+-2|0,e)|0)<<2)|0;I=E;while(1){if((I|0)>0){E=0;do{C=f[D+(E<<2)>>2]|0;H=f[n>>2]|0;if((C|0)>(H|0)){J=f[o>>2]|0;f[J+(E<<2)>>2]=H;O=J}else{J=f[p>>2]|0;H=f[o>>2]|0;f[H+(E<<2)>>2]=(C|0)<(J|0)?J:C;O=H}E=E+1|0}while((E|0)<(f[g>>2]|0));P=O}else P=f[o>>2]|0;E=(f[y+(B<<2)>>2]|0)-(f[P+(B<<2)>>2]|0)|0;H=A+(B<<2)|0;f[H>>2]=E;if((E|0)>=(f[q>>2]|0)){if((E|0)>(f[s>>2]|0)){Q=E-(f[r>>2]|0)|0;N=29}}else{Q=(f[r>>2]|0)+E|0;N=29}if((N|0)==29){N=0;f[H>>2]=Q}B=B+1|0;I=f[g>>2]|0;if((B|0)>=(I|0))break;else D=P}}if((x|0)<=2)break a}aq(i)}while(0);if((e|0)>0)sj(h|0,0,e<<2|0)|0;e=f[g>>2]|0;if((e|0)<=0){Mq(h);return 1}i=a+16|0;P=a+32|0;Q=a+12|0;O=a+28|0;L=a+20|0;M=a+24|0;a=0;K=h;G=e;while(1){if((G|0)>0){e=0;do{F=f[K+(e<<2)>>2]|0;d=f[i>>2]|0;if((F|0)>(d|0)){l=f[P>>2]|0;f[l+(e<<2)>>2]=d;R=l}else{l=f[Q>>2]|0;d=f[P>>2]|0;f[d+(e<<2)>>2]=(F|0)<(l|0)?l:F;R=d}e=e+1|0}while((e|0)<(f[g>>2]|0));S=R}else S=f[P>>2]|0;e=(f[b+(a<<2)>>2]|0)-(f[S+(a<<2)>>2]|0)|0;d=c+(a<<2)|0;f[d>>2]=e;if((e|0)>=(f[O>>2]|0)){if((e|0)>(f[M>>2]|0)){T=e-(f[L>>2]|0)|0;N=56}}else{T=(f[L>>2]|0)+e|0;N=56}if((N|0)==56){N=0;f[d>>2]=T}a=a+1|0;G=f[g>>2]|0;if((a|0)>=(G|0))break;else K=S}Mq(h);return 1}function Kc(a,b,c,d,e,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0;g=u;u=u+32|0;d=g+16|0;h=g+8|0;i=g;j=f[a+28>>2]|0;k=f[a+32>>2]|0;l=e>>>0>1073741823?-1:e<<2;m=Lq(l)|0;sj(m|0,0,l|0)|0;n=Lq(l)|0;sj(n|0,0,l|0)|0;l=a+36|0;o=f[l>>2]|0;p=f[o+4>>2]|0;q=f[o>>2]|0;r=p-q|0;a:do if((r|0)>4){s=r>>2;t=(e|0)>0;v=a+8|0;w=h+4|0;x=i+4|0;y=d+4|0;z=m+4|0;A=h+4|0;B=i+4|0;C=d+4|0;D=j+64|0;E=j+28|0;F=e<<2;G=s+-1|0;if(p-q>>2>>>0>G>>>0){H=s;I=G;J=q}else{K=o;aq(K)}while(1){G=f[J+(I<<2)>>2]|0;if(t)sj(m|0,0,F|0)|0;if((G|0)!=-1){s=f[j>>2]|0;L=0;M=G;while(1){if(((f[s+(M>>>5<<2)>>2]&1<<(M&31)|0)==0?(N=f[(f[(f[D>>2]|0)+12>>2]|0)+(M<<2)>>2]|0,(N|0)!=-1):0)?(O=f[E>>2]|0,P=f[k>>2]|0,Q=f[P+(f[O+(N<<2)>>2]<<2)>>2]|0,R=N+1|0,S=f[P+(f[O+((((R>>>0)%3|0|0)==0?N+-2|0:R)<<2)>>2]<<2)>>2]|0,R=f[P+(f[O+((((N>>>0)%3|0|0)==0?2:-1)+N<<2)>>2]<<2)>>2]|0,(Q|0)<(I|0)&(S|0)<(I|0)&(R|0)<(I|0)):0){N=X(Q,e)|0;Q=X(S,e)|0;S=X(R,e)|0;if(t){R=0;do{f[n+(R<<2)>>2]=(f[b+(R+S<<2)>>2]|0)+(f[b+(R+Q<<2)>>2]|0)-(f[b+(R+N<<2)>>2]|0);R=R+1|0}while((R|0)!=(e|0));if(t){R=0;do{N=m+(R<<2)|0;f[N>>2]=(f[N>>2]|0)+(f[n+(R<<2)>>2]|0);R=R+1|0}while((R|0)!=(e|0))}}T=L+1|0}else T=L;R=(((M>>>0)%3|0|0)==0?2:-1)+M|0;do if(((R|0)!=-1?(f[s+(R>>>5<<2)>>2]&1<<(R&31)|0)==0:0)?(N=f[(f[(f[D>>2]|0)+12>>2]|0)+(R<<2)>>2]|0,(N|0)!=-1):0)if(!((N>>>0)%3|0)){U=N+2|0;break}else{U=N+-1|0;break}else U=-1;while(0);M=(U|0)==(G|0)?-1:U;if((M|0)==-1)break;else L=T}L=X(I,e)|0;if(!T){V=L;W=28}else{if(t){M=0;do{G=m+(M<<2)|0;f[G>>2]=(f[G>>2]|0)/(T|0)|0;M=M+1|0}while((M|0)!=(e|0))}M=b+(L<<2)|0;G=c+(L<<2)|0;s=f[M+4>>2]|0;R=f[m>>2]|0;N=f[z>>2]|0;f[h>>2]=f[M>>2];f[A>>2]=s;f[i>>2]=R;f[B>>2]=N;Od(d,v,h,i);f[G>>2]=f[d>>2];f[G+4>>2]=f[C>>2]}}else{V=X(I,e)|0;W=28}if((W|0)==28){W=0;G=b+(V<<2)|0;N=b+((X(H+-2|0,e)|0)<<2)|0;R=c+(V<<2)|0;s=f[G+4>>2]|0;M=f[N>>2]|0;Q=f[N+4>>2]|0;f[h>>2]=f[G>>2];f[w>>2]=s;f[i>>2]=M;f[x>>2]=Q;Od(d,v,h,i);f[R>>2]=f[d>>2];f[R+4>>2]=f[y>>2]}if((H|0)<=2)break a;R=f[l>>2]|0;J=f[R>>2]|0;Q=I+-1|0;if((f[R+4>>2]|0)-J>>2>>>0<=Q>>>0){K=R;break}else{R=I;I=Q;H=R}}aq(K)}while(0);if((e|0)<=0){Y=a+8|0;Z=b+4|0;_=f[b>>2]|0;$=f[Z>>2]|0;aa=m+4|0;ba=f[m>>2]|0;ca=f[aa>>2]|0;f[h>>2]=_;da=h+4|0;f[da>>2]=$;f[i>>2]=ba;ea=i+4|0;f[ea>>2]=ca;Od(d,Y,h,i);fa=f[d>>2]|0;f[c>>2]=fa;ga=d+4|0;ha=f[ga>>2]|0;ia=c+4|0;f[ia>>2]=ha;Mq(n);Mq(m);u=g;return 1}sj(m|0,0,e<<2|0)|0;Y=a+8|0;Z=b+4|0;_=f[b>>2]|0;$=f[Z>>2]|0;aa=m+4|0;ba=f[m>>2]|0;ca=f[aa>>2]|0;f[h>>2]=_;da=h+4|0;f[da>>2]=$;f[i>>2]=ba;ea=i+4|0;f[ea>>2]=ca;Od(d,Y,h,i);fa=f[d>>2]|0;f[c>>2]=fa;ga=d+4|0;ha=f[ga>>2]|0;ia=c+4|0;f[ia>>2]=ha;Mq(n);Mq(m);u=g;return 1}function Lc(a,b,c,d,e,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0;g=a+8|0;Mh(g,b,d,e);d=e>>>0>1073741823?-1:e<<2;h=Lq(d)|0;sj(h|0,0,d|0)|0;d=f[a+48>>2]|0;i=f[a+56>>2]|0;j=f[i>>2]|0;k=(f[i+4>>2]|0)-j|0;l=k>>2;a:do if((k|0)>4){m=f[a+52>>2]|0;n=a+16|0;o=a+32|0;p=a+12|0;q=a+28|0;r=a+20|0;s=a+24|0;t=d+64|0;u=d+28|0;v=(e|0)>0;w=j;x=l;while(1){y=x;x=x+-1|0;if(l>>>0<=x>>>0)break;z=f[w+(x<<2)>>2]|0;A=X(x,e)|0;if((((z|0)!=-1?(f[(f[d>>2]|0)+(z>>>5<<2)>>2]&1<<(z&31)|0)==0:0)?(B=f[(f[(f[t>>2]|0)+12>>2]|0)+(z<<2)>>2]|0,(B|0)!=-1):0)?(z=f[u>>2]|0,C=f[m>>2]|0,D=f[C+(f[z+(B<<2)>>2]<<2)>>2]|0,E=B+1|0,F=f[C+(f[z+((((E>>>0)%3|0|0)==0?B+-2|0:E)<<2)>>2]<<2)>>2]|0,E=f[C+(f[z+((((B>>>0)%3|0|0)==0?2:-1)+B<<2)>>2]<<2)>>2]|0,(D|0)<(x|0)&(F|0)<(x|0)&(E|0)<(x|0)):0){B=X(D,e)|0;D=X(F,e)|0;F=X(E,e)|0;if(v){E=0;do{f[h+(E<<2)>>2]=(f[b+(E+F<<2)>>2]|0)+(f[b+(E+D<<2)>>2]|0)-(f[b+(E+B<<2)>>2]|0);E=E+1|0}while((E|0)!=(e|0))}E=b+(A<<2)|0;B=c+(A<<2)|0;D=f[g>>2]|0;if((D|0)>0){F=0;z=h;C=D;while(1){if((C|0)>0){D=0;do{G=f[z+(D<<2)>>2]|0;H=f[n>>2]|0;if((G|0)>(H|0)){I=f[o>>2]|0;f[I+(D<<2)>>2]=H;J=I}else{I=f[p>>2]|0;H=f[o>>2]|0;f[H+(D<<2)>>2]=(G|0)<(I|0)?I:G;J=H}D=D+1|0}while((D|0)<(f[g>>2]|0));K=J}else K=f[o>>2]|0;D=(f[E+(F<<2)>>2]|0)-(f[K+(F<<2)>>2]|0)|0;H=B+(F<<2)|0;f[H>>2]=D;if((D|0)>=(f[q>>2]|0)){if((D|0)>(f[s>>2]|0)){L=D-(f[r>>2]|0)|0;M=39}}else{L=(f[r>>2]|0)+D|0;M=39}if((M|0)==39){M=0;f[H>>2]=L}F=F+1|0;C=f[g>>2]|0;if((F|0)>=(C|0))break;else z=K}}}else M=13;if((M|0)==13?(M=0,z=b+(A<<2)|0,C=c+(A<<2)|0,F=f[g>>2]|0,(F|0)>0):0){B=0;E=b+((X(y+-2|0,e)|0)<<2)|0;H=F;while(1){if((H|0)>0){F=0;do{D=f[E+(F<<2)>>2]|0;G=f[n>>2]|0;if((D|0)>(G|0)){I=f[o>>2]|0;f[I+(F<<2)>>2]=G;N=I}else{I=f[p>>2]|0;G=f[o>>2]|0;f[G+(F<<2)>>2]=(D|0)<(I|0)?I:D;N=G}F=F+1|0}while((F|0)<(f[g>>2]|0));O=N}else O=f[o>>2]|0;F=(f[z+(B<<2)>>2]|0)-(f[O+(B<<2)>>2]|0)|0;G=C+(B<<2)|0;f[G>>2]=F;if((F|0)>=(f[q>>2]|0)){if((F|0)>(f[s>>2]|0)){P=F-(f[r>>2]|0)|0;M=26}}else{P=(f[r>>2]|0)+F|0;M=26}if((M|0)==26){M=0;f[G>>2]=P}B=B+1|0;H=f[g>>2]|0;if((B|0)>=(H|0))break;else E=O}}if((y|0)<=2)break a}aq(i)}while(0);if((e|0)>0)sj(h|0,0,e<<2|0)|0;e=f[g>>2]|0;if((e|0)<=0){Mq(h);return 1}i=a+16|0;O=a+32|0;P=a+12|0;N=a+28|0;K=a+20|0;L=a+24|0;a=0;J=h;d=e;while(1){if((d|0)>0){e=0;do{l=f[J+(e<<2)>>2]|0;j=f[i>>2]|0;if((l|0)>(j|0)){k=f[O>>2]|0;f[k+(e<<2)>>2]=j;Q=k}else{k=f[P>>2]|0;j=f[O>>2]|0;f[j+(e<<2)>>2]=(l|0)<(k|0)?k:l;Q=j}e=e+1|0}while((e|0)<(f[g>>2]|0));R=Q}else R=f[O>>2]|0;e=(f[b+(a<<2)>>2]|0)-(f[R+(a<<2)>>2]|0)|0;j=c+(a<<2)|0;f[j>>2]=e;if((e|0)>=(f[N>>2]|0)){if((e|0)>(f[L>>2]|0)){S=e-(f[K>>2]|0)|0;M=53}}else{S=(f[K>>2]|0)+e|0;M=53}if((M|0)==53){M=0;f[j>>2]=S}a=a+1|0;d=f[g>>2]|0;if((a|0)>=(d|0))break;else J=R}Mq(h);return 1}function Mc(a,c,d,e,g){a=a|0;c=c|0;d=d|0;e=e|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,J=0;h=u;u=u+48|0;i=h+28|0;j=h+24|0;k=h;l=h+12|0;m=h+40|0;if((c|0)<0){n=0;u=h;return n|0}if(!c){n=1;u=h;return n|0}o=(d|0)>1;p=o?d:1;f[k>>2]=0;d=k+4|0;f[d>>2]=0;f[k+8>>2]=0;gk(k,c);q=k+8|0;if(o){o=0;r=0;while(1){s=1;t=f[a+(r<<2)>>2]|0;do{v=f[a+(s+r<<2)>>2]|0;t=t>>>0>>0?v:t;s=s+1|0}while((s|0)!=(p|0));s=(_(t|0)|0)^31;v=t>>>0>o>>>0?t:o;w=(t|0)==0?1:s+1|0;f[i>>2]=w;s=f[d>>2]|0;if(s>>>0<(f[q>>2]|0)>>>0){f[s>>2]=w;f[d>>2]=s+4}else Ri(k,i);r=r+p|0;if((r|0)>=(c|0)){x=v;break}else o=v}}else{o=0;r=0;while(1){v=f[a+(o<<2)>>2]|0;s=(_(v|0)|0)^31;w=v>>>0>r>>>0?v:r;y=(v|0)==0?1:s+1|0;f[i>>2]=y;s=f[d>>2]|0;if(s>>>0<(f[q>>2]|0)>>>0){f[s>>2]=y;f[d>>2]=s+4}else Ri(k,i);o=o+p|0;if((o|0)>=(c|0)){x=w;break}else r=w}}f[l>>2]=0;r=l+4|0;f[r>>2]=0;f[l+8>>2]=0;o=f[k>>2]|0;q=(f[d>>2]|0)-o|0;w=q>>2;if(w){if(w>>>0>1073741823)aq(l);s=ln(q)|0;f[r>>2]=s;f[l>>2]=s;f[l+8>>2]=s+(w<<2);w=s;if((q|0)>0){y=s+(q>>>2<<2)|0;kh(s|0,o|0,q|0)|0;f[r>>2]=y;q=y-w>>2;if((y|0)==(s|0)){z=q;A=s;B=0;C=0}else{y=0;o=0;v=0;while(1){D=Vn(o|0,v|0,f[s+(y<<2)>>2]|0,0)|0;E=I;y=y+1|0;if(y>>>0>=q>>>0){z=q;A=s;B=D;C=E;break}else{o=D;v=E}}}}else{F=w;G=18}}else{F=0;G=18}if((G|0)==18){z=0;A=F;B=0;C=0}F=Jg(A,z,32,i)|0;z=I;A=f[i>>2]<<3;w=Tn(A|0,((A|0)<0)<<31>>31|0,1)|0;A=I;v=un(B|0,C|0,p|0,0)|0;C=Vn(F|0,z|0,v|0,I|0)|0;v=Vn(C|0,I|0,w|0,A|0)|0;A=I;w=f[l>>2]|0;if(w|0){l=f[r>>2]|0;if((l|0)!=(w|0))f[r>>2]=l+(~((l+-4-w|0)>>>2)<<2);Oq(w)}w=Jg(a,c,x,i)|0;l=f[i>>2]|0;r=((x-l|0)/64|0)+l<<3;C=l<<3;z=Vn(w|0,I|0,C|0,((C|0)<0)<<31>>31|0)|0;C=Vn(z|0,I|0,r|0,((r|0)<0)<<31>>31|0)|0;r=I;z=(_((x>>>0>1?x:1)|0)|0)^30;if(e){f[i>>2]=0;f[i+4>>2]=0;f[i+8>>2]=0;w=ln(32)|0;f[i>>2]=w;f[i+8>>2]=-2147483616;f[i+4>>2]=22;F=w;B=15964;o=F+22|0;do{b[F>>0]=b[B>>0]|0;F=F+1|0;B=B+1|0}while((F|0)<(o|0));b[w+22>>0]=0;w=(Jh(e,i)|0)==0;if((b[i+11>>0]|0)<0)Oq(f[i>>2]|0);if(!w){f[i>>2]=0;f[i+4>>2]=0;f[i+8>>2]=0;w=ln(32)|0;f[i>>2]=w;f[i+8>>2]=-2147483616;f[i+4>>2]=22;F=w;B=15964;o=F+22|0;do{b[F>>0]=b[B>>0]|0;F=F+1|0;B=B+1|0}while((F|0)<(o|0));b[w+22>>0]=0;w=Mk(e,i)|0;if((b[i+11>>0]|0)<0)Oq(f[i>>2]|0);H=w}else G=32}else G=32;if((G|0)==32)H=z>>>0<18&((A|0)>(r|0)|(A|0)==(r|0)&v>>>0>=C>>>0)&1;b[m>>0]=H;C=g+16|0;v=f[C+4>>2]|0;if(!((v|0)>0|(v|0)==0&(f[C>>2]|0)>>>0>0)){f[j>>2]=f[g+4>>2];f[i>>2]=f[j>>2];Me(g,i,m,m+1|0)|0}switch(H|0){case 0:{J=td(a,c,p,k,g)|0;break}case 1:{J=Tc(a,c,x,l,e,g)|0;break}default:J=0}g=f[k>>2]|0;if(g|0){k=f[d>>2]|0;if((k|0)!=(g|0))f[d>>2]=k+(~((k+-4-g|0)>>>2)<<2);Oq(g)}n=J;u=h;return n|0}function Nc(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;if((b|0)<0)return;c=a+12|0;d=f[c>>2]|0;e=f[a+8>>2]|0;g=e;h=d;if(d-e>>2>>>0<=b>>>0)return;e=g+(b<<2)|0;d=f[(f[e>>2]|0)+56>>2]|0;i=f[(f[g+(b<<2)>>2]|0)+60>>2]|0;g=e+4|0;if((g|0)!=(h|0)){j=g;g=e;do{k=f[j>>2]|0;f[j>>2]=0;l=f[g>>2]|0;f[g>>2]=k;if(l|0){k=l+88|0;m=f[k>>2]|0;f[k>>2]=0;if(m|0){k=f[m+8>>2]|0;if(k|0){n=m+12|0;if((f[n>>2]|0)!=(k|0))f[n>>2]=k;Oq(k)}Oq(m)}m=f[l+68>>2]|0;if(m|0){k=l+72|0;n=f[k>>2]|0;if((n|0)!=(m|0))f[k>>2]=n+(~((n+-4-m|0)>>>2)<<2);Oq(m)}m=l+64|0;n=f[m>>2]|0;f[m>>2]=0;if(n|0){m=f[n>>2]|0;if(m|0){k=n+4|0;if((f[k>>2]|0)!=(m|0))f[k>>2]=m;Oq(m)}Oq(n)}Oq(l)}j=j+4|0;g=g+4|0}while((j|0)!=(h|0));j=f[c>>2]|0;if((j|0)!=(g|0)){o=g;p=j;q=24}}else{o=e;p=h;q=24}if((q|0)==24){q=p;do{p=q+-4|0;f[c>>2]=p;h=f[p>>2]|0;f[p>>2]=0;if(h|0){p=h+88|0;e=f[p>>2]|0;f[p>>2]=0;if(e|0){p=f[e+8>>2]|0;if(p|0){j=e+12|0;if((f[j>>2]|0)!=(p|0))f[j>>2]=p;Oq(p)}Oq(e)}e=f[h+68>>2]|0;if(e|0){p=h+72|0;j=f[p>>2]|0;if((j|0)!=(e|0))f[p>>2]=j+(~((j+-4-e|0)>>>2)<<2);Oq(e)}e=h+64|0;j=f[e>>2]|0;f[e>>2]=0;if(j|0){e=f[j>>2]|0;if(e|0){p=j+4|0;if((f[p>>2]|0)!=(e|0))f[p>>2]=e;Oq(e)}Oq(j)}Oq(h)}q=f[c>>2]|0}while((q|0)!=(o|0))}o=f[a+4>>2]|0;a:do if(o|0){q=o+44|0;c=f[q>>2]|0;h=f[o+40>>2]|0;while(1){if((h|0)==(c|0))break a;r=h+4|0;if((f[(f[h>>2]|0)+40>>2]|0)==(i|0))break;else h=r}if((r|0)!=(c|0)){j=r;e=h;do{p=f[j>>2]|0;f[j>>2]=0;g=f[e>>2]|0;f[e>>2]=p;if(g|0){bj(g);Oq(g)}j=j+4|0;e=e+4|0}while((j|0)!=(c|0));j=f[q>>2]|0;if((j|0)==(e|0))break;else{s=e;t=j}}else{s=h;t=c}j=t;do{g=j+-4|0;f[q>>2]=g;p=f[g>>2]|0;f[g>>2]=0;if(p|0){bj(p);Oq(p)}j=f[q>>2]|0}while((j|0)!=(s|0))}while(0);b:do if((d|0)<5){s=f[a+20+(d*12|0)>>2]|0;t=a+20+(d*12|0)+4|0;r=f[t>>2]|0;i=r;c:do if((s|0)==(r|0))u=s;else{o=s;while(1){if((f[o>>2]|0)==(b|0)){u=o;break c}o=o+4|0;if((o|0)==(r|0))break b}}while(0);if((u|0)!=(r|0)){s=u+4|0;o=i-s|0;j=o>>2;if(!j)v=r;else{im(u|0,s|0,o|0)|0;v=f[t>>2]|0}o=u+(j<<2)|0;if((v|0)!=(o|0))f[t>>2]=v+(~((v+-4-o|0)>>>2)<<2)}}while(0);v=f[a+24>>2]|0;u=f[a+20>>2]|0;d=u;if((v|0)!=(u|0)){o=v-u>>2;u=0;do{v=d+(u<<2)|0;j=f[v>>2]|0;if((j|0)>(b|0))f[v>>2]=j+-1;u=u+1|0}while(u>>>0>>0)}o=f[a+36>>2]|0;u=f[a+32>>2]|0;d=u;if((o|0)!=(u|0)){j=o-u>>2;u=0;do{o=d+(u<<2)|0;v=f[o>>2]|0;if((v|0)>(b|0))f[o>>2]=v+-1;u=u+1|0}while(u>>>0>>0)}j=f[a+48>>2]|0;u=f[a+44>>2]|0;d=u;if((j|0)!=(u|0)){v=j-u>>2;u=0;do{j=d+(u<<2)|0;o=f[j>>2]|0;if((o|0)>(b|0))f[j>>2]=o+-1;u=u+1|0}while(u>>>0>>0)}v=f[a+60>>2]|0;u=f[a+56>>2]|0;d=u;if((v|0)!=(u|0)){o=v-u>>2;u=0;do{v=d+(u<<2)|0;j=f[v>>2]|0;if((j|0)>(b|0))f[v>>2]=j+-1;u=u+1|0}while(u>>>0>>0)}o=f[a+72>>2]|0;u=f[a+68>>2]|0;a=u;if((o|0)==(u|0))return;d=o-u>>2;u=0;do{o=a+(u<<2)|0;j=f[o>>2]|0;if((j|0)>(b|0))f[o>>2]=j+-1;u=u+1|0}while(u>>>0>>0);return}function Oc(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0;e=a+8|0;a:do if(f[e>>2]|0?(g=f[a>>2]|0,h=a+4|0,f[a>>2]=h,f[(f[h>>2]|0)+8>>2]=0,f[h>>2]=0,f[e>>2]=0,i=f[g+4>>2]|0,j=(i|0)==0?g:i,j|0):0){i=a+4|0;g=j;j=f[c>>2]|0;while(1){if((j|0)==(f[d>>2]|0))break;k=g+16|0;am(k,j+16|0)|0;am(g+28|0,j+28|0)|0;l=g+8|0;m=f[l>>2]|0;do if(m){n=f[m>>2]|0;if((n|0)==(g|0)){f[m>>2]=0;o=f[m+4>>2]|0;if(!o){p=m;break}else q=o;while(1){o=f[q>>2]|0;if(o|0){q=o;continue}o=f[q+4>>2]|0;if(!o)break;else q=o}p=q;break}else{f[m+4>>2]=0;if(!n){p=m;break}else r=n;while(1){o=f[r>>2]|0;if(o|0){r=o;continue}o=f[r+4>>2]|0;if(!o)break;else r=o}p=r;break}}else p=0;while(0);m=f[h>>2]|0;do if(m){n=b[k+11>>0]|0;o=n<<24>>24<0;s=o?f[g+20>>2]|0:n&255;n=o?f[k>>2]|0:k;o=m;while(1){t=o+16|0;u=b[t+11>>0]|0;v=u<<24>>24<0;w=v?f[o+20>>2]|0:u&255;u=w>>>0>>0?w:s;if((u|0)!=0?(x=Vk(n,v?f[t>>2]|0:t,u)|0,(x|0)!=0):0)if((x|0)<0)y=22;else y=24;else if(s>>>0>>0)y=22;else y=24;if((y|0)==22){y=0;w=f[o>>2]|0;if(!w){y=23;break}else z=w}else if((y|0)==24){y=0;A=o+4|0;w=f[A>>2]|0;if(!w){y=26;break}else z=w}o=z}if((y|0)==23){y=0;B=o;C=o;break}else if((y|0)==26){y=0;B=A;C=o;break}}else{B=h;C=h}while(0);f[g>>2]=0;f[g+4>>2]=0;f[l>>2]=C;f[B>>2]=g;m=f[f[a>>2]>>2]|0;if(!m)D=g;else{f[a>>2]=m;D=f[B>>2]|0}Oe(f[i>>2]|0,D);f[e>>2]=(f[e>>2]|0)+1;m=f[j+4>>2]|0;if(!m){k=j+8|0;s=f[k>>2]|0;if((f[s>>2]|0)==(j|0))E=s;else{s=k;do{k=f[s>>2]|0;s=k+8|0;n=f[s>>2]|0}while((f[n>>2]|0)!=(k|0));E=n}}else{s=m;while(1){l=f[s>>2]|0;if(!l)break;else s=l}E=s}f[c>>2]=E;if(!p)break a;else{g=p;j=E}}j=f[g+8>>2]|0;if(!j)F=g;else{i=j;while(1){j=f[i+8>>2]|0;if(!j)break;else i=j}F=i}Ej(a,F)}while(0);F=f[c>>2]|0;E=f[d>>2]|0;if((F|0)==(E|0))return;else G=F;while(1){bf(a,G+16|0)|0;F=f[G+4>>2]|0;if(!F){d=G+8|0;p=f[d>>2]|0;if((f[p>>2]|0)==(G|0))H=p;else{p=d;do{d=f[p>>2]|0;p=d+8|0;e=f[p>>2]|0}while((f[e>>2]|0)!=(d|0));H=e}}else{p=F;while(1){i=f[p>>2]|0;if(!i)break;else p=i}H=p}f[c>>2]=H;if((H|0)==(E|0))break;else G=H}return}function Pc(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0;b=u;u=u+32|0;c=b+4|0;d=b;e=a+16|0;g=f[e>>2]|0;if(g>>>0>112){f[e>>2]=g+-113;g=a+4|0;e=f[g>>2]|0;h=f[e>>2]|0;i=e+4|0;f[g>>2]=i;e=a+8|0;j=f[e>>2]|0;k=a+12|0;l=f[k>>2]|0;m=l;do if((j|0)==(l|0)){n=f[a>>2]|0;o=n;if(i>>>0>n>>>0){p=i;q=((p-o>>2)+1|0)/-2|0;r=i+(q<<2)|0;s=j-p|0;p=s>>2;if(!p)t=i;else{im(r|0,i|0,s|0)|0;t=f[g>>2]|0}s=r+(p<<2)|0;f[e>>2]=s;f[g>>2]=t+(q<<2);v=s;break}s=m-o>>1;o=(s|0)==0?1:s;if(o>>>0>1073741823){s=ra(8)|0;Oo(s,16035);f[s>>2]=7256;va(s|0,1112,110)}s=ln(o<<2)|0;q=s;p=s+(o>>>2<<2)|0;r=p;w=s+(o<<2)|0;if((i|0)==(j|0)){x=r;y=n}else{n=p;p=r;o=i;do{f[n>>2]=f[o>>2];n=p+4|0;p=n;o=o+4|0}while((o|0)!=(j|0));x=p;y=f[a>>2]|0}f[a>>2]=q;f[g>>2]=r;f[e>>2]=x;f[k>>2]=w;if(!y)v=x;else{Oq(y);v=f[e>>2]|0}}else v=j;while(0);f[v>>2]=h;f[e>>2]=(f[e>>2]|0)+4;u=b;return}e=a+8|0;h=f[e>>2]|0;v=a+4|0;j=h-(f[v>>2]|0)|0;y=a+12|0;x=f[y>>2]|0;k=x-(f[a>>2]|0)|0;if(j>>>0>=k>>>0){g=k>>1;k=(g|0)==0?1:g;f[c+12>>2]=0;f[c+16>>2]=a+12;if(k>>>0>1073741823){g=ra(8)|0;Oo(g,16035);f[g>>2]=7256;va(g|0,1112,110)}g=ln(k<<2)|0;f[c>>2]=g;i=g+(j>>2<<2)|0;j=c+8|0;f[j>>2]=i;m=c+4|0;f[m>>2]=i;i=c+12|0;f[i>>2]=g+(k<<2);k=ln(4068)|0;f[d>>2]=k;Ag(c,d);d=f[e>>2]|0;while(1){z=f[v>>2]|0;if((d|0)==(z|0))break;k=d+-4|0;ug(c,k);d=k}k=z;z=f[a>>2]|0;f[a>>2]=f[c>>2];f[c>>2]=z;f[v>>2]=f[m>>2];f[m>>2]=k;m=f[e>>2]|0;f[e>>2]=f[j>>2];f[j>>2]=m;g=f[y>>2]|0;f[y>>2]=f[i>>2];f[i>>2]=g;g=m;if((d|0)!=(g|0))f[j>>2]=g+(~((g+-4-k|0)>>>2)<<2);if(z|0)Oq(z);u=b;return}if((x|0)!=(h|0)){h=ln(4068)|0;f[c>>2]=h;Ag(a,c);u=b;return}h=ln(4068)|0;f[c>>2]=h;ug(a,c);c=f[v>>2]|0;h=f[c>>2]|0;x=c+4|0;f[v>>2]=x;c=f[e>>2]|0;z=f[y>>2]|0;k=z;do if((c|0)==(z|0)){g=f[a>>2]|0;j=g;if(x>>>0>g>>>0){d=x;m=((d-j>>2)+1|0)/-2|0;i=x+(m<<2)|0;t=c-d|0;d=t>>2;if(!d)A=x;else{im(i|0,x|0,t|0)|0;A=f[v>>2]|0}t=i+(d<<2)|0;f[e>>2]=t;f[v>>2]=A+(m<<2);B=t;break}t=k-j>>1;j=(t|0)==0?1:t;if(j>>>0>1073741823){t=ra(8)|0;Oo(t,16035);f[t>>2]=7256;va(t|0,1112,110)}t=ln(j<<2)|0;m=t;d=t+(j>>>2<<2)|0;i=d;l=t+(j<<2)|0;if((x|0)==(c|0)){C=i;D=g}else{g=d;d=i;j=x;do{f[g>>2]=f[j>>2];g=d+4|0;d=g;j=j+4|0}while((j|0)!=(c|0));C=d;D=f[a>>2]|0}f[a>>2]=m;f[v>>2]=i;f[e>>2]=C;f[y>>2]=l;if(!D)B=C;else{Oq(D);B=f[e>>2]|0}}else B=c;while(0);f[B>>2]=h;f[e>>2]=(f[e>>2]|0)+4;u=b;return}function Qc(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0;e=u;u=u+16|0;g=e+8|0;h=e+4|0;i=e;j=a+64|0;k=f[j>>2]|0;if((f[k+28>>2]|0)==(f[k+24>>2]|0)){u=e;return}l=c+96|0;c=a+52|0;m=d+84|0;n=d+68|0;d=a+56|0;o=a+60|0;p=a+12|0;q=a+28|0;r=a+40|0;s=a+44|0;t=a+48|0;v=0;w=0;x=k;while(1){k=f[(f[x+24>>2]|0)+(w<<2)>>2]|0;if((k|0)==-1){y=v;z=x}else{A=v+1|0;B=f[(f[l>>2]|0)+(((k|0)/3|0)*12|0)+(((k|0)%3|0)<<2)>>2]|0;if(!(b[m>>0]|0))C=f[(f[n>>2]|0)+(B<<2)>>2]|0;else C=B;f[g>>2]=C;B=f[d>>2]|0;if(B>>>0<(f[o>>2]|0)>>>0){f[B>>2]=C;f[d>>2]=B+4}else Ri(c,g);f[g>>2]=k;f[h>>2]=0;a:do if(!(f[(f[p>>2]|0)+(w>>>5<<2)>>2]&1<<(w&31)))D=k;else{B=k+1|0;E=((B>>>0)%3|0|0)==0?k+-2|0:B;if(((E|0)!=-1?(f[(f[a>>2]|0)+(E>>>5<<2)>>2]&1<<(E&31)|0)==0:0)?(B=f[(f[(f[j>>2]|0)+12>>2]|0)+(E<<2)>>2]|0,E=B+1|0,(B|0)!=-1):0){F=((E>>>0)%3|0|0)==0?B+-2|0:E;f[h>>2]=F;if((F|0)==-1){D=k;break}else G=F;while(1){f[g>>2]=G;F=G+1|0;E=((F>>>0)%3|0|0)==0?G+-2|0:F;if((E|0)==-1)break;if(f[(f[a>>2]|0)+(E>>>5<<2)>>2]&1<<(E&31)|0)break;F=f[(f[(f[j>>2]|0)+12>>2]|0)+(E<<2)>>2]|0;E=F+1|0;if((F|0)==-1)break;B=((E>>>0)%3|0|0)==0?F+-2|0:E;f[h>>2]=B;if((B|0)==-1){D=G;break a}else G=B}f[h>>2]=-1;D=G;break}f[h>>2]=-1;D=k}while(0);f[(f[q>>2]|0)+(D<<2)>>2]=v;k=f[s>>2]|0;if((k|0)==(f[t>>2]|0))Ri(r,g);else{f[k>>2]=f[g>>2];f[s>>2]=k+4}k=f[j>>2]|0;B=f[g>>2]|0;b:do if(((B|0)!=-1?(E=(((B>>>0)%3|0|0)==0?2:-1)+B|0,(E|0)!=-1):0)?(F=f[(f[k+12>>2]|0)+(E<<2)>>2]|0,(F|0)!=-1):0){E=F+(((F>>>0)%3|0|0)==0?2:-1)|0;f[h>>2]=E;if((E|0)!=-1&(E|0)!=(B|0)){F=A;H=v;I=E;while(1){E=I+1|0;J=((E>>>0)%3|0|0)==0?I+-2|0:E;do if(f[(f[a>>2]|0)+(J>>>5<<2)>>2]&1<<(J&31)){E=F+1|0;K=f[(f[l>>2]|0)+(((I|0)/3|0)*12|0)+(((I|0)%3|0)<<2)>>2]|0;if(!(b[m>>0]|0))L=f[(f[n>>2]|0)+(K<<2)>>2]|0;else L=K;f[i>>2]=L;K=f[d>>2]|0;if(K>>>0<(f[o>>2]|0)>>>0){f[K>>2]=L;f[d>>2]=K+4}else Ri(c,i);K=f[s>>2]|0;if((K|0)==(f[t>>2]|0)){Ri(r,h);M=E;N=F;break}else{f[K>>2]=f[h>>2];f[s>>2]=K+4;M=E;N=F;break}}else{M=F;N=H}while(0);f[(f[q>>2]|0)+(f[h>>2]<<2)>>2]=N;O=f[j>>2]|0;J=f[h>>2]|0;if((J|0)==-1)break;E=(((J>>>0)%3|0|0)==0?2:-1)+J|0;if((E|0)==-1)break;J=f[(f[O+12>>2]|0)+(E<<2)>>2]|0;if((J|0)==-1)break;I=J+(((J>>>0)%3|0|0)==0?2:-1)|0;f[h>>2]=I;if(!((I|0)!=-1?(I|0)!=(f[g>>2]|0):0)){P=M;Q=O;break b}else{F=M;H=N}}f[h>>2]=-1;P=M;Q=O}else{P=A;Q=k}}else R=28;while(0);if((R|0)==28){R=0;f[h>>2]=-1;P=A;Q=k}y=P;z=Q}w=w+1|0;if(w>>>0>=(f[z+28>>2]|0)-(f[z+24>>2]|0)>>2>>>0)break;else{v=y;x=z}}u=e;return}function Rc(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,i=0,j=0.0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,D=0,E=0,F=0;switch(c|0){case 0:{e=-149;g=24;i=4;break}case 1:{e=-1074;g=53;i=4;break}case 2:{e=-1074;g=53;i=4;break}default:j=0.0}a:do if((i|0)==4){c=a+4|0;k=a+100|0;do{l=f[c>>2]|0;if(l>>>0<(f[k>>2]|0)>>>0){f[c>>2]=l+1;m=h[l>>0]|0}else m=Si(a)|0}while((eq(m)|0)!=0);b:do switch(m|0){case 43:case 45:{l=1-(((m|0)==45&1)<<1)|0;n=f[c>>2]|0;if(n>>>0<(f[k>>2]|0)>>>0){f[c>>2]=n+1;o=h[n>>0]|0;p=l;break b}else{o=Si(a)|0;p=l;break b}break}default:{o=m;p=1}}while(0);l=0;n=o;while(1){if((n|32|0)!=(b[18546+l>>0]|0)){q=l;r=n;break}do if(l>>>0<7){s=f[c>>2]|0;if(s>>>0<(f[k>>2]|0)>>>0){f[c>>2]=s+1;t=h[s>>0]|0;break}else{t=Si(a)|0;break}}else t=n;while(0);s=l+1|0;if(s>>>0<8){l=s;n=t}else{q=s;r=t;break}}c:do switch(q|0){case 8:break;case 3:{i=23;break}default:{n=(d|0)!=0;if(n&q>>>0>3)if((q|0)==8)break c;else{i=23;break c}d:do if(!q){l=0;s=r;while(1){if((s|32|0)!=(b[18555+l>>0]|0)){u=l;v=s;break d}do if(l>>>0<2){w=f[c>>2]|0;if(w>>>0<(f[k>>2]|0)>>>0){f[c>>2]=w+1;x=h[w>>0]|0;break}else{x=Si(a)|0;break}}else x=s;while(0);w=l+1|0;if(w>>>0<3){l=w;s=x}else{u=w;v=x;break}}}else{u=q;v=r}while(0);switch(u|0){case 3:{s=f[c>>2]|0;if(s>>>0<(f[k>>2]|0)>>>0){f[c>>2]=s+1;y=h[s>>0]|0}else y=Si(a)|0;if((y|0)==40)z=1;else{if(!(f[k>>2]|0)){j=B;break a}f[c>>2]=(f[c>>2]|0)+-1;j=B;break a}while(1){s=f[c>>2]|0;if(s>>>0<(f[k>>2]|0)>>>0){f[c>>2]=s+1;A=h[s>>0]|0}else A=Si(a)|0;if(!((A+-48|0)>>>0<10|(A+-65|0)>>>0<26)?!((A|0)==95|(A+-97|0)>>>0<26):0)break;z=z+1|0}if((A|0)==41){j=B;break a}s=(f[k>>2]|0)==0;if(!s)f[c>>2]=(f[c>>2]|0)+-1;if(!n){l=Vq()|0;f[l>>2]=22;Ym(a,0);j=0.0;break a}if(!z){j=B;break a}else D=z;while(1){D=D+-1|0;if(!s)f[c>>2]=(f[c>>2]|0)+-1;if(!D){j=B;break a}}break}case 0:{if((v|0)==48){s=f[c>>2]|0;if(s>>>0<(f[k>>2]|0)>>>0){f[c>>2]=s+1;E=h[s>>0]|0}else E=Si(a)|0;if((E|32|0)==120){j=+Fc(a,g,e,p,d);break a}if(!(f[k>>2]|0))F=48;else{f[c>>2]=(f[c>>2]|0)+-1;F=48}}else F=v;j=+nb(a,F,g,e,p,d);break a;break}default:{if(f[k>>2]|0)f[c>>2]=(f[c>>2]|0)+-1;s=Vq()|0;f[s>>2]=22;Ym(a,0);j=0.0;break a}}}}while(0);if((i|0)==23){s=(f[k>>2]|0)==0;if(!s)f[c>>2]=(f[c>>2]|0)+-1;if((d|0)!=0&q>>>0>3){n=q;do{if(!s)f[c>>2]=(f[c>>2]|0)+-1;n=n+-1|0}while(n>>>0>3)}}j=+$($(p|0)*$(C))}while(0);return +j}function Sc(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0;g=u;u=u+16|0;h=g;f[h>>2]=0;f[h+4>>2]=0;f[h+8>>2]=0;i=ln(16)|0;f[h>>2]=i;f[h+8>>2]=-2147483632;f[h+4>>2]=15;j=i;k=14479;l=j+15|0;do{b[j>>0]=b[k>>0]|0;j=j+1|0;k=k+1|0}while((j|0)<(l|0));b[i+15>>0]=0;i=Hk(c,h,-1)|0;if((b[h+11>>0]|0)<0)Oq(f[h>>2]|0);switch(i|0){case 0:{m=ln(52)|0;j=m;l=j+52|0;do{f[j>>2]=0;j=j+4|0}while((j|0)<(l|0));Zn(m);n=4044;o=m;break}case -1:{if((mi(c)|0)==10){m=ln(52)|0;j=m;l=j+52|0;do{f[j>>2]=0;j=j+4|0}while((j|0)<(l|0));Zn(m);n=4044;o=m}else p=6;break}default:p=6}a:do if((p|0)==6){m=d+8|0;q=d+12|0;r=f[q>>2]|0;s=f[m>>2]|0;b:do if((r-s|0)>0){t=h+8|0;v=h+4|0;w=c+16|0;x=h+11|0;y=0;z=s;A=r;c:while(1){B=f[(f[z+(y<<2)>>2]|0)+28>>2]|0;switch(B|0){case 9:{p=12;break}case 6:case 5:case 4:case 2:{C=z;D=A;break}default:{if((B|2|0)!=3)break c;if((B|0)==9)p=12;else{C=z;D=A}}}if((p|0)==12){p=0;f[h>>2]=0;f[h+4>>2]=0;f[h+8>>2]=0;B=ln(32)|0;f[h>>2]=B;f[t>>2]=-2147483616;f[v>>2]=17;j=B;k=14495;l=j+17|0;do{b[j>>0]=b[k>>0]|0;j=j+1|0;k=k+1|0}while((j|0)<(l|0));b[B+17>>0]=0;E=f[w>>2]|0;if(E){F=w;G=E;d:while(1){E=G;while(1){if((f[E+16>>2]|0)>=0)break;H=f[E+4>>2]|0;if(!H){I=F;break d}else E=H}G=f[E>>2]|0;if(!G){I=E;break}else F=E}if(((I|0)!=(w|0)?(f[I+16>>2]|0)<=0:0)?(F=I+20|0,(Jh(F,h)|0)!=0):0)J=Hk(F,h,-1)|0;else p=21}else p=21;if((p|0)==21){p=0;J=Hk(c,h,-1)|0}if((b[x>>0]|0)<0)Oq(f[h>>2]|0);if((J|0)<1)break;C=f[m>>2]|0;D=f[q>>2]|0}y=y+1|0;if((y|0)>=(D-C>>2|0))break b;else{z=C;A=D}}if((i|0)!=1){A=ln(52)|0;j=A;l=j+52|0;do{f[j>>2]=0;j=j+4|0}while((j|0)<(l|0));Zn(A);n=4044;o=A;break a}f[h>>2]=0;f[h+4>>2]=0;f[h+8>>2]=0;z=ln(32)|0;f[h>>2]=z;f[h+8>>2]=-2147483616;f[h+4>>2]=24;j=z;k=14513;l=j+24|0;do{b[j>>0]=b[k>>0]|0;j=j+1|0;k=k+1|0}while((j|0)<(l|0));b[z+24>>0]=0;f[a>>2]=-1;pj(a+4|0,h);if((b[h+11>>0]|0)<0)Oq(f[h>>2]|0);u=g;return}while(0);q=ln(52)|0;j=q;l=j+52|0;do{f[j>>2]=0;j=j+4|0}while((j|0)<(l|0));Zn(q);n=3988;o=q}while(0);f[o>>2]=n;ip(o,d);Md(a,o,c,e);Va[f[(f[o>>2]|0)+4>>2]&127](o);u=g;return}function Tc(a,c,d,e,g,h){a=a|0;c=c|0;d=d|0;e=e|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;i=u;u=u+32|0;j=i+4|0;k=i;l=i+16|0;m=(_(e|0)|0)^31;if((e|0)>0)if(m>>>0>17){n=0;u=i;return n|0}else o=m+1|0;else o=1;do if(g){m=ln(48)|0;f[j>>2]=m;f[j+8>>2]=-2147483600;f[j+4>>2]=33;e=m;p=15987;q=e+33|0;do{b[e>>0]=b[p>>0]|0;e=e+1|0;p=p+1|0}while((e|0)<(q|0));b[m+33>>0]=0;r=(Jh(g,j)|0)==0;if((b[j+11>>0]|0)<0)Oq(f[j>>2]|0);if(!r){r=ln(48)|0;f[j>>2]=r;f[j+8>>2]=-2147483600;f[j+4>>2]=33;e=r;p=15987;q=e+33|0;do{b[e>>0]=b[p>>0]|0;e=e+1|0;p=p+1|0}while((e|0)<(q|0));b[r+33>>0]=0;p=Mk(g,j)|0;if((b[j+11>>0]|0)<0)Oq(f[j>>2]|0);if((p|0)<4){s=o+-2|0;break}if((p|0)<6){s=o+-1|0;break}if((p|0)>9){s=o+2|0;break}else{s=o+((p|0)>7&1)|0;break}}else s=o}else s=o;while(0);o=(s|0)>1?s:1;s=(o|0)<18?o:18;b[l>>0]=s;o=h+16|0;g=f[o+4>>2]|0;if(!((g|0)>0|(g|0)==0&(f[o>>2]|0)>>>0>0)){f[k>>2]=f[h+4>>2];f[j>>2]=f[k>>2];Me(h,j,l,l+1|0)|0}do switch(s&31){case 1:case 0:{n=ue(a,c,d,h)|0;u=i;return n|0}case 2:{n=te(a,c,d,h)|0;u=i;return n|0}case 3:{n=se(a,c,d,h)|0;u=i;return n|0}case 4:{n=re(a,c,d,h)|0;u=i;return n|0}case 5:{n=qe(a,c,d,h)|0;u=i;return n|0}case 6:{n=pe(a,c,d,h)|0;u=i;return n|0}case 7:{n=oe(a,c,d,h)|0;u=i;return n|0}case 8:{n=ne(a,c,d,h)|0;u=i;return n|0}case 9:{n=me(a,c,d,h)|0;u=i;return n|0}case 10:{n=le(a,c,d,h)|0;u=i;return n|0}case 11:{n=ke(a,c,d,h)|0;u=i;return n|0}case 12:{n=ie(a,c,d,h)|0;u=i;return n|0}case 13:{n=he(a,c,d,h)|0;u=i;return n|0}case 14:{n=ge(a,c,d,h)|0;u=i;return n|0}case 15:{n=fe(a,c,d,h)|0;u=i;return n|0}case 16:{n=ee(a,c,d,h)|0;u=i;return n|0}case 17:{n=de(a,c,d,h)|0;u=i;return n|0}case 18:{n=ce(a,c,d,h)|0;u=i;return n|0}default:{n=0;u=i;return n|0}}while(0);return 0}function Uc(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0.0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0.0,F=0.0,G=0.0;e=u;u=u+16|0;g=e;h=e+4|0;if((c|0)>0){i=0;j=0;k=0;l=0;while(1){m=b+(j<<3)|0;n=f[m>>2]|0;o=f[m+4>>2]|0;m=Vn(n|0,o|0,k|0,l|0)|0;p=I;q=(n|0)==0&(o|0)==0?i:j;j=j+1|0;if((j|0)==(c|0)){r=q;s=p;t=m;break}else{i=q;k=m;l=p}}}else{r=0;s=0;t=0}l=r+1|0;f[a+12>>2]=l;k=a+4|0;i=f[k>>2]|0;c=f[a>>2]|0;j=i-c>>3;p=c;c=i;if(l>>>0<=j>>>0){if(l>>>0>>0?(i=p+(l<<3)|0,(i|0)!=(c|0)):0)f[k>>2]=c+(~((c+-8-i|0)>>>3)<<3)}else wh(a,l-j|0);v=+(t>>>0)+4294967296.0*+(s>>>0);s=(r|0)<0;if(!s){t=f[a>>2]|0;j=0;i=0;do{c=b+(i<<3)|0;k=f[c>>2]|0;p=f[c+4>>2]|0;c=~~((+(k>>>0)+4294967296.0*+(p>>>0))/v*1048576.0+.5)>>>0;m=((k|0)!=0|(p|0)!=0)&(c|0)==0?1:c;f[t+(i<<3)>>2]=m;j=m+j|0;i=i+1|0}while((i|0)!=(l|0));if((j|0)==1048576){if(s){w=0;u=e;return w|0}}else{x=j;y=12}}else{x=0;y=12}if((y|0)==12){f[h>>2]=0;j=h+4|0;f[j>>2]=0;f[h+8>>2]=0;do if(l)if(l>>>0>1073741823)aq(h);else{i=l<<2;t=ln(i)|0;f[h>>2]=t;m=t+(l<<2)|0;f[h+8>>2]=m;sj(t|0,0,i|0)|0;f[j>>2]=m;z=t;A=m;break}else{z=0;A=0}while(0);if(!s?(f[z>>2]=0,r|0):0){m=1;do{f[z+(m<<2)>>2]=m;m=m+1|0}while((m|0)!=(l|0))}f[g>>2]=a;xb(z,A,g);a:do if((x|0)<1048576){g=(f[a>>2]|0)+(f[(f[j>>2]|0)+-4>>2]<<3)|0;f[g>>2]=1048576-x+(f[g>>2]|0);B=0}else{g=f[h>>2]|0;if((r|0)<=0){A=(x|0)>1048576;while(1)if(!A){B=0;break a}}A=f[a>>2]|0;z=x+-1048576|0;m=x;while(1){v=1048576.0/+(m|0);t=r;i=z;c=m;while(1){p=A+(f[g+(t<<2)>>2]<<3)|0;k=f[p>>2]|0;if(k>>>0<2){y=28;break}q=k-~~+J(+(v*+(k>>>0)))|0;o=(q|0)==0?1:q;q=(o|0)<(k|0)?o:k+-1|0;o=(q|0)>(i|0)?i:q;f[p>>2]=k-o;k=c-o|0;p=i-o|0;if((k|0)==1048576){C=p;D=1048576;break}if((t|0)>1){t=t+-1|0;i=p;c=k}else{C=p;D=k;break}}if((y|0)==28){y=0;if((t|0)==(r|0)){B=1;break a}else{C=i;D=c}}if((C|0)>0){z=C;m=D}else{B=0;break}}}while(0);D=f[h>>2]|0;if(D|0){h=f[j>>2]|0;if((h|0)!=(D|0))f[j>>2]=h+(~((h+-4-D|0)>>>2)<<2);Oq(D)}if((B|0)!=0|s){w=0;u=e;return w|0}}B=f[a>>2]|0;D=0;h=0;do{f[B+(D<<3)+4>>2]=h;h=(f[B+(D<<3)>>2]|0)+h|0;D=D+1|0}while((D|0)!=(l|0));if((h|0)!=1048576){w=0;u=e;return w|0}if(s)E=0.0;else{s=f[a>>2]|0;h=0;v=0.0;while(1){D=f[s+(h<<3)>>2]|0;if(!D)F=v;else{B=b+(h<<3)|0;G=+((f[B>>2]|0)>>>0)+4294967296.0*+((f[B+4>>2]|0)>>>0);F=v+ +Zg(+(D>>>0)*9.5367431640625e-07)*G}h=h+1|0;if((h|0)==(l|0)){E=F;break}else v=F}}F=+W(+-E);l=+K(F)>=1.0?(F>0.0?~~+Y(+J(F/4294967296.0),4294967295.0)>>>0:~~+W((F-+(~~F>>>0))/4294967296.0)>>>0):0;h=a+16|0;f[h>>2]=~~F>>>0;f[h+4>>2]=l;w=Le(a,d)|0;u=e;return w|0}function Vc(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0.0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0.0,F=0.0,G=0.0;e=u;u=u+16|0;g=e;h=e+4|0;if((c|0)>0){i=0;j=0;k=0;l=0;while(1){m=b+(j<<3)|0;n=f[m>>2]|0;o=f[m+4>>2]|0;m=Vn(n|0,o|0,k|0,l|0)|0;p=I;q=(n|0)==0&(o|0)==0?i:j;j=j+1|0;if((j|0)==(c|0)){r=q;s=p;t=m;break}else{i=q;k=m;l=p}}}else{r=0;s=0;t=0}l=r+1|0;f[a+12>>2]=l;k=a+4|0;i=f[k>>2]|0;c=f[a>>2]|0;j=i-c>>3;p=c;c=i;if(l>>>0<=j>>>0){if(l>>>0>>0?(i=p+(l<<3)|0,(i|0)!=(c|0)):0)f[k>>2]=c+(~((c+-8-i|0)>>>3)<<3)}else wh(a,l-j|0);v=+(t>>>0)+4294967296.0*+(s>>>0);s=(r|0)<0;if(!s){t=f[a>>2]|0;j=0;i=0;do{c=b+(i<<3)|0;k=f[c>>2]|0;p=f[c+4>>2]|0;c=~~((+(k>>>0)+4294967296.0*+(p>>>0))/v*1048576.0+.5)>>>0;m=((k|0)!=0|(p|0)!=0)&(c|0)==0?1:c;f[t+(i<<3)>>2]=m;j=m+j|0;i=i+1|0}while((i|0)!=(l|0));if((j|0)==1048576){if(s){w=0;u=e;return w|0}}else{x=j;y=12}}else{x=0;y=12}if((y|0)==12){f[h>>2]=0;j=h+4|0;f[j>>2]=0;f[h+8>>2]=0;do if(l)if(l>>>0>1073741823)aq(h);else{i=l<<2;t=ln(i)|0;f[h>>2]=t;m=t+(l<<2)|0;f[h+8>>2]=m;sj(t|0,0,i|0)|0;f[j>>2]=m;z=t;A=m;break}else{z=0;A=0}while(0);if(!s?(f[z>>2]=0,r|0):0){m=1;do{f[z+(m<<2)>>2]=m;m=m+1|0}while((m|0)!=(l|0))}f[g>>2]=a;yb(z,A,g);a:do if((x|0)<1048576){g=(f[a>>2]|0)+(f[(f[j>>2]|0)+-4>>2]<<3)|0;f[g>>2]=1048576-x+(f[g>>2]|0);B=0}else{g=f[h>>2]|0;if((r|0)<=0){A=(x|0)>1048576;while(1)if(!A){B=0;break a}}A=f[a>>2]|0;z=x+-1048576|0;m=x;while(1){v=1048576.0/+(m|0);t=r;i=z;c=m;while(1){p=A+(f[g+(t<<2)>>2]<<3)|0;k=f[p>>2]|0;if(k>>>0<2){y=28;break}q=k-~~+J(+(v*+(k>>>0)))|0;o=(q|0)==0?1:q;q=(o|0)<(k|0)?o:k+-1|0;o=(q|0)>(i|0)?i:q;f[p>>2]=k-o;k=c-o|0;p=i-o|0;if((k|0)==1048576){C=p;D=1048576;break}if((t|0)>1){t=t+-1|0;i=p;c=k}else{C=p;D=k;break}}if((y|0)==28){y=0;if((t|0)==(r|0)){B=1;break a}else{C=i;D=c}}if((C|0)>0){z=C;m=D}else{B=0;break}}}while(0);D=f[h>>2]|0;if(D|0){h=f[j>>2]|0;if((h|0)!=(D|0))f[j>>2]=h+(~((h+-4-D|0)>>>2)<<2);Oq(D)}if((B|0)!=0|s){w=0;u=e;return w|0}}B=f[a>>2]|0;D=0;h=0;do{f[B+(D<<3)+4>>2]=h;h=(f[B+(D<<3)>>2]|0)+h|0;D=D+1|0}while((D|0)!=(l|0));if((h|0)!=1048576){w=0;u=e;return w|0}if(s)E=0.0;else{s=f[a>>2]|0;h=0;v=0.0;while(1){D=f[s+(h<<3)>>2]|0;if(!D)F=v;else{B=b+(h<<3)|0;G=+((f[B>>2]|0)>>>0)+4294967296.0*+((f[B+4>>2]|0)>>>0);F=v+ +Zg(+(D>>>0)*9.5367431640625e-07)*G}h=h+1|0;if((h|0)==(l|0)){E=F;break}else v=F}}F=+W(+-E);l=+K(F)>=1.0?(F>0.0?~~+Y(+J(F/4294967296.0),4294967295.0)>>>0:~~+W((F-+(~~F>>>0))/4294967296.0)>>>0):0;h=a+16|0;f[h>>2]=~~F>>>0;f[h+4>>2]=l;w=Le(a,d)|0;u=e;return w|0}function Wc(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0.0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0.0,F=0.0,G=0.0;e=u;u=u+16|0;g=e;h=e+4|0;if((c|0)>0){i=0;j=0;k=0;l=0;while(1){m=b+(j<<3)|0;n=f[m>>2]|0;o=f[m+4>>2]|0;m=Vn(n|0,o|0,k|0,l|0)|0;p=I;q=(n|0)==0&(o|0)==0?i:j;j=j+1|0;if((j|0)==(c|0)){r=q;s=p;t=m;break}else{i=q;k=m;l=p}}}else{r=0;s=0;t=0}l=r+1|0;f[a+12>>2]=l;k=a+4|0;i=f[k>>2]|0;c=f[a>>2]|0;j=i-c>>3;p=c;c=i;if(l>>>0<=j>>>0){if(l>>>0>>0?(i=p+(l<<3)|0,(i|0)!=(c|0)):0)f[k>>2]=c+(~((c+-8-i|0)>>>3)<<3)}else wh(a,l-j|0);v=+(t>>>0)+4294967296.0*+(s>>>0);s=(r|0)<0;if(!s){t=f[a>>2]|0;j=0;i=0;do{c=b+(i<<3)|0;k=f[c>>2]|0;p=f[c+4>>2]|0;c=~~((+(k>>>0)+4294967296.0*+(p>>>0))/v*1048576.0+.5)>>>0;m=((k|0)!=0|(p|0)!=0)&(c|0)==0?1:c;f[t+(i<<3)>>2]=m;j=m+j|0;i=i+1|0}while((i|0)!=(l|0));if((j|0)==1048576){if(s){w=0;u=e;return w|0}}else{x=j;y=12}}else{x=0;y=12}if((y|0)==12){f[h>>2]=0;j=h+4|0;f[j>>2]=0;f[h+8>>2]=0;do if(l)if(l>>>0>1073741823)aq(h);else{i=l<<2;t=ln(i)|0;f[h>>2]=t;m=t+(l<<2)|0;f[h+8>>2]=m;sj(t|0,0,i|0)|0;f[j>>2]=m;z=t;A=m;break}else{z=0;A=0}while(0);if(!s?(f[z>>2]=0,r|0):0){m=1;do{f[z+(m<<2)>>2]=m;m=m+1|0}while((m|0)!=(l|0))}f[g>>2]=a;zb(z,A,g);a:do if((x|0)<1048576){g=(f[a>>2]|0)+(f[(f[j>>2]|0)+-4>>2]<<3)|0;f[g>>2]=1048576-x+(f[g>>2]|0);B=0}else{g=f[h>>2]|0;if((r|0)<=0){A=(x|0)>1048576;while(1)if(!A){B=0;break a}}A=f[a>>2]|0;z=x+-1048576|0;m=x;while(1){v=1048576.0/+(m|0);t=r;i=z;c=m;while(1){p=A+(f[g+(t<<2)>>2]<<3)|0;k=f[p>>2]|0;if(k>>>0<2){y=28;break}q=k-~~+J(+(v*+(k>>>0)))|0;o=(q|0)==0?1:q;q=(o|0)<(k|0)?o:k+-1|0;o=(q|0)>(i|0)?i:q;f[p>>2]=k-o;k=c-o|0;p=i-o|0;if((k|0)==1048576){C=p;D=1048576;break}if((t|0)>1){t=t+-1|0;i=p;c=k}else{C=p;D=k;break}}if((y|0)==28){y=0;if((t|0)==(r|0)){B=1;break a}else{C=i;D=c}}if((C|0)>0){z=C;m=D}else{B=0;break}}}while(0);D=f[h>>2]|0;if(D|0){h=f[j>>2]|0;if((h|0)!=(D|0))f[j>>2]=h+(~((h+-4-D|0)>>>2)<<2);Oq(D)}if((B|0)!=0|s){w=0;u=e;return w|0}}B=f[a>>2]|0;D=0;h=0;do{f[B+(D<<3)+4>>2]=h;h=(f[B+(D<<3)>>2]|0)+h|0;D=D+1|0}while((D|0)!=(l|0));if((h|0)!=1048576){w=0;u=e;return w|0}if(s)E=0.0;else{s=f[a>>2]|0;h=0;v=0.0;while(1){D=f[s+(h<<3)>>2]|0;if(!D)F=v;else{B=b+(h<<3)|0;G=+((f[B>>2]|0)>>>0)+4294967296.0*+((f[B+4>>2]|0)>>>0);F=v+ +Zg(+(D>>>0)*9.5367431640625e-07)*G}h=h+1|0;if((h|0)==(l|0)){E=F;break}else v=F}}F=+W(+-E);l=+K(F)>=1.0?(F>0.0?~~+Y(+J(F/4294967296.0),4294967295.0)>>>0:~~+W((F-+(~~F>>>0))/4294967296.0)>>>0):0;h=a+16|0;f[h>>2]=~~F>>>0;f[h+4>>2]=l;w=Le(a,d)|0;u=e;return w|0}function Xc(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0.0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0.0,F=0.0,G=0.0;e=u;u=u+16|0;g=e;h=e+4|0;if((c|0)>0){i=0;j=0;k=0;l=0;while(1){m=b+(j<<3)|0;n=f[m>>2]|0;o=f[m+4>>2]|0;m=Vn(n|0,o|0,k|0,l|0)|0;p=I;q=(n|0)==0&(o|0)==0?i:j;j=j+1|0;if((j|0)==(c|0)){r=q;s=p;t=m;break}else{i=q;k=m;l=p}}}else{r=0;s=0;t=0}l=r+1|0;f[a+12>>2]=l;k=a+4|0;i=f[k>>2]|0;c=f[a>>2]|0;j=i-c>>3;p=c;c=i;if(l>>>0<=j>>>0){if(l>>>0>>0?(i=p+(l<<3)|0,(i|0)!=(c|0)):0)f[k>>2]=c+(~((c+-8-i|0)>>>3)<<3)}else wh(a,l-j|0);v=+(t>>>0)+4294967296.0*+(s>>>0);s=(r|0)<0;if(!s){t=f[a>>2]|0;j=0;i=0;do{c=b+(i<<3)|0;k=f[c>>2]|0;p=f[c+4>>2]|0;c=~~((+(k>>>0)+4294967296.0*+(p>>>0))/v*1048576.0+.5)>>>0;m=((k|0)!=0|(p|0)!=0)&(c|0)==0?1:c;f[t+(i<<3)>>2]=m;j=m+j|0;i=i+1|0}while((i|0)!=(l|0));if((j|0)==1048576){if(s){w=0;u=e;return w|0}}else{x=j;y=12}}else{x=0;y=12}if((y|0)==12){f[h>>2]=0;j=h+4|0;f[j>>2]=0;f[h+8>>2]=0;do if(l)if(l>>>0>1073741823)aq(h);else{i=l<<2;t=ln(i)|0;f[h>>2]=t;m=t+(l<<2)|0;f[h+8>>2]=m;sj(t|0,0,i|0)|0;f[j>>2]=m;z=t;A=m;break}else{z=0;A=0}while(0);if(!s?(f[z>>2]=0,r|0):0){m=1;do{f[z+(m<<2)>>2]=m;m=m+1|0}while((m|0)!=(l|0))}f[g>>2]=a;Ab(z,A,g);a:do if((x|0)<1048576){g=(f[a>>2]|0)+(f[(f[j>>2]|0)+-4>>2]<<3)|0;f[g>>2]=1048576-x+(f[g>>2]|0);B=0}else{g=f[h>>2]|0;if((r|0)<=0){A=(x|0)>1048576;while(1)if(!A){B=0;break a}}A=f[a>>2]|0;z=x+-1048576|0;m=x;while(1){v=1048576.0/+(m|0);t=r;i=z;c=m;while(1){p=A+(f[g+(t<<2)>>2]<<3)|0;k=f[p>>2]|0;if(k>>>0<2){y=28;break}q=k-~~+J(+(v*+(k>>>0)))|0;o=(q|0)==0?1:q;q=(o|0)<(k|0)?o:k+-1|0;o=(q|0)>(i|0)?i:q;f[p>>2]=k-o;k=c-o|0;p=i-o|0;if((k|0)==1048576){C=p;D=1048576;break}if((t|0)>1){t=t+-1|0;i=p;c=k}else{C=p;D=k;break}}if((y|0)==28){y=0;if((t|0)==(r|0)){B=1;break a}else{C=i;D=c}}if((C|0)>0){z=C;m=D}else{B=0;break}}}while(0);D=f[h>>2]|0;if(D|0){h=f[j>>2]|0;if((h|0)!=(D|0))f[j>>2]=h+(~((h+-4-D|0)>>>2)<<2);Oq(D)}if((B|0)!=0|s){w=0;u=e;return w|0}}B=f[a>>2]|0;D=0;h=0;do{f[B+(D<<3)+4>>2]=h;h=(f[B+(D<<3)>>2]|0)+h|0;D=D+1|0}while((D|0)!=(l|0));if((h|0)!=1048576){w=0;u=e;return w|0}if(s)E=0.0;else{s=f[a>>2]|0;h=0;v=0.0;while(1){D=f[s+(h<<3)>>2]|0;if(!D)F=v;else{B=b+(h<<3)|0;G=+((f[B>>2]|0)>>>0)+4294967296.0*+((f[B+4>>2]|0)>>>0);F=v+ +Zg(+(D>>>0)*9.5367431640625e-07)*G}h=h+1|0;if((h|0)==(l|0)){E=F;break}else v=F}}F=+W(+-E);l=+K(F)>=1.0?(F>0.0?~~+Y(+J(F/4294967296.0),4294967295.0)>>>0:~~+W((F-+(~~F>>>0))/4294967296.0)>>>0):0;h=a+16|0;f[h>>2]=~~F>>>0;f[h+4>>2]=l;w=Le(a,d)|0;u=e;return w|0}function Yc(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0.0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0.0,F=0.0,G=0.0;e=u;u=u+16|0;g=e;h=e+4|0;if((c|0)>0){i=0;j=0;k=0;l=0;while(1){m=b+(j<<3)|0;n=f[m>>2]|0;o=f[m+4>>2]|0;m=Vn(n|0,o|0,k|0,l|0)|0;p=I;q=(n|0)==0&(o|0)==0?i:j;j=j+1|0;if((j|0)==(c|0)){r=q;s=p;t=m;break}else{i=q;k=m;l=p}}}else{r=0;s=0;t=0}l=r+1|0;f[a+12>>2]=l;k=a+4|0;i=f[k>>2]|0;c=f[a>>2]|0;j=i-c>>3;p=c;c=i;if(l>>>0<=j>>>0){if(l>>>0>>0?(i=p+(l<<3)|0,(i|0)!=(c|0)):0)f[k>>2]=c+(~((c+-8-i|0)>>>3)<<3)}else wh(a,l-j|0);v=+(t>>>0)+4294967296.0*+(s>>>0);s=(r|0)<0;if(!s){t=f[a>>2]|0;j=0;i=0;do{c=b+(i<<3)|0;k=f[c>>2]|0;p=f[c+4>>2]|0;c=~~((+(k>>>0)+4294967296.0*+(p>>>0))/v*1048576.0+.5)>>>0;m=((k|0)!=0|(p|0)!=0)&(c|0)==0?1:c;f[t+(i<<3)>>2]=m;j=m+j|0;i=i+1|0}while((i|0)!=(l|0));if((j|0)==1048576){if(s){w=0;u=e;return w|0}}else{x=j;y=12}}else{x=0;y=12}if((y|0)==12){f[h>>2]=0;j=h+4|0;f[j>>2]=0;f[h+8>>2]=0;do if(l)if(l>>>0>1073741823)aq(h);else{i=l<<2;t=ln(i)|0;f[h>>2]=t;m=t+(l<<2)|0;f[h+8>>2]=m;sj(t|0,0,i|0)|0;f[j>>2]=m;z=t;A=m;break}else{z=0;A=0}while(0);if(!s?(f[z>>2]=0,r|0):0){m=1;do{f[z+(m<<2)>>2]=m;m=m+1|0}while((m|0)!=(l|0))}f[g>>2]=a;Fb(z,A,g);a:do if((x|0)<1048576){g=(f[a>>2]|0)+(f[(f[j>>2]|0)+-4>>2]<<3)|0;f[g>>2]=1048576-x+(f[g>>2]|0);B=0}else{g=f[h>>2]|0;if((r|0)<=0){A=(x|0)>1048576;while(1)if(!A){B=0;break a}}A=f[a>>2]|0;z=x+-1048576|0;m=x;while(1){v=1048576.0/+(m|0);t=r;i=z;c=m;while(1){p=A+(f[g+(t<<2)>>2]<<3)|0;k=f[p>>2]|0;if(k>>>0<2){y=28;break}q=k-~~+J(+(v*+(k>>>0)))|0;o=(q|0)==0?1:q;q=(o|0)<(k|0)?o:k+-1|0;o=(q|0)>(i|0)?i:q;f[p>>2]=k-o;k=c-o|0;p=i-o|0;if((k|0)==1048576){C=p;D=1048576;break}if((t|0)>1){t=t+-1|0;i=p;c=k}else{C=p;D=k;break}}if((y|0)==28){y=0;if((t|0)==(r|0)){B=1;break a}else{C=i;D=c}}if((C|0)>0){z=C;m=D}else{B=0;break}}}while(0);D=f[h>>2]|0;if(D|0){h=f[j>>2]|0;if((h|0)!=(D|0))f[j>>2]=h+(~((h+-4-D|0)>>>2)<<2);Oq(D)}if((B|0)!=0|s){w=0;u=e;return w|0}}B=f[a>>2]|0;D=0;h=0;do{f[B+(D<<3)+4>>2]=h;h=(f[B+(D<<3)>>2]|0)+h|0;D=D+1|0}while((D|0)!=(l|0));if((h|0)!=1048576){w=0;u=e;return w|0}if(s)E=0.0;else{s=f[a>>2]|0;h=0;v=0.0;while(1){D=f[s+(h<<3)>>2]|0;if(!D)F=v;else{B=b+(h<<3)|0;G=+((f[B>>2]|0)>>>0)+4294967296.0*+((f[B+4>>2]|0)>>>0);F=v+ +Zg(+(D>>>0)*9.5367431640625e-07)*G}h=h+1|0;if((h|0)==(l|0)){E=F;break}else v=F}}F=+W(+-E);l=+K(F)>=1.0?(F>0.0?~~+Y(+J(F/4294967296.0),4294967295.0)>>>0:~~+W((F-+(~~F>>>0))/4294967296.0)>>>0):0;h=a+16|0;f[h>>2]=~~F>>>0;f[h+4>>2]=l;w=Le(a,d)|0;u=e;return w|0}function Zc(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0.0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0.0,F=0.0,G=0.0;e=u;u=u+16|0;g=e;h=e+4|0;if((c|0)>0){i=0;j=0;k=0;l=0;while(1){m=b+(j<<3)|0;n=f[m>>2]|0;o=f[m+4>>2]|0;m=Vn(n|0,o|0,k|0,l|0)|0;p=I;q=(n|0)==0&(o|0)==0?i:j;j=j+1|0;if((j|0)==(c|0)){r=q;s=p;t=m;break}else{i=q;k=m;l=p}}}else{r=0;s=0;t=0}l=r+1|0;f[a+12>>2]=l;k=a+4|0;i=f[k>>2]|0;c=f[a>>2]|0;j=i-c>>3;p=c;c=i;if(l>>>0<=j>>>0){if(l>>>0>>0?(i=p+(l<<3)|0,(i|0)!=(c|0)):0)f[k>>2]=c+(~((c+-8-i|0)>>>3)<<3)}else wh(a,l-j|0);v=+(t>>>0)+4294967296.0*+(s>>>0);s=(r|0)<0;if(!s){t=f[a>>2]|0;j=0;i=0;do{c=b+(i<<3)|0;k=f[c>>2]|0;p=f[c+4>>2]|0;c=~~((+(k>>>0)+4294967296.0*+(p>>>0))/v*524288.0+.5)>>>0;m=((k|0)!=0|(p|0)!=0)&(c|0)==0?1:c;f[t+(i<<3)>>2]=m;j=m+j|0;i=i+1|0}while((i|0)!=(l|0));if((j|0)==524288){if(s){w=0;u=e;return w|0}}else{x=j;y=12}}else{x=0;y=12}if((y|0)==12){f[h>>2]=0;j=h+4|0;f[j>>2]=0;f[h+8>>2]=0;do if(l)if(l>>>0>1073741823)aq(h);else{i=l<<2;t=ln(i)|0;f[h>>2]=t;m=t+(l<<2)|0;f[h+8>>2]=m;sj(t|0,0,i|0)|0;f[j>>2]=m;z=t;A=m;break}else{z=0;A=0}while(0);if(!s?(f[z>>2]=0,r|0):0){m=1;do{f[z+(m<<2)>>2]=m;m=m+1|0}while((m|0)!=(l|0))}f[g>>2]=a;Bb(z,A,g);a:do if((x|0)<524288){g=(f[a>>2]|0)+(f[(f[j>>2]|0)+-4>>2]<<3)|0;f[g>>2]=524288-x+(f[g>>2]|0);B=0}else{g=f[h>>2]|0;if((r|0)<=0){A=(x|0)>524288;while(1)if(!A){B=0;break a}}A=f[a>>2]|0;z=x+-524288|0;m=x;while(1){v=524288.0/+(m|0);t=r;i=z;c=m;while(1){p=A+(f[g+(t<<2)>>2]<<3)|0;k=f[p>>2]|0;if(k>>>0<2){y=28;break}q=k-~~+J(+(v*+(k>>>0)))|0;o=(q|0)==0?1:q;q=(o|0)<(k|0)?o:k+-1|0;o=(q|0)>(i|0)?i:q;f[p>>2]=k-o;k=c-o|0;p=i-o|0;if((k|0)==524288){C=p;D=524288;break}if((t|0)>1){t=t+-1|0;i=p;c=k}else{C=p;D=k;break}}if((y|0)==28){y=0;if((t|0)==(r|0)){B=1;break a}else{C=i;D=c}}if((C|0)>0){z=C;m=D}else{B=0;break}}}while(0);D=f[h>>2]|0;if(D|0){h=f[j>>2]|0;if((h|0)!=(D|0))f[j>>2]=h+(~((h+-4-D|0)>>>2)<<2);Oq(D)}if((B|0)!=0|s){w=0;u=e;return w|0}}B=f[a>>2]|0;D=0;h=0;do{f[B+(D<<3)+4>>2]=h;h=(f[B+(D<<3)>>2]|0)+h|0;D=D+1|0}while((D|0)!=(l|0));if((h|0)!=524288){w=0;u=e;return w|0}if(s)E=0.0;else{s=f[a>>2]|0;h=0;v=0.0;while(1){D=f[s+(h<<3)>>2]|0;if(!D)F=v;else{B=b+(h<<3)|0;G=+((f[B>>2]|0)>>>0)+4294967296.0*+((f[B+4>>2]|0)>>>0);F=v+ +Zg(+(D>>>0)*1.9073486328125e-06)*G}h=h+1|0;if((h|0)==(l|0)){E=F;break}else v=F}}F=+W(+-E);l=+K(F)>=1.0?(F>0.0?~~+Y(+J(F/4294967296.0),4294967295.0)>>>0:~~+W((F-+(~~F>>>0))/4294967296.0)>>>0):0;h=a+16|0;f[h>>2]=~~F>>>0;f[h+4>>2]=l;w=Le(a,d)|0;u=e;return w|0}function _c(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0.0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0.0,F=0.0,G=0.0;e=u;u=u+16|0;g=e;h=e+4|0;if((c|0)>0){i=0;j=0;k=0;l=0;while(1){m=b+(j<<3)|0;n=f[m>>2]|0;o=f[m+4>>2]|0;m=Vn(n|0,o|0,k|0,l|0)|0;p=I;q=(n|0)==0&(o|0)==0?i:j;j=j+1|0;if((j|0)==(c|0)){r=q;s=p;t=m;break}else{i=q;k=m;l=p}}}else{r=0;s=0;t=0}l=r+1|0;f[a+12>>2]=l;k=a+4|0;i=f[k>>2]|0;c=f[a>>2]|0;j=i-c>>3;p=c;c=i;if(l>>>0<=j>>>0){if(l>>>0>>0?(i=p+(l<<3)|0,(i|0)!=(c|0)):0)f[k>>2]=c+(~((c+-8-i|0)>>>3)<<3)}else wh(a,l-j|0);v=+(t>>>0)+4294967296.0*+(s>>>0);s=(r|0)<0;if(!s){t=f[a>>2]|0;j=0;i=0;do{c=b+(i<<3)|0;k=f[c>>2]|0;p=f[c+4>>2]|0;c=~~((+(k>>>0)+4294967296.0*+(p>>>0))/v*262144.0+.5)>>>0;m=((k|0)!=0|(p|0)!=0)&(c|0)==0?1:c;f[t+(i<<3)>>2]=m;j=m+j|0;i=i+1|0}while((i|0)!=(l|0));if((j|0)==262144){if(s){w=0;u=e;return w|0}}else{x=j;y=12}}else{x=0;y=12}if((y|0)==12){f[h>>2]=0;j=h+4|0;f[j>>2]=0;f[h+8>>2]=0;do if(l)if(l>>>0>1073741823)aq(h);else{i=l<<2;t=ln(i)|0;f[h>>2]=t;m=t+(l<<2)|0;f[h+8>>2]=m;sj(t|0,0,i|0)|0;f[j>>2]=m;z=t;A=m;break}else{z=0;A=0}while(0);if(!s?(f[z>>2]=0,r|0):0){m=1;do{f[z+(m<<2)>>2]=m;m=m+1|0}while((m|0)!=(l|0))}f[g>>2]=a;Cb(z,A,g);a:do if((x|0)<262144){g=(f[a>>2]|0)+(f[(f[j>>2]|0)+-4>>2]<<3)|0;f[g>>2]=262144-x+(f[g>>2]|0);B=0}else{g=f[h>>2]|0;if((r|0)<=0){A=(x|0)>262144;while(1)if(!A){B=0;break a}}A=f[a>>2]|0;z=x+-262144|0;m=x;while(1){v=262144.0/+(m|0);t=r;i=z;c=m;while(1){p=A+(f[g+(t<<2)>>2]<<3)|0;k=f[p>>2]|0;if(k>>>0<2){y=28;break}q=k-~~+J(+(v*+(k>>>0)))|0;o=(q|0)==0?1:q;q=(o|0)<(k|0)?o:k+-1|0;o=(q|0)>(i|0)?i:q;f[p>>2]=k-o;k=c-o|0;p=i-o|0;if((k|0)==262144){C=p;D=262144;break}if((t|0)>1){t=t+-1|0;i=p;c=k}else{C=p;D=k;break}}if((y|0)==28){y=0;if((t|0)==(r|0)){B=1;break a}else{C=i;D=c}}if((C|0)>0){z=C;m=D}else{B=0;break}}}while(0);D=f[h>>2]|0;if(D|0){h=f[j>>2]|0;if((h|0)!=(D|0))f[j>>2]=h+(~((h+-4-D|0)>>>2)<<2);Oq(D)}if((B|0)!=0|s){w=0;u=e;return w|0}}B=f[a>>2]|0;D=0;h=0;do{f[B+(D<<3)+4>>2]=h;h=(f[B+(D<<3)>>2]|0)+h|0;D=D+1|0}while((D|0)!=(l|0));if((h|0)!=262144){w=0;u=e;return w|0}if(s)E=0.0;else{s=f[a>>2]|0;h=0;v=0.0;while(1){D=f[s+(h<<3)>>2]|0;if(!D)F=v;else{B=b+(h<<3)|0;G=+((f[B>>2]|0)>>>0)+4294967296.0*+((f[B+4>>2]|0)>>>0);F=v+ +Zg(+(D>>>0)*3.814697265625e-06)*G}h=h+1|0;if((h|0)==(l|0)){E=F;break}else v=F}}F=+W(+-E);l=+K(F)>=1.0?(F>0.0?~~+Y(+J(F/4294967296.0),4294967295.0)>>>0:~~+W((F-+(~~F>>>0))/4294967296.0)>>>0):0;h=a+16|0;f[h>>2]=~~F>>>0;f[h+4>>2]=l;w=Le(a,d)|0;u=e;return w|0}function $c(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0.0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0.0,F=0.0,G=0.0;e=u;u=u+16|0;g=e;h=e+4|0;if((c|0)>0){i=0;j=0;k=0;l=0;while(1){m=b+(j<<3)|0;n=f[m>>2]|0;o=f[m+4>>2]|0;m=Vn(n|0,o|0,k|0,l|0)|0;p=I;q=(n|0)==0&(o|0)==0?i:j;j=j+1|0;if((j|0)==(c|0)){r=q;s=p;t=m;break}else{i=q;k=m;l=p}}}else{r=0;s=0;t=0}l=r+1|0;f[a+12>>2]=l;k=a+4|0;i=f[k>>2]|0;c=f[a>>2]|0;j=i-c>>3;p=c;c=i;if(l>>>0<=j>>>0){if(l>>>0>>0?(i=p+(l<<3)|0,(i|0)!=(c|0)):0)f[k>>2]=c+(~((c+-8-i|0)>>>3)<<3)}else wh(a,l-j|0);v=+(t>>>0)+4294967296.0*+(s>>>0);s=(r|0)<0;if(!s){t=f[a>>2]|0;j=0;i=0;do{c=b+(i<<3)|0;k=f[c>>2]|0;p=f[c+4>>2]|0;c=~~((+(k>>>0)+4294967296.0*+(p>>>0))/v*65536.0+.5)>>>0;m=((k|0)!=0|(p|0)!=0)&(c|0)==0?1:c;f[t+(i<<3)>>2]=m;j=m+j|0;i=i+1|0}while((i|0)!=(l|0));if((j|0)==65536){if(s){w=0;u=e;return w|0}}else{x=j;y=12}}else{x=0;y=12}if((y|0)==12){f[h>>2]=0;j=h+4|0;f[j>>2]=0;f[h+8>>2]=0;do if(l)if(l>>>0>1073741823)aq(h);else{i=l<<2;t=ln(i)|0;f[h>>2]=t;m=t+(l<<2)|0;f[h+8>>2]=m;sj(t|0,0,i|0)|0;f[j>>2]=m;z=t;A=m;break}else{z=0;A=0}while(0);if(!s?(f[z>>2]=0,r|0):0){m=1;do{f[z+(m<<2)>>2]=m;m=m+1|0}while((m|0)!=(l|0))}f[g>>2]=a;Db(z,A,g);a:do if((x|0)<65536){g=(f[a>>2]|0)+(f[(f[j>>2]|0)+-4>>2]<<3)|0;f[g>>2]=65536-x+(f[g>>2]|0);B=0}else{g=f[h>>2]|0;if((r|0)<=0){A=(x|0)>65536;while(1)if(!A){B=0;break a}}A=f[a>>2]|0;z=x+-65536|0;m=x;while(1){v=65536.0/+(m|0);t=r;i=z;c=m;while(1){p=A+(f[g+(t<<2)>>2]<<3)|0;k=f[p>>2]|0;if(k>>>0<2){y=28;break}q=k-~~+J(+(v*+(k>>>0)))|0;o=(q|0)==0?1:q;q=(o|0)<(k|0)?o:k+-1|0;o=(q|0)>(i|0)?i:q;f[p>>2]=k-o;k=c-o|0;p=i-o|0;if((k|0)==65536){C=p;D=65536;break}if((t|0)>1){t=t+-1|0;i=p;c=k}else{C=p;D=k;break}}if((y|0)==28){y=0;if((t|0)==(r|0)){B=1;break a}else{C=i;D=c}}if((C|0)>0){z=C;m=D}else{B=0;break}}}while(0);D=f[h>>2]|0;if(D|0){h=f[j>>2]|0;if((h|0)!=(D|0))f[j>>2]=h+(~((h+-4-D|0)>>>2)<<2);Oq(D)}if((B|0)!=0|s){w=0;u=e;return w|0}}B=f[a>>2]|0;D=0;h=0;do{f[B+(D<<3)+4>>2]=h;h=(f[B+(D<<3)>>2]|0)+h|0;D=D+1|0}while((D|0)!=(l|0));if((h|0)!=65536){w=0;u=e;return w|0}if(s)E=0.0;else{s=f[a>>2]|0;h=0;v=0.0;while(1){D=f[s+(h<<3)>>2]|0;if(!D)F=v;else{B=b+(h<<3)|0;G=+((f[B>>2]|0)>>>0)+4294967296.0*+((f[B+4>>2]|0)>>>0);F=v+ +Zg(+(D>>>0)*.0000152587890625)*G}h=h+1|0;if((h|0)==(l|0)){E=F;break}else v=F}}F=+W(+-E);l=+K(F)>=1.0?(F>0.0?~~+Y(+J(F/4294967296.0),4294967295.0)>>>0:~~+W((F-+(~~F>>>0))/4294967296.0)>>>0):0;h=a+16|0;f[h>>2]=~~F>>>0;f[h+4>>2]=l;w=Le(a,d)|0;u=e;return w|0}function ad(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0.0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0.0,F=0.0,G=0.0;e=u;u=u+16|0;g=e;h=e+4|0;if((c|0)>0){i=0;j=0;k=0;l=0;while(1){m=b+(j<<3)|0;n=f[m>>2]|0;o=f[m+4>>2]|0;m=Vn(n|0,o|0,k|0,l|0)|0;p=I;q=(n|0)==0&(o|0)==0?i:j;j=j+1|0;if((j|0)==(c|0)){r=q;s=p;t=m;break}else{i=q;k=m;l=p}}}else{r=0;s=0;t=0}l=r+1|0;f[a+12>>2]=l;k=a+4|0;i=f[k>>2]|0;c=f[a>>2]|0;j=i-c>>3;p=c;c=i;if(l>>>0<=j>>>0){if(l>>>0>>0?(i=p+(l<<3)|0,(i|0)!=(c|0)):0)f[k>>2]=c+(~((c+-8-i|0)>>>3)<<3)}else wh(a,l-j|0);v=+(t>>>0)+4294967296.0*+(s>>>0);s=(r|0)<0;if(!s){t=f[a>>2]|0;j=0;i=0;do{c=b+(i<<3)|0;k=f[c>>2]|0;p=f[c+4>>2]|0;c=~~((+(k>>>0)+4294967296.0*+(p>>>0))/v*32768.0+.5)>>>0;m=((k|0)!=0|(p|0)!=0)&(c|0)==0?1:c;f[t+(i<<3)>>2]=m;j=m+j|0;i=i+1|0}while((i|0)!=(l|0));if((j|0)==32768){if(s){w=0;u=e;return w|0}}else{x=j;y=12}}else{x=0;y=12}if((y|0)==12){f[h>>2]=0;j=h+4|0;f[j>>2]=0;f[h+8>>2]=0;do if(l)if(l>>>0>1073741823)aq(h);else{i=l<<2;t=ln(i)|0;f[h>>2]=t;m=t+(l<<2)|0;f[h+8>>2]=m;sj(t|0,0,i|0)|0;f[j>>2]=m;z=t;A=m;break}else{z=0;A=0}while(0);if(!s?(f[z>>2]=0,r|0):0){m=1;do{f[z+(m<<2)>>2]=m;m=m+1|0}while((m|0)!=(l|0))}f[g>>2]=a;Eb(z,A,g);a:do if((x|0)<32768){g=(f[a>>2]|0)+(f[(f[j>>2]|0)+-4>>2]<<3)|0;f[g>>2]=32768-x+(f[g>>2]|0);B=0}else{g=f[h>>2]|0;if((r|0)<=0){A=(x|0)>32768;while(1)if(!A){B=0;break a}}A=f[a>>2]|0;z=x+-32768|0;m=x;while(1){v=32768.0/+(m|0);t=r;i=z;c=m;while(1){p=A+(f[g+(t<<2)>>2]<<3)|0;k=f[p>>2]|0;if(k>>>0<2){y=28;break}q=k-~~+J(+(v*+(k>>>0)))|0;o=(q|0)==0?1:q;q=(o|0)<(k|0)?o:k+-1|0;o=(q|0)>(i|0)?i:q;f[p>>2]=k-o;k=c-o|0;p=i-o|0;if((k|0)==32768){C=p;D=32768;break}if((t|0)>1){t=t+-1|0;i=p;c=k}else{C=p;D=k;break}}if((y|0)==28){y=0;if((t|0)==(r|0)){B=1;break a}else{C=i;D=c}}if((C|0)>0){z=C;m=D}else{B=0;break}}}while(0);D=f[h>>2]|0;if(D|0){h=f[j>>2]|0;if((h|0)!=(D|0))f[j>>2]=h+(~((h+-4-D|0)>>>2)<<2);Oq(D)}if((B|0)!=0|s){w=0;u=e;return w|0}}B=f[a>>2]|0;D=0;h=0;do{f[B+(D<<3)+4>>2]=h;h=(f[B+(D<<3)>>2]|0)+h|0;D=D+1|0}while((D|0)!=(l|0));if((h|0)!=32768){w=0;u=e;return w|0}if(s)E=0.0;else{s=f[a>>2]|0;h=0;v=0.0;while(1){D=f[s+(h<<3)>>2]|0;if(!D)F=v;else{B=b+(h<<3)|0;G=+((f[B>>2]|0)>>>0)+4294967296.0*+((f[B+4>>2]|0)>>>0);F=v+ +Zg(+(D>>>0)*.000030517578125)*G}h=h+1|0;if((h|0)==(l|0)){E=F;break}else v=F}}F=+W(+-E);l=+K(F)>=1.0?(F>0.0?~~+Y(+J(F/4294967296.0),4294967295.0)>>>0:~~+W((F-+(~~F>>>0))/4294967296.0)>>>0):0;h=a+16|0;f[h>>2]=~~F>>>0;f[h+4>>2]=l;w=Le(a,d)|0;u=e;return w|0}function bd(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0.0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0.0,F=0.0,G=0.0;e=u;u=u+16|0;g=e;h=e+4|0;if((c|0)>0){i=0;j=0;k=0;l=0;while(1){m=b+(j<<3)|0;n=f[m>>2]|0;o=f[m+4>>2]|0;m=Vn(n|0,o|0,k|0,l|0)|0;p=I;q=(n|0)==0&(o|0)==0?i:j;j=j+1|0;if((j|0)==(c|0)){r=q;s=p;t=m;break}else{i=q;k=m;l=p}}}else{r=0;s=0;t=0}l=r+1|0;f[a+12>>2]=l;k=a+4|0;i=f[k>>2]|0;c=f[a>>2]|0;j=i-c>>3;p=c;c=i;if(l>>>0<=j>>>0){if(l>>>0>>0?(i=p+(l<<3)|0,(i|0)!=(c|0)):0)f[k>>2]=c+(~((c+-8-i|0)>>>3)<<3)}else wh(a,l-j|0);v=+(t>>>0)+4294967296.0*+(s>>>0);s=(r|0)<0;if(!s){t=f[a>>2]|0;j=0;i=0;do{c=b+(i<<3)|0;k=f[c>>2]|0;p=f[c+4>>2]|0;c=~~((+(k>>>0)+4294967296.0*+(p>>>0))/v*8192.0+.5)>>>0;m=((k|0)!=0|(p|0)!=0)&(c|0)==0?1:c;f[t+(i<<3)>>2]=m;j=m+j|0;i=i+1|0}while((i|0)!=(l|0));if((j|0)==8192){if(s){w=0;u=e;return w|0}}else{x=j;y=12}}else{x=0;y=12}if((y|0)==12){f[h>>2]=0;j=h+4|0;f[j>>2]=0;f[h+8>>2]=0;do if(l)if(l>>>0>1073741823)aq(h);else{i=l<<2;t=ln(i)|0;f[h>>2]=t;m=t+(l<<2)|0;f[h+8>>2]=m;sj(t|0,0,i|0)|0;f[j>>2]=m;z=t;A=m;break}else{z=0;A=0}while(0);if(!s?(f[z>>2]=0,r|0):0){m=1;do{f[z+(m<<2)>>2]=m;m=m+1|0}while((m|0)!=(l|0))}f[g>>2]=a;Gb(z,A,g);a:do if((x|0)<8192){g=(f[a>>2]|0)+(f[(f[j>>2]|0)+-4>>2]<<3)|0;f[g>>2]=8192-x+(f[g>>2]|0);B=0}else{g=f[h>>2]|0;if((r|0)<=0){A=(x|0)>8192;while(1)if(!A){B=0;break a}}A=f[a>>2]|0;z=x+-8192|0;m=x;while(1){v=8192.0/+(m|0);t=r;i=z;c=m;while(1){p=A+(f[g+(t<<2)>>2]<<3)|0;k=f[p>>2]|0;if(k>>>0<2){y=28;break}q=k-~~+J(+(v*+(k>>>0)))|0;o=(q|0)==0?1:q;q=(o|0)<(k|0)?o:k+-1|0;o=(q|0)>(i|0)?i:q;f[p>>2]=k-o;k=c-o|0;p=i-o|0;if((k|0)==8192){C=p;D=8192;break}if((t|0)>1){t=t+-1|0;i=p;c=k}else{C=p;D=k;break}}if((y|0)==28){y=0;if((t|0)==(r|0)){B=1;break a}else{C=i;D=c}}if((C|0)>0){z=C;m=D}else{B=0;break}}}while(0);D=f[h>>2]|0;if(D|0){h=f[j>>2]|0;if((h|0)!=(D|0))f[j>>2]=h+(~((h+-4-D|0)>>>2)<<2);Oq(D)}if((B|0)!=0|s){w=0;u=e;return w|0}}B=f[a>>2]|0;D=0;h=0;do{f[B+(D<<3)+4>>2]=h;h=(f[B+(D<<3)>>2]|0)+h|0;D=D+1|0}while((D|0)!=(l|0));if((h|0)!=8192){w=0;u=e;return w|0}if(s)E=0.0;else{s=f[a>>2]|0;h=0;v=0.0;while(1){D=f[s+(h<<3)>>2]|0;if(!D)F=v;else{B=b+(h<<3)|0;G=+((f[B>>2]|0)>>>0)+4294967296.0*+((f[B+4>>2]|0)>>>0);F=v+ +Zg(+(D>>>0)*.0001220703125)*G}h=h+1|0;if((h|0)==(l|0)){E=F;break}else v=F}}F=+W(+-E);l=+K(F)>=1.0?(F>0.0?~~+Y(+J(F/4294967296.0),4294967295.0)>>>0:~~+W((F-+(~~F>>>0))/4294967296.0)>>>0):0;h=a+16|0;f[h>>2]=~~F>>>0;f[h+4>>2]=l;w=Le(a,d)|0;u=e;return w|0}function cd(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0.0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0.0,F=0.0,G=0.0;e=u;u=u+16|0;g=e;h=e+4|0;if((c|0)>0){i=0;j=0;k=0;l=0;while(1){m=b+(j<<3)|0;n=f[m>>2]|0;o=f[m+4>>2]|0;m=Vn(n|0,o|0,k|0,l|0)|0;p=I;q=(n|0)==0&(o|0)==0?i:j;j=j+1|0;if((j|0)==(c|0)){r=q;s=p;t=m;break}else{i=q;k=m;l=p}}}else{r=0;s=0;t=0}l=r+1|0;f[a+12>>2]=l;k=a+4|0;i=f[k>>2]|0;c=f[a>>2]|0;j=i-c>>3;p=c;c=i;if(l>>>0<=j>>>0){if(l>>>0>>0?(i=p+(l<<3)|0,(i|0)!=(c|0)):0)f[k>>2]=c+(~((c+-8-i|0)>>>3)<<3)}else wh(a,l-j|0);v=+(t>>>0)+4294967296.0*+(s>>>0);s=(r|0)<0;if(!s){t=f[a>>2]|0;j=0;i=0;do{c=b+(i<<3)|0;k=f[c>>2]|0;p=f[c+4>>2]|0;c=~~((+(k>>>0)+4294967296.0*+(p>>>0))/v*4096.0+.5)>>>0;m=((k|0)!=0|(p|0)!=0)&(c|0)==0?1:c;f[t+(i<<3)>>2]=m;j=m+j|0;i=i+1|0}while((i|0)!=(l|0));if((j|0)==4096){if(s){w=0;u=e;return w|0}}else{x=j;y=12}}else{x=0;y=12}if((y|0)==12){f[h>>2]=0;j=h+4|0;f[j>>2]=0;f[h+8>>2]=0;do if(l)if(l>>>0>1073741823)aq(h);else{i=l<<2;t=ln(i)|0;f[h>>2]=t;m=t+(l<<2)|0;f[h+8>>2]=m;sj(t|0,0,i|0)|0;f[j>>2]=m;z=t;A=m;break}else{z=0;A=0}while(0);if(!s?(f[z>>2]=0,r|0):0){m=1;do{f[z+(m<<2)>>2]=m;m=m+1|0}while((m|0)!=(l|0))}f[g>>2]=a;Hb(z,A,g);a:do if((x|0)<4096){g=(f[a>>2]|0)+(f[(f[j>>2]|0)+-4>>2]<<3)|0;f[g>>2]=4096-x+(f[g>>2]|0);B=0}else{g=f[h>>2]|0;if((r|0)<=0){A=(x|0)>4096;while(1)if(!A){B=0;break a}}A=f[a>>2]|0;z=x+-4096|0;m=x;while(1){v=4096.0/+(m|0);t=r;i=z;c=m;while(1){p=A+(f[g+(t<<2)>>2]<<3)|0;k=f[p>>2]|0;if(k>>>0<2){y=28;break}q=k-~~+J(+(v*+(k>>>0)))|0;o=(q|0)==0?1:q;q=(o|0)<(k|0)?o:k+-1|0;o=(q|0)>(i|0)?i:q;f[p>>2]=k-o;k=c-o|0;p=i-o|0;if((k|0)==4096){C=p;D=4096;break}if((t|0)>1){t=t+-1|0;i=p;c=k}else{C=p;D=k;break}}if((y|0)==28){y=0;if((t|0)==(r|0)){B=1;break a}else{C=i;D=c}}if((C|0)>0){z=C;m=D}else{B=0;break}}}while(0);D=f[h>>2]|0;if(D|0){h=f[j>>2]|0;if((h|0)!=(D|0))f[j>>2]=h+(~((h+-4-D|0)>>>2)<<2);Oq(D)}if((B|0)!=0|s){w=0;u=e;return w|0}}B=f[a>>2]|0;D=0;h=0;do{f[B+(D<<3)+4>>2]=h;h=(f[B+(D<<3)>>2]|0)+h|0;D=D+1|0}while((D|0)!=(l|0));if((h|0)!=4096){w=0;u=e;return w|0}if(s)E=0.0;else{s=f[a>>2]|0;h=0;v=0.0;while(1){D=f[s+(h<<3)>>2]|0;if(!D)F=v;else{B=b+(h<<3)|0;G=+((f[B>>2]|0)>>>0)+4294967296.0*+((f[B+4>>2]|0)>>>0);F=v+ +Zg(+(D>>>0)*.000244140625)*G}h=h+1|0;if((h|0)==(l|0)){E=F;break}else v=F}}F=+W(+-E);l=+K(F)>=1.0?(F>0.0?~~+Y(+J(F/4294967296.0),4294967295.0)>>>0:~~+W((F-+(~~F>>>0))/4294967296.0)>>>0):0;h=a+16|0;f[h>>2]=~~F>>>0;f[h+4>>2]=l;w=Le(a,d)|0;u=e;return w|0}function dd(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0.0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0.0,F=0.0,G=0.0;e=u;u=u+16|0;g=e;h=e+4|0;if((c|0)>0){i=0;j=0;k=0;l=0;while(1){m=b+(j<<3)|0;n=f[m>>2]|0;o=f[m+4>>2]|0;m=Vn(n|0,o|0,k|0,l|0)|0;p=I;q=(n|0)==0&(o|0)==0?i:j;j=j+1|0;if((j|0)==(c|0)){r=q;s=p;t=m;break}else{i=q;k=m;l=p}}}else{r=0;s=0;t=0}l=r+1|0;f[a+12>>2]=l;k=a+4|0;i=f[k>>2]|0;c=f[a>>2]|0;j=i-c>>3;p=c;c=i;if(l>>>0<=j>>>0){if(l>>>0>>0?(i=p+(l<<3)|0,(i|0)!=(c|0)):0)f[k>>2]=c+(~((c+-8-i|0)>>>3)<<3)}else wh(a,l-j|0);v=+(t>>>0)+4294967296.0*+(s>>>0);s=(r|0)<0;if(!s){t=f[a>>2]|0;j=0;i=0;do{c=b+(i<<3)|0;k=f[c>>2]|0;p=f[c+4>>2]|0;c=~~((+(k>>>0)+4294967296.0*+(p>>>0))/v*4096.0+.5)>>>0;m=((k|0)!=0|(p|0)!=0)&(c|0)==0?1:c;f[t+(i<<3)>>2]=m;j=m+j|0;i=i+1|0}while((i|0)!=(l|0));if((j|0)==4096){if(s){w=0;u=e;return w|0}}else{x=j;y=12}}else{x=0;y=12}if((y|0)==12){f[h>>2]=0;j=h+4|0;f[j>>2]=0;f[h+8>>2]=0;do if(l)if(l>>>0>1073741823)aq(h);else{i=l<<2;t=ln(i)|0;f[h>>2]=t;m=t+(l<<2)|0;f[h+8>>2]=m;sj(t|0,0,i|0)|0;f[j>>2]=m;z=t;A=m;break}else{z=0;A=0}while(0);if(!s?(f[z>>2]=0,r|0):0){m=1;do{f[z+(m<<2)>>2]=m;m=m+1|0}while((m|0)!=(l|0))}f[g>>2]=a;Ib(z,A,g);a:do if((x|0)<4096){g=(f[a>>2]|0)+(f[(f[j>>2]|0)+-4>>2]<<3)|0;f[g>>2]=4096-x+(f[g>>2]|0);B=0}else{g=f[h>>2]|0;if((r|0)<=0){A=(x|0)>4096;while(1)if(!A){B=0;break a}}A=f[a>>2]|0;z=x+-4096|0;m=x;while(1){v=4096.0/+(m|0);t=r;i=z;c=m;while(1){p=A+(f[g+(t<<2)>>2]<<3)|0;k=f[p>>2]|0;if(k>>>0<2){y=28;break}q=k-~~+J(+(v*+(k>>>0)))|0;o=(q|0)==0?1:q;q=(o|0)<(k|0)?o:k+-1|0;o=(q|0)>(i|0)?i:q;f[p>>2]=k-o;k=c-o|0;p=i-o|0;if((k|0)==4096){C=p;D=4096;break}if((t|0)>1){t=t+-1|0;i=p;c=k}else{C=p;D=k;break}}if((y|0)==28){y=0;if((t|0)==(r|0)){B=1;break a}else{C=i;D=c}}if((C|0)>0){z=C;m=D}else{B=0;break}}}while(0);D=f[h>>2]|0;if(D|0){h=f[j>>2]|0;if((h|0)!=(D|0))f[j>>2]=h+(~((h+-4-D|0)>>>2)<<2);Oq(D)}if((B|0)!=0|s){w=0;u=e;return w|0}}B=f[a>>2]|0;D=0;h=0;do{f[B+(D<<3)+4>>2]=h;h=(f[B+(D<<3)>>2]|0)+h|0;D=D+1|0}while((D|0)!=(l|0));if((h|0)!=4096){w=0;u=e;return w|0}if(s)E=0.0;else{s=f[a>>2]|0;h=0;v=0.0;while(1){D=f[s+(h<<3)>>2]|0;if(!D)F=v;else{B=b+(h<<3)|0;G=+((f[B>>2]|0)>>>0)+4294967296.0*+((f[B+4>>2]|0)>>>0);F=v+ +Zg(+(D>>>0)*.000244140625)*G}h=h+1|0;if((h|0)==(l|0)){E=F;break}else v=F}}F=+W(+-E);l=+K(F)>=1.0?(F>0.0?~~+Y(+J(F/4294967296.0),4294967295.0)>>>0:~~+W((F-+(~~F>>>0))/4294967296.0)>>>0):0;h=a+16|0;f[h>>2]=~~F>>>0;f[h+4>>2]=l;w=Le(a,d)|0;u=e;return w|0}function ed(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0.0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0.0,F=0.0,G=0.0;e=u;u=u+16|0;g=e;h=e+4|0;if((c|0)>0){i=0;j=0;k=0;l=0;while(1){m=b+(j<<3)|0;n=f[m>>2]|0;o=f[m+4>>2]|0;m=Vn(n|0,o|0,k|0,l|0)|0;p=I;q=(n|0)==0&(o|0)==0?i:j;j=j+1|0;if((j|0)==(c|0)){r=q;s=p;t=m;break}else{i=q;k=m;l=p}}}else{r=0;s=0;t=0}l=r+1|0;f[a+12>>2]=l;k=a+4|0;i=f[k>>2]|0;c=f[a>>2]|0;j=i-c>>3;p=c;c=i;if(l>>>0<=j>>>0){if(l>>>0>>0?(i=p+(l<<3)|0,(i|0)!=(c|0)):0)f[k>>2]=c+(~((c+-8-i|0)>>>3)<<3)}else wh(a,l-j|0);v=+(t>>>0)+4294967296.0*+(s>>>0);s=(r|0)<0;if(!s){t=f[a>>2]|0;j=0;i=0;do{c=b+(i<<3)|0;k=f[c>>2]|0;p=f[c+4>>2]|0;c=~~((+(k>>>0)+4294967296.0*+(p>>>0))/v*4096.0+.5)>>>0;m=((k|0)!=0|(p|0)!=0)&(c|0)==0?1:c;f[t+(i<<3)>>2]=m;j=m+j|0;i=i+1|0}while((i|0)!=(l|0));if((j|0)==4096){if(s){w=0;u=e;return w|0}}else{x=j;y=12}}else{x=0;y=12}if((y|0)==12){f[h>>2]=0;j=h+4|0;f[j>>2]=0;f[h+8>>2]=0;do if(l)if(l>>>0>1073741823)aq(h);else{i=l<<2;t=ln(i)|0;f[h>>2]=t;m=t+(l<<2)|0;f[h+8>>2]=m;sj(t|0,0,i|0)|0;f[j>>2]=m;z=t;A=m;break}else{z=0;A=0}while(0);if(!s?(f[z>>2]=0,r|0):0){m=1;do{f[z+(m<<2)>>2]=m;m=m+1|0}while((m|0)!=(l|0))}f[g>>2]=a;Jb(z,A,g);a:do if((x|0)<4096){g=(f[a>>2]|0)+(f[(f[j>>2]|0)+-4>>2]<<3)|0;f[g>>2]=4096-x+(f[g>>2]|0);B=0}else{g=f[h>>2]|0;if((r|0)<=0){A=(x|0)>4096;while(1)if(!A){B=0;break a}}A=f[a>>2]|0;z=x+-4096|0;m=x;while(1){v=4096.0/+(m|0);t=r;i=z;c=m;while(1){p=A+(f[g+(t<<2)>>2]<<3)|0;k=f[p>>2]|0;if(k>>>0<2){y=28;break}q=k-~~+J(+(v*+(k>>>0)))|0;o=(q|0)==0?1:q;q=(o|0)<(k|0)?o:k+-1|0;o=(q|0)>(i|0)?i:q;f[p>>2]=k-o;k=c-o|0;p=i-o|0;if((k|0)==4096){C=p;D=4096;break}if((t|0)>1){t=t+-1|0;i=p;c=k}else{C=p;D=k;break}}if((y|0)==28){y=0;if((t|0)==(r|0)){B=1;break a}else{C=i;D=c}}if((C|0)>0){z=C;m=D}else{B=0;break}}}while(0);D=f[h>>2]|0;if(D|0){h=f[j>>2]|0;if((h|0)!=(D|0))f[j>>2]=h+(~((h+-4-D|0)>>>2)<<2);Oq(D)}if((B|0)!=0|s){w=0;u=e;return w|0}}B=f[a>>2]|0;D=0;h=0;do{f[B+(D<<3)+4>>2]=h;h=(f[B+(D<<3)>>2]|0)+h|0;D=D+1|0}while((D|0)!=(l|0));if((h|0)!=4096){w=0;u=e;return w|0}if(s)E=0.0;else{s=f[a>>2]|0;h=0;v=0.0;while(1){D=f[s+(h<<3)>>2]|0;if(!D)F=v;else{B=b+(h<<3)|0;G=+((f[B>>2]|0)>>>0)+4294967296.0*+((f[B+4>>2]|0)>>>0);F=v+ +Zg(+(D>>>0)*.000244140625)*G}h=h+1|0;if((h|0)==(l|0)){E=F;break}else v=F}}F=+W(+-E);l=+K(F)>=1.0?(F>0.0?~~+Y(+J(F/4294967296.0),4294967295.0)>>>0:~~+W((F-+(~~F>>>0))/4294967296.0)>>>0):0;h=a+16|0;f[h>>2]=~~F>>>0;f[h+4>>2]=l;w=Le(a,d)|0;u=e;return w|0}function fd(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0.0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0.0,F=0.0,G=0.0;e=u;u=u+16|0;g=e;h=e+4|0;if((c|0)>0){i=0;j=0;k=0;l=0;while(1){m=b+(j<<3)|0;n=f[m>>2]|0;o=f[m+4>>2]|0;m=Vn(n|0,o|0,k|0,l|0)|0;p=I;q=(n|0)==0&(o|0)==0?i:j;j=j+1|0;if((j|0)==(c|0)){r=q;s=p;t=m;break}else{i=q;k=m;l=p}}}else{r=0;s=0;t=0}l=r+1|0;f[a+12>>2]=l;k=a+4|0;i=f[k>>2]|0;c=f[a>>2]|0;j=i-c>>3;p=c;c=i;if(l>>>0<=j>>>0){if(l>>>0>>0?(i=p+(l<<3)|0,(i|0)!=(c|0)):0)f[k>>2]=c+(~((c+-8-i|0)>>>3)<<3)}else wh(a,l-j|0);v=+(t>>>0)+4294967296.0*+(s>>>0);s=(r|0)<0;if(!s){t=f[a>>2]|0;j=0;i=0;do{c=b+(i<<3)|0;k=f[c>>2]|0;p=f[c+4>>2]|0;c=~~((+(k>>>0)+4294967296.0*+(p>>>0))/v*4096.0+.5)>>>0;m=((k|0)!=0|(p|0)!=0)&(c|0)==0?1:c;f[t+(i<<3)>>2]=m;j=m+j|0;i=i+1|0}while((i|0)!=(l|0));if((j|0)==4096){if(s){w=0;u=e;return w|0}}else{x=j;y=12}}else{x=0;y=12}if((y|0)==12){f[h>>2]=0;j=h+4|0;f[j>>2]=0;f[h+8>>2]=0;do if(l)if(l>>>0>1073741823)aq(h);else{i=l<<2;t=ln(i)|0;f[h>>2]=t;m=t+(l<<2)|0;f[h+8>>2]=m;sj(t|0,0,i|0)|0;f[j>>2]=m;z=t;A=m;break}else{z=0;A=0}while(0);if(!s?(f[z>>2]=0,r|0):0){m=1;do{f[z+(m<<2)>>2]=m;m=m+1|0}while((m|0)!=(l|0))}f[g>>2]=a;Kb(z,A,g);a:do if((x|0)<4096){g=(f[a>>2]|0)+(f[(f[j>>2]|0)+-4>>2]<<3)|0;f[g>>2]=4096-x+(f[g>>2]|0);B=0}else{g=f[h>>2]|0;if((r|0)<=0){A=(x|0)>4096;while(1)if(!A){B=0;break a}}A=f[a>>2]|0;z=x+-4096|0;m=x;while(1){v=4096.0/+(m|0);t=r;i=z;c=m;while(1){p=A+(f[g+(t<<2)>>2]<<3)|0;k=f[p>>2]|0;if(k>>>0<2){y=28;break}q=k-~~+J(+(v*+(k>>>0)))|0;o=(q|0)==0?1:q;q=(o|0)<(k|0)?o:k+-1|0;o=(q|0)>(i|0)?i:q;f[p>>2]=k-o;k=c-o|0;p=i-o|0;if((k|0)==4096){C=p;D=4096;break}if((t|0)>1){t=t+-1|0;i=p;c=k}else{C=p;D=k;break}}if((y|0)==28){y=0;if((t|0)==(r|0)){B=1;break a}else{C=i;D=c}}if((C|0)>0){z=C;m=D}else{B=0;break}}}while(0);D=f[h>>2]|0;if(D|0){h=f[j>>2]|0;if((h|0)!=(D|0))f[j>>2]=h+(~((h+-4-D|0)>>>2)<<2);Oq(D)}if((B|0)!=0|s){w=0;u=e;return w|0}}B=f[a>>2]|0;D=0;h=0;do{f[B+(D<<3)+4>>2]=h;h=(f[B+(D<<3)>>2]|0)+h|0;D=D+1|0}while((D|0)!=(l|0));if((h|0)!=4096){w=0;u=e;return w|0}if(s)E=0.0;else{s=f[a>>2]|0;h=0;v=0.0;while(1){D=f[s+(h<<3)>>2]|0;if(!D)F=v;else{B=b+(h<<3)|0;G=+((f[B>>2]|0)>>>0)+4294967296.0*+((f[B+4>>2]|0)>>>0);F=v+ +Zg(+(D>>>0)*.000244140625)*G}h=h+1|0;if((h|0)==(l|0)){E=F;break}else v=F}}F=+W(+-E);l=+K(F)>=1.0?(F>0.0?~~+Y(+J(F/4294967296.0),4294967295.0)>>>0:~~+W((F-+(~~F>>>0))/4294967296.0)>>>0):0;h=a+16|0;f[h>>2]=~~F>>>0;f[h+4>>2]=l;w=Le(a,d)|0;u=e;return w|0}function gd(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0.0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0.0,F=0.0,G=0.0;e=u;u=u+16|0;g=e;h=e+4|0;if((c|0)>0){i=0;j=0;k=0;l=0;while(1){m=b+(j<<3)|0;n=f[m>>2]|0;o=f[m+4>>2]|0;m=Vn(n|0,o|0,k|0,l|0)|0;p=I;q=(n|0)==0&(o|0)==0?i:j;j=j+1|0;if((j|0)==(c|0)){r=q;s=p;t=m;break}else{i=q;k=m;l=p}}}else{r=0;s=0;t=0}l=r+1|0;f[a+12>>2]=l;k=a+4|0;i=f[k>>2]|0;c=f[a>>2]|0;j=i-c>>3;p=c;c=i;if(l>>>0<=j>>>0){if(l>>>0>>0?(i=p+(l<<3)|0,(i|0)!=(c|0)):0)f[k>>2]=c+(~((c+-8-i|0)>>>3)<<3)}else wh(a,l-j|0);v=+(t>>>0)+4294967296.0*+(s>>>0);s=(r|0)<0;if(!s){t=f[a>>2]|0;j=0;i=0;do{c=b+(i<<3)|0;k=f[c>>2]|0;p=f[c+4>>2]|0;c=~~((+(k>>>0)+4294967296.0*+(p>>>0))/v*4096.0+.5)>>>0;m=((k|0)!=0|(p|0)!=0)&(c|0)==0?1:c;f[t+(i<<3)>>2]=m;j=m+j|0;i=i+1|0}while((i|0)!=(l|0));if((j|0)==4096){if(s){w=0;u=e;return w|0}}else{x=j;y=12}}else{x=0;y=12}if((y|0)==12){f[h>>2]=0;j=h+4|0;f[j>>2]=0;f[h+8>>2]=0;do if(l)if(l>>>0>1073741823)aq(h);else{i=l<<2;t=ln(i)|0;f[h>>2]=t;m=t+(l<<2)|0;f[h+8>>2]=m;sj(t|0,0,i|0)|0;f[j>>2]=m;z=t;A=m;break}else{z=0;A=0}while(0);if(!s?(f[z>>2]=0,r|0):0){m=1;do{f[z+(m<<2)>>2]=m;m=m+1|0}while((m|0)!=(l|0))}f[g>>2]=a;Lb(z,A,g);a:do if((x|0)<4096){g=(f[a>>2]|0)+(f[(f[j>>2]|0)+-4>>2]<<3)|0;f[g>>2]=4096-x+(f[g>>2]|0);B=0}else{g=f[h>>2]|0;if((r|0)<=0){A=(x|0)>4096;while(1)if(!A){B=0;break a}}A=f[a>>2]|0;z=x+-4096|0;m=x;while(1){v=4096.0/+(m|0);t=r;i=z;c=m;while(1){p=A+(f[g+(t<<2)>>2]<<3)|0;k=f[p>>2]|0;if(k>>>0<2){y=28;break}q=k-~~+J(+(v*+(k>>>0)))|0;o=(q|0)==0?1:q;q=(o|0)<(k|0)?o:k+-1|0;o=(q|0)>(i|0)?i:q;f[p>>2]=k-o;k=c-o|0;p=i-o|0;if((k|0)==4096){C=p;D=4096;break}if((t|0)>1){t=t+-1|0;i=p;c=k}else{C=p;D=k;break}}if((y|0)==28){y=0;if((t|0)==(r|0)){B=1;break a}else{C=i;D=c}}if((C|0)>0){z=C;m=D}else{B=0;break}}}while(0);D=f[h>>2]|0;if(D|0){h=f[j>>2]|0;if((h|0)!=(D|0))f[j>>2]=h+(~((h+-4-D|0)>>>2)<<2);Oq(D)}if((B|0)!=0|s){w=0;u=e;return w|0}}B=f[a>>2]|0;D=0;h=0;do{f[B+(D<<3)+4>>2]=h;h=(f[B+(D<<3)>>2]|0)+h|0;D=D+1|0}while((D|0)!=(l|0));if((h|0)!=4096){w=0;u=e;return w|0}if(s)E=0.0;else{s=f[a>>2]|0;h=0;v=0.0;while(1){D=f[s+(h<<3)>>2]|0;if(!D)F=v;else{B=b+(h<<3)|0;G=+((f[B>>2]|0)>>>0)+4294967296.0*+((f[B+4>>2]|0)>>>0);F=v+ +Zg(+(D>>>0)*.000244140625)*G}h=h+1|0;if((h|0)==(l|0)){E=F;break}else v=F}}F=+W(+-E);l=+K(F)>=1.0?(F>0.0?~~+Y(+J(F/4294967296.0),4294967295.0)>>>0:~~+W((F-+(~~F>>>0))/4294967296.0)>>>0):0;h=a+16|0;f[h>>2]=~~F>>>0;f[h+4>>2]=l;w=Le(a,d)|0;u=e;return w|0}function hd(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0.0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0.0,F=0.0,G=0.0;e=u;u=u+16|0;g=e;h=e+4|0;if((c|0)>0){i=0;j=0;k=0;l=0;while(1){m=b+(j<<3)|0;n=f[m>>2]|0;o=f[m+4>>2]|0;m=Vn(n|0,o|0,k|0,l|0)|0;p=I;q=(n|0)==0&(o|0)==0?i:j;j=j+1|0;if((j|0)==(c|0)){r=q;s=p;t=m;break}else{i=q;k=m;l=p}}}else{r=0;s=0;t=0}l=r+1|0;f[a+12>>2]=l;k=a+4|0;i=f[k>>2]|0;c=f[a>>2]|0;j=i-c>>3;p=c;c=i;if(l>>>0<=j>>>0){if(l>>>0>>0?(i=p+(l<<3)|0,(i|0)!=(c|0)):0)f[k>>2]=c+(~((c+-8-i|0)>>>3)<<3)}else wh(a,l-j|0);v=+(t>>>0)+4294967296.0*+(s>>>0);s=(r|0)<0;if(!s){t=f[a>>2]|0;j=0;i=0;do{c=b+(i<<3)|0;k=f[c>>2]|0;p=f[c+4>>2]|0;c=~~((+(k>>>0)+4294967296.0*+(p>>>0))/v*4096.0+.5)>>>0;m=((k|0)!=0|(p|0)!=0)&(c|0)==0?1:c;f[t+(i<<3)>>2]=m;j=m+j|0;i=i+1|0}while((i|0)!=(l|0));if((j|0)==4096){if(s){w=0;u=e;return w|0}}else{x=j;y=12}}else{x=0;y=12}if((y|0)==12){f[h>>2]=0;j=h+4|0;f[j>>2]=0;f[h+8>>2]=0;do if(l)if(l>>>0>1073741823)aq(h);else{i=l<<2;t=ln(i)|0;f[h>>2]=t;m=t+(l<<2)|0;f[h+8>>2]=m;sj(t|0,0,i|0)|0;f[j>>2]=m;z=t;A=m;break}else{z=0;A=0}while(0);if(!s?(f[z>>2]=0,r|0):0){m=1;do{f[z+(m<<2)>>2]=m;m=m+1|0}while((m|0)!=(l|0))}f[g>>2]=a;Mb(z,A,g);a:do if((x|0)<4096){g=(f[a>>2]|0)+(f[(f[j>>2]|0)+-4>>2]<<3)|0;f[g>>2]=4096-x+(f[g>>2]|0);B=0}else{g=f[h>>2]|0;if((r|0)<=0){A=(x|0)>4096;while(1)if(!A){B=0;break a}}A=f[a>>2]|0;z=x+-4096|0;m=x;while(1){v=4096.0/+(m|0);t=r;i=z;c=m;while(1){p=A+(f[g+(t<<2)>>2]<<3)|0;k=f[p>>2]|0;if(k>>>0<2){y=28;break}q=k-~~+J(+(v*+(k>>>0)))|0;o=(q|0)==0?1:q;q=(o|0)<(k|0)?o:k+-1|0;o=(q|0)>(i|0)?i:q;f[p>>2]=k-o;k=c-o|0;p=i-o|0;if((k|0)==4096){C=p;D=4096;break}if((t|0)>1){t=t+-1|0;i=p;c=k}else{C=p;D=k;break}}if((y|0)==28){y=0;if((t|0)==(r|0)){B=1;break a}else{C=i;D=c}}if((C|0)>0){z=C;m=D}else{B=0;break}}}while(0);D=f[h>>2]|0;if(D|0){h=f[j>>2]|0;if((h|0)!=(D|0))f[j>>2]=h+(~((h+-4-D|0)>>>2)<<2);Oq(D)}if((B|0)!=0|s){w=0;u=e;return w|0}}B=f[a>>2]|0;D=0;h=0;do{f[B+(D<<3)+4>>2]=h;h=(f[B+(D<<3)>>2]|0)+h|0;D=D+1|0}while((D|0)!=(l|0));if((h|0)!=4096){w=0;u=e;return w|0}if(s)E=0.0;else{s=f[a>>2]|0;h=0;v=0.0;while(1){D=f[s+(h<<3)>>2]|0;if(!D)F=v;else{B=b+(h<<3)|0;G=+((f[B>>2]|0)>>>0)+4294967296.0*+((f[B+4>>2]|0)>>>0);F=v+ +Zg(+(D>>>0)*.000244140625)*G}h=h+1|0;if((h|0)==(l|0)){E=F;break}else v=F}}F=+W(+-E);l=+K(F)>=1.0?(F>0.0?~~+Y(+J(F/4294967296.0),4294967295.0)>>>0:~~+W((F-+(~~F>>>0))/4294967296.0)>>>0):0;h=a+16|0;f[h>>2]=~~F>>>0;f[h+4>>2]=l;w=Le(a,d)|0;u=e;return w|0}function id(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0.0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0.0,F=0.0,G=0.0;e=u;u=u+16|0;g=e;h=e+4|0;if((c|0)>0){i=0;j=0;k=0;l=0;while(1){m=b+(j<<3)|0;n=f[m>>2]|0;o=f[m+4>>2]|0;m=Vn(n|0,o|0,k|0,l|0)|0;p=I;q=(n|0)==0&(o|0)==0?i:j;j=j+1|0;if((j|0)==(c|0)){r=q;s=p;t=m;break}else{i=q;k=m;l=p}}}else{r=0;s=0;t=0}l=r+1|0;f[a+12>>2]=l;k=a+4|0;i=f[k>>2]|0;c=f[a>>2]|0;j=i-c>>3;p=c;c=i;if(l>>>0<=j>>>0){if(l>>>0>>0?(i=p+(l<<3)|0,(i|0)!=(c|0)):0)f[k>>2]=c+(~((c+-8-i|0)>>>3)<<3)}else wh(a,l-j|0);v=+(t>>>0)+4294967296.0*+(s>>>0);s=(r|0)<0;if(!s){t=f[a>>2]|0;j=0;i=0;do{c=b+(i<<3)|0;k=f[c>>2]|0;p=f[c+4>>2]|0;c=~~((+(k>>>0)+4294967296.0*+(p>>>0))/v*4096.0+.5)>>>0;m=((k|0)!=0|(p|0)!=0)&(c|0)==0?1:c;f[t+(i<<3)>>2]=m;j=m+j|0;i=i+1|0}while((i|0)!=(l|0));if((j|0)==4096){if(s){w=0;u=e;return w|0}}else{x=j;y=12}}else{x=0;y=12}if((y|0)==12){f[h>>2]=0;j=h+4|0;f[j>>2]=0;f[h+8>>2]=0;do if(l)if(l>>>0>1073741823)aq(h);else{i=l<<2;t=ln(i)|0;f[h>>2]=t;m=t+(l<<2)|0;f[h+8>>2]=m;sj(t|0,0,i|0)|0;f[j>>2]=m;z=t;A=m;break}else{z=0;A=0}while(0);if(!s?(f[z>>2]=0,r|0):0){m=1;do{f[z+(m<<2)>>2]=m;m=m+1|0}while((m|0)!=(l|0))}f[g>>2]=a;Nb(z,A,g);a:do if((x|0)<4096){g=(f[a>>2]|0)+(f[(f[j>>2]|0)+-4>>2]<<3)|0;f[g>>2]=4096-x+(f[g>>2]|0);B=0}else{g=f[h>>2]|0;if((r|0)<=0){A=(x|0)>4096;while(1)if(!A){B=0;break a}}A=f[a>>2]|0;z=x+-4096|0;m=x;while(1){v=4096.0/+(m|0);t=r;i=z;c=m;while(1){p=A+(f[g+(t<<2)>>2]<<3)|0;k=f[p>>2]|0;if(k>>>0<2){y=28;break}q=k-~~+J(+(v*+(k>>>0)))|0;o=(q|0)==0?1:q;q=(o|0)<(k|0)?o:k+-1|0;o=(q|0)>(i|0)?i:q;f[p>>2]=k-o;k=c-o|0;p=i-o|0;if((k|0)==4096){C=p;D=4096;break}if((t|0)>1){t=t+-1|0;i=p;c=k}else{C=p;D=k;break}}if((y|0)==28){y=0;if((t|0)==(r|0)){B=1;break a}else{C=i;D=c}}if((C|0)>0){z=C;m=D}else{B=0;break}}}while(0);D=f[h>>2]|0;if(D|0){h=f[j>>2]|0;if((h|0)!=(D|0))f[j>>2]=h+(~((h+-4-D|0)>>>2)<<2);Oq(D)}if((B|0)!=0|s){w=0;u=e;return w|0}}B=f[a>>2]|0;D=0;h=0;do{f[B+(D<<3)+4>>2]=h;h=(f[B+(D<<3)>>2]|0)+h|0;D=D+1|0}while((D|0)!=(l|0));if((h|0)!=4096){w=0;u=e;return w|0}if(s)E=0.0;else{s=f[a>>2]|0;h=0;v=0.0;while(1){D=f[s+(h<<3)>>2]|0;if(!D)F=v;else{B=b+(h<<3)|0;G=+((f[B>>2]|0)>>>0)+4294967296.0*+((f[B+4>>2]|0)>>>0);F=v+ +Zg(+(D>>>0)*.000244140625)*G}h=h+1|0;if((h|0)==(l|0)){E=F;break}else v=F}}F=+W(+-E);l=+K(F)>=1.0?(F>0.0?~~+Y(+J(F/4294967296.0),4294967295.0)>>>0:~~+W((F-+(~~F>>>0))/4294967296.0)>>>0):0;h=a+16|0;f[h>>2]=~~F>>>0;f[h+4>>2]=l;w=Le(a,d)|0;u=e;return w|0}function jd(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0.0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0.0,F=0.0,G=0.0;e=u;u=u+16|0;g=e;h=e+4|0;if((c|0)>0){i=0;j=0;k=0;l=0;while(1){m=b+(j<<3)|0;n=f[m>>2]|0;o=f[m+4>>2]|0;m=Vn(n|0,o|0,k|0,l|0)|0;p=I;q=(n|0)==0&(o|0)==0?i:j;j=j+1|0;if((j|0)==(c|0)){r=q;s=p;t=m;break}else{i=q;k=m;l=p}}}else{r=0;s=0;t=0}l=r+1|0;f[a+12>>2]=l;k=a+4|0;i=f[k>>2]|0;c=f[a>>2]|0;j=i-c>>3;p=c;c=i;if(l>>>0<=j>>>0){if(l>>>0>>0?(i=p+(l<<3)|0,(i|0)!=(c|0)):0)f[k>>2]=c+(~((c+-8-i|0)>>>3)<<3)}else wh(a,l-j|0);v=+(t>>>0)+4294967296.0*+(s>>>0);s=(r|0)<0;if(!s){t=f[a>>2]|0;j=0;i=0;do{c=b+(i<<3)|0;k=f[c>>2]|0;p=f[c+4>>2]|0;c=~~((+(k>>>0)+4294967296.0*+(p>>>0))/v*4096.0+.5)>>>0;m=((k|0)!=0|(p|0)!=0)&(c|0)==0?1:c;f[t+(i<<3)>>2]=m;j=m+j|0;i=i+1|0}while((i|0)!=(l|0));if((j|0)==4096){if(s){w=0;u=e;return w|0}}else{x=j;y=12}}else{x=0;y=12}if((y|0)==12){f[h>>2]=0;j=h+4|0;f[j>>2]=0;f[h+8>>2]=0;do if(l)if(l>>>0>1073741823)aq(h);else{i=l<<2;t=ln(i)|0;f[h>>2]=t;m=t+(l<<2)|0;f[h+8>>2]=m;sj(t|0,0,i|0)|0;f[j>>2]=m;z=t;A=m;break}else{z=0;A=0}while(0);if(!s?(f[z>>2]=0,r|0):0){m=1;do{f[z+(m<<2)>>2]=m;m=m+1|0}while((m|0)!=(l|0))}f[g>>2]=a;Ob(z,A,g);a:do if((x|0)<4096){g=(f[a>>2]|0)+(f[(f[j>>2]|0)+-4>>2]<<3)|0;f[g>>2]=4096-x+(f[g>>2]|0);B=0}else{g=f[h>>2]|0;if((r|0)<=0){A=(x|0)>4096;while(1)if(!A){B=0;break a}}A=f[a>>2]|0;z=x+-4096|0;m=x;while(1){v=4096.0/+(m|0);t=r;i=z;c=m;while(1){p=A+(f[g+(t<<2)>>2]<<3)|0;k=f[p>>2]|0;if(k>>>0<2){y=28;break}q=k-~~+J(+(v*+(k>>>0)))|0;o=(q|0)==0?1:q;q=(o|0)<(k|0)?o:k+-1|0;o=(q|0)>(i|0)?i:q;f[p>>2]=k-o;k=c-o|0;p=i-o|0;if((k|0)==4096){C=p;D=4096;break}if((t|0)>1){t=t+-1|0;i=p;c=k}else{C=p;D=k;break}}if((y|0)==28){y=0;if((t|0)==(r|0)){B=1;break a}else{C=i;D=c}}if((C|0)>0){z=C;m=D}else{B=0;break}}}while(0);D=f[h>>2]|0;if(D|0){h=f[j>>2]|0;if((h|0)!=(D|0))f[j>>2]=h+(~((h+-4-D|0)>>>2)<<2);Oq(D)}if((B|0)!=0|s){w=0;u=e;return w|0}}B=f[a>>2]|0;D=0;h=0;do{f[B+(D<<3)+4>>2]=h;h=(f[B+(D<<3)>>2]|0)+h|0;D=D+1|0}while((D|0)!=(l|0));if((h|0)!=4096){w=0;u=e;return w|0}if(s)E=0.0;else{s=f[a>>2]|0;h=0;v=0.0;while(1){D=f[s+(h<<3)>>2]|0;if(!D)F=v;else{B=b+(h<<3)|0;G=+((f[B>>2]|0)>>>0)+4294967296.0*+((f[B+4>>2]|0)>>>0);F=v+ +Zg(+(D>>>0)*.000244140625)*G}h=h+1|0;if((h|0)==(l|0)){E=F;break}else v=F}}F=+W(+-E);l=+K(F)>=1.0?(F>0.0?~~+Y(+J(F/4294967296.0),4294967295.0)>>>0:~~+W((F-+(~~F>>>0))/4294967296.0)>>>0):0;h=a+16|0;f[h>>2]=~~F>>>0;f[h+4>>2]=l;w=Le(a,d)|0;u=e;return w|0}function kd(a,b,c,d,e,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0;g=u;u=u+32|0;d=g+16|0;h=g+8|0;i=g;j=e>>>0>1073741823?-1:e<<2;k=Lq(j)|0;sj(k|0,0,j|0)|0;j=f[a+28>>2]|0;l=a+36|0;m=f[l>>2]|0;n=f[m+4>>2]|0;o=f[m>>2]|0;p=n-o|0;a:do if((p|0)>4){q=p>>2;r=f[a+32>>2]|0;s=a+8|0;t=h+4|0;v=i+4|0;w=d+4|0;x=j+12|0;y=(e|0)>0;z=k+4|0;A=h+4|0;B=i+4|0;C=d+4|0;D=q+-1|0;if(n-o>>2>>>0>D>>>0){E=q;F=D;G=o}else{H=m;aq(H)}while(1){D=f[G+(F<<2)>>2]|0;q=X(F,e)|0;if((D|0)!=-1?(I=f[(f[x>>2]|0)+(D<<2)>>2]|0,(I|0)!=-1):0){D=f[j>>2]|0;J=f[r>>2]|0;K=f[J+(f[D+(I<<2)>>2]<<2)>>2]|0;L=I+1|0;M=((L>>>0)%3|0|0)==0?I+-2|0:L;if((M|0)==-1)N=-1;else N=f[D+(M<<2)>>2]|0;M=f[J+(N<<2)>>2]|0;L=(((I>>>0)%3|0|0)==0?2:-1)+I|0;if((L|0)==-1)O=-1;else O=f[D+(L<<2)>>2]|0;L=f[J+(O<<2)>>2]|0;if((K|0)<(F|0)&(M|0)<(F|0)&(L|0)<(F|0)){J=X(K,e)|0;K=X(M,e)|0;M=X(L,e)|0;if(y){L=0;do{f[k+(L<<2)>>2]=(f[b+(L+M<<2)>>2]|0)+(f[b+(L+K<<2)>>2]|0)-(f[b+(L+J<<2)>>2]|0);L=L+1|0}while((L|0)!=(e|0))}L=b+(q<<2)|0;J=c+(q<<2)|0;K=f[L+4>>2]|0;M=f[k>>2]|0;D=f[z>>2]|0;f[h>>2]=f[L>>2];f[A>>2]=K;f[i>>2]=M;f[B>>2]=D;Od(d,s,h,i);f[J>>2]=f[d>>2];f[J+4>>2]=f[C>>2]}else P=15}else P=15;if((P|0)==15){P=0;J=b+(q<<2)|0;D=b+((X(E+-2|0,e)|0)<<2)|0;M=c+(q<<2)|0;K=f[J+4>>2]|0;L=f[D>>2]|0;I=f[D+4>>2]|0;f[h>>2]=f[J>>2];f[t>>2]=K;f[i>>2]=L;f[v>>2]=I;Od(d,s,h,i);f[M>>2]=f[d>>2];f[M+4>>2]=f[w>>2]}if((E|0)<=2)break a;M=f[l>>2]|0;G=f[M>>2]|0;I=F+-1|0;if((f[M+4>>2]|0)-G>>2>>>0<=I>>>0){H=M;break}else{M=F;F=I;E=M}}aq(H)}while(0);if((e|0)<=0){Q=a+8|0;R=b+4|0;S=f[b>>2]|0;T=f[R>>2]|0;U=k+4|0;V=f[k>>2]|0;W=f[U>>2]|0;f[h>>2]=S;Y=h+4|0;f[Y>>2]=T;f[i>>2]=V;Z=i+4|0;f[Z>>2]=W;Od(d,Q,h,i);_=f[d>>2]|0;f[c>>2]=_;$=d+4|0;aa=f[$>>2]|0;ba=c+4|0;f[ba>>2]=aa;Mq(k);u=g;return 1}sj(k|0,0,e<<2|0)|0;Q=a+8|0;R=b+4|0;S=f[b>>2]|0;T=f[R>>2]|0;U=k+4|0;V=f[k>>2]|0;W=f[U>>2]|0;f[h>>2]=S;Y=h+4|0;f[Y>>2]=T;f[i>>2]=V;Z=i+4|0;f[Z>>2]=W;Od(d,Q,h,i);_=f[d>>2]|0;f[c>>2]=_;$=d+4|0;aa=f[$>>2]|0;ba=c+4|0;f[ba>>2]=aa;Mq(k);u=g;return 1}function ld(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,J=0,K=0,L=0,M=0;d=u;u=u+32|0;e=d;g=d+20|0;h=d+24|0;i=d+8|0;j=f[a>>2]|0;k=j+8|0;l=j;j=f[l>>2]|0;m=f[l+4>>2]|0;l=Vn(j|0,m|0,f[k>>2]|0,f[k+4>>2]|0)|0;k=I;n=Vn(l|0,k|0,(l|0)==0&(k|0)==0&1|0,0)|0;k=~~((+(j>>>0)+4294967296.0*+(m>>>0))/(+(n>>>0)+4294967296.0*+(I>>>0))*256.0+.5)>>>0;n=k>>>0<255?k:255;k=n+((n|0)==0&1)&255;b[h>>0]=k;n=a+12|0;m=a+16|0;j=((f[m>>2]|0)-(f[n>>2]|0)<<1)+64|0;f[i>>2]=0;l=i+4|0;f[l>>2]=0;f[i+8>>2]=0;if(!j)o=0;else{if((j|0)<0)aq(i);p=ln(j)|0;f[l>>2]=p;f[i>>2]=p;f[i+8>>2]=p+j;q=j;j=p;do{b[j>>0]=0;j=(f[l>>2]|0)+1|0;f[l>>2]=j;q=q+-1|0}while((q|0)!=0);o=f[i>>2]|0}q=a+28|0;j=(f[q>>2]|0)+-1|0;a:do if((j|0)>-1){p=a+24|0;r=j;s=4096;t=0;v=k;while(1){w=(f[p>>2]&1<>>0>>0){y=t;z=s}else{b[o+t>>0]=s;y=t+1|0;z=s>>>8}un(f[4092+(x<<3)>>2]|0,0,z|0,0)|0;A=z+(w?0:0-v&255)+(X((z+I|0)>>>(f[4092+(x<<3)+4>>2]|0),256-x|0)|0)|0;x=r+-1|0;if((x|0)<=-1){B=A;C=y;break a}r=x;s=A;t=y;v=b[h>>0]|0}}else{B=4096;C=0}while(0);y=f[m>>2]|0;if((f[n>>2]|0)==(y|0)){D=B;E=C}else{z=B;B=C;C=y;while(1){C=C+-4|0;y=f[C>>2]|0;k=31;j=z;v=B;while(1){t=b[h>>0]|0;s=(1<>>0>>0){F=v;G=j}else{b[o+v>>0]=j;F=v+1|0;G=j>>>8}un(f[4092+(r<<3)>>2]|0,0,G|0,0)|0;j=G+(s?0:0-t&255)+(X((G+I|0)>>>(f[4092+(r<<3)+4>>2]|0),256-r|0)|0)|0;if((k|0)<=0)break;else{k=k+-1|0;v=F}}if((f[n>>2]|0)==(C|0)){D=j;E=F;break}else{z=j;B=F}}}F=D+-4096|0;do if(F>>>0>=64){if(F>>>0<16384){B=o+E|0;z=D+12288|0;b[B>>0]=z;H=2;J=z>>>8;K=B+1|0;L=25;break}if(F>>>0<4194304){B=o+E|0;z=D+8384512|0;b[B>>0]=z;b[B+1>>0]=z>>>8;H=3;J=z>>>16;K=B+2|0;L=25}else M=E}else{H=1;J=F;K=o+E|0;L=25}while(0);if((L|0)==25){b[K>>0]=J;M=H+E|0}E=c+16|0;H=E;J=f[H+4>>2]|0;if(!((J|0)>0|(J|0)==0&(f[H>>2]|0)>>>0>0)){f[g>>2]=f[c+4>>2];f[e>>2]=f[g>>2];Me(c,e,h,h+1|0)|0}ci(M,c)|0;h=f[i>>2]|0;H=E;E=f[H+4>>2]|0;if(!((E|0)>0|(E|0)==0&(f[H>>2]|0)>>>0>0)){f[g>>2]=f[c+4>>2];f[e>>2]=f[g>>2];Me(c,e,h,h+M|0)|0}M=e;f[M>>2]=0;f[M+4>>2]=0;qf(a,2,e);e=f[a+12>>2]|0;M=f[m>>2]|0;if((M|0)!=(e|0))f[m>>2]=M+(~((M+-4-e|0)>>>2)<<2);f[a+24>>2]=0;f[q>>2]=0;q=f[i>>2]|0;if(!q){u=d;return}if((f[l>>2]|0)!=(q|0))f[l>>2]=q;Oq(q);u=d;return}function md(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0;c=u;u=u+16|0;b=c+8|0;d=c+4|0;e=c;g=a+64|0;h=f[g>>2]|0;if((f[h+28>>2]|0)==(f[h+24>>2]|0)){u=c;return}i=a+52|0;j=a+56|0;k=a+60|0;l=a+12|0;m=a+28|0;n=a+40|0;o=a+44|0;p=a+48|0;q=0;r=0;s=h;while(1){h=f[(f[s+24>>2]|0)+(r<<2)>>2]|0;if((h|0)==-1){t=q;v=s}else{w=q+1|0;f[b>>2]=q;x=f[j>>2]|0;if((x|0)==(f[k>>2]|0))Ri(i,b);else{f[x>>2]=q;f[j>>2]=x+4}f[d>>2]=h;f[e>>2]=0;a:do if(!(f[(f[l>>2]|0)+(r>>>5<<2)>>2]&1<<(r&31)))y=h;else{x=h+1|0;z=((x>>>0)%3|0|0)==0?h+-2|0:x;if(((z|0)!=-1?(f[(f[a>>2]|0)+(z>>>5<<2)>>2]&1<<(z&31)|0)==0:0)?(x=f[(f[(f[g>>2]|0)+12>>2]|0)+(z<<2)>>2]|0,z=x+1|0,(x|0)!=-1):0){A=((z>>>0)%3|0|0)==0?x+-2|0:z;f[e>>2]=A;if((A|0)==-1){y=h;break}else B=A;while(1){f[d>>2]=B;A=B+1|0;z=((A>>>0)%3|0|0)==0?B+-2|0:A;if((z|0)==-1)break;if(f[(f[a>>2]|0)+(z>>>5<<2)>>2]&1<<(z&31)|0)break;A=f[(f[(f[g>>2]|0)+12>>2]|0)+(z<<2)>>2]|0;z=A+1|0;if((A|0)==-1)break;x=((z>>>0)%3|0|0)==0?A+-2|0:z;f[e>>2]=x;if((x|0)==-1){y=B;break a}else B=x}f[e>>2]=-1;y=B;break}f[e>>2]=-1;y=h}while(0);f[(f[m>>2]|0)+(y<<2)>>2]=f[b>>2];h=f[o>>2]|0;if((h|0)==(f[p>>2]|0))Ri(n,d);else{f[h>>2]=f[d>>2];f[o>>2]=h+4}h=f[g>>2]|0;x=f[d>>2]|0;b:do if(((x|0)!=-1?(z=(((x>>>0)%3|0|0)==0?2:-1)+x|0,(z|0)!=-1):0)?(A=f[(f[h+12>>2]|0)+(z<<2)>>2]|0,(A|0)!=-1):0){z=A+(((A>>>0)%3|0|0)==0?2:-1)|0;f[e>>2]=z;if((z|0)!=-1&(z|0)!=(x|0)){A=w;C=z;while(1){z=C+1|0;D=((z>>>0)%3|0|0)==0?C+-2|0:z;do if(f[(f[a>>2]|0)+(D>>>5<<2)>>2]&1<<(D&31)){z=A+1|0;f[b>>2]=A;E=f[j>>2]|0;if((E|0)==(f[k>>2]|0))Ri(i,b);else{f[E>>2]=A;f[j>>2]=E+4}E=f[o>>2]|0;if((E|0)==(f[p>>2]|0)){Ri(n,e);F=z;break}else{f[E>>2]=f[e>>2];f[o>>2]=E+4;F=z;break}}else F=A;while(0);f[(f[m>>2]|0)+(f[e>>2]<<2)>>2]=f[b>>2];G=f[g>>2]|0;D=f[e>>2]|0;if((D|0)==-1)break;z=(((D>>>0)%3|0|0)==0?2:-1)+D|0;if((z|0)==-1)break;D=f[(f[G+12>>2]|0)+(z<<2)>>2]|0;if((D|0)==-1)break;C=D+(((D>>>0)%3|0|0)==0?2:-1)|0;f[e>>2]=C;if(!((C|0)!=-1?(C|0)!=(f[d>>2]|0):0)){H=F;I=G;break b}else A=F}f[e>>2]=-1;H=F;I=G}else{H=w;I=h}}else J=26;while(0);if((J|0)==26){J=0;f[e>>2]=-1;H=w;I=h}t=H;v=I}r=r+1|0;if(r>>>0>=(f[v+28>>2]|0)-(f[v+24>>2]|0)>>2>>>0)break;else{q=t;s=v}}u=c;return}function nd(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0;c=u;u=u+16|0;d=c+8|0;e=c+4|0;g=c;h=a+124|0;f[h>>2]=(f[h>>2]|0)+1;h=a+88|0;i=a+120|0;j=f[i>>2]|0;k=j+1|0;do if((j|0)!=-1){l=((k>>>0)%3|0|0)==0?j+-2|0:k;if(!((j>>>0)%3|0)){m=j+2|0;n=l;break}else{m=j+-1|0;n=l;break}}else{m=-1;n=-1}while(0);k=a+104|0;l=a+92|0;o=f[l>>2]|0;p=o+(n<<2)|0;q=f[k>>2]|0;r=q+(f[p>>2]<<2)|0;s=f[r>>2]|0;switch(b|0){case 1:case 0:{f[r>>2]=s+-1;r=q+(f[o+(m<<2)>>2]<<2)|0;f[r>>2]=(f[r>>2]|0)+-1;if((b|0)==1){if((m|0)!=-1?(r=f[(f[(f[h>>2]|0)+12>>2]|0)+(m<<2)>>2]|0,(r|0)!=-1):0){t=a+64|0;v=1;w=r;while(1){r=f[t>>2]|0;x=f[(f[r>>2]|0)+36>>2]|0;f[e>>2]=(w>>>0)/3|0;f[d>>2]=f[e>>2];if(Ra[x&127](r,d)|0){y=v;break}r=w+1|0;x=((r>>>0)%3|0|0)==0?w+-2|0:r;if((x|0)==-1){z=12;break}w=f[(f[(f[h>>2]|0)+12>>2]|0)+(x<<2)>>2]|0;x=v+1|0;if((w|0)==-1){y=x;break}else v=x}if((z|0)==12)y=v+1|0;A=y;B=f[k>>2]|0;C=f[l>>2]|0}else{A=1;B=q;C=o}f[B+(f[C+(f[i>>2]<<2)>>2]<<2)>>2]=A;A=a+108|0;i=f[A>>2]|0;C=i-B>>2;B=i;if((n|0)!=-1?(i=f[(f[(f[h>>2]|0)+12>>2]|0)+(n<<2)>>2]|0,(i|0)!=-1):0){n=a+64|0;y=1;v=i;while(1){i=f[n>>2]|0;w=f[(f[i>>2]|0)+36>>2]|0;f[g>>2]=(v>>>0)/3|0;f[d>>2]=f[g>>2];if(Ra[w&127](i,d)|0){D=y;break}i=v+1|0;f[(f[l>>2]|0)+((((i>>>0)%3|0|0)==0?v+-2|0:i)<<2)>>2]=C;i=(((v>>>0)%3|0|0)==0?2:-1)+v|0;if((i|0)==-1){z=20;break}v=f[(f[(f[h>>2]|0)+12>>2]|0)+(i<<2)>>2]|0;i=y+1|0;if((v|0)==-1){D=i;break}else y=i}if((z|0)==20)D=y+1|0;E=D;F=f[A>>2]|0}else{E=1;F=B}f[d>>2]=E;if(F>>>0<(f[a+112>>2]|0)>>>0){f[F>>2]=E;f[A>>2]=F+4}else Ri(k,d)}break}case 5:{k=q+(f[o+(j<<2)>>2]<<2)|0;f[k>>2]=(f[k>>2]|0)+-1;k=q+(f[p>>2]<<2)|0;f[k>>2]=(f[k>>2]|0)+-1;k=q+(f[o+(m<<2)>>2]<<2)|0;f[k>>2]=(f[k>>2]|0)+-2;break}case 3:{k=q+(f[o+(j<<2)>>2]<<2)|0;f[k>>2]=(f[k>>2]|0)+-1;k=q+(f[p>>2]<<2)|0;f[k>>2]=(f[k>>2]|0)+-2;k=q+(f[o+(m<<2)>>2]<<2)|0;f[k>>2]=(f[k>>2]|0)+-1;break}case 7:{k=q+(f[o+(j<<2)>>2]<<2)|0;f[k>>2]=(f[k>>2]|0)+-2;k=q+(f[p>>2]<<2)|0;f[k>>2]=(f[k>>2]|0)+-2;k=q+(f[o+(m<<2)>>2]<<2)|0;f[k>>2]=(f[k>>2]|0)+-2;break}default:{}}k=a+116|0;m=f[k>>2]|0;if((m|0)==-1){f[k>>2]=b;u=c;return}o=f[a+128>>2]|0;if((s|0)<(o|0))G=o;else{q=f[a+132>>2]|0;G=(s|0)>(q|0)?q:s}s=G-o|0;o=f[a+136>>2]|0;a=f[3724+(m<<2)>>2]|0;f[d>>2]=a;m=o+(s*12|0)+4|0;G=f[m>>2]|0;if(G>>>0<(f[o+(s*12|0)+8>>2]|0)>>>0){f[G>>2]=a;f[m>>2]=G+4}else Ri(o+(s*12|0)|0,d);f[k>>2]=b;u=c;return}function od(a,b,c,d,e,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,Y=0,Z=0,_=0,$=0;g=u;u=u+32|0;d=g+16|0;h=g+8|0;i=g;j=e>>>0>1073741823?-1:e<<2;k=Lq(j)|0;sj(k|0,0,j|0)|0;j=f[a+28>>2]|0;l=a+36|0;m=f[l>>2]|0;n=f[m+4>>2]|0;o=f[m>>2]|0;p=n-o|0;a:do if((p|0)>4){q=p>>2;r=f[a+32>>2]|0;s=a+8|0;t=h+4|0;v=i+4|0;w=d+4|0;x=j+64|0;y=j+28|0;z=(e|0)>0;A=k+4|0;B=h+4|0;C=i+4|0;D=d+4|0;E=q+-1|0;if(n-o>>2>>>0>E>>>0){F=q;G=E;H=o}else{I=m;aq(I)}while(1){E=f[H+(G<<2)>>2]|0;q=X(G,e)|0;if((((E|0)!=-1?(f[(f[j>>2]|0)+(E>>>5<<2)>>2]&1<<(E&31)|0)==0:0)?(J=f[(f[(f[x>>2]|0)+12>>2]|0)+(E<<2)>>2]|0,(J|0)!=-1):0)?(E=f[y>>2]|0,K=f[r>>2]|0,L=f[K+(f[E+(J<<2)>>2]<<2)>>2]|0,M=J+1|0,N=f[K+(f[E+((((M>>>0)%3|0|0)==0?J+-2|0:M)<<2)>>2]<<2)>>2]|0,M=f[K+(f[E+((((J>>>0)%3|0|0)==0?2:-1)+J<<2)>>2]<<2)>>2]|0,(L|0)<(G|0)&(N|0)<(G|0)&(M|0)<(G|0)):0){J=X(L,e)|0;L=X(N,e)|0;N=X(M,e)|0;if(z){M=0;do{f[k+(M<<2)>>2]=(f[b+(M+N<<2)>>2]|0)+(f[b+(M+L<<2)>>2]|0)-(f[b+(M+J<<2)>>2]|0);M=M+1|0}while((M|0)!=(e|0))}M=b+(q<<2)|0;J=c+(q<<2)|0;L=f[M+4>>2]|0;N=f[k>>2]|0;E=f[A>>2]|0;f[h>>2]=f[M>>2];f[B>>2]=L;f[i>>2]=N;f[C>>2]=E;Od(d,s,h,i);f[J>>2]=f[d>>2];f[J+4>>2]=f[D>>2]}else{J=b+(q<<2)|0;E=b+((X(F+-2|0,e)|0)<<2)|0;N=c+(q<<2)|0;L=f[J+4>>2]|0;M=f[E>>2]|0;K=f[E+4>>2]|0;f[h>>2]=f[J>>2];f[t>>2]=L;f[i>>2]=M;f[v>>2]=K;Od(d,s,h,i);f[N>>2]=f[d>>2];f[N+4>>2]=f[w>>2]}if((F|0)<=2)break a;N=f[l>>2]|0;H=f[N>>2]|0;K=G+-1|0;if((f[N+4>>2]|0)-H>>2>>>0<=K>>>0){I=N;break}else{N=G;G=K;F=N}}aq(I)}while(0);if((e|0)<=0){O=a+8|0;P=b+4|0;Q=f[b>>2]|0;R=f[P>>2]|0;S=k+4|0;T=f[k>>2]|0;U=f[S>>2]|0;f[h>>2]=Q;V=h+4|0;f[V>>2]=R;f[i>>2]=T;W=i+4|0;f[W>>2]=U;Od(d,O,h,i);Y=f[d>>2]|0;f[c>>2]=Y;Z=d+4|0;_=f[Z>>2]|0;$=c+4|0;f[$>>2]=_;Mq(k);u=g;return 1}sj(k|0,0,e<<2|0)|0;O=a+8|0;P=b+4|0;Q=f[b>>2]|0;R=f[P>>2]|0;S=k+4|0;T=f[k>>2]|0;U=f[S>>2]|0;f[h>>2]=Q;V=h+4|0;f[V>>2]=R;f[i>>2]=T;W=i+4|0;f[W>>2]=U;Od(d,O,h,i);Y=f[d>>2]|0;f[c>>2]=Y;Z=d+4|0;_=f[Z>>2]|0;$=c+4|0;f[$>>2]=_;Mq(k);u=g;return 1}function pd(a,b,c,d,e,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;g=g|0;h=h|0;var i=0;switch(c|0){case 1:{c=ln(60)|0;f[c>>2]=1544;f[c+4>>2]=d;h=c+8|0;f[h>>2]=f[e>>2];f[h+4>>2]=f[e+4>>2];f[h+8>>2]=f[e+8>>2];f[h+12>>2]=f[e+12>>2];f[h+16>>2]=f[e+16>>2];f[h+20>>2]=f[e+20>>2];fk(c+32|0,e+24|0);h=c+44|0;f[h>>2]=f[g>>2];f[h+4>>2]=f[g+4>>2];f[h+8>>2]=f[g+8>>2];f[h+12>>2]=f[g+12>>2];f[c>>2]=2076;i=c;f[a>>2]=i;return}case 2:{c=ln(60)|0;f[c>>2]=1544;f[c+4>>2]=d;h=c+8|0;f[h>>2]=f[e>>2];f[h+4>>2]=f[e+4>>2];f[h+8>>2]=f[e+8>>2];f[h+12>>2]=f[e+12>>2];f[h+16>>2]=f[e+16>>2];f[h+20>>2]=f[e+20>>2];fk(c+32|0,e+24|0);h=c+44|0;f[h>>2]=f[g>>2];f[h+4>>2]=f[g+4>>2];f[h+8>>2]=f[g+8>>2];f[h+12>>2]=f[g+12>>2];f[c>>2]=2132;i=c;f[a>>2]=i;return}case 4:{c=ln(168)|0;Ti(c,d,e,g);i=c;f[a>>2]=i;return}case 3:{c=ln(88)|0;f[c>>2]=1544;f[c+4>>2]=d;h=c+8|0;f[h>>2]=f[e>>2];f[h+4>>2]=f[e+4>>2];f[h+8>>2]=f[e+8>>2];f[h+12>>2]=f[e+12>>2];f[h+16>>2]=f[e+16>>2];f[h+20>>2]=f[e+20>>2];fk(c+32|0,e+24|0);h=c+44|0;f[h>>2]=f[g>>2];f[h+4>>2]=f[g+4>>2];f[h+8>>2]=f[g+8>>2];f[h+12>>2]=f[g+12>>2];f[c>>2]=2188;h=c+60|0;f[h>>2]=0;f[h+4>>2]=0;f[h+8>>2]=0;f[h+12>>2]=0;f[h+16>>2]=0;f[h+20>>2]=0;f[h+24>>2]=0;i=c;f[a>>2]=i;return}case 5:{c=ln(104)|0;f[c>>2]=1544;f[c+4>>2]=d;h=c+8|0;f[h>>2]=f[e>>2];f[h+4>>2]=f[e+4>>2];f[h+8>>2]=f[e+8>>2];f[h+12>>2]=f[e+12>>2];f[h+16>>2]=f[e+16>>2];f[h+20>>2]=f[e+20>>2];fk(c+32|0,e+24|0);h=c+44|0;f[h>>2]=f[g>>2];f[h+4>>2]=f[g+4>>2];f[h+8>>2]=f[g+8>>2];f[h+12>>2]=f[g+12>>2];f[c>>2]=2244;f[c+60>>2]=0;f[c+64>>2]=0;f[c+76>>2]=0;f[c+80>>2]=0;f[c+84>>2]=0;h=c+88|0;f[h>>2]=f[g>>2];f[h+4>>2]=f[g+4>>2];f[h+8>>2]=f[g+8>>2];f[h+12>>2]=f[g+12>>2];i=c;f[a>>2]=i;return}case 6:{c=ln(140)|0;f[c>>2]=1544;f[c+4>>2]=d;d=c+8|0;f[d>>2]=f[e>>2];f[d+4>>2]=f[e+4>>2];f[d+8>>2]=f[e+8>>2];f[d+12>>2]=f[e+12>>2];f[d+16>>2]=f[e+16>>2];f[d+20>>2]=f[e+20>>2];fk(c+32|0,e+24|0);e=c+44|0;f[e>>2]=f[g>>2];f[e+4>>2]=f[g+4>>2];f[e+8>>2]=f[g+8>>2];f[e+12>>2]=f[g+12>>2];f[c>>2]=2300;f[c+64>>2]=0;f[c+68>>2]=0;e=c+72|0;f[e>>2]=f[g>>2];f[e+4>>2]=f[g+4>>2];f[e+8>>2]=f[g+8>>2];f[e+12>>2]=f[g+12>>2];f[c+60>>2]=2356;f[c+88>>2]=1;g=c+92|0;f[g>>2]=-1;f[g+4>>2]=-1;f[g+8>>2]=-1;f[g+12>>2]=-1;wn(c+108|0);i=c;f[a>>2]=i;return}default:{i=0;f[a>>2]=i;return}}}function qd(a,b,c,d,e,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;g=g|0;h=h|0;var i=0;switch(c|0){case 1:{c=ln(60)|0;f[c>>2]=1544;f[c+4>>2]=d;h=c+8|0;f[h>>2]=f[e>>2];f[h+4>>2]=f[e+4>>2];f[h+8>>2]=f[e+8>>2];f[h+12>>2]=f[e+12>>2];f[h+16>>2]=f[e+16>>2];f[h+20>>2]=f[e+20>>2];fk(c+32|0,e+24|0);h=c+44|0;f[h>>2]=f[g>>2];f[h+4>>2]=f[g+4>>2];f[h+8>>2]=f[g+8>>2];f[h+12>>2]=f[g+12>>2];f[c>>2]=1656;i=c;f[a>>2]=i;return}case 2:{c=ln(60)|0;f[c>>2]=1544;f[c+4>>2]=d;h=c+8|0;f[h>>2]=f[e>>2];f[h+4>>2]=f[e+4>>2];f[h+8>>2]=f[e+8>>2];f[h+12>>2]=f[e+12>>2];f[h+16>>2]=f[e+16>>2];f[h+20>>2]=f[e+20>>2];fk(c+32|0,e+24|0);h=c+44|0;f[h>>2]=f[g>>2];f[h+4>>2]=f[g+4>>2];f[h+8>>2]=f[g+8>>2];f[h+12>>2]=f[g+12>>2];f[c>>2]=1712;i=c;f[a>>2]=i;return}case 4:{c=ln(168)|0;Ui(c,d,e,g);i=c;f[a>>2]=i;return}case 3:{c=ln(88)|0;f[c>>2]=1544;f[c+4>>2]=d;h=c+8|0;f[h>>2]=f[e>>2];f[h+4>>2]=f[e+4>>2];f[h+8>>2]=f[e+8>>2];f[h+12>>2]=f[e+12>>2];f[h+16>>2]=f[e+16>>2];f[h+20>>2]=f[e+20>>2];fk(c+32|0,e+24|0);h=c+44|0;f[h>>2]=f[g>>2];f[h+4>>2]=f[g+4>>2];f[h+8>>2]=f[g+8>>2];f[h+12>>2]=f[g+12>>2];f[c>>2]=1768;h=c+60|0;f[h>>2]=0;f[h+4>>2]=0;f[h+8>>2]=0;f[h+12>>2]=0;f[h+16>>2]=0;f[h+20>>2]=0;f[h+24>>2]=0;i=c;f[a>>2]=i;return}case 5:{c=ln(104)|0;f[c>>2]=1544;f[c+4>>2]=d;h=c+8|0;f[h>>2]=f[e>>2];f[h+4>>2]=f[e+4>>2];f[h+8>>2]=f[e+8>>2];f[h+12>>2]=f[e+12>>2];f[h+16>>2]=f[e+16>>2];f[h+20>>2]=f[e+20>>2];fk(c+32|0,e+24|0);h=c+44|0;f[h>>2]=f[g>>2];f[h+4>>2]=f[g+4>>2];f[h+8>>2]=f[g+8>>2];f[h+12>>2]=f[g+12>>2];f[c>>2]=1824;f[c+60>>2]=0;f[c+64>>2]=0;f[c+76>>2]=0;f[c+80>>2]=0;f[c+84>>2]=0;h=c+88|0;f[h>>2]=f[g>>2];f[h+4>>2]=f[g+4>>2];f[h+8>>2]=f[g+8>>2];f[h+12>>2]=f[g+12>>2];i=c;f[a>>2]=i;return}case 6:{c=ln(140)|0;f[c>>2]=1544;f[c+4>>2]=d;d=c+8|0;f[d>>2]=f[e>>2];f[d+4>>2]=f[e+4>>2];f[d+8>>2]=f[e+8>>2];f[d+12>>2]=f[e+12>>2];f[d+16>>2]=f[e+16>>2];f[d+20>>2]=f[e+20>>2];fk(c+32|0,e+24|0);e=c+44|0;f[e>>2]=f[g>>2];f[e+4>>2]=f[g+4>>2];f[e+8>>2]=f[g+8>>2];f[e+12>>2]=f[g+12>>2];f[c>>2]=1880;f[c+64>>2]=0;f[c+68>>2]=0;e=c+72|0;f[e>>2]=f[g>>2];f[e+4>>2]=f[g+4>>2];f[e+8>>2]=f[g+8>>2];f[e+12>>2]=f[g+12>>2];f[c+60>>2]=1936;f[c+88>>2]=1;g=c+92|0;f[g>>2]=-1;f[g+4>>2]=-1;f[g+8>>2]=-1;f[g+12>>2]=-1;wn(c+108|0);i=c;f[a>>2]=i;return}default:{i=0;f[a>>2]=i;return}}}function rd(a,b){a=a|0;b=b|0;var c=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0;c=a+4|0;if(!b){e=f[a>>2]|0;f[a>>2]=0;if(e|0)Oq(e);f[c>>2]=0;return}if(b>>>0>1073741823){e=ra(8)|0;Oo(e,16035);f[e>>2]=7256;va(e|0,1112,110)}e=ln(b<<2)|0;g=f[a>>2]|0;f[a>>2]=e;if(g|0)Oq(g);f[c>>2]=b;c=0;do{f[(f[a>>2]|0)+(c<<2)>>2]=0;c=c+1|0}while((c|0)!=(b|0));c=a+8|0;g=f[c>>2]|0;if(!g)return;e=f[g+4>>2]|0;h=b+-1|0;i=(h&b|0)==0;if(!i)if(e>>>0>>0)j=e;else j=(e>>>0)%(b>>>0)|0;else j=e&h;f[(f[a>>2]|0)+(j<<2)>>2]=c;c=f[g>>2]|0;if(!c)return;else{k=j;l=g;m=c;n=g}a:while(1){g=l;c=m;j=n;b:while(1){c:do if(i){e=c;while(1){o=f[e+4>>2]&h;if((o|0)==(k|0)){p=e;break c}q=(f[a>>2]|0)+(o<<2)|0;if(!(f[q>>2]|0)){r=e;s=o;t=q;break b}q=e+8|0;u=q+2|0;v=e+12|0;w=q+6|0;x=f[e>>2]|0;d:do if(!x)y=e;else{z=d[q>>1]|0;A=e;B=x;while(1){C=B+8|0;if(z<<16>>16!=(d[C>>1]|0)){y=A;break d}if((d[u>>1]|0)!=(d[C+2>>1]|0)){y=A;break d}if((d[v>>1]|0)!=(d[B+12>>1]|0)){y=A;break d}if((d[w>>1]|0)!=(d[C+6>>1]|0)){y=A;break d}C=f[B>>2]|0;if(!C){y=B;break}else{D=B;B=C;A=D}}}while(0);f[j>>2]=f[y>>2];f[y>>2]=f[f[(f[a>>2]|0)+(o<<2)>>2]>>2];f[f[(f[a>>2]|0)+(o<<2)>>2]>>2]=e;e=f[g>>2]|0;if(!e){E=43;break a}}}else{e=c;while(1){w=f[e+4>>2]|0;if(w>>>0>>0)F=w;else F=(w>>>0)%(b>>>0)|0;if((F|0)==(k|0)){p=e;break c}w=(f[a>>2]|0)+(F<<2)|0;if(!(f[w>>2]|0)){r=e;s=F;t=w;break b}w=e+8|0;v=w+2|0;u=e+12|0;x=w+6|0;q=f[e>>2]|0;e:do if(!q)G=e;else{A=d[w>>1]|0;B=e;z=q;while(1){D=z+8|0;if(A<<16>>16!=(d[D>>1]|0)){G=B;break e}if((d[v>>1]|0)!=(d[D+2>>1]|0)){G=B;break e}if((d[u>>1]|0)!=(d[z+12>>1]|0)){G=B;break e}if((d[x>>1]|0)!=(d[D+6>>1]|0)){G=B;break e}D=f[z>>2]|0;if(!D){G=z;break}else{C=z;z=D;B=C}}}while(0);f[j>>2]=f[G>>2];f[G>>2]=f[f[(f[a>>2]|0)+(F<<2)>>2]>>2];f[f[(f[a>>2]|0)+(F<<2)>>2]>>2]=e;e=f[g>>2]|0;if(!e){E=43;break a}}}while(0);c=f[p>>2]|0;if(!c){E=43;break a}else{g=p;j=p}}f[t>>2]=j;m=f[r>>2]|0;if(!m){E=43;break}else{k=s;l=r;n=r}}if((E|0)==43)return}function sd(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0;d=a+4|0;if(!c){e=f[a>>2]|0;f[a>>2]=0;if(e|0)Oq(e);f[d>>2]=0;return}if(c>>>0>1073741823){e=ra(8)|0;Oo(e,16035);f[e>>2]=7256;va(e|0,1112,110)}e=ln(c<<2)|0;g=f[a>>2]|0;f[a>>2]=e;if(g|0)Oq(g);f[d>>2]=c;d=0;do{f[(f[a>>2]|0)+(d<<2)>>2]=0;d=d+1|0}while((d|0)!=(c|0));d=a+8|0;g=f[d>>2]|0;if(!g)return;e=f[g+4>>2]|0;h=c+-1|0;i=(h&c|0)==0;if(!i)if(e>>>0>>0)j=e;else j=(e>>>0)%(c>>>0)|0;else j=e&h;f[(f[a>>2]|0)+(j<<2)>>2]=d;d=f[g>>2]|0;if(!d)return;else{k=j;l=g;m=d;n=g}a:while(1){g=l;d=m;j=n;b:while(1){c:do if(i){e=d;while(1){o=f[e+4>>2]&h;if((o|0)==(k|0)){p=e;break c}q=(f[a>>2]|0)+(o<<2)|0;if(!(f[q>>2]|0)){r=e;s=o;t=q;break b}q=e+8|0;u=q+1|0;v=q+2|0;w=q+3|0;x=f[e>>2]|0;d:do if(!x)y=e;else{z=b[q>>0]|0;A=e;B=x;while(1){C=B+8|0;if(z<<24>>24!=(b[C>>0]|0)){y=A;break d}if((b[u>>0]|0)!=(b[C+1>>0]|0)){y=A;break d}if((b[v>>0]|0)!=(b[C+2>>0]|0)){y=A;break d}if((b[w>>0]|0)!=(b[C+3>>0]|0)){y=A;break d}C=f[B>>2]|0;if(!C){y=B;break}else{D=B;B=C;A=D}}}while(0);f[j>>2]=f[y>>2];f[y>>2]=f[f[(f[a>>2]|0)+(o<<2)>>2]>>2];f[f[(f[a>>2]|0)+(o<<2)>>2]>>2]=e;e=f[g>>2]|0;if(!e){E=43;break a}}}else{e=d;while(1){w=f[e+4>>2]|0;if(w>>>0>>0)F=w;else F=(w>>>0)%(c>>>0)|0;if((F|0)==(k|0)){p=e;break c}w=(f[a>>2]|0)+(F<<2)|0;if(!(f[w>>2]|0)){r=e;s=F;t=w;break b}w=e+8|0;v=w+1|0;u=w+2|0;x=w+3|0;q=f[e>>2]|0;e:do if(!q)G=e;else{A=b[w>>0]|0;B=e;z=q;while(1){D=z+8|0;if(A<<24>>24!=(b[D>>0]|0)){G=B;break e}if((b[v>>0]|0)!=(b[D+1>>0]|0)){G=B;break e}if((b[u>>0]|0)!=(b[D+2>>0]|0)){G=B;break e}if((b[x>>0]|0)!=(b[D+3>>0]|0)){G=B;break e}D=f[z>>2]|0;if(!D){G=z;break}else{C=z;z=D;B=C}}}while(0);f[j>>2]=f[G>>2];f[G>>2]=f[f[(f[a>>2]|0)+(F<<2)>>2]>>2];f[f[(f[a>>2]|0)+(F<<2)>>2]>>2]=e;e=f[g>>2]|0;if(!e){E=43;break a}}}while(0);d=f[p>>2]|0;if(!d){E=43;break a}else{g=p;j=p}}f[t>>2]=j;m=f[r>>2]|0;if(!m){E=43;break}else{k=s;l=r;n=r}}if((E|0)==43)return}function td(a,c,d,e,g){a=a|0;c=c|0;d=d|0;e=e|0;g=g|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,J=0,K=0,L=0,M=0,N=0;i=u;u=u+352|0;j=i+340|0;k=i+336|0;l=i+80|0;m=i+48|0;n=i;sj(l|0,0,256)|0;o=f[e+4>>2]|0;p=f[e>>2]|0;q=p;if((o|0)!=(p|0)){r=o-p>>2;p=0;do{o=l+(f[q+(p<<2)>>2]<<3)|0;s=o;t=Vn(f[s>>2]|0,f[s+4>>2]|0,1,0)|0;s=o;f[s>>2]=t;f[s+4>>2]=I;p=p+1|0}while(p>>>0>>0)}Gn(m);r=Tn(c|0,((c|0)<0)<<31>>31|0,5)|0;p=I;q=n+40|0;s=q;f[s>>2]=0;f[s+4>>2]=0;f[n>>2]=0;f[n+4>>2]=0;f[n+8>>2]=0;f[n+12>>2]=0;f[n+16>>2]=0;f[n+20>>2]=0;fd(n,l,32,g)|0;l=n+16|0;s=Tn(f[l>>2]|0,f[l+4>>2]|0,1)|0;l=g+4|0;t=(f[l>>2]|0)-(f[g>>2]|0)|0;o=q;f[o>>2]=t;f[o+4>>2]=0;o=Vn(s|0,I|0,39,0)|0;s=Yn(o|0,I|0,3)|0;o=Vn(s|0,I|0,8,0)|0;s=Vn(o|0,I|0,t|0,0)|0;Cl(g,s,I);s=n+24|0;f[s>>2]=(f[g>>2]|0)+(f[q>>2]|0);q=n+28|0;f[q>>2]=0;t=n+32|0;f[t>>2]=16384;zi(m,r,p,0)|0;p=c-d|0;if((p|0)>-1){c=(d|0)>0;r=m+16|0;o=m+12|0;v=p;do{w=f[e>>2]|0;x=f[w+(((v|0)/(d|0)|0)<<2)>>2]|0;y=f[n>>2]|0;z=f[y+(x<<3)>>2]|0;A=f[t>>2]|0;B=z<<10;if(A>>>0>>0){C=A;D=w}else{w=A;do{A=f[s>>2]|0;E=f[q>>2]|0;f[q>>2]=E+1;b[A+E>>0]=w;w=(f[t>>2]|0)>>>8;f[t>>2]=w}while(w>>>0>=B>>>0);C=w;D=f[e>>2]|0}f[t>>2]=(((C>>>0)/(z>>>0)|0)<<12)+((C>>>0)%(z>>>0)|0)+(f[y+(x<<3)+4>>2]|0);B=p-v|0;E=f[D+(((B|0)/(d|0)|0)<<2)>>2]|0;if(c&(E|0)>0){A=0;do{F=f[a+(A+B<<2)>>2]|0;G=r;H=f[G+4>>2]|0;if((H|0)>0|(H|0)==0&(f[G>>2]|0)>>>0>0){G=f[o>>2]|0;H=G+4|0;J=0;K=f[H>>2]|0;do{L=K>>>3;M=K&7;N=(f[G>>2]|0)+L|0;b[N>>0]=(1<>0]|0);N=(f[G>>2]|0)+L|0;b[N>>0]=(F>>>J&1)<>0]|0);K=(f[H>>2]|0)+1|0;f[H>>2]=K;J=J+1|0}while((J|0)!=(E|0))}A=A+1|0}while((A|0)!=(d|0))}v=v-d|0}while((v|0)>-1)}_f(n,g);eg(m);v=f[m>>2]|0;d=m+4|0;o=g+16|0;r=f[o+4>>2]|0;if(!((r|0)>0|(r|0)==0&(f[o>>2]|0)>>>0>0)){o=(f[d>>2]|0)-v|0;f[k>>2]=f[l>>2];f[j>>2]=f[k>>2];Me(g,j,v,v+o|0)|0}o=f[n>>2]|0;if(o|0){v=n+4|0;n=f[v>>2]|0;if((n|0)!=(o|0))f[v>>2]=n+(~((n+-8-o|0)>>>3)<<3);Oq(o)}o=m+12|0;n=f[o>>2]|0;f[o>>2]=0;if(n|0)Oq(n);n=f[m>>2]|0;if(!n){u=i;return 1}if((f[d>>2]|0)!=(n|0))f[d>>2]=n;Oq(n);u=i;return 1}function ud(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;c=a+4|0;if(!b){d=f[a>>2]|0;f[a>>2]=0;if(d|0)Oq(d);f[c>>2]=0;return}if(b>>>0>1073741823){d=ra(8)|0;Oo(d,16035);f[d>>2]=7256;va(d|0,1112,110)}d=ln(b<<2)|0;e=f[a>>2]|0;f[a>>2]=d;if(e|0)Oq(e);f[c>>2]=b;c=0;do{f[(f[a>>2]|0)+(c<<2)>>2]=0;c=c+1|0}while((c|0)!=(b|0));c=a+8|0;e=f[c>>2]|0;if(!e)return;d=f[e+4>>2]|0;g=b+-1|0;h=(g&b|0)==0;if(!h)if(d>>>0>>0)i=d;else i=(d>>>0)%(b>>>0)|0;else i=d&g;f[(f[a>>2]|0)+(i<<2)>>2]=c;c=f[e>>2]|0;if(!c)return;else{j=i;k=e;l=c;m=e}a:while(1){e=k;c=l;i=m;b:while(1){c:do if(h){d=c;while(1){n=f[d+4>>2]&g;if((n|0)==(j|0)){o=d;break c}p=(f[a>>2]|0)+(n<<2)|0;if(!(f[p>>2]|0)){q=d;r=n;s=p;break b}p=d+12|0;t=d+16|0;u=d+20|0;v=f[d>>2]|0;d:do if(!v)w=d;else{x=f[d+8>>2]|0;y=d;z=v;while(1){if((x|0)!=(f[z+8>>2]|0)){w=y;break d}if((f[p>>2]|0)!=(f[z+12>>2]|0)){w=y;break d}if((f[t>>2]|0)!=(f[z+16>>2]|0)){w=y;break d}if((f[u>>2]|0)!=(f[z+20>>2]|0)){w=y;break d}A=f[z>>2]|0;if(!A){w=z;break}else{B=z;z=A;y=B}}}while(0);f[i>>2]=f[w>>2];f[w>>2]=f[f[(f[a>>2]|0)+(n<<2)>>2]>>2];f[f[(f[a>>2]|0)+(n<<2)>>2]>>2]=d;d=f[e>>2]|0;if(!d){C=43;break a}}}else{d=c;while(1){u=f[d+4>>2]|0;if(u>>>0>>0)D=u;else D=(u>>>0)%(b>>>0)|0;if((D|0)==(j|0)){o=d;break c}u=(f[a>>2]|0)+(D<<2)|0;if(!(f[u>>2]|0)){q=d;r=D;s=u;break b}u=d+12|0;t=d+16|0;p=d+20|0;v=f[d>>2]|0;e:do if(!v)E=d;else{y=f[d+8>>2]|0;z=d;x=v;while(1){if((y|0)!=(f[x+8>>2]|0)){E=z;break e}if((f[u>>2]|0)!=(f[x+12>>2]|0)){E=z;break e}if((f[t>>2]|0)!=(f[x+16>>2]|0)){E=z;break e}if((f[p>>2]|0)!=(f[x+20>>2]|0)){E=z;break e}B=f[x>>2]|0;if(!B){E=x;break}else{A=x;x=B;z=A}}}while(0);f[i>>2]=f[E>>2];f[E>>2]=f[f[(f[a>>2]|0)+(D<<2)>>2]>>2];f[f[(f[a>>2]|0)+(D<<2)>>2]>>2]=d;d=f[e>>2]|0;if(!d){C=43;break a}}}while(0);c=f[o>>2]|0;if(!c){C=43;break a}else{e=o;i=o}}f[s>>2]=i;l=f[q>>2]|0;if(!l){C=43;break}else{j=r;k=q;m=q}}if((C|0)==43)return}function vd(a,b){a=a|0;b=b|0;var c=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0;c=a+4|0;if(!b){e=f[a>>2]|0;f[a>>2]=0;if(e|0)Oq(e);f[c>>2]=0;return}if(b>>>0>1073741823){e=ra(8)|0;Oo(e,16035);f[e>>2]=7256;va(e|0,1112,110)}e=ln(b<<2)|0;g=f[a>>2]|0;f[a>>2]=e;if(g|0)Oq(g);f[c>>2]=b;c=0;do{f[(f[a>>2]|0)+(c<<2)>>2]=0;c=c+1|0}while((c|0)!=(b|0));c=a+8|0;g=f[c>>2]|0;if(!g)return;e=f[g+4>>2]|0;h=b+-1|0;i=(h&b|0)==0;if(!i)if(e>>>0>>0)j=e;else j=(e>>>0)%(b>>>0)|0;else j=e&h;f[(f[a>>2]|0)+(j<<2)>>2]=c;c=f[g>>2]|0;if(!c)return;else{k=j;l=g;m=c;n=g}a:while(1){g=l;c=m;j=n;b:while(1){c:do if(i){e=c;while(1){o=f[e+4>>2]&h;if((o|0)==(k|0)){p=e;break c}q=(f[a>>2]|0)+(o<<2)|0;if(!(f[q>>2]|0)){r=e;s=o;t=q;break b}q=e+8|0;u=e+12|0;v=f[e>>2]|0;d:do if(!v)w=e;else{x=d[q>>1]|0;y=q+2|0;z=e;A=v;while(1){B=A+8|0;if(x<<16>>16!=(d[B>>1]|0)){w=z;break d}if((d[y>>1]|0)!=(d[B+2>>1]|0)){w=z;break d}if((d[u>>1]|0)!=(d[A+12>>1]|0)){w=z;break d}B=f[A>>2]|0;if(!B){w=A;break}else{C=A;A=B;z=C}}}while(0);f[j>>2]=f[w>>2];f[w>>2]=f[f[(f[a>>2]|0)+(o<<2)>>2]>>2];f[f[(f[a>>2]|0)+(o<<2)>>2]>>2]=e;e=f[g>>2]|0;if(!e){D=41;break a}}}else{e=c;while(1){u=f[e+4>>2]|0;if(u>>>0>>0)E=u;else E=(u>>>0)%(b>>>0)|0;if((E|0)==(k|0)){p=e;break c}u=(f[a>>2]|0)+(E<<2)|0;if(!(f[u>>2]|0)){r=e;s=E;t=u;break b}u=e+8|0;v=e+12|0;q=f[e>>2]|0;e:do if(!q)F=e;else{z=d[u>>1]|0;A=u+2|0;y=e;x=q;while(1){C=x+8|0;if(z<<16>>16!=(d[C>>1]|0)){F=y;break e}if((d[A>>1]|0)!=(d[C+2>>1]|0)){F=y;break e}if((d[v>>1]|0)!=(d[x+12>>1]|0)){F=y;break e}C=f[x>>2]|0;if(!C){F=x;break}else{B=x;x=C;y=B}}}while(0);f[j>>2]=f[F>>2];f[F>>2]=f[f[(f[a>>2]|0)+(E<<2)>>2]>>2];f[f[(f[a>>2]|0)+(E<<2)>>2]>>2]=e;e=f[g>>2]|0;if(!e){D=41;break a}}}while(0);c=f[p>>2]|0;if(!c){D=41;break a}else{g=p;j=p}}f[t>>2]=j;m=f[r>>2]|0;if(!m){D=41;break}else{k=s;l=r;n=r}}if((D|0)==41)return}function wd(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0;d=a+4|0;if(!c){e=f[a>>2]|0;f[a>>2]=0;if(e|0)Oq(e);f[d>>2]=0;return}if(c>>>0>1073741823){e=ra(8)|0;Oo(e,16035);f[e>>2]=7256;va(e|0,1112,110)}e=ln(c<<2)|0;g=f[a>>2]|0;f[a>>2]=e;if(g|0)Oq(g);f[d>>2]=c;d=0;do{f[(f[a>>2]|0)+(d<<2)>>2]=0;d=d+1|0}while((d|0)!=(c|0));d=a+8|0;g=f[d>>2]|0;if(!g)return;e=f[g+4>>2]|0;h=c+-1|0;i=(h&c|0)==0;if(!i)if(e>>>0>>0)j=e;else j=(e>>>0)%(c>>>0)|0;else j=e&h;f[(f[a>>2]|0)+(j<<2)>>2]=d;d=f[g>>2]|0;if(!d)return;else{k=j;l=g;m=d;n=g}a:while(1){g=l;d=m;j=n;b:while(1){c:do if(i){e=d;while(1){o=f[e+4>>2]&h;if((o|0)==(k|0)){p=e;break c}q=(f[a>>2]|0)+(o<<2)|0;if(!(f[q>>2]|0)){r=e;s=o;t=q;break b}q=e+8|0;u=q+1|0;v=q+2|0;w=f[e>>2]|0;d:do if(!w)x=e;else{y=b[q>>0]|0;z=e;A=w;while(1){B=A+8|0;if(y<<24>>24!=(b[B>>0]|0)){x=z;break d}if((b[u>>0]|0)!=(b[B+1>>0]|0)){x=z;break d}if((b[v>>0]|0)!=(b[B+2>>0]|0)){x=z;break d}B=f[A>>2]|0;if(!B){x=A;break}else{C=A;A=B;z=C}}}while(0);f[j>>2]=f[x>>2];f[x>>2]=f[f[(f[a>>2]|0)+(o<<2)>>2]>>2];f[f[(f[a>>2]|0)+(o<<2)>>2]>>2]=e;e=f[g>>2]|0;if(!e){D=41;break a}}}else{e=d;while(1){v=f[e+4>>2]|0;if(v>>>0>>0)E=v;else E=(v>>>0)%(c>>>0)|0;if((E|0)==(k|0)){p=e;break c}v=(f[a>>2]|0)+(E<<2)|0;if(!(f[v>>2]|0)){r=e;s=E;t=v;break b}v=e+8|0;u=v+1|0;w=v+2|0;q=f[e>>2]|0;e:do if(!q)F=e;else{z=b[v>>0]|0;A=e;y=q;while(1){C=y+8|0;if(z<<24>>24!=(b[C>>0]|0)){F=A;break e}if((b[u>>0]|0)!=(b[C+1>>0]|0)){F=A;break e}if((b[w>>0]|0)!=(b[C+2>>0]|0)){F=A;break e}C=f[y>>2]|0;if(!C){F=y;break}else{B=y;y=C;A=B}}}while(0);f[j>>2]=f[F>>2];f[F>>2]=f[f[(f[a>>2]|0)+(E<<2)>>2]>>2];f[f[(f[a>>2]|0)+(E<<2)>>2]>>2]=e;e=f[g>>2]|0;if(!e){D=41;break a}}}while(0);d=f[p>>2]|0;if(!d){D=41;break a}else{g=p;j=p}}f[t>>2]=j;m=f[r>>2]|0;if(!m){D=41;break}else{k=s;l=r;n=r}}if((D|0)==41)return}function xd(a,b){a=+a;b=+b;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,q=0,r=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0.0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0.0;p[s>>3]=a;c=f[s>>2]|0;d=f[s+4>>2]|0;p[s>>3]=b;e=f[s>>2]|0;g=f[s+4>>2]|0;h=Yn(c|0,d|0,52)|0;i=h&2047;h=Yn(e|0,g|0,52)|0;j=h&2047;h=d&-2147483648;k=Tn(e|0,g|0,1)|0;l=I;a:do if(!((k|0)==0&(l|0)==0)?(m=yo(b)|0,n=I&2147483647,!((i|0)==2047|(n>>>0>2146435072|(n|0)==2146435072&m>>>0>0))):0){m=Tn(c|0,d|0,1)|0;n=I;if(!(n>>>0>l>>>0|(n|0)==(l|0)&m>>>0>k>>>0))return +((m|0)==(k|0)&(n|0)==(l|0)?a*0.0:a);if(!i){n=Tn(c|0,d|0,12)|0;m=I;if((m|0)>-1|(m|0)==-1&n>>>0>4294967295){o=0;q=n;n=m;while(1){m=o+-1|0;q=Tn(q|0,n|0,1)|0;n=I;if(!((n|0)>-1|(n|0)==-1&q>>>0>4294967295)){r=m;break}else o=m}}else r=0;o=Tn(c|0,d|0,1-r|0)|0;t=r;u=o;v=I}else{t=i;u=c;v=d&1048575|1048576}if(!j){o=Tn(e|0,g|0,12)|0;q=I;if((q|0)>-1|(q|0)==-1&o>>>0>4294967295){n=0;m=o;o=q;while(1){q=n+-1|0;m=Tn(m|0,o|0,1)|0;o=I;if(!((o|0)>-1|(o|0)==-1&m>>>0>4294967295)){w=q;break}else n=q}}else w=0;n=Tn(e|0,g|0,1-w|0)|0;x=w;y=n;z=I}else{x=j;y=e;z=g&1048575|1048576}n=Xn(u|0,v|0,y|0,z|0)|0;m=I;o=(m|0)>-1|(m|0)==-1&n>>>0>4294967295;b:do if((t|0)>(x|0)){q=t;A=m;B=o;C=u;D=v;E=n;while(1){if(B)if((E|0)==0&(A|0)==0)break;else{F=E;G=A}else{F=C;G=D}H=Tn(F|0,G|0,1)|0;J=I;K=q+-1|0;L=Xn(H|0,J|0,y|0,z|0)|0;M=I;N=(M|0)>-1|(M|0)==-1&L>>>0>4294967295;if((K|0)>(x|0)){q=K;A=M;B=N;C=H;D=J;E=L}else{O=K;P=N;Q=L;R=M;S=H;T=J;break b}}U=a*0.0;break a}else{O=t;P=o;Q=n;R=m;S=u;T=v}while(0);if(P)if((Q|0)==0&(R|0)==0){U=a*0.0;break}else{V=R;W=Q}else{V=T;W=S}if(V>>>0<1048576|(V|0)==1048576&W>>>0<0){m=O;n=W;o=V;while(1){E=Tn(n|0,o|0,1)|0;D=I;C=m+-1|0;if(D>>>0<1048576|(D|0)==1048576&E>>>0<0){m=C;n=E;o=D}else{X=C;Y=E;Z=D;break}}}else{X=O;Y=W;Z=V}if((X|0)>0){o=Vn(Y|0,Z|0,0,-1048576)|0;n=I;m=Tn(X|0,0,52)|0;_=n|I;$=o|m}else{m=Yn(Y|0,Z|0,1-X|0)|0;_=I;$=m}f[s>>2]=$;f[s+4>>2]=_|h;U=+p[s>>3]}else aa=3;while(0);if((aa|0)==3){ba=a*b;U=ba/ba}return +U}function yd(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0;d=u;u=u+32|0;e=d+8|0;g=d;h=c+4|0;i=f[(f[h>>2]|0)+48>>2]|0;j=c+12|0;c=f[j>>2]|0;k=ln(32)|0;f[e>>2]=k;f[e+8>>2]=-2147483616;f[e+4>>2]=17;l=k;m=14495;n=l+17|0;do{b[l>>0]=b[m>>0]|0;l=l+1|0;m=m+1|0}while((l|0)<(n|0));b[k+17>>0]=0;k=i+16|0;m=f[k>>2]|0;if(m){l=k;n=m;a:while(1){m=n;while(1){if((f[m+16>>2]|0)>=(c|0))break;o=f[m+4>>2]|0;if(!o){p=l;break a}else m=o}n=f[m>>2]|0;if(!n){p=m;break}else l=m}if(((p|0)!=(k|0)?(c|0)>=(f[p+16>>2]|0):0)?(c=p+20|0,(Jh(c,e)|0)!=0):0)q=Hk(c,e,-1)|0;else r=10}else r=10;if((r|0)==10)q=Hk(i,e,-1)|0;if((b[e+11>>0]|0)<0)Oq(f[e>>2]|0);f[e>>2]=-1;f[e+4>>2]=-1;f[e+8>>2]=-1;f[e+12>>2]=-1;i=(_((1<>>0<=28){f[e>>2]=i+1;q=2<>2]=q+-1;i=q+-2|0;f[e+8>>2]=i;f[e+12>>2]=(i|0)/2|0}switch(Xi(f[j>>2]|0,f[h>>2]|0)|0){case 6:{i=f[j>>2]|0;q=f[h>>2]|0;c=f[(f[(f[q+4>>2]|0)+8>>2]|0)+(i<<2)>>2]|0;do if((Qa[f[(f[q>>2]|0)+8>>2]&127](q)|0)==1){Hf(g,q,6,i,e,514);p=f[g>>2]|0;if(!p){f[g>>2]=0;s=g;r=21;break}else{t=g;v=p;break}}else{s=g;r=21}while(0);if((r|0)==21){i=ln(24)|0;f[i+4>>2]=c;c=i+8|0;f[c>>2]=f[e>>2];f[c+4>>2]=f[e+4>>2];f[c+8>>2]=f[e+8>>2];f[c+12>>2]=f[e+12>>2];f[i>>2]=2560;c=i;f[g>>2]=c;t=s;v=c}f[a>>2]=v;f[t>>2]=0;u=d;return}case 0:{t=f[j>>2]|0;j=f[h>>2]|0;h=f[(f[(f[j+4>>2]|0)+8>>2]|0)+(t<<2)>>2]|0;do if((Qa[f[(f[j>>2]|0)+8>>2]&127](j)|0)==1){Hf(g,j,0,t,e,514);v=f[g>>2]|0;if(!v){f[g>>2]=0;w=g;r=28;break}else{x=g;y=v;break}}else{w=g;r=28}while(0);if((r|0)==28){r=ln(24)|0;f[r+4>>2]=h;h=r+8|0;f[h>>2]=f[e>>2];f[h+4>>2]=f[e+4>>2];f[h+8>>2]=f[e+8>>2];f[h+12>>2]=f[e+12>>2];f[r>>2]=2560;e=r;f[g>>2]=e;x=w;y=e}f[a>>2]=y;f[x>>2]=0;u=d;return}default:{f[a>>2]=0;u=d;return}}}function zd(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0;c=a+4|0;if(!b){d=f[a>>2]|0;f[a>>2]=0;if(d|0)Oq(d);f[c>>2]=0;return}if(b>>>0>1073741823){d=ra(8)|0;Oo(d,16035);f[d>>2]=7256;va(d|0,1112,110)}d=ln(b<<2)|0;e=f[a>>2]|0;f[a>>2]=d;if(e|0)Oq(e);f[c>>2]=b;c=0;do{f[(f[a>>2]|0)+(c<<2)>>2]=0;c=c+1|0}while((c|0)!=(b|0));c=a+8|0;e=f[c>>2]|0;if(!e)return;d=f[e+4>>2]|0;g=b+-1|0;h=(g&b|0)==0;if(!h)if(d>>>0>>0)i=d;else i=(d>>>0)%(b>>>0)|0;else i=d&g;f[(f[a>>2]|0)+(i<<2)>>2]=c;c=f[e>>2]|0;if(!c)return;else{j=i;k=e;l=c;m=e}a:while(1){e=k;c=l;i=m;b:while(1){c:do if(h){d=c;while(1){n=f[d+4>>2]&g;if((n|0)==(j|0)){o=d;break c}p=(f[a>>2]|0)+(n<<2)|0;if(!(f[p>>2]|0)){q=d;r=n;s=p;break b}p=d+12|0;t=d+16|0;u=f[d>>2]|0;d:do if(!u)v=d;else{w=f[d+8>>2]|0;x=d;y=u;while(1){if((w|0)!=(f[y+8>>2]|0)){v=x;break d}if((f[p>>2]|0)!=(f[y+12>>2]|0)){v=x;break d}if((f[t>>2]|0)!=(f[y+16>>2]|0)){v=x;break d}z=f[y>>2]|0;if(!z){v=y;break}else{A=y;y=z;x=A}}}while(0);f[i>>2]=f[v>>2];f[v>>2]=f[f[(f[a>>2]|0)+(n<<2)>>2]>>2];f[f[(f[a>>2]|0)+(n<<2)>>2]>>2]=d;d=f[e>>2]|0;if(!d){B=41;break a}}}else{d=c;while(1){t=f[d+4>>2]|0;if(t>>>0>>0)C=t;else C=(t>>>0)%(b>>>0)|0;if((C|0)==(j|0)){o=d;break c}t=(f[a>>2]|0)+(C<<2)|0;if(!(f[t>>2]|0)){q=d;r=C;s=t;break b}t=d+12|0;p=d+16|0;u=f[d>>2]|0;e:do if(!u)D=d;else{x=f[d+8>>2]|0;y=d;w=u;while(1){if((x|0)!=(f[w+8>>2]|0)){D=y;break e}if((f[t>>2]|0)!=(f[w+12>>2]|0)){D=y;break e}if((f[p>>2]|0)!=(f[w+16>>2]|0)){D=y;break e}A=f[w>>2]|0;if(!A){D=w;break}else{z=w;w=A;y=z}}}while(0);f[i>>2]=f[D>>2];f[D>>2]=f[f[(f[a>>2]|0)+(C<<2)>>2]>>2];f[f[(f[a>>2]|0)+(C<<2)>>2]>>2]=d;d=f[e>>2]|0;if(!d){B=41;break a}}}while(0);c=f[o>>2]|0;if(!c){B=41;break a}else{e=o;i=o}}f[s>>2]=i;l=f[q>>2]|0;if(!l){B=41;break}else{j=r;k=q;m=q}}if((B|0)==41)return}function Ad(a,b,c,d,e,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;g=g|0;h=h|0;var i=0,j=0;switch(c|0){case 1:{c=ln(40)|0;f[c+4>>2]=d;h=c+8|0;f[h>>2]=f[e>>2];f[h+4>>2]=f[e+4>>2];f[h+8>>2]=f[e+8>>2];f[h+12>>2]=f[e+12>>2];h=c+24|0;f[h>>2]=f[g>>2];f[h+4>>2]=f[g+4>>2];f[h+8>>2]=f[g+8>>2];f[h+12>>2]=f[g+12>>2];f[c>>2]=2980;i=c;f[a>>2]=i;return}case 2:{c=ln(40)|0;f[c+4>>2]=d;h=c+8|0;f[h>>2]=f[e>>2];f[h+4>>2]=f[e+4>>2];f[h+8>>2]=f[e+8>>2];f[h+12>>2]=f[e+12>>2];h=c+24|0;f[h>>2]=f[g>>2];f[h+4>>2]=f[g+4>>2];f[h+8>>2]=f[g+8>>2];f[h+12>>2]=f[g+12>>2];f[c>>2]=3036;i=c;f[a>>2]=i;return}case 4:{c=ln(152)|0;f[c+4>>2]=d;h=c+8|0;f[h>>2]=f[e>>2];f[h+4>>2]=f[e+4>>2];f[h+8>>2]=f[e+8>>2];f[h+12>>2]=f[e+12>>2];h=c+24|0;f[h>>2]=f[g>>2];f[h+4>>2]=f[g+4>>2];f[h+8>>2]=f[g+8>>2];f[h+12>>2]=f[g+12>>2];f[c>>2]=3092;h=c+96|0;b=c+40|0;j=b+52|0;do{f[b>>2]=0;b=b+4|0}while((b|0)<(j|0));Zm(h);f[c+136>>2]=0;f[c+140>>2]=0;f[c+144>>2]=0;i=c;f[a>>2]=i;return}case 3:{c=ln(68)|0;f[c+4>>2]=d;h=c+8|0;f[h>>2]=f[e>>2];f[h+4>>2]=f[e+4>>2];f[h+8>>2]=f[e+8>>2];f[h+12>>2]=f[e+12>>2];h=c+24|0;f[h>>2]=f[g>>2];f[h+4>>2]=f[g+4>>2];f[h+8>>2]=f[g+8>>2];f[h+12>>2]=f[g+12>>2];f[c>>2]=3148;h=c+40|0;f[h>>2]=0;f[h+4>>2]=0;f[h+8>>2]=0;f[h+12>>2]=0;f[h+16>>2]=0;f[h+20>>2]=0;f[h+24>>2]=0;i=c;f[a>>2]=i;return}case 5:{c=ln(84)|0;f[c+4>>2]=d;h=c+8|0;f[h>>2]=f[e>>2];f[h+4>>2]=f[e+4>>2];f[h+8>>2]=f[e+8>>2];f[h+12>>2]=f[e+12>>2];h=c+24|0;f[h>>2]=f[g>>2];f[h+4>>2]=f[g+4>>2];f[h+8>>2]=f[g+8>>2];f[h+12>>2]=f[g+12>>2];f[c>>2]=3204;f[c+40>>2]=0;f[c+44>>2]=0;f[c+56>>2]=0;f[c+60>>2]=0;f[c+64>>2]=0;h=c+68|0;f[h>>2]=f[g>>2];f[h+4>>2]=f[g+4>>2];f[h+8>>2]=f[g+8>>2];f[h+12>>2]=f[g+12>>2];i=c;f[a>>2]=i;return}case 6:{c=ln(120)|0;f[c+4>>2]=d;d=c+8|0;f[d>>2]=f[e>>2];f[d+4>>2]=f[e+4>>2];f[d+8>>2]=f[e+8>>2];f[d+12>>2]=f[e+12>>2];e=c+24|0;f[e>>2]=f[g>>2];f[e+4>>2]=f[g+4>>2];f[e+8>>2]=f[g+8>>2];f[e+12>>2]=f[g+12>>2];f[c>>2]=3260;f[c+44>>2]=0;f[c+48>>2]=0;e=c+52|0;f[e>>2]=f[g>>2];f[e+4>>2]=f[g+4>>2];f[e+8>>2]=f[g+8>>2];f[e+12>>2]=f[g+12>>2];f[c+40>>2]=3316;f[c+68>>2]=1;g=c+72|0;f[g>>2]=-1;f[g+4>>2]=-1;f[g+8>>2]=-1;f[g+12>>2]=-1;wn(c+88|0);i=c;f[a>>2]=i;return}default:{i=0;f[a>>2]=i;return}}}function Bd(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;d=a+4|0;if(!c){e=f[a>>2]|0;f[a>>2]=0;if(e|0)Oq(e);f[d>>2]=0;return}if(c>>>0>1073741823){e=ra(8)|0;Oo(e,16035);f[e>>2]=7256;va(e|0,1112,110)}e=ln(c<<2)|0;g=f[a>>2]|0;f[a>>2]=e;if(g|0)Oq(g);f[d>>2]=c;d=0;do{f[(f[a>>2]|0)+(d<<2)>>2]=0;d=d+1|0}while((d|0)!=(c|0));d=a+8|0;g=f[d>>2]|0;if(!g)return;e=f[g+4>>2]|0;h=c+-1|0;i=(h&c|0)==0;if(!i)if(e>>>0>>0)j=e;else j=(e>>>0)%(c>>>0)|0;else j=e&h;f[(f[a>>2]|0)+(j<<2)>>2]=d;d=f[g>>2]|0;if(!d)return;else{k=j;l=g;m=d;n=g}a:while(1){g=l;d=m;j=n;b:while(1){o=d;while(1){e=f[o+4>>2]|0;if(!i)if(e>>>0>>0)p=e;else p=(e>>>0)%(c>>>0)|0;else p=e&h;if((p|0)==(k|0))break;q=(f[a>>2]|0)+(p<<2)|0;if(!(f[q>>2]|0))break b;e=f[o>>2]|0;c:do if(!e)r=o;else{s=o+8|0;t=b[s+11>>0]|0;u=t<<24>>24<0;v=t&255;t=u?f[o+12>>2]|0:v;w=(t|0)==0;if(u){u=o;x=e;while(1){y=x+8|0;z=b[y+11>>0]|0;A=z<<24>>24<0;if((t|0)!=((A?f[x+12>>2]|0:z&255)|0)){r=u;break c}if(!w?Vk(f[s>>2]|0,A?f[y>>2]|0:y,t)|0:0){r=u;break c}y=f[x>>2]|0;if(!y){r=x;break c}else{A=x;x=y;u=A}}}if(w){u=o;x=e;while(1){A=b[x+8+11>>0]|0;if((A<<24>>24<0?f[x+12>>2]|0:A&255)|0){r=u;break c}A=f[x>>2]|0;if(!A){r=x;break c}else{y=x;x=A;u=y}}}u=o;x=e;while(1){w=x+8|0;y=b[w+11>>0]|0;A=y<<24>>24<0;if((t|0)!=((A?f[x+12>>2]|0:y&255)|0)){r=u;break c}y=A?f[w>>2]|0:w;if((b[y>>0]|0)==(f[s>>2]&255)<<24>>24){B=s;C=v;D=y}else{r=u;break c}while(1){C=C+-1|0;B=B+1|0;if(!C)break;D=D+1|0;if((b[B>>0]|0)!=(b[D>>0]|0)){r=u;break c}}y=f[x>>2]|0;if(!y){r=x;break}else{w=x;x=y;u=w}}}while(0);f[j>>2]=f[r>>2];f[r>>2]=f[f[(f[a>>2]|0)+(p<<2)>>2]>>2];f[f[(f[a>>2]|0)+(p<<2)>>2]>>2]=o;e=f[g>>2]|0;if(!e){E=43;break a}else o=e}d=f[o>>2]|0;if(!d){E=43;break a}else{g=o;j=o}}f[q>>2]=j;m=f[o>>2]|0;if(!m){E=43;break}else{k=p;l=o;n=o}}if((E|0)==43)return}function Cd(a,b,c,d,e,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;g=g|0;h=h|0;var i=0,j=0;switch(c|0){case 1:{c=ln(40)|0;f[c+4>>2]=d;h=c+8|0;f[h>>2]=f[e>>2];f[h+4>>2]=f[e+4>>2];f[h+8>>2]=f[e+8>>2];f[h+12>>2]=f[e+12>>2];h=c+24|0;f[h>>2]=f[g>>2];f[h+4>>2]=f[g+4>>2];f[h+8>>2]=f[g+8>>2];f[h+12>>2]=f[g+12>>2];f[c>>2]=2616;i=c;f[a>>2]=i;return}case 2:{c=ln(40)|0;f[c+4>>2]=d;h=c+8|0;f[h>>2]=f[e>>2];f[h+4>>2]=f[e+4>>2];f[h+8>>2]=f[e+8>>2];f[h+12>>2]=f[e+12>>2];h=c+24|0;f[h>>2]=f[g>>2];f[h+4>>2]=f[g+4>>2];f[h+8>>2]=f[g+8>>2];f[h+12>>2]=f[g+12>>2];f[c>>2]=2672;i=c;f[a>>2]=i;return}case 4:{c=ln(152)|0;f[c+4>>2]=d;h=c+8|0;f[h>>2]=f[e>>2];f[h+4>>2]=f[e+4>>2];f[h+8>>2]=f[e+8>>2];f[h+12>>2]=f[e+12>>2];h=c+24|0;f[h>>2]=f[g>>2];f[h+4>>2]=f[g+4>>2];f[h+8>>2]=f[g+8>>2];f[h+12>>2]=f[g+12>>2];f[c>>2]=2728;h=c+96|0;b=c+40|0;j=b+52|0;do{f[b>>2]=0;b=b+4|0}while((b|0)<(j|0));Zm(h);f[c+136>>2]=0;f[c+140>>2]=0;f[c+144>>2]=0;i=c;f[a>>2]=i;return}case 3:{c=ln(68)|0;f[c+4>>2]=d;h=c+8|0;f[h>>2]=f[e>>2];f[h+4>>2]=f[e+4>>2];f[h+8>>2]=f[e+8>>2];f[h+12>>2]=f[e+12>>2];h=c+24|0;f[h>>2]=f[g>>2];f[h+4>>2]=f[g+4>>2];f[h+8>>2]=f[g+8>>2];f[h+12>>2]=f[g+12>>2];f[c>>2]=2784;h=c+40|0;f[h>>2]=0;f[h+4>>2]=0;f[h+8>>2]=0;f[h+12>>2]=0;f[h+16>>2]=0;f[h+20>>2]=0;f[h+24>>2]=0;i=c;f[a>>2]=i;return}case 5:{c=ln(84)|0;f[c+4>>2]=d;h=c+8|0;f[h>>2]=f[e>>2];f[h+4>>2]=f[e+4>>2];f[h+8>>2]=f[e+8>>2];f[h+12>>2]=f[e+12>>2];h=c+24|0;f[h>>2]=f[g>>2];f[h+4>>2]=f[g+4>>2];f[h+8>>2]=f[g+8>>2];f[h+12>>2]=f[g+12>>2];f[c>>2]=2840;f[c+40>>2]=0;f[c+44>>2]=0;f[c+56>>2]=0;f[c+60>>2]=0;f[c+64>>2]=0;h=c+68|0;f[h>>2]=f[g>>2];f[h+4>>2]=f[g+4>>2];f[h+8>>2]=f[g+8>>2];f[h+12>>2]=f[g+12>>2];i=c;f[a>>2]=i;return}case 6:{c=ln(120)|0;f[c+4>>2]=d;d=c+8|0;f[d>>2]=f[e>>2];f[d+4>>2]=f[e+4>>2];f[d+8>>2]=f[e+8>>2];f[d+12>>2]=f[e+12>>2];e=c+24|0;f[e>>2]=f[g>>2];f[e+4>>2]=f[g+4>>2];f[e+8>>2]=f[g+8>>2];f[e+12>>2]=f[g+12>>2];f[c>>2]=2896;f[c+44>>2]=0;f[c+48>>2]=0;e=c+52|0;f[e>>2]=f[g>>2];f[e+4>>2]=f[g+4>>2];f[e+8>>2]=f[g+8>>2];f[e+12>>2]=f[g+12>>2];f[c+40>>2]=2952;f[c+68>>2]=1;g=c+72|0;f[g>>2]=-1;f[g+4>>2]=-1;f[g+8>>2]=-1;f[g+12>>2]=-1;wn(c+88|0);i=c;f[a>>2]=i;return}default:{i=0;f[a>>2]=i;return}}}function Dd(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;c=u;u=u+48|0;d=c+8|0;e=c+4|0;g=c;h=a+44|0;ci(f[h>>2]|0,b)|0;if(f[h>>2]|0){wn(d);tk(d);i=(f[h>>2]|0)+-1|0;if((i|0)>-1){h=a+40|0;j=i;do{fj(d,(f[(f[h>>2]|0)+(j>>>5<<2)>>2]&1<<(j&31)|0)!=0);j=j+-1|0}while((j|0)>-1)}ld(d,b);Fj(d)}j=a+56|0;ci(f[j>>2]|0,b)|0;if(f[j>>2]|0){wn(d);tk(d);h=(f[j>>2]|0)+-2|0;if((h|0)>-1){j=a+52|0;i=h;do{fj(d,(f[(f[j>>2]|0)+(i>>>5<<2)>>2]&1<<(i&31)|0)!=0);h=i+1|0;fj(d,(f[(f[j>>2]|0)+(h>>>5<<2)>>2]&1<<(h&31)|0)!=0);i=i+-2|0}while((i|0)>-1)}ld(d,b);Fj(d)}i=a+68|0;ci(f[i>>2]|0,b)|0;if(f[i>>2]|0){wn(d);tk(d);j=(f[i>>2]|0)+-3|0;if((j|0)>-1){i=a+64|0;h=j;do{fj(d,(f[(f[i>>2]|0)+(h>>>5<<2)>>2]&1<<(h&31)|0)!=0);j=h+1|0;fj(d,(f[(f[i>>2]|0)+(j>>>5<<2)>>2]&1<<(j&31)|0)!=0);j=h+2|0;fj(d,(f[(f[i>>2]|0)+(j>>>5<<2)>>2]&1<<(j&31)|0)!=0);h=h+-3|0}while((h|0)>-1)}ld(d,b);Fj(d)}h=a+80|0;ci(f[h>>2]|0,b)|0;if(f[h>>2]|0){wn(d);tk(d);i=(f[h>>2]|0)+-4|0;if((i|0)>-1){h=a+76|0;j=i;do{fj(d,(f[(f[h>>2]|0)+(j>>>5<<2)>>2]&1<<(j&31)|0)!=0);i=j+1|0;fj(d,(f[(f[h>>2]|0)+(i>>>5<<2)>>2]&1<<(i&31)|0)!=0);i=j+2|0;fj(d,(f[(f[h>>2]|0)+(i>>>5<<2)>>2]&1<<(i&31)|0)!=0);i=j+3|0;fj(d,(f[(f[h>>2]|0)+(i>>>5<<2)>>2]&1<<(i&31)|0)!=0);j=j+-4|0}while((j|0)>-1)}ld(d,b);Fj(d)}f[g>>2]=f[a+12>>2];j=b+16|0;h=j;i=f[h>>2]|0;k=f[h+4>>2]|0;if((k|0)>0|(k|0)==0&i>>>0>0){l=k;m=i}else{f[e>>2]=f[b+4>>2];f[d>>2]=f[e>>2];Me(b,d,g,g+4|0)|0;i=j;l=f[i+4>>2]|0;m=f[i>>2]|0}f[g>>2]=f[a+20>>2];if((l|0)>0|(l|0)==0&m>>>0>0){u=c;return 1}f[e>>2]=f[b+4>>2];f[d>>2]=f[e>>2];Me(b,d,g,g+4|0)|0;u=c;return 1}function Ed(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;c=u;u=u+48|0;d=c+8|0;e=c+4|0;g=c;h=a+64|0;ci(f[h>>2]|0,b)|0;if(f[h>>2]|0){wn(d);tk(d);i=(f[h>>2]|0)+-1|0;if((i|0)>-1){h=a+60|0;j=i;do{fj(d,(f[(f[h>>2]|0)+(j>>>5<<2)>>2]&1<<(j&31)|0)!=0);j=j+-1|0}while((j|0)>-1)}ld(d,b);Fj(d)}j=a+76|0;ci(f[j>>2]|0,b)|0;if(f[j>>2]|0){wn(d);tk(d);h=(f[j>>2]|0)+-2|0;if((h|0)>-1){j=a+72|0;i=h;do{fj(d,(f[(f[j>>2]|0)+(i>>>5<<2)>>2]&1<<(i&31)|0)!=0);h=i+1|0;fj(d,(f[(f[j>>2]|0)+(h>>>5<<2)>>2]&1<<(h&31)|0)!=0);i=i+-2|0}while((i|0)>-1)}ld(d,b);Fj(d)}i=a+88|0;ci(f[i>>2]|0,b)|0;if(f[i>>2]|0){wn(d);tk(d);j=(f[i>>2]|0)+-3|0;if((j|0)>-1){i=a+84|0;h=j;do{fj(d,(f[(f[i>>2]|0)+(h>>>5<<2)>>2]&1<<(h&31)|0)!=0);j=h+1|0;fj(d,(f[(f[i>>2]|0)+(j>>>5<<2)>>2]&1<<(j&31)|0)!=0);j=h+2|0;fj(d,(f[(f[i>>2]|0)+(j>>>5<<2)>>2]&1<<(j&31)|0)!=0);h=h+-3|0}while((h|0)>-1)}ld(d,b);Fj(d)}h=a+100|0;ci(f[h>>2]|0,b)|0;if(f[h>>2]|0){wn(d);tk(d);i=(f[h>>2]|0)+-4|0;if((i|0)>-1){h=a+96|0;j=i;do{fj(d,(f[(f[h>>2]|0)+(j>>>5<<2)>>2]&1<<(j&31)|0)!=0);i=j+1|0;fj(d,(f[(f[h>>2]|0)+(i>>>5<<2)>>2]&1<<(i&31)|0)!=0);i=j+2|0;fj(d,(f[(f[h>>2]|0)+(i>>>5<<2)>>2]&1<<(i&31)|0)!=0);i=j+3|0;fj(d,(f[(f[h>>2]|0)+(i>>>5<<2)>>2]&1<<(i&31)|0)!=0);j=j+-4|0}while((j|0)>-1)}ld(d,b);Fj(d)}f[g>>2]=f[a+12>>2];j=b+16|0;h=j;i=f[h>>2]|0;k=f[h+4>>2]|0;if((k|0)>0|(k|0)==0&i>>>0>0){l=k;m=i}else{f[e>>2]=f[b+4>>2];f[d>>2]=f[e>>2];Me(b,d,g,g+4|0)|0;i=j;l=f[i+4>>2]|0;m=f[i>>2]|0}f[g>>2]=f[a+16>>2];if((l|0)>0|(l|0)==0&m>>>0>0){u=c;return 1}f[e>>2]=f[b+4>>2];f[d>>2]=f[e>>2];Me(b,d,g,g+4|0)|0;u=c;return 1}function Fd(a,b){a=a|0;b=b|0;var c=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;c=a+4|0;if(!b){e=f[a>>2]|0;f[a>>2]=0;if(e|0)Oq(e);f[c>>2]=0;return}if(b>>>0>1073741823){e=ra(8)|0;Oo(e,16035);f[e>>2]=7256;va(e|0,1112,110)}e=ln(b<<2)|0;g=f[a>>2]|0;f[a>>2]=e;if(g|0)Oq(g);f[c>>2]=b;c=0;do{f[(f[a>>2]|0)+(c<<2)>>2]=0;c=c+1|0}while((c|0)!=(b|0));c=a+8|0;g=f[c>>2]|0;if(!g)return;e=f[g+4>>2]|0;h=b+-1|0;i=(h&b|0)==0;if(!i)if(e>>>0>>0)j=e;else j=(e>>>0)%(b>>>0)|0;else j=e&h;f[(f[a>>2]|0)+(j<<2)>>2]=c;c=f[g>>2]|0;if(!c)return;else{k=j;l=g;m=c;n=g}a:while(1){g=l;c=m;j=n;b:while(1){c:do if(i){e=c;while(1){o=f[e+4>>2]&h;if((o|0)==(k|0)){p=e;break c}q=(f[a>>2]|0)+(o<<2)|0;if(!(f[q>>2]|0)){r=e;s=o;t=q;break b}q=e+8|0;u=f[e>>2]|0;d:do if(!u)v=e;else{w=d[q>>1]|0;x=q+2|0;y=e;z=u;while(1){A=z+8|0;if(w<<16>>16!=(d[A>>1]|0)){v=y;break d}if((d[x>>1]|0)!=(d[A+2>>1]|0)){v=y;break d}A=f[z>>2]|0;if(!A){v=z;break}else{B=z;z=A;y=B}}}while(0);f[j>>2]=f[v>>2];f[v>>2]=f[f[(f[a>>2]|0)+(o<<2)>>2]>>2];f[f[(f[a>>2]|0)+(o<<2)>>2]>>2]=e;e=f[g>>2]|0;if(!e){C=39;break a}}}else{e=c;while(1){u=f[e+4>>2]|0;if(u>>>0>>0)D=u;else D=(u>>>0)%(b>>>0)|0;if((D|0)==(k|0)){p=e;break c}u=(f[a>>2]|0)+(D<<2)|0;if(!(f[u>>2]|0)){r=e;s=D;t=u;break b}u=e+8|0;q=f[e>>2]|0;e:do if(!q)E=e;else{y=d[u>>1]|0;z=u+2|0;x=e;w=q;while(1){B=w+8|0;if(y<<16>>16!=(d[B>>1]|0)){E=x;break e}if((d[z>>1]|0)!=(d[B+2>>1]|0)){E=x;break e}B=f[w>>2]|0;if(!B){E=w;break}else{A=w;w=B;x=A}}}while(0);f[j>>2]=f[E>>2];f[E>>2]=f[f[(f[a>>2]|0)+(D<<2)>>2]>>2];f[f[(f[a>>2]|0)+(D<<2)>>2]>>2]=e;e=f[g>>2]|0;if(!e){C=39;break a}}}while(0);c=f[p>>2]|0;if(!c){C=39;break a}else{g=p;j=p}}f[t>>2]=j;m=f[r>>2]|0;if(!m){C=39;break}else{k=s;l=r;n=r}}if((C|0)==39)return}function Gd(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;d=a+4|0;if(!c){e=f[a>>2]|0;f[a>>2]=0;if(e|0)Oq(e);f[d>>2]=0;return}if(c>>>0>1073741823){e=ra(8)|0;Oo(e,16035);f[e>>2]=7256;va(e|0,1112,110)}e=ln(c<<2)|0;g=f[a>>2]|0;f[a>>2]=e;if(g|0)Oq(g);f[d>>2]=c;d=0;do{f[(f[a>>2]|0)+(d<<2)>>2]=0;d=d+1|0}while((d|0)!=(c|0));d=a+8|0;g=f[d>>2]|0;if(!g)return;e=f[g+4>>2]|0;h=c+-1|0;i=(h&c|0)==0;if(!i)if(e>>>0>>0)j=e;else j=(e>>>0)%(c>>>0)|0;else j=e&h;f[(f[a>>2]|0)+(j<<2)>>2]=d;d=f[g>>2]|0;if(!d)return;else{k=j;l=g;m=d;n=g}a:while(1){g=l;d=m;j=n;b:while(1){c:do if(i){e=d;while(1){o=f[e+4>>2]&h;if((o|0)==(k|0)){p=e;break c}q=(f[a>>2]|0)+(o<<2)|0;if(!(f[q>>2]|0)){r=e;s=o;t=q;break b}q=e+8|0;u=f[e>>2]|0;d:do if(!u)v=e;else{w=b[q>>0]|0;x=q+1|0;y=e;z=u;while(1){A=z+8|0;if(w<<24>>24!=(b[A>>0]|0)){v=y;break d}if((b[x>>0]|0)!=(b[A+1>>0]|0)){v=y;break d}A=f[z>>2]|0;if(!A){v=z;break}else{B=z;z=A;y=B}}}while(0);f[j>>2]=f[v>>2];f[v>>2]=f[f[(f[a>>2]|0)+(o<<2)>>2]>>2];f[f[(f[a>>2]|0)+(o<<2)>>2]>>2]=e;e=f[g>>2]|0;if(!e){C=39;break a}}}else{e=d;while(1){u=f[e+4>>2]|0;if(u>>>0>>0)D=u;else D=(u>>>0)%(c>>>0)|0;if((D|0)==(k|0)){p=e;break c}u=(f[a>>2]|0)+(D<<2)|0;if(!(f[u>>2]|0)){r=e;s=D;t=u;break b}u=e+8|0;q=f[e>>2]|0;e:do if(!q)E=e;else{y=b[u>>0]|0;z=u+1|0;x=e;w=q;while(1){B=w+8|0;if(y<<24>>24!=(b[B>>0]|0)){E=x;break e}if((b[z>>0]|0)!=(b[B+1>>0]|0)){E=x;break e}B=f[w>>2]|0;if(!B){E=w;break}else{A=w;w=B;x=A}}}while(0);f[j>>2]=f[E>>2];f[E>>2]=f[f[(f[a>>2]|0)+(D<<2)>>2]>>2];f[f[(f[a>>2]|0)+(D<<2)>>2]>>2]=e;e=f[g>>2]|0;if(!e){C=39;break a}}}while(0);d=f[p>>2]|0;if(!d){C=39;break a}else{g=p;j=p}}f[t>>2]=j;m=f[r>>2]|0;if(!m){C=39;break}else{k=s;l=r;n=r}}if((C|0)==39)return}function Hd(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;c=u;u=u+48|0;d=c+32|0;e=c+28|0;g=c+16|0;h=c;i=a+16|0;j=f[i>>2]|0;if(j|0){k=f[b>>2]|0;l=i;m=j;a:while(1){j=m;while(1){if((f[j+16>>2]|0)>=(k|0))break;n=f[j+4>>2]|0;if(!n){o=l;break a}else j=n}m=f[j>>2]|0;if(!m){o=j;break}else l=j}if((o|0)!=(i|0)?(k|0)>=(f[o+16>>2]|0):0){p=o;q=p+20|0;u=c;return q|0}}lp(g);f[h>>2]=f[b>>2];b=h+4|0;f[h+8>>2]=0;o=h+12|0;f[o>>2]=0;k=h+8|0;f[b>>2]=k;l=f[g>>2]|0;m=g+4|0;if((l|0)!=(m|0)){n=k;r=l;while(1){l=r+16|0;f[e>>2]=n;f[d>>2]=f[e>>2];ph(b,d,l,l)|0;l=f[r+4>>2]|0;if(!l){s=r+8|0;t=f[s>>2]|0;if((f[t>>2]|0)==(r|0))v=t;else{t=s;do{s=f[t>>2]|0;t=s+8|0;w=f[t>>2]|0}while((f[w>>2]|0)!=(s|0));v=w}}else{t=l;while(1){j=f[t>>2]|0;if(!j)break;else t=j}v=t}if((v|0)==(m|0))break;else r=v}}v=a+12|0;r=f[i>>2]|0;do if(r){d=f[h>>2]|0;e=a+16|0;n=r;while(1){l=f[n+16>>2]|0;if((d|0)<(l|0)){j=f[n>>2]|0;if(!j){x=23;break}else{y=n;z=j}}else{if((l|0)>=(d|0)){x=27;break}A=n+4|0;l=f[A>>2]|0;if(!l){x=26;break}else{y=A;z=l}}e=y;n=z}if((x|0)==23){B=n;C=n;break}else if((x|0)==26){B=n;C=A;break}else if((x|0)==27){B=n;C=e;break}}else{B=i;C=i}while(0);i=f[C>>2]|0;if(!i){x=ln(32)|0;f[x+16>>2]=f[h>>2];A=x+20|0;f[A>>2]=f[b>>2];z=x+24|0;y=f[h+8>>2]|0;f[z>>2]=y;r=f[o>>2]|0;f[x+28>>2]=r;if(!r)f[A>>2]=z;else{f[y+8>>2]=z;f[b>>2]=k;f[k>>2]=0;f[o>>2]=0}f[x>>2]=0;f[x+4>>2]=0;f[x+8>>2]=B;f[C>>2]=x;B=f[f[v>>2]>>2]|0;if(!B)D=x;else{f[v>>2]=B;D=f[C>>2]|0}Oe(f[a+16>>2]|0,D);D=a+20|0;f[D>>2]=(f[D>>2]|0)+1;E=x}else E=i;Ej(h+4|0,f[k>>2]|0);Ej(g,f[m>>2]|0);p=E;q=p+20|0;u=c;return q|0}function Id(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;d=b[c+11>>0]|0;e=d<<24>>24<0;g=e?f[c>>2]|0:c;i=e?f[c+4>>2]|0:d&255;if(i>>>0>3){d=g;c=i;e=i;while(1){j=X(h[d>>0]|h[d+1>>0]<<8|h[d+2>>0]<<16|h[d+3>>0]<<24,1540483477)|0;c=(X(j>>>24^j,1540483477)|0)^(X(c,1540483477)|0);e=e+-4|0;if(e>>>0<=3)break;else d=d+4|0}d=i+-4|0;e=d&-4;k=d-e|0;l=g+(e+4)|0;m=c}else{k=i;l=g;m=i}switch(k|0){case 3:{n=h[l+2>>0]<<16^m;o=6;break}case 2:{n=m;o=6;break}case 1:{p=m;o=7;break}default:q=m}if((o|0)==6){p=h[l+1>>0]<<8^n;o=7}if((o|0)==7)q=X(p^h[l>>0],1540483477)|0;l=X(q>>>13^q,1540483477)|0;q=l>>>15^l;l=f[a+4>>2]|0;if(!l){r=0;return r|0}p=l+-1|0;n=(p&l|0)==0;if(!n)if(q>>>0>>0)s=q;else s=(q>>>0)%(l>>>0)|0;else s=q&p;m=f[(f[a>>2]|0)+(s<<2)>>2]|0;if(!m){r=0;return r|0}a=f[m>>2]|0;if(!a){r=0;return r|0}m=(i|0)==0;if(n){n=a;a:while(1){k=f[n+4>>2]|0;c=(k|0)==(q|0);if(!(c|(k&p|0)==(s|0))){r=0;o=40;break}do if(c?(k=n+8|0,e=b[k+11>>0]|0,d=e<<24>>24<0,j=e&255,((d?f[n+12>>2]|0:j)|0)==(i|0)):0){e=f[k>>2]|0;t=d?e:k;if(d){if(m){r=n;o=40;break a}if(!(Vk(t,g,i)|0)){r=n;o=40;break a}else break}if(m){r=n;o=40;break a}if((b[g>>0]|0)==(e&255)<<24>>24){e=k;k=j;j=g;do{k=k+-1|0;e=e+1|0;if(!k){r=n;o=40;break a}j=j+1|0}while((b[e>>0]|0)==(b[j>>0]|0))}}while(0);n=f[n>>2]|0;if(!n){r=0;o=40;break}}if((o|0)==40)return r|0}else u=a;b:while(1){a=f[u+4>>2]|0;do if((a|0)==(q|0)){n=u+8|0;p=b[n+11>>0]|0;c=p<<24>>24<0;j=p&255;if(((c?f[u+12>>2]|0:j)|0)==(i|0)){p=f[n>>2]|0;e=c?p:n;if(c){if(m){r=u;o=40;break b}if(!(Vk(e,g,i)|0)){r=u;o=40;break b}else break}if(m){r=u;o=40;break b}if((b[g>>0]|0)==(p&255)<<24>>24){p=n;n=j;j=g;do{n=n+-1|0;p=p+1|0;if(!n){r=u;o=40;break b}j=j+1|0}while((b[p>>0]|0)==(b[j>>0]|0))}}}else{if(a>>>0>>0)v=a;else v=(a>>>0)%(l>>>0)|0;if((v|0)!=(s|0)){r=0;o=40;break b}}while(0);u=f[u>>2]|0;if(!u){r=0;o=40;break}}if((o|0)==40)return r|0;return 0}function Jd(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0;c=a+4|0;if(!b){d=f[a>>2]|0;f[a>>2]=0;if(d|0)Oq(d);f[c>>2]=0;return}if(b>>>0>1073741823){d=ra(8)|0;Oo(d,16035);f[d>>2]=7256;va(d|0,1112,110)}d=ln(b<<2)|0;e=f[a>>2]|0;f[a>>2]=d;if(e|0)Oq(e);f[c>>2]=b;c=0;do{f[(f[a>>2]|0)+(c<<2)>>2]=0;c=c+1|0}while((c|0)!=(b|0));c=a+8|0;e=f[c>>2]|0;if(!e)return;d=f[e+4>>2]|0;g=b+-1|0;h=(g&b|0)==0;if(!h)if(d>>>0>>0)i=d;else i=(d>>>0)%(b>>>0)|0;else i=d&g;f[(f[a>>2]|0)+(i<<2)>>2]=c;c=f[e>>2]|0;if(!c)return;else{j=i;k=e;l=c;m=e}a:while(1){e=k;c=l;i=m;b:while(1){c:do if(h){d=c;while(1){n=f[d+4>>2]&g;if((n|0)==(j|0)){o=d;break c}p=(f[a>>2]|0)+(n<<2)|0;if(!(f[p>>2]|0)){q=d;r=n;s=p;break b}p=d+12|0;t=f[d>>2]|0;d:do if(!t)u=d;else{v=f[d+8>>2]|0;w=d;x=t;while(1){if((v|0)!=(f[x+8>>2]|0)){u=w;break d}if((f[p>>2]|0)!=(f[x+12>>2]|0)){u=w;break d}y=f[x>>2]|0;if(!y){u=x;break}else{z=x;x=y;w=z}}}while(0);f[i>>2]=f[u>>2];f[u>>2]=f[f[(f[a>>2]|0)+(n<<2)>>2]>>2];f[f[(f[a>>2]|0)+(n<<2)>>2]>>2]=d;d=f[e>>2]|0;if(!d){A=39;break a}}}else{d=c;while(1){p=f[d+4>>2]|0;if(p>>>0>>0)B=p;else B=(p>>>0)%(b>>>0)|0;if((B|0)==(j|0)){o=d;break c}p=(f[a>>2]|0)+(B<<2)|0;if(!(f[p>>2]|0)){q=d;r=B;s=p;break b}p=d+12|0;t=f[d>>2]|0;e:do if(!t)C=d;else{w=f[d+8>>2]|0;x=d;v=t;while(1){if((w|0)!=(f[v+8>>2]|0)){C=x;break e}if((f[p>>2]|0)!=(f[v+12>>2]|0)){C=x;break e}z=f[v>>2]|0;if(!z){C=v;break}else{y=v;v=z;x=y}}}while(0);f[i>>2]=f[C>>2];f[C>>2]=f[f[(f[a>>2]|0)+(B<<2)>>2]>>2];f[f[(f[a>>2]|0)+(B<<2)>>2]>>2]=d;d=f[e>>2]|0;if(!d){A=39;break a}}}while(0);c=f[o>>2]|0;if(!c){A=39;break a}else{e=o;i=o}}f[s>>2]=i;l=f[q>>2]|0;if(!l){A=39;break}else{j=r;k=q;m=q}}if((A|0)==39)return}function Kd(a,c,d,e,g){a=a|0;c=c|0;d=d|0;e=e|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;h=a+4|0;i=f[c>>2]|0;c=i;do if((i|0)!=(h|0)){j=i+16|0;k=b[j+11>>0]|0;l=k<<24>>24<0;m=l?f[i+20>>2]|0:k&255;k=b[g+11>>0]|0;n=k<<24>>24<0;o=n?f[g+4>>2]|0:k&255;k=m>>>0>>0;p=k?m:o;if((p|0)!=0?(q=Vk(n?f[g>>2]|0:g,l?f[j>>2]|0:j,p)|0,(q|0)!=0):0){if((q|0)<0)break}else r=4;if((r|0)==4?o>>>0>>0:0)break;q=o>>>0>>0?o:m;if((q|0)!=0?(m=Vk(l?f[j>>2]|0:j,n?f[g>>2]|0:g,q)|0,(m|0)!=0):0){if((m|0)>=0)r=37}else r=21;if((r|0)==21?!k:0)r=37;if((r|0)==37){f[d>>2]=c;f[e>>2]=c;s=e;return s|0}k=f[i+4>>2]|0;m=(k|0)==0;if(m){q=i+8|0;j=f[q>>2]|0;if((f[j>>2]|0)==(i|0))t=j;else{j=q;do{q=f[j>>2]|0;j=q+8|0;l=f[j>>2]|0}while((f[l>>2]|0)!=(q|0));t=l}}else{j=k;while(1){l=f[j>>2]|0;if(!l)break;else j=l}t=j}do if((t|0)!=(h|0)){k=t+16|0;l=b[k+11>>0]|0;q=l<<24>>24<0;p=q?f[t+20>>2]|0:l&255;l=p>>>0>>0?p:o;if((l|0)!=0?(u=Vk(n?f[g>>2]|0:g,q?f[k>>2]|0:k,l)|0,(u|0)!=0):0){if((u|0)<0)break}else r=31;if((r|0)==31?o>>>0

>>0:0)break;s=yg(a,d,g)|0;return s|0}while(0);if(m){f[d>>2]=c;s=i+4|0;return s|0}else{f[d>>2]=t;s=t;return s|0}}while(0);t=f[i>>2]|0;do if((f[a>>2]|0)==(i|0))v=c;else{if(!t){h=i;while(1){e=f[h+8>>2]|0;if((f[e>>2]|0)==(h|0))h=e;else{w=e;break}}}else{h=t;while(1){m=f[h+4>>2]|0;if(!m){w=h;break}else h=m}}h=w;m=w+16|0;e=b[g+11>>0]|0;o=e<<24>>24<0;n=o?f[g+4>>2]|0:e&255;e=b[m+11>>0]|0;j=e<<24>>24<0;p=j?f[w+20>>2]|0:e&255;e=n>>>0

>>0?n:p;if((e|0)!=0?(u=Vk(j?f[m>>2]|0:m,o?f[g>>2]|0:g,e)|0,(u|0)!=0):0){if((u|0)<0){v=h;break}}else r=13;if((r|0)==13?p>>>0>>0:0){v=h;break}s=yg(a,d,g)|0;return s|0}while(0);if(!t){f[d>>2]=i;s=i;return s|0}else{f[d>>2]=v;s=v+4|0;return s|0}return 0}function Ld(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0;g=a;h=b;i=h;j=c;k=d;l=k;if(!i){m=(e|0)!=0;if(!l){if(m){f[e>>2]=(g>>>0)%(j>>>0);f[e+4>>2]=0}n=0;o=(g>>>0)/(j>>>0)>>>0;return (I=n,o)|0}else{if(!m){n=0;o=0;return (I=n,o)|0}f[e>>2]=a|0;f[e+4>>2]=b&0;n=0;o=0;return (I=n,o)|0}}m=(l|0)==0;do if(j){if(!m){p=(_(l|0)|0)-(_(i|0)|0)|0;if(p>>>0<=31){q=p+1|0;r=31-p|0;s=p-31>>31;t=q;u=g>>>(q>>>0)&s|i<>>(q>>>0)&s;w=0;x=g<>2]=a|0;f[e+4>>2]=h|b&0;n=0;o=0;return (I=n,o)|0}r=j-1|0;if(r&j|0){s=(_(j|0)|0)+33-(_(i|0)|0)|0;q=64-s|0;p=32-s|0;y=p>>31;z=s-32|0;A=z>>31;t=s;u=p-1>>31&i>>>(z>>>0)|(i<>>(s>>>0))&A;v=A&i>>>(s>>>0);w=g<>>(z>>>0))&y|g<>31;break}if(e|0){f[e>>2]=r&g;f[e+4>>2]=0}if((j|0)==1){n=h|b&0;o=a|0|0;return (I=n,o)|0}else{r=vm(j|0)|0;n=i>>>(r>>>0)|0;o=i<<32-r|g>>>(r>>>0)|0;return (I=n,o)|0}}else{if(m){if(e|0){f[e>>2]=(i>>>0)%(j>>>0);f[e+4>>2]=0}n=0;o=(i>>>0)/(j>>>0)>>>0;return (I=n,o)|0}if(!g){if(e|0){f[e>>2]=0;f[e+4>>2]=(i>>>0)%(l>>>0)}n=0;o=(i>>>0)/(l>>>0)>>>0;return (I=n,o)|0}r=l-1|0;if(!(r&l)){if(e|0){f[e>>2]=a|0;f[e+4>>2]=r&i|b&0}n=0;o=i>>>((vm(l|0)|0)>>>0);return (I=n,o)|0}r=(_(l|0)|0)-(_(i|0)|0)|0;if(r>>>0<=30){s=r+1|0;p=31-r|0;t=s;u=i<>>(s>>>0);v=i>>>(s>>>0);w=0;x=g<>2]=a|0;f[e+4>>2]=h|b&0;n=0;o=0;return (I=n,o)|0}while(0);if(!t){B=x;C=w;D=v;E=u;F=0;G=0}else{b=c|0|0;c=k|d&0;d=Vn(b|0,c|0,-1,-1)|0;k=I;h=x;x=w;w=v;v=u;u=t;t=0;do{a=h;h=x>>>31|h<<1;x=t|x<<1;g=v<<1|a>>>31|0;a=v>>>31|w<<1|0;Xn(d|0,k|0,g|0,a|0)|0;i=I;l=i>>31|((i|0)<0?-1:0)<<1;t=l&1;v=Xn(g|0,a|0,l&b|0,(((i|0)<0?-1:0)>>31|((i|0)<0?-1:0)<<1)&c|0)|0;w=I;u=u-1|0}while((u|0)!=0);B=h;C=x;D=w;E=v;F=0;G=t}t=C;C=0;if(e|0){f[e>>2]=E;f[e+4>>2]=D}n=(t|0)>>>31|(B|C)<<1|(C<<1|t>>>31)&0|F;o=(t<<1|0>>>31)&-2|G;return (I=n,o)|0}function Md(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;g=u;u=u+16|0;h=g;f[c+48>>2]=d;f[c+44>>2]=e;e=f[c+8>>2]|0;d=c+12|0;i=f[d>>2]|0;if((i|0)!=(e|0)){j=i;do{i=j+-4|0;f[d>>2]=i;k=f[i>>2]|0;f[i>>2]=0;if(k|0)Va[f[(f[k>>2]|0)+4>>2]&127](k);j=f[d>>2]|0}while((j|0)!=(e|0))}e=f[c+20>>2]|0;j=c+24|0;d=f[j>>2]|0;if((d|0)!=(e|0))f[j>>2]=d+(~((d+-4-e|0)>>>2)<<2);e=f[c+32>>2]|0;d=c+36|0;j=f[d>>2]|0;if((j|0)!=(e|0))f[d>>2]=j+(~((j+-4-e|0)>>>2)<<2);if(!(f[c+4>>2]|0)){e=ln(32)|0;f[h>>2]=e;f[h+8>>2]=-2147483616;f[h+4>>2]=23;l=e;m=15706;n=l+23|0;do{b[l>>0]=b[m>>0]|0;l=l+1|0;m=m+1|0}while((l|0)<(n|0));b[e+23>>0]=0;f[a>>2]=-1;pj(a+4|0,h);if((b[h+11>>0]|0)<0)Oq(f[h>>2]|0);u=g;return}Ud(a,c);if(f[a>>2]|0){u=g;return}e=a+4|0;j=e+11|0;if((b[j>>0]|0)<0)Oq(f[e>>2]|0);Wi(a,c);if(f[a>>2]|0){u=g;return}if((b[j>>0]|0)<0)Oq(f[e>>2]|0);if(!(Qa[f[(f[c>>2]|0)+16>>2]&127](c)|0)){j=ln(32)|0;f[h>>2]=j;f[h+8>>2]=-2147483616;f[h+4>>2]=29;l=j;m=15730;n=l+29|0;do{b[l>>0]=b[m>>0]|0;l=l+1|0;m=m+1|0}while((l|0)<(n|0));b[j+29>>0]=0;f[a>>2]=-1;pj(e,h);if((b[h+11>>0]|0)<0)Oq(f[h>>2]|0);u=g;return}if(!(Qa[f[(f[c>>2]|0)+20>>2]&127](c)|0)){j=ln(32)|0;f[h>>2]=j;f[h+8>>2]=-2147483616;f[h+4>>2]=31;l=j;m=15760;n=l+31|0;do{b[l>>0]=b[m>>0]|0;l=l+1|0;m=m+1|0}while((l|0)<(n|0));b[j+31>>0]=0;f[a>>2]=-1;pj(e,h);if((b[h+11>>0]|0)<0)Oq(f[h>>2]|0);u=g;return}if(!(Qa[f[(f[c>>2]|0)+24>>2]&127](c)|0)){j=ln(32)|0;f[h>>2]=j;f[h+8>>2]=-2147483616;f[h+4>>2]=31;l=j;m=15792;n=l+31|0;do{b[l>>0]=b[m>>0]|0;l=l+1|0;m=m+1|0}while((l|0)<(n|0));b[j+31>>0]=0;f[a>>2]=-1;pj(e,h);if((b[h+11>>0]|0)<0)Oq(f[h>>2]|0);u=g;return}if(Qa[f[(f[c>>2]|0)+28>>2]&127](c)|0){f[a>>2]=0;f[a+4>>2]=0;f[a+8>>2]=0;f[a+12>>2]=0;u=g;return}c=ln(48)|0;f[h>>2]=c;f[h+8>>2]=-2147483600;f[h+4>>2]=34;l=c;m=15824;n=l+34|0;do{b[l>>0]=b[m>>0]|0;l=l+1|0;m=m+1|0}while((l|0)<(n|0));b[c+34>>0]=0;f[a>>2]=-1;pj(e,h);if((b[h+11>>0]|0)<0)Oq(f[h>>2]|0);u=g;return}function Nd(a){a=a|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;c=u;u=u+32|0;d=c+4|0;e=c;g=c+16|0;h=a+48|0;i=f[h>>2]|0;j=ln(32)|0;f[d>>2]=j;f[d+8>>2]=-2147483616;f[d+4>>2]=20;k=j;l=14538;m=k+20|0;do{b[k>>0]=b[l>>0]|0;k=k+1|0;l=l+1|0}while((k|0)<(m|0));b[j+20>>0]=0;j=Fk(i+24|0,d)|0;if((b[d+11>>0]|0)<0)Oq(f[d>>2]|0);i=f[h>>2]|0;n=ln(32)|0;f[d>>2]=n;f[d+8>>2]=-2147483616;f[d+4>>2]=22;k=n;l=14559;m=k+22|0;do{b[k>>0]=b[l>>0]|0;k=k+1|0;l=l+1|0}while((k|0)<(m|0));b[n+22>>0]=0;n=Fk(i+24|0,d)|0;if((b[d+11>>0]|0)<0)Oq(f[d>>2]|0);i=a+56|0;o=f[i>>2]|0;f[i>>2]=0;if(o|0)Va[f[(f[o>>2]|0)+4>>2]&127](o);o=f[a+52>>2]|0;p=(((f[o+100>>2]|0)-(f[o+96>>2]|0)|0)/12|0)>>>0<1e3;o=f[h>>2]|0;q=ln(32)|0;f[d>>2]=q;f[d+8>>2]=-2147483616;f[d+4>>2]=18;k=q;l=14582;m=k+18|0;do{b[k>>0]=b[l>>0]|0;k=k+1|0;l=l+1|0}while((k|0)<(m|0));b[q+18>>0]=0;q=Hk(o,d,-1)|0;if((b[d+11>>0]|0)<0)Oq(f[d>>2]|0);switch(q|0){case -1:{if(j?p|((mi(f[h>>2]|0)|0)>4|n^1):0)r=13;else r=17;break}case 0:{if(j)r=13;else r=21;break}case 2:{r=17;break}default:r=21}if((r|0)==13){j=f[a+44>>2]|0;b[g>>0]=0;n=j+16|0;h=f[n+4>>2]|0;if(!((h|0)>0|(h|0)==0&(f[n>>2]|0)>>>0>0)){f[e>>2]=f[j+4>>2];f[d>>2]=f[e>>2];Me(j,d,g,g+1|0)|0}j=ln(296)|0;_i(j);n=f[i>>2]|0;f[i>>2]=j;if(!n)s=j;else{Va[f[(f[n>>2]|0)+4>>2]&127](n);r=21}}else if((r|0)==17){n=f[a+44>>2]|0;b[g>>0]=2;j=n+16|0;h=f[j+4>>2]|0;if(!((h|0)>0|(h|0)==0&(f[j>>2]|0)>>>0>0)){f[e>>2]=f[n+4>>2];f[d>>2]=f[e>>2];Me(n,d,g,g+1|0)|0}g=ln(360)|0;xi(g);d=f[i>>2]|0;f[i>>2]=g;if(!d)s=g;else{Va[f[(f[d>>2]|0)+4>>2]&127](d);r=21}}if((r|0)==21){r=f[i>>2]|0;if(!r){t=0;u=c;return t|0}else s=r}t=Ra[f[(f[s>>2]|0)+8>>2]&127](s,a)|0;u=c;return t|0}function Od(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0;e=b+12|0;g=f[e>>2]|0;h=c+4|0;i=(f[h>>2]|0)-g|0;j=c;f[j>>2]=(f[c>>2]|0)-g;f[j+4>>2]=i;i=(f[d>>2]|0)-g|0;j=d+4|0;k=(f[j>>2]|0)-g|0;g=d;f[g>>2]=i;f[g+4>>2]=k;g=f[e>>2]|0;if((((k|0)>-1?k:0-k|0)+((i|0)>-1?i:0-i|0)|0)>(g|0)){l=f[c>>2]|0;m=f[h>>2]|0;if((l|0)>-1)if((m|0)<=-1)if((l|0)<1){n=-1;o=-1}else p=6;else{n=1;o=1}else if((m|0)<1){n=-1;o=-1}else p=6;if((p|0)==6){n=(l|0)>0?1:-1;o=(m|0)>0?1:-1}q=X(g,n)|0;r=X(g,o)|0;g=(l<<1)-q|0;f[c>>2]=g;l=(m<<1)-r|0;f[h>>2]=l;if((X(n,o)|0)>-1){o=0-l|0;f[c>>2]=o;s=0-g|0;t=o}else{f[c>>2]=l;s=g;t=l}f[c>>2]=(t+q|0)/2|0;f[h>>2]=(s+r|0)/2|0;r=f[d>>2]|0;s=f[j>>2]|0;if((r|0)>-1)if((s|0)<=-1)if((r|0)<1){u=-1;v=-1}else p=14;else{u=1;v=1}else if((s|0)<1){u=-1;v=-1}else p=14;if((p|0)==14){u=(r|0)>0?1:-1;v=(s|0)>0?1:-1}q=f[e>>2]|0;e=X(q,u)|0;t=X(q,v)|0;q=(r<<1)-e|0;f[d>>2]=q;r=(s<<1)-t|0;f[j>>2]=r;if((X(u,v)|0)>-1){v=0-r|0;f[d>>2]=v;w=0-q|0;x=v}else{f[d>>2]=r;w=q;x=r}r=(x+e|0)/2|0;f[d>>2]=r;e=(w+t|0)/2|0;f[j>>2]=e;y=r;z=e}else{y=i;z=k}if(!y)if(!z){A=y;B=z}else p=22;else if((y|0)<0&(z|0)<1){A=y;B=z}else p=22;if((p|0)==22){if(!y)C=(z|0)==0?0:(z|0)>0?3:1;else C=(y|0)>0?(z>>31)+2|0:(z|0)<1?0:3;z=f[c>>2]|0;y=f[h>>2]|0;switch(C|0){case 1:{C=c;f[C>>2]=y;f[C+4>>2]=0-z;D=f[j>>2]|0;E=0-(f[d>>2]|0)|0;break}case 2:{C=c;f[C>>2]=0-z;f[C+4>>2]=0-y;D=0-(f[d>>2]|0)|0;E=0-(f[j>>2]|0)|0;break}case 3:{C=c;f[C>>2]=0-y;f[C+4>>2]=z;D=0-(f[j>>2]|0)|0;E=f[d>>2]|0;break}default:{C=c;f[C>>2]=z;f[C+4>>2]=y;D=f[d>>2]|0;E=f[j>>2]|0}}j=d;f[j>>2]=D;f[j+4>>2]=E;A=D;B=E}E=(f[c>>2]|0)-A|0;f[a>>2]=E;A=(f[h>>2]|0)-B|0;B=a+4|0;f[B>>2]=A;if((E|0)<0)F=(f[b+4>>2]|0)+E|0;else F=E;f[a>>2]=F;if((A|0)>=0){G=A;f[B>>2]=G;return}G=(f[b+4>>2]|0)+A|0;f[B>>2]=G;return}function Pd(a,b){a=a|0;b=b|0;var c=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;c=a+4|0;if(!b){e=f[a>>2]|0;f[a>>2]=0;if(e|0)Oq(e);f[c>>2]=0;return}if(b>>>0>1073741823){e=ra(8)|0;Oo(e,16035);f[e>>2]=7256;va(e|0,1112,110)}e=ln(b<<2)|0;g=f[a>>2]|0;f[a>>2]=e;if(g|0)Oq(g);f[c>>2]=b;c=0;do{f[(f[a>>2]|0)+(c<<2)>>2]=0;c=c+1|0}while((c|0)!=(b|0));c=a+8|0;g=f[c>>2]|0;if(!g)return;e=f[g+4>>2]|0;h=b+-1|0;i=(h&b|0)==0;if(!i)if(e>>>0>>0)j=e;else j=(e>>>0)%(b>>>0)|0;else j=e&h;f[(f[a>>2]|0)+(j<<2)>>2]=c;c=f[g>>2]|0;if(!c)return;else{k=j;l=g;m=c;n=g}a:while(1){b:do if(i){g=l;c=m;j=n;while(1){e=c;while(1){o=f[e+4>>2]&h;if((o|0)==(k|0))break;p=(f[a>>2]|0)+(o<<2)|0;if(!(f[p>>2]|0)){q=e;r=j;s=o;t=p;break b}p=e+8|0;u=e;while(1){v=f[u>>2]|0;if(!v)break;if((d[p>>1]|0)==(d[v+8>>1]|0))u=v;else break}f[j>>2]=v;f[u>>2]=f[f[(f[a>>2]|0)+(o<<2)>>2]>>2];f[f[(f[a>>2]|0)+(o<<2)>>2]>>2]=e;p=f[g>>2]|0;if(!p){w=37;break a}else e=p}c=f[e>>2]|0;if(!c){w=37;break a}else{g=e;j=e}}}else{j=l;g=m;c=n;while(1){p=g;while(1){x=f[p+4>>2]|0;if(x>>>0>>0)y=x;else y=(x>>>0)%(b>>>0)|0;if((y|0)==(k|0))break;x=(f[a>>2]|0)+(y<<2)|0;if(!(f[x>>2]|0)){q=p;r=c;s=y;t=x;break b}x=p+8|0;z=p;while(1){A=f[z>>2]|0;if(!A)break;if((d[x>>1]|0)==(d[A+8>>1]|0))z=A;else break}f[c>>2]=A;f[z>>2]=f[f[(f[a>>2]|0)+(y<<2)>>2]>>2];f[f[(f[a>>2]|0)+(y<<2)>>2]>>2]=p;x=f[j>>2]|0;if(!x){w=37;break a}else p=x}g=f[p>>2]|0;if(!g){w=37;break a}else{j=p;c=p}}}while(0);f[t>>2]=r;m=f[q>>2]|0;if(!m){w=37;break}else{k=s;l=q;n=q}}if((w|0)==37)return}function Qd(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;d=a+4|0;if(!c){e=f[a>>2]|0;f[a>>2]=0;if(e|0)Oq(e);f[d>>2]=0;return}if(c>>>0>1073741823){e=ra(8)|0;Oo(e,16035);f[e>>2]=7256;va(e|0,1112,110)}e=ln(c<<2)|0;g=f[a>>2]|0;f[a>>2]=e;if(g|0)Oq(g);f[d>>2]=c;d=0;do{f[(f[a>>2]|0)+(d<<2)>>2]=0;d=d+1|0}while((d|0)!=(c|0));d=a+8|0;g=f[d>>2]|0;if(!g)return;e=f[g+4>>2]|0;h=c+-1|0;i=(h&c|0)==0;if(!i)if(e>>>0>>0)j=e;else j=(e>>>0)%(c>>>0)|0;else j=e&h;f[(f[a>>2]|0)+(j<<2)>>2]=d;d=f[g>>2]|0;if(!d)return;else{k=j;l=g;m=d;n=g}a:while(1){b:do if(i){g=l;d=m;j=n;while(1){e=d;while(1){o=f[e+4>>2]&h;if((o|0)==(k|0))break;p=(f[a>>2]|0)+(o<<2)|0;if(!(f[p>>2]|0)){q=e;r=j;s=o;t=p;break b}p=e+8|0;u=e;while(1){v=f[u>>2]|0;if(!v)break;if((b[p>>0]|0)==(b[v+8>>0]|0))u=v;else break}f[j>>2]=v;f[u>>2]=f[f[(f[a>>2]|0)+(o<<2)>>2]>>2];f[f[(f[a>>2]|0)+(o<<2)>>2]>>2]=e;p=f[g>>2]|0;if(!p){w=37;break a}else e=p}d=f[e>>2]|0;if(!d){w=37;break a}else{g=e;j=e}}}else{j=l;g=m;d=n;while(1){p=g;while(1){x=f[p+4>>2]|0;if(x>>>0>>0)y=x;else y=(x>>>0)%(c>>>0)|0;if((y|0)==(k|0))break;x=(f[a>>2]|0)+(y<<2)|0;if(!(f[x>>2]|0)){q=p;r=d;s=y;t=x;break b}x=p+8|0;z=p;while(1){A=f[z>>2]|0;if(!A)break;if((b[x>>0]|0)==(b[A+8>>0]|0))z=A;else break}f[d>>2]=A;f[z>>2]=f[f[(f[a>>2]|0)+(y<<2)>>2]>>2];f[f[(f[a>>2]|0)+(y<<2)>>2]>>2]=p;x=f[j>>2]|0;if(!x){w=37;break a}else p=x}g=f[p>>2]|0;if(!g){w=37;break a}else{j=p;d=p}}}while(0);f[t>>2]=r;m=f[q>>2]|0;if(!m){w=37;break}else{k=s;l=q;n=q}}if((w|0)==37)return}function Rd(a,b,c,d,e,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;g=f[c>>2]|0;c=f[b>>2]|0;h=g-c|0;i=a+8|0;j=f[i>>2]|0;if(h>>>0<64){if(j>>>0<=1){k=0;return k|0}l=f[e>>2]|0;m=0;n=1;while(1){o=(f[l+(m<<2)>>2]|0)>>>0>(f[l+(n<<2)>>2]|0)>>>0?n:m;n=n+1|0;if(n>>>0>=j>>>0){k=o;break}else m=o}return k|0}if(j){j=f[a+1128>>2]|0;m=f[e>>2]|0;e=f[a+1140>>2]|0;n=f[d>>2]|0;d=b+4|0;l=b+8|0;if((g|0)==(c|0)){b=0;do{o=j+(b<<2)|0;f[o>>2]=0;p=(f[a>>2]|0)-(f[m+(b<<2)>>2]|0)|0;f[e+(b<<2)>>2]=p;if(p|0){p=f[o>>2]|0;q=h-p|0;f[o>>2]=q>>>0

>>0?p:q}b=b+1|0;q=f[i>>2]|0}while(b>>>0>>0);r=q}else{b=0;do{q=j+(b<<2)|0;f[q>>2]=0;p=(f[a>>2]|0)-(f[m+(b<<2)>>2]|0)|0;f[e+(b<<2)>>2]=p;if(p|0){o=(f[n+(b<<2)>>2]|0)+(1<>2]|0;s=f[(f[d>>2]|0)+24>>2]|0;t=c;u=f[q>>2]|0;do{v=s+((X(t,p)|0)<<2)+(b<<2)|0;u=u+((f[v>>2]|0)>>>0>>0&1)|0;f[q>>2]=u;t=t+1|0}while((t|0)!=(g|0));t=h-u|0;f[q>>2]=t>>>0>>0?u:t}b=b+1|0;t=f[i>>2]|0}while(b>>>0>>0);r=t}if(r){b=f[a+1140>>2]|0;i=a+1128|0;h=0;g=0;c=0;while(1){if(!(f[b+(g<<2)>>2]|0)){w=h;x=c}else{d=f[(f[i>>2]|0)+(g<<2)>>2]|0;l=h>>>0>>0;w=l?d:h;x=l?g:c}g=g+1|0;if(g>>>0>=r>>>0){y=x;break}else{h=w;c=x}}}else y=0}else y=0;x=a+1088|0;c=a+1104|0;w=f[c>>2]|0;h=32-w|0;if((h|0)<4){r=y&15;g=4-h|0;f[c>>2]=g;h=a+1100|0;i=f[h>>2]|r>>>g;f[h>>2]=i;g=a+1092|0;b=f[g>>2]|0;if((b|0)==(f[a+1096>>2]|0))Ri(x,h);else{f[b>>2]=i;f[g>>2]=b+4}f[h>>2]=r<<32-(f[c>>2]|0);k=y;return k|0}r=a+1100|0;h=f[r>>2]|y<<28>>>w;f[r>>2]=h;b=w+4|0;f[c>>2]=b;if((b|0)!=32){k=y;return k|0}b=a+1092|0;w=f[b>>2]|0;if((w|0)==(f[a+1096>>2]|0))Ri(x,r);else{f[w>>2]=h;f[b>>2]=w+4}f[r>>2]=0;f[c>>2]=0;k=y;return k|0}function Sd(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;c=a+4|0;if(!b){d=f[a>>2]|0;f[a>>2]=0;if(d|0)Oq(d);f[c>>2]=0;return}if(b>>>0>1073741823){d=ra(8)|0;Oo(d,16035);f[d>>2]=7256;va(d|0,1112,110)}d=ln(b<<2)|0;e=f[a>>2]|0;f[a>>2]=d;if(e|0)Oq(e);f[c>>2]=b;c=0;do{f[(f[a>>2]|0)+(c<<2)>>2]=0;c=c+1|0}while((c|0)!=(b|0));c=a+8|0;e=f[c>>2]|0;if(!e)return;d=f[e+4>>2]|0;g=b+-1|0;h=(g&b|0)==0;if(!h)if(d>>>0>>0)i=d;else i=(d>>>0)%(b>>>0)|0;else i=d&g;f[(f[a>>2]|0)+(i<<2)>>2]=c;c=f[e>>2]|0;if(!c)return;else{j=i;k=e;l=c;m=e}a:while(1){b:do if(h){e=k;c=l;i=m;while(1){d=c;while(1){n=f[d+4>>2]&g;if((n|0)==(j|0))break;o=(f[a>>2]|0)+(n<<2)|0;if(!(f[o>>2]|0)){p=d;q=i;r=n;s=o;break b}o=d+8|0;t=d;while(1){u=f[t>>2]|0;if(!u)break;if((f[o>>2]|0)==(f[u+8>>2]|0))t=u;else break}f[i>>2]=u;f[t>>2]=f[f[(f[a>>2]|0)+(n<<2)>>2]>>2];f[f[(f[a>>2]|0)+(n<<2)>>2]>>2]=d;o=f[e>>2]|0;if(!o){v=37;break a}else d=o}c=f[d>>2]|0;if(!c){v=37;break a}else{e=d;i=d}}}else{i=k;e=l;c=m;while(1){o=e;while(1){w=f[o+4>>2]|0;if(w>>>0>>0)x=w;else x=(w>>>0)%(b>>>0)|0;if((x|0)==(j|0))break;w=(f[a>>2]|0)+(x<<2)|0;if(!(f[w>>2]|0)){p=o;q=c;r=x;s=w;break b}w=o+8|0;y=o;while(1){z=f[y>>2]|0;if(!z)break;if((f[w>>2]|0)==(f[z+8>>2]|0))y=z;else break}f[c>>2]=z;f[y>>2]=f[f[(f[a>>2]|0)+(x<<2)>>2]>>2];f[f[(f[a>>2]|0)+(x<<2)>>2]>>2]=o;w=f[i>>2]|0;if(!w){v=37;break a}else o=w}e=f[o>>2]|0;if(!e){v=37;break a}else{i=o;c=o}}}while(0);f[s>>2]=q;l=f[p>>2]|0;if(!l){v=37;break}else{j=r;k=p;m=p}}if((v|0)==37)return}function Td(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;d=a+4|0;if(!c){e=f[a>>2]|0;f[a>>2]=0;if(e|0)Oq(e);f[d>>2]=0;return}if(c>>>0>1073741823){e=ra(8)|0;Oo(e,16035);f[e>>2]=7256;va(e|0,1112,110)}e=ln(c<<2)|0;g=f[a>>2]|0;f[a>>2]=e;if(g|0)Oq(g);f[d>>2]=c;d=0;do{f[(f[a>>2]|0)+(d<<2)>>2]=0;d=d+1|0}while((d|0)!=(c|0));d=a+8|0;g=f[d>>2]|0;if(!g)return;e=f[g+4>>2]|0;h=c+-1|0;i=(h&c|0)==0;if(!i)if(e>>>0>>0)j=e;else j=(e>>>0)%(c>>>0)|0;else j=e&h;f[(f[a>>2]|0)+(j<<2)>>2]=d;d=f[g>>2]|0;if(!d)return;e=a+24|0;k=j;j=g;l=d;d=g;a:while(1){g=j;m=l;n=d;b:while(1){o=m;while(1){p=f[o+4>>2]|0;if(!i)if(p>>>0>>0)q=p;else q=(p>>>0)%(c>>>0)|0;else q=p&h;if((q|0)==(k|0))break;r=(f[a>>2]|0)+(q<<2)|0;if(!(f[r>>2]|0))break b;p=f[o>>2]|0;c:do if(!p)s=o;else{t=f[o+8>>2]|0;u=f[e>>2]|0;v=f[u+8>>2]|0;w=(f[u+12>>2]|0)-v|0;u=v;v=w>>>2;if((w|0)>0){x=o;y=p}else{w=p;while(1){z=f[w>>2]|0;if(!z){s=w;break c}else w=z}}while(1){w=f[y+8>>2]|0;z=0;do{A=f[u+(z<<2)>>2]|0;if(!(b[A+84>>0]|0)){B=f[A+68>>2]|0;C=f[B+(w<<2)>>2]|0;D=f[B+(t<<2)>>2]|0}else{C=w;D=t}z=z+1|0;if((D|0)!=(C|0)){s=x;break c}}while((z|0)<(v|0));z=f[y>>2]|0;if(!z){s=y;break}else{w=y;y=z;x=w}}}while(0);f[n>>2]=f[s>>2];f[s>>2]=f[f[(f[a>>2]|0)+(q<<2)>>2]>>2];f[f[(f[a>>2]|0)+(q<<2)>>2]>>2]=o;p=f[g>>2]|0;if(!p){E=38;break a}else o=p}m=f[o>>2]|0;if(!m){E=38;break a}else{g=o;n=o}}f[r>>2]=n;l=f[o>>2]|0;if(!l){E=38;break}else{k=q;j=o;d=o}}if((E|0)==38)return}function Ud(a,c){a=a|0;c=c|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0;e=u;u=u+16|0;g=e+4|0;h=e;i=e+12|0;j=e+11|0;k=e+10|0;l=e+8|0;m=c+44|0;n=f[m>>2]|0;o=n+16|0;p=f[o+4>>2]|0;if(!((p|0)>0|(p|0)==0&(f[o>>2]|0)>>>0>0)){f[h>>2]=f[n+4>>2];f[g>>2]=f[h>>2];Me(n,g,15886,15891)|0}n=Qa[f[(f[c>>2]|0)+8>>2]&127](c)|0;b[i>>0]=n;b[j>>0]=2;b[k>>0]=(n&255|0)==0?3:2;n=f[m>>2]|0;o=n+16|0;p=f[o+4>>2]|0;if(!((p|0)>0|(p|0)==0&(f[o>>2]|0)>>>0>0)){f[h>>2]=f[n+4>>2];f[g>>2]=f[h>>2];Me(n,g,j,j+1|0)|0;j=f[m>>2]|0;o=j+16|0;p=f[o+4>>2]|0;if(!((p|0)>0|(p|0)==0&(f[o>>2]|0)>>>0>0)){f[h>>2]=f[j+4>>2];f[g>>2]=f[h>>2];Me(j,g,k,k+1|0)|0;k=f[m>>2]|0;o=k+16|0;p=f[o+4>>2]|0;if((p|0)>0|(p|0)==0&(f[o>>2]|0)>>>0>0){q=h;r=k}else{f[h>>2]=f[k+4>>2];f[g>>2]=f[h>>2];Me(k,g,i,i+1|0)|0;q=h;r=f[m>>2]|0}}else{s=h;t=j;v=6}}else{s=h;t=n;v=6}if((v|0)==6){q=h;r=t}t=Qa[f[(f[c>>2]|0)+12>>2]&127](c)|0;b[l>>0]=t;t=r+16|0;q=f[t+4>>2]|0;if(!((q|0)>0|(q|0)==0&(f[t>>2]|0)>>>0>0)){f[h>>2]=f[r+4>>2];f[g>>2]=f[h>>2];Me(r,g,l,l+1|0)|0}d[l>>1]=(f[(f[c+4>>2]|0)+4>>2]|0)==0?0:-32768;c=f[m>>2]|0;m=c+16|0;r=f[m+4>>2]|0;if((r|0)>0|(r|0)==0&(f[m>>2]|0)>>>0>0){f[a>>2]=0;f[a+4>>2]=0;f[a+8>>2]=0;f[a+12>>2]=0;u=e;return}f[h>>2]=f[c+4>>2];f[g>>2]=f[h>>2];Me(c,g,l,l+2|0)|0;f[a>>2]=0;f[a+4>>2]=0;f[a+8>>2]=0;f[a+12>>2]=0;u=e;return}function Vd(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0;e=u;u=u+176|0;g=e+136|0;h=e+104|0;i=e;j=e+72|0;k=ln(88)|0;l=f[c+8>>2]|0;f[k+4>>2]=0;f[k>>2]=3612;m=k+12|0;f[m>>2]=3636;n=k+64|0;f[n>>2]=0;f[k+68>>2]=0;f[k+72>>2]=0;o=k+16|0;p=o+44|0;do{f[o>>2]=0;o=o+4|0}while((o|0)<(p|0));f[k+76>>2]=l;f[k+80>>2]=d;q=k+84|0;f[q>>2]=0;r=k;f[h>>2]=3636;s=h+4|0;t=s+4|0;f[t>>2]=0;f[t+4>>2]=0;f[t+8>>2]=0;f[t+12>>2]=0;f[t+16>>2]=0;f[t+20>>2]=0;t=f[c+12>>2]|0;v=i+4|0;f[v>>2]=3636;w=i+56|0;f[w>>2]=0;x=i+60|0;f[x>>2]=0;f[i+64>>2]=0;o=i+8|0;p=o+44|0;do{f[o>>2]=0;o=o+4|0}while((o|0)<(p|0));o=t;f[s>>2]=o;s=((f[o+4>>2]|0)-(f[t>>2]|0)>>2>>>0)/3|0;b[g>>0]=0;qh(h+8|0,s,g);Va[f[(f[h>>2]|0)+8>>2]&127](h);Ff(j,h);Ff(g,j);f[i>>2]=f[g+4>>2];s=i+4|0;fg(s,g)|0;f[g>>2]=3636;o=f[g+20>>2]|0;if(o|0)Oq(o);o=f[g+8>>2]|0;if(o|0)Oq(o);f[i+36>>2]=t;f[i+40>>2]=d;f[i+44>>2]=l;f[i+48>>2]=k;f[j>>2]=3636;l=f[j+20>>2]|0;if(l|0)Oq(l);l=f[j+8>>2]|0;if(l|0)Oq(l);f[q>>2]=c+72;f[k+8>>2]=f[i>>2];fg(m,s)|0;s=k+44|0;k=i+36|0;f[s>>2]=f[k>>2];f[s+4>>2]=f[k+4>>2];f[s+8>>2]=f[k+8>>2];f[s+12>>2]=f[k+12>>2];b[s+16>>0]=b[k+16>>0]|0;ng(n,f[w>>2]|0,f[x>>2]|0);f[a>>2]=r;r=f[w>>2]|0;if(r|0){w=f[x>>2]|0;if((w|0)!=(r|0))f[x>>2]=w+(~((w+-4-r|0)>>>2)<<2);Oq(r)}f[v>>2]=3636;v=f[i+24>>2]|0;if(v|0)Oq(v);v=f[i+12>>2]|0;if(v|0)Oq(v);f[h>>2]=3636;v=f[h+20>>2]|0;if(v|0)Oq(v);v=f[h+8>>2]|0;if(!v){u=e;return}Oq(v);u=e;return}function Wd(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=Oa,x=0,y=Oa,z=Oa,A=Oa;e=u;u=u+16|0;g=e;h=a+4|0;if((f[h>>2]|0)!=-1){i=0;u=e;return i|0}f[h>>2]=d;d=b[c+24>>0]|0;h=d<<24>>24;j=a+20|0;n[j>>2]=$(0.0);f[g>>2]=0;k=g+4|0;f[k>>2]=0;f[g+8>>2]=0;do if(d<<24>>24)if(d<<24>>24<0)aq(g);else{l=h<<2;m=ln(l)|0;f[g>>2]=m;o=m+(h<<2)|0;f[g+8>>2]=o;sj(m|0,0,l|0)|0;l=m+(h<<2)|0;f[k>>2]=l;p=m;q=l;r=o;break}else{p=0;q=0;r=0}while(0);k=a+8|0;g=f[k>>2]|0;o=a+12|0;if(!g)s=a+16|0;else{l=f[o>>2]|0;if((l|0)!=(g|0))f[o>>2]=l+(~((l+-4-g|0)>>>2)<<2);Oq(g);g=a+16|0;f[g>>2]=0;f[o>>2]=0;f[k>>2]=0;s=g}f[k>>2]=p;f[o>>2]=q;f[s>>2]=r;r=h>>>0>1073741823?-1:h<<2;s=Lq(r)|0;q=Lq(r)|0;r=c+48|0;o=f[r>>2]|0;g=c+40|0;a=f[g>>2]|0;l=f[c>>2]|0;kh(q|0,(f[l>>2]|0)+o|0,a|0)|0;kh(p|0,(f[l>>2]|0)+o|0,a|0)|0;a=r;r=f[a>>2]|0;o=f[a+4>>2]|0;a=g;g=f[a>>2]|0;l=f[a+4>>2]|0;a=f[c>>2]|0;kh(s|0,(f[a>>2]|0)+r|0,g|0)|0;p=f[c+80>>2]|0;a:do if(p>>>0>1){if(d<<24>>24<=0){c=1;while(1){m=un(g|0,l|0,c|0,0)|0;t=Vn(m|0,I|0,r|0,o|0)|0;kh(q|0,(f[a>>2]|0)+t|0,g|0)|0;c=c+1|0;if(c>>>0>=p>>>0)break a}}c=f[k>>2]|0;t=1;do{m=un(g|0,l|0,t|0,0)|0;v=Vn(m|0,I|0,r|0,o|0)|0;kh(q|0,(f[a>>2]|0)+v|0,g|0)|0;v=0;do{m=c+(v<<2)|0;w=$(n[m>>2]);x=q+(v<<2)|0;y=$(n[x>>2]);if(w>y){n[m>>2]=y;z=$(n[x>>2])}else z=y;x=s+(v<<2)|0;if($(n[x>>2])>2]=z;v=v+1|0}while((v|0)!=(h|0));t=t+1|0}while(t>>>0

>>0)}while(0);if(d<<24>>24>0){d=f[k>>2]|0;k=0;z=$(n[j>>2]);while(1){y=$(n[s+(k<<2)>>2]);w=$(y-$(n[d+(k<<2)>>2]));if(w>z){n[j>>2]=w;A=w}else A=z;k=k+1|0;if((k|0)==(h|0))break;else z=A}}Mq(q);Mq(s);i=1;u=e;return i|0}function Xd(a,b,c,d,e,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0;g=a+8|0;Mh(g,b,d,e);h=d-e|0;if((h|0)>0){d=0-e|0;i=a+16|0;j=a+32|0;k=a+12|0;l=a+28|0;m=a+20|0;n=a+24|0;o=h;h=f[g>>2]|0;while(1){p=b+(o<<2)|0;q=c+(o<<2)|0;if((h|0)>0){r=0;s=p+(d<<2)|0;t=h;while(1){if((t|0)>0){u=0;do{v=f[s+(u<<2)>>2]|0;w=f[i>>2]|0;if((v|0)>(w|0)){x=f[j>>2]|0;f[x+(u<<2)>>2]=w;y=x}else{x=f[k>>2]|0;w=f[j>>2]|0;f[w+(u<<2)>>2]=(v|0)<(x|0)?x:v;y=w}u=u+1|0}while((u|0)<(f[g>>2]|0));z=y}else z=f[j>>2]|0;u=(f[p+(r<<2)>>2]|0)-(f[z+(r<<2)>>2]|0)|0;w=q+(r<<2)|0;f[w>>2]=u;if((u|0)>=(f[l>>2]|0)){if((u|0)>(f[n>>2]|0)){A=u-(f[m>>2]|0)|0;B=31}}else{A=(f[m>>2]|0)+u|0;B=31}if((B|0)==31){B=0;f[w>>2]=A}r=r+1|0;w=f[g>>2]|0;if((r|0)>=(w|0)){C=w;break}else{s=z;t=w}}}else C=h;o=o-e|0;if((o|0)<=0){D=C;break}else h=C}}else D=f[g>>2]|0;C=e>>>0>1073741823?-1:e<<2;e=Lq(C)|0;sj(e|0,0,C|0)|0;if((D|0)<=0){Mq(e);return 1}C=a+16|0;h=a+32|0;o=a+12|0;z=a+28|0;A=a+20|0;m=a+24|0;a=0;n=e;l=D;while(1){if((l|0)>0){D=0;do{j=f[n+(D<<2)>>2]|0;y=f[C>>2]|0;if((j|0)>(y|0)){k=f[h>>2]|0;f[k+(D<<2)>>2]=y;E=k}else{k=f[o>>2]|0;y=f[h>>2]|0;f[y+(D<<2)>>2]=(j|0)<(k|0)?k:j;E=y}D=D+1|0}while((D|0)<(f[g>>2]|0));F=E}else F=f[h>>2]|0;D=(f[b+(a<<2)>>2]|0)-(f[F+(a<<2)>>2]|0)|0;y=c+(a<<2)|0;f[y>>2]=D;if((D|0)>=(f[z>>2]|0)){if((D|0)>(f[m>>2]|0)){G=D-(f[A>>2]|0)|0;B=16}}else{G=(f[A>>2]|0)+D|0;B=16}if((B|0)==16){B=0;f[y>>2]=G}a=a+1|0;l=f[g>>2]|0;if((a|0)>=(l|0))break;else n=F}Mq(e);return 1}function Yd(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0;e=f[a>>2]|0;g=e;h=(f[b>>2]|0)-g|0;b=e+(h>>2<<2)|0;i=f[c>>2]|0;c=f[d>>2]|0;d=c-i|0;j=d>>2;k=i;l=c;if((d|0)<=0){m=b;return m|0}d=a+8|0;n=f[d>>2]|0;o=a+4|0;p=f[o>>2]|0;q=p;if((j|0)<=(n-q>>2|0)){r=b;s=q-r|0;t=s>>2;if((j|0)>(t|0)){u=k+(t<<2)|0;t=u;if((u|0)==(l|0))v=p;else{w=l+-4-t|0;x=u;u=p;while(1){f[u>>2]=f[x>>2];x=x+4|0;if((x|0)==(l|0))break;else u=u+4|0}u=p+((w>>>2)+1<<2)|0;f[o>>2]=u;v=u}if((s|0)>0){y=t;z=v}else{m=b;return m|0}}else{y=c;z=p}c=z-(b+(j<<2))>>2;v=b+(c<<2)|0;if(v>>>0

>>0){t=(p+(0-c<<2)+~r|0)>>>2;r=v;s=z;while(1){f[s>>2]=f[r>>2];r=r+4|0;if(r>>>0>=p>>>0)break;else s=s+4|0}f[o>>2]=z+(t+1<<2)}if(c|0){c=v;v=z;do{c=c+-4|0;v=v+-4|0;f[v>>2]=f[c>>2]}while((c|0)!=(b|0))}c=y;if((k|0)==(c|0)){m=b;return m|0}else{A=b;B=k}while(1){f[A>>2]=f[B>>2];B=B+4|0;if((B|0)==(c|0)){m=b;break}else A=A+4|0}return m|0}A=(q-g>>2)+j|0;if(A>>>0>1073741823)aq(a);j=n-g|0;g=j>>1;n=j>>2>>>0<536870911?(g>>>0>>0?A:g):1073741823;g=b;A=h>>2;do if(n)if(n>>>0>1073741823){j=ra(8)|0;Oo(j,16035);f[j>>2]=7256;va(j|0,1112,110)}else{j=ln(n<<2)|0;C=j;D=j;break}else{C=0;D=0}while(0);j=D+(A<<2)|0;A=D+(n<<2)|0;if((l|0)==(k|0))E=j;else{n=((l+-4-i|0)>>>2)+1|0;i=k;k=j;while(1){f[k>>2]=f[i>>2];i=i+4|0;if((i|0)==(l|0))break;else k=k+4|0}E=j+(n<<2)|0}if((h|0)>0)kh(C|0,e|0,h|0)|0;h=q-g|0;if((h|0)>0){kh(E|0,b|0,h|0)|0;F=E+(h>>>2<<2)|0}else F=E;f[a>>2]=D;f[o>>2]=F;f[d>>2]=A;if(!e){m=j;return m|0}Oq(e);m=j;return m|0}function Zd(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0;c=u;u=u+48|0;d=c+40|0;e=c+36|0;g=c+32|0;h=c;i=a+60|0;ci(f[i>>2]|0,b)|0;wn(h);tk(h);j=f[a+56>>2]|0;k=f[i>>2]|0;i=k>>>5;l=j+(i<<2)|0;m=k&31;k=(i|0)!=0;a:do if(i|m|0){if(!m){n=1;o=j;p=k;while(1){if(p){q=n;r=0;while(1){s=(f[o>>2]&1<>2]&1<>2]&1<>2]&1<>2]=f[a+12>>2];m=b+16|0;w=m;v=f[w>>2]|0;j=f[w+4>>2]|0;if((j|0)>0|(j|0)==0&v>>>0>0){x=j;y=v}else{f[e>>2]=f[b+4>>2];f[d>>2]=f[e>>2];Me(b,d,g,g+4|0)|0;v=m;x=f[v+4>>2]|0;y=f[v>>2]|0}f[g>>2]=f[a+20>>2];if((x|0)>0|(x|0)==0&y>>>0>0){Fj(h);u=c;return 1}f[e>>2]=f[b+4>>2];f[d>>2]=f[e>>2];Me(b,d,g,g+4|0)|0;Fj(h);u=c;return 1}function _d(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;switch(b-a>>2|0){case 2:{d=b+-4|0;e=f[d>>2]|0;g=f[a>>2]|0;h=f[c>>2]|0;i=f[h>>2]|0;j=(f[h+4>>2]|0)-i>>3;if(j>>>0<=e>>>0)aq(h);k=i;if(j>>>0<=g>>>0)aq(h);if((f[k+(e<<3)>>2]|0)>>>0>=(f[k+(g<<3)>>2]|0)>>>0){l=1;return l|0}f[a>>2]=e;f[d>>2]=g;l=1;return l|0}case 3:{Vg(a,a+4|0,b+-4|0,c)|0;l=1;return l|0}case 4:{jh(a,a+4|0,a+8|0,b+-4|0,c)|0;l=1;return l|0}case 5:{ig(a,a+4|0,a+8|0,a+12|0,b+-4|0,c)|0;l=1;return l|0}case 1:case 0:{l=1;return l|0}default:{g=a+8|0;Vg(a,a+4|0,g,c)|0;d=a+12|0;a:do if((d|0)!=(b|0)){e=f[c>>2]|0;k=f[e>>2]|0;h=(f[e+4>>2]|0)-k>>3;j=k;k=d;i=0;m=g;b:while(1){n=f[k>>2]|0;o=f[m>>2]|0;if(h>>>0<=n>>>0){p=14;break}if(h>>>0<=o>>>0){p=16;break}q=j+(n<<3)|0;if((f[q>>2]|0)>>>0<(f[j+(o<<3)>>2]|0)>>>0){r=m;s=k;t=o;while(1){f[s>>2]=t;if((r|0)==(a|0)){u=a;break}o=r+-4|0;t=f[o>>2]|0;if(h>>>0<=t>>>0){p=20;break b}if((f[q>>2]|0)>>>0>=(f[j+(t<<3)>>2]|0)>>>0){u=r;break}else{v=r;r=o;s=v}}f[u>>2]=n;s=i+1|0;if((s|0)==8){w=0;x=(k+4|0)==(b|0);break a}else y=s}else y=i;s=k+4|0;if((s|0)==(b|0)){w=1;x=0;break a}else{r=k;k=s;i=y;m=r}}if((p|0)==14)aq(e);else if((p|0)==16)aq(e);else if((p|0)==20)aq(e)}else{w=1;x=0}while(0);l=x|w;return l|0}}return 0}function $d(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0;c=u;u=u+48|0;d=c+40|0;e=c+36|0;g=c+32|0;h=c;i=a+80|0;ci(f[i>>2]|0,b)|0;wn(h);tk(h);j=f[a+76>>2]|0;k=f[i>>2]|0;i=k>>>5;l=j+(i<<2)|0;m=k&31;k=(i|0)!=0;a:do if(i|m|0){if(!m){n=1;o=j;p=k;while(1){if(p){q=n;r=0;while(1){s=(f[o>>2]&1<>2]&1<>2]&1<>2]&1<>2]=f[a+12>>2];m=b+16|0;w=m;v=f[w>>2]|0;j=f[w+4>>2]|0;if((j|0)>0|(j|0)==0&v>>>0>0){x=j;y=v}else{f[e>>2]=f[b+4>>2];f[d>>2]=f[e>>2];Me(b,d,g,g+4|0)|0;v=m;x=f[v+4>>2]|0;y=f[v>>2]|0}f[g>>2]=f[a+16>>2];if((x|0)>0|(x|0)==0&y>>>0>0){Fj(h);u=c;return 1}f[e>>2]=f[b+4>>2];f[d>>2]=f[e>>2];Me(b,d,g,g+4|0)|0;Fj(h);u=c;return 1}function ae(a,b,c,d,e,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0;h=u;u=u+16|0;i=h+4|0;j=h;f[a+72>>2]=e;f[a+64>>2]=g;g=Lq(e>>>0>1073741823?-1:e<<2)|0;k=a+68|0;l=f[k>>2]|0;f[k>>2]=g;if(l|0)Mq(l);l=a+8|0;Mh(l,b,d,e);d=a+56|0;g=f[d>>2]|0;m=f[g+4>>2]|0;n=f[g>>2]|0;o=m-n|0;if((o|0)<=0){u=h;return 1}p=(o>>>2)+-1|0;o=a+16|0;q=a+32|0;r=a+12|0;s=a+28|0;t=a+20|0;v=a+24|0;if(m-n>>2>>>0>p>>>0){w=p;x=n}else{y=g;aq(y)}while(1){f[j>>2]=f[x+(w<<2)>>2];f[i>>2]=f[j>>2];Dc(a,i,b,w);g=X(w,e)|0;n=b+(g<<2)|0;p=c+(g<<2)|0;g=f[l>>2]|0;if((g|0)>0){m=0;z=f[k>>2]|0;A=g;while(1){if((A|0)>0){g=0;do{B=f[z+(g<<2)>>2]|0;C=f[o>>2]|0;if((B|0)>(C|0)){D=f[q>>2]|0;f[D+(g<<2)>>2]=C;E=D}else{D=f[r>>2]|0;C=f[q>>2]|0;f[C+(g<<2)>>2]=(B|0)<(D|0)?D:B;E=C}g=g+1|0}while((g|0)<(f[l>>2]|0));F=E}else F=f[q>>2]|0;g=(f[n+(m<<2)>>2]|0)-(f[F+(m<<2)>>2]|0)|0;C=p+(m<<2)|0;f[C>>2]=g;if((g|0)>=(f[s>>2]|0)){if((g|0)>(f[v>>2]|0)){G=g-(f[t>>2]|0)|0;H=21}}else{G=(f[t>>2]|0)+g|0;H=21}if((H|0)==21){H=0;f[C>>2]=G}m=m+1|0;A=f[l>>2]|0;if((m|0)>=(A|0))break;else z=F}}w=w+-1|0;if((w|0)<=-1){H=5;break}z=f[d>>2]|0;x=f[z>>2]|0;if((f[z+4>>2]|0)-x>>2>>>0<=w>>>0){y=z;H=6;break}}if((H|0)==5){u=h;return 1}else if((H|0)==6)aq(y);return 0} function $a(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0;b=u;u=u+16|0;c=b;do if(a>>>0<245){d=a>>>0<11?16:a+11&-8;e=d>>>3;g=f[4784]|0;h=g>>>e;if(h&3|0){i=(h&1^1)+e|0;j=19176+(i<<1<<2)|0;k=j+8|0;l=f[k>>2]|0;m=l+8|0;n=f[m>>2]|0;if((n|0)==(j|0))f[4784]=g&~(1<>2]=j;f[k>>2]=n}n=i<<3;f[l+4>>2]=n|3;i=l+n+4|0;f[i>>2]=f[i>>2]|1;o=m;u=b;return o|0}m=f[4786]|0;if(d>>>0>m>>>0){if(h|0){i=2<>>12&16;e=i>>>n;i=e>>>5&8;h=e>>>i;e=h>>>2&4;l=h>>>e;h=l>>>1&2;k=l>>>h;l=k>>>1&1;j=(i|n|e|h|l)+(k>>>l)|0;l=19176+(j<<1<<2)|0;k=l+8|0;h=f[k>>2]|0;e=h+8|0;n=f[e>>2]|0;if((n|0)==(l|0)){i=g&~(1<>2]=l;f[k>>2]=n;p=g}n=j<<3;j=n-d|0;f[h+4>>2]=d|3;k=h+d|0;f[k+4>>2]=j|1;f[h+n>>2]=j;if(m|0){n=f[4789]|0;h=m>>>3;l=19176+(h<<1<<2)|0;i=1<>2]|0;r=i}f[r>>2]=n;f[q+12>>2]=n;f[n+8>>2]=q;f[n+12>>2]=l}f[4786]=j;f[4789]=k;o=e;u=b;return o|0}e=f[4785]|0;if(e){k=(e&0-e)+-1|0;j=k>>>12&16;l=k>>>j;k=l>>>5&8;n=l>>>k;l=n>>>2&4;i=n>>>l;n=i>>>1&2;h=i>>>n;i=h>>>1&1;s=f[19440+((k|j|l|n|i)+(h>>>i)<<2)>>2]|0;i=(f[s+4>>2]&-8)-d|0;h=f[s+16+(((f[s+16>>2]|0)==0&1)<<2)>>2]|0;if(!h){t=s;v=i}else{n=s;s=i;i=h;while(1){h=(f[i+4>>2]&-8)-d|0;l=h>>>0>>0;j=l?h:s;h=l?i:n;i=f[i+16+(((f[i+16>>2]|0)==0&1)<<2)>>2]|0;if(!i){t=h;v=j;break}else{n=h;s=j}}}s=t+d|0;if(s>>>0>t>>>0){n=f[t+24>>2]|0;i=f[t+12>>2]|0;do if((i|0)==(t|0)){j=t+20|0;h=f[j>>2]|0;if(!h){l=t+16|0;k=f[l>>2]|0;if(!k){w=0;break}else{x=k;y=l}}else{x=h;y=j}while(1){j=x+20|0;h=f[j>>2]|0;if(h|0){x=h;y=j;continue}j=x+16|0;h=f[j>>2]|0;if(!h)break;else{x=h;y=j}}f[y>>2]=0;w=x}else{j=f[t+8>>2]|0;f[j+12>>2]=i;f[i+8>>2]=j;w=i}while(0);do if(n|0){i=f[t+28>>2]|0;j=19440+(i<<2)|0;if((t|0)==(f[j>>2]|0)){f[j>>2]=w;if(!w){f[4785]=e&~(1<>2]|0)!=(t|0)&1)<<2)>>2]=w;if(!w)break}f[w+24>>2]=n;i=f[t+16>>2]|0;if(i|0){f[w+16>>2]=i;f[i+24>>2]=w}i=f[t+20>>2]|0;if(i|0){f[w+20>>2]=i;f[i+24>>2]=w}}while(0);if(v>>>0<16){n=v+d|0;f[t+4>>2]=n|3;e=t+n+4|0;f[e>>2]=f[e>>2]|1}else{f[t+4>>2]=d|3;f[s+4>>2]=v|1;f[s+v>>2]=v;if(m|0){e=f[4789]|0;n=m>>>3;i=19176+(n<<1<<2)|0;j=1<>2]|0;A=j}f[A>>2]=e;f[z+12>>2]=e;f[e+8>>2]=z;f[e+12>>2]=i}f[4786]=v;f[4789]=s}o=t+8|0;u=b;return o|0}else B=d}else B=d}else B=d}else if(a>>>0<=4294967231){i=a+11|0;e=i&-8;j=f[4785]|0;if(j){n=0-e|0;h=i>>>8;if(h)if(e>>>0>16777215)C=31;else{i=(h+1048320|0)>>>16&8;l=h<>>16&4;k=l<>>16&2;D=14-(h|i|l)+(k<>>15)|0;C=e>>>(D+7|0)&1|D<<1}else C=0;D=f[19440+(C<<2)>>2]|0;a:do if(!D){E=0;F=0;G=n;H=57}else{l=0;k=n;i=D;h=e<<((C|0)==31?0:25-(C>>>1)|0);I=0;while(1){J=(f[i+4>>2]&-8)-e|0;if(J>>>0>>0)if(!J){K=0;L=i;M=i;H=61;break a}else{N=i;O=J}else{N=l;O=k}J=f[i+20>>2]|0;i=f[i+16+(h>>>31<<2)>>2]|0;P=(J|0)==0|(J|0)==(i|0)?I:J;J=(i|0)==0;if(J){E=P;F=N;G=O;H=57;break}else{l=N;k=O;h=h<<((J^1)&1);I=P}}}while(0);if((H|0)==57){if((E|0)==0&(F|0)==0){D=2<>>12&16;d=D>>>n;D=d>>>5&8;s=d>>>D;d=s>>>2&4;g=s>>>d;s=g>>>1&2;m=g>>>s;g=m>>>1&1;Q=0;R=f[19440+((D|n|d|s|g)+(m>>>g)<<2)>>2]|0}else{Q=F;R=E}if(!R){S=Q;T=G}else{K=G;L=R;M=Q;H=61}}if((H|0)==61)while(1){H=0;g=(f[L+4>>2]&-8)-e|0;m=g>>>0>>0;s=m?g:K;g=m?L:M;L=f[L+16+(((f[L+16>>2]|0)==0&1)<<2)>>2]|0;if(!L){S=g;T=s;break}else{K=s;M=g;H=61}}if((S|0)!=0?T>>>0<((f[4786]|0)-e|0)>>>0:0){g=S+e|0;if(g>>>0<=S>>>0){o=0;u=b;return o|0}s=f[S+24>>2]|0;m=f[S+12>>2]|0;do if((m|0)==(S|0)){d=S+20|0;n=f[d>>2]|0;if(!n){D=S+16|0;I=f[D>>2]|0;if(!I){U=0;break}else{V=I;W=D}}else{V=n;W=d}while(1){d=V+20|0;n=f[d>>2]|0;if(n|0){V=n;W=d;continue}d=V+16|0;n=f[d>>2]|0;if(!n)break;else{V=n;W=d}}f[W>>2]=0;U=V}else{d=f[S+8>>2]|0;f[d+12>>2]=m;f[m+8>>2]=d;U=m}while(0);do if(s){m=f[S+28>>2]|0;d=19440+(m<<2)|0;if((S|0)==(f[d>>2]|0)){f[d>>2]=U;if(!U){d=j&~(1<>2]|0)!=(S|0)&1)<<2)>>2]=U;if(!U){X=j;break}}f[U+24>>2]=s;d=f[S+16>>2]|0;if(d|0){f[U+16>>2]=d;f[d+24>>2]=U}d=f[S+20>>2]|0;if(d){f[U+20>>2]=d;f[d+24>>2]=U;X=j}else X=j}else X=j;while(0);do if(T>>>0>=16){f[S+4>>2]=e|3;f[g+4>>2]=T|1;f[g+T>>2]=T;j=T>>>3;if(T>>>0<256){s=19176+(j<<1<<2)|0;d=f[4784]|0;m=1<>2]|0;Z=m}f[Z>>2]=g;f[Y+12>>2]=g;f[g+8>>2]=Y;f[g+12>>2]=s;break}s=T>>>8;if(s)if(T>>>0>16777215)_=31;else{m=(s+1048320|0)>>>16&8;d=s<>>16&4;j=d<>>16&2;n=14-(s|m|d)+(j<>>15)|0;_=T>>>(n+7|0)&1|n<<1}else _=0;n=19440+(_<<2)|0;f[g+28>>2]=_;d=g+16|0;f[d+4>>2]=0;f[d>>2]=0;d=1<<_;if(!(X&d)){f[4785]=X|d;f[n>>2]=g;f[g+24>>2]=n;f[g+12>>2]=g;f[g+8>>2]=g;break}d=T<<((_|0)==31?0:25-(_>>>1)|0);j=f[n>>2]|0;while(1){if((f[j+4>>2]&-8|0)==(T|0)){H=97;break}$=j+16+(d>>>31<<2)|0;n=f[$>>2]|0;if(!n){H=96;break}else{d=d<<1;j=n}}if((H|0)==96){f[$>>2]=g;f[g+24>>2]=j;f[g+12>>2]=g;f[g+8>>2]=g;break}else if((H|0)==97){d=j+8|0;n=f[d>>2]|0;f[n+12>>2]=g;f[d>>2]=g;f[g+8>>2]=n;f[g+12>>2]=j;f[g+24>>2]=0;break}}else{n=T+e|0;f[S+4>>2]=n|3;d=S+n+4|0;f[d>>2]=f[d>>2]|1}while(0);o=S+8|0;u=b;return o|0}else B=e}else B=e}else B=-1;while(0);S=f[4786]|0;if(S>>>0>=B>>>0){T=S-B|0;$=f[4789]|0;if(T>>>0>15){_=$+B|0;f[4789]=_;f[4786]=T;f[_+4>>2]=T|1;f[$+S>>2]=T;f[$+4>>2]=B|3}else{f[4786]=0;f[4789]=0;f[$+4>>2]=S|3;T=$+S+4|0;f[T>>2]=f[T>>2]|1}o=$+8|0;u=b;return o|0}$=f[4787]|0;if($>>>0>B>>>0){T=$-B|0;f[4787]=T;S=f[4790]|0;_=S+B|0;f[4790]=_;f[_+4>>2]=T|1;f[S+4>>2]=B|3;o=S+8|0;u=b;return o|0}if(!(f[4902]|0)){f[4904]=4096;f[4903]=4096;f[4905]=-1;f[4906]=-1;f[4907]=0;f[4895]=0;f[4902]=c&-16^1431655768;aa=4096}else aa=f[4904]|0;c=B+48|0;S=B+47|0;T=aa+S|0;_=0-aa|0;aa=T&_;if(aa>>>0<=B>>>0){o=0;u=b;return o|0}X=f[4894]|0;if(X|0?(Y=f[4892]|0,Z=Y+aa|0,Z>>>0<=Y>>>0|Z>>>0>X>>>0):0){o=0;u=b;return o|0}b:do if(!(f[4895]&4)){X=f[4790]|0;c:do if(X){Z=19584;while(1){Y=f[Z>>2]|0;if(Y>>>0<=X>>>0?(ba=Z+4|0,(Y+(f[ba>>2]|0)|0)>>>0>X>>>0):0)break;Y=f[Z+8>>2]|0;if(!Y){H=118;break c}else Z=Y}j=T-$&_;if(j>>>0<2147483647){Y=Nl(j|0)|0;if((Y|0)==((f[Z>>2]|0)+(f[ba>>2]|0)|0))if((Y|0)==(-1|0))ca=j;else{da=j;ea=Y;H=135;break b}else{fa=Y;ga=j;H=126}}else ca=0}else H=118;while(0);do if((H|0)==118){X=Nl(0)|0;if((X|0)!=(-1|0)?(e=X,j=f[4903]|0,Y=j+-1|0,U=((Y&e|0)==0?0:(Y+e&0-j)-e|0)+aa|0,e=f[4892]|0,j=U+e|0,U>>>0>B>>>0&U>>>0<2147483647):0){Y=f[4894]|0;if(Y|0?j>>>0<=e>>>0|j>>>0>Y>>>0:0){ca=0;break}Y=Nl(U|0)|0;if((Y|0)==(X|0)){da=U;ea=X;H=135;break b}else{fa=Y;ga=U;H=126}}else ca=0}while(0);do if((H|0)==126){U=0-ga|0;if(!(c>>>0>ga>>>0&(ga>>>0<2147483647&(fa|0)!=(-1|0))))if((fa|0)==(-1|0)){ca=0;break}else{da=ga;ea=fa;H=135;break b}Y=f[4904]|0;X=S-ga+Y&0-Y;if(X>>>0>=2147483647){da=ga;ea=fa;H=135;break b}if((Nl(X|0)|0)==(-1|0)){Nl(U|0)|0;ca=0;break}else{da=X+ga|0;ea=fa;H=135;break b}}while(0);f[4895]=f[4895]|4;ha=ca;H=133}else{ha=0;H=133}while(0);if(((H|0)==133?aa>>>0<2147483647:0)?(ca=Nl(aa|0)|0,aa=Nl(0)|0,fa=aa-ca|0,ga=fa>>>0>(B+40|0)>>>0,!((ca|0)==(-1|0)|ga^1|ca>>>0>>0&((ca|0)!=(-1|0)&(aa|0)!=(-1|0))^1)):0){da=ga?fa:ha;ea=ca;H=135}if((H|0)==135){ca=(f[4892]|0)+da|0;f[4892]=ca;if(ca>>>0>(f[4893]|0)>>>0)f[4893]=ca;ca=f[4790]|0;do if(ca){ha=19584;while(1){ia=f[ha>>2]|0;ja=ha+4|0;ka=f[ja>>2]|0;if((ea|0)==(ia+ka|0)){H=143;break}fa=f[ha+8>>2]|0;if(!fa)break;else ha=fa}if(((H|0)==143?(f[ha+12>>2]&8|0)==0:0)?ea>>>0>ca>>>0&ia>>>0<=ca>>>0:0){f[ja>>2]=ka+da;fa=(f[4787]|0)+da|0;ga=ca+8|0;aa=(ga&7|0)==0?0:0-ga&7;ga=ca+aa|0;S=fa-aa|0;f[4790]=ga;f[4787]=S;f[ga+4>>2]=S|1;f[ca+fa+4>>2]=40;f[4791]=f[4906];break}if(ea>>>0<(f[4788]|0)>>>0)f[4788]=ea;fa=ea+da|0;S=19584;while(1){if((f[S>>2]|0)==(fa|0)){H=151;break}ga=f[S+8>>2]|0;if(!ga){la=19584;break}else S=ga}if((H|0)==151)if(!(f[S+12>>2]&8)){f[S>>2]=ea;ha=S+4|0;f[ha>>2]=(f[ha>>2]|0)+da;ha=ea+8|0;ga=ea+((ha&7|0)==0?0:0-ha&7)|0;ha=fa+8|0;aa=fa+((ha&7|0)==0?0:0-ha&7)|0;ha=ga+B|0;c=aa-ga-B|0;f[ga+4>>2]=B|3;do if((ca|0)!=(aa|0)){if((f[4789]|0)==(aa|0)){ba=(f[4786]|0)+c|0;f[4786]=ba;f[4789]=ha;f[ha+4>>2]=ba|1;f[ha+ba>>2]=ba;break}ba=f[aa+4>>2]|0;if((ba&3|0)==1){_=ba&-8;$=ba>>>3;d:do if(ba>>>0<256){T=f[aa+8>>2]|0;X=f[aa+12>>2]|0;if((X|0)==(T|0)){f[4784]=f[4784]&~(1<<$);break}else{f[T+12>>2]=X;f[X+8>>2]=T;break}}else{T=f[aa+24>>2]|0;X=f[aa+12>>2]|0;do if((X|0)==(aa|0)){U=aa+16|0;Y=U+4|0;j=f[Y>>2]|0;if(!j){e=f[U>>2]|0;if(!e){ma=0;break}else{na=e;oa=U}}else{na=j;oa=Y}while(1){Y=na+20|0;j=f[Y>>2]|0;if(j|0){na=j;oa=Y;continue}Y=na+16|0;j=f[Y>>2]|0;if(!j)break;else{na=j;oa=Y}}f[oa>>2]=0;ma=na}else{Y=f[aa+8>>2]|0;f[Y+12>>2]=X;f[X+8>>2]=Y;ma=X}while(0);if(!T)break;X=f[aa+28>>2]|0;Y=19440+(X<<2)|0;do if((f[Y>>2]|0)!=(aa|0)){f[T+16+(((f[T+16>>2]|0)!=(aa|0)&1)<<2)>>2]=ma;if(!ma)break d}else{f[Y>>2]=ma;if(ma|0)break;f[4785]=f[4785]&~(1<>2]=T;X=aa+16|0;Y=f[X>>2]|0;if(Y|0){f[ma+16>>2]=Y;f[Y+24>>2]=ma}Y=f[X+4>>2]|0;if(!Y)break;f[ma+20>>2]=Y;f[Y+24>>2]=ma}while(0);pa=aa+_|0;qa=_+c|0}else{pa=aa;qa=c}$=pa+4|0;f[$>>2]=f[$>>2]&-2;f[ha+4>>2]=qa|1;f[ha+qa>>2]=qa;$=qa>>>3;if(qa>>>0<256){ba=19176+($<<1<<2)|0;Z=f[4784]|0;Y=1<<$;if(!(Z&Y)){f[4784]=Z|Y;ra=ba;sa=ba+8|0}else{Y=ba+8|0;ra=f[Y>>2]|0;sa=Y}f[sa>>2]=ha;f[ra+12>>2]=ha;f[ha+8>>2]=ra;f[ha+12>>2]=ba;break}ba=qa>>>8;do if(!ba)ta=0;else{if(qa>>>0>16777215){ta=31;break}Y=(ba+1048320|0)>>>16&8;Z=ba<>>16&4;X=Z<<$;Z=(X+245760|0)>>>16&2;j=14-($|Y|Z)+(X<>>15)|0;ta=qa>>>(j+7|0)&1|j<<1}while(0);ba=19440+(ta<<2)|0;f[ha+28>>2]=ta;_=ha+16|0;f[_+4>>2]=0;f[_>>2]=0;_=f[4785]|0;j=1<>2]=ha;f[ha+24>>2]=ba;f[ha+12>>2]=ha;f[ha+8>>2]=ha;break}j=qa<<((ta|0)==31?0:25-(ta>>>1)|0);_=f[ba>>2]|0;while(1){if((f[_+4>>2]&-8|0)==(qa|0)){H=192;break}ua=_+16+(j>>>31<<2)|0;ba=f[ua>>2]|0;if(!ba){H=191;break}else{j=j<<1;_=ba}}if((H|0)==191){f[ua>>2]=ha;f[ha+24>>2]=_;f[ha+12>>2]=ha;f[ha+8>>2]=ha;break}else if((H|0)==192){j=_+8|0;ba=f[j>>2]|0;f[ba+12>>2]=ha;f[j>>2]=ha;f[ha+8>>2]=ba;f[ha+12>>2]=_;f[ha+24>>2]=0;break}}else{ba=(f[4787]|0)+c|0;f[4787]=ba;f[4790]=ha;f[ha+4>>2]=ba|1}while(0);o=ga+8|0;u=b;return o|0}else la=19584;while(1){ha=f[la>>2]|0;if(ha>>>0<=ca>>>0?(va=ha+(f[la+4>>2]|0)|0,va>>>0>ca>>>0):0)break;la=f[la+8>>2]|0}ga=va+-47|0;ha=ga+8|0;c=ga+((ha&7|0)==0?0:0-ha&7)|0;ha=ca+16|0;ga=c>>>0>>0?ca:c;c=ga+8|0;aa=da+-40|0;fa=ea+8|0;S=(fa&7|0)==0?0:0-fa&7;fa=ea+S|0;ba=aa-S|0;f[4790]=fa;f[4787]=ba;f[fa+4>>2]=ba|1;f[ea+aa+4>>2]=40;f[4791]=f[4906];aa=ga+4|0;f[aa>>2]=27;f[c>>2]=f[4896];f[c+4>>2]=f[4897];f[c+8>>2]=f[4898];f[c+12>>2]=f[4899];f[4896]=ea;f[4897]=da;f[4899]=0;f[4898]=c;c=ga+24|0;do{ba=c;c=c+4|0;f[c>>2]=7}while((ba+8|0)>>>0>>0);if((ga|0)!=(ca|0)){c=ga-ca|0;f[aa>>2]=f[aa>>2]&-2;f[ca+4>>2]=c|1;f[ga>>2]=c;ba=c>>>3;if(c>>>0<256){fa=19176+(ba<<1<<2)|0;S=f[4784]|0;j=1<>2]|0;xa=j}f[xa>>2]=ca;f[wa+12>>2]=ca;f[ca+8>>2]=wa;f[ca+12>>2]=fa;break}fa=c>>>8;if(fa)if(c>>>0>16777215)ya=31;else{j=(fa+1048320|0)>>>16&8;S=fa<>>16&4;ba=S<>>16&2;Z=14-(fa|j|S)+(ba<>>15)|0;ya=c>>>(Z+7|0)&1|Z<<1}else ya=0;Z=19440+(ya<<2)|0;f[ca+28>>2]=ya;f[ca+20>>2]=0;f[ha>>2]=0;S=f[4785]|0;ba=1<>2]=ca;f[ca+24>>2]=Z;f[ca+12>>2]=ca;f[ca+8>>2]=ca;break}ba=c<<((ya|0)==31?0:25-(ya>>>1)|0);S=f[Z>>2]|0;while(1){if((f[S+4>>2]&-8|0)==(c|0)){H=213;break}za=S+16+(ba>>>31<<2)|0;Z=f[za>>2]|0;if(!Z){H=212;break}else{ba=ba<<1;S=Z}}if((H|0)==212){f[za>>2]=ca;f[ca+24>>2]=S;f[ca+12>>2]=ca;f[ca+8>>2]=ca;break}else if((H|0)==213){ba=S+8|0;c=f[ba>>2]|0;f[c+12>>2]=ca;f[ba>>2]=ca;f[ca+8>>2]=c;f[ca+12>>2]=S;f[ca+24>>2]=0;break}}}else{c=f[4788]|0;if((c|0)==0|ea>>>0>>0)f[4788]=ea;f[4896]=ea;f[4897]=da;f[4899]=0;f[4793]=f[4902];f[4792]=-1;f[4797]=19176;f[4796]=19176;f[4799]=19184;f[4798]=19184;f[4801]=19192;f[4800]=19192;f[4803]=19200;f[4802]=19200;f[4805]=19208;f[4804]=19208;f[4807]=19216;f[4806]=19216;f[4809]=19224;f[4808]=19224;f[4811]=19232;f[4810]=19232;f[4813]=19240;f[4812]=19240;f[4815]=19248;f[4814]=19248;f[4817]=19256;f[4816]=19256;f[4819]=19264;f[4818]=19264;f[4821]=19272;f[4820]=19272;f[4823]=19280;f[4822]=19280;f[4825]=19288;f[4824]=19288;f[4827]=19296;f[4826]=19296;f[4829]=19304;f[4828]=19304;f[4831]=19312;f[4830]=19312;f[4833]=19320;f[4832]=19320;f[4835]=19328;f[4834]=19328;f[4837]=19336;f[4836]=19336;f[4839]=19344;f[4838]=19344;f[4841]=19352;f[4840]=19352;f[4843]=19360;f[4842]=19360;f[4845]=19368;f[4844]=19368;f[4847]=19376;f[4846]=19376;f[4849]=19384;f[4848]=19384;f[4851]=19392;f[4850]=19392;f[4853]=19400;f[4852]=19400;f[4855]=19408;f[4854]=19408;f[4857]=19416;f[4856]=19416;f[4859]=19424;f[4858]=19424;c=da+-40|0;ba=ea+8|0;ha=(ba&7|0)==0?0:0-ba&7;ba=ea+ha|0;ga=c-ha|0;f[4790]=ba;f[4787]=ga;f[ba+4>>2]=ga|1;f[ea+c+4>>2]=40;f[4791]=f[4906]}while(0);ea=f[4787]|0;if(ea>>>0>B>>>0){da=ea-B|0;f[4787]=da;ea=f[4790]|0;ca=ea+B|0;f[4790]=ca;f[ca+4>>2]=da|1;f[ea+4>>2]=B|3;o=ea+8|0;u=b;return o|0}}ea=Vq()|0;f[ea>>2]=12;o=0;u=b;return o|0}function ab(a,c,d,e,g,i){a=a|0;c=c|0;d=d|0;e=e|0;g=g|0;i=i|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0,Ha=0,Ia=0,Ja=0,Ka=0,La=0,Ma=0,Na=0,Oa=0,Pa=0,Qa=0,Ra=0,Sa=0,Ta=0,Ua=0,Va=0.0,Wa=0.0,Xa=0.0,Ya=0,Za=0,_a=0,$a=0,ab=0,bb=0,cb=0,db=0,eb=0,fb=0,gb=0,hb=0,ib=0,jb=0,kb=0,lb=0,mb=0,nb=0,ob=0,pb=0,qb=0,rb=0,sb=0,tb=0,ub=0,vb=0,wb=0,xb=0,yb=0,zb=0,Ab=0,Bb=0,Cb=0,Db=0,Eb=0,Fb=0,Gb=0,Hb=0,Ib=0,Jb=0,Kb=0,Lb=0,Mb=0,Nb=0,Ob=0;i=u;u=u+240|0;j=i+104|0;k=i+224|0;l=i+176|0;m=i+160|0;n=i+228|0;o=i+72|0;p=i+40|0;q=i+132|0;r=i;s=i+172|0;t=i+156|0;v=i+152|0;w=i+148|0;x=i+144|0;y=i+128|0;z=a+8|0;Mh(z,c,e,g);e=f[a+48>>2]|0;A=f[a+52>>2]|0;B=l;C=B+48|0;do{f[B>>2]=0;B=B+4|0}while((B|0)<(C|0));if(!g){D=0;E=0}else{Ci(l,g);D=f[l+12>>2]|0;E=f[l+16>>2]|0}B=l+16|0;C=E-D>>2;F=D;D=E;if(C>>>0>=g>>>0){if(C>>>0>g>>>0?(E=F+(g<<2)|0,(E|0)!=(D|0)):0)f[B>>2]=D+(~((D+-4-E|0)>>>2)<<2)}else Ci(l+12|0,g-C|0);C=l+24|0;E=l+28|0;D=f[E>>2]|0;B=f[C>>2]|0;F=D-B>>2;G=B;B=D;if(F>>>0>=g>>>0){if(F>>>0>g>>>0?(D=G+(g<<2)|0,(D|0)!=(B|0)):0)f[E>>2]=B+(~((B+-4-D|0)>>>2)<<2)}else Ci(C,g-F|0);F=l+36|0;C=l+40|0;D=f[C>>2]|0;B=f[F>>2]|0;E=D-B>>2;G=B;B=D;if(E>>>0>=g>>>0){if(E>>>0>g>>>0?(D=G+(g<<2)|0,(D|0)!=(B|0)):0)f[C>>2]=B+(~((B+-4-D|0)>>>2)<<2)}else Ci(F,g-E|0);f[m>>2]=0;E=m+4|0;f[E>>2]=0;f[m+8>>2]=0;F=(g|0)==0;do if(!F)if(g>>>0>1073741823)aq(m);else{D=g<<2;B=ln(D)|0;f[m>>2]=B;C=B+(g<<2)|0;f[m+8>>2]=C;sj(B|0,0,D|0)|0;f[E>>2]=C;break}while(0);C=a+152|0;D=a+156|0;B=f[D>>2]|0;G=f[C>>2]|0;H=B-G>>2;L=G;G=B;if(H>>>0>=g>>>0){if(H>>>0>g>>>0?(B=L+(g<<2)|0,(B|0)!=(G|0)):0)f[D>>2]=G+(~((G+-4-B|0)>>>2)<<2)}else Ci(C,g-H|0);f[o>>2]=0;f[o+4>>2]=0;f[o+8>>2]=0;f[o+12>>2]=0;f[o+16>>2]=0;f[o+20>>2]=0;f[o+24>>2]=0;f[o+28>>2]=0;f[p>>2]=0;f[p+4>>2]=0;f[p+8>>2]=0;f[p+12>>2]=0;f[p+16>>2]=0;f[p+20>>2]=0;f[p+24>>2]=0;f[p+28>>2]=0;f[q>>2]=0;H=q+4|0;f[H>>2]=0;f[q+8>>2]=0;if(F){M=0;N=0;O=0;P=0}else{F=g<<2;B=ln(F)|0;f[q>>2]=B;G=B+(g<<2)|0;f[q+8>>2]=G;sj(B|0,0,F|0)|0;f[H>>2]=G;M=B;N=G;O=G;P=B}B=a+56|0;G=f[B>>2]|0;F=f[G+4>>2]|0;D=f[G>>2]|0;L=F-D|0;a:do if((L|0)>4){Q=L>>2;R=e+64|0;S=e+28|0;T=(g|0)>0;U=r+4|0;V=r+8|0;Z=r+12|0;_=a+152|0;$=a+112|0;aa=r+16|0;ba=r+28|0;ca=a+16|0;da=a+32|0;ea=a+12|0;fa=a+28|0;ga=a+20|0;ha=a+24|0;ia=r+28|0;ja=r+16|0;ka=r+20|0;la=r+32|0;ma=n+1|0;na=g<<2;oa=(g|0)==1;pa=Q+-1|0;if(F-D>>2>>>0>pa>>>0){qa=Q;ra=pa;sa=D;ta=P;ua=O;va=M;wa=M;xa=N;ya=M;za=N}else{Aa=G;aq(Aa)}b:while(1){pa=f[sa+(ra<<2)>>2]|0;Q=(((pa>>>0)%3|0|0)==0?2:-1)+pa|0;Ba=Q>>>5;Ca=1<<(Q&31);Da=(pa|0)==-1|(Q|0)==-1;Ea=1;Fa=0;Ga=pa;c:while(1){Ha=Ea^1;Ia=Fa;Ja=Ga;while(1){if((Ja|0)==-1){Ka=Ia;break c}La=f[l+(Ia*12|0)>>2]|0;if(((f[(f[e>>2]|0)+(Ja>>>5<<2)>>2]&1<<(Ja&31)|0)==0?(Ma=f[(f[(f[R>>2]|0)+12>>2]|0)+(Ja<<2)>>2]|0,(Ma|0)!=-1):0)?(Na=f[S>>2]|0,Oa=f[A>>2]|0,Pa=f[Oa+(f[Na+(Ma<<2)>>2]<<2)>>2]|0,Qa=Ma+1|0,Ra=f[Oa+(f[Na+((((Qa>>>0)%3|0|0)==0?Ma+-2|0:Qa)<<2)>>2]<<2)>>2]|0,Qa=f[Oa+(f[Na+((((Ma>>>0)%3|0|0)==0?2:-1)+Ma<<2)>>2]<<2)>>2]|0,(Pa|0)<(ra|0)&(Ra|0)<(ra|0)&(Qa|0)<(ra|0)):0){Ma=X(Pa,g)|0;Pa=X(Ra,g)|0;Ra=X(Qa,g)|0;if(T){Qa=0;do{f[La+(Qa<<2)>>2]=(f[c+(Qa+Ra<<2)>>2]|0)+(f[c+(Qa+Pa<<2)>>2]|0)-(f[c+(Qa+Ma<<2)>>2]|0);Qa=Qa+1|0}while((Qa|0)!=(g|0))}Qa=Ia+1|0;if((Qa|0)==4){Ka=4;break c}else Sa=Qa}else Sa=Ia;do if(Ea){Qa=Ja+1|0;Ma=((Qa>>>0)%3|0|0)==0?Ja+-2|0:Qa;if(((Ma|0)!=-1?(f[(f[e>>2]|0)+(Ma>>>5<<2)>>2]&1<<(Ma&31)|0)==0:0)?(Qa=f[(f[(f[R>>2]|0)+12>>2]|0)+(Ma<<2)>>2]|0,Ma=Qa+1|0,(Qa|0)!=-1):0)Ta=((Ma>>>0)%3|0|0)==0?Qa+-2|0:Ma;else Ta=-1}else{Ma=(((Ja>>>0)%3|0|0)==0?2:-1)+Ja|0;if(((Ma|0)!=-1?(f[(f[e>>2]|0)+(Ma>>>5<<2)>>2]&1<<(Ma&31)|0)==0:0)?(Qa=f[(f[(f[R>>2]|0)+12>>2]|0)+(Ma<<2)>>2]|0,(Qa|0)!=-1):0)if(!((Qa>>>0)%3|0)){Ta=Qa+2|0;break}else{Ta=Qa+-1|0;break}else Ta=-1}while(0);if((Ta|0)==(pa|0)){Ka=Sa;break c}if((Ta|0)!=-1|Ha){Ia=Sa;Ja=Ta}else break}if(Da){Ea=0;Fa=Sa;Ga=-1;continue}if(f[(f[e>>2]|0)+(Ba<<2)>>2]&Ca|0){Ea=0;Fa=Sa;Ga=-1;continue}Ja=f[(f[(f[R>>2]|0)+12>>2]|0)+(Q<<2)>>2]|0;if((Ja|0)==-1){Ea=0;Fa=Sa;Ga=-1;continue}if(!((Ja>>>0)%3|0)){Ea=0;Fa=Sa;Ga=Ja+2|0;continue}else{Ea=0;Fa=Sa;Ga=Ja+-1|0;continue}}Ga=X(ra,g)|0;f[r>>2]=0;f[U>>2]=0;b[V>>0]=0;f[Z>>2]=0;f[Z+4>>2]=0;f[Z+8>>2]=0;f[Z+12>>2]=0;f[Z+16>>2]=0;f[Z+20>>2]=0;f[Z+24>>2]=0;Fa=Ka+-1|0;Ea=p+(Fa<<3)|0;Q=Ea;Ca=Vn(f[Q>>2]|0,f[Q+4>>2]|0,Ka|0,((Ka|0)<0)<<31>>31|0)|0;Q=I;Ba=Ea;f[Ba>>2]=Ca;f[Ba+4>>2]=Q;Ba=c+((X(qa+-2|0,g)|0)<<2)|0;Ea=c+(Ga<<2)|0;Da=f[_>>2]|0;if(T){pa=0;Ja=0;while(1){Ia=(f[Ba+(pa<<2)>>2]|0)-(f[Ea+(pa<<2)>>2]|0)|0;Ha=((Ia|0)>-1?Ia:0-Ia|0)+Ja|0;f[va+(pa<<2)>>2]=Ia;f[Da+(pa<<2)>>2]=Ia<<1^Ia>>31;pa=pa+1|0;if((pa|0)==(g|0)){Ua=Ha;break}else Ja=Ha}}else Ua=0;mo(j,$,Da,g);Ja=Zk(j)|0;pa=I;Ha=Bm(j)|0;Ia=I;Qa=o+(Fa<<3)|0;Ma=Qa;Pa=f[Ma>>2]|0;Ra=f[Ma+4>>2]|0;Va=+wm(Ca,Pa);Ma=Vn(Ha|0,Ia|0,Ja|0,pa|0)|0;Wa=+(Ca>>>0)+4294967296.0*+(Q|0);Xa=+W(+(Va*Wa));pa=Vn(Ma|0,I|0,~~Xa>>>0|0,(+K(Xa)>=1.0?(Xa>0.0?~~+Y(+J(Xa/4294967296.0),4294967295.0)>>>0:~~+W((Xa-+(~~Xa>>>0))/4294967296.0)>>>0):0)|0)|0;Ma=r;f[Ma>>2]=pa;f[Ma+4>>2]=Ua;b[V>>0]=0;f[Z>>2]=0;$f(aa,Ba,Ba+(g<<2)|0);f[s>>2]=ta;f[t>>2]=ua;f[k>>2]=f[s>>2];f[j>>2]=f[t>>2];Jf(ba,k,j);if((Ka|0)<1){Ya=za;Za=ya;_a=xa;$a=wa;ab=ua;bb=ta;cb=ta}else{Ma=n+Ka|0;pa=f[q>>2]|0;Ja=pa;Ia=f[H>>2]|0;Ha=Ma+-1|0;La=(Ha|0)==(n|0);Na=Ma+-2|0;Oa=ma>>>0>>0;db=~Ka;eb=Ka+2+((db|0)>-2?db:-2)|0;db=Ia;fb=Ha>>>0>n>>>0;gb=0;hb=1;while(1){gb=gb+1|0;sj(n|0,1,eb|0)|0;sj(n|0,0,gb|0)|0;ib=Vn(Pa|0,Ra|0,hb|0,0)|0;d:while(1){if(T){sj(f[m>>2]|0,0,na|0)|0;jb=f[m>>2]|0;kb=0;lb=0;while(1){if(!(b[n+kb>>0]|0)){mb=f[l+(kb*12|0)>>2]|0;nb=0;do{ob=jb+(nb<<2)|0;f[ob>>2]=(f[ob>>2]|0)+(f[mb+(nb<<2)>>2]|0);nb=nb+1|0}while((nb|0)!=(g|0));pb=(1<>0]|0))rb=(1<>2]|0;do if(T){f[kb>>2]=(f[kb>>2]|0)/(hb|0)|0;if(!oa){lb=1;do{jb=kb+(lb<<2)|0;f[jb>>2]=(f[jb>>2]|0)/(hb|0)|0;lb=lb+1|0}while((lb|0)!=(g|0));lb=f[_>>2]|0;if(T)sb=lb;else{tb=0;ub=lb;break}}else sb=f[_>>2]|0;lb=0;jb=0;while(1){nb=(f[kb+(lb<<2)>>2]|0)-(f[Ea+(lb<<2)>>2]|0)|0;mb=((nb|0)>-1?nb:0-nb|0)+jb|0;f[pa+(lb<<2)>>2]=nb;f[sb+(lb<<2)>>2]=nb<<1^nb>>31;lb=lb+1|0;if((lb|0)==(g|0)){tb=mb;ub=sb;break}else jb=mb}}else{tb=0;ub=f[_>>2]|0}while(0);mo(j,$,ub,g);kb=Zk(j)|0;jb=I;lb=Bm(j)|0;mb=I;Xa=+wm(Ca,ib);nb=Vn(lb|0,mb|0,kb|0,jb|0)|0;Va=+W(+(Xa*Wa));jb=Vn(nb|0,I|0,~~Va>>>0|0,(+K(Va)>=1.0?(Va>0.0?~~+Y(+J(Va/4294967296.0),4294967295.0)>>>0:~~+W((Va-+(~~Va>>>0))/4294967296.0)>>>0):0)|0)|0;nb=f[r>>2]|0;if(!((nb|0)<=(jb|0)?!((nb|0)>=(jb|0)?(tb|0)<(f[U>>2]|0):0):0)){nb=r;f[nb>>2]=jb;f[nb+4>>2]=tb;b[V>>0]=qb;f[Z>>2]=hb;f[v>>2]=f[m>>2];f[w>>2]=f[E>>2];f[k>>2]=f[v>>2];f[j>>2]=f[w>>2];Jf(aa,k,j);f[x>>2]=Ja;f[y>>2]=Ia;f[k>>2]=f[x>>2];f[j>>2]=f[y>>2];Jf(ba,k,j)}if(La)break;vb=b[Ha>>0]|0;nb=-1;jb=vb;while(1){kb=nb+-1|0;wb=Ma+kb|0;mb=jb;jb=b[wb>>0]|0;if((jb&255)<(mb&255))break;if((wb|0)==(n|0)){xb=84;break d}else nb=kb}kb=Ma+nb|0;if((jb&255)<(vb&255)){yb=Ha;zb=vb}else{mb=Ma;lb=Ha;while(1){ob=lb+-1|0;if((jb&255)<(h[mb+-2>>0]|0)){yb=ob;zb=1;break}else{Ab=lb;lb=ob;mb=Ab}}}b[wb>>0]=zb;b[yb>>0]=jb;if((nb|0)<-1){Bb=kb;Cb=Ha}else continue;while(1){mb=b[Bb>>0]|0;b[Bb>>0]=b[Cb>>0]|0;b[Cb>>0]=mb;mb=Bb+1|0;lb=Cb+-1|0;if(mb>>>0>>0){Bb=mb;Cb=lb}else continue d}}if(((xb|0)==84?(xb=0,fb):0)?(ib=b[n>>0]|0,b[n>>0]=vb,b[Ha>>0]=ib,Oa):0){ib=Na;kb=ma;do{nb=b[kb>>0]|0;b[kb>>0]=b[ib>>0]|0;b[ib>>0]=nb;kb=kb+1|0;ib=ib+-1|0}while(kb>>>0>>0)}if((hb|0)>=(Ka|0)){Ya=db;Za=pa;_a=db;$a=pa;ab=Ia;bb=Ja;cb=pa;break}else hb=hb+1|0}}hb=f[Z>>2]|0;pa=Vn(Pa|0,Ra|0,hb|0,((hb|0)<0)<<31>>31|0)|0;hb=Qa;f[hb>>2]=pa;f[hb+4>>2]=I;if(T){hb=f[ba>>2]|0;pa=f[C>>2]|0;Ja=0;do{Ia=f[hb+(Ja<<2)>>2]|0;f[pa+(Ja<<2)>>2]=Ia<<1^Ia>>31;Ja=Ja+1|0}while((Ja|0)!=(g|0));Db=pa}else Db=f[C>>2]|0;lo(j,$,Db,g);if((Ka|0)>0){Eb=a+60+(Fa*12|0)|0;pa=a+60+(Fa*12|0)+4|0;Ja=a+60+(Fa*12|0)+8|0;hb=0;do{Qa=f[pa>>2]|0;Ra=f[Ja>>2]|0;Pa=(Qa|0)==(Ra<<5|0);if(!(1<>0])){if(Pa){if((Qa+1|0)<0){xb=108;break b}Ia=Ra<<6;db=Qa+32&-32;vi(Eb,Qa>>>0<1073741823?(Ia>>>0>>0?db:Ia):2147483647);Fb=f[pa>>2]|0}else Fb=Qa;f[pa>>2]=Fb+1;Ia=(f[Eb>>2]|0)+(Fb>>>5<<2)|0;f[Ia>>2]=f[Ia>>2]|1<<(Fb&31)}else{if(Pa){if((Qa+1|0)<0){xb=113;break b}Pa=Ra<<6;Ra=Qa+32&-32;vi(Eb,Qa>>>0<1073741823?(Pa>>>0>>0?Ra:Pa):2147483647);Gb=f[pa>>2]|0}else Gb=Qa;f[pa>>2]=Gb+1;Qa=(f[Eb>>2]|0)+(Gb>>>5<<2)|0;f[Qa>>2]=f[Qa>>2]&~(1<<(Gb&31))}hb=hb+1|0}while((hb|0)<(Ka|0))}hb=d+(Ga<<2)|0;pa=f[z>>2]|0;if((pa|0)>0){Ja=0;Fa=f[aa>>2]|0;Qa=pa;while(1){if((Qa|0)>0){pa=0;do{Pa=f[Fa+(pa<<2)>>2]|0;Ra=f[ca>>2]|0;if((Pa|0)>(Ra|0)){Ia=f[da>>2]|0;f[Ia+(pa<<2)>>2]=Ra;Hb=Ia}else{Ia=f[ea>>2]|0;Ra=f[da>>2]|0;f[Ra+(pa<<2)>>2]=(Pa|0)<(Ia|0)?Ia:Pa;Hb=Ra}pa=pa+1|0}while((pa|0)<(f[z>>2]|0));Ib=Hb}else Ib=f[da>>2]|0;pa=(f[Ea+(Ja<<2)>>2]|0)-(f[Ib+(Ja<<2)>>2]|0)|0;Ra=hb+(Ja<<2)|0;f[Ra>>2]=pa;do if((pa|0)<(f[fa>>2]|0)){Jb=(f[ga>>2]|0)+pa|0;xb=103}else{if((pa|0)<=(f[ha>>2]|0))break;Jb=pa-(f[ga>>2]|0)|0;xb=103}while(0);if((xb|0)==103){xb=0;f[Ra>>2]=Jb}Ja=Ja+1|0;Qa=f[z>>2]|0;if((Ja|0)>=(Qa|0))break;else Fa=Ib}}Fa=f[ia>>2]|0;if(Fa|0){Qa=f[la>>2]|0;if((Qa|0)!=(Fa|0))f[la>>2]=Qa+(~((Qa+-4-Fa|0)>>>2)<<2);Oq(Fa)}Fa=f[ja>>2]|0;if(Fa|0){Qa=f[ka>>2]|0;if((Qa|0)!=(Fa|0))f[ka>>2]=Qa+(~((Qa+-4-Fa|0)>>>2)<<2);Oq(Fa)}if((qa|0)<=2){Kb=$a;Lb=_a;break a}Fa=f[B>>2]|0;sa=f[Fa>>2]|0;Qa=ra+-1|0;if((f[Fa+4>>2]|0)-sa>>2>>>0<=Qa>>>0){Aa=Fa;xb=18;break}else{Fa=ra;ra=Qa;ta=bb;ua=ab;va=cb;wa=$a;xa=_a;ya=Za;za=Ya;qa=Fa}}if((xb|0)==18)aq(Aa);else if((xb|0)==108)aq(Eb);else if((xb|0)==113)aq(Eb)}else{Kb=M;Lb=N}while(0);N=f[l>>2]|0;if((g|0)>0?(f[N>>2]=0,(g|0)!=1):0){M=1;do{f[N+(M<<2)>>2]=0;M=M+1|0}while((M|0)!=(g|0))}g=f[z>>2]|0;if((g|0)>0){M=a+16|0;Eb=a+32|0;Aa=a+12|0;qa=a+28|0;Ya=a+20|0;za=a+24|0;a=0;Za=N;N=g;while(1){if((N|0)>0){g=0;do{ya=f[Za+(g<<2)>>2]|0;_a=f[M>>2]|0;if((ya|0)>(_a|0)){xa=f[Eb>>2]|0;f[xa+(g<<2)>>2]=_a;Mb=xa}else{xa=f[Aa>>2]|0;_a=f[Eb>>2]|0;f[_a+(g<<2)>>2]=(ya|0)<(xa|0)?xa:ya;Mb=_a}g=g+1|0}while((g|0)<(f[z>>2]|0));Nb=Mb}else Nb=f[Eb>>2]|0;g=(f[c+(a<<2)>>2]|0)-(f[Nb+(a<<2)>>2]|0)|0;_a=d+(a<<2)|0;f[_a>>2]=g;if((g|0)>=(f[qa>>2]|0)){if((g|0)>(f[za>>2]|0)){Ob=g-(f[Ya>>2]|0)|0;xb=139}}else{Ob=(f[Ya>>2]|0)+g|0;xb=139}if((xb|0)==139){xb=0;f[_a>>2]=Ob}a=a+1|0;N=f[z>>2]|0;if((a|0)>=(N|0))break;else Za=Nb}}if(Kb|0){if((Lb|0)!=(Kb|0))f[H>>2]=Lb+(~((Lb+-4-Kb|0)>>>2)<<2);Oq(Kb)}Kb=f[m>>2]|0;if(Kb|0){m=f[E>>2]|0;if((m|0)!=(Kb|0))f[E>>2]=m+(~((m+-4-Kb|0)>>>2)<<2);Oq(Kb)}Kb=f[l+36>>2]|0;if(Kb|0){m=l+40|0;E=f[m>>2]|0;if((E|0)!=(Kb|0))f[m>>2]=E+(~((E+-4-Kb|0)>>>2)<<2);Oq(Kb)}Kb=f[l+24>>2]|0;if(Kb|0){E=l+28|0;m=f[E>>2]|0;if((m|0)!=(Kb|0))f[E>>2]=m+(~((m+-4-Kb|0)>>>2)<<2);Oq(Kb)}Kb=f[l+12>>2]|0;if(Kb|0){m=l+16|0;E=f[m>>2]|0;if((E|0)!=(Kb|0))f[m>>2]=E+(~((E+-4-Kb|0)>>>2)<<2);Oq(Kb)}Kb=f[l>>2]|0;if(!Kb){u=i;return 1}E=l+4|0;l=f[E>>2]|0;if((l|0)!=(Kb|0))f[E>>2]=l+(~((l+-4-Kb|0)>>>2)<<2);Oq(Kb);u=i;return 1}function bb(a,c,d,e,g,i){a=a|0;c=c|0;d=d|0;e=e|0;g=g|0;i=i|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0,Ha=0,Ia=0,Ja=0,Ka=0,La=0,Ma=0,Na=0,Oa=0,Pa=0,Qa=0,Ra=0,Sa=0,Ta=0,Ua=0,Va=0.0,Wa=0.0,Xa=0.0,Ya=0,Za=0,_a=0,$a=0,ab=0,bb=0,cb=0,db=0,eb=0,fb=0,gb=0,hb=0,ib=0,jb=0,kb=0,lb=0,mb=0,nb=0,ob=0,pb=0,qb=0,rb=0,sb=0,tb=0,ub=0,vb=0,wb=0,xb=0,yb=0,zb=0,Ab=0,Bb=0,Cb=0,Db=0,Eb=0,Fb=0,Gb=0,Hb=0,Ib=0,Jb=0,Kb=0,Lb=0,Mb=0,Nb=0,Ob=0,Pb=0,Qb=0;i=u;u=u+240|0;j=i+104|0;k=i+224|0;l=i+176|0;m=i+160|0;n=i+228|0;o=i+72|0;p=i+40|0;q=i+132|0;r=i;s=i+172|0;t=i+156|0;v=i+152|0;w=i+148|0;x=i+144|0;y=i+128|0;z=a+8|0;Mh(z,c,e,g);e=f[a+48>>2]|0;A=f[a+52>>2]|0;B=l;C=B+48|0;do{f[B>>2]=0;B=B+4|0}while((B|0)<(C|0));if(!g){D=0;E=0}else{Ci(l,g);D=f[l+12>>2]|0;E=f[l+16>>2]|0}B=l+16|0;C=E-D>>2;F=D;D=E;if(C>>>0>=g>>>0){if(C>>>0>g>>>0?(E=F+(g<<2)|0,(E|0)!=(D|0)):0)f[B>>2]=D+(~((D+-4-E|0)>>>2)<<2)}else Ci(l+12|0,g-C|0);C=l+24|0;E=l+28|0;D=f[E>>2]|0;B=f[C>>2]|0;F=D-B>>2;G=B;B=D;if(F>>>0>=g>>>0){if(F>>>0>g>>>0?(D=G+(g<<2)|0,(D|0)!=(B|0)):0)f[E>>2]=B+(~((B+-4-D|0)>>>2)<<2)}else Ci(C,g-F|0);F=l+36|0;C=l+40|0;D=f[C>>2]|0;B=f[F>>2]|0;E=D-B>>2;G=B;B=D;if(E>>>0>=g>>>0){if(E>>>0>g>>>0?(D=G+(g<<2)|0,(D|0)!=(B|0)):0)f[C>>2]=B+(~((B+-4-D|0)>>>2)<<2)}else Ci(F,g-E|0);f[m>>2]=0;E=m+4|0;f[E>>2]=0;f[m+8>>2]=0;F=(g|0)==0;do if(!F)if(g>>>0>1073741823)aq(m);else{D=g<<2;B=ln(D)|0;f[m>>2]=B;C=B+(g<<2)|0;f[m+8>>2]=C;sj(B|0,0,D|0)|0;f[E>>2]=C;break}while(0);C=a+152|0;D=a+156|0;B=f[D>>2]|0;G=f[C>>2]|0;H=B-G>>2;L=G;G=B;if(H>>>0>=g>>>0){if(H>>>0>g>>>0?(B=L+(g<<2)|0,(B|0)!=(G|0)):0)f[D>>2]=G+(~((G+-4-B|0)>>>2)<<2)}else Ci(C,g-H|0);f[o>>2]=0;f[o+4>>2]=0;f[o+8>>2]=0;f[o+12>>2]=0;f[o+16>>2]=0;f[o+20>>2]=0;f[o+24>>2]=0;f[o+28>>2]=0;f[p>>2]=0;f[p+4>>2]=0;f[p+8>>2]=0;f[p+12>>2]=0;f[p+16>>2]=0;f[p+20>>2]=0;f[p+24>>2]=0;f[p+28>>2]=0;f[q>>2]=0;H=q+4|0;f[H>>2]=0;f[q+8>>2]=0;if(F){M=0;N=0;O=0;P=0}else{F=g<<2;B=ln(F)|0;f[q>>2]=B;G=B+(g<<2)|0;f[q+8>>2]=G;sj(B|0,0,F|0)|0;f[H>>2]=G;M=B;N=G;O=G;P=B}B=a+56|0;G=f[B>>2]|0;F=f[G+4>>2]|0;D=f[G>>2]|0;L=F-D|0;a:do if((L|0)>4){Q=L>>2;R=e+12|0;S=(g|0)>0;T=r+4|0;U=r+8|0;V=r+12|0;Z=a+152|0;_=a+112|0;$=r+16|0;aa=r+28|0;ba=a+16|0;ca=a+32|0;da=a+12|0;ea=a+28|0;fa=a+20|0;ga=a+24|0;ha=r+28|0;ia=r+16|0;ja=r+20|0;ka=r+32|0;la=n+1|0;ma=g<<2;na=(g|0)==1;oa=Q+-1|0;if(F-D>>2>>>0>oa>>>0){pa=Q;qa=oa;ra=D;sa=P;ta=O;ua=M;va=M;wa=N;xa=M;ya=N}else{za=G;aq(za)}b:while(1){oa=f[ra+(qa<<2)>>2]|0;Q=(((oa>>>0)%3|0|0)==0?2:-1)+oa|0;Aa=(oa|0)==-1|(Q|0)==-1;Ba=1;Ca=0;Da=oa;c:while(1){Ea=Ba^1;Fa=Ca;Ga=Da;while(1){if((Ga|0)==-1){Ha=Fa;break c}Ia=f[l+(Fa*12|0)>>2]|0;Ja=f[R>>2]|0;Ka=f[Ja+(Ga<<2)>>2]|0;if((Ka|0)!=-1){La=f[e>>2]|0;Ma=f[A>>2]|0;Na=f[Ma+(f[La+(Ka<<2)>>2]<<2)>>2]|0;Oa=Ka+1|0;Pa=((Oa>>>0)%3|0|0)==0?Ka+-2|0:Oa;if((Pa|0)==-1)Qa=-1;else Qa=f[La+(Pa<<2)>>2]|0;Pa=f[Ma+(Qa<<2)>>2]|0;Oa=(((Ka>>>0)%3|0|0)==0?2:-1)+Ka|0;if((Oa|0)==-1)Ra=-1;else Ra=f[La+(Oa<<2)>>2]|0;Oa=f[Ma+(Ra<<2)>>2]|0;if((Na|0)<(qa|0)&(Pa|0)<(qa|0)&(Oa|0)<(qa|0)){Ma=X(Na,g)|0;Na=X(Pa,g)|0;Pa=X(Oa,g)|0;if(S){Oa=0;do{f[Ia+(Oa<<2)>>2]=(f[c+(Oa+Pa<<2)>>2]|0)+(f[c+(Oa+Na<<2)>>2]|0)-(f[c+(Oa+Ma<<2)>>2]|0);Oa=Oa+1|0}while((Oa|0)!=(g|0))}Oa=Fa+1|0;if((Oa|0)==4){Ha=4;break c}else Sa=Oa}else Sa=Fa}else Sa=Fa;do if(Ba){Oa=Ga+1|0;Ma=((Oa>>>0)%3|0|0)==0?Ga+-2|0:Oa;if((Ma|0)!=-1?(Oa=f[Ja+(Ma<<2)>>2]|0,Ma=Oa+1|0,(Oa|0)!=-1):0)Ta=((Ma>>>0)%3|0|0)==0?Oa+-2|0:Ma;else Ta=-1}else{Ma=(((Ga>>>0)%3|0|0)==0?2:-1)+Ga|0;if((Ma|0)!=-1?(Oa=f[Ja+(Ma<<2)>>2]|0,(Oa|0)!=-1):0)if(!((Oa>>>0)%3|0)){Ta=Oa+2|0;break}else{Ta=Oa+-1|0;break}else Ta=-1}while(0);if((Ta|0)==(oa|0)){Ha=Sa;break c}if((Ta|0)!=-1|Ea){Fa=Sa;Ga=Ta}else break}if(Aa){Ba=0;Ca=Sa;Da=-1;continue}Ga=f[Ja+(Q<<2)>>2]|0;if((Ga|0)==-1){Ba=0;Ca=Sa;Da=-1;continue}if(!((Ga>>>0)%3|0)){Ba=0;Ca=Sa;Da=Ga+2|0;continue}else{Ba=0;Ca=Sa;Da=Ga+-1|0;continue}}Da=X(qa,g)|0;f[r>>2]=0;f[T>>2]=0;b[U>>0]=0;f[V>>2]=0;f[V+4>>2]=0;f[V+8>>2]=0;f[V+12>>2]=0;f[V+16>>2]=0;f[V+20>>2]=0;f[V+24>>2]=0;Ca=Ha+-1|0;Ba=p+(Ca<<3)|0;Q=Ba;Aa=Vn(f[Q>>2]|0,f[Q+4>>2]|0,Ha|0,((Ha|0)<0)<<31>>31|0)|0;Q=I;oa=Ba;f[oa>>2]=Aa;f[oa+4>>2]=Q;oa=c+((X(pa+-2|0,g)|0)<<2)|0;Ba=c+(Da<<2)|0;Ga=f[Z>>2]|0;if(S){Fa=0;Ea=0;while(1){Oa=(f[oa+(Fa<<2)>>2]|0)-(f[Ba+(Fa<<2)>>2]|0)|0;Ma=((Oa|0)>-1?Oa:0-Oa|0)+Ea|0;f[ua+(Fa<<2)>>2]=Oa;f[Ga+(Fa<<2)>>2]=Oa<<1^Oa>>31;Fa=Fa+1|0;if((Fa|0)==(g|0)){Ua=Ma;break}else Ea=Ma}}else Ua=0;mo(j,_,Ga,g);Ea=Zk(j)|0;Fa=I;Ma=Bm(j)|0;Oa=I;Na=o+(Ca<<3)|0;Pa=Na;Ia=f[Pa>>2]|0;La=f[Pa+4>>2]|0;Va=+wm(Aa,Ia);Pa=Vn(Ma|0,Oa|0,Ea|0,Fa|0)|0;Wa=+(Aa>>>0)+4294967296.0*+(Q|0);Xa=+W(+(Va*Wa));Fa=Vn(Pa|0,I|0,~~Xa>>>0|0,(+K(Xa)>=1.0?(Xa>0.0?~~+Y(+J(Xa/4294967296.0),4294967295.0)>>>0:~~+W((Xa-+(~~Xa>>>0))/4294967296.0)>>>0):0)|0)|0;Pa=r;f[Pa>>2]=Fa;f[Pa+4>>2]=Ua;b[U>>0]=0;f[V>>2]=0;$f($,oa,oa+(g<<2)|0);f[s>>2]=sa;f[t>>2]=ta;f[k>>2]=f[s>>2];f[j>>2]=f[t>>2];Jf(aa,k,j);if((Ha|0)<1){Ya=ya;Za=xa;_a=wa;$a=va;ab=ta;bb=sa;cb=sa}else{Pa=n+Ha|0;Fa=f[q>>2]|0;Ea=Fa;Oa=f[H>>2]|0;Ma=Pa+-1|0;Ka=(Ma|0)==(n|0);db=Pa+-2|0;eb=la>>>0>>0;fb=~Ha;gb=Ha+2+((fb|0)>-2?fb:-2)|0;fb=Oa;hb=Ma>>>0>n>>>0;ib=0;jb=1;while(1){ib=ib+1|0;sj(n|0,1,gb|0)|0;sj(n|0,0,ib|0)|0;kb=Vn(Ia|0,La|0,jb|0,0)|0;d:while(1){if(S){sj(f[m>>2]|0,0,ma|0)|0;lb=f[m>>2]|0;mb=0;nb=0;while(1){if(!(b[n+mb>>0]|0)){ob=f[l+(mb*12|0)>>2]|0;pb=0;do{qb=lb+(pb<<2)|0;f[qb>>2]=(f[qb>>2]|0)+(f[ob+(pb<<2)>>2]|0);pb=pb+1|0}while((pb|0)!=(g|0));rb=(1<>0]|0))tb=(1<>2]|0;do if(S){f[mb>>2]=(f[mb>>2]|0)/(jb|0)|0;if(!na){nb=1;do{lb=mb+(nb<<2)|0;f[lb>>2]=(f[lb>>2]|0)/(jb|0)|0;nb=nb+1|0}while((nb|0)!=(g|0));nb=f[Z>>2]|0;if(S)ub=nb;else{vb=0;wb=nb;break}}else ub=f[Z>>2]|0;nb=0;lb=0;while(1){pb=(f[mb+(nb<<2)>>2]|0)-(f[Ba+(nb<<2)>>2]|0)|0;ob=((pb|0)>-1?pb:0-pb|0)+lb|0;f[Fa+(nb<<2)>>2]=pb;f[ub+(nb<<2)>>2]=pb<<1^pb>>31;nb=nb+1|0;if((nb|0)==(g|0)){vb=ob;wb=ub;break}else lb=ob}}else{vb=0;wb=f[Z>>2]|0}while(0);mo(j,_,wb,g);mb=Zk(j)|0;lb=I;nb=Bm(j)|0;ob=I;Xa=+wm(Aa,kb);pb=Vn(nb|0,ob|0,mb|0,lb|0)|0;Va=+W(+(Xa*Wa));lb=Vn(pb|0,I|0,~~Va>>>0|0,(+K(Va)>=1.0?(Va>0.0?~~+Y(+J(Va/4294967296.0),4294967295.0)>>>0:~~+W((Va-+(~~Va>>>0))/4294967296.0)>>>0):0)|0)|0;pb=f[r>>2]|0;if(!((pb|0)<=(lb|0)?!((pb|0)>=(lb|0)?(vb|0)<(f[T>>2]|0):0):0)){pb=r;f[pb>>2]=lb;f[pb+4>>2]=vb;b[U>>0]=sb;f[V>>2]=jb;f[v>>2]=f[m>>2];f[w>>2]=f[E>>2];f[k>>2]=f[v>>2];f[j>>2]=f[w>>2];Jf($,k,j);f[x>>2]=Ea;f[y>>2]=Oa;f[k>>2]=f[x>>2];f[j>>2]=f[y>>2];Jf(aa,k,j)}if(Ka)break;xb=b[Ma>>0]|0;pb=-1;lb=xb;while(1){mb=pb+-1|0;yb=Pa+mb|0;ob=lb;lb=b[yb>>0]|0;if((lb&255)<(ob&255))break;if((yb|0)==(n|0)){zb=84;break d}else pb=mb}mb=Pa+pb|0;if((lb&255)<(xb&255)){Ab=Ma;Bb=xb}else{ob=Pa;nb=Ma;while(1){qb=nb+-1|0;if((lb&255)<(h[ob+-2>>0]|0)){Ab=qb;Bb=1;break}else{Cb=nb;nb=qb;ob=Cb}}}b[yb>>0]=Bb;b[Ab>>0]=lb;if((pb|0)<-1){Db=mb;Eb=Ma}else continue;while(1){ob=b[Db>>0]|0;b[Db>>0]=b[Eb>>0]|0;b[Eb>>0]=ob;ob=Db+1|0;nb=Eb+-1|0;if(ob>>>0>>0){Db=ob;Eb=nb}else continue d}}if(((zb|0)==84?(zb=0,hb):0)?(kb=b[n>>0]|0,b[n>>0]=xb,b[Ma>>0]=kb,eb):0){kb=db;mb=la;do{pb=b[mb>>0]|0;b[mb>>0]=b[kb>>0]|0;b[kb>>0]=pb;mb=mb+1|0;kb=kb+-1|0}while(mb>>>0>>0)}if((jb|0)>=(Ha|0)){Ya=fb;Za=Fa;_a=fb;$a=Fa;ab=Oa;bb=Ea;cb=Fa;break}else jb=jb+1|0}}jb=f[V>>2]|0;Fa=Vn(Ia|0,La|0,jb|0,((jb|0)<0)<<31>>31|0)|0;jb=Na;f[jb>>2]=Fa;f[jb+4>>2]=I;if(S){jb=f[aa>>2]|0;Fa=f[C>>2]|0;Ea=0;do{Oa=f[jb+(Ea<<2)>>2]|0;f[Fa+(Ea<<2)>>2]=Oa<<1^Oa>>31;Ea=Ea+1|0}while((Ea|0)!=(g|0));Fb=Fa}else Fb=f[C>>2]|0;lo(j,_,Fb,g);if((Ha|0)>0){Gb=a+60+(Ca*12|0)|0;Fa=a+60+(Ca*12|0)+4|0;Ea=a+60+(Ca*12|0)+8|0;jb=0;do{Na=f[Fa>>2]|0;La=f[Ea>>2]|0;Ia=(Na|0)==(La<<5|0);if(!(1<>0])){if(Ia){if((Na+1|0)<0){zb=108;break b}Oa=La<<6;fb=Na+32&-32;vi(Gb,Na>>>0<1073741823?(Oa>>>0>>0?fb:Oa):2147483647);Hb=f[Fa>>2]|0}else Hb=Na;f[Fa>>2]=Hb+1;Oa=(f[Gb>>2]|0)+(Hb>>>5<<2)|0;f[Oa>>2]=f[Oa>>2]|1<<(Hb&31)}else{if(Ia){if((Na+1|0)<0){zb=113;break b}Ia=La<<6;La=Na+32&-32;vi(Gb,Na>>>0<1073741823?(Ia>>>0>>0?La:Ia):2147483647);Ib=f[Fa>>2]|0}else Ib=Na;f[Fa>>2]=Ib+1;Na=(f[Gb>>2]|0)+(Ib>>>5<<2)|0;f[Na>>2]=f[Na>>2]&~(1<<(Ib&31))}jb=jb+1|0}while((jb|0)<(Ha|0))}jb=d+(Da<<2)|0;Fa=f[z>>2]|0;if((Fa|0)>0){Ea=0;Ca=f[$>>2]|0;Na=Fa;while(1){if((Na|0)>0){Fa=0;do{Ia=f[Ca+(Fa<<2)>>2]|0;La=f[ba>>2]|0;if((Ia|0)>(La|0)){Oa=f[ca>>2]|0;f[Oa+(Fa<<2)>>2]=La;Jb=Oa}else{Oa=f[da>>2]|0;La=f[ca>>2]|0;f[La+(Fa<<2)>>2]=(Ia|0)<(Oa|0)?Oa:Ia;Jb=La}Fa=Fa+1|0}while((Fa|0)<(f[z>>2]|0));Kb=Jb}else Kb=f[ca>>2]|0;Fa=(f[Ba+(Ea<<2)>>2]|0)-(f[Kb+(Ea<<2)>>2]|0)|0;La=jb+(Ea<<2)|0;f[La>>2]=Fa;do if((Fa|0)<(f[ea>>2]|0)){Lb=(f[fa>>2]|0)+Fa|0;zb=103}else{if((Fa|0)<=(f[ga>>2]|0))break;Lb=Fa-(f[fa>>2]|0)|0;zb=103}while(0);if((zb|0)==103){zb=0;f[La>>2]=Lb}Ea=Ea+1|0;Na=f[z>>2]|0;if((Ea|0)>=(Na|0))break;else Ca=Kb}}Ca=f[ha>>2]|0;if(Ca|0){Na=f[ka>>2]|0;if((Na|0)!=(Ca|0))f[ka>>2]=Na+(~((Na+-4-Ca|0)>>>2)<<2);Oq(Ca)}Ca=f[ia>>2]|0;if(Ca|0){Na=f[ja>>2]|0;if((Na|0)!=(Ca|0))f[ja>>2]=Na+(~((Na+-4-Ca|0)>>>2)<<2);Oq(Ca)}if((pa|0)<=2){Mb=$a;Nb=_a;break a}Ca=f[B>>2]|0;ra=f[Ca>>2]|0;Na=qa+-1|0;if((f[Ca+4>>2]|0)-ra>>2>>>0<=Na>>>0){za=Ca;zb=18;break}else{Ca=qa;qa=Na;sa=bb;ta=ab;ua=cb;va=$a;wa=_a;xa=Za;ya=Ya;pa=Ca}}if((zb|0)==18)aq(za);else if((zb|0)==108)aq(Gb);else if((zb|0)==113)aq(Gb)}else{Mb=M;Nb=N}while(0);N=f[l>>2]|0;if((g|0)>0?(f[N>>2]=0,(g|0)!=1):0){M=1;do{f[N+(M<<2)>>2]=0;M=M+1|0}while((M|0)!=(g|0))}g=f[z>>2]|0;if((g|0)>0){M=a+16|0;Gb=a+32|0;za=a+12|0;pa=a+28|0;Ya=a+20|0;ya=a+24|0;a=0;Za=N;N=g;while(1){if((N|0)>0){g=0;do{xa=f[Za+(g<<2)>>2]|0;_a=f[M>>2]|0;if((xa|0)>(_a|0)){wa=f[Gb>>2]|0;f[wa+(g<<2)>>2]=_a;Ob=wa}else{wa=f[za>>2]|0;_a=f[Gb>>2]|0;f[_a+(g<<2)>>2]=(xa|0)<(wa|0)?wa:xa;Ob=_a}g=g+1|0}while((g|0)<(f[z>>2]|0));Pb=Ob}else Pb=f[Gb>>2]|0;g=(f[c+(a<<2)>>2]|0)-(f[Pb+(a<<2)>>2]|0)|0;_a=d+(a<<2)|0;f[_a>>2]=g;if((g|0)>=(f[pa>>2]|0)){if((g|0)>(f[ya>>2]|0)){Qb=g-(f[Ya>>2]|0)|0;zb=139}}else{Qb=(f[Ya>>2]|0)+g|0;zb=139}if((zb|0)==139){zb=0;f[_a>>2]=Qb}a=a+1|0;N=f[z>>2]|0;if((a|0)>=(N|0))break;else Za=Pb}}if(Mb|0){if((Nb|0)!=(Mb|0))f[H>>2]=Nb+(~((Nb+-4-Mb|0)>>>2)<<2);Oq(Mb)}Mb=f[m>>2]|0;if(Mb|0){m=f[E>>2]|0;if((m|0)!=(Mb|0))f[E>>2]=m+(~((m+-4-Mb|0)>>>2)<<2);Oq(Mb)}Mb=f[l+36>>2]|0;if(Mb|0){m=l+40|0;E=f[m>>2]|0;if((E|0)!=(Mb|0))f[m>>2]=E+(~((E+-4-Mb|0)>>>2)<<2);Oq(Mb)}Mb=f[l+24>>2]|0;if(Mb|0){E=l+28|0;m=f[E>>2]|0;if((m|0)!=(Mb|0))f[E>>2]=m+(~((m+-4-Mb|0)>>>2)<<2);Oq(Mb)}Mb=f[l+12>>2]|0;if(Mb|0){m=l+16|0;E=f[m>>2]|0;if((E|0)!=(Mb|0))f[m>>2]=E+(~((E+-4-Mb|0)>>>2)<<2);Oq(Mb)}Mb=f[l>>2]|0;if(!Mb){u=i;return 1}E=l+4|0;l=f[E>>2]|0;if((l|0)!=(Mb|0))f[E>>2]=l+(~((l+-4-Mb|0)>>>2)<<2);Oq(Mb);u=i;return 1}function cb(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;b=u;u=u+16|0;c=b;d=b+8|0;e=b+4|0;f[d>>2]=a;do if(a>>>0>=212){g=(a>>>0)/210|0;h=g*210|0;f[e>>2]=a-h;i=0;j=g;g=(Hl(6952,7144,e,c)|0)-6952>>2;k=h;a:while(1){l=(f[6952+(g<<2)>>2]|0)+k|0;h=5;while(1){if(h>>>0>=47){m=211;n=i;o=8;break}p=f[6760+(h<<2)>>2]|0;q=(l>>>0)/(p>>>0)|0;if(q>>>0

>>0){o=106;break a}if((l|0)==(X(q,p)|0)){r=i;break}else h=h+1|0}b:do if((o|0)==8){c:while(1){o=0;h=(l>>>0)/(m>>>0)|0;do if(h>>>0>=m>>>0)if((l|0)!=(X(h,m)|0)){p=m+10|0;q=(l>>>0)/(p>>>0)|0;if(q>>>0>=p>>>0)if((l|0)!=(X(q,p)|0)){q=m+12|0;s=(l>>>0)/(q>>>0)|0;if(s>>>0>=q>>>0)if((l|0)!=(X(s,q)|0)){s=m+16|0;t=(l>>>0)/(s>>>0)|0;if(t>>>0>=s>>>0)if((l|0)!=(X(t,s)|0)){t=m+18|0;v=(l>>>0)/(t>>>0)|0;if(v>>>0>=t>>>0)if((l|0)!=(X(v,t)|0)){v=m+22|0;w=(l>>>0)/(v>>>0)|0;if(w>>>0>=v>>>0)if((l|0)!=(X(w,v)|0)){w=m+28|0;x=(l>>>0)/(w>>>0)|0;if(x>>>0>=w>>>0)if((l|0)==(X(x,w)|0)){y=w;z=9;A=n}else{x=m+30|0;B=(l>>>0)/(x>>>0)|0;if(B>>>0>>0){y=x;z=1;A=l;break}if((l|0)==(X(B,x)|0)){y=x;z=9;A=n;break}x=m+36|0;B=(l>>>0)/(x>>>0)|0;if(B>>>0>>0){y=x;z=1;A=l;break}if((l|0)==(X(B,x)|0)){y=x;z=9;A=n;break}x=m+40|0;B=(l>>>0)/(x>>>0)|0;if(B>>>0>>0){y=x;z=1;A=l;break}if((l|0)==(X(B,x)|0)){y=x;z=9;A=n;break}x=m+42|0;B=(l>>>0)/(x>>>0)|0;if(B>>>0>>0){y=x;z=1;A=l;break}if((l|0)==(X(B,x)|0)){y=x;z=9;A=n;break}x=m+46|0;B=(l>>>0)/(x>>>0)|0;if(B>>>0>>0){y=x;z=1;A=l;break}if((l|0)==(X(B,x)|0)){y=x;z=9;A=n;break}x=m+52|0;B=(l>>>0)/(x>>>0)|0;if(B>>>0>>0){y=x;z=1;A=l;break}if((l|0)==(X(B,x)|0)){y=x;z=9;A=n;break}x=m+58|0;B=(l>>>0)/(x>>>0)|0;if(B>>>0>>0){y=x;z=1;A=l;break}if((l|0)==(X(B,x)|0)){y=x;z=9;A=n;break}x=m+60|0;B=(l>>>0)/(x>>>0)|0;if(B>>>0>>0){y=x;z=1;A=l;break}if((l|0)==(X(B,x)|0)){y=x;z=9;A=n;break}x=m+66|0;B=(l>>>0)/(x>>>0)|0;if(B>>>0>>0){y=x;z=1;A=l;break}if((l|0)==(X(B,x)|0)){y=x;z=9;A=n;break}x=m+70|0;B=(l>>>0)/(x>>>0)|0;if(B>>>0>>0){y=x;z=1;A=l;break}if((l|0)==(X(B,x)|0)){y=x;z=9;A=n;break}x=m+72|0;B=(l>>>0)/(x>>>0)|0;if(B>>>0>>0){y=x;z=1;A=l;break}if((l|0)==(X(B,x)|0)){y=x;z=9;A=n;break}x=m+78|0;B=(l>>>0)/(x>>>0)|0;if(B>>>0>>0){y=x;z=1;A=l;break}if((l|0)==(X(B,x)|0)){y=x;z=9;A=n;break}x=m+82|0;B=(l>>>0)/(x>>>0)|0;if(B>>>0>>0){y=x;z=1;A=l;break}if((l|0)==(X(B,x)|0)){y=x;z=9;A=n;break}x=m+88|0;B=(l>>>0)/(x>>>0)|0;if(B>>>0>>0){y=x;z=1;A=l;break}if((l|0)==(X(B,x)|0)){y=x;z=9;A=n;break}x=m+96|0;B=(l>>>0)/(x>>>0)|0;if(B>>>0>>0){y=x;z=1;A=l;break}if((l|0)==(X(B,x)|0)){y=x;z=9;A=n;break}x=m+100|0;B=(l>>>0)/(x>>>0)|0;if(B>>>0>>0){y=x;z=1;A=l;break}if((l|0)==(X(B,x)|0)){y=x;z=9;A=n;break}x=m+102|0;B=(l>>>0)/(x>>>0)|0;if(B>>>0>>0){y=x;z=1;A=l;break}if((l|0)==(X(B,x)|0)){y=x;z=9;A=n;break}x=m+106|0;B=(l>>>0)/(x>>>0)|0;if(B>>>0>>0){y=x;z=1;A=l;break}if((l|0)==(X(B,x)|0)){y=x;z=9;A=n;break}x=m+108|0;B=(l>>>0)/(x>>>0)|0;if(B>>>0>>0){y=x;z=1;A=l;break}if((l|0)==(X(B,x)|0)){y=x;z=9;A=n;break}x=m+112|0;B=(l>>>0)/(x>>>0)|0;if(B>>>0>>0){y=x;z=1;A=l;break}if((l|0)==(X(B,x)|0)){y=x;z=9;A=n;break}x=m+120|0;B=(l>>>0)/(x>>>0)|0;if(B>>>0>>0){y=x;z=1;A=l;break}if((l|0)==(X(B,x)|0)){y=x;z=9;A=n;break}x=m+126|0;B=(l>>>0)/(x>>>0)|0;if(B>>>0>>0){y=x;z=1;A=l;break}if((l|0)==(X(B,x)|0)){y=x;z=9;A=n;break}x=m+130|0;B=(l>>>0)/(x>>>0)|0;if(B>>>0>>0){y=x;z=1;A=l;break}if((l|0)==(X(B,x)|0)){y=x;z=9;A=n;break}x=m+136|0;B=(l>>>0)/(x>>>0)|0;if(B>>>0>>0){y=x;z=1;A=l;break}if((l|0)==(X(B,x)|0)){y=x;z=9;A=n;break}x=m+138|0;B=(l>>>0)/(x>>>0)|0;if(B>>>0>>0){y=x;z=1;A=l;break}if((l|0)==(X(B,x)|0)){y=x;z=9;A=n;break}x=m+142|0;B=(l>>>0)/(x>>>0)|0;if(B>>>0>>0){y=x;z=1;A=l;break}if((l|0)==(X(B,x)|0)){y=x;z=9;A=n;break}x=m+148|0;B=(l>>>0)/(x>>>0)|0;if(B>>>0>>0){y=x;z=1;A=l;break}if((l|0)==(X(B,x)|0)){y=x;z=9;A=n;break}x=m+150|0;B=(l>>>0)/(x>>>0)|0;if(B>>>0>>0){y=x;z=1;A=l;break}if((l|0)==(X(B,x)|0)){y=x;z=9;A=n;break}x=m+156|0;B=(l>>>0)/(x>>>0)|0;if(B>>>0>>0){y=x;z=1;A=l;break}if((l|0)==(X(B,x)|0)){y=x;z=9;A=n;break}x=m+162|0;B=(l>>>0)/(x>>>0)|0;if(B>>>0>>0){y=x;z=1;A=l;break}if((l|0)==(X(B,x)|0)){y=x;z=9;A=n;break}x=m+166|0;B=(l>>>0)/(x>>>0)|0;if(B>>>0>>0){y=x;z=1;A=l;break}if((l|0)==(X(B,x)|0)){y=x;z=9;A=n;break}x=m+168|0;B=(l>>>0)/(x>>>0)|0;if(B>>>0>>0){y=x;z=1;A=l;break}if((l|0)==(X(B,x)|0)){y=x;z=9;A=n;break}x=m+172|0;B=(l>>>0)/(x>>>0)|0;if(B>>>0>>0){y=x;z=1;A=l;break}if((l|0)==(X(B,x)|0)){y=x;z=9;A=n;break}x=m+178|0;B=(l>>>0)/(x>>>0)|0;if(B>>>0>>0){y=x;z=1;A=l;break}if((l|0)==(X(B,x)|0)){y=x;z=9;A=n;break}x=m+180|0;B=(l>>>0)/(x>>>0)|0;if(B>>>0>>0){y=x;z=1;A=l;break}if((l|0)==(X(B,x)|0)){y=x;z=9;A=n;break}x=m+186|0;B=(l>>>0)/(x>>>0)|0;if(B>>>0>>0){y=x;z=1;A=l;break}if((l|0)==(X(B,x)|0)){y=x;z=9;A=n;break}x=m+190|0;B=(l>>>0)/(x>>>0)|0;if(B>>>0>>0){y=x;z=1;A=l;break}if((l|0)==(X(B,x)|0)){y=x;z=9;A=n;break}x=m+192|0;B=(l>>>0)/(x>>>0)|0;if(B>>>0>>0){y=x;z=1;A=l;break}if((l|0)==(X(B,x)|0)){y=x;z=9;A=n;break}x=m+196|0;B=(l>>>0)/(x>>>0)|0;if(B>>>0>>0){y=x;z=1;A=l;break}if((l|0)==(X(B,x)|0)){y=x;z=9;A=n;break}x=m+198|0;B=(l>>>0)/(x>>>0)|0;if(B>>>0>>0){y=x;z=1;A=l;break}if((l|0)==(X(B,x)|0)){y=x;z=9;A=n;break}x=m+208|0;B=(l>>>0)/(x>>>0)|0;C=B>>>0>>0;D=(l|0)==(X(B,x)|0);y=C|D?x:m+210|0;z=C?1:D?9:0;A=C?l:n}else{y=w;z=1;A=l}}else{y=v;z=9;A=n}else{y=v;z=1;A=l}}else{y=t;z=9;A=n}else{y=t;z=1;A=l}}else{y=s;z=9;A=n}else{y=s;z=1;A=l}}else{y=q;z=9;A=n}else{y=q;z=1;A=l}}else{y=p;z=9;A=n}else{y=p;z=1;A=l}}else{y=m;z=9;A=n}else{y=m;z=1;A=l}while(0);switch(z&15){case 9:{r=A;break b;break}case 0:{m=y;n=A;o=8;break}default:break c}}if(!z)r=A;else{o=107;break a}}while(0);h=g+1|0;p=(h|0)==48;q=j+(p&1)|0;i=r;j=q;g=p?0:h;k=q*210|0}if((o|0)==106){f[d>>2]=l;E=l;break}else if((o|0)==107){f[d>>2]=l;E=A;break}}else{k=Hl(6760,6952,d,c)|0;E=f[k>>2]|0}while(0);u=b;return E|0}function db(a,c,d,e,g,i){a=a|0;c=c|0;d=d|0;e=e|0;g=g|0;i=i|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0,Ha=0,Ia=0,Ja=0,Ka=0,La=0,Ma=0,Na=0,Oa=0,Pa=0,Qa=0,Ra=0,Sa=0,Ta=0.0,Ua=0.0,Va=0.0,Wa=0,Xa=0,Ya=0,Za=0,_a=0,$a=0,ab=0,bb=0,cb=0,db=0,eb=0,fb=0,gb=0,hb=0,ib=0,jb=0,kb=0,lb=0,mb=0,nb=0,ob=0,pb=0,qb=0,rb=0,sb=0,tb=0,ub=0,vb=0,wb=0,xb=0,yb=0,zb=0,Ab=0,Bb=0,Cb=0,Db=0,Eb=0,Fb=0,Gb=0;i=u;u=u+256|0;e=i+104|0;j=i+240|0;k=i+224|0;l=i+160|0;m=i+140|0;n=i+248|0;o=i+72|0;p=i+40|0;q=i+128|0;r=i;s=i+232|0;t=i+220|0;v=i+216|0;w=i+212|0;x=i+208|0;y=i+152|0;z=f[a+28>>2]|0;A=f[a+32>>2]|0;B=l;C=B+48|0;do{f[B>>2]=0;B=B+4|0}while((B|0)<(C|0));if(!g){D=0;E=0}else{Ci(l,g);D=f[l+12>>2]|0;E=f[l+16>>2]|0}B=l+16|0;C=E-D>>2;F=D;D=E;if(C>>>0>=g>>>0){if(C>>>0>g>>>0?(E=F+(g<<2)|0,(E|0)!=(D|0)):0)f[B>>2]=D+(~((D+-4-E|0)>>>2)<<2)}else Ci(l+12|0,g-C|0);C=l+24|0;E=l+28|0;D=f[E>>2]|0;B=f[C>>2]|0;F=D-B>>2;G=B;B=D;if(F>>>0>=g>>>0){if(F>>>0>g>>>0?(D=G+(g<<2)|0,(D|0)!=(B|0)):0)f[E>>2]=B+(~((B+-4-D|0)>>>2)<<2)}else Ci(C,g-F|0);F=l+36|0;C=l+40|0;D=f[C>>2]|0;B=f[F>>2]|0;E=D-B>>2;G=B;B=D;if(E>>>0>=g>>>0){if(E>>>0>g>>>0?(D=G+(g<<2)|0,(D|0)!=(B|0)):0)f[C>>2]=B+(~((B+-4-D|0)>>>2)<<2)}else Ci(F,g-E|0);f[m>>2]=0;E=m+4|0;f[E>>2]=0;f[m+8>>2]=0;F=(g|0)==0;do if(!F)if(g>>>0>1073741823)aq(m);else{D=g<<2;B=ln(D)|0;f[m>>2]=B;C=B+(g<<2)|0;f[m+8>>2]=C;sj(B|0,0,D|0)|0;f[E>>2]=C;break}while(0);C=a+136|0;D=a+140|0;B=f[D>>2]|0;G=f[C>>2]|0;H=B-G>>2;L=G;G=B;if(H>>>0>=g>>>0){if(H>>>0>g>>>0?(B=L+(g<<2)|0,(B|0)!=(G|0)):0)f[D>>2]=G+(~((G+-4-B|0)>>>2)<<2)}else Ci(C,g-H|0);f[o>>2]=0;f[o+4>>2]=0;f[o+8>>2]=0;f[o+12>>2]=0;f[o+16>>2]=0;f[o+20>>2]=0;f[o+24>>2]=0;f[o+28>>2]=0;f[p>>2]=0;f[p+4>>2]=0;f[p+8>>2]=0;f[p+12>>2]=0;f[p+16>>2]=0;f[p+20>>2]=0;f[p+24>>2]=0;f[p+28>>2]=0;f[q>>2]=0;H=q+4|0;f[H>>2]=0;f[q+8>>2]=0;if(F){M=0;N=0;O=0;P=0}else{F=g<<2;B=ln(F)|0;f[q>>2]=B;G=B+(g<<2)|0;f[q+8>>2]=G;sj(B|0,0,F|0)|0;f[H>>2]=G;M=B;N=G;O=G;P=B}B=a+36|0;G=f[B>>2]|0;F=f[G+4>>2]|0;D=f[G>>2]|0;L=F-D|0;a:do if((L|0)>4){Q=L>>2;R=z+64|0;S=z+28|0;T=(g|0)>0;U=r+4|0;V=r+8|0;Z=r+12|0;_=a+136|0;$=a+96|0;aa=r+16|0;ba=r+28|0;ca=a+8|0;da=j+4|0;ea=k+4|0;fa=e+4|0;ga=r+28|0;ha=r+16|0;ia=r+20|0;ja=r+32|0;ka=n+1|0;la=g<<2;ma=(g|0)==1;na=Q+-1|0;if(F-D>>2>>>0>na>>>0){oa=Q;pa=na;qa=D;ra=P;sa=O;ta=M;ua=M;va=N;wa=M;xa=N}else{ya=G;aq(ya)}b:while(1){na=f[qa+(pa<<2)>>2]|0;Q=(((na>>>0)%3|0|0)==0?2:-1)+na|0;za=Q>>>5;Aa=1<<(Q&31);Ba=(na|0)==-1|(Q|0)==-1;Ca=1;Da=0;Ea=na;c:while(1){Fa=Ca^1;Ga=Da;Ha=Ea;while(1){if((Ha|0)==-1){Ia=Ga;break c}Ja=f[l+(Ga*12|0)>>2]|0;if(((f[(f[z>>2]|0)+(Ha>>>5<<2)>>2]&1<<(Ha&31)|0)==0?(Ka=f[(f[(f[R>>2]|0)+12>>2]|0)+(Ha<<2)>>2]|0,(Ka|0)!=-1):0)?(La=f[S>>2]|0,Ma=f[A>>2]|0,Na=f[Ma+(f[La+(Ka<<2)>>2]<<2)>>2]|0,Oa=Ka+1|0,Pa=f[Ma+(f[La+((((Oa>>>0)%3|0|0)==0?Ka+-2|0:Oa)<<2)>>2]<<2)>>2]|0,Oa=f[Ma+(f[La+((((Ka>>>0)%3|0|0)==0?2:-1)+Ka<<2)>>2]<<2)>>2]|0,(Na|0)<(pa|0)&(Pa|0)<(pa|0)&(Oa|0)<(pa|0)):0){Ka=X(Na,g)|0;Na=X(Pa,g)|0;Pa=X(Oa,g)|0;if(T){Oa=0;do{f[Ja+(Oa<<2)>>2]=(f[c+(Oa+Pa<<2)>>2]|0)+(f[c+(Oa+Na<<2)>>2]|0)-(f[c+(Oa+Ka<<2)>>2]|0);Oa=Oa+1|0}while((Oa|0)!=(g|0))}Oa=Ga+1|0;if((Oa|0)==4){Ia=4;break c}else Qa=Oa}else Qa=Ga;do if(Ca){Oa=Ha+1|0;Ka=((Oa>>>0)%3|0|0)==0?Ha+-2|0:Oa;if(((Ka|0)!=-1?(f[(f[z>>2]|0)+(Ka>>>5<<2)>>2]&1<<(Ka&31)|0)==0:0)?(Oa=f[(f[(f[R>>2]|0)+12>>2]|0)+(Ka<<2)>>2]|0,Ka=Oa+1|0,(Oa|0)!=-1):0)Ra=((Ka>>>0)%3|0|0)==0?Oa+-2|0:Ka;else Ra=-1}else{Ka=(((Ha>>>0)%3|0|0)==0?2:-1)+Ha|0;if(((Ka|0)!=-1?(f[(f[z>>2]|0)+(Ka>>>5<<2)>>2]&1<<(Ka&31)|0)==0:0)?(Oa=f[(f[(f[R>>2]|0)+12>>2]|0)+(Ka<<2)>>2]|0,(Oa|0)!=-1):0)if(!((Oa>>>0)%3|0)){Ra=Oa+2|0;break}else{Ra=Oa+-1|0;break}else Ra=-1}while(0);if((Ra|0)==(na|0)){Ia=Qa;break c}if((Ra|0)!=-1|Fa){Ga=Qa;Ha=Ra}else break}if(Ba){Ca=0;Da=Qa;Ea=-1;continue}if(f[(f[z>>2]|0)+(za<<2)>>2]&Aa|0){Ca=0;Da=Qa;Ea=-1;continue}Ha=f[(f[(f[R>>2]|0)+12>>2]|0)+(Q<<2)>>2]|0;if((Ha|0)==-1){Ca=0;Da=Qa;Ea=-1;continue}if(!((Ha>>>0)%3|0)){Ca=0;Da=Qa;Ea=Ha+2|0;continue}else{Ca=0;Da=Qa;Ea=Ha+-1|0;continue}}Ea=X(pa,g)|0;f[r>>2]=0;f[U>>2]=0;b[V>>0]=0;f[Z>>2]=0;f[Z+4>>2]=0;f[Z+8>>2]=0;f[Z+12>>2]=0;f[Z+16>>2]=0;f[Z+20>>2]=0;f[Z+24>>2]=0;Da=Ia+-1|0;Ca=p+(Da<<3)|0;Q=Ca;Aa=Vn(f[Q>>2]|0,f[Q+4>>2]|0,Ia|0,((Ia|0)<0)<<31>>31|0)|0;Q=I;za=Ca;f[za>>2]=Aa;f[za+4>>2]=Q;za=c+((X(oa+-2|0,g)|0)<<2)|0;Ca=c+(Ea<<2)|0;Ba=f[_>>2]|0;if(T){na=0;Ha=0;while(1){Ga=(f[za+(na<<2)>>2]|0)-(f[Ca+(na<<2)>>2]|0)|0;Fa=((Ga|0)>-1?Ga:0-Ga|0)+Ha|0;f[ta+(na<<2)>>2]=Ga;f[Ba+(na<<2)>>2]=Ga<<1^Ga>>31;na=na+1|0;if((na|0)==(g|0)){Sa=Fa;break}else Ha=Fa}}else Sa=0;mo(e,$,Ba,g);Ha=Zk(e)|0;na=I;Fa=Bm(e)|0;Ga=I;Oa=o+(Da<<3)|0;Ka=Oa;Na=f[Ka>>2]|0;Pa=f[Ka+4>>2]|0;Ta=+wm(Aa,Na);Ka=Vn(Fa|0,Ga|0,Ha|0,na|0)|0;Ua=+(Aa>>>0)+4294967296.0*+(Q|0);Va=+W(+(Ta*Ua));na=Vn(Ka|0,I|0,~~Va>>>0|0,(+K(Va)>=1.0?(Va>0.0?~~+Y(+J(Va/4294967296.0),4294967295.0)>>>0:~~+W((Va-+(~~Va>>>0))/4294967296.0)>>>0):0)|0)|0;Ka=r;f[Ka>>2]=na;f[Ka+4>>2]=Sa;b[V>>0]=0;f[Z>>2]=0;$f(aa,za,za+(g<<2)|0);f[s>>2]=ra;f[t>>2]=sa;f[j>>2]=f[s>>2];f[e>>2]=f[t>>2];Jf(ba,j,e);if((Ia|0)<1){Wa=xa;Xa=wa;Ya=va;Za=ua;_a=sa;$a=ra;ab=ra}else{Ka=n+Ia|0;na=f[q>>2]|0;Ha=na;Ga=f[H>>2]|0;Fa=Ka+-1|0;Ja=(Fa|0)==(n|0);La=Ka+-2|0;Ma=ka>>>0>>0;bb=~Ia;cb=Ia+2+((bb|0)>-2?bb:-2)|0;bb=Ga;db=Fa>>>0>n>>>0;eb=0;fb=1;while(1){eb=eb+1|0;sj(n|0,1,cb|0)|0;sj(n|0,0,eb|0)|0;gb=Vn(Na|0,Pa|0,fb|0,0)|0;d:while(1){if(T){sj(f[m>>2]|0,0,la|0)|0;hb=f[m>>2]|0;ib=0;jb=0;while(1){if(!(b[n+ib>>0]|0)){kb=f[l+(ib*12|0)>>2]|0;lb=0;do{mb=hb+(lb<<2)|0;f[mb>>2]=(f[mb>>2]|0)+(f[kb+(lb<<2)>>2]|0);lb=lb+1|0}while((lb|0)!=(g|0));nb=(1<>0]|0))pb=(1<>2]|0;do if(T){f[ib>>2]=(f[ib>>2]|0)/(fb|0)|0;if(!ma){jb=1;do{hb=ib+(jb<<2)|0;f[hb>>2]=(f[hb>>2]|0)/(fb|0)|0;jb=jb+1|0}while((jb|0)!=(g|0));jb=f[_>>2]|0;if(T)qb=jb;else{rb=0;sb=jb;break}}else qb=f[_>>2]|0;jb=0;hb=0;while(1){lb=(f[ib+(jb<<2)>>2]|0)-(f[Ca+(jb<<2)>>2]|0)|0;kb=((lb|0)>-1?lb:0-lb|0)+hb|0;f[na+(jb<<2)>>2]=lb;f[qb+(jb<<2)>>2]=lb<<1^lb>>31;jb=jb+1|0;if((jb|0)==(g|0)){rb=kb;sb=qb;break}else hb=kb}}else{rb=0;sb=f[_>>2]|0}while(0);mo(e,$,sb,g);ib=Zk(e)|0;hb=I;jb=Bm(e)|0;kb=I;Va=+wm(Aa,gb);lb=Vn(jb|0,kb|0,ib|0,hb|0)|0;Ta=+W(+(Va*Ua));hb=Vn(lb|0,I|0,~~Ta>>>0|0,(+K(Ta)>=1.0?(Ta>0.0?~~+Y(+J(Ta/4294967296.0),4294967295.0)>>>0:~~+W((Ta-+(~~Ta>>>0))/4294967296.0)>>>0):0)|0)|0;lb=f[r>>2]|0;if(!((lb|0)<=(hb|0)?!((lb|0)>=(hb|0)?(rb|0)<(f[U>>2]|0):0):0)){lb=r;f[lb>>2]=hb;f[lb+4>>2]=rb;b[V>>0]=ob;f[Z>>2]=fb;f[v>>2]=f[m>>2];f[w>>2]=f[E>>2];f[j>>2]=f[v>>2];f[e>>2]=f[w>>2];Jf(aa,j,e);f[x>>2]=Ha;f[y>>2]=Ga;f[j>>2]=f[x>>2];f[e>>2]=f[y>>2];Jf(ba,j,e)}if(Ja)break;tb=b[Fa>>0]|0;lb=-1;hb=tb;while(1){ib=lb+-1|0;ub=Ka+ib|0;kb=hb;hb=b[ub>>0]|0;if((hb&255)<(kb&255))break;if((ub|0)==(n|0)){vb=84;break d}else lb=ib}ib=Ka+lb|0;if((hb&255)<(tb&255)){wb=Fa;xb=tb}else{kb=Ka;jb=Fa;while(1){mb=jb+-1|0;if((hb&255)<(h[kb+-2>>0]|0)){wb=mb;xb=1;break}else{yb=jb;jb=mb;kb=yb}}}b[ub>>0]=xb;b[wb>>0]=hb;if((lb|0)<-1){zb=ib;Ab=Fa}else continue;while(1){kb=b[zb>>0]|0;b[zb>>0]=b[Ab>>0]|0;b[Ab>>0]=kb;kb=zb+1|0;jb=Ab+-1|0;if(kb>>>0>>0){zb=kb;Ab=jb}else continue d}}if(((vb|0)==84?(vb=0,db):0)?(gb=b[n>>0]|0,b[n>>0]=tb,b[Fa>>0]=gb,Ma):0){gb=La;ib=ka;do{lb=b[ib>>0]|0;b[ib>>0]=b[gb>>0]|0;b[gb>>0]=lb;ib=ib+1|0;gb=gb+-1|0}while(ib>>>0>>0)}if((fb|0)>=(Ia|0)){Wa=bb;Xa=na;Ya=bb;Za=na;_a=Ga;$a=Ha;ab=na;break}else fb=fb+1|0}}fb=f[Z>>2]|0;na=Vn(Na|0,Pa|0,fb|0,((fb|0)<0)<<31>>31|0)|0;fb=Oa;f[fb>>2]=na;f[fb+4>>2]=I;if(T){fb=f[ba>>2]|0;na=f[C>>2]|0;Ha=0;do{Ga=f[fb+(Ha<<2)>>2]|0;f[na+(Ha<<2)>>2]=Ga<<1^Ga>>31;Ha=Ha+1|0}while((Ha|0)!=(g|0));Bb=na}else Bb=f[C>>2]|0;lo(e,$,Bb,g);if((Ia|0)>0){Cb=a+40+(Da*12|0)|0;na=a+40+(Da*12|0)+4|0;Ha=a+40+(Da*12|0)+8|0;fb=0;do{Oa=f[na>>2]|0;Pa=f[Ha>>2]|0;Na=(Oa|0)==(Pa<<5|0);if(!(1<>0])){if(Na){if((Oa+1|0)<0){vb=95;break b}Ga=Pa<<6;bb=Oa+32&-32;vi(Cb,Oa>>>0<1073741823?(Ga>>>0>>0?bb:Ga):2147483647);Db=f[na>>2]|0}else Db=Oa;f[na>>2]=Db+1;Ga=(f[Cb>>2]|0)+(Db>>>5<<2)|0;f[Ga>>2]=f[Ga>>2]|1<<(Db&31)}else{if(Na){if((Oa+1|0)<0){vb=100;break b}Na=Pa<<6;Pa=Oa+32&-32;vi(Cb,Oa>>>0<1073741823?(Na>>>0>>0?Pa:Na):2147483647);Eb=f[na>>2]|0}else Eb=Oa;f[na>>2]=Eb+1;Oa=(f[Cb>>2]|0)+(Eb>>>5<<2)|0;f[Oa>>2]=f[Oa>>2]&~(1<<(Eb&31))}fb=fb+1|0}while((fb|0)<(Ia|0))}fb=f[aa>>2]|0;na=d+(Ea<<2)|0;Ha=f[Ca+4>>2]|0;Da=f[fb>>2]|0;Oa=f[fb+4>>2]|0;f[j>>2]=f[Ca>>2];f[da>>2]=Ha;f[k>>2]=Da;f[ea>>2]=Oa;Od(e,ca,j,k);f[na>>2]=f[e>>2];f[na+4>>2]=f[fa>>2];na=f[ga>>2]|0;if(na|0){Oa=f[ja>>2]|0;if((Oa|0)!=(na|0))f[ja>>2]=Oa+(~((Oa+-4-na|0)>>>2)<<2);Oq(na)}na=f[ha>>2]|0;if(na|0){Oa=f[ia>>2]|0;if((Oa|0)!=(na|0))f[ia>>2]=Oa+(~((Oa+-4-na|0)>>>2)<<2);Oq(na)}if((oa|0)<=2){Fb=Za;Gb=Ya;break a}na=f[B>>2]|0;qa=f[na>>2]|0;Oa=pa+-1|0;if((f[na+4>>2]|0)-qa>>2>>>0<=Oa>>>0){ya=na;vb=18;break}else{na=pa;pa=Oa;ra=$a;sa=_a;ta=ab;ua=Za;va=Ya;wa=Xa;xa=Wa;oa=na}}if((vb|0)==18)aq(ya);else if((vb|0)==95)aq(Cb);else if((vb|0)==100)aq(Cb)}else{Fb=M;Gb=N}while(0);if((g|0)>0)sj(f[l>>2]|0,0,g<<2|0)|0;g=f[l>>2]|0;N=f[c+4>>2]|0;M=f[g>>2]|0;Cb=f[g+4>>2]|0;f[j>>2]=f[c>>2];f[j+4>>2]=N;f[k>>2]=M;f[k+4>>2]=Cb;Od(e,a+8|0,j,k);f[d>>2]=f[e>>2];f[d+4>>2]=f[e+4>>2];if(Fb|0){if((Gb|0)!=(Fb|0))f[H>>2]=Gb+(~((Gb+-4-Fb|0)>>>2)<<2);Oq(Fb)}Fb=f[m>>2]|0;if(Fb|0){m=f[E>>2]|0;if((m|0)!=(Fb|0))f[E>>2]=m+(~((m+-4-Fb|0)>>>2)<<2);Oq(Fb)}Fb=f[l+36>>2]|0;if(Fb|0){m=l+40|0;E=f[m>>2]|0;if((E|0)!=(Fb|0))f[m>>2]=E+(~((E+-4-Fb|0)>>>2)<<2);Oq(Fb)}Fb=f[l+24>>2]|0;if(Fb|0){E=l+28|0;m=f[E>>2]|0;if((m|0)!=(Fb|0))f[E>>2]=m+(~((m+-4-Fb|0)>>>2)<<2);Oq(Fb)}Fb=f[l+12>>2]|0;if(Fb|0){m=l+16|0;E=f[m>>2]|0;if((E|0)!=(Fb|0))f[m>>2]=E+(~((E+-4-Fb|0)>>>2)<<2);Oq(Fb)}Fb=f[l>>2]|0;if(!Fb){u=i;return 1}E=l+4|0;l=f[E>>2]|0;if((l|0)!=(Fb|0))f[E>>2]=l+(~((l+-4-Fb|0)>>>2)<<2);Oq(Fb);u=i;return 1}function eb(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0,Ha=0,Ia=0,Ja=0,Ka=0,La=0,Ma=0,Na=0,Oa=0,Pa=0,Qa=0,Ra=0,Sa=0,Ta=0,Ua=0,Va=0,Wa=0,Xa=0,Ya=0,Za=0,_a=0,$a=0,ab=0,bb=0,cb=0,db=0,eb=0,fb=0,gb=0,hb=0,ib=0,jb=0,kb=0,lb=0,mb=0,nb=0,ob=0,pb=0,qb=0,rb=0,sb=0,tb=0,ub=0,vb=0,wb=0,xb=0,yb=0,zb=0,Ab=0,Bb=0,Cb=0,Db=0,Eb=0,Fb=0,Gb=0,Hb=0,Ib=0,Jb=0,Kb=0,Lb=0,Mb=0,Nb=0,Ob=0,Pb=0,Qb=0,Rb=0,Sb=0,Tb=0,Ub=0,Vb=0,Wb=0,Xb=0,Yb=0,Zb=0,_b=0;c=u;u=u+32|0;d=c+16|0;e=c+4|0;g=c;f[a+36>>2]=b;h=a+24|0;i=a+28|0;j=f[i>>2]|0;k=f[h>>2]|0;l=j-k>>2;m=k;k=j;if(l>>>0>=b>>>0){if(l>>>0>b>>>0?(j=m+(b<<2)|0,(j|0)!=(k|0)):0)f[i>>2]=k+(~((k+-4-j|0)>>>2)<<2)}else Ch(h,b-l|0,6140);f[d>>2]=0;l=d+4|0;f[l>>2]=0;j=d+8|0;f[j>>2]=0;if(b){if((b|0)<0)aq(d);k=((b+-1|0)>>>5)+1|0;m=ln(k<<2)|0;f[d>>2]=m;f[j>>2]=k;f[l>>2]=b;k=b>>>5;sj(m|0,0,k<<2|0)|0;n=b&31;o=m+(k<<2)|0;k=m;if(!n){p=b;q=k;r=m}else{f[o>>2]=f[o>>2]&~(-1>>>(32-n|0));p=b;q=k;r=m}}else{p=0;q=0;r=0}m=a+4|0;k=f[a>>2]|0;n=(f[m>>2]|0)-k|0;o=n>>2;f[e>>2]=0;s=e+4|0;f[s>>2]=0;t=e+8|0;f[t>>2]=0;do if(o){if((n|0)<0)aq(e);v=((o+-1|0)>>>5)+1|0;w=ln(v<<2)|0;f[e>>2]=w;f[t>>2]=v;f[s>>2]=o;v=o>>>5;sj(w|0,0,v<<2|0)|0;x=o&31;y=w+(v<<2)|0;if(x|0)f[y>>2]=f[y>>2]&~(-1>>>(32-x|0));if(o>>>0>2){x=a+12|0;y=a+32|0;v=a+52|0;w=a+56|0;z=a+48|0;A=b;B=k;C=0;D=q;E=r;a:while(1){F=B;G=C*3|0;if((G|0)!=-1){H=f[F+(G<<2)>>2]|0;I=G+1|0;J=((I>>>0)%3|0|0)==0?G+-2|0:I;if((J|0)==-1)K=-1;else K=f[F+(J<<2)>>2]|0;J=(((G>>>0)%3|0|0)==0?2:-1)+G|0;if((J|0)==-1)L=-1;else L=f[F+(J<<2)>>2]|0;if((H|0)!=(K|0)?!((H|0)==(L|0)|(K|0)==(L|0)):0){H=0;J=A;F=E;I=D;while(1){M=H+G|0;if(!(f[(f[e>>2]|0)+(M>>>5<<2)>>2]&1<<(M&31))){N=f[(f[a>>2]|0)+(M<<2)>>2]|0;f[g>>2]=N;if(!(f[F+(N>>>5<<2)>>2]&1<<(N&31))){O=0;P=J;Q=N}else{N=f[i>>2]|0;if((N|0)==(f[y>>2]|0))Ri(h,6140);else{f[N>>2]=-1;f[i>>2]=N+4}N=f[v>>2]|0;if((N|0)==(f[w>>2]|0))Ri(z,g);else{f[N>>2]=f[g>>2];f[v>>2]=N+4}N=f[l>>2]|0;R=f[j>>2]|0;if((N|0)==(R<<5|0)){if((N+1|0)<0){S=50;break a}T=R<<6;R=N+32&-32;vi(d,N>>>0<1073741823?(T>>>0>>0?R:T):2147483647);U=f[l>>2]|0}else U=N;f[l>>2]=U+1;N=(f[d>>2]|0)+(U>>>5<<2)|0;f[N>>2]=f[N>>2]&~(1<<(U&31));f[g>>2]=J;O=1;P=J+1|0;Q=J}N=f[d>>2]|0;T=N+(Q>>>5<<2)|0;f[T>>2]=f[T>>2]|1<<(Q&31);T=N;b:do if(O){R=M;while(1){if((R|0)==-1){S=64;break b}V=(f[e>>2]|0)+(R>>>5<<2)|0;f[V>>2]=f[V>>2]|1<<(R&31);V=f[g>>2]|0;f[(f[h>>2]|0)+(V<<2)>>2]=R;f[(f[a>>2]|0)+(R<<2)>>2]=V;V=R+1|0;W=((V>>>0)%3|0|0)==0?R+-2|0:V;do if((W|0)==-1)X=-1;else{V=f[(f[x>>2]|0)+(W<<2)>>2]|0;Y=V+1|0;if((V|0)==-1){X=-1;break}X=((Y>>>0)%3|0|0)==0?V+-2|0:Y}while(0);if((X|0)==(M|0))break;else R=X}}else{R=M;while(1){if((R|0)==-1){S=64;break b}W=(f[e>>2]|0)+(R>>>5<<2)|0;f[W>>2]=f[W>>2]|1<<(R&31);f[(f[h>>2]|0)+(f[g>>2]<<2)>>2]=R;W=R+1|0;Y=((W>>>0)%3|0|0)==0?R+-2|0:W;do if((Y|0)==-1)Z=-1;else{W=f[(f[x>>2]|0)+(Y<<2)>>2]|0;V=W+1|0;if((W|0)==-1){Z=-1;break}Z=((V>>>0)%3|0|0)==0?W+-2|0:V}while(0);if((Z|0)==(M|0))break;else R=Z}}while(0);c:do if((S|0)==64){S=0;if((M|0)==-1)break;R=(((M>>>0)%3|0|0)==0?2:-1)+M|0;if((R|0)==-1)break;Y=f[(f[x>>2]|0)+(R<<2)>>2]|0;if((Y|0)==-1)break;R=Y+(((Y>>>0)%3|0|0)==0?2:-1)|0;if((R|0)==-1)break;if(!O){Y=R;while(1){V=(f[e>>2]|0)+(Y>>>5<<2)|0;f[V>>2]=f[V>>2]|1<<(Y&31);V=(((Y>>>0)%3|0|0)==0?2:-1)+Y|0;if((V|0)==-1)break c;W=f[(f[x>>2]|0)+(V<<2)>>2]|0;if((W|0)==-1)break c;Y=W+(((W>>>0)%3|0|0)==0?2:-1)|0;if((Y|0)==-1)break c}}Y=f[a>>2]|0;W=R;do{V=(f[e>>2]|0)+(W>>>5<<2)|0;f[V>>2]=f[V>>2]|1<<(W&31);f[Y+(W<<2)>>2]=f[g>>2];V=(((W>>>0)%3|0|0)==0?2:-1)+W|0;if((V|0)==-1)break c;_=f[(f[x>>2]|0)+(V<<2)>>2]|0;if((_|0)==-1)break c;W=_+(((_>>>0)%3|0|0)==0?2:-1)|0}while((W|0)!=-1)}while(0);$=P;aa=T;ba=N}else{$=J;aa=I;ba=F}if((H|0)<2){H=H+1|0;J=$;F=ba;I=aa}else{ca=$;da=aa;ea=ba;break}}}else{ca=A;da=D;ea=E}}else{ca=A;da=D;ea=E}C=C+1|0;B=f[a>>2]|0;if(C>>>0>=(((f[m>>2]|0)-B>>2>>>0)/3|0)>>>0){S=18;break}else{A=ca;D=da;E=ea}}if((S|0)==18){fa=da;ga=f[l>>2]|0;break}else if((S|0)==50)aq(d)}else{fa=q;ga=p}}else{fa=q;ga=p}while(0);p=a+44|0;f[p>>2]=0;a=fa;fa=ga>>>5;q=a+(fa<<2)|0;S=ga&31;ga=(fa|0)!=0;d:do if(fa|S|0)if(!S){l=a;da=0;ea=ga;while(1){e:do if(ea){if(!(f[l>>2]&1)){ca=da+1|0;f[p>>2]=ca;ha=ca}else ha=da;if(!(f[l>>2]&2)){ca=ha+1|0;f[p>>2]=ca;ia=ca}else ia=ha;if(!(f[l>>2]&4)){ca=ia+1|0;f[p>>2]=ca;ja=ca}else ja=ia;if(!(f[l>>2]&8)){ca=ja+1|0;f[p>>2]=ca;ka=ca}else ka=ja;if(!(f[l>>2]&16)){ca=ka+1|0;f[p>>2]=ca;la=ca}else la=ka;if(!(f[l>>2]&32)){ca=la+1|0;f[p>>2]=ca;ma=ca}else ma=la;if(!(f[l>>2]&64)){ca=ma+1|0;f[p>>2]=ca;na=ca}else na=ma;if(!(f[l>>2]&128)){ca=na+1|0;f[p>>2]=ca;oa=ca}else oa=na;if(!(f[l>>2]&256)){ca=oa+1|0;f[p>>2]=ca;pa=ca}else pa=oa;if(!(f[l>>2]&512)){ca=pa+1|0;f[p>>2]=ca;qa=ca}else qa=pa;if(!(f[l>>2]&1024)){ca=qa+1|0;f[p>>2]=ca;ra=ca}else ra=qa;if(!(f[l>>2]&2048)){ca=ra+1|0;f[p>>2]=ca;sa=ca}else sa=ra;if(!(f[l>>2]&4096)){ca=sa+1|0;f[p>>2]=ca;ta=ca}else ta=sa;if(!(f[l>>2]&8192)){ca=ta+1|0;f[p>>2]=ca;ua=ca}else ua=ta;if(!(f[l>>2]&16384)){ca=ua+1|0;f[p>>2]=ca;va=ca}else va=ua;if(!(f[l>>2]&32768)){ca=va+1|0;f[p>>2]=ca;wa=ca}else wa=va;if(!(f[l>>2]&65536)){ca=wa+1|0;f[p>>2]=ca;xa=ca}else xa=wa;if(!(f[l>>2]&131072)){ca=xa+1|0;f[p>>2]=ca;ya=ca}else ya=xa;if(!(f[l>>2]&262144)){ca=ya+1|0;f[p>>2]=ca;za=ca}else za=ya;if(!(f[l>>2]&524288)){ca=za+1|0;f[p>>2]=ca;Aa=ca}else Aa=za;if(!(f[l>>2]&1048576)){ca=Aa+1|0;f[p>>2]=ca;Ba=ca}else Ba=Aa;if(!(f[l>>2]&2097152)){ca=Ba+1|0;f[p>>2]=ca;Ca=ca}else Ca=Ba;if(!(f[l>>2]&4194304)){ca=Ca+1|0;f[p>>2]=ca;Da=ca}else Da=Ca;if(!(f[l>>2]&8388608)){ca=Da+1|0;f[p>>2]=ca;Ea=ca}else Ea=Da;if(!(f[l>>2]&16777216)){ca=Ea+1|0;f[p>>2]=ca;Fa=ca}else Fa=Ea;if(!(f[l>>2]&33554432)){ca=Fa+1|0;f[p>>2]=ca;Ga=ca}else Ga=Fa;if(!(f[l>>2]&67108864)){ca=Ga+1|0;f[p>>2]=ca;Ha=ca}else Ha=Ga;if(!(f[l>>2]&134217728)){ca=Ha+1|0;f[p>>2]=ca;Ia=ca}else Ia=Ha;if(!(f[l>>2]&268435456)){ca=Ia+1|0;f[p>>2]=ca;Ja=ca}else Ja=Ia;if(!(f[l>>2]&536870912)){ca=Ja+1|0;f[p>>2]=ca;Ka=ca}else Ka=Ja;if(!(f[l>>2]&1073741824)){ca=Ka+1|0;f[p>>2]=ca;La=ca}else La=Ka;if((f[l>>2]|0)<=-1){Ma=La;break}ca=La+1|0;f[p>>2]=ca;Ma=ca}else{ca=0;m=da;while(1){if(!(f[l>>2]&1<>2]=ba;Na=ba}else Na=m;if((ca|0)==31){Ma=Na;break e}ca=ca+1|0;if(!ca)break d;else m=Na}}while(0);l=l+4|0;if((q|0)==(l|0))break;else{da=Ma;ea=1}}}else{if(ga){ea=0;da=a;l=0;while(1){if(!(f[da>>2]&1)){m=l+1|0;f[p>>2]=m;Oa=m;Pa=m}else{Oa=l;Pa=ea}if(!(f[da>>2]&2)){m=Oa+1|0;f[p>>2]=m;Qa=m;Ra=m}else{Qa=Oa;Ra=Pa}if(!(f[da>>2]&4)){m=Qa+1|0;f[p>>2]=m;Sa=m;Ta=m}else{Sa=Qa;Ta=Ra}if(!(f[da>>2]&8)){m=Sa+1|0;f[p>>2]=m;Ua=m;Va=m}else{Ua=Sa;Va=Ta}if(!(f[da>>2]&16)){m=Ua+1|0;f[p>>2]=m;Wa=m;Xa=m}else{Wa=Ua;Xa=Va}if(!(f[da>>2]&32)){m=Wa+1|0;f[p>>2]=m;Ya=m;Za=m}else{Ya=Wa;Za=Xa}if(!(f[da>>2]&64)){m=Ya+1|0;f[p>>2]=m;_a=m;$a=m}else{_a=Ya;$a=Za}if(!(f[da>>2]&128)){m=_a+1|0;f[p>>2]=m;ab=m;bb=m}else{ab=_a;bb=$a}if(!(f[da>>2]&256)){m=ab+1|0;f[p>>2]=m;cb=m;db=m}else{cb=ab;db=bb}if(!(f[da>>2]&512)){m=cb+1|0;f[p>>2]=m;eb=m;fb=m}else{eb=cb;fb=db}if(!(f[da>>2]&1024)){m=eb+1|0;f[p>>2]=m;gb=m;hb=m}else{gb=eb;hb=fb}if(!(f[da>>2]&2048)){m=gb+1|0;f[p>>2]=m;ib=m;jb=m}else{ib=gb;jb=hb}if(!(f[da>>2]&4096)){m=ib+1|0;f[p>>2]=m;kb=m;lb=m}else{kb=ib;lb=jb}if(!(f[da>>2]&8192)){m=kb+1|0;f[p>>2]=m;mb=m;nb=m}else{mb=kb;nb=lb}if(!(f[da>>2]&16384)){m=mb+1|0;f[p>>2]=m;ob=m;pb=m}else{ob=mb;pb=nb}if(!(f[da>>2]&32768)){m=ob+1|0;f[p>>2]=m;qb=m;rb=m}else{qb=ob;rb=pb}if(!(f[da>>2]&65536)){m=qb+1|0;f[p>>2]=m;sb=m;tb=m}else{sb=qb;tb=rb}if(!(f[da>>2]&131072)){m=sb+1|0;f[p>>2]=m;ub=m;vb=m}else{ub=sb;vb=tb}if(!(f[da>>2]&262144)){m=ub+1|0;f[p>>2]=m;wb=m;xb=m}else{wb=ub;xb=vb}if(!(f[da>>2]&524288)){m=wb+1|0;f[p>>2]=m;yb=m;zb=m}else{yb=wb;zb=xb}if(!(f[da>>2]&1048576)){m=yb+1|0;f[p>>2]=m;Ab=m;Bb=m}else{Ab=yb;Bb=zb}if(!(f[da>>2]&2097152)){m=Ab+1|0;f[p>>2]=m;Cb=m;Db=m}else{Cb=Ab;Db=Bb}if(!(f[da>>2]&4194304)){m=Cb+1|0;f[p>>2]=m;Eb=m;Fb=m}else{Eb=Cb;Fb=Db}if(!(f[da>>2]&8388608)){m=Eb+1|0;f[p>>2]=m;Gb=m;Hb=m}else{Gb=Eb;Hb=Fb}if(!(f[da>>2]&16777216)){m=Gb+1|0;f[p>>2]=m;Ib=m;Jb=m}else{Ib=Gb;Jb=Hb}if(!(f[da>>2]&33554432)){m=Ib+1|0;f[p>>2]=m;Kb=m;Lb=m}else{Kb=Ib;Lb=Jb}if(!(f[da>>2]&67108864)){m=Kb+1|0;f[p>>2]=m;Mb=m;Nb=m}else{Mb=Kb;Nb=Lb}if(!(f[da>>2]&134217728)){m=Mb+1|0;f[p>>2]=m;Ob=m;Pb=m}else{Ob=Mb;Pb=Nb}if(!(f[da>>2]&268435456)){m=Ob+1|0;f[p>>2]=m;Qb=m;Rb=m}else{Qb=Ob;Rb=Pb}if(!(f[da>>2]&536870912)){m=Qb+1|0;f[p>>2]=m;Sb=m;Tb=m}else{Sb=Qb;Tb=Rb}if(!(f[da>>2]&1073741824)){m=Sb+1|0;f[p>>2]=m;Ub=m;Vb=m}else{Ub=Sb;Vb=Tb}if((f[da>>2]|0)>-1){m=Ub+1|0;f[p>>2]=m;Wb=m;Xb=m}else{Wb=Ub;Xb=Vb}m=da+4|0;if((q|0)==(m|0)){Yb=m;Zb=Xb;break}else{ea=Xb;da=m;l=Wb}}}else{Yb=a;Zb=0}l=0;da=Zb;while(1){if(!(f[Yb>>2]&1<>2]=ea;_b=ea}else _b=da;l=l+1|0;if((l|0)==(S|0))break;else da=_b}}while(0);_b=f[e>>2]|0;if(_b|0)Oq(_b);_b=f[d>>2]|0;if(!_b){u=c;return 1}Oq(_b);u=c;return 1}function fb(a,c,d,e,g,i){a=a|0;c=c|0;d=d|0;e=e|0;g=g|0;i=i|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0,Ha=0,Ia=0,Ja=0,Ka=0,La=0,Ma=0,Na=0,Oa=0,Pa=0,Qa=0,Ra=0,Sa=0,Ta=0.0,Ua=0.0,Va=0.0,Wa=0,Xa=0,Ya=0,Za=0,_a=0,$a=0,ab=0,bb=0,cb=0,db=0,eb=0,fb=0,gb=0,hb=0,ib=0,jb=0,kb=0,lb=0,mb=0,nb=0,ob=0,pb=0,qb=0,rb=0,sb=0,tb=0,ub=0,vb=0,wb=0,xb=0,yb=0,zb=0,Ab=0,Bb=0,Cb=0,Db=0,Eb=0,Fb=0,Gb=0,Hb=0,Ib=0;i=u;u=u+256|0;e=i+104|0;j=i+240|0;k=i+224|0;l=i+160|0;m=i+140|0;n=i+248|0;o=i+72|0;p=i+40|0;q=i+128|0;r=i;s=i+232|0;t=i+220|0;v=i+216|0;w=i+212|0;x=i+208|0;y=i+152|0;z=f[a+28>>2]|0;A=f[a+32>>2]|0;B=l;C=B+48|0;do{f[B>>2]=0;B=B+4|0}while((B|0)<(C|0));if(!g){D=0;E=0}else{Ci(l,g);D=f[l+12>>2]|0;E=f[l+16>>2]|0}B=l+16|0;C=E-D>>2;F=D;D=E;if(C>>>0>=g>>>0){if(C>>>0>g>>>0?(E=F+(g<<2)|0,(E|0)!=(D|0)):0)f[B>>2]=D+(~((D+-4-E|0)>>>2)<<2)}else Ci(l+12|0,g-C|0);C=l+24|0;E=l+28|0;D=f[E>>2]|0;B=f[C>>2]|0;F=D-B>>2;G=B;B=D;if(F>>>0>=g>>>0){if(F>>>0>g>>>0?(D=G+(g<<2)|0,(D|0)!=(B|0)):0)f[E>>2]=B+(~((B+-4-D|0)>>>2)<<2)}else Ci(C,g-F|0);F=l+36|0;C=l+40|0;D=f[C>>2]|0;B=f[F>>2]|0;E=D-B>>2;G=B;B=D;if(E>>>0>=g>>>0){if(E>>>0>g>>>0?(D=G+(g<<2)|0,(D|0)!=(B|0)):0)f[C>>2]=B+(~((B+-4-D|0)>>>2)<<2)}else Ci(F,g-E|0);f[m>>2]=0;E=m+4|0;f[E>>2]=0;f[m+8>>2]=0;F=(g|0)==0;do if(!F)if(g>>>0>1073741823)aq(m);else{D=g<<2;B=ln(D)|0;f[m>>2]=B;C=B+(g<<2)|0;f[m+8>>2]=C;sj(B|0,0,D|0)|0;f[E>>2]=C;break}while(0);C=a+136|0;D=a+140|0;B=f[D>>2]|0;G=f[C>>2]|0;H=B-G>>2;L=G;G=B;if(H>>>0>=g>>>0){if(H>>>0>g>>>0?(B=L+(g<<2)|0,(B|0)!=(G|0)):0)f[D>>2]=G+(~((G+-4-B|0)>>>2)<<2)}else Ci(C,g-H|0);f[o>>2]=0;f[o+4>>2]=0;f[o+8>>2]=0;f[o+12>>2]=0;f[o+16>>2]=0;f[o+20>>2]=0;f[o+24>>2]=0;f[o+28>>2]=0;f[p>>2]=0;f[p+4>>2]=0;f[p+8>>2]=0;f[p+12>>2]=0;f[p+16>>2]=0;f[p+20>>2]=0;f[p+24>>2]=0;f[p+28>>2]=0;f[q>>2]=0;H=q+4|0;f[H>>2]=0;f[q+8>>2]=0;if(F){M=0;N=0;O=0;P=0}else{F=g<<2;B=ln(F)|0;f[q>>2]=B;G=B+(g<<2)|0;f[q+8>>2]=G;sj(B|0,0,F|0)|0;f[H>>2]=G;M=B;N=G;O=G;P=B}B=a+36|0;G=f[B>>2]|0;F=f[G+4>>2]|0;D=f[G>>2]|0;L=F-D|0;a:do if((L|0)>4){Q=L>>2;R=z+12|0;S=(g|0)>0;T=r+4|0;U=r+8|0;V=r+12|0;Z=a+136|0;_=a+96|0;$=r+16|0;aa=r+28|0;ba=a+8|0;ca=j+4|0;da=k+4|0;ea=e+4|0;fa=r+28|0;ga=r+16|0;ha=r+20|0;ia=r+32|0;ja=n+1|0;ka=g<<2;la=(g|0)==1;ma=Q+-1|0;if(F-D>>2>>>0>ma>>>0){na=Q;oa=ma;pa=P;qa=O;ra=M;sa=M;ta=N;ua=M;va=N;wa=D}else{xa=G;aq(xa)}b:while(1){ma=f[wa+(oa<<2)>>2]|0;Q=(((ma>>>0)%3|0|0)==0?2:-1)+ma|0;ya=(ma|0)==-1|(Q|0)==-1;za=1;Aa=0;Ba=ma;c:while(1){Ca=za^1;Da=Aa;Ea=Ba;while(1){if((Ea|0)==-1){Fa=Da;break c}Ga=f[l+(Da*12|0)>>2]|0;Ha=f[R>>2]|0;Ia=f[Ha+(Ea<<2)>>2]|0;if((Ia|0)!=-1){Ja=f[z>>2]|0;Ka=f[A>>2]|0;La=f[Ka+(f[Ja+(Ia<<2)>>2]<<2)>>2]|0;Ma=Ia+1|0;Na=((Ma>>>0)%3|0|0)==0?Ia+-2|0:Ma;if((Na|0)==-1)Oa=-1;else Oa=f[Ja+(Na<<2)>>2]|0;Na=f[Ka+(Oa<<2)>>2]|0;Ma=(((Ia>>>0)%3|0|0)==0?2:-1)+Ia|0;if((Ma|0)==-1)Pa=-1;else Pa=f[Ja+(Ma<<2)>>2]|0;Ma=f[Ka+(Pa<<2)>>2]|0;if((La|0)<(oa|0)&(Na|0)<(oa|0)&(Ma|0)<(oa|0)){Ka=X(La,g)|0;La=X(Na,g)|0;Na=X(Ma,g)|0;if(S){Ma=0;do{f[Ga+(Ma<<2)>>2]=(f[c+(Ma+Na<<2)>>2]|0)+(f[c+(Ma+La<<2)>>2]|0)-(f[c+(Ma+Ka<<2)>>2]|0);Ma=Ma+1|0}while((Ma|0)!=(g|0))}Ma=Da+1|0;if((Ma|0)==4){Fa=4;break c}else Qa=Ma}else Qa=Da}else Qa=Da;do if(za){Ma=Ea+1|0;Ka=((Ma>>>0)%3|0|0)==0?Ea+-2|0:Ma;if((Ka|0)!=-1?(Ma=f[Ha+(Ka<<2)>>2]|0,Ka=Ma+1|0,(Ma|0)!=-1):0)Ra=((Ka>>>0)%3|0|0)==0?Ma+-2|0:Ka;else Ra=-1}else{Ka=(((Ea>>>0)%3|0|0)==0?2:-1)+Ea|0;if((Ka|0)!=-1?(Ma=f[Ha+(Ka<<2)>>2]|0,(Ma|0)!=-1):0)if(!((Ma>>>0)%3|0)){Ra=Ma+2|0;break}else{Ra=Ma+-1|0;break}else Ra=-1}while(0);if((Ra|0)==(ma|0)){Fa=Qa;break c}if((Ra|0)!=-1|Ca){Da=Qa;Ea=Ra}else break}if(ya){za=0;Aa=Qa;Ba=-1;continue}Ea=f[Ha+(Q<<2)>>2]|0;if((Ea|0)==-1){za=0;Aa=Qa;Ba=-1;continue}if(!((Ea>>>0)%3|0)){za=0;Aa=Qa;Ba=Ea+2|0;continue}else{za=0;Aa=Qa;Ba=Ea+-1|0;continue}}Ba=X(oa,g)|0;f[r>>2]=0;f[T>>2]=0;b[U>>0]=0;f[V>>2]=0;f[V+4>>2]=0;f[V+8>>2]=0;f[V+12>>2]=0;f[V+16>>2]=0;f[V+20>>2]=0;f[V+24>>2]=0;Aa=Fa+-1|0;za=p+(Aa<<3)|0;Q=za;ya=Vn(f[Q>>2]|0,f[Q+4>>2]|0,Fa|0,((Fa|0)<0)<<31>>31|0)|0;Q=I;ma=za;f[ma>>2]=ya;f[ma+4>>2]=Q;ma=c+((X(na+-2|0,g)|0)<<2)|0;za=c+(Ba<<2)|0;Ea=f[Z>>2]|0;if(S){Da=0;Ca=0;while(1){Ma=(f[ma+(Da<<2)>>2]|0)-(f[za+(Da<<2)>>2]|0)|0;Ka=((Ma|0)>-1?Ma:0-Ma|0)+Ca|0;f[ra+(Da<<2)>>2]=Ma;f[Ea+(Da<<2)>>2]=Ma<<1^Ma>>31;Da=Da+1|0;if((Da|0)==(g|0)){Sa=Ka;break}else Ca=Ka}}else Sa=0;mo(e,_,Ea,g);Ca=Zk(e)|0;Da=I;Ka=Bm(e)|0;Ma=I;La=o+(Aa<<3)|0;Na=La;Ga=f[Na>>2]|0;Ja=f[Na+4>>2]|0;Ta=+wm(ya,Ga);Na=Vn(Ka|0,Ma|0,Ca|0,Da|0)|0;Ua=+(ya>>>0)+4294967296.0*+(Q|0);Va=+W(+(Ta*Ua));Da=Vn(Na|0,I|0,~~Va>>>0|0,(+K(Va)>=1.0?(Va>0.0?~~+Y(+J(Va/4294967296.0),4294967295.0)>>>0:~~+W((Va-+(~~Va>>>0))/4294967296.0)>>>0):0)|0)|0;Na=r;f[Na>>2]=Da;f[Na+4>>2]=Sa;b[U>>0]=0;f[V>>2]=0;$f($,ma,ma+(g<<2)|0);f[s>>2]=pa;f[t>>2]=qa;f[j>>2]=f[s>>2];f[e>>2]=f[t>>2];Jf(aa,j,e);if((Fa|0)<1){Wa=va;Xa=ua;Ya=ta;Za=sa;_a=qa;$a=pa;ab=pa}else{Na=n+Fa|0;Da=f[q>>2]|0;Ca=Da;Ma=f[H>>2]|0;Ka=Na+-1|0;Ia=(Ka|0)==(n|0);bb=Na+-2|0;cb=ja>>>0>>0;db=~Fa;eb=Fa+2+((db|0)>-2?db:-2)|0;db=Ma;fb=Ka>>>0>n>>>0;gb=0;hb=1;while(1){gb=gb+1|0;sj(n|0,1,eb|0)|0;sj(n|0,0,gb|0)|0;ib=Vn(Ga|0,Ja|0,hb|0,0)|0;d:while(1){if(S){sj(f[m>>2]|0,0,ka|0)|0;jb=f[m>>2]|0;kb=0;lb=0;while(1){if(!(b[n+kb>>0]|0)){mb=f[l+(kb*12|0)>>2]|0;nb=0;do{ob=jb+(nb<<2)|0;f[ob>>2]=(f[ob>>2]|0)+(f[mb+(nb<<2)>>2]|0);nb=nb+1|0}while((nb|0)!=(g|0));pb=(1<>0]|0))rb=(1<>2]|0;do if(S){f[kb>>2]=(f[kb>>2]|0)/(hb|0)|0;if(!la){lb=1;do{jb=kb+(lb<<2)|0;f[jb>>2]=(f[jb>>2]|0)/(hb|0)|0;lb=lb+1|0}while((lb|0)!=(g|0));lb=f[Z>>2]|0;if(S)sb=lb;else{tb=0;ub=lb;break}}else sb=f[Z>>2]|0;lb=0;jb=0;while(1){nb=(f[kb+(lb<<2)>>2]|0)-(f[za+(lb<<2)>>2]|0)|0;mb=((nb|0)>-1?nb:0-nb|0)+jb|0;f[Da+(lb<<2)>>2]=nb;f[sb+(lb<<2)>>2]=nb<<1^nb>>31;lb=lb+1|0;if((lb|0)==(g|0)){tb=mb;ub=sb;break}else jb=mb}}else{tb=0;ub=f[Z>>2]|0}while(0);mo(e,_,ub,g);kb=Zk(e)|0;jb=I;lb=Bm(e)|0;mb=I;Va=+wm(ya,ib);nb=Vn(lb|0,mb|0,kb|0,jb|0)|0;Ta=+W(+(Va*Ua));jb=Vn(nb|0,I|0,~~Ta>>>0|0,(+K(Ta)>=1.0?(Ta>0.0?~~+Y(+J(Ta/4294967296.0),4294967295.0)>>>0:~~+W((Ta-+(~~Ta>>>0))/4294967296.0)>>>0):0)|0)|0;nb=f[r>>2]|0;if(!((nb|0)<=(jb|0)?!((nb|0)>=(jb|0)?(tb|0)<(f[T>>2]|0):0):0)){nb=r;f[nb>>2]=jb;f[nb+4>>2]=tb;b[U>>0]=qb;f[V>>2]=hb;f[v>>2]=f[m>>2];f[w>>2]=f[E>>2];f[j>>2]=f[v>>2];f[e>>2]=f[w>>2];Jf($,j,e);f[x>>2]=Ca;f[y>>2]=Ma;f[j>>2]=f[x>>2];f[e>>2]=f[y>>2];Jf(aa,j,e)}if(Ia)break;vb=b[Ka>>0]|0;nb=-1;jb=vb;while(1){kb=nb+-1|0;wb=Na+kb|0;mb=jb;jb=b[wb>>0]|0;if((jb&255)<(mb&255))break;if((wb|0)==(n|0)){xb=84;break d}else nb=kb}kb=Na+nb|0;if((jb&255)<(vb&255)){yb=Ka;zb=vb}else{mb=Na;lb=Ka;while(1){ob=lb+-1|0;if((jb&255)<(h[mb+-2>>0]|0)){yb=ob;zb=1;break}else{Ab=lb;lb=ob;mb=Ab}}}b[wb>>0]=zb;b[yb>>0]=jb;if((nb|0)<-1){Bb=kb;Cb=Ka}else continue;while(1){mb=b[Bb>>0]|0;b[Bb>>0]=b[Cb>>0]|0;b[Cb>>0]=mb;mb=Bb+1|0;lb=Cb+-1|0;if(mb>>>0>>0){Bb=mb;Cb=lb}else continue d}}if(((xb|0)==84?(xb=0,fb):0)?(ib=b[n>>0]|0,b[n>>0]=vb,b[Ka>>0]=ib,cb):0){ib=bb;kb=ja;do{nb=b[kb>>0]|0;b[kb>>0]=b[ib>>0]|0;b[ib>>0]=nb;kb=kb+1|0;ib=ib+-1|0}while(kb>>>0>>0)}if((hb|0)>=(Fa|0)){Wa=db;Xa=Da;Ya=db;Za=Da;_a=Ma;$a=Ca;ab=Da;break}else hb=hb+1|0}}hb=f[V>>2]|0;Da=Vn(Ga|0,Ja|0,hb|0,((hb|0)<0)<<31>>31|0)|0;hb=La;f[hb>>2]=Da;f[hb+4>>2]=I;if(S){hb=f[aa>>2]|0;Da=f[C>>2]|0;Ca=0;do{Ma=f[hb+(Ca<<2)>>2]|0;f[Da+(Ca<<2)>>2]=Ma<<1^Ma>>31;Ca=Ca+1|0}while((Ca|0)!=(g|0));Db=Da}else Db=f[C>>2]|0;lo(e,_,Db,g);if((Fa|0)>0){Eb=a+40+(Aa*12|0)|0;Da=a+40+(Aa*12|0)+4|0;Ca=a+40+(Aa*12|0)+8|0;hb=0;do{La=f[Da>>2]|0;Ja=f[Ca>>2]|0;Ga=(La|0)==(Ja<<5|0);if(!(1<>0])){if(Ga){if((La+1|0)<0){xb=95;break b}Ma=Ja<<6;db=La+32&-32;vi(Eb,La>>>0<1073741823?(Ma>>>0>>0?db:Ma):2147483647);Fb=f[Da>>2]|0}else Fb=La;f[Da>>2]=Fb+1;Ma=(f[Eb>>2]|0)+(Fb>>>5<<2)|0;f[Ma>>2]=f[Ma>>2]|1<<(Fb&31)}else{if(Ga){if((La+1|0)<0){xb=100;break b}Ga=Ja<<6;Ja=La+32&-32;vi(Eb,La>>>0<1073741823?(Ga>>>0>>0?Ja:Ga):2147483647);Gb=f[Da>>2]|0}else Gb=La;f[Da>>2]=Gb+1;La=(f[Eb>>2]|0)+(Gb>>>5<<2)|0;f[La>>2]=f[La>>2]&~(1<<(Gb&31))}hb=hb+1|0}while((hb|0)<(Fa|0))}hb=f[$>>2]|0;Da=d+(Ba<<2)|0;Ca=f[za+4>>2]|0;Aa=f[hb>>2]|0;La=f[hb+4>>2]|0;f[j>>2]=f[za>>2];f[ca>>2]=Ca;f[k>>2]=Aa;f[da>>2]=La;Od(e,ba,j,k);f[Da>>2]=f[e>>2];f[Da+4>>2]=f[ea>>2];Da=f[fa>>2]|0;if(Da|0){La=f[ia>>2]|0;if((La|0)!=(Da|0))f[ia>>2]=La+(~((La+-4-Da|0)>>>2)<<2);Oq(Da)}Da=f[ga>>2]|0;if(Da|0){La=f[ha>>2]|0;if((La|0)!=(Da|0))f[ha>>2]=La+(~((La+-4-Da|0)>>>2)<<2);Oq(Da)}if((na|0)<=2){Hb=Za;Ib=Ya;break a}Da=f[B>>2]|0;wa=f[Da>>2]|0;La=oa+-1|0;if((f[Da+4>>2]|0)-wa>>2>>>0<=La>>>0){xa=Da;xb=18;break}else{Da=oa;oa=La;pa=$a;qa=_a;ra=ab;sa=Za;ta=Ya;ua=Xa;va=Wa;na=Da}}if((xb|0)==18)aq(xa);else if((xb|0)==95)aq(Eb);else if((xb|0)==100)aq(Eb)}else{Hb=M;Ib=N}while(0);if((g|0)>0)sj(f[l>>2]|0,0,g<<2|0)|0;g=f[l>>2]|0;N=f[c+4>>2]|0;M=f[g>>2]|0;Eb=f[g+4>>2]|0;f[j>>2]=f[c>>2];f[j+4>>2]=N;f[k>>2]=M;f[k+4>>2]=Eb;Od(e,a+8|0,j,k);f[d>>2]=f[e>>2];f[d+4>>2]=f[e+4>>2];if(Hb|0){if((Ib|0)!=(Hb|0))f[H>>2]=Ib+(~((Ib+-4-Hb|0)>>>2)<<2);Oq(Hb)}Hb=f[m>>2]|0;if(Hb|0){m=f[E>>2]|0;if((m|0)!=(Hb|0))f[E>>2]=m+(~((m+-4-Hb|0)>>>2)<<2);Oq(Hb)}Hb=f[l+36>>2]|0;if(Hb|0){m=l+40|0;E=f[m>>2]|0;if((E|0)!=(Hb|0))f[m>>2]=E+(~((E+-4-Hb|0)>>>2)<<2);Oq(Hb)}Hb=f[l+24>>2]|0;if(Hb|0){E=l+28|0;m=f[E>>2]|0;if((m|0)!=(Hb|0))f[E>>2]=m+(~((m+-4-Hb|0)>>>2)<<2);Oq(Hb)}Hb=f[l+12>>2]|0;if(Hb|0){m=l+16|0;E=f[m>>2]|0;if((E|0)!=(Hb|0))f[m>>2]=E+(~((E+-4-Hb|0)>>>2)<<2);Oq(Hb)}Hb=f[l>>2]|0;if(!Hb){u=i;return 1}E=l+4|0;l=f[E>>2]|0;if((l|0)!=(Hb|0))f[E>>2]=l+(~((l+-4-Hb|0)>>>2)<<2);Oq(Hb);u=i;return 1}function gb(a){a=a|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0,Ha=0,Ia=0,Ja=0,Ka=Oa,La=0,Ma=0,Na=0,Pa=0,Qa=Oa,Ra=0,Sa=0,Ta=0,Ua=0,Va=0;c=u;u=u+80|0;d=c+60|0;e=c+48|0;g=c+24|0;h=c+12|0;i=c;j=a+28|0;k=f[j>>2]|0;l=f[k+4>>2]|0;m=f[l+80>>2]|0;o=a+4|0;p=a+8|0;q=f[p>>2]|0;r=f[o>>2]|0;s=(q|0)==(r|0);t=r;if(s){f[a+72>>2]=0;v=1;u=c;return v|0}w=f[l+8>>2]|0;x=q-r>>2;r=0;q=0;do{r=r+(b[(f[w+(f[t+(q<<2)>>2]<<2)>>2]|0)+24>>0]|0)|0;q=q+1|0}while(q>>>0>>0);f[a+72>>2]=r;if(s){v=1;u=c;return v|0}s=g+4|0;r=g+8|0;x=d+8|0;q=d+4|0;w=d+11|0;y=g+12|0;z=d+8|0;A=d+4|0;B=d+11|0;C=h+4|0;D=h+8|0;E=i+8|0;F=i+4|0;G=d+11|0;H=d+4|0;I=i+11|0;J=d+8|0;K=d+4|0;L=d+11|0;M=d+11|0;N=d+4|0;O=h+8|0;P=a+40|0;Q=a+44|0;R=a+36|0;S=a+64|0;T=a+68|0;U=a+60|0;V=g+8|0;W=g+20|0;X=e+8|0;Y=e+4|0;Z=e+11|0;_=g+4|0;aa=g+8|0;ba=h+4|0;ca=h+8|0;da=h+8|0;ea=a+52|0;fa=a+56|0;ga=a+48|0;a=g+8|0;ha=0;ia=t;t=l;l=k;a:while(1){k=f[ia+(ha<<2)>>2]|0;ja=f[(f[t+8>>2]|0)+(k<<2)>>2]|0;switch(f[ja+28>>2]|0){case 9:{f[g>>2]=1196;f[s>>2]=-1;f[r>>2]=0;f[r+4>>2]=0;f[r+8>>2]=0;f[r+12>>2]=0;ka=f[l+48>>2]|0;f[d>>2]=0;f[d+4>>2]=0;f[d+8>>2]=0;la=ln(32)|0;f[d>>2]=la;f[x>>2]=-2147483616;f[q>>2]=17;ma=la;na=14495;oa=ma+17|0;do{b[ma>>0]=b[na>>0]|0;ma=ma+1|0;na=na+1|0}while((ma|0)<(oa|0));b[la+17>>0]=0;pa=ka+16|0;qa=f[pa>>2]|0;if(qa){ra=pa;sa=qa;b:while(1){qa=sa;while(1){if((f[qa+16>>2]|0)>=(k|0))break;ta=f[qa+4>>2]|0;if(!ta){ua=ra;break b}else qa=ta}sa=f[qa>>2]|0;if(!sa){ua=qa;break}else ra=qa}if(((ua|0)!=(pa|0)?(k|0)>=(f[ua+16>>2]|0):0)?(ra=ua+20|0,(Jh(ra,d)|0)!=0):0)va=Hk(ra,d,-1)|0;else wa=17}else wa=17;if((wa|0)==17){wa=0;va=Hk(ka,d,-1)|0}if((b[w>>0]|0)<0)Oq(f[d>>2]|0);if((va|0)<1)xa=1;else{ra=f[(f[j>>2]|0)+48>>2]|0;f[d>>2]=0;f[d+4>>2]=0;f[d+8>>2]=0;sa=ln(32)|0;f[d>>2]=sa;f[z>>2]=-2147483616;f[A>>2]=19;ma=sa;na=14438;oa=ma+19|0;do{b[ma>>0]=b[na>>0]|0;ma=ma+1|0;na=na+1|0}while((ma|0)<(oa|0));b[sa+19>>0]=0;ka=ra+16|0;pa=f[ka>>2]|0;if(pa){la=ka;ta=pa;c:while(1){pa=ta;while(1){if((f[pa+16>>2]|0)>=(k|0))break;ya=f[pa+4>>2]|0;if(!ya){za=la;break c}else pa=ya}ta=f[pa>>2]|0;if(!ta){za=pa;break}else la=pa}if((za|0)!=(ka|0)?(k|0)>=(f[za+16>>2]|0):0)Aa=za+20|0;else wa=29}else wa=29;if((wa|0)==29){wa=0;Aa=ra}if(!(Jh(Aa,d)|0))Ba=0;else{la=f[(f[j>>2]|0)+48>>2]|0;f[e>>2]=0;f[e+4>>2]=0;f[e+8>>2]=0;ta=ln(32)|0;f[e>>2]=ta;f[X>>2]=-2147483616;f[Y>>2]=18;ma=ta;na=14458;oa=ma+18|0;do{b[ma>>0]=b[na>>0]|0;ma=ma+1|0;na=na+1|0}while((ma|0)<(oa|0));b[ta+18>>0]=0;ra=la+16|0;ka=f[ra>>2]|0;if(ka){sa=ra;qa=ka;d:while(1){ka=qa;while(1){if((f[ka+16>>2]|0)>=(k|0))break;ya=f[ka+4>>2]|0;if(!ya){Ca=sa;break d}else ka=ya}qa=f[ka>>2]|0;if(!qa){Ca=ka;break}else sa=ka}if((Ca|0)!=(ra|0)?(k|0)>=(f[Ca+16>>2]|0):0)Da=Ca+20|0;else wa=39}else wa=39;if((wa|0)==39){wa=0;Da=la}sa=(Jh(Da,e)|0)!=0;if((b[Z>>0]|0)<0)Oq(f[e>>2]|0);Ba=sa}if((b[B>>0]|0)<0)Oq(f[d>>2]|0);if(Ba){sa=ja+24|0;qa=b[sa>>0]|0;ta=qa<<24>>24;f[h>>2]=0;f[C>>2]=0;f[D>>2]=0;if(!(qa<<24>>24))Ea=0;else{if(qa<<24>>24<0){wa=48;break a}qa=ta<<2;pa=ln(qa)|0;f[h>>2]=pa;ya=pa+(ta<<2)|0;f[O>>2]=ya;sj(pa|0,0,qa|0)|0;f[C>>2]=ya;Ea=pa}pa=f[(f[j>>2]|0)+48>>2]|0;f[i>>2]=0;f[i+4>>2]=0;f[i+8>>2]=0;ya=ln(32)|0;f[i>>2]=ya;f[E>>2]=-2147483616;f[F>>2]=19;ma=ya;na=14438;oa=ma+19|0;do{b[ma>>0]=b[na>>0]|0;ma=ma+1|0;na=na+1|0}while((ma|0)<(oa|0));b[ya+19>>0]=0;la=b[sa>>0]|0;ra=la<<24>>24;qa=pa+16|0;ta=f[qa>>2]|0;if(ta){Fa=qa;Ga=ta;e:while(1){ta=Ga;while(1){if((f[ta+16>>2]|0)>=(k|0))break;Ha=f[ta+4>>2]|0;if(!Ha){Ia=Fa;break e}else ta=Ha}Ga=f[ta>>2]|0;if(!Ga){Ia=ta;break}else Fa=ta}if(((Ia|0)!=(qa|0)?(k|0)>=(f[Ia+16>>2]|0):0)?(Fa=Ia+20|0,(Jh(Fa,i)|0)!=0):0){Ga=Rg(Fa,i)|0;if((Ga|0)!=(Ia+24|0)){pj(d,Ga+28|0);Ga=b[M>>0]|0;Fa=Ga<<24>>24<0;if(!((Fa?f[N>>2]|0:Ga&255)|0))Ja=Ga;else{if(la<<24>>24>0){ya=Fa?f[d>>2]|0:d;Fa=0;do{Ka=$(bq(ya,e));ka=ya;ya=f[e>>2]|0;if((ka|0)==(ya|0))break;n[Ea+(Fa<<2)>>2]=Ka;Fa=Fa+1|0}while((Fa|0)<(ra|0));La=b[M>>0]|0}else La=Ga;Ja=La}if(Ja<<24>>24<0)Oq(f[d>>2]|0)}}else wa=69}else wa=69;if((wa|0)==69?(wa=0,Fa=Rg(pa,i)|0,(Fa|0)!=(pa+4|0)):0){pj(d,Fa+28|0);Fa=b[G>>0]|0;ya=Fa<<24>>24<0;if(!((ya?f[H>>2]|0:Fa&255)|0))Ma=Fa;else{if(la<<24>>24>0){qa=ya?f[d>>2]|0:d;ya=0;do{Ka=$(bq(qa,e));ka=qa;qa=f[e>>2]|0;if((ka|0)==(qa|0))break;n[Ea+(ya<<2)>>2]=Ka;ya=ya+1|0}while((ya|0)<(ra|0));Na=b[G>>0]|0}else Na=Fa;Ma=Na}if(Ma<<24>>24<0)Oq(f[d>>2]|0)}if((b[I>>0]|0)<0)Oq(f[i>>2]|0);ra=f[(f[j>>2]|0)+48>>2]|0;f[d>>2]=0;f[d+4>>2]=0;f[d+8>>2]=0;ya=ln(32)|0;f[d>>2]=ya;f[J>>2]=-2147483616;f[K>>2]=18;ma=ya;na=14458;oa=ma+18|0;do{b[ma>>0]=b[na>>0]|0;ma=ma+1|0;na=na+1|0}while((ma|0)<(oa|0));b[ya+18>>0]=0;na=ra+16|0;ma=f[na>>2]|0;do if(ma){oa=na;Fa=ma;f:while(1){qa=Fa;while(1){if((f[qa+16>>2]|0)>=(k|0))break;la=f[qa+4>>2]|0;if(!la){Pa=oa;break f}else qa=la}Fa=f[qa>>2]|0;if(!Fa){Pa=qa;break}else oa=qa}if((Pa|0)!=(na|0)?(k|0)>=(f[Pa+16>>2]|0):0){oa=Pa+20|0;if(!(Jh(oa,d)|0)){wa=91;break}Qa=$(sk(oa,d,$(1.0)))}else wa=91}else wa=91;while(0);if((wa|0)==91){wa=0;Qa=$(sk(ra,d,$(1.0)))}if((b[L>>0]|0)<0)Oq(f[d>>2]|0);Dl(g,va,f[h>>2]|0,b[sa>>0]|0,Qa);k=f[h>>2]|0;if(k|0){na=f[C>>2]|0;if((na|0)!=(k|0))f[C>>2]=na+(~((na+-4-k|0)>>>2)<<2);Oq(k)}}else Wd(g,ja,va)|0;k=f[P>>2]|0;if((k|0)==(f[Q>>2]|0))Cf(R,g);else{f[k>>2]=1196;f[k+4>>2]=f[s>>2];Ra=k+8|0;f[Ra>>2]=0;na=k+12|0;f[na>>2]=0;f[k+16>>2]=0;ma=(f[y>>2]|0)-(f[V>>2]|0)|0;ya=ma>>2;if(ya|0){if(ya>>>0>1073741823){wa=103;break a}oa=ln(ma)|0;f[na>>2]=oa;f[Ra>>2]=oa;f[k+16>>2]=oa+(ya<<2);ya=f[V>>2]|0;ma=(f[y>>2]|0)-ya|0;if((ma|0)>0){kh(oa|0,ya|0,ma|0)|0;f[na>>2]=oa+(ma>>>2<<2)}}f[k+20>>2]=f[W>>2];f[P>>2]=(f[P>>2]|0)+24}Qe(d,g,ja,m);k=f[S>>2]|0;if(k>>>0<(f[T>>2]|0)>>>0){ma=f[d>>2]|0;f[d>>2]=0;f[k>>2]=ma;f[S>>2]=k+4}else Ze(U,d);k=f[d>>2]|0;f[d>>2]=0;if(k|0){ma=k+88|0;oa=f[ma>>2]|0;f[ma>>2]=0;if(oa|0){ma=f[oa+8>>2]|0;if(ma|0){na=oa+12|0;if((f[na>>2]|0)!=(ma|0))f[na>>2]=ma;Oq(ma)}Oq(oa)}oa=f[k+68>>2]|0;if(oa|0){ma=k+72|0;na=f[ma>>2]|0;if((na|0)!=(oa|0))f[ma>>2]=na+(~((na+-4-oa|0)>>>2)<<2);Oq(oa)}oa=k+64|0;na=f[oa>>2]|0;f[oa>>2]=0;if(na|0){oa=f[na>>2]|0;if(oa|0){ma=na+4|0;if((f[ma>>2]|0)!=(oa|0))f[ma>>2]=oa;Oq(oa)}Oq(na)}Oq(k)}xa=0}f[g>>2]=1196;k=f[r>>2]|0;if(k|0){na=f[y>>2]|0;if((na|0)!=(k|0))f[y>>2]=na+(~((na+-4-k|0)>>>2)<<2);Oq(k)}if(xa|0){v=0;wa=169;break a}break}case 1:case 3:case 5:{k=ja+24|0;na=b[k>>0]|0;oa=na<<24>>24;f[g>>2]=0;f[_>>2]=0;f[aa>>2]=0;if(!(na<<24>>24))Sa=0;else{if(na<<24>>24<0){wa=137;break a}na=ln(oa<<2)|0;f[_>>2]=na;f[g>>2]=na;ma=na+(oa<<2)|0;f[a>>2]=ma;ya=oa;oa=na;while(1){f[oa>>2]=2147483647;ya=ya+-1|0;if(!ya)break;else oa=oa+4|0}f[_>>2]=ma;Sa=b[k>>0]|0}oa=Sa<<24>>24;f[h>>2]=0;f[ba>>2]=0;f[ca>>2]=0;if(!(Sa<<24>>24))Ta=0;else{if(Sa<<24>>24<0){wa=144;break a}ya=oa<<2;sa=ln(ya)|0;f[h>>2]=sa;ra=sa+(oa<<2)|0;f[da>>2]=ra;sj(sa|0,0,ya|0)|0;f[ba>>2]=ra;Ta=sa}sa=ja+80|0;ra=b[k>>0]|0;g:do if(!(f[sa>>2]|0))Ua=ra;else{ya=0;oa=ra;na=Ta;while(1){f[e>>2]=ya;f[d>>2]=f[e>>2];Qb(ja,d,oa,na)|0;Fa=b[k>>0]|0;if(Fa<<24>>24>0){ta=f[g>>2]|0;la=f[h>>2]|0;pa=Fa<<24>>24;Ga=0;do{ka=ta+(Ga<<2)|0;Ha=f[la+(Ga<<2)>>2]|0;if((f[ka>>2]|0)>(Ha|0))f[ka>>2]=Ha;Ga=Ga+1|0}while((Ga|0)<(pa|0))}pa=ya+1|0;if(pa>>>0>=(f[sa>>2]|0)>>>0){Ua=Fa;break g}ya=pa;oa=Fa;na=f[h>>2]|0}}while(0);if(Ua<<24>>24>0){sa=0;ja=Ua;while(1){ra=(f[g>>2]|0)+(sa<<2)|0;ma=f[ea>>2]|0;if((ma|0)==(f[fa>>2]|0)){Ri(ga,ra);Va=b[k>>0]|0}else{f[ma>>2]=f[ra>>2];f[ea>>2]=ma+4;Va=ja}sa=sa+1|0;if((sa|0)>=(Va<<24>>24|0))break;else ja=Va}}ja=f[h>>2]|0;if(ja|0){sa=f[ba>>2]|0;if((sa|0)!=(ja|0))f[ba>>2]=sa+(~((sa+-4-ja|0)>>>2)<<2);Oq(ja)}ja=f[g>>2]|0;if(ja|0){sa=f[_>>2]|0;if((sa|0)!=(ja|0))f[_>>2]=sa+(~((sa+-4-ja|0)>>>2)<<2);Oq(ja)}break}default:{}}ja=ha+1|0;sa=f[o>>2]|0;if(ja>>>0>=(f[p>>2]|0)-sa>>2>>>0){v=1;wa=169;break}k=f[j>>2]|0;ha=ja;ia=sa;t=f[k+4>>2]|0;l=k}if((wa|0)==48)aq(h);else if((wa|0)==103)aq(Ra);else if((wa|0)==137)aq(g);else if((wa|0)==144)aq(h);else if((wa|0)==169){u=c;return v|0}return 0}function hb(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,Y=0,Z=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0,Ha=0,Ia=0,Ja=0,Ka=0,La=0,Ma=0,Na=0,Oa=0,Pa=0,Qa=0,Ra=0;d=u;u=u+32|0;e=d;g=a+8|0;h=f[g>>2]|0;f[e>>2]=0;i=e+4|0;f[i>>2]=0;f[e+8>>2]=0;do if(h)if(h>>>0>1073741823)aq(e);else{j=h<<2;k=ln(j)|0;f[e>>2]=k;l=k+(h<<2)|0;f[e+8>>2]=l;sj(k|0,0,j|0)|0;f[i>>2]=l;m=l;n=k;break}else{m=0;n=0}while(0);k=a+128|0;l=f[k>>2]|0;j=f[l>>2]|0;o=l+4|0;if(!j){p=l+8|0;q=n;r=m;s=h}else{h=f[o>>2]|0;if((h|0)!=(j|0))f[o>>2]=h+(~((h+-4-j|0)>>>2)<<2);Oq(j);j=l+8|0;f[j>>2]=0;f[o>>2]=0;f[l>>2]=0;p=j;q=f[e>>2]|0;r=f[i>>2]|0;s=f[g>>2]|0}f[l>>2]=q;f[o>>2]=r;f[p>>2]=f[e+8>>2];f[e>>2]=0;p=e+4|0;f[p>>2]=0;f[e+8>>2]=0;do if(s)if(s>>>0>1073741823)aq(e);else{r=s<<2;o=ln(r)|0;f[e>>2]=o;q=o+(s<<2)|0;f[e+8>>2]=q;sj(o|0,0,r|0)|0;f[p>>2]=q;t=q;v=o;break}else{t=0;v=0}while(0);s=a+140|0;o=f[s>>2]|0;q=f[o>>2]|0;r=o+4|0;if(!q){w=o+8|0;x=v;y=t}else{t=f[r>>2]|0;if((t|0)!=(q|0))f[r>>2]=t+(~((t+-4-q|0)>>>2)<<2);Oq(q);q=o+8|0;f[q>>2]=0;f[r>>2]=0;f[o>>2]=0;w=q;x=f[e>>2]|0;y=f[p>>2]|0}f[o>>2]=x;f[r>>2]=y;f[w>>2]=f[e+8>>2];w=f[b>>2]|0;y=b+4|0;r=f[y>>2]|0;x=f[y+4>>2]|0;y=f[c>>2]|0;o=c+4|0;p=f[o>>2]|0;q=f[o+4>>2]|0;f[e>>2]=0;f[e+4>>2]=0;f[e+8>>2]=0;f[e+12>>2]=0;f[e+16>>2]=0;f[e+20>>2]=0;o=e+8|0;t=e+4|0;v=e+16|0;l=e+20|0;i=r;Pc(e);j=f[t>>2]|0;h=(f[l>>2]|0)+(f[v>>2]|0)|0;if((f[o>>2]|0)==(j|0))z=0;else z=(f[j+(((h>>>0)/113|0)<<2)>>2]|0)+(((h>>>0)%113|0)*36|0)|0;f[z>>2]=w;h=z+4|0;f[h>>2]=r;f[h+4>>2]=x;f[z+12>>2]=y;h=z+16|0;f[h>>2]=p;f[h+4>>2]=q;f[z+24>>2]=0;f[z+28>>2]=y-w;f[z+32>>2]=0;z=(f[l>>2]|0)+1|0;f[l>>2]=z;if(z|0){w=a+116|0;y=a+48|0;h=a+44|0;j=a+36|0;m=a+40|0;n=a+32|0;A=b+8|0;B=c+8|0;C=a+28|0;D=a+24|0;E=a+16|0;F=a+20|0;G=a+12|0;H=a+88|0;I=a+84|0;J=a+76|0;K=a+80|0;L=a+72|0;M=i+4|0;N=i+24|0;O=i+24|0;P=p+24|0;Q=z;while(1){z=f[v>>2]|0;R=Q+-1|0;S=R+z|0;T=f[t>>2]|0;U=f[T+(((S>>>0)/113|0)<<2)>>2]|0;V=(S>>>0)%113|0;S=f[U+(V*36|0)>>2]|0;W=f[U+(V*36|0)+12>>2]|0;Y=f[U+(V*36|0)+24>>2]|0;Z=f[U+(V*36|0)+32>>2]|0;f[l>>2]=R;R=f[o>>2]|0;V=R-T>>2;if((1-Q-z+((V|0)==0?0:(V*113|0)+-1|0)|0)>>>0>225){Oq(f[R+-4>>2]|0);f[o>>2]=(f[o>>2]|0)+-4}f[b>>2]=S;f[c>>2]=W;R=f[k>>2]|0;V=((f[g>>2]|0)+-1|0)==(Y|0)?0:Y+1|0;Y=(f[s>>2]|0)+(Z*12|0)|0;z=W-S|0;T=(f[a>>2]|0)-(f[(f[Y>>2]|0)+(V<<2)>>2]|0)|0;a:do if(T){if(z>>>0<3){U=f[w>>2]|0;f[U>>2]=V;$=f[g>>2]|0;if($>>>0>1){aa=1;ba=$;ca=V;while(1){ca=(ca|0)==(ba+-1|0)?0:ca+1|0;f[U+(aa<<2)>>2]=ca;aa=aa+1|0;da=f[g>>2]|0;if(aa>>>0>=da>>>0){ea=da;break}else ba=da}}else ea=$;if(!z){fa=99;break}else{ga=0;ha=ea}while(1){ba=(f[N>>2]|0)+((X(f[M>>2]|0,S+ga|0)|0)<<2)|0;if(!ha)ia=0;else{aa=0;do{ca=f[(f[w>>2]|0)+(aa<<2)>>2]|0;U=(f[a>>2]|0)-(f[(f[Y>>2]|0)+(ca<<2)>>2]|0)|0;do if(U|0){da=f[y>>2]|0;ja=32-da|0;ka=32-U|0;la=f[ba+(ca<<2)>>2]<(ja|0)){ma=la>>>ka;ka=U-ja|0;f[y>>2]=ka;ja=f[h>>2]|ma>>>ka;f[h>>2]=ja;ka=f[j>>2]|0;if((ka|0)==(f[m>>2]|0))Ri(n,h);else{f[ka>>2]=ja;f[j>>2]=ka+4}f[h>>2]=ma<<32-(f[y>>2]|0);break}ma=f[h>>2]|la>>>da;f[h>>2]=ma;la=da+U|0;f[y>>2]=la;if((la|0)!=32)break;la=f[j>>2]|0;if((la|0)==(f[m>>2]|0))Ri(n,h);else{f[la>>2]=ma;f[j>>2]=la+4}f[h>>2]=0;f[y>>2]=0}while(0);aa=aa+1|0;U=f[g>>2]|0}while(aa>>>0>>0);ia=U}ga=ga+1|0;if(ga>>>0>=z>>>0){fa=99;break a}else ha=ia}}$=Z+1|0;Ig(R+($*12|0)|0,f[R+(Z*12|0)>>2]|0,f[R+(Z*12|0)+4>>2]|0);aa=(f[(f[k>>2]|0)+($*12|0)>>2]|0)+(V<<2)|0;ba=(f[aa>>2]|0)+(1<>2]=ba;aa=f[A>>2]|0;U=f[B>>2]|0;b:do if((W|0)==(S|0))na=S;else{ca=f[O>>2]|0;if(!aa){if((f[ca+(V<<2)>>2]|0)>>>0>>0){na=W;break}else{oa=W;pa=S}while(1){la=oa;do{la=la+-1|0;if((pa|0)==(la|0)){na=pa;break b}ma=(f[P>>2]|0)+((X(la,U)|0)<<2)+(V<<2)|0}while((f[ma>>2]|0)>>>0>=ba>>>0);pa=pa+1|0;if((pa|0)==(la|0)){na=la;break b}else oa=la}}else{qa=W;ra=S}while(1){ma=ra;while(1){sa=ca+((X(ma,aa)|0)<<2)|0;if((f[sa+(V<<2)>>2]|0)>>>0>=ba>>>0){ta=qa;break}da=ma+1|0;if((da|0)==(qa|0)){na=qa;break b}else ma=da}while(1){ta=ta+-1|0;if((ma|0)==(ta|0)){na=ma;break b}ua=(f[P>>2]|0)+((X(ta,U)|0)<<2)|0;if((f[ua+(V<<2)>>2]|0)>>>0>>0){va=0;break}}do{la=sa+(va<<2)|0;da=ua+(va<<2)|0;ka=f[la>>2]|0;f[la>>2]=f[da>>2];f[da>>2]=ka;va=va+1|0}while((va|0)!=(aa|0));ra=ma+1|0;if((ra|0)==(ta|0)){na=ta;break}else qa=ta}}while(0);ba=(_(z|0)|0)^31;U=na-S|0;ca=W-na|0;ka=U>>>0>>0;if((U|0)!=(ca|0)){da=f[H>>2]|0;if(ka)f[I>>2]=f[I>>2]|1<<31-da;la=da+1|0;f[H>>2]=la;if((la|0)==32){la=f[J>>2]|0;if((la|0)==(f[K>>2]|0))Ri(L,I);else{f[la>>2]=f[I>>2];f[J>>2]=la+4}f[H>>2]=0;f[I>>2]=0}}la=z>>>1;do if(ka){da=f[C>>2]|0;ja=32-da|0;wa=32-ba|0;xa=la-U<(ja|0)){ya=xa>>>wa;wa=ba-ja|0;f[C>>2]=wa;ja=f[D>>2]|ya>>>wa;f[D>>2]=ja;wa=f[E>>2]|0;if((wa|0)==(f[F>>2]|0))Ri(G,D);else{f[wa>>2]=ja;f[E>>2]=wa+4}f[D>>2]=ya<<32-(f[C>>2]|0);break}ya=f[D>>2]|xa>>>da;f[D>>2]=ya;xa=da+ba|0;f[C>>2]=xa;if((xa|0)==32){xa=f[E>>2]|0;if((xa|0)==(f[F>>2]|0))Ri(G,D);else{f[xa>>2]=ya;f[E>>2]=xa+4}f[D>>2]=0;f[C>>2]=0}}else{xa=f[C>>2]|0;ya=32-xa|0;da=32-ba|0;wa=la-ca<(ya|0)){ja=wa>>>da;da=ba-ya|0;f[C>>2]=da;ya=f[D>>2]|ja>>>da;f[D>>2]=ya;da=f[E>>2]|0;if((da|0)==(f[F>>2]|0))Ri(G,D);else{f[da>>2]=ya;f[E>>2]=da+4}f[D>>2]=ja<<32-(f[C>>2]|0);break}ja=f[D>>2]|wa>>>xa;f[D>>2]=ja;wa=xa+ba|0;f[C>>2]=wa;if((wa|0)==32){wa=f[E>>2]|0;if((wa|0)==(f[F>>2]|0))Ri(G,D);else{f[wa>>2]=ja;f[E>>2]=wa+4}f[D>>2]=0;f[C>>2]=0}}while(0);ba=f[s>>2]|0;la=f[ba+(Z*12|0)>>2]|0;ka=la+(V<<2)|0;f[ka>>2]=(f[ka>>2]|0)+1;Ig(ba+($*12|0)|0,la,f[ba+(Z*12|0)+4>>2]|0);if((na|0)!=(S|0)){ba=f[o>>2]|0;la=f[t>>2]|0;ka=ba-la>>2;wa=f[v>>2]|0;ja=f[l>>2]|0;if((((ka|0)==0?0:(ka*113|0)+-1|0)|0)==(ja+wa|0)){Pc(e);za=f[v>>2]|0;Aa=f[l>>2]|0;Ba=f[o>>2]|0;Ca=f[t>>2]|0}else{za=wa;Aa=ja;Ba=ba;Ca=la}la=Aa+za|0;if((Ba|0)==(Ca|0))Da=0;else Da=(f[Ca+(((la>>>0)/113|0)<<2)>>2]|0)+(((la>>>0)%113|0)*36|0)|0;f[Da>>2]=S;la=Da+4|0;f[la>>2]=r;f[la+4>>2]=x;f[Da+12>>2]=na;f[Da+16>>2]=i;f[Da+20>>2]=aa;f[Da+24>>2]=V;f[Da+28>>2]=U;f[Da+32>>2]=Z;f[l>>2]=(f[l>>2]|0)+1}if((W|0)!=(na|0)){la=f[o>>2]|0;ba=f[t>>2]|0;ja=la-ba>>2;wa=f[v>>2]|0;ka=f[l>>2]|0;if((((ja|0)==0?0:(ja*113|0)+-1|0)|0)==(ka+wa|0)){Pc(e);Ea=f[v>>2]|0;Fa=f[l>>2]|0;Ga=f[o>>2]|0;Ha=f[t>>2]|0}else{Ea=wa;Fa=ka;Ga=la;Ha=ba}ba=Fa+Ea|0;if((Ga|0)==(Ha|0))Ia=0;else Ia=(f[Ha+(((ba>>>0)/113|0)<<2)>>2]|0)+(((ba>>>0)%113|0)*36|0)|0;f[Ia>>2]=na;f[Ia+4>>2]=i;f[Ia+8>>2]=aa;f[Ia+12>>2]=W;ba=Ia+16|0;f[ba>>2]=p;f[ba+4>>2]=q;f[Ia+24>>2]=V;f[Ia+28>>2]=ca;f[Ia+32>>2]=$;ba=(f[l>>2]|0)+1|0;f[l>>2]=ba;Ja=ba}else fa=99}else fa=99;while(0);if((fa|0)==99){fa=0;Ja=f[l>>2]|0}if(!Ja)break;else Q=Ja}}Ja=f[t>>2]|0;Q=f[v>>2]|0;Ia=Ja+(((Q>>>0)/113|0)<<2)|0;q=f[o>>2]|0;p=q;i=Ja;if((q|0)==(Ja|0)){Ka=0;La=0}else{na=(f[Ia>>2]|0)+(((Q>>>0)%113|0)*36|0)|0;Ka=na;La=na}na=Ia;Ia=La;c:while(1){La=Ia;do{Q=La;if((Ka|0)==(Q|0))break c;La=Q+36|0}while((La-(f[na>>2]|0)|0)!=4068);La=na+4|0;na=La;Ia=f[La>>2]|0}f[l>>2]=0;l=p-i>>2;if(l>>>0>2){i=Ja;do{Oq(f[i>>2]|0);i=(f[t>>2]|0)+4|0;f[t>>2]=i;Ma=f[o>>2]|0;Na=Ma-i>>2}while(Na>>>0>2);Oa=Na;Pa=i;Qa=Ma}else{Oa=l;Pa=Ja;Qa=q}switch(Oa|0){case 1:{Ra=56;fa=113;break}case 2:{Ra=113;fa=113;break}default:{}}if((fa|0)==113)f[v>>2]=Ra;if((Pa|0)!=(Qa|0)){Ra=Pa;do{Oq(f[Ra>>2]|0);Ra=Ra+4|0}while((Ra|0)!=(Qa|0));Qa=f[t>>2]|0;t=f[o>>2]|0;if((t|0)!=(Qa|0))f[o>>2]=t+(~((t+-4-Qa|0)>>>2)<<2)}Qa=f[e>>2]|0;if(!Qa){u=d;return}Oq(Qa);u=d;return}function ib(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,Y=0,Z=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0,Ha=0,Ia=0,Ja=0,Ka=0,La=0,Ma=0,Na=0;d=u;u=u+48|0;e=d+36|0;g=d+24|0;h=d;i=a+8|0;j=f[i>>2]|0;f[e>>2]=0;k=e+4|0;f[k>>2]=0;f[e+8>>2]=0;do if(j)if(j>>>0>1073741823)aq(e);else{l=j<<2;m=ln(l)|0;f[e>>2]=m;n=m+(j<<2)|0;f[e+8>>2]=n;sj(m|0,0,l|0)|0;f[k>>2]=n;o=n;p=m;break}else{o=0;p=0}while(0);m=a+1164|0;n=f[m>>2]|0;l=f[n>>2]|0;q=n+4|0;if(!l){r=n+8|0;s=p;t=o;v=j}else{j=f[q>>2]|0;if((j|0)!=(l|0))f[q>>2]=j+(~((j+-4-l|0)>>>2)<<2);Oq(l);l=n+8|0;f[l>>2]=0;f[q>>2]=0;f[n>>2]=0;r=l;s=f[e>>2]|0;t=f[k>>2]|0;v=f[i>>2]|0}f[n>>2]=s;f[q>>2]=t;f[r>>2]=f[e+8>>2];f[e>>2]=0;r=e+4|0;f[r>>2]=0;f[e+8>>2]=0;do if(v)if(v>>>0>1073741823)aq(e);else{t=v<<2;q=ln(t)|0;f[e>>2]=q;s=q+(v<<2)|0;f[e+8>>2]=s;sj(q|0,0,t|0)|0;f[r>>2]=s;w=s;x=q;break}else{w=0;x=0}while(0);v=a+1176|0;q=f[v>>2]|0;s=f[q>>2]|0;t=q+4|0;if(!s){y=q+8|0;z=x;A=w}else{w=f[t>>2]|0;if((w|0)!=(s|0))f[t>>2]=w+(~((w+-4-s|0)>>>2)<<2);Oq(s);s=q+8|0;f[s>>2]=0;f[t>>2]=0;f[q>>2]=0;y=s;z=f[e>>2]|0;A=f[r>>2]|0}f[q>>2]=z;f[t>>2]=A;f[y>>2]=f[e+8>>2];y=f[b>>2]|0;A=b+4|0;t=f[A>>2]|0;z=f[A+4>>2]|0;A=f[c>>2]|0;q=c+4|0;r=f[q>>2]|0;s=f[q+4>>2]|0;f[h>>2]=0;f[h+4>>2]=0;f[h+8>>2]=0;f[h+12>>2]=0;f[h+16>>2]=0;f[h+20>>2]=0;q=h+8|0;w=h+4|0;x=h+16|0;n=h+20|0;k=t;Pc(h);l=f[w>>2]|0;j=(f[n>>2]|0)+(f[x>>2]|0)|0;if((f[q>>2]|0)==(l|0))B=0;else B=(f[l+(((j>>>0)/113|0)<<2)>>2]|0)+(((j>>>0)%113|0)*36|0)|0;f[B>>2]=y;j=B+4|0;f[j>>2]=t;f[j+4>>2]=z;f[B+12>>2]=A;j=B+16|0;f[j>>2]=r;f[j+4>>2]=s;f[B+24>>2]=0;f[B+28>>2]=A-y;f[B+32>>2]=0;B=(f[n>>2]|0)+1|0;f[n>>2]=B;if(B|0){y=a+1152|0;A=a+1084|0;j=a+1080|0;l=a+1072|0;o=a+1076|0;p=a+1068|0;C=b+8|0;D=c+8|0;E=a+1124|0;F=a+1120|0;G=a+1112|0;H=a+1116|0;I=a+1108|0;J=k+4|0;K=k+24|0;L=k+24|0;M=r+24|0;N=B;while(1){B=f[x>>2]|0;O=N+-1|0;P=O+B|0;Q=f[w>>2]|0;R=f[Q+(((P>>>0)/113|0)<<2)>>2]|0;S=(P>>>0)%113|0;P=f[R+(S*36|0)>>2]|0;T=f[R+(S*36|0)+12>>2]|0;U=f[R+(S*36|0)+24>>2]|0;V=f[R+(S*36|0)+32>>2]|0;f[n>>2]=O;O=f[q>>2]|0;S=O-Q>>2;if((1-N-B+((S|0)==0?0:(S*113|0)+-1|0)|0)>>>0>225){Oq(f[O+-4>>2]|0);f[q>>2]=(f[q>>2]|0)+-4}f[b>>2]=P;f[c>>2]=T;O=f[m>>2]|0;S=O+(V*12|0)|0;B=(f[v>>2]|0)+(V*12|0)|0;f[g>>2]=f[b>>2];f[g+4>>2]=f[b+4>>2];f[g+8>>2]=f[b+8>>2];f[e>>2]=f[c>>2];f[e+4>>2]=f[c+4>>2];f[e+8>>2]=f[c+8>>2];Q=Rd(a,g,e,S,B,U)|0;U=T-P|0;R=(f[a>>2]|0)-(f[(f[B>>2]|0)+(Q<<2)>>2]|0)|0;a:do if(R){if(U>>>0<3){W=f[y>>2]|0;f[W>>2]=Q;Y=f[i>>2]|0;if(Y>>>0>1){Z=1;$=Y;aa=Q;while(1){aa=(aa|0)==($+-1|0)?0:aa+1|0;f[W+(Z<<2)>>2]=aa;Z=Z+1|0;ba=f[i>>2]|0;if(Z>>>0>=ba>>>0){ca=ba;break}else $=ba}}else ca=Y;if(!U){da=87;break}else{ea=0;fa=ca}while(1){$=(f[K>>2]|0)+((X(f[J>>2]|0,P+ea|0)|0)<<2)|0;if(!fa)ga=0;else{Z=0;do{aa=f[(f[y>>2]|0)+(Z<<2)>>2]|0;W=(f[a>>2]|0)-(f[(f[B>>2]|0)+(aa<<2)>>2]|0)|0;do if(W|0){ba=f[A>>2]|0;ha=32-ba|0;ia=32-W|0;ja=f[$+(aa<<2)>>2]<(ha|0)){ka=ja>>>ia;ia=W-ha|0;f[A>>2]=ia;ha=f[j>>2]|ka>>>ia;f[j>>2]=ha;ia=f[l>>2]|0;if((ia|0)==(f[o>>2]|0))Ri(p,j);else{f[ia>>2]=ha;f[l>>2]=ia+4}f[j>>2]=ka<<32-(f[A>>2]|0);break}ka=f[j>>2]|ja>>>ba;f[j>>2]=ka;ja=ba+W|0;f[A>>2]=ja;if((ja|0)!=32)break;ja=f[l>>2]|0;if((ja|0)==(f[o>>2]|0))Ri(p,j);else{f[ja>>2]=ka;f[l>>2]=ja+4}f[j>>2]=0;f[A>>2]=0}while(0);Z=Z+1|0;W=f[i>>2]|0}while(Z>>>0>>0);ga=W}ea=ea+1|0;if(ea>>>0>=U>>>0){da=87;break a}else fa=ga}}Y=V+1|0;Z=f[m>>2]|0;$=Z+(Y*12|0)|0;if(($|0)==(S|0))la=Z;else{Ig($,f[S>>2]|0,f[O+(V*12|0)+4>>2]|0);la=f[m>>2]|0}$=(f[la+(Y*12|0)>>2]|0)+(Q<<2)|0;Z=(f[$>>2]|0)+(1<>2]=Z;$=f[C>>2]|0;W=f[D>>2]|0;b:do if((T|0)==(P|0))ma=P;else{aa=f[L>>2]|0;if(!$){if((f[aa+(Q<<2)>>2]|0)>>>0>>0){ma=T;break}else{na=T;oa=P}while(1){ja=na;do{ja=ja+-1|0;if((oa|0)==(ja|0)){ma=oa;break b}ka=(f[M>>2]|0)+((X(ja,W)|0)<<2)+(Q<<2)|0}while((f[ka>>2]|0)>>>0>=Z>>>0);oa=oa+1|0;if((oa|0)==(ja|0)){ma=ja;break b}else na=ja}}else{pa=T;qa=P}while(1){ka=qa;while(1){ra=aa+((X(ka,$)|0)<<2)|0;if((f[ra+(Q<<2)>>2]|0)>>>0>=Z>>>0){sa=pa;break}ba=ka+1|0;if((ba|0)==(pa|0)){ma=pa;break b}else ka=ba}while(1){sa=sa+-1|0;if((ka|0)==(sa|0)){ma=ka;break b}ta=(f[M>>2]|0)+((X(sa,W)|0)<<2)|0;if((f[ta+(Q<<2)>>2]|0)>>>0>>0){ua=0;break}}do{ja=ra+(ua<<2)|0;ba=ta+(ua<<2)|0;ia=f[ja>>2]|0;f[ja>>2]=f[ba>>2];f[ba>>2]=ia;ua=ua+1|0}while((ua|0)!=($|0));qa=ka+1|0;if((qa|0)==(sa|0)){ma=sa;break}else pa=sa}}while(0);Z=(_(U|0)|0)^31;W=ma-P|0;aa=T-ma|0;ia=W>>>0>>0;if((W|0)!=(aa|0)){ba=f[E>>2]|0;if(ia)f[F>>2]=f[F>>2]|1<<31-ba;ja=ba+1|0;f[E>>2]=ja;if((ja|0)==32){ja=f[G>>2]|0;if((ja|0)==(f[H>>2]|0))Ri(I,F);else{f[ja>>2]=f[F>>2];f[G>>2]=ja+4}f[E>>2]=0;f[F>>2]=0}}ja=U>>>1;if(ia){ia=ja-W|0;if(Z|0){ba=0;ha=1<>>1}}}else{ha=ja-aa|0;if(Z|0){ba=0;ia=1<>>1}}}ia=f[v>>2]|0;Z=f[ia+(V*12|0)>>2]|0;ba=Z+(Q<<2)|0;f[ba>>2]=(f[ba>>2]|0)+1;Ig(ia+(Y*12|0)|0,Z,f[ia+(V*12|0)+4>>2]|0);if((ma|0)!=(P|0)){ia=f[q>>2]|0;Z=f[w>>2]|0;ba=ia-Z>>2;ha=f[x>>2]|0;ja=f[n>>2]|0;if((((ba|0)==0?0:(ba*113|0)+-1|0)|0)==(ja+ha|0)){Pc(h);va=f[x>>2]|0;wa=f[n>>2]|0;xa=f[q>>2]|0;ya=f[w>>2]|0}else{va=ha;wa=ja;xa=ia;ya=Z}Z=wa+va|0;if((xa|0)==(ya|0))za=0;else za=(f[ya+(((Z>>>0)/113|0)<<2)>>2]|0)+(((Z>>>0)%113|0)*36|0)|0;f[za>>2]=P;Z=za+4|0;f[Z>>2]=t;f[Z+4>>2]=z;f[za+12>>2]=ma;f[za+16>>2]=k;f[za+20>>2]=$;f[za+24>>2]=Q;f[za+28>>2]=W;f[za+32>>2]=V;f[n>>2]=(f[n>>2]|0)+1}if((T|0)!=(ma|0)){Z=f[q>>2]|0;ia=f[w>>2]|0;ja=Z-ia>>2;ha=f[x>>2]|0;ba=f[n>>2]|0;if((((ja|0)==0?0:(ja*113|0)+-1|0)|0)==(ba+ha|0)){Pc(h);Aa=f[x>>2]|0;Ba=f[n>>2]|0;Ca=f[q>>2]|0;Da=f[w>>2]|0}else{Aa=ha;Ba=ba;Ca=Z;Da=ia}ia=Ba+Aa|0;if((Ca|0)==(Da|0))Ea=0;else Ea=(f[Da+(((ia>>>0)/113|0)<<2)>>2]|0)+(((ia>>>0)%113|0)*36|0)|0;f[Ea>>2]=ma;f[Ea+4>>2]=k;f[Ea+8>>2]=$;f[Ea+12>>2]=T;ia=Ea+16|0;f[ia>>2]=r;f[ia+4>>2]=s;f[Ea+24>>2]=Q;f[Ea+28>>2]=aa;f[Ea+32>>2]=Y;ia=(f[n>>2]|0)+1|0;f[n>>2]=ia;Fa=ia}else da=87}else da=87;while(0);if((da|0)==87){da=0;Fa=f[n>>2]|0}if(!Fa)break;else N=Fa}}Fa=f[w>>2]|0;N=f[x>>2]|0;Ea=Fa+(((N>>>0)/113|0)<<2)|0;s=f[q>>2]|0;r=s;k=Fa;if((s|0)==(Fa|0)){Ga=0;Ha=0}else{ma=(f[Ea>>2]|0)+(((N>>>0)%113|0)*36|0)|0;Ga=ma;Ha=ma}ma=Ea;Ea=Ha;c:while(1){Ha=Ea;do{N=Ha;if((Ga|0)==(N|0))break c;Ha=N+36|0}while((Ha-(f[ma>>2]|0)|0)!=4068);Ha=ma+4|0;ma=Ha;Ea=f[Ha>>2]|0}f[n>>2]=0;n=r-k>>2;if(n>>>0>2){k=Fa;do{Oq(f[k>>2]|0);k=(f[w>>2]|0)+4|0;f[w>>2]=k;Ia=f[q>>2]|0;Ja=Ia-k>>2}while(Ja>>>0>2);Ka=Ja;La=k;Ma=Ia}else{Ka=n;La=Fa;Ma=s}switch(Ka|0){case 1:{Na=56;da=101;break}case 2:{Na=113;da=101;break}default:{}}if((da|0)==101)f[x>>2]=Na;if((La|0)!=(Ma|0)){Na=La;do{Oq(f[Na>>2]|0);Na=Na+4|0}while((Na|0)!=(Ma|0));Ma=f[w>>2]|0;w=f[q>>2]|0;if((w|0)!=(Ma|0))f[q>>2]=w+(~((w+-4-Ma|0)>>>2)<<2)}Ma=f[h>>2]|0;if(!Ma){u=d;return}Oq(Ma);u=d;return}function jb(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,Y=0,Z=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0,Ha=0,Ia=0,Ja=0,Ka=0,La=0;d=u;u=u+1424|0;e=d+1408|0;g=d+1396|0;h=d+1420|0;i=d+1200|0;j=d+12|0;k=d;l=d+1384|0;m=d+1372|0;n=d+1360|0;o=d+1348|0;p=d+1336|0;q=d+1324|0;r=d+1312|0;s=d+1300|0;t=d+1288|0;v=d+1276|0;w=d+1264|0;x=d+1252|0;y=d+1240|0;z=d+1228|0;A=a+28|0;B=10-(mi(f[(f[A>>2]|0)+48>>2]|0)|0)|0;C=(B|0)<6?B:6;b[h>>0]=C;if((C&255|0)==6?(f[a+72>>2]|0)>15:0)b[h>>0]=5;C=c+16|0;B=f[C+4>>2]|0;if(!((B|0)>0|(B|0)==0&(f[C>>2]|0)>>>0>0)){f[g>>2]=f[c+4>>2];f[e>>2]=f[g>>2];Me(c,e,h,h+1|0)|0}C=f[A>>2]|0;B=f[(f[C+4>>2]|0)+80>>2]|0;D=a+72|0;E=f[D>>2]|0;f[i>>2]=B;F=i+4|0;f[F>>2]=E;f[i+8>>2]=E<<2;G=i+12|0;H=X(E,B)|0;f[G>>2]=0;J=i+16|0;f[J>>2]=0;f[i+20>>2]=0;do if(H)if(H>>>0>1073741823)aq(G);else{K=H<<2;L=ln(K)|0;f[G>>2]=L;M=L+(H<<2)|0;f[i+20>>2]=M;sj(L|0,0,K|0)|0;f[J>>2]=M;N=L;break}else N=0;while(0);H=i+24|0;f[H>>2]=N;G=a+4|0;L=a+8|0;M=f[G>>2]|0;a:do if((f[L>>2]|0)!=(M|0)){K=j+4|0;O=j+8|0;P=j+8|0;Q=(B|0)==0;R=j+4|0;S=j+8|0;T=k+4|0;U=k+8|0;V=k+8|0;W=a+48|0;Y=j+8|0;Z=a+60|0;$=0;aa=0;ba=0;ca=0;da=M;ea=C;b:while(1){fa=f[(f[(f[ea+4>>2]|0)+8>>2]|0)+(f[da+(ca<<2)>>2]<<2)>>2]|0;switch(f[fa+28>>2]|0){case 1:case 3:case 5:case 2:case 4:case 6:{ga=fa;ha=aa;break}case 9:{ga=f[(f[Z>>2]|0)+(aa<<2)>>2]|0;ha=aa+1|0;break}default:{ia=0;break a}}if(!ga){ia=0;break a}c:do switch(f[ga+28>>2]|0){case 6:{if(Q){ja=ba;ka=ga+24|0;break c}fa=ga+84|0;la=ga+68|0;ma=ga+48|0;na=ga+40|0;oa=ga+24|0;pa=0;do{if(!(b[fa>>0]|0))qa=f[(f[la>>2]|0)+(pa<<2)>>2]|0;else qa=pa;ra=ma;sa=f[ra>>2]|0;ta=f[ra+4>>2]|0;ra=na;ua=un(f[ra>>2]|0,f[ra+4>>2]|0,qa|0,0)|0;ra=Vn(ua|0,I|0,sa|0,ta|0)|0;kh((f[H>>2]|0)+((X(f[F>>2]|0,pa)|0)<<2)+($<<2)|0,(f[f[ga>>2]>>2]|0)+ra|0,b[oa>>0]<<2|0)|0;pa=pa+1|0}while((pa|0)!=(B|0));ja=ba;ka=oa;break}case 1:case 3:case 5:{oa=ga+24|0;pa=b[oa>>0]|0;na=pa<<24>>24;f[j>>2]=0;f[R>>2]=0;f[S>>2]=0;if(!(pa<<24>>24))va=0;else{if(pa<<24>>24<0){wa=24;break b}pa=na<<2;ma=ln(pa)|0;f[j>>2]=ma;la=ma+(na<<2)|0;f[Y>>2]=la;sj(ma|0,0,pa|0)|0;f[R>>2]=la;va=b[oa>>0]|0}la=va<<24>>24;f[k>>2]=0;f[T>>2]=0;f[U>>2]=0;if(!(va<<24>>24)){xa=0;ya=0}else{if(va<<24>>24<0){wa=30;break b}pa=la<<2;ma=ln(pa)|0;f[k>>2]=ma;na=ma+(la<<2)|0;f[V>>2]=na;sj(ma|0,0,pa|0)|0;f[T>>2]=na;xa=ma;ya=ma}if(Q){za=ya;Aa=xa}else{ma=ga+84|0;na=ga+68|0;pa=0;do{if(!(b[ma>>0]|0))Ba=f[(f[na>>2]|0)+(pa<<2)>>2]|0;else Ba=pa;la=f[j>>2]|0;f[g>>2]=Ba;fa=b[oa>>0]|0;f[e>>2]=f[g>>2];Qb(ga,e,fa,la)|0;la=b[oa>>0]|0;fa=la<<24>>24;if(la<<24>>24>0){la=f[j>>2]|0;ra=f[W>>2]|0;ta=f[k>>2]|0;sa=0;do{f[ta+(sa<<2)>>2]=(f[la+(sa<<2)>>2]|0)-(f[ra+(sa+ba<<2)>>2]|0);sa=sa+1|0}while((sa|0)<(fa|0));Ca=ta}else Ca=f[k>>2]|0;kh((f[H>>2]|0)+((X(f[F>>2]|0,pa)|0)<<2)+($<<2)|0,Ca|0,fa<<2|0)|0;pa=pa+1|0}while(pa>>>0>>0);pa=f[k>>2]|0;za=pa;Aa=pa}pa=ba+(b[oa>>0]|0)|0;if(za|0){na=f[T>>2]|0;if((na|0)!=(za|0))f[T>>2]=na+(~((na+-4-za|0)>>>2)<<2);Oq(Aa)}na=f[j>>2]|0;if(na|0){ma=f[R>>2]|0;if((ma|0)!=(na|0))f[R>>2]=ma+(~((ma+-4-na|0)>>>2)<<2);Oq(na)}ja=pa;ka=oa;break}default:{pa=ga+24|0;na=b[pa>>0]|0;ma=na<<24>>24;f[j>>2]=0;f[K>>2]=0;f[O>>2]=0;if(!(na<<24>>24)){Da=0;Ea=0}else{if(na<<24>>24<0){wa=53;break b}na=ma<<2;ta=ln(na)|0;f[j>>2]=ta;sa=ta+(ma<<2)|0;f[P>>2]=sa;sj(ta|0,0,na|0)|0;f[K>>2]=sa;Da=ta;Ea=ta}if(Q){Fa=Ea;Ga=Da}else{ta=ga+84|0;sa=ga+68|0;na=0;do{if(!(b[ta>>0]|0))Ha=f[(f[sa>>2]|0)+(na<<2)>>2]|0;else Ha=na;ma=f[j>>2]|0;f[g>>2]=Ha;ra=b[pa>>0]|0;f[e>>2]=f[g>>2];Pb(ga,e,ra,ma)|0;kh((f[H>>2]|0)+((X(f[F>>2]|0,na)|0)<<2)+($<<2)|0,f[j>>2]|0,b[pa>>0]<<2|0)|0;na=na+1|0}while(na>>>0>>0);na=f[j>>2]|0;Fa=na;Ga=na}if(Fa|0){na=f[K>>2]|0;if((na|0)!=(Fa|0))f[K>>2]=na+(~((na+-4-Fa|0)>>>2)<<2);Oq(Ga)}ja=ba;ka=pa}}while(0);na=ca+1|0;sa=f[G>>2]|0;if(na>>>0>=(f[L>>2]|0)-sa>>2>>>0){wa=66;break}$=$+(b[ka>>0]|0)|0;aa=ha;ba=ja;ca=na;da=sa;ea=f[A>>2]|0}if((wa|0)==24)aq(j);else if((wa|0)==30)aq(k);else if((wa|0)==53)aq(j);else if((wa|0)==66){Ia=f[D>>2]|0;Ja=f[H>>2]|0;wa=67;break}}else{Ia=E;Ja=N;wa=67}while(0);d:do if((wa|0)==67){N=X(Ia,B)|0;if((N|0)>0){E=0;H=0;while(1){D=f[Ja+(E<<2)>>2]|0;if(!D)Ka=H;else{A=(_(D|0)|0)^31;Ka=(A|0)<(H|0)?H:A+1|0}E=E+1|0;if((E|0)>=(N|0)){La=Ka;break}else H=Ka}}else La=0;switch(b[h>>0]|0){case 6:{Ue(j,Ia);f[l>>2]=0;f[l+4>>2]=i;H=f[F>>2]|0;f[l+8>>2]=H;f[m>>2]=f[i>>2];f[m+4>>2]=i;f[m+8>>2]=H;f[k>>2]=La;f[g>>2]=f[l>>2];f[g+4>>2]=f[l+4>>2];f[g+8>>2]=f[l+8>>2];f[e>>2]=f[m>>2];f[e+4>>2]=f[m+4>>2];f[e+8>>2]=f[m+8>>2];H=sf(j,g,e,k,c)|0;Se(j);if(!H){ia=0;break d}break}case 5:{Ue(j,Ia);f[n>>2]=0;f[n+4>>2]=i;H=f[F>>2]|0;f[n+8>>2]=H;f[o>>2]=f[i>>2];f[o+4>>2]=i;f[o+8>>2]=H;f[k>>2]=La;f[g>>2]=f[n>>2];f[g+4>>2]=f[n+4>>2];f[g+8>>2]=f[n+8>>2];f[e>>2]=f[o>>2];f[e+4>>2]=f[o+4>>2];f[e+8>>2]=f[o+8>>2];H=tf(j,g,e,k,c)|0;Se(j);if(!H){ia=0;break d}break}case 4:{Ue(j,Ia);f[p>>2]=0;f[p+4>>2]=i;H=f[F>>2]|0;f[p+8>>2]=H;f[q>>2]=f[i>>2];f[q+4>>2]=i;f[q+8>>2]=H;f[k>>2]=La;f[g>>2]=f[p>>2];f[g+4>>2]=f[p+4>>2];f[g+8>>2]=f[p+8>>2];f[e>>2]=f[q>>2];f[e+4>>2]=f[q+4>>2];f[e+8>>2]=f[q+8>>2];H=tf(j,g,e,k,c)|0;Se(j);if(!H){ia=0;break d}break}case 3:{$e(j,Ia);f[r>>2]=0;f[r+4>>2]=i;H=f[F>>2]|0;f[r+8>>2]=H;f[s>>2]=f[i>>2];f[s+4>>2]=i;f[s+8>>2]=H;f[k>>2]=La;f[g>>2]=f[r>>2];f[g+4>>2]=f[r+4>>2];f[g+8>>2]=f[r+8>>2];f[e>>2]=f[s>>2];f[e+4>>2]=f[s+4>>2];f[e+8>>2]=f[s+8>>2];H=Af(j,g,e,k,c)|0;ef(j);if(!H){ia=0;break d}break}case 2:{$e(j,Ia);f[t>>2]=0;f[t+4>>2]=i;H=f[F>>2]|0;f[t+8>>2]=H;f[v>>2]=f[i>>2];f[v+4>>2]=i;f[v+8>>2]=H;f[k>>2]=La;f[g>>2]=f[t>>2];f[g+4>>2]=f[t+4>>2];f[g+8>>2]=f[t+8>>2];f[e>>2]=f[v>>2];f[e+4>>2]=f[v+4>>2];f[e+8>>2]=f[v+8>>2];H=Af(j,g,e,k,c)|0;ef(j);if(!H){ia=0;break d}break}case 1:{af(j,Ia);f[w>>2]=0;f[w+4>>2]=i;H=f[F>>2]|0;f[w+8>>2]=H;f[x>>2]=f[i>>2];f[x+4>>2]=i;f[x+8>>2]=H;f[k>>2]=La;f[g>>2]=f[w>>2];f[g+4>>2]=f[w+4>>2];f[g+8>>2]=f[w+8>>2];f[e>>2]=f[x>>2];f[e+4>>2]=f[x+4>>2];f[e+8>>2]=f[x+8>>2];H=zf(j,g,e,k,c)|0;df(j);if(!H){ia=0;break d}break}case 0:{af(j,Ia);f[y>>2]=0;f[y+4>>2]=i;H=f[F>>2]|0;f[y+8>>2]=H;f[z>>2]=f[i>>2];f[z+4>>2]=i;f[z+8>>2]=H;f[k>>2]=La;f[g>>2]=f[y>>2];f[g+4>>2]=f[y+4>>2];f[g+8>>2]=f[y+8>>2];f[e>>2]=f[z>>2];f[e+4>>2]=f[z+4>>2];f[e+8>>2]=f[z+8>>2];H=zf(j,g,e,k,c)|0;df(j);if(!H){ia=0;break d}break}default:{ia=0;break d}}ia=1}while(0);j=f[i+12>>2]|0;if(!j){u=d;return ia|0}i=f[J>>2]|0;if((i|0)!=(j|0))f[J>>2]=i+(~((i+-4-j|0)>>>2)<<2);Oq(j);u=d;return ia|0}function kb(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,Y=0,Z=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0,Ha=0,Ia=0,Ja=0;d=u;u=u+32|0;e=d;g=a+8|0;h=f[g>>2]|0;f[e>>2]=0;i=e+4|0;f[i>>2]=0;f[e+8>>2]=0;do if(h)if(h>>>0>1073741823)aq(e);else{j=h<<2;k=ln(j)|0;f[e>>2]=k;l=k+(h<<2)|0;f[e+8>>2]=l;sj(k|0,0,j|0)|0;f[i>>2]=l;m=l;n=k;break}else{m=0;n=0}while(0);k=a+1164|0;l=f[k>>2]|0;j=f[l>>2]|0;o=l+4|0;if(!j){p=l+8|0;q=n;r=m;s=h}else{h=f[o>>2]|0;if((h|0)!=(j|0))f[o>>2]=h+(~((h+-4-j|0)>>>2)<<2);Oq(j);j=l+8|0;f[j>>2]=0;f[o>>2]=0;f[l>>2]=0;p=j;q=f[e>>2]|0;r=f[i>>2]|0;s=f[g>>2]|0}f[l>>2]=q;f[o>>2]=r;f[p>>2]=f[e+8>>2];f[e>>2]=0;p=e+4|0;f[p>>2]=0;f[e+8>>2]=0;do if(s)if(s>>>0>1073741823)aq(e);else{r=s<<2;o=ln(r)|0;f[e>>2]=o;q=o+(s<<2)|0;f[e+8>>2]=q;sj(o|0,0,r|0)|0;f[p>>2]=q;t=q;v=o;break}else{t=0;v=0}while(0);s=a+1176|0;o=f[s>>2]|0;q=f[o>>2]|0;r=o+4|0;if(!q){w=o+8|0;x=v;y=t}else{t=f[r>>2]|0;if((t|0)!=(q|0))f[r>>2]=t+(~((t+-4-q|0)>>>2)<<2);Oq(q);q=o+8|0;f[q>>2]=0;f[r>>2]=0;f[o>>2]=0;w=q;x=f[e>>2]|0;y=f[p>>2]|0}f[o>>2]=x;f[r>>2]=y;f[w>>2]=f[e+8>>2];w=f[b>>2]|0;y=b+4|0;r=f[y>>2]|0;x=f[y+4>>2]|0;y=f[c>>2]|0;o=c+4|0;p=f[o>>2]|0;q=f[o+4>>2]|0;f[e>>2]=0;f[e+4>>2]=0;f[e+8>>2]=0;f[e+12>>2]=0;f[e+16>>2]=0;f[e+20>>2]=0;o=e+8|0;t=e+4|0;v=e+16|0;l=e+20|0;i=r;Pc(e);j=f[t>>2]|0;h=(f[l>>2]|0)+(f[v>>2]|0)|0;if((f[o>>2]|0)==(j|0))z=0;else z=(f[j+(((h>>>0)/113|0)<<2)>>2]|0)+(((h>>>0)%113|0)*36|0)|0;f[z>>2]=w;h=z+4|0;f[h>>2]=r;f[h+4>>2]=x;f[z+12>>2]=y;h=z+16|0;f[h>>2]=p;f[h+4>>2]=q;f[z+24>>2]=0;f[z+28>>2]=y-w;f[z+32>>2]=0;z=(f[l>>2]|0)+1|0;f[l>>2]=z;if(z|0){w=a+1152|0;y=a+1084|0;h=a+1080|0;j=a+1072|0;m=a+1076|0;n=a+1068|0;A=b+8|0;B=c+8|0;C=a+1124|0;D=a+1120|0;E=a+1112|0;F=a+1116|0;G=a+1108|0;H=i+4|0;I=i+24|0;J=i+24|0;K=p+24|0;L=z;while(1){z=f[v>>2]|0;M=L+-1|0;N=M+z|0;O=f[t>>2]|0;P=f[O+(((N>>>0)/113|0)<<2)>>2]|0;Q=(N>>>0)%113|0;N=f[P+(Q*36|0)>>2]|0;R=f[P+(Q*36|0)+12>>2]|0;S=f[P+(Q*36|0)+24>>2]|0;T=f[P+(Q*36|0)+32>>2]|0;f[l>>2]=M;M=f[o>>2]|0;Q=M-O>>2;if((1-L-z+((Q|0)==0?0:(Q*113|0)+-1|0)|0)>>>0>225){Oq(f[M+-4>>2]|0);f[o>>2]=(f[o>>2]|0)+-4}f[b>>2]=N;f[c>>2]=R;M=f[k>>2]|0;Q=((f[g>>2]|0)+-1|0)==(S|0)?0:S+1|0;S=(f[s>>2]|0)+(T*12|0)|0;z=R-N|0;O=(f[a>>2]|0)-(f[(f[S>>2]|0)+(Q<<2)>>2]|0)|0;a:do if(O){if(z>>>0<3){P=f[w>>2]|0;f[P>>2]=Q;U=f[g>>2]|0;if(U>>>0>1){V=1;W=U;Y=Q;while(1){Y=(Y|0)==(W+-1|0)?0:Y+1|0;f[P+(V<<2)>>2]=Y;V=V+1|0;Z=f[g>>2]|0;if(V>>>0>=Z>>>0){$=Z;break}else W=Z}}else $=U;if(!z){aa=85;break}else{ba=0;ca=$}while(1){W=(f[I>>2]|0)+((X(f[H>>2]|0,N+ba|0)|0)<<2)|0;if(!ca)da=0;else{V=0;do{Y=f[(f[w>>2]|0)+(V<<2)>>2]|0;P=(f[a>>2]|0)-(f[(f[S>>2]|0)+(Y<<2)>>2]|0)|0;do if(P|0){Z=f[y>>2]|0;ea=32-Z|0;fa=32-P|0;ga=f[W+(Y<<2)>>2]<(ea|0)){ha=ga>>>fa;fa=P-ea|0;f[y>>2]=fa;ea=f[h>>2]|ha>>>fa;f[h>>2]=ea;fa=f[j>>2]|0;if((fa|0)==(f[m>>2]|0))Ri(n,h);else{f[fa>>2]=ea;f[j>>2]=fa+4}f[h>>2]=ha<<32-(f[y>>2]|0);break}ha=f[h>>2]|ga>>>Z;f[h>>2]=ha;ga=Z+P|0;f[y>>2]=ga;if((ga|0)!=32)break;ga=f[j>>2]|0;if((ga|0)==(f[m>>2]|0))Ri(n,h);else{f[ga>>2]=ha;f[j>>2]=ga+4}f[h>>2]=0;f[y>>2]=0}while(0);V=V+1|0;P=f[g>>2]|0}while(V>>>0

>>0);da=P}ba=ba+1|0;if(ba>>>0>=z>>>0){aa=85;break a}else ca=da}}U=T+1|0;Ig(M+(U*12|0)|0,f[M+(T*12|0)>>2]|0,f[M+(T*12|0)+4>>2]|0);V=(f[(f[k>>2]|0)+(U*12|0)>>2]|0)+(Q<<2)|0;W=(f[V>>2]|0)+(1<>2]=W;V=f[A>>2]|0;P=f[B>>2]|0;b:do if((R|0)==(N|0))ia=N;else{Y=f[J>>2]|0;if(!V){if((f[Y+(Q<<2)>>2]|0)>>>0>>0){ia=R;break}else{ja=R;ka=N}while(1){ga=ja;do{ga=ga+-1|0;if((ka|0)==(ga|0)){ia=ka;break b}ha=(f[K>>2]|0)+((X(ga,P)|0)<<2)+(Q<<2)|0}while((f[ha>>2]|0)>>>0>=W>>>0);ka=ka+1|0;if((ka|0)==(ga|0)){ia=ga;break b}else ja=ga}}else{la=R;ma=N}while(1){ha=ma;while(1){na=Y+((X(ha,V)|0)<<2)|0;if((f[na+(Q<<2)>>2]|0)>>>0>=W>>>0){oa=la;break}Z=ha+1|0;if((Z|0)==(la|0)){ia=la;break b}else ha=Z}while(1){oa=oa+-1|0;if((ha|0)==(oa|0)){ia=ha;break b}pa=(f[K>>2]|0)+((X(oa,P)|0)<<2)|0;if((f[pa+(Q<<2)>>2]|0)>>>0>>0){qa=0;break}}do{ga=na+(qa<<2)|0;Z=pa+(qa<<2)|0;fa=f[ga>>2]|0;f[ga>>2]=f[Z>>2];f[Z>>2]=fa;qa=qa+1|0}while((qa|0)!=(V|0));ma=ha+1|0;if((ma|0)==(oa|0)){ia=oa;break}else la=oa}}while(0);W=(_(z|0)|0)^31;P=ia-N|0;Y=R-ia|0;fa=P>>>0>>0;if((P|0)!=(Y|0)){Z=f[C>>2]|0;if(fa)f[D>>2]=f[D>>2]|1<<31-Z;ga=Z+1|0;f[C>>2]=ga;if((ga|0)==32){ga=f[E>>2]|0;if((ga|0)==(f[F>>2]|0))Ri(G,D);else{f[ga>>2]=f[D>>2];f[E>>2]=ga+4}f[C>>2]=0;f[D>>2]=0}}ga=z>>>1;if(fa){fa=ga-P|0;if(W|0){Z=0;ea=1<>>1}}}else{ea=ga-Y|0;if(W|0){Z=0;fa=1<>>1}}}fa=f[s>>2]|0;W=f[fa+(T*12|0)>>2]|0;Z=W+(Q<<2)|0;f[Z>>2]=(f[Z>>2]|0)+1;Ig(fa+(U*12|0)|0,W,f[fa+(T*12|0)+4>>2]|0);if((ia|0)!=(N|0)){fa=f[o>>2]|0;W=f[t>>2]|0;Z=fa-W>>2;ea=f[v>>2]|0;ga=f[l>>2]|0;if((((Z|0)==0?0:(Z*113|0)+-1|0)|0)==(ga+ea|0)){Pc(e);ra=f[v>>2]|0;sa=f[l>>2]|0;ta=f[o>>2]|0;ua=f[t>>2]|0}else{ra=ea;sa=ga;ta=fa;ua=W}W=sa+ra|0;if((ta|0)==(ua|0))va=0;else va=(f[ua+(((W>>>0)/113|0)<<2)>>2]|0)+(((W>>>0)%113|0)*36|0)|0;f[va>>2]=N;W=va+4|0;f[W>>2]=r;f[W+4>>2]=x;f[va+12>>2]=ia;f[va+16>>2]=i;f[va+20>>2]=V;f[va+24>>2]=Q;f[va+28>>2]=P;f[va+32>>2]=T;f[l>>2]=(f[l>>2]|0)+1}if((R|0)!=(ia|0)){W=f[o>>2]|0;fa=f[t>>2]|0;ga=W-fa>>2;ea=f[v>>2]|0;Z=f[l>>2]|0;if((((ga|0)==0?0:(ga*113|0)+-1|0)|0)==(Z+ea|0)){Pc(e);wa=f[v>>2]|0;xa=f[l>>2]|0;ya=f[o>>2]|0;za=f[t>>2]|0}else{wa=ea;xa=Z;ya=W;za=fa}fa=xa+wa|0;if((ya|0)==(za|0))Aa=0;else Aa=(f[za+(((fa>>>0)/113|0)<<2)>>2]|0)+(((fa>>>0)%113|0)*36|0)|0;f[Aa>>2]=ia;f[Aa+4>>2]=i;f[Aa+8>>2]=V;f[Aa+12>>2]=R;fa=Aa+16|0;f[fa>>2]=p;f[fa+4>>2]=q;f[Aa+24>>2]=Q;f[Aa+28>>2]=Y;f[Aa+32>>2]=U;fa=(f[l>>2]|0)+1|0;f[l>>2]=fa;Ba=fa}else aa=85}else aa=85;while(0);if((aa|0)==85){aa=0;Ba=f[l>>2]|0}if(!Ba)break;else L=Ba}}Ba=f[t>>2]|0;L=f[v>>2]|0;Aa=Ba+(((L>>>0)/113|0)<<2)|0;q=f[o>>2]|0;p=q;i=Ba;if((q|0)==(Ba|0)){Ca=0;Da=0}else{ia=(f[Aa>>2]|0)+(((L>>>0)%113|0)*36|0)|0;Ca=ia;Da=ia}ia=Aa;Aa=Da;c:while(1){Da=Aa;do{L=Da;if((Ca|0)==(L|0))break c;Da=L+36|0}while((Da-(f[ia>>2]|0)|0)!=4068);Da=ia+4|0;ia=Da;Aa=f[Da>>2]|0}f[l>>2]=0;l=p-i>>2;if(l>>>0>2){i=Ba;do{Oq(f[i>>2]|0);i=(f[t>>2]|0)+4|0;f[t>>2]=i;Ea=f[o>>2]|0;Fa=Ea-i>>2}while(Fa>>>0>2);Ga=Fa;Ha=i;Ia=Ea}else{Ga=l;Ha=Ba;Ia=q}switch(Ga|0){case 1:{Ja=56;aa=99;break}case 2:{Ja=113;aa=99;break}default:{}}if((aa|0)==99)f[v>>2]=Ja;if((Ha|0)!=(Ia|0)){Ja=Ha;do{Oq(f[Ja>>2]|0);Ja=Ja+4|0}while((Ja|0)!=(Ia|0));Ia=f[t>>2]|0;t=f[o>>2]|0;if((t|0)!=(Ia|0))f[o>>2]=t+(~((t+-4-Ia|0)>>>2)<<2)}Ia=f[e>>2]|0;if(!Ia){u=d;return}Oq(Ia);u=d;return}function lb(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,Y=0,Z=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0,Ha=0,Ia=0,Ja=0,Ka=0;d=u;u=u+32|0;e=d;g=a+8|0;h=f[g>>2]|0;f[e>>2]=0;i=e+4|0;f[i>>2]=0;f[e+8>>2]=0;do if(h)if(h>>>0>1073741823)aq(e);else{j=h<<2;k=ln(j)|0;f[e>>2]=k;l=k+(h<<2)|0;f[e+8>>2]=l;sj(k|0,0,j|0)|0;f[i>>2]=l;m=l;n=k;break}else{m=0;n=0}while(0);k=a+140|0;l=f[k>>2]|0;j=f[l>>2]|0;o=l+4|0;if(!j){p=l+8|0;q=n;r=m;s=h}else{h=f[o>>2]|0;if((h|0)!=(j|0))f[o>>2]=h+(~((h+-4-j|0)>>>2)<<2);Oq(j);j=l+8|0;f[j>>2]=0;f[o>>2]=0;f[l>>2]=0;p=j;q=f[e>>2]|0;r=f[i>>2]|0;s=f[g>>2]|0}f[l>>2]=q;f[o>>2]=r;f[p>>2]=f[e+8>>2];f[e>>2]=0;p=e+4|0;f[p>>2]=0;f[e+8>>2]=0;do if(s)if(s>>>0>1073741823)aq(e);else{r=s<<2;o=ln(r)|0;f[e>>2]=o;q=o+(s<<2)|0;f[e+8>>2]=q;sj(o|0,0,r|0)|0;f[p>>2]=q;t=q;v=o;break}else{t=0;v=0}while(0);s=a+152|0;o=f[s>>2]|0;q=f[o>>2]|0;r=o+4|0;if(!q){w=o+8|0;x=v;y=t}else{t=f[r>>2]|0;if((t|0)!=(q|0))f[r>>2]=t+(~((t+-4-q|0)>>>2)<<2);Oq(q);q=o+8|0;f[q>>2]=0;f[r>>2]=0;f[o>>2]=0;w=q;x=f[e>>2]|0;y=f[p>>2]|0}f[o>>2]=x;f[r>>2]=y;f[w>>2]=f[e+8>>2];w=f[b>>2]|0;y=b+4|0;r=f[y>>2]|0;x=f[y+4>>2]|0;y=f[c>>2]|0;o=c+4|0;p=f[o>>2]|0;q=f[o+4>>2]|0;f[e>>2]=0;f[e+4>>2]=0;f[e+8>>2]=0;f[e+12>>2]=0;f[e+16>>2]=0;f[e+20>>2]=0;o=e+8|0;t=e+4|0;v=e+16|0;l=e+20|0;i=r;Pc(e);j=f[t>>2]|0;h=(f[l>>2]|0)+(f[v>>2]|0)|0;if((f[o>>2]|0)==(j|0))z=0;else z=(f[j+(((h>>>0)/113|0)<<2)>>2]|0)+(((h>>>0)%113|0)*36|0)|0;f[z>>2]=w;h=z+4|0;f[h>>2]=r;f[h+4>>2]=x;f[z+12>>2]=y;h=z+16|0;f[h>>2]=p;f[h+4>>2]=q;f[z+24>>2]=0;f[z+28>>2]=y-w;f[z+32>>2]=0;z=(f[l>>2]|0)+1|0;f[l>>2]=z;if(z|0){w=a+128|0;y=a+60|0;h=a+56|0;j=a+48|0;m=a+52|0;n=a+44|0;A=b+8|0;B=c+8|0;C=a+12|0;D=a+100|0;E=a+96|0;F=a+88|0;G=a+92|0;H=a+84|0;I=i+4|0;J=i+24|0;K=i+24|0;L=p+24|0;M=z;while(1){z=f[v>>2]|0;N=M+-1|0;O=N+z|0;P=f[t>>2]|0;Q=f[P+(((O>>>0)/113|0)<<2)>>2]|0;R=(O>>>0)%113|0;O=f[Q+(R*36|0)>>2]|0;S=f[Q+(R*36|0)+12>>2]|0;T=f[Q+(R*36|0)+24>>2]|0;U=f[Q+(R*36|0)+32>>2]|0;f[l>>2]=N;N=f[o>>2]|0;R=N-P>>2;if((1-M-z+((R|0)==0?0:(R*113|0)+-1|0)|0)>>>0>225){Oq(f[N+-4>>2]|0);f[o>>2]=(f[o>>2]|0)+-4}f[b>>2]=O;f[c>>2]=S;N=f[k>>2]|0;R=((f[g>>2]|0)+-1|0)==(T|0)?0:T+1|0;T=(f[s>>2]|0)+(U*12|0)|0;z=S-O|0;P=(f[a>>2]|0)-(f[(f[T>>2]|0)+(R<<2)>>2]|0)|0;a:do if(P){if(z>>>0<3){Q=f[w>>2]|0;f[Q>>2]=R;V=f[g>>2]|0;if(V>>>0>1){W=1;Y=V;Z=R;while(1){Z=(Z|0)==(Y+-1|0)?0:Z+1|0;f[Q+(W<<2)>>2]=Z;W=W+1|0;$=f[g>>2]|0;if(W>>>0>=$>>>0){aa=$;break}else Y=$}}else aa=V;if(!z){ba=81;break}else{ca=0;da=aa}while(1){Y=(f[J>>2]|0)+((X(f[I>>2]|0,O+ca|0)|0)<<2)|0;if(!da)ea=0;else{W=0;do{Z=f[(f[w>>2]|0)+(W<<2)>>2]|0;Q=(f[a>>2]|0)-(f[(f[T>>2]|0)+(Z<<2)>>2]|0)|0;do if(Q|0){$=f[y>>2]|0;fa=32-$|0;ga=32-Q|0;ha=f[Y+(Z<<2)>>2]<(fa|0)){ia=ha>>>ga;ga=Q-fa|0;f[y>>2]=ga;fa=f[h>>2]|ia>>>ga;f[h>>2]=fa;ga=f[j>>2]|0;if((ga|0)==(f[m>>2]|0))Ri(n,h);else{f[ga>>2]=fa;f[j>>2]=ga+4}f[h>>2]=ia<<32-(f[y>>2]|0);break}ia=f[h>>2]|ha>>>$;f[h>>2]=ia;ha=$+Q|0;f[y>>2]=ha;if((ha|0)!=32)break;ha=f[j>>2]|0;if((ha|0)==(f[m>>2]|0))Ri(n,h);else{f[ha>>2]=ia;f[j>>2]=ha+4}f[h>>2]=0;f[y>>2]=0}while(0);W=W+1|0;Q=f[g>>2]|0}while(W>>>0>>0);ea=Q}ca=ca+1|0;if(ca>>>0>=z>>>0){ba=81;break a}else da=ea}}V=U+1|0;Ig(N+(V*12|0)|0,f[N+(U*12|0)>>2]|0,f[N+(U*12|0)+4>>2]|0);W=(f[(f[k>>2]|0)+(V*12|0)>>2]|0)+(R<<2)|0;Y=(f[W>>2]|0)+(1<>2]=Y;W=f[A>>2]|0;Q=f[B>>2]|0;b:do if((S|0)==(O|0))ja=O;else{Z=f[K>>2]|0;if(!W){if((f[Z+(R<<2)>>2]|0)>>>0>>0){ja=S;break}else{ka=S;la=O}while(1){ha=ka;do{ha=ha+-1|0;if((la|0)==(ha|0)){ja=la;break b}ia=(f[L>>2]|0)+((X(ha,Q)|0)<<2)+(R<<2)|0}while((f[ia>>2]|0)>>>0>=Y>>>0);la=la+1|0;if((la|0)==(ha|0)){ja=ha;break b}else ka=ha}}else{ma=S;na=O}while(1){ia=na;while(1){oa=Z+((X(ia,W)|0)<<2)|0;if((f[oa+(R<<2)>>2]|0)>>>0>=Y>>>0){pa=ma;break}$=ia+1|0;if(($|0)==(ma|0)){ja=ma;break b}else ia=$}while(1){pa=pa+-1|0;if((ia|0)==(pa|0)){ja=ia;break b}qa=(f[L>>2]|0)+((X(pa,Q)|0)<<2)|0;if((f[qa+(R<<2)>>2]|0)>>>0>>0){ra=0;break}}do{ha=oa+(ra<<2)|0;$=qa+(ra<<2)|0;ga=f[ha>>2]|0;f[ha>>2]=f[$>>2];f[$>>2]=ga;ra=ra+1|0}while((ra|0)!=(W|0));na=ia+1|0;if((na|0)==(pa|0)){ja=pa;break}else ma=pa}}while(0);Y=(_(z|0)|0)^31;Q=ja-O|0;Z=S-ja|0;ga=Q>>>0>>0;if((Q|0)!=(Z|0)){$=f[D>>2]|0;if(ga)f[E>>2]=f[E>>2]|1<<31-$;ha=$+1|0;f[D>>2]=ha;if((ha|0)==32){ha=f[F>>2]|0;if((ha|0)==(f[G>>2]|0))Ri(H,E);else{f[ha>>2]=f[E>>2];f[F>>2]=ha+4}f[D>>2]=0;f[E>>2]=0}}ha=z>>>1;if(ga)sg(C,Y,ha-Q|0);else sg(C,Y,ha-Z|0);ha=f[s>>2]|0;Y=f[ha+(U*12|0)>>2]|0;ga=Y+(R<<2)|0;f[ga>>2]=(f[ga>>2]|0)+1;Ig(ha+(V*12|0)|0,Y,f[ha+(U*12|0)+4>>2]|0);if((ja|0)!=(O|0)){ha=f[o>>2]|0;Y=f[t>>2]|0;ga=ha-Y>>2;$=f[v>>2]|0;fa=f[l>>2]|0;if((((ga|0)==0?0:(ga*113|0)+-1|0)|0)==(fa+$|0)){Pc(e);sa=f[v>>2]|0;ta=f[l>>2]|0;ua=f[o>>2]|0;va=f[t>>2]|0}else{sa=$;ta=fa;ua=ha;va=Y}Y=ta+sa|0;if((ua|0)==(va|0))wa=0;else wa=(f[va+(((Y>>>0)/113|0)<<2)>>2]|0)+(((Y>>>0)%113|0)*36|0)|0;f[wa>>2]=O;Y=wa+4|0;f[Y>>2]=r;f[Y+4>>2]=x;f[wa+12>>2]=ja;f[wa+16>>2]=i;f[wa+20>>2]=W;f[wa+24>>2]=R;f[wa+28>>2]=Q;f[wa+32>>2]=U;f[l>>2]=(f[l>>2]|0)+1}if((S|0)!=(ja|0)){Q=f[o>>2]|0;Y=f[t>>2]|0;ha=Q-Y>>2;fa=f[v>>2]|0;$=f[l>>2]|0;if((((ha|0)==0?0:(ha*113|0)+-1|0)|0)==($+fa|0)){Pc(e);xa=f[v>>2]|0;ya=f[l>>2]|0;za=f[o>>2]|0;Aa=f[t>>2]|0}else{xa=fa;ya=$;za=Q;Aa=Y}Y=ya+xa|0;if((za|0)==(Aa|0))Ba=0;else Ba=(f[Aa+(((Y>>>0)/113|0)<<2)>>2]|0)+(((Y>>>0)%113|0)*36|0)|0;f[Ba>>2]=ja;f[Ba+4>>2]=i;f[Ba+8>>2]=W;f[Ba+12>>2]=S;Y=Ba+16|0;f[Y>>2]=p;f[Y+4>>2]=q;f[Ba+24>>2]=R;f[Ba+28>>2]=Z;f[Ba+32>>2]=V;Z=(f[l>>2]|0)+1|0;f[l>>2]=Z;Ca=Z}else ba=81}else ba=81;while(0);if((ba|0)==81){ba=0;Ca=f[l>>2]|0}if(!Ca)break;else M=Ca}}Ca=f[t>>2]|0;M=f[v>>2]|0;Ba=Ca+(((M>>>0)/113|0)<<2)|0;q=f[o>>2]|0;p=q;i=Ca;if((q|0)==(Ca|0)){Da=0;Ea=0}else{ja=(f[Ba>>2]|0)+(((M>>>0)%113|0)*36|0)|0;Da=ja;Ea=ja}ja=Ba;Ba=Ea;c:while(1){Ea=Ba;do{M=Ea;if((Da|0)==(M|0))break c;Ea=M+36|0}while((Ea-(f[ja>>2]|0)|0)!=4068);Ea=ja+4|0;ja=Ea;Ba=f[Ea>>2]|0}f[l>>2]=0;l=p-i>>2;if(l>>>0>2){i=Ca;do{Oq(f[i>>2]|0);i=(f[t>>2]|0)+4|0;f[t>>2]=i;Fa=f[o>>2]|0;Ga=Fa-i>>2}while(Ga>>>0>2);Ha=Ga;Ia=i;Ja=Fa}else{Ha=l;Ia=Ca;Ja=q}switch(Ha|0){case 1:{Ka=56;ba=95;break}case 2:{Ka=113;ba=95;break}default:{}}if((ba|0)==95)f[v>>2]=Ka;if((Ia|0)!=(Ja|0)){Ka=Ia;do{Oq(f[Ka>>2]|0);Ka=Ka+4|0}while((Ka|0)!=(Ja|0));Ja=f[t>>2]|0;t=f[o>>2]|0;if((t|0)!=(Ja|0))f[o>>2]=t+(~((t+-4-Ja|0)>>>2)<<2)}Ja=f[e>>2]|0;if(!Ja){u=d;return}Oq(Ja);u=d;return}function mb(a,c,e,g){a=a|0;c=c|0;e=e|0;g=g|0;var i=0,k=0,l=0,m=0,o=0,q=0,r=0,s=Oa,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;if(!g){i=0;return i|0}do switch(f[a+28>>2]|0){case 1:{k=a+24|0;l=b[k>>0]|0;if((l<<24>>24>e<<24>>24?e:l)<<24>>24>0){m=f[f[a>>2]>>2]|0;o=a+40|0;q=un(f[o>>2]|0,f[o+4>>2]|0,f[c>>2]|0,0)|0;o=a+48|0;r=Vn(q|0,I|0,f[o>>2]|0,f[o+4>>2]|0)|0;o=m+r|0;if(!(b[a+32>>0]|0)){r=o;m=0;while(1){s=$(b[r>>0]|0);n[g+(m<<2)>>2]=s;m=m+1|0;q=b[k>>0]|0;if((m|0)>=((q<<24>>24>e<<24>>24?e:q)<<24>>24|0)){t=q;break}else r=r+1|0}}else{r=o;m=0;while(1){s=$($(b[r>>0]|0)/$(127.0));n[g+(m<<2)>>2]=s;m=m+1|0;q=b[k>>0]|0;if((m|0)>=((q<<24>>24>e<<24>>24?e:q)<<24>>24|0)){t=q;break}else r=r+1|0}}}else t=l;r=t<<24>>24;if(t<<24>>24>=e<<24>>24){i=1;return i|0}sj(g+(r<<2)|0,0,(e<<24>>24)-r<<2|0)|0;i=1;return i|0}case 2:{r=a+24|0;m=b[r>>0]|0;if((m<<24>>24>e<<24>>24?e:m)<<24>>24>0){k=f[f[a>>2]>>2]|0;o=a+40|0;q=un(f[o>>2]|0,f[o+4>>2]|0,f[c>>2]|0,0)|0;o=a+48|0;u=Vn(q|0,I|0,f[o>>2]|0,f[o+4>>2]|0)|0;o=k+u|0;if(!(b[a+32>>0]|0)){u=o;k=0;while(1){s=$(h[u>>0]|0);n[g+(k<<2)>>2]=s;k=k+1|0;q=b[r>>0]|0;if((k|0)>=((q<<24>>24>e<<24>>24?e:q)<<24>>24|0)){v=q;break}else u=u+1|0}}else{u=o;k=0;while(1){s=$($(h[u>>0]|0)/$(255.0));n[g+(k<<2)>>2]=s;k=k+1|0;l=b[r>>0]|0;if((k|0)>=((l<<24>>24>e<<24>>24?e:l)<<24>>24|0)){v=l;break}else u=u+1|0}}}else v=m;u=v<<24>>24;if(v<<24>>24>=e<<24>>24){i=1;return i|0}sj(g+(u<<2)|0,0,(e<<24>>24)-u<<2|0)|0;i=1;return i|0}case 3:{u=a+48|0;k=f[u>>2]|0;r=f[u+4>>2]|0;u=a+40|0;o=(Vn(un(f[u>>2]|0,f[u+4>>2]|0,f[c>>2]|0,0)|0,I|0,k|0,r|0)|0)+(f[f[a>>2]>>2]|0)|0;r=a+24|0;k=b[r>>0]|0;if((k<<24>>24>e<<24>>24?e:k)<<24>>24>0)if(!(b[a+32>>0]|0)){u=o;l=0;while(1){s=$(d[u>>1]|0);n[g+(l<<2)>>2]=s;l=l+1|0;q=b[r>>0]|0;if((l|0)>=((q<<24>>24>e<<24>>24?e:q)<<24>>24|0)){w=q;break}else u=u+2|0}}else{u=o;l=0;while(1){s=$($(d[u>>1]|0)/$(32767.0));n[g+(l<<2)>>2]=s;l=l+1|0;m=b[r>>0]|0;if((l|0)>=((m<<24>>24>e<<24>>24?e:m)<<24>>24|0)){w=m;break}else u=u+2|0}}else w=k;u=w<<24>>24;if(w<<24>>24>=e<<24>>24){i=1;return i|0}sj(g+(u<<2)|0,0,(e<<24>>24)-u<<2|0)|0;i=1;return i|0}case 4:{u=a+48|0;l=f[u>>2]|0;r=f[u+4>>2]|0;u=a+40|0;o=(Vn(un(f[u>>2]|0,f[u+4>>2]|0,f[c>>2]|0,0)|0,I|0,l|0,r|0)|0)+(f[f[a>>2]>>2]|0)|0;r=a+24|0;l=b[r>>0]|0;if((l<<24>>24>e<<24>>24?e:l)<<24>>24>0)if(!(b[a+32>>0]|0)){u=o;m=0;while(1){s=$(j[u>>1]|0);n[g+(m<<2)>>2]=s;m=m+1|0;q=b[r>>0]|0;if((m|0)>=((q<<24>>24>e<<24>>24?e:q)<<24>>24|0)){x=q;break}else u=u+2|0}}else{u=o;m=0;while(1){s=$($(j[u>>1]|0)/$(65535.0));n[g+(m<<2)>>2]=s;m=m+1|0;k=b[r>>0]|0;if((m|0)>=((k<<24>>24>e<<24>>24?e:k)<<24>>24|0)){x=k;break}else u=u+2|0}}else x=l;u=x<<24>>24;if(x<<24>>24>=e<<24>>24){i=1;return i|0}sj(g+(u<<2)|0,0,(e<<24>>24)-u<<2|0)|0;i=1;return i|0}case 5:{u=a+48|0;m=f[u>>2]|0;r=f[u+4>>2]|0;u=a+40|0;o=(Vn(un(f[u>>2]|0,f[u+4>>2]|0,f[c>>2]|0,0)|0,I|0,m|0,r|0)|0)+(f[f[a>>2]>>2]|0)|0;r=a+24|0;m=b[r>>0]|0;if((m<<24>>24>e<<24>>24?e:m)<<24>>24>0)if(!(b[a+32>>0]|0)){u=o;k=0;while(1){s=$(f[u>>2]|0);n[g+(k<<2)>>2]=s;k=k+1|0;q=b[r>>0]|0;if((k|0)>=((q<<24>>24>e<<24>>24?e:q)<<24>>24|0)){y=q;break}else u=u+4|0}}else{u=o;k=0;while(1){s=$($(f[u>>2]|0)*$(4.65661287e-10));n[g+(k<<2)>>2]=s;k=k+1|0;l=b[r>>0]|0;if((k|0)>=((l<<24>>24>e<<24>>24?e:l)<<24>>24|0)){y=l;break}else u=u+4|0}}else y=m;u=y<<24>>24;if(y<<24>>24>=e<<24>>24){i=1;return i|0}sj(g+(u<<2)|0,0,(e<<24>>24)-u<<2|0)|0;i=1;return i|0}case 6:{u=a+48|0;k=f[u>>2]|0;r=f[u+4>>2]|0;u=a+40|0;o=(Vn(un(f[u>>2]|0,f[u+4>>2]|0,f[c>>2]|0,0)|0,I|0,k|0,r|0)|0)+(f[f[a>>2]>>2]|0)|0;r=a+24|0;k=b[r>>0]|0;if((k<<24>>24>e<<24>>24?e:k)<<24>>24>0)if(!(b[a+32>>0]|0)){u=o;l=0;while(1){s=$((f[u>>2]|0)>>>0);n[g+(l<<2)>>2]=s;l=l+1|0;q=b[r>>0]|0;if((l|0)>=((q<<24>>24>e<<24>>24?e:q)<<24>>24|0)){z=q;break}else u=u+4|0}}else{u=o;l=0;while(1){s=$($((f[u>>2]|0)>>>0)*$(2.32830644e-10));n[g+(l<<2)>>2]=s;l=l+1|0;m=b[r>>0]|0;if((l|0)>=((m<<24>>24>e<<24>>24?e:m)<<24>>24|0)){z=m;break}else u=u+4|0}}else z=k;u=z<<24>>24;if(z<<24>>24>=e<<24>>24){i=1;return i|0}sj(g+(u<<2)|0,0,(e<<24>>24)-u<<2|0)|0;i=1;return i|0}case 7:{u=a+48|0;l=f[u>>2]|0;r=f[u+4>>2]|0;u=a+40|0;o=(Vn(un(f[u>>2]|0,f[u+4>>2]|0,f[c>>2]|0,0)|0,I|0,l|0,r|0)|0)+(f[f[a>>2]>>2]|0)|0;r=a+24|0;l=b[r>>0]|0;if((l<<24>>24>e<<24>>24?e:l)<<24>>24>0)if(!(b[a+32>>0]|0)){u=o;m=0;while(1){q=u;s=$(+((f[q>>2]|0)>>>0)+4294967296.0*+(f[q+4>>2]|0));n[g+(m<<2)>>2]=s;m=m+1|0;q=b[r>>0]|0;if((m|0)>=((q<<24>>24>e<<24>>24?e:q)<<24>>24|0)){A=q;break}else u=u+8|0}}else{u=o;m=0;while(1){k=u;s=$($(+((f[k>>2]|0)>>>0)+4294967296.0*+(f[k+4>>2]|0))*$(1.08420217e-19));n[g+(m<<2)>>2]=s;m=m+1|0;k=b[r>>0]|0;if((m|0)>=((k<<24>>24>e<<24>>24?e:k)<<24>>24|0)){A=k;break}else u=u+8|0}}else A=l;u=A<<24>>24;if(A<<24>>24>=e<<24>>24){i=1;return i|0}sj(g+(u<<2)|0,0,(e<<24>>24)-u<<2|0)|0;i=1;return i|0}case 8:{u=a+48|0;m=f[u>>2]|0;r=f[u+4>>2]|0;u=a+40|0;o=(Vn(un(f[u>>2]|0,f[u+4>>2]|0,f[c>>2]|0,0)|0,I|0,m|0,r|0)|0)+(f[f[a>>2]>>2]|0)|0;r=a+24|0;m=b[r>>0]|0;if((m<<24>>24>e<<24>>24?e:m)<<24>>24>0)if(!(b[a+32>>0]|0)){u=o;k=0;while(1){q=u;s=$(+((f[q>>2]|0)>>>0)+4294967296.0*+((f[q+4>>2]|0)>>>0));n[g+(k<<2)>>2]=s;k=k+1|0;q=b[r>>0]|0;if((k|0)>=((q<<24>>24>e<<24>>24?e:q)<<24>>24|0)){B=q;break}else u=u+8|0}}else{u=o;k=0;while(1){l=u;s=$($(+((f[l>>2]|0)>>>0)+4294967296.0*+((f[l+4>>2]|0)>>>0))*$(5.42101086e-20));n[g+(k<<2)>>2]=s;k=k+1|0;l=b[r>>0]|0;if((k|0)>=((l<<24>>24>e<<24>>24?e:l)<<24>>24|0)){B=l;break}else u=u+8|0}}else B=m;u=B<<24>>24;if(B<<24>>24>=e<<24>>24){i=1;return i|0}sj(g+(u<<2)|0,0,(e<<24>>24)-u<<2|0)|0;i=1;return i|0}case 9:{u=a+24|0;k=b[u>>0]|0;if((k<<24>>24>e<<24>>24?e:k)<<24>>24>0){r=f[f[a>>2]>>2]|0;o=a+40|0;l=un(f[o>>2]|0,f[o+4>>2]|0,f[c>>2]|0,0)|0;o=a+48|0;q=Vn(l|0,I|0,f[o>>2]|0,f[o+4>>2]|0)|0;o=r+q|0;q=0;while(1){f[g+(q<<2)>>2]=f[o>>2];q=q+1|0;r=b[u>>0]|0;if((q|0)>=((r<<24>>24>e<<24>>24?e:r)<<24>>24|0)){C=r;break}else o=o+4|0}}else C=k;o=C<<24>>24;if(C<<24>>24>=e<<24>>24){i=1;return i|0}sj(g+(o<<2)|0,0,(e<<24>>24)-o<<2|0)|0;i=1;return i|0}case 10:{o=a+24|0;q=b[o>>0]|0;if((q<<24>>24>e<<24>>24?e:q)<<24>>24>0){u=f[f[a>>2]>>2]|0;m=a+40|0;r=un(f[m>>2]|0,f[m+4>>2]|0,f[c>>2]|0,0)|0;m=a+48|0;l=Vn(r|0,I|0,f[m>>2]|0,f[m+4>>2]|0)|0;m=u+l|0;l=0;while(1){s=$(+p[m>>3]);n[g+(l<<2)>>2]=s;l=l+1|0;u=b[o>>0]|0;if((l|0)>=((u<<24>>24>e<<24>>24?e:u)<<24>>24|0)){D=u;break}else m=m+8|0}}else D=q;m=D<<24>>24;if(D<<24>>24>=e<<24>>24){i=1;return i|0}sj(g+(m<<2)|0,0,(e<<24>>24)-m<<2|0)|0;i=1;return i|0}case 11:{m=a+24|0;l=b[m>>0]|0;if((l<<24>>24>e<<24>>24?e:l)<<24>>24>0){o=f[f[a>>2]>>2]|0;k=a+40|0;u=un(f[k>>2]|0,f[k+4>>2]|0,f[c>>2]|0,0)|0;k=a+48|0;r=Vn(u|0,I|0,f[k>>2]|0,f[k+4>>2]|0)|0;k=o+r|0;r=0;while(1){s=$((b[k>>0]|0)!=0&1);n[g+(r<<2)>>2]=s;r=r+1|0;o=b[m>>0]|0;if((r|0)>=((o<<24>>24>e<<24>>24?e:o)<<24>>24|0)){E=o;break}else k=k+1|0}}else E=l;k=E<<24>>24;if(E<<24>>24>=e<<24>>24){i=1;return i|0}sj(g+(k<<2)|0,0,(e<<24>>24)-k<<2|0)|0;i=1;return i|0}default:{i=0;return i|0}}while(0);return 0}function nb(a,b,c,d,e,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;g=g|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,J=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0.0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0,Ha=0,Ia=0,Ja=0,Ka=0,La=0,Ma=0,Na=0,Oa=0,Pa=0,Qa=0,Ra=0,Sa=0,Ta=0,Ua=0,Va=0,Wa=0,Xa=0,Ya=0,Za=0,_a=0,$a=0,ab=0,bb=0.0,cb=0,db=0,eb=0,fb=0,gb=0,hb=0,ib=0,jb=0.0,kb=0.0,lb=0.0,mb=0.0,nb=0.0,ob=0.0,pb=0.0,qb=0.0,rb=0.0,sb=0.0,tb=0;i=u;u=u+512|0;j=i;k=d+c|0;l=0-k|0;m=a+4|0;n=a+100|0;o=b;b=0;a:while(1){switch(o|0){case 46:{p=6;break a;break}case 48:break;default:{q=0;r=o;s=b;t=0;v=0;break a}}w=f[m>>2]|0;if(w>>>0<(f[n>>2]|0)>>>0){f[m>>2]=w+1;o=h[w>>0]|0;b=1;continue}else{o=Si(a)|0;b=1;continue}}if((p|0)==6){o=f[m>>2]|0;if(o>>>0<(f[n>>2]|0)>>>0){f[m>>2]=o+1;x=h[o>>0]|0}else x=Si(a)|0;if((x|0)==48){o=0;w=0;while(1){y=Vn(o|0,w|0,-1,-1)|0;z=I;A=f[m>>2]|0;if(A>>>0<(f[n>>2]|0)>>>0){f[m>>2]=A+1;B=h[A>>0]|0}else B=Si(a)|0;if((B|0)==48){o=y;w=z}else{q=1;r=B;s=1;t=y;v=z;break}}}else{q=1;r=x;s=b;t=0;v=0}}f[j>>2]=0;b=r+-48|0;x=(r|0)==46;b:do if(x|b>>>0<10){B=j+496|0;w=0;o=0;z=0;y=q;A=s;C=r;D=x;E=b;F=t;G=v;H=0;J=0;c:while(1){do if(D)if(!y){L=w;M=o;N=1;O=z;P=A;Q=H;R=J;S=H;T=J}else break c;else{U=Vn(H|0,J|0,1,0)|0;V=I;W=(C|0)!=48;if((o|0)>=125){if(!W){L=w;M=o;N=y;O=z;P=A;Q=F;R=G;S=U;T=V;break}f[B>>2]=f[B>>2]|1;L=w;M=o;N=y;O=z;P=A;Q=F;R=G;S=U;T=V;break}Y=j+(o<<2)|0;if(!w)Z=E;else Z=C+-48+((f[Y>>2]|0)*10|0)|0;f[Y>>2]=Z;Y=w+1|0;_=(Y|0)==9;L=_?0:Y;M=o+(_&1)|0;N=y;O=W?U:z;P=1;Q=F;R=G;S=U;T=V}while(0);V=f[m>>2]|0;if(V>>>0<(f[n>>2]|0)>>>0){f[m>>2]=V+1;$=h[V>>0]|0}else $=Si(a)|0;E=$+-48|0;D=($|0)==46;if(!(D|E>>>0<10)){aa=L;ba=M;ca=O;da=N;ea=$;fa=P;ga=S;ha=Q;ia=T;ja=R;p=29;break b}else{w=L;o=M;z=O;y=N;A=P;C=$;F=Q;G=R;H=S;J=T}}ka=w;la=o;ma=z;na=H;oa=J;pa=F;qa=G;ra=(A|0)!=0;p=37}else{aa=0;ba=0;ca=0;da=q;ea=r;fa=s;ga=0;ha=t;ia=0;ja=v;p=29}while(0);do if((p|0)==29){v=(da|0)==0;t=v?ga:ha;s=v?ia:ja;v=(fa|0)!=0;if(!(v&(ea|32|0)==101))if((ea|0)>-1){ka=aa;la=ba;ma=ca;na=ga;oa=ia;pa=t;qa=s;ra=v;p=37;break}else{sa=aa;ta=ba;ua=ca;va=ga;wa=ia;xa=v;ya=t;za=s;p=39;break}v=Re(a,g)|0;r=I;if((v|0)==0&(r|0)==-2147483648){if(!g){Ym(a,0);Aa=0.0;break}if(!(f[n>>2]|0)){Ba=0;Ca=0}else{f[m>>2]=(f[m>>2]|0)+-1;Ba=0;Ca=0}}else{Ba=v;Ca=r}r=Vn(Ba|0,Ca|0,t|0,s|0)|0;Da=aa;Ea=ba;Fa=ca;Ga=r;Ha=ga;Ia=I;Ja=ia;p=41}while(0);if((p|0)==37)if(f[n>>2]|0){f[m>>2]=(f[m>>2]|0)+-1;if(ra){Da=ka;Ea=la;Fa=ma;Ga=pa;Ha=na;Ia=qa;Ja=oa;p=41}else p=40}else{sa=ka;ta=la;ua=ma;va=na;wa=oa;xa=ra;ya=pa;za=qa;p=39}if((p|0)==39)if(xa){Da=sa;Ea=ta;Fa=ua;Ga=ya;Ha=va;Ia=za;Ja=wa;p=41}else p=40;do if((p|0)==40){wa=Vq()|0;f[wa>>2]=22;Ym(a,0);Aa=0.0}else if((p|0)==41){wa=f[j>>2]|0;if(!wa){Aa=+(e|0)*0.0;break}if(((Ja|0)<0|(Ja|0)==0&Ha>>>0<10)&((Ga|0)==(Ha|0)&(Ia|0)==(Ja|0))?(c|0)>30|(wa>>>c|0)==0:0){Aa=+(e|0)*+(wa>>>0);break}wa=(d|0)/-2|0;za=((wa|0)<0)<<31>>31;if((Ia|0)>(za|0)|(Ia|0)==(za|0)&Ga>>>0>wa>>>0){wa=Vq()|0;f[wa>>2]=34;Aa=+(e|0)*1797693134862315708145274.0e284*1797693134862315708145274.0e284;break}wa=d+-106|0;za=((wa|0)<0)<<31>>31;if((Ia|0)<(za|0)|(Ia|0)==(za|0)&Ga>>>0>>0){wa=Vq()|0;f[wa>>2]=34;Aa=+(e|0)*2.2250738585072014e-308*2.2250738585072014e-308;break}if(!Da)Ka=Ea;else{if((Da|0)<9){wa=j+(Ea<<2)|0;za=Da;va=f[wa>>2]|0;while(1){va=va*10|0;if((za|0)>=8)break;else za=za+1|0}f[wa>>2]=va}Ka=Ea+1|0}if((Fa|0)<9?(Fa|0)<=(Ga|0)&(Ga|0)<18:0){if((Ga|0)==9){Aa=+(e|0)*+((f[j>>2]|0)>>>0);break}if((Ga|0)<9){Aa=+(e|0)*+((f[j>>2]|0)>>>0)/+(f[6720+(8-Ga<<2)>>2]|0);break}za=c+27+(X(Ga,-3)|0)|0;A=f[j>>2]|0;if((za|0)>30|(A>>>za|0)==0){Aa=+(e|0)*+(A>>>0)*+(f[6720+(Ga+-10<<2)>>2]|0);break}}A=(Ga|0)%9|0;if(!A){La=0;Ma=Ka;Na=0;Oa=Ga}else{za=(Ga|0)>-1?A:A+9|0;A=f[6720+(8-za<<2)>>2]|0;if(Ka){G=1e9/(A|0)|0;F=0;J=0;H=Ga;z=0;do{o=j+(z<<2)|0;w=f[o>>2]|0;ya=((w>>>0)/(A>>>0)|0)+F|0;f[o>>2]=ya;F=X(G,(w>>>0)%(A>>>0)|0)|0;w=(z|0)==(J|0)&(ya|0)==0;H=w?H+-9|0:H;J=w?J+1&127:J;z=z+1|0}while((z|0)!=(Ka|0));if(!F){Pa=J;Qa=Ka;Ra=H}else{f[j+(Ka<<2)>>2]=F;Pa=J;Qa=Ka+1|0;Ra=H}}else{Pa=0;Qa=0;Ra=Ga}La=0;Ma=Qa;Na=Pa;Oa=9-za+Ra|0}d:while(1){z=(Oa|0)<18;A=(Oa|0)==18;G=j+(Na<<2)|0;va=La;wa=Ma;while(1){if(!z){if(!A){Sa=va;Ta=Na;Ua=Oa;Va=wa;break d}if((f[G>>2]|0)>>>0>=9007199){Sa=va;Ta=Na;Ua=18;Va=wa;break d}}w=0;Wa=wa;ya=wa+127|0;while(1){o=ya&127;ua=j+(o<<2)|0;ta=Tn(f[ua>>2]|0,0,29)|0;sa=Vn(ta|0,I|0,w|0,0)|0;ta=I;if(ta>>>0>0|(ta|0)==0&sa>>>0>1e9){xa=jp(sa|0,ta|0,1e9,0)|0;qa=hn(sa|0,ta|0,1e9,0)|0;Xa=xa;Ya=qa}else{Xa=0;Ya=sa}f[ua>>2]=Ya;ua=(o|0)==(Na|0);Wa=(Ya|0)==0&(((o|0)!=(Wa+127&127|0)|ua)^1)?o:Wa;if(ua)break;else{w=Xa;ya=o+-1|0}}va=va+-29|0;if(Xa|0)break;else wa=Wa}wa=Na+127&127;G=Wa+127&127;A=j+((Wa+126&127)<<2)|0;if((wa|0)==(Wa|0)){f[A>>2]=f[A>>2]|f[j+(G<<2)>>2];Za=G}else Za=Wa;f[j+(wa<<2)>>2]=Xa;La=va;Ma=Za;Na=wa;Oa=Oa+9|0}e:while(1){za=Va+1&127;H=j+((Va+127&127)<<2)|0;J=Sa;F=Ta;wa=Ua;while(1){G=(wa|0)==18;A=(wa|0)>27?9:1;_a=J;$a=F;while(1){z=0;while(1){ya=z+$a&127;if((ya|0)==(Va|0)){ab=2;p=88;break}w=f[j+(ya<<2)>>2]|0;ya=f[6752+(z<<2)>>2]|0;if(w>>>0>>0){ab=2;p=88;break}if(w>>>0>ya>>>0)break;ya=z+1|0;if((z|0)<1)z=ya;else{ab=ya;p=88;break}}if((p|0)==88?(p=0,G&(ab|0)==2):0){bb=0.0;cb=0;db=Va;break e}eb=A+_a|0;if(($a|0)==(Va|0)){_a=eb;$a=Va}else break}G=(1<>>A;fb=0;gb=$a;hb=wa;ya=$a;do{w=j+(ya<<2)|0;o=f[w>>2]|0;ua=(o>>>A)+fb|0;f[w>>2]=ua;fb=X(o&G,z)|0;o=(ya|0)==(gb|0)&(ua|0)==0;hb=o?hb+-9|0:hb;gb=o?gb+1&127:gb;ya=ya+1&127}while((ya|0)!=(Va|0));if(!fb){J=eb;F=gb;wa=hb;continue}if((za|0)!=(gb|0))break;f[H>>2]=f[H>>2]|1;J=eb;F=gb;wa=hb}f[j+(Va<<2)>>2]=fb;Sa=eb;Ta=gb;Ua=hb;Va=za}while(1){wa=cb+$a&127;F=db+1&127;if((wa|0)==(db|0)){f[j+(F+-1<<2)>>2]=0;ib=F}else ib=db;bb=bb*1.0e9+ +((f[j+(wa<<2)>>2]|0)>>>0);cb=cb+1|0;if((cb|0)==2)break;else db=ib}jb=+(e|0);kb=bb*jb;wa=_a+53|0;F=wa-d|0;J=(F|0)<(c|0);H=J?((F|0)>0?F:0):c;if((H|0)<53){lb=+rq(+bk(1.0,105-H|0),kb);mb=+Dq(kb,+bk(1.0,53-H|0));nb=lb;ob=mb;pb=lb+(kb-mb)}else{nb=0.0;ob=0.0;pb=kb}va=$a+2&127;if((va|0)!=(ib|0)){ya=f[j+(va<<2)>>2]|0;do if(ya>>>0>=5e8){if((ya|0)!=5e8){qb=jb*.75+ob;break}if(($a+3&127|0)==(ib|0)){qb=jb*.5+ob;break}else{qb=jb*.75+ob;break}}else{if((ya|0)==0?($a+3&127|0)==(ib|0):0){qb=ob;break}qb=jb*.25+ob}while(0);if((53-H|0)>1?!(+Dq(qb,1.0)!=0.0):0)rb=qb+1.0;else rb=qb}else rb=ob;jb=pb+rb-nb;do if((wa&2147483647|0)>(-2-k|0)){ya=!(+K(+jb)>=9007199254740992.0);va=_a+((ya^1)&1)|0;kb=ya?jb:jb*.5;if((va+50|0)<=(l|0)?!(rb!=0.0&(J&((H|0)!=(F|0)|ya))):0){sb=kb;tb=va;break}ya=Vq()|0;f[ya>>2]=34;sb=kb;tb=va}else{sb=jb;tb=_a}while(0);Aa=+sq(sb,tb)}while(0);u=i;return +Aa}function ob(a,c,d,e,g,i){a=a|0;c=+c;d=d|0;e=e|0;g=g|0;i=i|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0.0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0.0,C=0,D=0.0,E=0,F=0,G=0,H=0.0,J=0,K=0,L=0,M=0,N=0,O=0.0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0.0,ga=0.0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0;j=u;u=u+560|0;k=j+8|0;l=j;m=j+524|0;n=m;o=j+512|0;f[l>>2]=0;p=o+12|0;yo(c)|0;if((I|0)<0){q=-c;r=1;s=16605}else{q=c;r=(g&2049|0)!=0&1;s=(g&2048|0)==0?((g&1|0)==0?16606:16611):16608}yo(q)|0;do if(0==0&(I&2146435072|0)==2146435072){t=(i&32|0)!=0;v=r+3|0;Qk(a,32,d,v,g&-65537);Xo(a,s,r);Xo(a,q!=q|0.0!=0.0?(t?18555:16632):t?16624:16628,3);Qk(a,32,d,v,g^8192);w=v}else{c=+tq(q,l)*2.0;v=c!=0.0;if(v)f[l>>2]=(f[l>>2]|0)+-1;t=i|32;if((t|0)==97){x=i&32;y=(x|0)==0?s:s+9|0;z=r|2;A=12-e|0;do if(!(e>>>0>11|(A|0)==0)){B=8.0;C=A;do{C=C+-1|0;B=B*16.0}while((C|0)!=0);if((b[y>>0]|0)==45){D=-(B+(-c-B));break}else{D=c+B-B;break}}else D=c;while(0);A=f[l>>2]|0;C=(A|0)<0?0-A|0:A;E=Rj(C,((C|0)<0)<<31>>31,p)|0;if((E|0)==(p|0)){C=o+11|0;b[C>>0]=48;F=C}else F=E;b[F+-1>>0]=(A>>31&2)+43;A=F+-2|0;b[A>>0]=i+15;E=(e|0)<1;C=(g&8|0)==0;G=m;H=D;while(1){J=~~H;K=G+1|0;b[G>>0]=x|h[16636+J>>0];H=(H-+(J|0))*16.0;if((K-n|0)==1?!(C&(E&H==0.0)):0){b[K>>0]=46;L=G+2|0}else L=K;if(!(H!=0.0))break;else G=L}G=L;if((e|0)!=0?(-2-n+G|0)<(e|0):0){M=G-n|0;N=e+2|0}else{E=G-n|0;M=E;N=E}E=p-A|0;G=E+z+N|0;Qk(a,32,d,G,g);Xo(a,y,z);Qk(a,48,d,G,g^65536);Xo(a,m,M);Qk(a,48,N-M|0,0,0);Xo(a,A,E);Qk(a,32,d,G,g^8192);w=G;break}G=(e|0)<0?6:e;if(v){E=(f[l>>2]|0)+-28|0;f[l>>2]=E;O=c*268435456.0;P=E}else{O=c;P=f[l>>2]|0}E=(P|0)<0?k:k+288|0;C=E;H=O;do{x=~~H>>>0;f[C>>2]=x;C=C+4|0;H=(H-+(x>>>0))*1.0e9}while(H!=0.0);if((P|0)>0){v=E;A=C;z=P;while(1){y=(z|0)<29?z:29;x=A+-4|0;if(x>>>0>=v>>>0){K=x;x=0;do{J=Tn(f[K>>2]|0,0,y|0)|0;Q=Vn(J|0,I|0,x|0,0)|0;J=I;R=hn(Q|0,J|0,1e9,0)|0;f[K>>2]=R;x=jp(Q|0,J|0,1e9,0)|0;K=K+-4|0}while(K>>>0>=v>>>0);if(x){K=v+-4|0;f[K>>2]=x;S=K}else S=v}else S=v;K=A;while(1){if(K>>>0<=S>>>0)break;J=K+-4|0;if(!(f[J>>2]|0))K=J;else break}x=(f[l>>2]|0)-y|0;f[l>>2]=x;if((x|0)>0){v=S;A=K;z=x}else{T=S;U=K;V=x;break}}}else{T=E;U=C;V=P}if((V|0)<0){z=((G+25|0)/9|0)+1|0;A=(t|0)==102;v=T;x=U;J=V;while(1){Q=0-J|0;R=(Q|0)<9?Q:9;if(v>>>0>>0){Q=(1<>>R;Y=0;Z=v;do{_=f[Z>>2]|0;f[Z>>2]=(_>>>R)+Y;Y=X(_&Q,W)|0;Z=Z+4|0}while(Z>>>0>>0);Z=(f[v>>2]|0)==0?v+4|0:v;if(!Y){$=Z;aa=x}else{f[x>>2]=Y;$=Z;aa=x+4|0}}else{$=(f[v>>2]|0)==0?v+4|0:v;aa=x}Z=A?E:$;W=(aa-Z>>2|0)>(z|0)?Z+(z<<2)|0:aa;J=(f[l>>2]|0)+R|0;f[l>>2]=J;if((J|0)>=0){ba=$;ca=W;break}else{v=$;x=W}}}else{ba=T;ca=U}x=E;if(ba>>>0>>0){v=(x-ba>>2)*9|0;J=f[ba>>2]|0;if(J>>>0<10)da=v;else{z=v;v=10;while(1){v=v*10|0;A=z+1|0;if(J>>>0>>0){da=A;break}else z=A}}}else da=0;z=(t|0)==103;v=(G|0)!=0;J=G-((t|0)!=102?da:0)+((v&z)<<31>>31)|0;if((J|0)<(((ca-x>>2)*9|0)+-9|0)){A=J+9216|0;J=E+4+(((A|0)/9|0)+-1024<<2)|0;C=(A|0)%9|0;if((C|0)<8){A=C;C=10;while(1){W=C*10|0;if((A|0)<7){A=A+1|0;C=W}else{ea=W;break}}}else ea=10;C=f[J>>2]|0;A=(C>>>0)%(ea>>>0)|0;t=(J+4|0)==(ca|0);if(!(t&(A|0)==0)){B=(((C>>>0)/(ea>>>0)|0)&1|0)==0?9007199254740992.0:9007199254740994.0;W=(ea|0)/2|0;H=A>>>0>>0?.5:t&(A|0)==(W|0)?1.0:1.5;if(!r){fa=H;ga=B}else{W=(b[s>>0]|0)==45;fa=W?-H:H;ga=W?-B:B}W=C-A|0;f[J>>2]=W;if(ga+fa!=ga){A=W+ea|0;f[J>>2]=A;if(A>>>0>999999999){A=ba;W=J;while(1){C=W+-4|0;f[W>>2]=0;if(C>>>0>>0){t=A+-4|0;f[t>>2]=0;ha=t}else ha=A;t=(f[C>>2]|0)+1|0;f[C>>2]=t;if(t>>>0>999999999){A=ha;W=C}else{ia=ha;ja=C;break}}}else{ia=ba;ja=J}W=(x-ia>>2)*9|0;A=f[ia>>2]|0;if(A>>>0<10){ka=ja;la=W;ma=ia}else{C=W;W=10;while(1){W=W*10|0;t=C+1|0;if(A>>>0>>0){ka=ja;la=t;ma=ia;break}else C=t}}}else{ka=J;la=da;ma=ba}}else{ka=J;la=da;ma=ba}C=ka+4|0;na=la;oa=ca>>>0>C>>>0?C:ca;pa=ma}else{na=da;oa=ca;pa=ba}C=oa;while(1){if(C>>>0<=pa>>>0){qa=0;break}W=C+-4|0;if(!(f[W>>2]|0))C=W;else{qa=1;break}}J=0-na|0;do if(z){W=G+((v^1)&1)|0;if((W|0)>(na|0)&(na|0)>-5){ra=i+-1|0;sa=W+-1-na|0}else{ra=i+-2|0;sa=W+-1|0}W=g&8;if(!W){if(qa?(A=f[C+-4>>2]|0,(A|0)!=0):0)if(!((A>>>0)%10|0)){t=0;Z=10;while(1){Z=Z*10|0;Q=t+1|0;if((A>>>0)%(Z>>>0)|0|0){ta=Q;break}else t=Q}}else ta=0;else ta=9;t=((C-x>>2)*9|0)+-9|0;if((ra|32|0)==102){Z=t-ta|0;A=(Z|0)>0?Z:0;ua=ra;va=(sa|0)<(A|0)?sa:A;wa=0;break}else{A=t+na-ta|0;t=(A|0)>0?A:0;ua=ra;va=(sa|0)<(t|0)?sa:t;wa=0;break}}else{ua=ra;va=sa;wa=W}}else{ua=i;va=G;wa=g&8}while(0);G=va|wa;x=(G|0)!=0&1;v=(ua|32|0)==102;if(v){xa=0;ya=(na|0)>0?na:0}else{z=(na|0)<0?J:na;t=Rj(z,((z|0)<0)<<31>>31,p)|0;z=p;if((z-t|0)<2){A=t;while(1){Z=A+-1|0;b[Z>>0]=48;if((z-Z|0)<2)A=Z;else{za=Z;break}}}else za=t;b[za+-1>>0]=(na>>31&2)+43;A=za+-2|0;b[A>>0]=ua;xa=A;ya=z-A|0}A=r+1+va+x+ya|0;Qk(a,32,d,A,g);Xo(a,s,r);Qk(a,48,d,A,g^65536);if(v){J=pa>>>0>E>>>0?E:pa;Z=m+9|0;R=Z;Y=m+8|0;Q=J;do{K=Rj(f[Q>>2]|0,0,Z)|0;if((Q|0)==(J|0))if((K|0)==(Z|0)){b[Y>>0]=48;Aa=Y}else Aa=K;else if(K>>>0>m>>>0){sj(m|0,48,K-n|0)|0;y=K;while(1){_=y+-1|0;if(_>>>0>m>>>0)y=_;else{Aa=_;break}}}else Aa=K;Xo(a,Aa,R-Aa|0);Q=Q+4|0}while(Q>>>0<=E>>>0);if(G|0)Xo(a,16652,1);if(Q>>>0>>0&(va|0)>0){E=va;R=Q;while(1){Y=Rj(f[R>>2]|0,0,Z)|0;if(Y>>>0>m>>>0){sj(m|0,48,Y-n|0)|0;J=Y;while(1){v=J+-1|0;if(v>>>0>m>>>0)J=v;else{Ba=v;break}}}else Ba=Y;Xo(a,Ba,(E|0)<9?E:9);R=R+4|0;J=E+-9|0;if(!(R>>>0>>0&(E|0)>9)){Ca=J;break}else E=J}}else Ca=va;Qk(a,48,Ca+9|0,9,0)}else{E=qa?C:pa+4|0;if((va|0)>-1){R=m+9|0;Z=(wa|0)==0;Q=R;G=0-n|0;J=m+8|0;K=va;v=pa;while(1){x=Rj(f[v>>2]|0,0,R)|0;if((x|0)==(R|0)){b[J>>0]=48;Da=J}else Da=x;do if((v|0)==(pa|0)){x=Da+1|0;Xo(a,Da,1);if(Z&(K|0)<1){Ea=x;break}Xo(a,16652,1);Ea=x}else{if(Da>>>0<=m>>>0){Ea=Da;break}sj(m|0,48,Da+G|0)|0;x=Da;while(1){z=x+-1|0;if(z>>>0>m>>>0)x=z;else{Ea=z;break}}}while(0);Y=Q-Ea|0;Xo(a,Ea,(K|0)>(Y|0)?Y:K);x=K-Y|0;v=v+4|0;if(!(v>>>0>>0&(x|0)>-1)){Fa=x;break}else K=x}}else Fa=va;Qk(a,48,Fa+18|0,18,0);Xo(a,xa,p-xa|0)}Qk(a,32,d,A,g^8192);w=A}while(0);u=j;return ((w|0)<(d|0)?d:w)|0}function pb(a){a=a|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0;c=u;u=u+64|0;d=c+56|0;e=c+52|0;g=c+48|0;h=c+60|0;i=c;j=c+44|0;k=c+40|0;l=c+36|0;m=c+32|0;n=c+28|0;o=c+24|0;p=c+20|0;q=c+16|0;r=c+12|0;if(!(b[a+288>>0]|0)){_e(d,f[a+8>>2]|0);s=a+12|0;t=f[d>>2]|0;f[d>>2]=0;v=f[s>>2]|0;f[s>>2]=t;if(v){Ii(v);Oq(v);v=f[d>>2]|0;f[d>>2]=0;if(v|0){Ii(v);Oq(v)}}else f[d>>2]=0}else{fh(d,f[a+8>>2]|0);v=a+12|0;t=f[d>>2]|0;f[d>>2]=0;s=f[v>>2]|0;f[v>>2]=t;if(s){Ii(s);Oq(s);s=f[d>>2]|0;f[d>>2]=0;if(s|0){Ii(s);Oq(s)}}else f[d>>2]=0}s=a+12|0;t=f[s>>2]|0;if(!t){w=0;u=c;return w|0}if((((f[t+4>>2]|0)-(f[t>>2]|0)>>2>>>0)/3|0|0)==(f[t+40>>2]|0)){w=0;u=c;return w|0}v=a+200|0;f[a+264>>2]=a;x=a+4|0;ci(((f[t+28>>2]|0)-(f[t+24>>2]|0)>>2)-(f[t+44>>2]|0)|0,f[(f[x>>2]|0)+44>>2]|0)|0;t=f[s>>2]|0;ci((((f[t+4>>2]|0)-(f[t>>2]|0)>>2>>>0)/3|0)-(f[t+40>>2]|0)|0,f[(f[x>>2]|0)+44>>2]|0)|0;t=a+28|0;y=a+8|0;z=f[y>>2]|0;A=((f[z+100>>2]|0)-(f[z+96>>2]|0)|0)/12|0;b[d>>0]=0;qh(t,A,d);A=f[s>>2]|0;z=(f[A+28>>2]|0)-(f[A+24>>2]|0)>>2;f[d>>2]=-1;hg(a+52|0,z,d);z=a+40|0;A=f[z>>2]|0;B=a+44|0;C=f[B>>2]|0;if((C|0)!=(A|0))f[B>>2]=C+(~((C+-4-A|0)>>>2)<<2);A=f[s>>2]|0;C=(f[A+4>>2]|0)-(f[A>>2]|0)>>2;gk(z,C-((C>>>0)%3|0)|0);C=a+84|0;z=f[s>>2]|0;A=(f[z+28>>2]|0)-(f[z+24>>2]|0)>>2;b[d>>0]=0;qh(C,A,d);A=a+96|0;z=f[A>>2]|0;B=a+100|0;D=f[B>>2]|0;if((D|0)!=(z|0))f[B>>2]=D+(~((D+-4-z|0)>>>2)<<2);f[a+164>>2]=-1;z=a+168|0;f[z>>2]=0;D=f[a+108>>2]|0;E=a+112|0;F=f[E>>2]|0;if((F|0)!=(D|0))f[E>>2]=F+(~(((F+-12-D|0)>>>0)/12|0)*12|0);D=a+132|0;if(f[D>>2]|0){F=a+128|0;E=f[F>>2]|0;if(E|0){G=E;do{E=G;G=f[G>>2]|0;Oq(E)}while((G|0)!=0)}f[F>>2]=0;F=f[a+124>>2]|0;if(F|0){G=a+120|0;E=0;do{f[(f[G>>2]|0)+(E<<2)>>2]=0;E=E+1|0}while((E|0)!=(F|0))}f[D>>2]=0}f[a+144>>2]=0;D=f[s>>2]|0;F=(f[D+28>>2]|0)-(f[D+24>>2]|0)>>2;f[d>>2]=-1;hg(a+152|0,F,d);F=a+72|0;D=f[F>>2]|0;E=a+76|0;G=f[E>>2]|0;if((G|0)!=(D|0))f[E>>2]=G+(~((G+-4-D|0)>>>2)<<2);D=f[s>>2]|0;gk(F,((f[D+4>>2]|0)-(f[D>>2]|0)>>2>>>0)/3|0);f[a+64>>2]=0;if(!(Be(a)|0)){w=0;u=c;return w|0}if(!(Hg(a)|0)){w=0;u=c;return w|0}D=a+172|0;G=a+176|0;H=(((f[G>>2]|0)-(f[D>>2]|0)|0)/136|0)&255;b[h>>0]=H;I=f[(f[x>>2]|0)+44>>2]|0;J=I+16|0;K=f[J+4>>2]|0;if((K|0)>0|(K|0)==0&(f[J>>2]|0)>>>0>0)L=H;else{f[e>>2]=f[I+4>>2];f[d>>2]=f[e>>2];Me(I,d,h,h+1|0)|0;L=b[h>>0]|0}h=a+284|0;f[h>>2]=L&255;L=f[s>>2]|0;I=(f[L+4>>2]|0)-(f[L>>2]|0)|0;L=I>>2;dj(v);f[i>>2]=0;H=i+4|0;f[H>>2]=0;f[i+8>>2]=0;a:do if((I|0)>0){J=a+104|0;K=i+8|0;M=0;b:while(1){N=(M>>>0)/3|0;O=N>>>5;P=1<<(N&31);if((f[(f[t>>2]|0)+(O<<2)>>2]&P|0)==0?(Q=f[s>>2]|0,f[j>>2]=N,f[d>>2]=f[j>>2],!(_j(Q,d)|0)):0){f[e>>2]=0;f[k>>2]=N;f[d>>2]=f[k>>2];N=xg(a,d,e)|0;fj(v,N);Q=f[e>>2]|0;R=(Q|0)==-1;do if(N){do if(R){S=-1;T=-1;U=-1}else{V=f[f[s>>2]>>2]|0;W=f[V+(Q<<2)>>2]|0;X=Q+1|0;Y=((X>>>0)%3|0|0)==0?Q+-2|0:X;if((Y|0)==-1)Z=-1;else Z=f[V+(Y<<2)>>2]|0;Y=(((Q>>>0)%3|0|0)==0?2:-1)+Q|0;if((Y|0)==-1){S=W;T=-1;U=Z;break}S=W;T=f[V+(Y<<2)>>2]|0;U=Z}while(0);Y=f[C>>2]|0;V=Y+(S>>>5<<2)|0;f[V>>2]=f[V>>2]|1<<(S&31);V=Y+(U>>>5<<2)|0;f[V>>2]=f[V>>2]|1<<(U&31);V=Y+(T>>>5<<2)|0;f[V>>2]=f[V>>2]|1<<(T&31);f[d>>2]=1;V=f[B>>2]|0;if(V>>>0<(f[J>>2]|0)>>>0){f[V>>2]=1;f[B>>2]=V+4}else Ri(A,d);V=(f[t>>2]|0)+(O<<2)|0;f[V>>2]=f[V>>2]|P;V=Q+1|0;if(R)_=-1;else _=((V>>>0)%3|0|0)==0?Q+-2|0:V;f[d>>2]=_;Y=f[H>>2]|0;if(Y>>>0<(f[K>>2]|0)>>>0){f[Y>>2]=_;f[H>>2]=Y+4}else Ri(i,d);if(R)break;Y=((V>>>0)%3|0|0)==0?Q+-2|0:V;if((Y|0)==-1)break;V=f[(f[(f[s>>2]|0)+12>>2]|0)+(Y<<2)>>2]|0;Y=(V|0)==-1;W=Y?-1:(V>>>0)/3|0;if(Y)break;if(f[(f[t>>2]|0)+(W>>>5<<2)>>2]&1<<(W&31)|0)break;f[l>>2]=V;f[d>>2]=f[l>>2];if(!(kc(a,d)|0))break b}else{V=Q+1|0;if(R)$=-1;else $=((V>>>0)%3|0|0)==0?Q+-2|0:V;f[m>>2]=$;f[d>>2]=f[m>>2];Pe(a,d,1)|0;f[n>>2]=f[e>>2];f[d>>2]=f[n>>2];if(!(kc(a,d)|0))break b}while(0)}M=M+1|0;if((M|0)>=(L|0)){aa=62;break a}}ba=0}else aa=62;while(0);if((aa|0)==62){aa=f[F>>2]|0;L=f[E>>2]|0;n=L;if((aa|0)!=(L|0)?(m=L+-4|0,aa>>>0>>0):0){L=aa;aa=m;do{m=f[L>>2]|0;f[L>>2]=f[aa>>2];f[aa>>2]=m;L=L+4|0;aa=aa+-4|0}while(L>>>0>>0)}f[o>>2]=n;f[p>>2]=f[i>>2];f[q>>2]=f[H>>2];f[g>>2]=f[o>>2];f[e>>2]=f[p>>2];f[d>>2]=f[q>>2];Yd(F,g,e,d)|0;if((f[G>>2]|0)!=(f[D>>2]|0)?(D=f[y>>2]|0,y=((f[D+100>>2]|0)-(f[D+96>>2]|0)|0)/12|0,b[d>>0]=0,qh(t,y,d),y=f[F>>2]|0,F=f[E>>2]|0,(y|0)!=(F|0)):0){E=y;do{f[r>>2]=f[E>>2];f[d>>2]=f[r>>2];He(a,d)|0;E=E+4|0}while((E|0)!=(F|0))}th(v);F=a+232|0;ld(v,F);v=a+280|0;E=f[v>>2]|0;if((E|0?(f[h>>2]|0)>0:0)?(ld(E,F),(f[h>>2]|0)>1):0){E=1;do{ld((f[v>>2]|0)+(E<<5)|0,F);E=E+1|0}while((E|0)<(f[h>>2]|0))}ci((f[a+272>>2]|0)-(f[a+268>>2]|0)>>2,f[(f[x>>2]|0)+44>>2]|0)|0;ci(f[z>>2]|0,f[(f[x>>2]|0)+44>>2]|0)|0;if(bh(a)|0){z=f[(f[x>>2]|0)+44>>2]|0;x=f[F>>2]|0;F=z+16|0;h=f[F+4>>2]|0;if(!((h|0)>0|(h|0)==0&(f[F>>2]|0)>>>0>0)){F=(f[a+236>>2]|0)-x|0;f[e>>2]=f[z+4>>2];f[d>>2]=f[e>>2];Me(z,d,x,x+F|0)|0}ba=1}else ba=0}F=f[i>>2]|0;if(F|0){i=f[H>>2]|0;if((i|0)!=(F|0))f[H>>2]=i+(~((i+-4-F|0)>>>2)<<2);Oq(F)}w=ba;u=c;return w|0}function qb(a,c,e,g,h){a=a|0;c=c|0;e=e|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0,Ha=0,Ia=0;i=u;u=u+64|0;j=i+16|0;k=i;l=i+24|0;m=i+8|0;n=i+20|0;f[j>>2]=c;c=(a|0)!=0;o=l+40|0;q=o;r=l+39|0;l=m+4|0;s=0;t=0;v=0;a:while(1){do if((t|0)>-1)if((s|0)>(2147483647-t|0)){w=Vq()|0;f[w>>2]=75;x=-1;break}else{x=s+t|0;break}else x=t;while(0);w=f[j>>2]|0;y=b[w>>0]|0;if(!(y<<24>>24)){z=88;break}else{A=y;B=w}b:while(1){switch(A<<24>>24){case 37:{C=B;D=B;z=9;break b;break}case 0:{E=B;break b;break}default:{}}y=B+1|0;f[j>>2]=y;A=b[y>>0]|0;B=y}c:do if((z|0)==9)while(1){z=0;if((b[D+1>>0]|0)!=37){E=C;break c}y=C+1|0;D=D+2|0;f[j>>2]=D;if((b[D>>0]|0)!=37){E=y;break}else{C=y;z=9}}while(0);y=E-w|0;if(c)Xo(a,w,y);if(y|0){s=y;t=x;continue}y=(Aq(b[(f[j>>2]|0)+1>>0]|0)|0)==0;F=f[j>>2]|0;if(!y?(b[F+2>>0]|0)==36:0){G=(b[F+1>>0]|0)+-48|0;H=1;J=3}else{G=-1;H=v;J=1}y=F+J|0;f[j>>2]=y;F=b[y>>0]|0;K=(F<<24>>24)+-32|0;if(K>>>0>31|(1<>24)+-32|K;P=F+1|0;f[j>>2]=P;Q=b[P>>0]|0;R=(Q<<24>>24)+-32|0;if(R>>>0>31|(1<>24==42){if((Aq(b[N+1>>0]|0)|0)!=0?(F=f[j>>2]|0,(b[F+2>>0]|0)==36):0){O=F+1|0;f[h+((b[O>>0]|0)+-48<<2)>>2]=10;S=f[g+((b[O>>0]|0)+-48<<3)>>2]|0;T=1;U=F+3|0}else{if(H|0){V=-1;break}if(c){F=(f[e>>2]|0)+(4-1)&~(4-1);O=f[F>>2]|0;f[e>>2]=F+4;W=O}else W=0;S=W;T=0;U=(f[j>>2]|0)+1|0}f[j>>2]=U;O=(S|0)<0;X=O?0-S|0:S;Y=O?L|8192:L;Z=T;_=U}else{O=Ll(j)|0;if((O|0)<0){V=-1;break}X=O;Y=L;Z=H;_=f[j>>2]|0}do if((b[_>>0]|0)==46){if((b[_+1>>0]|0)!=42){f[j>>2]=_+1;O=Ll(j)|0;$=O;aa=f[j>>2]|0;break}if(Aq(b[_+2>>0]|0)|0?(O=f[j>>2]|0,(b[O+3>>0]|0)==36):0){F=O+2|0;f[h+((b[F>>0]|0)+-48<<2)>>2]=10;K=f[g+((b[F>>0]|0)+-48<<3)>>2]|0;F=O+4|0;f[j>>2]=F;$=K;aa=F;break}if(Z|0){V=-1;break a}if(c){F=(f[e>>2]|0)+(4-1)&~(4-1);K=f[F>>2]|0;f[e>>2]=F+4;ba=K}else ba=0;K=(f[j>>2]|0)+2|0;f[j>>2]=K;$=ba;aa=K}else{$=-1;aa=_}while(0);K=0;F=aa;while(1){if(((b[F>>0]|0)+-65|0)>>>0>57){V=-1;break a}O=F;F=F+1|0;f[j>>2]=F;ca=b[(b[O>>0]|0)+-65+(16124+(K*58|0))>>0]|0;da=ca&255;if((da+-1|0)>>>0>=8)break;else K=da}if(!(ca<<24>>24)){V=-1;break}O=(G|0)>-1;do if(ca<<24>>24==19)if(O){V=-1;break a}else z=50;else{if(O){f[h+(G<<2)>>2]=da;P=g+(G<<3)|0;Q=f[P+4>>2]|0;y=k;f[y>>2]=f[P>>2];f[y+4>>2]=Q;z=50;break}if(!c){V=0;break a}We(k,da,e);ea=f[j>>2]|0}while(0);if((z|0)==50){z=0;if(c)ea=F;else{s=0;t=x;v=Z;continue}}O=b[ea+-1>>0]|0;Q=(K|0)!=0&(O&15|0)==3?O&-33:O;O=Y&-65537;y=(Y&8192|0)==0?Y:O;d:do switch(Q|0){case 110:{switch((K&255)<<24>>24){case 0:{f[f[k>>2]>>2]=x;s=0;t=x;v=Z;continue a;break}case 1:{f[f[k>>2]>>2]=x;s=0;t=x;v=Z;continue a;break}case 2:{P=f[k>>2]|0;f[P>>2]=x;f[P+4>>2]=((x|0)<0)<<31>>31;s=0;t=x;v=Z;continue a;break}case 3:{d[f[k>>2]>>1]=x;s=0;t=x;v=Z;continue a;break}case 4:{b[f[k>>2]>>0]=x;s=0;t=x;v=Z;continue a;break}case 6:{f[f[k>>2]>>2]=x;s=0;t=x;v=Z;continue a;break}case 7:{P=f[k>>2]|0;f[P>>2]=x;f[P+4>>2]=((x|0)<0)<<31>>31;s=0;t=x;v=Z;continue a;break}default:{s=0;t=x;v=Z;continue a}}break}case 112:{fa=120;ga=$>>>0>8?$:8;ha=y|8;z=62;break}case 88:case 120:{fa=Q;ga=$;ha=y;z=62;break}case 111:{P=k;R=f[P>>2]|0;ia=f[P+4>>2]|0;P=Ol(R,ia,o)|0;ja=q-P|0;ka=P;la=0;ma=16588;na=(y&8|0)==0|($|0)>(ja|0)?$:ja+1|0;oa=y;pa=R;qa=ia;z=68;break}case 105:case 100:{ia=k;R=f[ia>>2]|0;ja=f[ia+4>>2]|0;if((ja|0)<0){ia=Xn(0,0,R|0,ja|0)|0;P=I;ra=k;f[ra>>2]=ia;f[ra+4>>2]=P;sa=1;ta=16588;ua=ia;va=P;z=67;break d}else{sa=(y&2049|0)!=0&1;ta=(y&2048|0)==0?((y&1|0)==0?16588:16590):16589;ua=R;va=ja;z=67;break d}break}case 117:{ja=k;sa=0;ta=16588;ua=f[ja>>2]|0;va=f[ja+4>>2]|0;z=67;break}case 99:{b[r>>0]=f[k>>2];wa=r;xa=0;ya=16588;za=o;Aa=1;Ba=O;break}case 109:{ja=Vq()|0;Ca=$o(f[ja>>2]|0)|0;z=72;break}case 115:{ja=f[k>>2]|0;Ca=ja|0?ja:16598;z=72;break}case 67:{f[m>>2]=f[k>>2];f[l>>2]=0;f[k>>2]=m;Da=-1;Ea=m;z=76;break}case 83:{ja=f[k>>2]|0;if(!$){Qk(a,32,X,0,y);Fa=0;z=85}else{Da=$;Ea=ja;z=76}break}case 65:case 71:case 70:case 69:case 97:case 103:case 102:case 101:{s=ob(a,+p[k>>3],X,$,y,Q)|0;t=x;v=Z;continue a;break}default:{wa=w;xa=0;ya=16588;za=o;Aa=$;Ba=y}}while(0);e:do if((z|0)==62){z=0;w=k;Q=f[w>>2]|0;K=f[w+4>>2]|0;w=ul(Q,K,o,fa&32)|0;F=(ha&8|0)==0|(Q|0)==0&(K|0)==0;ka=w;la=F?0:2;ma=F?16588:16588+(fa>>4)|0;na=ga;oa=ha;pa=Q;qa=K;z=68}else if((z|0)==67){z=0;ka=Rj(ua,va,o)|0;la=sa;ma=ta;na=$;oa=y;pa=ua;qa=va;z=68}else if((z|0)==72){z=0;K=tg(Ca,0,$)|0;Q=(K|0)==0;wa=Ca;xa=0;ya=16588;za=Q?Ca+$|0:K;Aa=Q?$:K-Ca|0;Ba=O}else if((z|0)==76){z=0;K=Ea;Q=0;F=0;while(1){w=f[K>>2]|0;if(!w){Ga=Q;Ha=F;break}ja=Po(n,w)|0;if((ja|0)<0|ja>>>0>(Da-Q|0)>>>0){Ga=Q;Ha=ja;break}w=ja+Q|0;if(Da>>>0>w>>>0){K=K+4|0;Q=w;F=ja}else{Ga=w;Ha=ja;break}}if((Ha|0)<0){V=-1;break a}Qk(a,32,X,Ga,y);if(!Ga){Fa=0;z=85}else{F=Ea;Q=0;while(1){K=f[F>>2]|0;if(!K){Fa=Ga;z=85;break e}ja=Po(n,K)|0;Q=ja+Q|0;if((Q|0)>(Ga|0)){Fa=Ga;z=85;break e}Xo(a,n,ja);if(Q>>>0>=Ga>>>0){Fa=Ga;z=85;break}else F=F+4|0}}}while(0);if((z|0)==68){z=0;O=(pa|0)!=0|(qa|0)!=0;F=(na|0)!=0|O;Q=q-ka+((O^1)&1)|0;wa=F?ka:o;xa=la;ya=ma;za=o;Aa=F?((na|0)>(Q|0)?na:Q):na;Ba=(na|0)>-1?oa&-65537:oa}else if((z|0)==85){z=0;Qk(a,32,X,Fa,y^8192);s=(X|0)>(Fa|0)?X:Fa;t=x;v=Z;continue}Q=za-wa|0;F=(Aa|0)<(Q|0)?Q:Aa;O=F+xa|0;ja=(X|0)<(O|0)?O:X;Qk(a,32,ja,O,Ba);Xo(a,ya,xa);Qk(a,48,ja,O,Ba^65536);Qk(a,48,F,Q,0);Xo(a,wa,Q);Qk(a,32,ja,O,Ba^8192);s=ja;t=x;v=Z}f:do if((z|0)==88)if(!a)if(v){Z=1;while(1){t=f[h+(Z<<2)>>2]|0;if(!t){Ia=Z;break}We(g+(Z<<3)|0,t,e);t=Z+1|0;if((Z|0)<9)Z=t;else{Ia=t;break}}if((Ia|0)<10){Z=Ia;while(1){if(f[h+(Z<<2)>>2]|0){V=-1;break f}if((Z|0)<9)Z=Z+1|0;else{V=1;break}}}else V=1}else V=0;else V=x;while(0);u=i;return V|0}function rb(a){a=a|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0;c=u;u=u+64|0;d=c+56|0;e=c+52|0;g=c+48|0;h=c+60|0;i=c;j=c+44|0;k=c+40|0;l=c+36|0;m=c+32|0;n=c+28|0;o=c+24|0;p=c+20|0;q=c+16|0;r=c+12|0;if(!(b[a+352>>0]|0)){_e(d,f[a+8>>2]|0);s=a+12|0;t=f[d>>2]|0;f[d>>2]=0;v=f[s>>2]|0;f[s>>2]=t;if(v){Ii(v);Oq(v);v=f[d>>2]|0;f[d>>2]=0;if(v|0){Ii(v);Oq(v)}}else f[d>>2]=0}else{fh(d,f[a+8>>2]|0);v=a+12|0;t=f[d>>2]|0;f[d>>2]=0;s=f[v>>2]|0;f[v>>2]=t;if(s){Ii(s);Oq(s);s=f[d>>2]|0;f[d>>2]=0;if(s|0){Ii(s);Oq(s)}}else f[d>>2]=0}s=a+12|0;t=f[s>>2]|0;if(!t){w=0;u=c;return w|0}if((((f[t+4>>2]|0)-(f[t>>2]|0)>>2>>>0)/3|0|0)==(f[t+40>>2]|0)){w=0;u=c;return w|0}t=a+200|0;ve(t,a)|0;v=f[s>>2]|0;x=a+4|0;ci(((f[v+28>>2]|0)-(f[v+24>>2]|0)>>2)-(f[v+44>>2]|0)|0,f[(f[x>>2]|0)+44>>2]|0)|0;v=f[s>>2]|0;ci((((f[v+4>>2]|0)-(f[v>>2]|0)>>2>>>0)/3|0)-(f[v+40>>2]|0)|0,f[(f[x>>2]|0)+44>>2]|0)|0;v=a+28|0;y=a+8|0;z=f[y>>2]|0;A=((f[z+100>>2]|0)-(f[z+96>>2]|0)|0)/12|0;b[d>>0]=0;qh(v,A,d);A=f[s>>2]|0;z=(f[A+28>>2]|0)-(f[A+24>>2]|0)>>2;f[d>>2]=-1;hg(a+52|0,z,d);z=a+40|0;A=f[z>>2]|0;B=a+44|0;C=f[B>>2]|0;if((C|0)!=(A|0))f[B>>2]=C+(~((C+-4-A|0)>>>2)<<2);A=f[s>>2]|0;C=(f[A+4>>2]|0)-(f[A>>2]|0)>>2;gk(z,C-((C>>>0)%3|0)|0);C=a+84|0;z=f[s>>2]|0;A=(f[z+28>>2]|0)-(f[z+24>>2]|0)>>2;b[d>>0]=0;qh(C,A,d);A=a+96|0;z=f[A>>2]|0;B=a+100|0;D=f[B>>2]|0;if((D|0)!=(z|0))f[B>>2]=D+(~((D+-4-z|0)>>>2)<<2);f[a+164>>2]=-1;z=a+168|0;f[z>>2]=0;D=f[a+108>>2]|0;E=a+112|0;F=f[E>>2]|0;if((F|0)!=(D|0))f[E>>2]=F+(~(((F+-12-D|0)>>>0)/12|0)*12|0);D=a+132|0;if(f[D>>2]|0){F=a+128|0;E=f[F>>2]|0;if(E|0){G=E;do{E=G;G=f[G>>2]|0;Oq(E)}while((G|0)!=0)}f[F>>2]=0;F=f[a+124>>2]|0;if(F|0){G=a+120|0;E=0;do{f[(f[G>>2]|0)+(E<<2)>>2]=0;E=E+1|0}while((E|0)!=(F|0))}f[D>>2]=0}f[a+144>>2]=0;D=f[s>>2]|0;F=(f[D+28>>2]|0)-(f[D+24>>2]|0)>>2;f[d>>2]=-1;hg(a+152|0,F,d);F=a+72|0;D=f[F>>2]|0;E=a+76|0;G=f[E>>2]|0;if((G|0)!=(D|0))f[E>>2]=G+(~((G+-4-D|0)>>>2)<<2);D=f[s>>2]|0;gk(F,((f[D+4>>2]|0)-(f[D>>2]|0)>>2>>>0)/3|0);f[a+64>>2]=0;if(!(Be(a)|0)){w=0;u=c;return w|0}if(!(Dg(a)|0)){w=0;u=c;return w|0}D=a+172|0;G=a+176|0;H=(((f[G>>2]|0)-(f[D>>2]|0)|0)/136|0)&255;b[h>>0]=H;I=f[(f[x>>2]|0)+44>>2]|0;J=I+16|0;K=f[J+4>>2]|0;if((K|0)>0|(K|0)==0&(f[J>>2]|0)>>>0>0)L=H;else{f[e>>2]=f[I+4>>2];f[d>>2]=f[e>>2];Me(I,d,h,h+1|0)|0;L=b[h>>0]|0}f[a+284>>2]=L&255;L=f[s>>2]|0;h=(f[L+4>>2]|0)-(f[L>>2]|0)|0;L=h>>2;dj(t);f[i>>2]=0;I=i+4|0;f[I>>2]=0;f[i+8>>2]=0;a:do if((h|0)>0){H=a+104|0;J=i+8|0;K=0;b:while(1){M=(K>>>0)/3|0;N=M>>>5;O=1<<(M&31);if((f[(f[v>>2]|0)+(N<<2)>>2]&O|0)==0?(P=f[s>>2]|0,f[j>>2]=M,f[d>>2]=f[j>>2],!(_j(P,d)|0)):0){f[e>>2]=0;f[k>>2]=M;f[d>>2]=f[k>>2];M=xg(a,d,e)|0;fj(t,M);P=f[e>>2]|0;Q=(P|0)==-1;do if(M){do if(Q){R=-1;S=-1;T=-1}else{U=f[f[s>>2]>>2]|0;V=f[U+(P<<2)>>2]|0;W=P+1|0;X=((W>>>0)%3|0|0)==0?P+-2|0:W;if((X|0)==-1)Y=-1;else Y=f[U+(X<<2)>>2]|0;X=(((P>>>0)%3|0|0)==0?2:-1)+P|0;if((X|0)==-1){R=-1;S=Y;T=V;break}R=f[U+(X<<2)>>2]|0;S=Y;T=V}while(0);V=f[C>>2]|0;X=V+(T>>>5<<2)|0;f[X>>2]=f[X>>2]|1<<(T&31);X=V+(S>>>5<<2)|0;f[X>>2]=f[X>>2]|1<<(S&31);X=V+(R>>>5<<2)|0;f[X>>2]=f[X>>2]|1<<(R&31);f[d>>2]=1;X=f[B>>2]|0;if(X>>>0<(f[H>>2]|0)>>>0){f[X>>2]=1;f[B>>2]=X+4}else Ri(A,d);X=(f[v>>2]|0)+(N<<2)|0;f[X>>2]=f[X>>2]|O;X=P+1|0;if(Q)Z=-1;else Z=((X>>>0)%3|0|0)==0?P+-2|0:X;f[d>>2]=Z;V=f[I>>2]|0;if(V>>>0<(f[J>>2]|0)>>>0){f[V>>2]=Z;f[I>>2]=V+4}else Ri(i,d);if(Q)break;V=((X>>>0)%3|0|0)==0?P+-2|0:X;if((V|0)==-1)break;X=f[(f[(f[s>>2]|0)+12>>2]|0)+(V<<2)>>2]|0;V=(X|0)==-1;U=V?-1:(X>>>0)/3|0;if(V)break;if(f[(f[v>>2]|0)+(U>>>5<<2)>>2]&1<<(U&31)|0)break;f[l>>2]=X;f[d>>2]=f[l>>2];if(!(Yb(a,d)|0))break b}else{X=P+1|0;if(Q)_=-1;else _=((X>>>0)%3|0|0)==0?P+-2|0:X;f[m>>2]=_;f[d>>2]=f[m>>2];Pe(a,d,1)|0;f[n>>2]=f[e>>2];f[d>>2]=f[n>>2];if(!(Yb(a,d)|0))break b}while(0)}K=K+1|0;if((K|0)>=(L|0)){$=62;break a}}aa=0}else $=62;while(0);if(($|0)==62){$=f[F>>2]|0;L=f[E>>2]|0;n=L;if(($|0)!=(L|0)?(m=L+-4|0,$>>>0>>0):0){L=$;$=m;do{m=f[L>>2]|0;f[L>>2]=f[$>>2];f[$>>2]=m;L=L+4|0;$=$+-4|0}while(L>>>0<$>>>0)}f[o>>2]=n;f[p>>2]=f[i>>2];f[q>>2]=f[I>>2];f[g>>2]=f[o>>2];f[e>>2]=f[p>>2];f[d>>2]=f[q>>2];Yd(F,g,e,d)|0;if((f[G>>2]|0)!=(f[D>>2]|0)?(D=f[y>>2]|0,y=((f[D+100>>2]|0)-(f[D+96>>2]|0)|0)/12|0,b[d>>0]=0,qh(v,y,d),y=f[F>>2]|0,F=f[E>>2]|0,(y|0)!=(F|0)):0){E=y;do{f[r>>2]=f[E>>2];f[d>>2]=f[r>>2];He(a,d)|0;E=E+4|0}while((E|0)!=(F|0))}pi(t);ci(f[a+324>>2]|0,f[(f[x>>2]|0)+44>>2]|0)|0;ci(f[z>>2]|0,f[(f[x>>2]|0)+44>>2]|0)|0;if(bh(a)|0){z=f[(f[x>>2]|0)+44>>2]|0;x=f[a+232>>2]|0;t=z+16|0;F=f[t+4>>2]|0;if(!((F|0)>0|(F|0)==0&(f[t>>2]|0)>>>0>0)){t=(f[a+236>>2]|0)-x|0;f[e>>2]=f[z+4>>2];f[d>>2]=f[e>>2];Me(z,d,x,x+t|0)|0}aa=1}else aa=0}t=f[i>>2]|0;if(t|0){i=f[I>>2]|0;if((i|0)!=(t|0))f[I>>2]=i+(~((i+-4-t|0)>>>2)<<2);Oq(t)}w=aa;u=c;return w|0}function sb(a){a=a|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,X=0,Y=0,Z=0,_=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=Oa,ma=Oa,na=Oa,oa=0,pa=0,qa=0,ra=0,sa=0;c=u;u=u+64|0;d=c+28|0;e=c+16|0;g=c+4|0;h=c;i=a;j=a+80|0;k=f[j>>2]|0;f[d>>2]=0;f[d+4>>2]=0;f[d+8>>2]=0;f[d+12>>2]=0;f[d+16>>2]=i;l=d+20|0;n[l>>2]=$(1.0);f[d+24>>2]=i;Ih(d,k);k=f[j>>2]|0;f[e>>2]=0;i=e+4|0;f[i>>2]=0;f[e+8>>2]=0;m=(k|0)==0;do if(!m)if(k>>>0>1073741823)aq(e);else{o=k<<2;p=ln(o)|0;f[e>>2]=p;q=p+(k<<2)|0;f[e+8>>2]=q;sj(p|0,0,o|0)|0;f[i>>2]=q;break}while(0);f[g>>2]=0;k=g+4|0;f[k>>2]=0;f[g+8>>2]=0;f[h>>2]=0;if(!m){m=d+16|0;q=d+4|0;o=d+12|0;p=d+8|0;r=g+8|0;s=d+24|0;t=0;v=0;while(1){w=f[m>>2]|0;x=f[w+8>>2]|0;y=(f[w+12>>2]|0)-x|0;w=(y|0)>0;z=x;if(w){x=y>>>2;A=0;B=0;while(1){C=f[z+(A<<2)>>2]|0;if(!(b[C+84>>0]|0))D=f[(f[C+68>>2]|0)+(v<<2)>>2]|0;else D=v;C=D+239^B;A=A+1|0;if((A|0)>=(x|0)){E=C;break}else B=C}}else E=0;B=f[q>>2]|0;x=(B|0)==0;a:do if(!x){A=B+-1|0;C=(A&B|0)==0;if(!C)if(E>>>0>>0)F=E;else F=(E>>>0)%(B>>>0)|0;else F=A&E;G=f[(f[d>>2]|0)+(F<<2)>>2]|0;if((G|0)!=0?(H=f[G>>2]|0,(H|0)!=0):0){G=f[s>>2]|0;I=G+8|0;J=G+12|0;b:do if(C){G=H;while(1){K=f[G+4>>2]|0;L=(K|0)==(E|0);if(!(L|(K&A|0)==(F|0))){M=44;break a}c:do if(L){K=f[G+8>>2]|0;N=f[I>>2]|0;O=(f[J>>2]|0)-N|0;P=N;if((O|0)<=0){Q=G;break b}N=O>>>2;O=0;while(1){R=f[P+(O<<2)>>2]|0;if(!(b[R+84>>0]|0)){S=f[R+68>>2]|0;T=f[S+(v<<2)>>2]|0;U=f[S+(K<<2)>>2]|0}else{T=v;U=K}O=O+1|0;if((U|0)!=(T|0))break c;if((O|0)>=(N|0)){V=G;M=42;break b}}}while(0);G=f[G>>2]|0;if(!G){M=44;break a}}}else{G=H;while(1){L=f[G+4>>2]|0;d:do if((L|0)!=(E|0)){if(L>>>0>>0)X=L;else X=(L>>>0)%(B>>>0)|0;if((X|0)!=(F|0)){M=44;break a}}else{N=f[G+8>>2]|0;O=f[I>>2]|0;K=(f[J>>2]|0)-O|0;P=O;if((K|0)<=0){Q=G;break b}O=K>>>2;K=0;while(1){S=f[P+(K<<2)>>2]|0;if(!(b[S+84>>0]|0)){R=f[S+68>>2]|0;Y=f[R+(v<<2)>>2]|0;Z=f[R+(N<<2)>>2]|0}else{Y=v;Z=N}K=K+1|0;if((Z|0)!=(Y|0))break d;if((K|0)>=(O|0)){V=G;M=42;break b}}}while(0);G=f[G>>2]|0;if(!G){M=44;break a}}}while(0);if((M|0)==42){M=0;if(!V){M=44;break}else Q=V}f[(f[e>>2]|0)+(v<<2)>>2]=f[Q+12>>2];_=t}else M=44}else M=44;while(0);do if((M|0)==44){M=0;if(w){J=y>>>2;I=0;H=0;while(1){A=f[z+(I<<2)>>2]|0;if(!(b[A+84>>0]|0))aa=f[(f[A+68>>2]|0)+(v<<2)>>2]|0;else aa=v;A=aa+239^H;I=I+1|0;if((I|0)>=(J|0)){ba=A;break}else H=A}}else ba=0;e:do if(!x){H=B+-1|0;J=(H&B|0)==0;if(!J)if(ba>>>0>>0)ca=ba;else ca=(ba>>>0)%(B>>>0)|0;else ca=H&ba;I=f[(f[d>>2]|0)+(ca<<2)>>2]|0;if((I|0)!=0?(A=f[I>>2]|0,(A|0)!=0):0){I=f[s>>2]|0;C=I+8|0;G=I+12|0;if(J){J=A;while(1){I=f[J+4>>2]|0;if(!((I|0)==(ba|0)|(I&H|0)==(ca|0))){da=ca;M=76;break e}I=f[J+8>>2]|0;L=f[C>>2]|0;O=(f[G>>2]|0)-L|0;K=L;if((O|0)<=0){ea=v;break e}L=O>>>2;O=0;while(1){N=f[K+(O<<2)>>2]|0;if(!(b[N+84>>0]|0)){P=f[N+68>>2]|0;fa=f[P+(v<<2)>>2]|0;ga=f[P+(I<<2)>>2]|0}else{fa=v;ga=I}O=O+1|0;if((ga|0)!=(fa|0))break;if((O|0)>=(L|0)){ea=v;break e}}J=f[J>>2]|0;if(!J){da=ca;M=76;break e}}}else ha=A;while(1){J=f[ha+4>>2]|0;if((J|0)!=(ba|0)){if(J>>>0>>0)ia=J;else ia=(J>>>0)%(B>>>0)|0;if((ia|0)!=(ca|0)){da=ca;M=76;break e}}J=f[ha+8>>2]|0;H=f[C>>2]|0;L=(f[G>>2]|0)-H|0;O=H;if((L|0)<=0){ea=v;break e}H=L>>>2;L=0;while(1){I=f[O+(L<<2)>>2]|0;if(!(b[I+84>>0]|0)){K=f[I+68>>2]|0;ja=f[K+(v<<2)>>2]|0;ka=f[K+(J<<2)>>2]|0}else{ja=v;ka=J}L=L+1|0;if((ka|0)!=(ja|0))break;if((L|0)>=(H|0)){ea=v;break e}}ha=f[ha>>2]|0;if(!ha){da=ca;M=76;break}}}else{da=ca;M=76}}else{da=0;M=76}while(0);if((M|0)==76){M=0;G=ln(16)|0;f[G+8>>2]=v;f[G+12>>2]=t;f[G+4>>2]=ba;f[G>>2]=0;la=$(((f[o>>2]|0)+1|0)>>>0);ma=$(B>>>0);na=$(n[l>>2]);do if(x|$(na*ma)>>0<3|(B+-1&B|0)!=0)&1;A=~~$(W($(la/na)))>>>0;Ih(d,C>>>0>>0?A:C);C=f[q>>2]|0;A=C+-1|0;if(!(A&C)){oa=C;pa=A&ba;break}if(ba>>>0>>0){oa=C;pa=ba}else{oa=C;pa=(ba>>>0)%(C>>>0)|0}}else{oa=B;pa=da}while(0);C=(f[d>>2]|0)+(pa<<2)|0;A=f[C>>2]|0;if(!A){f[G>>2]=f[p>>2];f[p>>2]=G;f[C>>2]=p;C=f[G>>2]|0;if(C|0){H=f[C+4>>2]|0;C=oa+-1|0;if(C&oa)if(H>>>0>>0)qa=H;else qa=(H>>>0)%(oa>>>0)|0;else qa=H&C;ra=(f[d>>2]|0)+(qa<<2)|0;M=89}}else{f[G>>2]=f[A>>2];ra=A;M=89}if((M|0)==89){M=0;f[ra>>2]=G}f[o>>2]=(f[o>>2]|0)+1;ea=f[h>>2]|0}A=t+1|0;f[(f[e>>2]|0)+(ea<<2)>>2]=t;C=f[k>>2]|0;if((C|0)==(f[r>>2]|0)){Ri(g,h);_=A;break}else{f[C>>2]=f[h>>2];f[k>>2]=C+4;_=A;break}}while(0);v=(f[h>>2]|0)+1|0;f[h>>2]=v;sa=f[j>>2]|0;if(v>>>0>=sa>>>0)break;else t=_}if((_|0)!=(sa|0)){Xa[f[(f[a>>2]|0)+24>>2]&15](a,e,g);f[j>>2]=_}}_=f[g>>2]|0;if(_|0){g=f[k>>2]|0;if((g|0)!=(_|0))f[k>>2]=g+(~((g+-4-_|0)>>>2)<<2);Oq(_)}_=f[e>>2]|0;if(_|0){e=f[i>>2]|0;if((e|0)!=(_|0))f[i>>2]=e+(~((e+-4-_|0)>>>2)<<2);Oq(_)}_=f[d+8>>2]|0;if(_|0){e=_;do{_=e;e=f[e>>2]|0;Oq(_)}while((e|0)!=0)}e=f[d>>2]|0;f[d>>2]=0;if(!e){u=c;return}Oq(e);u=c;return}function tb(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0;g=u;u=u+80|0;h=g+76|0;i=g+72|0;j=g+48|0;k=g+24|0;l=g;m=a+32|0;n=f[c>>2]|0;c=n+1|0;if((n|0)!=-1){o=((c>>>0)%3|0|0)==0?n+-2|0:c;c=(((n>>>0)%3|0|0)==0?2:-1)+n|0;if((o|0)==-1)p=-1;else p=f[(f[f[m>>2]>>2]|0)+(o<<2)>>2]|0;if((c|0)==-1){q=p;r=-1}else{q=p;r=f[(f[f[m>>2]>>2]|0)+(c<<2)>>2]|0}}else{q=-1;r=-1}c=f[a+36>>2]|0;m=f[c>>2]|0;p=(f[c+4>>2]|0)-m>>2;if(p>>>0<=q>>>0)aq(c);o=m;m=f[o+(q<<2)>>2]|0;if(p>>>0<=r>>>0)aq(c);c=f[o+(r<<2)>>2]|0;r=(m|0)<(e|0);do if(r&(c|0)<(e|0)){o=m<<1;p=f[d+(o<<2)>>2]|0;q=((p|0)<0)<<31>>31;n=f[d+((o|1)<<2)>>2]|0;o=((n|0)<0)<<31>>31;s=c<<1;t=f[d+(s<<2)>>2]|0;v=f[d+((s|1)<<2)>>2]|0;if(!((t|0)!=(p|0)|(v|0)!=(n|0))){f[a+8>>2]=p;f[a+12>>2]=n;u=g;return}s=a+4|0;w=f[(f[s>>2]|0)+(e<<2)>>2]|0;f[j>>2]=0;f[j+4>>2]=0;f[j+8>>2]=0;f[j+12>>2]=0;f[j+16>>2]=0;f[j+20>>2]=0;x=f[a>>2]|0;if(!(b[x+84>>0]|0))y=f[(f[x+68>>2]|0)+(w<<2)>>2]|0;else y=w;f[i>>2]=y;w=b[x+24>>0]|0;f[h>>2]=f[i>>2];vb(x,h,w,j)|0;w=f[(f[s>>2]|0)+(m<<2)>>2]|0;f[k>>2]=0;f[k+4>>2]=0;f[k+8>>2]=0;f[k+12>>2]=0;f[k+16>>2]=0;f[k+20>>2]=0;x=f[a>>2]|0;if(!(b[x+84>>0]|0))z=f[(f[x+68>>2]|0)+(w<<2)>>2]|0;else z=w;f[i>>2]=z;w=b[x+24>>0]|0;f[h>>2]=f[i>>2];vb(x,h,w,k)|0;w=f[(f[s>>2]|0)+(c<<2)>>2]|0;f[l>>2]=0;f[l+4>>2]=0;f[l+8>>2]=0;f[l+12>>2]=0;f[l+16>>2]=0;f[l+20>>2]=0;s=f[a>>2]|0;if(!(b[s+84>>0]|0))A=f[(f[s+68>>2]|0)+(w<<2)>>2]|0;else A=w;f[i>>2]=A;w=b[s+24>>0]|0;f[h>>2]=f[i>>2];vb(s,h,w,l)|0;w=l;s=k;x=f[s>>2]|0;B=f[s+4>>2]|0;s=Xn(f[w>>2]|0,f[w+4>>2]|0,x|0,B|0)|0;w=I;C=l+8|0;D=k+8|0;E=f[D>>2]|0;F=f[D+4>>2]|0;D=Xn(f[C>>2]|0,f[C+4>>2]|0,E|0,F|0)|0;C=I;G=l+16|0;H=k+16|0;J=f[H>>2]|0;K=f[H+4>>2]|0;H=Xn(f[G>>2]|0,f[G+4>>2]|0,J|0,K|0)|0;G=I;L=un(s|0,w|0,s|0,w|0)|0;M=I;N=un(D|0,C|0,D|0,C|0)|0;O=Vn(N|0,I|0,L|0,M|0)|0;M=I;L=un(H|0,G|0,H|0,G|0)|0;N=Vn(O|0,M|0,L|0,I|0)|0;L=I;if((N|0)==0&(L|0)==0)break;M=j;O=Xn(f[M>>2]|0,f[M+4>>2]|0,x|0,B|0)|0;B=I;x=j+8|0;M=Xn(f[x>>2]|0,f[x+4>>2]|0,E|0,F|0)|0;F=I;E=j+16|0;x=Xn(f[E>>2]|0,f[E+4>>2]|0,J|0,K|0)|0;K=I;J=un(O|0,B|0,s|0,w|0)|0;E=I;P=un(M|0,F|0,D|0,C|0)|0;Q=Vn(P|0,I|0,J|0,E|0)|0;E=I;J=un(x|0,K|0,H|0,G|0)|0;P=Vn(Q|0,E|0,J|0,I|0)|0;J=I;E=Xn(t|0,((t|0)<0)<<31>>31|0,p|0,q|0)|0;t=I;Q=Xn(v|0,((v|0)<0)<<31>>31|0,n|0,o|0)|0;v=I;R=un(N|0,L|0,p|0,q|0)|0;q=I;p=un(N|0,L|0,n|0,o|0)|0;o=I;n=un(P|0,J|0,E|0,t|0)|0;S=I;T=un(P|0,J|0,Q|0,v|0)|0;U=I;V=Vn(n|0,S|0,R|0,q|0)|0;q=I;R=Vn(T|0,U|0,p|0,o|0)|0;o=I;p=un(P|0,J|0,s|0,w|0)|0;w=I;s=un(P|0,J|0,D|0,C|0)|0;C=I;D=un(P|0,J|0,H|0,G|0)|0;G=I;H=Ik(p|0,w|0,N|0,L|0)|0;w=I;p=Ik(s|0,C|0,N|0,L|0)|0;C=I;s=Ik(D|0,G|0,N|0,L|0)|0;G=I;D=Xn(O|0,B|0,H|0,w|0)|0;w=I;H=Xn(M|0,F|0,p|0,C|0)|0;C=I;p=Xn(x|0,K|0,s|0,G|0)|0;G=I;s=un(D|0,w|0,D|0,w|0)|0;w=I;D=un(H|0,C|0,H|0,C|0)|0;C=Vn(D|0,I|0,s|0,w|0)|0;w=I;s=un(p|0,G|0,p|0,G|0)|0;G=Vn(C|0,w|0,s|0,I|0)|0;s=I;w=Xn(0,0,E|0,t|0)|0;t=I;E=un(G|0,s|0,N|0,L|0)|0;s=I;switch(E|0){case 0:{if(!s){W=0;X=0}else{Y=1;Z=0;_=E;$=s;aa=23}break}case 1:{if(!s){ba=1;ca=0;aa=24}else{Y=1;Z=0;_=E;$=s;aa=23}break}default:{Y=1;Z=0;_=E;$=s;aa=23}}if((aa|0)==23)while(1){aa=0;G=Tn(Y|0,Z|0,1)|0;C=I;p=_;_=Yn(_|0,$|0,2)|0;if(!($>>>0>0|($|0)==0&p>>>0>7)){ba=G;ca=C;aa=24;break}else{Y=G;Z=C;$=I;aa=23}}if((aa|0)==24)while(1){aa=0;C=jp(E|0,s|0,ba|0,ca|0)|0;G=Vn(C|0,I|0,ba|0,ca|0)|0;C=Yn(G|0,I|0,1)|0;G=I;p=un(C|0,G|0,C|0,G|0)|0;D=I;if(D>>>0>s>>>0|(D|0)==(s|0)&p>>>0>E>>>0){ba=C;ca=G;aa=24}else{W=C;X=G;break}}E=un(W|0,X|0,Q|0,v|0)|0;s=I;G=un(W|0,X|0,w|0,t|0)|0;C=I;p=Vn(E|0,s|0,V|0,q|0)|0;D=I;H=Vn(G|0,C|0,R|0,o|0)|0;K=I;x=Ik(p|0,D|0,N|0,L|0)|0;D=I;p=Ik(H|0,K|0,N|0,L|0)|0;K=I;H=Xn(V|0,q|0,E|0,s|0)|0;s=I;E=Xn(R|0,o|0,G|0,C|0)|0;C=I;G=Ik(H|0,s|0,N|0,L|0)|0;s=I;H=Ik(E|0,C|0,N|0,L|0)|0;C=I;E=e<<1;F=f[d+(E<<2)>>2]|0;M=((F|0)<0)<<31>>31;B=f[d+((E|1)<<2)>>2]|0;E=((B|0)<0)<<31>>31;O=Xn(F|0,M|0,x|0,D|0)|0;J=I;P=Xn(B|0,E|0,p|0,K|0)|0;U=I;T=un(O|0,J|0,O|0,J|0)|0;J=I;O=un(P|0,U|0,P|0,U|0)|0;U=Vn(O|0,I|0,T|0,J|0)|0;J=I;T=Xn(F|0,M|0,G|0,s|0)|0;M=I;F=Xn(B|0,E|0,H|0,C|0)|0;E=I;B=un(T|0,M|0,T|0,M|0)|0;M=I;T=un(F|0,E|0,F|0,E|0)|0;E=Vn(T|0,I|0,B|0,M|0)|0;M=I;B=a+16|0;T=a+20|0;F=f[T>>2]|0;O=f[a+24>>2]|0;P=(F|0)==(O<<5|0);if(J>>>0>>0|(J|0)==(M|0)&U>>>0>>0){do if(P)if((F+1|0)<0)aq(B);else{E=O<<6;U=F+32&-32;vi(B,F>>>0<1073741823?(E>>>0>>0?U:E):2147483647);da=f[T>>2]|0;break}else da=F;while(0);f[T>>2]=da+1;L=(f[B>>2]|0)+(da>>>5<<2)|0;f[L>>2]=f[L>>2]|1<<(da&31);ea=x;fa=p;ga=K;ha=D}else{do if(P)if((F+1|0)<0)aq(B);else{L=O<<6;N=F+32&-32;vi(B,F>>>0<1073741823?(L>>>0>>0?N:L):2147483647);ia=f[T>>2]|0;break}else ia=F;while(0);f[T>>2]=ia+1;F=(f[B>>2]|0)+(ia>>>5<<2)|0;f[F>>2]=f[F>>2]&~(1<<(ia&31));ea=G;fa=H;ga=C;ha=s}f[a+8>>2]=ea;f[a+12>>2]=fa;u=g;return}while(0);do if(r)ja=m<<1;else{if((e|0)>0){ja=(e<<1)+-2|0;break}fa=a+8|0;f[fa>>2]=0;f[fa+4>>2]=0;u=g;return}while(0);f[a+8>>2]=f[d+(ja<<2)>>2];f[a+12>>2]=f[d+(ja+1<<2)>>2];u=g;return}function ub(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0;g=u;u=u+80|0;h=g+76|0;i=g+72|0;j=g+48|0;k=g+24|0;l=g;m=a+32|0;n=f[c>>2]|0;c=n+1|0;do if((n|0)!=-1){o=((c>>>0)%3|0|0)==0?n+-2|0:c;if(!((n>>>0)%3|0)){p=n+2|0;q=o;break}else{p=n+-1|0;q=o;break}}else{p=-1;q=-1}while(0);n=f[(f[m>>2]|0)+28>>2]|0;m=f[n+(q<<2)>>2]|0;q=f[n+(p<<2)>>2]|0;p=f[a+36>>2]|0;n=f[p>>2]|0;c=(f[p+4>>2]|0)-n>>2;if(c>>>0<=m>>>0)aq(p);o=n;n=f[o+(m<<2)>>2]|0;if(c>>>0<=q>>>0)aq(p);p=f[o+(q<<2)>>2]|0;q=(n|0)<(e|0);do if(q&(p|0)<(e|0)){o=n<<1;c=f[d+(o<<2)>>2]|0;m=((c|0)<0)<<31>>31;r=f[d+((o|1)<<2)>>2]|0;o=((r|0)<0)<<31>>31;s=p<<1;t=f[d+(s<<2)>>2]|0;v=f[d+((s|1)<<2)>>2]|0;if(!((t|0)!=(c|0)|(v|0)!=(r|0))){f[a+8>>2]=c;f[a+12>>2]=r;u=g;return}s=a+4|0;w=f[(f[s>>2]|0)+(e<<2)>>2]|0;f[j>>2]=0;f[j+4>>2]=0;f[j+8>>2]=0;f[j+12>>2]=0;f[j+16>>2]=0;f[j+20>>2]=0;x=f[a>>2]|0;if(!(b[x+84>>0]|0))y=f[(f[x+68>>2]|0)+(w<<2)>>2]|0;else y=w;f[i>>2]=y;w=b[x+24>>0]|0;f[h>>2]=f[i>>2];vb(x,h,w,j)|0;w=f[(f[s>>2]|0)+(n<<2)>>2]|0;f[k>>2]=0;f[k+4>>2]=0;f[k+8>>2]=0;f[k+12>>2]=0;f[k+16>>2]=0;f[k+20>>2]=0;x=f[a>>2]|0;if(!(b[x+84>>0]|0))z=f[(f[x+68>>2]|0)+(w<<2)>>2]|0;else z=w;f[i>>2]=z;w=b[x+24>>0]|0;f[h>>2]=f[i>>2];vb(x,h,w,k)|0;w=f[(f[s>>2]|0)+(p<<2)>>2]|0;f[l>>2]=0;f[l+4>>2]=0;f[l+8>>2]=0;f[l+12>>2]=0;f[l+16>>2]=0;f[l+20>>2]=0;s=f[a>>2]|0;if(!(b[s+84>>0]|0))A=f[(f[s+68>>2]|0)+(w<<2)>>2]|0;else A=w;f[i>>2]=A;w=b[s+24>>0]|0;f[h>>2]=f[i>>2];vb(s,h,w,l)|0;w=l;s=k;x=f[s>>2]|0;B=f[s+4>>2]|0;s=Xn(f[w>>2]|0,f[w+4>>2]|0,x|0,B|0)|0;w=I;C=l+8|0;D=k+8|0;E=f[D>>2]|0;F=f[D+4>>2]|0;D=Xn(f[C>>2]|0,f[C+4>>2]|0,E|0,F|0)|0;C=I;G=l+16|0;H=k+16|0;J=f[H>>2]|0;K=f[H+4>>2]|0;H=Xn(f[G>>2]|0,f[G+4>>2]|0,J|0,K|0)|0;G=I;L=un(s|0,w|0,s|0,w|0)|0;M=I;N=un(D|0,C|0,D|0,C|0)|0;O=Vn(N|0,I|0,L|0,M|0)|0;M=I;L=un(H|0,G|0,H|0,G|0)|0;N=Vn(O|0,M|0,L|0,I|0)|0;L=I;if((N|0)==0&(L|0)==0)break;M=j;O=Xn(f[M>>2]|0,f[M+4>>2]|0,x|0,B|0)|0;B=I;x=j+8|0;M=Xn(f[x>>2]|0,f[x+4>>2]|0,E|0,F|0)|0;F=I;E=j+16|0;x=Xn(f[E>>2]|0,f[E+4>>2]|0,J|0,K|0)|0;K=I;J=un(O|0,B|0,s|0,w|0)|0;E=I;P=un(M|0,F|0,D|0,C|0)|0;Q=Vn(P|0,I|0,J|0,E|0)|0;E=I;J=un(x|0,K|0,H|0,G|0)|0;P=Vn(Q|0,E|0,J|0,I|0)|0;J=I;E=Xn(t|0,((t|0)<0)<<31>>31|0,c|0,m|0)|0;t=I;Q=Xn(v|0,((v|0)<0)<<31>>31|0,r|0,o|0)|0;v=I;R=un(N|0,L|0,c|0,m|0)|0;m=I;c=un(N|0,L|0,r|0,o|0)|0;o=I;r=un(P|0,J|0,E|0,t|0)|0;S=I;T=un(P|0,J|0,Q|0,v|0)|0;U=I;V=Vn(r|0,S|0,R|0,m|0)|0;m=I;R=Vn(T|0,U|0,c|0,o|0)|0;o=I;c=un(P|0,J|0,s|0,w|0)|0;w=I;s=un(P|0,J|0,D|0,C|0)|0;C=I;D=un(P|0,J|0,H|0,G|0)|0;G=I;H=Ik(c|0,w|0,N|0,L|0)|0;w=I;c=Ik(s|0,C|0,N|0,L|0)|0;C=I;s=Ik(D|0,G|0,N|0,L|0)|0;G=I;D=Xn(O|0,B|0,H|0,w|0)|0;w=I;H=Xn(M|0,F|0,c|0,C|0)|0;C=I;c=Xn(x|0,K|0,s|0,G|0)|0;G=I;s=un(D|0,w|0,D|0,w|0)|0;w=I;D=un(H|0,C|0,H|0,C|0)|0;C=Vn(D|0,I|0,s|0,w|0)|0;w=I;s=un(c|0,G|0,c|0,G|0)|0;G=Vn(C|0,w|0,s|0,I|0)|0;s=I;w=Xn(0,0,E|0,t|0)|0;t=I;E=un(G|0,s|0,N|0,L|0)|0;s=I;switch(E|0){case 0:{if(!s){W=0;X=0}else{Y=1;Z=0;_=E;$=s;aa=22}break}case 1:{if(!s){ba=1;ca=0;aa=23}else{Y=1;Z=0;_=E;$=s;aa=22}break}default:{Y=1;Z=0;_=E;$=s;aa=22}}if((aa|0)==22)while(1){aa=0;G=Tn(Y|0,Z|0,1)|0;C=I;c=_;_=Yn(_|0,$|0,2)|0;if(!($>>>0>0|($|0)==0&c>>>0>7)){ba=G;ca=C;aa=23;break}else{Y=G;Z=C;$=I;aa=22}}if((aa|0)==23)while(1){aa=0;C=jp(E|0,s|0,ba|0,ca|0)|0;G=Vn(C|0,I|0,ba|0,ca|0)|0;C=Yn(G|0,I|0,1)|0;G=I;c=un(C|0,G|0,C|0,G|0)|0;D=I;if(D>>>0>s>>>0|(D|0)==(s|0)&c>>>0>E>>>0){ba=C;ca=G;aa=23}else{W=C;X=G;break}}E=un(W|0,X|0,Q|0,v|0)|0;s=I;G=un(W|0,X|0,w|0,t|0)|0;C=I;c=Vn(E|0,s|0,V|0,m|0)|0;D=I;H=Vn(G|0,C|0,R|0,o|0)|0;K=I;x=Ik(c|0,D|0,N|0,L|0)|0;D=I;c=Ik(H|0,K|0,N|0,L|0)|0;K=I;H=Xn(V|0,m|0,E|0,s|0)|0;s=I;E=Xn(R|0,o|0,G|0,C|0)|0;C=I;G=Ik(H|0,s|0,N|0,L|0)|0;s=I;H=Ik(E|0,C|0,N|0,L|0)|0;C=I;E=e<<1;F=f[d+(E<<2)>>2]|0;M=((F|0)<0)<<31>>31;B=f[d+((E|1)<<2)>>2]|0;E=((B|0)<0)<<31>>31;O=Xn(F|0,M|0,x|0,D|0)|0;J=I;P=Xn(B|0,E|0,c|0,K|0)|0;U=I;T=un(O|0,J|0,O|0,J|0)|0;J=I;O=un(P|0,U|0,P|0,U|0)|0;U=Vn(O|0,I|0,T|0,J|0)|0;J=I;T=Xn(F|0,M|0,G|0,s|0)|0;M=I;F=Xn(B|0,E|0,H|0,C|0)|0;E=I;B=un(T|0,M|0,T|0,M|0)|0;M=I;T=un(F|0,E|0,F|0,E|0)|0;E=Vn(T|0,I|0,B|0,M|0)|0;M=I;B=a+16|0;T=a+20|0;F=f[T>>2]|0;O=f[a+24>>2]|0;P=(F|0)==(O<<5|0);if(J>>>0>>0|(J|0)==(M|0)&U>>>0>>0){do if(P)if((F+1|0)<0)aq(B);else{E=O<<6;U=F+32&-32;vi(B,F>>>0<1073741823?(E>>>0>>0?U:E):2147483647);da=f[T>>2]|0;break}else da=F;while(0);f[T>>2]=da+1;L=(f[B>>2]|0)+(da>>>5<<2)|0;f[L>>2]=f[L>>2]|1<<(da&31);ea=x;fa=c;ga=K;ha=D}else{do if(P)if((F+1|0)<0)aq(B);else{L=O<<6;N=F+32&-32;vi(B,F>>>0<1073741823?(L>>>0>>0?N:L):2147483647);ia=f[T>>2]|0;break}else ia=F;while(0);f[T>>2]=ia+1;F=(f[B>>2]|0)+(ia>>>5<<2)|0;f[F>>2]=f[F>>2]&~(1<<(ia&31));ea=G;fa=H;ga=C;ha=s}f[a+8>>2]=ea;f[a+12>>2]=fa;u=g;return}while(0);do if(q)ja=n<<1;else{if((e|0)>0){ja=(e<<1)+-2|0;break}fa=a+8|0;f[fa>>2]=0;f[fa+4>>2]=0;u=g;return}while(0);f[a+8>>2]=f[d+(ja<<2)>>2];f[a+12>>2]=f[d+(ja+1<<2)>>2];u=g;return}function vb(a,c,e,g){a=a|0;c=c|0;e=e|0;g=g|0;var i=0,k=0,l=0,m=0,o=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=Oa,D=0,E=0.0,F=0,G=0;if(!g){i=0;return i|0}do switch(f[a+28>>2]|0){case 1:{k=a+24|0;l=b[k>>0]|0;if((l<<24>>24>e<<24>>24?e:l)<<24>>24>0){m=f[f[a>>2]>>2]|0;o=a+40|0;q=un(f[o>>2]|0,f[o+4>>2]|0,f[c>>2]|0,0)|0;o=a+48|0;r=Vn(q|0,I|0,f[o>>2]|0,f[o+4>>2]|0)|0;o=m+r|0;r=0;while(1){m=b[o>>0]|0;q=g+(r<<3)|0;f[q>>2]=m;f[q+4>>2]=((m|0)<0)<<31>>31;r=r+1|0;m=b[k>>0]|0;if((r|0)>=((m<<24>>24>e<<24>>24?e:m)<<24>>24|0)){s=m;break}else o=o+1|0}}else s=l;o=s<<24>>24;if(s<<24>>24>=e<<24>>24){i=1;return i|0}sj(g+(o<<3)|0,0,(e<<24>>24)-o<<3|0)|0;i=1;return i|0}case 2:{o=a+24|0;r=b[o>>0]|0;if((r<<24>>24>e<<24>>24?e:r)<<24>>24>0){k=f[f[a>>2]>>2]|0;m=a+40|0;q=un(f[m>>2]|0,f[m+4>>2]|0,f[c>>2]|0,0)|0;m=a+48|0;t=Vn(q|0,I|0,f[m>>2]|0,f[m+4>>2]|0)|0;m=k+t|0;t=0;while(1){k=g+(t<<3)|0;f[k>>2]=h[m>>0];f[k+4>>2]=0;t=t+1|0;k=b[o>>0]|0;if((t|0)>=((k<<24>>24>e<<24>>24?e:k)<<24>>24|0)){u=k;break}else m=m+1|0}}else u=r;m=u<<24>>24;if(u<<24>>24>=e<<24>>24){i=1;return i|0}sj(g+(m<<3)|0,0,(e<<24>>24)-m<<3|0)|0;i=1;return i|0}case 3:{m=a+24|0;t=b[m>>0]|0;if((t<<24>>24>e<<24>>24?e:t)<<24>>24>0){o=f[f[a>>2]>>2]|0;l=a+40|0;k=un(f[l>>2]|0,f[l+4>>2]|0,f[c>>2]|0,0)|0;l=a+48|0;q=Vn(k|0,I|0,f[l>>2]|0,f[l+4>>2]|0)|0;l=o+q|0;q=0;while(1){o=d[l>>1]|0;k=g+(q<<3)|0;f[k>>2]=o;f[k+4>>2]=((o|0)<0)<<31>>31;q=q+1|0;o=b[m>>0]|0;if((q|0)>=((o<<24>>24>e<<24>>24?e:o)<<24>>24|0)){v=o;break}else l=l+2|0}}else v=t;l=v<<24>>24;if(v<<24>>24>=e<<24>>24){i=1;return i|0}sj(g+(l<<3)|0,0,(e<<24>>24)-l<<3|0)|0;i=1;return i|0}case 4:{l=a+24|0;q=b[l>>0]|0;if((q<<24>>24>e<<24>>24?e:q)<<24>>24>0){m=f[f[a>>2]>>2]|0;r=a+40|0;o=un(f[r>>2]|0,f[r+4>>2]|0,f[c>>2]|0,0)|0;r=a+48|0;k=Vn(o|0,I|0,f[r>>2]|0,f[r+4>>2]|0)|0;r=m+k|0;k=0;while(1){m=g+(k<<3)|0;f[m>>2]=j[r>>1];f[m+4>>2]=0;k=k+1|0;m=b[l>>0]|0;if((k|0)>=((m<<24>>24>e<<24>>24?e:m)<<24>>24|0)){w=m;break}else r=r+2|0}}else w=q;r=w<<24>>24;if(w<<24>>24>=e<<24>>24){i=1;return i|0}sj(g+(r<<3)|0,0,(e<<24>>24)-r<<3|0)|0;i=1;return i|0}case 5:{r=a+24|0;k=b[r>>0]|0;if((k<<24>>24>e<<24>>24?e:k)<<24>>24>0){l=f[f[a>>2]>>2]|0;t=a+40|0;m=un(f[t>>2]|0,f[t+4>>2]|0,f[c>>2]|0,0)|0;t=a+48|0;o=Vn(m|0,I|0,f[t>>2]|0,f[t+4>>2]|0)|0;t=l+o|0;o=0;while(1){l=f[t>>2]|0;m=g+(o<<3)|0;f[m>>2]=l;f[m+4>>2]=((l|0)<0)<<31>>31;o=o+1|0;l=b[r>>0]|0;if((o|0)>=((l<<24>>24>e<<24>>24?e:l)<<24>>24|0)){x=l;break}else t=t+4|0}}else x=k;t=x<<24>>24;if(x<<24>>24>=e<<24>>24){i=1;return i|0}sj(g+(t<<3)|0,0,(e<<24>>24)-t<<3|0)|0;i=1;return i|0}case 6:{t=a+24|0;o=b[t>>0]|0;if((o<<24>>24>e<<24>>24?e:o)<<24>>24>0){r=f[f[a>>2]>>2]|0;q=a+40|0;l=un(f[q>>2]|0,f[q+4>>2]|0,f[c>>2]|0,0)|0;q=a+48|0;m=Vn(l|0,I|0,f[q>>2]|0,f[q+4>>2]|0)|0;q=r+m|0;m=0;while(1){r=g+(m<<3)|0;f[r>>2]=f[q>>2];f[r+4>>2]=0;m=m+1|0;r=b[t>>0]|0;if((m|0)>=((r<<24>>24>e<<24>>24?e:r)<<24>>24|0)){y=r;break}else q=q+4|0}}else y=o;q=y<<24>>24;if(y<<24>>24>=e<<24>>24){i=1;return i|0}sj(g+(q<<3)|0,0,(e<<24>>24)-q<<3|0)|0;i=1;return i|0}case 7:{q=a+24|0;m=b[q>>0]|0;if((m<<24>>24>e<<24>>24?e:m)<<24>>24>0){t=f[f[a>>2]>>2]|0;k=a+40|0;r=un(f[k>>2]|0,f[k+4>>2]|0,f[c>>2]|0,0)|0;k=a+48|0;l=Vn(r|0,I|0,f[k>>2]|0,f[k+4>>2]|0)|0;k=t+l|0;l=0;while(1){t=k;r=f[t+4>>2]|0;z=g+(l<<3)|0;f[z>>2]=f[t>>2];f[z+4>>2]=r;l=l+1|0;r=b[q>>0]|0;if((l|0)>=((r<<24>>24>e<<24>>24?e:r)<<24>>24|0)){A=r;break}else k=k+8|0}}else A=m;k=A<<24>>24;if(A<<24>>24>=e<<24>>24){i=1;return i|0}sj(g+(k<<3)|0,0,(e<<24>>24)-k<<3|0)|0;i=1;return i|0}case 8:{k=a+24|0;l=b[k>>0]|0;if((l<<24>>24>e<<24>>24?e:l)<<24>>24>0){q=f[f[a>>2]>>2]|0;o=a+40|0;r=un(f[o>>2]|0,f[o+4>>2]|0,f[c>>2]|0,0)|0;o=a+48|0;z=Vn(r|0,I|0,f[o>>2]|0,f[o+4>>2]|0)|0;o=q+z|0;z=0;while(1){q=o;r=f[q+4>>2]|0;t=g+(z<<3)|0;f[t>>2]=f[q>>2];f[t+4>>2]=r;z=z+1|0;r=b[k>>0]|0;if((z|0)>=((r<<24>>24>e<<24>>24?e:r)<<24>>24|0)){B=r;break}else o=o+8|0}}else B=l;o=B<<24>>24;if(B<<24>>24>=e<<24>>24){i=1;return i|0}sj(g+(o<<3)|0,0,(e<<24>>24)-o<<3|0)|0;i=1;return i|0}case 9:{o=a+24|0;z=b[o>>0]|0;if((z<<24>>24>e<<24>>24?e:z)<<24>>24>0){k=f[f[a>>2]>>2]|0;m=a+40|0;r=un(f[m>>2]|0,f[m+4>>2]|0,f[c>>2]|0,0)|0;m=a+48|0;t=Vn(r|0,I|0,f[m>>2]|0,f[m+4>>2]|0)|0;m=k+t|0;t=0;while(1){C=$(n[m>>2]);k=+K(+C)>=1.0?(+C>0.0?~~+Y(+J(+C/4294967296.0),4294967295.0)>>>0:~~+W((+C-+(~~+C>>>0))/4294967296.0)>>>0):0;r=g+(t<<3)|0;f[r>>2]=~~+C>>>0;f[r+4>>2]=k;t=t+1|0;k=b[o>>0]|0;if((t|0)>=((k<<24>>24>e<<24>>24?e:k)<<24>>24|0)){D=k;break}else m=m+4|0}}else D=z;m=D<<24>>24;if(D<<24>>24>=e<<24>>24){i=1;return i|0}sj(g+(m<<3)|0,0,(e<<24>>24)-m<<3|0)|0;i=1;return i|0}case 10:{m=a+24|0;t=b[m>>0]|0;if((t<<24>>24>e<<24>>24?e:t)<<24>>24>0){o=f[f[a>>2]>>2]|0;l=a+40|0;k=un(f[l>>2]|0,f[l+4>>2]|0,f[c>>2]|0,0)|0;l=a+48|0;r=Vn(k|0,I|0,f[l>>2]|0,f[l+4>>2]|0)|0;l=o+r|0;r=0;while(1){E=+p[l>>3];o=+K(E)>=1.0?(E>0.0?~~+Y(+J(E/4294967296.0),4294967295.0)>>>0:~~+W((E-+(~~E>>>0))/4294967296.0)>>>0):0;k=g+(r<<3)|0;f[k>>2]=~~E>>>0;f[k+4>>2]=o;r=r+1|0;o=b[m>>0]|0;if((r|0)>=((o<<24>>24>e<<24>>24?e:o)<<24>>24|0)){F=o;break}else l=l+8|0}}else F=t;l=F<<24>>24;if(F<<24>>24>=e<<24>>24){i=1;return i|0}sj(g+(l<<3)|0,0,(e<<24>>24)-l<<3|0)|0;i=1;return i|0}case 11:{l=a+24|0;r=b[l>>0]|0;if((r<<24>>24>e<<24>>24?e:r)<<24>>24>0){m=f[f[a>>2]>>2]|0;z=a+40|0;o=un(f[z>>2]|0,f[z+4>>2]|0,f[c>>2]|0,0)|0;z=a+48|0;k=Vn(o|0,I|0,f[z>>2]|0,f[z+4>>2]|0)|0;z=m+k|0;k=0;while(1){m=g+(k<<3)|0;f[m>>2]=h[z>>0];f[m+4>>2]=0;k=k+1|0;m=b[l>>0]|0;if((k|0)>=((m<<24>>24>e<<24>>24?e:m)<<24>>24|0)){G=m;break}else z=z+1|0}}else G=r;z=G<<24>>24;if(G<<24>>24>=e<<24>>24){i=1;return i|0}sj(g+(z<<3)|0,0,(e<<24>>24)-z<<3|0)|0;i=1;return i|0}default:{i=0;return i|0}}while(0);return 0}function wb(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0;c=u;u=u+16|0;d=c+8|0;e=c;if((f[a+96>>2]|0)==(f[a+92>>2]|0)){u=c;return}g=a+56|0;h=f[g>>2]|0;if((h|0)==(f[a+60>>2]|0)){Ri(a+52|0,b);i=b}else{f[h>>2]=f[b>>2];f[g>>2]=h+4;i=b}b=a+88|0;f[b>>2]=0;h=f[a>>2]|0;g=f[i>>2]|0;j=g+1|0;if((g|0)!=-1){k=((j>>>0)%3|0|0)==0?g+-2|0:j;if((k|0)==-1)l=-1;else l=f[(f[h>>2]|0)+(k<<2)>>2]|0;k=(((g>>>0)%3|0|0)==0?2:-1)+g|0;if((k|0)==-1){m=l;n=-1}else{m=l;n=f[(f[h>>2]|0)+(k<<2)>>2]|0}}else{m=-1;n=-1}k=a+24|0;h=f[k>>2]|0;l=h+(m>>>5<<2)|0;g=1<<(m&31);j=f[l>>2]|0;if(!(j&g)){f[l>>2]=j|g;g=f[i>>2]|0;j=g+1|0;if((g|0)==-1)o=-1;else o=((j>>>0)%3|0|0)==0?g+-2|0:j;f[e>>2]=o;j=f[(f[(f[a+44>>2]|0)+96>>2]|0)+(((o>>>0)/3|0)*12|0)+(((o>>>0)%3|0)<<2)>>2]|0;o=f[a+48>>2]|0;f[d>>2]=j;g=f[o+4>>2]|0;o=g+4|0;l=f[o>>2]|0;if((l|0)==(f[g+8>>2]|0))Ri(g,d);else{f[l>>2]=j;f[o>>2]=l+4}l=a+40|0;o=f[l>>2]|0;j=o+4|0;g=f[j>>2]|0;if((g|0)==(f[o+8>>2]|0)){Ri(o,e);p=f[l>>2]|0}else{f[g>>2]=f[e>>2];f[j>>2]=g+4;p=o}o=p+24|0;f[(f[p+12>>2]|0)+(m<<2)>>2]=f[o>>2];f[o>>2]=(f[o>>2]|0)+1;q=f[k>>2]|0}else q=h;h=q+(n>>>5<<2)|0;q=1<<(n&31);o=f[h>>2]|0;if(!(o&q)){f[h>>2]=o|q;q=f[i>>2]|0;do if((q|0)!=-1)if(!((q>>>0)%3|0)){r=q+2|0;break}else{r=q+-1|0;break}else r=-1;while(0);f[e>>2]=r;q=f[(f[(f[a+44>>2]|0)+96>>2]|0)+(((r>>>0)/3|0)*12|0)+(((r>>>0)%3|0)<<2)>>2]|0;r=f[a+48>>2]|0;f[d>>2]=q;o=f[r+4>>2]|0;r=o+4|0;h=f[r>>2]|0;if((h|0)==(f[o+8>>2]|0))Ri(o,d);else{f[h>>2]=q;f[r>>2]=h+4}h=a+40|0;r=f[h>>2]|0;q=r+4|0;o=f[q>>2]|0;if((o|0)==(f[r+8>>2]|0)){Ri(r,e);s=f[h>>2]|0}else{f[o>>2]=f[e>>2];f[q>>2]=o+4;s=r}r=s+24|0;f[(f[s+12>>2]|0)+(n<<2)>>2]=f[r>>2];f[r>>2]=(f[r>>2]|0)+1}r=f[i>>2]|0;if((r|0)==-1)t=-1;else t=f[(f[f[a>>2]>>2]|0)+(r<<2)>>2]|0;r=(f[k>>2]|0)+(t>>>5<<2)|0;n=1<<(t&31);s=f[r>>2]|0;if(!(n&s)){f[r>>2]=s|n;n=f[i>>2]|0;f[e>>2]=n;s=f[(f[(f[a+44>>2]|0)+96>>2]|0)+(((n>>>0)/3|0)*12|0)+(((n>>>0)%3|0)<<2)>>2]|0;n=f[a+48>>2]|0;f[d>>2]=s;r=f[n+4>>2]|0;n=r+4|0;o=f[n>>2]|0;if((o|0)==(f[r+8>>2]|0))Ri(r,d);else{f[o>>2]=s;f[n>>2]=o+4}o=a+40|0;n=f[o>>2]|0;s=n+4|0;r=f[s>>2]|0;if((r|0)==(f[n+8>>2]|0)){Ri(n,e);v=f[o>>2]|0}else{f[r>>2]=f[e>>2];f[s>>2]=r+4;v=n}n=v+24|0;f[(f[v+12>>2]|0)+(t<<2)>>2]=f[n>>2];f[n>>2]=(f[n>>2]|0)+1}n=f[b>>2]|0;a:do if((n|0)<3){t=a+12|0;v=a+44|0;r=a+48|0;s=a+40|0;o=a+92|0;q=n;while(1){h=q;while(1){w=a+52+(h*12|0)+4|0;x=f[w>>2]|0;if((f[a+52+(h*12|0)>>2]|0)!=(x|0))break;if((h|0)<2)h=h+1|0;else break a}m=x+-4|0;p=f[m>>2]|0;f[w>>2]=m;f[b>>2]=h;f[i>>2]=p;if((p|0)==-1)break;m=(p>>>0)/3|0;g=f[t>>2]|0;do if(!(f[g+(m>>>5<<2)>>2]&1<<(m&31))){j=p;l=g;b:while(1){y=(j>>>0)/3|0;z=l+(y>>>5<<2)|0;f[z>>2]=1<<(y&31)|f[z>>2];z=f[i>>2]|0;if((z|0)==-1)A=-1;else A=f[(f[f[a>>2]>>2]|0)+(z<<2)>>2]|0;y=(f[k>>2]|0)+(A>>>5<<2)|0;B=1<<(A&31);C=f[y>>2]|0;if(!(B&C)){f[y>>2]=C|B;B=f[i>>2]|0;f[e>>2]=B;C=f[(f[(f[v>>2]|0)+96>>2]|0)+(((B>>>0)/3|0)*12|0)+(((B>>>0)%3|0)<<2)>>2]|0;B=f[r>>2]|0;f[d>>2]=C;y=f[B+4>>2]|0;B=y+4|0;D=f[B>>2]|0;if((D|0)==(f[y+8>>2]|0))Ri(y,d);else{f[D>>2]=C;f[B>>2]=D+4}D=f[s>>2]|0;B=D+4|0;C=f[B>>2]|0;if((C|0)==(f[D+8>>2]|0)){Ri(D,e);E=f[s>>2]|0}else{f[C>>2]=f[e>>2];f[B>>2]=C+4;E=D}D=E+24|0;f[(f[E+12>>2]|0)+(A<<2)>>2]=f[D>>2];f[D>>2]=(f[D>>2]|0)+1;F=f[i>>2]|0}else F=z;z=f[a>>2]|0;if((F|0)==-1){G=93;break}D=F+1|0;C=((D>>>0)%3|0|0)==0?F+-2|0:D;if((C|0)==-1)H=-1;else H=f[(f[z+12>>2]|0)+(C<<2)>>2]|0;C=(((F>>>0)%3|0|0)==0?2:-1)+F|0;if((C|0)==-1)I=-1;else I=f[(f[z+12>>2]|0)+(C<<2)>>2]|0;C=(H|0)==-1;D=C?-1:(H>>>0)/3|0;B=(I|0)==-1;y=B?-1:(I>>>0)/3|0;if(C)J=1;else J=(f[(f[t>>2]|0)+(D>>>5<<2)>>2]&1<<(D&31)|0)!=0;do if(B)if(J){G=93;break b}else G=82;else{if(f[(f[t>>2]|0)+(y>>>5<<2)>>2]&1<<(y&31)|0)if(J){G=93;break b}else{G=82;break}D=f[(f[z>>2]|0)+(I<<2)>>2]|0;if(!(1<<(D&31)&f[(f[k>>2]|0)+(D>>>5<<2)>>2])){K=(f[o>>2]|0)+(D<<2)|0;D=f[K>>2]|0;f[K>>2]=D+1;L=(D|0)>0?1:2}else L=0;if(J?(L|0)<=(f[b>>2]|0):0){M=I;break}f[d>>2]=I;D=a+52+(L*12|0)+4|0;K=f[D>>2]|0;if((K|0)==(f[a+52+(L*12|0)+8>>2]|0))Ri(a+52+(L*12|0)|0,d);else{f[K>>2]=I;f[D>>2]=K+4}if((f[b>>2]|0)>(L|0))f[b>>2]=L;if(J){G=93;break b}else G=82}while(0);if((G|0)==82){G=0;if(C)N=-1;else N=f[(f[f[a>>2]>>2]|0)+(H<<2)>>2]|0;if(!(1<<(N&31)&f[(f[k>>2]|0)+(N>>>5<<2)>>2])){z=(f[o>>2]|0)+(N<<2)|0;y=f[z>>2]|0;f[z>>2]=y+1;O=(y|0)>0?1:2}else O=0;if((O|0)>(f[b>>2]|0))break;else M=H}f[i>>2]=M;j=M;l=f[t>>2]|0}if((G|0)==93){G=0;P=f[b>>2]|0;break}f[d>>2]=H;l=a+52+(O*12|0)+4|0;j=f[l>>2]|0;if((j|0)==(f[a+52+(O*12|0)+8>>2]|0))Ri(a+52+(O*12|0)|0,d);else{f[j>>2]=H;f[l>>2]=j+4}j=f[b>>2]|0;if((j|0)>(O|0)){f[b>>2]=O;Q=O}else Q=j;P=Q}else P=h;while(0);if((P|0)<3)q=P;else break a}u=c;return}while(0);f[i>>2]=-1;u=c;return}function xb(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0;d=a;a=b;a:while(1){b=a;e=a+-4|0;g=d;while(1){h=g;b:while(1){i=h;j=b-i|0;k=j>>2;switch(k|0){case 2:{l=5;break a;break}case 3:{l=11;break a;break}case 4:{l=12;break a;break}case 5:{l=13;break a;break}case 1:case 0:{l=84;break a;break}default:{}}if((j|0)<124){l=15;break a}m=h+(((k|0)/2|0)<<2)|0;if((j|0)>3996){j=(k|0)/4|0;n=ig(h,h+(j<<2)|0,m,m+(j<<2)|0,e,c)|0}else n=Vg(h,m,e,c)|0;o=f[h>>2]|0;j=f[m>>2]|0;p=f[c>>2]|0;k=f[p>>2]|0;q=(f[p+4>>2]|0)-k>>3;if(q>>>0<=o>>>0){l=20;break a}r=k;if(q>>>0<=j>>>0){l=22;break a}k=f[r+(o<<3)>>2]|0;s=f[r+(j<<3)>>2]|0;if(k>>>0>>0){t=e;u=n;break}else v=e;while(1){v=v+-4|0;if((h|0)==(v|0))break;w=f[v>>2]|0;if(q>>>0<=w>>>0){l=51;break a}if((f[r+(w<<3)>>2]|0)>>>0>>0){l=53;break b}}s=h+4|0;j=f[e>>2]|0;if(q>>>0<=j>>>0){l=26;break a}if(k>>>0<(f[r+(j<<3)>>2]|0)>>>0)x=s;else{if((s|0)==(e|0)){l=84;break a}else y=s;while(1){z=f[y>>2]|0;if(q>>>0<=z>>>0){l=32;break a}if(k>>>0<(f[r+(z<<3)>>2]|0)>>>0)break;s=y+4|0;if((s|0)==(e|0)){l=84;break a}else y=s}f[y>>2]=j;f[e>>2]=z;x=y+4|0}if((x|0)==(e|0)){l=84;break a}r=f[h>>2]|0;A=f[c>>2]|0;k=f[A>>2]|0;q=(f[A+4>>2]|0)-k>>3;if(q>>>0<=r>>>0){l=38;break a}s=k;k=e;B=x;C=r;while(1){r=s+(C<<3)|0;D=q>>>0>C>>>0;E=B;while(1){F=f[E>>2]|0;if(q>>>0<=F>>>0){l=40;break a}G=f[r>>2]|0;if(G>>>0<(f[s+(F<<3)>>2]|0)>>>0)break;if(D)E=E+4|0;else{l=38;break a}}if(q>>>0>C>>>0)H=k;else{l=46;break a}do{H=H+-4|0;I=f[H>>2]|0;if(q>>>0<=I>>>0){l=47;break a}}while(G>>>0<(f[s+(I<<3)>>2]|0)>>>0);if(E>>>0>=H>>>0){h=E;continue b}D=f[E>>2]|0;f[E>>2]=I;f[H>>2]=D;C=f[h>>2]|0;if(q>>>0<=C>>>0){l=38;break a}else{k=H;B=E+4|0}}}if((l|0)==53){l=0;f[h>>2]=w;f[v>>2]=o;t=v;u=n+1|0}B=h+4|0;c:do if(B>>>0>>0){k=f[B>>2]|0;C=f[c>>2]|0;q=f[C>>2]|0;s=(f[C+4>>2]|0)-q>>3;if(s>>>0>k>>>0){J=t;K=B;L=u;M=m;N=s;O=q;P=C;Q=k}else{R=C;l=57;break a}while(1){C=f[c>>2]|0;k=C+4|0;q=f[M>>2]|0;s=K;j=O;D=N;S=P;r=Q;while(1){F=j;if(D>>>0<=q>>>0){l=59;break a}if((f[F+(r<<3)>>2]|0)>>>0>=(f[F+(q<<3)>>2]|0)>>>0)break;F=s+4|0;T=f[F>>2]|0;j=f[C>>2]|0;D=(f[k>>2]|0)-j>>3;if(D>>>0<=T>>>0){R=C;l=57;break a}else{s=F;S=C;r=T}}C=f[M>>2]|0;O=f[S>>2]|0;N=(f[S+4>>2]|0)-O>>3;D=O;j=D+(C<<3)|0;if(N>>>0>C>>>0)U=J;else{l=65;break a}do{U=U+-4|0;V=f[U>>2]|0;if(N>>>0<=V>>>0){l=66;break a}}while((f[D+(V<<3)>>2]|0)>>>0>=(f[j>>2]|0)>>>0);if(s>>>0>U>>>0){W=M;X=L;Y=s;break c}f[s>>2]=V;f[U>>2]=r;K=s+4|0;Q=f[K>>2]|0;if(N>>>0<=Q>>>0){R=S;l=57;break a}else{J=U;L=L+1|0;M=(M|0)==(s|0)?U:M;P=S}}}else{W=m;X=u;Y=B}while(0);if((Y|0)!=(W|0)){B=f[W>>2]|0;j=f[Y>>2]|0;Z=f[c>>2]|0;D=f[Z>>2]|0;C=(f[Z+4>>2]|0)-D>>3;if(C>>>0<=B>>>0){l=72;break a}k=D;if(C>>>0<=j>>>0){l=74;break a}if((f[k+(B<<3)>>2]|0)>>>0<(f[k+(j<<3)>>2]|0)>>>0){f[Y>>2]=B;f[W>>2]=j;_=X+1|0}else _=X}else _=X;if(!_){$=_d(h,Y,c)|0;j=Y+4|0;if(_d(j,a,c)|0){l=83;break}if($){g=j;continue}}j=Y;if((j-i|0)>=(b-j|0)){l=82;break}xb(h,Y,c);g=Y+4|0}if((l|0)==82){l=0;xb(Y+4|0,a,c);d=h;a=Y;continue}else if((l|0)==83){l=0;if($){l=84;break}else{d=h;a=Y;continue}}}switch(l|0){case 5:{l=f[e>>2]|0;Y=f[h>>2]|0;d=f[c>>2]|0;$=f[d>>2]|0;i=(f[d+4>>2]|0)-$>>3;if(i>>>0<=l>>>0)aq(d);_=$;if(i>>>0<=Y>>>0)aq(d);if((f[_+(l<<3)>>2]|0)>>>0>=(f[_+(Y<<3)>>2]|0)>>>0)return;f[h>>2]=l;f[e>>2]=Y;return}case 11:{Vg(h,h+4|0,e,c)|0;return}case 12:{jh(h,h+4|0,h+8|0,e,c)|0;return}case 13:{ig(h,h+4|0,h+8|0,h+12|0,e,c)|0;return}case 15:{ih(h,a,c);return}case 20:{aq(p);break}case 22:{aq(p);break}case 26:{aq(p);break}case 32:{aq(p);break}case 38:{aq(A);break}case 40:{aq(A);break}case 46:{aq(A);break}case 47:{aq(A);break}case 51:{aq(p);break}case 57:{aq(R);break}case 59:{aq(S);break}case 65:{if(N>>>0>(f[J+-4>>2]|0)>>>0)aq(S);else aq(S);break}case 66:{aq(S);break}case 72:{aq(Z);break}case 74:{aq(Z);break}case 84:return}}function yb(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0;d=a;a=b;a:while(1){b=a;e=a+-4|0;g=d;while(1){h=g;b:while(1){i=h;j=b-i|0;k=j>>2;switch(k|0){case 2:{l=5;break a;break}case 3:{l=11;break a;break}case 4:{l=12;break a;break}case 5:{l=13;break a;break}case 1:case 0:{l=84;break a;break}default:{}}if((j|0)<124){l=15;break a}m=h+(((k|0)/2|0)<<2)|0;if((j|0)>3996){j=(k|0)/4|0;n=ig(h,h+(j<<2)|0,m,m+(j<<2)|0,e,c)|0}else n=Vg(h,m,e,c)|0;o=f[h>>2]|0;j=f[m>>2]|0;p=f[c>>2]|0;k=f[p>>2]|0;q=(f[p+4>>2]|0)-k>>3;if(q>>>0<=o>>>0){l=20;break a}r=k;if(q>>>0<=j>>>0){l=22;break a}k=f[r+(o<<3)>>2]|0;s=f[r+(j<<3)>>2]|0;if(k>>>0>>0){t=e;u=n;break}else v=e;while(1){v=v+-4|0;if((h|0)==(v|0))break;w=f[v>>2]|0;if(q>>>0<=w>>>0){l=51;break a}if((f[r+(w<<3)>>2]|0)>>>0>>0){l=53;break b}}s=h+4|0;j=f[e>>2]|0;if(q>>>0<=j>>>0){l=26;break a}if(k>>>0<(f[r+(j<<3)>>2]|0)>>>0)x=s;else{if((s|0)==(e|0)){l=84;break a}else y=s;while(1){z=f[y>>2]|0;if(q>>>0<=z>>>0){l=32;break a}if(k>>>0<(f[r+(z<<3)>>2]|0)>>>0)break;s=y+4|0;if((s|0)==(e|0)){l=84;break a}else y=s}f[y>>2]=j;f[e>>2]=z;x=y+4|0}if((x|0)==(e|0)){l=84;break a}r=f[h>>2]|0;A=f[c>>2]|0;k=f[A>>2]|0;q=(f[A+4>>2]|0)-k>>3;if(q>>>0<=r>>>0){l=38;break a}s=k;k=e;B=x;C=r;while(1){r=s+(C<<3)|0;D=q>>>0>C>>>0;E=B;while(1){F=f[E>>2]|0;if(q>>>0<=F>>>0){l=40;break a}G=f[r>>2]|0;if(G>>>0<(f[s+(F<<3)>>2]|0)>>>0)break;if(D)E=E+4|0;else{l=38;break a}}if(q>>>0>C>>>0)H=k;else{l=46;break a}do{H=H+-4|0;I=f[H>>2]|0;if(q>>>0<=I>>>0){l=47;break a}}while(G>>>0<(f[s+(I<<3)>>2]|0)>>>0);if(E>>>0>=H>>>0){h=E;continue b}D=f[E>>2]|0;f[E>>2]=I;f[H>>2]=D;C=f[h>>2]|0;if(q>>>0<=C>>>0){l=38;break a}else{k=H;B=E+4|0}}}if((l|0)==53){l=0;f[h>>2]=w;f[v>>2]=o;t=v;u=n+1|0}B=h+4|0;c:do if(B>>>0>>0){k=f[B>>2]|0;C=f[c>>2]|0;q=f[C>>2]|0;s=(f[C+4>>2]|0)-q>>3;if(s>>>0>k>>>0){J=t;K=B;L=u;M=m;N=s;O=q;P=C;Q=k}else{R=C;l=57;break a}while(1){C=f[c>>2]|0;k=C+4|0;q=f[M>>2]|0;s=K;j=O;D=N;S=P;r=Q;while(1){F=j;if(D>>>0<=q>>>0){l=59;break a}if((f[F+(r<<3)>>2]|0)>>>0>=(f[F+(q<<3)>>2]|0)>>>0)break;F=s+4|0;T=f[F>>2]|0;j=f[C>>2]|0;D=(f[k>>2]|0)-j>>3;if(D>>>0<=T>>>0){R=C;l=57;break a}else{s=F;S=C;r=T}}C=f[M>>2]|0;O=f[S>>2]|0;N=(f[S+4>>2]|0)-O>>3;D=O;j=D+(C<<3)|0;if(N>>>0>C>>>0)U=J;else{l=65;break a}do{U=U+-4|0;V=f[U>>2]|0;if(N>>>0<=V>>>0){l=66;break a}}while((f[D+(V<<3)>>2]|0)>>>0>=(f[j>>2]|0)>>>0);if(s>>>0>U>>>0){W=M;X=L;Y=s;break c}f[s>>2]=V;f[U>>2]=r;K=s+4|0;Q=f[K>>2]|0;if(N>>>0<=Q>>>0){R=S;l=57;break a}else{J=U;L=L+1|0;M=(M|0)==(s|0)?U:M;P=S}}}else{W=m;X=u;Y=B}while(0);if((Y|0)!=(W|0)){B=f[W>>2]|0;j=f[Y>>2]|0;Z=f[c>>2]|0;D=f[Z>>2]|0;C=(f[Z+4>>2]|0)-D>>3;if(C>>>0<=B>>>0){l=72;break a}k=D;if(C>>>0<=j>>>0){l=74;break a}if((f[k+(B<<3)>>2]|0)>>>0<(f[k+(j<<3)>>2]|0)>>>0){f[Y>>2]=B;f[W>>2]=j;_=X+1|0}else _=X}else _=X;if(!_){$=_d(h,Y,c)|0;j=Y+4|0;if(_d(j,a,c)|0){l=83;break}if($){g=j;continue}}j=Y;if((j-i|0)>=(b-j|0)){l=82;break}yb(h,Y,c);g=Y+4|0}if((l|0)==82){l=0;yb(Y+4|0,a,c);d=h;a=Y;continue}else if((l|0)==83){l=0;if($){l=84;break}else{d=h;a=Y;continue}}}switch(l|0){case 5:{l=f[e>>2]|0;Y=f[h>>2]|0;d=f[c>>2]|0;$=f[d>>2]|0;i=(f[d+4>>2]|0)-$>>3;if(i>>>0<=l>>>0)aq(d);_=$;if(i>>>0<=Y>>>0)aq(d);if((f[_+(l<<3)>>2]|0)>>>0>=(f[_+(Y<<3)>>2]|0)>>>0)return;f[h>>2]=l;f[e>>2]=Y;return}case 11:{Vg(h,h+4|0,e,c)|0;return}case 12:{jh(h,h+4|0,h+8|0,e,c)|0;return}case 13:{ig(h,h+4|0,h+8|0,h+12|0,e,c)|0;return}case 15:{ih(h,a,c);return}case 20:{aq(p);break}case 22:{aq(p);break}case 26:{aq(p);break}case 32:{aq(p);break}case 38:{aq(A);break}case 40:{aq(A);break}case 46:{aq(A);break}case 47:{aq(A);break}case 51:{aq(p);break}case 57:{aq(R);break}case 59:{aq(S);break}case 65:{if(N>>>0>(f[J+-4>>2]|0)>>>0)aq(S);else aq(S);break}case 66:{aq(S);break}case 72:{aq(Z);break}case 74:{aq(Z);break}case 84:return}}function zb(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0;d=a;a=b;a:while(1){b=a;e=a+-4|0;g=d;while(1){h=g;b:while(1){i=h;j=b-i|0;k=j>>2;switch(k|0){case 2:{l=5;break a;break}case 3:{l=11;break a;break}case 4:{l=12;break a;break}case 5:{l=13;break a;break}case 1:case 0:{l=84;break a;break}default:{}}if((j|0)<124){l=15;break a}m=h+(((k|0)/2|0)<<2)|0;if((j|0)>3996){j=(k|0)/4|0;n=ig(h,h+(j<<2)|0,m,m+(j<<2)|0,e,c)|0}else n=Vg(h,m,e,c)|0;o=f[h>>2]|0;j=f[m>>2]|0;p=f[c>>2]|0;k=f[p>>2]|0;q=(f[p+4>>2]|0)-k>>3;if(q>>>0<=o>>>0){l=20;break a}r=k;if(q>>>0<=j>>>0){l=22;break a}k=f[r+(o<<3)>>2]|0;s=f[r+(j<<3)>>2]|0;if(k>>>0>>0){t=e;u=n;break}else v=e;while(1){v=v+-4|0;if((h|0)==(v|0))break;w=f[v>>2]|0;if(q>>>0<=w>>>0){l=51;break a}if((f[r+(w<<3)>>2]|0)>>>0>>0){l=53;break b}}s=h+4|0;j=f[e>>2]|0;if(q>>>0<=j>>>0){l=26;break a}if(k>>>0<(f[r+(j<<3)>>2]|0)>>>0)x=s;else{if((s|0)==(e|0)){l=84;break a}else y=s;while(1){z=f[y>>2]|0;if(q>>>0<=z>>>0){l=32;break a}if(k>>>0<(f[r+(z<<3)>>2]|0)>>>0)break;s=y+4|0;if((s|0)==(e|0)){l=84;break a}else y=s}f[y>>2]=j;f[e>>2]=z;x=y+4|0}if((x|0)==(e|0)){l=84;break a}r=f[h>>2]|0;A=f[c>>2]|0;k=f[A>>2]|0;q=(f[A+4>>2]|0)-k>>3;if(q>>>0<=r>>>0){l=38;break a}s=k;k=e;B=x;C=r;while(1){r=s+(C<<3)|0;D=q>>>0>C>>>0;E=B;while(1){F=f[E>>2]|0;if(q>>>0<=F>>>0){l=40;break a}G=f[r>>2]|0;if(G>>>0<(f[s+(F<<3)>>2]|0)>>>0)break;if(D)E=E+4|0;else{l=38;break a}}if(q>>>0>C>>>0)H=k;else{l=46;break a}do{H=H+-4|0;I=f[H>>2]|0;if(q>>>0<=I>>>0){l=47;break a}}while(G>>>0<(f[s+(I<<3)>>2]|0)>>>0);if(E>>>0>=H>>>0){h=E;continue b}D=f[E>>2]|0;f[E>>2]=I;f[H>>2]=D;C=f[h>>2]|0;if(q>>>0<=C>>>0){l=38;break a}else{k=H;B=E+4|0}}}if((l|0)==53){l=0;f[h>>2]=w;f[v>>2]=o;t=v;u=n+1|0}B=h+4|0;c:do if(B>>>0>>0){k=f[B>>2]|0;C=f[c>>2]|0;q=f[C>>2]|0;s=(f[C+4>>2]|0)-q>>3;if(s>>>0>k>>>0){J=t;K=B;L=u;M=m;N=s;O=q;P=C;Q=k}else{R=C;l=57;break a}while(1){C=f[c>>2]|0;k=C+4|0;q=f[M>>2]|0;s=K;j=O;D=N;S=P;r=Q;while(1){F=j;if(D>>>0<=q>>>0){l=59;break a}if((f[F+(r<<3)>>2]|0)>>>0>=(f[F+(q<<3)>>2]|0)>>>0)break;F=s+4|0;T=f[F>>2]|0;j=f[C>>2]|0;D=(f[k>>2]|0)-j>>3;if(D>>>0<=T>>>0){R=C;l=57;break a}else{s=F;S=C;r=T}}C=f[M>>2]|0;O=f[S>>2]|0;N=(f[S+4>>2]|0)-O>>3;D=O;j=D+(C<<3)|0;if(N>>>0>C>>>0)U=J;else{l=65;break a}do{U=U+-4|0;V=f[U>>2]|0;if(N>>>0<=V>>>0){l=66;break a}}while((f[D+(V<<3)>>2]|0)>>>0>=(f[j>>2]|0)>>>0);if(s>>>0>U>>>0){W=M;X=L;Y=s;break c}f[s>>2]=V;f[U>>2]=r;K=s+4|0;Q=f[K>>2]|0;if(N>>>0<=Q>>>0){R=S;l=57;break a}else{J=U;L=L+1|0;M=(M|0)==(s|0)?U:M;P=S}}}else{W=m;X=u;Y=B}while(0);if((Y|0)!=(W|0)){B=f[W>>2]|0;j=f[Y>>2]|0;Z=f[c>>2]|0;D=f[Z>>2]|0;C=(f[Z+4>>2]|0)-D>>3;if(C>>>0<=B>>>0){l=72;break a}k=D;if(C>>>0<=j>>>0){l=74;break a}if((f[k+(B<<3)>>2]|0)>>>0<(f[k+(j<<3)>>2]|0)>>>0){f[Y>>2]=B;f[W>>2]=j;_=X+1|0}else _=X}else _=X;if(!_){$=_d(h,Y,c)|0;j=Y+4|0;if(_d(j,a,c)|0){l=83;break}if($){g=j;continue}}j=Y;if((j-i|0)>=(b-j|0)){l=82;break}zb(h,Y,c);g=Y+4|0}if((l|0)==82){l=0;zb(Y+4|0,a,c);d=h;a=Y;continue}else if((l|0)==83){l=0;if($){l=84;break}else{d=h;a=Y;continue}}}switch(l|0){case 5:{l=f[e>>2]|0;Y=f[h>>2]|0;d=f[c>>2]|0;$=f[d>>2]|0;i=(f[d+4>>2]|0)-$>>3;if(i>>>0<=l>>>0)aq(d);_=$;if(i>>>0<=Y>>>0)aq(d);if((f[_+(l<<3)>>2]|0)>>>0>=(f[_+(Y<<3)>>2]|0)>>>0)return;f[h>>2]=l;f[e>>2]=Y;return}case 11:{Vg(h,h+4|0,e,c)|0;return}case 12:{jh(h,h+4|0,h+8|0,e,c)|0;return}case 13:{ig(h,h+4|0,h+8|0,h+12|0,e,c)|0;return}case 15:{ih(h,a,c);return}case 20:{aq(p);break}case 22:{aq(p);break}case 26:{aq(p);break}case 32:{aq(p);break}case 38:{aq(A);break}case 40:{aq(A);break}case 46:{aq(A);break}case 47:{aq(A);break}case 51:{aq(p);break}case 57:{aq(R);break}case 59:{aq(S);break}case 65:{if(N>>>0>(f[J+-4>>2]|0)>>>0)aq(S);else aq(S);break}case 66:{aq(S);break}case 72:{aq(Z);break}case 74:{aq(Z);break}case 84:return}}function Ab(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0;d=a;a=b;a:while(1){b=a;e=a+-4|0;g=d;while(1){h=g;b:while(1){i=h;j=b-i|0;k=j>>2;switch(k|0){case 2:{l=5;break a;break}case 3:{l=11;break a;break}case 4:{l=12;break a;break}case 5:{l=13;break a;break}case 1:case 0:{l=84;break a;break}default:{}}if((j|0)<124){l=15;break a}m=h+(((k|0)/2|0)<<2)|0;if((j|0)>3996){j=(k|0)/4|0;n=ig(h,h+(j<<2)|0,m,m+(j<<2)|0,e,c)|0}else n=Vg(h,m,e,c)|0;o=f[h>>2]|0;j=f[m>>2]|0;p=f[c>>2]|0;k=f[p>>2]|0;q=(f[p+4>>2]|0)-k>>3;if(q>>>0<=o>>>0){l=20;break a}r=k;if(q>>>0<=j>>>0){l=22;break a}k=f[r+(o<<3)>>2]|0;s=f[r+(j<<3)>>2]|0;if(k>>>0>>0){t=e;u=n;break}else v=e;while(1){v=v+-4|0;if((h|0)==(v|0))break;w=f[v>>2]|0;if(q>>>0<=w>>>0){l=51;break a}if((f[r+(w<<3)>>2]|0)>>>0>>0){l=53;break b}}s=h+4|0;j=f[e>>2]|0;if(q>>>0<=j>>>0){l=26;break a}if(k>>>0<(f[r+(j<<3)>>2]|0)>>>0)x=s;else{if((s|0)==(e|0)){l=84;break a}else y=s;while(1){z=f[y>>2]|0;if(q>>>0<=z>>>0){l=32;break a}if(k>>>0<(f[r+(z<<3)>>2]|0)>>>0)break;s=y+4|0;if((s|0)==(e|0)){l=84;break a}else y=s}f[y>>2]=j;f[e>>2]=z;x=y+4|0}if((x|0)==(e|0)){l=84;break a}r=f[h>>2]|0;A=f[c>>2]|0;k=f[A>>2]|0;q=(f[A+4>>2]|0)-k>>3;if(q>>>0<=r>>>0){l=38;break a}s=k;k=e;B=x;C=r;while(1){r=s+(C<<3)|0;D=q>>>0>C>>>0;E=B;while(1){F=f[E>>2]|0;if(q>>>0<=F>>>0){l=40;break a}G=f[r>>2]|0;if(G>>>0<(f[s+(F<<3)>>2]|0)>>>0)break;if(D)E=E+4|0;else{l=38;break a}}if(q>>>0>C>>>0)H=k;else{l=46;break a}do{H=H+-4|0;I=f[H>>2]|0;if(q>>>0<=I>>>0){l=47;break a}}while(G>>>0<(f[s+(I<<3)>>2]|0)>>>0);if(E>>>0>=H>>>0){h=E;continue b}D=f[E>>2]|0;f[E>>2]=I;f[H>>2]=D;C=f[h>>2]|0;if(q>>>0<=C>>>0){l=38;break a}else{k=H;B=E+4|0}}}if((l|0)==53){l=0;f[h>>2]=w;f[v>>2]=o;t=v;u=n+1|0}B=h+4|0;c:do if(B>>>0>>0){k=f[B>>2]|0;C=f[c>>2]|0;q=f[C>>2]|0;s=(f[C+4>>2]|0)-q>>3;if(s>>>0>k>>>0){J=t;K=B;L=u;M=m;N=s;O=q;P=C;Q=k}else{R=C;l=57;break a}while(1){C=f[c>>2]|0;k=C+4|0;q=f[M>>2]|0;s=K;j=O;D=N;S=P;r=Q;while(1){F=j;if(D>>>0<=q>>>0){l=59;break a}if((f[F+(r<<3)>>2]|0)>>>0>=(f[F+(q<<3)>>2]|0)>>>0)break;F=s+4|0;T=f[F>>2]|0;j=f[C>>2]|0;D=(f[k>>2]|0)-j>>3;if(D>>>0<=T>>>0){R=C;l=57;break a}else{s=F;S=C;r=T}}C=f[M>>2]|0;O=f[S>>2]|0;N=(f[S+4>>2]|0)-O>>3;D=O;j=D+(C<<3)|0;if(N>>>0>C>>>0)U=J;else{l=65;break a}do{U=U+-4|0;V=f[U>>2]|0;if(N>>>0<=V>>>0){l=66;break a}}while((f[D+(V<<3)>>2]|0)>>>0>=(f[j>>2]|0)>>>0);if(s>>>0>U>>>0){W=M;X=L;Y=s;break c}f[s>>2]=V;f[U>>2]=r;K=s+4|0;Q=f[K>>2]|0;if(N>>>0<=Q>>>0){R=S;l=57;break a}else{J=U;L=L+1|0;M=(M|0)==(s|0)?U:M;P=S}}}else{W=m;X=u;Y=B}while(0);if((Y|0)!=(W|0)){B=f[W>>2]|0;j=f[Y>>2]|0;Z=f[c>>2]|0;D=f[Z>>2]|0;C=(f[Z+4>>2]|0)-D>>3;if(C>>>0<=B>>>0){l=72;break a}k=D;if(C>>>0<=j>>>0){l=74;break a}if((f[k+(B<<3)>>2]|0)>>>0<(f[k+(j<<3)>>2]|0)>>>0){f[Y>>2]=B;f[W>>2]=j;_=X+1|0}else _=X}else _=X;if(!_){$=_d(h,Y,c)|0;j=Y+4|0;if(_d(j,a,c)|0){l=83;break}if($){g=j;continue}}j=Y;if((j-i|0)>=(b-j|0)){l=82;break}Ab(h,Y,c);g=Y+4|0}if((l|0)==82){l=0;Ab(Y+4|0,a,c);d=h;a=Y;continue}else if((l|0)==83){l=0;if($){l=84;break}else{d=h;a=Y;continue}}}switch(l|0){case 5:{l=f[e>>2]|0;Y=f[h>>2]|0;d=f[c>>2]|0;$=f[d>>2]|0;i=(f[d+4>>2]|0)-$>>3;if(i>>>0<=l>>>0)aq(d);_=$;if(i>>>0<=Y>>>0)aq(d);if((f[_+(l<<3)>>2]|0)>>>0>=(f[_+(Y<<3)>>2]|0)>>>0)return;f[h>>2]=l;f[e>>2]=Y;return}case 11:{Vg(h,h+4|0,e,c)|0;return}case 12:{jh(h,h+4|0,h+8|0,e,c)|0;return}case 13:{ig(h,h+4|0,h+8|0,h+12|0,e,c)|0;return}case 15:{ih(h,a,c);return}case 20:{aq(p);break}case 22:{aq(p);break}case 26:{aq(p);break}case 32:{aq(p);break}case 38:{aq(A);break}case 40:{aq(A);break}case 46:{aq(A);break}case 47:{aq(A);break}case 51:{aq(p);break}case 57:{aq(R);break}case 59:{aq(S);break}case 65:{if(N>>>0>(f[J+-4>>2]|0)>>>0)aq(S);else aq(S);break}case 66:{aq(S);break}case 72:{aq(Z);break}case 74:{aq(Z);break}case 84:return}} function Bb(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0;d=a;a=b;a:while(1){b=a;e=a+-4|0;g=d;while(1){h=g;b:while(1){i=h;j=b-i|0;k=j>>2;switch(k|0){case 2:{l=5;break a;break}case 3:{l=11;break a;break}case 4:{l=12;break a;break}case 5:{l=13;break a;break}case 1:case 0:{l=84;break a;break}default:{}}if((j|0)<124){l=15;break a}m=h+(((k|0)/2|0)<<2)|0;if((j|0)>3996){j=(k|0)/4|0;n=ig(h,h+(j<<2)|0,m,m+(j<<2)|0,e,c)|0}else n=Vg(h,m,e,c)|0;o=f[h>>2]|0;j=f[m>>2]|0;p=f[c>>2]|0;k=f[p>>2]|0;q=(f[p+4>>2]|0)-k>>3;if(q>>>0<=o>>>0){l=20;break a}r=k;if(q>>>0<=j>>>0){l=22;break a}k=f[r+(o<<3)>>2]|0;s=f[r+(j<<3)>>2]|0;if(k>>>0>>0){t=e;u=n;break}else v=e;while(1){v=v+-4|0;if((h|0)==(v|0))break;w=f[v>>2]|0;if(q>>>0<=w>>>0){l=51;break a}if((f[r+(w<<3)>>2]|0)>>>0>>0){l=53;break b}}s=h+4|0;j=f[e>>2]|0;if(q>>>0<=j>>>0){l=26;break a}if(k>>>0<(f[r+(j<<3)>>2]|0)>>>0)x=s;else{if((s|0)==(e|0)){l=84;break a}else y=s;while(1){z=f[y>>2]|0;if(q>>>0<=z>>>0){l=32;break a}if(k>>>0<(f[r+(z<<3)>>2]|0)>>>0)break;s=y+4|0;if((s|0)==(e|0)){l=84;break a}else y=s}f[y>>2]=j;f[e>>2]=z;x=y+4|0}if((x|0)==(e|0)){l=84;break a}r=f[h>>2]|0;A=f[c>>2]|0;k=f[A>>2]|0;q=(f[A+4>>2]|0)-k>>3;if(q>>>0<=r>>>0){l=38;break a}s=k;k=e;B=x;C=r;while(1){r=s+(C<<3)|0;D=q>>>0>C>>>0;E=B;while(1){F=f[E>>2]|0;if(q>>>0<=F>>>0){l=40;break a}G=f[r>>2]|0;if(G>>>0<(f[s+(F<<3)>>2]|0)>>>0)break;if(D)E=E+4|0;else{l=38;break a}}if(q>>>0>C>>>0)H=k;else{l=46;break a}do{H=H+-4|0;I=f[H>>2]|0;if(q>>>0<=I>>>0){l=47;break a}}while(G>>>0<(f[s+(I<<3)>>2]|0)>>>0);if(E>>>0>=H>>>0){h=E;continue b}D=f[E>>2]|0;f[E>>2]=I;f[H>>2]=D;C=f[h>>2]|0;if(q>>>0<=C>>>0){l=38;break a}else{k=H;B=E+4|0}}}if((l|0)==53){l=0;f[h>>2]=w;f[v>>2]=o;t=v;u=n+1|0}B=h+4|0;c:do if(B>>>0>>0){k=f[B>>2]|0;C=f[c>>2]|0;q=f[C>>2]|0;s=(f[C+4>>2]|0)-q>>3;if(s>>>0>k>>>0){J=t;K=B;L=u;M=m;N=s;O=q;P=C;Q=k}else{R=C;l=57;break a}while(1){C=f[c>>2]|0;k=C+4|0;q=f[M>>2]|0;s=K;j=O;D=N;S=P;r=Q;while(1){F=j;if(D>>>0<=q>>>0){l=59;break a}if((f[F+(r<<3)>>2]|0)>>>0>=(f[F+(q<<3)>>2]|0)>>>0)break;F=s+4|0;T=f[F>>2]|0;j=f[C>>2]|0;D=(f[k>>2]|0)-j>>3;if(D>>>0<=T>>>0){R=C;l=57;break a}else{s=F;S=C;r=T}}C=f[M>>2]|0;O=f[S>>2]|0;N=(f[S+4>>2]|0)-O>>3;D=O;j=D+(C<<3)|0;if(N>>>0>C>>>0)U=J;else{l=65;break a}do{U=U+-4|0;V=f[U>>2]|0;if(N>>>0<=V>>>0){l=66;break a}}while((f[D+(V<<3)>>2]|0)>>>0>=(f[j>>2]|0)>>>0);if(s>>>0>U>>>0){W=M;X=L;Y=s;break c}f[s>>2]=V;f[U>>2]=r;K=s+4|0;Q=f[K>>2]|0;if(N>>>0<=Q>>>0){R=S;l=57;break a}else{J=U;L=L+1|0;M=(M|0)==(s|0)?U:M;P=S}}}else{W=m;X=u;Y=B}while(0);if((Y|0)!=(W|0)){B=f[W>>2]|0;j=f[Y>>2]|0;Z=f[c>>2]|0;D=f[Z>>2]|0;C=(f[Z+4>>2]|0)-D>>3;if(C>>>0<=B>>>0){l=72;break a}k=D;if(C>>>0<=j>>>0){l=74;break a}if((f[k+(B<<3)>>2]|0)>>>0<(f[k+(j<<3)>>2]|0)>>>0){f[Y>>2]=B;f[W>>2]=j;_=X+1|0}else _=X}else _=X;if(!_){$=_d(h,Y,c)|0;j=Y+4|0;if(_d(j,a,c)|0){l=83;break}if($){g=j;continue}}j=Y;if((j-i|0)>=(b-j|0)){l=82;break}Bb(h,Y,c);g=Y+4|0}if((l|0)==82){l=0;Bb(Y+4|0,a,c);d=h;a=Y;continue}else if((l|0)==83){l=0;if($){l=84;break}else{d=h;a=Y;continue}}}switch(l|0){case 5:{l=f[e>>2]|0;Y=f[h>>2]|0;d=f[c>>2]|0;$=f[d>>2]|0;i=(f[d+4>>2]|0)-$>>3;if(i>>>0<=l>>>0)aq(d);_=$;if(i>>>0<=Y>>>0)aq(d);if((f[_+(l<<3)>>2]|0)>>>0>=(f[_+(Y<<3)>>2]|0)>>>0)return;f[h>>2]=l;f[e>>2]=Y;return}case 11:{Vg(h,h+4|0,e,c)|0;return}case 12:{jh(h,h+4|0,h+8|0,e,c)|0;return}case 13:{ig(h,h+4|0,h+8|0,h+12|0,e,c)|0;return}case 15:{ih(h,a,c);return}case 20:{aq(p);break}case 22:{aq(p);break}case 26:{aq(p);break}case 32:{aq(p);break}case 38:{aq(A);break}case 40:{aq(A);break}case 46:{aq(A);break}case 47:{aq(A);break}case 51:{aq(p);break}case 57:{aq(R);break}case 59:{aq(S);break}case 65:{if(N>>>0>(f[J+-4>>2]|0)>>>0)aq(S);else aq(S);break}case 66:{aq(S);break}case 72:{aq(Z);break}case 74:{aq(Z);break}case 84:return}}function Cb(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0;d=a;a=b;a:while(1){b=a;e=a+-4|0;g=d;while(1){h=g;b:while(1){i=h;j=b-i|0;k=j>>2;switch(k|0){case 2:{l=5;break a;break}case 3:{l=11;break a;break}case 4:{l=12;break a;break}case 5:{l=13;break a;break}case 1:case 0:{l=84;break a;break}default:{}}if((j|0)<124){l=15;break a}m=h+(((k|0)/2|0)<<2)|0;if((j|0)>3996){j=(k|0)/4|0;n=ig(h,h+(j<<2)|0,m,m+(j<<2)|0,e,c)|0}else n=Vg(h,m,e,c)|0;o=f[h>>2]|0;j=f[m>>2]|0;p=f[c>>2]|0;k=f[p>>2]|0;q=(f[p+4>>2]|0)-k>>3;if(q>>>0<=o>>>0){l=20;break a}r=k;if(q>>>0<=j>>>0){l=22;break a}k=f[r+(o<<3)>>2]|0;s=f[r+(j<<3)>>2]|0;if(k>>>0>>0){t=e;u=n;break}else v=e;while(1){v=v+-4|0;if((h|0)==(v|0))break;w=f[v>>2]|0;if(q>>>0<=w>>>0){l=51;break a}if((f[r+(w<<3)>>2]|0)>>>0>>0){l=53;break b}}s=h+4|0;j=f[e>>2]|0;if(q>>>0<=j>>>0){l=26;break a}if(k>>>0<(f[r+(j<<3)>>2]|0)>>>0)x=s;else{if((s|0)==(e|0)){l=84;break a}else y=s;while(1){z=f[y>>2]|0;if(q>>>0<=z>>>0){l=32;break a}if(k>>>0<(f[r+(z<<3)>>2]|0)>>>0)break;s=y+4|0;if((s|0)==(e|0)){l=84;break a}else y=s}f[y>>2]=j;f[e>>2]=z;x=y+4|0}if((x|0)==(e|0)){l=84;break a}r=f[h>>2]|0;A=f[c>>2]|0;k=f[A>>2]|0;q=(f[A+4>>2]|0)-k>>3;if(q>>>0<=r>>>0){l=38;break a}s=k;k=e;B=x;C=r;while(1){r=s+(C<<3)|0;D=q>>>0>C>>>0;E=B;while(1){F=f[E>>2]|0;if(q>>>0<=F>>>0){l=40;break a}G=f[r>>2]|0;if(G>>>0<(f[s+(F<<3)>>2]|0)>>>0)break;if(D)E=E+4|0;else{l=38;break a}}if(q>>>0>C>>>0)H=k;else{l=46;break a}do{H=H+-4|0;I=f[H>>2]|0;if(q>>>0<=I>>>0){l=47;break a}}while(G>>>0<(f[s+(I<<3)>>2]|0)>>>0);if(E>>>0>=H>>>0){h=E;continue b}D=f[E>>2]|0;f[E>>2]=I;f[H>>2]=D;C=f[h>>2]|0;if(q>>>0<=C>>>0){l=38;break a}else{k=H;B=E+4|0}}}if((l|0)==53){l=0;f[h>>2]=w;f[v>>2]=o;t=v;u=n+1|0}B=h+4|0;c:do if(B>>>0>>0){k=f[B>>2]|0;C=f[c>>2]|0;q=f[C>>2]|0;s=(f[C+4>>2]|0)-q>>3;if(s>>>0>k>>>0){J=t;K=B;L=u;M=m;N=s;O=q;P=C;Q=k}else{R=C;l=57;break a}while(1){C=f[c>>2]|0;k=C+4|0;q=f[M>>2]|0;s=K;j=O;D=N;S=P;r=Q;while(1){F=j;if(D>>>0<=q>>>0){l=59;break a}if((f[F+(r<<3)>>2]|0)>>>0>=(f[F+(q<<3)>>2]|0)>>>0)break;F=s+4|0;T=f[F>>2]|0;j=f[C>>2]|0;D=(f[k>>2]|0)-j>>3;if(D>>>0<=T>>>0){R=C;l=57;break a}else{s=F;S=C;r=T}}C=f[M>>2]|0;O=f[S>>2]|0;N=(f[S+4>>2]|0)-O>>3;D=O;j=D+(C<<3)|0;if(N>>>0>C>>>0)U=J;else{l=65;break a}do{U=U+-4|0;V=f[U>>2]|0;if(N>>>0<=V>>>0){l=66;break a}}while((f[D+(V<<3)>>2]|0)>>>0>=(f[j>>2]|0)>>>0);if(s>>>0>U>>>0){W=M;X=L;Y=s;break c}f[s>>2]=V;f[U>>2]=r;K=s+4|0;Q=f[K>>2]|0;if(N>>>0<=Q>>>0){R=S;l=57;break a}else{J=U;L=L+1|0;M=(M|0)==(s|0)?U:M;P=S}}}else{W=m;X=u;Y=B}while(0);if((Y|0)!=(W|0)){B=f[W>>2]|0;j=f[Y>>2]|0;Z=f[c>>2]|0;D=f[Z>>2]|0;C=(f[Z+4>>2]|0)-D>>3;if(C>>>0<=B>>>0){l=72;break a}k=D;if(C>>>0<=j>>>0){l=74;break a}if((f[k+(B<<3)>>2]|0)>>>0<(f[k+(j<<3)>>2]|0)>>>0){f[Y>>2]=B;f[W>>2]=j;_=X+1|0}else _=X}else _=X;if(!_){$=_d(h,Y,c)|0;j=Y+4|0;if(_d(j,a,c)|0){l=83;break}if($){g=j;continue}}j=Y;if((j-i|0)>=(b-j|0)){l=82;break}Cb(h,Y,c);g=Y+4|0}if((l|0)==82){l=0;Cb(Y+4|0,a,c);d=h;a=Y;continue}else if((l|0)==83){l=0;if($){l=84;break}else{d=h;a=Y;continue}}}switch(l|0){case 5:{l=f[e>>2]|0;Y=f[h>>2]|0;d=f[c>>2]|0;$=f[d>>2]|0;i=(f[d+4>>2]|0)-$>>3;if(i>>>0<=l>>>0)aq(d);_=$;if(i>>>0<=Y>>>0)aq(d);if((f[_+(l<<3)>>2]|0)>>>0>=(f[_+(Y<<3)>>2]|0)>>>0)return;f[h>>2]=l;f[e>>2]=Y;return}case 11:{Vg(h,h+4|0,e,c)|0;return}case 12:{jh(h,h+4|0,h+8|0,e,c)|0;return}case 13:{ig(h,h+4|0,h+8|0,h+12|0,e,c)|0;return}case 15:{ih(h,a,c);return}case 20:{aq(p);break}case 22:{aq(p);break}case 26:{aq(p);break}case 32:{aq(p);break}case 38:{aq(A);break}case 40:{aq(A);break}case 46:{aq(A);break}case 47:{aq(A);break}case 51:{aq(p);break}case 57:{aq(R);break}case 59:{aq(S);break}case 65:{if(N>>>0>(f[J+-4>>2]|0)>>>0)aq(S);else aq(S);break}case 66:{aq(S);break}case 72:{aq(Z);break}case 74:{aq(Z);break}case 84:return}}function Db(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0;d=a;a=b;a:while(1){b=a;e=a+-4|0;g=d;while(1){h=g;b:while(1){i=h;j=b-i|0;k=j>>2;switch(k|0){case 2:{l=5;break a;break}case 3:{l=11;break a;break}case 4:{l=12;break a;break}case 5:{l=13;break a;break}case 1:case 0:{l=84;break a;break}default:{}}if((j|0)<124){l=15;break a}m=h+(((k|0)/2|0)<<2)|0;if((j|0)>3996){j=(k|0)/4|0;n=ig(h,h+(j<<2)|0,m,m+(j<<2)|0,e,c)|0}else n=Vg(h,m,e,c)|0;o=f[h>>2]|0;j=f[m>>2]|0;p=f[c>>2]|0;k=f[p>>2]|0;q=(f[p+4>>2]|0)-k>>3;if(q>>>0<=o>>>0){l=20;break a}r=k;if(q>>>0<=j>>>0){l=22;break a}k=f[r+(o<<3)>>2]|0;s=f[r+(j<<3)>>2]|0;if(k>>>0>>0){t=e;u=n;break}else v=e;while(1){v=v+-4|0;if((h|0)==(v|0))break;w=f[v>>2]|0;if(q>>>0<=w>>>0){l=51;break a}if((f[r+(w<<3)>>2]|0)>>>0>>0){l=53;break b}}s=h+4|0;j=f[e>>2]|0;if(q>>>0<=j>>>0){l=26;break a}if(k>>>0<(f[r+(j<<3)>>2]|0)>>>0)x=s;else{if((s|0)==(e|0)){l=84;break a}else y=s;while(1){z=f[y>>2]|0;if(q>>>0<=z>>>0){l=32;break a}if(k>>>0<(f[r+(z<<3)>>2]|0)>>>0)break;s=y+4|0;if((s|0)==(e|0)){l=84;break a}else y=s}f[y>>2]=j;f[e>>2]=z;x=y+4|0}if((x|0)==(e|0)){l=84;break a}r=f[h>>2]|0;A=f[c>>2]|0;k=f[A>>2]|0;q=(f[A+4>>2]|0)-k>>3;if(q>>>0<=r>>>0){l=38;break a}s=k;k=e;B=x;C=r;while(1){r=s+(C<<3)|0;D=q>>>0>C>>>0;E=B;while(1){F=f[E>>2]|0;if(q>>>0<=F>>>0){l=40;break a}G=f[r>>2]|0;if(G>>>0<(f[s+(F<<3)>>2]|0)>>>0)break;if(D)E=E+4|0;else{l=38;break a}}if(q>>>0>C>>>0)H=k;else{l=46;break a}do{H=H+-4|0;I=f[H>>2]|0;if(q>>>0<=I>>>0){l=47;break a}}while(G>>>0<(f[s+(I<<3)>>2]|0)>>>0);if(E>>>0>=H>>>0){h=E;continue b}D=f[E>>2]|0;f[E>>2]=I;f[H>>2]=D;C=f[h>>2]|0;if(q>>>0<=C>>>0){l=38;break a}else{k=H;B=E+4|0}}}if((l|0)==53){l=0;f[h>>2]=w;f[v>>2]=o;t=v;u=n+1|0}B=h+4|0;c:do if(B>>>0>>0){k=f[B>>2]|0;C=f[c>>2]|0;q=f[C>>2]|0;s=(f[C+4>>2]|0)-q>>3;if(s>>>0>k>>>0){J=t;K=B;L=u;M=m;N=s;O=q;P=C;Q=k}else{R=C;l=57;break a}while(1){C=f[c>>2]|0;k=C+4|0;q=f[M>>2]|0;s=K;j=O;D=N;S=P;r=Q;while(1){F=j;if(D>>>0<=q>>>0){l=59;break a}if((f[F+(r<<3)>>2]|0)>>>0>=(f[F+(q<<3)>>2]|0)>>>0)break;F=s+4|0;T=f[F>>2]|0;j=f[C>>2]|0;D=(f[k>>2]|0)-j>>3;if(D>>>0<=T>>>0){R=C;l=57;break a}else{s=F;S=C;r=T}}C=f[M>>2]|0;O=f[S>>2]|0;N=(f[S+4>>2]|0)-O>>3;D=O;j=D+(C<<3)|0;if(N>>>0>C>>>0)U=J;else{l=65;break a}do{U=U+-4|0;V=f[U>>2]|0;if(N>>>0<=V>>>0){l=66;break a}}while((f[D+(V<<3)>>2]|0)>>>0>=(f[j>>2]|0)>>>0);if(s>>>0>U>>>0){W=M;X=L;Y=s;break c}f[s>>2]=V;f[U>>2]=r;K=s+4|0;Q=f[K>>2]|0;if(N>>>0<=Q>>>0){R=S;l=57;break a}else{J=U;L=L+1|0;M=(M|0)==(s|0)?U:M;P=S}}}else{W=m;X=u;Y=B}while(0);if((Y|0)!=(W|0)){B=f[W>>2]|0;j=f[Y>>2]|0;Z=f[c>>2]|0;D=f[Z>>2]|0;C=(f[Z+4>>2]|0)-D>>3;if(C>>>0<=B>>>0){l=72;break a}k=D;if(C>>>0<=j>>>0){l=74;break a}if((f[k+(B<<3)>>2]|0)>>>0<(f[k+(j<<3)>>2]|0)>>>0){f[Y>>2]=B;f[W>>2]=j;_=X+1|0}else _=X}else _=X;if(!_){$=_d(h,Y,c)|0;j=Y+4|0;if(_d(j,a,c)|0){l=83;break}if($){g=j;continue}}j=Y;if((j-i|0)>=(b-j|0)){l=82;break}Db(h,Y,c);g=Y+4|0}if((l|0)==82){l=0;Db(Y+4|0,a,c);d=h;a=Y;continue}else if((l|0)==83){l=0;if($){l=84;break}else{d=h;a=Y;continue}}}switch(l|0){case 5:{l=f[e>>2]|0;Y=f[h>>2]|0;d=f[c>>2]|0;$=f[d>>2]|0;i=(f[d+4>>2]|0)-$>>3;if(i>>>0<=l>>>0)aq(d);_=$;if(i>>>0<=Y>>>0)aq(d);if((f[_+(l<<3)>>2]|0)>>>0>=(f[_+(Y<<3)>>2]|0)>>>0)return;f[h>>2]=l;f[e>>2]=Y;return}case 11:{Vg(h,h+4|0,e,c)|0;return}case 12:{jh(h,h+4|0,h+8|0,e,c)|0;return}case 13:{ig(h,h+4|0,h+8|0,h+12|0,e,c)|0;return}case 15:{ih(h,a,c);return}case 20:{aq(p);break}case 22:{aq(p);break}case 26:{aq(p);break}case 32:{aq(p);break}case 38:{aq(A);break}case 40:{aq(A);break}case 46:{aq(A);break}case 47:{aq(A);break}case 51:{aq(p);break}case 57:{aq(R);break}case 59:{aq(S);break}case 65:{if(N>>>0>(f[J+-4>>2]|0)>>>0)aq(S);else aq(S);break}case 66:{aq(S);break}case 72:{aq(Z);break}case 74:{aq(Z);break}case 84:return}}function Eb(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0;d=a;a=b;a:while(1){b=a;e=a+-4|0;g=d;while(1){h=g;b:while(1){i=h;j=b-i|0;k=j>>2;switch(k|0){case 2:{l=5;break a;break}case 3:{l=11;break a;break}case 4:{l=12;break a;break}case 5:{l=13;break a;break}case 1:case 0:{l=84;break a;break}default:{}}if((j|0)<124){l=15;break a}m=h+(((k|0)/2|0)<<2)|0;if((j|0)>3996){j=(k|0)/4|0;n=ig(h,h+(j<<2)|0,m,m+(j<<2)|0,e,c)|0}else n=Vg(h,m,e,c)|0;o=f[h>>2]|0;j=f[m>>2]|0;p=f[c>>2]|0;k=f[p>>2]|0;q=(f[p+4>>2]|0)-k>>3;if(q>>>0<=o>>>0){l=20;break a}r=k;if(q>>>0<=j>>>0){l=22;break a}k=f[r+(o<<3)>>2]|0;s=f[r+(j<<3)>>2]|0;if(k>>>0>>0){t=e;u=n;break}else v=e;while(1){v=v+-4|0;if((h|0)==(v|0))break;w=f[v>>2]|0;if(q>>>0<=w>>>0){l=51;break a}if((f[r+(w<<3)>>2]|0)>>>0>>0){l=53;break b}}s=h+4|0;j=f[e>>2]|0;if(q>>>0<=j>>>0){l=26;break a}if(k>>>0<(f[r+(j<<3)>>2]|0)>>>0)x=s;else{if((s|0)==(e|0)){l=84;break a}else y=s;while(1){z=f[y>>2]|0;if(q>>>0<=z>>>0){l=32;break a}if(k>>>0<(f[r+(z<<3)>>2]|0)>>>0)break;s=y+4|0;if((s|0)==(e|0)){l=84;break a}else y=s}f[y>>2]=j;f[e>>2]=z;x=y+4|0}if((x|0)==(e|0)){l=84;break a}r=f[h>>2]|0;A=f[c>>2]|0;k=f[A>>2]|0;q=(f[A+4>>2]|0)-k>>3;if(q>>>0<=r>>>0){l=38;break a}s=k;k=e;B=x;C=r;while(1){r=s+(C<<3)|0;D=q>>>0>C>>>0;E=B;while(1){F=f[E>>2]|0;if(q>>>0<=F>>>0){l=40;break a}G=f[r>>2]|0;if(G>>>0<(f[s+(F<<3)>>2]|0)>>>0)break;if(D)E=E+4|0;else{l=38;break a}}if(q>>>0>C>>>0)H=k;else{l=46;break a}do{H=H+-4|0;I=f[H>>2]|0;if(q>>>0<=I>>>0){l=47;break a}}while(G>>>0<(f[s+(I<<3)>>2]|0)>>>0);if(E>>>0>=H>>>0){h=E;continue b}D=f[E>>2]|0;f[E>>2]=I;f[H>>2]=D;C=f[h>>2]|0;if(q>>>0<=C>>>0){l=38;break a}else{k=H;B=E+4|0}}}if((l|0)==53){l=0;f[h>>2]=w;f[v>>2]=o;t=v;u=n+1|0}B=h+4|0;c:do if(B>>>0>>0){k=f[B>>2]|0;C=f[c>>2]|0;q=f[C>>2]|0;s=(f[C+4>>2]|0)-q>>3;if(s>>>0>k>>>0){J=t;K=B;L=u;M=m;N=s;O=q;P=C;Q=k}else{R=C;l=57;break a}while(1){C=f[c>>2]|0;k=C+4|0;q=f[M>>2]|0;s=K;j=O;D=N;S=P;r=Q;while(1){F=j;if(D>>>0<=q>>>0){l=59;break a}if((f[F+(r<<3)>>2]|0)>>>0>=(f[F+(q<<3)>>2]|0)>>>0)break;F=s+4|0;T=f[F>>2]|0;j=f[C>>2]|0;D=(f[k>>2]|0)-j>>3;if(D>>>0<=T>>>0){R=C;l=57;break a}else{s=F;S=C;r=T}}C=f[M>>2]|0;O=f[S>>2]|0;N=(f[S+4>>2]|0)-O>>3;D=O;j=D+(C<<3)|0;if(N>>>0>C>>>0)U=J;else{l=65;break a}do{U=U+-4|0;V=f[U>>2]|0;if(N>>>0<=V>>>0){l=66;break a}}while((f[D+(V<<3)>>2]|0)>>>0>=(f[j>>2]|0)>>>0);if(s>>>0>U>>>0){W=M;X=L;Y=s;break c}f[s>>2]=V;f[U>>2]=r;K=s+4|0;Q=f[K>>2]|0;if(N>>>0<=Q>>>0){R=S;l=57;break a}else{J=U;L=L+1|0;M=(M|0)==(s|0)?U:M;P=S}}}else{W=m;X=u;Y=B}while(0);if((Y|0)!=(W|0)){B=f[W>>2]|0;j=f[Y>>2]|0;Z=f[c>>2]|0;D=f[Z>>2]|0;C=(f[Z+4>>2]|0)-D>>3;if(C>>>0<=B>>>0){l=72;break a}k=D;if(C>>>0<=j>>>0){l=74;break a}if((f[k+(B<<3)>>2]|0)>>>0<(f[k+(j<<3)>>2]|0)>>>0){f[Y>>2]=B;f[W>>2]=j;_=X+1|0}else _=X}else _=X;if(!_){$=_d(h,Y,c)|0;j=Y+4|0;if(_d(j,a,c)|0){l=83;break}if($){g=j;continue}}j=Y;if((j-i|0)>=(b-j|0)){l=82;break}Eb(h,Y,c);g=Y+4|0}if((l|0)==82){l=0;Eb(Y+4|0,a,c);d=h;a=Y;continue}else if((l|0)==83){l=0;if($){l=84;break}else{d=h;a=Y;continue}}}switch(l|0){case 5:{l=f[e>>2]|0;Y=f[h>>2]|0;d=f[c>>2]|0;$=f[d>>2]|0;i=(f[d+4>>2]|0)-$>>3;if(i>>>0<=l>>>0)aq(d);_=$;if(i>>>0<=Y>>>0)aq(d);if((f[_+(l<<3)>>2]|0)>>>0>=(f[_+(Y<<3)>>2]|0)>>>0)return;f[h>>2]=l;f[e>>2]=Y;return}case 11:{Vg(h,h+4|0,e,c)|0;return}case 12:{jh(h,h+4|0,h+8|0,e,c)|0;return}case 13:{ig(h,h+4|0,h+8|0,h+12|0,e,c)|0;return}case 15:{ih(h,a,c);return}case 20:{aq(p);break}case 22:{aq(p);break}case 26:{aq(p);break}case 32:{aq(p);break}case 38:{aq(A);break}case 40:{aq(A);break}case 46:{aq(A);break}case 47:{aq(A);break}case 51:{aq(p);break}case 57:{aq(R);break}case 59:{aq(S);break}case 65:{if(N>>>0>(f[J+-4>>2]|0)>>>0)aq(S);else aq(S);break}case 66:{aq(S);break}case 72:{aq(Z);break}case 74:{aq(Z);break}case 84:return}}function Fb(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0;d=a;a=b;a:while(1){b=a;e=a+-4|0;g=d;while(1){h=g;b:while(1){i=h;j=b-i|0;k=j>>2;switch(k|0){case 2:{l=5;break a;break}case 3:{l=11;break a;break}case 4:{l=12;break a;break}case 5:{l=13;break a;break}case 1:case 0:{l=84;break a;break}default:{}}if((j|0)<124){l=15;break a}m=h+(((k|0)/2|0)<<2)|0;if((j|0)>3996){j=(k|0)/4|0;n=ig(h,h+(j<<2)|0,m,m+(j<<2)|0,e,c)|0}else n=Vg(h,m,e,c)|0;o=f[h>>2]|0;j=f[m>>2]|0;p=f[c>>2]|0;k=f[p>>2]|0;q=(f[p+4>>2]|0)-k>>3;if(q>>>0<=o>>>0){l=20;break a}r=k;if(q>>>0<=j>>>0){l=22;break a}k=f[r+(o<<3)>>2]|0;s=f[r+(j<<3)>>2]|0;if(k>>>0>>0){t=e;u=n;break}else v=e;while(1){v=v+-4|0;if((h|0)==(v|0))break;w=f[v>>2]|0;if(q>>>0<=w>>>0){l=51;break a}if((f[r+(w<<3)>>2]|0)>>>0>>0){l=53;break b}}s=h+4|0;j=f[e>>2]|0;if(q>>>0<=j>>>0){l=26;break a}if(k>>>0<(f[r+(j<<3)>>2]|0)>>>0)x=s;else{if((s|0)==(e|0)){l=84;break a}else y=s;while(1){z=f[y>>2]|0;if(q>>>0<=z>>>0){l=32;break a}if(k>>>0<(f[r+(z<<3)>>2]|0)>>>0)break;s=y+4|0;if((s|0)==(e|0)){l=84;break a}else y=s}f[y>>2]=j;f[e>>2]=z;x=y+4|0}if((x|0)==(e|0)){l=84;break a}r=f[h>>2]|0;A=f[c>>2]|0;k=f[A>>2]|0;q=(f[A+4>>2]|0)-k>>3;if(q>>>0<=r>>>0){l=38;break a}s=k;k=e;B=x;C=r;while(1){r=s+(C<<3)|0;D=q>>>0>C>>>0;E=B;while(1){F=f[E>>2]|0;if(q>>>0<=F>>>0){l=40;break a}G=f[r>>2]|0;if(G>>>0<(f[s+(F<<3)>>2]|0)>>>0)break;if(D)E=E+4|0;else{l=38;break a}}if(q>>>0>C>>>0)H=k;else{l=46;break a}do{H=H+-4|0;I=f[H>>2]|0;if(q>>>0<=I>>>0){l=47;break a}}while(G>>>0<(f[s+(I<<3)>>2]|0)>>>0);if(E>>>0>=H>>>0){h=E;continue b}D=f[E>>2]|0;f[E>>2]=I;f[H>>2]=D;C=f[h>>2]|0;if(q>>>0<=C>>>0){l=38;break a}else{k=H;B=E+4|0}}}if((l|0)==53){l=0;f[h>>2]=w;f[v>>2]=o;t=v;u=n+1|0}B=h+4|0;c:do if(B>>>0>>0){k=f[B>>2]|0;C=f[c>>2]|0;q=f[C>>2]|0;s=(f[C+4>>2]|0)-q>>3;if(s>>>0>k>>>0){J=t;K=B;L=u;M=m;N=s;O=q;P=C;Q=k}else{R=C;l=57;break a}while(1){C=f[c>>2]|0;k=C+4|0;q=f[M>>2]|0;s=K;j=O;D=N;S=P;r=Q;while(1){F=j;if(D>>>0<=q>>>0){l=59;break a}if((f[F+(r<<3)>>2]|0)>>>0>=(f[F+(q<<3)>>2]|0)>>>0)break;F=s+4|0;T=f[F>>2]|0;j=f[C>>2]|0;D=(f[k>>2]|0)-j>>3;if(D>>>0<=T>>>0){R=C;l=57;break a}else{s=F;S=C;r=T}}C=f[M>>2]|0;O=f[S>>2]|0;N=(f[S+4>>2]|0)-O>>3;D=O;j=D+(C<<3)|0;if(N>>>0>C>>>0)U=J;else{l=65;break a}do{U=U+-4|0;V=f[U>>2]|0;if(N>>>0<=V>>>0){l=66;break a}}while((f[D+(V<<3)>>2]|0)>>>0>=(f[j>>2]|0)>>>0);if(s>>>0>U>>>0){W=M;X=L;Y=s;break c}f[s>>2]=V;f[U>>2]=r;K=s+4|0;Q=f[K>>2]|0;if(N>>>0<=Q>>>0){R=S;l=57;break a}else{J=U;L=L+1|0;M=(M|0)==(s|0)?U:M;P=S}}}else{W=m;X=u;Y=B}while(0);if((Y|0)!=(W|0)){B=f[W>>2]|0;j=f[Y>>2]|0;Z=f[c>>2]|0;D=f[Z>>2]|0;C=(f[Z+4>>2]|0)-D>>3;if(C>>>0<=B>>>0){l=72;break a}k=D;if(C>>>0<=j>>>0){l=74;break a}if((f[k+(B<<3)>>2]|0)>>>0<(f[k+(j<<3)>>2]|0)>>>0){f[Y>>2]=B;f[W>>2]=j;_=X+1|0}else _=X}else _=X;if(!_){$=_d(h,Y,c)|0;j=Y+4|0;if(_d(j,a,c)|0){l=83;break}if($){g=j;continue}}j=Y;if((j-i|0)>=(b-j|0)){l=82;break}Fb(h,Y,c);g=Y+4|0}if((l|0)==82){l=0;Fb(Y+4|0,a,c);d=h;a=Y;continue}else if((l|0)==83){l=0;if($){l=84;break}else{d=h;a=Y;continue}}}switch(l|0){case 5:{l=f[e>>2]|0;Y=f[h>>2]|0;d=f[c>>2]|0;$=f[d>>2]|0;i=(f[d+4>>2]|0)-$>>3;if(i>>>0<=l>>>0)aq(d);_=$;if(i>>>0<=Y>>>0)aq(d);if((f[_+(l<<3)>>2]|0)>>>0>=(f[_+(Y<<3)>>2]|0)>>>0)return;f[h>>2]=l;f[e>>2]=Y;return}case 11:{Vg(h,h+4|0,e,c)|0;return}case 12:{jh(h,h+4|0,h+8|0,e,c)|0;return}case 13:{ig(h,h+4|0,h+8|0,h+12|0,e,c)|0;return}case 15:{ih(h,a,c);return}case 20:{aq(p);break}case 22:{aq(p);break}case 26:{aq(p);break}case 32:{aq(p);break}case 38:{aq(A);break}case 40:{aq(A);break}case 46:{aq(A);break}case 47:{aq(A);break}case 51:{aq(p);break}case 57:{aq(R);break}case 59:{aq(S);break}case 65:{if(N>>>0>(f[J+-4>>2]|0)>>>0)aq(S);else aq(S);break}case 66:{aq(S);break}case 72:{aq(Z);break}case 74:{aq(Z);break}case 84:return}}function Gb(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0;d=a;a=b;a:while(1){b=a;e=a+-4|0;g=d;while(1){h=g;b:while(1){i=h;j=b-i|0;k=j>>2;switch(k|0){case 2:{l=5;break a;break}case 3:{l=11;break a;break}case 4:{l=12;break a;break}case 5:{l=13;break a;break}case 1:case 0:{l=84;break a;break}default:{}}if((j|0)<124){l=15;break a}m=h+(((k|0)/2|0)<<2)|0;if((j|0)>3996){j=(k|0)/4|0;n=ig(h,h+(j<<2)|0,m,m+(j<<2)|0,e,c)|0}else n=Vg(h,m,e,c)|0;o=f[h>>2]|0;j=f[m>>2]|0;p=f[c>>2]|0;k=f[p>>2]|0;q=(f[p+4>>2]|0)-k>>3;if(q>>>0<=o>>>0){l=20;break a}r=k;if(q>>>0<=j>>>0){l=22;break a}k=f[r+(o<<3)>>2]|0;s=f[r+(j<<3)>>2]|0;if(k>>>0>>0){t=e;u=n;break}else v=e;while(1){v=v+-4|0;if((h|0)==(v|0))break;w=f[v>>2]|0;if(q>>>0<=w>>>0){l=51;break a}if((f[r+(w<<3)>>2]|0)>>>0>>0){l=53;break b}}s=h+4|0;j=f[e>>2]|0;if(q>>>0<=j>>>0){l=26;break a}if(k>>>0<(f[r+(j<<3)>>2]|0)>>>0)x=s;else{if((s|0)==(e|0)){l=84;break a}else y=s;while(1){z=f[y>>2]|0;if(q>>>0<=z>>>0){l=32;break a}if(k>>>0<(f[r+(z<<3)>>2]|0)>>>0)break;s=y+4|0;if((s|0)==(e|0)){l=84;break a}else y=s}f[y>>2]=j;f[e>>2]=z;x=y+4|0}if((x|0)==(e|0)){l=84;break a}r=f[h>>2]|0;A=f[c>>2]|0;k=f[A>>2]|0;q=(f[A+4>>2]|0)-k>>3;if(q>>>0<=r>>>0){l=38;break a}s=k;k=e;B=x;C=r;while(1){r=s+(C<<3)|0;D=q>>>0>C>>>0;E=B;while(1){F=f[E>>2]|0;if(q>>>0<=F>>>0){l=40;break a}G=f[r>>2]|0;if(G>>>0<(f[s+(F<<3)>>2]|0)>>>0)break;if(D)E=E+4|0;else{l=38;break a}}if(q>>>0>C>>>0)H=k;else{l=46;break a}do{H=H+-4|0;I=f[H>>2]|0;if(q>>>0<=I>>>0){l=47;break a}}while(G>>>0<(f[s+(I<<3)>>2]|0)>>>0);if(E>>>0>=H>>>0){h=E;continue b}D=f[E>>2]|0;f[E>>2]=I;f[H>>2]=D;C=f[h>>2]|0;if(q>>>0<=C>>>0){l=38;break a}else{k=H;B=E+4|0}}}if((l|0)==53){l=0;f[h>>2]=w;f[v>>2]=o;t=v;u=n+1|0}B=h+4|0;c:do if(B>>>0>>0){k=f[B>>2]|0;C=f[c>>2]|0;q=f[C>>2]|0;s=(f[C+4>>2]|0)-q>>3;if(s>>>0>k>>>0){J=t;K=B;L=u;M=m;N=s;O=q;P=C;Q=k}else{R=C;l=57;break a}while(1){C=f[c>>2]|0;k=C+4|0;q=f[M>>2]|0;s=K;j=O;D=N;S=P;r=Q;while(1){F=j;if(D>>>0<=q>>>0){l=59;break a}if((f[F+(r<<3)>>2]|0)>>>0>=(f[F+(q<<3)>>2]|0)>>>0)break;F=s+4|0;T=f[F>>2]|0;j=f[C>>2]|0;D=(f[k>>2]|0)-j>>3;if(D>>>0<=T>>>0){R=C;l=57;break a}else{s=F;S=C;r=T}}C=f[M>>2]|0;O=f[S>>2]|0;N=(f[S+4>>2]|0)-O>>3;D=O;j=D+(C<<3)|0;if(N>>>0>C>>>0)U=J;else{l=65;break a}do{U=U+-4|0;V=f[U>>2]|0;if(N>>>0<=V>>>0){l=66;break a}}while((f[D+(V<<3)>>2]|0)>>>0>=(f[j>>2]|0)>>>0);if(s>>>0>U>>>0){W=M;X=L;Y=s;break c}f[s>>2]=V;f[U>>2]=r;K=s+4|0;Q=f[K>>2]|0;if(N>>>0<=Q>>>0){R=S;l=57;break a}else{J=U;L=L+1|0;M=(M|0)==(s|0)?U:M;P=S}}}else{W=m;X=u;Y=B}while(0);if((Y|0)!=(W|0)){B=f[W>>2]|0;j=f[Y>>2]|0;Z=f[c>>2]|0;D=f[Z>>2]|0;C=(f[Z+4>>2]|0)-D>>3;if(C>>>0<=B>>>0){l=72;break a}k=D;if(C>>>0<=j>>>0){l=74;break a}if((f[k+(B<<3)>>2]|0)>>>0<(f[k+(j<<3)>>2]|0)>>>0){f[Y>>2]=B;f[W>>2]=j;_=X+1|0}else _=X}else _=X;if(!_){$=_d(h,Y,c)|0;j=Y+4|0;if(_d(j,a,c)|0){l=83;break}if($){g=j;continue}}j=Y;if((j-i|0)>=(b-j|0)){l=82;break}Gb(h,Y,c);g=Y+4|0}if((l|0)==82){l=0;Gb(Y+4|0,a,c);d=h;a=Y;continue}else if((l|0)==83){l=0;if($){l=84;break}else{d=h;a=Y;continue}}}switch(l|0){case 5:{l=f[e>>2]|0;Y=f[h>>2]|0;d=f[c>>2]|0;$=f[d>>2]|0;i=(f[d+4>>2]|0)-$>>3;if(i>>>0<=l>>>0)aq(d);_=$;if(i>>>0<=Y>>>0)aq(d);if((f[_+(l<<3)>>2]|0)>>>0>=(f[_+(Y<<3)>>2]|0)>>>0)return;f[h>>2]=l;f[e>>2]=Y;return}case 11:{Vg(h,h+4|0,e,c)|0;return}case 12:{jh(h,h+4|0,h+8|0,e,c)|0;return}case 13:{ig(h,h+4|0,h+8|0,h+12|0,e,c)|0;return}case 15:{ih(h,a,c);return}case 20:{aq(p);break}case 22:{aq(p);break}case 26:{aq(p);break}case 32:{aq(p);break}case 38:{aq(A);break}case 40:{aq(A);break}case 46:{aq(A);break}case 47:{aq(A);break}case 51:{aq(p);break}case 57:{aq(R);break}case 59:{aq(S);break}case 65:{if(N>>>0>(f[J+-4>>2]|0)>>>0)aq(S);else aq(S);break}case 66:{aq(S);break}case 72:{aq(Z);break}case 74:{aq(Z);break}case 84:return}}function Hb(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0;d=a;a=b;a:while(1){b=a;e=a+-4|0;g=d;while(1){h=g;b:while(1){i=h;j=b-i|0;k=j>>2;switch(k|0){case 2:{l=5;break a;break}case 3:{l=11;break a;break}case 4:{l=12;break a;break}case 5:{l=13;break a;break}case 1:case 0:{l=84;break a;break}default:{}}if((j|0)<124){l=15;break a}m=h+(((k|0)/2|0)<<2)|0;if((j|0)>3996){j=(k|0)/4|0;n=ig(h,h+(j<<2)|0,m,m+(j<<2)|0,e,c)|0}else n=Vg(h,m,e,c)|0;o=f[h>>2]|0;j=f[m>>2]|0;p=f[c>>2]|0;k=f[p>>2]|0;q=(f[p+4>>2]|0)-k>>3;if(q>>>0<=o>>>0){l=20;break a}r=k;if(q>>>0<=j>>>0){l=22;break a}k=f[r+(o<<3)>>2]|0;s=f[r+(j<<3)>>2]|0;if(k>>>0>>0){t=e;u=n;break}else v=e;while(1){v=v+-4|0;if((h|0)==(v|0))break;w=f[v>>2]|0;if(q>>>0<=w>>>0){l=51;break a}if((f[r+(w<<3)>>2]|0)>>>0>>0){l=53;break b}}s=h+4|0;j=f[e>>2]|0;if(q>>>0<=j>>>0){l=26;break a}if(k>>>0<(f[r+(j<<3)>>2]|0)>>>0)x=s;else{if((s|0)==(e|0)){l=84;break a}else y=s;while(1){z=f[y>>2]|0;if(q>>>0<=z>>>0){l=32;break a}if(k>>>0<(f[r+(z<<3)>>2]|0)>>>0)break;s=y+4|0;if((s|0)==(e|0)){l=84;break a}else y=s}f[y>>2]=j;f[e>>2]=z;x=y+4|0}if((x|0)==(e|0)){l=84;break a}r=f[h>>2]|0;A=f[c>>2]|0;k=f[A>>2]|0;q=(f[A+4>>2]|0)-k>>3;if(q>>>0<=r>>>0){l=38;break a}s=k;k=e;B=x;C=r;while(1){r=s+(C<<3)|0;D=q>>>0>C>>>0;E=B;while(1){F=f[E>>2]|0;if(q>>>0<=F>>>0){l=40;break a}G=f[r>>2]|0;if(G>>>0<(f[s+(F<<3)>>2]|0)>>>0)break;if(D)E=E+4|0;else{l=38;break a}}if(q>>>0>C>>>0)H=k;else{l=46;break a}do{H=H+-4|0;I=f[H>>2]|0;if(q>>>0<=I>>>0){l=47;break a}}while(G>>>0<(f[s+(I<<3)>>2]|0)>>>0);if(E>>>0>=H>>>0){h=E;continue b}D=f[E>>2]|0;f[E>>2]=I;f[H>>2]=D;C=f[h>>2]|0;if(q>>>0<=C>>>0){l=38;break a}else{k=H;B=E+4|0}}}if((l|0)==53){l=0;f[h>>2]=w;f[v>>2]=o;t=v;u=n+1|0}B=h+4|0;c:do if(B>>>0>>0){k=f[B>>2]|0;C=f[c>>2]|0;q=f[C>>2]|0;s=(f[C+4>>2]|0)-q>>3;if(s>>>0>k>>>0){J=t;K=B;L=u;M=m;N=s;O=q;P=C;Q=k}else{R=C;l=57;break a}while(1){C=f[c>>2]|0;k=C+4|0;q=f[M>>2]|0;s=K;j=O;D=N;S=P;r=Q;while(1){F=j;if(D>>>0<=q>>>0){l=59;break a}if((f[F+(r<<3)>>2]|0)>>>0>=(f[F+(q<<3)>>2]|0)>>>0)break;F=s+4|0;T=f[F>>2]|0;j=f[C>>2]|0;D=(f[k>>2]|0)-j>>3;if(D>>>0<=T>>>0){R=C;l=57;break a}else{s=F;S=C;r=T}}C=f[M>>2]|0;O=f[S>>2]|0;N=(f[S+4>>2]|0)-O>>3;D=O;j=D+(C<<3)|0;if(N>>>0>C>>>0)U=J;else{l=65;break a}do{U=U+-4|0;V=f[U>>2]|0;if(N>>>0<=V>>>0){l=66;break a}}while((f[D+(V<<3)>>2]|0)>>>0>=(f[j>>2]|0)>>>0);if(s>>>0>U>>>0){W=M;X=L;Y=s;break c}f[s>>2]=V;f[U>>2]=r;K=s+4|0;Q=f[K>>2]|0;if(N>>>0<=Q>>>0){R=S;l=57;break a}else{J=U;L=L+1|0;M=(M|0)==(s|0)?U:M;P=S}}}else{W=m;X=u;Y=B}while(0);if((Y|0)!=(W|0)){B=f[W>>2]|0;j=f[Y>>2]|0;Z=f[c>>2]|0;D=f[Z>>2]|0;C=(f[Z+4>>2]|0)-D>>3;if(C>>>0<=B>>>0){l=72;break a}k=D;if(C>>>0<=j>>>0){l=74;break a}if((f[k+(B<<3)>>2]|0)>>>0<(f[k+(j<<3)>>2]|0)>>>0){f[Y>>2]=B;f[W>>2]=j;_=X+1|0}else _=X}else _=X;if(!_){$=_d(h,Y,c)|0;j=Y+4|0;if(_d(j,a,c)|0){l=83;break}if($){g=j;continue}}j=Y;if((j-i|0)>=(b-j|0)){l=82;break}Hb(h,Y,c);g=Y+4|0}if((l|0)==82){l=0;Hb(Y+4|0,a,c);d=h;a=Y;continue}else if((l|0)==83){l=0;if($){l=84;break}else{d=h;a=Y;continue}}}switch(l|0){case 5:{l=f[e>>2]|0;Y=f[h>>2]|0;d=f[c>>2]|0;$=f[d>>2]|0;i=(f[d+4>>2]|0)-$>>3;if(i>>>0<=l>>>0)aq(d);_=$;if(i>>>0<=Y>>>0)aq(d);if((f[_+(l<<3)>>2]|0)>>>0>=(f[_+(Y<<3)>>2]|0)>>>0)return;f[h>>2]=l;f[e>>2]=Y;return}case 11:{Vg(h,h+4|0,e,c)|0;return}case 12:{jh(h,h+4|0,h+8|0,e,c)|0;return}case 13:{ig(h,h+4|0,h+8|0,h+12|0,e,c)|0;return}case 15:{ih(h,a,c);return}case 20:{aq(p);break}case 22:{aq(p);break}case 26:{aq(p);break}case 32:{aq(p);break}case 38:{aq(A);break}case 40:{aq(A);break}case 46:{aq(A);break}case 47:{aq(A);break}case 51:{aq(p);break}case 57:{aq(R);break}case 59:{aq(S);break}case 65:{if(N>>>0>(f[J+-4>>2]|0)>>>0)aq(S);else aq(S);break}case 66:{aq(S);break}case 72:{aq(Z);break}case 74:{aq(Z);break}case 84:return}}function Ib(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0;d=a;a=b;a:while(1){b=a;e=a+-4|0;g=d;while(1){h=g;b:while(1){i=h;j=b-i|0;k=j>>2;switch(k|0){case 2:{l=5;break a;break}case 3:{l=11;break a;break}case 4:{l=12;break a;break}case 5:{l=13;break a;break}case 1:case 0:{l=84;break a;break}default:{}}if((j|0)<124){l=15;break a}m=h+(((k|0)/2|0)<<2)|0;if((j|0)>3996){j=(k|0)/4|0;n=ig(h,h+(j<<2)|0,m,m+(j<<2)|0,e,c)|0}else n=Vg(h,m,e,c)|0;o=f[h>>2]|0;j=f[m>>2]|0;p=f[c>>2]|0;k=f[p>>2]|0;q=(f[p+4>>2]|0)-k>>3;if(q>>>0<=o>>>0){l=20;break a}r=k;if(q>>>0<=j>>>0){l=22;break a}k=f[r+(o<<3)>>2]|0;s=f[r+(j<<3)>>2]|0;if(k>>>0>>0){t=e;u=n;break}else v=e;while(1){v=v+-4|0;if((h|0)==(v|0))break;w=f[v>>2]|0;if(q>>>0<=w>>>0){l=51;break a}if((f[r+(w<<3)>>2]|0)>>>0>>0){l=53;break b}}s=h+4|0;j=f[e>>2]|0;if(q>>>0<=j>>>0){l=26;break a}if(k>>>0<(f[r+(j<<3)>>2]|0)>>>0)x=s;else{if((s|0)==(e|0)){l=84;break a}else y=s;while(1){z=f[y>>2]|0;if(q>>>0<=z>>>0){l=32;break a}if(k>>>0<(f[r+(z<<3)>>2]|0)>>>0)break;s=y+4|0;if((s|0)==(e|0)){l=84;break a}else y=s}f[y>>2]=j;f[e>>2]=z;x=y+4|0}if((x|0)==(e|0)){l=84;break a}r=f[h>>2]|0;A=f[c>>2]|0;k=f[A>>2]|0;q=(f[A+4>>2]|0)-k>>3;if(q>>>0<=r>>>0){l=38;break a}s=k;k=e;B=x;C=r;while(1){r=s+(C<<3)|0;D=q>>>0>C>>>0;E=B;while(1){F=f[E>>2]|0;if(q>>>0<=F>>>0){l=40;break a}G=f[r>>2]|0;if(G>>>0<(f[s+(F<<3)>>2]|0)>>>0)break;if(D)E=E+4|0;else{l=38;break a}}if(q>>>0>C>>>0)H=k;else{l=46;break a}do{H=H+-4|0;I=f[H>>2]|0;if(q>>>0<=I>>>0){l=47;break a}}while(G>>>0<(f[s+(I<<3)>>2]|0)>>>0);if(E>>>0>=H>>>0){h=E;continue b}D=f[E>>2]|0;f[E>>2]=I;f[H>>2]=D;C=f[h>>2]|0;if(q>>>0<=C>>>0){l=38;break a}else{k=H;B=E+4|0}}}if((l|0)==53){l=0;f[h>>2]=w;f[v>>2]=o;t=v;u=n+1|0}B=h+4|0;c:do if(B>>>0>>0){k=f[B>>2]|0;C=f[c>>2]|0;q=f[C>>2]|0;s=(f[C+4>>2]|0)-q>>3;if(s>>>0>k>>>0){J=t;K=B;L=u;M=m;N=s;O=q;P=C;Q=k}else{R=C;l=57;break a}while(1){C=f[c>>2]|0;k=C+4|0;q=f[M>>2]|0;s=K;j=O;D=N;S=P;r=Q;while(1){F=j;if(D>>>0<=q>>>0){l=59;break a}if((f[F+(r<<3)>>2]|0)>>>0>=(f[F+(q<<3)>>2]|0)>>>0)break;F=s+4|0;T=f[F>>2]|0;j=f[C>>2]|0;D=(f[k>>2]|0)-j>>3;if(D>>>0<=T>>>0){R=C;l=57;break a}else{s=F;S=C;r=T}}C=f[M>>2]|0;O=f[S>>2]|0;N=(f[S+4>>2]|0)-O>>3;D=O;j=D+(C<<3)|0;if(N>>>0>C>>>0)U=J;else{l=65;break a}do{U=U+-4|0;V=f[U>>2]|0;if(N>>>0<=V>>>0){l=66;break a}}while((f[D+(V<<3)>>2]|0)>>>0>=(f[j>>2]|0)>>>0);if(s>>>0>U>>>0){W=M;X=L;Y=s;break c}f[s>>2]=V;f[U>>2]=r;K=s+4|0;Q=f[K>>2]|0;if(N>>>0<=Q>>>0){R=S;l=57;break a}else{J=U;L=L+1|0;M=(M|0)==(s|0)?U:M;P=S}}}else{W=m;X=u;Y=B}while(0);if((Y|0)!=(W|0)){B=f[W>>2]|0;j=f[Y>>2]|0;Z=f[c>>2]|0;D=f[Z>>2]|0;C=(f[Z+4>>2]|0)-D>>3;if(C>>>0<=B>>>0){l=72;break a}k=D;if(C>>>0<=j>>>0){l=74;break a}if((f[k+(B<<3)>>2]|0)>>>0<(f[k+(j<<3)>>2]|0)>>>0){f[Y>>2]=B;f[W>>2]=j;_=X+1|0}else _=X}else _=X;if(!_){$=_d(h,Y,c)|0;j=Y+4|0;if(_d(j,a,c)|0){l=83;break}if($){g=j;continue}}j=Y;if((j-i|0)>=(b-j|0)){l=82;break}Ib(h,Y,c);g=Y+4|0}if((l|0)==82){l=0;Ib(Y+4|0,a,c);d=h;a=Y;continue}else if((l|0)==83){l=0;if($){l=84;break}else{d=h;a=Y;continue}}}switch(l|0){case 5:{l=f[e>>2]|0;Y=f[h>>2]|0;d=f[c>>2]|0;$=f[d>>2]|0;i=(f[d+4>>2]|0)-$>>3;if(i>>>0<=l>>>0)aq(d);_=$;if(i>>>0<=Y>>>0)aq(d);if((f[_+(l<<3)>>2]|0)>>>0>=(f[_+(Y<<3)>>2]|0)>>>0)return;f[h>>2]=l;f[e>>2]=Y;return}case 11:{Vg(h,h+4|0,e,c)|0;return}case 12:{jh(h,h+4|0,h+8|0,e,c)|0;return}case 13:{ig(h,h+4|0,h+8|0,h+12|0,e,c)|0;return}case 15:{ih(h,a,c);return}case 20:{aq(p);break}case 22:{aq(p);break}case 26:{aq(p);break}case 32:{aq(p);break}case 38:{aq(A);break}case 40:{aq(A);break}case 46:{aq(A);break}case 47:{aq(A);break}case 51:{aq(p);break}case 57:{aq(R);break}case 59:{aq(S);break}case 65:{if(N>>>0>(f[J+-4>>2]|0)>>>0)aq(S);else aq(S);break}case 66:{aq(S);break}case 72:{aq(Z);break}case 74:{aq(Z);break}case 84:return}}function Jb(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0;d=a;a=b;a:while(1){b=a;e=a+-4|0;g=d;while(1){h=g;b:while(1){i=h;j=b-i|0;k=j>>2;switch(k|0){case 2:{l=5;break a;break}case 3:{l=11;break a;break}case 4:{l=12;break a;break}case 5:{l=13;break a;break}case 1:case 0:{l=84;break a;break}default:{}}if((j|0)<124){l=15;break a}m=h+(((k|0)/2|0)<<2)|0;if((j|0)>3996){j=(k|0)/4|0;n=ig(h,h+(j<<2)|0,m,m+(j<<2)|0,e,c)|0}else n=Vg(h,m,e,c)|0;o=f[h>>2]|0;j=f[m>>2]|0;p=f[c>>2]|0;k=f[p>>2]|0;q=(f[p+4>>2]|0)-k>>3;if(q>>>0<=o>>>0){l=20;break a}r=k;if(q>>>0<=j>>>0){l=22;break a}k=f[r+(o<<3)>>2]|0;s=f[r+(j<<3)>>2]|0;if(k>>>0>>0){t=e;u=n;break}else v=e;while(1){v=v+-4|0;if((h|0)==(v|0))break;w=f[v>>2]|0;if(q>>>0<=w>>>0){l=51;break a}if((f[r+(w<<3)>>2]|0)>>>0>>0){l=53;break b}}s=h+4|0;j=f[e>>2]|0;if(q>>>0<=j>>>0){l=26;break a}if(k>>>0<(f[r+(j<<3)>>2]|0)>>>0)x=s;else{if((s|0)==(e|0)){l=84;break a}else y=s;while(1){z=f[y>>2]|0;if(q>>>0<=z>>>0){l=32;break a}if(k>>>0<(f[r+(z<<3)>>2]|0)>>>0)break;s=y+4|0;if((s|0)==(e|0)){l=84;break a}else y=s}f[y>>2]=j;f[e>>2]=z;x=y+4|0}if((x|0)==(e|0)){l=84;break a}r=f[h>>2]|0;A=f[c>>2]|0;k=f[A>>2]|0;q=(f[A+4>>2]|0)-k>>3;if(q>>>0<=r>>>0){l=38;break a}s=k;k=e;B=x;C=r;while(1){r=s+(C<<3)|0;D=q>>>0>C>>>0;E=B;while(1){F=f[E>>2]|0;if(q>>>0<=F>>>0){l=40;break a}G=f[r>>2]|0;if(G>>>0<(f[s+(F<<3)>>2]|0)>>>0)break;if(D)E=E+4|0;else{l=38;break a}}if(q>>>0>C>>>0)H=k;else{l=46;break a}do{H=H+-4|0;I=f[H>>2]|0;if(q>>>0<=I>>>0){l=47;break a}}while(G>>>0<(f[s+(I<<3)>>2]|0)>>>0);if(E>>>0>=H>>>0){h=E;continue b}D=f[E>>2]|0;f[E>>2]=I;f[H>>2]=D;C=f[h>>2]|0;if(q>>>0<=C>>>0){l=38;break a}else{k=H;B=E+4|0}}}if((l|0)==53){l=0;f[h>>2]=w;f[v>>2]=o;t=v;u=n+1|0}B=h+4|0;c:do if(B>>>0>>0){k=f[B>>2]|0;C=f[c>>2]|0;q=f[C>>2]|0;s=(f[C+4>>2]|0)-q>>3;if(s>>>0>k>>>0){J=t;K=B;L=u;M=m;N=s;O=q;P=C;Q=k}else{R=C;l=57;break a}while(1){C=f[c>>2]|0;k=C+4|0;q=f[M>>2]|0;s=K;j=O;D=N;S=P;r=Q;while(1){F=j;if(D>>>0<=q>>>0){l=59;break a}if((f[F+(r<<3)>>2]|0)>>>0>=(f[F+(q<<3)>>2]|0)>>>0)break;F=s+4|0;T=f[F>>2]|0;j=f[C>>2]|0;D=(f[k>>2]|0)-j>>3;if(D>>>0<=T>>>0){R=C;l=57;break a}else{s=F;S=C;r=T}}C=f[M>>2]|0;O=f[S>>2]|0;N=(f[S+4>>2]|0)-O>>3;D=O;j=D+(C<<3)|0;if(N>>>0>C>>>0)U=J;else{l=65;break a}do{U=U+-4|0;V=f[U>>2]|0;if(N>>>0<=V>>>0){l=66;break a}}while((f[D+(V<<3)>>2]|0)>>>0>=(f[j>>2]|0)>>>0);if(s>>>0>U>>>0){W=M;X=L;Y=s;break c}f[s>>2]=V;f[U>>2]=r;K=s+4|0;Q=f[K>>2]|0;if(N>>>0<=Q>>>0){R=S;l=57;break a}else{J=U;L=L+1|0;M=(M|0)==(s|0)?U:M;P=S}}}else{W=m;X=u;Y=B}while(0);if((Y|0)!=(W|0)){B=f[W>>2]|0;j=f[Y>>2]|0;Z=f[c>>2]|0;D=f[Z>>2]|0;C=(f[Z+4>>2]|0)-D>>3;if(C>>>0<=B>>>0){l=72;break a}k=D;if(C>>>0<=j>>>0){l=74;break a}if((f[k+(B<<3)>>2]|0)>>>0<(f[k+(j<<3)>>2]|0)>>>0){f[Y>>2]=B;f[W>>2]=j;_=X+1|0}else _=X}else _=X;if(!_){$=_d(h,Y,c)|0;j=Y+4|0;if(_d(j,a,c)|0){l=83;break}if($){g=j;continue}}j=Y;if((j-i|0)>=(b-j|0)){l=82;break}Jb(h,Y,c);g=Y+4|0}if((l|0)==82){l=0;Jb(Y+4|0,a,c);d=h;a=Y;continue}else if((l|0)==83){l=0;if($){l=84;break}else{d=h;a=Y;continue}}}switch(l|0){case 5:{l=f[e>>2]|0;Y=f[h>>2]|0;d=f[c>>2]|0;$=f[d>>2]|0;i=(f[d+4>>2]|0)-$>>3;if(i>>>0<=l>>>0)aq(d);_=$;if(i>>>0<=Y>>>0)aq(d);if((f[_+(l<<3)>>2]|0)>>>0>=(f[_+(Y<<3)>>2]|0)>>>0)return;f[h>>2]=l;f[e>>2]=Y;return}case 11:{Vg(h,h+4|0,e,c)|0;return}case 12:{jh(h,h+4|0,h+8|0,e,c)|0;return}case 13:{ig(h,h+4|0,h+8|0,h+12|0,e,c)|0;return}case 15:{ih(h,a,c);return}case 20:{aq(p);break}case 22:{aq(p);break}case 26:{aq(p);break}case 32:{aq(p);break}case 38:{aq(A);break}case 40:{aq(A);break}case 46:{aq(A);break}case 47:{aq(A);break}case 51:{aq(p);break}case 57:{aq(R);break}case 59:{aq(S);break}case 65:{if(N>>>0>(f[J+-4>>2]|0)>>>0)aq(S);else aq(S);break}case 66:{aq(S);break}case 72:{aq(Z);break}case 74:{aq(Z);break}case 84:return}}function Kb(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0;d=a;a=b;a:while(1){b=a;e=a+-4|0;g=d;while(1){h=g;b:while(1){i=h;j=b-i|0;k=j>>2;switch(k|0){case 2:{l=5;break a;break}case 3:{l=11;break a;break}case 4:{l=12;break a;break}case 5:{l=13;break a;break}case 1:case 0:{l=84;break a;break}default:{}}if((j|0)<124){l=15;break a}m=h+(((k|0)/2|0)<<2)|0;if((j|0)>3996){j=(k|0)/4|0;n=ig(h,h+(j<<2)|0,m,m+(j<<2)|0,e,c)|0}else n=Vg(h,m,e,c)|0;o=f[h>>2]|0;j=f[m>>2]|0;p=f[c>>2]|0;k=f[p>>2]|0;q=(f[p+4>>2]|0)-k>>3;if(q>>>0<=o>>>0){l=20;break a}r=k;if(q>>>0<=j>>>0){l=22;break a}k=f[r+(o<<3)>>2]|0;s=f[r+(j<<3)>>2]|0;if(k>>>0>>0){t=e;u=n;break}else v=e;while(1){v=v+-4|0;if((h|0)==(v|0))break;w=f[v>>2]|0;if(q>>>0<=w>>>0){l=51;break a}if((f[r+(w<<3)>>2]|0)>>>0>>0){l=53;break b}}s=h+4|0;j=f[e>>2]|0;if(q>>>0<=j>>>0){l=26;break a}if(k>>>0<(f[r+(j<<3)>>2]|0)>>>0)x=s;else{if((s|0)==(e|0)){l=84;break a}else y=s;while(1){z=f[y>>2]|0;if(q>>>0<=z>>>0){l=32;break a}if(k>>>0<(f[r+(z<<3)>>2]|0)>>>0)break;s=y+4|0;if((s|0)==(e|0)){l=84;break a}else y=s}f[y>>2]=j;f[e>>2]=z;x=y+4|0}if((x|0)==(e|0)){l=84;break a}r=f[h>>2]|0;A=f[c>>2]|0;k=f[A>>2]|0;q=(f[A+4>>2]|0)-k>>3;if(q>>>0<=r>>>0){l=38;break a}s=k;k=e;B=x;C=r;while(1){r=s+(C<<3)|0;D=q>>>0>C>>>0;E=B;while(1){F=f[E>>2]|0;if(q>>>0<=F>>>0){l=40;break a}G=f[r>>2]|0;if(G>>>0<(f[s+(F<<3)>>2]|0)>>>0)break;if(D)E=E+4|0;else{l=38;break a}}if(q>>>0>C>>>0)H=k;else{l=46;break a}do{H=H+-4|0;I=f[H>>2]|0;if(q>>>0<=I>>>0){l=47;break a}}while(G>>>0<(f[s+(I<<3)>>2]|0)>>>0);if(E>>>0>=H>>>0){h=E;continue b}D=f[E>>2]|0;f[E>>2]=I;f[H>>2]=D;C=f[h>>2]|0;if(q>>>0<=C>>>0){l=38;break a}else{k=H;B=E+4|0}}}if((l|0)==53){l=0;f[h>>2]=w;f[v>>2]=o;t=v;u=n+1|0}B=h+4|0;c:do if(B>>>0>>0){k=f[B>>2]|0;C=f[c>>2]|0;q=f[C>>2]|0;s=(f[C+4>>2]|0)-q>>3;if(s>>>0>k>>>0){J=t;K=B;L=u;M=m;N=s;O=q;P=C;Q=k}else{R=C;l=57;break a}while(1){C=f[c>>2]|0;k=C+4|0;q=f[M>>2]|0;s=K;j=O;D=N;S=P;r=Q;while(1){F=j;if(D>>>0<=q>>>0){l=59;break a}if((f[F+(r<<3)>>2]|0)>>>0>=(f[F+(q<<3)>>2]|0)>>>0)break;F=s+4|0;T=f[F>>2]|0;j=f[C>>2]|0;D=(f[k>>2]|0)-j>>3;if(D>>>0<=T>>>0){R=C;l=57;break a}else{s=F;S=C;r=T}}C=f[M>>2]|0;O=f[S>>2]|0;N=(f[S+4>>2]|0)-O>>3;D=O;j=D+(C<<3)|0;if(N>>>0>C>>>0)U=J;else{l=65;break a}do{U=U+-4|0;V=f[U>>2]|0;if(N>>>0<=V>>>0){l=66;break a}}while((f[D+(V<<3)>>2]|0)>>>0>=(f[j>>2]|0)>>>0);if(s>>>0>U>>>0){W=M;X=L;Y=s;break c}f[s>>2]=V;f[U>>2]=r;K=s+4|0;Q=f[K>>2]|0;if(N>>>0<=Q>>>0){R=S;l=57;break a}else{J=U;L=L+1|0;M=(M|0)==(s|0)?U:M;P=S}}}else{W=m;X=u;Y=B}while(0);if((Y|0)!=(W|0)){B=f[W>>2]|0;j=f[Y>>2]|0;Z=f[c>>2]|0;D=f[Z>>2]|0;C=(f[Z+4>>2]|0)-D>>3;if(C>>>0<=B>>>0){l=72;break a}k=D;if(C>>>0<=j>>>0){l=74;break a}if((f[k+(B<<3)>>2]|0)>>>0<(f[k+(j<<3)>>2]|0)>>>0){f[Y>>2]=B;f[W>>2]=j;_=X+1|0}else _=X}else _=X;if(!_){$=_d(h,Y,c)|0;j=Y+4|0;if(_d(j,a,c)|0){l=83;break}if($){g=j;continue}}j=Y;if((j-i|0)>=(b-j|0)){l=82;break}Kb(h,Y,c);g=Y+4|0}if((l|0)==82){l=0;Kb(Y+4|0,a,c);d=h;a=Y;continue}else if((l|0)==83){l=0;if($){l=84;break}else{d=h;a=Y;continue}}}switch(l|0){case 5:{l=f[e>>2]|0;Y=f[h>>2]|0;d=f[c>>2]|0;$=f[d>>2]|0;i=(f[d+4>>2]|0)-$>>3;if(i>>>0<=l>>>0)aq(d);_=$;if(i>>>0<=Y>>>0)aq(d);if((f[_+(l<<3)>>2]|0)>>>0>=(f[_+(Y<<3)>>2]|0)>>>0)return;f[h>>2]=l;f[e>>2]=Y;return}case 11:{Vg(h,h+4|0,e,c)|0;return}case 12:{jh(h,h+4|0,h+8|0,e,c)|0;return}case 13:{ig(h,h+4|0,h+8|0,h+12|0,e,c)|0;return}case 15:{ih(h,a,c);return}case 20:{aq(p);break}case 22:{aq(p);break}case 26:{aq(p);break}case 32:{aq(p);break}case 38:{aq(A);break}case 40:{aq(A);break}case 46:{aq(A);break}case 47:{aq(A);break}case 51:{aq(p);break}case 57:{aq(R);break}case 59:{aq(S);break}case 65:{if(N>>>0>(f[J+-4>>2]|0)>>>0)aq(S);else aq(S);break}case 66:{aq(S);break}case 72:{aq(Z);break}case 74:{aq(Z);break}case 84:return}}function Lb(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0;d=a;a=b;a:while(1){b=a;e=a+-4|0;g=d;while(1){h=g;b:while(1){i=h;j=b-i|0;k=j>>2;switch(k|0){case 2:{l=5;break a;break}case 3:{l=11;break a;break}case 4:{l=12;break a;break}case 5:{l=13;break a;break}case 1:case 0:{l=84;break a;break}default:{}}if((j|0)<124){l=15;break a}m=h+(((k|0)/2|0)<<2)|0;if((j|0)>3996){j=(k|0)/4|0;n=ig(h,h+(j<<2)|0,m,m+(j<<2)|0,e,c)|0}else n=Vg(h,m,e,c)|0;o=f[h>>2]|0;j=f[m>>2]|0;p=f[c>>2]|0;k=f[p>>2]|0;q=(f[p+4>>2]|0)-k>>3;if(q>>>0<=o>>>0){l=20;break a}r=k;if(q>>>0<=j>>>0){l=22;break a}k=f[r+(o<<3)>>2]|0;s=f[r+(j<<3)>>2]|0;if(k>>>0>>0){t=e;u=n;break}else v=e;while(1){v=v+-4|0;if((h|0)==(v|0))break;w=f[v>>2]|0;if(q>>>0<=w>>>0){l=51;break a}if((f[r+(w<<3)>>2]|0)>>>0>>0){l=53;break b}}s=h+4|0;j=f[e>>2]|0;if(q>>>0<=j>>>0){l=26;break a}if(k>>>0<(f[r+(j<<3)>>2]|0)>>>0)x=s;else{if((s|0)==(e|0)){l=84;break a}else y=s;while(1){z=f[y>>2]|0;if(q>>>0<=z>>>0){l=32;break a}if(k>>>0<(f[r+(z<<3)>>2]|0)>>>0)break;s=y+4|0;if((s|0)==(e|0)){l=84;break a}else y=s}f[y>>2]=j;f[e>>2]=z;x=y+4|0}if((x|0)==(e|0)){l=84;break a}r=f[h>>2]|0;A=f[c>>2]|0;k=f[A>>2]|0;q=(f[A+4>>2]|0)-k>>3;if(q>>>0<=r>>>0){l=38;break a}s=k;k=e;B=x;C=r;while(1){r=s+(C<<3)|0;D=q>>>0>C>>>0;E=B;while(1){F=f[E>>2]|0;if(q>>>0<=F>>>0){l=40;break a}G=f[r>>2]|0;if(G>>>0<(f[s+(F<<3)>>2]|0)>>>0)break;if(D)E=E+4|0;else{l=38;break a}}if(q>>>0>C>>>0)H=k;else{l=46;break a}do{H=H+-4|0;I=f[H>>2]|0;if(q>>>0<=I>>>0){l=47;break a}}while(G>>>0<(f[s+(I<<3)>>2]|0)>>>0);if(E>>>0>=H>>>0){h=E;continue b}D=f[E>>2]|0;f[E>>2]=I;f[H>>2]=D;C=f[h>>2]|0;if(q>>>0<=C>>>0){l=38;break a}else{k=H;B=E+4|0}}}if((l|0)==53){l=0;f[h>>2]=w;f[v>>2]=o;t=v;u=n+1|0}B=h+4|0;c:do if(B>>>0>>0){k=f[B>>2]|0;C=f[c>>2]|0;q=f[C>>2]|0;s=(f[C+4>>2]|0)-q>>3;if(s>>>0>k>>>0){J=t;K=B;L=u;M=m;N=s;O=q;P=C;Q=k}else{R=C;l=57;break a}while(1){C=f[c>>2]|0;k=C+4|0;q=f[M>>2]|0;s=K;j=O;D=N;S=P;r=Q;while(1){F=j;if(D>>>0<=q>>>0){l=59;break a}if((f[F+(r<<3)>>2]|0)>>>0>=(f[F+(q<<3)>>2]|0)>>>0)break;F=s+4|0;T=f[F>>2]|0;j=f[C>>2]|0;D=(f[k>>2]|0)-j>>3;if(D>>>0<=T>>>0){R=C;l=57;break a}else{s=F;S=C;r=T}}C=f[M>>2]|0;O=f[S>>2]|0;N=(f[S+4>>2]|0)-O>>3;D=O;j=D+(C<<3)|0;if(N>>>0>C>>>0)U=J;else{l=65;break a}do{U=U+-4|0;V=f[U>>2]|0;if(N>>>0<=V>>>0){l=66;break a}}while((f[D+(V<<3)>>2]|0)>>>0>=(f[j>>2]|0)>>>0);if(s>>>0>U>>>0){W=M;X=L;Y=s;break c}f[s>>2]=V;f[U>>2]=r;K=s+4|0;Q=f[K>>2]|0;if(N>>>0<=Q>>>0){R=S;l=57;break a}else{J=U;L=L+1|0;M=(M|0)==(s|0)?U:M;P=S}}}else{W=m;X=u;Y=B}while(0);if((Y|0)!=(W|0)){B=f[W>>2]|0;j=f[Y>>2]|0;Z=f[c>>2]|0;D=f[Z>>2]|0;C=(f[Z+4>>2]|0)-D>>3;if(C>>>0<=B>>>0){l=72;break a}k=D;if(C>>>0<=j>>>0){l=74;break a}if((f[k+(B<<3)>>2]|0)>>>0<(f[k+(j<<3)>>2]|0)>>>0){f[Y>>2]=B;f[W>>2]=j;_=X+1|0}else _=X}else _=X;if(!_){$=_d(h,Y,c)|0;j=Y+4|0;if(_d(j,a,c)|0){l=83;break}if($){g=j;continue}}j=Y;if((j-i|0)>=(b-j|0)){l=82;break}Lb(h,Y,c);g=Y+4|0}if((l|0)==82){l=0;Lb(Y+4|0,a,c);d=h;a=Y;continue}else if((l|0)==83){l=0;if($){l=84;break}else{d=h;a=Y;continue}}}switch(l|0){case 5:{l=f[e>>2]|0;Y=f[h>>2]|0;d=f[c>>2]|0;$=f[d>>2]|0;i=(f[d+4>>2]|0)-$>>3;if(i>>>0<=l>>>0)aq(d);_=$;if(i>>>0<=Y>>>0)aq(d);if((f[_+(l<<3)>>2]|0)>>>0>=(f[_+(Y<<3)>>2]|0)>>>0)return;f[h>>2]=l;f[e>>2]=Y;return}case 11:{Vg(h,h+4|0,e,c)|0;return}case 12:{jh(h,h+4|0,h+8|0,e,c)|0;return}case 13:{ig(h,h+4|0,h+8|0,h+12|0,e,c)|0;return}case 15:{ih(h,a,c);return}case 20:{aq(p);break}case 22:{aq(p);break}case 26:{aq(p);break}case 32:{aq(p);break}case 38:{aq(A);break}case 40:{aq(A);break}case 46:{aq(A);break}case 47:{aq(A);break}case 51:{aq(p);break}case 57:{aq(R);break}case 59:{aq(S);break}case 65:{if(N>>>0>(f[J+-4>>2]|0)>>>0)aq(S);else aq(S);break}case 66:{aq(S);break}case 72:{aq(Z);break}case 74:{aq(Z);break}case 84:return}}function Mb(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0;d=a;a=b;a:while(1){b=a;e=a+-4|0;g=d;while(1){h=g;b:while(1){i=h;j=b-i|0;k=j>>2;switch(k|0){case 2:{l=5;break a;break}case 3:{l=11;break a;break}case 4:{l=12;break a;break}case 5:{l=13;break a;break}case 1:case 0:{l=84;break a;break}default:{}}if((j|0)<124){l=15;break a}m=h+(((k|0)/2|0)<<2)|0;if((j|0)>3996){j=(k|0)/4|0;n=ig(h,h+(j<<2)|0,m,m+(j<<2)|0,e,c)|0}else n=Vg(h,m,e,c)|0;o=f[h>>2]|0;j=f[m>>2]|0;p=f[c>>2]|0;k=f[p>>2]|0;q=(f[p+4>>2]|0)-k>>3;if(q>>>0<=o>>>0){l=20;break a}r=k;if(q>>>0<=j>>>0){l=22;break a}k=f[r+(o<<3)>>2]|0;s=f[r+(j<<3)>>2]|0;if(k>>>0>>0){t=e;u=n;break}else v=e;while(1){v=v+-4|0;if((h|0)==(v|0))break;w=f[v>>2]|0;if(q>>>0<=w>>>0){l=51;break a}if((f[r+(w<<3)>>2]|0)>>>0>>0){l=53;break b}}s=h+4|0;j=f[e>>2]|0;if(q>>>0<=j>>>0){l=26;break a}if(k>>>0<(f[r+(j<<3)>>2]|0)>>>0)x=s;else{if((s|0)==(e|0)){l=84;break a}else y=s;while(1){z=f[y>>2]|0;if(q>>>0<=z>>>0){l=32;break a}if(k>>>0<(f[r+(z<<3)>>2]|0)>>>0)break;s=y+4|0;if((s|0)==(e|0)){l=84;break a}else y=s}f[y>>2]=j;f[e>>2]=z;x=y+4|0}if((x|0)==(e|0)){l=84;break a}r=f[h>>2]|0;A=f[c>>2]|0;k=f[A>>2]|0;q=(f[A+4>>2]|0)-k>>3;if(q>>>0<=r>>>0){l=38;break a}s=k;k=e;B=x;C=r;while(1){r=s+(C<<3)|0;D=q>>>0>C>>>0;E=B;while(1){F=f[E>>2]|0;if(q>>>0<=F>>>0){l=40;break a}G=f[r>>2]|0;if(G>>>0<(f[s+(F<<3)>>2]|0)>>>0)break;if(D)E=E+4|0;else{l=38;break a}}if(q>>>0>C>>>0)H=k;else{l=46;break a}do{H=H+-4|0;I=f[H>>2]|0;if(q>>>0<=I>>>0){l=47;break a}}while(G>>>0<(f[s+(I<<3)>>2]|0)>>>0);if(E>>>0>=H>>>0){h=E;continue b}D=f[E>>2]|0;f[E>>2]=I;f[H>>2]=D;C=f[h>>2]|0;if(q>>>0<=C>>>0){l=38;break a}else{k=H;B=E+4|0}}}if((l|0)==53){l=0;f[h>>2]=w;f[v>>2]=o;t=v;u=n+1|0}B=h+4|0;c:do if(B>>>0>>0){k=f[B>>2]|0;C=f[c>>2]|0;q=f[C>>2]|0;s=(f[C+4>>2]|0)-q>>3;if(s>>>0>k>>>0){J=t;K=B;L=u;M=m;N=s;O=q;P=C;Q=k}else{R=C;l=57;break a}while(1){C=f[c>>2]|0;k=C+4|0;q=f[M>>2]|0;s=K;j=O;D=N;S=P;r=Q;while(1){F=j;if(D>>>0<=q>>>0){l=59;break a}if((f[F+(r<<3)>>2]|0)>>>0>=(f[F+(q<<3)>>2]|0)>>>0)break;F=s+4|0;T=f[F>>2]|0;j=f[C>>2]|0;D=(f[k>>2]|0)-j>>3;if(D>>>0<=T>>>0){R=C;l=57;break a}else{s=F;S=C;r=T}}C=f[M>>2]|0;O=f[S>>2]|0;N=(f[S+4>>2]|0)-O>>3;D=O;j=D+(C<<3)|0;if(N>>>0>C>>>0)U=J;else{l=65;break a}do{U=U+-4|0;V=f[U>>2]|0;if(N>>>0<=V>>>0){l=66;break a}}while((f[D+(V<<3)>>2]|0)>>>0>=(f[j>>2]|0)>>>0);if(s>>>0>U>>>0){W=M;X=L;Y=s;break c}f[s>>2]=V;f[U>>2]=r;K=s+4|0;Q=f[K>>2]|0;if(N>>>0<=Q>>>0){R=S;l=57;break a}else{J=U;L=L+1|0;M=(M|0)==(s|0)?U:M;P=S}}}else{W=m;X=u;Y=B}while(0);if((Y|0)!=(W|0)){B=f[W>>2]|0;j=f[Y>>2]|0;Z=f[c>>2]|0;D=f[Z>>2]|0;C=(f[Z+4>>2]|0)-D>>3;if(C>>>0<=B>>>0){l=72;break a}k=D;if(C>>>0<=j>>>0){l=74;break a}if((f[k+(B<<3)>>2]|0)>>>0<(f[k+(j<<3)>>2]|0)>>>0){f[Y>>2]=B;f[W>>2]=j;_=X+1|0}else _=X}else _=X;if(!_){$=_d(h,Y,c)|0;j=Y+4|0;if(_d(j,a,c)|0){l=83;break}if($){g=j;continue}}j=Y;if((j-i|0)>=(b-j|0)){l=82;break}Mb(h,Y,c);g=Y+4|0}if((l|0)==82){l=0;Mb(Y+4|0,a,c);d=h;a=Y;continue}else if((l|0)==83){l=0;if($){l=84;break}else{d=h;a=Y;continue}}}switch(l|0){case 5:{l=f[e>>2]|0;Y=f[h>>2]|0;d=f[c>>2]|0;$=f[d>>2]|0;i=(f[d+4>>2]|0)-$>>3;if(i>>>0<=l>>>0)aq(d);_=$;if(i>>>0<=Y>>>0)aq(d);if((f[_+(l<<3)>>2]|0)>>>0>=(f[_+(Y<<3)>>2]|0)>>>0)return;f[h>>2]=l;f[e>>2]=Y;return}case 11:{Vg(h,h+4|0,e,c)|0;return}case 12:{jh(h,h+4|0,h+8|0,e,c)|0;return}case 13:{ig(h,h+4|0,h+8|0,h+12|0,e,c)|0;return}case 15:{ih(h,a,c);return}case 20:{aq(p);break}case 22:{aq(p);break}case 26:{aq(p);break}case 32:{aq(p);break}case 38:{aq(A);break}case 40:{aq(A);break}case 46:{aq(A);break}case 47:{aq(A);break}case 51:{aq(p);break}case 57:{aq(R);break}case 59:{aq(S);break}case 65:{if(N>>>0>(f[J+-4>>2]|0)>>>0)aq(S);else aq(S);break}case 66:{aq(S);break}case 72:{aq(Z);break}case 74:{aq(Z);break}case 84:return}}function Nb(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0;d=a;a=b;a:while(1){b=a;e=a+-4|0;g=d;while(1){h=g;b:while(1){i=h;j=b-i|0;k=j>>2;switch(k|0){case 2:{l=5;break a;break}case 3:{l=11;break a;break}case 4:{l=12;break a;break}case 5:{l=13;break a;break}case 1:case 0:{l=84;break a;break}default:{}}if((j|0)<124){l=15;break a}m=h+(((k|0)/2|0)<<2)|0;if((j|0)>3996){j=(k|0)/4|0;n=ig(h,h+(j<<2)|0,m,m+(j<<2)|0,e,c)|0}else n=Vg(h,m,e,c)|0;o=f[h>>2]|0;j=f[m>>2]|0;p=f[c>>2]|0;k=f[p>>2]|0;q=(f[p+4>>2]|0)-k>>3;if(q>>>0<=o>>>0){l=20;break a}r=k;if(q>>>0<=j>>>0){l=22;break a}k=f[r+(o<<3)>>2]|0;s=f[r+(j<<3)>>2]|0;if(k>>>0>>0){t=e;u=n;break}else v=e;while(1){v=v+-4|0;if((h|0)==(v|0))break;w=f[v>>2]|0;if(q>>>0<=w>>>0){l=51;break a}if((f[r+(w<<3)>>2]|0)>>>0>>0){l=53;break b}}s=h+4|0;j=f[e>>2]|0;if(q>>>0<=j>>>0){l=26;break a}if(k>>>0<(f[r+(j<<3)>>2]|0)>>>0)x=s;else{if((s|0)==(e|0)){l=84;break a}else y=s;while(1){z=f[y>>2]|0;if(q>>>0<=z>>>0){l=32;break a}if(k>>>0<(f[r+(z<<3)>>2]|0)>>>0)break;s=y+4|0;if((s|0)==(e|0)){l=84;break a}else y=s}f[y>>2]=j;f[e>>2]=z;x=y+4|0}if((x|0)==(e|0)){l=84;break a}r=f[h>>2]|0;A=f[c>>2]|0;k=f[A>>2]|0;q=(f[A+4>>2]|0)-k>>3;if(q>>>0<=r>>>0){l=38;break a}s=k;k=e;B=x;C=r;while(1){r=s+(C<<3)|0;D=q>>>0>C>>>0;E=B;while(1){F=f[E>>2]|0;if(q>>>0<=F>>>0){l=40;break a}G=f[r>>2]|0;if(G>>>0<(f[s+(F<<3)>>2]|0)>>>0)break;if(D)E=E+4|0;else{l=38;break a}}if(q>>>0>C>>>0)H=k;else{l=46;break a}do{H=H+-4|0;I=f[H>>2]|0;if(q>>>0<=I>>>0){l=47;break a}}while(G>>>0<(f[s+(I<<3)>>2]|0)>>>0);if(E>>>0>=H>>>0){h=E;continue b}D=f[E>>2]|0;f[E>>2]=I;f[H>>2]=D;C=f[h>>2]|0;if(q>>>0<=C>>>0){l=38;break a}else{k=H;B=E+4|0}}}if((l|0)==53){l=0;f[h>>2]=w;f[v>>2]=o;t=v;u=n+1|0}B=h+4|0;c:do if(B>>>0>>0){k=f[B>>2]|0;C=f[c>>2]|0;q=f[C>>2]|0;s=(f[C+4>>2]|0)-q>>3;if(s>>>0>k>>>0){J=t;K=B;L=u;M=m;N=s;O=q;P=C;Q=k}else{R=C;l=57;break a}while(1){C=f[c>>2]|0;k=C+4|0;q=f[M>>2]|0;s=K;j=O;D=N;S=P;r=Q;while(1){F=j;if(D>>>0<=q>>>0){l=59;break a}if((f[F+(r<<3)>>2]|0)>>>0>=(f[F+(q<<3)>>2]|0)>>>0)break;F=s+4|0;T=f[F>>2]|0;j=f[C>>2]|0;D=(f[k>>2]|0)-j>>3;if(D>>>0<=T>>>0){R=C;l=57;break a}else{s=F;S=C;r=T}}C=f[M>>2]|0;O=f[S>>2]|0;N=(f[S+4>>2]|0)-O>>3;D=O;j=D+(C<<3)|0;if(N>>>0>C>>>0)U=J;else{l=65;break a}do{U=U+-4|0;V=f[U>>2]|0;if(N>>>0<=V>>>0){l=66;break a}}while((f[D+(V<<3)>>2]|0)>>>0>=(f[j>>2]|0)>>>0);if(s>>>0>U>>>0){W=M;X=L;Y=s;break c}f[s>>2]=V;f[U>>2]=r;K=s+4|0;Q=f[K>>2]|0;if(N>>>0<=Q>>>0){R=S;l=57;break a}else{J=U;L=L+1|0;M=(M|0)==(s|0)?U:M;P=S}}}else{W=m;X=u;Y=B}while(0);if((Y|0)!=(W|0)){B=f[W>>2]|0;j=f[Y>>2]|0;Z=f[c>>2]|0;D=f[Z>>2]|0;C=(f[Z+4>>2]|0)-D>>3;if(C>>>0<=B>>>0){l=72;break a}k=D;if(C>>>0<=j>>>0){l=74;break a}if((f[k+(B<<3)>>2]|0)>>>0<(f[k+(j<<3)>>2]|0)>>>0){f[Y>>2]=B;f[W>>2]=j;_=X+1|0}else _=X}else _=X;if(!_){$=_d(h,Y,c)|0;j=Y+4|0;if(_d(j,a,c)|0){l=83;break}if($){g=j;continue}}j=Y;if((j-i|0)>=(b-j|0)){l=82;break}Nb(h,Y,c);g=Y+4|0}if((l|0)==82){l=0;Nb(Y+4|0,a,c);d=h;a=Y;continue}else if((l|0)==83){l=0;if($){l=84;break}else{d=h;a=Y;continue}}}switch(l|0){case 5:{l=f[e>>2]|0;Y=f[h>>2]|0;d=f[c>>2]|0;$=f[d>>2]|0;i=(f[d+4>>2]|0)-$>>3;if(i>>>0<=l>>>0)aq(d);_=$;if(i>>>0<=Y>>>0)aq(d);if((f[_+(l<<3)>>2]|0)>>>0>=(f[_+(Y<<3)>>2]|0)>>>0)return;f[h>>2]=l;f[e>>2]=Y;return}case 11:{Vg(h,h+4|0,e,c)|0;return}case 12:{jh(h,h+4|0,h+8|0,e,c)|0;return}case 13:{ig(h,h+4|0,h+8|0,h+12|0,e,c)|0;return}case 15:{ih(h,a,c);return}case 20:{aq(p);break}case 22:{aq(p);break}case 26:{aq(p);break}case 32:{aq(p);break}case 38:{aq(A);break}case 40:{aq(A);break}case 46:{aq(A);break}case 47:{aq(A);break}case 51:{aq(p);break}case 57:{aq(R);break}case 59:{aq(S);break}case 65:{if(N>>>0>(f[J+-4>>2]|0)>>>0)aq(S);else aq(S);break}case 66:{aq(S);break}case 72:{aq(Z);break}case 74:{aq(Z);break}case 84:return}}function Ob(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0;d=a;a=b;a:while(1){b=a;e=a+-4|0;g=d;while(1){h=g;b:while(1){i=h;j=b-i|0;k=j>>2;switch(k|0){case 2:{l=5;break a;break}case 3:{l=11;break a;break}case 4:{l=12;break a;break}case 5:{l=13;break a;break}case 1:case 0:{l=84;break a;break}default:{}}if((j|0)<124){l=15;break a}m=h+(((k|0)/2|0)<<2)|0;if((j|0)>3996){j=(k|0)/4|0;n=ig(h,h+(j<<2)|0,m,m+(j<<2)|0,e,c)|0}else n=Vg(h,m,e,c)|0;o=f[h>>2]|0;j=f[m>>2]|0;p=f[c>>2]|0;k=f[p>>2]|0;q=(f[p+4>>2]|0)-k>>3;if(q>>>0<=o>>>0){l=20;break a}r=k;if(q>>>0<=j>>>0){l=22;break a}k=f[r+(o<<3)>>2]|0;s=f[r+(j<<3)>>2]|0;if(k>>>0>>0){t=e;u=n;break}else v=e;while(1){v=v+-4|0;if((h|0)==(v|0))break;w=f[v>>2]|0;if(q>>>0<=w>>>0){l=51;break a}if((f[r+(w<<3)>>2]|0)>>>0>>0){l=53;break b}}s=h+4|0;j=f[e>>2]|0;if(q>>>0<=j>>>0){l=26;break a}if(k>>>0<(f[r+(j<<3)>>2]|0)>>>0)x=s;else{if((s|0)==(e|0)){l=84;break a}else y=s;while(1){z=f[y>>2]|0;if(q>>>0<=z>>>0){l=32;break a}if(k>>>0<(f[r+(z<<3)>>2]|0)>>>0)break;s=y+4|0;if((s|0)==(e|0)){l=84;break a}else y=s}f[y>>2]=j;f[e>>2]=z;x=y+4|0}if((x|0)==(e|0)){l=84;break a}r=f[h>>2]|0;A=f[c>>2]|0;k=f[A>>2]|0;q=(f[A+4>>2]|0)-k>>3;if(q>>>0<=r>>>0){l=38;break a}s=k;k=e;B=x;C=r;while(1){r=s+(C<<3)|0;D=q>>>0>C>>>0;E=B;while(1){F=f[E>>2]|0;if(q>>>0<=F>>>0){l=40;break a}G=f[r>>2]|0;if(G>>>0<(f[s+(F<<3)>>2]|0)>>>0)break;if(D)E=E+4|0;else{l=38;break a}}if(q>>>0>C>>>0)H=k;else{l=46;break a}do{H=H+-4|0;I=f[H>>2]|0;if(q>>>0<=I>>>0){l=47;break a}}while(G>>>0<(f[s+(I<<3)>>2]|0)>>>0);if(E>>>0>=H>>>0){h=E;continue b}D=f[E>>2]|0;f[E>>2]=I;f[H>>2]=D;C=f[h>>2]|0;if(q>>>0<=C>>>0){l=38;break a}else{k=H;B=E+4|0}}}if((l|0)==53){l=0;f[h>>2]=w;f[v>>2]=o;t=v;u=n+1|0}B=h+4|0;c:do if(B>>>0>>0){k=f[B>>2]|0;C=f[c>>2]|0;q=f[C>>2]|0;s=(f[C+4>>2]|0)-q>>3;if(s>>>0>k>>>0){J=t;K=B;L=u;M=m;N=s;O=q;P=C;Q=k}else{R=C;l=57;break a}while(1){C=f[c>>2]|0;k=C+4|0;q=f[M>>2]|0;s=K;j=O;D=N;S=P;r=Q;while(1){F=j;if(D>>>0<=q>>>0){l=59;break a}if((f[F+(r<<3)>>2]|0)>>>0>=(f[F+(q<<3)>>2]|0)>>>0)break;F=s+4|0;T=f[F>>2]|0;j=f[C>>2]|0;D=(f[k>>2]|0)-j>>3;if(D>>>0<=T>>>0){R=C;l=57;break a}else{s=F;S=C;r=T}}C=f[M>>2]|0;O=f[S>>2]|0;N=(f[S+4>>2]|0)-O>>3;D=O;j=D+(C<<3)|0;if(N>>>0>C>>>0)U=J;else{l=65;break a}do{U=U+-4|0;V=f[U>>2]|0;if(N>>>0<=V>>>0){l=66;break a}}while((f[D+(V<<3)>>2]|0)>>>0>=(f[j>>2]|0)>>>0);if(s>>>0>U>>>0){W=M;X=L;Y=s;break c}f[s>>2]=V;f[U>>2]=r;K=s+4|0;Q=f[K>>2]|0;if(N>>>0<=Q>>>0){R=S;l=57;break a}else{J=U;L=L+1|0;M=(M|0)==(s|0)?U:M;P=S}}}else{W=m;X=u;Y=B}while(0);if((Y|0)!=(W|0)){B=f[W>>2]|0;j=f[Y>>2]|0;Z=f[c>>2]|0;D=f[Z>>2]|0;C=(f[Z+4>>2]|0)-D>>3;if(C>>>0<=B>>>0){l=72;break a}k=D;if(C>>>0<=j>>>0){l=74;break a}if((f[k+(B<<3)>>2]|0)>>>0<(f[k+(j<<3)>>2]|0)>>>0){f[Y>>2]=B;f[W>>2]=j;_=X+1|0}else _=X}else _=X;if(!_){$=_d(h,Y,c)|0;j=Y+4|0;if(_d(j,a,c)|0){l=83;break}if($){g=j;continue}}j=Y;if((j-i|0)>=(b-j|0)){l=82;break}Ob(h,Y,c);g=Y+4|0}if((l|0)==82){l=0;Ob(Y+4|0,a,c);d=h;a=Y;continue}else if((l|0)==83){l=0;if($){l=84;break}else{d=h;a=Y;continue}}}switch(l|0){case 5:{l=f[e>>2]|0;Y=f[h>>2]|0;d=f[c>>2]|0;$=f[d>>2]|0;i=(f[d+4>>2]|0)-$>>3;if(i>>>0<=l>>>0)aq(d);_=$;if(i>>>0<=Y>>>0)aq(d);if((f[_+(l<<3)>>2]|0)>>>0>=(f[_+(Y<<3)>>2]|0)>>>0)return;f[h>>2]=l;f[e>>2]=Y;return}case 11:{Vg(h,h+4|0,e,c)|0;return}case 12:{jh(h,h+4|0,h+8|0,e,c)|0;return}case 13:{ig(h,h+4|0,h+8|0,h+12|0,e,c)|0;return}case 15:{ih(h,a,c);return}case 20:{aq(p);break}case 22:{aq(p);break}case 26:{aq(p);break}case 32:{aq(p);break}case 38:{aq(A);break}case 40:{aq(A);break}case 46:{aq(A);break}case 47:{aq(A);break}case 51:{aq(p);break}case 57:{aq(R);break}case 59:{aq(S);break}case 65:{if(N>>>0>(f[J+-4>>2]|0)>>>0)aq(S);else aq(S);break}case 66:{aq(S);break}case 72:{aq(Z);break}case 74:{aq(Z);break}case 84:return}}function Pb(a,c,e,g){a=a|0;c=c|0;e=e|0;g=g|0;var i=0,k=0,l=0,m=0,o=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0;if(!g){i=0;return i|0}do switch(f[a+28>>2]|0){case 1:{k=a+24|0;l=b[k>>0]|0;if((l<<24>>24>e<<24>>24?e:l)<<24>>24>0){m=f[f[a>>2]>>2]|0;o=a+40|0;q=un(f[o>>2]|0,f[o+4>>2]|0,f[c>>2]|0,0)|0;o=a+48|0;r=Vn(q|0,I|0,f[o>>2]|0,f[o+4>>2]|0)|0;o=m+r|0;r=0;while(1){f[g+(r<<2)>>2]=b[o>>0];r=r+1|0;m=b[k>>0]|0;if((r|0)>=((m<<24>>24>e<<24>>24?e:m)<<24>>24|0)){s=m;break}else o=o+1|0}}else s=l;o=s<<24>>24;if(s<<24>>24>=e<<24>>24){i=1;return i|0}sj(g+(o<<2)|0,0,(e<<24>>24)-o<<2|0)|0;i=1;return i|0}case 2:{o=a+24|0;r=b[o>>0]|0;if((r<<24>>24>e<<24>>24?e:r)<<24>>24>0){k=f[f[a>>2]>>2]|0;m=a+40|0;q=un(f[m>>2]|0,f[m+4>>2]|0,f[c>>2]|0,0)|0;m=a+48|0;t=Vn(q|0,I|0,f[m>>2]|0,f[m+4>>2]|0)|0;m=k+t|0;t=0;while(1){f[g+(t<<2)>>2]=h[m>>0];t=t+1|0;k=b[o>>0]|0;if((t|0)>=((k<<24>>24>e<<24>>24?e:k)<<24>>24|0)){u=k;break}else m=m+1|0}}else u=r;m=u<<24>>24;if(u<<24>>24>=e<<24>>24){i=1;return i|0}sj(g+(m<<2)|0,0,(e<<24>>24)-m<<2|0)|0;i=1;return i|0}case 3:{m=a+24|0;t=b[m>>0]|0;if((t<<24>>24>e<<24>>24?e:t)<<24>>24>0){o=f[f[a>>2]>>2]|0;l=a+40|0;k=un(f[l>>2]|0,f[l+4>>2]|0,f[c>>2]|0,0)|0;l=a+48|0;q=Vn(k|0,I|0,f[l>>2]|0,f[l+4>>2]|0)|0;l=o+q|0;q=0;while(1){f[g+(q<<2)>>2]=d[l>>1];q=q+1|0;o=b[m>>0]|0;if((q|0)>=((o<<24>>24>e<<24>>24?e:o)<<24>>24|0)){v=o;break}else l=l+2|0}}else v=t;l=v<<24>>24;if(v<<24>>24>=e<<24>>24){i=1;return i|0}sj(g+(l<<2)|0,0,(e<<24>>24)-l<<2|0)|0;i=1;return i|0}case 4:{l=a+24|0;q=b[l>>0]|0;if((q<<24>>24>e<<24>>24?e:q)<<24>>24>0){m=f[f[a>>2]>>2]|0;r=a+40|0;o=un(f[r>>2]|0,f[r+4>>2]|0,f[c>>2]|0,0)|0;r=a+48|0;k=Vn(o|0,I|0,f[r>>2]|0,f[r+4>>2]|0)|0;r=m+k|0;k=0;while(1){f[g+(k<<2)>>2]=j[r>>1];k=k+1|0;m=b[l>>0]|0;if((k|0)>=((m<<24>>24>e<<24>>24?e:m)<<24>>24|0)){w=m;break}else r=r+2|0}}else w=q;r=w<<24>>24;if(w<<24>>24>=e<<24>>24){i=1;return i|0}sj(g+(r<<2)|0,0,(e<<24>>24)-r<<2|0)|0;i=1;return i|0}case 5:{r=a+24|0;k=b[r>>0]|0;if((k<<24>>24>e<<24>>24?e:k)<<24>>24>0){l=f[f[a>>2]>>2]|0;t=a+40|0;m=un(f[t>>2]|0,f[t+4>>2]|0,f[c>>2]|0,0)|0;t=a+48|0;o=Vn(m|0,I|0,f[t>>2]|0,f[t+4>>2]|0)|0;t=l+o|0;o=0;while(1){f[g+(o<<2)>>2]=f[t>>2];o=o+1|0;l=b[r>>0]|0;if((o|0)>=((l<<24>>24>e<<24>>24?e:l)<<24>>24|0)){x=l;break}else t=t+4|0}}else x=k;t=x<<24>>24;if(x<<24>>24>=e<<24>>24){i=1;return i|0}sj(g+(t<<2)|0,0,(e<<24>>24)-t<<2|0)|0;i=1;return i|0}case 6:{t=a+24|0;o=b[t>>0]|0;if((o<<24>>24>e<<24>>24?e:o)<<24>>24>0){r=f[f[a>>2]>>2]|0;q=a+40|0;l=un(f[q>>2]|0,f[q+4>>2]|0,f[c>>2]|0,0)|0;q=a+48|0;m=Vn(l|0,I|0,f[q>>2]|0,f[q+4>>2]|0)|0;q=r+m|0;m=0;while(1){f[g+(m<<2)>>2]=f[q>>2];m=m+1|0;r=b[t>>0]|0;if((m|0)>=((r<<24>>24>e<<24>>24?e:r)<<24>>24|0)){y=r;break}else q=q+4|0}}else y=o;q=y<<24>>24;if(y<<24>>24>=e<<24>>24){i=1;return i|0}sj(g+(q<<2)|0,0,(e<<24>>24)-q<<2|0)|0;i=1;return i|0}case 7:{q=a+24|0;m=b[q>>0]|0;if((m<<24>>24>e<<24>>24?e:m)<<24>>24>0){t=f[f[a>>2]>>2]|0;k=a+40|0;r=un(f[k>>2]|0,f[k+4>>2]|0,f[c>>2]|0,0)|0;k=a+48|0;l=Vn(r|0,I|0,f[k>>2]|0,f[k+4>>2]|0)|0;k=t+l|0;l=0;while(1){f[g+(l<<2)>>2]=f[k>>2];l=l+1|0;t=b[q>>0]|0;if((l|0)>=((t<<24>>24>e<<24>>24?e:t)<<24>>24|0)){z=t;break}else k=k+8|0}}else z=m;k=z<<24>>24;if(z<<24>>24>=e<<24>>24){i=1;return i|0}sj(g+(k<<2)|0,0,(e<<24>>24)-k<<2|0)|0;i=1;return i|0}case 8:{k=a+24|0;l=b[k>>0]|0;if((l<<24>>24>e<<24>>24?e:l)<<24>>24>0){q=f[f[a>>2]>>2]|0;o=a+40|0;t=un(f[o>>2]|0,f[o+4>>2]|0,f[c>>2]|0,0)|0;o=a+48|0;r=Vn(t|0,I|0,f[o>>2]|0,f[o+4>>2]|0)|0;o=q+r|0;r=0;while(1){f[g+(r<<2)>>2]=f[o>>2];r=r+1|0;q=b[k>>0]|0;if((r|0)>=((q<<24>>24>e<<24>>24?e:q)<<24>>24|0)){A=q;break}else o=o+8|0}}else A=l;o=A<<24>>24;if(A<<24>>24>=e<<24>>24){i=1;return i|0}sj(g+(o<<2)|0,0,(e<<24>>24)-o<<2|0)|0;i=1;return i|0}case 9:{o=a+24|0;r=b[o>>0]|0;if((r<<24>>24>e<<24>>24?e:r)<<24>>24>0){k=f[f[a>>2]>>2]|0;m=a+40|0;q=un(f[m>>2]|0,f[m+4>>2]|0,f[c>>2]|0,0)|0;m=a+48|0;t=Vn(q|0,I|0,f[m>>2]|0,f[m+4>>2]|0)|0;m=k+t|0;t=0;while(1){k=~~$(n[m>>2])>>>0;f[g+(t<<2)>>2]=k;t=t+1|0;k=b[o>>0]|0;if((t|0)>=((k<<24>>24>e<<24>>24?e:k)<<24>>24|0)){B=k;break}else m=m+4|0}}else B=r;m=B<<24>>24;if(B<<24>>24>=e<<24>>24){i=1;return i|0}sj(g+(m<<2)|0,0,(e<<24>>24)-m<<2|0)|0;i=1;return i|0}case 10:{m=a+24|0;t=b[m>>0]|0;if((t<<24>>24>e<<24>>24?e:t)<<24>>24>0){o=f[f[a>>2]>>2]|0;l=a+40|0;k=un(f[l>>2]|0,f[l+4>>2]|0,f[c>>2]|0,0)|0;l=a+48|0;q=Vn(k|0,I|0,f[l>>2]|0,f[l+4>>2]|0)|0;l=o+q|0;q=0;while(1){f[g+(q<<2)>>2]=~~+p[l>>3]>>>0;q=q+1|0;o=b[m>>0]|0;if((q|0)>=((o<<24>>24>e<<24>>24?e:o)<<24>>24|0)){C=o;break}else l=l+8|0}}else C=t;l=C<<24>>24;if(C<<24>>24>=e<<24>>24){i=1;return i|0}sj(g+(l<<2)|0,0,(e<<24>>24)-l<<2|0)|0;i=1;return i|0}case 11:{l=a+24|0;q=b[l>>0]|0;if((q<<24>>24>e<<24>>24?e:q)<<24>>24>0){m=f[f[a>>2]>>2]|0;r=a+40|0;o=un(f[r>>2]|0,f[r+4>>2]|0,f[c>>2]|0,0)|0;r=a+48|0;k=Vn(o|0,I|0,f[r>>2]|0,f[r+4>>2]|0)|0;r=m+k|0;k=0;while(1){f[g+(k<<2)>>2]=h[r>>0];k=k+1|0;m=b[l>>0]|0;if((k|0)>=((m<<24>>24>e<<24>>24?e:m)<<24>>24|0)){D=m;break}else r=r+1|0}}else D=q;r=D<<24>>24;if(D<<24>>24>=e<<24>>24){i=1;return i|0}sj(g+(r<<2)|0,0,(e<<24>>24)-r<<2|0)|0;i=1;return i|0}default:{i=0;return i|0}}while(0);return 0}function Qb(a,c,e,g){a=a|0;c=c|0;e=e|0;g=g|0;var i=0,k=0,l=0,m=0,o=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0;if(!g){i=0;return i|0}do switch(f[a+28>>2]|0){case 1:{k=a+24|0;l=b[k>>0]|0;if((l<<24>>24>e<<24>>24?e:l)<<24>>24>0){m=f[f[a>>2]>>2]|0;o=a+40|0;q=un(f[o>>2]|0,f[o+4>>2]|0,f[c>>2]|0,0)|0;o=a+48|0;r=Vn(q|0,I|0,f[o>>2]|0,f[o+4>>2]|0)|0;o=m+r|0;r=0;while(1){f[g+(r<<2)>>2]=b[o>>0];r=r+1|0;m=b[k>>0]|0;if((r|0)>=((m<<24>>24>e<<24>>24?e:m)<<24>>24|0)){s=m;break}else o=o+1|0}}else s=l;o=s<<24>>24;if(s<<24>>24>=e<<24>>24){i=1;return i|0}sj(g+(o<<2)|0,0,(e<<24>>24)-o<<2|0)|0;i=1;return i|0}case 2:{o=a+24|0;r=b[o>>0]|0;if((r<<24>>24>e<<24>>24?e:r)<<24>>24>0){k=f[f[a>>2]>>2]|0;m=a+40|0;q=un(f[m>>2]|0,f[m+4>>2]|0,f[c>>2]|0,0)|0;m=a+48|0;t=Vn(q|0,I|0,f[m>>2]|0,f[m+4>>2]|0)|0;m=k+t|0;t=0;while(1){f[g+(t<<2)>>2]=h[m>>0];t=t+1|0;k=b[o>>0]|0;if((t|0)>=((k<<24>>24>e<<24>>24?e:k)<<24>>24|0)){u=k;break}else m=m+1|0}}else u=r;m=u<<24>>24;if(u<<24>>24>=e<<24>>24){i=1;return i|0}sj(g+(m<<2)|0,0,(e<<24>>24)-m<<2|0)|0;i=1;return i|0}case 3:{m=a+24|0;t=b[m>>0]|0;if((t<<24>>24>e<<24>>24?e:t)<<24>>24>0){o=f[f[a>>2]>>2]|0;l=a+40|0;k=un(f[l>>2]|0,f[l+4>>2]|0,f[c>>2]|0,0)|0;l=a+48|0;q=Vn(k|0,I|0,f[l>>2]|0,f[l+4>>2]|0)|0;l=o+q|0;q=0;while(1){f[g+(q<<2)>>2]=d[l>>1];q=q+1|0;o=b[m>>0]|0;if((q|0)>=((o<<24>>24>e<<24>>24?e:o)<<24>>24|0)){v=o;break}else l=l+2|0}}else v=t;l=v<<24>>24;if(v<<24>>24>=e<<24>>24){i=1;return i|0}sj(g+(l<<2)|0,0,(e<<24>>24)-l<<2|0)|0;i=1;return i|0}case 4:{l=a+24|0;q=b[l>>0]|0;if((q<<24>>24>e<<24>>24?e:q)<<24>>24>0){m=f[f[a>>2]>>2]|0;r=a+40|0;o=un(f[r>>2]|0,f[r+4>>2]|0,f[c>>2]|0,0)|0;r=a+48|0;k=Vn(o|0,I|0,f[r>>2]|0,f[r+4>>2]|0)|0;r=m+k|0;k=0;while(1){f[g+(k<<2)>>2]=j[r>>1];k=k+1|0;m=b[l>>0]|0;if((k|0)>=((m<<24>>24>e<<24>>24?e:m)<<24>>24|0)){w=m;break}else r=r+2|0}}else w=q;r=w<<24>>24;if(w<<24>>24>=e<<24>>24){i=1;return i|0}sj(g+(r<<2)|0,0,(e<<24>>24)-r<<2|0)|0;i=1;return i|0}case 5:{r=a+24|0;k=b[r>>0]|0;if((k<<24>>24>e<<24>>24?e:k)<<24>>24>0){l=f[f[a>>2]>>2]|0;t=a+40|0;m=un(f[t>>2]|0,f[t+4>>2]|0,f[c>>2]|0,0)|0;t=a+48|0;o=Vn(m|0,I|0,f[t>>2]|0,f[t+4>>2]|0)|0;t=l+o|0;o=0;while(1){f[g+(o<<2)>>2]=f[t>>2];o=o+1|0;l=b[r>>0]|0;if((o|0)>=((l<<24>>24>e<<24>>24?e:l)<<24>>24|0)){x=l;break}else t=t+4|0}}else x=k;t=x<<24>>24;if(x<<24>>24>=e<<24>>24){i=1;return i|0}sj(g+(t<<2)|0,0,(e<<24>>24)-t<<2|0)|0;i=1;return i|0}case 6:{t=a+24|0;o=b[t>>0]|0;if((o<<24>>24>e<<24>>24?e:o)<<24>>24>0){r=f[f[a>>2]>>2]|0;q=a+40|0;l=un(f[q>>2]|0,f[q+4>>2]|0,f[c>>2]|0,0)|0;q=a+48|0;m=Vn(l|0,I|0,f[q>>2]|0,f[q+4>>2]|0)|0;q=r+m|0;m=0;while(1){f[g+(m<<2)>>2]=f[q>>2];m=m+1|0;r=b[t>>0]|0;if((m|0)>=((r<<24>>24>e<<24>>24?e:r)<<24>>24|0)){y=r;break}else q=q+4|0}}else y=o;q=y<<24>>24;if(y<<24>>24>=e<<24>>24){i=1;return i|0}sj(g+(q<<2)|0,0,(e<<24>>24)-q<<2|0)|0;i=1;return i|0}case 7:{q=a+24|0;m=b[q>>0]|0;if((m<<24>>24>e<<24>>24?e:m)<<24>>24>0){t=f[f[a>>2]>>2]|0;k=a+40|0;r=un(f[k>>2]|0,f[k+4>>2]|0,f[c>>2]|0,0)|0;k=a+48|0;l=Vn(r|0,I|0,f[k>>2]|0,f[k+4>>2]|0)|0;k=t+l|0;l=0;while(1){f[g+(l<<2)>>2]=f[k>>2];l=l+1|0;t=b[q>>0]|0;if((l|0)>=((t<<24>>24>e<<24>>24?e:t)<<24>>24|0)){z=t;break}else k=k+8|0}}else z=m;k=z<<24>>24;if(z<<24>>24>=e<<24>>24){i=1;return i|0}sj(g+(k<<2)|0,0,(e<<24>>24)-k<<2|0)|0;i=1;return i|0}case 8:{k=a+24|0;l=b[k>>0]|0;if((l<<24>>24>e<<24>>24?e:l)<<24>>24>0){q=f[f[a>>2]>>2]|0;o=a+40|0;t=un(f[o>>2]|0,f[o+4>>2]|0,f[c>>2]|0,0)|0;o=a+48|0;r=Vn(t|0,I|0,f[o>>2]|0,f[o+4>>2]|0)|0;o=q+r|0;r=0;while(1){f[g+(r<<2)>>2]=f[o>>2];r=r+1|0;q=b[k>>0]|0;if((r|0)>=((q<<24>>24>e<<24>>24?e:q)<<24>>24|0)){A=q;break}else o=o+8|0}}else A=l;o=A<<24>>24;if(A<<24>>24>=e<<24>>24){i=1;return i|0}sj(g+(o<<2)|0,0,(e<<24>>24)-o<<2|0)|0;i=1;return i|0}case 9:{o=a+24|0;r=b[o>>0]|0;if((r<<24>>24>e<<24>>24?e:r)<<24>>24>0){k=f[f[a>>2]>>2]|0;m=a+40|0;q=un(f[m>>2]|0,f[m+4>>2]|0,f[c>>2]|0,0)|0;m=a+48|0;t=Vn(q|0,I|0,f[m>>2]|0,f[m+4>>2]|0)|0;m=k+t|0;t=0;while(1){k=~~$(n[m>>2]);f[g+(t<<2)>>2]=k;t=t+1|0;k=b[o>>0]|0;if((t|0)>=((k<<24>>24>e<<24>>24?e:k)<<24>>24|0)){B=k;break}else m=m+4|0}}else B=r;m=B<<24>>24;if(B<<24>>24>=e<<24>>24){i=1;return i|0}sj(g+(m<<2)|0,0,(e<<24>>24)-m<<2|0)|0;i=1;return i|0}case 10:{m=a+24|0;t=b[m>>0]|0;if((t<<24>>24>e<<24>>24?e:t)<<24>>24>0){o=f[f[a>>2]>>2]|0;l=a+40|0;k=un(f[l>>2]|0,f[l+4>>2]|0,f[c>>2]|0,0)|0;l=a+48|0;q=Vn(k|0,I|0,f[l>>2]|0,f[l+4>>2]|0)|0;l=o+q|0;q=0;while(1){f[g+(q<<2)>>2]=~~+p[l>>3];q=q+1|0;o=b[m>>0]|0;if((q|0)>=((o<<24>>24>e<<24>>24?e:o)<<24>>24|0)){C=o;break}else l=l+8|0}}else C=t;l=C<<24>>24;if(C<<24>>24>=e<<24>>24){i=1;return i|0}sj(g+(l<<2)|0,0,(e<<24>>24)-l<<2|0)|0;i=1;return i|0}case 11:{l=a+24|0;q=b[l>>0]|0;if((q<<24>>24>e<<24>>24?e:q)<<24>>24>0){m=f[f[a>>2]>>2]|0;r=a+40|0;o=un(f[r>>2]|0,f[r+4>>2]|0,f[c>>2]|0,0)|0;r=a+48|0;k=Vn(o|0,I|0,f[r>>2]|0,f[r+4>>2]|0)|0;r=m+k|0;k=0;while(1){f[g+(k<<2)>>2]=h[r>>0];k=k+1|0;m=b[l>>0]|0;if((k|0)>=((m<<24>>24>e<<24>>24?e:m)<<24>>24|0)){D=m;break}else r=r+1|0}}else D=q;r=D<<24>>24;if(D<<24>>24>=e<<24>>24){i=1;return i|0}sj(g+(r<<2)|0,0,(e<<24>>24)-r<<2|0)|0;i=1;return i|0}default:{i=0;return i|0}}while(0);return 0}function Rb(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=Oa,J=0,K=0,L=0,M=0,N=Oa;e=u;u=u+48|0;g=e+36|0;h=e+24|0;i=e+12|0;j=e;if(!(xh(a,c,d)|0)){k=0;u=e;return k|0}l=f[(f[(f[c+4>>2]|0)+8>>2]|0)+(d<<2)>>2]|0;if((f[l+28>>2]|0)!=9){k=0;u=e;return k|0}m=c+48|0;c=f[m>>2]|0;o=ln(32)|0;f[g>>2]=o;f[g+8>>2]=-2147483616;f[g+4>>2]=17;p=o;q=14495;r=p+17|0;do{b[p>>0]=b[q>>0]|0;p=p+1|0;q=q+1|0}while((p|0)<(r|0));b[o+17>>0]=0;o=c+16|0;s=f[o>>2]|0;if(s){t=o;v=s;a:while(1){s=v;while(1){if((f[s+16>>2]|0)>=(d|0))break;w=f[s+4>>2]|0;if(!w){x=t;break a}else s=w}v=f[s>>2]|0;if(!v){x=s;break}else t=s}if(((x|0)!=(o|0)?(f[x+16>>2]|0)<=(d|0):0)?(o=x+20|0,(Jh(o,g)|0)!=0):0)y=Hk(o,g,-1)|0;else z=12}else z=12;if((z|0)==12)y=Hk(c,g,-1)|0;if((b[g+11>>0]|0)<0)Oq(f[g>>2]|0);if((y|0)<1){k=0;u=e;return k|0}c=f[m>>2]|0;o=ln(32)|0;f[g>>2]=o;f[g+8>>2]=-2147483616;f[g+4>>2]=19;p=o;q=14438;r=p+19|0;do{b[p>>0]=b[q>>0]|0;p=p+1|0;q=q+1|0}while((p|0)<(r|0));b[o+19>>0]=0;o=c+16|0;x=f[o>>2]|0;if(x){t=o;v=x;b:while(1){x=v;while(1){if((f[x+16>>2]|0)>=(d|0))break;w=f[x+4>>2]|0;if(!w){A=t;break b}else x=w}v=f[x>>2]|0;if(!v){A=x;break}else t=x}if((A|0)!=(o|0)?(f[A+16>>2]|0)<=(d|0):0)B=A+20|0;else z=24}else z=24;if((z|0)==24)B=c;if(!(Jh(B,g)|0))C=0;else{B=f[m>>2]|0;f[h>>2]=0;f[h+4>>2]=0;f[h+8>>2]=0;c=ln(32)|0;f[h>>2]=c;f[h+8>>2]=-2147483616;f[h+4>>2]=18;p=c;q=14458;r=p+18|0;do{b[p>>0]=b[q>>0]|0;p=p+1|0;q=q+1|0}while((p|0)<(r|0));b[c+18>>0]=0;c=B+16|0;A=f[c>>2]|0;if(A){o=c;t=A;c:while(1){A=t;while(1){if((f[A+16>>2]|0)>=(d|0))break;v=f[A+4>>2]|0;if(!v){D=o;break c}else A=v}t=f[A>>2]|0;if(!t){D=A;break}else o=A}if((D|0)!=(c|0)?(f[D+16>>2]|0)<=(d|0):0)E=D+20|0;else z=34}else z=34;if((z|0)==34)E=B;B=(Jh(E,h)|0)!=0;if((b[h+11>>0]|0)<0)Oq(f[h>>2]|0);C=B}if((b[g+11>>0]|0)<0)Oq(f[g>>2]|0);if(!C){Wd(a+40|0,l,y)|0;k=1;u=e;return k|0}C=l+24|0;l=b[C>>0]|0;B=l<<24>>24;f[i>>2]=0;E=i+4|0;f[E>>2]=0;f[i+8>>2]=0;do if(l<<24>>24)if(l<<24>>24<0)aq(i);else{D=B<<2;c=ln(D)|0;f[i>>2]=c;o=c+(B<<2)|0;f[i+8>>2]=o;sj(c|0,0,D|0)|0;f[E>>2]=o;F=c;break}else F=0;while(0);B=f[m>>2]|0;f[j>>2]=0;f[j+4>>2]=0;f[j+8>>2]=0;l=ln(32)|0;f[j>>2]=l;f[j+8>>2]=-2147483616;f[j+4>>2]=19;p=l;q=14438;r=p+19|0;do{b[p>>0]=b[q>>0]|0;p=p+1|0;q=q+1|0}while((p|0)<(r|0));b[l+19>>0]=0;l=b[C>>0]|0;c=l<<24>>24;o=B+16|0;D=f[o>>2]|0;if(D){t=o;x=D;d:while(1){D=x;while(1){if((f[D+16>>2]|0)>=(d|0))break;v=f[D+4>>2]|0;if(!v){G=t;break d}else D=v}x=f[D>>2]|0;if(!x){G=D;break}else t=D}if(((G|0)!=(o|0)?(f[G+16>>2]|0)<=(d|0):0)?(o=G+20|0,(Jh(o,j)|0)!=0):0){t=Rg(o,j)|0;if((t|0)!=(G+24|0)){pj(g,t+28|0);t=g+11|0;G=b[t>>0]|0;o=G<<24>>24<0;if(!((o?f[g+4>>2]|0:G&255)|0))H=G;else{if(l<<24>>24>0){x=o?f[g>>2]|0:g;o=0;do{I=$(bq(x,h));A=x;x=f[h>>2]|0;if((A|0)==(x|0))break;n[F+(o<<2)>>2]=I;o=o+1|0}while((o|0)<(c|0));J=b[t>>0]|0}else J=G;H=J}if(H<<24>>24<0)Oq(f[g>>2]|0)}}else z=64}else z=64;if((z|0)==64?(H=Rg(B,j)|0,(H|0)!=(B+4|0)):0){pj(g,H+28|0);H=g+11|0;B=b[H>>0]|0;J=B<<24>>24<0;if(!((J?f[g+4>>2]|0:B&255)|0))K=B;else{if(l<<24>>24>0){l=J?f[g>>2]|0:g;J=0;do{I=$(bq(l,h));G=l;l=f[h>>2]|0;if((G|0)==(l|0))break;n[F+(J<<2)>>2]=I;J=J+1|0}while((J|0)<(c|0));L=b[H>>0]|0}else L=B;K=L}if(K<<24>>24<0)Oq(f[g>>2]|0)}if((b[j+11>>0]|0)<0)Oq(f[j>>2]|0);j=f[m>>2]|0;f[g>>2]=0;f[g+4>>2]=0;f[g+8>>2]=0;m=ln(32)|0;f[g>>2]=m;f[g+8>>2]=-2147483616;f[g+4>>2]=18;p=m;q=14458;r=p+18|0;do{b[p>>0]=b[q>>0]|0;p=p+1|0;q=q+1|0}while((p|0)<(r|0));b[m+18>>0]=0;m=j+16|0;q=f[m>>2]|0;if(q){p=m;r=q;e:while(1){q=r;while(1){if((f[q+16>>2]|0)>=(d|0))break;K=f[q+4>>2]|0;if(!K){M=p;break e}else q=K}r=f[q>>2]|0;if(!r){M=q;break}else p=q}if(((M|0)!=(m|0)?(f[M+16>>2]|0)<=(d|0):0)?(d=M+20|0,(Jh(d,g)|0)!=0):0)N=$(sk(d,g,$(1.0)));else z=86}else z=86;if((z|0)==86)N=$(sk(j,g,$(1.0)));if((b[g+11>>0]|0)<0)Oq(f[g>>2]|0);Dl(a+40|0,y,f[i>>2]|0,b[C>>0]|0,N);C=f[i>>2]|0;if(C|0){i=f[E>>2]|0;if((i|0)!=(C|0))f[E>>2]=i+(~((i+-4-C|0)>>>2)<<2);Oq(C)}k=1;u=e;return k|0}function Sb(a,b,c,d,e,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0;e=u;u=u+64|0;d=e+48|0;h=e+36|0;i=e+24|0;j=e+16|0;k=e+8|0;l=e;m=e+32|0;n=a+60|0;f[a+68>>2]=g;g=a+108|0;tk(g);o=a+56|0;p=f[o>>2]|0;q=(f[p+4>>2]|0)-(f[p>>2]|0)|0;r=q>>2;f[h>>2]=0;f[h+4>>2]=0;f[h+8>>2]=0;s=i;f[s>>2]=0;f[s+4>>2]=0;s=j;f[s>>2]=0;f[s+4>>2]=0;s=k;f[s>>2]=0;f[s+4>>2]=0;s=l;f[s>>2]=0;f[s+4>>2]=0;if((q|0)<=0){u=e;return 1}q=h+4|0;s=h+8|0;t=a+104|0;v=i+4|0;w=a+100|0;x=j+4|0;y=a+8|0;z=a+16|0;A=a+32|0;B=a+12|0;C=a+28|0;D=a+20|0;E=a+24|0;F=a+96|0;a=k+4|0;G=l+4|0;H=f[p>>2]|0;if((f[p+4>>2]|0)==(H|0)){J=p;aq(J)}else{K=0;L=H}while(1){f[m>>2]=f[L+(K<<2)>>2];f[d>>2]=f[m>>2];ic(n,d,h);H=f[h>>2]|0;p=(H|0)>-1?H:0-H|0;M=f[q>>2]|0;N=(M|0)>-1?M:0-M|0;O=Vn(N|0,((N|0)<0)<<31>>31|0,p|0,((p|0)<0)<<31>>31|0)|0;p=f[s>>2]|0;N=(p|0)>-1;P=N?p:0-p|0;p=Vn(O|0,I|0,P|0,((P|0)<0)<<31>>31|0)|0;P=I;if((p|0)==0&(P|0)==0){O=f[t>>2]|0;Q=O;R=h;S=M;T=O}else{O=f[t>>2]|0;U=((O|0)<0)<<31>>31;V=un(O|0,U|0,H|0,((H|0)<0)<<31>>31|0)|0;H=Ik(V|0,I|0,p|0,P|0)|0;f[h>>2]=H;V=un(O|0,U|0,M|0,((M|0)<0)<<31>>31|0)|0;M=Ik(V|0,I|0,p|0,P|0)|0;f[q>>2]=M;P=O-((H|0)>-1?H:0-H|0)-((M|0)>-1?M:0-M|0)|0;Q=N?P:0-P|0;R=s;S=M;T=O}f[R>>2]=Q;O=f[h>>2]|0;do if((O|0)<=-1){if((S|0)<0){M=f[s>>2]|0;W=(M|0)>-1?M:0-M|0;X=M}else{M=f[s>>2]|0;W=(f[w>>2]|0)-((M|0)>-1?M:0-M|0)|0;X=M}if((X|0)<0){Y=(S|0)>-1?S:0-S|0;Z=W;_=X;break}else{Y=(f[w>>2]|0)-((S|0)>-1?S:0-S|0)|0;Z=W;_=X;break}}else{M=f[s>>2]|0;Y=M+T|0;Z=T+S|0;_=M}while(0);M=(Z|0)==0;P=(Y|0)==0;N=f[w>>2]|0;do if(Y|Z){H=(N|0)==(Y|0);if(!(M&H)){p=(N|0)==(Z|0);if(!(P&p)){if(M&(T|0)<(Y|0)){$=0;aa=(T<<1)-Y|0;break}if(p&(T|0)>(Y|0)){$=Z;aa=(T<<1)-Y|0;break}if(H&(T|0)>(Z|0)){$=(T<<1)-Z|0;aa=Y;break}if(P){$=(T|0)<(Z|0)?(T<<1)-Z|0:Z;aa=0}else{$=Z;aa=Y}}else{$=Z;aa=Z}}else{$=Y;aa=Y}}else{$=N;aa=N}while(0);f[i>>2]=$;f[v>>2]=aa;P=0-S|0;M=0-_|0;f[h>>2]=0-O;f[q>>2]=P;f[s>>2]=M;if((O|0)<1){ba=T-_|0;ca=T-S|0}else{H=(_|0)<1?M:_;M=(S|0)<1?P:S;ba=(_|0)>0?M:N-M|0;ca=(S|0)>0?H:N-H|0}H=(ca|0)==0;M=(ba|0)==0;do if(((ba|ca|0)!=0?(P=(N|0)==(ba|0),!(H&P)):0)?(p=(N|0)==(ca|0),!(M&p)):0){if(H&(T|0)<(ba|0)){da=0;ea=(T<<1)-ba|0;break}if(p&(T|0)>(ba|0)){da=N;ea=(T<<1)-ba|0;break}if(P&(T|0)>(ca|0)){da=(T<<1)-ca|0;ea=N;break}if(M){da=(T|0)<(ca|0)?(T<<1)-ca|0:ca;ea=0}else{da=ca;ea=ba}}else{da=N;ea=N}while(0);f[j>>2]=da;f[x>>2]=ea;N=K<<1;M=b+(N<<2)|0;H=f[y>>2]|0;if((H|0)>0){O=0;P=i;p=H;while(1){if((p|0)>0){H=0;do{V=f[P+(H<<2)>>2]|0;U=f[z>>2]|0;if((V|0)>(U|0)){fa=f[A>>2]|0;f[fa+(H<<2)>>2]=U;ga=fa}else{fa=f[B>>2]|0;U=f[A>>2]|0;f[U+(H<<2)>>2]=(V|0)<(fa|0)?fa:V;ga=U}H=H+1|0;U=f[y>>2]|0}while((H|0)<(U|0));ha=ga;ia=U}else{ha=f[A>>2]|0;ia=p}H=(f[M+(O<<2)>>2]|0)-(f[ha+(O<<2)>>2]|0)|0;U=k+(O<<2)|0;f[U>>2]=H;ja=f[C>>2]|0;if((H|0)>=(ja|0)){if((H|0)>(f[E>>2]|0)){ka=H-(f[D>>2]|0)|0;la=52}}else{ka=(f[D>>2]|0)+H|0;la=52}if((la|0)==52){la=0;f[U>>2]=ka}O=O+1|0;if((O|0)>=(ia|0))break;else{P=ha;p=ia}}if((ia|0)>0){p=0;P=j;O=ia;U=ja;while(1){if((O|0)>0){H=0;do{V=f[P+(H<<2)>>2]|0;fa=f[z>>2]|0;if((V|0)>(fa|0))f[ha+(H<<2)>>2]=fa;else{fa=f[B>>2]|0;f[ha+(H<<2)>>2]=(V|0)<(fa|0)?fa:V}H=H+1|0;ma=f[y>>2]|0}while((H|0)<(ma|0));na=f[C>>2]|0;oa=ma}else{na=U;oa=O}H=(f[M+(p<<2)>>2]|0)-(f[ha+(p<<2)>>2]|0)|0;V=l+(p<<2)|0;f[V>>2]=H;if((H|0)>=(na|0)){if((H|0)>(f[E>>2]|0)){pa=H-(f[D>>2]|0)|0;la=65}}else{pa=(f[D>>2]|0)+H|0;la=65}if((la|0)==65){la=0;f[V>>2]=pa}p=p+1|0;if((p|0)>=(oa|0))break;else{P=ha;O=oa;U=na}}}}U=f[k>>2]|0;O=f[t>>2]|0;if((O|0)>=(U|0))if((U|0)<(0-O|0))qa=(f[F>>2]|0)+U|0;else qa=U;else qa=U-(f[F>>2]|0)|0;f[k>>2]=qa;U=f[a>>2]|0;if((O|0)>=(U|0))if((U|0)<(0-O|0))ra=(f[F>>2]|0)+U|0;else ra=U;else ra=U-(f[F>>2]|0)|0;f[a>>2]=ra;U=f[l>>2]|0;if((O|0)>=(U|0))if((U|0)<(0-O|0))sa=(f[F>>2]|0)+U|0;else sa=U;else sa=U-(f[F>>2]|0)|0;f[l>>2]=sa;U=f[G>>2]|0;if((O|0)>=(U|0))if((U|0)<(0-O|0))ta=(f[F>>2]|0)+U|0;else ta=U;else ta=U-(f[F>>2]|0)|0;f[G>>2]=ta;if((((ra|0)>-1?ra:0-ra|0)+((qa|0)>-1?qa:0-qa|0)|0)<(((sa|0)>-1?sa:0-sa|0)+((ta|0)>-1?ta:0-ta|0)|0)){fj(g,0);ua=k}else{fj(g,1);ua=l}U=f[ua>>2]|0;if((U|0)<0)va=(f[F>>2]|0)+U|0;else va=U;U=c+(N<<2)|0;f[U>>2]=va;O=f[ua+4>>2]|0;if((O|0)<0)wa=(f[F>>2]|0)+O|0;else wa=O;f[U+4>>2]=wa;K=K+1|0;if((K|0)>=(r|0)){la=3;break}U=f[o>>2]|0;L=f[U>>2]|0;if((f[U+4>>2]|0)-L>>2>>>0<=K>>>0){J=U;la=4;break}}if((la|0)==3){u=e;return 1}else if((la|0)==4)aq(J);return 0}function Tb(a,b,c,d,e,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0;e=u;u=u+64|0;d=e+48|0;h=e+36|0;i=e+24|0;j=e+16|0;k=e+8|0;l=e;m=e+32|0;n=a+60|0;f[a+68>>2]=g;g=a+108|0;tk(g);o=a+56|0;p=f[o>>2]|0;q=(f[p+4>>2]|0)-(f[p>>2]|0)|0;r=q>>2;f[h>>2]=0;f[h+4>>2]=0;f[h+8>>2]=0;s=i;f[s>>2]=0;f[s+4>>2]=0;s=j;f[s>>2]=0;f[s+4>>2]=0;s=k;f[s>>2]=0;f[s+4>>2]=0;s=l;f[s>>2]=0;f[s+4>>2]=0;if((q|0)<=0){u=e;return 1}q=h+4|0;s=h+8|0;t=a+104|0;v=i+4|0;w=a+100|0;x=j+4|0;y=a+8|0;z=a+16|0;A=a+32|0;B=a+12|0;C=a+28|0;D=a+20|0;E=a+24|0;F=a+96|0;a=k+4|0;G=l+4|0;H=f[p>>2]|0;if((f[p+4>>2]|0)==(H|0)){J=p;aq(J)}else{K=0;L=H}while(1){f[m>>2]=f[L+(K<<2)>>2];f[d>>2]=f[m>>2];$b(n,d,h);H=f[h>>2]|0;p=(H|0)>-1?H:0-H|0;M=f[q>>2]|0;N=(M|0)>-1?M:0-M|0;O=Vn(N|0,((N|0)<0)<<31>>31|0,p|0,((p|0)<0)<<31>>31|0)|0;p=f[s>>2]|0;N=(p|0)>-1;P=N?p:0-p|0;p=Vn(O|0,I|0,P|0,((P|0)<0)<<31>>31|0)|0;P=I;if((p|0)==0&(P|0)==0){O=f[t>>2]|0;Q=O;R=h;S=M;T=O}else{O=f[t>>2]|0;U=((O|0)<0)<<31>>31;V=un(O|0,U|0,H|0,((H|0)<0)<<31>>31|0)|0;H=Ik(V|0,I|0,p|0,P|0)|0;f[h>>2]=H;V=un(O|0,U|0,M|0,((M|0)<0)<<31>>31|0)|0;M=Ik(V|0,I|0,p|0,P|0)|0;f[q>>2]=M;P=O-((H|0)>-1?H:0-H|0)-((M|0)>-1?M:0-M|0)|0;Q=N?P:0-P|0;R=s;S=M;T=O}f[R>>2]=Q;O=f[h>>2]|0;do if((O|0)<=-1){if((S|0)<0){M=f[s>>2]|0;W=(M|0)>-1?M:0-M|0;X=M}else{M=f[s>>2]|0;W=(f[w>>2]|0)-((M|0)>-1?M:0-M|0)|0;X=M}if((X|0)<0){Y=(S|0)>-1?S:0-S|0;Z=W;_=X;break}else{Y=(f[w>>2]|0)-((S|0)>-1?S:0-S|0)|0;Z=W;_=X;break}}else{M=f[s>>2]|0;Y=M+T|0;Z=T+S|0;_=M}while(0);M=(Z|0)==0;P=(Y|0)==0;N=f[w>>2]|0;do if(Y|Z){H=(N|0)==(Y|0);if(!(M&H)){p=(N|0)==(Z|0);if(!(P&p)){if(M&(T|0)<(Y|0)){$=0;aa=(T<<1)-Y|0;break}if(p&(T|0)>(Y|0)){$=Z;aa=(T<<1)-Y|0;break}if(H&(T|0)>(Z|0)){$=(T<<1)-Z|0;aa=Y;break}if(P){$=(T|0)<(Z|0)?(T<<1)-Z|0:Z;aa=0}else{$=Z;aa=Y}}else{$=Z;aa=Z}}else{$=Y;aa=Y}}else{$=N;aa=N}while(0);f[i>>2]=$;f[v>>2]=aa;P=0-S|0;M=0-_|0;f[h>>2]=0-O;f[q>>2]=P;f[s>>2]=M;if((O|0)<1){ba=T-_|0;ca=T-S|0}else{H=(_|0)<1?M:_;M=(S|0)<1?P:S;ba=(_|0)>0?M:N-M|0;ca=(S|0)>0?H:N-H|0}H=(ca|0)==0;M=(ba|0)==0;do if(((ba|ca|0)!=0?(P=(N|0)==(ba|0),!(H&P)):0)?(p=(N|0)==(ca|0),!(M&p)):0){if(H&(T|0)<(ba|0)){da=0;ea=(T<<1)-ba|0;break}if(p&(T|0)>(ba|0)){da=N;ea=(T<<1)-ba|0;break}if(P&(T|0)>(ca|0)){da=(T<<1)-ca|0;ea=N;break}if(M){da=(T|0)<(ca|0)?(T<<1)-ca|0:ca;ea=0}else{da=ca;ea=ba}}else{da=N;ea=N}while(0);f[j>>2]=da;f[x>>2]=ea;N=K<<1;M=b+(N<<2)|0;H=f[y>>2]|0;if((H|0)>0){O=0;P=i;p=H;while(1){if((p|0)>0){H=0;do{V=f[P+(H<<2)>>2]|0;U=f[z>>2]|0;if((V|0)>(U|0)){fa=f[A>>2]|0;f[fa+(H<<2)>>2]=U;ga=fa}else{fa=f[B>>2]|0;U=f[A>>2]|0;f[U+(H<<2)>>2]=(V|0)<(fa|0)?fa:V;ga=U}H=H+1|0;U=f[y>>2]|0}while((H|0)<(U|0));ha=ga;ia=U}else{ha=f[A>>2]|0;ia=p}H=(f[M+(O<<2)>>2]|0)-(f[ha+(O<<2)>>2]|0)|0;U=k+(O<<2)|0;f[U>>2]=H;ja=f[C>>2]|0;if((H|0)>=(ja|0)){if((H|0)>(f[E>>2]|0)){ka=H-(f[D>>2]|0)|0;la=52}}else{ka=(f[D>>2]|0)+H|0;la=52}if((la|0)==52){la=0;f[U>>2]=ka}O=O+1|0;if((O|0)>=(ia|0))break;else{P=ha;p=ia}}if((ia|0)>0){p=0;P=j;O=ia;U=ja;while(1){if((O|0)>0){H=0;do{V=f[P+(H<<2)>>2]|0;fa=f[z>>2]|0;if((V|0)>(fa|0))f[ha+(H<<2)>>2]=fa;else{fa=f[B>>2]|0;f[ha+(H<<2)>>2]=(V|0)<(fa|0)?fa:V}H=H+1|0;ma=f[y>>2]|0}while((H|0)<(ma|0));na=f[C>>2]|0;oa=ma}else{na=U;oa=O}H=(f[M+(p<<2)>>2]|0)-(f[ha+(p<<2)>>2]|0)|0;V=l+(p<<2)|0;f[V>>2]=H;if((H|0)>=(na|0)){if((H|0)>(f[E>>2]|0)){pa=H-(f[D>>2]|0)|0;la=65}}else{pa=(f[D>>2]|0)+H|0;la=65}if((la|0)==65){la=0;f[V>>2]=pa}p=p+1|0;if((p|0)>=(oa|0))break;else{P=ha;O=oa;U=na}}}}U=f[k>>2]|0;O=f[t>>2]|0;if((O|0)>=(U|0))if((U|0)<(0-O|0))qa=(f[F>>2]|0)+U|0;else qa=U;else qa=U-(f[F>>2]|0)|0;f[k>>2]=qa;U=f[a>>2]|0;if((O|0)>=(U|0))if((U|0)<(0-O|0))ra=(f[F>>2]|0)+U|0;else ra=U;else ra=U-(f[F>>2]|0)|0;f[a>>2]=ra;U=f[l>>2]|0;if((O|0)>=(U|0))if((U|0)<(0-O|0))sa=(f[F>>2]|0)+U|0;else sa=U;else sa=U-(f[F>>2]|0)|0;f[l>>2]=sa;U=f[G>>2]|0;if((O|0)>=(U|0))if((U|0)<(0-O|0))ta=(f[F>>2]|0)+U|0;else ta=U;else ta=U-(f[F>>2]|0)|0;f[G>>2]=ta;if((((ra|0)>-1?ra:0-ra|0)+((qa|0)>-1?qa:0-qa|0)|0)<(((sa|0)>-1?sa:0-sa|0)+((ta|0)>-1?ta:0-ta|0)|0)){fj(g,0);ua=k}else{fj(g,1);ua=l}U=f[ua>>2]|0;if((U|0)<0)va=(f[F>>2]|0)+U|0;else va=U;U=c+(N<<2)|0;f[U>>2]=va;O=f[ua+4>>2]|0;if((O|0)<0)wa=(f[F>>2]|0)+O|0;else wa=O;f[U+4>>2]=wa;K=K+1|0;if((K|0)>=(r|0)){la=3;break}U=f[o>>2]|0;L=f[U>>2]|0;if((f[U+4>>2]|0)-L>>2>>>0<=K>>>0){J=U;la=4;break}}if((la|0)==3){u=e;return 1}else if((la|0)==4)aq(J);return 0}function Ub(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,i=0,j=0,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=Oa,V=Oa,Y=Oa,Z=0,_=0,aa=0,ba=0;d=u;u=u+16|0;e=d;g=a+16|0;f[a>>2]=0;f[a+4>>2]=0;f[a+8>>2]=0;f[a+12>>2]=0;n[g>>2]=$(1.0);i=a+20|0;f[i>>2]=0;f[i+4>>2]=0;f[i+8>>2]=0;f[i+12>>2]=0;n[a+36>>2]=$(1.0);j=f[c+8>>2]|0;a:do if(j|0){k=a+4|0;l=a+12|0;m=a+8|0;o=j;p=j;while(1){q=o+8|0;r=b[q+11>>0]|0;s=r<<24>>24<0;t=s?f[q>>2]|0:q;v=s?f[o+12>>2]|0:r&255;if(v>>>0>3){r=t;s=v;w=v;while(1){x=X(h[r>>0]|h[r+1>>0]<<8|h[r+2>>0]<<16|h[r+3>>0]<<24,1540483477)|0;s=(X(x>>>24^x,1540483477)|0)^(X(s,1540483477)|0);w=w+-4|0;if(w>>>0<=3)break;else r=r+4|0}r=v+-4|0;w=r&-4;y=r-w|0;z=t+(w+4)|0;A=s}else{y=v;z=t;A=v}switch(y|0){case 3:{B=h[z+2>>0]<<16^A;C=8;break}case 2:{B=A;C=8;break}case 1:{D=A;C=9;break}default:E=A}if((C|0)==8){C=0;D=h[z+1>>0]<<8^B;C=9}if((C|0)==9){C=0;E=X(D^h[z>>0],1540483477)|0}w=X(E>>>13^E,1540483477)|0;r=w>>>15^w;w=f[k>>2]|0;x=(w|0)==0;b:do if(!x){F=w+-1|0;G=(F&w|0)==0;if(!G)if(r>>>0>>0)H=r;else H=(r>>>0)%(w>>>0)|0;else H=r&F;I=f[(f[a>>2]|0)+(H<<2)>>2]|0;if((I|0)!=0?(J=f[I>>2]|0,(J|0)!=0):0){I=(v|0)==0;if(G){if(I){G=J;while(1){K=f[G+4>>2]|0;if(!((K|0)==(r|0)|(K&F|0)==(H|0))){L=H;C=50;break b}K=b[G+8+11>>0]|0;if(!((K<<24>>24<0?f[G+12>>2]|0:K&255)|0))break b;G=f[G>>2]|0;if(!G){L=H;C=50;break b}}}else M=J;while(1){G=f[M+4>>2]|0;if(!((G|0)==(r|0)|(G&F|0)==(H|0))){L=H;C=50;break b}G=M+8|0;K=b[G+11>>0]|0;N=K<<24>>24<0;O=K&255;do if(((N?f[M+12>>2]|0:O)|0)==(v|0)){K=f[G>>2]|0;if(N)if(!(Vk(K,t,v)|0))break b;else break;if((b[t>>0]|0)==(K&255)<<24>>24){K=G;P=O;Q=t;do{P=P+-1|0;K=K+1|0;if(!P)break b;Q=Q+1|0}while((b[K>>0]|0)==(b[Q>>0]|0))}}while(0);M=f[M>>2]|0;if(!M){L=H;C=50;break b}}}if(I){F=J;while(1){O=f[F+4>>2]|0;if((O|0)!=(r|0)){if(O>>>0>>0)R=O;else R=(O>>>0)%(w>>>0)|0;if((R|0)!=(H|0)){L=H;C=50;break b}}O=b[F+8+11>>0]|0;if(!((O<<24>>24<0?f[F+12>>2]|0:O&255)|0))break b;F=f[F>>2]|0;if(!F){L=H;C=50;break b}}}else S=J;while(1){F=f[S+4>>2]|0;if((F|0)!=(r|0)){if(F>>>0>>0)T=F;else T=(F>>>0)%(w>>>0)|0;if((T|0)!=(H|0)){L=H;C=50;break b}}F=S+8|0;I=b[F+11>>0]|0;O=I<<24>>24<0;G=I&255;do if(((O?f[S+12>>2]|0:G)|0)==(v|0)){I=f[F>>2]|0;if(O)if(!(Vk(I,t,v)|0))break b;else break;if((b[t>>0]|0)==(I&255)<<24>>24){I=F;N=G;Q=t;do{N=N+-1|0;I=I+1|0;if(!N)break b;Q=Q+1|0}while((b[I>>0]|0)==(b[Q>>0]|0))}}while(0);S=f[S>>2]|0;if(!S){L=H;C=50;break}}}else{L=H;C=50}}else{L=0;C=50}while(0);if((C|0)==50){C=0;Di(e,a,r,q);U=$(((f[l>>2]|0)+1|0)>>>0);V=$(w>>>0);Y=$(n[g>>2]);do if(x|$(Y*V)>>0<3|(w+-1&w|0)!=0)&1;v=~~$(W($(U/Y)))>>>0;ei(a,t>>>0>>0?v:t);t=f[k>>2]|0;v=t+-1|0;if(!(v&t)){Z=t;_=v&r;break}if(r>>>0>>0){Z=t;_=r}else{Z=t;_=(r>>>0)%(t>>>0)|0}}else{Z=w;_=L}while(0);w=f[(f[a>>2]|0)+(_<<2)>>2]|0;if(!w){f[f[e>>2]>>2]=f[m>>2];f[m>>2]=f[e>>2];f[(f[a>>2]|0)+(_<<2)>>2]=m;r=f[e>>2]|0;x=f[r>>2]|0;if(x|0){q=f[x+4>>2]|0;x=Z+-1|0;if(x&Z)if(q>>>0>>0)aa=q;else aa=(q>>>0)%(Z>>>0)|0;else aa=q&x;f[(f[a>>2]|0)+(aa<<2)>>2]=r}}else{f[f[e>>2]>>2]=f[w>>2];f[w>>2]=f[e>>2]}f[l>>2]=(f[l>>2]|0)+1}w=f[p>>2]|0;if(!w)break a;else{o=w;p=w}}}while(0);e=f[c+28>>2]|0;if(!e){u=d;return}else ba=e;do{e=ba;c=ln(40)|0;Ub(c,f[e+20>>2]|0);aa=Ec(i,e+8|0)|0;e=f[aa>>2]|0;f[aa>>2]=c;if(e|0){c=f[e+28>>2]|0;if(c|0){aa=c;do{c=aa;aa=f[aa>>2]|0;ri(c+8|0);Oq(c)}while((aa|0)!=0)}aa=e+20|0;c=f[aa>>2]|0;f[aa>>2]=0;if(c|0)Oq(c);c=f[e+8>>2]|0;if(c|0){aa=c;do{c=aa;aa=f[aa>>2]|0;a=c+8|0;Z=f[c+20>>2]|0;if(Z|0){_=c+24|0;if((f[_>>2]|0)!=(Z|0))f[_>>2]=Z;Oq(Z)}if((b[a+11>>0]|0)<0)Oq(f[a>>2]|0);Oq(c)}while((aa|0)!=0)}aa=f[e>>2]|0;f[e>>2]=0;if(aa|0)Oq(aa);Oq(e)}ba=f[ba>>2]|0}while((ba|0)!=0);u=d;return}function Vb(a,c,e){a=a|0;c=c|0;e=e|0;var g=0,i=0,j=0,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,X=0,Y=0,Z=0,_=0,aa=0,ba=0,ca=0,da=0,ea=Oa,fa=Oa,ga=Oa,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0;g=u;u=u+48|0;i=g+16|0;j=g+12|0;k=g;l=i+16|0;f[i>>2]=0;f[i+4>>2]=0;f[i+8>>2]=0;f[i+12>>2]=0;n[l>>2]=$(1.0);m=a+80|0;o=f[m>>2]|0;f[k>>2]=0;p=k+4|0;f[p>>2]=0;f[k+8>>2]=0;if(o){if(o>>>0>1073741823)aq(k);q=o<<2;r=ln(q)|0;f[k>>2]=r;s=r+(o<<2)|0;f[k+8>>2]=s;sj(r|0,0,q|0)|0;f[p>>2]=s;s=c+48|0;q=c+40|0;o=i+4|0;t=i+12|0;v=i+8|0;w=a+40|0;x=a+64|0;y=f[e>>2]|0;e=r;z=0;A=0;B=r;C=r;D=0;E=r;while(1){r=s;F=f[r>>2]|0;G=f[r+4>>2]|0;r=q;H=un(f[r>>2]|0,f[r+4>>2]|0,y+z|0,0)|0;r=Vn(H|0,I|0,F|0,G|0)|0;G=(f[f[c>>2]>>2]|0)+r|0;r=h[G>>0]|h[G+1>>0]<<8|h[G+2>>0]<<16|h[G+3>>0]<<24;f[j>>2]=r;G=r&65535;F=r>>>16;H=F&65535;J=(r&65535^318)+239^F;F=(D|0)==0;a:do if(!F){K=D+-1|0;L=(K&D|0)==0;if(!L)if(J>>>0>>0)M=J;else M=(J>>>0)%(D>>>0)|0;else M=J&K;N=f[(f[i>>2]|0)+(M<<2)>>2]|0;do if(N|0?(O=f[N>>2]|0,O|0):0){b:do if(L){P=O;while(1){Q=f[P+4>>2]|0;R=(Q|0)==(J|0);if(!(R|(Q&K|0)==(M|0))){S=27;break b}if((R?(R=P+8|0,(d[R>>1]|0)==G<<16>>16):0)?(d[R+2>>1]|0)==H<<16>>16:0){T=P;S=26;break b}P=f[P>>2]|0;if(!P){S=27;break}}}else{P=O;while(1){R=f[P+4>>2]|0;if((R|0)==(J|0)){Q=P+8|0;if((d[Q>>1]|0)==G<<16>>16?(d[Q+2>>1]|0)==H<<16>>16:0){T=P;S=26;break b}}else{if(R>>>0>>0)U=R;else U=(R>>>0)%(D>>>0)|0;if((U|0)!=(M|0)){S=27;break b}}P=f[P>>2]|0;if(!P){S=27;break}}}while(0);if((S|0)==26){S=0;f[E+(z<<2)>>2]=f[T+12>>2];V=e;X=A;Y=C;Z=B;_=E;break a}else if((S|0)==27){S=0;if(F){aa=0;S=46;break a}else break}}while(0);K=D+-1|0;L=(K&D|0)==0;if(!L)if(J>>>0>>0)ba=J;else ba=(J>>>0)%(D>>>0)|0;else ba=K&J;N=f[(f[i>>2]|0)+(ba<<2)>>2]|0;if((N|0)!=0?(O=f[N>>2]|0,(O|0)!=0):0){if(L){L=O;while(1){N=f[L+4>>2]|0;if(!((N|0)==(J|0)|(N&K|0)==(ba|0))){aa=ba;S=46;break a}N=L+8|0;if((d[N>>1]|0)==G<<16>>16?(d[N+2>>1]|0)==H<<16>>16:0){S=61;break a}L=f[L>>2]|0;if(!L){aa=ba;S=46;break a}}}else ca=O;while(1){L=f[ca+4>>2]|0;if((L|0)!=(J|0)){if(L>>>0>>0)da=L;else da=(L>>>0)%(D>>>0)|0;if((da|0)!=(ba|0)){aa=ba;S=46;break a}}L=ca+8|0;if((d[L>>1]|0)==G<<16>>16?(d[L+2>>1]|0)==H<<16>>16:0){S=61;break a}ca=f[ca>>2]|0;if(!ca){aa=ba;S=46;break}}}else{aa=ba;S=46}}else{aa=0;S=46}while(0);if((S|0)==46){S=0;H=ln(16)|0;G=H+8|0;d[G>>1]=r;d[G+2>>1]=r>>>16;f[H+12>>2]=A;f[H+4>>2]=J;f[H>>2]=0;ea=$(((f[t>>2]|0)+1|0)>>>0);fa=$(D>>>0);ga=$(n[l>>2]);do if(F|$(ga*fa)>>0<3|(D+-1&D|0)!=0)&1;O=~~$(W($(ea/ga)))>>>0;Uh(i,G>>>0>>0?O:G);G=f[o>>2]|0;O=G+-1|0;if(!(O&G)){ha=G;ia=O&J;break}if(J>>>0>>0){ha=G;ia=J}else{ha=G;ia=(J>>>0)%(G>>>0)|0}}else{ha=D;ia=aa}while(0);J=(f[i>>2]|0)+(ia<<2)|0;F=f[J>>2]|0;if(!F){f[H>>2]=f[v>>2];f[v>>2]=H;f[J>>2]=v;J=f[H>>2]|0;if(J|0){r=f[J+4>>2]|0;J=ha+-1|0;if(J&ha)if(r>>>0>>0)ja=r;else ja=(r>>>0)%(ha>>>0)|0;else ja=r&J;ka=(f[i>>2]|0)+(ja<<2)|0;S=59}}else{f[H>>2]=f[F>>2];ka=F;S=59}if((S|0)==59){S=0;f[ka>>2]=H}f[t>>2]=(f[t>>2]|0)+1;S=61}if((S|0)==61){S=0;F=w;J=f[F>>2]|0;r=un(J|0,f[F+4>>2]|0,A|0,0)|0;kh((f[f[x>>2]>>2]|0)+r|0,j|0,J|0)|0;J=f[k>>2]|0;f[J+(z<<2)>>2]=A;V=J;X=A+1|0;Y=J;Z=J;_=J}J=z+1|0;la=f[m>>2]|0;if(J>>>0>=la>>>0)break;e=V;z=J;A=X;B=Z;C=Y;D=f[o>>2]|0;E=_}if((X|0)==(la|0))ma=Z;else{Z=a+84|0;if(!(b[Z>>0]|0)){_=f[a+72>>2]|0;E=f[a+68>>2]|0;o=E;if((_|0)==(E|0))na=V;else{D=_-E>>2;E=0;do{_=o+(E<<2)|0;f[_>>2]=f[Y+(f[_>>2]<<2)>>2];E=E+1|0}while(E>>>0>>0);na=V}}else{b[Z>>0]=0;Z=a+68|0;V=a+72|0;D=f[V>>2]|0;E=f[Z>>2]|0;Y=D-E>>2;o=E;E=D;if(la>>>0<=Y>>>0)if(la>>>0>>0?(D=o+(la<<2)|0,(D|0)!=(E|0)):0){f[V>>2]=E+(~((E+-4-D|0)>>>2)<<2);oa=la}else oa=la;else{Ch(Z,la-Y|0,1220);oa=f[m>>2]|0}Y=f[k>>2]|0;if(!oa)na=Y;else{k=f[a+68>>2]|0;a=0;do{f[k+(a<<2)>>2]=f[Y+(a<<2)>>2];a=a+1|0}while(a>>>0>>0);na=Y}}f[m>>2]=X;ma=na}if(!ma)pa=X;else{na=f[p>>2]|0;if((na|0)!=(ma|0))f[p>>2]=na+(~((na+-4-ma|0)>>>2)<<2);Oq(ma);pa=X}}else pa=0;X=f[i+8>>2]|0;if(X|0){ma=X;do{X=ma;ma=f[ma>>2]|0;Oq(X)}while((ma|0)!=0)}ma=f[i>>2]|0;f[i>>2]=0;if(!ma){u=g;return pa|0}Oq(ma);u=g;return pa|0}function Wb(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,i=0,j=0,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,X=0,Y=0,Z=0,_=0,aa=0,ba=0,ca=Oa,da=Oa,ea=Oa,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0;e=u;u=u+48|0;g=e+20|0;i=e;j=e+8|0;k=g+16|0;f[g>>2]=0;f[g+4>>2]=0;f[g+8>>2]=0;f[g+12>>2]=0;n[k>>2]=$(1.0);l=a+80|0;m=f[l>>2]|0;f[j>>2]=0;o=j+4|0;f[o>>2]=0;f[j+8>>2]=0;if(m){if(m>>>0>1073741823)aq(j);p=m<<2;q=ln(p)|0;f[j>>2]=q;r=q+(m<<2)|0;f[j+8>>2]=r;sj(q|0,0,p|0)|0;f[o>>2]=r;r=c+48|0;p=c+40|0;m=g+4|0;s=g+12|0;t=g+8|0;v=a+40|0;w=a+64|0;x=f[d>>2]|0;d=q;y=0;z=0;A=q;B=q;C=q;q=0;while(1){D=r;E=f[D>>2]|0;F=f[D+4>>2]|0;D=p;G=un(f[D>>2]|0,f[D+4>>2]|0,x+y|0,0)|0;D=Vn(G|0,I|0,E|0,F|0)|0;F=(f[f[c>>2]>>2]|0)+D|0;D=F;E=h[D>>0]|h[D+1>>0]<<8|h[D+2>>0]<<16|h[D+3>>0]<<24;D=F+4|0;F=h[D>>0]|h[D+1>>0]<<8|h[D+2>>0]<<16|h[D+3>>0]<<24;D=i;f[D>>2]=E;f[D+4>>2]=F;D=(E^318)+239^F;G=(q|0)==0;a:do if(!G){H=q+-1|0;J=(H&q|0)==0;if(!J)if(D>>>0>>0)K=D;else K=(D>>>0)%(q>>>0)|0;else K=D&H;L=f[(f[g>>2]|0)+(K<<2)>>2]|0;do if(L|0?(M=f[L>>2]|0,M|0):0){b:do if(J){N=M;while(1){O=f[N+4>>2]|0;P=(O|0)==(D|0);if(!(P|(O&H|0)==(K|0))){Q=27;break b}if((P?(f[N+8>>2]|0)==(E|0):0)?(f[N+12>>2]|0)==(F|0):0){R=N;Q=26;break b}N=f[N>>2]|0;if(!N){Q=27;break}}}else{N=M;while(1){P=f[N+4>>2]|0;if((P|0)==(D|0)){if((f[N+8>>2]|0)==(E|0)?(f[N+12>>2]|0)==(F|0):0){R=N;Q=26;break b}}else{if(P>>>0>>0)S=P;else S=(P>>>0)%(q>>>0)|0;if((S|0)!=(K|0)){Q=27;break b}}N=f[N>>2]|0;if(!N){Q=27;break}}}while(0);if((Q|0)==26){Q=0;f[A+(y<<2)>>2]=f[R+16>>2];T=d;U=z;V=C;X=B;Y=A;break a}else if((Q|0)==27){Q=0;if(G){Z=0;Q=46;break a}else break}}while(0);H=q+-1|0;J=(H&q|0)==0;if(!J)if(D>>>0>>0)_=D;else _=(D>>>0)%(q>>>0)|0;else _=H&D;L=f[(f[g>>2]|0)+(_<<2)>>2]|0;if((L|0)!=0?(M=f[L>>2]|0,(M|0)!=0):0){if(J){J=M;while(1){L=f[J+4>>2]|0;if(!((L|0)==(D|0)|(L&H|0)==(_|0))){Z=_;Q=46;break a}if((f[J+8>>2]|0)==(E|0)?(f[J+12>>2]|0)==(F|0):0){Q=61;break a}J=f[J>>2]|0;if(!J){Z=_;Q=46;break a}}}else aa=M;while(1){J=f[aa+4>>2]|0;if((J|0)!=(D|0)){if(J>>>0>>0)ba=J;else ba=(J>>>0)%(q>>>0)|0;if((ba|0)!=(_|0)){Z=_;Q=46;break a}}if((f[aa+8>>2]|0)==(E|0)?(f[aa+12>>2]|0)==(F|0):0){Q=61;break a}aa=f[aa>>2]|0;if(!aa){Z=_;Q=46;break}}}else{Z=_;Q=46}}else{Z=0;Q=46}while(0);if((Q|0)==46){Q=0;M=ln(20)|0;J=M+8|0;f[J>>2]=E;f[J+4>>2]=F;f[M+16>>2]=z;f[M+4>>2]=D;f[M>>2]=0;ca=$(((f[s>>2]|0)+1|0)>>>0);da=$(q>>>0);ea=$(n[k>>2]);do if(G|$(ea*da)>>0<3|(q+-1&q|0)!=0)&1;H=~~$(W($(ca/ea)))>>>0;Yh(g,J>>>0>>0?H:J);J=f[m>>2]|0;H=J+-1|0;if(!(H&J)){fa=J;ga=H&D;break}if(D>>>0>>0){fa=J;ga=D}else{fa=J;ga=(D>>>0)%(J>>>0)|0}}else{fa=q;ga=Z}while(0);D=(f[g>>2]|0)+(ga<<2)|0;G=f[D>>2]|0;if(!G){f[M>>2]=f[t>>2];f[t>>2]=M;f[D>>2]=t;D=f[M>>2]|0;if(D|0){F=f[D+4>>2]|0;D=fa+-1|0;if(D&fa)if(F>>>0>>0)ha=F;else ha=(F>>>0)%(fa>>>0)|0;else ha=F&D;ia=(f[g>>2]|0)+(ha<<2)|0;Q=59}}else{f[M>>2]=f[G>>2];ia=G;Q=59}if((Q|0)==59){Q=0;f[ia>>2]=M}f[s>>2]=(f[s>>2]|0)+1;Q=61}if((Q|0)==61){Q=0;G=v;D=f[G>>2]|0;F=un(D|0,f[G+4>>2]|0,z|0,0)|0;kh((f[f[w>>2]>>2]|0)+F|0,i|0,D|0)|0;D=f[j>>2]|0;f[D+(y<<2)>>2]=z;T=D;U=z+1|0;V=D;X=D;Y=D}D=y+1|0;ja=f[l>>2]|0;if(D>>>0>=ja>>>0)break;d=T;y=D;z=U;A=Y;B=X;C=V;q=f[m>>2]|0}if((U|0)==(ja|0))ka=X;else{X=a+84|0;if(!(b[X>>0]|0)){m=f[a+72>>2]|0;q=f[a+68>>2]|0;C=q;if((m|0)==(q|0))la=T;else{B=m-q>>2;q=0;do{m=C+(q<<2)|0;f[m>>2]=f[V+(f[m>>2]<<2)>>2];q=q+1|0}while(q>>>0>>0);la=T}}else{b[X>>0]=0;X=a+68|0;T=a+72|0;B=f[T>>2]|0;q=f[X>>2]|0;V=B-q>>2;C=q;q=B;if(ja>>>0<=V>>>0)if(ja>>>0>>0?(B=C+(ja<<2)|0,(B|0)!=(q|0)):0){f[T>>2]=q+(~((q+-4-B|0)>>>2)<<2);ma=ja}else ma=ja;else{Ch(X,ja-V|0,1220);ma=f[l>>2]|0}V=f[j>>2]|0;if(!ma)la=V;else{j=f[a+68>>2]|0;a=0;do{f[j+(a<<2)>>2]=f[V+(a<<2)>>2];a=a+1|0}while(a>>>0>>0);la=V}}f[l>>2]=U;ka=la}if(!ka)na=U;else{la=f[o>>2]|0;if((la|0)!=(ka|0))f[o>>2]=la+(~((la+-4-ka|0)>>>2)<<2);Oq(ka);na=U}}else na=0;U=f[g+8>>2]|0;if(U|0){ka=U;do{U=ka;ka=f[ka>>2]|0;Oq(U)}while((ka|0)!=0)}ka=f[g>>2]|0;f[g>>2]=0;if(!ka){u=e;return na|0}Oq(ka);u=e;return na|0}function Xb(a,c,e){a=a|0;c=c|0;e=e|0;var g=0,i=0,j=0,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,X=0,Y=0,Z=0,_=0,aa=0,ba=0,ca=0,da=0,ea=Oa,fa=Oa,ga=Oa,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0;g=u;u=u+48|0;i=g+12|0;j=g+32|0;k=g;l=i+16|0;f[i>>2]=0;f[i+4>>2]=0;f[i+8>>2]=0;f[i+12>>2]=0;n[l>>2]=$(1.0);m=a+80|0;o=f[m>>2]|0;f[k>>2]=0;p=k+4|0;f[p>>2]=0;f[k+8>>2]=0;if(o){if(o>>>0>1073741823)aq(k);q=o<<2;r=ln(q)|0;f[k>>2]=r;s=r+(o<<2)|0;f[k+8>>2]=s;sj(r|0,0,q|0)|0;f[p>>2]=s;s=c+48|0;q=c+40|0;o=i+4|0;t=i+12|0;v=i+8|0;w=a+40|0;x=a+64|0;y=f[e>>2]|0;e=r;z=0;A=0;B=r;C=r;D=0;E=r;while(1){r=s;F=f[r>>2]|0;G=f[r+4>>2]|0;r=q;H=un(f[r>>2]|0,f[r+4>>2]|0,y+z|0,0)|0;r=Vn(H|0,I|0,F|0,G|0)|0;G=(f[f[c>>2]>>2]|0)+r|0;r=h[G>>0]|h[G+1>>0]<<8;d[j>>1]=r;G=r&255;F=(r&65535)>>>8;H=F&255;J=((r&255^318)+239<<16>>16^F)&65535;F=(D|0)==0;a:do if(!F){K=D+-1|0;L=(K&D|0)==0;if(!L)if(D>>>0>J>>>0)M=J;else M=(J>>>0)%(D>>>0)|0;else M=K&J;N=f[(f[i>>2]|0)+(M<<2)>>2]|0;do if(N|0?(O=f[N>>2]|0,O|0):0){b:do if(L){P=O;while(1){Q=f[P+4>>2]|0;R=(Q|0)==(J|0);if(!(R|(Q&K|0)==(M|0))){S=27;break b}if((R?(R=P+8|0,(b[R>>0]|0)==G<<24>>24):0)?(b[R+1>>0]|0)==H<<24>>24:0){T=P;S=26;break b}P=f[P>>2]|0;if(!P){S=27;break}}}else{P=O;while(1){R=f[P+4>>2]|0;if((R|0)==(J|0)){Q=P+8|0;if((b[Q>>0]|0)==G<<24>>24?(b[Q+1>>0]|0)==H<<24>>24:0){T=P;S=26;break b}}else{if(R>>>0>>0)U=R;else U=(R>>>0)%(D>>>0)|0;if((U|0)!=(M|0)){S=27;break b}}P=f[P>>2]|0;if(!P){S=27;break}}}while(0);if((S|0)==26){S=0;f[E+(z<<2)>>2]=f[T+12>>2];V=e;X=A;Y=C;Z=B;_=E;break a}else if((S|0)==27){S=0;if(F){aa=0;S=46;break a}else break}}while(0);K=D+-1|0;L=(K&D|0)==0;if(!L)if(D>>>0>J>>>0)ba=J;else ba=(J>>>0)%(D>>>0)|0;else ba=K&J;N=f[(f[i>>2]|0)+(ba<<2)>>2]|0;if((N|0)!=0?(O=f[N>>2]|0,(O|0)!=0):0){if(L){L=O;while(1){N=f[L+4>>2]|0;if(!((N|0)==(J|0)|(N&K|0)==(ba|0))){aa=ba;S=46;break a}N=L+8|0;if((b[N>>0]|0)==G<<24>>24?(b[N+1>>0]|0)==H<<24>>24:0){S=61;break a}L=f[L>>2]|0;if(!L){aa=ba;S=46;break a}}}else ca=O;while(1){L=f[ca+4>>2]|0;if((L|0)!=(J|0)){if(L>>>0>>0)da=L;else da=(L>>>0)%(D>>>0)|0;if((da|0)!=(ba|0)){aa=ba;S=46;break a}}L=ca+8|0;if((b[L>>0]|0)==G<<24>>24?(b[L+1>>0]|0)==H<<24>>24:0){S=61;break a}ca=f[ca>>2]|0;if(!ca){aa=ba;S=46;break}}}else{aa=ba;S=46}}else{aa=0;S=46}while(0);if((S|0)==46){S=0;H=ln(16)|0;G=H+8|0;b[G>>0]=r;b[G+1>>0]=r>>8;f[H+12>>2]=A;f[H+4>>2]=J;f[H>>2]=0;ea=$(((f[t>>2]|0)+1|0)>>>0);fa=$(D>>>0);ga=$(n[l>>2]);do if(F|$(ga*fa)>>0<3|(D+-1&D|0)!=0)&1;O=~~$(W($(ea/ga)))>>>0;$h(i,G>>>0>>0?O:G);G=f[o>>2]|0;O=G+-1|0;if(!(O&G)){ha=G;ia=O&J;break}if(G>>>0>J>>>0){ha=G;ia=J}else{ha=G;ia=(J>>>0)%(G>>>0)|0}}else{ha=D;ia=aa}while(0);J=(f[i>>2]|0)+(ia<<2)|0;F=f[J>>2]|0;if(!F){f[H>>2]=f[v>>2];f[v>>2]=H;f[J>>2]=v;J=f[H>>2]|0;if(J|0){r=f[J+4>>2]|0;J=ha+-1|0;if(J&ha)if(r>>>0>>0)ja=r;else ja=(r>>>0)%(ha>>>0)|0;else ja=r&J;ka=(f[i>>2]|0)+(ja<<2)|0;S=59}}else{f[H>>2]=f[F>>2];ka=F;S=59}if((S|0)==59){S=0;f[ka>>2]=H}f[t>>2]=(f[t>>2]|0)+1;S=61}if((S|0)==61){S=0;F=w;J=f[F>>2]|0;r=un(J|0,f[F+4>>2]|0,A|0,0)|0;kh((f[f[x>>2]>>2]|0)+r|0,j|0,J|0)|0;J=f[k>>2]|0;f[J+(z<<2)>>2]=A;V=J;X=A+1|0;Y=J;Z=J;_=J}J=z+1|0;la=f[m>>2]|0;if(J>>>0>=la>>>0)break;e=V;z=J;A=X;B=Z;C=Y;D=f[o>>2]|0;E=_}if((X|0)==(la|0))ma=Z;else{Z=a+84|0;if(!(b[Z>>0]|0)){_=f[a+72>>2]|0;E=f[a+68>>2]|0;o=E;if((_|0)==(E|0))na=V;else{D=_-E>>2;E=0;do{_=o+(E<<2)|0;f[_>>2]=f[Y+(f[_>>2]<<2)>>2];E=E+1|0}while(E>>>0>>0);na=V}}else{b[Z>>0]=0;Z=a+68|0;V=a+72|0;D=f[V>>2]|0;E=f[Z>>2]|0;Y=D-E>>2;o=E;E=D;if(la>>>0<=Y>>>0)if(la>>>0>>0?(D=o+(la<<2)|0,(D|0)!=(E|0)):0){f[V>>2]=E+(~((E+-4-D|0)>>>2)<<2);oa=la}else oa=la;else{Ch(Z,la-Y|0,1220);oa=f[m>>2]|0}Y=f[k>>2]|0;if(!oa)na=Y;else{k=f[a+68>>2]|0;a=0;do{f[k+(a<<2)>>2]=f[Y+(a<<2)>>2];a=a+1|0}while(a>>>0>>0);na=Y}}f[m>>2]=X;ma=na}if(!ma)pa=X;else{na=f[p>>2]|0;if((na|0)!=(ma|0))f[p>>2]=na+(~((na+-4-ma|0)>>>2)<<2);Oq(ma);pa=X}}else pa=0;X=f[i+8>>2]|0;if(X|0){ma=X;do{X=ma;ma=f[ma>>2]|0;Oq(X)}while((ma|0)!=0)}ma=f[i>>2]|0;f[i>>2]=0;if(!ma){u=g;return pa|0}Oq(ma);u=g;return pa|0}function Yb(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0;c=u;u=u+16|0;d=c+8|0;e=c;g=c+4|0;h=a+16|0;i=f[h>>2]|0;j=a+20|0;k=f[j>>2]|0;if((k|0)==(i|0))l=i;else{m=k+(~((k+-4-i|0)>>>2)<<2)|0;f[j>>2]=m;l=m}m=a+24|0;if((l|0)==(f[m>>2]|0)){Ri(h,b);n=f[h>>2]|0;o=f[j>>2]|0}else{f[l>>2]=f[b>>2];k=l+4|0;f[j>>2]=k;n=i;o=k}k=f[a+8>>2]|0;i=(f[k+100>>2]|0)-(f[k+96>>2]|0)|0;k=(i|0)/12|0;if((n|0)==(o|0)){u=c;return 1}n=a+28|0;l=(i|0)>0;i=a+164|0;p=a+12|0;q=a+76|0;r=a+80|0;s=a+72|0;t=a+200|0;v=a+320|0;w=a+152|0;x=a+84|0;y=a+324|0;z=a+292|0;A=a+304|0;B=a+316|0;C=a+328|0;D=a+336|0;E=a+332|0;F=a+168|0;G=a+140|0;H=a+120|0;I=o;do{o=f[I+-4>>2]|0;f[b>>2]=o;a:do if((o|0)!=-1?(J=(o>>>0)/3|0,K=f[n>>2]|0,(f[K+(J>>>5<<2)>>2]&1<<(J&31)|0)==0):0){if(l){J=0;L=K;b:while(1){K=J+1|0;f[i>>2]=(f[i>>2]|0)+1;M=f[b>>2]|0;N=(M|0)==-1?-1:(M>>>0)/3|0;M=L+(N>>>5<<2)|0;f[M>>2]=1<<(N&31)|f[M>>2];M=f[q>>2]|0;if((M|0)==(f[r>>2]|0))Ri(s,b);else{f[M>>2]=f[b>>2];f[q>>2]=M+4}f[v>>2]=f[b>>2];M=f[b>>2]|0;if((M|0)==-1)O=-1;else O=f[(f[f[p>>2]>>2]|0)+(M<<2)>>2]|0;P=(f[(f[w>>2]|0)+(O<<2)>>2]|0)!=-1;Q=(f[x>>2]|0)+(O>>>5<<2)|0;R=1<<(O&31);S=f[Q>>2]|0;do if(!(S&R)){f[Q>>2]=S|R;if(P){T=f[b>>2]|0;U=38;break}f[y>>2]=(f[y>>2]|0)+1;V=f[v>>2]|0;W=V+1|0;do if((V|0)!=-1){X=((W>>>0)%3|0|0)==0?V+-2|0:W;if(!((V>>>0)%3|0)){Y=V+2|0;Z=X;break}else{Y=V+-1|0;Z=X;break}}else{Y=-1;Z=-1}while(0);V=f[z>>2]|0;W=f[A>>2]|0;X=W+(f[V+(Z<<2)>>2]<<2)|0;_=f[X>>2]|0;f[X>>2]=_+-1;X=W+(f[V+(Y<<2)>>2]<<2)|0;f[X>>2]=(f[X>>2]|0)+-1;X=f[B>>2]|0;if((X|0)!=-1){V=f[C>>2]|0;if((_|0)<(V|0))$=V;else{W=f[E>>2]|0;$=(_|0)>(W|0)?W:_}_=$-V|0;V=f[D>>2]|0;W=f[3724+(X<<2)>>2]|0;f[d>>2]=W;X=V+(_*12|0)+4|0;aa=f[X>>2]|0;if(aa>>>0<(f[V+(_*12|0)+8>>2]|0)>>>0){f[aa>>2]=W;f[X>>2]=aa+4}else Ri(V+(_*12|0)|0,d)}f[B>>2]=0;_=f[b>>2]|0;V=_+1|0;if((_|0)!=-1?(aa=((V>>>0)%3|0|0)==0?_+-2|0:V,(aa|0)!=-1):0)ba=f[(f[(f[p>>2]|0)+12>>2]|0)+(aa<<2)>>2]|0;else ba=-1;f[b>>2]=ba}else{T=M;U=38}while(0);if((U|0)==38){U=0;M=T+1|0;if((T|0)==-1){U=43;break}R=((M>>>0)%3|0|0)==0?T+-2|0:M;if((R|0)==-1)ca=-1;else ca=f[(f[(f[p>>2]|0)+12>>2]|0)+(R<<2)>>2]|0;f[e>>2]=ca;R=(((T>>>0)%3|0|0)==0?2:-1)+T|0;if((R|0)==-1)da=-1;else da=f[(f[(f[p>>2]|0)+12>>2]|0)+(R<<2)>>2]|0;R=(ca|0)==-1;S=R?-1:(ca>>>0)/3|0;ea=(da|0)==-1;fa=ea?-1:(da>>>0)/3|0;Q=((M>>>0)%3|0|0)==0?T+-2|0:M;if(((Q|0)!=-1?(M=f[(f[p>>2]|0)+12>>2]|0,aa=f[M+(Q<<2)>>2]|0,(aa|0)!=-1):0)?(Q=(aa>>>0)/3|0,aa=f[n>>2]|0,(f[aa+(Q>>>5<<2)>>2]&1<<(Q&31)|0)==0):0){Q=(((T>>>0)%3|0|0)==0?2:-1)+T|0;do if((Q|0)!=-1){V=f[M+(Q<<2)>>2]|0;if((V|0)==-1)break;_=(V>>>0)/3|0;if(!(f[aa+(_>>>5<<2)>>2]&1<<(_&31))){U=62;break b}}while(0);if(!ea)xf(a,f[i>>2]|0,N,0,fa);nd(t,3);ga=f[e>>2]|0}else{if(!R){xf(a,f[i>>2]|0,N,1,S);aa=f[b>>2]|0;if((aa|0)==-1){U=52;break}else ha=aa}else ha=T;aa=(((ha>>>0)%3|0|0)==0?2:-1)+ha|0;if((aa|0)==-1){U=52;break}Q=f[(f[(f[p>>2]|0)+12>>2]|0)+(aa<<2)>>2]|0;if((Q|0)==-1){U=52;break}aa=(Q>>>0)/3|0;if(f[(f[n>>2]|0)+(aa>>>5<<2)>>2]&1<<(aa&31)|0){U=52;break}nd(t,5);ga=da}f[b>>2]=ga}if((K|0)>=(k|0))break a;J=K;L=f[n>>2]|0}do if((U|0)==43){U=0;f[e>>2]=-1;U=54}else if((U|0)==52){U=0;if(ea)U=54;else{xf(a,f[i>>2]|0,N,0,fa);U=54}}else if((U|0)==62){U=0;nd(t,1);f[F>>2]=(f[F>>2]|0)+1;if(P?(L=f[(f[w>>2]|0)+(O<<2)>>2]|0,(1<<(L&31)&f[(f[G>>2]|0)+(L>>>5<<2)>>2]|0)==0):0){f[g>>2]=f[b>>2];f[d>>2]=f[g>>2];Pe(a,d,0)|0}L=f[i>>2]|0;f[d>>2]=N;J=je(H,d)|0;f[J>>2]=L;L=f[j>>2]|0;f[L+-4>>2]=da;if((L|0)==(f[m>>2]|0)){Ri(h,e);break}else{f[L>>2]=f[e>>2];f[j>>2]=L+4;break}}while(0);if((U|0)==54){U=0;nd(t,7);f[j>>2]=(f[j>>2]|0)+-4}}}else U=11;while(0);if((U|0)==11){U=0;f[j>>2]=I+-4}I=f[j>>2]|0}while((f[h>>2]|0)!=(I|0));u=c;return 1}function Zb(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0;c=u;u=u+16|0;d=c+8|0;e=c;g=f[b>>2]|0;if((g|0)==-1){u=c;return}h=(g>>>0)/3|0;i=a+12|0;if(f[(f[i>>2]|0)+(h>>>5<<2)>>2]&1<<(h&31)|0){u=c;return}h=a+56|0;j=f[h>>2]|0;k=a+60|0;l=f[k>>2]|0;if((l|0)==(j|0))m=j;else{n=l+(~((l+-4-j|0)>>>2)<<2)|0;f[k>>2]=n;m=n}n=a+64|0;if((m|0)==(f[n>>2]|0))Ri(h,b);else{f[m>>2]=g;f[k>>2]=m+4}m=f[a>>2]|0;g=f[b>>2]|0;j=g+1|0;do if((g|0)!=-1){l=f[m+28>>2]|0;o=f[l+((((j>>>0)%3|0|0)==0?g+-2|0:j)<<2)>>2]|0;if(!((g>>>0)%3|0)){p=o;q=g+2|0;r=l;break}else{p=o;q=g+-1|0;r=l;break}}else{l=f[m+28>>2]|0;p=f[l+-4>>2]|0;q=-1;r=l}while(0);m=f[r+(q<<2)>>2]|0;q=a+24|0;r=f[q>>2]|0;g=r+(p>>>5<<2)|0;j=1<<(p&31);l=f[g>>2]|0;if(!(l&j)){f[g>>2]=l|j;j=f[b>>2]|0;l=j+1|0;if((j|0)==-1)s=-1;else s=((l>>>0)%3|0|0)==0?j+-2|0:l;f[e>>2]=s;l=f[(f[(f[a+44>>2]|0)+96>>2]|0)+(((s>>>0)/3|0)*12|0)+(((s>>>0)%3|0)<<2)>>2]|0;s=f[a+48>>2]|0;f[d>>2]=l;j=f[s+4>>2]|0;s=j+4|0;g=f[s>>2]|0;if((g|0)==(f[j+8>>2]|0))Ri(j,d);else{f[g>>2]=l;f[s>>2]=g+4}g=a+40|0;s=f[g>>2]|0;l=s+4|0;j=f[l>>2]|0;if((j|0)==(f[s+8>>2]|0)){Ri(s,e);t=f[g>>2]|0}else{f[j>>2]=f[e>>2];f[l>>2]=j+4;t=s}s=t+24|0;f[(f[t+12>>2]|0)+(p<<2)>>2]=f[s>>2];f[s>>2]=(f[s>>2]|0)+1;v=f[q>>2]|0}else v=r;r=v+(m>>>5<<2)|0;v=1<<(m&31);s=f[r>>2]|0;if(!(s&v)){f[r>>2]=s|v;v=f[b>>2]|0;do if((v|0)!=-1)if(!((v>>>0)%3|0)){w=v+2|0;break}else{w=v+-1|0;break}else w=-1;while(0);f[e>>2]=w;v=f[(f[(f[a+44>>2]|0)+96>>2]|0)+(((w>>>0)/3|0)*12|0)+(((w>>>0)%3|0)<<2)>>2]|0;w=f[a+48>>2]|0;f[d>>2]=v;s=f[w+4>>2]|0;w=s+4|0;r=f[w>>2]|0;if((r|0)==(f[s+8>>2]|0))Ri(s,d);else{f[r>>2]=v;f[w>>2]=r+4}r=a+40|0;w=f[r>>2]|0;v=w+4|0;s=f[v>>2]|0;if((s|0)==(f[w+8>>2]|0)){Ri(w,e);x=f[r>>2]|0}else{f[s>>2]=f[e>>2];f[v>>2]=s+4;x=w}w=x+24|0;f[(f[x+12>>2]|0)+(m<<2)>>2]=f[w>>2];f[w>>2]=(f[w>>2]|0)+1}w=f[h>>2]|0;m=f[k>>2]|0;if((w|0)==(m|0)){u=c;return}x=a+44|0;s=a+48|0;v=a+40|0;r=m;m=w;while(1){w=f[r+-4>>2]|0;f[b>>2]=w;p=(w>>>0)/3|0;if((w|0)!=-1?(w=f[i>>2]|0,(f[w+(p>>>5<<2)>>2]&1<<(p&31)|0)==0):0){t=p;p=w;w=f[a>>2]|0;a:while(1){j=p+(t>>>5<<2)|0;f[j>>2]=f[j>>2]|1<<(t&31);j=f[b>>2]|0;l=f[(f[w+28>>2]|0)+(j<<2)>>2]|0;g=(f[q>>2]|0)+(l>>>5<<2)|0;o=1<<(l&31);y=f[g>>2]|0;if(!(o&y)){z=f[(f[w+40>>2]|0)+(l<<2)>>2]|0;if((z|0)==-1)A=1;else{B=f[(f[f[w+64>>2]>>2]|0)+(z<<2)>>2]|0;A=(1<<(B&31)&f[(f[w+12>>2]|0)+(B>>>5<<2)>>2]|0)!=0}f[g>>2]=y|o;o=f[b>>2]|0;f[e>>2]=o;y=f[(f[(f[x>>2]|0)+96>>2]|0)+(((o>>>0)/3|0)*12|0)+(((o>>>0)%3|0)<<2)>>2]|0;o=f[s>>2]|0;f[d>>2]=y;g=f[o+4>>2]|0;o=g+4|0;B=f[o>>2]|0;if((B|0)==(f[g+8>>2]|0))Ri(g,d);else{f[B>>2]=y;f[o>>2]=B+4}B=f[v>>2]|0;o=B+4|0;y=f[o>>2]|0;if((y|0)==(f[B+8>>2]|0)){Ri(B,e);C=f[v>>2]|0}else{f[y>>2]=f[e>>2];f[o>>2]=y+4;C=B}B=C+24|0;f[(f[C+12>>2]|0)+(l<<2)>>2]=f[B>>2];f[B>>2]=(f[B>>2]|0)+1;B=f[a>>2]|0;l=f[b>>2]|0;if(A){D=l;E=B;F=57}else{y=l+1|0;do if((l|0)==-1)G=-1;else{o=((y>>>0)%3|0|0)==0?l+-2|0:y;if((o|0)==-1){G=-1;break}if(f[(f[B>>2]|0)+(o>>>5<<2)>>2]&1<<(o&31)|0){G=-1;break}G=f[(f[(f[B+64>>2]|0)+12>>2]|0)+(o<<2)>>2]|0}while(0);f[b>>2]=G;H=(G>>>0)/3|0;I=B}}else{D=j;E=w;F=57}if((F|0)==57){F=0;y=D+1|0;if((D|0)==-1){F=58;break}l=((y>>>0)%3|0|0)==0?D+-2|0:y;if((l|0)!=-1?(f[(f[E>>2]|0)+(l>>>5<<2)>>2]&1<<(l&31)|0)==0:0)J=f[(f[(f[E+64>>2]|0)+12>>2]|0)+(l<<2)>>2]|0;else J=-1;f[d>>2]=J;l=(((D>>>0)%3|0|0)==0?2:-1)+D|0;if((l|0)!=-1?(f[(f[E>>2]|0)+(l>>>5<<2)>>2]&1<<(l&31)|0)==0:0)K=f[(f[(f[E+64>>2]|0)+12>>2]|0)+(l<<2)>>2]|0;else K=-1;l=(J|0)==-1;y=(J>>>0)/3|0;o=l?-1:y;g=(K|0)==-1;z=(K>>>0)/3|0;L=g?-1:z;do if(!l){M=f[i>>2]|0;if(f[M+(o>>>5<<2)>>2]&1<<(o&31)|0){F=67;break}if(g){N=J;O=y;break}if(!(f[M+(L>>>5<<2)>>2]&1<<(L&31))){F=72;break a}else{N=J;O=y}}else F=67;while(0);if((F|0)==67){F=0;if(g){F=69;break}if(!(f[(f[i>>2]|0)+(L>>>5<<2)>>2]&1<<(L&31))){N=K;O=z}else{F=69;break}}f[b>>2]=N;H=O;I=E}t=H;p=f[i>>2]|0;w=I}do if((F|0)==58){F=0;f[d>>2]=-1;F=69}else if((F|0)==72){F=0;w=f[k>>2]|0;f[w+-4>>2]=K;if((w|0)==(f[n>>2]|0)){Ri(h,d);P=f[k>>2]|0;break}else{f[w>>2]=f[d>>2];p=w+4|0;f[k>>2]=p;P=p;break}}while(0);if((F|0)==69){F=0;p=(f[k>>2]|0)+-4|0;f[k>>2]=p;P=p}Q=f[h>>2]|0;R=P}else{p=r+-4|0;f[k>>2]=p;Q=m;R=p}if((Q|0)==(R|0))break;else{r=R;m=Q}}u=c;return}function _b(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,i=0,j=0,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=Oa,K=Oa,L=Oa,M=0,N=0,O=0,P=0;e=u;u=u+64|0;g=e+40|0;i=e+16|0;j=e;k=Id(a,c)|0;if(k|0){f[i>>2]=k;f[g>>2]=f[i>>2];lf(a,g)|0}f[j>>2]=0;k=j+4|0;f[k>>2]=0;f[j+8>>2]=0;Fi(j,8);l=d;d=l;m=h[d>>0]|h[d+1>>0]<<8|h[d+2>>0]<<16|h[d+3>>0]<<24;d=l+4|0;l=h[d>>0]|h[d+1>>0]<<8|h[d+2>>0]<<16|h[d+3>>0]<<24;d=f[j>>2]|0;o=d;b[o>>0]=m;b[o+1>>0]=m>>8;b[o+2>>0]=m>>16;b[o+3>>0]=m>>24;m=d+4|0;b[m>>0]=l;b[m+1>>0]=l>>8;b[m+2>>0]=l>>16;b[m+3>>0]=l>>24;pj(i,c);c=i+12|0;f[c>>2]=0;l=i+16|0;f[l>>2]=0;f[i+20>>2]=0;m=f[k>>2]|0;d=f[j>>2]|0;o=m-d|0;if(!o){p=d;q=m;r=0}else{Fi(c,o);p=f[j>>2]|0;q=f[k>>2]|0;r=f[c>>2]|0}kh(r|0,p|0,q-p|0)|0;p=i+11|0;q=b[p>>0]|0;r=q<<24>>24<0;c=r?f[i>>2]|0:i;o=r?f[i+4>>2]|0:q&255;if(o>>>0>3){q=c;r=o;m=o;while(1){d=X(h[q>>0]|h[q+1>>0]<<8|h[q+2>>0]<<16|h[q+3>>0]<<24,1540483477)|0;r=(X(d>>>24^d,1540483477)|0)^(X(r,1540483477)|0);m=m+-4|0;if(m>>>0<=3)break;else q=q+4|0}q=o+-4|0;m=q&-4;s=q-m|0;t=c+(m+4)|0;v=r}else{s=o;t=c;v=o}switch(s|0){case 3:{w=h[t+2>>0]<<16^v;x=10;break}case 2:{w=v;x=10;break}case 1:{y=v;x=11;break}default:z=v}if((x|0)==10){y=h[t+1>>0]<<8^w;x=11}if((x|0)==11)z=X(y^h[t>>0],1540483477)|0;t=X(z>>>13^z,1540483477)|0;z=t>>>15^t;t=a+4|0;y=f[t>>2]|0;w=(y|0)==0;a:do if(!w){v=y+-1|0;s=(v&y|0)==0;if(!s)if(z>>>0>>0)A=z;else A=(z>>>0)%(y>>>0)|0;else A=z&v;r=f[(f[a>>2]|0)+(A<<2)>>2]|0;if((r|0)!=0?(m=f[r>>2]|0,(m|0)!=0):0){r=(o|0)==0;if(s){if(r){s=m;while(1){q=f[s+4>>2]|0;if(!((q|0)==(z|0)|(q&v|0)==(A|0))){B=A;x=52;break a}q=b[s+8+11>>0]|0;if(!((q<<24>>24<0?f[s+12>>2]|0:q&255)|0))break a;s=f[s>>2]|0;if(!s){B=A;x=52;break a}}}else C=m;while(1){s=f[C+4>>2]|0;if(!((s|0)==(z|0)|(s&v|0)==(A|0))){B=A;x=52;break a}s=C+8|0;q=b[s+11>>0]|0;d=q<<24>>24<0;D=q&255;do if(((d?f[C+12>>2]|0:D)|0)==(o|0)){q=f[s>>2]|0;if(d)if(!(Vk(q,c,o)|0))break a;else break;if((b[c>>0]|0)==(q&255)<<24>>24){q=s;E=D;F=c;do{E=E+-1|0;q=q+1|0;if(!E)break a;F=F+1|0}while((b[q>>0]|0)==(b[F>>0]|0))}}while(0);C=f[C>>2]|0;if(!C){B=A;x=52;break a}}}if(r){v=m;while(1){D=f[v+4>>2]|0;if((D|0)!=(z|0)){if(D>>>0>>0)G=D;else G=(D>>>0)%(y>>>0)|0;if((G|0)!=(A|0)){B=A;x=52;break a}}D=b[v+8+11>>0]|0;if(!((D<<24>>24<0?f[v+12>>2]|0:D&255)|0))break a;v=f[v>>2]|0;if(!v){B=A;x=52;break a}}}else H=m;while(1){v=f[H+4>>2]|0;if((v|0)!=(z|0)){if(v>>>0>>0)I=v;else I=(v>>>0)%(y>>>0)|0;if((I|0)!=(A|0)){B=A;x=52;break a}}v=H+8|0;r=b[v+11>>0]|0;D=r<<24>>24<0;s=r&255;do if(((D?f[H+12>>2]|0:s)|0)==(o|0)){r=f[v>>2]|0;if(D)if(!(Vk(r,c,o)|0))break a;else break;if((b[c>>0]|0)==(r&255)<<24>>24){r=v;d=s;F=c;do{d=d+-1|0;r=r+1|0;if(!d)break a;F=F+1|0}while((b[r>>0]|0)==(b[F>>0]|0))}}while(0);H=f[H>>2]|0;if(!H){B=A;x=52;break}}}else{B=A;x=52}}else{B=0;x=52}while(0);if((x|0)==52){oi(g,a,z,i);x=a+12|0;J=$(((f[x>>2]|0)+1|0)>>>0);K=$(y>>>0);L=$(n[a+16>>2]);do if(w|$(L*K)>>0<3|(y+-1&y|0)!=0)&1;H=~~$(W($(J/L)))>>>0;ei(a,A>>>0>>0?H:A);A=f[t>>2]|0;H=A+-1|0;if(!(H&A)){M=A;N=H&z;break}if(z>>>0>>0){M=A;N=z}else{M=A;N=(z>>>0)%(A>>>0)|0}}else{M=y;N=B}while(0);B=f[(f[a>>2]|0)+(N<<2)>>2]|0;if(!B){y=a+8|0;f[f[g>>2]>>2]=f[y>>2];f[y>>2]=f[g>>2];f[(f[a>>2]|0)+(N<<2)>>2]=y;y=f[g>>2]|0;N=f[y>>2]|0;if(!N)O=g;else{z=f[N+4>>2]|0;N=M+-1|0;if(N&M)if(z>>>0>>0)P=z;else P=(z>>>0)%(M>>>0)|0;else P=z&N;f[(f[a>>2]|0)+(P<<2)>>2]=y;O=g}}else{f[f[g>>2]>>2]=f[B>>2];f[B>>2]=f[g>>2];O=g}f[x>>2]=(f[x>>2]|0)+1;f[O>>2]=0}O=f[i+12>>2]|0;if(O|0){if((f[l>>2]|0)!=(O|0))f[l>>2]=O;Oq(O)}if((b[p>>0]|0)<0)Oq(f[i>>2]|0);i=f[j>>2]|0;if(!i){u=e;return}if((f[k>>2]|0)!=(i|0))f[k>>2]=i;Oq(i);u=e;return}function $b(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0;e=u;u=u+96|0;g=e+92|0;h=e+88|0;i=e+72|0;j=e+48|0;k=e+24|0;l=e;m=a+16|0;n=f[m>>2]|0;o=f[c>>2]|0;f[i>>2]=n;f[i+4>>2]=o;c=i+8|0;f[c>>2]=o;b[i+12>>0]=1;p=(o|0)==-1;if(p)q=-1;else q=f[(f[n>>2]|0)+(o<<2)>>2]|0;n=a+20|0;r=f[n>>2]|0;s=f[r>>2]|0;if((f[r+4>>2]|0)-s>>2>>>0<=q>>>0)aq(r);r=a+8|0;t=f[(f[r>>2]|0)+(f[s+(q<<2)>>2]<<2)>>2]|0;q=a+4|0;s=f[q>>2]|0;if(!(b[s+84>>0]|0))v=f[(f[s+68>>2]|0)+(t<<2)>>2]|0;else v=t;f[j>>2]=0;f[j+4>>2]=0;f[j+8>>2]=0;f[j+12>>2]=0;f[j+16>>2]=0;f[j+20>>2]=0;f[h>>2]=v;v=b[s+24>>0]|0;f[g>>2]=f[h>>2];vb(s,g,v,j)|0;v=a+28|0;a=(f[v>>2]|0)==0;a:do if(!p){s=k+8|0;t=j+8|0;w=k+16|0;x=j+16|0;y=l+8|0;z=l+16|0;A=o;B=o;C=0;D=0;E=0;F=0;G=0;H=0;J=a;K=o;while(1){do if(J){L=K+1|0;if((K|0)==-1){M=A;N=-1;O=-1;P=-1;break}Q=((L>>>0)%3|0|0)==0?K+-2|0:L;if((A|0)!=-1)if(!((A>>>0)%3|0)){R=A;S=A+2|0;T=Q;U=A;V=19;break}else{R=A;S=A+-1|0;T=Q;U=A;V=19;break}else{R=-1;S=-1;T=Q;U=-1;V=19}}else{Q=B+1|0;L=((Q>>>0)%3|0|0)==0?B+-2|0:Q;if(!((B>>>0)%3|0)){R=A;S=B+2|0;T=L;U=K;V=19;break}else{R=A;S=B+-1|0;T=L;U=K;V=19;break}}while(0);if((V|0)==19){V=0;if((T|0)==-1){M=R;N=-1;O=S;P=U}else{M=R;N=f[(f[f[m>>2]>>2]|0)+(T<<2)>>2]|0;O=S;P=U}}W=f[n>>2]|0;L=f[W>>2]|0;if((f[W+4>>2]|0)-L>>2>>>0<=N>>>0){V=22;break}Q=f[(f[r>>2]|0)+(f[L+(N<<2)>>2]<<2)>>2]|0;L=f[q>>2]|0;if(!(b[L+84>>0]|0))X=f[(f[L+68>>2]|0)+(Q<<2)>>2]|0;else X=Q;f[k>>2]=0;f[k+4>>2]=0;f[k+8>>2]=0;f[k+12>>2]=0;f[k+16>>2]=0;f[k+20>>2]=0;f[h>>2]=X;Q=b[L+24>>0]|0;f[g>>2]=f[h>>2];vb(L,g,Q,k)|0;if((O|0)==-1)Y=-1;else Y=f[(f[f[m>>2]>>2]|0)+(O<<2)>>2]|0;Z=f[n>>2]|0;Q=f[Z>>2]|0;if((f[Z+4>>2]|0)-Q>>2>>>0<=Y>>>0){V=28;break}L=f[(f[r>>2]|0)+(f[Q+(Y<<2)>>2]<<2)>>2]|0;Q=f[q>>2]|0;if(!(b[Q+84>>0]|0))_=f[(f[Q+68>>2]|0)+(L<<2)>>2]|0;else _=L;f[l>>2]=0;f[l+4>>2]=0;f[l+8>>2]=0;f[l+12>>2]=0;f[l+16>>2]=0;f[l+20>>2]=0;f[h>>2]=_;L=b[Q+24>>0]|0;f[g>>2]=f[h>>2];vb(Q,g,L,l)|0;L=k;Q=j;$=f[Q>>2]|0;aa=f[Q+4>>2]|0;Q=Xn(f[L>>2]|0,f[L+4>>2]|0,$|0,aa|0)|0;L=I;ba=s;ca=t;da=f[ca>>2]|0;ea=f[ca+4>>2]|0;ca=Xn(f[ba>>2]|0,f[ba+4>>2]|0,da|0,ea|0)|0;ba=I;fa=w;ga=x;ha=f[ga>>2]|0;ia=f[ga+4>>2]|0;ga=Xn(f[fa>>2]|0,f[fa+4>>2]|0,ha|0,ia|0)|0;fa=I;ja=l;ka=Xn(f[ja>>2]|0,f[ja+4>>2]|0,$|0,aa|0)|0;aa=I;$=y;ja=Xn(f[$>>2]|0,f[$+4>>2]|0,da|0,ea|0)|0;ea=I;da=z;$=Xn(f[da>>2]|0,f[da+4>>2]|0,ha|0,ia|0)|0;ia=I;ha=un($|0,ia|0,ca|0,ba|0)|0;da=I;la=un(ja|0,ea|0,ga|0,fa|0)|0;ma=I;na=un(ka|0,aa|0,ga|0,fa|0)|0;fa=I;ga=un($|0,ia|0,Q|0,L|0)|0;ia=I;$=un(ja|0,ea|0,Q|0,L|0)|0;L=I;Q=un(ka|0,aa|0,ca|0,ba|0)|0;ba=I;ca=Xn(C|0,D|0,la|0,ma|0)|0;ma=Vn(ca|0,I|0,ha|0,da|0)|0;da=I;ha=Vn(na|0,fa|0,E|0,F|0)|0;fa=Xn(ha|0,I|0,ga|0,ia|0)|0;ia=I;ga=Xn(G|0,H|0,Q|0,ba|0)|0;ba=Vn(ga|0,I|0,$|0,L|0)|0;L=I;Hh(i);B=f[c>>2]|0;$=(f[v>>2]|0)==0;if((B|0)==-1){oa=$;pa=da;qa=ma;ra=ia;sa=fa;ta=L;ua=ba;break a}else{A=M;C=ma;D=da;E=fa;F=ia;G=ba;H=L;J=$;K=P}}if((V|0)==22)aq(W);else if((V|0)==28)aq(Z)}else{oa=a;pa=0;qa=0;ra=0;sa=0;ta=0;ua=0}while(0);a=(pa|0)>-1|(pa|0)==-1&qa>>>0>4294967295;Z=Xn(0,0,qa|0,pa|0)|0;V=a?pa:I;W=(ra|0)>-1|(ra|0)==-1&sa>>>0>4294967295;P=Xn(0,0,sa|0,ra|0)|0;M=W?ra:I;v=(ta|0)>-1|(ta|0)==-1&ua>>>0>4294967295;c=Xn(0,0,ua|0,ta|0)|0;i=Vn((W?sa:P)|0,M|0,(v?ua:c)|0,(v?ta:I)|0)|0;v=Vn(i|0,I|0,(a?qa:Z)|0,V|0)|0;V=I;if(oa){if((v|0)<=536870912){va=qa;wa=sa;xa=ua;f[d>>2]=va;ya=d+4|0;f[ya>>2]=wa;za=d+8|0;f[za>>2]=xa;u=e;return}oa=Yn(v|0,V|0,29)|0;Z=oa&7;oa=Ik(qa|0,pa|0,Z|0,0)|0;a=Ik(sa|0,ra|0,Z|0,0)|0;i=Ik(ua|0,ta|0,Z|0,0)|0;va=oa;wa=a;xa=i;f[d>>2]=va;ya=d+4|0;f[ya>>2]=wa;za=d+8|0;f[za>>2]=xa;u=e;return}else{if(!((V|0)>0|(V|0)==0&v>>>0>536870912)){va=qa;wa=sa;xa=ua;f[d>>2]=va;ya=d+4|0;f[ya>>2]=wa;za=d+8|0;f[za>>2]=xa;u=e;return}i=Yn(v|0,V|0,29)|0;V=I;v=Ik(qa|0,pa|0,i|0,V|0)|0;pa=Ik(sa|0,ra|0,i|0,V|0)|0;ra=Ik(ua|0,ta|0,i|0,V|0)|0;va=v;wa=pa;xa=ra;f[d>>2]=va;ya=d+4|0;f[ya>>2]=wa;za=d+8|0;f[za>>2]=xa;u=e;return}}function ac(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,i=0,j=0,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=Oa,M=Oa,N=Oa,O=0,P=0,Q=0,R=0;e=u;u=u+64|0;g=e+40|0;i=e+16|0;j=e;k=Id(a,c)|0;if(k|0){f[i>>2]=k;f[g>>2]=f[i>>2];lf(a,g)|0}f[j>>2]=0;k=j+4|0;f[k>>2]=0;f[j+8>>2]=0;l=d+11|0;m=b[l>>0]|0;o=d+4|0;p=f[o>>2]|0;q=m<<24>>24<0?p:m&255;if(!q){r=m;s=p;t=0}else{Fi(j,q);r=b[l>>0]|0;s=f[o>>2]|0;t=f[j>>2]|0}o=r<<24>>24<0;kh(t|0,(o?f[d>>2]|0:d)|0,(o?s:r&255)|0)|0;pj(i,c);c=i+12|0;f[c>>2]=0;r=i+16|0;f[r>>2]=0;f[i+20>>2]=0;s=f[k>>2]|0;o=f[j>>2]|0;d=s-o|0;if(!d){v=o;w=s;x=0}else{Fi(c,d);v=f[j>>2]|0;w=f[k>>2]|0;x=f[c>>2]|0}kh(x|0,v|0,w-v|0)|0;v=i+11|0;w=b[v>>0]|0;x=w<<24>>24<0;c=x?f[i>>2]|0:i;d=x?f[i+4>>2]|0:w&255;if(d>>>0>3){w=c;x=d;s=d;while(1){o=X(h[w>>0]|h[w+1>>0]<<8|h[w+2>>0]<<16|h[w+3>>0]<<24,1540483477)|0;x=(X(o>>>24^o,1540483477)|0)^(X(x,1540483477)|0);s=s+-4|0;if(s>>>0<=3)break;else w=w+4|0}w=d+-4|0;s=w&-4;y=w-s|0;z=c+(s+4)|0;A=x}else{y=d;z=c;A=d}switch(y|0){case 3:{B=h[z+2>>0]<<16^A;C=12;break}case 2:{B=A;C=12;break}case 1:{D=A;C=13;break}default:E=A}if((C|0)==12){D=h[z+1>>0]<<8^B;C=13}if((C|0)==13)E=X(D^h[z>>0],1540483477)|0;z=X(E>>>13^E,1540483477)|0;E=z>>>15^z;z=a+4|0;D=f[z>>2]|0;B=(D|0)==0;a:do if(!B){A=D+-1|0;y=(A&D|0)==0;if(!y)if(E>>>0>>0)F=E;else F=(E>>>0)%(D>>>0)|0;else F=E&A;x=f[(f[a>>2]|0)+(F<<2)>>2]|0;if((x|0)!=0?(s=f[x>>2]|0,(s|0)!=0):0){x=(d|0)==0;if(y){if(x){y=s;while(1){w=f[y+4>>2]|0;if(!((w|0)==(E|0)|(w&A|0)==(F|0))){G=F;C=54;break a}w=b[y+8+11>>0]|0;if(!((w<<24>>24<0?f[y+12>>2]|0:w&255)|0))break a;y=f[y>>2]|0;if(!y){G=F;C=54;break a}}}else H=s;while(1){y=f[H+4>>2]|0;if(!((y|0)==(E|0)|(y&A|0)==(F|0))){G=F;C=54;break a}y=H+8|0;w=b[y+11>>0]|0;o=w<<24>>24<0;t=w&255;do if(((o?f[H+12>>2]|0:t)|0)==(d|0)){w=f[y>>2]|0;if(o)if(!(Vk(w,c,d)|0))break a;else break;if((b[c>>0]|0)==(w&255)<<24>>24){w=y;l=t;q=c;do{l=l+-1|0;w=w+1|0;if(!l)break a;q=q+1|0}while((b[w>>0]|0)==(b[q>>0]|0))}}while(0);H=f[H>>2]|0;if(!H){G=F;C=54;break a}}}if(x){A=s;while(1){t=f[A+4>>2]|0;if((t|0)!=(E|0)){if(t>>>0>>0)I=t;else I=(t>>>0)%(D>>>0)|0;if((I|0)!=(F|0)){G=F;C=54;break a}}t=b[A+8+11>>0]|0;if(!((t<<24>>24<0?f[A+12>>2]|0:t&255)|0))break a;A=f[A>>2]|0;if(!A){G=F;C=54;break a}}}else J=s;while(1){A=f[J+4>>2]|0;if((A|0)!=(E|0)){if(A>>>0>>0)K=A;else K=(A>>>0)%(D>>>0)|0;if((K|0)!=(F|0)){G=F;C=54;break a}}A=J+8|0;x=b[A+11>>0]|0;t=x<<24>>24<0;y=x&255;do if(((t?f[J+12>>2]|0:y)|0)==(d|0)){x=f[A>>2]|0;if(t)if(!(Vk(x,c,d)|0))break a;else break;if((b[c>>0]|0)==(x&255)<<24>>24){x=A;o=y;q=c;do{o=o+-1|0;x=x+1|0;if(!o)break a;q=q+1|0}while((b[x>>0]|0)==(b[q>>0]|0))}}while(0);J=f[J>>2]|0;if(!J){G=F;C=54;break}}}else{G=F;C=54}}else{G=0;C=54}while(0);if((C|0)==54){oi(g,a,E,i);C=a+12|0;L=$(((f[C>>2]|0)+1|0)>>>0);M=$(D>>>0);N=$(n[a+16>>2]);do if(B|$(N*M)>>0<3|(D+-1&D|0)!=0)&1;J=~~$(W($(L/N)))>>>0;ei(a,F>>>0>>0?J:F);F=f[z>>2]|0;J=F+-1|0;if(!(J&F)){O=F;P=J&E;break}if(E>>>0>>0){O=F;P=E}else{O=F;P=(E>>>0)%(F>>>0)|0}}else{O=D;P=G}while(0);G=f[(f[a>>2]|0)+(P<<2)>>2]|0;if(!G){D=a+8|0;f[f[g>>2]>>2]=f[D>>2];f[D>>2]=f[g>>2];f[(f[a>>2]|0)+(P<<2)>>2]=D;D=f[g>>2]|0;P=f[D>>2]|0;if(!P)Q=g;else{E=f[P+4>>2]|0;P=O+-1|0;if(P&O)if(E>>>0>>0)R=E;else R=(E>>>0)%(O>>>0)|0;else R=E&P;f[(f[a>>2]|0)+(R<<2)>>2]=D;Q=g}}else{f[f[g>>2]>>2]=f[G>>2];f[G>>2]=f[g>>2];Q=g}f[C>>2]=(f[C>>2]|0)+1;f[Q>>2]=0}Q=f[i+12>>2]|0;if(Q|0){if((f[r>>2]|0)!=(Q|0))f[r>>2]=Q;Oq(Q)}if((b[v>>0]|0)<0)Oq(f[i>>2]|0);i=f[j>>2]|0;if(!i){u=e;return}if((f[k>>2]|0)!=(i|0))f[k>>2]=i;Oq(i);u=e;return}function bc(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0;d=u;u=u+192|0;e=d+152|0;g=d+144|0;h=d+72|0;i=d;j=d+112|0;k=d+108|0;l=d+104|0;m=a+352|0;if(b[m>>0]|0?(n=Qa[f[(f[a>>2]|0)+40>>2]&127](a)|0,((f[n+12>>2]|0)-(f[n+8>>2]|0)|0)>0):0){n=(Qa[f[(f[a>>2]|0)+40>>2]&127](a)|0)+8|0;o=f[f[n>>2]>>2]|0;f[e>>2]=c;n=o+4|0;p=o+8|0;q=f[p>>2]|0;if((q|0)==(f[o+12>>2]|0))Ri(n,e);else{f[q>>2]=c;f[p>>2]=q+4}q=f[e>>2]|0;r=o+16|0;s=o+20|0;o=f[s>>2]|0;t=f[r>>2]|0;v=o-t>>2;w=t;if((q|0)<(v|0)){x=w;y=q}else{t=q+1|0;f[g>>2]=-1;z=o;if(t>>>0<=v>>>0)if(t>>>0>>0?(o=w+(t<<2)|0,(o|0)!=(z|0)):0){f[s>>2]=z+(~((z+-4-o|0)>>>2)<<2);A=q;B=w}else{A=q;B=w}else{Ch(r,t-v|0,g);A=f[e>>2]|0;B=f[r>>2]|0}x=B;y=A}f[x+(y<<2)>>2]=((f[p>>2]|0)-(f[n>>2]|0)>>2)+-1;C=1;u=d;return C|0}n=(Qa[f[(f[a>>2]|0)+40>>2]&127](a)|0)+52|0;p=f[(f[(f[n>>2]|0)+84>>2]|0)+(c<<2)>>2]|0;n=(Qa[f[(f[a>>2]|0)+40>>2]&127](a)|0)+4|0;y=f[(f[(f[n>>2]|0)+8>>2]|0)+(c<<2)>>2]|0;f[g>>2]=-1;n=a+172|0;x=f[a+176>>2]|0;A=f[n>>2]|0;B=A;a:do if((x|0)==(A|0))D=-1;else{r=(x-A|0)/136|0;v=0;while(1){if((f[B+(v*136|0)>>2]|0)==(c|0))break;t=v+1|0;if(t>>>0>>0)v=t;else{D=-1;break a}}f[g>>2]=v;D=v}while(0);b:do if(!(b[m>>0]|0)){A=(f[y+56>>2]|0)==0;do if(!((p|0)==0|A)){if((p|0)==1?b[B+(D*136|0)+28>>0]|0:0)break;x=ln(88)|0;r=f[a+8>>2]|0;t=B+(D*136|0)+104|0;f[x+4>>2]=0;f[x>>2]=3564;w=x+12|0;f[w>>2]=3588;q=x+64|0;f[q>>2]=0;f[x+68>>2]=0;f[x+72>>2]=0;o=x+16|0;z=o+44|0;do{f[o>>2]=0;o=o+4|0}while((o|0)<(z|0));f[x+76>>2]=r;f[x+80>>2]=t;s=x+84|0;f[s>>2]=0;f[h>>2]=3588;E=h+4|0;F=E+4|0;f[F>>2]=0;f[F+4>>2]=0;f[F+8>>2]=0;f[F+12>>2]=0;f[F+16>>2]=0;f[F+20>>2]=0;F=B+(D*136|0)+4|0;G=i+4|0;f[G>>2]=3588;H=i+56|0;f[H>>2]=0;I=i+60|0;f[I>>2]=0;f[i+64>>2]=0;o=i+8|0;z=o+44|0;do{f[o>>2]=0;o=o+4|0}while((o|0)<(z|0));f[E>>2]=F;o=f[B+(D*136|0)+68>>2]|0;z=((f[o+4>>2]|0)-(f[o>>2]|0)>>2>>>0)/3|0;b[e>>0]=0;qh(h+8|0,z,e);Va[f[(f[h>>2]|0)+8>>2]&127](h);Df(j,h);Df(e,j);f[i>>2]=f[e+4>>2];z=i+4|0;fg(z,e)|0;f[e>>2]=3588;o=f[e+20>>2]|0;if(o|0)Oq(o);o=f[e+8>>2]|0;if(o|0)Oq(o);f[i+36>>2]=F;f[i+40>>2]=t;f[i+44>>2]=r;f[i+48>>2]=x;f[j>>2]=3588;o=f[j+20>>2]|0;if(o|0)Oq(o);o=f[j+8>>2]|0;if(o|0)Oq(o);f[s>>2]=a+72;f[x+8>>2]=f[i>>2];fg(w,z)|0;z=x+44|0;o=i+36|0;f[z>>2]=f[o>>2];f[z+4>>2]=f[o+4>>2];f[z+8>>2]=f[o+8>>2];f[z+12>>2]=f[o+12>>2];b[z+16>>0]=b[o+16>>0]|0;ng(q,f[H>>2]|0,f[I>>2]|0);o=x;z=f[H>>2]|0;if(z|0){J=f[I>>2]|0;if((J|0)!=(z|0))f[I>>2]=J+(~((J+-4-z|0)>>>2)<<2);Oq(z)}f[G>>2]=3588;z=f[i+24>>2]|0;if(z|0)Oq(z);z=f[i+12>>2]|0;if(z|0)Oq(z);f[h>>2]=3588;z=f[h+20>>2]|0;if(z|0)Oq(z);z=f[h+8>>2]|0;if(z|0)Oq(z);K=0;L=o;M=54;break b}while(0);if(!A){b[B+(D*136|0)+100>>0]=0;N=B+(D*136|0)+104|0;M=26}else M=24}else M=24;while(0);if((M|0)==24){N=a+40|0;M=26}if((M|0)==26){D=(Qa[f[(f[a>>2]|0)+40>>2]&127](a)|0)+48|0;do if((mi(f[D>>2]|0)|0)==0?(f[y+56>>2]|0)==0:0){if(b[m>>0]|0?(B=f[a+8>>2]|0,((f[B+12>>2]|0)-(f[B+8>>2]|0)|0)>4):0){M=31;break}gf(e,a,N);O=1;P=f[e>>2]|0}else M=31;while(0);if((M|0)==31){Vd(e,a,N);O=0;P=f[e>>2]|0}if(!P)Q=0;else{K=O;L=P;M=54}}if((M|0)==54){M=f[g>>2]|0;if((M|0)==-1)R=a+68|0;else R=(f[n>>2]|0)+(M*136|0)+132|0;f[R>>2]=K;K=ln(76)|0;f[k>>2]=L;rl(K,k,c);c=K;K=f[k>>2]|0;f[k>>2]=0;if(K|0)Va[f[(f[K>>2]|0)+4>>2]&127](K);K=a+188|0;k=f[K>>2]|0;if((k|0)==(f[a+192>>2]|0))Ri(a+184|0,g);else{f[k>>2]=f[g>>2];f[K>>2]=k+4}k=Qa[f[(f[a>>2]|0)+40>>2]&127](a)|0;f[l>>2]=c;a=k+12|0;K=f[a>>2]|0;if(K>>>0<(f[k+16>>2]|0)>>>0){f[l>>2]=0;f[K>>2]=c;f[a>>2]=K+4;S=l}else{Qg(k+8|0,l);S=l}l=f[S>>2]|0;f[S>>2]=0;if(!l)Q=1;else{Va[f[(f[l>>2]|0)+4>>2]&127](l);Q=1}}C=Q;u=d;return C|0}function cc(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0;d=u;u=u+192|0;e=d+152|0;g=d+144|0;h=d+72|0;i=d;j=d+112|0;k=d+108|0;l=d+104|0;m=a+288|0;if(b[m>>0]|0?(n=Qa[f[(f[a>>2]|0)+40>>2]&127](a)|0,((f[n+12>>2]|0)-(f[n+8>>2]|0)|0)>0):0){n=(Qa[f[(f[a>>2]|0)+40>>2]&127](a)|0)+8|0;o=f[f[n>>2]>>2]|0;f[e>>2]=c;n=o+4|0;p=o+8|0;q=f[p>>2]|0;if((q|0)==(f[o+12>>2]|0))Ri(n,e);else{f[q>>2]=c;f[p>>2]=q+4}q=f[e>>2]|0;r=o+16|0;s=o+20|0;o=f[s>>2]|0;t=f[r>>2]|0;v=o-t>>2;w=t;if((q|0)<(v|0)){x=w;y=q}else{t=q+1|0;f[g>>2]=-1;z=o;if(t>>>0<=v>>>0)if(t>>>0>>0?(o=w+(t<<2)|0,(o|0)!=(z|0)):0){f[s>>2]=z+(~((z+-4-o|0)>>>2)<<2);A=q;B=w}else{A=q;B=w}else{Ch(r,t-v|0,g);A=f[e>>2]|0;B=f[r>>2]|0}x=B;y=A}f[x+(y<<2)>>2]=((f[p>>2]|0)-(f[n>>2]|0)>>2)+-1;C=1;u=d;return C|0}n=(Qa[f[(f[a>>2]|0)+40>>2]&127](a)|0)+52|0;p=f[(f[(f[n>>2]|0)+84>>2]|0)+(c<<2)>>2]|0;n=(Qa[f[(f[a>>2]|0)+40>>2]&127](a)|0)+4|0;y=f[(f[(f[n>>2]|0)+8>>2]|0)+(c<<2)>>2]|0;f[g>>2]=-1;n=a+172|0;x=f[a+176>>2]|0;A=f[n>>2]|0;B=A;a:do if((x|0)==(A|0))D=-1;else{r=(x-A|0)/136|0;v=0;while(1){if((f[B+(v*136|0)>>2]|0)==(c|0))break;t=v+1|0;if(t>>>0>>0)v=t;else{D=-1;break a}}f[g>>2]=v;D=v}while(0);b:do if(!(b[m>>0]|0)){A=(f[y+56>>2]|0)==0;do if(!((p|0)==0|A)){if((p|0)==1?b[B+(D*136|0)+28>>0]|0:0)break;x=ln(88)|0;r=f[a+8>>2]|0;t=B+(D*136|0)+104|0;f[x+4>>2]=0;f[x>>2]=3564;w=x+12|0;f[w>>2]=3588;q=x+64|0;f[q>>2]=0;f[x+68>>2]=0;f[x+72>>2]=0;o=x+16|0;z=o+44|0;do{f[o>>2]=0;o=o+4|0}while((o|0)<(z|0));f[x+76>>2]=r;f[x+80>>2]=t;s=x+84|0;f[s>>2]=0;f[h>>2]=3588;E=h+4|0;F=E+4|0;f[F>>2]=0;f[F+4>>2]=0;f[F+8>>2]=0;f[F+12>>2]=0;f[F+16>>2]=0;f[F+20>>2]=0;F=B+(D*136|0)+4|0;G=i+4|0;f[G>>2]=3588;H=i+56|0;f[H>>2]=0;I=i+60|0;f[I>>2]=0;f[i+64>>2]=0;o=i+8|0;z=o+44|0;do{f[o>>2]=0;o=o+4|0}while((o|0)<(z|0));f[E>>2]=F;o=f[B+(D*136|0)+68>>2]|0;z=((f[o+4>>2]|0)-(f[o>>2]|0)>>2>>>0)/3|0;b[e>>0]=0;qh(h+8|0,z,e);Va[f[(f[h>>2]|0)+8>>2]&127](h);Df(j,h);Df(e,j);f[i>>2]=f[e+4>>2];z=i+4|0;fg(z,e)|0;f[e>>2]=3588;o=f[e+20>>2]|0;if(o|0)Oq(o);o=f[e+8>>2]|0;if(o|0)Oq(o);f[i+36>>2]=F;f[i+40>>2]=t;f[i+44>>2]=r;f[i+48>>2]=x;f[j>>2]=3588;o=f[j+20>>2]|0;if(o|0)Oq(o);o=f[j+8>>2]|0;if(o|0)Oq(o);f[s>>2]=a+72;f[x+8>>2]=f[i>>2];fg(w,z)|0;z=x+44|0;o=i+36|0;f[z>>2]=f[o>>2];f[z+4>>2]=f[o+4>>2];f[z+8>>2]=f[o+8>>2];f[z+12>>2]=f[o+12>>2];b[z+16>>0]=b[o+16>>0]|0;ng(q,f[H>>2]|0,f[I>>2]|0);o=x;z=f[H>>2]|0;if(z|0){J=f[I>>2]|0;if((J|0)!=(z|0))f[I>>2]=J+(~((J+-4-z|0)>>>2)<<2);Oq(z)}f[G>>2]=3588;z=f[i+24>>2]|0;if(z|0)Oq(z);z=f[i+12>>2]|0;if(z|0)Oq(z);f[h>>2]=3588;z=f[h+20>>2]|0;if(z|0)Oq(z);z=f[h+8>>2]|0;if(z|0)Oq(z);K=0;L=o;M=54;break b}while(0);if(!A){b[B+(D*136|0)+100>>0]=0;N=B+(D*136|0)+104|0;M=26}else M=24}else M=24;while(0);if((M|0)==24){N=a+40|0;M=26}if((M|0)==26){D=(Qa[f[(f[a>>2]|0)+40>>2]&127](a)|0)+48|0;do if((mi(f[D>>2]|0)|0)==0?(f[y+56>>2]|0)==0:0){if(b[m>>0]|0?(B=f[a+8>>2]|0,((f[B+12>>2]|0)-(f[B+8>>2]|0)|0)>4):0){M=31;break}gf(e,a,N);O=1;P=f[e>>2]|0}else M=31;while(0);if((M|0)==31){Vd(e,a,N);O=0;P=f[e>>2]|0}if(!P)Q=0;else{K=O;L=P;M=54}}if((M|0)==54){M=f[g>>2]|0;if((M|0)==-1)R=a+68|0;else R=(f[n>>2]|0)+(M*136|0)+132|0;f[R>>2]=K;K=ln(76)|0;f[k>>2]=L;rl(K,k,c);c=K;K=f[k>>2]|0;f[k>>2]=0;if(K|0)Va[f[(f[K>>2]|0)+4>>2]&127](K);K=a+188|0;k=f[K>>2]|0;if((k|0)==(f[a+192>>2]|0))Ri(a+184|0,g);else{f[k>>2]=f[g>>2];f[K>>2]=k+4}k=Qa[f[(f[a>>2]|0)+40>>2]&127](a)|0;f[l>>2]=c;a=k+12|0;K=f[a>>2]|0;if(K>>>0<(f[k+16>>2]|0)>>>0){f[l>>2]=0;f[K>>2]=c;f[a>>2]=K+4;S=l}else{Qg(k+8|0,l);S=l}l=f[S>>2]|0;f[S>>2]=0;if(!l)Q=1;else{Va[f[(f[l>>2]|0)+4>>2]&127](l);Q=1}}C=Q;u=d;return C|0}function dc(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0;c=u;u=u+16|0;d=c+8|0;e=c;g=f[b>>2]|0;if((g|0)==-1){u=c;return}h=(g>>>0)/3|0;i=a+12|0;if(f[(f[i>>2]|0)+(h>>>5<<2)>>2]&1<<(h&31)|0){u=c;return}h=a+56|0;j=f[h>>2]|0;k=a+60|0;l=f[k>>2]|0;if((l|0)==(j|0))m=j;else{n=l+(~((l+-4-j|0)>>>2)<<2)|0;f[k>>2]=n;m=n}n=a+64|0;if((m|0)==(f[n>>2]|0))Ri(h,b);else{f[m>>2]=g;f[k>>2]=m+4}m=f[a>>2]|0;g=f[b>>2]|0;j=g+1|0;if((g|0)!=-1){l=((j>>>0)%3|0|0)==0?g+-2|0:j;if((l|0)==-1)o=-1;else o=f[(f[m>>2]|0)+(l<<2)>>2]|0;l=(((g>>>0)%3|0|0)==0?2:-1)+g|0;if((l|0)==-1){p=o;q=-1}else{p=o;q=f[(f[m>>2]|0)+(l<<2)>>2]|0}}else{p=-1;q=-1}l=a+24|0;m=f[l>>2]|0;o=m+(p>>>5<<2)|0;g=1<<(p&31);j=f[o>>2]|0;if(!(j&g)){f[o>>2]=j|g;g=f[b>>2]|0;j=g+1|0;if((g|0)==-1)r=-1;else r=((j>>>0)%3|0|0)==0?g+-2|0:j;f[e>>2]=r;j=f[(f[(f[a+44>>2]|0)+96>>2]|0)+(((r>>>0)/3|0)*12|0)+(((r>>>0)%3|0)<<2)>>2]|0;r=f[a+48>>2]|0;f[d>>2]=j;g=f[r+4>>2]|0;r=g+4|0;o=f[r>>2]|0;if((o|0)==(f[g+8>>2]|0))Ri(g,d);else{f[o>>2]=j;f[r>>2]=o+4}o=a+40|0;r=f[o>>2]|0;j=r+4|0;g=f[j>>2]|0;if((g|0)==(f[r+8>>2]|0)){Ri(r,e);s=f[o>>2]|0}else{f[g>>2]=f[e>>2];f[j>>2]=g+4;s=r}r=s+24|0;f[(f[s+12>>2]|0)+(p<<2)>>2]=f[r>>2];f[r>>2]=(f[r>>2]|0)+1;t=f[l>>2]|0}else t=m;m=t+(q>>>5<<2)|0;t=1<<(q&31);r=f[m>>2]|0;if(!(r&t)){f[m>>2]=r|t;t=f[b>>2]|0;do if((t|0)!=-1)if(!((t>>>0)%3|0)){v=t+2|0;break}else{v=t+-1|0;break}else v=-1;while(0);f[e>>2]=v;t=f[(f[(f[a+44>>2]|0)+96>>2]|0)+(((v>>>0)/3|0)*12|0)+(((v>>>0)%3|0)<<2)>>2]|0;v=f[a+48>>2]|0;f[d>>2]=t;r=f[v+4>>2]|0;v=r+4|0;m=f[v>>2]|0;if((m|0)==(f[r+8>>2]|0))Ri(r,d);else{f[m>>2]=t;f[v>>2]=m+4}m=a+40|0;v=f[m>>2]|0;t=v+4|0;r=f[t>>2]|0;if((r|0)==(f[v+8>>2]|0)){Ri(v,e);w=f[m>>2]|0}else{f[r>>2]=f[e>>2];f[t>>2]=r+4;w=v}v=w+24|0;f[(f[w+12>>2]|0)+(q<<2)>>2]=f[v>>2];f[v>>2]=(f[v>>2]|0)+1}v=f[h>>2]|0;q=f[k>>2]|0;if((v|0)==(q|0)){u=c;return}w=a+44|0;r=a+48|0;t=a+40|0;m=q;q=v;while(1){v=f[m+-4>>2]|0;f[b>>2]=v;p=(v>>>0)/3|0;if((v|0)!=-1?(v=f[i>>2]|0,(f[v+(p>>>5<<2)>>2]&1<<(p&31)|0)==0):0){s=p;p=v;a:while(1){v=p+(s>>>5<<2)|0;f[v>>2]=f[v>>2]|1<<(s&31);v=f[b>>2]|0;if((v|0)==-1)x=-1;else x=f[(f[f[a>>2]>>2]|0)+(v<<2)>>2]|0;g=(f[l>>2]|0)+(x>>>5<<2)|0;j=1<<(x&31);o=f[g>>2]|0;do if(!(j&o)){y=f[a>>2]|0;z=f[(f[y+24>>2]|0)+(x<<2)>>2]|0;A=z+1|0;if(((z|0)!=-1?(B=((A>>>0)%3|0|0)==0?z+-2|0:A,(B|0)!=-1):0)?(A=f[(f[y+12>>2]|0)+(B<<2)>>2]|0,B=A+1|0,(A|0)!=-1):0)C=((((B>>>0)%3|0|0)==0?A+-2|0:B)|0)==-1;else C=1;f[g>>2]=o|j;B=f[b>>2]|0;f[e>>2]=B;A=f[(f[(f[w>>2]|0)+96>>2]|0)+(((B>>>0)/3|0)*12|0)+(((B>>>0)%3|0)<<2)>>2]|0;B=f[r>>2]|0;f[d>>2]=A;y=f[B+4>>2]|0;B=y+4|0;z=f[B>>2]|0;if((z|0)==(f[y+8>>2]|0))Ri(y,d);else{f[z>>2]=A;f[B>>2]=z+4}z=f[t>>2]|0;B=z+4|0;A=f[B>>2]|0;if((A|0)==(f[z+8>>2]|0)){Ri(z,e);D=f[t>>2]|0}else{f[A>>2]=f[e>>2];f[B>>2]=A+4;D=z}z=D+24|0;f[(f[D+12>>2]|0)+(x<<2)>>2]=f[z>>2];f[z>>2]=(f[z>>2]|0)+1;if(C){E=f[b>>2]|0;F=60;break}z=f[a>>2]|0;A=f[b>>2]|0;do if((A|0)==-1)G=-1;else{B=A+1|0;y=((B>>>0)%3|0|0)==0?A+-2|0:B;if((y|0)==-1){G=-1;break}G=f[(f[z+12>>2]|0)+(y<<2)>>2]|0}while(0);f[b>>2]=G;H=(G>>>0)/3|0}else{E=v;F=60}while(0);if((F|0)==60){F=0;v=f[a>>2]|0;if((E|0)==-1){F=61;break}j=E+1|0;o=((j>>>0)%3|0|0)==0?E+-2|0:j;if((o|0)==-1)I=-1;else I=f[(f[v+12>>2]|0)+(o<<2)>>2]|0;f[d>>2]=I;o=(((E>>>0)%3|0|0)==0?2:-1)+E|0;if((o|0)==-1)J=-1;else J=f[(f[v+12>>2]|0)+(o<<2)>>2]|0;o=(I|0)==-1;v=(I>>>0)/3|0;j=o?-1:v;g=(J|0)==-1;z=(J>>>0)/3|0;A=g?-1:z;do if(!o){y=f[i>>2]|0;if(f[y+(j>>>5<<2)>>2]&1<<(j&31)|0){F=68;break}if(g){K=I;L=v;break}if(!(f[y+(A>>>5<<2)>>2]&1<<(A&31))){F=73;break a}else{K=I;L=v}}else F=68;while(0);if((F|0)==68){F=0;if(g){F=70;break}if(!(f[(f[i>>2]|0)+(A>>>5<<2)>>2]&1<<(A&31))){K=J;L=z}else{F=70;break}}f[b>>2]=K;H=L}s=H;p=f[i>>2]|0}do if((F|0)==61){F=0;f[d>>2]=-1;F=70}else if((F|0)==73){F=0;p=f[k>>2]|0;f[p+-4>>2]=J;if((p|0)==(f[n>>2]|0)){Ri(h,d);M=f[k>>2]|0;break}else{f[p>>2]=f[d>>2];s=p+4|0;f[k>>2]=s;M=s;break}}while(0);if((F|0)==70){F=0;s=(f[k>>2]|0)+-4|0;f[k>>2]=s;M=s}N=f[h>>2]|0;O=M}else{s=m+-4|0;f[k>>2]=s;N=q;O=s}if((N|0)==(O|0))break;else{m=O;q=N}}u=c;return}function ec(a,c,e){a=a|0;c=c|0;e=e|0;var g=0,i=0,j=0,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,X=0,Y=0,Z=0,_=0,aa=0,ba=0,ca=0,da=0,ea=Oa,fa=Oa,ga=Oa,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0;g=u;u=u+48|0;i=g+12|0;j=g+32|0;k=g;l=i+16|0;f[i>>2]=0;f[i+4>>2]=0;f[i+8>>2]=0;f[i+12>>2]=0;n[l>>2]=$(1.0);m=a+80|0;o=f[m>>2]|0;f[k>>2]=0;p=k+4|0;f[p>>2]=0;f[k+8>>2]=0;if(o){if(o>>>0>1073741823)aq(k);q=o<<2;r=ln(q)|0;f[k>>2]=r;s=r+(o<<2)|0;f[k+8>>2]=s;sj(r|0,0,q|0)|0;f[p>>2]=s;s=c+48|0;q=c+40|0;o=i+4|0;t=i+12|0;v=i+8|0;w=a+40|0;x=a+64|0;y=f[e>>2]|0;e=0;z=r;A=0;B=0;C=r;D=r;E=r;while(1){r=s;F=f[r>>2]|0;G=f[r+4>>2]|0;r=q;H=un(f[r>>2]|0,f[r+4>>2]|0,y+A|0,0)|0;r=Vn(H|0,I|0,F|0,G|0)|0;G=(f[f[c>>2]>>2]|0)+r|0;r=h[G>>0]|h[G+1>>0]<<8;d[j>>1]=r;G=(r^318)&65535;a:do if(e){F=e+-1|0;H=(F&e|0)==0;if(!H)if(e>>>0>G>>>0)J=G;else J=(G>>>0)%(e>>>0)|0;else J=F&G;K=f[i>>2]|0;L=f[K+(J<<2)>>2]|0;b:do if(L|0?(M=f[L>>2]|0,M|0):0){c:do if(H){N=M;while(1){O=f[N+4>>2]|0;P=(O|0)==(G|0);if(!(P|(O&F|0)==(J|0)))break b;if(P?(d[N+8>>1]|0)==r<<16>>16:0){Q=N;break c}N=f[N>>2]|0;if(!N)break b}}else{N=M;while(1){P=f[N+4>>2]|0;if((P|0)==(G|0)){if((d[N+8>>1]|0)==r<<16>>16){Q=N;break c}}else{if(P>>>0>>0)R=P;else R=(P>>>0)%(e>>>0)|0;if((R|0)!=(J|0))break b}N=f[N>>2]|0;if(!N)break b}}while(0);f[E+(A<<2)>>2]=f[Q+12>>2];S=z;T=B;U=D;V=C;X=E;break a}while(0);if(!H)if(e>>>0>G>>>0)Y=G;else Y=(G>>>0)%(e>>>0)|0;else Y=F&G;L=f[K+(Y<<2)>>2]|0;if(!L){Z=Y;_=e;aa=0;ba=40}else{if(H){M=L;while(1){M=f[M>>2]|0;if(!M){Z=Y;_=e;aa=0;ba=40;break a}N=f[M+4>>2]|0;if(!((N|0)==(G|0)|(N&F|0)==(Y|0))){Z=Y;_=e;aa=0;ba=40;break a}if((d[M+8>>1]|0)==r<<16>>16){ba=55;break a}}}else ca=L;while(1){ca=f[ca>>2]|0;if(!ca){Z=Y;_=e;aa=0;ba=40;break a}M=f[ca+4>>2]|0;if((M|0)!=(G|0)){if(M>>>0>>0)da=M;else da=(M>>>0)%(e>>>0)|0;if((da|0)!=(Y|0)){Z=Y;_=e;aa=0;ba=40;break a}}if((d[ca+8>>1]|0)==r<<16>>16){ba=55;break}}}}else{Z=0;_=0;aa=1;ba=40}while(0);if((ba|0)==40){ba=0;L=ln(16)|0;d[L+8>>1]=r;f[L+12>>2]=B;f[L+4>>2]=G;f[L>>2]=0;ea=$(((f[t>>2]|0)+1|0)>>>0);fa=$(_>>>0);ga=$(n[l>>2]);do if(aa|$(ga*fa)>>0<3|(_+-1&_|0)!=0)&1;F=~~$(W($(ea/ga)))>>>0;Vh(i,M>>>0>>0?F:M);M=f[o>>2]|0;F=M+-1|0;if(!(F&M)){ha=M;ia=F&G;break}if(M>>>0>G>>>0){ha=M;ia=G}else{ha=M;ia=(G>>>0)%(M>>>0)|0}}else{ha=_;ia=Z}while(0);G=(f[i>>2]|0)+(ia<<2)|0;r=f[G>>2]|0;if(!r){f[L>>2]=f[v>>2];f[v>>2]=L;f[G>>2]=v;G=f[L>>2]|0;if(G|0){M=f[G+4>>2]|0;G=ha+-1|0;if(G&ha)if(M>>>0>>0)ja=M;else ja=(M>>>0)%(ha>>>0)|0;else ja=M&G;ka=(f[i>>2]|0)+(ja<<2)|0;ba=53}}else{f[L>>2]=f[r>>2];ka=r;ba=53}if((ba|0)==53){ba=0;f[ka>>2]=L}f[t>>2]=(f[t>>2]|0)+1;ba=55}if((ba|0)==55){ba=0;r=w;G=f[r>>2]|0;M=un(G|0,f[r+4>>2]|0,B|0,0)|0;kh((f[f[x>>2]>>2]|0)+M|0,j|0,G|0)|0;G=f[k>>2]|0;f[G+(A<<2)>>2]=B;S=G;T=B+1|0;U=G;V=G;X=G}G=A+1|0;la=f[m>>2]|0;if(G>>>0>=la>>>0)break;e=f[o>>2]|0;z=S;A=G;B=T;C=V;D=U;E=X}if((T|0)==(la|0))ma=V;else{V=a+84|0;if(!(b[V>>0]|0)){X=f[a+72>>2]|0;E=f[a+68>>2]|0;D=E;if((X|0)==(E|0))na=S;else{C=X-E>>2;E=0;do{X=D+(E<<2)|0;f[X>>2]=f[U+(f[X>>2]<<2)>>2];E=E+1|0}while(E>>>0>>0);na=S}}else{b[V>>0]=0;V=a+68|0;S=a+72|0;C=f[S>>2]|0;E=f[V>>2]|0;U=C-E>>2;D=E;E=C;if(la>>>0<=U>>>0)if(la>>>0>>0?(C=D+(la<<2)|0,(C|0)!=(E|0)):0){f[S>>2]=E+(~((E+-4-C|0)>>>2)<<2);oa=la}else oa=la;else{Ch(V,la-U|0,1220);oa=f[m>>2]|0}U=f[k>>2]|0;if(!oa)na=U;else{k=f[a+68>>2]|0;a=0;do{f[k+(a<<2)>>2]=f[U+(a<<2)>>2];a=a+1|0}while(a>>>0>>0);na=U}}f[m>>2]=T;ma=na}if(!ma)pa=T;else{na=f[p>>2]|0;if((na|0)!=(ma|0))f[p>>2]=na+(~((na+-4-ma|0)>>>2)<<2);Oq(ma);pa=T}}else pa=0;T=f[i+8>>2]|0;if(T|0){ma=T;do{T=ma;ma=f[ma>>2]|0;Oq(T)}while((ma|0)!=0)}ma=f[i>>2]|0;f[i>>2]=0;if(!ma){u=g;return pa|0}Oq(ma);u=g;return pa|0}function fc(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,i=0,j=0,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=Oa,K=Oa,L=Oa,M=0,N=0,O=0,P=0;e=u;u=u+64|0;g=e+40|0;i=e+16|0;j=e;k=Id(a,c)|0;if(k|0){f[i>>2]=k;f[g>>2]=f[i>>2];lf(a,g)|0}f[j>>2]=0;k=j+4|0;f[k>>2]=0;f[j+8>>2]=0;Fi(j,4);l=f[j>>2]|0;m=h[d>>0]|h[d+1>>0]<<8|h[d+2>>0]<<16|h[d+3>>0]<<24;b[l>>0]=m;b[l+1>>0]=m>>8;b[l+2>>0]=m>>16;b[l+3>>0]=m>>24;pj(i,c);c=i+12|0;f[c>>2]=0;m=i+16|0;f[m>>2]=0;f[i+20>>2]=0;l=f[k>>2]|0;d=f[j>>2]|0;o=l-d|0;if(!o){p=d;q=l;r=0}else{Fi(c,o);p=f[j>>2]|0;q=f[k>>2]|0;r=f[c>>2]|0}kh(r|0,p|0,q-p|0)|0;p=i+11|0;q=b[p>>0]|0;r=q<<24>>24<0;c=r?f[i>>2]|0:i;o=r?f[i+4>>2]|0:q&255;if(o>>>0>3){q=c;r=o;l=o;while(1){d=X(h[q>>0]|h[q+1>>0]<<8|h[q+2>>0]<<16|h[q+3>>0]<<24,1540483477)|0;r=(X(d>>>24^d,1540483477)|0)^(X(r,1540483477)|0);l=l+-4|0;if(l>>>0<=3)break;else q=q+4|0}q=o+-4|0;l=q&-4;s=q-l|0;t=c+(l+4)|0;v=r}else{s=o;t=c;v=o}switch(s|0){case 3:{w=h[t+2>>0]<<16^v;x=10;break}case 2:{w=v;x=10;break}case 1:{y=v;x=11;break}default:z=v}if((x|0)==10){y=h[t+1>>0]<<8^w;x=11}if((x|0)==11)z=X(y^h[t>>0],1540483477)|0;t=X(z>>>13^z,1540483477)|0;z=t>>>15^t;t=a+4|0;y=f[t>>2]|0;w=(y|0)==0;a:do if(!w){v=y+-1|0;s=(v&y|0)==0;if(!s)if(z>>>0>>0)A=z;else A=(z>>>0)%(y>>>0)|0;else A=z&v;r=f[(f[a>>2]|0)+(A<<2)>>2]|0;if((r|0)!=0?(l=f[r>>2]|0,(l|0)!=0):0){r=(o|0)==0;if(s){if(r){s=l;while(1){q=f[s+4>>2]|0;if(!((q|0)==(z|0)|(q&v|0)==(A|0))){B=A;x=52;break a}q=b[s+8+11>>0]|0;if(!((q<<24>>24<0?f[s+12>>2]|0:q&255)|0))break a;s=f[s>>2]|0;if(!s){B=A;x=52;break a}}}else C=l;while(1){s=f[C+4>>2]|0;if(!((s|0)==(z|0)|(s&v|0)==(A|0))){B=A;x=52;break a}s=C+8|0;q=b[s+11>>0]|0;d=q<<24>>24<0;D=q&255;do if(((d?f[C+12>>2]|0:D)|0)==(o|0)){q=f[s>>2]|0;if(d)if(!(Vk(q,c,o)|0))break a;else break;if((b[c>>0]|0)==(q&255)<<24>>24){q=s;E=D;F=c;do{E=E+-1|0;q=q+1|0;if(!E)break a;F=F+1|0}while((b[q>>0]|0)==(b[F>>0]|0))}}while(0);C=f[C>>2]|0;if(!C){B=A;x=52;break a}}}if(r){v=l;while(1){D=f[v+4>>2]|0;if((D|0)!=(z|0)){if(D>>>0>>0)G=D;else G=(D>>>0)%(y>>>0)|0;if((G|0)!=(A|0)){B=A;x=52;break a}}D=b[v+8+11>>0]|0;if(!((D<<24>>24<0?f[v+12>>2]|0:D&255)|0))break a;v=f[v>>2]|0;if(!v){B=A;x=52;break a}}}else H=l;while(1){v=f[H+4>>2]|0;if((v|0)!=(z|0)){if(v>>>0>>0)I=v;else I=(v>>>0)%(y>>>0)|0;if((I|0)!=(A|0)){B=A;x=52;break a}}v=H+8|0;r=b[v+11>>0]|0;D=r<<24>>24<0;s=r&255;do if(((D?f[H+12>>2]|0:s)|0)==(o|0)){r=f[v>>2]|0;if(D)if(!(Vk(r,c,o)|0))break a;else break;if((b[c>>0]|0)==(r&255)<<24>>24){r=v;d=s;F=c;do{d=d+-1|0;r=r+1|0;if(!d)break a;F=F+1|0}while((b[r>>0]|0)==(b[F>>0]|0))}}while(0);H=f[H>>2]|0;if(!H){B=A;x=52;break}}}else{B=A;x=52}}else{B=0;x=52}while(0);if((x|0)==52){oi(g,a,z,i);x=a+12|0;J=$(((f[x>>2]|0)+1|0)>>>0);K=$(y>>>0);L=$(n[a+16>>2]);do if(w|$(L*K)>>0<3|(y+-1&y|0)!=0)&1;H=~~$(W($(J/L)))>>>0;ei(a,A>>>0>>0?H:A);A=f[t>>2]|0;H=A+-1|0;if(!(H&A)){M=A;N=H&z;break}if(z>>>0>>0){M=A;N=z}else{M=A;N=(z>>>0)%(A>>>0)|0}}else{M=y;N=B}while(0);B=f[(f[a>>2]|0)+(N<<2)>>2]|0;if(!B){y=a+8|0;f[f[g>>2]>>2]=f[y>>2];f[y>>2]=f[g>>2];f[(f[a>>2]|0)+(N<<2)>>2]=y;y=f[g>>2]|0;N=f[y>>2]|0;if(!N)O=g;else{z=f[N+4>>2]|0;N=M+-1|0;if(N&M)if(z>>>0>>0)P=z;else P=(z>>>0)%(M>>>0)|0;else P=z&N;f[(f[a>>2]|0)+(P<<2)>>2]=y;O=g}}else{f[f[g>>2]>>2]=f[B>>2];f[B>>2]=f[g>>2];O=g}f[x>>2]=(f[x>>2]|0)+1;f[O>>2]=0}O=f[i+12>>2]|0;if(O|0){if((f[m>>2]|0)!=(O|0))f[m>>2]=O;Oq(O)}if((b[p>>0]|0)<0)Oq(f[i>>2]|0);i=f[j>>2]|0;if(!i){u=e;return}if((f[k>>2]|0)!=(i|0))f[k>>2]=i;Oq(i);u=e;return}function gc(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,X=0,Y=0,Z=0,_=0,aa=0,ba=0,ca=Oa,da=Oa,ea=Oa,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0;e=u;u=u+48|0;g=e+12|0;h=e+32|0;i=e;j=g+16|0;f[g>>2]=0;f[g+4>>2]=0;f[g+8>>2]=0;f[g+12>>2]=0;n[j>>2]=$(1.0);k=a+80|0;l=f[k>>2]|0;f[i>>2]=0;m=i+4|0;f[m>>2]=0;f[i+8>>2]=0;if(l){if(l>>>0>1073741823)aq(i);o=l<<2;p=ln(o)|0;f[i>>2]=p;q=p+(l<<2)|0;f[i+8>>2]=q;sj(p|0,0,o|0)|0;f[m>>2]=q;q=c+48|0;o=c+40|0;l=g+4|0;r=g+12|0;s=g+8|0;t=a+40|0;v=a+64|0;w=f[d>>2]|0;d=0;x=p;y=0;z=0;A=p;B=p;C=p;while(1){p=q;D=f[p>>2]|0;E=f[p+4>>2]|0;p=o;F=un(f[p>>2]|0,f[p+4>>2]|0,w+y|0,0)|0;p=Vn(F|0,I|0,D|0,E|0)|0;E=b[(f[f[c>>2]>>2]|0)+p>>0]|0;b[h>>0]=E;p=E&255^318;a:do if(d){D=d+-1|0;F=(D&d|0)==0;if(!F)if(p>>>0>>0)G=p;else G=(p>>>0)%(d>>>0)|0;else G=D&p;H=f[g>>2]|0;J=f[H+(G<<2)>>2]|0;b:do if(J|0?(K=f[J>>2]|0,K|0):0){c:do if(F){L=K;while(1){M=f[L+4>>2]|0;N=(M|0)==(p|0);if(!(N|(M&D|0)==(G|0)))break b;if(N?(b[L+8>>0]|0)==E<<24>>24:0){O=L;break c}L=f[L>>2]|0;if(!L)break b}}else{L=K;while(1){N=f[L+4>>2]|0;if((N|0)==(p|0)){if((b[L+8>>0]|0)==E<<24>>24){O=L;break c}}else{if(N>>>0>>0)P=N;else P=(N>>>0)%(d>>>0)|0;if((P|0)!=(G|0))break b}L=f[L>>2]|0;if(!L)break b}}while(0);f[C+(y<<2)>>2]=f[O+12>>2];Q=x;R=z;S=B;T=A;U=C;break a}while(0);if(!F)if(p>>>0>>0)V=p;else V=(p>>>0)%(d>>>0)|0;else V=D&p;J=f[H+(V<<2)>>2]|0;if(!J){X=V;Y=d;Z=0;_=40}else{if(F){K=J;while(1){K=f[K>>2]|0;if(!K){X=V;Y=d;Z=0;_=40;break a}L=f[K+4>>2]|0;if(!((L|0)==(p|0)|(L&D|0)==(V|0))){X=V;Y=d;Z=0;_=40;break a}if((b[K+8>>0]|0)==E<<24>>24){_=55;break a}}}else aa=J;while(1){aa=f[aa>>2]|0;if(!aa){X=V;Y=d;Z=0;_=40;break a}K=f[aa+4>>2]|0;if((K|0)!=(p|0)){if(K>>>0>>0)ba=K;else ba=(K>>>0)%(d>>>0)|0;if((ba|0)!=(V|0)){X=V;Y=d;Z=0;_=40;break a}}if((b[aa+8>>0]|0)==E<<24>>24){_=55;break}}}}else{X=0;Y=0;Z=1;_=40}while(0);if((_|0)==40){_=0;J=ln(16)|0;b[J+8>>0]=E;f[J+12>>2]=z;f[J+4>>2]=p;f[J>>2]=0;ca=$(((f[r>>2]|0)+1|0)>>>0);da=$(Y>>>0);ea=$(n[j>>2]);do if(Z|$(ea*da)>>0<3|(Y+-1&Y|0)!=0)&1;D=~~$(W($(ca/ea)))>>>0;ai(g,K>>>0>>0?D:K);K=f[l>>2]|0;D=K+-1|0;if(!(D&K)){fa=K;ga=D&p;break}if(p>>>0>>0){fa=K;ga=p}else{fa=K;ga=(p>>>0)%(K>>>0)|0}}else{fa=Y;ga=X}while(0);p=(f[g>>2]|0)+(ga<<2)|0;E=f[p>>2]|0;if(!E){f[J>>2]=f[s>>2];f[s>>2]=J;f[p>>2]=s;p=f[J>>2]|0;if(p|0){K=f[p+4>>2]|0;p=fa+-1|0;if(p&fa)if(K>>>0>>0)ha=K;else ha=(K>>>0)%(fa>>>0)|0;else ha=K&p;ia=(f[g>>2]|0)+(ha<<2)|0;_=53}}else{f[J>>2]=f[E>>2];ia=E;_=53}if((_|0)==53){_=0;f[ia>>2]=J}f[r>>2]=(f[r>>2]|0)+1;_=55}if((_|0)==55){_=0;E=t;p=f[E>>2]|0;K=un(p|0,f[E+4>>2]|0,z|0,0)|0;kh((f[f[v>>2]>>2]|0)+K|0,h|0,p|0)|0;p=f[i>>2]|0;f[p+(y<<2)>>2]=z;Q=p;R=z+1|0;S=p;T=p;U=p}p=y+1|0;ja=f[k>>2]|0;if(p>>>0>=ja>>>0)break;d=f[l>>2]|0;x=Q;y=p;z=R;A=T;B=S;C=U}if((R|0)==(ja|0))ka=T;else{T=a+84|0;if(!(b[T>>0]|0)){U=f[a+72>>2]|0;C=f[a+68>>2]|0;B=C;if((U|0)==(C|0))la=Q;else{A=U-C>>2;C=0;do{U=B+(C<<2)|0;f[U>>2]=f[S+(f[U>>2]<<2)>>2];C=C+1|0}while(C>>>0>>0);la=Q}}else{b[T>>0]=0;T=a+68|0;Q=a+72|0;A=f[Q>>2]|0;C=f[T>>2]|0;S=A-C>>2;B=C;C=A;if(ja>>>0<=S>>>0)if(ja>>>0>>0?(A=B+(ja<<2)|0,(A|0)!=(C|0)):0){f[Q>>2]=C+(~((C+-4-A|0)>>>2)<<2);ma=ja}else ma=ja;else{Ch(T,ja-S|0,1220);ma=f[k>>2]|0}S=f[i>>2]|0;if(!ma)la=S;else{i=f[a+68>>2]|0;a=0;do{f[i+(a<<2)>>2]=f[S+(a<<2)>>2];a=a+1|0}while(a>>>0>>0);la=S}}f[k>>2]=R;ka=la}if(!ka)na=R;else{la=f[m>>2]|0;if((la|0)!=(ka|0))f[m>>2]=la+(~((la+-4-ka|0)>>>2)<<2);Oq(ka);na=R}}else na=0;R=f[g+8>>2]|0;if(R|0){ka=R;do{R=ka;ka=f[ka>>2]|0;Oq(R)}while((ka|0)!=0)}ka=f[g>>2]|0;f[g>>2]=0;if(!ka){u=e;return na|0}Oq(ka);u=e;return na|0}function hc(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,i=0,j=0,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,X=0,Y=0,Z=0,_=0,aa=0,ba=0,ca=0,da=Oa,ea=Oa,fa=Oa,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0;e=u;u=u+48|0;g=e+16|0;i=e+12|0;j=e;k=g+16|0;f[g>>2]=0;f[g+4>>2]=0;f[g+8>>2]=0;f[g+12>>2]=0;n[k>>2]=$(1.0);l=a+80|0;m=f[l>>2]|0;f[j>>2]=0;o=j+4|0;f[o>>2]=0;f[j+8>>2]=0;if(m){if(m>>>0>1073741823)aq(j);p=m<<2;q=ln(p)|0;f[j>>2]=q;r=q+(m<<2)|0;f[j+8>>2]=r;sj(q|0,0,p|0)|0;f[o>>2]=r;r=c+48|0;p=c+40|0;m=g+4|0;s=g+12|0;t=g+8|0;v=a+40|0;w=a+64|0;x=f[d>>2]|0;d=0;y=q;z=0;A=0;B=q;C=q;D=q;while(1){q=r;E=f[q>>2]|0;F=f[q+4>>2]|0;q=p;G=un(f[q>>2]|0,f[q+4>>2]|0,x+z|0,0)|0;q=Vn(G|0,I|0,E|0,F|0)|0;F=(f[f[c>>2]>>2]|0)+q|0;q=h[F>>0]|h[F+1>>0]<<8|h[F+2>>0]<<16|h[F+3>>0]<<24;f[i>>2]=q;F=q^318;a:do if(d){E=d+-1|0;G=(E&d|0)==0;if(!G)if(F>>>0>>0)H=F;else H=(F>>>0)%(d>>>0)|0;else H=E&F;J=f[g>>2]|0;K=f[J+(H<<2)>>2]|0;b:do if(K|0?(L=f[K>>2]|0,L|0):0){c:do if(G){M=L;while(1){N=f[M+4>>2]|0;O=(N|0)==(F|0);if(!(O|(N&E|0)==(H|0)))break b;if(O?(f[M+8>>2]|0)==(q|0):0){P=M;break c}M=f[M>>2]|0;if(!M)break b}}else{M=L;while(1){O=f[M+4>>2]|0;if((O|0)==(F|0)){if((f[M+8>>2]|0)==(q|0)){P=M;break c}}else{if(O>>>0>>0)Q=O;else Q=(O>>>0)%(d>>>0)|0;if((Q|0)!=(H|0))break b}M=f[M>>2]|0;if(!M)break b}}while(0);f[D+(z<<2)>>2]=f[P+12>>2];R=y;S=A;T=C;U=B;V=D;break a}while(0);if(!G)if(F>>>0>>0)X=F;else X=(F>>>0)%(d>>>0)|0;else X=E&F;K=f[J+(X<<2)>>2]|0;if(!K){Y=X;Z=d;_=0;aa=40}else{if(G){L=K;while(1){L=f[L>>2]|0;if(!L){Y=X;Z=d;_=0;aa=40;break a}M=f[L+4>>2]|0;if(!((M|0)==(F|0)|(M&E|0)==(X|0))){Y=X;Z=d;_=0;aa=40;break a}if((f[L+8>>2]|0)==(q|0)){aa=55;break a}}}else ba=K;while(1){ba=f[ba>>2]|0;if(!ba){Y=X;Z=d;_=0;aa=40;break a}L=f[ba+4>>2]|0;if((L|0)!=(F|0)){if(L>>>0>>0)ca=L;else ca=(L>>>0)%(d>>>0)|0;if((ca|0)!=(X|0)){Y=X;Z=d;_=0;aa=40;break a}}if((f[ba+8>>2]|0)==(q|0)){aa=55;break}}}}else{Y=0;Z=0;_=1;aa=40}while(0);if((aa|0)==40){aa=0;K=ln(16)|0;f[K+8>>2]=q;f[K+12>>2]=A;f[K+4>>2]=F;f[K>>2]=0;da=$(((f[s>>2]|0)+1|0)>>>0);ea=$(Z>>>0);fa=$(n[k>>2]);do if(_|$(fa*ea)>>0<3|(Z+-1&Z|0)!=0)&1;E=~~$(W($(da/fa)))>>>0;Hi(g,L>>>0>>0?E:L);L=f[m>>2]|0;E=L+-1|0;if(!(E&L)){ga=L;ha=E&F;break}if(F>>>0>>0){ga=L;ha=F}else{ga=L;ha=(F>>>0)%(L>>>0)|0}}else{ga=Z;ha=Y}while(0);F=(f[g>>2]|0)+(ha<<2)|0;q=f[F>>2]|0;if(!q){f[K>>2]=f[t>>2];f[t>>2]=K;f[F>>2]=t;F=f[K>>2]|0;if(F|0){L=f[F+4>>2]|0;F=ga+-1|0;if(F&ga)if(L>>>0>>0)ia=L;else ia=(L>>>0)%(ga>>>0)|0;else ia=L&F;ja=(f[g>>2]|0)+(ia<<2)|0;aa=53}}else{f[K>>2]=f[q>>2];ja=q;aa=53}if((aa|0)==53){aa=0;f[ja>>2]=K}f[s>>2]=(f[s>>2]|0)+1;aa=55}if((aa|0)==55){aa=0;q=v;F=f[q>>2]|0;L=un(F|0,f[q+4>>2]|0,A|0,0)|0;kh((f[f[w>>2]>>2]|0)+L|0,i|0,F|0)|0;F=f[j>>2]|0;f[F+(z<<2)>>2]=A;R=F;S=A+1|0;T=F;U=F;V=F}F=z+1|0;ka=f[l>>2]|0;if(F>>>0>=ka>>>0)break;d=f[m>>2]|0;y=R;z=F;A=S;B=U;C=T;D=V}if((S|0)==(ka|0))la=U;else{U=a+84|0;if(!(b[U>>0]|0)){V=f[a+72>>2]|0;D=f[a+68>>2]|0;C=D;if((V|0)==(D|0))ma=R;else{B=V-D>>2;D=0;do{V=C+(D<<2)|0;f[V>>2]=f[T+(f[V>>2]<<2)>>2];D=D+1|0}while(D>>>0>>0);ma=R}}else{b[U>>0]=0;U=a+68|0;R=a+72|0;B=f[R>>2]|0;D=f[U>>2]|0;T=B-D>>2;C=D;D=B;if(ka>>>0<=T>>>0)if(ka>>>0>>0?(B=C+(ka<<2)|0,(B|0)!=(D|0)):0){f[R>>2]=D+(~((D+-4-B|0)>>>2)<<2);na=ka}else na=ka;else{Ch(U,ka-T|0,1220);na=f[l>>2]|0}T=f[j>>2]|0;if(!na)ma=T;else{j=f[a+68>>2]|0;a=0;do{f[j+(a<<2)>>2]=f[T+(a<<2)>>2];a=a+1|0}while(a>>>0>>0);ma=T}}f[l>>2]=S;la=ma}if(!la)oa=S;else{ma=f[o>>2]|0;if((ma|0)!=(la|0))f[o>>2]=ma+(~((ma+-4-la|0)>>>2)<<2);Oq(la);oa=S}}else oa=0;S=f[g+8>>2]|0;if(S|0){la=S;do{S=la;la=f[la>>2]|0;Oq(S)}while((la|0)!=0)}la=f[g>>2]|0;f[g>>2]=0;if(!la){u=e;return oa|0}Oq(la);u=e;return oa|0}function ic(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0;e=u;u=u+96|0;g=e+92|0;h=e+88|0;i=e+72|0;j=e+48|0;k=e+24|0;l=e;m=a+16|0;n=f[m>>2]|0;o=f[c>>2]|0;f[i>>2]=n;f[i+4>>2]=o;c=i+8|0;f[c>>2]=o;b[i+12>>0]=1;p=f[(f[n+28>>2]|0)+(o<<2)>>2]|0;n=a+20|0;q=f[n>>2]|0;r=f[q>>2]|0;if((f[q+4>>2]|0)-r>>2>>>0<=p>>>0)aq(q);q=a+8|0;s=f[(f[q>>2]|0)+(f[r+(p<<2)>>2]<<2)>>2]|0;p=a+4|0;r=f[p>>2]|0;if(!(b[r+84>>0]|0))t=f[(f[r+68>>2]|0)+(s<<2)>>2]|0;else t=s;f[j>>2]=0;f[j+4>>2]=0;f[j+8>>2]=0;f[j+12>>2]=0;f[j+16>>2]=0;f[j+20>>2]=0;f[h>>2]=t;t=b[r+24>>0]|0;f[g>>2]=f[h>>2];vb(r,g,t,j)|0;t=a+28|0;a=(f[t>>2]|0)==0;a:do if((o|0)!=-1){r=k+8|0;s=j+8|0;v=k+16|0;w=j+16|0;x=l+8|0;y=l+16|0;z=o;A=o;B=0;C=0;D=0;E=0;F=0;G=0;H=a;J=o;while(1){do if(H){K=J+1|0;if((J|0)!=-1){L=((K>>>0)%3|0|0)==0?J+-2|0:K;if((z|0)!=-1)if(!((z>>>0)%3|0)){M=z;N=z+2|0;O=L;P=z;break}else{M=z;N=z+-1|0;O=L;P=z;break}else{M=-1;N=-1;O=L;P=-1}}else{M=z;N=-1;O=-1;P=-1}}else{L=A+1|0;K=((L>>>0)%3|0|0)==0?A+-2|0:L;if(!((A>>>0)%3|0)){M=z;N=A+2|0;O=K;P=J;break}else{M=z;N=A+-1|0;O=K;P=J;break}}while(0);K=f[(f[(f[m>>2]|0)+28>>2]|0)+(O<<2)>>2]|0;Q=f[n>>2]|0;L=f[Q>>2]|0;if((f[Q+4>>2]|0)-L>>2>>>0<=K>>>0){R=17;break}S=f[(f[q>>2]|0)+(f[L+(K<<2)>>2]<<2)>>2]|0;K=f[p>>2]|0;if(!(b[K+84>>0]|0))T=f[(f[K+68>>2]|0)+(S<<2)>>2]|0;else T=S;f[k>>2]=0;f[k+4>>2]=0;f[k+8>>2]=0;f[k+12>>2]=0;f[k+16>>2]=0;f[k+20>>2]=0;f[h>>2]=T;S=b[K+24>>0]|0;f[g>>2]=f[h>>2];vb(K,g,S,k)|0;S=f[(f[(f[m>>2]|0)+28>>2]|0)+(N<<2)>>2]|0;U=f[n>>2]|0;K=f[U>>2]|0;if((f[U+4>>2]|0)-K>>2>>>0<=S>>>0){R=21;break}L=f[(f[q>>2]|0)+(f[K+(S<<2)>>2]<<2)>>2]|0;S=f[p>>2]|0;if(!(b[S+84>>0]|0))V=f[(f[S+68>>2]|0)+(L<<2)>>2]|0;else V=L;f[l>>2]=0;f[l+4>>2]=0;f[l+8>>2]=0;f[l+12>>2]=0;f[l+16>>2]=0;f[l+20>>2]=0;f[h>>2]=V;L=b[S+24>>0]|0;f[g>>2]=f[h>>2];vb(S,g,L,l)|0;L=k;S=j;K=f[S>>2]|0;W=f[S+4>>2]|0;S=Xn(f[L>>2]|0,f[L+4>>2]|0,K|0,W|0)|0;L=I;X=r;Y=s;Z=f[Y>>2]|0;_=f[Y+4>>2]|0;Y=Xn(f[X>>2]|0,f[X+4>>2]|0,Z|0,_|0)|0;X=I;$=v;aa=w;ba=f[aa>>2]|0;ca=f[aa+4>>2]|0;aa=Xn(f[$>>2]|0,f[$+4>>2]|0,ba|0,ca|0)|0;$=I;da=l;ea=Xn(f[da>>2]|0,f[da+4>>2]|0,K|0,W|0)|0;W=I;K=x;da=Xn(f[K>>2]|0,f[K+4>>2]|0,Z|0,_|0)|0;_=I;Z=y;K=Xn(f[Z>>2]|0,f[Z+4>>2]|0,ba|0,ca|0)|0;ca=I;ba=un(K|0,ca|0,Y|0,X|0)|0;Z=I;fa=un(da|0,_|0,aa|0,$|0)|0;ga=I;ha=un(ea|0,W|0,aa|0,$|0)|0;$=I;aa=un(K|0,ca|0,S|0,L|0)|0;ca=I;K=un(da|0,_|0,S|0,L|0)|0;L=I;S=un(ea|0,W|0,Y|0,X|0)|0;X=I;Y=Xn(B|0,C|0,fa|0,ga|0)|0;ga=Vn(Y|0,I|0,ba|0,Z|0)|0;Z=I;ba=Vn(ha|0,$|0,D|0,E|0)|0;$=Xn(ba|0,I|0,aa|0,ca|0)|0;ca=I;aa=Xn(F|0,G|0,S|0,X|0)|0;X=Vn(aa|0,I|0,K|0,L|0)|0;L=I;Pg(i);A=f[c>>2]|0;K=(f[t>>2]|0)==0;if((A|0)==-1){ia=K;ja=Z;ka=ga;la=ca;ma=$;na=L;oa=X;break a}else{z=M;B=ga;C=Z;D=$;E=ca;F=X;G=L;H=K;J=P}}if((R|0)==17)aq(Q);else if((R|0)==21)aq(U)}else{ia=a;ja=0;ka=0;la=0;ma=0;na=0;oa=0}while(0);a=(ja|0)>-1|(ja|0)==-1&ka>>>0>4294967295;U=Xn(0,0,ka|0,ja|0)|0;R=a?ja:I;Q=(la|0)>-1|(la|0)==-1&ma>>>0>4294967295;P=Xn(0,0,ma|0,la|0)|0;M=Q?la:I;t=(na|0)>-1|(na|0)==-1&oa>>>0>4294967295;c=Xn(0,0,oa|0,na|0)|0;i=Vn((Q?ma:P)|0,M|0,(t?oa:c)|0,(t?na:I)|0)|0;t=Vn(i|0,I|0,(a?ka:U)|0,R|0)|0;R=I;if(ia){if((t|0)<=536870912){pa=ka;qa=ma;ra=oa;f[d>>2]=pa;sa=d+4|0;f[sa>>2]=qa;ta=d+8|0;f[ta>>2]=ra;u=e;return}ia=Yn(t|0,R|0,29)|0;U=ia&7;ia=Ik(ka|0,ja|0,U|0,0)|0;a=Ik(ma|0,la|0,U|0,0)|0;i=Ik(oa|0,na|0,U|0,0)|0;pa=ia;qa=a;ra=i;f[d>>2]=pa;sa=d+4|0;f[sa>>2]=qa;ta=d+8|0;f[ta>>2]=ra;u=e;return}else{if(!((R|0)>0|(R|0)==0&t>>>0>536870912)){pa=ka;qa=ma;ra=oa;f[d>>2]=pa;sa=d+4|0;f[sa>>2]=qa;ta=d+8|0;f[ta>>2]=ra;u=e;return}i=Yn(t|0,R|0,29)|0;R=I;t=Ik(ka|0,ja|0,i|0,R|0)|0;ja=Ik(ma|0,la|0,i|0,R|0)|0;la=Ik(oa|0,na|0,i|0,R|0)|0;pa=t;qa=ja;ra=la;f[d>>2]=pa;sa=d+4|0;f[sa>>2]=qa;ta=d+8|0;f[ta>>2]=ra;u=e;return}}function jc(a,c,e){a=a|0;c=c|0;e=e|0;var g=0,i=0,j=0,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=Oa,V=Oa,X=Oa,Y=0,Z=0,_=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0;g=u;u=u+48|0;i=g+28|0;j=g+8|0;k=g;l=g+16|0;m=i+16|0;f[i>>2]=0;f[i+4>>2]=0;f[i+8>>2]=0;f[i+12>>2]=0;n[m>>2]=$(1.0);o=a+80|0;p=f[o>>2]|0;f[l>>2]=0;q=l+4|0;f[q>>2]=0;f[l+8>>2]=0;if(p){if(p>>>0>1073741823)aq(l);r=p<<2;s=ln(r)|0;f[l>>2]=s;t=s+(p<<2)|0;f[l+8>>2]=t;sj(s|0,0,r|0)|0;f[q>>2]=t;t=f[e>>2]|0;e=c+48|0;r=c+40|0;s=i+4|0;p=i+12|0;v=i+8|0;w=a+40|0;x=a+64|0;y=0;z=0;while(1){A=e;B=f[A>>2]|0;C=f[A+4>>2]|0;A=r;D=un(f[A>>2]|0,f[A+4>>2]|0,t+y|0,0)|0;A=Vn(D|0,I|0,B|0,C|0)|0;C=(f[f[c>>2]>>2]|0)+A|0;A=C;B=h[A>>0]|h[A+1>>0]<<8|h[A+2>>0]<<16|h[A+3>>0]<<24;A=C+4|0;C=h[A>>0]|h[A+1>>0]<<8|h[A+2>>0]<<16|h[A+3>>0]<<24;A=j;f[A>>2]=B;f[A+4>>2]=C;A=k;f[A>>2]=B;f[A+4>>2]=C;C=yf(i,k)|0;if(!C){A=k;B=f[A>>2]|0;D=f[A+4>>2]|0;A=B&65535;E=Yn(B|0,D|0,16)|0;F=E&65535;G=D&65535;H=Yn(B|0,D|0,48)|0;J=H&65535;K=((((A^318)&65535)+239^E&65535)+239^D&65535)+239^H&65535;H=f[s>>2]|0;E=(H|0)==0;a:do if(!E){L=H+-1|0;M=(L&H|0)==0;if(!M)if(K>>>0>>0)N=K;else N=(K>>>0)%(H>>>0)|0;else N=K&L;O=f[(f[i>>2]|0)+(N<<2)>>2]|0;if((O|0)!=0?(P=f[O>>2]|0,(P|0)!=0):0){if(M){M=P;while(1){O=f[M+4>>2]|0;if(!((O|0)==(K|0)|(O&L|0)==(N|0))){Q=N;R=31;break a}O=M+8|0;if((((d[O>>1]|0)==A<<16>>16?(d[O+2>>1]|0)==F<<16>>16:0)?(d[M+12>>1]|0)==G<<16>>16:0)?(d[O+6>>1]|0)==J<<16>>16:0)break a;M=f[M>>2]|0;if(!M){Q=N;R=31;break a}}}else S=P;while(1){M=f[S+4>>2]|0;if((M|0)!=(K|0)){if(M>>>0>>0)T=M;else T=(M>>>0)%(H>>>0)|0;if((T|0)!=(N|0)){Q=N;R=31;break a}}M=S+8|0;if((((d[M>>1]|0)==A<<16>>16?(d[M+2>>1]|0)==F<<16>>16:0)?(d[S+12>>1]|0)==G<<16>>16:0)?(d[M+6>>1]|0)==J<<16>>16:0)break a;S=f[S>>2]|0;if(!S){Q=N;R=31;break}}}else{Q=N;R=31}}else{Q=0;R=31}while(0);if((R|0)==31){R=0;J=ln(20)|0;G=J+8|0;F=G;d[F>>1]=B;d[F+2>>1]=B>>>16;F=G+4|0;d[F>>1]=D;d[F+2>>1]=D>>>16;f[J+16>>2]=z;f[J+4>>2]=K;f[J>>2]=0;U=$(((f[p>>2]|0)+1|0)>>>0);V=$(H>>>0);X=$(n[m>>2]);do if(E|$(X*V)>>0<3|(H+-1&H|0)!=0)&1;G=~~$(W($(U/X)))>>>0;Sh(i,F>>>0>>0?G:F);F=f[s>>2]|0;G=F+-1|0;if(!(G&F)){Y=F;Z=G&K;break}if(K>>>0>>0){Y=F;Z=K}else{Y=F;Z=(K>>>0)%(F>>>0)|0}}else{Y=H;Z=Q}while(0);H=(f[i>>2]|0)+(Z<<2)|0;K=f[H>>2]|0;if(!K){f[J>>2]=f[v>>2];f[v>>2]=J;f[H>>2]=v;H=f[J>>2]|0;if(H|0){E=f[H+4>>2]|0;H=Y+-1|0;if(H&Y)if(E>>>0>>0)_=E;else _=(E>>>0)%(Y>>>0)|0;else _=E&H;aa=(f[i>>2]|0)+(_<<2)|0;R=44}}else{f[J>>2]=f[K>>2];aa=K;R=44}if((R|0)==44){R=0;f[aa>>2]=J}f[p>>2]=(f[p>>2]|0)+1}K=w;H=f[K>>2]|0;E=un(H|0,f[K+4>>2]|0,z|0,0)|0;kh((f[f[x>>2]>>2]|0)+E|0,j|0,H|0)|0;H=f[l>>2]|0;f[H+(y<<2)>>2]=z;ba=z+1|0;ca=H}else{H=f[l>>2]|0;f[H+(y<<2)>>2]=f[C+16>>2];ba=z;ca=H}y=y+1|0;da=f[o>>2]|0;if(y>>>0>=da>>>0)break;else z=ba}if((ba|0)==(da|0))ea=ca;else{z=a+84|0;if(!(b[z>>0]|0)){y=f[a+72>>2]|0;j=f[a+68>>2]|0;x=j;if((y|0)==(j|0))fa=ca;else{w=y-j>>2;j=0;do{y=x+(j<<2)|0;f[y>>2]=f[ca+(f[y>>2]<<2)>>2];j=j+1|0}while(j>>>0>>0);fa=ca}}else{b[z>>0]=0;z=a+68|0;ca=a+72|0;w=f[ca>>2]|0;j=f[z>>2]|0;x=w-j>>2;y=j;j=w;if(da>>>0<=x>>>0)if(da>>>0>>0?(w=y+(da<<2)|0,(w|0)!=(j|0)):0){f[ca>>2]=j+(~((j+-4-w|0)>>>2)<<2);ga=da}else ga=da;else{Ch(z,da-x|0,1220);ga=f[o>>2]|0}x=f[l>>2]|0;if(!ga)fa=x;else{l=f[a+68>>2]|0;a=0;do{f[l+(a<<2)>>2]=f[x+(a<<2)>>2];a=a+1|0}while(a>>>0>>0);fa=x}}f[o>>2]=ba;ea=fa}if(!ea)ha=ba;else{fa=f[q>>2]|0;if((fa|0)!=(ea|0))f[q>>2]=fa+(~((fa+-4-ea|0)>>>2)<<2);Oq(ea);ha=ba}}else ha=0;ba=f[i+8>>2]|0;if(ba|0){ea=ba;do{ba=ea;ea=f[ea>>2]|0;Oq(ba)}while((ea|0)!=0)}ea=f[i>>2]|0;f[i>>2]=0;if(!ea){u=g;return ha|0}Oq(ea);u=g;return ha|0}function kc(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0;c=u;u=u+16|0;d=c+8|0;e=c;g=c+4|0;h=a+16|0;i=f[h>>2]|0;j=a+20|0;k=f[j>>2]|0;if((k|0)==(i|0))l=i;else{m=k+(~((k+-4-i|0)>>>2)<<2)|0;f[j>>2]=m;l=m}m=a+24|0;if((l|0)==(f[m>>2]|0)){Ri(h,b);n=f[h>>2]|0;o=f[j>>2]|0}else{f[l>>2]=f[b>>2];k=l+4|0;f[j>>2]=k;n=i;o=k}k=f[a+8>>2]|0;i=(f[k+100>>2]|0)-(f[k+96>>2]|0)|0;k=(i|0)/12|0;if((n|0)==(o|0)){u=c;return 1}n=a+28|0;l=(i|0)>0;i=a+164|0;p=a+12|0;q=a+76|0;r=a+80|0;s=a+72|0;t=a+152|0;v=a+84|0;w=a+272|0;x=a+276|0;y=a+268|0;z=a+168|0;A=a+140|0;B=a+120|0;C=o;do{o=f[C+-4>>2]|0;f[b>>2]=o;a:do if((o|0)!=-1?(D=(o>>>0)/3|0,E=f[n>>2]|0,(f[E+(D>>>5<<2)>>2]&1<<(D&31)|0)==0):0){if(l){D=0;F=E;b:while(1){E=D+1|0;f[i>>2]=(f[i>>2]|0)+1;G=f[b>>2]|0;H=(G|0)==-1?-1:(G>>>0)/3|0;G=F+(H>>>5<<2)|0;f[G>>2]=1<<(H&31)|f[G>>2];G=f[q>>2]|0;if((G|0)==(f[r>>2]|0))Ri(s,b);else{f[G>>2]=f[b>>2];f[q>>2]=G+4}G=f[b>>2]|0;if((G|0)==-1)I=-1;else I=f[(f[f[p>>2]>>2]|0)+(G<<2)>>2]|0;J=(f[(f[t>>2]|0)+(I<<2)>>2]|0)!=-1;K=(f[v>>2]|0)+(I>>>5<<2)|0;L=1<<(I&31);M=f[K>>2]|0;do if(!(M&L)){f[K>>2]=M|L;if(J){N=f[b>>2]|0;O=30;break}f[d>>2]=0;P=f[w>>2]|0;if((P|0)==(f[x>>2]|0))Ri(y,d);else{f[P>>2]=0;f[w>>2]=P+4}P=f[b>>2]|0;Q=P+1|0;if((P|0)!=-1?(R=((Q>>>0)%3|0|0)==0?P+-2|0:Q,(R|0)!=-1):0)S=f[(f[(f[p>>2]|0)+12>>2]|0)+(R<<2)>>2]|0;else S=-1;f[b>>2]=S}else{N=G;O=30}while(0);if((O|0)==30){O=0;G=N+1|0;if((N|0)==-1){O=35;break}L=((G>>>0)%3|0|0)==0?N+-2|0:G;if((L|0)==-1)T=-1;else T=f[(f[(f[p>>2]|0)+12>>2]|0)+(L<<2)>>2]|0;f[e>>2]=T;L=(((N>>>0)%3|0|0)==0?2:-1)+N|0;if((L|0)==-1)U=-1;else U=f[(f[(f[p>>2]|0)+12>>2]|0)+(L<<2)>>2]|0;L=(T|0)==-1;M=L?-1:(T>>>0)/3|0;V=(U|0)==-1;W=V?-1:(U>>>0)/3|0;K=((G>>>0)%3|0|0)==0?N+-2|0:G;if(((K|0)!=-1?(G=f[(f[p>>2]|0)+12>>2]|0,R=f[G+(K<<2)>>2]|0,(R|0)!=-1):0)?(K=(R>>>0)/3|0,R=f[n>>2]|0,(f[R+(K>>>5<<2)>>2]&1<<(K&31)|0)==0):0){K=(((N>>>0)%3|0|0)==0?2:-1)+N|0;do if((K|0)!=-1){Q=f[G+(K<<2)>>2]|0;if((Q|0)==-1)break;P=(Q>>>0)/3|0;if(!(f[R+(P>>>5<<2)>>2]&1<<(P&31))){O=63;break b}}while(0);if(!V)xf(a,f[i>>2]|0,H,0,W);f[d>>2]=3;R=f[w>>2]|0;if((R|0)==(f[x>>2]|0))Ri(y,d);else{f[R>>2]=3;f[w>>2]=R+4}X=f[e>>2]|0}else{if(!L){xf(a,f[i>>2]|0,H,1,M);R=f[b>>2]|0;if((R|0)==-1){O=44;break}else Y=R}else Y=N;R=(((Y>>>0)%3|0|0)==0?2:-1)+Y|0;if((R|0)==-1){O=44;break}K=f[(f[(f[p>>2]|0)+12>>2]|0)+(R<<2)>>2]|0;if((K|0)==-1){O=44;break}R=(K>>>0)/3|0;if(f[(f[n>>2]|0)+(R>>>5<<2)>>2]&1<<(R&31)|0){O=44;break}f[d>>2]=5;R=f[w>>2]|0;if((R|0)==(f[x>>2]|0))Ri(y,d);else{f[R>>2]=5;f[w>>2]=R+4}X=U}f[b>>2]=X}if((E|0)>=(k|0))break a;D=E;F=f[n>>2]|0}do if((O|0)==35){O=0;f[e>>2]=-1;O=46}else if((O|0)==44){O=0;if(V)O=46;else{xf(a,f[i>>2]|0,H,0,W);O=46}}else if((O|0)==63){O=0;f[d>>2]=1;F=f[w>>2]|0;if((F|0)==(f[x>>2]|0))Ri(y,d);else{f[F>>2]=1;f[w>>2]=F+4}f[z>>2]=(f[z>>2]|0)+1;if(J?(F=f[(f[t>>2]|0)+(I<<2)>>2]|0,(1<<(F&31)&f[(f[A>>2]|0)+(F>>>5<<2)>>2]|0)==0):0){f[g>>2]=f[b>>2];f[d>>2]=f[g>>2];Pe(a,d,0)|0}F=f[i>>2]|0;f[d>>2]=H;D=je(B,d)|0;f[D>>2]=F;F=f[j>>2]|0;f[F+-4>>2]=U;if((F|0)==(f[m>>2]|0)){Ri(h,e);break}else{f[F>>2]=f[e>>2];f[j>>2]=F+4;break}}while(0);if((O|0)==46){O=0;f[d>>2]=7;F=f[w>>2]|0;if((F|0)==(f[x>>2]|0))Ri(y,d);else{f[F>>2]=7;f[w>>2]=F+4}f[j>>2]=(f[j>>2]|0)+-4}}}else O=11;while(0);if((O|0)==11){O=0;f[j>>2]=C+-4}C=f[j>>2]|0}while((f[h>>2]|0)!=(C|0));u=c;return 1}function lc(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,i=0,j=0,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=Oa,V=Oa,X=Oa,Y=0,Z=0,_=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0;e=u;u=u+48|0;g=e+20|0;i=e+16|0;j=e+12|0;k=e;l=g+16|0;f[g>>2]=0;f[g+4>>2]=0;f[g+8>>2]=0;f[g+12>>2]=0;n[l>>2]=$(1.0);m=a+80|0;o=f[m>>2]|0;f[k>>2]=0;p=k+4|0;f[p>>2]=0;f[k+8>>2]=0;if(o){if(o>>>0>1073741823)aq(k);q=o<<2;r=ln(q)|0;f[k>>2]=r;s=r+(o<<2)|0;f[k+8>>2]=s;sj(r|0,0,q|0)|0;f[p>>2]=s;s=f[d>>2]|0;d=c+48|0;q=c+40|0;r=g+4|0;o=g+12|0;t=g+8|0;v=a+40|0;w=a+64|0;x=0;y=0;while(1){z=d;A=f[z>>2]|0;B=f[z+4>>2]|0;z=q;C=un(f[z>>2]|0,f[z+4>>2]|0,s+x|0,0)|0;z=Vn(C|0,I|0,A|0,B|0)|0;B=(f[f[c>>2]>>2]|0)+z|0;z=h[B>>0]|h[B+1>>0]<<8|h[B+2>>0]<<16|h[B+3>>0]<<24;f[i>>2]=z;f[j>>2]=z;z=Ef(g,j)|0;if(!z){B=f[j>>2]|0;A=B&255;C=B>>>8;D=C&255;E=B>>>16;F=E&255;G=B>>>24;H=G&255;J=C&255;C=E&255;E=(((B&255^318)+239^J)+239^C)+239^G;G=f[r>>2]|0;K=(G|0)==0;a:do if(!K){L=G+-1|0;M=(L&G|0)==0;if(!M)if(E>>>0>>0)N=E;else N=(E>>>0)%(G>>>0)|0;else N=E&L;O=f[(f[g>>2]|0)+(N<<2)>>2]|0;if((O|0)!=0?(P=f[O>>2]|0,(P|0)!=0):0){if(M){M=P;while(1){O=f[M+4>>2]|0;if(!((O|0)==(E|0)|(O&L|0)==(N|0))){Q=N;R=31;break a}O=M+8|0;if((((b[O>>0]|0)==A<<24>>24?(b[O+1>>0]|0)==D<<24>>24:0)?(b[O+2>>0]|0)==F<<24>>24:0)?(b[O+3>>0]|0)==H<<24>>24:0)break a;M=f[M>>2]|0;if(!M){Q=N;R=31;break a}}}else S=P;while(1){M=f[S+4>>2]|0;if((M|0)!=(E|0)){if(M>>>0>>0)T=M;else T=(M>>>0)%(G>>>0)|0;if((T|0)!=(N|0)){Q=N;R=31;break a}}M=S+8|0;if((((b[M>>0]|0)==A<<24>>24?(b[M+1>>0]|0)==D<<24>>24:0)?(b[M+2>>0]|0)==F<<24>>24:0)?(b[M+3>>0]|0)==H<<24>>24:0)break a;S=f[S>>2]|0;if(!S){Q=N;R=31;break}}}else{Q=N;R=31}}else{Q=0;R=31}while(0);if((R|0)==31){R=0;H=ln(16)|0;F=H+8|0;D=B&-16776961|C<<16|J<<8;b[F>>0]=D;b[F+1>>0]=D>>8;b[F+2>>0]=D>>16;b[F+3>>0]=D>>24;f[H+12>>2]=y;f[H+4>>2]=E;f[H>>2]=0;U=$(((f[o>>2]|0)+1|0)>>>0);V=$(G>>>0);X=$(n[l>>2]);do if(K|$(X*V)>>0<3|(G+-1&G|0)!=0)&1;F=~~$(W($(U/X)))>>>0;Zh(g,D>>>0>>0?F:D);D=f[r>>2]|0;F=D+-1|0;if(!(F&D)){Y=D;Z=F&E;break}if(E>>>0>>0){Y=D;Z=E}else{Y=D;Z=(E>>>0)%(D>>>0)|0}}else{Y=G;Z=Q}while(0);G=(f[g>>2]|0)+(Z<<2)|0;E=f[G>>2]|0;if(!E){f[H>>2]=f[t>>2];f[t>>2]=H;f[G>>2]=t;G=f[H>>2]|0;if(G|0){K=f[G+4>>2]|0;G=Y+-1|0;if(G&Y)if(K>>>0>>0)_=K;else _=(K>>>0)%(Y>>>0)|0;else _=K&G;aa=(f[g>>2]|0)+(_<<2)|0;R=44}}else{f[H>>2]=f[E>>2];aa=E;R=44}if((R|0)==44){R=0;f[aa>>2]=H}f[o>>2]=(f[o>>2]|0)+1}E=v;G=f[E>>2]|0;K=un(G|0,f[E+4>>2]|0,y|0,0)|0;kh((f[f[w>>2]>>2]|0)+K|0,i|0,G|0)|0;G=f[k>>2]|0;f[G+(x<<2)>>2]=y;ba=y+1|0;ca=G}else{G=f[k>>2]|0;f[G+(x<<2)>>2]=f[z+12>>2];ba=y;ca=G}x=x+1|0;da=f[m>>2]|0;if(x>>>0>=da>>>0)break;else y=ba}if((ba|0)==(da|0))ea=ca;else{y=a+84|0;if(!(b[y>>0]|0)){x=f[a+72>>2]|0;i=f[a+68>>2]|0;w=i;if((x|0)==(i|0))fa=ca;else{v=x-i>>2;i=0;do{x=w+(i<<2)|0;f[x>>2]=f[ca+(f[x>>2]<<2)>>2];i=i+1|0}while(i>>>0>>0);fa=ca}}else{b[y>>0]=0;y=a+68|0;ca=a+72|0;v=f[ca>>2]|0;i=f[y>>2]|0;w=v-i>>2;x=i;i=v;if(da>>>0<=w>>>0)if(da>>>0>>0?(v=x+(da<<2)|0,(v|0)!=(i|0)):0){f[ca>>2]=i+(~((i+-4-v|0)>>>2)<<2);ga=da}else ga=da;else{Ch(y,da-w|0,1220);ga=f[m>>2]|0}w=f[k>>2]|0;if(!ga)fa=w;else{k=f[a+68>>2]|0;a=0;do{f[k+(a<<2)>>2]=f[w+(a<<2)>>2];a=a+1|0}while(a>>>0>>0);fa=w}}f[m>>2]=ba;ea=fa}if(!ea)ha=ba;else{fa=f[p>>2]|0;if((fa|0)!=(ea|0))f[p>>2]=fa+(~((fa+-4-ea|0)>>>2)<<2);Oq(ea);ha=ba}}else ha=0;ba=f[g+8>>2]|0;if(ba|0){ea=ba;do{ba=ea;ea=f[ea>>2]|0;Oq(ba)}while((ea|0)!=0)}ea=f[g>>2]|0;f[g>>2]=0;if(!ea){u=e;return ha|0}Oq(ea);u=e;return ha|0}function mc(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=Oa,V=Oa,X=Oa,Y=0,Z=0,_=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0;e=u;u=u+80|0;g=e+48|0;h=e+32|0;i=e+16|0;j=e;k=g+16|0;f[g>>2]=0;f[g+4>>2]=0;f[g+8>>2]=0;f[g+12>>2]=0;n[k>>2]=$(1.0);l=a+80|0;m=f[l>>2]|0;f[j>>2]=0;o=j+4|0;f[o>>2]=0;f[j+8>>2]=0;if(m){if(m>>>0>1073741823)aq(j);p=m<<2;q=ln(p)|0;f[j>>2]=q;r=q+(m<<2)|0;f[j+8>>2]=r;sj(q|0,0,p|0)|0;f[o>>2]=r;r=f[d>>2]|0;d=c+48|0;p=c+40|0;q=i+4|0;m=i+8|0;s=i+12|0;t=g+4|0;v=g+12|0;w=g+8|0;x=a+40|0;y=a+64|0;z=0;A=0;while(1){B=d;C=f[B>>2]|0;D=f[B+4>>2]|0;B=p;E=un(f[B>>2]|0,f[B+4>>2]|0,r+A|0,0)|0;B=Vn(E|0,I|0,C|0,D|0)|0;D=(f[f[c>>2]>>2]|0)+B|0;B=h;C=D;E=B+16|0;do{b[B>>0]=b[C>>0]|0;B=B+1|0;C=C+1|0}while((B|0)<(E|0));im(i|0,D|0,16)|0;C=Vf(g,i)|0;if(!C){B=f[i>>2]|0;E=f[q>>2]|0;F=f[m>>2]|0;G=f[s>>2]|0;H=(((B^318)+239^E)+239^F)+239^G;J=f[t>>2]|0;K=(J|0)==0;a:do if(!K){L=J+-1|0;M=(L&J|0)==0;if(!M)if(H>>>0>>0)N=H;else N=(H>>>0)%(J>>>0)|0;else N=H&L;O=f[(f[g>>2]|0)+(N<<2)>>2]|0;if((O|0)!=0?(P=f[O>>2]|0,(P|0)!=0):0){if(M){M=P;while(1){O=f[M+4>>2]|0;if(!((O|0)==(H|0)|(O&L|0)==(N|0))){Q=N;R=31;break a}if((((f[M+8>>2]|0)==(B|0)?(f[M+12>>2]|0)==(E|0):0)?(f[M+16>>2]|0)==(F|0):0)?(f[M+20>>2]|0)==(G|0):0)break a;M=f[M>>2]|0;if(!M){Q=N;R=31;break a}}}else S=P;while(1){M=f[S+4>>2]|0;if((M|0)!=(H|0)){if(M>>>0>>0)T=M;else T=(M>>>0)%(J>>>0)|0;if((T|0)!=(N|0)){Q=N;R=31;break a}}if((((f[S+8>>2]|0)==(B|0)?(f[S+12>>2]|0)==(E|0):0)?(f[S+16>>2]|0)==(F|0):0)?(f[S+20>>2]|0)==(G|0):0)break a;S=f[S>>2]|0;if(!S){Q=N;R=31;break}}}else{Q=N;R=31}}else{Q=0;R=31}while(0);if((R|0)==31){R=0;D=ln(28)|0;f[D+8>>2]=B;f[D+12>>2]=E;f[D+16>>2]=F;f[D+20>>2]=G;f[D+24>>2]=z;f[D+4>>2]=H;f[D>>2]=0;U=$(((f[v>>2]|0)+1|0)>>>0);V=$(J>>>0);X=$(n[k>>2]);do if(K|$(X*V)>>0<3|(J+-1&J|0)!=0)&1;M=~~$(W($(U/X)))>>>0;Wh(g,P>>>0>>0?M:P);P=f[t>>2]|0;M=P+-1|0;if(!(M&P)){Y=P;Z=M&H;break}if(H>>>0

>>0){Y=P;Z=H}else{Y=P;Z=(H>>>0)%(P>>>0)|0}}else{Y=J;Z=Q}while(0);J=(f[g>>2]|0)+(Z<<2)|0;H=f[J>>2]|0;if(!H){f[D>>2]=f[w>>2];f[w>>2]=D;f[J>>2]=w;J=f[D>>2]|0;if(J|0){K=f[J+4>>2]|0;J=Y+-1|0;if(J&Y)if(K>>>0>>0)_=K;else _=(K>>>0)%(Y>>>0)|0;else _=K&J;aa=(f[g>>2]|0)+(_<<2)|0;R=44}}else{f[D>>2]=f[H>>2];aa=H;R=44}if((R|0)==44){R=0;f[aa>>2]=D}f[v>>2]=(f[v>>2]|0)+1}H=x;J=f[H>>2]|0;K=un(J|0,f[H+4>>2]|0,z|0,0)|0;kh((f[f[y>>2]>>2]|0)+K|0,h|0,J|0)|0;J=f[j>>2]|0;f[J+(A<<2)>>2]=z;ba=z+1|0;ca=J}else{J=f[j>>2]|0;f[J+(A<<2)>>2]=f[C+24>>2];ba=z;ca=J}A=A+1|0;da=f[l>>2]|0;if(A>>>0>=da>>>0)break;else z=ba}if((ba|0)==(da|0))ea=ca;else{z=a+84|0;if(!(b[z>>0]|0)){A=f[a+72>>2]|0;h=f[a+68>>2]|0;y=h;if((A|0)==(h|0))fa=ca;else{x=A-h>>2;h=0;do{A=y+(h<<2)|0;f[A>>2]=f[ca+(f[A>>2]<<2)>>2];h=h+1|0}while(h>>>0>>0);fa=ca}}else{b[z>>0]=0;z=a+68|0;ca=a+72|0;x=f[ca>>2]|0;h=f[z>>2]|0;y=x-h>>2;A=h;h=x;if(da>>>0<=y>>>0)if(da>>>0>>0?(x=A+(da<<2)|0,(x|0)!=(h|0)):0){f[ca>>2]=h+(~((h+-4-x|0)>>>2)<<2);ga=da}else ga=da;else{Ch(z,da-y|0,1220);ga=f[l>>2]|0}y=f[j>>2]|0;if(!ga)fa=y;else{j=f[a+68>>2]|0;a=0;do{f[j+(a<<2)>>2]=f[y+(a<<2)>>2];a=a+1|0}while(a>>>0>>0);fa=y}}f[l>>2]=ba;ea=fa}if(!ea)ha=ba;else{fa=f[o>>2]|0;if((fa|0)!=(ea|0))f[o>>2]=fa+(~((fa+-4-ea|0)>>>2)<<2);Oq(ea);ha=ba}}else ha=0;ba=f[g+8>>2]|0;if(ba|0){ea=ba;do{ba=ea;ea=f[ea>>2]|0;Oq(ba)}while((ea|0)!=0)}ea=f[g>>2]|0;f[g>>2]=0;if(!ea){u=e;return ha|0}Oq(ea);u=e;return ha|0}function nc(a,c,e){a=a|0;c=c|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=Oa,T=Oa,U=Oa,V=0,X=0,Y=0,Z=0,_=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0;g=u;u=u+48|0;h=g+12|0;i=g+38|0;j=g+32|0;k=g;l=h+16|0;f[h>>2]=0;f[h+4>>2]=0;f[h+8>>2]=0;f[h+12>>2]=0;n[l>>2]=$(1.0);m=a+80|0;o=f[m>>2]|0;f[k>>2]=0;p=k+4|0;f[p>>2]=0;f[k+8>>2]=0;if(o){if(o>>>0>1073741823)aq(k);q=o<<2;r=ln(q)|0;f[k>>2]=r;s=r+(o<<2)|0;f[k+8>>2]=s;sj(r|0,0,q|0)|0;f[p>>2]=s;s=f[e>>2]|0;e=c+48|0;q=c+40|0;r=j+2|0;o=j+4|0;t=h+4|0;v=h+12|0;w=h+8|0;x=a+40|0;y=a+64|0;z=0;A=0;while(1){B=e;C=f[B>>2]|0;D=f[B+4>>2]|0;B=q;E=un(f[B>>2]|0,f[B+4>>2]|0,s+A|0,0)|0;B=Vn(E|0,I|0,C|0,D|0)|0;D=(f[f[c>>2]>>2]|0)+B|0;b[i>>0]=b[D>>0]|0;b[i+1>>0]=b[D+1>>0]|0;b[i+2>>0]=b[D+2>>0]|0;b[i+3>>0]=b[D+3>>0]|0;b[i+4>>0]=b[D+4>>0]|0;b[i+5>>0]=b[D+5>>0]|0;im(j|0,D|0,6)|0;D=dg(h,j)|0;if(!D){B=d[j>>1]|0;C=d[r>>1]|0;E=d[o>>1]|0;F=(((B^318)&65535)+239^C&65535)+239^E&65535;G=f[t>>2]|0;H=(G|0)==0;a:do if(!H){J=G+-1|0;K=(J&G|0)==0;if(!K)if(F>>>0>>0)L=F;else L=(F>>>0)%(G>>>0)|0;else L=F&J;M=f[(f[h>>2]|0)+(L<<2)>>2]|0;if((M|0)!=0?(N=f[M>>2]|0,(N|0)!=0):0){if(K){K=N;while(1){M=f[K+4>>2]|0;if(!((M|0)==(F|0)|(M&J|0)==(L|0))){O=L;P=29;break a}M=K+8|0;if(((d[M>>1]|0)==B<<16>>16?(d[M+2>>1]|0)==C<<16>>16:0)?(d[K+12>>1]|0)==E<<16>>16:0)break a;K=f[K>>2]|0;if(!K){O=L;P=29;break a}}}else Q=N;while(1){K=f[Q+4>>2]|0;if((K|0)!=(F|0)){if(K>>>0>>0)R=K;else R=(K>>>0)%(G>>>0)|0;if((R|0)!=(L|0)){O=L;P=29;break a}}K=Q+8|0;if(((d[K>>1]|0)==B<<16>>16?(d[K+2>>1]|0)==C<<16>>16:0)?(d[Q+12>>1]|0)==E<<16>>16:0)break a;Q=f[Q>>2]|0;if(!Q){O=L;P=29;break}}}else{O=L;P=29}}else{O=0;P=29}while(0);if((P|0)==29){P=0;N=ln(20)|0;d[N+8>>1]=B;d[N+10>>1]=C;d[N+12>>1]=E;f[N+16>>2]=z;f[N+4>>2]=F;f[N>>2]=0;S=$(((f[v>>2]|0)+1|0)>>>0);T=$(G>>>0);U=$(n[l>>2]);do if(H|$(U*T)>>0<3|(G+-1&G|0)!=0)&1;J=~~$(W($(S/U)))>>>0;Th(h,K>>>0>>0?J:K);K=f[t>>2]|0;J=K+-1|0;if(!(J&K)){V=K;X=J&F;break}if(F>>>0>>0){V=K;X=F}else{V=K;X=(F>>>0)%(K>>>0)|0}}else{V=G;X=O}while(0);G=(f[h>>2]|0)+(X<<2)|0;F=f[G>>2]|0;if(!F){f[N>>2]=f[w>>2];f[w>>2]=N;f[G>>2]=w;G=f[N>>2]|0;if(G|0){H=f[G+4>>2]|0;G=V+-1|0;if(G&V)if(H>>>0>>0)Y=H;else Y=(H>>>0)%(V>>>0)|0;else Y=H&G;Z=(f[h>>2]|0)+(Y<<2)|0;P=42}}else{f[N>>2]=f[F>>2];Z=F;P=42}if((P|0)==42){P=0;f[Z>>2]=N}f[v>>2]=(f[v>>2]|0)+1}F=x;G=f[F>>2]|0;H=un(G|0,f[F+4>>2]|0,z|0,0)|0;kh((f[f[y>>2]>>2]|0)+H|0,i|0,G|0)|0;G=f[k>>2]|0;f[G+(A<<2)>>2]=z;_=z+1|0;aa=G}else{G=f[k>>2]|0;f[G+(A<<2)>>2]=f[D+16>>2];_=z;aa=G}A=A+1|0;ba=f[m>>2]|0;if(A>>>0>=ba>>>0)break;else z=_}if((_|0)==(ba|0))ca=aa;else{z=a+84|0;if(!(b[z>>0]|0)){A=f[a+72>>2]|0;i=f[a+68>>2]|0;y=i;if((A|0)==(i|0))da=aa;else{x=A-i>>2;i=0;do{A=y+(i<<2)|0;f[A>>2]=f[aa+(f[A>>2]<<2)>>2];i=i+1|0}while(i>>>0>>0);da=aa}}else{b[z>>0]=0;z=a+68|0;aa=a+72|0;x=f[aa>>2]|0;i=f[z>>2]|0;y=x-i>>2;A=i;i=x;if(ba>>>0<=y>>>0)if(ba>>>0>>0?(x=A+(ba<<2)|0,(x|0)!=(i|0)):0){f[aa>>2]=i+(~((i+-4-x|0)>>>2)<<2);ea=ba}else ea=ba;else{Ch(z,ba-y|0,1220);ea=f[m>>2]|0}y=f[k>>2]|0;if(!ea)da=y;else{k=f[a+68>>2]|0;a=0;do{f[k+(a<<2)>>2]=f[y+(a<<2)>>2];a=a+1|0}while(a>>>0>>0);da=y}}f[m>>2]=_;ca=da}if(!ca)fa=_;else{da=f[p>>2]|0;if((da|0)!=(ca|0))f[p>>2]=da+(~((da+-4-ca|0)>>>2)<<2);Oq(ca);fa=_}}else fa=0;_=f[h+8>>2]|0;if(_|0){ca=_;do{_=ca;ca=f[ca>>2]|0;Oq(_)}while((ca|0)!=0)}ca=f[h>>2]|0;f[h>>2]=0;if(!ca){u=g;return fa|0}Oq(ca);u=g;return fa|0}function oc(a,b,c,d,e,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,Y=0,Z=0,_=0;g=a+8|0;Mh(g,b,d,e);d=f[a+48>>2]|0;h=f[a+52>>2]|0;i=e>>>0>1073741823?-1:e<<2;j=Lq(i)|0;sj(j|0,0,i|0)|0;k=Lq(i)|0;sj(k|0,0,i|0)|0;i=f[a+56>>2]|0;l=i+4|0;m=f[l>>2]|0;n=f[i>>2]|0;o=m-n|0;a:do if((o|0)>4){p=o>>2;q=(e|0)>0;r=a+16|0;s=a+32|0;t=a+12|0;u=a+28|0;v=a+20|0;w=a+24|0;x=d+12|0;y=e<<2;z=p+-1|0;if(m-n>>2>>>0>z>>>0){A=p;B=z;C=n}else aq(i);while(1){z=f[C+(B<<2)>>2]|0;if(q)sj(j|0,0,y|0)|0;if((z|0)!=-1){p=f[x>>2]|0;D=0;E=z;while(1){F=f[p+(E<<2)>>2]|0;if((F|0)!=-1){G=f[d>>2]|0;H=f[h>>2]|0;I=f[H+(f[G+(F<<2)>>2]<<2)>>2]|0;J=F+1|0;K=((J>>>0)%3|0|0)==0?F+-2|0:J;if((K|0)==-1)L=-1;else L=f[G+(K<<2)>>2]|0;K=f[H+(L<<2)>>2]|0;J=(((F>>>0)%3|0|0)==0?2:-1)+F|0;if((J|0)==-1)M=-1;else M=f[G+(J<<2)>>2]|0;J=f[H+(M<<2)>>2]|0;if((I|0)<(B|0)&(K|0)<(B|0)&(J|0)<(B|0)){H=X(I,e)|0;I=X(K,e)|0;K=X(J,e)|0;if(q){J=0;do{f[k+(J<<2)>>2]=(f[b+(J+K<<2)>>2]|0)+(f[b+(J+I<<2)>>2]|0)-(f[b+(J+H<<2)>>2]|0);J=J+1|0}while((J|0)!=(e|0));if(q){J=0;do{H=j+(J<<2)|0;f[H>>2]=(f[H>>2]|0)+(f[k+(J<<2)>>2]|0);J=J+1|0}while((J|0)!=(e|0))}}N=D+1|0}else N=D}else N=D;J=(((E>>>0)%3|0|0)==0?2:-1)+E|0;do if((J|0)!=-1?(H=f[p+(J<<2)>>2]|0,(H|0)!=-1):0)if(!((H>>>0)%3|0)){O=H+2|0;break}else{O=H+-1|0;break}else O=-1;while(0);E=(O|0)==(z|0)?-1:O;if((E|0)==-1)break;else D=N}D=X(B,e)|0;if(N){if(q){E=0;do{z=j+(E<<2)|0;f[z>>2]=(f[z>>2]|0)/(N|0)|0;E=E+1|0}while((E|0)!=(e|0))}E=b+(D<<2)|0;z=c+(D<<2)|0;p=f[g>>2]|0;if((p|0)>0){J=0;H=j;I=p;while(1){if((I|0)>0){p=0;do{K=f[H+(p<<2)>>2]|0;G=f[r>>2]|0;if((K|0)>(G|0)){F=f[s>>2]|0;f[F+(p<<2)>>2]=G;P=F}else{F=f[t>>2]|0;G=f[s>>2]|0;f[G+(p<<2)>>2]=(K|0)<(F|0)?F:K;P=G}p=p+1|0}while((p|0)<(f[g>>2]|0));Q=P}else Q=f[s>>2]|0;p=(f[E+(J<<2)>>2]|0)-(f[Q+(J<<2)>>2]|0)|0;G=z+(J<<2)|0;f[G>>2]=p;if((p|0)>=(f[u>>2]|0)){if((p|0)>(f[w>>2]|0)){R=p-(f[v>>2]|0)|0;S=57}}else{R=(f[v>>2]|0)+p|0;S=57}if((S|0)==57){S=0;f[G>>2]=R}J=J+1|0;I=f[g>>2]|0;if((J|0)>=(I|0))break;else H=Q}}}else{T=D;S=30}}else{T=X(B,e)|0;S=30}if((S|0)==30?(S=0,H=b+(T<<2)|0,I=c+(T<<2)|0,J=f[g>>2]|0,(J|0)>0):0){z=0;E=b+((X(A+-2|0,e)|0)<<2)|0;G=J;while(1){if((G|0)>0){J=0;do{p=f[E+(J<<2)>>2]|0;K=f[r>>2]|0;if((p|0)>(K|0)){F=f[s>>2]|0;f[F+(J<<2)>>2]=K;U=F}else{F=f[t>>2]|0;K=f[s>>2]|0;f[K+(J<<2)>>2]=(p|0)<(F|0)?F:p;U=K}J=J+1|0}while((J|0)<(f[g>>2]|0));V=U}else V=f[s>>2]|0;J=(f[H+(z<<2)>>2]|0)-(f[V+(z<<2)>>2]|0)|0;K=I+(z<<2)|0;f[K>>2]=J;if((J|0)>=(f[u>>2]|0)){if((J|0)>(f[w>>2]|0)){W=J-(f[v>>2]|0)|0;S=42}}else{W=(f[v>>2]|0)+J|0;S=42}if((S|0)==42){S=0;f[K>>2]=W}z=z+1|0;G=f[g>>2]|0;if((z|0)>=(G|0))break;else E=V}}if((A|0)<=2)break a;C=f[i>>2]|0;E=B+-1|0;if((f[l>>2]|0)-C>>2>>>0<=E>>>0)break;else{G=B;B=E;A=G}}aq(i)}while(0);if((e|0)>0)sj(j|0,0,e<<2|0)|0;e=f[g>>2]|0;if((e|0)<=0){Mq(k);Mq(j);return 1}i=a+16|0;A=a+32|0;B=a+12|0;C=a+28|0;l=a+20|0;V=a+24|0;a=0;W=j;U=e;while(1){if((U|0)>0){e=0;do{T=f[W+(e<<2)>>2]|0;Q=f[i>>2]|0;if((T|0)>(Q|0)){R=f[A>>2]|0;f[R+(e<<2)>>2]=Q;Y=R}else{R=f[B>>2]|0;Q=f[A>>2]|0;f[Q+(e<<2)>>2]=(T|0)<(R|0)?R:T;Y=Q}e=e+1|0}while((e|0)<(f[g>>2]|0));Z=Y}else Z=f[A>>2]|0;e=(f[b+(a<<2)>>2]|0)-(f[Z+(a<<2)>>2]|0)|0;Q=c+(a<<2)|0;f[Q>>2]=e;if((e|0)>=(f[C>>2]|0)){if((e|0)>(f[V>>2]|0)){_=e-(f[l>>2]|0)|0;S=72}}else{_=(f[l>>2]|0)+e|0;S=72}if((S|0)==72){S=0;f[Q>>2]=_}a=a+1|0;U=f[g>>2]|0;if((a|0)>=(U|0))break;else W=Z}Mq(k);Mq(j);return 1}function pc(a,b,c,d,e,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,Y=0,Z=0;g=a+8|0;Mh(g,b,d,e);d=f[a+48>>2]|0;h=f[a+52>>2]|0;i=e>>>0>1073741823?-1:e<<2;j=Lq(i)|0;sj(j|0,0,i|0)|0;k=Lq(i)|0;sj(k|0,0,i|0)|0;i=f[a+56>>2]|0;l=i+4|0;m=f[l>>2]|0;n=f[i>>2]|0;o=m-n|0;a:do if((o|0)>4){p=o>>2;q=(e|0)>0;r=a+16|0;s=a+32|0;t=a+12|0;u=a+28|0;v=a+20|0;w=a+24|0;x=d+64|0;y=d+28|0;z=e<<2;A=p+-1|0;if(m-n>>2>>>0>A>>>0){B=p;C=A;D=n}else aq(i);while(1){A=f[D+(C<<2)>>2]|0;if(q)sj(j|0,0,z|0)|0;if((A|0)!=-1){p=f[d>>2]|0;E=0;F=A;while(1){if(((f[p+(F>>>5<<2)>>2]&1<<(F&31)|0)==0?(G=f[(f[(f[x>>2]|0)+12>>2]|0)+(F<<2)>>2]|0,(G|0)!=-1):0)?(H=f[y>>2]|0,I=f[h>>2]|0,J=f[I+(f[H+(G<<2)>>2]<<2)>>2]|0,K=G+1|0,L=f[I+(f[H+((((K>>>0)%3|0|0)==0?G+-2|0:K)<<2)>>2]<<2)>>2]|0,K=f[I+(f[H+((((G>>>0)%3|0|0)==0?2:-1)+G<<2)>>2]<<2)>>2]|0,(J|0)<(C|0)&(L|0)<(C|0)&(K|0)<(C|0)):0){G=X(J,e)|0;J=X(L,e)|0;L=X(K,e)|0;if(q){K=0;do{f[k+(K<<2)>>2]=(f[b+(K+L<<2)>>2]|0)+(f[b+(K+J<<2)>>2]|0)-(f[b+(K+G<<2)>>2]|0);K=K+1|0}while((K|0)!=(e|0));if(q){K=0;do{G=j+(K<<2)|0;f[G>>2]=(f[G>>2]|0)+(f[k+(K<<2)>>2]|0);K=K+1|0}while((K|0)!=(e|0))}}M=E+1|0}else M=E;K=(((F>>>0)%3|0|0)==0?2:-1)+F|0;do if(((K|0)!=-1?(f[p+(K>>>5<<2)>>2]&1<<(K&31)|0)==0:0)?(G=f[(f[(f[x>>2]|0)+12>>2]|0)+(K<<2)>>2]|0,(G|0)!=-1):0)if(!((G>>>0)%3|0)){N=G+2|0;break}else{N=G+-1|0;break}else N=-1;while(0);F=(N|0)==(A|0)?-1:N;if((F|0)==-1)break;else E=M}E=X(C,e)|0;if(M){if(q){F=0;do{A=j+(F<<2)|0;f[A>>2]=(f[A>>2]|0)/(M|0)|0;F=F+1|0}while((F|0)!=(e|0))}F=b+(E<<2)|0;A=c+(E<<2)|0;p=f[g>>2]|0;if((p|0)>0){K=0;G=j;J=p;while(1){if((J|0)>0){p=0;do{L=f[G+(p<<2)>>2]|0;H=f[r>>2]|0;if((L|0)>(H|0)){I=f[s>>2]|0;f[I+(p<<2)>>2]=H;O=I}else{I=f[t>>2]|0;H=f[s>>2]|0;f[H+(p<<2)>>2]=(L|0)<(I|0)?I:L;O=H}p=p+1|0}while((p|0)<(f[g>>2]|0));P=O}else P=f[s>>2]|0;p=(f[F+(K<<2)>>2]|0)-(f[P+(K<<2)>>2]|0)|0;H=A+(K<<2)|0;f[H>>2]=p;if((p|0)>=(f[u>>2]|0)){if((p|0)>(f[w>>2]|0)){Q=p-(f[v>>2]|0)|0;R=55}}else{Q=(f[v>>2]|0)+p|0;R=55}if((R|0)==55){R=0;f[H>>2]=Q}K=K+1|0;J=f[g>>2]|0;if((K|0)>=(J|0))break;else G=P}}}else{S=E;R=28}}else{S=X(C,e)|0;R=28}if((R|0)==28?(R=0,G=b+(S<<2)|0,J=c+(S<<2)|0,K=f[g>>2]|0,(K|0)>0):0){A=0;F=b+((X(B+-2|0,e)|0)<<2)|0;H=K;while(1){if((H|0)>0){K=0;do{p=f[F+(K<<2)>>2]|0;L=f[r>>2]|0;if((p|0)>(L|0)){I=f[s>>2]|0;f[I+(K<<2)>>2]=L;T=I}else{I=f[t>>2]|0;L=f[s>>2]|0;f[L+(K<<2)>>2]=(p|0)<(I|0)?I:p;T=L}K=K+1|0}while((K|0)<(f[g>>2]|0));U=T}else U=f[s>>2]|0;K=(f[G+(A<<2)>>2]|0)-(f[U+(A<<2)>>2]|0)|0;L=J+(A<<2)|0;f[L>>2]=K;if((K|0)>=(f[u>>2]|0)){if((K|0)>(f[w>>2]|0)){V=K-(f[v>>2]|0)|0;R=40}}else{V=(f[v>>2]|0)+K|0;R=40}if((R|0)==40){R=0;f[L>>2]=V}A=A+1|0;H=f[g>>2]|0;if((A|0)>=(H|0))break;else F=U}}if((B|0)<=2)break a;D=f[i>>2]|0;F=C+-1|0;if((f[l>>2]|0)-D>>2>>>0<=F>>>0)break;else{H=C;C=F;B=H}}aq(i)}while(0);if((e|0)>0)sj(j|0,0,e<<2|0)|0;e=f[g>>2]|0;if((e|0)<=0){Mq(k);Mq(j);return 1}i=a+16|0;B=a+32|0;C=a+12|0;D=a+28|0;l=a+20|0;U=a+24|0;a=0;V=j;T=e;while(1){if((T|0)>0){e=0;do{S=f[V+(e<<2)>>2]|0;P=f[i>>2]|0;if((S|0)>(P|0)){Q=f[B>>2]|0;f[Q+(e<<2)>>2]=P;W=Q}else{Q=f[C>>2]|0;P=f[B>>2]|0;f[P+(e<<2)>>2]=(S|0)<(Q|0)?Q:S;W=P}e=e+1|0}while((e|0)<(f[g>>2]|0));Y=W}else Y=f[B>>2]|0;e=(f[b+(a<<2)>>2]|0)-(f[Y+(a<<2)>>2]|0)|0;P=c+(a<<2)|0;f[P>>2]=e;if((e|0)>=(f[D>>2]|0)){if((e|0)>(f[U>>2]|0)){Z=e-(f[l>>2]|0)|0;R=70}}else{Z=(f[l>>2]|0)+e|0;R=70}if((R|0)==70){R=0;f[P>>2]=Z}a=a+1|0;T=f[g>>2]|0;if((a|0)>=(T|0))break;else V=Y}Mq(k);Mq(j);return 1}function qc(a,b,c,d,e,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0;e=u;u=u+64|0;d=e+48|0;h=e+40|0;i=e+32|0;j=e+16|0;k=e+8|0;l=e;m=e+28|0;n=a+8|0;o=f[n>>2]|0;if((o+-2|0)>>>0<=28){f[a+72>>2]=o;p=1<>2]=p+-1;o=p+-2|0;f[a+80>>2]=o;f[a+84>>2]=(o|0)/2|0}o=a+40|0;f[a+48>>2]=g;g=a+88|0;tk(g);p=a+36|0;q=f[p>>2]|0;r=(f[q+4>>2]|0)-(f[q>>2]|0)|0;s=r>>2;f[j>>2]=0;f[j+4>>2]=0;f[j+8>>2]=0;t=k;f[t>>2]=0;f[t+4>>2]=0;t=l;f[t>>2]=0;f[t+4>>2]=0;if((r|0)<=0){u=e;return 1}r=j+4|0;t=j+8|0;v=a+84|0;w=a+80|0;x=h+4|0;y=i+4|0;z=d+4|0;A=k+4|0;B=h+4|0;C=i+4|0;D=d+4|0;E=l+4|0;F=a+76|0;a=k+4|0;G=l+4|0;H=f[q>>2]|0;if((f[q+4>>2]|0)==(H|0)){J=q;aq(J)}else{K=0;L=H}while(1){f[m>>2]=f[L+(K<<2)>>2];f[d>>2]=f[m>>2];ic(o,d,j);H=f[j>>2]|0;q=(H|0)>-1?H:0-H|0;M=f[r>>2]|0;N=(M|0)>-1?M:0-M|0;O=Vn(N|0,((N|0)<0)<<31>>31|0,q|0,((q|0)<0)<<31>>31|0)|0;q=f[t>>2]|0;N=(q|0)>-1;P=N?q:0-q|0;q=Vn(O|0,I|0,P|0,((P|0)<0)<<31>>31|0)|0;P=I;if((q|0)==0&(P|0)==0){O=f[v>>2]|0;Q=O;R=j;S=M;T=O}else{O=f[v>>2]|0;U=((O|0)<0)<<31>>31;V=un(O|0,U|0,H|0,((H|0)<0)<<31>>31|0)|0;H=Ik(V|0,I|0,q|0,P|0)|0;f[j>>2]=H;V=un(O|0,U|0,M|0,((M|0)<0)<<31>>31|0)|0;M=Ik(V|0,I|0,q|0,P|0)|0;f[r>>2]=M;P=O-((H|0)>-1?H:0-H|0)-((M|0)>-1?M:0-M|0)|0;Q=N?P:0-P|0;R=t;S=M;T=O}f[R>>2]=Q;O=f[j>>2]|0;do if((O|0)<=-1){if((S|0)<0){M=f[t>>2]|0;W=(M|0)>-1?M:0-M|0;X=M}else{M=f[t>>2]|0;W=(f[w>>2]|0)-((M|0)>-1?M:0-M|0)|0;X=M}if((X|0)<0){Y=(S|0)>-1?S:0-S|0;Z=W;_=X;break}else{Y=(f[w>>2]|0)-((S|0)>-1?S:0-S|0)|0;Z=W;_=X;break}}else{M=f[t>>2]|0;Y=M+T|0;Z=T+S|0;_=M}while(0);M=(Z|0)==0;P=(Y|0)==0;N=f[w>>2]|0;do if(Y|Z){H=(N|0)==(Y|0);if(!(M&H)){q=(N|0)==(Z|0);if(!(P&q)){if(M&(T|0)<(Y|0)){$=0;aa=(T<<1)-Y|0;break}if(q&(T|0)>(Y|0)){$=Z;aa=(T<<1)-Y|0;break}if(H&(T|0)>(Z|0)){$=(T<<1)-Z|0;aa=Y;break}if(P){$=(T|0)<(Z|0)?(T<<1)-Z|0:Z;aa=0}else{$=Z;aa=Y}}else{$=Z;aa=Z}}else{$=Y;aa=Y}}else{$=N;aa=N}while(0);P=0-S|0;M=0-_|0;f[j>>2]=0-O;f[r>>2]=P;f[t>>2]=M;if((O|0)<1){ba=T-_|0;ca=T-S|0}else{H=(_|0)<1?M:_;M=(S|0)<1?P:S;ba=(_|0)>0?M:N-M|0;ca=(S|0)>0?H:N-H|0}H=(ca|0)==0;M=(ba|0)==0;do if(((ba|ca|0)!=0?(P=(N|0)==(ba|0),!(H&P)):0)?(q=(N|0)==(ca|0),!(M&q)):0){if(H&(T|0)<(ba|0)){da=0;ea=(T<<1)-ba|0;break}if(q&(T|0)>(ba|0)){da=N;ea=(T<<1)-ba|0;break}if(P&(T|0)>(ca|0)){da=(T<<1)-ca|0;ea=N;break}if(M){da=(T|0)<(ca|0)?(T<<1)-ca|0:ca;ea=0}else{da=ca;ea=ba}}else{da=N;ea=N}while(0);N=K<<1;M=b+(N<<2)|0;H=M+4|0;O=f[H>>2]|0;f[h>>2]=f[M>>2];f[x>>2]=O;f[i>>2]=$;f[y>>2]=aa;Od(d,n,h,i);O=f[d>>2]|0;f[k>>2]=O;P=f[z>>2]|0;f[A>>2]=P;q=f[H>>2]|0;f[h>>2]=f[M>>2];f[B>>2]=q;f[i>>2]=da;f[C>>2]=ea;Od(d,n,h,i);q=f[d>>2]|0;f[l>>2]=q;M=f[D>>2]|0;f[E>>2]=M;H=f[v>>2]|0;if((H|0)>=(O|0))if((O|0)<(0-H|0))fa=(f[F>>2]|0)+O|0;else fa=O;else fa=O-(f[F>>2]|0)|0;f[k>>2]=fa;if((H|0)>=(P|0))if((P|0)<(0-H|0))ga=(f[F>>2]|0)+P|0;else ga=P;else ga=P-(f[F>>2]|0)|0;f[a>>2]=ga;if((H|0)>=(q|0))if((q|0)<(0-H|0))ha=(f[F>>2]|0)+q|0;else ha=q;else ha=q-(f[F>>2]|0)|0;f[l>>2]=ha;if((H|0)>=(M|0))if((M|0)<(0-H|0))ia=(f[F>>2]|0)+M|0;else ia=M;else ia=M-(f[F>>2]|0)|0;f[G>>2]=ia;if((((ga|0)>-1?ga:0-ga|0)+((fa|0)>-1?fa:0-fa|0)|0)<(((ha|0)>-1?ha:0-ha|0)+((ia|0)>-1?ia:0-ia|0)|0)){fj(g,0);ja=k}else{fj(g,1);ja=l}M=f[ja>>2]|0;if((M|0)<0)ka=(f[F>>2]|0)+M|0;else ka=M;M=c+(N<<2)|0;f[M>>2]=ka;N=f[ja+4>>2]|0;if((N|0)<0)la=(f[F>>2]|0)+N|0;else la=N;f[M+4>>2]=la;K=K+1|0;if((K|0)>=(s|0)){ma=5;break}M=f[p>>2]|0;L=f[M>>2]|0;if((f[M+4>>2]|0)-L>>2>>>0<=K>>>0){J=M;ma=6;break}}if((ma|0)==5){u=e;return 1}else if((ma|0)==6)aq(J);return 0}function rc(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0;c=u;u=u+48|0;d=c+24|0;e=c+12|0;g=c;if(!b){h=0;u=c;return h|0}i=a+12|0;j=a+4|0;k=f[j>>2]|0;l=f[a>>2]|0;m=k-l>>2;n=a+16|0;o=f[n>>2]|0;p=f[i>>2]|0;q=o-p>>2;r=p;p=o;if(m>>>0<=q>>>0)if(m>>>0>>0?(o=r+(m<<2)|0,(o|0)!=(p|0)):0){f[n>>2]=p+(~((p+-4-o|0)>>>2)<<2);s=l;t=k}else{s=l;t=k}else{Ch(i,m-q|0,6140);s=f[a>>2]|0;t=f[j>>2]|0}f[d>>2]=0;q=d+4|0;f[q>>2]=0;f[d+8>>2]=0;gk(d,t-s>>2);s=f[j>>2]|0;t=f[a>>2]|0;if((s|0)==(t|0)){v=s;w=s}else{m=f[d>>2]|0;k=m;l=k;o=0;p=s;s=k;k=t;t=m;while(1){m=f[k+(o<<2)>>2]|0;n=f[q>>2]|0;if(m>>>0>2>>>0){x=l;y=s;z=k;A=p}else{r=m+1|0;f[e>>2]=0;B=n-t>>2;C=t;D=n;if(r>>>0<=B>>>0)if(r>>>0>>0?(n=C+(r<<2)|0,(n|0)!=(D|0)):0){f[q>>2]=D+(~((D+-4-n|0)>>>2)<<2);E=l;F=p;G=k}else{E=l;F=p;G=k}else{Ch(d,r-B|0,e);E=f[d>>2]|0;F=f[j>>2]|0;G=f[a>>2]|0}x=E;y=E;z=G;A=F}B=y+(m<<2)|0;f[B>>2]=(f[B>>2]|0)+1;o=o+1|0;if(o>>>0>=A-z>>2>>>0){v=z;w=A;break}else{l=x;p=A;s=y;k=z;t=y}}}y=w-v|0;v=y>>2;f[e>>2]=0;w=e+4|0;f[w>>2]=0;f[e+8>>2]=0;if(!v){H=0;I=0}else{if(v>>>0>536870911)aq(e);t=ln(y<<1)|0;f[w>>2]=t;f[e>>2]=t;y=t+(v<<3)|0;f[e+8>>2]=y;z=v;v=t;k=t;while(1){s=v;f[s>>2]=-1;f[s+4>>2]=-1;s=k+8|0;A=z+-1|0;if(!A)break;else{z=A;v=s;k=s}}f[w>>2]=y;H=t;I=t}t=f[q>>2]|0;y=f[d>>2]|0;k=t-y|0;v=k>>2;f[g>>2]=0;z=g+4|0;f[z>>2]=0;f[g+8>>2]=0;s=y;do if(v)if(v>>>0>1073741823)aq(g);else{A=ln(k)|0;f[g>>2]=A;p=A+(v<<2)|0;f[g+8>>2]=p;sj(A|0,0,k|0)|0;f[z>>2]=p;J=A;K=p;L=A;break}else{J=0;K=0;L=0}while(0);if((t|0)!=(y|0)){y=0;t=0;while(1){f[J+(t<<2)>>2]=y;k=t+1|0;if(k>>>0>>0){y=(f[s+(t<<2)>>2]|0)+y|0;t=k}else break}}t=f[j>>2]|0;j=f[a>>2]|0;y=j;if((t|0)!=(j|0)){k=a+40|0;a=t-j>>2;j=H;t=H;g=H;A=H;p=H;x=H;l=0;o=J;while(1){F=f[y+(l<<2)>>2]|0;G=l+1|0;E=((G>>>0)%3|0|0)==0?l+-2|0:G;if((E|0)==-1)M=-1;else M=f[y+(E<<2)>>2]|0;E=((l>>>0)%3|0|0)==0;G=(E?2:-1)+l|0;if((G|0)==-1)N=-1;else N=f[y+(G<<2)>>2]|0;if(E?(M|0)==(N|0)|((F|0)==(M|0)|(F|0)==(N|0)):0){f[k>>2]=(f[k>>2]|0)+1;O=j;P=t;Q=g;R=A;S=p;T=x;U=l+2|0;V=o}else W=51;a:do if((W|0)==51){W=0;E=f[s+(N<<2)>>2]|0;b:do if((E|0)>0){G=0;B=f[o+(N<<2)>>2]|0;while(1){m=f[p+(B<<3)>>2]|0;if((m|0)==-1){X=j;Y=t;Z=A;_=p;break b}if((m|0)==(M|0)){m=f[p+(B<<3)+4>>2]|0;if((m|0)==-1)$=-1;else $=f[y+(m<<2)>>2]|0;if((F|0)!=($|0))break}m=G+1|0;if((m|0)<(E|0)){G=m;B=B+1|0}else{X=j;Y=t;Z=A;_=p;break b}}m=f[A+(B<<3)+4>>2]|0;r=G;n=B;D=t;while(1){r=r+1|0;if((r|0)>=(E|0))break;C=n+1|0;f[D+(n<<3)>>2]=f[D+(C<<3)>>2];f[D+(n<<3)+4>>2]=f[D+(C<<3)+4>>2];if((f[j+(n<<3)>>2]|0)==-1)break;else{n=C;D=j}}f[g+(n<<3)>>2]=-1;if((m|0)==-1){X=g;Y=g;Z=g;_=g}else{D=f[i>>2]|0;f[D+(l<<2)>>2]=m;f[D+(m<<2)>>2]=l;O=g;P=g;Q=g;R=g;S=g;T=x;U=l;V=o;break a}}else{X=j;Y=t;Z=A;_=p}while(0);E=f[s+(M<<2)>>2]|0;if((E|0)>0){D=0;r=f[J+(M<<2)>>2]|0;while(1){aa=x+(r<<3)|0;if((f[aa>>2]|0)==-1)break;D=D+1|0;if((D|0)>=(E|0)){O=x;P=x;Q=x;R=x;S=x;T=x;U=l;V=J;break a}else r=r+1|0}f[aa>>2]=N;f[H+(r<<3)+4>>2]=l;O=H;P=H;Q=H;R=H;S=H;T=H;U=l;V=J}else{O=X;P=Y;Q=g;R=Z;S=_;T=x;U=l;V=o}}while(0);l=U+1|0;if(l>>>0>=a>>>0)break;else{j=O;t=P;g=Q;A=R;p=S;x=T;o=V}}}f[b>>2]=v;if(!J){ba=H;ca=I}else{if((K|0)!=(J|0))f[z>>2]=K+(~((K+-4-J|0)>>>2)<<2);Oq(L);L=f[e>>2]|0;ba=L;ca=L}if(ba|0){L=f[w>>2]|0;if((L|0)!=(ba|0))f[w>>2]=L+(~((L+-8-ba|0)>>>3)<<3);Oq(ca)}ca=f[d>>2]|0;if(ca|0){d=f[q>>2]|0;if((d|0)!=(ca|0))f[q>>2]=d+(~((d+-4-ca|0)>>>2)<<2);Oq(ca)}h=1;u=c;return h|0}function sc(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=Oa,S=Oa,T=Oa,U=0,V=0,X=0,Y=0,Z=0,_=0,aa=0,ba=0,ca=0,da=0,ea=0;e=u;u=u+48|0;g=e+12|0;h=e+35|0;i=e+32|0;j=e;k=g+16|0;f[g>>2]=0;f[g+4>>2]=0;f[g+8>>2]=0;f[g+12>>2]=0;n[k>>2]=$(1.0);l=a+80|0;m=f[l>>2]|0;f[j>>2]=0;o=j+4|0;f[o>>2]=0;f[j+8>>2]=0;if(m){if(m>>>0>1073741823)aq(j);p=m<<2;q=ln(p)|0;f[j>>2]=q;r=q+(m<<2)|0;f[j+8>>2]=r;sj(q|0,0,p|0)|0;f[o>>2]=r;r=f[d>>2]|0;d=c+48|0;p=c+40|0;q=i+1|0;m=i+2|0;s=g+4|0;t=g+12|0;v=g+8|0;w=a+40|0;x=a+64|0;y=0;z=0;while(1){A=d;B=f[A>>2]|0;C=f[A+4>>2]|0;A=p;D=un(f[A>>2]|0,f[A+4>>2]|0,r+y|0,0)|0;A=Vn(D|0,I|0,B|0,C|0)|0;C=(f[f[c>>2]>>2]|0)+A|0;b[h>>0]=b[C>>0]|0;b[h+1>>0]=b[C+1>>0]|0;b[h+2>>0]=b[C+2>>0]|0;im(i|0,C|0,3)|0;C=jg(g,i)|0;if(!C){A=b[i>>0]|0;B=b[q>>0]|0;D=b[m>>0]|0;E=((A&255^318)+239^B&255)+239^D&255;F=f[s>>2]|0;G=(F|0)==0;a:do if(!G){H=F+-1|0;J=(H&F|0)==0;if(!J)if(E>>>0>>0)K=E;else K=(E>>>0)%(F>>>0)|0;else K=E&H;L=f[(f[g>>2]|0)+(K<<2)>>2]|0;if((L|0)!=0?(M=f[L>>2]|0,(M|0)!=0):0){if(J){J=M;while(1){L=f[J+4>>2]|0;if(!((L|0)==(E|0)|(L&H|0)==(K|0))){N=K;O=29;break a}L=J+8|0;if(((b[L>>0]|0)==A<<24>>24?(b[L+1>>0]|0)==B<<24>>24:0)?(b[L+2>>0]|0)==D<<24>>24:0)break a;J=f[J>>2]|0;if(!J){N=K;O=29;break a}}}else P=M;while(1){J=f[P+4>>2]|0;if((J|0)!=(E|0)){if(J>>>0>>0)Q=J;else Q=(J>>>0)%(F>>>0)|0;if((Q|0)!=(K|0)){N=K;O=29;break a}}J=P+8|0;if(((b[J>>0]|0)==A<<24>>24?(b[J+1>>0]|0)==B<<24>>24:0)?(b[J+2>>0]|0)==D<<24>>24:0)break a;P=f[P>>2]|0;if(!P){N=K;O=29;break}}}else{N=K;O=29}}else{N=0;O=29}while(0);if((O|0)==29){O=0;M=ln(16)|0;b[M+8>>0]=A;b[M+9>>0]=B;b[M+10>>0]=D;f[M+12>>2]=z;f[M+4>>2]=E;f[M>>2]=0;R=$(((f[t>>2]|0)+1|0)>>>0);S=$(F>>>0);T=$(n[k>>2]);do if(G|$(T*S)>>0<3|(F+-1&F|0)!=0)&1;H=~~$(W($(R/T)))>>>0;_h(g,J>>>0>>0?H:J);J=f[s>>2]|0;H=J+-1|0;if(!(H&J)){U=J;V=H&E;break}if(E>>>0>>0){U=J;V=E}else{U=J;V=(E>>>0)%(J>>>0)|0}}else{U=F;V=N}while(0);F=(f[g>>2]|0)+(V<<2)|0;E=f[F>>2]|0;if(!E){f[M>>2]=f[v>>2];f[v>>2]=M;f[F>>2]=v;F=f[M>>2]|0;if(F|0){G=f[F+4>>2]|0;F=U+-1|0;if(F&U)if(G>>>0>>0)X=G;else X=(G>>>0)%(U>>>0)|0;else X=G&F;Y=(f[g>>2]|0)+(X<<2)|0;O=42}}else{f[M>>2]=f[E>>2];Y=E;O=42}if((O|0)==42){O=0;f[Y>>2]=M}f[t>>2]=(f[t>>2]|0)+1}E=w;F=f[E>>2]|0;G=un(F|0,f[E+4>>2]|0,z|0,0)|0;kh((f[f[x>>2]>>2]|0)+G|0,h|0,F|0)|0;F=f[j>>2]|0;f[F+(y<<2)>>2]=z;Z=z+1|0;_=F}else{F=f[j>>2]|0;f[F+(y<<2)>>2]=f[C+12>>2];Z=z;_=F}y=y+1|0;aa=f[l>>2]|0;if(y>>>0>=aa>>>0)break;else z=Z}if((Z|0)==(aa|0))ba=_;else{z=a+84|0;if(!(b[z>>0]|0)){y=f[a+72>>2]|0;h=f[a+68>>2]|0;x=h;if((y|0)==(h|0))ca=_;else{w=y-h>>2;h=0;do{y=x+(h<<2)|0;f[y>>2]=f[_+(f[y>>2]<<2)>>2];h=h+1|0}while(h>>>0>>0);ca=_}}else{b[z>>0]=0;z=a+68|0;_=a+72|0;w=f[_>>2]|0;h=f[z>>2]|0;x=w-h>>2;y=h;h=w;if(aa>>>0<=x>>>0)if(aa>>>0>>0?(w=y+(aa<<2)|0,(w|0)!=(h|0)):0){f[_>>2]=h+(~((h+-4-w|0)>>>2)<<2);da=aa}else da=aa;else{Ch(z,aa-x|0,1220);da=f[l>>2]|0}x=f[j>>2]|0;if(!da)ca=x;else{j=f[a+68>>2]|0;a=0;do{f[j+(a<<2)>>2]=f[x+(a<<2)>>2];a=a+1|0}while(a>>>0>>0);ca=x}}f[l>>2]=Z;ba=ca}if(!ba)ea=Z;else{ca=f[o>>2]|0;if((ca|0)!=(ba|0))f[o>>2]=ca+(~((ca+-4-ba|0)>>>2)<<2);Oq(ba);ea=Z}}else ea=0;Z=f[g+8>>2]|0;if(Z|0){ba=Z;do{Z=ba;ba=f[ba>>2]|0;Oq(Z)}while((ba|0)!=0)}ba=f[g>>2]|0;f[g>>2]=0;if(!ba){u=e;return ea|0}Oq(ba);u=e;return ea|0}function tc(a,b,c,d,e,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0;e=u;u=u+64|0;d=e+48|0;h=e+40|0;i=e+32|0;j=e+16|0;k=e+8|0;l=e;m=e+28|0;n=a+8|0;o=f[n>>2]|0;if((o+-2|0)>>>0<=28){f[a+72>>2]=o;p=1<>2]=p+-1;o=p+-2|0;f[a+80>>2]=o;f[a+84>>2]=(o|0)/2|0}o=a+40|0;f[a+48>>2]=g;g=a+88|0;tk(g);p=a+36|0;q=f[p>>2]|0;r=(f[q+4>>2]|0)-(f[q>>2]|0)|0;s=r>>2;f[j>>2]=0;f[j+4>>2]=0;f[j+8>>2]=0;t=k;f[t>>2]=0;f[t+4>>2]=0;t=l;f[t>>2]=0;f[t+4>>2]=0;if((r|0)<=0){u=e;return 1}r=j+4|0;t=j+8|0;v=a+84|0;w=a+80|0;x=h+4|0;y=i+4|0;z=d+4|0;A=k+4|0;B=h+4|0;C=i+4|0;D=d+4|0;E=l+4|0;F=a+76|0;a=k+4|0;G=l+4|0;H=f[q>>2]|0;if((f[q+4>>2]|0)==(H|0)){J=q;aq(J)}else{K=0;L=H}while(1){f[m>>2]=f[L+(K<<2)>>2];f[d>>2]=f[m>>2];$b(o,d,j);H=f[j>>2]|0;q=(H|0)>-1?H:0-H|0;M=f[r>>2]|0;N=(M|0)>-1?M:0-M|0;O=Vn(N|0,((N|0)<0)<<31>>31|0,q|0,((q|0)<0)<<31>>31|0)|0;q=f[t>>2]|0;N=(q|0)>-1;P=N?q:0-q|0;q=Vn(O|0,I|0,P|0,((P|0)<0)<<31>>31|0)|0;P=I;if((q|0)==0&(P|0)==0){O=f[v>>2]|0;Q=O;R=j;S=M;T=O}else{O=f[v>>2]|0;U=((O|0)<0)<<31>>31;V=un(O|0,U|0,H|0,((H|0)<0)<<31>>31|0)|0;H=Ik(V|0,I|0,q|0,P|0)|0;f[j>>2]=H;V=un(O|0,U|0,M|0,((M|0)<0)<<31>>31|0)|0;M=Ik(V|0,I|0,q|0,P|0)|0;f[r>>2]=M;P=O-((H|0)>-1?H:0-H|0)-((M|0)>-1?M:0-M|0)|0;Q=N?P:0-P|0;R=t;S=M;T=O}f[R>>2]=Q;O=f[j>>2]|0;do if((O|0)<=-1){if((S|0)<0){M=f[t>>2]|0;W=(M|0)>-1?M:0-M|0;X=M}else{M=f[t>>2]|0;W=(f[w>>2]|0)-((M|0)>-1?M:0-M|0)|0;X=M}if((X|0)<0){Y=(S|0)>-1?S:0-S|0;Z=W;_=X;break}else{Y=(f[w>>2]|0)-((S|0)>-1?S:0-S|0)|0;Z=W;_=X;break}}else{M=f[t>>2]|0;Y=M+T|0;Z=T+S|0;_=M}while(0);M=(Z|0)==0;P=(Y|0)==0;N=f[w>>2]|0;do if(Y|Z){H=(N|0)==(Y|0);if(!(M&H)){q=(N|0)==(Z|0);if(!(P&q)){if(M&(T|0)<(Y|0)){$=0;aa=(T<<1)-Y|0;break}if(q&(T|0)>(Y|0)){$=Z;aa=(T<<1)-Y|0;break}if(H&(T|0)>(Z|0)){$=(T<<1)-Z|0;aa=Y;break}if(P){$=(T|0)<(Z|0)?(T<<1)-Z|0:Z;aa=0}else{$=Z;aa=Y}}else{$=Z;aa=Z}}else{$=Y;aa=Y}}else{$=N;aa=N}while(0);P=0-S|0;M=0-_|0;f[j>>2]=0-O;f[r>>2]=P;f[t>>2]=M;if((O|0)<1){ba=T-_|0;ca=T-S|0}else{H=(_|0)<1?M:_;M=(S|0)<1?P:S;ba=(_|0)>0?M:N-M|0;ca=(S|0)>0?H:N-H|0}H=(ca|0)==0;M=(ba|0)==0;do if(((ba|ca|0)!=0?(P=(N|0)==(ba|0),!(H&P)):0)?(q=(N|0)==(ca|0),!(M&q)):0){if(H&(T|0)<(ba|0)){da=0;ea=(T<<1)-ba|0;break}if(q&(T|0)>(ba|0)){da=N;ea=(T<<1)-ba|0;break}if(P&(T|0)>(ca|0)){da=(T<<1)-ca|0;ea=N;break}if(M){da=(T|0)<(ca|0)?(T<<1)-ca|0:ca;ea=0}else{da=ca;ea=ba}}else{da=N;ea=N}while(0);N=K<<1;M=b+(N<<2)|0;H=M+4|0;O=f[H>>2]|0;f[h>>2]=f[M>>2];f[x>>2]=O;f[i>>2]=$;f[y>>2]=aa;Od(d,n,h,i);O=f[d>>2]|0;f[k>>2]=O;P=f[z>>2]|0;f[A>>2]=P;q=f[H>>2]|0;f[h>>2]=f[M>>2];f[B>>2]=q;f[i>>2]=da;f[C>>2]=ea;Od(d,n,h,i);q=f[d>>2]|0;f[l>>2]=q;M=f[D>>2]|0;f[E>>2]=M;H=f[v>>2]|0;if((H|0)>=(O|0))if((O|0)<(0-H|0))fa=(f[F>>2]|0)+O|0;else fa=O;else fa=O-(f[F>>2]|0)|0;f[k>>2]=fa;if((H|0)>=(P|0))if((P|0)<(0-H|0))ga=(f[F>>2]|0)+P|0;else ga=P;else ga=P-(f[F>>2]|0)|0;f[a>>2]=ga;if((H|0)>=(q|0))if((q|0)<(0-H|0))ha=(f[F>>2]|0)+q|0;else ha=q;else ha=q-(f[F>>2]|0)|0;f[l>>2]=ha;if((H|0)>=(M|0))if((M|0)<(0-H|0))ia=(f[F>>2]|0)+M|0;else ia=M;else ia=M-(f[F>>2]|0)|0;f[G>>2]=ia;if((((ga|0)>-1?ga:0-ga|0)+((fa|0)>-1?fa:0-fa|0)|0)<(((ha|0)>-1?ha:0-ha|0)+((ia|0)>-1?ia:0-ia|0)|0)){fj(g,0);ja=k}else{fj(g,1);ja=l}M=f[ja>>2]|0;if((M|0)<0)ka=(f[F>>2]|0)+M|0;else ka=M;M=c+(N<<2)|0;f[M>>2]=ka;N=f[ja+4>>2]|0;if((N|0)<0)la=(f[F>>2]|0)+N|0;else la=N;f[M+4>>2]=la;K=K+1|0;if((K|0)>=(s|0)){ma=5;break}M=f[p>>2]|0;L=f[M>>2]|0;if((f[M+4>>2]|0)-L>>2>>>0<=K>>>0){J=M;ma=6;break}}if((ma|0)==5){u=e;return 1}else if((ma|0)==6)aq(J);return 0}function uc(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=Oa,T=Oa,U=Oa,V=0,X=0,Y=0,Z=0,_=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0;e=u;u=u+64|0;g=e+36|0;h=e+24|0;i=e+12|0;j=e;k=g+16|0;f[g>>2]=0;f[g+4>>2]=0;f[g+8>>2]=0;f[g+12>>2]=0;n[k>>2]=$(1.0);l=a+80|0;m=f[l>>2]|0;f[j>>2]=0;o=j+4|0;f[o>>2]=0;f[j+8>>2]=0;if(m){if(m>>>0>1073741823)aq(j);p=m<<2;q=ln(p)|0;f[j>>2]=q;r=q+(m<<2)|0;f[j+8>>2]=r;sj(q|0,0,p|0)|0;f[o>>2]=r;r=f[d>>2]|0;d=c+48|0;p=c+40|0;q=i+4|0;m=i+8|0;s=g+4|0;t=g+12|0;v=g+8|0;w=a+40|0;x=a+64|0;y=0;z=0;while(1){A=d;B=f[A>>2]|0;C=f[A+4>>2]|0;A=p;D=un(f[A>>2]|0,f[A+4>>2]|0,r+z|0,0)|0;A=Vn(D|0,I|0,B|0,C|0)|0;C=(f[f[c>>2]>>2]|0)+A|0;A=h;B=C;D=A+12|0;do{b[A>>0]=b[B>>0]|0;A=A+1|0;B=B+1|0}while((A|0)<(D|0));im(i|0,C|0,12)|0;B=qg(g,i)|0;if(!B){A=f[i>>2]|0;D=f[q>>2]|0;E=f[m>>2]|0;F=((A^318)+239^D)+239^E;G=f[s>>2]|0;H=(G|0)==0;a:do if(!H){J=G+-1|0;K=(J&G|0)==0;if(!K)if(F>>>0>>0)L=F;else L=(F>>>0)%(G>>>0)|0;else L=F&J;M=f[(f[g>>2]|0)+(L<<2)>>2]|0;if((M|0)!=0?(N=f[M>>2]|0,(N|0)!=0):0){if(K){K=N;while(1){M=f[K+4>>2]|0;if(!((M|0)==(F|0)|(M&J|0)==(L|0))){O=L;P=29;break a}if(((f[K+8>>2]|0)==(A|0)?(f[K+12>>2]|0)==(D|0):0)?(f[K+16>>2]|0)==(E|0):0)break a;K=f[K>>2]|0;if(!K){O=L;P=29;break a}}}else Q=N;while(1){K=f[Q+4>>2]|0;if((K|0)!=(F|0)){if(K>>>0>>0)R=K;else R=(K>>>0)%(G>>>0)|0;if((R|0)!=(L|0)){O=L;P=29;break a}}if(((f[Q+8>>2]|0)==(A|0)?(f[Q+12>>2]|0)==(D|0):0)?(f[Q+16>>2]|0)==(E|0):0)break a;Q=f[Q>>2]|0;if(!Q){O=L;P=29;break}}}else{O=L;P=29}}else{O=0;P=29}while(0);if((P|0)==29){P=0;C=ln(24)|0;f[C+8>>2]=A;f[C+12>>2]=D;f[C+16>>2]=E;f[C+20>>2]=y;f[C+4>>2]=F;f[C>>2]=0;S=$(((f[t>>2]|0)+1|0)>>>0);T=$(G>>>0);U=$(n[k>>2]);do if(H|$(U*T)>>0<3|(G+-1&G|0)!=0)&1;K=~~$(W($(S/U)))>>>0;Xh(g,N>>>0>>0?K:N);N=f[s>>2]|0;K=N+-1|0;if(!(K&N)){V=N;X=K&F;break}if(F>>>0>>0){V=N;X=F}else{V=N;X=(F>>>0)%(N>>>0)|0}}else{V=G;X=O}while(0);G=(f[g>>2]|0)+(X<<2)|0;F=f[G>>2]|0;if(!F){f[C>>2]=f[v>>2];f[v>>2]=C;f[G>>2]=v;G=f[C>>2]|0;if(G|0){H=f[G+4>>2]|0;G=V+-1|0;if(G&V)if(H>>>0>>0)Y=H;else Y=(H>>>0)%(V>>>0)|0;else Y=H&G;Z=(f[g>>2]|0)+(Y<<2)|0;P=42}}else{f[C>>2]=f[F>>2];Z=F;P=42}if((P|0)==42){P=0;f[Z>>2]=C}f[t>>2]=(f[t>>2]|0)+1}F=w;G=f[F>>2]|0;H=un(G|0,f[F+4>>2]|0,y|0,0)|0;kh((f[f[x>>2]>>2]|0)+H|0,h|0,G|0)|0;G=f[j>>2]|0;f[G+(z<<2)>>2]=y;_=y+1|0;aa=G}else{G=f[j>>2]|0;f[G+(z<<2)>>2]=f[B+20>>2];_=y;aa=G}z=z+1|0;ba=f[l>>2]|0;if(z>>>0>=ba>>>0)break;else y=_}if((_|0)==(ba|0))ca=aa;else{y=a+84|0;if(!(b[y>>0]|0)){z=f[a+72>>2]|0;h=f[a+68>>2]|0;x=h;if((z|0)==(h|0))da=aa;else{w=z-h>>2;h=0;do{z=x+(h<<2)|0;f[z>>2]=f[aa+(f[z>>2]<<2)>>2];h=h+1|0}while(h>>>0>>0);da=aa}}else{b[y>>0]=0;y=a+68|0;aa=a+72|0;w=f[aa>>2]|0;h=f[y>>2]|0;x=w-h>>2;z=h;h=w;if(ba>>>0<=x>>>0)if(ba>>>0>>0?(w=z+(ba<<2)|0,(w|0)!=(h|0)):0){f[aa>>2]=h+(~((h+-4-w|0)>>>2)<<2);ea=ba}else ea=ba;else{Ch(y,ba-x|0,1220);ea=f[l>>2]|0}x=f[j>>2]|0;if(!ea)da=x;else{j=f[a+68>>2]|0;a=0;do{f[j+(a<<2)>>2]=f[x+(a<<2)>>2];a=a+1|0}while(a>>>0>>0);da=x}}f[l>>2]=_;ca=da}if(!ca)fa=_;else{da=f[o>>2]|0;if((da|0)!=(ca|0))f[o>>2]=da+(~((da+-4-ca|0)>>>2)<<2);Oq(ca);fa=_}}else fa=0;_=f[g+8>>2]|0;if(_|0){ca=_;do{_=ca;ca=f[ca>>2]|0;Oq(_)}while((ca|0)!=0)}ca=f[g>>2]|0;f[g>>2]=0;if(!ca){u=e;return fa|0}Oq(ca);u=e;return fa|0} function di(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=u;u=u+16|0;e=d;Je(e,a+40|0,f[a+8>>2]|0,b,c);gj(a,e);a=f[e>>2]|0;f[e>>2]=0;if(!a){u=d;return 1}e=a+88|0;c=f[e>>2]|0;f[e>>2]=0;if(c|0){e=f[c+8>>2]|0;if(e|0){b=c+12|0;if((f[b>>2]|0)!=(e|0))f[b>>2]=e;Oq(e)}Oq(c)}c=f[a+68>>2]|0;if(c|0){e=a+72|0;b=f[e>>2]|0;if((b|0)!=(c|0))f[e>>2]=b+(~((b+-4-c|0)>>>2)<<2);Oq(c)}c=a+64|0;b=f[c>>2]|0;f[c>>2]=0;if(b|0){c=f[b>>2]|0;if(c|0){e=b+4|0;if((f[e>>2]|0)!=(c|0))f[e>>2]=c;Oq(c)}Oq(b)}Oq(a);u=d;return 1}function ei(a,b){a=a|0;b=b|0;var c=0,d=Oa,e=0,g=0;if((b|0)!=1)if(!(b+-1&b))c=b;else c=cb(b)|0;else c=2;b=f[a+4>>2]|0;if(c>>>0>b>>>0){Bd(a,c);return}if(c>>>0>=b>>>0)return;d=$((f[a+12>>2]|0)>>>0);e=~~$(W($(d/$(n[a+16>>2]))))>>>0;if(b>>>0>2&(b+-1&b|0)==0)g=1<<32-(_(e+-1|0)|0);else g=cb(e)|0;e=c>>>0>>0?g:c;if(e>>>0>=b>>>0)return;Bd(a,e);return}function fi(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0;e=u;u=u+48|0;g=e;h=e+32|0;if(!c){i=0;u=e;return i|0}Gn(g);if((dm(c,0)|0)!=-1?Qa[f[(f[c>>2]|0)+16>>2]&127](c)|0:0){Va[f[(f[c>>2]|0)+20>>2]&127](c);ch(h,a,c,g);c=(f[h>>2]|0)==0;a=h+4|0;if((b[a+11>>0]|0)<0)Oq(f[a>>2]|0);if(c){c=f[g>>2]|0;a=g+4|0;rg(d,c,c+((f[a>>2]|0)-c)|0);j=(f[a>>2]|0)-(f[g>>2]|0)|0}else j=0}else j=0;a=g+12|0;c=f[a>>2]|0;f[a>>2]=0;if(c|0)Oq(c);c=f[g>>2]|0;if(c|0){a=g+4|0;if((f[a>>2]|0)!=(c|0))f[a>>2]=c;Oq(c)}i=j;u=e;return i|0}function gi(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=u;u=u+16|0;e=d;Fe(e,a+40|0,f[a+8>>2]|0,b,c);gj(a,e);a=f[e>>2]|0;f[e>>2]=0;if(!a){u=d;return 1}e=a+88|0;c=f[e>>2]|0;f[e>>2]=0;if(c|0){e=f[c+8>>2]|0;if(e|0){b=c+12|0;if((f[b>>2]|0)!=(e|0))f[b>>2]=e;Oq(e)}Oq(c)}c=f[a+68>>2]|0;if(c|0){e=a+72|0;b=f[e>>2]|0;if((b|0)!=(c|0))f[e>>2]=b+(~((b+-4-c|0)>>>2)<<2);Oq(c)}c=a+64|0;b=f[c>>2]|0;f[c>>2]=0;if(b|0){c=f[b>>2]|0;if(c|0){e=b+4|0;if((f[e>>2]|0)!=(c|0))f[e>>2]=c;Oq(c)}Oq(b)}Oq(a);u=d;return 1}function hi(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0,i=0,j=0;b=f[a>>2]|0;if(!b)return;c=a+4|0;d=f[c>>2]|0;if((d|0)==(b|0))e=b;else{g=d;do{d=g+-4|0;f[c>>2]=d;h=f[d>>2]|0;f[d>>2]=0;if(h|0){d=h+88|0;i=f[d>>2]|0;f[d>>2]=0;if(i|0){d=f[i+8>>2]|0;if(d|0){j=i+12|0;if((f[j>>2]|0)!=(d|0))f[j>>2]=d;Oq(d)}Oq(i)}i=f[h+68>>2]|0;if(i|0){d=h+72|0;j=f[d>>2]|0;if((j|0)!=(i|0))f[d>>2]=j+(~((j+-4-i|0)>>>2)<<2);Oq(i)}i=h+64|0;j=f[i>>2]|0;f[i>>2]=0;if(j|0){i=f[j>>2]|0;if(i|0){d=j+4|0;if((f[d>>2]|0)!=(i|0))f[d>>2]=i;Oq(i)}Oq(j)}Oq(h)}g=f[c>>2]|0}while((g|0)!=(b|0));e=f[a>>2]|0}Oq(e);return}function ii(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;d=u;u=u+16|0;e=d+4|0;g=d;h=d+8|0;if(!(Ie(a,c)|0)){i=0;u=d;return i|0}j=a+36|0;k=a+40|0;a=f[j>>2]|0;if((f[k>>2]|0)==(a|0)){i=1;u=d;return i|0}l=c+16|0;m=c+4|0;n=h+1|0;o=0;p=a;do{a=f[p+(o<<2)>>2]|0;q=Qa[f[(f[a>>2]|0)+32>>2]&127](a)|0;b[h>>0]=q;q=l;a=f[q+4>>2]|0;if(!((a|0)>0|(a|0)==0&(f[q>>2]|0)>>>0>0)){f[g>>2]=f[m>>2];f[e>>2]=f[g>>2];Me(c,e,h,n)|0}o=o+1|0;p=f[j>>2]|0}while(o>>>0<(f[k>>2]|0)-p>>2>>>0);i=1;u=d;return i|0}function ji(a){a=a|0;var c=0,d=0,e=0,g=0,h=0,i=0;c=u;u=u+16|0;d=c;lp(a);f[a+16>>2]=0;f[a+20>>2]=0;f[a+12>>2]=a+16;e=a+24|0;lp(e);f[d>>2]=0;f[d+4>>2]=0;f[d+8>>2]=0;a=ln(32)|0;f[d>>2]=a;f[d+8>>2]=-2147483616;f[d+4>>2]=20;g=a;h=14538;i=g+20|0;do{b[g>>0]=b[h>>0]|0;g=g+1|0;h=h+1|0}while((g|0)<(i|0));b[a+20>>0]=0;Vj(e,d,1);if((b[d+11>>0]|0)<0)Oq(f[d>>2]|0);f[d>>2]=0;f[d+4>>2]=0;f[d+8>>2]=0;a=ln(32)|0;f[d>>2]=a;f[d+8>>2]=-2147483616;f[d+4>>2]=22;g=a;h=14559;i=g+22|0;do{b[g>>0]=b[h>>0]|0;g=g+1|0;h=h+1|0}while((g|0)<(i|0));b[a+22>>0]=0;Vj(e,d,1);if((b[d+11>>0]|0)>=0){u=c;return}Oq(f[d>>2]|0);u=c;return}function ki(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0,i=0;b=f[a+4>>2]|0;c=a+8|0;d=f[c>>2]|0;if((d|0)!=(b|0)){e=d;do{d=e+-4|0;f[c>>2]=d;g=f[d>>2]|0;f[d>>2]=0;if(g|0){d=g+88|0;h=f[d>>2]|0;f[d>>2]=0;if(h|0){d=f[h+8>>2]|0;if(d|0){i=h+12|0;if((f[i>>2]|0)!=(d|0))f[i>>2]=d;Oq(d)}Oq(h)}h=f[g+68>>2]|0;if(h|0){d=g+72|0;i=f[d>>2]|0;if((i|0)!=(h|0))f[d>>2]=i+(~((i+-4-h|0)>>>2)<<2);Oq(h)}h=g+64|0;i=f[h>>2]|0;f[h>>2]=0;if(i|0){h=f[i>>2]|0;if(h|0){d=i+4|0;if((f[d>>2]|0)!=(h|0))f[d>>2]=h;Oq(h)}Oq(i)}Oq(g)}e=f[c>>2]|0}while((e|0)!=(b|0))}b=f[a>>2]|0;if(!b)return;Oq(b);return}function li(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;c=u;u=u+16|0;d=c+8|0;e=c+4|0;g=c;f[g>>2]=f[a+12>>2];h=b+16|0;i=h;j=f[i>>2]|0;k=f[i+4>>2]|0;if((k|0)>0|(k|0)==0&j>>>0>0){l=k;m=j}else{f[e>>2]=f[b+4>>2];f[d>>2]=f[e>>2];Me(b,d,g,g+4|0)|0;j=h;l=f[j+4>>2]|0;m=f[j>>2]|0}f[g>>2]=f[a+20>>2];if((l|0)>0|(l|0)==0&m>>>0>0){u=c;return 1}f[e>>2]=f[b+4>>2];f[d>>2]=f[e>>2];Me(b,d,g,g+4|0)|0;u=c;return 1}function mi(a){a=a|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;c=u;u=u+16|0;d=c;e=ln(16)|0;f[d>>2]=e;f[d+8>>2]=-2147483632;f[d+4>>2]=14;g=e;h=14408;i=g+14|0;do{b[g>>0]=b[h>>0]|0;g=g+1|0;h=h+1|0}while((g|0)<(i|0));b[e+14>>0]=0;e=Hk(a,d,-1)|0;if((b[d+11>>0]|0)<0)Oq(f[d>>2]|0);j=ln(16)|0;f[d>>2]=j;f[d+8>>2]=-2147483632;f[d+4>>2]=14;g=j;h=14423;i=g+14|0;do{b[g>>0]=b[h>>0]|0;g=g+1|0;h=h+1|0}while((g|0)<(i|0));b[j+14>>0]=0;j=Hk(a,d,-1)|0;if((b[d+11>>0]|0)>=0){k=(e|0)<(j|0);l=k?j:e;m=(l|0)==-1;n=m?5:l;u=c;return n|0}Oq(f[d>>2]|0);k=(e|0)<(j|0);l=k?j:e;m=(l|0)==-1;n=m?5:l;u=c;return n|0}function ni(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;c=u;u=u+16|0;d=c+8|0;e=c+4|0;g=c;f[g>>2]=f[a+12>>2];h=b+16|0;i=h;j=f[i>>2]|0;k=f[i+4>>2]|0;if((k|0)>0|(k|0)==0&j>>>0>0){l=k;m=j}else{f[e>>2]=f[b+4>>2];f[d>>2]=f[e>>2];Me(b,d,g,g+4|0)|0;j=h;l=f[j+4>>2]|0;m=f[j>>2]|0}f[g>>2]=f[a+16>>2];if((l|0)>0|(l|0)==0&m>>>0>0){u=c;return 1}f[e>>2]=f[b+4>>2];f[d>>2]=f[e>>2];Me(b,d,g,g+4|0)|0;u=c;return 1}function oi(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;g=ln(32)|0;f[a>>2]=g;f[a+4>>2]=c+8;c=a+8|0;b[c>>0]=0;h=g+8|0;f[h>>2]=f[e>>2];f[h+4>>2]=f[e+4>>2];f[h+8>>2]=f[e+8>>2];f[e>>2]=0;f[e+4>>2]=0;f[e+8>>2]=0;h=g+20|0;i=e+12|0;f[h>>2]=0;f[g+24>>2]=0;f[g+28>>2]=0;g=e+16|0;e=f[g>>2]|0;j=f[i>>2]|0;k=e-j|0;if(!k){l=j;m=e;n=0}else{Fi(h,k);l=f[i>>2]|0;m=f[g>>2]|0;n=f[h>>2]|0}kh(n|0,l|0,m-l|0)|0;b[c>>0]=1;c=f[a>>2]|0;f[c+4>>2]=d;f[c>>2]=0;return}function pi(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0,i=0,j=0;b=a+32|0;ld(a,b);c=a+80|0;d=f[c>>2]|0;if((d|0?(e=a+84|0,(f[e>>2]|0)>0):0)?(ld(d,b),(f[e>>2]|0)>1):0){d=1;do{ld((f[c>>2]|0)+(d<<5)|0,b);d=d+1|0}while((d|0)<(f[e>>2]|0))}e=a+136|0;d=a+140|0;a=f[e>>2]|0;if((f[d>>2]|0)==(a|0))return;c=0;g=a;while(1){a=g;ci((f[a+(c*12|0)+4>>2]|0)-(f[a+(c*12|0)>>2]|0)>>2,b)|0;a=f[e>>2]|0;h=f[a+(c*12|0)>>2]|0;i=(f[a+(c*12|0)+4>>2]|0)-h>>2;if(!i)j=a;else{Mc(h,i,1,0,b)|0;j=f[e>>2]|0}c=c+1|0;if(c>>>0>=(((f[d>>2]|0)-j|0)/12|0)>>>0)break;else g=j}return}function qi(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;e=d+16|0;g=f[e>>2]|0;if(!g)if(!(vl(d)|0)){h=f[e>>2]|0;i=5}else j=0;else{h=g;i=5}a:do if((i|0)==5){g=d+20|0;e=f[g>>2]|0;k=e;if((h-e|0)>>>0>>0){j=Sa[f[d+36>>2]&31](d,a,c)|0;break}b:do if((b[d+75>>0]|0)>-1){e=c;while(1){if(!e){l=0;m=a;n=c;o=k;break b}p=e+-1|0;if((b[a+p>>0]|0)==10)break;else e=p}p=Sa[f[d+36>>2]&31](d,a,e)|0;if(p>>>0>>0){j=p;break a}l=e;m=a+e|0;n=c-e|0;o=f[g>>2]|0}else{l=0;m=a;n=c;o=k}while(0);kh(o|0,m|0,n|0)|0;f[g>>2]=(f[g>>2]|0)+n;j=l+n|0}while(0);return j|0}function ri(a){a=a|0;var c=0,d=0,e=0,g=0,h=0,i=0;c=a+12|0;d=f[c>>2]|0;f[c>>2]=0;if(d|0){c=f[d+28>>2]|0;if(c|0){e=c;do{c=e;e=f[e>>2]|0;ri(c+8|0);Oq(c)}while((e|0)!=0)}e=d+20|0;c=f[e>>2]|0;f[e>>2]=0;if(c|0)Oq(c);c=f[d+8>>2]|0;if(c|0){e=c;do{c=e;e=f[e>>2]|0;g=c+8|0;h=f[c+20>>2]|0;if(h|0){i=c+24|0;if((f[i>>2]|0)!=(h|0))f[i>>2]=h;Oq(h)}if((b[g+11>>0]|0)<0)Oq(f[g>>2]|0);Oq(c)}while((e|0)!=0)}e=f[d>>2]|0;f[d>>2]=0;if(e|0)Oq(e);Oq(d)}if((b[a+11>>0]|0)>=0)return;Oq(f[a>>2]|0);return}function si(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,o=0;g=u;u=u+32|0;h=g+12|0;i=g;f[h>>2]=0;f[h+4>>2]=0;f[h+8>>2]=0;if((e|0)>0){j=i+11|0;k=i+4|0;l=0;do{if((l|0)>0)An(h,14477)|0;il(i,$(n[d+(l<<2)>>2]));m=b[j>>0]|0;o=m<<24>>24<0;lj(h,o?f[i>>2]|0:i,o?f[k>>2]|0:m&255)|0;if((b[j>>0]|0)<0)Oq(f[i>>2]|0);l=l+1|0}while((l|0)<(e|0))}am(Ai(a,c)|0,h)|0;if((b[h+11>>0]|0)>=0){u=g;return}Oq(f[h>>2]|0);u=g;return}function ti(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;c=u;u=u+16|0;d=c;if((Qa[f[(f[b>>2]|0)+20>>2]&127](b)|0)<=0){e=1;u=c;return e|0}g=a+4|0;h=a+20|0;i=a+24|0;j=a+16|0;a=0;while(1){k=f[(f[g>>2]|0)+4>>2]|0;l=dm(k,Ra[f[(f[b>>2]|0)+24>>2]&127](b,a)|0)|0;f[d>>2]=l;if((l|0)==-1)break;k=f[h>>2]|0;if((k|0)==(f[i>>2]|0))Ri(j,d);else{f[k>>2]=l;f[h>>2]=k+4}gl(f[g>>2]|0,f[d>>2]|0)|0;a=a+1|0;if((a|0)>=(Qa[f[(f[b>>2]|0)+20>>2]&127](b)|0)){e=1;m=9;break}}if((m|0)==9){u=c;return e|0}e=0;u=c;return e|0}function ui(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0;f[a>>2]=1292;hi(a+60|0);b=f[a+48>>2]|0;if(b|0){c=a+52|0;d=f[c>>2]|0;if((d|0)!=(b|0))f[c>>2]=d+(~((d+-4-b|0)>>>2)<<2);Oq(b)}b=a+36|0;d=f[b>>2]|0;if(d|0){c=a+40|0;e=f[c>>2]|0;if((e|0)==(d|0))g=d;else{h=e;do{e=h+-24|0;f[c>>2]=e;Va[f[f[e>>2]>>2]&127](e);h=f[c>>2]|0}while((h|0)!=(d|0));g=f[b>>2]|0}Oq(g)}f[a>>2]=1232;g=f[a+16>>2]|0;if(g|0){b=a+20|0;d=f[b>>2]|0;if((d|0)!=(g|0))f[b>>2]=d+(~((d+-4-g|0)>>>2)<<2);Oq(g)}g=f[a+4>>2]|0;if(!g)return;d=a+8|0;a=f[d>>2]|0;if((a|0)!=(g|0))f[d>>2]=a+(~((a+-4-g|0)>>>2)<<2);Oq(g);return}function vi(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0;c=u;u=u+32|0;d=c+16|0;e=c+8|0;g=c;h=a+8|0;if(f[h>>2]<<5>>>0>=b>>>0){u=c;return}f[d>>2]=0;i=d+4|0;f[i>>2]=0;j=d+8|0;f[j>>2]=0;if((b|0)<0)aq(d);k=((b+-1|0)>>>5)+1|0;b=ln(k<<2)|0;f[d>>2]=b;f[i>>2]=0;f[j>>2]=k;k=f[a>>2]|0;f[e>>2]=k;f[e+4>>2]=0;b=a+4|0;l=f[b>>2]|0;f[g>>2]=k+(l>>>5<<2);f[g+4>>2]=l&31;zg(d,e,g);g=f[a>>2]|0;f[a>>2]=f[d>>2];f[d>>2]=g;d=f[b>>2]|0;f[b>>2]=f[i>>2];f[i>>2]=d;d=f[h>>2]|0;f[h>>2]=f[j>>2];f[j>>2]=d;if(g|0)Oq(g);u=c;return}function wi(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0;b=a+136|0;c=f[b>>2]|0;if(c|0){d=a+140|0;e=f[d>>2]|0;if((e|0)==(c|0))g=c;else{h=e;while(1){e=h+-12|0;f[d>>2]=e;i=f[e>>2]|0;if(!i)j=e;else{e=h+-8|0;k=f[e>>2]|0;if((k|0)!=(i|0))f[e>>2]=k+(~((k+-4-i|0)>>>2)<<2);Oq(i);j=f[d>>2]|0}if((j|0)==(c|0))break;else h=j}g=f[b>>2]|0}Oq(g)}g=f[a+104>>2]|0;if(g|0){b=a+108|0;j=f[b>>2]|0;if((j|0)!=(g|0))f[b>>2]=j+(~((j+-4-g|0)>>>2)<<2);Oq(g)}g=f[a+92>>2]|0;if(!g){uj(a);return}j=a+96|0;b=f[j>>2]|0;if((b|0)!=(g|0))f[j>>2]=b+(~((b+-4-g|0)>>>2)<<2);Oq(g);uj(a);return}function xi(a){a=a|0;var c=0,d=0,e=0,g=0;f[a>>2]=3680;c=a+72|0;d=a+136|0;e=a+4|0;g=e+64|0;do{f[e>>2]=0;e=e+4|0}while((e|0)<(g|0));e=c;g=e+64|0;do{f[e>>2]=0;e=e+4|0}while((e|0)<(g|0));n[d>>2]=$(1.0);d=a+140|0;f[d>>2]=0;f[d+4>>2]=0;f[d+8>>2]=0;f[d+12>>2]=0;f[d+16>>2]=0;f[d+20>>2]=0;f[a+164>>2]=-1;d=a+168|0;f[d>>2]=0;f[d+4>>2]=0;f[d+8>>2]=0;f[d+12>>2]=0;f[d+16>>2]=0;f[d+20>>2]=0;f[d+24>>2]=0;wn(a+200|0);Gn(a+232|0);d=a+316|0;e=a+264|0;g=e+52|0;do{f[e>>2]=0;e=e+4|0}while((e|0)<(g|0));f[d>>2]=-1;f[a+320>>2]=-1;f[a+324>>2]=0;f[a+328>>2]=2;f[a+332>>2]=7;f[a+336>>2]=0;f[a+340>>2]=0;f[a+344>>2]=0;b[a+352>>0]=0;return}function yi(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;c=a+4|0;d=f[a>>2]|0;e=(f[c>>2]|0)-d|0;g=(e|0)/12|0;h=g+1|0;if(h>>>0>357913941)aq(a);i=a+8|0;j=((f[i>>2]|0)-d|0)/12|0;k=j<<1;l=j>>>0<178956970?(k>>>0>>0?h:k):357913941;do if(l)if(l>>>0>357913941){k=ra(8)|0;Oo(k,16035);f[k>>2]=7256;va(k|0,1112,110)}else{m=ln(l*12|0)|0;break}else m=0;while(0);k=m+(g*12|0)|0;f[k>>2]=f[b>>2];f[k+4>>2]=f[b+4>>2];f[k+8>>2]=f[b+8>>2];b=k+(((e|0)/-12|0)*12|0)|0;if((e|0)>0)kh(b|0,d|0,e|0)|0;f[a>>2]=b;f[c>>2]=k+12;f[i>>2]=m+(l*12|0);if(!d)return;Oq(d);return}function zi(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;g=a+16|0;h=g;i=f[h+4>>2]|0;if((d|0)<0|(d|0)==0&c>>>0<1|((i|0)>0|(i|0)==0&(f[h>>2]|0)>>>0>0)){j=0;return j|0}b[a+24>>0]=e&1;h=Vn(c|0,d|0,7,0)|0;d=Ik(h|0,I|0,8,0)|0;h=I;c=g;f[c>>2]=d;f[c+4>>2]=h;c=a+4|0;g=f[c>>2]|0;i=f[a>>2]|0;k=g-i|0;l=Vn(k|0,0,8,0)|0;m=e?l:k;l=Vn(m|0,(e?I:0)|0,d|0,h|0)|0;h=i;i=g;if(k>>>0>=l>>>0)if(k>>>0>l>>>0?(g=h+l|0,(g|0)!=(i|0)):0){f[c>>2]=g;n=h}else n=h;else{Fi(a,l-k|0);n=f[a>>2]|0}k=ln(8)|0;f[k>>2]=n+m;f[k+4>>2]=0;m=a+12|0;a=f[m>>2]|0;f[m>>2]=k;if(!a){j=1;return j|0}Oq(a);j=1;return j|0}function Ai(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0;c=u;u=u+16|0;d=c;e=yg(a,d,b)|0;g=f[e>>2]|0;if(g|0){h=g;i=h+28|0;u=c;return i|0}g=ln(40)|0;pj(g+16|0,b);b=g+28|0;f[b>>2]=0;f[b+4>>2]=0;f[b+8>>2]=0;b=f[d>>2]|0;f[g>>2]=0;f[g+4>>2]=0;f[g+8>>2]=b;f[e>>2]=g;b=f[f[a>>2]>>2]|0;if(!b)j=g;else{f[a>>2]=b;j=f[e>>2]|0}Oe(f[a+4>>2]|0,j);j=a+8|0;f[j>>2]=(f[j>>2]|0)+1;h=g;i=h+28|0;u=c;return i|0}function Bi(a,c,d,e,g,h,i,j){a=a|0;c=c|0;d=d|0;e=e|0;g=g|0;h=h|0;i=i|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0;k=u;u=u+16|0;l=k;if((-18-c|0)>>>0>>0)aq(a);if((b[a+11>>0]|0)<0)m=f[a>>2]|0;else m=a;if(c>>>0<2147483623){n=d+c|0;d=c<<1;o=n>>>0>>0?d:n;p=o>>>0<11?11:o+16&-16}else p=-17;o=ln(p)|0;if(g|0)Fo(o,m,g)|0;if(i|0)Fo(o+g|0,j,i)|0;j=e-h|0;e=j-g|0;if(e|0)Fo(o+g+i|0,m+g+h|0,e)|0;if((c|0)!=10)Oq(m);f[a>>2]=o;f[a+8>>2]=p|-2147483648;p=j+i|0;f[a+4>>2]=p;b[l>>0]=0;up(o+p|0,l);u=k;return}function Ci(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;c=a+8|0;d=f[c>>2]|0;e=a+4|0;g=f[e>>2]|0;if(d-g>>2>>>0>=b>>>0){sj(g|0,0,b<<2|0)|0;f[e>>2]=g+(b<<2);return}h=f[a>>2]|0;i=g-h|0;g=i>>2;j=g+b|0;if(j>>>0>1073741823)aq(a);k=d-h|0;d=k>>1;l=k>>2>>>0<536870911?(d>>>0>>0?j:d):1073741823;do if(l)if(l>>>0>1073741823){d=ra(8)|0;Oo(d,16035);f[d>>2]=7256;va(d|0,1112,110)}else{d=ln(l<<2)|0;m=d;n=d;break}else{m=0;n=0}while(0);d=m+(g<<2)|0;sj(d|0,0,b<<2|0)|0;if((i|0)>0)kh(n|0,h|0,i|0)|0;f[a>>2]=m;f[e>>2]=d+(b<<2);f[c>>2]=m+(l<<2);if(!h)return;Oq(h);return}function Di(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;g=ln(32)|0;f[a>>2]=g;f[a+4>>2]=c+8;c=a+8|0;b[c>>0]=0;pj(g+8|0,e);h=g+20|0;i=e+12|0;f[h>>2]=0;f[g+24>>2]=0;f[g+28>>2]=0;g=e+16|0;e=f[g>>2]|0;j=f[i>>2]|0;k=e-j|0;if(!k){l=j;m=e;n=0}else{Fi(h,k);l=f[i>>2]|0;m=f[g>>2]|0;n=f[h>>2]|0}kh(n|0,l|0,m-l|0)|0;b[c>>0]=1;c=f[a>>2]|0;f[c+4>>2]=d;f[c>>2]=0;return}function Ei(a,c,d){a=a|0;c=c|0;d=$(d);var e=0,g=0,h=0,i=0,j=0,k=0.0,l=0,m=0,n=0,o=0;e=u;u=u+16|0;g=e;h=c+11|0;i=b[h>>0]|0;if(i<<24>>24<0)j=f[c+4>>2]|0;else j=i&255;k=+d;l=j;j=i;while(1){if(j<<24>>24<0)m=f[c>>2]|0;else m=c;p[g>>3]=k;n=Bn(m,l+1|0,18562,g)|0;if((n|0)>-1)if(n>>>0>l>>>0)o=n;else break;else o=l<<1|1;Hj(c,o,0);l=o;j=b[h>>0]|0}Hj(c,n,0);f[a>>2]=f[c>>2];f[a+4>>2]=f[c+4>>2];f[a+8>>2]=f[c+8>>2];a=0;while(1){if((a|0)==3)break;f[c+(a<<2)>>2]=0;a=a+1|0}u=e;return}function Fi(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0;d=a+8|0;e=f[d>>2]|0;g=a+4|0;h=f[g>>2]|0;if((e-h|0)>>>0>=c>>>0){i=c;j=h;do{b[j>>0]=0;j=(f[g>>2]|0)+1|0;f[g>>2]=j;i=i+-1|0}while((i|0)!=0);return}i=f[a>>2]|0;j=h-i|0;h=j+c|0;if((h|0)<0)aq(a);k=e-i|0;i=k<<1;e=k>>>0<1073741823?(i>>>0>>0?h:i):2147483647;if(!e)l=0;else l=ln(e)|0;i=l+j|0;j=l+e|0;e=c;c=i;l=i;do{b[l>>0]=0;l=c+1|0;c=l;e=e+-1|0}while((e|0)!=0);e=f[a>>2]|0;l=(f[g>>2]|0)-e|0;h=i+(0-l)|0;if((l|0)>0)kh(h|0,e|0,l|0)|0;f[a>>2]=h;f[g>>2]=c;f[d>>2]=j;if(!e)return;Oq(e);return}function Gi(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0;c=a+4|0;d=f[c>>2]|0;e=f[a>>2]|0;g=(d-e|0)/136|0;h=d;if(g>>>0>>0){Ge(a,b-g|0);return}if(g>>>0<=b>>>0)return;g=e+(b*136|0)|0;if((g|0)==(h|0))return;else i=h;do{f[c>>2]=i+-136;h=f[i+-20>>2]|0;if(h|0){b=i+-16|0;e=f[b>>2]|0;if((e|0)!=(h|0))f[b>>2]=e+(~((e+-4-h|0)>>>2)<<2);Oq(h)}h=f[i+-32>>2]|0;if(h|0){e=i+-28|0;b=f[e>>2]|0;if((b|0)!=(h|0))f[e>>2]=b+(~((b+-4-h|0)>>>2)<<2);Oq(h)}Mi(i+-132|0);i=f[c>>2]|0}while((i|0)!=(g|0));return}function Hi(a,b){a=a|0;b=b|0;var c=0,d=Oa,e=0,g=0;if((b|0)!=1)if(!(b+-1&b))c=b;else c=cb(b)|0;else c=2;b=f[a+4>>2]|0;if(c>>>0>b>>>0){Sd(a,c);return}if(c>>>0>=b>>>0)return;d=$((f[a+12>>2]|0)>>>0);e=~~$(W($(d/$(n[a+16>>2]))))>>>0;if(b>>>0>2&(b+-1&b|0)==0)g=1<<32-(_(e+-1|0)|0);else g=cb(e)|0;e=c>>>0>>0?g:c;if(e>>>0>=b>>>0)return;Sd(a,e);return}function Ii(a){a=a|0;var b=0,c=0,d=0;b=f[a+76>>2]|0;if(b|0){c=a+80|0;d=f[c>>2]|0;if((d|0)!=(b|0))f[c>>2]=d+(~((d+-4-b|0)>>>2)<<2);Oq(b)}b=f[a+64>>2]|0;if(b|0){d=a+68|0;if((f[d>>2]|0)!=(b|0))f[d>>2]=b;Oq(b)}b=f[a+48>>2]|0;if(b|0){d=a+52|0;c=f[d>>2]|0;if((c|0)!=(b|0))f[d>>2]=c+(~((c+-4-b|0)>>>2)<<2);Oq(b)}b=f[a+24>>2]|0;if(b|0){c=a+28|0;d=f[c>>2]|0;if((d|0)!=(b|0))f[c>>2]=d+(~((d+-4-b|0)>>>2)<<2);Oq(b)}b=f[a+12>>2]|0;if(b|0){d=a+16|0;c=f[d>>2]|0;if((c|0)!=(b|0))f[d>>2]=c+(~((c+-4-b|0)>>>2)<<2);Oq(b)}b=f[a>>2]|0;if(!b)return;c=a+4|0;a=f[c>>2]|0;if((a|0)!=(b|0))f[c>>2]=a+(~((a+-4-b|0)>>>2)<<2);Oq(b);return}function Ji(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;e=u;u=u+16|0;g=e;h=c+11|0;i=b[h>>0]|0;if(i<<24>>24<0)j=f[c+4>>2]|0;else j=i&255;k=j;j=i;while(1){if(j<<24>>24<0)l=f[c>>2]|0;else l=c;f[g>>2]=d;m=Bn(l,k+1|0,18559,g)|0;if((m|0)>-1)if(m>>>0>k>>>0)n=m;else break;else n=k<<1|1;Hj(c,n,0);k=n;j=b[h>>0]|0}Hj(c,m,0);f[a>>2]=f[c>>2];f[a+4>>2]=f[c+4>>2];f[a+8>>2]=f[c+8>>2];a=0;while(1){if((a|0)==3)break;f[c+(a<<2)>>2]=0;a=a+1|0}u=e;return}function Ki(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;b=a+8|0;c=f[b>>2]|0;if((c|0)<0){d=0;return d|0}e=a+4|0;a=f[e>>2]|0;g=a+4|0;h=f[g>>2]|0;i=f[a>>2]|0;j=h-i>>2;k=i;i=h;if(c>>>0<=j>>>0)if(c>>>0>>0?(h=k+(c<<2)|0,(h|0)!=(i|0)):0){f[g>>2]=i+(~((i+-4-h|0)>>>2)<<2);l=c}else l=c;else{Ci(a,c-j|0);l=f[b>>2]|0}if((l|0)<=0){d=1;return d|0}b=f[e>>2]|0;e=f[b>>2]|0;j=(f[b+4>>2]|0)-e>>2;c=e;e=0;while(1){if(j>>>0<=e>>>0){m=10;break}f[c+(e<<2)>>2]=e;e=e+1|0;if((e|0)>=(l|0)){d=1;m=12;break}}if((m|0)==10)aq(b);else if((m|0)==12)return d|0;return 0}function Li(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0;e=u;u=u+16|0;g=e;h=ln(16)|0;f[g>>2]=h;f[g+8>>2]=-2147483632;f[g+4>>2]=14;i=h;j=14408;k=i+14|0;do{b[i>>0]=b[j>>0]|0;i=i+1|0;j=j+1|0}while((i|0)<(k|0));b[h+14>>0]=0;Xj(a,g,c);if((b[g+11>>0]|0)<0)Oq(f[g>>2]|0);c=ln(16)|0;f[g>>2]=c;f[g+8>>2]=-2147483632;f[g+4>>2]=14;i=c;j=14423;k=i+14|0;do{b[i>>0]=b[j>>0]|0;i=i+1|0;j=j+1|0}while((i|0)<(k|0));b[c+14>>0]=0;Xj(a,g,d);if((b[g+11>>0]|0)>=0){u=e;return}Oq(f[g>>2]|0);u=e;return}function Mi(a){a=a|0;var b=0,c=0,d=0;b=f[a+84>>2]|0;if(b|0){c=a+88|0;d=f[c>>2]|0;if((d|0)!=(b|0))f[c>>2]=d+(~((d+-4-b|0)>>>2)<<2);Oq(b)}b=f[a+72>>2]|0;if(b|0){d=a+76|0;if((f[d>>2]|0)!=(b|0))f[d>>2]=b;Oq(b)}b=f[a+52>>2]|0;if(b|0){d=a+56|0;c=f[d>>2]|0;if((c|0)!=(b|0))f[d>>2]=c+(~((c+-4-b|0)>>>2)<<2);Oq(b)}b=f[a+40>>2]|0;if(b|0){c=a+44|0;d=f[c>>2]|0;if((d|0)!=(b|0))f[c>>2]=d+(~((d+-4-b|0)>>>2)<<2);Oq(b)}b=f[a+28>>2]|0;if(b|0){d=a+32|0;c=f[d>>2]|0;if((c|0)!=(b|0))f[d>>2]=c+(~((c+-4-b|0)>>>2)<<2);Oq(b)}b=f[a+12>>2]|0;if(b|0)Oq(b);b=f[a>>2]|0;if(!b)return;Oq(b);return}function Ni(a){a=a|0;var b=0,c=0,d=0,e=0;f[a>>2]=1352;b=a+32|0;c=f[b>>2]|0;f[b>>2]=0;if(c|0){b=c+88|0;d=f[b>>2]|0;f[b>>2]=0;if(d|0){b=f[d+8>>2]|0;if(b|0){e=d+12|0;if((f[e>>2]|0)!=(b|0))f[e>>2]=b;Oq(b)}Oq(d)}d=f[c+68>>2]|0;if(d|0){b=c+72|0;e=f[b>>2]|0;if((e|0)!=(d|0))f[b>>2]=e+(~((e+-4-d|0)>>>2)<<2);Oq(d)}d=c+64|0;e=f[d>>2]|0;f[d>>2]=0;if(e|0){d=f[e>>2]|0;if(d|0){b=e+4|0;if((f[b>>2]|0)!=(d|0))f[b>>2]=d;Oq(d)}Oq(e)}Oq(c)}c=f[a+16>>2]|0;if(!c)return;e=a+20|0;a=f[e>>2]|0;if((a|0)!=(c|0))f[e>>2]=a+(~((a+-4-c|0)>>>2)<<2);Oq(c);return}function Oi(){var a=0,b=0,c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0;a=u;u=u+48|0;b=a+32|0;c=a+24|0;d=a+16|0;e=a;g=a+36|0;a=sn()|0;if(a|0?(h=f[a>>2]|0,h|0):0){a=h+48|0;i=f[a>>2]|0;j=f[a+4>>2]|0;if(!((i&-256|0)==1126902528&(j|0)==1129074247)){f[c>>2]=18701;Hn(18651,c)}if((i|0)==1126902529&(j|0)==1129074247)k=f[h+44>>2]|0;else k=h+80|0;f[g>>2]=k;k=f[h>>2]|0;h=f[k+4>>2]|0;if(Sa[f[(f[258]|0)+16>>2]&31](1032,k,g)|0){k=f[g>>2]|0;g=Qa[f[(f[k>>2]|0)+8>>2]&127](k)|0;f[e>>2]=18701;f[e+4>>2]=h;f[e+8>>2]=g;Hn(18565,e)}else{f[d>>2]=18701;f[d+4>>2]=h;Hn(18610,d)}}Hn(18689,b)}function Pi(a,c,d){a=a|0;c=c|0;d=d|0;var e=0;do if(a){if(c>>>0<128){b[a>>0]=c;e=1;break}d=(Jq()|0)+188|0;if(!(f[f[d>>2]>>2]|0))if((c&-128|0)==57216){b[a>>0]=c;e=1;break}else{d=Vq()|0;f[d>>2]=84;e=-1;break}if(c>>>0<2048){b[a>>0]=c>>>6|192;b[a+1>>0]=c&63|128;e=2;break}if(c>>>0<55296|(c&-8192|0)==57344){b[a>>0]=c>>>12|224;b[a+1>>0]=c>>>6&63|128;b[a+2>>0]=c&63|128;e=3;break}if((c+-65536|0)>>>0<1048576){b[a>>0]=c>>>18|240;b[a+1>>0]=c>>>12&63|128;b[a+2>>0]=c>>>6&63|128;b[a+3>>0]=c&63|128;e=4;break}else{d=Vq()|0;f[d>>2]=84;e=-1;break}}else e=1;while(0);return e|0}function Qi(a){a=a|0;var b=0,c=0,d=0;b=f[a+92>>2]|0;if(b|0){c=a+96|0;d=f[c>>2]|0;if((d|0)!=(b|0))f[c>>2]=d+(~((d+-4-b|0)>>>2)<<2);Oq(b)}b=f[a+76>>2]|0;if(b|0){d=a+80|0;c=f[d>>2]|0;if((c|0)!=(b|0))f[d>>2]=c+(~((c+-4-b|0)>>>2)<<2);Oq(b)}b=f[a+64>>2]|0;if(b|0){c=a+68|0;d=f[c>>2]|0;if((d|0)!=(b|0))f[c>>2]=d+(~((d+-4-b|0)>>>2)<<2);Oq(b)}b=f[a+52>>2]|0;if(b|0){d=a+56|0;c=f[d>>2]|0;if((c|0)!=(b|0))f[d>>2]=c+(~((c+-4-b|0)>>>2)<<2);Oq(b)}f[a+4>>2]=3636;b=f[a+24>>2]|0;if(b|0)Oq(b);b=f[a+12>>2]|0;if(!b)return;Oq(b);return}function Ri(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;c=a+4|0;d=f[a>>2]|0;e=(f[c>>2]|0)-d|0;g=e>>2;h=g+1|0;if(h>>>0>1073741823)aq(a);i=a+8|0;j=(f[i>>2]|0)-d|0;k=j>>1;l=j>>2>>>0<536870911?(k>>>0>>0?h:k):1073741823;do if(l)if(l>>>0>1073741823){k=ra(8)|0;Oo(k,16035);f[k>>2]=7256;va(k|0,1112,110)}else{k=ln(l<<2)|0;m=k;n=k;break}else{m=0;n=0}while(0);k=m+(g<<2)|0;f[k>>2]=f[b>>2];if((e|0)>0)kh(n|0,d|0,e|0)|0;f[a>>2]=m;f[c>>2]=k+4;f[i>>2]=m+(l<<2);if(!d)return;Oq(d);return}function Si(a){a=a|0;var c=0,d=0,e=0,g=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;c=a+104|0;d=f[c>>2]|0;if((d|0)!=0?(f[a+108>>2]|0)>=(d|0):0)e=4;else{d=Wm(a)|0;if((d|0)>=0){g=f[c>>2]|0;c=a+8|0;if(g){i=f[c>>2]|0;j=f[a+4>>2]|0;k=g-(f[a+108>>2]|0)|0;g=i;if((i-j|0)<(k|0)){l=g;m=g}else{l=j+(k+-1)|0;m=g}}else{g=f[c>>2]|0;l=g;m=g}f[a+100>>2]=l;l=a+4|0;if(!m)n=f[l>>2]|0;else{g=f[l>>2]|0;l=a+108|0;f[l>>2]=m+1-g+(f[l>>2]|0);n=g}g=n+-1|0;if((d|0)==(h[g>>0]|0|0))o=d;else{b[g>>0]=d;o=d}}else e=4}if((e|0)==4){f[a+100>>2]=0;o=-1}return o|0}function Ti(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;f[a>>2]=1544;f[a+4>>2]=b;b=a+8|0;f[b>>2]=f[c>>2];f[b+4>>2]=f[c+4>>2];f[b+8>>2]=f[c+8>>2];f[b+12>>2]=f[c+12>>2];f[b+16>>2]=f[c+16>>2];f[b+20>>2]=f[c+20>>2];fk(a+32|0,c+24|0);f[a>>2]=2384;c=a+44|0;f[c>>2]=f[d>>2];f[c+4>>2]=f[d+4>>2];f[c+8>>2]=f[d+8>>2];f[c+12>>2]=f[d+12>>2];f[a>>2]=2440;d=a+112|0;c=a+60|0;b=c+52|0;do{f[c>>2]=0;c=c+4|0}while((c|0)<(b|0));Zm(d);f[a+152>>2]=0;f[a+156>>2]=0;f[a+160>>2]=0;return}function Ui(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;f[a>>2]=1544;f[a+4>>2]=b;b=a+8|0;f[b>>2]=f[c>>2];f[b+4>>2]=f[c+4>>2];f[b+8>>2]=f[c+8>>2];f[b+12>>2]=f[c+12>>2];f[b+16>>2]=f[c+16>>2];f[b+20>>2]=f[c+20>>2];fk(a+32|0,c+24|0);f[a>>2]=1964;c=a+44|0;f[c>>2]=f[d>>2];f[c+4>>2]=f[d+4>>2];f[c+8>>2]=f[d+8>>2];f[c+12>>2]=f[d+12>>2];f[a>>2]=2020;d=a+112|0;c=a+60|0;b=c+52|0;do{f[c>>2]=0;c=c+4|0}while((c|0)<(b|0));Zm(d);f[a+152>>2]=0;f[a+156>>2]=0;f[a+160>>2]=0;return}function Vi(a){a=a|0;var b=0,c=0,d=0;f[a>>2]=2440;b=f[a+152>>2]|0;if(b|0){c=a+156|0;d=f[c>>2]|0;if((d|0)!=(b|0))f[c>>2]=d+(~((d+-4-b|0)>>>2)<<2);Oq(b)}b=f[a+112>>2]|0;if(b|0){d=a+116|0;c=f[d>>2]|0;if((c|0)!=(b|0))f[d>>2]=c+(~((c+-4-b|0)>>>2)<<2);Oq(b)}b=f[a+96>>2]|0;if(b|0)Oq(b);b=f[a+84>>2]|0;if(b|0)Oq(b);b=f[a+72>>2]|0;if(b|0)Oq(b);b=f[a+60>>2]|0;if(b|0)Oq(b);f[a>>2]=1544;b=f[a+32>>2]|0;if(!b)return;c=a+36|0;a=f[c>>2]|0;if((a|0)!=(b|0))f[c>>2]=a+(~((a+-4-b|0)>>>2)<<2);Oq(b);return}function Wi(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0;d=u;u=u+16|0;e=d;g=f[(f[c+4>>2]|0)+4>>2]|0;if(!g){f[a>>2]=0;f[a+4>>2]=0;f[a+8>>2]=0;f[a+12>>2]=0;u=d;return}if(!(Dj(d+12|0,f[c+44>>2]|0,g)|0)){g=ln(32)|0;f[e>>2]=g;f[e+8>>2]=-2147483616;f[e+4>>2]=26;c=g;h=15859;i=c+26|0;do{b[c>>0]=b[h>>0]|0;c=c+1|0;h=h+1|0}while((c|0)<(i|0));b[g+26>>0]=0;f[a>>2]=-1;pj(a+4|0,e);if((b[e+11>>0]|0)<0)Oq(f[e>>2]|0)}else{f[a>>2]=0;f[a+4>>2]=0;f[a+8>>2]=0;f[a+12>>2]=0}u=d;return}function Xi(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0;c=b+48|0;if((mi(f[c>>2]|0)|0)>9){d=0;return d|0}if((Qa[f[(f[b>>2]|0)+8>>2]&127](b)|0)!=1){d=0;return d|0}e=b+4|0;b=(f[(f[(f[e>>2]|0)+8>>2]|0)+(a<<2)>>2]|0)+56|0;a=f[b>>2]|0;do if((a|0)==3)if((mi(f[c>>2]|0)|0)<4){d=5;return d|0}else{g=f[b>>2]|0;break}else g=a;while(0);a=mi(f[c>>2]|0)|0;if((g|0)==1){d=(a|0)<4?6:0;return d|0}if((a|0)>7){d=0;return d|0}if((mi(f[c>>2]|0)|0)>1){d=1;return d|0}else return ((f[(f[e>>2]|0)+80>>2]|0)>>>0<40?1:4)|0;return 0}function Yi(a){a=a|0;var b=0,c=0,d=0;f[a>>2]=2020;b=f[a+152>>2]|0;if(b|0){c=a+156|0;d=f[c>>2]|0;if((d|0)!=(b|0))f[c>>2]=d+(~((d+-4-b|0)>>>2)<<2);Oq(b)}b=f[a+112>>2]|0;if(b|0){d=a+116|0;c=f[d>>2]|0;if((c|0)!=(b|0))f[d>>2]=c+(~((c+-4-b|0)>>>2)<<2);Oq(b)}b=f[a+96>>2]|0;if(b|0)Oq(b);b=f[a+84>>2]|0;if(b|0)Oq(b);b=f[a+72>>2]|0;if(b|0)Oq(b);b=f[a+60>>2]|0;if(b|0)Oq(b);f[a>>2]=1544;b=f[a+32>>2]|0;if(!b)return;c=a+36|0;a=f[c>>2]|0;if((a|0)!=(b|0))f[c>>2]=a+(~((a+-4-b|0)>>>2)<<2);Oq(b);return}function Zi(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;g=u;u=u+128|0;h=g+124|0;i=g;j=i;k=6596;l=j+124|0;do{f[j>>2]=f[k>>2];j=j+4|0;k=k+4|0}while((j|0)<(l|0));if((c+-1|0)>>>0>2147483646)if(!c){m=h;n=1;o=4}else{h=Vq()|0;f[h>>2]=75;p=-1}else{m=a;n=c;o=4}if((o|0)==4){o=-2-m|0;c=n>>>0>o>>>0?o:n;f[i+48>>2]=c;n=i+20|0;f[n>>2]=m;f[i+44>>2]=m;o=m+c|0;m=i+16|0;f[m>>2]=o;f[i+28>>2]=o;o=Ah(i,d,e)|0;if(!c)p=o;else{c=f[n>>2]|0;b[c+(((c|0)==(f[m>>2]|0))<<31>>31)>>0]=0;p=o}}u=g;return p|0}function _i(a){a=a|0;var c=0,d=0,e=0,g=0;f[a>>2]=3480;c=a+72|0;d=a+136|0;e=a+4|0;g=e+64|0;do{f[e>>2]=0;e=e+4|0}while((e|0)<(g|0));e=c;g=e+64|0;do{f[e>>2]=0;e=e+4|0}while((e|0)<(g|0));n[d>>2]=$(1.0);d=a+140|0;f[d>>2]=0;f[d+4>>2]=0;f[d+8>>2]=0;f[d+12>>2]=0;f[d+16>>2]=0;f[d+20>>2]=0;f[a+164>>2]=-1;d=a+168|0;f[d>>2]=0;f[d+4>>2]=0;f[d+8>>2]=0;f[d+12>>2]=0;f[d+16>>2]=0;f[d+20>>2]=0;f[d+24>>2]=0;wn(a+200|0);Gn(a+232|0);d=a+264|0;f[d>>2]=0;f[d+4>>2]=0;f[d+8>>2]=0;f[d+12>>2]=0;f[d+16>>2]=0;f[d+20>>2]=0;b[d+24>>0]=0;return}function $i(a,c,d,e){a=a|0;c=c|0;d=d|0;e=+e;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;a=u;u=u+16|0;g=a;if(!c){h=0;u=a;return h|0}f[g>>2]=0;f[g+4>>2]=0;f[g+8>>2]=0;i=Gj(d)|0;if(i>>>0>4294967279)aq(g);if(i>>>0<11){b[g+11>>0]=i;if(!i)j=g;else{k=g;l=7}}else{m=i+16&-16;n=ln(m)|0;f[g>>2]=n;f[g+8>>2]=m|-2147483648;f[g+4>>2]=i;k=n;l=7}if((l|0)==7){kh(k|0,d|0,i|0)|0;j=k}b[j+i>>0]=0;Zl(c,g,e);if((b[g+11>>0]|0)<0)Oq(f[g>>2]|0);h=1;u=a;return h|0}function aj(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;a=u;u=u+16|0;g=a;if(!c){h=0;u=a;return h|0}f[g>>2]=0;f[g+4>>2]=0;f[g+8>>2]=0;i=Gj(d)|0;if(i>>>0>4294967279)aq(g);if(i>>>0<11){b[g+11>>0]=i;if(!i)j=g;else{k=g;l=7}}else{m=i+16&-16;n=ln(m)|0;f[g>>2]=n;f[g+8>>2]=m|-2147483648;f[g+4>>2]=i;k=n;l=7}if((l|0)==7){kh(k|0,d|0,i|0)|0;j=k}b[j+i>>0]=0;$l(c,g,e);if((b[g+11>>0]|0)<0)Oq(f[g>>2]|0);h=1;u=a;return h|0}function bj(a){a=a|0;var c=0,d=0,e=0,g=0,h=0;c=f[a+28>>2]|0;if(c|0){d=c;do{c=d;d=f[d>>2]|0;e=c+8|0;g=c+20|0;h=f[g>>2]|0;f[g>>2]=0;if(h|0){bj(h);Oq(h)}if((b[e+11>>0]|0)<0)Oq(f[e>>2]|0);Oq(c)}while((d|0)!=0)}d=a+20|0;c=f[d>>2]|0;f[d>>2]=0;if(c|0)Oq(c);c=f[a+8>>2]|0;if(c|0){d=c;do{c=d;d=f[d>>2]|0;e=c+8|0;h=f[c+20>>2]|0;if(h|0){g=c+24|0;if((f[g>>2]|0)!=(h|0))f[g>>2]=h;Oq(h)}if((b[e+11>>0]|0)<0)Oq(f[e>>2]|0);Oq(c)}while((d|0)!=0)}d=f[a>>2]|0;f[a>>2]=0;if(!d)return;Oq(d);return}function cj(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0;e=u;u=u+16|0;g=e;h=f[c+36>>2]|0;if(!h){i=ln(32)|0;f[g>>2]=i;f[g+8>>2]=-2147483616;f[g+4>>2]=23;j=i;k=15706;l=j+23|0;do{b[j>>0]=b[k>>0]|0;j=j+1|0;k=k+1|0}while((j|0)<(l|0));b[i+23>>0]=0;f[a>>2]=-1;pj(a+4|0,g);if((b[g+11>>0]|0)<0)Oq(f[g>>2]|0);u=e;return}g=f[c+40>>2]|0;if(!g){Sc(a,c,h,d);u=e;return}else{bi(a,c,g,d);u=e;return}}function dj(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0;tk(a);b=a+84|0;c=f[b>>2]|0;if((c|0)<=0)return;d=c<<5;e=Lq(c>>>0>134217727|d>>>0>4294967291?-1:d+4|0)|0;f[e>>2]=c;d=e+4|0;e=d+(c<<5)|0;c=d;do{wn(c);c=c+32|0}while((c|0)!=(e|0));e=a+80|0;a=f[e>>2]|0;f[e>>2]=d;if(a|0){d=a+-4|0;c=f[d>>2]|0;if(c|0){g=a+(c<<5)|0;do{g=g+-32|0;Fj(g)}while((g|0)!=(a|0))}Mq(d)}if((f[b>>2]|0)>0)h=0;else return;do{tk((f[e>>2]|0)+(h<<5)|0);h=h+1|0}while((h|0)<(f[b>>2]|0));return}function ej(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0;if(!b){d=0;return d|0}if(f[b+4>>2]|0){d=0;return d|0}a=ln(52)|0;Ub(a,c);f[a+40>>2]=0;f[a+44>>2]=0;f[a+48>>2]=0;c=b+4|0;b=f[c>>2]|0;f[c>>2]=a;if(!b){d=1;return d|0}a=b+40|0;c=f[a>>2]|0;if(c|0){e=b+44|0;g=f[e>>2]|0;if((g|0)==(c|0))h=c;else{i=g;do{g=i+-4|0;f[e>>2]=g;j=f[g>>2]|0;f[g>>2]=0;if(j|0){bj(j);Oq(j)}i=f[e>>2]|0}while((i|0)!=(c|0));h=f[a>>2]|0}Oq(h)}bj(b);Oq(b);d=1;return d|0}function fj(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0;c=f[a>>2]|0;if(b){b=c+8|0;d=b;e=Vn(f[d>>2]|0,f[d+4>>2]|0,1,0)|0;d=b;f[d>>2]=e;f[d+4>>2]=I;d=a+28|0;e=f[d>>2]|0;b=a+24|0;f[b>>2]=f[b>>2]|1<>2]|0,f[e+4>>2]|0,1,0)|0;e=c;f[e>>2]=d;f[e+4>>2]=I;e=a+28|0;g=e;h=f[e>>2]|0}e=h+1|0;f[g>>2]=e;if((e|0)!=32)return;e=a+24|0;h=a+16|0;d=f[h>>2]|0;if((d|0)==(f[a+20>>2]|0))Ri(a+12|0,e);else{f[d>>2]=f[e>>2];f[h>>2]=d+4}f[g>>2]=0;f[e>>2]=0;return}function gj(a,b){a=a|0;b=b|0;var c=0,d=0;c=a+32|0;a=f[b>>2]|0;f[b>>2]=0;b=f[c>>2]|0;f[c>>2]=a;if(!b)return;a=b+88|0;c=f[a>>2]|0;f[a>>2]=0;if(c|0){a=f[c+8>>2]|0;if(a|0){d=c+12|0;if((f[d>>2]|0)!=(a|0))f[d>>2]=a;Oq(a)}Oq(c)}c=f[b+68>>2]|0;if(c|0){a=b+72|0;d=f[a>>2]|0;if((d|0)!=(c|0))f[a>>2]=d+(~((d+-4-c|0)>>>2)<<2);Oq(c)}c=b+64|0;d=f[c>>2]|0;f[c>>2]=0;if(d|0){c=f[d>>2]|0;if(c|0){a=d+4|0;if((f[a>>2]|0)!=(c|0))f[a>>2]=c;Oq(c)}Oq(d)}Oq(b);return}function hj(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;e=u;u=u+16|0;g=e;if(c|0){h=a+11|0;i=b[h>>0]|0;if(i<<24>>24<0){j=f[a+4>>2]|0;k=(f[a+8>>2]&2147483647)+-1|0}else{j=i&255;k=10}if((k-j|0)>>>0>>0){xj(a,k,c-k+j|0,j,j,0,0);l=b[h>>0]|0}else l=i;if(l<<24>>24<0)m=f[a>>2]|0;else m=a;Qn(m+j|0,c,d)|0;d=j+c|0;if((b[h>>0]|0)<0)f[a+4>>2]=d;else b[h>>0]=d;b[g>>0]=0;up(m+d|0,g)}u=e;return a|0}function ij(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0;d=u;u=u+48|0;e=d+4|0;g=d;h=f[b+12>>2]|0;i=f[b+4>>2]|0;b=e;j=b+36|0;do{f[b>>2]=0;b=b+4|0}while((b|0)<(j|0));zh(g,c,h,i,e);i=f[e+24>>2]|0;if(!i){k=f[g>>2]|0;f[a>>2]=k;u=d;return}h=e+28|0;e=f[h>>2]|0;if((e|0)!=(i|0))f[h>>2]=e+(~((e+-4-i|0)>>>2)<<2);Oq(i);k=f[g>>2]|0;f[a>>2]=k;u=d;return}function jj(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;e=u;u=u+16|0;g=e;h=a+11|0;i=b[h>>0]|0;j=i<<24>>24<0;if(j)k=(f[a+8>>2]&2147483647)+-1|0;else k=10;do if(k>>>0>=d>>>0){if(j)l=f[a>>2]|0;else l=a;Eo(l,c,d)|0;b[g>>0]=0;up(l+d|0,g);if((b[h>>0]|0)<0){f[a+4>>2]=d;break}else{b[h>>0]=d;break}}else{if(j)m=f[a+4>>2]|0;else m=i&255;Bi(a,k,d-k|0,m,0,m,d,c)}while(0);u=e;return a|0}function kj(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0,i=0;b=f[a>>2]|0;if(!b)return;c=a+4|0;d=f[c>>2]|0;if((d|0)==(b|0))e=b;else{g=d;do{f[c>>2]=g+-136;d=f[g+-20>>2]|0;if(d|0){h=g+-16|0;i=f[h>>2]|0;if((i|0)!=(d|0))f[h>>2]=i+(~((i+-4-d|0)>>>2)<<2);Oq(d)}d=f[g+-32>>2]|0;if(d|0){i=g+-28|0;h=f[i>>2]|0;if((h|0)!=(d|0))f[i>>2]=h+(~((h+-4-d|0)>>>2)<<2);Oq(d)}Mi(g+-132|0);g=f[c>>2]|0}while((g|0)!=(b|0));e=f[a>>2]|0}Oq(e);return}function lj(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;e=u;u=u+16|0;g=e;h=a+11|0;i=b[h>>0]|0;j=i<<24>>24<0;if(j){k=f[a+4>>2]|0;l=(f[a+8>>2]&2147483647)+-1|0}else{k=i&255;l=10}if((l-k|0)>>>0>=d>>>0){if(d|0){if(j)m=f[a>>2]|0;else m=a;Fo(m+k|0,c,d)|0;j=k+d|0;if((b[h>>0]|0)<0)f[a+4>>2]=j;else b[h>>0]=j;b[g>>0]=0;up(m+j|0,g)}}else Bi(a,l,d-l+k|0,k,k,0,d,c);u=e;return a|0}function mj(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0;f[a>>2]=3932;b=f[a+32>>2]|0;if(b|0){c=a+36|0;d=f[c>>2]|0;if((d|0)!=(b|0))f[c>>2]=d+(~((d+-4-b|0)>>>2)<<2);Oq(b)}b=f[a+20>>2]|0;if(b|0){d=a+24|0;c=f[d>>2]|0;if((c|0)!=(b|0))f[d>>2]=c+(~((c+-4-b|0)>>>2)<<2);Oq(b)}b=a+8|0;c=f[b>>2]|0;if(!c)return;d=a+12|0;a=f[d>>2]|0;if((a|0)==(c|0))e=c;else{g=a;do{a=g+-4|0;f[d>>2]=a;h=f[a>>2]|0;f[a>>2]=0;if(h|0)Va[f[(f[h>>2]|0)+4>>2]&127](h);g=f[d>>2]|0}while((g|0)!=(c|0));e=f[b>>2]|0}Oq(e);return}function nj(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0;c=a+4|0;if((Qa[f[(f[b>>2]|0)+20>>2]&127](b)|0)<=0){d=1;return d|0}a=0;while(1){e=f[(f[c>>2]|0)+4>>2]|0;g=dm(e,Ra[f[(f[b>>2]|0)+24>>2]&127](b,a)|0)|0;if((g|0)==-1){d=0;h=6;break}e=f[(f[b>>2]|0)+28>>2]|0;i=fl(f[c>>2]|0,g)|0;a=a+1|0;if(!(Ra[e&127](b,i)|0)){d=0;h=6;break}if((a|0)>=(Qa[f[(f[b>>2]|0)+20>>2]&127](b)|0)){d=1;h=6;break}}if((h|0)==6)return d|0;return 0}function oj(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0;if(!(ho(a,b,c)|0)){d=0;return d|0}if(!(Qa[f[(f[a>>2]|0)+52>>2]&127](a)|0)){d=0;return d|0}c=a+4|0;e=a+8|0;g=f[c>>2]|0;if((f[e>>2]|0)==(g|0)){d=1;return d|0}h=a+36|0;a=0;i=g;while(1){g=f[(f[h>>2]|0)+(a<<2)>>2]|0;if(!(Sa[f[(f[g>>2]|0)+8>>2]&31](g,b,f[i+(a<<2)>>2]|0)|0)){d=0;j=7;break}a=a+1|0;i=f[c>>2]|0;if(a>>>0>=(f[e>>2]|0)-i>>2>>>0){d=1;j=7;break}}if((j|0)==7)return d|0;return 0}function pj(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0;d=u;u=u+16|0;e=d;f[a>>2]=0;f[a+4>>2]=0;f[a+8>>2]=0;if((b[c+11>>0]|0)<0){g=f[c>>2]|0;h=f[c+4>>2]|0;if(h>>>0>4294967279)aq(a);if(h>>>0<11){b[a+11>>0]=h;i=a}else{j=h+16&-16;k=ln(j)|0;f[a>>2]=k;f[a+8>>2]=j|-2147483648;f[a+4>>2]=h;i=k}Fo(i,g,h)|0;b[e>>0]=0;up(i+h|0,e)}else{f[a>>2]=f[c>>2];f[a+4>>2]=f[c+4>>2];f[a+8>>2]=f[c+8>>2]}u=d;return}function qj(a,c,d,e,g){a=a|0;c=c|0;d=d|0;e=e|0;g=g|0;var h=0,i=0;b[c+53>>0]=1;do if((f[c+4>>2]|0)==(e|0)){b[c+52>>0]=1;a=c+16|0;h=f[a>>2]|0;if(!h){f[a>>2]=d;f[c+24>>2]=g;f[c+36>>2]=1;if(!((g|0)==1?(f[c+48>>2]|0)==1:0))break;b[c+54>>0]=1;break}if((h|0)!=(d|0)){h=c+36|0;f[h>>2]=(f[h>>2]|0)+1;b[c+54>>0]=1;break}h=c+24|0;a=f[h>>2]|0;if((a|0)==2){f[h>>2]=g;i=g}else i=a;if((i|0)==1?(f[c+48>>2]|0)==1:0)b[c+54>>0]=1}while(0);return}function rj(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0;c=a+36|0;d=a+40|0;e=f[c>>2]|0;if((f[d>>2]|0)!=(e|0)){g=0;h=e;do{vg(h+(g*24|0)|0,b)|0;g=g+1|0;h=f[c>>2]|0}while(g>>>0<(((f[d>>2]|0)-h|0)/24|0)>>>0)}h=a+48|0;d=a+52|0;a=f[h>>2]|0;if((f[d>>2]|0)==(a|0))return 1;else{i=0;j=a}do{a=f[j+(i<<2)>>2]|0;ci(a<<1^a>>31,b)|0;i=i+1|0;j=f[h>>2]|0}while(i>>>0<(f[d>>2]|0)-j>>2>>>0);return 1}function sj(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0;e=a+d|0;c=c&255;if((d|0)>=67){while(a&3){b[a>>0]=c;a=a+1|0}g=e&-4|0;h=g-64|0;i=c|c<<8|c<<16|c<<24;while((a|0)<=(h|0)){f[a>>2]=i;f[a+4>>2]=i;f[a+8>>2]=i;f[a+12>>2]=i;f[a+16>>2]=i;f[a+20>>2]=i;f[a+24>>2]=i;f[a+28>>2]=i;f[a+32>>2]=i;f[a+36>>2]=i;f[a+40>>2]=i;f[a+44>>2]=i;f[a+48>>2]=i;f[a+52>>2]=i;f[a+56>>2]=i;f[a+60>>2]=i;a=a+64|0}while((a|0)<(g|0)){f[a>>2]=i;a=a+4|0}}while((a|0)<(e|0)){b[a>>0]=c;a=a+1|0}return e-d|0}function tj(a,c,d,e,g){a=a|0;c=c|0;d=d|0;e=e|0;g=g|0;var h=0;do if(!(fp(a,f[c+8>>2]|0,g)|0)){if(fp(a,f[c>>2]|0,g)|0){if((f[c+16>>2]|0)!=(d|0)?(h=c+20|0,(f[h>>2]|0)!=(d|0)):0){f[c+32>>2]=e;f[h>>2]=d;h=c+40|0;f[h>>2]=(f[h>>2]|0)+1;if((f[c+36>>2]|0)==1?(f[c+24>>2]|0)==2:0)b[c+54>>0]=1;f[c+44>>2]=4;break}if((e|0)==1)f[c+32>>2]=1}}else Vm(0,c,d,e);while(0);return}function uj(a){a=a|0;var b=0,c=0,d=0,e=0;b=a+80|0;c=f[b>>2]|0;f[b>>2]=0;if(c|0){b=c+-4|0;d=f[b>>2]|0;if(d|0){e=c+(d<<5)|0;do{e=e+-32|0;Fj(e)}while((e|0)!=(c|0))}Mq(b)}b=f[a+68>>2]|0;if(b|0){c=a+72|0;e=f[c>>2]|0;if((e|0)!=(b|0))f[c>>2]=e+(~((e+-4-b|0)>>>2)<<2);Oq(b)}b=a+44|0;e=f[b>>2]|0;f[b>>2]=0;if(e|0)Oq(e);e=f[a+32>>2]|0;if(!e){Fj(a);return}b=a+36|0;if((f[b>>2]|0)!=(e|0))f[b>>2]=e;Oq(e);Fj(a);return}function vj(a){a=a|0;var b=0,c=0,d=0;f[a>>2]=3092;b=f[a+136>>2]|0;if(b|0){c=a+140|0;d=f[c>>2]|0;if((d|0)!=(b|0))f[c>>2]=d+(~((d+-4-b|0)>>>2)<<2);Oq(b)}b=f[a+96>>2]|0;if(b|0){d=a+100|0;c=f[d>>2]|0;if((c|0)!=(b|0))f[d>>2]=c+(~((c+-4-b|0)>>>2)<<2);Oq(b)}b=f[a+76>>2]|0;if(b|0)Oq(b);b=f[a+64>>2]|0;if(b|0)Oq(b);b=f[a+52>>2]|0;if(b|0)Oq(b);b=f[a+40>>2]|0;if(!b)return;Oq(b);return}function wj(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0;if((d|0)<0){e=0;return e|0}do if(!b){d=a+4|0;g=f[d>>2]|0;h=f[a>>2]|0;i=g-h|0;if(i>>>0>>0){Fi(a,c-i|0);break}if(i>>>0>c>>>0?(i=h+c|0,(i|0)!=(g|0)):0)f[d>>2]=i}else Cg(a,b,b+c|0);while(0);c=a+24|0;a=c;b=Vn(f[a>>2]|0,f[a+4>>2]|0,1,0)|0;a=c;f[a>>2]=b;f[a+4>>2]=I;e=1;return e|0}function xj(a,c,d,e,g,h,i){a=a|0;c=c|0;d=d|0;e=e|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0;if((-17-c|0)>>>0>>0)aq(a);if((b[a+11>>0]|0)<0)j=f[a>>2]|0;else j=a;if(c>>>0<2147483623){k=d+c|0;d=c<<1;l=k>>>0>>0?d:k;m=l>>>0<11?11:l+16&-16}else m=-17;l=ln(m)|0;if(g|0)Fo(l,j,g)|0;k=e-h-g|0;if(k|0)Fo(l+g+i|0,j+g+h|0,k)|0;if((c|0)!=10)Oq(j);f[a>>2]=l;f[a+8>>2]=m|-2147483648;return}function yj(a){a=a|0;var b=0,c=0,d=0;f[a>>2]=2728;b=f[a+136>>2]|0;if(b|0){c=a+140|0;d=f[c>>2]|0;if((d|0)!=(b|0))f[c>>2]=d+(~((d+-4-b|0)>>>2)<<2);Oq(b)}b=f[a+96>>2]|0;if(b|0){d=a+100|0;c=f[d>>2]|0;if((c|0)!=(b|0))f[d>>2]=c+(~((c+-4-b|0)>>>2)<<2);Oq(b)}b=f[a+76>>2]|0;if(b|0)Oq(b);b=f[a+64>>2]|0;if(b|0)Oq(b);b=f[a+52>>2]|0;if(b|0)Oq(b);b=f[a+40>>2]|0;if(!b)return;Oq(b);return}function zj(a,b){a=a|0;b=b|0;if(!b)return;else{zj(a,f[b>>2]|0);zj(a,f[b+4>>2]|0);Ej(b+20|0,f[b+24>>2]|0);Oq(b);return}}function Aj(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;Yf(a,b,c);c=f[a+100>>2]|0;d=f[a+96>>2]|0;a=d;if((c|0)==(d|0))return;e=f[b>>2]|0;b=(c-d|0)/12|0;d=0;do{c=a+(d*12|0)|0;f[c>>2]=f[e+(f[c>>2]<<2)>>2];c=a+(d*12|0)+4|0;f[c>>2]=f[e+(f[c>>2]<<2)>>2];c=a+(d*12|0)+8|0;f[c>>2]=f[e+(f[c>>2]<<2)>>2];d=d+1|0}while(d>>>0>>0);return}function Bj(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0;d=a+64|0;if((f[d>>2]|0)==0?(e=ln(32)|0,yn(e),g=f[d>>2]|0,f[d>>2]=e,g|0):0){e=f[g>>2]|0;if(e|0){h=g+4|0;if((f[h>>2]|0)!=(e|0))f[h>>2]=e;Oq(e)}Oq(g)}g=Vl(f[a+28>>2]|0)|0;e=X(g,b[a+24>>0]|0)|0;g=((e|0)<0)<<31>>31;h=f[d>>2]|0;i=un(e|0,g|0,c|0,0)|0;if(!(wj(h,0,i,I)|0)){j=0;return j|0}Kk(a,f[d>>2]|0,e,g,0,0);f[a+80>>2]=c;j=1;return j|0}function Cj(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0;d=u;u=u+64|0;e=d;if(!(fp(a,b,0)|0))if((b|0)!=0?(g=Eh(b,1056,1040,0)|0,(g|0)!=0):0){b=e+4|0;h=b+52|0;do{f[b>>2]=0;b=b+4|0}while((b|0)<(h|0));f[e>>2]=g;f[e+8>>2]=a;f[e+12>>2]=-1;f[e+48>>2]=1;Ya[f[(f[g>>2]|0)+28>>2]&3](g,e,f[c>>2]|0,1);if((f[e+24>>2]|0)==1){f[c>>2]=f[e+16>>2];i=1}else i=0;j=i}else j=0;else j=1;u=d;return j|0}function Dj(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0;if(!c){d=0;return d|0}e=c+40|0;g=c+44|0;ci((f[g>>2]|0)-(f[e>>2]|0)>>2,b)|0;h=f[e>>2]|0;e=f[g>>2]|0;if((h|0)!=(e|0)){g=h;do{h=f[g>>2]|0;if(h|0){ci(f[h+40>>2]|0,b)|0;lg(a,b,h)|0}g=g+4|0}while((g|0)!=(e|0))}lg(a,b,c)|0;d=1;return d|0}function Ej(a,c){a=a|0;c=c|0;var d=0;if(!c)return;Ej(a,f[c>>2]|0);Ej(a,f[c+4>>2]|0);a=c+16|0;d=c+28|0;if((b[d+11>>0]|0)<0)Oq(f[d>>2]|0);if((b[a+11>>0]|0)<0)Oq(f[a>>2]|0);Oq(c);return}function Fj(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0;b=u;u=u+16|0;c=b;d=c;f[d>>2]=0;f[d+4>>2]=0;qf(a,2,c);c=f[a+12>>2]|0;d=a+16|0;e=f[d>>2]|0;if((e|0)==(c|0))g=c;else{h=e+(~((e+-4-c|0)>>>2)<<2)|0;f[d>>2]=h;g=h}f[a+24>>2]=0;f[a+28>>2]=0;if(c|0){if((g|0)!=(c|0))f[d>>2]=g+(~((g+-4-c|0)>>>2)<<2);Oq(c)}c=f[a>>2]|0;if(!c){u=b;return}g=a+4|0;a=f[g>>2]|0;if((a|0)!=(c|0))f[g>>2]=a+(~((a+-8-c|0)>>>3)<<3);Oq(c);u=b;return}function Gj(a){a=a|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0;c=a;a:do if(!(c&3)){d=a;e=4}else{g=a;h=c;while(1){if(!(b[g>>0]|0)){i=h;break a}j=g+1|0;h=j;if(!(h&3)){d=j;e=4;break}else g=j}}while(0);if((e|0)==4){e=d;while(1){k=f[e>>2]|0;if(!((k&-2139062144^-2139062144)&k+-16843009))e=e+4|0;else break}if(!((k&255)<<24>>24))l=e;else{k=e;while(1){e=k+1|0;if(!(b[e>>0]|0)){l=e;break}else k=e}}i=l}return i-c|0}function Hj(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0;e=u;u=u+16|0;g=e;h=a+11|0;i=b[h>>0]|0;j=i<<24>>24<0;if(j)k=f[a+4>>2]|0;else k=i&255;do if(k>>>0>=c>>>0)if(j){i=(f[a>>2]|0)+c|0;b[g>>0]=0;up(i,g);f[a+4>>2]=c;break}else{b[g>>0]=0;up(a+c|0,g);b[h>>0]=c;break}else hj(a,c-k|0,d)|0;while(0);u=e;return}function Ij(a){a=a|0;var b=0,c=0,d=0;if(!a)return;b=a+88|0;c=f[b>>2]|0;f[b>>2]=0;if(c|0){b=f[c+8>>2]|0;if(b|0){d=c+12|0;if((f[d>>2]|0)!=(b|0))f[d>>2]=b;Oq(b)}Oq(c)}c=f[a+68>>2]|0;if(c|0){b=a+72|0;d=f[b>>2]|0;if((d|0)!=(c|0))f[b>>2]=d+(~((d+-4-c|0)>>>2)<<2);Oq(c)}c=a+64|0;d=f[c>>2]|0;f[c>>2]=0;if(d|0){c=f[d>>2]|0;if(c|0){b=d+4|0;if((f[b>>2]|0)!=(c|0))f[b>>2]=c;Oq(c)}Oq(d)}Oq(a);return}function Jj(a,c,d,e,g,h,i,j,k,l){a=a|0;c=c|0;d=d|0;e=e|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;var m=0,n=0,o=0;f[a>>2]=d;if(d|0){m=d+16|0;n=f[m+4>>2]|0;o=a+8|0;f[o>>2]=f[m>>2];f[o+4>>2]=n;n=d+24|0;d=f[n+4>>2]|0;o=a+16|0;f[o>>2]=f[n>>2];f[o+4>>2]=d}b[a+24>>0]=e;f[a+28>>2]=g;b[a+32>>0]=h&1;h=a+40|0;f[h>>2]=i;f[h+4>>2]=j;j=a+48|0;f[j>>2]=k;f[j+4>>2]=l;f[a+56>>2]=c;return}function Kj(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0;c=ln(88)|0;d=c+60|0;e=c;g=e+60|0;do{f[e>>2]=0;e=e+4|0}while((e|0)<(g|0));f[d>>2]=c;d=c+64|0;f[d>>2]=0;f[d+4>>2]=0;f[d+8>>2]=0;f[d+12>>2]=0;f[d+16>>2]=0;f[d+20>>2]=0;d=cg(c,b)|0;f[a>>2]=d?c:0;a=d?0:c;if(d)return;Ii(a);Oq(a);return}function Lj(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0;if((f[c+76>>2]|0)>=0?(Tq(c)|0)!=0:0){d=a&255;e=a&255;if((e|0)!=(b[c+75>>0]|0)?(g=c+20|0,h=f[g>>2]|0,h>>>0<(f[c+16>>2]|0)>>>0):0){f[g>>2]=h+1;b[h>>0]=d;i=e}else i=Nj(c,a)|0;Sq(c);j=i}else k=3;do if((k|0)==3){i=a&255;e=a&255;if((e|0)!=(b[c+75>>0]|0)?(d=c+20|0,h=f[d>>2]|0,h>>>0<(f[c+16>>2]|0)>>>0):0){f[d>>2]=h+1;b[h>>0]=i;j=e;break}j=Nj(c,a)|0}while(0);return j|0}function Mj(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0;d=u;u=u+16|0;e=d+4|0;g=d;h=d+8|0;i=f[a+4>>2]|0;if((i|0)==-1){j=0;u=d;return j|0}b[h>>0]=i;i=c+16|0;a=f[i+4>>2]|0;if(!((a|0)>0|(a|0)==0&(f[i>>2]|0)>>>0>0)){f[g>>2]=f[c+4>>2];f[e>>2]=f[g>>2];Me(c,e,h,h+1|0)|0}j=1;u=d;return j|0}function Nj(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,i=0,j=0,k=0,l=0,m=0,n=0;d=u;u=u+16|0;e=d;g=c&255;b[e>>0]=g;i=a+16|0;j=f[i>>2]|0;if(!j)if(!(vl(a)|0)){k=f[i>>2]|0;l=4}else m=-1;else{k=j;l=4}do if((l|0)==4){j=a+20|0;i=f[j>>2]|0;if(i>>>0>>0?(n=c&255,(n|0)!=(b[a+75>>0]|0)):0){f[j>>2]=i+1;b[i>>0]=g;m=n;break}if((Sa[f[a+36>>2]&31](a,e,1)|0)==1)m=h[e>>0]|0;else m=-1}while(0);u=d;return m|0}function Oj(a,b){a=a|0;b=b|0;if(!b)return;else{Oj(a,f[b>>2]|0);Oj(a,f[b+4>>2]|0);Ej(b+20|0,f[b+24>>2]|0);Oq(b);return}}function Pj(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0;e=u;u=u+16|0;g=e;h=e+4|0;f[g>>2]=c;c=ln(32)|0;f[h>>2]=c;f[h+8>>2]=-2147483616;f[h+4>>2]=17;i=c;j=14495;k=i+17|0;do{b[i>>0]=b[j>>0]|0;i=i+1|0;j=j+1|0}while((i|0)<(k|0));b[c+17>>0]=0;Xj(Hd(a,g)|0,h,d);if((b[h+11>>0]|0)>=0){u=e;return}Oq(f[h>>2]|0);u=e;return}function Qj(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;c=f[a+16>>2]|0;if(((f[a+20>>2]|0)-c>>2|0)<=(b|0)){d=0;return d|0}e=f[c+(b<<2)>>2]|0;if((e|0)<0){d=0;return d|0}b=a+48|0;if((f[a+52>>2]|0)>>>0<=e>>>0)Ce(b,e+1|0,0);c=(f[b>>2]|0)+(e>>>5<<2)|0;f[c>>2]=f[c>>2]|1<<(e&31);c=f[a+36>>2]|0;if((f[a+40>>2]|0)-c>>2>>>0<=e>>>0){d=1;return d|0}Bp(f[c+(e<<2)>>2]|0);d=1;return d|0}function Rj(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;if(c>>>0>0|(c|0)==0&a>>>0>4294967295){e=d;f=a;g=c;while(1){c=hn(f|0,g|0,10,0)|0;e=e+-1|0;b[e>>0]=c&255|48;c=f;f=jp(f|0,g|0,10,0)|0;if(!(g>>>0>9|(g|0)==9&c>>>0>4294967295))break;else g=I}h=f;i=e}else{h=a;i=d}if(!h)j=i;else{d=h;h=i;while(1){i=h+-1|0;b[i>>0]=(d>>>0)%10|0|48;if(d>>>0<10){j=i;break}else{d=(d>>>0)/10|0;h=i}}}return j|0}function Sj(a){a=a|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;c=a;while(1){d=c+1|0;if(!(eq(b[c>>0]|0)|0))break;else c=d}a=b[c>>0]|0;switch(a<<24>>24|0){case 45:{e=1;f=5;break}case 43:{e=0;f=5;break}default:{g=0;h=c;i=a}}if((f|0)==5){g=e;h=d;i=b[d>>0]|0}if(!(Aq(i<<24>>24)|0))j=0;else{i=0;d=h;while(1){h=(i*10|0)+48-(b[d>>0]|0)|0;d=d+1|0;if(!(Aq(b[d>>0]|0)|0)){j=h;break}else i=h}}return (g|0?j:0-j|0)|0}function Tj(a,c,d){a=a|0;c=c|0;d=$(d);var e=0,g=0,h=0;e=u;u=u+16|0;g=e;il(g,d);h=Ai(a,c)|0;c=h+11|0;if((b[c>>0]|0)<0){b[f[h>>2]>>0]=0;f[h+4>>2]=0}else{b[h>>0]=0;b[c>>0]=0}gh(h,0);f[h>>2]=f[g>>2];f[h+4>>2]=f[g+4>>2];f[h+8>>2]=f[g+8>>2];u=e;return}function Uj(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0;b=u;u=u+16|0;c=b+8|0;d=b+4|0;e=b;f[e>>2]=f[(f[a+4>>2]|0)+80>>2];g=f[a+44>>2]|0;a=g+16|0;h=f[a+4>>2]|0;if((h|0)>0|(h|0)==0&(f[a>>2]|0)>>>0>0){u=b;return 1}f[d>>2]=f[g+4>>2];f[c>>2]=f[d>>2];Me(g,c,e,e+4|0)|0;u=b;return 1}function Vj(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0;e=u;u=u+16|0;g=e;ll(g,d&1);d=Ai(a,c)|0;c=d+11|0;if((b[c>>0]|0)<0){b[f[d>>2]>>0]=0;f[d+4>>2]=0}else{b[d>>0]=0;b[c>>0]=0}gh(d,0);f[d>>2]=f[g>>2];f[d+4>>2]=f[g+4>>2];f[d+8>>2]=f[g+8>>2];u=e;return}function Wj(a){a=a|0;if(!a)return;Ej(a+24|0,f[a+28>>2]|0);zj(a+12|0,f[a+16>>2]|0);Ej(a,f[a+4>>2]|0);Oq(a);return}function Xj(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0;e=u;u=u+16|0;g=e;ll(g,d);d=Ai(a,c)|0;c=d+11|0;if((b[c>>0]|0)<0){b[f[d>>2]>>0]=0;f[d+4>>2]=0}else{b[d>>0]=0;b[c>>0]=0}gh(d,0);f[d>>2]=f[g>>2];f[d+4>>2]=f[g+4>>2];f[d+8>>2]=f[g+8>>2];u=e;return}function Yj(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0;e=Rg(a,c)|0;if((e|0)==(a+4|0)){g=-1;h=(g|0)==-1;i=(g|0)!=0;j=h?d:i;return j|0}a=e+28|0;if((b[a+11>>0]|0)<0)k=f[a>>2]|0;else k=a;g=Sj(k)|0;h=(g|0)==-1;i=(g|0)!=0;j=h?d:i;return j|0}function Zj(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0;d=u;u=u+16|0;e=d;if(c>>>0>10){g=0;u=d;return g|0}h=ln(48)|0;f[e>>2]=h;f[e+8>>2]=-2147483600;f[e+4>>2]=33;i=h;j=15987;k=i+33|0;do{b[i>>0]=b[j>>0]|0;i=i+1|0;j=j+1|0}while((i|0)<(k|0));b[h+33>>0]=0;Xj(a,e,c);if((b[e+11>>0]|0)<0)Oq(f[e>>2]|0);g=1;u=d;return g|0}function _j(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0;c=f[b>>2]|0;if((c|0)==-1)return 1;b=c*3|0;if((b|0)==-1)return 1;c=f[a>>2]|0;a=f[c+(b<<2)>>2]|0;d=b+1|0;e=((d>>>0)%3|0|0)==0?b+-2|0:d;if((e|0)==-1)g=-1;else g=f[c+(e<<2)>>2]|0;e=(((b>>>0)%3|0|0)==0?2:-1)+b|0;if((e|0)==-1)h=-1;else h=f[c+(e<<2)>>2]|0;if((a|0)==(g|0))return 1;else return (a|0)==(h|0)|(g|0)==(h|0)|0;return 0}function $j(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,i=0,j=0,k=0;d=0;while(1){if((h[16654+d>>0]|0)==(a|0)){e=2;break}g=d+1|0;if((g|0)==87){i=16742;j=87;e=5;break}else d=g}if((e|0)==2)if(!d)k=16742;else{i=16742;j=d;e=5}if((e|0)==5)while(1){e=0;d=i;do{a=d;d=d+1|0}while((b[a>>0]|0)!=0);j=j+-1|0;if(!j){k=d;break}else{i=d;e=5}}return jq(k,f[c+20>>2]|0)|0}function ak(a,b){a=+a;b=b|0;var c=0,d=0,e=0,g=0.0,h=0.0,i=0,j=0.0;p[s>>3]=a;c=f[s>>2]|0;d=f[s+4>>2]|0;e=Yn(c|0,d|0,52)|0;switch(e&2047){case 0:{if(a!=0.0){g=+ak(a*18446744073709551616.0,b);h=g;i=(f[b>>2]|0)+-64|0}else{h=a;i=0}f[b>>2]=i;j=h;break}case 2047:{j=a;break}default:{f[b>>2]=(e&2047)+-1022;f[s>>2]=c;f[s+4>>2]=d&-2146435073|1071644672;j=+p[s>>3]}}return +j}function bk(a,b){a=+a;b=b|0;var c=0.0,d=0,e=0,g=0.0,h=0;if((b|0)<=1023)if((b|0)<-1022){c=a*2.2250738585072014e-308;d=(b|0)<-2044;e=b+2044|0;g=d?c*2.2250738585072014e-308:c;h=d?((e|0)>-1022?e:-1022):b+1022|0}else{g=a;h=b}else{c=a*8988465674311579538646525.0e283;e=(b|0)>2046;d=b+-2046|0;g=e?c*8988465674311579538646525.0e283:c;h=e?((d|0)<1023?d:1023):b+-1023|0}b=Tn(h+1023|0,0,52)|0;h=I;f[s>>2]=b;f[s+4>>2]=h;return +(g*+p[s>>3])}function ck(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0;if(!(f[a+80>>2]|0)){b=0;return b|0}c=a+8|0;d=a+12|0;a=f[c>>2]|0;if(((f[d>>2]|0)-a|0)>0){e=0;g=a}else{b=1;return b|0}while(1){a=f[g+(e<<2)>>2]|0;e=e+1|0;if(!(Gl(a,a)|0)){b=0;h=5;break}g=f[c>>2]|0;if((e|0)>=((f[d>>2]|0)-g>>2|0)){b=1;h=5;break}}if((h|0)==5)return b|0;return 0}function dk(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0;c=a+36|0;d=a+40|0;e=f[c>>2]|0;if((f[d>>2]|0)==(e|0)){g=1;return g|0}h=a+60|0;a=0;i=e;while(1){e=f[i+(a<<2)>>2]|0;a=a+1|0;if(!(Sa[f[(f[e>>2]|0)+20>>2]&31](e,h,b)|0)){g=0;j=5;break}i=f[c>>2]|0;if(a>>>0>=(f[d>>2]|0)-i>>2>>>0){g=1;j=5;break}}if((j|0)==5)return g|0;return 0}function ek(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0;c=a+36|0;d=a+40|0;a=f[c>>2]|0;if((f[d>>2]|0)==(a|0)){e=1;return e|0}else{g=0;h=a}while(1){a=f[h+(g<<2)>>2]|0;g=g+1|0;if(!(Ra[f[(f[a>>2]|0)+24>>2]&127](a,b)|0)){e=0;i=4;break}h=f[c>>2]|0;if(g>>>0>=(f[d>>2]|0)-h>>2>>>0){e=1;i=4;break}}if((i|0)==4)return e|0;return 0}function fk(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0;f[a>>2]=0;c=a+4|0;f[c>>2]=0;f[a+8>>2]=0;d=b+4|0;e=(f[d>>2]|0)-(f[b>>2]|0)|0;g=e>>2;if(!g)return;if(g>>>0>1073741823)aq(a);h=ln(e)|0;f[c>>2]=h;f[a>>2]=h;f[a+8>>2]=h+(g<<2);g=f[b>>2]|0;b=(f[d>>2]|0)-g|0;if((b|0)<=0)return;kh(h|0,g|0,b|0)|0;f[c>>2]=h+(b>>>2<<2);return}function gk(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0;c=a+8|0;d=f[a>>2]|0;if((f[c>>2]|0)-d>>2>>>0>=b>>>0)return;e=a+4|0;if(b>>>0>1073741823){g=ra(8)|0;Oo(g,16035);f[g>>2]=7256;va(g|0,1112,110)}g=(f[e>>2]|0)-d|0;h=ln(b<<2)|0;if((g|0)>0)kh(h|0,d|0,g|0)|0;f[a>>2]=h;f[e>>2]=h+(g>>2<<2);f[c>>2]=h+(b<<2);if(!d)return;Oq(d);return}function hk(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0,i=0;b=a+36|0;c=a+40|0;d=f[b>>2]|0;if((f[c>>2]|0)==(d|0)){e=1;return e|0}g=a+60|0;a=0;h=d;while(1){d=f[h+(a<<2)>>2]|0;a=a+1|0;if(!(Ra[f[(f[d>>2]|0)+16>>2]&127](d,g)|0)){e=0;i=5;break}h=f[b>>2]|0;if(a>>>0>=(f[c>>2]|0)-h>>2>>>0){e=1;i=5;break}}if((i|0)==5)return e|0;return 0}function ik(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0;d=f[a+176>>2]|0;e=f[a+172>>2]|0;a=e;if((d|0)==(e|0))return 0;g=(d-e|0)/136|0;e=0;while(1){if((f[a+(e*136|0)>>2]|0)==(c|0)){h=4;break}d=e+1|0;if(d>>>0>>0)e=d;else{h=6;break}}if((h|0)==4)return ((b[a+(e*136|0)+100>>0]|0)==0?0:a+(e*136|0)+4|0)|0;else if((h|0)==6)return 0;return 0}function jk(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0;d=u;u=u+16|0;e=d;g=ln(16)|0;f[e>>2]=g;f[e+8>>2]=-2147483632;f[e+4>>2]=15;h=g;i=14479;j=h+15|0;do{b[h>>0]=b[i>>0]|0;h=h+1|0;i=i+1|0}while((h|0)<(j|0));b[g+15>>0]=0;Xj(a,e,c);if((b[e+11>>0]|0)>=0){u=d;return}Oq(f[e>>2]|0);u=d;return}function kk(a,b){a=a|0;b=b|0;var c=0,d=0;c=f[a+72>>2]|0;if(!c){d=0;return d|0}f[c+4>>2]=a+60;if(!(Qa[f[(f[c>>2]|0)+12>>2]&127](c)|0)){d=0;return d|0}if(!(Qa[f[(f[a>>2]|0)+40>>2]&127](a)|0)){d=0;return d|0}if(!(Ra[f[(f[a>>2]|0)+44>>2]&127](a,b)|0)){d=0;return d|0}d=Ra[f[(f[a>>2]|0)+48>>2]&127](a,b)|0;return d|0}function lk(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;f[a>>2]=0;d=a+4|0;f[d>>2]=0;f[a+8>>2]=0;if(!b)return;if(b>>>0>357913941)aq(a);e=ln(b*12|0)|0;f[d>>2]=e;f[a>>2]=e;f[a+8>>2]=e+(b*12|0);a=b;b=e;do{fk(b,c);b=(f[d>>2]|0)+12|0;f[d>>2]=b;a=a+-1|0}while((a|0)!=0);return}function mk(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0;c=f[b>>2]|0;if(!c){d=0;return d|0}e=a+44|0;g=f[e>>2]|0;if(g>>>0<(f[a+48>>2]|0)>>>0){f[b>>2]=0;f[g>>2]=c;f[e>>2]=(f[e>>2]|0)+4;d=1;return d|0}else{Ug(a+40|0,b);d=1;return d|0}return 0}function nk(a){a=a|0;var b=0,c=0,d=0;f[a>>2]=3564;b=f[a+64>>2]|0;if(b|0){c=a+68|0;d=f[c>>2]|0;if((d|0)!=(b|0))f[c>>2]=d+(~((d+-4-b|0)>>>2)<<2);Oq(b)}f[a+12>>2]=3588;b=f[a+32>>2]|0;if(b|0)Oq(b);b=f[a+20>>2]|0;if(!b){Oq(a);return}Oq(b);Oq(a);return}function ok(a){a=a|0;var b=0,c=0,d=0;f[a>>2]=3344;f[a+40>>2]=1196;b=f[a+48>>2]|0;if(b|0){c=a+52|0;d=f[c>>2]|0;if((d|0)!=(b|0))f[c>>2]=d+(~((d+-4-b|0)>>>2)<<2);Oq(b)}f[a>>2]=1476;b=a+36|0;d=f[b>>2]|0;f[b>>2]=0;if(!d){Ni(a);Oq(a);return}Va[f[(f[d>>2]|0)+4>>2]&127](d);Ni(a);Oq(a);return}function pk(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,i=0;f[c>>2]=2;d=a+4|0;a=c+8|0;e=f[a>>2]|0;g=(f[c+12>>2]|0)-e|0;if(g>>>0<4294967292){Lk(a,g+4|0,0);i=f[a>>2]|0}else i=e;e=i+g|0;g=h[d>>0]|h[d+1>>0]<<8|h[d+2>>0]<<16|h[d+3>>0]<<24;b[e>>0]=g;b[e+1>>0]=g>>8;b[e+2>>0]=g>>16;b[e+3>>0]=g>>24;return}function qk(a){a=a|0;var b=0,c=0,d=0;f[a>>2]=3612;b=f[a+64>>2]|0;if(b|0){c=a+68|0;d=f[c>>2]|0;if((d|0)!=(b|0))f[c>>2]=d+(~((d+-4-b|0)>>>2)<<2);Oq(b)}f[a+12>>2]=3636;b=f[a+32>>2]|0;if(b|0)Oq(b);b=f[a+20>>2]|0;if(!b){Oq(a);return}Oq(b);Oq(a);return}function rk(a){a=a|0;var b=0,c=0,d=0;f[a>>2]=2188;b=f[a+76>>2]|0;if(b|0)Oq(b);b=a+68|0;c=f[b>>2]|0;f[b>>2]=0;if(c|0)Mq(c);f[a>>2]=1544;c=f[a+32>>2]|0;if(!c){Oq(a);return}b=a+36|0;d=f[b>>2]|0;if((d|0)!=(c|0))f[b>>2]=d+(~((d+-4-c|0)>>>2)<<2);Oq(c);Oq(a);return}function sk(a,c,d){a=a|0;c=c|0;d=$(d);var e=0,g=Oa,h=0;e=Rg(a,c)|0;if((e|0)==(a+4|0)){g=d;return $(g)}a=e+28|0;if((b[a+11>>0]|0)<0)h=f[a>>2]|0;else h=a;g=$(+Iq(h));return $(g)}function tk(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0;b=u;u=u+16|0;c=b;d=c;f[d>>2]=0;f[d+4>>2]=0;qf(a,2,c);c=f[a+12>>2]|0;d=a+16|0;e=f[d>>2]|0;if((e|0)==(c|0)){g=a+24|0;f[g>>2]=0;h=a+28|0;f[h>>2]=0;u=b;return}f[d>>2]=e+(~((e+-4-c|0)>>>2)<<2);g=a+24|0;f[g>>2]=0;h=a+28|0;f[h>>2]=0;u=b;return}function uk(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0;c=f[a+176>>2]|0;d=f[a+172>>2]|0;e=d;a:do if((c|0)!=(d|0)){g=(c-d|0)/136|0;h=0;while(1){if((f[e+(h*136|0)>>2]|0)==(b|0))break;i=h+1|0;if(i>>>0>>0)h=i;else break a}j=e+(h*136|0)+104|0;return j|0}while(0);j=a+40|0;return j|0}function vk(a){a=a|0;var b=0,c=0,d=0;f[a>>2]=3564;b=f[a+64>>2]|0;if(b|0){c=a+68|0;d=f[c>>2]|0;if((d|0)!=(b|0))f[c>>2]=d+(~((d+-4-b|0)>>>2)<<2);Oq(b)}f[a+12>>2]=3588;b=f[a+32>>2]|0;if(b|0)Oq(b);b=f[a+20>>2]|0;if(!b)return;Oq(b);return}function wk(a){a=a|0;var b=0,c=0,d=0;f[a>>2]=1768;b=f[a+76>>2]|0;if(b|0)Oq(b);b=a+68|0;c=f[b>>2]|0;f[b>>2]=0;if(c|0)Mq(c);f[a>>2]=1544;c=f[a+32>>2]|0;if(!c){Oq(a);return}b=a+36|0;d=f[b>>2]|0;if((d|0)!=(c|0))f[b>>2]=d+(~((d+-4-c|0)>>>2)<<2);Oq(c);Oq(a);return}function xk(a){a=a|0;var b=0,c=0,d=0;f[a>>2]=3344;f[a+40>>2]=1196;b=f[a+48>>2]|0;if(b|0){c=a+52|0;d=f[c>>2]|0;if((d|0)!=(b|0))f[c>>2]=d+(~((d+-4-b|0)>>>2)<<2);Oq(b)}f[a>>2]=1476;b=a+36|0;d=f[b>>2]|0;f[b>>2]=0;if(!d){Ni(a);return}Va[f[(f[d>>2]|0)+4>>2]&127](d);Ni(a);return}function yk(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0;Nc(a,b);if((b|0)<=-1)return;c=a+88|0;d=f[c>>2]|0;e=f[a+84>>2]|0;if((d-e>>2|0)<=(b|0))return;a=e+(b<<2)|0;b=a+4|0;e=d-b|0;g=e>>2;if(!g)h=d;else{im(a|0,b|0,e|0)|0;h=f[c>>2]|0}e=a+(g<<2)|0;if((h|0)==(e|0))return;f[c>>2]=h+(~((h+-4-e|0)>>>2)<<2);return}function zk(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0;b=f[a+32>>2]|0;c=f[a+36>>2]|0;if((b|0)==(c|0)){d=1;return d|0}e=a+8|0;g=a+44|0;a=b;while(1){b=f[(f[e>>2]|0)+(f[a>>2]<<2)>>2]|0;a=a+4|0;if(!(Ra[f[(f[b>>2]|0)+20>>2]&127](b,f[g>>2]|0)|0)){d=0;h=5;break}if((a|0)==(c|0)){d=1;h=5;break}}if((h|0)==5)return d|0;return 0}function Ak(a){a=a|0;var b=0,c=0,d=0;f[a>>2]=3612;b=f[a+64>>2]|0;if(b|0){c=a+68|0;d=f[c>>2]|0;if((d|0)!=(b|0))f[c>>2]=d+(~((d+-4-b|0)>>>2)<<2);Oq(b)}f[a+12>>2]=3636;b=f[a+32>>2]|0;if(b|0)Oq(b);b=f[a+20>>2]|0;if(!b)return;Oq(b);return}function Bk(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0.0;d=u;u=u+128|0;e=d;g=e;h=g+124|0;do{f[g>>2]=0;g=g+4|0}while((g|0)<(h|0));g=e+4|0;f[g>>2]=a;h=e+8|0;f[h>>2]=-1;f[e+44>>2]=a;f[e+76>>2]=-1;Ym(e,0);i=+Rc(e,c,1);c=(f[g>>2]|0)-(f[h>>2]|0)+(f[e+108>>2]|0)|0;if(b|0)f[b>>2]=c|0?a+c|0:a;u=d;return +i}function Ck(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var g=0,h=0;a=c+16|0;g=f[a>>2]|0;do if(g){if((g|0)!=(d|0)){h=c+36|0;f[h>>2]=(f[h>>2]|0)+1;f[c+24>>2]=2;b[c+54>>0]=1;break}h=c+24|0;if((f[h>>2]|0)==2)f[h>>2]=e}else{f[a>>2]=d;f[c+24>>2]=e;f[c+36>>2]=1}while(0);return}function Dk(a){a=a|0;var b=0,c=0;f[a>>2]=2188;b=f[a+76>>2]|0;if(b|0)Oq(b);b=a+68|0;c=f[b>>2]|0;f[b>>2]=0;if(c|0)Mq(c);f[a>>2]=1544;c=f[a+32>>2]|0;if(!c)return;b=a+36|0;a=f[b>>2]|0;if((a|0)!=(c|0))f[b>>2]=a+(~((a+-4-c|0)>>>2)<<2);Oq(c);return}function Ek(a){a=a|0;var c=0,d=0,e=0;c=a+74|0;d=b[c>>0]|0;b[c>>0]=d+255|d;d=a+20|0;c=a+28|0;if((f[d>>2]|0)>>>0>(f[c>>2]|0)>>>0)Sa[f[a+36>>2]&31](a,0,0)|0;f[a+16>>2]=0;f[c>>2]=0;f[d>>2]=0;d=f[a>>2]|0;if(!(d&4)){c=(f[a+44>>2]|0)+(f[a+48>>2]|0)|0;f[a+8>>2]=c;f[a+4>>2]=c;e=d<<27>>31}else{f[a>>2]=d|32;e=-1}return e|0}function Fk(a,c){a=a|0;c=c|0;var d=0,e=0,g=0;d=Rg(a,c)|0;if((d|0)==(a+4|0)){e=0;return e|0}a=d+28|0;if((b[a+11>>0]|0)<0)g=f[a>>2]|0;else g=a;e=((Sj(g)|0)+1|0)>>>0>1;return e|0}function Gk(a){a=a|0;var b=0,c=0,d=0;f[a>>2]=6152;b=f[a+96>>2]|0;if(b|0){c=a+100|0;d=f[c>>2]|0;if((d|0)!=(b|0))f[c>>2]=d+(~(((d+-12-b|0)>>>0)/12|0)*12|0);Oq(b)}b=f[a+84>>2]|0;if(!b){Og(a);Oq(a);return}d=a+88|0;c=f[d>>2]|0;if((c|0)!=(b|0))f[d>>2]=c+(~((c+-4-b|0)>>>2)<<2);Oq(b);Og(a);Oq(a);return}function Hk(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0;e=Rg(a,c)|0;if((e|0)==(a+4|0)){g=d;return g|0}d=e+28|0;if((b[d+11>>0]|0)<0)h=f[d>>2]|0;else h=d;g=Sj(h)|0;return g|0}function Ik(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;e=b>>31|((b|0)<0?-1:0)<<1;f=((b|0)<0?-1:0)>>31|((b|0)<0?-1:0)<<1;g=d>>31|((d|0)<0?-1:0)<<1;h=((d|0)<0?-1:0)>>31|((d|0)<0?-1:0)<<1;i=Xn(e^a|0,f^b|0,e|0,f|0)|0;b=I;a=g^e;e=h^f;return Xn((Ld(i,b,Xn(g^c|0,h^d|0,g|0,h|0)|0,I,0)|0)^a|0,I^e|0,a|0,e|0)|0}function Jk(a){a=a|0;var b=0,c=0;f[a>>2]=1768;b=f[a+76>>2]|0;if(b|0)Oq(b);b=a+68|0;c=f[b>>2]|0;f[b>>2]=0;if(c|0)Mq(c);f[a>>2]=1544;c=f[a+32>>2]|0;if(!c)return;b=a+36|0;a=f[b>>2]|0;if((a|0)!=(c|0))f[b>>2]=a+(~((a+-4-c|0)>>>2)<<2);Oq(c);return}function Kk(a,b,c,d,e,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;g=g|0;var h=0,i=0,j=0;f[a>>2]=b;h=b+16|0;i=f[h+4>>2]|0;j=a+8|0;f[j>>2]=f[h>>2];f[j+4>>2]=i;i=b+24|0;b=f[i+4>>2]|0;j=a+16|0;f[j>>2]=f[i>>2];f[j+4>>2]=b;b=a+40|0;f[b>>2]=c;f[b+4>>2]=d;d=a+48|0;f[d>>2]=e;f[d+4>>2]=g;return}function Lk(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0;c=a+4|0;d=f[c>>2]|0;e=f[a>>2]|0;g=d-e|0;h=e;e=d;if(g>>>0>=b>>>0){if(g>>>0>b>>>0?(d=h+b|0,(d|0)!=(e|0)):0)f[c>>2]=d}else Fi(a,b-g|0);g=a+24|0;a=g;b=Vn(f[a>>2]|0,f[a+4>>2]|0,1,0)|0;a=g;f[a>>2]=b;f[a+4>>2]=I;return}function Mk(a,c){a=a|0;c=c|0;var d=0,e=0,g=0;d=Rg(a,c)|0;if((d|0)==(a+4|0)){e=-1;return e|0}a=d+28|0;if((b[a+11>>0]|0)<0)g=f[a>>2]|0;else g=a;e=Sj(g)|0;return e|0}function Nk(a){a=a|0;var b=0,c=0,d=0;f[a>>2]=6152;b=f[a+96>>2]|0;if(b|0){c=a+100|0;d=f[c>>2]|0;if((d|0)!=(b|0))f[c>>2]=d+(~(((d+-12-b|0)>>>0)/12|0)*12|0);Oq(b)}b=f[a+84>>2]|0;if(!b){Og(a);return}d=a+88|0;c=f[d>>2]|0;if((c|0)!=(b|0))f[d>>2]=c+(~((c+-4-b|0)>>>2)<<2);Oq(b);Og(a);return}function Ok(a){a=a|0;var c=0,d=0,e=0;f[a>>2]=0;f[a+4>>2]=0;f[a+8>>2]=0;f[a+12>>2]=0;f[a+16>>2]=0;f[a+20>>2]=0;b[a+24>>0]=1;c=a+68|0;d=a+28|0;e=d+40|0;do{f[d>>2]=0;d=d+4|0}while((d|0)<(e|0));f[c>>2]=a;c=a+72|0;f[c>>2]=0;f[c+4>>2]=0;f[c+8>>2]=0;f[c+12>>2]=0;f[c+16>>2]=0;f[c+20>>2]=0;return}function Pk(a){a=a|0;var b=0,c=0,d=0;f[a>>2]=2244;b=f[a+76>>2]|0;if(b|0)Oq(b);f[a>>2]=1544;b=f[a+32>>2]|0;if(!b){Oq(a);return}c=a+36|0;d=f[c>>2]|0;if((d|0)!=(b|0))f[c>>2]=d+(~((d+-4-b|0)>>>2)<<2);Oq(b);Oq(a);return}function Qk(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0;f=u;u=u+256|0;g=f;if((c|0)>(d|0)&(e&73728|0)==0){e=c-d|0;sj(g|0,b<<24>>24|0,(e>>>0<256?e:256)|0)|0;if(e>>>0>255){b=c-d|0;d=e;do{Xo(a,g,256);d=d+-256|0}while(d>>>0>255);h=b&255}else h=e;Xo(a,g,h)}u=f;return}function Rk(a){a=a|0;var b=0,c=0,d=0;f[a>>2]=1824;b=f[a+76>>2]|0;if(b|0)Oq(b);f[a>>2]=1544;b=f[a+32>>2]|0;if(!b){Oq(a);return}c=a+36|0;d=f[c>>2]|0;if((d|0)!=(b|0))f[c>>2]=d+(~((d+-4-b|0)>>>2)<<2);Oq(b);Oq(a);return}function Sk(a,b,c,d,e,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;g=g|0;var h=0;if(fp(a,f[b+8>>2]|0,g)|0)qj(0,b,c,d,e);else{h=f[a+8>>2]|0;_a[f[(f[h>>2]|0)+20>>2]&3](h,b,c,d,e,g)}return}function Tk(a){a=a|0;var b=0,c=0,d=0;f[a>>2]=2300;Fj(a+108|0);f[a>>2]=1544;b=f[a+32>>2]|0;if(!b){Oq(a);return}c=a+36|0;d=f[c>>2]|0;if((d|0)!=(b|0))f[c>>2]=d+(~((d+-4-b|0)>>>2)<<2);Oq(b);Oq(a);return}function Uk(a){a=a|0;var b=0,c=0,d=0;f[a>>2]=1880;Fj(a+108|0);f[a>>2]=1544;b=f[a+32>>2]|0;if(!b){Oq(a);return}c=a+36|0;d=f[c>>2]|0;if((d|0)!=(b|0))f[c>>2]=d+(~((d+-4-b|0)>>>2)<<2);Oq(b);Oq(a);return}function Vk(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;a:do if(!d)e=0;else{f=a;g=d;h=c;while(1){i=b[f>>0]|0;j=b[h>>0]|0;if(i<<24>>24!=j<<24>>24)break;g=g+-1|0;if(!g){e=0;break a}else{f=f+1|0;h=h+1|0}}e=(i&255)-(j&255)|0}while(0);return e|0}function Wk(a){a=a|0;if(!(f[a+44>>2]|0))return 0;if(!(f[a+48>>2]|0))return 0;if(!(f[a+24>>2]|0))return 0;if(!(f[a+28>>2]|0))return 0;if(!(f[a+32>>2]|0))return 0;else return (f[a+36>>2]|0)!=0|0;return 0}function Xk(a){a=a|0;var b=0,c=0;f[a>>2]=2244;b=f[a+76>>2]|0;if(b|0)Oq(b);f[a>>2]=1544;b=f[a+32>>2]|0;if(!b)return;c=a+36|0;a=f[c>>2]|0;if((a|0)!=(b|0))f[c>>2]=a+(~((a+-4-b|0)>>>2)<<2);Oq(b);return}function Yk(a){a=a|0;var c=0,d=0;f[a>>2]=0;f[a+4>>2]=0;f[a+8>>2]=0;c=0;while(1){if((c|0)==3)break;f[a+(c<<2)>>2]=0;c=c+1|0}if((b[a+11>>0]|0)<0)d=(f[a+8>>2]&2147483647)+-1|0;else d=10;Hj(a,d,0);return}function Zk(a){a=a|0;var b=0,c=0,d=0,e=0.0,g=0.0;b=f[a+8>>2]|0;if((b|0)<2){c=0;d=0;I=c;return d|0}e=+(b|0);g=+Zg(e)*e;e=+W(+(g-+p[a>>3]));c=+K(e)>=1.0?(e>0.0?~~+Y(+J(e/4294967296.0),4294967295.0)>>>0:~~+W((e-+(~~e>>>0))/4294967296.0)>>>0):0;d=~~e>>>0;I=c;return d|0}function _k(a){a=a|0;var b=0,c=0;f[a>>2]=1824;b=f[a+76>>2]|0;if(b|0)Oq(b);f[a>>2]=1544;b=f[a+32>>2]|0;if(!b)return;c=a+36|0;a=f[c>>2]|0;if((a|0)!=(b|0))f[c>>2]=a+(~((a+-4-b|0)>>>2)<<2);Oq(b);return}function $k(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;c=f[a+16>>2]|0;if(((f[a+20>>2]|0)-c>>2|0)<=(b|0)){d=0;return d|0}e=f[c+(b<<2)>>2]|0;if((e|0)<0){d=0;return d|0}b=f[(f[a+36>>2]|0)+(e<<2)>>2]|0;e=f[b+32>>2]|0;if(e|0){d=e;return d|0}d=f[b+8>>2]|0;return d|0}function al(a){a=a|0;var b=0,c=0,d=0;f[a>>2]=1232;b=f[a+16>>2]|0;if(b|0){c=a+20|0;d=f[c>>2]|0;if((d|0)!=(b|0))f[c>>2]=d+(~((d+-4-b|0)>>>2)<<2);Oq(b)}b=f[a+4>>2]|0;if(!b)return;d=a+8|0;a=f[d>>2]|0;if((a|0)!=(b|0))f[d>>2]=a+(~((a+-4-b|0)>>>2)<<2);Oq(b);return}function bl(a){a=a|0;var b=0,c=0;f[a>>2]=2300;Fj(a+108|0);f[a>>2]=1544;b=f[a+32>>2]|0;if(!b)return;c=a+36|0;a=f[c>>2]|0;if((a|0)!=(b|0))f[c>>2]=a+(~((a+-4-b|0)>>>2)<<2);Oq(b);return}function cl(a){a=a|0;if(!(f[a+64>>2]|0))return 0;if(!(f[a+68>>2]|0))return 0;if(!(f[a+44>>2]|0))return 0;if(!(f[a+48>>2]|0))return 0;if(!(f[a+52>>2]|0))return 0;else return (f[a+56>>2]|0)!=0|0;return 0}function dl(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;if(fp(a,f[b+8>>2]|0,0)|0)Ck(0,b,c,d);else{e=f[a+8>>2]|0;Ya[f[(f[e>>2]|0)+28>>2]&3](e,b,c,d)}return}function el(a){a=a|0;var b=0,c=0;f[a>>2]=1880;Fj(a+108|0);f[a>>2]=1544;b=f[a+32>>2]|0;if(!b)return;c=a+36|0;a=f[c>>2]|0;if((a|0)!=(b|0))f[c>>2]=a+(~((a+-4-b|0)>>>2)<<2);Oq(b);return}function fl(a,b){a=a|0;b=b|0;var c=0,d=0;if((b|0)<0){c=0;return c|0}d=f[a+4>>2]|0;if(((f[d+12>>2]|0)-(f[d+8>>2]|0)>>2|0)<=(b|0)){c=0;return c|0}d=f[(f[a+8>>2]|0)+(f[(f[a+20>>2]|0)+(b<<2)>>2]<<2)>>2]|0;c=Ra[f[(f[d>>2]|0)+36>>2]&127](d,b)|0;return c|0}function gl(a,b){a=a|0;b=b|0;var c=0,d=0;if((b|0)<0){c=0;return c|0}d=f[a+4>>2]|0;if(((f[d+12>>2]|0)-(f[d+8>>2]|0)>>2|0)<=(b|0)){c=0;return c|0}d=f[(f[a+8>>2]|0)+(f[(f[a+20>>2]|0)+(b<<2)>>2]<<2)>>2]|0;c=Ra[f[(f[d>>2]|0)+32>>2]&127](d,b)|0;return c|0}function hl(a,c){a=a|0;c=c|0;var d=0,e=0,f=0,g=0;d=b[a>>0]|0;e=b[c>>0]|0;if(d<<24>>24==0?1:d<<24>>24!=e<<24>>24){f=e;g=d}else{d=c;c=a;do{c=c+1|0;d=d+1|0;a=b[c>>0]|0;e=b[d>>0]|0}while(!(a<<24>>24==0?1:a<<24>>24!=e<<24>>24));f=e;g=a}return (g&255)-(f&255)|0}function il(a,b){a=a|0;b=$(b);var c=0,d=0;c=u;u=u+16|0;d=c;Yk(d);Ei(a,d,b);Bo(d);u=c;return}function jl(a){a=a|0;var b=0,c=0,d=0,e=0,g=0;b=f[a>>2]|0;c=a+4|0;d=f[c>>2]|0;if((d|0)==(b|0))e=b;else{g=d+(~((d+-4-b|0)>>>2)<<2)|0;f[c>>2]=g;e=g}f[a+12>>2]=0;f[a+16>>2]=0;if(!b)return;if((e|0)!=(b|0))f[c>>2]=e+(~((e+-4-b|0)>>>2)<<2);Oq(b);return}function kl(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0;d=f[a+16>>2]|0;if(((f[a+20>>2]|0)-d>>2|0)<=(b|0)){e=-1;return e|0}g=f[d+(b<<2)>>2]|0;if((g|0)<0){e=-1;return e|0}e=f[(f[(f[(f[a+36>>2]|0)+(g<<2)>>2]|0)+16>>2]|0)+(c<<2)>>2]|0;return e|0}function ll(a,b){a=a|0;b=b|0;var c=0,d=0;c=u;u=u+16|0;d=c;Yk(d);Ji(a,d,b);Bo(d);u=c;return}function ml(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0;d=u;u=u+32|0;e=d;g=d+20|0;f[e>>2]=f[a+60>>2];f[e+4>>2]=0;f[e+8>>2]=b;f[e+12>>2]=g;f[e+16>>2]=c;if((to(za(140,e|0)|0)|0)<0){f[g>>2]=-1;h=-1}else h=f[g>>2]|0;u=d;return h|0}function nl(a,b){a=a|0;b=b|0;var c=0,d=0;if((b|0)==-1|(b|0)>4){c=0;return c|0}d=f[a+20+(b*12|0)>>2]|0;if(((f[a+20+(b*12|0)+4>>2]|0)-d|0)<=0){c=0;return c|0}b=f[d>>2]|0;if((b|0)==-1){c=0;return c|0}c=f[(f[a+8>>2]|0)+(b<<2)>>2]|0;return c|0}function ol(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;c=f[a+16>>2]|0;if(((f[a+20>>2]|0)-c>>2|0)<=(b|0)){d=0;return d|0}e=f[c+(b<<2)>>2]|0;if((e|0)<0){d=0;return d|0}b=f[(f[a+36>>2]|0)+(e<<2)>>2]|0;d=(f[b+20>>2]|0)-(f[b+16>>2]|0)>>2;return d|0}function pl(a){a=a|0;if(!(f[a+40>>2]|0))return 0;if(!(f[a+24>>2]|0))return 0;if(!(f[a+28>>2]|0))return 0;if(!(f[a+32>>2]|0))return 0;else return (f[a+36>>2]|0)!=0|0;return 0}function ql(a){a=a|0;var b=0;if(!(f[a+24>>2]|0)){b=0;return b|0}if(!(f[a+28>>2]|0)){b=0;return b|0}if(!(f[a+32>>2]|0)){b=0;return b|0}b=(f[a+36>>2]|0)!=0;return b|0}function rl(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;lh(a,c);f[a>>2]=1408;c=a+72|0;d=a+36|0;a=d+36|0;do{f[d>>2]=0;d=d+4|0}while((d|0)<(a|0));d=f[b>>2]|0;f[b>>2]=0;f[c>>2]=d;return}function sl(a){a=a|0;var b=0,c=0;f[a>>2]=3148;b=f[a+56>>2]|0;if(b|0)Oq(b);b=a+48|0;c=f[b>>2]|0;f[b>>2]=0;if(!c){Oq(a);return}Mq(c);Oq(a);return}function tl(a,c){a=a|0;c=c|0;var d=0,e=0;d=a;e=c;c=d+64|0;do{f[d>>2]=f[e>>2];d=d+4|0;e=e+4|0}while((d|0)<(c|0));e=a+64|0;f[a+88>>2]=0;f[e>>2]=0;f[e+4>>2]=0;f[e+8>>2]=0;f[e+12>>2]=0;f[e+16>>2]=0;b[e+20>>0]=0;return}function ul(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var f=0,g=0;if((a|0)==0&(c|0)==0)f=d;else{g=d;d=c;c=a;while(1){a=g+-1|0;b[a>>0]=h[16636+(c&15)>>0]|0|e;c=Yn(c|0,d|0,4)|0;d=I;if((c|0)==0&(d|0)==0){f=a;break}else g=a}}return f|0}function vl(a){a=a|0;var c=0,d=0,e=0;c=a+74|0;d=b[c>>0]|0;b[c>>0]=d+255|d;d=f[a>>2]|0;if(!(d&8)){f[a+8>>2]=0;f[a+4>>2]=0;c=f[a+44>>2]|0;f[a+28>>2]=c;f[a+20>>2]=c;f[a+16>>2]=c+(f[a+48>>2]|0);e=0}else{f[a>>2]=d|32;e=-1}return e|0}function wl(a){a=a|0;if(!(f[a+60>>2]|0))return 0;if(!(f[a+44>>2]|0))return 0;if(!(f[a+48>>2]|0))return 0;if(!(f[a+52>>2]|0))return 0;else return (f[a+56>>2]|0)!=0|0;return 0}function xl(a,b){a=a|0;b=b|0;var c=0,d=0;c=f[b+88>>2]|0;if(!c){d=0;return d|0}if((f[c>>2]|0)!=2){d=0;return d|0}b=f[c+8>>2]|0;f[a+4>>2]=h[b>>0]|h[b+1>>0]<<8|h[b+2>>0]<<16|h[b+3>>0]<<24;d=1;return d|0}function yl(a){a=a|0;var b=0;if(!(f[a+44>>2]|0)){b=0;return b|0}if(!(f[a+48>>2]|0)){b=0;return b|0}if(!(f[a+52>>2]|0)){b=0;return b|0}b=(f[a+56>>2]|0)!=0;return b|0}function zl(a){a=a|0;vj(a);Oq(a);return}function Al(a){a=a|0;var b=0,c=0;f[a>>2]=2784;b=f[a+56>>2]|0;if(b|0)Oq(b);b=a+48|0;c=f[b>>2]|0;f[b>>2]=0;if(!c){Oq(a);return}Mq(c);Oq(a);return}function Bl(a,c){a=a|0;c=c|0;var d=0;if(f[c+56>>2]|0){d=0;return d|0}if((b[c+24>>0]|0)!=3){d=0;return d|0}f[a+44>>2]=c;d=1;return d|0}function Cl(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0;c=a+4|0;d=f[c>>2]|0;e=f[a>>2]|0;g=d-e|0;if(g>>>0>>0){Fi(a,b-g|0);return}if(g>>>0<=b>>>0)return;g=e+b|0;if((g|0)==(d|0))return;f[c>>2]=g;return}function Dl(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=$(e);f[a+4>>2]=b;Zf(a+8|0,c,c+(d<<2)|0);n[a+20>>2]=e;return}function El(a,b){a=a|0;b=b|0;var c=0;if(!(Qa[f[(f[a>>2]|0)+40>>2]&127](a)|0)){c=0;return c|0}if(!(Ra[f[(f[a>>2]|0)+44>>2]&127](a,b)|0)){c=0;return c|0}c=Ra[f[(f[a>>2]|0)+48>>2]&127](a,b)|0;return c|0}function Fl(a,c){a=a|0;c=c|0;var d=0;if(f[c+56>>2]|0){d=0;return d|0}if((b[c+24>>0]|0)!=3){d=0;return d|0}f[a+40>>2]=c;d=1;return d|0}function Gl(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;c=u;u=u+16|0;d=c+4|0;e=c;f[e>>2]=0;f[d>>2]=f[e>>2];e=vc(a,b,d)|0;u=c;return e|0}function Hl(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,g=0;d=f[c>>2]|0;c=a;e=b-a>>2;while(1){if(!e)break;a=(e|0)/2|0;b=c+(a<<2)|0;g=(f[b>>2]|0)>>>0>>0;c=g?b+4|0:c;e=g?e+-1-a|0:a}return c|0}function Il(a){a=a|0;var c=0;f[a>>2]=0;c=a+8|0;f[c>>2]=0;f[c+4>>2]=0;f[c+8>>2]=0;f[c+12>>2]=0;b[a+24>>0]=1;f[a+28>>2]=9;c=a+40|0;f[c>>2]=0;f[c+4>>2]=0;f[c+8>>2]=0;f[c+12>>2]=0;f[a+56>>2]=-1;f[a+60>>2]=0;return}function Jl(a){a=a|0;yj(a);Oq(a);return}function Kl(a){a=a|0;var b=0;f[a>>2]=3148;b=f[a+56>>2]|0;if(b|0)Oq(b);b=a+48|0;a=f[b>>2]|0;f[b>>2]=0;if(!a)return;Mq(a);return}function Ll(a){a=a|0;var c=0,d=0,e=0,g=0,h=0;if(!(Aq(b[f[a>>2]>>0]|0)|0))c=0;else{d=0;while(1){e=f[a>>2]|0;g=(d*10|0)+-48+(b[e>>0]|0)|0;h=e+1|0;f[a>>2]=h;if(!(Aq(b[h>>0]|0)|0)){c=g;break}else d=g}}return c|0}function Ml(a,c){a=a|0;c=c|0;var d=0;if(f[c+56>>2]|0){d=0;return d|0}if((b[c+24>>0]|0)!=3){d=0;return d|0}f[a+64>>2]=c;d=1;return d|0}function Nl(a){a=a|0;var b=0,c=0;b=f[r>>2]|0;c=b+a|0;if((a|0)>0&(c|0)<(b|0)|(c|0)<0){ea()|0;ya(12);return -1}f[r>>2]=c;if((c|0)>(da()|0)?(ca()|0)==0:0){f[r>>2]=b;ya(12);return -1}return b|0}function Ol(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,f=0;if((a|0)==0&(c|0)==0)e=d;else{f=d;d=c;c=a;while(1){a=f+-1|0;b[a>>0]=c&7|48;c=Yn(c|0,d|0,3)|0;d=I;if((c|0)==0&(d|0)==0){e=a;break}else f=a}}return e|0}function Pl(a,c){a=a|0;c=c|0;var d=0;if(f[c+56>>2]|0){d=0;return d|0}if((b[c+24>>0]|0)!=3){d=0;return d|0}f[a+60>>2]=c;d=1;return d|0}function Ql(a){a=a|0;var b=0,c=0,d=0;f[a>>2]=1544;b=f[a+32>>2]|0;if(!b){Oq(a);return}c=a+36|0;d=f[c>>2]|0;if((d|0)!=(b|0))f[c>>2]=d+(~((d+-4-b|0)>>>2)<<2);Oq(b);Oq(a);return}function Rl(a,b,c,d,e,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;g=g|0;if(fp(a,f[b+8>>2]|0,g)|0)qj(0,b,c,d,e);return}function Sl(a){a=a|0;var b=0;f[a>>2]=2784;b=f[a+56>>2]|0;if(b|0)Oq(b);b=a+48|0;a=f[b>>2]|0;f[b>>2]=0;if(!a)return;Mq(a);return}function Tl(a){a=a|0;var c=0,d=0,e=0,g=0;c=u;u=u+16|0;d=c;e=f[a+4>>2]|0;g=(f[e+56>>2]|0)-(f[e+52>>2]|0)>>2;b[d>>0]=0;qh(a+20|0,g,d);u=c;return}function Ul(a){a=a|0;Vi(a);Oq(a);return}function Vl(a){a=a|0;var b=0;switch(a|0){case 11:case 2:case 1:{b=1;break}case 4:case 3:{b=2;break}case 6:case 5:{b=4;break}case 8:case 7:{b=8;break}case 9:{b=4;break}case 10:{b=8;break}default:b=-1}return b|0}function Wl(a){a=a|0;var c=0,d=0,e=0,g=0;c=u;u=u+16|0;d=c;e=f[a+4>>2]|0;g=(f[e+28>>2]|0)-(f[e+24>>2]|0)>>2;b[d>>0]=0;qh(a+20|0,g,d);u=c;return}function Xl(){var a=0,b=0;a=ln(40)|0;f[a>>2]=0;f[a+4>>2]=0;f[a+8>>2]=0;f[a+12>>2]=0;n[a+16>>2]=$(1.0);b=a+20|0;f[b>>2]=0;f[b+4>>2]=0;f[b+8>>2]=0;f[b+12>>2]=0;n[a+36>>2]=$(1.0);return a|0}function Yl(a,b){a=+a;b=+b;var c=0,d=0,e=0;p[s>>3]=a;c=f[s>>2]|0;d=f[s+4>>2]|0;p[s>>3]=b;e=f[s+4>>2]&-2147483648|d&2147483647;f[s>>2]=c;f[s+4>>2]=e;return +(+p[s>>3])}function Zl(a,b,c){a=a|0;b=b|0;c=+c;var d=0,e=0;d=u;u=u+16|0;e=d;p[e>>3]=c;_b(a,b,e);u=d;return}function _l(a){a=a|0;f[a>>2]=3656;Qi(a+8|0);Oq(a);return}function $l(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=u;u=u+16|0;e=d;f[e>>2]=c;fc(a,b,e);u=d;return}function am(a,c){a=a|0;c=c|0;var d=0,e=0;if((a|0)!=(c|0)){d=b[c+11>>0]|0;e=d<<24>>24<0;jj(a,e?f[c>>2]|0:c,e?f[c+4>>2]|0:d&255)|0}return a|0}function bm(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;c=a&65535;d=b&65535;e=X(d,c)|0;f=a>>>16;a=(e>>>16)+(X(d,f)|0)|0;d=b>>>16;b=X(d,c)|0;return (I=(a>>>16)+(X(d,f)|0)+(((a&65535)+b|0)>>>16)|0,a+b<<16|e&65535|0)|0}function cm(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;c=Gj(b)|0;d=ln(c+13|0)|0;f[d>>2]=c;f[d+4>>2]=c;f[d+8>>2]=0;e=Fp(d)|0;kh(e|0,b|0,c+1|0)|0;f[a>>2]=e;return}function dm(a,b){a=a|0;b=b|0;var c=0,d=0;if((b|0)==-1|(b|0)>4){c=-1;return c|0}d=f[a+20+(b*12|0)>>2]|0;if(((f[a+20+(b*12|0)+4>>2]|0)-d|0)<=0){c=-1;return c|0}c=f[d>>2]|0;return c|0}function em(a){a=a|0;Yi(a);Oq(a);return}function fm(a){a=a|0;f[a>>2]=3656;Qi(a+8|0);return}function gm(a){a=a|0;var b=0,c=0;f[a>>2]=1544;b=f[a+32>>2]|0;if(!b)return;c=a+36|0;a=f[c>>2]|0;if((a|0)!=(b|0))f[c>>2]=a+(~((a+-4-b|0)>>>2)<<2);Oq(b);return}function hm(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;if(fp(a,f[b+8>>2]|0,0)|0)Ck(0,b,c,d);return}function im(a,c,d){a=a|0;c=c|0;d=d|0;var e=0;if((c|0)<(a|0)&(a|0)<(c+d|0)){e=a;c=c+d|0;a=a+d|0;while((d|0)>0){a=a-1|0;c=c-1|0;d=d-1|0;b[a>>0]=b[c>>0]|0}a=e}else kh(a,c,d)|0;return a|0}function jm(a){a=a|0;var b=0,c=0,d=0;f[a>>2]=1196;b=f[a+8>>2]|0;if(!b){Oq(a);return}c=a+12|0;d=f[c>>2]|0;if((d|0)!=(b|0))f[c>>2]=d+(~((d+-4-b|0)>>>2)<<2);Oq(b);Oq(a);return}function km(a){a=a|0;var b=0;f[a>>2]=3204;b=f[a+56>>2]|0;if(!b){Oq(a);return}Oq(b);Oq(a);return}function lm(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0;d=u;u=u+16|0;e=d;f[e>>2]=f[c>>2];g=Sa[f[(f[a>>2]|0)+16>>2]&31](a,b,e)|0;if(g)f[c>>2]=f[e>>2];u=d;return g&1|0}function mm(a,b){a=a|0;b=b|0;var c=0;if(b>>>0>=2){c=0;return c|0}f[a+28>>2]=b;c=1;return c|0}function nm(a){a=a|0;var b=0,c=0;f[a>>2]=3408;b=a+56|0;c=f[b>>2]|0;f[b>>2]=0;if(!c){mj(a);return}Va[f[(f[c>>2]|0)+4>>2]&127](c);mj(a);return}function om(){var a=0,b=0;a=sn()|0;if((a|0?(b=f[a>>2]|0,b|0):0)?(a=b+48|0,(f[a>>2]&-256|0)==1126902528?(f[a+4>>2]|0)==1129074247:0):0)Ho(f[b+12>>2]|0);Ho(Qp()|0)}function pm(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return Qf(a,b,c,d,e,f,6)|0}function qm(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return Pf(a,b,c,d,e,f,4)|0}function rm(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return Wf(a,b,c,d,e,f,2)|0}function sm(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return Pf(a,b,c,d,e,f,3)|0}function tm(a){a=a|0;var b=0;f[a>>2]=2840;b=f[a+56>>2]|0;if(!b){Oq(a);return}Oq(b);Oq(a);return}function um(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return Wf(a,b,c,d,e,f,1)|0}function vm(a){a=a|0;var c=0;c=b[w+(a&255)>>0]|0;if((c|0)<8)return c|0;c=b[w+(a>>8&255)>>0]|0;if((c|0)<8)return c+8|0;c=b[w+(a>>16&255)>>0]|0;if((c|0)<8)return c+16|0;return (b[w+(a>>>24)>>0]|0)+24|0}function wm(a,b){a=a|0;b=b|0;var c=0.0,d=0.0,e=0.0,f=0.0;if(!a){c=0.0;return +c}if((b|0)==0|(a|0)==(b|0)){c=0.0;return +c}d=+(b>>>0)/+(a>>>0);e=1.0-d;f=d*+Zg(d);c=-(f+e*+Zg(e));return +c}function xm(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;if((b|0)>0)d=0;else return;do{e=f[a+(d<<2)>>2]|0;f[c+(d<<2)>>2]=e<<1^e>>31;d=d+1|0}while((d|0)!=(b|0));return}function ym(a){a=a|0;var b=0;zo(a);f[a>>2]=3344;f[a+40>>2]=1196;f[a+44>>2]=-1;b=a+48|0;f[b>>2]=0;f[b+4>>2]=0;f[b+8>>2]=0;f[b+12>>2]=0;return}function zm(a,c){a=a|0;c=c|0;var d=0;b[c+84>>0]=1;a=f[c+68>>2]|0;d=c+72|0;c=f[d>>2]|0;if((c|0)==(a|0))return 1;f[d>>2]=c+(~((c+-4-a|0)>>>2)<<2);return 1}function Am(a){a=a|0;var b=0,c=0;if(pq(a)|0?(b=Mp(f[a>>2]|0)|0,a=b+8|0,c=f[a>>2]|0,f[a>>2]=c+-1,(c+-1|0)<0):0)Oq(b);return}function Bm(a){a=a|0;var b=0,c=0;b=f[a+16>>2]|0;c=(((f[a+12>>2]|0)+1-b|0)/64|0)+b<<3;a=b<<3;b=Vn(c|0,((c|0)<0)<<31>>31|0,a|0,((a|0)<0)<<31>>31|0)|0;return b|0}function Cm(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return Qf(a,b,c,d,e,f,5)|0}function Dm(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return Qf(a,b,c,d,e,f,9)|0}function Em(a){a=a|0;var b=0;f[a>>2]=3204;b=f[a+56>>2]|0;if(!b)return;Oq(b);return}function Fm(a){a=a|0;var b=0,c=0;f[a>>2]=1476;b=a+36|0;c=f[b>>2]|0;f[b>>2]=0;if(c|0)Va[f[(f[c>>2]|0)+4>>2]&127](c);Ni(a);Oq(a);return}function Gm(a){a=a|0;var b=0,c=0;f[a>>2]=1196;b=f[a+8>>2]|0;if(!b)return;c=a+12|0;a=f[c>>2]|0;if((a|0)!=(b|0))f[c>>2]=a+(~((a+-4-b|0)>>>2)<<2);Oq(b);return}function Hm(a){a=a|0;var c=0;f[a>>2]=1352;f[a+4>>2]=0;f[a+8>>2]=0;f[a+12>>2]=-1;c=a+16|0;f[a+32>>2]=0;f[c>>2]=0;f[c+4>>2]=0;f[c+8>>2]=0;b[c+12>>0]=0;return}function Im(a){a=a|0;var b=0;f[a>>2]=2840;b=f[a+56>>2]|0;if(!b)return;Oq(b);return}function Jm(a){a=a|0;var b=0,c=0;f[a>>2]=1476;b=a+36|0;c=f[b>>2]|0;f[b>>2]=0;if(c|0)Va[f[(f[c>>2]|0)+4>>2]&127](c);Ni(a);return}function Km(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=$(f);Fg(a,b,c,d,e,f);return}function Lm(a){a=a|0;var b=0,c=0;f[a>>2]=3408;b=a+56|0;c=f[b>>2]|0;f[b>>2]=0;if(c|0)Va[f[(f[c>>2]|0)+4>>2]&127](c);mj(a);Oq(a);return}function Mm(a){a=a|0;var b=0,c=0,d=0;b=f[a>>2]|0;c=a+4|0;d=f[c>>2]|0;if((d|0)!=(b|0))f[c>>2]=d+(~((d+-4-b|0)>>>2)<<2);f[a+12>>2]=0;f[a+16>>2]=0;return}function Nm(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0;d=a+20|0;e=f[d>>2]|0;g=(f[a+16>>2]|0)-e|0;a=g>>>0>c>>>0?c:g;kh(e|0,b|0,a|0)|0;f[d>>2]=(f[d>>2]|0)+a;return c|0}function Om(a){a=a|0;var b=0;f[a>>2]=3588;b=f[a+20>>2]|0;if(b|0)Oq(b);b=f[a+8>>2]|0;if(!b){Oq(a);return}Oq(b);Oq(a);return}function Pm(a){a=a|0;var b=0,c=0;b=f[a>>2]|0;if(!b)return;c=a+4|0;a=f[c>>2]|0;if((a|0)!=(b|0))f[c>>2]=a+(~((a+-8-b|0)>>>3)<<3);Oq(b);return}function Qm(a){a=a|0;var b=0,c=0;b=f[a>>2]|0;if(!b)return;c=a+4|0;a=f[c>>2]|0;if((a|0)!=(b|0))f[c>>2]=a+(~((a+-4-b|0)>>>2)<<2);Oq(b);return}function Rm(a,b){a=a|0;b=b|0;var c=0;c=f[b>>2]|0;return (1<<(c&31)&f[(f[a+28>>2]|0)+(c>>>5<<2)>>2]|0)!=0|0}function Sm(a,b,c){a=a|0;b=b|0;c=c|0;return Sa[f[(f[a>>2]|0)+44>>2]&31](a,b,c)|0}function Tm(a){a=a|0;var c=0;Il(a);c=a+64|0;f[a+88>>2]=0;f[c>>2]=0;f[c+4>>2]=0;f[c+8>>2]=0;f[c+12>>2]=0;f[c+16>>2]=0;b[c+20>>0]=0;return}function Um(a){a=a|0;f[a>>2]=3260;Fj(a+88|0);Oq(a);return}function Vm(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;if((f[b+4>>2]|0)==(c|0)?(c=b+28|0,(f[c>>2]|0)!=1):0)f[c>>2]=d;return}function Wm(a){a=a|0;var b=0,c=0,d=0;b=u;u=u+16|0;c=b;if((Ek(a)|0)==0?(Sa[f[a+32>>2]&31](a,c,1)|0)==1:0)d=h[c>>0]|0;else d=-1;u=b;return d|0}function Xm(a){a=a|0;var b=0;f[a>>2]=3636;b=f[a+20>>2]|0;if(b|0)Oq(b);b=f[a+8>>2]|0;if(!b){Oq(a);return}Oq(b);Oq(a);return}function Ym(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;f[a+104>>2]=b;c=f[a+8>>2]|0;d=f[a+4>>2]|0;e=c-d|0;f[a+108>>2]=e;f[a+100>>2]=(b|0)!=0&(e|0)>(b|0)?d+b|0:c;return}function Zm(a){a=a|0;var b=0;f[a>>2]=0;f[a+4>>2]=0;f[a+8>>2]=0;b=a+16|0;f[b>>2]=0;f[b+4>>2]=0;f[b+8>>2]=0;f[b+12>>2]=0;f[b+16>>2]=0;return}function _m(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=$(f);Km(a,b,c,d,e,f);return}function $m(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return pm(a,b,c,d,e,f)|0}function an(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return qm(a,b,c,d,e,f)|0}function bn(a,b,c){a=a|0;b=b|0;c=c|0;f[a+4>>2]=b;f[a+8>>2]=f[(f[(f[b+4>>2]|0)+8>>2]|0)+(c<<2)>>2];f[a+12>>2]=c;return 1}function cn(a){a=a|0;var b=0,c=0;if(!a)return;b=f[a>>2]|0;if(b|0){c=a+4|0;if((f[c>>2]|0)!=(b|0))f[c>>2]=b;Oq(b)}Oq(a);return}function dn(a){a=a|0;f[a>>2]=2896;Fj(a+88|0);Oq(a);return}function en(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return rm(a,b,c,d,e,f)|0}function fn(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return sm(a,b,c,d,e,f)|0}function gn(a){a=a|0;f[a>>2]=3260;Fj(a+88|0);return}function hn(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,g=0;e=u;u=u+16|0;g=e|0;Ld(a,b,c,d,g)|0;u=e;return (I=f[g+4>>2]|0,f[g>>2]|0)|0}function jn(a){a=a|0;var b=0;eo(a);f[a>>2]=6152;b=a+84|0;f[b>>2]=0;f[b+4>>2]=0;f[b+8>>2]=0;f[b+12>>2]=0;f[b+16>>2]=0;f[b+20>>2]=0;return}function kn(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return um(a,b,c,d,e,f)|0}function ln(a){a=a|0;var b=0,c=0;b=(a|0)==0?1:a;while(1){a=$a(b)|0;if(a|0){c=a;break}a=Op()|0;if(!a){c=0;break}Ua[a&3]()}return c|0}function mn(a,b,c){a=a|0;b=b|0;c=c|0;ac(a,b,c);return}function nn(a){a=a|0;var b=0;f[a>>2]=3588;b=f[a+20>>2]|0;if(b|0)Oq(b);b=f[a+8>>2]|0;if(!b)return;Oq(b);return}function on(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return Cm(a,b,c,d,e,f)|0}function pn(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return Dm(a,b,c,d,e,f)|0}function qn(a){a=a|0;f[a>>2]=2896;Fj(a+88|0);return}function rn(a){a=a|0;var b=0,c=0,d=0;b=u;u=u+16|0;c=b;d=Qq(f[a+60>>2]|0)|0;f[c>>2]=d;d=to(Ba(6,c|0)|0)|0;u=b;return d|0}function sn(){var a=0,b=0;a=u;u=u+16|0;if(!(Ka(19700,3)|0)){b=Ia(f[4926]|0)|0;u=a;return b|0}else Hn(18840,a);return 0}function tn(a){a=a|0;var b=0;f[a>>2]=3636;b=f[a+20>>2]|0;if(b|0)Oq(b);b=f[a+8>>2]|0;if(!b)return;Oq(b);return}function un(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;e=a;a=c;c=bm(e,a)|0;f=I;return (I=(X(b,a)|0)+(X(d,e)|0)+f|f&0,c|0|0)|0}function vn(a,b){a=a|0;b=b|0;lh(a,b);f[a>>2]=1292;b=a+36|0;a=b+40|0;do{f[b>>2]=0;b=b+4|0}while((b|0)<(a|0));return}function wn(a){a=a|0;f[a>>2]=0;f[a+4>>2]=0;f[a+8>>2]=0;f[a+12>>2]=0;f[a+16>>2]=0;f[a+20>>2]=0;f[a+24>>2]=0;f[a+28>>2]=0;return}function xn(a){a=a|0;var b=0;b=u;u=u+16|0;yc(a);if(!(La(f[4926]|0,0)|0)){u=b;return}else Hn(18939,b)}function yn(a){a=a|0;var b=0;f[a>>2]=0;f[a+4>>2]=0;f[a+8>>2]=0;b=a+16|0;f[b>>2]=0;f[b+4>>2]=0;f[b+8>>2]=0;f[b+12>>2]=0;return}function zn(a,b){a=a|0;b=b|0;return vg(a+40|0,b)|0}function An(a,b){a=a|0;b=b|0;return lj(a,b,lq(b)|0)|0}function Bn(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,g=0;e=u;u=u+16|0;g=e;f[g>>2]=d;d=Zi(a,b,c,g)|0;u=e;return d|0}function Cn(a,b){a=a|0;b=b|0;return Mj(a+40|0,b)|0}function Dn(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return Qh(a,b,c,d)|0}function En(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return uh(a,b,c,d)|0}function Fn(a,b){a=a|0;b=b|0;var c=0;c=f[a+56>>2]|0;return Ra[f[(f[c>>2]|0)+24>>2]&127](c,b)|0}function Gn(a){a=a|0;f[a>>2]=0;f[a+4>>2]=0;f[a+8>>2]=0;f[a+12>>2]=0;f[a+16>>2]=0;f[a+20>>2]=0;b[a+24>>0]=0;return}function Hn(a,b){a=a|0;b=b|0;var c=0,d=0;c=u;u=u+16|0;d=c;f[d>>2]=b;b=f[1556]|0;Ah(b,a,d)|0;Lj(10,b)|0;Ca()}function In(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;return Ta[a&31](b|0,c|0,d|0,e|0,f|0,g|0)|0}function Jn(a,b){a=a|0;b=b|0;var c=0;c=f[a+56>>2]|0;return Ra[f[(f[c>>2]|0)+16>>2]&127](c,b)|0}function Kn(a,b){a=a|0;b=b|0;var c=0;c=f[a+56>>2]|0;return Ra[f[(f[c>>2]|0)+20>>2]&127](c,b)|0}function Ln(a,b){a=a|0;b=b|0;var c=0;c=f[a+56>>2]|0;return Ra[f[(f[c>>2]|0)+12>>2]&127](c,b)|0}function Mn(){var a=0;a=u;u=u+16|0;if(!(Ja(19704,113)|0)){u=a;return}else Hn(18889,a)}function Nn(a,b,c){a=a|0;b=b|0;c=c|0;Pj(a,b,c);return}function On(a){a=a|0;cf(a);Oq(a);return}function Pn(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;_a[a&3](b|0,c|0,d|0,e|0,f|0,g|0)}function Qn(a,b,c){a=a|0;b=b|0;c=c|0;if(b|0)sj(a|0,(kq(c)|0)&255|0,b|0)|0;return a|0}function Rn(a){a=a|0;return 4}function Sn(a,b,c){a=a|0;b=b|0;c=c|0;return ej(0,b,c)|0}function Tn(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){I=b<>>32-c;return a<>>0;return (I=b+d+(e>>>0>>0|0)>>>0,e|0)|0}function Wn(a,b){a=a|0;b=b|0;var c=0;if(!b)c=0;else c=Dh(f[b>>2]|0,f[b+4>>2]|0,a)|0;return (c|0?c:a)|0}function Xn(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;e=b-d>>>0;e=b-d-(c>>>0>a>>>0|0)>>>0;return (I=e,a-c>>>0|0)|0}function Yn(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){I=b>>>c;return a>>>c|(b&(1<>>c-32|0}function Zn(a){a=a|0;var b=0;f[a>>2]=3932;b=a+4|0;a=b+44|0;do{f[b>>2]=0;b=b+4|0}while((b|0)<(a|0));return}function _n(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return De(a,b,c,d)|0}function $n(a){a=a|0;ff(a);Oq(a);return}function ao(a,b){a=a|0;b=b|0;ji(a);f[a+36>>2]=b;f[a+40>>2]=0;return}function bo(a,b,c,d){a=a|0;b=b|0;c=c|0;d=+d;return $i(a,b,c,d)|0}function co(a){a=a|0;return 5}function eo(a){a=a|0;var b=0;f[a>>2]=6192;b=a+4|0;a=b+80|0;do{f[b>>2]=0;b=b+4|0}while((b|0)<(a|0));return}function fo(a){a=a|0;return 6}function go(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return aj(a,b,c,d)|0}function ho(a,b,c){a=a|0;b=b|0;c=c|0;f[a+28>>2]=b;f[a+32>>2]=c;return 1}function io(a,b){a=a|0;b=b|0;ji(a);f[a+36>>2]=b;f[a+40>>2]=b;return}function jo(a,b,c){a=a|0;b=b|0;c=c|0;Nn(a,b,c);return}function ko(a){a=a|0;var b=0;b=f[a+56>>2]|0;return Qa[f[(f[b>>2]|0)+28>>2]&127](b)|0}function lo(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;Ve(a,b,c,d,1);return}function mo(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;Ve(a,b,c,d,0);return}function no(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return Xg(a,b,c,d)|0}function oo(a,b,c){a=a|0;b=b|0;c=c|0;return fi(a,b,c)|0}function po(a){a=a|0;var b=0;b=f[a+56>>2]|0;return Qa[f[(f[b>>2]|0)+32>>2]&127](b)|0}function qo(a,b,c){a=a|0;b=b|0;c=c|0;return ej(a,b,c)|0}function ro(a,b,c){a=a|0;b=b|0;c=c|0;return Sn(a,b,c)|0}function so(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;Za[a&3](b|0,c|0,d|0,e|0,f|0)}function to(a){a=a|0;var b=0,c=0;if(a>>>0>4294963200){b=Vq()|0;f[b>>2]=0-a;c=-1}else c=a;return c|0}function uo(a,b,c){a=a|0;b=b|0;c=c|0;Li(a,b,c);return}function vo(a){a=a|0;f[a>>2]=0;f[a+4>>2]=0;f[a+8>>2]=0;f[a+12>>2]=0;f[a+16>>2]=0;return}function wo(a,b){a=a|0;b=b|0;f[a+8>>2]=b;f[a+12>>2]=-1;return 1}function xo(a,b){a=a|0;b=b|0;f[a+52>>2]=b;ip(a,b);return}function yo(a){a=+a;var b=0;p[s>>3]=a;b=f[s>>2]|0;I=f[s+4>>2]|0;return b|0}function zo(a){a=a|0;Hm(a);f[a>>2]=1476;f[a+36>>2]=0;return}function Ao(a){a=a|0;var b=0;if(!a)b=0;else b=(Eh(a,1056,1144,0)|0)!=0&1;return b|0}function Bo(a){a=a|0;if((b[a+11>>0]|0)<0)Oq(f[a>>2]|0);return}function Co(a){a=a|0;if(!a)return;Va[f[(f[a>>2]|0)+4>>2]&127](a);return}function Do(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;Ya[a&3](b|0,c|0,d|0,e|0)}function Eo(a,b,c){a=a|0;b=b|0;c=c|0;if(c|0)im(a|0,b|0,c|0)|0;return a|0}function Fo(a,b,c){a=a|0;b=b|0;c=c|0;if(c|0)kh(a|0,b|0,c|0)|0;return a|0}function Go(a,b){a=a|0;b=b|0;return -1}function Ho(a){a=a|0;var b=0;b=u;u=u+16|0;Ua[a&3]();Hn(18992,b)}function Io(a){a=a|0;Lh(a);Oq(a);return}function Jo(a,b,c){a=a|0;b=b|0;c=c|0;Ro(a,b,c);return}function Ko(a,b,c){a=a|0;b=$(b);c=c|0;f[a+4>>2]=c;n[a>>2]=b;return}function Lo(a){a=a|0;To(a);f[a>>2]=3408;f[a+56>>2]=0;return}function Mo(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return Sa[a&31](b|0,c|0,d|0)|0}function No(a,b){a=a|0;b=b|0;return (wp(a,b)|0)<<24>>24|0}function Oo(a,b){a=a|0;b=b|0;f[a>>2]=7236;cm(a+4|0,b);return}function Po(a,b){a=a|0;b=b|0;var c=0;if(!a)c=0;else c=Pi(a,b,0)|0;return c|0}function Qo(a){a=a|0;return f[a+12>>2]|0}function Ro(a,b,c){a=a|0;b=b|0;c=c|0;uo(a,b,c);return}function So(){var a=0;a=ln(64)|0;Il(a);return a|0}function To(a){a=a|0;Zn(a);f[a>>2]=3764;f[a+52>>2]=0;return}function Uo(a){a=a|0;if(!a)return;bj(a);Oq(a);return}function Vo(a){a=a|0;return Qa[f[(f[a>>2]|0)+60>>2]&127](a)|0}function Wo(a){a=a|0;return f[a+4>>2]|0}function Xo(a,b,c){a=a|0;b=b|0;c=c|0;if(!(f[a>>2]&32))qi(b,c,a)|0;return}function Yo(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;Xa[a&15](b|0,c|0,d|0)}function Zo(){var a=0;a=ln(96)|0;Tm(a);return a|0}function _o(a){a=a|0;var b=0;b=u;u=u+a|0;u=u+15&-16;return b|0}function $o(a){a=a|0;var b=0;b=(Jq()|0)+188|0;return $j(a,f[b>>2]|0)|0}function ap(a){a=a|0;return ((f[a+100>>2]|0)-(f[a+96>>2]|0)|0)/12|0|0}function bp(a,b){a=a|0;b=b|0;kp(a,b);return}function cp(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;aa(3);return 0}function dp(){var a=0;a=ln(12)|0;op(a);return a|0}function ep(a){a=a|0;Ni(a);Oq(a);return}function fp(a,b,c){a=a|0;b=b|0;c=c|0;return (a|0)==(b|0)|0}function gp(a,b){a=a|0;b=b|0;var c=0;c=sp(a|0)|0;return ((b|0)==0?a:c)|0}function hp(a){a=a|0;return (f[a+12>>2]|0)-(f[a+8>>2]|0)>>2|0}function ip(a,b){a=a|0;b=b|0;f[a+4>>2]=b;return}function jp(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return Ld(a,b,c,d,0)|0}function kp(a,b){a=a|0;b=b|0;jk(a,b);return}function lp(a){a=a|0;f[a+4>>2]=0;f[a+8>>2]=0;f[a>>2]=a+4;return}function mp(){var a=0;a=ln(84)|0;eo(a);return a|0}function np(a){a=a|0;ui(a);Oq(a);return}function op(a){a=a|0;f[a>>2]=0;f[a+4>>2]=0;f[a+8>>2]=0;return}function pp(a){a=a|0;f[a>>2]=7236;Am(a+4|0);return}function qp(a,b,c){a=a|0;b=b|0;c=c|0;return Ra[a&127](b|0,c|0)|0}function rp(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;aa(10)}function sp(a){a=a|0;return (a&255)<<24|(a>>8&255)<<16|(a>>16&255)<<8|a>>>24|0}function tp(a){a=a|0;To(a);f[a>>2]=3836;return}function up(a,c){a=a|0;c=c|0;b[a>>0]=b[c>>0]|0;return}function vp(a,b,c){a=a|0;b=b|0;c=c|0;return -1}function wp(a,c){a=a|0;c=c|0;return b[(f[a>>2]|0)+c>>0]|0}function xp(a){a=a|0;return (f[a+4>>2]|0)-(f[a>>2]|0)|0}function yp(a){a=a|0;mj(a);Oq(a);return}function zp(a){a=a|0;if(!a)return;Oq(a);return}function Ap(a){a=a|0;n[a>>2]=$(1.0);f[a+4>>2]=1;return}function Bp(a){a=a|0;b[a+28>>0]=1;return}function Cp(a,b){a=a|0;b=b|0;if(!x){x=a;y=b}}function Dp(a){a=a|0;ji(a);return}function Ep(a,b){a=a|0;b=b|0;return 1}function Fp(a){a=a|0;return a+12|0}function Gp(a,b){a=a|0;b=b|0;f[a+80>>2]=b;return}function Hp(a,b,c){a=a|0;b=b|0;c=c|0;Wa[a&7](b|0,c|0)}function Ip(){var a=0;a=ln(36)|0;qq(a);return a|0}function Jp(a){a=a|0;return gq(a+4|0)|0}function Kp(){var a=0;a=ln(108)|0;jn(a);return a|0}function Lp(a){a=a|0;return (b[a+32>>0]|0)!=0|0}function Mp(a){a=a|0;return a+-12|0}function Np(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;aa(9)}function Op(){var a=0;a=f[4927]|0;f[4927]=a+0;return a|0}function Pp(a){a=a|0;return f[a+56>>2]|0}function Qp(){var a=0;a=f[1786]|0;f[1786]=a+0;return a|0}function Rp(a){a=a|0;Og(a);Oq(a);return}function Sp(a){a=a|0;Sq(a);Oq(a);return}function Tp(a){a=a|0;return b[a+24>>0]|0}function Up(a,b){a=a|0;b=b|0;return 0}function Vp(a){a=a|0;return f[a+40>>2]|0}function Wp(a){a=a|0;return f[a+48>>2]|0}function Xp(a,b){a=a|0;b=b|0;return Qa[a&127](b|0)|0}function Yp(a){a=a|0;return f[a+60>>2]|0}function Zp(a){a=a|0;return f[a+28>>2]|0}function _p(a){a=a|0;sa(a|0)|0;om()}function $p(a){a=a|0;pp(a);Oq(a);return}function aq(a){a=a|0;Ca()}function bq(a,b){a=a|0;b=b|0;return $(+Bk(a,b,0))}function cq(a){a=a|0;return 3}function dq(a,b){a=a|0;b=b|0;u=a;v=b}function eq(a){a=a|0;return ((a|0)==32|(a+-9|0)>>>0<5)&1|0}function fq(a){a=a|0;return f[a+80>>2]|0}function gq(a){a=a|0;return f[a>>2]|0}function hq(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;aa(8)}function iq(a,b){a=a|0;b=b|0;Va[a&127](b|0)}function jq(a,b){a=a|0;b=b|0;return Wn(a,b)|0}function kq(a){a=a|0;return a&255|0}function lq(a){a=a|0;return Gj(a)|0}function mq(a,b){a=a|0;b=b|0;return +(+Bk(a,b,1))}function nq(a,b,c){a=a|0;b=b|0;c=c|0;aa(2);return 0}function oq(a){a=a|0;return 2}function pq(a){a=a|0;return 1}function qq(a){a=a|0;Dp(a);return}function rq(a,b){a=+a;b=+b;return +(+Yl(a,b))}function sq(a,b){a=+a;b=b|0;return +(+bk(a,b))}function tq(a,b){a=+a;b=b|0;return +(+ak(a,b))}function uq(){return 3}function vq(a,b,c){a=a|0;b=b|0;c=c|0;aa(7)}function wq(){return 0}function xq(){return -1}function yq(){return ln(1)|0}function zq(){return 4}function Aq(a){a=a|0;return (a+-48|0)>>>0<10|0}function Bq(){return 1}function Cq(){return 2}function Dq(a,b){a=+a;b=+b;return +(+xd(a,b))}function Eq(a,b){a=a|0;b=b|0;aa(1);return 0}function Fq(a){a=a|0;Ha()}function Gq(a){a=a|0;Ua[a&3]()}function Hq(){ua()}function Iq(a){a=a|0;return +(+mq(a,0))}function Jq(){return Yq()|0}function Kq(a,b){a=a|0;b=b|0;aa(6)}function Lq(a){a=a|0;return ln(a)|0}function Mq(a){a=a|0;Oq(a);return}function Nq(a){a=a|0;u=a}function Oq(a){a=a|0;yc(a);return}function Pq(a){a=a|0;I=a}function Qq(a){a=a|0;return a|0}function Rq(a){a=a|0;aa(0);return 0}function Sq(a){a=a|0;return}function Tq(a){a=a|0;return 0}function Uq(){return I|0}function Vq(){return 19632}function Wq(){return u|0}function Xq(a){a=a|0;aa(5)}function Yq(){return 6352}function Zq(){aa(4)} // EMSCRIPTEN_END_FUNCS var Qa=[Rq,oq,pq,pq,oq,gb,Tq,Tq,Tq,hk,kg,pq,Wo,Tq,Tq,pq,Tq,pq,pq,yl,oq,yl,cq,wl,pq,co,wl,pq,fo,cl,pq,Zp,Rn,yl,pq,yl,oq,yl,cq,wl,pq,co,wl,pq,fo,cl,pq,Zp,Rn,yl,pq,cq,Tq,Wo,pq,Tq,pq,cq,pq,ql,oq,ql,Rn,ql,cq,pl,pq,co,pl,pq,fo,Wk,pq,Zp,pq,ql,oq,ql,Rn,ql,cq,pl,pq,co,pl,pq,fo,Wk,pq,Zp,pq,oq,pq,pq,Nd,pq,Vo,Xe,mh,zk,po,ko,pb,Qo,Wo,Mg,Wg,Lf,rb,Qo,Wo,pq,Tq,Tq,zc,Ki,Tq,pq,pq,Uj,Tq,Uj,ck,rn,Jp,Rq,Rq,Rq];var Ra=[Eq,xl,nh,Ie,El,Up,Up,Up,Ep,jb,rj,wo,Ep,Ep,ti,nj,ii,kk,ol,Qj,$k,dk,ek,Te,Go,Up,ni,Up,Pl,$d,Up,Pl,nf,Up,Ml,sh,mm,Ed,Up,Pl,$d,Up,Pl,nf,Up,Ml,sh,mm,Ed,Cn,Go,Up,li,Dd,Up,Fl,Zd,Up,Fl,hf,Up,Bl,rh,mm,Dd,Up,Fl,Zd,Up,Fl,hf,Up,Bl,rh,mm,zn,Kn,Fn,Ln,Jn,dh,ik,uk,cc,ye,Rm,og,vf,wf,ah,ik,uk,bc,ye,Rm,Ep,Up,Up,of,zm,mg,of,Eq,Eq,Eq,Eq,Eq,Eq,Eq,Eq,Eq,Eq,Eq,Eq,Eq,Eq,Eq,Eq,Eq,Eq,Eq,Eq,Eq,Eq,Eq,Eq,Eq,Eq];var Sa=[nq,ho,vp,bn,Sm,wg,oj,kl,xh,wc,Kh,pg,gi,Rb,di,Ng,ml,Nm,Cj,nq,nq,nq,nq,nq,nq,nq,nq,nq,nq,nq,nq,nq];var Ta=[cp,Xd,Jc,oc,be,Ae,Tb,bb,Lc,pc,ae,ze,Sb,ab,eh,kd,Ic,fb,pf,If,tc,od,Kc,db,kf,Gf,qc,cp,cp,cp,cp,cp];var Ua=[Zq,Hq,Oi,Mn];var Va=[Xq,Sq,Mq,Gm,jm,al,Fq,ui,np,Ni,ep,Lh,Io,Jm,Fm,gm,Fq,Ql,Ql,Ql,Jk,wk,_k,Rk,el,Uk,Sq,Mq,Fq,Yi,em,Ql,Ql,Dk,rk,Xk,Pk,bl,Tk,Sq,Mq,Fq,Vi,Ul,Jm,Fm,Sq,Mq,Mq,Mq,yj,Jl,Sl,Al,Im,tm,qn,dn,Sq,Mq,Mq,Mq,vj,zl,Kl,sl,Em,km,gn,Um,Sq,Mq,xk,ok,nm,Lm,ff,$n,vk,nk,nn,Om,Tl,Ak,qk,tn,Xm,Wl,fm,_l,cf,On,mj,Fq,yp,Sq,Mq,Fq,yp,yp,Nk,Gk,sb,Og,Rp,Sq,Sp,Sq,Sq,Sp,pp,$p,$p,xn,Xq,Xq,Xq,Xq,Xq,Xq,Xq,Xq,Xq,Xq,Xq,Xq,Xq,Xq];var Wa=[Kq,pk,gg,yk,Nc,Kq,Kq,Kq];var Xa=[vq,Ne,ij,$b,ic,yd,$b,ic,$g,Aj,Lg,Yf,vq,vq,vq,vq];var Ya=[hq,hm,dl,hq];var Za=[Np,tj,oh,Np];var _a=[rp,Rl,Sk,rp];return{___cxa_can_catch:lm,___cxa_is_pointer_type:Ao,___divdi3:Ik,___muldi3:un,___udivdi3:jp,___uremdi3:hn,_bitshift64Lshr:Yn,_bitshift64Shl:Tn,_emscripten_bind_DracoInt8Array_DracoInt8Array_0:dp,_emscripten_bind_DracoInt8Array_GetValue_1:No,_emscripten_bind_DracoInt8Array___destroy___0:cn,_emscripten_bind_DracoInt8Array_size_0:xp,_emscripten_bind_Encoder_EncodeMeshToDracoBuffer_2:oo,_emscripten_bind_Encoder_EncodePointCloudToDracoBuffer_3:En,_emscripten_bind_Encoder_Encoder_0:Ip,_emscripten_bind_Encoder_SetAttributeExplicitQuantization_5:_m,_emscripten_bind_Encoder_SetAttributeQuantization_2:jo,_emscripten_bind_Encoder_SetEncodingMethod_1:bp,_emscripten_bind_Encoder_SetSpeedOptions_2:Jo,_emscripten_bind_Encoder___destroy___0:Wj,_emscripten_bind_GeometryAttribute_GeometryAttribute_0:So,_emscripten_bind_GeometryAttribute___destroy___0:zp,_emscripten_bind_MeshBuilder_AddFacesToMesh_3:no,_emscripten_bind_MeshBuilder_AddFloatAttributeToMesh_5:pn,_emscripten_bind_MeshBuilder_AddFloatAttribute_5:pn,_emscripten_bind_MeshBuilder_AddInt16Attribute_5:fn,_emscripten_bind_MeshBuilder_AddInt32AttributeToMesh_5:on,_emscripten_bind_MeshBuilder_AddInt32Attribute_5:on,_emscripten_bind_MeshBuilder_AddInt8Attribute_5:kn,_emscripten_bind_MeshBuilder_AddMetadataToMesh_2:ro,_emscripten_bind_MeshBuilder_AddMetadata_2:qo,_emscripten_bind_MeshBuilder_AddUInt16Attribute_5:an,_emscripten_bind_MeshBuilder_AddUInt32Attribute_5:$m,_emscripten_bind_MeshBuilder_AddUInt8Attribute_5:en,_emscripten_bind_MeshBuilder_MeshBuilder_0:yq,_emscripten_bind_MeshBuilder_SetMetadataForAttribute_3:Dn,_emscripten_bind_MeshBuilder___destroy___0:zp,_emscripten_bind_Mesh_Mesh_0:Kp,_emscripten_bind_Mesh___destroy___0:Co,_emscripten_bind_Mesh_num_attributes_0:hp,_emscripten_bind_Mesh_num_faces_0:ap,_emscripten_bind_Mesh_num_points_0:fq,_emscripten_bind_Mesh_set_num_points_1:Gp,_emscripten_bind_MetadataBuilder_AddDoubleEntry_3:bo,_emscripten_bind_MetadataBuilder_AddIntEntry_3:go,_emscripten_bind_MetadataBuilder_AddStringEntry_3:_n,_emscripten_bind_MetadataBuilder_MetadataBuilder_0:yq,_emscripten_bind_MetadataBuilder___destroy___0:zp,_emscripten_bind_Metadata_Metadata_0:Xl,_emscripten_bind_Metadata___destroy___0:Uo,_emscripten_bind_PointAttribute_PointAttribute_0:Zo,_emscripten_bind_PointAttribute___destroy___0:Ij,_emscripten_bind_PointAttribute_attribute_type_0:Pp,_emscripten_bind_PointAttribute_byte_offset_0:Wp,_emscripten_bind_PointAttribute_byte_stride_0:Vp,_emscripten_bind_PointAttribute_data_type_0:Zp,_emscripten_bind_PointAttribute_normalized_0:Lp,_emscripten_bind_PointAttribute_num_components_0:Tp,_emscripten_bind_PointAttribute_size_0:fq,_emscripten_bind_PointAttribute_unique_id_0:Yp,_emscripten_bind_PointCloudBuilder_AddFloatAttribute_5:pn,_emscripten_bind_PointCloudBuilder_AddInt16Attribute_5:fn,_emscripten_bind_PointCloudBuilder_AddInt32Attribute_5:on,_emscripten_bind_PointCloudBuilder_AddInt8Attribute_5:kn,_emscripten_bind_PointCloudBuilder_AddMetadata_2:qo,_emscripten_bind_PointCloudBuilder_AddUInt16Attribute_5:an,_emscripten_bind_PointCloudBuilder_AddUInt32Attribute_5:$m,_emscripten_bind_PointCloudBuilder_AddUInt8Attribute_5:en,_emscripten_bind_PointCloudBuilder_PointCloudBuilder_0:yq,_emscripten_bind_PointCloudBuilder_SetMetadataForAttribute_3:Dn,_emscripten_bind_PointCloudBuilder___destroy___0:zp,_emscripten_bind_PointCloud_PointCloud_0:mp,_emscripten_bind_PointCloud___destroy___0:Co,_emscripten_bind_PointCloud_num_attributes_0:hp,_emscripten_bind_PointCloud_num_points_0:fq,_emscripten_bind_VoidPtr___destroy___0:zp,_emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE:xq,_emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD:wq,_emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH:Bq,_emscripten_enum_draco_GeometryAttribute_Type_COLOR:Cq,_emscripten_enum_draco_GeometryAttribute_Type_GENERIC:zq,_emscripten_enum_draco_GeometryAttribute_Type_INVALID:xq,_emscripten_enum_draco_GeometryAttribute_Type_NORMAL:Bq,_emscripten_enum_draco_GeometryAttribute_Type_POSITION:wq,_emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD:uq,_emscripten_enum_draco_MeshEncoderMethod_MESH_EDGEBREAKER_ENCODING:Bq,_emscripten_enum_draco_MeshEncoderMethod_MESH_SEQUENTIAL_ENCODING:wq,_emscripten_replace_memory:Pa,_free:yc,_i64Add:Vn,_i64Subtract:Xn,_llvm_bswap_i32:sp,_malloc:$a,_memcpy:kh,_memmove:im,_memset:sj,_sbrk:Nl,dynCall_ii:Xp,dynCall_iii:qp,dynCall_iiii:Mo,dynCall_iiiiiii:In,dynCall_v:Gq,dynCall_vi:iq,dynCall_vii:Hp,dynCall_viii:Yo,dynCall_viiii:Do,dynCall_viiiii:so,dynCall_viiiiii:Pn,establishStackSpace:dq,getTempRet0:Uq,runPostSets:Un,setTempRet0:Pq,setThrew:Cp,stackAlloc:_o,stackRestore:Nq,stackSave:Wq}}) // EMSCRIPTEN_END_ASM (Module.asmGlobalArg,Module.asmLibraryArg,buffer);var ___cxa_can_catch=Module["___cxa_can_catch"]=asm["___cxa_can_catch"];var ___cxa_is_pointer_type=Module["___cxa_is_pointer_type"]=asm["___cxa_is_pointer_type"];var ___divdi3=Module["___divdi3"]=asm["___divdi3"];var ___muldi3=Module["___muldi3"]=asm["___muldi3"];var ___udivdi3=Module["___udivdi3"]=asm["___udivdi3"];var ___uremdi3=Module["___uremdi3"]=asm["___uremdi3"];var _bitshift64Lshr=Module["_bitshift64Lshr"]=asm["_bitshift64Lshr"];var _bitshift64Shl=Module["_bitshift64Shl"]=asm["_bitshift64Shl"];var _emscripten_bind_DracoInt8Array_DracoInt8Array_0=Module["_emscripten_bind_DracoInt8Array_DracoInt8Array_0"]=asm["_emscripten_bind_DracoInt8Array_DracoInt8Array_0"];var _emscripten_bind_DracoInt8Array_GetValue_1=Module["_emscripten_bind_DracoInt8Array_GetValue_1"]=asm["_emscripten_bind_DracoInt8Array_GetValue_1"];var _emscripten_bind_DracoInt8Array___destroy___0=Module["_emscripten_bind_DracoInt8Array___destroy___0"]=asm["_emscripten_bind_DracoInt8Array___destroy___0"];var _emscripten_bind_DracoInt8Array_size_0=Module["_emscripten_bind_DracoInt8Array_size_0"]=asm["_emscripten_bind_DracoInt8Array_size_0"];var _emscripten_bind_Encoder_EncodeMeshToDracoBuffer_2=Module["_emscripten_bind_Encoder_EncodeMeshToDracoBuffer_2"]=asm["_emscripten_bind_Encoder_EncodeMeshToDracoBuffer_2"];var _emscripten_bind_Encoder_EncodePointCloudToDracoBuffer_3=Module["_emscripten_bind_Encoder_EncodePointCloudToDracoBuffer_3"]=asm["_emscripten_bind_Encoder_EncodePointCloudToDracoBuffer_3"];var _emscripten_bind_Encoder_Encoder_0=Module["_emscripten_bind_Encoder_Encoder_0"]=asm["_emscripten_bind_Encoder_Encoder_0"];var _emscripten_bind_Encoder_SetAttributeExplicitQuantization_5=Module["_emscripten_bind_Encoder_SetAttributeExplicitQuantization_5"]=asm["_emscripten_bind_Encoder_SetAttributeExplicitQuantization_5"];var _emscripten_bind_Encoder_SetAttributeQuantization_2=Module["_emscripten_bind_Encoder_SetAttributeQuantization_2"]=asm["_emscripten_bind_Encoder_SetAttributeQuantization_2"];var _emscripten_bind_Encoder_SetEncodingMethod_1=Module["_emscripten_bind_Encoder_SetEncodingMethod_1"]=asm["_emscripten_bind_Encoder_SetEncodingMethod_1"];var _emscripten_bind_Encoder_SetSpeedOptions_2=Module["_emscripten_bind_Encoder_SetSpeedOptions_2"]=asm["_emscripten_bind_Encoder_SetSpeedOptions_2"];var _emscripten_bind_Encoder___destroy___0=Module["_emscripten_bind_Encoder___destroy___0"]=asm["_emscripten_bind_Encoder___destroy___0"];var _emscripten_bind_GeometryAttribute_GeometryAttribute_0=Module["_emscripten_bind_GeometryAttribute_GeometryAttribute_0"]=asm["_emscripten_bind_GeometryAttribute_GeometryAttribute_0"];var _emscripten_bind_GeometryAttribute___destroy___0=Module["_emscripten_bind_GeometryAttribute___destroy___0"]=asm["_emscripten_bind_GeometryAttribute___destroy___0"];var _emscripten_bind_MeshBuilder_AddFacesToMesh_3=Module["_emscripten_bind_MeshBuilder_AddFacesToMesh_3"]=asm["_emscripten_bind_MeshBuilder_AddFacesToMesh_3"];var _emscripten_bind_MeshBuilder_AddFloatAttributeToMesh_5=Module["_emscripten_bind_MeshBuilder_AddFloatAttributeToMesh_5"]=asm["_emscripten_bind_MeshBuilder_AddFloatAttributeToMesh_5"];var _emscripten_bind_MeshBuilder_AddFloatAttribute_5=Module["_emscripten_bind_MeshBuilder_AddFloatAttribute_5"]=asm["_emscripten_bind_MeshBuilder_AddFloatAttribute_5"];var _emscripten_bind_MeshBuilder_AddInt16Attribute_5=Module["_emscripten_bind_MeshBuilder_AddInt16Attribute_5"]=asm["_emscripten_bind_MeshBuilder_AddInt16Attribute_5"];var _emscripten_bind_MeshBuilder_AddInt32AttributeToMesh_5=Module["_emscripten_bind_MeshBuilder_AddInt32AttributeToMesh_5"]=asm["_emscripten_bind_MeshBuilder_AddInt32AttributeToMesh_5"];var _emscripten_bind_MeshBuilder_AddInt32Attribute_5=Module["_emscripten_bind_MeshBuilder_AddInt32Attribute_5"]=asm["_emscripten_bind_MeshBuilder_AddInt32Attribute_5"];var _emscripten_bind_MeshBuilder_AddInt8Attribute_5=Module["_emscripten_bind_MeshBuilder_AddInt8Attribute_5"]=asm["_emscripten_bind_MeshBuilder_AddInt8Attribute_5"];var _emscripten_bind_MeshBuilder_AddMetadataToMesh_2=Module["_emscripten_bind_MeshBuilder_AddMetadataToMesh_2"]=asm["_emscripten_bind_MeshBuilder_AddMetadataToMesh_2"];var _emscripten_bind_MeshBuilder_AddMetadata_2=Module["_emscripten_bind_MeshBuilder_AddMetadata_2"]=asm["_emscripten_bind_MeshBuilder_AddMetadata_2"];var _emscripten_bind_MeshBuilder_AddUInt16Attribute_5=Module["_emscripten_bind_MeshBuilder_AddUInt16Attribute_5"]=asm["_emscripten_bind_MeshBuilder_AddUInt16Attribute_5"];var _emscripten_bind_MeshBuilder_AddUInt32Attribute_5=Module["_emscripten_bind_MeshBuilder_AddUInt32Attribute_5"]=asm["_emscripten_bind_MeshBuilder_AddUInt32Attribute_5"];var _emscripten_bind_MeshBuilder_AddUInt8Attribute_5=Module["_emscripten_bind_MeshBuilder_AddUInt8Attribute_5"]=asm["_emscripten_bind_MeshBuilder_AddUInt8Attribute_5"];var _emscripten_bind_MeshBuilder_MeshBuilder_0=Module["_emscripten_bind_MeshBuilder_MeshBuilder_0"]=asm["_emscripten_bind_MeshBuilder_MeshBuilder_0"];var _emscripten_bind_MeshBuilder_SetMetadataForAttribute_3=Module["_emscripten_bind_MeshBuilder_SetMetadataForAttribute_3"]=asm["_emscripten_bind_MeshBuilder_SetMetadataForAttribute_3"];var _emscripten_bind_MeshBuilder___destroy___0=Module["_emscripten_bind_MeshBuilder___destroy___0"]=asm["_emscripten_bind_MeshBuilder___destroy___0"];var _emscripten_bind_Mesh_Mesh_0=Module["_emscripten_bind_Mesh_Mesh_0"]=asm["_emscripten_bind_Mesh_Mesh_0"];var _emscripten_bind_Mesh___destroy___0=Module["_emscripten_bind_Mesh___destroy___0"]=asm["_emscripten_bind_Mesh___destroy___0"];var _emscripten_bind_Mesh_num_attributes_0=Module["_emscripten_bind_Mesh_num_attributes_0"]=asm["_emscripten_bind_Mesh_num_attributes_0"];var _emscripten_bind_Mesh_num_faces_0=Module["_emscripten_bind_Mesh_num_faces_0"]=asm["_emscripten_bind_Mesh_num_faces_0"];var _emscripten_bind_Mesh_num_points_0=Module["_emscripten_bind_Mesh_num_points_0"]=asm["_emscripten_bind_Mesh_num_points_0"];var _emscripten_bind_Mesh_set_num_points_1=Module["_emscripten_bind_Mesh_set_num_points_1"]=asm["_emscripten_bind_Mesh_set_num_points_1"];var _emscripten_bind_MetadataBuilder_AddDoubleEntry_3=Module["_emscripten_bind_MetadataBuilder_AddDoubleEntry_3"]=asm["_emscripten_bind_MetadataBuilder_AddDoubleEntry_3"];var _emscripten_bind_MetadataBuilder_AddIntEntry_3=Module["_emscripten_bind_MetadataBuilder_AddIntEntry_3"]=asm["_emscripten_bind_MetadataBuilder_AddIntEntry_3"];var _emscripten_bind_MetadataBuilder_AddStringEntry_3=Module["_emscripten_bind_MetadataBuilder_AddStringEntry_3"]=asm["_emscripten_bind_MetadataBuilder_AddStringEntry_3"];var _emscripten_bind_MetadataBuilder_MetadataBuilder_0=Module["_emscripten_bind_MetadataBuilder_MetadataBuilder_0"]=asm["_emscripten_bind_MetadataBuilder_MetadataBuilder_0"];var _emscripten_bind_MetadataBuilder___destroy___0=Module["_emscripten_bind_MetadataBuilder___destroy___0"]=asm["_emscripten_bind_MetadataBuilder___destroy___0"];var _emscripten_bind_Metadata_Metadata_0=Module["_emscripten_bind_Metadata_Metadata_0"]=asm["_emscripten_bind_Metadata_Metadata_0"];var _emscripten_bind_Metadata___destroy___0=Module["_emscripten_bind_Metadata___destroy___0"]=asm["_emscripten_bind_Metadata___destroy___0"];var _emscripten_bind_PointAttribute_PointAttribute_0=Module["_emscripten_bind_PointAttribute_PointAttribute_0"]=asm["_emscripten_bind_PointAttribute_PointAttribute_0"];var _emscripten_bind_PointAttribute___destroy___0=Module["_emscripten_bind_PointAttribute___destroy___0"]=asm["_emscripten_bind_PointAttribute___destroy___0"];var _emscripten_bind_PointAttribute_attribute_type_0=Module["_emscripten_bind_PointAttribute_attribute_type_0"]=asm["_emscripten_bind_PointAttribute_attribute_type_0"];var _emscripten_bind_PointAttribute_byte_offset_0=Module["_emscripten_bind_PointAttribute_byte_offset_0"]=asm["_emscripten_bind_PointAttribute_byte_offset_0"];var _emscripten_bind_PointAttribute_byte_stride_0=Module["_emscripten_bind_PointAttribute_byte_stride_0"]=asm["_emscripten_bind_PointAttribute_byte_stride_0"];var _emscripten_bind_PointAttribute_data_type_0=Module["_emscripten_bind_PointAttribute_data_type_0"]=asm["_emscripten_bind_PointAttribute_data_type_0"];var _emscripten_bind_PointAttribute_normalized_0=Module["_emscripten_bind_PointAttribute_normalized_0"]=asm["_emscripten_bind_PointAttribute_normalized_0"];var _emscripten_bind_PointAttribute_num_components_0=Module["_emscripten_bind_PointAttribute_num_components_0"]=asm["_emscripten_bind_PointAttribute_num_components_0"];var _emscripten_bind_PointAttribute_size_0=Module["_emscripten_bind_PointAttribute_size_0"]=asm["_emscripten_bind_PointAttribute_size_0"];var _emscripten_bind_PointAttribute_unique_id_0=Module["_emscripten_bind_PointAttribute_unique_id_0"]=asm["_emscripten_bind_PointAttribute_unique_id_0"];var _emscripten_bind_PointCloudBuilder_AddFloatAttribute_5=Module["_emscripten_bind_PointCloudBuilder_AddFloatAttribute_5"]=asm["_emscripten_bind_PointCloudBuilder_AddFloatAttribute_5"];var _emscripten_bind_PointCloudBuilder_AddInt16Attribute_5=Module["_emscripten_bind_PointCloudBuilder_AddInt16Attribute_5"]=asm["_emscripten_bind_PointCloudBuilder_AddInt16Attribute_5"];var _emscripten_bind_PointCloudBuilder_AddInt32Attribute_5=Module["_emscripten_bind_PointCloudBuilder_AddInt32Attribute_5"]=asm["_emscripten_bind_PointCloudBuilder_AddInt32Attribute_5"];var _emscripten_bind_PointCloudBuilder_AddInt8Attribute_5=Module["_emscripten_bind_PointCloudBuilder_AddInt8Attribute_5"]=asm["_emscripten_bind_PointCloudBuilder_AddInt8Attribute_5"];var _emscripten_bind_PointCloudBuilder_AddMetadata_2=Module["_emscripten_bind_PointCloudBuilder_AddMetadata_2"]=asm["_emscripten_bind_PointCloudBuilder_AddMetadata_2"];var _emscripten_bind_PointCloudBuilder_AddUInt16Attribute_5=Module["_emscripten_bind_PointCloudBuilder_AddUInt16Attribute_5"]=asm["_emscripten_bind_PointCloudBuilder_AddUInt16Attribute_5"];var _emscripten_bind_PointCloudBuilder_AddUInt32Attribute_5=Module["_emscripten_bind_PointCloudBuilder_AddUInt32Attribute_5"]=asm["_emscripten_bind_PointCloudBuilder_AddUInt32Attribute_5"];var _emscripten_bind_PointCloudBuilder_AddUInt8Attribute_5=Module["_emscripten_bind_PointCloudBuilder_AddUInt8Attribute_5"]=asm["_emscripten_bind_PointCloudBuilder_AddUInt8Attribute_5"];var _emscripten_bind_PointCloudBuilder_PointCloudBuilder_0=Module["_emscripten_bind_PointCloudBuilder_PointCloudBuilder_0"]=asm["_emscripten_bind_PointCloudBuilder_PointCloudBuilder_0"];var _emscripten_bind_PointCloudBuilder_SetMetadataForAttribute_3=Module["_emscripten_bind_PointCloudBuilder_SetMetadataForAttribute_3"]=asm["_emscripten_bind_PointCloudBuilder_SetMetadataForAttribute_3"];var _emscripten_bind_PointCloudBuilder___destroy___0=Module["_emscripten_bind_PointCloudBuilder___destroy___0"]=asm["_emscripten_bind_PointCloudBuilder___destroy___0"];var _emscripten_bind_PointCloud_PointCloud_0=Module["_emscripten_bind_PointCloud_PointCloud_0"]=asm["_emscripten_bind_PointCloud_PointCloud_0"];var _emscripten_bind_PointCloud___destroy___0=Module["_emscripten_bind_PointCloud___destroy___0"]=asm["_emscripten_bind_PointCloud___destroy___0"];var _emscripten_bind_PointCloud_num_attributes_0=Module["_emscripten_bind_PointCloud_num_attributes_0"]=asm["_emscripten_bind_PointCloud_num_attributes_0"];var _emscripten_bind_PointCloud_num_points_0=Module["_emscripten_bind_PointCloud_num_points_0"]=asm["_emscripten_bind_PointCloud_num_points_0"];var _emscripten_bind_VoidPtr___destroy___0=Module["_emscripten_bind_VoidPtr___destroy___0"]=asm["_emscripten_bind_VoidPtr___destroy___0"];var _emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE=Module["_emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE"]=asm["_emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE"];var _emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD=Module["_emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD"]=asm["_emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD"];var _emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH=Module["_emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH"]=asm["_emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH"];var _emscripten_enum_draco_GeometryAttribute_Type_COLOR=Module["_emscripten_enum_draco_GeometryAttribute_Type_COLOR"]=asm["_emscripten_enum_draco_GeometryAttribute_Type_COLOR"];var _emscripten_enum_draco_GeometryAttribute_Type_GENERIC=Module["_emscripten_enum_draco_GeometryAttribute_Type_GENERIC"]=asm["_emscripten_enum_draco_GeometryAttribute_Type_GENERIC"];var _emscripten_enum_draco_GeometryAttribute_Type_INVALID=Module["_emscripten_enum_draco_GeometryAttribute_Type_INVALID"]=asm["_emscripten_enum_draco_GeometryAttribute_Type_INVALID"];var _emscripten_enum_draco_GeometryAttribute_Type_NORMAL=Module["_emscripten_enum_draco_GeometryAttribute_Type_NORMAL"]=asm["_emscripten_enum_draco_GeometryAttribute_Type_NORMAL"];var _emscripten_enum_draco_GeometryAttribute_Type_POSITION=Module["_emscripten_enum_draco_GeometryAttribute_Type_POSITION"]=asm["_emscripten_enum_draco_GeometryAttribute_Type_POSITION"];var _emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD=Module["_emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD"]=asm["_emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD"];var _emscripten_enum_draco_MeshEncoderMethod_MESH_EDGEBREAKER_ENCODING=Module["_emscripten_enum_draco_MeshEncoderMethod_MESH_EDGEBREAKER_ENCODING"]=asm["_emscripten_enum_draco_MeshEncoderMethod_MESH_EDGEBREAKER_ENCODING"];var _emscripten_enum_draco_MeshEncoderMethod_MESH_SEQUENTIAL_ENCODING=Module["_emscripten_enum_draco_MeshEncoderMethod_MESH_SEQUENTIAL_ENCODING"]=asm["_emscripten_enum_draco_MeshEncoderMethod_MESH_SEQUENTIAL_ENCODING"];var _emscripten_replace_memory=Module["_emscripten_replace_memory"]=asm["_emscripten_replace_memory"];var _free=Module["_free"]=asm["_free"];var _i64Add=Module["_i64Add"]=asm["_i64Add"];var _i64Subtract=Module["_i64Subtract"]=asm["_i64Subtract"];var _llvm_bswap_i32=Module["_llvm_bswap_i32"]=asm["_llvm_bswap_i32"];var _malloc=Module["_malloc"]=asm["_malloc"];var _memcpy=Module["_memcpy"]=asm["_memcpy"];var _memmove=Module["_memmove"]=asm["_memmove"];var _memset=Module["_memset"]=asm["_memset"];var _sbrk=Module["_sbrk"]=asm["_sbrk"];var establishStackSpace=Module["establishStackSpace"]=asm["establishStackSpace"];var getTempRet0=Module["getTempRet0"]=asm["getTempRet0"];var runPostSets=Module["runPostSets"]=asm["runPostSets"];var setTempRet0=Module["setTempRet0"]=asm["setTempRet0"];var setThrew=Module["setThrew"]=asm["setThrew"];var stackAlloc=Module["stackAlloc"]=asm["stackAlloc"];var stackRestore=Module["stackRestore"]=asm["stackRestore"];var stackSave=Module["stackSave"]=asm["stackSave"];var dynCall_ii=Module["dynCall_ii"]=asm["dynCall_ii"];var dynCall_iii=Module["dynCall_iii"]=asm["dynCall_iii"];var dynCall_iiii=Module["dynCall_iiii"]=asm["dynCall_iiii"];var dynCall_iiiiiii=Module["dynCall_iiiiiii"]=asm["dynCall_iiiiiii"];var dynCall_v=Module["dynCall_v"]=asm["dynCall_v"];var dynCall_vi=Module["dynCall_vi"]=asm["dynCall_vi"];var dynCall_vii=Module["dynCall_vii"]=asm["dynCall_vii"];var dynCall_viii=Module["dynCall_viii"]=asm["dynCall_viii"];var dynCall_viiii=Module["dynCall_viiii"]=asm["dynCall_viiii"];var dynCall_viiiii=Module["dynCall_viiiii"]=asm["dynCall_viiiii"];var dynCall_viiiiii=Module["dynCall_viiiiii"]=asm["dynCall_viiiiii"];Module["asm"]=asm;if(memoryInitializer){if(!isDataURI(memoryInitializer)){if(typeof Module["locateFile"]==="function"){memoryInitializer=Module["locateFile"](memoryInitializer)}else if(Module["memoryInitializerPrefixURL"]){memoryInitializer=Module["memoryInitializerPrefixURL"]+memoryInitializer}}if(ENVIRONMENT_IS_NODE||ENVIRONMENT_IS_SHELL){var data=Module["readBinary"](memoryInitializer);HEAPU8.set(data,GLOBAL_BASE)}else{addRunDependency("memory initializer");var applyMemoryInitializer=(function(data){if(data.byteLength)data=new Uint8Array(data);HEAPU8.set(data,GLOBAL_BASE);if(Module["memoryInitializerRequest"])delete Module["memoryInitializerRequest"].response;removeRunDependency("memory initializer")});function doBrowserLoad(){Module["readAsync"](memoryInitializer,applyMemoryInitializer,(function(){throw"could not load memory initializer "+memoryInitializer}))}var memoryInitializerBytes=tryParseAsDataURI(memoryInitializer);if(memoryInitializerBytes){applyMemoryInitializer(memoryInitializerBytes.buffer)}else if(Module["memoryInitializerRequest"]){function useRequest(){var request=Module["memoryInitializerRequest"];var response=request.response;if(request.status!==200&&request.status!==0){var data=tryParseAsDataURI(Module["memoryInitializerRequestURL"]);if(data){response=data.buffer}else{console.warn("a problem seems to have happened with Module.memoryInitializerRequest, status: "+request.status+", retrying "+memoryInitializer);doBrowserLoad();return}}applyMemoryInitializer(response)}if(Module["memoryInitializerRequest"].response){setTimeout(useRequest,0)}else{Module["memoryInitializerRequest"].addEventListener("load",useRequest)}}else{doBrowserLoad()}}}Module["then"]=(function(func){if(Module["calledRun"]){func(Module)}else{var old=Module["onRuntimeInitialized"];Module["onRuntimeInitialized"]=(function(){if(old)old();func(Module)})}return Module});function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}ExitStatus.prototype=new Error;ExitStatus.prototype.constructor=ExitStatus;var initialStackTop;dependenciesFulfilled=function runCaller(){if(!Module["calledRun"])run();if(!Module["calledRun"])dependenciesFulfilled=runCaller};function run(args){args=args||Module["arguments"];if(runDependencies>0){return}preRun();if(runDependencies>0)return;if(Module["calledRun"])return;function doRun(){if(Module["calledRun"])return;Module["calledRun"]=true;if(ABORT)return;ensureInitRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout((function(){setTimeout((function(){Module["setStatus"]("")}),1);doRun()}),1)}else{doRun()}}Module["run"]=run;function exit(status,implicit){if(implicit&&Module["noExitRuntime"]&&status===0){return}if(Module["noExitRuntime"]){}else{ABORT=true;EXITSTATUS=status;STACKTOP=initialStackTop;exitRuntime();if(Module["onExit"])Module["onExit"](status)}if(ENVIRONMENT_IS_NODE){process["exit"](status)}Module["quit"](status,new ExitStatus(status))}Module["exit"]=exit;function abort(what){if(Module["onAbort"]){Module["onAbort"](what)}if(what!==undefined){Module.print(what);Module.printErr(what);what=JSON.stringify(what)}else{what=""}ABORT=true;EXITSTATUS=1;throw"abort("+what+"). Build with -s ASSERTIONS=1 for more info."}Module["abort"]=abort;if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}Module["noExitRuntime"]=true;run();function WrapperObject(){}WrapperObject.prototype=Object.create(WrapperObject.prototype);WrapperObject.prototype.constructor=WrapperObject;WrapperObject.prototype.__class__=WrapperObject;WrapperObject.__cache__={};Module["WrapperObject"]=WrapperObject;function getCache(__class__){return(__class__||WrapperObject).__cache__}Module["getCache"]=getCache;function wrapPointer(ptr,__class__){var cache=getCache(__class__);var ret=cache[ptr];if(ret)return ret;ret=Object.create((__class__||WrapperObject).prototype);ret.ptr=ptr;return cache[ptr]=ret}Module["wrapPointer"]=wrapPointer;function castObject(obj,__class__){return wrapPointer(obj.ptr,__class__)}Module["castObject"]=castObject;Module["NULL"]=wrapPointer(0);function destroy(obj){if(!obj["__destroy__"])throw"Error: Cannot destroy object. (Did you create it yourself?)";obj["__destroy__"]();delete getCache(obj.__class__)[obj.ptr]}Module["destroy"]=destroy;function compare(obj1,obj2){return obj1.ptr===obj2.ptr}Module["compare"]=compare;function getPointer(obj){return obj.ptr}Module["getPointer"]=getPointer;function getClass(obj){return obj.__class__}Module["getClass"]=getClass;var ensureCache={buffer:0,size:0,pos:0,temps:[],needed:0,prepare:(function(){if(ensureCache.needed){for(var i=0;i=ensureCache.size){assert(len>0);ensureCache.needed+=len;ret=Module["_malloc"](len);ensureCache.temps.push(ret)}else{ret=ensureCache.buffer+ensureCache.pos;ensureCache.pos+=len}return ret}),copy:(function(array,view,offset){var offsetShifted=offset;var bytes=view.BYTES_PER_ELEMENT;switch(bytes){case 2:offsetShifted>>=1;break;case 4:offsetShifted>>=2;break;case 8:offsetShifted>>=3;break}for(var i=0;i>>0,$jscomp.propertyToPolyfillSymbol[l]=$jscomp.IS_SYMBOL_NATIVE? $jscomp.global.Symbol(l):$jscomp.POLYFILL_PREFIX+k+"$"+l),$jscomp.defineProperty(p,$jscomp.propertyToPolyfillSymbol[l],{configurable:!0,writable:!0,value:n})))}; $jscomp.polyfill("Promise",function(h){function n(){this.batch_=null}function k(f){return f instanceof l?f:new l(function(q,u){q(f)})}if(h&&(!($jscomp.FORCE_POLYFILL_PROMISE||$jscomp.FORCE_POLYFILL_PROMISE_WHEN_NO_UNHANDLED_REJECTION&&"undefined"===typeof $jscomp.global.PromiseRejectionEvent)||!$jscomp.global.Promise||-1===$jscomp.global.Promise.toString().indexOf("[native code]")))return h;n.prototype.asyncExecute=function(f){if(null==this.batch_){this.batch_=[];var q=this;this.asyncExecuteFunction(function(){q.executeBatch_()})}this.batch_.push(f)}; var p=$jscomp.global.setTimeout;n.prototype.asyncExecuteFunction=function(f){p(f,0)};n.prototype.executeBatch_=function(){for(;this.batch_&&this.batch_.length;){var f=this.batch_;this.batch_=[];for(var q=0;q=y}},"es6","es3"); $jscomp.polyfill("Array.prototype.copyWithin",function(h){function n(k){k=Number(k);return Infinity===k||-Infinity===k?k:k|0}return h?h:function(k,p,l){var y=this.length;k=n(k);p=n(p);l=void 0===l?y:n(l);k=0>k?Math.max(y+k,0):Math.min(k,y);p=0>p?Math.max(y+p,0):Math.min(p,y);l=0>l?Math.max(y+l,0):Math.min(l,y);if(kp;)--l in this?this[--k]=this[l]:delete this[--k];return this}},"es6","es3"); $jscomp.typedArrayCopyWithin=function(h){return h?h:Array.prototype.copyWithin};$jscomp.polyfill("Int8Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Uint8Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Uint8ClampedArray.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Int16Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5"); $jscomp.polyfill("Uint16Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Int32Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Uint32Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Float32Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Float64Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5"); var DracoDecoderModule=function(){var h="undefined"!==typeof document&&document.currentScript?document.currentScript.src:void 0;"undefined"!==typeof __filename&&(h=h||__filename);return function(n){function k(e){return a.locateFile?a.locateFile(e,U):U+e}function p(e,b){if(e){var c=ia;var d=e+b;for(b=e;c[b]&&!(b>=d);)++b;if(16g?d+=String.fromCharCode(g):(g-=65536,d+=String.fromCharCode(55296|g>>10,56320|g&1023))}}else d+=String.fromCharCode(g)}c=d}}else c="";return c}function l(){var e=ja.buffer;a.HEAP8=W=new Int8Array(e);a.HEAP16=new Int16Array(e);a.HEAP32=ca=new Int32Array(e);a.HEAPU8=ia=new Uint8Array(e);a.HEAPU16=new Uint16Array(e);a.HEAPU32=Y=new Uint32Array(e);a.HEAPF32=new Float32Array(e);a.HEAPF64=new Float64Array(e)}function y(e){if(a.onAbort)a.onAbort(e); e="Aborted("+e+")";da(e);sa=!0;e=new WebAssembly.RuntimeError(e+". Build with -sASSERTIONS for more info.");ka(e);throw e;}function f(e){try{if(e==P&&ea)return new Uint8Array(ea);if(ma)return ma(e);throw"both async and sync fetching of the wasm failed";}catch(b){y(b)}}function q(){if(!ea&&(ta||fa)){if("function"==typeof fetch&&!P.startsWith("file://"))return fetch(P,{credentials:"same-origin"}).then(function(e){if(!e.ok)throw"failed to load wasm binary file at '"+P+"'";return e.arrayBuffer()}).catch(function(){return f(P)}); if(na)return new Promise(function(e,b){na(P,function(c){e(new Uint8Array(c))},b)})}return Promise.resolve().then(function(){return f(P)})}function u(e){for(;0>2]=b};this.get_type=function(){return Y[this.ptr+4>>2]};this.set_destructor=function(b){Y[this.ptr+8>>2]=b};this.get_destructor=function(){return Y[this.ptr+8>>2]};this.set_refcount=function(b){ca[this.ptr>>2]=b};this.set_caught=function(b){W[this.ptr+ 12>>0]=b?1:0};this.get_caught=function(){return 0!=W[this.ptr+12>>0]};this.set_rethrown=function(b){W[this.ptr+13>>0]=b?1:0};this.get_rethrown=function(){return 0!=W[this.ptr+13>>0]};this.init=function(b,c){this.set_adjusted_ptr(0);this.set_type(b);this.set_destructor(c);this.set_refcount(0);this.set_caught(!1);this.set_rethrown(!1)};this.add_ref=function(){ca[this.ptr>>2]+=1};this.release_ref=function(){var b=ca[this.ptr>>2];ca[this.ptr>>2]=b-1;return 1===b};this.set_adjusted_ptr=function(b){Y[this.ptr+ 16>>2]=b};this.get_adjusted_ptr=function(){return Y[this.ptr+16>>2]};this.get_exception_ptr=function(){if(ua(this.get_type()))return Y[this.excPtr>>2];var b=this.get_adjusted_ptr();return 0!==b?b:this.excPtr}}function F(){function e(){if(!la&&(la=!0,a.calledRun=!0,!sa)){va=!0;u(oa);wa(a);if(a.onRuntimeInitialized)a.onRuntimeInitialized();if(a.postRun)for("function"==typeof a.postRun&&(a.postRun=[a.postRun]);a.postRun.length;)xa.unshift(a.postRun.shift());u(xa)}}if(!(0=d?b++:2047>=d?b+=2:55296<=d&&57343>= d?(b+=4,++c):b+=3}b=Array(b+1);c=0;d=b.length;if(0=t){var aa=e.charCodeAt(++g);t=65536+((t&1023)<<10)|aa&1023}if(127>=t){if(c>=d)break;b[c++]=t}else{if(2047>=t){if(c+1>=d)break;b[c++]=192|t>>6}else{if(65535>=t){if(c+2>=d)break;b[c++]=224|t>>12}else{if(c+3>=d)break;b[c++]=240|t>>18;b[c++]=128|t>>12&63}b[c++]=128|t>>6&63}b[c++]=128|t&63}}b[c]=0}e=r.alloc(b,W);r.copy(b,W,e);return e}return e}function Z(e){if("object"=== typeof e){var b=r.alloc(e,W);r.copy(e,W,b);return b}return e}function X(){throw"cannot construct a VoidPtr, no constructor in IDL";}function S(){this.ptr=za();w(S)[this.ptr]=this}function Q(){this.ptr=Aa();w(Q)[this.ptr]=this}function V(){this.ptr=Ba();w(V)[this.ptr]=this}function x(){this.ptr=Ca();w(x)[this.ptr]=this}function D(){this.ptr=Da();w(D)[this.ptr]=this}function G(){this.ptr=Ea();w(G)[this.ptr]=this}function H(){this.ptr=Fa();w(H)[this.ptr]=this}function E(){this.ptr=Ga();w(E)[this.ptr]= this}function T(){this.ptr=Ha();w(T)[this.ptr]=this}function C(){throw"cannot construct a Status, no constructor in IDL";}function I(){this.ptr=Ia();w(I)[this.ptr]=this}function J(){this.ptr=Ja();w(J)[this.ptr]=this}function K(){this.ptr=Ka();w(K)[this.ptr]=this}function L(){this.ptr=La();w(L)[this.ptr]=this}function M(){this.ptr=Ma();w(M)[this.ptr]=this}function N(){this.ptr=Na();w(N)[this.ptr]=this}function O(){this.ptr=Oa();w(O)[this.ptr]=this}function z(){this.ptr=Pa();w(z)[this.ptr]=this}function m(){this.ptr= Qa();w(m)[this.ptr]=this}n=void 0===n?{}:n;var a="undefined"!=typeof n?n:{},wa,ka;a.ready=new Promise(function(e,b){wa=e;ka=b});var Ra=!1,Sa=!1;a.onRuntimeInitialized=function(){Ra=!0;if(Sa&&"function"===typeof a.onModuleLoaded)a.onModuleLoaded(a)};a.onModuleParsed=function(){Sa=!0;if(Ra&&"function"===typeof a.onModuleLoaded)a.onModuleLoaded(a)};a.isVersionSupported=function(e){if("string"!==typeof e)return!1;e=e.split(".");return 2>e.length||3=e[1]?!0:0!=e[0]||10< e[1]?!1:!0};var Ta=Object.assign({},a),ta="object"==typeof window,fa="function"==typeof importScripts,Ua="object"==typeof process&&"object"==typeof process.versions&&"string"==typeof process.versions.node,U="";if(Ua){var Va=require("fs"),pa=require("path");U=fa?pa.dirname(U)+"/":__dirname+"/";var Wa=function(e,b){e=e.startsWith("file://")?new URL(e):pa.normalize(e);return Va.readFileSync(e,b?void 0:"utf8")};var ma=function(e){e=Wa(e,!0);e.buffer||(e=new Uint8Array(e));return e};var na=function(e, b,c){e=e.startsWith("file://")?new URL(e):pa.normalize(e);Va.readFile(e,function(d,g){d?c(d):b(g.buffer)})};1>>=0;if(2147483648=c;c*=2){var d=b*(1+.2/c);d=Math.min(d,e+100663296);var g=Math;d=Math.max(e,d);g=g.min.call(g,2147483648,d+(65536-d%65536)%65536);a:{d=ja.buffer;try{ja.grow(g-d.byteLength+65535>>>16);l();var t=1;break a}catch(aa){}t=void 0}if(t)return!0}return!1}};(function(){function e(g,t){a.asm=g.exports;ja=a.asm.e;l();oa.unshift(a.asm.f);ba--;a.monitorRunDependencies&&a.monitorRunDependencies(ba);0==ba&&(null!==qa&&(clearInterval(qa),qa=null),ha&&(g=ha,ha=null,g()))}function b(g){e(g.instance)} function c(g){return q().then(function(t){return WebAssembly.instantiate(t,d)}).then(function(t){return t}).then(g,function(t){da("failed to asynchronously prepare wasm: "+t);y(t)})}var d={a:qd};ba++;a.monitorRunDependencies&&a.monitorRunDependencies(ba);if(a.instantiateWasm)try{return a.instantiateWasm(d,e)}catch(g){da("Module.instantiateWasm callback failed with error: "+g),ka(g)}(function(){return ea||"function"!=typeof WebAssembly.instantiateStreaming||P.startsWith("data:application/octet-stream;base64,")|| P.startsWith("file://")||Ua||"function"!=typeof fetch?c(b):fetch(P,{credentials:"same-origin"}).then(function(g){return WebAssembly.instantiateStreaming(g,d).then(b,function(t){da("wasm streaming compile failed: "+t);da("falling back to ArrayBuffer instantiation");return c(b)})})})().catch(ka);return{}})();var Xa=a._emscripten_bind_VoidPtr___destroy___0=function(){return(Xa=a._emscripten_bind_VoidPtr___destroy___0=a.asm.h).apply(null,arguments)},za=a._emscripten_bind_DecoderBuffer_DecoderBuffer_0= function(){return(za=a._emscripten_bind_DecoderBuffer_DecoderBuffer_0=a.asm.i).apply(null,arguments)},Ya=a._emscripten_bind_DecoderBuffer_Init_2=function(){return(Ya=a._emscripten_bind_DecoderBuffer_Init_2=a.asm.j).apply(null,arguments)},Za=a._emscripten_bind_DecoderBuffer___destroy___0=function(){return(Za=a._emscripten_bind_DecoderBuffer___destroy___0=a.asm.k).apply(null,arguments)},Aa=a._emscripten_bind_AttributeTransformData_AttributeTransformData_0=function(){return(Aa=a._emscripten_bind_AttributeTransformData_AttributeTransformData_0= a.asm.l).apply(null,arguments)},$a=a._emscripten_bind_AttributeTransformData_transform_type_0=function(){return($a=a._emscripten_bind_AttributeTransformData_transform_type_0=a.asm.m).apply(null,arguments)},ab=a._emscripten_bind_AttributeTransformData___destroy___0=function(){return(ab=a._emscripten_bind_AttributeTransformData___destroy___0=a.asm.n).apply(null,arguments)},Ba=a._emscripten_bind_GeometryAttribute_GeometryAttribute_0=function(){return(Ba=a._emscripten_bind_GeometryAttribute_GeometryAttribute_0= a.asm.o).apply(null,arguments)},bb=a._emscripten_bind_GeometryAttribute___destroy___0=function(){return(bb=a._emscripten_bind_GeometryAttribute___destroy___0=a.asm.p).apply(null,arguments)},Ca=a._emscripten_bind_PointAttribute_PointAttribute_0=function(){return(Ca=a._emscripten_bind_PointAttribute_PointAttribute_0=a.asm.q).apply(null,arguments)},cb=a._emscripten_bind_PointAttribute_size_0=function(){return(cb=a._emscripten_bind_PointAttribute_size_0=a.asm.r).apply(null,arguments)},db=a._emscripten_bind_PointAttribute_GetAttributeTransformData_0= function(){return(db=a._emscripten_bind_PointAttribute_GetAttributeTransformData_0=a.asm.s).apply(null,arguments)},eb=a._emscripten_bind_PointAttribute_attribute_type_0=function(){return(eb=a._emscripten_bind_PointAttribute_attribute_type_0=a.asm.t).apply(null,arguments)},fb=a._emscripten_bind_PointAttribute_data_type_0=function(){return(fb=a._emscripten_bind_PointAttribute_data_type_0=a.asm.u).apply(null,arguments)},gb=a._emscripten_bind_PointAttribute_num_components_0=function(){return(gb=a._emscripten_bind_PointAttribute_num_components_0= a.asm.v).apply(null,arguments)},hb=a._emscripten_bind_PointAttribute_normalized_0=function(){return(hb=a._emscripten_bind_PointAttribute_normalized_0=a.asm.w).apply(null,arguments)},ib=a._emscripten_bind_PointAttribute_byte_stride_0=function(){return(ib=a._emscripten_bind_PointAttribute_byte_stride_0=a.asm.x).apply(null,arguments)},jb=a._emscripten_bind_PointAttribute_byte_offset_0=function(){return(jb=a._emscripten_bind_PointAttribute_byte_offset_0=a.asm.y).apply(null,arguments)},kb=a._emscripten_bind_PointAttribute_unique_id_0= function(){return(kb=a._emscripten_bind_PointAttribute_unique_id_0=a.asm.z).apply(null,arguments)},lb=a._emscripten_bind_PointAttribute___destroy___0=function(){return(lb=a._emscripten_bind_PointAttribute___destroy___0=a.asm.A).apply(null,arguments)},Da=a._emscripten_bind_AttributeQuantizationTransform_AttributeQuantizationTransform_0=function(){return(Da=a._emscripten_bind_AttributeQuantizationTransform_AttributeQuantizationTransform_0=a.asm.B).apply(null,arguments)},mb=a._emscripten_bind_AttributeQuantizationTransform_InitFromAttribute_1= function(){return(mb=a._emscripten_bind_AttributeQuantizationTransform_InitFromAttribute_1=a.asm.C).apply(null,arguments)},nb=a._emscripten_bind_AttributeQuantizationTransform_quantization_bits_0=function(){return(nb=a._emscripten_bind_AttributeQuantizationTransform_quantization_bits_0=a.asm.D).apply(null,arguments)},ob=a._emscripten_bind_AttributeQuantizationTransform_min_value_1=function(){return(ob=a._emscripten_bind_AttributeQuantizationTransform_min_value_1=a.asm.E).apply(null,arguments)},pb= a._emscripten_bind_AttributeQuantizationTransform_range_0=function(){return(pb=a._emscripten_bind_AttributeQuantizationTransform_range_0=a.asm.F).apply(null,arguments)},qb=a._emscripten_bind_AttributeQuantizationTransform___destroy___0=function(){return(qb=a._emscripten_bind_AttributeQuantizationTransform___destroy___0=a.asm.G).apply(null,arguments)},Ea=a._emscripten_bind_AttributeOctahedronTransform_AttributeOctahedronTransform_0=function(){return(Ea=a._emscripten_bind_AttributeOctahedronTransform_AttributeOctahedronTransform_0= a.asm.H).apply(null,arguments)},rb=a._emscripten_bind_AttributeOctahedronTransform_InitFromAttribute_1=function(){return(rb=a._emscripten_bind_AttributeOctahedronTransform_InitFromAttribute_1=a.asm.I).apply(null,arguments)},sb=a._emscripten_bind_AttributeOctahedronTransform_quantization_bits_0=function(){return(sb=a._emscripten_bind_AttributeOctahedronTransform_quantization_bits_0=a.asm.J).apply(null,arguments)},tb=a._emscripten_bind_AttributeOctahedronTransform___destroy___0=function(){return(tb= a._emscripten_bind_AttributeOctahedronTransform___destroy___0=a.asm.K).apply(null,arguments)},Fa=a._emscripten_bind_PointCloud_PointCloud_0=function(){return(Fa=a._emscripten_bind_PointCloud_PointCloud_0=a.asm.L).apply(null,arguments)},ub=a._emscripten_bind_PointCloud_num_attributes_0=function(){return(ub=a._emscripten_bind_PointCloud_num_attributes_0=a.asm.M).apply(null,arguments)},vb=a._emscripten_bind_PointCloud_num_points_0=function(){return(vb=a._emscripten_bind_PointCloud_num_points_0=a.asm.N).apply(null, arguments)},wb=a._emscripten_bind_PointCloud___destroy___0=function(){return(wb=a._emscripten_bind_PointCloud___destroy___0=a.asm.O).apply(null,arguments)},Ga=a._emscripten_bind_Mesh_Mesh_0=function(){return(Ga=a._emscripten_bind_Mesh_Mesh_0=a.asm.P).apply(null,arguments)},xb=a._emscripten_bind_Mesh_num_faces_0=function(){return(xb=a._emscripten_bind_Mesh_num_faces_0=a.asm.Q).apply(null,arguments)},yb=a._emscripten_bind_Mesh_num_attributes_0=function(){return(yb=a._emscripten_bind_Mesh_num_attributes_0= a.asm.R).apply(null,arguments)},zb=a._emscripten_bind_Mesh_num_points_0=function(){return(zb=a._emscripten_bind_Mesh_num_points_0=a.asm.S).apply(null,arguments)},Ab=a._emscripten_bind_Mesh___destroy___0=function(){return(Ab=a._emscripten_bind_Mesh___destroy___0=a.asm.T).apply(null,arguments)},Ha=a._emscripten_bind_Metadata_Metadata_0=function(){return(Ha=a._emscripten_bind_Metadata_Metadata_0=a.asm.U).apply(null,arguments)},Bb=a._emscripten_bind_Metadata___destroy___0=function(){return(Bb=a._emscripten_bind_Metadata___destroy___0= a.asm.V).apply(null,arguments)},Cb=a._emscripten_bind_Status_code_0=function(){return(Cb=a._emscripten_bind_Status_code_0=a.asm.W).apply(null,arguments)},Db=a._emscripten_bind_Status_ok_0=function(){return(Db=a._emscripten_bind_Status_ok_0=a.asm.X).apply(null,arguments)},Eb=a._emscripten_bind_Status_error_msg_0=function(){return(Eb=a._emscripten_bind_Status_error_msg_0=a.asm.Y).apply(null,arguments)},Fb=a._emscripten_bind_Status___destroy___0=function(){return(Fb=a._emscripten_bind_Status___destroy___0= a.asm.Z).apply(null,arguments)},Ia=a._emscripten_bind_DracoFloat32Array_DracoFloat32Array_0=function(){return(Ia=a._emscripten_bind_DracoFloat32Array_DracoFloat32Array_0=a.asm._).apply(null,arguments)},Gb=a._emscripten_bind_DracoFloat32Array_GetValue_1=function(){return(Gb=a._emscripten_bind_DracoFloat32Array_GetValue_1=a.asm.$).apply(null,arguments)},Hb=a._emscripten_bind_DracoFloat32Array_size_0=function(){return(Hb=a._emscripten_bind_DracoFloat32Array_size_0=a.asm.aa).apply(null,arguments)},Ib= a._emscripten_bind_DracoFloat32Array___destroy___0=function(){return(Ib=a._emscripten_bind_DracoFloat32Array___destroy___0=a.asm.ba).apply(null,arguments)},Ja=a._emscripten_bind_DracoInt8Array_DracoInt8Array_0=function(){return(Ja=a._emscripten_bind_DracoInt8Array_DracoInt8Array_0=a.asm.ca).apply(null,arguments)},Jb=a._emscripten_bind_DracoInt8Array_GetValue_1=function(){return(Jb=a._emscripten_bind_DracoInt8Array_GetValue_1=a.asm.da).apply(null,arguments)},Kb=a._emscripten_bind_DracoInt8Array_size_0= function(){return(Kb=a._emscripten_bind_DracoInt8Array_size_0=a.asm.ea).apply(null,arguments)},Lb=a._emscripten_bind_DracoInt8Array___destroy___0=function(){return(Lb=a._emscripten_bind_DracoInt8Array___destroy___0=a.asm.fa).apply(null,arguments)},Ka=a._emscripten_bind_DracoUInt8Array_DracoUInt8Array_0=function(){return(Ka=a._emscripten_bind_DracoUInt8Array_DracoUInt8Array_0=a.asm.ga).apply(null,arguments)},Mb=a._emscripten_bind_DracoUInt8Array_GetValue_1=function(){return(Mb=a._emscripten_bind_DracoUInt8Array_GetValue_1= a.asm.ha).apply(null,arguments)},Nb=a._emscripten_bind_DracoUInt8Array_size_0=function(){return(Nb=a._emscripten_bind_DracoUInt8Array_size_0=a.asm.ia).apply(null,arguments)},Ob=a._emscripten_bind_DracoUInt8Array___destroy___0=function(){return(Ob=a._emscripten_bind_DracoUInt8Array___destroy___0=a.asm.ja).apply(null,arguments)},La=a._emscripten_bind_DracoInt16Array_DracoInt16Array_0=function(){return(La=a._emscripten_bind_DracoInt16Array_DracoInt16Array_0=a.asm.ka).apply(null,arguments)},Pb=a._emscripten_bind_DracoInt16Array_GetValue_1= function(){return(Pb=a._emscripten_bind_DracoInt16Array_GetValue_1=a.asm.la).apply(null,arguments)},Qb=a._emscripten_bind_DracoInt16Array_size_0=function(){return(Qb=a._emscripten_bind_DracoInt16Array_size_0=a.asm.ma).apply(null,arguments)},Rb=a._emscripten_bind_DracoInt16Array___destroy___0=function(){return(Rb=a._emscripten_bind_DracoInt16Array___destroy___0=a.asm.na).apply(null,arguments)},Ma=a._emscripten_bind_DracoUInt16Array_DracoUInt16Array_0=function(){return(Ma=a._emscripten_bind_DracoUInt16Array_DracoUInt16Array_0= a.asm.oa).apply(null,arguments)},Sb=a._emscripten_bind_DracoUInt16Array_GetValue_1=function(){return(Sb=a._emscripten_bind_DracoUInt16Array_GetValue_1=a.asm.pa).apply(null,arguments)},Tb=a._emscripten_bind_DracoUInt16Array_size_0=function(){return(Tb=a._emscripten_bind_DracoUInt16Array_size_0=a.asm.qa).apply(null,arguments)},Ub=a._emscripten_bind_DracoUInt16Array___destroy___0=function(){return(Ub=a._emscripten_bind_DracoUInt16Array___destroy___0=a.asm.ra).apply(null,arguments)},Na=a._emscripten_bind_DracoInt32Array_DracoInt32Array_0= function(){return(Na=a._emscripten_bind_DracoInt32Array_DracoInt32Array_0=a.asm.sa).apply(null,arguments)},Vb=a._emscripten_bind_DracoInt32Array_GetValue_1=function(){return(Vb=a._emscripten_bind_DracoInt32Array_GetValue_1=a.asm.ta).apply(null,arguments)},Wb=a._emscripten_bind_DracoInt32Array_size_0=function(){return(Wb=a._emscripten_bind_DracoInt32Array_size_0=a.asm.ua).apply(null,arguments)},Xb=a._emscripten_bind_DracoInt32Array___destroy___0=function(){return(Xb=a._emscripten_bind_DracoInt32Array___destroy___0= a.asm.va).apply(null,arguments)},Oa=a._emscripten_bind_DracoUInt32Array_DracoUInt32Array_0=function(){return(Oa=a._emscripten_bind_DracoUInt32Array_DracoUInt32Array_0=a.asm.wa).apply(null,arguments)},Yb=a._emscripten_bind_DracoUInt32Array_GetValue_1=function(){return(Yb=a._emscripten_bind_DracoUInt32Array_GetValue_1=a.asm.xa).apply(null,arguments)},Zb=a._emscripten_bind_DracoUInt32Array_size_0=function(){return(Zb=a._emscripten_bind_DracoUInt32Array_size_0=a.asm.ya).apply(null,arguments)},$b=a._emscripten_bind_DracoUInt32Array___destroy___0= function(){return($b=a._emscripten_bind_DracoUInt32Array___destroy___0=a.asm.za).apply(null,arguments)},Pa=a._emscripten_bind_MetadataQuerier_MetadataQuerier_0=function(){return(Pa=a._emscripten_bind_MetadataQuerier_MetadataQuerier_0=a.asm.Aa).apply(null,arguments)},ac=a._emscripten_bind_MetadataQuerier_HasEntry_2=function(){return(ac=a._emscripten_bind_MetadataQuerier_HasEntry_2=a.asm.Ba).apply(null,arguments)},bc=a._emscripten_bind_MetadataQuerier_GetIntEntry_2=function(){return(bc=a._emscripten_bind_MetadataQuerier_GetIntEntry_2= a.asm.Ca).apply(null,arguments)},cc=a._emscripten_bind_MetadataQuerier_GetIntEntryArray_3=function(){return(cc=a._emscripten_bind_MetadataQuerier_GetIntEntryArray_3=a.asm.Da).apply(null,arguments)},dc=a._emscripten_bind_MetadataQuerier_GetDoubleEntry_2=function(){return(dc=a._emscripten_bind_MetadataQuerier_GetDoubleEntry_2=a.asm.Ea).apply(null,arguments)},ec=a._emscripten_bind_MetadataQuerier_GetStringEntry_2=function(){return(ec=a._emscripten_bind_MetadataQuerier_GetStringEntry_2=a.asm.Fa).apply(null, arguments)},fc=a._emscripten_bind_MetadataQuerier_NumEntries_1=function(){return(fc=a._emscripten_bind_MetadataQuerier_NumEntries_1=a.asm.Ga).apply(null,arguments)},gc=a._emscripten_bind_MetadataQuerier_GetEntryName_2=function(){return(gc=a._emscripten_bind_MetadataQuerier_GetEntryName_2=a.asm.Ha).apply(null,arguments)},hc=a._emscripten_bind_MetadataQuerier___destroy___0=function(){return(hc=a._emscripten_bind_MetadataQuerier___destroy___0=a.asm.Ia).apply(null,arguments)},Qa=a._emscripten_bind_Decoder_Decoder_0= function(){return(Qa=a._emscripten_bind_Decoder_Decoder_0=a.asm.Ja).apply(null,arguments)},ic=a._emscripten_bind_Decoder_DecodeArrayToPointCloud_3=function(){return(ic=a._emscripten_bind_Decoder_DecodeArrayToPointCloud_3=a.asm.Ka).apply(null,arguments)},jc=a._emscripten_bind_Decoder_DecodeArrayToMesh_3=function(){return(jc=a._emscripten_bind_Decoder_DecodeArrayToMesh_3=a.asm.La).apply(null,arguments)},kc=a._emscripten_bind_Decoder_GetAttributeId_2=function(){return(kc=a._emscripten_bind_Decoder_GetAttributeId_2= a.asm.Ma).apply(null,arguments)},lc=a._emscripten_bind_Decoder_GetAttributeIdByName_2=function(){return(lc=a._emscripten_bind_Decoder_GetAttributeIdByName_2=a.asm.Na).apply(null,arguments)},mc=a._emscripten_bind_Decoder_GetAttributeIdByMetadataEntry_3=function(){return(mc=a._emscripten_bind_Decoder_GetAttributeIdByMetadataEntry_3=a.asm.Oa).apply(null,arguments)},nc=a._emscripten_bind_Decoder_GetAttribute_2=function(){return(nc=a._emscripten_bind_Decoder_GetAttribute_2=a.asm.Pa).apply(null,arguments)}, oc=a._emscripten_bind_Decoder_GetAttributeByUniqueId_2=function(){return(oc=a._emscripten_bind_Decoder_GetAttributeByUniqueId_2=a.asm.Qa).apply(null,arguments)},pc=a._emscripten_bind_Decoder_GetMetadata_1=function(){return(pc=a._emscripten_bind_Decoder_GetMetadata_1=a.asm.Ra).apply(null,arguments)},qc=a._emscripten_bind_Decoder_GetAttributeMetadata_2=function(){return(qc=a._emscripten_bind_Decoder_GetAttributeMetadata_2=a.asm.Sa).apply(null,arguments)},rc=a._emscripten_bind_Decoder_GetFaceFromMesh_3= function(){return(rc=a._emscripten_bind_Decoder_GetFaceFromMesh_3=a.asm.Ta).apply(null,arguments)},sc=a._emscripten_bind_Decoder_GetTriangleStripsFromMesh_2=function(){return(sc=a._emscripten_bind_Decoder_GetTriangleStripsFromMesh_2=a.asm.Ua).apply(null,arguments)},tc=a._emscripten_bind_Decoder_GetTrianglesUInt16Array_3=function(){return(tc=a._emscripten_bind_Decoder_GetTrianglesUInt16Array_3=a.asm.Va).apply(null,arguments)},uc=a._emscripten_bind_Decoder_GetTrianglesUInt32Array_3=function(){return(uc= a._emscripten_bind_Decoder_GetTrianglesUInt32Array_3=a.asm.Wa).apply(null,arguments)},vc=a._emscripten_bind_Decoder_GetAttributeFloat_3=function(){return(vc=a._emscripten_bind_Decoder_GetAttributeFloat_3=a.asm.Xa).apply(null,arguments)},wc=a._emscripten_bind_Decoder_GetAttributeFloatForAllPoints_3=function(){return(wc=a._emscripten_bind_Decoder_GetAttributeFloatForAllPoints_3=a.asm.Ya).apply(null,arguments)},xc=a._emscripten_bind_Decoder_GetAttributeIntForAllPoints_3=function(){return(xc=a._emscripten_bind_Decoder_GetAttributeIntForAllPoints_3= a.asm.Za).apply(null,arguments)},yc=a._emscripten_bind_Decoder_GetAttributeInt8ForAllPoints_3=function(){return(yc=a._emscripten_bind_Decoder_GetAttributeInt8ForAllPoints_3=a.asm._a).apply(null,arguments)},zc=a._emscripten_bind_Decoder_GetAttributeUInt8ForAllPoints_3=function(){return(zc=a._emscripten_bind_Decoder_GetAttributeUInt8ForAllPoints_3=a.asm.$a).apply(null,arguments)},Ac=a._emscripten_bind_Decoder_GetAttributeInt16ForAllPoints_3=function(){return(Ac=a._emscripten_bind_Decoder_GetAttributeInt16ForAllPoints_3= a.asm.ab).apply(null,arguments)},Bc=a._emscripten_bind_Decoder_GetAttributeUInt16ForAllPoints_3=function(){return(Bc=a._emscripten_bind_Decoder_GetAttributeUInt16ForAllPoints_3=a.asm.bb).apply(null,arguments)},Cc=a._emscripten_bind_Decoder_GetAttributeInt32ForAllPoints_3=function(){return(Cc=a._emscripten_bind_Decoder_GetAttributeInt32ForAllPoints_3=a.asm.cb).apply(null,arguments)},Dc=a._emscripten_bind_Decoder_GetAttributeUInt32ForAllPoints_3=function(){return(Dc=a._emscripten_bind_Decoder_GetAttributeUInt32ForAllPoints_3= a.asm.db).apply(null,arguments)},Ec=a._emscripten_bind_Decoder_GetAttributeDataArrayForAllPoints_5=function(){return(Ec=a._emscripten_bind_Decoder_GetAttributeDataArrayForAllPoints_5=a.asm.eb).apply(null,arguments)},Fc=a._emscripten_bind_Decoder_SkipAttributeTransform_1=function(){return(Fc=a._emscripten_bind_Decoder_SkipAttributeTransform_1=a.asm.fb).apply(null,arguments)},Gc=a._emscripten_bind_Decoder_GetEncodedGeometryType_Deprecated_1=function(){return(Gc=a._emscripten_bind_Decoder_GetEncodedGeometryType_Deprecated_1= a.asm.gb).apply(null,arguments)},Hc=a._emscripten_bind_Decoder_DecodeBufferToPointCloud_2=function(){return(Hc=a._emscripten_bind_Decoder_DecodeBufferToPointCloud_2=a.asm.hb).apply(null,arguments)},Ic=a._emscripten_bind_Decoder_DecodeBufferToMesh_2=function(){return(Ic=a._emscripten_bind_Decoder_DecodeBufferToMesh_2=a.asm.ib).apply(null,arguments)},Jc=a._emscripten_bind_Decoder___destroy___0=function(){return(Jc=a._emscripten_bind_Decoder___destroy___0=a.asm.jb).apply(null,arguments)},Kc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_INVALID_TRANSFORM= function(){return(Kc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_INVALID_TRANSFORM=a.asm.kb).apply(null,arguments)},Lc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_NO_TRANSFORM=function(){return(Lc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_NO_TRANSFORM=a.asm.lb).apply(null,arguments)},Mc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_QUANTIZATION_TRANSFORM=function(){return(Mc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_QUANTIZATION_TRANSFORM= a.asm.mb).apply(null,arguments)},Nc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_OCTAHEDRON_TRANSFORM=function(){return(Nc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_OCTAHEDRON_TRANSFORM=a.asm.nb).apply(null,arguments)},Oc=a._emscripten_enum_draco_GeometryAttribute_Type_INVALID=function(){return(Oc=a._emscripten_enum_draco_GeometryAttribute_Type_INVALID=a.asm.ob).apply(null,arguments)},Pc=a._emscripten_enum_draco_GeometryAttribute_Type_POSITION=function(){return(Pc=a._emscripten_enum_draco_GeometryAttribute_Type_POSITION= a.asm.pb).apply(null,arguments)},Qc=a._emscripten_enum_draco_GeometryAttribute_Type_NORMAL=function(){return(Qc=a._emscripten_enum_draco_GeometryAttribute_Type_NORMAL=a.asm.qb).apply(null,arguments)},Rc=a._emscripten_enum_draco_GeometryAttribute_Type_COLOR=function(){return(Rc=a._emscripten_enum_draco_GeometryAttribute_Type_COLOR=a.asm.rb).apply(null,arguments)},Sc=a._emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD=function(){return(Sc=a._emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD= a.asm.sb).apply(null,arguments)},Tc=a._emscripten_enum_draco_GeometryAttribute_Type_GENERIC=function(){return(Tc=a._emscripten_enum_draco_GeometryAttribute_Type_GENERIC=a.asm.tb).apply(null,arguments)},Uc=a._emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE=function(){return(Uc=a._emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE=a.asm.ub).apply(null,arguments)},Vc=a._emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD=function(){return(Vc=a._emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD= a.asm.vb).apply(null,arguments)},Wc=a._emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH=function(){return(Wc=a._emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH=a.asm.wb).apply(null,arguments)},Xc=a._emscripten_enum_draco_DataType_DT_INVALID=function(){return(Xc=a._emscripten_enum_draco_DataType_DT_INVALID=a.asm.xb).apply(null,arguments)},Yc=a._emscripten_enum_draco_DataType_DT_INT8=function(){return(Yc=a._emscripten_enum_draco_DataType_DT_INT8=a.asm.yb).apply(null,arguments)},Zc= a._emscripten_enum_draco_DataType_DT_UINT8=function(){return(Zc=a._emscripten_enum_draco_DataType_DT_UINT8=a.asm.zb).apply(null,arguments)},$c=a._emscripten_enum_draco_DataType_DT_INT16=function(){return($c=a._emscripten_enum_draco_DataType_DT_INT16=a.asm.Ab).apply(null,arguments)},ad=a._emscripten_enum_draco_DataType_DT_UINT16=function(){return(ad=a._emscripten_enum_draco_DataType_DT_UINT16=a.asm.Bb).apply(null,arguments)},bd=a._emscripten_enum_draco_DataType_DT_INT32=function(){return(bd=a._emscripten_enum_draco_DataType_DT_INT32= a.asm.Cb).apply(null,arguments)},cd=a._emscripten_enum_draco_DataType_DT_UINT32=function(){return(cd=a._emscripten_enum_draco_DataType_DT_UINT32=a.asm.Db).apply(null,arguments)},dd=a._emscripten_enum_draco_DataType_DT_INT64=function(){return(dd=a._emscripten_enum_draco_DataType_DT_INT64=a.asm.Eb).apply(null,arguments)},ed=a._emscripten_enum_draco_DataType_DT_UINT64=function(){return(ed=a._emscripten_enum_draco_DataType_DT_UINT64=a.asm.Fb).apply(null,arguments)},fd=a._emscripten_enum_draco_DataType_DT_FLOAT32= function(){return(fd=a._emscripten_enum_draco_DataType_DT_FLOAT32=a.asm.Gb).apply(null,arguments)},gd=a._emscripten_enum_draco_DataType_DT_FLOAT64=function(){return(gd=a._emscripten_enum_draco_DataType_DT_FLOAT64=a.asm.Hb).apply(null,arguments)},hd=a._emscripten_enum_draco_DataType_DT_BOOL=function(){return(hd=a._emscripten_enum_draco_DataType_DT_BOOL=a.asm.Ib).apply(null,arguments)},id=a._emscripten_enum_draco_DataType_DT_TYPES_COUNT=function(){return(id=a._emscripten_enum_draco_DataType_DT_TYPES_COUNT= a.asm.Jb).apply(null,arguments)},jd=a._emscripten_enum_draco_StatusCode_OK=function(){return(jd=a._emscripten_enum_draco_StatusCode_OK=a.asm.Kb).apply(null,arguments)},kd=a._emscripten_enum_draco_StatusCode_DRACO_ERROR=function(){return(kd=a._emscripten_enum_draco_StatusCode_DRACO_ERROR=a.asm.Lb).apply(null,arguments)},ld=a._emscripten_enum_draco_StatusCode_IO_ERROR=function(){return(ld=a._emscripten_enum_draco_StatusCode_IO_ERROR=a.asm.Mb).apply(null,arguments)},md=a._emscripten_enum_draco_StatusCode_INVALID_PARAMETER= function(){return(md=a._emscripten_enum_draco_StatusCode_INVALID_PARAMETER=a.asm.Nb).apply(null,arguments)},nd=a._emscripten_enum_draco_StatusCode_UNSUPPORTED_VERSION=function(){return(nd=a._emscripten_enum_draco_StatusCode_UNSUPPORTED_VERSION=a.asm.Ob).apply(null,arguments)},od=a._emscripten_enum_draco_StatusCode_UNKNOWN_VERSION=function(){return(od=a._emscripten_enum_draco_StatusCode_UNKNOWN_VERSION=a.asm.Pb).apply(null,arguments)};a._malloc=function(){return(a._malloc=a.asm.Qb).apply(null,arguments)}; a._free=function(){return(a._free=a.asm.Rb).apply(null,arguments)};var ua=function(){return(ua=a.asm.Sb).apply(null,arguments)};a.___start_em_js=11660;a.___stop_em_js=11758;var la;ha=function b(){la||F();la||(ha=b)};if(a.preInit)for("function"==typeof a.preInit&&(a.preInit=[a.preInit]);0=r.size?(0>>=0;switch(c.BYTES_PER_ELEMENT){case 2:d>>>=1;break;case 4:d>>>=2;break;case 8:d>>>=3}for(var g=0;gb.byteLength)return a.INVALID_GEOMETRY_TYPE;switch(b[7]){case 0:return a.POINT_CLOUD;case 1:return a.TRIANGULAR_MESH;default:return a.INVALID_GEOMETRY_TYPE}};return n.ready}}();"object"===typeof exports&&"object"===typeof module?module.exports=DracoDecoderModule:"function"===typeof define&&define.amd?define([],function(){return DracoDecoderModule}):"object"===typeof exports&&(exports.DracoDecoderModule=DracoDecoderModule); ================================================ FILE: packages/sdk/public/libs/web-ifc/IFCWorker.js ================================================ class Vector { constructor(vector) { this._data = {}; this._size = vector.size; const keys = Object.keys(vector).filter((key) => key.indexOf('size') === -1).map(key => parseInt(key)); keys.forEach((key) => this._data[key] = vector[key]); } size() { return this._size; } get(index) { return this._data[index]; } } class IfcGeometry { constructor(vector) { this._GetVertexData = vector.GetVertexData; this._GetVertexDataSize = vector.GetVertexDataSize; this._GetIndexData = vector.GetIndexData; this._GetIndexDataSize = vector.GetIndexDataSize; } GetVertexData() { return this._GetVertexData; } GetVertexDataSize() { return this._GetVertexDataSize; } GetIndexData() { return this._GetIndexData; } GetIndexDataSize() { return this._GetIndexDataSize; } } class FlatMesh { constructor(serializer, flatMesh) { this.expressID = flatMesh.expressID; this.geometries = serializer.reconstructVector(flatMesh.geometries); } } class FlatMeshVector { constructor(serializer, vector) { this._data = {}; this._size = vector.size; const keys = Object.keys(vector).filter((key) => key.indexOf('size') === -1).map(key => parseInt(key)); keys.forEach(key => this._data[key] = serializer.reconstructFlatMesh(vector[key])); } size() { return this._size; } get(index) { return this._data[index]; } } /** * @license * Copyright 2010-2023 Three.js Authors * SPDX-License-Identifier: MIT */ const REVISION = '149'; const FrontSide = 0; const BackSide = 1; const DoubleSide = 2; const NormalBlending = 1; const AddEquation = 100; const SrcAlphaFactor = 204; const OneMinusSrcAlphaFactor = 205; const LessEqualDepth = 3; const MultiplyOperation = 0; const UVMapping = 300; const RepeatWrapping = 1000; const ClampToEdgeWrapping = 1001; const MirroredRepeatWrapping = 1002; const LinearFilter = 1006; const LinearMipmapLinearFilter = 1008; const UnsignedByteType = 1009; const RGBAFormat = 1023; const LinearEncoding = 3000; const TangentSpaceNormalMap = 0; const SRGBColorSpace = 'srgb'; const LinearSRGBColorSpace = 'srgb-linear'; const KeepStencilOp = 7680; const AlwaysStencilFunc = 519; const StaticDrawUsage = 35044; /** * https://github.com/mrdoob/eventdispatcher.js/ */ class EventDispatcher { addEventListener( type, listener ) { if ( this._listeners === undefined ) this._listeners = {}; const listeners = this._listeners; if ( listeners[ type ] === undefined ) { listeners[ type ] = []; } if ( listeners[ type ].indexOf( listener ) === - 1 ) { listeners[ type ].push( listener ); } } hasEventListener( type, listener ) { if ( this._listeners === undefined ) return false; const listeners = this._listeners; return listeners[ type ] !== undefined && listeners[ type ].indexOf( listener ) !== - 1; } removeEventListener( type, listener ) { if ( this._listeners === undefined ) return; const listeners = this._listeners; const listenerArray = listeners[ type ]; if ( listenerArray !== undefined ) { const index = listenerArray.indexOf( listener ); if ( index !== - 1 ) { listenerArray.splice( index, 1 ); } } } dispatchEvent( event ) { if ( this._listeners === undefined ) return; const listeners = this._listeners; const listenerArray = listeners[ event.type ]; if ( listenerArray !== undefined ) { event.target = this; // Make a copy, in case listeners are removed while iterating. const array = listenerArray.slice( 0 ); for ( let i = 0, l = array.length; i < l; i ++ ) { array[ i ].call( this, event ); } event.target = null; } } } const _lut = [ '00', '01', '02', '03', '04', '05', '06', '07', '08', '09', '0a', '0b', '0c', '0d', '0e', '0f', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '1a', '1b', '1c', '1d', '1e', '1f', '20', '21', '22', '23', '24', '25', '26', '27', '28', '29', '2a', '2b', '2c', '2d', '2e', '2f', '30', '31', '32', '33', '34', '35', '36', '37', '38', '39', '3a', '3b', '3c', '3d', '3e', '3f', '40', '41', '42', '43', '44', '45', '46', '47', '48', '49', '4a', '4b', '4c', '4d', '4e', '4f', '50', '51', '52', '53', '54', '55', '56', '57', '58', '59', '5a', '5b', '5c', '5d', '5e', '5f', '60', '61', '62', '63', '64', '65', '66', '67', '68', '69', '6a', '6b', '6c', '6d', '6e', '6f', '70', '71', '72', '73', '74', '75', '76', '77', '78', '79', '7a', '7b', '7c', '7d', '7e', '7f', '80', '81', '82', '83', '84', '85', '86', '87', '88', '89', '8a', '8b', '8c', '8d', '8e', '8f', '90', '91', '92', '93', '94', '95', '96', '97', '98', '99', '9a', '9b', '9c', '9d', '9e', '9f', 'a0', 'a1', 'a2', 'a3', 'a4', 'a5', 'a6', 'a7', 'a8', 'a9', 'aa', 'ab', 'ac', 'ad', 'ae', 'af', 'b0', 'b1', 'b2', 'b3', 'b4', 'b5', 'b6', 'b7', 'b8', 'b9', 'ba', 'bb', 'bc', 'bd', 'be', 'bf', 'c0', 'c1', 'c2', 'c3', 'c4', 'c5', 'c6', 'c7', 'c8', 'c9', 'ca', 'cb', 'cc', 'cd', 'ce', 'cf', 'd0', 'd1', 'd2', 'd3', 'd4', 'd5', 'd6', 'd7', 'd8', 'd9', 'da', 'db', 'dc', 'dd', 'de', 'df', 'e0', 'e1', 'e2', 'e3', 'e4', 'e5', 'e6', 'e7', 'e8', 'e9', 'ea', 'eb', 'ec', 'ed', 'ee', 'ef', 'f0', 'f1', 'f2', 'f3', 'f4', 'f5', 'f6', 'f7', 'f8', 'f9', 'fa', 'fb', 'fc', 'fd', 'fe', 'ff' ]; // http://stackoverflow.com/questions/105034/how-to-create-a-guid-uuid-in-javascript/21963136#21963136 function generateUUID() { const d0 = Math.random() * 0xffffffff | 0; const d1 = Math.random() * 0xffffffff | 0; const d2 = Math.random() * 0xffffffff | 0; const d3 = Math.random() * 0xffffffff | 0; const uuid = _lut[ d0 & 0xff ] + _lut[ d0 >> 8 & 0xff ] + _lut[ d0 >> 16 & 0xff ] + _lut[ d0 >> 24 & 0xff ] + '-' + _lut[ d1 & 0xff ] + _lut[ d1 >> 8 & 0xff ] + '-' + _lut[ d1 >> 16 & 0x0f | 0x40 ] + _lut[ d1 >> 24 & 0xff ] + '-' + _lut[ d2 & 0x3f | 0x80 ] + _lut[ d2 >> 8 & 0xff ] + '-' + _lut[ d2 >> 16 & 0xff ] + _lut[ d2 >> 24 & 0xff ] + _lut[ d3 & 0xff ] + _lut[ d3 >> 8 & 0xff ] + _lut[ d3 >> 16 & 0xff ] + _lut[ d3 >> 24 & 0xff ]; // .toLowerCase() here flattens concatenated strings to save heap memory space. return uuid.toLowerCase(); } function clamp( value, min, max ) { return Math.max( min, Math.min( max, value ) ); } // compute euclidean modulo of m % n // https://en.wikipedia.org/wiki/Modulo_operation function euclideanModulo( n, m ) { return ( ( n % m ) + m ) % m; } // https://en.wikipedia.org/wiki/Linear_interpolation function lerp( x, y, t ) { return ( 1 - t ) * x + t * y; } function denormalize( value, array ) { switch ( array.constructor ) { case Float32Array: return value; case Uint16Array: return value / 65535.0; case Uint8Array: return value / 255.0; case Int16Array: return Math.max( value / 32767.0, - 1.0 ); case Int8Array: return Math.max( value / 127.0, - 1.0 ); default: throw new Error( 'Invalid component type.' ); } } function normalize( value, array ) { switch ( array.constructor ) { case Float32Array: return value; case Uint16Array: return Math.round( value * 65535.0 ); case Uint8Array: return Math.round( value * 255.0 ); case Int16Array: return Math.round( value * 32767.0 ); case Int8Array: return Math.round( value * 127.0 ); default: throw new Error( 'Invalid component type.' ); } } class Vector2 { constructor( x = 0, y = 0 ) { Vector2.prototype.isVector2 = true; this.x = x; this.y = y; } get width() { return this.x; } set width( value ) { this.x = value; } get height() { return this.y; } set height( value ) { this.y = value; } set( x, y ) { this.x = x; this.y = y; return this; } setScalar( scalar ) { this.x = scalar; this.y = scalar; return this; } setX( x ) { this.x = x; return this; } setY( y ) { this.y = y; return this; } setComponent( index, value ) { switch ( index ) { case 0: this.x = value; break; case 1: this.y = value; break; default: throw new Error( 'index is out of range: ' + index ); } return this; } getComponent( index ) { switch ( index ) { case 0: return this.x; case 1: return this.y; default: throw new Error( 'index is out of range: ' + index ); } } clone() { return new this.constructor( this.x, this.y ); } copy( v ) { this.x = v.x; this.y = v.y; return this; } add( v ) { this.x += v.x; this.y += v.y; return this; } addScalar( s ) { this.x += s; this.y += s; return this; } addVectors( a, b ) { this.x = a.x + b.x; this.y = a.y + b.y; return this; } addScaledVector( v, s ) { this.x += v.x * s; this.y += v.y * s; return this; } sub( v ) { this.x -= v.x; this.y -= v.y; return this; } subScalar( s ) { this.x -= s; this.y -= s; return this; } subVectors( a, b ) { this.x = a.x - b.x; this.y = a.y - b.y; return this; } multiply( v ) { this.x *= v.x; this.y *= v.y; return this; } multiplyScalar( scalar ) { this.x *= scalar; this.y *= scalar; return this; } divide( v ) { this.x /= v.x; this.y /= v.y; return this; } divideScalar( scalar ) { return this.multiplyScalar( 1 / scalar ); } applyMatrix3( m ) { const x = this.x, y = this.y; const e = m.elements; this.x = e[ 0 ] * x + e[ 3 ] * y + e[ 6 ]; this.y = e[ 1 ] * x + e[ 4 ] * y + e[ 7 ]; return this; } min( v ) { this.x = Math.min( this.x, v.x ); this.y = Math.min( this.y, v.y ); return this; } max( v ) { this.x = Math.max( this.x, v.x ); this.y = Math.max( this.y, v.y ); return this; } clamp( min, max ) { // assumes min < max, componentwise this.x = Math.max( min.x, Math.min( max.x, this.x ) ); this.y = Math.max( min.y, Math.min( max.y, this.y ) ); return this; } clampScalar( minVal, maxVal ) { this.x = Math.max( minVal, Math.min( maxVal, this.x ) ); this.y = Math.max( minVal, Math.min( maxVal, this.y ) ); return this; } clampLength( min, max ) { const length = this.length(); return this.divideScalar( length || 1 ).multiplyScalar( Math.max( min, Math.min( max, length ) ) ); } floor() { this.x = Math.floor( this.x ); this.y = Math.floor( this.y ); return this; } ceil() { this.x = Math.ceil( this.x ); this.y = Math.ceil( this.y ); return this; } round() { this.x = Math.round( this.x ); this.y = Math.round( this.y ); return this; } roundToZero() { this.x = ( this.x < 0 ) ? Math.ceil( this.x ) : Math.floor( this.x ); this.y = ( this.y < 0 ) ? Math.ceil( this.y ) : Math.floor( this.y ); return this; } negate() { this.x = - this.x; this.y = - this.y; return this; } dot( v ) { return this.x * v.x + this.y * v.y; } cross( v ) { return this.x * v.y - this.y * v.x; } lengthSq() { return this.x * this.x + this.y * this.y; } length() { return Math.sqrt( this.x * this.x + this.y * this.y ); } manhattanLength() { return Math.abs( this.x ) + Math.abs( this.y ); } normalize() { return this.divideScalar( this.length() || 1 ); } angle() { // computes the angle in radians with respect to the positive x-axis const angle = Math.atan2( - this.y, - this.x ) + Math.PI; return angle; } distanceTo( v ) { return Math.sqrt( this.distanceToSquared( v ) ); } distanceToSquared( v ) { const dx = this.x - v.x, dy = this.y - v.y; return dx * dx + dy * dy; } manhattanDistanceTo( v ) { return Math.abs( this.x - v.x ) + Math.abs( this.y - v.y ); } setLength( length ) { return this.normalize().multiplyScalar( length ); } lerp( v, alpha ) { this.x += ( v.x - this.x ) * alpha; this.y += ( v.y - this.y ) * alpha; return this; } lerpVectors( v1, v2, alpha ) { this.x = v1.x + ( v2.x - v1.x ) * alpha; this.y = v1.y + ( v2.y - v1.y ) * alpha; return this; } equals( v ) { return ( ( v.x === this.x ) && ( v.y === this.y ) ); } fromArray( array, offset = 0 ) { this.x = array[ offset ]; this.y = array[ offset + 1 ]; return this; } toArray( array = [], offset = 0 ) { array[ offset ] = this.x; array[ offset + 1 ] = this.y; return array; } fromBufferAttribute( attribute, index ) { this.x = attribute.getX( index ); this.y = attribute.getY( index ); return this; } rotateAround( center, angle ) { const c = Math.cos( angle ), s = Math.sin( angle ); const x = this.x - center.x; const y = this.y - center.y; this.x = x * c - y * s + center.x; this.y = x * s + y * c + center.y; return this; } random() { this.x = Math.random(); this.y = Math.random(); return this; } *[ Symbol.iterator ]() { yield this.x; yield this.y; } } class Matrix3 { constructor() { Matrix3.prototype.isMatrix3 = true; this.elements = [ 1, 0, 0, 0, 1, 0, 0, 0, 1 ]; } set( n11, n12, n13, n21, n22, n23, n31, n32, n33 ) { const te = this.elements; te[ 0 ] = n11; te[ 1 ] = n21; te[ 2 ] = n31; te[ 3 ] = n12; te[ 4 ] = n22; te[ 5 ] = n32; te[ 6 ] = n13; te[ 7 ] = n23; te[ 8 ] = n33; return this; } identity() { this.set( 1, 0, 0, 0, 1, 0, 0, 0, 1 ); return this; } copy( m ) { const te = this.elements; const me = m.elements; te[ 0 ] = me[ 0 ]; te[ 1 ] = me[ 1 ]; te[ 2 ] = me[ 2 ]; te[ 3 ] = me[ 3 ]; te[ 4 ] = me[ 4 ]; te[ 5 ] = me[ 5 ]; te[ 6 ] = me[ 6 ]; te[ 7 ] = me[ 7 ]; te[ 8 ] = me[ 8 ]; return this; } extractBasis( xAxis, yAxis, zAxis ) { xAxis.setFromMatrix3Column( this, 0 ); yAxis.setFromMatrix3Column( this, 1 ); zAxis.setFromMatrix3Column( this, 2 ); return this; } setFromMatrix4( m ) { const me = m.elements; this.set( me[ 0 ], me[ 4 ], me[ 8 ], me[ 1 ], me[ 5 ], me[ 9 ], me[ 2 ], me[ 6 ], me[ 10 ] ); return this; } multiply( m ) { return this.multiplyMatrices( this, m ); } premultiply( m ) { return this.multiplyMatrices( m, this ); } multiplyMatrices( a, b ) { const ae = a.elements; const be = b.elements; const te = this.elements; const a11 = ae[ 0 ], a12 = ae[ 3 ], a13 = ae[ 6 ]; const a21 = ae[ 1 ], a22 = ae[ 4 ], a23 = ae[ 7 ]; const a31 = ae[ 2 ], a32 = ae[ 5 ], a33 = ae[ 8 ]; const b11 = be[ 0 ], b12 = be[ 3 ], b13 = be[ 6 ]; const b21 = be[ 1 ], b22 = be[ 4 ], b23 = be[ 7 ]; const b31 = be[ 2 ], b32 = be[ 5 ], b33 = be[ 8 ]; te[ 0 ] = a11 * b11 + a12 * b21 + a13 * b31; te[ 3 ] = a11 * b12 + a12 * b22 + a13 * b32; te[ 6 ] = a11 * b13 + a12 * b23 + a13 * b33; te[ 1 ] = a21 * b11 + a22 * b21 + a23 * b31; te[ 4 ] = a21 * b12 + a22 * b22 + a23 * b32; te[ 7 ] = a21 * b13 + a22 * b23 + a23 * b33; te[ 2 ] = a31 * b11 + a32 * b21 + a33 * b31; te[ 5 ] = a31 * b12 + a32 * b22 + a33 * b32; te[ 8 ] = a31 * b13 + a32 * b23 + a33 * b33; return this; } multiplyScalar( s ) { const te = this.elements; te[ 0 ] *= s; te[ 3 ] *= s; te[ 6 ] *= s; te[ 1 ] *= s; te[ 4 ] *= s; te[ 7 ] *= s; te[ 2 ] *= s; te[ 5 ] *= s; te[ 8 ] *= s; return this; } determinant() { const te = this.elements; const a = te[ 0 ], b = te[ 1 ], c = te[ 2 ], d = te[ 3 ], e = te[ 4 ], f = te[ 5 ], g = te[ 6 ], h = te[ 7 ], i = te[ 8 ]; return a * e * i - a * f * h - b * d * i + b * f * g + c * d * h - c * e * g; } invert() { const te = this.elements, n11 = te[ 0 ], n21 = te[ 1 ], n31 = te[ 2 ], n12 = te[ 3 ], n22 = te[ 4 ], n32 = te[ 5 ], n13 = te[ 6 ], n23 = te[ 7 ], n33 = te[ 8 ], t11 = n33 * n22 - n32 * n23, t12 = n32 * n13 - n33 * n12, t13 = n23 * n12 - n22 * n13, det = n11 * t11 + n21 * t12 + n31 * t13; if ( det === 0 ) return this.set( 0, 0, 0, 0, 0, 0, 0, 0, 0 ); const detInv = 1 / det; te[ 0 ] = t11 * detInv; te[ 1 ] = ( n31 * n23 - n33 * n21 ) * detInv; te[ 2 ] = ( n32 * n21 - n31 * n22 ) * detInv; te[ 3 ] = t12 * detInv; te[ 4 ] = ( n33 * n11 - n31 * n13 ) * detInv; te[ 5 ] = ( n31 * n12 - n32 * n11 ) * detInv; te[ 6 ] = t13 * detInv; te[ 7 ] = ( n21 * n13 - n23 * n11 ) * detInv; te[ 8 ] = ( n22 * n11 - n21 * n12 ) * detInv; return this; } transpose() { let tmp; const m = this.elements; tmp = m[ 1 ]; m[ 1 ] = m[ 3 ]; m[ 3 ] = tmp; tmp = m[ 2 ]; m[ 2 ] = m[ 6 ]; m[ 6 ] = tmp; tmp = m[ 5 ]; m[ 5 ] = m[ 7 ]; m[ 7 ] = tmp; return this; } getNormalMatrix( matrix4 ) { return this.setFromMatrix4( matrix4 ).invert().transpose(); } transposeIntoArray( r ) { const m = this.elements; r[ 0 ] = m[ 0 ]; r[ 1 ] = m[ 3 ]; r[ 2 ] = m[ 6 ]; r[ 3 ] = m[ 1 ]; r[ 4 ] = m[ 4 ]; r[ 5 ] = m[ 7 ]; r[ 6 ] = m[ 2 ]; r[ 7 ] = m[ 5 ]; r[ 8 ] = m[ 8 ]; return this; } setUvTransform( tx, ty, sx, sy, rotation, cx, cy ) { const c = Math.cos( rotation ); const s = Math.sin( rotation ); this.set( sx * c, sx * s, - sx * ( c * cx + s * cy ) + cx + tx, - sy * s, sy * c, - sy * ( - s * cx + c * cy ) + cy + ty, 0, 0, 1 ); return this; } // scale( sx, sy ) { this.premultiply( _m3.makeScale( sx, sy ) ); return this; } rotate( theta ) { this.premultiply( _m3.makeRotation( - theta ) ); return this; } translate( tx, ty ) { this.premultiply( _m3.makeTranslation( tx, ty ) ); return this; } // for 2D Transforms makeTranslation( x, y ) { this.set( 1, 0, x, 0, 1, y, 0, 0, 1 ); return this; } makeRotation( theta ) { // counterclockwise const c = Math.cos( theta ); const s = Math.sin( theta ); this.set( c, - s, 0, s, c, 0, 0, 0, 1 ); return this; } makeScale( x, y ) { this.set( x, 0, 0, 0, y, 0, 0, 0, 1 ); return this; } // equals( matrix ) { const te = this.elements; const me = matrix.elements; for ( let i = 0; i < 9; i ++ ) { if ( te[ i ] !== me[ i ] ) return false; } return true; } fromArray( array, offset = 0 ) { for ( let i = 0; i < 9; i ++ ) { this.elements[ i ] = array[ i + offset ]; } return this; } toArray( array = [], offset = 0 ) { const te = this.elements; array[ offset ] = te[ 0 ]; array[ offset + 1 ] = te[ 1 ]; array[ offset + 2 ] = te[ 2 ]; array[ offset + 3 ] = te[ 3 ]; array[ offset + 4 ] = te[ 4 ]; array[ offset + 5 ] = te[ 5 ]; array[ offset + 6 ] = te[ 6 ]; array[ offset + 7 ] = te[ 7 ]; array[ offset + 8 ] = te[ 8 ]; return array; } clone() { return new this.constructor().fromArray( this.elements ); } } const _m3 = /*@__PURE__*/ new Matrix3(); function arrayNeedsUint32( array ) { // assumes larger values usually on last for ( let i = array.length - 1; i >= 0; -- i ) { if ( array[ i ] >= 65535 ) return true; // account for PRIMITIVE_RESTART_FIXED_INDEX, #24565 } return false; } function createElementNS( name ) { return document.createElementNS( 'http://www.w3.org/1999/xhtml', name ); } function SRGBToLinear( c ) { return ( c < 0.04045 ) ? c * 0.0773993808 : Math.pow( c * 0.9478672986 + 0.0521327014, 2.4 ); } function LinearToSRGB( c ) { return ( c < 0.0031308 ) ? c * 12.92 : 1.055 * ( Math.pow( c, 0.41666 ) ) - 0.055; } // JavaScript RGB-to-RGB transforms, defined as // FN[InputColorSpace][OutputColorSpace] callback functions. const FN = { [ SRGBColorSpace ]: { [ LinearSRGBColorSpace ]: SRGBToLinear }, [ LinearSRGBColorSpace ]: { [ SRGBColorSpace ]: LinearToSRGB }, }; const ColorManagement = { legacyMode: true, get workingColorSpace() { return LinearSRGBColorSpace; }, set workingColorSpace( colorSpace ) { console.warn( 'THREE.ColorManagement: .workingColorSpace is readonly.' ); }, convert: function ( color, sourceColorSpace, targetColorSpace ) { if ( this.legacyMode || sourceColorSpace === targetColorSpace || ! sourceColorSpace || ! targetColorSpace ) { return color; } if ( FN[ sourceColorSpace ] && FN[ sourceColorSpace ][ targetColorSpace ] !== undefined ) { const fn = FN[ sourceColorSpace ][ targetColorSpace ]; color.r = fn( color.r ); color.g = fn( color.g ); color.b = fn( color.b ); return color; } throw new Error( 'Unsupported color space conversion.' ); }, fromWorkingColorSpace: function ( color, targetColorSpace ) { return this.convert( color, this.workingColorSpace, targetColorSpace ); }, toWorkingColorSpace: function ( color, sourceColorSpace ) { return this.convert( color, sourceColorSpace, this.workingColorSpace ); }, }; const _colorKeywords = { 'aliceblue': 0xF0F8FF, 'antiquewhite': 0xFAEBD7, 'aqua': 0x00FFFF, 'aquamarine': 0x7FFFD4, 'azure': 0xF0FFFF, 'beige': 0xF5F5DC, 'bisque': 0xFFE4C4, 'black': 0x000000, 'blanchedalmond': 0xFFEBCD, 'blue': 0x0000FF, 'blueviolet': 0x8A2BE2, 'brown': 0xA52A2A, 'burlywood': 0xDEB887, 'cadetblue': 0x5F9EA0, 'chartreuse': 0x7FFF00, 'chocolate': 0xD2691E, 'coral': 0xFF7F50, 'cornflowerblue': 0x6495ED, 'cornsilk': 0xFFF8DC, 'crimson': 0xDC143C, 'cyan': 0x00FFFF, 'darkblue': 0x00008B, 'darkcyan': 0x008B8B, 'darkgoldenrod': 0xB8860B, 'darkgray': 0xA9A9A9, 'darkgreen': 0x006400, 'darkgrey': 0xA9A9A9, 'darkkhaki': 0xBDB76B, 'darkmagenta': 0x8B008B, 'darkolivegreen': 0x556B2F, 'darkorange': 0xFF8C00, 'darkorchid': 0x9932CC, 'darkred': 0x8B0000, 'darksalmon': 0xE9967A, 'darkseagreen': 0x8FBC8F, 'darkslateblue': 0x483D8B, 'darkslategray': 0x2F4F4F, 'darkslategrey': 0x2F4F4F, 'darkturquoise': 0x00CED1, 'darkviolet': 0x9400D3, 'deeppink': 0xFF1493, 'deepskyblue': 0x00BFFF, 'dimgray': 0x696969, 'dimgrey': 0x696969, 'dodgerblue': 0x1E90FF, 'firebrick': 0xB22222, 'floralwhite': 0xFFFAF0, 'forestgreen': 0x228B22, 'fuchsia': 0xFF00FF, 'gainsboro': 0xDCDCDC, 'ghostwhite': 0xF8F8FF, 'gold': 0xFFD700, 'goldenrod': 0xDAA520, 'gray': 0x808080, 'green': 0x008000, 'greenyellow': 0xADFF2F, 'grey': 0x808080, 'honeydew': 0xF0FFF0, 'hotpink': 0xFF69B4, 'indianred': 0xCD5C5C, 'indigo': 0x4B0082, 'ivory': 0xFFFFF0, 'khaki': 0xF0E68C, 'lavender': 0xE6E6FA, 'lavenderblush': 0xFFF0F5, 'lawngreen': 0x7CFC00, 'lemonchiffon': 0xFFFACD, 'lightblue': 0xADD8E6, 'lightcoral': 0xF08080, 'lightcyan': 0xE0FFFF, 'lightgoldenrodyellow': 0xFAFAD2, 'lightgray': 0xD3D3D3, 'lightgreen': 0x90EE90, 'lightgrey': 0xD3D3D3, 'lightpink': 0xFFB6C1, 'lightsalmon': 0xFFA07A, 'lightseagreen': 0x20B2AA, 'lightskyblue': 0x87CEFA, 'lightslategray': 0x778899, 'lightslategrey': 0x778899, 'lightsteelblue': 0xB0C4DE, 'lightyellow': 0xFFFFE0, 'lime': 0x00FF00, 'limegreen': 0x32CD32, 'linen': 0xFAF0E6, 'magenta': 0xFF00FF, 'maroon': 0x800000, 'mediumaquamarine': 0x66CDAA, 'mediumblue': 0x0000CD, 'mediumorchid': 0xBA55D3, 'mediumpurple': 0x9370DB, 'mediumseagreen': 0x3CB371, 'mediumslateblue': 0x7B68EE, 'mediumspringgreen': 0x00FA9A, 'mediumturquoise': 0x48D1CC, 'mediumvioletred': 0xC71585, 'midnightblue': 0x191970, 'mintcream': 0xF5FFFA, 'mistyrose': 0xFFE4E1, 'moccasin': 0xFFE4B5, 'navajowhite': 0xFFDEAD, 'navy': 0x000080, 'oldlace': 0xFDF5E6, 'olive': 0x808000, 'olivedrab': 0x6B8E23, 'orange': 0xFFA500, 'orangered': 0xFF4500, 'orchid': 0xDA70D6, 'palegoldenrod': 0xEEE8AA, 'palegreen': 0x98FB98, 'paleturquoise': 0xAFEEEE, 'palevioletred': 0xDB7093, 'papayawhip': 0xFFEFD5, 'peachpuff': 0xFFDAB9, 'peru': 0xCD853F, 'pink': 0xFFC0CB, 'plum': 0xDDA0DD, 'powderblue': 0xB0E0E6, 'purple': 0x800080, 'rebeccapurple': 0x663399, 'red': 0xFF0000, 'rosybrown': 0xBC8F8F, 'royalblue': 0x4169E1, 'saddlebrown': 0x8B4513, 'salmon': 0xFA8072, 'sandybrown': 0xF4A460, 'seagreen': 0x2E8B57, 'seashell': 0xFFF5EE, 'sienna': 0xA0522D, 'silver': 0xC0C0C0, 'skyblue': 0x87CEEB, 'slateblue': 0x6A5ACD, 'slategray': 0x708090, 'slategrey': 0x708090, 'snow': 0xFFFAFA, 'springgreen': 0x00FF7F, 'steelblue': 0x4682B4, 'tan': 0xD2B48C, 'teal': 0x008080, 'thistle': 0xD8BFD8, 'tomato': 0xFF6347, 'turquoise': 0x40E0D0, 'violet': 0xEE82EE, 'wheat': 0xF5DEB3, 'white': 0xFFFFFF, 'whitesmoke': 0xF5F5F5, 'yellow': 0xFFFF00, 'yellowgreen': 0x9ACD32 }; const _rgb$1 = { r: 0, g: 0, b: 0 }; const _hslA = { h: 0, s: 0, l: 0 }; const _hslB = { h: 0, s: 0, l: 0 }; function hue2rgb( p, q, t ) { if ( t < 0 ) t += 1; if ( t > 1 ) t -= 1; if ( t < 1 / 6 ) return p + ( q - p ) * 6 * t; if ( t < 1 / 2 ) return q; if ( t < 2 / 3 ) return p + ( q - p ) * 6 * ( 2 / 3 - t ); return p; } function toComponents( source, target ) { target.r = source.r; target.g = source.g; target.b = source.b; return target; } class Color { constructor( r, g, b ) { this.isColor = true; this.r = 1; this.g = 1; this.b = 1; if ( g === undefined && b === undefined ) { // r is THREE.Color, hex or string return this.set( r ); } return this.setRGB( r, g, b ); } set( value ) { if ( value && value.isColor ) { this.copy( value ); } else if ( typeof value === 'number' ) { this.setHex( value ); } else if ( typeof value === 'string' ) { this.setStyle( value ); } return this; } setScalar( scalar ) { this.r = scalar; this.g = scalar; this.b = scalar; return this; } setHex( hex, colorSpace = SRGBColorSpace ) { hex = Math.floor( hex ); this.r = ( hex >> 16 & 255 ) / 255; this.g = ( hex >> 8 & 255 ) / 255; this.b = ( hex & 255 ) / 255; ColorManagement.toWorkingColorSpace( this, colorSpace ); return this; } setRGB( r, g, b, colorSpace = ColorManagement.workingColorSpace ) { this.r = r; this.g = g; this.b = b; ColorManagement.toWorkingColorSpace( this, colorSpace ); return this; } setHSL( h, s, l, colorSpace = ColorManagement.workingColorSpace ) { // h,s,l ranges are in 0.0 - 1.0 h = euclideanModulo( h, 1 ); s = clamp( s, 0, 1 ); l = clamp( l, 0, 1 ); if ( s === 0 ) { this.r = this.g = this.b = l; } else { const p = l <= 0.5 ? l * ( 1 + s ) : l + s - ( l * s ); const q = ( 2 * l ) - p; this.r = hue2rgb( q, p, h + 1 / 3 ); this.g = hue2rgb( q, p, h ); this.b = hue2rgb( q, p, h - 1 / 3 ); } ColorManagement.toWorkingColorSpace( this, colorSpace ); return this; } setStyle( style, colorSpace = SRGBColorSpace ) { function handleAlpha( string ) { if ( string === undefined ) return; if ( parseFloat( string ) < 1 ) { console.warn( 'THREE.Color: Alpha component of ' + style + ' will be ignored.' ); } } let m; if ( m = /^((?:rgb|hsl)a?)\(([^\)]*)\)/.exec( style ) ) { // rgb / hsl let color; const name = m[ 1 ]; const components = m[ 2 ]; switch ( name ) { case 'rgb': case 'rgba': if ( color = /^\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec( components ) ) { // rgb(255,0,0) rgba(255,0,0,0.5) this.r = Math.min( 255, parseInt( color[ 1 ], 10 ) ) / 255; this.g = Math.min( 255, parseInt( color[ 2 ], 10 ) ) / 255; this.b = Math.min( 255, parseInt( color[ 3 ], 10 ) ) / 255; ColorManagement.toWorkingColorSpace( this, colorSpace ); handleAlpha( color[ 4 ] ); return this; } if ( color = /^\s*(\d+)\%\s*,\s*(\d+)\%\s*,\s*(\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec( components ) ) { // rgb(100%,0%,0%) rgba(100%,0%,0%,0.5) this.r = Math.min( 100, parseInt( color[ 1 ], 10 ) ) / 100; this.g = Math.min( 100, parseInt( color[ 2 ], 10 ) ) / 100; this.b = Math.min( 100, parseInt( color[ 3 ], 10 ) ) / 100; ColorManagement.toWorkingColorSpace( this, colorSpace ); handleAlpha( color[ 4 ] ); return this; } break; case 'hsl': case 'hsla': if ( color = /^\s*(\d*\.?\d+)\s*,\s*(\d*\.?\d+)\%\s*,\s*(\d*\.?\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec( components ) ) { // hsl(120,50%,50%) hsla(120,50%,50%,0.5) const h = parseFloat( color[ 1 ] ) / 360; const s = parseFloat( color[ 2 ] ) / 100; const l = parseFloat( color[ 3 ] ) / 100; handleAlpha( color[ 4 ] ); return this.setHSL( h, s, l, colorSpace ); } break; } } else if ( m = /^\#([A-Fa-f\d]+)$/.exec( style ) ) { // hex color const hex = m[ 1 ]; const size = hex.length; if ( size === 3 ) { // #ff0 this.r = parseInt( hex.charAt( 0 ) + hex.charAt( 0 ), 16 ) / 255; this.g = parseInt( hex.charAt( 1 ) + hex.charAt( 1 ), 16 ) / 255; this.b = parseInt( hex.charAt( 2 ) + hex.charAt( 2 ), 16 ) / 255; ColorManagement.toWorkingColorSpace( this, colorSpace ); return this; } else if ( size === 6 ) { // #ff0000 this.r = parseInt( hex.charAt( 0 ) + hex.charAt( 1 ), 16 ) / 255; this.g = parseInt( hex.charAt( 2 ) + hex.charAt( 3 ), 16 ) / 255; this.b = parseInt( hex.charAt( 4 ) + hex.charAt( 5 ), 16 ) / 255; ColorManagement.toWorkingColorSpace( this, colorSpace ); return this; } } if ( style && style.length > 0 ) { return this.setColorName( style, colorSpace ); } return this; } setColorName( style, colorSpace = SRGBColorSpace ) { // color keywords const hex = _colorKeywords[ style.toLowerCase() ]; if ( hex !== undefined ) { // red this.setHex( hex, colorSpace ); } else { // unknown color console.warn( 'THREE.Color: Unknown color ' + style ); } return this; } clone() { return new this.constructor( this.r, this.g, this.b ); } copy( color ) { this.r = color.r; this.g = color.g; this.b = color.b; return this; } copySRGBToLinear( color ) { this.r = SRGBToLinear( color.r ); this.g = SRGBToLinear( color.g ); this.b = SRGBToLinear( color.b ); return this; } copyLinearToSRGB( color ) { this.r = LinearToSRGB( color.r ); this.g = LinearToSRGB( color.g ); this.b = LinearToSRGB( color.b ); return this; } convertSRGBToLinear() { this.copySRGBToLinear( this ); return this; } convertLinearToSRGB() { this.copyLinearToSRGB( this ); return this; } getHex( colorSpace = SRGBColorSpace ) { ColorManagement.fromWorkingColorSpace( toComponents( this, _rgb$1 ), colorSpace ); return clamp( _rgb$1.r * 255, 0, 255 ) << 16 ^ clamp( _rgb$1.g * 255, 0, 255 ) << 8 ^ clamp( _rgb$1.b * 255, 0, 255 ) << 0; } getHexString( colorSpace = SRGBColorSpace ) { return ( '000000' + this.getHex( colorSpace ).toString( 16 ) ).slice( - 6 ); } getHSL( target, colorSpace = ColorManagement.workingColorSpace ) { // h,s,l ranges are in 0.0 - 1.0 ColorManagement.fromWorkingColorSpace( toComponents( this, _rgb$1 ), colorSpace ); const r = _rgb$1.r, g = _rgb$1.g, b = _rgb$1.b; const max = Math.max( r, g, b ); const min = Math.min( r, g, b ); let hue, saturation; const lightness = ( min + max ) / 2.0; if ( min === max ) { hue = 0; saturation = 0; } else { const delta = max - min; saturation = lightness <= 0.5 ? delta / ( max + min ) : delta / ( 2 - max - min ); switch ( max ) { case r: hue = ( g - b ) / delta + ( g < b ? 6 : 0 ); break; case g: hue = ( b - r ) / delta + 2; break; case b: hue = ( r - g ) / delta + 4; break; } hue /= 6; } target.h = hue; target.s = saturation; target.l = lightness; return target; } getRGB( target, colorSpace = ColorManagement.workingColorSpace ) { ColorManagement.fromWorkingColorSpace( toComponents( this, _rgb$1 ), colorSpace ); target.r = _rgb$1.r; target.g = _rgb$1.g; target.b = _rgb$1.b; return target; } getStyle( colorSpace = SRGBColorSpace ) { ColorManagement.fromWorkingColorSpace( toComponents( this, _rgb$1 ), colorSpace ); if ( colorSpace !== SRGBColorSpace ) { // Requires CSS Color Module Level 4 (https://www.w3.org/TR/css-color-4/). return `color(${ colorSpace } ${ _rgb$1.r } ${ _rgb$1.g } ${ _rgb$1.b })`; } return `rgb(${( _rgb$1.r * 255 ) | 0},${( _rgb$1.g * 255 ) | 0},${( _rgb$1.b * 255 ) | 0})`; } offsetHSL( h, s, l ) { this.getHSL( _hslA ); _hslA.h += h; _hslA.s += s; _hslA.l += l; this.setHSL( _hslA.h, _hslA.s, _hslA.l ); return this; } add( color ) { this.r += color.r; this.g += color.g; this.b += color.b; return this; } addColors( color1, color2 ) { this.r = color1.r + color2.r; this.g = color1.g + color2.g; this.b = color1.b + color2.b; return this; } addScalar( s ) { this.r += s; this.g += s; this.b += s; return this; } sub( color ) { this.r = Math.max( 0, this.r - color.r ); this.g = Math.max( 0, this.g - color.g ); this.b = Math.max( 0, this.b - color.b ); return this; } multiply( color ) { this.r *= color.r; this.g *= color.g; this.b *= color.b; return this; } multiplyScalar( s ) { this.r *= s; this.g *= s; this.b *= s; return this; } lerp( color, alpha ) { this.r += ( color.r - this.r ) * alpha; this.g += ( color.g - this.g ) * alpha; this.b += ( color.b - this.b ) * alpha; return this; } lerpColors( color1, color2, alpha ) { this.r = color1.r + ( color2.r - color1.r ) * alpha; this.g = color1.g + ( color2.g - color1.g ) * alpha; this.b = color1.b + ( color2.b - color1.b ) * alpha; return this; } lerpHSL( color, alpha ) { this.getHSL( _hslA ); color.getHSL( _hslB ); const h = lerp( _hslA.h, _hslB.h, alpha ); const s = lerp( _hslA.s, _hslB.s, alpha ); const l = lerp( _hslA.l, _hslB.l, alpha ); this.setHSL( h, s, l ); return this; } equals( c ) { return ( c.r === this.r ) && ( c.g === this.g ) && ( c.b === this.b ); } fromArray( array, offset = 0 ) { this.r = array[ offset ]; this.g = array[ offset + 1 ]; this.b = array[ offset + 2 ]; return this; } toArray( array = [], offset = 0 ) { array[ offset ] = this.r; array[ offset + 1 ] = this.g; array[ offset + 2 ] = this.b; return array; } fromBufferAttribute( attribute, index ) { this.r = attribute.getX( index ); this.g = attribute.getY( index ); this.b = attribute.getZ( index ); return this; } toJSON() { return this.getHex(); } *[ Symbol.iterator ]() { yield this.r; yield this.g; yield this.b; } } Color.NAMES = _colorKeywords; let _canvas; class ImageUtils { static getDataURL( image ) { if ( /^data:/i.test( image.src ) ) { return image.src; } if ( typeof HTMLCanvasElement == 'undefined' ) { return image.src; } let canvas; if ( image instanceof HTMLCanvasElement ) { canvas = image; } else { if ( _canvas === undefined ) _canvas = createElementNS( 'canvas' ); _canvas.width = image.width; _canvas.height = image.height; const context = _canvas.getContext( '2d' ); if ( image instanceof ImageData ) { context.putImageData( image, 0, 0 ); } else { context.drawImage( image, 0, 0, image.width, image.height ); } canvas = _canvas; } if ( canvas.width > 2048 || canvas.height > 2048 ) { console.warn( 'THREE.ImageUtils.getDataURL: Image converted to jpg for performance reasons', image ); return canvas.toDataURL( 'image/jpeg', 0.6 ); } else { return canvas.toDataURL( 'image/png' ); } } static sRGBToLinear( image ) { if ( ( typeof HTMLImageElement !== 'undefined' && image instanceof HTMLImageElement ) || ( typeof HTMLCanvasElement !== 'undefined' && image instanceof HTMLCanvasElement ) || ( typeof ImageBitmap !== 'undefined' && image instanceof ImageBitmap ) ) { const canvas = createElementNS( 'canvas' ); canvas.width = image.width; canvas.height = image.height; const context = canvas.getContext( '2d' ); context.drawImage( image, 0, 0, image.width, image.height ); const imageData = context.getImageData( 0, 0, image.width, image.height ); const data = imageData.data; for ( let i = 0; i < data.length; i ++ ) { data[ i ] = SRGBToLinear( data[ i ] / 255 ) * 255; } context.putImageData( imageData, 0, 0 ); return canvas; } else if ( image.data ) { const data = image.data.slice( 0 ); for ( let i = 0; i < data.length; i ++ ) { if ( data instanceof Uint8Array || data instanceof Uint8ClampedArray ) { data[ i ] = Math.floor( SRGBToLinear( data[ i ] / 255 ) * 255 ); } else { // assuming float data[ i ] = SRGBToLinear( data[ i ] ); } } return { data: data, width: image.width, height: image.height }; } else { console.warn( 'THREE.ImageUtils.sRGBToLinear(): Unsupported image type. No color space conversion applied.' ); return image; } } } class Source { constructor( data = null ) { this.isSource = true; this.uuid = generateUUID(); this.data = data; this.version = 0; } set needsUpdate( value ) { if ( value === true ) this.version ++; } toJSON( meta ) { const isRootObject = ( meta === undefined || typeof meta === 'string' ); if ( ! isRootObject && meta.images[ this.uuid ] !== undefined ) { return meta.images[ this.uuid ]; } const output = { uuid: this.uuid, url: '' }; const data = this.data; if ( data !== null ) { let url; if ( Array.isArray( data ) ) { // cube texture url = []; for ( let i = 0, l = data.length; i < l; i ++ ) { if ( data[ i ].isDataTexture ) { url.push( serializeImage( data[ i ].image ) ); } else { url.push( serializeImage( data[ i ] ) ); } } } else { // texture url = serializeImage( data ); } output.url = url; } if ( ! isRootObject ) { meta.images[ this.uuid ] = output; } return output; } } function serializeImage( image ) { if ( ( typeof HTMLImageElement !== 'undefined' && image instanceof HTMLImageElement ) || ( typeof HTMLCanvasElement !== 'undefined' && image instanceof HTMLCanvasElement ) || ( typeof ImageBitmap !== 'undefined' && image instanceof ImageBitmap ) ) { // default images return ImageUtils.getDataURL( image ); } else { if ( image.data ) { // images of DataTexture return { data: Array.from( image.data ), width: image.width, height: image.height, type: image.data.constructor.name }; } else { console.warn( 'THREE.Texture: Unable to serialize Texture.' ); return {}; } } } let textureId = 0; class Texture extends EventDispatcher { constructor( image = Texture.DEFAULT_IMAGE, mapping = Texture.DEFAULT_MAPPING, wrapS = ClampToEdgeWrapping, wrapT = ClampToEdgeWrapping, magFilter = LinearFilter, minFilter = LinearMipmapLinearFilter, format = RGBAFormat, type = UnsignedByteType, anisotropy = Texture.DEFAULT_ANISOTROPY, encoding = LinearEncoding ) { super(); this.isTexture = true; Object.defineProperty( this, 'id', { value: textureId ++ } ); this.uuid = generateUUID(); this.name = ''; this.source = new Source( image ); this.mipmaps = []; this.mapping = mapping; this.wrapS = wrapS; this.wrapT = wrapT; this.magFilter = magFilter; this.minFilter = minFilter; this.anisotropy = anisotropy; this.format = format; this.internalFormat = null; this.type = type; this.offset = new Vector2( 0, 0 ); this.repeat = new Vector2( 1, 1 ); this.center = new Vector2( 0, 0 ); this.rotation = 0; this.matrixAutoUpdate = true; this.matrix = new Matrix3(); this.generateMipmaps = true; this.premultiplyAlpha = false; this.flipY = true; this.unpackAlignment = 4; // valid values: 1, 2, 4, 8 (see http://www.khronos.org/opengles/sdk/docs/man/xhtml/glPixelStorei.xml) // Values of encoding !== THREE.LinearEncoding only supported on map, envMap and emissiveMap. // // Also changing the encoding after already used by a Material will not automatically make the Material // update. You need to explicitly call Material.needsUpdate to trigger it to recompile. this.encoding = encoding; this.userData = {}; this.version = 0; this.onUpdate = null; this.isRenderTargetTexture = false; // indicates whether a texture belongs to a render target or not this.needsPMREMUpdate = false; // indicates whether this texture should be processed by PMREMGenerator or not (only relevant for render target textures) } get image() { return this.source.data; } set image( value ) { this.source.data = value; } updateMatrix() { this.matrix.setUvTransform( this.offset.x, this.offset.y, this.repeat.x, this.repeat.y, this.rotation, this.center.x, this.center.y ); } clone() { return new this.constructor().copy( this ); } copy( source ) { this.name = source.name; this.source = source.source; this.mipmaps = source.mipmaps.slice( 0 ); this.mapping = source.mapping; this.wrapS = source.wrapS; this.wrapT = source.wrapT; this.magFilter = source.magFilter; this.minFilter = source.minFilter; this.anisotropy = source.anisotropy; this.format = source.format; this.internalFormat = source.internalFormat; this.type = source.type; this.offset.copy( source.offset ); this.repeat.copy( source.repeat ); this.center.copy( source.center ); this.rotation = source.rotation; this.matrixAutoUpdate = source.matrixAutoUpdate; this.matrix.copy( source.matrix ); this.generateMipmaps = source.generateMipmaps; this.premultiplyAlpha = source.premultiplyAlpha; this.flipY = source.flipY; this.unpackAlignment = source.unpackAlignment; this.encoding = source.encoding; this.userData = JSON.parse( JSON.stringify( source.userData ) ); this.needsUpdate = true; return this; } toJSON( meta ) { const isRootObject = ( meta === undefined || typeof meta === 'string' ); if ( ! isRootObject && meta.textures[ this.uuid ] !== undefined ) { return meta.textures[ this.uuid ]; } const output = { metadata: { version: 4.5, type: 'Texture', generator: 'Texture.toJSON' }, uuid: this.uuid, name: this.name, image: this.source.toJSON( meta ).uuid, mapping: this.mapping, repeat: [ this.repeat.x, this.repeat.y ], offset: [ this.offset.x, this.offset.y ], center: [ this.center.x, this.center.y ], rotation: this.rotation, wrap: [ this.wrapS, this.wrapT ], format: this.format, type: this.type, encoding: this.encoding, minFilter: this.minFilter, magFilter: this.magFilter, anisotropy: this.anisotropy, flipY: this.flipY, generateMipmaps: this.generateMipmaps, premultiplyAlpha: this.premultiplyAlpha, unpackAlignment: this.unpackAlignment }; if ( Object.keys( this.userData ).length > 0 ) output.userData = this.userData; if ( ! isRootObject ) { meta.textures[ this.uuid ] = output; } return output; } dispose() { this.dispatchEvent( { type: 'dispose' } ); } transformUv( uv ) { if ( this.mapping !== UVMapping ) return uv; uv.applyMatrix3( this.matrix ); if ( uv.x < 0 || uv.x > 1 ) { switch ( this.wrapS ) { case RepeatWrapping: uv.x = uv.x - Math.floor( uv.x ); break; case ClampToEdgeWrapping: uv.x = uv.x < 0 ? 0 : 1; break; case MirroredRepeatWrapping: if ( Math.abs( Math.floor( uv.x ) % 2 ) === 1 ) { uv.x = Math.ceil( uv.x ) - uv.x; } else { uv.x = uv.x - Math.floor( uv.x ); } break; } } if ( uv.y < 0 || uv.y > 1 ) { switch ( this.wrapT ) { case RepeatWrapping: uv.y = uv.y - Math.floor( uv.y ); break; case ClampToEdgeWrapping: uv.y = uv.y < 0 ? 0 : 1; break; case MirroredRepeatWrapping: if ( Math.abs( Math.floor( uv.y ) % 2 ) === 1 ) { uv.y = Math.ceil( uv.y ) - uv.y; } else { uv.y = uv.y - Math.floor( uv.y ); } break; } } if ( this.flipY ) { uv.y = 1 - uv.y; } return uv; } set needsUpdate( value ) { if ( value === true ) { this.version ++; this.source.needsUpdate = true; } } } Texture.DEFAULT_IMAGE = null; Texture.DEFAULT_MAPPING = UVMapping; Texture.DEFAULT_ANISOTROPY = 1; class Quaternion { constructor( x = 0, y = 0, z = 0, w = 1 ) { this.isQuaternion = true; this._x = x; this._y = y; this._z = z; this._w = w; } static slerpFlat( dst, dstOffset, src0, srcOffset0, src1, srcOffset1, t ) { // fuzz-free, array-based Quaternion SLERP operation let x0 = src0[ srcOffset0 + 0 ], y0 = src0[ srcOffset0 + 1 ], z0 = src0[ srcOffset0 + 2 ], w0 = src0[ srcOffset0 + 3 ]; const x1 = src1[ srcOffset1 + 0 ], y1 = src1[ srcOffset1 + 1 ], z1 = src1[ srcOffset1 + 2 ], w1 = src1[ srcOffset1 + 3 ]; if ( t === 0 ) { dst[ dstOffset + 0 ] = x0; dst[ dstOffset + 1 ] = y0; dst[ dstOffset + 2 ] = z0; dst[ dstOffset + 3 ] = w0; return; } if ( t === 1 ) { dst[ dstOffset + 0 ] = x1; dst[ dstOffset + 1 ] = y1; dst[ dstOffset + 2 ] = z1; dst[ dstOffset + 3 ] = w1; return; } if ( w0 !== w1 || x0 !== x1 || y0 !== y1 || z0 !== z1 ) { let s = 1 - t; const cos = x0 * x1 + y0 * y1 + z0 * z1 + w0 * w1, dir = ( cos >= 0 ? 1 : - 1 ), sqrSin = 1 - cos * cos; // Skip the Slerp for tiny steps to avoid numeric problems: if ( sqrSin > Number.EPSILON ) { const sin = Math.sqrt( sqrSin ), len = Math.atan2( sin, cos * dir ); s = Math.sin( s * len ) / sin; t = Math.sin( t * len ) / sin; } const tDir = t * dir; x0 = x0 * s + x1 * tDir; y0 = y0 * s + y1 * tDir; z0 = z0 * s + z1 * tDir; w0 = w0 * s + w1 * tDir; // Normalize in case we just did a lerp: if ( s === 1 - t ) { const f = 1 / Math.sqrt( x0 * x0 + y0 * y0 + z0 * z0 + w0 * w0 ); x0 *= f; y0 *= f; z0 *= f; w0 *= f; } } dst[ dstOffset ] = x0; dst[ dstOffset + 1 ] = y0; dst[ dstOffset + 2 ] = z0; dst[ dstOffset + 3 ] = w0; } static multiplyQuaternionsFlat( dst, dstOffset, src0, srcOffset0, src1, srcOffset1 ) { const x0 = src0[ srcOffset0 ]; const y0 = src0[ srcOffset0 + 1 ]; const z0 = src0[ srcOffset0 + 2 ]; const w0 = src0[ srcOffset0 + 3 ]; const x1 = src1[ srcOffset1 ]; const y1 = src1[ srcOffset1 + 1 ]; const z1 = src1[ srcOffset1 + 2 ]; const w1 = src1[ srcOffset1 + 3 ]; dst[ dstOffset ] = x0 * w1 + w0 * x1 + y0 * z1 - z0 * y1; dst[ dstOffset + 1 ] = y0 * w1 + w0 * y1 + z0 * x1 - x0 * z1; dst[ dstOffset + 2 ] = z0 * w1 + w0 * z1 + x0 * y1 - y0 * x1; dst[ dstOffset + 3 ] = w0 * w1 - x0 * x1 - y0 * y1 - z0 * z1; return dst; } get x() { return this._x; } set x( value ) { this._x = value; this._onChangeCallback(); } get y() { return this._y; } set y( value ) { this._y = value; this._onChangeCallback(); } get z() { return this._z; } set z( value ) { this._z = value; this._onChangeCallback(); } get w() { return this._w; } set w( value ) { this._w = value; this._onChangeCallback(); } set( x, y, z, w ) { this._x = x; this._y = y; this._z = z; this._w = w; this._onChangeCallback(); return this; } clone() { return new this.constructor( this._x, this._y, this._z, this._w ); } copy( quaternion ) { this._x = quaternion.x; this._y = quaternion.y; this._z = quaternion.z; this._w = quaternion.w; this._onChangeCallback(); return this; } setFromEuler( euler, update ) { const x = euler._x, y = euler._y, z = euler._z, order = euler._order; // http://www.mathworks.com/matlabcentral/fileexchange/ // 20696-function-to-convert-between-dcm-euler-angles-quaternions-and-euler-vectors/ // content/SpinCalc.m const cos = Math.cos; const sin = Math.sin; const c1 = cos( x / 2 ); const c2 = cos( y / 2 ); const c3 = cos( z / 2 ); const s1 = sin( x / 2 ); const s2 = sin( y / 2 ); const s3 = sin( z / 2 ); switch ( order ) { case 'XYZ': this._x = s1 * c2 * c3 + c1 * s2 * s3; this._y = c1 * s2 * c3 - s1 * c2 * s3; this._z = c1 * c2 * s3 + s1 * s2 * c3; this._w = c1 * c2 * c3 - s1 * s2 * s3; break; case 'YXZ': this._x = s1 * c2 * c3 + c1 * s2 * s3; this._y = c1 * s2 * c3 - s1 * c2 * s3; this._z = c1 * c2 * s3 - s1 * s2 * c3; this._w = c1 * c2 * c3 + s1 * s2 * s3; break; case 'ZXY': this._x = s1 * c2 * c3 - c1 * s2 * s3; this._y = c1 * s2 * c3 + s1 * c2 * s3; this._z = c1 * c2 * s3 + s1 * s2 * c3; this._w = c1 * c2 * c3 - s1 * s2 * s3; break; case 'ZYX': this._x = s1 * c2 * c3 - c1 * s2 * s3; this._y = c1 * s2 * c3 + s1 * c2 * s3; this._z = c1 * c2 * s3 - s1 * s2 * c3; this._w = c1 * c2 * c3 + s1 * s2 * s3; break; case 'YZX': this._x = s1 * c2 * c3 + c1 * s2 * s3; this._y = c1 * s2 * c3 + s1 * c2 * s3; this._z = c1 * c2 * s3 - s1 * s2 * c3; this._w = c1 * c2 * c3 - s1 * s2 * s3; break; case 'XZY': this._x = s1 * c2 * c3 - c1 * s2 * s3; this._y = c1 * s2 * c3 - s1 * c2 * s3; this._z = c1 * c2 * s3 + s1 * s2 * c3; this._w = c1 * c2 * c3 + s1 * s2 * s3; break; default: console.warn( 'THREE.Quaternion: .setFromEuler() encountered an unknown order: ' + order ); } if ( update !== false ) this._onChangeCallback(); return this; } setFromAxisAngle( axis, angle ) { // http://www.euclideanspace.com/maths/geometry/rotations/conversions/angleToQuaternion/index.htm // assumes axis is normalized const halfAngle = angle / 2, s = Math.sin( halfAngle ); this._x = axis.x * s; this._y = axis.y * s; this._z = axis.z * s; this._w = Math.cos( halfAngle ); this._onChangeCallback(); return this; } setFromRotationMatrix( m ) { // http://www.euclideanspace.com/maths/geometry/rotations/conversions/matrixToQuaternion/index.htm // assumes the upper 3x3 of m is a pure rotation matrix (i.e, unscaled) const te = m.elements, m11 = te[ 0 ], m12 = te[ 4 ], m13 = te[ 8 ], m21 = te[ 1 ], m22 = te[ 5 ], m23 = te[ 9 ], m31 = te[ 2 ], m32 = te[ 6 ], m33 = te[ 10 ], trace = m11 + m22 + m33; if ( trace > 0 ) { const s = 0.5 / Math.sqrt( trace + 1.0 ); this._w = 0.25 / s; this._x = ( m32 - m23 ) * s; this._y = ( m13 - m31 ) * s; this._z = ( m21 - m12 ) * s; } else if ( m11 > m22 && m11 > m33 ) { const s = 2.0 * Math.sqrt( 1.0 + m11 - m22 - m33 ); this._w = ( m32 - m23 ) / s; this._x = 0.25 * s; this._y = ( m12 + m21 ) / s; this._z = ( m13 + m31 ) / s; } else if ( m22 > m33 ) { const s = 2.0 * Math.sqrt( 1.0 + m22 - m11 - m33 ); this._w = ( m13 - m31 ) / s; this._x = ( m12 + m21 ) / s; this._y = 0.25 * s; this._z = ( m23 + m32 ) / s; } else { const s = 2.0 * Math.sqrt( 1.0 + m33 - m11 - m22 ); this._w = ( m21 - m12 ) / s; this._x = ( m13 + m31 ) / s; this._y = ( m23 + m32 ) / s; this._z = 0.25 * s; } this._onChangeCallback(); return this; } setFromUnitVectors( vFrom, vTo ) { // assumes direction vectors vFrom and vTo are normalized let r = vFrom.dot( vTo ) + 1; if ( r < Number.EPSILON ) { // vFrom and vTo point in opposite directions r = 0; if ( Math.abs( vFrom.x ) > Math.abs( vFrom.z ) ) { this._x = - vFrom.y; this._y = vFrom.x; this._z = 0; this._w = r; } else { this._x = 0; this._y = - vFrom.z; this._z = vFrom.y; this._w = r; } } else { // crossVectors( vFrom, vTo ); // inlined to avoid cyclic dependency on Vector3 this._x = vFrom.y * vTo.z - vFrom.z * vTo.y; this._y = vFrom.z * vTo.x - vFrom.x * vTo.z; this._z = vFrom.x * vTo.y - vFrom.y * vTo.x; this._w = r; } return this.normalize(); } angleTo( q ) { return 2 * Math.acos( Math.abs( clamp( this.dot( q ), - 1, 1 ) ) ); } rotateTowards( q, step ) { const angle = this.angleTo( q ); if ( angle === 0 ) return this; const t = Math.min( 1, step / angle ); this.slerp( q, t ); return this; } identity() { return this.set( 0, 0, 0, 1 ); } invert() { // quaternion is assumed to have unit length return this.conjugate(); } conjugate() { this._x *= - 1; this._y *= - 1; this._z *= - 1; this._onChangeCallback(); return this; } dot( v ) { return this._x * v._x + this._y * v._y + this._z * v._z + this._w * v._w; } lengthSq() { return this._x * this._x + this._y * this._y + this._z * this._z + this._w * this._w; } length() { return Math.sqrt( this._x * this._x + this._y * this._y + this._z * this._z + this._w * this._w ); } normalize() { let l = this.length(); if ( l === 0 ) { this._x = 0; this._y = 0; this._z = 0; this._w = 1; } else { l = 1 / l; this._x = this._x * l; this._y = this._y * l; this._z = this._z * l; this._w = this._w * l; } this._onChangeCallback(); return this; } multiply( q ) { return this.multiplyQuaternions( this, q ); } premultiply( q ) { return this.multiplyQuaternions( q, this ); } multiplyQuaternions( a, b ) { // from http://www.euclideanspace.com/maths/algebra/realNormedAlgebra/quaternions/code/index.htm const qax = a._x, qay = a._y, qaz = a._z, qaw = a._w; const qbx = b._x, qby = b._y, qbz = b._z, qbw = b._w; this._x = qax * qbw + qaw * qbx + qay * qbz - qaz * qby; this._y = qay * qbw + qaw * qby + qaz * qbx - qax * qbz; this._z = qaz * qbw + qaw * qbz + qax * qby - qay * qbx; this._w = qaw * qbw - qax * qbx - qay * qby - qaz * qbz; this._onChangeCallback(); return this; } slerp( qb, t ) { if ( t === 0 ) return this; if ( t === 1 ) return this.copy( qb ); const x = this._x, y = this._y, z = this._z, w = this._w; // http://www.euclideanspace.com/maths/algebra/realNormedAlgebra/quaternions/slerp/ let cosHalfTheta = w * qb._w + x * qb._x + y * qb._y + z * qb._z; if ( cosHalfTheta < 0 ) { this._w = - qb._w; this._x = - qb._x; this._y = - qb._y; this._z = - qb._z; cosHalfTheta = - cosHalfTheta; } else { this.copy( qb ); } if ( cosHalfTheta >= 1.0 ) { this._w = w; this._x = x; this._y = y; this._z = z; return this; } const sqrSinHalfTheta = 1.0 - cosHalfTheta * cosHalfTheta; if ( sqrSinHalfTheta <= Number.EPSILON ) { const s = 1 - t; this._w = s * w + t * this._w; this._x = s * x + t * this._x; this._y = s * y + t * this._y; this._z = s * z + t * this._z; this.normalize(); this._onChangeCallback(); return this; } const sinHalfTheta = Math.sqrt( sqrSinHalfTheta ); const halfTheta = Math.atan2( sinHalfTheta, cosHalfTheta ); const ratioA = Math.sin( ( 1 - t ) * halfTheta ) / sinHalfTheta, ratioB = Math.sin( t * halfTheta ) / sinHalfTheta; this._w = ( w * ratioA + this._w * ratioB ); this._x = ( x * ratioA + this._x * ratioB ); this._y = ( y * ratioA + this._y * ratioB ); this._z = ( z * ratioA + this._z * ratioB ); this._onChangeCallback(); return this; } slerpQuaternions( qa, qb, t ) { return this.copy( qa ).slerp( qb, t ); } random() { // Derived from http://planning.cs.uiuc.edu/node198.html // Note, this source uses w, x, y, z ordering, // so we swap the order below. const u1 = Math.random(); const sqrt1u1 = Math.sqrt( 1 - u1 ); const sqrtu1 = Math.sqrt( u1 ); const u2 = 2 * Math.PI * Math.random(); const u3 = 2 * Math.PI * Math.random(); return this.set( sqrt1u1 * Math.cos( u2 ), sqrtu1 * Math.sin( u3 ), sqrtu1 * Math.cos( u3 ), sqrt1u1 * Math.sin( u2 ), ); } equals( quaternion ) { return ( quaternion._x === this._x ) && ( quaternion._y === this._y ) && ( quaternion._z === this._z ) && ( quaternion._w === this._w ); } fromArray( array, offset = 0 ) { this._x = array[ offset ]; this._y = array[ offset + 1 ]; this._z = array[ offset + 2 ]; this._w = array[ offset + 3 ]; this._onChangeCallback(); return this; } toArray( array = [], offset = 0 ) { array[ offset ] = this._x; array[ offset + 1 ] = this._y; array[ offset + 2 ] = this._z; array[ offset + 3 ] = this._w; return array; } fromBufferAttribute( attribute, index ) { this._x = attribute.getX( index ); this._y = attribute.getY( index ); this._z = attribute.getZ( index ); this._w = attribute.getW( index ); return this; } _onChange( callback ) { this._onChangeCallback = callback; return this; } _onChangeCallback() {} *[ Symbol.iterator ]() { yield this._x; yield this._y; yield this._z; yield this._w; } } class Vector3 { constructor( x = 0, y = 0, z = 0 ) { Vector3.prototype.isVector3 = true; this.x = x; this.y = y; this.z = z; } set( x, y, z ) { if ( z === undefined ) z = this.z; // sprite.scale.set(x,y) this.x = x; this.y = y; this.z = z; return this; } setScalar( scalar ) { this.x = scalar; this.y = scalar; this.z = scalar; return this; } setX( x ) { this.x = x; return this; } setY( y ) { this.y = y; return this; } setZ( z ) { this.z = z; return this; } setComponent( index, value ) { switch ( index ) { case 0: this.x = value; break; case 1: this.y = value; break; case 2: this.z = value; break; default: throw new Error( 'index is out of range: ' + index ); } return this; } getComponent( index ) { switch ( index ) { case 0: return this.x; case 1: return this.y; case 2: return this.z; default: throw new Error( 'index is out of range: ' + index ); } } clone() { return new this.constructor( this.x, this.y, this.z ); } copy( v ) { this.x = v.x; this.y = v.y; this.z = v.z; return this; } add( v ) { this.x += v.x; this.y += v.y; this.z += v.z; return this; } addScalar( s ) { this.x += s; this.y += s; this.z += s; return this; } addVectors( a, b ) { this.x = a.x + b.x; this.y = a.y + b.y; this.z = a.z + b.z; return this; } addScaledVector( v, s ) { this.x += v.x * s; this.y += v.y * s; this.z += v.z * s; return this; } sub( v ) { this.x -= v.x; this.y -= v.y; this.z -= v.z; return this; } subScalar( s ) { this.x -= s; this.y -= s; this.z -= s; return this; } subVectors( a, b ) { this.x = a.x - b.x; this.y = a.y - b.y; this.z = a.z - b.z; return this; } multiply( v ) { this.x *= v.x; this.y *= v.y; this.z *= v.z; return this; } multiplyScalar( scalar ) { this.x *= scalar; this.y *= scalar; this.z *= scalar; return this; } multiplyVectors( a, b ) { this.x = a.x * b.x; this.y = a.y * b.y; this.z = a.z * b.z; return this; } applyEuler( euler ) { return this.applyQuaternion( _quaternion$4.setFromEuler( euler ) ); } applyAxisAngle( axis, angle ) { return this.applyQuaternion( _quaternion$4.setFromAxisAngle( axis, angle ) ); } applyMatrix3( m ) { const x = this.x, y = this.y, z = this.z; const e = m.elements; this.x = e[ 0 ] * x + e[ 3 ] * y + e[ 6 ] * z; this.y = e[ 1 ] * x + e[ 4 ] * y + e[ 7 ] * z; this.z = e[ 2 ] * x + e[ 5 ] * y + e[ 8 ] * z; return this; } applyNormalMatrix( m ) { return this.applyMatrix3( m ).normalize(); } applyMatrix4( m ) { const x = this.x, y = this.y, z = this.z; const e = m.elements; const w = 1 / ( e[ 3 ] * x + e[ 7 ] * y + e[ 11 ] * z + e[ 15 ] ); this.x = ( e[ 0 ] * x + e[ 4 ] * y + e[ 8 ] * z + e[ 12 ] ) * w; this.y = ( e[ 1 ] * x + e[ 5 ] * y + e[ 9 ] * z + e[ 13 ] ) * w; this.z = ( e[ 2 ] * x + e[ 6 ] * y + e[ 10 ] * z + e[ 14 ] ) * w; return this; } applyQuaternion( q ) { const x = this.x, y = this.y, z = this.z; const qx = q.x, qy = q.y, qz = q.z, qw = q.w; // calculate quat * vector const ix = qw * x + qy * z - qz * y; const iy = qw * y + qz * x - qx * z; const iz = qw * z + qx * y - qy * x; const iw = - qx * x - qy * y - qz * z; // calculate result * inverse quat this.x = ix * qw + iw * - qx + iy * - qz - iz * - qy; this.y = iy * qw + iw * - qy + iz * - qx - ix * - qz; this.z = iz * qw + iw * - qz + ix * - qy - iy * - qx; return this; } project( camera ) { return this.applyMatrix4( camera.matrixWorldInverse ).applyMatrix4( camera.projectionMatrix ); } unproject( camera ) { return this.applyMatrix4( camera.projectionMatrixInverse ).applyMatrix4( camera.matrixWorld ); } transformDirection( m ) { // input: THREE.Matrix4 affine matrix // vector interpreted as a direction const x = this.x, y = this.y, z = this.z; const e = m.elements; this.x = e[ 0 ] * x + e[ 4 ] * y + e[ 8 ] * z; this.y = e[ 1 ] * x + e[ 5 ] * y + e[ 9 ] * z; this.z = e[ 2 ] * x + e[ 6 ] * y + e[ 10 ] * z; return this.normalize(); } divide( v ) { this.x /= v.x; this.y /= v.y; this.z /= v.z; return this; } divideScalar( scalar ) { return this.multiplyScalar( 1 / scalar ); } min( v ) { this.x = Math.min( this.x, v.x ); this.y = Math.min( this.y, v.y ); this.z = Math.min( this.z, v.z ); return this; } max( v ) { this.x = Math.max( this.x, v.x ); this.y = Math.max( this.y, v.y ); this.z = Math.max( this.z, v.z ); return this; } clamp( min, max ) { // assumes min < max, componentwise this.x = Math.max( min.x, Math.min( max.x, this.x ) ); this.y = Math.max( min.y, Math.min( max.y, this.y ) ); this.z = Math.max( min.z, Math.min( max.z, this.z ) ); return this; } clampScalar( minVal, maxVal ) { this.x = Math.max( minVal, Math.min( maxVal, this.x ) ); this.y = Math.max( minVal, Math.min( maxVal, this.y ) ); this.z = Math.max( minVal, Math.min( maxVal, this.z ) ); return this; } clampLength( min, max ) { const length = this.length(); return this.divideScalar( length || 1 ).multiplyScalar( Math.max( min, Math.min( max, length ) ) ); } floor() { this.x = Math.floor( this.x ); this.y = Math.floor( this.y ); this.z = Math.floor( this.z ); return this; } ceil() { this.x = Math.ceil( this.x ); this.y = Math.ceil( this.y ); this.z = Math.ceil( this.z ); return this; } round() { this.x = Math.round( this.x ); this.y = Math.round( this.y ); this.z = Math.round( this.z ); return this; } roundToZero() { this.x = ( this.x < 0 ) ? Math.ceil( this.x ) : Math.floor( this.x ); this.y = ( this.y < 0 ) ? Math.ceil( this.y ) : Math.floor( this.y ); this.z = ( this.z < 0 ) ? Math.ceil( this.z ) : Math.floor( this.z ); return this; } negate() { this.x = - this.x; this.y = - this.y; this.z = - this.z; return this; } dot( v ) { return this.x * v.x + this.y * v.y + this.z * v.z; } // TODO lengthSquared? lengthSq() { return this.x * this.x + this.y * this.y + this.z * this.z; } length() { return Math.sqrt( this.x * this.x + this.y * this.y + this.z * this.z ); } manhattanLength() { return Math.abs( this.x ) + Math.abs( this.y ) + Math.abs( this.z ); } normalize() { return this.divideScalar( this.length() || 1 ); } setLength( length ) { return this.normalize().multiplyScalar( length ); } lerp( v, alpha ) { this.x += ( v.x - this.x ) * alpha; this.y += ( v.y - this.y ) * alpha; this.z += ( v.z - this.z ) * alpha; return this; } lerpVectors( v1, v2, alpha ) { this.x = v1.x + ( v2.x - v1.x ) * alpha; this.y = v1.y + ( v2.y - v1.y ) * alpha; this.z = v1.z + ( v2.z - v1.z ) * alpha; return this; } cross( v ) { return this.crossVectors( this, v ); } crossVectors( a, b ) { const ax = a.x, ay = a.y, az = a.z; const bx = b.x, by = b.y, bz = b.z; this.x = ay * bz - az * by; this.y = az * bx - ax * bz; this.z = ax * by - ay * bx; return this; } projectOnVector( v ) { const denominator = v.lengthSq(); if ( denominator === 0 ) return this.set( 0, 0, 0 ); const scalar = v.dot( this ) / denominator; return this.copy( v ).multiplyScalar( scalar ); } projectOnPlane( planeNormal ) { _vector$c.copy( this ).projectOnVector( planeNormal ); return this.sub( _vector$c ); } reflect( normal ) { // reflect incident vector off plane orthogonal to normal // normal is assumed to have unit length return this.sub( _vector$c.copy( normal ).multiplyScalar( 2 * this.dot( normal ) ) ); } angleTo( v ) { const denominator = Math.sqrt( this.lengthSq() * v.lengthSq() ); if ( denominator === 0 ) return Math.PI / 2; const theta = this.dot( v ) / denominator; // clamp, to handle numerical problems return Math.acos( clamp( theta, - 1, 1 ) ); } distanceTo( v ) { return Math.sqrt( this.distanceToSquared( v ) ); } distanceToSquared( v ) { const dx = this.x - v.x, dy = this.y - v.y, dz = this.z - v.z; return dx * dx + dy * dy + dz * dz; } manhattanDistanceTo( v ) { return Math.abs( this.x - v.x ) + Math.abs( this.y - v.y ) + Math.abs( this.z - v.z ); } setFromSpherical( s ) { return this.setFromSphericalCoords( s.radius, s.phi, s.theta ); } setFromSphericalCoords( radius, phi, theta ) { const sinPhiRadius = Math.sin( phi ) * radius; this.x = sinPhiRadius * Math.sin( theta ); this.y = Math.cos( phi ) * radius; this.z = sinPhiRadius * Math.cos( theta ); return this; } setFromCylindrical( c ) { return this.setFromCylindricalCoords( c.radius, c.theta, c.y ); } setFromCylindricalCoords( radius, theta, y ) { this.x = radius * Math.sin( theta ); this.y = y; this.z = radius * Math.cos( theta ); return this; } setFromMatrixPosition( m ) { const e = m.elements; this.x = e[ 12 ]; this.y = e[ 13 ]; this.z = e[ 14 ]; return this; } setFromMatrixScale( m ) { const sx = this.setFromMatrixColumn( m, 0 ).length(); const sy = this.setFromMatrixColumn( m, 1 ).length(); const sz = this.setFromMatrixColumn( m, 2 ).length(); this.x = sx; this.y = sy; this.z = sz; return this; } setFromMatrixColumn( m, index ) { return this.fromArray( m.elements, index * 4 ); } setFromMatrix3Column( m, index ) { return this.fromArray( m.elements, index * 3 ); } setFromEuler( e ) { this.x = e._x; this.y = e._y; this.z = e._z; return this; } equals( v ) { return ( ( v.x === this.x ) && ( v.y === this.y ) && ( v.z === this.z ) ); } fromArray( array, offset = 0 ) { this.x = array[ offset ]; this.y = array[ offset + 1 ]; this.z = array[ offset + 2 ]; return this; } toArray( array = [], offset = 0 ) { array[ offset ] = this.x; array[ offset + 1 ] = this.y; array[ offset + 2 ] = this.z; return array; } fromBufferAttribute( attribute, index ) { this.x = attribute.getX( index ); this.y = attribute.getY( index ); this.z = attribute.getZ( index ); return this; } random() { this.x = Math.random(); this.y = Math.random(); this.z = Math.random(); return this; } randomDirection() { // Derived from https://mathworld.wolfram.com/SpherePointPicking.html const u = ( Math.random() - 0.5 ) * 2; const t = Math.random() * Math.PI * 2; const f = Math.sqrt( 1 - u ** 2 ); this.x = f * Math.cos( t ); this.y = f * Math.sin( t ); this.z = u; return this; } *[ Symbol.iterator ]() { yield this.x; yield this.y; yield this.z; } } const _vector$c = /*@__PURE__*/ new Vector3(); const _quaternion$4 = /*@__PURE__*/ new Quaternion(); class Box3 { constructor( min = new Vector3( + Infinity, + Infinity, + Infinity ), max = new Vector3( - Infinity, - Infinity, - Infinity ) ) { this.isBox3 = true; this.min = min; this.max = max; } set( min, max ) { this.min.copy( min ); this.max.copy( max ); return this; } setFromArray( array ) { let minX = + Infinity; let minY = + Infinity; let minZ = + Infinity; let maxX = - Infinity; let maxY = - Infinity; let maxZ = - Infinity; for ( let i = 0, l = array.length; i < l; i += 3 ) { const x = array[ i ]; const y = array[ i + 1 ]; const z = array[ i + 2 ]; if ( x < minX ) minX = x; if ( y < minY ) minY = y; if ( z < minZ ) minZ = z; if ( x > maxX ) maxX = x; if ( y > maxY ) maxY = y; if ( z > maxZ ) maxZ = z; } this.min.set( minX, minY, minZ ); this.max.set( maxX, maxY, maxZ ); return this; } setFromBufferAttribute( attribute ) { let minX = + Infinity; let minY = + Infinity; let minZ = + Infinity; let maxX = - Infinity; let maxY = - Infinity; let maxZ = - Infinity; for ( let i = 0, l = attribute.count; i < l; i ++ ) { const x = attribute.getX( i ); const y = attribute.getY( i ); const z = attribute.getZ( i ); if ( x < minX ) minX = x; if ( y < minY ) minY = y; if ( z < minZ ) minZ = z; if ( x > maxX ) maxX = x; if ( y > maxY ) maxY = y; if ( z > maxZ ) maxZ = z; } this.min.set( minX, minY, minZ ); this.max.set( maxX, maxY, maxZ ); return this; } setFromPoints( points ) { this.makeEmpty(); for ( let i = 0, il = points.length; i < il; i ++ ) { this.expandByPoint( points[ i ] ); } return this; } setFromCenterAndSize( center, size ) { const halfSize = _vector$b.copy( size ).multiplyScalar( 0.5 ); this.min.copy( center ).sub( halfSize ); this.max.copy( center ).add( halfSize ); return this; } setFromObject( object, precise = false ) { this.makeEmpty(); return this.expandByObject( object, precise ); } clone() { return new this.constructor().copy( this ); } copy( box ) { this.min.copy( box.min ); this.max.copy( box.max ); return this; } makeEmpty() { this.min.x = this.min.y = this.min.z = + Infinity; this.max.x = this.max.y = this.max.z = - Infinity; return this; } isEmpty() { // this is a more robust check for empty than ( volume <= 0 ) because volume can get positive with two negative axes return ( this.max.x < this.min.x ) || ( this.max.y < this.min.y ) || ( this.max.z < this.min.z ); } getCenter( target ) { return this.isEmpty() ? target.set( 0, 0, 0 ) : target.addVectors( this.min, this.max ).multiplyScalar( 0.5 ); } getSize( target ) { return this.isEmpty() ? target.set( 0, 0, 0 ) : target.subVectors( this.max, this.min ); } expandByPoint( point ) { this.min.min( point ); this.max.max( point ); return this; } expandByVector( vector ) { this.min.sub( vector ); this.max.add( vector ); return this; } expandByScalar( scalar ) { this.min.addScalar( - scalar ); this.max.addScalar( scalar ); return this; } expandByObject( object, precise = false ) { // Computes the world-axis-aligned bounding box of an object (including its children), // accounting for both the object's, and children's, world transforms object.updateWorldMatrix( false, false ); const geometry = object.geometry; if ( geometry !== undefined ) { if ( precise && geometry.attributes != undefined && geometry.attributes.position !== undefined ) { const position = geometry.attributes.position; for ( let i = 0, l = position.count; i < l; i ++ ) { _vector$b.fromBufferAttribute( position, i ).applyMatrix4( object.matrixWorld ); this.expandByPoint( _vector$b ); } } else { if ( geometry.boundingBox === null ) { geometry.computeBoundingBox(); } _box$3.copy( geometry.boundingBox ); _box$3.applyMatrix4( object.matrixWorld ); this.union( _box$3 ); } } const children = object.children; for ( let i = 0, l = children.length; i < l; i ++ ) { this.expandByObject( children[ i ], precise ); } return this; } containsPoint( point ) { return point.x < this.min.x || point.x > this.max.x || point.y < this.min.y || point.y > this.max.y || point.z < this.min.z || point.z > this.max.z ? false : true; } containsBox( box ) { return this.min.x <= box.min.x && box.max.x <= this.max.x && this.min.y <= box.min.y && box.max.y <= this.max.y && this.min.z <= box.min.z && box.max.z <= this.max.z; } getParameter( point, target ) { // This can potentially have a divide by zero if the box // has a size dimension of 0. return target.set( ( point.x - this.min.x ) / ( this.max.x - this.min.x ), ( point.y - this.min.y ) / ( this.max.y - this.min.y ), ( point.z - this.min.z ) / ( this.max.z - this.min.z ) ); } intersectsBox( box ) { // using 6 splitting planes to rule out intersections. return box.max.x < this.min.x || box.min.x > this.max.x || box.max.y < this.min.y || box.min.y > this.max.y || box.max.z < this.min.z || box.min.z > this.max.z ? false : true; } intersectsSphere( sphere ) { // Find the point on the AABB closest to the sphere center. this.clampPoint( sphere.center, _vector$b ); // If that point is inside the sphere, the AABB and sphere intersect. return _vector$b.distanceToSquared( sphere.center ) <= ( sphere.radius * sphere.radius ); } intersectsPlane( plane ) { // We compute the minimum and maximum dot product values. If those values // are on the same side (back or front) of the plane, then there is no intersection. let min, max; if ( plane.normal.x > 0 ) { min = plane.normal.x * this.min.x; max = plane.normal.x * this.max.x; } else { min = plane.normal.x * this.max.x; max = plane.normal.x * this.min.x; } if ( plane.normal.y > 0 ) { min += plane.normal.y * this.min.y; max += plane.normal.y * this.max.y; } else { min += plane.normal.y * this.max.y; max += plane.normal.y * this.min.y; } if ( plane.normal.z > 0 ) { min += plane.normal.z * this.min.z; max += plane.normal.z * this.max.z; } else { min += plane.normal.z * this.max.z; max += plane.normal.z * this.min.z; } return ( min <= - plane.constant && max >= - plane.constant ); } intersectsTriangle( triangle ) { if ( this.isEmpty() ) { return false; } // compute box center and extents this.getCenter( _center ); _extents.subVectors( this.max, _center ); // translate triangle to aabb origin _v0$2.subVectors( triangle.a, _center ); _v1$7.subVectors( triangle.b, _center ); _v2$4.subVectors( triangle.c, _center ); // compute edge vectors for triangle _f0.subVectors( _v1$7, _v0$2 ); _f1.subVectors( _v2$4, _v1$7 ); _f2.subVectors( _v0$2, _v2$4 ); // test against axes that are given by cross product combinations of the edges of the triangle and the edges of the aabb // make an axis testing of each of the 3 sides of the aabb against each of the 3 sides of the triangle = 9 axis of separation // axis_ij = u_i x f_j (u0, u1, u2 = face normals of aabb = x,y,z axes vectors since aabb is axis aligned) let axes = [ 0, - _f0.z, _f0.y, 0, - _f1.z, _f1.y, 0, - _f2.z, _f2.y, _f0.z, 0, - _f0.x, _f1.z, 0, - _f1.x, _f2.z, 0, - _f2.x, - _f0.y, _f0.x, 0, - _f1.y, _f1.x, 0, - _f2.y, _f2.x, 0 ]; if ( ! satForAxes( axes, _v0$2, _v1$7, _v2$4, _extents ) ) { return false; } // test 3 face normals from the aabb axes = [ 1, 0, 0, 0, 1, 0, 0, 0, 1 ]; if ( ! satForAxes( axes, _v0$2, _v1$7, _v2$4, _extents ) ) { return false; } // finally testing the face normal of the triangle // use already existing triangle edge vectors here _triangleNormal.crossVectors( _f0, _f1 ); axes = [ _triangleNormal.x, _triangleNormal.y, _triangleNormal.z ]; return satForAxes( axes, _v0$2, _v1$7, _v2$4, _extents ); } clampPoint( point, target ) { return target.copy( point ).clamp( this.min, this.max ); } distanceToPoint( point ) { const clampedPoint = _vector$b.copy( point ).clamp( this.min, this.max ); return clampedPoint.sub( point ).length(); } getBoundingSphere( target ) { this.getCenter( target.center ); target.radius = this.getSize( _vector$b ).length() * 0.5; return target; } intersect( box ) { this.min.max( box.min ); this.max.min( box.max ); // ensure that if there is no overlap, the result is fully empty, not slightly empty with non-inf/+inf values that will cause subsequence intersects to erroneously return valid values. if ( this.isEmpty() ) this.makeEmpty(); return this; } union( box ) { this.min.min( box.min ); this.max.max( box.max ); return this; } applyMatrix4( matrix ) { // transform of empty box is an empty box. if ( this.isEmpty() ) return this; // NOTE: I am using a binary pattern to specify all 2^3 combinations below _points[ 0 ].set( this.min.x, this.min.y, this.min.z ).applyMatrix4( matrix ); // 000 _points[ 1 ].set( this.min.x, this.min.y, this.max.z ).applyMatrix4( matrix ); // 001 _points[ 2 ].set( this.min.x, this.max.y, this.min.z ).applyMatrix4( matrix ); // 010 _points[ 3 ].set( this.min.x, this.max.y, this.max.z ).applyMatrix4( matrix ); // 011 _points[ 4 ].set( this.max.x, this.min.y, this.min.z ).applyMatrix4( matrix ); // 100 _points[ 5 ].set( this.max.x, this.min.y, this.max.z ).applyMatrix4( matrix ); // 101 _points[ 6 ].set( this.max.x, this.max.y, this.min.z ).applyMatrix4( matrix ); // 110 _points[ 7 ].set( this.max.x, this.max.y, this.max.z ).applyMatrix4( matrix ); // 111 this.setFromPoints( _points ); return this; } translate( offset ) { this.min.add( offset ); this.max.add( offset ); return this; } equals( box ) { return box.min.equals( this.min ) && box.max.equals( this.max ); } } const _points = [ /*@__PURE__*/ new Vector3(), /*@__PURE__*/ new Vector3(), /*@__PURE__*/ new Vector3(), /*@__PURE__*/ new Vector3(), /*@__PURE__*/ new Vector3(), /*@__PURE__*/ new Vector3(), /*@__PURE__*/ new Vector3(), /*@__PURE__*/ new Vector3() ]; const _vector$b = /*@__PURE__*/ new Vector3(); const _box$3 = /*@__PURE__*/ new Box3(); // triangle centered vertices const _v0$2 = /*@__PURE__*/ new Vector3(); const _v1$7 = /*@__PURE__*/ new Vector3(); const _v2$4 = /*@__PURE__*/ new Vector3(); // triangle edge vectors const _f0 = /*@__PURE__*/ new Vector3(); const _f1 = /*@__PURE__*/ new Vector3(); const _f2 = /*@__PURE__*/ new Vector3(); const _center = /*@__PURE__*/ new Vector3(); const _extents = /*@__PURE__*/ new Vector3(); const _triangleNormal = /*@__PURE__*/ new Vector3(); const _testAxis = /*@__PURE__*/ new Vector3(); function satForAxes( axes, v0, v1, v2, extents ) { for ( let i = 0, j = axes.length - 3; i <= j; i += 3 ) { _testAxis.fromArray( axes, i ); // project the aabb onto the separating axis const r = extents.x * Math.abs( _testAxis.x ) + extents.y * Math.abs( _testAxis.y ) + extents.z * Math.abs( _testAxis.z ); // project all 3 vertices of the triangle onto the separating axis const p0 = v0.dot( _testAxis ); const p1 = v1.dot( _testAxis ); const p2 = v2.dot( _testAxis ); // actual test, basically see if either of the most extreme of the triangle points intersects r if ( Math.max( - Math.max( p0, p1, p2 ), Math.min( p0, p1, p2 ) ) > r ) { // points of the projected triangle are outside the projected half-length of the aabb // the axis is separating and we can exit return false; } } return true; } const _box$2 = /*@__PURE__*/ new Box3(); const _v1$6 = /*@__PURE__*/ new Vector3(); const _v2$3 = /*@__PURE__*/ new Vector3(); class Sphere { constructor( center = new Vector3(), radius = - 1 ) { this.center = center; this.radius = radius; } set( center, radius ) { this.center.copy( center ); this.radius = radius; return this; } setFromPoints( points, optionalCenter ) { const center = this.center; if ( optionalCenter !== undefined ) { center.copy( optionalCenter ); } else { _box$2.setFromPoints( points ).getCenter( center ); } let maxRadiusSq = 0; for ( let i = 0, il = points.length; i < il; i ++ ) { maxRadiusSq = Math.max( maxRadiusSq, center.distanceToSquared( points[ i ] ) ); } this.radius = Math.sqrt( maxRadiusSq ); return this; } copy( sphere ) { this.center.copy( sphere.center ); this.radius = sphere.radius; return this; } isEmpty() { return ( this.radius < 0 ); } makeEmpty() { this.center.set( 0, 0, 0 ); this.radius = - 1; return this; } containsPoint( point ) { return ( point.distanceToSquared( this.center ) <= ( this.radius * this.radius ) ); } distanceToPoint( point ) { return ( point.distanceTo( this.center ) - this.radius ); } intersectsSphere( sphere ) { const radiusSum = this.radius + sphere.radius; return sphere.center.distanceToSquared( this.center ) <= ( radiusSum * radiusSum ); } intersectsBox( box ) { return box.intersectsSphere( this ); } intersectsPlane( plane ) { return Math.abs( plane.distanceToPoint( this.center ) ) <= this.radius; } clampPoint( point, target ) { const deltaLengthSq = this.center.distanceToSquared( point ); target.copy( point ); if ( deltaLengthSq > ( this.radius * this.radius ) ) { target.sub( this.center ).normalize(); target.multiplyScalar( this.radius ).add( this.center ); } return target; } getBoundingBox( target ) { if ( this.isEmpty() ) { // Empty sphere produces empty bounding box target.makeEmpty(); return target; } target.set( this.center, this.center ); target.expandByScalar( this.radius ); return target; } applyMatrix4( matrix ) { this.center.applyMatrix4( matrix ); this.radius = this.radius * matrix.getMaxScaleOnAxis(); return this; } translate( offset ) { this.center.add( offset ); return this; } expandByPoint( point ) { if ( this.isEmpty() ) { this.center.copy( point ); this.radius = 0; return this; } _v1$6.subVectors( point, this.center ); const lengthSq = _v1$6.lengthSq(); if ( lengthSq > ( this.radius * this.radius ) ) { // calculate the minimal sphere const length = Math.sqrt( lengthSq ); const delta = ( length - this.radius ) * 0.5; this.center.addScaledVector( _v1$6, delta / length ); this.radius += delta; } return this; } union( sphere ) { if ( sphere.isEmpty() ) { return this; } if ( this.isEmpty() ) { this.copy( sphere ); return this; } if ( this.center.equals( sphere.center ) === true ) { this.radius = Math.max( this.radius, sphere.radius ); } else { _v2$3.subVectors( sphere.center, this.center ).setLength( sphere.radius ); this.expandByPoint( _v1$6.copy( sphere.center ).add( _v2$3 ) ); this.expandByPoint( _v1$6.copy( sphere.center ).sub( _v2$3 ) ); } return this; } equals( sphere ) { return sphere.center.equals( this.center ) && ( sphere.radius === this.radius ); } clone() { return new this.constructor().copy( this ); } } const _vector$a = /*@__PURE__*/ new Vector3(); const _segCenter = /*@__PURE__*/ new Vector3(); const _segDir = /*@__PURE__*/ new Vector3(); const _diff = /*@__PURE__*/ new Vector3(); const _edge1 = /*@__PURE__*/ new Vector3(); const _edge2 = /*@__PURE__*/ new Vector3(); const _normal$1 = /*@__PURE__*/ new Vector3(); class Ray { constructor( origin = new Vector3(), direction = new Vector3( 0, 0, - 1 ) ) { this.origin = origin; this.direction = direction; } set( origin, direction ) { this.origin.copy( origin ); this.direction.copy( direction ); return this; } copy( ray ) { this.origin.copy( ray.origin ); this.direction.copy( ray.direction ); return this; } at( t, target ) { return target.copy( this.direction ).multiplyScalar( t ).add( this.origin ); } lookAt( v ) { this.direction.copy( v ).sub( this.origin ).normalize(); return this; } recast( t ) { this.origin.copy( this.at( t, _vector$a ) ); return this; } closestPointToPoint( point, target ) { target.subVectors( point, this.origin ); const directionDistance = target.dot( this.direction ); if ( directionDistance < 0 ) { return target.copy( this.origin ); } return target.copy( this.direction ).multiplyScalar( directionDistance ).add( this.origin ); } distanceToPoint( point ) { return Math.sqrt( this.distanceSqToPoint( point ) ); } distanceSqToPoint( point ) { const directionDistance = _vector$a.subVectors( point, this.origin ).dot( this.direction ); // point behind the ray if ( directionDistance < 0 ) { return this.origin.distanceToSquared( point ); } _vector$a.copy( this.direction ).multiplyScalar( directionDistance ).add( this.origin ); return _vector$a.distanceToSquared( point ); } distanceSqToSegment( v0, v1, optionalPointOnRay, optionalPointOnSegment ) { // from https://github.com/pmjoniak/GeometricTools/blob/master/GTEngine/Include/Mathematics/GteDistRaySegment.h // It returns the min distance between the ray and the segment // defined by v0 and v1 // It can also set two optional targets : // - The closest point on the ray // - The closest point on the segment _segCenter.copy( v0 ).add( v1 ).multiplyScalar( 0.5 ); _segDir.copy( v1 ).sub( v0 ).normalize(); _diff.copy( this.origin ).sub( _segCenter ); const segExtent = v0.distanceTo( v1 ) * 0.5; const a01 = - this.direction.dot( _segDir ); const b0 = _diff.dot( this.direction ); const b1 = - _diff.dot( _segDir ); const c = _diff.lengthSq(); const det = Math.abs( 1 - a01 * a01 ); let s0, s1, sqrDist, extDet; if ( det > 0 ) { // The ray and segment are not parallel. s0 = a01 * b1 - b0; s1 = a01 * b0 - b1; extDet = segExtent * det; if ( s0 >= 0 ) { if ( s1 >= - extDet ) { if ( s1 <= extDet ) { // region 0 // Minimum at interior points of ray and segment. const invDet = 1 / det; s0 *= invDet; s1 *= invDet; sqrDist = s0 * ( s0 + a01 * s1 + 2 * b0 ) + s1 * ( a01 * s0 + s1 + 2 * b1 ) + c; } else { // region 1 s1 = segExtent; s0 = Math.max( 0, - ( a01 * s1 + b0 ) ); sqrDist = - s0 * s0 + s1 * ( s1 + 2 * b1 ) + c; } } else { // region 5 s1 = - segExtent; s0 = Math.max( 0, - ( a01 * s1 + b0 ) ); sqrDist = - s0 * s0 + s1 * ( s1 + 2 * b1 ) + c; } } else { if ( s1 <= - extDet ) { // region 4 s0 = Math.max( 0, - ( - a01 * segExtent + b0 ) ); s1 = ( s0 > 0 ) ? - segExtent : Math.min( Math.max( - segExtent, - b1 ), segExtent ); sqrDist = - s0 * s0 + s1 * ( s1 + 2 * b1 ) + c; } else if ( s1 <= extDet ) { // region 3 s0 = 0; s1 = Math.min( Math.max( - segExtent, - b1 ), segExtent ); sqrDist = s1 * ( s1 + 2 * b1 ) + c; } else { // region 2 s0 = Math.max( 0, - ( a01 * segExtent + b0 ) ); s1 = ( s0 > 0 ) ? segExtent : Math.min( Math.max( - segExtent, - b1 ), segExtent ); sqrDist = - s0 * s0 + s1 * ( s1 + 2 * b1 ) + c; } } } else { // Ray and segment are parallel. s1 = ( a01 > 0 ) ? - segExtent : segExtent; s0 = Math.max( 0, - ( a01 * s1 + b0 ) ); sqrDist = - s0 * s0 + s1 * ( s1 + 2 * b1 ) + c; } if ( optionalPointOnRay ) { optionalPointOnRay.copy( this.direction ).multiplyScalar( s0 ).add( this.origin ); } if ( optionalPointOnSegment ) { optionalPointOnSegment.copy( _segDir ).multiplyScalar( s1 ).add( _segCenter ); } return sqrDist; } intersectSphere( sphere, target ) { _vector$a.subVectors( sphere.center, this.origin ); const tca = _vector$a.dot( this.direction ); const d2 = _vector$a.dot( _vector$a ) - tca * tca; const radius2 = sphere.radius * sphere.radius; if ( d2 > radius2 ) return null; const thc = Math.sqrt( radius2 - d2 ); // t0 = first intersect point - entrance on front of sphere const t0 = tca - thc; // t1 = second intersect point - exit point on back of sphere const t1 = tca + thc; // test to see if both t0 and t1 are behind the ray - if so, return null if ( t0 < 0 && t1 < 0 ) return null; // test to see if t0 is behind the ray: // if it is, the ray is inside the sphere, so return the second exit point scaled by t1, // in order to always return an intersect point that is in front of the ray. if ( t0 < 0 ) return this.at( t1, target ); // else t0 is in front of the ray, so return the first collision point scaled by t0 return this.at( t0, target ); } intersectsSphere( sphere ) { return this.distanceSqToPoint( sphere.center ) <= ( sphere.radius * sphere.radius ); } distanceToPlane( plane ) { const denominator = plane.normal.dot( this.direction ); if ( denominator === 0 ) { // line is coplanar, return origin if ( plane.distanceToPoint( this.origin ) === 0 ) { return 0; } // Null is preferable to undefined since undefined means.... it is undefined return null; } const t = - ( this.origin.dot( plane.normal ) + plane.constant ) / denominator; // Return if the ray never intersects the plane return t >= 0 ? t : null; } intersectPlane( plane, target ) { const t = this.distanceToPlane( plane ); if ( t === null ) { return null; } return this.at( t, target ); } intersectsPlane( plane ) { // check if the ray lies on the plane first const distToPoint = plane.distanceToPoint( this.origin ); if ( distToPoint === 0 ) { return true; } const denominator = plane.normal.dot( this.direction ); if ( denominator * distToPoint < 0 ) { return true; } // ray origin is behind the plane (and is pointing behind it) return false; } intersectBox( box, target ) { let tmin, tmax, tymin, tymax, tzmin, tzmax; const invdirx = 1 / this.direction.x, invdiry = 1 / this.direction.y, invdirz = 1 / this.direction.z; const origin = this.origin; if ( invdirx >= 0 ) { tmin = ( box.min.x - origin.x ) * invdirx; tmax = ( box.max.x - origin.x ) * invdirx; } else { tmin = ( box.max.x - origin.x ) * invdirx; tmax = ( box.min.x - origin.x ) * invdirx; } if ( invdiry >= 0 ) { tymin = ( box.min.y - origin.y ) * invdiry; tymax = ( box.max.y - origin.y ) * invdiry; } else { tymin = ( box.max.y - origin.y ) * invdiry; tymax = ( box.min.y - origin.y ) * invdiry; } if ( ( tmin > tymax ) || ( tymin > tmax ) ) return null; if ( tymin > tmin || isNaN( tmin ) ) tmin = tymin; if ( tymax < tmax || isNaN( tmax ) ) tmax = tymax; if ( invdirz >= 0 ) { tzmin = ( box.min.z - origin.z ) * invdirz; tzmax = ( box.max.z - origin.z ) * invdirz; } else { tzmin = ( box.max.z - origin.z ) * invdirz; tzmax = ( box.min.z - origin.z ) * invdirz; } if ( ( tmin > tzmax ) || ( tzmin > tmax ) ) return null; if ( tzmin > tmin || tmin !== tmin ) tmin = tzmin; if ( tzmax < tmax || tmax !== tmax ) tmax = tzmax; //return point closest to the ray (positive side) if ( tmax < 0 ) return null; return this.at( tmin >= 0 ? tmin : tmax, target ); } intersectsBox( box ) { return this.intersectBox( box, _vector$a ) !== null; } intersectTriangle( a, b, c, backfaceCulling, target ) { // Compute the offset origin, edges, and normal. // from https://github.com/pmjoniak/GeometricTools/blob/master/GTEngine/Include/Mathematics/GteIntrRay3Triangle3.h _edge1.subVectors( b, a ); _edge2.subVectors( c, a ); _normal$1.crossVectors( _edge1, _edge2 ); // Solve Q + t*D = b1*E1 + b2*E2 (Q = kDiff, D = ray direction, // E1 = kEdge1, E2 = kEdge2, N = Cross(E1,E2)) by // |Dot(D,N)|*b1 = sign(Dot(D,N))*Dot(D,Cross(Q,E2)) // |Dot(D,N)|*b2 = sign(Dot(D,N))*Dot(D,Cross(E1,Q)) // |Dot(D,N)|*t = -sign(Dot(D,N))*Dot(Q,N) let DdN = this.direction.dot( _normal$1 ); let sign; if ( DdN > 0 ) { if ( backfaceCulling ) return null; sign = 1; } else if ( DdN < 0 ) { sign = - 1; DdN = - DdN; } else { return null; } _diff.subVectors( this.origin, a ); const DdQxE2 = sign * this.direction.dot( _edge2.crossVectors( _diff, _edge2 ) ); // b1 < 0, no intersection if ( DdQxE2 < 0 ) { return null; } const DdE1xQ = sign * this.direction.dot( _edge1.cross( _diff ) ); // b2 < 0, no intersection if ( DdE1xQ < 0 ) { return null; } // b1+b2 > 1, no intersection if ( DdQxE2 + DdE1xQ > DdN ) { return null; } // Line intersects triangle, check if ray does. const QdN = - sign * _diff.dot( _normal$1 ); // t < 0, no intersection if ( QdN < 0 ) { return null; } // Ray intersects triangle. return this.at( QdN / DdN, target ); } applyMatrix4( matrix4 ) { this.origin.applyMatrix4( matrix4 ); this.direction.transformDirection( matrix4 ); return this; } equals( ray ) { return ray.origin.equals( this.origin ) && ray.direction.equals( this.direction ); } clone() { return new this.constructor().copy( this ); } } class Matrix4 { constructor() { Matrix4.prototype.isMatrix4 = true; this.elements = [ 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1 ]; } set( n11, n12, n13, n14, n21, n22, n23, n24, n31, n32, n33, n34, n41, n42, n43, n44 ) { const te = this.elements; te[ 0 ] = n11; te[ 4 ] = n12; te[ 8 ] = n13; te[ 12 ] = n14; te[ 1 ] = n21; te[ 5 ] = n22; te[ 9 ] = n23; te[ 13 ] = n24; te[ 2 ] = n31; te[ 6 ] = n32; te[ 10 ] = n33; te[ 14 ] = n34; te[ 3 ] = n41; te[ 7 ] = n42; te[ 11 ] = n43; te[ 15 ] = n44; return this; } identity() { this.set( 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1 ); return this; } clone() { return new Matrix4().fromArray( this.elements ); } copy( m ) { const te = this.elements; const me = m.elements; te[ 0 ] = me[ 0 ]; te[ 1 ] = me[ 1 ]; te[ 2 ] = me[ 2 ]; te[ 3 ] = me[ 3 ]; te[ 4 ] = me[ 4 ]; te[ 5 ] = me[ 5 ]; te[ 6 ] = me[ 6 ]; te[ 7 ] = me[ 7 ]; te[ 8 ] = me[ 8 ]; te[ 9 ] = me[ 9 ]; te[ 10 ] = me[ 10 ]; te[ 11 ] = me[ 11 ]; te[ 12 ] = me[ 12 ]; te[ 13 ] = me[ 13 ]; te[ 14 ] = me[ 14 ]; te[ 15 ] = me[ 15 ]; return this; } copyPosition( m ) { const te = this.elements, me = m.elements; te[ 12 ] = me[ 12 ]; te[ 13 ] = me[ 13 ]; te[ 14 ] = me[ 14 ]; return this; } setFromMatrix3( m ) { const me = m.elements; this.set( me[ 0 ], me[ 3 ], me[ 6 ], 0, me[ 1 ], me[ 4 ], me[ 7 ], 0, me[ 2 ], me[ 5 ], me[ 8 ], 0, 0, 0, 0, 1 ); return this; } extractBasis( xAxis, yAxis, zAxis ) { xAxis.setFromMatrixColumn( this, 0 ); yAxis.setFromMatrixColumn( this, 1 ); zAxis.setFromMatrixColumn( this, 2 ); return this; } makeBasis( xAxis, yAxis, zAxis ) { this.set( xAxis.x, yAxis.x, zAxis.x, 0, xAxis.y, yAxis.y, zAxis.y, 0, xAxis.z, yAxis.z, zAxis.z, 0, 0, 0, 0, 1 ); return this; } extractRotation( m ) { // this method does not support reflection matrices const te = this.elements; const me = m.elements; const scaleX = 1 / _v1$5.setFromMatrixColumn( m, 0 ).length(); const scaleY = 1 / _v1$5.setFromMatrixColumn( m, 1 ).length(); const scaleZ = 1 / _v1$5.setFromMatrixColumn( m, 2 ).length(); te[ 0 ] = me[ 0 ] * scaleX; te[ 1 ] = me[ 1 ] * scaleX; te[ 2 ] = me[ 2 ] * scaleX; te[ 3 ] = 0; te[ 4 ] = me[ 4 ] * scaleY; te[ 5 ] = me[ 5 ] * scaleY; te[ 6 ] = me[ 6 ] * scaleY; te[ 7 ] = 0; te[ 8 ] = me[ 8 ] * scaleZ; te[ 9 ] = me[ 9 ] * scaleZ; te[ 10 ] = me[ 10 ] * scaleZ; te[ 11 ] = 0; te[ 12 ] = 0; te[ 13 ] = 0; te[ 14 ] = 0; te[ 15 ] = 1; return this; } makeRotationFromEuler( euler ) { const te = this.elements; const x = euler.x, y = euler.y, z = euler.z; const a = Math.cos( x ), b = Math.sin( x ); const c = Math.cos( y ), d = Math.sin( y ); const e = Math.cos( z ), f = Math.sin( z ); if ( euler.order === 'XYZ' ) { const ae = a * e, af = a * f, be = b * e, bf = b * f; te[ 0 ] = c * e; te[ 4 ] = - c * f; te[ 8 ] = d; te[ 1 ] = af + be * d; te[ 5 ] = ae - bf * d; te[ 9 ] = - b * c; te[ 2 ] = bf - ae * d; te[ 6 ] = be + af * d; te[ 10 ] = a * c; } else if ( euler.order === 'YXZ' ) { const ce = c * e, cf = c * f, de = d * e, df = d * f; te[ 0 ] = ce + df * b; te[ 4 ] = de * b - cf; te[ 8 ] = a * d; te[ 1 ] = a * f; te[ 5 ] = a * e; te[ 9 ] = - b; te[ 2 ] = cf * b - de; te[ 6 ] = df + ce * b; te[ 10 ] = a * c; } else if ( euler.order === 'ZXY' ) { const ce = c * e, cf = c * f, de = d * e, df = d * f; te[ 0 ] = ce - df * b; te[ 4 ] = - a * f; te[ 8 ] = de + cf * b; te[ 1 ] = cf + de * b; te[ 5 ] = a * e; te[ 9 ] = df - ce * b; te[ 2 ] = - a * d; te[ 6 ] = b; te[ 10 ] = a * c; } else if ( euler.order === 'ZYX' ) { const ae = a * e, af = a * f, be = b * e, bf = b * f; te[ 0 ] = c * e; te[ 4 ] = be * d - af; te[ 8 ] = ae * d + bf; te[ 1 ] = c * f; te[ 5 ] = bf * d + ae; te[ 9 ] = af * d - be; te[ 2 ] = - d; te[ 6 ] = b * c; te[ 10 ] = a * c; } else if ( euler.order === 'YZX' ) { const ac = a * c, ad = a * d, bc = b * c, bd = b * d; te[ 0 ] = c * e; te[ 4 ] = bd - ac * f; te[ 8 ] = bc * f + ad; te[ 1 ] = f; te[ 5 ] = a * e; te[ 9 ] = - b * e; te[ 2 ] = - d * e; te[ 6 ] = ad * f + bc; te[ 10 ] = ac - bd * f; } else if ( euler.order === 'XZY' ) { const ac = a * c, ad = a * d, bc = b * c, bd = b * d; te[ 0 ] = c * e; te[ 4 ] = - f; te[ 8 ] = d * e; te[ 1 ] = ac * f + bd; te[ 5 ] = a * e; te[ 9 ] = ad * f - bc; te[ 2 ] = bc * f - ad; te[ 6 ] = b * e; te[ 10 ] = bd * f + ac; } // bottom row te[ 3 ] = 0; te[ 7 ] = 0; te[ 11 ] = 0; // last column te[ 12 ] = 0; te[ 13 ] = 0; te[ 14 ] = 0; te[ 15 ] = 1; return this; } makeRotationFromQuaternion( q ) { return this.compose( _zero, q, _one ); } lookAt( eye, target, up ) { const te = this.elements; _z.subVectors( eye, target ); if ( _z.lengthSq() === 0 ) { // eye and target are in the same position _z.z = 1; } _z.normalize(); _x.crossVectors( up, _z ); if ( _x.lengthSq() === 0 ) { // up and z are parallel if ( Math.abs( up.z ) === 1 ) { _z.x += 0.0001; } else { _z.z += 0.0001; } _z.normalize(); _x.crossVectors( up, _z ); } _x.normalize(); _y.crossVectors( _z, _x ); te[ 0 ] = _x.x; te[ 4 ] = _y.x; te[ 8 ] = _z.x; te[ 1 ] = _x.y; te[ 5 ] = _y.y; te[ 9 ] = _z.y; te[ 2 ] = _x.z; te[ 6 ] = _y.z; te[ 10 ] = _z.z; return this; } multiply( m ) { return this.multiplyMatrices( this, m ); } premultiply( m ) { return this.multiplyMatrices( m, this ); } multiplyMatrices( a, b ) { const ae = a.elements; const be = b.elements; const te = this.elements; const a11 = ae[ 0 ], a12 = ae[ 4 ], a13 = ae[ 8 ], a14 = ae[ 12 ]; const a21 = ae[ 1 ], a22 = ae[ 5 ], a23 = ae[ 9 ], a24 = ae[ 13 ]; const a31 = ae[ 2 ], a32 = ae[ 6 ], a33 = ae[ 10 ], a34 = ae[ 14 ]; const a41 = ae[ 3 ], a42 = ae[ 7 ], a43 = ae[ 11 ], a44 = ae[ 15 ]; const b11 = be[ 0 ], b12 = be[ 4 ], b13 = be[ 8 ], b14 = be[ 12 ]; const b21 = be[ 1 ], b22 = be[ 5 ], b23 = be[ 9 ], b24 = be[ 13 ]; const b31 = be[ 2 ], b32 = be[ 6 ], b33 = be[ 10 ], b34 = be[ 14 ]; const b41 = be[ 3 ], b42 = be[ 7 ], b43 = be[ 11 ], b44 = be[ 15 ]; te[ 0 ] = a11 * b11 + a12 * b21 + a13 * b31 + a14 * b41; te[ 4 ] = a11 * b12 + a12 * b22 + a13 * b32 + a14 * b42; te[ 8 ] = a11 * b13 + a12 * b23 + a13 * b33 + a14 * b43; te[ 12 ] = a11 * b14 + a12 * b24 + a13 * b34 + a14 * b44; te[ 1 ] = a21 * b11 + a22 * b21 + a23 * b31 + a24 * b41; te[ 5 ] = a21 * b12 + a22 * b22 + a23 * b32 + a24 * b42; te[ 9 ] = a21 * b13 + a22 * b23 + a23 * b33 + a24 * b43; te[ 13 ] = a21 * b14 + a22 * b24 + a23 * b34 + a24 * b44; te[ 2 ] = a31 * b11 + a32 * b21 + a33 * b31 + a34 * b41; te[ 6 ] = a31 * b12 + a32 * b22 + a33 * b32 + a34 * b42; te[ 10 ] = a31 * b13 + a32 * b23 + a33 * b33 + a34 * b43; te[ 14 ] = a31 * b14 + a32 * b24 + a33 * b34 + a34 * b44; te[ 3 ] = a41 * b11 + a42 * b21 + a43 * b31 + a44 * b41; te[ 7 ] = a41 * b12 + a42 * b22 + a43 * b32 + a44 * b42; te[ 11 ] = a41 * b13 + a42 * b23 + a43 * b33 + a44 * b43; te[ 15 ] = a41 * b14 + a42 * b24 + a43 * b34 + a44 * b44; return this; } multiplyScalar( s ) { const te = this.elements; te[ 0 ] *= s; te[ 4 ] *= s; te[ 8 ] *= s; te[ 12 ] *= s; te[ 1 ] *= s; te[ 5 ] *= s; te[ 9 ] *= s; te[ 13 ] *= s; te[ 2 ] *= s; te[ 6 ] *= s; te[ 10 ] *= s; te[ 14 ] *= s; te[ 3 ] *= s; te[ 7 ] *= s; te[ 11 ] *= s; te[ 15 ] *= s; return this; } determinant() { const te = this.elements; const n11 = te[ 0 ], n12 = te[ 4 ], n13 = te[ 8 ], n14 = te[ 12 ]; const n21 = te[ 1 ], n22 = te[ 5 ], n23 = te[ 9 ], n24 = te[ 13 ]; const n31 = te[ 2 ], n32 = te[ 6 ], n33 = te[ 10 ], n34 = te[ 14 ]; const n41 = te[ 3 ], n42 = te[ 7 ], n43 = te[ 11 ], n44 = te[ 15 ]; //TODO: make this more efficient //( based on http://www.euclideanspace.com/maths/algebra/matrix/functions/inverse/fourD/index.htm ) return ( n41 * ( + n14 * n23 * n32 - n13 * n24 * n32 - n14 * n22 * n33 + n12 * n24 * n33 + n13 * n22 * n34 - n12 * n23 * n34 ) + n42 * ( + n11 * n23 * n34 - n11 * n24 * n33 + n14 * n21 * n33 - n13 * n21 * n34 + n13 * n24 * n31 - n14 * n23 * n31 ) + n43 * ( + n11 * n24 * n32 - n11 * n22 * n34 - n14 * n21 * n32 + n12 * n21 * n34 + n14 * n22 * n31 - n12 * n24 * n31 ) + n44 * ( - n13 * n22 * n31 - n11 * n23 * n32 + n11 * n22 * n33 + n13 * n21 * n32 - n12 * n21 * n33 + n12 * n23 * n31 ) ); } transpose() { const te = this.elements; let tmp; tmp = te[ 1 ]; te[ 1 ] = te[ 4 ]; te[ 4 ] = tmp; tmp = te[ 2 ]; te[ 2 ] = te[ 8 ]; te[ 8 ] = tmp; tmp = te[ 6 ]; te[ 6 ] = te[ 9 ]; te[ 9 ] = tmp; tmp = te[ 3 ]; te[ 3 ] = te[ 12 ]; te[ 12 ] = tmp; tmp = te[ 7 ]; te[ 7 ] = te[ 13 ]; te[ 13 ] = tmp; tmp = te[ 11 ]; te[ 11 ] = te[ 14 ]; te[ 14 ] = tmp; return this; } setPosition( x, y, z ) { const te = this.elements; if ( x.isVector3 ) { te[ 12 ] = x.x; te[ 13 ] = x.y; te[ 14 ] = x.z; } else { te[ 12 ] = x; te[ 13 ] = y; te[ 14 ] = z; } return this; } invert() { // based on http://www.euclideanspace.com/maths/algebra/matrix/functions/inverse/fourD/index.htm const te = this.elements, n11 = te[ 0 ], n21 = te[ 1 ], n31 = te[ 2 ], n41 = te[ 3 ], n12 = te[ 4 ], n22 = te[ 5 ], n32 = te[ 6 ], n42 = te[ 7 ], n13 = te[ 8 ], n23 = te[ 9 ], n33 = te[ 10 ], n43 = te[ 11 ], n14 = te[ 12 ], n24 = te[ 13 ], n34 = te[ 14 ], n44 = te[ 15 ], t11 = n23 * n34 * n42 - n24 * n33 * n42 + n24 * n32 * n43 - n22 * n34 * n43 - n23 * n32 * n44 + n22 * n33 * n44, t12 = n14 * n33 * n42 - n13 * n34 * n42 - n14 * n32 * n43 + n12 * n34 * n43 + n13 * n32 * n44 - n12 * n33 * n44, t13 = n13 * n24 * n42 - n14 * n23 * n42 + n14 * n22 * n43 - n12 * n24 * n43 - n13 * n22 * n44 + n12 * n23 * n44, t14 = n14 * n23 * n32 - n13 * n24 * n32 - n14 * n22 * n33 + n12 * n24 * n33 + n13 * n22 * n34 - n12 * n23 * n34; const det = n11 * t11 + n21 * t12 + n31 * t13 + n41 * t14; if ( det === 0 ) return this.set( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ); const detInv = 1 / det; te[ 0 ] = t11 * detInv; te[ 1 ] = ( n24 * n33 * n41 - n23 * n34 * n41 - n24 * n31 * n43 + n21 * n34 * n43 + n23 * n31 * n44 - n21 * n33 * n44 ) * detInv; te[ 2 ] = ( n22 * n34 * n41 - n24 * n32 * n41 + n24 * n31 * n42 - n21 * n34 * n42 - n22 * n31 * n44 + n21 * n32 * n44 ) * detInv; te[ 3 ] = ( n23 * n32 * n41 - n22 * n33 * n41 - n23 * n31 * n42 + n21 * n33 * n42 + n22 * n31 * n43 - n21 * n32 * n43 ) * detInv; te[ 4 ] = t12 * detInv; te[ 5 ] = ( n13 * n34 * n41 - n14 * n33 * n41 + n14 * n31 * n43 - n11 * n34 * n43 - n13 * n31 * n44 + n11 * n33 * n44 ) * detInv; te[ 6 ] = ( n14 * n32 * n41 - n12 * n34 * n41 - n14 * n31 * n42 + n11 * n34 * n42 + n12 * n31 * n44 - n11 * n32 * n44 ) * detInv; te[ 7 ] = ( n12 * n33 * n41 - n13 * n32 * n41 + n13 * n31 * n42 - n11 * n33 * n42 - n12 * n31 * n43 + n11 * n32 * n43 ) * detInv; te[ 8 ] = t13 * detInv; te[ 9 ] = ( n14 * n23 * n41 - n13 * n24 * n41 - n14 * n21 * n43 + n11 * n24 * n43 + n13 * n21 * n44 - n11 * n23 * n44 ) * detInv; te[ 10 ] = ( n12 * n24 * n41 - n14 * n22 * n41 + n14 * n21 * n42 - n11 * n24 * n42 - n12 * n21 * n44 + n11 * n22 * n44 ) * detInv; te[ 11 ] = ( n13 * n22 * n41 - n12 * n23 * n41 - n13 * n21 * n42 + n11 * n23 * n42 + n12 * n21 * n43 - n11 * n22 * n43 ) * detInv; te[ 12 ] = t14 * detInv; te[ 13 ] = ( n13 * n24 * n31 - n14 * n23 * n31 + n14 * n21 * n33 - n11 * n24 * n33 - n13 * n21 * n34 + n11 * n23 * n34 ) * detInv; te[ 14 ] = ( n14 * n22 * n31 - n12 * n24 * n31 - n14 * n21 * n32 + n11 * n24 * n32 + n12 * n21 * n34 - n11 * n22 * n34 ) * detInv; te[ 15 ] = ( n12 * n23 * n31 - n13 * n22 * n31 + n13 * n21 * n32 - n11 * n23 * n32 - n12 * n21 * n33 + n11 * n22 * n33 ) * detInv; return this; } scale( v ) { const te = this.elements; const x = v.x, y = v.y, z = v.z; te[ 0 ] *= x; te[ 4 ] *= y; te[ 8 ] *= z; te[ 1 ] *= x; te[ 5 ] *= y; te[ 9 ] *= z; te[ 2 ] *= x; te[ 6 ] *= y; te[ 10 ] *= z; te[ 3 ] *= x; te[ 7 ] *= y; te[ 11 ] *= z; return this; } getMaxScaleOnAxis() { const te = this.elements; const scaleXSq = te[ 0 ] * te[ 0 ] + te[ 1 ] * te[ 1 ] + te[ 2 ] * te[ 2 ]; const scaleYSq = te[ 4 ] * te[ 4 ] + te[ 5 ] * te[ 5 ] + te[ 6 ] * te[ 6 ]; const scaleZSq = te[ 8 ] * te[ 8 ] + te[ 9 ] * te[ 9 ] + te[ 10 ] * te[ 10 ]; return Math.sqrt( Math.max( scaleXSq, scaleYSq, scaleZSq ) ); } makeTranslation( x, y, z ) { this.set( 1, 0, 0, x, 0, 1, 0, y, 0, 0, 1, z, 0, 0, 0, 1 ); return this; } makeRotationX( theta ) { const c = Math.cos( theta ), s = Math.sin( theta ); this.set( 1, 0, 0, 0, 0, c, - s, 0, 0, s, c, 0, 0, 0, 0, 1 ); return this; } makeRotationY( theta ) { const c = Math.cos( theta ), s = Math.sin( theta ); this.set( c, 0, s, 0, 0, 1, 0, 0, - s, 0, c, 0, 0, 0, 0, 1 ); return this; } makeRotationZ( theta ) { const c = Math.cos( theta ), s = Math.sin( theta ); this.set( c, - s, 0, 0, s, c, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1 ); return this; } makeRotationAxis( axis, angle ) { // Based on http://www.gamedev.net/reference/articles/article1199.asp const c = Math.cos( angle ); const s = Math.sin( angle ); const t = 1 - c; const x = axis.x, y = axis.y, z = axis.z; const tx = t * x, ty = t * y; this.set( tx * x + c, tx * y - s * z, tx * z + s * y, 0, tx * y + s * z, ty * y + c, ty * z - s * x, 0, tx * z - s * y, ty * z + s * x, t * z * z + c, 0, 0, 0, 0, 1 ); return this; } makeScale( x, y, z ) { this.set( x, 0, 0, 0, 0, y, 0, 0, 0, 0, z, 0, 0, 0, 0, 1 ); return this; } makeShear( xy, xz, yx, yz, zx, zy ) { this.set( 1, yx, zx, 0, xy, 1, zy, 0, xz, yz, 1, 0, 0, 0, 0, 1 ); return this; } compose( position, quaternion, scale ) { const te = this.elements; const x = quaternion._x, y = quaternion._y, z = quaternion._z, w = quaternion._w; const x2 = x + x, y2 = y + y, z2 = z + z; const xx = x * x2, xy = x * y2, xz = x * z2; const yy = y * y2, yz = y * z2, zz = z * z2; const wx = w * x2, wy = w * y2, wz = w * z2; const sx = scale.x, sy = scale.y, sz = scale.z; te[ 0 ] = ( 1 - ( yy + zz ) ) * sx; te[ 1 ] = ( xy + wz ) * sx; te[ 2 ] = ( xz - wy ) * sx; te[ 3 ] = 0; te[ 4 ] = ( xy - wz ) * sy; te[ 5 ] = ( 1 - ( xx + zz ) ) * sy; te[ 6 ] = ( yz + wx ) * sy; te[ 7 ] = 0; te[ 8 ] = ( xz + wy ) * sz; te[ 9 ] = ( yz - wx ) * sz; te[ 10 ] = ( 1 - ( xx + yy ) ) * sz; te[ 11 ] = 0; te[ 12 ] = position.x; te[ 13 ] = position.y; te[ 14 ] = position.z; te[ 15 ] = 1; return this; } decompose( position, quaternion, scale ) { const te = this.elements; let sx = _v1$5.set( te[ 0 ], te[ 1 ], te[ 2 ] ).length(); const sy = _v1$5.set( te[ 4 ], te[ 5 ], te[ 6 ] ).length(); const sz = _v1$5.set( te[ 8 ], te[ 9 ], te[ 10 ] ).length(); // if determine is negative, we need to invert one scale const det = this.determinant(); if ( det < 0 ) sx = - sx; position.x = te[ 12 ]; position.y = te[ 13 ]; position.z = te[ 14 ]; // scale the rotation part _m1$2.copy( this ); const invSX = 1 / sx; const invSY = 1 / sy; const invSZ = 1 / sz; _m1$2.elements[ 0 ] *= invSX; _m1$2.elements[ 1 ] *= invSX; _m1$2.elements[ 2 ] *= invSX; _m1$2.elements[ 4 ] *= invSY; _m1$2.elements[ 5 ] *= invSY; _m1$2.elements[ 6 ] *= invSY; _m1$2.elements[ 8 ] *= invSZ; _m1$2.elements[ 9 ] *= invSZ; _m1$2.elements[ 10 ] *= invSZ; quaternion.setFromRotationMatrix( _m1$2 ); scale.x = sx; scale.y = sy; scale.z = sz; return this; } makePerspective( left, right, top, bottom, near, far ) { const te = this.elements; const x = 2 * near / ( right - left ); const y = 2 * near / ( top - bottom ); const a = ( right + left ) / ( right - left ); const b = ( top + bottom ) / ( top - bottom ); const c = - ( far + near ) / ( far - near ); const d = - 2 * far * near / ( far - near ); te[ 0 ] = x; te[ 4 ] = 0; te[ 8 ] = a; te[ 12 ] = 0; te[ 1 ] = 0; te[ 5 ] = y; te[ 9 ] = b; te[ 13 ] = 0; te[ 2 ] = 0; te[ 6 ] = 0; te[ 10 ] = c; te[ 14 ] = d; te[ 3 ] = 0; te[ 7 ] = 0; te[ 11 ] = - 1; te[ 15 ] = 0; return this; } makeOrthographic( left, right, top, bottom, near, far ) { const te = this.elements; const w = 1.0 / ( right - left ); const h = 1.0 / ( top - bottom ); const p = 1.0 / ( far - near ); const x = ( right + left ) * w; const y = ( top + bottom ) * h; const z = ( far + near ) * p; te[ 0 ] = 2 * w; te[ 4 ] = 0; te[ 8 ] = 0; te[ 12 ] = - x; te[ 1 ] = 0; te[ 5 ] = 2 * h; te[ 9 ] = 0; te[ 13 ] = - y; te[ 2 ] = 0; te[ 6 ] = 0; te[ 10 ] = - 2 * p; te[ 14 ] = - z; te[ 3 ] = 0; te[ 7 ] = 0; te[ 11 ] = 0; te[ 15 ] = 1; return this; } equals( matrix ) { const te = this.elements; const me = matrix.elements; for ( let i = 0; i < 16; i ++ ) { if ( te[ i ] !== me[ i ] ) return false; } return true; } fromArray( array, offset = 0 ) { for ( let i = 0; i < 16; i ++ ) { this.elements[ i ] = array[ i + offset ]; } return this; } toArray( array = [], offset = 0 ) { const te = this.elements; array[ offset ] = te[ 0 ]; array[ offset + 1 ] = te[ 1 ]; array[ offset + 2 ] = te[ 2 ]; array[ offset + 3 ] = te[ 3 ]; array[ offset + 4 ] = te[ 4 ]; array[ offset + 5 ] = te[ 5 ]; array[ offset + 6 ] = te[ 6 ]; array[ offset + 7 ] = te[ 7 ]; array[ offset + 8 ] = te[ 8 ]; array[ offset + 9 ] = te[ 9 ]; array[ offset + 10 ] = te[ 10 ]; array[ offset + 11 ] = te[ 11 ]; array[ offset + 12 ] = te[ 12 ]; array[ offset + 13 ] = te[ 13 ]; array[ offset + 14 ] = te[ 14 ]; array[ offset + 15 ] = te[ 15 ]; return array; } } const _v1$5 = /*@__PURE__*/ new Vector3(); const _m1$2 = /*@__PURE__*/ new Matrix4(); const _zero = /*@__PURE__*/ new Vector3( 0, 0, 0 ); const _one = /*@__PURE__*/ new Vector3( 1, 1, 1 ); const _x = /*@__PURE__*/ new Vector3(); const _y = /*@__PURE__*/ new Vector3(); const _z = /*@__PURE__*/ new Vector3(); const _matrix$1 = /*@__PURE__*/ new Matrix4(); const _quaternion$3 = /*@__PURE__*/ new Quaternion(); class Euler { constructor( x = 0, y = 0, z = 0, order = Euler.DEFAULT_ORDER ) { this.isEuler = true; this._x = x; this._y = y; this._z = z; this._order = order; } get x() { return this._x; } set x( value ) { this._x = value; this._onChangeCallback(); } get y() { return this._y; } set y( value ) { this._y = value; this._onChangeCallback(); } get z() { return this._z; } set z( value ) { this._z = value; this._onChangeCallback(); } get order() { return this._order; } set order( value ) { this._order = value; this._onChangeCallback(); } set( x, y, z, order = this._order ) { this._x = x; this._y = y; this._z = z; this._order = order; this._onChangeCallback(); return this; } clone() { return new this.constructor( this._x, this._y, this._z, this._order ); } copy( euler ) { this._x = euler._x; this._y = euler._y; this._z = euler._z; this._order = euler._order; this._onChangeCallback(); return this; } setFromRotationMatrix( m, order = this._order, update = true ) { // assumes the upper 3x3 of m is a pure rotation matrix (i.e, unscaled) const te = m.elements; const m11 = te[ 0 ], m12 = te[ 4 ], m13 = te[ 8 ]; const m21 = te[ 1 ], m22 = te[ 5 ], m23 = te[ 9 ]; const m31 = te[ 2 ], m32 = te[ 6 ], m33 = te[ 10 ]; switch ( order ) { case 'XYZ': this._y = Math.asin( clamp( m13, - 1, 1 ) ); if ( Math.abs( m13 ) < 0.9999999 ) { this._x = Math.atan2( - m23, m33 ); this._z = Math.atan2( - m12, m11 ); } else { this._x = Math.atan2( m32, m22 ); this._z = 0; } break; case 'YXZ': this._x = Math.asin( - clamp( m23, - 1, 1 ) ); if ( Math.abs( m23 ) < 0.9999999 ) { this._y = Math.atan2( m13, m33 ); this._z = Math.atan2( m21, m22 ); } else { this._y = Math.atan2( - m31, m11 ); this._z = 0; } break; case 'ZXY': this._x = Math.asin( clamp( m32, - 1, 1 ) ); if ( Math.abs( m32 ) < 0.9999999 ) { this._y = Math.atan2( - m31, m33 ); this._z = Math.atan2( - m12, m22 ); } else { this._y = 0; this._z = Math.atan2( m21, m11 ); } break; case 'ZYX': this._y = Math.asin( - clamp( m31, - 1, 1 ) ); if ( Math.abs( m31 ) < 0.9999999 ) { this._x = Math.atan2( m32, m33 ); this._z = Math.atan2( m21, m11 ); } else { this._x = 0; this._z = Math.atan2( - m12, m22 ); } break; case 'YZX': this._z = Math.asin( clamp( m21, - 1, 1 ) ); if ( Math.abs( m21 ) < 0.9999999 ) { this._x = Math.atan2( - m23, m22 ); this._y = Math.atan2( - m31, m11 ); } else { this._x = 0; this._y = Math.atan2( m13, m33 ); } break; case 'XZY': this._z = Math.asin( - clamp( m12, - 1, 1 ) ); if ( Math.abs( m12 ) < 0.9999999 ) { this._x = Math.atan2( m32, m22 ); this._y = Math.atan2( m13, m11 ); } else { this._x = Math.atan2( - m23, m33 ); this._y = 0; } break; default: console.warn( 'THREE.Euler: .setFromRotationMatrix() encountered an unknown order: ' + order ); } this._order = order; if ( update === true ) this._onChangeCallback(); return this; } setFromQuaternion( q, order, update ) { _matrix$1.makeRotationFromQuaternion( q ); return this.setFromRotationMatrix( _matrix$1, order, update ); } setFromVector3( v, order = this._order ) { return this.set( v.x, v.y, v.z, order ); } reorder( newOrder ) { // WARNING: this discards revolution information -bhouston _quaternion$3.setFromEuler( this ); return this.setFromQuaternion( _quaternion$3, newOrder ); } equals( euler ) { return ( euler._x === this._x ) && ( euler._y === this._y ) && ( euler._z === this._z ) && ( euler._order === this._order ); } fromArray( array ) { this._x = array[ 0 ]; this._y = array[ 1 ]; this._z = array[ 2 ]; if ( array[ 3 ] !== undefined ) this._order = array[ 3 ]; this._onChangeCallback(); return this; } toArray( array = [], offset = 0 ) { array[ offset ] = this._x; array[ offset + 1 ] = this._y; array[ offset + 2 ] = this._z; array[ offset + 3 ] = this._order; return array; } _onChange( callback ) { this._onChangeCallback = callback; return this; } _onChangeCallback() {} *[ Symbol.iterator ]() { yield this._x; yield this._y; yield this._z; yield this._order; } } Euler.DEFAULT_ORDER = 'XYZ'; class Layers { constructor() { this.mask = 1 | 0; } set( channel ) { this.mask = ( 1 << channel | 0 ) >>> 0; } enable( channel ) { this.mask |= 1 << channel | 0; } enableAll() { this.mask = 0xffffffff | 0; } toggle( channel ) { this.mask ^= 1 << channel | 0; } disable( channel ) { this.mask &= ~ ( 1 << channel | 0 ); } disableAll() { this.mask = 0; } test( layers ) { return ( this.mask & layers.mask ) !== 0; } isEnabled( channel ) { return ( this.mask & ( 1 << channel | 0 ) ) !== 0; } } let _object3DId = 0; const _v1$4 = /*@__PURE__*/ new Vector3(); const _q1 = /*@__PURE__*/ new Quaternion(); const _m1$1 = /*@__PURE__*/ new Matrix4(); const _target = /*@__PURE__*/ new Vector3(); const _position$3 = /*@__PURE__*/ new Vector3(); const _scale$2 = /*@__PURE__*/ new Vector3(); const _quaternion$2 = /*@__PURE__*/ new Quaternion(); const _xAxis = /*@__PURE__*/ new Vector3( 1, 0, 0 ); const _yAxis = /*@__PURE__*/ new Vector3( 0, 1, 0 ); const _zAxis = /*@__PURE__*/ new Vector3( 0, 0, 1 ); const _addedEvent = { type: 'added' }; const _removedEvent = { type: 'removed' }; class Object3D extends EventDispatcher { constructor() { super(); this.isObject3D = true; Object.defineProperty( this, 'id', { value: _object3DId ++ } ); this.uuid = generateUUID(); this.name = ''; this.type = 'Object3D'; this.parent = null; this.children = []; this.up = Object3D.DEFAULT_UP.clone(); const position = new Vector3(); const rotation = new Euler(); const quaternion = new Quaternion(); const scale = new Vector3( 1, 1, 1 ); function onRotationChange() { quaternion.setFromEuler( rotation, false ); } function onQuaternionChange() { rotation.setFromQuaternion( quaternion, undefined, false ); } rotation._onChange( onRotationChange ); quaternion._onChange( onQuaternionChange ); Object.defineProperties( this, { position: { configurable: true, enumerable: true, value: position }, rotation: { configurable: true, enumerable: true, value: rotation }, quaternion: { configurable: true, enumerable: true, value: quaternion }, scale: { configurable: true, enumerable: true, value: scale }, modelViewMatrix: { value: new Matrix4() }, normalMatrix: { value: new Matrix3() } } ); this.matrix = new Matrix4(); this.matrixWorld = new Matrix4(); this.matrixAutoUpdate = Object3D.DEFAULT_MATRIX_AUTO_UPDATE; this.matrixWorldNeedsUpdate = false; this.matrixWorldAutoUpdate = Object3D.DEFAULT_MATRIX_WORLD_AUTO_UPDATE; // checked by the renderer this.layers = new Layers(); this.visible = true; this.castShadow = false; this.receiveShadow = false; this.frustumCulled = true; this.renderOrder = 0; this.animations = []; this.userData = {}; } onBeforeRender( /* renderer, scene, camera, geometry, material, group */ ) {} onAfterRender( /* renderer, scene, camera, geometry, material, group */ ) {} applyMatrix4( matrix ) { if ( this.matrixAutoUpdate ) this.updateMatrix(); this.matrix.premultiply( matrix ); this.matrix.decompose( this.position, this.quaternion, this.scale ); } applyQuaternion( q ) { this.quaternion.premultiply( q ); return this; } setRotationFromAxisAngle( axis, angle ) { // assumes axis is normalized this.quaternion.setFromAxisAngle( axis, angle ); } setRotationFromEuler( euler ) { this.quaternion.setFromEuler( euler, true ); } setRotationFromMatrix( m ) { // assumes the upper 3x3 of m is a pure rotation matrix (i.e, unscaled) this.quaternion.setFromRotationMatrix( m ); } setRotationFromQuaternion( q ) { // assumes q is normalized this.quaternion.copy( q ); } rotateOnAxis( axis, angle ) { // rotate object on axis in object space // axis is assumed to be normalized _q1.setFromAxisAngle( axis, angle ); this.quaternion.multiply( _q1 ); return this; } rotateOnWorldAxis( axis, angle ) { // rotate object on axis in world space // axis is assumed to be normalized // method assumes no rotated parent _q1.setFromAxisAngle( axis, angle ); this.quaternion.premultiply( _q1 ); return this; } rotateX( angle ) { return this.rotateOnAxis( _xAxis, angle ); } rotateY( angle ) { return this.rotateOnAxis( _yAxis, angle ); } rotateZ( angle ) { return this.rotateOnAxis( _zAxis, angle ); } translateOnAxis( axis, distance ) { // translate object by distance along axis in object space // axis is assumed to be normalized _v1$4.copy( axis ).applyQuaternion( this.quaternion ); this.position.add( _v1$4.multiplyScalar( distance ) ); return this; } translateX( distance ) { return this.translateOnAxis( _xAxis, distance ); } translateY( distance ) { return this.translateOnAxis( _yAxis, distance ); } translateZ( distance ) { return this.translateOnAxis( _zAxis, distance ); } localToWorld( vector ) { this.updateWorldMatrix( true, false ); return vector.applyMatrix4( this.matrixWorld ); } worldToLocal( vector ) { this.updateWorldMatrix( true, false ); return vector.applyMatrix4( _m1$1.copy( this.matrixWorld ).invert() ); } lookAt( x, y, z ) { // This method does not support objects having non-uniformly-scaled parent(s) if ( x.isVector3 ) { _target.copy( x ); } else { _target.set( x, y, z ); } const parent = this.parent; this.updateWorldMatrix( true, false ); _position$3.setFromMatrixPosition( this.matrixWorld ); if ( this.isCamera || this.isLight ) { _m1$1.lookAt( _position$3, _target, this.up ); } else { _m1$1.lookAt( _target, _position$3, this.up ); } this.quaternion.setFromRotationMatrix( _m1$1 ); if ( parent ) { _m1$1.extractRotation( parent.matrixWorld ); _q1.setFromRotationMatrix( _m1$1 ); this.quaternion.premultiply( _q1.invert() ); } } add( object ) { if ( arguments.length > 1 ) { for ( let i = 0; i < arguments.length; i ++ ) { this.add( arguments[ i ] ); } return this; } if ( object === this ) { console.error( 'THREE.Object3D.add: object can\'t be added as a child of itself.', object ); return this; } if ( object && object.isObject3D ) { if ( object.parent !== null ) { object.parent.remove( object ); } object.parent = this; this.children.push( object ); object.dispatchEvent( _addedEvent ); } else { console.error( 'THREE.Object3D.add: object not an instance of THREE.Object3D.', object ); } return this; } remove( object ) { if ( arguments.length > 1 ) { for ( let i = 0; i < arguments.length; i ++ ) { this.remove( arguments[ i ] ); } return this; } const index = this.children.indexOf( object ); if ( index !== - 1 ) { object.parent = null; this.children.splice( index, 1 ); object.dispatchEvent( _removedEvent ); } return this; } removeFromParent() { const parent = this.parent; if ( parent !== null ) { parent.remove( this ); } return this; } clear() { for ( let i = 0; i < this.children.length; i ++ ) { const object = this.children[ i ]; object.parent = null; object.dispatchEvent( _removedEvent ); } this.children.length = 0; return this; } attach( object ) { // adds object as a child of this, while maintaining the object's world transform // Note: This method does not support scene graphs having non-uniformly-scaled nodes(s) this.updateWorldMatrix( true, false ); _m1$1.copy( this.matrixWorld ).invert(); if ( object.parent !== null ) { object.parent.updateWorldMatrix( true, false ); _m1$1.multiply( object.parent.matrixWorld ); } object.applyMatrix4( _m1$1 ); this.add( object ); object.updateWorldMatrix( false, true ); return this; } getObjectById( id ) { return this.getObjectByProperty( 'id', id ); } getObjectByName( name ) { return this.getObjectByProperty( 'name', name ); } getObjectByProperty( name, value ) { if ( this[ name ] === value ) return this; for ( let i = 0, l = this.children.length; i < l; i ++ ) { const child = this.children[ i ]; const object = child.getObjectByProperty( name, value ); if ( object !== undefined ) { return object; } } return undefined; } getObjectsByProperty( name, value ) { let result = []; if ( this[ name ] === value ) result.push( this ); for ( let i = 0, l = this.children.length; i < l; i ++ ) { const childResult = this.children[ i ].getObjectsByProperty( name, value ); if ( childResult.length > 0 ) { result = result.concat( childResult ); } } return result; } getWorldPosition( target ) { this.updateWorldMatrix( true, false ); return target.setFromMatrixPosition( this.matrixWorld ); } getWorldQuaternion( target ) { this.updateWorldMatrix( true, false ); this.matrixWorld.decompose( _position$3, target, _scale$2 ); return target; } getWorldScale( target ) { this.updateWorldMatrix( true, false ); this.matrixWorld.decompose( _position$3, _quaternion$2, target ); return target; } getWorldDirection( target ) { this.updateWorldMatrix( true, false ); const e = this.matrixWorld.elements; return target.set( e[ 8 ], e[ 9 ], e[ 10 ] ).normalize(); } raycast( /* raycaster, intersects */ ) {} traverse( callback ) { callback( this ); const children = this.children; for ( let i = 0, l = children.length; i < l; i ++ ) { children[ i ].traverse( callback ); } } traverseVisible( callback ) { if ( this.visible === false ) return; callback( this ); const children = this.children; for ( let i = 0, l = children.length; i < l; i ++ ) { children[ i ].traverseVisible( callback ); } } traverseAncestors( callback ) { const parent = this.parent; if ( parent !== null ) { callback( parent ); parent.traverseAncestors( callback ); } } updateMatrix() { this.matrix.compose( this.position, this.quaternion, this.scale ); this.matrixWorldNeedsUpdate = true; } updateMatrixWorld( force ) { if ( this.matrixAutoUpdate ) this.updateMatrix(); if ( this.matrixWorldNeedsUpdate || force ) { if ( this.parent === null ) { this.matrixWorld.copy( this.matrix ); } else { this.matrixWorld.multiplyMatrices( this.parent.matrixWorld, this.matrix ); } this.matrixWorldNeedsUpdate = false; force = true; } // update children const children = this.children; for ( let i = 0, l = children.length; i < l; i ++ ) { const child = children[ i ]; if ( child.matrixWorldAutoUpdate === true || force === true ) { child.updateMatrixWorld( force ); } } } updateWorldMatrix( updateParents, updateChildren ) { const parent = this.parent; if ( updateParents === true && parent !== null && parent.matrixWorldAutoUpdate === true ) { parent.updateWorldMatrix( true, false ); } if ( this.matrixAutoUpdate ) this.updateMatrix(); if ( this.parent === null ) { this.matrixWorld.copy( this.matrix ); } else { this.matrixWorld.multiplyMatrices( this.parent.matrixWorld, this.matrix ); } // update children if ( updateChildren === true ) { const children = this.children; for ( let i = 0, l = children.length; i < l; i ++ ) { const child = children[ i ]; if ( child.matrixWorldAutoUpdate === true ) { child.updateWorldMatrix( false, true ); } } } } toJSON( meta ) { // meta is a string when called from JSON.stringify const isRootObject = ( meta === undefined || typeof meta === 'string' ); const output = {}; // meta is a hash used to collect geometries, materials. // not providing it implies that this is the root object // being serialized. if ( isRootObject ) { // initialize meta obj meta = { geometries: {}, materials: {}, textures: {}, images: {}, shapes: {}, skeletons: {}, animations: {}, nodes: {} }; output.metadata = { version: 4.5, type: 'Object', generator: 'Object3D.toJSON' }; } // standard Object3D serialization const object = {}; object.uuid = this.uuid; object.type = this.type; if ( this.name !== '' ) object.name = this.name; if ( this.castShadow === true ) object.castShadow = true; if ( this.receiveShadow === true ) object.receiveShadow = true; if ( this.visible === false ) object.visible = false; if ( this.frustumCulled === false ) object.frustumCulled = false; if ( this.renderOrder !== 0 ) object.renderOrder = this.renderOrder; if ( Object.keys( this.userData ).length > 0 ) object.userData = this.userData; object.layers = this.layers.mask; object.matrix = this.matrix.toArray(); if ( this.matrixAutoUpdate === false ) object.matrixAutoUpdate = false; // object specific properties if ( this.isInstancedMesh ) { object.type = 'InstancedMesh'; object.count = this.count; object.instanceMatrix = this.instanceMatrix.toJSON(); if ( this.instanceColor !== null ) object.instanceColor = this.instanceColor.toJSON(); } // function serialize( library, element ) { if ( library[ element.uuid ] === undefined ) { library[ element.uuid ] = element.toJSON( meta ); } return element.uuid; } if ( this.isScene ) { if ( this.background ) { if ( this.background.isColor ) { object.background = this.background.toJSON(); } else if ( this.background.isTexture ) { object.background = this.background.toJSON( meta ).uuid; } } if ( this.environment && this.environment.isTexture && this.environment.isRenderTargetTexture !== true ) { object.environment = this.environment.toJSON( meta ).uuid; } } else if ( this.isMesh || this.isLine || this.isPoints ) { object.geometry = serialize( meta.geometries, this.geometry ); const parameters = this.geometry.parameters; if ( parameters !== undefined && parameters.shapes !== undefined ) { const shapes = parameters.shapes; if ( Array.isArray( shapes ) ) { for ( let i = 0, l = shapes.length; i < l; i ++ ) { const shape = shapes[ i ]; serialize( meta.shapes, shape ); } } else { serialize( meta.shapes, shapes ); } } } if ( this.isSkinnedMesh ) { object.bindMode = this.bindMode; object.bindMatrix = this.bindMatrix.toArray(); if ( this.skeleton !== undefined ) { serialize( meta.skeletons, this.skeleton ); object.skeleton = this.skeleton.uuid; } } if ( this.material !== undefined ) { if ( Array.isArray( this.material ) ) { const uuids = []; for ( let i = 0, l = this.material.length; i < l; i ++ ) { uuids.push( serialize( meta.materials, this.material[ i ] ) ); } object.material = uuids; } else { object.material = serialize( meta.materials, this.material ); } } // if ( this.children.length > 0 ) { object.children = []; for ( let i = 0; i < this.children.length; i ++ ) { object.children.push( this.children[ i ].toJSON( meta ).object ); } } // if ( this.animations.length > 0 ) { object.animations = []; for ( let i = 0; i < this.animations.length; i ++ ) { const animation = this.animations[ i ]; object.animations.push( serialize( meta.animations, animation ) ); } } if ( isRootObject ) { const geometries = extractFromCache( meta.geometries ); const materials = extractFromCache( meta.materials ); const textures = extractFromCache( meta.textures ); const images = extractFromCache( meta.images ); const shapes = extractFromCache( meta.shapes ); const skeletons = extractFromCache( meta.skeletons ); const animations = extractFromCache( meta.animations ); const nodes = extractFromCache( meta.nodes ); if ( geometries.length > 0 ) output.geometries = geometries; if ( materials.length > 0 ) output.materials = materials; if ( textures.length > 0 ) output.textures = textures; if ( images.length > 0 ) output.images = images; if ( shapes.length > 0 ) output.shapes = shapes; if ( skeletons.length > 0 ) output.skeletons = skeletons; if ( animations.length > 0 ) output.animations = animations; if ( nodes.length > 0 ) output.nodes = nodes; } output.object = object; return output; // extract data from the cache hash // remove metadata on each item // and return as array function extractFromCache( cache ) { const values = []; for ( const key in cache ) { const data = cache[ key ]; delete data.metadata; values.push( data ); } return values; } } clone( recursive ) { return new this.constructor().copy( this, recursive ); } copy( source, recursive = true ) { this.name = source.name; this.up.copy( source.up ); this.position.copy( source.position ); this.rotation.order = source.rotation.order; this.quaternion.copy( source.quaternion ); this.scale.copy( source.scale ); this.matrix.copy( source.matrix ); this.matrixWorld.copy( source.matrixWorld ); this.matrixAutoUpdate = source.matrixAutoUpdate; this.matrixWorldNeedsUpdate = source.matrixWorldNeedsUpdate; this.matrixWorldAutoUpdate = source.matrixWorldAutoUpdate; this.layers.mask = source.layers.mask; this.visible = source.visible; this.castShadow = source.castShadow; this.receiveShadow = source.receiveShadow; this.frustumCulled = source.frustumCulled; this.renderOrder = source.renderOrder; this.userData = JSON.parse( JSON.stringify( source.userData ) ); if ( recursive === true ) { for ( let i = 0; i < source.children.length; i ++ ) { const child = source.children[ i ]; this.add( child.clone() ); } } return this; } } Object3D.DEFAULT_UP = /*@__PURE__*/ new Vector3( 0, 1, 0 ); Object3D.DEFAULT_MATRIX_AUTO_UPDATE = true; Object3D.DEFAULT_MATRIX_WORLD_AUTO_UPDATE = true; const _v0$1 = /*@__PURE__*/ new Vector3(); const _v1$3 = /*@__PURE__*/ new Vector3(); const _v2$2 = /*@__PURE__*/ new Vector3(); const _v3$1 = /*@__PURE__*/ new Vector3(); const _vab = /*@__PURE__*/ new Vector3(); const _vac = /*@__PURE__*/ new Vector3(); const _vbc = /*@__PURE__*/ new Vector3(); const _vap = /*@__PURE__*/ new Vector3(); const _vbp = /*@__PURE__*/ new Vector3(); const _vcp = /*@__PURE__*/ new Vector3(); class Triangle { constructor( a = new Vector3(), b = new Vector3(), c = new Vector3() ) { this.a = a; this.b = b; this.c = c; } static getNormal( a, b, c, target ) { target.subVectors( c, b ); _v0$1.subVectors( a, b ); target.cross( _v0$1 ); const targetLengthSq = target.lengthSq(); if ( targetLengthSq > 0 ) { return target.multiplyScalar( 1 / Math.sqrt( targetLengthSq ) ); } return target.set( 0, 0, 0 ); } // static/instance method to calculate barycentric coordinates // based on: http://www.blackpawn.com/texts/pointinpoly/default.html static getBarycoord( point, a, b, c, target ) { _v0$1.subVectors( c, a ); _v1$3.subVectors( b, a ); _v2$2.subVectors( point, a ); const dot00 = _v0$1.dot( _v0$1 ); const dot01 = _v0$1.dot( _v1$3 ); const dot02 = _v0$1.dot( _v2$2 ); const dot11 = _v1$3.dot( _v1$3 ); const dot12 = _v1$3.dot( _v2$2 ); const denom = ( dot00 * dot11 - dot01 * dot01 ); // collinear or singular triangle if ( denom === 0 ) { // arbitrary location outside of triangle? // not sure if this is the best idea, maybe should be returning undefined return target.set( - 2, - 1, - 1 ); } const invDenom = 1 / denom; const u = ( dot11 * dot02 - dot01 * dot12 ) * invDenom; const v = ( dot00 * dot12 - dot01 * dot02 ) * invDenom; // barycentric coordinates must always sum to 1 return target.set( 1 - u - v, v, u ); } static containsPoint( point, a, b, c ) { this.getBarycoord( point, a, b, c, _v3$1 ); return ( _v3$1.x >= 0 ) && ( _v3$1.y >= 0 ) && ( ( _v3$1.x + _v3$1.y ) <= 1 ); } static getUV( point, p1, p2, p3, uv1, uv2, uv3, target ) { this.getBarycoord( point, p1, p2, p3, _v3$1 ); target.set( 0, 0 ); target.addScaledVector( uv1, _v3$1.x ); target.addScaledVector( uv2, _v3$1.y ); target.addScaledVector( uv3, _v3$1.z ); return target; } static isFrontFacing( a, b, c, direction ) { _v0$1.subVectors( c, b ); _v1$3.subVectors( a, b ); // strictly front facing return ( _v0$1.cross( _v1$3 ).dot( direction ) < 0 ) ? true : false; } set( a, b, c ) { this.a.copy( a ); this.b.copy( b ); this.c.copy( c ); return this; } setFromPointsAndIndices( points, i0, i1, i2 ) { this.a.copy( points[ i0 ] ); this.b.copy( points[ i1 ] ); this.c.copy( points[ i2 ] ); return this; } setFromAttributeAndIndices( attribute, i0, i1, i2 ) { this.a.fromBufferAttribute( attribute, i0 ); this.b.fromBufferAttribute( attribute, i1 ); this.c.fromBufferAttribute( attribute, i2 ); return this; } clone() { return new this.constructor().copy( this ); } copy( triangle ) { this.a.copy( triangle.a ); this.b.copy( triangle.b ); this.c.copy( triangle.c ); return this; } getArea() { _v0$1.subVectors( this.c, this.b ); _v1$3.subVectors( this.a, this.b ); return _v0$1.cross( _v1$3 ).length() * 0.5; } getMidpoint( target ) { return target.addVectors( this.a, this.b ).add( this.c ).multiplyScalar( 1 / 3 ); } getNormal( target ) { return Triangle.getNormal( this.a, this.b, this.c, target ); } getPlane( target ) { return target.setFromCoplanarPoints( this.a, this.b, this.c ); } getBarycoord( point, target ) { return Triangle.getBarycoord( point, this.a, this.b, this.c, target ); } getUV( point, uv1, uv2, uv3, target ) { return Triangle.getUV( point, this.a, this.b, this.c, uv1, uv2, uv3, target ); } containsPoint( point ) { return Triangle.containsPoint( point, this.a, this.b, this.c ); } isFrontFacing( direction ) { return Triangle.isFrontFacing( this.a, this.b, this.c, direction ); } intersectsBox( box ) { return box.intersectsTriangle( this ); } closestPointToPoint( p, target ) { const a = this.a, b = this.b, c = this.c; let v, w; // algorithm thanks to Real-Time Collision Detection by Christer Ericson, // published by Morgan Kaufmann Publishers, (c) 2005 Elsevier Inc., // under the accompanying license; see chapter 5.1.5 for detailed explanation. // basically, we're distinguishing which of the voronoi regions of the triangle // the point lies in with the minimum amount of redundant computation. _vab.subVectors( b, a ); _vac.subVectors( c, a ); _vap.subVectors( p, a ); const d1 = _vab.dot( _vap ); const d2 = _vac.dot( _vap ); if ( d1 <= 0 && d2 <= 0 ) { // vertex region of A; barycentric coords (1, 0, 0) return target.copy( a ); } _vbp.subVectors( p, b ); const d3 = _vab.dot( _vbp ); const d4 = _vac.dot( _vbp ); if ( d3 >= 0 && d4 <= d3 ) { // vertex region of B; barycentric coords (0, 1, 0) return target.copy( b ); } const vc = d1 * d4 - d3 * d2; if ( vc <= 0 && d1 >= 0 && d3 <= 0 ) { v = d1 / ( d1 - d3 ); // edge region of AB; barycentric coords (1-v, v, 0) return target.copy( a ).addScaledVector( _vab, v ); } _vcp.subVectors( p, c ); const d5 = _vab.dot( _vcp ); const d6 = _vac.dot( _vcp ); if ( d6 >= 0 && d5 <= d6 ) { // vertex region of C; barycentric coords (0, 0, 1) return target.copy( c ); } const vb = d5 * d2 - d1 * d6; if ( vb <= 0 && d2 >= 0 && d6 <= 0 ) { w = d2 / ( d2 - d6 ); // edge region of AC; barycentric coords (1-w, 0, w) return target.copy( a ).addScaledVector( _vac, w ); } const va = d3 * d6 - d5 * d4; if ( va <= 0 && ( d4 - d3 ) >= 0 && ( d5 - d6 ) >= 0 ) { _vbc.subVectors( c, b ); w = ( d4 - d3 ) / ( ( d4 - d3 ) + ( d5 - d6 ) ); // edge region of BC; barycentric coords (0, 1-w, w) return target.copy( b ).addScaledVector( _vbc, w ); // edge region of BC } // face region const denom = 1 / ( va + vb + vc ); // u = va * denom v = vb * denom; w = vc * denom; return target.copy( a ).addScaledVector( _vab, v ).addScaledVector( _vac, w ); } equals( triangle ) { return triangle.a.equals( this.a ) && triangle.b.equals( this.b ) && triangle.c.equals( this.c ); } } let materialId = 0; class Material extends EventDispatcher { constructor() { super(); this.isMaterial = true; Object.defineProperty( this, 'id', { value: materialId ++ } ); this.uuid = generateUUID(); this.name = ''; this.type = 'Material'; this.blending = NormalBlending; this.side = FrontSide; this.vertexColors = false; this.opacity = 1; this.transparent = false; this.blendSrc = SrcAlphaFactor; this.blendDst = OneMinusSrcAlphaFactor; this.blendEquation = AddEquation; this.blendSrcAlpha = null; this.blendDstAlpha = null; this.blendEquationAlpha = null; this.depthFunc = LessEqualDepth; this.depthTest = true; this.depthWrite = true; this.stencilWriteMask = 0xff; this.stencilFunc = AlwaysStencilFunc; this.stencilRef = 0; this.stencilFuncMask = 0xff; this.stencilFail = KeepStencilOp; this.stencilZFail = KeepStencilOp; this.stencilZPass = KeepStencilOp; this.stencilWrite = false; this.clippingPlanes = null; this.clipIntersection = false; this.clipShadows = false; this.shadowSide = null; this.colorWrite = true; this.precision = null; // override the renderer's default precision for this material this.polygonOffset = false; this.polygonOffsetFactor = 0; this.polygonOffsetUnits = 0; this.dithering = false; this.alphaToCoverage = false; this.premultipliedAlpha = false; this.forceSinglePass = false; this.visible = true; this.toneMapped = true; this.userData = {}; this.version = 0; this._alphaTest = 0; } get alphaTest() { return this._alphaTest; } set alphaTest( value ) { if ( this._alphaTest > 0 !== value > 0 ) { this.version ++; } this._alphaTest = value; } onBuild( /* shaderobject, renderer */ ) {} onBeforeRender( /* renderer, scene, camera, geometry, object, group */ ) {} onBeforeCompile( /* shaderobject, renderer */ ) {} customProgramCacheKey() { return this.onBeforeCompile.toString(); } setValues( values ) { if ( values === undefined ) return; for ( const key in values ) { const newValue = values[ key ]; if ( newValue === undefined ) { console.warn( 'THREE.Material: \'' + key + '\' parameter is undefined.' ); continue; } const currentValue = this[ key ]; if ( currentValue === undefined ) { console.warn( 'THREE.' + this.type + ': \'' + key + '\' is not a property of this material.' ); continue; } if ( currentValue && currentValue.isColor ) { currentValue.set( newValue ); } else if ( ( currentValue && currentValue.isVector3 ) && ( newValue && newValue.isVector3 ) ) { currentValue.copy( newValue ); } else { this[ key ] = newValue; } } } toJSON( meta ) { const isRootObject = ( meta === undefined || typeof meta === 'string' ); if ( isRootObject ) { meta = { textures: {}, images: {} }; } const data = { metadata: { version: 4.5, type: 'Material', generator: 'Material.toJSON' } }; // standard Material serialization data.uuid = this.uuid; data.type = this.type; if ( this.name !== '' ) data.name = this.name; if ( this.color && this.color.isColor ) data.color = this.color.getHex(); if ( this.roughness !== undefined ) data.roughness = this.roughness; if ( this.metalness !== undefined ) data.metalness = this.metalness; if ( this.sheen !== undefined ) data.sheen = this.sheen; if ( this.sheenColor && this.sheenColor.isColor ) data.sheenColor = this.sheenColor.getHex(); if ( this.sheenRoughness !== undefined ) data.sheenRoughness = this.sheenRoughness; if ( this.emissive && this.emissive.isColor ) data.emissive = this.emissive.getHex(); if ( this.emissiveIntensity && this.emissiveIntensity !== 1 ) data.emissiveIntensity = this.emissiveIntensity; if ( this.specular && this.specular.isColor ) data.specular = this.specular.getHex(); if ( this.specularIntensity !== undefined ) data.specularIntensity = this.specularIntensity; if ( this.specularColor && this.specularColor.isColor ) data.specularColor = this.specularColor.getHex(); if ( this.shininess !== undefined ) data.shininess = this.shininess; if ( this.clearcoat !== undefined ) data.clearcoat = this.clearcoat; if ( this.clearcoatRoughness !== undefined ) data.clearcoatRoughness = this.clearcoatRoughness; if ( this.clearcoatMap && this.clearcoatMap.isTexture ) { data.clearcoatMap = this.clearcoatMap.toJSON( meta ).uuid; } if ( this.clearcoatRoughnessMap && this.clearcoatRoughnessMap.isTexture ) { data.clearcoatRoughnessMap = this.clearcoatRoughnessMap.toJSON( meta ).uuid; } if ( this.clearcoatNormalMap && this.clearcoatNormalMap.isTexture ) { data.clearcoatNormalMap = this.clearcoatNormalMap.toJSON( meta ).uuid; data.clearcoatNormalScale = this.clearcoatNormalScale.toArray(); } if ( this.iridescence !== undefined ) data.iridescence = this.iridescence; if ( this.iridescenceIOR !== undefined ) data.iridescenceIOR = this.iridescenceIOR; if ( this.iridescenceThicknessRange !== undefined ) data.iridescenceThicknessRange = this.iridescenceThicknessRange; if ( this.iridescenceMap && this.iridescenceMap.isTexture ) { data.iridescenceMap = this.iridescenceMap.toJSON( meta ).uuid; } if ( this.iridescenceThicknessMap && this.iridescenceThicknessMap.isTexture ) { data.iridescenceThicknessMap = this.iridescenceThicknessMap.toJSON( meta ).uuid; } if ( this.map && this.map.isTexture ) data.map = this.map.toJSON( meta ).uuid; if ( this.matcap && this.matcap.isTexture ) data.matcap = this.matcap.toJSON( meta ).uuid; if ( this.alphaMap && this.alphaMap.isTexture ) data.alphaMap = this.alphaMap.toJSON( meta ).uuid; if ( this.lightMap && this.lightMap.isTexture ) { data.lightMap = this.lightMap.toJSON( meta ).uuid; data.lightMapIntensity = this.lightMapIntensity; } if ( this.aoMap && this.aoMap.isTexture ) { data.aoMap = this.aoMap.toJSON( meta ).uuid; data.aoMapIntensity = this.aoMapIntensity; } if ( this.bumpMap && this.bumpMap.isTexture ) { data.bumpMap = this.bumpMap.toJSON( meta ).uuid; data.bumpScale = this.bumpScale; } if ( this.normalMap && this.normalMap.isTexture ) { data.normalMap = this.normalMap.toJSON( meta ).uuid; data.normalMapType = this.normalMapType; data.normalScale = this.normalScale.toArray(); } if ( this.displacementMap && this.displacementMap.isTexture ) { data.displacementMap = this.displacementMap.toJSON( meta ).uuid; data.displacementScale = this.displacementScale; data.displacementBias = this.displacementBias; } if ( this.roughnessMap && this.roughnessMap.isTexture ) data.roughnessMap = this.roughnessMap.toJSON( meta ).uuid; if ( this.metalnessMap && this.metalnessMap.isTexture ) data.metalnessMap = this.metalnessMap.toJSON( meta ).uuid; if ( this.emissiveMap && this.emissiveMap.isTexture ) data.emissiveMap = this.emissiveMap.toJSON( meta ).uuid; if ( this.specularMap && this.specularMap.isTexture ) data.specularMap = this.specularMap.toJSON( meta ).uuid; if ( this.specularIntensityMap && this.specularIntensityMap.isTexture ) data.specularIntensityMap = this.specularIntensityMap.toJSON( meta ).uuid; if ( this.specularColorMap && this.specularColorMap.isTexture ) data.specularColorMap = this.specularColorMap.toJSON( meta ).uuid; if ( this.envMap && this.envMap.isTexture ) { data.envMap = this.envMap.toJSON( meta ).uuid; if ( this.combine !== undefined ) data.combine = this.combine; } if ( this.envMapIntensity !== undefined ) data.envMapIntensity = this.envMapIntensity; if ( this.reflectivity !== undefined ) data.reflectivity = this.reflectivity; if ( this.refractionRatio !== undefined ) data.refractionRatio = this.refractionRatio; if ( this.gradientMap && this.gradientMap.isTexture ) { data.gradientMap = this.gradientMap.toJSON( meta ).uuid; } if ( this.transmission !== undefined ) data.transmission = this.transmission; if ( this.transmissionMap && this.transmissionMap.isTexture ) data.transmissionMap = this.transmissionMap.toJSON( meta ).uuid; if ( this.thickness !== undefined ) data.thickness = this.thickness; if ( this.thicknessMap && this.thicknessMap.isTexture ) data.thicknessMap = this.thicknessMap.toJSON( meta ).uuid; if ( this.attenuationDistance !== undefined && this.attenuationDistance !== Infinity ) data.attenuationDistance = this.attenuationDistance; if ( this.attenuationColor !== undefined ) data.attenuationColor = this.attenuationColor.getHex(); if ( this.size !== undefined ) data.size = this.size; if ( this.shadowSide !== null ) data.shadowSide = this.shadowSide; if ( this.sizeAttenuation !== undefined ) data.sizeAttenuation = this.sizeAttenuation; if ( this.blending !== NormalBlending ) data.blending = this.blending; if ( this.side !== FrontSide ) data.side = this.side; if ( this.vertexColors ) data.vertexColors = true; if ( this.opacity < 1 ) data.opacity = this.opacity; if ( this.transparent === true ) data.transparent = this.transparent; data.depthFunc = this.depthFunc; data.depthTest = this.depthTest; data.depthWrite = this.depthWrite; data.colorWrite = this.colorWrite; data.stencilWrite = this.stencilWrite; data.stencilWriteMask = this.stencilWriteMask; data.stencilFunc = this.stencilFunc; data.stencilRef = this.stencilRef; data.stencilFuncMask = this.stencilFuncMask; data.stencilFail = this.stencilFail; data.stencilZFail = this.stencilZFail; data.stencilZPass = this.stencilZPass; // rotation (SpriteMaterial) if ( this.rotation !== undefined && this.rotation !== 0 ) data.rotation = this.rotation; if ( this.polygonOffset === true ) data.polygonOffset = true; if ( this.polygonOffsetFactor !== 0 ) data.polygonOffsetFactor = this.polygonOffsetFactor; if ( this.polygonOffsetUnits !== 0 ) data.polygonOffsetUnits = this.polygonOffsetUnits; if ( this.linewidth !== undefined && this.linewidth !== 1 ) data.linewidth = this.linewidth; if ( this.dashSize !== undefined ) data.dashSize = this.dashSize; if ( this.gapSize !== undefined ) data.gapSize = this.gapSize; if ( this.scale !== undefined ) data.scale = this.scale; if ( this.dithering === true ) data.dithering = true; if ( this.alphaTest > 0 ) data.alphaTest = this.alphaTest; if ( this.alphaToCoverage === true ) data.alphaToCoverage = this.alphaToCoverage; if ( this.premultipliedAlpha === true ) data.premultipliedAlpha = this.premultipliedAlpha; if ( this.forceSinglePass === true ) data.forceSinglePass = this.forceSinglePass; if ( this.wireframe === true ) data.wireframe = this.wireframe; if ( this.wireframeLinewidth > 1 ) data.wireframeLinewidth = this.wireframeLinewidth; if ( this.wireframeLinecap !== 'round' ) data.wireframeLinecap = this.wireframeLinecap; if ( this.wireframeLinejoin !== 'round' ) data.wireframeLinejoin = this.wireframeLinejoin; if ( this.flatShading === true ) data.flatShading = this.flatShading; if ( this.visible === false ) data.visible = false; if ( this.toneMapped === false ) data.toneMapped = false; if ( this.fog === false ) data.fog = false; if ( Object.keys( this.userData ).length > 0 ) data.userData = this.userData; // TODO: Copied from Object3D.toJSON function extractFromCache( cache ) { const values = []; for ( const key in cache ) { const data = cache[ key ]; delete data.metadata; values.push( data ); } return values; } if ( isRootObject ) { const textures = extractFromCache( meta.textures ); const images = extractFromCache( meta.images ); if ( textures.length > 0 ) data.textures = textures; if ( images.length > 0 ) data.images = images; } return data; } clone() { return new this.constructor().copy( this ); } copy( source ) { this.name = source.name; this.blending = source.blending; this.side = source.side; this.vertexColors = source.vertexColors; this.opacity = source.opacity; this.transparent = source.transparent; this.blendSrc = source.blendSrc; this.blendDst = source.blendDst; this.blendEquation = source.blendEquation; this.blendSrcAlpha = source.blendSrcAlpha; this.blendDstAlpha = source.blendDstAlpha; this.blendEquationAlpha = source.blendEquationAlpha; this.depthFunc = source.depthFunc; this.depthTest = source.depthTest; this.depthWrite = source.depthWrite; this.stencilWriteMask = source.stencilWriteMask; this.stencilFunc = source.stencilFunc; this.stencilRef = source.stencilRef; this.stencilFuncMask = source.stencilFuncMask; this.stencilFail = source.stencilFail; this.stencilZFail = source.stencilZFail; this.stencilZPass = source.stencilZPass; this.stencilWrite = source.stencilWrite; const srcPlanes = source.clippingPlanes; let dstPlanes = null; if ( srcPlanes !== null ) { const n = srcPlanes.length; dstPlanes = new Array( n ); for ( let i = 0; i !== n; ++ i ) { dstPlanes[ i ] = srcPlanes[ i ].clone(); } } this.clippingPlanes = dstPlanes; this.clipIntersection = source.clipIntersection; this.clipShadows = source.clipShadows; this.shadowSide = source.shadowSide; this.colorWrite = source.colorWrite; this.precision = source.precision; this.polygonOffset = source.polygonOffset; this.polygonOffsetFactor = source.polygonOffsetFactor; this.polygonOffsetUnits = source.polygonOffsetUnits; this.dithering = source.dithering; this.alphaTest = source.alphaTest; this.alphaToCoverage = source.alphaToCoverage; this.premultipliedAlpha = source.premultipliedAlpha; this.forceSinglePass = source.forceSinglePass; this.visible = source.visible; this.toneMapped = source.toneMapped; this.userData = JSON.parse( JSON.stringify( source.userData ) ); return this; } dispose() { this.dispatchEvent( { type: 'dispose' } ); } set needsUpdate( value ) { if ( value === true ) this.version ++; } } class MeshBasicMaterial extends Material { constructor( parameters ) { super(); this.isMeshBasicMaterial = true; this.type = 'MeshBasicMaterial'; this.color = new Color( 0xffffff ); // emissive this.map = null; this.lightMap = null; this.lightMapIntensity = 1.0; this.aoMap = null; this.aoMapIntensity = 1.0; this.specularMap = null; this.alphaMap = null; this.envMap = null; this.combine = MultiplyOperation; this.reflectivity = 1; this.refractionRatio = 0.98; this.wireframe = false; this.wireframeLinewidth = 1; this.wireframeLinecap = 'round'; this.wireframeLinejoin = 'round'; this.fog = true; this.setValues( parameters ); } copy( source ) { super.copy( source ); this.color.copy( source.color ); this.map = source.map; this.lightMap = source.lightMap; this.lightMapIntensity = source.lightMapIntensity; this.aoMap = source.aoMap; this.aoMapIntensity = source.aoMapIntensity; this.specularMap = source.specularMap; this.alphaMap = source.alphaMap; this.envMap = source.envMap; this.combine = source.combine; this.reflectivity = source.reflectivity; this.refractionRatio = source.refractionRatio; this.wireframe = source.wireframe; this.wireframeLinewidth = source.wireframeLinewidth; this.wireframeLinecap = source.wireframeLinecap; this.wireframeLinejoin = source.wireframeLinejoin; this.fog = source.fog; return this; } } const _vector$9 = /*@__PURE__*/ new Vector3(); const _vector2$1 = /*@__PURE__*/ new Vector2(); class BufferAttribute { constructor( array, itemSize, normalized = false ) { if ( Array.isArray( array ) ) { throw new TypeError( 'THREE.BufferAttribute: array should be a Typed Array.' ); } this.isBufferAttribute = true; this.name = ''; this.array = array; this.itemSize = itemSize; this.count = array !== undefined ? array.length / itemSize : 0; this.normalized = normalized; this.usage = StaticDrawUsage; this.updateRange = { offset: 0, count: - 1 }; this.version = 0; } onUploadCallback() {} set needsUpdate( value ) { if ( value === true ) this.version ++; } setUsage( value ) { this.usage = value; return this; } copy( source ) { this.name = source.name; this.array = new source.array.constructor( source.array ); this.itemSize = source.itemSize; this.count = source.count; this.normalized = source.normalized; this.usage = source.usage; return this; } copyAt( index1, attribute, index2 ) { index1 *= this.itemSize; index2 *= attribute.itemSize; for ( let i = 0, l = this.itemSize; i < l; i ++ ) { this.array[ index1 + i ] = attribute.array[ index2 + i ]; } return this; } copyArray( array ) { this.array.set( array ); return this; } applyMatrix3( m ) { if ( this.itemSize === 2 ) { for ( let i = 0, l = this.count; i < l; i ++ ) { _vector2$1.fromBufferAttribute( this, i ); _vector2$1.applyMatrix3( m ); this.setXY( i, _vector2$1.x, _vector2$1.y ); } } else if ( this.itemSize === 3 ) { for ( let i = 0, l = this.count; i < l; i ++ ) { _vector$9.fromBufferAttribute( this, i ); _vector$9.applyMatrix3( m ); this.setXYZ( i, _vector$9.x, _vector$9.y, _vector$9.z ); } } return this; } applyMatrix4( m ) { for ( let i = 0, l = this.count; i < l; i ++ ) { _vector$9.fromBufferAttribute( this, i ); _vector$9.applyMatrix4( m ); this.setXYZ( i, _vector$9.x, _vector$9.y, _vector$9.z ); } return this; } applyNormalMatrix( m ) { for ( let i = 0, l = this.count; i < l; i ++ ) { _vector$9.fromBufferAttribute( this, i ); _vector$9.applyNormalMatrix( m ); this.setXYZ( i, _vector$9.x, _vector$9.y, _vector$9.z ); } return this; } transformDirection( m ) { for ( let i = 0, l = this.count; i < l; i ++ ) { _vector$9.fromBufferAttribute( this, i ); _vector$9.transformDirection( m ); this.setXYZ( i, _vector$9.x, _vector$9.y, _vector$9.z ); } return this; } set( value, offset = 0 ) { // Matching BufferAttribute constructor, do not normalize the array. this.array.set( value, offset ); return this; } getX( index ) { let x = this.array[ index * this.itemSize ]; if ( this.normalized ) x = denormalize( x, this.array ); return x; } setX( index, x ) { if ( this.normalized ) x = normalize( x, this.array ); this.array[ index * this.itemSize ] = x; return this; } getY( index ) { let y = this.array[ index * this.itemSize + 1 ]; if ( this.normalized ) y = denormalize( y, this.array ); return y; } setY( index, y ) { if ( this.normalized ) y = normalize( y, this.array ); this.array[ index * this.itemSize + 1 ] = y; return this; } getZ( index ) { let z = this.array[ index * this.itemSize + 2 ]; if ( this.normalized ) z = denormalize( z, this.array ); return z; } setZ( index, z ) { if ( this.normalized ) z = normalize( z, this.array ); this.array[ index * this.itemSize + 2 ] = z; return this; } getW( index ) { let w = this.array[ index * this.itemSize + 3 ]; if ( this.normalized ) w = denormalize( w, this.array ); return w; } setW( index, w ) { if ( this.normalized ) w = normalize( w, this.array ); this.array[ index * this.itemSize + 3 ] = w; return this; } setXY( index, x, y ) { index *= this.itemSize; if ( this.normalized ) { x = normalize( x, this.array ); y = normalize( y, this.array ); } this.array[ index + 0 ] = x; this.array[ index + 1 ] = y; return this; } setXYZ( index, x, y, z ) { index *= this.itemSize; if ( this.normalized ) { x = normalize( x, this.array ); y = normalize( y, this.array ); z = normalize( z, this.array ); } this.array[ index + 0 ] = x; this.array[ index + 1 ] = y; this.array[ index + 2 ] = z; return this; } setXYZW( index, x, y, z, w ) { index *= this.itemSize; if ( this.normalized ) { x = normalize( x, this.array ); y = normalize( y, this.array ); z = normalize( z, this.array ); w = normalize( w, this.array ); } this.array[ index + 0 ] = x; this.array[ index + 1 ] = y; this.array[ index + 2 ] = z; this.array[ index + 3 ] = w; return this; } onUpload( callback ) { this.onUploadCallback = callback; return this; } clone() { return new this.constructor( this.array, this.itemSize ).copy( this ); } toJSON() { const data = { itemSize: this.itemSize, type: this.array.constructor.name, array: Array.from( this.array ), normalized: this.normalized }; if ( this.name !== '' ) data.name = this.name; if ( this.usage !== StaticDrawUsage ) data.usage = this.usage; if ( this.updateRange.offset !== 0 || this.updateRange.count !== - 1 ) data.updateRange = this.updateRange; return data; } // @deprecated copyColorsArray() { console.error( 'THREE.BufferAttribute: copyColorsArray() was removed in r144.' ); } copyVector2sArray() { console.error( 'THREE.BufferAttribute: copyVector2sArray() was removed in r144.' ); } copyVector3sArray() { console.error( 'THREE.BufferAttribute: copyVector3sArray() was removed in r144.' ); } copyVector4sArray() { console.error( 'THREE.BufferAttribute: copyVector4sArray() was removed in r144.' ); } } class Uint16BufferAttribute extends BufferAttribute { constructor( array, itemSize, normalized ) { super( new Uint16Array( array ), itemSize, normalized ); } } class Uint32BufferAttribute extends BufferAttribute { constructor( array, itemSize, normalized ) { super( new Uint32Array( array ), itemSize, normalized ); } } class Float32BufferAttribute extends BufferAttribute { constructor( array, itemSize, normalized ) { super( new Float32Array( array ), itemSize, normalized ); } } let _id$1 = 0; const _m1 = /*@__PURE__*/ new Matrix4(); const _obj = /*@__PURE__*/ new Object3D(); const _offset = /*@__PURE__*/ new Vector3(); const _box$1 = /*@__PURE__*/ new Box3(); const _boxMorphTargets = /*@__PURE__*/ new Box3(); const _vector$8 = /*@__PURE__*/ new Vector3(); class BufferGeometry extends EventDispatcher { constructor() { super(); this.isBufferGeometry = true; Object.defineProperty( this, 'id', { value: _id$1 ++ } ); this.uuid = generateUUID(); this.name = ''; this.type = 'BufferGeometry'; this.index = null; this.attributes = {}; this.morphAttributes = {}; this.morphTargetsRelative = false; this.groups = []; this.boundingBox = null; this.boundingSphere = null; this.drawRange = { start: 0, count: Infinity }; this.userData = {}; } getIndex() { return this.index; } setIndex( index ) { if ( Array.isArray( index ) ) { this.index = new ( arrayNeedsUint32( index ) ? Uint32BufferAttribute : Uint16BufferAttribute )( index, 1 ); } else { this.index = index; } return this; } getAttribute( name ) { return this.attributes[ name ]; } setAttribute( name, attribute ) { this.attributes[ name ] = attribute; return this; } deleteAttribute( name ) { delete this.attributes[ name ]; return this; } hasAttribute( name ) { return this.attributes[ name ] !== undefined; } addGroup( start, count, materialIndex = 0 ) { this.groups.push( { start: start, count: count, materialIndex: materialIndex } ); } clearGroups() { this.groups = []; } setDrawRange( start, count ) { this.drawRange.start = start; this.drawRange.count = count; } applyMatrix4( matrix ) { const position = this.attributes.position; if ( position !== undefined ) { position.applyMatrix4( matrix ); position.needsUpdate = true; } const normal = this.attributes.normal; if ( normal !== undefined ) { const normalMatrix = new Matrix3().getNormalMatrix( matrix ); normal.applyNormalMatrix( normalMatrix ); normal.needsUpdate = true; } const tangent = this.attributes.tangent; if ( tangent !== undefined ) { tangent.transformDirection( matrix ); tangent.needsUpdate = true; } if ( this.boundingBox !== null ) { this.computeBoundingBox(); } if ( this.boundingSphere !== null ) { this.computeBoundingSphere(); } return this; } applyQuaternion( q ) { _m1.makeRotationFromQuaternion( q ); this.applyMatrix4( _m1 ); return this; } rotateX( angle ) { // rotate geometry around world x-axis _m1.makeRotationX( angle ); this.applyMatrix4( _m1 ); return this; } rotateY( angle ) { // rotate geometry around world y-axis _m1.makeRotationY( angle ); this.applyMatrix4( _m1 ); return this; } rotateZ( angle ) { // rotate geometry around world z-axis _m1.makeRotationZ( angle ); this.applyMatrix4( _m1 ); return this; } translate( x, y, z ) { // translate geometry _m1.makeTranslation( x, y, z ); this.applyMatrix4( _m1 ); return this; } scale( x, y, z ) { // scale geometry _m1.makeScale( x, y, z ); this.applyMatrix4( _m1 ); return this; } lookAt( vector ) { _obj.lookAt( vector ); _obj.updateMatrix(); this.applyMatrix4( _obj.matrix ); return this; } center() { this.computeBoundingBox(); this.boundingBox.getCenter( _offset ).negate(); this.translate( _offset.x, _offset.y, _offset.z ); return this; } setFromPoints( points ) { const position = []; for ( let i = 0, l = points.length; i < l; i ++ ) { const point = points[ i ]; position.push( point.x, point.y, point.z || 0 ); } this.setAttribute( 'position', new Float32BufferAttribute( position, 3 ) ); return this; } computeBoundingBox() { if ( this.boundingBox === null ) { this.boundingBox = new Box3(); } const position = this.attributes.position; const morphAttributesPosition = this.morphAttributes.position; if ( position && position.isGLBufferAttribute ) { console.error( 'THREE.BufferGeometry.computeBoundingBox(): GLBufferAttribute requires a manual bounding box. Alternatively set "mesh.frustumCulled" to "false".', this ); this.boundingBox.set( new Vector3( - Infinity, - Infinity, - Infinity ), new Vector3( + Infinity, + Infinity, + Infinity ) ); return; } if ( position !== undefined ) { this.boundingBox.setFromBufferAttribute( position ); // process morph attributes if present if ( morphAttributesPosition ) { for ( let i = 0, il = morphAttributesPosition.length; i < il; i ++ ) { const morphAttribute = morphAttributesPosition[ i ]; _box$1.setFromBufferAttribute( morphAttribute ); if ( this.morphTargetsRelative ) { _vector$8.addVectors( this.boundingBox.min, _box$1.min ); this.boundingBox.expandByPoint( _vector$8 ); _vector$8.addVectors( this.boundingBox.max, _box$1.max ); this.boundingBox.expandByPoint( _vector$8 ); } else { this.boundingBox.expandByPoint( _box$1.min ); this.boundingBox.expandByPoint( _box$1.max ); } } } } else { this.boundingBox.makeEmpty(); } if ( isNaN( this.boundingBox.min.x ) || isNaN( this.boundingBox.min.y ) || isNaN( this.boundingBox.min.z ) ) { console.error( 'THREE.BufferGeometry.computeBoundingBox(): Computed min/max have NaN values. The "position" attribute is likely to have NaN values.', this ); } } computeBoundingSphere() { if ( this.boundingSphere === null ) { this.boundingSphere = new Sphere(); } const position = this.attributes.position; const morphAttributesPosition = this.morphAttributes.position; if ( position && position.isGLBufferAttribute ) { console.error( 'THREE.BufferGeometry.computeBoundingSphere(): GLBufferAttribute requires a manual bounding sphere. Alternatively set "mesh.frustumCulled" to "false".', this ); this.boundingSphere.set( new Vector3(), Infinity ); return; } if ( position ) { // first, find the center of the bounding sphere const center = this.boundingSphere.center; _box$1.setFromBufferAttribute( position ); // process morph attributes if present if ( morphAttributesPosition ) { for ( let i = 0, il = morphAttributesPosition.length; i < il; i ++ ) { const morphAttribute = morphAttributesPosition[ i ]; _boxMorphTargets.setFromBufferAttribute( morphAttribute ); if ( this.morphTargetsRelative ) { _vector$8.addVectors( _box$1.min, _boxMorphTargets.min ); _box$1.expandByPoint( _vector$8 ); _vector$8.addVectors( _box$1.max, _boxMorphTargets.max ); _box$1.expandByPoint( _vector$8 ); } else { _box$1.expandByPoint( _boxMorphTargets.min ); _box$1.expandByPoint( _boxMorphTargets.max ); } } } _box$1.getCenter( center ); // second, try to find a boundingSphere with a radius smaller than the // boundingSphere of the boundingBox: sqrt(3) smaller in the best case let maxRadiusSq = 0; for ( let i = 0, il = position.count; i < il; i ++ ) { _vector$8.fromBufferAttribute( position, i ); maxRadiusSq = Math.max( maxRadiusSq, center.distanceToSquared( _vector$8 ) ); } // process morph attributes if present if ( morphAttributesPosition ) { for ( let i = 0, il = morphAttributesPosition.length; i < il; i ++ ) { const morphAttribute = morphAttributesPosition[ i ]; const morphTargetsRelative = this.morphTargetsRelative; for ( let j = 0, jl = morphAttribute.count; j < jl; j ++ ) { _vector$8.fromBufferAttribute( morphAttribute, j ); if ( morphTargetsRelative ) { _offset.fromBufferAttribute( position, j ); _vector$8.add( _offset ); } maxRadiusSq = Math.max( maxRadiusSq, center.distanceToSquared( _vector$8 ) ); } } } this.boundingSphere.radius = Math.sqrt( maxRadiusSq ); if ( isNaN( this.boundingSphere.radius ) ) { console.error( 'THREE.BufferGeometry.computeBoundingSphere(): Computed radius is NaN. The "position" attribute is likely to have NaN values.', this ); } } } computeTangents() { const index = this.index; const attributes = this.attributes; // based on http://www.terathon.com/code/tangent.html // (per vertex tangents) if ( index === null || attributes.position === undefined || attributes.normal === undefined || attributes.uv === undefined ) { console.error( 'THREE.BufferGeometry: .computeTangents() failed. Missing required attributes (index, position, normal or uv)' ); return; } const indices = index.array; const positions = attributes.position.array; const normals = attributes.normal.array; const uvs = attributes.uv.array; const nVertices = positions.length / 3; if ( this.hasAttribute( 'tangent' ) === false ) { this.setAttribute( 'tangent', new BufferAttribute( new Float32Array( 4 * nVertices ), 4 ) ); } const tangents = this.getAttribute( 'tangent' ).array; const tan1 = [], tan2 = []; for ( let i = 0; i < nVertices; i ++ ) { tan1[ i ] = new Vector3(); tan2[ i ] = new Vector3(); } const vA = new Vector3(), vB = new Vector3(), vC = new Vector3(), uvA = new Vector2(), uvB = new Vector2(), uvC = new Vector2(), sdir = new Vector3(), tdir = new Vector3(); function handleTriangle( a, b, c ) { vA.fromArray( positions, a * 3 ); vB.fromArray( positions, b * 3 ); vC.fromArray( positions, c * 3 ); uvA.fromArray( uvs, a * 2 ); uvB.fromArray( uvs, b * 2 ); uvC.fromArray( uvs, c * 2 ); vB.sub( vA ); vC.sub( vA ); uvB.sub( uvA ); uvC.sub( uvA ); const r = 1.0 / ( uvB.x * uvC.y - uvC.x * uvB.y ); // silently ignore degenerate uv triangles having coincident or colinear vertices if ( ! isFinite( r ) ) return; sdir.copy( vB ).multiplyScalar( uvC.y ).addScaledVector( vC, - uvB.y ).multiplyScalar( r ); tdir.copy( vC ).multiplyScalar( uvB.x ).addScaledVector( vB, - uvC.x ).multiplyScalar( r ); tan1[ a ].add( sdir ); tan1[ b ].add( sdir ); tan1[ c ].add( sdir ); tan2[ a ].add( tdir ); tan2[ b ].add( tdir ); tan2[ c ].add( tdir ); } let groups = this.groups; if ( groups.length === 0 ) { groups = [ { start: 0, count: indices.length } ]; } for ( let i = 0, il = groups.length; i < il; ++ i ) { const group = groups[ i ]; const start = group.start; const count = group.count; for ( let j = start, jl = start + count; j < jl; j += 3 ) { handleTriangle( indices[ j + 0 ], indices[ j + 1 ], indices[ j + 2 ] ); } } const tmp = new Vector3(), tmp2 = new Vector3(); const n = new Vector3(), n2 = new Vector3(); function handleVertex( v ) { n.fromArray( normals, v * 3 ); n2.copy( n ); const t = tan1[ v ]; // Gram-Schmidt orthogonalize tmp.copy( t ); tmp.sub( n.multiplyScalar( n.dot( t ) ) ).normalize(); // Calculate handedness tmp2.crossVectors( n2, t ); const test = tmp2.dot( tan2[ v ] ); const w = ( test < 0.0 ) ? - 1.0 : 1.0; tangents[ v * 4 ] = tmp.x; tangents[ v * 4 + 1 ] = tmp.y; tangents[ v * 4 + 2 ] = tmp.z; tangents[ v * 4 + 3 ] = w; } for ( let i = 0, il = groups.length; i < il; ++ i ) { const group = groups[ i ]; const start = group.start; const count = group.count; for ( let j = start, jl = start + count; j < jl; j += 3 ) { handleVertex( indices[ j + 0 ] ); handleVertex( indices[ j + 1 ] ); handleVertex( indices[ j + 2 ] ); } } } computeVertexNormals() { const index = this.index; const positionAttribute = this.getAttribute( 'position' ); if ( positionAttribute !== undefined ) { let normalAttribute = this.getAttribute( 'normal' ); if ( normalAttribute === undefined ) { normalAttribute = new BufferAttribute( new Float32Array( positionAttribute.count * 3 ), 3 ); this.setAttribute( 'normal', normalAttribute ); } else { // reset existing normals to zero for ( let i = 0, il = normalAttribute.count; i < il; i ++ ) { normalAttribute.setXYZ( i, 0, 0, 0 ); } } const pA = new Vector3(), pB = new Vector3(), pC = new Vector3(); const nA = new Vector3(), nB = new Vector3(), nC = new Vector3(); const cb = new Vector3(), ab = new Vector3(); // indexed elements if ( index ) { for ( let i = 0, il = index.count; i < il; i += 3 ) { const vA = index.getX( i + 0 ); const vB = index.getX( i + 1 ); const vC = index.getX( i + 2 ); pA.fromBufferAttribute( positionAttribute, vA ); pB.fromBufferAttribute( positionAttribute, vB ); pC.fromBufferAttribute( positionAttribute, vC ); cb.subVectors( pC, pB ); ab.subVectors( pA, pB ); cb.cross( ab ); nA.fromBufferAttribute( normalAttribute, vA ); nB.fromBufferAttribute( normalAttribute, vB ); nC.fromBufferAttribute( normalAttribute, vC ); nA.add( cb ); nB.add( cb ); nC.add( cb ); normalAttribute.setXYZ( vA, nA.x, nA.y, nA.z ); normalAttribute.setXYZ( vB, nB.x, nB.y, nB.z ); normalAttribute.setXYZ( vC, nC.x, nC.y, nC.z ); } } else { // non-indexed elements (unconnected triangle soup) for ( let i = 0, il = positionAttribute.count; i < il; i += 3 ) { pA.fromBufferAttribute( positionAttribute, i + 0 ); pB.fromBufferAttribute( positionAttribute, i + 1 ); pC.fromBufferAttribute( positionAttribute, i + 2 ); cb.subVectors( pC, pB ); ab.subVectors( pA, pB ); cb.cross( ab ); normalAttribute.setXYZ( i + 0, cb.x, cb.y, cb.z ); normalAttribute.setXYZ( i + 1, cb.x, cb.y, cb.z ); normalAttribute.setXYZ( i + 2, cb.x, cb.y, cb.z ); } } this.normalizeNormals(); normalAttribute.needsUpdate = true; } } // @deprecated since r144 merge() { console.error( 'THREE.BufferGeometry.merge() has been removed. Use THREE.BufferGeometryUtils.mergeBufferGeometries() instead.' ); return this; } normalizeNormals() { const normals = this.attributes.normal; for ( let i = 0, il = normals.count; i < il; i ++ ) { _vector$8.fromBufferAttribute( normals, i ); _vector$8.normalize(); normals.setXYZ( i, _vector$8.x, _vector$8.y, _vector$8.z ); } } toNonIndexed() { function convertBufferAttribute( attribute, indices ) { const array = attribute.array; const itemSize = attribute.itemSize; const normalized = attribute.normalized; const array2 = new array.constructor( indices.length * itemSize ); let index = 0, index2 = 0; for ( let i = 0, l = indices.length; i < l; i ++ ) { if ( attribute.isInterleavedBufferAttribute ) { index = indices[ i ] * attribute.data.stride + attribute.offset; } else { index = indices[ i ] * itemSize; } for ( let j = 0; j < itemSize; j ++ ) { array2[ index2 ++ ] = array[ index ++ ]; } } return new BufferAttribute( array2, itemSize, normalized ); } // if ( this.index === null ) { console.warn( 'THREE.BufferGeometry.toNonIndexed(): BufferGeometry is already non-indexed.' ); return this; } const geometry2 = new BufferGeometry(); const indices = this.index.array; const attributes = this.attributes; // attributes for ( const name in attributes ) { const attribute = attributes[ name ]; const newAttribute = convertBufferAttribute( attribute, indices ); geometry2.setAttribute( name, newAttribute ); } // morph attributes const morphAttributes = this.morphAttributes; for ( const name in morphAttributes ) { const morphArray = []; const morphAttribute = morphAttributes[ name ]; // morphAttribute: array of Float32BufferAttributes for ( let i = 0, il = morphAttribute.length; i < il; i ++ ) { const attribute = morphAttribute[ i ]; const newAttribute = convertBufferAttribute( attribute, indices ); morphArray.push( newAttribute ); } geometry2.morphAttributes[ name ] = morphArray; } geometry2.morphTargetsRelative = this.morphTargetsRelative; // groups const groups = this.groups; for ( let i = 0, l = groups.length; i < l; i ++ ) { const group = groups[ i ]; geometry2.addGroup( group.start, group.count, group.materialIndex ); } return geometry2; } toJSON() { const data = { metadata: { version: 4.5, type: 'BufferGeometry', generator: 'BufferGeometry.toJSON' } }; // standard BufferGeometry serialization data.uuid = this.uuid; data.type = this.type; if ( this.name !== '' ) data.name = this.name; if ( Object.keys( this.userData ).length > 0 ) data.userData = this.userData; if ( this.parameters !== undefined ) { const parameters = this.parameters; for ( const key in parameters ) { if ( parameters[ key ] !== undefined ) data[ key ] = parameters[ key ]; } return data; } // for simplicity the code assumes attributes are not shared across geometries, see #15811 data.data = { attributes: {} }; const index = this.index; if ( index !== null ) { data.data.index = { type: index.array.constructor.name, array: Array.prototype.slice.call( index.array ) }; } const attributes = this.attributes; for ( const key in attributes ) { const attribute = attributes[ key ]; data.data.attributes[ key ] = attribute.toJSON( data.data ); } const morphAttributes = {}; let hasMorphAttributes = false; for ( const key in this.morphAttributes ) { const attributeArray = this.morphAttributes[ key ]; const array = []; for ( let i = 0, il = attributeArray.length; i < il; i ++ ) { const attribute = attributeArray[ i ]; array.push( attribute.toJSON( data.data ) ); } if ( array.length > 0 ) { morphAttributes[ key ] = array; hasMorphAttributes = true; } } if ( hasMorphAttributes ) { data.data.morphAttributes = morphAttributes; data.data.morphTargetsRelative = this.morphTargetsRelative; } const groups = this.groups; if ( groups.length > 0 ) { data.data.groups = JSON.parse( JSON.stringify( groups ) ); } const boundingSphere = this.boundingSphere; if ( boundingSphere !== null ) { data.data.boundingSphere = { center: boundingSphere.center.toArray(), radius: boundingSphere.radius }; } return data; } clone() { return new this.constructor().copy( this ); } copy( source ) { // reset this.index = null; this.attributes = {}; this.morphAttributes = {}; this.groups = []; this.boundingBox = null; this.boundingSphere = null; // used for storing cloned, shared data const data = {}; // name this.name = source.name; // index const index = source.index; if ( index !== null ) { this.setIndex( index.clone( data ) ); } // attributes const attributes = source.attributes; for ( const name in attributes ) { const attribute = attributes[ name ]; this.setAttribute( name, attribute.clone( data ) ); } // morph attributes const morphAttributes = source.morphAttributes; for ( const name in morphAttributes ) { const array = []; const morphAttribute = morphAttributes[ name ]; // morphAttribute: array of Float32BufferAttributes for ( let i = 0, l = morphAttribute.length; i < l; i ++ ) { array.push( morphAttribute[ i ].clone( data ) ); } this.morphAttributes[ name ] = array; } this.morphTargetsRelative = source.morphTargetsRelative; // groups const groups = source.groups; for ( let i = 0, l = groups.length; i < l; i ++ ) { const group = groups[ i ]; this.addGroup( group.start, group.count, group.materialIndex ); } // bounding box const boundingBox = source.boundingBox; if ( boundingBox !== null ) { this.boundingBox = boundingBox.clone(); } // bounding sphere const boundingSphere = source.boundingSphere; if ( boundingSphere !== null ) { this.boundingSphere = boundingSphere.clone(); } // draw range this.drawRange.start = source.drawRange.start; this.drawRange.count = source.drawRange.count; // user data this.userData = source.userData; // geometry generator parameters if ( source.parameters !== undefined ) this.parameters = Object.assign( {}, source.parameters ); return this; } dispose() { this.dispatchEvent( { type: 'dispose' } ); } } const _inverseMatrix$2 = /*@__PURE__*/ new Matrix4(); const _ray$2 = /*@__PURE__*/ new Ray(); const _sphere$3 = /*@__PURE__*/ new Sphere(); const _vA$1 = /*@__PURE__*/ new Vector3(); const _vB$1 = /*@__PURE__*/ new Vector3(); const _vC$1 = /*@__PURE__*/ new Vector3(); const _tempA = /*@__PURE__*/ new Vector3(); const _morphA = /*@__PURE__*/ new Vector3(); const _uvA$1 = /*@__PURE__*/ new Vector2(); const _uvB$1 = /*@__PURE__*/ new Vector2(); const _uvC$1 = /*@__PURE__*/ new Vector2(); const _intersectionPoint = /*@__PURE__*/ new Vector3(); const _intersectionPointWorld = /*@__PURE__*/ new Vector3(); class Mesh extends Object3D { constructor( geometry = new BufferGeometry(), material = new MeshBasicMaterial() ) { super(); this.isMesh = true; this.type = 'Mesh'; this.geometry = geometry; this.material = material; this.updateMorphTargets(); } copy( source, recursive ) { super.copy( source, recursive ); if ( source.morphTargetInfluences !== undefined ) { this.morphTargetInfluences = source.morphTargetInfluences.slice(); } if ( source.morphTargetDictionary !== undefined ) { this.morphTargetDictionary = Object.assign( {}, source.morphTargetDictionary ); } this.material = source.material; this.geometry = source.geometry; return this; } updateMorphTargets() { const geometry = this.geometry; const morphAttributes = geometry.morphAttributes; const keys = Object.keys( morphAttributes ); if ( keys.length > 0 ) { const morphAttribute = morphAttributes[ keys[ 0 ] ]; if ( morphAttribute !== undefined ) { this.morphTargetInfluences = []; this.morphTargetDictionary = {}; for ( let m = 0, ml = morphAttribute.length; m < ml; m ++ ) { const name = morphAttribute[ m ].name || String( m ); this.morphTargetInfluences.push( 0 ); this.morphTargetDictionary[ name ] = m; } } } } getVertexPosition( index, target ) { const geometry = this.geometry; const position = geometry.attributes.position; const morphPosition = geometry.morphAttributes.position; const morphTargetsRelative = geometry.morphTargetsRelative; target.fromBufferAttribute( position, index ); const morphInfluences = this.morphTargetInfluences; if ( morphPosition && morphInfluences ) { _morphA.set( 0, 0, 0 ); for ( let i = 0, il = morphPosition.length; i < il; i ++ ) { const influence = morphInfluences[ i ]; const morphAttribute = morphPosition[ i ]; if ( influence === 0 ) continue; _tempA.fromBufferAttribute( morphAttribute, index ); if ( morphTargetsRelative ) { _morphA.addScaledVector( _tempA, influence ); } else { _morphA.addScaledVector( _tempA.sub( target ), influence ); } } target.add( _morphA ); } if ( this.isSkinnedMesh ) { this.boneTransform( index, target ); } return target; } raycast( raycaster, intersects ) { const geometry = this.geometry; const material = this.material; const matrixWorld = this.matrixWorld; if ( material === undefined ) return; // Checking boundingSphere distance to ray if ( geometry.boundingSphere === null ) geometry.computeBoundingSphere(); _sphere$3.copy( geometry.boundingSphere ); _sphere$3.applyMatrix4( matrixWorld ); if ( raycaster.ray.intersectsSphere( _sphere$3 ) === false ) return; // _inverseMatrix$2.copy( matrixWorld ).invert(); _ray$2.copy( raycaster.ray ).applyMatrix4( _inverseMatrix$2 ); // Check boundingBox before continuing if ( geometry.boundingBox !== null ) { if ( _ray$2.intersectsBox( geometry.boundingBox ) === false ) return; } let intersection; const index = geometry.index; const position = geometry.attributes.position; const uv = geometry.attributes.uv; const uv2 = geometry.attributes.uv2; const groups = geometry.groups; const drawRange = geometry.drawRange; if ( index !== null ) { // indexed buffer geometry if ( Array.isArray( material ) ) { for ( let i = 0, il = groups.length; i < il; i ++ ) { const group = groups[ i ]; const groupMaterial = material[ group.materialIndex ]; const start = Math.max( group.start, drawRange.start ); const end = Math.min( index.count, Math.min( ( group.start + group.count ), ( drawRange.start + drawRange.count ) ) ); for ( let j = start, jl = end; j < jl; j += 3 ) { const a = index.getX( j ); const b = index.getX( j + 1 ); const c = index.getX( j + 2 ); intersection = checkBufferGeometryIntersection( this, groupMaterial, raycaster, _ray$2, uv, uv2, a, b, c ); if ( intersection ) { intersection.faceIndex = Math.floor( j / 3 ); // triangle number in indexed buffer semantics intersection.face.materialIndex = group.materialIndex; intersects.push( intersection ); } } } } else { const start = Math.max( 0, drawRange.start ); const end = Math.min( index.count, ( drawRange.start + drawRange.count ) ); for ( let i = start, il = end; i < il; i += 3 ) { const a = index.getX( i ); const b = index.getX( i + 1 ); const c = index.getX( i + 2 ); intersection = checkBufferGeometryIntersection( this, material, raycaster, _ray$2, uv, uv2, a, b, c ); if ( intersection ) { intersection.faceIndex = Math.floor( i / 3 ); // triangle number in indexed buffer semantics intersects.push( intersection ); } } } } else if ( position !== undefined ) { // non-indexed buffer geometry if ( Array.isArray( material ) ) { for ( let i = 0, il = groups.length; i < il; i ++ ) { const group = groups[ i ]; const groupMaterial = material[ group.materialIndex ]; const start = Math.max( group.start, drawRange.start ); const end = Math.min( position.count, Math.min( ( group.start + group.count ), ( drawRange.start + drawRange.count ) ) ); for ( let j = start, jl = end; j < jl; j += 3 ) { const a = j; const b = j + 1; const c = j + 2; intersection = checkBufferGeometryIntersection( this, groupMaterial, raycaster, _ray$2, uv, uv2, a, b, c ); if ( intersection ) { intersection.faceIndex = Math.floor( j / 3 ); // triangle number in non-indexed buffer semantics intersection.face.materialIndex = group.materialIndex; intersects.push( intersection ); } } } } else { const start = Math.max( 0, drawRange.start ); const end = Math.min( position.count, ( drawRange.start + drawRange.count ) ); for ( let i = start, il = end; i < il; i += 3 ) { const a = i; const b = i + 1; const c = i + 2; intersection = checkBufferGeometryIntersection( this, material, raycaster, _ray$2, uv, uv2, a, b, c ); if ( intersection ) { intersection.faceIndex = Math.floor( i / 3 ); // triangle number in non-indexed buffer semantics intersects.push( intersection ); } } } } } } function checkIntersection( object, material, raycaster, ray, pA, pB, pC, point ) { let intersect; if ( material.side === BackSide ) { intersect = ray.intersectTriangle( pC, pB, pA, true, point ); } else { intersect = ray.intersectTriangle( pA, pB, pC, ( material.side === FrontSide ), point ); } if ( intersect === null ) return null; _intersectionPointWorld.copy( point ); _intersectionPointWorld.applyMatrix4( object.matrixWorld ); const distance = raycaster.ray.origin.distanceTo( _intersectionPointWorld ); if ( distance < raycaster.near || distance > raycaster.far ) return null; return { distance: distance, point: _intersectionPointWorld.clone(), object: object }; } function checkBufferGeometryIntersection( object, material, raycaster, ray, uv, uv2, a, b, c ) { object.getVertexPosition( a, _vA$1 ); object.getVertexPosition( b, _vB$1 ); object.getVertexPosition( c, _vC$1 ); const intersection = checkIntersection( object, material, raycaster, ray, _vA$1, _vB$1, _vC$1, _intersectionPoint ); if ( intersection ) { if ( uv ) { _uvA$1.fromBufferAttribute( uv, a ); _uvB$1.fromBufferAttribute( uv, b ); _uvC$1.fromBufferAttribute( uv, c ); intersection.uv = Triangle.getUV( _intersectionPoint, _vA$1, _vB$1, _vC$1, _uvA$1, _uvB$1, _uvC$1, new Vector2() ); } if ( uv2 ) { _uvA$1.fromBufferAttribute( uv2, a ); _uvB$1.fromBufferAttribute( uv2, b ); _uvC$1.fromBufferAttribute( uv2, c ); intersection.uv2 = Triangle.getUV( _intersectionPoint, _vA$1, _vB$1, _vC$1, _uvA$1, _uvB$1, _uvC$1, new Vector2() ); } const face = { a: a, b: b, c: c, normal: new Vector3(), materialIndex: 0 }; Triangle.getNormal( _vA$1, _vB$1, _vC$1, face.normal ); intersection.face = face; } return intersection; } class MeshLambertMaterial extends Material { constructor( parameters ) { super(); this.isMeshLambertMaterial = true; this.type = 'MeshLambertMaterial'; this.color = new Color( 0xffffff ); // diffuse this.map = null; this.lightMap = null; this.lightMapIntensity = 1.0; this.aoMap = null; this.aoMapIntensity = 1.0; this.emissive = new Color( 0x000000 ); this.emissiveIntensity = 1.0; this.emissiveMap = null; this.bumpMap = null; this.bumpScale = 1; this.normalMap = null; this.normalMapType = TangentSpaceNormalMap; this.normalScale = new Vector2( 1, 1 ); this.displacementMap = null; this.displacementScale = 1; this.displacementBias = 0; this.specularMap = null; this.alphaMap = null; this.envMap = null; this.combine = MultiplyOperation; this.reflectivity = 1; this.refractionRatio = 0.98; this.wireframe = false; this.wireframeLinewidth = 1; this.wireframeLinecap = 'round'; this.wireframeLinejoin = 'round'; this.flatShading = false; this.fog = true; this.setValues( parameters ); } copy( source ) { super.copy( source ); this.color.copy( source.color ); this.map = source.map; this.lightMap = source.lightMap; this.lightMapIntensity = source.lightMapIntensity; this.aoMap = source.aoMap; this.aoMapIntensity = source.aoMapIntensity; this.emissive.copy( source.emissive ); this.emissiveMap = source.emissiveMap; this.emissiveIntensity = source.emissiveIntensity; this.bumpMap = source.bumpMap; this.bumpScale = source.bumpScale; this.normalMap = source.normalMap; this.normalMapType = source.normalMapType; this.normalScale.copy( source.normalScale ); this.displacementMap = source.displacementMap; this.displacementScale = source.displacementScale; this.displacementBias = source.displacementBias; this.specularMap = source.specularMap; this.alphaMap = source.alphaMap; this.envMap = source.envMap; this.combine = source.combine; this.reflectivity = source.reflectivity; this.refractionRatio = source.refractionRatio; this.wireframe = source.wireframe; this.wireframeLinewidth = source.wireframeLinewidth; this.wireframeLinecap = source.wireframeLinecap; this.wireframeLinejoin = source.wireframeLinejoin; this.flatShading = source.flatShading; this.fog = source.fog; return this; } } if ( typeof __THREE_DEVTOOLS__ !== 'undefined' ) { __THREE_DEVTOOLS__.dispatchEvent( new CustomEvent( 'register', { detail: { revision: REVISION, } } ) ); } if ( typeof window !== 'undefined' ) { if ( window.__THREE__ ) { console.warn( 'WARNING: Multiple instances of Three.js being imported.' ); } else { window.__THREE__ = REVISION; } } const nullIfcManagerErrorMessage = 'IfcManager is null!'; class IFCModel extends Mesh { constructor() { super(...arguments); this.modelID = IFCModel.modelIdCounter++; this.ifcManager = null; this.mesh = this; } static dispose() { IFCModel.modelIdCounter = 0; } setIFCManager(manager) { this.ifcManager = manager; } setWasmPath(path) { if (this.ifcManager === null) throw new Error(nullIfcManagerErrorMessage); this.ifcManager.setWasmPath(path); } close(scene) { if (this.ifcManager === null) throw new Error(nullIfcManagerErrorMessage); this.ifcManager.close(this.modelID, scene); } getExpressId(geometry, faceIndex) { if (this.ifcManager === null) throw new Error(nullIfcManagerErrorMessage); return this.ifcManager.getExpressId(geometry, faceIndex); } getAllItemsOfType(type, verbose) { if (this.ifcManager === null) throw new Error(nullIfcManagerErrorMessage); return this.ifcManager.getAllItemsOfType(this.modelID, type, verbose); } getItemProperties(id, recursive = false) { if (this.ifcManager === null) throw new Error(nullIfcManagerErrorMessage); return this.ifcManager.getItemProperties(this.modelID, id, recursive); } getPropertySets(id, recursive = false) { if (this.ifcManager === null) throw new Error(nullIfcManagerErrorMessage); return this.ifcManager.getPropertySets(this.modelID, id, recursive); } getTypeProperties(id, recursive = false) { if (this.ifcManager === null) throw new Error(nullIfcManagerErrorMessage); return this.ifcManager.getTypeProperties(this.modelID, id, recursive); } getIfcType(id) { if (this.ifcManager === null) throw new Error(nullIfcManagerErrorMessage); return this.ifcManager.getIfcType(this.modelID, id); } getSpatialStructure() { if (this.ifcManager === null) throw new Error(nullIfcManagerErrorMessage); return this.ifcManager.getSpatialStructure(this.modelID); } getSubset(material) { if (this.ifcManager === null) throw new Error(nullIfcManagerErrorMessage); return this.ifcManager.getSubset(this.modelID, material); } removeSubset(material, customID) { if (this.ifcManager === null) throw new Error(nullIfcManagerErrorMessage); this.ifcManager.removeSubset(this.modelID, material, customID); } createSubset(config) { if (this.ifcManager === null) throw new Error(nullIfcManagerErrorMessage); const modelConfig = { ...config, modelID: this.modelID }; return this.ifcManager.createSubset(modelConfig); } } IFCModel.modelIdCounter = 0; class SerializedMaterial { constructor(material) { this.color = [material.color.r, material.color.g, material.color.b]; this.opacity = material.opacity; this.transparent = material.transparent; } } class MaterialReconstructor { static new(material) { return new MeshLambertMaterial({ color: new Color(material.color[0], material.color[1], material.color[2]), opacity: material.opacity, transparent: material.transparent, side: DoubleSide }); } } class SerializedGeometry { constructor(geometry) { var _a, _b, _c, _d; this.position = ((_a = geometry.attributes.position) === null || _a === void 0 ? void 0 : _a.array) || []; this.normal = ((_b = geometry.attributes.normal) === null || _b === void 0 ? void 0 : _b.array) || []; this.expressID = ((_c = geometry.attributes.expressID) === null || _c === void 0 ? void 0 : _c.array) || []; this.index = ((_d = geometry.index) === null || _d === void 0 ? void 0 : _d.array) || []; this.groups = geometry.groups; } } class GeometryReconstructor { static new(serialized) { const geom = new BufferGeometry(); GeometryReconstructor.set(geom, 'expressID', new Uint32Array(serialized.expressID), 1); GeometryReconstructor.set(geom, 'position', new Float32Array(serialized.position), 3); GeometryReconstructor.set(geom, 'normal', new Float32Array(serialized.normal), 3); geom.setIndex(Array.from(serialized.index)); geom.groups = serialized.groups; return geom; } static set(geom, name, data, size) { if (data.length > 0) { geom.setAttribute(name, new BufferAttribute(data, size)); } } } class SerializedMesh { constructor(model) { this.materials = []; this.modelID = model.modelID; this.geometry = new SerializedGeometry(model.geometry); if (Array.isArray(model.material)) { model.material.forEach(mat => { this.materials.push(new SerializedMaterial(mat)); }); } else { this.materials.push(new SerializedMaterial(model.material)); } } } class MeshReconstructor { static new(serialized) { const model = new IFCModel(); model.modelID = serialized.modelID; model.geometry = GeometryReconstructor.new(serialized.geometry); MeshReconstructor.getMaterials(serialized, model); return model; } static getMaterials(serialized, model) { model.material = []; const mats = model.material; serialized.materials.forEach(mat => { mats.push(MaterialReconstructor.new(mat)); }); } } class Serializer { serializeVector(vector) { const size = vector.size(); const serialized = { size }; for (let i = 0; i < size; i++) { serialized[i] = vector.get(i); } return serialized; } reconstructVector(vector) { return new Vector(vector); } serializeIfcGeometry(geometry) { const GetVertexData = geometry.GetVertexData(); const GetVertexDataSize = geometry.GetVertexDataSize(); const GetIndexData = geometry.GetIndexData(); const GetIndexDataSize = geometry.GetIndexDataSize(); return { GetVertexData, GetVertexDataSize, GetIndexData, GetIndexDataSize }; } reconstructIfcGeometry(geometry) { return new IfcGeometry(geometry); } serializeFlatMesh(flatMesh) { return { expressID: flatMesh.expressID, geometries: this.serializeVector(flatMesh.geometries) }; } reconstructFlatMesh(flatMesh) { return new FlatMesh(this, flatMesh); } serializeFlatMeshVector(vector) { const size = vector.size(); const serialized = { size }; for (let i = 0; i < size; i++) { const flatMesh = vector.get(i); serialized[i] = this.serializeFlatMesh(flatMesh); } return serialized; } reconstructFlatMeshVector(vector) { return new FlatMeshVector(this, vector); } serializeIfcModel(model) { return new SerializedMesh(model); } reconstructIfcModel(model) { return MeshReconstructor.new(model); } } var WorkerActions; (function (WorkerActions) { WorkerActions["updateStateUseJson"] = "updateStateUseJson"; WorkerActions["updateStateWebIfcSettings"] = "updateStateWebIfcSettings"; WorkerActions["updateModelStateTypes"] = "updateModelStateTypes"; WorkerActions["updateModelStateJsonData"] = "updateModelStateJsonData"; WorkerActions["loadJsonDataFromWorker"] = "loadJsonDataFromWorker"; WorkerActions["dispose"] = "dispose"; WorkerActions["Close"] = "Close"; WorkerActions["DisposeWebIfc"] = "DisposeWebIfc"; WorkerActions["Init"] = "Init"; WorkerActions["OpenModel"] = "OpenModel"; WorkerActions["CreateModel"] = "CreateModel"; WorkerActions["ExportFileAsIFC"] = "ExportFileAsIFC"; WorkerActions["GetGeometry"] = "GetGeometry"; WorkerActions["GetLine"] = "GetLine"; WorkerActions["GetAndClearErrors"] = "GetAndClearErrors"; WorkerActions["WriteLine"] = "WriteLine"; WorkerActions["FlattenLine"] = "FlattenLine"; WorkerActions["GetRawLineData"] = "GetRawLineData"; WorkerActions["WriteRawLineData"] = "WriteRawLineData"; WorkerActions["GetLineIDsWithType"] = "GetLineIDsWithType"; WorkerActions["GetAllLines"] = "GetAllLines"; WorkerActions["SetGeometryTransformation"] = "SetGeometryTransformation"; WorkerActions["GetCoordinationMatrix"] = "GetCoordinationMatrix"; WorkerActions["GetVertexArray"] = "GetVertexArray"; WorkerActions["GetIndexArray"] = "GetIndexArray"; WorkerActions["getSubArray"] = "getSubArray"; WorkerActions["CloseModel"] = "CloseModel"; WorkerActions["StreamAllMeshes"] = "StreamAllMeshes"; WorkerActions["StreamAllMeshesWithTypes"] = "StreamAllMeshesWithTypes"; WorkerActions["IsModelOpen"] = "IsModelOpen"; WorkerActions["LoadAllGeometry"] = "LoadAllGeometry"; WorkerActions["GetFlatMesh"] = "GetFlatMesh"; WorkerActions["SetWasmPath"] = "SetWasmPath"; WorkerActions["GetNameFromTypeCode"] = "GetNameFromTypeCode"; WorkerActions["GetIfcEntityList"] = "GetIfcEntityList"; WorkerActions["GetTypeCodeFromName"] = "GetTypeCodeFromName"; WorkerActions["parse"] = "parse"; WorkerActions["setupOptionalCategories"] = "setupOptionalCategories"; WorkerActions["getExpressId"] = "getExpressId"; WorkerActions["initializeProperties"] = "initializeProperties"; WorkerActions["getAllItemsOfType"] = "getAllItemsOfType"; WorkerActions["getItemProperties"] = "getItemProperties"; WorkerActions["getMaterialsProperties"] = "getMaterialsProperties"; WorkerActions["getPropertySets"] = "getPropertySets"; WorkerActions["getSpatialStructure"] = "getSpatialStructure"; WorkerActions["getTypeProperties"] = "getTypeProperties"; WorkerActions["getHeaderLine"] = "getHeaderLine"; })(WorkerActions || (WorkerActions = {})); var WorkerAPIs; (function (WorkerAPIs) { WorkerAPIs["workerState"] = "workerState"; WorkerAPIs["webIfc"] = "webIfc"; WorkerAPIs["properties"] = "properties"; WorkerAPIs["parser"] = "parser"; })(WorkerAPIs || (WorkerAPIs = {})); const ErrorRootStateNotAvailable = 'The root worker does not have any state'; const ErrorPropertiesNotAvailable = 'Error: Properties not available from web worker'; const ErrorParserNotAvailable = 'Error: Parser not available from web worker'; const ErrorBadJsonPath = 'Error: Model not available from web worker'; const ErrorBadJson = 'Error: The given Json could not be read as a JS object'; var __defProp = Object.defineProperty; var __defProps = Object.defineProperties; var __getOwnPropDescs = Object.getOwnPropertyDescriptors; var __getOwnPropSymbols = Object.getOwnPropertySymbols; var __hasOwnProp = Object.prototype.hasOwnProperty; var __propIsEnum = Object.prototype.propertyIsEnumerable; var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; var __spreadValues = (a, b) => { for (var prop in b || (b = {})) if (__hasOwnProp.call(b, prop)) __defNormalProp(a, prop, b[prop]); if (__getOwnPropSymbols) for (var prop of __getOwnPropSymbols(b)) { if (__propIsEnum.call(b, prop)) __defNormalProp(a, prop, b[prop]); } return a; }; var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b)); var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, { get: (a, b) => (typeof require !== "undefined" ? require : a)[b] }) : x)(function(x) { if (typeof require !== "undefined") return require.apply(this, arguments); throw new Error('Dynamic require of "' + x + '" is not supported'); }); var __commonJS = (cb, mod) => function __require2() { return mod || (0, cb[Object.keys(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports; }; var __async = (__this, __arguments, generator) => { return new Promise((resolve, reject) => { var fulfilled = (value) => { try { step(generator.next(value)); } catch (e) { reject(e); } }; var rejected = (value) => { try { step(generator.throw(value)); } catch (e) { reject(e); } }; var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected); step((generator = generator.apply(__this, __arguments)).next()); }); }; // (disabled):crypto var require_crypto = __commonJS({ "(disabled):crypto"() { } }); // dist/web-ifc-mt.js var require_web_ifc_mt = __commonJS({ "dist/web-ifc-mt.js"(exports, module) { var WebIFCWasm2 = (() => { var _scriptDir = typeof document !== "undefined" && document.currentScript ? document.currentScript.src : void 0; if (typeof __filename !== "undefined") _scriptDir = _scriptDir || __filename; return function(WebIFCWasm3 = {}) { function GROWABLE_HEAP_I8() { if (wasmMemory.buffer != HEAP8.buffer) { updateMemoryViews(); } return HEAP8; } function GROWABLE_HEAP_U8() { if (wasmMemory.buffer != HEAP8.buffer) { updateMemoryViews(); } return HEAPU8; } function GROWABLE_HEAP_I16() { if (wasmMemory.buffer != HEAP8.buffer) { updateMemoryViews(); } return HEAP16; } function GROWABLE_HEAP_U16() { if (wasmMemory.buffer != HEAP8.buffer) { updateMemoryViews(); } return HEAPU16; } function GROWABLE_HEAP_I32() { if (wasmMemory.buffer != HEAP8.buffer) { updateMemoryViews(); } return HEAP32; } function GROWABLE_HEAP_U32() { if (wasmMemory.buffer != HEAP8.buffer) { updateMemoryViews(); } return HEAPU32; } function GROWABLE_HEAP_F32() { if (wasmMemory.buffer != HEAP8.buffer) { updateMemoryViews(); } return HEAPF32; } function GROWABLE_HEAP_F64() { if (wasmMemory.buffer != HEAP8.buffer) { updateMemoryViews(); } return HEAPF64; } var Module = typeof WebIFCWasm3 != "undefined" ? WebIFCWasm3 : {}; var readyPromiseResolve, readyPromiseReject; Module["ready"] = new Promise(function(resolve, reject) { readyPromiseResolve = resolve; readyPromiseReject = reject; }); var moduleOverrides = Object.assign({}, Module); var thisProgram = "./this.program"; var quit_ = (status, toThrow) => { throw toThrow; }; var ENVIRONMENT_IS_WEB = typeof window == "object"; var ENVIRONMENT_IS_WORKER = typeof importScripts == "function"; var ENVIRONMENT_IS_NODE = typeof process == "object" && typeof process.versions == "object" && typeof process.versions.node == "string"; var ENVIRONMENT_IS_PTHREAD = Module["ENVIRONMENT_IS_PTHREAD"] || false; var scriptDirectory = ""; function locateFile(path) { if (Module["locateFile"]) { return Module["locateFile"](path, scriptDirectory); } return scriptDirectory + path; } var read_, readAsync, readBinary; function logExceptionOnExit(e) { if (e instanceof ExitStatus) return; let toLog = e; err("exiting due to exception: " + toLog); } if (ENVIRONMENT_IS_NODE) { var fs = __require("fs"); var nodePath = __require("path"); if (ENVIRONMENT_IS_WORKER) { scriptDirectory = nodePath.dirname(scriptDirectory) + "/"; } else { scriptDirectory = __dirname + "/"; } read_ = (filename, binary) => { filename = isFileURI(filename) ? new URL(filename) : nodePath.normalize(filename); return fs.readFileSync(filename, binary ? void 0 : "utf8"); }; readBinary = (filename) => { var ret = read_(filename, true); if (!ret.buffer) { ret = new Uint8Array(ret); } return ret; }; readAsync = (filename, onload, onerror) => { filename = isFileURI(filename) ? new URL(filename) : nodePath.normalize(filename); fs.readFile(filename, function(err2, data) { if (err2) onerror(err2); else onload(data.buffer); }); }; if (process["argv"].length > 1) { thisProgram = process["argv"][1].replace(/\\/g, "/"); } process["argv"].slice(2); process["on"]("uncaughtException", function(ex) { if (!(ex instanceof ExitStatus)) { throw ex; } }); var nodeMajor = process.version.match(/^v(\d+)\./)[1]; if (nodeMajor < 15) { process["on"]("unhandledRejection", function(reason) { throw reason; }); } quit_ = (status, toThrow) => { if (keepRuntimeAlive()) { process["exitCode"] = status; throw toThrow; } logExceptionOnExit(toThrow); process["exit"](status); }; Module["inspect"] = function() { return "[Emscripten Module object]"; }; let nodeWorkerThreads; try { nodeWorkerThreads = __require("worker_threads"); } catch (e) { console.error('The "worker_threads" module is not supported in this node.js build - perhaps a newer version is needed?'); throw e; } global.Worker = nodeWorkerThreads.Worker; } else if (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER) { if (ENVIRONMENT_IS_WORKER) { scriptDirectory = self.location.href; } else if (typeof document != "undefined" && document.currentScript) { scriptDirectory = document.currentScript.src; } if (_scriptDir) { scriptDirectory = _scriptDir; } if (scriptDirectory.indexOf("blob:") !== 0) { scriptDirectory = scriptDirectory.substr(0, scriptDirectory.replace(/[?#].*/, "").lastIndexOf("/") + 1); } else { scriptDirectory = ""; } if (!ENVIRONMENT_IS_NODE) { read_ = (url) => { var xhr = new XMLHttpRequest(); xhr.open("GET", url, false); xhr.send(null); return xhr.responseText; }; if (ENVIRONMENT_IS_WORKER) { readBinary = (url) => { var xhr = new XMLHttpRequest(); xhr.open("GET", url, false); xhr.responseType = "arraybuffer"; xhr.send(null); return new Uint8Array(xhr.response); }; } readAsync = (url, onload, onerror) => { var xhr = new XMLHttpRequest(); xhr.open("GET", url, true); xhr.responseType = "arraybuffer"; xhr.onload = () => { if (xhr.status == 200 || xhr.status == 0 && xhr.response) { onload(xhr.response); return; } onerror(); }; xhr.onerror = onerror; xhr.send(null); }; } } else ; if (ENVIRONMENT_IS_NODE) { if (typeof performance == "undefined") { global.performance = __require("perf_hooks").performance; } } var defaultPrint = console.log.bind(console); var defaultPrintErr = console.warn.bind(console); if (ENVIRONMENT_IS_NODE) { defaultPrint = (str) => fs.writeSync(1, str + "\n"); defaultPrintErr = (str) => fs.writeSync(2, str + "\n"); } var out = Module["print"] || defaultPrint; var err = Module["printErr"] || defaultPrintErr; Object.assign(Module, moduleOverrides); moduleOverrides = null; if (Module["arguments"]) Module["arguments"]; if (Module["thisProgram"]) thisProgram = Module["thisProgram"]; if (Module["quit"]) quit_ = Module["quit"]; var wasmBinary; if (Module["wasmBinary"]) wasmBinary = Module["wasmBinary"]; var noExitRuntime = Module["noExitRuntime"] || true; if (typeof WebAssembly != "object") { abort("no native wasm support detected"); } var wasmMemory; var wasmModule; var ABORT = false; var EXITSTATUS; function assert(condition, text) { if (!condition) { abort(text); } } var UTF8Decoder = typeof TextDecoder != "undefined" ? new TextDecoder("utf8") : void 0; function UTF8ArrayToString(heapOrArray, idx, maxBytesToRead) { idx >>>= 0; var endIdx = idx + maxBytesToRead; var endPtr = idx; while (heapOrArray[endPtr] && !(endPtr >= endIdx)) ++endPtr; if (endPtr - idx > 16 && heapOrArray.buffer && UTF8Decoder) { return UTF8Decoder.decode(heapOrArray.buffer instanceof SharedArrayBuffer ? heapOrArray.slice(idx, endPtr) : heapOrArray.subarray(idx, endPtr)); } var str = ""; while (idx < endPtr) { var u0 = heapOrArray[idx++]; if (!(u0 & 128)) { str += String.fromCharCode(u0); continue; } var u1 = heapOrArray[idx++] & 63; if ((u0 & 224) == 192) { str += String.fromCharCode((u0 & 31) << 6 | u1); continue; } var u2 = heapOrArray[idx++] & 63; if ((u0 & 240) == 224) { u0 = (u0 & 15) << 12 | u1 << 6 | u2; } else { u0 = (u0 & 7) << 18 | u1 << 12 | u2 << 6 | heapOrArray[idx++] & 63; } if (u0 < 65536) { str += String.fromCharCode(u0); } else { var ch = u0 - 65536; str += String.fromCharCode(55296 | ch >> 10, 56320 | ch & 1023); } } return str; } function UTF8ToString(ptr, maxBytesToRead) { ptr >>>= 0; return ptr ? UTF8ArrayToString(GROWABLE_HEAP_U8(), ptr, maxBytesToRead) : ""; } function stringToUTF8Array(str, heap, outIdx, maxBytesToWrite) { outIdx >>>= 0; if (!(maxBytesToWrite > 0)) return 0; var startIdx = outIdx; var endIdx = outIdx + maxBytesToWrite - 1; for (var i = 0; i < str.length; ++i) { var u = str.charCodeAt(i); if (u >= 55296 && u <= 57343) { var u1 = str.charCodeAt(++i); u = 65536 + ((u & 1023) << 10) | u1 & 1023; } if (u <= 127) { if (outIdx >= endIdx) break; heap[outIdx++ >>> 0] = u; } else if (u <= 2047) { if (outIdx + 1 >= endIdx) break; heap[outIdx++ >>> 0] = 192 | u >> 6; heap[outIdx++ >>> 0] = 128 | u & 63; } else if (u <= 65535) { if (outIdx + 2 >= endIdx) break; heap[outIdx++ >>> 0] = 224 | u >> 12; heap[outIdx++ >>> 0] = 128 | u >> 6 & 63; heap[outIdx++ >>> 0] = 128 | u & 63; } else { if (outIdx + 3 >= endIdx) break; heap[outIdx++ >>> 0] = 240 | u >> 18; heap[outIdx++ >>> 0] = 128 | u >> 12 & 63; heap[outIdx++ >>> 0] = 128 | u >> 6 & 63; heap[outIdx++ >>> 0] = 128 | u & 63; } } heap[outIdx >>> 0] = 0; return outIdx - startIdx; } function stringToUTF8(str, outPtr, maxBytesToWrite) { return stringToUTF8Array(str, GROWABLE_HEAP_U8(), outPtr, maxBytesToWrite); } function lengthBytesUTF8(str) { var len = 0; for (var i = 0; i < str.length; ++i) { var c = str.charCodeAt(i); if (c <= 127) { len++; } else if (c <= 2047) { len += 2; } else if (c >= 55296 && c <= 57343) { len += 4; ++i; } else { len += 3; } } return len; } var HEAP8, HEAPU8, HEAP16, HEAPU16, HEAP32, HEAPU32, HEAPF32, HEAPF64; function updateMemoryViews() { var b = wasmMemory.buffer; Module["HEAP8"] = HEAP8 = new Int8Array(b); Module["HEAP16"] = HEAP16 = new Int16Array(b); Module["HEAP32"] = HEAP32 = new Int32Array(b); Module["HEAPU8"] = HEAPU8 = new Uint8Array(b); Module["HEAPU16"] = HEAPU16 = new Uint16Array(b); Module["HEAPU32"] = HEAPU32 = new Uint32Array(b); Module["HEAPF32"] = HEAPF32 = new Float32Array(b); Module["HEAPF64"] = HEAPF64 = new Float64Array(b); } var INITIAL_MEMORY = Module["INITIAL_MEMORY"] || 16777216; assert(INITIAL_MEMORY >= 5242880, "INITIAL_MEMORY should be larger than STACK_SIZE, was " + INITIAL_MEMORY + "! (STACK_SIZE=" + 5242880 + ")"); if (ENVIRONMENT_IS_PTHREAD) { wasmMemory = Module["wasmMemory"]; } else { if (Module["wasmMemory"]) { wasmMemory = Module["wasmMemory"]; } else { wasmMemory = new WebAssembly.Memory({ "initial": INITIAL_MEMORY / 65536, "maximum": 4294967296 / 65536, "shared": true }); if (!(wasmMemory.buffer instanceof SharedArrayBuffer)) { err("requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag"); if (ENVIRONMENT_IS_NODE) { err("(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and/or recent version)"); } throw Error("bad memory"); } } } updateMemoryViews(); INITIAL_MEMORY = wasmMemory.buffer.byteLength; var wasmTable; var __ATPRERUN__ = []; var __ATINIT__ = []; var __ATPOSTRUN__ = []; function keepRuntimeAlive() { return noExitRuntime; } function preRun() { if (Module["preRun"]) { if (typeof Module["preRun"] == "function") Module["preRun"] = [Module["preRun"]]; while (Module["preRun"].length) { addOnPreRun(Module["preRun"].shift()); } } callRuntimeCallbacks(__ATPRERUN__); } function initRuntime() { if (ENVIRONMENT_IS_PTHREAD) return; if (!Module["noFSInit"] && !FS.init.initialized) FS.init(); FS.ignorePermissions = false; callRuntimeCallbacks(__ATINIT__); } function postRun() { if (ENVIRONMENT_IS_PTHREAD) return; if (Module["postRun"]) { if (typeof Module["postRun"] == "function") Module["postRun"] = [Module["postRun"]]; while (Module["postRun"].length) { addOnPostRun(Module["postRun"].shift()); } } callRuntimeCallbacks(__ATPOSTRUN__); } function addOnPreRun(cb) { __ATPRERUN__.unshift(cb); } function addOnInit(cb) { __ATINIT__.unshift(cb); } function addOnPostRun(cb) { __ATPOSTRUN__.unshift(cb); } var runDependencies = 0; var dependenciesFulfilled = null; function getUniqueRunDependency(id) { return id; } function addRunDependency(id) { runDependencies++; if (Module["monitorRunDependencies"]) { Module["monitorRunDependencies"](runDependencies); } } function removeRunDependency(id) { runDependencies--; if (Module["monitorRunDependencies"]) { Module["monitorRunDependencies"](runDependencies); } if (runDependencies == 0) { if (dependenciesFulfilled) { var callback = dependenciesFulfilled; dependenciesFulfilled = null; callback(); } } } function abort(what) { if (Module["onAbort"]) { Module["onAbort"](what); } what = "Aborted(" + what + ")"; err(what); ABORT = true; EXITSTATUS = 1; what += ". Build with -sASSERTIONS for more info."; var e = new WebAssembly.RuntimeError(what); readyPromiseReject(e); throw e; } var dataURIPrefix = "data:application/octet-stream;base64,"; function isDataURI(filename) { return filename.startsWith(dataURIPrefix); } function isFileURI(filename) { return filename.startsWith("file://"); } var wasmBinaryFile; wasmBinaryFile = "web-ifc-mt.wasm"; if (!isDataURI(wasmBinaryFile)) { wasmBinaryFile = locateFile(wasmBinaryFile); } function getBinary(file) { try { if (file == wasmBinaryFile && wasmBinary) { return new Uint8Array(wasmBinary); } if (readBinary) { return readBinary(file); } throw "both async and sync fetching of the wasm failed"; } catch (err2) { abort(err2); } } function getBinaryPromise() { if (!wasmBinary && (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER)) { if (typeof fetch == "function" && !isFileURI(wasmBinaryFile)) { return fetch(wasmBinaryFile, { credentials: "same-origin" }).then(function(response) { if (!response["ok"]) { throw "failed to load wasm binary file at '" + wasmBinaryFile + "'"; } return response["arrayBuffer"](); }).catch(function() { return getBinary(wasmBinaryFile); }); } else { if (readAsync) { return new Promise(function(resolve, reject) { readAsync(wasmBinaryFile, function(response) { resolve(new Uint8Array(response)); }, reject); }); } } } return Promise.resolve().then(function() { return getBinary(wasmBinaryFile); }); } function createWasm() { var info = { "a": wasmImports }; function receiveInstance(instance, module2) { var exports3 = instance.exports; Module["asm"] = exports3; registerTLSInit(Module["asm"]["ma"]); wasmTable = Module["asm"]["ka"]; addOnInit(Module["asm"]["ja"]); wasmModule = module2; PThread.loadWasmModuleToAllWorkers(() => removeRunDependency()); } addRunDependency(); function receiveInstantiationResult(result) { receiveInstance(result["instance"], result["module"]); } function instantiateArrayBuffer(receiver) { return getBinaryPromise().then(function(binary) { return WebAssembly.instantiate(binary, info); }).then(function(instance) { return instance; }).then(receiver, function(reason) { err("failed to asynchronously prepare wasm: " + reason); abort(reason); }); } function instantiateAsync() { if (!wasmBinary && typeof WebAssembly.instantiateStreaming == "function" && !isDataURI(wasmBinaryFile) && !isFileURI(wasmBinaryFile) && !ENVIRONMENT_IS_NODE && typeof fetch == "function") { return fetch(wasmBinaryFile, { credentials: "same-origin" }).then(function(response) { var result = WebAssembly.instantiateStreaming(response, info); return result.then(receiveInstantiationResult, function(reason) { err("wasm streaming compile failed: " + reason); err("falling back to ArrayBuffer instantiation"); return instantiateArrayBuffer(receiveInstantiationResult); }); }); } else { return instantiateArrayBuffer(receiveInstantiationResult); } } if (Module["instantiateWasm"]) { try { var exports2 = Module["instantiateWasm"](info, receiveInstance); return exports2; } catch (e) { err("Module.instantiateWasm callback failed with error: " + e); readyPromiseReject(e); } } instantiateAsync().catch(readyPromiseReject); return {}; } var tempDouble; var tempI64; function ExitStatus(status) { this.name = "ExitStatus"; this.message = "Program terminated with exit(" + status + ")"; this.status = status; } function killThread(pthread_ptr) { var worker = PThread.pthreads[pthread_ptr]; delete PThread.pthreads[pthread_ptr]; worker.terminate(); __emscripten_thread_free_data(pthread_ptr); PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(worker), 1); worker.pthread_ptr = 0; } function cancelThread(pthread_ptr) { var worker = PThread.pthreads[pthread_ptr]; worker.postMessage({ "cmd": "cancel" }); } function cleanupThread(pthread_ptr) { var worker = PThread.pthreads[pthread_ptr]; assert(worker); PThread.returnWorkerToPool(worker); } function spawnThread(threadParams) { var worker = PThread.getNewWorker(); if (!worker) { return 6; } PThread.runningWorkers.push(worker); PThread.pthreads[threadParams.pthread_ptr] = worker; worker.pthread_ptr = threadParams.pthread_ptr; var msg = { "cmd": "run", "start_routine": threadParams.startRoutine, "arg": threadParams.arg, "pthread_ptr": threadParams.pthread_ptr }; if (ENVIRONMENT_IS_NODE) { worker.ref(); } worker.postMessage(msg, threadParams.transferList); return 0; } var PATH = { isAbs: (path) => path.charAt(0) === "/", splitPath: (filename) => { var splitPathRe = /^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/; return splitPathRe.exec(filename).slice(1); }, normalizeArray: (parts, allowAboveRoot) => { var up = 0; for (var i = parts.length - 1; i >= 0; i--) { var last = parts[i]; if (last === ".") { parts.splice(i, 1); } else if (last === "..") { parts.splice(i, 1); up++; } else if (up) { parts.splice(i, 1); up--; } } if (allowAboveRoot) { for (; up; up--) { parts.unshift(".."); } } return parts; }, normalize: (path) => { var isAbsolute = PATH.isAbs(path), trailingSlash = path.substr(-1) === "/"; path = PATH.normalizeArray(path.split("/").filter((p) => !!p), !isAbsolute).join("/"); if (!path && !isAbsolute) { path = "."; } if (path && trailingSlash) { path += "/"; } return (isAbsolute ? "/" : "") + path; }, dirname: (path) => { var result = PATH.splitPath(path), root = result[0], dir = result[1]; if (!root && !dir) { return "."; } if (dir) { dir = dir.substr(0, dir.length - 1); } return root + dir; }, basename: (path) => { if (path === "/") return "/"; path = PATH.normalize(path); path = path.replace(/\/$/, ""); var lastSlash = path.lastIndexOf("/"); if (lastSlash === -1) return path; return path.substr(lastSlash + 1); }, join: function() { var paths = Array.prototype.slice.call(arguments); return PATH.normalize(paths.join("/")); }, join2: (l, r) => { return PATH.normalize(l + "/" + r); } }; function getRandomDevice() { if (typeof crypto == "object" && typeof crypto["getRandomValues"] == "function") { var randomBuffer = new Uint8Array(1); return () => { crypto.getRandomValues(randomBuffer); return randomBuffer[0]; }; } else if (ENVIRONMENT_IS_NODE) { try { var crypto_module = require_crypto(); return () => crypto_module["randomBytes"](1)[0]; } catch (e) { } } return () => abort("randomDevice"); } var PATH_FS = { resolve: function() { var resolvedPath = "", resolvedAbsolute = false; for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) { var path = i >= 0 ? arguments[i] : FS.cwd(); if (typeof path != "string") { throw new TypeError("Arguments to path.resolve must be strings"); } else if (!path) { return ""; } resolvedPath = path + "/" + resolvedPath; resolvedAbsolute = PATH.isAbs(path); } resolvedPath = PATH.normalizeArray(resolvedPath.split("/").filter((p) => !!p), !resolvedAbsolute).join("/"); return (resolvedAbsolute ? "/" : "") + resolvedPath || "."; }, relative: (from, to) => { from = PATH_FS.resolve(from).substr(1); to = PATH_FS.resolve(to).substr(1); function trim(arr) { var start = 0; for (; start < arr.length; start++) { if (arr[start] !== "") break; } var end = arr.length - 1; for (; end >= 0; end--) { if (arr[end] !== "") break; } if (start > end) return []; return arr.slice(start, end - start + 1); } var fromParts = trim(from.split("/")); var toParts = trim(to.split("/")); var length = Math.min(fromParts.length, toParts.length); var samePartsLength = length; for (var i = 0; i < length; i++) { if (fromParts[i] !== toParts[i]) { samePartsLength = i; break; } } var outputParts = []; for (var i = samePartsLength; i < fromParts.length; i++) { outputParts.push(".."); } outputParts = outputParts.concat(toParts.slice(samePartsLength)); return outputParts.join("/"); } }; function intArrayFromString(stringy, dontAddNull, length) { var len = length > 0 ? length : lengthBytesUTF8(stringy) + 1; var u8array = new Array(len); var numBytesWritten = stringToUTF8Array(stringy, u8array, 0, u8array.length); if (dontAddNull) u8array.length = numBytesWritten; return u8array; } var TTY = { ttys: [], init: function() { }, shutdown: function() { }, register: function(dev, ops) { TTY.ttys[dev] = { input: [], output: [], ops }; FS.registerDevice(dev, TTY.stream_ops); }, stream_ops: { open: function(stream) { var tty = TTY.ttys[stream.node.rdev]; if (!tty) { throw new FS.ErrnoError(43); } stream.tty = tty; stream.seekable = false; }, close: function(stream) { stream.tty.ops.fsync(stream.tty); }, fsync: function(stream) { stream.tty.ops.fsync(stream.tty); }, read: function(stream, buffer, offset, length, pos) { if (!stream.tty || !stream.tty.ops.get_char) { throw new FS.ErrnoError(60); } var bytesRead = 0; for (var i = 0; i < length; i++) { var result; try { result = stream.tty.ops.get_char(stream.tty); } catch (e) { throw new FS.ErrnoError(29); } if (result === void 0 && bytesRead === 0) { throw new FS.ErrnoError(6); } if (result === null || result === void 0) break; bytesRead++; buffer[offset + i] = result; } if (bytesRead) { stream.node.timestamp = Date.now(); } return bytesRead; }, write: function(stream, buffer, offset, length, pos) { if (!stream.tty || !stream.tty.ops.put_char) { throw new FS.ErrnoError(60); } try { for (var i = 0; i < length; i++) { stream.tty.ops.put_char(stream.tty, buffer[offset + i]); } } catch (e) { throw new FS.ErrnoError(29); } if (length) { stream.node.timestamp = Date.now(); } return i; } }, default_tty_ops: { get_char: function(tty) { if (!tty.input.length) { var result = null; if (ENVIRONMENT_IS_NODE) { var BUFSIZE = 256; var buf = Buffer.alloc(BUFSIZE); var bytesRead = 0; try { bytesRead = fs.readSync(process.stdin.fd, buf, 0, BUFSIZE, -1); } catch (e) { if (e.toString().includes("EOF")) bytesRead = 0; else throw e; } if (bytesRead > 0) { result = buf.slice(0, bytesRead).toString("utf-8"); } else { result = null; } } else if (typeof window != "undefined" && typeof window.prompt == "function") { result = window.prompt("Input: "); if (result !== null) { result += "\n"; } } else if (typeof readline == "function") { result = readline(); if (result !== null) { result += "\n"; } } if (!result) { return null; } tty.input = intArrayFromString(result, true); } return tty.input.shift(); }, put_char: function(tty, val) { if (val === null || val === 10) { out(UTF8ArrayToString(tty.output, 0)); tty.output = []; } else { if (val != 0) tty.output.push(val); } }, fsync: function(tty) { if (tty.output && tty.output.length > 0) { out(UTF8ArrayToString(tty.output, 0)); tty.output = []; } } }, default_tty1_ops: { put_char: function(tty, val) { if (val === null || val === 10) { err(UTF8ArrayToString(tty.output, 0)); tty.output = []; } else { if (val != 0) tty.output.push(val); } }, fsync: function(tty) { if (tty.output && tty.output.length > 0) { err(UTF8ArrayToString(tty.output, 0)); tty.output = []; } } } }; function mmapAlloc(size) { abort(); } var MEMFS = { ops_table: null, mount: function(mount) { return MEMFS.createNode(null, "/", 16384 | 511, 0); }, createNode: function(parent, name, mode, dev) { if (FS.isBlkdev(mode) || FS.isFIFO(mode)) { throw new FS.ErrnoError(63); } if (!MEMFS.ops_table) { MEMFS.ops_table = { dir: { node: { getattr: MEMFS.node_ops.getattr, setattr: MEMFS.node_ops.setattr, lookup: MEMFS.node_ops.lookup, mknod: MEMFS.node_ops.mknod, rename: MEMFS.node_ops.rename, unlink: MEMFS.node_ops.unlink, rmdir: MEMFS.node_ops.rmdir, readdir: MEMFS.node_ops.readdir, symlink: MEMFS.node_ops.symlink }, stream: { llseek: MEMFS.stream_ops.llseek } }, file: { node: { getattr: MEMFS.node_ops.getattr, setattr: MEMFS.node_ops.setattr }, stream: { llseek: MEMFS.stream_ops.llseek, read: MEMFS.stream_ops.read, write: MEMFS.stream_ops.write, allocate: MEMFS.stream_ops.allocate, mmap: MEMFS.stream_ops.mmap, msync: MEMFS.stream_ops.msync } }, link: { node: { getattr: MEMFS.node_ops.getattr, setattr: MEMFS.node_ops.setattr, readlink: MEMFS.node_ops.readlink }, stream: {} }, chrdev: { node: { getattr: MEMFS.node_ops.getattr, setattr: MEMFS.node_ops.setattr }, stream: FS.chrdev_stream_ops } }; } var node = FS.createNode(parent, name, mode, dev); if (FS.isDir(node.mode)) { node.node_ops = MEMFS.ops_table.dir.node; node.stream_ops = MEMFS.ops_table.dir.stream; node.contents = {}; } else if (FS.isFile(node.mode)) { node.node_ops = MEMFS.ops_table.file.node; node.stream_ops = MEMFS.ops_table.file.stream; node.usedBytes = 0; node.contents = null; } else if (FS.isLink(node.mode)) { node.node_ops = MEMFS.ops_table.link.node; node.stream_ops = MEMFS.ops_table.link.stream; } else if (FS.isChrdev(node.mode)) { node.node_ops = MEMFS.ops_table.chrdev.node; node.stream_ops = MEMFS.ops_table.chrdev.stream; } node.timestamp = Date.now(); if (parent) { parent.contents[name] = node; parent.timestamp = node.timestamp; } return node; }, getFileDataAsTypedArray: function(node) { if (!node.contents) return new Uint8Array(0); if (node.contents.subarray) return node.contents.subarray(0, node.usedBytes); return new Uint8Array(node.contents); }, expandFileStorage: function(node, newCapacity) { newCapacity >>>= 0; var prevCapacity = node.contents ? node.contents.length : 0; if (prevCapacity >= newCapacity) return; var CAPACITY_DOUBLING_MAX = 1024 * 1024; newCapacity = Math.max(newCapacity, prevCapacity * (prevCapacity < CAPACITY_DOUBLING_MAX ? 2 : 1.125) >>> 0); if (prevCapacity != 0) newCapacity = Math.max(newCapacity, 256); var oldContents = node.contents; node.contents = new Uint8Array(newCapacity); if (node.usedBytes > 0) node.contents.set(oldContents.subarray(0, node.usedBytes), 0); }, resizeFileStorage: function(node, newSize) { newSize >>>= 0; if (node.usedBytes == newSize) return; if (newSize == 0) { node.contents = null; node.usedBytes = 0; } else { var oldContents = node.contents; node.contents = new Uint8Array(newSize); if (oldContents) { node.contents.set(oldContents.subarray(0, Math.min(newSize, node.usedBytes))); } node.usedBytes = newSize; } }, node_ops: { getattr: function(node) { var attr = {}; attr.dev = FS.isChrdev(node.mode) ? node.id : 1; attr.ino = node.id; attr.mode = node.mode; attr.nlink = 1; attr.uid = 0; attr.gid = 0; attr.rdev = node.rdev; if (FS.isDir(node.mode)) { attr.size = 4096; } else if (FS.isFile(node.mode)) { attr.size = node.usedBytes; } else if (FS.isLink(node.mode)) { attr.size = node.link.length; } else { attr.size = 0; } attr.atime = new Date(node.timestamp); attr.mtime = new Date(node.timestamp); attr.ctime = new Date(node.timestamp); attr.blksize = 4096; attr.blocks = Math.ceil(attr.size / attr.blksize); return attr; }, setattr: function(node, attr) { if (attr.mode !== void 0) { node.mode = attr.mode; } if (attr.timestamp !== void 0) { node.timestamp = attr.timestamp; } if (attr.size !== void 0) { MEMFS.resizeFileStorage(node, attr.size); } }, lookup: function(parent, name) { throw FS.genericErrors[44]; }, mknod: function(parent, name, mode, dev) { return MEMFS.createNode(parent, name, mode, dev); }, rename: function(old_node, new_dir, new_name) { if (FS.isDir(old_node.mode)) { var new_node; try { new_node = FS.lookupNode(new_dir, new_name); } catch (e) { } if (new_node) { for (var i in new_node.contents) { throw new FS.ErrnoError(55); } } } delete old_node.parent.contents[old_node.name]; old_node.parent.timestamp = Date.now(); old_node.name = new_name; new_dir.contents[new_name] = old_node; new_dir.timestamp = old_node.parent.timestamp; old_node.parent = new_dir; }, unlink: function(parent, name) { delete parent.contents[name]; parent.timestamp = Date.now(); }, rmdir: function(parent, name) { var node = FS.lookupNode(parent, name); for (var i in node.contents) { throw new FS.ErrnoError(55); } delete parent.contents[name]; parent.timestamp = Date.now(); }, readdir: function(node) { var entries = [".", ".."]; for (var key in node.contents) { if (!node.contents.hasOwnProperty(key)) { continue; } entries.push(key); } return entries; }, symlink: function(parent, newname, oldpath) { var node = MEMFS.createNode(parent, newname, 511 | 40960, 0); node.link = oldpath; return node; }, readlink: function(node) { if (!FS.isLink(node.mode)) { throw new FS.ErrnoError(28); } return node.link; } }, stream_ops: { read: function(stream, buffer, offset, length, position) { var contents = stream.node.contents; if (position >= stream.node.usedBytes) return 0; var size = Math.min(stream.node.usedBytes - position, length); if (size > 8 && contents.subarray) { buffer.set(contents.subarray(position, position + size), offset); } else { for (var i = 0; i < size; i++) buffer[offset + i] = contents[position + i]; } return size; }, write: function(stream, buffer, offset, length, position, canOwn) { if (buffer.buffer === GROWABLE_HEAP_I8().buffer) { canOwn = false; } if (!length) return 0; var node = stream.node; node.timestamp = Date.now(); if (buffer.subarray && (!node.contents || node.contents.subarray)) { if (canOwn) { node.contents = buffer.subarray(offset, offset + length); node.usedBytes = length; return length; } else if (node.usedBytes === 0 && position === 0) { node.contents = buffer.slice(offset, offset + length); node.usedBytes = length; return length; } else if (position + length <= node.usedBytes) { node.contents.set(buffer.subarray(offset, offset + length), position); return length; } } MEMFS.expandFileStorage(node, position + length); if (node.contents.subarray && buffer.subarray) { node.contents.set(buffer.subarray(offset, offset + length), position); } else { for (var i = 0; i < length; i++) { node.contents[position + i] = buffer[offset + i]; } } node.usedBytes = Math.max(node.usedBytes, position + length); return length; }, llseek: function(stream, offset, whence) { var position = offset; if (whence === 1) { position += stream.position; } else if (whence === 2) { if (FS.isFile(stream.node.mode)) { position += stream.node.usedBytes; } } if (position < 0) { throw new FS.ErrnoError(28); } return position; }, allocate: function(stream, offset, length) { MEMFS.expandFileStorage(stream.node, offset + length); stream.node.usedBytes = Math.max(stream.node.usedBytes, offset + length); }, mmap: function(stream, length, position, prot, flags) { if (!FS.isFile(stream.node.mode)) { throw new FS.ErrnoError(43); } var ptr; var allocated; var contents = stream.node.contents; if (!(flags & 2) && contents.buffer === GROWABLE_HEAP_I8().buffer) { allocated = false; ptr = contents.byteOffset; } else { if (position > 0 || position + length < contents.length) { if (contents.subarray) { contents = contents.subarray(position, position + length); } else { contents = Array.prototype.slice.call(contents, position, position + length); } } allocated = true; ptr = mmapAlloc(); if (!ptr) { throw new FS.ErrnoError(48); } ptr >>>= 0; GROWABLE_HEAP_I8().set(contents, ptr >>> 0); } return { ptr, allocated }; }, msync: function(stream, buffer, offset, length, mmapFlags) { MEMFS.stream_ops.write(stream, buffer, 0, length, offset, false); return 0; } } }; function asyncLoad(url, onload, onerror, noRunDep) { var dep = !noRunDep ? getUniqueRunDependency("al " + url) : ""; readAsync(url, (arrayBuffer) => { assert(arrayBuffer, 'Loading data file "' + url + '" failed (no arrayBuffer).'); onload(new Uint8Array(arrayBuffer)); if (dep) removeRunDependency(); }, (event) => { if (onerror) { onerror(); } else { throw 'Loading data file "' + url + '" failed.'; } }); if (dep) addRunDependency(); } var FS = { root: null, mounts: [], devices: {}, streams: [], nextInode: 1, nameTable: null, currentPath: "/", initialized: false, ignorePermissions: true, ErrnoError: null, genericErrors: {}, filesystems: null, syncFSRequests: 0, lookupPath: (path, opts = {}) => { path = PATH_FS.resolve(path); if (!path) return { path: "", node: null }; var defaults = { follow_mount: true, recurse_count: 0 }; opts = Object.assign(defaults, opts); if (opts.recurse_count > 8) { throw new FS.ErrnoError(32); } var parts = path.split("/").filter((p) => !!p); var current = FS.root; var current_path = "/"; for (var i = 0; i < parts.length; i++) { var islast = i === parts.length - 1; if (islast && opts.parent) { break; } current = FS.lookupNode(current, parts[i]); current_path = PATH.join2(current_path, parts[i]); if (FS.isMountpoint(current)) { if (!islast || islast && opts.follow_mount) { current = current.mounted.root; } } if (!islast || opts.follow) { var count = 0; while (FS.isLink(current.mode)) { var link = FS.readlink(current_path); current_path = PATH_FS.resolve(PATH.dirname(current_path), link); var lookup = FS.lookupPath(current_path, { recurse_count: opts.recurse_count + 1 }); current = lookup.node; if (count++ > 40) { throw new FS.ErrnoError(32); } } } } return { path: current_path, node: current }; }, getPath: (node) => { var path; while (true) { if (FS.isRoot(node)) { var mount = node.mount.mountpoint; if (!path) return mount; return mount[mount.length - 1] !== "/" ? mount + "/" + path : mount + path; } path = path ? node.name + "/" + path : node.name; node = node.parent; } }, hashName: (parentid, name) => { var hash = 0; for (var i = 0; i < name.length; i++) { hash = (hash << 5) - hash + name.charCodeAt(i) | 0; } return (parentid + hash >>> 0) % FS.nameTable.length; }, hashAddNode: (node) => { var hash = FS.hashName(node.parent.id, node.name); node.name_next = FS.nameTable[hash]; FS.nameTable[hash] = node; }, hashRemoveNode: (node) => { var hash = FS.hashName(node.parent.id, node.name); if (FS.nameTable[hash] === node) { FS.nameTable[hash] = node.name_next; } else { var current = FS.nameTable[hash]; while (current) { if (current.name_next === node) { current.name_next = node.name_next; break; } current = current.name_next; } } }, lookupNode: (parent, name) => { var errCode = FS.mayLookup(parent); if (errCode) { throw new FS.ErrnoError(errCode, parent); } var hash = FS.hashName(parent.id, name); for (var node = FS.nameTable[hash]; node; node = node.name_next) { var nodeName = node.name; if (node.parent.id === parent.id && nodeName === name) { return node; } } return FS.lookup(parent, name); }, createNode: (parent, name, mode, rdev) => { var node = new FS.FSNode(parent, name, mode, rdev); FS.hashAddNode(node); return node; }, destroyNode: (node) => { FS.hashRemoveNode(node); }, isRoot: (node) => { return node === node.parent; }, isMountpoint: (node) => { return !!node.mounted; }, isFile: (mode) => { return (mode & 61440) === 32768; }, isDir: (mode) => { return (mode & 61440) === 16384; }, isLink: (mode) => { return (mode & 61440) === 40960; }, isChrdev: (mode) => { return (mode & 61440) === 8192; }, isBlkdev: (mode) => { return (mode & 61440) === 24576; }, isFIFO: (mode) => { return (mode & 61440) === 4096; }, isSocket: (mode) => { return (mode & 49152) === 49152; }, flagModes: { "r": 0, "r+": 2, "w": 577, "w+": 578, "a": 1089, "a+": 1090 }, modeStringToFlags: (str) => { var flags = FS.flagModes[str]; if (typeof flags == "undefined") { throw new Error("Unknown file open mode: " + str); } return flags; }, flagsToPermissionString: (flag) => { var perms = ["r", "w", "rw"][flag & 3]; if (flag & 512) { perms += "w"; } return perms; }, nodePermissions: (node, perms) => { if (FS.ignorePermissions) { return 0; } if (perms.includes("r") && !(node.mode & 292)) { return 2; } else if (perms.includes("w") && !(node.mode & 146)) { return 2; } else if (perms.includes("x") && !(node.mode & 73)) { return 2; } return 0; }, mayLookup: (dir) => { var errCode = FS.nodePermissions(dir, "x"); if (errCode) return errCode; if (!dir.node_ops.lookup) return 2; return 0; }, mayCreate: (dir, name) => { try { var node = FS.lookupNode(dir, name); return 20; } catch (e) { } return FS.nodePermissions(dir, "wx"); }, mayDelete: (dir, name, isdir) => { var node; try { node = FS.lookupNode(dir, name); } catch (e) { return e.errno; } var errCode = FS.nodePermissions(dir, "wx"); if (errCode) { return errCode; } if (isdir) { if (!FS.isDir(node.mode)) { return 54; } if (FS.isRoot(node) || FS.getPath(node) === FS.cwd()) { return 10; } } else { if (FS.isDir(node.mode)) { return 31; } } return 0; }, mayOpen: (node, flags) => { if (!node) { return 44; } if (FS.isLink(node.mode)) { return 32; } else if (FS.isDir(node.mode)) { if (FS.flagsToPermissionString(flags) !== "r" || flags & 512) { return 31; } } return FS.nodePermissions(node, FS.flagsToPermissionString(flags)); }, MAX_OPEN_FDS: 4096, nextfd: (fd_start = 0, fd_end = FS.MAX_OPEN_FDS) => { for (var fd = fd_start; fd <= fd_end; fd++) { if (!FS.streams[fd]) { return fd; } } throw new FS.ErrnoError(33); }, getStream: (fd) => FS.streams[fd], createStream: (stream, fd_start, fd_end) => { if (!FS.FSStream) { FS.FSStream = function() { this.shared = {}; }; FS.FSStream.prototype = {}; Object.defineProperties(FS.FSStream.prototype, { object: { get: function() { return this.node; }, set: function(val) { this.node = val; } }, isRead: { get: function() { return (this.flags & 2097155) !== 1; } }, isWrite: { get: function() { return (this.flags & 2097155) !== 0; } }, isAppend: { get: function() { return this.flags & 1024; } }, flags: { get: function() { return this.shared.flags; }, set: function(val) { this.shared.flags = val; } }, position: { get: function() { return this.shared.position; }, set: function(val) { this.shared.position = val; } } }); } stream = Object.assign(new FS.FSStream(), stream); var fd = FS.nextfd(fd_start, fd_end); stream.fd = fd; FS.streams[fd] = stream; return stream; }, closeStream: (fd) => { FS.streams[fd] = null; }, chrdev_stream_ops: { open: (stream) => { var device = FS.getDevice(stream.node.rdev); stream.stream_ops = device.stream_ops; if (stream.stream_ops.open) { stream.stream_ops.open(stream); } }, llseek: () => { throw new FS.ErrnoError(70); } }, major: (dev) => dev >> 8, minor: (dev) => dev & 255, makedev: (ma, mi) => ma << 8 | mi, registerDevice: (dev, ops) => { FS.devices[dev] = { stream_ops: ops }; }, getDevice: (dev) => FS.devices[dev], getMounts: (mount) => { var mounts = []; var check = [mount]; while (check.length) { var m = check.pop(); mounts.push(m); check.push.apply(check, m.mounts); } return mounts; }, syncfs: (populate, callback) => { if (typeof populate == "function") { callback = populate; populate = false; } FS.syncFSRequests++; if (FS.syncFSRequests > 1) { err("warning: " + FS.syncFSRequests + " FS.syncfs operations in flight at once, probably just doing extra work"); } var mounts = FS.getMounts(FS.root.mount); var completed = 0; function doCallback(errCode) { FS.syncFSRequests--; return callback(errCode); } function done(errCode) { if (errCode) { if (!done.errored) { done.errored = true; return doCallback(errCode); } return; } if (++completed >= mounts.length) { doCallback(null); } } mounts.forEach((mount) => { if (!mount.type.syncfs) { return done(null); } mount.type.syncfs(mount, populate, done); }); }, mount: (type, opts, mountpoint) => { var root = mountpoint === "/"; var pseudo = !mountpoint; var node; if (root && FS.root) { throw new FS.ErrnoError(10); } else if (!root && !pseudo) { var lookup = FS.lookupPath(mountpoint, { follow_mount: false }); mountpoint = lookup.path; node = lookup.node; if (FS.isMountpoint(node)) { throw new FS.ErrnoError(10); } if (!FS.isDir(node.mode)) { throw new FS.ErrnoError(54); } } var mount = { type, opts, mountpoint, mounts: [] }; var mountRoot = type.mount(mount); mountRoot.mount = mount; mount.root = mountRoot; if (root) { FS.root = mountRoot; } else if (node) { node.mounted = mount; if (node.mount) { node.mount.mounts.push(mount); } } return mountRoot; }, unmount: (mountpoint) => { var lookup = FS.lookupPath(mountpoint, { follow_mount: false }); if (!FS.isMountpoint(lookup.node)) { throw new FS.ErrnoError(28); } var node = lookup.node; var mount = node.mounted; var mounts = FS.getMounts(mount); Object.keys(FS.nameTable).forEach((hash) => { var current = FS.nameTable[hash]; while (current) { var next = current.name_next; if (mounts.includes(current.mount)) { FS.destroyNode(current); } current = next; } }); node.mounted = null; var idx = node.mount.mounts.indexOf(mount); node.mount.mounts.splice(idx, 1); }, lookup: (parent, name) => { return parent.node_ops.lookup(parent, name); }, mknod: (path, mode, dev) => { var lookup = FS.lookupPath(path, { parent: true }); var parent = lookup.node; var name = PATH.basename(path); if (!name || name === "." || name === "..") { throw new FS.ErrnoError(28); } var errCode = FS.mayCreate(parent, name); if (errCode) { throw new FS.ErrnoError(errCode); } if (!parent.node_ops.mknod) { throw new FS.ErrnoError(63); } return parent.node_ops.mknod(parent, name, mode, dev); }, create: (path, mode) => { mode = mode !== void 0 ? mode : 438; mode &= 4095; mode |= 32768; return FS.mknod(path, mode, 0); }, mkdir: (path, mode) => { mode = mode !== void 0 ? mode : 511; mode &= 511 | 512; mode |= 16384; return FS.mknod(path, mode, 0); }, mkdirTree: (path, mode) => { var dirs = path.split("/"); var d = ""; for (var i = 0; i < dirs.length; ++i) { if (!dirs[i]) continue; d += "/" + dirs[i]; try { FS.mkdir(d, mode); } catch (e) { if (e.errno != 20) throw e; } } }, mkdev: (path, mode, dev) => { if (typeof dev == "undefined") { dev = mode; mode = 438; } mode |= 8192; return FS.mknod(path, mode, dev); }, symlink: (oldpath, newpath) => { if (!PATH_FS.resolve(oldpath)) { throw new FS.ErrnoError(44); } var lookup = FS.lookupPath(newpath, { parent: true }); var parent = lookup.node; if (!parent) { throw new FS.ErrnoError(44); } var newname = PATH.basename(newpath); var errCode = FS.mayCreate(parent, newname); if (errCode) { throw new FS.ErrnoError(errCode); } if (!parent.node_ops.symlink) { throw new FS.ErrnoError(63); } return parent.node_ops.symlink(parent, newname, oldpath); }, rename: (old_path, new_path) => { var old_dirname = PATH.dirname(old_path); var new_dirname = PATH.dirname(new_path); var old_name = PATH.basename(old_path); var new_name = PATH.basename(new_path); var lookup, old_dir, new_dir; lookup = FS.lookupPath(old_path, { parent: true }); old_dir = lookup.node; lookup = FS.lookupPath(new_path, { parent: true }); new_dir = lookup.node; if (!old_dir || !new_dir) throw new FS.ErrnoError(44); if (old_dir.mount !== new_dir.mount) { throw new FS.ErrnoError(75); } var old_node = FS.lookupNode(old_dir, old_name); var relative = PATH_FS.relative(old_path, new_dirname); if (relative.charAt(0) !== ".") { throw new FS.ErrnoError(28); } relative = PATH_FS.relative(new_path, old_dirname); if (relative.charAt(0) !== ".") { throw new FS.ErrnoError(55); } var new_node; try { new_node = FS.lookupNode(new_dir, new_name); } catch (e) { } if (old_node === new_node) { return; } var isdir = FS.isDir(old_node.mode); var errCode = FS.mayDelete(old_dir, old_name, isdir); if (errCode) { throw new FS.ErrnoError(errCode); } errCode = new_node ? FS.mayDelete(new_dir, new_name, isdir) : FS.mayCreate(new_dir, new_name); if (errCode) { throw new FS.ErrnoError(errCode); } if (!old_dir.node_ops.rename) { throw new FS.ErrnoError(63); } if (FS.isMountpoint(old_node) || new_node && FS.isMountpoint(new_node)) { throw new FS.ErrnoError(10); } if (new_dir !== old_dir) { errCode = FS.nodePermissions(old_dir, "w"); if (errCode) { throw new FS.ErrnoError(errCode); } } FS.hashRemoveNode(old_node); try { old_dir.node_ops.rename(old_node, new_dir, new_name); } catch (e) { throw e; } finally { FS.hashAddNode(old_node); } }, rmdir: (path) => { var lookup = FS.lookupPath(path, { parent: true }); var parent = lookup.node; var name = PATH.basename(path); var node = FS.lookupNode(parent, name); var errCode = FS.mayDelete(parent, name, true); if (errCode) { throw new FS.ErrnoError(errCode); } if (!parent.node_ops.rmdir) { throw new FS.ErrnoError(63); } if (FS.isMountpoint(node)) { throw new FS.ErrnoError(10); } parent.node_ops.rmdir(parent, name); FS.destroyNode(node); }, readdir: (path) => { var lookup = FS.lookupPath(path, { follow: true }); var node = lookup.node; if (!node.node_ops.readdir) { throw new FS.ErrnoError(54); } return node.node_ops.readdir(node); }, unlink: (path) => { var lookup = FS.lookupPath(path, { parent: true }); var parent = lookup.node; if (!parent) { throw new FS.ErrnoError(44); } var name = PATH.basename(path); var node = FS.lookupNode(parent, name); var errCode = FS.mayDelete(parent, name, false); if (errCode) { throw new FS.ErrnoError(errCode); } if (!parent.node_ops.unlink) { throw new FS.ErrnoError(63); } if (FS.isMountpoint(node)) { throw new FS.ErrnoError(10); } parent.node_ops.unlink(parent, name); FS.destroyNode(node); }, readlink: (path) => { var lookup = FS.lookupPath(path); var link = lookup.node; if (!link) { throw new FS.ErrnoError(44); } if (!link.node_ops.readlink) { throw new FS.ErrnoError(28); } return PATH_FS.resolve(FS.getPath(link.parent), link.node_ops.readlink(link)); }, stat: (path, dontFollow) => { var lookup = FS.lookupPath(path, { follow: !dontFollow }); var node = lookup.node; if (!node) { throw new FS.ErrnoError(44); } if (!node.node_ops.getattr) { throw new FS.ErrnoError(63); } return node.node_ops.getattr(node); }, lstat: (path) => { return FS.stat(path, true); }, chmod: (path, mode, dontFollow) => { var node; if (typeof path == "string") { var lookup = FS.lookupPath(path, { follow: !dontFollow }); node = lookup.node; } else { node = path; } if (!node.node_ops.setattr) { throw new FS.ErrnoError(63); } node.node_ops.setattr(node, { mode: mode & 4095 | node.mode & ~4095, timestamp: Date.now() }); }, lchmod: (path, mode) => { FS.chmod(path, mode, true); }, fchmod: (fd, mode) => { var stream = FS.getStream(fd); if (!stream) { throw new FS.ErrnoError(8); } FS.chmod(stream.node, mode); }, chown: (path, uid, gid, dontFollow) => { var node; if (typeof path == "string") { var lookup = FS.lookupPath(path, { follow: !dontFollow }); node = lookup.node; } else { node = path; } if (!node.node_ops.setattr) { throw new FS.ErrnoError(63); } node.node_ops.setattr(node, { timestamp: Date.now() }); }, lchown: (path, uid, gid) => { FS.chown(path, uid, gid, true); }, fchown: (fd, uid, gid) => { var stream = FS.getStream(fd); if (!stream) { throw new FS.ErrnoError(8); } FS.chown(stream.node, uid, gid); }, truncate: (path, len) => { if (len < 0) { throw new FS.ErrnoError(28); } var node; if (typeof path == "string") { var lookup = FS.lookupPath(path, { follow: true }); node = lookup.node; } else { node = path; } if (!node.node_ops.setattr) { throw new FS.ErrnoError(63); } if (FS.isDir(node.mode)) { throw new FS.ErrnoError(31); } if (!FS.isFile(node.mode)) { throw new FS.ErrnoError(28); } var errCode = FS.nodePermissions(node, "w"); if (errCode) { throw new FS.ErrnoError(errCode); } node.node_ops.setattr(node, { size: len, timestamp: Date.now() }); }, ftruncate: (fd, len) => { var stream = FS.getStream(fd); if (!stream) { throw new FS.ErrnoError(8); } if ((stream.flags & 2097155) === 0) { throw new FS.ErrnoError(28); } FS.truncate(stream.node, len); }, utime: (path, atime, mtime) => { var lookup = FS.lookupPath(path, { follow: true }); var node = lookup.node; node.node_ops.setattr(node, { timestamp: Math.max(atime, mtime) }); }, open: (path, flags, mode) => { if (path === "") { throw new FS.ErrnoError(44); } flags = typeof flags == "string" ? FS.modeStringToFlags(flags) : flags; mode = typeof mode == "undefined" ? 438 : mode; if (flags & 64) { mode = mode & 4095 | 32768; } else { mode = 0; } var node; if (typeof path == "object") { node = path; } else { path = PATH.normalize(path); try { var lookup = FS.lookupPath(path, { follow: !(flags & 131072) }); node = lookup.node; } catch (e) { } } var created = false; if (flags & 64) { if (node) { if (flags & 128) { throw new FS.ErrnoError(20); } } else { node = FS.mknod(path, mode, 0); created = true; } } if (!node) { throw new FS.ErrnoError(44); } if (FS.isChrdev(node.mode)) { flags &= ~512; } if (flags & 65536 && !FS.isDir(node.mode)) { throw new FS.ErrnoError(54); } if (!created) { var errCode = FS.mayOpen(node, flags); if (errCode) { throw new FS.ErrnoError(errCode); } } if (flags & 512 && !created) { FS.truncate(node, 0); } flags &= ~(128 | 512 | 131072); var stream = FS.createStream({ node, path: FS.getPath(node), flags, seekable: true, position: 0, stream_ops: node.stream_ops, ungotten: [], error: false }); if (stream.stream_ops.open) { stream.stream_ops.open(stream); } if (Module["logReadFiles"] && !(flags & 1)) { if (!FS.readFiles) FS.readFiles = {}; if (!(path in FS.readFiles)) { FS.readFiles[path] = 1; } } return stream; }, close: (stream) => { if (FS.isClosed(stream)) { throw new FS.ErrnoError(8); } if (stream.getdents) stream.getdents = null; try { if (stream.stream_ops.close) { stream.stream_ops.close(stream); } } catch (e) { throw e; } finally { FS.closeStream(stream.fd); } stream.fd = null; }, isClosed: (stream) => { return stream.fd === null; }, llseek: (stream, offset, whence) => { if (FS.isClosed(stream)) { throw new FS.ErrnoError(8); } if (!stream.seekable || !stream.stream_ops.llseek) { throw new FS.ErrnoError(70); } if (whence != 0 && whence != 1 && whence != 2) { throw new FS.ErrnoError(28); } stream.position = stream.stream_ops.llseek(stream, offset, whence); stream.ungotten = []; return stream.position; }, read: (stream, buffer, offset, length, position) => { offset >>>= 0; if (length < 0 || position < 0) { throw new FS.ErrnoError(28); } if (FS.isClosed(stream)) { throw new FS.ErrnoError(8); } if ((stream.flags & 2097155) === 1) { throw new FS.ErrnoError(8); } if (FS.isDir(stream.node.mode)) { throw new FS.ErrnoError(31); } if (!stream.stream_ops.read) { throw new FS.ErrnoError(28); } var seeking = typeof position != "undefined"; if (!seeking) { position = stream.position; } else if (!stream.seekable) { throw new FS.ErrnoError(70); } var bytesRead = stream.stream_ops.read(stream, buffer, offset, length, position); if (!seeking) stream.position += bytesRead; return bytesRead; }, write: (stream, buffer, offset, length, position, canOwn) => { offset >>>= 0; if (length < 0 || position < 0) { throw new FS.ErrnoError(28); } if (FS.isClosed(stream)) { throw new FS.ErrnoError(8); } if ((stream.flags & 2097155) === 0) { throw new FS.ErrnoError(8); } if (FS.isDir(stream.node.mode)) { throw new FS.ErrnoError(31); } if (!stream.stream_ops.write) { throw new FS.ErrnoError(28); } if (stream.seekable && stream.flags & 1024) { FS.llseek(stream, 0, 2); } var seeking = typeof position != "undefined"; if (!seeking) { position = stream.position; } else if (!stream.seekable) { throw new FS.ErrnoError(70); } var bytesWritten = stream.stream_ops.write(stream, buffer, offset, length, position, canOwn); if (!seeking) stream.position += bytesWritten; return bytesWritten; }, allocate: (stream, offset, length) => { if (FS.isClosed(stream)) { throw new FS.ErrnoError(8); } if (offset < 0 || length <= 0) { throw new FS.ErrnoError(28); } if ((stream.flags & 2097155) === 0) { throw new FS.ErrnoError(8); } if (!FS.isFile(stream.node.mode) && !FS.isDir(stream.node.mode)) { throw new FS.ErrnoError(43); } if (!stream.stream_ops.allocate) { throw new FS.ErrnoError(138); } stream.stream_ops.allocate(stream, offset, length); }, mmap: (stream, length, position, prot, flags) => { if ((prot & 2) !== 0 && (flags & 2) === 0 && (stream.flags & 2097155) !== 2) { throw new FS.ErrnoError(2); } if ((stream.flags & 2097155) === 1) { throw new FS.ErrnoError(2); } if (!stream.stream_ops.mmap) { throw new FS.ErrnoError(43); } return stream.stream_ops.mmap(stream, length, position, prot, flags); }, msync: (stream, buffer, offset, length, mmapFlags) => { offset >>>= 0; if (!stream.stream_ops.msync) { return 0; } return stream.stream_ops.msync(stream, buffer, offset, length, mmapFlags); }, munmap: (stream) => 0, ioctl: (stream, cmd, arg) => { if (!stream.stream_ops.ioctl) { throw new FS.ErrnoError(59); } return stream.stream_ops.ioctl(stream, cmd, arg); }, readFile: (path, opts = {}) => { opts.flags = opts.flags || 0; opts.encoding = opts.encoding || "binary"; if (opts.encoding !== "utf8" && opts.encoding !== "binary") { throw new Error('Invalid encoding type "' + opts.encoding + '"'); } var ret; var stream = FS.open(path, opts.flags); var stat = FS.stat(path); var length = stat.size; var buf = new Uint8Array(length); FS.read(stream, buf, 0, length, 0); if (opts.encoding === "utf8") { ret = UTF8ArrayToString(buf, 0); } else if (opts.encoding === "binary") { ret = buf; } FS.close(stream); return ret; }, writeFile: (path, data, opts = {}) => { opts.flags = opts.flags || 577; var stream = FS.open(path, opts.flags, opts.mode); if (typeof data == "string") { var buf = new Uint8Array(lengthBytesUTF8(data) + 1); var actualNumBytes = stringToUTF8Array(data, buf, 0, buf.length); FS.write(stream, buf, 0, actualNumBytes, void 0, opts.canOwn); } else if (ArrayBuffer.isView(data)) { FS.write(stream, data, 0, data.byteLength, void 0, opts.canOwn); } else { throw new Error("Unsupported data type"); } FS.close(stream); }, cwd: () => FS.currentPath, chdir: (path) => { var lookup = FS.lookupPath(path, { follow: true }); if (lookup.node === null) { throw new FS.ErrnoError(44); } if (!FS.isDir(lookup.node.mode)) { throw new FS.ErrnoError(54); } var errCode = FS.nodePermissions(lookup.node, "x"); if (errCode) { throw new FS.ErrnoError(errCode); } FS.currentPath = lookup.path; }, createDefaultDirectories: () => { FS.mkdir("/tmp"); FS.mkdir("/home"); FS.mkdir("/home/web_user"); }, createDefaultDevices: () => { FS.mkdir("/dev"); FS.registerDevice(FS.makedev(1, 3), { read: () => 0, write: (stream, buffer, offset, length, pos) => length }); FS.mkdev("/dev/null", FS.makedev(1, 3)); TTY.register(FS.makedev(5, 0), TTY.default_tty_ops); TTY.register(FS.makedev(6, 0), TTY.default_tty1_ops); FS.mkdev("/dev/tty", FS.makedev(5, 0)); FS.mkdev("/dev/tty1", FS.makedev(6, 0)); var random_device = getRandomDevice(); FS.createDevice("/dev", "random", random_device); FS.createDevice("/dev", "urandom", random_device); FS.mkdir("/dev/shm"); FS.mkdir("/dev/shm/tmp"); }, createSpecialDirectories: () => { FS.mkdir("/proc"); var proc_self = FS.mkdir("/proc/self"); FS.mkdir("/proc/self/fd"); FS.mount({ mount: () => { var node = FS.createNode(proc_self, "fd", 16384 | 511, 73); node.node_ops = { lookup: (parent, name) => { var fd = +name; var stream = FS.getStream(fd); if (!stream) throw new FS.ErrnoError(8); var ret = { parent: null, mount: { mountpoint: "fake" }, node_ops: { readlink: () => stream.path } }; ret.parent = ret; return ret; } }; return node; } }, {}, "/proc/self/fd"); }, createStandardStreams: () => { if (Module["stdin"]) { FS.createDevice("/dev", "stdin", Module["stdin"]); } else { FS.symlink("/dev/tty", "/dev/stdin"); } if (Module["stdout"]) { FS.createDevice("/dev", "stdout", null, Module["stdout"]); } else { FS.symlink("/dev/tty", "/dev/stdout"); } if (Module["stderr"]) { FS.createDevice("/dev", "stderr", null, Module["stderr"]); } else { FS.symlink("/dev/tty1", "/dev/stderr"); } FS.open("/dev/stdin", 0); FS.open("/dev/stdout", 1); FS.open("/dev/stderr", 1); }, ensureErrnoError: () => { if (FS.ErrnoError) return; FS.ErrnoError = function ErrnoError(errno, node) { this.node = node; this.setErrno = function(errno2) { this.errno = errno2; }; this.setErrno(errno); this.message = "FS error"; }; FS.ErrnoError.prototype = new Error(); FS.ErrnoError.prototype.constructor = FS.ErrnoError; [44].forEach((code) => { FS.genericErrors[code] = new FS.ErrnoError(code); FS.genericErrors[code].stack = ""; }); }, staticInit: () => { FS.ensureErrnoError(); FS.nameTable = new Array(4096); FS.mount(MEMFS, {}, "/"); FS.createDefaultDirectories(); FS.createDefaultDevices(); FS.createSpecialDirectories(); FS.filesystems = { "MEMFS": MEMFS }; }, init: (input, output, error) => { FS.init.initialized = true; FS.ensureErrnoError(); Module["stdin"] = input || Module["stdin"]; Module["stdout"] = output || Module["stdout"]; Module["stderr"] = error || Module["stderr"]; FS.createStandardStreams(); }, quit: () => { FS.init.initialized = false; for (var i = 0; i < FS.streams.length; i++) { var stream = FS.streams[i]; if (!stream) { continue; } FS.close(stream); } }, getMode: (canRead, canWrite) => { var mode = 0; if (canRead) mode |= 292 | 73; if (canWrite) mode |= 146; return mode; }, findObject: (path, dontResolveLastLink) => { var ret = FS.analyzePath(path, dontResolveLastLink); if (!ret.exists) { return null; } return ret.object; }, analyzePath: (path, dontResolveLastLink) => { try { var lookup = FS.lookupPath(path, { follow: !dontResolveLastLink }); path = lookup.path; } catch (e) { } var ret = { isRoot: false, exists: false, error: 0, name: null, path: null, object: null, parentExists: false, parentPath: null, parentObject: null }; try { var lookup = FS.lookupPath(path, { parent: true }); ret.parentExists = true; ret.parentPath = lookup.path; ret.parentObject = lookup.node; ret.name = PATH.basename(path); lookup = FS.lookupPath(path, { follow: !dontResolveLastLink }); ret.exists = true; ret.path = lookup.path; ret.object = lookup.node; ret.name = lookup.node.name; ret.isRoot = lookup.path === "/"; } catch (e) { ret.error = e.errno; } return ret; }, createPath: (parent, path, canRead, canWrite) => { parent = typeof parent == "string" ? parent : FS.getPath(parent); var parts = path.split("/").reverse(); while (parts.length) { var part = parts.pop(); if (!part) continue; var current = PATH.join2(parent, part); try { FS.mkdir(current); } catch (e) { } parent = current; } return current; }, createFile: (parent, name, properties, canRead, canWrite) => { var path = PATH.join2(typeof parent == "string" ? parent : FS.getPath(parent), name); var mode = FS.getMode(canRead, canWrite); return FS.create(path, mode); }, createDataFile: (parent, name, data, canRead, canWrite, canOwn) => { var path = name; if (parent) { parent = typeof parent == "string" ? parent : FS.getPath(parent); path = name ? PATH.join2(parent, name) : parent; } var mode = FS.getMode(canRead, canWrite); var node = FS.create(path, mode); if (data) { if (typeof data == "string") { var arr = new Array(data.length); for (var i = 0, len = data.length; i < len; ++i) arr[i] = data.charCodeAt(i); data = arr; } FS.chmod(node, mode | 146); var stream = FS.open(node, 577); FS.write(stream, data, 0, data.length, 0, canOwn); FS.close(stream); FS.chmod(node, mode); } return node; }, createDevice: (parent, name, input, output) => { var path = PATH.join2(typeof parent == "string" ? parent : FS.getPath(parent), name); var mode = FS.getMode(!!input, !!output); if (!FS.createDevice.major) FS.createDevice.major = 64; var dev = FS.makedev(FS.createDevice.major++, 0); FS.registerDevice(dev, { open: (stream) => { stream.seekable = false; }, close: (stream) => { if (output && output.buffer && output.buffer.length) { output(10); } }, read: (stream, buffer, offset, length, pos) => { var bytesRead = 0; for (var i = 0; i < length; i++) { var result; try { result = input(); } catch (e) { throw new FS.ErrnoError(29); } if (result === void 0 && bytesRead === 0) { throw new FS.ErrnoError(6); } if (result === null || result === void 0) break; bytesRead++; buffer[offset + i] = result; } if (bytesRead) { stream.node.timestamp = Date.now(); } return bytesRead; }, write: (stream, buffer, offset, length, pos) => { for (var i = 0; i < length; i++) { try { output(buffer[offset + i]); } catch (e) { throw new FS.ErrnoError(29); } } if (length) { stream.node.timestamp = Date.now(); } return i; } }); return FS.mkdev(path, mode, dev); }, forceLoadFile: (obj) => { if (obj.isDevice || obj.isFolder || obj.link || obj.contents) return true; if (typeof XMLHttpRequest != "undefined") { throw new Error("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread."); } else if (read_) { try { obj.contents = intArrayFromString(read_(obj.url), true); obj.usedBytes = obj.contents.length; } catch (e) { throw new FS.ErrnoError(29); } } else { throw new Error("Cannot load without read() or XMLHttpRequest."); } }, createLazyFile: (parent, name, url, canRead, canWrite) => { function LazyUint8Array() { this.lengthKnown = false; this.chunks = []; } LazyUint8Array.prototype.get = function LazyUint8Array_get(idx) { if (idx > this.length - 1 || idx < 0) { return void 0; } var chunkOffset = idx % this.chunkSize; var chunkNum = idx / this.chunkSize | 0; return this.getter(chunkNum)[chunkOffset]; }; LazyUint8Array.prototype.setDataGetter = function LazyUint8Array_setDataGetter(getter) { this.getter = getter; }; LazyUint8Array.prototype.cacheLength = function LazyUint8Array_cacheLength() { var xhr = new XMLHttpRequest(); xhr.open("HEAD", url, false); xhr.send(null); if (!(xhr.status >= 200 && xhr.status < 300 || xhr.status === 304)) throw new Error("Couldn't load " + url + ". Status: " + xhr.status); var datalength = Number(xhr.getResponseHeader("Content-length")); var header; var hasByteServing = (header = xhr.getResponseHeader("Accept-Ranges")) && header === "bytes"; var usesGzip = (header = xhr.getResponseHeader("Content-Encoding")) && header === "gzip"; var chunkSize = 1024 * 1024; if (!hasByteServing) chunkSize = datalength; var doXHR = (from, to) => { if (from > to) throw new Error("invalid range (" + from + ", " + to + ") or no bytes requested!"); if (to > datalength - 1) throw new Error("only " + datalength + " bytes available! programmer error!"); var xhr2 = new XMLHttpRequest(); xhr2.open("GET", url, false); if (datalength !== chunkSize) xhr2.setRequestHeader("Range", "bytes=" + from + "-" + to); xhr2.responseType = "arraybuffer"; if (xhr2.overrideMimeType) { xhr2.overrideMimeType("text/plain; charset=x-user-defined"); } xhr2.send(null); if (!(xhr2.status >= 200 && xhr2.status < 300 || xhr2.status === 304)) throw new Error("Couldn't load " + url + ". Status: " + xhr2.status); if (xhr2.response !== void 0) { return new Uint8Array(xhr2.response || []); } return intArrayFromString(xhr2.responseText || "", true); }; var lazyArray2 = this; lazyArray2.setDataGetter((chunkNum) => { var start = chunkNum * chunkSize; var end = (chunkNum + 1) * chunkSize - 1; end = Math.min(end, datalength - 1); if (typeof lazyArray2.chunks[chunkNum] == "undefined") { lazyArray2.chunks[chunkNum] = doXHR(start, end); } if (typeof lazyArray2.chunks[chunkNum] == "undefined") throw new Error("doXHR failed!"); return lazyArray2.chunks[chunkNum]; }); if (usesGzip || !datalength) { chunkSize = datalength = 1; datalength = this.getter(0).length; chunkSize = datalength; out("LazyFiles on gzip forces download of the whole file when length is accessed"); } this._length = datalength; this._chunkSize = chunkSize; this.lengthKnown = true; }; if (typeof XMLHttpRequest != "undefined") { if (!ENVIRONMENT_IS_WORKER) throw "Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc"; var lazyArray = new LazyUint8Array(); Object.defineProperties(lazyArray, { length: { get: function() { if (!this.lengthKnown) { this.cacheLength(); } return this._length; } }, chunkSize: { get: function() { if (!this.lengthKnown) { this.cacheLength(); } return this._chunkSize; } } }); var properties = { isDevice: false, contents: lazyArray }; } else { var properties = { isDevice: false, url }; } var node = FS.createFile(parent, name, properties, canRead, canWrite); if (properties.contents) { node.contents = properties.contents; } else if (properties.url) { node.contents = null; node.url = properties.url; } Object.defineProperties(node, { usedBytes: { get: function() { return this.contents.length; } } }); var stream_ops = {}; var keys = Object.keys(node.stream_ops); keys.forEach((key) => { var fn = node.stream_ops[key]; stream_ops[key] = function forceLoadLazyFile() { FS.forceLoadFile(node); return fn.apply(null, arguments); }; }); function writeChunks(stream, buffer, offset, length, position) { var contents = stream.node.contents; if (position >= contents.length) return 0; var size = Math.min(contents.length - position, length); if (contents.slice) { for (var i = 0; i < size; i++) { buffer[offset + i] = contents[position + i]; } } else { for (var i = 0; i < size; i++) { buffer[offset + i] = contents.get(position + i); } } return size; } stream_ops.read = (stream, buffer, offset, length, position) => { FS.forceLoadFile(node); return writeChunks(stream, buffer, offset, length, position); }; stream_ops.mmap = (stream, length, position, prot, flags) => { FS.forceLoadFile(node); var ptr = mmapAlloc(); if (!ptr) { throw new FS.ErrnoError(48); } writeChunks(stream, GROWABLE_HEAP_I8(), ptr, length, position); return { ptr, allocated: true }; }; node.stream_ops = stream_ops; return node; }, createPreloadedFile: (parent, name, url, canRead, canWrite, onload, onerror, dontCreateFile, canOwn, preFinish) => { var fullname = name ? PATH_FS.resolve(PATH.join2(parent, name)) : parent; function processData(byteArray) { function finish(byteArray2) { if (preFinish) preFinish(); if (!dontCreateFile) { FS.createDataFile(parent, name, byteArray2, canRead, canWrite, canOwn); } if (onload) onload(); removeRunDependency(); } if (Browser.handledByPreloadPlugin(byteArray, fullname, finish, () => { if (onerror) onerror(); removeRunDependency(); })) { return; } finish(byteArray); } addRunDependency(); if (typeof url == "string") { asyncLoad(url, (byteArray) => processData(byteArray), onerror); } else { processData(url); } }, indexedDB: () => { return window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB || window.msIndexedDB; }, DB_NAME: () => { return "EM_FS_" + window.location.pathname; }, DB_VERSION: 20, DB_STORE_NAME: "FILE_DATA", saveFilesToDB: (paths, onload = () => { }, onerror = () => { }) => { var indexedDB = FS.indexedDB(); try { var openRequest = indexedDB.open(FS.DB_NAME(), FS.DB_VERSION); } catch (e) { return onerror(e); } openRequest.onupgradeneeded = () => { out("creating db"); var db = openRequest.result; db.createObjectStore(FS.DB_STORE_NAME); }; openRequest.onsuccess = () => { var db = openRequest.result; var transaction = db.transaction([FS.DB_STORE_NAME], "readwrite"); var files = transaction.objectStore(FS.DB_STORE_NAME); var ok = 0, fail = 0, total = paths.length; function finish() { if (fail == 0) onload(); else onerror(); } paths.forEach((path) => { var putRequest = files.put(FS.analyzePath(path).object.contents, path); putRequest.onsuccess = () => { ok++; if (ok + fail == total) finish(); }; putRequest.onerror = () => { fail++; if (ok + fail == total) finish(); }; }); transaction.onerror = onerror; }; openRequest.onerror = onerror; }, loadFilesFromDB: (paths, onload = () => { }, onerror = () => { }) => { var indexedDB = FS.indexedDB(); try { var openRequest = indexedDB.open(FS.DB_NAME(), FS.DB_VERSION); } catch (e) { return onerror(e); } openRequest.onupgradeneeded = onerror; openRequest.onsuccess = () => { var db = openRequest.result; try { var transaction = db.transaction([FS.DB_STORE_NAME], "readonly"); } catch (e) { onerror(e); return; } var files = transaction.objectStore(FS.DB_STORE_NAME); var ok = 0, fail = 0, total = paths.length; function finish() { if (fail == 0) onload(); else onerror(); } paths.forEach((path) => { var getRequest = files.get(path); getRequest.onsuccess = () => { if (FS.analyzePath(path).exists) { FS.unlink(path); } FS.createDataFile(PATH.dirname(path), PATH.basename(path), getRequest.result, true, true, true); ok++; if (ok + fail == total) finish(); }; getRequest.onerror = () => { fail++; if (ok + fail == total) finish(); }; }); transaction.onerror = onerror; }; openRequest.onerror = onerror; } }; var SYSCALLS = { DEFAULT_POLLMASK: 5, calculateAt: function(dirfd, path, allowEmpty) { if (PATH.isAbs(path)) { return path; } var dir; if (dirfd === -100) { dir = FS.cwd(); } else { var dirstream = SYSCALLS.getStreamFromFD(dirfd); dir = dirstream.path; } if (path.length == 0) { if (!allowEmpty) { throw new FS.ErrnoError(44); } return dir; } return PATH.join2(dir, path); }, doStat: function(func, path, buf) { try { var stat = func(path); } catch (e) { if (e && e.node && PATH.normalize(path) !== PATH.normalize(FS.getPath(e.node))) { return -54; } throw e; } GROWABLE_HEAP_I32()[buf >>> 2] = stat.dev; GROWABLE_HEAP_I32()[buf + 8 >>> 2] = stat.ino; GROWABLE_HEAP_I32()[buf + 12 >>> 2] = stat.mode; GROWABLE_HEAP_U32()[buf + 16 >>> 2] = stat.nlink; GROWABLE_HEAP_I32()[buf + 20 >>> 2] = stat.uid; GROWABLE_HEAP_I32()[buf + 24 >>> 2] = stat.gid; GROWABLE_HEAP_I32()[buf + 28 >>> 2] = stat.rdev; tempI64 = [stat.size >>> 0, (tempDouble = stat.size, +Math.abs(tempDouble) >= 1 ? tempDouble > 0 ? (Math.min(+Math.floor(tempDouble / 4294967296), 4294967295) | 0) >>> 0 : ~~+Math.ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>> 0 : 0)], GROWABLE_HEAP_I32()[buf + 40 >>> 2] = tempI64[0], GROWABLE_HEAP_I32()[buf + 44 >>> 2] = tempI64[1]; GROWABLE_HEAP_I32()[buf + 48 >>> 2] = 4096; GROWABLE_HEAP_I32()[buf + 52 >>> 2] = stat.blocks; var atime = stat.atime.getTime(); var mtime = stat.mtime.getTime(); var ctime = stat.ctime.getTime(); tempI64 = [Math.floor(atime / 1e3) >>> 0, (tempDouble = Math.floor(atime / 1e3), +Math.abs(tempDouble) >= 1 ? tempDouble > 0 ? (Math.min(+Math.floor(tempDouble / 4294967296), 4294967295) | 0) >>> 0 : ~~+Math.ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>> 0 : 0)], GROWABLE_HEAP_I32()[buf + 56 >>> 2] = tempI64[0], GROWABLE_HEAP_I32()[buf + 60 >>> 2] = tempI64[1]; GROWABLE_HEAP_U32()[buf + 64 >>> 2] = atime % 1e3 * 1e3; tempI64 = [Math.floor(mtime / 1e3) >>> 0, (tempDouble = Math.floor(mtime / 1e3), +Math.abs(tempDouble) >= 1 ? tempDouble > 0 ? (Math.min(+Math.floor(tempDouble / 4294967296), 4294967295) | 0) >>> 0 : ~~+Math.ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>> 0 : 0)], GROWABLE_HEAP_I32()[buf + 72 >>> 2] = tempI64[0], GROWABLE_HEAP_I32()[buf + 76 >>> 2] = tempI64[1]; GROWABLE_HEAP_U32()[buf + 80 >>> 2] = mtime % 1e3 * 1e3; tempI64 = [Math.floor(ctime / 1e3) >>> 0, (tempDouble = Math.floor(ctime / 1e3), +Math.abs(tempDouble) >= 1 ? tempDouble > 0 ? (Math.min(+Math.floor(tempDouble / 4294967296), 4294967295) | 0) >>> 0 : ~~+Math.ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>> 0 : 0)], GROWABLE_HEAP_I32()[buf + 88 >>> 2] = tempI64[0], GROWABLE_HEAP_I32()[buf + 92 >>> 2] = tempI64[1]; GROWABLE_HEAP_U32()[buf + 96 >>> 2] = ctime % 1e3 * 1e3; tempI64 = [stat.ino >>> 0, (tempDouble = stat.ino, +Math.abs(tempDouble) >= 1 ? tempDouble > 0 ? (Math.min(+Math.floor(tempDouble / 4294967296), 4294967295) | 0) >>> 0 : ~~+Math.ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>> 0 : 0)], GROWABLE_HEAP_I32()[buf + 104 >>> 2] = tempI64[0], GROWABLE_HEAP_I32()[buf + 108 >>> 2] = tempI64[1]; return 0; }, doMsync: function(addr, stream, len, flags, offset) { if (!FS.isFile(stream.node.mode)) { throw new FS.ErrnoError(43); } if (flags & 2) { return 0; } addr >>>= 0; var buffer = GROWABLE_HEAP_U8().slice(addr, addr + len); FS.msync(stream, buffer, offset, len, flags); }, varargs: void 0, get: function() { SYSCALLS.varargs += 4; var ret = GROWABLE_HEAP_I32()[SYSCALLS.varargs - 4 >>> 2]; return ret; }, getStr: function(ptr) { var ret = UTF8ToString(ptr); return ret; }, getStreamFromFD: function(fd) { var stream = FS.getStream(fd); if (!stream) throw new FS.ErrnoError(8); return stream; } }; function _proc_exit(code) { if (ENVIRONMENT_IS_PTHREAD) return _emscripten_proxy_to_main_thread_js(1, 1, code); EXITSTATUS = code; if (!keepRuntimeAlive()) { PThread.terminateAllThreads(); if (Module["onExit"]) Module["onExit"](code); ABORT = true; } quit_(code, new ExitStatus(code)); } function exitJS(status, implicit) { EXITSTATUS = status; if (!implicit) { if (ENVIRONMENT_IS_PTHREAD) { exitOnMainThread(status); throw "unwind"; } } _proc_exit(status); } var _exit = exitJS; function handleException(e) { if (e instanceof ExitStatus || e == "unwind") { return EXITSTATUS; } quit_(1, e); } var PThread = { unusedWorkers: [], runningWorkers: [], tlsInitFunctions: [], pthreads: {}, init: function() { if (ENVIRONMENT_IS_PTHREAD) { PThread.initWorker(); } else { PThread.initMainThread(); } }, initMainThread: function() { var pthreadPoolSize = navigator.hardwareConcurrency; while (pthreadPoolSize--) { PThread.allocateUnusedWorker(); } }, initWorker: function() { noExitRuntime = false; }, setExitStatus: function(status) { EXITSTATUS = status; }, terminateAllThreads: function() { for (var worker of Object.values(PThread.pthreads)) { PThread.returnWorkerToPool(worker); } for (var worker of PThread.unusedWorkers) { worker.terminate(); } PThread.unusedWorkers = []; }, returnWorkerToPool: function(worker) { var pthread_ptr = worker.pthread_ptr; delete PThread.pthreads[pthread_ptr]; PThread.unusedWorkers.push(worker); PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(worker), 1); worker.pthread_ptr = 0; if (ENVIRONMENT_IS_NODE) { worker.unref(); } __emscripten_thread_free_data(pthread_ptr); }, receiveObjectTransfer: function(data) { }, threadInitTLS: function() { PThread.tlsInitFunctions.forEach((f) => f()); }, loadWasmModuleToWorker: (worker) => new Promise((onFinishedLoading) => { worker.onmessage = (e) => { var d = e["data"]; var cmd = d["cmd"]; if (worker.pthread_ptr) PThread.currentProxiedOperationCallerThread = worker.pthread_ptr; if (d["targetThread"] && d["targetThread"] != _pthread_self()) { var targetWorker = PThread.pthreads[d.targetThread]; if (targetWorker) { targetWorker.postMessage(d, d["transferList"]); } else { err('Internal error! Worker sent a message "' + cmd + '" to target pthread ' + d["targetThread"] + ", but that thread no longer exists!"); } PThread.currentProxiedOperationCallerThread = void 0; return; } if (cmd === "processProxyingQueue") { executeNotifiedProxyingQueue(d["queue"]); } else if (cmd === "spawnThread") { spawnThread(d); } else if (cmd === "cleanupThread") { cleanupThread(d["thread"]); } else if (cmd === "killThread") { killThread(d["thread"]); } else if (cmd === "cancelThread") { cancelThread(d["thread"]); } else if (cmd === "loaded") { worker.loaded = true; if (ENVIRONMENT_IS_NODE && !worker.pthread_ptr) { worker.unref(); } onFinishedLoading(worker); } else if (cmd === "print") { out("Thread " + d["threadId"] + ": " + d["text"]); } else if (cmd === "printErr") { err("Thread " + d["threadId"] + ": " + d["text"]); } else if (cmd === "alert") { alert("Thread " + d["threadId"] + ": " + d["text"]); } else if (d.target === "setimmediate") { worker.postMessage(d); } else if (cmd === "callHandler") { Module[d["handler"]](...d["args"]); } else if (cmd) { err("worker sent an unknown command " + cmd); } PThread.currentProxiedOperationCallerThread = void 0; }; worker.onerror = (e) => { var message = "worker sent an error!"; err(message + " " + e.filename + ":" + e.lineno + ": " + e.message); throw e; }; if (ENVIRONMENT_IS_NODE) { worker.on("message", function(data) { worker.onmessage({ data }); }); worker.on("error", function(e) { worker.onerror(e); }); worker.on("detachedExit", function() { }); } var handlers = []; var knownHandlers = ["onExit", "onAbort", "print", "printErr"]; for (var handler of knownHandlers) { if (Module.hasOwnProperty(handler)) { handlers.push(handler); } } worker.postMessage({ "cmd": "load", "handlers": handlers, "urlOrBlob": Module["mainScriptUrlOrBlob"] || _scriptDir, "wasmMemory": wasmMemory, "wasmModule": wasmModule }); }), loadWasmModuleToAllWorkers: function(onMaybeReady) { if (ENVIRONMENT_IS_PTHREAD) { return onMaybeReady(); } let pthreadPoolReady = Promise.all(PThread.unusedWorkers.map(PThread.loadWasmModuleToWorker)); pthreadPoolReady.then(onMaybeReady); }, allocateUnusedWorker: function() { var worker; var pthreadMainJs = locateFile("web-ifc-mt.worker.js"); worker = new Worker(pthreadMainJs); PThread.unusedWorkers.push(worker); }, getNewWorker: function() { if (PThread.unusedWorkers.length == 0) { PThread.allocateUnusedWorker(); PThread.loadWasmModuleToWorker(PThread.unusedWorkers[0]); } return PThread.unusedWorkers.pop(); } }; Module["PThread"] = PThread; function callRuntimeCallbacks(callbacks) { while (callbacks.length > 0) { callbacks.shift()(Module); } } function establishStackSpace() { var pthread_ptr = _pthread_self(); var stackTop = GROWABLE_HEAP_I32()[pthread_ptr + 52 >>> 2]; var stackSize = GROWABLE_HEAP_I32()[pthread_ptr + 56 >>> 2]; var stackMax = stackTop - stackSize; _emscripten_stack_set_limits(stackTop, stackMax); stackRestore(stackTop); } Module["establishStackSpace"] = establishStackSpace; function exitOnMainThread(returnCode) { if (ENVIRONMENT_IS_PTHREAD) return _emscripten_proxy_to_main_thread_js(2, 0, returnCode); try { _exit(returnCode); } catch (e) { handleException(e); } } var wasmTableMirror = []; function getWasmTableEntry(funcPtr) { var func = wasmTableMirror[funcPtr]; if (!func) { if (funcPtr >= wasmTableMirror.length) wasmTableMirror.length = funcPtr + 1; wasmTableMirror[funcPtr] = func = wasmTable.get(funcPtr); } return func; } function invokeEntryPoint(ptr, arg) { var result = getWasmTableEntry(ptr)(arg); if (keepRuntimeAlive()) { PThread.setExitStatus(result); } else { __emscripten_thread_exit(result); } } Module["invokeEntryPoint"] = invokeEntryPoint; function registerTLSInit(tlsInitFunc) { PThread.tlsInitFunctions.push(tlsInitFunc); } function ExceptionInfo(excPtr) { this.excPtr = excPtr; this.ptr = excPtr - 24; this.set_type = function(type) { GROWABLE_HEAP_U32()[this.ptr + 4 >>> 2] = type; }; this.get_type = function() { return GROWABLE_HEAP_U32()[this.ptr + 4 >>> 2]; }; this.set_destructor = function(destructor) { GROWABLE_HEAP_U32()[this.ptr + 8 >>> 2] = destructor; }; this.get_destructor = function() { return GROWABLE_HEAP_U32()[this.ptr + 8 >>> 2]; }; this.set_refcount = function(refcount) { GROWABLE_HEAP_I32()[this.ptr >>> 2] = refcount; }; this.set_caught = function(caught) { caught = caught ? 1 : 0; GROWABLE_HEAP_I8()[this.ptr + 12 >>> 0] = caught; }; this.get_caught = function() { return GROWABLE_HEAP_I8()[this.ptr + 12 >>> 0] != 0; }; this.set_rethrown = function(rethrown) { rethrown = rethrown ? 1 : 0; GROWABLE_HEAP_I8()[this.ptr + 13 >>> 0] = rethrown; }; this.get_rethrown = function() { return GROWABLE_HEAP_I8()[this.ptr + 13 >>> 0] != 0; }; this.init = function(type, destructor) { this.set_adjusted_ptr(0); this.set_type(type); this.set_destructor(destructor); this.set_refcount(0); this.set_caught(false); this.set_rethrown(false); }; this.add_ref = function() { Atomics.add(GROWABLE_HEAP_I32(), this.ptr + 0 >> 2, 1); }; this.release_ref = function() { var prev = Atomics.sub(GROWABLE_HEAP_I32(), this.ptr + 0 >> 2, 1); return prev === 1; }; this.set_adjusted_ptr = function(adjustedPtr) { GROWABLE_HEAP_U32()[this.ptr + 16 >>> 2] = adjustedPtr; }; this.get_adjusted_ptr = function() { return GROWABLE_HEAP_U32()[this.ptr + 16 >>> 2]; }; this.get_exception_ptr = function() { var isPointer = ___cxa_is_pointer_type(this.get_type()); if (isPointer) { return GROWABLE_HEAP_U32()[this.excPtr >>> 2]; } var adjusted = this.get_adjusted_ptr(); if (adjusted !== 0) return adjusted; return this.excPtr; }; } function ___cxa_throw(ptr, type, destructor) { var info = new ExceptionInfo(ptr); info.init(type, destructor); throw ptr; } function ___emscripten_init_main_thread_js(tb) { __emscripten_thread_init(tb, !ENVIRONMENT_IS_WORKER, 1, !ENVIRONMENT_IS_WEB); PThread.threadInitTLS(); } function ___emscripten_thread_cleanup(thread) { if (!ENVIRONMENT_IS_PTHREAD) cleanupThread(thread); else postMessage({ "cmd": "cleanupThread", "thread": thread }); } function setErrNo(value) { GROWABLE_HEAP_I32()[___errno_location() >>> 2] = value; return value; } function ___syscall_fcntl64(fd, cmd, varargs) { if (ENVIRONMENT_IS_PTHREAD) return _emscripten_proxy_to_main_thread_js(3, 1, fd, cmd, varargs); SYSCALLS.varargs = varargs; try { var stream = SYSCALLS.getStreamFromFD(fd); switch (cmd) { case 0: { var arg = SYSCALLS.get(); if (arg < 0) { return -28; } var newStream; newStream = FS.createStream(stream, arg); return newStream.fd; } case 1: case 2: return 0; case 3: return stream.flags; case 4: { var arg = SYSCALLS.get(); stream.flags |= arg; return 0; } case 5: { var arg = SYSCALLS.get(); var offset = 0; GROWABLE_HEAP_I16()[arg + offset >>> 1] = 2; return 0; } case 6: case 7: return 0; case 16: case 8: return -28; case 9: setErrNo(28); return -1; default: { return -28; } } } catch (e) { if (typeof FS == "undefined" || !(e instanceof FS.ErrnoError)) throw e; return -e.errno; } } function ___syscall_ioctl(fd, op, varargs) { if (ENVIRONMENT_IS_PTHREAD) return _emscripten_proxy_to_main_thread_js(4, 1, fd, op, varargs); SYSCALLS.varargs = varargs; try { var stream = SYSCALLS.getStreamFromFD(fd); switch (op) { case 21509: case 21505: { if (!stream.tty) return -59; return 0; } case 21510: case 21511: case 21512: case 21506: case 21507: case 21508: { if (!stream.tty) return -59; return 0; } case 21519: { if (!stream.tty) return -59; var argp = SYSCALLS.get(); GROWABLE_HEAP_I32()[argp >>> 2] = 0; return 0; } case 21520: { if (!stream.tty) return -59; return -28; } case 21531: { var argp = SYSCALLS.get(); return FS.ioctl(stream, op, argp); } case 21523: { if (!stream.tty) return -59; return 0; } case 21524: { if (!stream.tty) return -59; return 0; } default: return -28; } } catch (e) { if (typeof FS == "undefined" || !(e instanceof FS.ErrnoError)) throw e; return -e.errno; } } function ___syscall_openat(dirfd, path, flags, varargs) { if (ENVIRONMENT_IS_PTHREAD) return _emscripten_proxy_to_main_thread_js(5, 1, dirfd, path, flags, varargs); SYSCALLS.varargs = varargs; try { path = SYSCALLS.getStr(path); path = SYSCALLS.calculateAt(dirfd, path); var mode = varargs ? SYSCALLS.get() : 0; return FS.open(path, flags, mode).fd; } catch (e) { if (typeof FS == "undefined" || !(e instanceof FS.ErrnoError)) throw e; return -e.errno; } } function __dlinit(main_dso_handle) { } var dlopenMissingError = "To use dlopen, you need enable dynamic linking, see https://github.com/emscripten-core/emscripten/wiki/Linking"; function __dlopen_js(handle) { abort(dlopenMissingError); } function __dlsym_catchup_js(handle, symbolIndex) { abort(dlopenMissingError); } var tupleRegistrations = {}; function runDestructors(destructors) { while (destructors.length) { var ptr = destructors.pop(); var del = destructors.pop(); del(ptr); } } function simpleReadValueFromPointer(pointer) { return this["fromWireType"](GROWABLE_HEAP_I32()[pointer >>> 2]); } var awaitingDependencies = {}; var registeredTypes = {}; var typeDependencies = {}; var char_0 = 48; var char_9 = 57; function makeLegalFunctionName(name) { if (name === void 0) { return "_unknown"; } name = name.replace(/[^a-zA-Z0-9_]/g, "$"); var f = name.charCodeAt(0); if (f >= char_0 && f <= char_9) { return "_" + name; } return name; } function createNamedFunction(name, body) { name = makeLegalFunctionName(name); return new Function("body", "return function " + name + '() {\n "use strict"; return body.apply(this, arguments);\n};\n')(body); } function extendError(baseErrorType, errorName) { var errorClass = createNamedFunction(errorName, function(message) { this.name = errorName; this.message = message; var stack = new Error(message).stack; if (stack !== void 0) { this.stack = this.toString() + "\n" + stack.replace(/^Error(:[^\n]*)?\n/, ""); } }); errorClass.prototype = Object.create(baseErrorType.prototype); errorClass.prototype.constructor = errorClass; errorClass.prototype.toString = function() { if (this.message === void 0) { return this.name; } else { return this.name + ": " + this.message; } }; return errorClass; } var InternalError = void 0; function throwInternalError(message) { throw new InternalError(message); } function whenDependentTypesAreResolved(myTypes, dependentTypes, getTypeConverters) { myTypes.forEach(function(type) { typeDependencies[type] = dependentTypes; }); function onComplete(typeConverters2) { var myTypeConverters = getTypeConverters(typeConverters2); if (myTypeConverters.length !== myTypes.length) { throwInternalError("Mismatched type converter count"); } for (var i = 0; i < myTypes.length; ++i) { registerType(myTypes[i], myTypeConverters[i]); } } var typeConverters = new Array(dependentTypes.length); var unregisteredTypes = []; var registered = 0; dependentTypes.forEach((dt, i) => { if (registeredTypes.hasOwnProperty(dt)) { typeConverters[i] = registeredTypes[dt]; } else { unregisteredTypes.push(dt); if (!awaitingDependencies.hasOwnProperty(dt)) { awaitingDependencies[dt] = []; } awaitingDependencies[dt].push(() => { typeConverters[i] = registeredTypes[dt]; ++registered; if (registered === unregisteredTypes.length) { onComplete(typeConverters); } }); } }); if (unregisteredTypes.length === 0) { onComplete(typeConverters); } } function __embind_finalize_value_array(rawTupleType) { var reg = tupleRegistrations[rawTupleType]; delete tupleRegistrations[rawTupleType]; var elements = reg.elements; var elementsLength = elements.length; var elementTypes = elements.map(function(elt) { return elt.getterReturnType; }).concat(elements.map(function(elt) { return elt.setterArgumentType; })); var rawConstructor = reg.rawConstructor; var rawDestructor = reg.rawDestructor; whenDependentTypesAreResolved([rawTupleType], elementTypes, function(elementTypes2) { elements.forEach((elt, i) => { var getterReturnType = elementTypes2[i]; var getter = elt.getter; var getterContext = elt.getterContext; var setterArgumentType = elementTypes2[i + elementsLength]; var setter = elt.setter; var setterContext = elt.setterContext; elt.read = (ptr) => { return getterReturnType["fromWireType"](getter(getterContext, ptr)); }; elt.write = (ptr, o) => { var destructors = []; setter(setterContext, ptr, setterArgumentType["toWireType"](destructors, o)); runDestructors(destructors); }; }); return [{ name: reg.name, "fromWireType": function(ptr) { var rv = new Array(elementsLength); for (var i = 0; i < elementsLength; ++i) { rv[i] = elements[i].read(ptr); } rawDestructor(ptr); return rv; }, "toWireType": function(destructors, o) { if (elementsLength !== o.length) { throw new TypeError("Incorrect number of tuple elements for " + reg.name + ": expected=" + elementsLength + ", actual=" + o.length); } var ptr = rawConstructor(); for (var i = 0; i < elementsLength; ++i) { elements[i].write(ptr, o[i]); } if (destructors !== null) { destructors.push(rawDestructor, ptr); } return ptr; }, "argPackAdvance": 8, "readValueFromPointer": simpleReadValueFromPointer, destructorFunction: rawDestructor }]; }); } var structRegistrations = {}; function __embind_finalize_value_object(structType) { var reg = structRegistrations[structType]; delete structRegistrations[structType]; var rawConstructor = reg.rawConstructor; var rawDestructor = reg.rawDestructor; var fieldRecords = reg.fields; var fieldTypes = fieldRecords.map((field) => field.getterReturnType).concat(fieldRecords.map((field) => field.setterArgumentType)); whenDependentTypesAreResolved([structType], fieldTypes, (fieldTypes2) => { var fields = {}; fieldRecords.forEach((field, i) => { var fieldName = field.fieldName; var getterReturnType = fieldTypes2[i]; var getter = field.getter; var getterContext = field.getterContext; var setterArgumentType = fieldTypes2[i + fieldRecords.length]; var setter = field.setter; var setterContext = field.setterContext; fields[fieldName] = { read: (ptr) => { return getterReturnType["fromWireType"](getter(getterContext, ptr)); }, write: (ptr, o) => { var destructors = []; setter(setterContext, ptr, setterArgumentType["toWireType"](destructors, o)); runDestructors(destructors); } }; }); return [{ name: reg.name, "fromWireType": function(ptr) { var rv = {}; for (var i in fields) { rv[i] = fields[i].read(ptr); } rawDestructor(ptr); return rv; }, "toWireType": function(destructors, o) { for (var fieldName in fields) { if (!(fieldName in o)) { throw new TypeError('Missing field: "' + fieldName + '"'); } } var ptr = rawConstructor(); for (fieldName in fields) { fields[fieldName].write(ptr, o[fieldName]); } if (destructors !== null) { destructors.push(rawDestructor, ptr); } return ptr; }, "argPackAdvance": 8, "readValueFromPointer": simpleReadValueFromPointer, destructorFunction: rawDestructor }]; }); } function __embind_register_bigint(primitiveType, name, size, minRange, maxRange) { } function getShiftFromSize(size) { switch (size) { case 1: return 0; case 2: return 1; case 4: return 2; case 8: return 3; default: throw new TypeError("Unknown type size: " + size); } } function embind_init_charCodes() { var codes = new Array(256); for (var i = 0; i < 256; ++i) { codes[i] = String.fromCharCode(i); } embind_charCodes = codes; } var embind_charCodes = void 0; function readLatin1String(ptr) { var ret = ""; var c = ptr; while (GROWABLE_HEAP_U8()[c >>> 0]) { ret += embind_charCodes[GROWABLE_HEAP_U8()[c++ >>> 0]]; } return ret; } var BindingError = void 0; function throwBindingError(message) { throw new BindingError(message); } function registerType(rawType, registeredInstance, options = {}) { if (!("argPackAdvance" in registeredInstance)) { throw new TypeError("registerType registeredInstance requires argPackAdvance"); } var name = registeredInstance.name; if (!rawType) { throwBindingError('type "' + name + '" must have a positive integer typeid pointer'); } if (registeredTypes.hasOwnProperty(rawType)) { if (options.ignoreDuplicateRegistrations) { return; } else { throwBindingError("Cannot register type '" + name + "' twice"); } } registeredTypes[rawType] = registeredInstance; delete typeDependencies[rawType]; if (awaitingDependencies.hasOwnProperty(rawType)) { var callbacks = awaitingDependencies[rawType]; delete awaitingDependencies[rawType]; callbacks.forEach((cb) => cb()); } } function __embind_register_bool(rawType, name, size, trueValue, falseValue) { var shift = getShiftFromSize(size); name = readLatin1String(name); registerType(rawType, { name, "fromWireType": function(wt) { return !!wt; }, "toWireType": function(destructors, o) { return o ? trueValue : falseValue; }, "argPackAdvance": 8, "readValueFromPointer": function(pointer) { var heap; if (size === 1) { heap = GROWABLE_HEAP_I8(); } else if (size === 2) { heap = GROWABLE_HEAP_I16(); } else if (size === 4) { heap = GROWABLE_HEAP_I32(); } else { throw new TypeError("Unknown boolean type size: " + name); } return this["fromWireType"](heap[pointer >>> shift]); }, destructorFunction: null }); } function ClassHandle_isAliasOf(other) { if (!(this instanceof ClassHandle)) { return false; } if (!(other instanceof ClassHandle)) { return false; } var leftClass = this.$$.ptrType.registeredClass; var left = this.$$.ptr; var rightClass = other.$$.ptrType.registeredClass; var right = other.$$.ptr; while (leftClass.baseClass) { left = leftClass.upcast(left); leftClass = leftClass.baseClass; } while (rightClass.baseClass) { right = rightClass.upcast(right); rightClass = rightClass.baseClass; } return leftClass === rightClass && left === right; } function shallowCopyInternalPointer(o) { return { count: o.count, deleteScheduled: o.deleteScheduled, preservePointerOnDelete: o.preservePointerOnDelete, ptr: o.ptr, ptrType: o.ptrType, smartPtr: o.smartPtr, smartPtrType: o.smartPtrType }; } function throwInstanceAlreadyDeleted(obj) { function getInstanceTypeName(handle) { return handle.$$.ptrType.registeredClass.name; } throwBindingError(getInstanceTypeName(obj) + " instance already deleted"); } var finalizationRegistry = false; function detachFinalizer(handle) { } function runDestructor($$) { if ($$.smartPtr) { $$.smartPtrType.rawDestructor($$.smartPtr); } else { $$.ptrType.registeredClass.rawDestructor($$.ptr); } } function releaseClassHandle($$) { $$.count.value -= 1; var toDelete = $$.count.value === 0; if (toDelete) { runDestructor($$); } } function downcastPointer(ptr, ptrClass, desiredClass) { if (ptrClass === desiredClass) { return ptr; } if (desiredClass.baseClass === void 0) { return null; } var rv = downcastPointer(ptr, ptrClass, desiredClass.baseClass); if (rv === null) { return null; } return desiredClass.downcast(rv); } var registeredPointers = {}; function getInheritedInstanceCount() { return Object.keys(registeredInstances).length; } function getLiveInheritedInstances() { var rv = []; for (var k in registeredInstances) { if (registeredInstances.hasOwnProperty(k)) { rv.push(registeredInstances[k]); } } return rv; } var deletionQueue = []; function flushPendingDeletes() { while (deletionQueue.length) { var obj = deletionQueue.pop(); obj.$$.deleteScheduled = false; obj["delete"](); } } var delayFunction = void 0; function setDelayFunction(fn) { delayFunction = fn; if (deletionQueue.length && delayFunction) { delayFunction(flushPendingDeletes); } } function init_embind() { Module["getInheritedInstanceCount"] = getInheritedInstanceCount; Module["getLiveInheritedInstances"] = getLiveInheritedInstances; Module["flushPendingDeletes"] = flushPendingDeletes; Module["setDelayFunction"] = setDelayFunction; } var registeredInstances = {}; function getBasestPointer(class_, ptr) { if (ptr === void 0) { throwBindingError("ptr should not be undefined"); } while (class_.baseClass) { ptr = class_.upcast(ptr); class_ = class_.baseClass; } return ptr; } function getInheritedInstance(class_, ptr) { ptr = getBasestPointer(class_, ptr); return registeredInstances[ptr]; } function makeClassHandle(prototype, record) { if (!record.ptrType || !record.ptr) { throwInternalError("makeClassHandle requires ptr and ptrType"); } var hasSmartPtrType = !!record.smartPtrType; var hasSmartPtr = !!record.smartPtr; if (hasSmartPtrType !== hasSmartPtr) { throwInternalError("Both smartPtrType and smartPtr must be specified"); } record.count = { value: 1 }; return attachFinalizer(Object.create(prototype, { $$: { value: record } })); } function RegisteredPointer_fromWireType(ptr) { var rawPointer = this.getPointee(ptr); if (!rawPointer) { this.destructor(ptr); return null; } var registeredInstance = getInheritedInstance(this.registeredClass, rawPointer); if (registeredInstance !== void 0) { if (registeredInstance.$$.count.value === 0) { registeredInstance.$$.ptr = rawPointer; registeredInstance.$$.smartPtr = ptr; return registeredInstance["clone"](); } else { var rv = registeredInstance["clone"](); this.destructor(ptr); return rv; } } function makeDefaultHandle() { if (this.isSmartPointer) { return makeClassHandle(this.registeredClass.instancePrototype, { ptrType: this.pointeeType, ptr: rawPointer, smartPtrType: this, smartPtr: ptr }); } else { return makeClassHandle(this.registeredClass.instancePrototype, { ptrType: this, ptr }); } } var actualType = this.registeredClass.getActualType(rawPointer); var registeredPointerRecord = registeredPointers[actualType]; if (!registeredPointerRecord) { return makeDefaultHandle.call(this); } var toType; if (this.isConst) { toType = registeredPointerRecord.constPointerType; } else { toType = registeredPointerRecord.pointerType; } var dp = downcastPointer(rawPointer, this.registeredClass, toType.registeredClass); if (dp === null) { return makeDefaultHandle.call(this); } if (this.isSmartPointer) { return makeClassHandle(toType.registeredClass.instancePrototype, { ptrType: toType, ptr: dp, smartPtrType: this, smartPtr: ptr }); } else { return makeClassHandle(toType.registeredClass.instancePrototype, { ptrType: toType, ptr: dp }); } } function attachFinalizer(handle) { if (typeof FinalizationRegistry === "undefined") { attachFinalizer = (handle2) => handle2; return handle; } finalizationRegistry = new FinalizationRegistry((info) => { releaseClassHandle(info.$$); }); attachFinalizer = (handle2) => { var $$ = handle2.$$; var hasSmartPtr = !!$$.smartPtr; if (hasSmartPtr) { var info = { $$ }; finalizationRegistry.register(handle2, info, handle2); } return handle2; }; detachFinalizer = (handle2) => finalizationRegistry.unregister(handle2); return attachFinalizer(handle); } function ClassHandle_clone() { if (!this.$$.ptr) { throwInstanceAlreadyDeleted(this); } if (this.$$.preservePointerOnDelete) { this.$$.count.value += 1; return this; } else { var clone = attachFinalizer(Object.create(Object.getPrototypeOf(this), { $$: { value: shallowCopyInternalPointer(this.$$) } })); clone.$$.count.value += 1; clone.$$.deleteScheduled = false; return clone; } } function ClassHandle_delete() { if (!this.$$.ptr) { throwInstanceAlreadyDeleted(this); } if (this.$$.deleteScheduled && !this.$$.preservePointerOnDelete) { throwBindingError("Object already scheduled for deletion"); } detachFinalizer(this); releaseClassHandle(this.$$); if (!this.$$.preservePointerOnDelete) { this.$$.smartPtr = void 0; this.$$.ptr = void 0; } } function ClassHandle_isDeleted() { return !this.$$.ptr; } function ClassHandle_deleteLater() { if (!this.$$.ptr) { throwInstanceAlreadyDeleted(this); } if (this.$$.deleteScheduled && !this.$$.preservePointerOnDelete) { throwBindingError("Object already scheduled for deletion"); } deletionQueue.push(this); if (deletionQueue.length === 1 && delayFunction) { delayFunction(flushPendingDeletes); } this.$$.deleteScheduled = true; return this; } function init_ClassHandle() { ClassHandle.prototype["isAliasOf"] = ClassHandle_isAliasOf; ClassHandle.prototype["clone"] = ClassHandle_clone; ClassHandle.prototype["delete"] = ClassHandle_delete; ClassHandle.prototype["isDeleted"] = ClassHandle_isDeleted; ClassHandle.prototype["deleteLater"] = ClassHandle_deleteLater; } function ClassHandle() { } function ensureOverloadTable(proto, methodName, humanName) { if (proto[methodName].overloadTable === void 0) { var prevFunc = proto[methodName]; proto[methodName] = function() { if (!proto[methodName].overloadTable.hasOwnProperty(arguments.length)) { throwBindingError("Function '" + humanName + "' called with an invalid number of arguments (" + arguments.length + ") - expects one of (" + proto[methodName].overloadTable + ")!"); } return proto[methodName].overloadTable[arguments.length].apply(this, arguments); }; proto[methodName].overloadTable = []; proto[methodName].overloadTable[prevFunc.argCount] = prevFunc; } } function exposePublicSymbol(name, value, numArguments) { if (Module.hasOwnProperty(name)) { if (numArguments === void 0 || Module[name].overloadTable !== void 0 && Module[name].overloadTable[numArguments] !== void 0) { throwBindingError("Cannot register public name '" + name + "' twice"); } ensureOverloadTable(Module, name, name); if (Module.hasOwnProperty(numArguments)) { throwBindingError("Cannot register multiple overloads of a function with the same number of arguments (" + numArguments + ")!"); } Module[name].overloadTable[numArguments] = value; } else { Module[name] = value; if (numArguments !== void 0) { Module[name].numArguments = numArguments; } } } function RegisteredClass(name, constructor, instancePrototype, rawDestructor, baseClass, getActualType, upcast, downcast) { this.name = name; this.constructor = constructor; this.instancePrototype = instancePrototype; this.rawDestructor = rawDestructor; this.baseClass = baseClass; this.getActualType = getActualType; this.upcast = upcast; this.downcast = downcast; this.pureVirtualFunctions = []; } function upcastPointer(ptr, ptrClass, desiredClass) { while (ptrClass !== desiredClass) { if (!ptrClass.upcast) { throwBindingError("Expected null or instance of " + desiredClass.name + ", got an instance of " + ptrClass.name); } ptr = ptrClass.upcast(ptr); ptrClass = ptrClass.baseClass; } return ptr; } function constNoSmartPtrRawPointerToWireType(destructors, handle) { if (handle === null) { if (this.isReference) { throwBindingError("null is not a valid " + this.name); } return 0; } if (!handle.$$) { throwBindingError('Cannot pass "' + embindRepr(handle) + '" as a ' + this.name); } if (!handle.$$.ptr) { throwBindingError("Cannot pass deleted object as a pointer of type " + this.name); } var handleClass = handle.$$.ptrType.registeredClass; var ptr = upcastPointer(handle.$$.ptr, handleClass, this.registeredClass); return ptr; } function genericPointerToWireType(destructors, handle) { var ptr; if (handle === null) { if (this.isReference) { throwBindingError("null is not a valid " + this.name); } if (this.isSmartPointer) { ptr = this.rawConstructor(); if (destructors !== null) { destructors.push(this.rawDestructor, ptr); } return ptr; } else { return 0; } } if (!handle.$$) { throwBindingError('Cannot pass "' + embindRepr(handle) + '" as a ' + this.name); } if (!handle.$$.ptr) { throwBindingError("Cannot pass deleted object as a pointer of type " + this.name); } if (!this.isConst && handle.$$.ptrType.isConst) { throwBindingError("Cannot convert argument of type " + (handle.$$.smartPtrType ? handle.$$.smartPtrType.name : handle.$$.ptrType.name) + " to parameter type " + this.name); } var handleClass = handle.$$.ptrType.registeredClass; ptr = upcastPointer(handle.$$.ptr, handleClass, this.registeredClass); if (this.isSmartPointer) { if (handle.$$.smartPtr === void 0) { throwBindingError("Passing raw pointer to smart pointer is illegal"); } switch (this.sharingPolicy) { case 0: if (handle.$$.smartPtrType === this) { ptr = handle.$$.smartPtr; } else { throwBindingError("Cannot convert argument of type " + (handle.$$.smartPtrType ? handle.$$.smartPtrType.name : handle.$$.ptrType.name) + " to parameter type " + this.name); } break; case 1: ptr = handle.$$.smartPtr; break; case 2: if (handle.$$.smartPtrType === this) { ptr = handle.$$.smartPtr; } else { var clonedHandle = handle["clone"](); ptr = this.rawShare(ptr, Emval.toHandle(function() { clonedHandle["delete"](); })); if (destructors !== null) { destructors.push(this.rawDestructor, ptr); } } break; default: throwBindingError("Unsupporting sharing policy"); } } return ptr; } function nonConstNoSmartPtrRawPointerToWireType(destructors, handle) { if (handle === null) { if (this.isReference) { throwBindingError("null is not a valid " + this.name); } return 0; } if (!handle.$$) { throwBindingError('Cannot pass "' + embindRepr(handle) + '" as a ' + this.name); } if (!handle.$$.ptr) { throwBindingError("Cannot pass deleted object as a pointer of type " + this.name); } if (handle.$$.ptrType.isConst) { throwBindingError("Cannot convert argument of type " + handle.$$.ptrType.name + " to parameter type " + this.name); } var handleClass = handle.$$.ptrType.registeredClass; var ptr = upcastPointer(handle.$$.ptr, handleClass, this.registeredClass); return ptr; } function RegisteredPointer_getPointee(ptr) { if (this.rawGetPointee) { ptr = this.rawGetPointee(ptr); } return ptr; } function RegisteredPointer_destructor(ptr) { if (this.rawDestructor) { this.rawDestructor(ptr); } } function RegisteredPointer_deleteObject(handle) { if (handle !== null) { handle["delete"](); } } function init_RegisteredPointer() { RegisteredPointer.prototype.getPointee = RegisteredPointer_getPointee; RegisteredPointer.prototype.destructor = RegisteredPointer_destructor; RegisteredPointer.prototype["argPackAdvance"] = 8; RegisteredPointer.prototype["readValueFromPointer"] = simpleReadValueFromPointer; RegisteredPointer.prototype["deleteObject"] = RegisteredPointer_deleteObject; RegisteredPointer.prototype["fromWireType"] = RegisteredPointer_fromWireType; } function RegisteredPointer(name, registeredClass, isReference, isConst, isSmartPointer, pointeeType, sharingPolicy, rawGetPointee, rawConstructor, rawShare, rawDestructor) { this.name = name; this.registeredClass = registeredClass; this.isReference = isReference; this.isConst = isConst; this.isSmartPointer = isSmartPointer; this.pointeeType = pointeeType; this.sharingPolicy = sharingPolicy; this.rawGetPointee = rawGetPointee; this.rawConstructor = rawConstructor; this.rawShare = rawShare; this.rawDestructor = rawDestructor; if (!isSmartPointer && registeredClass.baseClass === void 0) { if (isConst) { this["toWireType"] = constNoSmartPtrRawPointerToWireType; this.destructorFunction = null; } else { this["toWireType"] = nonConstNoSmartPtrRawPointerToWireType; this.destructorFunction = null; } } else { this["toWireType"] = genericPointerToWireType; } } function replacePublicSymbol(name, value, numArguments) { if (!Module.hasOwnProperty(name)) { throwInternalError("Replacing nonexistant public symbol"); } if (Module[name].overloadTable !== void 0 && numArguments !== void 0) { Module[name].overloadTable[numArguments] = value; } else { Module[name] = value; Module[name].argCount = numArguments; } } function dynCallLegacy(sig, ptr, args) { var f = Module["dynCall_" + sig]; return args && args.length ? f.apply(null, [ptr].concat(args)) : f.call(null, ptr); } function dynCall(sig, ptr, args) { if (sig.includes("j")) { return dynCallLegacy(sig, ptr, args); } var rtn = getWasmTableEntry(ptr).apply(null, args); return rtn; } function getDynCaller(sig, ptr) { var argCache = []; return function() { argCache.length = 0; Object.assign(argCache, arguments); return dynCall(sig, ptr, argCache); }; } function embind__requireFunction(signature, rawFunction) { signature = readLatin1String(signature); function makeDynCaller() { if (signature.includes("j")) { return getDynCaller(signature, rawFunction); } return getWasmTableEntry(rawFunction); } var fp = makeDynCaller(); if (typeof fp != "function") { throwBindingError("unknown function pointer with signature " + signature + ": " + rawFunction); } return fp; } var UnboundTypeError = void 0; function getTypeName(type) { var ptr = ___getTypeName(type); var rv = readLatin1String(ptr); _free(ptr); return rv; } function throwUnboundTypeError(message, types) { var unboundTypes = []; var seen = {}; function visit(type) { if (seen[type]) { return; } if (registeredTypes[type]) { return; } if (typeDependencies[type]) { typeDependencies[type].forEach(visit); return; } unboundTypes.push(type); seen[type] = true; } types.forEach(visit); throw new UnboundTypeError(message + ": " + unboundTypes.map(getTypeName).join([", "])); } function __embind_register_class(rawType, rawPointerType, rawConstPointerType, baseClassRawType, getActualTypeSignature, getActualType, upcastSignature, upcast, downcastSignature, downcast, name, destructorSignature, rawDestructor) { name = readLatin1String(name); getActualType = embind__requireFunction(getActualTypeSignature, getActualType); if (upcast) { upcast = embind__requireFunction(upcastSignature, upcast); } if (downcast) { downcast = embind__requireFunction(downcastSignature, downcast); } rawDestructor = embind__requireFunction(destructorSignature, rawDestructor); var legalFunctionName = makeLegalFunctionName(name); exposePublicSymbol(legalFunctionName, function() { throwUnboundTypeError("Cannot construct " + name + " due to unbound types", [baseClassRawType]); }); whenDependentTypesAreResolved([rawType, rawPointerType, rawConstPointerType], baseClassRawType ? [baseClassRawType] : [], function(base) { base = base[0]; var baseClass; var basePrototype; if (baseClassRawType) { baseClass = base.registeredClass; basePrototype = baseClass.instancePrototype; } else { basePrototype = ClassHandle.prototype; } var constructor = createNamedFunction(legalFunctionName, function() { if (Object.getPrototypeOf(this) !== instancePrototype) { throw new BindingError("Use 'new' to construct " + name); } if (registeredClass.constructor_body === void 0) { throw new BindingError(name + " has no accessible constructor"); } var body = registeredClass.constructor_body[arguments.length]; if (body === void 0) { throw new BindingError("Tried to invoke ctor of " + name + " with invalid number of parameters (" + arguments.length + ") - expected (" + Object.keys(registeredClass.constructor_body).toString() + ") parameters instead!"); } return body.apply(this, arguments); }); var instancePrototype = Object.create(basePrototype, { constructor: { value: constructor } }); constructor.prototype = instancePrototype; var registeredClass = new RegisteredClass(name, constructor, instancePrototype, rawDestructor, baseClass, getActualType, upcast, downcast); var referenceConverter = new RegisteredPointer(name, registeredClass, true, false, false); var pointerConverter = new RegisteredPointer(name + "*", registeredClass, false, false, false); var constPointerConverter = new RegisteredPointer(name + " const*", registeredClass, false, true, false); registeredPointers[rawType] = { pointerType: pointerConverter, constPointerType: constPointerConverter }; replacePublicSymbol(legalFunctionName, constructor); return [referenceConverter, pointerConverter, constPointerConverter]; }); } function heap32VectorToArray(count, firstElement) { var array = []; for (var i = 0; i < count; i++) { array.push(GROWABLE_HEAP_U32()[firstElement + i * 4 >>> 2]); } return array; } function new_(constructor, argumentList) { if (!(constructor instanceof Function)) { throw new TypeError("new_ called with constructor type " + typeof constructor + " which is not a function"); } var dummy = createNamedFunction(constructor.name || "unknownFunctionName", function() { }); dummy.prototype = constructor.prototype; var obj = new dummy(); var r = constructor.apply(obj, argumentList); return r instanceof Object ? r : obj; } function craftInvokerFunction(humanName, argTypes, classType, cppInvokerFunc, cppTargetFunc) { var argCount = argTypes.length; if (argCount < 2) { throwBindingError("argTypes array size mismatch! Must at least get return value and 'this' types!"); } var isClassMethodFunc = argTypes[1] !== null && classType !== null; var needsDestructorStack = false; for (var i = 1; i < argTypes.length; ++i) { if (argTypes[i] !== null && argTypes[i].destructorFunction === void 0) { needsDestructorStack = true; break; } } var returns = argTypes[0].name !== "void"; var argsList = ""; var argsListWired = ""; for (var i = 0; i < argCount - 2; ++i) { argsList += (i !== 0 ? ", " : "") + "arg" + i; argsListWired += (i !== 0 ? ", " : "") + "arg" + i + "Wired"; } var invokerFnBody = "return function " + makeLegalFunctionName(humanName) + "(" + argsList + ") {\nif (arguments.length !== " + (argCount - 2) + ") {\nthrowBindingError('function " + humanName + " called with ' + arguments.length + ' arguments, expected " + (argCount - 2) + " args!');\n}\n"; if (needsDestructorStack) { invokerFnBody += "var destructors = [];\n"; } var dtorStack = needsDestructorStack ? "destructors" : "null"; var args1 = ["throwBindingError", "invoker", "fn", "runDestructors", "retType", "classParam"]; var args2 = [throwBindingError, cppInvokerFunc, cppTargetFunc, runDestructors, argTypes[0], argTypes[1]]; if (isClassMethodFunc) { invokerFnBody += "var thisWired = classParam.toWireType(" + dtorStack + ", this);\n"; } for (var i = 0; i < argCount - 2; ++i) { invokerFnBody += "var arg" + i + "Wired = argType" + i + ".toWireType(" + dtorStack + ", arg" + i + "); // " + argTypes[i + 2].name + "\n"; args1.push("argType" + i); args2.push(argTypes[i + 2]); } if (isClassMethodFunc) { argsListWired = "thisWired" + (argsListWired.length > 0 ? ", " : "") + argsListWired; } invokerFnBody += (returns ? "var rv = " : "") + "invoker(fn" + (argsListWired.length > 0 ? ", " : "") + argsListWired + ");\n"; if (needsDestructorStack) { invokerFnBody += "runDestructors(destructors);\n"; } else { for (var i = isClassMethodFunc ? 1 : 2; i < argTypes.length; ++i) { var paramName = i === 1 ? "thisWired" : "arg" + (i - 2) + "Wired"; if (argTypes[i].destructorFunction !== null) { invokerFnBody += paramName + "_dtor(" + paramName + "); // " + argTypes[i].name + "\n"; args1.push(paramName + "_dtor"); args2.push(argTypes[i].destructorFunction); } } } if (returns) { invokerFnBody += "var ret = retType.fromWireType(rv);\nreturn ret;\n"; } invokerFnBody += "}\n"; args1.push(invokerFnBody); var invokerFunction = new_(Function, args1).apply(null, args2); return invokerFunction; } function __embind_register_class_constructor(rawClassType, argCount, rawArgTypesAddr, invokerSignature, invoker, rawConstructor) { assert(argCount > 0); var rawArgTypes = heap32VectorToArray(argCount, rawArgTypesAddr); invoker = embind__requireFunction(invokerSignature, invoker); whenDependentTypesAreResolved([], [rawClassType], function(classType) { classType = classType[0]; var humanName = "constructor " + classType.name; if (classType.registeredClass.constructor_body === void 0) { classType.registeredClass.constructor_body = []; } if (classType.registeredClass.constructor_body[argCount - 1] !== void 0) { throw new BindingError("Cannot register multiple constructors with identical number of parameters (" + (argCount - 1) + ") for class '" + classType.name + "'! Overload resolution is currently only performed using the parameter count, not actual type info!"); } classType.registeredClass.constructor_body[argCount - 1] = () => { throwUnboundTypeError("Cannot construct " + classType.name + " due to unbound types", rawArgTypes); }; whenDependentTypesAreResolved([], rawArgTypes, function(argTypes) { argTypes.splice(1, 0, null); classType.registeredClass.constructor_body[argCount - 1] = craftInvokerFunction(humanName, argTypes, null, invoker, rawConstructor); return []; }); return []; }); } function __embind_register_class_function(rawClassType, methodName, argCount, rawArgTypesAddr, invokerSignature, rawInvoker, context, isPureVirtual) { var rawArgTypes = heap32VectorToArray(argCount, rawArgTypesAddr); methodName = readLatin1String(methodName); rawInvoker = embind__requireFunction(invokerSignature, rawInvoker); whenDependentTypesAreResolved([], [rawClassType], function(classType) { classType = classType[0]; var humanName = classType.name + "." + methodName; if (methodName.startsWith("@@")) { methodName = Symbol[methodName.substring(2)]; } if (isPureVirtual) { classType.registeredClass.pureVirtualFunctions.push(methodName); } function unboundTypesHandler() { throwUnboundTypeError("Cannot call " + humanName + " due to unbound types", rawArgTypes); } var proto = classType.registeredClass.instancePrototype; var method = proto[methodName]; if (method === void 0 || method.overloadTable === void 0 && method.className !== classType.name && method.argCount === argCount - 2) { unboundTypesHandler.argCount = argCount - 2; unboundTypesHandler.className = classType.name; proto[methodName] = unboundTypesHandler; } else { ensureOverloadTable(proto, methodName, humanName); proto[methodName].overloadTable[argCount - 2] = unboundTypesHandler; } whenDependentTypesAreResolved([], rawArgTypes, function(argTypes) { var memberFunction = craftInvokerFunction(humanName, argTypes, classType, rawInvoker, context); if (proto[methodName].overloadTable === void 0) { memberFunction.argCount = argCount - 2; proto[methodName] = memberFunction; } else { proto[methodName].overloadTable[argCount - 2] = memberFunction; } return []; }); return []; }); } var emval_free_list = []; var emval_handle_array = [{}, { value: void 0 }, { value: null }, { value: true }, { value: false }]; function __emval_decref(handle) { if (handle > 4 && --emval_handle_array[handle].refcount === 0) { emval_handle_array[handle] = void 0; emval_free_list.push(handle); } } function count_emval_handles() { var count = 0; for (var i = 5; i < emval_handle_array.length; ++i) { if (emval_handle_array[i] !== void 0) { ++count; } } return count; } function get_first_emval() { for (var i = 5; i < emval_handle_array.length; ++i) { if (emval_handle_array[i] !== void 0) { return emval_handle_array[i]; } } return null; } function init_emval() { Module["count_emval_handles"] = count_emval_handles; Module["get_first_emval"] = get_first_emval; } var Emval = { toValue: (handle) => { if (!handle) { throwBindingError("Cannot use deleted val. handle = " + handle); } return emval_handle_array[handle].value; }, toHandle: (value) => { switch (value) { case void 0: return 1; case null: return 2; case true: return 3; case false: return 4; default: { var handle = emval_free_list.length ? emval_free_list.pop() : emval_handle_array.length; emval_handle_array[handle] = { refcount: 1, value }; return handle; } } } }; function __embind_register_emval(rawType, name) { name = readLatin1String(name); registerType(rawType, { name, "fromWireType": function(handle) { var rv = Emval.toValue(handle); __emval_decref(handle); return rv; }, "toWireType": function(destructors, value) { return Emval.toHandle(value); }, "argPackAdvance": 8, "readValueFromPointer": simpleReadValueFromPointer, destructorFunction: null }); } function enumReadValueFromPointer(name, shift, signed) { switch (shift) { case 0: return function(pointer) { var heap = signed ? GROWABLE_HEAP_I8() : GROWABLE_HEAP_U8(); return this["fromWireType"](heap[pointer >>> 0]); }; case 1: return function(pointer) { var heap = signed ? GROWABLE_HEAP_I16() : GROWABLE_HEAP_U16(); return this["fromWireType"](heap[pointer >>> 1]); }; case 2: return function(pointer) { var heap = signed ? GROWABLE_HEAP_I32() : GROWABLE_HEAP_U32(); return this["fromWireType"](heap[pointer >>> 2]); }; default: throw new TypeError("Unknown integer type: " + name); } } function __embind_register_enum(rawType, name, size, isSigned) { var shift = getShiftFromSize(size); name = readLatin1String(name); function ctor() { } ctor.values = {}; registerType(rawType, { name, constructor: ctor, "fromWireType": function(c) { return this.constructor.values[c]; }, "toWireType": function(destructors, c) { return c.value; }, "argPackAdvance": 8, "readValueFromPointer": enumReadValueFromPointer(name, shift, isSigned), destructorFunction: null }); exposePublicSymbol(name, ctor); } function requireRegisteredType(rawType, humanName) { var impl = registeredTypes[rawType]; if (impl === void 0) { throwBindingError(humanName + " has unknown type " + getTypeName(rawType)); } return impl; } function __embind_register_enum_value(rawEnumType, name, enumValue) { var enumType = requireRegisteredType(rawEnumType, "enum"); name = readLatin1String(name); var Enum = enumType.constructor; var Value = Object.create(enumType.constructor.prototype, { value: { value: enumValue }, constructor: { value: createNamedFunction(enumType.name + "_" + name, function() { }) } }); Enum.values[enumValue] = Value; Enum[name] = Value; } function embindRepr(v) { if (v === null) { return "null"; } var t = typeof v; if (t === "object" || t === "array" || t === "function") { return v.toString(); } else { return "" + v; } } function floatReadValueFromPointer(name, shift) { switch (shift) { case 2: return function(pointer) { return this["fromWireType"](GROWABLE_HEAP_F32()[pointer >>> 2]); }; case 3: return function(pointer) { return this["fromWireType"](GROWABLE_HEAP_F64()[pointer >>> 3]); }; default: throw new TypeError("Unknown float type: " + name); } } function __embind_register_float(rawType, name, size) { var shift = getShiftFromSize(size); name = readLatin1String(name); registerType(rawType, { name, "fromWireType": function(value) { return value; }, "toWireType": function(destructors, value) { return value; }, "argPackAdvance": 8, "readValueFromPointer": floatReadValueFromPointer(name, shift), destructorFunction: null }); } function __embind_register_function(name, argCount, rawArgTypesAddr, signature, rawInvoker, fn) { var argTypes = heap32VectorToArray(argCount, rawArgTypesAddr); name = readLatin1String(name); rawInvoker = embind__requireFunction(signature, rawInvoker); exposePublicSymbol(name, function() { throwUnboundTypeError("Cannot call " + name + " due to unbound types", argTypes); }, argCount - 1); whenDependentTypesAreResolved([], argTypes, function(argTypes2) { var invokerArgsArray = [argTypes2[0], null].concat(argTypes2.slice(1)); replacePublicSymbol(name, craftInvokerFunction(name, invokerArgsArray, null, rawInvoker, fn), argCount - 1); return []; }); } function integerReadValueFromPointer(name, shift, signed) { switch (shift) { case 0: return signed ? function readS8FromPointer(pointer) { return GROWABLE_HEAP_I8()[pointer >>> 0]; } : function readU8FromPointer(pointer) { return GROWABLE_HEAP_U8()[pointer >>> 0]; }; case 1: return signed ? function readS16FromPointer(pointer) { return GROWABLE_HEAP_I16()[pointer >>> 1]; } : function readU16FromPointer(pointer) { return GROWABLE_HEAP_U16()[pointer >>> 1]; }; case 2: return signed ? function readS32FromPointer(pointer) { return GROWABLE_HEAP_I32()[pointer >>> 2]; } : function readU32FromPointer(pointer) { return GROWABLE_HEAP_U32()[pointer >>> 2]; }; default: throw new TypeError("Unknown integer type: " + name); } } function __embind_register_integer(primitiveType, name, size, minRange, maxRange) { name = readLatin1String(name); var shift = getShiftFromSize(size); var fromWireType = (value) => value; if (minRange === 0) { var bitshift = 32 - 8 * size; fromWireType = (value) => value << bitshift >>> bitshift; } var isUnsignedType = name.includes("unsigned"); var checkAssertions = (value, toTypeName) => { }; var toWireType; if (isUnsignedType) { toWireType = function(destructors, value) { checkAssertions(value, this.name); return value >>> 0; }; } else { toWireType = function(destructors, value) { checkAssertions(value, this.name); return value; }; } registerType(primitiveType, { name, "fromWireType": fromWireType, "toWireType": toWireType, "argPackAdvance": 8, "readValueFromPointer": integerReadValueFromPointer(name, shift, minRange !== 0), destructorFunction: null }); } function __embind_register_memory_view(rawType, dataTypeIndex, name) { var typeMapping = [Int8Array, Uint8Array, Int16Array, Uint16Array, Int32Array, Uint32Array, Float32Array, Float64Array]; var TA = typeMapping[dataTypeIndex]; function decodeMemoryView(handle) { handle = handle >> 2; var heap = GROWABLE_HEAP_U32(); var size = heap[handle >>> 0]; var data = heap[handle + 1 >>> 0]; return new TA(heap.buffer, data, size); } name = readLatin1String(name); registerType(rawType, { name, "fromWireType": decodeMemoryView, "argPackAdvance": 8, "readValueFromPointer": decodeMemoryView }, { ignoreDuplicateRegistrations: true }); } function __embind_register_std_string(rawType, name) { name = readLatin1String(name); var stdStringIsUTF8 = name === "std::string"; registerType(rawType, { name, "fromWireType": function(value) { var length = GROWABLE_HEAP_U32()[value >>> 2]; var payload = value + 4; var str; if (stdStringIsUTF8) { var decodeStartPtr = payload; for (var i = 0; i <= length; ++i) { var currentBytePtr = payload + i; if (i == length || GROWABLE_HEAP_U8()[currentBytePtr >>> 0] == 0) { var maxRead = currentBytePtr - decodeStartPtr; var stringSegment = UTF8ToString(decodeStartPtr, maxRead); if (str === void 0) { str = stringSegment; } else { str += String.fromCharCode(0); str += stringSegment; } decodeStartPtr = currentBytePtr + 1; } } } else { var a = new Array(length); for (var i = 0; i < length; ++i) { a[i] = String.fromCharCode(GROWABLE_HEAP_U8()[payload + i >>> 0]); } str = a.join(""); } _free(value); return str; }, "toWireType": function(destructors, value) { if (value instanceof ArrayBuffer) { value = new Uint8Array(value); } var length; var valueIsOfTypeString = typeof value == "string"; if (!(valueIsOfTypeString || value instanceof Uint8Array || value instanceof Uint8ClampedArray || value instanceof Int8Array)) { throwBindingError("Cannot pass non-string to std::string"); } if (stdStringIsUTF8 && valueIsOfTypeString) { length = lengthBytesUTF8(value); } else { length = value.length; } var base = _malloc(4 + length + 1); var ptr = base + 4; ptr >>>= 0; GROWABLE_HEAP_U32()[base >>> 2] = length; if (stdStringIsUTF8 && valueIsOfTypeString) { stringToUTF8(value, ptr, length + 1); } else { if (valueIsOfTypeString) { for (var i = 0; i < length; ++i) { var charCode = value.charCodeAt(i); if (charCode > 255) { _free(ptr); throwBindingError("String has UTF-16 code units that do not fit in 8 bits"); } GROWABLE_HEAP_U8()[ptr + i >>> 0] = charCode; } } else { for (var i = 0; i < length; ++i) { GROWABLE_HEAP_U8()[ptr + i >>> 0] = value[i]; } } } if (destructors !== null) { destructors.push(_free, base); } return base; }, "argPackAdvance": 8, "readValueFromPointer": simpleReadValueFromPointer, destructorFunction: function(ptr) { _free(ptr); } }); } var UTF16Decoder = typeof TextDecoder != "undefined" ? new TextDecoder("utf-16le") : void 0; function UTF16ToString(ptr, maxBytesToRead) { var endPtr = ptr; var idx = endPtr >> 1; var maxIdx = idx + maxBytesToRead / 2; while (!(idx >= maxIdx) && GROWABLE_HEAP_U16()[idx >>> 0]) ++idx; endPtr = idx << 1; if (endPtr - ptr > 32 && UTF16Decoder) return UTF16Decoder.decode(GROWABLE_HEAP_U8().slice(ptr, endPtr)); var str = ""; for (var i = 0; !(i >= maxBytesToRead / 2); ++i) { var codeUnit = GROWABLE_HEAP_I16()[ptr + i * 2 >>> 1]; if (codeUnit == 0) break; str += String.fromCharCode(codeUnit); } return str; } function stringToUTF16(str, outPtr, maxBytesToWrite) { if (maxBytesToWrite === void 0) { maxBytesToWrite = 2147483647; } if (maxBytesToWrite < 2) return 0; maxBytesToWrite -= 2; var startPtr = outPtr; var numCharsToWrite = maxBytesToWrite < str.length * 2 ? maxBytesToWrite / 2 : str.length; for (var i = 0; i < numCharsToWrite; ++i) { var codeUnit = str.charCodeAt(i); GROWABLE_HEAP_I16()[outPtr >>> 1] = codeUnit; outPtr += 2; } GROWABLE_HEAP_I16()[outPtr >>> 1] = 0; return outPtr - startPtr; } function lengthBytesUTF16(str) { return str.length * 2; } function UTF32ToString(ptr, maxBytesToRead) { var i = 0; var str = ""; while (!(i >= maxBytesToRead / 4)) { var utf32 = GROWABLE_HEAP_I32()[ptr + i * 4 >>> 2]; if (utf32 == 0) break; ++i; if (utf32 >= 65536) { var ch = utf32 - 65536; str += String.fromCharCode(55296 | ch >> 10, 56320 | ch & 1023); } else { str += String.fromCharCode(utf32); } } return str; } function stringToUTF32(str, outPtr, maxBytesToWrite) { outPtr >>>= 0; if (maxBytesToWrite === void 0) { maxBytesToWrite = 2147483647; } if (maxBytesToWrite < 4) return 0; var startPtr = outPtr; var endPtr = startPtr + maxBytesToWrite - 4; for (var i = 0; i < str.length; ++i) { var codeUnit = str.charCodeAt(i); if (codeUnit >= 55296 && codeUnit <= 57343) { var trailSurrogate = str.charCodeAt(++i); codeUnit = 65536 + ((codeUnit & 1023) << 10) | trailSurrogate & 1023; } GROWABLE_HEAP_I32()[outPtr >>> 2] = codeUnit; outPtr += 4; if (outPtr + 4 > endPtr) break; } GROWABLE_HEAP_I32()[outPtr >>> 2] = 0; return outPtr - startPtr; } function lengthBytesUTF32(str) { var len = 0; for (var i = 0; i < str.length; ++i) { var codeUnit = str.charCodeAt(i); if (codeUnit >= 55296 && codeUnit <= 57343) ++i; len += 4; } return len; } function __embind_register_std_wstring(rawType, charSize, name) { name = readLatin1String(name); var decodeString, encodeString, getHeap, lengthBytesUTF, shift; if (charSize === 2) { decodeString = UTF16ToString; encodeString = stringToUTF16; lengthBytesUTF = lengthBytesUTF16; getHeap = () => GROWABLE_HEAP_U16(); shift = 1; } else if (charSize === 4) { decodeString = UTF32ToString; encodeString = stringToUTF32; lengthBytesUTF = lengthBytesUTF32; getHeap = () => GROWABLE_HEAP_U32(); shift = 2; } registerType(rawType, { name, "fromWireType": function(value) { var length = GROWABLE_HEAP_U32()[value >>> 2]; var HEAP = getHeap(); var str; var decodeStartPtr = value + 4; for (var i = 0; i <= length; ++i) { var currentBytePtr = value + 4 + i * charSize; if (i == length || HEAP[currentBytePtr >>> shift] == 0) { var maxReadBytes = currentBytePtr - decodeStartPtr; var stringSegment = decodeString(decodeStartPtr, maxReadBytes); if (str === void 0) { str = stringSegment; } else { str += String.fromCharCode(0); str += stringSegment; } decodeStartPtr = currentBytePtr + charSize; } } _free(value); return str; }, "toWireType": function(destructors, value) { if (!(typeof value == "string")) { throwBindingError("Cannot pass non-string to C++ string type " + name); } var length = lengthBytesUTF(value); var ptr = _malloc(4 + length + charSize); ptr >>>= 0; GROWABLE_HEAP_U32()[ptr >>> 2] = length >> shift; encodeString(value, ptr + 4, length + charSize); if (destructors !== null) { destructors.push(_free, ptr); } return ptr; }, "argPackAdvance": 8, "readValueFromPointer": simpleReadValueFromPointer, destructorFunction: function(ptr) { _free(ptr); } }); } function __embind_register_value_array(rawType, name, constructorSignature, rawConstructor, destructorSignature, rawDestructor) { tupleRegistrations[rawType] = { name: readLatin1String(name), rawConstructor: embind__requireFunction(constructorSignature, rawConstructor), rawDestructor: embind__requireFunction(destructorSignature, rawDestructor), elements: [] }; } function __embind_register_value_array_element(rawTupleType, getterReturnType, getterSignature, getter, getterContext, setterArgumentType, setterSignature, setter, setterContext) { tupleRegistrations[rawTupleType].elements.push({ getterReturnType, getter: embind__requireFunction(getterSignature, getter), getterContext, setterArgumentType, setter: embind__requireFunction(setterSignature, setter), setterContext }); } function __embind_register_value_object(rawType, name, constructorSignature, rawConstructor, destructorSignature, rawDestructor) { structRegistrations[rawType] = { name: readLatin1String(name), rawConstructor: embind__requireFunction(constructorSignature, rawConstructor), rawDestructor: embind__requireFunction(destructorSignature, rawDestructor), fields: [] }; } function __embind_register_value_object_field(structType, fieldName, getterReturnType, getterSignature, getter, getterContext, setterArgumentType, setterSignature, setter, setterContext) { structRegistrations[structType].fields.push({ fieldName: readLatin1String(fieldName), getterReturnType, getter: embind__requireFunction(getterSignature, getter), getterContext, setterArgumentType, setter: embind__requireFunction(setterSignature, setter), setterContext }); } function __embind_register_void(rawType, name) { name = readLatin1String(name); registerType(rawType, { isVoid: true, name, "argPackAdvance": 0, "fromWireType": function() { return void 0; }, "toWireType": function(destructors, o) { return void 0; } }); } function __emscripten_err(str) { err(UTF8ToString(str)); } function executeNotifiedProxyingQueue(queue) { Atomics.store(GROWABLE_HEAP_I32(), queue >> 2, 1); if (_pthread_self()) { __emscripten_proxy_execute_task_queue(queue); } Atomics.compareExchange(GROWABLE_HEAP_I32(), queue >> 2, 1, 0); } Module["executeNotifiedProxyingQueue"] = executeNotifiedProxyingQueue; function __emscripten_notify_task_queue(targetThreadId, currThreadId, mainThreadId, queue) { if (targetThreadId == currThreadId) { setTimeout(() => executeNotifiedProxyingQueue(queue)); } else if (ENVIRONMENT_IS_PTHREAD) { postMessage({ "targetThread": targetThreadId, "cmd": "processProxyingQueue", "queue": queue }); } else { var worker = PThread.pthreads[targetThreadId]; if (!worker) { return; } worker.postMessage({ "cmd": "processProxyingQueue", "queue": queue }); } return 1; } function __emscripten_set_offscreencanvas_size(target, width, height) { return -1; } function __emval_as(handle, returnType, destructorsRef) { handle = Emval.toValue(handle); returnType = requireRegisteredType(returnType, "emval::as"); var destructors = []; var rd = Emval.toHandle(destructors); GROWABLE_HEAP_U32()[destructorsRef >>> 2] = rd; return returnType["toWireType"](destructors, handle); } function emval_lookupTypes(argCount, argTypes) { var a = new Array(argCount); for (var i = 0; i < argCount; ++i) { a[i] = requireRegisteredType(GROWABLE_HEAP_U32()[argTypes + i * 4 >>> 2], "parameter " + i); } return a; } function __emval_call(handle, argCount, argTypes, argv) { handle = Emval.toValue(handle); var types = emval_lookupTypes(argCount, argTypes); var args = new Array(argCount); for (var i = 0; i < argCount; ++i) { var type = types[i]; args[i] = type["readValueFromPointer"](argv); argv += type["argPackAdvance"]; } var rv = handle.apply(void 0, args); return Emval.toHandle(rv); } var emval_symbols = {}; function getStringOrSymbol(address) { var symbol = emval_symbols[address]; if (symbol === void 0) { return readLatin1String(address); } return symbol; } function emval_get_global() { if (typeof globalThis == "object") { return globalThis; } return function() { return Function; }()("return this")(); } function __emval_get_global(name) { if (name === 0) { return Emval.toHandle(emval_get_global()); } else { name = getStringOrSymbol(name); return Emval.toHandle(emval_get_global()[name]); } } function __emval_get_property(handle, key) { handle = Emval.toValue(handle); key = Emval.toValue(key); return Emval.toHandle(handle[key]); } function __emval_incref(handle) { if (handle > 4) { emval_handle_array[handle].refcount += 1; } } function __emval_instanceof(object, constructor) { object = Emval.toValue(object); constructor = Emval.toValue(constructor); return object instanceof constructor; } function __emval_is_number(handle) { handle = Emval.toValue(handle); return typeof handle == "number"; } function __emval_new_array() { return Emval.toHandle([]); } function __emval_new_cstring(v) { return Emval.toHandle(getStringOrSymbol(v)); } function __emval_new_object() { return Emval.toHandle({}); } function __emval_run_destructors(handle) { var destructors = Emval.toValue(handle); runDestructors(destructors); __emval_decref(handle); } function __emval_set_property(handle, key, value) { handle = Emval.toValue(handle); key = Emval.toValue(key); value = Emval.toValue(value); handle[key] = value; } function __emval_take_value(type, arg) { type = requireRegisteredType(type, "_emval_take_value"); var v = type["readValueFromPointer"](arg); return Emval.toHandle(v); } function _abort() { abort(""); } function warnOnce(text) { if (!warnOnce.shown) warnOnce.shown = {}; if (!warnOnce.shown[text]) { warnOnce.shown[text] = 1; if (ENVIRONMENT_IS_NODE) text = "warning: " + text; err(text); } } function _emscripten_check_blocking_allowed() { if (ENVIRONMENT_IS_NODE) return; if (ENVIRONMENT_IS_WORKER) return; warnOnce("Blocking on the main thread is very dangerous, see https://emscripten.org/docs/porting/pthreads.html#blocking-on-the-main-browser-thread"); } var _emscripten_get_now; if (ENVIRONMENT_IS_NODE) { _emscripten_get_now = () => { var t = process["hrtime"](); return t[0] * 1e3 + t[1] / 1e6; }; } else _emscripten_get_now = () => performance.timeOrigin + performance.now(); function _emscripten_memcpy_big(dest, src, num) { GROWABLE_HEAP_U8().copyWithin(dest >>> 0, src >>> 0, src + num >>> 0); } function withStackSave(f) { var stack = stackSave(); var ret = f(); stackRestore(stack); return ret; } function _emscripten_proxy_to_main_thread_js(index, sync) { var numCallArgs = arguments.length - 2; var outerArgs = arguments; return withStackSave(() => { var serializedNumCallArgs = numCallArgs; var args = stackAlloc(serializedNumCallArgs * 8); var b = args >> 3; for (var i = 0; i < numCallArgs; i++) { var arg = outerArgs[2 + i]; GROWABLE_HEAP_F64()[b + i >>> 0] = arg; } return _emscripten_run_in_main_runtime_thread_js(index, serializedNumCallArgs, args, sync); }); } var _emscripten_receive_on_main_thread_js_callArgs = []; function _emscripten_receive_on_main_thread_js(index, numCallArgs, args) { _emscripten_receive_on_main_thread_js_callArgs.length = numCallArgs; var b = args >> 3; for (var i = 0; i < numCallArgs; i++) { _emscripten_receive_on_main_thread_js_callArgs[i] = GROWABLE_HEAP_F64()[b + i >>> 0]; } var func = proxiedFunctionTable[index]; return func.apply(null, _emscripten_receive_on_main_thread_js_callArgs); } function getHeapMax() { return 4294901760; } function emscripten_realloc_buffer(size) { var b = wasmMemory.buffer; try { wasmMemory.grow(size - b.byteLength + 65535 >>> 16); updateMemoryViews(); return 1; } catch (e) { } } function _emscripten_resize_heap(requestedSize) { var oldSize = GROWABLE_HEAP_U8().length; requestedSize = requestedSize >>> 0; if (requestedSize <= oldSize) { return false; } var maxHeapSize = getHeapMax(); if (requestedSize > maxHeapSize) { return false; } let alignUp = (x, multiple) => x + (multiple - x % multiple) % multiple; for (var cutDown = 1; cutDown <= 4; cutDown *= 2) { var overGrownHeapSize = oldSize * (1 + 0.2 / cutDown); overGrownHeapSize = Math.min(overGrownHeapSize, requestedSize + 100663296); var newSize = Math.min(maxHeapSize, alignUp(Math.max(requestedSize, overGrownHeapSize), 65536)); var replacement = emscripten_realloc_buffer(newSize); if (replacement) { return true; } } return false; } function _emscripten_unwind_to_js_event_loop() { throw "unwind"; } var ENV = {}; function getExecutableName() { return thisProgram || "./this.program"; } function getEnvStrings() { if (!getEnvStrings.strings) { var lang = (typeof navigator == "object" && navigator.languages && navigator.languages[0] || "C").replace("-", "_") + ".UTF-8"; var env = { "USER": "web_user", "LOGNAME": "web_user", "PATH": "/", "PWD": "/", "HOME": "/home/web_user", "LANG": lang, "_": getExecutableName() }; for (var x in ENV) { if (ENV[x] === void 0) delete env[x]; else env[x] = ENV[x]; } var strings = []; for (var x in env) { strings.push(x + "=" + env[x]); } getEnvStrings.strings = strings; } return getEnvStrings.strings; } function writeAsciiToMemory(str, buffer, dontAddNull) { for (var i = 0; i < str.length; ++i) { GROWABLE_HEAP_I8()[buffer++ >>> 0] = str.charCodeAt(i); } if (!dontAddNull) GROWABLE_HEAP_I8()[buffer >>> 0] = 0; } function _environ_get(__environ, environ_buf) { if (ENVIRONMENT_IS_PTHREAD) return _emscripten_proxy_to_main_thread_js(6, 1, __environ, environ_buf); var bufSize = 0; getEnvStrings().forEach(function(string, i) { var ptr = environ_buf + bufSize; GROWABLE_HEAP_U32()[__environ + i * 4 >>> 2] = ptr; writeAsciiToMemory(string, ptr); bufSize += string.length + 1; }); return 0; } function _environ_sizes_get(penviron_count, penviron_buf_size) { if (ENVIRONMENT_IS_PTHREAD) return _emscripten_proxy_to_main_thread_js(7, 1, penviron_count, penviron_buf_size); var strings = getEnvStrings(); GROWABLE_HEAP_U32()[penviron_count >>> 2] = strings.length; var bufSize = 0; strings.forEach(function(string) { bufSize += string.length + 1; }); GROWABLE_HEAP_U32()[penviron_buf_size >>> 2] = bufSize; return 0; } function _fd_close(fd) { if (ENVIRONMENT_IS_PTHREAD) return _emscripten_proxy_to_main_thread_js(8, 1, fd); try { var stream = SYSCALLS.getStreamFromFD(fd); FS.close(stream); return 0; } catch (e) { if (typeof FS == "undefined" || !(e instanceof FS.ErrnoError)) throw e; return e.errno; } } function doReadv(stream, iov, iovcnt, offset) { var ret = 0; for (var i = 0; i < iovcnt; i++) { var ptr = GROWABLE_HEAP_U32()[iov >>> 2]; var len = GROWABLE_HEAP_U32()[iov + 4 >>> 2]; iov += 8; var curr = FS.read(stream, GROWABLE_HEAP_I8(), ptr, len, offset); if (curr < 0) return -1; ret += curr; if (curr < len) break; if (typeof offset !== "undefined") { offset += curr; } } return ret; } function _fd_read(fd, iov, iovcnt, pnum) { if (ENVIRONMENT_IS_PTHREAD) return _emscripten_proxy_to_main_thread_js(9, 1, fd, iov, iovcnt, pnum); try { var stream = SYSCALLS.getStreamFromFD(fd); var num = doReadv(stream, iov, iovcnt); GROWABLE_HEAP_U32()[pnum >>> 2] = num; return 0; } catch (e) { if (typeof FS == "undefined" || !(e instanceof FS.ErrnoError)) throw e; return e.errno; } } function convertI32PairToI53Checked(lo, hi) { return hi + 2097152 >>> 0 < 4194305 - !!lo ? (lo >>> 0) + hi * 4294967296 : NaN; } function _fd_seek(fd, offset_low, offset_high, whence, newOffset) { if (ENVIRONMENT_IS_PTHREAD) return _emscripten_proxy_to_main_thread_js(10, 1, fd, offset_low, offset_high, whence, newOffset); try { var offset = convertI32PairToI53Checked(offset_low, offset_high); if (isNaN(offset)) return 61; var stream = SYSCALLS.getStreamFromFD(fd); FS.llseek(stream, offset, whence); tempI64 = [stream.position >>> 0, (tempDouble = stream.position, +Math.abs(tempDouble) >= 1 ? tempDouble > 0 ? (Math.min(+Math.floor(tempDouble / 4294967296), 4294967295) | 0) >>> 0 : ~~+Math.ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>> 0 : 0)], GROWABLE_HEAP_I32()[newOffset >>> 2] = tempI64[0], GROWABLE_HEAP_I32()[newOffset + 4 >>> 2] = tempI64[1]; if (stream.getdents && offset === 0 && whence === 0) stream.getdents = null; return 0; } catch (e) { if (typeof FS == "undefined" || !(e instanceof FS.ErrnoError)) throw e; return e.errno; } } function doWritev(stream, iov, iovcnt, offset) { var ret = 0; for (var i = 0; i < iovcnt; i++) { var ptr = GROWABLE_HEAP_U32()[iov >>> 2]; var len = GROWABLE_HEAP_U32()[iov + 4 >>> 2]; iov += 8; var curr = FS.write(stream, GROWABLE_HEAP_I8(), ptr, len, offset); if (curr < 0) return -1; ret += curr; if (typeof offset !== "undefined") { offset += curr; } } return ret; } function _fd_write(fd, iov, iovcnt, pnum) { if (ENVIRONMENT_IS_PTHREAD) return _emscripten_proxy_to_main_thread_js(11, 1, fd, iov, iovcnt, pnum); try { var stream = SYSCALLS.getStreamFromFD(fd); var num = doWritev(stream, iov, iovcnt); GROWABLE_HEAP_U32()[pnum >>> 2] = num; return 0; } catch (e) { if (typeof FS == "undefined" || !(e instanceof FS.ErrnoError)) throw e; return e.errno; } } function __isLeapYear(year) { return year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0); } function __arraySum(array, index) { var sum = 0; for (var i = 0; i <= index; sum += array[i++]) { } return sum; } var __MONTH_DAYS_LEAP = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]; var __MONTH_DAYS_REGULAR = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]; function __addDays(date, days) { var newDate = new Date(date.getTime()); while (days > 0) { var leap = __isLeapYear(newDate.getFullYear()); var currentMonth = newDate.getMonth(); var daysInCurrentMonth = (leap ? __MONTH_DAYS_LEAP : __MONTH_DAYS_REGULAR)[currentMonth]; if (days > daysInCurrentMonth - newDate.getDate()) { days -= daysInCurrentMonth - newDate.getDate() + 1; newDate.setDate(1); if (currentMonth < 11) { newDate.setMonth(currentMonth + 1); } else { newDate.setMonth(0); newDate.setFullYear(newDate.getFullYear() + 1); } } else { newDate.setDate(newDate.getDate() + days); return newDate; } } return newDate; } function writeArrayToMemory(array, buffer) { GROWABLE_HEAP_I8().set(array, buffer >>> 0); } function _strftime(s, maxsize, format, tm) { var tm_zone = GROWABLE_HEAP_I32()[tm + 40 >>> 2]; var date = { tm_sec: GROWABLE_HEAP_I32()[tm >>> 2], tm_min: GROWABLE_HEAP_I32()[tm + 4 >>> 2], tm_hour: GROWABLE_HEAP_I32()[tm + 8 >>> 2], tm_mday: GROWABLE_HEAP_I32()[tm + 12 >>> 2], tm_mon: GROWABLE_HEAP_I32()[tm + 16 >>> 2], tm_year: GROWABLE_HEAP_I32()[tm + 20 >>> 2], tm_wday: GROWABLE_HEAP_I32()[tm + 24 >>> 2], tm_yday: GROWABLE_HEAP_I32()[tm + 28 >>> 2], tm_isdst: GROWABLE_HEAP_I32()[tm + 32 >>> 2], tm_gmtoff: GROWABLE_HEAP_I32()[tm + 36 >>> 2], tm_zone: tm_zone ? UTF8ToString(tm_zone) : "" }; var pattern = UTF8ToString(format); var EXPANSION_RULES_1 = { "%c": "%a %b %d %H:%M:%S %Y", "%D": "%m/%d/%y", "%F": "%Y-%m-%d", "%h": "%b", "%r": "%I:%M:%S %p", "%R": "%H:%M", "%T": "%H:%M:%S", "%x": "%m/%d/%y", "%X": "%H:%M:%S", "%Ec": "%c", "%EC": "%C", "%Ex": "%m/%d/%y", "%EX": "%H:%M:%S", "%Ey": "%y", "%EY": "%Y", "%Od": "%d", "%Oe": "%e", "%OH": "%H", "%OI": "%I", "%Om": "%m", "%OM": "%M", "%OS": "%S", "%Ou": "%u", "%OU": "%U", "%OV": "%V", "%Ow": "%w", "%OW": "%W", "%Oy": "%y" }; for (var rule in EXPANSION_RULES_1) { pattern = pattern.replace(new RegExp(rule, "g"), EXPANSION_RULES_1[rule]); } var WEEKDAYS = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]; var MONTHS = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"]; function leadingSomething(value, digits, character) { var str = typeof value == "number" ? value.toString() : value || ""; while (str.length < digits) { str = character[0] + str; } return str; } function leadingNulls(value, digits) { return leadingSomething(value, digits, "0"); } function compareByDay(date1, date2) { function sgn(value) { return value < 0 ? -1 : value > 0 ? 1 : 0; } var compare; if ((compare = sgn(date1.getFullYear() - date2.getFullYear())) === 0) { if ((compare = sgn(date1.getMonth() - date2.getMonth())) === 0) { compare = sgn(date1.getDate() - date2.getDate()); } } return compare; } function getFirstWeekStartDate(janFourth) { switch (janFourth.getDay()) { case 0: return new Date(janFourth.getFullYear() - 1, 11, 29); case 1: return janFourth; case 2: return new Date(janFourth.getFullYear(), 0, 3); case 3: return new Date(janFourth.getFullYear(), 0, 2); case 4: return new Date(janFourth.getFullYear(), 0, 1); case 5: return new Date(janFourth.getFullYear() - 1, 11, 31); case 6: return new Date(janFourth.getFullYear() - 1, 11, 30); } } function getWeekBasedYear(date2) { var thisDate = __addDays(new Date(date2.tm_year + 1900, 0, 1), date2.tm_yday); var janFourthThisYear = new Date(thisDate.getFullYear(), 0, 4); var janFourthNextYear = new Date(thisDate.getFullYear() + 1, 0, 4); var firstWeekStartThisYear = getFirstWeekStartDate(janFourthThisYear); var firstWeekStartNextYear = getFirstWeekStartDate(janFourthNextYear); if (compareByDay(firstWeekStartThisYear, thisDate) <= 0) { if (compareByDay(firstWeekStartNextYear, thisDate) <= 0) { return thisDate.getFullYear() + 1; } return thisDate.getFullYear(); } return thisDate.getFullYear() - 1; } var EXPANSION_RULES_2 = { "%a": function(date2) { return WEEKDAYS[date2.tm_wday].substring(0, 3); }, "%A": function(date2) { return WEEKDAYS[date2.tm_wday]; }, "%b": function(date2) { return MONTHS[date2.tm_mon].substring(0, 3); }, "%B": function(date2) { return MONTHS[date2.tm_mon]; }, "%C": function(date2) { var year = date2.tm_year + 1900; return leadingNulls(year / 100 | 0, 2); }, "%d": function(date2) { return leadingNulls(date2.tm_mday, 2); }, "%e": function(date2) { return leadingSomething(date2.tm_mday, 2, " "); }, "%g": function(date2) { return getWeekBasedYear(date2).toString().substring(2); }, "%G": function(date2) { return getWeekBasedYear(date2); }, "%H": function(date2) { return leadingNulls(date2.tm_hour, 2); }, "%I": function(date2) { var twelveHour = date2.tm_hour; if (twelveHour == 0) twelveHour = 12; else if (twelveHour > 12) twelveHour -= 12; return leadingNulls(twelveHour, 2); }, "%j": function(date2) { return leadingNulls(date2.tm_mday + __arraySum(__isLeapYear(date2.tm_year + 1900) ? __MONTH_DAYS_LEAP : __MONTH_DAYS_REGULAR, date2.tm_mon - 1), 3); }, "%m": function(date2) { return leadingNulls(date2.tm_mon + 1, 2); }, "%M": function(date2) { return leadingNulls(date2.tm_min, 2); }, "%n": function() { return "\n"; }, "%p": function(date2) { if (date2.tm_hour >= 0 && date2.tm_hour < 12) { return "AM"; } return "PM"; }, "%S": function(date2) { return leadingNulls(date2.tm_sec, 2); }, "%t": function() { return " "; }, "%u": function(date2) { return date2.tm_wday || 7; }, "%U": function(date2) { var days = date2.tm_yday + 7 - date2.tm_wday; return leadingNulls(Math.floor(days / 7), 2); }, "%V": function(date2) { var val = Math.floor((date2.tm_yday + 7 - (date2.tm_wday + 6) % 7) / 7); if ((date2.tm_wday + 371 - date2.tm_yday - 2) % 7 <= 2) { val++; } if (!val) { val = 52; var dec31 = (date2.tm_wday + 7 - date2.tm_yday - 1) % 7; if (dec31 == 4 || dec31 == 5 && __isLeapYear(date2.tm_year % 400 - 1)) { val++; } } else if (val == 53) { var jan1 = (date2.tm_wday + 371 - date2.tm_yday) % 7; if (jan1 != 4 && (jan1 != 3 || !__isLeapYear(date2.tm_year))) val = 1; } return leadingNulls(val, 2); }, "%w": function(date2) { return date2.tm_wday; }, "%W": function(date2) { var days = date2.tm_yday + 7 - (date2.tm_wday + 6) % 7; return leadingNulls(Math.floor(days / 7), 2); }, "%y": function(date2) { return (date2.tm_year + 1900).toString().substring(2); }, "%Y": function(date2) { return date2.tm_year + 1900; }, "%z": function(date2) { var off = date2.tm_gmtoff; var ahead = off >= 0; off = Math.abs(off) / 60; off = off / 60 * 100 + off % 60; return (ahead ? "+" : "-") + String("0000" + off).slice(-4); }, "%Z": function(date2) { return date2.tm_zone; }, "%%": function() { return "%"; } }; pattern = pattern.replace(/%%/g, "\0\0"); for (var rule in EXPANSION_RULES_2) { if (pattern.includes(rule)) { pattern = pattern.replace(new RegExp(rule, "g"), EXPANSION_RULES_2[rule](date)); } } pattern = pattern.replace(/\0\0/g, "%"); var bytes = intArrayFromString(pattern, false); if (bytes.length > maxsize) { return 0; } writeArrayToMemory(bytes, s); return bytes.length - 1; } function _strftime_l(s, maxsize, format, tm, loc) { return _strftime(s, maxsize, format, tm); } PThread.init(); var FSNode = function(parent, name, mode, rdev) { if (!parent) { parent = this; } this.parent = parent; this.mount = parent.mount; this.mounted = null; this.id = FS.nextInode++; this.name = name; this.mode = mode; this.node_ops = {}; this.stream_ops = {}; this.rdev = rdev; }; var readMode = 292 | 73; var writeMode = 146; Object.defineProperties(FSNode.prototype, { read: { get: function() { return (this.mode & readMode) === readMode; }, set: function(val) { val ? this.mode |= readMode : this.mode &= ~readMode; } }, write: { get: function() { return (this.mode & writeMode) === writeMode; }, set: function(val) { val ? this.mode |= writeMode : this.mode &= ~writeMode; } }, isFolder: { get: function() { return FS.isDir(this.mode); } }, isDevice: { get: function() { return FS.isChrdev(this.mode); } } }); FS.FSNode = FSNode; FS.staticInit(); InternalError = Module["InternalError"] = extendError(Error, "InternalError"); embind_init_charCodes(); BindingError = Module["BindingError"] = extendError(Error, "BindingError"); init_ClassHandle(); init_embind(); init_RegisteredPointer(); UnboundTypeError = Module["UnboundTypeError"] = extendError(Error, "UnboundTypeError"); init_emval(); var proxiedFunctionTable = [null, _proc_exit, exitOnMainThread, ___syscall_fcntl64, ___syscall_ioctl, ___syscall_openat, _environ_get, _environ_sizes_get, _fd_close, _fd_read, _fd_seek, _fd_write]; var wasmImports = { "f": ___cxa_throw, "V": ___emscripten_init_main_thread_js, "K": ___emscripten_thread_cleanup, "B": ___syscall_fcntl64, "P": ___syscall_ioctl, "Q": ___syscall_openat, "Z": __dlinit, "aa": __dlopen_js, "$": __dlsym_catchup_js, "fa": __embind_finalize_value_array, "u": __embind_finalize_value_object, "I": __embind_register_bigint, "da": __embind_register_bool, "t": __embind_register_class, "s": __embind_register_class_constructor, "d": __embind_register_class_function, "ca": __embind_register_emval, "F": __embind_register_enum, "q": __embind_register_enum_value, "D": __embind_register_float, "c": __embind_register_function, "p": __embind_register_integer, "i": __embind_register_memory_view, "E": __embind_register_std_string, "x": __embind_register_std_wstring, "ga": __embind_register_value_array, "k": __embind_register_value_array_element, "v": __embind_register_value_object, "h": __embind_register_value_object_field, "ea": __embind_register_void, "_": __emscripten_err, "X": __emscripten_notify_task_queue, "U": __emscripten_set_offscreencanvas_size, "m": __emval_as, "z": __emval_call, "b": __emval_decref, "G": __emval_get_global, "n": __emval_get_property, "o": __emval_incref, "ia": __emval_instanceof, "ha": __emval_is_number, "y": __emval_new_array, "g": __emval_new_cstring, "w": __emval_new_object, "l": __emval_run_destructors, "j": __emval_set_property, "e": __emval_take_value, "C": _abort, "W": _emscripten_check_blocking_allowed, "r": _emscripten_get_now, "Y": _emscripten_memcpy_big, "T": _emscripten_receive_on_main_thread_js, "R": _emscripten_resize_heap, "ba": _emscripten_unwind_to_js_event_loop, "M": _environ_get, "N": _environ_sizes_get, "J": _exit, "A": _fd_close, "O": _fd_read, "H": _fd_seek, "S": _fd_write, "a": wasmMemory || Module["wasmMemory"], "L": _strftime_l }; createWasm(); var _malloc = function() { return (_malloc = Module["asm"]["la"]).apply(null, arguments); }; Module["__emscripten_tls_init"] = function() { return (Module["__emscripten_tls_init"] = Module["asm"]["ma"]).apply(null, arguments); }; var _pthread_self = Module["_pthread_self"] = function() { return (_pthread_self = Module["_pthread_self"] = Module["asm"]["na"]).apply(null, arguments); }; var ___getTypeName = Module["___getTypeName"] = function() { return (___getTypeName = Module["___getTypeName"] = Module["asm"]["oa"]).apply(null, arguments); }; Module["__embind_initialize_bindings"] = function() { return (Module["__embind_initialize_bindings"] = Module["asm"]["pa"]).apply(null, arguments); }; var ___errno_location = function() { return (___errno_location = Module["asm"]["qa"]).apply(null, arguments); }; var __emscripten_thread_init = Module["__emscripten_thread_init"] = function() { return (__emscripten_thread_init = Module["__emscripten_thread_init"] = Module["asm"]["ra"]).apply(null, arguments); }; Module["__emscripten_thread_crashed"] = function() { return (Module["__emscripten_thread_crashed"] = Module["asm"]["sa"]).apply(null, arguments); }; var _emscripten_run_in_main_runtime_thread_js = function() { return (_emscripten_run_in_main_runtime_thread_js = Module["asm"]["ta"]).apply(null, arguments); }; var __emscripten_proxy_execute_task_queue = Module["__emscripten_proxy_execute_task_queue"] = function() { return (__emscripten_proxy_execute_task_queue = Module["__emscripten_proxy_execute_task_queue"] = Module["asm"]["ua"]).apply(null, arguments); }; var __emscripten_thread_free_data = function() { return (__emscripten_thread_free_data = Module["asm"]["va"]).apply(null, arguments); }; var __emscripten_thread_exit = Module["__emscripten_thread_exit"] = function() { return (__emscripten_thread_exit = Module["__emscripten_thread_exit"] = Module["asm"]["wa"]).apply(null, arguments); }; var _free = function() { return (_free = Module["asm"]["xa"]).apply(null, arguments); }; var _emscripten_stack_set_limits = function() { return (_emscripten_stack_set_limits = Module["asm"]["ya"]).apply(null, arguments); }; var stackSave = function() { return (stackSave = Module["asm"]["za"]).apply(null, arguments); }; var stackRestore = function() { return (stackRestore = Module["asm"]["Aa"]).apply(null, arguments); }; var stackAlloc = function() { return (stackAlloc = Module["asm"]["Ba"]).apply(null, arguments); }; var ___cxa_is_pointer_type = function() { return (___cxa_is_pointer_type = Module["asm"]["Ca"]).apply(null, arguments); }; Module["dynCall_jiji"] = function() { return (Module["dynCall_jiji"] = Module["asm"]["Da"]).apply(null, arguments); }; Module["dynCall_viijii"] = function() { return (Module["dynCall_viijii"] = Module["asm"]["Ea"]).apply(null, arguments); }; Module["dynCall_iiiiij"] = function() { return (Module["dynCall_iiiiij"] = Module["asm"]["Fa"]).apply(null, arguments); }; Module["dynCall_iiiiijj"] = function() { return (Module["dynCall_iiiiijj"] = Module["asm"]["Ga"]).apply(null, arguments); }; Module["dynCall_iiiiiijj"] = function() { return (Module["dynCall_iiiiiijj"] = Module["asm"]["Ha"]).apply(null, arguments); }; Module["keepRuntimeAlive"] = keepRuntimeAlive; Module["wasmMemory"] = wasmMemory; Module["ExitStatus"] = ExitStatus; Module["PThread"] = PThread; var calledRun; dependenciesFulfilled = function runCaller() { if (!calledRun) run(); if (!calledRun) dependenciesFulfilled = runCaller; }; function run() { if (runDependencies > 0) { return; } if (ENVIRONMENT_IS_PTHREAD) { readyPromiseResolve(Module); initRuntime(); startWorker(Module); return; } preRun(); if (runDependencies > 0) { return; } function doRun() { if (calledRun) return; calledRun = true; Module["calledRun"] = true; if (ABORT) return; initRuntime(); readyPromiseResolve(Module); if (Module["onRuntimeInitialized"]) Module["onRuntimeInitialized"](); postRun(); } if (Module["setStatus"]) { Module["setStatus"]("Running..."); setTimeout(function() { setTimeout(function() { Module["setStatus"](""); }, 1); doRun(); }, 1); } else { doRun(); } } if (Module["preInit"]) { if (typeof Module["preInit"] == "function") Module["preInit"] = [Module["preInit"]]; while (Module["preInit"].length > 0) { Module["preInit"].pop()(); } } run(); return WebIFCWasm3.ready; }; })(); if (typeof exports === "object" && typeof module === "object") module.exports = WebIFCWasm2; else if (typeof define === "function" && define["amd"]) define([], function() { return WebIFCWasm2; }); else if (typeof exports === "object") exports["WebIFCWasm"] = WebIFCWasm2; } }); // dist/web-ifc.js var require_web_ifc = __commonJS({ "dist/web-ifc.js"(exports, module) { var WebIFCWasm2 = (() => { var _scriptDir = typeof document !== "undefined" && document.currentScript ? document.currentScript.src : void 0; if (typeof __filename !== "undefined") _scriptDir = _scriptDir || __filename; return function(WebIFCWasm3 = {}) { var Module = typeof WebIFCWasm3 != "undefined" ? WebIFCWasm3 : {}; var readyPromiseResolve, readyPromiseReject; Module["ready"] = new Promise(function(resolve, reject) { readyPromiseResolve = resolve; readyPromiseReject = reject; }); var moduleOverrides = Object.assign({}, Module); var thisProgram = "./this.program"; var ENVIRONMENT_IS_WEB = typeof window == "object"; var ENVIRONMENT_IS_WORKER = typeof importScripts == "function"; var ENVIRONMENT_IS_NODE = typeof process == "object" && typeof process.versions == "object" && typeof process.versions.node == "string"; var scriptDirectory = ""; function locateFile(path) { if (Module["locateFile"]) { return Module["locateFile"](path, scriptDirectory); } return scriptDirectory + path; } var read_, readAsync, readBinary; if (ENVIRONMENT_IS_NODE) { var fs = __require("fs"); var nodePath = __require("path"); if (ENVIRONMENT_IS_WORKER) { scriptDirectory = nodePath.dirname(scriptDirectory) + "/"; } else { scriptDirectory = __dirname + "/"; } read_ = (filename, binary) => { filename = isFileURI(filename) ? new URL(filename) : nodePath.normalize(filename); return fs.readFileSync(filename, binary ? void 0 : "utf8"); }; readBinary = (filename) => { var ret = read_(filename, true); if (!ret.buffer) { ret = new Uint8Array(ret); } return ret; }; readAsync = (filename, onload, onerror) => { filename = isFileURI(filename) ? new URL(filename) : nodePath.normalize(filename); fs.readFile(filename, function(err2, data) { if (err2) onerror(err2); else onload(data.buffer); }); }; if (process["argv"].length > 1) { thisProgram = process["argv"][1].replace(/\\/g, "/"); } process["argv"].slice(2); process["on"]("uncaughtException", function(ex) { if (!(ex instanceof ExitStatus)) { throw ex; } }); var nodeMajor = process.version.match(/^v(\d+)\./)[1]; if (nodeMajor < 15) { process["on"]("unhandledRejection", function(reason) { throw reason; }); } Module["inspect"] = function() { return "[Emscripten Module object]"; }; } else if (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER) { if (ENVIRONMENT_IS_WORKER) { scriptDirectory = self.location.href; } else if (typeof document != "undefined" && document.currentScript) { scriptDirectory = document.currentScript.src; } if (_scriptDir) { scriptDirectory = _scriptDir; } if (scriptDirectory.indexOf("blob:") !== 0) { scriptDirectory = scriptDirectory.substr(0, scriptDirectory.replace(/[?#].*/, "").lastIndexOf("/") + 1); } else { scriptDirectory = ""; } { read_ = (url) => { var xhr = new XMLHttpRequest(); xhr.open("GET", url, false); xhr.send(null); return xhr.responseText; }; if (ENVIRONMENT_IS_WORKER) { readBinary = (url) => { var xhr = new XMLHttpRequest(); xhr.open("GET", url, false); xhr.responseType = "arraybuffer"; xhr.send(null); return new Uint8Array(xhr.response); }; } readAsync = (url, onload, onerror) => { var xhr = new XMLHttpRequest(); xhr.open("GET", url, true); xhr.responseType = "arraybuffer"; xhr.onload = () => { if (xhr.status == 200 || xhr.status == 0 && xhr.response) { onload(xhr.response); return; } onerror(); }; xhr.onerror = onerror; xhr.send(null); }; } } else ; var out = Module["print"] || console.log.bind(console); var err = Module["printErr"] || console.warn.bind(console); Object.assign(Module, moduleOverrides); moduleOverrides = null; if (Module["arguments"]) Module["arguments"]; if (Module["thisProgram"]) thisProgram = Module["thisProgram"]; if (Module["quit"]) Module["quit"]; var wasmBinary; if (Module["wasmBinary"]) wasmBinary = Module["wasmBinary"]; Module["noExitRuntime"] || true; if (typeof WebAssembly != "object") { abort("no native wasm support detected"); } var wasmMemory; var ABORT = false; function assert(condition, text) { if (!condition) { abort(text); } } var UTF8Decoder = typeof TextDecoder != "undefined" ? new TextDecoder("utf8") : void 0; function UTF8ArrayToString(heapOrArray, idx, maxBytesToRead) { idx >>>= 0; var endIdx = idx + maxBytesToRead; var endPtr = idx; while (heapOrArray[endPtr] && !(endPtr >= endIdx)) ++endPtr; if (endPtr - idx > 16 && heapOrArray.buffer && UTF8Decoder) { return UTF8Decoder.decode(heapOrArray.subarray(idx, endPtr)); } var str = ""; while (idx < endPtr) { var u0 = heapOrArray[idx++]; if (!(u0 & 128)) { str += String.fromCharCode(u0); continue; } var u1 = heapOrArray[idx++] & 63; if ((u0 & 224) == 192) { str += String.fromCharCode((u0 & 31) << 6 | u1); continue; } var u2 = heapOrArray[idx++] & 63; if ((u0 & 240) == 224) { u0 = (u0 & 15) << 12 | u1 << 6 | u2; } else { u0 = (u0 & 7) << 18 | u1 << 12 | u2 << 6 | heapOrArray[idx++] & 63; } if (u0 < 65536) { str += String.fromCharCode(u0); } else { var ch = u0 - 65536; str += String.fromCharCode(55296 | ch >> 10, 56320 | ch & 1023); } } return str; } function UTF8ToString(ptr, maxBytesToRead) { ptr >>>= 0; return ptr ? UTF8ArrayToString(HEAPU8, ptr, maxBytesToRead) : ""; } function stringToUTF8Array(str, heap, outIdx, maxBytesToWrite) { outIdx >>>= 0; if (!(maxBytesToWrite > 0)) return 0; var startIdx = outIdx; var endIdx = outIdx + maxBytesToWrite - 1; for (var i = 0; i < str.length; ++i) { var u = str.charCodeAt(i); if (u >= 55296 && u <= 57343) { var u1 = str.charCodeAt(++i); u = 65536 + ((u & 1023) << 10) | u1 & 1023; } if (u <= 127) { if (outIdx >= endIdx) break; heap[outIdx++ >>> 0] = u; } else if (u <= 2047) { if (outIdx + 1 >= endIdx) break; heap[outIdx++ >>> 0] = 192 | u >> 6; heap[outIdx++ >>> 0] = 128 | u & 63; } else if (u <= 65535) { if (outIdx + 2 >= endIdx) break; heap[outIdx++ >>> 0] = 224 | u >> 12; heap[outIdx++ >>> 0] = 128 | u >> 6 & 63; heap[outIdx++ >>> 0] = 128 | u & 63; } else { if (outIdx + 3 >= endIdx) break; heap[outIdx++ >>> 0] = 240 | u >> 18; heap[outIdx++ >>> 0] = 128 | u >> 12 & 63; heap[outIdx++ >>> 0] = 128 | u >> 6 & 63; heap[outIdx++ >>> 0] = 128 | u & 63; } } heap[outIdx >>> 0] = 0; return outIdx - startIdx; } function stringToUTF8(str, outPtr, maxBytesToWrite) { return stringToUTF8Array(str, HEAPU8, outPtr, maxBytesToWrite); } function lengthBytesUTF8(str) { var len = 0; for (var i = 0; i < str.length; ++i) { var c = str.charCodeAt(i); if (c <= 127) { len++; } else if (c <= 2047) { len += 2; } else if (c >= 55296 && c <= 57343) { len += 4; ++i; } else { len += 3; } } return len; } var HEAP8, HEAPU8, HEAP16, HEAPU16, HEAP32, HEAPU32, HEAPF32, HEAPF64; function updateMemoryViews() { var b = wasmMemory.buffer; Module["HEAP8"] = HEAP8 = new Int8Array(b); Module["HEAP16"] = HEAP16 = new Int16Array(b); Module["HEAP32"] = HEAP32 = new Int32Array(b); Module["HEAPU8"] = HEAPU8 = new Uint8Array(b); Module["HEAPU16"] = HEAPU16 = new Uint16Array(b); Module["HEAPU32"] = HEAPU32 = new Uint32Array(b); Module["HEAPF32"] = HEAPF32 = new Float32Array(b); Module["HEAPF64"] = HEAPF64 = new Float64Array(b); } var wasmTable; var __ATPRERUN__ = []; var __ATINIT__ = []; var __ATPOSTRUN__ = []; function preRun() { if (Module["preRun"]) { if (typeof Module["preRun"] == "function") Module["preRun"] = [Module["preRun"]]; while (Module["preRun"].length) { addOnPreRun(Module["preRun"].shift()); } } callRuntimeCallbacks(__ATPRERUN__); } function initRuntime() { if (!Module["noFSInit"] && !FS.init.initialized) FS.init(); FS.ignorePermissions = false; callRuntimeCallbacks(__ATINIT__); } function postRun() { if (Module["postRun"]) { if (typeof Module["postRun"] == "function") Module["postRun"] = [Module["postRun"]]; while (Module["postRun"].length) { addOnPostRun(Module["postRun"].shift()); } } callRuntimeCallbacks(__ATPOSTRUN__); } function addOnPreRun(cb) { __ATPRERUN__.unshift(cb); } function addOnInit(cb) { __ATINIT__.unshift(cb); } function addOnPostRun(cb) { __ATPOSTRUN__.unshift(cb); } var runDependencies = 0; var dependenciesFulfilled = null; function getUniqueRunDependency(id) { return id; } function addRunDependency(id) { runDependencies++; if (Module["monitorRunDependencies"]) { Module["monitorRunDependencies"](runDependencies); } } function removeRunDependency(id) { runDependencies--; if (Module["monitorRunDependencies"]) { Module["monitorRunDependencies"](runDependencies); } if (runDependencies == 0) { if (dependenciesFulfilled) { var callback = dependenciesFulfilled; dependenciesFulfilled = null; callback(); } } } function abort(what) { if (Module["onAbort"]) { Module["onAbort"](what); } what = "Aborted(" + what + ")"; err(what); ABORT = true; what += ". Build with -sASSERTIONS for more info."; var e = new WebAssembly.RuntimeError(what); readyPromiseReject(e); throw e; } var dataURIPrefix = "data:application/octet-stream;base64,"; function isDataURI(filename) { return filename.startsWith(dataURIPrefix); } function isFileURI(filename) { return filename.startsWith("file://"); } var wasmBinaryFile; wasmBinaryFile = "web-ifc.wasm"; if (!isDataURI(wasmBinaryFile)) { wasmBinaryFile = locateFile(wasmBinaryFile); } function getBinary(file) { try { if (file == wasmBinaryFile && wasmBinary) { return new Uint8Array(wasmBinary); } if (readBinary) { return readBinary(file); } throw "both async and sync fetching of the wasm failed"; } catch (err2) { abort(err2); } } function getBinaryPromise() { if (!wasmBinary && (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER)) { if (typeof fetch == "function" && !isFileURI(wasmBinaryFile)) { return fetch(wasmBinaryFile, { credentials: "same-origin" }).then(function(response) { if (!response["ok"]) { throw "failed to load wasm binary file at '" + wasmBinaryFile + "'"; } return response["arrayBuffer"](); }).catch(function() { return getBinary(wasmBinaryFile); }); } else { if (readAsync) { return new Promise(function(resolve, reject) { readAsync(wasmBinaryFile, function(response) { resolve(new Uint8Array(response)); }, reject); }); } } } return Promise.resolve().then(function() { return getBinary(wasmBinaryFile); }); } function createWasm() { var info = { "a": wasmImports }; function receiveInstance(instance, module2) { var exports3 = instance.exports; Module["asm"] = exports3; wasmMemory = Module["asm"]["X"]; updateMemoryViews(); wasmTable = Module["asm"]["Z"]; addOnInit(Module["asm"]["Y"]); removeRunDependency(); } addRunDependency(); function receiveInstantiationResult(result) { receiveInstance(result["instance"]); } function instantiateArrayBuffer(receiver) { return getBinaryPromise().then(function(binary) { return WebAssembly.instantiate(binary, info); }).then(function(instance) { return instance; }).then(receiver, function(reason) { err("failed to asynchronously prepare wasm: " + reason); abort(reason); }); } function instantiateAsync() { if (!wasmBinary && typeof WebAssembly.instantiateStreaming == "function" && !isDataURI(wasmBinaryFile) && !isFileURI(wasmBinaryFile) && !ENVIRONMENT_IS_NODE && typeof fetch == "function") { return fetch(wasmBinaryFile, { credentials: "same-origin" }).then(function(response) { var result = WebAssembly.instantiateStreaming(response, info); return result.then(receiveInstantiationResult, function(reason) { err("wasm streaming compile failed: " + reason); err("falling back to ArrayBuffer instantiation"); return instantiateArrayBuffer(receiveInstantiationResult); }); }); } else { return instantiateArrayBuffer(receiveInstantiationResult); } } if (Module["instantiateWasm"]) { try { var exports2 = Module["instantiateWasm"](info, receiveInstance); return exports2; } catch (e) { err("Module.instantiateWasm callback failed with error: " + e); readyPromiseReject(e); } } instantiateAsync().catch(readyPromiseReject); return {}; } var tempDouble; var tempI64; function ExitStatus(status) { this.name = "ExitStatus"; this.message = "Program terminated with exit(" + status + ")"; this.status = status; } function callRuntimeCallbacks(callbacks) { while (callbacks.length > 0) { callbacks.shift()(Module); } } function ExceptionInfo(excPtr) { this.excPtr = excPtr; this.ptr = excPtr - 24; this.set_type = function(type) { HEAPU32[this.ptr + 4 >>> 2] = type; }; this.get_type = function() { return HEAPU32[this.ptr + 4 >>> 2]; }; this.set_destructor = function(destructor) { HEAPU32[this.ptr + 8 >>> 2] = destructor; }; this.get_destructor = function() { return HEAPU32[this.ptr + 8 >>> 2]; }; this.set_refcount = function(refcount) { HEAP32[this.ptr >>> 2] = refcount; }; this.set_caught = function(caught) { caught = caught ? 1 : 0; HEAP8[this.ptr + 12 >>> 0] = caught; }; this.get_caught = function() { return HEAP8[this.ptr + 12 >>> 0] != 0; }; this.set_rethrown = function(rethrown) { rethrown = rethrown ? 1 : 0; HEAP8[this.ptr + 13 >>> 0] = rethrown; }; this.get_rethrown = function() { return HEAP8[this.ptr + 13 >>> 0] != 0; }; this.init = function(type, destructor) { this.set_adjusted_ptr(0); this.set_type(type); this.set_destructor(destructor); this.set_refcount(0); this.set_caught(false); this.set_rethrown(false); }; this.add_ref = function() { var value = HEAP32[this.ptr >>> 2]; HEAP32[this.ptr >>> 2] = value + 1; }; this.release_ref = function() { var prev = HEAP32[this.ptr >>> 2]; HEAP32[this.ptr >>> 2] = prev - 1; return prev === 1; }; this.set_adjusted_ptr = function(adjustedPtr) { HEAPU32[this.ptr + 16 >>> 2] = adjustedPtr; }; this.get_adjusted_ptr = function() { return HEAPU32[this.ptr + 16 >>> 2]; }; this.get_exception_ptr = function() { var isPointer = ___cxa_is_pointer_type(this.get_type()); if (isPointer) { return HEAPU32[this.excPtr >>> 2]; } var adjusted = this.get_adjusted_ptr(); if (adjusted !== 0) return adjusted; return this.excPtr; }; } function ___cxa_throw(ptr, type, destructor) { var info = new ExceptionInfo(ptr); info.init(type, destructor); throw ptr; } function setErrNo(value) { HEAP32[___errno_location() >>> 2] = value; return value; } var PATH = { isAbs: (path) => path.charAt(0) === "/", splitPath: (filename) => { var splitPathRe = /^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/; return splitPathRe.exec(filename).slice(1); }, normalizeArray: (parts, allowAboveRoot) => { var up = 0; for (var i = parts.length - 1; i >= 0; i--) { var last = parts[i]; if (last === ".") { parts.splice(i, 1); } else if (last === "..") { parts.splice(i, 1); up++; } else if (up) { parts.splice(i, 1); up--; } } if (allowAboveRoot) { for (; up; up--) { parts.unshift(".."); } } return parts; }, normalize: (path) => { var isAbsolute = PATH.isAbs(path), trailingSlash = path.substr(-1) === "/"; path = PATH.normalizeArray(path.split("/").filter((p) => !!p), !isAbsolute).join("/"); if (!path && !isAbsolute) { path = "."; } if (path && trailingSlash) { path += "/"; } return (isAbsolute ? "/" : "") + path; }, dirname: (path) => { var result = PATH.splitPath(path), root = result[0], dir = result[1]; if (!root && !dir) { return "."; } if (dir) { dir = dir.substr(0, dir.length - 1); } return root + dir; }, basename: (path) => { if (path === "/") return "/"; path = PATH.normalize(path); path = path.replace(/\/$/, ""); var lastSlash = path.lastIndexOf("/"); if (lastSlash === -1) return path; return path.substr(lastSlash + 1); }, join: function() { var paths = Array.prototype.slice.call(arguments); return PATH.normalize(paths.join("/")); }, join2: (l, r) => { return PATH.normalize(l + "/" + r); } }; function getRandomDevice() { if (typeof crypto == "object" && typeof crypto["getRandomValues"] == "function") { var randomBuffer = new Uint8Array(1); return () => { crypto.getRandomValues(randomBuffer); return randomBuffer[0]; }; } else if (ENVIRONMENT_IS_NODE) { try { var crypto_module = require_crypto(); return () => crypto_module["randomBytes"](1)[0]; } catch (e) { } } return () => abort("randomDevice"); } var PATH_FS = { resolve: function() { var resolvedPath = "", resolvedAbsolute = false; for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) { var path = i >= 0 ? arguments[i] : FS.cwd(); if (typeof path != "string") { throw new TypeError("Arguments to path.resolve must be strings"); } else if (!path) { return ""; } resolvedPath = path + "/" + resolvedPath; resolvedAbsolute = PATH.isAbs(path); } resolvedPath = PATH.normalizeArray(resolvedPath.split("/").filter((p) => !!p), !resolvedAbsolute).join("/"); return (resolvedAbsolute ? "/" : "") + resolvedPath || "."; }, relative: (from, to) => { from = PATH_FS.resolve(from).substr(1); to = PATH_FS.resolve(to).substr(1); function trim(arr) { var start = 0; for (; start < arr.length; start++) { if (arr[start] !== "") break; } var end = arr.length - 1; for (; end >= 0; end--) { if (arr[end] !== "") break; } if (start > end) return []; return arr.slice(start, end - start + 1); } var fromParts = trim(from.split("/")); var toParts = trim(to.split("/")); var length = Math.min(fromParts.length, toParts.length); var samePartsLength = length; for (var i = 0; i < length; i++) { if (fromParts[i] !== toParts[i]) { samePartsLength = i; break; } } var outputParts = []; for (var i = samePartsLength; i < fromParts.length; i++) { outputParts.push(".."); } outputParts = outputParts.concat(toParts.slice(samePartsLength)); return outputParts.join("/"); } }; function intArrayFromString(stringy, dontAddNull, length) { var len = length > 0 ? length : lengthBytesUTF8(stringy) + 1; var u8array = new Array(len); var numBytesWritten = stringToUTF8Array(stringy, u8array, 0, u8array.length); if (dontAddNull) u8array.length = numBytesWritten; return u8array; } var TTY = { ttys: [], init: function() { }, shutdown: function() { }, register: function(dev, ops) { TTY.ttys[dev] = { input: [], output: [], ops }; FS.registerDevice(dev, TTY.stream_ops); }, stream_ops: { open: function(stream) { var tty = TTY.ttys[stream.node.rdev]; if (!tty) { throw new FS.ErrnoError(43); } stream.tty = tty; stream.seekable = false; }, close: function(stream) { stream.tty.ops.fsync(stream.tty); }, fsync: function(stream) { stream.tty.ops.fsync(stream.tty); }, read: function(stream, buffer, offset, length, pos) { if (!stream.tty || !stream.tty.ops.get_char) { throw new FS.ErrnoError(60); } var bytesRead = 0; for (var i = 0; i < length; i++) { var result; try { result = stream.tty.ops.get_char(stream.tty); } catch (e) { throw new FS.ErrnoError(29); } if (result === void 0 && bytesRead === 0) { throw new FS.ErrnoError(6); } if (result === null || result === void 0) break; bytesRead++; buffer[offset + i] = result; } if (bytesRead) { stream.node.timestamp = Date.now(); } return bytesRead; }, write: function(stream, buffer, offset, length, pos) { if (!stream.tty || !stream.tty.ops.put_char) { throw new FS.ErrnoError(60); } try { for (var i = 0; i < length; i++) { stream.tty.ops.put_char(stream.tty, buffer[offset + i]); } } catch (e) { throw new FS.ErrnoError(29); } if (length) { stream.node.timestamp = Date.now(); } return i; } }, default_tty_ops: { get_char: function(tty) { if (!tty.input.length) { var result = null; if (ENVIRONMENT_IS_NODE) { var BUFSIZE = 256; var buf = Buffer.alloc(BUFSIZE); var bytesRead = 0; try { bytesRead = fs.readSync(process.stdin.fd, buf, 0, BUFSIZE, -1); } catch (e) { if (e.toString().includes("EOF")) bytesRead = 0; else throw e; } if (bytesRead > 0) { result = buf.slice(0, bytesRead).toString("utf-8"); } else { result = null; } } else if (typeof window != "undefined" && typeof window.prompt == "function") { result = window.prompt("Input: "); if (result !== null) { result += "\n"; } } else if (typeof readline == "function") { result = readline(); if (result !== null) { result += "\n"; } } if (!result) { return null; } tty.input = intArrayFromString(result, true); } return tty.input.shift(); }, put_char: function(tty, val) { if (val === null || val === 10) { out(UTF8ArrayToString(tty.output, 0)); tty.output = []; } else { if (val != 0) tty.output.push(val); } }, fsync: function(tty) { if (tty.output && tty.output.length > 0) { out(UTF8ArrayToString(tty.output, 0)); tty.output = []; } } }, default_tty1_ops: { put_char: function(tty, val) { if (val === null || val === 10) { err(UTF8ArrayToString(tty.output, 0)); tty.output = []; } else { if (val != 0) tty.output.push(val); } }, fsync: function(tty) { if (tty.output && tty.output.length > 0) { err(UTF8ArrayToString(tty.output, 0)); tty.output = []; } } } }; function mmapAlloc(size) { abort(); } var MEMFS = { ops_table: null, mount: function(mount) { return MEMFS.createNode(null, "/", 16384 | 511, 0); }, createNode: function(parent, name, mode, dev) { if (FS.isBlkdev(mode) || FS.isFIFO(mode)) { throw new FS.ErrnoError(63); } if (!MEMFS.ops_table) { MEMFS.ops_table = { dir: { node: { getattr: MEMFS.node_ops.getattr, setattr: MEMFS.node_ops.setattr, lookup: MEMFS.node_ops.lookup, mknod: MEMFS.node_ops.mknod, rename: MEMFS.node_ops.rename, unlink: MEMFS.node_ops.unlink, rmdir: MEMFS.node_ops.rmdir, readdir: MEMFS.node_ops.readdir, symlink: MEMFS.node_ops.symlink }, stream: { llseek: MEMFS.stream_ops.llseek } }, file: { node: { getattr: MEMFS.node_ops.getattr, setattr: MEMFS.node_ops.setattr }, stream: { llseek: MEMFS.stream_ops.llseek, read: MEMFS.stream_ops.read, write: MEMFS.stream_ops.write, allocate: MEMFS.stream_ops.allocate, mmap: MEMFS.stream_ops.mmap, msync: MEMFS.stream_ops.msync } }, link: { node: { getattr: MEMFS.node_ops.getattr, setattr: MEMFS.node_ops.setattr, readlink: MEMFS.node_ops.readlink }, stream: {} }, chrdev: { node: { getattr: MEMFS.node_ops.getattr, setattr: MEMFS.node_ops.setattr }, stream: FS.chrdev_stream_ops } }; } var node = FS.createNode(parent, name, mode, dev); if (FS.isDir(node.mode)) { node.node_ops = MEMFS.ops_table.dir.node; node.stream_ops = MEMFS.ops_table.dir.stream; node.contents = {}; } else if (FS.isFile(node.mode)) { node.node_ops = MEMFS.ops_table.file.node; node.stream_ops = MEMFS.ops_table.file.stream; node.usedBytes = 0; node.contents = null; } else if (FS.isLink(node.mode)) { node.node_ops = MEMFS.ops_table.link.node; node.stream_ops = MEMFS.ops_table.link.stream; } else if (FS.isChrdev(node.mode)) { node.node_ops = MEMFS.ops_table.chrdev.node; node.stream_ops = MEMFS.ops_table.chrdev.stream; } node.timestamp = Date.now(); if (parent) { parent.contents[name] = node; parent.timestamp = node.timestamp; } return node; }, getFileDataAsTypedArray: function(node) { if (!node.contents) return new Uint8Array(0); if (node.contents.subarray) return node.contents.subarray(0, node.usedBytes); return new Uint8Array(node.contents); }, expandFileStorage: function(node, newCapacity) { newCapacity >>>= 0; var prevCapacity = node.contents ? node.contents.length : 0; if (prevCapacity >= newCapacity) return; var CAPACITY_DOUBLING_MAX = 1024 * 1024; newCapacity = Math.max(newCapacity, prevCapacity * (prevCapacity < CAPACITY_DOUBLING_MAX ? 2 : 1.125) >>> 0); if (prevCapacity != 0) newCapacity = Math.max(newCapacity, 256); var oldContents = node.contents; node.contents = new Uint8Array(newCapacity); if (node.usedBytes > 0) node.contents.set(oldContents.subarray(0, node.usedBytes), 0); }, resizeFileStorage: function(node, newSize) { newSize >>>= 0; if (node.usedBytes == newSize) return; if (newSize == 0) { node.contents = null; node.usedBytes = 0; } else { var oldContents = node.contents; node.contents = new Uint8Array(newSize); if (oldContents) { node.contents.set(oldContents.subarray(0, Math.min(newSize, node.usedBytes))); } node.usedBytes = newSize; } }, node_ops: { getattr: function(node) { var attr = {}; attr.dev = FS.isChrdev(node.mode) ? node.id : 1; attr.ino = node.id; attr.mode = node.mode; attr.nlink = 1; attr.uid = 0; attr.gid = 0; attr.rdev = node.rdev; if (FS.isDir(node.mode)) { attr.size = 4096; } else if (FS.isFile(node.mode)) { attr.size = node.usedBytes; } else if (FS.isLink(node.mode)) { attr.size = node.link.length; } else { attr.size = 0; } attr.atime = new Date(node.timestamp); attr.mtime = new Date(node.timestamp); attr.ctime = new Date(node.timestamp); attr.blksize = 4096; attr.blocks = Math.ceil(attr.size / attr.blksize); return attr; }, setattr: function(node, attr) { if (attr.mode !== void 0) { node.mode = attr.mode; } if (attr.timestamp !== void 0) { node.timestamp = attr.timestamp; } if (attr.size !== void 0) { MEMFS.resizeFileStorage(node, attr.size); } }, lookup: function(parent, name) { throw FS.genericErrors[44]; }, mknod: function(parent, name, mode, dev) { return MEMFS.createNode(parent, name, mode, dev); }, rename: function(old_node, new_dir, new_name) { if (FS.isDir(old_node.mode)) { var new_node; try { new_node = FS.lookupNode(new_dir, new_name); } catch (e) { } if (new_node) { for (var i in new_node.contents) { throw new FS.ErrnoError(55); } } } delete old_node.parent.contents[old_node.name]; old_node.parent.timestamp = Date.now(); old_node.name = new_name; new_dir.contents[new_name] = old_node; new_dir.timestamp = old_node.parent.timestamp; old_node.parent = new_dir; }, unlink: function(parent, name) { delete parent.contents[name]; parent.timestamp = Date.now(); }, rmdir: function(parent, name) { var node = FS.lookupNode(parent, name); for (var i in node.contents) { throw new FS.ErrnoError(55); } delete parent.contents[name]; parent.timestamp = Date.now(); }, readdir: function(node) { var entries = [".", ".."]; for (var key in node.contents) { if (!node.contents.hasOwnProperty(key)) { continue; } entries.push(key); } return entries; }, symlink: function(parent, newname, oldpath) { var node = MEMFS.createNode(parent, newname, 511 | 40960, 0); node.link = oldpath; return node; }, readlink: function(node) { if (!FS.isLink(node.mode)) { throw new FS.ErrnoError(28); } return node.link; } }, stream_ops: { read: function(stream, buffer, offset, length, position) { var contents = stream.node.contents; if (position >= stream.node.usedBytes) return 0; var size = Math.min(stream.node.usedBytes - position, length); if (size > 8 && contents.subarray) { buffer.set(contents.subarray(position, position + size), offset); } else { for (var i = 0; i < size; i++) buffer[offset + i] = contents[position + i]; } return size; }, write: function(stream, buffer, offset, length, position, canOwn) { if (buffer.buffer === HEAP8.buffer) { canOwn = false; } if (!length) return 0; var node = stream.node; node.timestamp = Date.now(); if (buffer.subarray && (!node.contents || node.contents.subarray)) { if (canOwn) { node.contents = buffer.subarray(offset, offset + length); node.usedBytes = length; return length; } else if (node.usedBytes === 0 && position === 0) { node.contents = buffer.slice(offset, offset + length); node.usedBytes = length; return length; } else if (position + length <= node.usedBytes) { node.contents.set(buffer.subarray(offset, offset + length), position); return length; } } MEMFS.expandFileStorage(node, position + length); if (node.contents.subarray && buffer.subarray) { node.contents.set(buffer.subarray(offset, offset + length), position); } else { for (var i = 0; i < length; i++) { node.contents[position + i] = buffer[offset + i]; } } node.usedBytes = Math.max(node.usedBytes, position + length); return length; }, llseek: function(stream, offset, whence) { var position = offset; if (whence === 1) { position += stream.position; } else if (whence === 2) { if (FS.isFile(stream.node.mode)) { position += stream.node.usedBytes; } } if (position < 0) { throw new FS.ErrnoError(28); } return position; }, allocate: function(stream, offset, length) { MEMFS.expandFileStorage(stream.node, offset + length); stream.node.usedBytes = Math.max(stream.node.usedBytes, offset + length); }, mmap: function(stream, length, position, prot, flags) { if (!FS.isFile(stream.node.mode)) { throw new FS.ErrnoError(43); } var ptr; var allocated; var contents = stream.node.contents; if (!(flags & 2) && contents.buffer === HEAP8.buffer) { allocated = false; ptr = contents.byteOffset; } else { if (position > 0 || position + length < contents.length) { if (contents.subarray) { contents = contents.subarray(position, position + length); } else { contents = Array.prototype.slice.call(contents, position, position + length); } } allocated = true; ptr = mmapAlloc(); if (!ptr) { throw new FS.ErrnoError(48); } ptr >>>= 0; HEAP8.set(contents, ptr >>> 0); } return { ptr, allocated }; }, msync: function(stream, buffer, offset, length, mmapFlags) { MEMFS.stream_ops.write(stream, buffer, 0, length, offset, false); return 0; } } }; function asyncLoad(url, onload, onerror, noRunDep) { var dep = !noRunDep ? getUniqueRunDependency("al " + url) : ""; readAsync(url, (arrayBuffer) => { assert(arrayBuffer, 'Loading data file "' + url + '" failed (no arrayBuffer).'); onload(new Uint8Array(arrayBuffer)); if (dep) removeRunDependency(); }, (event) => { if (onerror) { onerror(); } else { throw 'Loading data file "' + url + '" failed.'; } }); if (dep) addRunDependency(); } var FS = { root: null, mounts: [], devices: {}, streams: [], nextInode: 1, nameTable: null, currentPath: "/", initialized: false, ignorePermissions: true, ErrnoError: null, genericErrors: {}, filesystems: null, syncFSRequests: 0, lookupPath: (path, opts = {}) => { path = PATH_FS.resolve(path); if (!path) return { path: "", node: null }; var defaults = { follow_mount: true, recurse_count: 0 }; opts = Object.assign(defaults, opts); if (opts.recurse_count > 8) { throw new FS.ErrnoError(32); } var parts = path.split("/").filter((p) => !!p); var current = FS.root; var current_path = "/"; for (var i = 0; i < parts.length; i++) { var islast = i === parts.length - 1; if (islast && opts.parent) { break; } current = FS.lookupNode(current, parts[i]); current_path = PATH.join2(current_path, parts[i]); if (FS.isMountpoint(current)) { if (!islast || islast && opts.follow_mount) { current = current.mounted.root; } } if (!islast || opts.follow) { var count = 0; while (FS.isLink(current.mode)) { var link = FS.readlink(current_path); current_path = PATH_FS.resolve(PATH.dirname(current_path), link); var lookup = FS.lookupPath(current_path, { recurse_count: opts.recurse_count + 1 }); current = lookup.node; if (count++ > 40) { throw new FS.ErrnoError(32); } } } } return { path: current_path, node: current }; }, getPath: (node) => { var path; while (true) { if (FS.isRoot(node)) { var mount = node.mount.mountpoint; if (!path) return mount; return mount[mount.length - 1] !== "/" ? mount + "/" + path : mount + path; } path = path ? node.name + "/" + path : node.name; node = node.parent; } }, hashName: (parentid, name) => { var hash = 0; for (var i = 0; i < name.length; i++) { hash = (hash << 5) - hash + name.charCodeAt(i) | 0; } return (parentid + hash >>> 0) % FS.nameTable.length; }, hashAddNode: (node) => { var hash = FS.hashName(node.parent.id, node.name); node.name_next = FS.nameTable[hash]; FS.nameTable[hash] = node; }, hashRemoveNode: (node) => { var hash = FS.hashName(node.parent.id, node.name); if (FS.nameTable[hash] === node) { FS.nameTable[hash] = node.name_next; } else { var current = FS.nameTable[hash]; while (current) { if (current.name_next === node) { current.name_next = node.name_next; break; } current = current.name_next; } } }, lookupNode: (parent, name) => { var errCode = FS.mayLookup(parent); if (errCode) { throw new FS.ErrnoError(errCode, parent); } var hash = FS.hashName(parent.id, name); for (var node = FS.nameTable[hash]; node; node = node.name_next) { var nodeName = node.name; if (node.parent.id === parent.id && nodeName === name) { return node; } } return FS.lookup(parent, name); }, createNode: (parent, name, mode, rdev) => { var node = new FS.FSNode(parent, name, mode, rdev); FS.hashAddNode(node); return node; }, destroyNode: (node) => { FS.hashRemoveNode(node); }, isRoot: (node) => { return node === node.parent; }, isMountpoint: (node) => { return !!node.mounted; }, isFile: (mode) => { return (mode & 61440) === 32768; }, isDir: (mode) => { return (mode & 61440) === 16384; }, isLink: (mode) => { return (mode & 61440) === 40960; }, isChrdev: (mode) => { return (mode & 61440) === 8192; }, isBlkdev: (mode) => { return (mode & 61440) === 24576; }, isFIFO: (mode) => { return (mode & 61440) === 4096; }, isSocket: (mode) => { return (mode & 49152) === 49152; }, flagModes: { "r": 0, "r+": 2, "w": 577, "w+": 578, "a": 1089, "a+": 1090 }, modeStringToFlags: (str) => { var flags = FS.flagModes[str]; if (typeof flags == "undefined") { throw new Error("Unknown file open mode: " + str); } return flags; }, flagsToPermissionString: (flag) => { var perms = ["r", "w", "rw"][flag & 3]; if (flag & 512) { perms += "w"; } return perms; }, nodePermissions: (node, perms) => { if (FS.ignorePermissions) { return 0; } if (perms.includes("r") && !(node.mode & 292)) { return 2; } else if (perms.includes("w") && !(node.mode & 146)) { return 2; } else if (perms.includes("x") && !(node.mode & 73)) { return 2; } return 0; }, mayLookup: (dir) => { var errCode = FS.nodePermissions(dir, "x"); if (errCode) return errCode; if (!dir.node_ops.lookup) return 2; return 0; }, mayCreate: (dir, name) => { try { var node = FS.lookupNode(dir, name); return 20; } catch (e) { } return FS.nodePermissions(dir, "wx"); }, mayDelete: (dir, name, isdir) => { var node; try { node = FS.lookupNode(dir, name); } catch (e) { return e.errno; } var errCode = FS.nodePermissions(dir, "wx"); if (errCode) { return errCode; } if (isdir) { if (!FS.isDir(node.mode)) { return 54; } if (FS.isRoot(node) || FS.getPath(node) === FS.cwd()) { return 10; } } else { if (FS.isDir(node.mode)) { return 31; } } return 0; }, mayOpen: (node, flags) => { if (!node) { return 44; } if (FS.isLink(node.mode)) { return 32; } else if (FS.isDir(node.mode)) { if (FS.flagsToPermissionString(flags) !== "r" || flags & 512) { return 31; } } return FS.nodePermissions(node, FS.flagsToPermissionString(flags)); }, MAX_OPEN_FDS: 4096, nextfd: (fd_start = 0, fd_end = FS.MAX_OPEN_FDS) => { for (var fd = fd_start; fd <= fd_end; fd++) { if (!FS.streams[fd]) { return fd; } } throw new FS.ErrnoError(33); }, getStream: (fd) => FS.streams[fd], createStream: (stream, fd_start, fd_end) => { if (!FS.FSStream) { FS.FSStream = function() { this.shared = {}; }; FS.FSStream.prototype = {}; Object.defineProperties(FS.FSStream.prototype, { object: { get: function() { return this.node; }, set: function(val) { this.node = val; } }, isRead: { get: function() { return (this.flags & 2097155) !== 1; } }, isWrite: { get: function() { return (this.flags & 2097155) !== 0; } }, isAppend: { get: function() { return this.flags & 1024; } }, flags: { get: function() { return this.shared.flags; }, set: function(val) { this.shared.flags = val; } }, position: { get: function() { return this.shared.position; }, set: function(val) { this.shared.position = val; } } }); } stream = Object.assign(new FS.FSStream(), stream); var fd = FS.nextfd(fd_start, fd_end); stream.fd = fd; FS.streams[fd] = stream; return stream; }, closeStream: (fd) => { FS.streams[fd] = null; }, chrdev_stream_ops: { open: (stream) => { var device = FS.getDevice(stream.node.rdev); stream.stream_ops = device.stream_ops; if (stream.stream_ops.open) { stream.stream_ops.open(stream); } }, llseek: () => { throw new FS.ErrnoError(70); } }, major: (dev) => dev >> 8, minor: (dev) => dev & 255, makedev: (ma, mi) => ma << 8 | mi, registerDevice: (dev, ops) => { FS.devices[dev] = { stream_ops: ops }; }, getDevice: (dev) => FS.devices[dev], getMounts: (mount) => { var mounts = []; var check = [mount]; while (check.length) { var m = check.pop(); mounts.push(m); check.push.apply(check, m.mounts); } return mounts; }, syncfs: (populate, callback) => { if (typeof populate == "function") { callback = populate; populate = false; } FS.syncFSRequests++; if (FS.syncFSRequests > 1) { err("warning: " + FS.syncFSRequests + " FS.syncfs operations in flight at once, probably just doing extra work"); } var mounts = FS.getMounts(FS.root.mount); var completed = 0; function doCallback(errCode) { FS.syncFSRequests--; return callback(errCode); } function done(errCode) { if (errCode) { if (!done.errored) { done.errored = true; return doCallback(errCode); } return; } if (++completed >= mounts.length) { doCallback(null); } } mounts.forEach((mount) => { if (!mount.type.syncfs) { return done(null); } mount.type.syncfs(mount, populate, done); }); }, mount: (type, opts, mountpoint) => { var root = mountpoint === "/"; var pseudo = !mountpoint; var node; if (root && FS.root) { throw new FS.ErrnoError(10); } else if (!root && !pseudo) { var lookup = FS.lookupPath(mountpoint, { follow_mount: false }); mountpoint = lookup.path; node = lookup.node; if (FS.isMountpoint(node)) { throw new FS.ErrnoError(10); } if (!FS.isDir(node.mode)) { throw new FS.ErrnoError(54); } } var mount = { type, opts, mountpoint, mounts: [] }; var mountRoot = type.mount(mount); mountRoot.mount = mount; mount.root = mountRoot; if (root) { FS.root = mountRoot; } else if (node) { node.mounted = mount; if (node.mount) { node.mount.mounts.push(mount); } } return mountRoot; }, unmount: (mountpoint) => { var lookup = FS.lookupPath(mountpoint, { follow_mount: false }); if (!FS.isMountpoint(lookup.node)) { throw new FS.ErrnoError(28); } var node = lookup.node; var mount = node.mounted; var mounts = FS.getMounts(mount); Object.keys(FS.nameTable).forEach((hash) => { var current = FS.nameTable[hash]; while (current) { var next = current.name_next; if (mounts.includes(current.mount)) { FS.destroyNode(current); } current = next; } }); node.mounted = null; var idx = node.mount.mounts.indexOf(mount); node.mount.mounts.splice(idx, 1); }, lookup: (parent, name) => { return parent.node_ops.lookup(parent, name); }, mknod: (path, mode, dev) => { var lookup = FS.lookupPath(path, { parent: true }); var parent = lookup.node; var name = PATH.basename(path); if (!name || name === "." || name === "..") { throw new FS.ErrnoError(28); } var errCode = FS.mayCreate(parent, name); if (errCode) { throw new FS.ErrnoError(errCode); } if (!parent.node_ops.mknod) { throw new FS.ErrnoError(63); } return parent.node_ops.mknod(parent, name, mode, dev); }, create: (path, mode) => { mode = mode !== void 0 ? mode : 438; mode &= 4095; mode |= 32768; return FS.mknod(path, mode, 0); }, mkdir: (path, mode) => { mode = mode !== void 0 ? mode : 511; mode &= 511 | 512; mode |= 16384; return FS.mknod(path, mode, 0); }, mkdirTree: (path, mode) => { var dirs = path.split("/"); var d = ""; for (var i = 0; i < dirs.length; ++i) { if (!dirs[i]) continue; d += "/" + dirs[i]; try { FS.mkdir(d, mode); } catch (e) { if (e.errno != 20) throw e; } } }, mkdev: (path, mode, dev) => { if (typeof dev == "undefined") { dev = mode; mode = 438; } mode |= 8192; return FS.mknod(path, mode, dev); }, symlink: (oldpath, newpath) => { if (!PATH_FS.resolve(oldpath)) { throw new FS.ErrnoError(44); } var lookup = FS.lookupPath(newpath, { parent: true }); var parent = lookup.node; if (!parent) { throw new FS.ErrnoError(44); } var newname = PATH.basename(newpath); var errCode = FS.mayCreate(parent, newname); if (errCode) { throw new FS.ErrnoError(errCode); } if (!parent.node_ops.symlink) { throw new FS.ErrnoError(63); } return parent.node_ops.symlink(parent, newname, oldpath); }, rename: (old_path, new_path) => { var old_dirname = PATH.dirname(old_path); var new_dirname = PATH.dirname(new_path); var old_name = PATH.basename(old_path); var new_name = PATH.basename(new_path); var lookup, old_dir, new_dir; lookup = FS.lookupPath(old_path, { parent: true }); old_dir = lookup.node; lookup = FS.lookupPath(new_path, { parent: true }); new_dir = lookup.node; if (!old_dir || !new_dir) throw new FS.ErrnoError(44); if (old_dir.mount !== new_dir.mount) { throw new FS.ErrnoError(75); } var old_node = FS.lookupNode(old_dir, old_name); var relative = PATH_FS.relative(old_path, new_dirname); if (relative.charAt(0) !== ".") { throw new FS.ErrnoError(28); } relative = PATH_FS.relative(new_path, old_dirname); if (relative.charAt(0) !== ".") { throw new FS.ErrnoError(55); } var new_node; try { new_node = FS.lookupNode(new_dir, new_name); } catch (e) { } if (old_node === new_node) { return; } var isdir = FS.isDir(old_node.mode); var errCode = FS.mayDelete(old_dir, old_name, isdir); if (errCode) { throw new FS.ErrnoError(errCode); } errCode = new_node ? FS.mayDelete(new_dir, new_name, isdir) : FS.mayCreate(new_dir, new_name); if (errCode) { throw new FS.ErrnoError(errCode); } if (!old_dir.node_ops.rename) { throw new FS.ErrnoError(63); } if (FS.isMountpoint(old_node) || new_node && FS.isMountpoint(new_node)) { throw new FS.ErrnoError(10); } if (new_dir !== old_dir) { errCode = FS.nodePermissions(old_dir, "w"); if (errCode) { throw new FS.ErrnoError(errCode); } } FS.hashRemoveNode(old_node); try { old_dir.node_ops.rename(old_node, new_dir, new_name); } catch (e) { throw e; } finally { FS.hashAddNode(old_node); } }, rmdir: (path) => { var lookup = FS.lookupPath(path, { parent: true }); var parent = lookup.node; var name = PATH.basename(path); var node = FS.lookupNode(parent, name); var errCode = FS.mayDelete(parent, name, true); if (errCode) { throw new FS.ErrnoError(errCode); } if (!parent.node_ops.rmdir) { throw new FS.ErrnoError(63); } if (FS.isMountpoint(node)) { throw new FS.ErrnoError(10); } parent.node_ops.rmdir(parent, name); FS.destroyNode(node); }, readdir: (path) => { var lookup = FS.lookupPath(path, { follow: true }); var node = lookup.node; if (!node.node_ops.readdir) { throw new FS.ErrnoError(54); } return node.node_ops.readdir(node); }, unlink: (path) => { var lookup = FS.lookupPath(path, { parent: true }); var parent = lookup.node; if (!parent) { throw new FS.ErrnoError(44); } var name = PATH.basename(path); var node = FS.lookupNode(parent, name); var errCode = FS.mayDelete(parent, name, false); if (errCode) { throw new FS.ErrnoError(errCode); } if (!parent.node_ops.unlink) { throw new FS.ErrnoError(63); } if (FS.isMountpoint(node)) { throw new FS.ErrnoError(10); } parent.node_ops.unlink(parent, name); FS.destroyNode(node); }, readlink: (path) => { var lookup = FS.lookupPath(path); var link = lookup.node; if (!link) { throw new FS.ErrnoError(44); } if (!link.node_ops.readlink) { throw new FS.ErrnoError(28); } return PATH_FS.resolve(FS.getPath(link.parent), link.node_ops.readlink(link)); }, stat: (path, dontFollow) => { var lookup = FS.lookupPath(path, { follow: !dontFollow }); var node = lookup.node; if (!node) { throw new FS.ErrnoError(44); } if (!node.node_ops.getattr) { throw new FS.ErrnoError(63); } return node.node_ops.getattr(node); }, lstat: (path) => { return FS.stat(path, true); }, chmod: (path, mode, dontFollow) => { var node; if (typeof path == "string") { var lookup = FS.lookupPath(path, { follow: !dontFollow }); node = lookup.node; } else { node = path; } if (!node.node_ops.setattr) { throw new FS.ErrnoError(63); } node.node_ops.setattr(node, { mode: mode & 4095 | node.mode & ~4095, timestamp: Date.now() }); }, lchmod: (path, mode) => { FS.chmod(path, mode, true); }, fchmod: (fd, mode) => { var stream = FS.getStream(fd); if (!stream) { throw new FS.ErrnoError(8); } FS.chmod(stream.node, mode); }, chown: (path, uid, gid, dontFollow) => { var node; if (typeof path == "string") { var lookup = FS.lookupPath(path, { follow: !dontFollow }); node = lookup.node; } else { node = path; } if (!node.node_ops.setattr) { throw new FS.ErrnoError(63); } node.node_ops.setattr(node, { timestamp: Date.now() }); }, lchown: (path, uid, gid) => { FS.chown(path, uid, gid, true); }, fchown: (fd, uid, gid) => { var stream = FS.getStream(fd); if (!stream) { throw new FS.ErrnoError(8); } FS.chown(stream.node, uid, gid); }, truncate: (path, len) => { if (len < 0) { throw new FS.ErrnoError(28); } var node; if (typeof path == "string") { var lookup = FS.lookupPath(path, { follow: true }); node = lookup.node; } else { node = path; } if (!node.node_ops.setattr) { throw new FS.ErrnoError(63); } if (FS.isDir(node.mode)) { throw new FS.ErrnoError(31); } if (!FS.isFile(node.mode)) { throw new FS.ErrnoError(28); } var errCode = FS.nodePermissions(node, "w"); if (errCode) { throw new FS.ErrnoError(errCode); } node.node_ops.setattr(node, { size: len, timestamp: Date.now() }); }, ftruncate: (fd, len) => { var stream = FS.getStream(fd); if (!stream) { throw new FS.ErrnoError(8); } if ((stream.flags & 2097155) === 0) { throw new FS.ErrnoError(28); } FS.truncate(stream.node, len); }, utime: (path, atime, mtime) => { var lookup = FS.lookupPath(path, { follow: true }); var node = lookup.node; node.node_ops.setattr(node, { timestamp: Math.max(atime, mtime) }); }, open: (path, flags, mode) => { if (path === "") { throw new FS.ErrnoError(44); } flags = typeof flags == "string" ? FS.modeStringToFlags(flags) : flags; mode = typeof mode == "undefined" ? 438 : mode; if (flags & 64) { mode = mode & 4095 | 32768; } else { mode = 0; } var node; if (typeof path == "object") { node = path; } else { path = PATH.normalize(path); try { var lookup = FS.lookupPath(path, { follow: !(flags & 131072) }); node = lookup.node; } catch (e) { } } var created = false; if (flags & 64) { if (node) { if (flags & 128) { throw new FS.ErrnoError(20); } } else { node = FS.mknod(path, mode, 0); created = true; } } if (!node) { throw new FS.ErrnoError(44); } if (FS.isChrdev(node.mode)) { flags &= ~512; } if (flags & 65536 && !FS.isDir(node.mode)) { throw new FS.ErrnoError(54); } if (!created) { var errCode = FS.mayOpen(node, flags); if (errCode) { throw new FS.ErrnoError(errCode); } } if (flags & 512 && !created) { FS.truncate(node, 0); } flags &= ~(128 | 512 | 131072); var stream = FS.createStream({ node, path: FS.getPath(node), flags, seekable: true, position: 0, stream_ops: node.stream_ops, ungotten: [], error: false }); if (stream.stream_ops.open) { stream.stream_ops.open(stream); } if (Module["logReadFiles"] && !(flags & 1)) { if (!FS.readFiles) FS.readFiles = {}; if (!(path in FS.readFiles)) { FS.readFiles[path] = 1; } } return stream; }, close: (stream) => { if (FS.isClosed(stream)) { throw new FS.ErrnoError(8); } if (stream.getdents) stream.getdents = null; try { if (stream.stream_ops.close) { stream.stream_ops.close(stream); } } catch (e) { throw e; } finally { FS.closeStream(stream.fd); } stream.fd = null; }, isClosed: (stream) => { return stream.fd === null; }, llseek: (stream, offset, whence) => { if (FS.isClosed(stream)) { throw new FS.ErrnoError(8); } if (!stream.seekable || !stream.stream_ops.llseek) { throw new FS.ErrnoError(70); } if (whence != 0 && whence != 1 && whence != 2) { throw new FS.ErrnoError(28); } stream.position = stream.stream_ops.llseek(stream, offset, whence); stream.ungotten = []; return stream.position; }, read: (stream, buffer, offset, length, position) => { offset >>>= 0; if (length < 0 || position < 0) { throw new FS.ErrnoError(28); } if (FS.isClosed(stream)) { throw new FS.ErrnoError(8); } if ((stream.flags & 2097155) === 1) { throw new FS.ErrnoError(8); } if (FS.isDir(stream.node.mode)) { throw new FS.ErrnoError(31); } if (!stream.stream_ops.read) { throw new FS.ErrnoError(28); } var seeking = typeof position != "undefined"; if (!seeking) { position = stream.position; } else if (!stream.seekable) { throw new FS.ErrnoError(70); } var bytesRead = stream.stream_ops.read(stream, buffer, offset, length, position); if (!seeking) stream.position += bytesRead; return bytesRead; }, write: (stream, buffer, offset, length, position, canOwn) => { offset >>>= 0; if (length < 0 || position < 0) { throw new FS.ErrnoError(28); } if (FS.isClosed(stream)) { throw new FS.ErrnoError(8); } if ((stream.flags & 2097155) === 0) { throw new FS.ErrnoError(8); } if (FS.isDir(stream.node.mode)) { throw new FS.ErrnoError(31); } if (!stream.stream_ops.write) { throw new FS.ErrnoError(28); } if (stream.seekable && stream.flags & 1024) { FS.llseek(stream, 0, 2); } var seeking = typeof position != "undefined"; if (!seeking) { position = stream.position; } else if (!stream.seekable) { throw new FS.ErrnoError(70); } var bytesWritten = stream.stream_ops.write(stream, buffer, offset, length, position, canOwn); if (!seeking) stream.position += bytesWritten; return bytesWritten; }, allocate: (stream, offset, length) => { if (FS.isClosed(stream)) { throw new FS.ErrnoError(8); } if (offset < 0 || length <= 0) { throw new FS.ErrnoError(28); } if ((stream.flags & 2097155) === 0) { throw new FS.ErrnoError(8); } if (!FS.isFile(stream.node.mode) && !FS.isDir(stream.node.mode)) { throw new FS.ErrnoError(43); } if (!stream.stream_ops.allocate) { throw new FS.ErrnoError(138); } stream.stream_ops.allocate(stream, offset, length); }, mmap: (stream, length, position, prot, flags) => { if ((prot & 2) !== 0 && (flags & 2) === 0 && (stream.flags & 2097155) !== 2) { throw new FS.ErrnoError(2); } if ((stream.flags & 2097155) === 1) { throw new FS.ErrnoError(2); } if (!stream.stream_ops.mmap) { throw new FS.ErrnoError(43); } return stream.stream_ops.mmap(stream, length, position, prot, flags); }, msync: (stream, buffer, offset, length, mmapFlags) => { offset >>>= 0; if (!stream.stream_ops.msync) { return 0; } return stream.stream_ops.msync(stream, buffer, offset, length, mmapFlags); }, munmap: (stream) => 0, ioctl: (stream, cmd, arg) => { if (!stream.stream_ops.ioctl) { throw new FS.ErrnoError(59); } return stream.stream_ops.ioctl(stream, cmd, arg); }, readFile: (path, opts = {}) => { opts.flags = opts.flags || 0; opts.encoding = opts.encoding || "binary"; if (opts.encoding !== "utf8" && opts.encoding !== "binary") { throw new Error('Invalid encoding type "' + opts.encoding + '"'); } var ret; var stream = FS.open(path, opts.flags); var stat = FS.stat(path); var length = stat.size; var buf = new Uint8Array(length); FS.read(stream, buf, 0, length, 0); if (opts.encoding === "utf8") { ret = UTF8ArrayToString(buf, 0); } else if (opts.encoding === "binary") { ret = buf; } FS.close(stream); return ret; }, writeFile: (path, data, opts = {}) => { opts.flags = opts.flags || 577; var stream = FS.open(path, opts.flags, opts.mode); if (typeof data == "string") { var buf = new Uint8Array(lengthBytesUTF8(data) + 1); var actualNumBytes = stringToUTF8Array(data, buf, 0, buf.length); FS.write(stream, buf, 0, actualNumBytes, void 0, opts.canOwn); } else if (ArrayBuffer.isView(data)) { FS.write(stream, data, 0, data.byteLength, void 0, opts.canOwn); } else { throw new Error("Unsupported data type"); } FS.close(stream); }, cwd: () => FS.currentPath, chdir: (path) => { var lookup = FS.lookupPath(path, { follow: true }); if (lookup.node === null) { throw new FS.ErrnoError(44); } if (!FS.isDir(lookup.node.mode)) { throw new FS.ErrnoError(54); } var errCode = FS.nodePermissions(lookup.node, "x"); if (errCode) { throw new FS.ErrnoError(errCode); } FS.currentPath = lookup.path; }, createDefaultDirectories: () => { FS.mkdir("/tmp"); FS.mkdir("/home"); FS.mkdir("/home/web_user"); }, createDefaultDevices: () => { FS.mkdir("/dev"); FS.registerDevice(FS.makedev(1, 3), { read: () => 0, write: (stream, buffer, offset, length, pos) => length }); FS.mkdev("/dev/null", FS.makedev(1, 3)); TTY.register(FS.makedev(5, 0), TTY.default_tty_ops); TTY.register(FS.makedev(6, 0), TTY.default_tty1_ops); FS.mkdev("/dev/tty", FS.makedev(5, 0)); FS.mkdev("/dev/tty1", FS.makedev(6, 0)); var random_device = getRandomDevice(); FS.createDevice("/dev", "random", random_device); FS.createDevice("/dev", "urandom", random_device); FS.mkdir("/dev/shm"); FS.mkdir("/dev/shm/tmp"); }, createSpecialDirectories: () => { FS.mkdir("/proc"); var proc_self = FS.mkdir("/proc/self"); FS.mkdir("/proc/self/fd"); FS.mount({ mount: () => { var node = FS.createNode(proc_self, "fd", 16384 | 511, 73); node.node_ops = { lookup: (parent, name) => { var fd = +name; var stream = FS.getStream(fd); if (!stream) throw new FS.ErrnoError(8); var ret = { parent: null, mount: { mountpoint: "fake" }, node_ops: { readlink: () => stream.path } }; ret.parent = ret; return ret; } }; return node; } }, {}, "/proc/self/fd"); }, createStandardStreams: () => { if (Module["stdin"]) { FS.createDevice("/dev", "stdin", Module["stdin"]); } else { FS.symlink("/dev/tty", "/dev/stdin"); } if (Module["stdout"]) { FS.createDevice("/dev", "stdout", null, Module["stdout"]); } else { FS.symlink("/dev/tty", "/dev/stdout"); } if (Module["stderr"]) { FS.createDevice("/dev", "stderr", null, Module["stderr"]); } else { FS.symlink("/dev/tty1", "/dev/stderr"); } FS.open("/dev/stdin", 0); FS.open("/dev/stdout", 1); FS.open("/dev/stderr", 1); }, ensureErrnoError: () => { if (FS.ErrnoError) return; FS.ErrnoError = function ErrnoError(errno, node) { this.node = node; this.setErrno = function(errno2) { this.errno = errno2; }; this.setErrno(errno); this.message = "FS error"; }; FS.ErrnoError.prototype = new Error(); FS.ErrnoError.prototype.constructor = FS.ErrnoError; [44].forEach((code) => { FS.genericErrors[code] = new FS.ErrnoError(code); FS.genericErrors[code].stack = ""; }); }, staticInit: () => { FS.ensureErrnoError(); FS.nameTable = new Array(4096); FS.mount(MEMFS, {}, "/"); FS.createDefaultDirectories(); FS.createDefaultDevices(); FS.createSpecialDirectories(); FS.filesystems = { "MEMFS": MEMFS }; }, init: (input, output, error) => { FS.init.initialized = true; FS.ensureErrnoError(); Module["stdin"] = input || Module["stdin"]; Module["stdout"] = output || Module["stdout"]; Module["stderr"] = error || Module["stderr"]; FS.createStandardStreams(); }, quit: () => { FS.init.initialized = false; for (var i = 0; i < FS.streams.length; i++) { var stream = FS.streams[i]; if (!stream) { continue; } FS.close(stream); } }, getMode: (canRead, canWrite) => { var mode = 0; if (canRead) mode |= 292 | 73; if (canWrite) mode |= 146; return mode; }, findObject: (path, dontResolveLastLink) => { var ret = FS.analyzePath(path, dontResolveLastLink); if (!ret.exists) { return null; } return ret.object; }, analyzePath: (path, dontResolveLastLink) => { try { var lookup = FS.lookupPath(path, { follow: !dontResolveLastLink }); path = lookup.path; } catch (e) { } var ret = { isRoot: false, exists: false, error: 0, name: null, path: null, object: null, parentExists: false, parentPath: null, parentObject: null }; try { var lookup = FS.lookupPath(path, { parent: true }); ret.parentExists = true; ret.parentPath = lookup.path; ret.parentObject = lookup.node; ret.name = PATH.basename(path); lookup = FS.lookupPath(path, { follow: !dontResolveLastLink }); ret.exists = true; ret.path = lookup.path; ret.object = lookup.node; ret.name = lookup.node.name; ret.isRoot = lookup.path === "/"; } catch (e) { ret.error = e.errno; } return ret; }, createPath: (parent, path, canRead, canWrite) => { parent = typeof parent == "string" ? parent : FS.getPath(parent); var parts = path.split("/").reverse(); while (parts.length) { var part = parts.pop(); if (!part) continue; var current = PATH.join2(parent, part); try { FS.mkdir(current); } catch (e) { } parent = current; } return current; }, createFile: (parent, name, properties, canRead, canWrite) => { var path = PATH.join2(typeof parent == "string" ? parent : FS.getPath(parent), name); var mode = FS.getMode(canRead, canWrite); return FS.create(path, mode); }, createDataFile: (parent, name, data, canRead, canWrite, canOwn) => { var path = name; if (parent) { parent = typeof parent == "string" ? parent : FS.getPath(parent); path = name ? PATH.join2(parent, name) : parent; } var mode = FS.getMode(canRead, canWrite); var node = FS.create(path, mode); if (data) { if (typeof data == "string") { var arr = new Array(data.length); for (var i = 0, len = data.length; i < len; ++i) arr[i] = data.charCodeAt(i); data = arr; } FS.chmod(node, mode | 146); var stream = FS.open(node, 577); FS.write(stream, data, 0, data.length, 0, canOwn); FS.close(stream); FS.chmod(node, mode); } return node; }, createDevice: (parent, name, input, output) => { var path = PATH.join2(typeof parent == "string" ? parent : FS.getPath(parent), name); var mode = FS.getMode(!!input, !!output); if (!FS.createDevice.major) FS.createDevice.major = 64; var dev = FS.makedev(FS.createDevice.major++, 0); FS.registerDevice(dev, { open: (stream) => { stream.seekable = false; }, close: (stream) => { if (output && output.buffer && output.buffer.length) { output(10); } }, read: (stream, buffer, offset, length, pos) => { var bytesRead = 0; for (var i = 0; i < length; i++) { var result; try { result = input(); } catch (e) { throw new FS.ErrnoError(29); } if (result === void 0 && bytesRead === 0) { throw new FS.ErrnoError(6); } if (result === null || result === void 0) break; bytesRead++; buffer[offset + i] = result; } if (bytesRead) { stream.node.timestamp = Date.now(); } return bytesRead; }, write: (stream, buffer, offset, length, pos) => { for (var i = 0; i < length; i++) { try { output(buffer[offset + i]); } catch (e) { throw new FS.ErrnoError(29); } } if (length) { stream.node.timestamp = Date.now(); } return i; } }); return FS.mkdev(path, mode, dev); }, forceLoadFile: (obj) => { if (obj.isDevice || obj.isFolder || obj.link || obj.contents) return true; if (typeof XMLHttpRequest != "undefined") { throw new Error("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread."); } else if (read_) { try { obj.contents = intArrayFromString(read_(obj.url), true); obj.usedBytes = obj.contents.length; } catch (e) { throw new FS.ErrnoError(29); } } else { throw new Error("Cannot load without read() or XMLHttpRequest."); } }, createLazyFile: (parent, name, url, canRead, canWrite) => { function LazyUint8Array() { this.lengthKnown = false; this.chunks = []; } LazyUint8Array.prototype.get = function LazyUint8Array_get(idx) { if (idx > this.length - 1 || idx < 0) { return void 0; } var chunkOffset = idx % this.chunkSize; var chunkNum = idx / this.chunkSize | 0; return this.getter(chunkNum)[chunkOffset]; }; LazyUint8Array.prototype.setDataGetter = function LazyUint8Array_setDataGetter(getter) { this.getter = getter; }; LazyUint8Array.prototype.cacheLength = function LazyUint8Array_cacheLength() { var xhr = new XMLHttpRequest(); xhr.open("HEAD", url, false); xhr.send(null); if (!(xhr.status >= 200 && xhr.status < 300 || xhr.status === 304)) throw new Error("Couldn't load " + url + ". Status: " + xhr.status); var datalength = Number(xhr.getResponseHeader("Content-length")); var header; var hasByteServing = (header = xhr.getResponseHeader("Accept-Ranges")) && header === "bytes"; var usesGzip = (header = xhr.getResponseHeader("Content-Encoding")) && header === "gzip"; var chunkSize = 1024 * 1024; if (!hasByteServing) chunkSize = datalength; var doXHR = (from, to) => { if (from > to) throw new Error("invalid range (" + from + ", " + to + ") or no bytes requested!"); if (to > datalength - 1) throw new Error("only " + datalength + " bytes available! programmer error!"); var xhr2 = new XMLHttpRequest(); xhr2.open("GET", url, false); if (datalength !== chunkSize) xhr2.setRequestHeader("Range", "bytes=" + from + "-" + to); xhr2.responseType = "arraybuffer"; if (xhr2.overrideMimeType) { xhr2.overrideMimeType("text/plain; charset=x-user-defined"); } xhr2.send(null); if (!(xhr2.status >= 200 && xhr2.status < 300 || xhr2.status === 304)) throw new Error("Couldn't load " + url + ". Status: " + xhr2.status); if (xhr2.response !== void 0) { return new Uint8Array(xhr2.response || []); } return intArrayFromString(xhr2.responseText || "", true); }; var lazyArray2 = this; lazyArray2.setDataGetter((chunkNum) => { var start = chunkNum * chunkSize; var end = (chunkNum + 1) * chunkSize - 1; end = Math.min(end, datalength - 1); if (typeof lazyArray2.chunks[chunkNum] == "undefined") { lazyArray2.chunks[chunkNum] = doXHR(start, end); } if (typeof lazyArray2.chunks[chunkNum] == "undefined") throw new Error("doXHR failed!"); return lazyArray2.chunks[chunkNum]; }); if (usesGzip || !datalength) { chunkSize = datalength = 1; datalength = this.getter(0).length; chunkSize = datalength; out("LazyFiles on gzip forces download of the whole file when length is accessed"); } this._length = datalength; this._chunkSize = chunkSize; this.lengthKnown = true; }; if (typeof XMLHttpRequest != "undefined") { if (!ENVIRONMENT_IS_WORKER) throw "Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc"; var lazyArray = new LazyUint8Array(); Object.defineProperties(lazyArray, { length: { get: function() { if (!this.lengthKnown) { this.cacheLength(); } return this._length; } }, chunkSize: { get: function() { if (!this.lengthKnown) { this.cacheLength(); } return this._chunkSize; } } }); var properties = { isDevice: false, contents: lazyArray }; } else { var properties = { isDevice: false, url }; } var node = FS.createFile(parent, name, properties, canRead, canWrite); if (properties.contents) { node.contents = properties.contents; } else if (properties.url) { node.contents = null; node.url = properties.url; } Object.defineProperties(node, { usedBytes: { get: function() { return this.contents.length; } } }); var stream_ops = {}; var keys = Object.keys(node.stream_ops); keys.forEach((key) => { var fn = node.stream_ops[key]; stream_ops[key] = function forceLoadLazyFile() { FS.forceLoadFile(node); return fn.apply(null, arguments); }; }); function writeChunks(stream, buffer, offset, length, position) { var contents = stream.node.contents; if (position >= contents.length) return 0; var size = Math.min(contents.length - position, length); if (contents.slice) { for (var i = 0; i < size; i++) { buffer[offset + i] = contents[position + i]; } } else { for (var i = 0; i < size; i++) { buffer[offset + i] = contents.get(position + i); } } return size; } stream_ops.read = (stream, buffer, offset, length, position) => { FS.forceLoadFile(node); return writeChunks(stream, buffer, offset, length, position); }; stream_ops.mmap = (stream, length, position, prot, flags) => { FS.forceLoadFile(node); var ptr = mmapAlloc(); if (!ptr) { throw new FS.ErrnoError(48); } writeChunks(stream, HEAP8, ptr, length, position); return { ptr, allocated: true }; }; node.stream_ops = stream_ops; return node; }, createPreloadedFile: (parent, name, url, canRead, canWrite, onload, onerror, dontCreateFile, canOwn, preFinish) => { var fullname = name ? PATH_FS.resolve(PATH.join2(parent, name)) : parent; function processData(byteArray) { function finish(byteArray2) { if (preFinish) preFinish(); if (!dontCreateFile) { FS.createDataFile(parent, name, byteArray2, canRead, canWrite, canOwn); } if (onload) onload(); removeRunDependency(); } if (Browser.handledByPreloadPlugin(byteArray, fullname, finish, () => { if (onerror) onerror(); removeRunDependency(); })) { return; } finish(byteArray); } addRunDependency(); if (typeof url == "string") { asyncLoad(url, (byteArray) => processData(byteArray), onerror); } else { processData(url); } }, indexedDB: () => { return window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB || window.msIndexedDB; }, DB_NAME: () => { return "EM_FS_" + window.location.pathname; }, DB_VERSION: 20, DB_STORE_NAME: "FILE_DATA", saveFilesToDB: (paths, onload = () => { }, onerror = () => { }) => { var indexedDB = FS.indexedDB(); try { var openRequest = indexedDB.open(FS.DB_NAME(), FS.DB_VERSION); } catch (e) { return onerror(e); } openRequest.onupgradeneeded = () => { out("creating db"); var db = openRequest.result; db.createObjectStore(FS.DB_STORE_NAME); }; openRequest.onsuccess = () => { var db = openRequest.result; var transaction = db.transaction([FS.DB_STORE_NAME], "readwrite"); var files = transaction.objectStore(FS.DB_STORE_NAME); var ok = 0, fail = 0, total = paths.length; function finish() { if (fail == 0) onload(); else onerror(); } paths.forEach((path) => { var putRequest = files.put(FS.analyzePath(path).object.contents, path); putRequest.onsuccess = () => { ok++; if (ok + fail == total) finish(); }; putRequest.onerror = () => { fail++; if (ok + fail == total) finish(); }; }); transaction.onerror = onerror; }; openRequest.onerror = onerror; }, loadFilesFromDB: (paths, onload = () => { }, onerror = () => { }) => { var indexedDB = FS.indexedDB(); try { var openRequest = indexedDB.open(FS.DB_NAME(), FS.DB_VERSION); } catch (e) { return onerror(e); } openRequest.onupgradeneeded = onerror; openRequest.onsuccess = () => { var db = openRequest.result; try { var transaction = db.transaction([FS.DB_STORE_NAME], "readonly"); } catch (e) { onerror(e); return; } var files = transaction.objectStore(FS.DB_STORE_NAME); var ok = 0, fail = 0, total = paths.length; function finish() { if (fail == 0) onload(); else onerror(); } paths.forEach((path) => { var getRequest = files.get(path); getRequest.onsuccess = () => { if (FS.analyzePath(path).exists) { FS.unlink(path); } FS.createDataFile(PATH.dirname(path), PATH.basename(path), getRequest.result, true, true, true); ok++; if (ok + fail == total) finish(); }; getRequest.onerror = () => { fail++; if (ok + fail == total) finish(); }; }); transaction.onerror = onerror; }; openRequest.onerror = onerror; } }; var SYSCALLS = { DEFAULT_POLLMASK: 5, calculateAt: function(dirfd, path, allowEmpty) { if (PATH.isAbs(path)) { return path; } var dir; if (dirfd === -100) { dir = FS.cwd(); } else { var dirstream = SYSCALLS.getStreamFromFD(dirfd); dir = dirstream.path; } if (path.length == 0) { if (!allowEmpty) { throw new FS.ErrnoError(44); } return dir; } return PATH.join2(dir, path); }, doStat: function(func, path, buf) { try { var stat = func(path); } catch (e) { if (e && e.node && PATH.normalize(path) !== PATH.normalize(FS.getPath(e.node))) { return -54; } throw e; } HEAP32[buf >>> 2] = stat.dev; HEAP32[buf + 8 >>> 2] = stat.ino; HEAP32[buf + 12 >>> 2] = stat.mode; HEAPU32[buf + 16 >>> 2] = stat.nlink; HEAP32[buf + 20 >>> 2] = stat.uid; HEAP32[buf + 24 >>> 2] = stat.gid; HEAP32[buf + 28 >>> 2] = stat.rdev; tempI64 = [stat.size >>> 0, (tempDouble = stat.size, +Math.abs(tempDouble) >= 1 ? tempDouble > 0 ? (Math.min(+Math.floor(tempDouble / 4294967296), 4294967295) | 0) >>> 0 : ~~+Math.ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>> 0 : 0)], HEAP32[buf + 40 >>> 2] = tempI64[0], HEAP32[buf + 44 >>> 2] = tempI64[1]; HEAP32[buf + 48 >>> 2] = 4096; HEAP32[buf + 52 >>> 2] = stat.blocks; var atime = stat.atime.getTime(); var mtime = stat.mtime.getTime(); var ctime = stat.ctime.getTime(); tempI64 = [Math.floor(atime / 1e3) >>> 0, (tempDouble = Math.floor(atime / 1e3), +Math.abs(tempDouble) >= 1 ? tempDouble > 0 ? (Math.min(+Math.floor(tempDouble / 4294967296), 4294967295) | 0) >>> 0 : ~~+Math.ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>> 0 : 0)], HEAP32[buf + 56 >>> 2] = tempI64[0], HEAP32[buf + 60 >>> 2] = tempI64[1]; HEAPU32[buf + 64 >>> 2] = atime % 1e3 * 1e3; tempI64 = [Math.floor(mtime / 1e3) >>> 0, (tempDouble = Math.floor(mtime / 1e3), +Math.abs(tempDouble) >= 1 ? tempDouble > 0 ? (Math.min(+Math.floor(tempDouble / 4294967296), 4294967295) | 0) >>> 0 : ~~+Math.ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>> 0 : 0)], HEAP32[buf + 72 >>> 2] = tempI64[0], HEAP32[buf + 76 >>> 2] = tempI64[1]; HEAPU32[buf + 80 >>> 2] = mtime % 1e3 * 1e3; tempI64 = [Math.floor(ctime / 1e3) >>> 0, (tempDouble = Math.floor(ctime / 1e3), +Math.abs(tempDouble) >= 1 ? tempDouble > 0 ? (Math.min(+Math.floor(tempDouble / 4294967296), 4294967295) | 0) >>> 0 : ~~+Math.ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>> 0 : 0)], HEAP32[buf + 88 >>> 2] = tempI64[0], HEAP32[buf + 92 >>> 2] = tempI64[1]; HEAPU32[buf + 96 >>> 2] = ctime % 1e3 * 1e3; tempI64 = [stat.ino >>> 0, (tempDouble = stat.ino, +Math.abs(tempDouble) >= 1 ? tempDouble > 0 ? (Math.min(+Math.floor(tempDouble / 4294967296), 4294967295) | 0) >>> 0 : ~~+Math.ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>> 0 : 0)], HEAP32[buf + 104 >>> 2] = tempI64[0], HEAP32[buf + 108 >>> 2] = tempI64[1]; return 0; }, doMsync: function(addr, stream, len, flags, offset) { if (!FS.isFile(stream.node.mode)) { throw new FS.ErrnoError(43); } if (flags & 2) { return 0; } addr >>>= 0; var buffer = HEAPU8.slice(addr, addr + len); FS.msync(stream, buffer, offset, len, flags); }, varargs: void 0, get: function() { SYSCALLS.varargs += 4; var ret = HEAP32[SYSCALLS.varargs - 4 >>> 2]; return ret; }, getStr: function(ptr) { var ret = UTF8ToString(ptr); return ret; }, getStreamFromFD: function(fd) { var stream = FS.getStream(fd); if (!stream) throw new FS.ErrnoError(8); return stream; } }; function ___syscall_fcntl64(fd, cmd, varargs) { SYSCALLS.varargs = varargs; try { var stream = SYSCALLS.getStreamFromFD(fd); switch (cmd) { case 0: { var arg = SYSCALLS.get(); if (arg < 0) { return -28; } var newStream; newStream = FS.createStream(stream, arg); return newStream.fd; } case 1: case 2: return 0; case 3: return stream.flags; case 4: { var arg = SYSCALLS.get(); stream.flags |= arg; return 0; } case 5: { var arg = SYSCALLS.get(); var offset = 0; HEAP16[arg + offset >>> 1] = 2; return 0; } case 6: case 7: return 0; case 16: case 8: return -28; case 9: setErrNo(28); return -1; default: { return -28; } } } catch (e) { if (typeof FS == "undefined" || !(e instanceof FS.ErrnoError)) throw e; return -e.errno; } } function ___syscall_ioctl(fd, op, varargs) { SYSCALLS.varargs = varargs; try { var stream = SYSCALLS.getStreamFromFD(fd); switch (op) { case 21509: case 21505: { if (!stream.tty) return -59; return 0; } case 21510: case 21511: case 21512: case 21506: case 21507: case 21508: { if (!stream.tty) return -59; return 0; } case 21519: { if (!stream.tty) return -59; var argp = SYSCALLS.get(); HEAP32[argp >>> 2] = 0; return 0; } case 21520: { if (!stream.tty) return -59; return -28; } case 21531: { var argp = SYSCALLS.get(); return FS.ioctl(stream, op, argp); } case 21523: { if (!stream.tty) return -59; return 0; } case 21524: { if (!stream.tty) return -59; return 0; } default: return -28; } } catch (e) { if (typeof FS == "undefined" || !(e instanceof FS.ErrnoError)) throw e; return -e.errno; } } function ___syscall_openat(dirfd, path, flags, varargs) { SYSCALLS.varargs = varargs; try { path = SYSCALLS.getStr(path); path = SYSCALLS.calculateAt(dirfd, path); var mode = varargs ? SYSCALLS.get() : 0; return FS.open(path, flags, mode).fd; } catch (e) { if (typeof FS == "undefined" || !(e instanceof FS.ErrnoError)) throw e; return -e.errno; } } var tupleRegistrations = {}; function runDestructors(destructors) { while (destructors.length) { var ptr = destructors.pop(); var del = destructors.pop(); del(ptr); } } function simpleReadValueFromPointer(pointer) { return this["fromWireType"](HEAP32[pointer >>> 2]); } var awaitingDependencies = {}; var registeredTypes = {}; var typeDependencies = {}; var char_0 = 48; var char_9 = 57; function makeLegalFunctionName(name) { if (name === void 0) { return "_unknown"; } name = name.replace(/[^a-zA-Z0-9_]/g, "$"); var f = name.charCodeAt(0); if (f >= char_0 && f <= char_9) { return "_" + name; } return name; } function createNamedFunction(name, body) { name = makeLegalFunctionName(name); return new Function("body", "return function " + name + '() {\n "use strict"; return body.apply(this, arguments);\n};\n')(body); } function extendError(baseErrorType, errorName) { var errorClass = createNamedFunction(errorName, function(message) { this.name = errorName; this.message = message; var stack = new Error(message).stack; if (stack !== void 0) { this.stack = this.toString() + "\n" + stack.replace(/^Error(:[^\n]*)?\n/, ""); } }); errorClass.prototype = Object.create(baseErrorType.prototype); errorClass.prototype.constructor = errorClass; errorClass.prototype.toString = function() { if (this.message === void 0) { return this.name; } else { return this.name + ": " + this.message; } }; return errorClass; } var InternalError = void 0; function throwInternalError(message) { throw new InternalError(message); } function whenDependentTypesAreResolved(myTypes, dependentTypes, getTypeConverters) { myTypes.forEach(function(type) { typeDependencies[type] = dependentTypes; }); function onComplete(typeConverters2) { var myTypeConverters = getTypeConverters(typeConverters2); if (myTypeConverters.length !== myTypes.length) { throwInternalError("Mismatched type converter count"); } for (var i = 0; i < myTypes.length; ++i) { registerType(myTypes[i], myTypeConverters[i]); } } var typeConverters = new Array(dependentTypes.length); var unregisteredTypes = []; var registered = 0; dependentTypes.forEach((dt, i) => { if (registeredTypes.hasOwnProperty(dt)) { typeConverters[i] = registeredTypes[dt]; } else { unregisteredTypes.push(dt); if (!awaitingDependencies.hasOwnProperty(dt)) { awaitingDependencies[dt] = []; } awaitingDependencies[dt].push(() => { typeConverters[i] = registeredTypes[dt]; ++registered; if (registered === unregisteredTypes.length) { onComplete(typeConverters); } }); } }); if (unregisteredTypes.length === 0) { onComplete(typeConverters); } } function __embind_finalize_value_array(rawTupleType) { var reg = tupleRegistrations[rawTupleType]; delete tupleRegistrations[rawTupleType]; var elements = reg.elements; var elementsLength = elements.length; var elementTypes = elements.map(function(elt) { return elt.getterReturnType; }).concat(elements.map(function(elt) { return elt.setterArgumentType; })); var rawConstructor = reg.rawConstructor; var rawDestructor = reg.rawDestructor; whenDependentTypesAreResolved([rawTupleType], elementTypes, function(elementTypes2) { elements.forEach((elt, i) => { var getterReturnType = elementTypes2[i]; var getter = elt.getter; var getterContext = elt.getterContext; var setterArgumentType = elementTypes2[i + elementsLength]; var setter = elt.setter; var setterContext = elt.setterContext; elt.read = (ptr) => { return getterReturnType["fromWireType"](getter(getterContext, ptr)); }; elt.write = (ptr, o) => { var destructors = []; setter(setterContext, ptr, setterArgumentType["toWireType"](destructors, o)); runDestructors(destructors); }; }); return [{ name: reg.name, "fromWireType": function(ptr) { var rv = new Array(elementsLength); for (var i = 0; i < elementsLength; ++i) { rv[i] = elements[i].read(ptr); } rawDestructor(ptr); return rv; }, "toWireType": function(destructors, o) { if (elementsLength !== o.length) { throw new TypeError("Incorrect number of tuple elements for " + reg.name + ": expected=" + elementsLength + ", actual=" + o.length); } var ptr = rawConstructor(); for (var i = 0; i < elementsLength; ++i) { elements[i].write(ptr, o[i]); } if (destructors !== null) { destructors.push(rawDestructor, ptr); } return ptr; }, "argPackAdvance": 8, "readValueFromPointer": simpleReadValueFromPointer, destructorFunction: rawDestructor }]; }); } var structRegistrations = {}; function __embind_finalize_value_object(structType) { var reg = structRegistrations[structType]; delete structRegistrations[structType]; var rawConstructor = reg.rawConstructor; var rawDestructor = reg.rawDestructor; var fieldRecords = reg.fields; var fieldTypes = fieldRecords.map((field) => field.getterReturnType).concat(fieldRecords.map((field) => field.setterArgumentType)); whenDependentTypesAreResolved([structType], fieldTypes, (fieldTypes2) => { var fields = {}; fieldRecords.forEach((field, i) => { var fieldName = field.fieldName; var getterReturnType = fieldTypes2[i]; var getter = field.getter; var getterContext = field.getterContext; var setterArgumentType = fieldTypes2[i + fieldRecords.length]; var setter = field.setter; var setterContext = field.setterContext; fields[fieldName] = { read: (ptr) => { return getterReturnType["fromWireType"](getter(getterContext, ptr)); }, write: (ptr, o) => { var destructors = []; setter(setterContext, ptr, setterArgumentType["toWireType"](destructors, o)); runDestructors(destructors); } }; }); return [{ name: reg.name, "fromWireType": function(ptr) { var rv = {}; for (var i in fields) { rv[i] = fields[i].read(ptr); } rawDestructor(ptr); return rv; }, "toWireType": function(destructors, o) { for (var fieldName in fields) { if (!(fieldName in o)) { throw new TypeError('Missing field: "' + fieldName + '"'); } } var ptr = rawConstructor(); for (fieldName in fields) { fields[fieldName].write(ptr, o[fieldName]); } if (destructors !== null) { destructors.push(rawDestructor, ptr); } return ptr; }, "argPackAdvance": 8, "readValueFromPointer": simpleReadValueFromPointer, destructorFunction: rawDestructor }]; }); } function __embind_register_bigint(primitiveType, name, size, minRange, maxRange) { } function getShiftFromSize(size) { switch (size) { case 1: return 0; case 2: return 1; case 4: return 2; case 8: return 3; default: throw new TypeError("Unknown type size: " + size); } } function embind_init_charCodes() { var codes = new Array(256); for (var i = 0; i < 256; ++i) { codes[i] = String.fromCharCode(i); } embind_charCodes = codes; } var embind_charCodes = void 0; function readLatin1String(ptr) { var ret = ""; var c = ptr; while (HEAPU8[c >>> 0]) { ret += embind_charCodes[HEAPU8[c++ >>> 0]]; } return ret; } var BindingError = void 0; function throwBindingError(message) { throw new BindingError(message); } function registerType(rawType, registeredInstance, options = {}) { if (!("argPackAdvance" in registeredInstance)) { throw new TypeError("registerType registeredInstance requires argPackAdvance"); } var name = registeredInstance.name; if (!rawType) { throwBindingError('type "' + name + '" must have a positive integer typeid pointer'); } if (registeredTypes.hasOwnProperty(rawType)) { if (options.ignoreDuplicateRegistrations) { return; } else { throwBindingError("Cannot register type '" + name + "' twice"); } } registeredTypes[rawType] = registeredInstance; delete typeDependencies[rawType]; if (awaitingDependencies.hasOwnProperty(rawType)) { var callbacks = awaitingDependencies[rawType]; delete awaitingDependencies[rawType]; callbacks.forEach((cb) => cb()); } } function __embind_register_bool(rawType, name, size, trueValue, falseValue) { var shift = getShiftFromSize(size); name = readLatin1String(name); registerType(rawType, { name, "fromWireType": function(wt) { return !!wt; }, "toWireType": function(destructors, o) { return o ? trueValue : falseValue; }, "argPackAdvance": 8, "readValueFromPointer": function(pointer) { var heap; if (size === 1) { heap = HEAP8; } else if (size === 2) { heap = HEAP16; } else if (size === 4) { heap = HEAP32; } else { throw new TypeError("Unknown boolean type size: " + name); } return this["fromWireType"](heap[pointer >>> shift]); }, destructorFunction: null }); } function ClassHandle_isAliasOf(other) { if (!(this instanceof ClassHandle)) { return false; } if (!(other instanceof ClassHandle)) { return false; } var leftClass = this.$$.ptrType.registeredClass; var left = this.$$.ptr; var rightClass = other.$$.ptrType.registeredClass; var right = other.$$.ptr; while (leftClass.baseClass) { left = leftClass.upcast(left); leftClass = leftClass.baseClass; } while (rightClass.baseClass) { right = rightClass.upcast(right); rightClass = rightClass.baseClass; } return leftClass === rightClass && left === right; } function shallowCopyInternalPointer(o) { return { count: o.count, deleteScheduled: o.deleteScheduled, preservePointerOnDelete: o.preservePointerOnDelete, ptr: o.ptr, ptrType: o.ptrType, smartPtr: o.smartPtr, smartPtrType: o.smartPtrType }; } function throwInstanceAlreadyDeleted(obj) { function getInstanceTypeName(handle) { return handle.$$.ptrType.registeredClass.name; } throwBindingError(getInstanceTypeName(obj) + " instance already deleted"); } var finalizationRegistry = false; function detachFinalizer(handle) { } function runDestructor($$) { if ($$.smartPtr) { $$.smartPtrType.rawDestructor($$.smartPtr); } else { $$.ptrType.registeredClass.rawDestructor($$.ptr); } } function releaseClassHandle($$) { $$.count.value -= 1; var toDelete = $$.count.value === 0; if (toDelete) { runDestructor($$); } } function downcastPointer(ptr, ptrClass, desiredClass) { if (ptrClass === desiredClass) { return ptr; } if (desiredClass.baseClass === void 0) { return null; } var rv = downcastPointer(ptr, ptrClass, desiredClass.baseClass); if (rv === null) { return null; } return desiredClass.downcast(rv); } var registeredPointers = {}; function getInheritedInstanceCount() { return Object.keys(registeredInstances).length; } function getLiveInheritedInstances() { var rv = []; for (var k in registeredInstances) { if (registeredInstances.hasOwnProperty(k)) { rv.push(registeredInstances[k]); } } return rv; } var deletionQueue = []; function flushPendingDeletes() { while (deletionQueue.length) { var obj = deletionQueue.pop(); obj.$$.deleteScheduled = false; obj["delete"](); } } var delayFunction = void 0; function setDelayFunction(fn) { delayFunction = fn; if (deletionQueue.length && delayFunction) { delayFunction(flushPendingDeletes); } } function init_embind() { Module["getInheritedInstanceCount"] = getInheritedInstanceCount; Module["getLiveInheritedInstances"] = getLiveInheritedInstances; Module["flushPendingDeletes"] = flushPendingDeletes; Module["setDelayFunction"] = setDelayFunction; } var registeredInstances = {}; function getBasestPointer(class_, ptr) { if (ptr === void 0) { throwBindingError("ptr should not be undefined"); } while (class_.baseClass) { ptr = class_.upcast(ptr); class_ = class_.baseClass; } return ptr; } function getInheritedInstance(class_, ptr) { ptr = getBasestPointer(class_, ptr); return registeredInstances[ptr]; } function makeClassHandle(prototype, record) { if (!record.ptrType || !record.ptr) { throwInternalError("makeClassHandle requires ptr and ptrType"); } var hasSmartPtrType = !!record.smartPtrType; var hasSmartPtr = !!record.smartPtr; if (hasSmartPtrType !== hasSmartPtr) { throwInternalError("Both smartPtrType and smartPtr must be specified"); } record.count = { value: 1 }; return attachFinalizer(Object.create(prototype, { $$: { value: record } })); } function RegisteredPointer_fromWireType(ptr) { var rawPointer = this.getPointee(ptr); if (!rawPointer) { this.destructor(ptr); return null; } var registeredInstance = getInheritedInstance(this.registeredClass, rawPointer); if (registeredInstance !== void 0) { if (registeredInstance.$$.count.value === 0) { registeredInstance.$$.ptr = rawPointer; registeredInstance.$$.smartPtr = ptr; return registeredInstance["clone"](); } else { var rv = registeredInstance["clone"](); this.destructor(ptr); return rv; } } function makeDefaultHandle() { if (this.isSmartPointer) { return makeClassHandle(this.registeredClass.instancePrototype, { ptrType: this.pointeeType, ptr: rawPointer, smartPtrType: this, smartPtr: ptr }); } else { return makeClassHandle(this.registeredClass.instancePrototype, { ptrType: this, ptr }); } } var actualType = this.registeredClass.getActualType(rawPointer); var registeredPointerRecord = registeredPointers[actualType]; if (!registeredPointerRecord) { return makeDefaultHandle.call(this); } var toType; if (this.isConst) { toType = registeredPointerRecord.constPointerType; } else { toType = registeredPointerRecord.pointerType; } var dp = downcastPointer(rawPointer, this.registeredClass, toType.registeredClass); if (dp === null) { return makeDefaultHandle.call(this); } if (this.isSmartPointer) { return makeClassHandle(toType.registeredClass.instancePrototype, { ptrType: toType, ptr: dp, smartPtrType: this, smartPtr: ptr }); } else { return makeClassHandle(toType.registeredClass.instancePrototype, { ptrType: toType, ptr: dp }); } } function attachFinalizer(handle) { if (typeof FinalizationRegistry === "undefined") { attachFinalizer = (handle2) => handle2; return handle; } finalizationRegistry = new FinalizationRegistry((info) => { releaseClassHandle(info.$$); }); attachFinalizer = (handle2) => { var $$ = handle2.$$; var hasSmartPtr = !!$$.smartPtr; if (hasSmartPtr) { var info = { $$ }; finalizationRegistry.register(handle2, info, handle2); } return handle2; }; detachFinalizer = (handle2) => finalizationRegistry.unregister(handle2); return attachFinalizer(handle); } function ClassHandle_clone() { if (!this.$$.ptr) { throwInstanceAlreadyDeleted(this); } if (this.$$.preservePointerOnDelete) { this.$$.count.value += 1; return this; } else { var clone = attachFinalizer(Object.create(Object.getPrototypeOf(this), { $$: { value: shallowCopyInternalPointer(this.$$) } })); clone.$$.count.value += 1; clone.$$.deleteScheduled = false; return clone; } } function ClassHandle_delete() { if (!this.$$.ptr) { throwInstanceAlreadyDeleted(this); } if (this.$$.deleteScheduled && !this.$$.preservePointerOnDelete) { throwBindingError("Object already scheduled for deletion"); } detachFinalizer(this); releaseClassHandle(this.$$); if (!this.$$.preservePointerOnDelete) { this.$$.smartPtr = void 0; this.$$.ptr = void 0; } } function ClassHandle_isDeleted() { return !this.$$.ptr; } function ClassHandle_deleteLater() { if (!this.$$.ptr) { throwInstanceAlreadyDeleted(this); } if (this.$$.deleteScheduled && !this.$$.preservePointerOnDelete) { throwBindingError("Object already scheduled for deletion"); } deletionQueue.push(this); if (deletionQueue.length === 1 && delayFunction) { delayFunction(flushPendingDeletes); } this.$$.deleteScheduled = true; return this; } function init_ClassHandle() { ClassHandle.prototype["isAliasOf"] = ClassHandle_isAliasOf; ClassHandle.prototype["clone"] = ClassHandle_clone; ClassHandle.prototype["delete"] = ClassHandle_delete; ClassHandle.prototype["isDeleted"] = ClassHandle_isDeleted; ClassHandle.prototype["deleteLater"] = ClassHandle_deleteLater; } function ClassHandle() { } function ensureOverloadTable(proto, methodName, humanName) { if (proto[methodName].overloadTable === void 0) { var prevFunc = proto[methodName]; proto[methodName] = function() { if (!proto[methodName].overloadTable.hasOwnProperty(arguments.length)) { throwBindingError("Function '" + humanName + "' called with an invalid number of arguments (" + arguments.length + ") - expects one of (" + proto[methodName].overloadTable + ")!"); } return proto[methodName].overloadTable[arguments.length].apply(this, arguments); }; proto[methodName].overloadTable = []; proto[methodName].overloadTable[prevFunc.argCount] = prevFunc; } } function exposePublicSymbol(name, value, numArguments) { if (Module.hasOwnProperty(name)) { if (numArguments === void 0 || Module[name].overloadTable !== void 0 && Module[name].overloadTable[numArguments] !== void 0) { throwBindingError("Cannot register public name '" + name + "' twice"); } ensureOverloadTable(Module, name, name); if (Module.hasOwnProperty(numArguments)) { throwBindingError("Cannot register multiple overloads of a function with the same number of arguments (" + numArguments + ")!"); } Module[name].overloadTable[numArguments] = value; } else { Module[name] = value; if (numArguments !== void 0) { Module[name].numArguments = numArguments; } } } function RegisteredClass(name, constructor, instancePrototype, rawDestructor, baseClass, getActualType, upcast, downcast) { this.name = name; this.constructor = constructor; this.instancePrototype = instancePrototype; this.rawDestructor = rawDestructor; this.baseClass = baseClass; this.getActualType = getActualType; this.upcast = upcast; this.downcast = downcast; this.pureVirtualFunctions = []; } function upcastPointer(ptr, ptrClass, desiredClass) { while (ptrClass !== desiredClass) { if (!ptrClass.upcast) { throwBindingError("Expected null or instance of " + desiredClass.name + ", got an instance of " + ptrClass.name); } ptr = ptrClass.upcast(ptr); ptrClass = ptrClass.baseClass; } return ptr; } function constNoSmartPtrRawPointerToWireType(destructors, handle) { if (handle === null) { if (this.isReference) { throwBindingError("null is not a valid " + this.name); } return 0; } if (!handle.$$) { throwBindingError('Cannot pass "' + embindRepr(handle) + '" as a ' + this.name); } if (!handle.$$.ptr) { throwBindingError("Cannot pass deleted object as a pointer of type " + this.name); } var handleClass = handle.$$.ptrType.registeredClass; var ptr = upcastPointer(handle.$$.ptr, handleClass, this.registeredClass); return ptr; } function genericPointerToWireType(destructors, handle) { var ptr; if (handle === null) { if (this.isReference) { throwBindingError("null is not a valid " + this.name); } if (this.isSmartPointer) { ptr = this.rawConstructor(); if (destructors !== null) { destructors.push(this.rawDestructor, ptr); } return ptr; } else { return 0; } } if (!handle.$$) { throwBindingError('Cannot pass "' + embindRepr(handle) + '" as a ' + this.name); } if (!handle.$$.ptr) { throwBindingError("Cannot pass deleted object as a pointer of type " + this.name); } if (!this.isConst && handle.$$.ptrType.isConst) { throwBindingError("Cannot convert argument of type " + (handle.$$.smartPtrType ? handle.$$.smartPtrType.name : handle.$$.ptrType.name) + " to parameter type " + this.name); } var handleClass = handle.$$.ptrType.registeredClass; ptr = upcastPointer(handle.$$.ptr, handleClass, this.registeredClass); if (this.isSmartPointer) { if (handle.$$.smartPtr === void 0) { throwBindingError("Passing raw pointer to smart pointer is illegal"); } switch (this.sharingPolicy) { case 0: if (handle.$$.smartPtrType === this) { ptr = handle.$$.smartPtr; } else { throwBindingError("Cannot convert argument of type " + (handle.$$.smartPtrType ? handle.$$.smartPtrType.name : handle.$$.ptrType.name) + " to parameter type " + this.name); } break; case 1: ptr = handle.$$.smartPtr; break; case 2: if (handle.$$.smartPtrType === this) { ptr = handle.$$.smartPtr; } else { var clonedHandle = handle["clone"](); ptr = this.rawShare(ptr, Emval.toHandle(function() { clonedHandle["delete"](); })); if (destructors !== null) { destructors.push(this.rawDestructor, ptr); } } break; default: throwBindingError("Unsupporting sharing policy"); } } return ptr; } function nonConstNoSmartPtrRawPointerToWireType(destructors, handle) { if (handle === null) { if (this.isReference) { throwBindingError("null is not a valid " + this.name); } return 0; } if (!handle.$$) { throwBindingError('Cannot pass "' + embindRepr(handle) + '" as a ' + this.name); } if (!handle.$$.ptr) { throwBindingError("Cannot pass deleted object as a pointer of type " + this.name); } if (handle.$$.ptrType.isConst) { throwBindingError("Cannot convert argument of type " + handle.$$.ptrType.name + " to parameter type " + this.name); } var handleClass = handle.$$.ptrType.registeredClass; var ptr = upcastPointer(handle.$$.ptr, handleClass, this.registeredClass); return ptr; } function RegisteredPointer_getPointee(ptr) { if (this.rawGetPointee) { ptr = this.rawGetPointee(ptr); } return ptr; } function RegisteredPointer_destructor(ptr) { if (this.rawDestructor) { this.rawDestructor(ptr); } } function RegisteredPointer_deleteObject(handle) { if (handle !== null) { handle["delete"](); } } function init_RegisteredPointer() { RegisteredPointer.prototype.getPointee = RegisteredPointer_getPointee; RegisteredPointer.prototype.destructor = RegisteredPointer_destructor; RegisteredPointer.prototype["argPackAdvance"] = 8; RegisteredPointer.prototype["readValueFromPointer"] = simpleReadValueFromPointer; RegisteredPointer.prototype["deleteObject"] = RegisteredPointer_deleteObject; RegisteredPointer.prototype["fromWireType"] = RegisteredPointer_fromWireType; } function RegisteredPointer(name, registeredClass, isReference, isConst, isSmartPointer, pointeeType, sharingPolicy, rawGetPointee, rawConstructor, rawShare, rawDestructor) { this.name = name; this.registeredClass = registeredClass; this.isReference = isReference; this.isConst = isConst; this.isSmartPointer = isSmartPointer; this.pointeeType = pointeeType; this.sharingPolicy = sharingPolicy; this.rawGetPointee = rawGetPointee; this.rawConstructor = rawConstructor; this.rawShare = rawShare; this.rawDestructor = rawDestructor; if (!isSmartPointer && registeredClass.baseClass === void 0) { if (isConst) { this["toWireType"] = constNoSmartPtrRawPointerToWireType; this.destructorFunction = null; } else { this["toWireType"] = nonConstNoSmartPtrRawPointerToWireType; this.destructorFunction = null; } } else { this["toWireType"] = genericPointerToWireType; } } function replacePublicSymbol(name, value, numArguments) { if (!Module.hasOwnProperty(name)) { throwInternalError("Replacing nonexistant public symbol"); } if (Module[name].overloadTable !== void 0 && numArguments !== void 0) { Module[name].overloadTable[numArguments] = value; } else { Module[name] = value; Module[name].argCount = numArguments; } } function dynCallLegacy(sig, ptr, args) { var f = Module["dynCall_" + sig]; return args && args.length ? f.apply(null, [ptr].concat(args)) : f.call(null, ptr); } var wasmTableMirror = []; function getWasmTableEntry(funcPtr) { var func = wasmTableMirror[funcPtr]; if (!func) { if (funcPtr >= wasmTableMirror.length) wasmTableMirror.length = funcPtr + 1; wasmTableMirror[funcPtr] = func = wasmTable.get(funcPtr); } return func; } function dynCall(sig, ptr, args) { if (sig.includes("j")) { return dynCallLegacy(sig, ptr, args); } var rtn = getWasmTableEntry(ptr).apply(null, args); return rtn; } function getDynCaller(sig, ptr) { var argCache = []; return function() { argCache.length = 0; Object.assign(argCache, arguments); return dynCall(sig, ptr, argCache); }; } function embind__requireFunction(signature, rawFunction) { signature = readLatin1String(signature); function makeDynCaller() { if (signature.includes("j")) { return getDynCaller(signature, rawFunction); } return getWasmTableEntry(rawFunction); } var fp = makeDynCaller(); if (typeof fp != "function") { throwBindingError("unknown function pointer with signature " + signature + ": " + rawFunction); } return fp; } var UnboundTypeError = void 0; function getTypeName(type) { var ptr = ___getTypeName(type); var rv = readLatin1String(ptr); _free(ptr); return rv; } function throwUnboundTypeError(message, types) { var unboundTypes = []; var seen = {}; function visit(type) { if (seen[type]) { return; } if (registeredTypes[type]) { return; } if (typeDependencies[type]) { typeDependencies[type].forEach(visit); return; } unboundTypes.push(type); seen[type] = true; } types.forEach(visit); throw new UnboundTypeError(message + ": " + unboundTypes.map(getTypeName).join([", "])); } function __embind_register_class(rawType, rawPointerType, rawConstPointerType, baseClassRawType, getActualTypeSignature, getActualType, upcastSignature, upcast, downcastSignature, downcast, name, destructorSignature, rawDestructor) { name = readLatin1String(name); getActualType = embind__requireFunction(getActualTypeSignature, getActualType); if (upcast) { upcast = embind__requireFunction(upcastSignature, upcast); } if (downcast) { downcast = embind__requireFunction(downcastSignature, downcast); } rawDestructor = embind__requireFunction(destructorSignature, rawDestructor); var legalFunctionName = makeLegalFunctionName(name); exposePublicSymbol(legalFunctionName, function() { throwUnboundTypeError("Cannot construct " + name + " due to unbound types", [baseClassRawType]); }); whenDependentTypesAreResolved([rawType, rawPointerType, rawConstPointerType], baseClassRawType ? [baseClassRawType] : [], function(base) { base = base[0]; var baseClass; var basePrototype; if (baseClassRawType) { baseClass = base.registeredClass; basePrototype = baseClass.instancePrototype; } else { basePrototype = ClassHandle.prototype; } var constructor = createNamedFunction(legalFunctionName, function() { if (Object.getPrototypeOf(this) !== instancePrototype) { throw new BindingError("Use 'new' to construct " + name); } if (registeredClass.constructor_body === void 0) { throw new BindingError(name + " has no accessible constructor"); } var body = registeredClass.constructor_body[arguments.length]; if (body === void 0) { throw new BindingError("Tried to invoke ctor of " + name + " with invalid number of parameters (" + arguments.length + ") - expected (" + Object.keys(registeredClass.constructor_body).toString() + ") parameters instead!"); } return body.apply(this, arguments); }); var instancePrototype = Object.create(basePrototype, { constructor: { value: constructor } }); constructor.prototype = instancePrototype; var registeredClass = new RegisteredClass(name, constructor, instancePrototype, rawDestructor, baseClass, getActualType, upcast, downcast); var referenceConverter = new RegisteredPointer(name, registeredClass, true, false, false); var pointerConverter = new RegisteredPointer(name + "*", registeredClass, false, false, false); var constPointerConverter = new RegisteredPointer(name + " const*", registeredClass, false, true, false); registeredPointers[rawType] = { pointerType: pointerConverter, constPointerType: constPointerConverter }; replacePublicSymbol(legalFunctionName, constructor); return [referenceConverter, pointerConverter, constPointerConverter]; }); } function heap32VectorToArray(count, firstElement) { var array = []; for (var i = 0; i < count; i++) { array.push(HEAPU32[firstElement + i * 4 >>> 2]); } return array; } function new_(constructor, argumentList) { if (!(constructor instanceof Function)) { throw new TypeError("new_ called with constructor type " + typeof constructor + " which is not a function"); } var dummy = createNamedFunction(constructor.name || "unknownFunctionName", function() { }); dummy.prototype = constructor.prototype; var obj = new dummy(); var r = constructor.apply(obj, argumentList); return r instanceof Object ? r : obj; } function craftInvokerFunction(humanName, argTypes, classType, cppInvokerFunc, cppTargetFunc) { var argCount = argTypes.length; if (argCount < 2) { throwBindingError("argTypes array size mismatch! Must at least get return value and 'this' types!"); } var isClassMethodFunc = argTypes[1] !== null && classType !== null; var needsDestructorStack = false; for (var i = 1; i < argTypes.length; ++i) { if (argTypes[i] !== null && argTypes[i].destructorFunction === void 0) { needsDestructorStack = true; break; } } var returns = argTypes[0].name !== "void"; var argsList = ""; var argsListWired = ""; for (var i = 0; i < argCount - 2; ++i) { argsList += (i !== 0 ? ", " : "") + "arg" + i; argsListWired += (i !== 0 ? ", " : "") + "arg" + i + "Wired"; } var invokerFnBody = "return function " + makeLegalFunctionName(humanName) + "(" + argsList + ") {\nif (arguments.length !== " + (argCount - 2) + ") {\nthrowBindingError('function " + humanName + " called with ' + arguments.length + ' arguments, expected " + (argCount - 2) + " args!');\n}\n"; if (needsDestructorStack) { invokerFnBody += "var destructors = [];\n"; } var dtorStack = needsDestructorStack ? "destructors" : "null"; var args1 = ["throwBindingError", "invoker", "fn", "runDestructors", "retType", "classParam"]; var args2 = [throwBindingError, cppInvokerFunc, cppTargetFunc, runDestructors, argTypes[0], argTypes[1]]; if (isClassMethodFunc) { invokerFnBody += "var thisWired = classParam.toWireType(" + dtorStack + ", this);\n"; } for (var i = 0; i < argCount - 2; ++i) { invokerFnBody += "var arg" + i + "Wired = argType" + i + ".toWireType(" + dtorStack + ", arg" + i + "); // " + argTypes[i + 2].name + "\n"; args1.push("argType" + i); args2.push(argTypes[i + 2]); } if (isClassMethodFunc) { argsListWired = "thisWired" + (argsListWired.length > 0 ? ", " : "") + argsListWired; } invokerFnBody += (returns ? "var rv = " : "") + "invoker(fn" + (argsListWired.length > 0 ? ", " : "") + argsListWired + ");\n"; if (needsDestructorStack) { invokerFnBody += "runDestructors(destructors);\n"; } else { for (var i = isClassMethodFunc ? 1 : 2; i < argTypes.length; ++i) { var paramName = i === 1 ? "thisWired" : "arg" + (i - 2) + "Wired"; if (argTypes[i].destructorFunction !== null) { invokerFnBody += paramName + "_dtor(" + paramName + "); // " + argTypes[i].name + "\n"; args1.push(paramName + "_dtor"); args2.push(argTypes[i].destructorFunction); } } } if (returns) { invokerFnBody += "var ret = retType.fromWireType(rv);\nreturn ret;\n"; } invokerFnBody += "}\n"; args1.push(invokerFnBody); var invokerFunction = new_(Function, args1).apply(null, args2); return invokerFunction; } function __embind_register_class_constructor(rawClassType, argCount, rawArgTypesAddr, invokerSignature, invoker, rawConstructor) { assert(argCount > 0); var rawArgTypes = heap32VectorToArray(argCount, rawArgTypesAddr); invoker = embind__requireFunction(invokerSignature, invoker); whenDependentTypesAreResolved([], [rawClassType], function(classType) { classType = classType[0]; var humanName = "constructor " + classType.name; if (classType.registeredClass.constructor_body === void 0) { classType.registeredClass.constructor_body = []; } if (classType.registeredClass.constructor_body[argCount - 1] !== void 0) { throw new BindingError("Cannot register multiple constructors with identical number of parameters (" + (argCount - 1) + ") for class '" + classType.name + "'! Overload resolution is currently only performed using the parameter count, not actual type info!"); } classType.registeredClass.constructor_body[argCount - 1] = () => { throwUnboundTypeError("Cannot construct " + classType.name + " due to unbound types", rawArgTypes); }; whenDependentTypesAreResolved([], rawArgTypes, function(argTypes) { argTypes.splice(1, 0, null); classType.registeredClass.constructor_body[argCount - 1] = craftInvokerFunction(humanName, argTypes, null, invoker, rawConstructor); return []; }); return []; }); } function __embind_register_class_function(rawClassType, methodName, argCount, rawArgTypesAddr, invokerSignature, rawInvoker, context, isPureVirtual) { var rawArgTypes = heap32VectorToArray(argCount, rawArgTypesAddr); methodName = readLatin1String(methodName); rawInvoker = embind__requireFunction(invokerSignature, rawInvoker); whenDependentTypesAreResolved([], [rawClassType], function(classType) { classType = classType[0]; var humanName = classType.name + "." + methodName; if (methodName.startsWith("@@")) { methodName = Symbol[methodName.substring(2)]; } if (isPureVirtual) { classType.registeredClass.pureVirtualFunctions.push(methodName); } function unboundTypesHandler() { throwUnboundTypeError("Cannot call " + humanName + " due to unbound types", rawArgTypes); } var proto = classType.registeredClass.instancePrototype; var method = proto[methodName]; if (method === void 0 || method.overloadTable === void 0 && method.className !== classType.name && method.argCount === argCount - 2) { unboundTypesHandler.argCount = argCount - 2; unboundTypesHandler.className = classType.name; proto[methodName] = unboundTypesHandler; } else { ensureOverloadTable(proto, methodName, humanName); proto[methodName].overloadTable[argCount - 2] = unboundTypesHandler; } whenDependentTypesAreResolved([], rawArgTypes, function(argTypes) { var memberFunction = craftInvokerFunction(humanName, argTypes, classType, rawInvoker, context); if (proto[methodName].overloadTable === void 0) { memberFunction.argCount = argCount - 2; proto[methodName] = memberFunction; } else { proto[methodName].overloadTable[argCount - 2] = memberFunction; } return []; }); return []; }); } var emval_free_list = []; var emval_handle_array = [{}, { value: void 0 }, { value: null }, { value: true }, { value: false }]; function __emval_decref(handle) { if (handle > 4 && --emval_handle_array[handle].refcount === 0) { emval_handle_array[handle] = void 0; emval_free_list.push(handle); } } function count_emval_handles() { var count = 0; for (var i = 5; i < emval_handle_array.length; ++i) { if (emval_handle_array[i] !== void 0) { ++count; } } return count; } function get_first_emval() { for (var i = 5; i < emval_handle_array.length; ++i) { if (emval_handle_array[i] !== void 0) { return emval_handle_array[i]; } } return null; } function init_emval() { Module["count_emval_handles"] = count_emval_handles; Module["get_first_emval"] = get_first_emval; } var Emval = { toValue: (handle) => { if (!handle) { throwBindingError("Cannot use deleted val. handle = " + handle); } return emval_handle_array[handle].value; }, toHandle: (value) => { switch (value) { case void 0: return 1; case null: return 2; case true: return 3; case false: return 4; default: { var handle = emval_free_list.length ? emval_free_list.pop() : emval_handle_array.length; emval_handle_array[handle] = { refcount: 1, value }; return handle; } } } }; function __embind_register_emval(rawType, name) { name = readLatin1String(name); registerType(rawType, { name, "fromWireType": function(handle) { var rv = Emval.toValue(handle); __emval_decref(handle); return rv; }, "toWireType": function(destructors, value) { return Emval.toHandle(value); }, "argPackAdvance": 8, "readValueFromPointer": simpleReadValueFromPointer, destructorFunction: null }); } function enumReadValueFromPointer(name, shift, signed) { switch (shift) { case 0: return function(pointer) { var heap = signed ? HEAP8 : HEAPU8; return this["fromWireType"](heap[pointer >>> 0]); }; case 1: return function(pointer) { var heap = signed ? HEAP16 : HEAPU16; return this["fromWireType"](heap[pointer >>> 1]); }; case 2: return function(pointer) { var heap = signed ? HEAP32 : HEAPU32; return this["fromWireType"](heap[pointer >>> 2]); }; default: throw new TypeError("Unknown integer type: " + name); } } function __embind_register_enum(rawType, name, size, isSigned) { var shift = getShiftFromSize(size); name = readLatin1String(name); function ctor() { } ctor.values = {}; registerType(rawType, { name, constructor: ctor, "fromWireType": function(c) { return this.constructor.values[c]; }, "toWireType": function(destructors, c) { return c.value; }, "argPackAdvance": 8, "readValueFromPointer": enumReadValueFromPointer(name, shift, isSigned), destructorFunction: null }); exposePublicSymbol(name, ctor); } function requireRegisteredType(rawType, humanName) { var impl = registeredTypes[rawType]; if (impl === void 0) { throwBindingError(humanName + " has unknown type " + getTypeName(rawType)); } return impl; } function __embind_register_enum_value(rawEnumType, name, enumValue) { var enumType = requireRegisteredType(rawEnumType, "enum"); name = readLatin1String(name); var Enum = enumType.constructor; var Value = Object.create(enumType.constructor.prototype, { value: { value: enumValue }, constructor: { value: createNamedFunction(enumType.name + "_" + name, function() { }) } }); Enum.values[enumValue] = Value; Enum[name] = Value; } function embindRepr(v) { if (v === null) { return "null"; } var t = typeof v; if (t === "object" || t === "array" || t === "function") { return v.toString(); } else { return "" + v; } } function floatReadValueFromPointer(name, shift) { switch (shift) { case 2: return function(pointer) { return this["fromWireType"](HEAPF32[pointer >>> 2]); }; case 3: return function(pointer) { return this["fromWireType"](HEAPF64[pointer >>> 3]); }; default: throw new TypeError("Unknown float type: " + name); } } function __embind_register_float(rawType, name, size) { var shift = getShiftFromSize(size); name = readLatin1String(name); registerType(rawType, { name, "fromWireType": function(value) { return value; }, "toWireType": function(destructors, value) { return value; }, "argPackAdvance": 8, "readValueFromPointer": floatReadValueFromPointer(name, shift), destructorFunction: null }); } function __embind_register_function(name, argCount, rawArgTypesAddr, signature, rawInvoker, fn) { var argTypes = heap32VectorToArray(argCount, rawArgTypesAddr); name = readLatin1String(name); rawInvoker = embind__requireFunction(signature, rawInvoker); exposePublicSymbol(name, function() { throwUnboundTypeError("Cannot call " + name + " due to unbound types", argTypes); }, argCount - 1); whenDependentTypesAreResolved([], argTypes, function(argTypes2) { var invokerArgsArray = [argTypes2[0], null].concat(argTypes2.slice(1)); replacePublicSymbol(name, craftInvokerFunction(name, invokerArgsArray, null, rawInvoker, fn), argCount - 1); return []; }); } function integerReadValueFromPointer(name, shift, signed) { switch (shift) { case 0: return signed ? function readS8FromPointer(pointer) { return HEAP8[pointer >>> 0]; } : function readU8FromPointer(pointer) { return HEAPU8[pointer >>> 0]; }; case 1: return signed ? function readS16FromPointer(pointer) { return HEAP16[pointer >>> 1]; } : function readU16FromPointer(pointer) { return HEAPU16[pointer >>> 1]; }; case 2: return signed ? function readS32FromPointer(pointer) { return HEAP32[pointer >>> 2]; } : function readU32FromPointer(pointer) { return HEAPU32[pointer >>> 2]; }; default: throw new TypeError("Unknown integer type: " + name); } } function __embind_register_integer(primitiveType, name, size, minRange, maxRange) { name = readLatin1String(name); var shift = getShiftFromSize(size); var fromWireType = (value) => value; if (minRange === 0) { var bitshift = 32 - 8 * size; fromWireType = (value) => value << bitshift >>> bitshift; } var isUnsignedType = name.includes("unsigned"); var checkAssertions = (value, toTypeName) => { }; var toWireType; if (isUnsignedType) { toWireType = function(destructors, value) { checkAssertions(value, this.name); return value >>> 0; }; } else { toWireType = function(destructors, value) { checkAssertions(value, this.name); return value; }; } registerType(primitiveType, { name, "fromWireType": fromWireType, "toWireType": toWireType, "argPackAdvance": 8, "readValueFromPointer": integerReadValueFromPointer(name, shift, minRange !== 0), destructorFunction: null }); } function __embind_register_memory_view(rawType, dataTypeIndex, name) { var typeMapping = [Int8Array, Uint8Array, Int16Array, Uint16Array, Int32Array, Uint32Array, Float32Array, Float64Array]; var TA = typeMapping[dataTypeIndex]; function decodeMemoryView(handle) { handle = handle >> 2; var heap = HEAPU32; var size = heap[handle >>> 0]; var data = heap[handle + 1 >>> 0]; return new TA(heap.buffer, data, size); } name = readLatin1String(name); registerType(rawType, { name, "fromWireType": decodeMemoryView, "argPackAdvance": 8, "readValueFromPointer": decodeMemoryView }, { ignoreDuplicateRegistrations: true }); } function __embind_register_std_string(rawType, name) { name = readLatin1String(name); var stdStringIsUTF8 = name === "std::string"; registerType(rawType, { name, "fromWireType": function(value) { var length = HEAPU32[value >>> 2]; var payload = value + 4; var str; if (stdStringIsUTF8) { var decodeStartPtr = payload; for (var i = 0; i <= length; ++i) { var currentBytePtr = payload + i; if (i == length || HEAPU8[currentBytePtr >>> 0] == 0) { var maxRead = currentBytePtr - decodeStartPtr; var stringSegment = UTF8ToString(decodeStartPtr, maxRead); if (str === void 0) { str = stringSegment; } else { str += String.fromCharCode(0); str += stringSegment; } decodeStartPtr = currentBytePtr + 1; } } } else { var a = new Array(length); for (var i = 0; i < length; ++i) { a[i] = String.fromCharCode(HEAPU8[payload + i >>> 0]); } str = a.join(""); } _free(value); return str; }, "toWireType": function(destructors, value) { if (value instanceof ArrayBuffer) { value = new Uint8Array(value); } var length; var valueIsOfTypeString = typeof value == "string"; if (!(valueIsOfTypeString || value instanceof Uint8Array || value instanceof Uint8ClampedArray || value instanceof Int8Array)) { throwBindingError("Cannot pass non-string to std::string"); } if (stdStringIsUTF8 && valueIsOfTypeString) { length = lengthBytesUTF8(value); } else { length = value.length; } var base = _malloc(4 + length + 1); var ptr = base + 4; ptr >>>= 0; HEAPU32[base >>> 2] = length; if (stdStringIsUTF8 && valueIsOfTypeString) { stringToUTF8(value, ptr, length + 1); } else { if (valueIsOfTypeString) { for (var i = 0; i < length; ++i) { var charCode = value.charCodeAt(i); if (charCode > 255) { _free(ptr); throwBindingError("String has UTF-16 code units that do not fit in 8 bits"); } HEAPU8[ptr + i >>> 0] = charCode; } } else { for (var i = 0; i < length; ++i) { HEAPU8[ptr + i >>> 0] = value[i]; } } } if (destructors !== null) { destructors.push(_free, base); } return base; }, "argPackAdvance": 8, "readValueFromPointer": simpleReadValueFromPointer, destructorFunction: function(ptr) { _free(ptr); } }); } var UTF16Decoder = typeof TextDecoder != "undefined" ? new TextDecoder("utf-16le") : void 0; function UTF16ToString(ptr, maxBytesToRead) { var endPtr = ptr; var idx = endPtr >> 1; var maxIdx = idx + maxBytesToRead / 2; while (!(idx >= maxIdx) && HEAPU16[idx >>> 0]) ++idx; endPtr = idx << 1; if (endPtr - ptr > 32 && UTF16Decoder) return UTF16Decoder.decode(HEAPU8.subarray(ptr >>> 0, endPtr >>> 0)); var str = ""; for (var i = 0; !(i >= maxBytesToRead / 2); ++i) { var codeUnit = HEAP16[ptr + i * 2 >>> 1]; if (codeUnit == 0) break; str += String.fromCharCode(codeUnit); } return str; } function stringToUTF16(str, outPtr, maxBytesToWrite) { if (maxBytesToWrite === void 0) { maxBytesToWrite = 2147483647; } if (maxBytesToWrite < 2) return 0; maxBytesToWrite -= 2; var startPtr = outPtr; var numCharsToWrite = maxBytesToWrite < str.length * 2 ? maxBytesToWrite / 2 : str.length; for (var i = 0; i < numCharsToWrite; ++i) { var codeUnit = str.charCodeAt(i); HEAP16[outPtr >>> 1] = codeUnit; outPtr += 2; } HEAP16[outPtr >>> 1] = 0; return outPtr - startPtr; } function lengthBytesUTF16(str) { return str.length * 2; } function UTF32ToString(ptr, maxBytesToRead) { var i = 0; var str = ""; while (!(i >= maxBytesToRead / 4)) { var utf32 = HEAP32[ptr + i * 4 >>> 2]; if (utf32 == 0) break; ++i; if (utf32 >= 65536) { var ch = utf32 - 65536; str += String.fromCharCode(55296 | ch >> 10, 56320 | ch & 1023); } else { str += String.fromCharCode(utf32); } } return str; } function stringToUTF32(str, outPtr, maxBytesToWrite) { outPtr >>>= 0; if (maxBytesToWrite === void 0) { maxBytesToWrite = 2147483647; } if (maxBytesToWrite < 4) return 0; var startPtr = outPtr; var endPtr = startPtr + maxBytesToWrite - 4; for (var i = 0; i < str.length; ++i) { var codeUnit = str.charCodeAt(i); if (codeUnit >= 55296 && codeUnit <= 57343) { var trailSurrogate = str.charCodeAt(++i); codeUnit = 65536 + ((codeUnit & 1023) << 10) | trailSurrogate & 1023; } HEAP32[outPtr >>> 2] = codeUnit; outPtr += 4; if (outPtr + 4 > endPtr) break; } HEAP32[outPtr >>> 2] = 0; return outPtr - startPtr; } function lengthBytesUTF32(str) { var len = 0; for (var i = 0; i < str.length; ++i) { var codeUnit = str.charCodeAt(i); if (codeUnit >= 55296 && codeUnit <= 57343) ++i; len += 4; } return len; } function __embind_register_std_wstring(rawType, charSize, name) { name = readLatin1String(name); var decodeString, encodeString, getHeap, lengthBytesUTF, shift; if (charSize === 2) { decodeString = UTF16ToString; encodeString = stringToUTF16; lengthBytesUTF = lengthBytesUTF16; getHeap = () => HEAPU16; shift = 1; } else if (charSize === 4) { decodeString = UTF32ToString; encodeString = stringToUTF32; lengthBytesUTF = lengthBytesUTF32; getHeap = () => HEAPU32; shift = 2; } registerType(rawType, { name, "fromWireType": function(value) { var length = HEAPU32[value >>> 2]; var HEAP = getHeap(); var str; var decodeStartPtr = value + 4; for (var i = 0; i <= length; ++i) { var currentBytePtr = value + 4 + i * charSize; if (i == length || HEAP[currentBytePtr >>> shift] == 0) { var maxReadBytes = currentBytePtr - decodeStartPtr; var stringSegment = decodeString(decodeStartPtr, maxReadBytes); if (str === void 0) { str = stringSegment; } else { str += String.fromCharCode(0); str += stringSegment; } decodeStartPtr = currentBytePtr + charSize; } } _free(value); return str; }, "toWireType": function(destructors, value) { if (!(typeof value == "string")) { throwBindingError("Cannot pass non-string to C++ string type " + name); } var length = lengthBytesUTF(value); var ptr = _malloc(4 + length + charSize); ptr >>>= 0; HEAPU32[ptr >>> 2] = length >> shift; encodeString(value, ptr + 4, length + charSize); if (destructors !== null) { destructors.push(_free, ptr); } return ptr; }, "argPackAdvance": 8, "readValueFromPointer": simpleReadValueFromPointer, destructorFunction: function(ptr) { _free(ptr); } }); } function __embind_register_value_array(rawType, name, constructorSignature, rawConstructor, destructorSignature, rawDestructor) { tupleRegistrations[rawType] = { name: readLatin1String(name), rawConstructor: embind__requireFunction(constructorSignature, rawConstructor), rawDestructor: embind__requireFunction(destructorSignature, rawDestructor), elements: [] }; } function __embind_register_value_array_element(rawTupleType, getterReturnType, getterSignature, getter, getterContext, setterArgumentType, setterSignature, setter, setterContext) { tupleRegistrations[rawTupleType].elements.push({ getterReturnType, getter: embind__requireFunction(getterSignature, getter), getterContext, setterArgumentType, setter: embind__requireFunction(setterSignature, setter), setterContext }); } function __embind_register_value_object(rawType, name, constructorSignature, rawConstructor, destructorSignature, rawDestructor) { structRegistrations[rawType] = { name: readLatin1String(name), rawConstructor: embind__requireFunction(constructorSignature, rawConstructor), rawDestructor: embind__requireFunction(destructorSignature, rawDestructor), fields: [] }; } function __embind_register_value_object_field(structType, fieldName, getterReturnType, getterSignature, getter, getterContext, setterArgumentType, setterSignature, setter, setterContext) { structRegistrations[structType].fields.push({ fieldName: readLatin1String(fieldName), getterReturnType, getter: embind__requireFunction(getterSignature, getter), getterContext, setterArgumentType, setter: embind__requireFunction(setterSignature, setter), setterContext }); } function __embind_register_void(rawType, name) { name = readLatin1String(name); registerType(rawType, { isVoid: true, name, "argPackAdvance": 0, "fromWireType": function() { return void 0; }, "toWireType": function(destructors, o) { return void 0; } }); } function __emval_as(handle, returnType, destructorsRef) { handle = Emval.toValue(handle); returnType = requireRegisteredType(returnType, "emval::as"); var destructors = []; var rd = Emval.toHandle(destructors); HEAPU32[destructorsRef >>> 2] = rd; return returnType["toWireType"](destructors, handle); } function emval_lookupTypes(argCount, argTypes) { var a = new Array(argCount); for (var i = 0; i < argCount; ++i) { a[i] = requireRegisteredType(HEAPU32[argTypes + i * 4 >>> 2], "parameter " + i); } return a; } function __emval_call(handle, argCount, argTypes, argv) { handle = Emval.toValue(handle); var types = emval_lookupTypes(argCount, argTypes); var args = new Array(argCount); for (var i = 0; i < argCount; ++i) { var type = types[i]; args[i] = type["readValueFromPointer"](argv); argv += type["argPackAdvance"]; } var rv = handle.apply(void 0, args); return Emval.toHandle(rv); } var emval_symbols = {}; function getStringOrSymbol(address) { var symbol = emval_symbols[address]; if (symbol === void 0) { return readLatin1String(address); } return symbol; } function emval_get_global() { if (typeof globalThis == "object") { return globalThis; } return function() { return Function; }()("return this")(); } function __emval_get_global(name) { if (name === 0) { return Emval.toHandle(emval_get_global()); } else { name = getStringOrSymbol(name); return Emval.toHandle(emval_get_global()[name]); } } function __emval_get_property(handle, key) { handle = Emval.toValue(handle); key = Emval.toValue(key); return Emval.toHandle(handle[key]); } function __emval_incref(handle) { if (handle > 4) { emval_handle_array[handle].refcount += 1; } } function __emval_instanceof(object, constructor) { object = Emval.toValue(object); constructor = Emval.toValue(constructor); return object instanceof constructor; } function __emval_is_number(handle) { handle = Emval.toValue(handle); return typeof handle == "number"; } function __emval_new_array() { return Emval.toHandle([]); } function __emval_new_cstring(v) { return Emval.toHandle(getStringOrSymbol(v)); } function __emval_new_object() { return Emval.toHandle({}); } function __emval_run_destructors(handle) { var destructors = Emval.toValue(handle); runDestructors(destructors); __emval_decref(handle); } function __emval_set_property(handle, key, value) { handle = Emval.toValue(handle); key = Emval.toValue(key); value = Emval.toValue(value); handle[key] = value; } function __emval_take_value(type, arg) { type = requireRegisteredType(type, "_emval_take_value"); var v = type["readValueFromPointer"](arg); return Emval.toHandle(v); } function _abort() { abort(""); } function _emscripten_memcpy_big(dest, src, num) { HEAPU8.copyWithin(dest >>> 0, src >>> 0, src + num >>> 0); } function getHeapMax() { return 4294901760; } function emscripten_realloc_buffer(size) { var b = wasmMemory.buffer; try { wasmMemory.grow(size - b.byteLength + 65535 >>> 16); updateMemoryViews(); return 1; } catch (e) { } } function _emscripten_resize_heap(requestedSize) { var oldSize = HEAPU8.length; requestedSize = requestedSize >>> 0; var maxHeapSize = getHeapMax(); if (requestedSize > maxHeapSize) { return false; } let alignUp = (x, multiple) => x + (multiple - x % multiple) % multiple; for (var cutDown = 1; cutDown <= 4; cutDown *= 2) { var overGrownHeapSize = oldSize * (1 + 0.2 / cutDown); overGrownHeapSize = Math.min(overGrownHeapSize, requestedSize + 100663296); var newSize = Math.min(maxHeapSize, alignUp(Math.max(requestedSize, overGrownHeapSize), 65536)); var replacement = emscripten_realloc_buffer(newSize); if (replacement) { return true; } } return false; } var ENV = {}; function getExecutableName() { return thisProgram || "./this.program"; } function getEnvStrings() { if (!getEnvStrings.strings) { var lang = (typeof navigator == "object" && navigator.languages && navigator.languages[0] || "C").replace("-", "_") + ".UTF-8"; var env = { "USER": "web_user", "LOGNAME": "web_user", "PATH": "/", "PWD": "/", "HOME": "/home/web_user", "LANG": lang, "_": getExecutableName() }; for (var x in ENV) { if (ENV[x] === void 0) delete env[x]; else env[x] = ENV[x]; } var strings = []; for (var x in env) { strings.push(x + "=" + env[x]); } getEnvStrings.strings = strings; } return getEnvStrings.strings; } function writeAsciiToMemory(str, buffer, dontAddNull) { for (var i = 0; i < str.length; ++i) { HEAP8[buffer++ >>> 0] = str.charCodeAt(i); } if (!dontAddNull) HEAP8[buffer >>> 0] = 0; } function _environ_get(__environ, environ_buf) { var bufSize = 0; getEnvStrings().forEach(function(string, i) { var ptr = environ_buf + bufSize; HEAPU32[__environ + i * 4 >>> 2] = ptr; writeAsciiToMemory(string, ptr); bufSize += string.length + 1; }); return 0; } function _environ_sizes_get(penviron_count, penviron_buf_size) { var strings = getEnvStrings(); HEAPU32[penviron_count >>> 2] = strings.length; var bufSize = 0; strings.forEach(function(string) { bufSize += string.length + 1; }); HEAPU32[penviron_buf_size >>> 2] = bufSize; return 0; } function _fd_close(fd) { try { var stream = SYSCALLS.getStreamFromFD(fd); FS.close(stream); return 0; } catch (e) { if (typeof FS == "undefined" || !(e instanceof FS.ErrnoError)) throw e; return e.errno; } } function doReadv(stream, iov, iovcnt, offset) { var ret = 0; for (var i = 0; i < iovcnt; i++) { var ptr = HEAPU32[iov >>> 2]; var len = HEAPU32[iov + 4 >>> 2]; iov += 8; var curr = FS.read(stream, HEAP8, ptr, len, offset); if (curr < 0) return -1; ret += curr; if (curr < len) break; if (typeof offset !== "undefined") { offset += curr; } } return ret; } function _fd_read(fd, iov, iovcnt, pnum) { try { var stream = SYSCALLS.getStreamFromFD(fd); var num = doReadv(stream, iov, iovcnt); HEAPU32[pnum >>> 2] = num; return 0; } catch (e) { if (typeof FS == "undefined" || !(e instanceof FS.ErrnoError)) throw e; return e.errno; } } function convertI32PairToI53Checked(lo, hi) { return hi + 2097152 >>> 0 < 4194305 - !!lo ? (lo >>> 0) + hi * 4294967296 : NaN; } function _fd_seek(fd, offset_low, offset_high, whence, newOffset) { try { var offset = convertI32PairToI53Checked(offset_low, offset_high); if (isNaN(offset)) return 61; var stream = SYSCALLS.getStreamFromFD(fd); FS.llseek(stream, offset, whence); tempI64 = [stream.position >>> 0, (tempDouble = stream.position, +Math.abs(tempDouble) >= 1 ? tempDouble > 0 ? (Math.min(+Math.floor(tempDouble / 4294967296), 4294967295) | 0) >>> 0 : ~~+Math.ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>> 0 : 0)], HEAP32[newOffset >>> 2] = tempI64[0], HEAP32[newOffset + 4 >>> 2] = tempI64[1]; if (stream.getdents && offset === 0 && whence === 0) stream.getdents = null; return 0; } catch (e) { if (typeof FS == "undefined" || !(e instanceof FS.ErrnoError)) throw e; return e.errno; } } function doWritev(stream, iov, iovcnt, offset) { var ret = 0; for (var i = 0; i < iovcnt; i++) { var ptr = HEAPU32[iov >>> 2]; var len = HEAPU32[iov + 4 >>> 2]; iov += 8; var curr = FS.write(stream, HEAP8, ptr, len, offset); if (curr < 0) return -1; ret += curr; if (typeof offset !== "undefined") { offset += curr; } } return ret; } function _fd_write(fd, iov, iovcnt, pnum) { try { var stream = SYSCALLS.getStreamFromFD(fd); var num = doWritev(stream, iov, iovcnt); HEAPU32[pnum >>> 2] = num; return 0; } catch (e) { if (typeof FS == "undefined" || !(e instanceof FS.ErrnoError)) throw e; return e.errno; } } function __isLeapYear(year) { return year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0); } function __arraySum(array, index) { var sum = 0; for (var i = 0; i <= index; sum += array[i++]) { } return sum; } var __MONTH_DAYS_LEAP = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]; var __MONTH_DAYS_REGULAR = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]; function __addDays(date, days) { var newDate = new Date(date.getTime()); while (days > 0) { var leap = __isLeapYear(newDate.getFullYear()); var currentMonth = newDate.getMonth(); var daysInCurrentMonth = (leap ? __MONTH_DAYS_LEAP : __MONTH_DAYS_REGULAR)[currentMonth]; if (days > daysInCurrentMonth - newDate.getDate()) { days -= daysInCurrentMonth - newDate.getDate() + 1; newDate.setDate(1); if (currentMonth < 11) { newDate.setMonth(currentMonth + 1); } else { newDate.setMonth(0); newDate.setFullYear(newDate.getFullYear() + 1); } } else { newDate.setDate(newDate.getDate() + days); return newDate; } } return newDate; } function writeArrayToMemory(array, buffer) { HEAP8.set(array, buffer >>> 0); } function _strftime(s, maxsize, format, tm) { var tm_zone = HEAP32[tm + 40 >>> 2]; var date = { tm_sec: HEAP32[tm >>> 2], tm_min: HEAP32[tm + 4 >>> 2], tm_hour: HEAP32[tm + 8 >>> 2], tm_mday: HEAP32[tm + 12 >>> 2], tm_mon: HEAP32[tm + 16 >>> 2], tm_year: HEAP32[tm + 20 >>> 2], tm_wday: HEAP32[tm + 24 >>> 2], tm_yday: HEAP32[tm + 28 >>> 2], tm_isdst: HEAP32[tm + 32 >>> 2], tm_gmtoff: HEAP32[tm + 36 >>> 2], tm_zone: tm_zone ? UTF8ToString(tm_zone) : "" }; var pattern = UTF8ToString(format); var EXPANSION_RULES_1 = { "%c": "%a %b %d %H:%M:%S %Y", "%D": "%m/%d/%y", "%F": "%Y-%m-%d", "%h": "%b", "%r": "%I:%M:%S %p", "%R": "%H:%M", "%T": "%H:%M:%S", "%x": "%m/%d/%y", "%X": "%H:%M:%S", "%Ec": "%c", "%EC": "%C", "%Ex": "%m/%d/%y", "%EX": "%H:%M:%S", "%Ey": "%y", "%EY": "%Y", "%Od": "%d", "%Oe": "%e", "%OH": "%H", "%OI": "%I", "%Om": "%m", "%OM": "%M", "%OS": "%S", "%Ou": "%u", "%OU": "%U", "%OV": "%V", "%Ow": "%w", "%OW": "%W", "%Oy": "%y" }; for (var rule in EXPANSION_RULES_1) { pattern = pattern.replace(new RegExp(rule, "g"), EXPANSION_RULES_1[rule]); } var WEEKDAYS = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]; var MONTHS = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"]; function leadingSomething(value, digits, character) { var str = typeof value == "number" ? value.toString() : value || ""; while (str.length < digits) { str = character[0] + str; } return str; } function leadingNulls(value, digits) { return leadingSomething(value, digits, "0"); } function compareByDay(date1, date2) { function sgn(value) { return value < 0 ? -1 : value > 0 ? 1 : 0; } var compare; if ((compare = sgn(date1.getFullYear() - date2.getFullYear())) === 0) { if ((compare = sgn(date1.getMonth() - date2.getMonth())) === 0) { compare = sgn(date1.getDate() - date2.getDate()); } } return compare; } function getFirstWeekStartDate(janFourth) { switch (janFourth.getDay()) { case 0: return new Date(janFourth.getFullYear() - 1, 11, 29); case 1: return janFourth; case 2: return new Date(janFourth.getFullYear(), 0, 3); case 3: return new Date(janFourth.getFullYear(), 0, 2); case 4: return new Date(janFourth.getFullYear(), 0, 1); case 5: return new Date(janFourth.getFullYear() - 1, 11, 31); case 6: return new Date(janFourth.getFullYear() - 1, 11, 30); } } function getWeekBasedYear(date2) { var thisDate = __addDays(new Date(date2.tm_year + 1900, 0, 1), date2.tm_yday); var janFourthThisYear = new Date(thisDate.getFullYear(), 0, 4); var janFourthNextYear = new Date(thisDate.getFullYear() + 1, 0, 4); var firstWeekStartThisYear = getFirstWeekStartDate(janFourthThisYear); var firstWeekStartNextYear = getFirstWeekStartDate(janFourthNextYear); if (compareByDay(firstWeekStartThisYear, thisDate) <= 0) { if (compareByDay(firstWeekStartNextYear, thisDate) <= 0) { return thisDate.getFullYear() + 1; } return thisDate.getFullYear(); } return thisDate.getFullYear() - 1; } var EXPANSION_RULES_2 = { "%a": function(date2) { return WEEKDAYS[date2.tm_wday].substring(0, 3); }, "%A": function(date2) { return WEEKDAYS[date2.tm_wday]; }, "%b": function(date2) { return MONTHS[date2.tm_mon].substring(0, 3); }, "%B": function(date2) { return MONTHS[date2.tm_mon]; }, "%C": function(date2) { var year = date2.tm_year + 1900; return leadingNulls(year / 100 | 0, 2); }, "%d": function(date2) { return leadingNulls(date2.tm_mday, 2); }, "%e": function(date2) { return leadingSomething(date2.tm_mday, 2, " "); }, "%g": function(date2) { return getWeekBasedYear(date2).toString().substring(2); }, "%G": function(date2) { return getWeekBasedYear(date2); }, "%H": function(date2) { return leadingNulls(date2.tm_hour, 2); }, "%I": function(date2) { var twelveHour = date2.tm_hour; if (twelveHour == 0) twelveHour = 12; else if (twelveHour > 12) twelveHour -= 12; return leadingNulls(twelveHour, 2); }, "%j": function(date2) { return leadingNulls(date2.tm_mday + __arraySum(__isLeapYear(date2.tm_year + 1900) ? __MONTH_DAYS_LEAP : __MONTH_DAYS_REGULAR, date2.tm_mon - 1), 3); }, "%m": function(date2) { return leadingNulls(date2.tm_mon + 1, 2); }, "%M": function(date2) { return leadingNulls(date2.tm_min, 2); }, "%n": function() { return "\n"; }, "%p": function(date2) { if (date2.tm_hour >= 0 && date2.tm_hour < 12) { return "AM"; } return "PM"; }, "%S": function(date2) { return leadingNulls(date2.tm_sec, 2); }, "%t": function() { return " "; }, "%u": function(date2) { return date2.tm_wday || 7; }, "%U": function(date2) { var days = date2.tm_yday + 7 - date2.tm_wday; return leadingNulls(Math.floor(days / 7), 2); }, "%V": function(date2) { var val = Math.floor((date2.tm_yday + 7 - (date2.tm_wday + 6) % 7) / 7); if ((date2.tm_wday + 371 - date2.tm_yday - 2) % 7 <= 2) { val++; } if (!val) { val = 52; var dec31 = (date2.tm_wday + 7 - date2.tm_yday - 1) % 7; if (dec31 == 4 || dec31 == 5 && __isLeapYear(date2.tm_year % 400 - 1)) { val++; } } else if (val == 53) { var jan1 = (date2.tm_wday + 371 - date2.tm_yday) % 7; if (jan1 != 4 && (jan1 != 3 || !__isLeapYear(date2.tm_year))) val = 1; } return leadingNulls(val, 2); }, "%w": function(date2) { return date2.tm_wday; }, "%W": function(date2) { var days = date2.tm_yday + 7 - (date2.tm_wday + 6) % 7; return leadingNulls(Math.floor(days / 7), 2); }, "%y": function(date2) { return (date2.tm_year + 1900).toString().substring(2); }, "%Y": function(date2) { return date2.tm_year + 1900; }, "%z": function(date2) { var off = date2.tm_gmtoff; var ahead = off >= 0; off = Math.abs(off) / 60; off = off / 60 * 100 + off % 60; return (ahead ? "+" : "-") + String("0000" + off).slice(-4); }, "%Z": function(date2) { return date2.tm_zone; }, "%%": function() { return "%"; } }; pattern = pattern.replace(/%%/g, "\0\0"); for (var rule in EXPANSION_RULES_2) { if (pattern.includes(rule)) { pattern = pattern.replace(new RegExp(rule, "g"), EXPANSION_RULES_2[rule](date)); } } pattern = pattern.replace(/\0\0/g, "%"); var bytes = intArrayFromString(pattern, false); if (bytes.length > maxsize) { return 0; } writeArrayToMemory(bytes, s); return bytes.length - 1; } function _strftime_l(s, maxsize, format, tm, loc) { return _strftime(s, maxsize, format, tm); } var FSNode = function(parent, name, mode, rdev) { if (!parent) { parent = this; } this.parent = parent; this.mount = parent.mount; this.mounted = null; this.id = FS.nextInode++; this.name = name; this.mode = mode; this.node_ops = {}; this.stream_ops = {}; this.rdev = rdev; }; var readMode = 292 | 73; var writeMode = 146; Object.defineProperties(FSNode.prototype, { read: { get: function() { return (this.mode & readMode) === readMode; }, set: function(val) { val ? this.mode |= readMode : this.mode &= ~readMode; } }, write: { get: function() { return (this.mode & writeMode) === writeMode; }, set: function(val) { val ? this.mode |= writeMode : this.mode &= ~writeMode; } }, isFolder: { get: function() { return FS.isDir(this.mode); } }, isDevice: { get: function() { return FS.isChrdev(this.mode); } } }); FS.FSNode = FSNode; FS.staticInit(); InternalError = Module["InternalError"] = extendError(Error, "InternalError"); embind_init_charCodes(); BindingError = Module["BindingError"] = extendError(Error, "BindingError"); init_ClassHandle(); init_embind(); init_RegisteredPointer(); UnboundTypeError = Module["UnboundTypeError"] = extendError(Error, "UnboundTypeError"); init_emval(); var wasmImports = { "e": ___cxa_throw, "z": ___syscall_fcntl64, "L": ___syscall_ioctl, "M": ___syscall_openat, "T": __embind_finalize_value_array, "s": __embind_finalize_value_object, "G": __embind_register_bigint, "R": __embind_register_bool, "r": __embind_register_class, "q": __embind_register_class_constructor, "c": __embind_register_class_function, "Q": __embind_register_emval, "D": __embind_register_enum, "p": __embind_register_enum_value, "B": __embind_register_float, "b": __embind_register_function, "o": __embind_register_integer, "h": __embind_register_memory_view, "C": __embind_register_std_string, "v": __embind_register_std_wstring, "U": __embind_register_value_array, "j": __embind_register_value_array_element, "t": __embind_register_value_object, "g": __embind_register_value_object_field, "S": __embind_register_void, "l": __emval_as, "x": __emval_call, "a": __emval_decref, "E": __emval_get_global, "m": __emval_get_property, "n": __emval_incref, "W": __emval_instanceof, "V": __emval_is_number, "w": __emval_new_array, "f": __emval_new_cstring, "u": __emval_new_object, "k": __emval_run_destructors, "i": __emval_set_property, "d": __emval_take_value, "A": _abort, "P": _emscripten_memcpy_big, "N": _emscripten_resize_heap, "I": _environ_get, "J": _environ_sizes_get, "y": _fd_close, "K": _fd_read, "F": _fd_seek, "O": _fd_write, "H": _strftime_l }; createWasm(); var _malloc = function() { return (_malloc = Module["asm"]["_"]).apply(null, arguments); }; var ___getTypeName = Module["___getTypeName"] = function() { return (___getTypeName = Module["___getTypeName"] = Module["asm"]["$"]).apply(null, arguments); }; Module["__embind_initialize_bindings"] = function() { return (Module["__embind_initialize_bindings"] = Module["asm"]["aa"]).apply(null, arguments); }; var ___errno_location = function() { return (___errno_location = Module["asm"]["ba"]).apply(null, arguments); }; var _free = function() { return (_free = Module["asm"]["ca"]).apply(null, arguments); }; var ___cxa_is_pointer_type = function() { return (___cxa_is_pointer_type = Module["asm"]["da"]).apply(null, arguments); }; Module["dynCall_jiji"] = function() { return (Module["dynCall_jiji"] = Module["asm"]["ea"]).apply(null, arguments); }; Module["dynCall_viijii"] = function() { return (Module["dynCall_viijii"] = Module["asm"]["fa"]).apply(null, arguments); }; Module["dynCall_iiiiij"] = function() { return (Module["dynCall_iiiiij"] = Module["asm"]["ga"]).apply(null, arguments); }; Module["dynCall_iiiiijj"] = function() { return (Module["dynCall_iiiiijj"] = Module["asm"]["ha"]).apply(null, arguments); }; Module["dynCall_iiiiiijj"] = function() { return (Module["dynCall_iiiiiijj"] = Module["asm"]["ia"]).apply(null, arguments); }; var calledRun; dependenciesFulfilled = function runCaller() { if (!calledRun) run(); if (!calledRun) dependenciesFulfilled = runCaller; }; function run() { if (runDependencies > 0) { return; } preRun(); if (runDependencies > 0) { return; } function doRun() { if (calledRun) return; calledRun = true; Module["calledRun"] = true; if (ABORT) return; initRuntime(); readyPromiseResolve(Module); if (Module["onRuntimeInitialized"]) Module["onRuntimeInitialized"](); postRun(); } if (Module["setStatus"]) { Module["setStatus"]("Running..."); setTimeout(function() { setTimeout(function() { Module["setStatus"](""); }, 1); doRun(); }, 1); } else { doRun(); } } if (Module["preInit"]) { if (typeof Module["preInit"] == "function") Module["preInit"] = [Module["preInit"]]; while (Module["preInit"].length > 0) { Module["preInit"].pop()(); } } run(); return WebIFCWasm3.ready; }; })(); if (typeof exports === "object" && typeof module === "object") module.exports = WebIFCWasm2; else if (typeof define === "function" && define["amd"]) define([], function() { return WebIFCWasm2; }); else if (typeof exports === "object") exports["WebIFCWasm"] = WebIFCWasm2; } }); var IFCBEAMSTANDARDCASE = 2906023776; var IFCWINDOWSTANDARDCASE = 486154966; var IFCWALLELEMENTEDCASE = 4156078855; var IFCSLABSTANDARDCASE = 3027962421; var IFCSLABELEMENTEDCASE = 3127900445; var IFCPLATESTANDARDCASE = 1156407060; var IFCMEMBERSTANDARDCASE = 1911478936; var IFCDOORSTANDARDCASE = 3242481149; var IFCCOLUMNSTANDARDCASE = 905975707; var IFCOPENINGSTANDARDCASE = 3079942009; var IFCCONTROLLER = 25142252; var IFCALARM = 3087945054; var IFCACTUATOR = 4288193352; var IFCUNITARYCONTROLELEMENT = 630975310; var IFCSENSOR = 4086658281; var IFCPROTECTIVEDEVICETRIPPINGUNIT = 2295281155; var IFCGEOSLICE = 1971632696; var IFCGEOMODEL = 2680139844; var IFCFLOWINSTRUMENT = 182646315; var IFCFIRESUPPRESSIONTERMINAL = 1426591983; var IFCFILTER = 819412036; var IFCFAN = 3415622556; var IFCELECTRICTIMECONTROL = 1003880860; var IFCELECTRICMOTOR = 402227799; var IFCELECTRICGENERATOR = 264262732; var IFCELECTRICFLOWTREATMENTDEVICE = 24726584; var IFCELECTRICFLOWSTORAGEDEVICE = 3310460725; var IFCELECTRICDISTRIBUTIONBOARD = 862014818; var IFCELECTRICAPPLIANCE = 1904799276; var IFCDUCTSILENCER = 1360408905; var IFCDUCTSEGMENT = 3518393246; var IFCDUCTFITTING = 342316401; var IFCDISTRIBUTIONCIRCUIT = 562808652; var IFCDISTRIBUTIONBOARD = 3693000487; var IFCDAMPER = 4074379575; var IFCCOOLINGTOWER = 3640358203; var IFCCOOLEDBEAM = 4136498852; var IFCCONVEYORSEGMENT = 3460952963; var IFCCONDENSER = 2272882330; var IFCCOMPRESSOR = 3571504051; var IFCCOMMUNICATIONSAPPLIANCE = 3221913625; var IFCCOIL = 639361253; var IFCCHILLER = 3902619387; var IFCCAISSONFOUNDATION = 3999819293; var IFCCABLESEGMENT = 4217484030; var IFCCABLEFITTING = 1051757585; var IFCCABLECARRIERSEGMENT = 3758799889; var IFCCABLECARRIERFITTING = 635142910; var IFCBURNER = 2938176219; var IFCBOREHOLE = 3314249567; var IFCBOILER = 32344328; var IFCBEARING = 4196446775; var IFCAUDIOVISUALAPPLIANCE = 277319702; var IFCALIGNMENT = 325726236; var IFCAIRTOAIRHEATRECOVERY = 2056796094; var IFCAIRTERMINALBOX = 177149247; var IFCAIRTERMINAL = 1634111441; var IFCWASTETERMINAL = 4237592921; var IFCVALVE = 4207607924; var IFCUNITARYEQUIPMENT = 4292641817; var IFCUNITARYCONTROLELEMENTTYPE = 3179687236; var IFCTUBEBUNDLE = 3026737570; var IFCTRANSFORMER = 3825984169; var IFCTRACKELEMENT = 3425753595; var IFCTANK = 812556717; var IFCSWITCHINGDEVICE = 1162798199; var IFCSTRUCTURALLOADCASE = 385403989; var IFCSTACKTERMINAL = 1404847402; var IFCSPACEHEATER = 1999602285; var IFCSOLARDEVICE = 3420628829; var IFCSIGNAL = 991950508; var IFCSHADINGDEVICE = 1329646415; var IFCSANITARYTERMINAL = 3053780830; var IFCREINFORCINGBARTYPE = 2572171363; var IFCREINFORCEDSOIL = 3798194928; var IFCRATIONALBSPLINECURVEWITHKNOTS = 1232101972; var IFCRAIL = 3290496277; var IFCPUMP = 90941305; var IFCPROTECTIVEDEVICETRIPPINGUNITTYPE = 655969474; var IFCPROTECTIVEDEVICE = 738039164; var IFCPIPESEGMENT = 3612865200; var IFCPIPEFITTING = 310824031; var IFCPAVEMENT = 1383356374; var IFCOUTLET = 3694346114; var IFCOUTERBOUNDARYCURVE = 144952367; var IFCNAVIGATIONELEMENT = 2182337498; var IFCMOTORCONNECTION = 2474470126; var IFCMOORINGDEVICE = 234836483; var IFCMOBILETELECOMMUNICATIONSAPPLIANCE = 2078563270; var IFCMEDICALDEVICE = 1437502449; var IFCLIQUIDTERMINAL = 1638804497; var IFCLINEARPOSITIONINGELEMENT = 1154579445; var IFCLIGHTFIXTURE = 629592764; var IFCLAMP = 76236018; var IFCKERB = 2696325953; var IFCJUNCTIONBOX = 2176052936; var IFCINTERCEPTOR = 4175244083; var IFCHUMIDIFIER = 2068733104; var IFCHEATEXCHANGER = 3319311131; var IFCGEOTECHNICALASSEMBLY = 2713699986; var IFCFLOWMETER = 2188021234; var IFCEXTERNALSPATIALELEMENT = 1209101575; var IFCEVAPORATOR = 484807127; var IFCEVAPORATIVECOOLER = 3747195512; var IFCENGINE = 2814081492; var IFCELECTRICFLOWTREATMENTDEVICETYPE = 2142170206; var IFCELECTRICDISTRIBUTIONBOARDTYPE = 2417008758; var IFCEARTHWORKSFILL = 3376911765; var IFCEARTHWORKSELEMENT = 1077100507; var IFCEARTHWORKSCUT = 3071239417; var IFCDISTRIBUTIONSYSTEM = 3205830791; var IFCDISTRIBUTIONBOARDTYPE = 479945903; var IFCDEEPFOUNDATION = 3426335179; var IFCCOURSE = 1502416096; var IFCCONVEYORSEGMENTTYPE = 2940368186; var IFCCOMMUNICATIONSAPPLIANCETYPE = 400855858; var IFCCIVILELEMENT = 1677625105; var IFCCHIMNEY = 3296154744; var IFCCAISSONFOUNDATIONTYPE = 3203706013; var IFCCABLEFITTINGTYPE = 2674252688; var IFCBURNERTYPE = 2188180465; var IFCBUILTSYSTEM = 3862327254; var IFCBUILTELEMENT = 1876633798; var IFCBUILDINGSYSTEM = 1177604601; var IFCBUILDINGELEMENTPARTTYPE = 39481116; var IFCBRIDGEPART = 963979645; var IFCBRIDGE = 644574406; var IFCBOUNDARYCURVE = 1136057603; var IFCBEARINGTYPE = 3649138523; var IFCBSPLINECURVEWITHKNOTS = 2461110595; var IFCAUDIOVISUALAPPLIANCETYPE = 1532957894; var IFCALIGNMENTVERTICAL = 1662888072; var IFCALIGNMENTSEGMENT = 317615605; var IFCALIGNMENTHORIZONTAL = 1545765605; var IFCALIGNMENTCANT = 4266260250; var IFCWORKCALENDAR = 4088093105; var IFCWINDOWTYPE = 4009809668; var IFCVOIDINGFEATURE = 926996030; var IFCVIBRATIONISOLATOR = 2391383451; var IFCVIBRATIONDAMPERTYPE = 3956297820; var IFCVIBRATIONDAMPER = 1530820697; var IFCVEHICLE = 840318589; var IFCTRANSPORTATIONDEVICE = 1953115116; var IFCTRACKELEMENTTYPE = 618700268; var IFCTENDONTYPE = 2415094496; var IFCTENDONCONDUITTYPE = 2281632017; var IFCTENDONCONDUIT = 3663046924; var IFCTENDONANCHORTYPE = 3081323446; var IFCSYSTEMFURNITUREELEMENT = 413509423; var IFCSURFACEFEATURE = 3101698114; var IFCSTRUCTURALSURFACEACTION = 3657597509; var IFCSTRUCTURALCURVEREACTION = 2757150158; var IFCSTRUCTURALCURVEACTION = 1004757350; var IFCSTAIRTYPE = 338393293; var IFCSOLARDEVICETYPE = 1072016465; var IFCSINESPIRAL = 42703149; var IFCSIGNALTYPE = 1894708472; var IFCSIGNTYPE = 3599934289; var IFCSIGN = 33720170; var IFCSHADINGDEVICETYPE = 4074543187; var IFCSEVENTHORDERPOLYNOMIALSPIRAL = 1027922057; var IFCSEGMENTEDREFERENCECURVE = 544395925; var IFCSECONDORDERPOLYNOMIALSPIRAL = 3649235739; var IFCSEAMCURVE = 2157484638; var IFCROOFTYPE = 2781568857; var IFCROADPART = 550521510; var IFCROAD = 146592293; var IFCRELADHERESTOELEMENT = 3818125796; var IFCREINFORCINGMESHTYPE = 2310774935; var IFCREINFORCINGELEMENTTYPE = 964333572; var IFCREFERENT = 4021432810; var IFCRATIONALBSPLINESURFACEWITHKNOTS = 683857671; var IFCRAMPTYPE = 1469900589; var IFCRAILWAYPART = 1891881377; var IFCRAILWAY = 3992365140; var IFCRAILTYPE = 1763565496; var IFCPOSITIONINGELEMENT = 1946335990; var IFCPOLYGONALFACESET = 2839578677; var IFCPILETYPE = 1158309216; var IFCPAVEMENTTYPE = 514975943; var IFCNAVIGATIONELEMENTTYPE = 506776471; var IFCMOORINGDEVICETYPE = 710110818; var IFCMOBILETELECOMMUNICATIONSAPPLIANCETYPE = 1950438474; var IFCMEDICALDEVICETYPE = 1114901282; var IFCMARINEPART = 976884017; var IFCMARINEFACILITY = 525669439; var IFCLIQUIDTERMINALTYPE = 1770583370; var IFCLINEARELEMENT = 2176059722; var IFCKERBTYPE = 679976338; var IFCINTERSECTIONCURVE = 3113134337; var IFCINTERCEPTORTYPE = 3946677679; var IFCINDEXEDPOLYCURVE = 2571569899; var IFCIMPACTPROTECTIONDEVICETYPE = 3948183225; var IFCIMPACTPROTECTIONDEVICE = 2568555532; var IFCGRADIENTCURVE = 2898700619; var IFCGEOTECHNICALSTRATUM = 1594536857; var IFCGEOTECHNICALELEMENT = 4230923436; var IFCGEOGRAPHICELEMENT = 3493046030; var IFCFURNITURE = 1509553395; var IFCFOOTINGTYPE = 1893162501; var IFCFACILITYPARTCOMMON = 4228831410; var IFCFACILITYPART = 1310830890; var IFCFACILITY = 24185140; var IFCEXTERNALSPATIALSTRUCTUREELEMENT = 2853485674; var IFCEVENT = 4148101412; var IFCENGINETYPE = 132023988; var IFCELEMENTASSEMBLYTYPE = 2397081782; var IFCDOORTYPE = 2323601079; var IFCDIRECTRIXDERIVEDREFERENCESWEPTAREASOLID = 4234616927; var IFCDEEPFOUNDATIONTYPE = 1306400036; var IFCCYLINDRICALSURFACE = 1213902940; var IFCCOURSETYPE = 4189326743; var IFCCOSINESPIRAL = 2000195564; var IFCCONSTRUCTIONPRODUCTRESOURCETYPE = 1525564444; var IFCCONSTRUCTIONMATERIALRESOURCETYPE = 4105962743; var IFCCONSTRUCTIONEQUIPMENTRESOURCETYPE = 2185764099; var IFCCOMPOSITECURVEONSURFACE = 15328376; var IFCCOMPLEXPROPERTYTEMPLATE = 3875453745; var IFCCLOTHOID = 3497074424; var IFCCIVILELEMENTTYPE = 3893394355; var IFCCHIMNEYTYPE = 2197970202; var IFCBUILTELEMENTTYPE = 1626504194; var IFCBSPLINESURFACEWITHKNOTS = 167062518; var IFCBSPLINESURFACE = 2887950389; var IFCADVANCEDBREPWITHVOIDS = 2603310189; var IFCADVANCEDBREP = 1635779807; var IFCVEHICLETYPE = 3651464721; var IFCTRIANGULATEDIRREGULARNETWORK = 1229763772; var IFCTRIANGULATEDFACESET = 2916149573; var IFCTRANSPORTATIONDEVICETYPE = 3665877780; var IFCTOROIDALSURFACE = 1935646853; var IFCTHIRDORDERPOLYNOMIALSPIRAL = 782932809; var IFCTESSELLATEDFACESET = 2387106220; var IFCTASKTYPE = 3206491090; var IFCSURFACECURVE = 699246055; var IFCSUBCONTRACTRESOURCETYPE = 4095615324; var IFCSTRUCTURALSURFACEREACTION = 603775116; var IFCSPIRAL = 2735484536; var IFCSPHERICALSURFACE = 4015995234; var IFCSPATIALZONETYPE = 2481509218; var IFCSPATIALZONE = 463610769; var IFCSPATIALELEMENTTYPE = 710998568; var IFCSPATIALELEMENT = 1412071761; var IFCSIMPLEPROPERTYTEMPLATE = 3663146110; var IFCSECTIONEDSURFACE = 1356537516; var IFCSECTIONEDSOLIDHORIZONTAL = 1290935644; var IFCSECTIONEDSOLID = 1862484736; var IFCREVOLVEDAREASOLIDTAPERED = 3243963512; var IFCREPARAMETRISEDCOMPOSITECURVESEGMENT = 816062949; var IFCRELSPACEBOUNDARY2NDLEVEL = 1521410863; var IFCRELSPACEBOUNDARY1STLEVEL = 3523091289; var IFCRELPOSITIONS = 1441486842; var IFCRELINTERFERESELEMENTS = 427948657; var IFCRELDEFINESBYTEMPLATE = 307848117; var IFCRELDEFINESBYOBJECT = 1462361463; var IFCRELDECLARES = 2565941209; var IFCRELASSOCIATESPROFILEDEF = 1033248425; var IFCRELASSIGNSTOGROUPBYFACTOR = 1027710054; var IFCPROPERTYTEMPLATE = 3521284610; var IFCPROPERTYSETTEMPLATE = 492091185; var IFCPROJECTLIBRARY = 653396225; var IFCPROCEDURETYPE = 569719735; var IFCPREDEFINEDPROPERTYSET = 3967405729; var IFCPOLYNOMIALCURVE = 3381221214; var IFCPCURVE = 1682466193; var IFCOFFSETCURVEBYDISTANCES = 2485787929; var IFCOFFSETCURVE = 590820931; var IFCLABORRESOURCETYPE = 428585644; var IFCINDEXEDPOLYGONALTEXTUREMAP = 3465909080; var IFCINDEXEDPOLYGONALFACEWITHVOIDS = 2294589976; var IFCINDEXEDPOLYGONALFACE = 178912537; var IFCGEOGRAPHICELEMENTTYPE = 4095422895; var IFCFIXEDREFERENCESWEPTAREASOLID = 2652556860; var IFCEXTRUDEDAREASOLIDTAPERED = 2804161546; var IFCEVENTTYPE = 4024345920; var IFCDIRECTRIXCURVESWEPTAREASOLID = 593015953; var IFCCURVESEGMENT = 4212018352; var IFCCURVEBOUNDEDSURFACE = 2629017746; var IFCCREWRESOURCETYPE = 1815067380; var IFCCONTEXT = 3419103109; var IFCCONSTRUCTIONRESOURCETYPE = 2574617495; var IFCCARTESIANPOINTLIST3D = 2059837836; var IFCCARTESIANPOINTLIST2D = 1675464909; var IFCCARTESIANPOINTLIST = 574549367; var IFCAXIS2PLACEMENTLINEAR = 3425423356; var IFCADVANCEDFACE = 3406155212; var IFCTYPERESOURCE = 3698973494; var IFCTYPEPROCESS = 3736923433; var IFCTESSELLATEDITEM = 901063453; var IFCSWEPTDISKSOLIDPOLYGONAL = 1096409881; var IFCSEGMENT = 823603102; var IFCRESOURCETIME = 1042787934; var IFCRESOURCECONSTRAINTRELATIONSHIP = 1608871552; var IFCRESOURCEAPPROVALRELATIONSHIP = 2943643501; var IFCQUANTITYSET = 2090586900; var IFCPROPERTYTEMPLATEDEFINITION = 1482703590; var IFCPREDEFINEDPROPERTIES = 3778827333; var IFCPOINTBYDISTANCEEXPRESSION = 2165702409; var IFCOPENCROSSPROFILEDEF = 182550632; var IFCMIRROREDPROFILEDEF = 2998442950; var IFCMATERIALRELATIONSHIP = 853536259; var IFCMATERIALPROFILESETUSAGETAPERING = 3404854881; var IFCMATERIALPROFILESETUSAGE = 3079605661; var IFCMATERIALCONSTITUENTSET = 2852063980; var IFCMATERIALCONSTITUENT = 3708119e3; var IFCLINEARPLACEMENT = 388784114; var IFCLAGTIME = 1585845231; var IFCINDEXEDTRIANGLETEXTUREMAP = 2133299955; var IFCINDEXEDTEXTUREMAP = 1437953363; var IFCINDEXEDCOLOURMAP = 3570813810; var IFCEXTERNALREFERENCERELATIONSHIP = 1437805879; var IFCEXTENDEDPROPERTIES = 297599258; var IFCEVENTTIME = 211053100; var IFCCONVERSIONBASEDUNITWITHOFFSET = 2713554722; var IFCCOLOURRGBLIST = 3285139300; var IFCALIGNMENTHORIZONTALSEGMENT = 536804194; var IFCALIGNMENTCANTSEGMENT = 3752311538; var IFCWORKTIME = 1236880293; var IFCTEXTUREVERTEXLIST = 3611470254; var IFCTEXTURECOORDINATEINDICESWITHVOIDS = 1010789467; var IFCTEXTURECOORDINATEINDICES = 222769930; var IFCTASKTIMERECURRING = 2771591690; var IFCTASKTIME = 1549132990; var IFCSURFACEREINFORCEMENTAREA = 2934153892; var IFCSTRUCTURALLOADORRESULT = 609421318; var IFCSTRUCTURALLOADCONFIGURATION = 3478079324; var IFCQUANTITYNUMBER = 2691318326; var IFCPROJECTEDCRS = 3843373140; var IFCMATERIALPROFILEWITHOFFSETS = 552965576; var IFCMATERIALPROFILESET = 164193824; var IFCMATERIALPROFILE = 2235152071; var IFCMATERIALLAYERWITHOFFSETS = 1847252529; var IFCMAPCONVERSION = 3057273783; var IFCCOORDINATEOPERATION = 1785450214; var IFCCONNECTIONVOLUMEGEOMETRY = 775493141; var IFCALIGNMENTVERTICALSEGMENT = 3633395639; var IFCREINFORCINGBAR = 979691226; var IFCELECTRICDISTRIBUTIONPOINT = 3700593921; var IFCDISTRIBUTIONCONTROLELEMENT = 1062813311; var IFCDISTRIBUTIONCHAMBERELEMENT = 1052013943; var IFCCONTROLLERTYPE = 578613899; var IFCCHAMFEREDGEFEATURE = 2454782716; var IFCBEAM = 753842376; var IFCALARMTYPE = 3001207471; var IFCACTUATORTYPE = 2874132201; var IFCWINDOW = 3304561284; var IFCWALLSTANDARDCASE = 3512223829; var IFCWALL = 2391406946; var IFCVIBRATIONISOLATORTYPE = 3313531582; var IFCTENDONANCHOR = 2347447852; var IFCTENDON = 3824725483; var IFCSTRUCTURALANALYSISMODEL = 2515109513; var IFCSTAIRFLIGHT = 4252922144; var IFCSTAIR = 331165859; var IFCSLAB = 1529196076; var IFCSENSORTYPE = 1783015770; var IFCROUNDEDEDGEFEATURE = 1376911519; var IFCROOF = 2016517767; var IFCREINFORCINGMESH = 2320036040; var IFCREINFORCINGELEMENT = 3027567501; var IFCRATIONALBEZIERCURVE = 3055160366; var IFCRAMPFLIGHT = 3283111854; var IFCRAMP = 3024970846; var IFCRAILING = 2262370178; var IFCPLATE = 3171933400; var IFCPILE = 1687234759; var IFCMEMBER = 1073191201; var IFCFOOTING = 900683007; var IFCFLOWTREATMENTDEVICE = 3508470533; var IFCFLOWTERMINAL = 2223149337; var IFCFLOWSTORAGEDEVICE = 707683696; var IFCFLOWSEGMENT = 987401354; var IFCFLOWMOVINGDEVICE = 3132237377; var IFCFLOWINSTRUMENTTYPE = 4037862832; var IFCFLOWFITTING = 4278956645; var IFCFLOWCONTROLLER = 2058353004; var IFCFIRESUPPRESSIONTERMINALTYPE = 4222183408; var IFCFILTERTYPE = 1810631287; var IFCFANTYPE = 346874300; var IFCENERGYCONVERSIONDEVICE = 1658829314; var IFCELECTRICALELEMENT = 857184966; var IFCELECTRICALCIRCUIT = 1634875225; var IFCELECTRICTIMECONTROLTYPE = 712377611; var IFCELECTRICMOTORTYPE = 1217240411; var IFCELECTRICHEATERTYPE = 1365060375; var IFCELECTRICGENERATORTYPE = 1534661035; var IFCELECTRICFLOWSTORAGEDEVICETYPE = 3277789161; var IFCELECTRICAPPLIANCETYPE = 663422040; var IFCEDGEFEATURE = 855621170; var IFCDUCTSILENCERTYPE = 2030761528; var IFCDUCTSEGMENTTYPE = 3760055223; var IFCDUCTFITTINGTYPE = 869906466; var IFCDOOR = 395920057; var IFCDISTRIBUTIONPORT = 3041715199; var IFCDISTRIBUTIONFLOWELEMENT = 3040386961; var IFCDISTRIBUTIONELEMENT = 1945004755; var IFCDISTRIBUTIONCONTROLELEMENTTYPE = 2063403501; var IFCDISTRIBUTIONCHAMBERELEMENTTYPE = 1599208980; var IFCDISCRETEACCESSORYTYPE = 2635815018; var IFCDISCRETEACCESSORY = 1335981549; var IFCDIAMETERDIMENSION = 4147604152; var IFCDAMPERTYPE = 3961806047; var IFCCURTAINWALL = 3495092785; var IFCCOVERING = 1973544240; var IFCCOOLINGTOWERTYPE = 2954562838; var IFCCOOLEDBEAMTYPE = 335055490; var IFCCONSTRUCTIONPRODUCTRESOURCE = 488727124; var IFCCONSTRUCTIONMATERIALRESOURCE = 1060000209; var IFCCONSTRUCTIONEQUIPMENTRESOURCE = 3898045240; var IFCCONDITIONCRITERION = 1163958913; var IFCCONDITION = 2188551683; var IFCCONDENSERTYPE = 2816379211; var IFCCOMPRESSORTYPE = 3850581409; var IFCCOLUMN = 843113511; var IFCCOILTYPE = 2301859152; var IFCCIRCLE = 2611217952; var IFCCHILLERTYPE = 2951183804; var IFCCABLESEGMENTTYPE = 1285652485; var IFCCABLECARRIERSEGMENTTYPE = 3293546465; var IFCCABLECARRIERFITTINGTYPE = 395041908; var IFCBUILDINGELEMENTPROXYTYPE = 1909888760; var IFCBUILDINGELEMENTPROXY = 1095909175; var IFCBUILDINGELEMENTPART = 2979338954; var IFCBUILDINGELEMENTCOMPONENT = 52481810; var IFCBUILDINGELEMENT = 3299480353; var IFCBOILERTYPE = 231477066; var IFCBEZIERCURVE = 1916977116; var IFCBEAMTYPE = 819618141; var IFCBSPLINECURVE = 1967976161; var IFCASSET = 3460190687; var IFCANGULARDIMENSION = 2470393545; var IFCAIRTOAIRHEATRECOVERYTYPE = 1871374353; var IFCAIRTERMINALTYPE = 3352864051; var IFCAIRTERMINALBOXTYPE = 1411407467; var IFCACTIONREQUEST = 3821786052; var IFC2DCOMPOSITECURVE = 1213861670; var IFCZONE = 1033361043; var IFCWORKSCHEDULE = 3342526732; var IFCWORKPLAN = 4218914973; var IFCWORKCONTROL = 1028945134; var IFCWASTETERMINALTYPE = 1133259667; var IFCWALLTYPE = 1898987631; var IFCVIRTUALELEMENT = 2769231204; var IFCVALVETYPE = 728799441; var IFCUNITARYEQUIPMENTTYPE = 1911125066; var IFCTUBEBUNDLETYPE = 1600972822; var IFCTRIMMEDCURVE = 3593883385; var IFCTRANSPORTELEMENT = 1620046519; var IFCTRANSFORMERTYPE = 1692211062; var IFCTIMESERIESSCHEDULE = 1637806684; var IFCTANKTYPE = 5716631; var IFCSYSTEM = 2254336722; var IFCSWITCHINGDEVICETYPE = 2315554128; var IFCSUBCONTRACTRESOURCE = 148013059; var IFCSTRUCTURALSURFACECONNECTION = 1975003073; var IFCSTRUCTURALRESULTGROUP = 2986769608; var IFCSTRUCTURALPOINTREACTION = 1235345126; var IFCSTRUCTURALPOINTCONNECTION = 734778138; var IFCSTRUCTURALPOINTACTION = 2082059205; var IFCSTRUCTURALPLANARACTIONVARYING = 3987759626; var IFCSTRUCTURALPLANARACTION = 1621171031; var IFCSTRUCTURALLOADGROUP = 1252848954; var IFCSTRUCTURALLINEARACTIONVARYING = 1721250024; var IFCSTRUCTURALLINEARACTION = 1807405624; var IFCSTRUCTURALCURVEMEMBERVARYING = 2445595289; var IFCSTRUCTURALCURVEMEMBER = 214636428; var IFCSTRUCTURALCURVECONNECTION = 4243806635; var IFCSTRUCTURALCONNECTION = 1179482911; var IFCSTRUCTURALACTION = 682877961; var IFCSTAIRFLIGHTTYPE = 1039846685; var IFCSTACKTERMINALTYPE = 3112655638; var IFCSPACETYPE = 3812236995; var IFCSPACEPROGRAM = 652456506; var IFCSPACEHEATERTYPE = 1305183839; var IFCSPACE = 3856911033; var IFCSLABTYPE = 2533589738; var IFCSITE = 4097777520; var IFCSERVICELIFE = 4105383287; var IFCSCHEDULETIMECONTROL = 3517283431; var IFCSANITARYTERMINALTYPE = 1768891740; var IFCRELASSIGNSTASKS = 2863920197; var IFCRELAGGREGATES = 160246688; var IFCRAMPFLIGHTTYPE = 2324767716; var IFCRAILINGTYPE = 2893384427; var IFCRADIUSDIMENSION = 3248260540; var IFCPUMPTYPE = 2250791053; var IFCPROTECTIVEDEVICETYPE = 1842657554; var IFCPROJECTIONELEMENT = 3651124850; var IFCPROJECTORDERRECORD = 3642467123; var IFCPROJECTORDER = 2904328755; var IFCPROCEDURE = 2744685151; var IFCPORT = 3740093272; var IFCPOLYLINE = 3724593414; var IFCPLATETYPE = 4017108033; var IFCPIPESEGMENTTYPE = 4231323485; var IFCPIPEFITTINGTYPE = 804291784; var IFCPERMIT = 3327091369; var IFCPERFORMANCEHISTORY = 2382730787; var IFCOUTLETTYPE = 2837617999; var IFCORDERACTION = 3425660407; var IFCOPENINGELEMENT = 3588315303; var IFCOCCUPANT = 4143007308; var IFCMOVE = 1916936684; var IFCMOTORCONNECTIONTYPE = 977012517; var IFCMEMBERTYPE = 3181161470; var IFCMECHANICALFASTENERTYPE = 2108223431; var IFCMECHANICALFASTENER = 377706215; var IFCLINEARDIMENSION = 2506943328; var IFCLIGHTFIXTURETYPE = 1161773419; var IFCLAMPTYPE = 1051575348; var IFCLABORRESOURCE = 3827777499; var IFCJUNCTIONBOXTYPE = 4288270099; var IFCINVENTORY = 2391368822; var IFCHUMIDIFIERTYPE = 1806887404; var IFCHEATEXCHANGERTYPE = 1251058090; var IFCGROUP = 2706460486; var IFCGRID = 3009204131; var IFCGASTERMINALTYPE = 200128114; var IFCFURNITURESTANDARD = 814719939; var IFCFURNISHINGELEMENT = 263784265; var IFCFLOWTREATMENTDEVICETYPE = 3009222698; var IFCFLOWTERMINALTYPE = 2297155007; var IFCFLOWSTORAGEDEVICETYPE = 1339347760; var IFCFLOWSEGMENTTYPE = 1834744321; var IFCFLOWMOVINGDEVICETYPE = 1482959167; var IFCFLOWMETERTYPE = 3815607619; var IFCFLOWFITTINGTYPE = 3198132628; var IFCFLOWCONTROLLERTYPE = 3907093117; var IFCFEATUREELEMENTSUBTRACTION = 1287392070; var IFCFEATUREELEMENTADDITION = 2143335405; var IFCFEATUREELEMENT = 2827207264; var IFCFASTENERTYPE = 2489546625; var IFCFASTENER = 647756555; var IFCFACETEDBREPWITHVOIDS = 3737207727; var IFCFACETEDBREP = 807026263; var IFCEVAPORATORTYPE = 3390157468; var IFCEVAPORATIVECOOLERTYPE = 3174744832; var IFCEQUIPMENTSTANDARD = 3272907226; var IFCEQUIPMENTELEMENT = 1962604670; var IFCENERGYCONVERSIONDEVICETYPE = 2107101300; var IFCELLIPSE = 1704287377; var IFCELEMENTCOMPONENTTYPE = 2590856083; var IFCELEMENTCOMPONENT = 1623761950; var IFCELEMENTASSEMBLY = 4123344466; var IFCELEMENT = 1758889154; var IFCELECTRICALBASEPROPERTIES = 360485395; var IFCDISTRIBUTIONFLOWELEMENTTYPE = 3849074793; var IFCDISTRIBUTIONELEMENTTYPE = 3256556792; var IFCDIMENSIONCURVEDIRECTEDCALLOUT = 681481545; var IFCCURTAINWALLTYPE = 1457835157; var IFCCREWRESOURCE = 3295246426; var IFCCOVERINGTYPE = 1916426348; var IFCCOSTSCHEDULE = 1419761937; var IFCCOSTITEM = 3895139033; var IFCCONTROL = 3293443760; var IFCCONSTRUCTIONRESOURCE = 2559216714; var IFCCONIC = 2510884976; var IFCCOMPOSITECURVE = 3732776249; var IFCCOLUMNTYPE = 300633059; var IFCCIRCLEHOLLOWPROFILEDEF = 2937912522; var IFCBUILDINGSTOREY = 3124254112; var IFCBUILDINGELEMENTTYPE = 1950629157; var IFCBUILDING = 4031249490; var IFCBOUNDEDCURVE = 1260505505; var IFCBOOLEANCLIPPINGRESULT = 3649129432; var IFCBLOCK = 1334484129; var IFCASYMMETRICISHAPEPROFILEDEF = 3207858831; var IFCANNOTATION = 1674181508; var IFCACTOR = 2296667514; var IFCTRANSPORTELEMENTTYPE = 2097647324; var IFCTASK = 3473067441; var IFCSYSTEMFURNITUREELEMENTTYPE = 1580310250; var IFCSURFACEOFREVOLUTION = 4124788165; var IFCSURFACEOFLINEAREXTRUSION = 2809605785; var IFCSURFACECURVESWEPTAREASOLID = 2028607225; var IFCSTRUCTUREDDIMENSIONCALLOUT = 4070609034; var IFCSTRUCTURALSURFACEMEMBERVARYING = 2218152070; var IFCSTRUCTURALSURFACEMEMBER = 3979015343; var IFCSTRUCTURALREACTION = 3689010777; var IFCSTRUCTURALMEMBER = 530289379; var IFCSTRUCTURALITEM = 3136571912; var IFCSTRUCTURALACTIVITY = 3544373492; var IFCSPHERE = 451544542; var IFCSPATIALSTRUCTUREELEMENTTYPE = 3893378262; var IFCSPATIALSTRUCTUREELEMENT = 2706606064; var IFCRIGHTCIRCULARCYLINDER = 3626867408; var IFCRIGHTCIRCULARCONE = 4158566097; var IFCREVOLVEDAREASOLID = 1856042241; var IFCRESOURCE = 2914609552; var IFCRELVOIDSELEMENT = 1401173127; var IFCRELSPACEBOUNDARY = 3451746338; var IFCRELSERVICESBUILDINGS = 366585022; var IFCRELSEQUENCE = 4122056220; var IFCRELSCHEDULESCOSTITEMS = 1058617721; var IFCRELREFERENCEDINSPATIALSTRUCTURE = 1245217292; var IFCRELPROJECTSELEMENT = 750771296; var IFCRELOVERRIDESPROPERTIES = 202636808; var IFCRELOCCUPIESSPACES = 2051452291; var IFCRELNESTS = 3268803585; var IFCRELINTERACTIONREQUIREMENTS = 4189434867; var IFCRELFLOWCONTROLELEMENTS = 279856033; var IFCRELFILLSELEMENT = 3940055652; var IFCRELDEFINESBYTYPE = 781010003; var IFCRELDEFINESBYPROPERTIES = 4186316022; var IFCRELDEFINES = 693640335; var IFCRELDECOMPOSES = 2551354335; var IFCRELCOVERSSPACES = 2802773753; var IFCRELCOVERSBLDGELEMENTS = 886880790; var IFCRELCONTAINEDINSPATIALSTRUCTURE = 3242617779; var IFCRELCONNECTSWITHREALIZINGELEMENTS = 3678494232; var IFCRELCONNECTSWITHECCENTRICITY = 504942748; var IFCRELCONNECTSSTRUCTURALMEMBER = 1638771189; var IFCRELCONNECTSSTRUCTURALELEMENT = 3912681535; var IFCRELCONNECTSSTRUCTURALACTIVITY = 2127690289; var IFCRELCONNECTSPORTS = 3190031847; var IFCRELCONNECTSPORTTOELEMENT = 4201705270; var IFCRELCONNECTSPATHELEMENTS = 3945020480; var IFCRELCONNECTSELEMENTS = 1204542856; var IFCRELCONNECTS = 826625072; var IFCRELASSOCIATESPROFILEPROPERTIES = 2851387026; var IFCRELASSOCIATESMATERIAL = 2655215786; var IFCRELASSOCIATESLIBRARY = 3840914261; var IFCRELASSOCIATESDOCUMENT = 982818633; var IFCRELASSOCIATESCONSTRAINT = 2728634034; var IFCRELASSOCIATESCLASSIFICATION = 919958153; var IFCRELASSOCIATESAPPROVAL = 4095574036; var IFCRELASSOCIATESAPPLIEDVALUE = 1327628568; var IFCRELASSOCIATES = 1865459582; var IFCRELASSIGNSTORESOURCE = 205026976; var IFCRELASSIGNSTOPROJECTORDER = 3372526763; var IFCRELASSIGNSTOPRODUCT = 2857406711; var IFCRELASSIGNSTOPROCESS = 4278684876; var IFCRELASSIGNSTOGROUP = 1307041759; var IFCRELASSIGNSTOCONTROL = 2495723537; var IFCRELASSIGNSTOACTOR = 1683148259; var IFCRELASSIGNS = 3939117080; var IFCRECTANGULARTRIMMEDSURFACE = 3454111270; var IFCRECTANGULARPYRAMID = 2798486643; var IFCRECTANGLEHOLLOWPROFILEDEF = 2770003689; var IFCPROXY = 3219374653; var IFCPROPERTYSET = 1451395588; var IFCPROJECTIONCURVE = 4194566429; var IFCPROJECT = 103090709; var IFCPRODUCT = 4208778838; var IFCPROCESS = 2945172077; var IFCPLANE = 220341763; var IFCPLANARBOX = 603570806; var IFCPERMEABLECOVERINGPROPERTIES = 3566463478; var IFCOFFSETCURVE3D = 3505215534; var IFCOFFSETCURVE2D = 3388369263; var IFCOBJECT = 3888040117; var IFCMANIFOLDSOLIDBREP = 1425443689; var IFCLINE = 1281925730; var IFCLSHAPEPROFILEDEF = 572779678; var IFCISHAPEPROFILEDEF = 1484403080; var IFCGEOMETRICCURVESET = 987898635; var IFCFURNITURETYPE = 1268542332; var IFCFURNISHINGELEMENTTYPE = 4238390223; var IFCFLUIDFLOWPROPERTIES = 3455213021; var IFCFILLAREASTYLETILES = 315944413; var IFCFILLAREASTYLETILESYMBOLWITHSTYLE = 4203026998; var IFCFILLAREASTYLEHATCHING = 374418227; var IFCFACEBASEDSURFACEMODEL = 2047409740; var IFCEXTRUDEDAREASOLID = 477187591; var IFCENERGYPROPERTIES = 80994333; var IFCELLIPSEPROFILEDEF = 2835456948; var IFCELEMENTARYSURFACE = 2777663545; var IFCELEMENTTYPE = 339256511; var IFCELEMENTQUANTITY = 1883228015; var IFCEDGELOOP = 1472233963; var IFCDRAUGHTINGPREDEFINEDCURVEFONT = 4006246654; var IFCDRAUGHTINGPREDEFINEDCOLOUR = 445594917; var IFCDRAUGHTINGCALLOUT = 3073041342; var IFCDOORSTYLE = 526551008; var IFCDOORPANELPROPERTIES = 1714330368; var IFCDOORLININGPROPERTIES = 2963535650; var IFCDIRECTION = 32440307; var IFCDIMENSIONCURVETERMINATOR = 4054601972; var IFCDIMENSIONCURVE = 606661476; var IFCDEFINEDSYMBOL = 693772133; var IFCCURVEBOUNDEDPLANE = 2827736869; var IFCCURVE = 2601014836; var IFCCSGSOLID = 2147822146; var IFCCSGPRIMITIVE3D = 2506170314; var IFCCRANERAILFSHAPEPROFILEDEF = 194851669; var IFCCRANERAILASHAPEPROFILEDEF = 4133800736; var IFCCOMPOSITECURVESEGMENT = 2485617015; var IFCCLOSEDSHELL = 2205249479; var IFCCIRCLEPROFILEDEF = 1383045692; var IFCCARTESIANTRANSFORMATIONOPERATOR3DNONUNIFORM = 1416205885; var IFCCARTESIANTRANSFORMATIONOPERATOR3D = 3331915920; var IFCCARTESIANTRANSFORMATIONOPERATOR2DNONUNIFORM = 3486308946; var IFCCARTESIANTRANSFORMATIONOPERATOR2D = 3749851601; var IFCCARTESIANTRANSFORMATIONOPERATOR = 59481748; var IFCCARTESIANPOINT = 1123145078; var IFCCSHAPEPROFILEDEF = 2898889636; var IFCBOXEDHALFSPACE = 2713105998; var IFCBOUNDINGBOX = 2581212453; var IFCBOUNDEDSURFACE = 4182860854; var IFCBOOLEANRESULT = 2736907675; var IFCAXIS2PLACEMENT3D = 2740243338; var IFCAXIS2PLACEMENT2D = 3125803723; var IFCAXIS1PLACEMENT = 4261334040; var IFCANNOTATIONSURFACE = 1302238472; var IFCANNOTATIONFILLAREAOCCURRENCE = 2265737646; var IFCANNOTATIONFILLAREA = 669184980; var IFCANNOTATIONCURVEOCCURRENCE = 3288037868; var IFCZSHAPEPROFILEDEF = 2543172580; var IFCWINDOWSTYLE = 1299126871; var IFCWINDOWPANELPROPERTIES = 512836454; var IFCWINDOWLININGPROPERTIES = 336235671; var IFCVERTEXLOOP = 2759199220; var IFCVECTOR = 1417489154; var IFCUSHAPEPROFILEDEF = 427810014; var IFCTYPEPRODUCT = 2347495698; var IFCTYPEOBJECT = 1628702193; var IFCTWODIRECTIONREPEATFACTOR = 1345879162; var IFCTRAPEZIUMPROFILEDEF = 2715220739; var IFCTEXTLITERALWITHEXTENT = 3124975700; var IFCTEXTLITERAL = 4282788508; var IFCTERMINATORSYMBOL = 3028897424; var IFCTSHAPEPROFILEDEF = 3071757647; var IFCSWEPTSURFACE = 230924584; var IFCSWEPTDISKSOLID = 1260650574; var IFCSWEPTAREASOLID = 2247615214; var IFCSURFACESTYLERENDERING = 1878645084; var IFCSURFACE = 2513912981; var IFCSUBEDGE = 2233826070; var IFCSTRUCTURALSTEELPROFILEPROPERTIES = 3653947884; var IFCSTRUCTURALPROFILEPROPERTIES = 3843319758; var IFCSTRUCTURALLOADSINGLEFORCEWARPING = 1190533807; var IFCSTRUCTURALLOADSINGLEFORCE = 1597423693; var IFCSTRUCTURALLOADSINGLEDISPLACEMENTDISTORTION = 1973038258; var IFCSTRUCTURALLOADSINGLEDISPLACEMENT = 2473145415; var IFCSTRUCTURALLOADPLANARFORCE = 2668620305; var IFCSTRUCTURALLOADLINEARFORCE = 1595516126; var IFCSPACETHERMALLOADPROPERTIES = 390701378; var IFCSOUNDVALUE = 1202362311; var IFCSOUNDPROPERTIES = 2485662743; var IFCSOLIDMODEL = 723233188; var IFCSLIPPAGECONNECTIONCONDITION = 2609359061; var IFCSHELLBASEDSURFACEMODEL = 4124623270; var IFCSERVICELIFEFACTOR = 2411513650; var IFCSECTIONEDSPINE = 1509187699; var IFCROUNDEDRECTANGLEPROFILEDEF = 2778083089; var IFCRELATIONSHIP = 478536968; var IFCREINFORCEMENTDEFINITIONPROPERTIES = 3765753017; var IFCREGULARTIMESERIES = 3413951693; var IFCRECTANGLEPROFILEDEF = 3615266464; var IFCPROPERTYTABLEVALUE = 110355661; var IFCPROPERTYSINGLEVALUE = 3650150729; var IFCPROPERTYSETDEFINITION = 3357820518; var IFCPROPERTYREFERENCEVALUE = 941946838; var IFCPROPERTYLISTVALUE = 2752243245; var IFCPROPERTYENUMERATEDVALUE = 4166981789; var IFCPROPERTYDEFINITION = 1680319473; var IFCPROPERTYBOUNDEDVALUE = 871118103; var IFCPRODUCTDEFINITIONSHAPE = 673634403; var IFCPREDEFINEDPOINTMARKERSYMBOL = 179317114; var IFCPREDEFINEDDIMENSIONSYMBOL = 433424934; var IFCPREDEFINEDCURVEFONT = 2559016684; var IFCPREDEFINEDCOLOUR = 759155922; var IFCPOLYGONALBOUNDEDHALFSPACE = 2775532180; var IFCPOLYLOOP = 2924175390; var IFCPOINTONSURFACE = 1423911732; var IFCPOINTONCURVE = 4022376103; var IFCPOINT = 2067069095; var IFCPLANAREXTENT = 1663979128; var IFCPLACEMENT = 2004835150; var IFCPIXELTEXTURE = 597895409; var IFCPHYSICALCOMPLEXQUANTITY = 3021840470; var IFCPATH = 2519244187; var IFCPARAMETERIZEDPROFILEDEF = 2529465313; var IFCORIENTEDEDGE = 1029017970; var IFCOPENSHELL = 2665983363; var IFCONEDIRECTIONREPEATFACTOR = 2833995503; var IFCOBJECTDEFINITION = 219451334; var IFCMECHANICALCONCRETEMATERIALPROPERTIES = 1430189142; var IFCMATERIALDEFINITIONREPRESENTATION = 2022407955; var IFCMAPPEDITEM = 2347385850; var IFCLOOP = 1008929658; var IFCLOCALPLACEMENT = 2624227202; var IFCLIGHTSOURCESPOT = 3422422726; var IFCLIGHTSOURCEPOSITIONAL = 1520743889; var IFCLIGHTSOURCEGONIOMETRIC = 4266656042; var IFCLIGHTSOURCEDIRECTIONAL = 2604431987; var IFCLIGHTSOURCEAMBIENT = 125510826; var IFCLIGHTSOURCE = 1402838566; var IFCIRREGULARTIMESERIES = 3741457305; var IFCIMAGETEXTURE = 3905492369; var IFCHYGROSCOPICMATERIALPROPERTIES = 2445078500; var IFCHALFSPACESOLID = 812098782; var IFCGRIDPLACEMENT = 178086475; var IFCGEOMETRICSET = 3590301190; var IFCGEOMETRICREPRESENTATIONSUBCONTEXT = 4142052618; var IFCGEOMETRICREPRESENTATIONITEM = 2453401579; var IFCGEOMETRICREPRESENTATIONCONTEXT = 3448662350; var IFCGENERALPROFILEPROPERTIES = 1446786286; var IFCGENERALMATERIALPROPERTIES = 803998398; var IFCFUELPROPERTIES = 3857492461; var IFCFILLAREASTYLE = 738692330; var IFCFAILURECONNECTIONCONDITION = 4219587988; var IFCFACESURFACE = 3008276851; var IFCFACEOUTERBOUND = 803316827; var IFCFACEBOUND = 1809719519; var IFCFACE = 2556980723; var IFCEXTENDEDMATERIALPROPERTIES = 1860660968; var IFCEDGECURVE = 476780140; var IFCEDGE = 3900360178; var IFCDRAUGHTINGPREDEFINEDTEXTFONT = 4170525392; var IFCDOCUMENTREFERENCE = 3732053477; var IFCDIMENSIONPAIR = 1694125774; var IFCDIMENSIONCALLOUTRELATIONSHIP = 2273265877; var IFCDERIVEDPROFILEDEF = 3632507154; var IFCCURVESTYLE = 3800577675; var IFCCONVERSIONBASEDUNIT = 2889183280; var IFCCONTEXTDEPENDENTUNIT = 3050246964; var IFCCONNECTIONPOINTECCENTRICITY = 45288368; var IFCCONNECTIONCURVEGEOMETRY = 1981873012; var IFCCONNECTEDFACESET = 370225590; var IFCCOMPOSITEPROFILEDEF = 1485152156; var IFCCOMPLEXPROPERTY = 2542286263; var IFCCOLOURRGB = 776857604; var IFCCLASSIFICATIONREFERENCE = 647927063; var IFCCENTERLINEPROFILEDEF = 3150382593; var IFCBLOBTEXTURE = 616511568; var IFCARBITRARYPROFILEDEFWITHVOIDS = 2705031697; var IFCARBITRARYOPENPROFILEDEF = 1310608509; var IFCARBITRARYCLOSEDPROFILEDEF = 3798115385; var IFCANNOTATIONTEXTOCCURRENCE = 2297822566; var IFCANNOTATIONSYMBOLOCCURRENCE = 3612888222; var IFCANNOTATIONSURFACEOCCURRENCE = 962685235; var IFCANNOTATIONOCCURRENCE = 2442683028; var IFCWATERPROPERTIES = 1065908215; var IFCVIRTUALGRIDINTERSECTION = 891718957; var IFCVERTEXPOINT = 1907098498; var IFCVERTEX = 2799835756; var IFCTOPOLOGYREPRESENTATION = 1735638870; var IFCTOPOLOGICALREPRESENTATIONITEM = 1377556343; var IFCTIMESERIESREFERENCERELATIONSHIP = 1718945513; var IFCTHERMALMATERIALPROPERTIES = 3317419933; var IFCTEXTUREVERTEX = 1210645708; var IFCTEXTUREMAP = 2552916305; var IFCTEXTURECOORDINATEGENERATOR = 1742049831; var IFCTEXTURECOORDINATE = 280115917; var IFCTEXTSTYLETEXTMODEL = 1640371178; var IFCTEXTSTYLEFORDEFINEDFONT = 2636378356; var IFCTEXTSTYLEFONTMODEL = 1983826977; var IFCTEXTSTYLE = 1447204868; var IFCTELECOMADDRESS = 912023232; var IFCTABLE = 985171141; var IFCSYMBOLSTYLE = 1290481447; var IFCSURFACETEXTURE = 626085974; var IFCSURFACESTYLEWITHTEXTURES = 1351298697; var IFCSURFACESTYLESHADING = 846575682; var IFCSURFACESTYLEREFRACTION = 1607154358; var IFCSURFACESTYLELIGHTING = 3303107099; var IFCSURFACESTYLE = 1300840506; var IFCSTYLEDREPRESENTATION = 3049322572; var IFCSTYLEDITEM = 3958052878; var IFCSTYLEMODEL = 2830218821; var IFCSTRUCTURALLOADTEMPERATURE = 3408363356; var IFCSTRUCTURALLOADSTATIC = 2525727697; var IFCSIMPLEPROPERTY = 3692461612; var IFCSHAPEREPRESENTATION = 4240577450; var IFCSHAPEMODEL = 3982875396; var IFCSHAPEASPECT = 867548509; var IFCSECTIONREINFORCEMENTPROPERTIES = 4165799628; var IFCSECTIONPROPERTIES = 2042790032; var IFCSIUNIT = 448429030; var IFCRIBPLATEPROFILEPROPERTIES = 3679540991; var IFCREPRESENTATIONMAP = 1660063152; var IFCREPRESENTATION = 1076942058; var IFCREINFORCEMENTBARPROPERTIES = 1580146022; var IFCREFERENCESVALUEDOCUMENT = 2692823254; var IFCQUANTITYWEIGHT = 825690147; var IFCQUANTITYVOLUME = 2405470396; var IFCQUANTITYTIME = 3252649465; var IFCQUANTITYLENGTH = 931644368; var IFCQUANTITYCOUNT = 2093928680; var IFCQUANTITYAREA = 2044713172; var IFCPROPERTYENUMERATION = 3710013099; var IFCPROPERTYDEPENDENCYRELATIONSHIP = 148025276; var IFCPROPERTYCONSTRAINTRELATIONSHIP = 3896028662; var IFCPROPERTY = 2598011224; var IFCPROFILEPROPERTIES = 2802850158; var IFCPRODUCTSOFCOMBUSTIONPROPERTIES = 2267347899; var IFCPRODUCTREPRESENTATION = 2095639259; var IFCPRESENTATIONLAYERWITHSTYLE = 1304840413; var IFCPRESENTATIONLAYERASSIGNMENT = 2022622350; var IFCPREDEFINEDTEXTFONT = 1775413392; var IFCPREDEFINEDTERMINATORSYMBOL = 3213052703; var IFCPREDEFINEDSYMBOL = 990879717; var IFCPREDEFINEDITEM = 3727388367; var IFCPOSTALADDRESS = 3355820592; var IFCPHYSICALSIMPLEQUANTITY = 2226359599; var IFCPERSONANDORGANIZATION = 101040310; var IFCPERSON = 2077209135; var IFCORGANIZATIONRELATIONSHIP = 1411181986; var IFCORGANIZATION = 4251960020; var IFCOPTICALMATERIALPROPERTIES = 1227763645; var IFCOBJECTIVE = 2251480897; var IFCOBJECTPLACEMENT = 3701648758; var IFCMETRIC = 3368373690; var IFCMECHANICALSTEELMATERIALPROPERTIES = 677618848; var IFCMECHANICALMATERIALPROPERTIES = 4256014907; var IFCMATERIALPROPERTIES = 3265635763; var IFCMATERIALLAYERSETUSAGE = 1303795690; var IFCMATERIALLAYERSET = 3303938423; var IFCMATERIALLAYER = 248100487; var IFCMATERIALCLASSIFICATIONRELATIONSHIP = 1847130766; var IFCMATERIAL = 1838606355; var IFCLIBRARYREFERENCE = 3452421091; var IFCLIBRARYINFORMATION = 2655187982; var IFCEXTERNALLYDEFINEDTEXTFONT = 3548104201; var IFCEXTERNALLYDEFINEDSYMBOL = 3207319532; var IFCEXTERNALLYDEFINEDSURFACESTYLE = 1040185647; var IFCEXTERNALLYDEFINEDHATCHSTYLE = 2242383968; var IFCENVIRONMENTALIMPACTVALUE = 1648886627; var IFCDRAUGHTINGCALLOUTRELATIONSHIP = 3796139169; var IFCDOCUMENTINFORMATIONRELATIONSHIP = 770865208; var IFCDOCUMENTINFORMATION = 1154170062; var IFCCURVESTYLEFONTPATTERN = 3510044353; var IFCCURVESTYLEFONTANDSCALING = 2367409068; var IFCCURVESTYLEFONT = 1105321065; var IFCCURRENCYRELATIONSHIP = 539742890; var IFCCOSTVALUE = 602808272; var IFCCONSTRAINTRELATIONSHIP = 347226245; var IFCCONSTRAINTCLASSIFICATIONRELATIONSHIP = 613356794; var IFCCONSTRAINTAGGREGATIONRELATIONSHIP = 1658513725; var IFCCONNECTIONSURFACEGEOMETRY = 2732653382; var IFCCONNECTIONPORTGEOMETRY = 4257277454; var IFCCONNECTIONPOINTGEOMETRY = 2614616156; var IFCCOLOURSPECIFICATION = 3264961684; var IFCCLASSIFICATIONITEMRELATIONSHIP = 1098599126; var IFCCLASSIFICATIONITEM = 1767535486; var IFCCLASSIFICATION = 747523909; var IFCBOUNDARYNODECONDITIONWARPING = 2069777674; var IFCBOUNDARYNODECONDITION = 1387855156; var IFCBOUNDARYFACECONDITION = 3367102660; var IFCBOUNDARYEDGECONDITION = 1560379544; var IFCAPPROVALRELATIONSHIP = 3869604511; var IFCAPPROVALACTORRELATIONSHIP = 2080292479; var IFCAPPLIEDVALUERELATIONSHIP = 1110488051; var FILE_DESCRIPTION = 599546466; var FILE_NAME = 1390159747; var FILE_SCHEMA = 1109904537; var Handle = class { constructor(value) { this.value = value; this.type = 5; } }; var IfcLineObject = class { constructor(expressID) { this.expressID = expressID; this.type = 0; } }; var FromRawLineData = []; var InversePropertyDef = {}; var InheritanceDef = {}; var Constructors = {}; var ToRawLineData = {}; var TypeInitialisers = {}; var SchemaNames = []; function TypeInitialiser(schema, tapeItem) { if (tapeItem.typecode) return TypeInitialisers[schema][tapeItem.typecode](tapeItem.value); else return tapeItem.value; } function Labelise(tapeItem) { tapeItem.valueType = tapeItem.type; tapeItem.type = 2; tapeItem.label = tapeItem.constructor.name.toUpperCase(); return tapeItem; } var Schemas; (function(Schemas2) { Schemas2["IFC2X3"] = "IFC2X3"; Schemas2["IFC4_3"] = "IFC4.3"; Schemas2["IFC4"] = "IFC4"; })(Schemas || (Schemas = {})); SchemaNames[1] = "IFC2X3"; FromRawLineData[1] = { 3630933823: (id, v) => new IFC2X3.IfcActorRole(id, v[0], !v[1] ? null : new IFC2X3.IfcLabel(v[1].value), !v[2] ? null : new IFC2X3.IfcText(v[2].value)), 618182010: (id, v) => new IFC2X3.IfcAddress(id, v[0], !v[1] ? null : new IFC2X3.IfcText(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value)), 639542469: (id, v) => new IFC2X3.IfcApplication(id, new Handle(v[0].value), new IFC2X3.IfcLabel(v[1].value), new IFC2X3.IfcLabel(v[2].value), new IFC2X3.IfcIdentifier(v[3].value)), 411424972: (id, v) => new IFC2X3.IfcAppliedValue(id, !v[0] ? null : new IFC2X3.IfcLabel(v[0].value), !v[1] ? null : new IFC2X3.IfcText(v[1].value), !v[2] ? null : new Handle(v[2].value), !v[3] ? null : new Handle(v[3].value), !v[4] ? null : new Handle(v[4].value), !v[5] ? null : new Handle(v[5].value)), 1110488051: (id, v) => new IFC2X3.IfcAppliedValueRelationship(id, new Handle(v[0].value), v[1].map((p) => new Handle(p.value)), v[2], !v[3] ? null : new IFC2X3.IfcLabel(v[3].value), !v[4] ? null : new IFC2X3.IfcText(v[4].value)), 130549933: (id, v) => new IFC2X3.IfcApproval(id, !v[0] ? null : new IFC2X3.IfcText(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcLabel(v[3].value), !v[4] ? null : new IFC2X3.IfcText(v[4].value), new IFC2X3.IfcLabel(v[5].value), new IFC2X3.IfcIdentifier(v[6].value)), 2080292479: (id, v) => new IFC2X3.IfcApprovalActorRelationship(id, new Handle(v[0].value), new Handle(v[1].value), new Handle(v[2].value)), 390851274: (id, v) => new IFC2X3.IfcApprovalPropertyRelationship(id, v[0].map((p) => new Handle(p.value)), new Handle(v[1].value)), 3869604511: (id, v) => new IFC2X3.IfcApprovalRelationship(id, new Handle(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcText(v[2].value), new IFC2X3.IfcLabel(v[3].value)), 4037036970: (id, v) => new IFC2X3.IfcBoundaryCondition(id, !v[0] ? null : new IFC2X3.IfcLabel(v[0].value)), 1560379544: (id, v) => new IFC2X3.IfcBoundaryEdgeCondition(id, !v[0] ? null : new IFC2X3.IfcLabel(v[0].value), !v[1] ? null : new IFC2X3.IfcModulusOfLinearSubgradeReactionMeasure(v[1].value), !v[2] ? null : new IFC2X3.IfcModulusOfLinearSubgradeReactionMeasure(v[2].value), !v[3] ? null : new IFC2X3.IfcModulusOfLinearSubgradeReactionMeasure(v[3].value), !v[4] ? null : new IFC2X3.IfcModulusOfRotationalSubgradeReactionMeasure(v[4].value), !v[5] ? null : new IFC2X3.IfcModulusOfRotationalSubgradeReactionMeasure(v[5].value), !v[6] ? null : new IFC2X3.IfcModulusOfRotationalSubgradeReactionMeasure(v[6].value)), 3367102660: (id, v) => new IFC2X3.IfcBoundaryFaceCondition(id, !v[0] ? null : new IFC2X3.IfcLabel(v[0].value), !v[1] ? null : new IFC2X3.IfcModulusOfSubgradeReactionMeasure(v[1].value), !v[2] ? null : new IFC2X3.IfcModulusOfSubgradeReactionMeasure(v[2].value), !v[3] ? null : new IFC2X3.IfcModulusOfSubgradeReactionMeasure(v[3].value)), 1387855156: (id, v) => new IFC2X3.IfcBoundaryNodeCondition(id, !v[0] ? null : new IFC2X3.IfcLabel(v[0].value), !v[1] ? null : new IFC2X3.IfcLinearStiffnessMeasure(v[1].value), !v[2] ? null : new IFC2X3.IfcLinearStiffnessMeasure(v[2].value), !v[3] ? null : new IFC2X3.IfcLinearStiffnessMeasure(v[3].value), !v[4] ? null : new IFC2X3.IfcRotationalStiffnessMeasure(v[4].value), !v[5] ? null : new IFC2X3.IfcRotationalStiffnessMeasure(v[5].value), !v[6] ? null : new IFC2X3.IfcRotationalStiffnessMeasure(v[6].value)), 2069777674: (id, v) => new IFC2X3.IfcBoundaryNodeConditionWarping(id, !v[0] ? null : new IFC2X3.IfcLabel(v[0].value), !v[1] ? null : new IFC2X3.IfcLinearStiffnessMeasure(v[1].value), !v[2] ? null : new IFC2X3.IfcLinearStiffnessMeasure(v[2].value), !v[3] ? null : new IFC2X3.IfcLinearStiffnessMeasure(v[3].value), !v[4] ? null : new IFC2X3.IfcRotationalStiffnessMeasure(v[4].value), !v[5] ? null : new IFC2X3.IfcRotationalStiffnessMeasure(v[5].value), !v[6] ? null : new IFC2X3.IfcRotationalStiffnessMeasure(v[6].value), !v[7] ? null : new IFC2X3.IfcWarpingMomentMeasure(v[7].value)), 622194075: (id, v) => new IFC2X3.IfcCalendarDate(id, new IFC2X3.IfcDayInMonthNumber(v[0].value), new IFC2X3.IfcMonthInYearNumber(v[1].value), new IFC2X3.IfcYearNumber(v[2].value)), 747523909: (id, v) => new IFC2X3.IfcClassification(id, new IFC2X3.IfcLabel(v[0].value), new IFC2X3.IfcLabel(v[1].value), !v[2] ? null : new Handle(v[2].value), new IFC2X3.IfcLabel(v[3].value)), 1767535486: (id, v) => new IFC2X3.IfcClassificationItem(id, new Handle(v[0].value), !v[1] ? null : new Handle(v[1].value), new IFC2X3.IfcLabel(v[2].value)), 1098599126: (id, v) => new IFC2X3.IfcClassificationItemRelationship(id, new Handle(v[0].value), v[1].map((p) => new Handle(p.value))), 938368621: (id, v) => new IFC2X3.IfcClassificationNotation(id, v[0].map((p) => new Handle(p.value))), 3639012971: (id, v) => new IFC2X3.IfcClassificationNotationFacet(id, new IFC2X3.IfcLabel(v[0].value)), 3264961684: (id, v) => new IFC2X3.IfcColourSpecification(id, !v[0] ? null : new IFC2X3.IfcLabel(v[0].value)), 2859738748: (id, _) => new IFC2X3.IfcConnectionGeometry(id), 2614616156: (id, v) => new IFC2X3.IfcConnectionPointGeometry(id, new Handle(v[0].value), !v[1] ? null : new Handle(v[1].value)), 4257277454: (id, v) => new IFC2X3.IfcConnectionPortGeometry(id, new Handle(v[0].value), !v[1] ? null : new Handle(v[1].value), new Handle(v[2].value)), 2732653382: (id, v) => new IFC2X3.IfcConnectionSurfaceGeometry(id, new Handle(v[0].value), !v[1] ? null : new Handle(v[1].value)), 1959218052: (id, v) => new IFC2X3.IfcConstraint(id, new IFC2X3.IfcLabel(v[0].value), !v[1] ? null : new IFC2X3.IfcText(v[1].value), v[2], !v[3] ? null : new IFC2X3.IfcLabel(v[3].value), !v[4] ? null : new Handle(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new IFC2X3.IfcLabel(v[6].value)), 1658513725: (id, v) => new IFC2X3.IfcConstraintAggregationRelationship(id, !v[0] ? null : new IFC2X3.IfcLabel(v[0].value), !v[1] ? null : new IFC2X3.IfcText(v[1].value), new Handle(v[2].value), v[3].map((p) => new Handle(p.value)), v[4]), 613356794: (id, v) => new IFC2X3.IfcConstraintClassificationRelationship(id, new Handle(v[0].value), v[1].map((p) => new Handle(p.value))), 347226245: (id, v) => new IFC2X3.IfcConstraintRelationship(id, !v[0] ? null : new IFC2X3.IfcLabel(v[0].value), !v[1] ? null : new IFC2X3.IfcText(v[1].value), new Handle(v[2].value), v[3].map((p) => new Handle(p.value))), 1065062679: (id, v) => new IFC2X3.IfcCoordinatedUniversalTimeOffset(id, new IFC2X3.IfcHourInDay(v[0].value), !v[1] ? null : new IFC2X3.IfcMinuteInHour(v[1].value), v[2]), 602808272: (id, v) => new IFC2X3.IfcCostValue(id, !v[0] ? null : new IFC2X3.IfcLabel(v[0].value), !v[1] ? null : new IFC2X3.IfcText(v[1].value), !v[2] ? null : new Handle(v[2].value), !v[3] ? null : new Handle(v[3].value), !v[4] ? null : new Handle(v[4].value), !v[5] ? null : new Handle(v[5].value), new IFC2X3.IfcLabel(v[6].value), !v[7] ? null : new IFC2X3.IfcText(v[7].value)), 539742890: (id, v) => new IFC2X3.IfcCurrencyRelationship(id, new Handle(v[0].value), new Handle(v[1].value), new IFC2X3.IfcPositiveRatioMeasure(v[2].value), new Handle(v[3].value), !v[4] ? null : new Handle(v[4].value)), 1105321065: (id, v) => new IFC2X3.IfcCurveStyleFont(id, !v[0] ? null : new IFC2X3.IfcLabel(v[0].value), v[1].map((p) => new Handle(p.value))), 2367409068: (id, v) => new IFC2X3.IfcCurveStyleFontAndScaling(id, !v[0] ? null : new IFC2X3.IfcLabel(v[0].value), new Handle(v[1].value), new IFC2X3.IfcPositiveRatioMeasure(v[2].value)), 3510044353: (id, v) => new IFC2X3.IfcCurveStyleFontPattern(id, new IFC2X3.IfcLengthMeasure(v[0].value), new IFC2X3.IfcPositiveLengthMeasure(v[1].value)), 1072939445: (id, v) => new IFC2X3.IfcDateAndTime(id, new Handle(v[0].value), new Handle(v[1].value)), 1765591967: (id, v) => new IFC2X3.IfcDerivedUnit(id, v[0].map((p) => new Handle(p.value)), v[1], !v[2] ? null : new IFC2X3.IfcLabel(v[2].value)), 1045800335: (id, v) => new IFC2X3.IfcDerivedUnitElement(id, new Handle(v[0].value), v[1].value), 2949456006: (id, v) => new IFC2X3.IfcDimensionalExponents(id, v[0].value, v[1].value, v[2].value, v[3].value, v[4].value, v[5].value, v[6].value), 1376555844: (id, v) => new IFC2X3.IfcDocumentElectronicFormat(id, !v[0] ? null : new IFC2X3.IfcLabel(v[0].value), !v[1] ? null : new IFC2X3.IfcLabel(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value)), 1154170062: (id, v) => new IFC2X3.IfcDocumentInformation(id, new IFC2X3.IfcIdentifier(v[0].value), new IFC2X3.IfcLabel(v[1].value), !v[2] ? null : new IFC2X3.IfcText(v[2].value), !v[3] ? null : v[3].map((p) => new Handle(p.value)), !v[4] ? null : new IFC2X3.IfcText(v[4].value), !v[5] ? null : new IFC2X3.IfcText(v[5].value), !v[6] ? null : new IFC2X3.IfcText(v[6].value), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new Handle(v[8].value), !v[9] ? null : v[9].map((p) => new Handle(p.value)), !v[10] ? null : new Handle(v[10].value), !v[11] ? null : new Handle(v[11].value), !v[12] ? null : new Handle(v[12].value), !v[13] ? null : new Handle(v[13].value), !v[14] ? null : new Handle(v[14].value), v[15], v[16]), 770865208: (id, v) => new IFC2X3.IfcDocumentInformationRelationship(id, new Handle(v[0].value), v[1].map((p) => new Handle(p.value)), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value)), 3796139169: (id, v) => new IFC2X3.IfcDraughtingCalloutRelationship(id, !v[0] ? null : new IFC2X3.IfcLabel(v[0].value), !v[1] ? null : new IFC2X3.IfcText(v[1].value), new Handle(v[2].value), new Handle(v[3].value)), 1648886627: (id, v) => new IFC2X3.IfcEnvironmentalImpactValue(id, !v[0] ? null : new IFC2X3.IfcLabel(v[0].value), !v[1] ? null : new IFC2X3.IfcText(v[1].value), !v[2] ? null : new Handle(v[2].value), !v[3] ? null : new Handle(v[3].value), !v[4] ? null : new Handle(v[4].value), !v[5] ? null : new Handle(v[5].value), new IFC2X3.IfcLabel(v[6].value), v[7], !v[8] ? null : new IFC2X3.IfcLabel(v[8].value)), 3200245327: (id, v) => new IFC2X3.IfcExternalReference(id, !v[0] ? null : new IFC2X3.IfcLabel(v[0].value), !v[1] ? null : new IFC2X3.IfcIdentifier(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value)), 2242383968: (id, v) => new IFC2X3.IfcExternallyDefinedHatchStyle(id, !v[0] ? null : new IFC2X3.IfcLabel(v[0].value), !v[1] ? null : new IFC2X3.IfcIdentifier(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value)), 1040185647: (id, v) => new IFC2X3.IfcExternallyDefinedSurfaceStyle(id, !v[0] ? null : new IFC2X3.IfcLabel(v[0].value), !v[1] ? null : new IFC2X3.IfcIdentifier(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value)), 3207319532: (id, v) => new IFC2X3.IfcExternallyDefinedSymbol(id, !v[0] ? null : new IFC2X3.IfcLabel(v[0].value), !v[1] ? null : new IFC2X3.IfcIdentifier(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value)), 3548104201: (id, v) => new IFC2X3.IfcExternallyDefinedTextFont(id, !v[0] ? null : new IFC2X3.IfcLabel(v[0].value), !v[1] ? null : new IFC2X3.IfcIdentifier(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value)), 852622518: (id, v) => new IFC2X3.IfcGridAxis(id, !v[0] ? null : new IFC2X3.IfcLabel(v[0].value), new Handle(v[1].value), new IFC2X3.IfcBoolean(v[2].value)), 3020489413: (id, v) => new IFC2X3.IfcIrregularTimeSeriesValue(id, new Handle(v[0].value), v[1].map((p) => TypeInitialiser(1, p))), 2655187982: (id, v) => new IFC2X3.IfcLibraryInformation(id, new IFC2X3.IfcLabel(v[0].value), !v[1] ? null : new IFC2X3.IfcLabel(v[1].value), !v[2] ? null : new Handle(v[2].value), !v[3] ? null : new Handle(v[3].value), !v[4] ? null : v[4].map((p) => new Handle(p.value))), 3452421091: (id, v) => new IFC2X3.IfcLibraryReference(id, !v[0] ? null : new IFC2X3.IfcLabel(v[0].value), !v[1] ? null : new IFC2X3.IfcIdentifier(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value)), 4162380809: (id, v) => new IFC2X3.IfcLightDistributionData(id, new IFC2X3.IfcPlaneAngleMeasure(v[0].value), v[1].map((p) => new IFC2X3.IfcPlaneAngleMeasure(p.value)), v[2].map((p) => new IFC2X3.IfcLuminousIntensityDistributionMeasure(p.value))), 1566485204: (id, v) => new IFC2X3.IfcLightIntensityDistribution(id, v[0], v[1].map((p) => new Handle(p.value))), 30780891: (id, v) => new IFC2X3.IfcLocalTime(id, new IFC2X3.IfcHourInDay(v[0].value), !v[1] ? null : new IFC2X3.IfcMinuteInHour(v[1].value), !v[2] ? null : new IFC2X3.IfcSecondInMinute(v[2].value), !v[3] ? null : new Handle(v[3].value), !v[4] ? null : new IFC2X3.IfcDaylightSavingHour(v[4].value)), 1838606355: (id, v) => new IFC2X3.IfcMaterial(id, new IFC2X3.IfcLabel(v[0].value)), 1847130766: (id, v) => new IFC2X3.IfcMaterialClassificationRelationship(id, v[0].map((p) => new Handle(p.value)), new Handle(v[1].value)), 248100487: (id, v) => new IFC2X3.IfcMaterialLayer(id, !v[0] ? null : new Handle(v[0].value), new IFC2X3.IfcPositiveLengthMeasure(v[1].value), !v[2] ? null : new IFC2X3.IfcLogical(v[2].value)), 3303938423: (id, v) => new IFC2X3.IfcMaterialLayerSet(id, v[0].map((p) => new Handle(p.value)), !v[1] ? null : new IFC2X3.IfcLabel(v[1].value)), 1303795690: (id, v) => new IFC2X3.IfcMaterialLayerSetUsage(id, new Handle(v[0].value), v[1], v[2], new IFC2X3.IfcLengthMeasure(v[3].value)), 2199411900: (id, v) => new IFC2X3.IfcMaterialList(id, v[0].map((p) => new Handle(p.value))), 3265635763: (id, v) => new IFC2X3.IfcMaterialProperties(id, new Handle(v[0].value)), 2597039031: (id, v) => new IFC2X3.IfcMeasureWithUnit(id, TypeInitialiser(1, v[0]), new Handle(v[1].value)), 4256014907: (id, v) => new IFC2X3.IfcMechanicalMaterialProperties(id, new Handle(v[0].value), !v[1] ? null : new IFC2X3.IfcDynamicViscosityMeasure(v[1].value), !v[2] ? null : new IFC2X3.IfcModulusOfElasticityMeasure(v[2].value), !v[3] ? null : new IFC2X3.IfcModulusOfElasticityMeasure(v[3].value), !v[4] ? null : new IFC2X3.IfcPositiveRatioMeasure(v[4].value), !v[5] ? null : new IFC2X3.IfcThermalExpansionCoefficientMeasure(v[5].value)), 677618848: (id, v) => new IFC2X3.IfcMechanicalSteelMaterialProperties(id, new Handle(v[0].value), !v[1] ? null : new IFC2X3.IfcDynamicViscosityMeasure(v[1].value), !v[2] ? null : new IFC2X3.IfcModulusOfElasticityMeasure(v[2].value), !v[3] ? null : new IFC2X3.IfcModulusOfElasticityMeasure(v[3].value), !v[4] ? null : new IFC2X3.IfcPositiveRatioMeasure(v[4].value), !v[5] ? null : new IFC2X3.IfcThermalExpansionCoefficientMeasure(v[5].value), !v[6] ? null : new IFC2X3.IfcPressureMeasure(v[6].value), !v[7] ? null : new IFC2X3.IfcPressureMeasure(v[7].value), !v[8] ? null : new IFC2X3.IfcPositiveRatioMeasure(v[8].value), !v[9] ? null : new IFC2X3.IfcModulusOfElasticityMeasure(v[9].value), !v[10] ? null : new IFC2X3.IfcPressureMeasure(v[10].value), !v[11] ? null : new IFC2X3.IfcPositiveRatioMeasure(v[11].value), !v[12] ? null : v[12].map((p) => new Handle(p.value))), 3368373690: (id, v) => new IFC2X3.IfcMetric(id, new IFC2X3.IfcLabel(v[0].value), !v[1] ? null : new IFC2X3.IfcText(v[1].value), v[2], !v[3] ? null : new IFC2X3.IfcLabel(v[3].value), !v[4] ? null : new Handle(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new IFC2X3.IfcLabel(v[6].value), v[7], !v[8] ? null : new IFC2X3.IfcLabel(v[8].value), new Handle(v[9].value)), 2706619895: (id, v) => new IFC2X3.IfcMonetaryUnit(id, v[0]), 1918398963: (id, v) => new IFC2X3.IfcNamedUnit(id, new Handle(v[0].value), v[1]), 3701648758: (id, _) => new IFC2X3.IfcObjectPlacement(id), 2251480897: (id, v) => new IFC2X3.IfcObjective(id, new IFC2X3.IfcLabel(v[0].value), !v[1] ? null : new IFC2X3.IfcText(v[1].value), v[2], !v[3] ? null : new IFC2X3.IfcLabel(v[3].value), !v[4] ? null : new Handle(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new IFC2X3.IfcLabel(v[6].value), !v[7] ? null : new Handle(v[7].value), !v[8] ? null : new Handle(v[8].value), v[9], !v[10] ? null : new IFC2X3.IfcLabel(v[10].value)), 1227763645: (id, v) => new IFC2X3.IfcOpticalMaterialProperties(id, new Handle(v[0].value), !v[1] ? null : new IFC2X3.IfcPositiveRatioMeasure(v[1].value), !v[2] ? null : new IFC2X3.IfcPositiveRatioMeasure(v[2].value), !v[3] ? null : new IFC2X3.IfcPositiveRatioMeasure(v[3].value), !v[4] ? null : new IFC2X3.IfcPositiveRatioMeasure(v[4].value), !v[5] ? null : new IFC2X3.IfcPositiveRatioMeasure(v[5].value), !v[6] ? null : new IFC2X3.IfcPositiveRatioMeasure(v[6].value), !v[7] ? null : new IFC2X3.IfcPositiveRatioMeasure(v[7].value), !v[8] ? null : new IFC2X3.IfcPositiveRatioMeasure(v[8].value), !v[9] ? null : new IFC2X3.IfcPositiveRatioMeasure(v[9].value)), 4251960020: (id, v) => new IFC2X3.IfcOrganization(id, !v[0] ? null : new IFC2X3.IfcIdentifier(v[0].value), new IFC2X3.IfcLabel(v[1].value), !v[2] ? null : new IFC2X3.IfcText(v[2].value), !v[3] ? null : v[3].map((p) => new Handle(p.value)), !v[4] ? null : v[4].map((p) => new Handle(p.value))), 1411181986: (id, v) => new IFC2X3.IfcOrganizationRelationship(id, new IFC2X3.IfcLabel(v[0].value), !v[1] ? null : new IFC2X3.IfcText(v[1].value), new Handle(v[2].value), v[3].map((p) => new Handle(p.value))), 1207048766: (id, v) => new IFC2X3.IfcOwnerHistory(id, new Handle(v[0].value), new Handle(v[1].value), v[2], v[3], !v[4] ? null : new IFC2X3.IfcTimeStamp(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), new IFC2X3.IfcTimeStamp(v[7].value)), 2077209135: (id, v) => new IFC2X3.IfcPerson(id, !v[0] ? null : new IFC2X3.IfcIdentifier(v[0].value), !v[1] ? null : new IFC2X3.IfcLabel(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : v[3].map((p) => new IFC2X3.IfcLabel(p.value)), !v[4] ? null : v[4].map((p) => new IFC2X3.IfcLabel(p.value)), !v[5] ? null : v[5].map((p) => new IFC2X3.IfcLabel(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : v[7].map((p) => new Handle(p.value))), 101040310: (id, v) => new IFC2X3.IfcPersonAndOrganization(id, new Handle(v[0].value), new Handle(v[1].value), !v[2] ? null : v[2].map((p) => new Handle(p.value))), 2483315170: (id, v) => new IFC2X3.IfcPhysicalQuantity(id, new IFC2X3.IfcLabel(v[0].value), !v[1] ? null : new IFC2X3.IfcText(v[1].value)), 2226359599: (id, v) => new IFC2X3.IfcPhysicalSimpleQuantity(id, new IFC2X3.IfcLabel(v[0].value), !v[1] ? null : new IFC2X3.IfcText(v[1].value), !v[2] ? null : new Handle(v[2].value)), 3355820592: (id, v) => new IFC2X3.IfcPostalAddress(id, v[0], !v[1] ? null : new IFC2X3.IfcText(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcLabel(v[3].value), !v[4] ? null : v[4].map((p) => new IFC2X3.IfcLabel(p.value)), !v[5] ? null : new IFC2X3.IfcLabel(v[5].value), !v[6] ? null : new IFC2X3.IfcLabel(v[6].value), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value), !v[9] ? null : new IFC2X3.IfcLabel(v[9].value)), 3727388367: (id, v) => new IFC2X3.IfcPreDefinedItem(id, new IFC2X3.IfcLabel(v[0].value)), 990879717: (id, v) => new IFC2X3.IfcPreDefinedSymbol(id, new IFC2X3.IfcLabel(v[0].value)), 3213052703: (id, v) => new IFC2X3.IfcPreDefinedTerminatorSymbol(id, new IFC2X3.IfcLabel(v[0].value)), 1775413392: (id, v) => new IFC2X3.IfcPreDefinedTextFont(id, new IFC2X3.IfcLabel(v[0].value)), 2022622350: (id, v) => new IFC2X3.IfcPresentationLayerAssignment(id, new IFC2X3.IfcLabel(v[0].value), !v[1] ? null : new IFC2X3.IfcText(v[1].value), v[2].map((p) => new Handle(p.value)), !v[3] ? null : new IFC2X3.IfcIdentifier(v[3].value)), 1304840413: (id, v) => new IFC2X3.IfcPresentationLayerWithStyle(id, new IFC2X3.IfcLabel(v[0].value), !v[1] ? null : new IFC2X3.IfcText(v[1].value), v[2].map((p) => new Handle(p.value)), !v[3] ? null : new IFC2X3.IfcIdentifier(v[3].value), v[4].value, v[5].value, v[6].value, v[7].map((p) => new Handle(p.value))), 3119450353: (id, v) => new IFC2X3.IfcPresentationStyle(id, !v[0] ? null : new IFC2X3.IfcLabel(v[0].value)), 2417041796: (id, v) => new IFC2X3.IfcPresentationStyleAssignment(id, v[0].map((p) => new Handle(p.value))), 2095639259: (id, v) => new IFC2X3.IfcProductRepresentation(id, !v[0] ? null : new IFC2X3.IfcLabel(v[0].value), !v[1] ? null : new IFC2X3.IfcText(v[1].value), v[2].map((p) => new Handle(p.value))), 2267347899: (id, v) => new IFC2X3.IfcProductsOfCombustionProperties(id, new Handle(v[0].value), !v[1] ? null : new IFC2X3.IfcSpecificHeatCapacityMeasure(v[1].value), !v[2] ? null : new IFC2X3.IfcPositiveRatioMeasure(v[2].value), !v[3] ? null : new IFC2X3.IfcPositiveRatioMeasure(v[3].value), !v[4] ? null : new IFC2X3.IfcPositiveRatioMeasure(v[4].value)), 3958567839: (id, v) => new IFC2X3.IfcProfileDef(id, v[0], !v[1] ? null : new IFC2X3.IfcLabel(v[1].value)), 2802850158: (id, v) => new IFC2X3.IfcProfileProperties(id, !v[0] ? null : new IFC2X3.IfcLabel(v[0].value), !v[1] ? null : new Handle(v[1].value)), 2598011224: (id, v) => new IFC2X3.IfcProperty(id, new IFC2X3.IfcIdentifier(v[0].value), !v[1] ? null : new IFC2X3.IfcText(v[1].value)), 3896028662: (id, v) => new IFC2X3.IfcPropertyConstraintRelationship(id, new Handle(v[0].value), v[1].map((p) => new Handle(p.value)), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value)), 148025276: (id, v) => new IFC2X3.IfcPropertyDependencyRelationship(id, new Handle(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcText(v[4].value)), 3710013099: (id, v) => new IFC2X3.IfcPropertyEnumeration(id, new IFC2X3.IfcLabel(v[0].value), v[1].map((p) => TypeInitialiser(1, p)), !v[2] ? null : new Handle(v[2].value)), 2044713172: (id, v) => new IFC2X3.IfcQuantityArea(id, new IFC2X3.IfcLabel(v[0].value), !v[1] ? null : new IFC2X3.IfcText(v[1].value), !v[2] ? null : new Handle(v[2].value), new IFC2X3.IfcAreaMeasure(v[3].value)), 2093928680: (id, v) => new IFC2X3.IfcQuantityCount(id, new IFC2X3.IfcLabel(v[0].value), !v[1] ? null : new IFC2X3.IfcText(v[1].value), !v[2] ? null : new Handle(v[2].value), new IFC2X3.IfcCountMeasure(v[3].value)), 931644368: (id, v) => new IFC2X3.IfcQuantityLength(id, new IFC2X3.IfcLabel(v[0].value), !v[1] ? null : new IFC2X3.IfcText(v[1].value), !v[2] ? null : new Handle(v[2].value), new IFC2X3.IfcLengthMeasure(v[3].value)), 3252649465: (id, v) => new IFC2X3.IfcQuantityTime(id, new IFC2X3.IfcLabel(v[0].value), !v[1] ? null : new IFC2X3.IfcText(v[1].value), !v[2] ? null : new Handle(v[2].value), new IFC2X3.IfcTimeMeasure(v[3].value)), 2405470396: (id, v) => new IFC2X3.IfcQuantityVolume(id, new IFC2X3.IfcLabel(v[0].value), !v[1] ? null : new IFC2X3.IfcText(v[1].value), !v[2] ? null : new Handle(v[2].value), new IFC2X3.IfcVolumeMeasure(v[3].value)), 825690147: (id, v) => new IFC2X3.IfcQuantityWeight(id, new IFC2X3.IfcLabel(v[0].value), !v[1] ? null : new IFC2X3.IfcText(v[1].value), !v[2] ? null : new Handle(v[2].value), new IFC2X3.IfcMassMeasure(v[3].value)), 2692823254: (id, v) => new IFC2X3.IfcReferencesValueDocument(id, new Handle(v[0].value), v[1].map((p) => new Handle(p.value)), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value)), 1580146022: (id, v) => new IFC2X3.IfcReinforcementBarProperties(id, new IFC2X3.IfcAreaMeasure(v[0].value), new IFC2X3.IfcLabel(v[1].value), v[2], !v[3] ? null : new IFC2X3.IfcLengthMeasure(v[3].value), !v[4] ? null : new IFC2X3.IfcPositiveLengthMeasure(v[4].value), !v[5] ? null : new IFC2X3.IfcCountMeasure(v[5].value)), 1222501353: (id, v) => new IFC2X3.IfcRelaxation(id, new IFC2X3.IfcNormalisedRatioMeasure(v[0].value), new IFC2X3.IfcNormalisedRatioMeasure(v[1].value)), 1076942058: (id, v) => new IFC2X3.IfcRepresentation(id, new Handle(v[0].value), !v[1] ? null : new IFC2X3.IfcLabel(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), v[3].map((p) => new Handle(p.value))), 3377609919: (id, v) => new IFC2X3.IfcRepresentationContext(id, !v[0] ? null : new IFC2X3.IfcLabel(v[0].value), !v[1] ? null : new IFC2X3.IfcLabel(v[1].value)), 3008791417: (id, _) => new IFC2X3.IfcRepresentationItem(id), 1660063152: (id, v) => new IFC2X3.IfcRepresentationMap(id, new Handle(v[0].value), new Handle(v[1].value)), 3679540991: (id, v) => new IFC2X3.IfcRibPlateProfileProperties(id, !v[0] ? null : new IFC2X3.IfcLabel(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcPositiveLengthMeasure(v[2].value), !v[3] ? null : new IFC2X3.IfcPositiveLengthMeasure(v[3].value), !v[4] ? null : new IFC2X3.IfcPositiveLengthMeasure(v[4].value), !v[5] ? null : new IFC2X3.IfcPositiveLengthMeasure(v[5].value), v[6]), 2341007311: (id, v) => new IFC2X3.IfcRoot(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value)), 448429030: (id, v) => new IFC2X3.IfcSIUnit(id, v[0], v[1], v[2]), 2042790032: (id, v) => new IFC2X3.IfcSectionProperties(id, v[0], new Handle(v[1].value), !v[2] ? null : new Handle(v[2].value)), 4165799628: (id, v) => new IFC2X3.IfcSectionReinforcementProperties(id, new IFC2X3.IfcLengthMeasure(v[0].value), new IFC2X3.IfcLengthMeasure(v[1].value), !v[2] ? null : new IFC2X3.IfcLengthMeasure(v[2].value), v[3], new Handle(v[4].value), v[5].map((p) => new Handle(p.value))), 867548509: (id, v) => new IFC2X3.IfcShapeAspect(id, v[0].map((p) => new Handle(p.value)), !v[1] ? null : new IFC2X3.IfcLabel(v[1].value), !v[2] ? null : new IFC2X3.IfcText(v[2].value), v[3].value, new Handle(v[4].value)), 3982875396: (id, v) => new IFC2X3.IfcShapeModel(id, new Handle(v[0].value), !v[1] ? null : new IFC2X3.IfcLabel(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), v[3].map((p) => new Handle(p.value))), 4240577450: (id, v) => new IFC2X3.IfcShapeRepresentation(id, new Handle(v[0].value), !v[1] ? null : new IFC2X3.IfcLabel(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), v[3].map((p) => new Handle(p.value))), 3692461612: (id, v) => new IFC2X3.IfcSimpleProperty(id, new IFC2X3.IfcIdentifier(v[0].value), !v[1] ? null : new IFC2X3.IfcText(v[1].value)), 2273995522: (id, v) => new IFC2X3.IfcStructuralConnectionCondition(id, !v[0] ? null : new IFC2X3.IfcLabel(v[0].value)), 2162789131: (id, v) => new IFC2X3.IfcStructuralLoad(id, !v[0] ? null : new IFC2X3.IfcLabel(v[0].value)), 2525727697: (id, v) => new IFC2X3.IfcStructuralLoadStatic(id, !v[0] ? null : new IFC2X3.IfcLabel(v[0].value)), 3408363356: (id, v) => new IFC2X3.IfcStructuralLoadTemperature(id, !v[0] ? null : new IFC2X3.IfcLabel(v[0].value), !v[1] ? null : new IFC2X3.IfcThermodynamicTemperatureMeasure(v[1].value), !v[2] ? null : new IFC2X3.IfcThermodynamicTemperatureMeasure(v[2].value), !v[3] ? null : new IFC2X3.IfcThermodynamicTemperatureMeasure(v[3].value)), 2830218821: (id, v) => new IFC2X3.IfcStyleModel(id, new Handle(v[0].value), !v[1] ? null : new IFC2X3.IfcLabel(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), v[3].map((p) => new Handle(p.value))), 3958052878: (id, v) => new IFC2X3.IfcStyledItem(id, !v[0] ? null : new Handle(v[0].value), v[1].map((p) => new Handle(p.value)), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value)), 3049322572: (id, v) => new IFC2X3.IfcStyledRepresentation(id, new Handle(v[0].value), !v[1] ? null : new IFC2X3.IfcLabel(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), v[3].map((p) => new Handle(p.value))), 1300840506: (id, v) => new IFC2X3.IfcSurfaceStyle(id, !v[0] ? null : new IFC2X3.IfcLabel(v[0].value), v[1], v[2].map((p) => new Handle(p.value))), 3303107099: (id, v) => new IFC2X3.IfcSurfaceStyleLighting(id, new Handle(v[0].value), new Handle(v[1].value), new Handle(v[2].value), new Handle(v[3].value)), 1607154358: (id, v) => new IFC2X3.IfcSurfaceStyleRefraction(id, !v[0] ? null : new IFC2X3.IfcReal(v[0].value), !v[1] ? null : new IFC2X3.IfcReal(v[1].value)), 846575682: (id, v) => new IFC2X3.IfcSurfaceStyleShading(id, new Handle(v[0].value)), 1351298697: (id, v) => new IFC2X3.IfcSurfaceStyleWithTextures(id, v[0].map((p) => new Handle(p.value))), 626085974: (id, v) => new IFC2X3.IfcSurfaceTexture(id, v[0].value, v[1].value, v[2], !v[3] ? null : new Handle(v[3].value)), 1290481447: (id, v) => new IFC2X3.IfcSymbolStyle(id, !v[0] ? null : new IFC2X3.IfcLabel(v[0].value), TypeInitialiser(1, v[1])), 985171141: (id, v) => new IFC2X3.IfcTable(id, v[0].value, v[1].map((p) => new Handle(p.value))), 531007025: (id, v) => new IFC2X3.IfcTableRow(id, v[0].map((p) => TypeInitialiser(1, p)), v[1].value), 912023232: (id, v) => new IFC2X3.IfcTelecomAddress(id, v[0], !v[1] ? null : new IFC2X3.IfcText(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : v[3].map((p) => new IFC2X3.IfcLabel(p.value)), !v[4] ? null : v[4].map((p) => new IFC2X3.IfcLabel(p.value)), !v[5] ? null : new IFC2X3.IfcLabel(v[5].value), !v[6] ? null : v[6].map((p) => new IFC2X3.IfcLabel(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value)), 1447204868: (id, v) => new IFC2X3.IfcTextStyle(id, !v[0] ? null : new IFC2X3.IfcLabel(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new Handle(v[2].value), new Handle(v[3].value)), 1983826977: (id, v) => new IFC2X3.IfcTextStyleFontModel(id, new IFC2X3.IfcLabel(v[0].value), !v[1] ? null : v[1].map((p) => new IFC2X3.IfcTextFontName(p.value)), !v[2] ? null : new IFC2X3.IfcFontStyle(v[2].value), !v[3] ? null : new IFC2X3.IfcFontVariant(v[3].value), !v[4] ? null : new IFC2X3.IfcFontWeight(v[4].value), TypeInitialiser(1, v[5])), 2636378356: (id, v) => new IFC2X3.IfcTextStyleForDefinedFont(id, new Handle(v[0].value), !v[1] ? null : new Handle(v[1].value)), 1640371178: (id, v) => new IFC2X3.IfcTextStyleTextModel(id, !v[0] ? null : TypeInitialiser(1, v[0]), !v[1] ? null : new IFC2X3.IfcTextAlignment(v[1].value), !v[2] ? null : new IFC2X3.IfcTextDecoration(v[2].value), !v[3] ? null : TypeInitialiser(1, v[3]), !v[4] ? null : TypeInitialiser(1, v[4]), !v[5] ? null : new IFC2X3.IfcTextTransformation(v[5].value), !v[6] ? null : TypeInitialiser(1, v[6])), 1484833681: (id, v) => new IFC2X3.IfcTextStyleWithBoxCharacteristics(id, !v[0] ? null : new IFC2X3.IfcPositiveLengthMeasure(v[0].value), !v[1] ? null : new IFC2X3.IfcPositiveLengthMeasure(v[1].value), !v[2] ? null : new IFC2X3.IfcPlaneAngleMeasure(v[2].value), !v[3] ? null : new IFC2X3.IfcPlaneAngleMeasure(v[3].value), !v[4] ? null : TypeInitialiser(1, v[4])), 280115917: (id, _) => new IFC2X3.IfcTextureCoordinate(id), 1742049831: (id, v) => new IFC2X3.IfcTextureCoordinateGenerator(id, new IFC2X3.IfcLabel(v[0].value), v[1].map((p) => TypeInitialiser(1, p))), 2552916305: (id, v) => new IFC2X3.IfcTextureMap(id, v[0].map((p) => new Handle(p.value))), 1210645708: (id, v) => new IFC2X3.IfcTextureVertex(id, v[0].map((p) => new IFC2X3.IfcParameterValue(p.value))), 3317419933: (id, v) => new IFC2X3.IfcThermalMaterialProperties(id, new Handle(v[0].value), !v[1] ? null : new IFC2X3.IfcSpecificHeatCapacityMeasure(v[1].value), !v[2] ? null : new IFC2X3.IfcThermodynamicTemperatureMeasure(v[2].value), !v[3] ? null : new IFC2X3.IfcThermodynamicTemperatureMeasure(v[3].value), !v[4] ? null : new IFC2X3.IfcThermalConductivityMeasure(v[4].value)), 3101149627: (id, v) => new IFC2X3.IfcTimeSeries(id, new IFC2X3.IfcLabel(v[0].value), !v[1] ? null : new IFC2X3.IfcText(v[1].value), new Handle(v[2].value), new Handle(v[3].value), v[4], v[5], !v[6] ? null : new IFC2X3.IfcLabel(v[6].value), !v[7] ? null : new Handle(v[7].value)), 1718945513: (id, v) => new IFC2X3.IfcTimeSeriesReferenceRelationship(id, new Handle(v[0].value), v[1].map((p) => new Handle(p.value))), 581633288: (id, v) => new IFC2X3.IfcTimeSeriesValue(id, v[0].map((p) => TypeInitialiser(1, p))), 1377556343: (id, _) => new IFC2X3.IfcTopologicalRepresentationItem(id), 1735638870: (id, v) => new IFC2X3.IfcTopologyRepresentation(id, new Handle(v[0].value), !v[1] ? null : new IFC2X3.IfcLabel(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), v[3].map((p) => new Handle(p.value))), 180925521: (id, v) => new IFC2X3.IfcUnitAssignment(id, v[0].map((p) => new Handle(p.value))), 2799835756: (id, _) => new IFC2X3.IfcVertex(id), 3304826586: (id, v) => new IFC2X3.IfcVertexBasedTextureMap(id, v[0].map((p) => new Handle(p.value)), v[1].map((p) => new Handle(p.value))), 1907098498: (id, v) => new IFC2X3.IfcVertexPoint(id, new Handle(v[0].value)), 891718957: (id, v) => new IFC2X3.IfcVirtualGridIntersection(id, v[0].map((p) => new Handle(p.value)), v[1].map((p) => new IFC2X3.IfcLengthMeasure(p.value))), 1065908215: (id, v) => new IFC2X3.IfcWaterProperties(id, new Handle(v[0].value), !v[1] ? null : v[1].value, !v[2] ? null : new IFC2X3.IfcIonConcentrationMeasure(v[2].value), !v[3] ? null : new IFC2X3.IfcIonConcentrationMeasure(v[3].value), !v[4] ? null : new IFC2X3.IfcIonConcentrationMeasure(v[4].value), !v[5] ? null : new IFC2X3.IfcNormalisedRatioMeasure(v[5].value), !v[6] ? null : new IFC2X3.IfcPHMeasure(v[6].value), !v[7] ? null : new IFC2X3.IfcNormalisedRatioMeasure(v[7].value)), 2442683028: (id, v) => new IFC2X3.IfcAnnotationOccurrence(id, !v[0] ? null : new Handle(v[0].value), v[1].map((p) => new Handle(p.value)), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value)), 962685235: (id, v) => new IFC2X3.IfcAnnotationSurfaceOccurrence(id, !v[0] ? null : new Handle(v[0].value), v[1].map((p) => new Handle(p.value)), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value)), 3612888222: (id, v) => new IFC2X3.IfcAnnotationSymbolOccurrence(id, !v[0] ? null : new Handle(v[0].value), v[1].map((p) => new Handle(p.value)), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value)), 2297822566: (id, v) => new IFC2X3.IfcAnnotationTextOccurrence(id, !v[0] ? null : new Handle(v[0].value), v[1].map((p) => new Handle(p.value)), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value)), 3798115385: (id, v) => new IFC2X3.IfcArbitraryClosedProfileDef(id, v[0], !v[1] ? null : new IFC2X3.IfcLabel(v[1].value), new Handle(v[2].value)), 1310608509: (id, v) => new IFC2X3.IfcArbitraryOpenProfileDef(id, v[0], !v[1] ? null : new IFC2X3.IfcLabel(v[1].value), new Handle(v[2].value)), 2705031697: (id, v) => new IFC2X3.IfcArbitraryProfileDefWithVoids(id, v[0], !v[1] ? null : new IFC2X3.IfcLabel(v[1].value), new Handle(v[2].value), v[3].map((p) => new Handle(p.value))), 616511568: (id, v) => new IFC2X3.IfcBlobTexture(id, v[0].value, v[1].value, v[2], !v[3] ? null : new Handle(v[3].value), new IFC2X3.IfcIdentifier(v[4].value), v[5].value), 3150382593: (id, v) => new IFC2X3.IfcCenterLineProfileDef(id, v[0], !v[1] ? null : new IFC2X3.IfcLabel(v[1].value), new Handle(v[2].value), new IFC2X3.IfcPositiveLengthMeasure(v[3].value)), 647927063: (id, v) => new IFC2X3.IfcClassificationReference(id, !v[0] ? null : new IFC2X3.IfcLabel(v[0].value), !v[1] ? null : new IFC2X3.IfcIdentifier(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new Handle(v[3].value)), 776857604: (id, v) => new IFC2X3.IfcColourRgb(id, !v[0] ? null : new IFC2X3.IfcLabel(v[0].value), new IFC2X3.IfcNormalisedRatioMeasure(v[1].value), new IFC2X3.IfcNormalisedRatioMeasure(v[2].value), new IFC2X3.IfcNormalisedRatioMeasure(v[3].value)), 2542286263: (id, v) => new IFC2X3.IfcComplexProperty(id, new IFC2X3.IfcIdentifier(v[0].value), !v[1] ? null : new IFC2X3.IfcText(v[1].value), new IFC2X3.IfcIdentifier(v[2].value), v[3].map((p) => new Handle(p.value))), 1485152156: (id, v) => new IFC2X3.IfcCompositeProfileDef(id, v[0], !v[1] ? null : new IFC2X3.IfcLabel(v[1].value), v[2].map((p) => new Handle(p.value)), !v[3] ? null : new IFC2X3.IfcLabel(v[3].value)), 370225590: (id, v) => new IFC2X3.IfcConnectedFaceSet(id, v[0].map((p) => new Handle(p.value))), 1981873012: (id, v) => new IFC2X3.IfcConnectionCurveGeometry(id, new Handle(v[0].value), !v[1] ? null : new Handle(v[1].value)), 45288368: (id, v) => new IFC2X3.IfcConnectionPointEccentricity(id, new Handle(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLengthMeasure(v[2].value), !v[3] ? null : new IFC2X3.IfcLengthMeasure(v[3].value), !v[4] ? null : new IFC2X3.IfcLengthMeasure(v[4].value)), 3050246964: (id, v) => new IFC2X3.IfcContextDependentUnit(id, new Handle(v[0].value), v[1], new IFC2X3.IfcLabel(v[2].value)), 2889183280: (id, v) => new IFC2X3.IfcConversionBasedUnit(id, new Handle(v[0].value), v[1], new IFC2X3.IfcLabel(v[2].value), new Handle(v[3].value)), 3800577675: (id, v) => new IFC2X3.IfcCurveStyle(id, !v[0] ? null : new IFC2X3.IfcLabel(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : TypeInitialiser(1, v[2]), !v[3] ? null : new Handle(v[3].value)), 3632507154: (id, v) => new IFC2X3.IfcDerivedProfileDef(id, v[0], !v[1] ? null : new IFC2X3.IfcLabel(v[1].value), new Handle(v[2].value), new Handle(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value)), 2273265877: (id, v) => new IFC2X3.IfcDimensionCalloutRelationship(id, !v[0] ? null : new IFC2X3.IfcLabel(v[0].value), !v[1] ? null : new IFC2X3.IfcText(v[1].value), new Handle(v[2].value), new Handle(v[3].value)), 1694125774: (id, v) => new IFC2X3.IfcDimensionPair(id, !v[0] ? null : new IFC2X3.IfcLabel(v[0].value), !v[1] ? null : new IFC2X3.IfcText(v[1].value), new Handle(v[2].value), new Handle(v[3].value)), 3732053477: (id, v) => new IFC2X3.IfcDocumentReference(id, !v[0] ? null : new IFC2X3.IfcLabel(v[0].value), !v[1] ? null : new IFC2X3.IfcIdentifier(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value)), 4170525392: (id, v) => new IFC2X3.IfcDraughtingPreDefinedTextFont(id, new IFC2X3.IfcLabel(v[0].value)), 3900360178: (id, v) => new IFC2X3.IfcEdge(id, new Handle(v[0].value), new Handle(v[1].value)), 476780140: (id, v) => new IFC2X3.IfcEdgeCurve(id, new Handle(v[0].value), new Handle(v[1].value), new Handle(v[2].value), v[3].value), 1860660968: (id, v) => new IFC2X3.IfcExtendedMaterialProperties(id, new Handle(v[0].value), v[1].map((p) => new Handle(p.value)), !v[2] ? null : new IFC2X3.IfcText(v[2].value), new IFC2X3.IfcLabel(v[3].value)), 2556980723: (id, v) => new IFC2X3.IfcFace(id, v[0].map((p) => new Handle(p.value))), 1809719519: (id, v) => new IFC2X3.IfcFaceBound(id, new Handle(v[0].value), v[1].value), 803316827: (id, v) => new IFC2X3.IfcFaceOuterBound(id, new Handle(v[0].value), v[1].value), 3008276851: (id, v) => new IFC2X3.IfcFaceSurface(id, v[0].map((p) => new Handle(p.value)), new Handle(v[1].value), v[2].value), 4219587988: (id, v) => new IFC2X3.IfcFailureConnectionCondition(id, !v[0] ? null : new IFC2X3.IfcLabel(v[0].value), !v[1] ? null : new IFC2X3.IfcForceMeasure(v[1].value), !v[2] ? null : new IFC2X3.IfcForceMeasure(v[2].value), !v[3] ? null : new IFC2X3.IfcForceMeasure(v[3].value), !v[4] ? null : new IFC2X3.IfcForceMeasure(v[4].value), !v[5] ? null : new IFC2X3.IfcForceMeasure(v[5].value), !v[6] ? null : new IFC2X3.IfcForceMeasure(v[6].value)), 738692330: (id, v) => new IFC2X3.IfcFillAreaStyle(id, !v[0] ? null : new IFC2X3.IfcLabel(v[0].value), v[1].map((p) => new Handle(p.value))), 3857492461: (id, v) => new IFC2X3.IfcFuelProperties(id, new Handle(v[0].value), !v[1] ? null : new IFC2X3.IfcThermodynamicTemperatureMeasure(v[1].value), !v[2] ? null : new IFC2X3.IfcPositiveRatioMeasure(v[2].value), !v[3] ? null : new IFC2X3.IfcHeatingValueMeasure(v[3].value), !v[4] ? null : new IFC2X3.IfcHeatingValueMeasure(v[4].value)), 803998398: (id, v) => new IFC2X3.IfcGeneralMaterialProperties(id, new Handle(v[0].value), !v[1] ? null : new IFC2X3.IfcMolecularWeightMeasure(v[1].value), !v[2] ? null : new IFC2X3.IfcNormalisedRatioMeasure(v[2].value), !v[3] ? null : new IFC2X3.IfcMassDensityMeasure(v[3].value)), 1446786286: (id, v) => new IFC2X3.IfcGeneralProfileProperties(id, !v[0] ? null : new IFC2X3.IfcLabel(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcMassPerLengthMeasure(v[2].value), !v[3] ? null : new IFC2X3.IfcPositiveLengthMeasure(v[3].value), !v[4] ? null : new IFC2X3.IfcPositiveLengthMeasure(v[4].value), !v[5] ? null : new IFC2X3.IfcPositiveLengthMeasure(v[5].value), !v[6] ? null : new IFC2X3.IfcAreaMeasure(v[6].value)), 3448662350: (id, v) => new IFC2X3.IfcGeometricRepresentationContext(id, !v[0] ? null : new IFC2X3.IfcLabel(v[0].value), !v[1] ? null : new IFC2X3.IfcLabel(v[1].value), new IFC2X3.IfcDimensionCount(v[2].value), !v[3] ? null : v[3].value, new Handle(v[4].value), !v[5] ? null : new Handle(v[5].value)), 2453401579: (id, _) => new IFC2X3.IfcGeometricRepresentationItem(id), 4142052618: (id, v) => new IFC2X3.IfcGeometricRepresentationSubContext(id, !v[0] ? null : new IFC2X3.IfcLabel(v[0].value), !v[1] ? null : new IFC2X3.IfcLabel(v[1].value), new Handle(v[2].value), !v[3] ? null : new IFC2X3.IfcPositiveRatioMeasure(v[3].value), v[4], !v[5] ? null : new IFC2X3.IfcLabel(v[5].value)), 3590301190: (id, v) => new IFC2X3.IfcGeometricSet(id, v[0].map((p) => new Handle(p.value))), 178086475: (id, v) => new IFC2X3.IfcGridPlacement(id, new Handle(v[0].value), !v[1] ? null : new Handle(v[1].value)), 812098782: (id, v) => new IFC2X3.IfcHalfSpaceSolid(id, new Handle(v[0].value), v[1].value), 2445078500: (id, v) => new IFC2X3.IfcHygroscopicMaterialProperties(id, new Handle(v[0].value), !v[1] ? null : new IFC2X3.IfcPositiveRatioMeasure(v[1].value), !v[2] ? null : new IFC2X3.IfcPositiveRatioMeasure(v[2].value), !v[3] ? null : new IFC2X3.IfcIsothermalMoistureCapacityMeasure(v[3].value), !v[4] ? null : new IFC2X3.IfcVaporPermeabilityMeasure(v[4].value), !v[5] ? null : new IFC2X3.IfcMoistureDiffusivityMeasure(v[5].value)), 3905492369: (id, v) => new IFC2X3.IfcImageTexture(id, v[0].value, v[1].value, v[2], !v[3] ? null : new Handle(v[3].value), new IFC2X3.IfcIdentifier(v[4].value)), 3741457305: (id, v) => new IFC2X3.IfcIrregularTimeSeries(id, new IFC2X3.IfcLabel(v[0].value), !v[1] ? null : new IFC2X3.IfcText(v[1].value), new Handle(v[2].value), new Handle(v[3].value), v[4], v[5], !v[6] ? null : new IFC2X3.IfcLabel(v[6].value), !v[7] ? null : new Handle(v[7].value), v[8].map((p) => new Handle(p.value))), 1402838566: (id, v) => new IFC2X3.IfcLightSource(id, !v[0] ? null : new IFC2X3.IfcLabel(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcNormalisedRatioMeasure(v[2].value), !v[3] ? null : new IFC2X3.IfcNormalisedRatioMeasure(v[3].value)), 125510826: (id, v) => new IFC2X3.IfcLightSourceAmbient(id, !v[0] ? null : new IFC2X3.IfcLabel(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcNormalisedRatioMeasure(v[2].value), !v[3] ? null : new IFC2X3.IfcNormalisedRatioMeasure(v[3].value)), 2604431987: (id, v) => new IFC2X3.IfcLightSourceDirectional(id, !v[0] ? null : new IFC2X3.IfcLabel(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcNormalisedRatioMeasure(v[2].value), !v[3] ? null : new IFC2X3.IfcNormalisedRatioMeasure(v[3].value), new Handle(v[4].value)), 4266656042: (id, v) => new IFC2X3.IfcLightSourceGoniometric(id, !v[0] ? null : new IFC2X3.IfcLabel(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcNormalisedRatioMeasure(v[2].value), !v[3] ? null : new IFC2X3.IfcNormalisedRatioMeasure(v[3].value), new Handle(v[4].value), !v[5] ? null : new Handle(v[5].value), new IFC2X3.IfcThermodynamicTemperatureMeasure(v[6].value), new IFC2X3.IfcLuminousFluxMeasure(v[7].value), v[8], new Handle(v[9].value)), 1520743889: (id, v) => new IFC2X3.IfcLightSourcePositional(id, !v[0] ? null : new IFC2X3.IfcLabel(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcNormalisedRatioMeasure(v[2].value), !v[3] ? null : new IFC2X3.IfcNormalisedRatioMeasure(v[3].value), new Handle(v[4].value), new IFC2X3.IfcPositiveLengthMeasure(v[5].value), new IFC2X3.IfcReal(v[6].value), new IFC2X3.IfcReal(v[7].value), new IFC2X3.IfcReal(v[8].value)), 3422422726: (id, v) => new IFC2X3.IfcLightSourceSpot(id, !v[0] ? null : new IFC2X3.IfcLabel(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcNormalisedRatioMeasure(v[2].value), !v[3] ? null : new IFC2X3.IfcNormalisedRatioMeasure(v[3].value), new Handle(v[4].value), new IFC2X3.IfcPositiveLengthMeasure(v[5].value), new IFC2X3.IfcReal(v[6].value), new IFC2X3.IfcReal(v[7].value), new IFC2X3.IfcReal(v[8].value), new Handle(v[9].value), !v[10] ? null : new IFC2X3.IfcReal(v[10].value), new IFC2X3.IfcPositivePlaneAngleMeasure(v[11].value), new IFC2X3.IfcPositivePlaneAngleMeasure(v[12].value)), 2624227202: (id, v) => new IFC2X3.IfcLocalPlacement(id, !v[0] ? null : new Handle(v[0].value), new Handle(v[1].value)), 1008929658: (id, _) => new IFC2X3.IfcLoop(id), 2347385850: (id, v) => new IFC2X3.IfcMappedItem(id, new Handle(v[0].value), new Handle(v[1].value)), 2022407955: (id, v) => new IFC2X3.IfcMaterialDefinitionRepresentation(id, !v[0] ? null : new IFC2X3.IfcLabel(v[0].value), !v[1] ? null : new IFC2X3.IfcText(v[1].value), v[2].map((p) => new Handle(p.value)), new Handle(v[3].value)), 1430189142: (id, v) => new IFC2X3.IfcMechanicalConcreteMaterialProperties(id, new Handle(v[0].value), !v[1] ? null : new IFC2X3.IfcDynamicViscosityMeasure(v[1].value), !v[2] ? null : new IFC2X3.IfcModulusOfElasticityMeasure(v[2].value), !v[3] ? null : new IFC2X3.IfcModulusOfElasticityMeasure(v[3].value), !v[4] ? null : new IFC2X3.IfcPositiveRatioMeasure(v[4].value), !v[5] ? null : new IFC2X3.IfcThermalExpansionCoefficientMeasure(v[5].value), !v[6] ? null : new IFC2X3.IfcPressureMeasure(v[6].value), !v[7] ? null : new IFC2X3.IfcPositiveLengthMeasure(v[7].value), !v[8] ? null : new IFC2X3.IfcText(v[8].value), !v[9] ? null : new IFC2X3.IfcText(v[9].value), !v[10] ? null : new IFC2X3.IfcNormalisedRatioMeasure(v[10].value), !v[11] ? null : new IFC2X3.IfcText(v[11].value)), 219451334: (id, v) => new IFC2X3.IfcObjectDefinition(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value)), 2833995503: (id, v) => new IFC2X3.IfcOneDirectionRepeatFactor(id, new Handle(v[0].value)), 2665983363: (id, v) => new IFC2X3.IfcOpenShell(id, v[0].map((p) => new Handle(p.value))), 1029017970: (id, v) => new IFC2X3.IfcOrientedEdge(id, new Handle(v[0].value), v[1].value), 2529465313: (id, v) => new IFC2X3.IfcParameterizedProfileDef(id, v[0], !v[1] ? null : new IFC2X3.IfcLabel(v[1].value), new Handle(v[2].value)), 2519244187: (id, v) => new IFC2X3.IfcPath(id, v[0].map((p) => new Handle(p.value))), 3021840470: (id, v) => new IFC2X3.IfcPhysicalComplexQuantity(id, new IFC2X3.IfcLabel(v[0].value), !v[1] ? null : new IFC2X3.IfcText(v[1].value), v[2].map((p) => new Handle(p.value)), new IFC2X3.IfcLabel(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new IFC2X3.IfcLabel(v[5].value)), 597895409: (id, v) => new IFC2X3.IfcPixelTexture(id, v[0].value, v[1].value, v[2], !v[3] ? null : new Handle(v[3].value), new IFC2X3.IfcInteger(v[4].value), new IFC2X3.IfcInteger(v[5].value), new IFC2X3.IfcInteger(v[6].value), v[7].map((p) => p.value)), 2004835150: (id, v) => new IFC2X3.IfcPlacement(id, new Handle(v[0].value)), 1663979128: (id, v) => new IFC2X3.IfcPlanarExtent(id, new IFC2X3.IfcLengthMeasure(v[0].value), new IFC2X3.IfcLengthMeasure(v[1].value)), 2067069095: (id, _) => new IFC2X3.IfcPoint(id), 4022376103: (id, v) => new IFC2X3.IfcPointOnCurve(id, new Handle(v[0].value), new IFC2X3.IfcParameterValue(v[1].value)), 1423911732: (id, v) => new IFC2X3.IfcPointOnSurface(id, new Handle(v[0].value), new IFC2X3.IfcParameterValue(v[1].value), new IFC2X3.IfcParameterValue(v[2].value)), 2924175390: (id, v) => new IFC2X3.IfcPolyLoop(id, v[0].map((p) => new Handle(p.value))), 2775532180: (id, v) => new IFC2X3.IfcPolygonalBoundedHalfSpace(id, new Handle(v[0].value), v[1].value, new Handle(v[2].value), new Handle(v[3].value)), 759155922: (id, v) => new IFC2X3.IfcPreDefinedColour(id, new IFC2X3.IfcLabel(v[0].value)), 2559016684: (id, v) => new IFC2X3.IfcPreDefinedCurveFont(id, new IFC2X3.IfcLabel(v[0].value)), 433424934: (id, v) => new IFC2X3.IfcPreDefinedDimensionSymbol(id, new IFC2X3.IfcLabel(v[0].value)), 179317114: (id, v) => new IFC2X3.IfcPreDefinedPointMarkerSymbol(id, new IFC2X3.IfcLabel(v[0].value)), 673634403: (id, v) => new IFC2X3.IfcProductDefinitionShape(id, !v[0] ? null : new IFC2X3.IfcLabel(v[0].value), !v[1] ? null : new IFC2X3.IfcText(v[1].value), v[2].map((p) => new Handle(p.value))), 871118103: (id, v) => new IFC2X3.IfcPropertyBoundedValue(id, new IFC2X3.IfcIdentifier(v[0].value), !v[1] ? null : new IFC2X3.IfcText(v[1].value), !v[2] ? null : TypeInitialiser(1, v[2]), !v[3] ? null : TypeInitialiser(1, v[3]), !v[4] ? null : new Handle(v[4].value)), 1680319473: (id, v) => new IFC2X3.IfcPropertyDefinition(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value)), 4166981789: (id, v) => new IFC2X3.IfcPropertyEnumeratedValue(id, new IFC2X3.IfcIdentifier(v[0].value), !v[1] ? null : new IFC2X3.IfcText(v[1].value), v[2].map((p) => TypeInitialiser(1, p)), !v[3] ? null : new Handle(v[3].value)), 2752243245: (id, v) => new IFC2X3.IfcPropertyListValue(id, new IFC2X3.IfcIdentifier(v[0].value), !v[1] ? null : new IFC2X3.IfcText(v[1].value), v[2].map((p) => TypeInitialiser(1, p)), !v[3] ? null : new Handle(v[3].value)), 941946838: (id, v) => new IFC2X3.IfcPropertyReferenceValue(id, new IFC2X3.IfcIdentifier(v[0].value), !v[1] ? null : new IFC2X3.IfcText(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), new Handle(v[3].value)), 3357820518: (id, v) => new IFC2X3.IfcPropertySetDefinition(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value)), 3650150729: (id, v) => new IFC2X3.IfcPropertySingleValue(id, new IFC2X3.IfcIdentifier(v[0].value), !v[1] ? null : new IFC2X3.IfcText(v[1].value), !v[2] ? null : TypeInitialiser(1, v[2]), !v[3] ? null : new Handle(v[3].value)), 110355661: (id, v) => new IFC2X3.IfcPropertyTableValue(id, new IFC2X3.IfcIdentifier(v[0].value), !v[1] ? null : new IFC2X3.IfcText(v[1].value), v[2].map((p) => TypeInitialiser(1, p)), v[3].map((p) => TypeInitialiser(1, p)), !v[4] ? null : new IFC2X3.IfcText(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value)), 3615266464: (id, v) => new IFC2X3.IfcRectangleProfileDef(id, v[0], !v[1] ? null : new IFC2X3.IfcLabel(v[1].value), new Handle(v[2].value), new IFC2X3.IfcPositiveLengthMeasure(v[3].value), new IFC2X3.IfcPositiveLengthMeasure(v[4].value)), 3413951693: (id, v) => new IFC2X3.IfcRegularTimeSeries(id, new IFC2X3.IfcLabel(v[0].value), !v[1] ? null : new IFC2X3.IfcText(v[1].value), new Handle(v[2].value), new Handle(v[3].value), v[4], v[5], !v[6] ? null : new IFC2X3.IfcLabel(v[6].value), !v[7] ? null : new Handle(v[7].value), new IFC2X3.IfcTimeMeasure(v[8].value), v[9].map((p) => new Handle(p.value))), 3765753017: (id, v) => new IFC2X3.IfcReinforcementDefinitionProperties(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), v[5].map((p) => new Handle(p.value))), 478536968: (id, v) => new IFC2X3.IfcRelationship(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value)), 2778083089: (id, v) => new IFC2X3.IfcRoundedRectangleProfileDef(id, v[0], !v[1] ? null : new IFC2X3.IfcLabel(v[1].value), new Handle(v[2].value), new IFC2X3.IfcPositiveLengthMeasure(v[3].value), new IFC2X3.IfcPositiveLengthMeasure(v[4].value), new IFC2X3.IfcPositiveLengthMeasure(v[5].value)), 1509187699: (id, v) => new IFC2X3.IfcSectionedSpine(id, new Handle(v[0].value), v[1].map((p) => new Handle(p.value)), v[2].map((p) => new Handle(p.value))), 2411513650: (id, v) => new IFC2X3.IfcServiceLifeFactor(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), v[4], !v[5] ? null : TypeInitialiser(1, v[5]), TypeInitialiser(1, v[6]), !v[7] ? null : TypeInitialiser(1, v[7])), 4124623270: (id, v) => new IFC2X3.IfcShellBasedSurfaceModel(id, v[0].map((p) => new Handle(p.value))), 2609359061: (id, v) => new IFC2X3.IfcSlippageConnectionCondition(id, !v[0] ? null : new IFC2X3.IfcLabel(v[0].value), !v[1] ? null : new IFC2X3.IfcLengthMeasure(v[1].value), !v[2] ? null : new IFC2X3.IfcLengthMeasure(v[2].value), !v[3] ? null : new IFC2X3.IfcLengthMeasure(v[3].value)), 723233188: (id, _) => new IFC2X3.IfcSolidModel(id), 2485662743: (id, v) => new IFC2X3.IfcSoundProperties(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), new IFC2X3.IfcBoolean(v[4].value), v[5], v[6].map((p) => new Handle(p.value))), 1202362311: (id, v) => new IFC2X3.IfcSoundValue(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new Handle(v[4].value), new IFC2X3.IfcFrequencyMeasure(v[5].value), !v[6] ? null : TypeInitialiser(1, v[6])), 390701378: (id, v) => new IFC2X3.IfcSpaceThermalLoadProperties(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcPositiveRatioMeasure(v[4].value), v[5], v[6], !v[7] ? null : new IFC2X3.IfcText(v[7].value), new IFC2X3.IfcPowerMeasure(v[8].value), !v[9] ? null : new IFC2X3.IfcPowerMeasure(v[9].value), !v[10] ? null : new Handle(v[10].value), !v[11] ? null : new IFC2X3.IfcLabel(v[11].value), !v[12] ? null : new IFC2X3.IfcLabel(v[12].value), v[13]), 1595516126: (id, v) => new IFC2X3.IfcStructuralLoadLinearForce(id, !v[0] ? null : new IFC2X3.IfcLabel(v[0].value), !v[1] ? null : new IFC2X3.IfcLinearForceMeasure(v[1].value), !v[2] ? null : new IFC2X3.IfcLinearForceMeasure(v[2].value), !v[3] ? null : new IFC2X3.IfcLinearForceMeasure(v[3].value), !v[4] ? null : new IFC2X3.IfcLinearMomentMeasure(v[4].value), !v[5] ? null : new IFC2X3.IfcLinearMomentMeasure(v[5].value), !v[6] ? null : new IFC2X3.IfcLinearMomentMeasure(v[6].value)), 2668620305: (id, v) => new IFC2X3.IfcStructuralLoadPlanarForce(id, !v[0] ? null : new IFC2X3.IfcLabel(v[0].value), !v[1] ? null : new IFC2X3.IfcPlanarForceMeasure(v[1].value), !v[2] ? null : new IFC2X3.IfcPlanarForceMeasure(v[2].value), !v[3] ? null : new IFC2X3.IfcPlanarForceMeasure(v[3].value)), 2473145415: (id, v) => new IFC2X3.IfcStructuralLoadSingleDisplacement(id, !v[0] ? null : new IFC2X3.IfcLabel(v[0].value), !v[1] ? null : new IFC2X3.IfcLengthMeasure(v[1].value), !v[2] ? null : new IFC2X3.IfcLengthMeasure(v[2].value), !v[3] ? null : new IFC2X3.IfcLengthMeasure(v[3].value), !v[4] ? null : new IFC2X3.IfcPlaneAngleMeasure(v[4].value), !v[5] ? null : new IFC2X3.IfcPlaneAngleMeasure(v[5].value), !v[6] ? null : new IFC2X3.IfcPlaneAngleMeasure(v[6].value)), 1973038258: (id, v) => new IFC2X3.IfcStructuralLoadSingleDisplacementDistortion(id, !v[0] ? null : new IFC2X3.IfcLabel(v[0].value), !v[1] ? null : new IFC2X3.IfcLengthMeasure(v[1].value), !v[2] ? null : new IFC2X3.IfcLengthMeasure(v[2].value), !v[3] ? null : new IFC2X3.IfcLengthMeasure(v[3].value), !v[4] ? null : new IFC2X3.IfcPlaneAngleMeasure(v[4].value), !v[5] ? null : new IFC2X3.IfcPlaneAngleMeasure(v[5].value), !v[6] ? null : new IFC2X3.IfcPlaneAngleMeasure(v[6].value), !v[7] ? null : new IFC2X3.IfcCurvatureMeasure(v[7].value)), 1597423693: (id, v) => new IFC2X3.IfcStructuralLoadSingleForce(id, !v[0] ? null : new IFC2X3.IfcLabel(v[0].value), !v[1] ? null : new IFC2X3.IfcForceMeasure(v[1].value), !v[2] ? null : new IFC2X3.IfcForceMeasure(v[2].value), !v[3] ? null : new IFC2X3.IfcForceMeasure(v[3].value), !v[4] ? null : new IFC2X3.IfcTorqueMeasure(v[4].value), !v[5] ? null : new IFC2X3.IfcTorqueMeasure(v[5].value), !v[6] ? null : new IFC2X3.IfcTorqueMeasure(v[6].value)), 1190533807: (id, v) => new IFC2X3.IfcStructuralLoadSingleForceWarping(id, !v[0] ? null : new IFC2X3.IfcLabel(v[0].value), !v[1] ? null : new IFC2X3.IfcForceMeasure(v[1].value), !v[2] ? null : new IFC2X3.IfcForceMeasure(v[2].value), !v[3] ? null : new IFC2X3.IfcForceMeasure(v[3].value), !v[4] ? null : new IFC2X3.IfcTorqueMeasure(v[4].value), !v[5] ? null : new IFC2X3.IfcTorqueMeasure(v[5].value), !v[6] ? null : new IFC2X3.IfcTorqueMeasure(v[6].value), !v[7] ? null : new IFC2X3.IfcWarpingMomentMeasure(v[7].value)), 3843319758: (id, v) => new IFC2X3.IfcStructuralProfileProperties(id, !v[0] ? null : new IFC2X3.IfcLabel(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcMassPerLengthMeasure(v[2].value), !v[3] ? null : new IFC2X3.IfcPositiveLengthMeasure(v[3].value), !v[4] ? null : new IFC2X3.IfcPositiveLengthMeasure(v[4].value), !v[5] ? null : new IFC2X3.IfcPositiveLengthMeasure(v[5].value), !v[6] ? null : new IFC2X3.IfcAreaMeasure(v[6].value), !v[7] ? null : new IFC2X3.IfcMomentOfInertiaMeasure(v[7].value), !v[8] ? null : new IFC2X3.IfcMomentOfInertiaMeasure(v[8].value), !v[9] ? null : new IFC2X3.IfcMomentOfInertiaMeasure(v[9].value), !v[10] ? null : new IFC2X3.IfcMomentOfInertiaMeasure(v[10].value), !v[11] ? null : new IFC2X3.IfcWarpingConstantMeasure(v[11].value), !v[12] ? null : new IFC2X3.IfcLengthMeasure(v[12].value), !v[13] ? null : new IFC2X3.IfcLengthMeasure(v[13].value), !v[14] ? null : new IFC2X3.IfcAreaMeasure(v[14].value), !v[15] ? null : new IFC2X3.IfcAreaMeasure(v[15].value), !v[16] ? null : new IFC2X3.IfcSectionModulusMeasure(v[16].value), !v[17] ? null : new IFC2X3.IfcSectionModulusMeasure(v[17].value), !v[18] ? null : new IFC2X3.IfcSectionModulusMeasure(v[18].value), !v[19] ? null : new IFC2X3.IfcSectionModulusMeasure(v[19].value), !v[20] ? null : new IFC2X3.IfcSectionModulusMeasure(v[20].value), !v[21] ? null : new IFC2X3.IfcLengthMeasure(v[21].value), !v[22] ? null : new IFC2X3.IfcLengthMeasure(v[22].value)), 3653947884: (id, v) => new IFC2X3.IfcStructuralSteelProfileProperties(id, !v[0] ? null : new IFC2X3.IfcLabel(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcMassPerLengthMeasure(v[2].value), !v[3] ? null : new IFC2X3.IfcPositiveLengthMeasure(v[3].value), !v[4] ? null : new IFC2X3.IfcPositiveLengthMeasure(v[4].value), !v[5] ? null : new IFC2X3.IfcPositiveLengthMeasure(v[5].value), !v[6] ? null : new IFC2X3.IfcAreaMeasure(v[6].value), !v[7] ? null : new IFC2X3.IfcMomentOfInertiaMeasure(v[7].value), !v[8] ? null : new IFC2X3.IfcMomentOfInertiaMeasure(v[8].value), !v[9] ? null : new IFC2X3.IfcMomentOfInertiaMeasure(v[9].value), !v[10] ? null : new IFC2X3.IfcMomentOfInertiaMeasure(v[10].value), !v[11] ? null : new IFC2X3.IfcWarpingConstantMeasure(v[11].value), !v[12] ? null : new IFC2X3.IfcLengthMeasure(v[12].value), !v[13] ? null : new IFC2X3.IfcLengthMeasure(v[13].value), !v[14] ? null : new IFC2X3.IfcAreaMeasure(v[14].value), !v[15] ? null : new IFC2X3.IfcAreaMeasure(v[15].value), !v[16] ? null : new IFC2X3.IfcSectionModulusMeasure(v[16].value), !v[17] ? null : new IFC2X3.IfcSectionModulusMeasure(v[17].value), !v[18] ? null : new IFC2X3.IfcSectionModulusMeasure(v[18].value), !v[19] ? null : new IFC2X3.IfcSectionModulusMeasure(v[19].value), !v[20] ? null : new IFC2X3.IfcSectionModulusMeasure(v[20].value), !v[21] ? null : new IFC2X3.IfcLengthMeasure(v[21].value), !v[22] ? null : new IFC2X3.IfcLengthMeasure(v[22].value), !v[23] ? null : new IFC2X3.IfcAreaMeasure(v[23].value), !v[24] ? null : new IFC2X3.IfcAreaMeasure(v[24].value), !v[25] ? null : new IFC2X3.IfcPositiveRatioMeasure(v[25].value), !v[26] ? null : new IFC2X3.IfcPositiveRatioMeasure(v[26].value)), 2233826070: (id, v) => new IFC2X3.IfcSubedge(id, new Handle(v[0].value), new Handle(v[1].value), new Handle(v[2].value)), 2513912981: (id, _) => new IFC2X3.IfcSurface(id), 1878645084: (id, v) => new IFC2X3.IfcSurfaceStyleRendering(id, new Handle(v[0].value), !v[1] ? null : new IFC2X3.IfcNormalisedRatioMeasure(v[1].value), !v[2] ? null : new Handle(v[2].value), !v[3] ? null : new Handle(v[3].value), !v[4] ? null : new Handle(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : TypeInitialiser(1, v[7]), v[8]), 2247615214: (id, v) => new IFC2X3.IfcSweptAreaSolid(id, new Handle(v[0].value), new Handle(v[1].value)), 1260650574: (id, v) => new IFC2X3.IfcSweptDiskSolid(id, new Handle(v[0].value), new IFC2X3.IfcPositiveLengthMeasure(v[1].value), !v[2] ? null : new IFC2X3.IfcPositiveLengthMeasure(v[2].value), new IFC2X3.IfcParameterValue(v[3].value), new IFC2X3.IfcParameterValue(v[4].value)), 230924584: (id, v) => new IFC2X3.IfcSweptSurface(id, new Handle(v[0].value), new Handle(v[1].value)), 3071757647: (id, v) => new IFC2X3.IfcTShapeProfileDef(id, v[0], !v[1] ? null : new IFC2X3.IfcLabel(v[1].value), new Handle(v[2].value), new IFC2X3.IfcPositiveLengthMeasure(v[3].value), new IFC2X3.IfcPositiveLengthMeasure(v[4].value), new IFC2X3.IfcPositiveLengthMeasure(v[5].value), new IFC2X3.IfcPositiveLengthMeasure(v[6].value), !v[7] ? null : new IFC2X3.IfcPositiveLengthMeasure(v[7].value), !v[8] ? null : new IFC2X3.IfcPositiveLengthMeasure(v[8].value), !v[9] ? null : new IFC2X3.IfcPositiveLengthMeasure(v[9].value), !v[10] ? null : new IFC2X3.IfcPlaneAngleMeasure(v[10].value), !v[11] ? null : new IFC2X3.IfcPlaneAngleMeasure(v[11].value), !v[12] ? null : new IFC2X3.IfcPositiveLengthMeasure(v[12].value)), 3028897424: (id, v) => new IFC2X3.IfcTerminatorSymbol(id, !v[0] ? null : new Handle(v[0].value), v[1].map((p) => new Handle(p.value)), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), new Handle(v[3].value)), 4282788508: (id, v) => new IFC2X3.IfcTextLiteral(id, new IFC2X3.IfcPresentableText(v[0].value), new Handle(v[1].value), v[2]), 3124975700: (id, v) => new IFC2X3.IfcTextLiteralWithExtent(id, new IFC2X3.IfcPresentableText(v[0].value), new Handle(v[1].value), v[2], new Handle(v[3].value), new IFC2X3.IfcBoxAlignment(v[4].value)), 2715220739: (id, v) => new IFC2X3.IfcTrapeziumProfileDef(id, v[0], !v[1] ? null : new IFC2X3.IfcLabel(v[1].value), new Handle(v[2].value), new IFC2X3.IfcPositiveLengthMeasure(v[3].value), new IFC2X3.IfcPositiveLengthMeasure(v[4].value), new IFC2X3.IfcPositiveLengthMeasure(v[5].value), new IFC2X3.IfcLengthMeasure(v[6].value)), 1345879162: (id, v) => new IFC2X3.IfcTwoDirectionRepeatFactor(id, new Handle(v[0].value), new Handle(v[1].value)), 1628702193: (id, v) => new IFC2X3.IfcTypeObject(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value))), 2347495698: (id, v) => new IFC2X3.IfcTypeProduct(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value)), 427810014: (id, v) => new IFC2X3.IfcUShapeProfileDef(id, v[0], !v[1] ? null : new IFC2X3.IfcLabel(v[1].value), new Handle(v[2].value), new IFC2X3.IfcPositiveLengthMeasure(v[3].value), new IFC2X3.IfcPositiveLengthMeasure(v[4].value), new IFC2X3.IfcPositiveLengthMeasure(v[5].value), new IFC2X3.IfcPositiveLengthMeasure(v[6].value), !v[7] ? null : new IFC2X3.IfcPositiveLengthMeasure(v[7].value), !v[8] ? null : new IFC2X3.IfcPositiveLengthMeasure(v[8].value), !v[9] ? null : new IFC2X3.IfcPlaneAngleMeasure(v[9].value), !v[10] ? null : new IFC2X3.IfcPositiveLengthMeasure(v[10].value)), 1417489154: (id, v) => new IFC2X3.IfcVector(id, new Handle(v[0].value), new IFC2X3.IfcLengthMeasure(v[1].value)), 2759199220: (id, v) => new IFC2X3.IfcVertexLoop(id, new Handle(v[0].value)), 336235671: (id, v) => new IFC2X3.IfcWindowLiningProperties(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcPositiveLengthMeasure(v[4].value), !v[5] ? null : new IFC2X3.IfcPositiveLengthMeasure(v[5].value), !v[6] ? null : new IFC2X3.IfcPositiveLengthMeasure(v[6].value), !v[7] ? null : new IFC2X3.IfcPositiveLengthMeasure(v[7].value), !v[8] ? null : new IFC2X3.IfcNormalisedRatioMeasure(v[8].value), !v[9] ? null : new IFC2X3.IfcNormalisedRatioMeasure(v[9].value), !v[10] ? null : new IFC2X3.IfcNormalisedRatioMeasure(v[10].value), !v[11] ? null : new IFC2X3.IfcNormalisedRatioMeasure(v[11].value), !v[12] ? null : new Handle(v[12].value)), 512836454: (id, v) => new IFC2X3.IfcWindowPanelProperties(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), v[4], v[5], !v[6] ? null : new IFC2X3.IfcPositiveLengthMeasure(v[6].value), !v[7] ? null : new IFC2X3.IfcPositiveLengthMeasure(v[7].value), !v[8] ? null : new Handle(v[8].value)), 1299126871: (id, v) => new IFC2X3.IfcWindowStyle(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), v[8], v[9], v[10].value, v[11].value), 2543172580: (id, v) => new IFC2X3.IfcZShapeProfileDef(id, v[0], !v[1] ? null : new IFC2X3.IfcLabel(v[1].value), new Handle(v[2].value), new IFC2X3.IfcPositiveLengthMeasure(v[3].value), new IFC2X3.IfcPositiveLengthMeasure(v[4].value), new IFC2X3.IfcPositiveLengthMeasure(v[5].value), new IFC2X3.IfcPositiveLengthMeasure(v[6].value), !v[7] ? null : new IFC2X3.IfcPositiveLengthMeasure(v[7].value), !v[8] ? null : new IFC2X3.IfcPositiveLengthMeasure(v[8].value)), 3288037868: (id, v) => new IFC2X3.IfcAnnotationCurveOccurrence(id, !v[0] ? null : new Handle(v[0].value), v[1].map((p) => new Handle(p.value)), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value)), 669184980: (id, v) => new IFC2X3.IfcAnnotationFillArea(id, new Handle(v[0].value), !v[1] ? null : v[1].map((p) => new Handle(p.value))), 2265737646: (id, v) => new IFC2X3.IfcAnnotationFillAreaOccurrence(id, !v[0] ? null : new Handle(v[0].value), v[1].map((p) => new Handle(p.value)), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new Handle(v[3].value), v[4]), 1302238472: (id, v) => new IFC2X3.IfcAnnotationSurface(id, new Handle(v[0].value), !v[1] ? null : new Handle(v[1].value)), 4261334040: (id, v) => new IFC2X3.IfcAxis1Placement(id, new Handle(v[0].value), !v[1] ? null : new Handle(v[1].value)), 3125803723: (id, v) => new IFC2X3.IfcAxis2Placement2D(id, new Handle(v[0].value), !v[1] ? null : new Handle(v[1].value)), 2740243338: (id, v) => new IFC2X3.IfcAxis2Placement3D(id, new Handle(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new Handle(v[2].value)), 2736907675: (id, v) => new IFC2X3.IfcBooleanResult(id, v[0], new Handle(v[1].value), new Handle(v[2].value)), 4182860854: (id, _) => new IFC2X3.IfcBoundedSurface(id), 2581212453: (id, v) => new IFC2X3.IfcBoundingBox(id, new Handle(v[0].value), new IFC2X3.IfcPositiveLengthMeasure(v[1].value), new IFC2X3.IfcPositiveLengthMeasure(v[2].value), new IFC2X3.IfcPositiveLengthMeasure(v[3].value)), 2713105998: (id, v) => new IFC2X3.IfcBoxedHalfSpace(id, new Handle(v[0].value), v[1].value, new Handle(v[2].value)), 2898889636: (id, v) => new IFC2X3.IfcCShapeProfileDef(id, v[0], !v[1] ? null : new IFC2X3.IfcLabel(v[1].value), new Handle(v[2].value), new IFC2X3.IfcPositiveLengthMeasure(v[3].value), new IFC2X3.IfcPositiveLengthMeasure(v[4].value), new IFC2X3.IfcPositiveLengthMeasure(v[5].value), new IFC2X3.IfcPositiveLengthMeasure(v[6].value), !v[7] ? null : new IFC2X3.IfcPositiveLengthMeasure(v[7].value), !v[8] ? null : new IFC2X3.IfcPositiveLengthMeasure(v[8].value)), 1123145078: (id, v) => new IFC2X3.IfcCartesianPoint(id, v[0].map((p) => new IFC2X3.IfcLengthMeasure(p.value))), 59481748: (id, v) => new IFC2X3.IfcCartesianTransformationOperator(id, !v[0] ? null : new Handle(v[0].value), !v[1] ? null : new Handle(v[1].value), new Handle(v[2].value), !v[3] ? null : v[3].value), 3749851601: (id, v) => new IFC2X3.IfcCartesianTransformationOperator2D(id, !v[0] ? null : new Handle(v[0].value), !v[1] ? null : new Handle(v[1].value), new Handle(v[2].value), !v[3] ? null : v[3].value), 3486308946: (id, v) => new IFC2X3.IfcCartesianTransformationOperator2DnonUniform(id, !v[0] ? null : new Handle(v[0].value), !v[1] ? null : new Handle(v[1].value), new Handle(v[2].value), !v[3] ? null : v[3].value, !v[4] ? null : v[4].value), 3331915920: (id, v) => new IFC2X3.IfcCartesianTransformationOperator3D(id, !v[0] ? null : new Handle(v[0].value), !v[1] ? null : new Handle(v[1].value), new Handle(v[2].value), !v[3] ? null : v[3].value, !v[4] ? null : new Handle(v[4].value)), 1416205885: (id, v) => new IFC2X3.IfcCartesianTransformationOperator3DnonUniform(id, !v[0] ? null : new Handle(v[0].value), !v[1] ? null : new Handle(v[1].value), new Handle(v[2].value), !v[3] ? null : v[3].value, !v[4] ? null : new Handle(v[4].value), !v[5] ? null : v[5].value, !v[6] ? null : v[6].value), 1383045692: (id, v) => new IFC2X3.IfcCircleProfileDef(id, v[0], !v[1] ? null : new IFC2X3.IfcLabel(v[1].value), new Handle(v[2].value), new IFC2X3.IfcPositiveLengthMeasure(v[3].value)), 2205249479: (id, v) => new IFC2X3.IfcClosedShell(id, v[0].map((p) => new Handle(p.value))), 2485617015: (id, v) => new IFC2X3.IfcCompositeCurveSegment(id, v[0], v[1].value, new Handle(v[2].value)), 4133800736: (id, v) => new IFC2X3.IfcCraneRailAShapeProfileDef(id, v[0], !v[1] ? null : new IFC2X3.IfcLabel(v[1].value), new Handle(v[2].value), new IFC2X3.IfcPositiveLengthMeasure(v[3].value), new IFC2X3.IfcPositiveLengthMeasure(v[4].value), !v[5] ? null : new IFC2X3.IfcPositiveLengthMeasure(v[5].value), new IFC2X3.IfcPositiveLengthMeasure(v[6].value), new IFC2X3.IfcPositiveLengthMeasure(v[7].value), new IFC2X3.IfcPositiveLengthMeasure(v[8].value), new IFC2X3.IfcPositiveLengthMeasure(v[9].value), new IFC2X3.IfcPositiveLengthMeasure(v[10].value), new IFC2X3.IfcPositiveLengthMeasure(v[11].value), new IFC2X3.IfcPositiveLengthMeasure(v[12].value), new IFC2X3.IfcPositiveLengthMeasure(v[13].value), !v[14] ? null : new IFC2X3.IfcPositiveLengthMeasure(v[14].value)), 194851669: (id, v) => new IFC2X3.IfcCraneRailFShapeProfileDef(id, v[0], !v[1] ? null : new IFC2X3.IfcLabel(v[1].value), new Handle(v[2].value), new IFC2X3.IfcPositiveLengthMeasure(v[3].value), new IFC2X3.IfcPositiveLengthMeasure(v[4].value), !v[5] ? null : new IFC2X3.IfcPositiveLengthMeasure(v[5].value), new IFC2X3.IfcPositiveLengthMeasure(v[6].value), new IFC2X3.IfcPositiveLengthMeasure(v[7].value), new IFC2X3.IfcPositiveLengthMeasure(v[8].value), new IFC2X3.IfcPositiveLengthMeasure(v[9].value), new IFC2X3.IfcPositiveLengthMeasure(v[10].value), !v[11] ? null : new IFC2X3.IfcPositiveLengthMeasure(v[11].value)), 2506170314: (id, v) => new IFC2X3.IfcCsgPrimitive3D(id, new Handle(v[0].value)), 2147822146: (id, v) => new IFC2X3.IfcCsgSolid(id, new Handle(v[0].value)), 2601014836: (id, _) => new IFC2X3.IfcCurve(id), 2827736869: (id, v) => new IFC2X3.IfcCurveBoundedPlane(id, new Handle(v[0].value), new Handle(v[1].value), v[2].map((p) => new Handle(p.value))), 693772133: (id, v) => new IFC2X3.IfcDefinedSymbol(id, new Handle(v[0].value), new Handle(v[1].value)), 606661476: (id, v) => new IFC2X3.IfcDimensionCurve(id, !v[0] ? null : new Handle(v[0].value), v[1].map((p) => new Handle(p.value)), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value)), 4054601972: (id, v) => new IFC2X3.IfcDimensionCurveTerminator(id, !v[0] ? null : new Handle(v[0].value), v[1].map((p) => new Handle(p.value)), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), new Handle(v[3].value), v[4]), 32440307: (id, v) => new IFC2X3.IfcDirection(id, v[0].map((p) => p.value)), 2963535650: (id, v) => new IFC2X3.IfcDoorLiningProperties(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcPositiveLengthMeasure(v[4].value), !v[5] ? null : new IFC2X3.IfcPositiveLengthMeasure(v[5].value), !v[6] ? null : new IFC2X3.IfcPositiveLengthMeasure(v[6].value), !v[7] ? null : new IFC2X3.IfcPositiveLengthMeasure(v[7].value), !v[8] ? null : new IFC2X3.IfcPositiveLengthMeasure(v[8].value), !v[9] ? null : new IFC2X3.IfcLengthMeasure(v[9].value), !v[10] ? null : new IFC2X3.IfcLengthMeasure(v[10].value), !v[11] ? null : new IFC2X3.IfcLengthMeasure(v[11].value), !v[12] ? null : new IFC2X3.IfcPositiveLengthMeasure(v[12].value), !v[13] ? null : new IFC2X3.IfcPositiveLengthMeasure(v[13].value), !v[14] ? null : new Handle(v[14].value)), 1714330368: (id, v) => new IFC2X3.IfcDoorPanelProperties(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcPositiveLengthMeasure(v[4].value), v[5], !v[6] ? null : new IFC2X3.IfcNormalisedRatioMeasure(v[6].value), v[7], !v[8] ? null : new Handle(v[8].value)), 526551008: (id, v) => new IFC2X3.IfcDoorStyle(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), v[8], v[9], v[10].value, v[11].value), 3073041342: (id, v) => new IFC2X3.IfcDraughtingCallout(id, v[0].map((p) => new Handle(p.value))), 445594917: (id, v) => new IFC2X3.IfcDraughtingPreDefinedColour(id, new IFC2X3.IfcLabel(v[0].value)), 4006246654: (id, v) => new IFC2X3.IfcDraughtingPreDefinedCurveFont(id, new IFC2X3.IfcLabel(v[0].value)), 1472233963: (id, v) => new IFC2X3.IfcEdgeLoop(id, v[0].map((p) => new Handle(p.value))), 1883228015: (id, v) => new IFC2X3.IfcElementQuantity(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), v[5].map((p) => new Handle(p.value))), 339256511: (id, v) => new IFC2X3.IfcElementType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value)), 2777663545: (id, v) => new IFC2X3.IfcElementarySurface(id, new Handle(v[0].value)), 2835456948: (id, v) => new IFC2X3.IfcEllipseProfileDef(id, v[0], !v[1] ? null : new IFC2X3.IfcLabel(v[1].value), new Handle(v[2].value), new IFC2X3.IfcPositiveLengthMeasure(v[3].value), new IFC2X3.IfcPositiveLengthMeasure(v[4].value)), 80994333: (id, v) => new IFC2X3.IfcEnergyProperties(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), v[4], !v[5] ? null : new IFC2X3.IfcLabel(v[5].value)), 477187591: (id, v) => new IFC2X3.IfcExtrudedAreaSolid(id, new Handle(v[0].value), new Handle(v[1].value), new Handle(v[2].value), new IFC2X3.IfcPositiveLengthMeasure(v[3].value)), 2047409740: (id, v) => new IFC2X3.IfcFaceBasedSurfaceModel(id, v[0].map((p) => new Handle(p.value))), 374418227: (id, v) => new IFC2X3.IfcFillAreaStyleHatching(id, new Handle(v[0].value), new Handle(v[1].value), !v[2] ? null : new Handle(v[2].value), !v[3] ? null : new Handle(v[3].value), new IFC2X3.IfcPlaneAngleMeasure(v[4].value)), 4203026998: (id, v) => new IFC2X3.IfcFillAreaStyleTileSymbolWithStyle(id, new Handle(v[0].value)), 315944413: (id, v) => new IFC2X3.IfcFillAreaStyleTiles(id, new Handle(v[0].value), v[1].map((p) => new Handle(p.value)), new IFC2X3.IfcPositiveRatioMeasure(v[2].value)), 3455213021: (id, v) => new IFC2X3.IfcFluidFlowProperties(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), v[4], !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new Handle(v[7].value), new Handle(v[8].value), !v[9] ? null : new Handle(v[9].value), !v[10] ? null : new IFC2X3.IfcLabel(v[10].value), !v[11] ? null : new IFC2X3.IfcThermodynamicTemperatureMeasure(v[11].value), !v[12] ? null : new IFC2X3.IfcThermodynamicTemperatureMeasure(v[12].value), !v[13] ? null : new Handle(v[13].value), !v[14] ? null : new Handle(v[14].value), !v[15] ? null : TypeInitialiser(1, v[15]), !v[16] ? null : new IFC2X3.IfcPositiveRatioMeasure(v[16].value), !v[17] ? null : new IFC2X3.IfcLinearVelocityMeasure(v[17].value), !v[18] ? null : new IFC2X3.IfcPressureMeasure(v[18].value)), 4238390223: (id, v) => new IFC2X3.IfcFurnishingElementType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value)), 1268542332: (id, v) => new IFC2X3.IfcFurnitureType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value), v[9]), 987898635: (id, v) => new IFC2X3.IfcGeometricCurveSet(id, v[0].map((p) => new Handle(p.value))), 1484403080: (id, v) => new IFC2X3.IfcIShapeProfileDef(id, v[0], !v[1] ? null : new IFC2X3.IfcLabel(v[1].value), new Handle(v[2].value), new IFC2X3.IfcPositiveLengthMeasure(v[3].value), new IFC2X3.IfcPositiveLengthMeasure(v[4].value), new IFC2X3.IfcPositiveLengthMeasure(v[5].value), new IFC2X3.IfcPositiveLengthMeasure(v[6].value), !v[7] ? null : new IFC2X3.IfcPositiveLengthMeasure(v[7].value)), 572779678: (id, v) => new IFC2X3.IfcLShapeProfileDef(id, v[0], !v[1] ? null : new IFC2X3.IfcLabel(v[1].value), new Handle(v[2].value), new IFC2X3.IfcPositiveLengthMeasure(v[3].value), !v[4] ? null : new IFC2X3.IfcPositiveLengthMeasure(v[4].value), new IFC2X3.IfcPositiveLengthMeasure(v[5].value), !v[6] ? null : new IFC2X3.IfcPositiveLengthMeasure(v[6].value), !v[7] ? null : new IFC2X3.IfcPositiveLengthMeasure(v[7].value), !v[8] ? null : new IFC2X3.IfcPlaneAngleMeasure(v[8].value), !v[9] ? null : new IFC2X3.IfcPositiveLengthMeasure(v[9].value), !v[10] ? null : new IFC2X3.IfcPositiveLengthMeasure(v[10].value)), 1281925730: (id, v) => new IFC2X3.IfcLine(id, new Handle(v[0].value), new Handle(v[1].value)), 1425443689: (id, v) => new IFC2X3.IfcManifoldSolidBrep(id, new Handle(v[0].value)), 3888040117: (id, v) => new IFC2X3.IfcObject(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value)), 3388369263: (id, v) => new IFC2X3.IfcOffsetCurve2D(id, new Handle(v[0].value), new IFC2X3.IfcLengthMeasure(v[1].value), v[2].value), 3505215534: (id, v) => new IFC2X3.IfcOffsetCurve3D(id, new Handle(v[0].value), new IFC2X3.IfcLengthMeasure(v[1].value), v[2].value, new Handle(v[3].value)), 3566463478: (id, v) => new IFC2X3.IfcPermeableCoveringProperties(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), v[4], v[5], !v[6] ? null : new IFC2X3.IfcPositiveLengthMeasure(v[6].value), !v[7] ? null : new IFC2X3.IfcPositiveLengthMeasure(v[7].value), !v[8] ? null : new Handle(v[8].value)), 603570806: (id, v) => new IFC2X3.IfcPlanarBox(id, new IFC2X3.IfcLengthMeasure(v[0].value), new IFC2X3.IfcLengthMeasure(v[1].value), new Handle(v[2].value)), 220341763: (id, v) => new IFC2X3.IfcPlane(id, new Handle(v[0].value)), 2945172077: (id, v) => new IFC2X3.IfcProcess(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value)), 4208778838: (id, v) => new IFC2X3.IfcProduct(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value)), 103090709: (id, v) => new IFC2X3.IfcProject(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new IFC2X3.IfcLabel(v[5].value), !v[6] ? null : new IFC2X3.IfcLabel(v[6].value), v[7].map((p) => new Handle(p.value)), new Handle(v[8].value)), 4194566429: (id, v) => new IFC2X3.IfcProjectionCurve(id, !v[0] ? null : new Handle(v[0].value), v[1].map((p) => new Handle(p.value)), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value)), 1451395588: (id, v) => new IFC2X3.IfcPropertySet(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), v[4].map((p) => new Handle(p.value))), 3219374653: (id, v) => new IFC2X3.IfcProxy(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), v[7], !v[8] ? null : new IFC2X3.IfcLabel(v[8].value)), 2770003689: (id, v) => new IFC2X3.IfcRectangleHollowProfileDef(id, v[0], !v[1] ? null : new IFC2X3.IfcLabel(v[1].value), new Handle(v[2].value), new IFC2X3.IfcPositiveLengthMeasure(v[3].value), new IFC2X3.IfcPositiveLengthMeasure(v[4].value), new IFC2X3.IfcPositiveLengthMeasure(v[5].value), !v[6] ? null : new IFC2X3.IfcPositiveLengthMeasure(v[6].value), !v[7] ? null : new IFC2X3.IfcPositiveLengthMeasure(v[7].value)), 2798486643: (id, v) => new IFC2X3.IfcRectangularPyramid(id, new Handle(v[0].value), new IFC2X3.IfcPositiveLengthMeasure(v[1].value), new IFC2X3.IfcPositiveLengthMeasure(v[2].value), new IFC2X3.IfcPositiveLengthMeasure(v[3].value)), 3454111270: (id, v) => new IFC2X3.IfcRectangularTrimmedSurface(id, new Handle(v[0].value), new IFC2X3.IfcParameterValue(v[1].value), new IFC2X3.IfcParameterValue(v[2].value), new IFC2X3.IfcParameterValue(v[3].value), new IFC2X3.IfcParameterValue(v[4].value), v[5].value, v[6].value), 3939117080: (id, v) => new IFC2X3.IfcRelAssigns(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), v[4].map((p) => new Handle(p.value)), v[5]), 1683148259: (id, v) => new IFC2X3.IfcRelAssignsToActor(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), v[4].map((p) => new Handle(p.value)), v[5], new Handle(v[6].value), !v[7] ? null : new Handle(v[7].value)), 2495723537: (id, v) => new IFC2X3.IfcRelAssignsToControl(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), v[4].map((p) => new Handle(p.value)), v[5], new Handle(v[6].value)), 1307041759: (id, v) => new IFC2X3.IfcRelAssignsToGroup(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), v[4].map((p) => new Handle(p.value)), v[5], new Handle(v[6].value)), 4278684876: (id, v) => new IFC2X3.IfcRelAssignsToProcess(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), v[4].map((p) => new Handle(p.value)), v[5], new Handle(v[6].value), !v[7] ? null : new Handle(v[7].value)), 2857406711: (id, v) => new IFC2X3.IfcRelAssignsToProduct(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), v[4].map((p) => new Handle(p.value)), v[5], new Handle(v[6].value)), 3372526763: (id, v) => new IFC2X3.IfcRelAssignsToProjectOrder(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), v[4].map((p) => new Handle(p.value)), v[5], new Handle(v[6].value)), 205026976: (id, v) => new IFC2X3.IfcRelAssignsToResource(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), v[4].map((p) => new Handle(p.value)), v[5], new Handle(v[6].value)), 1865459582: (id, v) => new IFC2X3.IfcRelAssociates(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), v[4].map((p) => new Handle(p.value))), 1327628568: (id, v) => new IFC2X3.IfcRelAssociatesAppliedValue(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), v[4].map((p) => new Handle(p.value)), new Handle(v[5].value)), 4095574036: (id, v) => new IFC2X3.IfcRelAssociatesApproval(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), v[4].map((p) => new Handle(p.value)), new Handle(v[5].value)), 919958153: (id, v) => new IFC2X3.IfcRelAssociatesClassification(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), v[4].map((p) => new Handle(p.value)), new Handle(v[5].value)), 2728634034: (id, v) => new IFC2X3.IfcRelAssociatesConstraint(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), v[4].map((p) => new Handle(p.value)), new IFC2X3.IfcLabel(v[5].value), new Handle(v[6].value)), 982818633: (id, v) => new IFC2X3.IfcRelAssociatesDocument(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), v[4].map((p) => new Handle(p.value)), new Handle(v[5].value)), 3840914261: (id, v) => new IFC2X3.IfcRelAssociatesLibrary(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), v[4].map((p) => new Handle(p.value)), new Handle(v[5].value)), 2655215786: (id, v) => new IFC2X3.IfcRelAssociatesMaterial(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), v[4].map((p) => new Handle(p.value)), new Handle(v[5].value)), 2851387026: (id, v) => new IFC2X3.IfcRelAssociatesProfileProperties(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), v[4].map((p) => new Handle(p.value)), new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new Handle(v[7].value)), 826625072: (id, v) => new IFC2X3.IfcRelConnects(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value)), 1204542856: (id, v) => new IFC2X3.IfcRelConnectsElements(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new Handle(v[4].value), new Handle(v[5].value), new Handle(v[6].value)), 3945020480: (id, v) => new IFC2X3.IfcRelConnectsPathElements(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new Handle(v[4].value), new Handle(v[5].value), new Handle(v[6].value), v[7].map((p) => p.value), v[8].map((p) => p.value), v[9], v[10]), 4201705270: (id, v) => new IFC2X3.IfcRelConnectsPortToElement(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), new Handle(v[4].value), new Handle(v[5].value)), 3190031847: (id, v) => new IFC2X3.IfcRelConnectsPorts(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), new Handle(v[4].value), new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value)), 2127690289: (id, v) => new IFC2X3.IfcRelConnectsStructuralActivity(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), new Handle(v[4].value), new Handle(v[5].value)), 3912681535: (id, v) => new IFC2X3.IfcRelConnectsStructuralElement(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), new Handle(v[4].value), new Handle(v[5].value)), 1638771189: (id, v) => new IFC2X3.IfcRelConnectsStructuralMember(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), new Handle(v[4].value), new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new Handle(v[7].value), !v[8] ? null : new IFC2X3.IfcLengthMeasure(v[8].value), !v[9] ? null : new Handle(v[9].value)), 504942748: (id, v) => new IFC2X3.IfcRelConnectsWithEccentricity(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), new Handle(v[4].value), new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new Handle(v[7].value), !v[8] ? null : new IFC2X3.IfcLengthMeasure(v[8].value), !v[9] ? null : new Handle(v[9].value), new Handle(v[10].value)), 3678494232: (id, v) => new IFC2X3.IfcRelConnectsWithRealizingElements(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new Handle(v[4].value), new Handle(v[5].value), new Handle(v[6].value), v[7].map((p) => new Handle(p.value)), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value)), 3242617779: (id, v) => new IFC2X3.IfcRelContainedInSpatialStructure(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), v[4].map((p) => new Handle(p.value)), new Handle(v[5].value)), 886880790: (id, v) => new IFC2X3.IfcRelCoversBldgElements(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), new Handle(v[4].value), v[5].map((p) => new Handle(p.value))), 2802773753: (id, v) => new IFC2X3.IfcRelCoversSpaces(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), new Handle(v[4].value), v[5].map((p) => new Handle(p.value))), 2551354335: (id, v) => new IFC2X3.IfcRelDecomposes(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), new Handle(v[4].value), v[5].map((p) => new Handle(p.value))), 693640335: (id, v) => new IFC2X3.IfcRelDefines(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), v[4].map((p) => new Handle(p.value))), 4186316022: (id, v) => new IFC2X3.IfcRelDefinesByProperties(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), v[4].map((p) => new Handle(p.value)), new Handle(v[5].value)), 781010003: (id, v) => new IFC2X3.IfcRelDefinesByType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), v[4].map((p) => new Handle(p.value)), new Handle(v[5].value)), 3940055652: (id, v) => new IFC2X3.IfcRelFillsElement(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), new Handle(v[4].value), new Handle(v[5].value)), 279856033: (id, v) => new IFC2X3.IfcRelFlowControlElements(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), v[4].map((p) => new Handle(p.value)), new Handle(v[5].value)), 4189434867: (id, v) => new IFC2X3.IfcRelInteractionRequirements(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcCountMeasure(v[4].value), !v[5] ? null : new IFC2X3.IfcNormalisedRatioMeasure(v[5].value), !v[6] ? null : new Handle(v[6].value), new Handle(v[7].value), new Handle(v[8].value)), 3268803585: (id, v) => new IFC2X3.IfcRelNests(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), new Handle(v[4].value), v[5].map((p) => new Handle(p.value))), 2051452291: (id, v) => new IFC2X3.IfcRelOccupiesSpaces(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), v[4].map((p) => new Handle(p.value)), v[5], new Handle(v[6].value), !v[7] ? null : new Handle(v[7].value)), 202636808: (id, v) => new IFC2X3.IfcRelOverridesProperties(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), v[4].map((p) => new Handle(p.value)), new Handle(v[5].value), v[6].map((p) => new Handle(p.value))), 750771296: (id, v) => new IFC2X3.IfcRelProjectsElement(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), new Handle(v[4].value), new Handle(v[5].value)), 1245217292: (id, v) => new IFC2X3.IfcRelReferencedInSpatialStructure(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), v[4].map((p) => new Handle(p.value)), new Handle(v[5].value)), 1058617721: (id, v) => new IFC2X3.IfcRelSchedulesCostItems(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), v[4].map((p) => new Handle(p.value)), v[5], new Handle(v[6].value)), 4122056220: (id, v) => new IFC2X3.IfcRelSequence(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), new Handle(v[4].value), new Handle(v[5].value), new IFC2X3.IfcTimeMeasure(v[6].value), v[7]), 366585022: (id, v) => new IFC2X3.IfcRelServicesBuildings(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), new Handle(v[4].value), v[5].map((p) => new Handle(p.value))), 3451746338: (id, v) => new IFC2X3.IfcRelSpaceBoundary(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), new Handle(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), v[7], v[8]), 1401173127: (id, v) => new IFC2X3.IfcRelVoidsElement(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), new Handle(v[4].value), new Handle(v[5].value)), 2914609552: (id, v) => new IFC2X3.IfcResource(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value)), 1856042241: (id, v) => new IFC2X3.IfcRevolvedAreaSolid(id, new Handle(v[0].value), new Handle(v[1].value), new Handle(v[2].value), new IFC2X3.IfcPlaneAngleMeasure(v[3].value)), 4158566097: (id, v) => new IFC2X3.IfcRightCircularCone(id, new Handle(v[0].value), new IFC2X3.IfcPositiveLengthMeasure(v[1].value), new IFC2X3.IfcPositiveLengthMeasure(v[2].value)), 3626867408: (id, v) => new IFC2X3.IfcRightCircularCylinder(id, new Handle(v[0].value), new IFC2X3.IfcPositiveLengthMeasure(v[1].value), new IFC2X3.IfcPositiveLengthMeasure(v[2].value)), 2706606064: (id, v) => new IFC2X3.IfcSpatialStructureElement(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), v[8]), 3893378262: (id, v) => new IFC2X3.IfcSpatialStructureElementType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value)), 451544542: (id, v) => new IFC2X3.IfcSphere(id, new Handle(v[0].value), new IFC2X3.IfcPositiveLengthMeasure(v[1].value)), 3544373492: (id, v) => new IFC2X3.IfcStructuralActivity(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), new Handle(v[7].value), v[8]), 3136571912: (id, v) => new IFC2X3.IfcStructuralItem(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value)), 530289379: (id, v) => new IFC2X3.IfcStructuralMember(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value)), 3689010777: (id, v) => new IFC2X3.IfcStructuralReaction(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), new Handle(v[7].value), v[8]), 3979015343: (id, v) => new IFC2X3.IfcStructuralSurfaceMember(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), v[7], !v[8] ? null : new IFC2X3.IfcPositiveLengthMeasure(v[8].value)), 2218152070: (id, v) => new IFC2X3.IfcStructuralSurfaceMemberVarying(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), v[7], !v[8] ? null : new IFC2X3.IfcPositiveLengthMeasure(v[8].value), v[9].map((p) => new IFC2X3.IfcPositiveLengthMeasure(p.value)), new Handle(v[10].value)), 4070609034: (id, v) => new IFC2X3.IfcStructuredDimensionCallout(id, v[0].map((p) => new Handle(p.value))), 2028607225: (id, v) => new IFC2X3.IfcSurfaceCurveSweptAreaSolid(id, new Handle(v[0].value), new Handle(v[1].value), new Handle(v[2].value), new IFC2X3.IfcParameterValue(v[3].value), new IFC2X3.IfcParameterValue(v[4].value), new Handle(v[5].value)), 2809605785: (id, v) => new IFC2X3.IfcSurfaceOfLinearExtrusion(id, new Handle(v[0].value), new Handle(v[1].value), new Handle(v[2].value), new IFC2X3.IfcLengthMeasure(v[3].value)), 4124788165: (id, v) => new IFC2X3.IfcSurfaceOfRevolution(id, new Handle(v[0].value), new Handle(v[1].value), new Handle(v[2].value)), 1580310250: (id, v) => new IFC2X3.IfcSystemFurnitureElementType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value)), 3473067441: (id, v) => new IFC2X3.IfcTask(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), new IFC2X3.IfcIdentifier(v[5].value), !v[6] ? null : new IFC2X3.IfcLabel(v[6].value), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), v[8].value, !v[9] ? null : v[9].value), 2097647324: (id, v) => new IFC2X3.IfcTransportElementType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value), v[9]), 2296667514: (id, v) => new IFC2X3.IfcActor(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), new Handle(v[5].value)), 1674181508: (id, v) => new IFC2X3.IfcAnnotation(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value)), 3207858831: (id, v) => new IFC2X3.IfcAsymmetricIShapeProfileDef(id, v[0], !v[1] ? null : new IFC2X3.IfcLabel(v[1].value), new Handle(v[2].value), new IFC2X3.IfcPositiveLengthMeasure(v[3].value), new IFC2X3.IfcPositiveLengthMeasure(v[4].value), new IFC2X3.IfcPositiveLengthMeasure(v[5].value), new IFC2X3.IfcPositiveLengthMeasure(v[6].value), !v[7] ? null : new IFC2X3.IfcPositiveLengthMeasure(v[7].value), new IFC2X3.IfcPositiveLengthMeasure(v[8].value), !v[9] ? null : new IFC2X3.IfcPositiveLengthMeasure(v[9].value), !v[10] ? null : new IFC2X3.IfcPositiveLengthMeasure(v[10].value), !v[11] ? null : new IFC2X3.IfcPositiveLengthMeasure(v[11].value)), 1334484129: (id, v) => new IFC2X3.IfcBlock(id, new Handle(v[0].value), new IFC2X3.IfcPositiveLengthMeasure(v[1].value), new IFC2X3.IfcPositiveLengthMeasure(v[2].value), new IFC2X3.IfcPositiveLengthMeasure(v[3].value)), 3649129432: (id, v) => new IFC2X3.IfcBooleanClippingResult(id, v[0], new Handle(v[1].value), new Handle(v[2].value)), 1260505505: (id, _) => new IFC2X3.IfcBoundedCurve(id), 4031249490: (id, v) => new IFC2X3.IfcBuilding(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), v[8], !v[9] ? null : new IFC2X3.IfcLengthMeasure(v[9].value), !v[10] ? null : new IFC2X3.IfcLengthMeasure(v[10].value), !v[11] ? null : new Handle(v[11].value)), 1950629157: (id, v) => new IFC2X3.IfcBuildingElementType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value)), 3124254112: (id, v) => new IFC2X3.IfcBuildingStorey(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), v[8], !v[9] ? null : new IFC2X3.IfcLengthMeasure(v[9].value)), 2937912522: (id, v) => new IFC2X3.IfcCircleHollowProfileDef(id, v[0], !v[1] ? null : new IFC2X3.IfcLabel(v[1].value), new Handle(v[2].value), new IFC2X3.IfcPositiveLengthMeasure(v[3].value), new IFC2X3.IfcPositiveLengthMeasure(v[4].value)), 300633059: (id, v) => new IFC2X3.IfcColumnType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value), v[9]), 3732776249: (id, v) => new IFC2X3.IfcCompositeCurve(id, v[0].map((p) => new Handle(p.value)), v[1].value), 2510884976: (id, v) => new IFC2X3.IfcConic(id, new Handle(v[0].value)), 2559216714: (id, v) => new IFC2X3.IfcConstructionResource(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new IFC2X3.IfcIdentifier(v[5].value), !v[6] ? null : new IFC2X3.IfcLabel(v[6].value), v[7], !v[8] ? null : new Handle(v[8].value)), 3293443760: (id, v) => new IFC2X3.IfcControl(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value)), 3895139033: (id, v) => new IFC2X3.IfcCostItem(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value)), 1419761937: (id, v) => new IFC2X3.IfcCostSchedule(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new Handle(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value), !v[9] ? null : v[9].map((p) => new Handle(p.value)), !v[10] ? null : new Handle(v[10].value), new IFC2X3.IfcIdentifier(v[11].value), v[12]), 1916426348: (id, v) => new IFC2X3.IfcCoveringType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value), v[9]), 3295246426: (id, v) => new IFC2X3.IfcCrewResource(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new IFC2X3.IfcIdentifier(v[5].value), !v[6] ? null : new IFC2X3.IfcLabel(v[6].value), v[7], !v[8] ? null : new Handle(v[8].value)), 1457835157: (id, v) => new IFC2X3.IfcCurtainWallType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value), v[9]), 681481545: (id, v) => new IFC2X3.IfcDimensionCurveDirectedCallout(id, v[0].map((p) => new Handle(p.value))), 3256556792: (id, v) => new IFC2X3.IfcDistributionElementType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value)), 3849074793: (id, v) => new IFC2X3.IfcDistributionFlowElementType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value)), 360485395: (id, v) => new IFC2X3.IfcElectricalBaseProperties(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), v[4], !v[5] ? null : new IFC2X3.IfcLabel(v[5].value), v[6], new IFC2X3.IfcElectricVoltageMeasure(v[7].value), new IFC2X3.IfcFrequencyMeasure(v[8].value), !v[9] ? null : new IFC2X3.IfcElectricCurrentMeasure(v[9].value), !v[10] ? null : new IFC2X3.IfcElectricCurrentMeasure(v[10].value), !v[11] ? null : new IFC2X3.IfcPowerMeasure(v[11].value), !v[12] ? null : new IFC2X3.IfcPowerMeasure(v[12].value), v[13].value), 1758889154: (id, v) => new IFC2X3.IfcElement(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(v[7].value)), 4123344466: (id, v) => new IFC2X3.IfcElementAssembly(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(v[7].value), v[8], v[9]), 1623761950: (id, v) => new IFC2X3.IfcElementComponent(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(v[7].value)), 2590856083: (id, v) => new IFC2X3.IfcElementComponentType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value)), 1704287377: (id, v) => new IFC2X3.IfcEllipse(id, new Handle(v[0].value), new IFC2X3.IfcPositiveLengthMeasure(v[1].value), new IFC2X3.IfcPositiveLengthMeasure(v[2].value)), 2107101300: (id, v) => new IFC2X3.IfcEnergyConversionDeviceType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value)), 1962604670: (id, v) => new IFC2X3.IfcEquipmentElement(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(v[7].value)), 3272907226: (id, v) => new IFC2X3.IfcEquipmentStandard(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value)), 3174744832: (id, v) => new IFC2X3.IfcEvaporativeCoolerType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value), v[9]), 3390157468: (id, v) => new IFC2X3.IfcEvaporatorType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value), v[9]), 807026263: (id, v) => new IFC2X3.IfcFacetedBrep(id, new Handle(v[0].value)), 3737207727: (id, v) => new IFC2X3.IfcFacetedBrepWithVoids(id, new Handle(v[0].value), v[1].map((p) => new Handle(p.value))), 647756555: (id, v) => new IFC2X3.IfcFastener(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(v[7].value)), 2489546625: (id, v) => new IFC2X3.IfcFastenerType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value)), 2827207264: (id, v) => new IFC2X3.IfcFeatureElement(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(v[7].value)), 2143335405: (id, v) => new IFC2X3.IfcFeatureElementAddition(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(v[7].value)), 1287392070: (id, v) => new IFC2X3.IfcFeatureElementSubtraction(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(v[7].value)), 3907093117: (id, v) => new IFC2X3.IfcFlowControllerType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value)), 3198132628: (id, v) => new IFC2X3.IfcFlowFittingType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value)), 3815607619: (id, v) => new IFC2X3.IfcFlowMeterType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value), v[9]), 1482959167: (id, v) => new IFC2X3.IfcFlowMovingDeviceType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value)), 1834744321: (id, v) => new IFC2X3.IfcFlowSegmentType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value)), 1339347760: (id, v) => new IFC2X3.IfcFlowStorageDeviceType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value)), 2297155007: (id, v) => new IFC2X3.IfcFlowTerminalType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value)), 3009222698: (id, v) => new IFC2X3.IfcFlowTreatmentDeviceType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value)), 263784265: (id, v) => new IFC2X3.IfcFurnishingElement(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(v[7].value)), 814719939: (id, v) => new IFC2X3.IfcFurnitureStandard(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value)), 200128114: (id, v) => new IFC2X3.IfcGasTerminalType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value), v[9]), 3009204131: (id, v) => new IFC2X3.IfcGrid(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), v[7].map((p) => new Handle(p.value)), v[8].map((p) => new Handle(p.value)), !v[9] ? null : v[9].map((p) => new Handle(p.value))), 2706460486: (id, v) => new IFC2X3.IfcGroup(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value)), 1251058090: (id, v) => new IFC2X3.IfcHeatExchangerType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value), v[9]), 1806887404: (id, v) => new IFC2X3.IfcHumidifierType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value), v[9]), 2391368822: (id, v) => new IFC2X3.IfcInventory(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), v[5], new Handle(v[6].value), v[7].map((p) => new Handle(p.value)), new Handle(v[8].value), !v[9] ? null : new Handle(v[9].value), !v[10] ? null : new Handle(v[10].value)), 4288270099: (id, v) => new IFC2X3.IfcJunctionBoxType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value), v[9]), 3827777499: (id, v) => new IFC2X3.IfcLaborResource(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new IFC2X3.IfcIdentifier(v[5].value), !v[6] ? null : new IFC2X3.IfcLabel(v[6].value), v[7], !v[8] ? null : new Handle(v[8].value), !v[9] ? null : new IFC2X3.IfcText(v[9].value)), 1051575348: (id, v) => new IFC2X3.IfcLampType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value), v[9]), 1161773419: (id, v) => new IFC2X3.IfcLightFixtureType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value), v[9]), 2506943328: (id, v) => new IFC2X3.IfcLinearDimension(id, v[0].map((p) => new Handle(p.value))), 377706215: (id, v) => new IFC2X3.IfcMechanicalFastener(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(v[7].value), !v[8] ? null : new IFC2X3.IfcPositiveLengthMeasure(v[8].value), !v[9] ? null : new IFC2X3.IfcPositiveLengthMeasure(v[9].value)), 2108223431: (id, v) => new IFC2X3.IfcMechanicalFastenerType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value)), 3181161470: (id, v) => new IFC2X3.IfcMemberType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value), v[9]), 977012517: (id, v) => new IFC2X3.IfcMotorConnectionType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value), v[9]), 1916936684: (id, v) => new IFC2X3.IfcMove(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), new IFC2X3.IfcIdentifier(v[5].value), !v[6] ? null : new IFC2X3.IfcLabel(v[6].value), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), v[8].value, !v[9] ? null : v[9].value, new Handle(v[10].value), new Handle(v[11].value), !v[12] ? null : v[12].map((p) => new IFC2X3.IfcText(p.value))), 4143007308: (id, v) => new IFC2X3.IfcOccupant(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), new Handle(v[5].value), v[6]), 3588315303: (id, v) => new IFC2X3.IfcOpeningElement(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(v[7].value)), 3425660407: (id, v) => new IFC2X3.IfcOrderAction(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), new IFC2X3.IfcIdentifier(v[5].value), !v[6] ? null : new IFC2X3.IfcLabel(v[6].value), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), v[8].value, !v[9] ? null : v[9].value, new IFC2X3.IfcIdentifier(v[10].value)), 2837617999: (id, v) => new IFC2X3.IfcOutletType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value), v[9]), 2382730787: (id, v) => new IFC2X3.IfcPerformanceHistory(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), new IFC2X3.IfcLabel(v[5].value)), 3327091369: (id, v) => new IFC2X3.IfcPermit(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), new IFC2X3.IfcIdentifier(v[5].value)), 804291784: (id, v) => new IFC2X3.IfcPipeFittingType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value), v[9]), 4231323485: (id, v) => new IFC2X3.IfcPipeSegmentType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value), v[9]), 4017108033: (id, v) => new IFC2X3.IfcPlateType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value), v[9]), 3724593414: (id, v) => new IFC2X3.IfcPolyline(id, v[0].map((p) => new Handle(p.value))), 3740093272: (id, v) => new IFC2X3.IfcPort(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value)), 2744685151: (id, v) => new IFC2X3.IfcProcedure(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), new IFC2X3.IfcIdentifier(v[5].value), v[6], !v[7] ? null : new IFC2X3.IfcLabel(v[7].value)), 2904328755: (id, v) => new IFC2X3.IfcProjectOrder(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), new IFC2X3.IfcIdentifier(v[5].value), v[6], !v[7] ? null : new IFC2X3.IfcLabel(v[7].value)), 3642467123: (id, v) => new IFC2X3.IfcProjectOrderRecord(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), v[5].map((p) => new Handle(p.value)), v[6]), 3651124850: (id, v) => new IFC2X3.IfcProjectionElement(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(v[7].value)), 1842657554: (id, v) => new IFC2X3.IfcProtectiveDeviceType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value), v[9]), 2250791053: (id, v) => new IFC2X3.IfcPumpType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value), v[9]), 3248260540: (id, v) => new IFC2X3.IfcRadiusDimension(id, v[0].map((p) => new Handle(p.value))), 2893384427: (id, v) => new IFC2X3.IfcRailingType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value), v[9]), 2324767716: (id, v) => new IFC2X3.IfcRampFlightType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value), v[9]), 160246688: (id, v) => new IFC2X3.IfcRelAggregates(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), new Handle(v[4].value), v[5].map((p) => new Handle(p.value))), 2863920197: (id, v) => new IFC2X3.IfcRelAssignsTasks(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), v[4].map((p) => new Handle(p.value)), v[5], new Handle(v[6].value), !v[7] ? null : new Handle(v[7].value)), 1768891740: (id, v) => new IFC2X3.IfcSanitaryTerminalType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value), v[9]), 3517283431: (id, v) => new IFC2X3.IfcScheduleTimeControl(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new Handle(v[7].value), !v[8] ? null : new Handle(v[8].value), !v[9] ? null : new Handle(v[9].value), !v[10] ? null : new Handle(v[10].value), !v[11] ? null : new Handle(v[11].value), !v[12] ? null : new Handle(v[12].value), !v[13] ? null : new IFC2X3.IfcTimeMeasure(v[13].value), !v[14] ? null : new IFC2X3.IfcTimeMeasure(v[14].value), !v[15] ? null : new IFC2X3.IfcTimeMeasure(v[15].value), !v[16] ? null : new IFC2X3.IfcTimeMeasure(v[16].value), !v[17] ? null : new IFC2X3.IfcTimeMeasure(v[17].value), !v[18] ? null : v[18].value, !v[19] ? null : new Handle(v[19].value), !v[20] ? null : new IFC2X3.IfcTimeMeasure(v[20].value), !v[21] ? null : new IFC2X3.IfcTimeMeasure(v[21].value), !v[22] ? null : new IFC2X3.IfcPositiveRatioMeasure(v[22].value)), 4105383287: (id, v) => new IFC2X3.IfcServiceLife(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), v[5], new IFC2X3.IfcTimeMeasure(v[6].value)), 4097777520: (id, v) => new IFC2X3.IfcSite(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), v[8], !v[9] ? null : new IFC2X3.IfcCompoundPlaneAngleMeasure(v[9].value), !v[10] ? null : new IFC2X3.IfcCompoundPlaneAngleMeasure(v[10].value), !v[11] ? null : new IFC2X3.IfcLengthMeasure(v[11].value), !v[12] ? null : new IFC2X3.IfcLabel(v[12].value), !v[13] ? null : new Handle(v[13].value)), 2533589738: (id, v) => new IFC2X3.IfcSlabType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value), v[9]), 3856911033: (id, v) => new IFC2X3.IfcSpace(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), v[8], v[9], !v[10] ? null : new IFC2X3.IfcLengthMeasure(v[10].value)), 1305183839: (id, v) => new IFC2X3.IfcSpaceHeaterType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value), v[9]), 652456506: (id, v) => new IFC2X3.IfcSpaceProgram(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), new IFC2X3.IfcIdentifier(v[5].value), !v[6] ? null : new IFC2X3.IfcAreaMeasure(v[6].value), !v[7] ? null : new IFC2X3.IfcAreaMeasure(v[7].value), !v[8] ? null : new Handle(v[8].value), new IFC2X3.IfcAreaMeasure(v[9].value)), 3812236995: (id, v) => new IFC2X3.IfcSpaceType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value), v[9]), 3112655638: (id, v) => new IFC2X3.IfcStackTerminalType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value), v[9]), 1039846685: (id, v) => new IFC2X3.IfcStairFlightType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value), v[9]), 682877961: (id, v) => new IFC2X3.IfcStructuralAction(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), new Handle(v[7].value), v[8], v[9].value, !v[10] ? null : new Handle(v[10].value)), 1179482911: (id, v) => new IFC2X3.IfcStructuralConnection(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new Handle(v[7].value)), 4243806635: (id, v) => new IFC2X3.IfcStructuralCurveConnection(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new Handle(v[7].value)), 214636428: (id, v) => new IFC2X3.IfcStructuralCurveMember(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), v[7]), 2445595289: (id, v) => new IFC2X3.IfcStructuralCurveMemberVarying(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), v[7]), 1807405624: (id, v) => new IFC2X3.IfcStructuralLinearAction(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), new Handle(v[7].value), v[8], v[9].value, !v[10] ? null : new Handle(v[10].value), v[11]), 1721250024: (id, v) => new IFC2X3.IfcStructuralLinearActionVarying(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), new Handle(v[7].value), v[8], v[9].value, !v[10] ? null : new Handle(v[10].value), v[11], new Handle(v[12].value), v[13].map((p) => new Handle(p.value))), 1252848954: (id, v) => new IFC2X3.IfcStructuralLoadGroup(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), v[5], v[6], v[7], !v[8] ? null : new IFC2X3.IfcRatioMeasure(v[8].value), !v[9] ? null : new IFC2X3.IfcLabel(v[9].value)), 1621171031: (id, v) => new IFC2X3.IfcStructuralPlanarAction(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), new Handle(v[7].value), v[8], v[9].value, !v[10] ? null : new Handle(v[10].value), v[11]), 3987759626: (id, v) => new IFC2X3.IfcStructuralPlanarActionVarying(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), new Handle(v[7].value), v[8], v[9].value, !v[10] ? null : new Handle(v[10].value), v[11], new Handle(v[12].value), v[13].map((p) => new Handle(p.value))), 2082059205: (id, v) => new IFC2X3.IfcStructuralPointAction(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), new Handle(v[7].value), v[8], v[9].value, !v[10] ? null : new Handle(v[10].value)), 734778138: (id, v) => new IFC2X3.IfcStructuralPointConnection(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new Handle(v[7].value)), 1235345126: (id, v) => new IFC2X3.IfcStructuralPointReaction(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), new Handle(v[7].value), v[8]), 2986769608: (id, v) => new IFC2X3.IfcStructuralResultGroup(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), v[5], !v[6] ? null : new Handle(v[6].value), v[7].value), 1975003073: (id, v) => new IFC2X3.IfcStructuralSurfaceConnection(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new Handle(v[7].value)), 148013059: (id, v) => new IFC2X3.IfcSubContractResource(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new IFC2X3.IfcIdentifier(v[5].value), !v[6] ? null : new IFC2X3.IfcLabel(v[6].value), v[7], !v[8] ? null : new Handle(v[8].value), !v[9] ? null : new Handle(v[9].value), !v[10] ? null : new IFC2X3.IfcText(v[10].value)), 2315554128: (id, v) => new IFC2X3.IfcSwitchingDeviceType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value), v[9]), 2254336722: (id, v) => new IFC2X3.IfcSystem(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value)), 5716631: (id, v) => new IFC2X3.IfcTankType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value), v[9]), 1637806684: (id, v) => new IFC2X3.IfcTimeSeriesSchedule(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), v[6], new Handle(v[7].value)), 1692211062: (id, v) => new IFC2X3.IfcTransformerType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value), v[9]), 1620046519: (id, v) => new IFC2X3.IfcTransportElement(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(v[7].value), v[8], !v[9] ? null : new IFC2X3.IfcMassMeasure(v[9].value), !v[10] ? null : new IFC2X3.IfcCountMeasure(v[10].value)), 3593883385: (id, v) => new IFC2X3.IfcTrimmedCurve(id, new Handle(v[0].value), v[1].map((p) => new Handle(p.value)), v[2].map((p) => new Handle(p.value)), v[3].value, v[4]), 1600972822: (id, v) => new IFC2X3.IfcTubeBundleType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value), v[9]), 1911125066: (id, v) => new IFC2X3.IfcUnitaryEquipmentType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value), v[9]), 728799441: (id, v) => new IFC2X3.IfcValveType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value), v[9]), 2769231204: (id, v) => new IFC2X3.IfcVirtualElement(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(v[7].value)), 1898987631: (id, v) => new IFC2X3.IfcWallType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value), v[9]), 1133259667: (id, v) => new IFC2X3.IfcWasteTerminalType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value), v[9]), 1028945134: (id, v) => new IFC2X3.IfcWorkControl(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), new IFC2X3.IfcIdentifier(v[5].value), new Handle(v[6].value), !v[7] ? null : v[7].map((p) => new Handle(p.value)), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value), !v[9] ? null : new IFC2X3.IfcTimeMeasure(v[9].value), !v[10] ? null : new IFC2X3.IfcTimeMeasure(v[10].value), new Handle(v[11].value), !v[12] ? null : new Handle(v[12].value), v[13], !v[14] ? null : new IFC2X3.IfcLabel(v[14].value)), 4218914973: (id, v) => new IFC2X3.IfcWorkPlan(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), new IFC2X3.IfcIdentifier(v[5].value), new Handle(v[6].value), !v[7] ? null : v[7].map((p) => new Handle(p.value)), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value), !v[9] ? null : new IFC2X3.IfcTimeMeasure(v[9].value), !v[10] ? null : new IFC2X3.IfcTimeMeasure(v[10].value), new Handle(v[11].value), !v[12] ? null : new Handle(v[12].value), v[13], !v[14] ? null : new IFC2X3.IfcLabel(v[14].value)), 3342526732: (id, v) => new IFC2X3.IfcWorkSchedule(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), new IFC2X3.IfcIdentifier(v[5].value), new Handle(v[6].value), !v[7] ? null : v[7].map((p) => new Handle(p.value)), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value), !v[9] ? null : new IFC2X3.IfcTimeMeasure(v[9].value), !v[10] ? null : new IFC2X3.IfcTimeMeasure(v[10].value), new Handle(v[11].value), !v[12] ? null : new Handle(v[12].value), v[13], !v[14] ? null : new IFC2X3.IfcLabel(v[14].value)), 1033361043: (id, v) => new IFC2X3.IfcZone(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value)), 1213861670: (id, v) => new IFC2X3.Ifc2DCompositeCurve(id, v[0].map((p) => new Handle(p.value)), v[1].value), 3821786052: (id, v) => new IFC2X3.IfcActionRequest(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), new IFC2X3.IfcIdentifier(v[5].value)), 1411407467: (id, v) => new IFC2X3.IfcAirTerminalBoxType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value), v[9]), 3352864051: (id, v) => new IFC2X3.IfcAirTerminalType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value), v[9]), 1871374353: (id, v) => new IFC2X3.IfcAirToAirHeatRecoveryType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value), v[9]), 2470393545: (id, v) => new IFC2X3.IfcAngularDimension(id, v[0].map((p) => new Handle(p.value))), 3460190687: (id, v) => new IFC2X3.IfcAsset(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), new IFC2X3.IfcIdentifier(v[5].value), new Handle(v[6].value), new Handle(v[7].value), new Handle(v[8].value), new Handle(v[9].value), new Handle(v[10].value), new Handle(v[11].value), new Handle(v[12].value), new Handle(v[13].value)), 1967976161: (id, v) => new IFC2X3.IfcBSplineCurve(id, v[0].value, v[1].map((p) => new Handle(p.value)), v[2], v[3].value, v[4].value), 819618141: (id, v) => new IFC2X3.IfcBeamType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value), v[9]), 1916977116: (id, v) => new IFC2X3.IfcBezierCurve(id, v[0].value, v[1].map((p) => new Handle(p.value)), v[2], v[3].value, v[4].value), 231477066: (id, v) => new IFC2X3.IfcBoilerType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value), v[9]), 3299480353: (id, v) => new IFC2X3.IfcBuildingElement(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(v[7].value)), 52481810: (id, v) => new IFC2X3.IfcBuildingElementComponent(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(v[7].value)), 2979338954: (id, v) => new IFC2X3.IfcBuildingElementPart(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(v[7].value)), 1095909175: (id, v) => new IFC2X3.IfcBuildingElementProxy(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(v[7].value), v[8]), 1909888760: (id, v) => new IFC2X3.IfcBuildingElementProxyType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value), v[9]), 395041908: (id, v) => new IFC2X3.IfcCableCarrierFittingType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value), v[9]), 3293546465: (id, v) => new IFC2X3.IfcCableCarrierSegmentType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value), v[9]), 1285652485: (id, v) => new IFC2X3.IfcCableSegmentType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value), v[9]), 2951183804: (id, v) => new IFC2X3.IfcChillerType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value), v[9]), 2611217952: (id, v) => new IFC2X3.IfcCircle(id, new Handle(v[0].value), new IFC2X3.IfcPositiveLengthMeasure(v[1].value)), 2301859152: (id, v) => new IFC2X3.IfcCoilType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value), v[9]), 843113511: (id, v) => new IFC2X3.IfcColumn(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(v[7].value)), 3850581409: (id, v) => new IFC2X3.IfcCompressorType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value), v[9]), 2816379211: (id, v) => new IFC2X3.IfcCondenserType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value), v[9]), 2188551683: (id, v) => new IFC2X3.IfcCondition(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value)), 1163958913: (id, v) => new IFC2X3.IfcConditionCriterion(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), new Handle(v[5].value), new Handle(v[6].value)), 3898045240: (id, v) => new IFC2X3.IfcConstructionEquipmentResource(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new IFC2X3.IfcIdentifier(v[5].value), !v[6] ? null : new IFC2X3.IfcLabel(v[6].value), v[7], !v[8] ? null : new Handle(v[8].value)), 1060000209: (id, v) => new IFC2X3.IfcConstructionMaterialResource(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new IFC2X3.IfcIdentifier(v[5].value), !v[6] ? null : new IFC2X3.IfcLabel(v[6].value), v[7], !v[8] ? null : new Handle(v[8].value), !v[9] ? null : v[9].map((p) => new Handle(p.value)), !v[10] ? null : new IFC2X3.IfcRatioMeasure(v[10].value)), 488727124: (id, v) => new IFC2X3.IfcConstructionProductResource(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new IFC2X3.IfcIdentifier(v[5].value), !v[6] ? null : new IFC2X3.IfcLabel(v[6].value), v[7], !v[8] ? null : new Handle(v[8].value)), 335055490: (id, v) => new IFC2X3.IfcCooledBeamType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value), v[9]), 2954562838: (id, v) => new IFC2X3.IfcCoolingTowerType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value), v[9]), 1973544240: (id, v) => new IFC2X3.IfcCovering(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(v[7].value), v[8]), 3495092785: (id, v) => new IFC2X3.IfcCurtainWall(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(v[7].value)), 3961806047: (id, v) => new IFC2X3.IfcDamperType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value), v[9]), 4147604152: (id, v) => new IFC2X3.IfcDiameterDimension(id, v[0].map((p) => new Handle(p.value))), 1335981549: (id, v) => new IFC2X3.IfcDiscreteAccessory(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(v[7].value)), 2635815018: (id, v) => new IFC2X3.IfcDiscreteAccessoryType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value)), 1599208980: (id, v) => new IFC2X3.IfcDistributionChamberElementType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value), v[9]), 2063403501: (id, v) => new IFC2X3.IfcDistributionControlElementType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value)), 1945004755: (id, v) => new IFC2X3.IfcDistributionElement(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(v[7].value)), 3040386961: (id, v) => new IFC2X3.IfcDistributionFlowElement(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(v[7].value)), 3041715199: (id, v) => new IFC2X3.IfcDistributionPort(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), v[7]), 395920057: (id, v) => new IFC2X3.IfcDoor(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(v[7].value), !v[8] ? null : new IFC2X3.IfcPositiveLengthMeasure(v[8].value), !v[9] ? null : new IFC2X3.IfcPositiveLengthMeasure(v[9].value)), 869906466: (id, v) => new IFC2X3.IfcDuctFittingType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value), v[9]), 3760055223: (id, v) => new IFC2X3.IfcDuctSegmentType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value), v[9]), 2030761528: (id, v) => new IFC2X3.IfcDuctSilencerType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value), v[9]), 855621170: (id, v) => new IFC2X3.IfcEdgeFeature(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(v[7].value), !v[8] ? null : new IFC2X3.IfcPositiveLengthMeasure(v[8].value)), 663422040: (id, v) => new IFC2X3.IfcElectricApplianceType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value), v[9]), 3277789161: (id, v) => new IFC2X3.IfcElectricFlowStorageDeviceType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value), v[9]), 1534661035: (id, v) => new IFC2X3.IfcElectricGeneratorType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value), v[9]), 1365060375: (id, v) => new IFC2X3.IfcElectricHeaterType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value), v[9]), 1217240411: (id, v) => new IFC2X3.IfcElectricMotorType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value), v[9]), 712377611: (id, v) => new IFC2X3.IfcElectricTimeControlType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value), v[9]), 1634875225: (id, v) => new IFC2X3.IfcElectricalCircuit(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value)), 857184966: (id, v) => new IFC2X3.IfcElectricalElement(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(v[7].value)), 1658829314: (id, v) => new IFC2X3.IfcEnergyConversionDevice(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(v[7].value)), 346874300: (id, v) => new IFC2X3.IfcFanType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value), v[9]), 1810631287: (id, v) => new IFC2X3.IfcFilterType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value), v[9]), 4222183408: (id, v) => new IFC2X3.IfcFireSuppressionTerminalType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value), v[9]), 2058353004: (id, v) => new IFC2X3.IfcFlowController(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(v[7].value)), 4278956645: (id, v) => new IFC2X3.IfcFlowFitting(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(v[7].value)), 4037862832: (id, v) => new IFC2X3.IfcFlowInstrumentType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value), v[9]), 3132237377: (id, v) => new IFC2X3.IfcFlowMovingDevice(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(v[7].value)), 987401354: (id, v) => new IFC2X3.IfcFlowSegment(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(v[7].value)), 707683696: (id, v) => new IFC2X3.IfcFlowStorageDevice(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(v[7].value)), 2223149337: (id, v) => new IFC2X3.IfcFlowTerminal(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(v[7].value)), 3508470533: (id, v) => new IFC2X3.IfcFlowTreatmentDevice(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(v[7].value)), 900683007: (id, v) => new IFC2X3.IfcFooting(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(v[7].value), v[8]), 1073191201: (id, v) => new IFC2X3.IfcMember(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(v[7].value)), 1687234759: (id, v) => new IFC2X3.IfcPile(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(v[7].value), v[8], v[9]), 3171933400: (id, v) => new IFC2X3.IfcPlate(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(v[7].value)), 2262370178: (id, v) => new IFC2X3.IfcRailing(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(v[7].value), v[8]), 3024970846: (id, v) => new IFC2X3.IfcRamp(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(v[7].value), v[8]), 3283111854: (id, v) => new IFC2X3.IfcRampFlight(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(v[7].value)), 3055160366: (id, v) => new IFC2X3.IfcRationalBezierCurve(id, v[0].value, v[1].map((p) => new Handle(p.value)), v[2], v[3].value, v[4].value, v[5].map((p) => p.value)), 3027567501: (id, v) => new IFC2X3.IfcReinforcingElement(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value)), 2320036040: (id, v) => new IFC2X3.IfcReinforcingMesh(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value), !v[9] ? null : new IFC2X3.IfcPositiveLengthMeasure(v[9].value), !v[10] ? null : new IFC2X3.IfcPositiveLengthMeasure(v[10].value), new IFC2X3.IfcPositiveLengthMeasure(v[11].value), new IFC2X3.IfcPositiveLengthMeasure(v[12].value), new IFC2X3.IfcAreaMeasure(v[13].value), new IFC2X3.IfcAreaMeasure(v[14].value), new IFC2X3.IfcPositiveLengthMeasure(v[15].value), new IFC2X3.IfcPositiveLengthMeasure(v[16].value)), 2016517767: (id, v) => new IFC2X3.IfcRoof(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(v[7].value), v[8]), 1376911519: (id, v) => new IFC2X3.IfcRoundedEdgeFeature(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(v[7].value), !v[8] ? null : new IFC2X3.IfcPositiveLengthMeasure(v[8].value), !v[9] ? null : new IFC2X3.IfcPositiveLengthMeasure(v[9].value)), 1783015770: (id, v) => new IFC2X3.IfcSensorType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value), v[9]), 1529196076: (id, v) => new IFC2X3.IfcSlab(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(v[7].value), v[8]), 331165859: (id, v) => new IFC2X3.IfcStair(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(v[7].value), v[8]), 4252922144: (id, v) => new IFC2X3.IfcStairFlight(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(v[7].value), !v[8] ? null : v[8].value, !v[9] ? null : v[9].value, !v[10] ? null : new IFC2X3.IfcPositiveLengthMeasure(v[10].value), !v[11] ? null : new IFC2X3.IfcPositiveLengthMeasure(v[11].value)), 2515109513: (id, v) => new IFC2X3.IfcStructuralAnalysisModel(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), v[5], !v[6] ? null : new Handle(v[6].value), !v[7] ? null : v[7].map((p) => new Handle(p.value)), !v[8] ? null : v[8].map((p) => new Handle(p.value))), 3824725483: (id, v) => new IFC2X3.IfcTendon(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value), v[9], new IFC2X3.IfcPositiveLengthMeasure(v[10].value), new IFC2X3.IfcAreaMeasure(v[11].value), !v[12] ? null : new IFC2X3.IfcForceMeasure(v[12].value), !v[13] ? null : new IFC2X3.IfcPressureMeasure(v[13].value), !v[14] ? null : new IFC2X3.IfcNormalisedRatioMeasure(v[14].value), !v[15] ? null : new IFC2X3.IfcPositiveLengthMeasure(v[15].value), !v[16] ? null : new IFC2X3.IfcPositiveLengthMeasure(v[16].value)), 2347447852: (id, v) => new IFC2X3.IfcTendonAnchor(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value)), 3313531582: (id, v) => new IFC2X3.IfcVibrationIsolatorType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value), v[9]), 2391406946: (id, v) => new IFC2X3.IfcWall(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(v[7].value)), 3512223829: (id, v) => new IFC2X3.IfcWallStandardCase(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(v[7].value)), 3304561284: (id, v) => new IFC2X3.IfcWindow(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(v[7].value), !v[8] ? null : new IFC2X3.IfcPositiveLengthMeasure(v[8].value), !v[9] ? null : new IFC2X3.IfcPositiveLengthMeasure(v[9].value)), 2874132201: (id, v) => new IFC2X3.IfcActuatorType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value), v[9]), 3001207471: (id, v) => new IFC2X3.IfcAlarmType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value), v[9]), 753842376: (id, v) => new IFC2X3.IfcBeam(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(v[7].value)), 2454782716: (id, v) => new IFC2X3.IfcChamferEdgeFeature(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(v[7].value), !v[8] ? null : new IFC2X3.IfcPositiveLengthMeasure(v[8].value), !v[9] ? null : new IFC2X3.IfcPositiveLengthMeasure(v[9].value), !v[10] ? null : new IFC2X3.IfcPositiveLengthMeasure(v[10].value)), 578613899: (id, v) => new IFC2X3.IfcControllerType(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC2X3.IfcLabel(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value), v[9]), 1052013943: (id, v) => new IFC2X3.IfcDistributionChamberElement(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(v[7].value)), 1062813311: (id, v) => new IFC2X3.IfcDistributionControlElement(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(v[7].value), !v[8] ? null : new IFC2X3.IfcIdentifier(v[8].value)), 3700593921: (id, v) => new IFC2X3.IfcElectricDistributionPoint(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(v[7].value), v[8], !v[9] ? null : new IFC2X3.IfcLabel(v[9].value)), 979691226: (id, v) => new IFC2X3.IfcReinforcingBar(id, new IFC2X3.IfcGloballyUniqueId(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(v[2].value), !v[3] ? null : new IFC2X3.IfcText(v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(v[8].value), new IFC2X3.IfcPositiveLengthMeasure(v[9].value), new IFC2X3.IfcAreaMeasure(v[10].value), !v[11] ? null : new IFC2X3.IfcPositiveLengthMeasure(v[11].value), v[12], v[13]) }; InheritanceDef[1] = { 618182010: [IFCTELECOMADDRESS, IFCPOSTALADDRESS], 411424972: [IFCENVIRONMENTALIMPACTVALUE, IFCCOSTVALUE], 4037036970: [IFCBOUNDARYNODECONDITIONWARPING, IFCBOUNDARYNODECONDITION, IFCBOUNDARYFACECONDITION, IFCBOUNDARYEDGECONDITION], 1387855156: [IFCBOUNDARYNODECONDITIONWARPING], 3264961684: [IFCCOLOURRGB], 2859738748: [IFCCONNECTIONCURVEGEOMETRY, IFCCONNECTIONSURFACEGEOMETRY, IFCCONNECTIONPORTGEOMETRY, IFCCONNECTIONPOINTECCENTRICITY, IFCCONNECTIONPOINTGEOMETRY], 2614616156: [IFCCONNECTIONPOINTECCENTRICITY], 1959218052: [IFCOBJECTIVE, IFCMETRIC], 3796139169: [IFCDIMENSIONPAIR, IFCDIMENSIONCALLOUTRELATIONSHIP], 3200245327: [IFCDOCUMENTREFERENCE, IFCCLASSIFICATIONREFERENCE, IFCLIBRARYREFERENCE, IFCEXTERNALLYDEFINEDTEXTFONT, IFCEXTERNALLYDEFINEDSYMBOL, IFCEXTERNALLYDEFINEDSURFACESTYLE, IFCEXTERNALLYDEFINEDHATCHSTYLE], 3265635763: [IFCHYGROSCOPICMATERIALPROPERTIES, IFCGENERALMATERIALPROPERTIES, IFCFUELPROPERTIES, IFCEXTENDEDMATERIALPROPERTIES, IFCWATERPROPERTIES, IFCTHERMALMATERIALPROPERTIES, IFCPRODUCTSOFCOMBUSTIONPROPERTIES, IFCOPTICALMATERIALPROPERTIES, IFCMECHANICALCONCRETEMATERIALPROPERTIES, IFCMECHANICALSTEELMATERIALPROPERTIES, IFCMECHANICALMATERIALPROPERTIES], 4256014907: [IFCMECHANICALCONCRETEMATERIALPROPERTIES, IFCMECHANICALSTEELMATERIALPROPERTIES], 1918398963: [IFCCONVERSIONBASEDUNIT, IFCCONTEXTDEPENDENTUNIT, IFCSIUNIT], 3701648758: [IFCLOCALPLACEMENT, IFCGRIDPLACEMENT], 2483315170: [IFCPHYSICALCOMPLEXQUANTITY, IFCQUANTITYWEIGHT, IFCQUANTITYVOLUME, IFCQUANTITYTIME, IFCQUANTITYLENGTH, IFCQUANTITYCOUNT, IFCQUANTITYAREA, IFCPHYSICALSIMPLEQUANTITY], 2226359599: [IFCQUANTITYWEIGHT, IFCQUANTITYVOLUME, IFCQUANTITYTIME, IFCQUANTITYLENGTH, IFCQUANTITYCOUNT, IFCQUANTITYAREA], 3727388367: [IFCDRAUGHTINGPREDEFINEDCURVEFONT, IFCPREDEFINEDCURVEFONT, IFCDRAUGHTINGPREDEFINEDCOLOUR, IFCPREDEFINEDCOLOUR, IFCDRAUGHTINGPREDEFINEDTEXTFONT, IFCTEXTSTYLEFONTMODEL, IFCPREDEFINEDTEXTFONT, IFCPREDEFINEDPOINTMARKERSYMBOL, IFCPREDEFINEDDIMENSIONSYMBOL, IFCPREDEFINEDTERMINATORSYMBOL, IFCPREDEFINEDSYMBOL], 990879717: [IFCPREDEFINEDPOINTMARKERSYMBOL, IFCPREDEFINEDDIMENSIONSYMBOL, IFCPREDEFINEDTERMINATORSYMBOL], 1775413392: [IFCDRAUGHTINGPREDEFINEDTEXTFONT, IFCTEXTSTYLEFONTMODEL], 2022622350: [IFCPRESENTATIONLAYERWITHSTYLE], 3119450353: [IFCFILLAREASTYLE, IFCCURVESTYLE, IFCTEXTSTYLE, IFCSYMBOLSTYLE, IFCSURFACESTYLE], 2095639259: [IFCPRODUCTDEFINITIONSHAPE, IFCMATERIALDEFINITIONREPRESENTATION], 3958567839: [IFCLSHAPEPROFILEDEF, IFCASYMMETRICISHAPEPROFILEDEF, IFCISHAPEPROFILEDEF, IFCELLIPSEPROFILEDEF, IFCCRANERAILFSHAPEPROFILEDEF, IFCCRANERAILASHAPEPROFILEDEF, IFCCIRCLEHOLLOWPROFILEDEF, IFCCIRCLEPROFILEDEF, IFCCSHAPEPROFILEDEF, IFCZSHAPEPROFILEDEF, IFCUSHAPEPROFILEDEF, IFCTRAPEZIUMPROFILEDEF, IFCTSHAPEPROFILEDEF, IFCRECTANGLEHOLLOWPROFILEDEF, IFCROUNDEDRECTANGLEPROFILEDEF, IFCRECTANGLEPROFILEDEF, IFCPARAMETERIZEDPROFILEDEF, IFCDERIVEDPROFILEDEF, IFCCOMPOSITEPROFILEDEF, IFCCENTERLINEPROFILEDEF, IFCARBITRARYOPENPROFILEDEF, IFCARBITRARYPROFILEDEFWITHVOIDS, IFCARBITRARYCLOSEDPROFILEDEF], 2802850158: [IFCSTRUCTURALSTEELPROFILEPROPERTIES, IFCSTRUCTURALPROFILEPROPERTIES, IFCGENERALPROFILEPROPERTIES, IFCRIBPLATEPROFILEPROPERTIES], 2598011224: [IFCCOMPLEXPROPERTY, IFCPROPERTYTABLEVALUE, IFCPROPERTYSINGLEVALUE, IFCPROPERTYREFERENCEVALUE, IFCPROPERTYLISTVALUE, IFCPROPERTYENUMERATEDVALUE, IFCPROPERTYBOUNDEDVALUE, IFCSIMPLEPROPERTY], 1076942058: [IFCSTYLEDREPRESENTATION, IFCSTYLEMODEL, IFCTOPOLOGYREPRESENTATION, IFCSHAPEREPRESENTATION, IFCSHAPEMODEL], 3377609919: [IFCGEOMETRICREPRESENTATIONSUBCONTEXT, IFCGEOMETRICREPRESENTATIONCONTEXT], 3008791417: [IFCMAPPEDITEM, IFCFILLAREASTYLETILES, IFCFILLAREASTYLETILESYMBOLWITHSTYLE, IFCFILLAREASTYLEHATCHING, IFCFACEBASEDSURFACEMODEL, IFCDIAMETERDIMENSION, IFCANGULARDIMENSION, IFCRADIUSDIMENSION, IFCLINEARDIMENSION, IFCDIMENSIONCURVEDIRECTEDCALLOUT, IFCSTRUCTUREDDIMENSIONCALLOUT, IFCDRAUGHTINGCALLOUT, IFCDIRECTION, IFCDEFINEDSYMBOL, IFCCIRCLE, IFCELLIPSE, IFCCONIC, IFCRATIONALBEZIERCURVE, IFCBEZIERCURVE, IFCBSPLINECURVE, IFCTRIMMEDCURVE, IFCPOLYLINE, IFC2DCOMPOSITECURVE, IFCCOMPOSITECURVE, IFCBOUNDEDCURVE, IFCOFFSETCURVE3D, IFCOFFSETCURVE2D, IFCLINE, IFCCURVE, IFCBLOCK, IFCSPHERE, IFCRIGHTCIRCULARCYLINDER, IFCRIGHTCIRCULARCONE, IFCRECTANGULARPYRAMID, IFCCSGPRIMITIVE3D, IFCCOMPOSITECURVESEGMENT, IFCCARTESIANTRANSFORMATIONOPERATOR3DNONUNIFORM, IFCCARTESIANTRANSFORMATIONOPERATOR3D, IFCCARTESIANTRANSFORMATIONOPERATOR2DNONUNIFORM, IFCCARTESIANTRANSFORMATIONOPERATOR2D, IFCCARTESIANTRANSFORMATIONOPERATOR, IFCBOUNDINGBOX, IFCBOOLEANCLIPPINGRESULT, IFCBOOLEANRESULT, IFCANNOTATIONSURFACE, IFCANNOTATIONFILLAREA, IFCVECTOR, IFCTEXTLITERALWITHEXTENT, IFCTEXTLITERAL, IFCPLANE, IFCELEMENTARYSURFACE, IFCRECTANGULARTRIMMEDSURFACE, IFCCURVEBOUNDEDPLANE, IFCBOUNDEDSURFACE, IFCSURFACEOFREVOLUTION, IFCSURFACEOFLINEAREXTRUSION, IFCSWEPTSURFACE, IFCSURFACE, IFCFACETEDBREPWITHVOIDS, IFCFACETEDBREP, IFCMANIFOLDSOLIDBREP, IFCCSGSOLID, IFCSWEPTDISKSOLID, IFCSURFACECURVESWEPTAREASOLID, IFCREVOLVEDAREASOLID, IFCEXTRUDEDAREASOLID, IFCSWEPTAREASOLID, IFCSOLIDMODEL, IFCSHELLBASEDSURFACEMODEL, IFCSECTIONEDSPINE, IFCCARTESIANPOINT, IFCPOINTONSURFACE, IFCPOINTONCURVE, IFCPOINT, IFCPLANARBOX, IFCPLANAREXTENT, IFCAXIS2PLACEMENT3D, IFCAXIS2PLACEMENT2D, IFCAXIS1PLACEMENT, IFCPLACEMENT, IFCTWODIRECTIONREPEATFACTOR, IFCONEDIRECTIONREPEATFACTOR, IFCLIGHTSOURCESPOT, IFCLIGHTSOURCEPOSITIONAL, IFCLIGHTSOURCEGONIOMETRIC, IFCLIGHTSOURCEDIRECTIONAL, IFCLIGHTSOURCEAMBIENT, IFCLIGHTSOURCE, IFCBOXEDHALFSPACE, IFCPOLYGONALBOUNDEDHALFSPACE, IFCHALFSPACESOLID, IFCGEOMETRICCURVESET, IFCGEOMETRICSET, IFCGEOMETRICREPRESENTATIONITEM, IFCPATH, IFCEDGELOOP, IFCVERTEXLOOP, IFCPOLYLOOP, IFCLOOP, IFCFACEOUTERBOUND, IFCFACEBOUND, IFCFACESURFACE, IFCFACE, IFCSUBEDGE, IFCORIENTEDEDGE, IFCEDGECURVE, IFCEDGE, IFCCLOSEDSHELL, IFCOPENSHELL, IFCCONNECTEDFACESET, IFCVERTEXPOINT, IFCVERTEX, IFCTOPOLOGICALREPRESENTATIONITEM, IFCANNOTATIONFILLAREAOCCURRENCE, IFCPROJECTIONCURVE, IFCDIMENSIONCURVE, IFCANNOTATIONCURVEOCCURRENCE, IFCANNOTATIONTEXTOCCURRENCE, IFCDIMENSIONCURVETERMINATOR, IFCTERMINATORSYMBOL, IFCANNOTATIONSYMBOLOCCURRENCE, IFCANNOTATIONSURFACEOCCURRENCE, IFCANNOTATIONOCCURRENCE, IFCSTYLEDITEM], 2341007311: [IFCRELDEFINESBYTYPE, IFCRELOVERRIDESPROPERTIES, IFCRELDEFINESBYPROPERTIES, IFCRELDEFINES, IFCRELAGGREGATES, IFCRELNESTS, IFCRELDECOMPOSES, IFCRELVOIDSELEMENT, IFCRELSPACEBOUNDARY, IFCRELSERVICESBUILDINGS, IFCRELSEQUENCE, IFCRELREFERENCEDINSPATIALSTRUCTURE, IFCRELPROJECTSELEMENT, IFCRELINTERACTIONREQUIREMENTS, IFCRELFLOWCONTROLELEMENTS, IFCRELFILLSELEMENT, IFCRELCOVERSSPACES, IFCRELCOVERSBLDGELEMENTS, IFCRELCONTAINEDINSPATIALSTRUCTURE, IFCRELCONNECTSWITHECCENTRICITY, IFCRELCONNECTSSTRUCTURALMEMBER, IFCRELCONNECTSSTRUCTURALELEMENT, IFCRELCONNECTSSTRUCTURALACTIVITY, IFCRELCONNECTSPORTS, IFCRELCONNECTSPORTTOELEMENT, IFCRELCONNECTSWITHREALIZINGELEMENTS, IFCRELCONNECTSPATHELEMENTS, IFCRELCONNECTSELEMENTS, IFCRELCONNECTS, IFCRELASSOCIATESPROFILEPROPERTIES, IFCRELASSOCIATESMATERIAL, IFCRELASSOCIATESLIBRARY, IFCRELASSOCIATESDOCUMENT, IFCRELASSOCIATESCONSTRAINT, IFCRELASSOCIATESCLASSIFICATION, IFCRELASSOCIATESAPPROVAL, IFCRELASSOCIATESAPPLIEDVALUE, IFCRELASSOCIATES, IFCRELASSIGNSTORESOURCE, IFCRELASSIGNSTOPRODUCT, IFCRELASSIGNSTOPROCESS, IFCRELASSIGNSTOGROUP, IFCRELASSIGNSTASKS, IFCRELSCHEDULESCOSTITEMS, IFCRELASSIGNSTOPROJECTORDER, IFCRELASSIGNSTOCONTROL, IFCRELOCCUPIESSPACES, IFCRELASSIGNSTOACTOR, IFCRELASSIGNS, IFCRELATIONSHIP, IFCPROPERTYSET, IFCPERMEABLECOVERINGPROPERTIES, IFCFLUIDFLOWPROPERTIES, IFCELECTRICALBASEPROPERTIES, IFCENERGYPROPERTIES, IFCELEMENTQUANTITY, IFCDOORPANELPROPERTIES, IFCDOORLININGPROPERTIES, IFCWINDOWPANELPROPERTIES, IFCWINDOWLININGPROPERTIES, IFCSPACETHERMALLOADPROPERTIES, IFCSOUNDVALUE, IFCSOUNDPROPERTIES, IFCSERVICELIFEFACTOR, IFCREINFORCEMENTDEFINITIONPROPERTIES, IFCPROPERTYSETDEFINITION, IFCPROPERTYDEFINITION, IFCCONDITION, IFCASSET, IFCZONE, IFCSTRUCTURALANALYSISMODEL, IFCELECTRICALCIRCUIT, IFCSYSTEM, IFCSTRUCTURALRESULTGROUP, IFCSTRUCTURALLOADGROUP, IFCINVENTORY, IFCGROUP, IFCCONDITIONCRITERION, IFCACTIONREQUEST, IFCWORKSCHEDULE, IFCWORKPLAN, IFCWORKCONTROL, IFCTIMESERIESSCHEDULE, IFCSPACEPROGRAM, IFCSERVICELIFE, IFCSCHEDULETIMECONTROL, IFCPROJECTORDERRECORD, IFCPROJECTORDER, IFCPERMIT, IFCPERFORMANCEHISTORY, IFCFURNITURESTANDARD, IFCEQUIPMENTSTANDARD, IFCCOSTSCHEDULE, IFCCOSTITEM, IFCCONTROL, IFCOCCUPANT, IFCACTOR, IFCCONSTRUCTIONPRODUCTRESOURCE, IFCCONSTRUCTIONMATERIALRESOURCE, IFCCONSTRUCTIONEQUIPMENTRESOURCE, IFCSUBCONTRACTRESOURCE, IFCLABORRESOURCE, IFCCREWRESOURCE, IFCCONSTRUCTIONRESOURCE, IFCRESOURCE, IFCPROJECT, IFCDISTRIBUTIONPORT, IFCPORT, IFCGRID, IFCELECTRICALELEMENT, IFCDISTRIBUTIONCONTROLELEMENT, IFCDISTRIBUTIONCHAMBERELEMENT, IFCFLOWTREATMENTDEVICE, IFCFLOWTERMINAL, IFCFLOWSTORAGEDEVICE, IFCFLOWSEGMENT, IFCFLOWMOVINGDEVICE, IFCFLOWFITTING, IFCELECTRICDISTRIBUTIONPOINT, IFCFLOWCONTROLLER, IFCENERGYCONVERSIONDEVICE, IFCDISTRIBUTIONFLOWELEMENT, IFCDISTRIBUTIONELEMENT, IFCBEAM, IFCWINDOW, IFCWALLSTANDARDCASE, IFCWALL, IFCSTAIRFLIGHT, IFCSTAIR, IFCSLAB, IFCROOF, IFCRAMPFLIGHT, IFCRAMP, IFCRAILING, IFCPLATE, IFCPILE, IFCMEMBER, IFCFOOTING, IFCDOOR, IFCCURTAINWALL, IFCCOVERING, IFCCOLUMN, IFCBUILDINGELEMENTPROXY, IFCREINFORCINGBAR, IFCTENDONANCHOR, IFCTENDON, IFCREINFORCINGMESH, IFCREINFORCINGELEMENT, IFCBUILDINGELEMENTPART, IFCBUILDINGELEMENTCOMPONENT, IFCBUILDINGELEMENT, IFCVIRTUALELEMENT, IFCTRANSPORTELEMENT, IFCFURNISHINGELEMENT, IFCCHAMFEREDGEFEATURE, IFCROUNDEDEDGEFEATURE, IFCEDGEFEATURE, IFCOPENINGELEMENT, IFCFEATUREELEMENTSUBTRACTION, IFCPROJECTIONELEMENT, IFCFEATUREELEMENTADDITION, IFCFEATUREELEMENT, IFCEQUIPMENTELEMENT, IFCDISCRETEACCESSORY, IFCMECHANICALFASTENER, IFCFASTENER, IFCELEMENTCOMPONENT, IFCELEMENTASSEMBLY, IFCELEMENT, IFCANNOTATION, IFCSTRUCTURALSURFACECONNECTION, IFCSTRUCTURALPOINTCONNECTION, IFCSTRUCTURALCURVECONNECTION, IFCSTRUCTURALCONNECTION, IFCSTRUCTURALCURVEMEMBERVARYING, IFCSTRUCTURALCURVEMEMBER, IFCSTRUCTURALSURFACEMEMBERVARYING, IFCSTRUCTURALSURFACEMEMBER, IFCSTRUCTURALMEMBER, IFCSTRUCTURALITEM, IFCSTRUCTURALPOINTACTION, IFCSTRUCTURALPLANARACTIONVARYING, IFCSTRUCTURALPLANARACTION, IFCSTRUCTURALLINEARACTIONVARYING, IFCSTRUCTURALLINEARACTION, IFCSTRUCTURALACTION, IFCSTRUCTURALPOINTREACTION, IFCSTRUCTURALREACTION, IFCSTRUCTURALACTIVITY, IFCSPACE, IFCSITE, IFCBUILDINGSTOREY, IFCBUILDING, IFCSPATIALSTRUCTUREELEMENT, IFCPROXY, IFCPRODUCT, IFCPROCEDURE, IFCORDERACTION, IFCMOVE, IFCTASK, IFCPROCESS, IFCOBJECT, IFCVIBRATIONISOLATORTYPE, IFCDISCRETEACCESSORYTYPE, IFCMECHANICALFASTENERTYPE, IFCFASTENERTYPE, IFCELEMENTCOMPONENTTYPE, IFCCONTROLLERTYPE, IFCALARMTYPE, IFCACTUATORTYPE, IFCSENSORTYPE, IFCFLOWINSTRUMENTTYPE, IFCDISTRIBUTIONCONTROLELEMENTTYPE, IFCDISTRIBUTIONCHAMBERELEMENTTYPE, IFCFILTERTYPE, IFCDUCTSILENCERTYPE, IFCFLOWTREATMENTDEVICETYPE, IFCFIRESUPPRESSIONTERMINALTYPE, IFCELECTRICHEATERTYPE, IFCELECTRICAPPLIANCETYPE, IFCAIRTERMINALTYPE, IFCWASTETERMINALTYPE, IFCSTACKTERMINALTYPE, IFCSANITARYTERMINALTYPE, IFCOUTLETTYPE, IFCLIGHTFIXTURETYPE, IFCLAMPTYPE, IFCGASTERMINALTYPE, IFCFLOWTERMINALTYPE, IFCELECTRICFLOWSTORAGEDEVICETYPE, IFCTANKTYPE, IFCFLOWSTORAGEDEVICETYPE, IFCDUCTSEGMENTTYPE, IFCCABLESEGMENTTYPE, IFCCABLECARRIERSEGMENTTYPE, IFCPIPESEGMENTTYPE, IFCFLOWSEGMENTTYPE, IFCFANTYPE, IFCCOMPRESSORTYPE, IFCPUMPTYPE, IFCFLOWMOVINGDEVICETYPE, IFCDUCTFITTINGTYPE, IFCCABLECARRIERFITTINGTYPE, IFCPIPEFITTINGTYPE, IFCJUNCTIONBOXTYPE, IFCFLOWFITTINGTYPE, IFCELECTRICTIMECONTROLTYPE, IFCDAMPERTYPE, IFCAIRTERMINALBOXTYPE, IFCVALVETYPE, IFCSWITCHINGDEVICETYPE, IFCPROTECTIVEDEVICETYPE, IFCFLOWMETERTYPE, IFCFLOWCONTROLLERTYPE, IFCELECTRICMOTORTYPE, IFCELECTRICGENERATORTYPE, IFCCOOLINGTOWERTYPE, IFCCOOLEDBEAMTYPE, IFCCONDENSERTYPE, IFCCOILTYPE, IFCCHILLERTYPE, IFCBOILERTYPE, IFCAIRTOAIRHEATRECOVERYTYPE, IFCUNITARYEQUIPMENTTYPE, IFCTUBEBUNDLETYPE, IFCTRANSFORMERTYPE, IFCSPACEHEATERTYPE, IFCMOTORCONNECTIONTYPE, IFCHUMIDIFIERTYPE, IFCHEATEXCHANGERTYPE, IFCEVAPORATORTYPE, IFCEVAPORATIVECOOLERTYPE, IFCENERGYCONVERSIONDEVICETYPE, IFCDISTRIBUTIONFLOWELEMENTTYPE, IFCDISTRIBUTIONELEMENTTYPE, IFCBUILDINGELEMENTPROXYTYPE, IFCBEAMTYPE, IFCWALLTYPE, IFCSTAIRFLIGHTTYPE, IFCSLABTYPE, IFCRAMPFLIGHTTYPE, IFCRAILINGTYPE, IFCPLATETYPE, IFCMEMBERTYPE, IFCCURTAINWALLTYPE, IFCCOVERINGTYPE, IFCCOLUMNTYPE, IFCBUILDINGELEMENTTYPE, IFCTRANSPORTELEMENTTYPE, IFCSPACETYPE, IFCSPATIALSTRUCTUREELEMENTTYPE, IFCSYSTEMFURNITUREELEMENTTYPE, IFCFURNITURETYPE, IFCFURNISHINGELEMENTTYPE, IFCELEMENTTYPE, IFCDOORSTYLE, IFCWINDOWSTYLE, IFCTYPEPRODUCT, IFCTYPEOBJECT, IFCOBJECTDEFINITION], 3982875396: [IFCTOPOLOGYREPRESENTATION, IFCSHAPEREPRESENTATION], 3692461612: [IFCPROPERTYTABLEVALUE, IFCPROPERTYSINGLEVALUE, IFCPROPERTYREFERENCEVALUE, IFCPROPERTYLISTVALUE, IFCPROPERTYENUMERATEDVALUE, IFCPROPERTYBOUNDEDVALUE], 2273995522: [IFCSLIPPAGECONNECTIONCONDITION, IFCFAILURECONNECTIONCONDITION], 2162789131: [IFCSTRUCTURALLOADSINGLEFORCEWARPING, IFCSTRUCTURALLOADSINGLEFORCE, IFCSTRUCTURALLOADSINGLEDISPLACEMENTDISTORTION, IFCSTRUCTURALLOADSINGLEDISPLACEMENT, IFCSTRUCTURALLOADPLANARFORCE, IFCSTRUCTURALLOADLINEARFORCE, IFCSTRUCTURALLOADTEMPERATURE, IFCSTRUCTURALLOADSTATIC], 2525727697: [IFCSTRUCTURALLOADSINGLEFORCEWARPING, IFCSTRUCTURALLOADSINGLEFORCE, IFCSTRUCTURALLOADSINGLEDISPLACEMENTDISTORTION, IFCSTRUCTURALLOADSINGLEDISPLACEMENT, IFCSTRUCTURALLOADPLANARFORCE, IFCSTRUCTURALLOADLINEARFORCE, IFCSTRUCTURALLOADTEMPERATURE], 2830218821: [IFCSTYLEDREPRESENTATION], 3958052878: [IFCANNOTATIONFILLAREAOCCURRENCE, IFCPROJECTIONCURVE, IFCDIMENSIONCURVE, IFCANNOTATIONCURVEOCCURRENCE, IFCANNOTATIONTEXTOCCURRENCE, IFCDIMENSIONCURVETERMINATOR, IFCTERMINATORSYMBOL, IFCANNOTATIONSYMBOLOCCURRENCE, IFCANNOTATIONSURFACEOCCURRENCE, IFCANNOTATIONOCCURRENCE], 846575682: [IFCSURFACESTYLERENDERING], 626085974: [IFCPIXELTEXTURE, IFCIMAGETEXTURE, IFCBLOBTEXTURE], 280115917: [IFCTEXTUREMAP, IFCTEXTURECOORDINATEGENERATOR], 3101149627: [IFCREGULARTIMESERIES, IFCIRREGULARTIMESERIES], 1377556343: [IFCPATH, IFCEDGELOOP, IFCVERTEXLOOP, IFCPOLYLOOP, IFCLOOP, IFCFACEOUTERBOUND, IFCFACEBOUND, IFCFACESURFACE, IFCFACE, IFCSUBEDGE, IFCORIENTEDEDGE, IFCEDGECURVE, IFCEDGE, IFCCLOSEDSHELL, IFCOPENSHELL, IFCCONNECTEDFACESET, IFCVERTEXPOINT, IFCVERTEX], 2799835756: [IFCVERTEXPOINT], 2442683028: [IFCANNOTATIONFILLAREAOCCURRENCE, IFCPROJECTIONCURVE, IFCDIMENSIONCURVE, IFCANNOTATIONCURVEOCCURRENCE, IFCANNOTATIONTEXTOCCURRENCE, IFCDIMENSIONCURVETERMINATOR, IFCTERMINATORSYMBOL, IFCANNOTATIONSYMBOLOCCURRENCE, IFCANNOTATIONSURFACEOCCURRENCE], 3612888222: [IFCDIMENSIONCURVETERMINATOR, IFCTERMINATORSYMBOL], 3798115385: [IFCARBITRARYPROFILEDEFWITHVOIDS], 1310608509: [IFCCENTERLINEPROFILEDEF], 370225590: [IFCCLOSEDSHELL, IFCOPENSHELL], 3900360178: [IFCSUBEDGE, IFCORIENTEDEDGE, IFCEDGECURVE], 2556980723: [IFCFACESURFACE], 1809719519: [IFCFACEOUTERBOUND], 1446786286: [IFCSTRUCTURALSTEELPROFILEPROPERTIES, IFCSTRUCTURALPROFILEPROPERTIES], 3448662350: [IFCGEOMETRICREPRESENTATIONSUBCONTEXT], 2453401579: [IFCFILLAREASTYLETILES, IFCFILLAREASTYLETILESYMBOLWITHSTYLE, IFCFILLAREASTYLEHATCHING, IFCFACEBASEDSURFACEMODEL, IFCDIAMETERDIMENSION, IFCANGULARDIMENSION, IFCRADIUSDIMENSION, IFCLINEARDIMENSION, IFCDIMENSIONCURVEDIRECTEDCALLOUT, IFCSTRUCTUREDDIMENSIONCALLOUT, IFCDRAUGHTINGCALLOUT, IFCDIRECTION, IFCDEFINEDSYMBOL, IFCCIRCLE, IFCELLIPSE, IFCCONIC, IFCRATIONALBEZIERCURVE, IFCBEZIERCURVE, IFCBSPLINECURVE, IFCTRIMMEDCURVE, IFCPOLYLINE, IFC2DCOMPOSITECURVE, IFCCOMPOSITECURVE, IFCBOUNDEDCURVE, IFCOFFSETCURVE3D, IFCOFFSETCURVE2D, IFCLINE, IFCCURVE, IFCBLOCK, IFCSPHERE, IFCRIGHTCIRCULARCYLINDER, IFCRIGHTCIRCULARCONE, IFCRECTANGULARPYRAMID, IFCCSGPRIMITIVE3D, IFCCOMPOSITECURVESEGMENT, IFCCARTESIANTRANSFORMATIONOPERATOR3DNONUNIFORM, IFCCARTESIANTRANSFORMATIONOPERATOR3D, IFCCARTESIANTRANSFORMATIONOPERATOR2DNONUNIFORM, IFCCARTESIANTRANSFORMATIONOPERATOR2D, IFCCARTESIANTRANSFORMATIONOPERATOR, IFCBOUNDINGBOX, IFCBOOLEANCLIPPINGRESULT, IFCBOOLEANRESULT, IFCANNOTATIONSURFACE, IFCANNOTATIONFILLAREA, IFCVECTOR, IFCTEXTLITERALWITHEXTENT, IFCTEXTLITERAL, IFCPLANE, IFCELEMENTARYSURFACE, IFCRECTANGULARTRIMMEDSURFACE, IFCCURVEBOUNDEDPLANE, IFCBOUNDEDSURFACE, IFCSURFACEOFREVOLUTION, IFCSURFACEOFLINEAREXTRUSION, IFCSWEPTSURFACE, IFCSURFACE, IFCFACETEDBREPWITHVOIDS, IFCFACETEDBREP, IFCMANIFOLDSOLIDBREP, IFCCSGSOLID, IFCSWEPTDISKSOLID, IFCSURFACECURVESWEPTAREASOLID, IFCREVOLVEDAREASOLID, IFCEXTRUDEDAREASOLID, IFCSWEPTAREASOLID, IFCSOLIDMODEL, IFCSHELLBASEDSURFACEMODEL, IFCSECTIONEDSPINE, IFCCARTESIANPOINT, IFCPOINTONSURFACE, IFCPOINTONCURVE, IFCPOINT, IFCPLANARBOX, IFCPLANAREXTENT, IFCAXIS2PLACEMENT3D, IFCAXIS2PLACEMENT2D, IFCAXIS1PLACEMENT, IFCPLACEMENT, IFCTWODIRECTIONREPEATFACTOR, IFCONEDIRECTIONREPEATFACTOR, IFCLIGHTSOURCESPOT, IFCLIGHTSOURCEPOSITIONAL, IFCLIGHTSOURCEGONIOMETRIC, IFCLIGHTSOURCEDIRECTIONAL, IFCLIGHTSOURCEAMBIENT, IFCLIGHTSOURCE, IFCBOXEDHALFSPACE, IFCPOLYGONALBOUNDEDHALFSPACE, IFCHALFSPACESOLID, IFCGEOMETRICCURVESET, IFCGEOMETRICSET], 3590301190: [IFCGEOMETRICCURVESET], 812098782: [IFCBOXEDHALFSPACE, IFCPOLYGONALBOUNDEDHALFSPACE], 1402838566: [IFCLIGHTSOURCESPOT, IFCLIGHTSOURCEPOSITIONAL, IFCLIGHTSOURCEGONIOMETRIC, IFCLIGHTSOURCEDIRECTIONAL, IFCLIGHTSOURCEAMBIENT], 1520743889: [IFCLIGHTSOURCESPOT], 1008929658: [IFCEDGELOOP, IFCVERTEXLOOP, IFCPOLYLOOP], 219451334: [IFCCONDITION, IFCASSET, IFCZONE, IFCSTRUCTURALANALYSISMODEL, IFCELECTRICALCIRCUIT, IFCSYSTEM, IFCSTRUCTURALRESULTGROUP, IFCSTRUCTURALLOADGROUP, IFCINVENTORY, IFCGROUP, IFCCONDITIONCRITERION, IFCACTIONREQUEST, IFCWORKSCHEDULE, IFCWORKPLAN, IFCWORKCONTROL, IFCTIMESERIESSCHEDULE, IFCSPACEPROGRAM, IFCSERVICELIFE, IFCSCHEDULETIMECONTROL, IFCPROJECTORDERRECORD, IFCPROJECTORDER, IFCPERMIT, IFCPERFORMANCEHISTORY, IFCFURNITURESTANDARD, IFCEQUIPMENTSTANDARD, IFCCOSTSCHEDULE, IFCCOSTITEM, IFCCONTROL, IFCOCCUPANT, IFCACTOR, IFCCONSTRUCTIONPRODUCTRESOURCE, IFCCONSTRUCTIONMATERIALRESOURCE, IFCCONSTRUCTIONEQUIPMENTRESOURCE, IFCSUBCONTRACTRESOURCE, IFCLABORRESOURCE, IFCCREWRESOURCE, IFCCONSTRUCTIONRESOURCE, IFCRESOURCE, IFCPROJECT, IFCDISTRIBUTIONPORT, IFCPORT, IFCGRID, IFCELECTRICALELEMENT, IFCDISTRIBUTIONCONTROLELEMENT, IFCDISTRIBUTIONCHAMBERELEMENT, IFCFLOWTREATMENTDEVICE, IFCFLOWTERMINAL, IFCFLOWSTORAGEDEVICE, IFCFLOWSEGMENT, IFCFLOWMOVINGDEVICE, IFCFLOWFITTING, IFCELECTRICDISTRIBUTIONPOINT, IFCFLOWCONTROLLER, IFCENERGYCONVERSIONDEVICE, IFCDISTRIBUTIONFLOWELEMENT, IFCDISTRIBUTIONELEMENT, IFCBEAM, IFCWINDOW, IFCWALLSTANDARDCASE, IFCWALL, IFCSTAIRFLIGHT, IFCSTAIR, IFCSLAB, IFCROOF, IFCRAMPFLIGHT, IFCRAMP, IFCRAILING, IFCPLATE, IFCPILE, IFCMEMBER, IFCFOOTING, IFCDOOR, IFCCURTAINWALL, IFCCOVERING, IFCCOLUMN, IFCBUILDINGELEMENTPROXY, IFCREINFORCINGBAR, IFCTENDONANCHOR, IFCTENDON, IFCREINFORCINGMESH, IFCREINFORCINGELEMENT, IFCBUILDINGELEMENTPART, IFCBUILDINGELEMENTCOMPONENT, IFCBUILDINGELEMENT, IFCVIRTUALELEMENT, IFCTRANSPORTELEMENT, IFCFURNISHINGELEMENT, IFCCHAMFEREDGEFEATURE, IFCROUNDEDEDGEFEATURE, IFCEDGEFEATURE, IFCOPENINGELEMENT, IFCFEATUREELEMENTSUBTRACTION, IFCPROJECTIONELEMENT, IFCFEATUREELEMENTADDITION, IFCFEATUREELEMENT, IFCEQUIPMENTELEMENT, IFCDISCRETEACCESSORY, IFCMECHANICALFASTENER, IFCFASTENER, IFCELEMENTCOMPONENT, IFCELEMENTASSEMBLY, IFCELEMENT, IFCANNOTATION, IFCSTRUCTURALSURFACECONNECTION, IFCSTRUCTURALPOINTCONNECTION, IFCSTRUCTURALCURVECONNECTION, IFCSTRUCTURALCONNECTION, IFCSTRUCTURALCURVEMEMBERVARYING, IFCSTRUCTURALCURVEMEMBER, IFCSTRUCTURALSURFACEMEMBERVARYING, IFCSTRUCTURALSURFACEMEMBER, IFCSTRUCTURALMEMBER, IFCSTRUCTURALITEM, IFCSTRUCTURALPOINTACTION, IFCSTRUCTURALPLANARACTIONVARYING, IFCSTRUCTURALPLANARACTION, IFCSTRUCTURALLINEARACTIONVARYING, IFCSTRUCTURALLINEARACTION, IFCSTRUCTURALACTION, IFCSTRUCTURALPOINTREACTION, IFCSTRUCTURALREACTION, IFCSTRUCTURALACTIVITY, IFCSPACE, IFCSITE, IFCBUILDINGSTOREY, IFCBUILDING, IFCSPATIALSTRUCTUREELEMENT, IFCPROXY, IFCPRODUCT, IFCPROCEDURE, IFCORDERACTION, IFCMOVE, IFCTASK, IFCPROCESS, IFCOBJECT, IFCVIBRATIONISOLATORTYPE, IFCDISCRETEACCESSORYTYPE, IFCMECHANICALFASTENERTYPE, IFCFASTENERTYPE, IFCELEMENTCOMPONENTTYPE, IFCCONTROLLERTYPE, IFCALARMTYPE, IFCACTUATORTYPE, IFCSENSORTYPE, IFCFLOWINSTRUMENTTYPE, IFCDISTRIBUTIONCONTROLELEMENTTYPE, IFCDISTRIBUTIONCHAMBERELEMENTTYPE, IFCFILTERTYPE, IFCDUCTSILENCERTYPE, IFCFLOWTREATMENTDEVICETYPE, IFCFIRESUPPRESSIONTERMINALTYPE, IFCELECTRICHEATERTYPE, IFCELECTRICAPPLIANCETYPE, IFCAIRTERMINALTYPE, IFCWASTETERMINALTYPE, IFCSTACKTERMINALTYPE, IFCSANITARYTERMINALTYPE, IFCOUTLETTYPE, IFCLIGHTFIXTURETYPE, IFCLAMPTYPE, IFCGASTERMINALTYPE, IFCFLOWTERMINALTYPE, IFCELECTRICFLOWSTORAGEDEVICETYPE, IFCTANKTYPE, IFCFLOWSTORAGEDEVICETYPE, IFCDUCTSEGMENTTYPE, IFCCABLESEGMENTTYPE, IFCCABLECARRIERSEGMENTTYPE, IFCPIPESEGMENTTYPE, IFCFLOWSEGMENTTYPE, IFCFANTYPE, IFCCOMPRESSORTYPE, IFCPUMPTYPE, IFCFLOWMOVINGDEVICETYPE, IFCDUCTFITTINGTYPE, IFCCABLECARRIERFITTINGTYPE, IFCPIPEFITTINGTYPE, IFCJUNCTIONBOXTYPE, IFCFLOWFITTINGTYPE, IFCELECTRICTIMECONTROLTYPE, IFCDAMPERTYPE, IFCAIRTERMINALBOXTYPE, IFCVALVETYPE, IFCSWITCHINGDEVICETYPE, IFCPROTECTIVEDEVICETYPE, IFCFLOWMETERTYPE, IFCFLOWCONTROLLERTYPE, IFCELECTRICMOTORTYPE, IFCELECTRICGENERATORTYPE, IFCCOOLINGTOWERTYPE, IFCCOOLEDBEAMTYPE, IFCCONDENSERTYPE, IFCCOILTYPE, IFCCHILLERTYPE, IFCBOILERTYPE, IFCAIRTOAIRHEATRECOVERYTYPE, IFCUNITARYEQUIPMENTTYPE, IFCTUBEBUNDLETYPE, IFCTRANSFORMERTYPE, IFCSPACEHEATERTYPE, IFCMOTORCONNECTIONTYPE, IFCHUMIDIFIERTYPE, IFCHEATEXCHANGERTYPE, IFCEVAPORATORTYPE, IFCEVAPORATIVECOOLERTYPE, IFCENERGYCONVERSIONDEVICETYPE, IFCDISTRIBUTIONFLOWELEMENTTYPE, IFCDISTRIBUTIONELEMENTTYPE, IFCBUILDINGELEMENTPROXYTYPE, IFCBEAMTYPE, IFCWALLTYPE, IFCSTAIRFLIGHTTYPE, IFCSLABTYPE, IFCRAMPFLIGHTTYPE, IFCRAILINGTYPE, IFCPLATETYPE, IFCMEMBERTYPE, IFCCURTAINWALLTYPE, IFCCOVERINGTYPE, IFCCOLUMNTYPE, IFCBUILDINGELEMENTTYPE, IFCTRANSPORTELEMENTTYPE, IFCSPACETYPE, IFCSPATIALSTRUCTUREELEMENTTYPE, IFCSYSTEMFURNITUREELEMENTTYPE, IFCFURNITURETYPE, IFCFURNISHINGELEMENTTYPE, IFCELEMENTTYPE, IFCDOORSTYLE, IFCWINDOWSTYLE, IFCTYPEPRODUCT, IFCTYPEOBJECT], 2833995503: [IFCTWODIRECTIONREPEATFACTOR], 2529465313: [IFCLSHAPEPROFILEDEF, IFCASYMMETRICISHAPEPROFILEDEF, IFCISHAPEPROFILEDEF, IFCELLIPSEPROFILEDEF, IFCCRANERAILFSHAPEPROFILEDEF, IFCCRANERAILASHAPEPROFILEDEF, IFCCIRCLEHOLLOWPROFILEDEF, IFCCIRCLEPROFILEDEF, IFCCSHAPEPROFILEDEF, IFCZSHAPEPROFILEDEF, IFCUSHAPEPROFILEDEF, IFCTRAPEZIUMPROFILEDEF, IFCTSHAPEPROFILEDEF, IFCRECTANGLEHOLLOWPROFILEDEF, IFCROUNDEDRECTANGLEPROFILEDEF, IFCRECTANGLEPROFILEDEF], 2004835150: [IFCAXIS2PLACEMENT3D, IFCAXIS2PLACEMENT2D, IFCAXIS1PLACEMENT], 1663979128: [IFCPLANARBOX], 2067069095: [IFCCARTESIANPOINT, IFCPOINTONSURFACE, IFCPOINTONCURVE], 759155922: [IFCDRAUGHTINGPREDEFINEDCOLOUR], 2559016684: [IFCDRAUGHTINGPREDEFINEDCURVEFONT], 1680319473: [IFCPROPERTYSET, IFCPERMEABLECOVERINGPROPERTIES, IFCFLUIDFLOWPROPERTIES, IFCELECTRICALBASEPROPERTIES, IFCENERGYPROPERTIES, IFCELEMENTQUANTITY, IFCDOORPANELPROPERTIES, IFCDOORLININGPROPERTIES, IFCWINDOWPANELPROPERTIES, IFCWINDOWLININGPROPERTIES, IFCSPACETHERMALLOADPROPERTIES, IFCSOUNDVALUE, IFCSOUNDPROPERTIES, IFCSERVICELIFEFACTOR, IFCREINFORCEMENTDEFINITIONPROPERTIES, IFCPROPERTYSETDEFINITION], 3357820518: [IFCPROPERTYSET, IFCPERMEABLECOVERINGPROPERTIES, IFCFLUIDFLOWPROPERTIES, IFCELECTRICALBASEPROPERTIES, IFCENERGYPROPERTIES, IFCELEMENTQUANTITY, IFCDOORPANELPROPERTIES, IFCDOORLININGPROPERTIES, IFCWINDOWPANELPROPERTIES, IFCWINDOWLININGPROPERTIES, IFCSPACETHERMALLOADPROPERTIES, IFCSOUNDVALUE, IFCSOUNDPROPERTIES, IFCSERVICELIFEFACTOR, IFCREINFORCEMENTDEFINITIONPROPERTIES], 3615266464: [IFCRECTANGLEHOLLOWPROFILEDEF, IFCROUNDEDRECTANGLEPROFILEDEF], 478536968: [IFCRELDEFINESBYTYPE, IFCRELOVERRIDESPROPERTIES, IFCRELDEFINESBYPROPERTIES, IFCRELDEFINES, IFCRELAGGREGATES, IFCRELNESTS, IFCRELDECOMPOSES, IFCRELVOIDSELEMENT, IFCRELSPACEBOUNDARY, IFCRELSERVICESBUILDINGS, IFCRELSEQUENCE, IFCRELREFERENCEDINSPATIALSTRUCTURE, IFCRELPROJECTSELEMENT, IFCRELINTERACTIONREQUIREMENTS, IFCRELFLOWCONTROLELEMENTS, IFCRELFILLSELEMENT, IFCRELCOVERSSPACES, IFCRELCOVERSBLDGELEMENTS, IFCRELCONTAINEDINSPATIALSTRUCTURE, IFCRELCONNECTSWITHECCENTRICITY, IFCRELCONNECTSSTRUCTURALMEMBER, IFCRELCONNECTSSTRUCTURALELEMENT, IFCRELCONNECTSSTRUCTURALACTIVITY, IFCRELCONNECTSPORTS, IFCRELCONNECTSPORTTOELEMENT, IFCRELCONNECTSWITHREALIZINGELEMENTS, IFCRELCONNECTSPATHELEMENTS, IFCRELCONNECTSELEMENTS, IFCRELCONNECTS, IFCRELASSOCIATESPROFILEPROPERTIES, IFCRELASSOCIATESMATERIAL, IFCRELASSOCIATESLIBRARY, IFCRELASSOCIATESDOCUMENT, IFCRELASSOCIATESCONSTRAINT, IFCRELASSOCIATESCLASSIFICATION, IFCRELASSOCIATESAPPROVAL, IFCRELASSOCIATESAPPLIEDVALUE, IFCRELASSOCIATES, IFCRELASSIGNSTORESOURCE, IFCRELASSIGNSTOPRODUCT, IFCRELASSIGNSTOPROCESS, IFCRELASSIGNSTOGROUP, IFCRELASSIGNSTASKS, IFCRELSCHEDULESCOSTITEMS, IFCRELASSIGNSTOPROJECTORDER, IFCRELASSIGNSTOCONTROL, IFCRELOCCUPIESSPACES, IFCRELASSIGNSTOACTOR, IFCRELASSIGNS], 723233188: [IFCFACETEDBREPWITHVOIDS, IFCFACETEDBREP, IFCMANIFOLDSOLIDBREP, IFCCSGSOLID, IFCSWEPTDISKSOLID, IFCSURFACECURVESWEPTAREASOLID, IFCREVOLVEDAREASOLID, IFCEXTRUDEDAREASOLID, IFCSWEPTAREASOLID], 2473145415: [IFCSTRUCTURALLOADSINGLEDISPLACEMENTDISTORTION], 1597423693: [IFCSTRUCTURALLOADSINGLEFORCEWARPING], 3843319758: [IFCSTRUCTURALSTEELPROFILEPROPERTIES], 2513912981: [IFCPLANE, IFCELEMENTARYSURFACE, IFCRECTANGULARTRIMMEDSURFACE, IFCCURVEBOUNDEDPLANE, IFCBOUNDEDSURFACE, IFCSURFACEOFREVOLUTION, IFCSURFACEOFLINEAREXTRUSION, IFCSWEPTSURFACE], 2247615214: [IFCSURFACECURVESWEPTAREASOLID, IFCREVOLVEDAREASOLID, IFCEXTRUDEDAREASOLID], 230924584: [IFCSURFACEOFREVOLUTION, IFCSURFACEOFLINEAREXTRUSION], 3028897424: [IFCDIMENSIONCURVETERMINATOR], 4282788508: [IFCTEXTLITERALWITHEXTENT], 1628702193: [IFCVIBRATIONISOLATORTYPE, IFCDISCRETEACCESSORYTYPE, IFCMECHANICALFASTENERTYPE, IFCFASTENERTYPE, IFCELEMENTCOMPONENTTYPE, IFCCONTROLLERTYPE, IFCALARMTYPE, IFCACTUATORTYPE, IFCSENSORTYPE, IFCFLOWINSTRUMENTTYPE, IFCDISTRIBUTIONCONTROLELEMENTTYPE, IFCDISTRIBUTIONCHAMBERELEMENTTYPE, IFCFILTERTYPE, IFCDUCTSILENCERTYPE, IFCFLOWTREATMENTDEVICETYPE, IFCFIRESUPPRESSIONTERMINALTYPE, IFCELECTRICHEATERTYPE, IFCELECTRICAPPLIANCETYPE, IFCAIRTERMINALTYPE, IFCWASTETERMINALTYPE, IFCSTACKTERMINALTYPE, IFCSANITARYTERMINALTYPE, IFCOUTLETTYPE, IFCLIGHTFIXTURETYPE, IFCLAMPTYPE, IFCGASTERMINALTYPE, IFCFLOWTERMINALTYPE, IFCELECTRICFLOWSTORAGEDEVICETYPE, IFCTANKTYPE, IFCFLOWSTORAGEDEVICETYPE, IFCDUCTSEGMENTTYPE, IFCCABLESEGMENTTYPE, IFCCABLECARRIERSEGMENTTYPE, IFCPIPESEGMENTTYPE, IFCFLOWSEGMENTTYPE, IFCFANTYPE, IFCCOMPRESSORTYPE, IFCPUMPTYPE, IFCFLOWMOVINGDEVICETYPE, IFCDUCTFITTINGTYPE, IFCCABLECARRIERFITTINGTYPE, IFCPIPEFITTINGTYPE, IFCJUNCTIONBOXTYPE, IFCFLOWFITTINGTYPE, IFCELECTRICTIMECONTROLTYPE, IFCDAMPERTYPE, IFCAIRTERMINALBOXTYPE, IFCVALVETYPE, IFCSWITCHINGDEVICETYPE, IFCPROTECTIVEDEVICETYPE, IFCFLOWMETERTYPE, IFCFLOWCONTROLLERTYPE, IFCELECTRICMOTORTYPE, IFCELECTRICGENERATORTYPE, IFCCOOLINGTOWERTYPE, IFCCOOLEDBEAMTYPE, IFCCONDENSERTYPE, IFCCOILTYPE, IFCCHILLERTYPE, IFCBOILERTYPE, IFCAIRTOAIRHEATRECOVERYTYPE, IFCUNITARYEQUIPMENTTYPE, IFCTUBEBUNDLETYPE, IFCTRANSFORMERTYPE, IFCSPACEHEATERTYPE, IFCMOTORCONNECTIONTYPE, IFCHUMIDIFIERTYPE, IFCHEATEXCHANGERTYPE, IFCEVAPORATORTYPE, IFCEVAPORATIVECOOLERTYPE, IFCENERGYCONVERSIONDEVICETYPE, IFCDISTRIBUTIONFLOWELEMENTTYPE, IFCDISTRIBUTIONELEMENTTYPE, IFCBUILDINGELEMENTPROXYTYPE, IFCBEAMTYPE, IFCWALLTYPE, IFCSTAIRFLIGHTTYPE, IFCSLABTYPE, IFCRAMPFLIGHTTYPE, IFCRAILINGTYPE, IFCPLATETYPE, IFCMEMBERTYPE, IFCCURTAINWALLTYPE, IFCCOVERINGTYPE, IFCCOLUMNTYPE, IFCBUILDINGELEMENTTYPE, IFCTRANSPORTELEMENTTYPE, IFCSPACETYPE, IFCSPATIALSTRUCTUREELEMENTTYPE, IFCSYSTEMFURNITUREELEMENTTYPE, IFCFURNITURETYPE, IFCFURNISHINGELEMENTTYPE, IFCELEMENTTYPE, IFCDOORSTYLE, IFCWINDOWSTYLE, IFCTYPEPRODUCT], 2347495698: [IFCVIBRATIONISOLATORTYPE, IFCDISCRETEACCESSORYTYPE, IFCMECHANICALFASTENERTYPE, IFCFASTENERTYPE, IFCELEMENTCOMPONENTTYPE, IFCCONTROLLERTYPE, IFCALARMTYPE, IFCACTUATORTYPE, IFCSENSORTYPE, IFCFLOWINSTRUMENTTYPE, IFCDISTRIBUTIONCONTROLELEMENTTYPE, IFCDISTRIBUTIONCHAMBERELEMENTTYPE, IFCFILTERTYPE, IFCDUCTSILENCERTYPE, IFCFLOWTREATMENTDEVICETYPE, IFCFIRESUPPRESSIONTERMINALTYPE, IFCELECTRICHEATERTYPE, IFCELECTRICAPPLIANCETYPE, IFCAIRTERMINALTYPE, IFCWASTETERMINALTYPE, IFCSTACKTERMINALTYPE, IFCSANITARYTERMINALTYPE, IFCOUTLETTYPE, IFCLIGHTFIXTURETYPE, IFCLAMPTYPE, IFCGASTERMINALTYPE, IFCFLOWTERMINALTYPE, IFCELECTRICFLOWSTORAGEDEVICETYPE, IFCTANKTYPE, IFCFLOWSTORAGEDEVICETYPE, IFCDUCTSEGMENTTYPE, IFCCABLESEGMENTTYPE, IFCCABLECARRIERSEGMENTTYPE, IFCPIPESEGMENTTYPE, IFCFLOWSEGMENTTYPE, IFCFANTYPE, IFCCOMPRESSORTYPE, IFCPUMPTYPE, IFCFLOWMOVINGDEVICETYPE, IFCDUCTFITTINGTYPE, IFCCABLECARRIERFITTINGTYPE, IFCPIPEFITTINGTYPE, IFCJUNCTIONBOXTYPE, IFCFLOWFITTINGTYPE, IFCELECTRICTIMECONTROLTYPE, IFCDAMPERTYPE, IFCAIRTERMINALBOXTYPE, IFCVALVETYPE, IFCSWITCHINGDEVICETYPE, IFCPROTECTIVEDEVICETYPE, IFCFLOWMETERTYPE, IFCFLOWCONTROLLERTYPE, IFCELECTRICMOTORTYPE, IFCELECTRICGENERATORTYPE, IFCCOOLINGTOWERTYPE, IFCCOOLEDBEAMTYPE, IFCCONDENSERTYPE, IFCCOILTYPE, IFCCHILLERTYPE, IFCBOILERTYPE, IFCAIRTOAIRHEATRECOVERYTYPE, IFCUNITARYEQUIPMENTTYPE, IFCTUBEBUNDLETYPE, IFCTRANSFORMERTYPE, IFCSPACEHEATERTYPE, IFCMOTORCONNECTIONTYPE, IFCHUMIDIFIERTYPE, IFCHEATEXCHANGERTYPE, IFCEVAPORATORTYPE, IFCEVAPORATIVECOOLERTYPE, IFCENERGYCONVERSIONDEVICETYPE, IFCDISTRIBUTIONFLOWELEMENTTYPE, IFCDISTRIBUTIONELEMENTTYPE, IFCBUILDINGELEMENTPROXYTYPE, IFCBEAMTYPE, IFCWALLTYPE, IFCSTAIRFLIGHTTYPE, IFCSLABTYPE, IFCRAMPFLIGHTTYPE, IFCRAILINGTYPE, IFCPLATETYPE, IFCMEMBERTYPE, IFCCURTAINWALLTYPE, IFCCOVERINGTYPE, IFCCOLUMNTYPE, IFCBUILDINGELEMENTTYPE, IFCTRANSPORTELEMENTTYPE, IFCSPACETYPE, IFCSPATIALSTRUCTUREELEMENTTYPE, IFCSYSTEMFURNITUREELEMENTTYPE, IFCFURNITURETYPE, IFCFURNISHINGELEMENTTYPE, IFCELEMENTTYPE, IFCDOORSTYLE, IFCWINDOWSTYLE], 3288037868: [IFCPROJECTIONCURVE, IFCDIMENSIONCURVE], 2736907675: [IFCBOOLEANCLIPPINGRESULT], 4182860854: [IFCRECTANGULARTRIMMEDSURFACE, IFCCURVEBOUNDEDPLANE], 59481748: [IFCCARTESIANTRANSFORMATIONOPERATOR3DNONUNIFORM, IFCCARTESIANTRANSFORMATIONOPERATOR3D, IFCCARTESIANTRANSFORMATIONOPERATOR2DNONUNIFORM, IFCCARTESIANTRANSFORMATIONOPERATOR2D], 3749851601: [IFCCARTESIANTRANSFORMATIONOPERATOR2DNONUNIFORM], 3331915920: [IFCCARTESIANTRANSFORMATIONOPERATOR3DNONUNIFORM], 1383045692: [IFCCIRCLEHOLLOWPROFILEDEF], 2506170314: [IFCBLOCK, IFCSPHERE, IFCRIGHTCIRCULARCYLINDER, IFCRIGHTCIRCULARCONE, IFCRECTANGULARPYRAMID], 2601014836: [IFCCIRCLE, IFCELLIPSE, IFCCONIC, IFCRATIONALBEZIERCURVE, IFCBEZIERCURVE, IFCBSPLINECURVE, IFCTRIMMEDCURVE, IFCPOLYLINE, IFC2DCOMPOSITECURVE, IFCCOMPOSITECURVE, IFCBOUNDEDCURVE, IFCOFFSETCURVE3D, IFCOFFSETCURVE2D, IFCLINE], 3073041342: [IFCDIAMETERDIMENSION, IFCANGULARDIMENSION, IFCRADIUSDIMENSION, IFCLINEARDIMENSION, IFCDIMENSIONCURVEDIRECTEDCALLOUT, IFCSTRUCTUREDDIMENSIONCALLOUT], 339256511: [IFCVIBRATIONISOLATORTYPE, IFCDISCRETEACCESSORYTYPE, IFCMECHANICALFASTENERTYPE, IFCFASTENERTYPE, IFCELEMENTCOMPONENTTYPE, IFCCONTROLLERTYPE, IFCALARMTYPE, IFCACTUATORTYPE, IFCSENSORTYPE, IFCFLOWINSTRUMENTTYPE, IFCDISTRIBUTIONCONTROLELEMENTTYPE, IFCDISTRIBUTIONCHAMBERELEMENTTYPE, IFCFILTERTYPE, IFCDUCTSILENCERTYPE, IFCFLOWTREATMENTDEVICETYPE, IFCFIRESUPPRESSIONTERMINALTYPE, IFCELECTRICHEATERTYPE, IFCELECTRICAPPLIANCETYPE, IFCAIRTERMINALTYPE, IFCWASTETERMINALTYPE, IFCSTACKTERMINALTYPE, IFCSANITARYTERMINALTYPE, IFCOUTLETTYPE, IFCLIGHTFIXTURETYPE, IFCLAMPTYPE, IFCGASTERMINALTYPE, IFCFLOWTERMINALTYPE, IFCELECTRICFLOWSTORAGEDEVICETYPE, IFCTANKTYPE, IFCFLOWSTORAGEDEVICETYPE, IFCDUCTSEGMENTTYPE, IFCCABLESEGMENTTYPE, IFCCABLECARRIERSEGMENTTYPE, IFCPIPESEGMENTTYPE, IFCFLOWSEGMENTTYPE, IFCFANTYPE, IFCCOMPRESSORTYPE, IFCPUMPTYPE, IFCFLOWMOVINGDEVICETYPE, IFCDUCTFITTINGTYPE, IFCCABLECARRIERFITTINGTYPE, IFCPIPEFITTINGTYPE, IFCJUNCTIONBOXTYPE, IFCFLOWFITTINGTYPE, IFCELECTRICTIMECONTROLTYPE, IFCDAMPERTYPE, IFCAIRTERMINALBOXTYPE, IFCVALVETYPE, IFCSWITCHINGDEVICETYPE, IFCPROTECTIVEDEVICETYPE, IFCFLOWMETERTYPE, IFCFLOWCONTROLLERTYPE, IFCELECTRICMOTORTYPE, IFCELECTRICGENERATORTYPE, IFCCOOLINGTOWERTYPE, IFCCOOLEDBEAMTYPE, IFCCONDENSERTYPE, IFCCOILTYPE, IFCCHILLERTYPE, IFCBOILERTYPE, IFCAIRTOAIRHEATRECOVERYTYPE, IFCUNITARYEQUIPMENTTYPE, IFCTUBEBUNDLETYPE, IFCTRANSFORMERTYPE, IFCSPACEHEATERTYPE, IFCMOTORCONNECTIONTYPE, IFCHUMIDIFIERTYPE, IFCHEATEXCHANGERTYPE, IFCEVAPORATORTYPE, IFCEVAPORATIVECOOLERTYPE, IFCENERGYCONVERSIONDEVICETYPE, IFCDISTRIBUTIONFLOWELEMENTTYPE, IFCDISTRIBUTIONELEMENTTYPE, IFCBUILDINGELEMENTPROXYTYPE, IFCBEAMTYPE, IFCWALLTYPE, IFCSTAIRFLIGHTTYPE, IFCSLABTYPE, IFCRAMPFLIGHTTYPE, IFCRAILINGTYPE, IFCPLATETYPE, IFCMEMBERTYPE, IFCCURTAINWALLTYPE, IFCCOVERINGTYPE, IFCCOLUMNTYPE, IFCBUILDINGELEMENTTYPE, IFCTRANSPORTELEMENTTYPE, IFCSPACETYPE, IFCSPATIALSTRUCTUREELEMENTTYPE, IFCSYSTEMFURNITUREELEMENTTYPE, IFCFURNITURETYPE, IFCFURNISHINGELEMENTTYPE], 2777663545: [IFCPLANE], 80994333: [IFCELECTRICALBASEPROPERTIES], 4238390223: [IFCSYSTEMFURNITUREELEMENTTYPE, IFCFURNITURETYPE], 1484403080: [IFCASYMMETRICISHAPEPROFILEDEF], 1425443689: [IFCFACETEDBREPWITHVOIDS, IFCFACETEDBREP], 3888040117: [IFCCONDITION, IFCASSET, IFCZONE, IFCSTRUCTURALANALYSISMODEL, IFCELECTRICALCIRCUIT, IFCSYSTEM, IFCSTRUCTURALRESULTGROUP, IFCSTRUCTURALLOADGROUP, IFCINVENTORY, IFCGROUP, IFCCONDITIONCRITERION, IFCACTIONREQUEST, IFCWORKSCHEDULE, IFCWORKPLAN, IFCWORKCONTROL, IFCTIMESERIESSCHEDULE, IFCSPACEPROGRAM, IFCSERVICELIFE, IFCSCHEDULETIMECONTROL, IFCPROJECTORDERRECORD, IFCPROJECTORDER, IFCPERMIT, IFCPERFORMANCEHISTORY, IFCFURNITURESTANDARD, IFCEQUIPMENTSTANDARD, IFCCOSTSCHEDULE, IFCCOSTITEM, IFCCONTROL, IFCOCCUPANT, IFCACTOR, IFCCONSTRUCTIONPRODUCTRESOURCE, IFCCONSTRUCTIONMATERIALRESOURCE, IFCCONSTRUCTIONEQUIPMENTRESOURCE, IFCSUBCONTRACTRESOURCE, IFCLABORRESOURCE, IFCCREWRESOURCE, IFCCONSTRUCTIONRESOURCE, IFCRESOURCE, IFCPROJECT, IFCDISTRIBUTIONPORT, IFCPORT, IFCGRID, IFCELECTRICALELEMENT, IFCDISTRIBUTIONCONTROLELEMENT, IFCDISTRIBUTIONCHAMBERELEMENT, IFCFLOWTREATMENTDEVICE, IFCFLOWTERMINAL, IFCFLOWSTORAGEDEVICE, IFCFLOWSEGMENT, IFCFLOWMOVINGDEVICE, IFCFLOWFITTING, IFCELECTRICDISTRIBUTIONPOINT, IFCFLOWCONTROLLER, IFCENERGYCONVERSIONDEVICE, IFCDISTRIBUTIONFLOWELEMENT, IFCDISTRIBUTIONELEMENT, IFCBEAM, IFCWINDOW, IFCWALLSTANDARDCASE, IFCWALL, IFCSTAIRFLIGHT, IFCSTAIR, IFCSLAB, IFCROOF, IFCRAMPFLIGHT, IFCRAMP, IFCRAILING, IFCPLATE, IFCPILE, IFCMEMBER, IFCFOOTING, IFCDOOR, IFCCURTAINWALL, IFCCOVERING, IFCCOLUMN, IFCBUILDINGELEMENTPROXY, IFCREINFORCINGBAR, IFCTENDONANCHOR, IFCTENDON, IFCREINFORCINGMESH, IFCREINFORCINGELEMENT, IFCBUILDINGELEMENTPART, IFCBUILDINGELEMENTCOMPONENT, IFCBUILDINGELEMENT, IFCVIRTUALELEMENT, IFCTRANSPORTELEMENT, IFCFURNISHINGELEMENT, IFCCHAMFEREDGEFEATURE, IFCROUNDEDEDGEFEATURE, IFCEDGEFEATURE, IFCOPENINGELEMENT, IFCFEATUREELEMENTSUBTRACTION, IFCPROJECTIONELEMENT, IFCFEATUREELEMENTADDITION, IFCFEATUREELEMENT, IFCEQUIPMENTELEMENT, IFCDISCRETEACCESSORY, IFCMECHANICALFASTENER, IFCFASTENER, IFCELEMENTCOMPONENT, IFCELEMENTASSEMBLY, IFCELEMENT, IFCANNOTATION, IFCSTRUCTURALSURFACECONNECTION, IFCSTRUCTURALPOINTCONNECTION, IFCSTRUCTURALCURVECONNECTION, IFCSTRUCTURALCONNECTION, IFCSTRUCTURALCURVEMEMBERVARYING, IFCSTRUCTURALCURVEMEMBER, IFCSTRUCTURALSURFACEMEMBERVARYING, IFCSTRUCTURALSURFACEMEMBER, IFCSTRUCTURALMEMBER, IFCSTRUCTURALITEM, IFCSTRUCTURALPOINTACTION, IFCSTRUCTURALPLANARACTIONVARYING, IFCSTRUCTURALPLANARACTION, IFCSTRUCTURALLINEARACTIONVARYING, IFCSTRUCTURALLINEARACTION, IFCSTRUCTURALACTION, IFCSTRUCTURALPOINTREACTION, IFCSTRUCTURALREACTION, IFCSTRUCTURALACTIVITY, IFCSPACE, IFCSITE, IFCBUILDINGSTOREY, IFCBUILDING, IFCSPATIALSTRUCTUREELEMENT, IFCPROXY, IFCPRODUCT, IFCPROCEDURE, IFCORDERACTION, IFCMOVE, IFCTASK, IFCPROCESS], 2945172077: [IFCPROCEDURE, IFCORDERACTION, IFCMOVE, IFCTASK], 4208778838: [IFCDISTRIBUTIONPORT, IFCPORT, IFCGRID, IFCELECTRICALELEMENT, IFCDISTRIBUTIONCONTROLELEMENT, IFCDISTRIBUTIONCHAMBERELEMENT, IFCFLOWTREATMENTDEVICE, IFCFLOWTERMINAL, IFCFLOWSTORAGEDEVICE, IFCFLOWSEGMENT, IFCFLOWMOVINGDEVICE, IFCFLOWFITTING, IFCELECTRICDISTRIBUTIONPOINT, IFCFLOWCONTROLLER, IFCENERGYCONVERSIONDEVICE, IFCDISTRIBUTIONFLOWELEMENT, IFCDISTRIBUTIONELEMENT, IFCBEAM, IFCWINDOW, IFCWALLSTANDARDCASE, IFCWALL, IFCSTAIRFLIGHT, IFCSTAIR, IFCSLAB, IFCROOF, IFCRAMPFLIGHT, IFCRAMP, IFCRAILING, IFCPLATE, IFCPILE, IFCMEMBER, IFCFOOTING, IFCDOOR, IFCCURTAINWALL, IFCCOVERING, IFCCOLUMN, IFCBUILDINGELEMENTPROXY, IFCREINFORCINGBAR, IFCTENDONANCHOR, IFCTENDON, IFCREINFORCINGMESH, IFCREINFORCINGELEMENT, IFCBUILDINGELEMENTPART, IFCBUILDINGELEMENTCOMPONENT, IFCBUILDINGELEMENT, IFCVIRTUALELEMENT, IFCTRANSPORTELEMENT, IFCFURNISHINGELEMENT, IFCCHAMFEREDGEFEATURE, IFCROUNDEDEDGEFEATURE, IFCEDGEFEATURE, IFCOPENINGELEMENT, IFCFEATUREELEMENTSUBTRACTION, IFCPROJECTIONELEMENT, IFCFEATUREELEMENTADDITION, IFCFEATUREELEMENT, IFCEQUIPMENTELEMENT, IFCDISCRETEACCESSORY, IFCMECHANICALFASTENER, IFCFASTENER, IFCELEMENTCOMPONENT, IFCELEMENTASSEMBLY, IFCELEMENT, IFCANNOTATION, IFCSTRUCTURALSURFACECONNECTION, IFCSTRUCTURALPOINTCONNECTION, IFCSTRUCTURALCURVECONNECTION, IFCSTRUCTURALCONNECTION, IFCSTRUCTURALCURVEMEMBERVARYING, IFCSTRUCTURALCURVEMEMBER, IFCSTRUCTURALSURFACEMEMBERVARYING, IFCSTRUCTURALSURFACEMEMBER, IFCSTRUCTURALMEMBER, IFCSTRUCTURALITEM, IFCSTRUCTURALPOINTACTION, IFCSTRUCTURALPLANARACTIONVARYING, IFCSTRUCTURALPLANARACTION, IFCSTRUCTURALLINEARACTIONVARYING, IFCSTRUCTURALLINEARACTION, IFCSTRUCTURALACTION, IFCSTRUCTURALPOINTREACTION, IFCSTRUCTURALREACTION, IFCSTRUCTURALACTIVITY, IFCSPACE, IFCSITE, IFCBUILDINGSTOREY, IFCBUILDING, IFCSPATIALSTRUCTUREELEMENT, IFCPROXY], 3939117080: [IFCRELASSIGNSTORESOURCE, IFCRELASSIGNSTOPRODUCT, IFCRELASSIGNSTOPROCESS, IFCRELASSIGNSTOGROUP, IFCRELASSIGNSTASKS, IFCRELSCHEDULESCOSTITEMS, IFCRELASSIGNSTOPROJECTORDER, IFCRELASSIGNSTOCONTROL, IFCRELOCCUPIESSPACES, IFCRELASSIGNSTOACTOR], 1683148259: [IFCRELOCCUPIESSPACES], 2495723537: [IFCRELASSIGNSTASKS, IFCRELSCHEDULESCOSTITEMS, IFCRELASSIGNSTOPROJECTORDER], 1865459582: [IFCRELASSOCIATESPROFILEPROPERTIES, IFCRELASSOCIATESMATERIAL, IFCRELASSOCIATESLIBRARY, IFCRELASSOCIATESDOCUMENT, IFCRELASSOCIATESCONSTRAINT, IFCRELASSOCIATESCLASSIFICATION, IFCRELASSOCIATESAPPROVAL, IFCRELASSOCIATESAPPLIEDVALUE], 826625072: [IFCRELVOIDSELEMENT, IFCRELSPACEBOUNDARY, IFCRELSERVICESBUILDINGS, IFCRELSEQUENCE, IFCRELREFERENCEDINSPATIALSTRUCTURE, IFCRELPROJECTSELEMENT, IFCRELINTERACTIONREQUIREMENTS, IFCRELFLOWCONTROLELEMENTS, IFCRELFILLSELEMENT, IFCRELCOVERSSPACES, IFCRELCOVERSBLDGELEMENTS, IFCRELCONTAINEDINSPATIALSTRUCTURE, IFCRELCONNECTSWITHECCENTRICITY, IFCRELCONNECTSSTRUCTURALMEMBER, IFCRELCONNECTSSTRUCTURALELEMENT, IFCRELCONNECTSSTRUCTURALACTIVITY, IFCRELCONNECTSPORTS, IFCRELCONNECTSPORTTOELEMENT, IFCRELCONNECTSWITHREALIZINGELEMENTS, IFCRELCONNECTSPATHELEMENTS, IFCRELCONNECTSELEMENTS], 1204542856: [IFCRELCONNECTSWITHREALIZINGELEMENTS, IFCRELCONNECTSPATHELEMENTS], 1638771189: [IFCRELCONNECTSWITHECCENTRICITY], 2551354335: [IFCRELAGGREGATES, IFCRELNESTS], 693640335: [IFCRELDEFINESBYTYPE, IFCRELOVERRIDESPROPERTIES, IFCRELDEFINESBYPROPERTIES], 4186316022: [IFCRELOVERRIDESPROPERTIES], 2914609552: [IFCCONSTRUCTIONPRODUCTRESOURCE, IFCCONSTRUCTIONMATERIALRESOURCE, IFCCONSTRUCTIONEQUIPMENTRESOURCE, IFCSUBCONTRACTRESOURCE, IFCLABORRESOURCE, IFCCREWRESOURCE, IFCCONSTRUCTIONRESOURCE], 2706606064: [IFCSPACE, IFCSITE, IFCBUILDINGSTOREY, IFCBUILDING], 3893378262: [IFCSPACETYPE], 3544373492: [IFCSTRUCTURALPOINTACTION, IFCSTRUCTURALPLANARACTIONVARYING, IFCSTRUCTURALPLANARACTION, IFCSTRUCTURALLINEARACTIONVARYING, IFCSTRUCTURALLINEARACTION, IFCSTRUCTURALACTION, IFCSTRUCTURALPOINTREACTION, IFCSTRUCTURALREACTION], 3136571912: [IFCSTRUCTURALSURFACECONNECTION, IFCSTRUCTURALPOINTCONNECTION, IFCSTRUCTURALCURVECONNECTION, IFCSTRUCTURALCONNECTION, IFCSTRUCTURALCURVEMEMBERVARYING, IFCSTRUCTURALCURVEMEMBER, IFCSTRUCTURALSURFACEMEMBERVARYING, IFCSTRUCTURALSURFACEMEMBER, IFCSTRUCTURALMEMBER], 530289379: [IFCSTRUCTURALCURVEMEMBERVARYING, IFCSTRUCTURALCURVEMEMBER, IFCSTRUCTURALSURFACEMEMBERVARYING, IFCSTRUCTURALSURFACEMEMBER], 3689010777: [IFCSTRUCTURALPOINTREACTION], 3979015343: [IFCSTRUCTURALSURFACEMEMBERVARYING], 3473067441: [IFCORDERACTION, IFCMOVE], 2296667514: [IFCOCCUPANT], 1260505505: [IFCRATIONALBEZIERCURVE, IFCBEZIERCURVE, IFCBSPLINECURVE, IFCTRIMMEDCURVE, IFCPOLYLINE, IFC2DCOMPOSITECURVE, IFCCOMPOSITECURVE], 1950629157: [IFCBUILDINGELEMENTPROXYTYPE, IFCBEAMTYPE, IFCWALLTYPE, IFCSTAIRFLIGHTTYPE, IFCSLABTYPE, IFCRAMPFLIGHTTYPE, IFCRAILINGTYPE, IFCPLATETYPE, IFCMEMBERTYPE, IFCCURTAINWALLTYPE, IFCCOVERINGTYPE, IFCCOLUMNTYPE], 3732776249: [IFC2DCOMPOSITECURVE], 2510884976: [IFCCIRCLE, IFCELLIPSE], 2559216714: [IFCCONSTRUCTIONPRODUCTRESOURCE, IFCCONSTRUCTIONMATERIALRESOURCE, IFCCONSTRUCTIONEQUIPMENTRESOURCE, IFCSUBCONTRACTRESOURCE, IFCLABORRESOURCE, IFCCREWRESOURCE], 3293443760: [IFCCONDITIONCRITERION, IFCACTIONREQUEST, IFCWORKSCHEDULE, IFCWORKPLAN, IFCWORKCONTROL, IFCTIMESERIESSCHEDULE, IFCSPACEPROGRAM, IFCSERVICELIFE, IFCSCHEDULETIMECONTROL, IFCPROJECTORDERRECORD, IFCPROJECTORDER, IFCPERMIT, IFCPERFORMANCEHISTORY, IFCFURNITURESTANDARD, IFCEQUIPMENTSTANDARD, IFCCOSTSCHEDULE, IFCCOSTITEM], 681481545: [IFCDIAMETERDIMENSION, IFCANGULARDIMENSION, IFCRADIUSDIMENSION, IFCLINEARDIMENSION], 3256556792: [IFCCONTROLLERTYPE, IFCALARMTYPE, IFCACTUATORTYPE, IFCSENSORTYPE, IFCFLOWINSTRUMENTTYPE, IFCDISTRIBUTIONCONTROLELEMENTTYPE, IFCDISTRIBUTIONCHAMBERELEMENTTYPE, IFCFILTERTYPE, IFCDUCTSILENCERTYPE, IFCFLOWTREATMENTDEVICETYPE, IFCFIRESUPPRESSIONTERMINALTYPE, IFCELECTRICHEATERTYPE, IFCELECTRICAPPLIANCETYPE, IFCAIRTERMINALTYPE, IFCWASTETERMINALTYPE, IFCSTACKTERMINALTYPE, IFCSANITARYTERMINALTYPE, IFCOUTLETTYPE, IFCLIGHTFIXTURETYPE, IFCLAMPTYPE, IFCGASTERMINALTYPE, IFCFLOWTERMINALTYPE, IFCELECTRICFLOWSTORAGEDEVICETYPE, IFCTANKTYPE, IFCFLOWSTORAGEDEVICETYPE, IFCDUCTSEGMENTTYPE, IFCCABLESEGMENTTYPE, IFCCABLECARRIERSEGMENTTYPE, IFCPIPESEGMENTTYPE, IFCFLOWSEGMENTTYPE, IFCFANTYPE, IFCCOMPRESSORTYPE, IFCPUMPTYPE, IFCFLOWMOVINGDEVICETYPE, IFCDUCTFITTINGTYPE, IFCCABLECARRIERFITTINGTYPE, IFCPIPEFITTINGTYPE, IFCJUNCTIONBOXTYPE, IFCFLOWFITTINGTYPE, IFCELECTRICTIMECONTROLTYPE, IFCDAMPERTYPE, IFCAIRTERMINALBOXTYPE, IFCVALVETYPE, IFCSWITCHINGDEVICETYPE, IFCPROTECTIVEDEVICETYPE, IFCFLOWMETERTYPE, IFCFLOWCONTROLLERTYPE, IFCELECTRICMOTORTYPE, IFCELECTRICGENERATORTYPE, IFCCOOLINGTOWERTYPE, IFCCOOLEDBEAMTYPE, IFCCONDENSERTYPE, IFCCOILTYPE, IFCCHILLERTYPE, IFCBOILERTYPE, IFCAIRTOAIRHEATRECOVERYTYPE, IFCUNITARYEQUIPMENTTYPE, IFCTUBEBUNDLETYPE, IFCTRANSFORMERTYPE, IFCSPACEHEATERTYPE, IFCMOTORCONNECTIONTYPE, IFCHUMIDIFIERTYPE, IFCHEATEXCHANGERTYPE, IFCEVAPORATORTYPE, IFCEVAPORATIVECOOLERTYPE, IFCENERGYCONVERSIONDEVICETYPE, IFCDISTRIBUTIONFLOWELEMENTTYPE], 3849074793: [IFCDISTRIBUTIONCHAMBERELEMENTTYPE, IFCFILTERTYPE, IFCDUCTSILENCERTYPE, IFCFLOWTREATMENTDEVICETYPE, IFCFIRESUPPRESSIONTERMINALTYPE, IFCELECTRICHEATERTYPE, IFCELECTRICAPPLIANCETYPE, IFCAIRTERMINALTYPE, IFCWASTETERMINALTYPE, IFCSTACKTERMINALTYPE, IFCSANITARYTERMINALTYPE, IFCOUTLETTYPE, IFCLIGHTFIXTURETYPE, IFCLAMPTYPE, IFCGASTERMINALTYPE, IFCFLOWTERMINALTYPE, IFCELECTRICFLOWSTORAGEDEVICETYPE, IFCTANKTYPE, IFCFLOWSTORAGEDEVICETYPE, IFCDUCTSEGMENTTYPE, IFCCABLESEGMENTTYPE, IFCCABLECARRIERSEGMENTTYPE, IFCPIPESEGMENTTYPE, IFCFLOWSEGMENTTYPE, IFCFANTYPE, IFCCOMPRESSORTYPE, IFCPUMPTYPE, IFCFLOWMOVINGDEVICETYPE, IFCDUCTFITTINGTYPE, IFCCABLECARRIERFITTINGTYPE, IFCPIPEFITTINGTYPE, IFCJUNCTIONBOXTYPE, IFCFLOWFITTINGTYPE, IFCELECTRICTIMECONTROLTYPE, IFCDAMPERTYPE, IFCAIRTERMINALBOXTYPE, IFCVALVETYPE, IFCSWITCHINGDEVICETYPE, IFCPROTECTIVEDEVICETYPE, IFCFLOWMETERTYPE, IFCFLOWCONTROLLERTYPE, IFCELECTRICMOTORTYPE, IFCELECTRICGENERATORTYPE, IFCCOOLINGTOWERTYPE, IFCCOOLEDBEAMTYPE, IFCCONDENSERTYPE, IFCCOILTYPE, IFCCHILLERTYPE, IFCBOILERTYPE, IFCAIRTOAIRHEATRECOVERYTYPE, IFCUNITARYEQUIPMENTTYPE, IFCTUBEBUNDLETYPE, IFCTRANSFORMERTYPE, IFCSPACEHEATERTYPE, IFCMOTORCONNECTIONTYPE, IFCHUMIDIFIERTYPE, IFCHEATEXCHANGERTYPE, IFCEVAPORATORTYPE, IFCEVAPORATIVECOOLERTYPE, IFCENERGYCONVERSIONDEVICETYPE], 1758889154: [IFCELECTRICALELEMENT, IFCDISTRIBUTIONCONTROLELEMENT, IFCDISTRIBUTIONCHAMBERELEMENT, IFCFLOWTREATMENTDEVICE, IFCFLOWTERMINAL, IFCFLOWSTORAGEDEVICE, IFCFLOWSEGMENT, IFCFLOWMOVINGDEVICE, IFCFLOWFITTING, IFCELECTRICDISTRIBUTIONPOINT, IFCFLOWCONTROLLER, IFCENERGYCONVERSIONDEVICE, IFCDISTRIBUTIONFLOWELEMENT, IFCDISTRIBUTIONELEMENT, IFCBEAM, IFCWINDOW, IFCWALLSTANDARDCASE, IFCWALL, IFCSTAIRFLIGHT, IFCSTAIR, IFCSLAB, IFCROOF, IFCRAMPFLIGHT, IFCRAMP, IFCRAILING, IFCPLATE, IFCPILE, IFCMEMBER, IFCFOOTING, IFCDOOR, IFCCURTAINWALL, IFCCOVERING, IFCCOLUMN, IFCBUILDINGELEMENTPROXY, IFCREINFORCINGBAR, IFCTENDONANCHOR, IFCTENDON, IFCREINFORCINGMESH, IFCREINFORCINGELEMENT, IFCBUILDINGELEMENTPART, IFCBUILDINGELEMENTCOMPONENT, IFCBUILDINGELEMENT, IFCVIRTUALELEMENT, IFCTRANSPORTELEMENT, IFCFURNISHINGELEMENT, IFCCHAMFEREDGEFEATURE, IFCROUNDEDEDGEFEATURE, IFCEDGEFEATURE, IFCOPENINGELEMENT, IFCFEATUREELEMENTSUBTRACTION, IFCPROJECTIONELEMENT, IFCFEATUREELEMENTADDITION, IFCFEATUREELEMENT, IFCEQUIPMENTELEMENT, IFCDISCRETEACCESSORY, IFCMECHANICALFASTENER, IFCFASTENER, IFCELEMENTCOMPONENT, IFCELEMENTASSEMBLY], 1623761950: [IFCDISCRETEACCESSORY, IFCMECHANICALFASTENER, IFCFASTENER], 2590856083: [IFCVIBRATIONISOLATORTYPE, IFCDISCRETEACCESSORYTYPE, IFCMECHANICALFASTENERTYPE, IFCFASTENERTYPE], 2107101300: [IFCELECTRICMOTORTYPE, IFCELECTRICGENERATORTYPE, IFCCOOLINGTOWERTYPE, IFCCOOLEDBEAMTYPE, IFCCONDENSERTYPE, IFCCOILTYPE, IFCCHILLERTYPE, IFCBOILERTYPE, IFCAIRTOAIRHEATRECOVERYTYPE, IFCUNITARYEQUIPMENTTYPE, IFCTUBEBUNDLETYPE, IFCTRANSFORMERTYPE, IFCSPACEHEATERTYPE, IFCMOTORCONNECTIONTYPE, IFCHUMIDIFIERTYPE, IFCHEATEXCHANGERTYPE, IFCEVAPORATORTYPE, IFCEVAPORATIVECOOLERTYPE], 647756555: [IFCMECHANICALFASTENER], 2489546625: [IFCMECHANICALFASTENERTYPE], 2827207264: [IFCCHAMFEREDGEFEATURE, IFCROUNDEDEDGEFEATURE, IFCEDGEFEATURE, IFCOPENINGELEMENT, IFCFEATUREELEMENTSUBTRACTION, IFCPROJECTIONELEMENT, IFCFEATUREELEMENTADDITION], 2143335405: [IFCPROJECTIONELEMENT], 1287392070: [IFCCHAMFEREDGEFEATURE, IFCROUNDEDEDGEFEATURE, IFCEDGEFEATURE, IFCOPENINGELEMENT], 3907093117: [IFCELECTRICTIMECONTROLTYPE, IFCDAMPERTYPE, IFCAIRTERMINALBOXTYPE, IFCVALVETYPE, IFCSWITCHINGDEVICETYPE, IFCPROTECTIVEDEVICETYPE, IFCFLOWMETERTYPE], 3198132628: [IFCDUCTFITTINGTYPE, IFCCABLECARRIERFITTINGTYPE, IFCPIPEFITTINGTYPE, IFCJUNCTIONBOXTYPE], 1482959167: [IFCFANTYPE, IFCCOMPRESSORTYPE, IFCPUMPTYPE], 1834744321: [IFCDUCTSEGMENTTYPE, IFCCABLESEGMENTTYPE, IFCCABLECARRIERSEGMENTTYPE, IFCPIPESEGMENTTYPE], 1339347760: [IFCELECTRICFLOWSTORAGEDEVICETYPE, IFCTANKTYPE], 2297155007: [IFCFIRESUPPRESSIONTERMINALTYPE, IFCELECTRICHEATERTYPE, IFCELECTRICAPPLIANCETYPE, IFCAIRTERMINALTYPE, IFCWASTETERMINALTYPE, IFCSTACKTERMINALTYPE, IFCSANITARYTERMINALTYPE, IFCOUTLETTYPE, IFCLIGHTFIXTURETYPE, IFCLAMPTYPE, IFCGASTERMINALTYPE], 3009222698: [IFCFILTERTYPE, IFCDUCTSILENCERTYPE], 2706460486: [IFCCONDITION, IFCASSET, IFCZONE, IFCSTRUCTURALANALYSISMODEL, IFCELECTRICALCIRCUIT, IFCSYSTEM, IFCSTRUCTURALRESULTGROUP, IFCSTRUCTURALLOADGROUP, IFCINVENTORY], 3740093272: [IFCDISTRIBUTIONPORT], 682877961: [IFCSTRUCTURALPOINTACTION, IFCSTRUCTURALPLANARACTIONVARYING, IFCSTRUCTURALPLANARACTION, IFCSTRUCTURALLINEARACTIONVARYING, IFCSTRUCTURALLINEARACTION], 1179482911: [IFCSTRUCTURALSURFACECONNECTION, IFCSTRUCTURALPOINTCONNECTION, IFCSTRUCTURALCURVECONNECTION], 214636428: [IFCSTRUCTURALCURVEMEMBERVARYING], 1807405624: [IFCSTRUCTURALLINEARACTIONVARYING], 1621171031: [IFCSTRUCTURALPLANARACTIONVARYING], 2254336722: [IFCSTRUCTURALANALYSISMODEL, IFCELECTRICALCIRCUIT], 1028945134: [IFCWORKSCHEDULE, IFCWORKPLAN], 1967976161: [IFCRATIONALBEZIERCURVE, IFCBEZIERCURVE], 1916977116: [IFCRATIONALBEZIERCURVE], 3299480353: [IFCBEAM, IFCWINDOW, IFCWALLSTANDARDCASE, IFCWALL, IFCSTAIRFLIGHT, IFCSTAIR, IFCSLAB, IFCROOF, IFCRAMPFLIGHT, IFCRAMP, IFCRAILING, IFCPLATE, IFCPILE, IFCMEMBER, IFCFOOTING, IFCDOOR, IFCCURTAINWALL, IFCCOVERING, IFCCOLUMN, IFCBUILDINGELEMENTPROXY, IFCREINFORCINGBAR, IFCTENDONANCHOR, IFCTENDON, IFCREINFORCINGMESH, IFCREINFORCINGELEMENT, IFCBUILDINGELEMENTPART, IFCBUILDINGELEMENTCOMPONENT], 52481810: [IFCREINFORCINGBAR, IFCTENDONANCHOR, IFCTENDON, IFCREINFORCINGMESH, IFCREINFORCINGELEMENT, IFCBUILDINGELEMENTPART], 2635815018: [IFCVIBRATIONISOLATORTYPE], 2063403501: [IFCCONTROLLERTYPE, IFCALARMTYPE, IFCACTUATORTYPE, IFCSENSORTYPE, IFCFLOWINSTRUMENTTYPE], 1945004755: [IFCDISTRIBUTIONCONTROLELEMENT, IFCDISTRIBUTIONCHAMBERELEMENT, IFCFLOWTREATMENTDEVICE, IFCFLOWTERMINAL, IFCFLOWSTORAGEDEVICE, IFCFLOWSEGMENT, IFCFLOWMOVINGDEVICE, IFCFLOWFITTING, IFCELECTRICDISTRIBUTIONPOINT, IFCFLOWCONTROLLER, IFCENERGYCONVERSIONDEVICE, IFCDISTRIBUTIONFLOWELEMENT], 3040386961: [IFCDISTRIBUTIONCHAMBERELEMENT, IFCFLOWTREATMENTDEVICE, IFCFLOWTERMINAL, IFCFLOWSTORAGEDEVICE, IFCFLOWSEGMENT, IFCFLOWMOVINGDEVICE, IFCFLOWFITTING, IFCELECTRICDISTRIBUTIONPOINT, IFCFLOWCONTROLLER, IFCENERGYCONVERSIONDEVICE], 855621170: [IFCCHAMFEREDGEFEATURE, IFCROUNDEDEDGEFEATURE], 2058353004: [IFCELECTRICDISTRIBUTIONPOINT], 3027567501: [IFCREINFORCINGBAR, IFCTENDONANCHOR, IFCTENDON, IFCREINFORCINGMESH], 2391406946: [IFCWALLSTANDARDCASE] }; InversePropertyDef[1] = { 618182010: [["OfPerson", IFCPERSON, 7, true], ["OfOrganization", IFCORGANIZATION, 4, true]], 411424972: [["ValuesReferenced", IFCREFERENCESVALUEDOCUMENT, 1, true], ["ValueOfComponents", IFCAPPLIEDVALUERELATIONSHIP, 0, true], ["IsComponentIn", IFCAPPLIEDVALUERELATIONSHIP, 1, true]], 130549933: [["Actors", IFCAPPROVALACTORRELATIONSHIP, 1, true], ["IsRelatedWith", IFCAPPROVALRELATIONSHIP, 0, true], ["Relates", IFCAPPROVALRELATIONSHIP, 1, true]], 747523909: [["Contains", IFCCLASSIFICATIONITEM, 1, true]], 1767535486: [["IsClassifiedItemIn", IFCCLASSIFICATIONITEMRELATIONSHIP, 1, true], ["IsClassifyingItemIn", IFCCLASSIFICATIONITEMRELATIONSHIP, 0, true]], 1959218052: [["ClassifiedAs", IFCCONSTRAINTCLASSIFICATIONRELATIONSHIP, 0, true], ["RelatesConstraints", IFCCONSTRAINTRELATIONSHIP, 2, true], ["IsRelatedWith", IFCCONSTRAINTRELATIONSHIP, 3, true], ["PropertiesForConstraint", IFCPROPERTYCONSTRAINTRELATIONSHIP, 0, true], ["Aggregates", IFCCONSTRAINTAGGREGATIONRELATIONSHIP, 2, true], ["IsAggregatedIn", IFCCONSTRAINTAGGREGATIONRELATIONSHIP, 3, true]], 602808272: [["ValuesReferenced", IFCREFERENCESVALUEDOCUMENT, 1, true], ["ValueOfComponents", IFCAPPLIEDVALUERELATIONSHIP, 0, true], ["IsComponentIn", IFCAPPLIEDVALUERELATIONSHIP, 1, true]], 1154170062: [["IsPointedTo", IFCDOCUMENTINFORMATIONRELATIONSHIP, 1, true], ["IsPointer", IFCDOCUMENTINFORMATIONRELATIONSHIP, 0, true]], 1648886627: [["ValuesReferenced", IFCREFERENCESVALUEDOCUMENT, 1, true], ["ValueOfComponents", IFCAPPLIEDVALUERELATIONSHIP, 0, true], ["IsComponentIn", IFCAPPLIEDVALUERELATIONSHIP, 1, true]], 852622518: [["PartOfW", IFCGRID, 9, true], ["PartOfV", IFCGRID, 8, true], ["PartOfU", IFCGRID, 7, true], ["HasIntersections", IFCVIRTUALGRIDINTERSECTION, 0, true]], 3452421091: [["ReferenceIntoLibrary", IFCLIBRARYINFORMATION, 4, true]], 1838606355: [["HasRepresentation", IFCMATERIALDEFINITIONREPRESENTATION, 3, true], ["ClassifiedAs", IFCMATERIALCLASSIFICATIONRELATIONSHIP, 1, true]], 248100487: [["ToMaterialLayerSet", IFCMATERIALLAYERSET, 0, false]], 3368373690: [["ClassifiedAs", IFCCONSTRAINTCLASSIFICATIONRELATIONSHIP, 0, true], ["RelatesConstraints", IFCCONSTRAINTRELATIONSHIP, 2, true], ["IsRelatedWith", IFCCONSTRAINTRELATIONSHIP, 3, true], ["PropertiesForConstraint", IFCPROPERTYCONSTRAINTRELATIONSHIP, 0, true], ["Aggregates", IFCCONSTRAINTAGGREGATIONRELATIONSHIP, 2, true], ["IsAggregatedIn", IFCCONSTRAINTAGGREGATIONRELATIONSHIP, 3, true]], 3701648758: [["PlacesObject", IFCPRODUCT, 5, true], ["ReferencedByPlacements", IFCLOCALPLACEMENT, 0, true]], 2251480897: [["ClassifiedAs", IFCCONSTRAINTCLASSIFICATIONRELATIONSHIP, 0, true], ["RelatesConstraints", IFCCONSTRAINTRELATIONSHIP, 2, true], ["IsRelatedWith", IFCCONSTRAINTRELATIONSHIP, 3, true], ["PropertiesForConstraint", IFCPROPERTYCONSTRAINTRELATIONSHIP, 0, true], ["Aggregates", IFCCONSTRAINTAGGREGATIONRELATIONSHIP, 2, true], ["IsAggregatedIn", IFCCONSTRAINTAGGREGATIONRELATIONSHIP, 3, true]], 4251960020: [["IsRelatedBy", IFCORGANIZATIONRELATIONSHIP, 3, true], ["Relates", IFCORGANIZATIONRELATIONSHIP, 2, true], ["Engages", IFCPERSONANDORGANIZATION, 1, true]], 2077209135: [["EngagedIn", IFCPERSONANDORGANIZATION, 0, true]], 2483315170: [["PartOfComplex", IFCPHYSICALCOMPLEXQUANTITY, 2, true]], 2226359599: [["PartOfComplex", IFCPHYSICALCOMPLEXQUANTITY, 2, true]], 3355820592: [["OfPerson", IFCPERSON, 7, true], ["OfOrganization", IFCORGANIZATION, 4, true]], 2598011224: [["PropertyForDependance", IFCPROPERTYDEPENDENCYRELATIONSHIP, 0, true], ["PropertyDependsOn", IFCPROPERTYDEPENDENCYRELATIONSHIP, 1, true], ["PartOfComplex", IFCCOMPLEXPROPERTY, 3, true]], 2044713172: [["PartOfComplex", IFCPHYSICALCOMPLEXQUANTITY, 2, true]], 2093928680: [["PartOfComplex", IFCPHYSICALCOMPLEXQUANTITY, 2, true]], 931644368: [["PartOfComplex", IFCPHYSICALCOMPLEXQUANTITY, 2, true]], 3252649465: [["PartOfComplex", IFCPHYSICALCOMPLEXQUANTITY, 2, true]], 2405470396: [["PartOfComplex", IFCPHYSICALCOMPLEXQUANTITY, 2, true]], 825690147: [["PartOfComplex", IFCPHYSICALCOMPLEXQUANTITY, 2, true]], 1076942058: [["RepresentationMap", IFCREPRESENTATIONMAP, 1, true], ["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["OfProductRepresentation", IFCPRODUCTREPRESENTATION, 2, true]], 3377609919: [["RepresentationsInContext", IFCREPRESENTATION, 0, true]], 3008791417: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 1660063152: [["MapUsage", IFCMAPPEDITEM, 0, true]], 3982875396: [["RepresentationMap", IFCREPRESENTATIONMAP, 1, true], ["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["OfProductRepresentation", IFCPRODUCTREPRESENTATION, 2, true], ["OfShapeAspect", IFCSHAPEASPECT, 0, true]], 4240577450: [["RepresentationMap", IFCREPRESENTATIONMAP, 1, true], ["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["OfProductRepresentation", IFCPRODUCTREPRESENTATION, 2, true], ["OfShapeAspect", IFCSHAPEASPECT, 0, true]], 3692461612: [["PropertyForDependance", IFCPROPERTYDEPENDENCYRELATIONSHIP, 0, true], ["PropertyDependsOn", IFCPROPERTYDEPENDENCYRELATIONSHIP, 1, true], ["PartOfComplex", IFCCOMPLEXPROPERTY, 3, true]], 2830218821: [["RepresentationMap", IFCREPRESENTATIONMAP, 1, true], ["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["OfProductRepresentation", IFCPRODUCTREPRESENTATION, 2, true]], 3958052878: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 3049322572: [["RepresentationMap", IFCREPRESENTATIONMAP, 1, true], ["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["OfProductRepresentation", IFCPRODUCTREPRESENTATION, 2, true]], 531007025: [["OfTable", IFCTABLE, 1, false]], 912023232: [["OfPerson", IFCPERSON, 7, true], ["OfOrganization", IFCORGANIZATION, 4, true]], 280115917: [["AnnotatedSurface", IFCANNOTATIONSURFACE, 1, true]], 1742049831: [["AnnotatedSurface", IFCANNOTATIONSURFACE, 1, true]], 2552916305: [["AnnotatedSurface", IFCANNOTATIONSURFACE, 1, true]], 3101149627: [["DocumentedBy", IFCTIMESERIESREFERENCERELATIONSHIP, 0, true]], 1377556343: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 1735638870: [["RepresentationMap", IFCREPRESENTATIONMAP, 1, true], ["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["OfProductRepresentation", IFCPRODUCTREPRESENTATION, 2, true], ["OfShapeAspect", IFCSHAPEASPECT, 0, true]], 2799835756: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 1907098498: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 2442683028: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 962685235: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 3612888222: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 2297822566: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 2542286263: [["PropertyForDependance", IFCPROPERTYDEPENDENCYRELATIONSHIP, 0, true], ["PropertyDependsOn", IFCPROPERTYDEPENDENCYRELATIONSHIP, 1, true], ["PartOfComplex", IFCCOMPLEXPROPERTY, 3, true]], 370225590: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 3732053477: [["ReferenceToDocument", IFCDOCUMENTINFORMATION, 3, true]], 3900360178: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 476780140: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 2556980723: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 1809719519: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 803316827: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 3008276851: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 3448662350: [["RepresentationsInContext", IFCREPRESENTATION, 0, true], ["HasSubContexts", IFCGEOMETRICREPRESENTATIONSUBCONTEXT, 6, true]], 2453401579: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 4142052618: [["RepresentationsInContext", IFCREPRESENTATION, 0, true], ["HasSubContexts", IFCGEOMETRICREPRESENTATIONSUBCONTEXT, 6, true]], 3590301190: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 178086475: [["PlacesObject", IFCPRODUCT, 5, true], ["ReferencedByPlacements", IFCLOCALPLACEMENT, 0, true]], 812098782: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 3741457305: [["DocumentedBy", IFCTIMESERIESREFERENCERELATIONSHIP, 0, true]], 1402838566: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 125510826: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 2604431987: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 4266656042: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 1520743889: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 3422422726: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 2624227202: [["PlacesObject", IFCPRODUCT, 5, true], ["ReferencedByPlacements", IFCLOCALPLACEMENT, 0, true]], 1008929658: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 2347385850: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 219451334: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true]], 2833995503: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 2665983363: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 1029017970: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 2519244187: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 3021840470: [["PartOfComplex", IFCPHYSICALCOMPLEXQUANTITY, 2, true]], 2004835150: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 1663979128: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 2067069095: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 4022376103: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 1423911732: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 2924175390: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 2775532180: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 673634403: [["ShapeOfProduct", IFCPRODUCT, 6, true], ["HasShapeAspects", IFCSHAPEASPECT, 4, true]], 871118103: [["PropertyForDependance", IFCPROPERTYDEPENDENCYRELATIONSHIP, 0, true], ["PropertyDependsOn", IFCPROPERTYDEPENDENCYRELATIONSHIP, 1, true], ["PartOfComplex", IFCCOMPLEXPROPERTY, 3, true]], 1680319473: [["HasAssociations", IFCRELASSOCIATES, 4, true]], 4166981789: [["PropertyForDependance", IFCPROPERTYDEPENDENCYRELATIONSHIP, 0, true], ["PropertyDependsOn", IFCPROPERTYDEPENDENCYRELATIONSHIP, 1, true], ["PartOfComplex", IFCCOMPLEXPROPERTY, 3, true]], 2752243245: [["PropertyForDependance", IFCPROPERTYDEPENDENCYRELATIONSHIP, 0, true], ["PropertyDependsOn", IFCPROPERTYDEPENDENCYRELATIONSHIP, 1, true], ["PartOfComplex", IFCCOMPLEXPROPERTY, 3, true]], 941946838: [["PropertyForDependance", IFCPROPERTYDEPENDENCYRELATIONSHIP, 0, true], ["PropertyDependsOn", IFCPROPERTYDEPENDENCYRELATIONSHIP, 1, true], ["PartOfComplex", IFCCOMPLEXPROPERTY, 3, true]], 3357820518: [["HasAssociations", IFCRELASSOCIATES, 4, true], ["PropertyDefinitionOf", IFCRELDEFINESBYPROPERTIES, 5, true], ["DefinesType", IFCTYPEOBJECT, 5, true]], 3650150729: [["PropertyForDependance", IFCPROPERTYDEPENDENCYRELATIONSHIP, 0, true], ["PropertyDependsOn", IFCPROPERTYDEPENDENCYRELATIONSHIP, 1, true], ["PartOfComplex", IFCCOMPLEXPROPERTY, 3, true]], 110355661: [["PropertyForDependance", IFCPROPERTYDEPENDENCYRELATIONSHIP, 0, true], ["PropertyDependsOn", IFCPROPERTYDEPENDENCYRELATIONSHIP, 1, true], ["PartOfComplex", IFCCOMPLEXPROPERTY, 3, true]], 3413951693: [["DocumentedBy", IFCTIMESERIESREFERENCERELATIONSHIP, 0, true]], 3765753017: [["HasAssociations", IFCRELASSOCIATES, 4, true], ["PropertyDefinitionOf", IFCRELDEFINESBYPROPERTIES, 5, true], ["DefinesType", IFCTYPEOBJECT, 5, true]], 1509187699: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 2411513650: [["HasAssociations", IFCRELASSOCIATES, 4, true], ["PropertyDefinitionOf", IFCRELDEFINESBYPROPERTIES, 5, true], ["DefinesType", IFCTYPEOBJECT, 5, true]], 4124623270: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 723233188: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 2485662743: [["HasAssociations", IFCRELASSOCIATES, 4, true], ["PropertyDefinitionOf", IFCRELDEFINESBYPROPERTIES, 5, true], ["DefinesType", IFCTYPEOBJECT, 5, true]], 1202362311: [["HasAssociations", IFCRELASSOCIATES, 4, true], ["PropertyDefinitionOf", IFCRELDEFINESBYPROPERTIES, 5, true], ["DefinesType", IFCTYPEOBJECT, 5, true]], 390701378: [["HasAssociations", IFCRELASSOCIATES, 4, true], ["PropertyDefinitionOf", IFCRELDEFINESBYPROPERTIES, 5, true], ["DefinesType", IFCTYPEOBJECT, 5, true]], 2233826070: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 2513912981: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 2247615214: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 1260650574: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 230924584: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 3028897424: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 4282788508: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 3124975700: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 1345879162: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 1628702193: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], 2347495698: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], 1417489154: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 2759199220: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 336235671: [["HasAssociations", IFCRELASSOCIATES, 4, true], ["PropertyDefinitionOf", IFCRELDEFINESBYPROPERTIES, 5, true], ["DefinesType", IFCTYPEOBJECT, 5, true]], 512836454: [["HasAssociations", IFCRELASSOCIATES, 4, true], ["PropertyDefinitionOf", IFCRELDEFINESBYPROPERTIES, 5, true], ["DefinesType", IFCTYPEOBJECT, 5, true]], 1299126871: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], 3288037868: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 669184980: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 2265737646: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 1302238472: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 4261334040: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 3125803723: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 2740243338: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 2736907675: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 4182860854: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 2581212453: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 2713105998: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 1123145078: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 59481748: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 3749851601: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 3486308946: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 3331915920: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 1416205885: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 2205249479: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 2485617015: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true], ["UsingCurves", IFCCOMPOSITECURVE, 0, true]], 2506170314: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 2147822146: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 2601014836: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 2827736869: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 693772133: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 606661476: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true], ["AnnotatedBySymbols", IFCTERMINATORSYMBOL, 3, true]], 4054601972: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 32440307: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 2963535650: [["HasAssociations", IFCRELASSOCIATES, 4, true], ["PropertyDefinitionOf", IFCRELDEFINESBYPROPERTIES, 5, true], ["DefinesType", IFCTYPEOBJECT, 5, true]], 1714330368: [["HasAssociations", IFCRELASSOCIATES, 4, true], ["PropertyDefinitionOf", IFCRELDEFINESBYPROPERTIES, 5, true], ["DefinesType", IFCTYPEOBJECT, 5, true]], 526551008: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], 3073041342: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true], ["IsRelatedFromCallout", IFCDRAUGHTINGCALLOUTRELATIONSHIP, 3, true], ["IsRelatedToCallout", IFCDRAUGHTINGCALLOUTRELATIONSHIP, 2, true]], 1472233963: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 1883228015: [["HasAssociations", IFCRELASSOCIATES, 4, true], ["PropertyDefinitionOf", IFCRELDEFINESBYPROPERTIES, 5, true], ["DefinesType", IFCTYPEOBJECT, 5, true]], 339256511: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], 2777663545: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 80994333: [["HasAssociations", IFCRELASSOCIATES, 4, true], ["PropertyDefinitionOf", IFCRELDEFINESBYPROPERTIES, 5, true], ["DefinesType", IFCTYPEOBJECT, 5, true]], 477187591: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 2047409740: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 374418227: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 4203026998: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 315944413: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 3455213021: [["HasAssociations", IFCRELASSOCIATES, 4, true], ["PropertyDefinitionOf", IFCRELDEFINESBYPROPERTIES, 5, true], ["DefinesType", IFCTYPEOBJECT, 5, true]], 4238390223: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], 1268542332: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], 987898635: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 1281925730: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 1425443689: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 3888040117: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true]], 3388369263: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 3505215534: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 3566463478: [["HasAssociations", IFCRELASSOCIATES, 4, true], ["PropertyDefinitionOf", IFCRELDEFINESBYPROPERTIES, 5, true], ["DefinesType", IFCTYPEOBJECT, 5, true]], 603570806: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 220341763: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 2945172077: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["OperatesOn", IFCRELASSIGNSTOPROCESS, 6, true], ["IsSuccessorFrom", IFCRELSEQUENCE, 5, true], ["IsPredecessorTo", IFCRELSEQUENCE, 4, true]], 4208778838: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 103090709: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true]], 4194566429: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 1451395588: [["HasAssociations", IFCRELASSOCIATES, 4, true], ["PropertyDefinitionOf", IFCRELDEFINESBYPROPERTIES, 5, true], ["DefinesType", IFCTYPEOBJECT, 5, true]], 3219374653: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 2798486643: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 3454111270: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 2914609552: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ResourceOf", IFCRELASSIGNSTORESOURCE, 6, true]], 1856042241: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 4158566097: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 3626867408: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 2706606064: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["ReferencesElements", IFCRELREFERENCEDINSPATIALSTRUCTURE, 5, true], ["ServicedBySystems", IFCRELSERVICESBUILDINGS, 5, true], ["ContainsElements", IFCRELCONTAINEDINSPATIALSTRUCTURE, 5, true]], 3893378262: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], 451544542: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 3544373492: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["AssignedToStructuralItem", IFCRELCONNECTSSTRUCTURALACTIVITY, 5, false]], 3136571912: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["AssignedStructuralActivity", IFCRELCONNECTSSTRUCTURALACTIVITY, 4, true]], 530289379: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["AssignedStructuralActivity", IFCRELCONNECTSSTRUCTURALACTIVITY, 4, true], ["ReferencesElement", IFCRELCONNECTSSTRUCTURALELEMENT, 5, true], ["ConnectedBy", IFCRELCONNECTSSTRUCTURALMEMBER, 4, true]], 3689010777: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["AssignedToStructuralItem", IFCRELCONNECTSSTRUCTURALACTIVITY, 5, false], ["Causes", IFCSTRUCTURALACTION, 10, true]], 3979015343: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["AssignedStructuralActivity", IFCRELCONNECTSSTRUCTURALACTIVITY, 4, true], ["ReferencesElement", IFCRELCONNECTSSTRUCTURALELEMENT, 5, true], ["ConnectedBy", IFCRELCONNECTSSTRUCTURALMEMBER, 4, true]], 2218152070: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["AssignedStructuralActivity", IFCRELCONNECTSSTRUCTURALACTIVITY, 4, true], ["ReferencesElement", IFCRELCONNECTSSTRUCTURALELEMENT, 5, true], ["ConnectedBy", IFCRELCONNECTSSTRUCTURALMEMBER, 4, true]], 4070609034: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true], ["IsRelatedFromCallout", IFCDRAUGHTINGCALLOUTRELATIONSHIP, 3, true], ["IsRelatedToCallout", IFCDRAUGHTINGCALLOUTRELATIONSHIP, 2, true]], 2028607225: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 2809605785: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 4124788165: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 1580310250: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], 3473067441: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["OperatesOn", IFCRELASSIGNSTOPROCESS, 6, true], ["IsSuccessorFrom", IFCRELSEQUENCE, 5, true], ["IsPredecessorTo", IFCRELSEQUENCE, 4, true]], 2097647324: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], 2296667514: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["IsActingUpon", IFCRELASSIGNSTOACTOR, 6, true]], 1674181508: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]], 1334484129: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 3649129432: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 1260505505: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 4031249490: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["ReferencesElements", IFCRELREFERENCEDINSPATIALSTRUCTURE, 5, true], ["ServicedBySystems", IFCRELSERVICESBUILDINGS, 5, true], ["ContainsElements", IFCRELCONTAINEDINSPATIALSTRUCTURE, 5, true]], 1950629157: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], 3124254112: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["ReferencesElements", IFCRELREFERENCEDINSPATIALSTRUCTURE, 5, true], ["ServicedBySystems", IFCRELSERVICESBUILDINGS, 5, true], ["ContainsElements", IFCRELCONTAINEDINSPATIALSTRUCTURE, 5, true]], 300633059: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], 3732776249: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 2510884976: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 2559216714: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ResourceOf", IFCRELASSIGNSTORESOURCE, 6, true]], 3293443760: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["Controls", IFCRELASSIGNSTOCONTROL, 6, true]], 3895139033: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["Controls", IFCRELASSIGNSTOCONTROL, 6, true]], 1419761937: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["Controls", IFCRELASSIGNSTOCONTROL, 6, true]], 1916426348: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], 3295246426: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ResourceOf", IFCRELASSIGNSTORESOURCE, 6, true]], 1457835157: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], 681481545: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true], ["IsRelatedFromCallout", IFCDRAUGHTINGCALLOUTRELATIONSHIP, 3, true], ["IsRelatedToCallout", IFCDRAUGHTINGCALLOUTRELATIONSHIP, 2, true]], 3256556792: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], 3849074793: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], 360485395: [["HasAssociations", IFCRELASSOCIATES, 4, true], ["PropertyDefinitionOf", IFCRELDEFINESBYPROPERTIES, 5, true], ["DefinesType", IFCTYPEOBJECT, 5, true]], 1758889154: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]], 4123344466: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]], 1623761950: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]], 2590856083: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], 1704287377: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 2107101300: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], 1962604670: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]], 3272907226: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["Controls", IFCRELASSIGNSTOCONTROL, 6, true]], 3174744832: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], 3390157468: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], 807026263: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 3737207727: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 647756555: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]], 2489546625: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], 2827207264: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]], 2143335405: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["ProjectsElements", IFCRELPROJECTSELEMENT, 5, false]], 1287392070: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["VoidsElements", IFCRELVOIDSELEMENT, 5, false]], 3907093117: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], 3198132628: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], 3815607619: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], 1482959167: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], 1834744321: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], 1339347760: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], 2297155007: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], 3009222698: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], 263784265: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]], 814719939: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["Controls", IFCRELASSIGNSTOCONTROL, 6, true]], 200128114: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], 3009204131: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]], 2706460486: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["IsGroupedBy", IFCRELASSIGNSTOGROUP, 6, false]], 1251058090: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], 1806887404: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], 2391368822: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["IsGroupedBy", IFCRELASSIGNSTOGROUP, 6, false]], 4288270099: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], 3827777499: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ResourceOf", IFCRELASSIGNSTORESOURCE, 6, true]], 1051575348: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], 1161773419: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], 2506943328: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true], ["IsRelatedFromCallout", IFCDRAUGHTINGCALLOUTRELATIONSHIP, 3, true], ["IsRelatedToCallout", IFCDRAUGHTINGCALLOUTRELATIONSHIP, 2, true]], 377706215: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]], 2108223431: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], 3181161470: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], 977012517: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], 1916936684: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["OperatesOn", IFCRELASSIGNSTOPROCESS, 6, true], ["IsSuccessorFrom", IFCRELSEQUENCE, 5, true], ["IsPredecessorTo", IFCRELSEQUENCE, 4, true]], 4143007308: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["IsActingUpon", IFCRELASSIGNSTOACTOR, 6, true]], 3588315303: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["VoidsElements", IFCRELVOIDSELEMENT, 5, false], ["HasFillings", IFCRELFILLSELEMENT, 4, true]], 3425660407: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["OperatesOn", IFCRELASSIGNSTOPROCESS, 6, true], ["IsSuccessorFrom", IFCRELSEQUENCE, 5, true], ["IsPredecessorTo", IFCRELSEQUENCE, 4, true]], 2837617999: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], 2382730787: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["Controls", IFCRELASSIGNSTOCONTROL, 6, true]], 3327091369: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["Controls", IFCRELASSIGNSTOCONTROL, 6, true]], 804291784: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], 4231323485: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], 4017108033: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], 3724593414: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 3740093272: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["ContainedIn", IFCRELCONNECTSPORTTOELEMENT, 4, false], ["ConnectedFrom", IFCRELCONNECTSPORTS, 5, true], ["ConnectedTo", IFCRELCONNECTSPORTS, 4, true]], 2744685151: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["OperatesOn", IFCRELASSIGNSTOPROCESS, 6, true], ["IsSuccessorFrom", IFCRELSEQUENCE, 5, true], ["IsPredecessorTo", IFCRELSEQUENCE, 4, true]], 2904328755: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["Controls", IFCRELASSIGNSTOCONTROL, 6, true]], 3642467123: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["Controls", IFCRELASSIGNSTOCONTROL, 6, true]], 3651124850: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["ProjectsElements", IFCRELPROJECTSELEMENT, 5, false]], 1842657554: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], 2250791053: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], 3248260540: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true], ["IsRelatedFromCallout", IFCDRAUGHTINGCALLOUTRELATIONSHIP, 3, true], ["IsRelatedToCallout", IFCDRAUGHTINGCALLOUTRELATIONSHIP, 2, true]], 2893384427: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], 2324767716: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], 1768891740: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], 3517283431: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["Controls", IFCRELASSIGNSTOCONTROL, 6, true], ["ScheduleTimeControlAssigned", IFCRELASSIGNSTASKS, 7, false]], 4105383287: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["Controls", IFCRELASSIGNSTOCONTROL, 6, true]], 4097777520: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["ReferencesElements", IFCRELREFERENCEDINSPATIALSTRUCTURE, 5, true], ["ServicedBySystems", IFCRELSERVICESBUILDINGS, 5, true], ["ContainsElements", IFCRELCONTAINEDINSPATIALSTRUCTURE, 5, true]], 2533589738: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], 3856911033: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["ReferencesElements", IFCRELREFERENCEDINSPATIALSTRUCTURE, 5, true], ["ServicedBySystems", IFCRELSERVICESBUILDINGS, 5, true], ["ContainsElements", IFCRELCONTAINEDINSPATIALSTRUCTURE, 5, true], ["HasCoverings", IFCRELCOVERSSPACES, 4, true], ["BoundedBy", IFCRELSPACEBOUNDARY, 4, true]], 1305183839: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], 652456506: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["Controls", IFCRELASSIGNSTOCONTROL, 6, true], ["HasInteractionReqsFrom", IFCRELINTERACTIONREQUIREMENTS, 7, true], ["HasInteractionReqsTo", IFCRELINTERACTIONREQUIREMENTS, 8, true]], 3812236995: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], 3112655638: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], 1039846685: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], 682877961: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["AssignedToStructuralItem", IFCRELCONNECTSSTRUCTURALACTIVITY, 5, false]], 1179482911: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["AssignedStructuralActivity", IFCRELCONNECTSSTRUCTURALACTIVITY, 4, true], ["ConnectsStructuralMembers", IFCRELCONNECTSSTRUCTURALMEMBER, 5, true]], 4243806635: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["AssignedStructuralActivity", IFCRELCONNECTSSTRUCTURALACTIVITY, 4, true], ["ConnectsStructuralMembers", IFCRELCONNECTSSTRUCTURALMEMBER, 5, true]], 214636428: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["AssignedStructuralActivity", IFCRELCONNECTSSTRUCTURALACTIVITY, 4, true], ["ReferencesElement", IFCRELCONNECTSSTRUCTURALELEMENT, 5, true], ["ConnectedBy", IFCRELCONNECTSSTRUCTURALMEMBER, 4, true]], 2445595289: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["AssignedStructuralActivity", IFCRELCONNECTSSTRUCTURALACTIVITY, 4, true], ["ReferencesElement", IFCRELCONNECTSSTRUCTURALELEMENT, 5, true], ["ConnectedBy", IFCRELCONNECTSSTRUCTURALMEMBER, 4, true]], 1807405624: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["AssignedToStructuralItem", IFCRELCONNECTSSTRUCTURALACTIVITY, 5, false]], 1721250024: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["AssignedToStructuralItem", IFCRELCONNECTSSTRUCTURALACTIVITY, 5, false]], 1252848954: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["IsGroupedBy", IFCRELASSIGNSTOGROUP, 6, false], ["SourceOfResultGroup", IFCSTRUCTURALRESULTGROUP, 6, true], ["LoadGroupFor", IFCSTRUCTURALANALYSISMODEL, 7, true]], 1621171031: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["AssignedToStructuralItem", IFCRELCONNECTSSTRUCTURALACTIVITY, 5, false]], 3987759626: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["AssignedToStructuralItem", IFCRELCONNECTSSTRUCTURALACTIVITY, 5, false]], 2082059205: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["AssignedToStructuralItem", IFCRELCONNECTSSTRUCTURALACTIVITY, 5, false]], 734778138: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["AssignedStructuralActivity", IFCRELCONNECTSSTRUCTURALACTIVITY, 4, true], ["ConnectsStructuralMembers", IFCRELCONNECTSSTRUCTURALMEMBER, 5, true]], 1235345126: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["AssignedToStructuralItem", IFCRELCONNECTSSTRUCTURALACTIVITY, 5, false], ["Causes", IFCSTRUCTURALACTION, 10, true]], 2986769608: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["IsGroupedBy", IFCRELASSIGNSTOGROUP, 6, false], ["ResultGroupFor", IFCSTRUCTURALANALYSISMODEL, 8, true]], 1975003073: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["AssignedStructuralActivity", IFCRELCONNECTSSTRUCTURALACTIVITY, 4, true], ["ConnectsStructuralMembers", IFCRELCONNECTSSTRUCTURALMEMBER, 5, true]], 148013059: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ResourceOf", IFCRELASSIGNSTORESOURCE, 6, true]], 2315554128: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], 2254336722: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["IsGroupedBy", IFCRELASSIGNSTOGROUP, 6, false], ["ServicesBuildings", IFCRELSERVICESBUILDINGS, 4, true]], 5716631: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], 1637806684: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["Controls", IFCRELASSIGNSTOCONTROL, 6, true]], 1692211062: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], 1620046519: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]], 3593883385: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 1600972822: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], 1911125066: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], 728799441: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], 2769231204: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]], 1898987631: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], 1133259667: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], 1028945134: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["Controls", IFCRELASSIGNSTOCONTROL, 6, true]], 4218914973: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["Controls", IFCRELASSIGNSTOCONTROL, 6, true]], 3342526732: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["Controls", IFCRELASSIGNSTOCONTROL, 6, true]], 1033361043: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["IsGroupedBy", IFCRELASSIGNSTOGROUP, 6, false]], 1213861670: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 3821786052: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["Controls", IFCRELASSIGNSTOCONTROL, 6, true]], 1411407467: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], 3352864051: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], 1871374353: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], 2470393545: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true], ["IsRelatedFromCallout", IFCDRAUGHTINGCALLOUTRELATIONSHIP, 3, true], ["IsRelatedToCallout", IFCDRAUGHTINGCALLOUTRELATIONSHIP, 2, true]], 3460190687: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["IsGroupedBy", IFCRELASSIGNSTOGROUP, 6, false]], 1967976161: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 819618141: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], 1916977116: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 231477066: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], 3299480353: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]], 52481810: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]], 2979338954: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]], 1095909175: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]], 1909888760: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], 395041908: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], 3293546465: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], 1285652485: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], 2951183804: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], 2611217952: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 2301859152: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], 843113511: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]], 3850581409: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], 2816379211: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], 2188551683: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["IsGroupedBy", IFCRELASSIGNSTOGROUP, 6, false]], 1163958913: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["Controls", IFCRELASSIGNSTOCONTROL, 6, true]], 3898045240: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ResourceOf", IFCRELASSIGNSTORESOURCE, 6, true]], 1060000209: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ResourceOf", IFCRELASSIGNSTORESOURCE, 6, true]], 488727124: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ResourceOf", IFCRELASSIGNSTORESOURCE, 6, true]], 335055490: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], 2954562838: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], 1973544240: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["CoversSpaces", IFCRELCOVERSSPACES, 5, true], ["Covers", IFCRELCOVERSBLDGELEMENTS, 5, true]], 3495092785: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]], 3961806047: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], 4147604152: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true], ["IsRelatedFromCallout", IFCDRAUGHTINGCALLOUTRELATIONSHIP, 3, true], ["IsRelatedToCallout", IFCDRAUGHTINGCALLOUTRELATIONSHIP, 2, true]], 1335981549: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]], 2635815018: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], 1599208980: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], 2063403501: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], 1945004755: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]], 3040386961: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], 3041715199: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["ContainedIn", IFCRELCONNECTSPORTTOELEMENT, 4, false], ["ConnectedFrom", IFCRELCONNECTSPORTS, 5, true], ["ConnectedTo", IFCRELCONNECTSPORTS, 4, true]], 395920057: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]], 869906466: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], 3760055223: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], 2030761528: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], 855621170: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["VoidsElements", IFCRELVOIDSELEMENT, 5, false]], 663422040: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], 3277789161: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], 1534661035: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], 1365060375: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], 1217240411: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], 712377611: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], 1634875225: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["IsGroupedBy", IFCRELASSIGNSTOGROUP, 6, false], ["ServicesBuildings", IFCRELSERVICESBUILDINGS, 4, true]], 857184966: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]], 1658829314: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], 346874300: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], 1810631287: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], 4222183408: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], 2058353004: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], 4278956645: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], 4037862832: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], 3132237377: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], 987401354: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], 707683696: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], 2223149337: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], 3508470533: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], 900683007: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]], 1073191201: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]], 1687234759: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]], 3171933400: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]], 2262370178: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]], 3024970846: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]], 3283111854: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]], 3055160366: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 3027567501: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]], 2320036040: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]], 2016517767: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]], 1376911519: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["VoidsElements", IFCRELVOIDSELEMENT, 5, false]], 1783015770: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], 1529196076: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]], 331165859: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]], 4252922144: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]], 2515109513: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["IsGroupedBy", IFCRELASSIGNSTOGROUP, 6, false], ["ServicesBuildings", IFCRELSERVICESBUILDINGS, 4, true]], 3824725483: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]], 2347447852: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]], 3313531582: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], 2391406946: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]], 3512223829: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]], 3304561284: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]], 2874132201: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], 3001207471: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], 753842376: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]], 2454782716: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["VoidsElements", IFCRELVOIDSELEMENT, 5, false]], 578613899: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]], 1052013943: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], 1062813311: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["AssignedToFlowElement", IFCRELFLOWCONTROLELEMENTS, 4, true]], 3700593921: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], 979691226: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]] }; Constructors[1] = { 3630933823: (ID, a) => new IFC2X3.IfcActorRole(ID, a[0], a[1], a[2]), 618182010: (ID, a) => new IFC2X3.IfcAddress(ID, a[0], a[1], a[2]), 639542469: (ID, a) => new IFC2X3.IfcApplication(ID, a[0], a[1], a[2], a[3]), 411424972: (ID, a) => new IFC2X3.IfcAppliedValue(ID, a[0], a[1], a[2], a[3], a[4], a[5]), 1110488051: (ID, a) => new IFC2X3.IfcAppliedValueRelationship(ID, a[0], a[1], a[2], a[3], a[4]), 130549933: (ID, a) => new IFC2X3.IfcApproval(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]), 2080292479: (ID, a) => new IFC2X3.IfcApprovalActorRelationship(ID, a[0], a[1], a[2]), 390851274: (ID, a) => new IFC2X3.IfcApprovalPropertyRelationship(ID, a[0], a[1]), 3869604511: (ID, a) => new IFC2X3.IfcApprovalRelationship(ID, a[0], a[1], a[2], a[3]), 4037036970: (ID, a) => new IFC2X3.IfcBoundaryCondition(ID, a[0]), 1560379544: (ID, a) => new IFC2X3.IfcBoundaryEdgeCondition(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]), 3367102660: (ID, a) => new IFC2X3.IfcBoundaryFaceCondition(ID, a[0], a[1], a[2], a[3]), 1387855156: (ID, a) => new IFC2X3.IfcBoundaryNodeCondition(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]), 2069777674: (ID, a) => new IFC2X3.IfcBoundaryNodeConditionWarping(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), 622194075: (ID, a) => new IFC2X3.IfcCalendarDate(ID, a[0], a[1], a[2]), 747523909: (ID, a) => new IFC2X3.IfcClassification(ID, a[0], a[1], a[2], a[3]), 1767535486: (ID, a) => new IFC2X3.IfcClassificationItem(ID, a[0], a[1], a[2]), 1098599126: (ID, a) => new IFC2X3.IfcClassificationItemRelationship(ID, a[0], a[1]), 938368621: (ID, a) => new IFC2X3.IfcClassificationNotation(ID, a[0]), 3639012971: (ID, a) => new IFC2X3.IfcClassificationNotationFacet(ID, a[0]), 3264961684: (ID, a) => new IFC2X3.IfcColourSpecification(ID, a[0]), 2859738748: (ID, _) => new IFC2X3.IfcConnectionGeometry(ID), 2614616156: (ID, a) => new IFC2X3.IfcConnectionPointGeometry(ID, a[0], a[1]), 4257277454: (ID, a) => new IFC2X3.IfcConnectionPortGeometry(ID, a[0], a[1], a[2]), 2732653382: (ID, a) => new IFC2X3.IfcConnectionSurfaceGeometry(ID, a[0], a[1]), 1959218052: (ID, a) => new IFC2X3.IfcConstraint(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]), 1658513725: (ID, a) => new IFC2X3.IfcConstraintAggregationRelationship(ID, a[0], a[1], a[2], a[3], a[4]), 613356794: (ID, a) => new IFC2X3.IfcConstraintClassificationRelationship(ID, a[0], a[1]), 347226245: (ID, a) => new IFC2X3.IfcConstraintRelationship(ID, a[0], a[1], a[2], a[3]), 1065062679: (ID, a) => new IFC2X3.IfcCoordinatedUniversalTimeOffset(ID, a[0], a[1], a[2]), 602808272: (ID, a) => new IFC2X3.IfcCostValue(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), 539742890: (ID, a) => new IFC2X3.IfcCurrencyRelationship(ID, a[0], a[1], a[2], a[3], a[4]), 1105321065: (ID, a) => new IFC2X3.IfcCurveStyleFont(ID, a[0], a[1]), 2367409068: (ID, a) => new IFC2X3.IfcCurveStyleFontAndScaling(ID, a[0], a[1], a[2]), 3510044353: (ID, a) => new IFC2X3.IfcCurveStyleFontPattern(ID, a[0], a[1]), 1072939445: (ID, a) => new IFC2X3.IfcDateAndTime(ID, a[0], a[1]), 1765591967: (ID, a) => new IFC2X3.IfcDerivedUnit(ID, a[0], a[1], a[2]), 1045800335: (ID, a) => new IFC2X3.IfcDerivedUnitElement(ID, a[0], a[1]), 2949456006: (ID, a) => new IFC2X3.IfcDimensionalExponents(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]), 1376555844: (ID, a) => new IFC2X3.IfcDocumentElectronicFormat(ID, a[0], a[1], a[2]), 1154170062: (ID, a) => new IFC2X3.IfcDocumentInformation(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14], a[15], a[16]), 770865208: (ID, a) => new IFC2X3.IfcDocumentInformationRelationship(ID, a[0], a[1], a[2]), 3796139169: (ID, a) => new IFC2X3.IfcDraughtingCalloutRelationship(ID, a[0], a[1], a[2], a[3]), 1648886627: (ID, a) => new IFC2X3.IfcEnvironmentalImpactValue(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 3200245327: (ID, a) => new IFC2X3.IfcExternalReference(ID, a[0], a[1], a[2]), 2242383968: (ID, a) => new IFC2X3.IfcExternallyDefinedHatchStyle(ID, a[0], a[1], a[2]), 1040185647: (ID, a) => new IFC2X3.IfcExternallyDefinedSurfaceStyle(ID, a[0], a[1], a[2]), 3207319532: (ID, a) => new IFC2X3.IfcExternallyDefinedSymbol(ID, a[0], a[1], a[2]), 3548104201: (ID, a) => new IFC2X3.IfcExternallyDefinedTextFont(ID, a[0], a[1], a[2]), 852622518: (ID, a) => new IFC2X3.IfcGridAxis(ID, a[0], a[1], a[2]), 3020489413: (ID, a) => new IFC2X3.IfcIrregularTimeSeriesValue(ID, a[0], a[1]), 2655187982: (ID, a) => new IFC2X3.IfcLibraryInformation(ID, a[0], a[1], a[2], a[3], a[4]), 3452421091: (ID, a) => new IFC2X3.IfcLibraryReference(ID, a[0], a[1], a[2]), 4162380809: (ID, a) => new IFC2X3.IfcLightDistributionData(ID, a[0], a[1], a[2]), 1566485204: (ID, a) => new IFC2X3.IfcLightIntensityDistribution(ID, a[0], a[1]), 30780891: (ID, a) => new IFC2X3.IfcLocalTime(ID, a[0], a[1], a[2], a[3], a[4]), 1838606355: (ID, a) => new IFC2X3.IfcMaterial(ID, a[0]), 1847130766: (ID, a) => new IFC2X3.IfcMaterialClassificationRelationship(ID, a[0], a[1]), 248100487: (ID, a) => new IFC2X3.IfcMaterialLayer(ID, a[0], a[1], a[2]), 3303938423: (ID, a) => new IFC2X3.IfcMaterialLayerSet(ID, a[0], a[1]), 1303795690: (ID, a) => new IFC2X3.IfcMaterialLayerSetUsage(ID, a[0], a[1], a[2], a[3]), 2199411900: (ID, a) => new IFC2X3.IfcMaterialList(ID, a[0]), 3265635763: (ID, a) => new IFC2X3.IfcMaterialProperties(ID, a[0]), 2597039031: (ID, a) => new IFC2X3.IfcMeasureWithUnit(ID, a[0], a[1]), 4256014907: (ID, a) => new IFC2X3.IfcMechanicalMaterialProperties(ID, a[0], a[1], a[2], a[3], a[4], a[5]), 677618848: (ID, a) => new IFC2X3.IfcMechanicalSteelMaterialProperties(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12]), 3368373690: (ID, a) => new IFC2X3.IfcMetric(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 2706619895: (ID, a) => new IFC2X3.IfcMonetaryUnit(ID, a[0]), 1918398963: (ID, a) => new IFC2X3.IfcNamedUnit(ID, a[0], a[1]), 3701648758: (ID, _) => new IFC2X3.IfcObjectPlacement(ID), 2251480897: (ID, a) => new IFC2X3.IfcObjective(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]), 1227763645: (ID, a) => new IFC2X3.IfcOpticalMaterialProperties(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 4251960020: (ID, a) => new IFC2X3.IfcOrganization(ID, a[0], a[1], a[2], a[3], a[4]), 1411181986: (ID, a) => new IFC2X3.IfcOrganizationRelationship(ID, a[0], a[1], a[2], a[3]), 1207048766: (ID, a) => new IFC2X3.IfcOwnerHistory(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), 2077209135: (ID, a) => new IFC2X3.IfcPerson(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), 101040310: (ID, a) => new IFC2X3.IfcPersonAndOrganization(ID, a[0], a[1], a[2]), 2483315170: (ID, a) => new IFC2X3.IfcPhysicalQuantity(ID, a[0], a[1]), 2226359599: (ID, a) => new IFC2X3.IfcPhysicalSimpleQuantity(ID, a[0], a[1], a[2]), 3355820592: (ID, a) => new IFC2X3.IfcPostalAddress(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 3727388367: (ID, a) => new IFC2X3.IfcPreDefinedItem(ID, a[0]), 990879717: (ID, a) => new IFC2X3.IfcPreDefinedSymbol(ID, a[0]), 3213052703: (ID, a) => new IFC2X3.IfcPreDefinedTerminatorSymbol(ID, a[0]), 1775413392: (ID, a) => new IFC2X3.IfcPreDefinedTextFont(ID, a[0]), 2022622350: (ID, a) => new IFC2X3.IfcPresentationLayerAssignment(ID, a[0], a[1], a[2], a[3]), 1304840413: (ID, a) => new IFC2X3.IfcPresentationLayerWithStyle(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), 3119450353: (ID, a) => new IFC2X3.IfcPresentationStyle(ID, a[0]), 2417041796: (ID, a) => new IFC2X3.IfcPresentationStyleAssignment(ID, a[0]), 2095639259: (ID, a) => new IFC2X3.IfcProductRepresentation(ID, a[0], a[1], a[2]), 2267347899: (ID, a) => new IFC2X3.IfcProductsOfCombustionProperties(ID, a[0], a[1], a[2], a[3], a[4]), 3958567839: (ID, a) => new IFC2X3.IfcProfileDef(ID, a[0], a[1]), 2802850158: (ID, a) => new IFC2X3.IfcProfileProperties(ID, a[0], a[1]), 2598011224: (ID, a) => new IFC2X3.IfcProperty(ID, a[0], a[1]), 3896028662: (ID, a) => new IFC2X3.IfcPropertyConstraintRelationship(ID, a[0], a[1], a[2], a[3]), 148025276: (ID, a) => new IFC2X3.IfcPropertyDependencyRelationship(ID, a[0], a[1], a[2], a[3], a[4]), 3710013099: (ID, a) => new IFC2X3.IfcPropertyEnumeration(ID, a[0], a[1], a[2]), 2044713172: (ID, a) => new IFC2X3.IfcQuantityArea(ID, a[0], a[1], a[2], a[3]), 2093928680: (ID, a) => new IFC2X3.IfcQuantityCount(ID, a[0], a[1], a[2], a[3]), 931644368: (ID, a) => new IFC2X3.IfcQuantityLength(ID, a[0], a[1], a[2], a[3]), 3252649465: (ID, a) => new IFC2X3.IfcQuantityTime(ID, a[0], a[1], a[2], a[3]), 2405470396: (ID, a) => new IFC2X3.IfcQuantityVolume(ID, a[0], a[1], a[2], a[3]), 825690147: (ID, a) => new IFC2X3.IfcQuantityWeight(ID, a[0], a[1], a[2], a[3]), 2692823254: (ID, a) => new IFC2X3.IfcReferencesValueDocument(ID, a[0], a[1], a[2], a[3]), 1580146022: (ID, a) => new IFC2X3.IfcReinforcementBarProperties(ID, a[0], a[1], a[2], a[3], a[4], a[5]), 1222501353: (ID, a) => new IFC2X3.IfcRelaxation(ID, a[0], a[1]), 1076942058: (ID, a) => new IFC2X3.IfcRepresentation(ID, a[0], a[1], a[2], a[3]), 3377609919: (ID, a) => new IFC2X3.IfcRepresentationContext(ID, a[0], a[1]), 3008791417: (ID, _) => new IFC2X3.IfcRepresentationItem(ID), 1660063152: (ID, a) => new IFC2X3.IfcRepresentationMap(ID, a[0], a[1]), 3679540991: (ID, a) => new IFC2X3.IfcRibPlateProfileProperties(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]), 2341007311: (ID, a) => new IFC2X3.IfcRoot(ID, a[0], a[1], a[2], a[3]), 448429030: (ID, a) => new IFC2X3.IfcSIUnit(ID, a[0], a[1], a[2]), 2042790032: (ID, a) => new IFC2X3.IfcSectionProperties(ID, a[0], a[1], a[2]), 4165799628: (ID, a) => new IFC2X3.IfcSectionReinforcementProperties(ID, a[0], a[1], a[2], a[3], a[4], a[5]), 867548509: (ID, a) => new IFC2X3.IfcShapeAspect(ID, a[0], a[1], a[2], a[3], a[4]), 3982875396: (ID, a) => new IFC2X3.IfcShapeModel(ID, a[0], a[1], a[2], a[3]), 4240577450: (ID, a) => new IFC2X3.IfcShapeRepresentation(ID, a[0], a[1], a[2], a[3]), 3692461612: (ID, a) => new IFC2X3.IfcSimpleProperty(ID, a[0], a[1]), 2273995522: (ID, a) => new IFC2X3.IfcStructuralConnectionCondition(ID, a[0]), 2162789131: (ID, a) => new IFC2X3.IfcStructuralLoad(ID, a[0]), 2525727697: (ID, a) => new IFC2X3.IfcStructuralLoadStatic(ID, a[0]), 3408363356: (ID, a) => new IFC2X3.IfcStructuralLoadTemperature(ID, a[0], a[1], a[2], a[3]), 2830218821: (ID, a) => new IFC2X3.IfcStyleModel(ID, a[0], a[1], a[2], a[3]), 3958052878: (ID, a) => new IFC2X3.IfcStyledItem(ID, a[0], a[1], a[2]), 3049322572: (ID, a) => new IFC2X3.IfcStyledRepresentation(ID, a[0], a[1], a[2], a[3]), 1300840506: (ID, a) => new IFC2X3.IfcSurfaceStyle(ID, a[0], a[1], a[2]), 3303107099: (ID, a) => new IFC2X3.IfcSurfaceStyleLighting(ID, a[0], a[1], a[2], a[3]), 1607154358: (ID, a) => new IFC2X3.IfcSurfaceStyleRefraction(ID, a[0], a[1]), 846575682: (ID, a) => new IFC2X3.IfcSurfaceStyleShading(ID, a[0]), 1351298697: (ID, a) => new IFC2X3.IfcSurfaceStyleWithTextures(ID, a[0]), 626085974: (ID, a) => new IFC2X3.IfcSurfaceTexture(ID, a[0], a[1], a[2], a[3]), 1290481447: (ID, a) => new IFC2X3.IfcSymbolStyle(ID, a[0], a[1]), 985171141: (ID, a) => new IFC2X3.IfcTable(ID, a[0], a[1]), 531007025: (ID, a) => new IFC2X3.IfcTableRow(ID, a[0], a[1]), 912023232: (ID, a) => new IFC2X3.IfcTelecomAddress(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), 1447204868: (ID, a) => new IFC2X3.IfcTextStyle(ID, a[0], a[1], a[2], a[3]), 1983826977: (ID, a) => new IFC2X3.IfcTextStyleFontModel(ID, a[0], a[1], a[2], a[3], a[4], a[5]), 2636378356: (ID, a) => new IFC2X3.IfcTextStyleForDefinedFont(ID, a[0], a[1]), 1640371178: (ID, a) => new IFC2X3.IfcTextStyleTextModel(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]), 1484833681: (ID, a) => new IFC2X3.IfcTextStyleWithBoxCharacteristics(ID, a[0], a[1], a[2], a[3], a[4]), 280115917: (ID, _) => new IFC2X3.IfcTextureCoordinate(ID), 1742049831: (ID, a) => new IFC2X3.IfcTextureCoordinateGenerator(ID, a[0], a[1]), 2552916305: (ID, a) => new IFC2X3.IfcTextureMap(ID, a[0]), 1210645708: (ID, a) => new IFC2X3.IfcTextureVertex(ID, a[0]), 3317419933: (ID, a) => new IFC2X3.IfcThermalMaterialProperties(ID, a[0], a[1], a[2], a[3], a[4]), 3101149627: (ID, a) => new IFC2X3.IfcTimeSeries(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), 1718945513: (ID, a) => new IFC2X3.IfcTimeSeriesReferenceRelationship(ID, a[0], a[1]), 581633288: (ID, a) => new IFC2X3.IfcTimeSeriesValue(ID, a[0]), 1377556343: (ID, _) => new IFC2X3.IfcTopologicalRepresentationItem(ID), 1735638870: (ID, a) => new IFC2X3.IfcTopologyRepresentation(ID, a[0], a[1], a[2], a[3]), 180925521: (ID, a) => new IFC2X3.IfcUnitAssignment(ID, a[0]), 2799835756: (ID, _) => new IFC2X3.IfcVertex(ID), 3304826586: (ID, a) => new IFC2X3.IfcVertexBasedTextureMap(ID, a[0], a[1]), 1907098498: (ID, a) => new IFC2X3.IfcVertexPoint(ID, a[0]), 891718957: (ID, a) => new IFC2X3.IfcVirtualGridIntersection(ID, a[0], a[1]), 1065908215: (ID, a) => new IFC2X3.IfcWaterProperties(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), 2442683028: (ID, a) => new IFC2X3.IfcAnnotationOccurrence(ID, a[0], a[1], a[2]), 962685235: (ID, a) => new IFC2X3.IfcAnnotationSurfaceOccurrence(ID, a[0], a[1], a[2]), 3612888222: (ID, a) => new IFC2X3.IfcAnnotationSymbolOccurrence(ID, a[0], a[1], a[2]), 2297822566: (ID, a) => new IFC2X3.IfcAnnotationTextOccurrence(ID, a[0], a[1], a[2]), 3798115385: (ID, a) => new IFC2X3.IfcArbitraryClosedProfileDef(ID, a[0], a[1], a[2]), 1310608509: (ID, a) => new IFC2X3.IfcArbitraryOpenProfileDef(ID, a[0], a[1], a[2]), 2705031697: (ID, a) => new IFC2X3.IfcArbitraryProfileDefWithVoids(ID, a[0], a[1], a[2], a[3]), 616511568: (ID, a) => new IFC2X3.IfcBlobTexture(ID, a[0], a[1], a[2], a[3], a[4], a[5]), 3150382593: (ID, a) => new IFC2X3.IfcCenterLineProfileDef(ID, a[0], a[1], a[2], a[3]), 647927063: (ID, a) => new IFC2X3.IfcClassificationReference(ID, a[0], a[1], a[2], a[3]), 776857604: (ID, a) => new IFC2X3.IfcColourRgb(ID, a[0], a[1], a[2], a[3]), 2542286263: (ID, a) => new IFC2X3.IfcComplexProperty(ID, a[0], a[1], a[2], a[3]), 1485152156: (ID, a) => new IFC2X3.IfcCompositeProfileDef(ID, a[0], a[1], a[2], a[3]), 370225590: (ID, a) => new IFC2X3.IfcConnectedFaceSet(ID, a[0]), 1981873012: (ID, a) => new IFC2X3.IfcConnectionCurveGeometry(ID, a[0], a[1]), 45288368: (ID, a) => new IFC2X3.IfcConnectionPointEccentricity(ID, a[0], a[1], a[2], a[3], a[4]), 3050246964: (ID, a) => new IFC2X3.IfcContextDependentUnit(ID, a[0], a[1], a[2]), 2889183280: (ID, a) => new IFC2X3.IfcConversionBasedUnit(ID, a[0], a[1], a[2], a[3]), 3800577675: (ID, a) => new IFC2X3.IfcCurveStyle(ID, a[0], a[1], a[2], a[3]), 3632507154: (ID, a) => new IFC2X3.IfcDerivedProfileDef(ID, a[0], a[1], a[2], a[3], a[4]), 2273265877: (ID, a) => new IFC2X3.IfcDimensionCalloutRelationship(ID, a[0], a[1], a[2], a[3]), 1694125774: (ID, a) => new IFC2X3.IfcDimensionPair(ID, a[0], a[1], a[2], a[3]), 3732053477: (ID, a) => new IFC2X3.IfcDocumentReference(ID, a[0], a[1], a[2]), 4170525392: (ID, a) => new IFC2X3.IfcDraughtingPreDefinedTextFont(ID, a[0]), 3900360178: (ID, a) => new IFC2X3.IfcEdge(ID, a[0], a[1]), 476780140: (ID, a) => new IFC2X3.IfcEdgeCurve(ID, a[0], a[1], a[2], a[3]), 1860660968: (ID, a) => new IFC2X3.IfcExtendedMaterialProperties(ID, a[0], a[1], a[2], a[3]), 2556980723: (ID, a) => new IFC2X3.IfcFace(ID, a[0]), 1809719519: (ID, a) => new IFC2X3.IfcFaceBound(ID, a[0], a[1]), 803316827: (ID, a) => new IFC2X3.IfcFaceOuterBound(ID, a[0], a[1]), 3008276851: (ID, a) => new IFC2X3.IfcFaceSurface(ID, a[0], a[1], a[2]), 4219587988: (ID, a) => new IFC2X3.IfcFailureConnectionCondition(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]), 738692330: (ID, a) => new IFC2X3.IfcFillAreaStyle(ID, a[0], a[1]), 3857492461: (ID, a) => new IFC2X3.IfcFuelProperties(ID, a[0], a[1], a[2], a[3], a[4]), 803998398: (ID, a) => new IFC2X3.IfcGeneralMaterialProperties(ID, a[0], a[1], a[2], a[3]), 1446786286: (ID, a) => new IFC2X3.IfcGeneralProfileProperties(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]), 3448662350: (ID, a) => new IFC2X3.IfcGeometricRepresentationContext(ID, a[0], a[1], a[2], a[3], a[4], a[5]), 2453401579: (ID, _) => new IFC2X3.IfcGeometricRepresentationItem(ID), 4142052618: (ID, a) => new IFC2X3.IfcGeometricRepresentationSubContext(ID, a[0], a[1], a[2], a[3], a[4], a[5]), 3590301190: (ID, a) => new IFC2X3.IfcGeometricSet(ID, a[0]), 178086475: (ID, a) => new IFC2X3.IfcGridPlacement(ID, a[0], a[1]), 812098782: (ID, a) => new IFC2X3.IfcHalfSpaceSolid(ID, a[0], a[1]), 2445078500: (ID, a) => new IFC2X3.IfcHygroscopicMaterialProperties(ID, a[0], a[1], a[2], a[3], a[4], a[5]), 3905492369: (ID, a) => new IFC2X3.IfcImageTexture(ID, a[0], a[1], a[2], a[3], a[4]), 3741457305: (ID, a) => new IFC2X3.IfcIrregularTimeSeries(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 1402838566: (ID, a) => new IFC2X3.IfcLightSource(ID, a[0], a[1], a[2], a[3]), 125510826: (ID, a) => new IFC2X3.IfcLightSourceAmbient(ID, a[0], a[1], a[2], a[3]), 2604431987: (ID, a) => new IFC2X3.IfcLightSourceDirectional(ID, a[0], a[1], a[2], a[3], a[4]), 4266656042: (ID, a) => new IFC2X3.IfcLightSourceGoniometric(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 1520743889: (ID, a) => new IFC2X3.IfcLightSourcePositional(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 3422422726: (ID, a) => new IFC2X3.IfcLightSourceSpot(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12]), 2624227202: (ID, a) => new IFC2X3.IfcLocalPlacement(ID, a[0], a[1]), 1008929658: (ID, _) => new IFC2X3.IfcLoop(ID), 2347385850: (ID, a) => new IFC2X3.IfcMappedItem(ID, a[0], a[1]), 2022407955: (ID, a) => new IFC2X3.IfcMaterialDefinitionRepresentation(ID, a[0], a[1], a[2], a[3]), 1430189142: (ID, a) => new IFC2X3.IfcMechanicalConcreteMaterialProperties(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]), 219451334: (ID, a) => new IFC2X3.IfcObjectDefinition(ID, a[0], a[1], a[2], a[3]), 2833995503: (ID, a) => new IFC2X3.IfcOneDirectionRepeatFactor(ID, a[0]), 2665983363: (ID, a) => new IFC2X3.IfcOpenShell(ID, a[0]), 1029017970: (ID, a) => new IFC2X3.IfcOrientedEdge(ID, a[0], a[1]), 2529465313: (ID, a) => new IFC2X3.IfcParameterizedProfileDef(ID, a[0], a[1], a[2]), 2519244187: (ID, a) => new IFC2X3.IfcPath(ID, a[0]), 3021840470: (ID, a) => new IFC2X3.IfcPhysicalComplexQuantity(ID, a[0], a[1], a[2], a[3], a[4], a[5]), 597895409: (ID, a) => new IFC2X3.IfcPixelTexture(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), 2004835150: (ID, a) => new IFC2X3.IfcPlacement(ID, a[0]), 1663979128: (ID, a) => new IFC2X3.IfcPlanarExtent(ID, a[0], a[1]), 2067069095: (ID, _) => new IFC2X3.IfcPoint(ID), 4022376103: (ID, a) => new IFC2X3.IfcPointOnCurve(ID, a[0], a[1]), 1423911732: (ID, a) => new IFC2X3.IfcPointOnSurface(ID, a[0], a[1], a[2]), 2924175390: (ID, a) => new IFC2X3.IfcPolyLoop(ID, a[0]), 2775532180: (ID, a) => new IFC2X3.IfcPolygonalBoundedHalfSpace(ID, a[0], a[1], a[2], a[3]), 759155922: (ID, a) => new IFC2X3.IfcPreDefinedColour(ID, a[0]), 2559016684: (ID, a) => new IFC2X3.IfcPreDefinedCurveFont(ID, a[0]), 433424934: (ID, a) => new IFC2X3.IfcPreDefinedDimensionSymbol(ID, a[0]), 179317114: (ID, a) => new IFC2X3.IfcPreDefinedPointMarkerSymbol(ID, a[0]), 673634403: (ID, a) => new IFC2X3.IfcProductDefinitionShape(ID, a[0], a[1], a[2]), 871118103: (ID, a) => new IFC2X3.IfcPropertyBoundedValue(ID, a[0], a[1], a[2], a[3], a[4]), 1680319473: (ID, a) => new IFC2X3.IfcPropertyDefinition(ID, a[0], a[1], a[2], a[3]), 4166981789: (ID, a) => new IFC2X3.IfcPropertyEnumeratedValue(ID, a[0], a[1], a[2], a[3]), 2752243245: (ID, a) => new IFC2X3.IfcPropertyListValue(ID, a[0], a[1], a[2], a[3]), 941946838: (ID, a) => new IFC2X3.IfcPropertyReferenceValue(ID, a[0], a[1], a[2], a[3]), 3357820518: (ID, a) => new IFC2X3.IfcPropertySetDefinition(ID, a[0], a[1], a[2], a[3]), 3650150729: (ID, a) => new IFC2X3.IfcPropertySingleValue(ID, a[0], a[1], a[2], a[3]), 110355661: (ID, a) => new IFC2X3.IfcPropertyTableValue(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]), 3615266464: (ID, a) => new IFC2X3.IfcRectangleProfileDef(ID, a[0], a[1], a[2], a[3], a[4]), 3413951693: (ID, a) => new IFC2X3.IfcRegularTimeSeries(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 3765753017: (ID, a) => new IFC2X3.IfcReinforcementDefinitionProperties(ID, a[0], a[1], a[2], a[3], a[4], a[5]), 478536968: (ID, a) => new IFC2X3.IfcRelationship(ID, a[0], a[1], a[2], a[3]), 2778083089: (ID, a) => new IFC2X3.IfcRoundedRectangleProfileDef(ID, a[0], a[1], a[2], a[3], a[4], a[5]), 1509187699: (ID, a) => new IFC2X3.IfcSectionedSpine(ID, a[0], a[1], a[2]), 2411513650: (ID, a) => new IFC2X3.IfcServiceLifeFactor(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), 4124623270: (ID, a) => new IFC2X3.IfcShellBasedSurfaceModel(ID, a[0]), 2609359061: (ID, a) => new IFC2X3.IfcSlippageConnectionCondition(ID, a[0], a[1], a[2], a[3]), 723233188: (ID, _) => new IFC2X3.IfcSolidModel(ID), 2485662743: (ID, a) => new IFC2X3.IfcSoundProperties(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]), 1202362311: (ID, a) => new IFC2X3.IfcSoundValue(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]), 390701378: (ID, a) => new IFC2X3.IfcSpaceThermalLoadProperties(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13]), 1595516126: (ID, a) => new IFC2X3.IfcStructuralLoadLinearForce(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]), 2668620305: (ID, a) => new IFC2X3.IfcStructuralLoadPlanarForce(ID, a[0], a[1], a[2], a[3]), 2473145415: (ID, a) => new IFC2X3.IfcStructuralLoadSingleDisplacement(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]), 1973038258: (ID, a) => new IFC2X3.IfcStructuralLoadSingleDisplacementDistortion(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), 1597423693: (ID, a) => new IFC2X3.IfcStructuralLoadSingleForce(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]), 1190533807: (ID, a) => new IFC2X3.IfcStructuralLoadSingleForceWarping(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), 3843319758: (ID, a) => new IFC2X3.IfcStructuralProfileProperties(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14], a[15], a[16], a[17], a[18], a[19], a[20], a[21], a[22]), 3653947884: (ID, a) => new IFC2X3.IfcStructuralSteelProfileProperties(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14], a[15], a[16], a[17], a[18], a[19], a[20], a[21], a[22], a[23], a[24], a[25], a[26]), 2233826070: (ID, a) => new IFC2X3.IfcSubedge(ID, a[0], a[1], a[2]), 2513912981: (ID, _) => new IFC2X3.IfcSurface(ID), 1878645084: (ID, a) => new IFC2X3.IfcSurfaceStyleRendering(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 2247615214: (ID, a) => new IFC2X3.IfcSweptAreaSolid(ID, a[0], a[1]), 1260650574: (ID, a) => new IFC2X3.IfcSweptDiskSolid(ID, a[0], a[1], a[2], a[3], a[4]), 230924584: (ID, a) => new IFC2X3.IfcSweptSurface(ID, a[0], a[1]), 3071757647: (ID, a) => new IFC2X3.IfcTShapeProfileDef(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12]), 3028897424: (ID, a) => new IFC2X3.IfcTerminatorSymbol(ID, a[0], a[1], a[2], a[3]), 4282788508: (ID, a) => new IFC2X3.IfcTextLiteral(ID, a[0], a[1], a[2]), 3124975700: (ID, a) => new IFC2X3.IfcTextLiteralWithExtent(ID, a[0], a[1], a[2], a[3], a[4]), 2715220739: (ID, a) => new IFC2X3.IfcTrapeziumProfileDef(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]), 1345879162: (ID, a) => new IFC2X3.IfcTwoDirectionRepeatFactor(ID, a[0], a[1]), 1628702193: (ID, a) => new IFC2X3.IfcTypeObject(ID, a[0], a[1], a[2], a[3], a[4], a[5]), 2347495698: (ID, a) => new IFC2X3.IfcTypeProduct(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), 427810014: (ID, a) => new IFC2X3.IfcUShapeProfileDef(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]), 1417489154: (ID, a) => new IFC2X3.IfcVector(ID, a[0], a[1]), 2759199220: (ID, a) => new IFC2X3.IfcVertexLoop(ID, a[0]), 336235671: (ID, a) => new IFC2X3.IfcWindowLiningProperties(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12]), 512836454: (ID, a) => new IFC2X3.IfcWindowPanelProperties(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 1299126871: (ID, a) => new IFC2X3.IfcWindowStyle(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]), 2543172580: (ID, a) => new IFC2X3.IfcZShapeProfileDef(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 3288037868: (ID, a) => new IFC2X3.IfcAnnotationCurveOccurrence(ID, a[0], a[1], a[2]), 669184980: (ID, a) => new IFC2X3.IfcAnnotationFillArea(ID, a[0], a[1]), 2265737646: (ID, a) => new IFC2X3.IfcAnnotationFillAreaOccurrence(ID, a[0], a[1], a[2], a[3], a[4]), 1302238472: (ID, a) => new IFC2X3.IfcAnnotationSurface(ID, a[0], a[1]), 4261334040: (ID, a) => new IFC2X3.IfcAxis1Placement(ID, a[0], a[1]), 3125803723: (ID, a) => new IFC2X3.IfcAxis2Placement2D(ID, a[0], a[1]), 2740243338: (ID, a) => new IFC2X3.IfcAxis2Placement3D(ID, a[0], a[1], a[2]), 2736907675: (ID, a) => new IFC2X3.IfcBooleanResult(ID, a[0], a[1], a[2]), 4182860854: (ID, _) => new IFC2X3.IfcBoundedSurface(ID), 2581212453: (ID, a) => new IFC2X3.IfcBoundingBox(ID, a[0], a[1], a[2], a[3]), 2713105998: (ID, a) => new IFC2X3.IfcBoxedHalfSpace(ID, a[0], a[1], a[2]), 2898889636: (ID, a) => new IFC2X3.IfcCShapeProfileDef(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 1123145078: (ID, a) => new IFC2X3.IfcCartesianPoint(ID, a[0]), 59481748: (ID, a) => new IFC2X3.IfcCartesianTransformationOperator(ID, a[0], a[1], a[2], a[3]), 3749851601: (ID, a) => new IFC2X3.IfcCartesianTransformationOperator2D(ID, a[0], a[1], a[2], a[3]), 3486308946: (ID, a) => new IFC2X3.IfcCartesianTransformationOperator2DnonUniform(ID, a[0], a[1], a[2], a[3], a[4]), 3331915920: (ID, a) => new IFC2X3.IfcCartesianTransformationOperator3D(ID, a[0], a[1], a[2], a[3], a[4]), 1416205885: (ID, a) => new IFC2X3.IfcCartesianTransformationOperator3DnonUniform(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]), 1383045692: (ID, a) => new IFC2X3.IfcCircleProfileDef(ID, a[0], a[1], a[2], a[3]), 2205249479: (ID, a) => new IFC2X3.IfcClosedShell(ID, a[0]), 2485617015: (ID, a) => new IFC2X3.IfcCompositeCurveSegment(ID, a[0], a[1], a[2]), 4133800736: (ID, a) => new IFC2X3.IfcCraneRailAShapeProfileDef(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14]), 194851669: (ID, a) => new IFC2X3.IfcCraneRailFShapeProfileDef(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]), 2506170314: (ID, a) => new IFC2X3.IfcCsgPrimitive3D(ID, a[0]), 2147822146: (ID, a) => new IFC2X3.IfcCsgSolid(ID, a[0]), 2601014836: (ID, _) => new IFC2X3.IfcCurve(ID), 2827736869: (ID, a) => new IFC2X3.IfcCurveBoundedPlane(ID, a[0], a[1], a[2]), 693772133: (ID, a) => new IFC2X3.IfcDefinedSymbol(ID, a[0], a[1]), 606661476: (ID, a) => new IFC2X3.IfcDimensionCurve(ID, a[0], a[1], a[2]), 4054601972: (ID, a) => new IFC2X3.IfcDimensionCurveTerminator(ID, a[0], a[1], a[2], a[3], a[4]), 32440307: (ID, a) => new IFC2X3.IfcDirection(ID, a[0]), 2963535650: (ID, a) => new IFC2X3.IfcDoorLiningProperties(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14]), 1714330368: (ID, a) => new IFC2X3.IfcDoorPanelProperties(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 526551008: (ID, a) => new IFC2X3.IfcDoorStyle(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]), 3073041342: (ID, a) => new IFC2X3.IfcDraughtingCallout(ID, a[0]), 445594917: (ID, a) => new IFC2X3.IfcDraughtingPreDefinedColour(ID, a[0]), 4006246654: (ID, a) => new IFC2X3.IfcDraughtingPreDefinedCurveFont(ID, a[0]), 1472233963: (ID, a) => new IFC2X3.IfcEdgeLoop(ID, a[0]), 1883228015: (ID, a) => new IFC2X3.IfcElementQuantity(ID, a[0], a[1], a[2], a[3], a[4], a[5]), 339256511: (ID, a) => new IFC2X3.IfcElementType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 2777663545: (ID, a) => new IFC2X3.IfcElementarySurface(ID, a[0]), 2835456948: (ID, a) => new IFC2X3.IfcEllipseProfileDef(ID, a[0], a[1], a[2], a[3], a[4]), 80994333: (ID, a) => new IFC2X3.IfcEnergyProperties(ID, a[0], a[1], a[2], a[3], a[4], a[5]), 477187591: (ID, a) => new IFC2X3.IfcExtrudedAreaSolid(ID, a[0], a[1], a[2], a[3]), 2047409740: (ID, a) => new IFC2X3.IfcFaceBasedSurfaceModel(ID, a[0]), 374418227: (ID, a) => new IFC2X3.IfcFillAreaStyleHatching(ID, a[0], a[1], a[2], a[3], a[4]), 4203026998: (ID, a) => new IFC2X3.IfcFillAreaStyleTileSymbolWithStyle(ID, a[0]), 315944413: (ID, a) => new IFC2X3.IfcFillAreaStyleTiles(ID, a[0], a[1], a[2]), 3455213021: (ID, a) => new IFC2X3.IfcFluidFlowProperties(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14], a[15], a[16], a[17], a[18]), 4238390223: (ID, a) => new IFC2X3.IfcFurnishingElementType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 1268542332: (ID, a) => new IFC2X3.IfcFurnitureType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 987898635: (ID, a) => new IFC2X3.IfcGeometricCurveSet(ID, a[0]), 1484403080: (ID, a) => new IFC2X3.IfcIShapeProfileDef(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), 572779678: (ID, a) => new IFC2X3.IfcLShapeProfileDef(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]), 1281925730: (ID, a) => new IFC2X3.IfcLine(ID, a[0], a[1]), 1425443689: (ID, a) => new IFC2X3.IfcManifoldSolidBrep(ID, a[0]), 3888040117: (ID, a) => new IFC2X3.IfcObject(ID, a[0], a[1], a[2], a[3], a[4]), 3388369263: (ID, a) => new IFC2X3.IfcOffsetCurve2D(ID, a[0], a[1], a[2]), 3505215534: (ID, a) => new IFC2X3.IfcOffsetCurve3D(ID, a[0], a[1], a[2], a[3]), 3566463478: (ID, a) => new IFC2X3.IfcPermeableCoveringProperties(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 603570806: (ID, a) => new IFC2X3.IfcPlanarBox(ID, a[0], a[1], a[2]), 220341763: (ID, a) => new IFC2X3.IfcPlane(ID, a[0]), 2945172077: (ID, a) => new IFC2X3.IfcProcess(ID, a[0], a[1], a[2], a[3], a[4]), 4208778838: (ID, a) => new IFC2X3.IfcProduct(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]), 103090709: (ID, a) => new IFC2X3.IfcProject(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 4194566429: (ID, a) => new IFC2X3.IfcProjectionCurve(ID, a[0], a[1], a[2]), 1451395588: (ID, a) => new IFC2X3.IfcPropertySet(ID, a[0], a[1], a[2], a[3], a[4]), 3219374653: (ID, a) => new IFC2X3.IfcProxy(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 2770003689: (ID, a) => new IFC2X3.IfcRectangleHollowProfileDef(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), 2798486643: (ID, a) => new IFC2X3.IfcRectangularPyramid(ID, a[0], a[1], a[2], a[3]), 3454111270: (ID, a) => new IFC2X3.IfcRectangularTrimmedSurface(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]), 3939117080: (ID, a) => new IFC2X3.IfcRelAssigns(ID, a[0], a[1], a[2], a[3], a[4], a[5]), 1683148259: (ID, a) => new IFC2X3.IfcRelAssignsToActor(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), 2495723537: (ID, a) => new IFC2X3.IfcRelAssignsToControl(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]), 1307041759: (ID, a) => new IFC2X3.IfcRelAssignsToGroup(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]), 4278684876: (ID, a) => new IFC2X3.IfcRelAssignsToProcess(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), 2857406711: (ID, a) => new IFC2X3.IfcRelAssignsToProduct(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]), 3372526763: (ID, a) => new IFC2X3.IfcRelAssignsToProjectOrder(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]), 205026976: (ID, a) => new IFC2X3.IfcRelAssignsToResource(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]), 1865459582: (ID, a) => new IFC2X3.IfcRelAssociates(ID, a[0], a[1], a[2], a[3], a[4]), 1327628568: (ID, a) => new IFC2X3.IfcRelAssociatesAppliedValue(ID, a[0], a[1], a[2], a[3], a[4], a[5]), 4095574036: (ID, a) => new IFC2X3.IfcRelAssociatesApproval(ID, a[0], a[1], a[2], a[3], a[4], a[5]), 919958153: (ID, a) => new IFC2X3.IfcRelAssociatesClassification(ID, a[0], a[1], a[2], a[3], a[4], a[5]), 2728634034: (ID, a) => new IFC2X3.IfcRelAssociatesConstraint(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]), 982818633: (ID, a) => new IFC2X3.IfcRelAssociatesDocument(ID, a[0], a[1], a[2], a[3], a[4], a[5]), 3840914261: (ID, a) => new IFC2X3.IfcRelAssociatesLibrary(ID, a[0], a[1], a[2], a[3], a[4], a[5]), 2655215786: (ID, a) => new IFC2X3.IfcRelAssociatesMaterial(ID, a[0], a[1], a[2], a[3], a[4], a[5]), 2851387026: (ID, a) => new IFC2X3.IfcRelAssociatesProfileProperties(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), 826625072: (ID, a) => new IFC2X3.IfcRelConnects(ID, a[0], a[1], a[2], a[3]), 1204542856: (ID, a) => new IFC2X3.IfcRelConnectsElements(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]), 3945020480: (ID, a) => new IFC2X3.IfcRelConnectsPathElements(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]), 4201705270: (ID, a) => new IFC2X3.IfcRelConnectsPortToElement(ID, a[0], a[1], a[2], a[3], a[4], a[5]), 3190031847: (ID, a) => new IFC2X3.IfcRelConnectsPorts(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]), 2127690289: (ID, a) => new IFC2X3.IfcRelConnectsStructuralActivity(ID, a[0], a[1], a[2], a[3], a[4], a[5]), 3912681535: (ID, a) => new IFC2X3.IfcRelConnectsStructuralElement(ID, a[0], a[1], a[2], a[3], a[4], a[5]), 1638771189: (ID, a) => new IFC2X3.IfcRelConnectsStructuralMember(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 504942748: (ID, a) => new IFC2X3.IfcRelConnectsWithEccentricity(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]), 3678494232: (ID, a) => new IFC2X3.IfcRelConnectsWithRealizingElements(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 3242617779: (ID, a) => new IFC2X3.IfcRelContainedInSpatialStructure(ID, a[0], a[1], a[2], a[3], a[4], a[5]), 886880790: (ID, a) => new IFC2X3.IfcRelCoversBldgElements(ID, a[0], a[1], a[2], a[3], a[4], a[5]), 2802773753: (ID, a) => new IFC2X3.IfcRelCoversSpaces(ID, a[0], a[1], a[2], a[3], a[4], a[5]), 2551354335: (ID, a) => new IFC2X3.IfcRelDecomposes(ID, a[0], a[1], a[2], a[3], a[4], a[5]), 693640335: (ID, a) => new IFC2X3.IfcRelDefines(ID, a[0], a[1], a[2], a[3], a[4]), 4186316022: (ID, a) => new IFC2X3.IfcRelDefinesByProperties(ID, a[0], a[1], a[2], a[3], a[4], a[5]), 781010003: (ID, a) => new IFC2X3.IfcRelDefinesByType(ID, a[0], a[1], a[2], a[3], a[4], a[5]), 3940055652: (ID, a) => new IFC2X3.IfcRelFillsElement(ID, a[0], a[1], a[2], a[3], a[4], a[5]), 279856033: (ID, a) => new IFC2X3.IfcRelFlowControlElements(ID, a[0], a[1], a[2], a[3], a[4], a[5]), 4189434867: (ID, a) => new IFC2X3.IfcRelInteractionRequirements(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 3268803585: (ID, a) => new IFC2X3.IfcRelNests(ID, a[0], a[1], a[2], a[3], a[4], a[5]), 2051452291: (ID, a) => new IFC2X3.IfcRelOccupiesSpaces(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), 202636808: (ID, a) => new IFC2X3.IfcRelOverridesProperties(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]), 750771296: (ID, a) => new IFC2X3.IfcRelProjectsElement(ID, a[0], a[1], a[2], a[3], a[4], a[5]), 1245217292: (ID, a) => new IFC2X3.IfcRelReferencedInSpatialStructure(ID, a[0], a[1], a[2], a[3], a[4], a[5]), 1058617721: (ID, a) => new IFC2X3.IfcRelSchedulesCostItems(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]), 4122056220: (ID, a) => new IFC2X3.IfcRelSequence(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), 366585022: (ID, a) => new IFC2X3.IfcRelServicesBuildings(ID, a[0], a[1], a[2], a[3], a[4], a[5]), 3451746338: (ID, a) => new IFC2X3.IfcRelSpaceBoundary(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 1401173127: (ID, a) => new IFC2X3.IfcRelVoidsElement(ID, a[0], a[1], a[2], a[3], a[4], a[5]), 2914609552: (ID, a) => new IFC2X3.IfcResource(ID, a[0], a[1], a[2], a[3], a[4]), 1856042241: (ID, a) => new IFC2X3.IfcRevolvedAreaSolid(ID, a[0], a[1], a[2], a[3]), 4158566097: (ID, a) => new IFC2X3.IfcRightCircularCone(ID, a[0], a[1], a[2]), 3626867408: (ID, a) => new IFC2X3.IfcRightCircularCylinder(ID, a[0], a[1], a[2]), 2706606064: (ID, a) => new IFC2X3.IfcSpatialStructureElement(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 3893378262: (ID, a) => new IFC2X3.IfcSpatialStructureElementType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 451544542: (ID, a) => new IFC2X3.IfcSphere(ID, a[0], a[1]), 3544373492: (ID, a) => new IFC2X3.IfcStructuralActivity(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 3136571912: (ID, a) => new IFC2X3.IfcStructuralItem(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]), 530289379: (ID, a) => new IFC2X3.IfcStructuralMember(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]), 3689010777: (ID, a) => new IFC2X3.IfcStructuralReaction(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 3979015343: (ID, a) => new IFC2X3.IfcStructuralSurfaceMember(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 2218152070: (ID, a) => new IFC2X3.IfcStructuralSurfaceMemberVarying(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]), 4070609034: (ID, a) => new IFC2X3.IfcStructuredDimensionCallout(ID, a[0]), 2028607225: (ID, a) => new IFC2X3.IfcSurfaceCurveSweptAreaSolid(ID, a[0], a[1], a[2], a[3], a[4], a[5]), 2809605785: (ID, a) => new IFC2X3.IfcSurfaceOfLinearExtrusion(ID, a[0], a[1], a[2], a[3]), 4124788165: (ID, a) => new IFC2X3.IfcSurfaceOfRevolution(ID, a[0], a[1], a[2]), 1580310250: (ID, a) => new IFC2X3.IfcSystemFurnitureElementType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 3473067441: (ID, a) => new IFC2X3.IfcTask(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 2097647324: (ID, a) => new IFC2X3.IfcTransportElementType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 2296667514: (ID, a) => new IFC2X3.IfcActor(ID, a[0], a[1], a[2], a[3], a[4], a[5]), 1674181508: (ID, a) => new IFC2X3.IfcAnnotation(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]), 3207858831: (ID, a) => new IFC2X3.IfcAsymmetricIShapeProfileDef(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]), 1334484129: (ID, a) => new IFC2X3.IfcBlock(ID, a[0], a[1], a[2], a[3]), 3649129432: (ID, a) => new IFC2X3.IfcBooleanClippingResult(ID, a[0], a[1], a[2]), 1260505505: (ID, _) => new IFC2X3.IfcBoundedCurve(ID), 4031249490: (ID, a) => new IFC2X3.IfcBuilding(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]), 1950629157: (ID, a) => new IFC2X3.IfcBuildingElementType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 3124254112: (ID, a) => new IFC2X3.IfcBuildingStorey(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 2937912522: (ID, a) => new IFC2X3.IfcCircleHollowProfileDef(ID, a[0], a[1], a[2], a[3], a[4]), 300633059: (ID, a) => new IFC2X3.IfcColumnType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 3732776249: (ID, a) => new IFC2X3.IfcCompositeCurve(ID, a[0], a[1]), 2510884976: (ID, a) => new IFC2X3.IfcConic(ID, a[0]), 2559216714: (ID, a) => new IFC2X3.IfcConstructionResource(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 3293443760: (ID, a) => new IFC2X3.IfcControl(ID, a[0], a[1], a[2], a[3], a[4]), 3895139033: (ID, a) => new IFC2X3.IfcCostItem(ID, a[0], a[1], a[2], a[3], a[4]), 1419761937: (ID, a) => new IFC2X3.IfcCostSchedule(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12]), 1916426348: (ID, a) => new IFC2X3.IfcCoveringType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 3295246426: (ID, a) => new IFC2X3.IfcCrewResource(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 1457835157: (ID, a) => new IFC2X3.IfcCurtainWallType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 681481545: (ID, a) => new IFC2X3.IfcDimensionCurveDirectedCallout(ID, a[0]), 3256556792: (ID, a) => new IFC2X3.IfcDistributionElementType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 3849074793: (ID, a) => new IFC2X3.IfcDistributionFlowElementType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 360485395: (ID, a) => new IFC2X3.IfcElectricalBaseProperties(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13]), 1758889154: (ID, a) => new IFC2X3.IfcElement(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), 4123344466: (ID, a) => new IFC2X3.IfcElementAssembly(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 1623761950: (ID, a) => new IFC2X3.IfcElementComponent(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), 2590856083: (ID, a) => new IFC2X3.IfcElementComponentType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 1704287377: (ID, a) => new IFC2X3.IfcEllipse(ID, a[0], a[1], a[2]), 2107101300: (ID, a) => new IFC2X3.IfcEnergyConversionDeviceType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 1962604670: (ID, a) => new IFC2X3.IfcEquipmentElement(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), 3272907226: (ID, a) => new IFC2X3.IfcEquipmentStandard(ID, a[0], a[1], a[2], a[3], a[4]), 3174744832: (ID, a) => new IFC2X3.IfcEvaporativeCoolerType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 3390157468: (ID, a) => new IFC2X3.IfcEvaporatorType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 807026263: (ID, a) => new IFC2X3.IfcFacetedBrep(ID, a[0]), 3737207727: (ID, a) => new IFC2X3.IfcFacetedBrepWithVoids(ID, a[0], a[1]), 647756555: (ID, a) => new IFC2X3.IfcFastener(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), 2489546625: (ID, a) => new IFC2X3.IfcFastenerType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 2827207264: (ID, a) => new IFC2X3.IfcFeatureElement(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), 2143335405: (ID, a) => new IFC2X3.IfcFeatureElementAddition(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), 1287392070: (ID, a) => new IFC2X3.IfcFeatureElementSubtraction(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), 3907093117: (ID, a) => new IFC2X3.IfcFlowControllerType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 3198132628: (ID, a) => new IFC2X3.IfcFlowFittingType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 3815607619: (ID, a) => new IFC2X3.IfcFlowMeterType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 1482959167: (ID, a) => new IFC2X3.IfcFlowMovingDeviceType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 1834744321: (ID, a) => new IFC2X3.IfcFlowSegmentType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 1339347760: (ID, a) => new IFC2X3.IfcFlowStorageDeviceType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 2297155007: (ID, a) => new IFC2X3.IfcFlowTerminalType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 3009222698: (ID, a) => new IFC2X3.IfcFlowTreatmentDeviceType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 263784265: (ID, a) => new IFC2X3.IfcFurnishingElement(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), 814719939: (ID, a) => new IFC2X3.IfcFurnitureStandard(ID, a[0], a[1], a[2], a[3], a[4]), 200128114: (ID, a) => new IFC2X3.IfcGasTerminalType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 3009204131: (ID, a) => new IFC2X3.IfcGrid(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 2706460486: (ID, a) => new IFC2X3.IfcGroup(ID, a[0], a[1], a[2], a[3], a[4]), 1251058090: (ID, a) => new IFC2X3.IfcHeatExchangerType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 1806887404: (ID, a) => new IFC2X3.IfcHumidifierType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 2391368822: (ID, a) => new IFC2X3.IfcInventory(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]), 4288270099: (ID, a) => new IFC2X3.IfcJunctionBoxType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 3827777499: (ID, a) => new IFC2X3.IfcLaborResource(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 1051575348: (ID, a) => new IFC2X3.IfcLampType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 1161773419: (ID, a) => new IFC2X3.IfcLightFixtureType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 2506943328: (ID, a) => new IFC2X3.IfcLinearDimension(ID, a[0]), 377706215: (ID, a) => new IFC2X3.IfcMechanicalFastener(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 2108223431: (ID, a) => new IFC2X3.IfcMechanicalFastenerType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 3181161470: (ID, a) => new IFC2X3.IfcMemberType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 977012517: (ID, a) => new IFC2X3.IfcMotorConnectionType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 1916936684: (ID, a) => new IFC2X3.IfcMove(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12]), 4143007308: (ID, a) => new IFC2X3.IfcOccupant(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]), 3588315303: (ID, a) => new IFC2X3.IfcOpeningElement(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), 3425660407: (ID, a) => new IFC2X3.IfcOrderAction(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]), 2837617999: (ID, a) => new IFC2X3.IfcOutletType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 2382730787: (ID, a) => new IFC2X3.IfcPerformanceHistory(ID, a[0], a[1], a[2], a[3], a[4], a[5]), 3327091369: (ID, a) => new IFC2X3.IfcPermit(ID, a[0], a[1], a[2], a[3], a[4], a[5]), 804291784: (ID, a) => new IFC2X3.IfcPipeFittingType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 4231323485: (ID, a) => new IFC2X3.IfcPipeSegmentType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 4017108033: (ID, a) => new IFC2X3.IfcPlateType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 3724593414: (ID, a) => new IFC2X3.IfcPolyline(ID, a[0]), 3740093272: (ID, a) => new IFC2X3.IfcPort(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]), 2744685151: (ID, a) => new IFC2X3.IfcProcedure(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), 2904328755: (ID, a) => new IFC2X3.IfcProjectOrder(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), 3642467123: (ID, a) => new IFC2X3.IfcProjectOrderRecord(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]), 3651124850: (ID, a) => new IFC2X3.IfcProjectionElement(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), 1842657554: (ID, a) => new IFC2X3.IfcProtectiveDeviceType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 2250791053: (ID, a) => new IFC2X3.IfcPumpType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 3248260540: (ID, a) => new IFC2X3.IfcRadiusDimension(ID, a[0]), 2893384427: (ID, a) => new IFC2X3.IfcRailingType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 2324767716: (ID, a) => new IFC2X3.IfcRampFlightType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 160246688: (ID, a) => new IFC2X3.IfcRelAggregates(ID, a[0], a[1], a[2], a[3], a[4], a[5]), 2863920197: (ID, a) => new IFC2X3.IfcRelAssignsTasks(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), 1768891740: (ID, a) => new IFC2X3.IfcSanitaryTerminalType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 3517283431: (ID, a) => new IFC2X3.IfcScheduleTimeControl(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14], a[15], a[16], a[17], a[18], a[19], a[20], a[21], a[22]), 4105383287: (ID, a) => new IFC2X3.IfcServiceLife(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]), 4097777520: (ID, a) => new IFC2X3.IfcSite(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13]), 2533589738: (ID, a) => new IFC2X3.IfcSlabType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 3856911033: (ID, a) => new IFC2X3.IfcSpace(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]), 1305183839: (ID, a) => new IFC2X3.IfcSpaceHeaterType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 652456506: (ID, a) => new IFC2X3.IfcSpaceProgram(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 3812236995: (ID, a) => new IFC2X3.IfcSpaceType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 3112655638: (ID, a) => new IFC2X3.IfcStackTerminalType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 1039846685: (ID, a) => new IFC2X3.IfcStairFlightType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 682877961: (ID, a) => new IFC2X3.IfcStructuralAction(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]), 1179482911: (ID, a) => new IFC2X3.IfcStructuralConnection(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), 4243806635: (ID, a) => new IFC2X3.IfcStructuralCurveConnection(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), 214636428: (ID, a) => new IFC2X3.IfcStructuralCurveMember(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), 2445595289: (ID, a) => new IFC2X3.IfcStructuralCurveMemberVarying(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), 1807405624: (ID, a) => new IFC2X3.IfcStructuralLinearAction(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]), 1721250024: (ID, a) => new IFC2X3.IfcStructuralLinearActionVarying(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13]), 1252848954: (ID, a) => new IFC2X3.IfcStructuralLoadGroup(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 1621171031: (ID, a) => new IFC2X3.IfcStructuralPlanarAction(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]), 3987759626: (ID, a) => new IFC2X3.IfcStructuralPlanarActionVarying(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13]), 2082059205: (ID, a) => new IFC2X3.IfcStructuralPointAction(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]), 734778138: (ID, a) => new IFC2X3.IfcStructuralPointConnection(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), 1235345126: (ID, a) => new IFC2X3.IfcStructuralPointReaction(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 2986769608: (ID, a) => new IFC2X3.IfcStructuralResultGroup(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), 1975003073: (ID, a) => new IFC2X3.IfcStructuralSurfaceConnection(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), 148013059: (ID, a) => new IFC2X3.IfcSubContractResource(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]), 2315554128: (ID, a) => new IFC2X3.IfcSwitchingDeviceType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 2254336722: (ID, a) => new IFC2X3.IfcSystem(ID, a[0], a[1], a[2], a[3], a[4]), 5716631: (ID, a) => new IFC2X3.IfcTankType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 1637806684: (ID, a) => new IFC2X3.IfcTimeSeriesSchedule(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), 1692211062: (ID, a) => new IFC2X3.IfcTransformerType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 1620046519: (ID, a) => new IFC2X3.IfcTransportElement(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]), 3593883385: (ID, a) => new IFC2X3.IfcTrimmedCurve(ID, a[0], a[1], a[2], a[3], a[4]), 1600972822: (ID, a) => new IFC2X3.IfcTubeBundleType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 1911125066: (ID, a) => new IFC2X3.IfcUnitaryEquipmentType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 728799441: (ID, a) => new IFC2X3.IfcValveType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 2769231204: (ID, a) => new IFC2X3.IfcVirtualElement(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), 1898987631: (ID, a) => new IFC2X3.IfcWallType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 1133259667: (ID, a) => new IFC2X3.IfcWasteTerminalType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 1028945134: (ID, a) => new IFC2X3.IfcWorkControl(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14]), 4218914973: (ID, a) => new IFC2X3.IfcWorkPlan(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14]), 3342526732: (ID, a) => new IFC2X3.IfcWorkSchedule(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14]), 1033361043: (ID, a) => new IFC2X3.IfcZone(ID, a[0], a[1], a[2], a[3], a[4]), 1213861670: (ID, a) => new IFC2X3.Ifc2DCompositeCurve(ID, a[0], a[1]), 3821786052: (ID, a) => new IFC2X3.IfcActionRequest(ID, a[0], a[1], a[2], a[3], a[4], a[5]), 1411407467: (ID, a) => new IFC2X3.IfcAirTerminalBoxType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 3352864051: (ID, a) => new IFC2X3.IfcAirTerminalType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 1871374353: (ID, a) => new IFC2X3.IfcAirToAirHeatRecoveryType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 2470393545: (ID, a) => new IFC2X3.IfcAngularDimension(ID, a[0]), 3460190687: (ID, a) => new IFC2X3.IfcAsset(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13]), 1967976161: (ID, a) => new IFC2X3.IfcBSplineCurve(ID, a[0], a[1], a[2], a[3], a[4]), 819618141: (ID, a) => new IFC2X3.IfcBeamType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 1916977116: (ID, a) => new IFC2X3.IfcBezierCurve(ID, a[0], a[1], a[2], a[3], a[4]), 231477066: (ID, a) => new IFC2X3.IfcBoilerType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 3299480353: (ID, a) => new IFC2X3.IfcBuildingElement(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), 52481810: (ID, a) => new IFC2X3.IfcBuildingElementComponent(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), 2979338954: (ID, a) => new IFC2X3.IfcBuildingElementPart(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), 1095909175: (ID, a) => new IFC2X3.IfcBuildingElementProxy(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 1909888760: (ID, a) => new IFC2X3.IfcBuildingElementProxyType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 395041908: (ID, a) => new IFC2X3.IfcCableCarrierFittingType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 3293546465: (ID, a) => new IFC2X3.IfcCableCarrierSegmentType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 1285652485: (ID, a) => new IFC2X3.IfcCableSegmentType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 2951183804: (ID, a) => new IFC2X3.IfcChillerType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 2611217952: (ID, a) => new IFC2X3.IfcCircle(ID, a[0], a[1]), 2301859152: (ID, a) => new IFC2X3.IfcCoilType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 843113511: (ID, a) => new IFC2X3.IfcColumn(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), 3850581409: (ID, a) => new IFC2X3.IfcCompressorType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 2816379211: (ID, a) => new IFC2X3.IfcCondenserType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 2188551683: (ID, a) => new IFC2X3.IfcCondition(ID, a[0], a[1], a[2], a[3], a[4]), 1163958913: (ID, a) => new IFC2X3.IfcConditionCriterion(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]), 3898045240: (ID, a) => new IFC2X3.IfcConstructionEquipmentResource(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 1060000209: (ID, a) => new IFC2X3.IfcConstructionMaterialResource(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]), 488727124: (ID, a) => new IFC2X3.IfcConstructionProductResource(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 335055490: (ID, a) => new IFC2X3.IfcCooledBeamType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 2954562838: (ID, a) => new IFC2X3.IfcCoolingTowerType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 1973544240: (ID, a) => new IFC2X3.IfcCovering(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 3495092785: (ID, a) => new IFC2X3.IfcCurtainWall(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), 3961806047: (ID, a) => new IFC2X3.IfcDamperType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 4147604152: (ID, a) => new IFC2X3.IfcDiameterDimension(ID, a[0]), 1335981549: (ID, a) => new IFC2X3.IfcDiscreteAccessory(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), 2635815018: (ID, a) => new IFC2X3.IfcDiscreteAccessoryType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 1599208980: (ID, a) => new IFC2X3.IfcDistributionChamberElementType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 2063403501: (ID, a) => new IFC2X3.IfcDistributionControlElementType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 1945004755: (ID, a) => new IFC2X3.IfcDistributionElement(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), 3040386961: (ID, a) => new IFC2X3.IfcDistributionFlowElement(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), 3041715199: (ID, a) => new IFC2X3.IfcDistributionPort(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), 395920057: (ID, a) => new IFC2X3.IfcDoor(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 869906466: (ID, a) => new IFC2X3.IfcDuctFittingType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 3760055223: (ID, a) => new IFC2X3.IfcDuctSegmentType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 2030761528: (ID, a) => new IFC2X3.IfcDuctSilencerType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 855621170: (ID, a) => new IFC2X3.IfcEdgeFeature(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 663422040: (ID, a) => new IFC2X3.IfcElectricApplianceType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 3277789161: (ID, a) => new IFC2X3.IfcElectricFlowStorageDeviceType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 1534661035: (ID, a) => new IFC2X3.IfcElectricGeneratorType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 1365060375: (ID, a) => new IFC2X3.IfcElectricHeaterType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 1217240411: (ID, a) => new IFC2X3.IfcElectricMotorType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 712377611: (ID, a) => new IFC2X3.IfcElectricTimeControlType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 1634875225: (ID, a) => new IFC2X3.IfcElectricalCircuit(ID, a[0], a[1], a[2], a[3], a[4]), 857184966: (ID, a) => new IFC2X3.IfcElectricalElement(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), 1658829314: (ID, a) => new IFC2X3.IfcEnergyConversionDevice(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), 346874300: (ID, a) => new IFC2X3.IfcFanType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 1810631287: (ID, a) => new IFC2X3.IfcFilterType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 4222183408: (ID, a) => new IFC2X3.IfcFireSuppressionTerminalType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 2058353004: (ID, a) => new IFC2X3.IfcFlowController(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), 4278956645: (ID, a) => new IFC2X3.IfcFlowFitting(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), 4037862832: (ID, a) => new IFC2X3.IfcFlowInstrumentType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 3132237377: (ID, a) => new IFC2X3.IfcFlowMovingDevice(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), 987401354: (ID, a) => new IFC2X3.IfcFlowSegment(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), 707683696: (ID, a) => new IFC2X3.IfcFlowStorageDevice(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), 2223149337: (ID, a) => new IFC2X3.IfcFlowTerminal(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), 3508470533: (ID, a) => new IFC2X3.IfcFlowTreatmentDevice(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), 900683007: (ID, a) => new IFC2X3.IfcFooting(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 1073191201: (ID, a) => new IFC2X3.IfcMember(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), 1687234759: (ID, a) => new IFC2X3.IfcPile(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 3171933400: (ID, a) => new IFC2X3.IfcPlate(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), 2262370178: (ID, a) => new IFC2X3.IfcRailing(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 3024970846: (ID, a) => new IFC2X3.IfcRamp(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 3283111854: (ID, a) => new IFC2X3.IfcRampFlight(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), 3055160366: (ID, a) => new IFC2X3.IfcRationalBezierCurve(ID, a[0], a[1], a[2], a[3], a[4], a[5]), 3027567501: (ID, a) => new IFC2X3.IfcReinforcingElement(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 2320036040: (ID, a) => new IFC2X3.IfcReinforcingMesh(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14], a[15], a[16]), 2016517767: (ID, a) => new IFC2X3.IfcRoof(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 1376911519: (ID, a) => new IFC2X3.IfcRoundedEdgeFeature(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 1783015770: (ID, a) => new IFC2X3.IfcSensorType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 1529196076: (ID, a) => new IFC2X3.IfcSlab(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 331165859: (ID, a) => new IFC2X3.IfcStair(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 4252922144: (ID, a) => new IFC2X3.IfcStairFlight(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]), 2515109513: (ID, a) => new IFC2X3.IfcStructuralAnalysisModel(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 3824725483: (ID, a) => new IFC2X3.IfcTendon(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14], a[15], a[16]), 2347447852: (ID, a) => new IFC2X3.IfcTendonAnchor(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 3313531582: (ID, a) => new IFC2X3.IfcVibrationIsolatorType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 2391406946: (ID, a) => new IFC2X3.IfcWall(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), 3512223829: (ID, a) => new IFC2X3.IfcWallStandardCase(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), 3304561284: (ID, a) => new IFC2X3.IfcWindow(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 2874132201: (ID, a) => new IFC2X3.IfcActuatorType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 3001207471: (ID, a) => new IFC2X3.IfcAlarmType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 753842376: (ID, a) => new IFC2X3.IfcBeam(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), 2454782716: (ID, a) => new IFC2X3.IfcChamferEdgeFeature(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]), 578613899: (ID, a) => new IFC2X3.IfcControllerType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 1052013943: (ID, a) => new IFC2X3.IfcDistributionChamberElement(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), 1062813311: (ID, a) => new IFC2X3.IfcDistributionControlElement(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 3700593921: (ID, a) => new IFC2X3.IfcElectricDistributionPoint(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 979691226: (ID, a) => new IFC2X3.IfcReinforcingBar(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13]) }; ToRawLineData[1] = { 3630933823: (i) => [i.Role, i.UserDefinedRole, i.Description], 618182010: (i) => [i.Purpose, i.Description, i.UserDefinedPurpose], 639542469: (i) => [i.ApplicationDeveloper, i.Version, i.ApplicationFullName, i.ApplicationIdentifier], 411424972: (i) => [i.Name, i.Description, i.AppliedValue, i.UnitBasis, i.ApplicableDate, i.FixedUntilDate], 1110488051: (i) => [i.ComponentOfTotal, i.Components, i.ArithmeticOperator, i.Name, i.Description], 130549933: (i) => [i.Description, i.ApprovalDateTime, i.ApprovalStatus, i.ApprovalLevel, i.ApprovalQualifier, i.Name, i.Identifier], 2080292479: (i) => [i.Actor, i.Approval, i.Role], 390851274: (i) => [i.ApprovedProperties, i.Approval], 3869604511: (i) => [i.RelatedApproval, i.RelatingApproval, i.Description, i.Name], 4037036970: (i) => [i.Name], 1560379544: (i) => [i.Name, i.LinearStiffnessByLengthX, i.LinearStiffnessByLengthY, i.LinearStiffnessByLengthZ, i.RotationalStiffnessByLengthX, i.RotationalStiffnessByLengthY, i.RotationalStiffnessByLengthZ], 3367102660: (i) => [i.Name, i.LinearStiffnessByAreaX, i.LinearStiffnessByAreaY, i.LinearStiffnessByAreaZ], 1387855156: (i) => [i.Name, i.LinearStiffnessX, i.LinearStiffnessY, i.LinearStiffnessZ, i.RotationalStiffnessX, i.RotationalStiffnessY, i.RotationalStiffnessZ], 2069777674: (i) => [i.Name, i.LinearStiffnessX, i.LinearStiffnessY, i.LinearStiffnessZ, i.RotationalStiffnessX, i.RotationalStiffnessY, i.RotationalStiffnessZ, i.WarpingStiffness], 622194075: (i) => [i.DayComponent, i.MonthComponent, i.YearComponent], 747523909: (i) => [i.Source, i.Edition, i.EditionDate, i.Name], 1767535486: (i) => [i.Notation, i.ItemOf, i.Title], 1098599126: (i) => [i.RelatingItem, i.RelatedItems], 938368621: (i) => [i.NotationFacets], 3639012971: (i) => [i.NotationValue], 3264961684: (i) => [i.Name], 2859738748: (_) => [], 2614616156: (i) => [i.PointOnRelatingElement, i.PointOnRelatedElement], 4257277454: (i) => [i.LocationAtRelatingElement, i.LocationAtRelatedElement, i.ProfileOfPort], 2732653382: (i) => [i.SurfaceOnRelatingElement, i.SurfaceOnRelatedElement], 1959218052: (i) => [i.Name, i.Description, i.ConstraintGrade, i.ConstraintSource, i.CreatingActor, i.CreationTime, i.UserDefinedGrade], 1658513725: (i) => [i.Name, i.Description, i.RelatingConstraint, i.RelatedConstraints, i.LogicalAggregator], 613356794: (i) => [i.ClassifiedConstraint, i.RelatedClassifications], 347226245: (i) => [i.Name, i.Description, i.RelatingConstraint, i.RelatedConstraints], 1065062679: (i) => [i.HourOffset, i.MinuteOffset, i.Sense], 602808272: (i) => [i.Name, i.Description, i.AppliedValue, i.UnitBasis, i.ApplicableDate, i.FixedUntilDate, i.CostType, i.Condition], 539742890: (i) => [i.RelatingMonetaryUnit, i.RelatedMonetaryUnit, i.ExchangeRate, i.RateDateTime, i.RateSource], 1105321065: (i) => [i.Name, i.PatternList], 2367409068: (i) => [i.Name, i.CurveFont, i.CurveFontScaling], 3510044353: (i) => [i.VisibleSegmentLength, i.InvisibleSegmentLength], 1072939445: (i) => [i.DateComponent, i.TimeComponent], 1765591967: (i) => [i.Elements, i.UnitType, i.UserDefinedType], 1045800335: (i) => [i.Unit, i.Exponent], 2949456006: (i) => [i.LengthExponent, i.MassExponent, i.TimeExponent, i.ElectricCurrentExponent, i.ThermodynamicTemperatureExponent, i.AmountOfSubstanceExponent, i.LuminousIntensityExponent], 1376555844: (i) => [i.FileExtension, i.MimeContentType, i.MimeSubtype], 1154170062: (i) => [i.DocumentId, i.Name, i.Description, i.DocumentReferences, i.Purpose, i.IntendedUse, i.Scope, i.Revision, i.DocumentOwner, i.Editors, i.CreationTime, i.LastRevisionTime, i.ElectronicFormat, i.ValidFrom, i.ValidUntil, i.Confidentiality, i.Status], 770865208: (i) => [i.RelatingDocument, i.RelatedDocuments, i.RelationshipType], 3796139169: (i) => [i.Name, i.Description, i.RelatingDraughtingCallout, i.RelatedDraughtingCallout], 1648886627: (i) => [i.Name, i.Description, i.AppliedValue, i.UnitBasis, i.ApplicableDate, i.FixedUntilDate, i.ImpactType, i.Category, i.UserDefinedCategory], 3200245327: (i) => [i.Location, i.ItemReference, i.Name], 2242383968: (i) => [i.Location, i.ItemReference, i.Name], 1040185647: (i) => [i.Location, i.ItemReference, i.Name], 3207319532: (i) => [i.Location, i.ItemReference, i.Name], 3548104201: (i) => [i.Location, i.ItemReference, i.Name], 852622518: (i) => [i.AxisTag, i.AxisCurve, i.SameSense], 3020489413: (i) => [i.TimeStamp, i.ListValues.map((p) => Labelise(p))], 2655187982: (i) => [i.Name, i.Version, i.Publisher, i.VersionDate, i.LibraryReference], 3452421091: (i) => [i.Location, i.ItemReference, i.Name], 4162380809: (i) => [i.MainPlaneAngle, i.SecondaryPlaneAngle, i.LuminousIntensity], 1566485204: (i) => [i.LightDistributionCurve, i.DistributionData], 30780891: (i) => [i.HourComponent, i.MinuteComponent, i.SecondComponent, i.Zone, i.DaylightSavingOffset], 1838606355: (i) => [i.Name], 1847130766: (i) => [i.MaterialClassifications, i.ClassifiedMaterial], 248100487: (i) => [i.Material, i.LayerThickness, i.IsVentilated], 3303938423: (i) => [i.MaterialLayers, i.LayerSetName], 1303795690: (i) => [i.ForLayerSet, i.LayerSetDirection, i.DirectionSense, i.OffsetFromReferenceLine], 2199411900: (i) => [i.Materials], 3265635763: (i) => [i.Material], 2597039031: (i) => [Labelise(i.ValueComponent), i.UnitComponent], 4256014907: (i) => [i.Material, i.DynamicViscosity, i.YoungModulus, i.ShearModulus, i.PoissonRatio, i.ThermalExpansionCoefficient], 677618848: (i) => [i.Material, i.DynamicViscosity, i.YoungModulus, i.ShearModulus, i.PoissonRatio, i.ThermalExpansionCoefficient, i.YieldStress, i.UltimateStress, i.UltimateStrain, i.HardeningModule, i.ProportionalStress, i.PlasticStrain, i.Relaxations], 3368373690: (i) => [i.Name, i.Description, i.ConstraintGrade, i.ConstraintSource, i.CreatingActor, i.CreationTime, i.UserDefinedGrade, i.Benchmark, i.ValueSource, i.DataValue], 2706619895: (i) => [i.Currency], 1918398963: (i) => [i.Dimensions, i.UnitType], 3701648758: (_) => [], 2251480897: (i) => [i.Name, i.Description, i.ConstraintGrade, i.ConstraintSource, i.CreatingActor, i.CreationTime, i.UserDefinedGrade, i.BenchmarkValues, i.ResultValues, i.ObjectiveQualifier, i.UserDefinedQualifier], 1227763645: (i) => [i.Material, i.VisibleTransmittance, i.SolarTransmittance, i.ThermalIrTransmittance, i.ThermalIrEmissivityBack, i.ThermalIrEmissivityFront, i.VisibleReflectanceBack, i.VisibleReflectanceFront, i.SolarReflectanceFront, i.SolarReflectanceBack], 4251960020: (i) => [i.Id, i.Name, i.Description, i.Roles, i.Addresses], 1411181986: (i) => [i.Name, i.Description, i.RelatingOrganization, i.RelatedOrganizations], 1207048766: (i) => [i.OwningUser, i.OwningApplication, i.State, i.ChangeAction, i.LastModifiedDate, i.LastModifyingUser, i.LastModifyingApplication, i.CreationDate], 2077209135: (i) => [i.Id, i.FamilyName, i.GivenName, i.MiddleNames, i.PrefixTitles, i.SuffixTitles, i.Roles, i.Addresses], 101040310: (i) => [i.ThePerson, i.TheOrganization, i.Roles], 2483315170: (i) => [i.Name, i.Description], 2226359599: (i) => [i.Name, i.Description, i.Unit], 3355820592: (i) => [i.Purpose, i.Description, i.UserDefinedPurpose, i.InternalLocation, i.AddressLines, i.PostalBox, i.Town, i.Region, i.PostalCode, i.Country], 3727388367: (i) => [i.Name], 990879717: (i) => [i.Name], 3213052703: (i) => [i.Name], 1775413392: (i) => [i.Name], 2022622350: (i) => [i.Name, i.Description, i.AssignedItems, i.Identifier], 1304840413: (i) => [i.Name, i.Description, i.AssignedItems, i.Identifier, i.LayerOn, i.LayerFrozen, i.LayerBlocked, i.LayerStyles], 3119450353: (i) => [i.Name], 2417041796: (i) => [i.Styles], 2095639259: (i) => [i.Name, i.Description, i.Representations], 2267347899: (i) => [i.Material, i.SpecificHeatCapacity, i.N20Content, i.COContent, i.CO2Content], 3958567839: (i) => [i.ProfileType, i.ProfileName], 2802850158: (i) => [i.ProfileName, i.ProfileDefinition], 2598011224: (i) => [i.Name, i.Description], 3896028662: (i) => [i.RelatingConstraint, i.RelatedProperties, i.Name, i.Description], 148025276: (i) => [i.DependingProperty, i.DependantProperty, i.Name, i.Description, i.Expression], 3710013099: (i) => [i.Name, i.EnumerationValues.map((p) => Labelise(p)), i.Unit], 2044713172: (i) => [i.Name, i.Description, i.Unit, i.AreaValue], 2093928680: (i) => [i.Name, i.Description, i.Unit, i.CountValue], 931644368: (i) => [i.Name, i.Description, i.Unit, i.LengthValue], 3252649465: (i) => [i.Name, i.Description, i.Unit, i.TimeValue], 2405470396: (i) => [i.Name, i.Description, i.Unit, i.VolumeValue], 825690147: (i) => [i.Name, i.Description, i.Unit, i.WeightValue], 2692823254: (i) => [i.ReferencedDocument, i.ReferencingValues, i.Name, i.Description], 1580146022: (i) => [i.TotalCrossSectionArea, i.SteelGrade, i.BarSurface, i.EffectiveDepth, i.NominalBarDiameter, i.BarCount], 1222501353: (i) => [i.RelaxationValue, i.InitialStress], 1076942058: (i) => [i.ContextOfItems, i.RepresentationIdentifier, i.RepresentationType, i.Items], 3377609919: (i) => [i.ContextIdentifier, i.ContextType], 3008791417: (_) => [], 1660063152: (i) => [i.MappingOrigin, i.MappedRepresentation], 3679540991: (i) => [i.ProfileName, i.ProfileDefinition, i.Thickness, i.RibHeight, i.RibWidth, i.RibSpacing, i.Direction], 2341007311: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description], 448429030: (i) => [i.Dimensions, i.UnitType, i.Prefix, i.Name], 2042790032: (i) => [i.SectionType, i.StartProfile, i.EndProfile], 4165799628: (i) => [i.LongitudinalStartPosition, i.LongitudinalEndPosition, i.TransversePosition, i.ReinforcementRole, i.SectionDefinition, i.CrossSectionReinforcementDefinitions], 867548509: (i) => [i.ShapeRepresentations, i.Name, i.Description, i.ProductDefinitional, i.PartOfProductDefinitionShape], 3982875396: (i) => [i.ContextOfItems, i.RepresentationIdentifier, i.RepresentationType, i.Items], 4240577450: (i) => [i.ContextOfItems, i.RepresentationIdentifier, i.RepresentationType, i.Items], 3692461612: (i) => [i.Name, i.Description], 2273995522: (i) => [i.Name], 2162789131: (i) => [i.Name], 2525727697: (i) => [i.Name], 3408363356: (i) => [i.Name, i.DeltaT_Constant, i.DeltaT_Y, i.DeltaT_Z], 2830218821: (i) => [i.ContextOfItems, i.RepresentationIdentifier, i.RepresentationType, i.Items], 3958052878: (i) => [i.Item, i.Styles, i.Name], 3049322572: (i) => [i.ContextOfItems, i.RepresentationIdentifier, i.RepresentationType, i.Items], 1300840506: (i) => [i.Name, i.Side, i.Styles], 3303107099: (i) => [i.DiffuseTransmissionColour, i.DiffuseReflectionColour, i.TransmissionColour, i.ReflectanceColour], 1607154358: (i) => [i.RefractionIndex, i.DispersionFactor], 846575682: (i) => [i.SurfaceColour], 1351298697: (i) => [i.Textures], 626085974: (i) => [i.RepeatS, i.RepeatT, i.TextureType, i.TextureTransform], 1290481447: (i) => [i.Name, Labelise(i.StyleOfSymbol)], 985171141: (i) => [i.Name, i.Rows], 531007025: (i) => [i.RowCells.map((p) => Labelise(p)), i.IsHeading], 912023232: (i) => [i.Purpose, i.Description, i.UserDefinedPurpose, i.TelephoneNumbers, i.FacsimileNumbers, i.PagerNumber, i.ElectronicMailAddresses, i.WWWHomePageURL], 1447204868: (i) => [i.Name, i.TextCharacterAppearance, i.TextStyle, i.TextFontStyle], 1983826977: (i) => [i.Name, i.FontFamily, i.FontStyle, i.FontVariant, i.FontWeight, Labelise(i.FontSize)], 2636378356: (i) => [i.Colour, i.BackgroundColour], 1640371178: (i) => [!i.TextIndent ? null : Labelise(i.TextIndent), i.TextAlign, i.TextDecoration, !i.LetterSpacing ? null : Labelise(i.LetterSpacing), !i.WordSpacing ? null : Labelise(i.WordSpacing), i.TextTransform, !i.LineHeight ? null : Labelise(i.LineHeight)], 1484833681: (i) => [i.BoxHeight, i.BoxWidth, i.BoxSlantAngle, i.BoxRotateAngle, !i.CharacterSpacing ? null : Labelise(i.CharacterSpacing)], 280115917: (_) => [], 1742049831: (i) => [i.Mode, i.Parameter.map((p) => Labelise(p))], 2552916305: (i) => [i.TextureMaps], 1210645708: (i) => [i.Coordinates], 3317419933: (i) => [i.Material, i.SpecificHeatCapacity, i.BoilingPoint, i.FreezingPoint, i.ThermalConductivity], 3101149627: (i) => [i.Name, i.Description, i.StartTime, i.EndTime, i.TimeSeriesDataType, i.DataOrigin, i.UserDefinedDataOrigin, i.Unit], 1718945513: (i) => [i.ReferencedTimeSeries, i.TimeSeriesReferences], 581633288: (i) => [i.ListValues.map((p) => Labelise(p))], 1377556343: (_) => [], 1735638870: (i) => [i.ContextOfItems, i.RepresentationIdentifier, i.RepresentationType, i.Items], 180925521: (i) => [i.Units], 2799835756: (_) => [], 3304826586: (i) => [i.TextureVertices, i.TexturePoints], 1907098498: (i) => [i.VertexGeometry], 891718957: (i) => [i.IntersectingAxes, i.OffsetDistances], 1065908215: (i) => [i.Material, i.IsPotable, i.Hardness, i.AlkalinityConcentration, i.AcidityConcentration, i.ImpuritiesContent, i.PHLevel, i.DissolvedSolidsContent], 2442683028: (i) => [i.Item, i.Styles, i.Name], 962685235: (i) => [i.Item, i.Styles, i.Name], 3612888222: (i) => [i.Item, i.Styles, i.Name], 2297822566: (i) => [i.Item, i.Styles, i.Name], 3798115385: (i) => [i.ProfileType, i.ProfileName, i.OuterCurve], 1310608509: (i) => [i.ProfileType, i.ProfileName, i.Curve], 2705031697: (i) => [i.ProfileType, i.ProfileName, i.OuterCurve, i.InnerCurves], 616511568: (i) => [i.RepeatS, i.RepeatT, i.TextureType, i.TextureTransform, i.RasterFormat, i.RasterCode], 3150382593: (i) => [i.ProfileType, i.ProfileName, i.Curve, i.Thickness], 647927063: (i) => [i.Location, i.ItemReference, i.Name, i.ReferencedSource], 776857604: (i) => [i.Name, i.Red, i.Green, i.Blue], 2542286263: (i) => [i.Name, i.Description, i.UsageName, i.HasProperties], 1485152156: (i) => [i.ProfileType, i.ProfileName, i.Profiles, i.Label], 370225590: (i) => [i.CfsFaces], 1981873012: (i) => [i.CurveOnRelatingElement, i.CurveOnRelatedElement], 45288368: (i) => [i.PointOnRelatingElement, i.PointOnRelatedElement, i.EccentricityInX, i.EccentricityInY, i.EccentricityInZ], 3050246964: (i) => [i.Dimensions, i.UnitType, i.Name], 2889183280: (i) => [i.Dimensions, i.UnitType, i.Name, i.ConversionFactor], 3800577675: (i) => [i.Name, i.CurveFont, !i.CurveWidth ? null : Labelise(i.CurveWidth), i.CurveColour], 3632507154: (i) => [i.ProfileType, i.ProfileName, i.ParentProfile, i.Operator, i.Label], 2273265877: (i) => [i.Name, i.Description, i.RelatingDraughtingCallout, i.RelatedDraughtingCallout], 1694125774: (i) => [i.Name, i.Description, i.RelatingDraughtingCallout, i.RelatedDraughtingCallout], 3732053477: (i) => [i.Location, i.ItemReference, i.Name], 4170525392: (i) => [i.Name], 3900360178: (i) => [i.EdgeStart, i.EdgeEnd], 476780140: (i) => [i.EdgeStart, i.EdgeEnd, i.EdgeGeometry, i.SameSense], 1860660968: (i) => [i.Material, i.ExtendedProperties, i.Description, i.Name], 2556980723: (i) => [i.Bounds], 1809719519: (i) => [i.Bound, i.Orientation], 803316827: (i) => [i.Bound, i.Orientation], 3008276851: (i) => [i.Bounds, i.FaceSurface, i.SameSense], 4219587988: (i) => [i.Name, i.TensionFailureX, i.TensionFailureY, i.TensionFailureZ, i.CompressionFailureX, i.CompressionFailureY, i.CompressionFailureZ], 738692330: (i) => [i.Name, i.FillStyles], 3857492461: (i) => [i.Material, i.CombustionTemperature, i.CarbonContent, i.LowerHeatingValue, i.HigherHeatingValue], 803998398: (i) => [i.Material, i.MolecularWeight, i.Porosity, i.MassDensity], 1446786286: (i) => [i.ProfileName, i.ProfileDefinition, i.PhysicalWeight, i.Perimeter, i.MinimumPlateThickness, i.MaximumPlateThickness, i.CrossSectionArea], 3448662350: (i) => [i.ContextIdentifier, i.ContextType, i.CoordinateSpaceDimension, i.Precision, i.WorldCoordinateSystem, i.TrueNorth], 2453401579: (_) => [], 4142052618: (i) => [i.ContextIdentifier, i.ContextType, i.CoordinateSpaceDimension, i.Precision, i.WorldCoordinateSystem, i.TrueNorth, i.ParentContext, i.TargetScale, i.TargetView, i.UserDefinedTargetView], 3590301190: (i) => [i.Elements], 178086475: (i) => [i.PlacementLocation, i.PlacementRefDirection], 812098782: (i) => [i.BaseSurface, i.AgreementFlag], 2445078500: (i) => [i.Material, i.UpperVaporResistanceFactor, i.LowerVaporResistanceFactor, i.IsothermalMoistureCapacity, i.VaporPermeability, i.MoistureDiffusivity], 3905492369: (i) => [i.RepeatS, i.RepeatT, i.TextureType, i.TextureTransform, i.UrlReference], 3741457305: (i) => [i.Name, i.Description, i.StartTime, i.EndTime, i.TimeSeriesDataType, i.DataOrigin, i.UserDefinedDataOrigin, i.Unit, i.Values], 1402838566: (i) => [i.Name, i.LightColour, i.AmbientIntensity, i.Intensity], 125510826: (i) => [i.Name, i.LightColour, i.AmbientIntensity, i.Intensity], 2604431987: (i) => [i.Name, i.LightColour, i.AmbientIntensity, i.Intensity, i.Orientation], 4266656042: (i) => [i.Name, i.LightColour, i.AmbientIntensity, i.Intensity, i.Position, i.ColourAppearance, i.ColourTemperature, i.LuminousFlux, i.LightEmissionSource, i.LightDistributionDataSource], 1520743889: (i) => [i.Name, i.LightColour, i.AmbientIntensity, i.Intensity, i.Position, i.Radius, i.ConstantAttenuation, i.DistanceAttenuation, i.QuadricAttenuation], 3422422726: (i) => [i.Name, i.LightColour, i.AmbientIntensity, i.Intensity, i.Position, i.Radius, i.ConstantAttenuation, i.DistanceAttenuation, i.QuadricAttenuation, i.Orientation, i.ConcentrationExponent, i.SpreadAngle, i.BeamWidthAngle], 2624227202: (i) => [i.PlacementRelTo, i.RelativePlacement], 1008929658: (_) => [], 2347385850: (i) => [i.MappingSource, i.MappingTarget], 2022407955: (i) => [i.Name, i.Description, i.Representations, i.RepresentedMaterial], 1430189142: (i) => [i.Material, i.DynamicViscosity, i.YoungModulus, i.ShearModulus, i.PoissonRatio, i.ThermalExpansionCoefficient, i.CompressiveStrength, i.MaxAggregateSize, i.AdmixturesDescription, i.Workability, i.ProtectivePoreRatio, i.WaterImpermeability], 219451334: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description], 2833995503: (i) => [i.RepeatFactor], 2665983363: (i) => [i.CfsFaces], 1029017970: (i) => [i.EdgeStart, i.EdgeEnd, i.EdgeElement, i.Orientation], 2529465313: (i) => [i.ProfileType, i.ProfileName, i.Position], 2519244187: (i) => [i.EdgeList], 3021840470: (i) => [i.Name, i.Description, i.HasQuantities, i.Discrimination, i.Quality, i.Usage], 597895409: (i) => [i.RepeatS, i.RepeatT, i.TextureType, i.TextureTransform, i.Width, i.Height, i.ColourComponents, i.Pixel], 2004835150: (i) => [i.Location], 1663979128: (i) => [i.SizeInX, i.SizeInY], 2067069095: (_) => [], 4022376103: (i) => [i.BasisCurve, i.PointParameter], 1423911732: (i) => [i.BasisSurface, i.PointParameterU, i.PointParameterV], 2924175390: (i) => [i.Polygon], 2775532180: (i) => [i.BaseSurface, i.AgreementFlag, i.Position, i.PolygonalBoundary], 759155922: (i) => [i.Name], 2559016684: (i) => [i.Name], 433424934: (i) => [i.Name], 179317114: (i) => [i.Name], 673634403: (i) => [i.Name, i.Description, i.Representations], 871118103: (i) => [i.Name, i.Description, !i.UpperBoundValue ? null : Labelise(i.UpperBoundValue), !i.LowerBoundValue ? null : Labelise(i.LowerBoundValue), i.Unit], 1680319473: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description], 4166981789: (i) => [i.Name, i.Description, i.EnumerationValues.map((p) => Labelise(p)), i.EnumerationReference], 2752243245: (i) => [i.Name, i.Description, i.ListValues.map((p) => Labelise(p)), i.Unit], 941946838: (i) => [i.Name, i.Description, i.UsageName, i.PropertyReference], 3357820518: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description], 3650150729: (i) => [i.Name, i.Description, !i.NominalValue ? null : Labelise(i.NominalValue), i.Unit], 110355661: (i) => [i.Name, i.Description, i.DefiningValues.map((p) => Labelise(p)), i.DefinedValues.map((p) => Labelise(p)), i.Expression, i.DefiningUnit, i.DefinedUnit], 3615266464: (i) => [i.ProfileType, i.ProfileName, i.Position, i.XDim, i.YDim], 3413951693: (i) => [i.Name, i.Description, i.StartTime, i.EndTime, i.TimeSeriesDataType, i.DataOrigin, i.UserDefinedDataOrigin, i.Unit, i.TimeStep, i.Values], 3765753017: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.DefinitionType, i.ReinforcementSectionDefinitions], 478536968: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description], 2778083089: (i) => [i.ProfileType, i.ProfileName, i.Position, i.XDim, i.YDim, i.RoundingRadius], 1509187699: (i) => [i.SpineCurve, i.CrossSections, i.CrossSectionPositions], 2411513650: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.PredefinedType, !i.UpperValue ? null : Labelise(i.UpperValue), Labelise(i.MostUsedValue), !i.LowerValue ? null : Labelise(i.LowerValue)], 4124623270: (i) => [i.SbsmBoundary], 2609359061: (i) => [i.Name, i.SlippageX, i.SlippageY, i.SlippageZ], 723233188: (_) => [], 2485662743: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.IsAttenuating, i.SoundScale, i.SoundValues], 1202362311: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.SoundLevelTimeSeries, i.Frequency, !i.SoundLevelSingleValue ? null : Labelise(i.SoundLevelSingleValue)], 390701378: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableValueRatio, i.ThermalLoadSource, i.PropertySource, i.SourceDescription, i.MaximumValue, i.MinimumValue, i.ThermalLoadTimeSeriesValues, i.UserDefinedThermalLoadSource, i.UserDefinedPropertySource, i.ThermalLoadType], 1595516126: (i) => [i.Name, i.LinearForceX, i.LinearForceY, i.LinearForceZ, i.LinearMomentX, i.LinearMomentY, i.LinearMomentZ], 2668620305: (i) => [i.Name, i.PlanarForceX, i.PlanarForceY, i.PlanarForceZ], 2473145415: (i) => [i.Name, i.DisplacementX, i.DisplacementY, i.DisplacementZ, i.RotationalDisplacementRX, i.RotationalDisplacementRY, i.RotationalDisplacementRZ], 1973038258: (i) => [i.Name, i.DisplacementX, i.DisplacementY, i.DisplacementZ, i.RotationalDisplacementRX, i.RotationalDisplacementRY, i.RotationalDisplacementRZ, i.Distortion], 1597423693: (i) => [i.Name, i.ForceX, i.ForceY, i.ForceZ, i.MomentX, i.MomentY, i.MomentZ], 1190533807: (i) => [i.Name, i.ForceX, i.ForceY, i.ForceZ, i.MomentX, i.MomentY, i.MomentZ, i.WarpingMoment], 3843319758: (i) => [i.ProfileName, i.ProfileDefinition, i.PhysicalWeight, i.Perimeter, i.MinimumPlateThickness, i.MaximumPlateThickness, i.CrossSectionArea, i.TorsionalConstantX, i.MomentOfInertiaYZ, i.MomentOfInertiaY, i.MomentOfInertiaZ, i.WarpingConstant, i.ShearCentreZ, i.ShearCentreY, i.ShearDeformationAreaZ, i.ShearDeformationAreaY, i.MaximumSectionModulusY, i.MinimumSectionModulusY, i.MaximumSectionModulusZ, i.MinimumSectionModulusZ, i.TorsionalSectionModulus, i.CentreOfGravityInX, i.CentreOfGravityInY], 3653947884: (i) => [i.ProfileName, i.ProfileDefinition, i.PhysicalWeight, i.Perimeter, i.MinimumPlateThickness, i.MaximumPlateThickness, i.CrossSectionArea, i.TorsionalConstantX, i.MomentOfInertiaYZ, i.MomentOfInertiaY, i.MomentOfInertiaZ, i.WarpingConstant, i.ShearCentreZ, i.ShearCentreY, i.ShearDeformationAreaZ, i.ShearDeformationAreaY, i.MaximumSectionModulusY, i.MinimumSectionModulusY, i.MaximumSectionModulusZ, i.MinimumSectionModulusZ, i.TorsionalSectionModulus, i.CentreOfGravityInX, i.CentreOfGravityInY, i.ShearAreaZ, i.ShearAreaY, i.PlasticShapeFactorY, i.PlasticShapeFactorZ], 2233826070: (i) => [i.EdgeStart, i.EdgeEnd, i.ParentEdge], 2513912981: (_) => [], 1878645084: (i) => [i.SurfaceColour, i.Transparency, i.DiffuseColour, i.TransmissionColour, i.DiffuseTransmissionColour, i.ReflectionColour, i.SpecularColour, !i.SpecularHighlight ? null : Labelise(i.SpecularHighlight), i.ReflectanceMethod], 2247615214: (i) => [i.SweptArea, i.Position], 1260650574: (i) => [i.Directrix, i.Radius, i.InnerRadius, i.StartParam, i.EndParam], 230924584: (i) => [i.SweptCurve, i.Position], 3071757647: (i) => [i.ProfileType, i.ProfileName, i.Position, i.Depth, i.FlangeWidth, i.WebThickness, i.FlangeThickness, i.FilletRadius, i.FlangeEdgeRadius, i.WebEdgeRadius, i.WebSlope, i.FlangeSlope, i.CentreOfGravityInY], 3028897424: (i) => [i.Item, i.Styles, i.Name, i.AnnotatedCurve], 4282788508: (i) => [i.Literal, i.Placement, i.Path], 3124975700: (i) => [i.Literal, i.Placement, i.Path, i.Extent, i.BoxAlignment], 2715220739: (i) => [i.ProfileType, i.ProfileName, i.Position, i.BottomXDim, i.TopXDim, i.YDim, i.TopXOffset], 1345879162: (i) => [i.RepeatFactor, i.SecondRepeatFactor], 1628702193: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets], 2347495698: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag], 427810014: (i) => [i.ProfileType, i.ProfileName, i.Position, i.Depth, i.FlangeWidth, i.WebThickness, i.FlangeThickness, i.FilletRadius, i.EdgeRadius, i.FlangeSlope, i.CentreOfGravityInX], 1417489154: (i) => [i.Orientation, i.Magnitude], 2759199220: (i) => [i.LoopVertex], 336235671: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.LiningDepth, i.LiningThickness, i.TransomThickness, i.MullionThickness, i.FirstTransomOffset, i.SecondTransomOffset, i.FirstMullionOffset, i.SecondMullionOffset, i.ShapeAspectStyle], 512836454: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.OperationType, i.PanelPosition, i.FrameDepth, i.FrameThickness, i.ShapeAspectStyle], 1299126871: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ConstructionType, i.OperationType, i.ParameterTakesPrecedence, i.Sizeable], 2543172580: (i) => [i.ProfileType, i.ProfileName, i.Position, i.Depth, i.FlangeWidth, i.WebThickness, i.FlangeThickness, i.FilletRadius, i.EdgeRadius], 3288037868: (i) => [i.Item, i.Styles, i.Name], 669184980: (i) => [i.OuterBoundary, i.InnerBoundaries], 2265737646: (i) => [i.Item, i.Styles, i.Name, i.FillStyleTarget, i.GlobalOrLocal], 1302238472: (i) => [i.Item, i.TextureCoordinates], 4261334040: (i) => [i.Location, i.Axis], 3125803723: (i) => [i.Location, i.RefDirection], 2740243338: (i) => [i.Location, i.Axis, i.RefDirection], 2736907675: (i) => [i.Operator, i.FirstOperand, i.SecondOperand], 4182860854: (_) => [], 2581212453: (i) => [i.Corner, i.XDim, i.YDim, i.ZDim], 2713105998: (i) => [i.BaseSurface, i.AgreementFlag, i.Enclosure], 2898889636: (i) => [i.ProfileType, i.ProfileName, i.Position, i.Depth, i.Width, i.WallThickness, i.Girth, i.InternalFilletRadius, i.CentreOfGravityInX], 1123145078: (i) => [i.Coordinates], 59481748: (i) => [i.Axis1, i.Axis2, i.LocalOrigin, i.Scale], 3749851601: (i) => [i.Axis1, i.Axis2, i.LocalOrigin, i.Scale], 3486308946: (i) => [i.Axis1, i.Axis2, i.LocalOrigin, i.Scale, i.Scale2], 3331915920: (i) => [i.Axis1, i.Axis2, i.LocalOrigin, i.Scale, i.Axis3], 1416205885: (i) => [i.Axis1, i.Axis2, i.LocalOrigin, i.Scale, i.Axis3, i.Scale2, i.Scale3], 1383045692: (i) => [i.ProfileType, i.ProfileName, i.Position, i.Radius], 2205249479: (i) => [i.CfsFaces], 2485617015: (i) => [i.Transition, i.SameSense, i.ParentCurve], 4133800736: (i) => [i.ProfileType, i.ProfileName, i.Position, i.OverallHeight, i.BaseWidth2, i.Radius, i.HeadWidth, i.HeadDepth2, i.HeadDepth3, i.WebThickness, i.BaseWidth4, i.BaseDepth1, i.BaseDepth2, i.BaseDepth3, i.CentreOfGravityInY], 194851669: (i) => [i.ProfileType, i.ProfileName, i.Position, i.OverallHeight, i.HeadWidth, i.Radius, i.HeadDepth2, i.HeadDepth3, i.WebThickness, i.BaseDepth1, i.BaseDepth2, i.CentreOfGravityInY], 2506170314: (i) => [i.Position], 2147822146: (i) => [i.TreeRootExpression], 2601014836: (_) => [], 2827736869: (i) => [i.BasisSurface, i.OuterBoundary, i.InnerBoundaries], 693772133: (i) => [i.Definition, i.Target], 606661476: (i) => [i.Item, i.Styles, i.Name], 4054601972: (i) => [i.Item, i.Styles, i.Name, i.AnnotatedCurve, i.Role], 32440307: (i) => [i.DirectionRatios], 2963535650: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.LiningDepth, i.LiningThickness, i.ThresholdDepth, i.ThresholdThickness, i.TransomThickness, i.TransomOffset, i.LiningOffset, i.ThresholdOffset, i.CasingThickness, i.CasingDepth, i.ShapeAspectStyle], 1714330368: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.PanelDepth, i.PanelOperation, i.PanelWidth, i.PanelPosition, i.ShapeAspectStyle], 526551008: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.OperationType, i.ConstructionType, i.ParameterTakesPrecedence, i.Sizeable], 3073041342: (i) => [i.Contents], 445594917: (i) => [i.Name], 4006246654: (i) => [i.Name], 1472233963: (i) => [i.EdgeList], 1883228015: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.MethodOfMeasurement, i.Quantities], 339256511: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType], 2777663545: (i) => [i.Position], 2835456948: (i) => [i.ProfileType, i.ProfileName, i.Position, i.SemiAxis1, i.SemiAxis2], 80994333: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.EnergySequence, i.UserDefinedEnergySequence], 477187591: (i) => [i.SweptArea, i.Position, i.ExtrudedDirection, i.Depth], 2047409740: (i) => [i.FbsmFaces], 374418227: (i) => [i.HatchLineAppearance, i.StartOfNextHatchLine, i.PointOfReferenceHatchLine, i.PatternStart, i.HatchLineAngle], 4203026998: (i) => [i.Symbol], 315944413: (i) => [i.TilingPattern, i.Tiles, i.TilingScale], 3455213021: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.PropertySource, i.FlowConditionTimeSeries, i.VelocityTimeSeries, i.FlowrateTimeSeries, i.Fluid, i.PressureTimeSeries, i.UserDefinedPropertySource, i.TemperatureSingleValue, i.WetBulbTemperatureSingleValue, i.WetBulbTemperatureTimeSeries, i.TemperatureTimeSeries, !i.FlowrateSingleValue ? null : Labelise(i.FlowrateSingleValue), i.FlowConditionSingleValue, i.VelocitySingleValue, i.PressureSingleValue], 4238390223: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType], 1268542332: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.AssemblyPlace], 987898635: (i) => [i.Elements], 1484403080: (i) => [i.ProfileType, i.ProfileName, i.Position, i.OverallWidth, i.OverallDepth, i.WebThickness, i.FlangeThickness, i.FilletRadius], 572779678: (i) => [i.ProfileType, i.ProfileName, i.Position, i.Depth, i.Width, i.Thickness, i.FilletRadius, i.EdgeRadius, i.LegSlope, i.CentreOfGravityInX, i.CentreOfGravityInY], 1281925730: (i) => [i.Pnt, i.Dir], 1425443689: (i) => [i.Outer], 3888040117: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType], 3388369263: (i) => [i.BasisCurve, i.Distance, i.SelfIntersect], 3505215534: (i) => [i.BasisCurve, i.Distance, i.SelfIntersect, i.RefDirection], 3566463478: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.OperationType, i.PanelPosition, i.FrameDepth, i.FrameThickness, i.ShapeAspectStyle], 603570806: (i) => [i.SizeInX, i.SizeInY, i.Placement], 220341763: (i) => [i.Position], 2945172077: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType], 4208778838: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation], 103090709: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.LongName, i.Phase, i.RepresentationContexts, i.UnitsInContext], 4194566429: (i) => [i.Item, i.Styles, i.Name], 1451395588: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.HasProperties], 3219374653: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.ProxyType, i.Tag], 2770003689: (i) => [i.ProfileType, i.ProfileName, i.Position, i.XDim, i.YDim, i.WallThickness, i.InnerFilletRadius, i.OuterFilletRadius], 2798486643: (i) => [i.Position, i.XLength, i.YLength, i.Height], 3454111270: (i) => [i.BasisSurface, i.U1, i.V1, i.U2, i.V2, i.Usense, i.Vsense], 3939117080: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatedObjectsType], 1683148259: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatedObjectsType, i.RelatingActor, i.ActingRole], 2495723537: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatedObjectsType, i.RelatingControl], 1307041759: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatedObjectsType, i.RelatingGroup], 4278684876: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatedObjectsType, i.RelatingProcess, i.QuantityInProcess], 2857406711: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatedObjectsType, i.RelatingProduct], 3372526763: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatedObjectsType, i.RelatingControl], 205026976: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatedObjectsType, i.RelatingResource], 1865459582: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects], 1327628568: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatingAppliedValue], 4095574036: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatingApproval], 919958153: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatingClassification], 2728634034: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.Intent, i.RelatingConstraint], 982818633: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatingDocument], 3840914261: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatingLibrary], 2655215786: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatingMaterial], 2851387026: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatingProfileProperties, i.ProfileSectionLocation, i.ProfileOrientation], 826625072: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description], 1204542856: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ConnectionGeometry, i.RelatingElement, i.RelatedElement], 3945020480: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ConnectionGeometry, i.RelatingElement, i.RelatedElement, i.RelatingPriorities, i.RelatedPriorities, i.RelatedConnectionType, i.RelatingConnectionType], 4201705270: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingPort, i.RelatedElement], 3190031847: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingPort, i.RelatedPort, i.RealizingElement], 2127690289: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingElement, i.RelatedStructuralActivity], 3912681535: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingElement, i.RelatedStructuralMember], 1638771189: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingStructuralMember, i.RelatedStructuralConnection, i.AppliedCondition, i.AdditionalConditions, i.SupportedLength, i.ConditionCoordinateSystem], 504942748: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingStructuralMember, i.RelatedStructuralConnection, i.AppliedCondition, i.AdditionalConditions, i.SupportedLength, i.ConditionCoordinateSystem, i.ConnectionConstraint], 3678494232: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ConnectionGeometry, i.RelatingElement, i.RelatedElement, i.RealizingElements, i.ConnectionType], 3242617779: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedElements, i.RelatingStructure], 886880790: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingBuildingElement, i.RelatedCoverings], 2802773753: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedSpace, i.RelatedCoverings], 2551354335: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingObject, i.RelatedObjects], 693640335: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects], 4186316022: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatingPropertyDefinition], 781010003: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatingType], 3940055652: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingOpeningElement, i.RelatedBuildingElement], 279856033: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedControlElements, i.RelatingFlowElement], 4189434867: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.DailyInteraction, i.ImportanceRating, i.LocationOfInteraction, i.RelatedSpaceProgram, i.RelatingSpaceProgram], 3268803585: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingObject, i.RelatedObjects], 2051452291: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatedObjectsType, i.RelatingActor, i.ActingRole], 202636808: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatingPropertyDefinition, i.OverridingProperties], 750771296: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingElement, i.RelatedFeatureElement], 1245217292: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedElements, i.RelatingStructure], 1058617721: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatedObjectsType, i.RelatingControl], 4122056220: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingProcess, i.RelatedProcess, i.TimeLag, i.SequenceType], 366585022: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingSystem, i.RelatedBuildings], 3451746338: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingSpace, i.RelatedBuildingElement, i.ConnectionGeometry, i.PhysicalOrVirtualBoundary, i.InternalOrExternalBoundary], 1401173127: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingBuildingElement, i.RelatedOpeningElement], 2914609552: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType], 1856042241: (i) => [i.SweptArea, i.Position, i.Axis, i.Angle], 4158566097: (i) => [i.Position, i.Height, i.BottomRadius], 3626867408: (i) => [i.Position, i.Height, i.Radius], 2706606064: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.LongName, i.CompositionType], 3893378262: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType], 451544542: (i) => [i.Position, i.Radius], 3544373492: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedLoad, i.GlobalOrLocal], 3136571912: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation], 530289379: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation], 3689010777: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedLoad, i.GlobalOrLocal], 3979015343: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.PredefinedType, i.Thickness], 2218152070: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.PredefinedType, i.Thickness, i.SubsequentThickness, i.VaryingThicknessLocation], 4070609034: (i) => [i.Contents], 2028607225: (i) => [i.SweptArea, i.Position, i.Directrix, i.StartParam, i.EndParam, i.ReferenceSurface], 2809605785: (i) => [i.SweptCurve, i.Position, i.ExtrudedDirection, i.Depth], 4124788165: (i) => [i.SweptCurve, i.Position, i.AxisPosition], 1580310250: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType], 3473067441: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.TaskId, i.Status, i.WorkMethod, i.IsMilestone, i.Priority], 2097647324: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 2296667514: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.TheActor], 1674181508: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation], 3207858831: (i) => [i.ProfileType, i.ProfileName, i.Position, i.OverallWidth, i.OverallDepth, i.WebThickness, i.FlangeThickness, i.FilletRadius, i.TopFlangeWidth, i.TopFlangeThickness, i.TopFlangeFilletRadius, i.CentreOfGravityInY], 1334484129: (i) => [i.Position, i.XLength, i.YLength, i.ZLength], 3649129432: (i) => [i.Operator, i.FirstOperand, i.SecondOperand], 1260505505: (_) => [], 4031249490: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.LongName, i.CompositionType, i.ElevationOfRefHeight, i.ElevationOfTerrain, i.BuildingAddress], 1950629157: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType], 3124254112: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.LongName, i.CompositionType, i.Elevation], 2937912522: (i) => [i.ProfileType, i.ProfileName, i.Position, i.Radius, i.WallThickness], 300633059: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 3732776249: (i) => [i.Segments, i.SelfIntersect], 2510884976: (i) => [i.Position], 2559216714: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ResourceIdentifier, i.ResourceGroup, i.ResourceConsumption, i.BaseQuantity], 3293443760: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType], 3895139033: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType], 1419761937: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.SubmittedBy, i.PreparedBy, i.SubmittedOn, i.Status, i.TargetUsers, i.UpdateDate, i.ID, i.PredefinedType], 1916426348: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 3295246426: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ResourceIdentifier, i.ResourceGroup, i.ResourceConsumption, i.BaseQuantity], 1457835157: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 681481545: (i) => [i.Contents], 3256556792: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType], 3849074793: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType], 360485395: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.EnergySequence, i.UserDefinedEnergySequence, i.ElectricCurrentType, i.InputVoltage, i.InputFrequency, i.FullLoadCurrent, i.MinimumCircuitCurrent, i.MaximumPowerInput, i.RatedPowerInput, i.InputPhase], 1758889154: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag], 4123344466: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.AssemblyPlace, i.PredefinedType], 1623761950: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag], 2590856083: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType], 1704287377: (i) => [i.Position, i.SemiAxis1, i.SemiAxis2], 2107101300: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType], 1962604670: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag], 3272907226: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType], 3174744832: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 3390157468: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 807026263: (i) => [i.Outer], 3737207727: (i) => [i.Outer, i.Voids], 647756555: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag], 2489546625: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType], 2827207264: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag], 2143335405: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag], 1287392070: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag], 3907093117: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType], 3198132628: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType], 3815607619: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 1482959167: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType], 1834744321: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType], 1339347760: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType], 2297155007: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType], 3009222698: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType], 263784265: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag], 814719939: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType], 200128114: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 3009204131: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.UAxes, i.VAxes, i.WAxes], 2706460486: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType], 1251058090: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 1806887404: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 2391368822: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.InventoryType, i.Jurisdiction, i.ResponsiblePersons, i.LastUpdateDate, i.CurrentValue, i.OriginalValue], 4288270099: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 3827777499: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ResourceIdentifier, i.ResourceGroup, i.ResourceConsumption, i.BaseQuantity, i.SkillSet], 1051575348: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 1161773419: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 2506943328: (i) => [i.Contents], 377706215: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.NominalDiameter, i.NominalLength], 2108223431: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType], 3181161470: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 977012517: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 1916936684: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.TaskId, i.Status, i.WorkMethod, i.IsMilestone, i.Priority, i.MoveFrom, i.MoveTo, i.PunchList], 4143007308: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.TheActor, i.PredefinedType], 3588315303: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag], 3425660407: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.TaskId, i.Status, i.WorkMethod, i.IsMilestone, i.Priority, i.ActionID], 2837617999: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 2382730787: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.LifeCyclePhase], 3327091369: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.PermitID], 804291784: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 4231323485: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 4017108033: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 3724593414: (i) => [i.Points], 3740093272: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation], 2744685151: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ProcedureID, i.ProcedureType, i.UserDefinedProcedureType], 2904328755: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ID, i.PredefinedType, i.Status], 3642467123: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Records, i.PredefinedType], 3651124850: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag], 1842657554: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 2250791053: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 3248260540: (i) => [i.Contents], 2893384427: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 2324767716: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 160246688: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingObject, i.RelatedObjects], 2863920197: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatedObjectsType, i.RelatingControl, i.TimeForTask], 1768891740: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 3517283431: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ActualStart, i.EarlyStart, i.LateStart, i.ScheduleStart, i.ActualFinish, i.EarlyFinish, i.LateFinish, i.ScheduleFinish, i.ScheduleDuration, i.ActualDuration, i.RemainingTime, i.FreeFloat, i.TotalFloat, i.IsCritical, i.StatusTime, i.StartFloat, i.FinishFloat, i.Completion], 4105383287: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ServiceLifeType, i.ServiceLifeDuration], 4097777520: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.LongName, i.CompositionType, i.RefLatitude, i.RefLongitude, i.RefElevation, i.LandTitleNumber, i.SiteAddress], 2533589738: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 3856911033: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.LongName, i.CompositionType, i.InteriorOrExteriorSpace, i.ElevationWithFlooring], 1305183839: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 652456506: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.SpaceProgramIdentifier, i.MaxRequiredArea, i.MinRequiredArea, i.RequestedLocation, i.StandardRequiredArea], 3812236995: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 3112655638: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 1039846685: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 682877961: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedLoad, i.GlobalOrLocal, i.DestabilizingLoad, i.CausedBy], 1179482911: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedCondition], 4243806635: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedCondition], 214636428: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.PredefinedType], 2445595289: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.PredefinedType], 1807405624: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedLoad, i.GlobalOrLocal, i.DestabilizingLoad, i.CausedBy, i.ProjectedOrTrue], 1721250024: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedLoad, i.GlobalOrLocal, i.DestabilizingLoad, i.CausedBy, i.ProjectedOrTrue, i.VaryingAppliedLoadLocation, i.SubsequentAppliedLoads], 1252848954: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.PredefinedType, i.ActionType, i.ActionSource, i.Coefficient, i.Purpose], 1621171031: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedLoad, i.GlobalOrLocal, i.DestabilizingLoad, i.CausedBy, i.ProjectedOrTrue], 3987759626: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedLoad, i.GlobalOrLocal, i.DestabilizingLoad, i.CausedBy, i.ProjectedOrTrue, i.VaryingAppliedLoadLocation, i.SubsequentAppliedLoads], 2082059205: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedLoad, i.GlobalOrLocal, i.DestabilizingLoad, i.CausedBy], 734778138: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedCondition], 1235345126: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedLoad, i.GlobalOrLocal], 2986769608: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.TheoryType, i.ResultForLoadGroup, i.IsLinear], 1975003073: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedCondition], 148013059: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ResourceIdentifier, i.ResourceGroup, i.ResourceConsumption, i.BaseQuantity, i.SubContractor, i.JobDescription], 2315554128: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 2254336722: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType], 5716631: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 1637806684: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ApplicableDates, i.TimeSeriesScheduleType, i.TimeSeries], 1692211062: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 1620046519: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.OperationType, i.CapacityByWeight, i.CapacityByNumber], 3593883385: (i) => [i.BasisCurve, i.Trim1, i.Trim2, i.SenseAgreement, i.MasterRepresentation], 1600972822: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 1911125066: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 728799441: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 2769231204: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag], 1898987631: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 1133259667: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 1028945134: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identifier, i.CreationDate, i.Creators, i.Purpose, i.Duration, i.TotalFloat, i.StartTime, i.FinishTime, i.WorkControlType, i.UserDefinedControlType], 4218914973: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identifier, i.CreationDate, i.Creators, i.Purpose, i.Duration, i.TotalFloat, i.StartTime, i.FinishTime, i.WorkControlType, i.UserDefinedControlType], 3342526732: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identifier, i.CreationDate, i.Creators, i.Purpose, i.Duration, i.TotalFloat, i.StartTime, i.FinishTime, i.WorkControlType, i.UserDefinedControlType], 1033361043: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType], 1213861670: (i) => [i.Segments, i.SelfIntersect], 3821786052: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.RequestID], 1411407467: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 3352864051: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 1871374353: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 2470393545: (i) => [i.Contents], 3460190687: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.AssetID, i.OriginalValue, i.CurrentValue, i.TotalReplacementCost, i.Owner, i.User, i.ResponsiblePerson, i.IncorporationDate, i.DepreciatedValue], 1967976161: (i) => [i.Degree, i.ControlPointsList, i.CurveForm, i.ClosedCurve, i.SelfIntersect], 819618141: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 1916977116: (i) => [i.Degree, i.ControlPointsList, i.CurveForm, i.ClosedCurve, i.SelfIntersect], 231477066: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 3299480353: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag], 52481810: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag], 2979338954: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag], 1095909175: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.CompositionType], 1909888760: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 395041908: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 3293546465: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 1285652485: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 2951183804: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 2611217952: (i) => [i.Position, i.Radius], 2301859152: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 843113511: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag], 3850581409: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 2816379211: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 2188551683: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType], 1163958913: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Criterion, i.CriterionDateTime], 3898045240: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ResourceIdentifier, i.ResourceGroup, i.ResourceConsumption, i.BaseQuantity], 1060000209: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ResourceIdentifier, i.ResourceGroup, i.ResourceConsumption, i.BaseQuantity, i.Suppliers, i.UsageRatio], 488727124: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ResourceIdentifier, i.ResourceGroup, i.ResourceConsumption, i.BaseQuantity], 335055490: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 2954562838: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 1973544240: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 3495092785: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag], 3961806047: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 4147604152: (i) => [i.Contents], 1335981549: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag], 2635815018: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType], 1599208980: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 2063403501: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType], 1945004755: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag], 3040386961: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag], 3041715199: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.FlowDirection], 395920057: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.OverallHeight, i.OverallWidth], 869906466: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 3760055223: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 2030761528: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 855621170: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.FeatureLength], 663422040: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 3277789161: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 1534661035: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 1365060375: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 1217240411: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 712377611: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 1634875225: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType], 857184966: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag], 1658829314: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag], 346874300: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 1810631287: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 4222183408: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 2058353004: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag], 4278956645: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag], 4037862832: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 3132237377: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag], 987401354: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag], 707683696: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag], 2223149337: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag], 3508470533: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag], 900683007: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 1073191201: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag], 1687234759: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType, i.ConstructionType], 3171933400: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag], 2262370178: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 3024970846: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.ShapeType], 3283111854: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag], 3055160366: (i) => [i.Degree, i.ControlPointsList, i.CurveForm, i.ClosedCurve, i.SelfIntersect, i.WeightsData], 3027567501: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.SteelGrade], 2320036040: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.SteelGrade, i.MeshLength, i.MeshWidth, i.LongitudinalBarNominalDiameter, i.TransverseBarNominalDiameter, i.LongitudinalBarCrossSectionArea, i.TransverseBarCrossSectionArea, i.LongitudinalBarSpacing, i.TransverseBarSpacing], 2016517767: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.ShapeType], 1376911519: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.FeatureLength, i.Radius], 1783015770: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 1529196076: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 331165859: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.ShapeType], 4252922144: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.NumberOfRiser, i.NumberOfTreads, i.RiserHeight, i.TreadLength], 2515109513: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.PredefinedType, i.OrientationOf2DPlane, i.LoadedBy, i.HasResults], 3824725483: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.SteelGrade, i.PredefinedType, i.NominalDiameter, i.CrossSectionArea, i.TensionForce, i.PreStress, i.FrictionCoefficient, i.AnchorageSlip, i.MinCurvatureRadius], 2347447852: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.SteelGrade], 3313531582: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 2391406946: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag], 3512223829: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag], 3304561284: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.OverallHeight, i.OverallWidth], 2874132201: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 3001207471: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 753842376: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag], 2454782716: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.FeatureLength, i.Width, i.Height], 578613899: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 1052013943: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag], 1062813311: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.ControlElementId], 3700593921: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.DistributionPointFunction, i.UserDefinedFunction], 979691226: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.SteelGrade, i.NominalDiameter, i.CrossSectionArea, i.BarLength, i.BarRole, i.BarSurface] }; TypeInitialisers[1] = { 3699917729: (v) => new IFC2X3.IfcAbsorbedDoseMeasure(v), 4182062534: (v) => new IFC2X3.IfcAccelerationMeasure(v), 360377573: (v) => new IFC2X3.IfcAmountOfSubstanceMeasure(v), 632304761: (v) => new IFC2X3.IfcAngularVelocityMeasure(v), 2650437152: (v) => new IFC2X3.IfcAreaMeasure(v), 2735952531: (v) => new IFC2X3.IfcBoolean(v), 1867003952: (v) => new IFC2X3.IfcBoxAlignment(v), 2991860651: (v) => new IFC2X3.IfcComplexNumber(v), 3812528620: (v) => new IFC2X3.IfcCompoundPlaneAngleMeasure(v), 3238673880: (v) => new IFC2X3.IfcContextDependentMeasure(v), 1778710042: (v) => new IFC2X3.IfcCountMeasure(v), 94842927: (v) => new IFC2X3.IfcCurvatureMeasure(v), 86635668: (v) => new IFC2X3.IfcDayInMonthNumber(v), 300323983: (v) => new IFC2X3.IfcDaylightSavingHour(v), 1514641115: (v) => new IFC2X3.IfcDescriptiveMeasure(v), 4134073009: (v) => new IFC2X3.IfcDimensionCount(v), 524656162: (v) => new IFC2X3.IfcDoseEquivalentMeasure(v), 69416015: (v) => new IFC2X3.IfcDynamicViscosityMeasure(v), 1827137117: (v) => new IFC2X3.IfcElectricCapacitanceMeasure(v), 3818826038: (v) => new IFC2X3.IfcElectricChargeMeasure(v), 2093906313: (v) => new IFC2X3.IfcElectricConductanceMeasure(v), 3790457270: (v) => new IFC2X3.IfcElectricCurrentMeasure(v), 2951915441: (v) => new IFC2X3.IfcElectricResistanceMeasure(v), 2506197118: (v) => new IFC2X3.IfcElectricVoltageMeasure(v), 2078135608: (v) => new IFC2X3.IfcEnergyMeasure(v), 1102727119: (v) => new IFC2X3.IfcFontStyle(v), 2715512545: (v) => new IFC2X3.IfcFontVariant(v), 2590844177: (v) => new IFC2X3.IfcFontWeight(v), 1361398929: (v) => new IFC2X3.IfcForceMeasure(v), 3044325142: (v) => new IFC2X3.IfcFrequencyMeasure(v), 3064340077: (v) => new IFC2X3.IfcGloballyUniqueId(v), 3113092358: (v) => new IFC2X3.IfcHeatFluxDensityMeasure(v), 1158859006: (v) => new IFC2X3.IfcHeatingValueMeasure(v), 2589826445: (v) => new IFC2X3.IfcHourInDay(v), 983778844: (v) => new IFC2X3.IfcIdentifier(v), 3358199106: (v) => new IFC2X3.IfcIlluminanceMeasure(v), 2679005408: (v) => new IFC2X3.IfcInductanceMeasure(v), 1939436016: (v) => new IFC2X3.IfcInteger(v), 3809634241: (v) => new IFC2X3.IfcIntegerCountRateMeasure(v), 3686016028: (v) => new IFC2X3.IfcIonConcentrationMeasure(v), 3192672207: (v) => new IFC2X3.IfcIsothermalMoistureCapacityMeasure(v), 2054016361: (v) => new IFC2X3.IfcKinematicViscosityMeasure(v), 3258342251: (v) => new IFC2X3.IfcLabel(v), 1243674935: (v) => new IFC2X3.IfcLengthMeasure(v), 191860431: (v) => new IFC2X3.IfcLinearForceMeasure(v), 2128979029: (v) => new IFC2X3.IfcLinearMomentMeasure(v), 1307019551: (v) => new IFC2X3.IfcLinearStiffnessMeasure(v), 3086160713: (v) => new IFC2X3.IfcLinearVelocityMeasure(v), 503418787: (v) => new IFC2X3.IfcLogical(v), 2095003142: (v) => new IFC2X3.IfcLuminousFluxMeasure(v), 2755797622: (v) => new IFC2X3.IfcLuminousIntensityDistributionMeasure(v), 151039812: (v) => new IFC2X3.IfcLuminousIntensityMeasure(v), 286949696: (v) => new IFC2X3.IfcMagneticFluxDensityMeasure(v), 2486716878: (v) => new IFC2X3.IfcMagneticFluxMeasure(v), 1477762836: (v) => new IFC2X3.IfcMassDensityMeasure(v), 4017473158: (v) => new IFC2X3.IfcMassFlowRateMeasure(v), 3124614049: (v) => new IFC2X3.IfcMassMeasure(v), 3531705166: (v) => new IFC2X3.IfcMassPerLengthMeasure(v), 102610177: (v) => new IFC2X3.IfcMinuteInHour(v), 3341486342: (v) => new IFC2X3.IfcModulusOfElasticityMeasure(v), 2173214787: (v) => new IFC2X3.IfcModulusOfLinearSubgradeReactionMeasure(v), 1052454078: (v) => new IFC2X3.IfcModulusOfRotationalSubgradeReactionMeasure(v), 1753493141: (v) => new IFC2X3.IfcModulusOfSubgradeReactionMeasure(v), 3177669450: (v) => new IFC2X3.IfcMoistureDiffusivityMeasure(v), 1648970520: (v) => new IFC2X3.IfcMolecularWeightMeasure(v), 3114022597: (v) => new IFC2X3.IfcMomentOfInertiaMeasure(v), 2615040989: (v) => new IFC2X3.IfcMonetaryMeasure(v), 765770214: (v) => new IFC2X3.IfcMonthInYearNumber(v), 2095195183: (v) => new IFC2X3.IfcNormalisedRatioMeasure(v), 2395907400: (v) => new IFC2X3.IfcNumericMeasure(v), 929793134: (v) => new IFC2X3.IfcPHMeasure(v), 2260317790: (v) => new IFC2X3.IfcParameterValue(v), 2642773653: (v) => new IFC2X3.IfcPlanarForceMeasure(v), 4042175685: (v) => new IFC2X3.IfcPlaneAngleMeasure(v), 2815919920: (v) => new IFC2X3.IfcPositiveLengthMeasure(v), 3054510233: (v) => new IFC2X3.IfcPositivePlaneAngleMeasure(v), 1245737093: (v) => new IFC2X3.IfcPositiveRatioMeasure(v), 1364037233: (v) => new IFC2X3.IfcPowerMeasure(v), 2169031380: (v) => new IFC2X3.IfcPresentableText(v), 3665567075: (v) => new IFC2X3.IfcPressureMeasure(v), 3972513137: (v) => new IFC2X3.IfcRadioActivityMeasure(v), 96294661: (v) => new IFC2X3.IfcRatioMeasure(v), 200335297: (v) => new IFC2X3.IfcReal(v), 2133746277: (v) => new IFC2X3.IfcRotationalFrequencyMeasure(v), 1755127002: (v) => new IFC2X3.IfcRotationalMassMeasure(v), 3211557302: (v) => new IFC2X3.IfcRotationalStiffnessMeasure(v), 2766185779: (v) => new IFC2X3.IfcSecondInMinute(v), 3467162246: (v) => new IFC2X3.IfcSectionModulusMeasure(v), 2190458107: (v) => new IFC2X3.IfcSectionalAreaIntegralMeasure(v), 408310005: (v) => new IFC2X3.IfcShearModulusMeasure(v), 3471399674: (v) => new IFC2X3.IfcSolidAngleMeasure(v), 846465480: (v) => new IFC2X3.IfcSoundPowerMeasure(v), 993287707: (v) => new IFC2X3.IfcSoundPressureMeasure(v), 3477203348: (v) => new IFC2X3.IfcSpecificHeatCapacityMeasure(v), 2757832317: (v) => new IFC2X3.IfcSpecularExponent(v), 361837227: (v) => new IFC2X3.IfcSpecularRoughness(v), 58845555: (v) => new IFC2X3.IfcTemperatureGradientMeasure(v), 2801250643: (v) => new IFC2X3.IfcText(v), 1460886941: (v) => new IFC2X3.IfcTextAlignment(v), 3490877962: (v) => new IFC2X3.IfcTextDecoration(v), 603696268: (v) => new IFC2X3.IfcTextFontName(v), 296282323: (v) => new IFC2X3.IfcTextTransformation(v), 232962298: (v) => new IFC2X3.IfcThermalAdmittanceMeasure(v), 2645777649: (v) => new IFC2X3.IfcThermalConductivityMeasure(v), 2281867870: (v) => new IFC2X3.IfcThermalExpansionCoefficientMeasure(v), 857959152: (v) => new IFC2X3.IfcThermalResistanceMeasure(v), 2016195849: (v) => new IFC2X3.IfcThermalTransmittanceMeasure(v), 743184107: (v) => new IFC2X3.IfcThermodynamicTemperatureMeasure(v), 2726807636: (v) => new IFC2X3.IfcTimeMeasure(v), 2591213694: (v) => new IFC2X3.IfcTimeStamp(v), 1278329552: (v) => new IFC2X3.IfcTorqueMeasure(v), 3345633955: (v) => new IFC2X3.IfcVaporPermeabilityMeasure(v), 3458127941: (v) => new IFC2X3.IfcVolumeMeasure(v), 2593997549: (v) => new IFC2X3.IfcVolumetricFlowRateMeasure(v), 51269191: (v) => new IFC2X3.IfcWarpingConstantMeasure(v), 1718600412: (v) => new IFC2X3.IfcWarpingMomentMeasure(v), 4065007721: (v) => new IFC2X3.IfcYearNumber(v) }; var IFC2X3; (function(IFC2X32) { class IfcAbsorbedDoseMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC2X32.IfcAbsorbedDoseMeasure = IfcAbsorbedDoseMeasure; class IfcAccelerationMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC2X32.IfcAccelerationMeasure = IfcAccelerationMeasure; class IfcAmountOfSubstanceMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC2X32.IfcAmountOfSubstanceMeasure = IfcAmountOfSubstanceMeasure; class IfcAngularVelocityMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC2X32.IfcAngularVelocityMeasure = IfcAngularVelocityMeasure; class IfcAreaMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC2X32.IfcAreaMeasure = IfcAreaMeasure; class IfcBoolean { constructor(value) { this.value = value; this.type = 3; } } IFC2X32.IfcBoolean = IfcBoolean; class IfcBoxAlignment { constructor(value) { this.value = value; this.type = 1; } } IFC2X32.IfcBoxAlignment = IfcBoxAlignment; class IfcComplexNumber { constructor(value) { this.value = value; } } IFC2X32.IfcComplexNumber = IfcComplexNumber; class IfcCompoundPlaneAngleMeasure { constructor(value) { this.value = value; } } IFC2X32.IfcCompoundPlaneAngleMeasure = IfcCompoundPlaneAngleMeasure; class IfcContextDependentMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC2X32.IfcContextDependentMeasure = IfcContextDependentMeasure; class IfcCountMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC2X32.IfcCountMeasure = IfcCountMeasure; class IfcCurvatureMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC2X32.IfcCurvatureMeasure = IfcCurvatureMeasure; class IfcDayInMonthNumber { constructor(value) { this.value = value; this.type = 4; } } IFC2X32.IfcDayInMonthNumber = IfcDayInMonthNumber; class IfcDaylightSavingHour { constructor(value) { this.value = value; this.type = 4; } } IFC2X32.IfcDaylightSavingHour = IfcDaylightSavingHour; class IfcDescriptiveMeasure { constructor(value) { this.value = value; this.type = 1; } } IFC2X32.IfcDescriptiveMeasure = IfcDescriptiveMeasure; class IfcDimensionCount { constructor(value) { this.value = value; this.type = 4; } } IFC2X32.IfcDimensionCount = IfcDimensionCount; class IfcDoseEquivalentMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC2X32.IfcDoseEquivalentMeasure = IfcDoseEquivalentMeasure; class IfcDynamicViscosityMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC2X32.IfcDynamicViscosityMeasure = IfcDynamicViscosityMeasure; class IfcElectricCapacitanceMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC2X32.IfcElectricCapacitanceMeasure = IfcElectricCapacitanceMeasure; class IfcElectricChargeMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC2X32.IfcElectricChargeMeasure = IfcElectricChargeMeasure; class IfcElectricConductanceMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC2X32.IfcElectricConductanceMeasure = IfcElectricConductanceMeasure; class IfcElectricCurrentMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC2X32.IfcElectricCurrentMeasure = IfcElectricCurrentMeasure; class IfcElectricResistanceMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC2X32.IfcElectricResistanceMeasure = IfcElectricResistanceMeasure; class IfcElectricVoltageMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC2X32.IfcElectricVoltageMeasure = IfcElectricVoltageMeasure; class IfcEnergyMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC2X32.IfcEnergyMeasure = IfcEnergyMeasure; class IfcFontStyle { constructor(value) { this.value = value; this.type = 1; } } IFC2X32.IfcFontStyle = IfcFontStyle; class IfcFontVariant { constructor(value) { this.value = value; this.type = 1; } } IFC2X32.IfcFontVariant = IfcFontVariant; class IfcFontWeight { constructor(value) { this.value = value; this.type = 1; } } IFC2X32.IfcFontWeight = IfcFontWeight; class IfcForceMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC2X32.IfcForceMeasure = IfcForceMeasure; class IfcFrequencyMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC2X32.IfcFrequencyMeasure = IfcFrequencyMeasure; class IfcGloballyUniqueId { constructor(value) { this.value = value; this.type = 1; } } IFC2X32.IfcGloballyUniqueId = IfcGloballyUniqueId; class IfcHeatFluxDensityMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC2X32.IfcHeatFluxDensityMeasure = IfcHeatFluxDensityMeasure; class IfcHeatingValueMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC2X32.IfcHeatingValueMeasure = IfcHeatingValueMeasure; class IfcHourInDay { constructor(value) { this.value = value; this.type = 4; } } IFC2X32.IfcHourInDay = IfcHourInDay; class IfcIdentifier { constructor(value) { this.value = value; this.type = 1; } } IFC2X32.IfcIdentifier = IfcIdentifier; class IfcIlluminanceMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC2X32.IfcIlluminanceMeasure = IfcIlluminanceMeasure; class IfcInductanceMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC2X32.IfcInductanceMeasure = IfcInductanceMeasure; class IfcInteger { constructor(value) { this.value = value; this.type = 4; } } IFC2X32.IfcInteger = IfcInteger; class IfcIntegerCountRateMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC2X32.IfcIntegerCountRateMeasure = IfcIntegerCountRateMeasure; class IfcIonConcentrationMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC2X32.IfcIonConcentrationMeasure = IfcIonConcentrationMeasure; class IfcIsothermalMoistureCapacityMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC2X32.IfcIsothermalMoistureCapacityMeasure = IfcIsothermalMoistureCapacityMeasure; class IfcKinematicViscosityMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC2X32.IfcKinematicViscosityMeasure = IfcKinematicViscosityMeasure; class IfcLabel { constructor(value) { this.value = value; this.type = 1; } } IFC2X32.IfcLabel = IfcLabel; class IfcLengthMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC2X32.IfcLengthMeasure = IfcLengthMeasure; class IfcLinearForceMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC2X32.IfcLinearForceMeasure = IfcLinearForceMeasure; class IfcLinearMomentMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC2X32.IfcLinearMomentMeasure = IfcLinearMomentMeasure; class IfcLinearStiffnessMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC2X32.IfcLinearStiffnessMeasure = IfcLinearStiffnessMeasure; class IfcLinearVelocityMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC2X32.IfcLinearVelocityMeasure = IfcLinearVelocityMeasure; class IfcLogical { constructor(value) { this.value = value; this.type = 3; } } IFC2X32.IfcLogical = IfcLogical; class IfcLuminousFluxMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC2X32.IfcLuminousFluxMeasure = IfcLuminousFluxMeasure; class IfcLuminousIntensityDistributionMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC2X32.IfcLuminousIntensityDistributionMeasure = IfcLuminousIntensityDistributionMeasure; class IfcLuminousIntensityMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC2X32.IfcLuminousIntensityMeasure = IfcLuminousIntensityMeasure; class IfcMagneticFluxDensityMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC2X32.IfcMagneticFluxDensityMeasure = IfcMagneticFluxDensityMeasure; class IfcMagneticFluxMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC2X32.IfcMagneticFluxMeasure = IfcMagneticFluxMeasure; class IfcMassDensityMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC2X32.IfcMassDensityMeasure = IfcMassDensityMeasure; class IfcMassFlowRateMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC2X32.IfcMassFlowRateMeasure = IfcMassFlowRateMeasure; class IfcMassMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC2X32.IfcMassMeasure = IfcMassMeasure; class IfcMassPerLengthMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC2X32.IfcMassPerLengthMeasure = IfcMassPerLengthMeasure; class IfcMinuteInHour { constructor(value) { this.value = value; this.type = 4; } } IFC2X32.IfcMinuteInHour = IfcMinuteInHour; class IfcModulusOfElasticityMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC2X32.IfcModulusOfElasticityMeasure = IfcModulusOfElasticityMeasure; class IfcModulusOfLinearSubgradeReactionMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC2X32.IfcModulusOfLinearSubgradeReactionMeasure = IfcModulusOfLinearSubgradeReactionMeasure; class IfcModulusOfRotationalSubgradeReactionMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC2X32.IfcModulusOfRotationalSubgradeReactionMeasure = IfcModulusOfRotationalSubgradeReactionMeasure; class IfcModulusOfSubgradeReactionMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC2X32.IfcModulusOfSubgradeReactionMeasure = IfcModulusOfSubgradeReactionMeasure; class IfcMoistureDiffusivityMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC2X32.IfcMoistureDiffusivityMeasure = IfcMoistureDiffusivityMeasure; class IfcMolecularWeightMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC2X32.IfcMolecularWeightMeasure = IfcMolecularWeightMeasure; class IfcMomentOfInertiaMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC2X32.IfcMomentOfInertiaMeasure = IfcMomentOfInertiaMeasure; class IfcMonetaryMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC2X32.IfcMonetaryMeasure = IfcMonetaryMeasure; class IfcMonthInYearNumber { constructor(value) { this.value = value; this.type = 4; } } IFC2X32.IfcMonthInYearNumber = IfcMonthInYearNumber; class IfcNormalisedRatioMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC2X32.IfcNormalisedRatioMeasure = IfcNormalisedRatioMeasure; class IfcNumericMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC2X32.IfcNumericMeasure = IfcNumericMeasure; class IfcPHMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC2X32.IfcPHMeasure = IfcPHMeasure; class IfcParameterValue { constructor(value) { this.value = value; this.type = 4; } } IFC2X32.IfcParameterValue = IfcParameterValue; class IfcPlanarForceMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC2X32.IfcPlanarForceMeasure = IfcPlanarForceMeasure; class IfcPlaneAngleMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC2X32.IfcPlaneAngleMeasure = IfcPlaneAngleMeasure; class IfcPositiveLengthMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC2X32.IfcPositiveLengthMeasure = IfcPositiveLengthMeasure; class IfcPositivePlaneAngleMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC2X32.IfcPositivePlaneAngleMeasure = IfcPositivePlaneAngleMeasure; class IfcPositiveRatioMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC2X32.IfcPositiveRatioMeasure = IfcPositiveRatioMeasure; class IfcPowerMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC2X32.IfcPowerMeasure = IfcPowerMeasure; class IfcPresentableText { constructor(value) { this.value = value; this.type = 1; } } IFC2X32.IfcPresentableText = IfcPresentableText; class IfcPressureMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC2X32.IfcPressureMeasure = IfcPressureMeasure; class IfcRadioActivityMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC2X32.IfcRadioActivityMeasure = IfcRadioActivityMeasure; class IfcRatioMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC2X32.IfcRatioMeasure = IfcRatioMeasure; class IfcReal { constructor(value) { this.value = value; this.type = 4; } } IFC2X32.IfcReal = IfcReal; class IfcRotationalFrequencyMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC2X32.IfcRotationalFrequencyMeasure = IfcRotationalFrequencyMeasure; class IfcRotationalMassMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC2X32.IfcRotationalMassMeasure = IfcRotationalMassMeasure; class IfcRotationalStiffnessMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC2X32.IfcRotationalStiffnessMeasure = IfcRotationalStiffnessMeasure; class IfcSecondInMinute { constructor(value) { this.value = value; this.type = 4; } } IFC2X32.IfcSecondInMinute = IfcSecondInMinute; class IfcSectionModulusMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC2X32.IfcSectionModulusMeasure = IfcSectionModulusMeasure; class IfcSectionalAreaIntegralMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC2X32.IfcSectionalAreaIntegralMeasure = IfcSectionalAreaIntegralMeasure; class IfcShearModulusMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC2X32.IfcShearModulusMeasure = IfcShearModulusMeasure; class IfcSolidAngleMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC2X32.IfcSolidAngleMeasure = IfcSolidAngleMeasure; class IfcSoundPowerMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC2X32.IfcSoundPowerMeasure = IfcSoundPowerMeasure; class IfcSoundPressureMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC2X32.IfcSoundPressureMeasure = IfcSoundPressureMeasure; class IfcSpecificHeatCapacityMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC2X32.IfcSpecificHeatCapacityMeasure = IfcSpecificHeatCapacityMeasure; class IfcSpecularExponent { constructor(value) { this.value = value; this.type = 4; } } IFC2X32.IfcSpecularExponent = IfcSpecularExponent; class IfcSpecularRoughness { constructor(value) { this.value = value; this.type = 4; } } IFC2X32.IfcSpecularRoughness = IfcSpecularRoughness; class IfcTemperatureGradientMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC2X32.IfcTemperatureGradientMeasure = IfcTemperatureGradientMeasure; class IfcText { constructor(value) { this.value = value; this.type = 1; } } IFC2X32.IfcText = IfcText; class IfcTextAlignment { constructor(value) { this.value = value; this.type = 1; } } IFC2X32.IfcTextAlignment = IfcTextAlignment; class IfcTextDecoration { constructor(value) { this.value = value; this.type = 1; } } IFC2X32.IfcTextDecoration = IfcTextDecoration; class IfcTextFontName { constructor(value) { this.value = value; this.type = 1; } } IFC2X32.IfcTextFontName = IfcTextFontName; class IfcTextTransformation { constructor(value) { this.value = value; this.type = 1; } } IFC2X32.IfcTextTransformation = IfcTextTransformation; class IfcThermalAdmittanceMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC2X32.IfcThermalAdmittanceMeasure = IfcThermalAdmittanceMeasure; class IfcThermalConductivityMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC2X32.IfcThermalConductivityMeasure = IfcThermalConductivityMeasure; class IfcThermalExpansionCoefficientMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC2X32.IfcThermalExpansionCoefficientMeasure = IfcThermalExpansionCoefficientMeasure; class IfcThermalResistanceMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC2X32.IfcThermalResistanceMeasure = IfcThermalResistanceMeasure; class IfcThermalTransmittanceMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC2X32.IfcThermalTransmittanceMeasure = IfcThermalTransmittanceMeasure; class IfcThermodynamicTemperatureMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC2X32.IfcThermodynamicTemperatureMeasure = IfcThermodynamicTemperatureMeasure; class IfcTimeMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC2X32.IfcTimeMeasure = IfcTimeMeasure; class IfcTimeStamp { constructor(value) { this.value = value; this.type = 4; } } IFC2X32.IfcTimeStamp = IfcTimeStamp; class IfcTorqueMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC2X32.IfcTorqueMeasure = IfcTorqueMeasure; class IfcVaporPermeabilityMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC2X32.IfcVaporPermeabilityMeasure = IfcVaporPermeabilityMeasure; class IfcVolumeMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC2X32.IfcVolumeMeasure = IfcVolumeMeasure; class IfcVolumetricFlowRateMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC2X32.IfcVolumetricFlowRateMeasure = IfcVolumetricFlowRateMeasure; class IfcWarpingConstantMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC2X32.IfcWarpingConstantMeasure = IfcWarpingConstantMeasure; class IfcWarpingMomentMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC2X32.IfcWarpingMomentMeasure = IfcWarpingMomentMeasure; class IfcYearNumber { constructor(value) { this.value = value; this.type = 4; } } IFC2X32.IfcYearNumber = IfcYearNumber; class IfcActionSourceTypeEnum { } IfcActionSourceTypeEnum.DEAD_LOAD_G = { type: 3, value: "DEAD_LOAD_G" }; IfcActionSourceTypeEnum.COMPLETION_G1 = { type: 3, value: "COMPLETION_G1" }; IfcActionSourceTypeEnum.LIVE_LOAD_Q = { type: 3, value: "LIVE_LOAD_Q" }; IfcActionSourceTypeEnum.SNOW_S = { type: 3, value: "SNOW_S" }; IfcActionSourceTypeEnum.WIND_W = { type: 3, value: "WIND_W" }; IfcActionSourceTypeEnum.PRESTRESSING_P = { type: 3, value: "PRESTRESSING_P" }; IfcActionSourceTypeEnum.SETTLEMENT_U = { type: 3, value: "SETTLEMENT_U" }; IfcActionSourceTypeEnum.TEMPERATURE_T = { type: 3, value: "TEMPERATURE_T" }; IfcActionSourceTypeEnum.EARTHQUAKE_E = { type: 3, value: "EARTHQUAKE_E" }; IfcActionSourceTypeEnum.FIRE = { type: 3, value: "FIRE" }; IfcActionSourceTypeEnum.IMPULSE = { type: 3, value: "IMPULSE" }; IfcActionSourceTypeEnum.IMPACT = { type: 3, value: "IMPACT" }; IfcActionSourceTypeEnum.TRANSPORT = { type: 3, value: "TRANSPORT" }; IfcActionSourceTypeEnum.ERECTION = { type: 3, value: "ERECTION" }; IfcActionSourceTypeEnum.PROPPING = { type: 3, value: "PROPPING" }; IfcActionSourceTypeEnum.SYSTEM_IMPERFECTION = { type: 3, value: "SYSTEM_IMPERFECTION" }; IfcActionSourceTypeEnum.SHRINKAGE = { type: 3, value: "SHRINKAGE" }; IfcActionSourceTypeEnum.CREEP = { type: 3, value: "CREEP" }; IfcActionSourceTypeEnum.LACK_OF_FIT = { type: 3, value: "LACK_OF_FIT" }; IfcActionSourceTypeEnum.BUOYANCY = { type: 3, value: "BUOYANCY" }; IfcActionSourceTypeEnum.ICE = { type: 3, value: "ICE" }; IfcActionSourceTypeEnum.CURRENT = { type: 3, value: "CURRENT" }; IfcActionSourceTypeEnum.WAVE = { type: 3, value: "WAVE" }; IfcActionSourceTypeEnum.RAIN = { type: 3, value: "RAIN" }; IfcActionSourceTypeEnum.BRAKES = { type: 3, value: "BRAKES" }; IfcActionSourceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcActionSourceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC2X32.IfcActionSourceTypeEnum = IfcActionSourceTypeEnum; class IfcActionTypeEnum { } IfcActionTypeEnum.PERMANENT_G = { type: 3, value: "PERMANENT_G" }; IfcActionTypeEnum.VARIABLE_Q = { type: 3, value: "VARIABLE_Q" }; IfcActionTypeEnum.EXTRAORDINARY_A = { type: 3, value: "EXTRAORDINARY_A" }; IfcActionTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcActionTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC2X32.IfcActionTypeEnum = IfcActionTypeEnum; class IfcActuatorTypeEnum { } IfcActuatorTypeEnum.ELECTRICACTUATOR = { type: 3, value: "ELECTRICACTUATOR" }; IfcActuatorTypeEnum.HANDOPERATEDACTUATOR = { type: 3, value: "HANDOPERATEDACTUATOR" }; IfcActuatorTypeEnum.HYDRAULICACTUATOR = { type: 3, value: "HYDRAULICACTUATOR" }; IfcActuatorTypeEnum.PNEUMATICACTUATOR = { type: 3, value: "PNEUMATICACTUATOR" }; IfcActuatorTypeEnum.THERMOSTATICACTUATOR = { type: 3, value: "THERMOSTATICACTUATOR" }; IfcActuatorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcActuatorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC2X32.IfcActuatorTypeEnum = IfcActuatorTypeEnum; class IfcAddressTypeEnum { } IfcAddressTypeEnum.OFFICE = { type: 3, value: "OFFICE" }; IfcAddressTypeEnum.SITE = { type: 3, value: "SITE" }; IfcAddressTypeEnum.HOME = { type: 3, value: "HOME" }; IfcAddressTypeEnum.DISTRIBUTIONPOINT = { type: 3, value: "DISTRIBUTIONPOINT" }; IfcAddressTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IFC2X32.IfcAddressTypeEnum = IfcAddressTypeEnum; class IfcAheadOrBehind { } IfcAheadOrBehind.AHEAD = { type: 3, value: "AHEAD" }; IfcAheadOrBehind.BEHIND = { type: 3, value: "BEHIND" }; IFC2X32.IfcAheadOrBehind = IfcAheadOrBehind; class IfcAirTerminalBoxTypeEnum { } IfcAirTerminalBoxTypeEnum.CONSTANTFLOW = { type: 3, value: "CONSTANTFLOW" }; IfcAirTerminalBoxTypeEnum.VARIABLEFLOWPRESSUREDEPENDANT = { type: 3, value: "VARIABLEFLOWPRESSUREDEPENDANT" }; IfcAirTerminalBoxTypeEnum.VARIABLEFLOWPRESSUREINDEPENDANT = { type: 3, value: "VARIABLEFLOWPRESSUREINDEPENDANT" }; IfcAirTerminalBoxTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcAirTerminalBoxTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC2X32.IfcAirTerminalBoxTypeEnum = IfcAirTerminalBoxTypeEnum; class IfcAirTerminalTypeEnum { } IfcAirTerminalTypeEnum.GRILLE = { type: 3, value: "GRILLE" }; IfcAirTerminalTypeEnum.REGISTER = { type: 3, value: "REGISTER" }; IfcAirTerminalTypeEnum.DIFFUSER = { type: 3, value: "DIFFUSER" }; IfcAirTerminalTypeEnum.EYEBALL = { type: 3, value: "EYEBALL" }; IfcAirTerminalTypeEnum.IRIS = { type: 3, value: "IRIS" }; IfcAirTerminalTypeEnum.LINEARGRILLE = { type: 3, value: "LINEARGRILLE" }; IfcAirTerminalTypeEnum.LINEARDIFFUSER = { type: 3, value: "LINEARDIFFUSER" }; IfcAirTerminalTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcAirTerminalTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC2X32.IfcAirTerminalTypeEnum = IfcAirTerminalTypeEnum; class IfcAirToAirHeatRecoveryTypeEnum { } IfcAirToAirHeatRecoveryTypeEnum.FIXEDPLATECOUNTERFLOWEXCHANGER = { type: 3, value: "FIXEDPLATECOUNTERFLOWEXCHANGER" }; IfcAirToAirHeatRecoveryTypeEnum.FIXEDPLATECROSSFLOWEXCHANGER = { type: 3, value: "FIXEDPLATECROSSFLOWEXCHANGER" }; IfcAirToAirHeatRecoveryTypeEnum.FIXEDPLATEPARALLELFLOWEXCHANGER = { type: 3, value: "FIXEDPLATEPARALLELFLOWEXCHANGER" }; IfcAirToAirHeatRecoveryTypeEnum.ROTARYWHEEL = { type: 3, value: "ROTARYWHEEL" }; IfcAirToAirHeatRecoveryTypeEnum.RUNAROUNDCOILLOOP = { type: 3, value: "RUNAROUNDCOILLOOP" }; IfcAirToAirHeatRecoveryTypeEnum.HEATPIPE = { type: 3, value: "HEATPIPE" }; IfcAirToAirHeatRecoveryTypeEnum.TWINTOWERENTHALPYRECOVERYLOOPS = { type: 3, value: "TWINTOWERENTHALPYRECOVERYLOOPS" }; IfcAirToAirHeatRecoveryTypeEnum.THERMOSIPHONSEALEDTUBEHEATEXCHANGERS = { type: 3, value: "THERMOSIPHONSEALEDTUBEHEATEXCHANGERS" }; IfcAirToAirHeatRecoveryTypeEnum.THERMOSIPHONCOILTYPEHEATEXCHANGERS = { type: 3, value: "THERMOSIPHONCOILTYPEHEATEXCHANGERS" }; IfcAirToAirHeatRecoveryTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcAirToAirHeatRecoveryTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC2X32.IfcAirToAirHeatRecoveryTypeEnum = IfcAirToAirHeatRecoveryTypeEnum; class IfcAlarmTypeEnum { } IfcAlarmTypeEnum.BELL = { type: 3, value: "BELL" }; IfcAlarmTypeEnum.BREAKGLASSBUTTON = { type: 3, value: "BREAKGLASSBUTTON" }; IfcAlarmTypeEnum.LIGHT = { type: 3, value: "LIGHT" }; IfcAlarmTypeEnum.MANUALPULLBOX = { type: 3, value: "MANUALPULLBOX" }; IfcAlarmTypeEnum.SIREN = { type: 3, value: "SIREN" }; IfcAlarmTypeEnum.WHISTLE = { type: 3, value: "WHISTLE" }; IfcAlarmTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcAlarmTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC2X32.IfcAlarmTypeEnum = IfcAlarmTypeEnum; class IfcAnalysisModelTypeEnum { } IfcAnalysisModelTypeEnum.IN_PLANE_LOADING_2D = { type: 3, value: "IN_PLANE_LOADING_2D" }; IfcAnalysisModelTypeEnum.OUT_PLANE_LOADING_2D = { type: 3, value: "OUT_PLANE_LOADING_2D" }; IfcAnalysisModelTypeEnum.LOADING_3D = { type: 3, value: "LOADING_3D" }; IfcAnalysisModelTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcAnalysisModelTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC2X32.IfcAnalysisModelTypeEnum = IfcAnalysisModelTypeEnum; class IfcAnalysisTheoryTypeEnum { } IfcAnalysisTheoryTypeEnum.FIRST_ORDER_THEORY = { type: 3, value: "FIRST_ORDER_THEORY" }; IfcAnalysisTheoryTypeEnum.SECOND_ORDER_THEORY = { type: 3, value: "SECOND_ORDER_THEORY" }; IfcAnalysisTheoryTypeEnum.THIRD_ORDER_THEORY = { type: 3, value: "THIRD_ORDER_THEORY" }; IfcAnalysisTheoryTypeEnum.FULL_NONLINEAR_THEORY = { type: 3, value: "FULL_NONLINEAR_THEORY" }; IfcAnalysisTheoryTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcAnalysisTheoryTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC2X32.IfcAnalysisTheoryTypeEnum = IfcAnalysisTheoryTypeEnum; class IfcArithmeticOperatorEnum { } IfcArithmeticOperatorEnum.ADD = { type: 3, value: "ADD" }; IfcArithmeticOperatorEnum.DIVIDE = { type: 3, value: "DIVIDE" }; IfcArithmeticOperatorEnum.MULTIPLY = { type: 3, value: "MULTIPLY" }; IfcArithmeticOperatorEnum.SUBTRACT = { type: 3, value: "SUBTRACT" }; IFC2X32.IfcArithmeticOperatorEnum = IfcArithmeticOperatorEnum; class IfcAssemblyPlaceEnum { } IfcAssemblyPlaceEnum.SITE = { type: 3, value: "SITE" }; IfcAssemblyPlaceEnum.FACTORY = { type: 3, value: "FACTORY" }; IfcAssemblyPlaceEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC2X32.IfcAssemblyPlaceEnum = IfcAssemblyPlaceEnum; class IfcBSplineCurveForm { } IfcBSplineCurveForm.POLYLINE_FORM = { type: 3, value: "POLYLINE_FORM" }; IfcBSplineCurveForm.CIRCULAR_ARC = { type: 3, value: "CIRCULAR_ARC" }; IfcBSplineCurveForm.ELLIPTIC_ARC = { type: 3, value: "ELLIPTIC_ARC" }; IfcBSplineCurveForm.PARABOLIC_ARC = { type: 3, value: "PARABOLIC_ARC" }; IfcBSplineCurveForm.HYPERBOLIC_ARC = { type: 3, value: "HYPERBOLIC_ARC" }; IfcBSplineCurveForm.UNSPECIFIED = { type: 3, value: "UNSPECIFIED" }; IFC2X32.IfcBSplineCurveForm = IfcBSplineCurveForm; class IfcBeamTypeEnum { } IfcBeamTypeEnum.BEAM = { type: 3, value: "BEAM" }; IfcBeamTypeEnum.JOIST = { type: 3, value: "JOIST" }; IfcBeamTypeEnum.LINTEL = { type: 3, value: "LINTEL" }; IfcBeamTypeEnum.T_BEAM = { type: 3, value: "T_BEAM" }; IfcBeamTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcBeamTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC2X32.IfcBeamTypeEnum = IfcBeamTypeEnum; class IfcBenchmarkEnum { } IfcBenchmarkEnum.GREATERTHAN = { type: 3, value: "GREATERTHAN" }; IfcBenchmarkEnum.GREATERTHANOREQUALTO = { type: 3, value: "GREATERTHANOREQUALTO" }; IfcBenchmarkEnum.LESSTHAN = { type: 3, value: "LESSTHAN" }; IfcBenchmarkEnum.LESSTHANOREQUALTO = { type: 3, value: "LESSTHANOREQUALTO" }; IfcBenchmarkEnum.EQUALTO = { type: 3, value: "EQUALTO" }; IfcBenchmarkEnum.NOTEQUALTO = { type: 3, value: "NOTEQUALTO" }; IFC2X32.IfcBenchmarkEnum = IfcBenchmarkEnum; class IfcBoilerTypeEnum { } IfcBoilerTypeEnum.WATER = { type: 3, value: "WATER" }; IfcBoilerTypeEnum.STEAM = { type: 3, value: "STEAM" }; IfcBoilerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcBoilerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC2X32.IfcBoilerTypeEnum = IfcBoilerTypeEnum; class IfcBooleanOperator { } IfcBooleanOperator.UNION = { type: 3, value: "UNION" }; IfcBooleanOperator.INTERSECTION = { type: 3, value: "INTERSECTION" }; IfcBooleanOperator.DIFFERENCE = { type: 3, value: "DIFFERENCE" }; IFC2X32.IfcBooleanOperator = IfcBooleanOperator; class IfcBuildingElementProxyTypeEnum { } IfcBuildingElementProxyTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcBuildingElementProxyTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC2X32.IfcBuildingElementProxyTypeEnum = IfcBuildingElementProxyTypeEnum; class IfcCableCarrierFittingTypeEnum { } IfcCableCarrierFittingTypeEnum.BEND = { type: 3, value: "BEND" }; IfcCableCarrierFittingTypeEnum.CROSS = { type: 3, value: "CROSS" }; IfcCableCarrierFittingTypeEnum.REDUCER = { type: 3, value: "REDUCER" }; IfcCableCarrierFittingTypeEnum.TEE = { type: 3, value: "TEE" }; IfcCableCarrierFittingTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcCableCarrierFittingTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC2X32.IfcCableCarrierFittingTypeEnum = IfcCableCarrierFittingTypeEnum; class IfcCableCarrierSegmentTypeEnum { } IfcCableCarrierSegmentTypeEnum.CABLELADDERSEGMENT = { type: 3, value: "CABLELADDERSEGMENT" }; IfcCableCarrierSegmentTypeEnum.CABLETRAYSEGMENT = { type: 3, value: "CABLETRAYSEGMENT" }; IfcCableCarrierSegmentTypeEnum.CABLETRUNKINGSEGMENT = { type: 3, value: "CABLETRUNKINGSEGMENT" }; IfcCableCarrierSegmentTypeEnum.CONDUITSEGMENT = { type: 3, value: "CONDUITSEGMENT" }; IfcCableCarrierSegmentTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcCableCarrierSegmentTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC2X32.IfcCableCarrierSegmentTypeEnum = IfcCableCarrierSegmentTypeEnum; class IfcCableSegmentTypeEnum { } IfcCableSegmentTypeEnum.CABLESEGMENT = { type: 3, value: "CABLESEGMENT" }; IfcCableSegmentTypeEnum.CONDUCTORSEGMENT = { type: 3, value: "CONDUCTORSEGMENT" }; IfcCableSegmentTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcCableSegmentTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC2X32.IfcCableSegmentTypeEnum = IfcCableSegmentTypeEnum; class IfcChangeActionEnum { } IfcChangeActionEnum.NOCHANGE = { type: 3, value: "NOCHANGE" }; IfcChangeActionEnum.MODIFIED = { type: 3, value: "MODIFIED" }; IfcChangeActionEnum.ADDED = { type: 3, value: "ADDED" }; IfcChangeActionEnum.DELETED = { type: 3, value: "DELETED" }; IfcChangeActionEnum.MODIFIEDADDED = { type: 3, value: "MODIFIEDADDED" }; IfcChangeActionEnum.MODIFIEDDELETED = { type: 3, value: "MODIFIEDDELETED" }; IFC2X32.IfcChangeActionEnum = IfcChangeActionEnum; class IfcChillerTypeEnum { } IfcChillerTypeEnum.AIRCOOLED = { type: 3, value: "AIRCOOLED" }; IfcChillerTypeEnum.WATERCOOLED = { type: 3, value: "WATERCOOLED" }; IfcChillerTypeEnum.HEATRECOVERY = { type: 3, value: "HEATRECOVERY" }; IfcChillerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcChillerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC2X32.IfcChillerTypeEnum = IfcChillerTypeEnum; class IfcCoilTypeEnum { } IfcCoilTypeEnum.DXCOOLINGCOIL = { type: 3, value: "DXCOOLINGCOIL" }; IfcCoilTypeEnum.WATERCOOLINGCOIL = { type: 3, value: "WATERCOOLINGCOIL" }; IfcCoilTypeEnum.STEAMHEATINGCOIL = { type: 3, value: "STEAMHEATINGCOIL" }; IfcCoilTypeEnum.WATERHEATINGCOIL = { type: 3, value: "WATERHEATINGCOIL" }; IfcCoilTypeEnum.ELECTRICHEATINGCOIL = { type: 3, value: "ELECTRICHEATINGCOIL" }; IfcCoilTypeEnum.GASHEATINGCOIL = { type: 3, value: "GASHEATINGCOIL" }; IfcCoilTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcCoilTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC2X32.IfcCoilTypeEnum = IfcCoilTypeEnum; class IfcColumnTypeEnum { } IfcColumnTypeEnum.COLUMN = { type: 3, value: "COLUMN" }; IfcColumnTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcColumnTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC2X32.IfcColumnTypeEnum = IfcColumnTypeEnum; class IfcCompressorTypeEnum { } IfcCompressorTypeEnum.DYNAMIC = { type: 3, value: "DYNAMIC" }; IfcCompressorTypeEnum.RECIPROCATING = { type: 3, value: "RECIPROCATING" }; IfcCompressorTypeEnum.ROTARY = { type: 3, value: "ROTARY" }; IfcCompressorTypeEnum.SCROLL = { type: 3, value: "SCROLL" }; IfcCompressorTypeEnum.TROCHOIDAL = { type: 3, value: "TROCHOIDAL" }; IfcCompressorTypeEnum.SINGLESTAGE = { type: 3, value: "SINGLESTAGE" }; IfcCompressorTypeEnum.BOOSTER = { type: 3, value: "BOOSTER" }; IfcCompressorTypeEnum.OPENTYPE = { type: 3, value: "OPENTYPE" }; IfcCompressorTypeEnum.HERMETIC = { type: 3, value: "HERMETIC" }; IfcCompressorTypeEnum.SEMIHERMETIC = { type: 3, value: "SEMIHERMETIC" }; IfcCompressorTypeEnum.WELDEDSHELLHERMETIC = { type: 3, value: "WELDEDSHELLHERMETIC" }; IfcCompressorTypeEnum.ROLLINGPISTON = { type: 3, value: "ROLLINGPISTON" }; IfcCompressorTypeEnum.ROTARYVANE = { type: 3, value: "ROTARYVANE" }; IfcCompressorTypeEnum.SINGLESCREW = { type: 3, value: "SINGLESCREW" }; IfcCompressorTypeEnum.TWINSCREW = { type: 3, value: "TWINSCREW" }; IfcCompressorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcCompressorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC2X32.IfcCompressorTypeEnum = IfcCompressorTypeEnum; class IfcCondenserTypeEnum { } IfcCondenserTypeEnum.WATERCOOLEDSHELLTUBE = { type: 3, value: "WATERCOOLEDSHELLTUBE" }; IfcCondenserTypeEnum.WATERCOOLEDSHELLCOIL = { type: 3, value: "WATERCOOLEDSHELLCOIL" }; IfcCondenserTypeEnum.WATERCOOLEDTUBEINTUBE = { type: 3, value: "WATERCOOLEDTUBEINTUBE" }; IfcCondenserTypeEnum.WATERCOOLEDBRAZEDPLATE = { type: 3, value: "WATERCOOLEDBRAZEDPLATE" }; IfcCondenserTypeEnum.AIRCOOLED = { type: 3, value: "AIRCOOLED" }; IfcCondenserTypeEnum.EVAPORATIVECOOLED = { type: 3, value: "EVAPORATIVECOOLED" }; IfcCondenserTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcCondenserTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC2X32.IfcCondenserTypeEnum = IfcCondenserTypeEnum; class IfcConnectionTypeEnum { } IfcConnectionTypeEnum.ATPATH = { type: 3, value: "ATPATH" }; IfcConnectionTypeEnum.ATSTART = { type: 3, value: "ATSTART" }; IfcConnectionTypeEnum.ATEND = { type: 3, value: "ATEND" }; IfcConnectionTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC2X32.IfcConnectionTypeEnum = IfcConnectionTypeEnum; class IfcConstraintEnum { } IfcConstraintEnum.HARD = { type: 3, value: "HARD" }; IfcConstraintEnum.SOFT = { type: 3, value: "SOFT" }; IfcConstraintEnum.ADVISORY = { type: 3, value: "ADVISORY" }; IfcConstraintEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcConstraintEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC2X32.IfcConstraintEnum = IfcConstraintEnum; class IfcControllerTypeEnum { } IfcControllerTypeEnum.FLOATING = { type: 3, value: "FLOATING" }; IfcControllerTypeEnum.PROPORTIONAL = { type: 3, value: "PROPORTIONAL" }; IfcControllerTypeEnum.PROPORTIONALINTEGRAL = { type: 3, value: "PROPORTIONALINTEGRAL" }; IfcControllerTypeEnum.PROPORTIONALINTEGRALDERIVATIVE = { type: 3, value: "PROPORTIONALINTEGRALDERIVATIVE" }; IfcControllerTypeEnum.TIMEDTWOPOSITION = { type: 3, value: "TIMEDTWOPOSITION" }; IfcControllerTypeEnum.TWOPOSITION = { type: 3, value: "TWOPOSITION" }; IfcControllerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcControllerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC2X32.IfcControllerTypeEnum = IfcControllerTypeEnum; class IfcCooledBeamTypeEnum { } IfcCooledBeamTypeEnum.ACTIVE = { type: 3, value: "ACTIVE" }; IfcCooledBeamTypeEnum.PASSIVE = { type: 3, value: "PASSIVE" }; IfcCooledBeamTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcCooledBeamTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC2X32.IfcCooledBeamTypeEnum = IfcCooledBeamTypeEnum; class IfcCoolingTowerTypeEnum { } IfcCoolingTowerTypeEnum.NATURALDRAFT = { type: 3, value: "NATURALDRAFT" }; IfcCoolingTowerTypeEnum.MECHANICALINDUCEDDRAFT = { type: 3, value: "MECHANICALINDUCEDDRAFT" }; IfcCoolingTowerTypeEnum.MECHANICALFORCEDDRAFT = { type: 3, value: "MECHANICALFORCEDDRAFT" }; IfcCoolingTowerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcCoolingTowerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC2X32.IfcCoolingTowerTypeEnum = IfcCoolingTowerTypeEnum; class IfcCostScheduleTypeEnum { } IfcCostScheduleTypeEnum.BUDGET = { type: 3, value: "BUDGET" }; IfcCostScheduleTypeEnum.COSTPLAN = { type: 3, value: "COSTPLAN" }; IfcCostScheduleTypeEnum.ESTIMATE = { type: 3, value: "ESTIMATE" }; IfcCostScheduleTypeEnum.TENDER = { type: 3, value: "TENDER" }; IfcCostScheduleTypeEnum.PRICEDBILLOFQUANTITIES = { type: 3, value: "PRICEDBILLOFQUANTITIES" }; IfcCostScheduleTypeEnum.UNPRICEDBILLOFQUANTITIES = { type: 3, value: "UNPRICEDBILLOFQUANTITIES" }; IfcCostScheduleTypeEnum.SCHEDULEOFRATES = { type: 3, value: "SCHEDULEOFRATES" }; IfcCostScheduleTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcCostScheduleTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC2X32.IfcCostScheduleTypeEnum = IfcCostScheduleTypeEnum; class IfcCoveringTypeEnum { } IfcCoveringTypeEnum.CEILING = { type: 3, value: "CEILING" }; IfcCoveringTypeEnum.FLOORING = { type: 3, value: "FLOORING" }; IfcCoveringTypeEnum.CLADDING = { type: 3, value: "CLADDING" }; IfcCoveringTypeEnum.ROOFING = { type: 3, value: "ROOFING" }; IfcCoveringTypeEnum.INSULATION = { type: 3, value: "INSULATION" }; IfcCoveringTypeEnum.MEMBRANE = { type: 3, value: "MEMBRANE" }; IfcCoveringTypeEnum.SLEEVING = { type: 3, value: "SLEEVING" }; IfcCoveringTypeEnum.WRAPPING = { type: 3, value: "WRAPPING" }; IfcCoveringTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcCoveringTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC2X32.IfcCoveringTypeEnum = IfcCoveringTypeEnum; class IfcCurrencyEnum { } IfcCurrencyEnum.AED = { type: 3, value: "AED" }; IfcCurrencyEnum.AES = { type: 3, value: "AES" }; IfcCurrencyEnum.ATS = { type: 3, value: "ATS" }; IfcCurrencyEnum.AUD = { type: 3, value: "AUD" }; IfcCurrencyEnum.BBD = { type: 3, value: "BBD" }; IfcCurrencyEnum.BEG = { type: 3, value: "BEG" }; IfcCurrencyEnum.BGL = { type: 3, value: "BGL" }; IfcCurrencyEnum.BHD = { type: 3, value: "BHD" }; IfcCurrencyEnum.BMD = { type: 3, value: "BMD" }; IfcCurrencyEnum.BND = { type: 3, value: "BND" }; IfcCurrencyEnum.BRL = { type: 3, value: "BRL" }; IfcCurrencyEnum.BSD = { type: 3, value: "BSD" }; IfcCurrencyEnum.BWP = { type: 3, value: "BWP" }; IfcCurrencyEnum.BZD = { type: 3, value: "BZD" }; IfcCurrencyEnum.CAD = { type: 3, value: "CAD" }; IfcCurrencyEnum.CBD = { type: 3, value: "CBD" }; IfcCurrencyEnum.CHF = { type: 3, value: "CHF" }; IfcCurrencyEnum.CLP = { type: 3, value: "CLP" }; IfcCurrencyEnum.CNY = { type: 3, value: "CNY" }; IfcCurrencyEnum.CYS = { type: 3, value: "CYS" }; IfcCurrencyEnum.CZK = { type: 3, value: "CZK" }; IfcCurrencyEnum.DDP = { type: 3, value: "DDP" }; IfcCurrencyEnum.DEM = { type: 3, value: "DEM" }; IfcCurrencyEnum.DKK = { type: 3, value: "DKK" }; IfcCurrencyEnum.EGL = { type: 3, value: "EGL" }; IfcCurrencyEnum.EST = { type: 3, value: "EST" }; IfcCurrencyEnum.EUR = { type: 3, value: "EUR" }; IfcCurrencyEnum.FAK = { type: 3, value: "FAK" }; IfcCurrencyEnum.FIM = { type: 3, value: "FIM" }; IfcCurrencyEnum.FJD = { type: 3, value: "FJD" }; IfcCurrencyEnum.FKP = { type: 3, value: "FKP" }; IfcCurrencyEnum.FRF = { type: 3, value: "FRF" }; IfcCurrencyEnum.GBP = { type: 3, value: "GBP" }; IfcCurrencyEnum.GIP = { type: 3, value: "GIP" }; IfcCurrencyEnum.GMD = { type: 3, value: "GMD" }; IfcCurrencyEnum.GRX = { type: 3, value: "GRX" }; IfcCurrencyEnum.HKD = { type: 3, value: "HKD" }; IfcCurrencyEnum.HUF = { type: 3, value: "HUF" }; IfcCurrencyEnum.ICK = { type: 3, value: "ICK" }; IfcCurrencyEnum.IDR = { type: 3, value: "IDR" }; IfcCurrencyEnum.ILS = { type: 3, value: "ILS" }; IfcCurrencyEnum.INR = { type: 3, value: "INR" }; IfcCurrencyEnum.IRP = { type: 3, value: "IRP" }; IfcCurrencyEnum.ITL = { type: 3, value: "ITL" }; IfcCurrencyEnum.JMD = { type: 3, value: "JMD" }; IfcCurrencyEnum.JOD = { type: 3, value: "JOD" }; IfcCurrencyEnum.JPY = { type: 3, value: "JPY" }; IfcCurrencyEnum.KES = { type: 3, value: "KES" }; IfcCurrencyEnum.KRW = { type: 3, value: "KRW" }; IfcCurrencyEnum.KWD = { type: 3, value: "KWD" }; IfcCurrencyEnum.KYD = { type: 3, value: "KYD" }; IfcCurrencyEnum.LKR = { type: 3, value: "LKR" }; IfcCurrencyEnum.LUF = { type: 3, value: "LUF" }; IfcCurrencyEnum.MTL = { type: 3, value: "MTL" }; IfcCurrencyEnum.MUR = { type: 3, value: "MUR" }; IfcCurrencyEnum.MXN = { type: 3, value: "MXN" }; IfcCurrencyEnum.MYR = { type: 3, value: "MYR" }; IfcCurrencyEnum.NLG = { type: 3, value: "NLG" }; IfcCurrencyEnum.NZD = { type: 3, value: "NZD" }; IfcCurrencyEnum.OMR = { type: 3, value: "OMR" }; IfcCurrencyEnum.PGK = { type: 3, value: "PGK" }; IfcCurrencyEnum.PHP = { type: 3, value: "PHP" }; IfcCurrencyEnum.PKR = { type: 3, value: "PKR" }; IfcCurrencyEnum.PLN = { type: 3, value: "PLN" }; IfcCurrencyEnum.PTN = { type: 3, value: "PTN" }; IfcCurrencyEnum.QAR = { type: 3, value: "QAR" }; IfcCurrencyEnum.RUR = { type: 3, value: "RUR" }; IfcCurrencyEnum.SAR = { type: 3, value: "SAR" }; IfcCurrencyEnum.SCR = { type: 3, value: "SCR" }; IfcCurrencyEnum.SEK = { type: 3, value: "SEK" }; IfcCurrencyEnum.SGD = { type: 3, value: "SGD" }; IfcCurrencyEnum.SKP = { type: 3, value: "SKP" }; IfcCurrencyEnum.THB = { type: 3, value: "THB" }; IfcCurrencyEnum.TRL = { type: 3, value: "TRL" }; IfcCurrencyEnum.TTD = { type: 3, value: "TTD" }; IfcCurrencyEnum.TWD = { type: 3, value: "TWD" }; IfcCurrencyEnum.USD = { type: 3, value: "USD" }; IfcCurrencyEnum.VEB = { type: 3, value: "VEB" }; IfcCurrencyEnum.VND = { type: 3, value: "VND" }; IfcCurrencyEnum.XEU = { type: 3, value: "XEU" }; IfcCurrencyEnum.ZAR = { type: 3, value: "ZAR" }; IfcCurrencyEnum.ZWD = { type: 3, value: "ZWD" }; IfcCurrencyEnum.NOK = { type: 3, value: "NOK" }; IFC2X32.IfcCurrencyEnum = IfcCurrencyEnum; class IfcCurtainWallTypeEnum { } IfcCurtainWallTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcCurtainWallTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC2X32.IfcCurtainWallTypeEnum = IfcCurtainWallTypeEnum; class IfcDamperTypeEnum { } IfcDamperTypeEnum.CONTROLDAMPER = { type: 3, value: "CONTROLDAMPER" }; IfcDamperTypeEnum.FIREDAMPER = { type: 3, value: "FIREDAMPER" }; IfcDamperTypeEnum.SMOKEDAMPER = { type: 3, value: "SMOKEDAMPER" }; IfcDamperTypeEnum.FIRESMOKEDAMPER = { type: 3, value: "FIRESMOKEDAMPER" }; IfcDamperTypeEnum.BACKDRAFTDAMPER = { type: 3, value: "BACKDRAFTDAMPER" }; IfcDamperTypeEnum.RELIEFDAMPER = { type: 3, value: "RELIEFDAMPER" }; IfcDamperTypeEnum.BLASTDAMPER = { type: 3, value: "BLASTDAMPER" }; IfcDamperTypeEnum.GRAVITYDAMPER = { type: 3, value: "GRAVITYDAMPER" }; IfcDamperTypeEnum.GRAVITYRELIEFDAMPER = { type: 3, value: "GRAVITYRELIEFDAMPER" }; IfcDamperTypeEnum.BALANCINGDAMPER = { type: 3, value: "BALANCINGDAMPER" }; IfcDamperTypeEnum.FUMEHOODEXHAUST = { type: 3, value: "FUMEHOODEXHAUST" }; IfcDamperTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcDamperTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC2X32.IfcDamperTypeEnum = IfcDamperTypeEnum; class IfcDataOriginEnum { } IfcDataOriginEnum.MEASURED = { type: 3, value: "MEASURED" }; IfcDataOriginEnum.PREDICTED = { type: 3, value: "PREDICTED" }; IfcDataOriginEnum.SIMULATED = { type: 3, value: "SIMULATED" }; IfcDataOriginEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcDataOriginEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC2X32.IfcDataOriginEnum = IfcDataOriginEnum; class IfcDerivedUnitEnum { } IfcDerivedUnitEnum.ANGULARVELOCITYUNIT = { type: 3, value: "ANGULARVELOCITYUNIT" }; IfcDerivedUnitEnum.COMPOUNDPLANEANGLEUNIT = { type: 3, value: "COMPOUNDPLANEANGLEUNIT" }; IfcDerivedUnitEnum.DYNAMICVISCOSITYUNIT = { type: 3, value: "DYNAMICVISCOSITYUNIT" }; IfcDerivedUnitEnum.HEATFLUXDENSITYUNIT = { type: 3, value: "HEATFLUXDENSITYUNIT" }; IfcDerivedUnitEnum.INTEGERCOUNTRATEUNIT = { type: 3, value: "INTEGERCOUNTRATEUNIT" }; IfcDerivedUnitEnum.ISOTHERMALMOISTURECAPACITYUNIT = { type: 3, value: "ISOTHERMALMOISTURECAPACITYUNIT" }; IfcDerivedUnitEnum.KINEMATICVISCOSITYUNIT = { type: 3, value: "KINEMATICVISCOSITYUNIT" }; IfcDerivedUnitEnum.LINEARVELOCITYUNIT = { type: 3, value: "LINEARVELOCITYUNIT" }; IfcDerivedUnitEnum.MASSDENSITYUNIT = { type: 3, value: "MASSDENSITYUNIT" }; IfcDerivedUnitEnum.MASSFLOWRATEUNIT = { type: 3, value: "MASSFLOWRATEUNIT" }; IfcDerivedUnitEnum.MOISTUREDIFFUSIVITYUNIT = { type: 3, value: "MOISTUREDIFFUSIVITYUNIT" }; IfcDerivedUnitEnum.MOLECULARWEIGHTUNIT = { type: 3, value: "MOLECULARWEIGHTUNIT" }; IfcDerivedUnitEnum.SPECIFICHEATCAPACITYUNIT = { type: 3, value: "SPECIFICHEATCAPACITYUNIT" }; IfcDerivedUnitEnum.THERMALADMITTANCEUNIT = { type: 3, value: "THERMALADMITTANCEUNIT" }; IfcDerivedUnitEnum.THERMALCONDUCTANCEUNIT = { type: 3, value: "THERMALCONDUCTANCEUNIT" }; IfcDerivedUnitEnum.THERMALRESISTANCEUNIT = { type: 3, value: "THERMALRESISTANCEUNIT" }; IfcDerivedUnitEnum.THERMALTRANSMITTANCEUNIT = { type: 3, value: "THERMALTRANSMITTANCEUNIT" }; IfcDerivedUnitEnum.VAPORPERMEABILITYUNIT = { type: 3, value: "VAPORPERMEABILITYUNIT" }; IfcDerivedUnitEnum.VOLUMETRICFLOWRATEUNIT = { type: 3, value: "VOLUMETRICFLOWRATEUNIT" }; IfcDerivedUnitEnum.ROTATIONALFREQUENCYUNIT = { type: 3, value: "ROTATIONALFREQUENCYUNIT" }; IfcDerivedUnitEnum.TORQUEUNIT = { type: 3, value: "TORQUEUNIT" }; IfcDerivedUnitEnum.MOMENTOFINERTIAUNIT = { type: 3, value: "MOMENTOFINERTIAUNIT" }; IfcDerivedUnitEnum.LINEARMOMENTUNIT = { type: 3, value: "LINEARMOMENTUNIT" }; IfcDerivedUnitEnum.LINEARFORCEUNIT = { type: 3, value: "LINEARFORCEUNIT" }; IfcDerivedUnitEnum.PLANARFORCEUNIT = { type: 3, value: "PLANARFORCEUNIT" }; IfcDerivedUnitEnum.MODULUSOFELASTICITYUNIT = { type: 3, value: "MODULUSOFELASTICITYUNIT" }; IfcDerivedUnitEnum.SHEARMODULUSUNIT = { type: 3, value: "SHEARMODULUSUNIT" }; IfcDerivedUnitEnum.LINEARSTIFFNESSUNIT = { type: 3, value: "LINEARSTIFFNESSUNIT" }; IfcDerivedUnitEnum.ROTATIONALSTIFFNESSUNIT = { type: 3, value: "ROTATIONALSTIFFNESSUNIT" }; IfcDerivedUnitEnum.MODULUSOFSUBGRADEREACTIONUNIT = { type: 3, value: "MODULUSOFSUBGRADEREACTIONUNIT" }; IfcDerivedUnitEnum.ACCELERATIONUNIT = { type: 3, value: "ACCELERATIONUNIT" }; IfcDerivedUnitEnum.CURVATUREUNIT = { type: 3, value: "CURVATUREUNIT" }; IfcDerivedUnitEnum.HEATINGVALUEUNIT = { type: 3, value: "HEATINGVALUEUNIT" }; IfcDerivedUnitEnum.IONCONCENTRATIONUNIT = { type: 3, value: "IONCONCENTRATIONUNIT" }; IfcDerivedUnitEnum.LUMINOUSINTENSITYDISTRIBUTIONUNIT = { type: 3, value: "LUMINOUSINTENSITYDISTRIBUTIONUNIT" }; IfcDerivedUnitEnum.MASSPERLENGTHUNIT = { type: 3, value: "MASSPERLENGTHUNIT" }; IfcDerivedUnitEnum.MODULUSOFLINEARSUBGRADEREACTIONUNIT = { type: 3, value: "MODULUSOFLINEARSUBGRADEREACTIONUNIT" }; IfcDerivedUnitEnum.MODULUSOFROTATIONALSUBGRADEREACTIONUNIT = { type: 3, value: "MODULUSOFROTATIONALSUBGRADEREACTIONUNIT" }; IfcDerivedUnitEnum.PHUNIT = { type: 3, value: "PHUNIT" }; IfcDerivedUnitEnum.ROTATIONALMASSUNIT = { type: 3, value: "ROTATIONALMASSUNIT" }; IfcDerivedUnitEnum.SECTIONAREAINTEGRALUNIT = { type: 3, value: "SECTIONAREAINTEGRALUNIT" }; IfcDerivedUnitEnum.SECTIONMODULUSUNIT = { type: 3, value: "SECTIONMODULUSUNIT" }; IfcDerivedUnitEnum.SOUNDPOWERUNIT = { type: 3, value: "SOUNDPOWERUNIT" }; IfcDerivedUnitEnum.SOUNDPRESSUREUNIT = { type: 3, value: "SOUNDPRESSUREUNIT" }; IfcDerivedUnitEnum.TEMPERATUREGRADIENTUNIT = { type: 3, value: "TEMPERATUREGRADIENTUNIT" }; IfcDerivedUnitEnum.THERMALEXPANSIONCOEFFICIENTUNIT = { type: 3, value: "THERMALEXPANSIONCOEFFICIENTUNIT" }; IfcDerivedUnitEnum.WARPINGCONSTANTUNIT = { type: 3, value: "WARPINGCONSTANTUNIT" }; IfcDerivedUnitEnum.WARPINGMOMENTUNIT = { type: 3, value: "WARPINGMOMENTUNIT" }; IfcDerivedUnitEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IFC2X32.IfcDerivedUnitEnum = IfcDerivedUnitEnum; class IfcDimensionExtentUsage { } IfcDimensionExtentUsage.ORIGIN = { type: 3, value: "ORIGIN" }; IfcDimensionExtentUsage.TARGET = { type: 3, value: "TARGET" }; IFC2X32.IfcDimensionExtentUsage = IfcDimensionExtentUsage; class IfcDirectionSenseEnum { } IfcDirectionSenseEnum.POSITIVE = { type: 3, value: "POSITIVE" }; IfcDirectionSenseEnum.NEGATIVE = { type: 3, value: "NEGATIVE" }; IFC2X32.IfcDirectionSenseEnum = IfcDirectionSenseEnum; class IfcDistributionChamberElementTypeEnum { } IfcDistributionChamberElementTypeEnum.FORMEDDUCT = { type: 3, value: "FORMEDDUCT" }; IfcDistributionChamberElementTypeEnum.INSPECTIONCHAMBER = { type: 3, value: "INSPECTIONCHAMBER" }; IfcDistributionChamberElementTypeEnum.INSPECTIONPIT = { type: 3, value: "INSPECTIONPIT" }; IfcDistributionChamberElementTypeEnum.MANHOLE = { type: 3, value: "MANHOLE" }; IfcDistributionChamberElementTypeEnum.METERCHAMBER = { type: 3, value: "METERCHAMBER" }; IfcDistributionChamberElementTypeEnum.SUMP = { type: 3, value: "SUMP" }; IfcDistributionChamberElementTypeEnum.TRENCH = { type: 3, value: "TRENCH" }; IfcDistributionChamberElementTypeEnum.VALVECHAMBER = { type: 3, value: "VALVECHAMBER" }; IfcDistributionChamberElementTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcDistributionChamberElementTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC2X32.IfcDistributionChamberElementTypeEnum = IfcDistributionChamberElementTypeEnum; class IfcDocumentConfidentialityEnum { } IfcDocumentConfidentialityEnum.PUBLIC = { type: 3, value: "PUBLIC" }; IfcDocumentConfidentialityEnum.RESTRICTED = { type: 3, value: "RESTRICTED" }; IfcDocumentConfidentialityEnum.CONFIDENTIAL = { type: 3, value: "CONFIDENTIAL" }; IfcDocumentConfidentialityEnum.PERSONAL = { type: 3, value: "PERSONAL" }; IfcDocumentConfidentialityEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcDocumentConfidentialityEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC2X32.IfcDocumentConfidentialityEnum = IfcDocumentConfidentialityEnum; class IfcDocumentStatusEnum { } IfcDocumentStatusEnum.DRAFT = { type: 3, value: "DRAFT" }; IfcDocumentStatusEnum.FINALDRAFT = { type: 3, value: "FINALDRAFT" }; IfcDocumentStatusEnum.FINAL = { type: 3, value: "FINAL" }; IfcDocumentStatusEnum.REVISION = { type: 3, value: "REVISION" }; IfcDocumentStatusEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC2X32.IfcDocumentStatusEnum = IfcDocumentStatusEnum; class IfcDoorPanelOperationEnum { } IfcDoorPanelOperationEnum.SWINGING = { type: 3, value: "SWINGING" }; IfcDoorPanelOperationEnum.DOUBLE_ACTING = { type: 3, value: "DOUBLE_ACTING" }; IfcDoorPanelOperationEnum.SLIDING = { type: 3, value: "SLIDING" }; IfcDoorPanelOperationEnum.FOLDING = { type: 3, value: "FOLDING" }; IfcDoorPanelOperationEnum.REVOLVING = { type: 3, value: "REVOLVING" }; IfcDoorPanelOperationEnum.ROLLINGUP = { type: 3, value: "ROLLINGUP" }; IfcDoorPanelOperationEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcDoorPanelOperationEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC2X32.IfcDoorPanelOperationEnum = IfcDoorPanelOperationEnum; class IfcDoorPanelPositionEnum { } IfcDoorPanelPositionEnum.LEFT = { type: 3, value: "LEFT" }; IfcDoorPanelPositionEnum.MIDDLE = { type: 3, value: "MIDDLE" }; IfcDoorPanelPositionEnum.RIGHT = { type: 3, value: "RIGHT" }; IfcDoorPanelPositionEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC2X32.IfcDoorPanelPositionEnum = IfcDoorPanelPositionEnum; class IfcDoorStyleConstructionEnum { } IfcDoorStyleConstructionEnum.ALUMINIUM = { type: 3, value: "ALUMINIUM" }; IfcDoorStyleConstructionEnum.HIGH_GRADE_STEEL = { type: 3, value: "HIGH_GRADE_STEEL" }; IfcDoorStyleConstructionEnum.STEEL = { type: 3, value: "STEEL" }; IfcDoorStyleConstructionEnum.WOOD = { type: 3, value: "WOOD" }; IfcDoorStyleConstructionEnum.ALUMINIUM_WOOD = { type: 3, value: "ALUMINIUM_WOOD" }; IfcDoorStyleConstructionEnum.ALUMINIUM_PLASTIC = { type: 3, value: "ALUMINIUM_PLASTIC" }; IfcDoorStyleConstructionEnum.PLASTIC = { type: 3, value: "PLASTIC" }; IfcDoorStyleConstructionEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcDoorStyleConstructionEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC2X32.IfcDoorStyleConstructionEnum = IfcDoorStyleConstructionEnum; class IfcDoorStyleOperationEnum { } IfcDoorStyleOperationEnum.SINGLE_SWING_LEFT = { type: 3, value: "SINGLE_SWING_LEFT" }; IfcDoorStyleOperationEnum.SINGLE_SWING_RIGHT = { type: 3, value: "SINGLE_SWING_RIGHT" }; IfcDoorStyleOperationEnum.DOUBLE_DOOR_SINGLE_SWING = { type: 3, value: "DOUBLE_DOOR_SINGLE_SWING" }; IfcDoorStyleOperationEnum.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT = { type: 3, value: "DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT" }; IfcDoorStyleOperationEnum.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT = { type: 3, value: "DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT" }; IfcDoorStyleOperationEnum.DOUBLE_SWING_LEFT = { type: 3, value: "DOUBLE_SWING_LEFT" }; IfcDoorStyleOperationEnum.DOUBLE_SWING_RIGHT = { type: 3, value: "DOUBLE_SWING_RIGHT" }; IfcDoorStyleOperationEnum.DOUBLE_DOOR_DOUBLE_SWING = { type: 3, value: "DOUBLE_DOOR_DOUBLE_SWING" }; IfcDoorStyleOperationEnum.SLIDING_TO_LEFT = { type: 3, value: "SLIDING_TO_LEFT" }; IfcDoorStyleOperationEnum.SLIDING_TO_RIGHT = { type: 3, value: "SLIDING_TO_RIGHT" }; IfcDoorStyleOperationEnum.DOUBLE_DOOR_SLIDING = { type: 3, value: "DOUBLE_DOOR_SLIDING" }; IfcDoorStyleOperationEnum.FOLDING_TO_LEFT = { type: 3, value: "FOLDING_TO_LEFT" }; IfcDoorStyleOperationEnum.FOLDING_TO_RIGHT = { type: 3, value: "FOLDING_TO_RIGHT" }; IfcDoorStyleOperationEnum.DOUBLE_DOOR_FOLDING = { type: 3, value: "DOUBLE_DOOR_FOLDING" }; IfcDoorStyleOperationEnum.REVOLVING = { type: 3, value: "REVOLVING" }; IfcDoorStyleOperationEnum.ROLLINGUP = { type: 3, value: "ROLLINGUP" }; IfcDoorStyleOperationEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcDoorStyleOperationEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC2X32.IfcDoorStyleOperationEnum = IfcDoorStyleOperationEnum; class IfcDuctFittingTypeEnum { } IfcDuctFittingTypeEnum.BEND = { type: 3, value: "BEND" }; IfcDuctFittingTypeEnum.CONNECTOR = { type: 3, value: "CONNECTOR" }; IfcDuctFittingTypeEnum.ENTRY = { type: 3, value: "ENTRY" }; IfcDuctFittingTypeEnum.EXIT = { type: 3, value: "EXIT" }; IfcDuctFittingTypeEnum.JUNCTION = { type: 3, value: "JUNCTION" }; IfcDuctFittingTypeEnum.OBSTRUCTION = { type: 3, value: "OBSTRUCTION" }; IfcDuctFittingTypeEnum.TRANSITION = { type: 3, value: "TRANSITION" }; IfcDuctFittingTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcDuctFittingTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC2X32.IfcDuctFittingTypeEnum = IfcDuctFittingTypeEnum; class IfcDuctSegmentTypeEnum { } IfcDuctSegmentTypeEnum.RIGIDSEGMENT = { type: 3, value: "RIGIDSEGMENT" }; IfcDuctSegmentTypeEnum.FLEXIBLESEGMENT = { type: 3, value: "FLEXIBLESEGMENT" }; IfcDuctSegmentTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcDuctSegmentTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC2X32.IfcDuctSegmentTypeEnum = IfcDuctSegmentTypeEnum; class IfcDuctSilencerTypeEnum { } IfcDuctSilencerTypeEnum.FLATOVAL = { type: 3, value: "FLATOVAL" }; IfcDuctSilencerTypeEnum.RECTANGULAR = { type: 3, value: "RECTANGULAR" }; IfcDuctSilencerTypeEnum.ROUND = { type: 3, value: "ROUND" }; IfcDuctSilencerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcDuctSilencerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC2X32.IfcDuctSilencerTypeEnum = IfcDuctSilencerTypeEnum; class IfcElectricApplianceTypeEnum { } IfcElectricApplianceTypeEnum.COMPUTER = { type: 3, value: "COMPUTER" }; IfcElectricApplianceTypeEnum.DIRECTWATERHEATER = { type: 3, value: "DIRECTWATERHEATER" }; IfcElectricApplianceTypeEnum.DISHWASHER = { type: 3, value: "DISHWASHER" }; IfcElectricApplianceTypeEnum.ELECTRICCOOKER = { type: 3, value: "ELECTRICCOOKER" }; IfcElectricApplianceTypeEnum.ELECTRICHEATER = { type: 3, value: "ELECTRICHEATER" }; IfcElectricApplianceTypeEnum.FACSIMILE = { type: 3, value: "FACSIMILE" }; IfcElectricApplianceTypeEnum.FREESTANDINGFAN = { type: 3, value: "FREESTANDINGFAN" }; IfcElectricApplianceTypeEnum.FREEZER = { type: 3, value: "FREEZER" }; IfcElectricApplianceTypeEnum.FRIDGE_FREEZER = { type: 3, value: "FRIDGE_FREEZER" }; IfcElectricApplianceTypeEnum.HANDDRYER = { type: 3, value: "HANDDRYER" }; IfcElectricApplianceTypeEnum.INDIRECTWATERHEATER = { type: 3, value: "INDIRECTWATERHEATER" }; IfcElectricApplianceTypeEnum.MICROWAVE = { type: 3, value: "MICROWAVE" }; IfcElectricApplianceTypeEnum.PHOTOCOPIER = { type: 3, value: "PHOTOCOPIER" }; IfcElectricApplianceTypeEnum.PRINTER = { type: 3, value: "PRINTER" }; IfcElectricApplianceTypeEnum.REFRIGERATOR = { type: 3, value: "REFRIGERATOR" }; IfcElectricApplianceTypeEnum.RADIANTHEATER = { type: 3, value: "RADIANTHEATER" }; IfcElectricApplianceTypeEnum.SCANNER = { type: 3, value: "SCANNER" }; IfcElectricApplianceTypeEnum.TELEPHONE = { type: 3, value: "TELEPHONE" }; IfcElectricApplianceTypeEnum.TUMBLEDRYER = { type: 3, value: "TUMBLEDRYER" }; IfcElectricApplianceTypeEnum.TV = { type: 3, value: "TV" }; IfcElectricApplianceTypeEnum.VENDINGMACHINE = { type: 3, value: "VENDINGMACHINE" }; IfcElectricApplianceTypeEnum.WASHINGMACHINE = { type: 3, value: "WASHINGMACHINE" }; IfcElectricApplianceTypeEnum.WATERHEATER = { type: 3, value: "WATERHEATER" }; IfcElectricApplianceTypeEnum.WATERCOOLER = { type: 3, value: "WATERCOOLER" }; IfcElectricApplianceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcElectricApplianceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC2X32.IfcElectricApplianceTypeEnum = IfcElectricApplianceTypeEnum; class IfcElectricCurrentEnum { } IfcElectricCurrentEnum.ALTERNATING = { type: 3, value: "ALTERNATING" }; IfcElectricCurrentEnum.DIRECT = { type: 3, value: "DIRECT" }; IfcElectricCurrentEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC2X32.IfcElectricCurrentEnum = IfcElectricCurrentEnum; class IfcElectricDistributionPointFunctionEnum { } IfcElectricDistributionPointFunctionEnum.ALARMPANEL = { type: 3, value: "ALARMPANEL" }; IfcElectricDistributionPointFunctionEnum.CONSUMERUNIT = { type: 3, value: "CONSUMERUNIT" }; IfcElectricDistributionPointFunctionEnum.CONTROLPANEL = { type: 3, value: "CONTROLPANEL" }; IfcElectricDistributionPointFunctionEnum.DISTRIBUTIONBOARD = { type: 3, value: "DISTRIBUTIONBOARD" }; IfcElectricDistributionPointFunctionEnum.GASDETECTORPANEL = { type: 3, value: "GASDETECTORPANEL" }; IfcElectricDistributionPointFunctionEnum.INDICATORPANEL = { type: 3, value: "INDICATORPANEL" }; IfcElectricDistributionPointFunctionEnum.MIMICPANEL = { type: 3, value: "MIMICPANEL" }; IfcElectricDistributionPointFunctionEnum.MOTORCONTROLCENTRE = { type: 3, value: "MOTORCONTROLCENTRE" }; IfcElectricDistributionPointFunctionEnum.SWITCHBOARD = { type: 3, value: "SWITCHBOARD" }; IfcElectricDistributionPointFunctionEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcElectricDistributionPointFunctionEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC2X32.IfcElectricDistributionPointFunctionEnum = IfcElectricDistributionPointFunctionEnum; class IfcElectricFlowStorageDeviceTypeEnum { } IfcElectricFlowStorageDeviceTypeEnum.BATTERY = { type: 3, value: "BATTERY" }; IfcElectricFlowStorageDeviceTypeEnum.CAPACITORBANK = { type: 3, value: "CAPACITORBANK" }; IfcElectricFlowStorageDeviceTypeEnum.HARMONICFILTER = { type: 3, value: "HARMONICFILTER" }; IfcElectricFlowStorageDeviceTypeEnum.INDUCTORBANK = { type: 3, value: "INDUCTORBANK" }; IfcElectricFlowStorageDeviceTypeEnum.UPS = { type: 3, value: "UPS" }; IfcElectricFlowStorageDeviceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcElectricFlowStorageDeviceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC2X32.IfcElectricFlowStorageDeviceTypeEnum = IfcElectricFlowStorageDeviceTypeEnum; class IfcElectricGeneratorTypeEnum { } IfcElectricGeneratorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcElectricGeneratorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC2X32.IfcElectricGeneratorTypeEnum = IfcElectricGeneratorTypeEnum; class IfcElectricHeaterTypeEnum { } IfcElectricHeaterTypeEnum.ELECTRICPOINTHEATER = { type: 3, value: "ELECTRICPOINTHEATER" }; IfcElectricHeaterTypeEnum.ELECTRICCABLEHEATER = { type: 3, value: "ELECTRICCABLEHEATER" }; IfcElectricHeaterTypeEnum.ELECTRICMATHEATER = { type: 3, value: "ELECTRICMATHEATER" }; IfcElectricHeaterTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcElectricHeaterTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC2X32.IfcElectricHeaterTypeEnum = IfcElectricHeaterTypeEnum; class IfcElectricMotorTypeEnum { } IfcElectricMotorTypeEnum.DC = { type: 3, value: "DC" }; IfcElectricMotorTypeEnum.INDUCTION = { type: 3, value: "INDUCTION" }; IfcElectricMotorTypeEnum.POLYPHASE = { type: 3, value: "POLYPHASE" }; IfcElectricMotorTypeEnum.RELUCTANCESYNCHRONOUS = { type: 3, value: "RELUCTANCESYNCHRONOUS" }; IfcElectricMotorTypeEnum.SYNCHRONOUS = { type: 3, value: "SYNCHRONOUS" }; IfcElectricMotorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcElectricMotorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC2X32.IfcElectricMotorTypeEnum = IfcElectricMotorTypeEnum; class IfcElectricTimeControlTypeEnum { } IfcElectricTimeControlTypeEnum.TIMECLOCK = { type: 3, value: "TIMECLOCK" }; IfcElectricTimeControlTypeEnum.TIMEDELAY = { type: 3, value: "TIMEDELAY" }; IfcElectricTimeControlTypeEnum.RELAY = { type: 3, value: "RELAY" }; IfcElectricTimeControlTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcElectricTimeControlTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC2X32.IfcElectricTimeControlTypeEnum = IfcElectricTimeControlTypeEnum; class IfcElementAssemblyTypeEnum { } IfcElementAssemblyTypeEnum.ACCESSORY_ASSEMBLY = { type: 3, value: "ACCESSORY_ASSEMBLY" }; IfcElementAssemblyTypeEnum.ARCH = { type: 3, value: "ARCH" }; IfcElementAssemblyTypeEnum.BEAM_GRID = { type: 3, value: "BEAM_GRID" }; IfcElementAssemblyTypeEnum.BRACED_FRAME = { type: 3, value: "BRACED_FRAME" }; IfcElementAssemblyTypeEnum.GIRDER = { type: 3, value: "GIRDER" }; IfcElementAssemblyTypeEnum.REINFORCEMENT_UNIT = { type: 3, value: "REINFORCEMENT_UNIT" }; IfcElementAssemblyTypeEnum.RIGID_FRAME = { type: 3, value: "RIGID_FRAME" }; IfcElementAssemblyTypeEnum.SLAB_FIELD = { type: 3, value: "SLAB_FIELD" }; IfcElementAssemblyTypeEnum.TRUSS = { type: 3, value: "TRUSS" }; IfcElementAssemblyTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcElementAssemblyTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC2X32.IfcElementAssemblyTypeEnum = IfcElementAssemblyTypeEnum; class IfcElementCompositionEnum { } IfcElementCompositionEnum.COMPLEX = { type: 3, value: "COMPLEX" }; IfcElementCompositionEnum.ELEMENT = { type: 3, value: "ELEMENT" }; IfcElementCompositionEnum.PARTIAL = { type: 3, value: "PARTIAL" }; IFC2X32.IfcElementCompositionEnum = IfcElementCompositionEnum; class IfcEnergySequenceEnum { } IfcEnergySequenceEnum.PRIMARY = { type: 3, value: "PRIMARY" }; IfcEnergySequenceEnum.SECONDARY = { type: 3, value: "SECONDARY" }; IfcEnergySequenceEnum.TERTIARY = { type: 3, value: "TERTIARY" }; IfcEnergySequenceEnum.AUXILIARY = { type: 3, value: "AUXILIARY" }; IfcEnergySequenceEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcEnergySequenceEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC2X32.IfcEnergySequenceEnum = IfcEnergySequenceEnum; class IfcEnvironmentalImpactCategoryEnum { } IfcEnvironmentalImpactCategoryEnum.COMBINEDVALUE = { type: 3, value: "COMBINEDVALUE" }; IfcEnvironmentalImpactCategoryEnum.DISPOSAL = { type: 3, value: "DISPOSAL" }; IfcEnvironmentalImpactCategoryEnum.EXTRACTION = { type: 3, value: "EXTRACTION" }; IfcEnvironmentalImpactCategoryEnum.INSTALLATION = { type: 3, value: "INSTALLATION" }; IfcEnvironmentalImpactCategoryEnum.MANUFACTURE = { type: 3, value: "MANUFACTURE" }; IfcEnvironmentalImpactCategoryEnum.TRANSPORTATION = { type: 3, value: "TRANSPORTATION" }; IfcEnvironmentalImpactCategoryEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcEnvironmentalImpactCategoryEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC2X32.IfcEnvironmentalImpactCategoryEnum = IfcEnvironmentalImpactCategoryEnum; class IfcEvaporativeCoolerTypeEnum { } IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVERANDOMMEDIAAIRCOOLER = { type: 3, value: "DIRECTEVAPORATIVERANDOMMEDIAAIRCOOLER" }; IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVERIGIDMEDIAAIRCOOLER = { type: 3, value: "DIRECTEVAPORATIVERIGIDMEDIAAIRCOOLER" }; IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVESLINGERSPACKAGEDAIRCOOLER = { type: 3, value: "DIRECTEVAPORATIVESLINGERSPACKAGEDAIRCOOLER" }; IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVEPACKAGEDROTARYAIRCOOLER = { type: 3, value: "DIRECTEVAPORATIVEPACKAGEDROTARYAIRCOOLER" }; IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVEAIRWASHER = { type: 3, value: "DIRECTEVAPORATIVEAIRWASHER" }; IfcEvaporativeCoolerTypeEnum.INDIRECTEVAPORATIVEPACKAGEAIRCOOLER = { type: 3, value: "INDIRECTEVAPORATIVEPACKAGEAIRCOOLER" }; IfcEvaporativeCoolerTypeEnum.INDIRECTEVAPORATIVEWETCOIL = { type: 3, value: "INDIRECTEVAPORATIVEWETCOIL" }; IfcEvaporativeCoolerTypeEnum.INDIRECTEVAPORATIVECOOLINGTOWERORCOILCOOLER = { type: 3, value: "INDIRECTEVAPORATIVECOOLINGTOWERORCOILCOOLER" }; IfcEvaporativeCoolerTypeEnum.INDIRECTDIRECTCOMBINATION = { type: 3, value: "INDIRECTDIRECTCOMBINATION" }; IfcEvaporativeCoolerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcEvaporativeCoolerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC2X32.IfcEvaporativeCoolerTypeEnum = IfcEvaporativeCoolerTypeEnum; class IfcEvaporatorTypeEnum { } IfcEvaporatorTypeEnum.DIRECTEXPANSIONSHELLANDTUBE = { type: 3, value: "DIRECTEXPANSIONSHELLANDTUBE" }; IfcEvaporatorTypeEnum.DIRECTEXPANSIONTUBEINTUBE = { type: 3, value: "DIRECTEXPANSIONTUBEINTUBE" }; IfcEvaporatorTypeEnum.DIRECTEXPANSIONBRAZEDPLATE = { type: 3, value: "DIRECTEXPANSIONBRAZEDPLATE" }; IfcEvaporatorTypeEnum.FLOODEDSHELLANDTUBE = { type: 3, value: "FLOODEDSHELLANDTUBE" }; IfcEvaporatorTypeEnum.SHELLANDCOIL = { type: 3, value: "SHELLANDCOIL" }; IfcEvaporatorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcEvaporatorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC2X32.IfcEvaporatorTypeEnum = IfcEvaporatorTypeEnum; class IfcFanTypeEnum { } IfcFanTypeEnum.CENTRIFUGALFORWARDCURVED = { type: 3, value: "CENTRIFUGALFORWARDCURVED" }; IfcFanTypeEnum.CENTRIFUGALRADIAL = { type: 3, value: "CENTRIFUGALRADIAL" }; IfcFanTypeEnum.CENTRIFUGALBACKWARDINCLINEDCURVED = { type: 3, value: "CENTRIFUGALBACKWARDINCLINEDCURVED" }; IfcFanTypeEnum.CENTRIFUGALAIRFOIL = { type: 3, value: "CENTRIFUGALAIRFOIL" }; IfcFanTypeEnum.TUBEAXIAL = { type: 3, value: "TUBEAXIAL" }; IfcFanTypeEnum.VANEAXIAL = { type: 3, value: "VANEAXIAL" }; IfcFanTypeEnum.PROPELLORAXIAL = { type: 3, value: "PROPELLORAXIAL" }; IfcFanTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcFanTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC2X32.IfcFanTypeEnum = IfcFanTypeEnum; class IfcFilterTypeEnum { } IfcFilterTypeEnum.AIRPARTICLEFILTER = { type: 3, value: "AIRPARTICLEFILTER" }; IfcFilterTypeEnum.ODORFILTER = { type: 3, value: "ODORFILTER" }; IfcFilterTypeEnum.OILFILTER = { type: 3, value: "OILFILTER" }; IfcFilterTypeEnum.STRAINER = { type: 3, value: "STRAINER" }; IfcFilterTypeEnum.WATERFILTER = { type: 3, value: "WATERFILTER" }; IfcFilterTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcFilterTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC2X32.IfcFilterTypeEnum = IfcFilterTypeEnum; class IfcFireSuppressionTerminalTypeEnum { } IfcFireSuppressionTerminalTypeEnum.BREECHINGINLET = { type: 3, value: "BREECHINGINLET" }; IfcFireSuppressionTerminalTypeEnum.FIREHYDRANT = { type: 3, value: "FIREHYDRANT" }; IfcFireSuppressionTerminalTypeEnum.HOSEREEL = { type: 3, value: "HOSEREEL" }; IfcFireSuppressionTerminalTypeEnum.SPRINKLER = { type: 3, value: "SPRINKLER" }; IfcFireSuppressionTerminalTypeEnum.SPRINKLERDEFLECTOR = { type: 3, value: "SPRINKLERDEFLECTOR" }; IfcFireSuppressionTerminalTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcFireSuppressionTerminalTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC2X32.IfcFireSuppressionTerminalTypeEnum = IfcFireSuppressionTerminalTypeEnum; class IfcFlowDirectionEnum { } IfcFlowDirectionEnum.SOURCE = { type: 3, value: "SOURCE" }; IfcFlowDirectionEnum.SINK = { type: 3, value: "SINK" }; IfcFlowDirectionEnum.SOURCEANDSINK = { type: 3, value: "SOURCEANDSINK" }; IfcFlowDirectionEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC2X32.IfcFlowDirectionEnum = IfcFlowDirectionEnum; class IfcFlowInstrumentTypeEnum { } IfcFlowInstrumentTypeEnum.PRESSUREGAUGE = { type: 3, value: "PRESSUREGAUGE" }; IfcFlowInstrumentTypeEnum.THERMOMETER = { type: 3, value: "THERMOMETER" }; IfcFlowInstrumentTypeEnum.AMMETER = { type: 3, value: "AMMETER" }; IfcFlowInstrumentTypeEnum.FREQUENCYMETER = { type: 3, value: "FREQUENCYMETER" }; IfcFlowInstrumentTypeEnum.POWERFACTORMETER = { type: 3, value: "POWERFACTORMETER" }; IfcFlowInstrumentTypeEnum.PHASEANGLEMETER = { type: 3, value: "PHASEANGLEMETER" }; IfcFlowInstrumentTypeEnum.VOLTMETER_PEAK = { type: 3, value: "VOLTMETER_PEAK" }; IfcFlowInstrumentTypeEnum.VOLTMETER_RMS = { type: 3, value: "VOLTMETER_RMS" }; IfcFlowInstrumentTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcFlowInstrumentTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC2X32.IfcFlowInstrumentTypeEnum = IfcFlowInstrumentTypeEnum; class IfcFlowMeterTypeEnum { } IfcFlowMeterTypeEnum.ELECTRICMETER = { type: 3, value: "ELECTRICMETER" }; IfcFlowMeterTypeEnum.ENERGYMETER = { type: 3, value: "ENERGYMETER" }; IfcFlowMeterTypeEnum.FLOWMETER = { type: 3, value: "FLOWMETER" }; IfcFlowMeterTypeEnum.GASMETER = { type: 3, value: "GASMETER" }; IfcFlowMeterTypeEnum.OILMETER = { type: 3, value: "OILMETER" }; IfcFlowMeterTypeEnum.WATERMETER = { type: 3, value: "WATERMETER" }; IfcFlowMeterTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcFlowMeterTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC2X32.IfcFlowMeterTypeEnum = IfcFlowMeterTypeEnum; class IfcFootingTypeEnum { } IfcFootingTypeEnum.FOOTING_BEAM = { type: 3, value: "FOOTING_BEAM" }; IfcFootingTypeEnum.PAD_FOOTING = { type: 3, value: "PAD_FOOTING" }; IfcFootingTypeEnum.PILE_CAP = { type: 3, value: "PILE_CAP" }; IfcFootingTypeEnum.STRIP_FOOTING = { type: 3, value: "STRIP_FOOTING" }; IfcFootingTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcFootingTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC2X32.IfcFootingTypeEnum = IfcFootingTypeEnum; class IfcGasTerminalTypeEnum { } IfcGasTerminalTypeEnum.GASAPPLIANCE = { type: 3, value: "GASAPPLIANCE" }; IfcGasTerminalTypeEnum.GASBOOSTER = { type: 3, value: "GASBOOSTER" }; IfcGasTerminalTypeEnum.GASBURNER = { type: 3, value: "GASBURNER" }; IfcGasTerminalTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcGasTerminalTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC2X32.IfcGasTerminalTypeEnum = IfcGasTerminalTypeEnum; class IfcGeometricProjectionEnum { } IfcGeometricProjectionEnum.GRAPH_VIEW = { type: 3, value: "GRAPH_VIEW" }; IfcGeometricProjectionEnum.SKETCH_VIEW = { type: 3, value: "SKETCH_VIEW" }; IfcGeometricProjectionEnum.MODEL_VIEW = { type: 3, value: "MODEL_VIEW" }; IfcGeometricProjectionEnum.PLAN_VIEW = { type: 3, value: "PLAN_VIEW" }; IfcGeometricProjectionEnum.REFLECTED_PLAN_VIEW = { type: 3, value: "REFLECTED_PLAN_VIEW" }; IfcGeometricProjectionEnum.SECTION_VIEW = { type: 3, value: "SECTION_VIEW" }; IfcGeometricProjectionEnum.ELEVATION_VIEW = { type: 3, value: "ELEVATION_VIEW" }; IfcGeometricProjectionEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcGeometricProjectionEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC2X32.IfcGeometricProjectionEnum = IfcGeometricProjectionEnum; class IfcGlobalOrLocalEnum { } IfcGlobalOrLocalEnum.GLOBAL_COORDS = { type: 3, value: "GLOBAL_COORDS" }; IfcGlobalOrLocalEnum.LOCAL_COORDS = { type: 3, value: "LOCAL_COORDS" }; IFC2X32.IfcGlobalOrLocalEnum = IfcGlobalOrLocalEnum; class IfcHeatExchangerTypeEnum { } IfcHeatExchangerTypeEnum.PLATE = { type: 3, value: "PLATE" }; IfcHeatExchangerTypeEnum.SHELLANDTUBE = { type: 3, value: "SHELLANDTUBE" }; IfcHeatExchangerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcHeatExchangerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC2X32.IfcHeatExchangerTypeEnum = IfcHeatExchangerTypeEnum; class IfcHumidifierTypeEnum { } IfcHumidifierTypeEnum.STEAMINJECTION = { type: 3, value: "STEAMINJECTION" }; IfcHumidifierTypeEnum.ADIABATICAIRWASHER = { type: 3, value: "ADIABATICAIRWASHER" }; IfcHumidifierTypeEnum.ADIABATICPAN = { type: 3, value: "ADIABATICPAN" }; IfcHumidifierTypeEnum.ADIABATICWETTEDELEMENT = { type: 3, value: "ADIABATICWETTEDELEMENT" }; IfcHumidifierTypeEnum.ADIABATICATOMIZING = { type: 3, value: "ADIABATICATOMIZING" }; IfcHumidifierTypeEnum.ADIABATICULTRASONIC = { type: 3, value: "ADIABATICULTRASONIC" }; IfcHumidifierTypeEnum.ADIABATICRIGIDMEDIA = { type: 3, value: "ADIABATICRIGIDMEDIA" }; IfcHumidifierTypeEnum.ADIABATICCOMPRESSEDAIRNOZZLE = { type: 3, value: "ADIABATICCOMPRESSEDAIRNOZZLE" }; IfcHumidifierTypeEnum.ASSISTEDELECTRIC = { type: 3, value: "ASSISTEDELECTRIC" }; IfcHumidifierTypeEnum.ASSISTEDNATURALGAS = { type: 3, value: "ASSISTEDNATURALGAS" }; IfcHumidifierTypeEnum.ASSISTEDPROPANE = { type: 3, value: "ASSISTEDPROPANE" }; IfcHumidifierTypeEnum.ASSISTEDBUTANE = { type: 3, value: "ASSISTEDBUTANE" }; IfcHumidifierTypeEnum.ASSISTEDSTEAM = { type: 3, value: "ASSISTEDSTEAM" }; IfcHumidifierTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcHumidifierTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC2X32.IfcHumidifierTypeEnum = IfcHumidifierTypeEnum; class IfcInternalOrExternalEnum { } IfcInternalOrExternalEnum.INTERNAL = { type: 3, value: "INTERNAL" }; IfcInternalOrExternalEnum.EXTERNAL = { type: 3, value: "EXTERNAL" }; IfcInternalOrExternalEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC2X32.IfcInternalOrExternalEnum = IfcInternalOrExternalEnum; class IfcInventoryTypeEnum { } IfcInventoryTypeEnum.ASSETINVENTORY = { type: 3, value: "ASSETINVENTORY" }; IfcInventoryTypeEnum.SPACEINVENTORY = { type: 3, value: "SPACEINVENTORY" }; IfcInventoryTypeEnum.FURNITUREINVENTORY = { type: 3, value: "FURNITUREINVENTORY" }; IfcInventoryTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcInventoryTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC2X32.IfcInventoryTypeEnum = IfcInventoryTypeEnum; class IfcJunctionBoxTypeEnum { } IfcJunctionBoxTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcJunctionBoxTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC2X32.IfcJunctionBoxTypeEnum = IfcJunctionBoxTypeEnum; class IfcLampTypeEnum { } IfcLampTypeEnum.COMPACTFLUORESCENT = { type: 3, value: "COMPACTFLUORESCENT" }; IfcLampTypeEnum.FLUORESCENT = { type: 3, value: "FLUORESCENT" }; IfcLampTypeEnum.HIGHPRESSUREMERCURY = { type: 3, value: "HIGHPRESSUREMERCURY" }; IfcLampTypeEnum.HIGHPRESSURESODIUM = { type: 3, value: "HIGHPRESSURESODIUM" }; IfcLampTypeEnum.METALHALIDE = { type: 3, value: "METALHALIDE" }; IfcLampTypeEnum.TUNGSTENFILAMENT = { type: 3, value: "TUNGSTENFILAMENT" }; IfcLampTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcLampTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC2X32.IfcLampTypeEnum = IfcLampTypeEnum; class IfcLayerSetDirectionEnum { } IfcLayerSetDirectionEnum.AXIS1 = { type: 3, value: "AXIS1" }; IfcLayerSetDirectionEnum.AXIS2 = { type: 3, value: "AXIS2" }; IfcLayerSetDirectionEnum.AXIS3 = { type: 3, value: "AXIS3" }; IFC2X32.IfcLayerSetDirectionEnum = IfcLayerSetDirectionEnum; class IfcLightDistributionCurveEnum { } IfcLightDistributionCurveEnum.TYPE_A = { type: 3, value: "TYPE_A" }; IfcLightDistributionCurveEnum.TYPE_B = { type: 3, value: "TYPE_B" }; IfcLightDistributionCurveEnum.TYPE_C = { type: 3, value: "TYPE_C" }; IfcLightDistributionCurveEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC2X32.IfcLightDistributionCurveEnum = IfcLightDistributionCurveEnum; class IfcLightEmissionSourceEnum { } IfcLightEmissionSourceEnum.COMPACTFLUORESCENT = { type: 3, value: "COMPACTFLUORESCENT" }; IfcLightEmissionSourceEnum.FLUORESCENT = { type: 3, value: "FLUORESCENT" }; IfcLightEmissionSourceEnum.HIGHPRESSUREMERCURY = { type: 3, value: "HIGHPRESSUREMERCURY" }; IfcLightEmissionSourceEnum.HIGHPRESSURESODIUM = { type: 3, value: "HIGHPRESSURESODIUM" }; IfcLightEmissionSourceEnum.LIGHTEMITTINGDIODE = { type: 3, value: "LIGHTEMITTINGDIODE" }; IfcLightEmissionSourceEnum.LOWPRESSURESODIUM = { type: 3, value: "LOWPRESSURESODIUM" }; IfcLightEmissionSourceEnum.LOWVOLTAGEHALOGEN = { type: 3, value: "LOWVOLTAGEHALOGEN" }; IfcLightEmissionSourceEnum.MAINVOLTAGEHALOGEN = { type: 3, value: "MAINVOLTAGEHALOGEN" }; IfcLightEmissionSourceEnum.METALHALIDE = { type: 3, value: "METALHALIDE" }; IfcLightEmissionSourceEnum.TUNGSTENFILAMENT = { type: 3, value: "TUNGSTENFILAMENT" }; IfcLightEmissionSourceEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC2X32.IfcLightEmissionSourceEnum = IfcLightEmissionSourceEnum; class IfcLightFixtureTypeEnum { } IfcLightFixtureTypeEnum.POINTSOURCE = { type: 3, value: "POINTSOURCE" }; IfcLightFixtureTypeEnum.DIRECTIONSOURCE = { type: 3, value: "DIRECTIONSOURCE" }; IfcLightFixtureTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcLightFixtureTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC2X32.IfcLightFixtureTypeEnum = IfcLightFixtureTypeEnum; class IfcLoadGroupTypeEnum { } IfcLoadGroupTypeEnum.LOAD_GROUP = { type: 3, value: "LOAD_GROUP" }; IfcLoadGroupTypeEnum.LOAD_CASE = { type: 3, value: "LOAD_CASE" }; IfcLoadGroupTypeEnum.LOAD_COMBINATION_GROUP = { type: 3, value: "LOAD_COMBINATION_GROUP" }; IfcLoadGroupTypeEnum.LOAD_COMBINATION = { type: 3, value: "LOAD_COMBINATION" }; IfcLoadGroupTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcLoadGroupTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC2X32.IfcLoadGroupTypeEnum = IfcLoadGroupTypeEnum; class IfcLogicalOperatorEnum { } IfcLogicalOperatorEnum.LOGICALAND = { type: 3, value: "LOGICALAND" }; IfcLogicalOperatorEnum.LOGICALOR = { type: 3, value: "LOGICALOR" }; IFC2X32.IfcLogicalOperatorEnum = IfcLogicalOperatorEnum; class IfcMemberTypeEnum { } IfcMemberTypeEnum.BRACE = { type: 3, value: "BRACE" }; IfcMemberTypeEnum.CHORD = { type: 3, value: "CHORD" }; IfcMemberTypeEnum.COLLAR = { type: 3, value: "COLLAR" }; IfcMemberTypeEnum.MEMBER = { type: 3, value: "MEMBER" }; IfcMemberTypeEnum.MULLION = { type: 3, value: "MULLION" }; IfcMemberTypeEnum.PLATE = { type: 3, value: "PLATE" }; IfcMemberTypeEnum.POST = { type: 3, value: "POST" }; IfcMemberTypeEnum.PURLIN = { type: 3, value: "PURLIN" }; IfcMemberTypeEnum.RAFTER = { type: 3, value: "RAFTER" }; IfcMemberTypeEnum.STRINGER = { type: 3, value: "STRINGER" }; IfcMemberTypeEnum.STRUT = { type: 3, value: "STRUT" }; IfcMemberTypeEnum.STUD = { type: 3, value: "STUD" }; IfcMemberTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcMemberTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC2X32.IfcMemberTypeEnum = IfcMemberTypeEnum; class IfcMotorConnectionTypeEnum { } IfcMotorConnectionTypeEnum.BELTDRIVE = { type: 3, value: "BELTDRIVE" }; IfcMotorConnectionTypeEnum.COUPLING = { type: 3, value: "COUPLING" }; IfcMotorConnectionTypeEnum.DIRECTDRIVE = { type: 3, value: "DIRECTDRIVE" }; IfcMotorConnectionTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcMotorConnectionTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC2X32.IfcMotorConnectionTypeEnum = IfcMotorConnectionTypeEnum; class IfcNullStyle { } IfcNullStyle.NULL = { type: 3, value: "NULL" }; IFC2X32.IfcNullStyle = IfcNullStyle; class IfcObjectTypeEnum { } IfcObjectTypeEnum.PRODUCT = { type: 3, value: "PRODUCT" }; IfcObjectTypeEnum.PROCESS = { type: 3, value: "PROCESS" }; IfcObjectTypeEnum.CONTROL = { type: 3, value: "CONTROL" }; IfcObjectTypeEnum.RESOURCE = { type: 3, value: "RESOURCE" }; IfcObjectTypeEnum.ACTOR = { type: 3, value: "ACTOR" }; IfcObjectTypeEnum.GROUP = { type: 3, value: "GROUP" }; IfcObjectTypeEnum.PROJECT = { type: 3, value: "PROJECT" }; IfcObjectTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC2X32.IfcObjectTypeEnum = IfcObjectTypeEnum; class IfcObjectiveEnum { } IfcObjectiveEnum.CODECOMPLIANCE = { type: 3, value: "CODECOMPLIANCE" }; IfcObjectiveEnum.DESIGNINTENT = { type: 3, value: "DESIGNINTENT" }; IfcObjectiveEnum.HEALTHANDSAFETY = { type: 3, value: "HEALTHANDSAFETY" }; IfcObjectiveEnum.REQUIREMENT = { type: 3, value: "REQUIREMENT" }; IfcObjectiveEnum.SPECIFICATION = { type: 3, value: "SPECIFICATION" }; IfcObjectiveEnum.TRIGGERCONDITION = { type: 3, value: "TRIGGERCONDITION" }; IfcObjectiveEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcObjectiveEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC2X32.IfcObjectiveEnum = IfcObjectiveEnum; class IfcOccupantTypeEnum { } IfcOccupantTypeEnum.ASSIGNEE = { type: 3, value: "ASSIGNEE" }; IfcOccupantTypeEnum.ASSIGNOR = { type: 3, value: "ASSIGNOR" }; IfcOccupantTypeEnum.LESSEE = { type: 3, value: "LESSEE" }; IfcOccupantTypeEnum.LESSOR = { type: 3, value: "LESSOR" }; IfcOccupantTypeEnum.LETTINGAGENT = { type: 3, value: "LETTINGAGENT" }; IfcOccupantTypeEnum.OWNER = { type: 3, value: "OWNER" }; IfcOccupantTypeEnum.TENANT = { type: 3, value: "TENANT" }; IfcOccupantTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcOccupantTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC2X32.IfcOccupantTypeEnum = IfcOccupantTypeEnum; class IfcOutletTypeEnum { } IfcOutletTypeEnum.AUDIOVISUALOUTLET = { type: 3, value: "AUDIOVISUALOUTLET" }; IfcOutletTypeEnum.COMMUNICATIONSOUTLET = { type: 3, value: "COMMUNICATIONSOUTLET" }; IfcOutletTypeEnum.POWEROUTLET = { type: 3, value: "POWEROUTLET" }; IfcOutletTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcOutletTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC2X32.IfcOutletTypeEnum = IfcOutletTypeEnum; class IfcPermeableCoveringOperationEnum { } IfcPermeableCoveringOperationEnum.GRILL = { type: 3, value: "GRILL" }; IfcPermeableCoveringOperationEnum.LOUVER = { type: 3, value: "LOUVER" }; IfcPermeableCoveringOperationEnum.SCREEN = { type: 3, value: "SCREEN" }; IfcPermeableCoveringOperationEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcPermeableCoveringOperationEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC2X32.IfcPermeableCoveringOperationEnum = IfcPermeableCoveringOperationEnum; class IfcPhysicalOrVirtualEnum { } IfcPhysicalOrVirtualEnum.PHYSICAL = { type: 3, value: "PHYSICAL" }; IfcPhysicalOrVirtualEnum.VIRTUAL = { type: 3, value: "VIRTUAL" }; IfcPhysicalOrVirtualEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC2X32.IfcPhysicalOrVirtualEnum = IfcPhysicalOrVirtualEnum; class IfcPileConstructionEnum { } IfcPileConstructionEnum.CAST_IN_PLACE = { type: 3, value: "CAST_IN_PLACE" }; IfcPileConstructionEnum.COMPOSITE = { type: 3, value: "COMPOSITE" }; IfcPileConstructionEnum.PRECAST_CONCRETE = { type: 3, value: "PRECAST_CONCRETE" }; IfcPileConstructionEnum.PREFAB_STEEL = { type: 3, value: "PREFAB_STEEL" }; IfcPileConstructionEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcPileConstructionEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC2X32.IfcPileConstructionEnum = IfcPileConstructionEnum; class IfcPileTypeEnum { } IfcPileTypeEnum.COHESION = { type: 3, value: "COHESION" }; IfcPileTypeEnum.FRICTION = { type: 3, value: "FRICTION" }; IfcPileTypeEnum.SUPPORT = { type: 3, value: "SUPPORT" }; IfcPileTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcPileTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC2X32.IfcPileTypeEnum = IfcPileTypeEnum; class IfcPipeFittingTypeEnum { } IfcPipeFittingTypeEnum.BEND = { type: 3, value: "BEND" }; IfcPipeFittingTypeEnum.CONNECTOR = { type: 3, value: "CONNECTOR" }; IfcPipeFittingTypeEnum.ENTRY = { type: 3, value: "ENTRY" }; IfcPipeFittingTypeEnum.EXIT = { type: 3, value: "EXIT" }; IfcPipeFittingTypeEnum.JUNCTION = { type: 3, value: "JUNCTION" }; IfcPipeFittingTypeEnum.OBSTRUCTION = { type: 3, value: "OBSTRUCTION" }; IfcPipeFittingTypeEnum.TRANSITION = { type: 3, value: "TRANSITION" }; IfcPipeFittingTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcPipeFittingTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC2X32.IfcPipeFittingTypeEnum = IfcPipeFittingTypeEnum; class IfcPipeSegmentTypeEnum { } IfcPipeSegmentTypeEnum.FLEXIBLESEGMENT = { type: 3, value: "FLEXIBLESEGMENT" }; IfcPipeSegmentTypeEnum.RIGIDSEGMENT = { type: 3, value: "RIGIDSEGMENT" }; IfcPipeSegmentTypeEnum.GUTTER = { type: 3, value: "GUTTER" }; IfcPipeSegmentTypeEnum.SPOOL = { type: 3, value: "SPOOL" }; IfcPipeSegmentTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcPipeSegmentTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC2X32.IfcPipeSegmentTypeEnum = IfcPipeSegmentTypeEnum; class IfcPlateTypeEnum { } IfcPlateTypeEnum.CURTAIN_PANEL = { type: 3, value: "CURTAIN_PANEL" }; IfcPlateTypeEnum.SHEET = { type: 3, value: "SHEET" }; IfcPlateTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcPlateTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC2X32.IfcPlateTypeEnum = IfcPlateTypeEnum; class IfcProcedureTypeEnum { } IfcProcedureTypeEnum.ADVICE_CAUTION = { type: 3, value: "ADVICE_CAUTION" }; IfcProcedureTypeEnum.ADVICE_NOTE = { type: 3, value: "ADVICE_NOTE" }; IfcProcedureTypeEnum.ADVICE_WARNING = { type: 3, value: "ADVICE_WARNING" }; IfcProcedureTypeEnum.CALIBRATION = { type: 3, value: "CALIBRATION" }; IfcProcedureTypeEnum.DIAGNOSTIC = { type: 3, value: "DIAGNOSTIC" }; IfcProcedureTypeEnum.SHUTDOWN = { type: 3, value: "SHUTDOWN" }; IfcProcedureTypeEnum.STARTUP = { type: 3, value: "STARTUP" }; IfcProcedureTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcProcedureTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC2X32.IfcProcedureTypeEnum = IfcProcedureTypeEnum; class IfcProfileTypeEnum { } IfcProfileTypeEnum.CURVE = { type: 3, value: "CURVE" }; IfcProfileTypeEnum.AREA = { type: 3, value: "AREA" }; IFC2X32.IfcProfileTypeEnum = IfcProfileTypeEnum; class IfcProjectOrderRecordTypeEnum { } IfcProjectOrderRecordTypeEnum.CHANGE = { type: 3, value: "CHANGE" }; IfcProjectOrderRecordTypeEnum.MAINTENANCE = { type: 3, value: "MAINTENANCE" }; IfcProjectOrderRecordTypeEnum.MOVE = { type: 3, value: "MOVE" }; IfcProjectOrderRecordTypeEnum.PURCHASE = { type: 3, value: "PURCHASE" }; IfcProjectOrderRecordTypeEnum.WORK = { type: 3, value: "WORK" }; IfcProjectOrderRecordTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcProjectOrderRecordTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC2X32.IfcProjectOrderRecordTypeEnum = IfcProjectOrderRecordTypeEnum; class IfcProjectOrderTypeEnum { } IfcProjectOrderTypeEnum.CHANGEORDER = { type: 3, value: "CHANGEORDER" }; IfcProjectOrderTypeEnum.MAINTENANCEWORKORDER = { type: 3, value: "MAINTENANCEWORKORDER" }; IfcProjectOrderTypeEnum.MOVEORDER = { type: 3, value: "MOVEORDER" }; IfcProjectOrderTypeEnum.PURCHASEORDER = { type: 3, value: "PURCHASEORDER" }; IfcProjectOrderTypeEnum.WORKORDER = { type: 3, value: "WORKORDER" }; IfcProjectOrderTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcProjectOrderTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC2X32.IfcProjectOrderTypeEnum = IfcProjectOrderTypeEnum; class IfcProjectedOrTrueLengthEnum { } IfcProjectedOrTrueLengthEnum.PROJECTED_LENGTH = { type: 3, value: "PROJECTED_LENGTH" }; IfcProjectedOrTrueLengthEnum.TRUE_LENGTH = { type: 3, value: "TRUE_LENGTH" }; IFC2X32.IfcProjectedOrTrueLengthEnum = IfcProjectedOrTrueLengthEnum; class IfcPropertySourceEnum { } IfcPropertySourceEnum.DESIGN = { type: 3, value: "DESIGN" }; IfcPropertySourceEnum.DESIGNMAXIMUM = { type: 3, value: "DESIGNMAXIMUM" }; IfcPropertySourceEnum.DESIGNMINIMUM = { type: 3, value: "DESIGNMINIMUM" }; IfcPropertySourceEnum.SIMULATED = { type: 3, value: "SIMULATED" }; IfcPropertySourceEnum.ASBUILT = { type: 3, value: "ASBUILT" }; IfcPropertySourceEnum.COMMISSIONING = { type: 3, value: "COMMISSIONING" }; IfcPropertySourceEnum.MEASURED = { type: 3, value: "MEASURED" }; IfcPropertySourceEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcPropertySourceEnum.NOTKNOWN = { type: 3, value: "NOTKNOWN" }; IFC2X32.IfcPropertySourceEnum = IfcPropertySourceEnum; class IfcProtectiveDeviceTypeEnum { } IfcProtectiveDeviceTypeEnum.FUSEDISCONNECTOR = { type: 3, value: "FUSEDISCONNECTOR" }; IfcProtectiveDeviceTypeEnum.CIRCUITBREAKER = { type: 3, value: "CIRCUITBREAKER" }; IfcProtectiveDeviceTypeEnum.EARTHFAILUREDEVICE = { type: 3, value: "EARTHFAILUREDEVICE" }; IfcProtectiveDeviceTypeEnum.RESIDUALCURRENTCIRCUITBREAKER = { type: 3, value: "RESIDUALCURRENTCIRCUITBREAKER" }; IfcProtectiveDeviceTypeEnum.RESIDUALCURRENTSWITCH = { type: 3, value: "RESIDUALCURRENTSWITCH" }; IfcProtectiveDeviceTypeEnum.VARISTOR = { type: 3, value: "VARISTOR" }; IfcProtectiveDeviceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcProtectiveDeviceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC2X32.IfcProtectiveDeviceTypeEnum = IfcProtectiveDeviceTypeEnum; class IfcPumpTypeEnum { } IfcPumpTypeEnum.CIRCULATOR = { type: 3, value: "CIRCULATOR" }; IfcPumpTypeEnum.ENDSUCTION = { type: 3, value: "ENDSUCTION" }; IfcPumpTypeEnum.SPLITCASE = { type: 3, value: "SPLITCASE" }; IfcPumpTypeEnum.VERTICALINLINE = { type: 3, value: "VERTICALINLINE" }; IfcPumpTypeEnum.VERTICALTURBINE = { type: 3, value: "VERTICALTURBINE" }; IfcPumpTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcPumpTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC2X32.IfcPumpTypeEnum = IfcPumpTypeEnum; class IfcRailingTypeEnum { } IfcRailingTypeEnum.HANDRAIL = { type: 3, value: "HANDRAIL" }; IfcRailingTypeEnum.GUARDRAIL = { type: 3, value: "GUARDRAIL" }; IfcRailingTypeEnum.BALUSTRADE = { type: 3, value: "BALUSTRADE" }; IfcRailingTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcRailingTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC2X32.IfcRailingTypeEnum = IfcRailingTypeEnum; class IfcRampFlightTypeEnum { } IfcRampFlightTypeEnum.STRAIGHT = { type: 3, value: "STRAIGHT" }; IfcRampFlightTypeEnum.SPIRAL = { type: 3, value: "SPIRAL" }; IfcRampFlightTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcRampFlightTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC2X32.IfcRampFlightTypeEnum = IfcRampFlightTypeEnum; class IfcRampTypeEnum { } IfcRampTypeEnum.STRAIGHT_RUN_RAMP = { type: 3, value: "STRAIGHT_RUN_RAMP" }; IfcRampTypeEnum.TWO_STRAIGHT_RUN_RAMP = { type: 3, value: "TWO_STRAIGHT_RUN_RAMP" }; IfcRampTypeEnum.QUARTER_TURN_RAMP = { type: 3, value: "QUARTER_TURN_RAMP" }; IfcRampTypeEnum.TWO_QUARTER_TURN_RAMP = { type: 3, value: "TWO_QUARTER_TURN_RAMP" }; IfcRampTypeEnum.HALF_TURN_RAMP = { type: 3, value: "HALF_TURN_RAMP" }; IfcRampTypeEnum.SPIRAL_RAMP = { type: 3, value: "SPIRAL_RAMP" }; IfcRampTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcRampTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC2X32.IfcRampTypeEnum = IfcRampTypeEnum; class IfcReflectanceMethodEnum { } IfcReflectanceMethodEnum.BLINN = { type: 3, value: "BLINN" }; IfcReflectanceMethodEnum.FLAT = { type: 3, value: "FLAT" }; IfcReflectanceMethodEnum.GLASS = { type: 3, value: "GLASS" }; IfcReflectanceMethodEnum.MATT = { type: 3, value: "MATT" }; IfcReflectanceMethodEnum.METAL = { type: 3, value: "METAL" }; IfcReflectanceMethodEnum.MIRROR = { type: 3, value: "MIRROR" }; IfcReflectanceMethodEnum.PHONG = { type: 3, value: "PHONG" }; IfcReflectanceMethodEnum.PLASTIC = { type: 3, value: "PLASTIC" }; IfcReflectanceMethodEnum.STRAUSS = { type: 3, value: "STRAUSS" }; IfcReflectanceMethodEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC2X32.IfcReflectanceMethodEnum = IfcReflectanceMethodEnum; class IfcReinforcingBarRoleEnum { } IfcReinforcingBarRoleEnum.MAIN = { type: 3, value: "MAIN" }; IfcReinforcingBarRoleEnum.SHEAR = { type: 3, value: "SHEAR" }; IfcReinforcingBarRoleEnum.LIGATURE = { type: 3, value: "LIGATURE" }; IfcReinforcingBarRoleEnum.STUD = { type: 3, value: "STUD" }; IfcReinforcingBarRoleEnum.PUNCHING = { type: 3, value: "PUNCHING" }; IfcReinforcingBarRoleEnum.EDGE = { type: 3, value: "EDGE" }; IfcReinforcingBarRoleEnum.RING = { type: 3, value: "RING" }; IfcReinforcingBarRoleEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcReinforcingBarRoleEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC2X32.IfcReinforcingBarRoleEnum = IfcReinforcingBarRoleEnum; class IfcReinforcingBarSurfaceEnum { } IfcReinforcingBarSurfaceEnum.PLAIN = { type: 3, value: "PLAIN" }; IfcReinforcingBarSurfaceEnum.TEXTURED = { type: 3, value: "TEXTURED" }; IFC2X32.IfcReinforcingBarSurfaceEnum = IfcReinforcingBarSurfaceEnum; class IfcResourceConsumptionEnum { } IfcResourceConsumptionEnum.CONSUMED = { type: 3, value: "CONSUMED" }; IfcResourceConsumptionEnum.PARTIALLYCONSUMED = { type: 3, value: "PARTIALLYCONSUMED" }; IfcResourceConsumptionEnum.NOTCONSUMED = { type: 3, value: "NOTCONSUMED" }; IfcResourceConsumptionEnum.OCCUPIED = { type: 3, value: "OCCUPIED" }; IfcResourceConsumptionEnum.PARTIALLYOCCUPIED = { type: 3, value: "PARTIALLYOCCUPIED" }; IfcResourceConsumptionEnum.NOTOCCUPIED = { type: 3, value: "NOTOCCUPIED" }; IfcResourceConsumptionEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcResourceConsumptionEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC2X32.IfcResourceConsumptionEnum = IfcResourceConsumptionEnum; class IfcRibPlateDirectionEnum { } IfcRibPlateDirectionEnum.DIRECTION_X = { type: 3, value: "DIRECTION_X" }; IfcRibPlateDirectionEnum.DIRECTION_Y = { type: 3, value: "DIRECTION_Y" }; IFC2X32.IfcRibPlateDirectionEnum = IfcRibPlateDirectionEnum; class IfcRoleEnum { } IfcRoleEnum.SUPPLIER = { type: 3, value: "SUPPLIER" }; IfcRoleEnum.MANUFACTURER = { type: 3, value: "MANUFACTURER" }; IfcRoleEnum.CONTRACTOR = { type: 3, value: "CONTRACTOR" }; IfcRoleEnum.SUBCONTRACTOR = { type: 3, value: "SUBCONTRACTOR" }; IfcRoleEnum.ARCHITECT = { type: 3, value: "ARCHITECT" }; IfcRoleEnum.STRUCTURALENGINEER = { type: 3, value: "STRUCTURALENGINEER" }; IfcRoleEnum.COSTENGINEER = { type: 3, value: "COSTENGINEER" }; IfcRoleEnum.CLIENT = { type: 3, value: "CLIENT" }; IfcRoleEnum.BUILDINGOWNER = { type: 3, value: "BUILDINGOWNER" }; IfcRoleEnum.BUILDINGOPERATOR = { type: 3, value: "BUILDINGOPERATOR" }; IfcRoleEnum.MECHANICALENGINEER = { type: 3, value: "MECHANICALENGINEER" }; IfcRoleEnum.ELECTRICALENGINEER = { type: 3, value: "ELECTRICALENGINEER" }; IfcRoleEnum.PROJECTMANAGER = { type: 3, value: "PROJECTMANAGER" }; IfcRoleEnum.FACILITIESMANAGER = { type: 3, value: "FACILITIESMANAGER" }; IfcRoleEnum.CIVILENGINEER = { type: 3, value: "CIVILENGINEER" }; IfcRoleEnum.COMISSIONINGENGINEER = { type: 3, value: "COMISSIONINGENGINEER" }; IfcRoleEnum.ENGINEER = { type: 3, value: "ENGINEER" }; IfcRoleEnum.OWNER = { type: 3, value: "OWNER" }; IfcRoleEnum.CONSULTANT = { type: 3, value: "CONSULTANT" }; IfcRoleEnum.CONSTRUCTIONMANAGER = { type: 3, value: "CONSTRUCTIONMANAGER" }; IfcRoleEnum.FIELDCONSTRUCTIONMANAGER = { type: 3, value: "FIELDCONSTRUCTIONMANAGER" }; IfcRoleEnum.RESELLER = { type: 3, value: "RESELLER" }; IfcRoleEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IFC2X32.IfcRoleEnum = IfcRoleEnum; class IfcRoofTypeEnum { } IfcRoofTypeEnum.FLAT_ROOF = { type: 3, value: "FLAT_ROOF" }; IfcRoofTypeEnum.SHED_ROOF = { type: 3, value: "SHED_ROOF" }; IfcRoofTypeEnum.GABLE_ROOF = { type: 3, value: "GABLE_ROOF" }; IfcRoofTypeEnum.HIP_ROOF = { type: 3, value: "HIP_ROOF" }; IfcRoofTypeEnum.HIPPED_GABLE_ROOF = { type: 3, value: "HIPPED_GABLE_ROOF" }; IfcRoofTypeEnum.GAMBREL_ROOF = { type: 3, value: "GAMBREL_ROOF" }; IfcRoofTypeEnum.MANSARD_ROOF = { type: 3, value: "MANSARD_ROOF" }; IfcRoofTypeEnum.BARREL_ROOF = { type: 3, value: "BARREL_ROOF" }; IfcRoofTypeEnum.RAINBOW_ROOF = { type: 3, value: "RAINBOW_ROOF" }; IfcRoofTypeEnum.BUTTERFLY_ROOF = { type: 3, value: "BUTTERFLY_ROOF" }; IfcRoofTypeEnum.PAVILION_ROOF = { type: 3, value: "PAVILION_ROOF" }; IfcRoofTypeEnum.DOME_ROOF = { type: 3, value: "DOME_ROOF" }; IfcRoofTypeEnum.FREEFORM = { type: 3, value: "FREEFORM" }; IfcRoofTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC2X32.IfcRoofTypeEnum = IfcRoofTypeEnum; class IfcSIPrefix { } IfcSIPrefix.EXA = { type: 3, value: "EXA" }; IfcSIPrefix.PETA = { type: 3, value: "PETA" }; IfcSIPrefix.TERA = { type: 3, value: "TERA" }; IfcSIPrefix.GIGA = { type: 3, value: "GIGA" }; IfcSIPrefix.MEGA = { type: 3, value: "MEGA" }; IfcSIPrefix.KILO = { type: 3, value: "KILO" }; IfcSIPrefix.HECTO = { type: 3, value: "HECTO" }; IfcSIPrefix.DECA = { type: 3, value: "DECA" }; IfcSIPrefix.DECI = { type: 3, value: "DECI" }; IfcSIPrefix.CENTI = { type: 3, value: "CENTI" }; IfcSIPrefix.MILLI = { type: 3, value: "MILLI" }; IfcSIPrefix.MICRO = { type: 3, value: "MICRO" }; IfcSIPrefix.NANO = { type: 3, value: "NANO" }; IfcSIPrefix.PICO = { type: 3, value: "PICO" }; IfcSIPrefix.FEMTO = { type: 3, value: "FEMTO" }; IfcSIPrefix.ATTO = { type: 3, value: "ATTO" }; IFC2X32.IfcSIPrefix = IfcSIPrefix; class IfcSIUnitName { } IfcSIUnitName.AMPERE = { type: 3, value: "AMPERE" }; IfcSIUnitName.BECQUEREL = { type: 3, value: "BECQUEREL" }; IfcSIUnitName.CANDELA = { type: 3, value: "CANDELA" }; IfcSIUnitName.COULOMB = { type: 3, value: "COULOMB" }; IfcSIUnitName.CUBIC_METRE = { type: 3, value: "CUBIC_METRE" }; IfcSIUnitName.DEGREE_CELSIUS = { type: 3, value: "DEGREE_CELSIUS" }; IfcSIUnitName.FARAD = { type: 3, value: "FARAD" }; IfcSIUnitName.GRAM = { type: 3, value: "GRAM" }; IfcSIUnitName.GRAY = { type: 3, value: "GRAY" }; IfcSIUnitName.HENRY = { type: 3, value: "HENRY" }; IfcSIUnitName.HERTZ = { type: 3, value: "HERTZ" }; IfcSIUnitName.JOULE = { type: 3, value: "JOULE" }; IfcSIUnitName.KELVIN = { type: 3, value: "KELVIN" }; IfcSIUnitName.LUMEN = { type: 3, value: "LUMEN" }; IfcSIUnitName.LUX = { type: 3, value: "LUX" }; IfcSIUnitName.METRE = { type: 3, value: "METRE" }; IfcSIUnitName.MOLE = { type: 3, value: "MOLE" }; IfcSIUnitName.NEWTON = { type: 3, value: "NEWTON" }; IfcSIUnitName.OHM = { type: 3, value: "OHM" }; IfcSIUnitName.PASCAL = { type: 3, value: "PASCAL" }; IfcSIUnitName.RADIAN = { type: 3, value: "RADIAN" }; IfcSIUnitName.SECOND = { type: 3, value: "SECOND" }; IfcSIUnitName.SIEMENS = { type: 3, value: "SIEMENS" }; IfcSIUnitName.SIEVERT = { type: 3, value: "SIEVERT" }; IfcSIUnitName.SQUARE_METRE = { type: 3, value: "SQUARE_METRE" }; IfcSIUnitName.STERADIAN = { type: 3, value: "STERADIAN" }; IfcSIUnitName.TESLA = { type: 3, value: "TESLA" }; IfcSIUnitName.VOLT = { type: 3, value: "VOLT" }; IfcSIUnitName.WATT = { type: 3, value: "WATT" }; IfcSIUnitName.WEBER = { type: 3, value: "WEBER" }; IFC2X32.IfcSIUnitName = IfcSIUnitName; class IfcSanitaryTerminalTypeEnum { } IfcSanitaryTerminalTypeEnum.BATH = { type: 3, value: "BATH" }; IfcSanitaryTerminalTypeEnum.BIDET = { type: 3, value: "BIDET" }; IfcSanitaryTerminalTypeEnum.CISTERN = { type: 3, value: "CISTERN" }; IfcSanitaryTerminalTypeEnum.SHOWER = { type: 3, value: "SHOWER" }; IfcSanitaryTerminalTypeEnum.SINK = { type: 3, value: "SINK" }; IfcSanitaryTerminalTypeEnum.SANITARYFOUNTAIN = { type: 3, value: "SANITARYFOUNTAIN" }; IfcSanitaryTerminalTypeEnum.TOILETPAN = { type: 3, value: "TOILETPAN" }; IfcSanitaryTerminalTypeEnum.URINAL = { type: 3, value: "URINAL" }; IfcSanitaryTerminalTypeEnum.WASHHANDBASIN = { type: 3, value: "WASHHANDBASIN" }; IfcSanitaryTerminalTypeEnum.WCSEAT = { type: 3, value: "WCSEAT" }; IfcSanitaryTerminalTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcSanitaryTerminalTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC2X32.IfcSanitaryTerminalTypeEnum = IfcSanitaryTerminalTypeEnum; class IfcSectionTypeEnum { } IfcSectionTypeEnum.UNIFORM = { type: 3, value: "UNIFORM" }; IfcSectionTypeEnum.TAPERED = { type: 3, value: "TAPERED" }; IFC2X32.IfcSectionTypeEnum = IfcSectionTypeEnum; class IfcSensorTypeEnum { } IfcSensorTypeEnum.CO2SENSOR = { type: 3, value: "CO2SENSOR" }; IfcSensorTypeEnum.FIRESENSOR = { type: 3, value: "FIRESENSOR" }; IfcSensorTypeEnum.FLOWSENSOR = { type: 3, value: "FLOWSENSOR" }; IfcSensorTypeEnum.GASSENSOR = { type: 3, value: "GASSENSOR" }; IfcSensorTypeEnum.HEATSENSOR = { type: 3, value: "HEATSENSOR" }; IfcSensorTypeEnum.HUMIDITYSENSOR = { type: 3, value: "HUMIDITYSENSOR" }; IfcSensorTypeEnum.LIGHTSENSOR = { type: 3, value: "LIGHTSENSOR" }; IfcSensorTypeEnum.MOISTURESENSOR = { type: 3, value: "MOISTURESENSOR" }; IfcSensorTypeEnum.MOVEMENTSENSOR = { type: 3, value: "MOVEMENTSENSOR" }; IfcSensorTypeEnum.PRESSURESENSOR = { type: 3, value: "PRESSURESENSOR" }; IfcSensorTypeEnum.SMOKESENSOR = { type: 3, value: "SMOKESENSOR" }; IfcSensorTypeEnum.SOUNDSENSOR = { type: 3, value: "SOUNDSENSOR" }; IfcSensorTypeEnum.TEMPERATURESENSOR = { type: 3, value: "TEMPERATURESENSOR" }; IfcSensorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcSensorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC2X32.IfcSensorTypeEnum = IfcSensorTypeEnum; class IfcSequenceEnum { } IfcSequenceEnum.START_START = { type: 3, value: "START_START" }; IfcSequenceEnum.START_FINISH = { type: 3, value: "START_FINISH" }; IfcSequenceEnum.FINISH_START = { type: 3, value: "FINISH_START" }; IfcSequenceEnum.FINISH_FINISH = { type: 3, value: "FINISH_FINISH" }; IfcSequenceEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC2X32.IfcSequenceEnum = IfcSequenceEnum; class IfcServiceLifeFactorTypeEnum { } IfcServiceLifeFactorTypeEnum.A_QUALITYOFCOMPONENTS = { type: 3, value: "A_QUALITYOFCOMPONENTS" }; IfcServiceLifeFactorTypeEnum.B_DESIGNLEVEL = { type: 3, value: "B_DESIGNLEVEL" }; IfcServiceLifeFactorTypeEnum.C_WORKEXECUTIONLEVEL = { type: 3, value: "C_WORKEXECUTIONLEVEL" }; IfcServiceLifeFactorTypeEnum.D_INDOORENVIRONMENT = { type: 3, value: "D_INDOORENVIRONMENT" }; IfcServiceLifeFactorTypeEnum.E_OUTDOORENVIRONMENT = { type: 3, value: "E_OUTDOORENVIRONMENT" }; IfcServiceLifeFactorTypeEnum.F_INUSECONDITIONS = { type: 3, value: "F_INUSECONDITIONS" }; IfcServiceLifeFactorTypeEnum.G_MAINTENANCELEVEL = { type: 3, value: "G_MAINTENANCELEVEL" }; IfcServiceLifeFactorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcServiceLifeFactorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC2X32.IfcServiceLifeFactorTypeEnum = IfcServiceLifeFactorTypeEnum; class IfcServiceLifeTypeEnum { } IfcServiceLifeTypeEnum.ACTUALSERVICELIFE = { type: 3, value: "ACTUALSERVICELIFE" }; IfcServiceLifeTypeEnum.EXPECTEDSERVICELIFE = { type: 3, value: "EXPECTEDSERVICELIFE" }; IfcServiceLifeTypeEnum.OPTIMISTICREFERENCESERVICELIFE = { type: 3, value: "OPTIMISTICREFERENCESERVICELIFE" }; IfcServiceLifeTypeEnum.PESSIMISTICREFERENCESERVICELIFE = { type: 3, value: "PESSIMISTICREFERENCESERVICELIFE" }; IfcServiceLifeTypeEnum.REFERENCESERVICELIFE = { type: 3, value: "REFERENCESERVICELIFE" }; IFC2X32.IfcServiceLifeTypeEnum = IfcServiceLifeTypeEnum; class IfcSlabTypeEnum { } IfcSlabTypeEnum.FLOOR = { type: 3, value: "FLOOR" }; IfcSlabTypeEnum.ROOF = { type: 3, value: "ROOF" }; IfcSlabTypeEnum.LANDING = { type: 3, value: "LANDING" }; IfcSlabTypeEnum.BASESLAB = { type: 3, value: "BASESLAB" }; IfcSlabTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcSlabTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC2X32.IfcSlabTypeEnum = IfcSlabTypeEnum; class IfcSoundScaleEnum { } IfcSoundScaleEnum.DBA = { type: 3, value: "DBA" }; IfcSoundScaleEnum.DBB = { type: 3, value: "DBB" }; IfcSoundScaleEnum.DBC = { type: 3, value: "DBC" }; IfcSoundScaleEnum.NC = { type: 3, value: "NC" }; IfcSoundScaleEnum.NR = { type: 3, value: "NR" }; IfcSoundScaleEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcSoundScaleEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC2X32.IfcSoundScaleEnum = IfcSoundScaleEnum; class IfcSpaceHeaterTypeEnum { } IfcSpaceHeaterTypeEnum.SECTIONALRADIATOR = { type: 3, value: "SECTIONALRADIATOR" }; IfcSpaceHeaterTypeEnum.PANELRADIATOR = { type: 3, value: "PANELRADIATOR" }; IfcSpaceHeaterTypeEnum.TUBULARRADIATOR = { type: 3, value: "TUBULARRADIATOR" }; IfcSpaceHeaterTypeEnum.CONVECTOR = { type: 3, value: "CONVECTOR" }; IfcSpaceHeaterTypeEnum.BASEBOARDHEATER = { type: 3, value: "BASEBOARDHEATER" }; IfcSpaceHeaterTypeEnum.FINNEDTUBEUNIT = { type: 3, value: "FINNEDTUBEUNIT" }; IfcSpaceHeaterTypeEnum.UNITHEATER = { type: 3, value: "UNITHEATER" }; IfcSpaceHeaterTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcSpaceHeaterTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC2X32.IfcSpaceHeaterTypeEnum = IfcSpaceHeaterTypeEnum; class IfcSpaceTypeEnum { } IfcSpaceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcSpaceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC2X32.IfcSpaceTypeEnum = IfcSpaceTypeEnum; class IfcStackTerminalTypeEnum { } IfcStackTerminalTypeEnum.BIRDCAGE = { type: 3, value: "BIRDCAGE" }; IfcStackTerminalTypeEnum.COWL = { type: 3, value: "COWL" }; IfcStackTerminalTypeEnum.RAINWATERHOPPER = { type: 3, value: "RAINWATERHOPPER" }; IfcStackTerminalTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcStackTerminalTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC2X32.IfcStackTerminalTypeEnum = IfcStackTerminalTypeEnum; class IfcStairFlightTypeEnum { } IfcStairFlightTypeEnum.STRAIGHT = { type: 3, value: "STRAIGHT" }; IfcStairFlightTypeEnum.WINDER = { type: 3, value: "WINDER" }; IfcStairFlightTypeEnum.SPIRAL = { type: 3, value: "SPIRAL" }; IfcStairFlightTypeEnum.CURVED = { type: 3, value: "CURVED" }; IfcStairFlightTypeEnum.FREEFORM = { type: 3, value: "FREEFORM" }; IfcStairFlightTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcStairFlightTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC2X32.IfcStairFlightTypeEnum = IfcStairFlightTypeEnum; class IfcStairTypeEnum { } IfcStairTypeEnum.STRAIGHT_RUN_STAIR = { type: 3, value: "STRAIGHT_RUN_STAIR" }; IfcStairTypeEnum.TWO_STRAIGHT_RUN_STAIR = { type: 3, value: "TWO_STRAIGHT_RUN_STAIR" }; IfcStairTypeEnum.QUARTER_WINDING_STAIR = { type: 3, value: "QUARTER_WINDING_STAIR" }; IfcStairTypeEnum.QUARTER_TURN_STAIR = { type: 3, value: "QUARTER_TURN_STAIR" }; IfcStairTypeEnum.HALF_WINDING_STAIR = { type: 3, value: "HALF_WINDING_STAIR" }; IfcStairTypeEnum.HALF_TURN_STAIR = { type: 3, value: "HALF_TURN_STAIR" }; IfcStairTypeEnum.TWO_QUARTER_WINDING_STAIR = { type: 3, value: "TWO_QUARTER_WINDING_STAIR" }; IfcStairTypeEnum.TWO_QUARTER_TURN_STAIR = { type: 3, value: "TWO_QUARTER_TURN_STAIR" }; IfcStairTypeEnum.THREE_QUARTER_WINDING_STAIR = { type: 3, value: "THREE_QUARTER_WINDING_STAIR" }; IfcStairTypeEnum.THREE_QUARTER_TURN_STAIR = { type: 3, value: "THREE_QUARTER_TURN_STAIR" }; IfcStairTypeEnum.SPIRAL_STAIR = { type: 3, value: "SPIRAL_STAIR" }; IfcStairTypeEnum.DOUBLE_RETURN_STAIR = { type: 3, value: "DOUBLE_RETURN_STAIR" }; IfcStairTypeEnum.CURVED_RUN_STAIR = { type: 3, value: "CURVED_RUN_STAIR" }; IfcStairTypeEnum.TWO_CURVED_RUN_STAIR = { type: 3, value: "TWO_CURVED_RUN_STAIR" }; IfcStairTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcStairTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC2X32.IfcStairTypeEnum = IfcStairTypeEnum; class IfcStateEnum { } IfcStateEnum.READWRITE = { type: 3, value: "READWRITE" }; IfcStateEnum.READONLY = { type: 3, value: "READONLY" }; IfcStateEnum.LOCKED = { type: 3, value: "LOCKED" }; IfcStateEnum.READWRITELOCKED = { type: 3, value: "READWRITELOCKED" }; IfcStateEnum.READONLYLOCKED = { type: 3, value: "READONLYLOCKED" }; IFC2X32.IfcStateEnum = IfcStateEnum; class IfcStructuralCurveTypeEnum { } IfcStructuralCurveTypeEnum.RIGID_JOINED_MEMBER = { type: 3, value: "RIGID_JOINED_MEMBER" }; IfcStructuralCurveTypeEnum.PIN_JOINED_MEMBER = { type: 3, value: "PIN_JOINED_MEMBER" }; IfcStructuralCurveTypeEnum.CABLE = { type: 3, value: "CABLE" }; IfcStructuralCurveTypeEnum.TENSION_MEMBER = { type: 3, value: "TENSION_MEMBER" }; IfcStructuralCurveTypeEnum.COMPRESSION_MEMBER = { type: 3, value: "COMPRESSION_MEMBER" }; IfcStructuralCurveTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcStructuralCurveTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC2X32.IfcStructuralCurveTypeEnum = IfcStructuralCurveTypeEnum; class IfcStructuralSurfaceTypeEnum { } IfcStructuralSurfaceTypeEnum.BENDING_ELEMENT = { type: 3, value: "BENDING_ELEMENT" }; IfcStructuralSurfaceTypeEnum.MEMBRANE_ELEMENT = { type: 3, value: "MEMBRANE_ELEMENT" }; IfcStructuralSurfaceTypeEnum.SHELL = { type: 3, value: "SHELL" }; IfcStructuralSurfaceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcStructuralSurfaceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC2X32.IfcStructuralSurfaceTypeEnum = IfcStructuralSurfaceTypeEnum; class IfcSurfaceSide { } IfcSurfaceSide.POSITIVE = { type: 3, value: "POSITIVE" }; IfcSurfaceSide.NEGATIVE = { type: 3, value: "NEGATIVE" }; IfcSurfaceSide.BOTH = { type: 3, value: "BOTH" }; IFC2X32.IfcSurfaceSide = IfcSurfaceSide; class IfcSurfaceTextureEnum { } IfcSurfaceTextureEnum.BUMP = { type: 3, value: "BUMP" }; IfcSurfaceTextureEnum.OPACITY = { type: 3, value: "OPACITY" }; IfcSurfaceTextureEnum.REFLECTION = { type: 3, value: "REFLECTION" }; IfcSurfaceTextureEnum.SELFILLUMINATION = { type: 3, value: "SELFILLUMINATION" }; IfcSurfaceTextureEnum.SHININESS = { type: 3, value: "SHININESS" }; IfcSurfaceTextureEnum.SPECULAR = { type: 3, value: "SPECULAR" }; IfcSurfaceTextureEnum.TEXTURE = { type: 3, value: "TEXTURE" }; IfcSurfaceTextureEnum.TRANSPARENCYMAP = { type: 3, value: "TRANSPARENCYMAP" }; IfcSurfaceTextureEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC2X32.IfcSurfaceTextureEnum = IfcSurfaceTextureEnum; class IfcSwitchingDeviceTypeEnum { } IfcSwitchingDeviceTypeEnum.CONTACTOR = { type: 3, value: "CONTACTOR" }; IfcSwitchingDeviceTypeEnum.EMERGENCYSTOP = { type: 3, value: "EMERGENCYSTOP" }; IfcSwitchingDeviceTypeEnum.STARTER = { type: 3, value: "STARTER" }; IfcSwitchingDeviceTypeEnum.SWITCHDISCONNECTOR = { type: 3, value: "SWITCHDISCONNECTOR" }; IfcSwitchingDeviceTypeEnum.TOGGLESWITCH = { type: 3, value: "TOGGLESWITCH" }; IfcSwitchingDeviceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcSwitchingDeviceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC2X32.IfcSwitchingDeviceTypeEnum = IfcSwitchingDeviceTypeEnum; class IfcTankTypeEnum { } IfcTankTypeEnum.PREFORMED = { type: 3, value: "PREFORMED" }; IfcTankTypeEnum.SECTIONAL = { type: 3, value: "SECTIONAL" }; IfcTankTypeEnum.EXPANSION = { type: 3, value: "EXPANSION" }; IfcTankTypeEnum.PRESSUREVESSEL = { type: 3, value: "PRESSUREVESSEL" }; IfcTankTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcTankTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC2X32.IfcTankTypeEnum = IfcTankTypeEnum; class IfcTendonTypeEnum { } IfcTendonTypeEnum.STRAND = { type: 3, value: "STRAND" }; IfcTendonTypeEnum.WIRE = { type: 3, value: "WIRE" }; IfcTendonTypeEnum.BAR = { type: 3, value: "BAR" }; IfcTendonTypeEnum.COATED = { type: 3, value: "COATED" }; IfcTendonTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcTendonTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC2X32.IfcTendonTypeEnum = IfcTendonTypeEnum; class IfcTextPath { } IfcTextPath.LEFT = { type: 3, value: "LEFT" }; IfcTextPath.RIGHT = { type: 3, value: "RIGHT" }; IfcTextPath.UP = { type: 3, value: "UP" }; IfcTextPath.DOWN = { type: 3, value: "DOWN" }; IFC2X32.IfcTextPath = IfcTextPath; class IfcThermalLoadSourceEnum { } IfcThermalLoadSourceEnum.PEOPLE = { type: 3, value: "PEOPLE" }; IfcThermalLoadSourceEnum.LIGHTING = { type: 3, value: "LIGHTING" }; IfcThermalLoadSourceEnum.EQUIPMENT = { type: 3, value: "EQUIPMENT" }; IfcThermalLoadSourceEnum.VENTILATIONINDOORAIR = { type: 3, value: "VENTILATIONINDOORAIR" }; IfcThermalLoadSourceEnum.VENTILATIONOUTSIDEAIR = { type: 3, value: "VENTILATIONOUTSIDEAIR" }; IfcThermalLoadSourceEnum.RECIRCULATEDAIR = { type: 3, value: "RECIRCULATEDAIR" }; IfcThermalLoadSourceEnum.EXHAUSTAIR = { type: 3, value: "EXHAUSTAIR" }; IfcThermalLoadSourceEnum.AIREXCHANGERATE = { type: 3, value: "AIREXCHANGERATE" }; IfcThermalLoadSourceEnum.DRYBULBTEMPERATURE = { type: 3, value: "DRYBULBTEMPERATURE" }; IfcThermalLoadSourceEnum.RELATIVEHUMIDITY = { type: 3, value: "RELATIVEHUMIDITY" }; IfcThermalLoadSourceEnum.INFILTRATION = { type: 3, value: "INFILTRATION" }; IfcThermalLoadSourceEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcThermalLoadSourceEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC2X32.IfcThermalLoadSourceEnum = IfcThermalLoadSourceEnum; class IfcThermalLoadTypeEnum { } IfcThermalLoadTypeEnum.SENSIBLE = { type: 3, value: "SENSIBLE" }; IfcThermalLoadTypeEnum.LATENT = { type: 3, value: "LATENT" }; IfcThermalLoadTypeEnum.RADIANT = { type: 3, value: "RADIANT" }; IfcThermalLoadTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC2X32.IfcThermalLoadTypeEnum = IfcThermalLoadTypeEnum; class IfcTimeSeriesDataTypeEnum { } IfcTimeSeriesDataTypeEnum.CONTINUOUS = { type: 3, value: "CONTINUOUS" }; IfcTimeSeriesDataTypeEnum.DISCRETE = { type: 3, value: "DISCRETE" }; IfcTimeSeriesDataTypeEnum.DISCRETEBINARY = { type: 3, value: "DISCRETEBINARY" }; IfcTimeSeriesDataTypeEnum.PIECEWISEBINARY = { type: 3, value: "PIECEWISEBINARY" }; IfcTimeSeriesDataTypeEnum.PIECEWISECONSTANT = { type: 3, value: "PIECEWISECONSTANT" }; IfcTimeSeriesDataTypeEnum.PIECEWISECONTINUOUS = { type: 3, value: "PIECEWISECONTINUOUS" }; IfcTimeSeriesDataTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC2X32.IfcTimeSeriesDataTypeEnum = IfcTimeSeriesDataTypeEnum; class IfcTimeSeriesScheduleTypeEnum { } IfcTimeSeriesScheduleTypeEnum.ANNUAL = { type: 3, value: "ANNUAL" }; IfcTimeSeriesScheduleTypeEnum.MONTHLY = { type: 3, value: "MONTHLY" }; IfcTimeSeriesScheduleTypeEnum.WEEKLY = { type: 3, value: "WEEKLY" }; IfcTimeSeriesScheduleTypeEnum.DAILY = { type: 3, value: "DAILY" }; IfcTimeSeriesScheduleTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcTimeSeriesScheduleTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC2X32.IfcTimeSeriesScheduleTypeEnum = IfcTimeSeriesScheduleTypeEnum; class IfcTransformerTypeEnum { } IfcTransformerTypeEnum.CURRENT = { type: 3, value: "CURRENT" }; IfcTransformerTypeEnum.FREQUENCY = { type: 3, value: "FREQUENCY" }; IfcTransformerTypeEnum.VOLTAGE = { type: 3, value: "VOLTAGE" }; IfcTransformerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcTransformerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC2X32.IfcTransformerTypeEnum = IfcTransformerTypeEnum; class IfcTransitionCode { } IfcTransitionCode.DISCONTINUOUS = { type: 3, value: "DISCONTINUOUS" }; IfcTransitionCode.CONTINUOUS = { type: 3, value: "CONTINUOUS" }; IfcTransitionCode.CONTSAMEGRADIENT = { type: 3, value: "CONTSAMEGRADIENT" }; IfcTransitionCode.CONTSAMEGRADIENTSAMECURVATURE = { type: 3, value: "CONTSAMEGRADIENTSAMECURVATURE" }; IFC2X32.IfcTransitionCode = IfcTransitionCode; class IfcTransportElementTypeEnum { } IfcTransportElementTypeEnum.ELEVATOR = { type: 3, value: "ELEVATOR" }; IfcTransportElementTypeEnum.ESCALATOR = { type: 3, value: "ESCALATOR" }; IfcTransportElementTypeEnum.MOVINGWALKWAY = { type: 3, value: "MOVINGWALKWAY" }; IfcTransportElementTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcTransportElementTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC2X32.IfcTransportElementTypeEnum = IfcTransportElementTypeEnum; class IfcTrimmingPreference { } IfcTrimmingPreference.CARTESIAN = { type: 3, value: "CARTESIAN" }; IfcTrimmingPreference.PARAMETER = { type: 3, value: "PARAMETER" }; IfcTrimmingPreference.UNSPECIFIED = { type: 3, value: "UNSPECIFIED" }; IFC2X32.IfcTrimmingPreference = IfcTrimmingPreference; class IfcTubeBundleTypeEnum { } IfcTubeBundleTypeEnum.FINNED = { type: 3, value: "FINNED" }; IfcTubeBundleTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcTubeBundleTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC2X32.IfcTubeBundleTypeEnum = IfcTubeBundleTypeEnum; class IfcUnitEnum { } IfcUnitEnum.ABSORBEDDOSEUNIT = { type: 3, value: "ABSORBEDDOSEUNIT" }; IfcUnitEnum.AMOUNTOFSUBSTANCEUNIT = { type: 3, value: "AMOUNTOFSUBSTANCEUNIT" }; IfcUnitEnum.AREAUNIT = { type: 3, value: "AREAUNIT" }; IfcUnitEnum.DOSEEQUIVALENTUNIT = { type: 3, value: "DOSEEQUIVALENTUNIT" }; IfcUnitEnum.ELECTRICCAPACITANCEUNIT = { type: 3, value: "ELECTRICCAPACITANCEUNIT" }; IfcUnitEnum.ELECTRICCHARGEUNIT = { type: 3, value: "ELECTRICCHARGEUNIT" }; IfcUnitEnum.ELECTRICCONDUCTANCEUNIT = { type: 3, value: "ELECTRICCONDUCTANCEUNIT" }; IfcUnitEnum.ELECTRICCURRENTUNIT = { type: 3, value: "ELECTRICCURRENTUNIT" }; IfcUnitEnum.ELECTRICRESISTANCEUNIT = { type: 3, value: "ELECTRICRESISTANCEUNIT" }; IfcUnitEnum.ELECTRICVOLTAGEUNIT = { type: 3, value: "ELECTRICVOLTAGEUNIT" }; IfcUnitEnum.ENERGYUNIT = { type: 3, value: "ENERGYUNIT" }; IfcUnitEnum.FORCEUNIT = { type: 3, value: "FORCEUNIT" }; IfcUnitEnum.FREQUENCYUNIT = { type: 3, value: "FREQUENCYUNIT" }; IfcUnitEnum.ILLUMINANCEUNIT = { type: 3, value: "ILLUMINANCEUNIT" }; IfcUnitEnum.INDUCTANCEUNIT = { type: 3, value: "INDUCTANCEUNIT" }; IfcUnitEnum.LENGTHUNIT = { type: 3, value: "LENGTHUNIT" }; IfcUnitEnum.LUMINOUSFLUXUNIT = { type: 3, value: "LUMINOUSFLUXUNIT" }; IfcUnitEnum.LUMINOUSINTENSITYUNIT = { type: 3, value: "LUMINOUSINTENSITYUNIT" }; IfcUnitEnum.MAGNETICFLUXDENSITYUNIT = { type: 3, value: "MAGNETICFLUXDENSITYUNIT" }; IfcUnitEnum.MAGNETICFLUXUNIT = { type: 3, value: "MAGNETICFLUXUNIT" }; IfcUnitEnum.MASSUNIT = { type: 3, value: "MASSUNIT" }; IfcUnitEnum.PLANEANGLEUNIT = { type: 3, value: "PLANEANGLEUNIT" }; IfcUnitEnum.POWERUNIT = { type: 3, value: "POWERUNIT" }; IfcUnitEnum.PRESSUREUNIT = { type: 3, value: "PRESSUREUNIT" }; IfcUnitEnum.RADIOACTIVITYUNIT = { type: 3, value: "RADIOACTIVITYUNIT" }; IfcUnitEnum.SOLIDANGLEUNIT = { type: 3, value: "SOLIDANGLEUNIT" }; IfcUnitEnum.THERMODYNAMICTEMPERATUREUNIT = { type: 3, value: "THERMODYNAMICTEMPERATUREUNIT" }; IfcUnitEnum.TIMEUNIT = { type: 3, value: "TIMEUNIT" }; IfcUnitEnum.VOLUMEUNIT = { type: 3, value: "VOLUMEUNIT" }; IfcUnitEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IFC2X32.IfcUnitEnum = IfcUnitEnum; class IfcUnitaryEquipmentTypeEnum { } IfcUnitaryEquipmentTypeEnum.AIRHANDLER = { type: 3, value: "AIRHANDLER" }; IfcUnitaryEquipmentTypeEnum.AIRCONDITIONINGUNIT = { type: 3, value: "AIRCONDITIONINGUNIT" }; IfcUnitaryEquipmentTypeEnum.SPLITSYSTEM = { type: 3, value: "SPLITSYSTEM" }; IfcUnitaryEquipmentTypeEnum.ROOFTOPUNIT = { type: 3, value: "ROOFTOPUNIT" }; IfcUnitaryEquipmentTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcUnitaryEquipmentTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC2X32.IfcUnitaryEquipmentTypeEnum = IfcUnitaryEquipmentTypeEnum; class IfcValveTypeEnum { } IfcValveTypeEnum.AIRRELEASE = { type: 3, value: "AIRRELEASE" }; IfcValveTypeEnum.ANTIVACUUM = { type: 3, value: "ANTIVACUUM" }; IfcValveTypeEnum.CHANGEOVER = { type: 3, value: "CHANGEOVER" }; IfcValveTypeEnum.CHECK = { type: 3, value: "CHECK" }; IfcValveTypeEnum.COMMISSIONING = { type: 3, value: "COMMISSIONING" }; IfcValveTypeEnum.DIVERTING = { type: 3, value: "DIVERTING" }; IfcValveTypeEnum.DRAWOFFCOCK = { type: 3, value: "DRAWOFFCOCK" }; IfcValveTypeEnum.DOUBLECHECK = { type: 3, value: "DOUBLECHECK" }; IfcValveTypeEnum.DOUBLEREGULATING = { type: 3, value: "DOUBLEREGULATING" }; IfcValveTypeEnum.FAUCET = { type: 3, value: "FAUCET" }; IfcValveTypeEnum.FLUSHING = { type: 3, value: "FLUSHING" }; IfcValveTypeEnum.GASCOCK = { type: 3, value: "GASCOCK" }; IfcValveTypeEnum.GASTAP = { type: 3, value: "GASTAP" }; IfcValveTypeEnum.ISOLATING = { type: 3, value: "ISOLATING" }; IfcValveTypeEnum.MIXING = { type: 3, value: "MIXING" }; IfcValveTypeEnum.PRESSUREREDUCING = { type: 3, value: "PRESSUREREDUCING" }; IfcValveTypeEnum.PRESSURERELIEF = { type: 3, value: "PRESSURERELIEF" }; IfcValveTypeEnum.REGULATING = { type: 3, value: "REGULATING" }; IfcValveTypeEnum.SAFETYCUTOFF = { type: 3, value: "SAFETYCUTOFF" }; IfcValveTypeEnum.STEAMTRAP = { type: 3, value: "STEAMTRAP" }; IfcValveTypeEnum.STOPCOCK = { type: 3, value: "STOPCOCK" }; IfcValveTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcValveTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC2X32.IfcValveTypeEnum = IfcValveTypeEnum; class IfcVibrationIsolatorTypeEnum { } IfcVibrationIsolatorTypeEnum.COMPRESSION = { type: 3, value: "COMPRESSION" }; IfcVibrationIsolatorTypeEnum.SPRING = { type: 3, value: "SPRING" }; IfcVibrationIsolatorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcVibrationIsolatorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC2X32.IfcVibrationIsolatorTypeEnum = IfcVibrationIsolatorTypeEnum; class IfcWallTypeEnum { } IfcWallTypeEnum.STANDARD = { type: 3, value: "STANDARD" }; IfcWallTypeEnum.POLYGONAL = { type: 3, value: "POLYGONAL" }; IfcWallTypeEnum.SHEAR = { type: 3, value: "SHEAR" }; IfcWallTypeEnum.ELEMENTEDWALL = { type: 3, value: "ELEMENTEDWALL" }; IfcWallTypeEnum.PLUMBINGWALL = { type: 3, value: "PLUMBINGWALL" }; IfcWallTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcWallTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC2X32.IfcWallTypeEnum = IfcWallTypeEnum; class IfcWasteTerminalTypeEnum { } IfcWasteTerminalTypeEnum.FLOORTRAP = { type: 3, value: "FLOORTRAP" }; IfcWasteTerminalTypeEnum.FLOORWASTE = { type: 3, value: "FLOORWASTE" }; IfcWasteTerminalTypeEnum.GULLYSUMP = { type: 3, value: "GULLYSUMP" }; IfcWasteTerminalTypeEnum.GULLYTRAP = { type: 3, value: "GULLYTRAP" }; IfcWasteTerminalTypeEnum.GREASEINTERCEPTOR = { type: 3, value: "GREASEINTERCEPTOR" }; IfcWasteTerminalTypeEnum.OILINTERCEPTOR = { type: 3, value: "OILINTERCEPTOR" }; IfcWasteTerminalTypeEnum.PETROLINTERCEPTOR = { type: 3, value: "PETROLINTERCEPTOR" }; IfcWasteTerminalTypeEnum.ROOFDRAIN = { type: 3, value: "ROOFDRAIN" }; IfcWasteTerminalTypeEnum.WASTEDISPOSALUNIT = { type: 3, value: "WASTEDISPOSALUNIT" }; IfcWasteTerminalTypeEnum.WASTETRAP = { type: 3, value: "WASTETRAP" }; IfcWasteTerminalTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcWasteTerminalTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC2X32.IfcWasteTerminalTypeEnum = IfcWasteTerminalTypeEnum; class IfcWindowPanelOperationEnum { } IfcWindowPanelOperationEnum.SIDEHUNGRIGHTHAND = { type: 3, value: "SIDEHUNGRIGHTHAND" }; IfcWindowPanelOperationEnum.SIDEHUNGLEFTHAND = { type: 3, value: "SIDEHUNGLEFTHAND" }; IfcWindowPanelOperationEnum.TILTANDTURNRIGHTHAND = { type: 3, value: "TILTANDTURNRIGHTHAND" }; IfcWindowPanelOperationEnum.TILTANDTURNLEFTHAND = { type: 3, value: "TILTANDTURNLEFTHAND" }; IfcWindowPanelOperationEnum.TOPHUNG = { type: 3, value: "TOPHUNG" }; IfcWindowPanelOperationEnum.BOTTOMHUNG = { type: 3, value: "BOTTOMHUNG" }; IfcWindowPanelOperationEnum.PIVOTHORIZONTAL = { type: 3, value: "PIVOTHORIZONTAL" }; IfcWindowPanelOperationEnum.PIVOTVERTICAL = { type: 3, value: "PIVOTVERTICAL" }; IfcWindowPanelOperationEnum.SLIDINGHORIZONTAL = { type: 3, value: "SLIDINGHORIZONTAL" }; IfcWindowPanelOperationEnum.SLIDINGVERTICAL = { type: 3, value: "SLIDINGVERTICAL" }; IfcWindowPanelOperationEnum.REMOVABLECASEMENT = { type: 3, value: "REMOVABLECASEMENT" }; IfcWindowPanelOperationEnum.FIXEDCASEMENT = { type: 3, value: "FIXEDCASEMENT" }; IfcWindowPanelOperationEnum.OTHEROPERATION = { type: 3, value: "OTHEROPERATION" }; IfcWindowPanelOperationEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC2X32.IfcWindowPanelOperationEnum = IfcWindowPanelOperationEnum; class IfcWindowPanelPositionEnum { } IfcWindowPanelPositionEnum.LEFT = { type: 3, value: "LEFT" }; IfcWindowPanelPositionEnum.MIDDLE = { type: 3, value: "MIDDLE" }; IfcWindowPanelPositionEnum.RIGHT = { type: 3, value: "RIGHT" }; IfcWindowPanelPositionEnum.BOTTOM = { type: 3, value: "BOTTOM" }; IfcWindowPanelPositionEnum.TOP = { type: 3, value: "TOP" }; IfcWindowPanelPositionEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC2X32.IfcWindowPanelPositionEnum = IfcWindowPanelPositionEnum; class IfcWindowStyleConstructionEnum { } IfcWindowStyleConstructionEnum.ALUMINIUM = { type: 3, value: "ALUMINIUM" }; IfcWindowStyleConstructionEnum.HIGH_GRADE_STEEL = { type: 3, value: "HIGH_GRADE_STEEL" }; IfcWindowStyleConstructionEnum.STEEL = { type: 3, value: "STEEL" }; IfcWindowStyleConstructionEnum.WOOD = { type: 3, value: "WOOD" }; IfcWindowStyleConstructionEnum.ALUMINIUM_WOOD = { type: 3, value: "ALUMINIUM_WOOD" }; IfcWindowStyleConstructionEnum.PLASTIC = { type: 3, value: "PLASTIC" }; IfcWindowStyleConstructionEnum.OTHER_CONSTRUCTION = { type: 3, value: "OTHER_CONSTRUCTION" }; IfcWindowStyleConstructionEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC2X32.IfcWindowStyleConstructionEnum = IfcWindowStyleConstructionEnum; class IfcWindowStyleOperationEnum { } IfcWindowStyleOperationEnum.SINGLE_PANEL = { type: 3, value: "SINGLE_PANEL" }; IfcWindowStyleOperationEnum.DOUBLE_PANEL_VERTICAL = { type: 3, value: "DOUBLE_PANEL_VERTICAL" }; IfcWindowStyleOperationEnum.DOUBLE_PANEL_HORIZONTAL = { type: 3, value: "DOUBLE_PANEL_HORIZONTAL" }; IfcWindowStyleOperationEnum.TRIPLE_PANEL_VERTICAL = { type: 3, value: "TRIPLE_PANEL_VERTICAL" }; IfcWindowStyleOperationEnum.TRIPLE_PANEL_BOTTOM = { type: 3, value: "TRIPLE_PANEL_BOTTOM" }; IfcWindowStyleOperationEnum.TRIPLE_PANEL_TOP = { type: 3, value: "TRIPLE_PANEL_TOP" }; IfcWindowStyleOperationEnum.TRIPLE_PANEL_LEFT = { type: 3, value: "TRIPLE_PANEL_LEFT" }; IfcWindowStyleOperationEnum.TRIPLE_PANEL_RIGHT = { type: 3, value: "TRIPLE_PANEL_RIGHT" }; IfcWindowStyleOperationEnum.TRIPLE_PANEL_HORIZONTAL = { type: 3, value: "TRIPLE_PANEL_HORIZONTAL" }; IfcWindowStyleOperationEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcWindowStyleOperationEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC2X32.IfcWindowStyleOperationEnum = IfcWindowStyleOperationEnum; class IfcWorkControlTypeEnum { } IfcWorkControlTypeEnum.ACTUAL = { type: 3, value: "ACTUAL" }; IfcWorkControlTypeEnum.BASELINE = { type: 3, value: "BASELINE" }; IfcWorkControlTypeEnum.PLANNED = { type: 3, value: "PLANNED" }; IfcWorkControlTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcWorkControlTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC2X32.IfcWorkControlTypeEnum = IfcWorkControlTypeEnum; class IfcActorRole extends IfcLineObject { constructor(expressID, Role, UserDefinedRole, Description) { super(expressID); this.Role = Role; this.UserDefinedRole = UserDefinedRole; this.Description = Description; this.type = 3630933823; } } IFC2X32.IfcActorRole = IfcActorRole; class IfcAddress extends IfcLineObject { constructor(expressID, Purpose, Description, UserDefinedPurpose) { super(expressID); this.Purpose = Purpose; this.Description = Description; this.UserDefinedPurpose = UserDefinedPurpose; this.type = 618182010; } } IFC2X32.IfcAddress = IfcAddress; class IfcApplication extends IfcLineObject { constructor(expressID, ApplicationDeveloper, Version, ApplicationFullName, ApplicationIdentifier) { super(expressID); this.ApplicationDeveloper = ApplicationDeveloper; this.Version = Version; this.ApplicationFullName = ApplicationFullName; this.ApplicationIdentifier = ApplicationIdentifier; this.type = 639542469; } } IFC2X32.IfcApplication = IfcApplication; class IfcAppliedValue extends IfcLineObject { constructor(expressID, Name, Description, AppliedValue, UnitBasis, ApplicableDate, FixedUntilDate) { super(expressID); this.Name = Name; this.Description = Description; this.AppliedValue = AppliedValue; this.UnitBasis = UnitBasis; this.ApplicableDate = ApplicableDate; this.FixedUntilDate = FixedUntilDate; this.type = 411424972; } } IFC2X32.IfcAppliedValue = IfcAppliedValue; class IfcAppliedValueRelationship extends IfcLineObject { constructor(expressID, ComponentOfTotal, Components, ArithmeticOperator, Name, Description) { super(expressID); this.ComponentOfTotal = ComponentOfTotal; this.Components = Components; this.ArithmeticOperator = ArithmeticOperator; this.Name = Name; this.Description = Description; this.type = 1110488051; } } IFC2X32.IfcAppliedValueRelationship = IfcAppliedValueRelationship; class IfcApproval extends IfcLineObject { constructor(expressID, Description, ApprovalDateTime, ApprovalStatus, ApprovalLevel, ApprovalQualifier, Name, Identifier) { super(expressID); this.Description = Description; this.ApprovalDateTime = ApprovalDateTime; this.ApprovalStatus = ApprovalStatus; this.ApprovalLevel = ApprovalLevel; this.ApprovalQualifier = ApprovalQualifier; this.Name = Name; this.Identifier = Identifier; this.type = 130549933; } } IFC2X32.IfcApproval = IfcApproval; class IfcApprovalActorRelationship extends IfcLineObject { constructor(expressID, Actor, Approval, Role) { super(expressID); this.Actor = Actor; this.Approval = Approval; this.Role = Role; this.type = 2080292479; } } IFC2X32.IfcApprovalActorRelationship = IfcApprovalActorRelationship; class IfcApprovalPropertyRelationship extends IfcLineObject { constructor(expressID, ApprovedProperties, Approval) { super(expressID); this.ApprovedProperties = ApprovedProperties; this.Approval = Approval; this.type = 390851274; } } IFC2X32.IfcApprovalPropertyRelationship = IfcApprovalPropertyRelationship; class IfcApprovalRelationship extends IfcLineObject { constructor(expressID, RelatedApproval, RelatingApproval, Description, Name) { super(expressID); this.RelatedApproval = RelatedApproval; this.RelatingApproval = RelatingApproval; this.Description = Description; this.Name = Name; this.type = 3869604511; } } IFC2X32.IfcApprovalRelationship = IfcApprovalRelationship; class IfcBoundaryCondition extends IfcLineObject { constructor(expressID, Name) { super(expressID); this.Name = Name; this.type = 4037036970; } } IFC2X32.IfcBoundaryCondition = IfcBoundaryCondition; class IfcBoundaryEdgeCondition extends IfcBoundaryCondition { constructor(expressID, Name, LinearStiffnessByLengthX, LinearStiffnessByLengthY, LinearStiffnessByLengthZ, RotationalStiffnessByLengthX, RotationalStiffnessByLengthY, RotationalStiffnessByLengthZ) { super(expressID, Name); this.Name = Name; this.LinearStiffnessByLengthX = LinearStiffnessByLengthX; this.LinearStiffnessByLengthY = LinearStiffnessByLengthY; this.LinearStiffnessByLengthZ = LinearStiffnessByLengthZ; this.RotationalStiffnessByLengthX = RotationalStiffnessByLengthX; this.RotationalStiffnessByLengthY = RotationalStiffnessByLengthY; this.RotationalStiffnessByLengthZ = RotationalStiffnessByLengthZ; this.type = 1560379544; } } IFC2X32.IfcBoundaryEdgeCondition = IfcBoundaryEdgeCondition; class IfcBoundaryFaceCondition extends IfcBoundaryCondition { constructor(expressID, Name, LinearStiffnessByAreaX, LinearStiffnessByAreaY, LinearStiffnessByAreaZ) { super(expressID, Name); this.Name = Name; this.LinearStiffnessByAreaX = LinearStiffnessByAreaX; this.LinearStiffnessByAreaY = LinearStiffnessByAreaY; this.LinearStiffnessByAreaZ = LinearStiffnessByAreaZ; this.type = 3367102660; } } IFC2X32.IfcBoundaryFaceCondition = IfcBoundaryFaceCondition; class IfcBoundaryNodeCondition extends IfcBoundaryCondition { constructor(expressID, Name, LinearStiffnessX, LinearStiffnessY, LinearStiffnessZ, RotationalStiffnessX, RotationalStiffnessY, RotationalStiffnessZ) { super(expressID, Name); this.Name = Name; this.LinearStiffnessX = LinearStiffnessX; this.LinearStiffnessY = LinearStiffnessY; this.LinearStiffnessZ = LinearStiffnessZ; this.RotationalStiffnessX = RotationalStiffnessX; this.RotationalStiffnessY = RotationalStiffnessY; this.RotationalStiffnessZ = RotationalStiffnessZ; this.type = 1387855156; } } IFC2X32.IfcBoundaryNodeCondition = IfcBoundaryNodeCondition; class IfcBoundaryNodeConditionWarping extends IfcBoundaryNodeCondition { constructor(expressID, Name, LinearStiffnessX, LinearStiffnessY, LinearStiffnessZ, RotationalStiffnessX, RotationalStiffnessY, RotationalStiffnessZ, WarpingStiffness) { super(expressID, Name, LinearStiffnessX, LinearStiffnessY, LinearStiffnessZ, RotationalStiffnessX, RotationalStiffnessY, RotationalStiffnessZ); this.Name = Name; this.LinearStiffnessX = LinearStiffnessX; this.LinearStiffnessY = LinearStiffnessY; this.LinearStiffnessZ = LinearStiffnessZ; this.RotationalStiffnessX = RotationalStiffnessX; this.RotationalStiffnessY = RotationalStiffnessY; this.RotationalStiffnessZ = RotationalStiffnessZ; this.WarpingStiffness = WarpingStiffness; this.type = 2069777674; } } IFC2X32.IfcBoundaryNodeConditionWarping = IfcBoundaryNodeConditionWarping; class IfcCalendarDate extends IfcLineObject { constructor(expressID, DayComponent, MonthComponent, YearComponent) { super(expressID); this.DayComponent = DayComponent; this.MonthComponent = MonthComponent; this.YearComponent = YearComponent; this.type = 622194075; } } IFC2X32.IfcCalendarDate = IfcCalendarDate; class IfcClassification extends IfcLineObject { constructor(expressID, Source, Edition, EditionDate, Name) { super(expressID); this.Source = Source; this.Edition = Edition; this.EditionDate = EditionDate; this.Name = Name; this.type = 747523909; } } IFC2X32.IfcClassification = IfcClassification; class IfcClassificationItem extends IfcLineObject { constructor(expressID, Notation, ItemOf, Title) { super(expressID); this.Notation = Notation; this.ItemOf = ItemOf; this.Title = Title; this.type = 1767535486; } } IFC2X32.IfcClassificationItem = IfcClassificationItem; class IfcClassificationItemRelationship extends IfcLineObject { constructor(expressID, RelatingItem, RelatedItems) { super(expressID); this.RelatingItem = RelatingItem; this.RelatedItems = RelatedItems; this.type = 1098599126; } } IFC2X32.IfcClassificationItemRelationship = IfcClassificationItemRelationship; class IfcClassificationNotation extends IfcLineObject { constructor(expressID, NotationFacets) { super(expressID); this.NotationFacets = NotationFacets; this.type = 938368621; } } IFC2X32.IfcClassificationNotation = IfcClassificationNotation; class IfcClassificationNotationFacet extends IfcLineObject { constructor(expressID, NotationValue) { super(expressID); this.NotationValue = NotationValue; this.type = 3639012971; } } IFC2X32.IfcClassificationNotationFacet = IfcClassificationNotationFacet; class IfcColourSpecification extends IfcLineObject { constructor(expressID, Name) { super(expressID); this.Name = Name; this.type = 3264961684; } } IFC2X32.IfcColourSpecification = IfcColourSpecification; class IfcConnectionGeometry extends IfcLineObject { constructor(expressID) { super(expressID); this.type = 2859738748; } } IFC2X32.IfcConnectionGeometry = IfcConnectionGeometry; class IfcConnectionPointGeometry extends IfcConnectionGeometry { constructor(expressID, PointOnRelatingElement, PointOnRelatedElement) { super(expressID); this.PointOnRelatingElement = PointOnRelatingElement; this.PointOnRelatedElement = PointOnRelatedElement; this.type = 2614616156; } } IFC2X32.IfcConnectionPointGeometry = IfcConnectionPointGeometry; class IfcConnectionPortGeometry extends IfcConnectionGeometry { constructor(expressID, LocationAtRelatingElement, LocationAtRelatedElement, ProfileOfPort) { super(expressID); this.LocationAtRelatingElement = LocationAtRelatingElement; this.LocationAtRelatedElement = LocationAtRelatedElement; this.ProfileOfPort = ProfileOfPort; this.type = 4257277454; } } IFC2X32.IfcConnectionPortGeometry = IfcConnectionPortGeometry; class IfcConnectionSurfaceGeometry extends IfcConnectionGeometry { constructor(expressID, SurfaceOnRelatingElement, SurfaceOnRelatedElement) { super(expressID); this.SurfaceOnRelatingElement = SurfaceOnRelatingElement; this.SurfaceOnRelatedElement = SurfaceOnRelatedElement; this.type = 2732653382; } } IFC2X32.IfcConnectionSurfaceGeometry = IfcConnectionSurfaceGeometry; class IfcConstraint extends IfcLineObject { constructor(expressID, Name, Description, ConstraintGrade, ConstraintSource, CreatingActor, CreationTime, UserDefinedGrade) { super(expressID); this.Name = Name; this.Description = Description; this.ConstraintGrade = ConstraintGrade; this.ConstraintSource = ConstraintSource; this.CreatingActor = CreatingActor; this.CreationTime = CreationTime; this.UserDefinedGrade = UserDefinedGrade; this.type = 1959218052; } } IFC2X32.IfcConstraint = IfcConstraint; class IfcConstraintAggregationRelationship extends IfcLineObject { constructor(expressID, Name, Description, RelatingConstraint, RelatedConstraints, LogicalAggregator) { super(expressID); this.Name = Name; this.Description = Description; this.RelatingConstraint = RelatingConstraint; this.RelatedConstraints = RelatedConstraints; this.LogicalAggregator = LogicalAggregator; this.type = 1658513725; } } IFC2X32.IfcConstraintAggregationRelationship = IfcConstraintAggregationRelationship; class IfcConstraintClassificationRelationship extends IfcLineObject { constructor(expressID, ClassifiedConstraint, RelatedClassifications) { super(expressID); this.ClassifiedConstraint = ClassifiedConstraint; this.RelatedClassifications = RelatedClassifications; this.type = 613356794; } } IFC2X32.IfcConstraintClassificationRelationship = IfcConstraintClassificationRelationship; class IfcConstraintRelationship extends IfcLineObject { constructor(expressID, Name, Description, RelatingConstraint, RelatedConstraints) { super(expressID); this.Name = Name; this.Description = Description; this.RelatingConstraint = RelatingConstraint; this.RelatedConstraints = RelatedConstraints; this.type = 347226245; } } IFC2X32.IfcConstraintRelationship = IfcConstraintRelationship; class IfcCoordinatedUniversalTimeOffset extends IfcLineObject { constructor(expressID, HourOffset, MinuteOffset, Sense) { super(expressID); this.HourOffset = HourOffset; this.MinuteOffset = MinuteOffset; this.Sense = Sense; this.type = 1065062679; } } IFC2X32.IfcCoordinatedUniversalTimeOffset = IfcCoordinatedUniversalTimeOffset; class IfcCostValue extends IfcAppliedValue { constructor(expressID, Name, Description, AppliedValue, UnitBasis, ApplicableDate, FixedUntilDate, CostType, Condition) { super(expressID, Name, Description, AppliedValue, UnitBasis, ApplicableDate, FixedUntilDate); this.Name = Name; this.Description = Description; this.AppliedValue = AppliedValue; this.UnitBasis = UnitBasis; this.ApplicableDate = ApplicableDate; this.FixedUntilDate = FixedUntilDate; this.CostType = CostType; this.Condition = Condition; this.type = 602808272; } } IFC2X32.IfcCostValue = IfcCostValue; class IfcCurrencyRelationship extends IfcLineObject { constructor(expressID, RelatingMonetaryUnit, RelatedMonetaryUnit, ExchangeRate, RateDateTime, RateSource) { super(expressID); this.RelatingMonetaryUnit = RelatingMonetaryUnit; this.RelatedMonetaryUnit = RelatedMonetaryUnit; this.ExchangeRate = ExchangeRate; this.RateDateTime = RateDateTime; this.RateSource = RateSource; this.type = 539742890; } } IFC2X32.IfcCurrencyRelationship = IfcCurrencyRelationship; class IfcCurveStyleFont extends IfcLineObject { constructor(expressID, Name, PatternList) { super(expressID); this.Name = Name; this.PatternList = PatternList; this.type = 1105321065; } } IFC2X32.IfcCurveStyleFont = IfcCurveStyleFont; class IfcCurveStyleFontAndScaling extends IfcLineObject { constructor(expressID, Name, CurveFont, CurveFontScaling) { super(expressID); this.Name = Name; this.CurveFont = CurveFont; this.CurveFontScaling = CurveFontScaling; this.type = 2367409068; } } IFC2X32.IfcCurveStyleFontAndScaling = IfcCurveStyleFontAndScaling; class IfcCurveStyleFontPattern extends IfcLineObject { constructor(expressID, VisibleSegmentLength, InvisibleSegmentLength) { super(expressID); this.VisibleSegmentLength = VisibleSegmentLength; this.InvisibleSegmentLength = InvisibleSegmentLength; this.type = 3510044353; } } IFC2X32.IfcCurveStyleFontPattern = IfcCurveStyleFontPattern; class IfcDateAndTime extends IfcLineObject { constructor(expressID, DateComponent, TimeComponent) { super(expressID); this.DateComponent = DateComponent; this.TimeComponent = TimeComponent; this.type = 1072939445; } } IFC2X32.IfcDateAndTime = IfcDateAndTime; class IfcDerivedUnit extends IfcLineObject { constructor(expressID, Elements, UnitType, UserDefinedType) { super(expressID); this.Elements = Elements; this.UnitType = UnitType; this.UserDefinedType = UserDefinedType; this.type = 1765591967; } } IFC2X32.IfcDerivedUnit = IfcDerivedUnit; class IfcDerivedUnitElement extends IfcLineObject { constructor(expressID, Unit, Exponent) { super(expressID); this.Unit = Unit; this.Exponent = Exponent; this.type = 1045800335; } } IFC2X32.IfcDerivedUnitElement = IfcDerivedUnitElement; class IfcDimensionalExponents extends IfcLineObject { constructor(expressID, LengthExponent, MassExponent, TimeExponent, ElectricCurrentExponent, ThermodynamicTemperatureExponent, AmountOfSubstanceExponent, LuminousIntensityExponent) { super(expressID); this.LengthExponent = LengthExponent; this.MassExponent = MassExponent; this.TimeExponent = TimeExponent; this.ElectricCurrentExponent = ElectricCurrentExponent; this.ThermodynamicTemperatureExponent = ThermodynamicTemperatureExponent; this.AmountOfSubstanceExponent = AmountOfSubstanceExponent; this.LuminousIntensityExponent = LuminousIntensityExponent; this.type = 2949456006; } } IFC2X32.IfcDimensionalExponents = IfcDimensionalExponents; class IfcDocumentElectronicFormat extends IfcLineObject { constructor(expressID, FileExtension, MimeContentType, MimeSubtype) { super(expressID); this.FileExtension = FileExtension; this.MimeContentType = MimeContentType; this.MimeSubtype = MimeSubtype; this.type = 1376555844; } } IFC2X32.IfcDocumentElectronicFormat = IfcDocumentElectronicFormat; class IfcDocumentInformation extends IfcLineObject { constructor(expressID, DocumentId, Name, Description, DocumentReferences, Purpose, IntendedUse, Scope, Revision, DocumentOwner, Editors, CreationTime, LastRevisionTime, ElectronicFormat, ValidFrom, ValidUntil, Confidentiality, Status) { super(expressID); this.DocumentId = DocumentId; this.Name = Name; this.Description = Description; this.DocumentReferences = DocumentReferences; this.Purpose = Purpose; this.IntendedUse = IntendedUse; this.Scope = Scope; this.Revision = Revision; this.DocumentOwner = DocumentOwner; this.Editors = Editors; this.CreationTime = CreationTime; this.LastRevisionTime = LastRevisionTime; this.ElectronicFormat = ElectronicFormat; this.ValidFrom = ValidFrom; this.ValidUntil = ValidUntil; this.Confidentiality = Confidentiality; this.Status = Status; this.type = 1154170062; } } IFC2X32.IfcDocumentInformation = IfcDocumentInformation; class IfcDocumentInformationRelationship extends IfcLineObject { constructor(expressID, RelatingDocument, RelatedDocuments, RelationshipType) { super(expressID); this.RelatingDocument = RelatingDocument; this.RelatedDocuments = RelatedDocuments; this.RelationshipType = RelationshipType; this.type = 770865208; } } IFC2X32.IfcDocumentInformationRelationship = IfcDocumentInformationRelationship; class IfcDraughtingCalloutRelationship extends IfcLineObject { constructor(expressID, Name, Description, RelatingDraughtingCallout, RelatedDraughtingCallout) { super(expressID); this.Name = Name; this.Description = Description; this.RelatingDraughtingCallout = RelatingDraughtingCallout; this.RelatedDraughtingCallout = RelatedDraughtingCallout; this.type = 3796139169; } } IFC2X32.IfcDraughtingCalloutRelationship = IfcDraughtingCalloutRelationship; class IfcEnvironmentalImpactValue extends IfcAppliedValue { constructor(expressID, Name, Description, AppliedValue, UnitBasis, ApplicableDate, FixedUntilDate, ImpactType, Category, UserDefinedCategory) { super(expressID, Name, Description, AppliedValue, UnitBasis, ApplicableDate, FixedUntilDate); this.Name = Name; this.Description = Description; this.AppliedValue = AppliedValue; this.UnitBasis = UnitBasis; this.ApplicableDate = ApplicableDate; this.FixedUntilDate = FixedUntilDate; this.ImpactType = ImpactType; this.Category = Category; this.UserDefinedCategory = UserDefinedCategory; this.type = 1648886627; } } IFC2X32.IfcEnvironmentalImpactValue = IfcEnvironmentalImpactValue; class IfcExternalReference extends IfcLineObject { constructor(expressID, Location, ItemReference, Name) { super(expressID); this.Location = Location; this.ItemReference = ItemReference; this.Name = Name; this.type = 3200245327; } } IFC2X32.IfcExternalReference = IfcExternalReference; class IfcExternallyDefinedHatchStyle extends IfcExternalReference { constructor(expressID, Location, ItemReference, Name) { super(expressID, Location, ItemReference, Name); this.Location = Location; this.ItemReference = ItemReference; this.Name = Name; this.type = 2242383968; } } IFC2X32.IfcExternallyDefinedHatchStyle = IfcExternallyDefinedHatchStyle; class IfcExternallyDefinedSurfaceStyle extends IfcExternalReference { constructor(expressID, Location, ItemReference, Name) { super(expressID, Location, ItemReference, Name); this.Location = Location; this.ItemReference = ItemReference; this.Name = Name; this.type = 1040185647; } } IFC2X32.IfcExternallyDefinedSurfaceStyle = IfcExternallyDefinedSurfaceStyle; class IfcExternallyDefinedSymbol extends IfcExternalReference { constructor(expressID, Location, ItemReference, Name) { super(expressID, Location, ItemReference, Name); this.Location = Location; this.ItemReference = ItemReference; this.Name = Name; this.type = 3207319532; } } IFC2X32.IfcExternallyDefinedSymbol = IfcExternallyDefinedSymbol; class IfcExternallyDefinedTextFont extends IfcExternalReference { constructor(expressID, Location, ItemReference, Name) { super(expressID, Location, ItemReference, Name); this.Location = Location; this.ItemReference = ItemReference; this.Name = Name; this.type = 3548104201; } } IFC2X32.IfcExternallyDefinedTextFont = IfcExternallyDefinedTextFont; class IfcGridAxis extends IfcLineObject { constructor(expressID, AxisTag, AxisCurve, SameSense) { super(expressID); this.AxisTag = AxisTag; this.AxisCurve = AxisCurve; this.SameSense = SameSense; this.type = 852622518; } } IFC2X32.IfcGridAxis = IfcGridAxis; class IfcIrregularTimeSeriesValue extends IfcLineObject { constructor(expressID, TimeStamp, ListValues) { super(expressID); this.TimeStamp = TimeStamp; this.ListValues = ListValues; this.type = 3020489413; } } IFC2X32.IfcIrregularTimeSeriesValue = IfcIrregularTimeSeriesValue; class IfcLibraryInformation extends IfcLineObject { constructor(expressID, Name, Version, Publisher, VersionDate, LibraryReference) { super(expressID); this.Name = Name; this.Version = Version; this.Publisher = Publisher; this.VersionDate = VersionDate; this.LibraryReference = LibraryReference; this.type = 2655187982; } } IFC2X32.IfcLibraryInformation = IfcLibraryInformation; class IfcLibraryReference extends IfcExternalReference { constructor(expressID, Location, ItemReference, Name) { super(expressID, Location, ItemReference, Name); this.Location = Location; this.ItemReference = ItemReference; this.Name = Name; this.type = 3452421091; } } IFC2X32.IfcLibraryReference = IfcLibraryReference; class IfcLightDistributionData extends IfcLineObject { constructor(expressID, MainPlaneAngle, SecondaryPlaneAngle, LuminousIntensity) { super(expressID); this.MainPlaneAngle = MainPlaneAngle; this.SecondaryPlaneAngle = SecondaryPlaneAngle; this.LuminousIntensity = LuminousIntensity; this.type = 4162380809; } } IFC2X32.IfcLightDistributionData = IfcLightDistributionData; class IfcLightIntensityDistribution extends IfcLineObject { constructor(expressID, LightDistributionCurve, DistributionData) { super(expressID); this.LightDistributionCurve = LightDistributionCurve; this.DistributionData = DistributionData; this.type = 1566485204; } } IFC2X32.IfcLightIntensityDistribution = IfcLightIntensityDistribution; class IfcLocalTime extends IfcLineObject { constructor(expressID, HourComponent, MinuteComponent, SecondComponent, Zone, DaylightSavingOffset) { super(expressID); this.HourComponent = HourComponent; this.MinuteComponent = MinuteComponent; this.SecondComponent = SecondComponent; this.Zone = Zone; this.DaylightSavingOffset = DaylightSavingOffset; this.type = 30780891; } } IFC2X32.IfcLocalTime = IfcLocalTime; class IfcMaterial extends IfcLineObject { constructor(expressID, Name) { super(expressID); this.Name = Name; this.type = 1838606355; } } IFC2X32.IfcMaterial = IfcMaterial; class IfcMaterialClassificationRelationship extends IfcLineObject { constructor(expressID, MaterialClassifications, ClassifiedMaterial) { super(expressID); this.MaterialClassifications = MaterialClassifications; this.ClassifiedMaterial = ClassifiedMaterial; this.type = 1847130766; } } IFC2X32.IfcMaterialClassificationRelationship = IfcMaterialClassificationRelationship; class IfcMaterialLayer extends IfcLineObject { constructor(expressID, Material, LayerThickness, IsVentilated) { super(expressID); this.Material = Material; this.LayerThickness = LayerThickness; this.IsVentilated = IsVentilated; this.type = 248100487; } } IFC2X32.IfcMaterialLayer = IfcMaterialLayer; class IfcMaterialLayerSet extends IfcLineObject { constructor(expressID, MaterialLayers, LayerSetName) { super(expressID); this.MaterialLayers = MaterialLayers; this.LayerSetName = LayerSetName; this.type = 3303938423; } } IFC2X32.IfcMaterialLayerSet = IfcMaterialLayerSet; class IfcMaterialLayerSetUsage extends IfcLineObject { constructor(expressID, ForLayerSet, LayerSetDirection, DirectionSense, OffsetFromReferenceLine) { super(expressID); this.ForLayerSet = ForLayerSet; this.LayerSetDirection = LayerSetDirection; this.DirectionSense = DirectionSense; this.OffsetFromReferenceLine = OffsetFromReferenceLine; this.type = 1303795690; } } IFC2X32.IfcMaterialLayerSetUsage = IfcMaterialLayerSetUsage; class IfcMaterialList extends IfcLineObject { constructor(expressID, Materials) { super(expressID); this.Materials = Materials; this.type = 2199411900; } } IFC2X32.IfcMaterialList = IfcMaterialList; class IfcMaterialProperties extends IfcLineObject { constructor(expressID, Material) { super(expressID); this.Material = Material; this.type = 3265635763; } } IFC2X32.IfcMaterialProperties = IfcMaterialProperties; class IfcMeasureWithUnit extends IfcLineObject { constructor(expressID, ValueComponent, UnitComponent) { super(expressID); this.ValueComponent = ValueComponent; this.UnitComponent = UnitComponent; this.type = 2597039031; } } IFC2X32.IfcMeasureWithUnit = IfcMeasureWithUnit; class IfcMechanicalMaterialProperties extends IfcMaterialProperties { constructor(expressID, Material, DynamicViscosity, YoungModulus, ShearModulus, PoissonRatio, ThermalExpansionCoefficient) { super(expressID, Material); this.Material = Material; this.DynamicViscosity = DynamicViscosity; this.YoungModulus = YoungModulus; this.ShearModulus = ShearModulus; this.PoissonRatio = PoissonRatio; this.ThermalExpansionCoefficient = ThermalExpansionCoefficient; this.type = 4256014907; } } IFC2X32.IfcMechanicalMaterialProperties = IfcMechanicalMaterialProperties; class IfcMechanicalSteelMaterialProperties extends IfcMechanicalMaterialProperties { constructor(expressID, Material, DynamicViscosity, YoungModulus, ShearModulus, PoissonRatio, ThermalExpansionCoefficient, YieldStress, UltimateStress, UltimateStrain, HardeningModule, ProportionalStress, PlasticStrain, Relaxations) { super(expressID, Material, DynamicViscosity, YoungModulus, ShearModulus, PoissonRatio, ThermalExpansionCoefficient); this.Material = Material; this.DynamicViscosity = DynamicViscosity; this.YoungModulus = YoungModulus; this.ShearModulus = ShearModulus; this.PoissonRatio = PoissonRatio; this.ThermalExpansionCoefficient = ThermalExpansionCoefficient; this.YieldStress = YieldStress; this.UltimateStress = UltimateStress; this.UltimateStrain = UltimateStrain; this.HardeningModule = HardeningModule; this.ProportionalStress = ProportionalStress; this.PlasticStrain = PlasticStrain; this.Relaxations = Relaxations; this.type = 677618848; } } IFC2X32.IfcMechanicalSteelMaterialProperties = IfcMechanicalSteelMaterialProperties; class IfcMetric extends IfcConstraint { constructor(expressID, Name, Description, ConstraintGrade, ConstraintSource, CreatingActor, CreationTime, UserDefinedGrade, Benchmark, ValueSource, DataValue) { super(expressID, Name, Description, ConstraintGrade, ConstraintSource, CreatingActor, CreationTime, UserDefinedGrade); this.Name = Name; this.Description = Description; this.ConstraintGrade = ConstraintGrade; this.ConstraintSource = ConstraintSource; this.CreatingActor = CreatingActor; this.CreationTime = CreationTime; this.UserDefinedGrade = UserDefinedGrade; this.Benchmark = Benchmark; this.ValueSource = ValueSource; this.DataValue = DataValue; this.type = 3368373690; } } IFC2X32.IfcMetric = IfcMetric; class IfcMonetaryUnit extends IfcLineObject { constructor(expressID, Currency) { super(expressID); this.Currency = Currency; this.type = 2706619895; } } IFC2X32.IfcMonetaryUnit = IfcMonetaryUnit; class IfcNamedUnit extends IfcLineObject { constructor(expressID, Dimensions, UnitType) { super(expressID); this.Dimensions = Dimensions; this.UnitType = UnitType; this.type = 1918398963; } } IFC2X32.IfcNamedUnit = IfcNamedUnit; class IfcObjectPlacement extends IfcLineObject { constructor(expressID) { super(expressID); this.type = 3701648758; } } IFC2X32.IfcObjectPlacement = IfcObjectPlacement; class IfcObjective extends IfcConstraint { constructor(expressID, Name, Description, ConstraintGrade, ConstraintSource, CreatingActor, CreationTime, UserDefinedGrade, BenchmarkValues, ResultValues, ObjectiveQualifier, UserDefinedQualifier) { super(expressID, Name, Description, ConstraintGrade, ConstraintSource, CreatingActor, CreationTime, UserDefinedGrade); this.Name = Name; this.Description = Description; this.ConstraintGrade = ConstraintGrade; this.ConstraintSource = ConstraintSource; this.CreatingActor = CreatingActor; this.CreationTime = CreationTime; this.UserDefinedGrade = UserDefinedGrade; this.BenchmarkValues = BenchmarkValues; this.ResultValues = ResultValues; this.ObjectiveQualifier = ObjectiveQualifier; this.UserDefinedQualifier = UserDefinedQualifier; this.type = 2251480897; } } IFC2X32.IfcObjective = IfcObjective; class IfcOpticalMaterialProperties extends IfcMaterialProperties { constructor(expressID, Material, VisibleTransmittance, SolarTransmittance, ThermalIrTransmittance, ThermalIrEmissivityBack, ThermalIrEmissivityFront, VisibleReflectanceBack, VisibleReflectanceFront, SolarReflectanceFront, SolarReflectanceBack) { super(expressID, Material); this.Material = Material; this.VisibleTransmittance = VisibleTransmittance; this.SolarTransmittance = SolarTransmittance; this.ThermalIrTransmittance = ThermalIrTransmittance; this.ThermalIrEmissivityBack = ThermalIrEmissivityBack; this.ThermalIrEmissivityFront = ThermalIrEmissivityFront; this.VisibleReflectanceBack = VisibleReflectanceBack; this.VisibleReflectanceFront = VisibleReflectanceFront; this.SolarReflectanceFront = SolarReflectanceFront; this.SolarReflectanceBack = SolarReflectanceBack; this.type = 1227763645; } } IFC2X32.IfcOpticalMaterialProperties = IfcOpticalMaterialProperties; class IfcOrganization extends IfcLineObject { constructor(expressID, Id, Name, Description, Roles, Addresses) { super(expressID); this.Id = Id; this.Name = Name; this.Description = Description; this.Roles = Roles; this.Addresses = Addresses; this.type = 4251960020; } } IFC2X32.IfcOrganization = IfcOrganization; class IfcOrganizationRelationship extends IfcLineObject { constructor(expressID, Name, Description, RelatingOrganization, RelatedOrganizations) { super(expressID); this.Name = Name; this.Description = Description; this.RelatingOrganization = RelatingOrganization; this.RelatedOrganizations = RelatedOrganizations; this.type = 1411181986; } } IFC2X32.IfcOrganizationRelationship = IfcOrganizationRelationship; class IfcOwnerHistory extends IfcLineObject { constructor(expressID, OwningUser, OwningApplication, State, ChangeAction, LastModifiedDate, LastModifyingUser, LastModifyingApplication, CreationDate) { super(expressID); this.OwningUser = OwningUser; this.OwningApplication = OwningApplication; this.State = State; this.ChangeAction = ChangeAction; this.LastModifiedDate = LastModifiedDate; this.LastModifyingUser = LastModifyingUser; this.LastModifyingApplication = LastModifyingApplication; this.CreationDate = CreationDate; this.type = 1207048766; } } IFC2X32.IfcOwnerHistory = IfcOwnerHistory; class IfcPerson extends IfcLineObject { constructor(expressID, Id, FamilyName, GivenName, MiddleNames, PrefixTitles, SuffixTitles, Roles, Addresses) { super(expressID); this.Id = Id; this.FamilyName = FamilyName; this.GivenName = GivenName; this.MiddleNames = MiddleNames; this.PrefixTitles = PrefixTitles; this.SuffixTitles = SuffixTitles; this.Roles = Roles; this.Addresses = Addresses; this.type = 2077209135; } } IFC2X32.IfcPerson = IfcPerson; class IfcPersonAndOrganization extends IfcLineObject { constructor(expressID, ThePerson, TheOrganization, Roles) { super(expressID); this.ThePerson = ThePerson; this.TheOrganization = TheOrganization; this.Roles = Roles; this.type = 101040310; } } IFC2X32.IfcPersonAndOrganization = IfcPersonAndOrganization; class IfcPhysicalQuantity extends IfcLineObject { constructor(expressID, Name, Description) { super(expressID); this.Name = Name; this.Description = Description; this.type = 2483315170; } } IFC2X32.IfcPhysicalQuantity = IfcPhysicalQuantity; class IfcPhysicalSimpleQuantity extends IfcPhysicalQuantity { constructor(expressID, Name, Description, Unit) { super(expressID, Name, Description); this.Name = Name; this.Description = Description; this.Unit = Unit; this.type = 2226359599; } } IFC2X32.IfcPhysicalSimpleQuantity = IfcPhysicalSimpleQuantity; class IfcPostalAddress extends IfcAddress { constructor(expressID, Purpose, Description, UserDefinedPurpose, InternalLocation, AddressLines, PostalBox, Town, Region, PostalCode, Country) { super(expressID, Purpose, Description, UserDefinedPurpose); this.Purpose = Purpose; this.Description = Description; this.UserDefinedPurpose = UserDefinedPurpose; this.InternalLocation = InternalLocation; this.AddressLines = AddressLines; this.PostalBox = PostalBox; this.Town = Town; this.Region = Region; this.PostalCode = PostalCode; this.Country = Country; this.type = 3355820592; } } IFC2X32.IfcPostalAddress = IfcPostalAddress; class IfcPreDefinedItem extends IfcLineObject { constructor(expressID, Name) { super(expressID); this.Name = Name; this.type = 3727388367; } } IFC2X32.IfcPreDefinedItem = IfcPreDefinedItem; class IfcPreDefinedSymbol extends IfcPreDefinedItem { constructor(expressID, Name) { super(expressID, Name); this.Name = Name; this.type = 990879717; } } IFC2X32.IfcPreDefinedSymbol = IfcPreDefinedSymbol; class IfcPreDefinedTerminatorSymbol extends IfcPreDefinedSymbol { constructor(expressID, Name) { super(expressID, Name); this.Name = Name; this.type = 3213052703; } } IFC2X32.IfcPreDefinedTerminatorSymbol = IfcPreDefinedTerminatorSymbol; class IfcPreDefinedTextFont extends IfcPreDefinedItem { constructor(expressID, Name) { super(expressID, Name); this.Name = Name; this.type = 1775413392; } } IFC2X32.IfcPreDefinedTextFont = IfcPreDefinedTextFont; class IfcPresentationLayerAssignment extends IfcLineObject { constructor(expressID, Name, Description, AssignedItems, Identifier) { super(expressID); this.Name = Name; this.Description = Description; this.AssignedItems = AssignedItems; this.Identifier = Identifier; this.type = 2022622350; } } IFC2X32.IfcPresentationLayerAssignment = IfcPresentationLayerAssignment; class IfcPresentationLayerWithStyle extends IfcPresentationLayerAssignment { constructor(expressID, Name, Description, AssignedItems, Identifier, LayerOn, LayerFrozen, LayerBlocked, LayerStyles) { super(expressID, Name, Description, AssignedItems, Identifier); this.Name = Name; this.Description = Description; this.AssignedItems = AssignedItems; this.Identifier = Identifier; this.LayerOn = LayerOn; this.LayerFrozen = LayerFrozen; this.LayerBlocked = LayerBlocked; this.LayerStyles = LayerStyles; this.type = 1304840413; } } IFC2X32.IfcPresentationLayerWithStyle = IfcPresentationLayerWithStyle; class IfcPresentationStyle extends IfcLineObject { constructor(expressID, Name) { super(expressID); this.Name = Name; this.type = 3119450353; } } IFC2X32.IfcPresentationStyle = IfcPresentationStyle; class IfcPresentationStyleAssignment extends IfcLineObject { constructor(expressID, Styles) { super(expressID); this.Styles = Styles; this.type = 2417041796; } } IFC2X32.IfcPresentationStyleAssignment = IfcPresentationStyleAssignment; class IfcProductRepresentation extends IfcLineObject { constructor(expressID, Name, Description, Representations) { super(expressID); this.Name = Name; this.Description = Description; this.Representations = Representations; this.type = 2095639259; } } IFC2X32.IfcProductRepresentation = IfcProductRepresentation; class IfcProductsOfCombustionProperties extends IfcMaterialProperties { constructor(expressID, Material, SpecificHeatCapacity, N20Content, COContent, CO2Content) { super(expressID, Material); this.Material = Material; this.SpecificHeatCapacity = SpecificHeatCapacity; this.N20Content = N20Content; this.COContent = COContent; this.CO2Content = CO2Content; this.type = 2267347899; } } IFC2X32.IfcProductsOfCombustionProperties = IfcProductsOfCombustionProperties; class IfcProfileDef extends IfcLineObject { constructor(expressID, ProfileType, ProfileName) { super(expressID); this.ProfileType = ProfileType; this.ProfileName = ProfileName; this.type = 3958567839; } } IFC2X32.IfcProfileDef = IfcProfileDef; class IfcProfileProperties extends IfcLineObject { constructor(expressID, ProfileName, ProfileDefinition) { super(expressID); this.ProfileName = ProfileName; this.ProfileDefinition = ProfileDefinition; this.type = 2802850158; } } IFC2X32.IfcProfileProperties = IfcProfileProperties; class IfcProperty extends IfcLineObject { constructor(expressID, Name, Description) { super(expressID); this.Name = Name; this.Description = Description; this.type = 2598011224; } } IFC2X32.IfcProperty = IfcProperty; class IfcPropertyConstraintRelationship extends IfcLineObject { constructor(expressID, RelatingConstraint, RelatedProperties, Name, Description) { super(expressID); this.RelatingConstraint = RelatingConstraint; this.RelatedProperties = RelatedProperties; this.Name = Name; this.Description = Description; this.type = 3896028662; } } IFC2X32.IfcPropertyConstraintRelationship = IfcPropertyConstraintRelationship; class IfcPropertyDependencyRelationship extends IfcLineObject { constructor(expressID, DependingProperty, DependantProperty, Name, Description, Expression) { super(expressID); this.DependingProperty = DependingProperty; this.DependantProperty = DependantProperty; this.Name = Name; this.Description = Description; this.Expression = Expression; this.type = 148025276; } } IFC2X32.IfcPropertyDependencyRelationship = IfcPropertyDependencyRelationship; class IfcPropertyEnumeration extends IfcLineObject { constructor(expressID, Name, EnumerationValues, Unit) { super(expressID); this.Name = Name; this.EnumerationValues = EnumerationValues; this.Unit = Unit; this.type = 3710013099; } } IFC2X32.IfcPropertyEnumeration = IfcPropertyEnumeration; class IfcQuantityArea extends IfcPhysicalSimpleQuantity { constructor(expressID, Name, Description, Unit, AreaValue) { super(expressID, Name, Description, Unit); this.Name = Name; this.Description = Description; this.Unit = Unit; this.AreaValue = AreaValue; this.type = 2044713172; } } IFC2X32.IfcQuantityArea = IfcQuantityArea; class IfcQuantityCount extends IfcPhysicalSimpleQuantity { constructor(expressID, Name, Description, Unit, CountValue) { super(expressID, Name, Description, Unit); this.Name = Name; this.Description = Description; this.Unit = Unit; this.CountValue = CountValue; this.type = 2093928680; } } IFC2X32.IfcQuantityCount = IfcQuantityCount; class IfcQuantityLength extends IfcPhysicalSimpleQuantity { constructor(expressID, Name, Description, Unit, LengthValue) { super(expressID, Name, Description, Unit); this.Name = Name; this.Description = Description; this.Unit = Unit; this.LengthValue = LengthValue; this.type = 931644368; } } IFC2X32.IfcQuantityLength = IfcQuantityLength; class IfcQuantityTime extends IfcPhysicalSimpleQuantity { constructor(expressID, Name, Description, Unit, TimeValue) { super(expressID, Name, Description, Unit); this.Name = Name; this.Description = Description; this.Unit = Unit; this.TimeValue = TimeValue; this.type = 3252649465; } } IFC2X32.IfcQuantityTime = IfcQuantityTime; class IfcQuantityVolume extends IfcPhysicalSimpleQuantity { constructor(expressID, Name, Description, Unit, VolumeValue) { super(expressID, Name, Description, Unit); this.Name = Name; this.Description = Description; this.Unit = Unit; this.VolumeValue = VolumeValue; this.type = 2405470396; } } IFC2X32.IfcQuantityVolume = IfcQuantityVolume; class IfcQuantityWeight extends IfcPhysicalSimpleQuantity { constructor(expressID, Name, Description, Unit, WeightValue) { super(expressID, Name, Description, Unit); this.Name = Name; this.Description = Description; this.Unit = Unit; this.WeightValue = WeightValue; this.type = 825690147; } } IFC2X32.IfcQuantityWeight = IfcQuantityWeight; class IfcReferencesValueDocument extends IfcLineObject { constructor(expressID, ReferencedDocument, ReferencingValues, Name, Description) { super(expressID); this.ReferencedDocument = ReferencedDocument; this.ReferencingValues = ReferencingValues; this.Name = Name; this.Description = Description; this.type = 2692823254; } } IFC2X32.IfcReferencesValueDocument = IfcReferencesValueDocument; class IfcReinforcementBarProperties extends IfcLineObject { constructor(expressID, TotalCrossSectionArea, SteelGrade, BarSurface, EffectiveDepth, NominalBarDiameter, BarCount) { super(expressID); this.TotalCrossSectionArea = TotalCrossSectionArea; this.SteelGrade = SteelGrade; this.BarSurface = BarSurface; this.EffectiveDepth = EffectiveDepth; this.NominalBarDiameter = NominalBarDiameter; this.BarCount = BarCount; this.type = 1580146022; } } IFC2X32.IfcReinforcementBarProperties = IfcReinforcementBarProperties; class IfcRelaxation extends IfcLineObject { constructor(expressID, RelaxationValue, InitialStress) { super(expressID); this.RelaxationValue = RelaxationValue; this.InitialStress = InitialStress; this.type = 1222501353; } } IFC2X32.IfcRelaxation = IfcRelaxation; class IfcRepresentation extends IfcLineObject { constructor(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items) { super(expressID); this.ContextOfItems = ContextOfItems; this.RepresentationIdentifier = RepresentationIdentifier; this.RepresentationType = RepresentationType; this.Items = Items; this.type = 1076942058; } } IFC2X32.IfcRepresentation = IfcRepresentation; class IfcRepresentationContext extends IfcLineObject { constructor(expressID, ContextIdentifier, ContextType) { super(expressID); this.ContextIdentifier = ContextIdentifier; this.ContextType = ContextType; this.type = 3377609919; } } IFC2X32.IfcRepresentationContext = IfcRepresentationContext; class IfcRepresentationItem extends IfcLineObject { constructor(expressID) { super(expressID); this.type = 3008791417; } } IFC2X32.IfcRepresentationItem = IfcRepresentationItem; class IfcRepresentationMap extends IfcLineObject { constructor(expressID, MappingOrigin, MappedRepresentation) { super(expressID); this.MappingOrigin = MappingOrigin; this.MappedRepresentation = MappedRepresentation; this.type = 1660063152; } } IFC2X32.IfcRepresentationMap = IfcRepresentationMap; class IfcRibPlateProfileProperties extends IfcProfileProperties { constructor(expressID, ProfileName, ProfileDefinition, Thickness, RibHeight, RibWidth, RibSpacing, Direction) { super(expressID, ProfileName, ProfileDefinition); this.ProfileName = ProfileName; this.ProfileDefinition = ProfileDefinition; this.Thickness = Thickness; this.RibHeight = RibHeight; this.RibWidth = RibWidth; this.RibSpacing = RibSpacing; this.Direction = Direction; this.type = 3679540991; } } IFC2X32.IfcRibPlateProfileProperties = IfcRibPlateProfileProperties; class IfcRoot extends IfcLineObject { constructor(expressID, GlobalId, OwnerHistory, Name, Description) { super(expressID); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.type = 2341007311; } } IFC2X32.IfcRoot = IfcRoot; class IfcSIUnit extends IfcNamedUnit { constructor(expressID, UnitType, Prefix, Name) { super(expressID, new Handle(0), UnitType); this.UnitType = UnitType; this.Prefix = Prefix; this.Name = Name; this.type = 448429030; } } IFC2X32.IfcSIUnit = IfcSIUnit; class IfcSectionProperties extends IfcLineObject { constructor(expressID, SectionType, StartProfile, EndProfile) { super(expressID); this.SectionType = SectionType; this.StartProfile = StartProfile; this.EndProfile = EndProfile; this.type = 2042790032; } } IFC2X32.IfcSectionProperties = IfcSectionProperties; class IfcSectionReinforcementProperties extends IfcLineObject { constructor(expressID, LongitudinalStartPosition, LongitudinalEndPosition, TransversePosition, ReinforcementRole, SectionDefinition, CrossSectionReinforcementDefinitions) { super(expressID); this.LongitudinalStartPosition = LongitudinalStartPosition; this.LongitudinalEndPosition = LongitudinalEndPosition; this.TransversePosition = TransversePosition; this.ReinforcementRole = ReinforcementRole; this.SectionDefinition = SectionDefinition; this.CrossSectionReinforcementDefinitions = CrossSectionReinforcementDefinitions; this.type = 4165799628; } } IFC2X32.IfcSectionReinforcementProperties = IfcSectionReinforcementProperties; class IfcShapeAspect extends IfcLineObject { constructor(expressID, ShapeRepresentations, Name, Description, ProductDefinitional, PartOfProductDefinitionShape) { super(expressID); this.ShapeRepresentations = ShapeRepresentations; this.Name = Name; this.Description = Description; this.ProductDefinitional = ProductDefinitional; this.PartOfProductDefinitionShape = PartOfProductDefinitionShape; this.type = 867548509; } } IFC2X32.IfcShapeAspect = IfcShapeAspect; class IfcShapeModel extends IfcRepresentation { constructor(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items) { super(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items); this.ContextOfItems = ContextOfItems; this.RepresentationIdentifier = RepresentationIdentifier; this.RepresentationType = RepresentationType; this.Items = Items; this.type = 3982875396; } } IFC2X32.IfcShapeModel = IfcShapeModel; class IfcShapeRepresentation extends IfcShapeModel { constructor(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items) { super(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items); this.ContextOfItems = ContextOfItems; this.RepresentationIdentifier = RepresentationIdentifier; this.RepresentationType = RepresentationType; this.Items = Items; this.type = 4240577450; } } IFC2X32.IfcShapeRepresentation = IfcShapeRepresentation; class IfcSimpleProperty extends IfcProperty { constructor(expressID, Name, Description) { super(expressID, Name, Description); this.Name = Name; this.Description = Description; this.type = 3692461612; } } IFC2X32.IfcSimpleProperty = IfcSimpleProperty; class IfcStructuralConnectionCondition extends IfcLineObject { constructor(expressID, Name) { super(expressID); this.Name = Name; this.type = 2273995522; } } IFC2X32.IfcStructuralConnectionCondition = IfcStructuralConnectionCondition; class IfcStructuralLoad extends IfcLineObject { constructor(expressID, Name) { super(expressID); this.Name = Name; this.type = 2162789131; } } IFC2X32.IfcStructuralLoad = IfcStructuralLoad; class IfcStructuralLoadStatic extends IfcStructuralLoad { constructor(expressID, Name) { super(expressID, Name); this.Name = Name; this.type = 2525727697; } } IFC2X32.IfcStructuralLoadStatic = IfcStructuralLoadStatic; class IfcStructuralLoadTemperature extends IfcStructuralLoadStatic { constructor(expressID, Name, DeltaT_Constant, DeltaT_Y, DeltaT_Z) { super(expressID, Name); this.Name = Name; this.DeltaT_Constant = DeltaT_Constant; this.DeltaT_Y = DeltaT_Y; this.DeltaT_Z = DeltaT_Z; this.type = 3408363356; } } IFC2X32.IfcStructuralLoadTemperature = IfcStructuralLoadTemperature; class IfcStyleModel extends IfcRepresentation { constructor(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items) { super(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items); this.ContextOfItems = ContextOfItems; this.RepresentationIdentifier = RepresentationIdentifier; this.RepresentationType = RepresentationType; this.Items = Items; this.type = 2830218821; } } IFC2X32.IfcStyleModel = IfcStyleModel; class IfcStyledItem extends IfcRepresentationItem { constructor(expressID, Item, Styles, Name) { super(expressID); this.Item = Item; this.Styles = Styles; this.Name = Name; this.type = 3958052878; } } IFC2X32.IfcStyledItem = IfcStyledItem; class IfcStyledRepresentation extends IfcStyleModel { constructor(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items) { super(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items); this.ContextOfItems = ContextOfItems; this.RepresentationIdentifier = RepresentationIdentifier; this.RepresentationType = RepresentationType; this.Items = Items; this.type = 3049322572; } } IFC2X32.IfcStyledRepresentation = IfcStyledRepresentation; class IfcSurfaceStyle extends IfcPresentationStyle { constructor(expressID, Name, Side, Styles) { super(expressID, Name); this.Name = Name; this.Side = Side; this.Styles = Styles; this.type = 1300840506; } } IFC2X32.IfcSurfaceStyle = IfcSurfaceStyle; class IfcSurfaceStyleLighting extends IfcLineObject { constructor(expressID, DiffuseTransmissionColour, DiffuseReflectionColour, TransmissionColour, ReflectanceColour) { super(expressID); this.DiffuseTransmissionColour = DiffuseTransmissionColour; this.DiffuseReflectionColour = DiffuseReflectionColour; this.TransmissionColour = TransmissionColour; this.ReflectanceColour = ReflectanceColour; this.type = 3303107099; } } IFC2X32.IfcSurfaceStyleLighting = IfcSurfaceStyleLighting; class IfcSurfaceStyleRefraction extends IfcLineObject { constructor(expressID, RefractionIndex, DispersionFactor) { super(expressID); this.RefractionIndex = RefractionIndex; this.DispersionFactor = DispersionFactor; this.type = 1607154358; } } IFC2X32.IfcSurfaceStyleRefraction = IfcSurfaceStyleRefraction; class IfcSurfaceStyleShading extends IfcLineObject { constructor(expressID, SurfaceColour) { super(expressID); this.SurfaceColour = SurfaceColour; this.type = 846575682; } } IFC2X32.IfcSurfaceStyleShading = IfcSurfaceStyleShading; class IfcSurfaceStyleWithTextures extends IfcLineObject { constructor(expressID, Textures) { super(expressID); this.Textures = Textures; this.type = 1351298697; } } IFC2X32.IfcSurfaceStyleWithTextures = IfcSurfaceStyleWithTextures; class IfcSurfaceTexture extends IfcLineObject { constructor(expressID, RepeatS, RepeatT, TextureType, TextureTransform) { super(expressID); this.RepeatS = RepeatS; this.RepeatT = RepeatT; this.TextureType = TextureType; this.TextureTransform = TextureTransform; this.type = 626085974; } } IFC2X32.IfcSurfaceTexture = IfcSurfaceTexture; class IfcSymbolStyle extends IfcPresentationStyle { constructor(expressID, Name, StyleOfSymbol) { super(expressID, Name); this.Name = Name; this.StyleOfSymbol = StyleOfSymbol; this.type = 1290481447; } } IFC2X32.IfcSymbolStyle = IfcSymbolStyle; class IfcTable extends IfcLineObject { constructor(expressID, Name, Rows) { super(expressID); this.Name = Name; this.Rows = Rows; this.type = 985171141; } } IFC2X32.IfcTable = IfcTable; class IfcTableRow extends IfcLineObject { constructor(expressID, RowCells, IsHeading) { super(expressID); this.RowCells = RowCells; this.IsHeading = IsHeading; this.type = 531007025; } } IFC2X32.IfcTableRow = IfcTableRow; class IfcTelecomAddress extends IfcAddress { constructor(expressID, Purpose, Description, UserDefinedPurpose, TelephoneNumbers, FacsimileNumbers, PagerNumber, ElectronicMailAddresses, WWWHomePageURL) { super(expressID, Purpose, Description, UserDefinedPurpose); this.Purpose = Purpose; this.Description = Description; this.UserDefinedPurpose = UserDefinedPurpose; this.TelephoneNumbers = TelephoneNumbers; this.FacsimileNumbers = FacsimileNumbers; this.PagerNumber = PagerNumber; this.ElectronicMailAddresses = ElectronicMailAddresses; this.WWWHomePageURL = WWWHomePageURL; this.type = 912023232; } } IFC2X32.IfcTelecomAddress = IfcTelecomAddress; class IfcTextStyle extends IfcPresentationStyle { constructor(expressID, Name, TextCharacterAppearance, TextStyle, TextFontStyle) { super(expressID, Name); this.Name = Name; this.TextCharacterAppearance = TextCharacterAppearance; this.TextStyle = TextStyle; this.TextFontStyle = TextFontStyle; this.type = 1447204868; } } IFC2X32.IfcTextStyle = IfcTextStyle; class IfcTextStyleFontModel extends IfcPreDefinedTextFont { constructor(expressID, Name, FontFamily, FontStyle, FontVariant, FontWeight, FontSize) { super(expressID, Name); this.Name = Name; this.FontFamily = FontFamily; this.FontStyle = FontStyle; this.FontVariant = FontVariant; this.FontWeight = FontWeight; this.FontSize = FontSize; this.type = 1983826977; } } IFC2X32.IfcTextStyleFontModel = IfcTextStyleFontModel; class IfcTextStyleForDefinedFont extends IfcLineObject { constructor(expressID, Colour, BackgroundColour) { super(expressID); this.Colour = Colour; this.BackgroundColour = BackgroundColour; this.type = 2636378356; } } IFC2X32.IfcTextStyleForDefinedFont = IfcTextStyleForDefinedFont; class IfcTextStyleTextModel extends IfcLineObject { constructor(expressID, TextIndent, TextAlign, TextDecoration, LetterSpacing, WordSpacing, TextTransform, LineHeight) { super(expressID); this.TextIndent = TextIndent; this.TextAlign = TextAlign; this.TextDecoration = TextDecoration; this.LetterSpacing = LetterSpacing; this.WordSpacing = WordSpacing; this.TextTransform = TextTransform; this.LineHeight = LineHeight; this.type = 1640371178; } } IFC2X32.IfcTextStyleTextModel = IfcTextStyleTextModel; class IfcTextStyleWithBoxCharacteristics extends IfcLineObject { constructor(expressID, BoxHeight, BoxWidth, BoxSlantAngle, BoxRotateAngle, CharacterSpacing) { super(expressID); this.BoxHeight = BoxHeight; this.BoxWidth = BoxWidth; this.BoxSlantAngle = BoxSlantAngle; this.BoxRotateAngle = BoxRotateAngle; this.CharacterSpacing = CharacterSpacing; this.type = 1484833681; } } IFC2X32.IfcTextStyleWithBoxCharacteristics = IfcTextStyleWithBoxCharacteristics; class IfcTextureCoordinate extends IfcLineObject { constructor(expressID) { super(expressID); this.type = 280115917; } } IFC2X32.IfcTextureCoordinate = IfcTextureCoordinate; class IfcTextureCoordinateGenerator extends IfcTextureCoordinate { constructor(expressID, Mode, Parameter) { super(expressID); this.Mode = Mode; this.Parameter = Parameter; this.type = 1742049831; } } IFC2X32.IfcTextureCoordinateGenerator = IfcTextureCoordinateGenerator; class IfcTextureMap extends IfcTextureCoordinate { constructor(expressID, TextureMaps) { super(expressID); this.TextureMaps = TextureMaps; this.type = 2552916305; } } IFC2X32.IfcTextureMap = IfcTextureMap; class IfcTextureVertex extends IfcLineObject { constructor(expressID, Coordinates) { super(expressID); this.Coordinates = Coordinates; this.type = 1210645708; } } IFC2X32.IfcTextureVertex = IfcTextureVertex; class IfcThermalMaterialProperties extends IfcMaterialProperties { constructor(expressID, Material, SpecificHeatCapacity, BoilingPoint, FreezingPoint, ThermalConductivity) { super(expressID, Material); this.Material = Material; this.SpecificHeatCapacity = SpecificHeatCapacity; this.BoilingPoint = BoilingPoint; this.FreezingPoint = FreezingPoint; this.ThermalConductivity = ThermalConductivity; this.type = 3317419933; } } IFC2X32.IfcThermalMaterialProperties = IfcThermalMaterialProperties; class IfcTimeSeries extends IfcLineObject { constructor(expressID, Name, Description, StartTime, EndTime, TimeSeriesDataType, DataOrigin, UserDefinedDataOrigin, Unit) { super(expressID); this.Name = Name; this.Description = Description; this.StartTime = StartTime; this.EndTime = EndTime; this.TimeSeriesDataType = TimeSeriesDataType; this.DataOrigin = DataOrigin; this.UserDefinedDataOrigin = UserDefinedDataOrigin; this.Unit = Unit; this.type = 3101149627; } } IFC2X32.IfcTimeSeries = IfcTimeSeries; class IfcTimeSeriesReferenceRelationship extends IfcLineObject { constructor(expressID, ReferencedTimeSeries, TimeSeriesReferences) { super(expressID); this.ReferencedTimeSeries = ReferencedTimeSeries; this.TimeSeriesReferences = TimeSeriesReferences; this.type = 1718945513; } } IFC2X32.IfcTimeSeriesReferenceRelationship = IfcTimeSeriesReferenceRelationship; class IfcTimeSeriesValue extends IfcLineObject { constructor(expressID, ListValues) { super(expressID); this.ListValues = ListValues; this.type = 581633288; } } IFC2X32.IfcTimeSeriesValue = IfcTimeSeriesValue; class IfcTopologicalRepresentationItem extends IfcRepresentationItem { constructor(expressID) { super(expressID); this.type = 1377556343; } } IFC2X32.IfcTopologicalRepresentationItem = IfcTopologicalRepresentationItem; class IfcTopologyRepresentation extends IfcShapeModel { constructor(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items) { super(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items); this.ContextOfItems = ContextOfItems; this.RepresentationIdentifier = RepresentationIdentifier; this.RepresentationType = RepresentationType; this.Items = Items; this.type = 1735638870; } } IFC2X32.IfcTopologyRepresentation = IfcTopologyRepresentation; class IfcUnitAssignment extends IfcLineObject { constructor(expressID, Units) { super(expressID); this.Units = Units; this.type = 180925521; } } IFC2X32.IfcUnitAssignment = IfcUnitAssignment; class IfcVertex extends IfcTopologicalRepresentationItem { constructor(expressID) { super(expressID); this.type = 2799835756; } } IFC2X32.IfcVertex = IfcVertex; class IfcVertexBasedTextureMap extends IfcLineObject { constructor(expressID, TextureVertices, TexturePoints) { super(expressID); this.TextureVertices = TextureVertices; this.TexturePoints = TexturePoints; this.type = 3304826586; } } IFC2X32.IfcVertexBasedTextureMap = IfcVertexBasedTextureMap; class IfcVertexPoint extends IfcVertex { constructor(expressID, VertexGeometry) { super(expressID); this.VertexGeometry = VertexGeometry; this.type = 1907098498; } } IFC2X32.IfcVertexPoint = IfcVertexPoint; class IfcVirtualGridIntersection extends IfcLineObject { constructor(expressID, IntersectingAxes, OffsetDistances) { super(expressID); this.IntersectingAxes = IntersectingAxes; this.OffsetDistances = OffsetDistances; this.type = 891718957; } } IFC2X32.IfcVirtualGridIntersection = IfcVirtualGridIntersection; class IfcWaterProperties extends IfcMaterialProperties { constructor(expressID, Material, IsPotable, Hardness, AlkalinityConcentration, AcidityConcentration, ImpuritiesContent, PHLevel, DissolvedSolidsContent) { super(expressID, Material); this.Material = Material; this.IsPotable = IsPotable; this.Hardness = Hardness; this.AlkalinityConcentration = AlkalinityConcentration; this.AcidityConcentration = AcidityConcentration; this.ImpuritiesContent = ImpuritiesContent; this.PHLevel = PHLevel; this.DissolvedSolidsContent = DissolvedSolidsContent; this.type = 1065908215; } } IFC2X32.IfcWaterProperties = IfcWaterProperties; class IfcAnnotationOccurrence extends IfcStyledItem { constructor(expressID, Item, Styles, Name) { super(expressID, Item, Styles, Name); this.Item = Item; this.Styles = Styles; this.Name = Name; this.type = 2442683028; } } IFC2X32.IfcAnnotationOccurrence = IfcAnnotationOccurrence; class IfcAnnotationSurfaceOccurrence extends IfcAnnotationOccurrence { constructor(expressID, Item, Styles, Name) { super(expressID, Item, Styles, Name); this.Item = Item; this.Styles = Styles; this.Name = Name; this.type = 962685235; } } IFC2X32.IfcAnnotationSurfaceOccurrence = IfcAnnotationSurfaceOccurrence; class IfcAnnotationSymbolOccurrence extends IfcAnnotationOccurrence { constructor(expressID, Item, Styles, Name) { super(expressID, Item, Styles, Name); this.Item = Item; this.Styles = Styles; this.Name = Name; this.type = 3612888222; } } IFC2X32.IfcAnnotationSymbolOccurrence = IfcAnnotationSymbolOccurrence; class IfcAnnotationTextOccurrence extends IfcAnnotationOccurrence { constructor(expressID, Item, Styles, Name) { super(expressID, Item, Styles, Name); this.Item = Item; this.Styles = Styles; this.Name = Name; this.type = 2297822566; } } IFC2X32.IfcAnnotationTextOccurrence = IfcAnnotationTextOccurrence; class IfcArbitraryClosedProfileDef extends IfcProfileDef { constructor(expressID, ProfileType, ProfileName, OuterCurve) { super(expressID, ProfileType, ProfileName); this.ProfileType = ProfileType; this.ProfileName = ProfileName; this.OuterCurve = OuterCurve; this.type = 3798115385; } } IFC2X32.IfcArbitraryClosedProfileDef = IfcArbitraryClosedProfileDef; class IfcArbitraryOpenProfileDef extends IfcProfileDef { constructor(expressID, ProfileType, ProfileName, Curve) { super(expressID, ProfileType, ProfileName); this.ProfileType = ProfileType; this.ProfileName = ProfileName; this.Curve = Curve; this.type = 1310608509; } } IFC2X32.IfcArbitraryOpenProfileDef = IfcArbitraryOpenProfileDef; class IfcArbitraryProfileDefWithVoids extends IfcArbitraryClosedProfileDef { constructor(expressID, ProfileType, ProfileName, OuterCurve, InnerCurves) { super(expressID, ProfileType, ProfileName, OuterCurve); this.ProfileType = ProfileType; this.ProfileName = ProfileName; this.OuterCurve = OuterCurve; this.InnerCurves = InnerCurves; this.type = 2705031697; } } IFC2X32.IfcArbitraryProfileDefWithVoids = IfcArbitraryProfileDefWithVoids; class IfcBlobTexture extends IfcSurfaceTexture { constructor(expressID, RepeatS, RepeatT, TextureType, TextureTransform, RasterFormat, RasterCode) { super(expressID, RepeatS, RepeatT, TextureType, TextureTransform); this.RepeatS = RepeatS; this.RepeatT = RepeatT; this.TextureType = TextureType; this.TextureTransform = TextureTransform; this.RasterFormat = RasterFormat; this.RasterCode = RasterCode; this.type = 616511568; } } IFC2X32.IfcBlobTexture = IfcBlobTexture; class IfcCenterLineProfileDef extends IfcArbitraryOpenProfileDef { constructor(expressID, ProfileType, ProfileName, Curve, Thickness) { super(expressID, ProfileType, ProfileName, Curve); this.ProfileType = ProfileType; this.ProfileName = ProfileName; this.Curve = Curve; this.Thickness = Thickness; this.type = 3150382593; } } IFC2X32.IfcCenterLineProfileDef = IfcCenterLineProfileDef; class IfcClassificationReference extends IfcExternalReference { constructor(expressID, Location, ItemReference, Name, ReferencedSource) { super(expressID, Location, ItemReference, Name); this.Location = Location; this.ItemReference = ItemReference; this.Name = Name; this.ReferencedSource = ReferencedSource; this.type = 647927063; } } IFC2X32.IfcClassificationReference = IfcClassificationReference; class IfcColourRgb extends IfcColourSpecification { constructor(expressID, Name, Red, Green, Blue) { super(expressID, Name); this.Name = Name; this.Red = Red; this.Green = Green; this.Blue = Blue; this.type = 776857604; } } IFC2X32.IfcColourRgb = IfcColourRgb; class IfcComplexProperty extends IfcProperty { constructor(expressID, Name, Description, UsageName, HasProperties) { super(expressID, Name, Description); this.Name = Name; this.Description = Description; this.UsageName = UsageName; this.HasProperties = HasProperties; this.type = 2542286263; } } IFC2X32.IfcComplexProperty = IfcComplexProperty; class IfcCompositeProfileDef extends IfcProfileDef { constructor(expressID, ProfileType, ProfileName, Profiles, Label) { super(expressID, ProfileType, ProfileName); this.ProfileType = ProfileType; this.ProfileName = ProfileName; this.Profiles = Profiles; this.Label = Label; this.type = 1485152156; } } IFC2X32.IfcCompositeProfileDef = IfcCompositeProfileDef; class IfcConnectedFaceSet extends IfcTopologicalRepresentationItem { constructor(expressID, CfsFaces) { super(expressID); this.CfsFaces = CfsFaces; this.type = 370225590; } } IFC2X32.IfcConnectedFaceSet = IfcConnectedFaceSet; class IfcConnectionCurveGeometry extends IfcConnectionGeometry { constructor(expressID, CurveOnRelatingElement, CurveOnRelatedElement) { super(expressID); this.CurveOnRelatingElement = CurveOnRelatingElement; this.CurveOnRelatedElement = CurveOnRelatedElement; this.type = 1981873012; } } IFC2X32.IfcConnectionCurveGeometry = IfcConnectionCurveGeometry; class IfcConnectionPointEccentricity extends IfcConnectionPointGeometry { constructor(expressID, PointOnRelatingElement, PointOnRelatedElement, EccentricityInX, EccentricityInY, EccentricityInZ) { super(expressID, PointOnRelatingElement, PointOnRelatedElement); this.PointOnRelatingElement = PointOnRelatingElement; this.PointOnRelatedElement = PointOnRelatedElement; this.EccentricityInX = EccentricityInX; this.EccentricityInY = EccentricityInY; this.EccentricityInZ = EccentricityInZ; this.type = 45288368; } } IFC2X32.IfcConnectionPointEccentricity = IfcConnectionPointEccentricity; class IfcContextDependentUnit extends IfcNamedUnit { constructor(expressID, Dimensions, UnitType, Name) { super(expressID, Dimensions, UnitType); this.Dimensions = Dimensions; this.UnitType = UnitType; this.Name = Name; this.type = 3050246964; } } IFC2X32.IfcContextDependentUnit = IfcContextDependentUnit; class IfcConversionBasedUnit extends IfcNamedUnit { constructor(expressID, Dimensions, UnitType, Name, ConversionFactor) { super(expressID, Dimensions, UnitType); this.Dimensions = Dimensions; this.UnitType = UnitType; this.Name = Name; this.ConversionFactor = ConversionFactor; this.type = 2889183280; } } IFC2X32.IfcConversionBasedUnit = IfcConversionBasedUnit; class IfcCurveStyle extends IfcPresentationStyle { constructor(expressID, Name, CurveFont, CurveWidth, CurveColour) { super(expressID, Name); this.Name = Name; this.CurveFont = CurveFont; this.CurveWidth = CurveWidth; this.CurveColour = CurveColour; this.type = 3800577675; } } IFC2X32.IfcCurveStyle = IfcCurveStyle; class IfcDerivedProfileDef extends IfcProfileDef { constructor(expressID, ProfileType, ProfileName, ParentProfile, Operator, Label) { super(expressID, ProfileType, ProfileName); this.ProfileType = ProfileType; this.ProfileName = ProfileName; this.ParentProfile = ParentProfile; this.Operator = Operator; this.Label = Label; this.type = 3632507154; } } IFC2X32.IfcDerivedProfileDef = IfcDerivedProfileDef; class IfcDimensionCalloutRelationship extends IfcDraughtingCalloutRelationship { constructor(expressID, Name, Description, RelatingDraughtingCallout, RelatedDraughtingCallout) { super(expressID, Name, Description, RelatingDraughtingCallout, RelatedDraughtingCallout); this.Name = Name; this.Description = Description; this.RelatingDraughtingCallout = RelatingDraughtingCallout; this.RelatedDraughtingCallout = RelatedDraughtingCallout; this.type = 2273265877; } } IFC2X32.IfcDimensionCalloutRelationship = IfcDimensionCalloutRelationship; class IfcDimensionPair extends IfcDraughtingCalloutRelationship { constructor(expressID, Name, Description, RelatingDraughtingCallout, RelatedDraughtingCallout) { super(expressID, Name, Description, RelatingDraughtingCallout, RelatedDraughtingCallout); this.Name = Name; this.Description = Description; this.RelatingDraughtingCallout = RelatingDraughtingCallout; this.RelatedDraughtingCallout = RelatedDraughtingCallout; this.type = 1694125774; } } IFC2X32.IfcDimensionPair = IfcDimensionPair; class IfcDocumentReference extends IfcExternalReference { constructor(expressID, Location, ItemReference, Name) { super(expressID, Location, ItemReference, Name); this.Location = Location; this.ItemReference = ItemReference; this.Name = Name; this.type = 3732053477; } } IFC2X32.IfcDocumentReference = IfcDocumentReference; class IfcDraughtingPreDefinedTextFont extends IfcPreDefinedTextFont { constructor(expressID, Name) { super(expressID, Name); this.Name = Name; this.type = 4170525392; } } IFC2X32.IfcDraughtingPreDefinedTextFont = IfcDraughtingPreDefinedTextFont; class IfcEdge extends IfcTopologicalRepresentationItem { constructor(expressID, EdgeStart, EdgeEnd) { super(expressID); this.EdgeStart = EdgeStart; this.EdgeEnd = EdgeEnd; this.type = 3900360178; } } IFC2X32.IfcEdge = IfcEdge; class IfcEdgeCurve extends IfcEdge { constructor(expressID, EdgeStart, EdgeEnd, EdgeGeometry, SameSense) { super(expressID, EdgeStart, EdgeEnd); this.EdgeStart = EdgeStart; this.EdgeEnd = EdgeEnd; this.EdgeGeometry = EdgeGeometry; this.SameSense = SameSense; this.type = 476780140; } } IFC2X32.IfcEdgeCurve = IfcEdgeCurve; class IfcExtendedMaterialProperties extends IfcMaterialProperties { constructor(expressID, Material, ExtendedProperties, Description, Name) { super(expressID, Material); this.Material = Material; this.ExtendedProperties = ExtendedProperties; this.Description = Description; this.Name = Name; this.type = 1860660968; } } IFC2X32.IfcExtendedMaterialProperties = IfcExtendedMaterialProperties; class IfcFace extends IfcTopologicalRepresentationItem { constructor(expressID, Bounds) { super(expressID); this.Bounds = Bounds; this.type = 2556980723; } } IFC2X32.IfcFace = IfcFace; class IfcFaceBound extends IfcTopologicalRepresentationItem { constructor(expressID, Bound, Orientation) { super(expressID); this.Bound = Bound; this.Orientation = Orientation; this.type = 1809719519; } } IFC2X32.IfcFaceBound = IfcFaceBound; class IfcFaceOuterBound extends IfcFaceBound { constructor(expressID, Bound, Orientation) { super(expressID, Bound, Orientation); this.Bound = Bound; this.Orientation = Orientation; this.type = 803316827; } } IFC2X32.IfcFaceOuterBound = IfcFaceOuterBound; class IfcFaceSurface extends IfcFace { constructor(expressID, Bounds, FaceSurface, SameSense) { super(expressID, Bounds); this.Bounds = Bounds; this.FaceSurface = FaceSurface; this.SameSense = SameSense; this.type = 3008276851; } } IFC2X32.IfcFaceSurface = IfcFaceSurface; class IfcFailureConnectionCondition extends IfcStructuralConnectionCondition { constructor(expressID, Name, TensionFailureX, TensionFailureY, TensionFailureZ, CompressionFailureX, CompressionFailureY, CompressionFailureZ) { super(expressID, Name); this.Name = Name; this.TensionFailureX = TensionFailureX; this.TensionFailureY = TensionFailureY; this.TensionFailureZ = TensionFailureZ; this.CompressionFailureX = CompressionFailureX; this.CompressionFailureY = CompressionFailureY; this.CompressionFailureZ = CompressionFailureZ; this.type = 4219587988; } } IFC2X32.IfcFailureConnectionCondition = IfcFailureConnectionCondition; class IfcFillAreaStyle extends IfcPresentationStyle { constructor(expressID, Name, FillStyles) { super(expressID, Name); this.Name = Name; this.FillStyles = FillStyles; this.type = 738692330; } } IFC2X32.IfcFillAreaStyle = IfcFillAreaStyle; class IfcFuelProperties extends IfcMaterialProperties { constructor(expressID, Material, CombustionTemperature, CarbonContent, LowerHeatingValue, HigherHeatingValue) { super(expressID, Material); this.Material = Material; this.CombustionTemperature = CombustionTemperature; this.CarbonContent = CarbonContent; this.LowerHeatingValue = LowerHeatingValue; this.HigherHeatingValue = HigherHeatingValue; this.type = 3857492461; } } IFC2X32.IfcFuelProperties = IfcFuelProperties; class IfcGeneralMaterialProperties extends IfcMaterialProperties { constructor(expressID, Material, MolecularWeight, Porosity, MassDensity) { super(expressID, Material); this.Material = Material; this.MolecularWeight = MolecularWeight; this.Porosity = Porosity; this.MassDensity = MassDensity; this.type = 803998398; } } IFC2X32.IfcGeneralMaterialProperties = IfcGeneralMaterialProperties; class IfcGeneralProfileProperties extends IfcProfileProperties { constructor(expressID, ProfileName, ProfileDefinition, PhysicalWeight, Perimeter, MinimumPlateThickness, MaximumPlateThickness, CrossSectionArea) { super(expressID, ProfileName, ProfileDefinition); this.ProfileName = ProfileName; this.ProfileDefinition = ProfileDefinition; this.PhysicalWeight = PhysicalWeight; this.Perimeter = Perimeter; this.MinimumPlateThickness = MinimumPlateThickness; this.MaximumPlateThickness = MaximumPlateThickness; this.CrossSectionArea = CrossSectionArea; this.type = 1446786286; } } IFC2X32.IfcGeneralProfileProperties = IfcGeneralProfileProperties; class IfcGeometricRepresentationContext extends IfcRepresentationContext { constructor(expressID, ContextIdentifier, ContextType, CoordinateSpaceDimension, Precision, WorldCoordinateSystem, TrueNorth) { super(expressID, ContextIdentifier, ContextType); this.ContextIdentifier = ContextIdentifier; this.ContextType = ContextType; this.CoordinateSpaceDimension = CoordinateSpaceDimension; this.Precision = Precision; this.WorldCoordinateSystem = WorldCoordinateSystem; this.TrueNorth = TrueNorth; this.type = 3448662350; } } IFC2X32.IfcGeometricRepresentationContext = IfcGeometricRepresentationContext; class IfcGeometricRepresentationItem extends IfcRepresentationItem { constructor(expressID) { super(expressID); this.type = 2453401579; } } IFC2X32.IfcGeometricRepresentationItem = IfcGeometricRepresentationItem; class IfcGeometricRepresentationSubContext extends IfcGeometricRepresentationContext { constructor(expressID, ContextIdentifier, ContextType, ParentContext, TargetScale, TargetView, UserDefinedTargetView) { super(expressID, ContextIdentifier, ContextType, new IfcDimensionCount(0), null, new Handle(0), null); this.ContextIdentifier = ContextIdentifier; this.ContextType = ContextType; this.ParentContext = ParentContext; this.TargetScale = TargetScale; this.TargetView = TargetView; this.UserDefinedTargetView = UserDefinedTargetView; this.type = 4142052618; } } IFC2X32.IfcGeometricRepresentationSubContext = IfcGeometricRepresentationSubContext; class IfcGeometricSet extends IfcGeometricRepresentationItem { constructor(expressID, Elements) { super(expressID); this.Elements = Elements; this.type = 3590301190; } } IFC2X32.IfcGeometricSet = IfcGeometricSet; class IfcGridPlacement extends IfcObjectPlacement { constructor(expressID, PlacementLocation, PlacementRefDirection) { super(expressID); this.PlacementLocation = PlacementLocation; this.PlacementRefDirection = PlacementRefDirection; this.type = 178086475; } } IFC2X32.IfcGridPlacement = IfcGridPlacement; class IfcHalfSpaceSolid extends IfcGeometricRepresentationItem { constructor(expressID, BaseSurface, AgreementFlag) { super(expressID); this.BaseSurface = BaseSurface; this.AgreementFlag = AgreementFlag; this.type = 812098782; } } IFC2X32.IfcHalfSpaceSolid = IfcHalfSpaceSolid; class IfcHygroscopicMaterialProperties extends IfcMaterialProperties { constructor(expressID, Material, UpperVaporResistanceFactor, LowerVaporResistanceFactor, IsothermalMoistureCapacity, VaporPermeability, MoistureDiffusivity) { super(expressID, Material); this.Material = Material; this.UpperVaporResistanceFactor = UpperVaporResistanceFactor; this.LowerVaporResistanceFactor = LowerVaporResistanceFactor; this.IsothermalMoistureCapacity = IsothermalMoistureCapacity; this.VaporPermeability = VaporPermeability; this.MoistureDiffusivity = MoistureDiffusivity; this.type = 2445078500; } } IFC2X32.IfcHygroscopicMaterialProperties = IfcHygroscopicMaterialProperties; class IfcImageTexture extends IfcSurfaceTexture { constructor(expressID, RepeatS, RepeatT, TextureType, TextureTransform, UrlReference) { super(expressID, RepeatS, RepeatT, TextureType, TextureTransform); this.RepeatS = RepeatS; this.RepeatT = RepeatT; this.TextureType = TextureType; this.TextureTransform = TextureTransform; this.UrlReference = UrlReference; this.type = 3905492369; } } IFC2X32.IfcImageTexture = IfcImageTexture; class IfcIrregularTimeSeries extends IfcTimeSeries { constructor(expressID, Name, Description, StartTime, EndTime, TimeSeriesDataType, DataOrigin, UserDefinedDataOrigin, Unit, Values) { super(expressID, Name, Description, StartTime, EndTime, TimeSeriesDataType, DataOrigin, UserDefinedDataOrigin, Unit); this.Name = Name; this.Description = Description; this.StartTime = StartTime; this.EndTime = EndTime; this.TimeSeriesDataType = TimeSeriesDataType; this.DataOrigin = DataOrigin; this.UserDefinedDataOrigin = UserDefinedDataOrigin; this.Unit = Unit; this.Values = Values; this.type = 3741457305; } } IFC2X32.IfcIrregularTimeSeries = IfcIrregularTimeSeries; class IfcLightSource extends IfcGeometricRepresentationItem { constructor(expressID, Name, LightColour, AmbientIntensity, Intensity) { super(expressID); this.Name = Name; this.LightColour = LightColour; this.AmbientIntensity = AmbientIntensity; this.Intensity = Intensity; this.type = 1402838566; } } IFC2X32.IfcLightSource = IfcLightSource; class IfcLightSourceAmbient extends IfcLightSource { constructor(expressID, Name, LightColour, AmbientIntensity, Intensity) { super(expressID, Name, LightColour, AmbientIntensity, Intensity); this.Name = Name; this.LightColour = LightColour; this.AmbientIntensity = AmbientIntensity; this.Intensity = Intensity; this.type = 125510826; } } IFC2X32.IfcLightSourceAmbient = IfcLightSourceAmbient; class IfcLightSourceDirectional extends IfcLightSource { constructor(expressID, Name, LightColour, AmbientIntensity, Intensity, Orientation) { super(expressID, Name, LightColour, AmbientIntensity, Intensity); this.Name = Name; this.LightColour = LightColour; this.AmbientIntensity = AmbientIntensity; this.Intensity = Intensity; this.Orientation = Orientation; this.type = 2604431987; } } IFC2X32.IfcLightSourceDirectional = IfcLightSourceDirectional; class IfcLightSourceGoniometric extends IfcLightSource { constructor(expressID, Name, LightColour, AmbientIntensity, Intensity, Position, ColourAppearance, ColourTemperature, LuminousFlux, LightEmissionSource, LightDistributionDataSource) { super(expressID, Name, LightColour, AmbientIntensity, Intensity); this.Name = Name; this.LightColour = LightColour; this.AmbientIntensity = AmbientIntensity; this.Intensity = Intensity; this.Position = Position; this.ColourAppearance = ColourAppearance; this.ColourTemperature = ColourTemperature; this.LuminousFlux = LuminousFlux; this.LightEmissionSource = LightEmissionSource; this.LightDistributionDataSource = LightDistributionDataSource; this.type = 4266656042; } } IFC2X32.IfcLightSourceGoniometric = IfcLightSourceGoniometric; class IfcLightSourcePositional extends IfcLightSource { constructor(expressID, Name, LightColour, AmbientIntensity, Intensity, Position, Radius, ConstantAttenuation, DistanceAttenuation, QuadricAttenuation) { super(expressID, Name, LightColour, AmbientIntensity, Intensity); this.Name = Name; this.LightColour = LightColour; this.AmbientIntensity = AmbientIntensity; this.Intensity = Intensity; this.Position = Position; this.Radius = Radius; this.ConstantAttenuation = ConstantAttenuation; this.DistanceAttenuation = DistanceAttenuation; this.QuadricAttenuation = QuadricAttenuation; this.type = 1520743889; } } IFC2X32.IfcLightSourcePositional = IfcLightSourcePositional; class IfcLightSourceSpot extends IfcLightSourcePositional { constructor(expressID, Name, LightColour, AmbientIntensity, Intensity, Position, Radius, ConstantAttenuation, DistanceAttenuation, QuadricAttenuation, Orientation, ConcentrationExponent, SpreadAngle, BeamWidthAngle) { super(expressID, Name, LightColour, AmbientIntensity, Intensity, Position, Radius, ConstantAttenuation, DistanceAttenuation, QuadricAttenuation); this.Name = Name; this.LightColour = LightColour; this.AmbientIntensity = AmbientIntensity; this.Intensity = Intensity; this.Position = Position; this.Radius = Radius; this.ConstantAttenuation = ConstantAttenuation; this.DistanceAttenuation = DistanceAttenuation; this.QuadricAttenuation = QuadricAttenuation; this.Orientation = Orientation; this.ConcentrationExponent = ConcentrationExponent; this.SpreadAngle = SpreadAngle; this.BeamWidthAngle = BeamWidthAngle; this.type = 3422422726; } } IFC2X32.IfcLightSourceSpot = IfcLightSourceSpot; class IfcLocalPlacement extends IfcObjectPlacement { constructor(expressID, PlacementRelTo, RelativePlacement) { super(expressID); this.PlacementRelTo = PlacementRelTo; this.RelativePlacement = RelativePlacement; this.type = 2624227202; } } IFC2X32.IfcLocalPlacement = IfcLocalPlacement; class IfcLoop extends IfcTopologicalRepresentationItem { constructor(expressID) { super(expressID); this.type = 1008929658; } } IFC2X32.IfcLoop = IfcLoop; class IfcMappedItem extends IfcRepresentationItem { constructor(expressID, MappingSource, MappingTarget) { super(expressID); this.MappingSource = MappingSource; this.MappingTarget = MappingTarget; this.type = 2347385850; } } IFC2X32.IfcMappedItem = IfcMappedItem; class IfcMaterialDefinitionRepresentation extends IfcProductRepresentation { constructor(expressID, Name, Description, Representations, RepresentedMaterial) { super(expressID, Name, Description, Representations); this.Name = Name; this.Description = Description; this.Representations = Representations; this.RepresentedMaterial = RepresentedMaterial; this.type = 2022407955; } } IFC2X32.IfcMaterialDefinitionRepresentation = IfcMaterialDefinitionRepresentation; class IfcMechanicalConcreteMaterialProperties extends IfcMechanicalMaterialProperties { constructor(expressID, Material, DynamicViscosity, YoungModulus, ShearModulus, PoissonRatio, ThermalExpansionCoefficient, CompressiveStrength, MaxAggregateSize, AdmixturesDescription, Workability, ProtectivePoreRatio, WaterImpermeability) { super(expressID, Material, DynamicViscosity, YoungModulus, ShearModulus, PoissonRatio, ThermalExpansionCoefficient); this.Material = Material; this.DynamicViscosity = DynamicViscosity; this.YoungModulus = YoungModulus; this.ShearModulus = ShearModulus; this.PoissonRatio = PoissonRatio; this.ThermalExpansionCoefficient = ThermalExpansionCoefficient; this.CompressiveStrength = CompressiveStrength; this.MaxAggregateSize = MaxAggregateSize; this.AdmixturesDescription = AdmixturesDescription; this.Workability = Workability; this.ProtectivePoreRatio = ProtectivePoreRatio; this.WaterImpermeability = WaterImpermeability; this.type = 1430189142; } } IFC2X32.IfcMechanicalConcreteMaterialProperties = IfcMechanicalConcreteMaterialProperties; class IfcObjectDefinition extends IfcRoot { constructor(expressID, GlobalId, OwnerHistory, Name, Description) { super(expressID, GlobalId, OwnerHistory, Name, Description); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.type = 219451334; } } IFC2X32.IfcObjectDefinition = IfcObjectDefinition; class IfcOneDirectionRepeatFactor extends IfcGeometricRepresentationItem { constructor(expressID, RepeatFactor) { super(expressID); this.RepeatFactor = RepeatFactor; this.type = 2833995503; } } IFC2X32.IfcOneDirectionRepeatFactor = IfcOneDirectionRepeatFactor; class IfcOpenShell extends IfcConnectedFaceSet { constructor(expressID, CfsFaces) { super(expressID, CfsFaces); this.CfsFaces = CfsFaces; this.type = 2665983363; } } IFC2X32.IfcOpenShell = IfcOpenShell; class IfcOrientedEdge extends IfcEdge { constructor(expressID, EdgeElement, Orientation) { super(expressID, new Handle(0), new Handle(0)); this.EdgeElement = EdgeElement; this.Orientation = Orientation; this.type = 1029017970; } } IFC2X32.IfcOrientedEdge = IfcOrientedEdge; class IfcParameterizedProfileDef extends IfcProfileDef { constructor(expressID, ProfileType, ProfileName, Position) { super(expressID, ProfileType, ProfileName); this.ProfileType = ProfileType; this.ProfileName = ProfileName; this.Position = Position; this.type = 2529465313; } } IFC2X32.IfcParameterizedProfileDef = IfcParameterizedProfileDef; class IfcPath extends IfcTopologicalRepresentationItem { constructor(expressID, EdgeList) { super(expressID); this.EdgeList = EdgeList; this.type = 2519244187; } } IFC2X32.IfcPath = IfcPath; class IfcPhysicalComplexQuantity extends IfcPhysicalQuantity { constructor(expressID, Name, Description, HasQuantities, Discrimination, Quality, Usage) { super(expressID, Name, Description); this.Name = Name; this.Description = Description; this.HasQuantities = HasQuantities; this.Discrimination = Discrimination; this.Quality = Quality; this.Usage = Usage; this.type = 3021840470; } } IFC2X32.IfcPhysicalComplexQuantity = IfcPhysicalComplexQuantity; class IfcPixelTexture extends IfcSurfaceTexture { constructor(expressID, RepeatS, RepeatT, TextureType, TextureTransform, Width, Height, ColourComponents, Pixel) { super(expressID, RepeatS, RepeatT, TextureType, TextureTransform); this.RepeatS = RepeatS; this.RepeatT = RepeatT; this.TextureType = TextureType; this.TextureTransform = TextureTransform; this.Width = Width; this.Height = Height; this.ColourComponents = ColourComponents; this.Pixel = Pixel; this.type = 597895409; } } IFC2X32.IfcPixelTexture = IfcPixelTexture; class IfcPlacement extends IfcGeometricRepresentationItem { constructor(expressID, Location) { super(expressID); this.Location = Location; this.type = 2004835150; } } IFC2X32.IfcPlacement = IfcPlacement; class IfcPlanarExtent extends IfcGeometricRepresentationItem { constructor(expressID, SizeInX, SizeInY) { super(expressID); this.SizeInX = SizeInX; this.SizeInY = SizeInY; this.type = 1663979128; } } IFC2X32.IfcPlanarExtent = IfcPlanarExtent; class IfcPoint extends IfcGeometricRepresentationItem { constructor(expressID) { super(expressID); this.type = 2067069095; } } IFC2X32.IfcPoint = IfcPoint; class IfcPointOnCurve extends IfcPoint { constructor(expressID, BasisCurve, PointParameter) { super(expressID); this.BasisCurve = BasisCurve; this.PointParameter = PointParameter; this.type = 4022376103; } } IFC2X32.IfcPointOnCurve = IfcPointOnCurve; class IfcPointOnSurface extends IfcPoint { constructor(expressID, BasisSurface, PointParameterU, PointParameterV) { super(expressID); this.BasisSurface = BasisSurface; this.PointParameterU = PointParameterU; this.PointParameterV = PointParameterV; this.type = 1423911732; } } IFC2X32.IfcPointOnSurface = IfcPointOnSurface; class IfcPolyLoop extends IfcLoop { constructor(expressID, Polygon) { super(expressID); this.Polygon = Polygon; this.type = 2924175390; } } IFC2X32.IfcPolyLoop = IfcPolyLoop; class IfcPolygonalBoundedHalfSpace extends IfcHalfSpaceSolid { constructor(expressID, BaseSurface, AgreementFlag, Position, PolygonalBoundary) { super(expressID, BaseSurface, AgreementFlag); this.BaseSurface = BaseSurface; this.AgreementFlag = AgreementFlag; this.Position = Position; this.PolygonalBoundary = PolygonalBoundary; this.type = 2775532180; } } IFC2X32.IfcPolygonalBoundedHalfSpace = IfcPolygonalBoundedHalfSpace; class IfcPreDefinedColour extends IfcPreDefinedItem { constructor(expressID, Name) { super(expressID, Name); this.Name = Name; this.type = 759155922; } } IFC2X32.IfcPreDefinedColour = IfcPreDefinedColour; class IfcPreDefinedCurveFont extends IfcPreDefinedItem { constructor(expressID, Name) { super(expressID, Name); this.Name = Name; this.type = 2559016684; } } IFC2X32.IfcPreDefinedCurveFont = IfcPreDefinedCurveFont; class IfcPreDefinedDimensionSymbol extends IfcPreDefinedSymbol { constructor(expressID, Name) { super(expressID, Name); this.Name = Name; this.type = 433424934; } } IFC2X32.IfcPreDefinedDimensionSymbol = IfcPreDefinedDimensionSymbol; class IfcPreDefinedPointMarkerSymbol extends IfcPreDefinedSymbol { constructor(expressID, Name) { super(expressID, Name); this.Name = Name; this.type = 179317114; } } IFC2X32.IfcPreDefinedPointMarkerSymbol = IfcPreDefinedPointMarkerSymbol; class IfcProductDefinitionShape extends IfcProductRepresentation { constructor(expressID, Name, Description, Representations) { super(expressID, Name, Description, Representations); this.Name = Name; this.Description = Description; this.Representations = Representations; this.type = 673634403; } } IFC2X32.IfcProductDefinitionShape = IfcProductDefinitionShape; class IfcPropertyBoundedValue extends IfcSimpleProperty { constructor(expressID, Name, Description, UpperBoundValue, LowerBoundValue, Unit) { super(expressID, Name, Description); this.Name = Name; this.Description = Description; this.UpperBoundValue = UpperBoundValue; this.LowerBoundValue = LowerBoundValue; this.Unit = Unit; this.type = 871118103; } } IFC2X32.IfcPropertyBoundedValue = IfcPropertyBoundedValue; class IfcPropertyDefinition extends IfcRoot { constructor(expressID, GlobalId, OwnerHistory, Name, Description) { super(expressID, GlobalId, OwnerHistory, Name, Description); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.type = 1680319473; } } IFC2X32.IfcPropertyDefinition = IfcPropertyDefinition; class IfcPropertyEnumeratedValue extends IfcSimpleProperty { constructor(expressID, Name, Description, EnumerationValues, EnumerationReference) { super(expressID, Name, Description); this.Name = Name; this.Description = Description; this.EnumerationValues = EnumerationValues; this.EnumerationReference = EnumerationReference; this.type = 4166981789; } } IFC2X32.IfcPropertyEnumeratedValue = IfcPropertyEnumeratedValue; class IfcPropertyListValue extends IfcSimpleProperty { constructor(expressID, Name, Description, ListValues, Unit) { super(expressID, Name, Description); this.Name = Name; this.Description = Description; this.ListValues = ListValues; this.Unit = Unit; this.type = 2752243245; } } IFC2X32.IfcPropertyListValue = IfcPropertyListValue; class IfcPropertyReferenceValue extends IfcSimpleProperty { constructor(expressID, Name, Description, UsageName, PropertyReference) { super(expressID, Name, Description); this.Name = Name; this.Description = Description; this.UsageName = UsageName; this.PropertyReference = PropertyReference; this.type = 941946838; } } IFC2X32.IfcPropertyReferenceValue = IfcPropertyReferenceValue; class IfcPropertySetDefinition extends IfcPropertyDefinition { constructor(expressID, GlobalId, OwnerHistory, Name, Description) { super(expressID, GlobalId, OwnerHistory, Name, Description); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.type = 3357820518; } } IFC2X32.IfcPropertySetDefinition = IfcPropertySetDefinition; class IfcPropertySingleValue extends IfcSimpleProperty { constructor(expressID, Name, Description, NominalValue, Unit) { super(expressID, Name, Description); this.Name = Name; this.Description = Description; this.NominalValue = NominalValue; this.Unit = Unit; this.type = 3650150729; } } IFC2X32.IfcPropertySingleValue = IfcPropertySingleValue; class IfcPropertyTableValue extends IfcSimpleProperty { constructor(expressID, Name, Description, DefiningValues, DefinedValues, Expression, DefiningUnit, DefinedUnit) { super(expressID, Name, Description); this.Name = Name; this.Description = Description; this.DefiningValues = DefiningValues; this.DefinedValues = DefinedValues; this.Expression = Expression; this.DefiningUnit = DefiningUnit; this.DefinedUnit = DefinedUnit; this.type = 110355661; } } IFC2X32.IfcPropertyTableValue = IfcPropertyTableValue; class IfcRectangleProfileDef extends IfcParameterizedProfileDef { constructor(expressID, ProfileType, ProfileName, Position, XDim, YDim) { super(expressID, ProfileType, ProfileName, Position); this.ProfileType = ProfileType; this.ProfileName = ProfileName; this.Position = Position; this.XDim = XDim; this.YDim = YDim; this.type = 3615266464; } } IFC2X32.IfcRectangleProfileDef = IfcRectangleProfileDef; class IfcRegularTimeSeries extends IfcTimeSeries { constructor(expressID, Name, Description, StartTime, EndTime, TimeSeriesDataType, DataOrigin, UserDefinedDataOrigin, Unit, TimeStep, Values) { super(expressID, Name, Description, StartTime, EndTime, TimeSeriesDataType, DataOrigin, UserDefinedDataOrigin, Unit); this.Name = Name; this.Description = Description; this.StartTime = StartTime; this.EndTime = EndTime; this.TimeSeriesDataType = TimeSeriesDataType; this.DataOrigin = DataOrigin; this.UserDefinedDataOrigin = UserDefinedDataOrigin; this.Unit = Unit; this.TimeStep = TimeStep; this.Values = Values; this.type = 3413951693; } } IFC2X32.IfcRegularTimeSeries = IfcRegularTimeSeries; class IfcReinforcementDefinitionProperties extends IfcPropertySetDefinition { constructor(expressID, GlobalId, OwnerHistory, Name, Description, DefinitionType, ReinforcementSectionDefinitions) { super(expressID, GlobalId, OwnerHistory, Name, Description); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.DefinitionType = DefinitionType; this.ReinforcementSectionDefinitions = ReinforcementSectionDefinitions; this.type = 3765753017; } } IFC2X32.IfcReinforcementDefinitionProperties = IfcReinforcementDefinitionProperties; class IfcRelationship extends IfcRoot { constructor(expressID, GlobalId, OwnerHistory, Name, Description) { super(expressID, GlobalId, OwnerHistory, Name, Description); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.type = 478536968; } } IFC2X32.IfcRelationship = IfcRelationship; class IfcRoundedRectangleProfileDef extends IfcRectangleProfileDef { constructor(expressID, ProfileType, ProfileName, Position, XDim, YDim, RoundingRadius) { super(expressID, ProfileType, ProfileName, Position, XDim, YDim); this.ProfileType = ProfileType; this.ProfileName = ProfileName; this.Position = Position; this.XDim = XDim; this.YDim = YDim; this.RoundingRadius = RoundingRadius; this.type = 2778083089; } } IFC2X32.IfcRoundedRectangleProfileDef = IfcRoundedRectangleProfileDef; class IfcSectionedSpine extends IfcGeometricRepresentationItem { constructor(expressID, SpineCurve, CrossSections, CrossSectionPositions) { super(expressID); this.SpineCurve = SpineCurve; this.CrossSections = CrossSections; this.CrossSectionPositions = CrossSectionPositions; this.type = 1509187699; } } IFC2X32.IfcSectionedSpine = IfcSectionedSpine; class IfcServiceLifeFactor extends IfcPropertySetDefinition { constructor(expressID, GlobalId, OwnerHistory, Name, Description, PredefinedType, UpperValue, MostUsedValue, LowerValue) { super(expressID, GlobalId, OwnerHistory, Name, Description); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.PredefinedType = PredefinedType; this.UpperValue = UpperValue; this.MostUsedValue = MostUsedValue; this.LowerValue = LowerValue; this.type = 2411513650; } } IFC2X32.IfcServiceLifeFactor = IfcServiceLifeFactor; class IfcShellBasedSurfaceModel extends IfcGeometricRepresentationItem { constructor(expressID, SbsmBoundary) { super(expressID); this.SbsmBoundary = SbsmBoundary; this.type = 4124623270; } } IFC2X32.IfcShellBasedSurfaceModel = IfcShellBasedSurfaceModel; class IfcSlippageConnectionCondition extends IfcStructuralConnectionCondition { constructor(expressID, Name, SlippageX, SlippageY, SlippageZ) { super(expressID, Name); this.Name = Name; this.SlippageX = SlippageX; this.SlippageY = SlippageY; this.SlippageZ = SlippageZ; this.type = 2609359061; } } IFC2X32.IfcSlippageConnectionCondition = IfcSlippageConnectionCondition; class IfcSolidModel extends IfcGeometricRepresentationItem { constructor(expressID) { super(expressID); this.type = 723233188; } } IFC2X32.IfcSolidModel = IfcSolidModel; class IfcSoundProperties extends IfcPropertySetDefinition { constructor(expressID, GlobalId, OwnerHistory, Name, Description, IsAttenuating, SoundScale, SoundValues) { super(expressID, GlobalId, OwnerHistory, Name, Description); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.IsAttenuating = IsAttenuating; this.SoundScale = SoundScale; this.SoundValues = SoundValues; this.type = 2485662743; } } IFC2X32.IfcSoundProperties = IfcSoundProperties; class IfcSoundValue extends IfcPropertySetDefinition { constructor(expressID, GlobalId, OwnerHistory, Name, Description, SoundLevelTimeSeries, Frequency, SoundLevelSingleValue) { super(expressID, GlobalId, OwnerHistory, Name, Description); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.SoundLevelTimeSeries = SoundLevelTimeSeries; this.Frequency = Frequency; this.SoundLevelSingleValue = SoundLevelSingleValue; this.type = 1202362311; } } IFC2X32.IfcSoundValue = IfcSoundValue; class IfcSpaceThermalLoadProperties extends IfcPropertySetDefinition { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableValueRatio, ThermalLoadSource, PropertySource, SourceDescription, MaximumValue, MinimumValue, ThermalLoadTimeSeriesValues, UserDefinedThermalLoadSource, UserDefinedPropertySource, ThermalLoadType) { super(expressID, GlobalId, OwnerHistory, Name, Description); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableValueRatio = ApplicableValueRatio; this.ThermalLoadSource = ThermalLoadSource; this.PropertySource = PropertySource; this.SourceDescription = SourceDescription; this.MaximumValue = MaximumValue; this.MinimumValue = MinimumValue; this.ThermalLoadTimeSeriesValues = ThermalLoadTimeSeriesValues; this.UserDefinedThermalLoadSource = UserDefinedThermalLoadSource; this.UserDefinedPropertySource = UserDefinedPropertySource; this.ThermalLoadType = ThermalLoadType; this.type = 390701378; } } IFC2X32.IfcSpaceThermalLoadProperties = IfcSpaceThermalLoadProperties; class IfcStructuralLoadLinearForce extends IfcStructuralLoadStatic { constructor(expressID, Name, LinearForceX, LinearForceY, LinearForceZ, LinearMomentX, LinearMomentY, LinearMomentZ) { super(expressID, Name); this.Name = Name; this.LinearForceX = LinearForceX; this.LinearForceY = LinearForceY; this.LinearForceZ = LinearForceZ; this.LinearMomentX = LinearMomentX; this.LinearMomentY = LinearMomentY; this.LinearMomentZ = LinearMomentZ; this.type = 1595516126; } } IFC2X32.IfcStructuralLoadLinearForce = IfcStructuralLoadLinearForce; class IfcStructuralLoadPlanarForce extends IfcStructuralLoadStatic { constructor(expressID, Name, PlanarForceX, PlanarForceY, PlanarForceZ) { super(expressID, Name); this.Name = Name; this.PlanarForceX = PlanarForceX; this.PlanarForceY = PlanarForceY; this.PlanarForceZ = PlanarForceZ; this.type = 2668620305; } } IFC2X32.IfcStructuralLoadPlanarForce = IfcStructuralLoadPlanarForce; class IfcStructuralLoadSingleDisplacement extends IfcStructuralLoadStatic { constructor(expressID, Name, DisplacementX, DisplacementY, DisplacementZ, RotationalDisplacementRX, RotationalDisplacementRY, RotationalDisplacementRZ) { super(expressID, Name); this.Name = Name; this.DisplacementX = DisplacementX; this.DisplacementY = DisplacementY; this.DisplacementZ = DisplacementZ; this.RotationalDisplacementRX = RotationalDisplacementRX; this.RotationalDisplacementRY = RotationalDisplacementRY; this.RotationalDisplacementRZ = RotationalDisplacementRZ; this.type = 2473145415; } } IFC2X32.IfcStructuralLoadSingleDisplacement = IfcStructuralLoadSingleDisplacement; class IfcStructuralLoadSingleDisplacementDistortion extends IfcStructuralLoadSingleDisplacement { constructor(expressID, Name, DisplacementX, DisplacementY, DisplacementZ, RotationalDisplacementRX, RotationalDisplacementRY, RotationalDisplacementRZ, Distortion) { super(expressID, Name, DisplacementX, DisplacementY, DisplacementZ, RotationalDisplacementRX, RotationalDisplacementRY, RotationalDisplacementRZ); this.Name = Name; this.DisplacementX = DisplacementX; this.DisplacementY = DisplacementY; this.DisplacementZ = DisplacementZ; this.RotationalDisplacementRX = RotationalDisplacementRX; this.RotationalDisplacementRY = RotationalDisplacementRY; this.RotationalDisplacementRZ = RotationalDisplacementRZ; this.Distortion = Distortion; this.type = 1973038258; } } IFC2X32.IfcStructuralLoadSingleDisplacementDistortion = IfcStructuralLoadSingleDisplacementDistortion; class IfcStructuralLoadSingleForce extends IfcStructuralLoadStatic { constructor(expressID, Name, ForceX, ForceY, ForceZ, MomentX, MomentY, MomentZ) { super(expressID, Name); this.Name = Name; this.ForceX = ForceX; this.ForceY = ForceY; this.ForceZ = ForceZ; this.MomentX = MomentX; this.MomentY = MomentY; this.MomentZ = MomentZ; this.type = 1597423693; } } IFC2X32.IfcStructuralLoadSingleForce = IfcStructuralLoadSingleForce; class IfcStructuralLoadSingleForceWarping extends IfcStructuralLoadSingleForce { constructor(expressID, Name, ForceX, ForceY, ForceZ, MomentX, MomentY, MomentZ, WarpingMoment) { super(expressID, Name, ForceX, ForceY, ForceZ, MomentX, MomentY, MomentZ); this.Name = Name; this.ForceX = ForceX; this.ForceY = ForceY; this.ForceZ = ForceZ; this.MomentX = MomentX; this.MomentY = MomentY; this.MomentZ = MomentZ; this.WarpingMoment = WarpingMoment; this.type = 1190533807; } } IFC2X32.IfcStructuralLoadSingleForceWarping = IfcStructuralLoadSingleForceWarping; class IfcStructuralProfileProperties extends IfcGeneralProfileProperties { constructor(expressID, ProfileName, ProfileDefinition, PhysicalWeight, Perimeter, MinimumPlateThickness, MaximumPlateThickness, CrossSectionArea, TorsionalConstantX, MomentOfInertiaYZ, MomentOfInertiaY, MomentOfInertiaZ, WarpingConstant, ShearCentreZ, ShearCentreY, ShearDeformationAreaZ, ShearDeformationAreaY, MaximumSectionModulusY, MinimumSectionModulusY, MaximumSectionModulusZ, MinimumSectionModulusZ, TorsionalSectionModulus, CentreOfGravityInX, CentreOfGravityInY) { super(expressID, ProfileName, ProfileDefinition, PhysicalWeight, Perimeter, MinimumPlateThickness, MaximumPlateThickness, CrossSectionArea); this.ProfileName = ProfileName; this.ProfileDefinition = ProfileDefinition; this.PhysicalWeight = PhysicalWeight; this.Perimeter = Perimeter; this.MinimumPlateThickness = MinimumPlateThickness; this.MaximumPlateThickness = MaximumPlateThickness; this.CrossSectionArea = CrossSectionArea; this.TorsionalConstantX = TorsionalConstantX; this.MomentOfInertiaYZ = MomentOfInertiaYZ; this.MomentOfInertiaY = MomentOfInertiaY; this.MomentOfInertiaZ = MomentOfInertiaZ; this.WarpingConstant = WarpingConstant; this.ShearCentreZ = ShearCentreZ; this.ShearCentreY = ShearCentreY; this.ShearDeformationAreaZ = ShearDeformationAreaZ; this.ShearDeformationAreaY = ShearDeformationAreaY; this.MaximumSectionModulusY = MaximumSectionModulusY; this.MinimumSectionModulusY = MinimumSectionModulusY; this.MaximumSectionModulusZ = MaximumSectionModulusZ; this.MinimumSectionModulusZ = MinimumSectionModulusZ; this.TorsionalSectionModulus = TorsionalSectionModulus; this.CentreOfGravityInX = CentreOfGravityInX; this.CentreOfGravityInY = CentreOfGravityInY; this.type = 3843319758; } } IFC2X32.IfcStructuralProfileProperties = IfcStructuralProfileProperties; class IfcStructuralSteelProfileProperties extends IfcStructuralProfileProperties { constructor(expressID, ProfileName, ProfileDefinition, PhysicalWeight, Perimeter, MinimumPlateThickness, MaximumPlateThickness, CrossSectionArea, TorsionalConstantX, MomentOfInertiaYZ, MomentOfInertiaY, MomentOfInertiaZ, WarpingConstant, ShearCentreZ, ShearCentreY, ShearDeformationAreaZ, ShearDeformationAreaY, MaximumSectionModulusY, MinimumSectionModulusY, MaximumSectionModulusZ, MinimumSectionModulusZ, TorsionalSectionModulus, CentreOfGravityInX, CentreOfGravityInY, ShearAreaZ, ShearAreaY, PlasticShapeFactorY, PlasticShapeFactorZ) { super(expressID, ProfileName, ProfileDefinition, PhysicalWeight, Perimeter, MinimumPlateThickness, MaximumPlateThickness, CrossSectionArea, TorsionalConstantX, MomentOfInertiaYZ, MomentOfInertiaY, MomentOfInertiaZ, WarpingConstant, ShearCentreZ, ShearCentreY, ShearDeformationAreaZ, ShearDeformationAreaY, MaximumSectionModulusY, MinimumSectionModulusY, MaximumSectionModulusZ, MinimumSectionModulusZ, TorsionalSectionModulus, CentreOfGravityInX, CentreOfGravityInY); this.ProfileName = ProfileName; this.ProfileDefinition = ProfileDefinition; this.PhysicalWeight = PhysicalWeight; this.Perimeter = Perimeter; this.MinimumPlateThickness = MinimumPlateThickness; this.MaximumPlateThickness = MaximumPlateThickness; this.CrossSectionArea = CrossSectionArea; this.TorsionalConstantX = TorsionalConstantX; this.MomentOfInertiaYZ = MomentOfInertiaYZ; this.MomentOfInertiaY = MomentOfInertiaY; this.MomentOfInertiaZ = MomentOfInertiaZ; this.WarpingConstant = WarpingConstant; this.ShearCentreZ = ShearCentreZ; this.ShearCentreY = ShearCentreY; this.ShearDeformationAreaZ = ShearDeformationAreaZ; this.ShearDeformationAreaY = ShearDeformationAreaY; this.MaximumSectionModulusY = MaximumSectionModulusY; this.MinimumSectionModulusY = MinimumSectionModulusY; this.MaximumSectionModulusZ = MaximumSectionModulusZ; this.MinimumSectionModulusZ = MinimumSectionModulusZ; this.TorsionalSectionModulus = TorsionalSectionModulus; this.CentreOfGravityInX = CentreOfGravityInX; this.CentreOfGravityInY = CentreOfGravityInY; this.ShearAreaZ = ShearAreaZ; this.ShearAreaY = ShearAreaY; this.PlasticShapeFactorY = PlasticShapeFactorY; this.PlasticShapeFactorZ = PlasticShapeFactorZ; this.type = 3653947884; } } IFC2X32.IfcStructuralSteelProfileProperties = IfcStructuralSteelProfileProperties; class IfcSubedge extends IfcEdge { constructor(expressID, EdgeStart, EdgeEnd, ParentEdge) { super(expressID, EdgeStart, EdgeEnd); this.EdgeStart = EdgeStart; this.EdgeEnd = EdgeEnd; this.ParentEdge = ParentEdge; this.type = 2233826070; } } IFC2X32.IfcSubedge = IfcSubedge; class IfcSurface extends IfcGeometricRepresentationItem { constructor(expressID) { super(expressID); this.type = 2513912981; } } IFC2X32.IfcSurface = IfcSurface; class IfcSurfaceStyleRendering extends IfcSurfaceStyleShading { constructor(expressID, SurfaceColour, Transparency, DiffuseColour, TransmissionColour, DiffuseTransmissionColour, ReflectionColour, SpecularColour, SpecularHighlight, ReflectanceMethod) { super(expressID, SurfaceColour); this.SurfaceColour = SurfaceColour; this.Transparency = Transparency; this.DiffuseColour = DiffuseColour; this.TransmissionColour = TransmissionColour; this.DiffuseTransmissionColour = DiffuseTransmissionColour; this.ReflectionColour = ReflectionColour; this.SpecularColour = SpecularColour; this.SpecularHighlight = SpecularHighlight; this.ReflectanceMethod = ReflectanceMethod; this.type = 1878645084; } } IFC2X32.IfcSurfaceStyleRendering = IfcSurfaceStyleRendering; class IfcSweptAreaSolid extends IfcSolidModel { constructor(expressID, SweptArea, Position) { super(expressID); this.SweptArea = SweptArea; this.Position = Position; this.type = 2247615214; } } IFC2X32.IfcSweptAreaSolid = IfcSweptAreaSolid; class IfcSweptDiskSolid extends IfcSolidModel { constructor(expressID, Directrix, Radius, InnerRadius, StartParam, EndParam) { super(expressID); this.Directrix = Directrix; this.Radius = Radius; this.InnerRadius = InnerRadius; this.StartParam = StartParam; this.EndParam = EndParam; this.type = 1260650574; } } IFC2X32.IfcSweptDiskSolid = IfcSweptDiskSolid; class IfcSweptSurface extends IfcSurface { constructor(expressID, SweptCurve, Position) { super(expressID); this.SweptCurve = SweptCurve; this.Position = Position; this.type = 230924584; } } IFC2X32.IfcSweptSurface = IfcSweptSurface; class IfcTShapeProfileDef extends IfcParameterizedProfileDef { constructor(expressID, ProfileType, ProfileName, Position, Depth, FlangeWidth, WebThickness, FlangeThickness, FilletRadius, FlangeEdgeRadius, WebEdgeRadius, WebSlope, FlangeSlope, CentreOfGravityInY) { super(expressID, ProfileType, ProfileName, Position); this.ProfileType = ProfileType; this.ProfileName = ProfileName; this.Position = Position; this.Depth = Depth; this.FlangeWidth = FlangeWidth; this.WebThickness = WebThickness; this.FlangeThickness = FlangeThickness; this.FilletRadius = FilletRadius; this.FlangeEdgeRadius = FlangeEdgeRadius; this.WebEdgeRadius = WebEdgeRadius; this.WebSlope = WebSlope; this.FlangeSlope = FlangeSlope; this.CentreOfGravityInY = CentreOfGravityInY; this.type = 3071757647; } } IFC2X32.IfcTShapeProfileDef = IfcTShapeProfileDef; class IfcTerminatorSymbol extends IfcAnnotationSymbolOccurrence { constructor(expressID, Item, Styles, Name, AnnotatedCurve) { super(expressID, Item, Styles, Name); this.Item = Item; this.Styles = Styles; this.Name = Name; this.AnnotatedCurve = AnnotatedCurve; this.type = 3028897424; } } IFC2X32.IfcTerminatorSymbol = IfcTerminatorSymbol; class IfcTextLiteral extends IfcGeometricRepresentationItem { constructor(expressID, Literal, Placement, Path) { super(expressID); this.Literal = Literal; this.Placement = Placement; this.Path = Path; this.type = 4282788508; } } IFC2X32.IfcTextLiteral = IfcTextLiteral; class IfcTextLiteralWithExtent extends IfcTextLiteral { constructor(expressID, Literal, Placement, Path, Extent, BoxAlignment) { super(expressID, Literal, Placement, Path); this.Literal = Literal; this.Placement = Placement; this.Path = Path; this.Extent = Extent; this.BoxAlignment = BoxAlignment; this.type = 3124975700; } } IFC2X32.IfcTextLiteralWithExtent = IfcTextLiteralWithExtent; class IfcTrapeziumProfileDef extends IfcParameterizedProfileDef { constructor(expressID, ProfileType, ProfileName, Position, BottomXDim, TopXDim, YDim, TopXOffset) { super(expressID, ProfileType, ProfileName, Position); this.ProfileType = ProfileType; this.ProfileName = ProfileName; this.Position = Position; this.BottomXDim = BottomXDim; this.TopXDim = TopXDim; this.YDim = YDim; this.TopXOffset = TopXOffset; this.type = 2715220739; } } IFC2X32.IfcTrapeziumProfileDef = IfcTrapeziumProfileDef; class IfcTwoDirectionRepeatFactor extends IfcOneDirectionRepeatFactor { constructor(expressID, RepeatFactor, SecondRepeatFactor) { super(expressID, RepeatFactor); this.RepeatFactor = RepeatFactor; this.SecondRepeatFactor = SecondRepeatFactor; this.type = 1345879162; } } IFC2X32.IfcTwoDirectionRepeatFactor = IfcTwoDirectionRepeatFactor; class IfcTypeObject extends IfcObjectDefinition { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets) { super(expressID, GlobalId, OwnerHistory, Name, Description); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.type = 1628702193; } } IFC2X32.IfcTypeObject = IfcTypeObject; class IfcTypeProduct extends IfcTypeObject { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.type = 2347495698; } } IFC2X32.IfcTypeProduct = IfcTypeProduct; class IfcUShapeProfileDef extends IfcParameterizedProfileDef { constructor(expressID, ProfileType, ProfileName, Position, Depth, FlangeWidth, WebThickness, FlangeThickness, FilletRadius, EdgeRadius, FlangeSlope, CentreOfGravityInX) { super(expressID, ProfileType, ProfileName, Position); this.ProfileType = ProfileType; this.ProfileName = ProfileName; this.Position = Position; this.Depth = Depth; this.FlangeWidth = FlangeWidth; this.WebThickness = WebThickness; this.FlangeThickness = FlangeThickness; this.FilletRadius = FilletRadius; this.EdgeRadius = EdgeRadius; this.FlangeSlope = FlangeSlope; this.CentreOfGravityInX = CentreOfGravityInX; this.type = 427810014; } } IFC2X32.IfcUShapeProfileDef = IfcUShapeProfileDef; class IfcVector extends IfcGeometricRepresentationItem { constructor(expressID, Orientation, Magnitude) { super(expressID); this.Orientation = Orientation; this.Magnitude = Magnitude; this.type = 1417489154; } } IFC2X32.IfcVector = IfcVector; class IfcVertexLoop extends IfcLoop { constructor(expressID, LoopVertex) { super(expressID); this.LoopVertex = LoopVertex; this.type = 2759199220; } } IFC2X32.IfcVertexLoop = IfcVertexLoop; class IfcWindowLiningProperties extends IfcPropertySetDefinition { constructor(expressID, GlobalId, OwnerHistory, Name, Description, LiningDepth, LiningThickness, TransomThickness, MullionThickness, FirstTransomOffset, SecondTransomOffset, FirstMullionOffset, SecondMullionOffset, ShapeAspectStyle) { super(expressID, GlobalId, OwnerHistory, Name, Description); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.LiningDepth = LiningDepth; this.LiningThickness = LiningThickness; this.TransomThickness = TransomThickness; this.MullionThickness = MullionThickness; this.FirstTransomOffset = FirstTransomOffset; this.SecondTransomOffset = SecondTransomOffset; this.FirstMullionOffset = FirstMullionOffset; this.SecondMullionOffset = SecondMullionOffset; this.ShapeAspectStyle = ShapeAspectStyle; this.type = 336235671; } } IFC2X32.IfcWindowLiningProperties = IfcWindowLiningProperties; class IfcWindowPanelProperties extends IfcPropertySetDefinition { constructor(expressID, GlobalId, OwnerHistory, Name, Description, OperationType, PanelPosition, FrameDepth, FrameThickness, ShapeAspectStyle) { super(expressID, GlobalId, OwnerHistory, Name, Description); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.OperationType = OperationType; this.PanelPosition = PanelPosition; this.FrameDepth = FrameDepth; this.FrameThickness = FrameThickness; this.ShapeAspectStyle = ShapeAspectStyle; this.type = 512836454; } } IFC2X32.IfcWindowPanelProperties = IfcWindowPanelProperties; class IfcWindowStyle extends IfcTypeProduct { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ConstructionType, OperationType, ParameterTakesPrecedence, Sizeable) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ConstructionType = ConstructionType; this.OperationType = OperationType; this.ParameterTakesPrecedence = ParameterTakesPrecedence; this.Sizeable = Sizeable; this.type = 1299126871; } } IFC2X32.IfcWindowStyle = IfcWindowStyle; class IfcZShapeProfileDef extends IfcParameterizedProfileDef { constructor(expressID, ProfileType, ProfileName, Position, Depth, FlangeWidth, WebThickness, FlangeThickness, FilletRadius, EdgeRadius) { super(expressID, ProfileType, ProfileName, Position); this.ProfileType = ProfileType; this.ProfileName = ProfileName; this.Position = Position; this.Depth = Depth; this.FlangeWidth = FlangeWidth; this.WebThickness = WebThickness; this.FlangeThickness = FlangeThickness; this.FilletRadius = FilletRadius; this.EdgeRadius = EdgeRadius; this.type = 2543172580; } } IFC2X32.IfcZShapeProfileDef = IfcZShapeProfileDef; class IfcAnnotationCurveOccurrence extends IfcAnnotationOccurrence { constructor(expressID, Item, Styles, Name) { super(expressID, Item, Styles, Name); this.Item = Item; this.Styles = Styles; this.Name = Name; this.type = 3288037868; } } IFC2X32.IfcAnnotationCurveOccurrence = IfcAnnotationCurveOccurrence; class IfcAnnotationFillArea extends IfcGeometricRepresentationItem { constructor(expressID, OuterBoundary, InnerBoundaries) { super(expressID); this.OuterBoundary = OuterBoundary; this.InnerBoundaries = InnerBoundaries; this.type = 669184980; } } IFC2X32.IfcAnnotationFillArea = IfcAnnotationFillArea; class IfcAnnotationFillAreaOccurrence extends IfcAnnotationOccurrence { constructor(expressID, Item, Styles, Name, FillStyleTarget, GlobalOrLocal) { super(expressID, Item, Styles, Name); this.Item = Item; this.Styles = Styles; this.Name = Name; this.FillStyleTarget = FillStyleTarget; this.GlobalOrLocal = GlobalOrLocal; this.type = 2265737646; } } IFC2X32.IfcAnnotationFillAreaOccurrence = IfcAnnotationFillAreaOccurrence; class IfcAnnotationSurface extends IfcGeometricRepresentationItem { constructor(expressID, Item, TextureCoordinates) { super(expressID); this.Item = Item; this.TextureCoordinates = TextureCoordinates; this.type = 1302238472; } } IFC2X32.IfcAnnotationSurface = IfcAnnotationSurface; class IfcAxis1Placement extends IfcPlacement { constructor(expressID, Location, Axis) { super(expressID, Location); this.Location = Location; this.Axis = Axis; this.type = 4261334040; } } IFC2X32.IfcAxis1Placement = IfcAxis1Placement; class IfcAxis2Placement2D extends IfcPlacement { constructor(expressID, Location, RefDirection) { super(expressID, Location); this.Location = Location; this.RefDirection = RefDirection; this.type = 3125803723; } } IFC2X32.IfcAxis2Placement2D = IfcAxis2Placement2D; class IfcAxis2Placement3D extends IfcPlacement { constructor(expressID, Location, Axis, RefDirection) { super(expressID, Location); this.Location = Location; this.Axis = Axis; this.RefDirection = RefDirection; this.type = 2740243338; } } IFC2X32.IfcAxis2Placement3D = IfcAxis2Placement3D; class IfcBooleanResult extends IfcGeometricRepresentationItem { constructor(expressID, Operator, FirstOperand, SecondOperand) { super(expressID); this.Operator = Operator; this.FirstOperand = FirstOperand; this.SecondOperand = SecondOperand; this.type = 2736907675; } } IFC2X32.IfcBooleanResult = IfcBooleanResult; class IfcBoundedSurface extends IfcSurface { constructor(expressID) { super(expressID); this.type = 4182860854; } } IFC2X32.IfcBoundedSurface = IfcBoundedSurface; class IfcBoundingBox extends IfcGeometricRepresentationItem { constructor(expressID, Corner, XDim, YDim, ZDim) { super(expressID); this.Corner = Corner; this.XDim = XDim; this.YDim = YDim; this.ZDim = ZDim; this.type = 2581212453; } } IFC2X32.IfcBoundingBox = IfcBoundingBox; class IfcBoxedHalfSpace extends IfcHalfSpaceSolid { constructor(expressID, BaseSurface, AgreementFlag, Enclosure) { super(expressID, BaseSurface, AgreementFlag); this.BaseSurface = BaseSurface; this.AgreementFlag = AgreementFlag; this.Enclosure = Enclosure; this.type = 2713105998; } } IFC2X32.IfcBoxedHalfSpace = IfcBoxedHalfSpace; class IfcCShapeProfileDef extends IfcParameterizedProfileDef { constructor(expressID, ProfileType, ProfileName, Position, Depth, Width, WallThickness, Girth, InternalFilletRadius, CentreOfGravityInX) { super(expressID, ProfileType, ProfileName, Position); this.ProfileType = ProfileType; this.ProfileName = ProfileName; this.Position = Position; this.Depth = Depth; this.Width = Width; this.WallThickness = WallThickness; this.Girth = Girth; this.InternalFilletRadius = InternalFilletRadius; this.CentreOfGravityInX = CentreOfGravityInX; this.type = 2898889636; } } IFC2X32.IfcCShapeProfileDef = IfcCShapeProfileDef; class IfcCartesianPoint extends IfcPoint { constructor(expressID, Coordinates) { super(expressID); this.Coordinates = Coordinates; this.type = 1123145078; } } IFC2X32.IfcCartesianPoint = IfcCartesianPoint; class IfcCartesianTransformationOperator extends IfcGeometricRepresentationItem { constructor(expressID, Axis1, Axis2, LocalOrigin, Scale) { super(expressID); this.Axis1 = Axis1; this.Axis2 = Axis2; this.LocalOrigin = LocalOrigin; this.Scale = Scale; this.type = 59481748; } } IFC2X32.IfcCartesianTransformationOperator = IfcCartesianTransformationOperator; class IfcCartesianTransformationOperator2D extends IfcCartesianTransformationOperator { constructor(expressID, Axis1, Axis2, LocalOrigin, Scale) { super(expressID, Axis1, Axis2, LocalOrigin, Scale); this.Axis1 = Axis1; this.Axis2 = Axis2; this.LocalOrigin = LocalOrigin; this.Scale = Scale; this.type = 3749851601; } } IFC2X32.IfcCartesianTransformationOperator2D = IfcCartesianTransformationOperator2D; class IfcCartesianTransformationOperator2DnonUniform extends IfcCartesianTransformationOperator2D { constructor(expressID, Axis1, Axis2, LocalOrigin, Scale, Scale2) { super(expressID, Axis1, Axis2, LocalOrigin, Scale); this.Axis1 = Axis1; this.Axis2 = Axis2; this.LocalOrigin = LocalOrigin; this.Scale = Scale; this.Scale2 = Scale2; this.type = 3486308946; } } IFC2X32.IfcCartesianTransformationOperator2DnonUniform = IfcCartesianTransformationOperator2DnonUniform; class IfcCartesianTransformationOperator3D extends IfcCartesianTransformationOperator { constructor(expressID, Axis1, Axis2, LocalOrigin, Scale, Axis3) { super(expressID, Axis1, Axis2, LocalOrigin, Scale); this.Axis1 = Axis1; this.Axis2 = Axis2; this.LocalOrigin = LocalOrigin; this.Scale = Scale; this.Axis3 = Axis3; this.type = 3331915920; } } IFC2X32.IfcCartesianTransformationOperator3D = IfcCartesianTransformationOperator3D; class IfcCartesianTransformationOperator3DnonUniform extends IfcCartesianTransformationOperator3D { constructor(expressID, Axis1, Axis2, LocalOrigin, Scale, Axis3, Scale2, Scale3) { super(expressID, Axis1, Axis2, LocalOrigin, Scale, Axis3); this.Axis1 = Axis1; this.Axis2 = Axis2; this.LocalOrigin = LocalOrigin; this.Scale = Scale; this.Axis3 = Axis3; this.Scale2 = Scale2; this.Scale3 = Scale3; this.type = 1416205885; } } IFC2X32.IfcCartesianTransformationOperator3DnonUniform = IfcCartesianTransformationOperator3DnonUniform; class IfcCircleProfileDef extends IfcParameterizedProfileDef { constructor(expressID, ProfileType, ProfileName, Position, Radius) { super(expressID, ProfileType, ProfileName, Position); this.ProfileType = ProfileType; this.ProfileName = ProfileName; this.Position = Position; this.Radius = Radius; this.type = 1383045692; } } IFC2X32.IfcCircleProfileDef = IfcCircleProfileDef; class IfcClosedShell extends IfcConnectedFaceSet { constructor(expressID, CfsFaces) { super(expressID, CfsFaces); this.CfsFaces = CfsFaces; this.type = 2205249479; } } IFC2X32.IfcClosedShell = IfcClosedShell; class IfcCompositeCurveSegment extends IfcGeometricRepresentationItem { constructor(expressID, Transition, SameSense, ParentCurve) { super(expressID); this.Transition = Transition; this.SameSense = SameSense; this.ParentCurve = ParentCurve; this.type = 2485617015; } } IFC2X32.IfcCompositeCurveSegment = IfcCompositeCurveSegment; class IfcCraneRailAShapeProfileDef extends IfcParameterizedProfileDef { constructor(expressID, ProfileType, ProfileName, Position, OverallHeight, BaseWidth2, Radius, HeadWidth, HeadDepth2, HeadDepth3, WebThickness, BaseWidth4, BaseDepth1, BaseDepth2, BaseDepth3, CentreOfGravityInY) { super(expressID, ProfileType, ProfileName, Position); this.ProfileType = ProfileType; this.ProfileName = ProfileName; this.Position = Position; this.OverallHeight = OverallHeight; this.BaseWidth2 = BaseWidth2; this.Radius = Radius; this.HeadWidth = HeadWidth; this.HeadDepth2 = HeadDepth2; this.HeadDepth3 = HeadDepth3; this.WebThickness = WebThickness; this.BaseWidth4 = BaseWidth4; this.BaseDepth1 = BaseDepth1; this.BaseDepth2 = BaseDepth2; this.BaseDepth3 = BaseDepth3; this.CentreOfGravityInY = CentreOfGravityInY; this.type = 4133800736; } } IFC2X32.IfcCraneRailAShapeProfileDef = IfcCraneRailAShapeProfileDef; class IfcCraneRailFShapeProfileDef extends IfcParameterizedProfileDef { constructor(expressID, ProfileType, ProfileName, Position, OverallHeight, HeadWidth, Radius, HeadDepth2, HeadDepth3, WebThickness, BaseDepth1, BaseDepth2, CentreOfGravityInY) { super(expressID, ProfileType, ProfileName, Position); this.ProfileType = ProfileType; this.ProfileName = ProfileName; this.Position = Position; this.OverallHeight = OverallHeight; this.HeadWidth = HeadWidth; this.Radius = Radius; this.HeadDepth2 = HeadDepth2; this.HeadDepth3 = HeadDepth3; this.WebThickness = WebThickness; this.BaseDepth1 = BaseDepth1; this.BaseDepth2 = BaseDepth2; this.CentreOfGravityInY = CentreOfGravityInY; this.type = 194851669; } } IFC2X32.IfcCraneRailFShapeProfileDef = IfcCraneRailFShapeProfileDef; class IfcCsgPrimitive3D extends IfcGeometricRepresentationItem { constructor(expressID, Position) { super(expressID); this.Position = Position; this.type = 2506170314; } } IFC2X32.IfcCsgPrimitive3D = IfcCsgPrimitive3D; class IfcCsgSolid extends IfcSolidModel { constructor(expressID, TreeRootExpression) { super(expressID); this.TreeRootExpression = TreeRootExpression; this.type = 2147822146; } } IFC2X32.IfcCsgSolid = IfcCsgSolid; class IfcCurve extends IfcGeometricRepresentationItem { constructor(expressID) { super(expressID); this.type = 2601014836; } } IFC2X32.IfcCurve = IfcCurve; class IfcCurveBoundedPlane extends IfcBoundedSurface { constructor(expressID, BasisSurface, OuterBoundary, InnerBoundaries) { super(expressID); this.BasisSurface = BasisSurface; this.OuterBoundary = OuterBoundary; this.InnerBoundaries = InnerBoundaries; this.type = 2827736869; } } IFC2X32.IfcCurveBoundedPlane = IfcCurveBoundedPlane; class IfcDefinedSymbol extends IfcGeometricRepresentationItem { constructor(expressID, Definition, Target) { super(expressID); this.Definition = Definition; this.Target = Target; this.type = 693772133; } } IFC2X32.IfcDefinedSymbol = IfcDefinedSymbol; class IfcDimensionCurve extends IfcAnnotationCurveOccurrence { constructor(expressID, Item, Styles, Name) { super(expressID, Item, Styles, Name); this.Item = Item; this.Styles = Styles; this.Name = Name; this.type = 606661476; } } IFC2X32.IfcDimensionCurve = IfcDimensionCurve; class IfcDimensionCurveTerminator extends IfcTerminatorSymbol { constructor(expressID, Item, Styles, Name, AnnotatedCurve, Role) { super(expressID, Item, Styles, Name, AnnotatedCurve); this.Item = Item; this.Styles = Styles; this.Name = Name; this.AnnotatedCurve = AnnotatedCurve; this.Role = Role; this.type = 4054601972; } } IFC2X32.IfcDimensionCurveTerminator = IfcDimensionCurveTerminator; class IfcDirection extends IfcGeometricRepresentationItem { constructor(expressID, DirectionRatios) { super(expressID); this.DirectionRatios = DirectionRatios; this.type = 32440307; } } IFC2X32.IfcDirection = IfcDirection; class IfcDoorLiningProperties extends IfcPropertySetDefinition { constructor(expressID, GlobalId, OwnerHistory, Name, Description, LiningDepth, LiningThickness, ThresholdDepth, ThresholdThickness, TransomThickness, TransomOffset, LiningOffset, ThresholdOffset, CasingThickness, CasingDepth, ShapeAspectStyle) { super(expressID, GlobalId, OwnerHistory, Name, Description); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.LiningDepth = LiningDepth; this.LiningThickness = LiningThickness; this.ThresholdDepth = ThresholdDepth; this.ThresholdThickness = ThresholdThickness; this.TransomThickness = TransomThickness; this.TransomOffset = TransomOffset; this.LiningOffset = LiningOffset; this.ThresholdOffset = ThresholdOffset; this.CasingThickness = CasingThickness; this.CasingDepth = CasingDepth; this.ShapeAspectStyle = ShapeAspectStyle; this.type = 2963535650; } } IFC2X32.IfcDoorLiningProperties = IfcDoorLiningProperties; class IfcDoorPanelProperties extends IfcPropertySetDefinition { constructor(expressID, GlobalId, OwnerHistory, Name, Description, PanelDepth, PanelOperation, PanelWidth, PanelPosition, ShapeAspectStyle) { super(expressID, GlobalId, OwnerHistory, Name, Description); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.PanelDepth = PanelDepth; this.PanelOperation = PanelOperation; this.PanelWidth = PanelWidth; this.PanelPosition = PanelPosition; this.ShapeAspectStyle = ShapeAspectStyle; this.type = 1714330368; } } IFC2X32.IfcDoorPanelProperties = IfcDoorPanelProperties; class IfcDoorStyle extends IfcTypeProduct { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, OperationType, ConstructionType, ParameterTakesPrecedence, Sizeable) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.OperationType = OperationType; this.ConstructionType = ConstructionType; this.ParameterTakesPrecedence = ParameterTakesPrecedence; this.Sizeable = Sizeable; this.type = 526551008; } } IFC2X32.IfcDoorStyle = IfcDoorStyle; class IfcDraughtingCallout extends IfcGeometricRepresentationItem { constructor(expressID, Contents) { super(expressID); this.Contents = Contents; this.type = 3073041342; } } IFC2X32.IfcDraughtingCallout = IfcDraughtingCallout; class IfcDraughtingPreDefinedColour extends IfcPreDefinedColour { constructor(expressID, Name) { super(expressID, Name); this.Name = Name; this.type = 445594917; } } IFC2X32.IfcDraughtingPreDefinedColour = IfcDraughtingPreDefinedColour; class IfcDraughtingPreDefinedCurveFont extends IfcPreDefinedCurveFont { constructor(expressID, Name) { super(expressID, Name); this.Name = Name; this.type = 4006246654; } } IFC2X32.IfcDraughtingPreDefinedCurveFont = IfcDraughtingPreDefinedCurveFont; class IfcEdgeLoop extends IfcLoop { constructor(expressID, EdgeList) { super(expressID); this.EdgeList = EdgeList; this.type = 1472233963; } } IFC2X32.IfcEdgeLoop = IfcEdgeLoop; class IfcElementQuantity extends IfcPropertySetDefinition { constructor(expressID, GlobalId, OwnerHistory, Name, Description, MethodOfMeasurement, Quantities) { super(expressID, GlobalId, OwnerHistory, Name, Description); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.MethodOfMeasurement = MethodOfMeasurement; this.Quantities = Quantities; this.type = 1883228015; } } IFC2X32.IfcElementQuantity = IfcElementQuantity; class IfcElementType extends IfcTypeProduct { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.type = 339256511; } } IFC2X32.IfcElementType = IfcElementType; class IfcElementarySurface extends IfcSurface { constructor(expressID, Position) { super(expressID); this.Position = Position; this.type = 2777663545; } } IFC2X32.IfcElementarySurface = IfcElementarySurface; class IfcEllipseProfileDef extends IfcParameterizedProfileDef { constructor(expressID, ProfileType, ProfileName, Position, SemiAxis1, SemiAxis2) { super(expressID, ProfileType, ProfileName, Position); this.ProfileType = ProfileType; this.ProfileName = ProfileName; this.Position = Position; this.SemiAxis1 = SemiAxis1; this.SemiAxis2 = SemiAxis2; this.type = 2835456948; } } IFC2X32.IfcEllipseProfileDef = IfcEllipseProfileDef; class IfcEnergyProperties extends IfcPropertySetDefinition { constructor(expressID, GlobalId, OwnerHistory, Name, Description, EnergySequence, UserDefinedEnergySequence) { super(expressID, GlobalId, OwnerHistory, Name, Description); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.EnergySequence = EnergySequence; this.UserDefinedEnergySequence = UserDefinedEnergySequence; this.type = 80994333; } } IFC2X32.IfcEnergyProperties = IfcEnergyProperties; class IfcExtrudedAreaSolid extends IfcSweptAreaSolid { constructor(expressID, SweptArea, Position, ExtrudedDirection, Depth) { super(expressID, SweptArea, Position); this.SweptArea = SweptArea; this.Position = Position; this.ExtrudedDirection = ExtrudedDirection; this.Depth = Depth; this.type = 477187591; } } IFC2X32.IfcExtrudedAreaSolid = IfcExtrudedAreaSolid; class IfcFaceBasedSurfaceModel extends IfcGeometricRepresentationItem { constructor(expressID, FbsmFaces) { super(expressID); this.FbsmFaces = FbsmFaces; this.type = 2047409740; } } IFC2X32.IfcFaceBasedSurfaceModel = IfcFaceBasedSurfaceModel; class IfcFillAreaStyleHatching extends IfcGeometricRepresentationItem { constructor(expressID, HatchLineAppearance, StartOfNextHatchLine, PointOfReferenceHatchLine, PatternStart, HatchLineAngle) { super(expressID); this.HatchLineAppearance = HatchLineAppearance; this.StartOfNextHatchLine = StartOfNextHatchLine; this.PointOfReferenceHatchLine = PointOfReferenceHatchLine; this.PatternStart = PatternStart; this.HatchLineAngle = HatchLineAngle; this.type = 374418227; } } IFC2X32.IfcFillAreaStyleHatching = IfcFillAreaStyleHatching; class IfcFillAreaStyleTileSymbolWithStyle extends IfcGeometricRepresentationItem { constructor(expressID, Symbol2) { super(expressID); this.Symbol = Symbol2; this.type = 4203026998; } } IFC2X32.IfcFillAreaStyleTileSymbolWithStyle = IfcFillAreaStyleTileSymbolWithStyle; class IfcFillAreaStyleTiles extends IfcGeometricRepresentationItem { constructor(expressID, TilingPattern, Tiles, TilingScale) { super(expressID); this.TilingPattern = TilingPattern; this.Tiles = Tiles; this.TilingScale = TilingScale; this.type = 315944413; } } IFC2X32.IfcFillAreaStyleTiles = IfcFillAreaStyleTiles; class IfcFluidFlowProperties extends IfcPropertySetDefinition { constructor(expressID, GlobalId, OwnerHistory, Name, Description, PropertySource, FlowConditionTimeSeries, VelocityTimeSeries, FlowrateTimeSeries, Fluid, PressureTimeSeries, UserDefinedPropertySource, TemperatureSingleValue, WetBulbTemperatureSingleValue, WetBulbTemperatureTimeSeries, TemperatureTimeSeries, FlowrateSingleValue, FlowConditionSingleValue, VelocitySingleValue, PressureSingleValue) { super(expressID, GlobalId, OwnerHistory, Name, Description); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.PropertySource = PropertySource; this.FlowConditionTimeSeries = FlowConditionTimeSeries; this.VelocityTimeSeries = VelocityTimeSeries; this.FlowrateTimeSeries = FlowrateTimeSeries; this.Fluid = Fluid; this.PressureTimeSeries = PressureTimeSeries; this.UserDefinedPropertySource = UserDefinedPropertySource; this.TemperatureSingleValue = TemperatureSingleValue; this.WetBulbTemperatureSingleValue = WetBulbTemperatureSingleValue; this.WetBulbTemperatureTimeSeries = WetBulbTemperatureTimeSeries; this.TemperatureTimeSeries = TemperatureTimeSeries; this.FlowrateSingleValue = FlowrateSingleValue; this.FlowConditionSingleValue = FlowConditionSingleValue; this.VelocitySingleValue = VelocitySingleValue; this.PressureSingleValue = PressureSingleValue; this.type = 3455213021; } } IFC2X32.IfcFluidFlowProperties = IfcFluidFlowProperties; class IfcFurnishingElementType extends IfcElementType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.type = 4238390223; } } IFC2X32.IfcFurnishingElementType = IfcFurnishingElementType; class IfcFurnitureType extends IfcFurnishingElementType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, AssemblyPlace) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.AssemblyPlace = AssemblyPlace; this.type = 1268542332; } } IFC2X32.IfcFurnitureType = IfcFurnitureType; class IfcGeometricCurveSet extends IfcGeometricSet { constructor(expressID, Elements) { super(expressID, Elements); this.Elements = Elements; this.type = 987898635; } } IFC2X32.IfcGeometricCurveSet = IfcGeometricCurveSet; class IfcIShapeProfileDef extends IfcParameterizedProfileDef { constructor(expressID, ProfileType, ProfileName, Position, OverallWidth, OverallDepth, WebThickness, FlangeThickness, FilletRadius) { super(expressID, ProfileType, ProfileName, Position); this.ProfileType = ProfileType; this.ProfileName = ProfileName; this.Position = Position; this.OverallWidth = OverallWidth; this.OverallDepth = OverallDepth; this.WebThickness = WebThickness; this.FlangeThickness = FlangeThickness; this.FilletRadius = FilletRadius; this.type = 1484403080; } } IFC2X32.IfcIShapeProfileDef = IfcIShapeProfileDef; class IfcLShapeProfileDef extends IfcParameterizedProfileDef { constructor(expressID, ProfileType, ProfileName, Position, Depth, Width, Thickness, FilletRadius, EdgeRadius, LegSlope, CentreOfGravityInX, CentreOfGravityInY) { super(expressID, ProfileType, ProfileName, Position); this.ProfileType = ProfileType; this.ProfileName = ProfileName; this.Position = Position; this.Depth = Depth; this.Width = Width; this.Thickness = Thickness; this.FilletRadius = FilletRadius; this.EdgeRadius = EdgeRadius; this.LegSlope = LegSlope; this.CentreOfGravityInX = CentreOfGravityInX; this.CentreOfGravityInY = CentreOfGravityInY; this.type = 572779678; } } IFC2X32.IfcLShapeProfileDef = IfcLShapeProfileDef; class IfcLine extends IfcCurve { constructor(expressID, Pnt, Dir) { super(expressID); this.Pnt = Pnt; this.Dir = Dir; this.type = 1281925730; } } IFC2X32.IfcLine = IfcLine; class IfcManifoldSolidBrep extends IfcSolidModel { constructor(expressID, Outer) { super(expressID); this.Outer = Outer; this.type = 1425443689; } } IFC2X32.IfcManifoldSolidBrep = IfcManifoldSolidBrep; class IfcObject extends IfcObjectDefinition { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType) { super(expressID, GlobalId, OwnerHistory, Name, Description); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.type = 3888040117; } } IFC2X32.IfcObject = IfcObject; class IfcOffsetCurve2D extends IfcCurve { constructor(expressID, BasisCurve, Distance, SelfIntersect) { super(expressID); this.BasisCurve = BasisCurve; this.Distance = Distance; this.SelfIntersect = SelfIntersect; this.type = 3388369263; } } IFC2X32.IfcOffsetCurve2D = IfcOffsetCurve2D; class IfcOffsetCurve3D extends IfcCurve { constructor(expressID, BasisCurve, Distance, SelfIntersect, RefDirection) { super(expressID); this.BasisCurve = BasisCurve; this.Distance = Distance; this.SelfIntersect = SelfIntersect; this.RefDirection = RefDirection; this.type = 3505215534; } } IFC2X32.IfcOffsetCurve3D = IfcOffsetCurve3D; class IfcPermeableCoveringProperties extends IfcPropertySetDefinition { constructor(expressID, GlobalId, OwnerHistory, Name, Description, OperationType, PanelPosition, FrameDepth, FrameThickness, ShapeAspectStyle) { super(expressID, GlobalId, OwnerHistory, Name, Description); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.OperationType = OperationType; this.PanelPosition = PanelPosition; this.FrameDepth = FrameDepth; this.FrameThickness = FrameThickness; this.ShapeAspectStyle = ShapeAspectStyle; this.type = 3566463478; } } IFC2X32.IfcPermeableCoveringProperties = IfcPermeableCoveringProperties; class IfcPlanarBox extends IfcPlanarExtent { constructor(expressID, SizeInX, SizeInY, Placement) { super(expressID, SizeInX, SizeInY); this.SizeInX = SizeInX; this.SizeInY = SizeInY; this.Placement = Placement; this.type = 603570806; } } IFC2X32.IfcPlanarBox = IfcPlanarBox; class IfcPlane extends IfcElementarySurface { constructor(expressID, Position) { super(expressID, Position); this.Position = Position; this.type = 220341763; } } IFC2X32.IfcPlane = IfcPlane; class IfcProcess extends IfcObject { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.type = 2945172077; } } IFC2X32.IfcProcess = IfcProcess; class IfcProduct extends IfcObject { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.type = 4208778838; } } IFC2X32.IfcProduct = IfcProduct; class IfcProject extends IfcObject { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, LongName, Phase, RepresentationContexts, UnitsInContext) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.LongName = LongName; this.Phase = Phase; this.RepresentationContexts = RepresentationContexts; this.UnitsInContext = UnitsInContext; this.type = 103090709; } } IFC2X32.IfcProject = IfcProject; class IfcProjectionCurve extends IfcAnnotationCurveOccurrence { constructor(expressID, Item, Styles, Name) { super(expressID, Item, Styles, Name); this.Item = Item; this.Styles = Styles; this.Name = Name; this.type = 4194566429; } } IFC2X32.IfcProjectionCurve = IfcProjectionCurve; class IfcPropertySet extends IfcPropertySetDefinition { constructor(expressID, GlobalId, OwnerHistory, Name, Description, HasProperties) { super(expressID, GlobalId, OwnerHistory, Name, Description); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.HasProperties = HasProperties; this.type = 1451395588; } } IFC2X32.IfcPropertySet = IfcPropertySet; class IfcProxy extends IfcProduct { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, ProxyType, Tag) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.ProxyType = ProxyType; this.Tag = Tag; this.type = 3219374653; } } IFC2X32.IfcProxy = IfcProxy; class IfcRectangleHollowProfileDef extends IfcRectangleProfileDef { constructor(expressID, ProfileType, ProfileName, Position, XDim, YDim, WallThickness, InnerFilletRadius, OuterFilletRadius) { super(expressID, ProfileType, ProfileName, Position, XDim, YDim); this.ProfileType = ProfileType; this.ProfileName = ProfileName; this.Position = Position; this.XDim = XDim; this.YDim = YDim; this.WallThickness = WallThickness; this.InnerFilletRadius = InnerFilletRadius; this.OuterFilletRadius = OuterFilletRadius; this.type = 2770003689; } } IFC2X32.IfcRectangleHollowProfileDef = IfcRectangleHollowProfileDef; class IfcRectangularPyramid extends IfcCsgPrimitive3D { constructor(expressID, Position, XLength, YLength, Height) { super(expressID, Position); this.Position = Position; this.XLength = XLength; this.YLength = YLength; this.Height = Height; this.type = 2798486643; } } IFC2X32.IfcRectangularPyramid = IfcRectangularPyramid; class IfcRectangularTrimmedSurface extends IfcBoundedSurface { constructor(expressID, BasisSurface, U1, V1, U2, V2, Usense, Vsense) { super(expressID); this.BasisSurface = BasisSurface; this.U1 = U1; this.V1 = V1; this.U2 = U2; this.V2 = V2; this.Usense = Usense; this.Vsense = Vsense; this.type = 3454111270; } } IFC2X32.IfcRectangularTrimmedSurface = IfcRectangularTrimmedSurface; class IfcRelAssigns extends IfcRelationship { constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType) { super(expressID, GlobalId, OwnerHistory, Name, Description); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.RelatedObjects = RelatedObjects; this.RelatedObjectsType = RelatedObjectsType; this.type = 3939117080; } } IFC2X32.IfcRelAssigns = IfcRelAssigns; class IfcRelAssignsToActor extends IfcRelAssigns { constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingActor, ActingRole) { super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.RelatedObjects = RelatedObjects; this.RelatedObjectsType = RelatedObjectsType; this.RelatingActor = RelatingActor; this.ActingRole = ActingRole; this.type = 1683148259; } } IFC2X32.IfcRelAssignsToActor = IfcRelAssignsToActor; class IfcRelAssignsToControl extends IfcRelAssigns { constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingControl) { super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.RelatedObjects = RelatedObjects; this.RelatedObjectsType = RelatedObjectsType; this.RelatingControl = RelatingControl; this.type = 2495723537; } } IFC2X32.IfcRelAssignsToControl = IfcRelAssignsToControl; class IfcRelAssignsToGroup extends IfcRelAssigns { constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingGroup) { super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.RelatedObjects = RelatedObjects; this.RelatedObjectsType = RelatedObjectsType; this.RelatingGroup = RelatingGroup; this.type = 1307041759; } } IFC2X32.IfcRelAssignsToGroup = IfcRelAssignsToGroup; class IfcRelAssignsToProcess extends IfcRelAssigns { constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingProcess, QuantityInProcess) { super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.RelatedObjects = RelatedObjects; this.RelatedObjectsType = RelatedObjectsType; this.RelatingProcess = RelatingProcess; this.QuantityInProcess = QuantityInProcess; this.type = 4278684876; } } IFC2X32.IfcRelAssignsToProcess = IfcRelAssignsToProcess; class IfcRelAssignsToProduct extends IfcRelAssigns { constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingProduct) { super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.RelatedObjects = RelatedObjects; this.RelatedObjectsType = RelatedObjectsType; this.RelatingProduct = RelatingProduct; this.type = 2857406711; } } IFC2X32.IfcRelAssignsToProduct = IfcRelAssignsToProduct; class IfcRelAssignsToProjectOrder extends IfcRelAssignsToControl { constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingControl) { super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingControl); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.RelatedObjects = RelatedObjects; this.RelatedObjectsType = RelatedObjectsType; this.RelatingControl = RelatingControl; this.type = 3372526763; } } IFC2X32.IfcRelAssignsToProjectOrder = IfcRelAssignsToProjectOrder; class IfcRelAssignsToResource extends IfcRelAssigns { constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingResource) { super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.RelatedObjects = RelatedObjects; this.RelatedObjectsType = RelatedObjectsType; this.RelatingResource = RelatingResource; this.type = 205026976; } } IFC2X32.IfcRelAssignsToResource = IfcRelAssignsToResource; class IfcRelAssociates extends IfcRelationship { constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects) { super(expressID, GlobalId, OwnerHistory, Name, Description); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.RelatedObjects = RelatedObjects; this.type = 1865459582; } } IFC2X32.IfcRelAssociates = IfcRelAssociates; class IfcRelAssociatesAppliedValue extends IfcRelAssociates { constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingAppliedValue) { super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.RelatedObjects = RelatedObjects; this.RelatingAppliedValue = RelatingAppliedValue; this.type = 1327628568; } } IFC2X32.IfcRelAssociatesAppliedValue = IfcRelAssociatesAppliedValue; class IfcRelAssociatesApproval extends IfcRelAssociates { constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingApproval) { super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.RelatedObjects = RelatedObjects; this.RelatingApproval = RelatingApproval; this.type = 4095574036; } } IFC2X32.IfcRelAssociatesApproval = IfcRelAssociatesApproval; class IfcRelAssociatesClassification extends IfcRelAssociates { constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingClassification) { super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.RelatedObjects = RelatedObjects; this.RelatingClassification = RelatingClassification; this.type = 919958153; } } IFC2X32.IfcRelAssociatesClassification = IfcRelAssociatesClassification; class IfcRelAssociatesConstraint extends IfcRelAssociates { constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, Intent, RelatingConstraint) { super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.RelatedObjects = RelatedObjects; this.Intent = Intent; this.RelatingConstraint = RelatingConstraint; this.type = 2728634034; } } IFC2X32.IfcRelAssociatesConstraint = IfcRelAssociatesConstraint; class IfcRelAssociatesDocument extends IfcRelAssociates { constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingDocument) { super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.RelatedObjects = RelatedObjects; this.RelatingDocument = RelatingDocument; this.type = 982818633; } } IFC2X32.IfcRelAssociatesDocument = IfcRelAssociatesDocument; class IfcRelAssociatesLibrary extends IfcRelAssociates { constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingLibrary) { super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.RelatedObjects = RelatedObjects; this.RelatingLibrary = RelatingLibrary; this.type = 3840914261; } } IFC2X32.IfcRelAssociatesLibrary = IfcRelAssociatesLibrary; class IfcRelAssociatesMaterial extends IfcRelAssociates { constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingMaterial) { super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.RelatedObjects = RelatedObjects; this.RelatingMaterial = RelatingMaterial; this.type = 2655215786; } } IFC2X32.IfcRelAssociatesMaterial = IfcRelAssociatesMaterial; class IfcRelAssociatesProfileProperties extends IfcRelAssociates { constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingProfileProperties, ProfileSectionLocation, ProfileOrientation) { super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.RelatedObjects = RelatedObjects; this.RelatingProfileProperties = RelatingProfileProperties; this.ProfileSectionLocation = ProfileSectionLocation; this.ProfileOrientation = ProfileOrientation; this.type = 2851387026; } } IFC2X32.IfcRelAssociatesProfileProperties = IfcRelAssociatesProfileProperties; class IfcRelConnects extends IfcRelationship { constructor(expressID, GlobalId, OwnerHistory, Name, Description) { super(expressID, GlobalId, OwnerHistory, Name, Description); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.type = 826625072; } } IFC2X32.IfcRelConnects = IfcRelConnects; class IfcRelConnectsElements extends IfcRelConnects { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ConnectionGeometry, RelatingElement, RelatedElement) { super(expressID, GlobalId, OwnerHistory, Name, Description); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ConnectionGeometry = ConnectionGeometry; this.RelatingElement = RelatingElement; this.RelatedElement = RelatedElement; this.type = 1204542856; } } IFC2X32.IfcRelConnectsElements = IfcRelConnectsElements; class IfcRelConnectsPathElements extends IfcRelConnectsElements { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ConnectionGeometry, RelatingElement, RelatedElement, RelatingPriorities, RelatedPriorities, RelatedConnectionType, RelatingConnectionType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ConnectionGeometry, RelatingElement, RelatedElement); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ConnectionGeometry = ConnectionGeometry; this.RelatingElement = RelatingElement; this.RelatedElement = RelatedElement; this.RelatingPriorities = RelatingPriorities; this.RelatedPriorities = RelatedPriorities; this.RelatedConnectionType = RelatedConnectionType; this.RelatingConnectionType = RelatingConnectionType; this.type = 3945020480; } } IFC2X32.IfcRelConnectsPathElements = IfcRelConnectsPathElements; class IfcRelConnectsPortToElement extends IfcRelConnects { constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingPort, RelatedElement) { super(expressID, GlobalId, OwnerHistory, Name, Description); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.RelatingPort = RelatingPort; this.RelatedElement = RelatedElement; this.type = 4201705270; } } IFC2X32.IfcRelConnectsPortToElement = IfcRelConnectsPortToElement; class IfcRelConnectsPorts extends IfcRelConnects { constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingPort, RelatedPort, RealizingElement) { super(expressID, GlobalId, OwnerHistory, Name, Description); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.RelatingPort = RelatingPort; this.RelatedPort = RelatedPort; this.RealizingElement = RealizingElement; this.type = 3190031847; } } IFC2X32.IfcRelConnectsPorts = IfcRelConnectsPorts; class IfcRelConnectsStructuralActivity extends IfcRelConnects { constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingElement, RelatedStructuralActivity) { super(expressID, GlobalId, OwnerHistory, Name, Description); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.RelatingElement = RelatingElement; this.RelatedStructuralActivity = RelatedStructuralActivity; this.type = 2127690289; } } IFC2X32.IfcRelConnectsStructuralActivity = IfcRelConnectsStructuralActivity; class IfcRelConnectsStructuralElement extends IfcRelConnects { constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingElement, RelatedStructuralMember) { super(expressID, GlobalId, OwnerHistory, Name, Description); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.RelatingElement = RelatingElement; this.RelatedStructuralMember = RelatedStructuralMember; this.type = 3912681535; } } IFC2X32.IfcRelConnectsStructuralElement = IfcRelConnectsStructuralElement; class IfcRelConnectsStructuralMember extends IfcRelConnects { constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingStructuralMember, RelatedStructuralConnection, AppliedCondition, AdditionalConditions, SupportedLength, ConditionCoordinateSystem) { super(expressID, GlobalId, OwnerHistory, Name, Description); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.RelatingStructuralMember = RelatingStructuralMember; this.RelatedStructuralConnection = RelatedStructuralConnection; this.AppliedCondition = AppliedCondition; this.AdditionalConditions = AdditionalConditions; this.SupportedLength = SupportedLength; this.ConditionCoordinateSystem = ConditionCoordinateSystem; this.type = 1638771189; } } IFC2X32.IfcRelConnectsStructuralMember = IfcRelConnectsStructuralMember; class IfcRelConnectsWithEccentricity extends IfcRelConnectsStructuralMember { constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingStructuralMember, RelatedStructuralConnection, AppliedCondition, AdditionalConditions, SupportedLength, ConditionCoordinateSystem, ConnectionConstraint) { super(expressID, GlobalId, OwnerHistory, Name, Description, RelatingStructuralMember, RelatedStructuralConnection, AppliedCondition, AdditionalConditions, SupportedLength, ConditionCoordinateSystem); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.RelatingStructuralMember = RelatingStructuralMember; this.RelatedStructuralConnection = RelatedStructuralConnection; this.AppliedCondition = AppliedCondition; this.AdditionalConditions = AdditionalConditions; this.SupportedLength = SupportedLength; this.ConditionCoordinateSystem = ConditionCoordinateSystem; this.ConnectionConstraint = ConnectionConstraint; this.type = 504942748; } } IFC2X32.IfcRelConnectsWithEccentricity = IfcRelConnectsWithEccentricity; class IfcRelConnectsWithRealizingElements extends IfcRelConnectsElements { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ConnectionGeometry, RelatingElement, RelatedElement, RealizingElements, ConnectionType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ConnectionGeometry, RelatingElement, RelatedElement); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ConnectionGeometry = ConnectionGeometry; this.RelatingElement = RelatingElement; this.RelatedElement = RelatedElement; this.RealizingElements = RealizingElements; this.ConnectionType = ConnectionType; this.type = 3678494232; } } IFC2X32.IfcRelConnectsWithRealizingElements = IfcRelConnectsWithRealizingElements; class IfcRelContainedInSpatialStructure extends IfcRelConnects { constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedElements, RelatingStructure) { super(expressID, GlobalId, OwnerHistory, Name, Description); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.RelatedElements = RelatedElements; this.RelatingStructure = RelatingStructure; this.type = 3242617779; } } IFC2X32.IfcRelContainedInSpatialStructure = IfcRelContainedInSpatialStructure; class IfcRelCoversBldgElements extends IfcRelConnects { constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingBuildingElement, RelatedCoverings) { super(expressID, GlobalId, OwnerHistory, Name, Description); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.RelatingBuildingElement = RelatingBuildingElement; this.RelatedCoverings = RelatedCoverings; this.type = 886880790; } } IFC2X32.IfcRelCoversBldgElements = IfcRelCoversBldgElements; class IfcRelCoversSpaces extends IfcRelConnects { constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedSpace, RelatedCoverings) { super(expressID, GlobalId, OwnerHistory, Name, Description); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.RelatedSpace = RelatedSpace; this.RelatedCoverings = RelatedCoverings; this.type = 2802773753; } } IFC2X32.IfcRelCoversSpaces = IfcRelCoversSpaces; class IfcRelDecomposes extends IfcRelationship { constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingObject, RelatedObjects) { super(expressID, GlobalId, OwnerHistory, Name, Description); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.RelatingObject = RelatingObject; this.RelatedObjects = RelatedObjects; this.type = 2551354335; } } IFC2X32.IfcRelDecomposes = IfcRelDecomposes; class IfcRelDefines extends IfcRelationship { constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects) { super(expressID, GlobalId, OwnerHistory, Name, Description); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.RelatedObjects = RelatedObjects; this.type = 693640335; } } IFC2X32.IfcRelDefines = IfcRelDefines; class IfcRelDefinesByProperties extends IfcRelDefines { constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingPropertyDefinition) { super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.RelatedObjects = RelatedObjects; this.RelatingPropertyDefinition = RelatingPropertyDefinition; this.type = 4186316022; } } IFC2X32.IfcRelDefinesByProperties = IfcRelDefinesByProperties; class IfcRelDefinesByType extends IfcRelDefines { constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingType) { super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.RelatedObjects = RelatedObjects; this.RelatingType = RelatingType; this.type = 781010003; } } IFC2X32.IfcRelDefinesByType = IfcRelDefinesByType; class IfcRelFillsElement extends IfcRelConnects { constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingOpeningElement, RelatedBuildingElement) { super(expressID, GlobalId, OwnerHistory, Name, Description); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.RelatingOpeningElement = RelatingOpeningElement; this.RelatedBuildingElement = RelatedBuildingElement; this.type = 3940055652; } } IFC2X32.IfcRelFillsElement = IfcRelFillsElement; class IfcRelFlowControlElements extends IfcRelConnects { constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedControlElements, RelatingFlowElement) { super(expressID, GlobalId, OwnerHistory, Name, Description); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.RelatedControlElements = RelatedControlElements; this.RelatingFlowElement = RelatingFlowElement; this.type = 279856033; } } IFC2X32.IfcRelFlowControlElements = IfcRelFlowControlElements; class IfcRelInteractionRequirements extends IfcRelConnects { constructor(expressID, GlobalId, OwnerHistory, Name, Description, DailyInteraction, ImportanceRating, LocationOfInteraction, RelatedSpaceProgram, RelatingSpaceProgram) { super(expressID, GlobalId, OwnerHistory, Name, Description); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.DailyInteraction = DailyInteraction; this.ImportanceRating = ImportanceRating; this.LocationOfInteraction = LocationOfInteraction; this.RelatedSpaceProgram = RelatedSpaceProgram; this.RelatingSpaceProgram = RelatingSpaceProgram; this.type = 4189434867; } } IFC2X32.IfcRelInteractionRequirements = IfcRelInteractionRequirements; class IfcRelNests extends IfcRelDecomposes { constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingObject, RelatedObjects) { super(expressID, GlobalId, OwnerHistory, Name, Description, RelatingObject, RelatedObjects); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.RelatingObject = RelatingObject; this.RelatedObjects = RelatedObjects; this.type = 3268803585; } } IFC2X32.IfcRelNests = IfcRelNests; class IfcRelOccupiesSpaces extends IfcRelAssignsToActor { constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingActor, ActingRole) { super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingActor, ActingRole); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.RelatedObjects = RelatedObjects; this.RelatedObjectsType = RelatedObjectsType; this.RelatingActor = RelatingActor; this.ActingRole = ActingRole; this.type = 2051452291; } } IFC2X32.IfcRelOccupiesSpaces = IfcRelOccupiesSpaces; class IfcRelOverridesProperties extends IfcRelDefinesByProperties { constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingPropertyDefinition, OverridingProperties) { super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingPropertyDefinition); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.RelatedObjects = RelatedObjects; this.RelatingPropertyDefinition = RelatingPropertyDefinition; this.OverridingProperties = OverridingProperties; this.type = 202636808; } } IFC2X32.IfcRelOverridesProperties = IfcRelOverridesProperties; class IfcRelProjectsElement extends IfcRelConnects { constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingElement, RelatedFeatureElement) { super(expressID, GlobalId, OwnerHistory, Name, Description); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.RelatingElement = RelatingElement; this.RelatedFeatureElement = RelatedFeatureElement; this.type = 750771296; } } IFC2X32.IfcRelProjectsElement = IfcRelProjectsElement; class IfcRelReferencedInSpatialStructure extends IfcRelConnects { constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedElements, RelatingStructure) { super(expressID, GlobalId, OwnerHistory, Name, Description); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.RelatedElements = RelatedElements; this.RelatingStructure = RelatingStructure; this.type = 1245217292; } } IFC2X32.IfcRelReferencedInSpatialStructure = IfcRelReferencedInSpatialStructure; class IfcRelSchedulesCostItems extends IfcRelAssignsToControl { constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingControl) { super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingControl); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.RelatedObjects = RelatedObjects; this.RelatedObjectsType = RelatedObjectsType; this.RelatingControl = RelatingControl; this.type = 1058617721; } } IFC2X32.IfcRelSchedulesCostItems = IfcRelSchedulesCostItems; class IfcRelSequence extends IfcRelConnects { constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingProcess, RelatedProcess, TimeLag, SequenceType) { super(expressID, GlobalId, OwnerHistory, Name, Description); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.RelatingProcess = RelatingProcess; this.RelatedProcess = RelatedProcess; this.TimeLag = TimeLag; this.SequenceType = SequenceType; this.type = 4122056220; } } IFC2X32.IfcRelSequence = IfcRelSequence; class IfcRelServicesBuildings extends IfcRelConnects { constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingSystem, RelatedBuildings) { super(expressID, GlobalId, OwnerHistory, Name, Description); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.RelatingSystem = RelatingSystem; this.RelatedBuildings = RelatedBuildings; this.type = 366585022; } } IFC2X32.IfcRelServicesBuildings = IfcRelServicesBuildings; class IfcRelSpaceBoundary extends IfcRelConnects { constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingSpace, RelatedBuildingElement, ConnectionGeometry, PhysicalOrVirtualBoundary, InternalOrExternalBoundary) { super(expressID, GlobalId, OwnerHistory, Name, Description); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.RelatingSpace = RelatingSpace; this.RelatedBuildingElement = RelatedBuildingElement; this.ConnectionGeometry = ConnectionGeometry; this.PhysicalOrVirtualBoundary = PhysicalOrVirtualBoundary; this.InternalOrExternalBoundary = InternalOrExternalBoundary; this.type = 3451746338; } } IFC2X32.IfcRelSpaceBoundary = IfcRelSpaceBoundary; class IfcRelVoidsElement extends IfcRelConnects { constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingBuildingElement, RelatedOpeningElement) { super(expressID, GlobalId, OwnerHistory, Name, Description); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.RelatingBuildingElement = RelatingBuildingElement; this.RelatedOpeningElement = RelatedOpeningElement; this.type = 1401173127; } } IFC2X32.IfcRelVoidsElement = IfcRelVoidsElement; class IfcResource extends IfcObject { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.type = 2914609552; } } IFC2X32.IfcResource = IfcResource; class IfcRevolvedAreaSolid extends IfcSweptAreaSolid { constructor(expressID, SweptArea, Position, Axis, Angle) { super(expressID, SweptArea, Position); this.SweptArea = SweptArea; this.Position = Position; this.Axis = Axis; this.Angle = Angle; this.type = 1856042241; } } IFC2X32.IfcRevolvedAreaSolid = IfcRevolvedAreaSolid; class IfcRightCircularCone extends IfcCsgPrimitive3D { constructor(expressID, Position, Height, BottomRadius) { super(expressID, Position); this.Position = Position; this.Height = Height; this.BottomRadius = BottomRadius; this.type = 4158566097; } } IFC2X32.IfcRightCircularCone = IfcRightCircularCone; class IfcRightCircularCylinder extends IfcCsgPrimitive3D { constructor(expressID, Position, Height, Radius) { super(expressID, Position); this.Position = Position; this.Height = Height; this.Radius = Radius; this.type = 3626867408; } } IFC2X32.IfcRightCircularCylinder = IfcRightCircularCylinder; class IfcSpatialStructureElement extends IfcProduct { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.LongName = LongName; this.CompositionType = CompositionType; this.type = 2706606064; } } IFC2X32.IfcSpatialStructureElement = IfcSpatialStructureElement; class IfcSpatialStructureElementType extends IfcElementType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.type = 3893378262; } } IFC2X32.IfcSpatialStructureElementType = IfcSpatialStructureElementType; class IfcSphere extends IfcCsgPrimitive3D { constructor(expressID, Position, Radius) { super(expressID, Position); this.Position = Position; this.Radius = Radius; this.type = 451544542; } } IFC2X32.IfcSphere = IfcSphere; class IfcStructuralActivity extends IfcProduct { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.AppliedLoad = AppliedLoad; this.GlobalOrLocal = GlobalOrLocal; this.type = 3544373492; } } IFC2X32.IfcStructuralActivity = IfcStructuralActivity; class IfcStructuralItem extends IfcProduct { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.type = 3136571912; } } IFC2X32.IfcStructuralItem = IfcStructuralItem; class IfcStructuralMember extends IfcStructuralItem { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.type = 530289379; } } IFC2X32.IfcStructuralMember = IfcStructuralMember; class IfcStructuralReaction extends IfcStructuralActivity { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.AppliedLoad = AppliedLoad; this.GlobalOrLocal = GlobalOrLocal; this.type = 3689010777; } } IFC2X32.IfcStructuralReaction = IfcStructuralReaction; class IfcStructuralSurfaceMember extends IfcStructuralMember { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType, Thickness) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.PredefinedType = PredefinedType; this.Thickness = Thickness; this.type = 3979015343; } } IFC2X32.IfcStructuralSurfaceMember = IfcStructuralSurfaceMember; class IfcStructuralSurfaceMemberVarying extends IfcStructuralSurfaceMember { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType, Thickness, SubsequentThickness, VaryingThicknessLocation) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType, Thickness); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.PredefinedType = PredefinedType; this.Thickness = Thickness; this.SubsequentThickness = SubsequentThickness; this.VaryingThicknessLocation = VaryingThicknessLocation; this.type = 2218152070; } } IFC2X32.IfcStructuralSurfaceMemberVarying = IfcStructuralSurfaceMemberVarying; class IfcStructuredDimensionCallout extends IfcDraughtingCallout { constructor(expressID, Contents) { super(expressID, Contents); this.Contents = Contents; this.type = 4070609034; } } IFC2X32.IfcStructuredDimensionCallout = IfcStructuredDimensionCallout; class IfcSurfaceCurveSweptAreaSolid extends IfcSweptAreaSolid { constructor(expressID, SweptArea, Position, Directrix, StartParam, EndParam, ReferenceSurface) { super(expressID, SweptArea, Position); this.SweptArea = SweptArea; this.Position = Position; this.Directrix = Directrix; this.StartParam = StartParam; this.EndParam = EndParam; this.ReferenceSurface = ReferenceSurface; this.type = 2028607225; } } IFC2X32.IfcSurfaceCurveSweptAreaSolid = IfcSurfaceCurveSweptAreaSolid; class IfcSurfaceOfLinearExtrusion extends IfcSweptSurface { constructor(expressID, SweptCurve, Position, ExtrudedDirection, Depth) { super(expressID, SweptCurve, Position); this.SweptCurve = SweptCurve; this.Position = Position; this.ExtrudedDirection = ExtrudedDirection; this.Depth = Depth; this.type = 2809605785; } } IFC2X32.IfcSurfaceOfLinearExtrusion = IfcSurfaceOfLinearExtrusion; class IfcSurfaceOfRevolution extends IfcSweptSurface { constructor(expressID, SweptCurve, Position, AxisPosition) { super(expressID, SweptCurve, Position); this.SweptCurve = SweptCurve; this.Position = Position; this.AxisPosition = AxisPosition; this.type = 4124788165; } } IFC2X32.IfcSurfaceOfRevolution = IfcSurfaceOfRevolution; class IfcSystemFurnitureElementType extends IfcFurnishingElementType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.type = 1580310250; } } IFC2X32.IfcSystemFurnitureElementType = IfcSystemFurnitureElementType; class IfcTask extends IfcProcess { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, TaskId, Status, WorkMethod, IsMilestone, Priority) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.TaskId = TaskId; this.Status = Status; this.WorkMethod = WorkMethod; this.IsMilestone = IsMilestone; this.Priority = Priority; this.type = 3473067441; } } IFC2X32.IfcTask = IfcTask; class IfcTransportElementType extends IfcElementType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 2097647324; } } IFC2X32.IfcTransportElementType = IfcTransportElementType; class IfcActor extends IfcObject { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, TheActor) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.TheActor = TheActor; this.type = 2296667514; } } IFC2X32.IfcActor = IfcActor; class IfcAnnotation extends IfcProduct { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.type = 1674181508; } } IFC2X32.IfcAnnotation = IfcAnnotation; class IfcAsymmetricIShapeProfileDef extends IfcIShapeProfileDef { constructor(expressID, ProfileType, ProfileName, Position, OverallWidth, OverallDepth, WebThickness, FlangeThickness, FilletRadius, TopFlangeWidth, TopFlangeThickness, TopFlangeFilletRadius, CentreOfGravityInY) { super(expressID, ProfileType, ProfileName, Position, OverallWidth, OverallDepth, WebThickness, FlangeThickness, FilletRadius); this.ProfileType = ProfileType; this.ProfileName = ProfileName; this.Position = Position; this.OverallWidth = OverallWidth; this.OverallDepth = OverallDepth; this.WebThickness = WebThickness; this.FlangeThickness = FlangeThickness; this.FilletRadius = FilletRadius; this.TopFlangeWidth = TopFlangeWidth; this.TopFlangeThickness = TopFlangeThickness; this.TopFlangeFilletRadius = TopFlangeFilletRadius; this.CentreOfGravityInY = CentreOfGravityInY; this.type = 3207858831; } } IFC2X32.IfcAsymmetricIShapeProfileDef = IfcAsymmetricIShapeProfileDef; class IfcBlock extends IfcCsgPrimitive3D { constructor(expressID, Position, XLength, YLength, ZLength) { super(expressID, Position); this.Position = Position; this.XLength = XLength; this.YLength = YLength; this.ZLength = ZLength; this.type = 1334484129; } } IFC2X32.IfcBlock = IfcBlock; class IfcBooleanClippingResult extends IfcBooleanResult { constructor(expressID, Operator, FirstOperand, SecondOperand) { super(expressID, Operator, FirstOperand, SecondOperand); this.Operator = Operator; this.FirstOperand = FirstOperand; this.SecondOperand = SecondOperand; this.type = 3649129432; } } IFC2X32.IfcBooleanClippingResult = IfcBooleanClippingResult; class IfcBoundedCurve extends IfcCurve { constructor(expressID) { super(expressID); this.type = 1260505505; } } IFC2X32.IfcBoundedCurve = IfcBoundedCurve; class IfcBuilding extends IfcSpatialStructureElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, ElevationOfRefHeight, ElevationOfTerrain, BuildingAddress) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.LongName = LongName; this.CompositionType = CompositionType; this.ElevationOfRefHeight = ElevationOfRefHeight; this.ElevationOfTerrain = ElevationOfTerrain; this.BuildingAddress = BuildingAddress; this.type = 4031249490; } } IFC2X32.IfcBuilding = IfcBuilding; class IfcBuildingElementType extends IfcElementType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.type = 1950629157; } } IFC2X32.IfcBuildingElementType = IfcBuildingElementType; class IfcBuildingStorey extends IfcSpatialStructureElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, Elevation) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.LongName = LongName; this.CompositionType = CompositionType; this.Elevation = Elevation; this.type = 3124254112; } } IFC2X32.IfcBuildingStorey = IfcBuildingStorey; class IfcCircleHollowProfileDef extends IfcCircleProfileDef { constructor(expressID, ProfileType, ProfileName, Position, Radius, WallThickness) { super(expressID, ProfileType, ProfileName, Position, Radius); this.ProfileType = ProfileType; this.ProfileName = ProfileName; this.Position = Position; this.Radius = Radius; this.WallThickness = WallThickness; this.type = 2937912522; } } IFC2X32.IfcCircleHollowProfileDef = IfcCircleHollowProfileDef; class IfcColumnType extends IfcBuildingElementType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 300633059; } } IFC2X32.IfcColumnType = IfcColumnType; class IfcCompositeCurve extends IfcBoundedCurve { constructor(expressID, Segments, SelfIntersect) { super(expressID); this.Segments = Segments; this.SelfIntersect = SelfIntersect; this.type = 3732776249; } } IFC2X32.IfcCompositeCurve = IfcCompositeCurve; class IfcConic extends IfcCurve { constructor(expressID, Position) { super(expressID); this.Position = Position; this.type = 2510884976; } } IFC2X32.IfcConic = IfcConic; class IfcConstructionResource extends IfcResource { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ResourceIdentifier, ResourceGroup, ResourceConsumption, BaseQuantity) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ResourceIdentifier = ResourceIdentifier; this.ResourceGroup = ResourceGroup; this.ResourceConsumption = ResourceConsumption; this.BaseQuantity = BaseQuantity; this.type = 2559216714; } } IFC2X32.IfcConstructionResource = IfcConstructionResource; class IfcControl extends IfcObject { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.type = 3293443760; } } IFC2X32.IfcControl = IfcControl; class IfcCostItem extends IfcControl { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.type = 3895139033; } } IFC2X32.IfcCostItem = IfcCostItem; class IfcCostSchedule extends IfcControl { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, SubmittedBy, PreparedBy, SubmittedOn, Status, TargetUsers, UpdateDate, ID, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.SubmittedBy = SubmittedBy; this.PreparedBy = PreparedBy; this.SubmittedOn = SubmittedOn; this.Status = Status; this.TargetUsers = TargetUsers; this.UpdateDate = UpdateDate; this.ID = ID; this.PredefinedType = PredefinedType; this.type = 1419761937; } } IFC2X32.IfcCostSchedule = IfcCostSchedule; class IfcCoveringType extends IfcBuildingElementType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 1916426348; } } IFC2X32.IfcCoveringType = IfcCoveringType; class IfcCrewResource extends IfcConstructionResource { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ResourceIdentifier, ResourceGroup, ResourceConsumption, BaseQuantity) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ResourceIdentifier, ResourceGroup, ResourceConsumption, BaseQuantity); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ResourceIdentifier = ResourceIdentifier; this.ResourceGroup = ResourceGroup; this.ResourceConsumption = ResourceConsumption; this.BaseQuantity = BaseQuantity; this.type = 3295246426; } } IFC2X32.IfcCrewResource = IfcCrewResource; class IfcCurtainWallType extends IfcBuildingElementType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 1457835157; } } IFC2X32.IfcCurtainWallType = IfcCurtainWallType; class IfcDimensionCurveDirectedCallout extends IfcDraughtingCallout { constructor(expressID, Contents) { super(expressID, Contents); this.Contents = Contents; this.type = 681481545; } } IFC2X32.IfcDimensionCurveDirectedCallout = IfcDimensionCurveDirectedCallout; class IfcDistributionElementType extends IfcElementType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.type = 3256556792; } } IFC2X32.IfcDistributionElementType = IfcDistributionElementType; class IfcDistributionFlowElementType extends IfcDistributionElementType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.type = 3849074793; } } IFC2X32.IfcDistributionFlowElementType = IfcDistributionFlowElementType; class IfcElectricalBaseProperties extends IfcEnergyProperties { constructor(expressID, GlobalId, OwnerHistory, Name, Description, EnergySequence, UserDefinedEnergySequence, ElectricCurrentType, InputVoltage, InputFrequency, FullLoadCurrent, MinimumCircuitCurrent, MaximumPowerInput, RatedPowerInput, InputPhase) { super(expressID, GlobalId, OwnerHistory, Name, Description, EnergySequence, UserDefinedEnergySequence); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.EnergySequence = EnergySequence; this.UserDefinedEnergySequence = UserDefinedEnergySequence; this.ElectricCurrentType = ElectricCurrentType; this.InputVoltage = InputVoltage; this.InputFrequency = InputFrequency; this.FullLoadCurrent = FullLoadCurrent; this.MinimumCircuitCurrent = MinimumCircuitCurrent; this.MaximumPowerInput = MaximumPowerInput; this.RatedPowerInput = RatedPowerInput; this.InputPhase = InputPhase; this.type = 360485395; } } IFC2X32.IfcElectricalBaseProperties = IfcElectricalBaseProperties; class IfcElement extends IfcProduct { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.type = 1758889154; } } IFC2X32.IfcElement = IfcElement; class IfcElementAssembly extends IfcElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, AssemblyPlace, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.AssemblyPlace = AssemblyPlace; this.PredefinedType = PredefinedType; this.type = 4123344466; } } IFC2X32.IfcElementAssembly = IfcElementAssembly; class IfcElementComponent extends IfcElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.type = 1623761950; } } IFC2X32.IfcElementComponent = IfcElementComponent; class IfcElementComponentType extends IfcElementType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.type = 2590856083; } } IFC2X32.IfcElementComponentType = IfcElementComponentType; class IfcEllipse extends IfcConic { constructor(expressID, Position, SemiAxis1, SemiAxis2) { super(expressID, Position); this.Position = Position; this.SemiAxis1 = SemiAxis1; this.SemiAxis2 = SemiAxis2; this.type = 1704287377; } } IFC2X32.IfcEllipse = IfcEllipse; class IfcEnergyConversionDeviceType extends IfcDistributionFlowElementType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.type = 2107101300; } } IFC2X32.IfcEnergyConversionDeviceType = IfcEnergyConversionDeviceType; class IfcEquipmentElement extends IfcElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.type = 1962604670; } } IFC2X32.IfcEquipmentElement = IfcEquipmentElement; class IfcEquipmentStandard extends IfcControl { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.type = 3272907226; } } IFC2X32.IfcEquipmentStandard = IfcEquipmentStandard; class IfcEvaporativeCoolerType extends IfcEnergyConversionDeviceType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 3174744832; } } IFC2X32.IfcEvaporativeCoolerType = IfcEvaporativeCoolerType; class IfcEvaporatorType extends IfcEnergyConversionDeviceType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 3390157468; } } IFC2X32.IfcEvaporatorType = IfcEvaporatorType; class IfcFacetedBrep extends IfcManifoldSolidBrep { constructor(expressID, Outer) { super(expressID, Outer); this.Outer = Outer; this.type = 807026263; } } IFC2X32.IfcFacetedBrep = IfcFacetedBrep; class IfcFacetedBrepWithVoids extends IfcManifoldSolidBrep { constructor(expressID, Outer, Voids) { super(expressID, Outer); this.Outer = Outer; this.Voids = Voids; this.type = 3737207727; } } IFC2X32.IfcFacetedBrepWithVoids = IfcFacetedBrepWithVoids; class IfcFastener extends IfcElementComponent { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.type = 647756555; } } IFC2X32.IfcFastener = IfcFastener; class IfcFastenerType extends IfcElementComponentType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.type = 2489546625; } } IFC2X32.IfcFastenerType = IfcFastenerType; class IfcFeatureElement extends IfcElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.type = 2827207264; } } IFC2X32.IfcFeatureElement = IfcFeatureElement; class IfcFeatureElementAddition extends IfcFeatureElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.type = 2143335405; } } IFC2X32.IfcFeatureElementAddition = IfcFeatureElementAddition; class IfcFeatureElementSubtraction extends IfcFeatureElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.type = 1287392070; } } IFC2X32.IfcFeatureElementSubtraction = IfcFeatureElementSubtraction; class IfcFlowControllerType extends IfcDistributionFlowElementType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.type = 3907093117; } } IFC2X32.IfcFlowControllerType = IfcFlowControllerType; class IfcFlowFittingType extends IfcDistributionFlowElementType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.type = 3198132628; } } IFC2X32.IfcFlowFittingType = IfcFlowFittingType; class IfcFlowMeterType extends IfcFlowControllerType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 3815607619; } } IFC2X32.IfcFlowMeterType = IfcFlowMeterType; class IfcFlowMovingDeviceType extends IfcDistributionFlowElementType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.type = 1482959167; } } IFC2X32.IfcFlowMovingDeviceType = IfcFlowMovingDeviceType; class IfcFlowSegmentType extends IfcDistributionFlowElementType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.type = 1834744321; } } IFC2X32.IfcFlowSegmentType = IfcFlowSegmentType; class IfcFlowStorageDeviceType extends IfcDistributionFlowElementType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.type = 1339347760; } } IFC2X32.IfcFlowStorageDeviceType = IfcFlowStorageDeviceType; class IfcFlowTerminalType extends IfcDistributionFlowElementType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.type = 2297155007; } } IFC2X32.IfcFlowTerminalType = IfcFlowTerminalType; class IfcFlowTreatmentDeviceType extends IfcDistributionFlowElementType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.type = 3009222698; } } IFC2X32.IfcFlowTreatmentDeviceType = IfcFlowTreatmentDeviceType; class IfcFurnishingElement extends IfcElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.type = 263784265; } } IFC2X32.IfcFurnishingElement = IfcFurnishingElement; class IfcFurnitureStandard extends IfcControl { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.type = 814719939; } } IFC2X32.IfcFurnitureStandard = IfcFurnitureStandard; class IfcGasTerminalType extends IfcFlowTerminalType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 200128114; } } IFC2X32.IfcGasTerminalType = IfcGasTerminalType; class IfcGrid extends IfcProduct { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, UAxes, VAxes, WAxes) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.UAxes = UAxes; this.VAxes = VAxes; this.WAxes = WAxes; this.type = 3009204131; } } IFC2X32.IfcGrid = IfcGrid; class IfcGroup extends IfcObject { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.type = 2706460486; } } IFC2X32.IfcGroup = IfcGroup; class IfcHeatExchangerType extends IfcEnergyConversionDeviceType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 1251058090; } } IFC2X32.IfcHeatExchangerType = IfcHeatExchangerType; class IfcHumidifierType extends IfcEnergyConversionDeviceType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 1806887404; } } IFC2X32.IfcHumidifierType = IfcHumidifierType; class IfcInventory extends IfcGroup { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, InventoryType, Jurisdiction, ResponsiblePersons, LastUpdateDate, CurrentValue, OriginalValue) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.InventoryType = InventoryType; this.Jurisdiction = Jurisdiction; this.ResponsiblePersons = ResponsiblePersons; this.LastUpdateDate = LastUpdateDate; this.CurrentValue = CurrentValue; this.OriginalValue = OriginalValue; this.type = 2391368822; } } IFC2X32.IfcInventory = IfcInventory; class IfcJunctionBoxType extends IfcFlowFittingType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 4288270099; } } IFC2X32.IfcJunctionBoxType = IfcJunctionBoxType; class IfcLaborResource extends IfcConstructionResource { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ResourceIdentifier, ResourceGroup, ResourceConsumption, BaseQuantity, SkillSet) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ResourceIdentifier, ResourceGroup, ResourceConsumption, BaseQuantity); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ResourceIdentifier = ResourceIdentifier; this.ResourceGroup = ResourceGroup; this.ResourceConsumption = ResourceConsumption; this.BaseQuantity = BaseQuantity; this.SkillSet = SkillSet; this.type = 3827777499; } } IFC2X32.IfcLaborResource = IfcLaborResource; class IfcLampType extends IfcFlowTerminalType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 1051575348; } } IFC2X32.IfcLampType = IfcLampType; class IfcLightFixtureType extends IfcFlowTerminalType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 1161773419; } } IFC2X32.IfcLightFixtureType = IfcLightFixtureType; class IfcLinearDimension extends IfcDimensionCurveDirectedCallout { constructor(expressID, Contents) { super(expressID, Contents); this.Contents = Contents; this.type = 2506943328; } } IFC2X32.IfcLinearDimension = IfcLinearDimension; class IfcMechanicalFastener extends IfcFastener { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, NominalDiameter, NominalLength) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.NominalDiameter = NominalDiameter; this.NominalLength = NominalLength; this.type = 377706215; } } IFC2X32.IfcMechanicalFastener = IfcMechanicalFastener; class IfcMechanicalFastenerType extends IfcFastenerType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.type = 2108223431; } } IFC2X32.IfcMechanicalFastenerType = IfcMechanicalFastenerType; class IfcMemberType extends IfcBuildingElementType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 3181161470; } } IFC2X32.IfcMemberType = IfcMemberType; class IfcMotorConnectionType extends IfcEnergyConversionDeviceType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 977012517; } } IFC2X32.IfcMotorConnectionType = IfcMotorConnectionType; class IfcMove extends IfcTask { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, TaskId, Status, WorkMethod, IsMilestone, Priority, MoveFrom, MoveTo, PunchList) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, TaskId, Status, WorkMethod, IsMilestone, Priority); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.TaskId = TaskId; this.Status = Status; this.WorkMethod = WorkMethod; this.IsMilestone = IsMilestone; this.Priority = Priority; this.MoveFrom = MoveFrom; this.MoveTo = MoveTo; this.PunchList = PunchList; this.type = 1916936684; } } IFC2X32.IfcMove = IfcMove; class IfcOccupant extends IfcActor { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, TheActor, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, TheActor); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.TheActor = TheActor; this.PredefinedType = PredefinedType; this.type = 4143007308; } } IFC2X32.IfcOccupant = IfcOccupant; class IfcOpeningElement extends IfcFeatureElementSubtraction { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.type = 3588315303; } } IFC2X32.IfcOpeningElement = IfcOpeningElement; class IfcOrderAction extends IfcTask { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, TaskId, Status, WorkMethod, IsMilestone, Priority, ActionID) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, TaskId, Status, WorkMethod, IsMilestone, Priority); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.TaskId = TaskId; this.Status = Status; this.WorkMethod = WorkMethod; this.IsMilestone = IsMilestone; this.Priority = Priority; this.ActionID = ActionID; this.type = 3425660407; } } IFC2X32.IfcOrderAction = IfcOrderAction; class IfcOutletType extends IfcFlowTerminalType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 2837617999; } } IFC2X32.IfcOutletType = IfcOutletType; class IfcPerformanceHistory extends IfcControl { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, LifeCyclePhase) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.LifeCyclePhase = LifeCyclePhase; this.type = 2382730787; } } IFC2X32.IfcPerformanceHistory = IfcPerformanceHistory; class IfcPermit extends IfcControl { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, PermitID) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.PermitID = PermitID; this.type = 3327091369; } } IFC2X32.IfcPermit = IfcPermit; class IfcPipeFittingType extends IfcFlowFittingType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 804291784; } } IFC2X32.IfcPipeFittingType = IfcPipeFittingType; class IfcPipeSegmentType extends IfcFlowSegmentType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 4231323485; } } IFC2X32.IfcPipeSegmentType = IfcPipeSegmentType; class IfcPlateType extends IfcBuildingElementType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 4017108033; } } IFC2X32.IfcPlateType = IfcPlateType; class IfcPolyline extends IfcBoundedCurve { constructor(expressID, Points) { super(expressID); this.Points = Points; this.type = 3724593414; } } IFC2X32.IfcPolyline = IfcPolyline; class IfcPort extends IfcProduct { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.type = 3740093272; } } IFC2X32.IfcPort = IfcPort; class IfcProcedure extends IfcProcess { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ProcedureID, ProcedureType, UserDefinedProcedureType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ProcedureID = ProcedureID; this.ProcedureType = ProcedureType; this.UserDefinedProcedureType = UserDefinedProcedureType; this.type = 2744685151; } } IFC2X32.IfcProcedure = IfcProcedure; class IfcProjectOrder extends IfcControl { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ID, PredefinedType, Status) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ID = ID; this.PredefinedType = PredefinedType; this.Status = Status; this.type = 2904328755; } } IFC2X32.IfcProjectOrder = IfcProjectOrder; class IfcProjectOrderRecord extends IfcControl { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Records, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.Records = Records; this.PredefinedType = PredefinedType; this.type = 3642467123; } } IFC2X32.IfcProjectOrderRecord = IfcProjectOrderRecord; class IfcProjectionElement extends IfcFeatureElementAddition { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.type = 3651124850; } } IFC2X32.IfcProjectionElement = IfcProjectionElement; class IfcProtectiveDeviceType extends IfcFlowControllerType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 1842657554; } } IFC2X32.IfcProtectiveDeviceType = IfcProtectiveDeviceType; class IfcPumpType extends IfcFlowMovingDeviceType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 2250791053; } } IFC2X32.IfcPumpType = IfcPumpType; class IfcRadiusDimension extends IfcDimensionCurveDirectedCallout { constructor(expressID, Contents) { super(expressID, Contents); this.Contents = Contents; this.type = 3248260540; } } IFC2X32.IfcRadiusDimension = IfcRadiusDimension; class IfcRailingType extends IfcBuildingElementType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 2893384427; } } IFC2X32.IfcRailingType = IfcRailingType; class IfcRampFlightType extends IfcBuildingElementType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 2324767716; } } IFC2X32.IfcRampFlightType = IfcRampFlightType; class IfcRelAggregates extends IfcRelDecomposes { constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingObject, RelatedObjects) { super(expressID, GlobalId, OwnerHistory, Name, Description, RelatingObject, RelatedObjects); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.RelatingObject = RelatingObject; this.RelatedObjects = RelatedObjects; this.type = 160246688; } } IFC2X32.IfcRelAggregates = IfcRelAggregates; class IfcRelAssignsTasks extends IfcRelAssignsToControl { constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingControl, TimeForTask) { super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingControl); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.RelatedObjects = RelatedObjects; this.RelatedObjectsType = RelatedObjectsType; this.RelatingControl = RelatingControl; this.TimeForTask = TimeForTask; this.type = 2863920197; } } IFC2X32.IfcRelAssignsTasks = IfcRelAssignsTasks; class IfcSanitaryTerminalType extends IfcFlowTerminalType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 1768891740; } } IFC2X32.IfcSanitaryTerminalType = IfcSanitaryTerminalType; class IfcScheduleTimeControl extends IfcControl { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ActualStart, EarlyStart, LateStart, ScheduleStart, ActualFinish, EarlyFinish, LateFinish, ScheduleFinish, ScheduleDuration, ActualDuration, RemainingTime, FreeFloat, TotalFloat, IsCritical, StatusTime, StartFloat, FinishFloat, Completion) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ActualStart = ActualStart; this.EarlyStart = EarlyStart; this.LateStart = LateStart; this.ScheduleStart = ScheduleStart; this.ActualFinish = ActualFinish; this.EarlyFinish = EarlyFinish; this.LateFinish = LateFinish; this.ScheduleFinish = ScheduleFinish; this.ScheduleDuration = ScheduleDuration; this.ActualDuration = ActualDuration; this.RemainingTime = RemainingTime; this.FreeFloat = FreeFloat; this.TotalFloat = TotalFloat; this.IsCritical = IsCritical; this.StatusTime = StatusTime; this.StartFloat = StartFloat; this.FinishFloat = FinishFloat; this.Completion = Completion; this.type = 3517283431; } } IFC2X32.IfcScheduleTimeControl = IfcScheduleTimeControl; class IfcServiceLife extends IfcControl { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ServiceLifeType, ServiceLifeDuration) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ServiceLifeType = ServiceLifeType; this.ServiceLifeDuration = ServiceLifeDuration; this.type = 4105383287; } } IFC2X32.IfcServiceLife = IfcServiceLife; class IfcSite extends IfcSpatialStructureElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, RefLatitude, RefLongitude, RefElevation, LandTitleNumber, SiteAddress) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.LongName = LongName; this.CompositionType = CompositionType; this.RefLatitude = RefLatitude; this.RefLongitude = RefLongitude; this.RefElevation = RefElevation; this.LandTitleNumber = LandTitleNumber; this.SiteAddress = SiteAddress; this.type = 4097777520; } } IFC2X32.IfcSite = IfcSite; class IfcSlabType extends IfcBuildingElementType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 2533589738; } } IFC2X32.IfcSlabType = IfcSlabType; class IfcSpace extends IfcSpatialStructureElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, InteriorOrExteriorSpace, ElevationWithFlooring) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.LongName = LongName; this.CompositionType = CompositionType; this.InteriorOrExteriorSpace = InteriorOrExteriorSpace; this.ElevationWithFlooring = ElevationWithFlooring; this.type = 3856911033; } } IFC2X32.IfcSpace = IfcSpace; class IfcSpaceHeaterType extends IfcEnergyConversionDeviceType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 1305183839; } } IFC2X32.IfcSpaceHeaterType = IfcSpaceHeaterType; class IfcSpaceProgram extends IfcControl { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, SpaceProgramIdentifier, MaxRequiredArea, MinRequiredArea, RequestedLocation, StandardRequiredArea) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.SpaceProgramIdentifier = SpaceProgramIdentifier; this.MaxRequiredArea = MaxRequiredArea; this.MinRequiredArea = MinRequiredArea; this.RequestedLocation = RequestedLocation; this.StandardRequiredArea = StandardRequiredArea; this.type = 652456506; } } IFC2X32.IfcSpaceProgram = IfcSpaceProgram; class IfcSpaceType extends IfcSpatialStructureElementType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 3812236995; } } IFC2X32.IfcSpaceType = IfcSpaceType; class IfcStackTerminalType extends IfcFlowTerminalType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 3112655638; } } IFC2X32.IfcStackTerminalType = IfcStackTerminalType; class IfcStairFlightType extends IfcBuildingElementType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 1039846685; } } IFC2X32.IfcStairFlightType = IfcStairFlightType; class IfcStructuralAction extends IfcStructuralActivity { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, CausedBy) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.AppliedLoad = AppliedLoad; this.GlobalOrLocal = GlobalOrLocal; this.DestabilizingLoad = DestabilizingLoad; this.CausedBy = CausedBy; this.type = 682877961; } } IFC2X32.IfcStructuralAction = IfcStructuralAction; class IfcStructuralConnection extends IfcStructuralItem { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.AppliedCondition = AppliedCondition; this.type = 1179482911; } } IFC2X32.IfcStructuralConnection = IfcStructuralConnection; class IfcStructuralCurveConnection extends IfcStructuralConnection { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.AppliedCondition = AppliedCondition; this.type = 4243806635; } } IFC2X32.IfcStructuralCurveConnection = IfcStructuralCurveConnection; class IfcStructuralCurveMember extends IfcStructuralMember { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.PredefinedType = PredefinedType; this.type = 214636428; } } IFC2X32.IfcStructuralCurveMember = IfcStructuralCurveMember; class IfcStructuralCurveMemberVarying extends IfcStructuralCurveMember { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.PredefinedType = PredefinedType; this.type = 2445595289; } } IFC2X32.IfcStructuralCurveMemberVarying = IfcStructuralCurveMemberVarying; class IfcStructuralLinearAction extends IfcStructuralAction { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, CausedBy, ProjectedOrTrue) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, CausedBy); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.AppliedLoad = AppliedLoad; this.GlobalOrLocal = GlobalOrLocal; this.DestabilizingLoad = DestabilizingLoad; this.CausedBy = CausedBy; this.ProjectedOrTrue = ProjectedOrTrue; this.type = 1807405624; } } IFC2X32.IfcStructuralLinearAction = IfcStructuralLinearAction; class IfcStructuralLinearActionVarying extends IfcStructuralLinearAction { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, CausedBy, ProjectedOrTrue, VaryingAppliedLoadLocation, SubsequentAppliedLoads) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, CausedBy, ProjectedOrTrue); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.AppliedLoad = AppliedLoad; this.GlobalOrLocal = GlobalOrLocal; this.DestabilizingLoad = DestabilizingLoad; this.CausedBy = CausedBy; this.ProjectedOrTrue = ProjectedOrTrue; this.VaryingAppliedLoadLocation = VaryingAppliedLoadLocation; this.SubsequentAppliedLoads = SubsequentAppliedLoads; this.type = 1721250024; } } IFC2X32.IfcStructuralLinearActionVarying = IfcStructuralLinearActionVarying; class IfcStructuralLoadGroup extends IfcGroup { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, PredefinedType, ActionType, ActionSource, Coefficient, Purpose) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.PredefinedType = PredefinedType; this.ActionType = ActionType; this.ActionSource = ActionSource; this.Coefficient = Coefficient; this.Purpose = Purpose; this.type = 1252848954; } } IFC2X32.IfcStructuralLoadGroup = IfcStructuralLoadGroup; class IfcStructuralPlanarAction extends IfcStructuralAction { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, CausedBy, ProjectedOrTrue) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, CausedBy); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.AppliedLoad = AppliedLoad; this.GlobalOrLocal = GlobalOrLocal; this.DestabilizingLoad = DestabilizingLoad; this.CausedBy = CausedBy; this.ProjectedOrTrue = ProjectedOrTrue; this.type = 1621171031; } } IFC2X32.IfcStructuralPlanarAction = IfcStructuralPlanarAction; class IfcStructuralPlanarActionVarying extends IfcStructuralPlanarAction { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, CausedBy, ProjectedOrTrue, VaryingAppliedLoadLocation, SubsequentAppliedLoads) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, CausedBy, ProjectedOrTrue); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.AppliedLoad = AppliedLoad; this.GlobalOrLocal = GlobalOrLocal; this.DestabilizingLoad = DestabilizingLoad; this.CausedBy = CausedBy; this.ProjectedOrTrue = ProjectedOrTrue; this.VaryingAppliedLoadLocation = VaryingAppliedLoadLocation; this.SubsequentAppliedLoads = SubsequentAppliedLoads; this.type = 3987759626; } } IFC2X32.IfcStructuralPlanarActionVarying = IfcStructuralPlanarActionVarying; class IfcStructuralPointAction extends IfcStructuralAction { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, CausedBy) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, CausedBy); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.AppliedLoad = AppliedLoad; this.GlobalOrLocal = GlobalOrLocal; this.DestabilizingLoad = DestabilizingLoad; this.CausedBy = CausedBy; this.type = 2082059205; } } IFC2X32.IfcStructuralPointAction = IfcStructuralPointAction; class IfcStructuralPointConnection extends IfcStructuralConnection { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.AppliedCondition = AppliedCondition; this.type = 734778138; } } IFC2X32.IfcStructuralPointConnection = IfcStructuralPointConnection; class IfcStructuralPointReaction extends IfcStructuralReaction { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.AppliedLoad = AppliedLoad; this.GlobalOrLocal = GlobalOrLocal; this.type = 1235345126; } } IFC2X32.IfcStructuralPointReaction = IfcStructuralPointReaction; class IfcStructuralResultGroup extends IfcGroup { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, TheoryType, ResultForLoadGroup, IsLinear) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.TheoryType = TheoryType; this.ResultForLoadGroup = ResultForLoadGroup; this.IsLinear = IsLinear; this.type = 2986769608; } } IFC2X32.IfcStructuralResultGroup = IfcStructuralResultGroup; class IfcStructuralSurfaceConnection extends IfcStructuralConnection { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.AppliedCondition = AppliedCondition; this.type = 1975003073; } } IFC2X32.IfcStructuralSurfaceConnection = IfcStructuralSurfaceConnection; class IfcSubContractResource extends IfcConstructionResource { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ResourceIdentifier, ResourceGroup, ResourceConsumption, BaseQuantity, SubContractor, JobDescription) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ResourceIdentifier, ResourceGroup, ResourceConsumption, BaseQuantity); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ResourceIdentifier = ResourceIdentifier; this.ResourceGroup = ResourceGroup; this.ResourceConsumption = ResourceConsumption; this.BaseQuantity = BaseQuantity; this.SubContractor = SubContractor; this.JobDescription = JobDescription; this.type = 148013059; } } IFC2X32.IfcSubContractResource = IfcSubContractResource; class IfcSwitchingDeviceType extends IfcFlowControllerType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 2315554128; } } IFC2X32.IfcSwitchingDeviceType = IfcSwitchingDeviceType; class IfcSystem extends IfcGroup { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.type = 2254336722; } } IFC2X32.IfcSystem = IfcSystem; class IfcTankType extends IfcFlowStorageDeviceType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 5716631; } } IFC2X32.IfcTankType = IfcTankType; class IfcTimeSeriesSchedule extends IfcControl { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ApplicableDates, TimeSeriesScheduleType, TimeSeries) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ApplicableDates = ApplicableDates; this.TimeSeriesScheduleType = TimeSeriesScheduleType; this.TimeSeries = TimeSeries; this.type = 1637806684; } } IFC2X32.IfcTimeSeriesSchedule = IfcTimeSeriesSchedule; class IfcTransformerType extends IfcEnergyConversionDeviceType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 1692211062; } } IFC2X32.IfcTransformerType = IfcTransformerType; class IfcTransportElement extends IfcElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, OperationType, CapacityByWeight, CapacityByNumber) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.OperationType = OperationType; this.CapacityByWeight = CapacityByWeight; this.CapacityByNumber = CapacityByNumber; this.type = 1620046519; } } IFC2X32.IfcTransportElement = IfcTransportElement; class IfcTrimmedCurve extends IfcBoundedCurve { constructor(expressID, BasisCurve, Trim1, Trim2, SenseAgreement, MasterRepresentation) { super(expressID); this.BasisCurve = BasisCurve; this.Trim1 = Trim1; this.Trim2 = Trim2; this.SenseAgreement = SenseAgreement; this.MasterRepresentation = MasterRepresentation; this.type = 3593883385; } } IFC2X32.IfcTrimmedCurve = IfcTrimmedCurve; class IfcTubeBundleType extends IfcEnergyConversionDeviceType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 1600972822; } } IFC2X32.IfcTubeBundleType = IfcTubeBundleType; class IfcUnitaryEquipmentType extends IfcEnergyConversionDeviceType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 1911125066; } } IFC2X32.IfcUnitaryEquipmentType = IfcUnitaryEquipmentType; class IfcValveType extends IfcFlowControllerType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 728799441; } } IFC2X32.IfcValveType = IfcValveType; class IfcVirtualElement extends IfcElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.type = 2769231204; } } IFC2X32.IfcVirtualElement = IfcVirtualElement; class IfcWallType extends IfcBuildingElementType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 1898987631; } } IFC2X32.IfcWallType = IfcWallType; class IfcWasteTerminalType extends IfcFlowTerminalType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 1133259667; } } IFC2X32.IfcWasteTerminalType = IfcWasteTerminalType; class IfcWorkControl extends IfcControl { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identifier, CreationDate, Creators, Purpose, Duration, TotalFloat, StartTime, FinishTime, WorkControlType, UserDefinedControlType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.Identifier = Identifier; this.CreationDate = CreationDate; this.Creators = Creators; this.Purpose = Purpose; this.Duration = Duration; this.TotalFloat = TotalFloat; this.StartTime = StartTime; this.FinishTime = FinishTime; this.WorkControlType = WorkControlType; this.UserDefinedControlType = UserDefinedControlType; this.type = 1028945134; } } IFC2X32.IfcWorkControl = IfcWorkControl; class IfcWorkPlan extends IfcWorkControl { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identifier, CreationDate, Creators, Purpose, Duration, TotalFloat, StartTime, FinishTime, WorkControlType, UserDefinedControlType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identifier, CreationDate, Creators, Purpose, Duration, TotalFloat, StartTime, FinishTime, WorkControlType, UserDefinedControlType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.Identifier = Identifier; this.CreationDate = CreationDate; this.Creators = Creators; this.Purpose = Purpose; this.Duration = Duration; this.TotalFloat = TotalFloat; this.StartTime = StartTime; this.FinishTime = FinishTime; this.WorkControlType = WorkControlType; this.UserDefinedControlType = UserDefinedControlType; this.type = 4218914973; } } IFC2X32.IfcWorkPlan = IfcWorkPlan; class IfcWorkSchedule extends IfcWorkControl { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identifier, CreationDate, Creators, Purpose, Duration, TotalFloat, StartTime, FinishTime, WorkControlType, UserDefinedControlType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identifier, CreationDate, Creators, Purpose, Duration, TotalFloat, StartTime, FinishTime, WorkControlType, UserDefinedControlType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.Identifier = Identifier; this.CreationDate = CreationDate; this.Creators = Creators; this.Purpose = Purpose; this.Duration = Duration; this.TotalFloat = TotalFloat; this.StartTime = StartTime; this.FinishTime = FinishTime; this.WorkControlType = WorkControlType; this.UserDefinedControlType = UserDefinedControlType; this.type = 3342526732; } } IFC2X32.IfcWorkSchedule = IfcWorkSchedule; class IfcZone extends IfcGroup { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.type = 1033361043; } } IFC2X32.IfcZone = IfcZone; class Ifc2DCompositeCurve extends IfcCompositeCurve { constructor(expressID, Segments, SelfIntersect) { super(expressID, Segments, SelfIntersect); this.Segments = Segments; this.SelfIntersect = SelfIntersect; this.type = 1213861670; } } IFC2X32.Ifc2DCompositeCurve = Ifc2DCompositeCurve; class IfcActionRequest extends IfcControl { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, RequestID) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.RequestID = RequestID; this.type = 3821786052; } } IFC2X32.IfcActionRequest = IfcActionRequest; class IfcAirTerminalBoxType extends IfcFlowControllerType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 1411407467; } } IFC2X32.IfcAirTerminalBoxType = IfcAirTerminalBoxType; class IfcAirTerminalType extends IfcFlowTerminalType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 3352864051; } } IFC2X32.IfcAirTerminalType = IfcAirTerminalType; class IfcAirToAirHeatRecoveryType extends IfcEnergyConversionDeviceType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 1871374353; } } IFC2X32.IfcAirToAirHeatRecoveryType = IfcAirToAirHeatRecoveryType; class IfcAngularDimension extends IfcDimensionCurveDirectedCallout { constructor(expressID, Contents) { super(expressID, Contents); this.Contents = Contents; this.type = 2470393545; } } IFC2X32.IfcAngularDimension = IfcAngularDimension; class IfcAsset extends IfcGroup { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, AssetID, OriginalValue, CurrentValue, TotalReplacementCost, Owner, User, ResponsiblePerson, IncorporationDate, DepreciatedValue) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.AssetID = AssetID; this.OriginalValue = OriginalValue; this.CurrentValue = CurrentValue; this.TotalReplacementCost = TotalReplacementCost; this.Owner = Owner; this.User = User; this.ResponsiblePerson = ResponsiblePerson; this.IncorporationDate = IncorporationDate; this.DepreciatedValue = DepreciatedValue; this.type = 3460190687; } } IFC2X32.IfcAsset = IfcAsset; class IfcBSplineCurve extends IfcBoundedCurve { constructor(expressID, Degree, ControlPointsList, CurveForm, ClosedCurve, SelfIntersect) { super(expressID); this.Degree = Degree; this.ControlPointsList = ControlPointsList; this.CurveForm = CurveForm; this.ClosedCurve = ClosedCurve; this.SelfIntersect = SelfIntersect; this.type = 1967976161; } } IFC2X32.IfcBSplineCurve = IfcBSplineCurve; class IfcBeamType extends IfcBuildingElementType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 819618141; } } IFC2X32.IfcBeamType = IfcBeamType; class IfcBezierCurve extends IfcBSplineCurve { constructor(expressID, Degree, ControlPointsList, CurveForm, ClosedCurve, SelfIntersect) { super(expressID, Degree, ControlPointsList, CurveForm, ClosedCurve, SelfIntersect); this.Degree = Degree; this.ControlPointsList = ControlPointsList; this.CurveForm = CurveForm; this.ClosedCurve = ClosedCurve; this.SelfIntersect = SelfIntersect; this.type = 1916977116; } } IFC2X32.IfcBezierCurve = IfcBezierCurve; class IfcBoilerType extends IfcEnergyConversionDeviceType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 231477066; } } IFC2X32.IfcBoilerType = IfcBoilerType; class IfcBuildingElement extends IfcElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.type = 3299480353; } } IFC2X32.IfcBuildingElement = IfcBuildingElement; class IfcBuildingElementComponent extends IfcBuildingElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.type = 52481810; } } IFC2X32.IfcBuildingElementComponent = IfcBuildingElementComponent; class IfcBuildingElementPart extends IfcBuildingElementComponent { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.type = 2979338954; } } IFC2X32.IfcBuildingElementPart = IfcBuildingElementPart; class IfcBuildingElementProxy extends IfcBuildingElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, CompositionType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.CompositionType = CompositionType; this.type = 1095909175; } } IFC2X32.IfcBuildingElementProxy = IfcBuildingElementProxy; class IfcBuildingElementProxyType extends IfcBuildingElementType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 1909888760; } } IFC2X32.IfcBuildingElementProxyType = IfcBuildingElementProxyType; class IfcCableCarrierFittingType extends IfcFlowFittingType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 395041908; } } IFC2X32.IfcCableCarrierFittingType = IfcCableCarrierFittingType; class IfcCableCarrierSegmentType extends IfcFlowSegmentType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 3293546465; } } IFC2X32.IfcCableCarrierSegmentType = IfcCableCarrierSegmentType; class IfcCableSegmentType extends IfcFlowSegmentType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 1285652485; } } IFC2X32.IfcCableSegmentType = IfcCableSegmentType; class IfcChillerType extends IfcEnergyConversionDeviceType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 2951183804; } } IFC2X32.IfcChillerType = IfcChillerType; class IfcCircle extends IfcConic { constructor(expressID, Position, Radius) { super(expressID, Position); this.Position = Position; this.Radius = Radius; this.type = 2611217952; } } IFC2X32.IfcCircle = IfcCircle; class IfcCoilType extends IfcEnergyConversionDeviceType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 2301859152; } } IFC2X32.IfcCoilType = IfcCoilType; class IfcColumn extends IfcBuildingElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.type = 843113511; } } IFC2X32.IfcColumn = IfcColumn; class IfcCompressorType extends IfcFlowMovingDeviceType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 3850581409; } } IFC2X32.IfcCompressorType = IfcCompressorType; class IfcCondenserType extends IfcEnergyConversionDeviceType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 2816379211; } } IFC2X32.IfcCondenserType = IfcCondenserType; class IfcCondition extends IfcGroup { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.type = 2188551683; } } IFC2X32.IfcCondition = IfcCondition; class IfcConditionCriterion extends IfcControl { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Criterion, CriterionDateTime) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.Criterion = Criterion; this.CriterionDateTime = CriterionDateTime; this.type = 1163958913; } } IFC2X32.IfcConditionCriterion = IfcConditionCriterion; class IfcConstructionEquipmentResource extends IfcConstructionResource { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ResourceIdentifier, ResourceGroup, ResourceConsumption, BaseQuantity) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ResourceIdentifier, ResourceGroup, ResourceConsumption, BaseQuantity); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ResourceIdentifier = ResourceIdentifier; this.ResourceGroup = ResourceGroup; this.ResourceConsumption = ResourceConsumption; this.BaseQuantity = BaseQuantity; this.type = 3898045240; } } IFC2X32.IfcConstructionEquipmentResource = IfcConstructionEquipmentResource; class IfcConstructionMaterialResource extends IfcConstructionResource { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ResourceIdentifier, ResourceGroup, ResourceConsumption, BaseQuantity, Suppliers, UsageRatio) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ResourceIdentifier, ResourceGroup, ResourceConsumption, BaseQuantity); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ResourceIdentifier = ResourceIdentifier; this.ResourceGroup = ResourceGroup; this.ResourceConsumption = ResourceConsumption; this.BaseQuantity = BaseQuantity; this.Suppliers = Suppliers; this.UsageRatio = UsageRatio; this.type = 1060000209; } } IFC2X32.IfcConstructionMaterialResource = IfcConstructionMaterialResource; class IfcConstructionProductResource extends IfcConstructionResource { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ResourceIdentifier, ResourceGroup, ResourceConsumption, BaseQuantity) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ResourceIdentifier, ResourceGroup, ResourceConsumption, BaseQuantity); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ResourceIdentifier = ResourceIdentifier; this.ResourceGroup = ResourceGroup; this.ResourceConsumption = ResourceConsumption; this.BaseQuantity = BaseQuantity; this.type = 488727124; } } IFC2X32.IfcConstructionProductResource = IfcConstructionProductResource; class IfcCooledBeamType extends IfcEnergyConversionDeviceType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 335055490; } } IFC2X32.IfcCooledBeamType = IfcCooledBeamType; class IfcCoolingTowerType extends IfcEnergyConversionDeviceType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 2954562838; } } IFC2X32.IfcCoolingTowerType = IfcCoolingTowerType; class IfcCovering extends IfcBuildingElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 1973544240; } } IFC2X32.IfcCovering = IfcCovering; class IfcCurtainWall extends IfcBuildingElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.type = 3495092785; } } IFC2X32.IfcCurtainWall = IfcCurtainWall; class IfcDamperType extends IfcFlowControllerType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 3961806047; } } IFC2X32.IfcDamperType = IfcDamperType; class IfcDiameterDimension extends IfcDimensionCurveDirectedCallout { constructor(expressID, Contents) { super(expressID, Contents); this.Contents = Contents; this.type = 4147604152; } } IFC2X32.IfcDiameterDimension = IfcDiameterDimension; class IfcDiscreteAccessory extends IfcElementComponent { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.type = 1335981549; } } IFC2X32.IfcDiscreteAccessory = IfcDiscreteAccessory; class IfcDiscreteAccessoryType extends IfcElementComponentType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.type = 2635815018; } } IFC2X32.IfcDiscreteAccessoryType = IfcDiscreteAccessoryType; class IfcDistributionChamberElementType extends IfcDistributionFlowElementType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 1599208980; } } IFC2X32.IfcDistributionChamberElementType = IfcDistributionChamberElementType; class IfcDistributionControlElementType extends IfcDistributionElementType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.type = 2063403501; } } IFC2X32.IfcDistributionControlElementType = IfcDistributionControlElementType; class IfcDistributionElement extends IfcElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.type = 1945004755; } } IFC2X32.IfcDistributionElement = IfcDistributionElement; class IfcDistributionFlowElement extends IfcDistributionElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.type = 3040386961; } } IFC2X32.IfcDistributionFlowElement = IfcDistributionFlowElement; class IfcDistributionPort extends IfcPort { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, FlowDirection) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.FlowDirection = FlowDirection; this.type = 3041715199; } } IFC2X32.IfcDistributionPort = IfcDistributionPort; class IfcDoor extends IfcBuildingElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, OverallHeight, OverallWidth) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.OverallHeight = OverallHeight; this.OverallWidth = OverallWidth; this.type = 395920057; } } IFC2X32.IfcDoor = IfcDoor; class IfcDuctFittingType extends IfcFlowFittingType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 869906466; } } IFC2X32.IfcDuctFittingType = IfcDuctFittingType; class IfcDuctSegmentType extends IfcFlowSegmentType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 3760055223; } } IFC2X32.IfcDuctSegmentType = IfcDuctSegmentType; class IfcDuctSilencerType extends IfcFlowTreatmentDeviceType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 2030761528; } } IFC2X32.IfcDuctSilencerType = IfcDuctSilencerType; class IfcEdgeFeature extends IfcFeatureElementSubtraction { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, FeatureLength) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.FeatureLength = FeatureLength; this.type = 855621170; } } IFC2X32.IfcEdgeFeature = IfcEdgeFeature; class IfcElectricApplianceType extends IfcFlowTerminalType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 663422040; } } IFC2X32.IfcElectricApplianceType = IfcElectricApplianceType; class IfcElectricFlowStorageDeviceType extends IfcFlowStorageDeviceType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 3277789161; } } IFC2X32.IfcElectricFlowStorageDeviceType = IfcElectricFlowStorageDeviceType; class IfcElectricGeneratorType extends IfcEnergyConversionDeviceType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 1534661035; } } IFC2X32.IfcElectricGeneratorType = IfcElectricGeneratorType; class IfcElectricHeaterType extends IfcFlowTerminalType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 1365060375; } } IFC2X32.IfcElectricHeaterType = IfcElectricHeaterType; class IfcElectricMotorType extends IfcEnergyConversionDeviceType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 1217240411; } } IFC2X32.IfcElectricMotorType = IfcElectricMotorType; class IfcElectricTimeControlType extends IfcFlowControllerType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 712377611; } } IFC2X32.IfcElectricTimeControlType = IfcElectricTimeControlType; class IfcElectricalCircuit extends IfcSystem { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.type = 1634875225; } } IFC2X32.IfcElectricalCircuit = IfcElectricalCircuit; class IfcElectricalElement extends IfcElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.type = 857184966; } } IFC2X32.IfcElectricalElement = IfcElectricalElement; class IfcEnergyConversionDevice extends IfcDistributionFlowElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.type = 1658829314; } } IFC2X32.IfcEnergyConversionDevice = IfcEnergyConversionDevice; class IfcFanType extends IfcFlowMovingDeviceType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 346874300; } } IFC2X32.IfcFanType = IfcFanType; class IfcFilterType extends IfcFlowTreatmentDeviceType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 1810631287; } } IFC2X32.IfcFilterType = IfcFilterType; class IfcFireSuppressionTerminalType extends IfcFlowTerminalType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 4222183408; } } IFC2X32.IfcFireSuppressionTerminalType = IfcFireSuppressionTerminalType; class IfcFlowController extends IfcDistributionFlowElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.type = 2058353004; } } IFC2X32.IfcFlowController = IfcFlowController; class IfcFlowFitting extends IfcDistributionFlowElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.type = 4278956645; } } IFC2X32.IfcFlowFitting = IfcFlowFitting; class IfcFlowInstrumentType extends IfcDistributionControlElementType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 4037862832; } } IFC2X32.IfcFlowInstrumentType = IfcFlowInstrumentType; class IfcFlowMovingDevice extends IfcDistributionFlowElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.type = 3132237377; } } IFC2X32.IfcFlowMovingDevice = IfcFlowMovingDevice; class IfcFlowSegment extends IfcDistributionFlowElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.type = 987401354; } } IFC2X32.IfcFlowSegment = IfcFlowSegment; class IfcFlowStorageDevice extends IfcDistributionFlowElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.type = 707683696; } } IFC2X32.IfcFlowStorageDevice = IfcFlowStorageDevice; class IfcFlowTerminal extends IfcDistributionFlowElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.type = 2223149337; } } IFC2X32.IfcFlowTerminal = IfcFlowTerminal; class IfcFlowTreatmentDevice extends IfcDistributionFlowElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.type = 3508470533; } } IFC2X32.IfcFlowTreatmentDevice = IfcFlowTreatmentDevice; class IfcFooting extends IfcBuildingElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 900683007; } } IFC2X32.IfcFooting = IfcFooting; class IfcMember extends IfcBuildingElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.type = 1073191201; } } IFC2X32.IfcMember = IfcMember; class IfcPile extends IfcBuildingElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType, ConstructionType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.ConstructionType = ConstructionType; this.type = 1687234759; } } IFC2X32.IfcPile = IfcPile; class IfcPlate extends IfcBuildingElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.type = 3171933400; } } IFC2X32.IfcPlate = IfcPlate; class IfcRailing extends IfcBuildingElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 2262370178; } } IFC2X32.IfcRailing = IfcRailing; class IfcRamp extends IfcBuildingElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, ShapeType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.ShapeType = ShapeType; this.type = 3024970846; } } IFC2X32.IfcRamp = IfcRamp; class IfcRampFlight extends IfcBuildingElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.type = 3283111854; } } IFC2X32.IfcRampFlight = IfcRampFlight; class IfcRationalBezierCurve extends IfcBezierCurve { constructor(expressID, Degree, ControlPointsList, CurveForm, ClosedCurve, SelfIntersect, WeightsData) { super(expressID, Degree, ControlPointsList, CurveForm, ClosedCurve, SelfIntersect); this.Degree = Degree; this.ControlPointsList = ControlPointsList; this.CurveForm = CurveForm; this.ClosedCurve = ClosedCurve; this.SelfIntersect = SelfIntersect; this.WeightsData = WeightsData; this.type = 3055160366; } } IFC2X32.IfcRationalBezierCurve = IfcRationalBezierCurve; class IfcReinforcingElement extends IfcBuildingElementComponent { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.SteelGrade = SteelGrade; this.type = 3027567501; } } IFC2X32.IfcReinforcingElement = IfcReinforcingElement; class IfcReinforcingMesh extends IfcReinforcingElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade, MeshLength, MeshWidth, LongitudinalBarNominalDiameter, TransverseBarNominalDiameter, LongitudinalBarCrossSectionArea, TransverseBarCrossSectionArea, LongitudinalBarSpacing, TransverseBarSpacing) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.SteelGrade = SteelGrade; this.MeshLength = MeshLength; this.MeshWidth = MeshWidth; this.LongitudinalBarNominalDiameter = LongitudinalBarNominalDiameter; this.TransverseBarNominalDiameter = TransverseBarNominalDiameter; this.LongitudinalBarCrossSectionArea = LongitudinalBarCrossSectionArea; this.TransverseBarCrossSectionArea = TransverseBarCrossSectionArea; this.LongitudinalBarSpacing = LongitudinalBarSpacing; this.TransverseBarSpacing = TransverseBarSpacing; this.type = 2320036040; } } IFC2X32.IfcReinforcingMesh = IfcReinforcingMesh; class IfcRoof extends IfcBuildingElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, ShapeType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.ShapeType = ShapeType; this.type = 2016517767; } } IFC2X32.IfcRoof = IfcRoof; class IfcRoundedEdgeFeature extends IfcEdgeFeature { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, FeatureLength, Radius) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, FeatureLength); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.FeatureLength = FeatureLength; this.Radius = Radius; this.type = 1376911519; } } IFC2X32.IfcRoundedEdgeFeature = IfcRoundedEdgeFeature; class IfcSensorType extends IfcDistributionControlElementType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 1783015770; } } IFC2X32.IfcSensorType = IfcSensorType; class IfcSlab extends IfcBuildingElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 1529196076; } } IFC2X32.IfcSlab = IfcSlab; class IfcStair extends IfcBuildingElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, ShapeType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.ShapeType = ShapeType; this.type = 331165859; } } IFC2X32.IfcStair = IfcStair; class IfcStairFlight extends IfcBuildingElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, NumberOfRiser, NumberOfTreads, RiserHeight, TreadLength) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.NumberOfRiser = NumberOfRiser; this.NumberOfTreads = NumberOfTreads; this.RiserHeight = RiserHeight; this.TreadLength = TreadLength; this.type = 4252922144; } } IFC2X32.IfcStairFlight = IfcStairFlight; class IfcStructuralAnalysisModel extends IfcSystem { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, PredefinedType, OrientationOf2DPlane, LoadedBy, HasResults) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.PredefinedType = PredefinedType; this.OrientationOf2DPlane = OrientationOf2DPlane; this.LoadedBy = LoadedBy; this.HasResults = HasResults; this.type = 2515109513; } } IFC2X32.IfcStructuralAnalysisModel = IfcStructuralAnalysisModel; class IfcTendon extends IfcReinforcingElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade, PredefinedType, NominalDiameter, CrossSectionArea, TensionForce, PreStress, FrictionCoefficient, AnchorageSlip, MinCurvatureRadius) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.SteelGrade = SteelGrade; this.PredefinedType = PredefinedType; this.NominalDiameter = NominalDiameter; this.CrossSectionArea = CrossSectionArea; this.TensionForce = TensionForce; this.PreStress = PreStress; this.FrictionCoefficient = FrictionCoefficient; this.AnchorageSlip = AnchorageSlip; this.MinCurvatureRadius = MinCurvatureRadius; this.type = 3824725483; } } IFC2X32.IfcTendon = IfcTendon; class IfcTendonAnchor extends IfcReinforcingElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.SteelGrade = SteelGrade; this.type = 2347447852; } } IFC2X32.IfcTendonAnchor = IfcTendonAnchor; class IfcVibrationIsolatorType extends IfcDiscreteAccessoryType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 3313531582; } } IFC2X32.IfcVibrationIsolatorType = IfcVibrationIsolatorType; class IfcWall extends IfcBuildingElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.type = 2391406946; } } IFC2X32.IfcWall = IfcWall; class IfcWallStandardCase extends IfcWall { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.type = 3512223829; } } IFC2X32.IfcWallStandardCase = IfcWallStandardCase; class IfcWindow extends IfcBuildingElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, OverallHeight, OverallWidth) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.OverallHeight = OverallHeight; this.OverallWidth = OverallWidth; this.type = 3304561284; } } IFC2X32.IfcWindow = IfcWindow; class IfcActuatorType extends IfcDistributionControlElementType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 2874132201; } } IFC2X32.IfcActuatorType = IfcActuatorType; class IfcAlarmType extends IfcDistributionControlElementType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 3001207471; } } IFC2X32.IfcAlarmType = IfcAlarmType; class IfcBeam extends IfcBuildingElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.type = 753842376; } } IFC2X32.IfcBeam = IfcBeam; class IfcChamferEdgeFeature extends IfcEdgeFeature { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, FeatureLength, Width, Height) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, FeatureLength); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.FeatureLength = FeatureLength; this.Width = Width; this.Height = Height; this.type = 2454782716; } } IFC2X32.IfcChamferEdgeFeature = IfcChamferEdgeFeature; class IfcControllerType extends IfcDistributionControlElementType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 578613899; } } IFC2X32.IfcControllerType = IfcControllerType; class IfcDistributionChamberElement extends IfcDistributionFlowElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.type = 1052013943; } } IFC2X32.IfcDistributionChamberElement = IfcDistributionChamberElement; class IfcDistributionControlElement extends IfcDistributionElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, ControlElementId) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.ControlElementId = ControlElementId; this.type = 1062813311; } } IFC2X32.IfcDistributionControlElement = IfcDistributionControlElement; class IfcElectricDistributionPoint extends IfcFlowController { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, DistributionPointFunction, UserDefinedFunction) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.DistributionPointFunction = DistributionPointFunction; this.UserDefinedFunction = UserDefinedFunction; this.type = 3700593921; } } IFC2X32.IfcElectricDistributionPoint = IfcElectricDistributionPoint; class IfcReinforcingBar extends IfcReinforcingElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade, NominalDiameter, CrossSectionArea, BarLength, BarRole, BarSurface) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.SteelGrade = SteelGrade; this.NominalDiameter = NominalDiameter; this.CrossSectionArea = CrossSectionArea; this.BarLength = BarLength; this.BarRole = BarRole; this.BarSurface = BarSurface; this.type = 979691226; } } IFC2X32.IfcReinforcingBar = IfcReinforcingBar; })(IFC2X3 || (IFC2X3 = {})); SchemaNames[2] = "IFC4_3"; FromRawLineData[2] = { 3630933823: (id, v) => new IFC4_3.IfcActorRole(id, v[0], !v[1] ? null : new IFC4_3.IfcLabel(v[1].value), !v[2] ? null : new IFC4_3.IfcText(v[2].value)), 618182010: (id, v) => new IFC4_3.IfcAddress(id, v[0], !v[1] ? null : new IFC4_3.IfcText(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value)), 2879124712: (id, v) => new IFC4_3.IfcAlignmentParameterSegment(id, !v[0] ? null : new IFC4_3.IfcLabel(v[0].value), !v[1] ? null : new IFC4_3.IfcLabel(v[1].value)), 3633395639: (id, v) => new IFC4_3.IfcAlignmentVerticalSegment(id, !v[0] ? null : new IFC4_3.IfcLabel(v[0].value), !v[1] ? null : new IFC4_3.IfcLabel(v[1].value), new IFC4_3.IfcLengthMeasure(v[2].value), new IFC4_3.IfcNonNegativeLengthMeasure(v[3].value), new IFC4_3.IfcLengthMeasure(v[4].value), new IFC4_3.IfcRatioMeasure(v[5].value), new IFC4_3.IfcRatioMeasure(v[6].value), !v[7] ? null : new IFC4_3.IfcLengthMeasure(v[7].value), v[8]), 639542469: (id, v) => new IFC4_3.IfcApplication(id, new Handle(v[0].value), new IFC4_3.IfcLabel(v[1].value), new IFC4_3.IfcLabel(v[2].value), new IFC4_3.IfcIdentifier(v[3].value)), 411424972: (id, v) => new IFC4_3.IfcAppliedValue(id, !v[0] ? null : new IFC4_3.IfcLabel(v[0].value), !v[1] ? null : new IFC4_3.IfcText(v[1].value), !v[2] ? null : new Handle(v[2].value), !v[3] ? null : new Handle(v[3].value), !v[4] ? null : new IFC4_3.IfcDate(v[4].value), !v[5] ? null : new IFC4_3.IfcDate(v[5].value), !v[6] ? null : new IFC4_3.IfcLabel(v[6].value), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), v[8], !v[9] ? null : v[9].map((p) => new Handle(p.value))), 130549933: (id, v) => new IFC4_3.IfcApproval(id, !v[0] ? null : new IFC4_3.IfcIdentifier(v[0].value), !v[1] ? null : new IFC4_3.IfcLabel(v[1].value), !v[2] ? null : new IFC4_3.IfcText(v[2].value), !v[3] ? null : new IFC4_3.IfcDateTime(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new IFC4_3.IfcLabel(v[5].value), !v[6] ? null : new IFC4_3.IfcText(v[6].value), !v[7] ? null : new Handle(v[7].value), !v[8] ? null : new Handle(v[8].value)), 4037036970: (id, v) => new IFC4_3.IfcBoundaryCondition(id, !v[0] ? null : new IFC4_3.IfcLabel(v[0].value)), 1560379544: (id, v) => new IFC4_3.IfcBoundaryEdgeCondition(id, !v[0] ? null : new IFC4_3.IfcLabel(v[0].value), !v[1] ? null : TypeInitialiser(2, v[1]), !v[2] ? null : TypeInitialiser(2, v[2]), !v[3] ? null : TypeInitialiser(2, v[3]), !v[4] ? null : TypeInitialiser(2, v[4]), !v[5] ? null : TypeInitialiser(2, v[5]), !v[6] ? null : TypeInitialiser(2, v[6])), 3367102660: (id, v) => new IFC4_3.IfcBoundaryFaceCondition(id, !v[0] ? null : new IFC4_3.IfcLabel(v[0].value), !v[1] ? null : TypeInitialiser(2, v[1]), !v[2] ? null : TypeInitialiser(2, v[2]), !v[3] ? null : TypeInitialiser(2, v[3])), 1387855156: (id, v) => new IFC4_3.IfcBoundaryNodeCondition(id, !v[0] ? null : new IFC4_3.IfcLabel(v[0].value), !v[1] ? null : TypeInitialiser(2, v[1]), !v[2] ? null : TypeInitialiser(2, v[2]), !v[3] ? null : TypeInitialiser(2, v[3]), !v[4] ? null : TypeInitialiser(2, v[4]), !v[5] ? null : TypeInitialiser(2, v[5]), !v[6] ? null : TypeInitialiser(2, v[6])), 2069777674: (id, v) => new IFC4_3.IfcBoundaryNodeConditionWarping(id, !v[0] ? null : new IFC4_3.IfcLabel(v[0].value), !v[1] ? null : TypeInitialiser(2, v[1]), !v[2] ? null : TypeInitialiser(2, v[2]), !v[3] ? null : TypeInitialiser(2, v[3]), !v[4] ? null : TypeInitialiser(2, v[4]), !v[5] ? null : TypeInitialiser(2, v[5]), !v[6] ? null : TypeInitialiser(2, v[6]), !v[7] ? null : TypeInitialiser(2, v[7])), 2859738748: (id, _) => new IFC4_3.IfcConnectionGeometry(id), 2614616156: (id, v) => new IFC4_3.IfcConnectionPointGeometry(id, new Handle(v[0].value), !v[1] ? null : new Handle(v[1].value)), 2732653382: (id, v) => new IFC4_3.IfcConnectionSurfaceGeometry(id, new Handle(v[0].value), !v[1] ? null : new Handle(v[1].value)), 775493141: (id, v) => new IFC4_3.IfcConnectionVolumeGeometry(id, new Handle(v[0].value), !v[1] ? null : new Handle(v[1].value)), 1959218052: (id, v) => new IFC4_3.IfcConstraint(id, new IFC4_3.IfcLabel(v[0].value), !v[1] ? null : new IFC4_3.IfcText(v[1].value), v[2], !v[3] ? null : new IFC4_3.IfcLabel(v[3].value), !v[4] ? null : new Handle(v[4].value), !v[5] ? null : new IFC4_3.IfcDateTime(v[5].value), !v[6] ? null : new IFC4_3.IfcLabel(v[6].value)), 1785450214: (id, v) => new IFC4_3.IfcCoordinateOperation(id, new Handle(v[0].value), new Handle(v[1].value)), 1466758467: (id, v) => new IFC4_3.IfcCoordinateReferenceSystem(id, new IFC4_3.IfcLabel(v[0].value), !v[1] ? null : new IFC4_3.IfcText(v[1].value), !v[2] ? null : new IFC4_3.IfcIdentifier(v[2].value), !v[3] ? null : new IFC4_3.IfcIdentifier(v[3].value)), 602808272: (id, v) => new IFC4_3.IfcCostValue(id, !v[0] ? null : new IFC4_3.IfcLabel(v[0].value), !v[1] ? null : new IFC4_3.IfcText(v[1].value), !v[2] ? null : new Handle(v[2].value), !v[3] ? null : new Handle(v[3].value), !v[4] ? null : new IFC4_3.IfcDate(v[4].value), !v[5] ? null : new IFC4_3.IfcDate(v[5].value), !v[6] ? null : new IFC4_3.IfcLabel(v[6].value), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), v[8], !v[9] ? null : v[9].map((p) => new Handle(p.value))), 1765591967: (id, v) => new IFC4_3.IfcDerivedUnit(id, v[0].map((p) => new Handle(p.value)), v[1], !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcLabel(v[3].value)), 1045800335: (id, v) => new IFC4_3.IfcDerivedUnitElement(id, new Handle(v[0].value), v[1].value), 2949456006: (id, v) => new IFC4_3.IfcDimensionalExponents(id, v[0].value, v[1].value, v[2].value, v[3].value, v[4].value, v[5].value, v[6].value), 4294318154: (id, _) => new IFC4_3.IfcExternalInformation(id), 3200245327: (id, v) => new IFC4_3.IfcExternalReference(id, !v[0] ? null : new IFC4_3.IfcURIReference(v[0].value), !v[1] ? null : new IFC4_3.IfcIdentifier(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value)), 2242383968: (id, v) => new IFC4_3.IfcExternallyDefinedHatchStyle(id, !v[0] ? null : new IFC4_3.IfcURIReference(v[0].value), !v[1] ? null : new IFC4_3.IfcIdentifier(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value)), 1040185647: (id, v) => new IFC4_3.IfcExternallyDefinedSurfaceStyle(id, !v[0] ? null : new IFC4_3.IfcURIReference(v[0].value), !v[1] ? null : new IFC4_3.IfcIdentifier(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value)), 3548104201: (id, v) => new IFC4_3.IfcExternallyDefinedTextFont(id, !v[0] ? null : new IFC4_3.IfcURIReference(v[0].value), !v[1] ? null : new IFC4_3.IfcIdentifier(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value)), 852622518: (id, v) => new IFC4_3.IfcGridAxis(id, !v[0] ? null : new IFC4_3.IfcLabel(v[0].value), new Handle(v[1].value), new IFC4_3.IfcBoolean(v[2].value)), 3020489413: (id, v) => new IFC4_3.IfcIrregularTimeSeriesValue(id, new IFC4_3.IfcDateTime(v[0].value), v[1].map((p) => TypeInitialiser(2, p))), 2655187982: (id, v) => new IFC4_3.IfcLibraryInformation(id, new IFC4_3.IfcLabel(v[0].value), !v[1] ? null : new IFC4_3.IfcLabel(v[1].value), !v[2] ? null : new Handle(v[2].value), !v[3] ? null : new IFC4_3.IfcDateTime(v[3].value), !v[4] ? null : new IFC4_3.IfcURIReference(v[4].value), !v[5] ? null : new IFC4_3.IfcText(v[5].value)), 3452421091: (id, v) => new IFC4_3.IfcLibraryReference(id, !v[0] ? null : new IFC4_3.IfcURIReference(v[0].value), !v[1] ? null : new IFC4_3.IfcIdentifier(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLanguageId(v[4].value), !v[5] ? null : new Handle(v[5].value)), 4162380809: (id, v) => new IFC4_3.IfcLightDistributionData(id, new IFC4_3.IfcPlaneAngleMeasure(v[0].value), v[1].map((p) => new IFC4_3.IfcPlaneAngleMeasure(p.value)), v[2].map((p) => new IFC4_3.IfcLuminousIntensityDistributionMeasure(p.value))), 1566485204: (id, v) => new IFC4_3.IfcLightIntensityDistribution(id, v[0], v[1].map((p) => new Handle(p.value))), 3057273783: (id, v) => new IFC4_3.IfcMapConversion(id, new Handle(v[0].value), new Handle(v[1].value), new IFC4_3.IfcLengthMeasure(v[2].value), new IFC4_3.IfcLengthMeasure(v[3].value), new IFC4_3.IfcLengthMeasure(v[4].value), !v[5] ? null : new IFC4_3.IfcReal(v[5].value), !v[6] ? null : new IFC4_3.IfcReal(v[6].value), !v[7] ? null : new IFC4_3.IfcReal(v[7].value), !v[8] ? null : new IFC4_3.IfcReal(v[8].value), !v[9] ? null : new IFC4_3.IfcReal(v[9].value)), 1847130766: (id, v) => new IFC4_3.IfcMaterialClassificationRelationship(id, v[0].map((p) => new Handle(p.value)), new Handle(v[1].value)), 760658860: (id, _) => new IFC4_3.IfcMaterialDefinition(id), 248100487: (id, v) => new IFC4_3.IfcMaterialLayer(id, !v[0] ? null : new Handle(v[0].value), new IFC4_3.IfcNonNegativeLengthMeasure(v[1].value), !v[2] ? null : new IFC4_3.IfcLogical(v[2].value), !v[3] ? null : new IFC4_3.IfcLabel(v[3].value), !v[4] ? null : new IFC4_3.IfcText(v[4].value), !v[5] ? null : new IFC4_3.IfcLabel(v[5].value), !v[6] ? null : new IFC4_3.IfcInteger(v[6].value)), 3303938423: (id, v) => new IFC4_3.IfcMaterialLayerSet(id, v[0].map((p) => new Handle(p.value)), !v[1] ? null : new IFC4_3.IfcLabel(v[1].value), !v[2] ? null : new IFC4_3.IfcText(v[2].value)), 1847252529: (id, v) => new IFC4_3.IfcMaterialLayerWithOffsets(id, !v[0] ? null : new Handle(v[0].value), new IFC4_3.IfcNonNegativeLengthMeasure(v[1].value), !v[2] ? null : new IFC4_3.IfcLogical(v[2].value), !v[3] ? null : new IFC4_3.IfcLabel(v[3].value), !v[4] ? null : new IFC4_3.IfcText(v[4].value), !v[5] ? null : new IFC4_3.IfcLabel(v[5].value), !v[6] ? null : new IFC4_3.IfcInteger(v[6].value), v[7], new IFC4_3.IfcLengthMeasure(v[8].value)), 2199411900: (id, v) => new IFC4_3.IfcMaterialList(id, v[0].map((p) => new Handle(p.value))), 2235152071: (id, v) => new IFC4_3.IfcMaterialProfile(id, !v[0] ? null : new IFC4_3.IfcLabel(v[0].value), !v[1] ? null : new IFC4_3.IfcText(v[1].value), !v[2] ? null : new Handle(v[2].value), new Handle(v[3].value), !v[4] ? null : new IFC4_3.IfcInteger(v[4].value), !v[5] ? null : new IFC4_3.IfcLabel(v[5].value)), 164193824: (id, v) => new IFC4_3.IfcMaterialProfileSet(id, !v[0] ? null : new IFC4_3.IfcLabel(v[0].value), !v[1] ? null : new IFC4_3.IfcText(v[1].value), v[2].map((p) => new Handle(p.value)), !v[3] ? null : new Handle(v[3].value)), 552965576: (id, v) => new IFC4_3.IfcMaterialProfileWithOffsets(id, !v[0] ? null : new IFC4_3.IfcLabel(v[0].value), !v[1] ? null : new IFC4_3.IfcText(v[1].value), !v[2] ? null : new Handle(v[2].value), new Handle(v[3].value), !v[4] ? null : new IFC4_3.IfcInteger(v[4].value), !v[5] ? null : new IFC4_3.IfcLabel(v[5].value), new IFC4_3.IfcLengthMeasure(v[6].value)), 1507914824: (id, _) => new IFC4_3.IfcMaterialUsageDefinition(id), 2597039031: (id, v) => new IFC4_3.IfcMeasureWithUnit(id, TypeInitialiser(2, v[0]), new Handle(v[1].value)), 3368373690: (id, v) => new IFC4_3.IfcMetric(id, new IFC4_3.IfcLabel(v[0].value), !v[1] ? null : new IFC4_3.IfcText(v[1].value), v[2], !v[3] ? null : new IFC4_3.IfcLabel(v[3].value), !v[4] ? null : new Handle(v[4].value), !v[5] ? null : new IFC4_3.IfcDateTime(v[5].value), !v[6] ? null : new IFC4_3.IfcLabel(v[6].value), v[7], !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), !v[9] ? null : new Handle(v[9].value), !v[10] ? null : new Handle(v[10].value)), 2706619895: (id, v) => new IFC4_3.IfcMonetaryUnit(id, new IFC4_3.IfcLabel(v[0].value)), 1918398963: (id, v) => new IFC4_3.IfcNamedUnit(id, new Handle(v[0].value), v[1]), 3701648758: (id, v) => new IFC4_3.IfcObjectPlacement(id, !v[0] ? null : new Handle(v[0].value)), 2251480897: (id, v) => new IFC4_3.IfcObjective(id, new IFC4_3.IfcLabel(v[0].value), !v[1] ? null : new IFC4_3.IfcText(v[1].value), v[2], !v[3] ? null : new IFC4_3.IfcLabel(v[3].value), !v[4] ? null : new Handle(v[4].value), !v[5] ? null : new IFC4_3.IfcDateTime(v[5].value), !v[6] ? null : new IFC4_3.IfcLabel(v[6].value), !v[7] ? null : v[7].map((p) => new Handle(p.value)), v[8], v[9], !v[10] ? null : new IFC4_3.IfcLabel(v[10].value)), 4251960020: (id, v) => new IFC4_3.IfcOrganization(id, !v[0] ? null : new IFC4_3.IfcIdentifier(v[0].value), new IFC4_3.IfcLabel(v[1].value), !v[2] ? null : new IFC4_3.IfcText(v[2].value), !v[3] ? null : v[3].map((p) => new Handle(p.value)), !v[4] ? null : v[4].map((p) => new Handle(p.value))), 1207048766: (id, v) => new IFC4_3.IfcOwnerHistory(id, new Handle(v[0].value), new Handle(v[1].value), v[2], v[3], !v[4] ? null : new IFC4_3.IfcTimeStamp(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), new IFC4_3.IfcTimeStamp(v[7].value)), 2077209135: (id, v) => new IFC4_3.IfcPerson(id, !v[0] ? null : new IFC4_3.IfcIdentifier(v[0].value), !v[1] ? null : new IFC4_3.IfcLabel(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : v[3].map((p) => new IFC4_3.IfcLabel(p.value)), !v[4] ? null : v[4].map((p) => new IFC4_3.IfcLabel(p.value)), !v[5] ? null : v[5].map((p) => new IFC4_3.IfcLabel(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : v[7].map((p) => new Handle(p.value))), 101040310: (id, v) => new IFC4_3.IfcPersonAndOrganization(id, new Handle(v[0].value), new Handle(v[1].value), !v[2] ? null : v[2].map((p) => new Handle(p.value))), 2483315170: (id, v) => new IFC4_3.IfcPhysicalQuantity(id, new IFC4_3.IfcLabel(v[0].value), !v[1] ? null : new IFC4_3.IfcText(v[1].value)), 2226359599: (id, v) => new IFC4_3.IfcPhysicalSimpleQuantity(id, new IFC4_3.IfcLabel(v[0].value), !v[1] ? null : new IFC4_3.IfcText(v[1].value), !v[2] ? null : new Handle(v[2].value)), 3355820592: (id, v) => new IFC4_3.IfcPostalAddress(id, v[0], !v[1] ? null : new IFC4_3.IfcText(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcLabel(v[3].value), !v[4] ? null : v[4].map((p) => new IFC4_3.IfcLabel(p.value)), !v[5] ? null : new IFC4_3.IfcLabel(v[5].value), !v[6] ? null : new IFC4_3.IfcLabel(v[6].value), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), !v[9] ? null : new IFC4_3.IfcLabel(v[9].value)), 677532197: (id, _) => new IFC4_3.IfcPresentationItem(id), 2022622350: (id, v) => new IFC4_3.IfcPresentationLayerAssignment(id, new IFC4_3.IfcLabel(v[0].value), !v[1] ? null : new IFC4_3.IfcText(v[1].value), v[2].map((p) => new Handle(p.value)), !v[3] ? null : new IFC4_3.IfcIdentifier(v[3].value)), 1304840413: (id, v) => new IFC4_3.IfcPresentationLayerWithStyle(id, new IFC4_3.IfcLabel(v[0].value), !v[1] ? null : new IFC4_3.IfcText(v[1].value), v[2].map((p) => new Handle(p.value)), !v[3] ? null : new IFC4_3.IfcIdentifier(v[3].value), new IFC4_3.IfcLogical(v[4].value), new IFC4_3.IfcLogical(v[5].value), new IFC4_3.IfcLogical(v[6].value), v[7].map((p) => new Handle(p.value))), 3119450353: (id, v) => new IFC4_3.IfcPresentationStyle(id, !v[0] ? null : new IFC4_3.IfcLabel(v[0].value)), 2095639259: (id, v) => new IFC4_3.IfcProductRepresentation(id, !v[0] ? null : new IFC4_3.IfcLabel(v[0].value), !v[1] ? null : new IFC4_3.IfcText(v[1].value), v[2].map((p) => new Handle(p.value))), 3958567839: (id, v) => new IFC4_3.IfcProfileDef(id, v[0], !v[1] ? null : new IFC4_3.IfcLabel(v[1].value)), 3843373140: (id, v) => new IFC4_3.IfcProjectedCRS(id, new IFC4_3.IfcLabel(v[0].value), !v[1] ? null : new IFC4_3.IfcText(v[1].value), !v[2] ? null : new IFC4_3.IfcIdentifier(v[2].value), !v[3] ? null : new IFC4_3.IfcIdentifier(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : new IFC4_3.IfcIdentifier(v[5].value), !v[6] ? null : new Handle(v[6].value)), 986844984: (id, _) => new IFC4_3.IfcPropertyAbstraction(id), 3710013099: (id, v) => new IFC4_3.IfcPropertyEnumeration(id, new IFC4_3.IfcLabel(v[0].value), v[1].map((p) => TypeInitialiser(2, p)), !v[2] ? null : new Handle(v[2].value)), 2044713172: (id, v) => new IFC4_3.IfcQuantityArea(id, new IFC4_3.IfcLabel(v[0].value), !v[1] ? null : new IFC4_3.IfcText(v[1].value), !v[2] ? null : new Handle(v[2].value), new IFC4_3.IfcAreaMeasure(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value)), 2093928680: (id, v) => new IFC4_3.IfcQuantityCount(id, new IFC4_3.IfcLabel(v[0].value), !v[1] ? null : new IFC4_3.IfcText(v[1].value), !v[2] ? null : new Handle(v[2].value), new IFC4_3.IfcCountMeasure(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value)), 931644368: (id, v) => new IFC4_3.IfcQuantityLength(id, new IFC4_3.IfcLabel(v[0].value), !v[1] ? null : new IFC4_3.IfcText(v[1].value), !v[2] ? null : new Handle(v[2].value), new IFC4_3.IfcLengthMeasure(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value)), 2691318326: (id, v) => new IFC4_3.IfcQuantityNumber(id, new IFC4_3.IfcLabel(v[0].value), !v[1] ? null : new IFC4_3.IfcText(v[1].value), !v[2] ? null : new Handle(v[2].value), new IFC4_3.IfcNumericMeasure(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value)), 3252649465: (id, v) => new IFC4_3.IfcQuantityTime(id, new IFC4_3.IfcLabel(v[0].value), !v[1] ? null : new IFC4_3.IfcText(v[1].value), !v[2] ? null : new Handle(v[2].value), new IFC4_3.IfcTimeMeasure(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value)), 2405470396: (id, v) => new IFC4_3.IfcQuantityVolume(id, new IFC4_3.IfcLabel(v[0].value), !v[1] ? null : new IFC4_3.IfcText(v[1].value), !v[2] ? null : new Handle(v[2].value), new IFC4_3.IfcVolumeMeasure(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value)), 825690147: (id, v) => new IFC4_3.IfcQuantityWeight(id, new IFC4_3.IfcLabel(v[0].value), !v[1] ? null : new IFC4_3.IfcText(v[1].value), !v[2] ? null : new Handle(v[2].value), new IFC4_3.IfcMassMeasure(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value)), 3915482550: (id, v) => new IFC4_3.IfcRecurrencePattern(id, v[0], !v[1] ? null : v[1].map((p) => new IFC4_3.IfcDayInMonthNumber(p.value)), !v[2] ? null : v[2].map((p) => new IFC4_3.IfcDayInWeekNumber(p.value)), !v[3] ? null : v[3].map((p) => new IFC4_3.IfcMonthInYearNumber(p.value)), !v[4] ? null : new IFC4_3.IfcInteger(v[4].value), !v[5] ? null : new IFC4_3.IfcInteger(v[5].value), !v[6] ? null : new IFC4_3.IfcInteger(v[6].value), !v[7] ? null : v[7].map((p) => new Handle(p.value))), 2433181523: (id, v) => new IFC4_3.IfcReference(id, !v[0] ? null : new IFC4_3.IfcIdentifier(v[0].value), !v[1] ? null : new IFC4_3.IfcIdentifier(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : v[3].map((p) => new IFC4_3.IfcInteger(p.value)), !v[4] ? null : new Handle(v[4].value)), 1076942058: (id, v) => new IFC4_3.IfcRepresentation(id, new Handle(v[0].value), !v[1] ? null : new IFC4_3.IfcLabel(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), v[3].map((p) => new Handle(p.value))), 3377609919: (id, v) => new IFC4_3.IfcRepresentationContext(id, !v[0] ? null : new IFC4_3.IfcLabel(v[0].value), !v[1] ? null : new IFC4_3.IfcLabel(v[1].value)), 3008791417: (id, _) => new IFC4_3.IfcRepresentationItem(id), 1660063152: (id, v) => new IFC4_3.IfcRepresentationMap(id, new Handle(v[0].value), new Handle(v[1].value)), 2439245199: (id, v) => new IFC4_3.IfcResourceLevelRelationship(id, !v[0] ? null : new IFC4_3.IfcLabel(v[0].value), !v[1] ? null : new IFC4_3.IfcText(v[1].value)), 2341007311: (id, v) => new IFC4_3.IfcRoot(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value)), 448429030: (id, v) => new IFC4_3.IfcSIUnit(id, new Handle(v[0].value), v[1], v[2], v[3]), 1054537805: (id, v) => new IFC4_3.IfcSchedulingTime(id, !v[0] ? null : new IFC4_3.IfcLabel(v[0].value), v[1], !v[2] ? null : new IFC4_3.IfcLabel(v[2].value)), 867548509: (id, v) => new IFC4_3.IfcShapeAspect(id, v[0].map((p) => new Handle(p.value)), !v[1] ? null : new IFC4_3.IfcLabel(v[1].value), !v[2] ? null : new IFC4_3.IfcText(v[2].value), new IFC4_3.IfcLogical(v[3].value), !v[4] ? null : new Handle(v[4].value)), 3982875396: (id, v) => new IFC4_3.IfcShapeModel(id, new Handle(v[0].value), !v[1] ? null : new IFC4_3.IfcLabel(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), v[3].map((p) => new Handle(p.value))), 4240577450: (id, v) => new IFC4_3.IfcShapeRepresentation(id, new Handle(v[0].value), !v[1] ? null : new IFC4_3.IfcLabel(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), v[3].map((p) => new Handle(p.value))), 2273995522: (id, v) => new IFC4_3.IfcStructuralConnectionCondition(id, !v[0] ? null : new IFC4_3.IfcLabel(v[0].value)), 2162789131: (id, v) => new IFC4_3.IfcStructuralLoad(id, !v[0] ? null : new IFC4_3.IfcLabel(v[0].value)), 3478079324: (id, v) => new IFC4_3.IfcStructuralLoadConfiguration(id, !v[0] ? null : new IFC4_3.IfcLabel(v[0].value), v[1].map((p) => new Handle(p.value)), !v[2] ? null : v[2].map((p) => new IFC4_3.IfcLengthMeasure(p.value))), 609421318: (id, v) => new IFC4_3.IfcStructuralLoadOrResult(id, !v[0] ? null : new IFC4_3.IfcLabel(v[0].value)), 2525727697: (id, v) => new IFC4_3.IfcStructuralLoadStatic(id, !v[0] ? null : new IFC4_3.IfcLabel(v[0].value)), 3408363356: (id, v) => new IFC4_3.IfcStructuralLoadTemperature(id, !v[0] ? null : new IFC4_3.IfcLabel(v[0].value), !v[1] ? null : new IFC4_3.IfcThermodynamicTemperatureMeasure(v[1].value), !v[2] ? null : new IFC4_3.IfcThermodynamicTemperatureMeasure(v[2].value), !v[3] ? null : new IFC4_3.IfcThermodynamicTemperatureMeasure(v[3].value)), 2830218821: (id, v) => new IFC4_3.IfcStyleModel(id, new Handle(v[0].value), !v[1] ? null : new IFC4_3.IfcLabel(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), v[3].map((p) => new Handle(p.value))), 3958052878: (id, v) => new IFC4_3.IfcStyledItem(id, !v[0] ? null : new Handle(v[0].value), v[1].map((p) => new Handle(p.value)), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value)), 3049322572: (id, v) => new IFC4_3.IfcStyledRepresentation(id, new Handle(v[0].value), !v[1] ? null : new IFC4_3.IfcLabel(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), v[3].map((p) => new Handle(p.value))), 2934153892: (id, v) => new IFC4_3.IfcSurfaceReinforcementArea(id, !v[0] ? null : new IFC4_3.IfcLabel(v[0].value), !v[1] ? null : v[1].map((p) => new IFC4_3.IfcLengthMeasure(p.value)), !v[2] ? null : v[2].map((p) => new IFC4_3.IfcLengthMeasure(p.value)), !v[3] ? null : new IFC4_3.IfcRatioMeasure(v[3].value)), 1300840506: (id, v) => new IFC4_3.IfcSurfaceStyle(id, !v[0] ? null : new IFC4_3.IfcLabel(v[0].value), v[1], v[2].map((p) => new Handle(p.value))), 3303107099: (id, v) => new IFC4_3.IfcSurfaceStyleLighting(id, new Handle(v[0].value), new Handle(v[1].value), new Handle(v[2].value), new Handle(v[3].value)), 1607154358: (id, v) => new IFC4_3.IfcSurfaceStyleRefraction(id, !v[0] ? null : new IFC4_3.IfcReal(v[0].value), !v[1] ? null : new IFC4_3.IfcReal(v[1].value)), 846575682: (id, v) => new IFC4_3.IfcSurfaceStyleShading(id, new Handle(v[0].value), !v[1] ? null : new IFC4_3.IfcNormalisedRatioMeasure(v[1].value)), 1351298697: (id, v) => new IFC4_3.IfcSurfaceStyleWithTextures(id, v[0].map((p) => new Handle(p.value))), 626085974: (id, v) => new IFC4_3.IfcSurfaceTexture(id, new IFC4_3.IfcBoolean(v[0].value), new IFC4_3.IfcBoolean(v[1].value), !v[2] ? null : new IFC4_3.IfcIdentifier(v[2].value), !v[3] ? null : new Handle(v[3].value), !v[4] ? null : v[4].map((p) => new IFC4_3.IfcIdentifier(p.value))), 985171141: (id, v) => new IFC4_3.IfcTable(id, !v[0] ? null : new IFC4_3.IfcLabel(v[0].value), !v[1] ? null : v[1].map((p) => new Handle(p.value)), !v[2] ? null : v[2].map((p) => new Handle(p.value))), 2043862942: (id, v) => new IFC4_3.IfcTableColumn(id, !v[0] ? null : new IFC4_3.IfcIdentifier(v[0].value), !v[1] ? null : new IFC4_3.IfcLabel(v[1].value), !v[2] ? null : new IFC4_3.IfcText(v[2].value), !v[3] ? null : new Handle(v[3].value), !v[4] ? null : new Handle(v[4].value)), 531007025: (id, v) => new IFC4_3.IfcTableRow(id, !v[0] ? null : v[0].map((p) => TypeInitialiser(2, p)), !v[1] ? null : new IFC4_3.IfcBoolean(v[1].value)), 1549132990: (id, v) => new IFC4_3.IfcTaskTime(id, !v[0] ? null : new IFC4_3.IfcLabel(v[0].value), v[1], !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), v[3], !v[4] ? null : new IFC4_3.IfcDuration(v[4].value), !v[5] ? null : new IFC4_3.IfcDateTime(v[5].value), !v[6] ? null : new IFC4_3.IfcDateTime(v[6].value), !v[7] ? null : new IFC4_3.IfcDateTime(v[7].value), !v[8] ? null : new IFC4_3.IfcDateTime(v[8].value), !v[9] ? null : new IFC4_3.IfcDateTime(v[9].value), !v[10] ? null : new IFC4_3.IfcDateTime(v[10].value), !v[11] ? null : new IFC4_3.IfcDuration(v[11].value), !v[12] ? null : new IFC4_3.IfcDuration(v[12].value), !v[13] ? null : new IFC4_3.IfcBoolean(v[13].value), !v[14] ? null : new IFC4_3.IfcDateTime(v[14].value), !v[15] ? null : new IFC4_3.IfcDuration(v[15].value), !v[16] ? null : new IFC4_3.IfcDateTime(v[16].value), !v[17] ? null : new IFC4_3.IfcDateTime(v[17].value), !v[18] ? null : new IFC4_3.IfcDuration(v[18].value), !v[19] ? null : new IFC4_3.IfcPositiveRatioMeasure(v[19].value)), 2771591690: (id, v) => new IFC4_3.IfcTaskTimeRecurring(id, !v[0] ? null : new IFC4_3.IfcLabel(v[0].value), v[1], !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), v[3], !v[4] ? null : new IFC4_3.IfcDuration(v[4].value), !v[5] ? null : new IFC4_3.IfcDateTime(v[5].value), !v[6] ? null : new IFC4_3.IfcDateTime(v[6].value), !v[7] ? null : new IFC4_3.IfcDateTime(v[7].value), !v[8] ? null : new IFC4_3.IfcDateTime(v[8].value), !v[9] ? null : new IFC4_3.IfcDateTime(v[9].value), !v[10] ? null : new IFC4_3.IfcDateTime(v[10].value), !v[11] ? null : new IFC4_3.IfcDuration(v[11].value), !v[12] ? null : new IFC4_3.IfcDuration(v[12].value), !v[13] ? null : new IFC4_3.IfcBoolean(v[13].value), !v[14] ? null : new IFC4_3.IfcDateTime(v[14].value), !v[15] ? null : new IFC4_3.IfcDuration(v[15].value), !v[16] ? null : new IFC4_3.IfcDateTime(v[16].value), !v[17] ? null : new IFC4_3.IfcDateTime(v[17].value), !v[18] ? null : new IFC4_3.IfcDuration(v[18].value), !v[19] ? null : new IFC4_3.IfcPositiveRatioMeasure(v[19].value), new Handle(v[20].value)), 912023232: (id, v) => new IFC4_3.IfcTelecomAddress(id, v[0], !v[1] ? null : new IFC4_3.IfcText(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : v[3].map((p) => new IFC4_3.IfcLabel(p.value)), !v[4] ? null : v[4].map((p) => new IFC4_3.IfcLabel(p.value)), !v[5] ? null : new IFC4_3.IfcLabel(v[5].value), !v[6] ? null : v[6].map((p) => new IFC4_3.IfcLabel(p.value)), !v[7] ? null : new IFC4_3.IfcURIReference(v[7].value), !v[8] ? null : v[8].map((p) => new IFC4_3.IfcURIReference(p.value))), 1447204868: (id, v) => new IFC4_3.IfcTextStyle(id, !v[0] ? null : new IFC4_3.IfcLabel(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new Handle(v[2].value), new Handle(v[3].value), !v[4] ? null : new IFC4_3.IfcBoolean(v[4].value)), 2636378356: (id, v) => new IFC4_3.IfcTextStyleForDefinedFont(id, new Handle(v[0].value), !v[1] ? null : new Handle(v[1].value)), 1640371178: (id, v) => new IFC4_3.IfcTextStyleTextModel(id, !v[0] ? null : TypeInitialiser(2, v[0]), !v[1] ? null : new IFC4_3.IfcTextAlignment(v[1].value), !v[2] ? null : new IFC4_3.IfcTextDecoration(v[2].value), !v[3] ? null : TypeInitialiser(2, v[3]), !v[4] ? null : TypeInitialiser(2, v[4]), !v[5] ? null : new IFC4_3.IfcTextTransformation(v[5].value), !v[6] ? null : TypeInitialiser(2, v[6])), 280115917: (id, v) => new IFC4_3.IfcTextureCoordinate(id, v[0].map((p) => new Handle(p.value))), 1742049831: (id, v) => new IFC4_3.IfcTextureCoordinateGenerator(id, v[0].map((p) => new Handle(p.value)), new IFC4_3.IfcLabel(v[1].value), !v[2] ? null : v[2].map((p) => new IFC4_3.IfcReal(p.value))), 222769930: (id, v) => new IFC4_3.IfcTextureCoordinateIndices(id, v[0].map((p) => new IFC4_3.IfcPositiveInteger(p.value)), new Handle(v[1].value)), 1010789467: (id, v) => new IFC4_3.IfcTextureCoordinateIndicesWithVoids(id, v[0].map((p) => new IFC4_3.IfcPositiveInteger(p.value)), new Handle(v[1].value), v[2].map((p) => new IFC4_3.IfcPositiveInteger(p.value))), 2552916305: (id, v) => new IFC4_3.IfcTextureMap(id, v[0].map((p) => new Handle(p.value)), v[1].map((p) => new Handle(p.value)), new Handle(v[2].value)), 1210645708: (id, v) => new IFC4_3.IfcTextureVertex(id, v[0].map((p) => new IFC4_3.IfcParameterValue(p.value))), 3611470254: (id, v) => new IFC4_3.IfcTextureVertexList(id, v[0].map((p) => new IFC4_3.IfcParameterValue(p.value))), 1199560280: (id, v) => new IFC4_3.IfcTimePeriod(id, new IFC4_3.IfcTime(v[0].value), new IFC4_3.IfcTime(v[1].value)), 3101149627: (id, v) => new IFC4_3.IfcTimeSeries(id, new IFC4_3.IfcLabel(v[0].value), !v[1] ? null : new IFC4_3.IfcText(v[1].value), new IFC4_3.IfcDateTime(v[2].value), new IFC4_3.IfcDateTime(v[3].value), v[4], v[5], !v[6] ? null : new IFC4_3.IfcLabel(v[6].value), !v[7] ? null : new Handle(v[7].value)), 581633288: (id, v) => new IFC4_3.IfcTimeSeriesValue(id, v[0].map((p) => TypeInitialiser(2, p))), 1377556343: (id, _) => new IFC4_3.IfcTopologicalRepresentationItem(id), 1735638870: (id, v) => new IFC4_3.IfcTopologyRepresentation(id, new Handle(v[0].value), !v[1] ? null : new IFC4_3.IfcLabel(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), v[3].map((p) => new Handle(p.value))), 180925521: (id, v) => new IFC4_3.IfcUnitAssignment(id, v[0].map((p) => new Handle(p.value))), 2799835756: (id, _) => new IFC4_3.IfcVertex(id), 1907098498: (id, v) => new IFC4_3.IfcVertexPoint(id, new Handle(v[0].value)), 891718957: (id, v) => new IFC4_3.IfcVirtualGridIntersection(id, v[0].map((p) => new Handle(p.value)), v[1].map((p) => new IFC4_3.IfcLengthMeasure(p.value))), 1236880293: (id, v) => new IFC4_3.IfcWorkTime(id, !v[0] ? null : new IFC4_3.IfcLabel(v[0].value), v[1], !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new Handle(v[3].value), !v[4] ? null : new IFC4_3.IfcDate(v[4].value), !v[5] ? null : new IFC4_3.IfcDate(v[5].value)), 3752311538: (id, v) => new IFC4_3.IfcAlignmentCantSegment(id, !v[0] ? null : new IFC4_3.IfcLabel(v[0].value), !v[1] ? null : new IFC4_3.IfcLabel(v[1].value), new IFC4_3.IfcLengthMeasure(v[2].value), new IFC4_3.IfcNonNegativeLengthMeasure(v[3].value), new IFC4_3.IfcLengthMeasure(v[4].value), !v[5] ? null : new IFC4_3.IfcLengthMeasure(v[5].value), new IFC4_3.IfcLengthMeasure(v[6].value), !v[7] ? null : new IFC4_3.IfcLengthMeasure(v[7].value), v[8]), 536804194: (id, v) => new IFC4_3.IfcAlignmentHorizontalSegment(id, !v[0] ? null : new IFC4_3.IfcLabel(v[0].value), !v[1] ? null : new IFC4_3.IfcLabel(v[1].value), new Handle(v[2].value), new IFC4_3.IfcPlaneAngleMeasure(v[3].value), new IFC4_3.IfcLengthMeasure(v[4].value), new IFC4_3.IfcLengthMeasure(v[5].value), new IFC4_3.IfcNonNegativeLengthMeasure(v[6].value), !v[7] ? null : new IFC4_3.IfcPositiveLengthMeasure(v[7].value), v[8]), 3869604511: (id, v) => new IFC4_3.IfcApprovalRelationship(id, !v[0] ? null : new IFC4_3.IfcLabel(v[0].value), !v[1] ? null : new IFC4_3.IfcText(v[1].value), new Handle(v[2].value), v[3].map((p) => new Handle(p.value))), 3798115385: (id, v) => new IFC4_3.IfcArbitraryClosedProfileDef(id, v[0], !v[1] ? null : new IFC4_3.IfcLabel(v[1].value), new Handle(v[2].value)), 1310608509: (id, v) => new IFC4_3.IfcArbitraryOpenProfileDef(id, v[0], !v[1] ? null : new IFC4_3.IfcLabel(v[1].value), new Handle(v[2].value)), 2705031697: (id, v) => new IFC4_3.IfcArbitraryProfileDefWithVoids(id, v[0], !v[1] ? null : new IFC4_3.IfcLabel(v[1].value), new Handle(v[2].value), v[3].map((p) => new Handle(p.value))), 616511568: (id, v) => new IFC4_3.IfcBlobTexture(id, new IFC4_3.IfcBoolean(v[0].value), new IFC4_3.IfcBoolean(v[1].value), !v[2] ? null : new IFC4_3.IfcIdentifier(v[2].value), !v[3] ? null : new Handle(v[3].value), !v[4] ? null : v[4].map((p) => new IFC4_3.IfcIdentifier(p.value)), new IFC4_3.IfcIdentifier(v[5].value), new IFC4_3.IfcBinary(v[6].value)), 3150382593: (id, v) => new IFC4_3.IfcCenterLineProfileDef(id, v[0], !v[1] ? null : new IFC4_3.IfcLabel(v[1].value), new Handle(v[2].value), new IFC4_3.IfcPositiveLengthMeasure(v[3].value)), 747523909: (id, v) => new IFC4_3.IfcClassification(id, !v[0] ? null : new IFC4_3.IfcLabel(v[0].value), !v[1] ? null : new IFC4_3.IfcLabel(v[1].value), !v[2] ? null : new IFC4_3.IfcDate(v[2].value), new IFC4_3.IfcLabel(v[3].value), !v[4] ? null : new IFC4_3.IfcText(v[4].value), !v[5] ? null : new IFC4_3.IfcURIReference(v[5].value), !v[6] ? null : v[6].map((p) => new IFC4_3.IfcIdentifier(p.value))), 647927063: (id, v) => new IFC4_3.IfcClassificationReference(id, !v[0] ? null : new IFC4_3.IfcURIReference(v[0].value), !v[1] ? null : new IFC4_3.IfcIdentifier(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new Handle(v[3].value), !v[4] ? null : new IFC4_3.IfcText(v[4].value), !v[5] ? null : new IFC4_3.IfcIdentifier(v[5].value)), 3285139300: (id, v) => new IFC4_3.IfcColourRgbList(id, v[0].map((p) => new IFC4_3.IfcNormalisedRatioMeasure(p.value))), 3264961684: (id, v) => new IFC4_3.IfcColourSpecification(id, !v[0] ? null : new IFC4_3.IfcLabel(v[0].value)), 1485152156: (id, v) => new IFC4_3.IfcCompositeProfileDef(id, v[0], !v[1] ? null : new IFC4_3.IfcLabel(v[1].value), v[2].map((p) => new Handle(p.value)), !v[3] ? null : new IFC4_3.IfcLabel(v[3].value)), 370225590: (id, v) => new IFC4_3.IfcConnectedFaceSet(id, v[0].map((p) => new Handle(p.value))), 1981873012: (id, v) => new IFC4_3.IfcConnectionCurveGeometry(id, new Handle(v[0].value), !v[1] ? null : new Handle(v[1].value)), 45288368: (id, v) => new IFC4_3.IfcConnectionPointEccentricity(id, new Handle(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLengthMeasure(v[2].value), !v[3] ? null : new IFC4_3.IfcLengthMeasure(v[3].value), !v[4] ? null : new IFC4_3.IfcLengthMeasure(v[4].value)), 3050246964: (id, v) => new IFC4_3.IfcContextDependentUnit(id, new Handle(v[0].value), v[1], new IFC4_3.IfcLabel(v[2].value)), 2889183280: (id, v) => new IFC4_3.IfcConversionBasedUnit(id, new Handle(v[0].value), v[1], new IFC4_3.IfcLabel(v[2].value), new Handle(v[3].value)), 2713554722: (id, v) => new IFC4_3.IfcConversionBasedUnitWithOffset(id, new Handle(v[0].value), v[1], new IFC4_3.IfcLabel(v[2].value), new Handle(v[3].value), new IFC4_3.IfcReal(v[4].value)), 539742890: (id, v) => new IFC4_3.IfcCurrencyRelationship(id, !v[0] ? null : new IFC4_3.IfcLabel(v[0].value), !v[1] ? null : new IFC4_3.IfcText(v[1].value), new Handle(v[2].value), new Handle(v[3].value), new IFC4_3.IfcPositiveRatioMeasure(v[4].value), !v[5] ? null : new IFC4_3.IfcDateTime(v[5].value), !v[6] ? null : new Handle(v[6].value)), 3800577675: (id, v) => new IFC4_3.IfcCurveStyle(id, !v[0] ? null : new IFC4_3.IfcLabel(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : TypeInitialiser(2, v[2]), !v[3] ? null : new Handle(v[3].value), !v[4] ? null : new IFC4_3.IfcBoolean(v[4].value)), 1105321065: (id, v) => new IFC4_3.IfcCurveStyleFont(id, !v[0] ? null : new IFC4_3.IfcLabel(v[0].value), v[1].map((p) => new Handle(p.value))), 2367409068: (id, v) => new IFC4_3.IfcCurveStyleFontAndScaling(id, !v[0] ? null : new IFC4_3.IfcLabel(v[0].value), new Handle(v[1].value), new IFC4_3.IfcPositiveRatioMeasure(v[2].value)), 3510044353: (id, v) => new IFC4_3.IfcCurveStyleFontPattern(id, new IFC4_3.IfcLengthMeasure(v[0].value), new IFC4_3.IfcPositiveLengthMeasure(v[1].value)), 3632507154: (id, v) => new IFC4_3.IfcDerivedProfileDef(id, v[0], !v[1] ? null : new IFC4_3.IfcLabel(v[1].value), new Handle(v[2].value), new Handle(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value)), 1154170062: (id, v) => new IFC4_3.IfcDocumentInformation(id, new IFC4_3.IfcIdentifier(v[0].value), new IFC4_3.IfcLabel(v[1].value), !v[2] ? null : new IFC4_3.IfcText(v[2].value), !v[3] ? null : new IFC4_3.IfcURIReference(v[3].value), !v[4] ? null : new IFC4_3.IfcText(v[4].value), !v[5] ? null : new IFC4_3.IfcText(v[5].value), !v[6] ? null : new IFC4_3.IfcText(v[6].value), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new Handle(v[8].value), !v[9] ? null : v[9].map((p) => new Handle(p.value)), !v[10] ? null : new IFC4_3.IfcDateTime(v[10].value), !v[11] ? null : new IFC4_3.IfcDateTime(v[11].value), !v[12] ? null : new IFC4_3.IfcIdentifier(v[12].value), !v[13] ? null : new IFC4_3.IfcDate(v[13].value), !v[14] ? null : new IFC4_3.IfcDate(v[14].value), v[15], v[16]), 770865208: (id, v) => new IFC4_3.IfcDocumentInformationRelationship(id, !v[0] ? null : new IFC4_3.IfcLabel(v[0].value), !v[1] ? null : new IFC4_3.IfcText(v[1].value), new Handle(v[2].value), v[3].map((p) => new Handle(p.value)), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value)), 3732053477: (id, v) => new IFC4_3.IfcDocumentReference(id, !v[0] ? null : new IFC4_3.IfcURIReference(v[0].value), !v[1] ? null : new IFC4_3.IfcIdentifier(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new Handle(v[4].value)), 3900360178: (id, v) => new IFC4_3.IfcEdge(id, new Handle(v[0].value), new Handle(v[1].value)), 476780140: (id, v) => new IFC4_3.IfcEdgeCurve(id, new Handle(v[0].value), new Handle(v[1].value), new Handle(v[2].value), new IFC4_3.IfcBoolean(v[3].value)), 211053100: (id, v) => new IFC4_3.IfcEventTime(id, !v[0] ? null : new IFC4_3.IfcLabel(v[0].value), v[1], !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcDateTime(v[3].value), !v[4] ? null : new IFC4_3.IfcDateTime(v[4].value), !v[5] ? null : new IFC4_3.IfcDateTime(v[5].value), !v[6] ? null : new IFC4_3.IfcDateTime(v[6].value)), 297599258: (id, v) => new IFC4_3.IfcExtendedProperties(id, !v[0] ? null : new IFC4_3.IfcIdentifier(v[0].value), !v[1] ? null : new IFC4_3.IfcText(v[1].value), v[2].map((p) => new Handle(p.value))), 1437805879: (id, v) => new IFC4_3.IfcExternalReferenceRelationship(id, !v[0] ? null : new IFC4_3.IfcLabel(v[0].value), !v[1] ? null : new IFC4_3.IfcText(v[1].value), new Handle(v[2].value), v[3].map((p) => new Handle(p.value))), 2556980723: (id, v) => new IFC4_3.IfcFace(id, v[0].map((p) => new Handle(p.value))), 1809719519: (id, v) => new IFC4_3.IfcFaceBound(id, new Handle(v[0].value), new IFC4_3.IfcBoolean(v[1].value)), 803316827: (id, v) => new IFC4_3.IfcFaceOuterBound(id, new Handle(v[0].value), new IFC4_3.IfcBoolean(v[1].value)), 3008276851: (id, v) => new IFC4_3.IfcFaceSurface(id, v[0].map((p) => new Handle(p.value)), new Handle(v[1].value), new IFC4_3.IfcBoolean(v[2].value)), 4219587988: (id, v) => new IFC4_3.IfcFailureConnectionCondition(id, !v[0] ? null : new IFC4_3.IfcLabel(v[0].value), !v[1] ? null : new IFC4_3.IfcForceMeasure(v[1].value), !v[2] ? null : new IFC4_3.IfcForceMeasure(v[2].value), !v[3] ? null : new IFC4_3.IfcForceMeasure(v[3].value), !v[4] ? null : new IFC4_3.IfcForceMeasure(v[4].value), !v[5] ? null : new IFC4_3.IfcForceMeasure(v[5].value), !v[6] ? null : new IFC4_3.IfcForceMeasure(v[6].value)), 738692330: (id, v) => new IFC4_3.IfcFillAreaStyle(id, !v[0] ? null : new IFC4_3.IfcLabel(v[0].value), v[1].map((p) => new Handle(p.value)), !v[2] ? null : new IFC4_3.IfcBoolean(v[2].value)), 3448662350: (id, v) => new IFC4_3.IfcGeometricRepresentationContext(id, !v[0] ? null : new IFC4_3.IfcLabel(v[0].value), !v[1] ? null : new IFC4_3.IfcLabel(v[1].value), new IFC4_3.IfcDimensionCount(v[2].value), !v[3] ? null : new IFC4_3.IfcReal(v[3].value), new Handle(v[4].value), !v[5] ? null : new Handle(v[5].value)), 2453401579: (id, _) => new IFC4_3.IfcGeometricRepresentationItem(id), 4142052618: (id, v) => new IFC4_3.IfcGeometricRepresentationSubContext(id, !v[0] ? null : new IFC4_3.IfcLabel(v[0].value), !v[1] ? null : new IFC4_3.IfcLabel(v[1].value), new Handle(v[2].value), new Handle(v[3].value), !v[4] ? null : new IFC4_3.IfcPositiveRatioMeasure(v[4].value), v[5], !v[6] ? null : new IFC4_3.IfcLabel(v[6].value)), 3590301190: (id, v) => new IFC4_3.IfcGeometricSet(id, v[0].map((p) => new Handle(p.value))), 178086475: (id, v) => new IFC4_3.IfcGridPlacement(id, !v[0] ? null : new Handle(v[0].value), new Handle(v[1].value), !v[2] ? null : new Handle(v[2].value)), 812098782: (id, v) => new IFC4_3.IfcHalfSpaceSolid(id, new Handle(v[0].value), new IFC4_3.IfcBoolean(v[1].value)), 3905492369: (id, v) => new IFC4_3.IfcImageTexture(id, new IFC4_3.IfcBoolean(v[0].value), new IFC4_3.IfcBoolean(v[1].value), !v[2] ? null : new IFC4_3.IfcIdentifier(v[2].value), !v[3] ? null : new Handle(v[3].value), !v[4] ? null : v[4].map((p) => new IFC4_3.IfcIdentifier(p.value)), new IFC4_3.IfcURIReference(v[5].value)), 3570813810: (id, v) => new IFC4_3.IfcIndexedColourMap(id, new Handle(v[0].value), !v[1] ? null : new IFC4_3.IfcNormalisedRatioMeasure(v[1].value), new Handle(v[2].value), v[3].map((p) => new IFC4_3.IfcPositiveInteger(p.value))), 1437953363: (id, v) => new IFC4_3.IfcIndexedTextureMap(id, v[0].map((p) => new Handle(p.value)), new Handle(v[1].value), new Handle(v[2].value)), 2133299955: (id, v) => new IFC4_3.IfcIndexedTriangleTextureMap(id, v[0].map((p) => new Handle(p.value)), new Handle(v[1].value), new Handle(v[2].value), !v[3] ? null : v[3].map((p) => new IFC4_3.IfcPositiveInteger(p.value))), 3741457305: (id, v) => new IFC4_3.IfcIrregularTimeSeries(id, new IFC4_3.IfcLabel(v[0].value), !v[1] ? null : new IFC4_3.IfcText(v[1].value), new IFC4_3.IfcDateTime(v[2].value), new IFC4_3.IfcDateTime(v[3].value), v[4], v[5], !v[6] ? null : new IFC4_3.IfcLabel(v[6].value), !v[7] ? null : new Handle(v[7].value), v[8].map((p) => new Handle(p.value))), 1585845231: (id, v) => new IFC4_3.IfcLagTime(id, !v[0] ? null : new IFC4_3.IfcLabel(v[0].value), v[1], !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), TypeInitialiser(2, v[3]), v[4]), 1402838566: (id, v) => new IFC4_3.IfcLightSource(id, !v[0] ? null : new IFC4_3.IfcLabel(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcNormalisedRatioMeasure(v[2].value), !v[3] ? null : new IFC4_3.IfcNormalisedRatioMeasure(v[3].value)), 125510826: (id, v) => new IFC4_3.IfcLightSourceAmbient(id, !v[0] ? null : new IFC4_3.IfcLabel(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcNormalisedRatioMeasure(v[2].value), !v[3] ? null : new IFC4_3.IfcNormalisedRatioMeasure(v[3].value)), 2604431987: (id, v) => new IFC4_3.IfcLightSourceDirectional(id, !v[0] ? null : new IFC4_3.IfcLabel(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcNormalisedRatioMeasure(v[2].value), !v[3] ? null : new IFC4_3.IfcNormalisedRatioMeasure(v[3].value), new Handle(v[4].value)), 4266656042: (id, v) => new IFC4_3.IfcLightSourceGoniometric(id, !v[0] ? null : new IFC4_3.IfcLabel(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcNormalisedRatioMeasure(v[2].value), !v[3] ? null : new IFC4_3.IfcNormalisedRatioMeasure(v[3].value), new Handle(v[4].value), !v[5] ? null : new Handle(v[5].value), new IFC4_3.IfcThermodynamicTemperatureMeasure(v[6].value), new IFC4_3.IfcLuminousFluxMeasure(v[7].value), v[8], new Handle(v[9].value)), 1520743889: (id, v) => new IFC4_3.IfcLightSourcePositional(id, !v[0] ? null : new IFC4_3.IfcLabel(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcNormalisedRatioMeasure(v[2].value), !v[3] ? null : new IFC4_3.IfcNormalisedRatioMeasure(v[3].value), new Handle(v[4].value), new IFC4_3.IfcPositiveLengthMeasure(v[5].value), new IFC4_3.IfcReal(v[6].value), new IFC4_3.IfcReal(v[7].value), new IFC4_3.IfcReal(v[8].value)), 3422422726: (id, v) => new IFC4_3.IfcLightSourceSpot(id, !v[0] ? null : new IFC4_3.IfcLabel(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcNormalisedRatioMeasure(v[2].value), !v[3] ? null : new IFC4_3.IfcNormalisedRatioMeasure(v[3].value), new Handle(v[4].value), new IFC4_3.IfcPositiveLengthMeasure(v[5].value), new IFC4_3.IfcReal(v[6].value), new IFC4_3.IfcReal(v[7].value), new IFC4_3.IfcReal(v[8].value), new Handle(v[9].value), !v[10] ? null : new IFC4_3.IfcReal(v[10].value), new IFC4_3.IfcPositivePlaneAngleMeasure(v[11].value), new IFC4_3.IfcPositivePlaneAngleMeasure(v[12].value)), 388784114: (id, v) => new IFC4_3.IfcLinearPlacement(id, !v[0] ? null : new Handle(v[0].value), new Handle(v[1].value), !v[2] ? null : new Handle(v[2].value)), 2624227202: (id, v) => new IFC4_3.IfcLocalPlacement(id, !v[0] ? null : new Handle(v[0].value), new Handle(v[1].value)), 1008929658: (id, _) => new IFC4_3.IfcLoop(id), 2347385850: (id, v) => new IFC4_3.IfcMappedItem(id, new Handle(v[0].value), new Handle(v[1].value)), 1838606355: (id, v) => new IFC4_3.IfcMaterial(id, new IFC4_3.IfcLabel(v[0].value), !v[1] ? null : new IFC4_3.IfcText(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value)), 3708119e3: (id, v) => new IFC4_3.IfcMaterialConstituent(id, !v[0] ? null : new IFC4_3.IfcLabel(v[0].value), !v[1] ? null : new IFC4_3.IfcText(v[1].value), new Handle(v[2].value), !v[3] ? null : new IFC4_3.IfcNormalisedRatioMeasure(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value)), 2852063980: (id, v) => new IFC4_3.IfcMaterialConstituentSet(id, !v[0] ? null : new IFC4_3.IfcLabel(v[0].value), !v[1] ? null : new IFC4_3.IfcText(v[1].value), !v[2] ? null : v[2].map((p) => new Handle(p.value))), 2022407955: (id, v) => new IFC4_3.IfcMaterialDefinitionRepresentation(id, !v[0] ? null : new IFC4_3.IfcLabel(v[0].value), !v[1] ? null : new IFC4_3.IfcText(v[1].value), v[2].map((p) => new Handle(p.value)), new Handle(v[3].value)), 1303795690: (id, v) => new IFC4_3.IfcMaterialLayerSetUsage(id, new Handle(v[0].value), v[1], v[2], new IFC4_3.IfcLengthMeasure(v[3].value), !v[4] ? null : new IFC4_3.IfcPositiveLengthMeasure(v[4].value)), 3079605661: (id, v) => new IFC4_3.IfcMaterialProfileSetUsage(id, new Handle(v[0].value), !v[1] ? null : new IFC4_3.IfcCardinalPointReference(v[1].value), !v[2] ? null : new IFC4_3.IfcPositiveLengthMeasure(v[2].value)), 3404854881: (id, v) => new IFC4_3.IfcMaterialProfileSetUsageTapering(id, new Handle(v[0].value), !v[1] ? null : new IFC4_3.IfcCardinalPointReference(v[1].value), !v[2] ? null : new IFC4_3.IfcPositiveLengthMeasure(v[2].value), new Handle(v[3].value), !v[4] ? null : new IFC4_3.IfcCardinalPointReference(v[4].value)), 3265635763: (id, v) => new IFC4_3.IfcMaterialProperties(id, !v[0] ? null : new IFC4_3.IfcIdentifier(v[0].value), !v[1] ? null : new IFC4_3.IfcText(v[1].value), v[2].map((p) => new Handle(p.value)), new Handle(v[3].value)), 853536259: (id, v) => new IFC4_3.IfcMaterialRelationship(id, !v[0] ? null : new IFC4_3.IfcLabel(v[0].value), !v[1] ? null : new IFC4_3.IfcText(v[1].value), new Handle(v[2].value), v[3].map((p) => new Handle(p.value)), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value)), 2998442950: (id, v) => new IFC4_3.IfcMirroredProfileDef(id, v[0], !v[1] ? null : new IFC4_3.IfcLabel(v[1].value), new Handle(v[2].value), new Handle(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value)), 219451334: (id, v) => new IFC4_3.IfcObjectDefinition(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value)), 182550632: (id, v) => new IFC4_3.IfcOpenCrossProfileDef(id, v[0], !v[1] ? null : new IFC4_3.IfcLabel(v[1].value), new IFC4_3.IfcBoolean(v[2].value), v[3].map((p) => new IFC4_3.IfcNonNegativeLengthMeasure(p.value)), v[4].map((p) => new IFC4_3.IfcPlaneAngleMeasure(p.value)), !v[5] ? null : v[5].map((p) => new IFC4_3.IfcLabel(p.value)), !v[6] ? null : new Handle(v[6].value)), 2665983363: (id, v) => new IFC4_3.IfcOpenShell(id, v[0].map((p) => new Handle(p.value))), 1411181986: (id, v) => new IFC4_3.IfcOrganizationRelationship(id, !v[0] ? null : new IFC4_3.IfcLabel(v[0].value), !v[1] ? null : new IFC4_3.IfcText(v[1].value), new Handle(v[2].value), v[3].map((p) => new Handle(p.value))), 1029017970: (id, v) => new IFC4_3.IfcOrientedEdge(id, new Handle(v[0].value), new Handle(v[1].value), new IFC4_3.IfcBoolean(v[2].value)), 2529465313: (id, v) => new IFC4_3.IfcParameterizedProfileDef(id, v[0], !v[1] ? null : new IFC4_3.IfcLabel(v[1].value), !v[2] ? null : new Handle(v[2].value)), 2519244187: (id, v) => new IFC4_3.IfcPath(id, v[0].map((p) => new Handle(p.value))), 3021840470: (id, v) => new IFC4_3.IfcPhysicalComplexQuantity(id, new IFC4_3.IfcLabel(v[0].value), !v[1] ? null : new IFC4_3.IfcText(v[1].value), v[2].map((p) => new Handle(p.value)), new IFC4_3.IfcLabel(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new IFC4_3.IfcLabel(v[5].value)), 597895409: (id, v) => new IFC4_3.IfcPixelTexture(id, new IFC4_3.IfcBoolean(v[0].value), new IFC4_3.IfcBoolean(v[1].value), !v[2] ? null : new IFC4_3.IfcIdentifier(v[2].value), !v[3] ? null : new Handle(v[3].value), !v[4] ? null : v[4].map((p) => new IFC4_3.IfcIdentifier(p.value)), new IFC4_3.IfcInteger(v[5].value), new IFC4_3.IfcInteger(v[6].value), new IFC4_3.IfcInteger(v[7].value), v[8].map((p) => new IFC4_3.IfcBinary(p.value))), 2004835150: (id, v) => new IFC4_3.IfcPlacement(id, new Handle(v[0].value)), 1663979128: (id, v) => new IFC4_3.IfcPlanarExtent(id, new IFC4_3.IfcLengthMeasure(v[0].value), new IFC4_3.IfcLengthMeasure(v[1].value)), 2067069095: (id, _) => new IFC4_3.IfcPoint(id), 2165702409: (id, v) => new IFC4_3.IfcPointByDistanceExpression(id, TypeInitialiser(2, v[0]), !v[1] ? null : new IFC4_3.IfcLengthMeasure(v[1].value), !v[2] ? null : new IFC4_3.IfcLengthMeasure(v[2].value), !v[3] ? null : new IFC4_3.IfcLengthMeasure(v[3].value), new Handle(v[4].value)), 4022376103: (id, v) => new IFC4_3.IfcPointOnCurve(id, new Handle(v[0].value), new IFC4_3.IfcParameterValue(v[1].value)), 1423911732: (id, v) => new IFC4_3.IfcPointOnSurface(id, new Handle(v[0].value), new IFC4_3.IfcParameterValue(v[1].value), new IFC4_3.IfcParameterValue(v[2].value)), 2924175390: (id, v) => new IFC4_3.IfcPolyLoop(id, v[0].map((p) => new Handle(p.value))), 2775532180: (id, v) => new IFC4_3.IfcPolygonalBoundedHalfSpace(id, new Handle(v[0].value), new IFC4_3.IfcBoolean(v[1].value), new Handle(v[2].value), new Handle(v[3].value)), 3727388367: (id, v) => new IFC4_3.IfcPreDefinedItem(id, new IFC4_3.IfcLabel(v[0].value)), 3778827333: (id, _) => new IFC4_3.IfcPreDefinedProperties(id), 1775413392: (id, v) => new IFC4_3.IfcPreDefinedTextFont(id, new IFC4_3.IfcLabel(v[0].value)), 673634403: (id, v) => new IFC4_3.IfcProductDefinitionShape(id, !v[0] ? null : new IFC4_3.IfcLabel(v[0].value), !v[1] ? null : new IFC4_3.IfcText(v[1].value), v[2].map((p) => new Handle(p.value))), 2802850158: (id, v) => new IFC4_3.IfcProfileProperties(id, !v[0] ? null : new IFC4_3.IfcIdentifier(v[0].value), !v[1] ? null : new IFC4_3.IfcText(v[1].value), v[2].map((p) => new Handle(p.value)), new Handle(v[3].value)), 2598011224: (id, v) => new IFC4_3.IfcProperty(id, new IFC4_3.IfcIdentifier(v[0].value), !v[1] ? null : new IFC4_3.IfcText(v[1].value)), 1680319473: (id, v) => new IFC4_3.IfcPropertyDefinition(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value)), 148025276: (id, v) => new IFC4_3.IfcPropertyDependencyRelationship(id, !v[0] ? null : new IFC4_3.IfcLabel(v[0].value), !v[1] ? null : new IFC4_3.IfcText(v[1].value), new Handle(v[2].value), new Handle(v[3].value), !v[4] ? null : new IFC4_3.IfcText(v[4].value)), 3357820518: (id, v) => new IFC4_3.IfcPropertySetDefinition(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value)), 1482703590: (id, v) => new IFC4_3.IfcPropertyTemplateDefinition(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value)), 2090586900: (id, v) => new IFC4_3.IfcQuantitySet(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value)), 3615266464: (id, v) => new IFC4_3.IfcRectangleProfileDef(id, v[0], !v[1] ? null : new IFC4_3.IfcLabel(v[1].value), !v[2] ? null : new Handle(v[2].value), new IFC4_3.IfcPositiveLengthMeasure(v[3].value), new IFC4_3.IfcPositiveLengthMeasure(v[4].value)), 3413951693: (id, v) => new IFC4_3.IfcRegularTimeSeries(id, new IFC4_3.IfcLabel(v[0].value), !v[1] ? null : new IFC4_3.IfcText(v[1].value), new IFC4_3.IfcDateTime(v[2].value), new IFC4_3.IfcDateTime(v[3].value), v[4], v[5], !v[6] ? null : new IFC4_3.IfcLabel(v[6].value), !v[7] ? null : new Handle(v[7].value), new IFC4_3.IfcTimeMeasure(v[8].value), v[9].map((p) => new Handle(p.value))), 1580146022: (id, v) => new IFC4_3.IfcReinforcementBarProperties(id, new IFC4_3.IfcAreaMeasure(v[0].value), new IFC4_3.IfcLabel(v[1].value), v[2], !v[3] ? null : new IFC4_3.IfcLengthMeasure(v[3].value), !v[4] ? null : new IFC4_3.IfcPositiveLengthMeasure(v[4].value), !v[5] ? null : new IFC4_3.IfcCountMeasure(v[5].value)), 478536968: (id, v) => new IFC4_3.IfcRelationship(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value)), 2943643501: (id, v) => new IFC4_3.IfcResourceApprovalRelationship(id, !v[0] ? null : new IFC4_3.IfcLabel(v[0].value), !v[1] ? null : new IFC4_3.IfcText(v[1].value), v[2].map((p) => new Handle(p.value)), new Handle(v[3].value)), 1608871552: (id, v) => new IFC4_3.IfcResourceConstraintRelationship(id, !v[0] ? null : new IFC4_3.IfcLabel(v[0].value), !v[1] ? null : new IFC4_3.IfcText(v[1].value), new Handle(v[2].value), v[3].map((p) => new Handle(p.value))), 1042787934: (id, v) => new IFC4_3.IfcResourceTime(id, !v[0] ? null : new IFC4_3.IfcLabel(v[0].value), v[1], !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcDuration(v[3].value), !v[4] ? null : new IFC4_3.IfcPositiveRatioMeasure(v[4].value), !v[5] ? null : new IFC4_3.IfcDateTime(v[5].value), !v[6] ? null : new IFC4_3.IfcDateTime(v[6].value), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcDuration(v[8].value), !v[9] ? null : new IFC4_3.IfcBoolean(v[9].value), !v[10] ? null : new IFC4_3.IfcDateTime(v[10].value), !v[11] ? null : new IFC4_3.IfcDuration(v[11].value), !v[12] ? null : new IFC4_3.IfcPositiveRatioMeasure(v[12].value), !v[13] ? null : new IFC4_3.IfcDateTime(v[13].value), !v[14] ? null : new IFC4_3.IfcDateTime(v[14].value), !v[15] ? null : new IFC4_3.IfcDuration(v[15].value), !v[16] ? null : new IFC4_3.IfcPositiveRatioMeasure(v[16].value), !v[17] ? null : new IFC4_3.IfcPositiveRatioMeasure(v[17].value)), 2778083089: (id, v) => new IFC4_3.IfcRoundedRectangleProfileDef(id, v[0], !v[1] ? null : new IFC4_3.IfcLabel(v[1].value), !v[2] ? null : new Handle(v[2].value), new IFC4_3.IfcPositiveLengthMeasure(v[3].value), new IFC4_3.IfcPositiveLengthMeasure(v[4].value), new IFC4_3.IfcPositiveLengthMeasure(v[5].value)), 2042790032: (id, v) => new IFC4_3.IfcSectionProperties(id, v[0], new Handle(v[1].value), !v[2] ? null : new Handle(v[2].value)), 4165799628: (id, v) => new IFC4_3.IfcSectionReinforcementProperties(id, new IFC4_3.IfcLengthMeasure(v[0].value), new IFC4_3.IfcLengthMeasure(v[1].value), !v[2] ? null : new IFC4_3.IfcLengthMeasure(v[2].value), v[3], new Handle(v[4].value), v[5].map((p) => new Handle(p.value))), 1509187699: (id, v) => new IFC4_3.IfcSectionedSpine(id, new Handle(v[0].value), v[1].map((p) => new Handle(p.value)), v[2].map((p) => new Handle(p.value))), 823603102: (id, v) => new IFC4_3.IfcSegment(id, v[0]), 4124623270: (id, v) => new IFC4_3.IfcShellBasedSurfaceModel(id, v[0].map((p) => new Handle(p.value))), 3692461612: (id, v) => new IFC4_3.IfcSimpleProperty(id, new IFC4_3.IfcIdentifier(v[0].value), !v[1] ? null : new IFC4_3.IfcText(v[1].value)), 2609359061: (id, v) => new IFC4_3.IfcSlippageConnectionCondition(id, !v[0] ? null : new IFC4_3.IfcLabel(v[0].value), !v[1] ? null : new IFC4_3.IfcLengthMeasure(v[1].value), !v[2] ? null : new IFC4_3.IfcLengthMeasure(v[2].value), !v[3] ? null : new IFC4_3.IfcLengthMeasure(v[3].value)), 723233188: (id, _) => new IFC4_3.IfcSolidModel(id), 1595516126: (id, v) => new IFC4_3.IfcStructuralLoadLinearForce(id, !v[0] ? null : new IFC4_3.IfcLabel(v[0].value), !v[1] ? null : new IFC4_3.IfcLinearForceMeasure(v[1].value), !v[2] ? null : new IFC4_3.IfcLinearForceMeasure(v[2].value), !v[3] ? null : new IFC4_3.IfcLinearForceMeasure(v[3].value), !v[4] ? null : new IFC4_3.IfcLinearMomentMeasure(v[4].value), !v[5] ? null : new IFC4_3.IfcLinearMomentMeasure(v[5].value), !v[6] ? null : new IFC4_3.IfcLinearMomentMeasure(v[6].value)), 2668620305: (id, v) => new IFC4_3.IfcStructuralLoadPlanarForce(id, !v[0] ? null : new IFC4_3.IfcLabel(v[0].value), !v[1] ? null : new IFC4_3.IfcPlanarForceMeasure(v[1].value), !v[2] ? null : new IFC4_3.IfcPlanarForceMeasure(v[2].value), !v[3] ? null : new IFC4_3.IfcPlanarForceMeasure(v[3].value)), 2473145415: (id, v) => new IFC4_3.IfcStructuralLoadSingleDisplacement(id, !v[0] ? null : new IFC4_3.IfcLabel(v[0].value), !v[1] ? null : new IFC4_3.IfcLengthMeasure(v[1].value), !v[2] ? null : new IFC4_3.IfcLengthMeasure(v[2].value), !v[3] ? null : new IFC4_3.IfcLengthMeasure(v[3].value), !v[4] ? null : new IFC4_3.IfcPlaneAngleMeasure(v[4].value), !v[5] ? null : new IFC4_3.IfcPlaneAngleMeasure(v[5].value), !v[6] ? null : new IFC4_3.IfcPlaneAngleMeasure(v[6].value)), 1973038258: (id, v) => new IFC4_3.IfcStructuralLoadSingleDisplacementDistortion(id, !v[0] ? null : new IFC4_3.IfcLabel(v[0].value), !v[1] ? null : new IFC4_3.IfcLengthMeasure(v[1].value), !v[2] ? null : new IFC4_3.IfcLengthMeasure(v[2].value), !v[3] ? null : new IFC4_3.IfcLengthMeasure(v[3].value), !v[4] ? null : new IFC4_3.IfcPlaneAngleMeasure(v[4].value), !v[5] ? null : new IFC4_3.IfcPlaneAngleMeasure(v[5].value), !v[6] ? null : new IFC4_3.IfcPlaneAngleMeasure(v[6].value), !v[7] ? null : new IFC4_3.IfcCurvatureMeasure(v[7].value)), 1597423693: (id, v) => new IFC4_3.IfcStructuralLoadSingleForce(id, !v[0] ? null : new IFC4_3.IfcLabel(v[0].value), !v[1] ? null : new IFC4_3.IfcForceMeasure(v[1].value), !v[2] ? null : new IFC4_3.IfcForceMeasure(v[2].value), !v[3] ? null : new IFC4_3.IfcForceMeasure(v[3].value), !v[4] ? null : new IFC4_3.IfcTorqueMeasure(v[4].value), !v[5] ? null : new IFC4_3.IfcTorqueMeasure(v[5].value), !v[6] ? null : new IFC4_3.IfcTorqueMeasure(v[6].value)), 1190533807: (id, v) => new IFC4_3.IfcStructuralLoadSingleForceWarping(id, !v[0] ? null : new IFC4_3.IfcLabel(v[0].value), !v[1] ? null : new IFC4_3.IfcForceMeasure(v[1].value), !v[2] ? null : new IFC4_3.IfcForceMeasure(v[2].value), !v[3] ? null : new IFC4_3.IfcForceMeasure(v[3].value), !v[4] ? null : new IFC4_3.IfcTorqueMeasure(v[4].value), !v[5] ? null : new IFC4_3.IfcTorqueMeasure(v[5].value), !v[6] ? null : new IFC4_3.IfcTorqueMeasure(v[6].value), !v[7] ? null : new IFC4_3.IfcWarpingMomentMeasure(v[7].value)), 2233826070: (id, v) => new IFC4_3.IfcSubedge(id, new Handle(v[0].value), new Handle(v[1].value), new Handle(v[2].value)), 2513912981: (id, _) => new IFC4_3.IfcSurface(id), 1878645084: (id, v) => new IFC4_3.IfcSurfaceStyleRendering(id, new Handle(v[0].value), !v[1] ? null : new IFC4_3.IfcNormalisedRatioMeasure(v[1].value), !v[2] ? null : new Handle(v[2].value), !v[3] ? null : new Handle(v[3].value), !v[4] ? null : new Handle(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : TypeInitialiser(2, v[7]), v[8]), 2247615214: (id, v) => new IFC4_3.IfcSweptAreaSolid(id, new Handle(v[0].value), !v[1] ? null : new Handle(v[1].value)), 1260650574: (id, v) => new IFC4_3.IfcSweptDiskSolid(id, new Handle(v[0].value), new IFC4_3.IfcPositiveLengthMeasure(v[1].value), !v[2] ? null : new IFC4_3.IfcPositiveLengthMeasure(v[2].value), !v[3] ? null : new IFC4_3.IfcParameterValue(v[3].value), !v[4] ? null : new IFC4_3.IfcParameterValue(v[4].value)), 1096409881: (id, v) => new IFC4_3.IfcSweptDiskSolidPolygonal(id, new Handle(v[0].value), new IFC4_3.IfcPositiveLengthMeasure(v[1].value), !v[2] ? null : new IFC4_3.IfcPositiveLengthMeasure(v[2].value), !v[3] ? null : new IFC4_3.IfcParameterValue(v[3].value), !v[4] ? null : new IFC4_3.IfcParameterValue(v[4].value), !v[5] ? null : new IFC4_3.IfcNonNegativeLengthMeasure(v[5].value)), 230924584: (id, v) => new IFC4_3.IfcSweptSurface(id, new Handle(v[0].value), !v[1] ? null : new Handle(v[1].value)), 3071757647: (id, v) => new IFC4_3.IfcTShapeProfileDef(id, v[0], !v[1] ? null : new IFC4_3.IfcLabel(v[1].value), !v[2] ? null : new Handle(v[2].value), new IFC4_3.IfcPositiveLengthMeasure(v[3].value), new IFC4_3.IfcPositiveLengthMeasure(v[4].value), new IFC4_3.IfcPositiveLengthMeasure(v[5].value), new IFC4_3.IfcPositiveLengthMeasure(v[6].value), !v[7] ? null : new IFC4_3.IfcNonNegativeLengthMeasure(v[7].value), !v[8] ? null : new IFC4_3.IfcNonNegativeLengthMeasure(v[8].value), !v[9] ? null : new IFC4_3.IfcNonNegativeLengthMeasure(v[9].value), !v[10] ? null : new IFC4_3.IfcPlaneAngleMeasure(v[10].value), !v[11] ? null : new IFC4_3.IfcPlaneAngleMeasure(v[11].value)), 901063453: (id, _) => new IFC4_3.IfcTessellatedItem(id), 4282788508: (id, v) => new IFC4_3.IfcTextLiteral(id, new IFC4_3.IfcPresentableText(v[0].value), new Handle(v[1].value), v[2]), 3124975700: (id, v) => new IFC4_3.IfcTextLiteralWithExtent(id, new IFC4_3.IfcPresentableText(v[0].value), new Handle(v[1].value), v[2], new Handle(v[3].value), new IFC4_3.IfcBoxAlignment(v[4].value)), 1983826977: (id, v) => new IFC4_3.IfcTextStyleFontModel(id, new IFC4_3.IfcLabel(v[0].value), v[1].map((p) => new IFC4_3.IfcTextFontName(p.value)), !v[2] ? null : new IFC4_3.IfcFontStyle(v[2].value), !v[3] ? null : new IFC4_3.IfcFontVariant(v[3].value), !v[4] ? null : new IFC4_3.IfcFontWeight(v[4].value), TypeInitialiser(2, v[5])), 2715220739: (id, v) => new IFC4_3.IfcTrapeziumProfileDef(id, v[0], !v[1] ? null : new IFC4_3.IfcLabel(v[1].value), !v[2] ? null : new Handle(v[2].value), new IFC4_3.IfcPositiveLengthMeasure(v[3].value), new IFC4_3.IfcPositiveLengthMeasure(v[4].value), new IFC4_3.IfcPositiveLengthMeasure(v[5].value), new IFC4_3.IfcLengthMeasure(v[6].value)), 1628702193: (id, v) => new IFC4_3.IfcTypeObject(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value))), 3736923433: (id, v) => new IFC4_3.IfcTypeProcess(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : new IFC4_3.IfcIdentifier(v[6].value), !v[7] ? null : new IFC4_3.IfcText(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value)), 2347495698: (id, v) => new IFC4_3.IfcTypeProduct(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value)), 3698973494: (id, v) => new IFC4_3.IfcTypeResource(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : new IFC4_3.IfcIdentifier(v[6].value), !v[7] ? null : new IFC4_3.IfcText(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value)), 427810014: (id, v) => new IFC4_3.IfcUShapeProfileDef(id, v[0], !v[1] ? null : new IFC4_3.IfcLabel(v[1].value), !v[2] ? null : new Handle(v[2].value), new IFC4_3.IfcPositiveLengthMeasure(v[3].value), new IFC4_3.IfcPositiveLengthMeasure(v[4].value), new IFC4_3.IfcPositiveLengthMeasure(v[5].value), new IFC4_3.IfcPositiveLengthMeasure(v[6].value), !v[7] ? null : new IFC4_3.IfcNonNegativeLengthMeasure(v[7].value), !v[8] ? null : new IFC4_3.IfcNonNegativeLengthMeasure(v[8].value), !v[9] ? null : new IFC4_3.IfcPlaneAngleMeasure(v[9].value)), 1417489154: (id, v) => new IFC4_3.IfcVector(id, new Handle(v[0].value), new IFC4_3.IfcLengthMeasure(v[1].value)), 2759199220: (id, v) => new IFC4_3.IfcVertexLoop(id, new Handle(v[0].value)), 2543172580: (id, v) => new IFC4_3.IfcZShapeProfileDef(id, v[0], !v[1] ? null : new IFC4_3.IfcLabel(v[1].value), !v[2] ? null : new Handle(v[2].value), new IFC4_3.IfcPositiveLengthMeasure(v[3].value), new IFC4_3.IfcPositiveLengthMeasure(v[4].value), new IFC4_3.IfcPositiveLengthMeasure(v[5].value), new IFC4_3.IfcPositiveLengthMeasure(v[6].value), !v[7] ? null : new IFC4_3.IfcNonNegativeLengthMeasure(v[7].value), !v[8] ? null : new IFC4_3.IfcNonNegativeLengthMeasure(v[8].value)), 3406155212: (id, v) => new IFC4_3.IfcAdvancedFace(id, v[0].map((p) => new Handle(p.value)), new Handle(v[1].value), new IFC4_3.IfcBoolean(v[2].value)), 669184980: (id, v) => new IFC4_3.IfcAnnotationFillArea(id, new Handle(v[0].value), !v[1] ? null : v[1].map((p) => new Handle(p.value))), 3207858831: (id, v) => new IFC4_3.IfcAsymmetricIShapeProfileDef(id, v[0], !v[1] ? null : new IFC4_3.IfcLabel(v[1].value), !v[2] ? null : new Handle(v[2].value), new IFC4_3.IfcPositiveLengthMeasure(v[3].value), new IFC4_3.IfcPositiveLengthMeasure(v[4].value), new IFC4_3.IfcPositiveLengthMeasure(v[5].value), new IFC4_3.IfcPositiveLengthMeasure(v[6].value), !v[7] ? null : new IFC4_3.IfcNonNegativeLengthMeasure(v[7].value), new IFC4_3.IfcPositiveLengthMeasure(v[8].value), !v[9] ? null : new IFC4_3.IfcPositiveLengthMeasure(v[9].value), !v[10] ? null : new IFC4_3.IfcNonNegativeLengthMeasure(v[10].value), !v[11] ? null : new IFC4_3.IfcNonNegativeLengthMeasure(v[11].value), !v[12] ? null : new IFC4_3.IfcPlaneAngleMeasure(v[12].value), !v[13] ? null : new IFC4_3.IfcNonNegativeLengthMeasure(v[13].value), !v[14] ? null : new IFC4_3.IfcPlaneAngleMeasure(v[14].value)), 4261334040: (id, v) => new IFC4_3.IfcAxis1Placement(id, new Handle(v[0].value), !v[1] ? null : new Handle(v[1].value)), 3125803723: (id, v) => new IFC4_3.IfcAxis2Placement2D(id, new Handle(v[0].value), !v[1] ? null : new Handle(v[1].value)), 2740243338: (id, v) => new IFC4_3.IfcAxis2Placement3D(id, new Handle(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new Handle(v[2].value)), 3425423356: (id, v) => new IFC4_3.IfcAxis2PlacementLinear(id, new Handle(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new Handle(v[2].value)), 2736907675: (id, v) => new IFC4_3.IfcBooleanResult(id, v[0], new Handle(v[1].value), new Handle(v[2].value)), 4182860854: (id, _) => new IFC4_3.IfcBoundedSurface(id), 2581212453: (id, v) => new IFC4_3.IfcBoundingBox(id, new Handle(v[0].value), new IFC4_3.IfcPositiveLengthMeasure(v[1].value), new IFC4_3.IfcPositiveLengthMeasure(v[2].value), new IFC4_3.IfcPositiveLengthMeasure(v[3].value)), 2713105998: (id, v) => new IFC4_3.IfcBoxedHalfSpace(id, new Handle(v[0].value), new IFC4_3.IfcBoolean(v[1].value), new Handle(v[2].value)), 2898889636: (id, v) => new IFC4_3.IfcCShapeProfileDef(id, v[0], !v[1] ? null : new IFC4_3.IfcLabel(v[1].value), !v[2] ? null : new Handle(v[2].value), new IFC4_3.IfcPositiveLengthMeasure(v[3].value), new IFC4_3.IfcPositiveLengthMeasure(v[4].value), new IFC4_3.IfcPositiveLengthMeasure(v[5].value), new IFC4_3.IfcPositiveLengthMeasure(v[6].value), !v[7] ? null : new IFC4_3.IfcNonNegativeLengthMeasure(v[7].value)), 1123145078: (id, v) => new IFC4_3.IfcCartesianPoint(id, v[0].map((p) => new IFC4_3.IfcLengthMeasure(p.value))), 574549367: (id, _) => new IFC4_3.IfcCartesianPointList(id), 1675464909: (id, v) => new IFC4_3.IfcCartesianPointList2D(id, v[0].map((p) => new IFC4_3.IfcLengthMeasure(p.value)), !v[1] ? null : v[1].map((p) => new IFC4_3.IfcLabel(p.value))), 2059837836: (id, v) => new IFC4_3.IfcCartesianPointList3D(id, v[0].map((p) => new IFC4_3.IfcLengthMeasure(p.value)), !v[1] ? null : v[1].map((p) => new IFC4_3.IfcLabel(p.value))), 59481748: (id, v) => new IFC4_3.IfcCartesianTransformationOperator(id, !v[0] ? null : new Handle(v[0].value), !v[1] ? null : new Handle(v[1].value), new Handle(v[2].value), !v[3] ? null : new IFC4_3.IfcReal(v[3].value)), 3749851601: (id, v) => new IFC4_3.IfcCartesianTransformationOperator2D(id, !v[0] ? null : new Handle(v[0].value), !v[1] ? null : new Handle(v[1].value), new Handle(v[2].value), !v[3] ? null : new IFC4_3.IfcReal(v[3].value)), 3486308946: (id, v) => new IFC4_3.IfcCartesianTransformationOperator2DnonUniform(id, !v[0] ? null : new Handle(v[0].value), !v[1] ? null : new Handle(v[1].value), new Handle(v[2].value), !v[3] ? null : new IFC4_3.IfcReal(v[3].value), !v[4] ? null : new IFC4_3.IfcReal(v[4].value)), 3331915920: (id, v) => new IFC4_3.IfcCartesianTransformationOperator3D(id, !v[0] ? null : new Handle(v[0].value), !v[1] ? null : new Handle(v[1].value), new Handle(v[2].value), !v[3] ? null : new IFC4_3.IfcReal(v[3].value), !v[4] ? null : new Handle(v[4].value)), 1416205885: (id, v) => new IFC4_3.IfcCartesianTransformationOperator3DnonUniform(id, !v[0] ? null : new Handle(v[0].value), !v[1] ? null : new Handle(v[1].value), new Handle(v[2].value), !v[3] ? null : new IFC4_3.IfcReal(v[3].value), !v[4] ? null : new Handle(v[4].value), !v[5] ? null : new IFC4_3.IfcReal(v[5].value), !v[6] ? null : new IFC4_3.IfcReal(v[6].value)), 1383045692: (id, v) => new IFC4_3.IfcCircleProfileDef(id, v[0], !v[1] ? null : new IFC4_3.IfcLabel(v[1].value), !v[2] ? null : new Handle(v[2].value), new IFC4_3.IfcPositiveLengthMeasure(v[3].value)), 2205249479: (id, v) => new IFC4_3.IfcClosedShell(id, v[0].map((p) => new Handle(p.value))), 776857604: (id, v) => new IFC4_3.IfcColourRgb(id, !v[0] ? null : new IFC4_3.IfcLabel(v[0].value), new IFC4_3.IfcNormalisedRatioMeasure(v[1].value), new IFC4_3.IfcNormalisedRatioMeasure(v[2].value), new IFC4_3.IfcNormalisedRatioMeasure(v[3].value)), 2542286263: (id, v) => new IFC4_3.IfcComplexProperty(id, new IFC4_3.IfcIdentifier(v[0].value), !v[1] ? null : new IFC4_3.IfcText(v[1].value), new IFC4_3.IfcIdentifier(v[2].value), v[3].map((p) => new Handle(p.value))), 2485617015: (id, v) => new IFC4_3.IfcCompositeCurveSegment(id, v[0], new IFC4_3.IfcBoolean(v[1].value), new Handle(v[2].value)), 2574617495: (id, v) => new IFC4_3.IfcConstructionResourceType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : new IFC4_3.IfcIdentifier(v[6].value), !v[7] ? null : new IFC4_3.IfcText(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), !v[9] ? null : v[9].map((p) => new Handle(p.value)), !v[10] ? null : new Handle(v[10].value)), 3419103109: (id, v) => new IFC4_3.IfcContext(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new IFC4_3.IfcLabel(v[5].value), !v[6] ? null : new IFC4_3.IfcLabel(v[6].value), !v[7] ? null : v[7].map((p) => new Handle(p.value)), !v[8] ? null : new Handle(v[8].value)), 1815067380: (id, v) => new IFC4_3.IfcCrewResourceType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : new IFC4_3.IfcIdentifier(v[6].value), !v[7] ? null : new IFC4_3.IfcText(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), !v[9] ? null : v[9].map((p) => new Handle(p.value)), !v[10] ? null : new Handle(v[10].value), v[11]), 2506170314: (id, v) => new IFC4_3.IfcCsgPrimitive3D(id, new Handle(v[0].value)), 2147822146: (id, v) => new IFC4_3.IfcCsgSolid(id, new Handle(v[0].value)), 2601014836: (id, _) => new IFC4_3.IfcCurve(id), 2827736869: (id, v) => new IFC4_3.IfcCurveBoundedPlane(id, new Handle(v[0].value), new Handle(v[1].value), v[2].map((p) => new Handle(p.value))), 2629017746: (id, v) => new IFC4_3.IfcCurveBoundedSurface(id, new Handle(v[0].value), v[1].map((p) => new Handle(p.value)), new IFC4_3.IfcBoolean(v[2].value)), 4212018352: (id, v) => new IFC4_3.IfcCurveSegment(id, v[0], new Handle(v[1].value), TypeInitialiser(2, v[2]), TypeInitialiser(2, v[3]), new Handle(v[4].value)), 32440307: (id, v) => new IFC4_3.IfcDirection(id, v[0].map((p) => new IFC4_3.IfcReal(p.value))), 593015953: (id, v) => new IFC4_3.IfcDirectrixCurveSweptAreaSolid(id, new Handle(v[0].value), !v[1] ? null : new Handle(v[1].value), new Handle(v[2].value), !v[3] ? null : TypeInitialiser(2, v[3]), !v[4] ? null : TypeInitialiser(2, v[4])), 1472233963: (id, v) => new IFC4_3.IfcEdgeLoop(id, v[0].map((p) => new Handle(p.value))), 1883228015: (id, v) => new IFC4_3.IfcElementQuantity(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), v[5].map((p) => new Handle(p.value))), 339256511: (id, v) => new IFC4_3.IfcElementType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value)), 2777663545: (id, v) => new IFC4_3.IfcElementarySurface(id, new Handle(v[0].value)), 2835456948: (id, v) => new IFC4_3.IfcEllipseProfileDef(id, v[0], !v[1] ? null : new IFC4_3.IfcLabel(v[1].value), !v[2] ? null : new Handle(v[2].value), new IFC4_3.IfcPositiveLengthMeasure(v[3].value), new IFC4_3.IfcPositiveLengthMeasure(v[4].value)), 4024345920: (id, v) => new IFC4_3.IfcEventType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : new IFC4_3.IfcIdentifier(v[6].value), !v[7] ? null : new IFC4_3.IfcText(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9], v[10], !v[11] ? null : new IFC4_3.IfcLabel(v[11].value)), 477187591: (id, v) => new IFC4_3.IfcExtrudedAreaSolid(id, new Handle(v[0].value), !v[1] ? null : new Handle(v[1].value), new Handle(v[2].value), new IFC4_3.IfcPositiveLengthMeasure(v[3].value)), 2804161546: (id, v) => new IFC4_3.IfcExtrudedAreaSolidTapered(id, new Handle(v[0].value), !v[1] ? null : new Handle(v[1].value), new Handle(v[2].value), new IFC4_3.IfcPositiveLengthMeasure(v[3].value), new Handle(v[4].value)), 2047409740: (id, v) => new IFC4_3.IfcFaceBasedSurfaceModel(id, v[0].map((p) => new Handle(p.value))), 374418227: (id, v) => new IFC4_3.IfcFillAreaStyleHatching(id, new Handle(v[0].value), new Handle(v[1].value), !v[2] ? null : new Handle(v[2].value), !v[3] ? null : new Handle(v[3].value), new IFC4_3.IfcPlaneAngleMeasure(v[4].value)), 315944413: (id, v) => new IFC4_3.IfcFillAreaStyleTiles(id, v[0].map((p) => new Handle(p.value)), v[1].map((p) => new Handle(p.value)), new IFC4_3.IfcPositiveRatioMeasure(v[2].value)), 2652556860: (id, v) => new IFC4_3.IfcFixedReferenceSweptAreaSolid(id, new Handle(v[0].value), !v[1] ? null : new Handle(v[1].value), new Handle(v[2].value), !v[3] ? null : TypeInitialiser(2, v[3]), !v[4] ? null : TypeInitialiser(2, v[4]), new Handle(v[5].value)), 4238390223: (id, v) => new IFC4_3.IfcFurnishingElementType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value)), 1268542332: (id, v) => new IFC4_3.IfcFurnitureType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9], v[10]), 4095422895: (id, v) => new IFC4_3.IfcGeographicElementType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]), 987898635: (id, v) => new IFC4_3.IfcGeometricCurveSet(id, v[0].map((p) => new Handle(p.value))), 1484403080: (id, v) => new IFC4_3.IfcIShapeProfileDef(id, v[0], !v[1] ? null : new IFC4_3.IfcLabel(v[1].value), !v[2] ? null : new Handle(v[2].value), new IFC4_3.IfcPositiveLengthMeasure(v[3].value), new IFC4_3.IfcPositiveLengthMeasure(v[4].value), new IFC4_3.IfcPositiveLengthMeasure(v[5].value), new IFC4_3.IfcPositiveLengthMeasure(v[6].value), !v[7] ? null : new IFC4_3.IfcNonNegativeLengthMeasure(v[7].value), !v[8] ? null : new IFC4_3.IfcNonNegativeLengthMeasure(v[8].value), !v[9] ? null : new IFC4_3.IfcPlaneAngleMeasure(v[9].value)), 178912537: (id, v) => new IFC4_3.IfcIndexedPolygonalFace(id, v[0].map((p) => new IFC4_3.IfcPositiveInteger(p.value))), 2294589976: (id, v) => new IFC4_3.IfcIndexedPolygonalFaceWithVoids(id, v[0].map((p) => new IFC4_3.IfcPositiveInteger(p.value)), v[1].map((p) => new IFC4_3.IfcPositiveInteger(p.value))), 3465909080: (id, v) => new IFC4_3.IfcIndexedPolygonalTextureMap(id, v[0].map((p) => new Handle(p.value)), new Handle(v[1].value), new Handle(v[2].value), v[3].map((p) => new Handle(p.value))), 572779678: (id, v) => new IFC4_3.IfcLShapeProfileDef(id, v[0], !v[1] ? null : new IFC4_3.IfcLabel(v[1].value), !v[2] ? null : new Handle(v[2].value), new IFC4_3.IfcPositiveLengthMeasure(v[3].value), !v[4] ? null : new IFC4_3.IfcPositiveLengthMeasure(v[4].value), new IFC4_3.IfcPositiveLengthMeasure(v[5].value), !v[6] ? null : new IFC4_3.IfcNonNegativeLengthMeasure(v[6].value), !v[7] ? null : new IFC4_3.IfcNonNegativeLengthMeasure(v[7].value), !v[8] ? null : new IFC4_3.IfcPlaneAngleMeasure(v[8].value)), 428585644: (id, v) => new IFC4_3.IfcLaborResourceType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : new IFC4_3.IfcIdentifier(v[6].value), !v[7] ? null : new IFC4_3.IfcText(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), !v[9] ? null : v[9].map((p) => new Handle(p.value)), !v[10] ? null : new Handle(v[10].value), v[11]), 1281925730: (id, v) => new IFC4_3.IfcLine(id, new Handle(v[0].value), new Handle(v[1].value)), 1425443689: (id, v) => new IFC4_3.IfcManifoldSolidBrep(id, new Handle(v[0].value)), 3888040117: (id, v) => new IFC4_3.IfcObject(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value)), 590820931: (id, v) => new IFC4_3.IfcOffsetCurve(id, new Handle(v[0].value)), 3388369263: (id, v) => new IFC4_3.IfcOffsetCurve2D(id, new Handle(v[0].value), new IFC4_3.IfcLengthMeasure(v[1].value), new IFC4_3.IfcLogical(v[2].value)), 3505215534: (id, v) => new IFC4_3.IfcOffsetCurve3D(id, new Handle(v[0].value), new IFC4_3.IfcLengthMeasure(v[1].value), new IFC4_3.IfcLogical(v[2].value), new Handle(v[3].value)), 2485787929: (id, v) => new IFC4_3.IfcOffsetCurveByDistances(id, new Handle(v[0].value), v[1].map((p) => new Handle(p.value)), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value)), 1682466193: (id, v) => new IFC4_3.IfcPcurve(id, new Handle(v[0].value), new Handle(v[1].value)), 603570806: (id, v) => new IFC4_3.IfcPlanarBox(id, new IFC4_3.IfcLengthMeasure(v[0].value), new IFC4_3.IfcLengthMeasure(v[1].value), new Handle(v[2].value)), 220341763: (id, v) => new IFC4_3.IfcPlane(id, new Handle(v[0].value)), 3381221214: (id, v) => new IFC4_3.IfcPolynomialCurve(id, new Handle(v[0].value), !v[1] ? null : v[1].map((p) => new IFC4_3.IfcReal(p.value)), !v[2] ? null : v[2].map((p) => new IFC4_3.IfcReal(p.value)), !v[3] ? null : v[3].map((p) => new IFC4_3.IfcReal(p.value))), 759155922: (id, v) => new IFC4_3.IfcPreDefinedColour(id, new IFC4_3.IfcLabel(v[0].value)), 2559016684: (id, v) => new IFC4_3.IfcPreDefinedCurveFont(id, new IFC4_3.IfcLabel(v[0].value)), 3967405729: (id, v) => new IFC4_3.IfcPreDefinedPropertySet(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value)), 569719735: (id, v) => new IFC4_3.IfcProcedureType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : new IFC4_3.IfcIdentifier(v[6].value), !v[7] ? null : new IFC4_3.IfcText(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]), 2945172077: (id, v) => new IFC4_3.IfcProcess(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new IFC4_3.IfcIdentifier(v[5].value), !v[6] ? null : new IFC4_3.IfcText(v[6].value)), 4208778838: (id, v) => new IFC4_3.IfcProduct(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value)), 103090709: (id, v) => new IFC4_3.IfcProject(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new IFC4_3.IfcLabel(v[5].value), !v[6] ? null : new IFC4_3.IfcLabel(v[6].value), !v[7] ? null : v[7].map((p) => new Handle(p.value)), !v[8] ? null : new Handle(v[8].value)), 653396225: (id, v) => new IFC4_3.IfcProjectLibrary(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new IFC4_3.IfcLabel(v[5].value), !v[6] ? null : new IFC4_3.IfcLabel(v[6].value), !v[7] ? null : v[7].map((p) => new Handle(p.value)), !v[8] ? null : new Handle(v[8].value)), 871118103: (id, v) => new IFC4_3.IfcPropertyBoundedValue(id, new IFC4_3.IfcIdentifier(v[0].value), !v[1] ? null : new IFC4_3.IfcText(v[1].value), !v[2] ? null : TypeInitialiser(2, v[2]), !v[3] ? null : TypeInitialiser(2, v[3]), !v[4] ? null : new Handle(v[4].value), !v[5] ? null : TypeInitialiser(2, v[5])), 4166981789: (id, v) => new IFC4_3.IfcPropertyEnumeratedValue(id, new IFC4_3.IfcIdentifier(v[0].value), !v[1] ? null : new IFC4_3.IfcText(v[1].value), !v[2] ? null : v[2].map((p) => TypeInitialiser(2, p)), !v[3] ? null : new Handle(v[3].value)), 2752243245: (id, v) => new IFC4_3.IfcPropertyListValue(id, new IFC4_3.IfcIdentifier(v[0].value), !v[1] ? null : new IFC4_3.IfcText(v[1].value), !v[2] ? null : v[2].map((p) => TypeInitialiser(2, p)), !v[3] ? null : new Handle(v[3].value)), 941946838: (id, v) => new IFC4_3.IfcPropertyReferenceValue(id, new IFC4_3.IfcIdentifier(v[0].value), !v[1] ? null : new IFC4_3.IfcText(v[1].value), !v[2] ? null : new IFC4_3.IfcText(v[2].value), !v[3] ? null : new Handle(v[3].value)), 1451395588: (id, v) => new IFC4_3.IfcPropertySet(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), v[4].map((p) => new Handle(p.value))), 492091185: (id, v) => new IFC4_3.IfcPropertySetTemplate(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), v[4], !v[5] ? null : new IFC4_3.IfcIdentifier(v[5].value), v[6].map((p) => new Handle(p.value))), 3650150729: (id, v) => new IFC4_3.IfcPropertySingleValue(id, new IFC4_3.IfcIdentifier(v[0].value), !v[1] ? null : new IFC4_3.IfcText(v[1].value), !v[2] ? null : TypeInitialiser(2, v[2]), !v[3] ? null : new Handle(v[3].value)), 110355661: (id, v) => new IFC4_3.IfcPropertyTableValue(id, new IFC4_3.IfcIdentifier(v[0].value), !v[1] ? null : new IFC4_3.IfcText(v[1].value), !v[2] ? null : v[2].map((p) => TypeInitialiser(2, p)), !v[3] ? null : v[3].map((p) => TypeInitialiser(2, p)), !v[4] ? null : new IFC4_3.IfcText(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), v[7]), 3521284610: (id, v) => new IFC4_3.IfcPropertyTemplate(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value)), 2770003689: (id, v) => new IFC4_3.IfcRectangleHollowProfileDef(id, v[0], !v[1] ? null : new IFC4_3.IfcLabel(v[1].value), !v[2] ? null : new Handle(v[2].value), new IFC4_3.IfcPositiveLengthMeasure(v[3].value), new IFC4_3.IfcPositiveLengthMeasure(v[4].value), new IFC4_3.IfcPositiveLengthMeasure(v[5].value), !v[6] ? null : new IFC4_3.IfcNonNegativeLengthMeasure(v[6].value), !v[7] ? null : new IFC4_3.IfcNonNegativeLengthMeasure(v[7].value)), 2798486643: (id, v) => new IFC4_3.IfcRectangularPyramid(id, new Handle(v[0].value), new IFC4_3.IfcPositiveLengthMeasure(v[1].value), new IFC4_3.IfcPositiveLengthMeasure(v[2].value), new IFC4_3.IfcPositiveLengthMeasure(v[3].value)), 3454111270: (id, v) => new IFC4_3.IfcRectangularTrimmedSurface(id, new Handle(v[0].value), new IFC4_3.IfcParameterValue(v[1].value), new IFC4_3.IfcParameterValue(v[2].value), new IFC4_3.IfcParameterValue(v[3].value), new IFC4_3.IfcParameterValue(v[4].value), new IFC4_3.IfcBoolean(v[5].value), new IFC4_3.IfcBoolean(v[6].value)), 3765753017: (id, v) => new IFC4_3.IfcReinforcementDefinitionProperties(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), v[5].map((p) => new Handle(p.value))), 3939117080: (id, v) => new IFC4_3.IfcRelAssigns(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), v[4].map((p) => new Handle(p.value)), v[5]), 1683148259: (id, v) => new IFC4_3.IfcRelAssignsToActor(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), v[4].map((p) => new Handle(p.value)), v[5], new Handle(v[6].value), !v[7] ? null : new Handle(v[7].value)), 2495723537: (id, v) => new IFC4_3.IfcRelAssignsToControl(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), v[4].map((p) => new Handle(p.value)), v[5], new Handle(v[6].value)), 1307041759: (id, v) => new IFC4_3.IfcRelAssignsToGroup(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), v[4].map((p) => new Handle(p.value)), v[5], new Handle(v[6].value)), 1027710054: (id, v) => new IFC4_3.IfcRelAssignsToGroupByFactor(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), v[4].map((p) => new Handle(p.value)), v[5], new Handle(v[6].value), new IFC4_3.IfcRatioMeasure(v[7].value)), 4278684876: (id, v) => new IFC4_3.IfcRelAssignsToProcess(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), v[4].map((p) => new Handle(p.value)), v[5], new Handle(v[6].value), !v[7] ? null : new Handle(v[7].value)), 2857406711: (id, v) => new IFC4_3.IfcRelAssignsToProduct(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), v[4].map((p) => new Handle(p.value)), v[5], new Handle(v[6].value)), 205026976: (id, v) => new IFC4_3.IfcRelAssignsToResource(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), v[4].map((p) => new Handle(p.value)), v[5], new Handle(v[6].value)), 1865459582: (id, v) => new IFC4_3.IfcRelAssociates(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), v[4].map((p) => new Handle(p.value))), 4095574036: (id, v) => new IFC4_3.IfcRelAssociatesApproval(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), v[4].map((p) => new Handle(p.value)), new Handle(v[5].value)), 919958153: (id, v) => new IFC4_3.IfcRelAssociatesClassification(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), v[4].map((p) => new Handle(p.value)), new Handle(v[5].value)), 2728634034: (id, v) => new IFC4_3.IfcRelAssociatesConstraint(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), v[4].map((p) => new Handle(p.value)), !v[5] ? null : new IFC4_3.IfcLabel(v[5].value), new Handle(v[6].value)), 982818633: (id, v) => new IFC4_3.IfcRelAssociatesDocument(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), v[4].map((p) => new Handle(p.value)), new Handle(v[5].value)), 3840914261: (id, v) => new IFC4_3.IfcRelAssociatesLibrary(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), v[4].map((p) => new Handle(p.value)), new Handle(v[5].value)), 2655215786: (id, v) => new IFC4_3.IfcRelAssociatesMaterial(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), v[4].map((p) => new Handle(p.value)), new Handle(v[5].value)), 1033248425: (id, v) => new IFC4_3.IfcRelAssociatesProfileDef(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), v[4].map((p) => new Handle(p.value)), new Handle(v[5].value)), 826625072: (id, v) => new IFC4_3.IfcRelConnects(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value)), 1204542856: (id, v) => new IFC4_3.IfcRelConnectsElements(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new Handle(v[4].value), new Handle(v[5].value), new Handle(v[6].value)), 3945020480: (id, v) => new IFC4_3.IfcRelConnectsPathElements(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new Handle(v[4].value), new Handle(v[5].value), new Handle(v[6].value), v[7].map((p) => new IFC4_3.IfcInteger(p.value)), v[8].map((p) => new IFC4_3.IfcInteger(p.value)), v[9], v[10]), 4201705270: (id, v) => new IFC4_3.IfcRelConnectsPortToElement(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), new Handle(v[4].value), new Handle(v[5].value)), 3190031847: (id, v) => new IFC4_3.IfcRelConnectsPorts(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), new Handle(v[4].value), new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value)), 2127690289: (id, v) => new IFC4_3.IfcRelConnectsStructuralActivity(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), new Handle(v[4].value), new Handle(v[5].value)), 1638771189: (id, v) => new IFC4_3.IfcRelConnectsStructuralMember(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), new Handle(v[4].value), new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new Handle(v[7].value), !v[8] ? null : new IFC4_3.IfcLengthMeasure(v[8].value), !v[9] ? null : new Handle(v[9].value)), 504942748: (id, v) => new IFC4_3.IfcRelConnectsWithEccentricity(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), new Handle(v[4].value), new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new Handle(v[7].value), !v[8] ? null : new IFC4_3.IfcLengthMeasure(v[8].value), !v[9] ? null : new Handle(v[9].value), new Handle(v[10].value)), 3678494232: (id, v) => new IFC4_3.IfcRelConnectsWithRealizingElements(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new Handle(v[4].value), new Handle(v[5].value), new Handle(v[6].value), v[7].map((p) => new Handle(p.value)), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value)), 3242617779: (id, v) => new IFC4_3.IfcRelContainedInSpatialStructure(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), v[4].map((p) => new Handle(p.value)), new Handle(v[5].value)), 886880790: (id, v) => new IFC4_3.IfcRelCoversBldgElements(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), new Handle(v[4].value), v[5].map((p) => new Handle(p.value))), 2802773753: (id, v) => new IFC4_3.IfcRelCoversSpaces(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), new Handle(v[4].value), v[5].map((p) => new Handle(p.value))), 2565941209: (id, v) => new IFC4_3.IfcRelDeclares(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), new Handle(v[4].value), v[5].map((p) => new Handle(p.value))), 2551354335: (id, v) => new IFC4_3.IfcRelDecomposes(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value)), 693640335: (id, v) => new IFC4_3.IfcRelDefines(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value)), 1462361463: (id, v) => new IFC4_3.IfcRelDefinesByObject(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), v[4].map((p) => new Handle(p.value)), new Handle(v[5].value)), 4186316022: (id, v) => new IFC4_3.IfcRelDefinesByProperties(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), v[4].map((p) => new Handle(p.value)), new Handle(v[5].value)), 307848117: (id, v) => new IFC4_3.IfcRelDefinesByTemplate(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), v[4].map((p) => new Handle(p.value)), new Handle(v[5].value)), 781010003: (id, v) => new IFC4_3.IfcRelDefinesByType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), v[4].map((p) => new Handle(p.value)), new Handle(v[5].value)), 3940055652: (id, v) => new IFC4_3.IfcRelFillsElement(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), new Handle(v[4].value), new Handle(v[5].value)), 279856033: (id, v) => new IFC4_3.IfcRelFlowControlElements(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), v[4].map((p) => new Handle(p.value)), new Handle(v[5].value)), 427948657: (id, v) => new IFC4_3.IfcRelInterferesElements(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), new Handle(v[4].value), new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new Handle(v[7].value), !v[8] ? null : new IFC4_3.IfcIdentifier(v[8].value), new IFC4_3.IfcLogical(v[9].value)), 3268803585: (id, v) => new IFC4_3.IfcRelNests(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), new Handle(v[4].value), v[5].map((p) => new Handle(p.value))), 1441486842: (id, v) => new IFC4_3.IfcRelPositions(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), new Handle(v[4].value), v[5].map((p) => new Handle(p.value))), 750771296: (id, v) => new IFC4_3.IfcRelProjectsElement(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), new Handle(v[4].value), new Handle(v[5].value)), 1245217292: (id, v) => new IFC4_3.IfcRelReferencedInSpatialStructure(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), v[4].map((p) => new Handle(p.value)), new Handle(v[5].value)), 4122056220: (id, v) => new IFC4_3.IfcRelSequence(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), new Handle(v[4].value), new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), v[7], !v[8] ? null : new IFC4_3.IfcLabel(v[8].value)), 366585022: (id, v) => new IFC4_3.IfcRelServicesBuildings(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), new Handle(v[4].value), v[5].map((p) => new Handle(p.value))), 3451746338: (id, v) => new IFC4_3.IfcRelSpaceBoundary(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), new Handle(v[4].value), new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), v[7], v[8]), 3523091289: (id, v) => new IFC4_3.IfcRelSpaceBoundary1stLevel(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), new Handle(v[4].value), new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), v[7], v[8], !v[9] ? null : new Handle(v[9].value)), 1521410863: (id, v) => new IFC4_3.IfcRelSpaceBoundary2ndLevel(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), new Handle(v[4].value), new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), v[7], v[8], !v[9] ? null : new Handle(v[9].value), !v[10] ? null : new Handle(v[10].value)), 1401173127: (id, v) => new IFC4_3.IfcRelVoidsElement(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), new Handle(v[4].value), new Handle(v[5].value)), 816062949: (id, v) => new IFC4_3.IfcReparametrisedCompositeCurveSegment(id, v[0], new IFC4_3.IfcBoolean(v[1].value), new Handle(v[2].value), new IFC4_3.IfcParameterValue(v[3].value)), 2914609552: (id, v) => new IFC4_3.IfcResource(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new IFC4_3.IfcIdentifier(v[5].value), !v[6] ? null : new IFC4_3.IfcText(v[6].value)), 1856042241: (id, v) => new IFC4_3.IfcRevolvedAreaSolid(id, new Handle(v[0].value), !v[1] ? null : new Handle(v[1].value), new Handle(v[2].value), new IFC4_3.IfcPlaneAngleMeasure(v[3].value)), 3243963512: (id, v) => new IFC4_3.IfcRevolvedAreaSolidTapered(id, new Handle(v[0].value), !v[1] ? null : new Handle(v[1].value), new Handle(v[2].value), new IFC4_3.IfcPlaneAngleMeasure(v[3].value), new Handle(v[4].value)), 4158566097: (id, v) => new IFC4_3.IfcRightCircularCone(id, new Handle(v[0].value), new IFC4_3.IfcPositiveLengthMeasure(v[1].value), new IFC4_3.IfcPositiveLengthMeasure(v[2].value)), 3626867408: (id, v) => new IFC4_3.IfcRightCircularCylinder(id, new Handle(v[0].value), new IFC4_3.IfcPositiveLengthMeasure(v[1].value), new IFC4_3.IfcPositiveLengthMeasure(v[2].value)), 1862484736: (id, v) => new IFC4_3.IfcSectionedSolid(id, new Handle(v[0].value), v[1].map((p) => new Handle(p.value))), 1290935644: (id, v) => new IFC4_3.IfcSectionedSolidHorizontal(id, new Handle(v[0].value), v[1].map((p) => new Handle(p.value)), v[2].map((p) => new Handle(p.value))), 1356537516: (id, v) => new IFC4_3.IfcSectionedSurface(id, new Handle(v[0].value), v[1].map((p) => new Handle(p.value)), v[2].map((p) => new Handle(p.value))), 3663146110: (id, v) => new IFC4_3.IfcSimplePropertyTemplate(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), v[4], !v[5] ? null : new IFC4_3.IfcLabel(v[5].value), !v[6] ? null : new IFC4_3.IfcLabel(v[6].value), !v[7] ? null : new Handle(v[7].value), !v[8] ? null : new Handle(v[8].value), !v[9] ? null : new Handle(v[9].value), !v[10] ? null : new IFC4_3.IfcLabel(v[10].value), v[11]), 1412071761: (id, v) => new IFC4_3.IfcSpatialElement(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value)), 710998568: (id, v) => new IFC4_3.IfcSpatialElementType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value)), 2706606064: (id, v) => new IFC4_3.IfcSpatialStructureElement(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), v[8]), 3893378262: (id, v) => new IFC4_3.IfcSpatialStructureElementType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value)), 463610769: (id, v) => new IFC4_3.IfcSpatialZone(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), v[8]), 2481509218: (id, v) => new IFC4_3.IfcSpatialZoneType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9], !v[10] ? null : new IFC4_3.IfcLabel(v[10].value)), 451544542: (id, v) => new IFC4_3.IfcSphere(id, new Handle(v[0].value), new IFC4_3.IfcPositiveLengthMeasure(v[1].value)), 4015995234: (id, v) => new IFC4_3.IfcSphericalSurface(id, new Handle(v[0].value), new IFC4_3.IfcPositiveLengthMeasure(v[1].value)), 2735484536: (id, v) => new IFC4_3.IfcSpiral(id, !v[0] ? null : new Handle(v[0].value)), 3544373492: (id, v) => new IFC4_3.IfcStructuralActivity(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), new Handle(v[7].value), v[8]), 3136571912: (id, v) => new IFC4_3.IfcStructuralItem(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value)), 530289379: (id, v) => new IFC4_3.IfcStructuralMember(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value)), 3689010777: (id, v) => new IFC4_3.IfcStructuralReaction(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), new Handle(v[7].value), v[8]), 3979015343: (id, v) => new IFC4_3.IfcStructuralSurfaceMember(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), v[7], !v[8] ? null : new IFC4_3.IfcPositiveLengthMeasure(v[8].value)), 2218152070: (id, v) => new IFC4_3.IfcStructuralSurfaceMemberVarying(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), v[7], !v[8] ? null : new IFC4_3.IfcPositiveLengthMeasure(v[8].value)), 603775116: (id, v) => new IFC4_3.IfcStructuralSurfaceReaction(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), new Handle(v[7].value), v[8], v[9]), 4095615324: (id, v) => new IFC4_3.IfcSubContractResourceType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : new IFC4_3.IfcIdentifier(v[6].value), !v[7] ? null : new IFC4_3.IfcText(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), !v[9] ? null : v[9].map((p) => new Handle(p.value)), !v[10] ? null : new Handle(v[10].value), v[11]), 699246055: (id, v) => new IFC4_3.IfcSurfaceCurve(id, new Handle(v[0].value), v[1].map((p) => new Handle(p.value)), v[2]), 2028607225: (id, v) => new IFC4_3.IfcSurfaceCurveSweptAreaSolid(id, new Handle(v[0].value), !v[1] ? null : new Handle(v[1].value), new Handle(v[2].value), !v[3] ? null : TypeInitialiser(2, v[3]), !v[4] ? null : TypeInitialiser(2, v[4]), new Handle(v[5].value)), 2809605785: (id, v) => new IFC4_3.IfcSurfaceOfLinearExtrusion(id, new Handle(v[0].value), !v[1] ? null : new Handle(v[1].value), new Handle(v[2].value), new IFC4_3.IfcLengthMeasure(v[3].value)), 4124788165: (id, v) => new IFC4_3.IfcSurfaceOfRevolution(id, new Handle(v[0].value), !v[1] ? null : new Handle(v[1].value), new Handle(v[2].value)), 1580310250: (id, v) => new IFC4_3.IfcSystemFurnitureElementType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]), 3473067441: (id, v) => new IFC4_3.IfcTask(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new IFC4_3.IfcIdentifier(v[5].value), !v[6] ? null : new IFC4_3.IfcText(v[6].value), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), new IFC4_3.IfcBoolean(v[9].value), !v[10] ? null : new IFC4_3.IfcInteger(v[10].value), !v[11] ? null : new Handle(v[11].value), v[12]), 3206491090: (id, v) => new IFC4_3.IfcTaskType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : new IFC4_3.IfcIdentifier(v[6].value), !v[7] ? null : new IFC4_3.IfcText(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9], !v[10] ? null : new IFC4_3.IfcLabel(v[10].value)), 2387106220: (id, v) => new IFC4_3.IfcTessellatedFaceSet(id, new Handle(v[0].value), !v[1] ? null : new IFC4_3.IfcBoolean(v[1].value)), 782932809: (id, v) => new IFC4_3.IfcThirdOrderPolynomialSpiral(id, !v[0] ? null : new Handle(v[0].value), new IFC4_3.IfcLengthMeasure(v[1].value), !v[2] ? null : new IFC4_3.IfcLengthMeasure(v[2].value), !v[3] ? null : new IFC4_3.IfcLengthMeasure(v[3].value), !v[4] ? null : new IFC4_3.IfcLengthMeasure(v[4].value)), 1935646853: (id, v) => new IFC4_3.IfcToroidalSurface(id, new Handle(v[0].value), new IFC4_3.IfcPositiveLengthMeasure(v[1].value), new IFC4_3.IfcPositiveLengthMeasure(v[2].value)), 3665877780: (id, v) => new IFC4_3.IfcTransportationDeviceType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value)), 2916149573: (id, v) => new IFC4_3.IfcTriangulatedFaceSet(id, new Handle(v[0].value), !v[1] ? null : new IFC4_3.IfcBoolean(v[1].value), !v[2] ? null : v[2].map((p) => new IFC4_3.IfcParameterValue(p.value)), v[3].map((p) => new IFC4_3.IfcPositiveInteger(p.value)), !v[4] ? null : v[4].map((p) => new IFC4_3.IfcPositiveInteger(p.value))), 1229763772: (id, v) => new IFC4_3.IfcTriangulatedIrregularNetwork(id, new Handle(v[0].value), !v[1] ? null : new IFC4_3.IfcBoolean(v[1].value), !v[2] ? null : v[2].map((p) => new IFC4_3.IfcParameterValue(p.value)), v[3].map((p) => new IFC4_3.IfcPositiveInteger(p.value)), !v[4] ? null : v[4].map((p) => new IFC4_3.IfcPositiveInteger(p.value)), v[5].map((p) => new IFC4_3.IfcInteger(p.value))), 3651464721: (id, v) => new IFC4_3.IfcVehicleType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]), 336235671: (id, v) => new IFC4_3.IfcWindowLiningProperties(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcPositiveLengthMeasure(v[4].value), !v[5] ? null : new IFC4_3.IfcNonNegativeLengthMeasure(v[5].value), !v[6] ? null : new IFC4_3.IfcNonNegativeLengthMeasure(v[6].value), !v[7] ? null : new IFC4_3.IfcNonNegativeLengthMeasure(v[7].value), !v[8] ? null : new IFC4_3.IfcNormalisedRatioMeasure(v[8].value), !v[9] ? null : new IFC4_3.IfcNormalisedRatioMeasure(v[9].value), !v[10] ? null : new IFC4_3.IfcNormalisedRatioMeasure(v[10].value), !v[11] ? null : new IFC4_3.IfcNormalisedRatioMeasure(v[11].value), !v[12] ? null : new Handle(v[12].value), !v[13] ? null : new IFC4_3.IfcLengthMeasure(v[13].value), !v[14] ? null : new IFC4_3.IfcLengthMeasure(v[14].value), !v[15] ? null : new IFC4_3.IfcLengthMeasure(v[15].value)), 512836454: (id, v) => new IFC4_3.IfcWindowPanelProperties(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), v[4], v[5], !v[6] ? null : new IFC4_3.IfcPositiveLengthMeasure(v[6].value), !v[7] ? null : new IFC4_3.IfcPositiveLengthMeasure(v[7].value), !v[8] ? null : new Handle(v[8].value)), 2296667514: (id, v) => new IFC4_3.IfcActor(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), new Handle(v[5].value)), 1635779807: (id, v) => new IFC4_3.IfcAdvancedBrep(id, new Handle(v[0].value)), 2603310189: (id, v) => new IFC4_3.IfcAdvancedBrepWithVoids(id, new Handle(v[0].value), v[1].map((p) => new Handle(p.value))), 1674181508: (id, v) => new IFC4_3.IfcAnnotation(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), v[7]), 2887950389: (id, v) => new IFC4_3.IfcBSplineSurface(id, new IFC4_3.IfcInteger(v[0].value), new IFC4_3.IfcInteger(v[1].value), v[2].map((p) => new Handle(p.value)), v[3], new IFC4_3.IfcLogical(v[4].value), new IFC4_3.IfcLogical(v[5].value), new IFC4_3.IfcLogical(v[6].value)), 167062518: (id, v) => new IFC4_3.IfcBSplineSurfaceWithKnots(id, new IFC4_3.IfcInteger(v[0].value), new IFC4_3.IfcInteger(v[1].value), v[2].map((p) => new Handle(p.value)), v[3], new IFC4_3.IfcLogical(v[4].value), new IFC4_3.IfcLogical(v[5].value), new IFC4_3.IfcLogical(v[6].value), v[7].map((p) => new IFC4_3.IfcInteger(p.value)), v[8].map((p) => new IFC4_3.IfcInteger(p.value)), v[9].map((p) => new IFC4_3.IfcParameterValue(p.value)), v[10].map((p) => new IFC4_3.IfcParameterValue(p.value)), v[11]), 1334484129: (id, v) => new IFC4_3.IfcBlock(id, new Handle(v[0].value), new IFC4_3.IfcPositiveLengthMeasure(v[1].value), new IFC4_3.IfcPositiveLengthMeasure(v[2].value), new IFC4_3.IfcPositiveLengthMeasure(v[3].value)), 3649129432: (id, v) => new IFC4_3.IfcBooleanClippingResult(id, v[0], new Handle(v[1].value), new Handle(v[2].value)), 1260505505: (id, _) => new IFC4_3.IfcBoundedCurve(id), 3124254112: (id, v) => new IFC4_3.IfcBuildingStorey(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), v[8], !v[9] ? null : new IFC4_3.IfcLengthMeasure(v[9].value)), 1626504194: (id, v) => new IFC4_3.IfcBuiltElementType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value)), 2197970202: (id, v) => new IFC4_3.IfcChimneyType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]), 2937912522: (id, v) => new IFC4_3.IfcCircleHollowProfileDef(id, v[0], !v[1] ? null : new IFC4_3.IfcLabel(v[1].value), !v[2] ? null : new Handle(v[2].value), new IFC4_3.IfcPositiveLengthMeasure(v[3].value), new IFC4_3.IfcPositiveLengthMeasure(v[4].value)), 3893394355: (id, v) => new IFC4_3.IfcCivilElementType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value)), 3497074424: (id, v) => new IFC4_3.IfcClothoid(id, !v[0] ? null : new Handle(v[0].value), new IFC4_3.IfcLengthMeasure(v[1].value)), 300633059: (id, v) => new IFC4_3.IfcColumnType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]), 3875453745: (id, v) => new IFC4_3.IfcComplexPropertyTemplate(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), v[5], !v[6] ? null : v[6].map((p) => new Handle(p.value))), 3732776249: (id, v) => new IFC4_3.IfcCompositeCurve(id, v[0].map((p) => new Handle(p.value)), new IFC4_3.IfcLogical(v[1].value)), 15328376: (id, v) => new IFC4_3.IfcCompositeCurveOnSurface(id, v[0].map((p) => new Handle(p.value)), new IFC4_3.IfcLogical(v[1].value)), 2510884976: (id, v) => new IFC4_3.IfcConic(id, new Handle(v[0].value)), 2185764099: (id, v) => new IFC4_3.IfcConstructionEquipmentResourceType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : new IFC4_3.IfcIdentifier(v[6].value), !v[7] ? null : new IFC4_3.IfcText(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), !v[9] ? null : v[9].map((p) => new Handle(p.value)), !v[10] ? null : new Handle(v[10].value), v[11]), 4105962743: (id, v) => new IFC4_3.IfcConstructionMaterialResourceType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : new IFC4_3.IfcIdentifier(v[6].value), !v[7] ? null : new IFC4_3.IfcText(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), !v[9] ? null : v[9].map((p) => new Handle(p.value)), !v[10] ? null : new Handle(v[10].value), v[11]), 1525564444: (id, v) => new IFC4_3.IfcConstructionProductResourceType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : new IFC4_3.IfcIdentifier(v[6].value), !v[7] ? null : new IFC4_3.IfcText(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), !v[9] ? null : v[9].map((p) => new Handle(p.value)), !v[10] ? null : new Handle(v[10].value), v[11]), 2559216714: (id, v) => new IFC4_3.IfcConstructionResource(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new IFC4_3.IfcIdentifier(v[5].value), !v[6] ? null : new IFC4_3.IfcText(v[6].value), !v[7] ? null : new Handle(v[7].value), !v[8] ? null : v[8].map((p) => new Handle(p.value)), !v[9] ? null : new Handle(v[9].value)), 3293443760: (id, v) => new IFC4_3.IfcControl(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new IFC4_3.IfcIdentifier(v[5].value)), 2000195564: (id, v) => new IFC4_3.IfcCosineSpiral(id, !v[0] ? null : new Handle(v[0].value), new IFC4_3.IfcLengthMeasure(v[1].value), !v[2] ? null : new IFC4_3.IfcLengthMeasure(v[2].value)), 3895139033: (id, v) => new IFC4_3.IfcCostItem(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new IFC4_3.IfcIdentifier(v[5].value), v[6], !v[7] ? null : v[7].map((p) => new Handle(p.value)), !v[8] ? null : v[8].map((p) => new Handle(p.value))), 1419761937: (id, v) => new IFC4_3.IfcCostSchedule(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new IFC4_3.IfcIdentifier(v[5].value), v[6], !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcDateTime(v[8].value), !v[9] ? null : new IFC4_3.IfcDateTime(v[9].value)), 4189326743: (id, v) => new IFC4_3.IfcCourseType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]), 1916426348: (id, v) => new IFC4_3.IfcCoveringType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]), 3295246426: (id, v) => new IFC4_3.IfcCrewResource(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new IFC4_3.IfcIdentifier(v[5].value), !v[6] ? null : new IFC4_3.IfcText(v[6].value), !v[7] ? null : new Handle(v[7].value), !v[8] ? null : v[8].map((p) => new Handle(p.value)), !v[9] ? null : new Handle(v[9].value), v[10]), 1457835157: (id, v) => new IFC4_3.IfcCurtainWallType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]), 1213902940: (id, v) => new IFC4_3.IfcCylindricalSurface(id, new Handle(v[0].value), new IFC4_3.IfcPositiveLengthMeasure(v[1].value)), 1306400036: (id, v) => new IFC4_3.IfcDeepFoundationType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value)), 4234616927: (id, v) => new IFC4_3.IfcDirectrixDerivedReferenceSweptAreaSolid(id, new Handle(v[0].value), !v[1] ? null : new Handle(v[1].value), new Handle(v[2].value), !v[3] ? null : TypeInitialiser(2, v[3]), !v[4] ? null : TypeInitialiser(2, v[4]), new Handle(v[5].value)), 3256556792: (id, v) => new IFC4_3.IfcDistributionElementType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value)), 3849074793: (id, v) => new IFC4_3.IfcDistributionFlowElementType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value)), 2963535650: (id, v) => new IFC4_3.IfcDoorLiningProperties(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcPositiveLengthMeasure(v[4].value), !v[5] ? null : new IFC4_3.IfcNonNegativeLengthMeasure(v[5].value), !v[6] ? null : new IFC4_3.IfcPositiveLengthMeasure(v[6].value), !v[7] ? null : new IFC4_3.IfcNonNegativeLengthMeasure(v[7].value), !v[8] ? null : new IFC4_3.IfcNonNegativeLengthMeasure(v[8].value), !v[9] ? null : new IFC4_3.IfcLengthMeasure(v[9].value), !v[10] ? null : new IFC4_3.IfcLengthMeasure(v[10].value), !v[11] ? null : new IFC4_3.IfcLengthMeasure(v[11].value), !v[12] ? null : new IFC4_3.IfcPositiveLengthMeasure(v[12].value), !v[13] ? null : new IFC4_3.IfcPositiveLengthMeasure(v[13].value), !v[14] ? null : new Handle(v[14].value), !v[15] ? null : new IFC4_3.IfcLengthMeasure(v[15].value), !v[16] ? null : new IFC4_3.IfcLengthMeasure(v[16].value)), 1714330368: (id, v) => new IFC4_3.IfcDoorPanelProperties(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcPositiveLengthMeasure(v[4].value), v[5], !v[6] ? null : new IFC4_3.IfcNormalisedRatioMeasure(v[6].value), v[7], !v[8] ? null : new Handle(v[8].value)), 2323601079: (id, v) => new IFC4_3.IfcDoorType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9], v[10], !v[11] ? null : new IFC4_3.IfcBoolean(v[11].value), !v[12] ? null : new IFC4_3.IfcLabel(v[12].value)), 445594917: (id, v) => new IFC4_3.IfcDraughtingPreDefinedColour(id, new IFC4_3.IfcLabel(v[0].value)), 4006246654: (id, v) => new IFC4_3.IfcDraughtingPreDefinedCurveFont(id, new IFC4_3.IfcLabel(v[0].value)), 1758889154: (id, v) => new IFC4_3.IfcElement(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value)), 4123344466: (id, v) => new IFC4_3.IfcElementAssembly(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8], v[9]), 2397081782: (id, v) => new IFC4_3.IfcElementAssemblyType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]), 1623761950: (id, v) => new IFC4_3.IfcElementComponent(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value)), 2590856083: (id, v) => new IFC4_3.IfcElementComponentType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value)), 1704287377: (id, v) => new IFC4_3.IfcEllipse(id, new Handle(v[0].value), new IFC4_3.IfcPositiveLengthMeasure(v[1].value), new IFC4_3.IfcPositiveLengthMeasure(v[2].value)), 2107101300: (id, v) => new IFC4_3.IfcEnergyConversionDeviceType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value)), 132023988: (id, v) => new IFC4_3.IfcEngineType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]), 3174744832: (id, v) => new IFC4_3.IfcEvaporativeCoolerType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]), 3390157468: (id, v) => new IFC4_3.IfcEvaporatorType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]), 4148101412: (id, v) => new IFC4_3.IfcEvent(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new IFC4_3.IfcIdentifier(v[5].value), !v[6] ? null : new IFC4_3.IfcText(v[6].value), v[7], v[8], !v[9] ? null : new IFC4_3.IfcLabel(v[9].value), !v[10] ? null : new Handle(v[10].value)), 2853485674: (id, v) => new IFC4_3.IfcExternalSpatialStructureElement(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value)), 807026263: (id, v) => new IFC4_3.IfcFacetedBrep(id, new Handle(v[0].value)), 3737207727: (id, v) => new IFC4_3.IfcFacetedBrepWithVoids(id, new Handle(v[0].value), v[1].map((p) => new Handle(p.value))), 24185140: (id, v) => new IFC4_3.IfcFacility(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), v[8]), 1310830890: (id, v) => new IFC4_3.IfcFacilityPart(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), v[8], v[9]), 4228831410: (id, v) => new IFC4_3.IfcFacilityPartCommon(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), v[8], v[9], v[10]), 647756555: (id, v) => new IFC4_3.IfcFastener(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]), 2489546625: (id, v) => new IFC4_3.IfcFastenerType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]), 2827207264: (id, v) => new IFC4_3.IfcFeatureElement(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value)), 2143335405: (id, v) => new IFC4_3.IfcFeatureElementAddition(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value)), 1287392070: (id, v) => new IFC4_3.IfcFeatureElementSubtraction(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value)), 3907093117: (id, v) => new IFC4_3.IfcFlowControllerType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value)), 3198132628: (id, v) => new IFC4_3.IfcFlowFittingType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value)), 3815607619: (id, v) => new IFC4_3.IfcFlowMeterType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]), 1482959167: (id, v) => new IFC4_3.IfcFlowMovingDeviceType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value)), 1834744321: (id, v) => new IFC4_3.IfcFlowSegmentType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value)), 1339347760: (id, v) => new IFC4_3.IfcFlowStorageDeviceType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value)), 2297155007: (id, v) => new IFC4_3.IfcFlowTerminalType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value)), 3009222698: (id, v) => new IFC4_3.IfcFlowTreatmentDeviceType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value)), 1893162501: (id, v) => new IFC4_3.IfcFootingType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]), 263784265: (id, v) => new IFC4_3.IfcFurnishingElement(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value)), 1509553395: (id, v) => new IFC4_3.IfcFurniture(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]), 3493046030: (id, v) => new IFC4_3.IfcGeographicElement(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]), 4230923436: (id, v) => new IFC4_3.IfcGeotechnicalElement(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value)), 1594536857: (id, v) => new IFC4_3.IfcGeotechnicalStratum(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]), 2898700619: (id, v) => new IFC4_3.IfcGradientCurve(id, v[0].map((p) => new Handle(p.value)), new IFC4_3.IfcLogical(v[1].value), new Handle(v[2].value), !v[3] ? null : new Handle(v[3].value)), 2706460486: (id, v) => new IFC4_3.IfcGroup(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value)), 1251058090: (id, v) => new IFC4_3.IfcHeatExchangerType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]), 1806887404: (id, v) => new IFC4_3.IfcHumidifierType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]), 2568555532: (id, v) => new IFC4_3.IfcImpactProtectionDevice(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]), 3948183225: (id, v) => new IFC4_3.IfcImpactProtectionDeviceType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]), 2571569899: (id, v) => new IFC4_3.IfcIndexedPolyCurve(id, new Handle(v[0].value), !v[1] ? null : v[1].map((p) => TypeInitialiser(2, p)), new IFC4_3.IfcLogical(v[2].value)), 3946677679: (id, v) => new IFC4_3.IfcInterceptorType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]), 3113134337: (id, v) => new IFC4_3.IfcIntersectionCurve(id, new Handle(v[0].value), v[1].map((p) => new Handle(p.value)), v[2]), 2391368822: (id, v) => new IFC4_3.IfcInventory(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), v[5], !v[6] ? null : new Handle(v[6].value), !v[7] ? null : v[7].map((p) => new Handle(p.value)), !v[8] ? null : new IFC4_3.IfcDate(v[8].value), !v[9] ? null : new Handle(v[9].value), !v[10] ? null : new Handle(v[10].value)), 4288270099: (id, v) => new IFC4_3.IfcJunctionBoxType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]), 679976338: (id, v) => new IFC4_3.IfcKerbType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), new IFC4_3.IfcBoolean(v[9].value)), 3827777499: (id, v) => new IFC4_3.IfcLaborResource(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new IFC4_3.IfcIdentifier(v[5].value), !v[6] ? null : new IFC4_3.IfcText(v[6].value), !v[7] ? null : new Handle(v[7].value), !v[8] ? null : v[8].map((p) => new Handle(p.value)), !v[9] ? null : new Handle(v[9].value), v[10]), 1051575348: (id, v) => new IFC4_3.IfcLampType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]), 1161773419: (id, v) => new IFC4_3.IfcLightFixtureType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]), 2176059722: (id, v) => new IFC4_3.IfcLinearElement(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value)), 1770583370: (id, v) => new IFC4_3.IfcLiquidTerminalType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]), 525669439: (id, v) => new IFC4_3.IfcMarineFacility(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), v[8], v[9]), 976884017: (id, v) => new IFC4_3.IfcMarinePart(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), v[8], v[9], v[10]), 377706215: (id, v) => new IFC4_3.IfcMechanicalFastener(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), !v[8] ? null : new IFC4_3.IfcPositiveLengthMeasure(v[8].value), !v[9] ? null : new IFC4_3.IfcPositiveLengthMeasure(v[9].value), v[10]), 2108223431: (id, v) => new IFC4_3.IfcMechanicalFastenerType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9], !v[10] ? null : new IFC4_3.IfcPositiveLengthMeasure(v[10].value), !v[11] ? null : new IFC4_3.IfcPositiveLengthMeasure(v[11].value)), 1114901282: (id, v) => new IFC4_3.IfcMedicalDeviceType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]), 3181161470: (id, v) => new IFC4_3.IfcMemberType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]), 1950438474: (id, v) => new IFC4_3.IfcMobileTelecommunicationsApplianceType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]), 710110818: (id, v) => new IFC4_3.IfcMooringDeviceType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]), 977012517: (id, v) => new IFC4_3.IfcMotorConnectionType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]), 506776471: (id, v) => new IFC4_3.IfcNavigationElementType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]), 4143007308: (id, v) => new IFC4_3.IfcOccupant(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), new Handle(v[5].value), v[6]), 3588315303: (id, v) => new IFC4_3.IfcOpeningElement(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]), 2837617999: (id, v) => new IFC4_3.IfcOutletType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]), 514975943: (id, v) => new IFC4_3.IfcPavementType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]), 2382730787: (id, v) => new IFC4_3.IfcPerformanceHistory(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new IFC4_3.IfcIdentifier(v[5].value), new IFC4_3.IfcLabel(v[6].value), v[7]), 3566463478: (id, v) => new IFC4_3.IfcPermeableCoveringProperties(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), v[4], v[5], !v[6] ? null : new IFC4_3.IfcPositiveLengthMeasure(v[6].value), !v[7] ? null : new IFC4_3.IfcPositiveLengthMeasure(v[7].value), !v[8] ? null : new Handle(v[8].value)), 3327091369: (id, v) => new IFC4_3.IfcPermit(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new IFC4_3.IfcIdentifier(v[5].value), v[6], !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcText(v[8].value)), 1158309216: (id, v) => new IFC4_3.IfcPileType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]), 804291784: (id, v) => new IFC4_3.IfcPipeFittingType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]), 4231323485: (id, v) => new IFC4_3.IfcPipeSegmentType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]), 4017108033: (id, v) => new IFC4_3.IfcPlateType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]), 2839578677: (id, v) => new IFC4_3.IfcPolygonalFaceSet(id, new Handle(v[0].value), !v[1] ? null : new IFC4_3.IfcBoolean(v[1].value), v[2].map((p) => new Handle(p.value)), !v[3] ? null : v[3].map((p) => new IFC4_3.IfcPositiveInteger(p.value))), 3724593414: (id, v) => new IFC4_3.IfcPolyline(id, v[0].map((p) => new Handle(p.value))), 3740093272: (id, v) => new IFC4_3.IfcPort(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value)), 1946335990: (id, v) => new IFC4_3.IfcPositioningElement(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value)), 2744685151: (id, v) => new IFC4_3.IfcProcedure(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new IFC4_3.IfcIdentifier(v[5].value), !v[6] ? null : new IFC4_3.IfcText(v[6].value), v[7]), 2904328755: (id, v) => new IFC4_3.IfcProjectOrder(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new IFC4_3.IfcIdentifier(v[5].value), v[6], !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcText(v[8].value)), 3651124850: (id, v) => new IFC4_3.IfcProjectionElement(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]), 1842657554: (id, v) => new IFC4_3.IfcProtectiveDeviceType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]), 2250791053: (id, v) => new IFC4_3.IfcPumpType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]), 1763565496: (id, v) => new IFC4_3.IfcRailType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]), 2893384427: (id, v) => new IFC4_3.IfcRailingType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]), 3992365140: (id, v) => new IFC4_3.IfcRailway(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), v[8], v[9]), 1891881377: (id, v) => new IFC4_3.IfcRailwayPart(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), v[8], v[9], v[10]), 2324767716: (id, v) => new IFC4_3.IfcRampFlightType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]), 1469900589: (id, v) => new IFC4_3.IfcRampType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]), 683857671: (id, v) => new IFC4_3.IfcRationalBSplineSurfaceWithKnots(id, new IFC4_3.IfcInteger(v[0].value), new IFC4_3.IfcInteger(v[1].value), v[2].map((p) => new Handle(p.value)), v[3], new IFC4_3.IfcLogical(v[4].value), new IFC4_3.IfcLogical(v[5].value), new IFC4_3.IfcLogical(v[6].value), v[7].map((p) => new IFC4_3.IfcInteger(p.value)), v[8].map((p) => new IFC4_3.IfcInteger(p.value)), v[9].map((p) => new IFC4_3.IfcParameterValue(p.value)), v[10].map((p) => new IFC4_3.IfcParameterValue(p.value)), v[11], v[12].map((p) => new IFC4_3.IfcReal(p.value))), 4021432810: (id, v) => new IFC4_3.IfcReferent(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), v[7]), 3027567501: (id, v) => new IFC4_3.IfcReinforcingElement(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value)), 964333572: (id, v) => new IFC4_3.IfcReinforcingElementType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value)), 2320036040: (id, v) => new IFC4_3.IfcReinforcingMesh(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), !v[9] ? null : new IFC4_3.IfcPositiveLengthMeasure(v[9].value), !v[10] ? null : new IFC4_3.IfcPositiveLengthMeasure(v[10].value), !v[11] ? null : new IFC4_3.IfcPositiveLengthMeasure(v[11].value), !v[12] ? null : new IFC4_3.IfcPositiveLengthMeasure(v[12].value), !v[13] ? null : new IFC4_3.IfcAreaMeasure(v[13].value), !v[14] ? null : new IFC4_3.IfcAreaMeasure(v[14].value), !v[15] ? null : new IFC4_3.IfcPositiveLengthMeasure(v[15].value), !v[16] ? null : new IFC4_3.IfcPositiveLengthMeasure(v[16].value), v[17]), 2310774935: (id, v) => new IFC4_3.IfcReinforcingMeshType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9], !v[10] ? null : new IFC4_3.IfcPositiveLengthMeasure(v[10].value), !v[11] ? null : new IFC4_3.IfcPositiveLengthMeasure(v[11].value), !v[12] ? null : new IFC4_3.IfcPositiveLengthMeasure(v[12].value), !v[13] ? null : new IFC4_3.IfcPositiveLengthMeasure(v[13].value), !v[14] ? null : new IFC4_3.IfcAreaMeasure(v[14].value), !v[15] ? null : new IFC4_3.IfcAreaMeasure(v[15].value), !v[16] ? null : new IFC4_3.IfcPositiveLengthMeasure(v[16].value), !v[17] ? null : new IFC4_3.IfcPositiveLengthMeasure(v[17].value), !v[18] ? null : new IFC4_3.IfcLabel(v[18].value), !v[19] ? null : v[19].map((p) => TypeInitialiser(2, p))), 3818125796: (id, v) => new IFC4_3.IfcRelAdheresToElement(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), new Handle(v[4].value), v[5].map((p) => new Handle(p.value))), 160246688: (id, v) => new IFC4_3.IfcRelAggregates(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), new Handle(v[4].value), v[5].map((p) => new Handle(p.value))), 146592293: (id, v) => new IFC4_3.IfcRoad(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), v[8], v[9]), 550521510: (id, v) => new IFC4_3.IfcRoadPart(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), v[8], v[9], v[10]), 2781568857: (id, v) => new IFC4_3.IfcRoofType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]), 1768891740: (id, v) => new IFC4_3.IfcSanitaryTerminalType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]), 2157484638: (id, v) => new IFC4_3.IfcSeamCurve(id, new Handle(v[0].value), v[1].map((p) => new Handle(p.value)), v[2]), 3649235739: (id, v) => new IFC4_3.IfcSecondOrderPolynomialSpiral(id, !v[0] ? null : new Handle(v[0].value), new IFC4_3.IfcLengthMeasure(v[1].value), !v[2] ? null : new IFC4_3.IfcLengthMeasure(v[2].value), !v[3] ? null : new IFC4_3.IfcLengthMeasure(v[3].value)), 544395925: (id, v) => new IFC4_3.IfcSegmentedReferenceCurve(id, v[0].map((p) => new Handle(p.value)), new IFC4_3.IfcLogical(v[1].value), new Handle(v[2].value), !v[3] ? null : new Handle(v[3].value)), 1027922057: (id, v) => new IFC4_3.IfcSeventhOrderPolynomialSpiral(id, !v[0] ? null : new Handle(v[0].value), new IFC4_3.IfcLengthMeasure(v[1].value), !v[2] ? null : new IFC4_3.IfcLengthMeasure(v[2].value), !v[3] ? null : new IFC4_3.IfcLengthMeasure(v[3].value), !v[4] ? null : new IFC4_3.IfcLengthMeasure(v[4].value), !v[5] ? null : new IFC4_3.IfcLengthMeasure(v[5].value), !v[6] ? null : new IFC4_3.IfcLengthMeasure(v[6].value), !v[7] ? null : new IFC4_3.IfcLengthMeasure(v[7].value), !v[8] ? null : new IFC4_3.IfcLengthMeasure(v[8].value)), 4074543187: (id, v) => new IFC4_3.IfcShadingDeviceType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]), 33720170: (id, v) => new IFC4_3.IfcSign(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]), 3599934289: (id, v) => new IFC4_3.IfcSignType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]), 1894708472: (id, v) => new IFC4_3.IfcSignalType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]), 42703149: (id, v) => new IFC4_3.IfcSineSpiral(id, !v[0] ? null : new Handle(v[0].value), new IFC4_3.IfcLengthMeasure(v[1].value), !v[2] ? null : new IFC4_3.IfcLengthMeasure(v[2].value), !v[3] ? null : new IFC4_3.IfcLengthMeasure(v[3].value)), 4097777520: (id, v) => new IFC4_3.IfcSite(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), v[8], !v[9] ? null : new IFC4_3.IfcCompoundPlaneAngleMeasure(v[9].value), !v[10] ? null : new IFC4_3.IfcCompoundPlaneAngleMeasure(v[10].value), !v[11] ? null : new IFC4_3.IfcLengthMeasure(v[11].value), !v[12] ? null : new IFC4_3.IfcLabel(v[12].value), !v[13] ? null : new Handle(v[13].value)), 2533589738: (id, v) => new IFC4_3.IfcSlabType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]), 1072016465: (id, v) => new IFC4_3.IfcSolarDeviceType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]), 3856911033: (id, v) => new IFC4_3.IfcSpace(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), v[8], v[9], !v[10] ? null : new IFC4_3.IfcLengthMeasure(v[10].value)), 1305183839: (id, v) => new IFC4_3.IfcSpaceHeaterType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]), 3812236995: (id, v) => new IFC4_3.IfcSpaceType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9], !v[10] ? null : new IFC4_3.IfcLabel(v[10].value)), 3112655638: (id, v) => new IFC4_3.IfcStackTerminalType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]), 1039846685: (id, v) => new IFC4_3.IfcStairFlightType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]), 338393293: (id, v) => new IFC4_3.IfcStairType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]), 682877961: (id, v) => new IFC4_3.IfcStructuralAction(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), new Handle(v[7].value), v[8], !v[9] ? null : new IFC4_3.IfcBoolean(v[9].value)), 1179482911: (id, v) => new IFC4_3.IfcStructuralConnection(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new Handle(v[7].value)), 1004757350: (id, v) => new IFC4_3.IfcStructuralCurveAction(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), new Handle(v[7].value), v[8], !v[9] ? null : new IFC4_3.IfcBoolean(v[9].value), v[10], v[11]), 4243806635: (id, v) => new IFC4_3.IfcStructuralCurveConnection(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new Handle(v[7].value), new Handle(v[8].value)), 214636428: (id, v) => new IFC4_3.IfcStructuralCurveMember(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), v[7], new Handle(v[8].value)), 2445595289: (id, v) => new IFC4_3.IfcStructuralCurveMemberVarying(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), v[7], new Handle(v[8].value)), 2757150158: (id, v) => new IFC4_3.IfcStructuralCurveReaction(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), new Handle(v[7].value), v[8], v[9]), 1807405624: (id, v) => new IFC4_3.IfcStructuralLinearAction(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), new Handle(v[7].value), v[8], !v[9] ? null : new IFC4_3.IfcBoolean(v[9].value), v[10], v[11]), 1252848954: (id, v) => new IFC4_3.IfcStructuralLoadGroup(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), v[5], v[6], v[7], !v[8] ? null : new IFC4_3.IfcRatioMeasure(v[8].value), !v[9] ? null : new IFC4_3.IfcLabel(v[9].value)), 2082059205: (id, v) => new IFC4_3.IfcStructuralPointAction(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), new Handle(v[7].value), v[8], !v[9] ? null : new IFC4_3.IfcBoolean(v[9].value)), 734778138: (id, v) => new IFC4_3.IfcStructuralPointConnection(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new Handle(v[7].value), !v[8] ? null : new Handle(v[8].value)), 1235345126: (id, v) => new IFC4_3.IfcStructuralPointReaction(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), new Handle(v[7].value), v[8]), 2986769608: (id, v) => new IFC4_3.IfcStructuralResultGroup(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), v[5], !v[6] ? null : new Handle(v[6].value), new IFC4_3.IfcBoolean(v[7].value)), 3657597509: (id, v) => new IFC4_3.IfcStructuralSurfaceAction(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), new Handle(v[7].value), v[8], !v[9] ? null : new IFC4_3.IfcBoolean(v[9].value), v[10], v[11]), 1975003073: (id, v) => new IFC4_3.IfcStructuralSurfaceConnection(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new Handle(v[7].value)), 148013059: (id, v) => new IFC4_3.IfcSubContractResource(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new IFC4_3.IfcIdentifier(v[5].value), !v[6] ? null : new IFC4_3.IfcText(v[6].value), !v[7] ? null : new Handle(v[7].value), !v[8] ? null : v[8].map((p) => new Handle(p.value)), !v[9] ? null : new Handle(v[9].value), v[10]), 3101698114: (id, v) => new IFC4_3.IfcSurfaceFeature(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]), 2315554128: (id, v) => new IFC4_3.IfcSwitchingDeviceType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]), 2254336722: (id, v) => new IFC4_3.IfcSystem(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value)), 413509423: (id, v) => new IFC4_3.IfcSystemFurnitureElement(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]), 5716631: (id, v) => new IFC4_3.IfcTankType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]), 3824725483: (id, v) => new IFC4_3.IfcTendon(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9], !v[10] ? null : new IFC4_3.IfcPositiveLengthMeasure(v[10].value), !v[11] ? null : new IFC4_3.IfcAreaMeasure(v[11].value), !v[12] ? null : new IFC4_3.IfcForceMeasure(v[12].value), !v[13] ? null : new IFC4_3.IfcPressureMeasure(v[13].value), !v[14] ? null : new IFC4_3.IfcNormalisedRatioMeasure(v[14].value), !v[15] ? null : new IFC4_3.IfcPositiveLengthMeasure(v[15].value), !v[16] ? null : new IFC4_3.IfcPositiveLengthMeasure(v[16].value)), 2347447852: (id, v) => new IFC4_3.IfcTendonAnchor(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]), 3081323446: (id, v) => new IFC4_3.IfcTendonAnchorType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]), 3663046924: (id, v) => new IFC4_3.IfcTendonConduit(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]), 2281632017: (id, v) => new IFC4_3.IfcTendonConduitType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]), 2415094496: (id, v) => new IFC4_3.IfcTendonType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9], !v[10] ? null : new IFC4_3.IfcPositiveLengthMeasure(v[10].value), !v[11] ? null : new IFC4_3.IfcAreaMeasure(v[11].value), !v[12] ? null : new IFC4_3.IfcPositiveLengthMeasure(v[12].value)), 618700268: (id, v) => new IFC4_3.IfcTrackElementType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]), 1692211062: (id, v) => new IFC4_3.IfcTransformerType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]), 2097647324: (id, v) => new IFC4_3.IfcTransportElementType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]), 1953115116: (id, v) => new IFC4_3.IfcTransportationDevice(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value)), 3593883385: (id, v) => new IFC4_3.IfcTrimmedCurve(id, new Handle(v[0].value), v[1].map((p) => new Handle(p.value)), v[2].map((p) => new Handle(p.value)), new IFC4_3.IfcBoolean(v[3].value), v[4]), 1600972822: (id, v) => new IFC4_3.IfcTubeBundleType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]), 1911125066: (id, v) => new IFC4_3.IfcUnitaryEquipmentType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]), 728799441: (id, v) => new IFC4_3.IfcValveType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]), 840318589: (id, v) => new IFC4_3.IfcVehicle(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]), 1530820697: (id, v) => new IFC4_3.IfcVibrationDamper(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]), 3956297820: (id, v) => new IFC4_3.IfcVibrationDamperType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]), 2391383451: (id, v) => new IFC4_3.IfcVibrationIsolator(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]), 3313531582: (id, v) => new IFC4_3.IfcVibrationIsolatorType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]), 2769231204: (id, v) => new IFC4_3.IfcVirtualElement(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]), 926996030: (id, v) => new IFC4_3.IfcVoidingFeature(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]), 1898987631: (id, v) => new IFC4_3.IfcWallType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]), 1133259667: (id, v) => new IFC4_3.IfcWasteTerminalType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]), 4009809668: (id, v) => new IFC4_3.IfcWindowType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9], v[10], !v[11] ? null : new IFC4_3.IfcBoolean(v[11].value), !v[12] ? null : new IFC4_3.IfcLabel(v[12].value)), 4088093105: (id, v) => new IFC4_3.IfcWorkCalendar(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new IFC4_3.IfcIdentifier(v[5].value), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : v[7].map((p) => new Handle(p.value)), v[8]), 1028945134: (id, v) => new IFC4_3.IfcWorkControl(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new IFC4_3.IfcIdentifier(v[5].value), new IFC4_3.IfcDateTime(v[6].value), !v[7] ? null : v[7].map((p) => new Handle(p.value)), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), !v[9] ? null : new IFC4_3.IfcDuration(v[9].value), !v[10] ? null : new IFC4_3.IfcDuration(v[10].value), new IFC4_3.IfcDateTime(v[11].value), !v[12] ? null : new IFC4_3.IfcDateTime(v[12].value)), 4218914973: (id, v) => new IFC4_3.IfcWorkPlan(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new IFC4_3.IfcIdentifier(v[5].value), new IFC4_3.IfcDateTime(v[6].value), !v[7] ? null : v[7].map((p) => new Handle(p.value)), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), !v[9] ? null : new IFC4_3.IfcDuration(v[9].value), !v[10] ? null : new IFC4_3.IfcDuration(v[10].value), new IFC4_3.IfcDateTime(v[11].value), !v[12] ? null : new IFC4_3.IfcDateTime(v[12].value), v[13]), 3342526732: (id, v) => new IFC4_3.IfcWorkSchedule(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new IFC4_3.IfcIdentifier(v[5].value), new IFC4_3.IfcDateTime(v[6].value), !v[7] ? null : v[7].map((p) => new Handle(p.value)), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), !v[9] ? null : new IFC4_3.IfcDuration(v[9].value), !v[10] ? null : new IFC4_3.IfcDuration(v[10].value), new IFC4_3.IfcDateTime(v[11].value), !v[12] ? null : new IFC4_3.IfcDateTime(v[12].value), v[13]), 1033361043: (id, v) => new IFC4_3.IfcZone(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new IFC4_3.IfcLabel(v[5].value)), 3821786052: (id, v) => new IFC4_3.IfcActionRequest(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new IFC4_3.IfcIdentifier(v[5].value), v[6], !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcText(v[8].value)), 1411407467: (id, v) => new IFC4_3.IfcAirTerminalBoxType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]), 3352864051: (id, v) => new IFC4_3.IfcAirTerminalType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]), 1871374353: (id, v) => new IFC4_3.IfcAirToAirHeatRecoveryType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]), 4266260250: (id, v) => new IFC4_3.IfcAlignmentCant(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), new IFC4_3.IfcPositiveLengthMeasure(v[7].value)), 1545765605: (id, v) => new IFC4_3.IfcAlignmentHorizontal(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value)), 317615605: (id, v) => new IFC4_3.IfcAlignmentSegment(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), new Handle(v[7].value)), 1662888072: (id, v) => new IFC4_3.IfcAlignmentVertical(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value)), 3460190687: (id, v) => new IFC4_3.IfcAsset(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new IFC4_3.IfcIdentifier(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new Handle(v[7].value), !v[8] ? null : new Handle(v[8].value), !v[9] ? null : new Handle(v[9].value), !v[10] ? null : new Handle(v[10].value), !v[11] ? null : new Handle(v[11].value), !v[12] ? null : new IFC4_3.IfcDate(v[12].value), !v[13] ? null : new Handle(v[13].value)), 1532957894: (id, v) => new IFC4_3.IfcAudioVisualApplianceType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]), 1967976161: (id, v) => new IFC4_3.IfcBSplineCurve(id, new IFC4_3.IfcInteger(v[0].value), v[1].map((p) => new Handle(p.value)), v[2], new IFC4_3.IfcLogical(v[3].value), new IFC4_3.IfcLogical(v[4].value)), 2461110595: (id, v) => new IFC4_3.IfcBSplineCurveWithKnots(id, new IFC4_3.IfcInteger(v[0].value), v[1].map((p) => new Handle(p.value)), v[2], new IFC4_3.IfcLogical(v[3].value), new IFC4_3.IfcLogical(v[4].value), v[5].map((p) => new IFC4_3.IfcInteger(p.value)), v[6].map((p) => new IFC4_3.IfcParameterValue(p.value)), v[7]), 819618141: (id, v) => new IFC4_3.IfcBeamType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]), 3649138523: (id, v) => new IFC4_3.IfcBearingType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]), 231477066: (id, v) => new IFC4_3.IfcBoilerType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]), 1136057603: (id, v) => new IFC4_3.IfcBoundaryCurve(id, v[0].map((p) => new Handle(p.value)), new IFC4_3.IfcLogical(v[1].value)), 644574406: (id, v) => new IFC4_3.IfcBridge(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), v[8], v[9]), 963979645: (id, v) => new IFC4_3.IfcBridgePart(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), v[8], v[9], v[10]), 4031249490: (id, v) => new IFC4_3.IfcBuilding(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), v[8], !v[9] ? null : new IFC4_3.IfcLengthMeasure(v[9].value), !v[10] ? null : new IFC4_3.IfcLengthMeasure(v[10].value), !v[11] ? null : new Handle(v[11].value)), 2979338954: (id, v) => new IFC4_3.IfcBuildingElementPart(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]), 39481116: (id, v) => new IFC4_3.IfcBuildingElementPartType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]), 1909888760: (id, v) => new IFC4_3.IfcBuildingElementProxyType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]), 1177604601: (id, v) => new IFC4_3.IfcBuildingSystem(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), v[5], !v[6] ? null : new IFC4_3.IfcLabel(v[6].value)), 1876633798: (id, v) => new IFC4_3.IfcBuiltElement(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value)), 3862327254: (id, v) => new IFC4_3.IfcBuiltSystem(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), v[5], !v[6] ? null : new IFC4_3.IfcLabel(v[6].value)), 2188180465: (id, v) => new IFC4_3.IfcBurnerType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]), 395041908: (id, v) => new IFC4_3.IfcCableCarrierFittingType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]), 3293546465: (id, v) => new IFC4_3.IfcCableCarrierSegmentType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]), 2674252688: (id, v) => new IFC4_3.IfcCableFittingType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]), 1285652485: (id, v) => new IFC4_3.IfcCableSegmentType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]), 3203706013: (id, v) => new IFC4_3.IfcCaissonFoundationType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]), 2951183804: (id, v) => new IFC4_3.IfcChillerType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]), 3296154744: (id, v) => new IFC4_3.IfcChimney(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]), 2611217952: (id, v) => new IFC4_3.IfcCircle(id, new Handle(v[0].value), new IFC4_3.IfcPositiveLengthMeasure(v[1].value)), 1677625105: (id, v) => new IFC4_3.IfcCivilElement(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value)), 2301859152: (id, v) => new IFC4_3.IfcCoilType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]), 843113511: (id, v) => new IFC4_3.IfcColumn(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]), 400855858: (id, v) => new IFC4_3.IfcCommunicationsApplianceType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]), 3850581409: (id, v) => new IFC4_3.IfcCompressorType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]), 2816379211: (id, v) => new IFC4_3.IfcCondenserType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]), 3898045240: (id, v) => new IFC4_3.IfcConstructionEquipmentResource(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new IFC4_3.IfcIdentifier(v[5].value), !v[6] ? null : new IFC4_3.IfcText(v[6].value), !v[7] ? null : new Handle(v[7].value), !v[8] ? null : v[8].map((p) => new Handle(p.value)), !v[9] ? null : new Handle(v[9].value), v[10]), 1060000209: (id, v) => new IFC4_3.IfcConstructionMaterialResource(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new IFC4_3.IfcIdentifier(v[5].value), !v[6] ? null : new IFC4_3.IfcText(v[6].value), !v[7] ? null : new Handle(v[7].value), !v[8] ? null : v[8].map((p) => new Handle(p.value)), !v[9] ? null : new Handle(v[9].value), v[10]), 488727124: (id, v) => new IFC4_3.IfcConstructionProductResource(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new IFC4_3.IfcIdentifier(v[5].value), !v[6] ? null : new IFC4_3.IfcText(v[6].value), !v[7] ? null : new Handle(v[7].value), !v[8] ? null : v[8].map((p) => new Handle(p.value)), !v[9] ? null : new Handle(v[9].value), v[10]), 2940368186: (id, v) => new IFC4_3.IfcConveyorSegmentType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]), 335055490: (id, v) => new IFC4_3.IfcCooledBeamType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]), 2954562838: (id, v) => new IFC4_3.IfcCoolingTowerType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]), 1502416096: (id, v) => new IFC4_3.IfcCourse(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]), 1973544240: (id, v) => new IFC4_3.IfcCovering(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]), 3495092785: (id, v) => new IFC4_3.IfcCurtainWall(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]), 3961806047: (id, v) => new IFC4_3.IfcDamperType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]), 3426335179: (id, v) => new IFC4_3.IfcDeepFoundation(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value)), 1335981549: (id, v) => new IFC4_3.IfcDiscreteAccessory(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]), 2635815018: (id, v) => new IFC4_3.IfcDiscreteAccessoryType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]), 479945903: (id, v) => new IFC4_3.IfcDistributionBoardType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]), 1599208980: (id, v) => new IFC4_3.IfcDistributionChamberElementType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]), 2063403501: (id, v) => new IFC4_3.IfcDistributionControlElementType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value)), 1945004755: (id, v) => new IFC4_3.IfcDistributionElement(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value)), 3040386961: (id, v) => new IFC4_3.IfcDistributionFlowElement(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value)), 3041715199: (id, v) => new IFC4_3.IfcDistributionPort(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), v[7], v[8], v[9]), 3205830791: (id, v) => new IFC4_3.IfcDistributionSystem(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new IFC4_3.IfcLabel(v[5].value), v[6]), 395920057: (id, v) => new IFC4_3.IfcDoor(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), !v[8] ? null : new IFC4_3.IfcPositiveLengthMeasure(v[8].value), !v[9] ? null : new IFC4_3.IfcPositiveLengthMeasure(v[9].value), v[10], v[11], !v[12] ? null : new IFC4_3.IfcLabel(v[12].value)), 869906466: (id, v) => new IFC4_3.IfcDuctFittingType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]), 3760055223: (id, v) => new IFC4_3.IfcDuctSegmentType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]), 2030761528: (id, v) => new IFC4_3.IfcDuctSilencerType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]), 3071239417: (id, v) => new IFC4_3.IfcEarthworksCut(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]), 1077100507: (id, v) => new IFC4_3.IfcEarthworksElement(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value)), 3376911765: (id, v) => new IFC4_3.IfcEarthworksFill(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]), 663422040: (id, v) => new IFC4_3.IfcElectricApplianceType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]), 2417008758: (id, v) => new IFC4_3.IfcElectricDistributionBoardType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]), 3277789161: (id, v) => new IFC4_3.IfcElectricFlowStorageDeviceType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]), 2142170206: (id, v) => new IFC4_3.IfcElectricFlowTreatmentDeviceType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]), 1534661035: (id, v) => new IFC4_3.IfcElectricGeneratorType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]), 1217240411: (id, v) => new IFC4_3.IfcElectricMotorType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]), 712377611: (id, v) => new IFC4_3.IfcElectricTimeControlType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]), 1658829314: (id, v) => new IFC4_3.IfcEnergyConversionDevice(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value)), 2814081492: (id, v) => new IFC4_3.IfcEngine(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]), 3747195512: (id, v) => new IFC4_3.IfcEvaporativeCooler(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]), 484807127: (id, v) => new IFC4_3.IfcEvaporator(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]), 1209101575: (id, v) => new IFC4_3.IfcExternalSpatialElement(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), v[8]), 346874300: (id, v) => new IFC4_3.IfcFanType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]), 1810631287: (id, v) => new IFC4_3.IfcFilterType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]), 4222183408: (id, v) => new IFC4_3.IfcFireSuppressionTerminalType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]), 2058353004: (id, v) => new IFC4_3.IfcFlowController(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value)), 4278956645: (id, v) => new IFC4_3.IfcFlowFitting(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value)), 4037862832: (id, v) => new IFC4_3.IfcFlowInstrumentType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]), 2188021234: (id, v) => new IFC4_3.IfcFlowMeter(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]), 3132237377: (id, v) => new IFC4_3.IfcFlowMovingDevice(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value)), 987401354: (id, v) => new IFC4_3.IfcFlowSegment(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value)), 707683696: (id, v) => new IFC4_3.IfcFlowStorageDevice(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value)), 2223149337: (id, v) => new IFC4_3.IfcFlowTerminal(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value)), 3508470533: (id, v) => new IFC4_3.IfcFlowTreatmentDevice(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value)), 900683007: (id, v) => new IFC4_3.IfcFooting(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]), 2713699986: (id, v) => new IFC4_3.IfcGeotechnicalAssembly(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value)), 3009204131: (id, v) => new IFC4_3.IfcGrid(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), v[7].map((p) => new Handle(p.value)), v[8].map((p) => new Handle(p.value)), !v[9] ? null : v[9].map((p) => new Handle(p.value)), v[10]), 3319311131: (id, v) => new IFC4_3.IfcHeatExchanger(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]), 2068733104: (id, v) => new IFC4_3.IfcHumidifier(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]), 4175244083: (id, v) => new IFC4_3.IfcInterceptor(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]), 2176052936: (id, v) => new IFC4_3.IfcJunctionBox(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]), 2696325953: (id, v) => new IFC4_3.IfcKerb(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), new IFC4_3.IfcBoolean(v[8].value)), 76236018: (id, v) => new IFC4_3.IfcLamp(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]), 629592764: (id, v) => new IFC4_3.IfcLightFixture(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]), 1154579445: (id, v) => new IFC4_3.IfcLinearPositioningElement(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value)), 1638804497: (id, v) => new IFC4_3.IfcLiquidTerminal(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]), 1437502449: (id, v) => new IFC4_3.IfcMedicalDevice(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]), 1073191201: (id, v) => new IFC4_3.IfcMember(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]), 2078563270: (id, v) => new IFC4_3.IfcMobileTelecommunicationsAppliance(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]), 234836483: (id, v) => new IFC4_3.IfcMooringDevice(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]), 2474470126: (id, v) => new IFC4_3.IfcMotorConnection(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]), 2182337498: (id, v) => new IFC4_3.IfcNavigationElement(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]), 144952367: (id, v) => new IFC4_3.IfcOuterBoundaryCurve(id, v[0].map((p) => new Handle(p.value)), new IFC4_3.IfcLogical(v[1].value)), 3694346114: (id, v) => new IFC4_3.IfcOutlet(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]), 1383356374: (id, v) => new IFC4_3.IfcPavement(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]), 1687234759: (id, v) => new IFC4_3.IfcPile(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8], v[9]), 310824031: (id, v) => new IFC4_3.IfcPipeFitting(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]), 3612865200: (id, v) => new IFC4_3.IfcPipeSegment(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]), 3171933400: (id, v) => new IFC4_3.IfcPlate(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]), 738039164: (id, v) => new IFC4_3.IfcProtectiveDevice(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]), 655969474: (id, v) => new IFC4_3.IfcProtectiveDeviceTrippingUnitType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]), 90941305: (id, v) => new IFC4_3.IfcPump(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]), 3290496277: (id, v) => new IFC4_3.IfcRail(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]), 2262370178: (id, v) => new IFC4_3.IfcRailing(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]), 3024970846: (id, v) => new IFC4_3.IfcRamp(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]), 3283111854: (id, v) => new IFC4_3.IfcRampFlight(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]), 1232101972: (id, v) => new IFC4_3.IfcRationalBSplineCurveWithKnots(id, new IFC4_3.IfcInteger(v[0].value), v[1].map((p) => new Handle(p.value)), v[2], new IFC4_3.IfcLogical(v[3].value), new IFC4_3.IfcLogical(v[4].value), v[5].map((p) => new IFC4_3.IfcInteger(p.value)), v[6].map((p) => new IFC4_3.IfcParameterValue(p.value)), v[7], v[8].map((p) => new IFC4_3.IfcReal(p.value))), 3798194928: (id, v) => new IFC4_3.IfcReinforcedSoil(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]), 979691226: (id, v) => new IFC4_3.IfcReinforcingBar(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), !v[9] ? null : new IFC4_3.IfcPositiveLengthMeasure(v[9].value), !v[10] ? null : new IFC4_3.IfcAreaMeasure(v[10].value), !v[11] ? null : new IFC4_3.IfcPositiveLengthMeasure(v[11].value), v[12], v[13]), 2572171363: (id, v) => new IFC4_3.IfcReinforcingBarType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9], !v[10] ? null : new IFC4_3.IfcPositiveLengthMeasure(v[10].value), !v[11] ? null : new IFC4_3.IfcAreaMeasure(v[11].value), !v[12] ? null : new IFC4_3.IfcPositiveLengthMeasure(v[12].value), v[13], !v[14] ? null : new IFC4_3.IfcLabel(v[14].value), !v[15] ? null : v[15].map((p) => TypeInitialiser(2, p))), 2016517767: (id, v) => new IFC4_3.IfcRoof(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]), 3053780830: (id, v) => new IFC4_3.IfcSanitaryTerminal(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]), 1783015770: (id, v) => new IFC4_3.IfcSensorType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]), 1329646415: (id, v) => new IFC4_3.IfcShadingDevice(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]), 991950508: (id, v) => new IFC4_3.IfcSignal(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]), 1529196076: (id, v) => new IFC4_3.IfcSlab(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]), 3420628829: (id, v) => new IFC4_3.IfcSolarDevice(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]), 1999602285: (id, v) => new IFC4_3.IfcSpaceHeater(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]), 1404847402: (id, v) => new IFC4_3.IfcStackTerminal(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]), 331165859: (id, v) => new IFC4_3.IfcStair(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]), 4252922144: (id, v) => new IFC4_3.IfcStairFlight(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), !v[8] ? null : new IFC4_3.IfcInteger(v[8].value), !v[9] ? null : new IFC4_3.IfcInteger(v[9].value), !v[10] ? null : new IFC4_3.IfcPositiveLengthMeasure(v[10].value), !v[11] ? null : new IFC4_3.IfcPositiveLengthMeasure(v[11].value), v[12]), 2515109513: (id, v) => new IFC4_3.IfcStructuralAnalysisModel(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), v[5], !v[6] ? null : new Handle(v[6].value), !v[7] ? null : v[7].map((p) => new Handle(p.value)), !v[8] ? null : v[8].map((p) => new Handle(p.value)), !v[9] ? null : new Handle(v[9].value)), 385403989: (id, v) => new IFC4_3.IfcStructuralLoadCase(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), v[5], v[6], v[7], !v[8] ? null : new IFC4_3.IfcRatioMeasure(v[8].value), !v[9] ? null : new IFC4_3.IfcLabel(v[9].value), !v[10] ? null : v[10].map((p) => new IFC4_3.IfcRatioMeasure(p.value))), 1621171031: (id, v) => new IFC4_3.IfcStructuralPlanarAction(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), new Handle(v[7].value), v[8], !v[9] ? null : new IFC4_3.IfcBoolean(v[9].value), v[10], v[11]), 1162798199: (id, v) => new IFC4_3.IfcSwitchingDevice(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]), 812556717: (id, v) => new IFC4_3.IfcTank(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]), 3425753595: (id, v) => new IFC4_3.IfcTrackElement(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]), 3825984169: (id, v) => new IFC4_3.IfcTransformer(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]), 1620046519: (id, v) => new IFC4_3.IfcTransportElement(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]), 3026737570: (id, v) => new IFC4_3.IfcTubeBundle(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]), 3179687236: (id, v) => new IFC4_3.IfcUnitaryControlElementType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]), 4292641817: (id, v) => new IFC4_3.IfcUnitaryEquipment(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]), 4207607924: (id, v) => new IFC4_3.IfcValve(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]), 2391406946: (id, v) => new IFC4_3.IfcWall(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]), 3512223829: (id, v) => new IFC4_3.IfcWallStandardCase(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]), 4237592921: (id, v) => new IFC4_3.IfcWasteTerminal(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]), 3304561284: (id, v) => new IFC4_3.IfcWindow(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), !v[8] ? null : new IFC4_3.IfcPositiveLengthMeasure(v[8].value), !v[9] ? null : new IFC4_3.IfcPositiveLengthMeasure(v[9].value), v[10], v[11], !v[12] ? null : new IFC4_3.IfcLabel(v[12].value)), 2874132201: (id, v) => new IFC4_3.IfcActuatorType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]), 1634111441: (id, v) => new IFC4_3.IfcAirTerminal(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]), 177149247: (id, v) => new IFC4_3.IfcAirTerminalBox(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]), 2056796094: (id, v) => new IFC4_3.IfcAirToAirHeatRecovery(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]), 3001207471: (id, v) => new IFC4_3.IfcAlarmType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]), 325726236: (id, v) => new IFC4_3.IfcAlignment(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), v[7]), 277319702: (id, v) => new IFC4_3.IfcAudioVisualAppliance(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]), 753842376: (id, v) => new IFC4_3.IfcBeam(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]), 4196446775: (id, v) => new IFC4_3.IfcBearing(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]), 32344328: (id, v) => new IFC4_3.IfcBoiler(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]), 3314249567: (id, v) => new IFC4_3.IfcBorehole(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value)), 1095909175: (id, v) => new IFC4_3.IfcBuildingElementProxy(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]), 2938176219: (id, v) => new IFC4_3.IfcBurner(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]), 635142910: (id, v) => new IFC4_3.IfcCableCarrierFitting(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]), 3758799889: (id, v) => new IFC4_3.IfcCableCarrierSegment(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]), 1051757585: (id, v) => new IFC4_3.IfcCableFitting(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]), 4217484030: (id, v) => new IFC4_3.IfcCableSegment(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]), 3999819293: (id, v) => new IFC4_3.IfcCaissonFoundation(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]), 3902619387: (id, v) => new IFC4_3.IfcChiller(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]), 639361253: (id, v) => new IFC4_3.IfcCoil(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]), 3221913625: (id, v) => new IFC4_3.IfcCommunicationsAppliance(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]), 3571504051: (id, v) => new IFC4_3.IfcCompressor(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]), 2272882330: (id, v) => new IFC4_3.IfcCondenser(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]), 578613899: (id, v) => new IFC4_3.IfcControllerType(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4_3.IfcLabel(v[7].value), !v[8] ? null : new IFC4_3.IfcLabel(v[8].value), v[9]), 3460952963: (id, v) => new IFC4_3.IfcConveyorSegment(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]), 4136498852: (id, v) => new IFC4_3.IfcCooledBeam(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]), 3640358203: (id, v) => new IFC4_3.IfcCoolingTower(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]), 4074379575: (id, v) => new IFC4_3.IfcDamper(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]), 3693000487: (id, v) => new IFC4_3.IfcDistributionBoard(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]), 1052013943: (id, v) => new IFC4_3.IfcDistributionChamberElement(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]), 562808652: (id, v) => new IFC4_3.IfcDistributionCircuit(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new IFC4_3.IfcLabel(v[5].value), v[6]), 1062813311: (id, v) => new IFC4_3.IfcDistributionControlElement(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value)), 342316401: (id, v) => new IFC4_3.IfcDuctFitting(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]), 3518393246: (id, v) => new IFC4_3.IfcDuctSegment(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]), 1360408905: (id, v) => new IFC4_3.IfcDuctSilencer(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]), 1904799276: (id, v) => new IFC4_3.IfcElectricAppliance(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]), 862014818: (id, v) => new IFC4_3.IfcElectricDistributionBoard(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]), 3310460725: (id, v) => new IFC4_3.IfcElectricFlowStorageDevice(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]), 24726584: (id, v) => new IFC4_3.IfcElectricFlowTreatmentDevice(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]), 264262732: (id, v) => new IFC4_3.IfcElectricGenerator(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]), 402227799: (id, v) => new IFC4_3.IfcElectricMotor(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]), 1003880860: (id, v) => new IFC4_3.IfcElectricTimeControl(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]), 3415622556: (id, v) => new IFC4_3.IfcFan(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]), 819412036: (id, v) => new IFC4_3.IfcFilter(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]), 1426591983: (id, v) => new IFC4_3.IfcFireSuppressionTerminal(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]), 182646315: (id, v) => new IFC4_3.IfcFlowInstrument(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]), 2680139844: (id, v) => new IFC4_3.IfcGeomodel(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value)), 1971632696: (id, v) => new IFC4_3.IfcGeoslice(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value)), 2295281155: (id, v) => new IFC4_3.IfcProtectiveDeviceTrippingUnit(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]), 4086658281: (id, v) => new IFC4_3.IfcSensor(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]), 630975310: (id, v) => new IFC4_3.IfcUnitaryControlElement(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]), 4288193352: (id, v) => new IFC4_3.IfcActuator(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]), 3087945054: (id, v) => new IFC4_3.IfcAlarm(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]), 25142252: (id, v) => new IFC4_3.IfcController(id, new IFC4_3.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4_3.IfcLabel(v[2].value), !v[3] ? null : new IFC4_3.IfcText(v[3].value), !v[4] ? null : new IFC4_3.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4_3.IfcIdentifier(v[7].value), v[8]) }; InheritanceDef[2] = { 618182010: [IFCTELECOMADDRESS, IFCPOSTALADDRESS], 2879124712: [IFCALIGNMENTHORIZONTALSEGMENT, IFCALIGNMENTCANTSEGMENT, IFCALIGNMENTVERTICALSEGMENT], 411424972: [IFCCOSTVALUE], 4037036970: [IFCBOUNDARYNODECONDITIONWARPING, IFCBOUNDARYNODECONDITION, IFCBOUNDARYFACECONDITION, IFCBOUNDARYEDGECONDITION], 1387855156: [IFCBOUNDARYNODECONDITIONWARPING], 2859738748: [IFCCONNECTIONCURVEGEOMETRY, IFCCONNECTIONVOLUMEGEOMETRY, IFCCONNECTIONSURFACEGEOMETRY, IFCCONNECTIONPOINTECCENTRICITY, IFCCONNECTIONPOINTGEOMETRY], 2614616156: [IFCCONNECTIONPOINTECCENTRICITY], 1959218052: [IFCOBJECTIVE, IFCMETRIC], 1785450214: [IFCMAPCONVERSION], 1466758467: [IFCPROJECTEDCRS], 4294318154: [IFCDOCUMENTINFORMATION, IFCCLASSIFICATION, IFCLIBRARYINFORMATION], 3200245327: [IFCDOCUMENTREFERENCE, IFCCLASSIFICATIONREFERENCE, IFCLIBRARYREFERENCE, IFCEXTERNALLYDEFINEDTEXTFONT, IFCEXTERNALLYDEFINEDSURFACESTYLE, IFCEXTERNALLYDEFINEDHATCHSTYLE], 760658860: [IFCMATERIALCONSTITUENTSET, IFCMATERIALCONSTITUENT, IFCMATERIAL, IFCMATERIALPROFILESET, IFCMATERIALPROFILEWITHOFFSETS, IFCMATERIALPROFILE, IFCMATERIALLAYERSET, IFCMATERIALLAYERWITHOFFSETS, IFCMATERIALLAYER], 248100487: [IFCMATERIALLAYERWITHOFFSETS], 2235152071: [IFCMATERIALPROFILEWITHOFFSETS], 1507914824: [IFCMATERIALPROFILESETUSAGETAPERING, IFCMATERIALPROFILESETUSAGE, IFCMATERIALLAYERSETUSAGE], 1918398963: [IFCCONVERSIONBASEDUNITWITHOFFSET, IFCCONVERSIONBASEDUNIT, IFCCONTEXTDEPENDENTUNIT, IFCSIUNIT], 3701648758: [IFCLOCALPLACEMENT, IFCLINEARPLACEMENT, IFCGRIDPLACEMENT], 2483315170: [IFCPHYSICALCOMPLEXQUANTITY, IFCQUANTITYWEIGHT, IFCQUANTITYVOLUME, IFCQUANTITYTIME, IFCQUANTITYNUMBER, IFCQUANTITYLENGTH, IFCQUANTITYCOUNT, IFCQUANTITYAREA, IFCPHYSICALSIMPLEQUANTITY], 2226359599: [IFCQUANTITYWEIGHT, IFCQUANTITYVOLUME, IFCQUANTITYTIME, IFCQUANTITYNUMBER, IFCQUANTITYLENGTH, IFCQUANTITYCOUNT, IFCQUANTITYAREA], 677532197: [IFCDRAUGHTINGPREDEFINEDCURVEFONT, IFCPREDEFINEDCURVEFONT, IFCDRAUGHTINGPREDEFINEDCOLOUR, IFCPREDEFINEDCOLOUR, IFCTEXTSTYLEFONTMODEL, IFCPREDEFINEDTEXTFONT, IFCPREDEFINEDITEM, IFCINDEXEDCOLOURMAP, IFCCURVESTYLEFONTPATTERN, IFCCURVESTYLEFONTANDSCALING, IFCCURVESTYLEFONT, IFCCOLOURRGB, IFCCOLOURSPECIFICATION, IFCCOLOURRGBLIST, IFCTEXTUREVERTEXLIST, IFCTEXTUREVERTEX, IFCINDEXEDPOLYGONALTEXTUREMAP, IFCINDEXEDTRIANGLETEXTUREMAP, IFCINDEXEDTEXTUREMAP, IFCTEXTUREMAP, IFCTEXTURECOORDINATEGENERATOR, IFCTEXTURECOORDINATE, IFCTEXTSTYLETEXTMODEL, IFCTEXTSTYLEFORDEFINEDFONT, IFCPIXELTEXTURE, IFCIMAGETEXTURE, IFCBLOBTEXTURE, IFCSURFACETEXTURE, IFCSURFACESTYLEWITHTEXTURES, IFCSURFACESTYLERENDERING, IFCSURFACESTYLESHADING, IFCSURFACESTYLEREFRACTION, IFCSURFACESTYLELIGHTING], 2022622350: [IFCPRESENTATIONLAYERWITHSTYLE], 3119450353: [IFCFILLAREASTYLE, IFCCURVESTYLE, IFCTEXTSTYLE, IFCSURFACESTYLE], 2095639259: [IFCPRODUCTDEFINITIONSHAPE, IFCMATERIALDEFINITIONREPRESENTATION], 3958567839: [IFCLSHAPEPROFILEDEF, IFCISHAPEPROFILEDEF, IFCELLIPSEPROFILEDEF, IFCCIRCLEHOLLOWPROFILEDEF, IFCCIRCLEPROFILEDEF, IFCCSHAPEPROFILEDEF, IFCASYMMETRICISHAPEPROFILEDEF, IFCZSHAPEPROFILEDEF, IFCUSHAPEPROFILEDEF, IFCTRAPEZIUMPROFILEDEF, IFCTSHAPEPROFILEDEF, IFCRECTANGLEHOLLOWPROFILEDEF, IFCROUNDEDRECTANGLEPROFILEDEF, IFCRECTANGLEPROFILEDEF, IFCPARAMETERIZEDPROFILEDEF, IFCOPENCROSSPROFILEDEF, IFCMIRROREDPROFILEDEF, IFCDERIVEDPROFILEDEF, IFCCOMPOSITEPROFILEDEF, IFCCENTERLINEPROFILEDEF, IFCARBITRARYOPENPROFILEDEF, IFCARBITRARYPROFILEDEFWITHVOIDS, IFCARBITRARYCLOSEDPROFILEDEF], 986844984: [IFCCOMPLEXPROPERTY, IFCPROPERTYTABLEVALUE, IFCPROPERTYSINGLEVALUE, IFCPROPERTYREFERENCEVALUE, IFCPROPERTYLISTVALUE, IFCPROPERTYENUMERATEDVALUE, IFCPROPERTYBOUNDEDVALUE, IFCSIMPLEPROPERTY, IFCPROPERTY, IFCSECTIONREINFORCEMENTPROPERTIES, IFCSECTIONPROPERTIES, IFCREINFORCEMENTBARPROPERTIES, IFCPREDEFINEDPROPERTIES, IFCPROFILEPROPERTIES, IFCMATERIALPROPERTIES, IFCEXTENDEDPROPERTIES, IFCPROPERTYENUMERATION], 1076942058: [IFCSTYLEDREPRESENTATION, IFCSTYLEMODEL, IFCTOPOLOGYREPRESENTATION, IFCSHAPEREPRESENTATION, IFCSHAPEMODEL], 3377609919: [IFCGEOMETRICREPRESENTATIONSUBCONTEXT, IFCGEOMETRICREPRESENTATIONCONTEXT], 3008791417: [IFCMAPPEDITEM, IFCFILLAREASTYLETILES, IFCFILLAREASTYLEHATCHING, IFCFACEBASEDSURFACEMODEL, IFCDIRECTION, IFCCIRCLE, IFCELLIPSE, IFCCONIC, IFCRATIONALBSPLINECURVEWITHKNOTS, IFCBSPLINECURVEWITHKNOTS, IFCBSPLINECURVE, IFCTRIMMEDCURVE, IFCPOLYLINE, IFCINDEXEDPOLYCURVE, IFCSEGMENTEDREFERENCECURVE, IFCGRADIENTCURVE, IFCOUTERBOUNDARYCURVE, IFCBOUNDARYCURVE, IFCCOMPOSITECURVEONSURFACE, IFCCOMPOSITECURVE, IFCBOUNDEDCURVE, IFCSEAMCURVE, IFCINTERSECTIONCURVE, IFCSURFACECURVE, IFCSINESPIRAL, IFCSEVENTHORDERPOLYNOMIALSPIRAL, IFCSECONDORDERPOLYNOMIALSPIRAL, IFCCOSINESPIRAL, IFCCLOTHOID, IFCTHIRDORDERPOLYNOMIALSPIRAL, IFCSPIRAL, IFCPOLYNOMIALCURVE, IFCPCURVE, IFCOFFSETCURVEBYDISTANCES, IFCOFFSETCURVE3D, IFCOFFSETCURVE2D, IFCOFFSETCURVE, IFCLINE, IFCCURVE, IFCBLOCK, IFCSPHERE, IFCRIGHTCIRCULARCYLINDER, IFCRIGHTCIRCULARCONE, IFCRECTANGULARPYRAMID, IFCCSGPRIMITIVE3D, IFCCARTESIANTRANSFORMATIONOPERATOR3DNONUNIFORM, IFCCARTESIANTRANSFORMATIONOPERATOR3D, IFCCARTESIANTRANSFORMATIONOPERATOR2DNONUNIFORM, IFCCARTESIANTRANSFORMATIONOPERATOR2D, IFCCARTESIANTRANSFORMATIONOPERATOR, IFCCARTESIANPOINTLIST3D, IFCCARTESIANPOINTLIST2D, IFCCARTESIANPOINTLIST, IFCBOUNDINGBOX, IFCBOOLEANCLIPPINGRESULT, IFCBOOLEANRESULT, IFCANNOTATIONFILLAREA, IFCVECTOR, IFCTEXTLITERALWITHEXTENT, IFCTEXTLITERAL, IFCPOLYGONALFACESET, IFCTRIANGULATEDIRREGULARNETWORK, IFCTRIANGULATEDFACESET, IFCTESSELLATEDFACESET, IFCINDEXEDPOLYGONALFACEWITHVOIDS, IFCINDEXEDPOLYGONALFACE, IFCTESSELLATEDITEM, IFCSECTIONEDSURFACE, IFCCYLINDRICALSURFACE, IFCTOROIDALSURFACE, IFCSPHERICALSURFACE, IFCPLANE, IFCELEMENTARYSURFACE, IFCRATIONALBSPLINESURFACEWITHKNOTS, IFCBSPLINESURFACEWITHKNOTS, IFCBSPLINESURFACE, IFCRECTANGULARTRIMMEDSURFACE, IFCCURVEBOUNDEDSURFACE, IFCCURVEBOUNDEDPLANE, IFCBOUNDEDSURFACE, IFCSURFACEOFREVOLUTION, IFCSURFACEOFLINEAREXTRUSION, IFCSWEPTSURFACE, IFCSURFACE, IFCSECTIONEDSOLIDHORIZONTAL, IFCSECTIONEDSOLID, IFCFACETEDBREPWITHVOIDS, IFCFACETEDBREP, IFCADVANCEDBREPWITHVOIDS, IFCADVANCEDBREP, IFCMANIFOLDSOLIDBREP, IFCCSGSOLID, IFCSWEPTDISKSOLIDPOLYGONAL, IFCSWEPTDISKSOLID, IFCREVOLVEDAREASOLIDTAPERED, IFCREVOLVEDAREASOLID, IFCEXTRUDEDAREASOLIDTAPERED, IFCEXTRUDEDAREASOLID, IFCSURFACECURVESWEPTAREASOLID, IFCDIRECTRIXDERIVEDREFERENCESWEPTAREASOLID, IFCFIXEDREFERENCESWEPTAREASOLID, IFCDIRECTRIXCURVESWEPTAREASOLID, IFCSWEPTAREASOLID, IFCSOLIDMODEL, IFCSHELLBASEDSURFACEMODEL, IFCCURVESEGMENT, IFCREPARAMETRISEDCOMPOSITECURVESEGMENT, IFCCOMPOSITECURVESEGMENT, IFCSEGMENT, IFCSECTIONEDSPINE, IFCCARTESIANPOINT, IFCPOINTONSURFACE, IFCPOINTONCURVE, IFCPOINTBYDISTANCEEXPRESSION, IFCPOINT, IFCPLANARBOX, IFCPLANAREXTENT, IFCAXIS2PLACEMENTLINEAR, IFCAXIS2PLACEMENT3D, IFCAXIS2PLACEMENT2D, IFCAXIS1PLACEMENT, IFCPLACEMENT, IFCLIGHTSOURCESPOT, IFCLIGHTSOURCEPOSITIONAL, IFCLIGHTSOURCEGONIOMETRIC, IFCLIGHTSOURCEDIRECTIONAL, IFCLIGHTSOURCEAMBIENT, IFCLIGHTSOURCE, IFCBOXEDHALFSPACE, IFCPOLYGONALBOUNDEDHALFSPACE, IFCHALFSPACESOLID, IFCGEOMETRICCURVESET, IFCGEOMETRICSET, IFCGEOMETRICREPRESENTATIONITEM, IFCPATH, IFCEDGELOOP, IFCVERTEXLOOP, IFCPOLYLOOP, IFCLOOP, IFCFACEOUTERBOUND, IFCFACEBOUND, IFCADVANCEDFACE, IFCFACESURFACE, IFCFACE, IFCSUBEDGE, IFCORIENTEDEDGE, IFCEDGECURVE, IFCEDGE, IFCCLOSEDSHELL, IFCOPENSHELL, IFCCONNECTEDFACESET, IFCVERTEXPOINT, IFCVERTEX, IFCTOPOLOGICALREPRESENTATIONITEM, IFCSTYLEDITEM], 2439245199: [IFCRESOURCECONSTRAINTRELATIONSHIP, IFCRESOURCEAPPROVALRELATIONSHIP, IFCPROPERTYDEPENDENCYRELATIONSHIP, IFCORGANIZATIONRELATIONSHIP, IFCMATERIALRELATIONSHIP, IFCEXTERNALREFERENCERELATIONSHIP, IFCDOCUMENTINFORMATIONRELATIONSHIP, IFCCURRENCYRELATIONSHIP, IFCAPPROVALRELATIONSHIP], 2341007311: [IFCRELDEFINESBYTYPE, IFCRELDEFINESBYTEMPLATE, IFCRELDEFINESBYPROPERTIES, IFCRELDEFINESBYOBJECT, IFCRELDEFINES, IFCRELAGGREGATES, IFCRELADHERESTOELEMENT, IFCRELVOIDSELEMENT, IFCRELPROJECTSELEMENT, IFCRELNESTS, IFCRELDECOMPOSES, IFCRELDECLARES, IFCRELSPACEBOUNDARY2NDLEVEL, IFCRELSPACEBOUNDARY1STLEVEL, IFCRELSPACEBOUNDARY, IFCRELSERVICESBUILDINGS, IFCRELSEQUENCE, IFCRELREFERENCEDINSPATIALSTRUCTURE, IFCRELPOSITIONS, IFCRELINTERFERESELEMENTS, IFCRELFLOWCONTROLELEMENTS, IFCRELFILLSELEMENT, IFCRELCOVERSSPACES, IFCRELCOVERSBLDGELEMENTS, IFCRELCONTAINEDINSPATIALSTRUCTURE, IFCRELCONNECTSWITHECCENTRICITY, IFCRELCONNECTSSTRUCTURALMEMBER, IFCRELCONNECTSSTRUCTURALACTIVITY, IFCRELCONNECTSPORTS, IFCRELCONNECTSPORTTOELEMENT, IFCRELCONNECTSWITHREALIZINGELEMENTS, IFCRELCONNECTSPATHELEMENTS, IFCRELCONNECTSELEMENTS, IFCRELCONNECTS, IFCRELASSOCIATESPROFILEDEF, IFCRELASSOCIATESMATERIAL, IFCRELASSOCIATESLIBRARY, IFCRELASSOCIATESDOCUMENT, IFCRELASSOCIATESCONSTRAINT, IFCRELASSOCIATESCLASSIFICATION, IFCRELASSOCIATESAPPROVAL, IFCRELASSOCIATES, IFCRELASSIGNSTORESOURCE, IFCRELASSIGNSTOPRODUCT, IFCRELASSIGNSTOPROCESS, IFCRELASSIGNSTOGROUPBYFACTOR, IFCRELASSIGNSTOGROUP, IFCRELASSIGNSTOCONTROL, IFCRELASSIGNSTOACTOR, IFCRELASSIGNS, IFCRELATIONSHIP, IFCCOMPLEXPROPERTYTEMPLATE, IFCSIMPLEPROPERTYTEMPLATE, IFCPROPERTYTEMPLATE, IFCPROPERTYSETTEMPLATE, IFCPROPERTYTEMPLATEDEFINITION, IFCPROPERTYSET, IFCPERMEABLECOVERINGPROPERTIES, IFCDOORPANELPROPERTIES, IFCDOORLININGPROPERTIES, IFCWINDOWPANELPROPERTIES, IFCWINDOWLININGPROPERTIES, IFCREINFORCEMENTDEFINITIONPROPERTIES, IFCPREDEFINEDPROPERTYSET, IFCELEMENTQUANTITY, IFCQUANTITYSET, IFCPROPERTYSETDEFINITION, IFCPROPERTYDEFINITION, IFCASSET, IFCSTRUCTURALANALYSISMODEL, IFCDISTRIBUTIONCIRCUIT, IFCDISTRIBUTIONSYSTEM, IFCBUILTSYSTEM, IFCBUILDINGSYSTEM, IFCZONE, IFCSYSTEM, IFCSTRUCTURALRESULTGROUP, IFCSTRUCTURALLOADCASE, IFCSTRUCTURALLOADGROUP, IFCINVENTORY, IFCGROUP, IFCACTIONREQUEST, IFCWORKSCHEDULE, IFCWORKPLAN, IFCWORKCONTROL, IFCWORKCALENDAR, IFCPROJECTORDER, IFCPERMIT, IFCPERFORMANCEHISTORY, IFCCOSTSCHEDULE, IFCCOSTITEM, IFCCONTROL, IFCOCCUPANT, IFCACTOR, IFCCONSTRUCTIONPRODUCTRESOURCE, IFCCONSTRUCTIONMATERIALRESOURCE, IFCCONSTRUCTIONEQUIPMENTRESOURCE, IFCSUBCONTRACTRESOURCE, IFCLABORRESOURCE, IFCCREWRESOURCE, IFCCONSTRUCTIONRESOURCE, IFCRESOURCE, IFCALIGNMENT, IFCLINEARPOSITIONINGELEMENT, IFCGRID, IFCREFERENT, IFCPOSITIONINGELEMENT, IFCDISTRIBUTIONPORT, IFCPORT, IFCALIGNMENTVERTICAL, IFCALIGNMENTSEGMENT, IFCALIGNMENTHORIZONTAL, IFCALIGNMENTCANT, IFCLINEARELEMENT, IFCCONTROLLER, IFCALARM, IFCACTUATOR, IFCUNITARYCONTROLELEMENT, IFCSENSOR, IFCPROTECTIVEDEVICETRIPPINGUNIT, IFCFLOWINSTRUMENT, IFCDISTRIBUTIONCONTROLELEMENT, IFCDISTRIBUTIONCHAMBERELEMENT, IFCFILTER, IFCELECTRICFLOWTREATMENTDEVICE, IFCDUCTSILENCER, IFCINTERCEPTOR, IFCFLOWTREATMENTDEVICE, IFCFIRESUPPRESSIONTERMINAL, IFCELECTRICAPPLIANCE, IFCCOMMUNICATIONSAPPLIANCE, IFCAUDIOVISUALAPPLIANCE, IFCAIRTERMINAL, IFCWASTETERMINAL, IFCSTACKTERMINAL, IFCSPACEHEATER, IFCSIGNAL, IFCSANITARYTERMINAL, IFCOUTLET, IFCMOBILETELECOMMUNICATIONSAPPLIANCE, IFCMEDICALDEVICE, IFCLIQUIDTERMINAL, IFCLIGHTFIXTURE, IFCLAMP, IFCFLOWTERMINAL, IFCELECTRICFLOWSTORAGEDEVICE, IFCTANK, IFCFLOWSTORAGEDEVICE, IFCDUCTSEGMENT, IFCCONVEYORSEGMENT, IFCCABLESEGMENT, IFCCABLECARRIERSEGMENT, IFCPIPESEGMENT, IFCFLOWSEGMENT, IFCFAN, IFCCOMPRESSOR, IFCPUMP, IFCFLOWMOVINGDEVICE, IFCDUCTFITTING, IFCCABLEFITTING, IFCCABLECARRIERFITTING, IFCPIPEFITTING, IFCJUNCTIONBOX, IFCFLOWFITTING, IFCELECTRICTIMECONTROL, IFCELECTRICDISTRIBUTIONBOARD, IFCDISTRIBUTIONBOARD, IFCDAMPER, IFCAIRTERMINALBOX, IFCVALVE, IFCSWITCHINGDEVICE, IFCPROTECTIVEDEVICE, IFCFLOWMETER, IFCFLOWCONTROLLER, IFCELECTRICMOTOR, IFCELECTRICGENERATOR, IFCCOOLINGTOWER, IFCCOOLEDBEAM, IFCCONDENSER, IFCCOIL, IFCCHILLER, IFCBURNER, IFCBOILER, IFCAIRTOAIRHEATRECOVERY, IFCUNITARYEQUIPMENT, IFCTUBEBUNDLE, IFCTRANSFORMER, IFCSOLARDEVICE, IFCMOTORCONNECTION, IFCHUMIDIFIER, IFCHEATEXCHANGER, IFCEVAPORATOR, IFCEVAPORATIVECOOLER, IFCENGINE, IFCENERGYCONVERSIONDEVICE, IFCDISTRIBUTIONFLOWELEMENT, IFCDISTRIBUTIONELEMENT, IFCCIVILELEMENT, IFCBUILDINGELEMENTPROXY, IFCBEARING, IFCBEAM, IFCWINDOW, IFCWALLSTANDARDCASE, IFCWALL, IFCTRACKELEMENT, IFCSTAIRFLIGHT, IFCSTAIR, IFCSLAB, IFCSHADINGDEVICE, IFCROOF, IFCRAMPFLIGHT, IFCRAMP, IFCRAILING, IFCRAIL, IFCPLATE, IFCPAVEMENT, IFCNAVIGATIONELEMENT, IFCMOORINGDEVICE, IFCMEMBER, IFCKERB, IFCFOOTING, IFCREINFORCEDSOIL, IFCEARTHWORKSFILL, IFCEARTHWORKSELEMENT, IFCDOOR, IFCCAISSONFOUNDATION, IFCPILE, IFCDEEPFOUNDATION, IFCCURTAINWALL, IFCCOVERING, IFCCOURSE, IFCCOLUMN, IFCCHIMNEY, IFCBUILTELEMENT, IFCVIRTUALELEMENT, IFCTRANSPORTELEMENT, IFCVEHICLE, IFCTRANSPORTATIONDEVICE, IFCGEOSLICE, IFCGEOMODEL, IFCBOREHOLE, IFCGEOTECHNICALASSEMBLY, IFCGEOTECHNICALSTRATUM, IFCGEOTECHNICALELEMENT, IFCGEOGRAPHICELEMENT, IFCSYSTEMFURNITUREELEMENT, IFCFURNITURE, IFCFURNISHINGELEMENT, IFCSURFACEFEATURE, IFCEARTHWORKSCUT, IFCVOIDINGFEATURE, IFCOPENINGELEMENT, IFCFEATUREELEMENTSUBTRACTION, IFCPROJECTIONELEMENT, IFCFEATUREELEMENTADDITION, IFCFEATUREELEMENT, IFCDISCRETEACCESSORY, IFCBUILDINGELEMENTPART, IFCVIBRATIONISOLATOR, IFCVIBRATIONDAMPER, IFCSIGN, IFCREINFORCINGBAR, IFCTENDONCONDUIT, IFCTENDONANCHOR, IFCTENDON, IFCREINFORCINGMESH, IFCREINFORCINGELEMENT, IFCMECHANICALFASTENER, IFCIMPACTPROTECTIONDEVICE, IFCFASTENER, IFCELEMENTCOMPONENT, IFCELEMENTASSEMBLY, IFCELEMENT, IFCANNOTATION, IFCSTRUCTURALSURFACECONNECTION, IFCSTRUCTURALPOINTCONNECTION, IFCSTRUCTURALCURVECONNECTION, IFCSTRUCTURALCONNECTION, IFCSTRUCTURALCURVEMEMBERVARYING, IFCSTRUCTURALCURVEMEMBER, IFCSTRUCTURALSURFACEMEMBERVARYING, IFCSTRUCTURALSURFACEMEMBER, IFCSTRUCTURALMEMBER, IFCSTRUCTURALITEM, IFCSTRUCTURALPLANARACTION, IFCSTRUCTURALSURFACEACTION, IFCSTRUCTURALPOINTACTION, IFCSTRUCTURALLINEARACTION, IFCSTRUCTURALCURVEACTION, IFCSTRUCTURALACTION, IFCSTRUCTURALPOINTREACTION, IFCSTRUCTURALCURVEREACTION, IFCSTRUCTURALSURFACEREACTION, IFCSTRUCTURALREACTION, IFCSTRUCTURALACTIVITY, IFCEXTERNALSPATIALELEMENT, IFCEXTERNALSPATIALSTRUCTUREELEMENT, IFCSPATIALZONE, IFCSPACE, IFCSITE, IFCBRIDGEPART, IFCROADPART, IFCRAILWAYPART, IFCMARINEPART, IFCFACILITYPARTCOMMON, IFCFACILITYPART, IFCBUILDING, IFCBRIDGE, IFCROAD, IFCRAILWAY, IFCMARINEFACILITY, IFCFACILITY, IFCBUILDINGSTOREY, IFCSPATIALSTRUCTUREELEMENT, IFCSPATIALELEMENT, IFCPRODUCT, IFCPROCEDURE, IFCEVENT, IFCTASK, IFCPROCESS, IFCOBJECT, IFCPROJECTLIBRARY, IFCPROJECT, IFCCONTEXT, IFCCONSTRUCTIONPRODUCTRESOURCETYPE, IFCCONSTRUCTIONMATERIALRESOURCETYPE, IFCCONSTRUCTIONEQUIPMENTRESOURCETYPE, IFCSUBCONTRACTRESOURCETYPE, IFCLABORRESOURCETYPE, IFCCREWRESOURCETYPE, IFCCONSTRUCTIONRESOURCETYPE, IFCTYPERESOURCE, IFCSPATIALZONETYPE, IFCSPACETYPE, IFCSPATIALSTRUCTUREELEMENTTYPE, IFCSPATIALELEMENTTYPE, IFCDISCRETEACCESSORYTYPE, IFCBUILDINGELEMENTPARTTYPE, IFCVIBRATIONISOLATORTYPE, IFCVIBRATIONDAMPERTYPE, IFCSIGNTYPE, IFCREINFORCINGBARTYPE, IFCTENDONTYPE, IFCTENDONCONDUITTYPE, IFCTENDONANCHORTYPE, IFCREINFORCINGMESHTYPE, IFCREINFORCINGELEMENTTYPE, IFCMECHANICALFASTENERTYPE, IFCIMPACTPROTECTIONDEVICETYPE, IFCFASTENERTYPE, IFCELEMENTCOMPONENTTYPE, IFCELEMENTASSEMBLYTYPE, IFCCONTROLLERTYPE, IFCALARMTYPE, IFCACTUATORTYPE, IFCUNITARYCONTROLELEMENTTYPE, IFCSENSORTYPE, IFCPROTECTIVEDEVICETRIPPINGUNITTYPE, IFCFLOWINSTRUMENTTYPE, IFCDISTRIBUTIONCONTROLELEMENTTYPE, IFCDISTRIBUTIONCHAMBERELEMENTTYPE, IFCFILTERTYPE, IFCELECTRICFLOWTREATMENTDEVICETYPE, IFCDUCTSILENCERTYPE, IFCINTERCEPTORTYPE, IFCFLOWTREATMENTDEVICETYPE, IFCFIRESUPPRESSIONTERMINALTYPE, IFCELECTRICAPPLIANCETYPE, IFCCOMMUNICATIONSAPPLIANCETYPE, IFCAUDIOVISUALAPPLIANCETYPE, IFCAIRTERMINALTYPE, IFCWASTETERMINALTYPE, IFCSTACKTERMINALTYPE, IFCSPACEHEATERTYPE, IFCSIGNALTYPE, IFCSANITARYTERMINALTYPE, IFCOUTLETTYPE, IFCMOBILETELECOMMUNICATIONSAPPLIANCETYPE, IFCMEDICALDEVICETYPE, IFCLIQUIDTERMINALTYPE, IFCLIGHTFIXTURETYPE, IFCLAMPTYPE, IFCFLOWTERMINALTYPE, IFCELECTRICFLOWSTORAGEDEVICETYPE, IFCTANKTYPE, IFCFLOWSTORAGEDEVICETYPE, IFCDUCTSEGMENTTYPE, IFCCONVEYORSEGMENTTYPE, IFCCABLESEGMENTTYPE, IFCCABLECARRIERSEGMENTTYPE, IFCPIPESEGMENTTYPE, IFCFLOWSEGMENTTYPE, IFCFANTYPE, IFCCOMPRESSORTYPE, IFCPUMPTYPE, IFCFLOWMOVINGDEVICETYPE, IFCDUCTFITTINGTYPE, IFCCABLEFITTINGTYPE, IFCCABLECARRIERFITTINGTYPE, IFCPIPEFITTINGTYPE, IFCJUNCTIONBOXTYPE, IFCFLOWFITTINGTYPE, IFCELECTRICTIMECONTROLTYPE, IFCELECTRICDISTRIBUTIONBOARDTYPE, IFCDISTRIBUTIONBOARDTYPE, IFCDAMPERTYPE, IFCAIRTERMINALBOXTYPE, IFCVALVETYPE, IFCSWITCHINGDEVICETYPE, IFCPROTECTIVEDEVICETYPE, IFCFLOWMETERTYPE, IFCFLOWCONTROLLERTYPE, IFCELECTRICMOTORTYPE, IFCELECTRICGENERATORTYPE, IFCCOOLINGTOWERTYPE, IFCCOOLEDBEAMTYPE, IFCCONDENSERTYPE, IFCCOILTYPE, IFCCHILLERTYPE, IFCBURNERTYPE, IFCBOILERTYPE, IFCAIRTOAIRHEATRECOVERYTYPE, IFCUNITARYEQUIPMENTTYPE, IFCTUBEBUNDLETYPE, IFCTRANSFORMERTYPE, IFCSOLARDEVICETYPE, IFCMOTORCONNECTIONTYPE, IFCHUMIDIFIERTYPE, IFCHEATEXCHANGERTYPE, IFCEVAPORATORTYPE, IFCEVAPORATIVECOOLERTYPE, IFCENGINETYPE, IFCENERGYCONVERSIONDEVICETYPE, IFCDISTRIBUTIONFLOWELEMENTTYPE, IFCDISTRIBUTIONELEMENTTYPE, IFCCIVILELEMENTTYPE, IFCBUILDINGELEMENTPROXYTYPE, IFCBEARINGTYPE, IFCBEAMTYPE, IFCWINDOWTYPE, IFCWALLTYPE, IFCTRACKELEMENTTYPE, IFCSTAIRTYPE, IFCSTAIRFLIGHTTYPE, IFCSLABTYPE, IFCSHADINGDEVICETYPE, IFCROOFTYPE, IFCRAMPTYPE, IFCRAMPFLIGHTTYPE, IFCRAILINGTYPE, IFCRAILTYPE, IFCPLATETYPE, IFCPAVEMENTTYPE, IFCNAVIGATIONELEMENTTYPE, IFCMOORINGDEVICETYPE, IFCMEMBERTYPE, IFCKERBTYPE, IFCFOOTINGTYPE, IFCDOORTYPE, IFCCAISSONFOUNDATIONTYPE, IFCPILETYPE, IFCDEEPFOUNDATIONTYPE, IFCCURTAINWALLTYPE, IFCCOVERINGTYPE, IFCCOURSETYPE, IFCCOLUMNTYPE, IFCCHIMNEYTYPE, IFCBUILTELEMENTTYPE, IFCTRANSPORTELEMENTTYPE, IFCVEHICLETYPE, IFCTRANSPORTATIONDEVICETYPE, IFCGEOGRAPHICELEMENTTYPE, IFCSYSTEMFURNITUREELEMENTTYPE, IFCFURNITURETYPE, IFCFURNISHINGELEMENTTYPE, IFCELEMENTTYPE, IFCTYPEPRODUCT, IFCTASKTYPE, IFCPROCEDURETYPE, IFCEVENTTYPE, IFCTYPEPROCESS, IFCTYPEOBJECT, IFCOBJECTDEFINITION], 1054537805: [IFCRESOURCETIME, IFCLAGTIME, IFCEVENTTIME, IFCWORKTIME, IFCTASKTIMERECURRING, IFCTASKTIME], 3982875396: [IFCTOPOLOGYREPRESENTATION, IFCSHAPEREPRESENTATION], 2273995522: [IFCSLIPPAGECONNECTIONCONDITION, IFCFAILURECONNECTIONCONDITION], 2162789131: [IFCSURFACEREINFORCEMENTAREA, IFCSTRUCTURALLOADSINGLEFORCEWARPING, IFCSTRUCTURALLOADSINGLEFORCE, IFCSTRUCTURALLOADSINGLEDISPLACEMENTDISTORTION, IFCSTRUCTURALLOADSINGLEDISPLACEMENT, IFCSTRUCTURALLOADPLANARFORCE, IFCSTRUCTURALLOADLINEARFORCE, IFCSTRUCTURALLOADTEMPERATURE, IFCSTRUCTURALLOADSTATIC, IFCSTRUCTURALLOADORRESULT, IFCSTRUCTURALLOADCONFIGURATION], 609421318: [IFCSURFACEREINFORCEMENTAREA, IFCSTRUCTURALLOADSINGLEFORCEWARPING, IFCSTRUCTURALLOADSINGLEFORCE, IFCSTRUCTURALLOADSINGLEDISPLACEMENTDISTORTION, IFCSTRUCTURALLOADSINGLEDISPLACEMENT, IFCSTRUCTURALLOADPLANARFORCE, IFCSTRUCTURALLOADLINEARFORCE, IFCSTRUCTURALLOADTEMPERATURE, IFCSTRUCTURALLOADSTATIC], 2525727697: [IFCSTRUCTURALLOADSINGLEFORCEWARPING, IFCSTRUCTURALLOADSINGLEFORCE, IFCSTRUCTURALLOADSINGLEDISPLACEMENTDISTORTION, IFCSTRUCTURALLOADSINGLEDISPLACEMENT, IFCSTRUCTURALLOADPLANARFORCE, IFCSTRUCTURALLOADLINEARFORCE, IFCSTRUCTURALLOADTEMPERATURE], 2830218821: [IFCSTYLEDREPRESENTATION], 846575682: [IFCSURFACESTYLERENDERING], 626085974: [IFCPIXELTEXTURE, IFCIMAGETEXTURE, IFCBLOBTEXTURE], 1549132990: [IFCTASKTIMERECURRING], 280115917: [IFCINDEXEDPOLYGONALTEXTUREMAP, IFCINDEXEDTRIANGLETEXTUREMAP, IFCINDEXEDTEXTUREMAP, IFCTEXTUREMAP, IFCTEXTURECOORDINATEGENERATOR], 222769930: [IFCTEXTURECOORDINATEINDICESWITHVOIDS], 3101149627: [IFCREGULARTIMESERIES, IFCIRREGULARTIMESERIES], 1377556343: [IFCPATH, IFCEDGELOOP, IFCVERTEXLOOP, IFCPOLYLOOP, IFCLOOP, IFCFACEOUTERBOUND, IFCFACEBOUND, IFCADVANCEDFACE, IFCFACESURFACE, IFCFACE, IFCSUBEDGE, IFCORIENTEDEDGE, IFCEDGECURVE, IFCEDGE, IFCCLOSEDSHELL, IFCOPENSHELL, IFCCONNECTEDFACESET, IFCVERTEXPOINT, IFCVERTEX], 2799835756: [IFCVERTEXPOINT], 3798115385: [IFCARBITRARYPROFILEDEFWITHVOIDS], 1310608509: [IFCCENTERLINEPROFILEDEF], 3264961684: [IFCCOLOURRGB], 370225590: [IFCCLOSEDSHELL, IFCOPENSHELL], 2889183280: [IFCCONVERSIONBASEDUNITWITHOFFSET], 3632507154: [IFCMIRROREDPROFILEDEF], 3900360178: [IFCSUBEDGE, IFCORIENTEDEDGE, IFCEDGECURVE], 297599258: [IFCPROFILEPROPERTIES, IFCMATERIALPROPERTIES], 2556980723: [IFCADVANCEDFACE, IFCFACESURFACE], 1809719519: [IFCFACEOUTERBOUND], 3008276851: [IFCADVANCEDFACE], 3448662350: [IFCGEOMETRICREPRESENTATIONSUBCONTEXT], 2453401579: [IFCFILLAREASTYLETILES, IFCFILLAREASTYLEHATCHING, IFCFACEBASEDSURFACEMODEL, IFCDIRECTION, IFCCIRCLE, IFCELLIPSE, IFCCONIC, IFCRATIONALBSPLINECURVEWITHKNOTS, IFCBSPLINECURVEWITHKNOTS, IFCBSPLINECURVE, IFCTRIMMEDCURVE, IFCPOLYLINE, IFCINDEXEDPOLYCURVE, IFCSEGMENTEDREFERENCECURVE, IFCGRADIENTCURVE, IFCOUTERBOUNDARYCURVE, IFCBOUNDARYCURVE, IFCCOMPOSITECURVEONSURFACE, IFCCOMPOSITECURVE, IFCBOUNDEDCURVE, IFCSEAMCURVE, IFCINTERSECTIONCURVE, IFCSURFACECURVE, IFCSINESPIRAL, IFCSEVENTHORDERPOLYNOMIALSPIRAL, IFCSECONDORDERPOLYNOMIALSPIRAL, IFCCOSINESPIRAL, IFCCLOTHOID, IFCTHIRDORDERPOLYNOMIALSPIRAL, IFCSPIRAL, IFCPOLYNOMIALCURVE, IFCPCURVE, IFCOFFSETCURVEBYDISTANCES, IFCOFFSETCURVE3D, IFCOFFSETCURVE2D, IFCOFFSETCURVE, IFCLINE, IFCCURVE, IFCBLOCK, IFCSPHERE, IFCRIGHTCIRCULARCYLINDER, IFCRIGHTCIRCULARCONE, IFCRECTANGULARPYRAMID, IFCCSGPRIMITIVE3D, IFCCARTESIANTRANSFORMATIONOPERATOR3DNONUNIFORM, IFCCARTESIANTRANSFORMATIONOPERATOR3D, IFCCARTESIANTRANSFORMATIONOPERATOR2DNONUNIFORM, IFCCARTESIANTRANSFORMATIONOPERATOR2D, IFCCARTESIANTRANSFORMATIONOPERATOR, IFCCARTESIANPOINTLIST3D, IFCCARTESIANPOINTLIST2D, IFCCARTESIANPOINTLIST, IFCBOUNDINGBOX, IFCBOOLEANCLIPPINGRESULT, IFCBOOLEANRESULT, IFCANNOTATIONFILLAREA, IFCVECTOR, IFCTEXTLITERALWITHEXTENT, IFCTEXTLITERAL, IFCPOLYGONALFACESET, IFCTRIANGULATEDIRREGULARNETWORK, IFCTRIANGULATEDFACESET, IFCTESSELLATEDFACESET, IFCINDEXEDPOLYGONALFACEWITHVOIDS, IFCINDEXEDPOLYGONALFACE, IFCTESSELLATEDITEM, IFCSECTIONEDSURFACE, IFCCYLINDRICALSURFACE, IFCTOROIDALSURFACE, IFCSPHERICALSURFACE, IFCPLANE, IFCELEMENTARYSURFACE, IFCRATIONALBSPLINESURFACEWITHKNOTS, IFCBSPLINESURFACEWITHKNOTS, IFCBSPLINESURFACE, IFCRECTANGULARTRIMMEDSURFACE, IFCCURVEBOUNDEDSURFACE, IFCCURVEBOUNDEDPLANE, IFCBOUNDEDSURFACE, IFCSURFACEOFREVOLUTION, IFCSURFACEOFLINEAREXTRUSION, IFCSWEPTSURFACE, IFCSURFACE, IFCSECTIONEDSOLIDHORIZONTAL, IFCSECTIONEDSOLID, IFCFACETEDBREPWITHVOIDS, IFCFACETEDBREP, IFCADVANCEDBREPWITHVOIDS, IFCADVANCEDBREP, IFCMANIFOLDSOLIDBREP, IFCCSGSOLID, IFCSWEPTDISKSOLIDPOLYGONAL, IFCSWEPTDISKSOLID, IFCREVOLVEDAREASOLIDTAPERED, IFCREVOLVEDAREASOLID, IFCEXTRUDEDAREASOLIDTAPERED, IFCEXTRUDEDAREASOLID, IFCSURFACECURVESWEPTAREASOLID, IFCDIRECTRIXDERIVEDREFERENCESWEPTAREASOLID, IFCFIXEDREFERENCESWEPTAREASOLID, IFCDIRECTRIXCURVESWEPTAREASOLID, IFCSWEPTAREASOLID, IFCSOLIDMODEL, IFCSHELLBASEDSURFACEMODEL, IFCCURVESEGMENT, IFCREPARAMETRISEDCOMPOSITECURVESEGMENT, IFCCOMPOSITECURVESEGMENT, IFCSEGMENT, IFCSECTIONEDSPINE, IFCCARTESIANPOINT, IFCPOINTONSURFACE, IFCPOINTONCURVE, IFCPOINTBYDISTANCEEXPRESSION, IFCPOINT, IFCPLANARBOX, IFCPLANAREXTENT, IFCAXIS2PLACEMENTLINEAR, IFCAXIS2PLACEMENT3D, IFCAXIS2PLACEMENT2D, IFCAXIS1PLACEMENT, IFCPLACEMENT, IFCLIGHTSOURCESPOT, IFCLIGHTSOURCEPOSITIONAL, IFCLIGHTSOURCEGONIOMETRIC, IFCLIGHTSOURCEDIRECTIONAL, IFCLIGHTSOURCEAMBIENT, IFCLIGHTSOURCE, IFCBOXEDHALFSPACE, IFCPOLYGONALBOUNDEDHALFSPACE, IFCHALFSPACESOLID, IFCGEOMETRICCURVESET, IFCGEOMETRICSET], 3590301190: [IFCGEOMETRICCURVESET], 812098782: [IFCBOXEDHALFSPACE, IFCPOLYGONALBOUNDEDHALFSPACE], 1437953363: [IFCINDEXEDPOLYGONALTEXTUREMAP, IFCINDEXEDTRIANGLETEXTUREMAP], 1402838566: [IFCLIGHTSOURCESPOT, IFCLIGHTSOURCEPOSITIONAL, IFCLIGHTSOURCEGONIOMETRIC, IFCLIGHTSOURCEDIRECTIONAL, IFCLIGHTSOURCEAMBIENT], 1520743889: [IFCLIGHTSOURCESPOT], 1008929658: [IFCEDGELOOP, IFCVERTEXLOOP, IFCPOLYLOOP], 3079605661: [IFCMATERIALPROFILESETUSAGETAPERING], 219451334: [IFCASSET, IFCSTRUCTURALANALYSISMODEL, IFCDISTRIBUTIONCIRCUIT, IFCDISTRIBUTIONSYSTEM, IFCBUILTSYSTEM, IFCBUILDINGSYSTEM, IFCZONE, IFCSYSTEM, IFCSTRUCTURALRESULTGROUP, IFCSTRUCTURALLOADCASE, IFCSTRUCTURALLOADGROUP, IFCINVENTORY, IFCGROUP, IFCACTIONREQUEST, IFCWORKSCHEDULE, IFCWORKPLAN, IFCWORKCONTROL, IFCWORKCALENDAR, IFCPROJECTORDER, IFCPERMIT, IFCPERFORMANCEHISTORY, IFCCOSTSCHEDULE, IFCCOSTITEM, IFCCONTROL, IFCOCCUPANT, IFCACTOR, IFCCONSTRUCTIONPRODUCTRESOURCE, IFCCONSTRUCTIONMATERIALRESOURCE, IFCCONSTRUCTIONEQUIPMENTRESOURCE, IFCSUBCONTRACTRESOURCE, IFCLABORRESOURCE, IFCCREWRESOURCE, IFCCONSTRUCTIONRESOURCE, IFCRESOURCE, IFCALIGNMENT, IFCLINEARPOSITIONINGELEMENT, IFCGRID, IFCREFERENT, IFCPOSITIONINGELEMENT, IFCDISTRIBUTIONPORT, IFCPORT, IFCALIGNMENTVERTICAL, IFCALIGNMENTSEGMENT, IFCALIGNMENTHORIZONTAL, IFCALIGNMENTCANT, IFCLINEARELEMENT, IFCCONTROLLER, IFCALARM, IFCACTUATOR, IFCUNITARYCONTROLELEMENT, IFCSENSOR, IFCPROTECTIVEDEVICETRIPPINGUNIT, IFCFLOWINSTRUMENT, IFCDISTRIBUTIONCONTROLELEMENT, IFCDISTRIBUTIONCHAMBERELEMENT, IFCFILTER, IFCELECTRICFLOWTREATMENTDEVICE, IFCDUCTSILENCER, IFCINTERCEPTOR, IFCFLOWTREATMENTDEVICE, IFCFIRESUPPRESSIONTERMINAL, IFCELECTRICAPPLIANCE, IFCCOMMUNICATIONSAPPLIANCE, IFCAUDIOVISUALAPPLIANCE, IFCAIRTERMINAL, IFCWASTETERMINAL, IFCSTACKTERMINAL, IFCSPACEHEATER, IFCSIGNAL, IFCSANITARYTERMINAL, IFCOUTLET, IFCMOBILETELECOMMUNICATIONSAPPLIANCE, IFCMEDICALDEVICE, IFCLIQUIDTERMINAL, IFCLIGHTFIXTURE, IFCLAMP, IFCFLOWTERMINAL, IFCELECTRICFLOWSTORAGEDEVICE, IFCTANK, IFCFLOWSTORAGEDEVICE, IFCDUCTSEGMENT, IFCCONVEYORSEGMENT, IFCCABLESEGMENT, IFCCABLECARRIERSEGMENT, IFCPIPESEGMENT, IFCFLOWSEGMENT, IFCFAN, IFCCOMPRESSOR, IFCPUMP, IFCFLOWMOVINGDEVICE, IFCDUCTFITTING, IFCCABLEFITTING, IFCCABLECARRIERFITTING, IFCPIPEFITTING, IFCJUNCTIONBOX, IFCFLOWFITTING, IFCELECTRICTIMECONTROL, IFCELECTRICDISTRIBUTIONBOARD, IFCDISTRIBUTIONBOARD, IFCDAMPER, IFCAIRTERMINALBOX, IFCVALVE, IFCSWITCHINGDEVICE, IFCPROTECTIVEDEVICE, IFCFLOWMETER, IFCFLOWCONTROLLER, IFCELECTRICMOTOR, IFCELECTRICGENERATOR, IFCCOOLINGTOWER, IFCCOOLEDBEAM, IFCCONDENSER, IFCCOIL, IFCCHILLER, IFCBURNER, IFCBOILER, IFCAIRTOAIRHEATRECOVERY, IFCUNITARYEQUIPMENT, IFCTUBEBUNDLE, IFCTRANSFORMER, IFCSOLARDEVICE, IFCMOTORCONNECTION, IFCHUMIDIFIER, IFCHEATEXCHANGER, IFCEVAPORATOR, IFCEVAPORATIVECOOLER, IFCENGINE, IFCENERGYCONVERSIONDEVICE, IFCDISTRIBUTIONFLOWELEMENT, IFCDISTRIBUTIONELEMENT, IFCCIVILELEMENT, IFCBUILDINGELEMENTPROXY, IFCBEARING, IFCBEAM, IFCWINDOW, IFCWALLSTANDARDCASE, IFCWALL, IFCTRACKELEMENT, IFCSTAIRFLIGHT, IFCSTAIR, IFCSLAB, IFCSHADINGDEVICE, IFCROOF, IFCRAMPFLIGHT, IFCRAMP, IFCRAILING, IFCRAIL, IFCPLATE, IFCPAVEMENT, IFCNAVIGATIONELEMENT, IFCMOORINGDEVICE, IFCMEMBER, IFCKERB, IFCFOOTING, IFCREINFORCEDSOIL, IFCEARTHWORKSFILL, IFCEARTHWORKSELEMENT, IFCDOOR, IFCCAISSONFOUNDATION, IFCPILE, IFCDEEPFOUNDATION, IFCCURTAINWALL, IFCCOVERING, IFCCOURSE, IFCCOLUMN, IFCCHIMNEY, IFCBUILTELEMENT, IFCVIRTUALELEMENT, IFCTRANSPORTELEMENT, IFCVEHICLE, IFCTRANSPORTATIONDEVICE, IFCGEOSLICE, IFCGEOMODEL, IFCBOREHOLE, IFCGEOTECHNICALASSEMBLY, IFCGEOTECHNICALSTRATUM, IFCGEOTECHNICALELEMENT, IFCGEOGRAPHICELEMENT, IFCSYSTEMFURNITUREELEMENT, IFCFURNITURE, IFCFURNISHINGELEMENT, IFCSURFACEFEATURE, IFCEARTHWORKSCUT, IFCVOIDINGFEATURE, IFCOPENINGELEMENT, IFCFEATUREELEMENTSUBTRACTION, IFCPROJECTIONELEMENT, IFCFEATUREELEMENTADDITION, IFCFEATUREELEMENT, IFCDISCRETEACCESSORY, IFCBUILDINGELEMENTPART, IFCVIBRATIONISOLATOR, IFCVIBRATIONDAMPER, IFCSIGN, IFCREINFORCINGBAR, IFCTENDONCONDUIT, IFCTENDONANCHOR, IFCTENDON, IFCREINFORCINGMESH, IFCREINFORCINGELEMENT, IFCMECHANICALFASTENER, IFCIMPACTPROTECTIONDEVICE, IFCFASTENER, IFCELEMENTCOMPONENT, IFCELEMENTASSEMBLY, IFCELEMENT, IFCANNOTATION, IFCSTRUCTURALSURFACECONNECTION, IFCSTRUCTURALPOINTCONNECTION, IFCSTRUCTURALCURVECONNECTION, IFCSTRUCTURALCONNECTION, IFCSTRUCTURALCURVEMEMBERVARYING, IFCSTRUCTURALCURVEMEMBER, IFCSTRUCTURALSURFACEMEMBERVARYING, IFCSTRUCTURALSURFACEMEMBER, IFCSTRUCTURALMEMBER, IFCSTRUCTURALITEM, IFCSTRUCTURALPLANARACTION, IFCSTRUCTURALSURFACEACTION, IFCSTRUCTURALPOINTACTION, IFCSTRUCTURALLINEARACTION, IFCSTRUCTURALCURVEACTION, IFCSTRUCTURALACTION, IFCSTRUCTURALPOINTREACTION, IFCSTRUCTURALCURVEREACTION, IFCSTRUCTURALSURFACEREACTION, IFCSTRUCTURALREACTION, IFCSTRUCTURALACTIVITY, IFCEXTERNALSPATIALELEMENT, IFCEXTERNALSPATIALSTRUCTUREELEMENT, IFCSPATIALZONE, IFCSPACE, IFCSITE, IFCBRIDGEPART, IFCROADPART, IFCRAILWAYPART, IFCMARINEPART, IFCFACILITYPARTCOMMON, IFCFACILITYPART, IFCBUILDING, IFCBRIDGE, IFCROAD, IFCRAILWAY, IFCMARINEFACILITY, IFCFACILITY, IFCBUILDINGSTOREY, IFCSPATIALSTRUCTUREELEMENT, IFCSPATIALELEMENT, IFCPRODUCT, IFCPROCEDURE, IFCEVENT, IFCTASK, IFCPROCESS, IFCOBJECT, IFCPROJECTLIBRARY, IFCPROJECT, IFCCONTEXT, IFCCONSTRUCTIONPRODUCTRESOURCETYPE, IFCCONSTRUCTIONMATERIALRESOURCETYPE, IFCCONSTRUCTIONEQUIPMENTRESOURCETYPE, IFCSUBCONTRACTRESOURCETYPE, IFCLABORRESOURCETYPE, IFCCREWRESOURCETYPE, IFCCONSTRUCTIONRESOURCETYPE, IFCTYPERESOURCE, IFCSPATIALZONETYPE, IFCSPACETYPE, IFCSPATIALSTRUCTUREELEMENTTYPE, IFCSPATIALELEMENTTYPE, IFCDISCRETEACCESSORYTYPE, IFCBUILDINGELEMENTPARTTYPE, IFCVIBRATIONISOLATORTYPE, IFCVIBRATIONDAMPERTYPE, IFCSIGNTYPE, IFCREINFORCINGBARTYPE, IFCTENDONTYPE, IFCTENDONCONDUITTYPE, IFCTENDONANCHORTYPE, IFCREINFORCINGMESHTYPE, IFCREINFORCINGELEMENTTYPE, IFCMECHANICALFASTENERTYPE, IFCIMPACTPROTECTIONDEVICETYPE, IFCFASTENERTYPE, IFCELEMENTCOMPONENTTYPE, IFCELEMENTASSEMBLYTYPE, IFCCONTROLLERTYPE, IFCALARMTYPE, IFCACTUATORTYPE, IFCUNITARYCONTROLELEMENTTYPE, IFCSENSORTYPE, IFCPROTECTIVEDEVICETRIPPINGUNITTYPE, IFCFLOWINSTRUMENTTYPE, IFCDISTRIBUTIONCONTROLELEMENTTYPE, IFCDISTRIBUTIONCHAMBERELEMENTTYPE, IFCFILTERTYPE, IFCELECTRICFLOWTREATMENTDEVICETYPE, IFCDUCTSILENCERTYPE, IFCINTERCEPTORTYPE, IFCFLOWTREATMENTDEVICETYPE, IFCFIRESUPPRESSIONTERMINALTYPE, IFCELECTRICAPPLIANCETYPE, IFCCOMMUNICATIONSAPPLIANCETYPE, IFCAUDIOVISUALAPPLIANCETYPE, IFCAIRTERMINALTYPE, IFCWASTETERMINALTYPE, IFCSTACKTERMINALTYPE, IFCSPACEHEATERTYPE, IFCSIGNALTYPE, IFCSANITARYTERMINALTYPE, IFCOUTLETTYPE, IFCMOBILETELECOMMUNICATIONSAPPLIANCETYPE, IFCMEDICALDEVICETYPE, IFCLIQUIDTERMINALTYPE, IFCLIGHTFIXTURETYPE, IFCLAMPTYPE, IFCFLOWTERMINALTYPE, IFCELECTRICFLOWSTORAGEDEVICETYPE, IFCTANKTYPE, IFCFLOWSTORAGEDEVICETYPE, IFCDUCTSEGMENTTYPE, IFCCONVEYORSEGMENTTYPE, IFCCABLESEGMENTTYPE, IFCCABLECARRIERSEGMENTTYPE, IFCPIPESEGMENTTYPE, IFCFLOWSEGMENTTYPE, IFCFANTYPE, IFCCOMPRESSORTYPE, IFCPUMPTYPE, IFCFLOWMOVINGDEVICETYPE, IFCDUCTFITTINGTYPE, IFCCABLEFITTINGTYPE, IFCCABLECARRIERFITTINGTYPE, IFCPIPEFITTINGTYPE, IFCJUNCTIONBOXTYPE, IFCFLOWFITTINGTYPE, IFCELECTRICTIMECONTROLTYPE, IFCELECTRICDISTRIBUTIONBOARDTYPE, IFCDISTRIBUTIONBOARDTYPE, IFCDAMPERTYPE, IFCAIRTERMINALBOXTYPE, IFCVALVETYPE, IFCSWITCHINGDEVICETYPE, IFCPROTECTIVEDEVICETYPE, IFCFLOWMETERTYPE, IFCFLOWCONTROLLERTYPE, IFCELECTRICMOTORTYPE, IFCELECTRICGENERATORTYPE, IFCCOOLINGTOWERTYPE, IFCCOOLEDBEAMTYPE, IFCCONDENSERTYPE, IFCCOILTYPE, IFCCHILLERTYPE, IFCBURNERTYPE, IFCBOILERTYPE, IFCAIRTOAIRHEATRECOVERYTYPE, IFCUNITARYEQUIPMENTTYPE, IFCTUBEBUNDLETYPE, IFCTRANSFORMERTYPE, IFCSOLARDEVICETYPE, IFCMOTORCONNECTIONTYPE, IFCHUMIDIFIERTYPE, IFCHEATEXCHANGERTYPE, IFCEVAPORATORTYPE, IFCEVAPORATIVECOOLERTYPE, IFCENGINETYPE, IFCENERGYCONVERSIONDEVICETYPE, IFCDISTRIBUTIONFLOWELEMENTTYPE, IFCDISTRIBUTIONELEMENTTYPE, IFCCIVILELEMENTTYPE, IFCBUILDINGELEMENTPROXYTYPE, IFCBEARINGTYPE, IFCBEAMTYPE, IFCWINDOWTYPE, IFCWALLTYPE, IFCTRACKELEMENTTYPE, IFCSTAIRTYPE, IFCSTAIRFLIGHTTYPE, IFCSLABTYPE, IFCSHADINGDEVICETYPE, IFCROOFTYPE, IFCRAMPTYPE, IFCRAMPFLIGHTTYPE, IFCRAILINGTYPE, IFCRAILTYPE, IFCPLATETYPE, IFCPAVEMENTTYPE, IFCNAVIGATIONELEMENTTYPE, IFCMOORINGDEVICETYPE, IFCMEMBERTYPE, IFCKERBTYPE, IFCFOOTINGTYPE, IFCDOORTYPE, IFCCAISSONFOUNDATIONTYPE, IFCPILETYPE, IFCDEEPFOUNDATIONTYPE, IFCCURTAINWALLTYPE, IFCCOVERINGTYPE, IFCCOURSETYPE, IFCCOLUMNTYPE, IFCCHIMNEYTYPE, IFCBUILTELEMENTTYPE, IFCTRANSPORTELEMENTTYPE, IFCVEHICLETYPE, IFCTRANSPORTATIONDEVICETYPE, IFCGEOGRAPHICELEMENTTYPE, IFCSYSTEMFURNITUREELEMENTTYPE, IFCFURNITURETYPE, IFCFURNISHINGELEMENTTYPE, IFCELEMENTTYPE, IFCTYPEPRODUCT, IFCTASKTYPE, IFCPROCEDURETYPE, IFCEVENTTYPE, IFCTYPEPROCESS, IFCTYPEOBJECT], 2529465313: [IFCLSHAPEPROFILEDEF, IFCISHAPEPROFILEDEF, IFCELLIPSEPROFILEDEF, IFCCIRCLEHOLLOWPROFILEDEF, IFCCIRCLEPROFILEDEF, IFCCSHAPEPROFILEDEF, IFCASYMMETRICISHAPEPROFILEDEF, IFCZSHAPEPROFILEDEF, IFCUSHAPEPROFILEDEF, IFCTRAPEZIUMPROFILEDEF, IFCTSHAPEPROFILEDEF, IFCRECTANGLEHOLLOWPROFILEDEF, IFCROUNDEDRECTANGLEPROFILEDEF, IFCRECTANGLEPROFILEDEF], 2004835150: [IFCAXIS2PLACEMENTLINEAR, IFCAXIS2PLACEMENT3D, IFCAXIS2PLACEMENT2D, IFCAXIS1PLACEMENT], 1663979128: [IFCPLANARBOX], 2067069095: [IFCCARTESIANPOINT, IFCPOINTONSURFACE, IFCPOINTONCURVE, IFCPOINTBYDISTANCEEXPRESSION], 3727388367: [IFCDRAUGHTINGPREDEFINEDCURVEFONT, IFCPREDEFINEDCURVEFONT, IFCDRAUGHTINGPREDEFINEDCOLOUR, IFCPREDEFINEDCOLOUR, IFCTEXTSTYLEFONTMODEL, IFCPREDEFINEDTEXTFONT], 3778827333: [IFCSECTIONREINFORCEMENTPROPERTIES, IFCSECTIONPROPERTIES, IFCREINFORCEMENTBARPROPERTIES], 1775413392: [IFCTEXTSTYLEFONTMODEL], 2598011224: [IFCCOMPLEXPROPERTY, IFCPROPERTYTABLEVALUE, IFCPROPERTYSINGLEVALUE, IFCPROPERTYREFERENCEVALUE, IFCPROPERTYLISTVALUE, IFCPROPERTYENUMERATEDVALUE, IFCPROPERTYBOUNDEDVALUE, IFCSIMPLEPROPERTY], 1680319473: [IFCCOMPLEXPROPERTYTEMPLATE, IFCSIMPLEPROPERTYTEMPLATE, IFCPROPERTYTEMPLATE, IFCPROPERTYSETTEMPLATE, IFCPROPERTYTEMPLATEDEFINITION, IFCPROPERTYSET, IFCPERMEABLECOVERINGPROPERTIES, IFCDOORPANELPROPERTIES, IFCDOORLININGPROPERTIES, IFCWINDOWPANELPROPERTIES, IFCWINDOWLININGPROPERTIES, IFCREINFORCEMENTDEFINITIONPROPERTIES, IFCPREDEFINEDPROPERTYSET, IFCELEMENTQUANTITY, IFCQUANTITYSET, IFCPROPERTYSETDEFINITION], 3357820518: [IFCPROPERTYSET, IFCPERMEABLECOVERINGPROPERTIES, IFCDOORPANELPROPERTIES, IFCDOORLININGPROPERTIES, IFCWINDOWPANELPROPERTIES, IFCWINDOWLININGPROPERTIES, IFCREINFORCEMENTDEFINITIONPROPERTIES, IFCPREDEFINEDPROPERTYSET, IFCELEMENTQUANTITY, IFCQUANTITYSET], 1482703590: [IFCCOMPLEXPROPERTYTEMPLATE, IFCSIMPLEPROPERTYTEMPLATE, IFCPROPERTYTEMPLATE, IFCPROPERTYSETTEMPLATE], 2090586900: [IFCELEMENTQUANTITY], 3615266464: [IFCRECTANGLEHOLLOWPROFILEDEF, IFCROUNDEDRECTANGLEPROFILEDEF], 478536968: [IFCRELDEFINESBYTYPE, IFCRELDEFINESBYTEMPLATE, IFCRELDEFINESBYPROPERTIES, IFCRELDEFINESBYOBJECT, IFCRELDEFINES, IFCRELAGGREGATES, IFCRELADHERESTOELEMENT, IFCRELVOIDSELEMENT, IFCRELPROJECTSELEMENT, IFCRELNESTS, IFCRELDECOMPOSES, IFCRELDECLARES, IFCRELSPACEBOUNDARY2NDLEVEL, IFCRELSPACEBOUNDARY1STLEVEL, IFCRELSPACEBOUNDARY, IFCRELSERVICESBUILDINGS, IFCRELSEQUENCE, IFCRELREFERENCEDINSPATIALSTRUCTURE, IFCRELPOSITIONS, IFCRELINTERFERESELEMENTS, IFCRELFLOWCONTROLELEMENTS, IFCRELFILLSELEMENT, IFCRELCOVERSSPACES, IFCRELCOVERSBLDGELEMENTS, IFCRELCONTAINEDINSPATIALSTRUCTURE, IFCRELCONNECTSWITHECCENTRICITY, IFCRELCONNECTSSTRUCTURALMEMBER, IFCRELCONNECTSSTRUCTURALACTIVITY, IFCRELCONNECTSPORTS, IFCRELCONNECTSPORTTOELEMENT, IFCRELCONNECTSWITHREALIZINGELEMENTS, IFCRELCONNECTSPATHELEMENTS, IFCRELCONNECTSELEMENTS, IFCRELCONNECTS, IFCRELASSOCIATESPROFILEDEF, IFCRELASSOCIATESMATERIAL, IFCRELASSOCIATESLIBRARY, IFCRELASSOCIATESDOCUMENT, IFCRELASSOCIATESCONSTRAINT, IFCRELASSOCIATESCLASSIFICATION, IFCRELASSOCIATESAPPROVAL, IFCRELASSOCIATES, IFCRELASSIGNSTORESOURCE, IFCRELASSIGNSTOPRODUCT, IFCRELASSIGNSTOPROCESS, IFCRELASSIGNSTOGROUPBYFACTOR, IFCRELASSIGNSTOGROUP, IFCRELASSIGNSTOCONTROL, IFCRELASSIGNSTOACTOR, IFCRELASSIGNS], 823603102: [IFCCURVESEGMENT, IFCREPARAMETRISEDCOMPOSITECURVESEGMENT, IFCCOMPOSITECURVESEGMENT], 3692461612: [IFCPROPERTYTABLEVALUE, IFCPROPERTYSINGLEVALUE, IFCPROPERTYREFERENCEVALUE, IFCPROPERTYLISTVALUE, IFCPROPERTYENUMERATEDVALUE, IFCPROPERTYBOUNDEDVALUE], 723233188: [IFCSECTIONEDSOLIDHORIZONTAL, IFCSECTIONEDSOLID, IFCFACETEDBREPWITHVOIDS, IFCFACETEDBREP, IFCADVANCEDBREPWITHVOIDS, IFCADVANCEDBREP, IFCMANIFOLDSOLIDBREP, IFCCSGSOLID, IFCSWEPTDISKSOLIDPOLYGONAL, IFCSWEPTDISKSOLID, IFCREVOLVEDAREASOLIDTAPERED, IFCREVOLVEDAREASOLID, IFCEXTRUDEDAREASOLIDTAPERED, IFCEXTRUDEDAREASOLID, IFCSURFACECURVESWEPTAREASOLID, IFCDIRECTRIXDERIVEDREFERENCESWEPTAREASOLID, IFCFIXEDREFERENCESWEPTAREASOLID, IFCDIRECTRIXCURVESWEPTAREASOLID, IFCSWEPTAREASOLID], 2473145415: [IFCSTRUCTURALLOADSINGLEDISPLACEMENTDISTORTION], 1597423693: [IFCSTRUCTURALLOADSINGLEFORCEWARPING], 2513912981: [IFCSECTIONEDSURFACE, IFCCYLINDRICALSURFACE, IFCTOROIDALSURFACE, IFCSPHERICALSURFACE, IFCPLANE, IFCELEMENTARYSURFACE, IFCRATIONALBSPLINESURFACEWITHKNOTS, IFCBSPLINESURFACEWITHKNOTS, IFCBSPLINESURFACE, IFCRECTANGULARTRIMMEDSURFACE, IFCCURVEBOUNDEDSURFACE, IFCCURVEBOUNDEDPLANE, IFCBOUNDEDSURFACE, IFCSURFACEOFREVOLUTION, IFCSURFACEOFLINEAREXTRUSION, IFCSWEPTSURFACE], 2247615214: [IFCREVOLVEDAREASOLIDTAPERED, IFCREVOLVEDAREASOLID, IFCEXTRUDEDAREASOLIDTAPERED, IFCEXTRUDEDAREASOLID, IFCSURFACECURVESWEPTAREASOLID, IFCDIRECTRIXDERIVEDREFERENCESWEPTAREASOLID, IFCFIXEDREFERENCESWEPTAREASOLID, IFCDIRECTRIXCURVESWEPTAREASOLID], 1260650574: [IFCSWEPTDISKSOLIDPOLYGONAL], 230924584: [IFCSURFACEOFREVOLUTION, IFCSURFACEOFLINEAREXTRUSION], 901063453: [IFCPOLYGONALFACESET, IFCTRIANGULATEDIRREGULARNETWORK, IFCTRIANGULATEDFACESET, IFCTESSELLATEDFACESET, IFCINDEXEDPOLYGONALFACEWITHVOIDS, IFCINDEXEDPOLYGONALFACE], 4282788508: [IFCTEXTLITERALWITHEXTENT], 1628702193: [IFCCONSTRUCTIONPRODUCTRESOURCETYPE, IFCCONSTRUCTIONMATERIALRESOURCETYPE, IFCCONSTRUCTIONEQUIPMENTRESOURCETYPE, IFCSUBCONTRACTRESOURCETYPE, IFCLABORRESOURCETYPE, IFCCREWRESOURCETYPE, IFCCONSTRUCTIONRESOURCETYPE, IFCTYPERESOURCE, IFCSPATIALZONETYPE, IFCSPACETYPE, IFCSPATIALSTRUCTUREELEMENTTYPE, IFCSPATIALELEMENTTYPE, IFCDISCRETEACCESSORYTYPE, IFCBUILDINGELEMENTPARTTYPE, IFCVIBRATIONISOLATORTYPE, IFCVIBRATIONDAMPERTYPE, IFCSIGNTYPE, IFCREINFORCINGBARTYPE, IFCTENDONTYPE, IFCTENDONCONDUITTYPE, IFCTENDONANCHORTYPE, IFCREINFORCINGMESHTYPE, IFCREINFORCINGELEMENTTYPE, IFCMECHANICALFASTENERTYPE, IFCIMPACTPROTECTIONDEVICETYPE, IFCFASTENERTYPE, IFCELEMENTCOMPONENTTYPE, IFCELEMENTASSEMBLYTYPE, IFCCONTROLLERTYPE, IFCALARMTYPE, IFCACTUATORTYPE, IFCUNITARYCONTROLELEMENTTYPE, IFCSENSORTYPE, IFCPROTECTIVEDEVICETRIPPINGUNITTYPE, IFCFLOWINSTRUMENTTYPE, IFCDISTRIBUTIONCONTROLELEMENTTYPE, IFCDISTRIBUTIONCHAMBERELEMENTTYPE, IFCFILTERTYPE, IFCELECTRICFLOWTREATMENTDEVICETYPE, IFCDUCTSILENCERTYPE, IFCINTERCEPTORTYPE, IFCFLOWTREATMENTDEVICETYPE, IFCFIRESUPPRESSIONTERMINALTYPE, IFCELECTRICAPPLIANCETYPE, IFCCOMMUNICATIONSAPPLIANCETYPE, IFCAUDIOVISUALAPPLIANCETYPE, IFCAIRTERMINALTYPE, IFCWASTETERMINALTYPE, IFCSTACKTERMINALTYPE, IFCSPACEHEATERTYPE, IFCSIGNALTYPE, IFCSANITARYTERMINALTYPE, IFCOUTLETTYPE, IFCMOBILETELECOMMUNICATIONSAPPLIANCETYPE, IFCMEDICALDEVICETYPE, IFCLIQUIDTERMINALTYPE, IFCLIGHTFIXTURETYPE, IFCLAMPTYPE, IFCFLOWTERMINALTYPE, IFCELECTRICFLOWSTORAGEDEVICETYPE, IFCTANKTYPE, IFCFLOWSTORAGEDEVICETYPE, IFCDUCTSEGMENTTYPE, IFCCONVEYORSEGMENTTYPE, IFCCABLESEGMENTTYPE, IFCCABLECARRIERSEGMENTTYPE, IFCPIPESEGMENTTYPE, IFCFLOWSEGMENTTYPE, IFCFANTYPE, IFCCOMPRESSORTYPE, IFCPUMPTYPE, IFCFLOWMOVINGDEVICETYPE, IFCDUCTFITTINGTYPE, IFCCABLEFITTINGTYPE, IFCCABLECARRIERFITTINGTYPE, IFCPIPEFITTINGTYPE, IFCJUNCTIONBOXTYPE, IFCFLOWFITTINGTYPE, IFCELECTRICTIMECONTROLTYPE, IFCELECTRICDISTRIBUTIONBOARDTYPE, IFCDISTRIBUTIONBOARDTYPE, IFCDAMPERTYPE, IFCAIRTERMINALBOXTYPE, IFCVALVETYPE, IFCSWITCHINGDEVICETYPE, IFCPROTECTIVEDEVICETYPE, IFCFLOWMETERTYPE, IFCFLOWCONTROLLERTYPE, IFCELECTRICMOTORTYPE, IFCELECTRICGENERATORTYPE, IFCCOOLINGTOWERTYPE, IFCCOOLEDBEAMTYPE, IFCCONDENSERTYPE, IFCCOILTYPE, IFCCHILLERTYPE, IFCBURNERTYPE, IFCBOILERTYPE, IFCAIRTOAIRHEATRECOVERYTYPE, IFCUNITARYEQUIPMENTTYPE, IFCTUBEBUNDLETYPE, IFCTRANSFORMERTYPE, IFCSOLARDEVICETYPE, IFCMOTORCONNECTIONTYPE, IFCHUMIDIFIERTYPE, IFCHEATEXCHANGERTYPE, IFCEVAPORATORTYPE, IFCEVAPORATIVECOOLERTYPE, IFCENGINETYPE, IFCENERGYCONVERSIONDEVICETYPE, IFCDISTRIBUTIONFLOWELEMENTTYPE, IFCDISTRIBUTIONELEMENTTYPE, IFCCIVILELEMENTTYPE, IFCBUILDINGELEMENTPROXYTYPE, IFCBEARINGTYPE, IFCBEAMTYPE, IFCWINDOWTYPE, IFCWALLTYPE, IFCTRACKELEMENTTYPE, IFCSTAIRTYPE, IFCSTAIRFLIGHTTYPE, IFCSLABTYPE, IFCSHADINGDEVICETYPE, IFCROOFTYPE, IFCRAMPTYPE, IFCRAMPFLIGHTTYPE, IFCRAILINGTYPE, IFCRAILTYPE, IFCPLATETYPE, IFCPAVEMENTTYPE, IFCNAVIGATIONELEMENTTYPE, IFCMOORINGDEVICETYPE, IFCMEMBERTYPE, IFCKERBTYPE, IFCFOOTINGTYPE, IFCDOORTYPE, IFCCAISSONFOUNDATIONTYPE, IFCPILETYPE, IFCDEEPFOUNDATIONTYPE, IFCCURTAINWALLTYPE, IFCCOVERINGTYPE, IFCCOURSETYPE, IFCCOLUMNTYPE, IFCCHIMNEYTYPE, IFCBUILTELEMENTTYPE, IFCTRANSPORTELEMENTTYPE, IFCVEHICLETYPE, IFCTRANSPORTATIONDEVICETYPE, IFCGEOGRAPHICELEMENTTYPE, IFCSYSTEMFURNITUREELEMENTTYPE, IFCFURNITURETYPE, IFCFURNISHINGELEMENTTYPE, IFCELEMENTTYPE, IFCTYPEPRODUCT, IFCTASKTYPE, IFCPROCEDURETYPE, IFCEVENTTYPE, IFCTYPEPROCESS], 3736923433: [IFCTASKTYPE, IFCPROCEDURETYPE, IFCEVENTTYPE], 2347495698: [IFCSPATIALZONETYPE, IFCSPACETYPE, IFCSPATIALSTRUCTUREELEMENTTYPE, IFCSPATIALELEMENTTYPE, IFCDISCRETEACCESSORYTYPE, IFCBUILDINGELEMENTPARTTYPE, IFCVIBRATIONISOLATORTYPE, IFCVIBRATIONDAMPERTYPE, IFCSIGNTYPE, IFCREINFORCINGBARTYPE, IFCTENDONTYPE, IFCTENDONCONDUITTYPE, IFCTENDONANCHORTYPE, IFCREINFORCINGMESHTYPE, IFCREINFORCINGELEMENTTYPE, IFCMECHANICALFASTENERTYPE, IFCIMPACTPROTECTIONDEVICETYPE, IFCFASTENERTYPE, IFCELEMENTCOMPONENTTYPE, IFCELEMENTASSEMBLYTYPE, IFCCONTROLLERTYPE, IFCALARMTYPE, IFCACTUATORTYPE, IFCUNITARYCONTROLELEMENTTYPE, IFCSENSORTYPE, IFCPROTECTIVEDEVICETRIPPINGUNITTYPE, IFCFLOWINSTRUMENTTYPE, IFCDISTRIBUTIONCONTROLELEMENTTYPE, IFCDISTRIBUTIONCHAMBERELEMENTTYPE, IFCFILTERTYPE, IFCELECTRICFLOWTREATMENTDEVICETYPE, IFCDUCTSILENCERTYPE, IFCINTERCEPTORTYPE, IFCFLOWTREATMENTDEVICETYPE, IFCFIRESUPPRESSIONTERMINALTYPE, IFCELECTRICAPPLIANCETYPE, IFCCOMMUNICATIONSAPPLIANCETYPE, IFCAUDIOVISUALAPPLIANCETYPE, IFCAIRTERMINALTYPE, IFCWASTETERMINALTYPE, IFCSTACKTERMINALTYPE, IFCSPACEHEATERTYPE, IFCSIGNALTYPE, IFCSANITARYTERMINALTYPE, IFCOUTLETTYPE, IFCMOBILETELECOMMUNICATIONSAPPLIANCETYPE, IFCMEDICALDEVICETYPE, IFCLIQUIDTERMINALTYPE, IFCLIGHTFIXTURETYPE, IFCLAMPTYPE, IFCFLOWTERMINALTYPE, IFCELECTRICFLOWSTORAGEDEVICETYPE, IFCTANKTYPE, IFCFLOWSTORAGEDEVICETYPE, IFCDUCTSEGMENTTYPE, IFCCONVEYORSEGMENTTYPE, IFCCABLESEGMENTTYPE, IFCCABLECARRIERSEGMENTTYPE, IFCPIPESEGMENTTYPE, IFCFLOWSEGMENTTYPE, IFCFANTYPE, IFCCOMPRESSORTYPE, IFCPUMPTYPE, IFCFLOWMOVINGDEVICETYPE, IFCDUCTFITTINGTYPE, IFCCABLEFITTINGTYPE, IFCCABLECARRIERFITTINGTYPE, IFCPIPEFITTINGTYPE, IFCJUNCTIONBOXTYPE, IFCFLOWFITTINGTYPE, IFCELECTRICTIMECONTROLTYPE, IFCELECTRICDISTRIBUTIONBOARDTYPE, IFCDISTRIBUTIONBOARDTYPE, IFCDAMPERTYPE, IFCAIRTERMINALBOXTYPE, IFCVALVETYPE, IFCSWITCHINGDEVICETYPE, IFCPROTECTIVEDEVICETYPE, IFCFLOWMETERTYPE, IFCFLOWCONTROLLERTYPE, IFCELECTRICMOTORTYPE, IFCELECTRICGENERATORTYPE, IFCCOOLINGTOWERTYPE, IFCCOOLEDBEAMTYPE, IFCCONDENSERTYPE, IFCCOILTYPE, IFCCHILLERTYPE, IFCBURNERTYPE, IFCBOILERTYPE, IFCAIRTOAIRHEATRECOVERYTYPE, IFCUNITARYEQUIPMENTTYPE, IFCTUBEBUNDLETYPE, IFCTRANSFORMERTYPE, IFCSOLARDEVICETYPE, IFCMOTORCONNECTIONTYPE, IFCHUMIDIFIERTYPE, IFCHEATEXCHANGERTYPE, IFCEVAPORATORTYPE, IFCEVAPORATIVECOOLERTYPE, IFCENGINETYPE, IFCENERGYCONVERSIONDEVICETYPE, IFCDISTRIBUTIONFLOWELEMENTTYPE, IFCDISTRIBUTIONELEMENTTYPE, IFCCIVILELEMENTTYPE, IFCBUILDINGELEMENTPROXYTYPE, IFCBEARINGTYPE, IFCBEAMTYPE, IFCWINDOWTYPE, IFCWALLTYPE, IFCTRACKELEMENTTYPE, IFCSTAIRTYPE, IFCSTAIRFLIGHTTYPE, IFCSLABTYPE, IFCSHADINGDEVICETYPE, IFCROOFTYPE, IFCRAMPTYPE, IFCRAMPFLIGHTTYPE, IFCRAILINGTYPE, IFCRAILTYPE, IFCPLATETYPE, IFCPAVEMENTTYPE, IFCNAVIGATIONELEMENTTYPE, IFCMOORINGDEVICETYPE, IFCMEMBERTYPE, IFCKERBTYPE, IFCFOOTINGTYPE, IFCDOORTYPE, IFCCAISSONFOUNDATIONTYPE, IFCPILETYPE, IFCDEEPFOUNDATIONTYPE, IFCCURTAINWALLTYPE, IFCCOVERINGTYPE, IFCCOURSETYPE, IFCCOLUMNTYPE, IFCCHIMNEYTYPE, IFCBUILTELEMENTTYPE, IFCTRANSPORTELEMENTTYPE, IFCVEHICLETYPE, IFCTRANSPORTATIONDEVICETYPE, IFCGEOGRAPHICELEMENTTYPE, IFCSYSTEMFURNITUREELEMENTTYPE, IFCFURNITURETYPE, IFCFURNISHINGELEMENTTYPE, IFCELEMENTTYPE], 3698973494: [IFCCONSTRUCTIONPRODUCTRESOURCETYPE, IFCCONSTRUCTIONMATERIALRESOURCETYPE, IFCCONSTRUCTIONEQUIPMENTRESOURCETYPE, IFCSUBCONTRACTRESOURCETYPE, IFCLABORRESOURCETYPE, IFCCREWRESOURCETYPE, IFCCONSTRUCTIONRESOURCETYPE], 2736907675: [IFCBOOLEANCLIPPINGRESULT], 4182860854: [IFCRATIONALBSPLINESURFACEWITHKNOTS, IFCBSPLINESURFACEWITHKNOTS, IFCBSPLINESURFACE, IFCRECTANGULARTRIMMEDSURFACE, IFCCURVEBOUNDEDSURFACE, IFCCURVEBOUNDEDPLANE], 574549367: [IFCCARTESIANPOINTLIST3D, IFCCARTESIANPOINTLIST2D], 59481748: [IFCCARTESIANTRANSFORMATIONOPERATOR3DNONUNIFORM, IFCCARTESIANTRANSFORMATIONOPERATOR3D, IFCCARTESIANTRANSFORMATIONOPERATOR2DNONUNIFORM, IFCCARTESIANTRANSFORMATIONOPERATOR2D], 3749851601: [IFCCARTESIANTRANSFORMATIONOPERATOR2DNONUNIFORM], 3331915920: [IFCCARTESIANTRANSFORMATIONOPERATOR3DNONUNIFORM], 1383045692: [IFCCIRCLEHOLLOWPROFILEDEF], 2485617015: [IFCREPARAMETRISEDCOMPOSITECURVESEGMENT], 2574617495: [IFCCONSTRUCTIONPRODUCTRESOURCETYPE, IFCCONSTRUCTIONMATERIALRESOURCETYPE, IFCCONSTRUCTIONEQUIPMENTRESOURCETYPE, IFCSUBCONTRACTRESOURCETYPE, IFCLABORRESOURCETYPE, IFCCREWRESOURCETYPE], 3419103109: [IFCPROJECTLIBRARY, IFCPROJECT], 2506170314: [IFCBLOCK, IFCSPHERE, IFCRIGHTCIRCULARCYLINDER, IFCRIGHTCIRCULARCONE, IFCRECTANGULARPYRAMID], 2601014836: [IFCCIRCLE, IFCELLIPSE, IFCCONIC, IFCRATIONALBSPLINECURVEWITHKNOTS, IFCBSPLINECURVEWITHKNOTS, IFCBSPLINECURVE, IFCTRIMMEDCURVE, IFCPOLYLINE, IFCINDEXEDPOLYCURVE, IFCSEGMENTEDREFERENCECURVE, IFCGRADIENTCURVE, IFCOUTERBOUNDARYCURVE, IFCBOUNDARYCURVE, IFCCOMPOSITECURVEONSURFACE, IFCCOMPOSITECURVE, IFCBOUNDEDCURVE, IFCSEAMCURVE, IFCINTERSECTIONCURVE, IFCSURFACECURVE, IFCSINESPIRAL, IFCSEVENTHORDERPOLYNOMIALSPIRAL, IFCSECONDORDERPOLYNOMIALSPIRAL, IFCCOSINESPIRAL, IFCCLOTHOID, IFCTHIRDORDERPOLYNOMIALSPIRAL, IFCSPIRAL, IFCPOLYNOMIALCURVE, IFCPCURVE, IFCOFFSETCURVEBYDISTANCES, IFCOFFSETCURVE3D, IFCOFFSETCURVE2D, IFCOFFSETCURVE, IFCLINE], 593015953: [IFCSURFACECURVESWEPTAREASOLID, IFCDIRECTRIXDERIVEDREFERENCESWEPTAREASOLID, IFCFIXEDREFERENCESWEPTAREASOLID], 339256511: [IFCDISCRETEACCESSORYTYPE, IFCBUILDINGELEMENTPARTTYPE, IFCVIBRATIONISOLATORTYPE, IFCVIBRATIONDAMPERTYPE, IFCSIGNTYPE, IFCREINFORCINGBARTYPE, IFCTENDONTYPE, IFCTENDONCONDUITTYPE, IFCTENDONANCHORTYPE, IFCREINFORCINGMESHTYPE, IFCREINFORCINGELEMENTTYPE, IFCMECHANICALFASTENERTYPE, IFCIMPACTPROTECTIONDEVICETYPE, IFCFASTENERTYPE, IFCELEMENTCOMPONENTTYPE, IFCELEMENTASSEMBLYTYPE, IFCCONTROLLERTYPE, IFCALARMTYPE, IFCACTUATORTYPE, IFCUNITARYCONTROLELEMENTTYPE, IFCSENSORTYPE, IFCPROTECTIVEDEVICETRIPPINGUNITTYPE, IFCFLOWINSTRUMENTTYPE, IFCDISTRIBUTIONCONTROLELEMENTTYPE, IFCDISTRIBUTIONCHAMBERELEMENTTYPE, IFCFILTERTYPE, IFCELECTRICFLOWTREATMENTDEVICETYPE, IFCDUCTSILENCERTYPE, IFCINTERCEPTORTYPE, IFCFLOWTREATMENTDEVICETYPE, IFCFIRESUPPRESSIONTERMINALTYPE, IFCELECTRICAPPLIANCETYPE, IFCCOMMUNICATIONSAPPLIANCETYPE, IFCAUDIOVISUALAPPLIANCETYPE, IFCAIRTERMINALTYPE, IFCWASTETERMINALTYPE, IFCSTACKTERMINALTYPE, IFCSPACEHEATERTYPE, IFCSIGNALTYPE, IFCSANITARYTERMINALTYPE, IFCOUTLETTYPE, IFCMOBILETELECOMMUNICATIONSAPPLIANCETYPE, IFCMEDICALDEVICETYPE, IFCLIQUIDTERMINALTYPE, IFCLIGHTFIXTURETYPE, IFCLAMPTYPE, IFCFLOWTERMINALTYPE, IFCELECTRICFLOWSTORAGEDEVICETYPE, IFCTANKTYPE, IFCFLOWSTORAGEDEVICETYPE, IFCDUCTSEGMENTTYPE, IFCCONVEYORSEGMENTTYPE, IFCCABLESEGMENTTYPE, IFCCABLECARRIERSEGMENTTYPE, IFCPIPESEGMENTTYPE, IFCFLOWSEGMENTTYPE, IFCFANTYPE, IFCCOMPRESSORTYPE, IFCPUMPTYPE, IFCFLOWMOVINGDEVICETYPE, IFCDUCTFITTINGTYPE, IFCCABLEFITTINGTYPE, IFCCABLECARRIERFITTINGTYPE, IFCPIPEFITTINGTYPE, IFCJUNCTIONBOXTYPE, IFCFLOWFITTINGTYPE, IFCELECTRICTIMECONTROLTYPE, IFCELECTRICDISTRIBUTIONBOARDTYPE, IFCDISTRIBUTIONBOARDTYPE, IFCDAMPERTYPE, IFCAIRTERMINALBOXTYPE, IFCVALVETYPE, IFCSWITCHINGDEVICETYPE, IFCPROTECTIVEDEVICETYPE, IFCFLOWMETERTYPE, IFCFLOWCONTROLLERTYPE, IFCELECTRICMOTORTYPE, IFCELECTRICGENERATORTYPE, IFCCOOLINGTOWERTYPE, IFCCOOLEDBEAMTYPE, IFCCONDENSERTYPE, IFCCOILTYPE, IFCCHILLERTYPE, IFCBURNERTYPE, IFCBOILERTYPE, IFCAIRTOAIRHEATRECOVERYTYPE, IFCUNITARYEQUIPMENTTYPE, IFCTUBEBUNDLETYPE, IFCTRANSFORMERTYPE, IFCSOLARDEVICETYPE, IFCMOTORCONNECTIONTYPE, IFCHUMIDIFIERTYPE, IFCHEATEXCHANGERTYPE, IFCEVAPORATORTYPE, IFCEVAPORATIVECOOLERTYPE, IFCENGINETYPE, IFCENERGYCONVERSIONDEVICETYPE, IFCDISTRIBUTIONFLOWELEMENTTYPE, IFCDISTRIBUTIONELEMENTTYPE, IFCCIVILELEMENTTYPE, IFCBUILDINGELEMENTPROXYTYPE, IFCBEARINGTYPE, IFCBEAMTYPE, IFCWINDOWTYPE, IFCWALLTYPE, IFCTRACKELEMENTTYPE, IFCSTAIRTYPE, IFCSTAIRFLIGHTTYPE, IFCSLABTYPE, IFCSHADINGDEVICETYPE, IFCROOFTYPE, IFCRAMPTYPE, IFCRAMPFLIGHTTYPE, IFCRAILINGTYPE, IFCRAILTYPE, IFCPLATETYPE, IFCPAVEMENTTYPE, IFCNAVIGATIONELEMENTTYPE, IFCMOORINGDEVICETYPE, IFCMEMBERTYPE, IFCKERBTYPE, IFCFOOTINGTYPE, IFCDOORTYPE, IFCCAISSONFOUNDATIONTYPE, IFCPILETYPE, IFCDEEPFOUNDATIONTYPE, IFCCURTAINWALLTYPE, IFCCOVERINGTYPE, IFCCOURSETYPE, IFCCOLUMNTYPE, IFCCHIMNEYTYPE, IFCBUILTELEMENTTYPE, IFCTRANSPORTELEMENTTYPE, IFCVEHICLETYPE, IFCTRANSPORTATIONDEVICETYPE, IFCGEOGRAPHICELEMENTTYPE, IFCSYSTEMFURNITUREELEMENTTYPE, IFCFURNITURETYPE, IFCFURNISHINGELEMENTTYPE], 2777663545: [IFCCYLINDRICALSURFACE, IFCTOROIDALSURFACE, IFCSPHERICALSURFACE, IFCPLANE], 477187591: [IFCEXTRUDEDAREASOLIDTAPERED], 2652556860: [IFCDIRECTRIXDERIVEDREFERENCESWEPTAREASOLID], 4238390223: [IFCSYSTEMFURNITUREELEMENTTYPE, IFCFURNITURETYPE], 178912537: [IFCINDEXEDPOLYGONALFACEWITHVOIDS], 1425443689: [IFCFACETEDBREPWITHVOIDS, IFCFACETEDBREP, IFCADVANCEDBREPWITHVOIDS, IFCADVANCEDBREP], 3888040117: [IFCASSET, IFCSTRUCTURALANALYSISMODEL, IFCDISTRIBUTIONCIRCUIT, IFCDISTRIBUTIONSYSTEM, IFCBUILTSYSTEM, IFCBUILDINGSYSTEM, IFCZONE, IFCSYSTEM, IFCSTRUCTURALRESULTGROUP, IFCSTRUCTURALLOADCASE, IFCSTRUCTURALLOADGROUP, IFCINVENTORY, IFCGROUP, IFCACTIONREQUEST, IFCWORKSCHEDULE, IFCWORKPLAN, IFCWORKCONTROL, IFCWORKCALENDAR, IFCPROJECTORDER, IFCPERMIT, IFCPERFORMANCEHISTORY, IFCCOSTSCHEDULE, IFCCOSTITEM, IFCCONTROL, IFCOCCUPANT, IFCACTOR, IFCCONSTRUCTIONPRODUCTRESOURCE, IFCCONSTRUCTIONMATERIALRESOURCE, IFCCONSTRUCTIONEQUIPMENTRESOURCE, IFCSUBCONTRACTRESOURCE, IFCLABORRESOURCE, IFCCREWRESOURCE, IFCCONSTRUCTIONRESOURCE, IFCRESOURCE, IFCALIGNMENT, IFCLINEARPOSITIONINGELEMENT, IFCGRID, IFCREFERENT, IFCPOSITIONINGELEMENT, IFCDISTRIBUTIONPORT, IFCPORT, IFCALIGNMENTVERTICAL, IFCALIGNMENTSEGMENT, IFCALIGNMENTHORIZONTAL, IFCALIGNMENTCANT, IFCLINEARELEMENT, IFCCONTROLLER, IFCALARM, IFCACTUATOR, IFCUNITARYCONTROLELEMENT, IFCSENSOR, IFCPROTECTIVEDEVICETRIPPINGUNIT, IFCFLOWINSTRUMENT, IFCDISTRIBUTIONCONTROLELEMENT, IFCDISTRIBUTIONCHAMBERELEMENT, IFCFILTER, IFCELECTRICFLOWTREATMENTDEVICE, IFCDUCTSILENCER, IFCINTERCEPTOR, IFCFLOWTREATMENTDEVICE, IFCFIRESUPPRESSIONTERMINAL, IFCELECTRICAPPLIANCE, IFCCOMMUNICATIONSAPPLIANCE, IFCAUDIOVISUALAPPLIANCE, IFCAIRTERMINAL, IFCWASTETERMINAL, IFCSTACKTERMINAL, IFCSPACEHEATER, IFCSIGNAL, IFCSANITARYTERMINAL, IFCOUTLET, IFCMOBILETELECOMMUNICATIONSAPPLIANCE, IFCMEDICALDEVICE, IFCLIQUIDTERMINAL, IFCLIGHTFIXTURE, IFCLAMP, IFCFLOWTERMINAL, IFCELECTRICFLOWSTORAGEDEVICE, IFCTANK, IFCFLOWSTORAGEDEVICE, IFCDUCTSEGMENT, IFCCONVEYORSEGMENT, IFCCABLESEGMENT, IFCCABLECARRIERSEGMENT, IFCPIPESEGMENT, IFCFLOWSEGMENT, IFCFAN, IFCCOMPRESSOR, IFCPUMP, IFCFLOWMOVINGDEVICE, IFCDUCTFITTING, IFCCABLEFITTING, IFCCABLECARRIERFITTING, IFCPIPEFITTING, IFCJUNCTIONBOX, IFCFLOWFITTING, IFCELECTRICTIMECONTROL, IFCELECTRICDISTRIBUTIONBOARD, IFCDISTRIBUTIONBOARD, IFCDAMPER, IFCAIRTERMINALBOX, IFCVALVE, IFCSWITCHINGDEVICE, IFCPROTECTIVEDEVICE, IFCFLOWMETER, IFCFLOWCONTROLLER, IFCELECTRICMOTOR, IFCELECTRICGENERATOR, IFCCOOLINGTOWER, IFCCOOLEDBEAM, IFCCONDENSER, IFCCOIL, IFCCHILLER, IFCBURNER, IFCBOILER, IFCAIRTOAIRHEATRECOVERY, IFCUNITARYEQUIPMENT, IFCTUBEBUNDLE, IFCTRANSFORMER, IFCSOLARDEVICE, IFCMOTORCONNECTION, IFCHUMIDIFIER, IFCHEATEXCHANGER, IFCEVAPORATOR, IFCEVAPORATIVECOOLER, IFCENGINE, IFCENERGYCONVERSIONDEVICE, IFCDISTRIBUTIONFLOWELEMENT, IFCDISTRIBUTIONELEMENT, IFCCIVILELEMENT, IFCBUILDINGELEMENTPROXY, IFCBEARING, IFCBEAM, IFCWINDOW, IFCWALLSTANDARDCASE, IFCWALL, IFCTRACKELEMENT, IFCSTAIRFLIGHT, IFCSTAIR, IFCSLAB, IFCSHADINGDEVICE, IFCROOF, IFCRAMPFLIGHT, IFCRAMP, IFCRAILING, IFCRAIL, IFCPLATE, IFCPAVEMENT, IFCNAVIGATIONELEMENT, IFCMOORINGDEVICE, IFCMEMBER, IFCKERB, IFCFOOTING, IFCREINFORCEDSOIL, IFCEARTHWORKSFILL, IFCEARTHWORKSELEMENT, IFCDOOR, IFCCAISSONFOUNDATION, IFCPILE, IFCDEEPFOUNDATION, IFCCURTAINWALL, IFCCOVERING, IFCCOURSE, IFCCOLUMN, IFCCHIMNEY, IFCBUILTELEMENT, IFCVIRTUALELEMENT, IFCTRANSPORTELEMENT, IFCVEHICLE, IFCTRANSPORTATIONDEVICE, IFCGEOSLICE, IFCGEOMODEL, IFCBOREHOLE, IFCGEOTECHNICALASSEMBLY, IFCGEOTECHNICALSTRATUM, IFCGEOTECHNICALELEMENT, IFCGEOGRAPHICELEMENT, IFCSYSTEMFURNITUREELEMENT, IFCFURNITURE, IFCFURNISHINGELEMENT, IFCSURFACEFEATURE, IFCEARTHWORKSCUT, IFCVOIDINGFEATURE, IFCOPENINGELEMENT, IFCFEATUREELEMENTSUBTRACTION, IFCPROJECTIONELEMENT, IFCFEATUREELEMENTADDITION, IFCFEATUREELEMENT, IFCDISCRETEACCESSORY, IFCBUILDINGELEMENTPART, IFCVIBRATIONISOLATOR, IFCVIBRATIONDAMPER, IFCSIGN, IFCREINFORCINGBAR, IFCTENDONCONDUIT, IFCTENDONANCHOR, IFCTENDON, IFCREINFORCINGMESH, IFCREINFORCINGELEMENT, IFCMECHANICALFASTENER, IFCIMPACTPROTECTIONDEVICE, IFCFASTENER, IFCELEMENTCOMPONENT, IFCELEMENTASSEMBLY, IFCELEMENT, IFCANNOTATION, IFCSTRUCTURALSURFACECONNECTION, IFCSTRUCTURALPOINTCONNECTION, IFCSTRUCTURALCURVECONNECTION, IFCSTRUCTURALCONNECTION, IFCSTRUCTURALCURVEMEMBERVARYING, IFCSTRUCTURALCURVEMEMBER, IFCSTRUCTURALSURFACEMEMBERVARYING, IFCSTRUCTURALSURFACEMEMBER, IFCSTRUCTURALMEMBER, IFCSTRUCTURALITEM, IFCSTRUCTURALPLANARACTION, IFCSTRUCTURALSURFACEACTION, IFCSTRUCTURALPOINTACTION, IFCSTRUCTURALLINEARACTION, IFCSTRUCTURALCURVEACTION, IFCSTRUCTURALACTION, IFCSTRUCTURALPOINTREACTION, IFCSTRUCTURALCURVEREACTION, IFCSTRUCTURALSURFACEREACTION, IFCSTRUCTURALREACTION, IFCSTRUCTURALACTIVITY, IFCEXTERNALSPATIALELEMENT, IFCEXTERNALSPATIALSTRUCTUREELEMENT, IFCSPATIALZONE, IFCSPACE, IFCSITE, IFCBRIDGEPART, IFCROADPART, IFCRAILWAYPART, IFCMARINEPART, IFCFACILITYPARTCOMMON, IFCFACILITYPART, IFCBUILDING, IFCBRIDGE, IFCROAD, IFCRAILWAY, IFCMARINEFACILITY, IFCFACILITY, IFCBUILDINGSTOREY, IFCSPATIALSTRUCTUREELEMENT, IFCSPATIALELEMENT, IFCPRODUCT, IFCPROCEDURE, IFCEVENT, IFCTASK, IFCPROCESS], 590820931: [IFCOFFSETCURVEBYDISTANCES, IFCOFFSETCURVE3D, IFCOFFSETCURVE2D], 759155922: [IFCDRAUGHTINGPREDEFINEDCOLOUR], 2559016684: [IFCDRAUGHTINGPREDEFINEDCURVEFONT], 3967405729: [IFCPERMEABLECOVERINGPROPERTIES, IFCDOORPANELPROPERTIES, IFCDOORLININGPROPERTIES, IFCWINDOWPANELPROPERTIES, IFCWINDOWLININGPROPERTIES, IFCREINFORCEMENTDEFINITIONPROPERTIES], 2945172077: [IFCPROCEDURE, IFCEVENT, IFCTASK], 4208778838: [IFCALIGNMENT, IFCLINEARPOSITIONINGELEMENT, IFCGRID, IFCREFERENT, IFCPOSITIONINGELEMENT, IFCDISTRIBUTIONPORT, IFCPORT, IFCALIGNMENTVERTICAL, IFCALIGNMENTSEGMENT, IFCALIGNMENTHORIZONTAL, IFCALIGNMENTCANT, IFCLINEARELEMENT, IFCCONTROLLER, IFCALARM, IFCACTUATOR, IFCUNITARYCONTROLELEMENT, IFCSENSOR, IFCPROTECTIVEDEVICETRIPPINGUNIT, IFCFLOWINSTRUMENT, IFCDISTRIBUTIONCONTROLELEMENT, IFCDISTRIBUTIONCHAMBERELEMENT, IFCFILTER, IFCELECTRICFLOWTREATMENTDEVICE, IFCDUCTSILENCER, IFCINTERCEPTOR, IFCFLOWTREATMENTDEVICE, IFCFIRESUPPRESSIONTERMINAL, IFCELECTRICAPPLIANCE, IFCCOMMUNICATIONSAPPLIANCE, IFCAUDIOVISUALAPPLIANCE, IFCAIRTERMINAL, IFCWASTETERMINAL, IFCSTACKTERMINAL, IFCSPACEHEATER, IFCSIGNAL, IFCSANITARYTERMINAL, IFCOUTLET, IFCMOBILETELECOMMUNICATIONSAPPLIANCE, IFCMEDICALDEVICE, IFCLIQUIDTERMINAL, IFCLIGHTFIXTURE, IFCLAMP, IFCFLOWTERMINAL, IFCELECTRICFLOWSTORAGEDEVICE, IFCTANK, IFCFLOWSTORAGEDEVICE, IFCDUCTSEGMENT, IFCCONVEYORSEGMENT, IFCCABLESEGMENT, IFCCABLECARRIERSEGMENT, IFCPIPESEGMENT, IFCFLOWSEGMENT, IFCFAN, IFCCOMPRESSOR, IFCPUMP, IFCFLOWMOVINGDEVICE, IFCDUCTFITTING, IFCCABLEFITTING, IFCCABLECARRIERFITTING, IFCPIPEFITTING, IFCJUNCTIONBOX, IFCFLOWFITTING, IFCELECTRICTIMECONTROL, IFCELECTRICDISTRIBUTIONBOARD, IFCDISTRIBUTIONBOARD, IFCDAMPER, IFCAIRTERMINALBOX, IFCVALVE, IFCSWITCHINGDEVICE, IFCPROTECTIVEDEVICE, IFCFLOWMETER, IFCFLOWCONTROLLER, IFCELECTRICMOTOR, IFCELECTRICGENERATOR, IFCCOOLINGTOWER, IFCCOOLEDBEAM, IFCCONDENSER, IFCCOIL, IFCCHILLER, IFCBURNER, IFCBOILER, IFCAIRTOAIRHEATRECOVERY, IFCUNITARYEQUIPMENT, IFCTUBEBUNDLE, IFCTRANSFORMER, IFCSOLARDEVICE, IFCMOTORCONNECTION, IFCHUMIDIFIER, IFCHEATEXCHANGER, IFCEVAPORATOR, IFCEVAPORATIVECOOLER, IFCENGINE, IFCENERGYCONVERSIONDEVICE, IFCDISTRIBUTIONFLOWELEMENT, IFCDISTRIBUTIONELEMENT, IFCCIVILELEMENT, IFCBUILDINGELEMENTPROXY, IFCBEARING, IFCBEAM, IFCWINDOW, IFCWALLSTANDARDCASE, IFCWALL, IFCTRACKELEMENT, IFCSTAIRFLIGHT, IFCSTAIR, IFCSLAB, IFCSHADINGDEVICE, IFCROOF, IFCRAMPFLIGHT, IFCRAMP, IFCRAILING, IFCRAIL, IFCPLATE, IFCPAVEMENT, IFCNAVIGATIONELEMENT, IFCMOORINGDEVICE, IFCMEMBER, IFCKERB, IFCFOOTING, IFCREINFORCEDSOIL, IFCEARTHWORKSFILL, IFCEARTHWORKSELEMENT, IFCDOOR, IFCCAISSONFOUNDATION, IFCPILE, IFCDEEPFOUNDATION, IFCCURTAINWALL, IFCCOVERING, IFCCOURSE, IFCCOLUMN, IFCCHIMNEY, IFCBUILTELEMENT, IFCVIRTUALELEMENT, IFCTRANSPORTELEMENT, IFCVEHICLE, IFCTRANSPORTATIONDEVICE, IFCGEOSLICE, IFCGEOMODEL, IFCBOREHOLE, IFCGEOTECHNICALASSEMBLY, IFCGEOTECHNICALSTRATUM, IFCGEOTECHNICALELEMENT, IFCGEOGRAPHICELEMENT, IFCSYSTEMFURNITUREELEMENT, IFCFURNITURE, IFCFURNISHINGELEMENT, IFCSURFACEFEATURE, IFCEARTHWORKSCUT, IFCVOIDINGFEATURE, IFCOPENINGELEMENT, IFCFEATUREELEMENTSUBTRACTION, IFCPROJECTIONELEMENT, IFCFEATUREELEMENTADDITION, IFCFEATUREELEMENT, IFCDISCRETEACCESSORY, IFCBUILDINGELEMENTPART, IFCVIBRATIONISOLATOR, IFCVIBRATIONDAMPER, IFCSIGN, IFCREINFORCINGBAR, IFCTENDONCONDUIT, IFCTENDONANCHOR, IFCTENDON, IFCREINFORCINGMESH, IFCREINFORCINGELEMENT, IFCMECHANICALFASTENER, IFCIMPACTPROTECTIONDEVICE, IFCFASTENER, IFCELEMENTCOMPONENT, IFCELEMENTASSEMBLY, IFCELEMENT, IFCANNOTATION, IFCSTRUCTURALSURFACECONNECTION, IFCSTRUCTURALPOINTCONNECTION, IFCSTRUCTURALCURVECONNECTION, IFCSTRUCTURALCONNECTION, IFCSTRUCTURALCURVEMEMBERVARYING, IFCSTRUCTURALCURVEMEMBER, IFCSTRUCTURALSURFACEMEMBERVARYING, IFCSTRUCTURALSURFACEMEMBER, IFCSTRUCTURALMEMBER, IFCSTRUCTURALITEM, IFCSTRUCTURALPLANARACTION, IFCSTRUCTURALSURFACEACTION, IFCSTRUCTURALPOINTACTION, IFCSTRUCTURALLINEARACTION, IFCSTRUCTURALCURVEACTION, IFCSTRUCTURALACTION, IFCSTRUCTURALPOINTREACTION, IFCSTRUCTURALCURVEREACTION, IFCSTRUCTURALSURFACEREACTION, IFCSTRUCTURALREACTION, IFCSTRUCTURALACTIVITY, IFCEXTERNALSPATIALELEMENT, IFCEXTERNALSPATIALSTRUCTUREELEMENT, IFCSPATIALZONE, IFCSPACE, IFCSITE, IFCBRIDGEPART, IFCROADPART, IFCRAILWAYPART, IFCMARINEPART, IFCFACILITYPARTCOMMON, IFCFACILITYPART, IFCBUILDING, IFCBRIDGE, IFCROAD, IFCRAILWAY, IFCMARINEFACILITY, IFCFACILITY, IFCBUILDINGSTOREY, IFCSPATIALSTRUCTUREELEMENT, IFCSPATIALELEMENT], 3521284610: [IFCCOMPLEXPROPERTYTEMPLATE, IFCSIMPLEPROPERTYTEMPLATE], 3939117080: [IFCRELASSIGNSTORESOURCE, IFCRELASSIGNSTOPRODUCT, IFCRELASSIGNSTOPROCESS, IFCRELASSIGNSTOGROUPBYFACTOR, IFCRELASSIGNSTOGROUP, IFCRELASSIGNSTOCONTROL, IFCRELASSIGNSTOACTOR], 1307041759: [IFCRELASSIGNSTOGROUPBYFACTOR], 1865459582: [IFCRELASSOCIATESPROFILEDEF, IFCRELASSOCIATESMATERIAL, IFCRELASSOCIATESLIBRARY, IFCRELASSOCIATESDOCUMENT, IFCRELASSOCIATESCONSTRAINT, IFCRELASSOCIATESCLASSIFICATION, IFCRELASSOCIATESAPPROVAL], 826625072: [IFCRELSPACEBOUNDARY2NDLEVEL, IFCRELSPACEBOUNDARY1STLEVEL, IFCRELSPACEBOUNDARY, IFCRELSERVICESBUILDINGS, IFCRELSEQUENCE, IFCRELREFERENCEDINSPATIALSTRUCTURE, IFCRELPOSITIONS, IFCRELINTERFERESELEMENTS, IFCRELFLOWCONTROLELEMENTS, IFCRELFILLSELEMENT, IFCRELCOVERSSPACES, IFCRELCOVERSBLDGELEMENTS, IFCRELCONTAINEDINSPATIALSTRUCTURE, IFCRELCONNECTSWITHECCENTRICITY, IFCRELCONNECTSSTRUCTURALMEMBER, IFCRELCONNECTSSTRUCTURALACTIVITY, IFCRELCONNECTSPORTS, IFCRELCONNECTSPORTTOELEMENT, IFCRELCONNECTSWITHREALIZINGELEMENTS, IFCRELCONNECTSPATHELEMENTS, IFCRELCONNECTSELEMENTS], 1204542856: [IFCRELCONNECTSWITHREALIZINGELEMENTS, IFCRELCONNECTSPATHELEMENTS], 1638771189: [IFCRELCONNECTSWITHECCENTRICITY], 2551354335: [IFCRELAGGREGATES, IFCRELADHERESTOELEMENT, IFCRELVOIDSELEMENT, IFCRELPROJECTSELEMENT, IFCRELNESTS], 693640335: [IFCRELDEFINESBYTYPE, IFCRELDEFINESBYTEMPLATE, IFCRELDEFINESBYPROPERTIES, IFCRELDEFINESBYOBJECT], 3451746338: [IFCRELSPACEBOUNDARY2NDLEVEL, IFCRELSPACEBOUNDARY1STLEVEL], 3523091289: [IFCRELSPACEBOUNDARY2NDLEVEL], 2914609552: [IFCCONSTRUCTIONPRODUCTRESOURCE, IFCCONSTRUCTIONMATERIALRESOURCE, IFCCONSTRUCTIONEQUIPMENTRESOURCE, IFCSUBCONTRACTRESOURCE, IFCLABORRESOURCE, IFCCREWRESOURCE, IFCCONSTRUCTIONRESOURCE], 1856042241: [IFCREVOLVEDAREASOLIDTAPERED], 1862484736: [IFCSECTIONEDSOLIDHORIZONTAL], 1412071761: [IFCEXTERNALSPATIALELEMENT, IFCEXTERNALSPATIALSTRUCTUREELEMENT, IFCSPATIALZONE, IFCSPACE, IFCSITE, IFCBRIDGEPART, IFCROADPART, IFCRAILWAYPART, IFCMARINEPART, IFCFACILITYPARTCOMMON, IFCFACILITYPART, IFCBUILDING, IFCBRIDGE, IFCROAD, IFCRAILWAY, IFCMARINEFACILITY, IFCFACILITY, IFCBUILDINGSTOREY, IFCSPATIALSTRUCTUREELEMENT], 710998568: [IFCSPATIALZONETYPE, IFCSPACETYPE, IFCSPATIALSTRUCTUREELEMENTTYPE], 2706606064: [IFCSPACE, IFCSITE, IFCBRIDGEPART, IFCROADPART, IFCRAILWAYPART, IFCMARINEPART, IFCFACILITYPARTCOMMON, IFCFACILITYPART, IFCBUILDING, IFCBRIDGE, IFCROAD, IFCRAILWAY, IFCMARINEFACILITY, IFCFACILITY, IFCBUILDINGSTOREY], 3893378262: [IFCSPACETYPE], 2735484536: [IFCSINESPIRAL, IFCSEVENTHORDERPOLYNOMIALSPIRAL, IFCSECONDORDERPOLYNOMIALSPIRAL, IFCCOSINESPIRAL, IFCCLOTHOID, IFCTHIRDORDERPOLYNOMIALSPIRAL], 3544373492: [IFCSTRUCTURALPLANARACTION, IFCSTRUCTURALSURFACEACTION, IFCSTRUCTURALPOINTACTION, IFCSTRUCTURALLINEARACTION, IFCSTRUCTURALCURVEACTION, IFCSTRUCTURALACTION, IFCSTRUCTURALPOINTREACTION, IFCSTRUCTURALCURVEREACTION, IFCSTRUCTURALSURFACEREACTION, IFCSTRUCTURALREACTION], 3136571912: [IFCSTRUCTURALSURFACECONNECTION, IFCSTRUCTURALPOINTCONNECTION, IFCSTRUCTURALCURVECONNECTION, IFCSTRUCTURALCONNECTION, IFCSTRUCTURALCURVEMEMBERVARYING, IFCSTRUCTURALCURVEMEMBER, IFCSTRUCTURALSURFACEMEMBERVARYING, IFCSTRUCTURALSURFACEMEMBER, IFCSTRUCTURALMEMBER], 530289379: [IFCSTRUCTURALCURVEMEMBERVARYING, IFCSTRUCTURALCURVEMEMBER, IFCSTRUCTURALSURFACEMEMBERVARYING, IFCSTRUCTURALSURFACEMEMBER], 3689010777: [IFCSTRUCTURALPOINTREACTION, IFCSTRUCTURALCURVEREACTION, IFCSTRUCTURALSURFACEREACTION], 3979015343: [IFCSTRUCTURALSURFACEMEMBERVARYING], 699246055: [IFCSEAMCURVE, IFCINTERSECTIONCURVE], 2387106220: [IFCPOLYGONALFACESET, IFCTRIANGULATEDIRREGULARNETWORK, IFCTRIANGULATEDFACESET], 3665877780: [IFCTRANSPORTELEMENTTYPE, IFCVEHICLETYPE], 2916149573: [IFCTRIANGULATEDIRREGULARNETWORK], 2296667514: [IFCOCCUPANT], 1635779807: [IFCADVANCEDBREPWITHVOIDS], 2887950389: [IFCRATIONALBSPLINESURFACEWITHKNOTS, IFCBSPLINESURFACEWITHKNOTS], 167062518: [IFCRATIONALBSPLINESURFACEWITHKNOTS], 1260505505: [IFCRATIONALBSPLINECURVEWITHKNOTS, IFCBSPLINECURVEWITHKNOTS, IFCBSPLINECURVE, IFCTRIMMEDCURVE, IFCPOLYLINE, IFCINDEXEDPOLYCURVE, IFCSEGMENTEDREFERENCECURVE, IFCGRADIENTCURVE, IFCOUTERBOUNDARYCURVE, IFCBOUNDARYCURVE, IFCCOMPOSITECURVEONSURFACE, IFCCOMPOSITECURVE], 1626504194: [IFCBUILDINGELEMENTPROXYTYPE, IFCBEARINGTYPE, IFCBEAMTYPE, IFCWINDOWTYPE, IFCWALLTYPE, IFCTRACKELEMENTTYPE, IFCSTAIRTYPE, IFCSTAIRFLIGHTTYPE, IFCSLABTYPE, IFCSHADINGDEVICETYPE, IFCROOFTYPE, IFCRAMPTYPE, IFCRAMPFLIGHTTYPE, IFCRAILINGTYPE, IFCRAILTYPE, IFCPLATETYPE, IFCPAVEMENTTYPE, IFCNAVIGATIONELEMENTTYPE, IFCMOORINGDEVICETYPE, IFCMEMBERTYPE, IFCKERBTYPE, IFCFOOTINGTYPE, IFCDOORTYPE, IFCCAISSONFOUNDATIONTYPE, IFCPILETYPE, IFCDEEPFOUNDATIONTYPE, IFCCURTAINWALLTYPE, IFCCOVERINGTYPE, IFCCOURSETYPE, IFCCOLUMNTYPE, IFCCHIMNEYTYPE], 3732776249: [IFCSEGMENTEDREFERENCECURVE, IFCGRADIENTCURVE, IFCOUTERBOUNDARYCURVE, IFCBOUNDARYCURVE, IFCCOMPOSITECURVEONSURFACE], 15328376: [IFCOUTERBOUNDARYCURVE, IFCBOUNDARYCURVE], 2510884976: [IFCCIRCLE, IFCELLIPSE], 2559216714: [IFCCONSTRUCTIONPRODUCTRESOURCE, IFCCONSTRUCTIONMATERIALRESOURCE, IFCCONSTRUCTIONEQUIPMENTRESOURCE, IFCSUBCONTRACTRESOURCE, IFCLABORRESOURCE, IFCCREWRESOURCE], 3293443760: [IFCACTIONREQUEST, IFCWORKSCHEDULE, IFCWORKPLAN, IFCWORKCONTROL, IFCWORKCALENDAR, IFCPROJECTORDER, IFCPERMIT, IFCPERFORMANCEHISTORY, IFCCOSTSCHEDULE, IFCCOSTITEM], 1306400036: [IFCCAISSONFOUNDATIONTYPE, IFCPILETYPE], 3256556792: [IFCCONTROLLERTYPE, IFCALARMTYPE, IFCACTUATORTYPE, IFCUNITARYCONTROLELEMENTTYPE, IFCSENSORTYPE, IFCPROTECTIVEDEVICETRIPPINGUNITTYPE, IFCFLOWINSTRUMENTTYPE, IFCDISTRIBUTIONCONTROLELEMENTTYPE, IFCDISTRIBUTIONCHAMBERELEMENTTYPE, IFCFILTERTYPE, IFCELECTRICFLOWTREATMENTDEVICETYPE, IFCDUCTSILENCERTYPE, IFCINTERCEPTORTYPE, IFCFLOWTREATMENTDEVICETYPE, IFCFIRESUPPRESSIONTERMINALTYPE, IFCELECTRICAPPLIANCETYPE, IFCCOMMUNICATIONSAPPLIANCETYPE, IFCAUDIOVISUALAPPLIANCETYPE, IFCAIRTERMINALTYPE, IFCWASTETERMINALTYPE, IFCSTACKTERMINALTYPE, IFCSPACEHEATERTYPE, IFCSIGNALTYPE, IFCSANITARYTERMINALTYPE, IFCOUTLETTYPE, IFCMOBILETELECOMMUNICATIONSAPPLIANCETYPE, IFCMEDICALDEVICETYPE, IFCLIQUIDTERMINALTYPE, IFCLIGHTFIXTURETYPE, IFCLAMPTYPE, IFCFLOWTERMINALTYPE, IFCELECTRICFLOWSTORAGEDEVICETYPE, IFCTANKTYPE, IFCFLOWSTORAGEDEVICETYPE, IFCDUCTSEGMENTTYPE, IFCCONVEYORSEGMENTTYPE, IFCCABLESEGMENTTYPE, IFCCABLECARRIERSEGMENTTYPE, IFCPIPESEGMENTTYPE, IFCFLOWSEGMENTTYPE, IFCFANTYPE, IFCCOMPRESSORTYPE, IFCPUMPTYPE, IFCFLOWMOVINGDEVICETYPE, IFCDUCTFITTINGTYPE, IFCCABLEFITTINGTYPE, IFCCABLECARRIERFITTINGTYPE, IFCPIPEFITTINGTYPE, IFCJUNCTIONBOXTYPE, IFCFLOWFITTINGTYPE, IFCELECTRICTIMECONTROLTYPE, IFCELECTRICDISTRIBUTIONBOARDTYPE, IFCDISTRIBUTIONBOARDTYPE, IFCDAMPERTYPE, IFCAIRTERMINALBOXTYPE, IFCVALVETYPE, IFCSWITCHINGDEVICETYPE, IFCPROTECTIVEDEVICETYPE, IFCFLOWMETERTYPE, IFCFLOWCONTROLLERTYPE, IFCELECTRICMOTORTYPE, IFCELECTRICGENERATORTYPE, IFCCOOLINGTOWERTYPE, IFCCOOLEDBEAMTYPE, IFCCONDENSERTYPE, IFCCOILTYPE, IFCCHILLERTYPE, IFCBURNERTYPE, IFCBOILERTYPE, IFCAIRTOAIRHEATRECOVERYTYPE, IFCUNITARYEQUIPMENTTYPE, IFCTUBEBUNDLETYPE, IFCTRANSFORMERTYPE, IFCSOLARDEVICETYPE, IFCMOTORCONNECTIONTYPE, IFCHUMIDIFIERTYPE, IFCHEATEXCHANGERTYPE, IFCEVAPORATORTYPE, IFCEVAPORATIVECOOLERTYPE, IFCENGINETYPE, IFCENERGYCONVERSIONDEVICETYPE, IFCDISTRIBUTIONFLOWELEMENTTYPE], 3849074793: [IFCDISTRIBUTIONCHAMBERELEMENTTYPE, IFCFILTERTYPE, IFCELECTRICFLOWTREATMENTDEVICETYPE, IFCDUCTSILENCERTYPE, IFCINTERCEPTORTYPE, IFCFLOWTREATMENTDEVICETYPE, IFCFIRESUPPRESSIONTERMINALTYPE, IFCELECTRICAPPLIANCETYPE, IFCCOMMUNICATIONSAPPLIANCETYPE, IFCAUDIOVISUALAPPLIANCETYPE, IFCAIRTERMINALTYPE, IFCWASTETERMINALTYPE, IFCSTACKTERMINALTYPE, IFCSPACEHEATERTYPE, IFCSIGNALTYPE, IFCSANITARYTERMINALTYPE, IFCOUTLETTYPE, IFCMOBILETELECOMMUNICATIONSAPPLIANCETYPE, IFCMEDICALDEVICETYPE, IFCLIQUIDTERMINALTYPE, IFCLIGHTFIXTURETYPE, IFCLAMPTYPE, IFCFLOWTERMINALTYPE, IFCELECTRICFLOWSTORAGEDEVICETYPE, IFCTANKTYPE, IFCFLOWSTORAGEDEVICETYPE, IFCDUCTSEGMENTTYPE, IFCCONVEYORSEGMENTTYPE, IFCCABLESEGMENTTYPE, IFCCABLECARRIERSEGMENTTYPE, IFCPIPESEGMENTTYPE, IFCFLOWSEGMENTTYPE, IFCFANTYPE, IFCCOMPRESSORTYPE, IFCPUMPTYPE, IFCFLOWMOVINGDEVICETYPE, IFCDUCTFITTINGTYPE, IFCCABLEFITTINGTYPE, IFCCABLECARRIERFITTINGTYPE, IFCPIPEFITTINGTYPE, IFCJUNCTIONBOXTYPE, IFCFLOWFITTINGTYPE, IFCELECTRICTIMECONTROLTYPE, IFCELECTRICDISTRIBUTIONBOARDTYPE, IFCDISTRIBUTIONBOARDTYPE, IFCDAMPERTYPE, IFCAIRTERMINALBOXTYPE, IFCVALVETYPE, IFCSWITCHINGDEVICETYPE, IFCPROTECTIVEDEVICETYPE, IFCFLOWMETERTYPE, IFCFLOWCONTROLLERTYPE, IFCELECTRICMOTORTYPE, IFCELECTRICGENERATORTYPE, IFCCOOLINGTOWERTYPE, IFCCOOLEDBEAMTYPE, IFCCONDENSERTYPE, IFCCOILTYPE, IFCCHILLERTYPE, IFCBURNERTYPE, IFCBOILERTYPE, IFCAIRTOAIRHEATRECOVERYTYPE, IFCUNITARYEQUIPMENTTYPE, IFCTUBEBUNDLETYPE, IFCTRANSFORMERTYPE, IFCSOLARDEVICETYPE, IFCMOTORCONNECTIONTYPE, IFCHUMIDIFIERTYPE, IFCHEATEXCHANGERTYPE, IFCEVAPORATORTYPE, IFCEVAPORATIVECOOLERTYPE, IFCENGINETYPE, IFCENERGYCONVERSIONDEVICETYPE], 1758889154: [IFCCONTROLLER, IFCALARM, IFCACTUATOR, IFCUNITARYCONTROLELEMENT, IFCSENSOR, IFCPROTECTIVEDEVICETRIPPINGUNIT, IFCFLOWINSTRUMENT, IFCDISTRIBUTIONCONTROLELEMENT, IFCDISTRIBUTIONCHAMBERELEMENT, IFCFILTER, IFCELECTRICFLOWTREATMENTDEVICE, IFCDUCTSILENCER, IFCINTERCEPTOR, IFCFLOWTREATMENTDEVICE, IFCFIRESUPPRESSIONTERMINAL, IFCELECTRICAPPLIANCE, IFCCOMMUNICATIONSAPPLIANCE, IFCAUDIOVISUALAPPLIANCE, IFCAIRTERMINAL, IFCWASTETERMINAL, IFCSTACKTERMINAL, IFCSPACEHEATER, IFCSIGNAL, IFCSANITARYTERMINAL, IFCOUTLET, IFCMOBILETELECOMMUNICATIONSAPPLIANCE, IFCMEDICALDEVICE, IFCLIQUIDTERMINAL, IFCLIGHTFIXTURE, IFCLAMP, IFCFLOWTERMINAL, IFCELECTRICFLOWSTORAGEDEVICE, IFCTANK, IFCFLOWSTORAGEDEVICE, IFCDUCTSEGMENT, IFCCONVEYORSEGMENT, IFCCABLESEGMENT, IFCCABLECARRIERSEGMENT, IFCPIPESEGMENT, IFCFLOWSEGMENT, IFCFAN, IFCCOMPRESSOR, IFCPUMP, IFCFLOWMOVINGDEVICE, IFCDUCTFITTING, IFCCABLEFITTING, IFCCABLECARRIERFITTING, IFCPIPEFITTING, IFCJUNCTIONBOX, IFCFLOWFITTING, IFCELECTRICTIMECONTROL, IFCELECTRICDISTRIBUTIONBOARD, IFCDISTRIBUTIONBOARD, IFCDAMPER, IFCAIRTERMINALBOX, IFCVALVE, IFCSWITCHINGDEVICE, IFCPROTECTIVEDEVICE, IFCFLOWMETER, IFCFLOWCONTROLLER, IFCELECTRICMOTOR, IFCELECTRICGENERATOR, IFCCOOLINGTOWER, IFCCOOLEDBEAM, IFCCONDENSER, IFCCOIL, IFCCHILLER, IFCBURNER, IFCBOILER, IFCAIRTOAIRHEATRECOVERY, IFCUNITARYEQUIPMENT, IFCTUBEBUNDLE, IFCTRANSFORMER, IFCSOLARDEVICE, IFCMOTORCONNECTION, IFCHUMIDIFIER, IFCHEATEXCHANGER, IFCEVAPORATOR, IFCEVAPORATIVECOOLER, IFCENGINE, IFCENERGYCONVERSIONDEVICE, IFCDISTRIBUTIONFLOWELEMENT, IFCDISTRIBUTIONELEMENT, IFCCIVILELEMENT, IFCBUILDINGELEMENTPROXY, IFCBEARING, IFCBEAM, IFCWINDOW, IFCWALLSTANDARDCASE, IFCWALL, IFCTRACKELEMENT, IFCSTAIRFLIGHT, IFCSTAIR, IFCSLAB, IFCSHADINGDEVICE, IFCROOF, IFCRAMPFLIGHT, IFCRAMP, IFCRAILING, IFCRAIL, IFCPLATE, IFCPAVEMENT, IFCNAVIGATIONELEMENT, IFCMOORINGDEVICE, IFCMEMBER, IFCKERB, IFCFOOTING, IFCREINFORCEDSOIL, IFCEARTHWORKSFILL, IFCEARTHWORKSELEMENT, IFCDOOR, IFCCAISSONFOUNDATION, IFCPILE, IFCDEEPFOUNDATION, IFCCURTAINWALL, IFCCOVERING, IFCCOURSE, IFCCOLUMN, IFCCHIMNEY, IFCBUILTELEMENT, IFCVIRTUALELEMENT, IFCTRANSPORTELEMENT, IFCVEHICLE, IFCTRANSPORTATIONDEVICE, IFCGEOSLICE, IFCGEOMODEL, IFCBOREHOLE, IFCGEOTECHNICALASSEMBLY, IFCGEOTECHNICALSTRATUM, IFCGEOTECHNICALELEMENT, IFCGEOGRAPHICELEMENT, IFCSYSTEMFURNITUREELEMENT, IFCFURNITURE, IFCFURNISHINGELEMENT, IFCSURFACEFEATURE, IFCEARTHWORKSCUT, IFCVOIDINGFEATURE, IFCOPENINGELEMENT, IFCFEATUREELEMENTSUBTRACTION, IFCPROJECTIONELEMENT, IFCFEATUREELEMENTADDITION, IFCFEATUREELEMENT, IFCDISCRETEACCESSORY, IFCBUILDINGELEMENTPART, IFCVIBRATIONISOLATOR, IFCVIBRATIONDAMPER, IFCSIGN, IFCREINFORCINGBAR, IFCTENDONCONDUIT, IFCTENDONANCHOR, IFCTENDON, IFCREINFORCINGMESH, IFCREINFORCINGELEMENT, IFCMECHANICALFASTENER, IFCIMPACTPROTECTIONDEVICE, IFCFASTENER, IFCELEMENTCOMPONENT, IFCELEMENTASSEMBLY], 1623761950: [IFCDISCRETEACCESSORY, IFCBUILDINGELEMENTPART, IFCVIBRATIONISOLATOR, IFCVIBRATIONDAMPER, IFCSIGN, IFCREINFORCINGBAR, IFCTENDONCONDUIT, IFCTENDONANCHOR, IFCTENDON, IFCREINFORCINGMESH, IFCREINFORCINGELEMENT, IFCMECHANICALFASTENER, IFCIMPACTPROTECTIONDEVICE, IFCFASTENER], 2590856083: [IFCDISCRETEACCESSORYTYPE, IFCBUILDINGELEMENTPARTTYPE, IFCVIBRATIONISOLATORTYPE, IFCVIBRATIONDAMPERTYPE, IFCSIGNTYPE, IFCREINFORCINGBARTYPE, IFCTENDONTYPE, IFCTENDONCONDUITTYPE, IFCTENDONANCHORTYPE, IFCREINFORCINGMESHTYPE, IFCREINFORCINGELEMENTTYPE, IFCMECHANICALFASTENERTYPE, IFCIMPACTPROTECTIONDEVICETYPE, IFCFASTENERTYPE], 2107101300: [IFCELECTRICMOTORTYPE, IFCELECTRICGENERATORTYPE, IFCCOOLINGTOWERTYPE, IFCCOOLEDBEAMTYPE, IFCCONDENSERTYPE, IFCCOILTYPE, IFCCHILLERTYPE, IFCBURNERTYPE, IFCBOILERTYPE, IFCAIRTOAIRHEATRECOVERYTYPE, IFCUNITARYEQUIPMENTTYPE, IFCTUBEBUNDLETYPE, IFCTRANSFORMERTYPE, IFCSOLARDEVICETYPE, IFCMOTORCONNECTIONTYPE, IFCHUMIDIFIERTYPE, IFCHEATEXCHANGERTYPE, IFCEVAPORATORTYPE, IFCEVAPORATIVECOOLERTYPE, IFCENGINETYPE], 2853485674: [IFCEXTERNALSPATIALELEMENT], 807026263: [IFCFACETEDBREPWITHVOIDS], 24185140: [IFCBUILDING, IFCBRIDGE, IFCROAD, IFCRAILWAY, IFCMARINEFACILITY], 1310830890: [IFCBRIDGEPART, IFCROADPART, IFCRAILWAYPART, IFCMARINEPART, IFCFACILITYPARTCOMMON], 2827207264: [IFCSURFACEFEATURE, IFCEARTHWORKSCUT, IFCVOIDINGFEATURE, IFCOPENINGELEMENT, IFCFEATUREELEMENTSUBTRACTION, IFCPROJECTIONELEMENT, IFCFEATUREELEMENTADDITION], 2143335405: [IFCPROJECTIONELEMENT], 1287392070: [IFCEARTHWORKSCUT, IFCVOIDINGFEATURE, IFCOPENINGELEMENT], 3907093117: [IFCELECTRICTIMECONTROLTYPE, IFCELECTRICDISTRIBUTIONBOARDTYPE, IFCDISTRIBUTIONBOARDTYPE, IFCDAMPERTYPE, IFCAIRTERMINALBOXTYPE, IFCVALVETYPE, IFCSWITCHINGDEVICETYPE, IFCPROTECTIVEDEVICETYPE, IFCFLOWMETERTYPE], 3198132628: [IFCDUCTFITTINGTYPE, IFCCABLEFITTINGTYPE, IFCCABLECARRIERFITTINGTYPE, IFCPIPEFITTINGTYPE, IFCJUNCTIONBOXTYPE], 1482959167: [IFCFANTYPE, IFCCOMPRESSORTYPE, IFCPUMPTYPE], 1834744321: [IFCDUCTSEGMENTTYPE, IFCCONVEYORSEGMENTTYPE, IFCCABLESEGMENTTYPE, IFCCABLECARRIERSEGMENTTYPE, IFCPIPESEGMENTTYPE], 1339347760: [IFCELECTRICFLOWSTORAGEDEVICETYPE, IFCTANKTYPE], 2297155007: [IFCFIRESUPPRESSIONTERMINALTYPE, IFCELECTRICAPPLIANCETYPE, IFCCOMMUNICATIONSAPPLIANCETYPE, IFCAUDIOVISUALAPPLIANCETYPE, IFCAIRTERMINALTYPE, IFCWASTETERMINALTYPE, IFCSTACKTERMINALTYPE, IFCSPACEHEATERTYPE, IFCSIGNALTYPE, IFCSANITARYTERMINALTYPE, IFCOUTLETTYPE, IFCMOBILETELECOMMUNICATIONSAPPLIANCETYPE, IFCMEDICALDEVICETYPE, IFCLIQUIDTERMINALTYPE, IFCLIGHTFIXTURETYPE, IFCLAMPTYPE], 3009222698: [IFCFILTERTYPE, IFCELECTRICFLOWTREATMENTDEVICETYPE, IFCDUCTSILENCERTYPE, IFCINTERCEPTORTYPE], 263784265: [IFCSYSTEMFURNITUREELEMENT, IFCFURNITURE], 4230923436: [IFCGEOSLICE, IFCGEOMODEL, IFCBOREHOLE, IFCGEOTECHNICALASSEMBLY, IFCGEOTECHNICALSTRATUM], 2706460486: [IFCASSET, IFCSTRUCTURALANALYSISMODEL, IFCDISTRIBUTIONCIRCUIT, IFCDISTRIBUTIONSYSTEM, IFCBUILTSYSTEM, IFCBUILDINGSYSTEM, IFCZONE, IFCSYSTEM, IFCSTRUCTURALRESULTGROUP, IFCSTRUCTURALLOADCASE, IFCSTRUCTURALLOADGROUP, IFCINVENTORY], 2176059722: [IFCALIGNMENTVERTICAL, IFCALIGNMENTSEGMENT, IFCALIGNMENTHORIZONTAL, IFCALIGNMENTCANT], 3740093272: [IFCDISTRIBUTIONPORT], 1946335990: [IFCALIGNMENT, IFCLINEARPOSITIONINGELEMENT, IFCGRID, IFCREFERENT], 3027567501: [IFCREINFORCINGBAR, IFCTENDONCONDUIT, IFCTENDONANCHOR, IFCTENDON, IFCREINFORCINGMESH], 964333572: [IFCREINFORCINGBARTYPE, IFCTENDONTYPE, IFCTENDONCONDUITTYPE, IFCTENDONANCHORTYPE, IFCREINFORCINGMESHTYPE], 682877961: [IFCSTRUCTURALPLANARACTION, IFCSTRUCTURALSURFACEACTION, IFCSTRUCTURALPOINTACTION, IFCSTRUCTURALLINEARACTION, IFCSTRUCTURALCURVEACTION], 1179482911: [IFCSTRUCTURALSURFACECONNECTION, IFCSTRUCTURALPOINTCONNECTION, IFCSTRUCTURALCURVECONNECTION], 1004757350: [IFCSTRUCTURALLINEARACTION], 214636428: [IFCSTRUCTURALCURVEMEMBERVARYING], 1252848954: [IFCSTRUCTURALLOADCASE], 3657597509: [IFCSTRUCTURALPLANARACTION], 2254336722: [IFCSTRUCTURALANALYSISMODEL, IFCDISTRIBUTIONCIRCUIT, IFCDISTRIBUTIONSYSTEM, IFCBUILTSYSTEM, IFCBUILDINGSYSTEM, IFCZONE], 1953115116: [IFCTRANSPORTELEMENT, IFCVEHICLE], 1028945134: [IFCWORKSCHEDULE, IFCWORKPLAN], 1967976161: [IFCRATIONALBSPLINECURVEWITHKNOTS, IFCBSPLINECURVEWITHKNOTS], 2461110595: [IFCRATIONALBSPLINECURVEWITHKNOTS], 1136057603: [IFCOUTERBOUNDARYCURVE], 1876633798: [IFCBUILDINGELEMENTPROXY, IFCBEARING, IFCBEAM, IFCWINDOW, IFCWALLSTANDARDCASE, IFCWALL, IFCTRACKELEMENT, IFCSTAIRFLIGHT, IFCSTAIR, IFCSLAB, IFCSHADINGDEVICE, IFCROOF, IFCRAMPFLIGHT, IFCRAMP, IFCRAILING, IFCRAIL, IFCPLATE, IFCPAVEMENT, IFCNAVIGATIONELEMENT, IFCMOORINGDEVICE, IFCMEMBER, IFCKERB, IFCFOOTING, IFCREINFORCEDSOIL, IFCEARTHWORKSFILL, IFCEARTHWORKSELEMENT, IFCDOOR, IFCCAISSONFOUNDATION, IFCPILE, IFCDEEPFOUNDATION, IFCCURTAINWALL, IFCCOVERING, IFCCOURSE, IFCCOLUMN, IFCCHIMNEY], 3426335179: [IFCCAISSONFOUNDATION, IFCPILE], 2063403501: [IFCCONTROLLERTYPE, IFCALARMTYPE, IFCACTUATORTYPE, IFCUNITARYCONTROLELEMENTTYPE, IFCSENSORTYPE, IFCPROTECTIVEDEVICETRIPPINGUNITTYPE, IFCFLOWINSTRUMENTTYPE], 1945004755: [IFCCONTROLLER, IFCALARM, IFCACTUATOR, IFCUNITARYCONTROLELEMENT, IFCSENSOR, IFCPROTECTIVEDEVICETRIPPINGUNIT, IFCFLOWINSTRUMENT, IFCDISTRIBUTIONCONTROLELEMENT, IFCDISTRIBUTIONCHAMBERELEMENT, IFCFILTER, IFCELECTRICFLOWTREATMENTDEVICE, IFCDUCTSILENCER, IFCINTERCEPTOR, IFCFLOWTREATMENTDEVICE, IFCFIRESUPPRESSIONTERMINAL, IFCELECTRICAPPLIANCE, IFCCOMMUNICATIONSAPPLIANCE, IFCAUDIOVISUALAPPLIANCE, IFCAIRTERMINAL, IFCWASTETERMINAL, IFCSTACKTERMINAL, IFCSPACEHEATER, IFCSIGNAL, IFCSANITARYTERMINAL, IFCOUTLET, IFCMOBILETELECOMMUNICATIONSAPPLIANCE, IFCMEDICALDEVICE, IFCLIQUIDTERMINAL, IFCLIGHTFIXTURE, IFCLAMP, IFCFLOWTERMINAL, IFCELECTRICFLOWSTORAGEDEVICE, IFCTANK, IFCFLOWSTORAGEDEVICE, IFCDUCTSEGMENT, IFCCONVEYORSEGMENT, IFCCABLESEGMENT, IFCCABLECARRIERSEGMENT, IFCPIPESEGMENT, IFCFLOWSEGMENT, IFCFAN, IFCCOMPRESSOR, IFCPUMP, IFCFLOWMOVINGDEVICE, IFCDUCTFITTING, IFCCABLEFITTING, IFCCABLECARRIERFITTING, IFCPIPEFITTING, IFCJUNCTIONBOX, IFCFLOWFITTING, IFCELECTRICTIMECONTROL, IFCELECTRICDISTRIBUTIONBOARD, IFCDISTRIBUTIONBOARD, IFCDAMPER, IFCAIRTERMINALBOX, IFCVALVE, IFCSWITCHINGDEVICE, IFCPROTECTIVEDEVICE, IFCFLOWMETER, IFCFLOWCONTROLLER, IFCELECTRICMOTOR, IFCELECTRICGENERATOR, IFCCOOLINGTOWER, IFCCOOLEDBEAM, IFCCONDENSER, IFCCOIL, IFCCHILLER, IFCBURNER, IFCBOILER, IFCAIRTOAIRHEATRECOVERY, IFCUNITARYEQUIPMENT, IFCTUBEBUNDLE, IFCTRANSFORMER, IFCSOLARDEVICE, IFCMOTORCONNECTION, IFCHUMIDIFIER, IFCHEATEXCHANGER, IFCEVAPORATOR, IFCEVAPORATIVECOOLER, IFCENGINE, IFCENERGYCONVERSIONDEVICE, IFCDISTRIBUTIONFLOWELEMENT], 3040386961: [IFCDISTRIBUTIONCHAMBERELEMENT, IFCFILTER, IFCELECTRICFLOWTREATMENTDEVICE, IFCDUCTSILENCER, IFCINTERCEPTOR, IFCFLOWTREATMENTDEVICE, IFCFIRESUPPRESSIONTERMINAL, IFCELECTRICAPPLIANCE, IFCCOMMUNICATIONSAPPLIANCE, IFCAUDIOVISUALAPPLIANCE, IFCAIRTERMINAL, IFCWASTETERMINAL, IFCSTACKTERMINAL, IFCSPACEHEATER, IFCSIGNAL, IFCSANITARYTERMINAL, IFCOUTLET, IFCMOBILETELECOMMUNICATIONSAPPLIANCE, IFCMEDICALDEVICE, IFCLIQUIDTERMINAL, IFCLIGHTFIXTURE, IFCLAMP, IFCFLOWTERMINAL, IFCELECTRICFLOWSTORAGEDEVICE, IFCTANK, IFCFLOWSTORAGEDEVICE, IFCDUCTSEGMENT, IFCCONVEYORSEGMENT, IFCCABLESEGMENT, IFCCABLECARRIERSEGMENT, IFCPIPESEGMENT, IFCFLOWSEGMENT, IFCFAN, IFCCOMPRESSOR, IFCPUMP, IFCFLOWMOVINGDEVICE, IFCDUCTFITTING, IFCCABLEFITTING, IFCCABLECARRIERFITTING, IFCPIPEFITTING, IFCJUNCTIONBOX, IFCFLOWFITTING, IFCELECTRICTIMECONTROL, IFCELECTRICDISTRIBUTIONBOARD, IFCDISTRIBUTIONBOARD, IFCDAMPER, IFCAIRTERMINALBOX, IFCVALVE, IFCSWITCHINGDEVICE, IFCPROTECTIVEDEVICE, IFCFLOWMETER, IFCFLOWCONTROLLER, IFCELECTRICMOTOR, IFCELECTRICGENERATOR, IFCCOOLINGTOWER, IFCCOOLEDBEAM, IFCCONDENSER, IFCCOIL, IFCCHILLER, IFCBURNER, IFCBOILER, IFCAIRTOAIRHEATRECOVERY, IFCUNITARYEQUIPMENT, IFCTUBEBUNDLE, IFCTRANSFORMER, IFCSOLARDEVICE, IFCMOTORCONNECTION, IFCHUMIDIFIER, IFCHEATEXCHANGER, IFCEVAPORATOR, IFCEVAPORATIVECOOLER, IFCENGINE, IFCENERGYCONVERSIONDEVICE], 3205830791: [IFCDISTRIBUTIONCIRCUIT], 1077100507: [IFCREINFORCEDSOIL, IFCEARTHWORKSFILL], 1658829314: [IFCELECTRICMOTOR, IFCELECTRICGENERATOR, IFCCOOLINGTOWER, IFCCOOLEDBEAM, IFCCONDENSER, IFCCOIL, IFCCHILLER, IFCBURNER, IFCBOILER, IFCAIRTOAIRHEATRECOVERY, IFCUNITARYEQUIPMENT, IFCTUBEBUNDLE, IFCTRANSFORMER, IFCSOLARDEVICE, IFCMOTORCONNECTION, IFCHUMIDIFIER, IFCHEATEXCHANGER, IFCEVAPORATOR, IFCEVAPORATIVECOOLER, IFCENGINE], 2058353004: [IFCELECTRICTIMECONTROL, IFCELECTRICDISTRIBUTIONBOARD, IFCDISTRIBUTIONBOARD, IFCDAMPER, IFCAIRTERMINALBOX, IFCVALVE, IFCSWITCHINGDEVICE, IFCPROTECTIVEDEVICE, IFCFLOWMETER], 4278956645: [IFCDUCTFITTING, IFCCABLEFITTING, IFCCABLECARRIERFITTING, IFCPIPEFITTING, IFCJUNCTIONBOX], 3132237377: [IFCFAN, IFCCOMPRESSOR, IFCPUMP], 987401354: [IFCDUCTSEGMENT, IFCCONVEYORSEGMENT, IFCCABLESEGMENT, IFCCABLECARRIERSEGMENT, IFCPIPESEGMENT], 707683696: [IFCELECTRICFLOWSTORAGEDEVICE, IFCTANK], 2223149337: [IFCFIRESUPPRESSIONTERMINAL, IFCELECTRICAPPLIANCE, IFCCOMMUNICATIONSAPPLIANCE, IFCAUDIOVISUALAPPLIANCE, IFCAIRTERMINAL, IFCWASTETERMINAL, IFCSTACKTERMINAL, IFCSPACEHEATER, IFCSIGNAL, IFCSANITARYTERMINAL, IFCOUTLET, IFCMOBILETELECOMMUNICATIONSAPPLIANCE, IFCMEDICALDEVICE, IFCLIQUIDTERMINAL, IFCLIGHTFIXTURE, IFCLAMP], 3508470533: [IFCFILTER, IFCELECTRICFLOWTREATMENTDEVICE, IFCDUCTSILENCER, IFCINTERCEPTOR], 2713699986: [IFCGEOSLICE, IFCGEOMODEL, IFCBOREHOLE], 1154579445: [IFCALIGNMENT], 2391406946: [IFCWALLSTANDARDCASE], 1062813311: [IFCCONTROLLER, IFCALARM, IFCACTUATOR, IFCUNITARYCONTROLELEMENT, IFCSENSOR, IFCPROTECTIVEDEVICETRIPPINGUNIT, IFCFLOWINSTRUMENT] }; InversePropertyDef[2] = { 3630933823: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]], 618182010: [["OfPerson", IFCPERSON, 7, true], ["OfOrganization", IFCORGANIZATION, 4, true]], 411424972: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]], 130549933: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["ApprovedObjects", IFCRELASSOCIATESAPPROVAL, 5, true], ["ApprovedResources", IFCRESOURCEAPPROVALRELATIONSHIP, 3, true], ["IsRelatedWith", IFCAPPROVALRELATIONSHIP, 3, true], ["Relates", IFCAPPROVALRELATIONSHIP, 2, true]], 1959218052: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["PropertiesForConstraint", IFCRESOURCECONSTRAINTRELATIONSHIP, 2, true]], 1466758467: [["HasCoordinateOperation", IFCCOORDINATEOPERATION, 0, true]], 602808272: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]], 3200245327: [["ExternalReferenceForResources", IFCEXTERNALREFERENCERELATIONSHIP, 2, true]], 2242383968: [["ExternalReferenceForResources", IFCEXTERNALREFERENCERELATIONSHIP, 2, true]], 1040185647: [["ExternalReferenceForResources", IFCEXTERNALREFERENCERELATIONSHIP, 2, true]], 3548104201: [["ExternalReferenceForResources", IFCEXTERNALREFERENCERELATIONSHIP, 2, true]], 852622518: [["PartOfW", IFCGRID, 9, true], ["PartOfV", IFCGRID, 8, true], ["PartOfU", IFCGRID, 7, true], ["HasIntersections", IFCVIRTUALGRIDINTERSECTION, 0, true]], 2655187982: [["LibraryInfoForObjects", IFCRELASSOCIATESLIBRARY, 5, true], ["HasLibraryReferences", IFCLIBRARYREFERENCE, 5, true]], 3452421091: [["ExternalReferenceForResources", IFCEXTERNALREFERENCERELATIONSHIP, 2, true], ["LibraryRefForObjects", IFCRELASSOCIATESLIBRARY, 5, true]], 760658860: [["AssociatedTo", IFCRELASSOCIATESMATERIAL, 5, true], ["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCMATERIALPROPERTIES, 3, true]], 248100487: [["AssociatedTo", IFCRELASSOCIATESMATERIAL, 5, true], ["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCMATERIALPROPERTIES, 3, true], ["ToMaterialLayerSet", IFCMATERIALLAYERSET, 0, false]], 3303938423: [["AssociatedTo", IFCRELASSOCIATESMATERIAL, 5, true], ["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCMATERIALPROPERTIES, 3, true]], 1847252529: [["AssociatedTo", IFCRELASSOCIATESMATERIAL, 5, true], ["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCMATERIALPROPERTIES, 3, true], ["ToMaterialLayerSet", IFCMATERIALLAYERSET, 0, false]], 2235152071: [["AssociatedTo", IFCRELASSOCIATESMATERIAL, 5, true], ["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCMATERIALPROPERTIES, 3, true], ["ToMaterialProfileSet", IFCMATERIALPROFILESET, 2, false]], 164193824: [["AssociatedTo", IFCRELASSOCIATESMATERIAL, 5, true], ["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCMATERIALPROPERTIES, 3, true]], 552965576: [["AssociatedTo", IFCRELASSOCIATESMATERIAL, 5, true], ["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCMATERIALPROPERTIES, 3, true], ["ToMaterialProfileSet", IFCMATERIALPROFILESET, 2, false]], 1507914824: [["AssociatedTo", IFCRELASSOCIATESMATERIAL, 5, true]], 3368373690: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["PropertiesForConstraint", IFCRESOURCECONSTRAINTRELATIONSHIP, 2, true]], 3701648758: [["PlacesObject", IFCPRODUCT, 5, true], ["ReferencedByPlacements", IFCOBJECTPLACEMENT, 0, true]], 2251480897: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["PropertiesForConstraint", IFCRESOURCECONSTRAINTRELATIONSHIP, 2, true]], 4251960020: [["IsRelatedBy", IFCORGANIZATIONRELATIONSHIP, 3, true], ["Relates", IFCORGANIZATIONRELATIONSHIP, 2, true], ["Engages", IFCPERSONANDORGANIZATION, 1, true]], 2077209135: [["EngagedIn", IFCPERSONANDORGANIZATION, 0, true]], 2483315170: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["PartOfComplex", IFCPHYSICALCOMPLEXQUANTITY, 2, true]], 2226359599: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["PartOfComplex", IFCPHYSICALCOMPLEXQUANTITY, 2, true]], 3355820592: [["OfPerson", IFCPERSON, 7, true], ["OfOrganization", IFCORGANIZATION, 4, true]], 3958567839: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCPROFILEPROPERTIES, 3, true]], 3843373140: [["HasCoordinateOperation", IFCCOORDINATEOPERATION, 0, true]], 986844984: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]], 3710013099: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]], 2044713172: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["PartOfComplex", IFCPHYSICALCOMPLEXQUANTITY, 2, true]], 2093928680: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["PartOfComplex", IFCPHYSICALCOMPLEXQUANTITY, 2, true]], 931644368: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["PartOfComplex", IFCPHYSICALCOMPLEXQUANTITY, 2, true]], 2691318326: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["PartOfComplex", IFCPHYSICALCOMPLEXQUANTITY, 2, true]], 3252649465: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["PartOfComplex", IFCPHYSICALCOMPLEXQUANTITY, 2, true]], 2405470396: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["PartOfComplex", IFCPHYSICALCOMPLEXQUANTITY, 2, true]], 825690147: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["PartOfComplex", IFCPHYSICALCOMPLEXQUANTITY, 2, true]], 1076942058: [["RepresentationMap", IFCREPRESENTATIONMAP, 1, true], ["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["OfProductRepresentation", IFCPRODUCTREPRESENTATION, 2, true]], 3377609919: [["RepresentationsInContext", IFCREPRESENTATION, 0, true]], 3008791417: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 1660063152: [["HasShapeAspects", IFCSHAPEASPECT, 4, true], ["MapUsage", IFCMAPPEDITEM, 0, true]], 867548509: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]], 3982875396: [["RepresentationMap", IFCREPRESENTATIONMAP, 1, true], ["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["OfProductRepresentation", IFCPRODUCTREPRESENTATION, 2, true], ["OfShapeAspect", IFCSHAPEASPECT, 0, true]], 4240577450: [["RepresentationMap", IFCREPRESENTATIONMAP, 1, true], ["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["OfProductRepresentation", IFCPRODUCTREPRESENTATION, 2, true], ["OfShapeAspect", IFCSHAPEASPECT, 0, true]], 2830218821: [["RepresentationMap", IFCREPRESENTATIONMAP, 1, true], ["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["OfProductRepresentation", IFCPRODUCTREPRESENTATION, 2, true]], 3958052878: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 3049322572: [["RepresentationMap", IFCREPRESENTATIONMAP, 1, true], ["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["OfProductRepresentation", IFCPRODUCTREPRESENTATION, 2, true]], 626085974: [["IsMappedBy", IFCTEXTURECOORDINATE, 0, true], ["UsedInStyles", IFCSURFACESTYLEWITHTEXTURES, 0, true]], 912023232: [["OfPerson", IFCPERSON, 7, true], ["OfOrganization", IFCORGANIZATION, 4, true]], 222769930: [["ToTexMap", IFCINDEXEDPOLYGONALTEXTUREMAP, 3, false]], 1010789467: [["ToTexMap", IFCINDEXEDPOLYGONALTEXTUREMAP, 3, false]], 3101149627: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]], 1377556343: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 1735638870: [["RepresentationMap", IFCREPRESENTATIONMAP, 1, true], ["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["OfProductRepresentation", IFCPRODUCTREPRESENTATION, 2, true], ["OfShapeAspect", IFCSHAPEASPECT, 0, true]], 2799835756: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 1907098498: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 3798115385: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCPROFILEPROPERTIES, 3, true]], 1310608509: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCPROFILEPROPERTIES, 3, true]], 2705031697: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCPROFILEPROPERTIES, 3, true]], 616511568: [["IsMappedBy", IFCTEXTURECOORDINATE, 0, true], ["UsedInStyles", IFCSURFACESTYLEWITHTEXTURES, 0, true]], 3150382593: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCPROFILEPROPERTIES, 3, true]], 747523909: [["ClassificationForObjects", IFCRELASSOCIATESCLASSIFICATION, 5, true], ["HasReferences", IFCCLASSIFICATIONREFERENCE, 3, true]], 647927063: [["ExternalReferenceForResources", IFCEXTERNALREFERENCERELATIONSHIP, 2, true], ["ClassificationRefForObjects", IFCRELASSOCIATESCLASSIFICATION, 5, true], ["HasReferences", IFCCLASSIFICATIONREFERENCE, 3, true]], 1485152156: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCPROFILEPROPERTIES, 3, true]], 370225590: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 3050246964: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]], 2889183280: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]], 2713554722: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]], 3632507154: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCPROFILEPROPERTIES, 3, true]], 1154170062: [["DocumentInfoForObjects", IFCRELASSOCIATESDOCUMENT, 5, true], ["HasDocumentReferences", IFCDOCUMENTREFERENCE, 4, true], ["IsPointedTo", IFCDOCUMENTINFORMATIONRELATIONSHIP, 3, true], ["IsPointer", IFCDOCUMENTINFORMATIONRELATIONSHIP, 2, true]], 3732053477: [["ExternalReferenceForResources", IFCEXTERNALREFERENCERELATIONSHIP, 2, true], ["DocumentRefForObjects", IFCRELASSOCIATESDOCUMENT, 5, true]], 3900360178: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 476780140: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 297599258: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]], 2556980723: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true], ["HasTextureMaps", IFCTEXTUREMAP, 2, true]], 1809719519: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 803316827: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 3008276851: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true], ["HasTextureMaps", IFCTEXTUREMAP, 2, true]], 3448662350: [["RepresentationsInContext", IFCREPRESENTATION, 0, true], ["HasSubContexts", IFCGEOMETRICREPRESENTATIONSUBCONTEXT, 6, true], ["HasCoordinateOperation", IFCCOORDINATEOPERATION, 0, true]], 2453401579: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 4142052618: [["RepresentationsInContext", IFCREPRESENTATION, 0, true], ["HasSubContexts", IFCGEOMETRICREPRESENTATIONSUBCONTEXT, 6, true], ["HasCoordinateOperation", IFCCOORDINATEOPERATION, 0, true]], 3590301190: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 178086475: [["PlacesObject", IFCPRODUCT, 5, true], ["ReferencedByPlacements", IFCOBJECTPLACEMENT, 0, true]], 812098782: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 3905492369: [["IsMappedBy", IFCTEXTURECOORDINATE, 0, true], ["UsedInStyles", IFCSURFACESTYLEWITHTEXTURES, 0, true]], 3741457305: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]], 1402838566: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 125510826: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 2604431987: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 4266656042: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 1520743889: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 3422422726: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 388784114: [["PlacesObject", IFCPRODUCT, 5, true], ["ReferencedByPlacements", IFCOBJECTPLACEMENT, 0, true]], 2624227202: [["PlacesObject", IFCPRODUCT, 5, true], ["ReferencedByPlacements", IFCOBJECTPLACEMENT, 0, true]], 1008929658: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 2347385850: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 1838606355: [["AssociatedTo", IFCRELASSOCIATESMATERIAL, 5, true], ["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCMATERIALPROPERTIES, 3, true], ["HasRepresentation", IFCMATERIALDEFINITIONREPRESENTATION, 3, true], ["IsRelatedWith", IFCMATERIALRELATIONSHIP, 3, true], ["RelatesTo", IFCMATERIALRELATIONSHIP, 2, true]], 3708119e3: [["AssociatedTo", IFCRELASSOCIATESMATERIAL, 5, true], ["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCMATERIALPROPERTIES, 3, true], ["ToMaterialConstituentSet", IFCMATERIALCONSTITUENTSET, 2, false]], 2852063980: [["AssociatedTo", IFCRELASSOCIATESMATERIAL, 5, true], ["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCMATERIALPROPERTIES, 3, true]], 1303795690: [["AssociatedTo", IFCRELASSOCIATESMATERIAL, 5, true]], 3079605661: [["AssociatedTo", IFCRELASSOCIATESMATERIAL, 5, true]], 3404854881: [["AssociatedTo", IFCRELASSOCIATESMATERIAL, 5, true]], 3265635763: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]], 2998442950: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCPROFILEPROPERTIES, 3, true]], 219451334: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true]], 182550632: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCPROFILEPROPERTIES, 3, true]], 2665983363: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 1029017970: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 2529465313: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCPROFILEPROPERTIES, 3, true]], 2519244187: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 3021840470: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["PartOfComplex", IFCPHYSICALCOMPLEXQUANTITY, 2, true]], 597895409: [["IsMappedBy", IFCTEXTURECOORDINATE, 0, true], ["UsedInStyles", IFCSURFACESTYLEWITHTEXTURES, 0, true]], 2004835150: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 1663979128: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 2067069095: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 2165702409: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 4022376103: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 1423911732: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 2924175390: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 2775532180: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 3778827333: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]], 673634403: [["ShapeOfProduct", IFCPRODUCT, 6, true], ["HasShapeAspects", IFCSHAPEASPECT, 4, true]], 2802850158: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]], 2598011224: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["PartOfPset", IFCPROPERTYSET, 4, true], ["PropertyForDependance", IFCPROPERTYDEPENDENCYRELATIONSHIP, 2, true], ["PropertyDependsOn", IFCPROPERTYDEPENDENCYRELATIONSHIP, 3, true], ["PartOfComplex", IFCCOMPLEXPROPERTY, 3, true], ["HasConstraints", IFCRESOURCECONSTRAINTRELATIONSHIP, 3, true], ["HasApprovals", IFCRESOURCEAPPROVALRELATIONSHIP, 2, true]], 1680319473: [["HasContext", IFCRELDECLARES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true]], 3357820518: [["HasContext", IFCRELDECLARES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["DefinesType", IFCTYPEOBJECT, 5, true], ["IsDefinedBy", IFCRELDEFINESBYTEMPLATE, 4, true], ["DefinesOccurrence", IFCRELDEFINESBYPROPERTIES, 5, true]], 1482703590: [["HasContext", IFCRELDECLARES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true]], 2090586900: [["HasContext", IFCRELDECLARES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["DefinesType", IFCTYPEOBJECT, 5, true], ["IsDefinedBy", IFCRELDEFINESBYTEMPLATE, 4, true], ["DefinesOccurrence", IFCRELDEFINESBYPROPERTIES, 5, true]], 3615266464: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCPROFILEPROPERTIES, 3, true]], 3413951693: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]], 1580146022: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]], 2778083089: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCPROFILEPROPERTIES, 3, true]], 2042790032: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]], 4165799628: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]], 1509187699: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 823603102: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true], ["UsingCurves", IFCCOMPOSITECURVE, 0, true]], 4124623270: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 3692461612: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["PartOfPset", IFCPROPERTYSET, 4, true], ["PropertyForDependance", IFCPROPERTYDEPENDENCYRELATIONSHIP, 2, true], ["PropertyDependsOn", IFCPROPERTYDEPENDENCYRELATIONSHIP, 3, true], ["PartOfComplex", IFCCOMPLEXPROPERTY, 3, true], ["HasConstraints", IFCRESOURCECONSTRAINTRELATIONSHIP, 3, true], ["HasApprovals", IFCRESOURCEAPPROVALRELATIONSHIP, 2, true]], 723233188: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 2233826070: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 2513912981: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 2247615214: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 1260650574: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 1096409881: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 230924584: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 3071757647: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCPROFILEPROPERTIES, 3, true]], 901063453: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 4282788508: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 3124975700: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 2715220739: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCPROFILEPROPERTIES, 3, true]], 1628702193: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true]], 3736923433: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["OperatesOn", IFCRELASSIGNSTOPROCESS, 6, true]], 2347495698: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 3698973494: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ResourceOf", IFCRELASSIGNSTORESOURCE, 6, true]], 427810014: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCPROFILEPROPERTIES, 3, true]], 1417489154: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 2759199220: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 2543172580: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCPROFILEPROPERTIES, 3, true]], 3406155212: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true], ["HasTextureMaps", IFCTEXTUREMAP, 2, true]], 669184980: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 3207858831: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCPROFILEPROPERTIES, 3, true]], 4261334040: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 3125803723: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 2740243338: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 3425423356: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 2736907675: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 4182860854: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 2581212453: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 2713105998: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 2898889636: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCPROFILEPROPERTIES, 3, true]], 1123145078: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 574549367: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 1675464909: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 2059837836: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 59481748: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 3749851601: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 3486308946: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 3331915920: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 1416205885: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 1383045692: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCPROFILEPROPERTIES, 3, true]], 2205249479: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 2542286263: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["PartOfPset", IFCPROPERTYSET, 4, true], ["PropertyForDependance", IFCPROPERTYDEPENDENCYRELATIONSHIP, 2, true], ["PropertyDependsOn", IFCPROPERTYDEPENDENCYRELATIONSHIP, 3, true], ["PartOfComplex", IFCCOMPLEXPROPERTY, 3, true], ["HasConstraints", IFCRESOURCECONSTRAINTRELATIONSHIP, 3, true], ["HasApprovals", IFCRESOURCEAPPROVALRELATIONSHIP, 2, true]], 2485617015: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true], ["UsingCurves", IFCCOMPOSITECURVE, 0, true]], 2574617495: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ResourceOf", IFCRELASSIGNSTORESOURCE, 6, true]], 3419103109: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["Declares", IFCRELDECLARES, 4, true]], 1815067380: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ResourceOf", IFCRELASSIGNSTORESOURCE, 6, true]], 2506170314: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 2147822146: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 2601014836: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 2827736869: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 2629017746: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 4212018352: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true], ["UsingCurves", IFCCOMPOSITECURVE, 0, true]], 32440307: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 593015953: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 1472233963: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 1883228015: [["HasContext", IFCRELDECLARES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["DefinesType", IFCTYPEOBJECT, 5, true], ["IsDefinedBy", IFCRELDEFINESBYTEMPLATE, 4, true], ["DefinesOccurrence", IFCRELDEFINESBYPROPERTIES, 5, true]], 339256511: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 2777663545: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 2835456948: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCPROFILEPROPERTIES, 3, true]], 4024345920: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["OperatesOn", IFCRELASSIGNSTOPROCESS, 6, true]], 477187591: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 2804161546: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 2047409740: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 374418227: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 315944413: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 2652556860: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 4238390223: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 1268542332: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 4095422895: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 987898635: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 1484403080: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCPROFILEPROPERTIES, 3, true]], 178912537: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true], ["ToFaceSet", IFCPOLYGONALFACESET, 2, true], ["HasTexCoords", IFCTEXTURECOORDINATEINDICES, 1, true]], 2294589976: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true], ["ToFaceSet", IFCPOLYGONALFACESET, 2, true], ["HasTexCoords", IFCTEXTURECOORDINATEINDICES, 1, true]], 572779678: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCPROFILEPROPERTIES, 3, true]], 428585644: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ResourceOf", IFCRELASSIGNSTORESOURCE, 6, true]], 1281925730: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 1425443689: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 3888040117: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true]], 590820931: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 3388369263: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 3505215534: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 2485787929: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 1682466193: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 603570806: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 220341763: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 3381221214: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 3967405729: [["HasContext", IFCRELDECLARES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["DefinesType", IFCTYPEOBJECT, 5, true], ["IsDefinedBy", IFCRELDEFINESBYTEMPLATE, 4, true], ["DefinesOccurrence", IFCRELDEFINESBYPROPERTIES, 5, true]], 569719735: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["OperatesOn", IFCRELASSIGNSTOPROCESS, 6, true]], 2945172077: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["IsPredecessorTo", IFCRELSEQUENCE, 4, true], ["IsSuccessorFrom", IFCRELSEQUENCE, 5, true], ["OperatesOn", IFCRELASSIGNSTOPROCESS, 6, true]], 4208778838: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true]], 103090709: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["Declares", IFCRELDECLARES, 4, true]], 653396225: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["Declares", IFCRELDECLARES, 4, true]], 871118103: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["PartOfPset", IFCPROPERTYSET, 4, true], ["PropertyForDependance", IFCPROPERTYDEPENDENCYRELATIONSHIP, 2, true], ["PropertyDependsOn", IFCPROPERTYDEPENDENCYRELATIONSHIP, 3, true], ["PartOfComplex", IFCCOMPLEXPROPERTY, 3, true], ["HasConstraints", IFCRESOURCECONSTRAINTRELATIONSHIP, 3, true], ["HasApprovals", IFCRESOURCEAPPROVALRELATIONSHIP, 2, true]], 4166981789: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["PartOfPset", IFCPROPERTYSET, 4, true], ["PropertyForDependance", IFCPROPERTYDEPENDENCYRELATIONSHIP, 2, true], ["PropertyDependsOn", IFCPROPERTYDEPENDENCYRELATIONSHIP, 3, true], ["PartOfComplex", IFCCOMPLEXPROPERTY, 3, true], ["HasConstraints", IFCRESOURCECONSTRAINTRELATIONSHIP, 3, true], ["HasApprovals", IFCRESOURCEAPPROVALRELATIONSHIP, 2, true]], 2752243245: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["PartOfPset", IFCPROPERTYSET, 4, true], ["PropertyForDependance", IFCPROPERTYDEPENDENCYRELATIONSHIP, 2, true], ["PropertyDependsOn", IFCPROPERTYDEPENDENCYRELATIONSHIP, 3, true], ["PartOfComplex", IFCCOMPLEXPROPERTY, 3, true], ["HasConstraints", IFCRESOURCECONSTRAINTRELATIONSHIP, 3, true], ["HasApprovals", IFCRESOURCEAPPROVALRELATIONSHIP, 2, true]], 941946838: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["PartOfPset", IFCPROPERTYSET, 4, true], ["PropertyForDependance", IFCPROPERTYDEPENDENCYRELATIONSHIP, 2, true], ["PropertyDependsOn", IFCPROPERTYDEPENDENCYRELATIONSHIP, 3, true], ["PartOfComplex", IFCCOMPLEXPROPERTY, 3, true], ["HasConstraints", IFCRESOURCECONSTRAINTRELATIONSHIP, 3, true], ["HasApprovals", IFCRESOURCEAPPROVALRELATIONSHIP, 2, true]], 1451395588: [["HasContext", IFCRELDECLARES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["DefinesType", IFCTYPEOBJECT, 5, true], ["IsDefinedBy", IFCRELDEFINESBYTEMPLATE, 4, true], ["DefinesOccurrence", IFCRELDEFINESBYPROPERTIES, 5, true]], 492091185: [["HasContext", IFCRELDECLARES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Defines", IFCRELDEFINESBYTEMPLATE, 5, true]], 3650150729: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["PartOfPset", IFCPROPERTYSET, 4, true], ["PropertyForDependance", IFCPROPERTYDEPENDENCYRELATIONSHIP, 2, true], ["PropertyDependsOn", IFCPROPERTYDEPENDENCYRELATIONSHIP, 3, true], ["PartOfComplex", IFCCOMPLEXPROPERTY, 3, true], ["HasConstraints", IFCRESOURCECONSTRAINTRELATIONSHIP, 3, true], ["HasApprovals", IFCRESOURCEAPPROVALRELATIONSHIP, 2, true]], 110355661: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["PartOfPset", IFCPROPERTYSET, 4, true], ["PropertyForDependance", IFCPROPERTYDEPENDENCYRELATIONSHIP, 2, true], ["PropertyDependsOn", IFCPROPERTYDEPENDENCYRELATIONSHIP, 3, true], ["PartOfComplex", IFCCOMPLEXPROPERTY, 3, true], ["HasConstraints", IFCRESOURCECONSTRAINTRELATIONSHIP, 3, true], ["HasApprovals", IFCRESOURCEAPPROVALRELATIONSHIP, 2, true]], 3521284610: [["HasContext", IFCRELDECLARES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["PartOfComplexTemplate", IFCCOMPLEXPROPERTYTEMPLATE, 6, true], ["PartOfPsetTemplate", IFCPROPERTYSETTEMPLATE, 6, true]], 2770003689: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCPROFILEPROPERTIES, 3, true]], 2798486643: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 3454111270: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 3765753017: [["HasContext", IFCRELDECLARES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["DefinesType", IFCTYPEOBJECT, 5, true], ["IsDefinedBy", IFCRELDEFINESBYTEMPLATE, 4, true], ["DefinesOccurrence", IFCRELDEFINESBYPROPERTIES, 5, true]], 3523091289: [["InnerBoundaries", IFCRELSPACEBOUNDARY1STLEVEL, 9, true]], 1521410863: [["InnerBoundaries", IFCRELSPACEBOUNDARY1STLEVEL, 9, true], ["Corresponds", IFCRELSPACEBOUNDARY2NDLEVEL, 10, true]], 816062949: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true], ["UsingCurves", IFCCOMPOSITECURVE, 0, true]], 2914609552: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ResourceOf", IFCRELASSIGNSTORESOURCE, 6, true]], 1856042241: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 3243963512: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 4158566097: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 3626867408: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 1862484736: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 1290935644: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 1356537516: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 3663146110: [["HasContext", IFCRELDECLARES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["PartOfComplexTemplate", IFCCOMPLEXPROPERTYTEMPLATE, 6, true], ["PartOfPsetTemplate", IFCPROPERTYSETTEMPLATE, 6, true]], 1412071761: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["ContainsElements", IFCRELCONTAINEDINSPATIALSTRUCTURE, 5, true], ["ServicedBySystems", IFCRELSERVICESBUILDINGS, 5, true], ["ReferencesElements", IFCRELREFERENCEDINSPATIALSTRUCTURE, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true]], 710998568: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 2706606064: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["ContainsElements", IFCRELCONTAINEDINSPATIALSTRUCTURE, 5, true], ["ServicedBySystems", IFCRELSERVICESBUILDINGS, 5, true], ["ReferencesElements", IFCRELREFERENCEDINSPATIALSTRUCTURE, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true]], 3893378262: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 463610769: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["ContainsElements", IFCRELCONTAINEDINSPATIALSTRUCTURE, 5, true], ["ServicedBySystems", IFCRELSERVICESBUILDINGS, 5, true], ["ReferencesElements", IFCRELREFERENCEDINSPATIALSTRUCTURE, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true]], 2481509218: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 451544542: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 4015995234: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 2735484536: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 3544373492: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["AssignedToStructuralItem", IFCRELCONNECTSSTRUCTURALACTIVITY, 5, true]], 3136571912: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["AssignedStructuralActivity", IFCRELCONNECTSSTRUCTURALACTIVITY, 4, true]], 530289379: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["AssignedStructuralActivity", IFCRELCONNECTSSTRUCTURALACTIVITY, 4, true], ["ConnectedBy", IFCRELCONNECTSSTRUCTURALMEMBER, 4, true]], 3689010777: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["AssignedToStructuralItem", IFCRELCONNECTSSTRUCTURALACTIVITY, 5, true]], 3979015343: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["AssignedStructuralActivity", IFCRELCONNECTSSTRUCTURALACTIVITY, 4, true], ["ConnectedBy", IFCRELCONNECTSSTRUCTURALMEMBER, 4, true]], 2218152070: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["AssignedStructuralActivity", IFCRELCONNECTSSTRUCTURALACTIVITY, 4, true], ["ConnectedBy", IFCRELCONNECTSSTRUCTURALMEMBER, 4, true]], 603775116: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["AssignedToStructuralItem", IFCRELCONNECTSSTRUCTURALACTIVITY, 5, true]], 4095615324: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ResourceOf", IFCRELASSIGNSTORESOURCE, 6, true]], 699246055: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 2028607225: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 2809605785: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 4124788165: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 1580310250: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 3473067441: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["IsPredecessorTo", IFCRELSEQUENCE, 4, true], ["IsSuccessorFrom", IFCRELSEQUENCE, 5, true], ["OperatesOn", IFCRELASSIGNSTOPROCESS, 6, true]], 3206491090: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["OperatesOn", IFCRELASSIGNSTOPROCESS, 6, true]], 2387106220: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true], ["HasColours", IFCINDEXEDCOLOURMAP, 0, true], ["HasTextures", IFCINDEXEDTEXTUREMAP, 1, true]], 782932809: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 1935646853: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 3665877780: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 2916149573: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true], ["HasColours", IFCINDEXEDCOLOURMAP, 0, true], ["HasTextures", IFCINDEXEDTEXTUREMAP, 1, true]], 1229763772: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true], ["HasColours", IFCINDEXEDCOLOURMAP, 0, true], ["HasTextures", IFCINDEXEDTEXTUREMAP, 1, true]], 3651464721: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 336235671: [["HasContext", IFCRELDECLARES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["DefinesType", IFCTYPEOBJECT, 5, true], ["IsDefinedBy", IFCRELDEFINESBYTEMPLATE, 4, true], ["DefinesOccurrence", IFCRELDEFINESBYPROPERTIES, 5, true]], 512836454: [["HasContext", IFCRELDECLARES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["DefinesType", IFCTYPEOBJECT, 5, true], ["IsDefinedBy", IFCRELDEFINESBYTEMPLATE, 4, true], ["DefinesOccurrence", IFCRELDEFINESBYPROPERTIES, 5, true]], 2296667514: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["IsActingUpon", IFCRELASSIGNSTOACTOR, 6, true]], 1635779807: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 2603310189: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 1674181508: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]], 2887950389: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 167062518: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 1334484129: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 3649129432: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 1260505505: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 3124254112: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["ContainsElements", IFCRELCONTAINEDINSPATIALSTRUCTURE, 5, true], ["ServicedBySystems", IFCRELSERVICESBUILDINGS, 5, true], ["ReferencesElements", IFCRELREFERENCEDINSPATIALSTRUCTURE, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true]], 1626504194: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 2197970202: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 2937912522: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCPROFILEPROPERTIES, 3, true]], 3893394355: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 3497074424: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 300633059: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 3875453745: [["HasContext", IFCRELDECLARES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["PartOfComplexTemplate", IFCCOMPLEXPROPERTYTEMPLATE, 6, true], ["PartOfPsetTemplate", IFCPROPERTYSETTEMPLATE, 6, true]], 3732776249: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 15328376: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 2510884976: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 2185764099: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ResourceOf", IFCRELASSIGNSTORESOURCE, 6, true]], 4105962743: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ResourceOf", IFCRELASSIGNSTORESOURCE, 6, true]], 1525564444: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ResourceOf", IFCRELASSIGNSTORESOURCE, 6, true]], 2559216714: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ResourceOf", IFCRELASSIGNSTORESOURCE, 6, true]], 3293443760: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["Controls", IFCRELASSIGNSTOCONTROL, 6, true]], 2000195564: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 3895139033: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["Controls", IFCRELASSIGNSTOCONTROL, 6, true]], 1419761937: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["Controls", IFCRELASSIGNSTOCONTROL, 6, true]], 4189326743: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 1916426348: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 3295246426: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ResourceOf", IFCRELASSIGNSTORESOURCE, 6, true]], 1457835157: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 1213902940: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 1306400036: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 4234616927: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 3256556792: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 3849074793: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 2963535650: [["HasContext", IFCRELDECLARES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["DefinesType", IFCTYPEOBJECT, 5, true], ["IsDefinedBy", IFCRELDEFINESBYTEMPLATE, 4, true], ["DefinesOccurrence", IFCRELDEFINESBYPROPERTIES, 5, true]], 1714330368: [["HasContext", IFCRELDECLARES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["DefinesType", IFCTYPEOBJECT, 5, true], ["IsDefinedBy", IFCRELDEFINESBYTEMPLATE, 4, true], ["DefinesOccurrence", IFCRELDEFINESBYPROPERTIES, 5, true]], 2323601079: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 1758889154: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]], 4123344466: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]], 2397081782: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 1623761950: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]], 2590856083: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 1704287377: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 2107101300: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 132023988: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 3174744832: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 3390157468: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 4148101412: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["IsPredecessorTo", IFCRELSEQUENCE, 4, true], ["IsSuccessorFrom", IFCRELSEQUENCE, 5, true], ["OperatesOn", IFCRELASSIGNSTOPROCESS, 6, true]], 2853485674: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["ContainsElements", IFCRELCONTAINEDINSPATIALSTRUCTURE, 5, true], ["ServicedBySystems", IFCRELSERVICESBUILDINGS, 5, true], ["ReferencesElements", IFCRELREFERENCEDINSPATIALSTRUCTURE, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true]], 807026263: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 3737207727: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 24185140: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["ContainsElements", IFCRELCONTAINEDINSPATIALSTRUCTURE, 5, true], ["ServicedBySystems", IFCRELSERVICESBUILDINGS, 5, true], ["ReferencesElements", IFCRELREFERENCEDINSPATIALSTRUCTURE, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true]], 1310830890: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["ContainsElements", IFCRELCONTAINEDINSPATIALSTRUCTURE, 5, true], ["ServicedBySystems", IFCRELSERVICESBUILDINGS, 5, true], ["ReferencesElements", IFCRELREFERENCEDINSPATIALSTRUCTURE, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true]], 4228831410: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["ContainsElements", IFCRELCONTAINEDINSPATIALSTRUCTURE, 5, true], ["ServicedBySystems", IFCRELSERVICESBUILDINGS, 5, true], ["ReferencesElements", IFCRELREFERENCEDINSPATIALSTRUCTURE, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true]], 647756555: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]], 2489546625: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 2827207264: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]], 2143335405: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["ProjectsElements", IFCRELPROJECTSELEMENT, 5, false]], 1287392070: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["VoidsElements", IFCRELVOIDSELEMENT, 5, false]], 3907093117: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 3198132628: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 3815607619: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 1482959167: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 1834744321: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 1339347760: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 2297155007: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 3009222698: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 1893162501: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 263784265: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]], 1509553395: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]], 3493046030: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]], 4230923436: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]], 1594536857: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]], 2898700619: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 2706460486: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["IsGroupedBy", IFCRELASSIGNSTOGROUP, 6, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true]], 1251058090: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 1806887404: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 2568555532: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]], 3948183225: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 2571569899: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 3946677679: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 3113134337: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 2391368822: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["IsGroupedBy", IFCRELASSIGNSTOGROUP, 6, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true]], 4288270099: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 679976338: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 3827777499: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ResourceOf", IFCRELASSIGNSTORESOURCE, 6, true]], 1051575348: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 1161773419: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 2176059722: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true]], 1770583370: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 525669439: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["ContainsElements", IFCRELCONTAINEDINSPATIALSTRUCTURE, 5, true], ["ServicedBySystems", IFCRELSERVICESBUILDINGS, 5, true], ["ReferencesElements", IFCRELREFERENCEDINSPATIALSTRUCTURE, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true]], 976884017: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["ContainsElements", IFCRELCONTAINEDINSPATIALSTRUCTURE, 5, true], ["ServicedBySystems", IFCRELSERVICESBUILDINGS, 5, true], ["ReferencesElements", IFCRELREFERENCEDINSPATIALSTRUCTURE, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true]], 377706215: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]], 2108223431: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 1114901282: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 3181161470: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 1950438474: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 710110818: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 977012517: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 506776471: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 4143007308: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["IsActingUpon", IFCRELASSIGNSTOACTOR, 6, true]], 3588315303: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["VoidsElements", IFCRELVOIDSELEMENT, 5, false], ["HasFillings", IFCRELFILLSELEMENT, 4, true]], 2837617999: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 514975943: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 2382730787: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["Controls", IFCRELASSIGNSTOCONTROL, 6, true]], 3566463478: [["HasContext", IFCRELDECLARES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["DefinesType", IFCTYPEOBJECT, 5, true], ["IsDefinedBy", IFCRELDEFINESBYTEMPLATE, 4, true], ["DefinesOccurrence", IFCRELDEFINESBYPROPERTIES, 5, true]], 3327091369: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["Controls", IFCRELASSIGNSTOCONTROL, 6, true]], 1158309216: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 804291784: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 4231323485: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 4017108033: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 2839578677: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true], ["HasColours", IFCINDEXEDCOLOURMAP, 0, true], ["HasTextures", IFCINDEXEDTEXTUREMAP, 1, true]], 3724593414: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 3740093272: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["ContainedIn", IFCRELCONNECTSPORTTOELEMENT, 4, true], ["ConnectedFrom", IFCRELCONNECTSPORTS, 5, true], ["ConnectedTo", IFCRELCONNECTSPORTS, 4, true]], 1946335990: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["Positions", IFCRELPOSITIONS, 4, true]], 2744685151: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["IsPredecessorTo", IFCRELSEQUENCE, 4, true], ["IsSuccessorFrom", IFCRELSEQUENCE, 5, true], ["OperatesOn", IFCRELASSIGNSTOPROCESS, 6, true]], 2904328755: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["Controls", IFCRELASSIGNSTOCONTROL, 6, true]], 3651124850: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["ProjectsElements", IFCRELPROJECTSELEMENT, 5, false]], 1842657554: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 2250791053: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 1763565496: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 2893384427: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 3992365140: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["ContainsElements", IFCRELCONTAINEDINSPATIALSTRUCTURE, 5, true], ["ServicedBySystems", IFCRELSERVICESBUILDINGS, 5, true], ["ReferencesElements", IFCRELREFERENCEDINSPATIALSTRUCTURE, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true]], 1891881377: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["ContainsElements", IFCRELCONTAINEDINSPATIALSTRUCTURE, 5, true], ["ServicedBySystems", IFCRELSERVICESBUILDINGS, 5, true], ["ReferencesElements", IFCRELREFERENCEDINSPATIALSTRUCTURE, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true]], 2324767716: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 1469900589: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 683857671: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 4021432810: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["Positions", IFCRELPOSITIONS, 4, true]], 3027567501: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]], 964333572: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 2320036040: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]], 2310774935: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 146592293: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["ContainsElements", IFCRELCONTAINEDINSPATIALSTRUCTURE, 5, true], ["ServicedBySystems", IFCRELSERVICESBUILDINGS, 5, true], ["ReferencesElements", IFCRELREFERENCEDINSPATIALSTRUCTURE, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true]], 550521510: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["ContainsElements", IFCRELCONTAINEDINSPATIALSTRUCTURE, 5, true], ["ServicedBySystems", IFCRELSERVICESBUILDINGS, 5, true], ["ReferencesElements", IFCRELREFERENCEDINSPATIALSTRUCTURE, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true]], 2781568857: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 1768891740: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 2157484638: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 3649235739: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 544395925: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 1027922057: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 4074543187: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 33720170: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]], 3599934289: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 1894708472: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 42703149: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 4097777520: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["ContainsElements", IFCRELCONTAINEDINSPATIALSTRUCTURE, 5, true], ["ServicedBySystems", IFCRELSERVICESBUILDINGS, 5, true], ["ReferencesElements", IFCRELREFERENCEDINSPATIALSTRUCTURE, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true]], 2533589738: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 1072016465: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 3856911033: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["ContainsElements", IFCRELCONTAINEDINSPATIALSTRUCTURE, 5, true], ["ServicedBySystems", IFCRELSERVICESBUILDINGS, 5, true], ["ReferencesElements", IFCRELREFERENCEDINSPATIALSTRUCTURE, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasCoverings", IFCRELCOVERSSPACES, 4, true], ["BoundedBy", IFCRELSPACEBOUNDARY, 4, true]], 1305183839: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 3812236995: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 3112655638: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 1039846685: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 338393293: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 682877961: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["AssignedToStructuralItem", IFCRELCONNECTSSTRUCTURALACTIVITY, 5, true]], 1179482911: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["AssignedStructuralActivity", IFCRELCONNECTSSTRUCTURALACTIVITY, 4, true], ["ConnectsStructuralMembers", IFCRELCONNECTSSTRUCTURALMEMBER, 5, true]], 1004757350: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["AssignedToStructuralItem", IFCRELCONNECTSSTRUCTURALACTIVITY, 5, true]], 4243806635: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["AssignedStructuralActivity", IFCRELCONNECTSSTRUCTURALACTIVITY, 4, true], ["ConnectsStructuralMembers", IFCRELCONNECTSSTRUCTURALMEMBER, 5, true]], 214636428: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["AssignedStructuralActivity", IFCRELCONNECTSSTRUCTURALACTIVITY, 4, true], ["ConnectedBy", IFCRELCONNECTSSTRUCTURALMEMBER, 4, true]], 2445595289: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["AssignedStructuralActivity", IFCRELCONNECTSSTRUCTURALACTIVITY, 4, true], ["ConnectedBy", IFCRELCONNECTSSTRUCTURALMEMBER, 4, true]], 2757150158: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["AssignedToStructuralItem", IFCRELCONNECTSSTRUCTURALACTIVITY, 5, true]], 1807405624: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["AssignedToStructuralItem", IFCRELCONNECTSSTRUCTURALACTIVITY, 5, true]], 1252848954: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["IsGroupedBy", IFCRELASSIGNSTOGROUP, 6, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["SourceOfResultGroup", IFCSTRUCTURALRESULTGROUP, 6, true], ["LoadGroupFor", IFCSTRUCTURALANALYSISMODEL, 7, true]], 2082059205: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["AssignedToStructuralItem", IFCRELCONNECTSSTRUCTURALACTIVITY, 5, true]], 734778138: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["AssignedStructuralActivity", IFCRELCONNECTSSTRUCTURALACTIVITY, 4, true], ["ConnectsStructuralMembers", IFCRELCONNECTSSTRUCTURALMEMBER, 5, true]], 1235345126: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["AssignedToStructuralItem", IFCRELCONNECTSSTRUCTURALACTIVITY, 5, true]], 2986769608: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["IsGroupedBy", IFCRELASSIGNSTOGROUP, 6, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["ResultGroupFor", IFCSTRUCTURALANALYSISMODEL, 8, true]], 3657597509: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["AssignedToStructuralItem", IFCRELCONNECTSSTRUCTURALACTIVITY, 5, true]], 1975003073: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["AssignedStructuralActivity", IFCRELCONNECTSSTRUCTURALACTIVITY, 4, true], ["ConnectsStructuralMembers", IFCRELCONNECTSSTRUCTURALMEMBER, 5, true]], 148013059: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ResourceOf", IFCRELASSIGNSTORESOURCE, 6, true]], 3101698114: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["AdheresToElement", IFCRELADHERESTOELEMENT, 5, false]], 2315554128: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 2254336722: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["IsGroupedBy", IFCRELASSIGNSTOGROUP, 6, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["ServicesBuildings", IFCRELSERVICESBUILDINGS, 4, true], ["ServicesFacilities", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true]], 413509423: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]], 5716631: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 3824725483: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]], 2347447852: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]], 3081323446: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 3663046924: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]], 2281632017: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 2415094496: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 618700268: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 1692211062: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 2097647324: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 1953115116: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]], 3593883385: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 1600972822: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 1911125066: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 728799441: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 840318589: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]], 1530820697: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]], 3956297820: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 2391383451: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]], 3313531582: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 2769231204: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]], 926996030: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["VoidsElements", IFCRELVOIDSELEMENT, 5, false]], 1898987631: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 1133259667: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 4009809668: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 4088093105: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["Controls", IFCRELASSIGNSTOCONTROL, 6, true]], 1028945134: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["Controls", IFCRELASSIGNSTOCONTROL, 6, true]], 4218914973: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["Controls", IFCRELASSIGNSTOCONTROL, 6, true]], 3342526732: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["Controls", IFCRELASSIGNSTOCONTROL, 6, true]], 1033361043: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["IsGroupedBy", IFCRELASSIGNSTOGROUP, 6, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["ServicesBuildings", IFCRELSERVICESBUILDINGS, 4, true], ["ServicesFacilities", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true]], 3821786052: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["Controls", IFCRELASSIGNSTOCONTROL, 6, true]], 1411407467: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 3352864051: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 1871374353: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 4266260250: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true]], 1545765605: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true]], 317615605: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true]], 1662888072: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true]], 3460190687: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["IsGroupedBy", IFCRELASSIGNSTOGROUP, 6, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true]], 1532957894: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 1967976161: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 2461110595: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 819618141: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 3649138523: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 231477066: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 1136057603: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 644574406: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["ContainsElements", IFCRELCONTAINEDINSPATIALSTRUCTURE, 5, true], ["ServicedBySystems", IFCRELSERVICESBUILDINGS, 5, true], ["ReferencesElements", IFCRELREFERENCEDINSPATIALSTRUCTURE, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true]], 963979645: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["ContainsElements", IFCRELCONTAINEDINSPATIALSTRUCTURE, 5, true], ["ServicedBySystems", IFCRELSERVICESBUILDINGS, 5, true], ["ReferencesElements", IFCRELREFERENCEDINSPATIALSTRUCTURE, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true]], 4031249490: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["ContainsElements", IFCRELCONTAINEDINSPATIALSTRUCTURE, 5, true], ["ServicedBySystems", IFCRELSERVICESBUILDINGS, 5, true], ["ReferencesElements", IFCRELREFERENCEDINSPATIALSTRUCTURE, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true]], 2979338954: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]], 39481116: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 1909888760: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 1177604601: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["IsGroupedBy", IFCRELASSIGNSTOGROUP, 6, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["ServicesBuildings", IFCRELSERVICESBUILDINGS, 4, true], ["ServicesFacilities", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true]], 1876633798: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]], 3862327254: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["IsGroupedBy", IFCRELASSIGNSTOGROUP, 6, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["ServicesBuildings", IFCRELSERVICESBUILDINGS, 4, true], ["ServicesFacilities", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true]], 2188180465: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 395041908: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 3293546465: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 2674252688: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 1285652485: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 3203706013: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 2951183804: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 3296154744: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]], 2611217952: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 1677625105: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]], 2301859152: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 843113511: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]], 400855858: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 3850581409: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 2816379211: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 3898045240: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ResourceOf", IFCRELASSIGNSTORESOURCE, 6, true]], 1060000209: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ResourceOf", IFCRELASSIGNSTORESOURCE, 6, true]], 488727124: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ResourceOf", IFCRELASSIGNSTORESOURCE, 6, true]], 2940368186: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 335055490: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 2954562838: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 1502416096: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]], 1973544240: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["CoversSpaces", IFCRELCOVERSSPACES, 5, true], ["CoversElements", IFCRELCOVERSBLDGELEMENTS, 5, true]], 3495092785: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]], 3961806047: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 3426335179: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]], 1335981549: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]], 2635815018: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 479945903: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 1599208980: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 2063403501: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 1945004755: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true]], 3040386961: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], 3041715199: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["ContainedIn", IFCRELCONNECTSPORTTOELEMENT, 4, true], ["ConnectedFrom", IFCRELCONNECTSPORTS, 5, true], ["ConnectedTo", IFCRELCONNECTSPORTS, 4, true]], 3205830791: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["IsGroupedBy", IFCRELASSIGNSTOGROUP, 6, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["ServicesBuildings", IFCRELSERVICESBUILDINGS, 4, true], ["ServicesFacilities", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true]], 395920057: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]], 869906466: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 3760055223: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 2030761528: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 3071239417: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["VoidsElements", IFCRELVOIDSELEMENT, 5, false]], 1077100507: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]], 3376911765: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]], 663422040: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 2417008758: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 3277789161: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 2142170206: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 1534661035: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 1217240411: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 712377611: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 1658829314: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], 2814081492: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], 3747195512: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], 484807127: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], 1209101575: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["ContainsElements", IFCRELCONTAINEDINSPATIALSTRUCTURE, 5, true], ["ServicedBySystems", IFCRELSERVICESBUILDINGS, 5, true], ["ReferencesElements", IFCRELREFERENCEDINSPATIALSTRUCTURE, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["BoundedBy", IFCRELSPACEBOUNDARY, 4, true]], 346874300: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 1810631287: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 4222183408: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 2058353004: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], 4278956645: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], 4037862832: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 2188021234: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], 3132237377: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], 987401354: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], 707683696: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], 2223149337: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], 3508470533: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], 900683007: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]], 2713699986: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]], 3009204131: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["Positions", IFCRELPOSITIONS, 4, true]], 3319311131: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], 2068733104: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], 4175244083: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], 2176052936: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], 2696325953: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]], 76236018: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], 629592764: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], 1154579445: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["Positions", IFCRELPOSITIONS, 4, true]], 1638804497: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], 1437502449: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], 1073191201: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]], 2078563270: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], 234836483: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]], 2474470126: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], 2182337498: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]], 144952367: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 3694346114: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], 1383356374: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]], 1687234759: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]], 310824031: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], 3612865200: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], 3171933400: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]], 738039164: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], 655969474: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 90941305: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], 3290496277: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]], 2262370178: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]], 3024970846: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]], 3283111854: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]], 1232101972: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 3798194928: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]], 979691226: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]], 2572171363: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 2016517767: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]], 3053780830: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], 1783015770: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 1329646415: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]], 991950508: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], 1529196076: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]], 3420628829: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], 1999602285: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], 1404847402: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], 331165859: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]], 4252922144: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]], 2515109513: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["IsGroupedBy", IFCRELASSIGNSTOGROUP, 6, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["ServicesBuildings", IFCRELSERVICESBUILDINGS, 4, true], ["ServicesFacilities", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true]], 385403989: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["IsGroupedBy", IFCRELASSIGNSTOGROUP, 6, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["SourceOfResultGroup", IFCSTRUCTURALRESULTGROUP, 6, true], ["LoadGroupFor", IFCSTRUCTURALANALYSISMODEL, 7, true]], 1621171031: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["AssignedToStructuralItem", IFCRELCONNECTSSTRUCTURALACTIVITY, 5, true]], 1162798199: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], 812556717: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], 3425753595: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]], 3825984169: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], 1620046519: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]], 3026737570: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], 3179687236: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 4292641817: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], 4207607924: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], 2391406946: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]], 3512223829: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]], 4237592921: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], 3304561284: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]], 2874132201: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 1634111441: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], 177149247: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], 2056796094: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], 3001207471: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 325726236: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["Positions", IFCRELPOSITIONS, 4, true]], 277319702: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], 753842376: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]], 4196446775: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]], 32344328: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], 3314249567: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]], 1095909175: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]], 2938176219: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], 635142910: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], 3758799889: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], 1051757585: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], 4217484030: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], 3999819293: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]], 3902619387: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], 639361253: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], 3221913625: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], 3571504051: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], 2272882330: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], 578613899: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 3460952963: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], 4136498852: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], 3640358203: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], 4074379575: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], 3693000487: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], 1052013943: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], 562808652: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["IsGroupedBy", IFCRELASSIGNSTOGROUP, 6, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["ServicesBuildings", IFCRELSERVICESBUILDINGS, 4, true], ["ServicesFacilities", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true]], 1062813311: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["AssignedToFlowElement", IFCRELFLOWCONTROLELEMENTS, 4, true]], 342316401: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], 3518393246: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], 1360408905: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], 1904799276: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], 862014818: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], 3310460725: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], 24726584: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], 264262732: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], 402227799: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], 1003880860: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], 3415622556: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], 819412036: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], 1426591983: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], 182646315: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["AssignedToFlowElement", IFCRELFLOWCONTROLELEMENTS, 4, true]], 2680139844: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]], 1971632696: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]], 2295281155: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["AssignedToFlowElement", IFCRELFLOWCONTROLELEMENTS, 4, true]], 4086658281: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["AssignedToFlowElement", IFCRELFLOWCONTROLELEMENTS, 4, true]], 630975310: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["AssignedToFlowElement", IFCRELFLOWCONTROLELEMENTS, 4, true]], 4288193352: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["AssignedToFlowElement", IFCRELFLOWCONTROLELEMENTS, 4, true]], 3087945054: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["AssignedToFlowElement", IFCRELFLOWCONTROLELEMENTS, 4, true]], 25142252: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["AssignedToFlowElement", IFCRELFLOWCONTROLELEMENTS, 4, true]] }; Constructors[2] = { 3630933823: (ID, a) => new IFC4_3.IfcActorRole(ID, a[0], a[1], a[2]), 618182010: (ID, a) => new IFC4_3.IfcAddress(ID, a[0], a[1], a[2]), 2879124712: (ID, a) => new IFC4_3.IfcAlignmentParameterSegment(ID, a[0], a[1]), 3633395639: (ID, a) => new IFC4_3.IfcAlignmentVerticalSegment(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 639542469: (ID, a) => new IFC4_3.IfcApplication(ID, a[0], a[1], a[2], a[3]), 411424972: (ID, a) => new IFC4_3.IfcAppliedValue(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 130549933: (ID, a) => new IFC4_3.IfcApproval(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 4037036970: (ID, a) => new IFC4_3.IfcBoundaryCondition(ID, a[0]), 1560379544: (ID, a) => new IFC4_3.IfcBoundaryEdgeCondition(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]), 3367102660: (ID, a) => new IFC4_3.IfcBoundaryFaceCondition(ID, a[0], a[1], a[2], a[3]), 1387855156: (ID, a) => new IFC4_3.IfcBoundaryNodeCondition(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]), 2069777674: (ID, a) => new IFC4_3.IfcBoundaryNodeConditionWarping(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), 2859738748: (ID, _) => new IFC4_3.IfcConnectionGeometry(ID), 2614616156: (ID, a) => new IFC4_3.IfcConnectionPointGeometry(ID, a[0], a[1]), 2732653382: (ID, a) => new IFC4_3.IfcConnectionSurfaceGeometry(ID, a[0], a[1]), 775493141: (ID, a) => new IFC4_3.IfcConnectionVolumeGeometry(ID, a[0], a[1]), 1959218052: (ID, a) => new IFC4_3.IfcConstraint(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]), 1785450214: (ID, a) => new IFC4_3.IfcCoordinateOperation(ID, a[0], a[1]), 1466758467: (ID, a) => new IFC4_3.IfcCoordinateReferenceSystem(ID, a[0], a[1], a[2], a[3]), 602808272: (ID, a) => new IFC4_3.IfcCostValue(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 1765591967: (ID, a) => new IFC4_3.IfcDerivedUnit(ID, a[0], a[1], a[2], a[3]), 1045800335: (ID, a) => new IFC4_3.IfcDerivedUnitElement(ID, a[0], a[1]), 2949456006: (ID, a) => new IFC4_3.IfcDimensionalExponents(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]), 4294318154: (ID, _) => new IFC4_3.IfcExternalInformation(ID), 3200245327: (ID, a) => new IFC4_3.IfcExternalReference(ID, a[0], a[1], a[2]), 2242383968: (ID, a) => new IFC4_3.IfcExternallyDefinedHatchStyle(ID, a[0], a[1], a[2]), 1040185647: (ID, a) => new IFC4_3.IfcExternallyDefinedSurfaceStyle(ID, a[0], a[1], a[2]), 3548104201: (ID, a) => new IFC4_3.IfcExternallyDefinedTextFont(ID, a[0], a[1], a[2]), 852622518: (ID, a) => new IFC4_3.IfcGridAxis(ID, a[0], a[1], a[2]), 3020489413: (ID, a) => new IFC4_3.IfcIrregularTimeSeriesValue(ID, a[0], a[1]), 2655187982: (ID, a) => new IFC4_3.IfcLibraryInformation(ID, a[0], a[1], a[2], a[3], a[4], a[5]), 3452421091: (ID, a) => new IFC4_3.IfcLibraryReference(ID, a[0], a[1], a[2], a[3], a[4], a[5]), 4162380809: (ID, a) => new IFC4_3.IfcLightDistributionData(ID, a[0], a[1], a[2]), 1566485204: (ID, a) => new IFC4_3.IfcLightIntensityDistribution(ID, a[0], a[1]), 3057273783: (ID, a) => new IFC4_3.IfcMapConversion(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 1847130766: (ID, a) => new IFC4_3.IfcMaterialClassificationRelationship(ID, a[0], a[1]), 760658860: (ID, _) => new IFC4_3.IfcMaterialDefinition(ID), 248100487: (ID, a) => new IFC4_3.IfcMaterialLayer(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]), 3303938423: (ID, a) => new IFC4_3.IfcMaterialLayerSet(ID, a[0], a[1], a[2]), 1847252529: (ID, a) => new IFC4_3.IfcMaterialLayerWithOffsets(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 2199411900: (ID, a) => new IFC4_3.IfcMaterialList(ID, a[0]), 2235152071: (ID, a) => new IFC4_3.IfcMaterialProfile(ID, a[0], a[1], a[2], a[3], a[4], a[5]), 164193824: (ID, a) => new IFC4_3.IfcMaterialProfileSet(ID, a[0], a[1], a[2], a[3]), 552965576: (ID, a) => new IFC4_3.IfcMaterialProfileWithOffsets(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]), 1507914824: (ID, _) => new IFC4_3.IfcMaterialUsageDefinition(ID), 2597039031: (ID, a) => new IFC4_3.IfcMeasureWithUnit(ID, a[0], a[1]), 3368373690: (ID, a) => new IFC4_3.IfcMetric(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]), 2706619895: (ID, a) => new IFC4_3.IfcMonetaryUnit(ID, a[0]), 1918398963: (ID, a) => new IFC4_3.IfcNamedUnit(ID, a[0], a[1]), 3701648758: (ID, a) => new IFC4_3.IfcObjectPlacement(ID, a[0]), 2251480897: (ID, a) => new IFC4_3.IfcObjective(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]), 4251960020: (ID, a) => new IFC4_3.IfcOrganization(ID, a[0], a[1], a[2], a[3], a[4]), 1207048766: (ID, a) => new IFC4_3.IfcOwnerHistory(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), 2077209135: (ID, a) => new IFC4_3.IfcPerson(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), 101040310: (ID, a) => new IFC4_3.IfcPersonAndOrganization(ID, a[0], a[1], a[2]), 2483315170: (ID, a) => new IFC4_3.IfcPhysicalQuantity(ID, a[0], a[1]), 2226359599: (ID, a) => new IFC4_3.IfcPhysicalSimpleQuantity(ID, a[0], a[1], a[2]), 3355820592: (ID, a) => new IFC4_3.IfcPostalAddress(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 677532197: (ID, _) => new IFC4_3.IfcPresentationItem(ID), 2022622350: (ID, a) => new IFC4_3.IfcPresentationLayerAssignment(ID, a[0], a[1], a[2], a[3]), 1304840413: (ID, a) => new IFC4_3.IfcPresentationLayerWithStyle(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), 3119450353: (ID, a) => new IFC4_3.IfcPresentationStyle(ID, a[0]), 2095639259: (ID, a) => new IFC4_3.IfcProductRepresentation(ID, a[0], a[1], a[2]), 3958567839: (ID, a) => new IFC4_3.IfcProfileDef(ID, a[0], a[1]), 3843373140: (ID, a) => new IFC4_3.IfcProjectedCRS(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]), 986844984: (ID, _) => new IFC4_3.IfcPropertyAbstraction(ID), 3710013099: (ID, a) => new IFC4_3.IfcPropertyEnumeration(ID, a[0], a[1], a[2]), 2044713172: (ID, a) => new IFC4_3.IfcQuantityArea(ID, a[0], a[1], a[2], a[3], a[4]), 2093928680: (ID, a) => new IFC4_3.IfcQuantityCount(ID, a[0], a[1], a[2], a[3], a[4]), 931644368: (ID, a) => new IFC4_3.IfcQuantityLength(ID, a[0], a[1], a[2], a[3], a[4]), 2691318326: (ID, a) => new IFC4_3.IfcQuantityNumber(ID, a[0], a[1], a[2], a[3], a[4]), 3252649465: (ID, a) => new IFC4_3.IfcQuantityTime(ID, a[0], a[1], a[2], a[3], a[4]), 2405470396: (ID, a) => new IFC4_3.IfcQuantityVolume(ID, a[0], a[1], a[2], a[3], a[4]), 825690147: (ID, a) => new IFC4_3.IfcQuantityWeight(ID, a[0], a[1], a[2], a[3], a[4]), 3915482550: (ID, a) => new IFC4_3.IfcRecurrencePattern(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), 2433181523: (ID, a) => new IFC4_3.IfcReference(ID, a[0], a[1], a[2], a[3], a[4]), 1076942058: (ID, a) => new IFC4_3.IfcRepresentation(ID, a[0], a[1], a[2], a[3]), 3377609919: (ID, a) => new IFC4_3.IfcRepresentationContext(ID, a[0], a[1]), 3008791417: (ID, _) => new IFC4_3.IfcRepresentationItem(ID), 1660063152: (ID, a) => new IFC4_3.IfcRepresentationMap(ID, a[0], a[1]), 2439245199: (ID, a) => new IFC4_3.IfcResourceLevelRelationship(ID, a[0], a[1]), 2341007311: (ID, a) => new IFC4_3.IfcRoot(ID, a[0], a[1], a[2], a[3]), 448429030: (ID, a) => new IFC4_3.IfcSIUnit(ID, a[0], a[1], a[2], a[3]), 1054537805: (ID, a) => new IFC4_3.IfcSchedulingTime(ID, a[0], a[1], a[2]), 867548509: (ID, a) => new IFC4_3.IfcShapeAspect(ID, a[0], a[1], a[2], a[3], a[4]), 3982875396: (ID, a) => new IFC4_3.IfcShapeModel(ID, a[0], a[1], a[2], a[3]), 4240577450: (ID, a) => new IFC4_3.IfcShapeRepresentation(ID, a[0], a[1], a[2], a[3]), 2273995522: (ID, a) => new IFC4_3.IfcStructuralConnectionCondition(ID, a[0]), 2162789131: (ID, a) => new IFC4_3.IfcStructuralLoad(ID, a[0]), 3478079324: (ID, a) => new IFC4_3.IfcStructuralLoadConfiguration(ID, a[0], a[1], a[2]), 609421318: (ID, a) => new IFC4_3.IfcStructuralLoadOrResult(ID, a[0]), 2525727697: (ID, a) => new IFC4_3.IfcStructuralLoadStatic(ID, a[0]), 3408363356: (ID, a) => new IFC4_3.IfcStructuralLoadTemperature(ID, a[0], a[1], a[2], a[3]), 2830218821: (ID, a) => new IFC4_3.IfcStyleModel(ID, a[0], a[1], a[2], a[3]), 3958052878: (ID, a) => new IFC4_3.IfcStyledItem(ID, a[0], a[1], a[2]), 3049322572: (ID, a) => new IFC4_3.IfcStyledRepresentation(ID, a[0], a[1], a[2], a[3]), 2934153892: (ID, a) => new IFC4_3.IfcSurfaceReinforcementArea(ID, a[0], a[1], a[2], a[3]), 1300840506: (ID, a) => new IFC4_3.IfcSurfaceStyle(ID, a[0], a[1], a[2]), 3303107099: (ID, a) => new IFC4_3.IfcSurfaceStyleLighting(ID, a[0], a[1], a[2], a[3]), 1607154358: (ID, a) => new IFC4_3.IfcSurfaceStyleRefraction(ID, a[0], a[1]), 846575682: (ID, a) => new IFC4_3.IfcSurfaceStyleShading(ID, a[0], a[1]), 1351298697: (ID, a) => new IFC4_3.IfcSurfaceStyleWithTextures(ID, a[0]), 626085974: (ID, a) => new IFC4_3.IfcSurfaceTexture(ID, a[0], a[1], a[2], a[3], a[4]), 985171141: (ID, a) => new IFC4_3.IfcTable(ID, a[0], a[1], a[2]), 2043862942: (ID, a) => new IFC4_3.IfcTableColumn(ID, a[0], a[1], a[2], a[3], a[4]), 531007025: (ID, a) => new IFC4_3.IfcTableRow(ID, a[0], a[1]), 1549132990: (ID, a) => new IFC4_3.IfcTaskTime(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14], a[15], a[16], a[17], a[18], a[19]), 2771591690: (ID, a) => new IFC4_3.IfcTaskTimeRecurring(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14], a[15], a[16], a[17], a[18], a[19], a[20]), 912023232: (ID, a) => new IFC4_3.IfcTelecomAddress(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 1447204868: (ID, a) => new IFC4_3.IfcTextStyle(ID, a[0], a[1], a[2], a[3], a[4]), 2636378356: (ID, a) => new IFC4_3.IfcTextStyleForDefinedFont(ID, a[0], a[1]), 1640371178: (ID, a) => new IFC4_3.IfcTextStyleTextModel(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]), 280115917: (ID, a) => new IFC4_3.IfcTextureCoordinate(ID, a[0]), 1742049831: (ID, a) => new IFC4_3.IfcTextureCoordinateGenerator(ID, a[0], a[1], a[2]), 222769930: (ID, a) => new IFC4_3.IfcTextureCoordinateIndices(ID, a[0], a[1]), 1010789467: (ID, a) => new IFC4_3.IfcTextureCoordinateIndicesWithVoids(ID, a[0], a[1], a[2]), 2552916305: (ID, a) => new IFC4_3.IfcTextureMap(ID, a[0], a[1], a[2]), 1210645708: (ID, a) => new IFC4_3.IfcTextureVertex(ID, a[0]), 3611470254: (ID, a) => new IFC4_3.IfcTextureVertexList(ID, a[0]), 1199560280: (ID, a) => new IFC4_3.IfcTimePeriod(ID, a[0], a[1]), 3101149627: (ID, a) => new IFC4_3.IfcTimeSeries(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), 581633288: (ID, a) => new IFC4_3.IfcTimeSeriesValue(ID, a[0]), 1377556343: (ID, _) => new IFC4_3.IfcTopologicalRepresentationItem(ID), 1735638870: (ID, a) => new IFC4_3.IfcTopologyRepresentation(ID, a[0], a[1], a[2], a[3]), 180925521: (ID, a) => new IFC4_3.IfcUnitAssignment(ID, a[0]), 2799835756: (ID, _) => new IFC4_3.IfcVertex(ID), 1907098498: (ID, a) => new IFC4_3.IfcVertexPoint(ID, a[0]), 891718957: (ID, a) => new IFC4_3.IfcVirtualGridIntersection(ID, a[0], a[1]), 1236880293: (ID, a) => new IFC4_3.IfcWorkTime(ID, a[0], a[1], a[2], a[3], a[4], a[5]), 3752311538: (ID, a) => new IFC4_3.IfcAlignmentCantSegment(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 536804194: (ID, a) => new IFC4_3.IfcAlignmentHorizontalSegment(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 3869604511: (ID, a) => new IFC4_3.IfcApprovalRelationship(ID, a[0], a[1], a[2], a[3]), 3798115385: (ID, a) => new IFC4_3.IfcArbitraryClosedProfileDef(ID, a[0], a[1], a[2]), 1310608509: (ID, a) => new IFC4_3.IfcArbitraryOpenProfileDef(ID, a[0], a[1], a[2]), 2705031697: (ID, a) => new IFC4_3.IfcArbitraryProfileDefWithVoids(ID, a[0], a[1], a[2], a[3]), 616511568: (ID, a) => new IFC4_3.IfcBlobTexture(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]), 3150382593: (ID, a) => new IFC4_3.IfcCenterLineProfileDef(ID, a[0], a[1], a[2], a[3]), 747523909: (ID, a) => new IFC4_3.IfcClassification(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]), 647927063: (ID, a) => new IFC4_3.IfcClassificationReference(ID, a[0], a[1], a[2], a[3], a[4], a[5]), 3285139300: (ID, a) => new IFC4_3.IfcColourRgbList(ID, a[0]), 3264961684: (ID, a) => new IFC4_3.IfcColourSpecification(ID, a[0]), 1485152156: (ID, a) => new IFC4_3.IfcCompositeProfileDef(ID, a[0], a[1], a[2], a[3]), 370225590: (ID, a) => new IFC4_3.IfcConnectedFaceSet(ID, a[0]), 1981873012: (ID, a) => new IFC4_3.IfcConnectionCurveGeometry(ID, a[0], a[1]), 45288368: (ID, a) => new IFC4_3.IfcConnectionPointEccentricity(ID, a[0], a[1], a[2], a[3], a[4]), 3050246964: (ID, a) => new IFC4_3.IfcContextDependentUnit(ID, a[0], a[1], a[2]), 2889183280: (ID, a) => new IFC4_3.IfcConversionBasedUnit(ID, a[0], a[1], a[2], a[3]), 2713554722: (ID, a) => new IFC4_3.IfcConversionBasedUnitWithOffset(ID, a[0], a[1], a[2], a[3], a[4]), 539742890: (ID, a) => new IFC4_3.IfcCurrencyRelationship(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]), 3800577675: (ID, a) => new IFC4_3.IfcCurveStyle(ID, a[0], a[1], a[2], a[3], a[4]), 1105321065: (ID, a) => new IFC4_3.IfcCurveStyleFont(ID, a[0], a[1]), 2367409068: (ID, a) => new IFC4_3.IfcCurveStyleFontAndScaling(ID, a[0], a[1], a[2]), 3510044353: (ID, a) => new IFC4_3.IfcCurveStyleFontPattern(ID, a[0], a[1]), 3632507154: (ID, a) => new IFC4_3.IfcDerivedProfileDef(ID, a[0], a[1], a[2], a[3], a[4]), 1154170062: (ID, a) => new IFC4_3.IfcDocumentInformation(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14], a[15], a[16]), 770865208: (ID, a) => new IFC4_3.IfcDocumentInformationRelationship(ID, a[0], a[1], a[2], a[3], a[4]), 3732053477: (ID, a) => new IFC4_3.IfcDocumentReference(ID, a[0], a[1], a[2], a[3], a[4]), 3900360178: (ID, a) => new IFC4_3.IfcEdge(ID, a[0], a[1]), 476780140: (ID, a) => new IFC4_3.IfcEdgeCurve(ID, a[0], a[1], a[2], a[3]), 211053100: (ID, a) => new IFC4_3.IfcEventTime(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]), 297599258: (ID, a) => new IFC4_3.IfcExtendedProperties(ID, a[0], a[1], a[2]), 1437805879: (ID, a) => new IFC4_3.IfcExternalReferenceRelationship(ID, a[0], a[1], a[2], a[3]), 2556980723: (ID, a) => new IFC4_3.IfcFace(ID, a[0]), 1809719519: (ID, a) => new IFC4_3.IfcFaceBound(ID, a[0], a[1]), 803316827: (ID, a) => new IFC4_3.IfcFaceOuterBound(ID, a[0], a[1]), 3008276851: (ID, a) => new IFC4_3.IfcFaceSurface(ID, a[0], a[1], a[2]), 4219587988: (ID, a) => new IFC4_3.IfcFailureConnectionCondition(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]), 738692330: (ID, a) => new IFC4_3.IfcFillAreaStyle(ID, a[0], a[1], a[2]), 3448662350: (ID, a) => new IFC4_3.IfcGeometricRepresentationContext(ID, a[0], a[1], a[2], a[3], a[4], a[5]), 2453401579: (ID, _) => new IFC4_3.IfcGeometricRepresentationItem(ID), 4142052618: (ID, a) => new IFC4_3.IfcGeometricRepresentationSubContext(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]), 3590301190: (ID, a) => new IFC4_3.IfcGeometricSet(ID, a[0]), 178086475: (ID, a) => new IFC4_3.IfcGridPlacement(ID, a[0], a[1], a[2]), 812098782: (ID, a) => new IFC4_3.IfcHalfSpaceSolid(ID, a[0], a[1]), 3905492369: (ID, a) => new IFC4_3.IfcImageTexture(ID, a[0], a[1], a[2], a[3], a[4], a[5]), 3570813810: (ID, a) => new IFC4_3.IfcIndexedColourMap(ID, a[0], a[1], a[2], a[3]), 1437953363: (ID, a) => new IFC4_3.IfcIndexedTextureMap(ID, a[0], a[1], a[2]), 2133299955: (ID, a) => new IFC4_3.IfcIndexedTriangleTextureMap(ID, a[0], a[1], a[2], a[3]), 3741457305: (ID, a) => new IFC4_3.IfcIrregularTimeSeries(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 1585845231: (ID, a) => new IFC4_3.IfcLagTime(ID, a[0], a[1], a[2], a[3], a[4]), 1402838566: (ID, a) => new IFC4_3.IfcLightSource(ID, a[0], a[1], a[2], a[3]), 125510826: (ID, a) => new IFC4_3.IfcLightSourceAmbient(ID, a[0], a[1], a[2], a[3]), 2604431987: (ID, a) => new IFC4_3.IfcLightSourceDirectional(ID, a[0], a[1], a[2], a[3], a[4]), 4266656042: (ID, a) => new IFC4_3.IfcLightSourceGoniometric(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 1520743889: (ID, a) => new IFC4_3.IfcLightSourcePositional(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 3422422726: (ID, a) => new IFC4_3.IfcLightSourceSpot(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12]), 388784114: (ID, a) => new IFC4_3.IfcLinearPlacement(ID, a[0], a[1], a[2]), 2624227202: (ID, a) => new IFC4_3.IfcLocalPlacement(ID, a[0], a[1]), 1008929658: (ID, _) => new IFC4_3.IfcLoop(ID), 2347385850: (ID, a) => new IFC4_3.IfcMappedItem(ID, a[0], a[1]), 1838606355: (ID, a) => new IFC4_3.IfcMaterial(ID, a[0], a[1], a[2]), 3708119e3: (ID, a) => new IFC4_3.IfcMaterialConstituent(ID, a[0], a[1], a[2], a[3], a[4]), 2852063980: (ID, a) => new IFC4_3.IfcMaterialConstituentSet(ID, a[0], a[1], a[2]), 2022407955: (ID, a) => new IFC4_3.IfcMaterialDefinitionRepresentation(ID, a[0], a[1], a[2], a[3]), 1303795690: (ID, a) => new IFC4_3.IfcMaterialLayerSetUsage(ID, a[0], a[1], a[2], a[3], a[4]), 3079605661: (ID, a) => new IFC4_3.IfcMaterialProfileSetUsage(ID, a[0], a[1], a[2]), 3404854881: (ID, a) => new IFC4_3.IfcMaterialProfileSetUsageTapering(ID, a[0], a[1], a[2], a[3], a[4]), 3265635763: (ID, a) => new IFC4_3.IfcMaterialProperties(ID, a[0], a[1], a[2], a[3]), 853536259: (ID, a) => new IFC4_3.IfcMaterialRelationship(ID, a[0], a[1], a[2], a[3], a[4]), 2998442950: (ID, a) => new IFC4_3.IfcMirroredProfileDef(ID, a[0], a[1], a[2], a[3], a[4]), 219451334: (ID, a) => new IFC4_3.IfcObjectDefinition(ID, a[0], a[1], a[2], a[3]), 182550632: (ID, a) => new IFC4_3.IfcOpenCrossProfileDef(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]), 2665983363: (ID, a) => new IFC4_3.IfcOpenShell(ID, a[0]), 1411181986: (ID, a) => new IFC4_3.IfcOrganizationRelationship(ID, a[0], a[1], a[2], a[3]), 1029017970: (ID, a) => new IFC4_3.IfcOrientedEdge(ID, a[0], a[1], a[2]), 2529465313: (ID, a) => new IFC4_3.IfcParameterizedProfileDef(ID, a[0], a[1], a[2]), 2519244187: (ID, a) => new IFC4_3.IfcPath(ID, a[0]), 3021840470: (ID, a) => new IFC4_3.IfcPhysicalComplexQuantity(ID, a[0], a[1], a[2], a[3], a[4], a[5]), 597895409: (ID, a) => new IFC4_3.IfcPixelTexture(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 2004835150: (ID, a) => new IFC4_3.IfcPlacement(ID, a[0]), 1663979128: (ID, a) => new IFC4_3.IfcPlanarExtent(ID, a[0], a[1]), 2067069095: (ID, _) => new IFC4_3.IfcPoint(ID), 2165702409: (ID, a) => new IFC4_3.IfcPointByDistanceExpression(ID, a[0], a[1], a[2], a[3], a[4]), 4022376103: (ID, a) => new IFC4_3.IfcPointOnCurve(ID, a[0], a[1]), 1423911732: (ID, a) => new IFC4_3.IfcPointOnSurface(ID, a[0], a[1], a[2]), 2924175390: (ID, a) => new IFC4_3.IfcPolyLoop(ID, a[0]), 2775532180: (ID, a) => new IFC4_3.IfcPolygonalBoundedHalfSpace(ID, a[0], a[1], a[2], a[3]), 3727388367: (ID, a) => new IFC4_3.IfcPreDefinedItem(ID, a[0]), 3778827333: (ID, _) => new IFC4_3.IfcPreDefinedProperties(ID), 1775413392: (ID, a) => new IFC4_3.IfcPreDefinedTextFont(ID, a[0]), 673634403: (ID, a) => new IFC4_3.IfcProductDefinitionShape(ID, a[0], a[1], a[2]), 2802850158: (ID, a) => new IFC4_3.IfcProfileProperties(ID, a[0], a[1], a[2], a[3]), 2598011224: (ID, a) => new IFC4_3.IfcProperty(ID, a[0], a[1]), 1680319473: (ID, a) => new IFC4_3.IfcPropertyDefinition(ID, a[0], a[1], a[2], a[3]), 148025276: (ID, a) => new IFC4_3.IfcPropertyDependencyRelationship(ID, a[0], a[1], a[2], a[3], a[4]), 3357820518: (ID, a) => new IFC4_3.IfcPropertySetDefinition(ID, a[0], a[1], a[2], a[3]), 1482703590: (ID, a) => new IFC4_3.IfcPropertyTemplateDefinition(ID, a[0], a[1], a[2], a[3]), 2090586900: (ID, a) => new IFC4_3.IfcQuantitySet(ID, a[0], a[1], a[2], a[3]), 3615266464: (ID, a) => new IFC4_3.IfcRectangleProfileDef(ID, a[0], a[1], a[2], a[3], a[4]), 3413951693: (ID, a) => new IFC4_3.IfcRegularTimeSeries(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 1580146022: (ID, a) => new IFC4_3.IfcReinforcementBarProperties(ID, a[0], a[1], a[2], a[3], a[4], a[5]), 478536968: (ID, a) => new IFC4_3.IfcRelationship(ID, a[0], a[1], a[2], a[3]), 2943643501: (ID, a) => new IFC4_3.IfcResourceApprovalRelationship(ID, a[0], a[1], a[2], a[3]), 1608871552: (ID, a) => new IFC4_3.IfcResourceConstraintRelationship(ID, a[0], a[1], a[2], a[3]), 1042787934: (ID, a) => new IFC4_3.IfcResourceTime(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14], a[15], a[16], a[17]), 2778083089: (ID, a) => new IFC4_3.IfcRoundedRectangleProfileDef(ID, a[0], a[1], a[2], a[3], a[4], a[5]), 2042790032: (ID, a) => new IFC4_3.IfcSectionProperties(ID, a[0], a[1], a[2]), 4165799628: (ID, a) => new IFC4_3.IfcSectionReinforcementProperties(ID, a[0], a[1], a[2], a[3], a[4], a[5]), 1509187699: (ID, a) => new IFC4_3.IfcSectionedSpine(ID, a[0], a[1], a[2]), 823603102: (ID, a) => new IFC4_3.IfcSegment(ID, a[0]), 4124623270: (ID, a) => new IFC4_3.IfcShellBasedSurfaceModel(ID, a[0]), 3692461612: (ID, a) => new IFC4_3.IfcSimpleProperty(ID, a[0], a[1]), 2609359061: (ID, a) => new IFC4_3.IfcSlippageConnectionCondition(ID, a[0], a[1], a[2], a[3]), 723233188: (ID, _) => new IFC4_3.IfcSolidModel(ID), 1595516126: (ID, a) => new IFC4_3.IfcStructuralLoadLinearForce(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]), 2668620305: (ID, a) => new IFC4_3.IfcStructuralLoadPlanarForce(ID, a[0], a[1], a[2], a[3]), 2473145415: (ID, a) => new IFC4_3.IfcStructuralLoadSingleDisplacement(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]), 1973038258: (ID, a) => new IFC4_3.IfcStructuralLoadSingleDisplacementDistortion(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), 1597423693: (ID, a) => new IFC4_3.IfcStructuralLoadSingleForce(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]), 1190533807: (ID, a) => new IFC4_3.IfcStructuralLoadSingleForceWarping(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), 2233826070: (ID, a) => new IFC4_3.IfcSubedge(ID, a[0], a[1], a[2]), 2513912981: (ID, _) => new IFC4_3.IfcSurface(ID), 1878645084: (ID, a) => new IFC4_3.IfcSurfaceStyleRendering(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 2247615214: (ID, a) => new IFC4_3.IfcSweptAreaSolid(ID, a[0], a[1]), 1260650574: (ID, a) => new IFC4_3.IfcSweptDiskSolid(ID, a[0], a[1], a[2], a[3], a[4]), 1096409881: (ID, a) => new IFC4_3.IfcSweptDiskSolidPolygonal(ID, a[0], a[1], a[2], a[3], a[4], a[5]), 230924584: (ID, a) => new IFC4_3.IfcSweptSurface(ID, a[0], a[1]), 3071757647: (ID, a) => new IFC4_3.IfcTShapeProfileDef(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]), 901063453: (ID, _) => new IFC4_3.IfcTessellatedItem(ID), 4282788508: (ID, a) => new IFC4_3.IfcTextLiteral(ID, a[0], a[1], a[2]), 3124975700: (ID, a) => new IFC4_3.IfcTextLiteralWithExtent(ID, a[0], a[1], a[2], a[3], a[4]), 1983826977: (ID, a) => new IFC4_3.IfcTextStyleFontModel(ID, a[0], a[1], a[2], a[3], a[4], a[5]), 2715220739: (ID, a) => new IFC4_3.IfcTrapeziumProfileDef(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]), 1628702193: (ID, a) => new IFC4_3.IfcTypeObject(ID, a[0], a[1], a[2], a[3], a[4], a[5]), 3736923433: (ID, a) => new IFC4_3.IfcTypeProcess(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 2347495698: (ID, a) => new IFC4_3.IfcTypeProduct(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), 3698973494: (ID, a) => new IFC4_3.IfcTypeResource(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 427810014: (ID, a) => new IFC4_3.IfcUShapeProfileDef(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 1417489154: (ID, a) => new IFC4_3.IfcVector(ID, a[0], a[1]), 2759199220: (ID, a) => new IFC4_3.IfcVertexLoop(ID, a[0]), 2543172580: (ID, a) => new IFC4_3.IfcZShapeProfileDef(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 3406155212: (ID, a) => new IFC4_3.IfcAdvancedFace(ID, a[0], a[1], a[2]), 669184980: (ID, a) => new IFC4_3.IfcAnnotationFillArea(ID, a[0], a[1]), 3207858831: (ID, a) => new IFC4_3.IfcAsymmetricIShapeProfileDef(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14]), 4261334040: (ID, a) => new IFC4_3.IfcAxis1Placement(ID, a[0], a[1]), 3125803723: (ID, a) => new IFC4_3.IfcAxis2Placement2D(ID, a[0], a[1]), 2740243338: (ID, a) => new IFC4_3.IfcAxis2Placement3D(ID, a[0], a[1], a[2]), 3425423356: (ID, a) => new IFC4_3.IfcAxis2PlacementLinear(ID, a[0], a[1], a[2]), 2736907675: (ID, a) => new IFC4_3.IfcBooleanResult(ID, a[0], a[1], a[2]), 4182860854: (ID, _) => new IFC4_3.IfcBoundedSurface(ID), 2581212453: (ID, a) => new IFC4_3.IfcBoundingBox(ID, a[0], a[1], a[2], a[3]), 2713105998: (ID, a) => new IFC4_3.IfcBoxedHalfSpace(ID, a[0], a[1], a[2]), 2898889636: (ID, a) => new IFC4_3.IfcCShapeProfileDef(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), 1123145078: (ID, a) => new IFC4_3.IfcCartesianPoint(ID, a[0]), 574549367: (ID, _) => new IFC4_3.IfcCartesianPointList(ID), 1675464909: (ID, a) => new IFC4_3.IfcCartesianPointList2D(ID, a[0], a[1]), 2059837836: (ID, a) => new IFC4_3.IfcCartesianPointList3D(ID, a[0], a[1]), 59481748: (ID, a) => new IFC4_3.IfcCartesianTransformationOperator(ID, a[0], a[1], a[2], a[3]), 3749851601: (ID, a) => new IFC4_3.IfcCartesianTransformationOperator2D(ID, a[0], a[1], a[2], a[3]), 3486308946: (ID, a) => new IFC4_3.IfcCartesianTransformationOperator2DnonUniform(ID, a[0], a[1], a[2], a[3], a[4]), 3331915920: (ID, a) => new IFC4_3.IfcCartesianTransformationOperator3D(ID, a[0], a[1], a[2], a[3], a[4]), 1416205885: (ID, a) => new IFC4_3.IfcCartesianTransformationOperator3DnonUniform(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]), 1383045692: (ID, a) => new IFC4_3.IfcCircleProfileDef(ID, a[0], a[1], a[2], a[3]), 2205249479: (ID, a) => new IFC4_3.IfcClosedShell(ID, a[0]), 776857604: (ID, a) => new IFC4_3.IfcColourRgb(ID, a[0], a[1], a[2], a[3]), 2542286263: (ID, a) => new IFC4_3.IfcComplexProperty(ID, a[0], a[1], a[2], a[3]), 2485617015: (ID, a) => new IFC4_3.IfcCompositeCurveSegment(ID, a[0], a[1], a[2]), 2574617495: (ID, a) => new IFC4_3.IfcConstructionResourceType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]), 3419103109: (ID, a) => new IFC4_3.IfcContext(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 1815067380: (ID, a) => new IFC4_3.IfcCrewResourceType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]), 2506170314: (ID, a) => new IFC4_3.IfcCsgPrimitive3D(ID, a[0]), 2147822146: (ID, a) => new IFC4_3.IfcCsgSolid(ID, a[0]), 2601014836: (ID, _) => new IFC4_3.IfcCurve(ID), 2827736869: (ID, a) => new IFC4_3.IfcCurveBoundedPlane(ID, a[0], a[1], a[2]), 2629017746: (ID, a) => new IFC4_3.IfcCurveBoundedSurface(ID, a[0], a[1], a[2]), 4212018352: (ID, a) => new IFC4_3.IfcCurveSegment(ID, a[0], a[1], a[2], a[3], a[4]), 32440307: (ID, a) => new IFC4_3.IfcDirection(ID, a[0]), 593015953: (ID, a) => new IFC4_3.IfcDirectrixCurveSweptAreaSolid(ID, a[0], a[1], a[2], a[3], a[4]), 1472233963: (ID, a) => new IFC4_3.IfcEdgeLoop(ID, a[0]), 1883228015: (ID, a) => new IFC4_3.IfcElementQuantity(ID, a[0], a[1], a[2], a[3], a[4], a[5]), 339256511: (ID, a) => new IFC4_3.IfcElementType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 2777663545: (ID, a) => new IFC4_3.IfcElementarySurface(ID, a[0]), 2835456948: (ID, a) => new IFC4_3.IfcEllipseProfileDef(ID, a[0], a[1], a[2], a[3], a[4]), 4024345920: (ID, a) => new IFC4_3.IfcEventType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]), 477187591: (ID, a) => new IFC4_3.IfcExtrudedAreaSolid(ID, a[0], a[1], a[2], a[3]), 2804161546: (ID, a) => new IFC4_3.IfcExtrudedAreaSolidTapered(ID, a[0], a[1], a[2], a[3], a[4]), 2047409740: (ID, a) => new IFC4_3.IfcFaceBasedSurfaceModel(ID, a[0]), 374418227: (ID, a) => new IFC4_3.IfcFillAreaStyleHatching(ID, a[0], a[1], a[2], a[3], a[4]), 315944413: (ID, a) => new IFC4_3.IfcFillAreaStyleTiles(ID, a[0], a[1], a[2]), 2652556860: (ID, a) => new IFC4_3.IfcFixedReferenceSweptAreaSolid(ID, a[0], a[1], a[2], a[3], a[4], a[5]), 4238390223: (ID, a) => new IFC4_3.IfcFurnishingElementType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 1268542332: (ID, a) => new IFC4_3.IfcFurnitureType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]), 4095422895: (ID, a) => new IFC4_3.IfcGeographicElementType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 987898635: (ID, a) => new IFC4_3.IfcGeometricCurveSet(ID, a[0]), 1484403080: (ID, a) => new IFC4_3.IfcIShapeProfileDef(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 178912537: (ID, a) => new IFC4_3.IfcIndexedPolygonalFace(ID, a[0]), 2294589976: (ID, a) => new IFC4_3.IfcIndexedPolygonalFaceWithVoids(ID, a[0], a[1]), 3465909080: (ID, a) => new IFC4_3.IfcIndexedPolygonalTextureMap(ID, a[0], a[1], a[2], a[3]), 572779678: (ID, a) => new IFC4_3.IfcLShapeProfileDef(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 428585644: (ID, a) => new IFC4_3.IfcLaborResourceType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]), 1281925730: (ID, a) => new IFC4_3.IfcLine(ID, a[0], a[1]), 1425443689: (ID, a) => new IFC4_3.IfcManifoldSolidBrep(ID, a[0]), 3888040117: (ID, a) => new IFC4_3.IfcObject(ID, a[0], a[1], a[2], a[3], a[4]), 590820931: (ID, a) => new IFC4_3.IfcOffsetCurve(ID, a[0]), 3388369263: (ID, a) => new IFC4_3.IfcOffsetCurve2D(ID, a[0], a[1], a[2]), 3505215534: (ID, a) => new IFC4_3.IfcOffsetCurve3D(ID, a[0], a[1], a[2], a[3]), 2485787929: (ID, a) => new IFC4_3.IfcOffsetCurveByDistances(ID, a[0], a[1], a[2]), 1682466193: (ID, a) => new IFC4_3.IfcPcurve(ID, a[0], a[1]), 603570806: (ID, a) => new IFC4_3.IfcPlanarBox(ID, a[0], a[1], a[2]), 220341763: (ID, a) => new IFC4_3.IfcPlane(ID, a[0]), 3381221214: (ID, a) => new IFC4_3.IfcPolynomialCurve(ID, a[0], a[1], a[2], a[3]), 759155922: (ID, a) => new IFC4_3.IfcPreDefinedColour(ID, a[0]), 2559016684: (ID, a) => new IFC4_3.IfcPreDefinedCurveFont(ID, a[0]), 3967405729: (ID, a) => new IFC4_3.IfcPreDefinedPropertySet(ID, a[0], a[1], a[2], a[3]), 569719735: (ID, a) => new IFC4_3.IfcProcedureType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 2945172077: (ID, a) => new IFC4_3.IfcProcess(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]), 4208778838: (ID, a) => new IFC4_3.IfcProduct(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]), 103090709: (ID, a) => new IFC4_3.IfcProject(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 653396225: (ID, a) => new IFC4_3.IfcProjectLibrary(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 871118103: (ID, a) => new IFC4_3.IfcPropertyBoundedValue(ID, a[0], a[1], a[2], a[3], a[4], a[5]), 4166981789: (ID, a) => new IFC4_3.IfcPropertyEnumeratedValue(ID, a[0], a[1], a[2], a[3]), 2752243245: (ID, a) => new IFC4_3.IfcPropertyListValue(ID, a[0], a[1], a[2], a[3]), 941946838: (ID, a) => new IFC4_3.IfcPropertyReferenceValue(ID, a[0], a[1], a[2], a[3]), 1451395588: (ID, a) => new IFC4_3.IfcPropertySet(ID, a[0], a[1], a[2], a[3], a[4]), 492091185: (ID, a) => new IFC4_3.IfcPropertySetTemplate(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]), 3650150729: (ID, a) => new IFC4_3.IfcPropertySingleValue(ID, a[0], a[1], a[2], a[3]), 110355661: (ID, a) => new IFC4_3.IfcPropertyTableValue(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), 3521284610: (ID, a) => new IFC4_3.IfcPropertyTemplate(ID, a[0], a[1], a[2], a[3]), 2770003689: (ID, a) => new IFC4_3.IfcRectangleHollowProfileDef(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), 2798486643: (ID, a) => new IFC4_3.IfcRectangularPyramid(ID, a[0], a[1], a[2], a[3]), 3454111270: (ID, a) => new IFC4_3.IfcRectangularTrimmedSurface(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]), 3765753017: (ID, a) => new IFC4_3.IfcReinforcementDefinitionProperties(ID, a[0], a[1], a[2], a[3], a[4], a[5]), 3939117080: (ID, a) => new IFC4_3.IfcRelAssigns(ID, a[0], a[1], a[2], a[3], a[4], a[5]), 1683148259: (ID, a) => new IFC4_3.IfcRelAssignsToActor(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), 2495723537: (ID, a) => new IFC4_3.IfcRelAssignsToControl(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]), 1307041759: (ID, a) => new IFC4_3.IfcRelAssignsToGroup(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]), 1027710054: (ID, a) => new IFC4_3.IfcRelAssignsToGroupByFactor(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), 4278684876: (ID, a) => new IFC4_3.IfcRelAssignsToProcess(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), 2857406711: (ID, a) => new IFC4_3.IfcRelAssignsToProduct(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]), 205026976: (ID, a) => new IFC4_3.IfcRelAssignsToResource(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]), 1865459582: (ID, a) => new IFC4_3.IfcRelAssociates(ID, a[0], a[1], a[2], a[3], a[4]), 4095574036: (ID, a) => new IFC4_3.IfcRelAssociatesApproval(ID, a[0], a[1], a[2], a[3], a[4], a[5]), 919958153: (ID, a) => new IFC4_3.IfcRelAssociatesClassification(ID, a[0], a[1], a[2], a[3], a[4], a[5]), 2728634034: (ID, a) => new IFC4_3.IfcRelAssociatesConstraint(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]), 982818633: (ID, a) => new IFC4_3.IfcRelAssociatesDocument(ID, a[0], a[1], a[2], a[3], a[4], a[5]), 3840914261: (ID, a) => new IFC4_3.IfcRelAssociatesLibrary(ID, a[0], a[1], a[2], a[3], a[4], a[5]), 2655215786: (ID, a) => new IFC4_3.IfcRelAssociatesMaterial(ID, a[0], a[1], a[2], a[3], a[4], a[5]), 1033248425: (ID, a) => new IFC4_3.IfcRelAssociatesProfileDef(ID, a[0], a[1], a[2], a[3], a[4], a[5]), 826625072: (ID, a) => new IFC4_3.IfcRelConnects(ID, a[0], a[1], a[2], a[3]), 1204542856: (ID, a) => new IFC4_3.IfcRelConnectsElements(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]), 3945020480: (ID, a) => new IFC4_3.IfcRelConnectsPathElements(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]), 4201705270: (ID, a) => new IFC4_3.IfcRelConnectsPortToElement(ID, a[0], a[1], a[2], a[3], a[4], a[5]), 3190031847: (ID, a) => new IFC4_3.IfcRelConnectsPorts(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]), 2127690289: (ID, a) => new IFC4_3.IfcRelConnectsStructuralActivity(ID, a[0], a[1], a[2], a[3], a[4], a[5]), 1638771189: (ID, a) => new IFC4_3.IfcRelConnectsStructuralMember(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 504942748: (ID, a) => new IFC4_3.IfcRelConnectsWithEccentricity(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]), 3678494232: (ID, a) => new IFC4_3.IfcRelConnectsWithRealizingElements(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 3242617779: (ID, a) => new IFC4_3.IfcRelContainedInSpatialStructure(ID, a[0], a[1], a[2], a[3], a[4], a[5]), 886880790: (ID, a) => new IFC4_3.IfcRelCoversBldgElements(ID, a[0], a[1], a[2], a[3], a[4], a[5]), 2802773753: (ID, a) => new IFC4_3.IfcRelCoversSpaces(ID, a[0], a[1], a[2], a[3], a[4], a[5]), 2565941209: (ID, a) => new IFC4_3.IfcRelDeclares(ID, a[0], a[1], a[2], a[3], a[4], a[5]), 2551354335: (ID, a) => new IFC4_3.IfcRelDecomposes(ID, a[0], a[1], a[2], a[3]), 693640335: (ID, a) => new IFC4_3.IfcRelDefines(ID, a[0], a[1], a[2], a[3]), 1462361463: (ID, a) => new IFC4_3.IfcRelDefinesByObject(ID, a[0], a[1], a[2], a[3], a[4], a[5]), 4186316022: (ID, a) => new IFC4_3.IfcRelDefinesByProperties(ID, a[0], a[1], a[2], a[3], a[4], a[5]), 307848117: (ID, a) => new IFC4_3.IfcRelDefinesByTemplate(ID, a[0], a[1], a[2], a[3], a[4], a[5]), 781010003: (ID, a) => new IFC4_3.IfcRelDefinesByType(ID, a[0], a[1], a[2], a[3], a[4], a[5]), 3940055652: (ID, a) => new IFC4_3.IfcRelFillsElement(ID, a[0], a[1], a[2], a[3], a[4], a[5]), 279856033: (ID, a) => new IFC4_3.IfcRelFlowControlElements(ID, a[0], a[1], a[2], a[3], a[4], a[5]), 427948657: (ID, a) => new IFC4_3.IfcRelInterferesElements(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 3268803585: (ID, a) => new IFC4_3.IfcRelNests(ID, a[0], a[1], a[2], a[3], a[4], a[5]), 1441486842: (ID, a) => new IFC4_3.IfcRelPositions(ID, a[0], a[1], a[2], a[3], a[4], a[5]), 750771296: (ID, a) => new IFC4_3.IfcRelProjectsElement(ID, a[0], a[1], a[2], a[3], a[4], a[5]), 1245217292: (ID, a) => new IFC4_3.IfcRelReferencedInSpatialStructure(ID, a[0], a[1], a[2], a[3], a[4], a[5]), 4122056220: (ID, a) => new IFC4_3.IfcRelSequence(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 366585022: (ID, a) => new IFC4_3.IfcRelServicesBuildings(ID, a[0], a[1], a[2], a[3], a[4], a[5]), 3451746338: (ID, a) => new IFC4_3.IfcRelSpaceBoundary(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 3523091289: (ID, a) => new IFC4_3.IfcRelSpaceBoundary1stLevel(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 1521410863: (ID, a) => new IFC4_3.IfcRelSpaceBoundary2ndLevel(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]), 1401173127: (ID, a) => new IFC4_3.IfcRelVoidsElement(ID, a[0], a[1], a[2], a[3], a[4], a[5]), 816062949: (ID, a) => new IFC4_3.IfcReparametrisedCompositeCurveSegment(ID, a[0], a[1], a[2], a[3]), 2914609552: (ID, a) => new IFC4_3.IfcResource(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]), 1856042241: (ID, a) => new IFC4_3.IfcRevolvedAreaSolid(ID, a[0], a[1], a[2], a[3]), 3243963512: (ID, a) => new IFC4_3.IfcRevolvedAreaSolidTapered(ID, a[0], a[1], a[2], a[3], a[4]), 4158566097: (ID, a) => new IFC4_3.IfcRightCircularCone(ID, a[0], a[1], a[2]), 3626867408: (ID, a) => new IFC4_3.IfcRightCircularCylinder(ID, a[0], a[1], a[2]), 1862484736: (ID, a) => new IFC4_3.IfcSectionedSolid(ID, a[0], a[1]), 1290935644: (ID, a) => new IFC4_3.IfcSectionedSolidHorizontal(ID, a[0], a[1], a[2]), 1356537516: (ID, a) => new IFC4_3.IfcSectionedSurface(ID, a[0], a[1], a[2]), 3663146110: (ID, a) => new IFC4_3.IfcSimplePropertyTemplate(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]), 1412071761: (ID, a) => new IFC4_3.IfcSpatialElement(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), 710998568: (ID, a) => new IFC4_3.IfcSpatialElementType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 2706606064: (ID, a) => new IFC4_3.IfcSpatialStructureElement(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 3893378262: (ID, a) => new IFC4_3.IfcSpatialStructureElementType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 463610769: (ID, a) => new IFC4_3.IfcSpatialZone(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 2481509218: (ID, a) => new IFC4_3.IfcSpatialZoneType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]), 451544542: (ID, a) => new IFC4_3.IfcSphere(ID, a[0], a[1]), 4015995234: (ID, a) => new IFC4_3.IfcSphericalSurface(ID, a[0], a[1]), 2735484536: (ID, a) => new IFC4_3.IfcSpiral(ID, a[0]), 3544373492: (ID, a) => new IFC4_3.IfcStructuralActivity(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 3136571912: (ID, a) => new IFC4_3.IfcStructuralItem(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]), 530289379: (ID, a) => new IFC4_3.IfcStructuralMember(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]), 3689010777: (ID, a) => new IFC4_3.IfcStructuralReaction(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 3979015343: (ID, a) => new IFC4_3.IfcStructuralSurfaceMember(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 2218152070: (ID, a) => new IFC4_3.IfcStructuralSurfaceMemberVarying(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 603775116: (ID, a) => new IFC4_3.IfcStructuralSurfaceReaction(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 4095615324: (ID, a) => new IFC4_3.IfcSubContractResourceType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]), 699246055: (ID, a) => new IFC4_3.IfcSurfaceCurve(ID, a[0], a[1], a[2]), 2028607225: (ID, a) => new IFC4_3.IfcSurfaceCurveSweptAreaSolid(ID, a[0], a[1], a[2], a[3], a[4], a[5]), 2809605785: (ID, a) => new IFC4_3.IfcSurfaceOfLinearExtrusion(ID, a[0], a[1], a[2], a[3]), 4124788165: (ID, a) => new IFC4_3.IfcSurfaceOfRevolution(ID, a[0], a[1], a[2]), 1580310250: (ID, a) => new IFC4_3.IfcSystemFurnitureElementType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 3473067441: (ID, a) => new IFC4_3.IfcTask(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12]), 3206491090: (ID, a) => new IFC4_3.IfcTaskType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]), 2387106220: (ID, a) => new IFC4_3.IfcTessellatedFaceSet(ID, a[0], a[1]), 782932809: (ID, a) => new IFC4_3.IfcThirdOrderPolynomialSpiral(ID, a[0], a[1], a[2], a[3], a[4]), 1935646853: (ID, a) => new IFC4_3.IfcToroidalSurface(ID, a[0], a[1], a[2]), 3665877780: (ID, a) => new IFC4_3.IfcTransportationDeviceType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 2916149573: (ID, a) => new IFC4_3.IfcTriangulatedFaceSet(ID, a[0], a[1], a[2], a[3], a[4]), 1229763772: (ID, a) => new IFC4_3.IfcTriangulatedIrregularNetwork(ID, a[0], a[1], a[2], a[3], a[4], a[5]), 3651464721: (ID, a) => new IFC4_3.IfcVehicleType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 336235671: (ID, a) => new IFC4_3.IfcWindowLiningProperties(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14], a[15]), 512836454: (ID, a) => new IFC4_3.IfcWindowPanelProperties(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 2296667514: (ID, a) => new IFC4_3.IfcActor(ID, a[0], a[1], a[2], a[3], a[4], a[5]), 1635779807: (ID, a) => new IFC4_3.IfcAdvancedBrep(ID, a[0]), 2603310189: (ID, a) => new IFC4_3.IfcAdvancedBrepWithVoids(ID, a[0], a[1]), 1674181508: (ID, a) => new IFC4_3.IfcAnnotation(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), 2887950389: (ID, a) => new IFC4_3.IfcBSplineSurface(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]), 167062518: (ID, a) => new IFC4_3.IfcBSplineSurfaceWithKnots(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]), 1334484129: (ID, a) => new IFC4_3.IfcBlock(ID, a[0], a[1], a[2], a[3]), 3649129432: (ID, a) => new IFC4_3.IfcBooleanClippingResult(ID, a[0], a[1], a[2]), 1260505505: (ID, _) => new IFC4_3.IfcBoundedCurve(ID), 3124254112: (ID, a) => new IFC4_3.IfcBuildingStorey(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 1626504194: (ID, a) => new IFC4_3.IfcBuiltElementType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 2197970202: (ID, a) => new IFC4_3.IfcChimneyType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 2937912522: (ID, a) => new IFC4_3.IfcCircleHollowProfileDef(ID, a[0], a[1], a[2], a[3], a[4]), 3893394355: (ID, a) => new IFC4_3.IfcCivilElementType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 3497074424: (ID, a) => new IFC4_3.IfcClothoid(ID, a[0], a[1]), 300633059: (ID, a) => new IFC4_3.IfcColumnType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 3875453745: (ID, a) => new IFC4_3.IfcComplexPropertyTemplate(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]), 3732776249: (ID, a) => new IFC4_3.IfcCompositeCurve(ID, a[0], a[1]), 15328376: (ID, a) => new IFC4_3.IfcCompositeCurveOnSurface(ID, a[0], a[1]), 2510884976: (ID, a) => new IFC4_3.IfcConic(ID, a[0]), 2185764099: (ID, a) => new IFC4_3.IfcConstructionEquipmentResourceType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]), 4105962743: (ID, a) => new IFC4_3.IfcConstructionMaterialResourceType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]), 1525564444: (ID, a) => new IFC4_3.IfcConstructionProductResourceType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]), 2559216714: (ID, a) => new IFC4_3.IfcConstructionResource(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 3293443760: (ID, a) => new IFC4_3.IfcControl(ID, a[0], a[1], a[2], a[3], a[4], a[5]), 2000195564: (ID, a) => new IFC4_3.IfcCosineSpiral(ID, a[0], a[1], a[2]), 3895139033: (ID, a) => new IFC4_3.IfcCostItem(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 1419761937: (ID, a) => new IFC4_3.IfcCostSchedule(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 4189326743: (ID, a) => new IFC4_3.IfcCourseType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 1916426348: (ID, a) => new IFC4_3.IfcCoveringType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 3295246426: (ID, a) => new IFC4_3.IfcCrewResource(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]), 1457835157: (ID, a) => new IFC4_3.IfcCurtainWallType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 1213902940: (ID, a) => new IFC4_3.IfcCylindricalSurface(ID, a[0], a[1]), 1306400036: (ID, a) => new IFC4_3.IfcDeepFoundationType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 4234616927: (ID, a) => new IFC4_3.IfcDirectrixDerivedReferenceSweptAreaSolid(ID, a[0], a[1], a[2], a[3], a[4], a[5]), 3256556792: (ID, a) => new IFC4_3.IfcDistributionElementType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 3849074793: (ID, a) => new IFC4_3.IfcDistributionFlowElementType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 2963535650: (ID, a) => new IFC4_3.IfcDoorLiningProperties(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14], a[15], a[16]), 1714330368: (ID, a) => new IFC4_3.IfcDoorPanelProperties(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 2323601079: (ID, a) => new IFC4_3.IfcDoorType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12]), 445594917: (ID, a) => new IFC4_3.IfcDraughtingPreDefinedColour(ID, a[0]), 4006246654: (ID, a) => new IFC4_3.IfcDraughtingPreDefinedCurveFont(ID, a[0]), 1758889154: (ID, a) => new IFC4_3.IfcElement(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), 4123344466: (ID, a) => new IFC4_3.IfcElementAssembly(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 2397081782: (ID, a) => new IFC4_3.IfcElementAssemblyType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 1623761950: (ID, a) => new IFC4_3.IfcElementComponent(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), 2590856083: (ID, a) => new IFC4_3.IfcElementComponentType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 1704287377: (ID, a) => new IFC4_3.IfcEllipse(ID, a[0], a[1], a[2]), 2107101300: (ID, a) => new IFC4_3.IfcEnergyConversionDeviceType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 132023988: (ID, a) => new IFC4_3.IfcEngineType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 3174744832: (ID, a) => new IFC4_3.IfcEvaporativeCoolerType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 3390157468: (ID, a) => new IFC4_3.IfcEvaporatorType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 4148101412: (ID, a) => new IFC4_3.IfcEvent(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]), 2853485674: (ID, a) => new IFC4_3.IfcExternalSpatialStructureElement(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), 807026263: (ID, a) => new IFC4_3.IfcFacetedBrep(ID, a[0]), 3737207727: (ID, a) => new IFC4_3.IfcFacetedBrepWithVoids(ID, a[0], a[1]), 24185140: (ID, a) => new IFC4_3.IfcFacility(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 1310830890: (ID, a) => new IFC4_3.IfcFacilityPart(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 4228831410: (ID, a) => new IFC4_3.IfcFacilityPartCommon(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]), 647756555: (ID, a) => new IFC4_3.IfcFastener(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 2489546625: (ID, a) => new IFC4_3.IfcFastenerType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 2827207264: (ID, a) => new IFC4_3.IfcFeatureElement(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), 2143335405: (ID, a) => new IFC4_3.IfcFeatureElementAddition(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), 1287392070: (ID, a) => new IFC4_3.IfcFeatureElementSubtraction(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), 3907093117: (ID, a) => new IFC4_3.IfcFlowControllerType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 3198132628: (ID, a) => new IFC4_3.IfcFlowFittingType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 3815607619: (ID, a) => new IFC4_3.IfcFlowMeterType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 1482959167: (ID, a) => new IFC4_3.IfcFlowMovingDeviceType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 1834744321: (ID, a) => new IFC4_3.IfcFlowSegmentType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 1339347760: (ID, a) => new IFC4_3.IfcFlowStorageDeviceType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 2297155007: (ID, a) => new IFC4_3.IfcFlowTerminalType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 3009222698: (ID, a) => new IFC4_3.IfcFlowTreatmentDeviceType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 1893162501: (ID, a) => new IFC4_3.IfcFootingType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 263784265: (ID, a) => new IFC4_3.IfcFurnishingElement(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), 1509553395: (ID, a) => new IFC4_3.IfcFurniture(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 3493046030: (ID, a) => new IFC4_3.IfcGeographicElement(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 4230923436: (ID, a) => new IFC4_3.IfcGeotechnicalElement(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), 1594536857: (ID, a) => new IFC4_3.IfcGeotechnicalStratum(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 2898700619: (ID, a) => new IFC4_3.IfcGradientCurve(ID, a[0], a[1], a[2], a[3]), 2706460486: (ID, a) => new IFC4_3.IfcGroup(ID, a[0], a[1], a[2], a[3], a[4]), 1251058090: (ID, a) => new IFC4_3.IfcHeatExchangerType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 1806887404: (ID, a) => new IFC4_3.IfcHumidifierType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 2568555532: (ID, a) => new IFC4_3.IfcImpactProtectionDevice(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 3948183225: (ID, a) => new IFC4_3.IfcImpactProtectionDeviceType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 2571569899: (ID, a) => new IFC4_3.IfcIndexedPolyCurve(ID, a[0], a[1], a[2]), 3946677679: (ID, a) => new IFC4_3.IfcInterceptorType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 3113134337: (ID, a) => new IFC4_3.IfcIntersectionCurve(ID, a[0], a[1], a[2]), 2391368822: (ID, a) => new IFC4_3.IfcInventory(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]), 4288270099: (ID, a) => new IFC4_3.IfcJunctionBoxType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 679976338: (ID, a) => new IFC4_3.IfcKerbType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 3827777499: (ID, a) => new IFC4_3.IfcLaborResource(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]), 1051575348: (ID, a) => new IFC4_3.IfcLampType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 1161773419: (ID, a) => new IFC4_3.IfcLightFixtureType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 2176059722: (ID, a) => new IFC4_3.IfcLinearElement(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]), 1770583370: (ID, a) => new IFC4_3.IfcLiquidTerminalType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 525669439: (ID, a) => new IFC4_3.IfcMarineFacility(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 976884017: (ID, a) => new IFC4_3.IfcMarinePart(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]), 377706215: (ID, a) => new IFC4_3.IfcMechanicalFastener(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]), 2108223431: (ID, a) => new IFC4_3.IfcMechanicalFastenerType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]), 1114901282: (ID, a) => new IFC4_3.IfcMedicalDeviceType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 3181161470: (ID, a) => new IFC4_3.IfcMemberType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 1950438474: (ID, a) => new IFC4_3.IfcMobileTelecommunicationsApplianceType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 710110818: (ID, a) => new IFC4_3.IfcMooringDeviceType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 977012517: (ID, a) => new IFC4_3.IfcMotorConnectionType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 506776471: (ID, a) => new IFC4_3.IfcNavigationElementType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 4143007308: (ID, a) => new IFC4_3.IfcOccupant(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]), 3588315303: (ID, a) => new IFC4_3.IfcOpeningElement(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 2837617999: (ID, a) => new IFC4_3.IfcOutletType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 514975943: (ID, a) => new IFC4_3.IfcPavementType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 2382730787: (ID, a) => new IFC4_3.IfcPerformanceHistory(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), 3566463478: (ID, a) => new IFC4_3.IfcPermeableCoveringProperties(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 3327091369: (ID, a) => new IFC4_3.IfcPermit(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 1158309216: (ID, a) => new IFC4_3.IfcPileType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 804291784: (ID, a) => new IFC4_3.IfcPipeFittingType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 4231323485: (ID, a) => new IFC4_3.IfcPipeSegmentType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 4017108033: (ID, a) => new IFC4_3.IfcPlateType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 2839578677: (ID, a) => new IFC4_3.IfcPolygonalFaceSet(ID, a[0], a[1], a[2], a[3]), 3724593414: (ID, a) => new IFC4_3.IfcPolyline(ID, a[0]), 3740093272: (ID, a) => new IFC4_3.IfcPort(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]), 1946335990: (ID, a) => new IFC4_3.IfcPositioningElement(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]), 2744685151: (ID, a) => new IFC4_3.IfcProcedure(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), 2904328755: (ID, a) => new IFC4_3.IfcProjectOrder(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 3651124850: (ID, a) => new IFC4_3.IfcProjectionElement(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 1842657554: (ID, a) => new IFC4_3.IfcProtectiveDeviceType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 2250791053: (ID, a) => new IFC4_3.IfcPumpType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 1763565496: (ID, a) => new IFC4_3.IfcRailType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 2893384427: (ID, a) => new IFC4_3.IfcRailingType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 3992365140: (ID, a) => new IFC4_3.IfcRailway(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 1891881377: (ID, a) => new IFC4_3.IfcRailwayPart(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]), 2324767716: (ID, a) => new IFC4_3.IfcRampFlightType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 1469900589: (ID, a) => new IFC4_3.IfcRampType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 683857671: (ID, a) => new IFC4_3.IfcRationalBSplineSurfaceWithKnots(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12]), 4021432810: (ID, a) => new IFC4_3.IfcReferent(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), 3027567501: (ID, a) => new IFC4_3.IfcReinforcingElement(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 964333572: (ID, a) => new IFC4_3.IfcReinforcingElementType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 2320036040: (ID, a) => new IFC4_3.IfcReinforcingMesh(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14], a[15], a[16], a[17]), 2310774935: (ID, a) => new IFC4_3.IfcReinforcingMeshType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14], a[15], a[16], a[17], a[18], a[19]), 3818125796: (ID, a) => new IFC4_3.IfcRelAdheresToElement(ID, a[0], a[1], a[2], a[3], a[4], a[5]), 160246688: (ID, a) => new IFC4_3.IfcRelAggregates(ID, a[0], a[1], a[2], a[3], a[4], a[5]), 146592293: (ID, a) => new IFC4_3.IfcRoad(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 550521510: (ID, a) => new IFC4_3.IfcRoadPart(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]), 2781568857: (ID, a) => new IFC4_3.IfcRoofType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 1768891740: (ID, a) => new IFC4_3.IfcSanitaryTerminalType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 2157484638: (ID, a) => new IFC4_3.IfcSeamCurve(ID, a[0], a[1], a[2]), 3649235739: (ID, a) => new IFC4_3.IfcSecondOrderPolynomialSpiral(ID, a[0], a[1], a[2], a[3]), 544395925: (ID, a) => new IFC4_3.IfcSegmentedReferenceCurve(ID, a[0], a[1], a[2], a[3]), 1027922057: (ID, a) => new IFC4_3.IfcSeventhOrderPolynomialSpiral(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 4074543187: (ID, a) => new IFC4_3.IfcShadingDeviceType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 33720170: (ID, a) => new IFC4_3.IfcSign(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 3599934289: (ID, a) => new IFC4_3.IfcSignType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 1894708472: (ID, a) => new IFC4_3.IfcSignalType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 42703149: (ID, a) => new IFC4_3.IfcSineSpiral(ID, a[0], a[1], a[2], a[3]), 4097777520: (ID, a) => new IFC4_3.IfcSite(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13]), 2533589738: (ID, a) => new IFC4_3.IfcSlabType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 1072016465: (ID, a) => new IFC4_3.IfcSolarDeviceType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 3856911033: (ID, a) => new IFC4_3.IfcSpace(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]), 1305183839: (ID, a) => new IFC4_3.IfcSpaceHeaterType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 3812236995: (ID, a) => new IFC4_3.IfcSpaceType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]), 3112655638: (ID, a) => new IFC4_3.IfcStackTerminalType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 1039846685: (ID, a) => new IFC4_3.IfcStairFlightType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 338393293: (ID, a) => new IFC4_3.IfcStairType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 682877961: (ID, a) => new IFC4_3.IfcStructuralAction(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 1179482911: (ID, a) => new IFC4_3.IfcStructuralConnection(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), 1004757350: (ID, a) => new IFC4_3.IfcStructuralCurveAction(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]), 4243806635: (ID, a) => new IFC4_3.IfcStructuralCurveConnection(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 214636428: (ID, a) => new IFC4_3.IfcStructuralCurveMember(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 2445595289: (ID, a) => new IFC4_3.IfcStructuralCurveMemberVarying(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 2757150158: (ID, a) => new IFC4_3.IfcStructuralCurveReaction(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 1807405624: (ID, a) => new IFC4_3.IfcStructuralLinearAction(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]), 1252848954: (ID, a) => new IFC4_3.IfcStructuralLoadGroup(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 2082059205: (ID, a) => new IFC4_3.IfcStructuralPointAction(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 734778138: (ID, a) => new IFC4_3.IfcStructuralPointConnection(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 1235345126: (ID, a) => new IFC4_3.IfcStructuralPointReaction(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 2986769608: (ID, a) => new IFC4_3.IfcStructuralResultGroup(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), 3657597509: (ID, a) => new IFC4_3.IfcStructuralSurfaceAction(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]), 1975003073: (ID, a) => new IFC4_3.IfcStructuralSurfaceConnection(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), 148013059: (ID, a) => new IFC4_3.IfcSubContractResource(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]), 3101698114: (ID, a) => new IFC4_3.IfcSurfaceFeature(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 2315554128: (ID, a) => new IFC4_3.IfcSwitchingDeviceType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 2254336722: (ID, a) => new IFC4_3.IfcSystem(ID, a[0], a[1], a[2], a[3], a[4]), 413509423: (ID, a) => new IFC4_3.IfcSystemFurnitureElement(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 5716631: (ID, a) => new IFC4_3.IfcTankType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 3824725483: (ID, a) => new IFC4_3.IfcTendon(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14], a[15], a[16]), 2347447852: (ID, a) => new IFC4_3.IfcTendonAnchor(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 3081323446: (ID, a) => new IFC4_3.IfcTendonAnchorType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 3663046924: (ID, a) => new IFC4_3.IfcTendonConduit(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 2281632017: (ID, a) => new IFC4_3.IfcTendonConduitType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 2415094496: (ID, a) => new IFC4_3.IfcTendonType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12]), 618700268: (ID, a) => new IFC4_3.IfcTrackElementType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 1692211062: (ID, a) => new IFC4_3.IfcTransformerType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 2097647324: (ID, a) => new IFC4_3.IfcTransportElementType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 1953115116: (ID, a) => new IFC4_3.IfcTransportationDevice(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), 3593883385: (ID, a) => new IFC4_3.IfcTrimmedCurve(ID, a[0], a[1], a[2], a[3], a[4]), 1600972822: (ID, a) => new IFC4_3.IfcTubeBundleType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 1911125066: (ID, a) => new IFC4_3.IfcUnitaryEquipmentType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 728799441: (ID, a) => new IFC4_3.IfcValveType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 840318589: (ID, a) => new IFC4_3.IfcVehicle(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 1530820697: (ID, a) => new IFC4_3.IfcVibrationDamper(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 3956297820: (ID, a) => new IFC4_3.IfcVibrationDamperType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 2391383451: (ID, a) => new IFC4_3.IfcVibrationIsolator(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 3313531582: (ID, a) => new IFC4_3.IfcVibrationIsolatorType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 2769231204: (ID, a) => new IFC4_3.IfcVirtualElement(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 926996030: (ID, a) => new IFC4_3.IfcVoidingFeature(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 1898987631: (ID, a) => new IFC4_3.IfcWallType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 1133259667: (ID, a) => new IFC4_3.IfcWasteTerminalType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 4009809668: (ID, a) => new IFC4_3.IfcWindowType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12]), 4088093105: (ID, a) => new IFC4_3.IfcWorkCalendar(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 1028945134: (ID, a) => new IFC4_3.IfcWorkControl(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12]), 4218914973: (ID, a) => new IFC4_3.IfcWorkPlan(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13]), 3342526732: (ID, a) => new IFC4_3.IfcWorkSchedule(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13]), 1033361043: (ID, a) => new IFC4_3.IfcZone(ID, a[0], a[1], a[2], a[3], a[4], a[5]), 3821786052: (ID, a) => new IFC4_3.IfcActionRequest(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 1411407467: (ID, a) => new IFC4_3.IfcAirTerminalBoxType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 3352864051: (ID, a) => new IFC4_3.IfcAirTerminalType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 1871374353: (ID, a) => new IFC4_3.IfcAirToAirHeatRecoveryType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 4266260250: (ID, a) => new IFC4_3.IfcAlignmentCant(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), 1545765605: (ID, a) => new IFC4_3.IfcAlignmentHorizontal(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]), 317615605: (ID, a) => new IFC4_3.IfcAlignmentSegment(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), 1662888072: (ID, a) => new IFC4_3.IfcAlignmentVertical(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]), 3460190687: (ID, a) => new IFC4_3.IfcAsset(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13]), 1532957894: (ID, a) => new IFC4_3.IfcAudioVisualApplianceType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 1967976161: (ID, a) => new IFC4_3.IfcBSplineCurve(ID, a[0], a[1], a[2], a[3], a[4]), 2461110595: (ID, a) => new IFC4_3.IfcBSplineCurveWithKnots(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), 819618141: (ID, a) => new IFC4_3.IfcBeamType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 3649138523: (ID, a) => new IFC4_3.IfcBearingType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 231477066: (ID, a) => new IFC4_3.IfcBoilerType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 1136057603: (ID, a) => new IFC4_3.IfcBoundaryCurve(ID, a[0], a[1]), 644574406: (ID, a) => new IFC4_3.IfcBridge(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 963979645: (ID, a) => new IFC4_3.IfcBridgePart(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]), 4031249490: (ID, a) => new IFC4_3.IfcBuilding(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]), 2979338954: (ID, a) => new IFC4_3.IfcBuildingElementPart(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 39481116: (ID, a) => new IFC4_3.IfcBuildingElementPartType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 1909888760: (ID, a) => new IFC4_3.IfcBuildingElementProxyType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 1177604601: (ID, a) => new IFC4_3.IfcBuildingSystem(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]), 1876633798: (ID, a) => new IFC4_3.IfcBuiltElement(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), 3862327254: (ID, a) => new IFC4_3.IfcBuiltSystem(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]), 2188180465: (ID, a) => new IFC4_3.IfcBurnerType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 395041908: (ID, a) => new IFC4_3.IfcCableCarrierFittingType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 3293546465: (ID, a) => new IFC4_3.IfcCableCarrierSegmentType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 2674252688: (ID, a) => new IFC4_3.IfcCableFittingType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 1285652485: (ID, a) => new IFC4_3.IfcCableSegmentType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 3203706013: (ID, a) => new IFC4_3.IfcCaissonFoundationType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 2951183804: (ID, a) => new IFC4_3.IfcChillerType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 3296154744: (ID, a) => new IFC4_3.IfcChimney(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 2611217952: (ID, a) => new IFC4_3.IfcCircle(ID, a[0], a[1]), 1677625105: (ID, a) => new IFC4_3.IfcCivilElement(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), 2301859152: (ID, a) => new IFC4_3.IfcCoilType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 843113511: (ID, a) => new IFC4_3.IfcColumn(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 400855858: (ID, a) => new IFC4_3.IfcCommunicationsApplianceType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 3850581409: (ID, a) => new IFC4_3.IfcCompressorType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 2816379211: (ID, a) => new IFC4_3.IfcCondenserType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 3898045240: (ID, a) => new IFC4_3.IfcConstructionEquipmentResource(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]), 1060000209: (ID, a) => new IFC4_3.IfcConstructionMaterialResource(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]), 488727124: (ID, a) => new IFC4_3.IfcConstructionProductResource(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]), 2940368186: (ID, a) => new IFC4_3.IfcConveyorSegmentType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 335055490: (ID, a) => new IFC4_3.IfcCooledBeamType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 2954562838: (ID, a) => new IFC4_3.IfcCoolingTowerType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 1502416096: (ID, a) => new IFC4_3.IfcCourse(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 1973544240: (ID, a) => new IFC4_3.IfcCovering(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 3495092785: (ID, a) => new IFC4_3.IfcCurtainWall(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 3961806047: (ID, a) => new IFC4_3.IfcDamperType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 3426335179: (ID, a) => new IFC4_3.IfcDeepFoundation(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), 1335981549: (ID, a) => new IFC4_3.IfcDiscreteAccessory(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 2635815018: (ID, a) => new IFC4_3.IfcDiscreteAccessoryType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 479945903: (ID, a) => new IFC4_3.IfcDistributionBoardType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 1599208980: (ID, a) => new IFC4_3.IfcDistributionChamberElementType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 2063403501: (ID, a) => new IFC4_3.IfcDistributionControlElementType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 1945004755: (ID, a) => new IFC4_3.IfcDistributionElement(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), 3040386961: (ID, a) => new IFC4_3.IfcDistributionFlowElement(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), 3041715199: (ID, a) => new IFC4_3.IfcDistributionPort(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 3205830791: (ID, a) => new IFC4_3.IfcDistributionSystem(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]), 395920057: (ID, a) => new IFC4_3.IfcDoor(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12]), 869906466: (ID, a) => new IFC4_3.IfcDuctFittingType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 3760055223: (ID, a) => new IFC4_3.IfcDuctSegmentType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 2030761528: (ID, a) => new IFC4_3.IfcDuctSilencerType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 3071239417: (ID, a) => new IFC4_3.IfcEarthworksCut(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 1077100507: (ID, a) => new IFC4_3.IfcEarthworksElement(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), 3376911765: (ID, a) => new IFC4_3.IfcEarthworksFill(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 663422040: (ID, a) => new IFC4_3.IfcElectricApplianceType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 2417008758: (ID, a) => new IFC4_3.IfcElectricDistributionBoardType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 3277789161: (ID, a) => new IFC4_3.IfcElectricFlowStorageDeviceType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 2142170206: (ID, a) => new IFC4_3.IfcElectricFlowTreatmentDeviceType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 1534661035: (ID, a) => new IFC4_3.IfcElectricGeneratorType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 1217240411: (ID, a) => new IFC4_3.IfcElectricMotorType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 712377611: (ID, a) => new IFC4_3.IfcElectricTimeControlType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 1658829314: (ID, a) => new IFC4_3.IfcEnergyConversionDevice(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), 2814081492: (ID, a) => new IFC4_3.IfcEngine(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 3747195512: (ID, a) => new IFC4_3.IfcEvaporativeCooler(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 484807127: (ID, a) => new IFC4_3.IfcEvaporator(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 1209101575: (ID, a) => new IFC4_3.IfcExternalSpatialElement(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 346874300: (ID, a) => new IFC4_3.IfcFanType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 1810631287: (ID, a) => new IFC4_3.IfcFilterType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 4222183408: (ID, a) => new IFC4_3.IfcFireSuppressionTerminalType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 2058353004: (ID, a) => new IFC4_3.IfcFlowController(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), 4278956645: (ID, a) => new IFC4_3.IfcFlowFitting(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), 4037862832: (ID, a) => new IFC4_3.IfcFlowInstrumentType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 2188021234: (ID, a) => new IFC4_3.IfcFlowMeter(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 3132237377: (ID, a) => new IFC4_3.IfcFlowMovingDevice(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), 987401354: (ID, a) => new IFC4_3.IfcFlowSegment(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), 707683696: (ID, a) => new IFC4_3.IfcFlowStorageDevice(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), 2223149337: (ID, a) => new IFC4_3.IfcFlowTerminal(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), 3508470533: (ID, a) => new IFC4_3.IfcFlowTreatmentDevice(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), 900683007: (ID, a) => new IFC4_3.IfcFooting(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 2713699986: (ID, a) => new IFC4_3.IfcGeotechnicalAssembly(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), 3009204131: (ID, a) => new IFC4_3.IfcGrid(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]), 3319311131: (ID, a) => new IFC4_3.IfcHeatExchanger(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 2068733104: (ID, a) => new IFC4_3.IfcHumidifier(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 4175244083: (ID, a) => new IFC4_3.IfcInterceptor(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 2176052936: (ID, a) => new IFC4_3.IfcJunctionBox(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 2696325953: (ID, a) => new IFC4_3.IfcKerb(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 76236018: (ID, a) => new IFC4_3.IfcLamp(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 629592764: (ID, a) => new IFC4_3.IfcLightFixture(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 1154579445: (ID, a) => new IFC4_3.IfcLinearPositioningElement(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]), 1638804497: (ID, a) => new IFC4_3.IfcLiquidTerminal(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 1437502449: (ID, a) => new IFC4_3.IfcMedicalDevice(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 1073191201: (ID, a) => new IFC4_3.IfcMember(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 2078563270: (ID, a) => new IFC4_3.IfcMobileTelecommunicationsAppliance(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 234836483: (ID, a) => new IFC4_3.IfcMooringDevice(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 2474470126: (ID, a) => new IFC4_3.IfcMotorConnection(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 2182337498: (ID, a) => new IFC4_3.IfcNavigationElement(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 144952367: (ID, a) => new IFC4_3.IfcOuterBoundaryCurve(ID, a[0], a[1]), 3694346114: (ID, a) => new IFC4_3.IfcOutlet(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 1383356374: (ID, a) => new IFC4_3.IfcPavement(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 1687234759: (ID, a) => new IFC4_3.IfcPile(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 310824031: (ID, a) => new IFC4_3.IfcPipeFitting(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 3612865200: (ID, a) => new IFC4_3.IfcPipeSegment(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 3171933400: (ID, a) => new IFC4_3.IfcPlate(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 738039164: (ID, a) => new IFC4_3.IfcProtectiveDevice(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 655969474: (ID, a) => new IFC4_3.IfcProtectiveDeviceTrippingUnitType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 90941305: (ID, a) => new IFC4_3.IfcPump(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 3290496277: (ID, a) => new IFC4_3.IfcRail(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 2262370178: (ID, a) => new IFC4_3.IfcRailing(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 3024970846: (ID, a) => new IFC4_3.IfcRamp(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 3283111854: (ID, a) => new IFC4_3.IfcRampFlight(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 1232101972: (ID, a) => new IFC4_3.IfcRationalBSplineCurveWithKnots(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 3798194928: (ID, a) => new IFC4_3.IfcReinforcedSoil(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 979691226: (ID, a) => new IFC4_3.IfcReinforcingBar(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13]), 2572171363: (ID, a) => new IFC4_3.IfcReinforcingBarType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14], a[15]), 2016517767: (ID, a) => new IFC4_3.IfcRoof(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 3053780830: (ID, a) => new IFC4_3.IfcSanitaryTerminal(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 1783015770: (ID, a) => new IFC4_3.IfcSensorType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 1329646415: (ID, a) => new IFC4_3.IfcShadingDevice(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 991950508: (ID, a) => new IFC4_3.IfcSignal(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 1529196076: (ID, a) => new IFC4_3.IfcSlab(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 3420628829: (ID, a) => new IFC4_3.IfcSolarDevice(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 1999602285: (ID, a) => new IFC4_3.IfcSpaceHeater(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 1404847402: (ID, a) => new IFC4_3.IfcStackTerminal(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 331165859: (ID, a) => new IFC4_3.IfcStair(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 4252922144: (ID, a) => new IFC4_3.IfcStairFlight(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12]), 2515109513: (ID, a) => new IFC4_3.IfcStructuralAnalysisModel(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 385403989: (ID, a) => new IFC4_3.IfcStructuralLoadCase(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]), 1621171031: (ID, a) => new IFC4_3.IfcStructuralPlanarAction(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]), 1162798199: (ID, a) => new IFC4_3.IfcSwitchingDevice(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 812556717: (ID, a) => new IFC4_3.IfcTank(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 3425753595: (ID, a) => new IFC4_3.IfcTrackElement(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 3825984169: (ID, a) => new IFC4_3.IfcTransformer(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 1620046519: (ID, a) => new IFC4_3.IfcTransportElement(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 3026737570: (ID, a) => new IFC4_3.IfcTubeBundle(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 3179687236: (ID, a) => new IFC4_3.IfcUnitaryControlElementType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 4292641817: (ID, a) => new IFC4_3.IfcUnitaryEquipment(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 4207607924: (ID, a) => new IFC4_3.IfcValve(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 2391406946: (ID, a) => new IFC4_3.IfcWall(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 3512223829: (ID, a) => new IFC4_3.IfcWallStandardCase(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 4237592921: (ID, a) => new IFC4_3.IfcWasteTerminal(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 3304561284: (ID, a) => new IFC4_3.IfcWindow(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12]), 2874132201: (ID, a) => new IFC4_3.IfcActuatorType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 1634111441: (ID, a) => new IFC4_3.IfcAirTerminal(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 177149247: (ID, a) => new IFC4_3.IfcAirTerminalBox(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 2056796094: (ID, a) => new IFC4_3.IfcAirToAirHeatRecovery(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 3001207471: (ID, a) => new IFC4_3.IfcAlarmType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 325726236: (ID, a) => new IFC4_3.IfcAlignment(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), 277319702: (ID, a) => new IFC4_3.IfcAudioVisualAppliance(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 753842376: (ID, a) => new IFC4_3.IfcBeam(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 4196446775: (ID, a) => new IFC4_3.IfcBearing(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 32344328: (ID, a) => new IFC4_3.IfcBoiler(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 3314249567: (ID, a) => new IFC4_3.IfcBorehole(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), 1095909175: (ID, a) => new IFC4_3.IfcBuildingElementProxy(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 2938176219: (ID, a) => new IFC4_3.IfcBurner(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 635142910: (ID, a) => new IFC4_3.IfcCableCarrierFitting(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 3758799889: (ID, a) => new IFC4_3.IfcCableCarrierSegment(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 1051757585: (ID, a) => new IFC4_3.IfcCableFitting(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 4217484030: (ID, a) => new IFC4_3.IfcCableSegment(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 3999819293: (ID, a) => new IFC4_3.IfcCaissonFoundation(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 3902619387: (ID, a) => new IFC4_3.IfcChiller(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 639361253: (ID, a) => new IFC4_3.IfcCoil(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 3221913625: (ID, a) => new IFC4_3.IfcCommunicationsAppliance(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 3571504051: (ID, a) => new IFC4_3.IfcCompressor(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 2272882330: (ID, a) => new IFC4_3.IfcCondenser(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 578613899: (ID, a) => new IFC4_3.IfcControllerType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 3460952963: (ID, a) => new IFC4_3.IfcConveyorSegment(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 4136498852: (ID, a) => new IFC4_3.IfcCooledBeam(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 3640358203: (ID, a) => new IFC4_3.IfcCoolingTower(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 4074379575: (ID, a) => new IFC4_3.IfcDamper(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 3693000487: (ID, a) => new IFC4_3.IfcDistributionBoard(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 1052013943: (ID, a) => new IFC4_3.IfcDistributionChamberElement(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 562808652: (ID, a) => new IFC4_3.IfcDistributionCircuit(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]), 1062813311: (ID, a) => new IFC4_3.IfcDistributionControlElement(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), 342316401: (ID, a) => new IFC4_3.IfcDuctFitting(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 3518393246: (ID, a) => new IFC4_3.IfcDuctSegment(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 1360408905: (ID, a) => new IFC4_3.IfcDuctSilencer(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 1904799276: (ID, a) => new IFC4_3.IfcElectricAppliance(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 862014818: (ID, a) => new IFC4_3.IfcElectricDistributionBoard(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 3310460725: (ID, a) => new IFC4_3.IfcElectricFlowStorageDevice(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 24726584: (ID, a) => new IFC4_3.IfcElectricFlowTreatmentDevice(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 264262732: (ID, a) => new IFC4_3.IfcElectricGenerator(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 402227799: (ID, a) => new IFC4_3.IfcElectricMotor(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 1003880860: (ID, a) => new IFC4_3.IfcElectricTimeControl(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 3415622556: (ID, a) => new IFC4_3.IfcFan(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 819412036: (ID, a) => new IFC4_3.IfcFilter(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 1426591983: (ID, a) => new IFC4_3.IfcFireSuppressionTerminal(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 182646315: (ID, a) => new IFC4_3.IfcFlowInstrument(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 2680139844: (ID, a) => new IFC4_3.IfcGeomodel(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), 1971632696: (ID, a) => new IFC4_3.IfcGeoslice(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), 2295281155: (ID, a) => new IFC4_3.IfcProtectiveDeviceTrippingUnit(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 4086658281: (ID, a) => new IFC4_3.IfcSensor(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 630975310: (ID, a) => new IFC4_3.IfcUnitaryControlElement(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 4288193352: (ID, a) => new IFC4_3.IfcActuator(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 3087945054: (ID, a) => new IFC4_3.IfcAlarm(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 25142252: (ID, a) => new IFC4_3.IfcController(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]) }; ToRawLineData[2] = { 3630933823: (i) => [i.Role, i.UserDefinedRole, i.Description], 618182010: (i) => [i.Purpose, i.Description, i.UserDefinedPurpose], 2879124712: (i) => [i.StartTag, i.EndTag], 3633395639: (i) => [i.StartTag, i.EndTag, i.StartDistAlong, i.HorizontalLength, i.StartHeight, i.StartGradient, i.EndGradient, i.RadiusOfCurvature, i.PredefinedType], 639542469: (i) => [i.ApplicationDeveloper, i.Version, i.ApplicationFullName, i.ApplicationIdentifier], 411424972: (i) => [i.Name, i.Description, i.AppliedValue, i.UnitBasis, i.ApplicableDate, i.FixedUntilDate, i.Category, i.Condition, i.ArithmeticOperator, i.Components], 130549933: (i) => [i.Identifier, i.Name, i.Description, i.TimeOfApproval, i.Status, i.Level, i.Qualifier, i.RequestingApproval, i.GivingApproval], 4037036970: (i) => [i.Name], 1560379544: (i) => [i.Name, !i.TranslationalStiffnessByLengthX ? null : Labelise(i.TranslationalStiffnessByLengthX), !i.TranslationalStiffnessByLengthY ? null : Labelise(i.TranslationalStiffnessByLengthY), !i.TranslationalStiffnessByLengthZ ? null : Labelise(i.TranslationalStiffnessByLengthZ), !i.RotationalStiffnessByLengthX ? null : Labelise(i.RotationalStiffnessByLengthX), !i.RotationalStiffnessByLengthY ? null : Labelise(i.RotationalStiffnessByLengthY), !i.RotationalStiffnessByLengthZ ? null : Labelise(i.RotationalStiffnessByLengthZ)], 3367102660: (i) => [i.Name, !i.TranslationalStiffnessByAreaX ? null : Labelise(i.TranslationalStiffnessByAreaX), !i.TranslationalStiffnessByAreaY ? null : Labelise(i.TranslationalStiffnessByAreaY), !i.TranslationalStiffnessByAreaZ ? null : Labelise(i.TranslationalStiffnessByAreaZ)], 1387855156: (i) => [i.Name, !i.TranslationalStiffnessX ? null : Labelise(i.TranslationalStiffnessX), !i.TranslationalStiffnessY ? null : Labelise(i.TranslationalStiffnessY), !i.TranslationalStiffnessZ ? null : Labelise(i.TranslationalStiffnessZ), !i.RotationalStiffnessX ? null : Labelise(i.RotationalStiffnessX), !i.RotationalStiffnessY ? null : Labelise(i.RotationalStiffnessY), !i.RotationalStiffnessZ ? null : Labelise(i.RotationalStiffnessZ)], 2069777674: (i) => [i.Name, !i.TranslationalStiffnessX ? null : Labelise(i.TranslationalStiffnessX), !i.TranslationalStiffnessY ? null : Labelise(i.TranslationalStiffnessY), !i.TranslationalStiffnessZ ? null : Labelise(i.TranslationalStiffnessZ), !i.RotationalStiffnessX ? null : Labelise(i.RotationalStiffnessX), !i.RotationalStiffnessY ? null : Labelise(i.RotationalStiffnessY), !i.RotationalStiffnessZ ? null : Labelise(i.RotationalStiffnessZ), !i.WarpingStiffness ? null : Labelise(i.WarpingStiffness)], 2859738748: (_) => [], 2614616156: (i) => [i.PointOnRelatingElement, i.PointOnRelatedElement], 2732653382: (i) => [i.SurfaceOnRelatingElement, i.SurfaceOnRelatedElement], 775493141: (i) => [i.VolumeOnRelatingElement, i.VolumeOnRelatedElement], 1959218052: (i) => [i.Name, i.Description, i.ConstraintGrade, i.ConstraintSource, i.CreatingActor, i.CreationTime, i.UserDefinedGrade], 1785450214: (i) => [i.SourceCRS, i.TargetCRS], 1466758467: (i) => [i.Name, i.Description, i.GeodeticDatum, i.VerticalDatum], 602808272: (i) => [i.Name, i.Description, i.AppliedValue, i.UnitBasis, i.ApplicableDate, i.FixedUntilDate, i.Category, i.Condition, i.ArithmeticOperator, i.Components], 1765591967: (i) => [i.Elements, i.UnitType, i.UserDefinedType, i.Name], 1045800335: (i) => [i.Unit, i.Exponent], 2949456006: (i) => [i.LengthExponent, i.MassExponent, i.TimeExponent, i.ElectricCurrentExponent, i.ThermodynamicTemperatureExponent, i.AmountOfSubstanceExponent, i.LuminousIntensityExponent], 4294318154: (_) => [], 3200245327: (i) => [i.Location, i.Identification, i.Name], 2242383968: (i) => [i.Location, i.Identification, i.Name], 1040185647: (i) => [i.Location, i.Identification, i.Name], 3548104201: (i) => [i.Location, i.Identification, i.Name], 852622518: (i) => [i.AxisTag, i.AxisCurve, i.SameSense], 3020489413: (i) => [i.TimeStamp, i.ListValues.map((p) => Labelise(p))], 2655187982: (i) => [i.Name, i.Version, i.Publisher, i.VersionDate, i.Location, i.Description], 3452421091: (i) => [i.Location, i.Identification, i.Name, i.Description, i.Language, i.ReferencedLibrary], 4162380809: (i) => [i.MainPlaneAngle, i.SecondaryPlaneAngle, i.LuminousIntensity], 1566485204: (i) => [i.LightDistributionCurve, i.DistributionData], 3057273783: (i) => [i.SourceCRS, i.TargetCRS, i.Eastings, i.Northings, i.OrthogonalHeight, i.XAxisAbscissa, i.XAxisOrdinate, i.Scale, i.ScaleY, i.ScaleZ], 1847130766: (i) => [i.MaterialClassifications, i.ClassifiedMaterial], 760658860: (_) => [], 248100487: (i) => [i.Material, i.LayerThickness, i.IsVentilated, i.Name, i.Description, i.Category, i.Priority], 3303938423: (i) => [i.MaterialLayers, i.LayerSetName, i.Description], 1847252529: (i) => [i.Material, i.LayerThickness, i.IsVentilated, i.Name, i.Description, i.Category, i.Priority, i.OffsetDirection, i.OffsetValues], 2199411900: (i) => [i.Materials], 2235152071: (i) => [i.Name, i.Description, i.Material, i.Profile, i.Priority, i.Category], 164193824: (i) => [i.Name, i.Description, i.MaterialProfiles, i.CompositeProfile], 552965576: (i) => [i.Name, i.Description, i.Material, i.Profile, i.Priority, i.Category, i.OffsetValues], 1507914824: (_) => [], 2597039031: (i) => [Labelise(i.ValueComponent), i.UnitComponent], 3368373690: (i) => [i.Name, i.Description, i.ConstraintGrade, i.ConstraintSource, i.CreatingActor, i.CreationTime, i.UserDefinedGrade, i.Benchmark, i.ValueSource, i.DataValue, i.ReferencePath], 2706619895: (i) => [i.Currency], 1918398963: (i) => [i.Dimensions, i.UnitType], 3701648758: (i) => [i.PlacementRelTo], 2251480897: (i) => [i.Name, i.Description, i.ConstraintGrade, i.ConstraintSource, i.CreatingActor, i.CreationTime, i.UserDefinedGrade, i.BenchmarkValues, i.LogicalAggregator, i.ObjectiveQualifier, i.UserDefinedQualifier], 4251960020: (i) => [i.Identification, i.Name, i.Description, i.Roles, i.Addresses], 1207048766: (i) => [i.OwningUser, i.OwningApplication, i.State, i.ChangeAction, i.LastModifiedDate, i.LastModifyingUser, i.LastModifyingApplication, i.CreationDate], 2077209135: (i) => [i.Identification, i.FamilyName, i.GivenName, i.MiddleNames, i.PrefixTitles, i.SuffixTitles, i.Roles, i.Addresses], 101040310: (i) => [i.ThePerson, i.TheOrganization, i.Roles], 2483315170: (i) => [i.Name, i.Description], 2226359599: (i) => [i.Name, i.Description, i.Unit], 3355820592: (i) => [i.Purpose, i.Description, i.UserDefinedPurpose, i.InternalLocation, i.AddressLines, i.PostalBox, i.Town, i.Region, i.PostalCode, i.Country], 677532197: (_) => [], 2022622350: (i) => [i.Name, i.Description, i.AssignedItems, i.Identifier], 1304840413: (i) => [i.Name, i.Description, i.AssignedItems, i.Identifier, i.LayerOn, i.LayerFrozen, i.LayerBlocked, i.LayerStyles], 3119450353: (i) => [i.Name], 2095639259: (i) => [i.Name, i.Description, i.Representations], 3958567839: (i) => [i.ProfileType, i.ProfileName], 3843373140: (i) => [i.Name, i.Description, i.GeodeticDatum, i.VerticalDatum, i.MapProjection, i.MapZone, i.MapUnit], 986844984: (_) => [], 3710013099: (i) => [i.Name, i.EnumerationValues.map((p) => Labelise(p)), i.Unit], 2044713172: (i) => [i.Name, i.Description, i.Unit, i.AreaValue, i.Formula], 2093928680: (i) => [i.Name, i.Description, i.Unit, i.CountValue, i.Formula], 931644368: (i) => [i.Name, i.Description, i.Unit, i.LengthValue, i.Formula], 2691318326: (i) => [i.Name, i.Description, i.Unit, i.NumberValue, i.Formula], 3252649465: (i) => [i.Name, i.Description, i.Unit, i.TimeValue, i.Formula], 2405470396: (i) => [i.Name, i.Description, i.Unit, i.VolumeValue, i.Formula], 825690147: (i) => [i.Name, i.Description, i.Unit, i.WeightValue, i.Formula], 3915482550: (i) => [i.RecurrenceType, i.DayComponent, i.WeekdayComponent, i.MonthComponent, i.Position, i.Interval, i.Occurrences, i.TimePeriods], 2433181523: (i) => [i.TypeIdentifier, i.AttributeIdentifier, i.InstanceName, i.ListPositions, i.InnerReference], 1076942058: (i) => [i.ContextOfItems, i.RepresentationIdentifier, i.RepresentationType, i.Items], 3377609919: (i) => [i.ContextIdentifier, i.ContextType], 3008791417: (_) => [], 1660063152: (i) => [i.MappingOrigin, i.MappedRepresentation], 2439245199: (i) => [i.Name, i.Description], 2341007311: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description], 448429030: (i) => [i.Dimensions, i.UnitType, i.Prefix, i.Name], 1054537805: (i) => [i.Name, i.DataOrigin, i.UserDefinedDataOrigin], 867548509: (i) => [i.ShapeRepresentations, i.Name, i.Description, i.ProductDefinitional, i.PartOfProductDefinitionShape], 3982875396: (i) => [i.ContextOfItems, i.RepresentationIdentifier, i.RepresentationType, i.Items], 4240577450: (i) => [i.ContextOfItems, i.RepresentationIdentifier, i.RepresentationType, i.Items], 2273995522: (i) => [i.Name], 2162789131: (i) => [i.Name], 3478079324: (i) => [i.Name, i.Values, i.Locations], 609421318: (i) => [i.Name], 2525727697: (i) => [i.Name], 3408363356: (i) => [i.Name, i.DeltaTConstant, i.DeltaTY, i.DeltaTZ], 2830218821: (i) => [i.ContextOfItems, i.RepresentationIdentifier, i.RepresentationType, i.Items], 3958052878: (i) => [i.Item, i.Styles, i.Name], 3049322572: (i) => [i.ContextOfItems, i.RepresentationIdentifier, i.RepresentationType, i.Items], 2934153892: (i) => [i.Name, i.SurfaceReinforcement1, i.SurfaceReinforcement2, i.ShearReinforcement], 1300840506: (i) => [i.Name, i.Side, i.Styles], 3303107099: (i) => [i.DiffuseTransmissionColour, i.DiffuseReflectionColour, i.TransmissionColour, i.ReflectanceColour], 1607154358: (i) => [i.RefractionIndex, i.DispersionFactor], 846575682: (i) => [i.SurfaceColour, i.Transparency], 1351298697: (i) => [i.Textures], 626085974: (i) => [i.RepeatS, i.RepeatT, i.Mode, i.TextureTransform, i.Parameter], 985171141: (i) => [i.Name, i.Rows, i.Columns], 2043862942: (i) => [i.Identifier, i.Name, i.Description, i.Unit, i.ReferencePath], 531007025: (i) => [!i.RowCells ? null : i.RowCells.map((p) => Labelise(p)), i.IsHeading], 1549132990: (i) => [i.Name, i.DataOrigin, i.UserDefinedDataOrigin, i.DurationType, i.ScheduleDuration, i.ScheduleStart, i.ScheduleFinish, i.EarlyStart, i.EarlyFinish, i.LateStart, i.LateFinish, i.FreeFloat, i.TotalFloat, i.IsCritical, i.StatusTime, i.ActualDuration, i.ActualStart, i.ActualFinish, i.RemainingTime, i.Completion], 2771591690: (i) => [i.Name, i.DataOrigin, i.UserDefinedDataOrigin, i.DurationType, i.ScheduleDuration, i.ScheduleStart, i.ScheduleFinish, i.EarlyStart, i.EarlyFinish, i.LateStart, i.LateFinish, i.FreeFloat, i.TotalFloat, i.IsCritical, i.StatusTime, i.ActualDuration, i.ActualStart, i.ActualFinish, i.RemainingTime, i.Completion, i.Recurrence], 912023232: (i) => [i.Purpose, i.Description, i.UserDefinedPurpose, i.TelephoneNumbers, i.FacsimileNumbers, i.PagerNumber, i.ElectronicMailAddresses, i.WWWHomePageURL, i.MessagingIDs], 1447204868: (i) => [i.Name, i.TextCharacterAppearance, i.TextStyle, i.TextFontStyle, i.ModelOrDraughting], 2636378356: (i) => [i.Colour, i.BackgroundColour], 1640371178: (i) => [!i.TextIndent ? null : Labelise(i.TextIndent), i.TextAlign, i.TextDecoration, !i.LetterSpacing ? null : Labelise(i.LetterSpacing), !i.WordSpacing ? null : Labelise(i.WordSpacing), i.TextTransform, !i.LineHeight ? null : Labelise(i.LineHeight)], 280115917: (i) => [i.Maps], 1742049831: (i) => [i.Maps, i.Mode, i.Parameter], 222769930: (i) => [i.TexCoordIndex, i.TexCoordsOf], 1010789467: (i) => [i.TexCoordIndex, i.TexCoordsOf, i.InnerTexCoordIndices], 2552916305: (i) => [i.Maps, i.Vertices, i.MappedTo], 1210645708: (i) => [i.Coordinates], 3611470254: (i) => [i.TexCoordsList], 1199560280: (i) => [i.StartTime, i.EndTime], 3101149627: (i) => [i.Name, i.Description, i.StartTime, i.EndTime, i.TimeSeriesDataType, i.DataOrigin, i.UserDefinedDataOrigin, i.Unit], 581633288: (i) => [i.ListValues.map((p) => Labelise(p))], 1377556343: (_) => [], 1735638870: (i) => [i.ContextOfItems, i.RepresentationIdentifier, i.RepresentationType, i.Items], 180925521: (i) => [i.Units], 2799835756: (_) => [], 1907098498: (i) => [i.VertexGeometry], 891718957: (i) => [i.IntersectingAxes, i.OffsetDistances], 1236880293: (i) => [i.Name, i.DataOrigin, i.UserDefinedDataOrigin, i.RecurrencePattern, i.StartDate, i.FinishDate], 3752311538: (i) => [i.StartTag, i.EndTag, i.StartDistAlong, i.HorizontalLength, i.StartCantLeft, i.EndCantLeft, i.StartCantRight, i.EndCantRight, i.PredefinedType], 536804194: (i) => [i.StartTag, i.EndTag, i.StartPoint, i.StartDirection, i.StartRadiusOfCurvature, i.EndRadiusOfCurvature, i.SegmentLength, i.GravityCenterLineHeight, i.PredefinedType], 3869604511: (i) => [i.Name, i.Description, i.RelatingApproval, i.RelatedApprovals], 3798115385: (i) => [i.ProfileType, i.ProfileName, i.OuterCurve], 1310608509: (i) => [i.ProfileType, i.ProfileName, i.Curve], 2705031697: (i) => [i.ProfileType, i.ProfileName, i.OuterCurve, i.InnerCurves], 616511568: (i) => [i.RepeatS, i.RepeatT, i.Mode, i.TextureTransform, i.Parameter, i.RasterFormat, i.RasterCode], 3150382593: (i) => [i.ProfileType, i.ProfileName, i.Curve, i.Thickness], 747523909: (i) => [i.Source, i.Edition, i.EditionDate, i.Name, i.Description, i.Specification, i.ReferenceTokens], 647927063: (i) => [i.Location, i.Identification, i.Name, i.ReferencedSource, i.Description, i.Sort], 3285139300: (i) => [i.ColourList], 3264961684: (i) => [i.Name], 1485152156: (i) => [i.ProfileType, i.ProfileName, i.Profiles, i.Label], 370225590: (i) => [i.CfsFaces], 1981873012: (i) => [i.CurveOnRelatingElement, i.CurveOnRelatedElement], 45288368: (i) => [i.PointOnRelatingElement, i.PointOnRelatedElement, i.EccentricityInX, i.EccentricityInY, i.EccentricityInZ], 3050246964: (i) => [i.Dimensions, i.UnitType, i.Name], 2889183280: (i) => [i.Dimensions, i.UnitType, i.Name, i.ConversionFactor], 2713554722: (i) => [i.Dimensions, i.UnitType, i.Name, i.ConversionFactor, i.ConversionOffset], 539742890: (i) => [i.Name, i.Description, i.RelatingMonetaryUnit, i.RelatedMonetaryUnit, i.ExchangeRate, i.RateDateTime, i.RateSource], 3800577675: (i) => [i.Name, i.CurveFont, !i.CurveWidth ? null : Labelise(i.CurveWidth), i.CurveColour, i.ModelOrDraughting], 1105321065: (i) => [i.Name, i.PatternList], 2367409068: (i) => [i.Name, i.CurveStyleFont, i.CurveFontScaling], 3510044353: (i) => [i.VisibleSegmentLength, i.InvisibleSegmentLength], 3632507154: (i) => [i.ProfileType, i.ProfileName, i.ParentProfile, i.Operator, i.Label], 1154170062: (i) => [i.Identification, i.Name, i.Description, i.Location, i.Purpose, i.IntendedUse, i.Scope, i.Revision, i.DocumentOwner, i.Editors, i.CreationTime, i.LastRevisionTime, i.ElectronicFormat, i.ValidFrom, i.ValidUntil, i.Confidentiality, i.Status], 770865208: (i) => [i.Name, i.Description, i.RelatingDocument, i.RelatedDocuments, i.RelationshipType], 3732053477: (i) => [i.Location, i.Identification, i.Name, i.Description, i.ReferencedDocument], 3900360178: (i) => [i.EdgeStart, i.EdgeEnd], 476780140: (i) => [i.EdgeStart, i.EdgeEnd, i.EdgeGeometry, i.SameSense], 211053100: (i) => [i.Name, i.DataOrigin, i.UserDefinedDataOrigin, i.ActualDate, i.EarlyDate, i.LateDate, i.ScheduleDate], 297599258: (i) => [i.Name, i.Description, i.Properties], 1437805879: (i) => [i.Name, i.Description, i.RelatingReference, i.RelatedResourceObjects], 2556980723: (i) => [i.Bounds], 1809719519: (i) => [i.Bound, i.Orientation], 803316827: (i) => [i.Bound, i.Orientation], 3008276851: (i) => [i.Bounds, i.FaceSurface, i.SameSense], 4219587988: (i) => [i.Name, i.TensionFailureX, i.TensionFailureY, i.TensionFailureZ, i.CompressionFailureX, i.CompressionFailureY, i.CompressionFailureZ], 738692330: (i) => [i.Name, i.FillStyles, i.ModelOrDraughting], 3448662350: (i) => [i.ContextIdentifier, i.ContextType, i.CoordinateSpaceDimension, i.Precision, i.WorldCoordinateSystem, i.TrueNorth], 2453401579: (_) => [], 4142052618: (i) => [i.ContextIdentifier, i.ContextType, i.CoordinateSpaceDimension, i.Precision, i.WorldCoordinateSystem, i.TrueNorth, i.ParentContext, i.TargetScale, i.TargetView, i.UserDefinedTargetView], 3590301190: (i) => [i.Elements], 178086475: (i) => [i.PlacementRelTo, i.PlacementLocation, i.PlacementRefDirection], 812098782: (i) => [i.BaseSurface, i.AgreementFlag], 3905492369: (i) => [i.RepeatS, i.RepeatT, i.Mode, i.TextureTransform, i.Parameter, i.URLReference], 3570813810: (i) => [i.MappedTo, i.Opacity, i.Colours, i.ColourIndex], 1437953363: (i) => [i.Maps, i.MappedTo, i.TexCoords], 2133299955: (i) => [i.Maps, i.MappedTo, i.TexCoords, i.TexCoordIndex], 3741457305: (i) => [i.Name, i.Description, i.StartTime, i.EndTime, i.TimeSeriesDataType, i.DataOrigin, i.UserDefinedDataOrigin, i.Unit, i.Values], 1585845231: (i) => [i.Name, i.DataOrigin, i.UserDefinedDataOrigin, Labelise(i.LagValue), i.DurationType], 1402838566: (i) => [i.Name, i.LightColour, i.AmbientIntensity, i.Intensity], 125510826: (i) => [i.Name, i.LightColour, i.AmbientIntensity, i.Intensity], 2604431987: (i) => [i.Name, i.LightColour, i.AmbientIntensity, i.Intensity, i.Orientation], 4266656042: (i) => [i.Name, i.LightColour, i.AmbientIntensity, i.Intensity, i.Position, i.ColourAppearance, i.ColourTemperature, i.LuminousFlux, i.LightEmissionSource, i.LightDistributionDataSource], 1520743889: (i) => [i.Name, i.LightColour, i.AmbientIntensity, i.Intensity, i.Position, i.Radius, i.ConstantAttenuation, i.DistanceAttenuation, i.QuadricAttenuation], 3422422726: (i) => [i.Name, i.LightColour, i.AmbientIntensity, i.Intensity, i.Position, i.Radius, i.ConstantAttenuation, i.DistanceAttenuation, i.QuadricAttenuation, i.Orientation, i.ConcentrationExponent, i.SpreadAngle, i.BeamWidthAngle], 388784114: (i) => [i.PlacementRelTo, i.RelativePlacement, i.CartesianPosition], 2624227202: (i) => [i.PlacementRelTo, i.RelativePlacement], 1008929658: (_) => [], 2347385850: (i) => [i.MappingSource, i.MappingTarget], 1838606355: (i) => [i.Name, i.Description, i.Category], 3708119e3: (i) => [i.Name, i.Description, i.Material, i.Fraction, i.Category], 2852063980: (i) => [i.Name, i.Description, i.MaterialConstituents], 2022407955: (i) => [i.Name, i.Description, i.Representations, i.RepresentedMaterial], 1303795690: (i) => [i.ForLayerSet, i.LayerSetDirection, i.DirectionSense, i.OffsetFromReferenceLine, i.ReferenceExtent], 3079605661: (i) => [i.ForProfileSet, i.CardinalPoint, i.ReferenceExtent], 3404854881: (i) => [i.ForProfileSet, i.CardinalPoint, i.ReferenceExtent, i.ForProfileEndSet, i.CardinalEndPoint], 3265635763: (i) => [i.Name, i.Description, i.Properties, i.Material], 853536259: (i) => [i.Name, i.Description, i.RelatingMaterial, i.RelatedMaterials, i.MaterialExpression], 2998442950: (i) => [i.ProfileType, i.ProfileName, i.ParentProfile, i.Operator, i.Label], 219451334: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description], 182550632: (i) => [i.ProfileType, i.ProfileName, i.HorizontalWidths, i.Widths, i.Slopes, i.Tags, i.OffsetPoint], 2665983363: (i) => [i.CfsFaces], 1411181986: (i) => [i.Name, i.Description, i.RelatingOrganization, i.RelatedOrganizations], 1029017970: (i) => [i.EdgeStart, i.EdgeEnd, i.EdgeElement, i.Orientation], 2529465313: (i) => [i.ProfileType, i.ProfileName, i.Position], 2519244187: (i) => [i.EdgeList], 3021840470: (i) => [i.Name, i.Description, i.HasQuantities, i.Discrimination, i.Quality, i.Usage], 597895409: (i) => [i.RepeatS, i.RepeatT, i.Mode, i.TextureTransform, i.Parameter, i.Width, i.Height, i.ColourComponents, i.Pixel], 2004835150: (i) => [i.Location], 1663979128: (i) => [i.SizeInX, i.SizeInY], 2067069095: (_) => [], 2165702409: (i) => [Labelise(i.DistanceAlong), i.OffsetLateral, i.OffsetVertical, i.OffsetLongitudinal, i.BasisCurve], 4022376103: (i) => [i.BasisCurve, i.PointParameter], 1423911732: (i) => [i.BasisSurface, i.PointParameterU, i.PointParameterV], 2924175390: (i) => [i.Polygon], 2775532180: (i) => [i.BaseSurface, i.AgreementFlag, i.Position, i.PolygonalBoundary], 3727388367: (i) => [i.Name], 3778827333: (_) => [], 1775413392: (i) => [i.Name], 673634403: (i) => [i.Name, i.Description, i.Representations], 2802850158: (i) => [i.Name, i.Description, i.Properties, i.ProfileDefinition], 2598011224: (i) => [i.Name, i.Specification], 1680319473: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description], 148025276: (i) => [i.Name, i.Description, i.DependingProperty, i.DependantProperty, i.Expression], 3357820518: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description], 1482703590: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description], 2090586900: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description], 3615266464: (i) => [i.ProfileType, i.ProfileName, i.Position, i.XDim, i.YDim], 3413951693: (i) => [i.Name, i.Description, i.StartTime, i.EndTime, i.TimeSeriesDataType, i.DataOrigin, i.UserDefinedDataOrigin, i.Unit, i.TimeStep, i.Values], 1580146022: (i) => [i.TotalCrossSectionArea, i.SteelGrade, i.BarSurface, i.EffectiveDepth, i.NominalBarDiameter, i.BarCount], 478536968: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description], 2943643501: (i) => [i.Name, i.Description, i.RelatedResourceObjects, i.RelatingApproval], 1608871552: (i) => [i.Name, i.Description, i.RelatingConstraint, i.RelatedResourceObjects], 1042787934: (i) => [i.Name, i.DataOrigin, i.UserDefinedDataOrigin, i.ScheduleWork, i.ScheduleUsage, i.ScheduleStart, i.ScheduleFinish, i.ScheduleContour, i.LevelingDelay, i.IsOverAllocated, i.StatusTime, i.ActualWork, i.ActualUsage, i.ActualStart, i.ActualFinish, i.RemainingWork, i.RemainingUsage, i.Completion], 2778083089: (i) => [i.ProfileType, i.ProfileName, i.Position, i.XDim, i.YDim, i.RoundingRadius], 2042790032: (i) => [i.SectionType, i.StartProfile, i.EndProfile], 4165799628: (i) => [i.LongitudinalStartPosition, i.LongitudinalEndPosition, i.TransversePosition, i.ReinforcementRole, i.SectionDefinition, i.CrossSectionReinforcementDefinitions], 1509187699: (i) => [i.SpineCurve, i.CrossSections, i.CrossSectionPositions], 823603102: (i) => [i.Transition], 4124623270: (i) => [i.SbsmBoundary], 3692461612: (i) => [i.Name, i.Specification], 2609359061: (i) => [i.Name, i.SlippageX, i.SlippageY, i.SlippageZ], 723233188: (_) => [], 1595516126: (i) => [i.Name, i.LinearForceX, i.LinearForceY, i.LinearForceZ, i.LinearMomentX, i.LinearMomentY, i.LinearMomentZ], 2668620305: (i) => [i.Name, i.PlanarForceX, i.PlanarForceY, i.PlanarForceZ], 2473145415: (i) => [i.Name, i.DisplacementX, i.DisplacementY, i.DisplacementZ, i.RotationalDisplacementRX, i.RotationalDisplacementRY, i.RotationalDisplacementRZ], 1973038258: (i) => [i.Name, i.DisplacementX, i.DisplacementY, i.DisplacementZ, i.RotationalDisplacementRX, i.RotationalDisplacementRY, i.RotationalDisplacementRZ, i.Distortion], 1597423693: (i) => [i.Name, i.ForceX, i.ForceY, i.ForceZ, i.MomentX, i.MomentY, i.MomentZ], 1190533807: (i) => [i.Name, i.ForceX, i.ForceY, i.ForceZ, i.MomentX, i.MomentY, i.MomentZ, i.WarpingMoment], 2233826070: (i) => [i.EdgeStart, i.EdgeEnd, i.ParentEdge], 2513912981: (_) => [], 1878645084: (i) => [i.SurfaceColour, i.Transparency, i.DiffuseColour, i.TransmissionColour, i.DiffuseTransmissionColour, i.ReflectionColour, i.SpecularColour, !i.SpecularHighlight ? null : Labelise(i.SpecularHighlight), i.ReflectanceMethod], 2247615214: (i) => [i.SweptArea, i.Position], 1260650574: (i) => [i.Directrix, i.Radius, i.InnerRadius, i.StartParam, i.EndParam], 1096409881: (i) => [i.Directrix, i.Radius, i.InnerRadius, i.StartParam, i.EndParam, i.FilletRadius], 230924584: (i) => [i.SweptCurve, i.Position], 3071757647: (i) => [i.ProfileType, i.ProfileName, i.Position, i.Depth, i.FlangeWidth, i.WebThickness, i.FlangeThickness, i.FilletRadius, i.FlangeEdgeRadius, i.WebEdgeRadius, i.WebSlope, i.FlangeSlope], 901063453: (_) => [], 4282788508: (i) => [i.Literal, i.Placement, i.Path], 3124975700: (i) => [i.Literal, i.Placement, i.Path, i.Extent, i.BoxAlignment], 1983826977: (i) => [i.Name, i.FontFamily, i.FontStyle, i.FontVariant, i.FontWeight, Labelise(i.FontSize)], 2715220739: (i) => [i.ProfileType, i.ProfileName, i.Position, i.BottomXDim, i.TopXDim, i.YDim, i.TopXOffset], 1628702193: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets], 3736923433: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.Identification, i.LongDescription, i.ProcessType], 2347495698: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag], 3698973494: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.Identification, i.LongDescription, i.ResourceType], 427810014: (i) => [i.ProfileType, i.ProfileName, i.Position, i.Depth, i.FlangeWidth, i.WebThickness, i.FlangeThickness, i.FilletRadius, i.EdgeRadius, i.FlangeSlope], 1417489154: (i) => [i.Orientation, i.Magnitude], 2759199220: (i) => [i.LoopVertex], 2543172580: (i) => [i.ProfileType, i.ProfileName, i.Position, i.Depth, i.FlangeWidth, i.WebThickness, i.FlangeThickness, i.FilletRadius, i.EdgeRadius], 3406155212: (i) => [i.Bounds, i.FaceSurface, i.SameSense], 669184980: (i) => [i.OuterBoundary, i.InnerBoundaries], 3207858831: (i) => [i.ProfileType, i.ProfileName, i.Position, i.BottomFlangeWidth, i.OverallDepth, i.WebThickness, i.BottomFlangeThickness, i.BottomFlangeFilletRadius, i.TopFlangeWidth, i.TopFlangeThickness, i.TopFlangeFilletRadius, i.BottomFlangeEdgeRadius, i.BottomFlangeSlope, i.TopFlangeEdgeRadius, i.TopFlangeSlope], 4261334040: (i) => [i.Location, i.Axis], 3125803723: (i) => [i.Location, i.RefDirection], 2740243338: (i) => [i.Location, i.Axis, i.RefDirection], 3425423356: (i) => [i.Location, i.Axis, i.RefDirection], 2736907675: (i) => [i.Operator, i.FirstOperand, i.SecondOperand], 4182860854: (_) => [], 2581212453: (i) => [i.Corner, i.XDim, i.YDim, i.ZDim], 2713105998: (i) => [i.BaseSurface, i.AgreementFlag, i.Enclosure], 2898889636: (i) => [i.ProfileType, i.ProfileName, i.Position, i.Depth, i.Width, i.WallThickness, i.Girth, i.InternalFilletRadius], 1123145078: (i) => [i.Coordinates], 574549367: (_) => [], 1675464909: (i) => [i.CoordList, i.TagList], 2059837836: (i) => [i.CoordList, i.TagList], 59481748: (i) => [i.Axis1, i.Axis2, i.LocalOrigin, i.Scale], 3749851601: (i) => [i.Axis1, i.Axis2, i.LocalOrigin, i.Scale], 3486308946: (i) => [i.Axis1, i.Axis2, i.LocalOrigin, i.Scale, i.Scale2], 3331915920: (i) => [i.Axis1, i.Axis2, i.LocalOrigin, i.Scale, i.Axis3], 1416205885: (i) => [i.Axis1, i.Axis2, i.LocalOrigin, i.Scale, i.Axis3, i.Scale2, i.Scale3], 1383045692: (i) => [i.ProfileType, i.ProfileName, i.Position, i.Radius], 2205249479: (i) => [i.CfsFaces], 776857604: (i) => [i.Name, i.Red, i.Green, i.Blue], 2542286263: (i) => [i.Name, i.Specification, i.UsageName, i.HasProperties], 2485617015: (i) => [i.Transition, i.SameSense, i.ParentCurve], 2574617495: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.Identification, i.LongDescription, i.ResourceType, i.BaseCosts, i.BaseQuantity], 3419103109: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.LongName, i.Phase, i.RepresentationContexts, i.UnitsInContext], 1815067380: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.Identification, i.LongDescription, i.ResourceType, i.BaseCosts, i.BaseQuantity, i.PredefinedType], 2506170314: (i) => [i.Position], 2147822146: (i) => [i.TreeRootExpression], 2601014836: (_) => [], 2827736869: (i) => [i.BasisSurface, i.OuterBoundary, i.InnerBoundaries], 2629017746: (i) => [i.BasisSurface, i.Boundaries, i.ImplicitOuter], 4212018352: (i) => [i.Transition, i.Placement, Labelise(i.SegmentStart), Labelise(i.SegmentLength), i.ParentCurve], 32440307: (i) => [i.DirectionRatios], 593015953: (i) => [i.SweptArea, i.Position, i.Directrix, !i.StartParam ? null : Labelise(i.StartParam), !i.EndParam ? null : Labelise(i.EndParam)], 1472233963: (i) => [i.EdgeList], 1883228015: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.MethodOfMeasurement, i.Quantities], 339256511: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType], 2777663545: (i) => [i.Position], 2835456948: (i) => [i.ProfileType, i.ProfileName, i.Position, i.SemiAxis1, i.SemiAxis2], 4024345920: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.Identification, i.LongDescription, i.ProcessType, i.PredefinedType, i.EventTriggerType, i.UserDefinedEventTriggerType], 477187591: (i) => [i.SweptArea, i.Position, i.ExtrudedDirection, i.Depth], 2804161546: (i) => [i.SweptArea, i.Position, i.ExtrudedDirection, i.Depth, i.EndSweptArea], 2047409740: (i) => [i.FbsmFaces], 374418227: (i) => [i.HatchLineAppearance, i.StartOfNextHatchLine, i.PointOfReferenceHatchLine, i.PatternStart, i.HatchLineAngle], 315944413: (i) => [i.TilingPattern, i.Tiles, i.TilingScale], 2652556860: (i) => [i.SweptArea, i.Position, i.Directrix, !i.StartParam ? null : Labelise(i.StartParam), !i.EndParam ? null : Labelise(i.EndParam), i.FixedReference], 4238390223: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType], 1268542332: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.AssemblyPlace, i.PredefinedType], 4095422895: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 987898635: (i) => [i.Elements], 1484403080: (i) => [i.ProfileType, i.ProfileName, i.Position, i.OverallWidth, i.OverallDepth, i.WebThickness, i.FlangeThickness, i.FilletRadius, i.FlangeEdgeRadius, i.FlangeSlope], 178912537: (i) => [i.CoordIndex], 2294589976: (i) => [i.CoordIndex, i.InnerCoordIndices], 3465909080: (i) => [i.Maps, i.MappedTo, i.TexCoords, i.TexCoordIndices], 572779678: (i) => [i.ProfileType, i.ProfileName, i.Position, i.Depth, i.Width, i.Thickness, i.FilletRadius, i.EdgeRadius, i.LegSlope], 428585644: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.Identification, i.LongDescription, i.ResourceType, i.BaseCosts, i.BaseQuantity, i.PredefinedType], 1281925730: (i) => [i.Pnt, i.Dir], 1425443689: (i) => [i.Outer], 3888040117: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType], 590820931: (i) => [i.BasisCurve], 3388369263: (i) => [i.BasisCurve, i.Distance, i.SelfIntersect], 3505215534: (i) => [i.BasisCurve, i.Distance, i.SelfIntersect, i.RefDirection], 2485787929: (i) => [i.BasisCurve, i.OffsetValues, i.Tag], 1682466193: (i) => [i.BasisSurface, i.ReferenceCurve], 603570806: (i) => [i.SizeInX, i.SizeInY, i.Placement], 220341763: (i) => [i.Position], 3381221214: (i) => [i.Position, i.CoefficientsX, i.CoefficientsY, i.CoefficientsZ], 759155922: (i) => [i.Name], 2559016684: (i) => [i.Name], 3967405729: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description], 569719735: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.Identification, i.LongDescription, i.ProcessType, i.PredefinedType], 2945172077: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.LongDescription], 4208778838: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation], 103090709: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.LongName, i.Phase, i.RepresentationContexts, i.UnitsInContext], 653396225: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.LongName, i.Phase, i.RepresentationContexts, i.UnitsInContext], 871118103: (i) => [i.Name, i.Specification, !i.UpperBoundValue ? null : Labelise(i.UpperBoundValue), !i.LowerBoundValue ? null : Labelise(i.LowerBoundValue), i.Unit, !i.SetPointValue ? null : Labelise(i.SetPointValue)], 4166981789: (i) => [i.Name, i.Specification, !i.EnumerationValues ? null : i.EnumerationValues.map((p) => Labelise(p)), i.EnumerationReference], 2752243245: (i) => [i.Name, i.Specification, !i.ListValues ? null : i.ListValues.map((p) => Labelise(p)), i.Unit], 941946838: (i) => [i.Name, i.Specification, i.UsageName, i.PropertyReference], 1451395588: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.HasProperties], 492091185: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.TemplateType, i.ApplicableEntity, i.HasPropertyTemplates], 3650150729: (i) => [i.Name, i.Specification, !i.NominalValue ? null : Labelise(i.NominalValue), i.Unit], 110355661: (i) => [i.Name, i.Specification, !i.DefiningValues ? null : i.DefiningValues.map((p) => Labelise(p)), !i.DefinedValues ? null : i.DefinedValues.map((p) => Labelise(p)), i.Expression, i.DefiningUnit, i.DefinedUnit, i.CurveInterpolation], 3521284610: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description], 2770003689: (i) => [i.ProfileType, i.ProfileName, i.Position, i.XDim, i.YDim, i.WallThickness, i.InnerFilletRadius, i.OuterFilletRadius], 2798486643: (i) => [i.Position, i.XLength, i.YLength, i.Height], 3454111270: (i) => [i.BasisSurface, i.U1, i.V1, i.U2, i.V2, i.Usense, i.Vsense], 3765753017: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.DefinitionType, i.ReinforcementSectionDefinitions], 3939117080: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatedObjectsType], 1683148259: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatedObjectsType, i.RelatingActor, i.ActingRole], 2495723537: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatedObjectsType, i.RelatingControl], 1307041759: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatedObjectsType, i.RelatingGroup], 1027710054: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatedObjectsType, i.RelatingGroup, i.Factor], 4278684876: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatedObjectsType, i.RelatingProcess, i.QuantityInProcess], 2857406711: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatedObjectsType, i.RelatingProduct], 205026976: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatedObjectsType, i.RelatingResource], 1865459582: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects], 4095574036: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatingApproval], 919958153: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatingClassification], 2728634034: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.Intent, i.RelatingConstraint], 982818633: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatingDocument], 3840914261: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatingLibrary], 2655215786: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatingMaterial], 1033248425: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatingProfileDef], 826625072: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description], 1204542856: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ConnectionGeometry, i.RelatingElement, i.RelatedElement], 3945020480: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ConnectionGeometry, i.RelatingElement, i.RelatedElement, i.RelatingPriorities, i.RelatedPriorities, i.RelatedConnectionType, i.RelatingConnectionType], 4201705270: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingPort, i.RelatedElement], 3190031847: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingPort, i.RelatedPort, i.RealizingElement], 2127690289: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingElement, i.RelatedStructuralActivity], 1638771189: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingStructuralMember, i.RelatedStructuralConnection, i.AppliedCondition, i.AdditionalConditions, i.SupportedLength, i.ConditionCoordinateSystem], 504942748: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingStructuralMember, i.RelatedStructuralConnection, i.AppliedCondition, i.AdditionalConditions, i.SupportedLength, i.ConditionCoordinateSystem, i.ConnectionConstraint], 3678494232: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ConnectionGeometry, i.RelatingElement, i.RelatedElement, i.RealizingElements, i.ConnectionType], 3242617779: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedElements, i.RelatingStructure], 886880790: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingBuildingElement, i.RelatedCoverings], 2802773753: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingSpace, i.RelatedCoverings], 2565941209: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingContext, i.RelatedDefinitions], 2551354335: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description], 693640335: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description], 1462361463: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatingObject], 4186316022: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatingPropertyDefinition], 307848117: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedPropertySets, i.RelatingTemplate], 781010003: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatingType], 3940055652: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingOpeningElement, i.RelatedBuildingElement], 279856033: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedControlElements, i.RelatingFlowElement], 427948657: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingElement, i.RelatedElement, i.InterferenceGeometry, i.InterferenceSpace, i.InterferenceType, i.ImpliedOrder], 3268803585: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingObject, i.RelatedObjects], 1441486842: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingPositioningElement, i.RelatedProducts], 750771296: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingElement, i.RelatedFeatureElement], 1245217292: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedElements, i.RelatingStructure], 4122056220: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingProcess, i.RelatedProcess, i.TimeLag, i.SequenceType, i.UserDefinedSequenceType], 366585022: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingSystem, i.RelatedBuildings], 3451746338: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingSpace, i.RelatedBuildingElement, i.ConnectionGeometry, i.PhysicalOrVirtualBoundary, i.InternalOrExternalBoundary], 3523091289: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingSpace, i.RelatedBuildingElement, i.ConnectionGeometry, i.PhysicalOrVirtualBoundary, i.InternalOrExternalBoundary, i.ParentBoundary], 1521410863: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingSpace, i.RelatedBuildingElement, i.ConnectionGeometry, i.PhysicalOrVirtualBoundary, i.InternalOrExternalBoundary, i.ParentBoundary, i.CorrespondingBoundary], 1401173127: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingBuildingElement, i.RelatedOpeningElement], 816062949: (i) => [i.Transition, i.SameSense, i.ParentCurve, i.ParamLength], 2914609552: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.LongDescription], 1856042241: (i) => [i.SweptArea, i.Position, i.Axis, i.Angle], 3243963512: (i) => [i.SweptArea, i.Position, i.Axis, i.Angle, i.EndSweptArea], 4158566097: (i) => [i.Position, i.Height, i.BottomRadius], 3626867408: (i) => [i.Position, i.Height, i.Radius], 1862484736: (i) => [i.Directrix, i.CrossSections], 1290935644: (i) => [i.Directrix, i.CrossSections, i.CrossSectionPositions], 1356537516: (i) => [i.Directrix, i.CrossSectionPositions, i.CrossSections], 3663146110: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.TemplateType, i.PrimaryMeasureType, i.SecondaryMeasureType, i.Enumerators, i.PrimaryUnit, i.SecondaryUnit, i.Expression, i.AccessState], 1412071761: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.LongName], 710998568: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType], 2706606064: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.LongName, i.CompositionType], 3893378262: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType], 463610769: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.LongName, i.PredefinedType], 2481509218: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType, i.LongName], 451544542: (i) => [i.Position, i.Radius], 4015995234: (i) => [i.Position, i.Radius], 2735484536: (i) => [i.Position], 3544373492: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedLoad, i.GlobalOrLocal], 3136571912: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation], 530289379: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation], 3689010777: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedLoad, i.GlobalOrLocal], 3979015343: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.PredefinedType, i.Thickness], 2218152070: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.PredefinedType, i.Thickness], 603775116: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedLoad, i.GlobalOrLocal, i.PredefinedType], 4095615324: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.Identification, i.LongDescription, i.ResourceType, i.BaseCosts, i.BaseQuantity, i.PredefinedType], 699246055: (i) => [i.Curve3D, i.AssociatedGeometry, i.MasterRepresentation], 2028607225: (i) => [i.SweptArea, i.Position, i.Directrix, !i.StartParam ? null : Labelise(i.StartParam), !i.EndParam ? null : Labelise(i.EndParam), i.ReferenceSurface], 2809605785: (i) => [i.SweptCurve, i.Position, i.ExtrudedDirection, i.Depth], 4124788165: (i) => [i.SweptCurve, i.Position, i.AxisPosition], 1580310250: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 3473067441: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.LongDescription, i.Status, i.WorkMethod, i.IsMilestone, i.Priority, i.TaskTime, i.PredefinedType], 3206491090: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.Identification, i.LongDescription, i.ProcessType, i.PredefinedType, i.WorkMethod], 2387106220: (i) => [i.Coordinates, i.Closed], 782932809: (i) => [i.Position, i.CubicTerm, i.QuadraticTerm, i.LinearTerm, i.ConstantTerm], 1935646853: (i) => [i.Position, i.MajorRadius, i.MinorRadius], 3665877780: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType], 2916149573: (i) => [i.Coordinates, i.Closed, i.Normals, i.CoordIndex, i.PnIndex], 1229763772: (i) => [i.Coordinates, i.Closed, i.Normals, i.CoordIndex, i.PnIndex, i.Flags], 3651464721: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 336235671: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.LiningDepth, i.LiningThickness, i.TransomThickness, i.MullionThickness, i.FirstTransomOffset, i.SecondTransomOffset, i.FirstMullionOffset, i.SecondMullionOffset, i.ShapeAspectStyle, i.LiningOffset, i.LiningToPanelOffsetX, i.LiningToPanelOffsetY], 512836454: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.OperationType, i.PanelPosition, i.FrameDepth, i.FrameThickness, i.ShapeAspectStyle], 2296667514: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.TheActor], 1635779807: (i) => [i.Outer], 2603310189: (i) => [i.Outer, i.Voids], 1674181508: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.PredefinedType], 2887950389: (i) => [i.UDegree, i.VDegree, i.ControlPointsList, i.SurfaceForm, i.UClosed, i.VClosed, i.SelfIntersect], 167062518: (i) => [i.UDegree, i.VDegree, i.ControlPointsList, i.SurfaceForm, i.UClosed, i.VClosed, i.SelfIntersect, i.UMultiplicities, i.VMultiplicities, i.UKnots, i.VKnots, i.KnotSpec], 1334484129: (i) => [i.Position, i.XLength, i.YLength, i.ZLength], 3649129432: (i) => [i.Operator, i.FirstOperand, i.SecondOperand], 1260505505: (_) => [], 3124254112: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.LongName, i.CompositionType, i.Elevation], 1626504194: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType], 2197970202: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 2937912522: (i) => [i.ProfileType, i.ProfileName, i.Position, i.Radius, i.WallThickness], 3893394355: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType], 3497074424: (i) => [i.Position, i.ClothoidConstant], 300633059: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 3875453745: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.UsageName, i.TemplateType, i.HasPropertyTemplates], 3732776249: (i) => [i.Segments, i.SelfIntersect], 15328376: (i) => [i.Segments, i.SelfIntersect], 2510884976: (i) => [i.Position], 2185764099: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.Identification, i.LongDescription, i.ResourceType, i.BaseCosts, i.BaseQuantity, i.PredefinedType], 4105962743: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.Identification, i.LongDescription, i.ResourceType, i.BaseCosts, i.BaseQuantity, i.PredefinedType], 1525564444: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.Identification, i.LongDescription, i.ResourceType, i.BaseCosts, i.BaseQuantity, i.PredefinedType], 2559216714: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.LongDescription, i.Usage, i.BaseCosts, i.BaseQuantity], 3293443760: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification], 2000195564: (i) => [i.Position, i.CosineTerm, i.ConstantTerm], 3895139033: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.PredefinedType, i.CostValues, i.CostQuantities], 1419761937: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.PredefinedType, i.Status, i.SubmittedOn, i.UpdateDate], 4189326743: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 1916426348: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 3295246426: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.LongDescription, i.Usage, i.BaseCosts, i.BaseQuantity, i.PredefinedType], 1457835157: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 1213902940: (i) => [i.Position, i.Radius], 1306400036: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType], 4234616927: (i) => [i.SweptArea, i.Position, i.Directrix, !i.StartParam ? null : Labelise(i.StartParam), !i.EndParam ? null : Labelise(i.EndParam), i.FixedReference], 3256556792: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType], 3849074793: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType], 2963535650: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.LiningDepth, i.LiningThickness, i.ThresholdDepth, i.ThresholdThickness, i.TransomThickness, i.TransomOffset, i.LiningOffset, i.ThresholdOffset, i.CasingThickness, i.CasingDepth, i.ShapeAspectStyle, i.LiningToPanelOffsetX, i.LiningToPanelOffsetY], 1714330368: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.PanelDepth, i.PanelOperation, i.PanelWidth, i.PanelPosition, i.ShapeAspectStyle], 2323601079: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType, i.OperationType, i.ParameterTakesPrecedence, i.UserDefinedOperationType], 445594917: (i) => [i.Name], 4006246654: (i) => [i.Name], 1758889154: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag], 4123344466: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.AssemblyPlace, i.PredefinedType], 2397081782: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 1623761950: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag], 2590856083: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType], 1704287377: (i) => [i.Position, i.SemiAxis1, i.SemiAxis2], 2107101300: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType], 132023988: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 3174744832: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 3390157468: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 4148101412: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.LongDescription, i.PredefinedType, i.EventTriggerType, i.UserDefinedEventTriggerType, i.EventOccurenceTime], 2853485674: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.LongName], 807026263: (i) => [i.Outer], 3737207727: (i) => [i.Outer, i.Voids], 24185140: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.LongName, i.CompositionType], 1310830890: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.LongName, i.CompositionType, i.UsageType], 4228831410: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.LongName, i.CompositionType, i.UsageType, i.PredefinedType], 647756555: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 2489546625: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 2827207264: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag], 2143335405: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag], 1287392070: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag], 3907093117: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType], 3198132628: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType], 3815607619: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 1482959167: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType], 1834744321: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType], 1339347760: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType], 2297155007: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType], 3009222698: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType], 1893162501: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 263784265: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag], 1509553395: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 3493046030: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 4230923436: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag], 1594536857: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 2898700619: (i) => [i.Segments, i.SelfIntersect, i.BaseCurve, i.EndPoint], 2706460486: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType], 1251058090: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 1806887404: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 2568555532: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 3948183225: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 2571569899: (i) => [i.Points, !i.Segments ? null : i.Segments.map((p) => Labelise(p)), i.SelfIntersect], 3946677679: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 3113134337: (i) => [i.Curve3D, i.AssociatedGeometry, i.MasterRepresentation], 2391368822: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.PredefinedType, i.Jurisdiction, i.ResponsiblePersons, i.LastUpdateDate, i.CurrentValue, i.OriginalValue], 4288270099: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 679976338: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.Mountable], 3827777499: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.LongDescription, i.Usage, i.BaseCosts, i.BaseQuantity, i.PredefinedType], 1051575348: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 1161773419: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 2176059722: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation], 1770583370: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 525669439: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.LongName, i.CompositionType, i.PredefinedType], 976884017: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.LongName, i.CompositionType, i.UsageType, i.PredefinedType], 377706215: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.NominalDiameter, i.NominalLength, i.PredefinedType], 2108223431: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType, i.NominalDiameter, i.NominalLength], 1114901282: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 3181161470: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 1950438474: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 710110818: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 977012517: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 506776471: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 4143007308: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.TheActor, i.PredefinedType], 3588315303: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 2837617999: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 514975943: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 2382730787: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.LifeCyclePhase, i.PredefinedType], 3566463478: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.OperationType, i.PanelPosition, i.FrameDepth, i.FrameThickness, i.ShapeAspectStyle], 3327091369: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.PredefinedType, i.Status, i.LongDescription], 1158309216: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 804291784: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 4231323485: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 4017108033: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 2839578677: (i) => [i.Coordinates, i.Closed, i.Faces, i.PnIndex], 3724593414: (i) => [i.Points], 3740093272: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation], 1946335990: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation], 2744685151: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.LongDescription, i.PredefinedType], 2904328755: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.PredefinedType, i.Status, i.LongDescription], 3651124850: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 1842657554: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 2250791053: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 1763565496: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 2893384427: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 3992365140: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.LongName, i.CompositionType, i.PredefinedType], 1891881377: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.LongName, i.CompositionType, i.UsageType, i.PredefinedType], 2324767716: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 1469900589: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 683857671: (i) => [i.UDegree, i.VDegree, i.ControlPointsList, i.SurfaceForm, i.UClosed, i.VClosed, i.SelfIntersect, i.UMultiplicities, i.VMultiplicities, i.UKnots, i.VKnots, i.KnotSpec, i.WeightsData], 4021432810: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.PredefinedType], 3027567501: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.SteelGrade], 964333572: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType], 2320036040: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.SteelGrade, i.MeshLength, i.MeshWidth, i.LongitudinalBarNominalDiameter, i.TransverseBarNominalDiameter, i.LongitudinalBarCrossSectionArea, i.TransverseBarCrossSectionArea, i.LongitudinalBarSpacing, i.TransverseBarSpacing, i.PredefinedType], 2310774935: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType, i.MeshLength, i.MeshWidth, i.LongitudinalBarNominalDiameter, i.TransverseBarNominalDiameter, i.LongitudinalBarCrossSectionArea, i.TransverseBarCrossSectionArea, i.LongitudinalBarSpacing, i.TransverseBarSpacing, i.BendingShapeCode, !i.BendingParameters ? null : i.BendingParameters.map((p) => Labelise(p))], 3818125796: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingElement, i.RelatedSurfaceFeatures], 160246688: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingObject, i.RelatedObjects], 146592293: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.LongName, i.CompositionType, i.PredefinedType], 550521510: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.LongName, i.CompositionType, i.UsageType, i.PredefinedType], 2781568857: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 1768891740: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 2157484638: (i) => [i.Curve3D, i.AssociatedGeometry, i.MasterRepresentation], 3649235739: (i) => [i.Position, i.QuadraticTerm, i.LinearTerm, i.ConstantTerm], 544395925: (i) => [i.Segments, i.SelfIntersect, i.BaseCurve, i.EndPoint], 1027922057: (i) => [i.Position, i.SepticTerm, i.SexticTerm, i.QuinticTerm, i.QuarticTerm, i.CubicTerm, i.QuadraticTerm, i.LinearTerm, i.ConstantTerm], 4074543187: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 33720170: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 3599934289: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 1894708472: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 42703149: (i) => [i.Position, i.SineTerm, i.LinearTerm, i.ConstantTerm], 4097777520: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.LongName, i.CompositionType, i.RefLatitude, i.RefLongitude, i.RefElevation, i.LandTitleNumber, i.SiteAddress], 2533589738: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 1072016465: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 3856911033: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.LongName, i.CompositionType, i.PredefinedType, i.ElevationWithFlooring], 1305183839: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 3812236995: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType, i.LongName], 3112655638: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 1039846685: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 338393293: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 682877961: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedLoad, i.GlobalOrLocal, i.DestabilizingLoad], 1179482911: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedCondition], 1004757350: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedLoad, i.GlobalOrLocal, i.DestabilizingLoad, i.ProjectedOrTrue, i.PredefinedType], 4243806635: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedCondition, i.AxisDirection], 214636428: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.PredefinedType, i.Axis], 2445595289: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.PredefinedType, i.Axis], 2757150158: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedLoad, i.GlobalOrLocal, i.PredefinedType], 1807405624: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedLoad, i.GlobalOrLocal, i.DestabilizingLoad, i.ProjectedOrTrue, i.PredefinedType], 1252848954: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.PredefinedType, i.ActionType, i.ActionSource, i.Coefficient, i.Purpose], 2082059205: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedLoad, i.GlobalOrLocal, i.DestabilizingLoad], 734778138: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedCondition, i.ConditionCoordinateSystem], 1235345126: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedLoad, i.GlobalOrLocal], 2986769608: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.TheoryType, i.ResultForLoadGroup, i.IsLinear], 3657597509: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedLoad, i.GlobalOrLocal, i.DestabilizingLoad, i.ProjectedOrTrue, i.PredefinedType], 1975003073: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedCondition], 148013059: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.LongDescription, i.Usage, i.BaseCosts, i.BaseQuantity, i.PredefinedType], 3101698114: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 2315554128: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 2254336722: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType], 413509423: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 5716631: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 3824725483: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.SteelGrade, i.PredefinedType, i.NominalDiameter, i.CrossSectionArea, i.TensionForce, i.PreStress, i.FrictionCoefficient, i.AnchorageSlip, i.MinCurvatureRadius], 2347447852: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.SteelGrade, i.PredefinedType], 3081323446: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 3663046924: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.SteelGrade, i.PredefinedType], 2281632017: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 2415094496: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType, i.NominalDiameter, i.CrossSectionArea, i.SheathDiameter], 618700268: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 1692211062: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 2097647324: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 1953115116: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag], 3593883385: (i) => [i.BasisCurve, i.Trim1, i.Trim2, i.SenseAgreement, i.MasterRepresentation], 1600972822: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 1911125066: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 728799441: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 840318589: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 1530820697: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 3956297820: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 2391383451: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 3313531582: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 2769231204: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 926996030: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 1898987631: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 1133259667: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 4009809668: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType, i.PartitioningType, i.ParameterTakesPrecedence, i.UserDefinedPartitioningType], 4088093105: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.WorkingTimes, i.ExceptionTimes, i.PredefinedType], 1028945134: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.CreationDate, i.Creators, i.Purpose, i.Duration, i.TotalFloat, i.StartTime, i.FinishTime], 4218914973: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.CreationDate, i.Creators, i.Purpose, i.Duration, i.TotalFloat, i.StartTime, i.FinishTime, i.PredefinedType], 3342526732: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.CreationDate, i.Creators, i.Purpose, i.Duration, i.TotalFloat, i.StartTime, i.FinishTime, i.PredefinedType], 1033361043: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.LongName], 3821786052: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.PredefinedType, i.Status, i.LongDescription], 1411407467: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 3352864051: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 1871374353: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 4266260250: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.RailHeadDistance], 1545765605: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation], 317615605: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.DesignParameters], 1662888072: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation], 3460190687: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.OriginalValue, i.CurrentValue, i.TotalReplacementCost, i.Owner, i.User, i.ResponsiblePerson, i.IncorporationDate, i.DepreciatedValue], 1532957894: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 1967976161: (i) => [i.Degree, i.ControlPointsList, i.CurveForm, i.ClosedCurve, i.SelfIntersect], 2461110595: (i) => [i.Degree, i.ControlPointsList, i.CurveForm, i.ClosedCurve, i.SelfIntersect, i.KnotMultiplicities, i.Knots, i.KnotSpec], 819618141: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 3649138523: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 231477066: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 1136057603: (i) => [i.Segments, i.SelfIntersect], 644574406: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.LongName, i.CompositionType, i.PredefinedType], 963979645: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.LongName, i.CompositionType, i.UsageType, i.PredefinedType], 4031249490: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.LongName, i.CompositionType, i.ElevationOfRefHeight, i.ElevationOfTerrain, i.BuildingAddress], 2979338954: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 39481116: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 1909888760: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 1177604601: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.PredefinedType, i.LongName], 1876633798: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag], 3862327254: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.PredefinedType, i.LongName], 2188180465: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 395041908: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 3293546465: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 2674252688: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 1285652485: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 3203706013: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 2951183804: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 3296154744: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 2611217952: (i) => [i.Position, i.Radius], 1677625105: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag], 2301859152: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 843113511: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 400855858: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 3850581409: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 2816379211: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 3898045240: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.LongDescription, i.Usage, i.BaseCosts, i.BaseQuantity, i.PredefinedType], 1060000209: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.LongDescription, i.Usage, i.BaseCosts, i.BaseQuantity, i.PredefinedType], 488727124: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.LongDescription, i.Usage, i.BaseCosts, i.BaseQuantity, i.PredefinedType], 2940368186: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 335055490: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 2954562838: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 1502416096: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 1973544240: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 3495092785: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 3961806047: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 3426335179: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag], 1335981549: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 2635815018: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 479945903: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 1599208980: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 2063403501: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType], 1945004755: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag], 3040386961: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag], 3041715199: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.FlowDirection, i.PredefinedType, i.SystemType], 3205830791: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.LongName, i.PredefinedType], 395920057: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.OverallHeight, i.OverallWidth, i.PredefinedType, i.OperationType, i.UserDefinedOperationType], 869906466: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 3760055223: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 2030761528: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 3071239417: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 1077100507: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag], 3376911765: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 663422040: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 2417008758: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 3277789161: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 2142170206: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 1534661035: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 1217240411: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 712377611: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 1658829314: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag], 2814081492: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 3747195512: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 484807127: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 1209101575: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.LongName, i.PredefinedType], 346874300: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 1810631287: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 4222183408: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 2058353004: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag], 4278956645: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag], 4037862832: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 2188021234: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 3132237377: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag], 987401354: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag], 707683696: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag], 2223149337: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag], 3508470533: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag], 900683007: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 2713699986: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag], 3009204131: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.UAxes, i.VAxes, i.WAxes, i.PredefinedType], 3319311131: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 2068733104: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 4175244083: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 2176052936: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 2696325953: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.Mountable], 76236018: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 629592764: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 1154579445: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation], 1638804497: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 1437502449: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 1073191201: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 2078563270: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 234836483: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 2474470126: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 2182337498: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 144952367: (i) => [i.Segments, i.SelfIntersect], 3694346114: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 1383356374: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 1687234759: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType, i.ConstructionType], 310824031: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 3612865200: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 3171933400: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 738039164: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 655969474: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 90941305: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 3290496277: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 2262370178: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 3024970846: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 3283111854: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 1232101972: (i) => [i.Degree, i.ControlPointsList, i.CurveForm, i.ClosedCurve, i.SelfIntersect, i.KnotMultiplicities, i.Knots, i.KnotSpec, i.WeightsData], 3798194928: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 979691226: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.SteelGrade, i.NominalDiameter, i.CrossSectionArea, i.BarLength, i.PredefinedType, i.BarSurface], 2572171363: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType, i.NominalDiameter, i.CrossSectionArea, i.BarLength, i.BarSurface, i.BendingShapeCode, !i.BendingParameters ? null : i.BendingParameters.map((p) => Labelise(p))], 2016517767: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 3053780830: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 1783015770: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 1329646415: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 991950508: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 1529196076: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 3420628829: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 1999602285: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 1404847402: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 331165859: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 4252922144: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.NumberOfRisers, i.NumberOfTreads, i.RiserHeight, i.TreadLength, i.PredefinedType], 2515109513: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.PredefinedType, i.OrientationOf2DPlane, i.LoadedBy, i.HasResults, i.SharedPlacement], 385403989: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.PredefinedType, i.ActionType, i.ActionSource, i.Coefficient, i.Purpose, i.SelfWeightCoefficients], 1621171031: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedLoad, i.GlobalOrLocal, i.DestabilizingLoad, i.ProjectedOrTrue, i.PredefinedType], 1162798199: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 812556717: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 3425753595: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 3825984169: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 1620046519: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 3026737570: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 3179687236: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 4292641817: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 4207607924: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 2391406946: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 3512223829: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 4237592921: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 3304561284: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.OverallHeight, i.OverallWidth, i.PredefinedType, i.PartitioningType, i.UserDefinedPartitioningType], 2874132201: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 1634111441: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 177149247: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 2056796094: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 3001207471: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 325726236: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.PredefinedType], 277319702: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 753842376: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 4196446775: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 32344328: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 3314249567: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag], 1095909175: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 2938176219: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 635142910: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 3758799889: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 1051757585: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 4217484030: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 3999819293: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 3902619387: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 639361253: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 3221913625: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 3571504051: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 2272882330: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 578613899: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 3460952963: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 4136498852: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 3640358203: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 4074379575: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 3693000487: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 1052013943: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 562808652: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.LongName, i.PredefinedType], 1062813311: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag], 342316401: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 3518393246: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 1360408905: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 1904799276: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 862014818: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 3310460725: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 24726584: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 264262732: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 402227799: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 1003880860: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 3415622556: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 819412036: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 1426591983: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 182646315: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 2680139844: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag], 1971632696: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag], 2295281155: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 4086658281: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 630975310: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 4288193352: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 3087945054: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 25142252: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType] }; TypeInitialisers[2] = { 3699917729: (v) => new IFC4_3.IfcAbsorbedDoseMeasure(v), 4182062534: (v) => new IFC4_3.IfcAccelerationMeasure(v), 360377573: (v) => new IFC4_3.IfcAmountOfSubstanceMeasure(v), 632304761: (v) => new IFC4_3.IfcAngularVelocityMeasure(v), 3683503648: (v) => new IFC4_3.IfcArcIndex(v), 1500781891: (v) => new IFC4_3.IfcAreaDensityMeasure(v), 2650437152: (v) => new IFC4_3.IfcAreaMeasure(v), 2314439260: (v) => new IFC4_3.IfcBinary(v), 2735952531: (v) => new IFC4_3.IfcBoolean(v), 1867003952: (v) => new IFC4_3.IfcBoxAlignment(v), 1683019596: (v) => new IFC4_3.IfcCardinalPointReference(v), 2991860651: (v) => new IFC4_3.IfcComplexNumber(v), 3812528620: (v) => new IFC4_3.IfcCompoundPlaneAngleMeasure(v), 3238673880: (v) => new IFC4_3.IfcContextDependentMeasure(v), 1778710042: (v) => new IFC4_3.IfcCountMeasure(v), 94842927: (v) => new IFC4_3.IfcCurvatureMeasure(v), 937566702: (v) => new IFC4_3.IfcDate(v), 2195413836: (v) => new IFC4_3.IfcDateTime(v), 86635668: (v) => new IFC4_3.IfcDayInMonthNumber(v), 3701338814: (v) => new IFC4_3.IfcDayInWeekNumber(v), 1514641115: (v) => new IFC4_3.IfcDescriptiveMeasure(v), 4134073009: (v) => new IFC4_3.IfcDimensionCount(v), 524656162: (v) => new IFC4_3.IfcDoseEquivalentMeasure(v), 2541165894: (v) => new IFC4_3.IfcDuration(v), 69416015: (v) => new IFC4_3.IfcDynamicViscosityMeasure(v), 1827137117: (v) => new IFC4_3.IfcElectricCapacitanceMeasure(v), 3818826038: (v) => new IFC4_3.IfcElectricChargeMeasure(v), 2093906313: (v) => new IFC4_3.IfcElectricConductanceMeasure(v), 3790457270: (v) => new IFC4_3.IfcElectricCurrentMeasure(v), 2951915441: (v) => new IFC4_3.IfcElectricResistanceMeasure(v), 2506197118: (v) => new IFC4_3.IfcElectricVoltageMeasure(v), 2078135608: (v) => new IFC4_3.IfcEnergyMeasure(v), 1102727119: (v) => new IFC4_3.IfcFontStyle(v), 2715512545: (v) => new IFC4_3.IfcFontVariant(v), 2590844177: (v) => new IFC4_3.IfcFontWeight(v), 1361398929: (v) => new IFC4_3.IfcForceMeasure(v), 3044325142: (v) => new IFC4_3.IfcFrequencyMeasure(v), 3064340077: (v) => new IFC4_3.IfcGloballyUniqueId(v), 3113092358: (v) => new IFC4_3.IfcHeatFluxDensityMeasure(v), 1158859006: (v) => new IFC4_3.IfcHeatingValueMeasure(v), 983778844: (v) => new IFC4_3.IfcIdentifier(v), 3358199106: (v) => new IFC4_3.IfcIlluminanceMeasure(v), 2679005408: (v) => new IFC4_3.IfcInductanceMeasure(v), 1939436016: (v) => new IFC4_3.IfcInteger(v), 3809634241: (v) => new IFC4_3.IfcIntegerCountRateMeasure(v), 3686016028: (v) => new IFC4_3.IfcIonConcentrationMeasure(v), 3192672207: (v) => new IFC4_3.IfcIsothermalMoistureCapacityMeasure(v), 2054016361: (v) => new IFC4_3.IfcKinematicViscosityMeasure(v), 3258342251: (v) => new IFC4_3.IfcLabel(v), 1275358634: (v) => new IFC4_3.IfcLanguageId(v), 1243674935: (v) => new IFC4_3.IfcLengthMeasure(v), 1774176899: (v) => new IFC4_3.IfcLineIndex(v), 191860431: (v) => new IFC4_3.IfcLinearForceMeasure(v), 2128979029: (v) => new IFC4_3.IfcLinearMomentMeasure(v), 1307019551: (v) => new IFC4_3.IfcLinearStiffnessMeasure(v), 3086160713: (v) => new IFC4_3.IfcLinearVelocityMeasure(v), 503418787: (v) => new IFC4_3.IfcLogical(v), 2095003142: (v) => new IFC4_3.IfcLuminousFluxMeasure(v), 2755797622: (v) => new IFC4_3.IfcLuminousIntensityDistributionMeasure(v), 151039812: (v) => new IFC4_3.IfcLuminousIntensityMeasure(v), 286949696: (v) => new IFC4_3.IfcMagneticFluxDensityMeasure(v), 2486716878: (v) => new IFC4_3.IfcMagneticFluxMeasure(v), 1477762836: (v) => new IFC4_3.IfcMassDensityMeasure(v), 4017473158: (v) => new IFC4_3.IfcMassFlowRateMeasure(v), 3124614049: (v) => new IFC4_3.IfcMassMeasure(v), 3531705166: (v) => new IFC4_3.IfcMassPerLengthMeasure(v), 3341486342: (v) => new IFC4_3.IfcModulusOfElasticityMeasure(v), 2173214787: (v) => new IFC4_3.IfcModulusOfLinearSubgradeReactionMeasure(v), 1052454078: (v) => new IFC4_3.IfcModulusOfRotationalSubgradeReactionMeasure(v), 1753493141: (v) => new IFC4_3.IfcModulusOfSubgradeReactionMeasure(v), 3177669450: (v) => new IFC4_3.IfcMoistureDiffusivityMeasure(v), 1648970520: (v) => new IFC4_3.IfcMolecularWeightMeasure(v), 3114022597: (v) => new IFC4_3.IfcMomentOfInertiaMeasure(v), 2615040989: (v) => new IFC4_3.IfcMonetaryMeasure(v), 765770214: (v) => new IFC4_3.IfcMonthInYearNumber(v), 525895558: (v) => new IFC4_3.IfcNonNegativeLengthMeasure(v), 2095195183: (v) => new IFC4_3.IfcNormalisedRatioMeasure(v), 2395907400: (v) => new IFC4_3.IfcNumericMeasure(v), 929793134: (v) => new IFC4_3.IfcPHMeasure(v), 2260317790: (v) => new IFC4_3.IfcParameterValue(v), 2642773653: (v) => new IFC4_3.IfcPlanarForceMeasure(v), 4042175685: (v) => new IFC4_3.IfcPlaneAngleMeasure(v), 1790229001: (v) => new IFC4_3.IfcPositiveInteger(v), 2815919920: (v) => new IFC4_3.IfcPositiveLengthMeasure(v), 3054510233: (v) => new IFC4_3.IfcPositivePlaneAngleMeasure(v), 1245737093: (v) => new IFC4_3.IfcPositiveRatioMeasure(v), 1364037233: (v) => new IFC4_3.IfcPowerMeasure(v), 2169031380: (v) => new IFC4_3.IfcPresentableText(v), 3665567075: (v) => new IFC4_3.IfcPressureMeasure(v), 2798247006: (v) => new IFC4_3.IfcPropertySetDefinitionSet(v), 3972513137: (v) => new IFC4_3.IfcRadioActivityMeasure(v), 96294661: (v) => new IFC4_3.IfcRatioMeasure(v), 200335297: (v) => new IFC4_3.IfcReal(v), 2133746277: (v) => new IFC4_3.IfcRotationalFrequencyMeasure(v), 1755127002: (v) => new IFC4_3.IfcRotationalMassMeasure(v), 3211557302: (v) => new IFC4_3.IfcRotationalStiffnessMeasure(v), 3467162246: (v) => new IFC4_3.IfcSectionModulusMeasure(v), 2190458107: (v) => new IFC4_3.IfcSectionalAreaIntegralMeasure(v), 408310005: (v) => new IFC4_3.IfcShearModulusMeasure(v), 3471399674: (v) => new IFC4_3.IfcSolidAngleMeasure(v), 4157543285: (v) => new IFC4_3.IfcSoundPowerLevelMeasure(v), 846465480: (v) => new IFC4_3.IfcSoundPowerMeasure(v), 3457685358: (v) => new IFC4_3.IfcSoundPressureLevelMeasure(v), 993287707: (v) => new IFC4_3.IfcSoundPressureMeasure(v), 3477203348: (v) => new IFC4_3.IfcSpecificHeatCapacityMeasure(v), 2757832317: (v) => new IFC4_3.IfcSpecularExponent(v), 361837227: (v) => new IFC4_3.IfcSpecularRoughness(v), 58845555: (v) => new IFC4_3.IfcTemperatureGradientMeasure(v), 1209108979: (v) => new IFC4_3.IfcTemperatureRateOfChangeMeasure(v), 2801250643: (v) => new IFC4_3.IfcText(v), 1460886941: (v) => new IFC4_3.IfcTextAlignment(v), 3490877962: (v) => new IFC4_3.IfcTextDecoration(v), 603696268: (v) => new IFC4_3.IfcTextFontName(v), 296282323: (v) => new IFC4_3.IfcTextTransformation(v), 232962298: (v) => new IFC4_3.IfcThermalAdmittanceMeasure(v), 2645777649: (v) => new IFC4_3.IfcThermalConductivityMeasure(v), 2281867870: (v) => new IFC4_3.IfcThermalExpansionCoefficientMeasure(v), 857959152: (v) => new IFC4_3.IfcThermalResistanceMeasure(v), 2016195849: (v) => new IFC4_3.IfcThermalTransmittanceMeasure(v), 743184107: (v) => new IFC4_3.IfcThermodynamicTemperatureMeasure(v), 4075327185: (v) => new IFC4_3.IfcTime(v), 2726807636: (v) => new IFC4_3.IfcTimeMeasure(v), 2591213694: (v) => new IFC4_3.IfcTimeStamp(v), 1278329552: (v) => new IFC4_3.IfcTorqueMeasure(v), 950732822: (v) => new IFC4_3.IfcURIReference(v), 3345633955: (v) => new IFC4_3.IfcVaporPermeabilityMeasure(v), 3458127941: (v) => new IFC4_3.IfcVolumeMeasure(v), 2593997549: (v) => new IFC4_3.IfcVolumetricFlowRateMeasure(v), 51269191: (v) => new IFC4_3.IfcWarpingConstantMeasure(v), 1718600412: (v) => new IFC4_3.IfcWarpingMomentMeasure(v) }; var IFC4_3; (function(IFC4_32) { class IfcAbsorbedDoseMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC4_32.IfcAbsorbedDoseMeasure = IfcAbsorbedDoseMeasure; class IfcAccelerationMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC4_32.IfcAccelerationMeasure = IfcAccelerationMeasure; class IfcAmountOfSubstanceMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC4_32.IfcAmountOfSubstanceMeasure = IfcAmountOfSubstanceMeasure; class IfcAngularVelocityMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC4_32.IfcAngularVelocityMeasure = IfcAngularVelocityMeasure; class IfcArcIndex { constructor(value) { this.value = value; } } IFC4_32.IfcArcIndex = IfcArcIndex; class IfcAreaDensityMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC4_32.IfcAreaDensityMeasure = IfcAreaDensityMeasure; class IfcAreaMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC4_32.IfcAreaMeasure = IfcAreaMeasure; class IfcBinary { constructor(value) { this.value = value; this.type = 4; } } IFC4_32.IfcBinary = IfcBinary; class IfcBoolean { constructor(value) { this.value = value; this.type = 3; } } IFC4_32.IfcBoolean = IfcBoolean; class IfcBoxAlignment { constructor(value) { this.value = value; this.type = 1; } } IFC4_32.IfcBoxAlignment = IfcBoxAlignment; class IfcCardinalPointReference { constructor(value) { this.value = value; this.type = 4; } } IFC4_32.IfcCardinalPointReference = IfcCardinalPointReference; class IfcComplexNumber { constructor(value) { this.value = value; } } IFC4_32.IfcComplexNumber = IfcComplexNumber; class IfcCompoundPlaneAngleMeasure { constructor(value) { this.value = value; } } IFC4_32.IfcCompoundPlaneAngleMeasure = IfcCompoundPlaneAngleMeasure; class IfcContextDependentMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC4_32.IfcContextDependentMeasure = IfcContextDependentMeasure; class IfcCountMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC4_32.IfcCountMeasure = IfcCountMeasure; class IfcCurvatureMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC4_32.IfcCurvatureMeasure = IfcCurvatureMeasure; class IfcDate { constructor(value) { this.value = value; this.type = 1; } } IFC4_32.IfcDate = IfcDate; class IfcDateTime { constructor(value) { this.value = value; this.type = 1; } } IFC4_32.IfcDateTime = IfcDateTime; class IfcDayInMonthNumber { constructor(value) { this.value = value; this.type = 4; } } IFC4_32.IfcDayInMonthNumber = IfcDayInMonthNumber; class IfcDayInWeekNumber { constructor(value) { this.value = value; this.type = 4; } } IFC4_32.IfcDayInWeekNumber = IfcDayInWeekNumber; class IfcDescriptiveMeasure { constructor(value) { this.value = value; this.type = 1; } } IFC4_32.IfcDescriptiveMeasure = IfcDescriptiveMeasure; class IfcDimensionCount { constructor(value) { this.value = value; this.type = 4; } } IFC4_32.IfcDimensionCount = IfcDimensionCount; class IfcDoseEquivalentMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC4_32.IfcDoseEquivalentMeasure = IfcDoseEquivalentMeasure; class IfcDuration { constructor(value) { this.value = value; this.type = 1; } } IFC4_32.IfcDuration = IfcDuration; class IfcDynamicViscosityMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC4_32.IfcDynamicViscosityMeasure = IfcDynamicViscosityMeasure; class IfcElectricCapacitanceMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC4_32.IfcElectricCapacitanceMeasure = IfcElectricCapacitanceMeasure; class IfcElectricChargeMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC4_32.IfcElectricChargeMeasure = IfcElectricChargeMeasure; class IfcElectricConductanceMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC4_32.IfcElectricConductanceMeasure = IfcElectricConductanceMeasure; class IfcElectricCurrentMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC4_32.IfcElectricCurrentMeasure = IfcElectricCurrentMeasure; class IfcElectricResistanceMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC4_32.IfcElectricResistanceMeasure = IfcElectricResistanceMeasure; class IfcElectricVoltageMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC4_32.IfcElectricVoltageMeasure = IfcElectricVoltageMeasure; class IfcEnergyMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC4_32.IfcEnergyMeasure = IfcEnergyMeasure; class IfcFontStyle { constructor(value) { this.value = value; this.type = 1; } } IFC4_32.IfcFontStyle = IfcFontStyle; class IfcFontVariant { constructor(value) { this.value = value; this.type = 1; } } IFC4_32.IfcFontVariant = IfcFontVariant; class IfcFontWeight { constructor(value) { this.value = value; this.type = 1; } } IFC4_32.IfcFontWeight = IfcFontWeight; class IfcForceMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC4_32.IfcForceMeasure = IfcForceMeasure; class IfcFrequencyMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC4_32.IfcFrequencyMeasure = IfcFrequencyMeasure; class IfcGloballyUniqueId { constructor(value) { this.value = value; this.type = 1; } } IFC4_32.IfcGloballyUniqueId = IfcGloballyUniqueId; class IfcHeatFluxDensityMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC4_32.IfcHeatFluxDensityMeasure = IfcHeatFluxDensityMeasure; class IfcHeatingValueMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC4_32.IfcHeatingValueMeasure = IfcHeatingValueMeasure; class IfcIdentifier { constructor(value) { this.value = value; this.type = 1; } } IFC4_32.IfcIdentifier = IfcIdentifier; class IfcIlluminanceMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC4_32.IfcIlluminanceMeasure = IfcIlluminanceMeasure; class IfcInductanceMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC4_32.IfcInductanceMeasure = IfcInductanceMeasure; class IfcInteger { constructor(value) { this.value = value; this.type = 4; } } IFC4_32.IfcInteger = IfcInteger; class IfcIntegerCountRateMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC4_32.IfcIntegerCountRateMeasure = IfcIntegerCountRateMeasure; class IfcIonConcentrationMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC4_32.IfcIonConcentrationMeasure = IfcIonConcentrationMeasure; class IfcIsothermalMoistureCapacityMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC4_32.IfcIsothermalMoistureCapacityMeasure = IfcIsothermalMoistureCapacityMeasure; class IfcKinematicViscosityMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC4_32.IfcKinematicViscosityMeasure = IfcKinematicViscosityMeasure; class IfcLabel { constructor(value) { this.value = value; this.type = 1; } } IFC4_32.IfcLabel = IfcLabel; class IfcLanguageId { constructor(value) { this.value = value; this.type = 1; } } IFC4_32.IfcLanguageId = IfcLanguageId; class IfcLengthMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC4_32.IfcLengthMeasure = IfcLengthMeasure; class IfcLineIndex { constructor(value) { this.value = value; } } IFC4_32.IfcLineIndex = IfcLineIndex; class IfcLinearForceMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC4_32.IfcLinearForceMeasure = IfcLinearForceMeasure; class IfcLinearMomentMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC4_32.IfcLinearMomentMeasure = IfcLinearMomentMeasure; class IfcLinearStiffnessMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC4_32.IfcLinearStiffnessMeasure = IfcLinearStiffnessMeasure; class IfcLinearVelocityMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC4_32.IfcLinearVelocityMeasure = IfcLinearVelocityMeasure; class IfcLogical { constructor(value) { this.value = value; this.type = 3; } } IFC4_32.IfcLogical = IfcLogical; class IfcLuminousFluxMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC4_32.IfcLuminousFluxMeasure = IfcLuminousFluxMeasure; class IfcLuminousIntensityDistributionMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC4_32.IfcLuminousIntensityDistributionMeasure = IfcLuminousIntensityDistributionMeasure; class IfcLuminousIntensityMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC4_32.IfcLuminousIntensityMeasure = IfcLuminousIntensityMeasure; class IfcMagneticFluxDensityMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC4_32.IfcMagneticFluxDensityMeasure = IfcMagneticFluxDensityMeasure; class IfcMagneticFluxMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC4_32.IfcMagneticFluxMeasure = IfcMagneticFluxMeasure; class IfcMassDensityMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC4_32.IfcMassDensityMeasure = IfcMassDensityMeasure; class IfcMassFlowRateMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC4_32.IfcMassFlowRateMeasure = IfcMassFlowRateMeasure; class IfcMassMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC4_32.IfcMassMeasure = IfcMassMeasure; class IfcMassPerLengthMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC4_32.IfcMassPerLengthMeasure = IfcMassPerLengthMeasure; class IfcModulusOfElasticityMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC4_32.IfcModulusOfElasticityMeasure = IfcModulusOfElasticityMeasure; class IfcModulusOfLinearSubgradeReactionMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC4_32.IfcModulusOfLinearSubgradeReactionMeasure = IfcModulusOfLinearSubgradeReactionMeasure; class IfcModulusOfRotationalSubgradeReactionMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC4_32.IfcModulusOfRotationalSubgradeReactionMeasure = IfcModulusOfRotationalSubgradeReactionMeasure; class IfcModulusOfSubgradeReactionMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC4_32.IfcModulusOfSubgradeReactionMeasure = IfcModulusOfSubgradeReactionMeasure; class IfcMoistureDiffusivityMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC4_32.IfcMoistureDiffusivityMeasure = IfcMoistureDiffusivityMeasure; class IfcMolecularWeightMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC4_32.IfcMolecularWeightMeasure = IfcMolecularWeightMeasure; class IfcMomentOfInertiaMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC4_32.IfcMomentOfInertiaMeasure = IfcMomentOfInertiaMeasure; class IfcMonetaryMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC4_32.IfcMonetaryMeasure = IfcMonetaryMeasure; class IfcMonthInYearNumber { constructor(value) { this.value = value; this.type = 4; } } IFC4_32.IfcMonthInYearNumber = IfcMonthInYearNumber; class IfcNonNegativeLengthMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC4_32.IfcNonNegativeLengthMeasure = IfcNonNegativeLengthMeasure; class IfcNormalisedRatioMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC4_32.IfcNormalisedRatioMeasure = IfcNormalisedRatioMeasure; class IfcNumericMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC4_32.IfcNumericMeasure = IfcNumericMeasure; class IfcPHMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC4_32.IfcPHMeasure = IfcPHMeasure; class IfcParameterValue { constructor(value) { this.value = value; this.type = 4; } } IFC4_32.IfcParameterValue = IfcParameterValue; class IfcPlanarForceMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC4_32.IfcPlanarForceMeasure = IfcPlanarForceMeasure; class IfcPlaneAngleMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC4_32.IfcPlaneAngleMeasure = IfcPlaneAngleMeasure; class IfcPositiveInteger { constructor(value) { this.value = value; this.type = 4; } } IFC4_32.IfcPositiveInteger = IfcPositiveInteger; class IfcPositiveLengthMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC4_32.IfcPositiveLengthMeasure = IfcPositiveLengthMeasure; class IfcPositivePlaneAngleMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC4_32.IfcPositivePlaneAngleMeasure = IfcPositivePlaneAngleMeasure; class IfcPositiveRatioMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC4_32.IfcPositiveRatioMeasure = IfcPositiveRatioMeasure; class IfcPowerMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC4_32.IfcPowerMeasure = IfcPowerMeasure; class IfcPresentableText { constructor(value) { this.value = value; this.type = 1; } } IFC4_32.IfcPresentableText = IfcPresentableText; class IfcPressureMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC4_32.IfcPressureMeasure = IfcPressureMeasure; class IfcPropertySetDefinitionSet { constructor(value) { this.value = value; } } IFC4_32.IfcPropertySetDefinitionSet = IfcPropertySetDefinitionSet; class IfcRadioActivityMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC4_32.IfcRadioActivityMeasure = IfcRadioActivityMeasure; class IfcRatioMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC4_32.IfcRatioMeasure = IfcRatioMeasure; class IfcReal { constructor(value) { this.value = value; this.type = 4; } } IFC4_32.IfcReal = IfcReal; class IfcRotationalFrequencyMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC4_32.IfcRotationalFrequencyMeasure = IfcRotationalFrequencyMeasure; class IfcRotationalMassMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC4_32.IfcRotationalMassMeasure = IfcRotationalMassMeasure; class IfcRotationalStiffnessMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC4_32.IfcRotationalStiffnessMeasure = IfcRotationalStiffnessMeasure; class IfcSectionModulusMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC4_32.IfcSectionModulusMeasure = IfcSectionModulusMeasure; class IfcSectionalAreaIntegralMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC4_32.IfcSectionalAreaIntegralMeasure = IfcSectionalAreaIntegralMeasure; class IfcShearModulusMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC4_32.IfcShearModulusMeasure = IfcShearModulusMeasure; class IfcSolidAngleMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC4_32.IfcSolidAngleMeasure = IfcSolidAngleMeasure; class IfcSoundPowerLevelMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC4_32.IfcSoundPowerLevelMeasure = IfcSoundPowerLevelMeasure; class IfcSoundPowerMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC4_32.IfcSoundPowerMeasure = IfcSoundPowerMeasure; class IfcSoundPressureLevelMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC4_32.IfcSoundPressureLevelMeasure = IfcSoundPressureLevelMeasure; class IfcSoundPressureMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC4_32.IfcSoundPressureMeasure = IfcSoundPressureMeasure; class IfcSpecificHeatCapacityMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC4_32.IfcSpecificHeatCapacityMeasure = IfcSpecificHeatCapacityMeasure; class IfcSpecularExponent { constructor(value) { this.value = value; this.type = 4; } } IFC4_32.IfcSpecularExponent = IfcSpecularExponent; class IfcSpecularRoughness { constructor(value) { this.value = value; this.type = 4; } } IFC4_32.IfcSpecularRoughness = IfcSpecularRoughness; class IfcTemperatureGradientMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC4_32.IfcTemperatureGradientMeasure = IfcTemperatureGradientMeasure; class IfcTemperatureRateOfChangeMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC4_32.IfcTemperatureRateOfChangeMeasure = IfcTemperatureRateOfChangeMeasure; class IfcText { constructor(value) { this.value = value; this.type = 1; } } IFC4_32.IfcText = IfcText; class IfcTextAlignment { constructor(value) { this.value = value; this.type = 1; } } IFC4_32.IfcTextAlignment = IfcTextAlignment; class IfcTextDecoration { constructor(value) { this.value = value; this.type = 1; } } IFC4_32.IfcTextDecoration = IfcTextDecoration; class IfcTextFontName { constructor(value) { this.value = value; this.type = 1; } } IFC4_32.IfcTextFontName = IfcTextFontName; class IfcTextTransformation { constructor(value) { this.value = value; this.type = 1; } } IFC4_32.IfcTextTransformation = IfcTextTransformation; class IfcThermalAdmittanceMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC4_32.IfcThermalAdmittanceMeasure = IfcThermalAdmittanceMeasure; class IfcThermalConductivityMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC4_32.IfcThermalConductivityMeasure = IfcThermalConductivityMeasure; class IfcThermalExpansionCoefficientMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC4_32.IfcThermalExpansionCoefficientMeasure = IfcThermalExpansionCoefficientMeasure; class IfcThermalResistanceMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC4_32.IfcThermalResistanceMeasure = IfcThermalResistanceMeasure; class IfcThermalTransmittanceMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC4_32.IfcThermalTransmittanceMeasure = IfcThermalTransmittanceMeasure; class IfcThermodynamicTemperatureMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC4_32.IfcThermodynamicTemperatureMeasure = IfcThermodynamicTemperatureMeasure; class IfcTime { constructor(value) { this.value = value; this.type = 1; } } IFC4_32.IfcTime = IfcTime; class IfcTimeMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC4_32.IfcTimeMeasure = IfcTimeMeasure; class IfcTimeStamp { constructor(value) { this.value = value; this.type = 4; } } IFC4_32.IfcTimeStamp = IfcTimeStamp; class IfcTorqueMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC4_32.IfcTorqueMeasure = IfcTorqueMeasure; class IfcURIReference { constructor(value) { this.value = value; this.type = 1; } } IFC4_32.IfcURIReference = IfcURIReference; class IfcVaporPermeabilityMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC4_32.IfcVaporPermeabilityMeasure = IfcVaporPermeabilityMeasure; class IfcVolumeMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC4_32.IfcVolumeMeasure = IfcVolumeMeasure; class IfcVolumetricFlowRateMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC4_32.IfcVolumetricFlowRateMeasure = IfcVolumetricFlowRateMeasure; class IfcWarpingConstantMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC4_32.IfcWarpingConstantMeasure = IfcWarpingConstantMeasure; class IfcWarpingMomentMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC4_32.IfcWarpingMomentMeasure = IfcWarpingMomentMeasure; class IfcActionRequestTypeEnum { } IfcActionRequestTypeEnum.EMAIL = { type: 3, value: "EMAIL" }; IfcActionRequestTypeEnum.FAX = { type: 3, value: "FAX" }; IfcActionRequestTypeEnum.PHONE = { type: 3, value: "PHONE" }; IfcActionRequestTypeEnum.POST = { type: 3, value: "POST" }; IfcActionRequestTypeEnum.VERBAL = { type: 3, value: "VERBAL" }; IfcActionRequestTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcActionRequestTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcActionRequestTypeEnum = IfcActionRequestTypeEnum; class IfcActionSourceTypeEnum { } IfcActionSourceTypeEnum.BRAKES = { type: 3, value: "BRAKES" }; IfcActionSourceTypeEnum.BUOYANCY = { type: 3, value: "BUOYANCY" }; IfcActionSourceTypeEnum.COMPLETION_G1 = { type: 3, value: "COMPLETION_G1" }; IfcActionSourceTypeEnum.CREEP = { type: 3, value: "CREEP" }; IfcActionSourceTypeEnum.CURRENT = { type: 3, value: "CURRENT" }; IfcActionSourceTypeEnum.DEAD_LOAD_G = { type: 3, value: "DEAD_LOAD_G" }; IfcActionSourceTypeEnum.EARTHQUAKE_E = { type: 3, value: "EARTHQUAKE_E" }; IfcActionSourceTypeEnum.ERECTION = { type: 3, value: "ERECTION" }; IfcActionSourceTypeEnum.FIRE = { type: 3, value: "FIRE" }; IfcActionSourceTypeEnum.ICE = { type: 3, value: "ICE" }; IfcActionSourceTypeEnum.IMPACT = { type: 3, value: "IMPACT" }; IfcActionSourceTypeEnum.IMPULSE = { type: 3, value: "IMPULSE" }; IfcActionSourceTypeEnum.LACK_OF_FIT = { type: 3, value: "LACK_OF_FIT" }; IfcActionSourceTypeEnum.LIVE_LOAD_Q = { type: 3, value: "LIVE_LOAD_Q" }; IfcActionSourceTypeEnum.PRESTRESSING_P = { type: 3, value: "PRESTRESSING_P" }; IfcActionSourceTypeEnum.PROPPING = { type: 3, value: "PROPPING" }; IfcActionSourceTypeEnum.RAIN = { type: 3, value: "RAIN" }; IfcActionSourceTypeEnum.SETTLEMENT_U = { type: 3, value: "SETTLEMENT_U" }; IfcActionSourceTypeEnum.SHRINKAGE = { type: 3, value: "SHRINKAGE" }; IfcActionSourceTypeEnum.SNOW_S = { type: 3, value: "SNOW_S" }; IfcActionSourceTypeEnum.SYSTEM_IMPERFECTION = { type: 3, value: "SYSTEM_IMPERFECTION" }; IfcActionSourceTypeEnum.TEMPERATURE_T = { type: 3, value: "TEMPERATURE_T" }; IfcActionSourceTypeEnum.TRANSPORT = { type: 3, value: "TRANSPORT" }; IfcActionSourceTypeEnum.WAVE = { type: 3, value: "WAVE" }; IfcActionSourceTypeEnum.WIND_W = { type: 3, value: "WIND_W" }; IfcActionSourceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcActionSourceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcActionSourceTypeEnum = IfcActionSourceTypeEnum; class IfcActionTypeEnum { } IfcActionTypeEnum.EXTRAORDINARY_A = { type: 3, value: "EXTRAORDINARY_A" }; IfcActionTypeEnum.PERMANENT_G = { type: 3, value: "PERMANENT_G" }; IfcActionTypeEnum.VARIABLE_Q = { type: 3, value: "VARIABLE_Q" }; IfcActionTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcActionTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcActionTypeEnum = IfcActionTypeEnum; class IfcActuatorTypeEnum { } IfcActuatorTypeEnum.ELECTRICACTUATOR = { type: 3, value: "ELECTRICACTUATOR" }; IfcActuatorTypeEnum.HANDOPERATEDACTUATOR = { type: 3, value: "HANDOPERATEDACTUATOR" }; IfcActuatorTypeEnum.HYDRAULICACTUATOR = { type: 3, value: "HYDRAULICACTUATOR" }; IfcActuatorTypeEnum.PNEUMATICACTUATOR = { type: 3, value: "PNEUMATICACTUATOR" }; IfcActuatorTypeEnum.THERMOSTATICACTUATOR = { type: 3, value: "THERMOSTATICACTUATOR" }; IfcActuatorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcActuatorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcActuatorTypeEnum = IfcActuatorTypeEnum; class IfcAddressTypeEnum { } IfcAddressTypeEnum.DISTRIBUTIONPOINT = { type: 3, value: "DISTRIBUTIONPOINT" }; IfcAddressTypeEnum.HOME = { type: 3, value: "HOME" }; IfcAddressTypeEnum.OFFICE = { type: 3, value: "OFFICE" }; IfcAddressTypeEnum.SITE = { type: 3, value: "SITE" }; IfcAddressTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IFC4_32.IfcAddressTypeEnum = IfcAddressTypeEnum; class IfcAirTerminalBoxTypeEnum { } IfcAirTerminalBoxTypeEnum.CONSTANTFLOW = { type: 3, value: "CONSTANTFLOW" }; IfcAirTerminalBoxTypeEnum.VARIABLEFLOWPRESSUREDEPENDANT = { type: 3, value: "VARIABLEFLOWPRESSUREDEPENDANT" }; IfcAirTerminalBoxTypeEnum.VARIABLEFLOWPRESSUREINDEPENDANT = { type: 3, value: "VARIABLEFLOWPRESSUREINDEPENDANT" }; IfcAirTerminalBoxTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcAirTerminalBoxTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcAirTerminalBoxTypeEnum = IfcAirTerminalBoxTypeEnum; class IfcAirTerminalTypeEnum { } IfcAirTerminalTypeEnum.DIFFUSER = { type: 3, value: "DIFFUSER" }; IfcAirTerminalTypeEnum.GRILLE = { type: 3, value: "GRILLE" }; IfcAirTerminalTypeEnum.LOUVRE = { type: 3, value: "LOUVRE" }; IfcAirTerminalTypeEnum.REGISTER = { type: 3, value: "REGISTER" }; IfcAirTerminalTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcAirTerminalTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcAirTerminalTypeEnum = IfcAirTerminalTypeEnum; class IfcAirToAirHeatRecoveryTypeEnum { } IfcAirToAirHeatRecoveryTypeEnum.FIXEDPLATECOUNTERFLOWEXCHANGER = { type: 3, value: "FIXEDPLATECOUNTERFLOWEXCHANGER" }; IfcAirToAirHeatRecoveryTypeEnum.FIXEDPLATECROSSFLOWEXCHANGER = { type: 3, value: "FIXEDPLATECROSSFLOWEXCHANGER" }; IfcAirToAirHeatRecoveryTypeEnum.FIXEDPLATEPARALLELFLOWEXCHANGER = { type: 3, value: "FIXEDPLATEPARALLELFLOWEXCHANGER" }; IfcAirToAirHeatRecoveryTypeEnum.HEATPIPE = { type: 3, value: "HEATPIPE" }; IfcAirToAirHeatRecoveryTypeEnum.ROTARYWHEEL = { type: 3, value: "ROTARYWHEEL" }; IfcAirToAirHeatRecoveryTypeEnum.RUNAROUNDCOILLOOP = { type: 3, value: "RUNAROUNDCOILLOOP" }; IfcAirToAirHeatRecoveryTypeEnum.THERMOSIPHONCOILTYPEHEATEXCHANGERS = { type: 3, value: "THERMOSIPHONCOILTYPEHEATEXCHANGERS" }; IfcAirToAirHeatRecoveryTypeEnum.THERMOSIPHONSEALEDTUBEHEATEXCHANGERS = { type: 3, value: "THERMOSIPHONSEALEDTUBEHEATEXCHANGERS" }; IfcAirToAirHeatRecoveryTypeEnum.TWINTOWERENTHALPYRECOVERYLOOPS = { type: 3, value: "TWINTOWERENTHALPYRECOVERYLOOPS" }; IfcAirToAirHeatRecoveryTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcAirToAirHeatRecoveryTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcAirToAirHeatRecoveryTypeEnum = IfcAirToAirHeatRecoveryTypeEnum; class IfcAlarmTypeEnum { } IfcAlarmTypeEnum.BELL = { type: 3, value: "BELL" }; IfcAlarmTypeEnum.BREAKGLASSBUTTON = { type: 3, value: "BREAKGLASSBUTTON" }; IfcAlarmTypeEnum.LIGHT = { type: 3, value: "LIGHT" }; IfcAlarmTypeEnum.MANUALPULLBOX = { type: 3, value: "MANUALPULLBOX" }; IfcAlarmTypeEnum.RAILWAYCROCODILE = { type: 3, value: "RAILWAYCROCODILE" }; IfcAlarmTypeEnum.RAILWAYDETONATOR = { type: 3, value: "RAILWAYDETONATOR" }; IfcAlarmTypeEnum.SIREN = { type: 3, value: "SIREN" }; IfcAlarmTypeEnum.WHISTLE = { type: 3, value: "WHISTLE" }; IfcAlarmTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcAlarmTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcAlarmTypeEnum = IfcAlarmTypeEnum; class IfcAlignmentCantSegmentTypeEnum { } IfcAlignmentCantSegmentTypeEnum.BLOSSCURVE = { type: 3, value: "BLOSSCURVE" }; IfcAlignmentCantSegmentTypeEnum.CONSTANTCANT = { type: 3, value: "CONSTANTCANT" }; IfcAlignmentCantSegmentTypeEnum.COSINECURVE = { type: 3, value: "COSINECURVE" }; IfcAlignmentCantSegmentTypeEnum.HELMERTCURVE = { type: 3, value: "HELMERTCURVE" }; IfcAlignmentCantSegmentTypeEnum.LINEARTRANSITION = { type: 3, value: "LINEARTRANSITION" }; IfcAlignmentCantSegmentTypeEnum.SINECURVE = { type: 3, value: "SINECURVE" }; IfcAlignmentCantSegmentTypeEnum.VIENNESEBEND = { type: 3, value: "VIENNESEBEND" }; IFC4_32.IfcAlignmentCantSegmentTypeEnum = IfcAlignmentCantSegmentTypeEnum; class IfcAlignmentHorizontalSegmentTypeEnum { } IfcAlignmentHorizontalSegmentTypeEnum.BLOSSCURVE = { type: 3, value: "BLOSSCURVE" }; IfcAlignmentHorizontalSegmentTypeEnum.CIRCULARARC = { type: 3, value: "CIRCULARARC" }; IfcAlignmentHorizontalSegmentTypeEnum.CLOTHOID = { type: 3, value: "CLOTHOID" }; IfcAlignmentHorizontalSegmentTypeEnum.COSINECURVE = { type: 3, value: "COSINECURVE" }; IfcAlignmentHorizontalSegmentTypeEnum.CUBIC = { type: 3, value: "CUBIC" }; IfcAlignmentHorizontalSegmentTypeEnum.HELMERTCURVE = { type: 3, value: "HELMERTCURVE" }; IfcAlignmentHorizontalSegmentTypeEnum.LINE = { type: 3, value: "LINE" }; IfcAlignmentHorizontalSegmentTypeEnum.SINECURVE = { type: 3, value: "SINECURVE" }; IfcAlignmentHorizontalSegmentTypeEnum.VIENNESEBEND = { type: 3, value: "VIENNESEBEND" }; IFC4_32.IfcAlignmentHorizontalSegmentTypeEnum = IfcAlignmentHorizontalSegmentTypeEnum; class IfcAlignmentTypeEnum { } IfcAlignmentTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcAlignmentTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcAlignmentTypeEnum = IfcAlignmentTypeEnum; class IfcAlignmentVerticalSegmentTypeEnum { } IfcAlignmentVerticalSegmentTypeEnum.CIRCULARARC = { type: 3, value: "CIRCULARARC" }; IfcAlignmentVerticalSegmentTypeEnum.CLOTHOID = { type: 3, value: "CLOTHOID" }; IfcAlignmentVerticalSegmentTypeEnum.CONSTANTGRADIENT = { type: 3, value: "CONSTANTGRADIENT" }; IfcAlignmentVerticalSegmentTypeEnum.PARABOLICARC = { type: 3, value: "PARABOLICARC" }; IFC4_32.IfcAlignmentVerticalSegmentTypeEnum = IfcAlignmentVerticalSegmentTypeEnum; class IfcAnalysisModelTypeEnum { } IfcAnalysisModelTypeEnum.IN_PLANE_LOADING_2D = { type: 3, value: "IN_PLANE_LOADING_2D" }; IfcAnalysisModelTypeEnum.LOADING_3D = { type: 3, value: "LOADING_3D" }; IfcAnalysisModelTypeEnum.OUT_PLANE_LOADING_2D = { type: 3, value: "OUT_PLANE_LOADING_2D" }; IfcAnalysisModelTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcAnalysisModelTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcAnalysisModelTypeEnum = IfcAnalysisModelTypeEnum; class IfcAnalysisTheoryTypeEnum { } IfcAnalysisTheoryTypeEnum.FIRST_ORDER_THEORY = { type: 3, value: "FIRST_ORDER_THEORY" }; IfcAnalysisTheoryTypeEnum.FULL_NONLINEAR_THEORY = { type: 3, value: "FULL_NONLINEAR_THEORY" }; IfcAnalysisTheoryTypeEnum.SECOND_ORDER_THEORY = { type: 3, value: "SECOND_ORDER_THEORY" }; IfcAnalysisTheoryTypeEnum.THIRD_ORDER_THEORY = { type: 3, value: "THIRD_ORDER_THEORY" }; IfcAnalysisTheoryTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcAnalysisTheoryTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcAnalysisTheoryTypeEnum = IfcAnalysisTheoryTypeEnum; class IfcAnnotationTypeEnum { } IfcAnnotationTypeEnum.ASBUILTAREA = { type: 3, value: "ASBUILTAREA" }; IfcAnnotationTypeEnum.ASBUILTLINE = { type: 3, value: "ASBUILTLINE" }; IfcAnnotationTypeEnum.ASBUILTPOINT = { type: 3, value: "ASBUILTPOINT" }; IfcAnnotationTypeEnum.ASSUMEDAREA = { type: 3, value: "ASSUMEDAREA" }; IfcAnnotationTypeEnum.ASSUMEDLINE = { type: 3, value: "ASSUMEDLINE" }; IfcAnnotationTypeEnum.ASSUMEDPOINT = { type: 3, value: "ASSUMEDPOINT" }; IfcAnnotationTypeEnum.NON_PHYSICAL_SIGNAL = { type: 3, value: "NON_PHYSICAL_SIGNAL" }; IfcAnnotationTypeEnum.SUPERELEVATIONEVENT = { type: 3, value: "SUPERELEVATIONEVENT" }; IfcAnnotationTypeEnum.WIDTHEVENT = { type: 3, value: "WIDTHEVENT" }; IfcAnnotationTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcAnnotationTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcAnnotationTypeEnum = IfcAnnotationTypeEnum; class IfcArithmeticOperatorEnum { } IfcArithmeticOperatorEnum.ADD = { type: 3, value: "ADD" }; IfcArithmeticOperatorEnum.DIVIDE = { type: 3, value: "DIVIDE" }; IfcArithmeticOperatorEnum.MULTIPLY = { type: 3, value: "MULTIPLY" }; IfcArithmeticOperatorEnum.SUBTRACT = { type: 3, value: "SUBTRACT" }; IFC4_32.IfcArithmeticOperatorEnum = IfcArithmeticOperatorEnum; class IfcAssemblyPlaceEnum { } IfcAssemblyPlaceEnum.FACTORY = { type: 3, value: "FACTORY" }; IfcAssemblyPlaceEnum.SITE = { type: 3, value: "SITE" }; IfcAssemblyPlaceEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcAssemblyPlaceEnum = IfcAssemblyPlaceEnum; class IfcAudioVisualApplianceTypeEnum { } IfcAudioVisualApplianceTypeEnum.AMPLIFIER = { type: 3, value: "AMPLIFIER" }; IfcAudioVisualApplianceTypeEnum.CAMERA = { type: 3, value: "CAMERA" }; IfcAudioVisualApplianceTypeEnum.COMMUNICATIONTERMINAL = { type: 3, value: "COMMUNICATIONTERMINAL" }; IfcAudioVisualApplianceTypeEnum.DISPLAY = { type: 3, value: "DISPLAY" }; IfcAudioVisualApplianceTypeEnum.MICROPHONE = { type: 3, value: "MICROPHONE" }; IfcAudioVisualApplianceTypeEnum.PLAYER = { type: 3, value: "PLAYER" }; IfcAudioVisualApplianceTypeEnum.PROJECTOR = { type: 3, value: "PROJECTOR" }; IfcAudioVisualApplianceTypeEnum.RECEIVER = { type: 3, value: "RECEIVER" }; IfcAudioVisualApplianceTypeEnum.RECORDINGEQUIPMENT = { type: 3, value: "RECORDINGEQUIPMENT" }; IfcAudioVisualApplianceTypeEnum.SPEAKER = { type: 3, value: "SPEAKER" }; IfcAudioVisualApplianceTypeEnum.SWITCHER = { type: 3, value: "SWITCHER" }; IfcAudioVisualApplianceTypeEnum.TELEPHONE = { type: 3, value: "TELEPHONE" }; IfcAudioVisualApplianceTypeEnum.TUNER = { type: 3, value: "TUNER" }; IfcAudioVisualApplianceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcAudioVisualApplianceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcAudioVisualApplianceTypeEnum = IfcAudioVisualApplianceTypeEnum; class IfcBSplineCurveForm { } IfcBSplineCurveForm.CIRCULAR_ARC = { type: 3, value: "CIRCULAR_ARC" }; IfcBSplineCurveForm.ELLIPTIC_ARC = { type: 3, value: "ELLIPTIC_ARC" }; IfcBSplineCurveForm.HYPERBOLIC_ARC = { type: 3, value: "HYPERBOLIC_ARC" }; IfcBSplineCurveForm.PARABOLIC_ARC = { type: 3, value: "PARABOLIC_ARC" }; IfcBSplineCurveForm.POLYLINE_FORM = { type: 3, value: "POLYLINE_FORM" }; IfcBSplineCurveForm.UNSPECIFIED = { type: 3, value: "UNSPECIFIED" }; IFC4_32.IfcBSplineCurveForm = IfcBSplineCurveForm; class IfcBSplineSurfaceForm { } IfcBSplineSurfaceForm.CONICAL_SURF = { type: 3, value: "CONICAL_SURF" }; IfcBSplineSurfaceForm.CYLINDRICAL_SURF = { type: 3, value: "CYLINDRICAL_SURF" }; IfcBSplineSurfaceForm.GENERALISED_CONE = { type: 3, value: "GENERALISED_CONE" }; IfcBSplineSurfaceForm.PLANE_SURF = { type: 3, value: "PLANE_SURF" }; IfcBSplineSurfaceForm.QUADRIC_SURF = { type: 3, value: "QUADRIC_SURF" }; IfcBSplineSurfaceForm.RULED_SURF = { type: 3, value: "RULED_SURF" }; IfcBSplineSurfaceForm.SPHERICAL_SURF = { type: 3, value: "SPHERICAL_SURF" }; IfcBSplineSurfaceForm.SURF_OF_LINEAR_EXTRUSION = { type: 3, value: "SURF_OF_LINEAR_EXTRUSION" }; IfcBSplineSurfaceForm.SURF_OF_REVOLUTION = { type: 3, value: "SURF_OF_REVOLUTION" }; IfcBSplineSurfaceForm.TOROIDAL_SURF = { type: 3, value: "TOROIDAL_SURF" }; IfcBSplineSurfaceForm.UNSPECIFIED = { type: 3, value: "UNSPECIFIED" }; IFC4_32.IfcBSplineSurfaceForm = IfcBSplineSurfaceForm; class IfcBeamTypeEnum { } IfcBeamTypeEnum.BEAM = { type: 3, value: "BEAM" }; IfcBeamTypeEnum.CORNICE = { type: 3, value: "CORNICE" }; IfcBeamTypeEnum.DIAPHRAGM = { type: 3, value: "DIAPHRAGM" }; IfcBeamTypeEnum.EDGEBEAM = { type: 3, value: "EDGEBEAM" }; IfcBeamTypeEnum.GIRDER_SEGMENT = { type: 3, value: "GIRDER_SEGMENT" }; IfcBeamTypeEnum.HATSTONE = { type: 3, value: "HATSTONE" }; IfcBeamTypeEnum.HOLLOWCORE = { type: 3, value: "HOLLOWCORE" }; IfcBeamTypeEnum.JOIST = { type: 3, value: "JOIST" }; IfcBeamTypeEnum.LINTEL = { type: 3, value: "LINTEL" }; IfcBeamTypeEnum.PIERCAP = { type: 3, value: "PIERCAP" }; IfcBeamTypeEnum.SPANDREL = { type: 3, value: "SPANDREL" }; IfcBeamTypeEnum.T_BEAM = { type: 3, value: "T_BEAM" }; IfcBeamTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcBeamTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcBeamTypeEnum = IfcBeamTypeEnum; class IfcBearingTypeDisplacementEnum { } IfcBearingTypeDisplacementEnum.FIXED_MOVEMENT = { type: 3, value: "FIXED_MOVEMENT" }; IfcBearingTypeDisplacementEnum.FREE_MOVEMENT = { type: 3, value: "FREE_MOVEMENT" }; IfcBearingTypeDisplacementEnum.GUIDED_LONGITUDINAL = { type: 3, value: "GUIDED_LONGITUDINAL" }; IfcBearingTypeDisplacementEnum.GUIDED_TRANSVERSAL = { type: 3, value: "GUIDED_TRANSVERSAL" }; IfcBearingTypeDisplacementEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcBearingTypeDisplacementEnum = IfcBearingTypeDisplacementEnum; class IfcBearingTypeEnum { } IfcBearingTypeEnum.CYLINDRICAL = { type: 3, value: "CYLINDRICAL" }; IfcBearingTypeEnum.DISK = { type: 3, value: "DISK" }; IfcBearingTypeEnum.ELASTOMERIC = { type: 3, value: "ELASTOMERIC" }; IfcBearingTypeEnum.GUIDE = { type: 3, value: "GUIDE" }; IfcBearingTypeEnum.POT = { type: 3, value: "POT" }; IfcBearingTypeEnum.ROCKER = { type: 3, value: "ROCKER" }; IfcBearingTypeEnum.ROLLER = { type: 3, value: "ROLLER" }; IfcBearingTypeEnum.SPHERICAL = { type: 3, value: "SPHERICAL" }; IfcBearingTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcBearingTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcBearingTypeEnum = IfcBearingTypeEnum; class IfcBenchmarkEnum { } IfcBenchmarkEnum.EQUALTO = { type: 3, value: "EQUALTO" }; IfcBenchmarkEnum.GREATERTHAN = { type: 3, value: "GREATERTHAN" }; IfcBenchmarkEnum.GREATERTHANOREQUALTO = { type: 3, value: "GREATERTHANOREQUALTO" }; IfcBenchmarkEnum.INCLUDEDIN = { type: 3, value: "INCLUDEDIN" }; IfcBenchmarkEnum.INCLUDES = { type: 3, value: "INCLUDES" }; IfcBenchmarkEnum.LESSTHAN = { type: 3, value: "LESSTHAN" }; IfcBenchmarkEnum.LESSTHANOREQUALTO = { type: 3, value: "LESSTHANOREQUALTO" }; IfcBenchmarkEnum.NOTEQUALTO = { type: 3, value: "NOTEQUALTO" }; IfcBenchmarkEnum.NOTINCLUDEDIN = { type: 3, value: "NOTINCLUDEDIN" }; IfcBenchmarkEnum.NOTINCLUDES = { type: 3, value: "NOTINCLUDES" }; IFC4_32.IfcBenchmarkEnum = IfcBenchmarkEnum; class IfcBoilerTypeEnum { } IfcBoilerTypeEnum.STEAM = { type: 3, value: "STEAM" }; IfcBoilerTypeEnum.WATER = { type: 3, value: "WATER" }; IfcBoilerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcBoilerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcBoilerTypeEnum = IfcBoilerTypeEnum; class IfcBooleanOperator { } IfcBooleanOperator.DIFFERENCE = { type: 3, value: "DIFFERENCE" }; IfcBooleanOperator.INTERSECTION = { type: 3, value: "INTERSECTION" }; IfcBooleanOperator.UNION = { type: 3, value: "UNION" }; IFC4_32.IfcBooleanOperator = IfcBooleanOperator; class IfcBridgePartTypeEnum { } IfcBridgePartTypeEnum.ABUTMENT = { type: 3, value: "ABUTMENT" }; IfcBridgePartTypeEnum.DECK = { type: 3, value: "DECK" }; IfcBridgePartTypeEnum.DECK_SEGMENT = { type: 3, value: "DECK_SEGMENT" }; IfcBridgePartTypeEnum.FOUNDATION = { type: 3, value: "FOUNDATION" }; IfcBridgePartTypeEnum.PIER = { type: 3, value: "PIER" }; IfcBridgePartTypeEnum.PIER_SEGMENT = { type: 3, value: "PIER_SEGMENT" }; IfcBridgePartTypeEnum.PYLON = { type: 3, value: "PYLON" }; IfcBridgePartTypeEnum.SUBSTRUCTURE = { type: 3, value: "SUBSTRUCTURE" }; IfcBridgePartTypeEnum.SUPERSTRUCTURE = { type: 3, value: "SUPERSTRUCTURE" }; IfcBridgePartTypeEnum.SURFACESTRUCTURE = { type: 3, value: "SURFACESTRUCTURE" }; IfcBridgePartTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcBridgePartTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcBridgePartTypeEnum = IfcBridgePartTypeEnum; class IfcBridgeTypeEnum { } IfcBridgeTypeEnum.ARCHED = { type: 3, value: "ARCHED" }; IfcBridgeTypeEnum.CABLE_STAYED = { type: 3, value: "CABLE_STAYED" }; IfcBridgeTypeEnum.CANTILEVER = { type: 3, value: "CANTILEVER" }; IfcBridgeTypeEnum.CULVERT = { type: 3, value: "CULVERT" }; IfcBridgeTypeEnum.FRAMEWORK = { type: 3, value: "FRAMEWORK" }; IfcBridgeTypeEnum.GIRDER = { type: 3, value: "GIRDER" }; IfcBridgeTypeEnum.SUSPENSION = { type: 3, value: "SUSPENSION" }; IfcBridgeTypeEnum.TRUSS = { type: 3, value: "TRUSS" }; IfcBridgeTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcBridgeTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcBridgeTypeEnum = IfcBridgeTypeEnum; class IfcBuildingElementPartTypeEnum { } IfcBuildingElementPartTypeEnum.APRON = { type: 3, value: "APRON" }; IfcBuildingElementPartTypeEnum.ARMOURUNIT = { type: 3, value: "ARMOURUNIT" }; IfcBuildingElementPartTypeEnum.INSULATION = { type: 3, value: "INSULATION" }; IfcBuildingElementPartTypeEnum.PRECASTPANEL = { type: 3, value: "PRECASTPANEL" }; IfcBuildingElementPartTypeEnum.SAFETYCAGE = { type: 3, value: "SAFETYCAGE" }; IfcBuildingElementPartTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcBuildingElementPartTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcBuildingElementPartTypeEnum = IfcBuildingElementPartTypeEnum; class IfcBuildingElementProxyTypeEnum { } IfcBuildingElementProxyTypeEnum.COMPLEX = { type: 3, value: "COMPLEX" }; IfcBuildingElementProxyTypeEnum.ELEMENT = { type: 3, value: "ELEMENT" }; IfcBuildingElementProxyTypeEnum.PARTIAL = { type: 3, value: "PARTIAL" }; IfcBuildingElementProxyTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcBuildingElementProxyTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcBuildingElementProxyTypeEnum = IfcBuildingElementProxyTypeEnum; class IfcBuildingSystemTypeEnum { } IfcBuildingSystemTypeEnum.EROSIONPREVENTION = { type: 3, value: "EROSIONPREVENTION" }; IfcBuildingSystemTypeEnum.FENESTRATION = { type: 3, value: "FENESTRATION" }; IfcBuildingSystemTypeEnum.FOUNDATION = { type: 3, value: "FOUNDATION" }; IfcBuildingSystemTypeEnum.LOADBEARING = { type: 3, value: "LOADBEARING" }; IfcBuildingSystemTypeEnum.OUTERSHELL = { type: 3, value: "OUTERSHELL" }; IfcBuildingSystemTypeEnum.PRESTRESSING = { type: 3, value: "PRESTRESSING" }; IfcBuildingSystemTypeEnum.REINFORCING = { type: 3, value: "REINFORCING" }; IfcBuildingSystemTypeEnum.SHADING = { type: 3, value: "SHADING" }; IfcBuildingSystemTypeEnum.TRANSPORT = { type: 3, value: "TRANSPORT" }; IfcBuildingSystemTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcBuildingSystemTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcBuildingSystemTypeEnum = IfcBuildingSystemTypeEnum; class IfcBuiltSystemTypeEnum { } IfcBuiltSystemTypeEnum.EROSIONPREVENTION = { type: 3, value: "EROSIONPREVENTION" }; IfcBuiltSystemTypeEnum.FENESTRATION = { type: 3, value: "FENESTRATION" }; IfcBuiltSystemTypeEnum.FOUNDATION = { type: 3, value: "FOUNDATION" }; IfcBuiltSystemTypeEnum.LOADBEARING = { type: 3, value: "LOADBEARING" }; IfcBuiltSystemTypeEnum.MOORING = { type: 3, value: "MOORING" }; IfcBuiltSystemTypeEnum.OUTERSHELL = { type: 3, value: "OUTERSHELL" }; IfcBuiltSystemTypeEnum.PRESTRESSING = { type: 3, value: "PRESTRESSING" }; IfcBuiltSystemTypeEnum.RAILWAYLINE = { type: 3, value: "RAILWAYLINE" }; IfcBuiltSystemTypeEnum.RAILWAYTRACK = { type: 3, value: "RAILWAYTRACK" }; IfcBuiltSystemTypeEnum.REINFORCING = { type: 3, value: "REINFORCING" }; IfcBuiltSystemTypeEnum.SHADING = { type: 3, value: "SHADING" }; IfcBuiltSystemTypeEnum.TRACKCIRCUIT = { type: 3, value: "TRACKCIRCUIT" }; IfcBuiltSystemTypeEnum.TRANSPORT = { type: 3, value: "TRANSPORT" }; IfcBuiltSystemTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcBuiltSystemTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcBuiltSystemTypeEnum = IfcBuiltSystemTypeEnum; class IfcBurnerTypeEnum { } IfcBurnerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcBurnerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcBurnerTypeEnum = IfcBurnerTypeEnum; class IfcCableCarrierFittingTypeEnum { } IfcCableCarrierFittingTypeEnum.BEND = { type: 3, value: "BEND" }; IfcCableCarrierFittingTypeEnum.CONNECTOR = { type: 3, value: "CONNECTOR" }; IfcCableCarrierFittingTypeEnum.CROSS = { type: 3, value: "CROSS" }; IfcCableCarrierFittingTypeEnum.JUNCTION = { type: 3, value: "JUNCTION" }; IfcCableCarrierFittingTypeEnum.TEE = { type: 3, value: "TEE" }; IfcCableCarrierFittingTypeEnum.TRANSITION = { type: 3, value: "TRANSITION" }; IfcCableCarrierFittingTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcCableCarrierFittingTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcCableCarrierFittingTypeEnum = IfcCableCarrierFittingTypeEnum; class IfcCableCarrierSegmentTypeEnum { } IfcCableCarrierSegmentTypeEnum.CABLEBRACKET = { type: 3, value: "CABLEBRACKET" }; IfcCableCarrierSegmentTypeEnum.CABLELADDERSEGMENT = { type: 3, value: "CABLELADDERSEGMENT" }; IfcCableCarrierSegmentTypeEnum.CABLETRAYSEGMENT = { type: 3, value: "CABLETRAYSEGMENT" }; IfcCableCarrierSegmentTypeEnum.CABLETRUNKINGSEGMENT = { type: 3, value: "CABLETRUNKINGSEGMENT" }; IfcCableCarrierSegmentTypeEnum.CATENARYWIRE = { type: 3, value: "CATENARYWIRE" }; IfcCableCarrierSegmentTypeEnum.CONDUITSEGMENT = { type: 3, value: "CONDUITSEGMENT" }; IfcCableCarrierSegmentTypeEnum.DROPPER = { type: 3, value: "DROPPER" }; IfcCableCarrierSegmentTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcCableCarrierSegmentTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcCableCarrierSegmentTypeEnum = IfcCableCarrierSegmentTypeEnum; class IfcCableFittingTypeEnum { } IfcCableFittingTypeEnum.CONNECTOR = { type: 3, value: "CONNECTOR" }; IfcCableFittingTypeEnum.ENTRY = { type: 3, value: "ENTRY" }; IfcCableFittingTypeEnum.EXIT = { type: 3, value: "EXIT" }; IfcCableFittingTypeEnum.FANOUT = { type: 3, value: "FANOUT" }; IfcCableFittingTypeEnum.JUNCTION = { type: 3, value: "JUNCTION" }; IfcCableFittingTypeEnum.TRANSITION = { type: 3, value: "TRANSITION" }; IfcCableFittingTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcCableFittingTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcCableFittingTypeEnum = IfcCableFittingTypeEnum; class IfcCableSegmentTypeEnum { } IfcCableSegmentTypeEnum.BUSBARSEGMENT = { type: 3, value: "BUSBARSEGMENT" }; IfcCableSegmentTypeEnum.CABLESEGMENT = { type: 3, value: "CABLESEGMENT" }; IfcCableSegmentTypeEnum.CONDUCTORSEGMENT = { type: 3, value: "CONDUCTORSEGMENT" }; IfcCableSegmentTypeEnum.CONTACTWIRESEGMENT = { type: 3, value: "CONTACTWIRESEGMENT" }; IfcCableSegmentTypeEnum.CORESEGMENT = { type: 3, value: "CORESEGMENT" }; IfcCableSegmentTypeEnum.FIBERSEGMENT = { type: 3, value: "FIBERSEGMENT" }; IfcCableSegmentTypeEnum.FIBERTUBE = { type: 3, value: "FIBERTUBE" }; IfcCableSegmentTypeEnum.OPTICALCABLESEGMENT = { type: 3, value: "OPTICALCABLESEGMENT" }; IfcCableSegmentTypeEnum.STITCHWIRE = { type: 3, value: "STITCHWIRE" }; IfcCableSegmentTypeEnum.WIREPAIRSEGMENT = { type: 3, value: "WIREPAIRSEGMENT" }; IfcCableSegmentTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcCableSegmentTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcCableSegmentTypeEnum = IfcCableSegmentTypeEnum; class IfcCaissonFoundationTypeEnum { } IfcCaissonFoundationTypeEnum.CAISSON = { type: 3, value: "CAISSON" }; IfcCaissonFoundationTypeEnum.WELL = { type: 3, value: "WELL" }; IfcCaissonFoundationTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcCaissonFoundationTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcCaissonFoundationTypeEnum = IfcCaissonFoundationTypeEnum; class IfcChangeActionEnum { } IfcChangeActionEnum.ADDED = { type: 3, value: "ADDED" }; IfcChangeActionEnum.DELETED = { type: 3, value: "DELETED" }; IfcChangeActionEnum.MODIFIED = { type: 3, value: "MODIFIED" }; IfcChangeActionEnum.NOCHANGE = { type: 3, value: "NOCHANGE" }; IfcChangeActionEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcChangeActionEnum = IfcChangeActionEnum; class IfcChillerTypeEnum { } IfcChillerTypeEnum.AIRCOOLED = { type: 3, value: "AIRCOOLED" }; IfcChillerTypeEnum.HEATRECOVERY = { type: 3, value: "HEATRECOVERY" }; IfcChillerTypeEnum.WATERCOOLED = { type: 3, value: "WATERCOOLED" }; IfcChillerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcChillerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcChillerTypeEnum = IfcChillerTypeEnum; class IfcChimneyTypeEnum { } IfcChimneyTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcChimneyTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcChimneyTypeEnum = IfcChimneyTypeEnum; class IfcCoilTypeEnum { } IfcCoilTypeEnum.DXCOOLINGCOIL = { type: 3, value: "DXCOOLINGCOIL" }; IfcCoilTypeEnum.ELECTRICHEATINGCOIL = { type: 3, value: "ELECTRICHEATINGCOIL" }; IfcCoilTypeEnum.GASHEATINGCOIL = { type: 3, value: "GASHEATINGCOIL" }; IfcCoilTypeEnum.HYDRONICCOIL = { type: 3, value: "HYDRONICCOIL" }; IfcCoilTypeEnum.STEAMHEATINGCOIL = { type: 3, value: "STEAMHEATINGCOIL" }; IfcCoilTypeEnum.WATERCOOLINGCOIL = { type: 3, value: "WATERCOOLINGCOIL" }; IfcCoilTypeEnum.WATERHEATINGCOIL = { type: 3, value: "WATERHEATINGCOIL" }; IfcCoilTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcCoilTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcCoilTypeEnum = IfcCoilTypeEnum; class IfcColumnTypeEnum { } IfcColumnTypeEnum.COLUMN = { type: 3, value: "COLUMN" }; IfcColumnTypeEnum.PIERSTEM = { type: 3, value: "PIERSTEM" }; IfcColumnTypeEnum.PIERSTEM_SEGMENT = { type: 3, value: "PIERSTEM_SEGMENT" }; IfcColumnTypeEnum.PILASTER = { type: 3, value: "PILASTER" }; IfcColumnTypeEnum.STANDCOLUMN = { type: 3, value: "STANDCOLUMN" }; IfcColumnTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcColumnTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcColumnTypeEnum = IfcColumnTypeEnum; class IfcCommunicationsApplianceTypeEnum { } IfcCommunicationsApplianceTypeEnum.ANTENNA = { type: 3, value: "ANTENNA" }; IfcCommunicationsApplianceTypeEnum.AUTOMATON = { type: 3, value: "AUTOMATON" }; IfcCommunicationsApplianceTypeEnum.COMPUTER = { type: 3, value: "COMPUTER" }; IfcCommunicationsApplianceTypeEnum.FAX = { type: 3, value: "FAX" }; IfcCommunicationsApplianceTypeEnum.GATEWAY = { type: 3, value: "GATEWAY" }; IfcCommunicationsApplianceTypeEnum.INTELLIGENTPERIPHERAL = { type: 3, value: "INTELLIGENTPERIPHERAL" }; IfcCommunicationsApplianceTypeEnum.IPNETWORKEQUIPMENT = { type: 3, value: "IPNETWORKEQUIPMENT" }; IfcCommunicationsApplianceTypeEnum.LINESIDEELECTRONICUNIT = { type: 3, value: "LINESIDEELECTRONICUNIT" }; IfcCommunicationsApplianceTypeEnum.MODEM = { type: 3, value: "MODEM" }; IfcCommunicationsApplianceTypeEnum.NETWORKAPPLIANCE = { type: 3, value: "NETWORKAPPLIANCE" }; IfcCommunicationsApplianceTypeEnum.NETWORKBRIDGE = { type: 3, value: "NETWORKBRIDGE" }; IfcCommunicationsApplianceTypeEnum.NETWORKHUB = { type: 3, value: "NETWORKHUB" }; IfcCommunicationsApplianceTypeEnum.OPTICALLINETERMINAL = { type: 3, value: "OPTICALLINETERMINAL" }; IfcCommunicationsApplianceTypeEnum.OPTICALNETWORKUNIT = { type: 3, value: "OPTICALNETWORKUNIT" }; IfcCommunicationsApplianceTypeEnum.PRINTER = { type: 3, value: "PRINTER" }; IfcCommunicationsApplianceTypeEnum.RADIOBLOCKCENTER = { type: 3, value: "RADIOBLOCKCENTER" }; IfcCommunicationsApplianceTypeEnum.REPEATER = { type: 3, value: "REPEATER" }; IfcCommunicationsApplianceTypeEnum.ROUTER = { type: 3, value: "ROUTER" }; IfcCommunicationsApplianceTypeEnum.SCANNER = { type: 3, value: "SCANNER" }; IfcCommunicationsApplianceTypeEnum.TELECOMMAND = { type: 3, value: "TELECOMMAND" }; IfcCommunicationsApplianceTypeEnum.TELEPHONYEXCHANGE = { type: 3, value: "TELEPHONYEXCHANGE" }; IfcCommunicationsApplianceTypeEnum.TRANSITIONCOMPONENT = { type: 3, value: "TRANSITIONCOMPONENT" }; IfcCommunicationsApplianceTypeEnum.TRANSPONDER = { type: 3, value: "TRANSPONDER" }; IfcCommunicationsApplianceTypeEnum.TRANSPORTEQUIPMENT = { type: 3, value: "TRANSPORTEQUIPMENT" }; IfcCommunicationsApplianceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcCommunicationsApplianceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcCommunicationsApplianceTypeEnum = IfcCommunicationsApplianceTypeEnum; class IfcComplexPropertyTemplateTypeEnum { } IfcComplexPropertyTemplateTypeEnum.P_COMPLEX = { type: 3, value: "P_COMPLEX" }; IfcComplexPropertyTemplateTypeEnum.Q_COMPLEX = { type: 3, value: "Q_COMPLEX" }; IFC4_32.IfcComplexPropertyTemplateTypeEnum = IfcComplexPropertyTemplateTypeEnum; class IfcCompressorTypeEnum { } IfcCompressorTypeEnum.BOOSTER = { type: 3, value: "BOOSTER" }; IfcCompressorTypeEnum.DYNAMIC = { type: 3, value: "DYNAMIC" }; IfcCompressorTypeEnum.HERMETIC = { type: 3, value: "HERMETIC" }; IfcCompressorTypeEnum.OPENTYPE = { type: 3, value: "OPENTYPE" }; IfcCompressorTypeEnum.RECIPROCATING = { type: 3, value: "RECIPROCATING" }; IfcCompressorTypeEnum.ROLLINGPISTON = { type: 3, value: "ROLLINGPISTON" }; IfcCompressorTypeEnum.ROTARY = { type: 3, value: "ROTARY" }; IfcCompressorTypeEnum.ROTARYVANE = { type: 3, value: "ROTARYVANE" }; IfcCompressorTypeEnum.SCROLL = { type: 3, value: "SCROLL" }; IfcCompressorTypeEnum.SEMIHERMETIC = { type: 3, value: "SEMIHERMETIC" }; IfcCompressorTypeEnum.SINGLESCREW = { type: 3, value: "SINGLESCREW" }; IfcCompressorTypeEnum.SINGLESTAGE = { type: 3, value: "SINGLESTAGE" }; IfcCompressorTypeEnum.TROCHOIDAL = { type: 3, value: "TROCHOIDAL" }; IfcCompressorTypeEnum.TWINSCREW = { type: 3, value: "TWINSCREW" }; IfcCompressorTypeEnum.WELDEDSHELLHERMETIC = { type: 3, value: "WELDEDSHELLHERMETIC" }; IfcCompressorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcCompressorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcCompressorTypeEnum = IfcCompressorTypeEnum; class IfcCondenserTypeEnum { } IfcCondenserTypeEnum.AIRCOOLED = { type: 3, value: "AIRCOOLED" }; IfcCondenserTypeEnum.EVAPORATIVECOOLED = { type: 3, value: "EVAPORATIVECOOLED" }; IfcCondenserTypeEnum.WATERCOOLED = { type: 3, value: "WATERCOOLED" }; IfcCondenserTypeEnum.WATERCOOLEDBRAZEDPLATE = { type: 3, value: "WATERCOOLEDBRAZEDPLATE" }; IfcCondenserTypeEnum.WATERCOOLEDSHELLCOIL = { type: 3, value: "WATERCOOLEDSHELLCOIL" }; IfcCondenserTypeEnum.WATERCOOLEDSHELLTUBE = { type: 3, value: "WATERCOOLEDSHELLTUBE" }; IfcCondenserTypeEnum.WATERCOOLEDTUBEINTUBE = { type: 3, value: "WATERCOOLEDTUBEINTUBE" }; IfcCondenserTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcCondenserTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcCondenserTypeEnum = IfcCondenserTypeEnum; class IfcConnectionTypeEnum { } IfcConnectionTypeEnum.ATEND = { type: 3, value: "ATEND" }; IfcConnectionTypeEnum.ATPATH = { type: 3, value: "ATPATH" }; IfcConnectionTypeEnum.ATSTART = { type: 3, value: "ATSTART" }; IfcConnectionTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcConnectionTypeEnum = IfcConnectionTypeEnum; class IfcConstraintEnum { } IfcConstraintEnum.ADVISORY = { type: 3, value: "ADVISORY" }; IfcConstraintEnum.HARD = { type: 3, value: "HARD" }; IfcConstraintEnum.SOFT = { type: 3, value: "SOFT" }; IfcConstraintEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcConstraintEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcConstraintEnum = IfcConstraintEnum; class IfcConstructionEquipmentResourceTypeEnum { } IfcConstructionEquipmentResourceTypeEnum.DEMOLISHING = { type: 3, value: "DEMOLISHING" }; IfcConstructionEquipmentResourceTypeEnum.EARTHMOVING = { type: 3, value: "EARTHMOVING" }; IfcConstructionEquipmentResourceTypeEnum.ERECTING = { type: 3, value: "ERECTING" }; IfcConstructionEquipmentResourceTypeEnum.HEATING = { type: 3, value: "HEATING" }; IfcConstructionEquipmentResourceTypeEnum.LIGHTING = { type: 3, value: "LIGHTING" }; IfcConstructionEquipmentResourceTypeEnum.PAVING = { type: 3, value: "PAVING" }; IfcConstructionEquipmentResourceTypeEnum.PUMPING = { type: 3, value: "PUMPING" }; IfcConstructionEquipmentResourceTypeEnum.TRANSPORTING = { type: 3, value: "TRANSPORTING" }; IfcConstructionEquipmentResourceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcConstructionEquipmentResourceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcConstructionEquipmentResourceTypeEnum = IfcConstructionEquipmentResourceTypeEnum; class IfcConstructionMaterialResourceTypeEnum { } IfcConstructionMaterialResourceTypeEnum.AGGREGATES = { type: 3, value: "AGGREGATES" }; IfcConstructionMaterialResourceTypeEnum.CONCRETE = { type: 3, value: "CONCRETE" }; IfcConstructionMaterialResourceTypeEnum.DRYWALL = { type: 3, value: "DRYWALL" }; IfcConstructionMaterialResourceTypeEnum.FUEL = { type: 3, value: "FUEL" }; IfcConstructionMaterialResourceTypeEnum.GYPSUM = { type: 3, value: "GYPSUM" }; IfcConstructionMaterialResourceTypeEnum.MASONRY = { type: 3, value: "MASONRY" }; IfcConstructionMaterialResourceTypeEnum.METAL = { type: 3, value: "METAL" }; IfcConstructionMaterialResourceTypeEnum.PLASTIC = { type: 3, value: "PLASTIC" }; IfcConstructionMaterialResourceTypeEnum.WOOD = { type: 3, value: "WOOD" }; IfcConstructionMaterialResourceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcConstructionMaterialResourceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcConstructionMaterialResourceTypeEnum = IfcConstructionMaterialResourceTypeEnum; class IfcConstructionProductResourceTypeEnum { } IfcConstructionProductResourceTypeEnum.ASSEMBLY = { type: 3, value: "ASSEMBLY" }; IfcConstructionProductResourceTypeEnum.FORMWORK = { type: 3, value: "FORMWORK" }; IfcConstructionProductResourceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcConstructionProductResourceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcConstructionProductResourceTypeEnum = IfcConstructionProductResourceTypeEnum; class IfcControllerTypeEnum { } IfcControllerTypeEnum.FLOATING = { type: 3, value: "FLOATING" }; IfcControllerTypeEnum.MULTIPOSITION = { type: 3, value: "MULTIPOSITION" }; IfcControllerTypeEnum.PROGRAMMABLE = { type: 3, value: "PROGRAMMABLE" }; IfcControllerTypeEnum.PROPORTIONAL = { type: 3, value: "PROPORTIONAL" }; IfcControllerTypeEnum.TWOPOSITION = { type: 3, value: "TWOPOSITION" }; IfcControllerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcControllerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcControllerTypeEnum = IfcControllerTypeEnum; class IfcConveyorSegmentTypeEnum { } IfcConveyorSegmentTypeEnum.BELTCONVEYOR = { type: 3, value: "BELTCONVEYOR" }; IfcConveyorSegmentTypeEnum.BUCKETCONVEYOR = { type: 3, value: "BUCKETCONVEYOR" }; IfcConveyorSegmentTypeEnum.CHUTECONVEYOR = { type: 3, value: "CHUTECONVEYOR" }; IfcConveyorSegmentTypeEnum.SCREWCONVEYOR = { type: 3, value: "SCREWCONVEYOR" }; IfcConveyorSegmentTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcConveyorSegmentTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcConveyorSegmentTypeEnum = IfcConveyorSegmentTypeEnum; class IfcCooledBeamTypeEnum { } IfcCooledBeamTypeEnum.ACTIVE = { type: 3, value: "ACTIVE" }; IfcCooledBeamTypeEnum.PASSIVE = { type: 3, value: "PASSIVE" }; IfcCooledBeamTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcCooledBeamTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcCooledBeamTypeEnum = IfcCooledBeamTypeEnum; class IfcCoolingTowerTypeEnum { } IfcCoolingTowerTypeEnum.MECHANICALFORCEDDRAFT = { type: 3, value: "MECHANICALFORCEDDRAFT" }; IfcCoolingTowerTypeEnum.MECHANICALINDUCEDDRAFT = { type: 3, value: "MECHANICALINDUCEDDRAFT" }; IfcCoolingTowerTypeEnum.NATURALDRAFT = { type: 3, value: "NATURALDRAFT" }; IfcCoolingTowerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcCoolingTowerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcCoolingTowerTypeEnum = IfcCoolingTowerTypeEnum; class IfcCostItemTypeEnum { } IfcCostItemTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcCostItemTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcCostItemTypeEnum = IfcCostItemTypeEnum; class IfcCostScheduleTypeEnum { } IfcCostScheduleTypeEnum.BUDGET = { type: 3, value: "BUDGET" }; IfcCostScheduleTypeEnum.COSTPLAN = { type: 3, value: "COSTPLAN" }; IfcCostScheduleTypeEnum.ESTIMATE = { type: 3, value: "ESTIMATE" }; IfcCostScheduleTypeEnum.PRICEDBILLOFQUANTITIES = { type: 3, value: "PRICEDBILLOFQUANTITIES" }; IfcCostScheduleTypeEnum.SCHEDULEOFRATES = { type: 3, value: "SCHEDULEOFRATES" }; IfcCostScheduleTypeEnum.TENDER = { type: 3, value: "TENDER" }; IfcCostScheduleTypeEnum.UNPRICEDBILLOFQUANTITIES = { type: 3, value: "UNPRICEDBILLOFQUANTITIES" }; IfcCostScheduleTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcCostScheduleTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcCostScheduleTypeEnum = IfcCostScheduleTypeEnum; class IfcCourseTypeEnum { } IfcCourseTypeEnum.ARMOUR = { type: 3, value: "ARMOUR" }; IfcCourseTypeEnum.BALLASTBED = { type: 3, value: "BALLASTBED" }; IfcCourseTypeEnum.CORE = { type: 3, value: "CORE" }; IfcCourseTypeEnum.FILTER = { type: 3, value: "FILTER" }; IfcCourseTypeEnum.PAVEMENT = { type: 3, value: "PAVEMENT" }; IfcCourseTypeEnum.PROTECTION = { type: 3, value: "PROTECTION" }; IfcCourseTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcCourseTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcCourseTypeEnum = IfcCourseTypeEnum; class IfcCoveringTypeEnum { } IfcCoveringTypeEnum.CEILING = { type: 3, value: "CEILING" }; IfcCoveringTypeEnum.CLADDING = { type: 3, value: "CLADDING" }; IfcCoveringTypeEnum.COPING = { type: 3, value: "COPING" }; IfcCoveringTypeEnum.FLOORING = { type: 3, value: "FLOORING" }; IfcCoveringTypeEnum.INSULATION = { type: 3, value: "INSULATION" }; IfcCoveringTypeEnum.MEMBRANE = { type: 3, value: "MEMBRANE" }; IfcCoveringTypeEnum.MOLDING = { type: 3, value: "MOLDING" }; IfcCoveringTypeEnum.ROOFING = { type: 3, value: "ROOFING" }; IfcCoveringTypeEnum.SKIRTINGBOARD = { type: 3, value: "SKIRTINGBOARD" }; IfcCoveringTypeEnum.SLEEVING = { type: 3, value: "SLEEVING" }; IfcCoveringTypeEnum.TOPPING = { type: 3, value: "TOPPING" }; IfcCoveringTypeEnum.WRAPPING = { type: 3, value: "WRAPPING" }; IfcCoveringTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcCoveringTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcCoveringTypeEnum = IfcCoveringTypeEnum; class IfcCrewResourceTypeEnum { } IfcCrewResourceTypeEnum.OFFICE = { type: 3, value: "OFFICE" }; IfcCrewResourceTypeEnum.SITE = { type: 3, value: "SITE" }; IfcCrewResourceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcCrewResourceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcCrewResourceTypeEnum = IfcCrewResourceTypeEnum; class IfcCurtainWallTypeEnum { } IfcCurtainWallTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcCurtainWallTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcCurtainWallTypeEnum = IfcCurtainWallTypeEnum; class IfcCurveInterpolationEnum { } IfcCurveInterpolationEnum.LINEAR = { type: 3, value: "LINEAR" }; IfcCurveInterpolationEnum.LOG_LINEAR = { type: 3, value: "LOG_LINEAR" }; IfcCurveInterpolationEnum.LOG_LOG = { type: 3, value: "LOG_LOG" }; IfcCurveInterpolationEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcCurveInterpolationEnum = IfcCurveInterpolationEnum; class IfcDamperTypeEnum { } IfcDamperTypeEnum.BACKDRAFTDAMPER = { type: 3, value: "BACKDRAFTDAMPER" }; IfcDamperTypeEnum.BALANCINGDAMPER = { type: 3, value: "BALANCINGDAMPER" }; IfcDamperTypeEnum.BLASTDAMPER = { type: 3, value: "BLASTDAMPER" }; IfcDamperTypeEnum.CONTROLDAMPER = { type: 3, value: "CONTROLDAMPER" }; IfcDamperTypeEnum.FIREDAMPER = { type: 3, value: "FIREDAMPER" }; IfcDamperTypeEnum.FIRESMOKEDAMPER = { type: 3, value: "FIRESMOKEDAMPER" }; IfcDamperTypeEnum.FUMEHOODEXHAUST = { type: 3, value: "FUMEHOODEXHAUST" }; IfcDamperTypeEnum.GRAVITYDAMPER = { type: 3, value: "GRAVITYDAMPER" }; IfcDamperTypeEnum.GRAVITYRELIEFDAMPER = { type: 3, value: "GRAVITYRELIEFDAMPER" }; IfcDamperTypeEnum.RELIEFDAMPER = { type: 3, value: "RELIEFDAMPER" }; IfcDamperTypeEnum.SMOKEDAMPER = { type: 3, value: "SMOKEDAMPER" }; IfcDamperTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcDamperTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcDamperTypeEnum = IfcDamperTypeEnum; class IfcDataOriginEnum { } IfcDataOriginEnum.MEASURED = { type: 3, value: "MEASURED" }; IfcDataOriginEnum.PREDICTED = { type: 3, value: "PREDICTED" }; IfcDataOriginEnum.SIMULATED = { type: 3, value: "SIMULATED" }; IfcDataOriginEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcDataOriginEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcDataOriginEnum = IfcDataOriginEnum; class IfcDerivedUnitEnum { } IfcDerivedUnitEnum.ACCELERATIONUNIT = { type: 3, value: "ACCELERATIONUNIT" }; IfcDerivedUnitEnum.ANGULARVELOCITYUNIT = { type: 3, value: "ANGULARVELOCITYUNIT" }; IfcDerivedUnitEnum.AREADENSITYUNIT = { type: 3, value: "AREADENSITYUNIT" }; IfcDerivedUnitEnum.COMPOUNDPLANEANGLEUNIT = { type: 3, value: "COMPOUNDPLANEANGLEUNIT" }; IfcDerivedUnitEnum.CURVATUREUNIT = { type: 3, value: "CURVATUREUNIT" }; IfcDerivedUnitEnum.DYNAMICVISCOSITYUNIT = { type: 3, value: "DYNAMICVISCOSITYUNIT" }; IfcDerivedUnitEnum.HEATFLUXDENSITYUNIT = { type: 3, value: "HEATFLUXDENSITYUNIT" }; IfcDerivedUnitEnum.HEATINGVALUEUNIT = { type: 3, value: "HEATINGVALUEUNIT" }; IfcDerivedUnitEnum.INTEGERCOUNTRATEUNIT = { type: 3, value: "INTEGERCOUNTRATEUNIT" }; IfcDerivedUnitEnum.IONCONCENTRATIONUNIT = { type: 3, value: "IONCONCENTRATIONUNIT" }; IfcDerivedUnitEnum.ISOTHERMALMOISTURECAPACITYUNIT = { type: 3, value: "ISOTHERMALMOISTURECAPACITYUNIT" }; IfcDerivedUnitEnum.KINEMATICVISCOSITYUNIT = { type: 3, value: "KINEMATICVISCOSITYUNIT" }; IfcDerivedUnitEnum.LINEARFORCEUNIT = { type: 3, value: "LINEARFORCEUNIT" }; IfcDerivedUnitEnum.LINEARMOMENTUNIT = { type: 3, value: "LINEARMOMENTUNIT" }; IfcDerivedUnitEnum.LINEARSTIFFNESSUNIT = { type: 3, value: "LINEARSTIFFNESSUNIT" }; IfcDerivedUnitEnum.LINEARVELOCITYUNIT = { type: 3, value: "LINEARVELOCITYUNIT" }; IfcDerivedUnitEnum.LUMINOUSINTENSITYDISTRIBUTIONUNIT = { type: 3, value: "LUMINOUSINTENSITYDISTRIBUTIONUNIT" }; IfcDerivedUnitEnum.MASSDENSITYUNIT = { type: 3, value: "MASSDENSITYUNIT" }; IfcDerivedUnitEnum.MASSFLOWRATEUNIT = { type: 3, value: "MASSFLOWRATEUNIT" }; IfcDerivedUnitEnum.MASSPERLENGTHUNIT = { type: 3, value: "MASSPERLENGTHUNIT" }; IfcDerivedUnitEnum.MODULUSOFELASTICITYUNIT = { type: 3, value: "MODULUSOFELASTICITYUNIT" }; IfcDerivedUnitEnum.MODULUSOFLINEARSUBGRADEREACTIONUNIT = { type: 3, value: "MODULUSOFLINEARSUBGRADEREACTIONUNIT" }; IfcDerivedUnitEnum.MODULUSOFROTATIONALSUBGRADEREACTIONUNIT = { type: 3, value: "MODULUSOFROTATIONALSUBGRADEREACTIONUNIT" }; IfcDerivedUnitEnum.MODULUSOFSUBGRADEREACTIONUNIT = { type: 3, value: "MODULUSOFSUBGRADEREACTIONUNIT" }; IfcDerivedUnitEnum.MOISTUREDIFFUSIVITYUNIT = { type: 3, value: "MOISTUREDIFFUSIVITYUNIT" }; IfcDerivedUnitEnum.MOLECULARWEIGHTUNIT = { type: 3, value: "MOLECULARWEIGHTUNIT" }; IfcDerivedUnitEnum.MOMENTOFINERTIAUNIT = { type: 3, value: "MOMENTOFINERTIAUNIT" }; IfcDerivedUnitEnum.PHUNIT = { type: 3, value: "PHUNIT" }; IfcDerivedUnitEnum.PLANARFORCEUNIT = { type: 3, value: "PLANARFORCEUNIT" }; IfcDerivedUnitEnum.ROTATIONALFREQUENCYUNIT = { type: 3, value: "ROTATIONALFREQUENCYUNIT" }; IfcDerivedUnitEnum.ROTATIONALMASSUNIT = { type: 3, value: "ROTATIONALMASSUNIT" }; IfcDerivedUnitEnum.ROTATIONALSTIFFNESSUNIT = { type: 3, value: "ROTATIONALSTIFFNESSUNIT" }; IfcDerivedUnitEnum.SECTIONAREAINTEGRALUNIT = { type: 3, value: "SECTIONAREAINTEGRALUNIT" }; IfcDerivedUnitEnum.SECTIONMODULUSUNIT = { type: 3, value: "SECTIONMODULUSUNIT" }; IfcDerivedUnitEnum.SHEARMODULUSUNIT = { type: 3, value: "SHEARMODULUSUNIT" }; IfcDerivedUnitEnum.SOUNDPOWERLEVELUNIT = { type: 3, value: "SOUNDPOWERLEVELUNIT" }; IfcDerivedUnitEnum.SOUNDPOWERUNIT = { type: 3, value: "SOUNDPOWERUNIT" }; IfcDerivedUnitEnum.SOUNDPRESSURELEVELUNIT = { type: 3, value: "SOUNDPRESSURELEVELUNIT" }; IfcDerivedUnitEnum.SOUNDPRESSUREUNIT = { type: 3, value: "SOUNDPRESSUREUNIT" }; IfcDerivedUnitEnum.SPECIFICHEATCAPACITYUNIT = { type: 3, value: "SPECIFICHEATCAPACITYUNIT" }; IfcDerivedUnitEnum.TEMPERATUREGRADIENTUNIT = { type: 3, value: "TEMPERATUREGRADIENTUNIT" }; IfcDerivedUnitEnum.TEMPERATURERATEOFCHANGEUNIT = { type: 3, value: "TEMPERATURERATEOFCHANGEUNIT" }; IfcDerivedUnitEnum.THERMALADMITTANCEUNIT = { type: 3, value: "THERMALADMITTANCEUNIT" }; IfcDerivedUnitEnum.THERMALCONDUCTANCEUNIT = { type: 3, value: "THERMALCONDUCTANCEUNIT" }; IfcDerivedUnitEnum.THERMALEXPANSIONCOEFFICIENTUNIT = { type: 3, value: "THERMALEXPANSIONCOEFFICIENTUNIT" }; IfcDerivedUnitEnum.THERMALRESISTANCEUNIT = { type: 3, value: "THERMALRESISTANCEUNIT" }; IfcDerivedUnitEnum.THERMALTRANSMITTANCEUNIT = { type: 3, value: "THERMALTRANSMITTANCEUNIT" }; IfcDerivedUnitEnum.TORQUEUNIT = { type: 3, value: "TORQUEUNIT" }; IfcDerivedUnitEnum.VAPORPERMEABILITYUNIT = { type: 3, value: "VAPORPERMEABILITYUNIT" }; IfcDerivedUnitEnum.VOLUMETRICFLOWRATEUNIT = { type: 3, value: "VOLUMETRICFLOWRATEUNIT" }; IfcDerivedUnitEnum.WARPINGCONSTANTUNIT = { type: 3, value: "WARPINGCONSTANTUNIT" }; IfcDerivedUnitEnum.WARPINGMOMENTUNIT = { type: 3, value: "WARPINGMOMENTUNIT" }; IfcDerivedUnitEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IFC4_32.IfcDerivedUnitEnum = IfcDerivedUnitEnum; class IfcDirectionSenseEnum { } IfcDirectionSenseEnum.NEGATIVE = { type: 3, value: "NEGATIVE" }; IfcDirectionSenseEnum.POSITIVE = { type: 3, value: "POSITIVE" }; IFC4_32.IfcDirectionSenseEnum = IfcDirectionSenseEnum; class IfcDiscreteAccessoryTypeEnum { } IfcDiscreteAccessoryTypeEnum.ANCHORPLATE = { type: 3, value: "ANCHORPLATE" }; IfcDiscreteAccessoryTypeEnum.BIRDPROTECTION = { type: 3, value: "BIRDPROTECTION" }; IfcDiscreteAccessoryTypeEnum.BRACKET = { type: 3, value: "BRACKET" }; IfcDiscreteAccessoryTypeEnum.CABLEARRANGER = { type: 3, value: "CABLEARRANGER" }; IfcDiscreteAccessoryTypeEnum.ELASTIC_CUSHION = { type: 3, value: "ELASTIC_CUSHION" }; IfcDiscreteAccessoryTypeEnum.EXPANSION_JOINT_DEVICE = { type: 3, value: "EXPANSION_JOINT_DEVICE" }; IfcDiscreteAccessoryTypeEnum.FILLER = { type: 3, value: "FILLER" }; IfcDiscreteAccessoryTypeEnum.FLASHING = { type: 3, value: "FLASHING" }; IfcDiscreteAccessoryTypeEnum.INSULATOR = { type: 3, value: "INSULATOR" }; IfcDiscreteAccessoryTypeEnum.LOCK = { type: 3, value: "LOCK" }; IfcDiscreteAccessoryTypeEnum.PANEL_STRENGTHENING = { type: 3, value: "PANEL_STRENGTHENING" }; IfcDiscreteAccessoryTypeEnum.POINTMACHINEMOUNTINGDEVICE = { type: 3, value: "POINTMACHINEMOUNTINGDEVICE" }; IfcDiscreteAccessoryTypeEnum.POINT_MACHINE_LOCKING_DEVICE = { type: 3, value: "POINT_MACHINE_LOCKING_DEVICE" }; IfcDiscreteAccessoryTypeEnum.RAILBRACE = { type: 3, value: "RAILBRACE" }; IfcDiscreteAccessoryTypeEnum.RAILPAD = { type: 3, value: "RAILPAD" }; IfcDiscreteAccessoryTypeEnum.RAIL_LUBRICATION = { type: 3, value: "RAIL_LUBRICATION" }; IfcDiscreteAccessoryTypeEnum.RAIL_MECHANICAL_EQUIPMENT = { type: 3, value: "RAIL_MECHANICAL_EQUIPMENT" }; IfcDiscreteAccessoryTypeEnum.SHOE = { type: 3, value: "SHOE" }; IfcDiscreteAccessoryTypeEnum.SLIDINGCHAIR = { type: 3, value: "SLIDINGCHAIR" }; IfcDiscreteAccessoryTypeEnum.SOUNDABSORPTION = { type: 3, value: "SOUNDABSORPTION" }; IfcDiscreteAccessoryTypeEnum.TENSIONINGEQUIPMENT = { type: 3, value: "TENSIONINGEQUIPMENT" }; IfcDiscreteAccessoryTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcDiscreteAccessoryTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcDiscreteAccessoryTypeEnum = IfcDiscreteAccessoryTypeEnum; class IfcDistributionBoardTypeEnum { } IfcDistributionBoardTypeEnum.CONSUMERUNIT = { type: 3, value: "CONSUMERUNIT" }; IfcDistributionBoardTypeEnum.DISPATCHINGBOARD = { type: 3, value: "DISPATCHINGBOARD" }; IfcDistributionBoardTypeEnum.DISTRIBUTIONBOARD = { type: 3, value: "DISTRIBUTIONBOARD" }; IfcDistributionBoardTypeEnum.DISTRIBUTIONFRAME = { type: 3, value: "DISTRIBUTIONFRAME" }; IfcDistributionBoardTypeEnum.MOTORCONTROLCENTRE = { type: 3, value: "MOTORCONTROLCENTRE" }; IfcDistributionBoardTypeEnum.SWITCHBOARD = { type: 3, value: "SWITCHBOARD" }; IfcDistributionBoardTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcDistributionBoardTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcDistributionBoardTypeEnum = IfcDistributionBoardTypeEnum; class IfcDistributionChamberElementTypeEnum { } IfcDistributionChamberElementTypeEnum.FORMEDDUCT = { type: 3, value: "FORMEDDUCT" }; IfcDistributionChamberElementTypeEnum.INSPECTIONCHAMBER = { type: 3, value: "INSPECTIONCHAMBER" }; IfcDistributionChamberElementTypeEnum.INSPECTIONPIT = { type: 3, value: "INSPECTIONPIT" }; IfcDistributionChamberElementTypeEnum.MANHOLE = { type: 3, value: "MANHOLE" }; IfcDistributionChamberElementTypeEnum.METERCHAMBER = { type: 3, value: "METERCHAMBER" }; IfcDistributionChamberElementTypeEnum.SUMP = { type: 3, value: "SUMP" }; IfcDistributionChamberElementTypeEnum.TRENCH = { type: 3, value: "TRENCH" }; IfcDistributionChamberElementTypeEnum.VALVECHAMBER = { type: 3, value: "VALVECHAMBER" }; IfcDistributionChamberElementTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcDistributionChamberElementTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcDistributionChamberElementTypeEnum = IfcDistributionChamberElementTypeEnum; class IfcDistributionPortTypeEnum { } IfcDistributionPortTypeEnum.CABLE = { type: 3, value: "CABLE" }; IfcDistributionPortTypeEnum.CABLECARRIER = { type: 3, value: "CABLECARRIER" }; IfcDistributionPortTypeEnum.DUCT = { type: 3, value: "DUCT" }; IfcDistributionPortTypeEnum.PIPE = { type: 3, value: "PIPE" }; IfcDistributionPortTypeEnum.WIRELESS = { type: 3, value: "WIRELESS" }; IfcDistributionPortTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcDistributionPortTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcDistributionPortTypeEnum = IfcDistributionPortTypeEnum; class IfcDistributionSystemEnum { } IfcDistributionSystemEnum.AIRCONDITIONING = { type: 3, value: "AIRCONDITIONING" }; IfcDistributionSystemEnum.AUDIOVISUAL = { type: 3, value: "AUDIOVISUAL" }; IfcDistributionSystemEnum.CATENARY_SYSTEM = { type: 3, value: "CATENARY_SYSTEM" }; IfcDistributionSystemEnum.CHEMICAL = { type: 3, value: "CHEMICAL" }; IfcDistributionSystemEnum.CHILLEDWATER = { type: 3, value: "CHILLEDWATER" }; IfcDistributionSystemEnum.COMMUNICATION = { type: 3, value: "COMMUNICATION" }; IfcDistributionSystemEnum.COMPRESSEDAIR = { type: 3, value: "COMPRESSEDAIR" }; IfcDistributionSystemEnum.CONDENSERWATER = { type: 3, value: "CONDENSERWATER" }; IfcDistributionSystemEnum.CONTROL = { type: 3, value: "CONTROL" }; IfcDistributionSystemEnum.CONVEYING = { type: 3, value: "CONVEYING" }; IfcDistributionSystemEnum.DATA = { type: 3, value: "DATA" }; IfcDistributionSystemEnum.DISPOSAL = { type: 3, value: "DISPOSAL" }; IfcDistributionSystemEnum.DOMESTICCOLDWATER = { type: 3, value: "DOMESTICCOLDWATER" }; IfcDistributionSystemEnum.DOMESTICHOTWATER = { type: 3, value: "DOMESTICHOTWATER" }; IfcDistributionSystemEnum.DRAINAGE = { type: 3, value: "DRAINAGE" }; IfcDistributionSystemEnum.EARTHING = { type: 3, value: "EARTHING" }; IfcDistributionSystemEnum.ELECTRICAL = { type: 3, value: "ELECTRICAL" }; IfcDistributionSystemEnum.ELECTROACOUSTIC = { type: 3, value: "ELECTROACOUSTIC" }; IfcDistributionSystemEnum.EXHAUST = { type: 3, value: "EXHAUST" }; IfcDistributionSystemEnum.FIREPROTECTION = { type: 3, value: "FIREPROTECTION" }; IfcDistributionSystemEnum.FIXEDTRANSMISSIONNETWORK = { type: 3, value: "FIXEDTRANSMISSIONNETWORK" }; IfcDistributionSystemEnum.FUEL = { type: 3, value: "FUEL" }; IfcDistributionSystemEnum.GAS = { type: 3, value: "GAS" }; IfcDistributionSystemEnum.HAZARDOUS = { type: 3, value: "HAZARDOUS" }; IfcDistributionSystemEnum.HEATING = { type: 3, value: "HEATING" }; IfcDistributionSystemEnum.LIGHTING = { type: 3, value: "LIGHTING" }; IfcDistributionSystemEnum.LIGHTNINGPROTECTION = { type: 3, value: "LIGHTNINGPROTECTION" }; IfcDistributionSystemEnum.MOBILENETWORK = { type: 3, value: "MOBILENETWORK" }; IfcDistributionSystemEnum.MONITORINGSYSTEM = { type: 3, value: "MONITORINGSYSTEM" }; IfcDistributionSystemEnum.MUNICIPALSOLIDWASTE = { type: 3, value: "MUNICIPALSOLIDWASTE" }; IfcDistributionSystemEnum.OIL = { type: 3, value: "OIL" }; IfcDistributionSystemEnum.OPERATIONAL = { type: 3, value: "OPERATIONAL" }; IfcDistributionSystemEnum.OPERATIONALTELEPHONYSYSTEM = { type: 3, value: "OPERATIONALTELEPHONYSYSTEM" }; IfcDistributionSystemEnum.OVERHEAD_CONTACTLINE_SYSTEM = { type: 3, value: "OVERHEAD_CONTACTLINE_SYSTEM" }; IfcDistributionSystemEnum.POWERGENERATION = { type: 3, value: "POWERGENERATION" }; IfcDistributionSystemEnum.RAINWATER = { type: 3, value: "RAINWATER" }; IfcDistributionSystemEnum.REFRIGERATION = { type: 3, value: "REFRIGERATION" }; IfcDistributionSystemEnum.RETURN_CIRCUIT = { type: 3, value: "RETURN_CIRCUIT" }; IfcDistributionSystemEnum.SECURITY = { type: 3, value: "SECURITY" }; IfcDistributionSystemEnum.SEWAGE = { type: 3, value: "SEWAGE" }; IfcDistributionSystemEnum.SIGNAL = { type: 3, value: "SIGNAL" }; IfcDistributionSystemEnum.STORMWATER = { type: 3, value: "STORMWATER" }; IfcDistributionSystemEnum.TELEPHONE = { type: 3, value: "TELEPHONE" }; IfcDistributionSystemEnum.TV = { type: 3, value: "TV" }; IfcDistributionSystemEnum.VACUUM = { type: 3, value: "VACUUM" }; IfcDistributionSystemEnum.VENT = { type: 3, value: "VENT" }; IfcDistributionSystemEnum.VENTILATION = { type: 3, value: "VENTILATION" }; IfcDistributionSystemEnum.WASTEWATER = { type: 3, value: "WASTEWATER" }; IfcDistributionSystemEnum.WATERSUPPLY = { type: 3, value: "WATERSUPPLY" }; IfcDistributionSystemEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcDistributionSystemEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcDistributionSystemEnum = IfcDistributionSystemEnum; class IfcDocumentConfidentialityEnum { } IfcDocumentConfidentialityEnum.CONFIDENTIAL = { type: 3, value: "CONFIDENTIAL" }; IfcDocumentConfidentialityEnum.PERSONAL = { type: 3, value: "PERSONAL" }; IfcDocumentConfidentialityEnum.PUBLIC = { type: 3, value: "PUBLIC" }; IfcDocumentConfidentialityEnum.RESTRICTED = { type: 3, value: "RESTRICTED" }; IfcDocumentConfidentialityEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcDocumentConfidentialityEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcDocumentConfidentialityEnum = IfcDocumentConfidentialityEnum; class IfcDocumentStatusEnum { } IfcDocumentStatusEnum.DRAFT = { type: 3, value: "DRAFT" }; IfcDocumentStatusEnum.FINAL = { type: 3, value: "FINAL" }; IfcDocumentStatusEnum.FINALDRAFT = { type: 3, value: "FINALDRAFT" }; IfcDocumentStatusEnum.REVISION = { type: 3, value: "REVISION" }; IfcDocumentStatusEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcDocumentStatusEnum = IfcDocumentStatusEnum; class IfcDoorPanelOperationEnum { } IfcDoorPanelOperationEnum.DOUBLE_ACTING = { type: 3, value: "DOUBLE_ACTING" }; IfcDoorPanelOperationEnum.FIXEDPANEL = { type: 3, value: "FIXEDPANEL" }; IfcDoorPanelOperationEnum.FOLDING = { type: 3, value: "FOLDING" }; IfcDoorPanelOperationEnum.REVOLVING = { type: 3, value: "REVOLVING" }; IfcDoorPanelOperationEnum.ROLLINGUP = { type: 3, value: "ROLLINGUP" }; IfcDoorPanelOperationEnum.SLIDING = { type: 3, value: "SLIDING" }; IfcDoorPanelOperationEnum.SWINGING = { type: 3, value: "SWINGING" }; IfcDoorPanelOperationEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcDoorPanelOperationEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcDoorPanelOperationEnum = IfcDoorPanelOperationEnum; class IfcDoorPanelPositionEnum { } IfcDoorPanelPositionEnum.LEFT = { type: 3, value: "LEFT" }; IfcDoorPanelPositionEnum.MIDDLE = { type: 3, value: "MIDDLE" }; IfcDoorPanelPositionEnum.RIGHT = { type: 3, value: "RIGHT" }; IfcDoorPanelPositionEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcDoorPanelPositionEnum = IfcDoorPanelPositionEnum; class IfcDoorStyleConstructionEnum { } IfcDoorStyleConstructionEnum.ALUMINIUM = { type: 3, value: "ALUMINIUM" }; IfcDoorStyleConstructionEnum.ALUMINIUM_PLASTIC = { type: 3, value: "ALUMINIUM_PLASTIC" }; IfcDoorStyleConstructionEnum.ALUMINIUM_WOOD = { type: 3, value: "ALUMINIUM_WOOD" }; IfcDoorStyleConstructionEnum.HIGH_GRADE_STEEL = { type: 3, value: "HIGH_GRADE_STEEL" }; IfcDoorStyleConstructionEnum.PLASTIC = { type: 3, value: "PLASTIC" }; IfcDoorStyleConstructionEnum.STEEL = { type: 3, value: "STEEL" }; IfcDoorStyleConstructionEnum.WOOD = { type: 3, value: "WOOD" }; IfcDoorStyleConstructionEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcDoorStyleConstructionEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcDoorStyleConstructionEnum = IfcDoorStyleConstructionEnum; class IfcDoorStyleOperationEnum { } IfcDoorStyleOperationEnum.DOUBLE_DOOR_DOUBLE_SWING = { type: 3, value: "DOUBLE_DOOR_DOUBLE_SWING" }; IfcDoorStyleOperationEnum.DOUBLE_DOOR_FOLDING = { type: 3, value: "DOUBLE_DOOR_FOLDING" }; IfcDoorStyleOperationEnum.DOUBLE_DOOR_SINGLE_SWING = { type: 3, value: "DOUBLE_DOOR_SINGLE_SWING" }; IfcDoorStyleOperationEnum.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT = { type: 3, value: "DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT" }; IfcDoorStyleOperationEnum.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT = { type: 3, value: "DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT" }; IfcDoorStyleOperationEnum.DOUBLE_DOOR_SLIDING = { type: 3, value: "DOUBLE_DOOR_SLIDING" }; IfcDoorStyleOperationEnum.DOUBLE_SWING_LEFT = { type: 3, value: "DOUBLE_SWING_LEFT" }; IfcDoorStyleOperationEnum.DOUBLE_SWING_RIGHT = { type: 3, value: "DOUBLE_SWING_RIGHT" }; IfcDoorStyleOperationEnum.FOLDING_TO_LEFT = { type: 3, value: "FOLDING_TO_LEFT" }; IfcDoorStyleOperationEnum.FOLDING_TO_RIGHT = { type: 3, value: "FOLDING_TO_RIGHT" }; IfcDoorStyleOperationEnum.REVOLVING = { type: 3, value: "REVOLVING" }; IfcDoorStyleOperationEnum.ROLLINGUP = { type: 3, value: "ROLLINGUP" }; IfcDoorStyleOperationEnum.SINGLE_SWING_LEFT = { type: 3, value: "SINGLE_SWING_LEFT" }; IfcDoorStyleOperationEnum.SINGLE_SWING_RIGHT = { type: 3, value: "SINGLE_SWING_RIGHT" }; IfcDoorStyleOperationEnum.SLIDING_TO_LEFT = { type: 3, value: "SLIDING_TO_LEFT" }; IfcDoorStyleOperationEnum.SLIDING_TO_RIGHT = { type: 3, value: "SLIDING_TO_RIGHT" }; IfcDoorStyleOperationEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcDoorStyleOperationEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcDoorStyleOperationEnum = IfcDoorStyleOperationEnum; class IfcDoorTypeEnum { } IfcDoorTypeEnum.BOOM_BARRIER = { type: 3, value: "BOOM_BARRIER" }; IfcDoorTypeEnum.DOOR = { type: 3, value: "DOOR" }; IfcDoorTypeEnum.GATE = { type: 3, value: "GATE" }; IfcDoorTypeEnum.TRAPDOOR = { type: 3, value: "TRAPDOOR" }; IfcDoorTypeEnum.TURNSTILE = { type: 3, value: "TURNSTILE" }; IfcDoorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcDoorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcDoorTypeEnum = IfcDoorTypeEnum; class IfcDoorTypeOperationEnum { } IfcDoorTypeOperationEnum.DOUBLE_PANEL_DOUBLE_SWING = { type: 3, value: "DOUBLE_PANEL_DOUBLE_SWING" }; IfcDoorTypeOperationEnum.DOUBLE_PANEL_FOLDING = { type: 3, value: "DOUBLE_PANEL_FOLDING" }; IfcDoorTypeOperationEnum.DOUBLE_PANEL_LIFTING_VERTICAL = { type: 3, value: "DOUBLE_PANEL_LIFTING_VERTICAL" }; IfcDoorTypeOperationEnum.DOUBLE_PANEL_SINGLE_SWING = { type: 3, value: "DOUBLE_PANEL_SINGLE_SWING" }; IfcDoorTypeOperationEnum.DOUBLE_PANEL_SINGLE_SWING_OPPOSITE_LEFT = { type: 3, value: "DOUBLE_PANEL_SINGLE_SWING_OPPOSITE_LEFT" }; IfcDoorTypeOperationEnum.DOUBLE_PANEL_SINGLE_SWING_OPPOSITE_RIGHT = { type: 3, value: "DOUBLE_PANEL_SINGLE_SWING_OPPOSITE_RIGHT" }; IfcDoorTypeOperationEnum.DOUBLE_PANEL_SLIDING = { type: 3, value: "DOUBLE_PANEL_SLIDING" }; IfcDoorTypeOperationEnum.DOUBLE_SWING_LEFT = { type: 3, value: "DOUBLE_SWING_LEFT" }; IfcDoorTypeOperationEnum.DOUBLE_SWING_RIGHT = { type: 3, value: "DOUBLE_SWING_RIGHT" }; IfcDoorTypeOperationEnum.FOLDING_TO_LEFT = { type: 3, value: "FOLDING_TO_LEFT" }; IfcDoorTypeOperationEnum.FOLDING_TO_RIGHT = { type: 3, value: "FOLDING_TO_RIGHT" }; IfcDoorTypeOperationEnum.LIFTING_HORIZONTAL = { type: 3, value: "LIFTING_HORIZONTAL" }; IfcDoorTypeOperationEnum.LIFTING_VERTICAL_LEFT = { type: 3, value: "LIFTING_VERTICAL_LEFT" }; IfcDoorTypeOperationEnum.LIFTING_VERTICAL_RIGHT = { type: 3, value: "LIFTING_VERTICAL_RIGHT" }; IfcDoorTypeOperationEnum.REVOLVING_HORIZONTAL = { type: 3, value: "REVOLVING_HORIZONTAL" }; IfcDoorTypeOperationEnum.REVOLVING_VERTICAL = { type: 3, value: "REVOLVING_VERTICAL" }; IfcDoorTypeOperationEnum.ROLLINGUP = { type: 3, value: "ROLLINGUP" }; IfcDoorTypeOperationEnum.SINGLE_SWING_LEFT = { type: 3, value: "SINGLE_SWING_LEFT" }; IfcDoorTypeOperationEnum.SINGLE_SWING_RIGHT = { type: 3, value: "SINGLE_SWING_RIGHT" }; IfcDoorTypeOperationEnum.SLIDING_TO_LEFT = { type: 3, value: "SLIDING_TO_LEFT" }; IfcDoorTypeOperationEnum.SLIDING_TO_RIGHT = { type: 3, value: "SLIDING_TO_RIGHT" }; IfcDoorTypeOperationEnum.SWING_FIXED_LEFT = { type: 3, value: "SWING_FIXED_LEFT" }; IfcDoorTypeOperationEnum.SWING_FIXED_RIGHT = { type: 3, value: "SWING_FIXED_RIGHT" }; IfcDoorTypeOperationEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcDoorTypeOperationEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcDoorTypeOperationEnum = IfcDoorTypeOperationEnum; class IfcDuctFittingTypeEnum { } IfcDuctFittingTypeEnum.BEND = { type: 3, value: "BEND" }; IfcDuctFittingTypeEnum.CONNECTOR = { type: 3, value: "CONNECTOR" }; IfcDuctFittingTypeEnum.ENTRY = { type: 3, value: "ENTRY" }; IfcDuctFittingTypeEnum.EXIT = { type: 3, value: "EXIT" }; IfcDuctFittingTypeEnum.JUNCTION = { type: 3, value: "JUNCTION" }; IfcDuctFittingTypeEnum.OBSTRUCTION = { type: 3, value: "OBSTRUCTION" }; IfcDuctFittingTypeEnum.TRANSITION = { type: 3, value: "TRANSITION" }; IfcDuctFittingTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcDuctFittingTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcDuctFittingTypeEnum = IfcDuctFittingTypeEnum; class IfcDuctSegmentTypeEnum { } IfcDuctSegmentTypeEnum.FLEXIBLESEGMENT = { type: 3, value: "FLEXIBLESEGMENT" }; IfcDuctSegmentTypeEnum.RIGIDSEGMENT = { type: 3, value: "RIGIDSEGMENT" }; IfcDuctSegmentTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcDuctSegmentTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcDuctSegmentTypeEnum = IfcDuctSegmentTypeEnum; class IfcDuctSilencerTypeEnum { } IfcDuctSilencerTypeEnum.FLATOVAL = { type: 3, value: "FLATOVAL" }; IfcDuctSilencerTypeEnum.RECTANGULAR = { type: 3, value: "RECTANGULAR" }; IfcDuctSilencerTypeEnum.ROUND = { type: 3, value: "ROUND" }; IfcDuctSilencerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcDuctSilencerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcDuctSilencerTypeEnum = IfcDuctSilencerTypeEnum; class IfcEarthworksCutTypeEnum { } IfcEarthworksCutTypeEnum.BASE_EXCAVATION = { type: 3, value: "BASE_EXCAVATION" }; IfcEarthworksCutTypeEnum.CUT = { type: 3, value: "CUT" }; IfcEarthworksCutTypeEnum.DREDGING = { type: 3, value: "DREDGING" }; IfcEarthworksCutTypeEnum.EXCAVATION = { type: 3, value: "EXCAVATION" }; IfcEarthworksCutTypeEnum.OVEREXCAVATION = { type: 3, value: "OVEREXCAVATION" }; IfcEarthworksCutTypeEnum.PAVEMENTMILLING = { type: 3, value: "PAVEMENTMILLING" }; IfcEarthworksCutTypeEnum.STEPEXCAVATION = { type: 3, value: "STEPEXCAVATION" }; IfcEarthworksCutTypeEnum.TOPSOILREMOVAL = { type: 3, value: "TOPSOILREMOVAL" }; IfcEarthworksCutTypeEnum.TRENCH = { type: 3, value: "TRENCH" }; IfcEarthworksCutTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcEarthworksCutTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcEarthworksCutTypeEnum = IfcEarthworksCutTypeEnum; class IfcEarthworksFillTypeEnum { } IfcEarthworksFillTypeEnum.BACKFILL = { type: 3, value: "BACKFILL" }; IfcEarthworksFillTypeEnum.COUNTERWEIGHT = { type: 3, value: "COUNTERWEIGHT" }; IfcEarthworksFillTypeEnum.EMBANKMENT = { type: 3, value: "EMBANKMENT" }; IfcEarthworksFillTypeEnum.SLOPEFILL = { type: 3, value: "SLOPEFILL" }; IfcEarthworksFillTypeEnum.SUBGRADE = { type: 3, value: "SUBGRADE" }; IfcEarthworksFillTypeEnum.SUBGRADEBED = { type: 3, value: "SUBGRADEBED" }; IfcEarthworksFillTypeEnum.TRANSITIONSECTION = { type: 3, value: "TRANSITIONSECTION" }; IfcEarthworksFillTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcEarthworksFillTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcEarthworksFillTypeEnum = IfcEarthworksFillTypeEnum; class IfcElectricApplianceTypeEnum { } IfcElectricApplianceTypeEnum.DISHWASHER = { type: 3, value: "DISHWASHER" }; IfcElectricApplianceTypeEnum.ELECTRICCOOKER = { type: 3, value: "ELECTRICCOOKER" }; IfcElectricApplianceTypeEnum.FREESTANDINGELECTRICHEATER = { type: 3, value: "FREESTANDINGELECTRICHEATER" }; IfcElectricApplianceTypeEnum.FREESTANDINGFAN = { type: 3, value: "FREESTANDINGFAN" }; IfcElectricApplianceTypeEnum.FREESTANDINGWATERCOOLER = { type: 3, value: "FREESTANDINGWATERCOOLER" }; IfcElectricApplianceTypeEnum.FREESTANDINGWATERHEATER = { type: 3, value: "FREESTANDINGWATERHEATER" }; IfcElectricApplianceTypeEnum.FREEZER = { type: 3, value: "FREEZER" }; IfcElectricApplianceTypeEnum.FRIDGE_FREEZER = { type: 3, value: "FRIDGE_FREEZER" }; IfcElectricApplianceTypeEnum.HANDDRYER = { type: 3, value: "HANDDRYER" }; IfcElectricApplianceTypeEnum.KITCHENMACHINE = { type: 3, value: "KITCHENMACHINE" }; IfcElectricApplianceTypeEnum.MICROWAVE = { type: 3, value: "MICROWAVE" }; IfcElectricApplianceTypeEnum.PHOTOCOPIER = { type: 3, value: "PHOTOCOPIER" }; IfcElectricApplianceTypeEnum.REFRIGERATOR = { type: 3, value: "REFRIGERATOR" }; IfcElectricApplianceTypeEnum.TUMBLEDRYER = { type: 3, value: "TUMBLEDRYER" }; IfcElectricApplianceTypeEnum.VENDINGMACHINE = { type: 3, value: "VENDINGMACHINE" }; IfcElectricApplianceTypeEnum.WASHINGMACHINE = { type: 3, value: "WASHINGMACHINE" }; IfcElectricApplianceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcElectricApplianceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcElectricApplianceTypeEnum = IfcElectricApplianceTypeEnum; class IfcElectricDistributionBoardTypeEnum { } IfcElectricDistributionBoardTypeEnum.CONSUMERUNIT = { type: 3, value: "CONSUMERUNIT" }; IfcElectricDistributionBoardTypeEnum.DISTRIBUTIONBOARD = { type: 3, value: "DISTRIBUTIONBOARD" }; IfcElectricDistributionBoardTypeEnum.MOTORCONTROLCENTRE = { type: 3, value: "MOTORCONTROLCENTRE" }; IfcElectricDistributionBoardTypeEnum.SWITCHBOARD = { type: 3, value: "SWITCHBOARD" }; IfcElectricDistributionBoardTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcElectricDistributionBoardTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcElectricDistributionBoardTypeEnum = IfcElectricDistributionBoardTypeEnum; class IfcElectricFlowStorageDeviceTypeEnum { } IfcElectricFlowStorageDeviceTypeEnum.BATTERY = { type: 3, value: "BATTERY" }; IfcElectricFlowStorageDeviceTypeEnum.CAPACITOR = { type: 3, value: "CAPACITOR" }; IfcElectricFlowStorageDeviceTypeEnum.CAPACITORBANK = { type: 3, value: "CAPACITORBANK" }; IfcElectricFlowStorageDeviceTypeEnum.COMPENSATOR = { type: 3, value: "COMPENSATOR" }; IfcElectricFlowStorageDeviceTypeEnum.HARMONICFILTER = { type: 3, value: "HARMONICFILTER" }; IfcElectricFlowStorageDeviceTypeEnum.INDUCTOR = { type: 3, value: "INDUCTOR" }; IfcElectricFlowStorageDeviceTypeEnum.INDUCTORBANK = { type: 3, value: "INDUCTORBANK" }; IfcElectricFlowStorageDeviceTypeEnum.RECHARGER = { type: 3, value: "RECHARGER" }; IfcElectricFlowStorageDeviceTypeEnum.UPS = { type: 3, value: "UPS" }; IfcElectricFlowStorageDeviceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcElectricFlowStorageDeviceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcElectricFlowStorageDeviceTypeEnum = IfcElectricFlowStorageDeviceTypeEnum; class IfcElectricFlowTreatmentDeviceTypeEnum { } IfcElectricFlowTreatmentDeviceTypeEnum.ELECTRONICFILTER = { type: 3, value: "ELECTRONICFILTER" }; IfcElectricFlowTreatmentDeviceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcElectricFlowTreatmentDeviceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcElectricFlowTreatmentDeviceTypeEnum = IfcElectricFlowTreatmentDeviceTypeEnum; class IfcElectricGeneratorTypeEnum { } IfcElectricGeneratorTypeEnum.CHP = { type: 3, value: "CHP" }; IfcElectricGeneratorTypeEnum.ENGINEGENERATOR = { type: 3, value: "ENGINEGENERATOR" }; IfcElectricGeneratorTypeEnum.STANDALONE = { type: 3, value: "STANDALONE" }; IfcElectricGeneratorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcElectricGeneratorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcElectricGeneratorTypeEnum = IfcElectricGeneratorTypeEnum; class IfcElectricMotorTypeEnum { } IfcElectricMotorTypeEnum.DC = { type: 3, value: "DC" }; IfcElectricMotorTypeEnum.INDUCTION = { type: 3, value: "INDUCTION" }; IfcElectricMotorTypeEnum.POLYPHASE = { type: 3, value: "POLYPHASE" }; IfcElectricMotorTypeEnum.RELUCTANCESYNCHRONOUS = { type: 3, value: "RELUCTANCESYNCHRONOUS" }; IfcElectricMotorTypeEnum.SYNCHRONOUS = { type: 3, value: "SYNCHRONOUS" }; IfcElectricMotorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcElectricMotorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcElectricMotorTypeEnum = IfcElectricMotorTypeEnum; class IfcElectricTimeControlTypeEnum { } IfcElectricTimeControlTypeEnum.RELAY = { type: 3, value: "RELAY" }; IfcElectricTimeControlTypeEnum.TIMECLOCK = { type: 3, value: "TIMECLOCK" }; IfcElectricTimeControlTypeEnum.TIMEDELAY = { type: 3, value: "TIMEDELAY" }; IfcElectricTimeControlTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcElectricTimeControlTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcElectricTimeControlTypeEnum = IfcElectricTimeControlTypeEnum; class IfcElementAssemblyTypeEnum { } IfcElementAssemblyTypeEnum.ABUTMENT = { type: 3, value: "ABUTMENT" }; IfcElementAssemblyTypeEnum.ACCESSORY_ASSEMBLY = { type: 3, value: "ACCESSORY_ASSEMBLY" }; IfcElementAssemblyTypeEnum.ARCH = { type: 3, value: "ARCH" }; IfcElementAssemblyTypeEnum.BEAM_GRID = { type: 3, value: "BEAM_GRID" }; IfcElementAssemblyTypeEnum.BRACED_FRAME = { type: 3, value: "BRACED_FRAME" }; IfcElementAssemblyTypeEnum.CROSS_BRACING = { type: 3, value: "CROSS_BRACING" }; IfcElementAssemblyTypeEnum.DECK = { type: 3, value: "DECK" }; IfcElementAssemblyTypeEnum.DILATATIONPANEL = { type: 3, value: "DILATATIONPANEL" }; IfcElementAssemblyTypeEnum.ENTRANCEWORKS = { type: 3, value: "ENTRANCEWORKS" }; IfcElementAssemblyTypeEnum.GIRDER = { type: 3, value: "GIRDER" }; IfcElementAssemblyTypeEnum.GRID = { type: 3, value: "GRID" }; IfcElementAssemblyTypeEnum.MAST = { type: 3, value: "MAST" }; IfcElementAssemblyTypeEnum.PIER = { type: 3, value: "PIER" }; IfcElementAssemblyTypeEnum.PYLON = { type: 3, value: "PYLON" }; IfcElementAssemblyTypeEnum.RAIL_MECHANICAL_EQUIPMENT_ASSEMBLY = { type: 3, value: "RAIL_MECHANICAL_EQUIPMENT_ASSEMBLY" }; IfcElementAssemblyTypeEnum.REINFORCEMENT_UNIT = { type: 3, value: "REINFORCEMENT_UNIT" }; IfcElementAssemblyTypeEnum.RIGID_FRAME = { type: 3, value: "RIGID_FRAME" }; IfcElementAssemblyTypeEnum.SHELTER = { type: 3, value: "SHELTER" }; IfcElementAssemblyTypeEnum.SIGNALASSEMBLY = { type: 3, value: "SIGNALASSEMBLY" }; IfcElementAssemblyTypeEnum.SLAB_FIELD = { type: 3, value: "SLAB_FIELD" }; IfcElementAssemblyTypeEnum.SUMPBUSTER = { type: 3, value: "SUMPBUSTER" }; IfcElementAssemblyTypeEnum.SUPPORTINGASSEMBLY = { type: 3, value: "SUPPORTINGASSEMBLY" }; IfcElementAssemblyTypeEnum.SUSPENSIONASSEMBLY = { type: 3, value: "SUSPENSIONASSEMBLY" }; IfcElementAssemblyTypeEnum.TRACKPANEL = { type: 3, value: "TRACKPANEL" }; IfcElementAssemblyTypeEnum.TRACTION_SWITCHING_ASSEMBLY = { type: 3, value: "TRACTION_SWITCHING_ASSEMBLY" }; IfcElementAssemblyTypeEnum.TRAFFIC_CALMING_DEVICE = { type: 3, value: "TRAFFIC_CALMING_DEVICE" }; IfcElementAssemblyTypeEnum.TRUSS = { type: 3, value: "TRUSS" }; IfcElementAssemblyTypeEnum.TURNOUTPANEL = { type: 3, value: "TURNOUTPANEL" }; IfcElementAssemblyTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcElementAssemblyTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcElementAssemblyTypeEnum = IfcElementAssemblyTypeEnum; class IfcElementCompositionEnum { } IfcElementCompositionEnum.COMPLEX = { type: 3, value: "COMPLEX" }; IfcElementCompositionEnum.ELEMENT = { type: 3, value: "ELEMENT" }; IfcElementCompositionEnum.PARTIAL = { type: 3, value: "PARTIAL" }; IFC4_32.IfcElementCompositionEnum = IfcElementCompositionEnum; class IfcEngineTypeEnum { } IfcEngineTypeEnum.EXTERNALCOMBUSTION = { type: 3, value: "EXTERNALCOMBUSTION" }; IfcEngineTypeEnum.INTERNALCOMBUSTION = { type: 3, value: "INTERNALCOMBUSTION" }; IfcEngineTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcEngineTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcEngineTypeEnum = IfcEngineTypeEnum; class IfcEvaporativeCoolerTypeEnum { } IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVEAIRWASHER = { type: 3, value: "DIRECTEVAPORATIVEAIRWASHER" }; IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVEPACKAGEDROTARYAIRCOOLER = { type: 3, value: "DIRECTEVAPORATIVEPACKAGEDROTARYAIRCOOLER" }; IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVERANDOMMEDIAAIRCOOLER = { type: 3, value: "DIRECTEVAPORATIVERANDOMMEDIAAIRCOOLER" }; IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVERIGIDMEDIAAIRCOOLER = { type: 3, value: "DIRECTEVAPORATIVERIGIDMEDIAAIRCOOLER" }; IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVESLINGERSPACKAGEDAIRCOOLER = { type: 3, value: "DIRECTEVAPORATIVESLINGERSPACKAGEDAIRCOOLER" }; IfcEvaporativeCoolerTypeEnum.INDIRECTDIRECTCOMBINATION = { type: 3, value: "INDIRECTDIRECTCOMBINATION" }; IfcEvaporativeCoolerTypeEnum.INDIRECTEVAPORATIVECOOLINGTOWERORCOILCOOLER = { type: 3, value: "INDIRECTEVAPORATIVECOOLINGTOWERORCOILCOOLER" }; IfcEvaporativeCoolerTypeEnum.INDIRECTEVAPORATIVEPACKAGEAIRCOOLER = { type: 3, value: "INDIRECTEVAPORATIVEPACKAGEAIRCOOLER" }; IfcEvaporativeCoolerTypeEnum.INDIRECTEVAPORATIVEWETCOIL = { type: 3, value: "INDIRECTEVAPORATIVEWETCOIL" }; IfcEvaporativeCoolerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcEvaporativeCoolerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcEvaporativeCoolerTypeEnum = IfcEvaporativeCoolerTypeEnum; class IfcEvaporatorTypeEnum { } IfcEvaporatorTypeEnum.DIRECTEXPANSION = { type: 3, value: "DIRECTEXPANSION" }; IfcEvaporatorTypeEnum.DIRECTEXPANSIONBRAZEDPLATE = { type: 3, value: "DIRECTEXPANSIONBRAZEDPLATE" }; IfcEvaporatorTypeEnum.DIRECTEXPANSIONSHELLANDTUBE = { type: 3, value: "DIRECTEXPANSIONSHELLANDTUBE" }; IfcEvaporatorTypeEnum.DIRECTEXPANSIONTUBEINTUBE = { type: 3, value: "DIRECTEXPANSIONTUBEINTUBE" }; IfcEvaporatorTypeEnum.FLOODEDSHELLANDTUBE = { type: 3, value: "FLOODEDSHELLANDTUBE" }; IfcEvaporatorTypeEnum.SHELLANDCOIL = { type: 3, value: "SHELLANDCOIL" }; IfcEvaporatorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcEvaporatorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcEvaporatorTypeEnum = IfcEvaporatorTypeEnum; class IfcEventTriggerTypeEnum { } IfcEventTriggerTypeEnum.EVENTCOMPLEX = { type: 3, value: "EVENTCOMPLEX" }; IfcEventTriggerTypeEnum.EVENTMESSAGE = { type: 3, value: "EVENTMESSAGE" }; IfcEventTriggerTypeEnum.EVENTRULE = { type: 3, value: "EVENTRULE" }; IfcEventTriggerTypeEnum.EVENTTIME = { type: 3, value: "EVENTTIME" }; IfcEventTriggerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcEventTriggerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcEventTriggerTypeEnum = IfcEventTriggerTypeEnum; class IfcEventTypeEnum { } IfcEventTypeEnum.ENDEVENT = { type: 3, value: "ENDEVENT" }; IfcEventTypeEnum.INTERMEDIATEEVENT = { type: 3, value: "INTERMEDIATEEVENT" }; IfcEventTypeEnum.STARTEVENT = { type: 3, value: "STARTEVENT" }; IfcEventTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcEventTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcEventTypeEnum = IfcEventTypeEnum; class IfcExternalSpatialElementTypeEnum { } IfcExternalSpatialElementTypeEnum.EXTERNAL = { type: 3, value: "EXTERNAL" }; IfcExternalSpatialElementTypeEnum.EXTERNAL_EARTH = { type: 3, value: "EXTERNAL_EARTH" }; IfcExternalSpatialElementTypeEnum.EXTERNAL_FIRE = { type: 3, value: "EXTERNAL_FIRE" }; IfcExternalSpatialElementTypeEnum.EXTERNAL_WATER = { type: 3, value: "EXTERNAL_WATER" }; IfcExternalSpatialElementTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcExternalSpatialElementTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcExternalSpatialElementTypeEnum = IfcExternalSpatialElementTypeEnum; class IfcFacilityPartCommonTypeEnum { } IfcFacilityPartCommonTypeEnum.ABOVEGROUND = { type: 3, value: "ABOVEGROUND" }; IfcFacilityPartCommonTypeEnum.BELOWGROUND = { type: 3, value: "BELOWGROUND" }; IfcFacilityPartCommonTypeEnum.JUNCTION = { type: 3, value: "JUNCTION" }; IfcFacilityPartCommonTypeEnum.LEVELCROSSING = { type: 3, value: "LEVELCROSSING" }; IfcFacilityPartCommonTypeEnum.SEGMENT = { type: 3, value: "SEGMENT" }; IfcFacilityPartCommonTypeEnum.SUBSTRUCTURE = { type: 3, value: "SUBSTRUCTURE" }; IfcFacilityPartCommonTypeEnum.SUPERSTRUCTURE = { type: 3, value: "SUPERSTRUCTURE" }; IfcFacilityPartCommonTypeEnum.TERMINAL = { type: 3, value: "TERMINAL" }; IfcFacilityPartCommonTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcFacilityPartCommonTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcFacilityPartCommonTypeEnum = IfcFacilityPartCommonTypeEnum; class IfcFacilityUsageEnum { } IfcFacilityUsageEnum.LATERAL = { type: 3, value: "LATERAL" }; IfcFacilityUsageEnum.LONGITUDINAL = { type: 3, value: "LONGITUDINAL" }; IfcFacilityUsageEnum.REGION = { type: 3, value: "REGION" }; IfcFacilityUsageEnum.VERTICAL = { type: 3, value: "VERTICAL" }; IfcFacilityUsageEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcFacilityUsageEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcFacilityUsageEnum = IfcFacilityUsageEnum; class IfcFanTypeEnum { } IfcFanTypeEnum.CENTRIFUGALAIRFOIL = { type: 3, value: "CENTRIFUGALAIRFOIL" }; IfcFanTypeEnum.CENTRIFUGALBACKWARDINCLINEDCURVED = { type: 3, value: "CENTRIFUGALBACKWARDINCLINEDCURVED" }; IfcFanTypeEnum.CENTRIFUGALFORWARDCURVED = { type: 3, value: "CENTRIFUGALFORWARDCURVED" }; IfcFanTypeEnum.CENTRIFUGALRADIAL = { type: 3, value: "CENTRIFUGALRADIAL" }; IfcFanTypeEnum.PROPELLORAXIAL = { type: 3, value: "PROPELLORAXIAL" }; IfcFanTypeEnum.TUBEAXIAL = { type: 3, value: "TUBEAXIAL" }; IfcFanTypeEnum.VANEAXIAL = { type: 3, value: "VANEAXIAL" }; IfcFanTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcFanTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcFanTypeEnum = IfcFanTypeEnum; class IfcFastenerTypeEnum { } IfcFastenerTypeEnum.GLUE = { type: 3, value: "GLUE" }; IfcFastenerTypeEnum.MORTAR = { type: 3, value: "MORTAR" }; IfcFastenerTypeEnum.WELD = { type: 3, value: "WELD" }; IfcFastenerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcFastenerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcFastenerTypeEnum = IfcFastenerTypeEnum; class IfcFilterTypeEnum { } IfcFilterTypeEnum.AIRPARTICLEFILTER = { type: 3, value: "AIRPARTICLEFILTER" }; IfcFilterTypeEnum.COMPRESSEDAIRFILTER = { type: 3, value: "COMPRESSEDAIRFILTER" }; IfcFilterTypeEnum.ODORFILTER = { type: 3, value: "ODORFILTER" }; IfcFilterTypeEnum.OILFILTER = { type: 3, value: "OILFILTER" }; IfcFilterTypeEnum.STRAINER = { type: 3, value: "STRAINER" }; IfcFilterTypeEnum.WATERFILTER = { type: 3, value: "WATERFILTER" }; IfcFilterTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcFilterTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcFilterTypeEnum = IfcFilterTypeEnum; class IfcFireSuppressionTerminalTypeEnum { } IfcFireSuppressionTerminalTypeEnum.BREECHINGINLET = { type: 3, value: "BREECHINGINLET" }; IfcFireSuppressionTerminalTypeEnum.FIREHYDRANT = { type: 3, value: "FIREHYDRANT" }; IfcFireSuppressionTerminalTypeEnum.FIREMONITOR = { type: 3, value: "FIREMONITOR" }; IfcFireSuppressionTerminalTypeEnum.HOSEREEL = { type: 3, value: "HOSEREEL" }; IfcFireSuppressionTerminalTypeEnum.SPRINKLER = { type: 3, value: "SPRINKLER" }; IfcFireSuppressionTerminalTypeEnum.SPRINKLERDEFLECTOR = { type: 3, value: "SPRINKLERDEFLECTOR" }; IfcFireSuppressionTerminalTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcFireSuppressionTerminalTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcFireSuppressionTerminalTypeEnum = IfcFireSuppressionTerminalTypeEnum; class IfcFlowDirectionEnum { } IfcFlowDirectionEnum.SINK = { type: 3, value: "SINK" }; IfcFlowDirectionEnum.SOURCE = { type: 3, value: "SOURCE" }; IfcFlowDirectionEnum.SOURCEANDSINK = { type: 3, value: "SOURCEANDSINK" }; IfcFlowDirectionEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcFlowDirectionEnum = IfcFlowDirectionEnum; class IfcFlowInstrumentTypeEnum { } IfcFlowInstrumentTypeEnum.AMMETER = { type: 3, value: "AMMETER" }; IfcFlowInstrumentTypeEnum.COMBINED = { type: 3, value: "COMBINED" }; IfcFlowInstrumentTypeEnum.FREQUENCYMETER = { type: 3, value: "FREQUENCYMETER" }; IfcFlowInstrumentTypeEnum.PHASEANGLEMETER = { type: 3, value: "PHASEANGLEMETER" }; IfcFlowInstrumentTypeEnum.POWERFACTORMETER = { type: 3, value: "POWERFACTORMETER" }; IfcFlowInstrumentTypeEnum.PRESSUREGAUGE = { type: 3, value: "PRESSUREGAUGE" }; IfcFlowInstrumentTypeEnum.THERMOMETER = { type: 3, value: "THERMOMETER" }; IfcFlowInstrumentTypeEnum.VOLTMETER = { type: 3, value: "VOLTMETER" }; IfcFlowInstrumentTypeEnum.VOLTMETER_PEAK = { type: 3, value: "VOLTMETER_PEAK" }; IfcFlowInstrumentTypeEnum.VOLTMETER_RMS = { type: 3, value: "VOLTMETER_RMS" }; IfcFlowInstrumentTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcFlowInstrumentTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcFlowInstrumentTypeEnum = IfcFlowInstrumentTypeEnum; class IfcFlowMeterTypeEnum { } IfcFlowMeterTypeEnum.ENERGYMETER = { type: 3, value: "ENERGYMETER" }; IfcFlowMeterTypeEnum.GASMETER = { type: 3, value: "GASMETER" }; IfcFlowMeterTypeEnum.OILMETER = { type: 3, value: "OILMETER" }; IfcFlowMeterTypeEnum.WATERMETER = { type: 3, value: "WATERMETER" }; IfcFlowMeterTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcFlowMeterTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcFlowMeterTypeEnum = IfcFlowMeterTypeEnum; class IfcFootingTypeEnum { } IfcFootingTypeEnum.CAISSON_FOUNDATION = { type: 3, value: "CAISSON_FOUNDATION" }; IfcFootingTypeEnum.FOOTING_BEAM = { type: 3, value: "FOOTING_BEAM" }; IfcFootingTypeEnum.PAD_FOOTING = { type: 3, value: "PAD_FOOTING" }; IfcFootingTypeEnum.PILE_CAP = { type: 3, value: "PILE_CAP" }; IfcFootingTypeEnum.STRIP_FOOTING = { type: 3, value: "STRIP_FOOTING" }; IfcFootingTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcFootingTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcFootingTypeEnum = IfcFootingTypeEnum; class IfcFurnitureTypeEnum { } IfcFurnitureTypeEnum.BED = { type: 3, value: "BED" }; IfcFurnitureTypeEnum.CHAIR = { type: 3, value: "CHAIR" }; IfcFurnitureTypeEnum.DESK = { type: 3, value: "DESK" }; IfcFurnitureTypeEnum.FILECABINET = { type: 3, value: "FILECABINET" }; IfcFurnitureTypeEnum.SHELF = { type: 3, value: "SHELF" }; IfcFurnitureTypeEnum.SOFA = { type: 3, value: "SOFA" }; IfcFurnitureTypeEnum.TABLE = { type: 3, value: "TABLE" }; IfcFurnitureTypeEnum.TECHNICALCABINET = { type: 3, value: "TECHNICALCABINET" }; IfcFurnitureTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcFurnitureTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcFurnitureTypeEnum = IfcFurnitureTypeEnum; class IfcGeographicElementTypeEnum { } IfcGeographicElementTypeEnum.SOIL_BORING_POINT = { type: 3, value: "SOIL_BORING_POINT" }; IfcGeographicElementTypeEnum.TERRAIN = { type: 3, value: "TERRAIN" }; IfcGeographicElementTypeEnum.VEGETATION = { type: 3, value: "VEGETATION" }; IfcGeographicElementTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcGeographicElementTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcGeographicElementTypeEnum = IfcGeographicElementTypeEnum; class IfcGeometricProjectionEnum { } IfcGeometricProjectionEnum.ELEVATION_VIEW = { type: 3, value: "ELEVATION_VIEW" }; IfcGeometricProjectionEnum.GRAPH_VIEW = { type: 3, value: "GRAPH_VIEW" }; IfcGeometricProjectionEnum.MODEL_VIEW = { type: 3, value: "MODEL_VIEW" }; IfcGeometricProjectionEnum.PLAN_VIEW = { type: 3, value: "PLAN_VIEW" }; IfcGeometricProjectionEnum.REFLECTED_PLAN_VIEW = { type: 3, value: "REFLECTED_PLAN_VIEW" }; IfcGeometricProjectionEnum.SECTION_VIEW = { type: 3, value: "SECTION_VIEW" }; IfcGeometricProjectionEnum.SKETCH_VIEW = { type: 3, value: "SKETCH_VIEW" }; IfcGeometricProjectionEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcGeometricProjectionEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcGeometricProjectionEnum = IfcGeometricProjectionEnum; class IfcGeotechnicalStratumTypeEnum { } IfcGeotechnicalStratumTypeEnum.SOLID = { type: 3, value: "SOLID" }; IfcGeotechnicalStratumTypeEnum.VOID = { type: 3, value: "VOID" }; IfcGeotechnicalStratumTypeEnum.WATER = { type: 3, value: "WATER" }; IfcGeotechnicalStratumTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcGeotechnicalStratumTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcGeotechnicalStratumTypeEnum = IfcGeotechnicalStratumTypeEnum; class IfcGlobalOrLocalEnum { } IfcGlobalOrLocalEnum.GLOBAL_COORDS = { type: 3, value: "GLOBAL_COORDS" }; IfcGlobalOrLocalEnum.LOCAL_COORDS = { type: 3, value: "LOCAL_COORDS" }; IFC4_32.IfcGlobalOrLocalEnum = IfcGlobalOrLocalEnum; class IfcGridTypeEnum { } IfcGridTypeEnum.IRREGULAR = { type: 3, value: "IRREGULAR" }; IfcGridTypeEnum.RADIAL = { type: 3, value: "RADIAL" }; IfcGridTypeEnum.RECTANGULAR = { type: 3, value: "RECTANGULAR" }; IfcGridTypeEnum.TRIANGULAR = { type: 3, value: "TRIANGULAR" }; IfcGridTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcGridTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcGridTypeEnum = IfcGridTypeEnum; class IfcHeatExchangerTypeEnum { } IfcHeatExchangerTypeEnum.PLATE = { type: 3, value: "PLATE" }; IfcHeatExchangerTypeEnum.SHELLANDTUBE = { type: 3, value: "SHELLANDTUBE" }; IfcHeatExchangerTypeEnum.TURNOUTHEATING = { type: 3, value: "TURNOUTHEATING" }; IfcHeatExchangerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcHeatExchangerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcHeatExchangerTypeEnum = IfcHeatExchangerTypeEnum; class IfcHumidifierTypeEnum { } IfcHumidifierTypeEnum.ADIABATICAIRWASHER = { type: 3, value: "ADIABATICAIRWASHER" }; IfcHumidifierTypeEnum.ADIABATICATOMIZING = { type: 3, value: "ADIABATICATOMIZING" }; IfcHumidifierTypeEnum.ADIABATICCOMPRESSEDAIRNOZZLE = { type: 3, value: "ADIABATICCOMPRESSEDAIRNOZZLE" }; IfcHumidifierTypeEnum.ADIABATICPAN = { type: 3, value: "ADIABATICPAN" }; IfcHumidifierTypeEnum.ADIABATICRIGIDMEDIA = { type: 3, value: "ADIABATICRIGIDMEDIA" }; IfcHumidifierTypeEnum.ADIABATICULTRASONIC = { type: 3, value: "ADIABATICULTRASONIC" }; IfcHumidifierTypeEnum.ADIABATICWETTEDELEMENT = { type: 3, value: "ADIABATICWETTEDELEMENT" }; IfcHumidifierTypeEnum.ASSISTEDBUTANE = { type: 3, value: "ASSISTEDBUTANE" }; IfcHumidifierTypeEnum.ASSISTEDELECTRIC = { type: 3, value: "ASSISTEDELECTRIC" }; IfcHumidifierTypeEnum.ASSISTEDNATURALGAS = { type: 3, value: "ASSISTEDNATURALGAS" }; IfcHumidifierTypeEnum.ASSISTEDPROPANE = { type: 3, value: "ASSISTEDPROPANE" }; IfcHumidifierTypeEnum.ASSISTEDSTEAM = { type: 3, value: "ASSISTEDSTEAM" }; IfcHumidifierTypeEnum.STEAMINJECTION = { type: 3, value: "STEAMINJECTION" }; IfcHumidifierTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcHumidifierTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcHumidifierTypeEnum = IfcHumidifierTypeEnum; class IfcImpactProtectionDeviceTypeEnum { } IfcImpactProtectionDeviceTypeEnum.BUMPER = { type: 3, value: "BUMPER" }; IfcImpactProtectionDeviceTypeEnum.CRASHCUSHION = { type: 3, value: "CRASHCUSHION" }; IfcImpactProtectionDeviceTypeEnum.DAMPINGSYSTEM = { type: 3, value: "DAMPINGSYSTEM" }; IfcImpactProtectionDeviceTypeEnum.FENDER = { type: 3, value: "FENDER" }; IfcImpactProtectionDeviceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcImpactProtectionDeviceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcImpactProtectionDeviceTypeEnum = IfcImpactProtectionDeviceTypeEnum; class IfcInterceptorTypeEnum { } IfcInterceptorTypeEnum.CYCLONIC = { type: 3, value: "CYCLONIC" }; IfcInterceptorTypeEnum.GREASE = { type: 3, value: "GREASE" }; IfcInterceptorTypeEnum.OIL = { type: 3, value: "OIL" }; IfcInterceptorTypeEnum.PETROL = { type: 3, value: "PETROL" }; IfcInterceptorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcInterceptorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcInterceptorTypeEnum = IfcInterceptorTypeEnum; class IfcInternalOrExternalEnum { } IfcInternalOrExternalEnum.EXTERNAL = { type: 3, value: "EXTERNAL" }; IfcInternalOrExternalEnum.EXTERNAL_EARTH = { type: 3, value: "EXTERNAL_EARTH" }; IfcInternalOrExternalEnum.EXTERNAL_FIRE = { type: 3, value: "EXTERNAL_FIRE" }; IfcInternalOrExternalEnum.EXTERNAL_WATER = { type: 3, value: "EXTERNAL_WATER" }; IfcInternalOrExternalEnum.INTERNAL = { type: 3, value: "INTERNAL" }; IfcInternalOrExternalEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcInternalOrExternalEnum = IfcInternalOrExternalEnum; class IfcInventoryTypeEnum { } IfcInventoryTypeEnum.ASSETINVENTORY = { type: 3, value: "ASSETINVENTORY" }; IfcInventoryTypeEnum.FURNITUREINVENTORY = { type: 3, value: "FURNITUREINVENTORY" }; IfcInventoryTypeEnum.SPACEINVENTORY = { type: 3, value: "SPACEINVENTORY" }; IfcInventoryTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcInventoryTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcInventoryTypeEnum = IfcInventoryTypeEnum; class IfcJunctionBoxTypeEnum { } IfcJunctionBoxTypeEnum.DATA = { type: 3, value: "DATA" }; IfcJunctionBoxTypeEnum.POWER = { type: 3, value: "POWER" }; IfcJunctionBoxTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcJunctionBoxTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcJunctionBoxTypeEnum = IfcJunctionBoxTypeEnum; class IfcKnotType { } IfcKnotType.PIECEWISE_BEZIER_KNOTS = { type: 3, value: "PIECEWISE_BEZIER_KNOTS" }; IfcKnotType.QUASI_UNIFORM_KNOTS = { type: 3, value: "QUASI_UNIFORM_KNOTS" }; IfcKnotType.UNIFORM_KNOTS = { type: 3, value: "UNIFORM_KNOTS" }; IfcKnotType.UNSPECIFIED = { type: 3, value: "UNSPECIFIED" }; IFC4_32.IfcKnotType = IfcKnotType; class IfcLaborResourceTypeEnum { } IfcLaborResourceTypeEnum.ADMINISTRATION = { type: 3, value: "ADMINISTRATION" }; IfcLaborResourceTypeEnum.CARPENTRY = { type: 3, value: "CARPENTRY" }; IfcLaborResourceTypeEnum.CLEANING = { type: 3, value: "CLEANING" }; IfcLaborResourceTypeEnum.CONCRETE = { type: 3, value: "CONCRETE" }; IfcLaborResourceTypeEnum.DRYWALL = { type: 3, value: "DRYWALL" }; IfcLaborResourceTypeEnum.ELECTRIC = { type: 3, value: "ELECTRIC" }; IfcLaborResourceTypeEnum.FINISHING = { type: 3, value: "FINISHING" }; IfcLaborResourceTypeEnum.FLOORING = { type: 3, value: "FLOORING" }; IfcLaborResourceTypeEnum.GENERAL = { type: 3, value: "GENERAL" }; IfcLaborResourceTypeEnum.HVAC = { type: 3, value: "HVAC" }; IfcLaborResourceTypeEnum.LANDSCAPING = { type: 3, value: "LANDSCAPING" }; IfcLaborResourceTypeEnum.MASONRY = { type: 3, value: "MASONRY" }; IfcLaborResourceTypeEnum.PAINTING = { type: 3, value: "PAINTING" }; IfcLaborResourceTypeEnum.PAVING = { type: 3, value: "PAVING" }; IfcLaborResourceTypeEnum.PLUMBING = { type: 3, value: "PLUMBING" }; IfcLaborResourceTypeEnum.ROOFING = { type: 3, value: "ROOFING" }; IfcLaborResourceTypeEnum.SITEGRADING = { type: 3, value: "SITEGRADING" }; IfcLaborResourceTypeEnum.STEELWORK = { type: 3, value: "STEELWORK" }; IfcLaborResourceTypeEnum.SURVEYING = { type: 3, value: "SURVEYING" }; IfcLaborResourceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcLaborResourceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcLaborResourceTypeEnum = IfcLaborResourceTypeEnum; class IfcLampTypeEnum { } IfcLampTypeEnum.COMPACTFLUORESCENT = { type: 3, value: "COMPACTFLUORESCENT" }; IfcLampTypeEnum.FLUORESCENT = { type: 3, value: "FLUORESCENT" }; IfcLampTypeEnum.HALOGEN = { type: 3, value: "HALOGEN" }; IfcLampTypeEnum.HIGHPRESSUREMERCURY = { type: 3, value: "HIGHPRESSUREMERCURY" }; IfcLampTypeEnum.HIGHPRESSURESODIUM = { type: 3, value: "HIGHPRESSURESODIUM" }; IfcLampTypeEnum.LED = { type: 3, value: "LED" }; IfcLampTypeEnum.METALHALIDE = { type: 3, value: "METALHALIDE" }; IfcLampTypeEnum.OLED = { type: 3, value: "OLED" }; IfcLampTypeEnum.TUNGSTENFILAMENT = { type: 3, value: "TUNGSTENFILAMENT" }; IfcLampTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcLampTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcLampTypeEnum = IfcLampTypeEnum; class IfcLayerSetDirectionEnum { } IfcLayerSetDirectionEnum.AXIS1 = { type: 3, value: "AXIS1" }; IfcLayerSetDirectionEnum.AXIS2 = { type: 3, value: "AXIS2" }; IfcLayerSetDirectionEnum.AXIS3 = { type: 3, value: "AXIS3" }; IFC4_32.IfcLayerSetDirectionEnum = IfcLayerSetDirectionEnum; class IfcLightDistributionCurveEnum { } IfcLightDistributionCurveEnum.TYPE_A = { type: 3, value: "TYPE_A" }; IfcLightDistributionCurveEnum.TYPE_B = { type: 3, value: "TYPE_B" }; IfcLightDistributionCurveEnum.TYPE_C = { type: 3, value: "TYPE_C" }; IfcLightDistributionCurveEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcLightDistributionCurveEnum = IfcLightDistributionCurveEnum; class IfcLightEmissionSourceEnum { } IfcLightEmissionSourceEnum.COMPACTFLUORESCENT = { type: 3, value: "COMPACTFLUORESCENT" }; IfcLightEmissionSourceEnum.FLUORESCENT = { type: 3, value: "FLUORESCENT" }; IfcLightEmissionSourceEnum.HIGHPRESSUREMERCURY = { type: 3, value: "HIGHPRESSUREMERCURY" }; IfcLightEmissionSourceEnum.HIGHPRESSURESODIUM = { type: 3, value: "HIGHPRESSURESODIUM" }; IfcLightEmissionSourceEnum.LIGHTEMITTINGDIODE = { type: 3, value: "LIGHTEMITTINGDIODE" }; IfcLightEmissionSourceEnum.LOWPRESSURESODIUM = { type: 3, value: "LOWPRESSURESODIUM" }; IfcLightEmissionSourceEnum.LOWVOLTAGEHALOGEN = { type: 3, value: "LOWVOLTAGEHALOGEN" }; IfcLightEmissionSourceEnum.MAINVOLTAGEHALOGEN = { type: 3, value: "MAINVOLTAGEHALOGEN" }; IfcLightEmissionSourceEnum.METALHALIDE = { type: 3, value: "METALHALIDE" }; IfcLightEmissionSourceEnum.TUNGSTENFILAMENT = { type: 3, value: "TUNGSTENFILAMENT" }; IfcLightEmissionSourceEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcLightEmissionSourceEnum = IfcLightEmissionSourceEnum; class IfcLightFixtureTypeEnum { } IfcLightFixtureTypeEnum.DIRECTIONSOURCE = { type: 3, value: "DIRECTIONSOURCE" }; IfcLightFixtureTypeEnum.POINTSOURCE = { type: 3, value: "POINTSOURCE" }; IfcLightFixtureTypeEnum.SECURITYLIGHTING = { type: 3, value: "SECURITYLIGHTING" }; IfcLightFixtureTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcLightFixtureTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcLightFixtureTypeEnum = IfcLightFixtureTypeEnum; class IfcLiquidTerminalTypeEnum { } IfcLiquidTerminalTypeEnum.HOSEREEL = { type: 3, value: "HOSEREEL" }; IfcLiquidTerminalTypeEnum.LOADINGARM = { type: 3, value: "LOADINGARM" }; IfcLiquidTerminalTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcLiquidTerminalTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcLiquidTerminalTypeEnum = IfcLiquidTerminalTypeEnum; class IfcLoadGroupTypeEnum { } IfcLoadGroupTypeEnum.LOAD_CASE = { type: 3, value: "LOAD_CASE" }; IfcLoadGroupTypeEnum.LOAD_COMBINATION = { type: 3, value: "LOAD_COMBINATION" }; IfcLoadGroupTypeEnum.LOAD_GROUP = { type: 3, value: "LOAD_GROUP" }; IfcLoadGroupTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcLoadGroupTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcLoadGroupTypeEnum = IfcLoadGroupTypeEnum; class IfcLogicalOperatorEnum { } IfcLogicalOperatorEnum.LOGICALAND = { type: 3, value: "LOGICALAND" }; IfcLogicalOperatorEnum.LOGICALNOTAND = { type: 3, value: "LOGICALNOTAND" }; IfcLogicalOperatorEnum.LOGICALNOTOR = { type: 3, value: "LOGICALNOTOR" }; IfcLogicalOperatorEnum.LOGICALOR = { type: 3, value: "LOGICALOR" }; IfcLogicalOperatorEnum.LOGICALXOR = { type: 3, value: "LOGICALXOR" }; IFC4_32.IfcLogicalOperatorEnum = IfcLogicalOperatorEnum; class IfcMarineFacilityTypeEnum { } IfcMarineFacilityTypeEnum.BARRIERBEACH = { type: 3, value: "BARRIERBEACH" }; IfcMarineFacilityTypeEnum.BREAKWATER = { type: 3, value: "BREAKWATER" }; IfcMarineFacilityTypeEnum.CANAL = { type: 3, value: "CANAL" }; IfcMarineFacilityTypeEnum.DRYDOCK = { type: 3, value: "DRYDOCK" }; IfcMarineFacilityTypeEnum.FLOATINGDOCK = { type: 3, value: "FLOATINGDOCK" }; IfcMarineFacilityTypeEnum.HYDROLIFT = { type: 3, value: "HYDROLIFT" }; IfcMarineFacilityTypeEnum.JETTY = { type: 3, value: "JETTY" }; IfcMarineFacilityTypeEnum.LAUNCHRECOVERY = { type: 3, value: "LAUNCHRECOVERY" }; IfcMarineFacilityTypeEnum.MARINEDEFENCE = { type: 3, value: "MARINEDEFENCE" }; IfcMarineFacilityTypeEnum.NAVIGATIONALCHANNEL = { type: 3, value: "NAVIGATIONALCHANNEL" }; IfcMarineFacilityTypeEnum.PORT = { type: 3, value: "PORT" }; IfcMarineFacilityTypeEnum.QUAY = { type: 3, value: "QUAY" }; IfcMarineFacilityTypeEnum.REVETMENT = { type: 3, value: "REVETMENT" }; IfcMarineFacilityTypeEnum.SHIPLIFT = { type: 3, value: "SHIPLIFT" }; IfcMarineFacilityTypeEnum.SHIPLOCK = { type: 3, value: "SHIPLOCK" }; IfcMarineFacilityTypeEnum.SHIPYARD = { type: 3, value: "SHIPYARD" }; IfcMarineFacilityTypeEnum.SLIPWAY = { type: 3, value: "SLIPWAY" }; IfcMarineFacilityTypeEnum.WATERWAY = { type: 3, value: "WATERWAY" }; IfcMarineFacilityTypeEnum.WATERWAYSHIPLIFT = { type: 3, value: "WATERWAYSHIPLIFT" }; IfcMarineFacilityTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcMarineFacilityTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcMarineFacilityTypeEnum = IfcMarineFacilityTypeEnum; class IfcMarinePartTypeEnum { } IfcMarinePartTypeEnum.ABOVEWATERLINE = { type: 3, value: "ABOVEWATERLINE" }; IfcMarinePartTypeEnum.ANCHORAGE = { type: 3, value: "ANCHORAGE" }; IfcMarinePartTypeEnum.APPROACHCHANNEL = { type: 3, value: "APPROACHCHANNEL" }; IfcMarinePartTypeEnum.BELOWWATERLINE = { type: 3, value: "BELOWWATERLINE" }; IfcMarinePartTypeEnum.BERTHINGSTRUCTURE = { type: 3, value: "BERTHINGSTRUCTURE" }; IfcMarinePartTypeEnum.CHAMBER = { type: 3, value: "CHAMBER" }; IfcMarinePartTypeEnum.CILL_LEVEL = { type: 3, value: "CILL_LEVEL" }; IfcMarinePartTypeEnum.COPELEVEL = { type: 3, value: "COPELEVEL" }; IfcMarinePartTypeEnum.CORE = { type: 3, value: "CORE" }; IfcMarinePartTypeEnum.CREST = { type: 3, value: "CREST" }; IfcMarinePartTypeEnum.GATEHEAD = { type: 3, value: "GATEHEAD" }; IfcMarinePartTypeEnum.GUDINGSTRUCTURE = { type: 3, value: "GUDINGSTRUCTURE" }; IfcMarinePartTypeEnum.HIGHWATERLINE = { type: 3, value: "HIGHWATERLINE" }; IfcMarinePartTypeEnum.LANDFIELD = { type: 3, value: "LANDFIELD" }; IfcMarinePartTypeEnum.LEEWARDSIDE = { type: 3, value: "LEEWARDSIDE" }; IfcMarinePartTypeEnum.LOWWATERLINE = { type: 3, value: "LOWWATERLINE" }; IfcMarinePartTypeEnum.MANUFACTURING = { type: 3, value: "MANUFACTURING" }; IfcMarinePartTypeEnum.NAVIGATIONALAREA = { type: 3, value: "NAVIGATIONALAREA" }; IfcMarinePartTypeEnum.PROTECTION = { type: 3, value: "PROTECTION" }; IfcMarinePartTypeEnum.SHIPTRANSFER = { type: 3, value: "SHIPTRANSFER" }; IfcMarinePartTypeEnum.STORAGEAREA = { type: 3, value: "STORAGEAREA" }; IfcMarinePartTypeEnum.VEHICLESERVICING = { type: 3, value: "VEHICLESERVICING" }; IfcMarinePartTypeEnum.WATERFIELD = { type: 3, value: "WATERFIELD" }; IfcMarinePartTypeEnum.WEATHERSIDE = { type: 3, value: "WEATHERSIDE" }; IfcMarinePartTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcMarinePartTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcMarinePartTypeEnum = IfcMarinePartTypeEnum; class IfcMechanicalFastenerTypeEnum { } IfcMechanicalFastenerTypeEnum.ANCHORBOLT = { type: 3, value: "ANCHORBOLT" }; IfcMechanicalFastenerTypeEnum.BOLT = { type: 3, value: "BOLT" }; IfcMechanicalFastenerTypeEnum.CHAIN = { type: 3, value: "CHAIN" }; IfcMechanicalFastenerTypeEnum.COUPLER = { type: 3, value: "COUPLER" }; IfcMechanicalFastenerTypeEnum.DOWEL = { type: 3, value: "DOWEL" }; IfcMechanicalFastenerTypeEnum.NAIL = { type: 3, value: "NAIL" }; IfcMechanicalFastenerTypeEnum.NAILPLATE = { type: 3, value: "NAILPLATE" }; IfcMechanicalFastenerTypeEnum.RAILFASTENING = { type: 3, value: "RAILFASTENING" }; IfcMechanicalFastenerTypeEnum.RAILJOINT = { type: 3, value: "RAILJOINT" }; IfcMechanicalFastenerTypeEnum.RIVET = { type: 3, value: "RIVET" }; IfcMechanicalFastenerTypeEnum.ROPE = { type: 3, value: "ROPE" }; IfcMechanicalFastenerTypeEnum.SCREW = { type: 3, value: "SCREW" }; IfcMechanicalFastenerTypeEnum.SHEARCONNECTOR = { type: 3, value: "SHEARCONNECTOR" }; IfcMechanicalFastenerTypeEnum.STAPLE = { type: 3, value: "STAPLE" }; IfcMechanicalFastenerTypeEnum.STUDSHEARCONNECTOR = { type: 3, value: "STUDSHEARCONNECTOR" }; IfcMechanicalFastenerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcMechanicalFastenerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcMechanicalFastenerTypeEnum = IfcMechanicalFastenerTypeEnum; class IfcMedicalDeviceTypeEnum { } IfcMedicalDeviceTypeEnum.AIRSTATION = { type: 3, value: "AIRSTATION" }; IfcMedicalDeviceTypeEnum.FEEDAIRUNIT = { type: 3, value: "FEEDAIRUNIT" }; IfcMedicalDeviceTypeEnum.OXYGENGENERATOR = { type: 3, value: "OXYGENGENERATOR" }; IfcMedicalDeviceTypeEnum.OXYGENPLANT = { type: 3, value: "OXYGENPLANT" }; IfcMedicalDeviceTypeEnum.VACUUMSTATION = { type: 3, value: "VACUUMSTATION" }; IfcMedicalDeviceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcMedicalDeviceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcMedicalDeviceTypeEnum = IfcMedicalDeviceTypeEnum; class IfcMemberTypeEnum { } IfcMemberTypeEnum.ARCH_SEGMENT = { type: 3, value: "ARCH_SEGMENT" }; IfcMemberTypeEnum.BRACE = { type: 3, value: "BRACE" }; IfcMemberTypeEnum.CHORD = { type: 3, value: "CHORD" }; IfcMemberTypeEnum.COLLAR = { type: 3, value: "COLLAR" }; IfcMemberTypeEnum.MEMBER = { type: 3, value: "MEMBER" }; IfcMemberTypeEnum.MULLION = { type: 3, value: "MULLION" }; IfcMemberTypeEnum.PLATE = { type: 3, value: "PLATE" }; IfcMemberTypeEnum.POST = { type: 3, value: "POST" }; IfcMemberTypeEnum.PURLIN = { type: 3, value: "PURLIN" }; IfcMemberTypeEnum.RAFTER = { type: 3, value: "RAFTER" }; IfcMemberTypeEnum.STAY_CABLE = { type: 3, value: "STAY_CABLE" }; IfcMemberTypeEnum.STIFFENING_RIB = { type: 3, value: "STIFFENING_RIB" }; IfcMemberTypeEnum.STRINGER = { type: 3, value: "STRINGER" }; IfcMemberTypeEnum.STRUCTURALCABLE = { type: 3, value: "STRUCTURALCABLE" }; IfcMemberTypeEnum.STRUT = { type: 3, value: "STRUT" }; IfcMemberTypeEnum.STUD = { type: 3, value: "STUD" }; IfcMemberTypeEnum.SUSPENDER = { type: 3, value: "SUSPENDER" }; IfcMemberTypeEnum.SUSPENSION_CABLE = { type: 3, value: "SUSPENSION_CABLE" }; IfcMemberTypeEnum.TIEBAR = { type: 3, value: "TIEBAR" }; IfcMemberTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcMemberTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcMemberTypeEnum = IfcMemberTypeEnum; class IfcMobileTelecommunicationsApplianceTypeEnum { } IfcMobileTelecommunicationsApplianceTypeEnum.ACCESSPOINT = { type: 3, value: "ACCESSPOINT" }; IfcMobileTelecommunicationsApplianceTypeEnum.BASEBANDUNIT = { type: 3, value: "BASEBANDUNIT" }; IfcMobileTelecommunicationsApplianceTypeEnum.BASETRANSCEIVERSTATION = { type: 3, value: "BASETRANSCEIVERSTATION" }; IfcMobileTelecommunicationsApplianceTypeEnum.E_UTRAN_NODE_B = { type: 3, value: "E_UTRAN_NODE_B" }; IfcMobileTelecommunicationsApplianceTypeEnum.GATEWAY_GPRS_SUPPORT_NODE = { type: 3, value: "GATEWAY_GPRS_SUPPORT_NODE" }; IfcMobileTelecommunicationsApplianceTypeEnum.MASTERUNIT = { type: 3, value: "MASTERUNIT" }; IfcMobileTelecommunicationsApplianceTypeEnum.MOBILESWITCHINGCENTER = { type: 3, value: "MOBILESWITCHINGCENTER" }; IfcMobileTelecommunicationsApplianceTypeEnum.MSCSERVER = { type: 3, value: "MSCSERVER" }; IfcMobileTelecommunicationsApplianceTypeEnum.PACKETCONTROLUNIT = { type: 3, value: "PACKETCONTROLUNIT" }; IfcMobileTelecommunicationsApplianceTypeEnum.REMOTERADIOUNIT = { type: 3, value: "REMOTERADIOUNIT" }; IfcMobileTelecommunicationsApplianceTypeEnum.REMOTEUNIT = { type: 3, value: "REMOTEUNIT" }; IfcMobileTelecommunicationsApplianceTypeEnum.SERVICE_GPRS_SUPPORT_NODE = { type: 3, value: "SERVICE_GPRS_SUPPORT_NODE" }; IfcMobileTelecommunicationsApplianceTypeEnum.SUBSCRIBERSERVER = { type: 3, value: "SUBSCRIBERSERVER" }; IfcMobileTelecommunicationsApplianceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcMobileTelecommunicationsApplianceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcMobileTelecommunicationsApplianceTypeEnum = IfcMobileTelecommunicationsApplianceTypeEnum; class IfcMooringDeviceTypeEnum { } IfcMooringDeviceTypeEnum.BOLLARD = { type: 3, value: "BOLLARD" }; IfcMooringDeviceTypeEnum.LINETENSIONER = { type: 3, value: "LINETENSIONER" }; IfcMooringDeviceTypeEnum.MAGNETICDEVICE = { type: 3, value: "MAGNETICDEVICE" }; IfcMooringDeviceTypeEnum.MOORINGHOOKS = { type: 3, value: "MOORINGHOOKS" }; IfcMooringDeviceTypeEnum.VACUUMDEVICE = { type: 3, value: "VACUUMDEVICE" }; IfcMooringDeviceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcMooringDeviceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcMooringDeviceTypeEnum = IfcMooringDeviceTypeEnum; class IfcMotorConnectionTypeEnum { } IfcMotorConnectionTypeEnum.BELTDRIVE = { type: 3, value: "BELTDRIVE" }; IfcMotorConnectionTypeEnum.COUPLING = { type: 3, value: "COUPLING" }; IfcMotorConnectionTypeEnum.DIRECTDRIVE = { type: 3, value: "DIRECTDRIVE" }; IfcMotorConnectionTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcMotorConnectionTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcMotorConnectionTypeEnum = IfcMotorConnectionTypeEnum; class IfcNavigationElementTypeEnum { } IfcNavigationElementTypeEnum.BEACON = { type: 3, value: "BEACON" }; IfcNavigationElementTypeEnum.BUOY = { type: 3, value: "BUOY" }; IfcNavigationElementTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcNavigationElementTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcNavigationElementTypeEnum = IfcNavigationElementTypeEnum; class IfcObjectTypeEnum { } IfcObjectTypeEnum.ACTOR = { type: 3, value: "ACTOR" }; IfcObjectTypeEnum.CONTROL = { type: 3, value: "CONTROL" }; IfcObjectTypeEnum.GROUP = { type: 3, value: "GROUP" }; IfcObjectTypeEnum.PROCESS = { type: 3, value: "PROCESS" }; IfcObjectTypeEnum.PRODUCT = { type: 3, value: "PRODUCT" }; IfcObjectTypeEnum.PROJECT = { type: 3, value: "PROJECT" }; IfcObjectTypeEnum.RESOURCE = { type: 3, value: "RESOURCE" }; IfcObjectTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcObjectTypeEnum = IfcObjectTypeEnum; class IfcObjectiveEnum { } IfcObjectiveEnum.CODECOMPLIANCE = { type: 3, value: "CODECOMPLIANCE" }; IfcObjectiveEnum.CODEWAIVER = { type: 3, value: "CODEWAIVER" }; IfcObjectiveEnum.DESIGNINTENT = { type: 3, value: "DESIGNINTENT" }; IfcObjectiveEnum.EXTERNAL = { type: 3, value: "EXTERNAL" }; IfcObjectiveEnum.HEALTHANDSAFETY = { type: 3, value: "HEALTHANDSAFETY" }; IfcObjectiveEnum.MERGECONFLICT = { type: 3, value: "MERGECONFLICT" }; IfcObjectiveEnum.MODELVIEW = { type: 3, value: "MODELVIEW" }; IfcObjectiveEnum.PARAMETER = { type: 3, value: "PARAMETER" }; IfcObjectiveEnum.REQUIREMENT = { type: 3, value: "REQUIREMENT" }; IfcObjectiveEnum.SPECIFICATION = { type: 3, value: "SPECIFICATION" }; IfcObjectiveEnum.TRIGGERCONDITION = { type: 3, value: "TRIGGERCONDITION" }; IfcObjectiveEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcObjectiveEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcObjectiveEnum = IfcObjectiveEnum; class IfcOccupantTypeEnum { } IfcOccupantTypeEnum.ASSIGNEE = { type: 3, value: "ASSIGNEE" }; IfcOccupantTypeEnum.ASSIGNOR = { type: 3, value: "ASSIGNOR" }; IfcOccupantTypeEnum.LESSEE = { type: 3, value: "LESSEE" }; IfcOccupantTypeEnum.LESSOR = { type: 3, value: "LESSOR" }; IfcOccupantTypeEnum.LETTINGAGENT = { type: 3, value: "LETTINGAGENT" }; IfcOccupantTypeEnum.OWNER = { type: 3, value: "OWNER" }; IfcOccupantTypeEnum.TENANT = { type: 3, value: "TENANT" }; IfcOccupantTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcOccupantTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcOccupantTypeEnum = IfcOccupantTypeEnum; class IfcOpeningElementTypeEnum { } IfcOpeningElementTypeEnum.OPENING = { type: 3, value: "OPENING" }; IfcOpeningElementTypeEnum.RECESS = { type: 3, value: "RECESS" }; IfcOpeningElementTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcOpeningElementTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcOpeningElementTypeEnum = IfcOpeningElementTypeEnum; class IfcOutletTypeEnum { } IfcOutletTypeEnum.AUDIOVISUALOUTLET = { type: 3, value: "AUDIOVISUALOUTLET" }; IfcOutletTypeEnum.COMMUNICATIONSOUTLET = { type: 3, value: "COMMUNICATIONSOUTLET" }; IfcOutletTypeEnum.DATAOUTLET = { type: 3, value: "DATAOUTLET" }; IfcOutletTypeEnum.POWEROUTLET = { type: 3, value: "POWEROUTLET" }; IfcOutletTypeEnum.TELEPHONEOUTLET = { type: 3, value: "TELEPHONEOUTLET" }; IfcOutletTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcOutletTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcOutletTypeEnum = IfcOutletTypeEnum; class IfcPavementTypeEnum { } IfcPavementTypeEnum.FLEXIBLE = { type: 3, value: "FLEXIBLE" }; IfcPavementTypeEnum.RIGID = { type: 3, value: "RIGID" }; IfcPavementTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcPavementTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcPavementTypeEnum = IfcPavementTypeEnum; class IfcPerformanceHistoryTypeEnum { } IfcPerformanceHistoryTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcPerformanceHistoryTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcPerformanceHistoryTypeEnum = IfcPerformanceHistoryTypeEnum; class IfcPermeableCoveringOperationEnum { } IfcPermeableCoveringOperationEnum.GRILL = { type: 3, value: "GRILL" }; IfcPermeableCoveringOperationEnum.LOUVER = { type: 3, value: "LOUVER" }; IfcPermeableCoveringOperationEnum.SCREEN = { type: 3, value: "SCREEN" }; IfcPermeableCoveringOperationEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcPermeableCoveringOperationEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcPermeableCoveringOperationEnum = IfcPermeableCoveringOperationEnum; class IfcPermitTypeEnum { } IfcPermitTypeEnum.ACCESS = { type: 3, value: "ACCESS" }; IfcPermitTypeEnum.BUILDING = { type: 3, value: "BUILDING" }; IfcPermitTypeEnum.WORK = { type: 3, value: "WORK" }; IfcPermitTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcPermitTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcPermitTypeEnum = IfcPermitTypeEnum; class IfcPhysicalOrVirtualEnum { } IfcPhysicalOrVirtualEnum.PHYSICAL = { type: 3, value: "PHYSICAL" }; IfcPhysicalOrVirtualEnum.VIRTUAL = { type: 3, value: "VIRTUAL" }; IfcPhysicalOrVirtualEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcPhysicalOrVirtualEnum = IfcPhysicalOrVirtualEnum; class IfcPileConstructionEnum { } IfcPileConstructionEnum.CAST_IN_PLACE = { type: 3, value: "CAST_IN_PLACE" }; IfcPileConstructionEnum.COMPOSITE = { type: 3, value: "COMPOSITE" }; IfcPileConstructionEnum.PRECAST_CONCRETE = { type: 3, value: "PRECAST_CONCRETE" }; IfcPileConstructionEnum.PREFAB_STEEL = { type: 3, value: "PREFAB_STEEL" }; IfcPileConstructionEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcPileConstructionEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcPileConstructionEnum = IfcPileConstructionEnum; class IfcPileTypeEnum { } IfcPileTypeEnum.BORED = { type: 3, value: "BORED" }; IfcPileTypeEnum.COHESION = { type: 3, value: "COHESION" }; IfcPileTypeEnum.DRIVEN = { type: 3, value: "DRIVEN" }; IfcPileTypeEnum.FRICTION = { type: 3, value: "FRICTION" }; IfcPileTypeEnum.JETGROUTING = { type: 3, value: "JETGROUTING" }; IfcPileTypeEnum.SUPPORT = { type: 3, value: "SUPPORT" }; IfcPileTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcPileTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcPileTypeEnum = IfcPileTypeEnum; class IfcPipeFittingTypeEnum { } IfcPipeFittingTypeEnum.BEND = { type: 3, value: "BEND" }; IfcPipeFittingTypeEnum.CONNECTOR = { type: 3, value: "CONNECTOR" }; IfcPipeFittingTypeEnum.ENTRY = { type: 3, value: "ENTRY" }; IfcPipeFittingTypeEnum.EXIT = { type: 3, value: "EXIT" }; IfcPipeFittingTypeEnum.JUNCTION = { type: 3, value: "JUNCTION" }; IfcPipeFittingTypeEnum.OBSTRUCTION = { type: 3, value: "OBSTRUCTION" }; IfcPipeFittingTypeEnum.TRANSITION = { type: 3, value: "TRANSITION" }; IfcPipeFittingTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcPipeFittingTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcPipeFittingTypeEnum = IfcPipeFittingTypeEnum; class IfcPipeSegmentTypeEnum { } IfcPipeSegmentTypeEnum.CULVERT = { type: 3, value: "CULVERT" }; IfcPipeSegmentTypeEnum.FLEXIBLESEGMENT = { type: 3, value: "FLEXIBLESEGMENT" }; IfcPipeSegmentTypeEnum.GUTTER = { type: 3, value: "GUTTER" }; IfcPipeSegmentTypeEnum.RIGIDSEGMENT = { type: 3, value: "RIGIDSEGMENT" }; IfcPipeSegmentTypeEnum.SPOOL = { type: 3, value: "SPOOL" }; IfcPipeSegmentTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcPipeSegmentTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcPipeSegmentTypeEnum = IfcPipeSegmentTypeEnum; class IfcPlateTypeEnum { } IfcPlateTypeEnum.BASE_PLATE = { type: 3, value: "BASE_PLATE" }; IfcPlateTypeEnum.COVER_PLATE = { type: 3, value: "COVER_PLATE" }; IfcPlateTypeEnum.CURTAIN_PANEL = { type: 3, value: "CURTAIN_PANEL" }; IfcPlateTypeEnum.FLANGE_PLATE = { type: 3, value: "FLANGE_PLATE" }; IfcPlateTypeEnum.GUSSET_PLATE = { type: 3, value: "GUSSET_PLATE" }; IfcPlateTypeEnum.SHEET = { type: 3, value: "SHEET" }; IfcPlateTypeEnum.SPLICE_PLATE = { type: 3, value: "SPLICE_PLATE" }; IfcPlateTypeEnum.STIFFENER_PLATE = { type: 3, value: "STIFFENER_PLATE" }; IfcPlateTypeEnum.WEB_PLATE = { type: 3, value: "WEB_PLATE" }; IfcPlateTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcPlateTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcPlateTypeEnum = IfcPlateTypeEnum; class IfcPreferredSurfaceCurveRepresentation { } IfcPreferredSurfaceCurveRepresentation.CURVE3D = { type: 3, value: "CURVE3D" }; IfcPreferredSurfaceCurveRepresentation.PCURVE_S1 = { type: 3, value: "PCURVE_S1" }; IfcPreferredSurfaceCurveRepresentation.PCURVE_S2 = { type: 3, value: "PCURVE_S2" }; IFC4_32.IfcPreferredSurfaceCurveRepresentation = IfcPreferredSurfaceCurveRepresentation; class IfcProcedureTypeEnum { } IfcProcedureTypeEnum.ADVICE_CAUTION = { type: 3, value: "ADVICE_CAUTION" }; IfcProcedureTypeEnum.ADVICE_NOTE = { type: 3, value: "ADVICE_NOTE" }; IfcProcedureTypeEnum.ADVICE_WARNING = { type: 3, value: "ADVICE_WARNING" }; IfcProcedureTypeEnum.CALIBRATION = { type: 3, value: "CALIBRATION" }; IfcProcedureTypeEnum.DIAGNOSTIC = { type: 3, value: "DIAGNOSTIC" }; IfcProcedureTypeEnum.SHUTDOWN = { type: 3, value: "SHUTDOWN" }; IfcProcedureTypeEnum.STARTUP = { type: 3, value: "STARTUP" }; IfcProcedureTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcProcedureTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcProcedureTypeEnum = IfcProcedureTypeEnum; class IfcProfileTypeEnum { } IfcProfileTypeEnum.AREA = { type: 3, value: "AREA" }; IfcProfileTypeEnum.CURVE = { type: 3, value: "CURVE" }; IFC4_32.IfcProfileTypeEnum = IfcProfileTypeEnum; class IfcProjectOrderTypeEnum { } IfcProjectOrderTypeEnum.CHANGEORDER = { type: 3, value: "CHANGEORDER" }; IfcProjectOrderTypeEnum.MAINTENANCEWORKORDER = { type: 3, value: "MAINTENANCEWORKORDER" }; IfcProjectOrderTypeEnum.MOVEORDER = { type: 3, value: "MOVEORDER" }; IfcProjectOrderTypeEnum.PURCHASEORDER = { type: 3, value: "PURCHASEORDER" }; IfcProjectOrderTypeEnum.WORKORDER = { type: 3, value: "WORKORDER" }; IfcProjectOrderTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcProjectOrderTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcProjectOrderTypeEnum = IfcProjectOrderTypeEnum; class IfcProjectedOrTrueLengthEnum { } IfcProjectedOrTrueLengthEnum.PROJECTED_LENGTH = { type: 3, value: "PROJECTED_LENGTH" }; IfcProjectedOrTrueLengthEnum.TRUE_LENGTH = { type: 3, value: "TRUE_LENGTH" }; IFC4_32.IfcProjectedOrTrueLengthEnum = IfcProjectedOrTrueLengthEnum; class IfcProjectionElementTypeEnum { } IfcProjectionElementTypeEnum.BLISTER = { type: 3, value: "BLISTER" }; IfcProjectionElementTypeEnum.DEVIATOR = { type: 3, value: "DEVIATOR" }; IfcProjectionElementTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcProjectionElementTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcProjectionElementTypeEnum = IfcProjectionElementTypeEnum; class IfcPropertySetTemplateTypeEnum { } IfcPropertySetTemplateTypeEnum.PSET_MATERIALDRIVEN = { type: 3, value: "PSET_MATERIALDRIVEN" }; IfcPropertySetTemplateTypeEnum.PSET_OCCURRENCEDRIVEN = { type: 3, value: "PSET_OCCURRENCEDRIVEN" }; IfcPropertySetTemplateTypeEnum.PSET_PERFORMANCEDRIVEN = { type: 3, value: "PSET_PERFORMANCEDRIVEN" }; IfcPropertySetTemplateTypeEnum.PSET_PROFILEDRIVEN = { type: 3, value: "PSET_PROFILEDRIVEN" }; IfcPropertySetTemplateTypeEnum.PSET_TYPEDRIVENONLY = { type: 3, value: "PSET_TYPEDRIVENONLY" }; IfcPropertySetTemplateTypeEnum.PSET_TYPEDRIVENOVERRIDE = { type: 3, value: "PSET_TYPEDRIVENOVERRIDE" }; IfcPropertySetTemplateTypeEnum.QTO_OCCURRENCEDRIVEN = { type: 3, value: "QTO_OCCURRENCEDRIVEN" }; IfcPropertySetTemplateTypeEnum.QTO_TYPEDRIVENONLY = { type: 3, value: "QTO_TYPEDRIVENONLY" }; IfcPropertySetTemplateTypeEnum.QTO_TYPEDRIVENOVERRIDE = { type: 3, value: "QTO_TYPEDRIVENOVERRIDE" }; IfcPropertySetTemplateTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcPropertySetTemplateTypeEnum = IfcPropertySetTemplateTypeEnum; class IfcProtectiveDeviceTrippingUnitTypeEnum { } IfcProtectiveDeviceTrippingUnitTypeEnum.ELECTROMAGNETIC = { type: 3, value: "ELECTROMAGNETIC" }; IfcProtectiveDeviceTrippingUnitTypeEnum.ELECTRONIC = { type: 3, value: "ELECTRONIC" }; IfcProtectiveDeviceTrippingUnitTypeEnum.RESIDUALCURRENT = { type: 3, value: "RESIDUALCURRENT" }; IfcProtectiveDeviceTrippingUnitTypeEnum.THERMAL = { type: 3, value: "THERMAL" }; IfcProtectiveDeviceTrippingUnitTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcProtectiveDeviceTrippingUnitTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcProtectiveDeviceTrippingUnitTypeEnum = IfcProtectiveDeviceTrippingUnitTypeEnum; class IfcProtectiveDeviceTypeEnum { } IfcProtectiveDeviceTypeEnum.ANTI_ARCING_DEVICE = { type: 3, value: "ANTI_ARCING_DEVICE" }; IfcProtectiveDeviceTypeEnum.CIRCUITBREAKER = { type: 3, value: "CIRCUITBREAKER" }; IfcProtectiveDeviceTypeEnum.EARTHINGSWITCH = { type: 3, value: "EARTHINGSWITCH" }; IfcProtectiveDeviceTypeEnum.EARTHLEAKAGECIRCUITBREAKER = { type: 3, value: "EARTHLEAKAGECIRCUITBREAKER" }; IfcProtectiveDeviceTypeEnum.FUSEDISCONNECTOR = { type: 3, value: "FUSEDISCONNECTOR" }; IfcProtectiveDeviceTypeEnum.RESIDUALCURRENTCIRCUITBREAKER = { type: 3, value: "RESIDUALCURRENTCIRCUITBREAKER" }; IfcProtectiveDeviceTypeEnum.RESIDUALCURRENTSWITCH = { type: 3, value: "RESIDUALCURRENTSWITCH" }; IfcProtectiveDeviceTypeEnum.SPARKGAP = { type: 3, value: "SPARKGAP" }; IfcProtectiveDeviceTypeEnum.VARISTOR = { type: 3, value: "VARISTOR" }; IfcProtectiveDeviceTypeEnum.VOLTAGELIMITER = { type: 3, value: "VOLTAGELIMITER" }; IfcProtectiveDeviceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcProtectiveDeviceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcProtectiveDeviceTypeEnum = IfcProtectiveDeviceTypeEnum; class IfcPumpTypeEnum { } IfcPumpTypeEnum.CIRCULATOR = { type: 3, value: "CIRCULATOR" }; IfcPumpTypeEnum.ENDSUCTION = { type: 3, value: "ENDSUCTION" }; IfcPumpTypeEnum.SPLITCASE = { type: 3, value: "SPLITCASE" }; IfcPumpTypeEnum.SUBMERSIBLEPUMP = { type: 3, value: "SUBMERSIBLEPUMP" }; IfcPumpTypeEnum.SUMPPUMP = { type: 3, value: "SUMPPUMP" }; IfcPumpTypeEnum.VERTICALINLINE = { type: 3, value: "VERTICALINLINE" }; IfcPumpTypeEnum.VERTICALTURBINE = { type: 3, value: "VERTICALTURBINE" }; IfcPumpTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcPumpTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcPumpTypeEnum = IfcPumpTypeEnum; class IfcRailTypeEnum { } IfcRailTypeEnum.BLADE = { type: 3, value: "BLADE" }; IfcRailTypeEnum.CHECKRAIL = { type: 3, value: "CHECKRAIL" }; IfcRailTypeEnum.GUARDRAIL = { type: 3, value: "GUARDRAIL" }; IfcRailTypeEnum.RACKRAIL = { type: 3, value: "RACKRAIL" }; IfcRailTypeEnum.RAIL = { type: 3, value: "RAIL" }; IfcRailTypeEnum.STOCKRAIL = { type: 3, value: "STOCKRAIL" }; IfcRailTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcRailTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcRailTypeEnum = IfcRailTypeEnum; class IfcRailingTypeEnum { } IfcRailingTypeEnum.BALUSTRADE = { type: 3, value: "BALUSTRADE" }; IfcRailingTypeEnum.FENCE = { type: 3, value: "FENCE" }; IfcRailingTypeEnum.GUARDRAIL = { type: 3, value: "GUARDRAIL" }; IfcRailingTypeEnum.HANDRAIL = { type: 3, value: "HANDRAIL" }; IfcRailingTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcRailingTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcRailingTypeEnum = IfcRailingTypeEnum; class IfcRailwayPartTypeEnum { } IfcRailwayPartTypeEnum.DILATATIONSUPERSTRUCTURE = { type: 3, value: "DILATATIONSUPERSTRUCTURE" }; IfcRailwayPartTypeEnum.LINESIDESTRUCTURE = { type: 3, value: "LINESIDESTRUCTURE" }; IfcRailwayPartTypeEnum.LINESIDESTRUCTUREPART = { type: 3, value: "LINESIDESTRUCTUREPART" }; IfcRailwayPartTypeEnum.PLAINTRACKSUPERSTRUCTURE = { type: 3, value: "PLAINTRACKSUPERSTRUCTURE" }; IfcRailwayPartTypeEnum.SUPERSTRUCTURE = { type: 3, value: "SUPERSTRUCTURE" }; IfcRailwayPartTypeEnum.TRACKSTRUCTURE = { type: 3, value: "TRACKSTRUCTURE" }; IfcRailwayPartTypeEnum.TRACKSTRUCTUREPART = { type: 3, value: "TRACKSTRUCTUREPART" }; IfcRailwayPartTypeEnum.TURNOUTSUPERSTRUCTURE = { type: 3, value: "TURNOUTSUPERSTRUCTURE" }; IfcRailwayPartTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcRailwayPartTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcRailwayPartTypeEnum = IfcRailwayPartTypeEnum; class IfcRailwayTypeEnum { } IfcRailwayTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcRailwayTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcRailwayTypeEnum = IfcRailwayTypeEnum; class IfcRampFlightTypeEnum { } IfcRampFlightTypeEnum.SPIRAL = { type: 3, value: "SPIRAL" }; IfcRampFlightTypeEnum.STRAIGHT = { type: 3, value: "STRAIGHT" }; IfcRampFlightTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcRampFlightTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcRampFlightTypeEnum = IfcRampFlightTypeEnum; class IfcRampTypeEnum { } IfcRampTypeEnum.HALF_TURN_RAMP = { type: 3, value: "HALF_TURN_RAMP" }; IfcRampTypeEnum.QUARTER_TURN_RAMP = { type: 3, value: "QUARTER_TURN_RAMP" }; IfcRampTypeEnum.SPIRAL_RAMP = { type: 3, value: "SPIRAL_RAMP" }; IfcRampTypeEnum.STRAIGHT_RUN_RAMP = { type: 3, value: "STRAIGHT_RUN_RAMP" }; IfcRampTypeEnum.TWO_QUARTER_TURN_RAMP = { type: 3, value: "TWO_QUARTER_TURN_RAMP" }; IfcRampTypeEnum.TWO_STRAIGHT_RUN_RAMP = { type: 3, value: "TWO_STRAIGHT_RUN_RAMP" }; IfcRampTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcRampTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcRampTypeEnum = IfcRampTypeEnum; class IfcRecurrenceTypeEnum { } IfcRecurrenceTypeEnum.BY_DAY_COUNT = { type: 3, value: "BY_DAY_COUNT" }; IfcRecurrenceTypeEnum.BY_WEEKDAY_COUNT = { type: 3, value: "BY_WEEKDAY_COUNT" }; IfcRecurrenceTypeEnum.DAILY = { type: 3, value: "DAILY" }; IfcRecurrenceTypeEnum.MONTHLY_BY_DAY_OF_MONTH = { type: 3, value: "MONTHLY_BY_DAY_OF_MONTH" }; IfcRecurrenceTypeEnum.MONTHLY_BY_POSITION = { type: 3, value: "MONTHLY_BY_POSITION" }; IfcRecurrenceTypeEnum.WEEKLY = { type: 3, value: "WEEKLY" }; IfcRecurrenceTypeEnum.YEARLY_BY_DAY_OF_MONTH = { type: 3, value: "YEARLY_BY_DAY_OF_MONTH" }; IfcRecurrenceTypeEnum.YEARLY_BY_POSITION = { type: 3, value: "YEARLY_BY_POSITION" }; IFC4_32.IfcRecurrenceTypeEnum = IfcRecurrenceTypeEnum; class IfcReferentTypeEnum { } IfcReferentTypeEnum.BOUNDARY = { type: 3, value: "BOUNDARY" }; IfcReferentTypeEnum.INTERSECTION = { type: 3, value: "INTERSECTION" }; IfcReferentTypeEnum.KILOPOINT = { type: 3, value: "KILOPOINT" }; IfcReferentTypeEnum.LANDMARK = { type: 3, value: "LANDMARK" }; IfcReferentTypeEnum.MILEPOINT = { type: 3, value: "MILEPOINT" }; IfcReferentTypeEnum.POSITION = { type: 3, value: "POSITION" }; IfcReferentTypeEnum.REFERENCEMARKER = { type: 3, value: "REFERENCEMARKER" }; IfcReferentTypeEnum.STATION = { type: 3, value: "STATION" }; IfcReferentTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcReferentTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcReferentTypeEnum = IfcReferentTypeEnum; class IfcReflectanceMethodEnum { } IfcReflectanceMethodEnum.BLINN = { type: 3, value: "BLINN" }; IfcReflectanceMethodEnum.FLAT = { type: 3, value: "FLAT" }; IfcReflectanceMethodEnum.GLASS = { type: 3, value: "GLASS" }; IfcReflectanceMethodEnum.MATT = { type: 3, value: "MATT" }; IfcReflectanceMethodEnum.METAL = { type: 3, value: "METAL" }; IfcReflectanceMethodEnum.MIRROR = { type: 3, value: "MIRROR" }; IfcReflectanceMethodEnum.PHONG = { type: 3, value: "PHONG" }; IfcReflectanceMethodEnum.PHYSICAL = { type: 3, value: "PHYSICAL" }; IfcReflectanceMethodEnum.PLASTIC = { type: 3, value: "PLASTIC" }; IfcReflectanceMethodEnum.STRAUSS = { type: 3, value: "STRAUSS" }; IfcReflectanceMethodEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcReflectanceMethodEnum = IfcReflectanceMethodEnum; class IfcReinforcedSoilTypeEnum { } IfcReinforcedSoilTypeEnum.DYNAMICALLYCOMPACTED = { type: 3, value: "DYNAMICALLYCOMPACTED" }; IfcReinforcedSoilTypeEnum.GROUTED = { type: 3, value: "GROUTED" }; IfcReinforcedSoilTypeEnum.REPLACED = { type: 3, value: "REPLACED" }; IfcReinforcedSoilTypeEnum.ROLLERCOMPACTED = { type: 3, value: "ROLLERCOMPACTED" }; IfcReinforcedSoilTypeEnum.SURCHARGEPRELOADED = { type: 3, value: "SURCHARGEPRELOADED" }; IfcReinforcedSoilTypeEnum.VERTICALLYDRAINED = { type: 3, value: "VERTICALLYDRAINED" }; IfcReinforcedSoilTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcReinforcedSoilTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcReinforcedSoilTypeEnum = IfcReinforcedSoilTypeEnum; class IfcReinforcingBarRoleEnum { } IfcReinforcingBarRoleEnum.ANCHORING = { type: 3, value: "ANCHORING" }; IfcReinforcingBarRoleEnum.EDGE = { type: 3, value: "EDGE" }; IfcReinforcingBarRoleEnum.LIGATURE = { type: 3, value: "LIGATURE" }; IfcReinforcingBarRoleEnum.MAIN = { type: 3, value: "MAIN" }; IfcReinforcingBarRoleEnum.PUNCHING = { type: 3, value: "PUNCHING" }; IfcReinforcingBarRoleEnum.RING = { type: 3, value: "RING" }; IfcReinforcingBarRoleEnum.SHEAR = { type: 3, value: "SHEAR" }; IfcReinforcingBarRoleEnum.STUD = { type: 3, value: "STUD" }; IfcReinforcingBarRoleEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcReinforcingBarRoleEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcReinforcingBarRoleEnum = IfcReinforcingBarRoleEnum; class IfcReinforcingBarSurfaceEnum { } IfcReinforcingBarSurfaceEnum.PLAIN = { type: 3, value: "PLAIN" }; IfcReinforcingBarSurfaceEnum.TEXTURED = { type: 3, value: "TEXTURED" }; IFC4_32.IfcReinforcingBarSurfaceEnum = IfcReinforcingBarSurfaceEnum; class IfcReinforcingBarTypeEnum { } IfcReinforcingBarTypeEnum.ANCHORING = { type: 3, value: "ANCHORING" }; IfcReinforcingBarTypeEnum.EDGE = { type: 3, value: "EDGE" }; IfcReinforcingBarTypeEnum.LIGATURE = { type: 3, value: "LIGATURE" }; IfcReinforcingBarTypeEnum.MAIN = { type: 3, value: "MAIN" }; IfcReinforcingBarTypeEnum.PUNCHING = { type: 3, value: "PUNCHING" }; IfcReinforcingBarTypeEnum.RING = { type: 3, value: "RING" }; IfcReinforcingBarTypeEnum.SHEAR = { type: 3, value: "SHEAR" }; IfcReinforcingBarTypeEnum.SPACEBAR = { type: 3, value: "SPACEBAR" }; IfcReinforcingBarTypeEnum.STUD = { type: 3, value: "STUD" }; IfcReinforcingBarTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcReinforcingBarTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcReinforcingBarTypeEnum = IfcReinforcingBarTypeEnum; class IfcReinforcingMeshTypeEnum { } IfcReinforcingMeshTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcReinforcingMeshTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcReinforcingMeshTypeEnum = IfcReinforcingMeshTypeEnum; class IfcRoadPartTypeEnum { } IfcRoadPartTypeEnum.BICYCLECROSSING = { type: 3, value: "BICYCLECROSSING" }; IfcRoadPartTypeEnum.BUS_STOP = { type: 3, value: "BUS_STOP" }; IfcRoadPartTypeEnum.CARRIAGEWAY = { type: 3, value: "CARRIAGEWAY" }; IfcRoadPartTypeEnum.CENTRALISLAND = { type: 3, value: "CENTRALISLAND" }; IfcRoadPartTypeEnum.CENTRALRESERVE = { type: 3, value: "CENTRALRESERVE" }; IfcRoadPartTypeEnum.HARDSHOULDER = { type: 3, value: "HARDSHOULDER" }; IfcRoadPartTypeEnum.INTERSECTION = { type: 3, value: "INTERSECTION" }; IfcRoadPartTypeEnum.LAYBY = { type: 3, value: "LAYBY" }; IfcRoadPartTypeEnum.PARKINGBAY = { type: 3, value: "PARKINGBAY" }; IfcRoadPartTypeEnum.PASSINGBAY = { type: 3, value: "PASSINGBAY" }; IfcRoadPartTypeEnum.PEDESTRIAN_CROSSING = { type: 3, value: "PEDESTRIAN_CROSSING" }; IfcRoadPartTypeEnum.RAILWAYCROSSING = { type: 3, value: "RAILWAYCROSSING" }; IfcRoadPartTypeEnum.REFUGEISLAND = { type: 3, value: "REFUGEISLAND" }; IfcRoadPartTypeEnum.ROADSEGMENT = { type: 3, value: "ROADSEGMENT" }; IfcRoadPartTypeEnum.ROADSIDE = { type: 3, value: "ROADSIDE" }; IfcRoadPartTypeEnum.ROADSIDEPART = { type: 3, value: "ROADSIDEPART" }; IfcRoadPartTypeEnum.ROADWAYPLATEAU = { type: 3, value: "ROADWAYPLATEAU" }; IfcRoadPartTypeEnum.ROUNDABOUT = { type: 3, value: "ROUNDABOUT" }; IfcRoadPartTypeEnum.SHOULDER = { type: 3, value: "SHOULDER" }; IfcRoadPartTypeEnum.SIDEWALK = { type: 3, value: "SIDEWALK" }; IfcRoadPartTypeEnum.SOFTSHOULDER = { type: 3, value: "SOFTSHOULDER" }; IfcRoadPartTypeEnum.TOLLPLAZA = { type: 3, value: "TOLLPLAZA" }; IfcRoadPartTypeEnum.TRAFFICISLAND = { type: 3, value: "TRAFFICISLAND" }; IfcRoadPartTypeEnum.TRAFFICLANE = { type: 3, value: "TRAFFICLANE" }; IfcRoadPartTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcRoadPartTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcRoadPartTypeEnum = IfcRoadPartTypeEnum; class IfcRoadTypeEnum { } IfcRoadTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcRoadTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcRoadTypeEnum = IfcRoadTypeEnum; class IfcRoleEnum { } IfcRoleEnum.ARCHITECT = { type: 3, value: "ARCHITECT" }; IfcRoleEnum.BUILDINGOPERATOR = { type: 3, value: "BUILDINGOPERATOR" }; IfcRoleEnum.BUILDINGOWNER = { type: 3, value: "BUILDINGOWNER" }; IfcRoleEnum.CIVILENGINEER = { type: 3, value: "CIVILENGINEER" }; IfcRoleEnum.CLIENT = { type: 3, value: "CLIENT" }; IfcRoleEnum.COMMISSIONINGENGINEER = { type: 3, value: "COMMISSIONINGENGINEER" }; IfcRoleEnum.CONSTRUCTIONMANAGER = { type: 3, value: "CONSTRUCTIONMANAGER" }; IfcRoleEnum.CONSULTANT = { type: 3, value: "CONSULTANT" }; IfcRoleEnum.CONTRACTOR = { type: 3, value: "CONTRACTOR" }; IfcRoleEnum.COSTENGINEER = { type: 3, value: "COSTENGINEER" }; IfcRoleEnum.ELECTRICALENGINEER = { type: 3, value: "ELECTRICALENGINEER" }; IfcRoleEnum.ENGINEER = { type: 3, value: "ENGINEER" }; IfcRoleEnum.FACILITIESMANAGER = { type: 3, value: "FACILITIESMANAGER" }; IfcRoleEnum.FIELDCONSTRUCTIONMANAGER = { type: 3, value: "FIELDCONSTRUCTIONMANAGER" }; IfcRoleEnum.MANUFACTURER = { type: 3, value: "MANUFACTURER" }; IfcRoleEnum.MECHANICALENGINEER = { type: 3, value: "MECHANICALENGINEER" }; IfcRoleEnum.OWNER = { type: 3, value: "OWNER" }; IfcRoleEnum.PROJECTMANAGER = { type: 3, value: "PROJECTMANAGER" }; IfcRoleEnum.RESELLER = { type: 3, value: "RESELLER" }; IfcRoleEnum.STRUCTURALENGINEER = { type: 3, value: "STRUCTURALENGINEER" }; IfcRoleEnum.SUBCONTRACTOR = { type: 3, value: "SUBCONTRACTOR" }; IfcRoleEnum.SUPPLIER = { type: 3, value: "SUPPLIER" }; IfcRoleEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IFC4_32.IfcRoleEnum = IfcRoleEnum; class IfcRoofTypeEnum { } IfcRoofTypeEnum.BARREL_ROOF = { type: 3, value: "BARREL_ROOF" }; IfcRoofTypeEnum.BUTTERFLY_ROOF = { type: 3, value: "BUTTERFLY_ROOF" }; IfcRoofTypeEnum.DOME_ROOF = { type: 3, value: "DOME_ROOF" }; IfcRoofTypeEnum.FLAT_ROOF = { type: 3, value: "FLAT_ROOF" }; IfcRoofTypeEnum.FREEFORM = { type: 3, value: "FREEFORM" }; IfcRoofTypeEnum.GABLE_ROOF = { type: 3, value: "GABLE_ROOF" }; IfcRoofTypeEnum.GAMBREL_ROOF = { type: 3, value: "GAMBREL_ROOF" }; IfcRoofTypeEnum.HIPPED_GABLE_ROOF = { type: 3, value: "HIPPED_GABLE_ROOF" }; IfcRoofTypeEnum.HIP_ROOF = { type: 3, value: "HIP_ROOF" }; IfcRoofTypeEnum.MANSARD_ROOF = { type: 3, value: "MANSARD_ROOF" }; IfcRoofTypeEnum.PAVILION_ROOF = { type: 3, value: "PAVILION_ROOF" }; IfcRoofTypeEnum.RAINBOW_ROOF = { type: 3, value: "RAINBOW_ROOF" }; IfcRoofTypeEnum.SHED_ROOF = { type: 3, value: "SHED_ROOF" }; IfcRoofTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcRoofTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcRoofTypeEnum = IfcRoofTypeEnum; class IfcSIPrefix { } IfcSIPrefix.ATTO = { type: 3, value: "ATTO" }; IfcSIPrefix.CENTI = { type: 3, value: "CENTI" }; IfcSIPrefix.DECA = { type: 3, value: "DECA" }; IfcSIPrefix.DECI = { type: 3, value: "DECI" }; IfcSIPrefix.EXA = { type: 3, value: "EXA" }; IfcSIPrefix.FEMTO = { type: 3, value: "FEMTO" }; IfcSIPrefix.GIGA = { type: 3, value: "GIGA" }; IfcSIPrefix.HECTO = { type: 3, value: "HECTO" }; IfcSIPrefix.KILO = { type: 3, value: "KILO" }; IfcSIPrefix.MEGA = { type: 3, value: "MEGA" }; IfcSIPrefix.MICRO = { type: 3, value: "MICRO" }; IfcSIPrefix.MILLI = { type: 3, value: "MILLI" }; IfcSIPrefix.NANO = { type: 3, value: "NANO" }; IfcSIPrefix.PETA = { type: 3, value: "PETA" }; IfcSIPrefix.PICO = { type: 3, value: "PICO" }; IfcSIPrefix.TERA = { type: 3, value: "TERA" }; IFC4_32.IfcSIPrefix = IfcSIPrefix; class IfcSIUnitName { } IfcSIUnitName.AMPERE = { type: 3, value: "AMPERE" }; IfcSIUnitName.BECQUEREL = { type: 3, value: "BECQUEREL" }; IfcSIUnitName.CANDELA = { type: 3, value: "CANDELA" }; IfcSIUnitName.COULOMB = { type: 3, value: "COULOMB" }; IfcSIUnitName.CUBIC_METRE = { type: 3, value: "CUBIC_METRE" }; IfcSIUnitName.DEGREE_CELSIUS = { type: 3, value: "DEGREE_CELSIUS" }; IfcSIUnitName.FARAD = { type: 3, value: "FARAD" }; IfcSIUnitName.GRAM = { type: 3, value: "GRAM" }; IfcSIUnitName.GRAY = { type: 3, value: "GRAY" }; IfcSIUnitName.HENRY = { type: 3, value: "HENRY" }; IfcSIUnitName.HERTZ = { type: 3, value: "HERTZ" }; IfcSIUnitName.JOULE = { type: 3, value: "JOULE" }; IfcSIUnitName.KELVIN = { type: 3, value: "KELVIN" }; IfcSIUnitName.LUMEN = { type: 3, value: "LUMEN" }; IfcSIUnitName.LUX = { type: 3, value: "LUX" }; IfcSIUnitName.METRE = { type: 3, value: "METRE" }; IfcSIUnitName.MOLE = { type: 3, value: "MOLE" }; IfcSIUnitName.NEWTON = { type: 3, value: "NEWTON" }; IfcSIUnitName.OHM = { type: 3, value: "OHM" }; IfcSIUnitName.PASCAL = { type: 3, value: "PASCAL" }; IfcSIUnitName.RADIAN = { type: 3, value: "RADIAN" }; IfcSIUnitName.SECOND = { type: 3, value: "SECOND" }; IfcSIUnitName.SIEMENS = { type: 3, value: "SIEMENS" }; IfcSIUnitName.SIEVERT = { type: 3, value: "SIEVERT" }; IfcSIUnitName.SQUARE_METRE = { type: 3, value: "SQUARE_METRE" }; IfcSIUnitName.STERADIAN = { type: 3, value: "STERADIAN" }; IfcSIUnitName.TESLA = { type: 3, value: "TESLA" }; IfcSIUnitName.VOLT = { type: 3, value: "VOLT" }; IfcSIUnitName.WATT = { type: 3, value: "WATT" }; IfcSIUnitName.WEBER = { type: 3, value: "WEBER" }; IFC4_32.IfcSIUnitName = IfcSIUnitName; class IfcSanitaryTerminalTypeEnum { } IfcSanitaryTerminalTypeEnum.BATH = { type: 3, value: "BATH" }; IfcSanitaryTerminalTypeEnum.BIDET = { type: 3, value: "BIDET" }; IfcSanitaryTerminalTypeEnum.CISTERN = { type: 3, value: "CISTERN" }; IfcSanitaryTerminalTypeEnum.SANITARYFOUNTAIN = { type: 3, value: "SANITARYFOUNTAIN" }; IfcSanitaryTerminalTypeEnum.SHOWER = { type: 3, value: "SHOWER" }; IfcSanitaryTerminalTypeEnum.SINK = { type: 3, value: "SINK" }; IfcSanitaryTerminalTypeEnum.TOILETPAN = { type: 3, value: "TOILETPAN" }; IfcSanitaryTerminalTypeEnum.URINAL = { type: 3, value: "URINAL" }; IfcSanitaryTerminalTypeEnum.WASHHANDBASIN = { type: 3, value: "WASHHANDBASIN" }; IfcSanitaryTerminalTypeEnum.WCSEAT = { type: 3, value: "WCSEAT" }; IfcSanitaryTerminalTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcSanitaryTerminalTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcSanitaryTerminalTypeEnum = IfcSanitaryTerminalTypeEnum; class IfcSectionTypeEnum { } IfcSectionTypeEnum.TAPERED = { type: 3, value: "TAPERED" }; IfcSectionTypeEnum.UNIFORM = { type: 3, value: "UNIFORM" }; IFC4_32.IfcSectionTypeEnum = IfcSectionTypeEnum; class IfcSensorTypeEnum { } IfcSensorTypeEnum.CO2SENSOR = { type: 3, value: "CO2SENSOR" }; IfcSensorTypeEnum.CONDUCTANCESENSOR = { type: 3, value: "CONDUCTANCESENSOR" }; IfcSensorTypeEnum.CONTACTSENSOR = { type: 3, value: "CONTACTSENSOR" }; IfcSensorTypeEnum.COSENSOR = { type: 3, value: "COSENSOR" }; IfcSensorTypeEnum.EARTHQUAKESENSOR = { type: 3, value: "EARTHQUAKESENSOR" }; IfcSensorTypeEnum.FIRESENSOR = { type: 3, value: "FIRESENSOR" }; IfcSensorTypeEnum.FLOWSENSOR = { type: 3, value: "FLOWSENSOR" }; IfcSensorTypeEnum.FOREIGNOBJECTDETECTIONSENSOR = { type: 3, value: "FOREIGNOBJECTDETECTIONSENSOR" }; IfcSensorTypeEnum.FROSTSENSOR = { type: 3, value: "FROSTSENSOR" }; IfcSensorTypeEnum.GASSENSOR = { type: 3, value: "GASSENSOR" }; IfcSensorTypeEnum.HEATSENSOR = { type: 3, value: "HEATSENSOR" }; IfcSensorTypeEnum.HUMIDITYSENSOR = { type: 3, value: "HUMIDITYSENSOR" }; IfcSensorTypeEnum.IDENTIFIERSENSOR = { type: 3, value: "IDENTIFIERSENSOR" }; IfcSensorTypeEnum.IONCONCENTRATIONSENSOR = { type: 3, value: "IONCONCENTRATIONSENSOR" }; IfcSensorTypeEnum.LEVELSENSOR = { type: 3, value: "LEVELSENSOR" }; IfcSensorTypeEnum.LIGHTSENSOR = { type: 3, value: "LIGHTSENSOR" }; IfcSensorTypeEnum.MOISTURESENSOR = { type: 3, value: "MOISTURESENSOR" }; IfcSensorTypeEnum.MOVEMENTSENSOR = { type: 3, value: "MOVEMENTSENSOR" }; IfcSensorTypeEnum.OBSTACLESENSOR = { type: 3, value: "OBSTACLESENSOR" }; IfcSensorTypeEnum.PHSENSOR = { type: 3, value: "PHSENSOR" }; IfcSensorTypeEnum.PRESSURESENSOR = { type: 3, value: "PRESSURESENSOR" }; IfcSensorTypeEnum.RADIATIONSENSOR = { type: 3, value: "RADIATIONSENSOR" }; IfcSensorTypeEnum.RADIOACTIVITYSENSOR = { type: 3, value: "RADIOACTIVITYSENSOR" }; IfcSensorTypeEnum.RAINSENSOR = { type: 3, value: "RAINSENSOR" }; IfcSensorTypeEnum.SMOKESENSOR = { type: 3, value: "SMOKESENSOR" }; IfcSensorTypeEnum.SNOWDEPTHSENSOR = { type: 3, value: "SNOWDEPTHSENSOR" }; IfcSensorTypeEnum.SOUNDSENSOR = { type: 3, value: "SOUNDSENSOR" }; IfcSensorTypeEnum.TEMPERATURESENSOR = { type: 3, value: "TEMPERATURESENSOR" }; IfcSensorTypeEnum.TRAINSENSOR = { type: 3, value: "TRAINSENSOR" }; IfcSensorTypeEnum.TURNOUTCLOSURESENSOR = { type: 3, value: "TURNOUTCLOSURESENSOR" }; IfcSensorTypeEnum.WHEELSENSOR = { type: 3, value: "WHEELSENSOR" }; IfcSensorTypeEnum.WINDSENSOR = { type: 3, value: "WINDSENSOR" }; IfcSensorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcSensorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcSensorTypeEnum = IfcSensorTypeEnum; class IfcSequenceEnum { } IfcSequenceEnum.FINISH_FINISH = { type: 3, value: "FINISH_FINISH" }; IfcSequenceEnum.FINISH_START = { type: 3, value: "FINISH_START" }; IfcSequenceEnum.START_FINISH = { type: 3, value: "START_FINISH" }; IfcSequenceEnum.START_START = { type: 3, value: "START_START" }; IfcSequenceEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcSequenceEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcSequenceEnum = IfcSequenceEnum; class IfcShadingDeviceTypeEnum { } IfcShadingDeviceTypeEnum.AWNING = { type: 3, value: "AWNING" }; IfcShadingDeviceTypeEnum.JALOUSIE = { type: 3, value: "JALOUSIE" }; IfcShadingDeviceTypeEnum.SHUTTER = { type: 3, value: "SHUTTER" }; IfcShadingDeviceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcShadingDeviceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcShadingDeviceTypeEnum = IfcShadingDeviceTypeEnum; class IfcSignTypeEnum { } IfcSignTypeEnum.MARKER = { type: 3, value: "MARKER" }; IfcSignTypeEnum.MIRROR = { type: 3, value: "MIRROR" }; IfcSignTypeEnum.PICTORAL = { type: 3, value: "PICTORAL" }; IfcSignTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcSignTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcSignTypeEnum = IfcSignTypeEnum; class IfcSignalTypeEnum { } IfcSignalTypeEnum.AUDIO = { type: 3, value: "AUDIO" }; IfcSignalTypeEnum.MIXED = { type: 3, value: "MIXED" }; IfcSignalTypeEnum.VISUAL = { type: 3, value: "VISUAL" }; IfcSignalTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcSignalTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcSignalTypeEnum = IfcSignalTypeEnum; class IfcSimplePropertyTemplateTypeEnum { } IfcSimplePropertyTemplateTypeEnum.P_BOUNDEDVALUE = { type: 3, value: "P_BOUNDEDVALUE" }; IfcSimplePropertyTemplateTypeEnum.P_ENUMERATEDVALUE = { type: 3, value: "P_ENUMERATEDVALUE" }; IfcSimplePropertyTemplateTypeEnum.P_LISTVALUE = { type: 3, value: "P_LISTVALUE" }; IfcSimplePropertyTemplateTypeEnum.P_REFERENCEVALUE = { type: 3, value: "P_REFERENCEVALUE" }; IfcSimplePropertyTemplateTypeEnum.P_SINGLEVALUE = { type: 3, value: "P_SINGLEVALUE" }; IfcSimplePropertyTemplateTypeEnum.P_TABLEVALUE = { type: 3, value: "P_TABLEVALUE" }; IfcSimplePropertyTemplateTypeEnum.Q_AREA = { type: 3, value: "Q_AREA" }; IfcSimplePropertyTemplateTypeEnum.Q_COUNT = { type: 3, value: "Q_COUNT" }; IfcSimplePropertyTemplateTypeEnum.Q_LENGTH = { type: 3, value: "Q_LENGTH" }; IfcSimplePropertyTemplateTypeEnum.Q_NUMBER = { type: 3, value: "Q_NUMBER" }; IfcSimplePropertyTemplateTypeEnum.Q_TIME = { type: 3, value: "Q_TIME" }; IfcSimplePropertyTemplateTypeEnum.Q_VOLUME = { type: 3, value: "Q_VOLUME" }; IfcSimplePropertyTemplateTypeEnum.Q_WEIGHT = { type: 3, value: "Q_WEIGHT" }; IFC4_32.IfcSimplePropertyTemplateTypeEnum = IfcSimplePropertyTemplateTypeEnum; class IfcSlabTypeEnum { } IfcSlabTypeEnum.APPROACH_SLAB = { type: 3, value: "APPROACH_SLAB" }; IfcSlabTypeEnum.BASESLAB = { type: 3, value: "BASESLAB" }; IfcSlabTypeEnum.FLOOR = { type: 3, value: "FLOOR" }; IfcSlabTypeEnum.LANDING = { type: 3, value: "LANDING" }; IfcSlabTypeEnum.PAVING = { type: 3, value: "PAVING" }; IfcSlabTypeEnum.ROOF = { type: 3, value: "ROOF" }; IfcSlabTypeEnum.SIDEWALK = { type: 3, value: "SIDEWALK" }; IfcSlabTypeEnum.TRACKSLAB = { type: 3, value: "TRACKSLAB" }; IfcSlabTypeEnum.WEARING = { type: 3, value: "WEARING" }; IfcSlabTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcSlabTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcSlabTypeEnum = IfcSlabTypeEnum; class IfcSolarDeviceTypeEnum { } IfcSolarDeviceTypeEnum.SOLARCOLLECTOR = { type: 3, value: "SOLARCOLLECTOR" }; IfcSolarDeviceTypeEnum.SOLARPANEL = { type: 3, value: "SOLARPANEL" }; IfcSolarDeviceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcSolarDeviceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcSolarDeviceTypeEnum = IfcSolarDeviceTypeEnum; class IfcSpaceHeaterTypeEnum { } IfcSpaceHeaterTypeEnum.CONVECTOR = { type: 3, value: "CONVECTOR" }; IfcSpaceHeaterTypeEnum.RADIATOR = { type: 3, value: "RADIATOR" }; IfcSpaceHeaterTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcSpaceHeaterTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcSpaceHeaterTypeEnum = IfcSpaceHeaterTypeEnum; class IfcSpaceTypeEnum { } IfcSpaceTypeEnum.BERTH = { type: 3, value: "BERTH" }; IfcSpaceTypeEnum.EXTERNAL = { type: 3, value: "EXTERNAL" }; IfcSpaceTypeEnum.GFA = { type: 3, value: "GFA" }; IfcSpaceTypeEnum.INTERNAL = { type: 3, value: "INTERNAL" }; IfcSpaceTypeEnum.PARKING = { type: 3, value: "PARKING" }; IfcSpaceTypeEnum.SPACE = { type: 3, value: "SPACE" }; IfcSpaceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcSpaceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcSpaceTypeEnum = IfcSpaceTypeEnum; class IfcSpatialZoneTypeEnum { } IfcSpatialZoneTypeEnum.CONSTRUCTION = { type: 3, value: "CONSTRUCTION" }; IfcSpatialZoneTypeEnum.FIRESAFETY = { type: 3, value: "FIRESAFETY" }; IfcSpatialZoneTypeEnum.INTERFERENCE = { type: 3, value: "INTERFERENCE" }; IfcSpatialZoneTypeEnum.LIGHTING = { type: 3, value: "LIGHTING" }; IfcSpatialZoneTypeEnum.OCCUPANCY = { type: 3, value: "OCCUPANCY" }; IfcSpatialZoneTypeEnum.RESERVATION = { type: 3, value: "RESERVATION" }; IfcSpatialZoneTypeEnum.SECURITY = { type: 3, value: "SECURITY" }; IfcSpatialZoneTypeEnum.THERMAL = { type: 3, value: "THERMAL" }; IfcSpatialZoneTypeEnum.TRANSPORT = { type: 3, value: "TRANSPORT" }; IfcSpatialZoneTypeEnum.VENTILATION = { type: 3, value: "VENTILATION" }; IfcSpatialZoneTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcSpatialZoneTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcSpatialZoneTypeEnum = IfcSpatialZoneTypeEnum; class IfcStackTerminalTypeEnum { } IfcStackTerminalTypeEnum.BIRDCAGE = { type: 3, value: "BIRDCAGE" }; IfcStackTerminalTypeEnum.COWL = { type: 3, value: "COWL" }; IfcStackTerminalTypeEnum.RAINWATERHOPPER = { type: 3, value: "RAINWATERHOPPER" }; IfcStackTerminalTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcStackTerminalTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcStackTerminalTypeEnum = IfcStackTerminalTypeEnum; class IfcStairFlightTypeEnum { } IfcStairFlightTypeEnum.CURVED = { type: 3, value: "CURVED" }; IfcStairFlightTypeEnum.FREEFORM = { type: 3, value: "FREEFORM" }; IfcStairFlightTypeEnum.SPIRAL = { type: 3, value: "SPIRAL" }; IfcStairFlightTypeEnum.STRAIGHT = { type: 3, value: "STRAIGHT" }; IfcStairFlightTypeEnum.WINDER = { type: 3, value: "WINDER" }; IfcStairFlightTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcStairFlightTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcStairFlightTypeEnum = IfcStairFlightTypeEnum; class IfcStairTypeEnum { } IfcStairTypeEnum.CURVED_RUN_STAIR = { type: 3, value: "CURVED_RUN_STAIR" }; IfcStairTypeEnum.DOUBLE_RETURN_STAIR = { type: 3, value: "DOUBLE_RETURN_STAIR" }; IfcStairTypeEnum.HALF_TURN_STAIR = { type: 3, value: "HALF_TURN_STAIR" }; IfcStairTypeEnum.HALF_WINDING_STAIR = { type: 3, value: "HALF_WINDING_STAIR" }; IfcStairTypeEnum.LADDER = { type: 3, value: "LADDER" }; IfcStairTypeEnum.QUARTER_TURN_STAIR = { type: 3, value: "QUARTER_TURN_STAIR" }; IfcStairTypeEnum.QUARTER_WINDING_STAIR = { type: 3, value: "QUARTER_WINDING_STAIR" }; IfcStairTypeEnum.SPIRAL_STAIR = { type: 3, value: "SPIRAL_STAIR" }; IfcStairTypeEnum.STRAIGHT_RUN_STAIR = { type: 3, value: "STRAIGHT_RUN_STAIR" }; IfcStairTypeEnum.THREE_QUARTER_TURN_STAIR = { type: 3, value: "THREE_QUARTER_TURN_STAIR" }; IfcStairTypeEnum.THREE_QUARTER_WINDING_STAIR = { type: 3, value: "THREE_QUARTER_WINDING_STAIR" }; IfcStairTypeEnum.TWO_CURVED_RUN_STAIR = { type: 3, value: "TWO_CURVED_RUN_STAIR" }; IfcStairTypeEnum.TWO_QUARTER_TURN_STAIR = { type: 3, value: "TWO_QUARTER_TURN_STAIR" }; IfcStairTypeEnum.TWO_QUARTER_WINDING_STAIR = { type: 3, value: "TWO_QUARTER_WINDING_STAIR" }; IfcStairTypeEnum.TWO_STRAIGHT_RUN_STAIR = { type: 3, value: "TWO_STRAIGHT_RUN_STAIR" }; IfcStairTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcStairTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcStairTypeEnum = IfcStairTypeEnum; class IfcStateEnum { } IfcStateEnum.LOCKED = { type: 3, value: "LOCKED" }; IfcStateEnum.READONLY = { type: 3, value: "READONLY" }; IfcStateEnum.READONLYLOCKED = { type: 3, value: "READONLYLOCKED" }; IfcStateEnum.READWRITE = { type: 3, value: "READWRITE" }; IfcStateEnum.READWRITELOCKED = { type: 3, value: "READWRITELOCKED" }; IFC4_32.IfcStateEnum = IfcStateEnum; class IfcStructuralCurveActivityTypeEnum { } IfcStructuralCurveActivityTypeEnum.CONST = { type: 3, value: "CONST" }; IfcStructuralCurveActivityTypeEnum.DISCRETE = { type: 3, value: "DISCRETE" }; IfcStructuralCurveActivityTypeEnum.EQUIDISTANT = { type: 3, value: "EQUIDISTANT" }; IfcStructuralCurveActivityTypeEnum.LINEAR = { type: 3, value: "LINEAR" }; IfcStructuralCurveActivityTypeEnum.PARABOLA = { type: 3, value: "PARABOLA" }; IfcStructuralCurveActivityTypeEnum.POLYGONAL = { type: 3, value: "POLYGONAL" }; IfcStructuralCurveActivityTypeEnum.SINUS = { type: 3, value: "SINUS" }; IfcStructuralCurveActivityTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcStructuralCurveActivityTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcStructuralCurveActivityTypeEnum = IfcStructuralCurveActivityTypeEnum; class IfcStructuralCurveMemberTypeEnum { } IfcStructuralCurveMemberTypeEnum.CABLE = { type: 3, value: "CABLE" }; IfcStructuralCurveMemberTypeEnum.COMPRESSION_MEMBER = { type: 3, value: "COMPRESSION_MEMBER" }; IfcStructuralCurveMemberTypeEnum.PIN_JOINED_MEMBER = { type: 3, value: "PIN_JOINED_MEMBER" }; IfcStructuralCurveMemberTypeEnum.RIGID_JOINED_MEMBER = { type: 3, value: "RIGID_JOINED_MEMBER" }; IfcStructuralCurveMemberTypeEnum.TENSION_MEMBER = { type: 3, value: "TENSION_MEMBER" }; IfcStructuralCurveMemberTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcStructuralCurveMemberTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcStructuralCurveMemberTypeEnum = IfcStructuralCurveMemberTypeEnum; class IfcStructuralSurfaceActivityTypeEnum { } IfcStructuralSurfaceActivityTypeEnum.BILINEAR = { type: 3, value: "BILINEAR" }; IfcStructuralSurfaceActivityTypeEnum.CONST = { type: 3, value: "CONST" }; IfcStructuralSurfaceActivityTypeEnum.DISCRETE = { type: 3, value: "DISCRETE" }; IfcStructuralSurfaceActivityTypeEnum.ISOCONTOUR = { type: 3, value: "ISOCONTOUR" }; IfcStructuralSurfaceActivityTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcStructuralSurfaceActivityTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcStructuralSurfaceActivityTypeEnum = IfcStructuralSurfaceActivityTypeEnum; class IfcStructuralSurfaceMemberTypeEnum { } IfcStructuralSurfaceMemberTypeEnum.BENDING_ELEMENT = { type: 3, value: "BENDING_ELEMENT" }; IfcStructuralSurfaceMemberTypeEnum.MEMBRANE_ELEMENT = { type: 3, value: "MEMBRANE_ELEMENT" }; IfcStructuralSurfaceMemberTypeEnum.SHELL = { type: 3, value: "SHELL" }; IfcStructuralSurfaceMemberTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcStructuralSurfaceMemberTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcStructuralSurfaceMemberTypeEnum = IfcStructuralSurfaceMemberTypeEnum; class IfcSubContractResourceTypeEnum { } IfcSubContractResourceTypeEnum.PURCHASE = { type: 3, value: "PURCHASE" }; IfcSubContractResourceTypeEnum.WORK = { type: 3, value: "WORK" }; IfcSubContractResourceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcSubContractResourceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcSubContractResourceTypeEnum = IfcSubContractResourceTypeEnum; class IfcSurfaceFeatureTypeEnum { } IfcSurfaceFeatureTypeEnum.DEFECT = { type: 3, value: "DEFECT" }; IfcSurfaceFeatureTypeEnum.HATCHMARKING = { type: 3, value: "HATCHMARKING" }; IfcSurfaceFeatureTypeEnum.LINEMARKING = { type: 3, value: "LINEMARKING" }; IfcSurfaceFeatureTypeEnum.MARK = { type: 3, value: "MARK" }; IfcSurfaceFeatureTypeEnum.NONSKIDSURFACING = { type: 3, value: "NONSKIDSURFACING" }; IfcSurfaceFeatureTypeEnum.PAVEMENTSURFACEMARKING = { type: 3, value: "PAVEMENTSURFACEMARKING" }; IfcSurfaceFeatureTypeEnum.RUMBLESTRIP = { type: 3, value: "RUMBLESTRIP" }; IfcSurfaceFeatureTypeEnum.SYMBOLMARKING = { type: 3, value: "SYMBOLMARKING" }; IfcSurfaceFeatureTypeEnum.TAG = { type: 3, value: "TAG" }; IfcSurfaceFeatureTypeEnum.TRANSVERSERUMBLESTRIP = { type: 3, value: "TRANSVERSERUMBLESTRIP" }; IfcSurfaceFeatureTypeEnum.TREATMENT = { type: 3, value: "TREATMENT" }; IfcSurfaceFeatureTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcSurfaceFeatureTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcSurfaceFeatureTypeEnum = IfcSurfaceFeatureTypeEnum; class IfcSurfaceSide { } IfcSurfaceSide.BOTH = { type: 3, value: "BOTH" }; IfcSurfaceSide.NEGATIVE = { type: 3, value: "NEGATIVE" }; IfcSurfaceSide.POSITIVE = { type: 3, value: "POSITIVE" }; IFC4_32.IfcSurfaceSide = IfcSurfaceSide; class IfcSwitchingDeviceTypeEnum { } IfcSwitchingDeviceTypeEnum.CONTACTOR = { type: 3, value: "CONTACTOR" }; IfcSwitchingDeviceTypeEnum.DIMMERSWITCH = { type: 3, value: "DIMMERSWITCH" }; IfcSwitchingDeviceTypeEnum.EMERGENCYSTOP = { type: 3, value: "EMERGENCYSTOP" }; IfcSwitchingDeviceTypeEnum.KEYPAD = { type: 3, value: "KEYPAD" }; IfcSwitchingDeviceTypeEnum.MOMENTARYSWITCH = { type: 3, value: "MOMENTARYSWITCH" }; IfcSwitchingDeviceTypeEnum.RELAY = { type: 3, value: "RELAY" }; IfcSwitchingDeviceTypeEnum.SELECTORSWITCH = { type: 3, value: "SELECTORSWITCH" }; IfcSwitchingDeviceTypeEnum.STARTER = { type: 3, value: "STARTER" }; IfcSwitchingDeviceTypeEnum.START_AND_STOP_EQUIPMENT = { type: 3, value: "START_AND_STOP_EQUIPMENT" }; IfcSwitchingDeviceTypeEnum.SWITCHDISCONNECTOR = { type: 3, value: "SWITCHDISCONNECTOR" }; IfcSwitchingDeviceTypeEnum.TOGGLESWITCH = { type: 3, value: "TOGGLESWITCH" }; IfcSwitchingDeviceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcSwitchingDeviceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcSwitchingDeviceTypeEnum = IfcSwitchingDeviceTypeEnum; class IfcSystemFurnitureElementTypeEnum { } IfcSystemFurnitureElementTypeEnum.PANEL = { type: 3, value: "PANEL" }; IfcSystemFurnitureElementTypeEnum.SUBRACK = { type: 3, value: "SUBRACK" }; IfcSystemFurnitureElementTypeEnum.WORKSURFACE = { type: 3, value: "WORKSURFACE" }; IfcSystemFurnitureElementTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcSystemFurnitureElementTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcSystemFurnitureElementTypeEnum = IfcSystemFurnitureElementTypeEnum; class IfcTankTypeEnum { } IfcTankTypeEnum.BASIN = { type: 3, value: "BASIN" }; IfcTankTypeEnum.BREAKPRESSURE = { type: 3, value: "BREAKPRESSURE" }; IfcTankTypeEnum.EXPANSION = { type: 3, value: "EXPANSION" }; IfcTankTypeEnum.FEEDANDEXPANSION = { type: 3, value: "FEEDANDEXPANSION" }; IfcTankTypeEnum.OILRETENTIONTRAY = { type: 3, value: "OILRETENTIONTRAY" }; IfcTankTypeEnum.PRESSUREVESSEL = { type: 3, value: "PRESSUREVESSEL" }; IfcTankTypeEnum.STORAGE = { type: 3, value: "STORAGE" }; IfcTankTypeEnum.VESSEL = { type: 3, value: "VESSEL" }; IfcTankTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcTankTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcTankTypeEnum = IfcTankTypeEnum; class IfcTaskDurationEnum { } IfcTaskDurationEnum.ELAPSEDTIME = { type: 3, value: "ELAPSEDTIME" }; IfcTaskDurationEnum.WORKTIME = { type: 3, value: "WORKTIME" }; IfcTaskDurationEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcTaskDurationEnum = IfcTaskDurationEnum; class IfcTaskTypeEnum { } IfcTaskTypeEnum.ADJUSTMENT = { type: 3, value: "ADJUSTMENT" }; IfcTaskTypeEnum.ATTENDANCE = { type: 3, value: "ATTENDANCE" }; IfcTaskTypeEnum.CALIBRATION = { type: 3, value: "CALIBRATION" }; IfcTaskTypeEnum.CONSTRUCTION = { type: 3, value: "CONSTRUCTION" }; IfcTaskTypeEnum.DEMOLITION = { type: 3, value: "DEMOLITION" }; IfcTaskTypeEnum.DISMANTLE = { type: 3, value: "DISMANTLE" }; IfcTaskTypeEnum.DISPOSAL = { type: 3, value: "DISPOSAL" }; IfcTaskTypeEnum.EMERGENCY = { type: 3, value: "EMERGENCY" }; IfcTaskTypeEnum.INSPECTION = { type: 3, value: "INSPECTION" }; IfcTaskTypeEnum.INSTALLATION = { type: 3, value: "INSTALLATION" }; IfcTaskTypeEnum.LOGISTIC = { type: 3, value: "LOGISTIC" }; IfcTaskTypeEnum.MAINTENANCE = { type: 3, value: "MAINTENANCE" }; IfcTaskTypeEnum.MOVE = { type: 3, value: "MOVE" }; IfcTaskTypeEnum.OPERATION = { type: 3, value: "OPERATION" }; IfcTaskTypeEnum.REMOVAL = { type: 3, value: "REMOVAL" }; IfcTaskTypeEnum.RENOVATION = { type: 3, value: "RENOVATION" }; IfcTaskTypeEnum.SAFETY = { type: 3, value: "SAFETY" }; IfcTaskTypeEnum.SHUTDOWN = { type: 3, value: "SHUTDOWN" }; IfcTaskTypeEnum.STARTUP = { type: 3, value: "STARTUP" }; IfcTaskTypeEnum.TESTING = { type: 3, value: "TESTING" }; IfcTaskTypeEnum.TROUBLESHOOTING = { type: 3, value: "TROUBLESHOOTING" }; IfcTaskTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcTaskTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcTaskTypeEnum = IfcTaskTypeEnum; class IfcTendonAnchorTypeEnum { } IfcTendonAnchorTypeEnum.COUPLER = { type: 3, value: "COUPLER" }; IfcTendonAnchorTypeEnum.FIXED_END = { type: 3, value: "FIXED_END" }; IfcTendonAnchorTypeEnum.TENSIONING_END = { type: 3, value: "TENSIONING_END" }; IfcTendonAnchorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcTendonAnchorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcTendonAnchorTypeEnum = IfcTendonAnchorTypeEnum; class IfcTendonConduitTypeEnum { } IfcTendonConduitTypeEnum.COUPLER = { type: 3, value: "COUPLER" }; IfcTendonConduitTypeEnum.DIABOLO = { type: 3, value: "DIABOLO" }; IfcTendonConduitTypeEnum.DUCT = { type: 3, value: "DUCT" }; IfcTendonConduitTypeEnum.GROUTING_DUCT = { type: 3, value: "GROUTING_DUCT" }; IfcTendonConduitTypeEnum.TRUMPET = { type: 3, value: "TRUMPET" }; IfcTendonConduitTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcTendonConduitTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcTendonConduitTypeEnum = IfcTendonConduitTypeEnum; class IfcTendonTypeEnum { } IfcTendonTypeEnum.BAR = { type: 3, value: "BAR" }; IfcTendonTypeEnum.COATED = { type: 3, value: "COATED" }; IfcTendonTypeEnum.STRAND = { type: 3, value: "STRAND" }; IfcTendonTypeEnum.WIRE = { type: 3, value: "WIRE" }; IfcTendonTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcTendonTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcTendonTypeEnum = IfcTendonTypeEnum; class IfcTextPath { } IfcTextPath.DOWN = { type: 3, value: "DOWN" }; IfcTextPath.LEFT = { type: 3, value: "LEFT" }; IfcTextPath.RIGHT = { type: 3, value: "RIGHT" }; IfcTextPath.UP = { type: 3, value: "UP" }; IFC4_32.IfcTextPath = IfcTextPath; class IfcTimeSeriesDataTypeEnum { } IfcTimeSeriesDataTypeEnum.CONTINUOUS = { type: 3, value: "CONTINUOUS" }; IfcTimeSeriesDataTypeEnum.DISCRETE = { type: 3, value: "DISCRETE" }; IfcTimeSeriesDataTypeEnum.DISCRETEBINARY = { type: 3, value: "DISCRETEBINARY" }; IfcTimeSeriesDataTypeEnum.PIECEWISEBINARY = { type: 3, value: "PIECEWISEBINARY" }; IfcTimeSeriesDataTypeEnum.PIECEWISECONSTANT = { type: 3, value: "PIECEWISECONSTANT" }; IfcTimeSeriesDataTypeEnum.PIECEWISECONTINUOUS = { type: 3, value: "PIECEWISECONTINUOUS" }; IfcTimeSeriesDataTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcTimeSeriesDataTypeEnum = IfcTimeSeriesDataTypeEnum; class IfcTrackElementTypeEnum { } IfcTrackElementTypeEnum.BLOCKINGDEVICE = { type: 3, value: "BLOCKINGDEVICE" }; IfcTrackElementTypeEnum.DERAILER = { type: 3, value: "DERAILER" }; IfcTrackElementTypeEnum.FROG = { type: 3, value: "FROG" }; IfcTrackElementTypeEnum.HALF_SET_OF_BLADES = { type: 3, value: "HALF_SET_OF_BLADES" }; IfcTrackElementTypeEnum.SLEEPER = { type: 3, value: "SLEEPER" }; IfcTrackElementTypeEnum.SPEEDREGULATOR = { type: 3, value: "SPEEDREGULATOR" }; IfcTrackElementTypeEnum.TRACKENDOFALIGNMENT = { type: 3, value: "TRACKENDOFALIGNMENT" }; IfcTrackElementTypeEnum.VEHICLESTOP = { type: 3, value: "VEHICLESTOP" }; IfcTrackElementTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcTrackElementTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcTrackElementTypeEnum = IfcTrackElementTypeEnum; class IfcTransformerTypeEnum { } IfcTransformerTypeEnum.CHOPPER = { type: 3, value: "CHOPPER" }; IfcTransformerTypeEnum.COMBINED = { type: 3, value: "COMBINED" }; IfcTransformerTypeEnum.CURRENT = { type: 3, value: "CURRENT" }; IfcTransformerTypeEnum.FREQUENCY = { type: 3, value: "FREQUENCY" }; IfcTransformerTypeEnum.INVERTER = { type: 3, value: "INVERTER" }; IfcTransformerTypeEnum.RECTIFIER = { type: 3, value: "RECTIFIER" }; IfcTransformerTypeEnum.VOLTAGE = { type: 3, value: "VOLTAGE" }; IfcTransformerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcTransformerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcTransformerTypeEnum = IfcTransformerTypeEnum; class IfcTransitionCode { } IfcTransitionCode.CONTINUOUS = { type: 3, value: "CONTINUOUS" }; IfcTransitionCode.CONTSAMEGRADIENT = { type: 3, value: "CONTSAMEGRADIENT" }; IfcTransitionCode.CONTSAMEGRADIENTSAMECURVATURE = { type: 3, value: "CONTSAMEGRADIENTSAMECURVATURE" }; IfcTransitionCode.DISCONTINUOUS = { type: 3, value: "DISCONTINUOUS" }; IFC4_32.IfcTransitionCode = IfcTransitionCode; class IfcTransportElementTypeEnum { } IfcTransportElementTypeEnum.CRANEWAY = { type: 3, value: "CRANEWAY" }; IfcTransportElementTypeEnum.ELEVATOR = { type: 3, value: "ELEVATOR" }; IfcTransportElementTypeEnum.ESCALATOR = { type: 3, value: "ESCALATOR" }; IfcTransportElementTypeEnum.HAULINGGEAR = { type: 3, value: "HAULINGGEAR" }; IfcTransportElementTypeEnum.LIFTINGGEAR = { type: 3, value: "LIFTINGGEAR" }; IfcTransportElementTypeEnum.MOVINGWALKWAY = { type: 3, value: "MOVINGWALKWAY" }; IfcTransportElementTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcTransportElementTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcTransportElementTypeEnum = IfcTransportElementTypeEnum; class IfcTrimmingPreference { } IfcTrimmingPreference.CARTESIAN = { type: 3, value: "CARTESIAN" }; IfcTrimmingPreference.PARAMETER = { type: 3, value: "PARAMETER" }; IfcTrimmingPreference.UNSPECIFIED = { type: 3, value: "UNSPECIFIED" }; IFC4_32.IfcTrimmingPreference = IfcTrimmingPreference; class IfcTubeBundleTypeEnum { } IfcTubeBundleTypeEnum.FINNED = { type: 3, value: "FINNED" }; IfcTubeBundleTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcTubeBundleTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcTubeBundleTypeEnum = IfcTubeBundleTypeEnum; class IfcUnitEnum { } IfcUnitEnum.ABSORBEDDOSEUNIT = { type: 3, value: "ABSORBEDDOSEUNIT" }; IfcUnitEnum.AMOUNTOFSUBSTANCEUNIT = { type: 3, value: "AMOUNTOFSUBSTANCEUNIT" }; IfcUnitEnum.AREAUNIT = { type: 3, value: "AREAUNIT" }; IfcUnitEnum.DOSEEQUIVALENTUNIT = { type: 3, value: "DOSEEQUIVALENTUNIT" }; IfcUnitEnum.ELECTRICCAPACITANCEUNIT = { type: 3, value: "ELECTRICCAPACITANCEUNIT" }; IfcUnitEnum.ELECTRICCHARGEUNIT = { type: 3, value: "ELECTRICCHARGEUNIT" }; IfcUnitEnum.ELECTRICCONDUCTANCEUNIT = { type: 3, value: "ELECTRICCONDUCTANCEUNIT" }; IfcUnitEnum.ELECTRICCURRENTUNIT = { type: 3, value: "ELECTRICCURRENTUNIT" }; IfcUnitEnum.ELECTRICRESISTANCEUNIT = { type: 3, value: "ELECTRICRESISTANCEUNIT" }; IfcUnitEnum.ELECTRICVOLTAGEUNIT = { type: 3, value: "ELECTRICVOLTAGEUNIT" }; IfcUnitEnum.ENERGYUNIT = { type: 3, value: "ENERGYUNIT" }; IfcUnitEnum.FORCEUNIT = { type: 3, value: "FORCEUNIT" }; IfcUnitEnum.FREQUENCYUNIT = { type: 3, value: "FREQUENCYUNIT" }; IfcUnitEnum.ILLUMINANCEUNIT = { type: 3, value: "ILLUMINANCEUNIT" }; IfcUnitEnum.INDUCTANCEUNIT = { type: 3, value: "INDUCTANCEUNIT" }; IfcUnitEnum.LENGTHUNIT = { type: 3, value: "LENGTHUNIT" }; IfcUnitEnum.LUMINOUSFLUXUNIT = { type: 3, value: "LUMINOUSFLUXUNIT" }; IfcUnitEnum.LUMINOUSINTENSITYUNIT = { type: 3, value: "LUMINOUSINTENSITYUNIT" }; IfcUnitEnum.MAGNETICFLUXDENSITYUNIT = { type: 3, value: "MAGNETICFLUXDENSITYUNIT" }; IfcUnitEnum.MAGNETICFLUXUNIT = { type: 3, value: "MAGNETICFLUXUNIT" }; IfcUnitEnum.MASSUNIT = { type: 3, value: "MASSUNIT" }; IfcUnitEnum.PLANEANGLEUNIT = { type: 3, value: "PLANEANGLEUNIT" }; IfcUnitEnum.POWERUNIT = { type: 3, value: "POWERUNIT" }; IfcUnitEnum.PRESSUREUNIT = { type: 3, value: "PRESSUREUNIT" }; IfcUnitEnum.RADIOACTIVITYUNIT = { type: 3, value: "RADIOACTIVITYUNIT" }; IfcUnitEnum.SOLIDANGLEUNIT = { type: 3, value: "SOLIDANGLEUNIT" }; IfcUnitEnum.THERMODYNAMICTEMPERATUREUNIT = { type: 3, value: "THERMODYNAMICTEMPERATUREUNIT" }; IfcUnitEnum.TIMEUNIT = { type: 3, value: "TIMEUNIT" }; IfcUnitEnum.VOLUMEUNIT = { type: 3, value: "VOLUMEUNIT" }; IfcUnitEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IFC4_32.IfcUnitEnum = IfcUnitEnum; class IfcUnitaryControlElementTypeEnum { } IfcUnitaryControlElementTypeEnum.ALARMPANEL = { type: 3, value: "ALARMPANEL" }; IfcUnitaryControlElementTypeEnum.BASESTATIONCONTROLLER = { type: 3, value: "BASESTATIONCONTROLLER" }; IfcUnitaryControlElementTypeEnum.COMBINED = { type: 3, value: "COMBINED" }; IfcUnitaryControlElementTypeEnum.CONTROLPANEL = { type: 3, value: "CONTROLPANEL" }; IfcUnitaryControlElementTypeEnum.GASDETECTIONPANEL = { type: 3, value: "GASDETECTIONPANEL" }; IfcUnitaryControlElementTypeEnum.HUMIDISTAT = { type: 3, value: "HUMIDISTAT" }; IfcUnitaryControlElementTypeEnum.INDICATORPANEL = { type: 3, value: "INDICATORPANEL" }; IfcUnitaryControlElementTypeEnum.MIMICPANEL = { type: 3, value: "MIMICPANEL" }; IfcUnitaryControlElementTypeEnum.THERMOSTAT = { type: 3, value: "THERMOSTAT" }; IfcUnitaryControlElementTypeEnum.WEATHERSTATION = { type: 3, value: "WEATHERSTATION" }; IfcUnitaryControlElementTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcUnitaryControlElementTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcUnitaryControlElementTypeEnum = IfcUnitaryControlElementTypeEnum; class IfcUnitaryEquipmentTypeEnum { } IfcUnitaryEquipmentTypeEnum.AIRCONDITIONINGUNIT = { type: 3, value: "AIRCONDITIONINGUNIT" }; IfcUnitaryEquipmentTypeEnum.AIRHANDLER = { type: 3, value: "AIRHANDLER" }; IfcUnitaryEquipmentTypeEnum.DEHUMIDIFIER = { type: 3, value: "DEHUMIDIFIER" }; IfcUnitaryEquipmentTypeEnum.ROOFTOPUNIT = { type: 3, value: "ROOFTOPUNIT" }; IfcUnitaryEquipmentTypeEnum.SPLITSYSTEM = { type: 3, value: "SPLITSYSTEM" }; IfcUnitaryEquipmentTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcUnitaryEquipmentTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcUnitaryEquipmentTypeEnum = IfcUnitaryEquipmentTypeEnum; class IfcValveTypeEnum { } IfcValveTypeEnum.AIRRELEASE = { type: 3, value: "AIRRELEASE" }; IfcValveTypeEnum.ANTIVACUUM = { type: 3, value: "ANTIVACUUM" }; IfcValveTypeEnum.CHANGEOVER = { type: 3, value: "CHANGEOVER" }; IfcValveTypeEnum.CHECK = { type: 3, value: "CHECK" }; IfcValveTypeEnum.COMMISSIONING = { type: 3, value: "COMMISSIONING" }; IfcValveTypeEnum.DIVERTING = { type: 3, value: "DIVERTING" }; IfcValveTypeEnum.DOUBLECHECK = { type: 3, value: "DOUBLECHECK" }; IfcValveTypeEnum.DOUBLEREGULATING = { type: 3, value: "DOUBLEREGULATING" }; IfcValveTypeEnum.DRAWOFFCOCK = { type: 3, value: "DRAWOFFCOCK" }; IfcValveTypeEnum.FAUCET = { type: 3, value: "FAUCET" }; IfcValveTypeEnum.FLUSHING = { type: 3, value: "FLUSHING" }; IfcValveTypeEnum.GASCOCK = { type: 3, value: "GASCOCK" }; IfcValveTypeEnum.GASTAP = { type: 3, value: "GASTAP" }; IfcValveTypeEnum.ISOLATING = { type: 3, value: "ISOLATING" }; IfcValveTypeEnum.MIXING = { type: 3, value: "MIXING" }; IfcValveTypeEnum.PRESSUREREDUCING = { type: 3, value: "PRESSUREREDUCING" }; IfcValveTypeEnum.PRESSURERELIEF = { type: 3, value: "PRESSURERELIEF" }; IfcValveTypeEnum.REGULATING = { type: 3, value: "REGULATING" }; IfcValveTypeEnum.SAFETYCUTOFF = { type: 3, value: "SAFETYCUTOFF" }; IfcValveTypeEnum.STEAMTRAP = { type: 3, value: "STEAMTRAP" }; IfcValveTypeEnum.STOPCOCK = { type: 3, value: "STOPCOCK" }; IfcValveTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcValveTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcValveTypeEnum = IfcValveTypeEnum; class IfcVehicleTypeEnum { } IfcVehicleTypeEnum.CARGO = { type: 3, value: "CARGO" }; IfcVehicleTypeEnum.ROLLINGSTOCK = { type: 3, value: "ROLLINGSTOCK" }; IfcVehicleTypeEnum.VEHICLE = { type: 3, value: "VEHICLE" }; IfcVehicleTypeEnum.VEHICLEAIR = { type: 3, value: "VEHICLEAIR" }; IfcVehicleTypeEnum.VEHICLEMARINE = { type: 3, value: "VEHICLEMARINE" }; IfcVehicleTypeEnum.VEHICLETRACKED = { type: 3, value: "VEHICLETRACKED" }; IfcVehicleTypeEnum.VEHICLEWHEELED = { type: 3, value: "VEHICLEWHEELED" }; IfcVehicleTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcVehicleTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcVehicleTypeEnum = IfcVehicleTypeEnum; class IfcVibrationDamperTypeEnum { } IfcVibrationDamperTypeEnum.AXIAL_YIELD = { type: 3, value: "AXIAL_YIELD" }; IfcVibrationDamperTypeEnum.BENDING_YIELD = { type: 3, value: "BENDING_YIELD" }; IfcVibrationDamperTypeEnum.FRICTION = { type: 3, value: "FRICTION" }; IfcVibrationDamperTypeEnum.RUBBER = { type: 3, value: "RUBBER" }; IfcVibrationDamperTypeEnum.SHEAR_YIELD = { type: 3, value: "SHEAR_YIELD" }; IfcVibrationDamperTypeEnum.VISCOUS = { type: 3, value: "VISCOUS" }; IfcVibrationDamperTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcVibrationDamperTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcVibrationDamperTypeEnum = IfcVibrationDamperTypeEnum; class IfcVibrationIsolatorTypeEnum { } IfcVibrationIsolatorTypeEnum.BASE = { type: 3, value: "BASE" }; IfcVibrationIsolatorTypeEnum.COMPRESSION = { type: 3, value: "COMPRESSION" }; IfcVibrationIsolatorTypeEnum.SPRING = { type: 3, value: "SPRING" }; IfcVibrationIsolatorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcVibrationIsolatorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcVibrationIsolatorTypeEnum = IfcVibrationIsolatorTypeEnum; class IfcVirtualElementTypeEnum { } IfcVirtualElementTypeEnum.BOUNDARY = { type: 3, value: "BOUNDARY" }; IfcVirtualElementTypeEnum.CLEARANCE = { type: 3, value: "CLEARANCE" }; IfcVirtualElementTypeEnum.PROVISIONFORVOID = { type: 3, value: "PROVISIONFORVOID" }; IfcVirtualElementTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcVirtualElementTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcVirtualElementTypeEnum = IfcVirtualElementTypeEnum; class IfcVoidingFeatureTypeEnum { } IfcVoidingFeatureTypeEnum.CHAMFER = { type: 3, value: "CHAMFER" }; IfcVoidingFeatureTypeEnum.CUTOUT = { type: 3, value: "CUTOUT" }; IfcVoidingFeatureTypeEnum.EDGE = { type: 3, value: "EDGE" }; IfcVoidingFeatureTypeEnum.HOLE = { type: 3, value: "HOLE" }; IfcVoidingFeatureTypeEnum.MITER = { type: 3, value: "MITER" }; IfcVoidingFeatureTypeEnum.NOTCH = { type: 3, value: "NOTCH" }; IfcVoidingFeatureTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcVoidingFeatureTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcVoidingFeatureTypeEnum = IfcVoidingFeatureTypeEnum; class IfcWallTypeEnum { } IfcWallTypeEnum.ELEMENTEDWALL = { type: 3, value: "ELEMENTEDWALL" }; IfcWallTypeEnum.MOVABLE = { type: 3, value: "MOVABLE" }; IfcWallTypeEnum.PARAPET = { type: 3, value: "PARAPET" }; IfcWallTypeEnum.PARTITIONING = { type: 3, value: "PARTITIONING" }; IfcWallTypeEnum.PLUMBINGWALL = { type: 3, value: "PLUMBINGWALL" }; IfcWallTypeEnum.POLYGONAL = { type: 3, value: "POLYGONAL" }; IfcWallTypeEnum.RETAININGWALL = { type: 3, value: "RETAININGWALL" }; IfcWallTypeEnum.SHEAR = { type: 3, value: "SHEAR" }; IfcWallTypeEnum.SOLIDWALL = { type: 3, value: "SOLIDWALL" }; IfcWallTypeEnum.STANDARD = { type: 3, value: "STANDARD" }; IfcWallTypeEnum.WAVEWALL = { type: 3, value: "WAVEWALL" }; IfcWallTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcWallTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcWallTypeEnum = IfcWallTypeEnum; class IfcWasteTerminalTypeEnum { } IfcWasteTerminalTypeEnum.FLOORTRAP = { type: 3, value: "FLOORTRAP" }; IfcWasteTerminalTypeEnum.FLOORWASTE = { type: 3, value: "FLOORWASTE" }; IfcWasteTerminalTypeEnum.GULLYSUMP = { type: 3, value: "GULLYSUMP" }; IfcWasteTerminalTypeEnum.GULLYTRAP = { type: 3, value: "GULLYTRAP" }; IfcWasteTerminalTypeEnum.ROOFDRAIN = { type: 3, value: "ROOFDRAIN" }; IfcWasteTerminalTypeEnum.WASTEDISPOSALUNIT = { type: 3, value: "WASTEDISPOSALUNIT" }; IfcWasteTerminalTypeEnum.WASTETRAP = { type: 3, value: "WASTETRAP" }; IfcWasteTerminalTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcWasteTerminalTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcWasteTerminalTypeEnum = IfcWasteTerminalTypeEnum; class IfcWindowPanelOperationEnum { } IfcWindowPanelOperationEnum.BOTTOMHUNG = { type: 3, value: "BOTTOMHUNG" }; IfcWindowPanelOperationEnum.FIXEDCASEMENT = { type: 3, value: "FIXEDCASEMENT" }; IfcWindowPanelOperationEnum.OTHEROPERATION = { type: 3, value: "OTHEROPERATION" }; IfcWindowPanelOperationEnum.PIVOTHORIZONTAL = { type: 3, value: "PIVOTHORIZONTAL" }; IfcWindowPanelOperationEnum.PIVOTVERTICAL = { type: 3, value: "PIVOTVERTICAL" }; IfcWindowPanelOperationEnum.REMOVABLECASEMENT = { type: 3, value: "REMOVABLECASEMENT" }; IfcWindowPanelOperationEnum.SIDEHUNGLEFTHAND = { type: 3, value: "SIDEHUNGLEFTHAND" }; IfcWindowPanelOperationEnum.SIDEHUNGRIGHTHAND = { type: 3, value: "SIDEHUNGRIGHTHAND" }; IfcWindowPanelOperationEnum.SLIDINGHORIZONTAL = { type: 3, value: "SLIDINGHORIZONTAL" }; IfcWindowPanelOperationEnum.SLIDINGVERTICAL = { type: 3, value: "SLIDINGVERTICAL" }; IfcWindowPanelOperationEnum.TILTANDTURNLEFTHAND = { type: 3, value: "TILTANDTURNLEFTHAND" }; IfcWindowPanelOperationEnum.TILTANDTURNRIGHTHAND = { type: 3, value: "TILTANDTURNRIGHTHAND" }; IfcWindowPanelOperationEnum.TOPHUNG = { type: 3, value: "TOPHUNG" }; IfcWindowPanelOperationEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcWindowPanelOperationEnum = IfcWindowPanelOperationEnum; class IfcWindowPanelPositionEnum { } IfcWindowPanelPositionEnum.BOTTOM = { type: 3, value: "BOTTOM" }; IfcWindowPanelPositionEnum.LEFT = { type: 3, value: "LEFT" }; IfcWindowPanelPositionEnum.MIDDLE = { type: 3, value: "MIDDLE" }; IfcWindowPanelPositionEnum.RIGHT = { type: 3, value: "RIGHT" }; IfcWindowPanelPositionEnum.TOP = { type: 3, value: "TOP" }; IfcWindowPanelPositionEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcWindowPanelPositionEnum = IfcWindowPanelPositionEnum; class IfcWindowStyleConstructionEnum { } IfcWindowStyleConstructionEnum.ALUMINIUM = { type: 3, value: "ALUMINIUM" }; IfcWindowStyleConstructionEnum.ALUMINIUM_WOOD = { type: 3, value: "ALUMINIUM_WOOD" }; IfcWindowStyleConstructionEnum.HIGH_GRADE_STEEL = { type: 3, value: "HIGH_GRADE_STEEL" }; IfcWindowStyleConstructionEnum.OTHER_CONSTRUCTION = { type: 3, value: "OTHER_CONSTRUCTION" }; IfcWindowStyleConstructionEnum.PLASTIC = { type: 3, value: "PLASTIC" }; IfcWindowStyleConstructionEnum.STEEL = { type: 3, value: "STEEL" }; IfcWindowStyleConstructionEnum.WOOD = { type: 3, value: "WOOD" }; IfcWindowStyleConstructionEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcWindowStyleConstructionEnum = IfcWindowStyleConstructionEnum; class IfcWindowStyleOperationEnum { } IfcWindowStyleOperationEnum.DOUBLE_PANEL_HORIZONTAL = { type: 3, value: "DOUBLE_PANEL_HORIZONTAL" }; IfcWindowStyleOperationEnum.DOUBLE_PANEL_VERTICAL = { type: 3, value: "DOUBLE_PANEL_VERTICAL" }; IfcWindowStyleOperationEnum.SINGLE_PANEL = { type: 3, value: "SINGLE_PANEL" }; IfcWindowStyleOperationEnum.TRIPLE_PANEL_BOTTOM = { type: 3, value: "TRIPLE_PANEL_BOTTOM" }; IfcWindowStyleOperationEnum.TRIPLE_PANEL_HORIZONTAL = { type: 3, value: "TRIPLE_PANEL_HORIZONTAL" }; IfcWindowStyleOperationEnum.TRIPLE_PANEL_LEFT = { type: 3, value: "TRIPLE_PANEL_LEFT" }; IfcWindowStyleOperationEnum.TRIPLE_PANEL_RIGHT = { type: 3, value: "TRIPLE_PANEL_RIGHT" }; IfcWindowStyleOperationEnum.TRIPLE_PANEL_TOP = { type: 3, value: "TRIPLE_PANEL_TOP" }; IfcWindowStyleOperationEnum.TRIPLE_PANEL_VERTICAL = { type: 3, value: "TRIPLE_PANEL_VERTICAL" }; IfcWindowStyleOperationEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcWindowStyleOperationEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcWindowStyleOperationEnum = IfcWindowStyleOperationEnum; class IfcWindowTypeEnum { } IfcWindowTypeEnum.LIGHTDOME = { type: 3, value: "LIGHTDOME" }; IfcWindowTypeEnum.SKYLIGHT = { type: 3, value: "SKYLIGHT" }; IfcWindowTypeEnum.WINDOW = { type: 3, value: "WINDOW" }; IfcWindowTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcWindowTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcWindowTypeEnum = IfcWindowTypeEnum; class IfcWindowTypePartitioningEnum { } IfcWindowTypePartitioningEnum.DOUBLE_PANEL_HORIZONTAL = { type: 3, value: "DOUBLE_PANEL_HORIZONTAL" }; IfcWindowTypePartitioningEnum.DOUBLE_PANEL_VERTICAL = { type: 3, value: "DOUBLE_PANEL_VERTICAL" }; IfcWindowTypePartitioningEnum.SINGLE_PANEL = { type: 3, value: "SINGLE_PANEL" }; IfcWindowTypePartitioningEnum.TRIPLE_PANEL_BOTTOM = { type: 3, value: "TRIPLE_PANEL_BOTTOM" }; IfcWindowTypePartitioningEnum.TRIPLE_PANEL_HORIZONTAL = { type: 3, value: "TRIPLE_PANEL_HORIZONTAL" }; IfcWindowTypePartitioningEnum.TRIPLE_PANEL_LEFT = { type: 3, value: "TRIPLE_PANEL_LEFT" }; IfcWindowTypePartitioningEnum.TRIPLE_PANEL_RIGHT = { type: 3, value: "TRIPLE_PANEL_RIGHT" }; IfcWindowTypePartitioningEnum.TRIPLE_PANEL_TOP = { type: 3, value: "TRIPLE_PANEL_TOP" }; IfcWindowTypePartitioningEnum.TRIPLE_PANEL_VERTICAL = { type: 3, value: "TRIPLE_PANEL_VERTICAL" }; IfcWindowTypePartitioningEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcWindowTypePartitioningEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcWindowTypePartitioningEnum = IfcWindowTypePartitioningEnum; class IfcWorkCalendarTypeEnum { } IfcWorkCalendarTypeEnum.FIRSTSHIFT = { type: 3, value: "FIRSTSHIFT" }; IfcWorkCalendarTypeEnum.SECONDSHIFT = { type: 3, value: "SECONDSHIFT" }; IfcWorkCalendarTypeEnum.THIRDSHIFT = { type: 3, value: "THIRDSHIFT" }; IfcWorkCalendarTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcWorkCalendarTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcWorkCalendarTypeEnum = IfcWorkCalendarTypeEnum; class IfcWorkPlanTypeEnum { } IfcWorkPlanTypeEnum.ACTUAL = { type: 3, value: "ACTUAL" }; IfcWorkPlanTypeEnum.BASELINE = { type: 3, value: "BASELINE" }; IfcWorkPlanTypeEnum.PLANNED = { type: 3, value: "PLANNED" }; IfcWorkPlanTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcWorkPlanTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcWorkPlanTypeEnum = IfcWorkPlanTypeEnum; class IfcWorkScheduleTypeEnum { } IfcWorkScheduleTypeEnum.ACTUAL = { type: 3, value: "ACTUAL" }; IfcWorkScheduleTypeEnum.BASELINE = { type: 3, value: "BASELINE" }; IfcWorkScheduleTypeEnum.PLANNED = { type: 3, value: "PLANNED" }; IfcWorkScheduleTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcWorkScheduleTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC4_32.IfcWorkScheduleTypeEnum = IfcWorkScheduleTypeEnum; class IfcActorRole extends IfcLineObject { constructor(expressID, Role, UserDefinedRole, Description) { super(expressID); this.Role = Role; this.UserDefinedRole = UserDefinedRole; this.Description = Description; this.type = 3630933823; } } IFC4_32.IfcActorRole = IfcActorRole; class IfcAddress extends IfcLineObject { constructor(expressID, Purpose, Description, UserDefinedPurpose) { super(expressID); this.Purpose = Purpose; this.Description = Description; this.UserDefinedPurpose = UserDefinedPurpose; this.type = 618182010; } } IFC4_32.IfcAddress = IfcAddress; class IfcAlignmentParameterSegment extends IfcLineObject { constructor(expressID, StartTag, EndTag) { super(expressID); this.StartTag = StartTag; this.EndTag = EndTag; this.type = 2879124712; } } IFC4_32.IfcAlignmentParameterSegment = IfcAlignmentParameterSegment; class IfcAlignmentVerticalSegment extends IfcAlignmentParameterSegment { constructor(expressID, StartTag, EndTag, StartDistAlong, HorizontalLength, StartHeight, StartGradient, EndGradient, RadiusOfCurvature, PredefinedType) { super(expressID, StartTag, EndTag); this.StartTag = StartTag; this.EndTag = EndTag; this.StartDistAlong = StartDistAlong; this.HorizontalLength = HorizontalLength; this.StartHeight = StartHeight; this.StartGradient = StartGradient; this.EndGradient = EndGradient; this.RadiusOfCurvature = RadiusOfCurvature; this.PredefinedType = PredefinedType; this.type = 3633395639; } } IFC4_32.IfcAlignmentVerticalSegment = IfcAlignmentVerticalSegment; class IfcApplication extends IfcLineObject { constructor(expressID, ApplicationDeveloper, Version, ApplicationFullName, ApplicationIdentifier) { super(expressID); this.ApplicationDeveloper = ApplicationDeveloper; this.Version = Version; this.ApplicationFullName = ApplicationFullName; this.ApplicationIdentifier = ApplicationIdentifier; this.type = 639542469; } } IFC4_32.IfcApplication = IfcApplication; class IfcAppliedValue extends IfcLineObject { constructor(expressID, Name, Description, AppliedValue, UnitBasis, ApplicableDate, FixedUntilDate, Category, Condition, ArithmeticOperator, Components) { super(expressID); this.Name = Name; this.Description = Description; this.AppliedValue = AppliedValue; this.UnitBasis = UnitBasis; this.ApplicableDate = ApplicableDate; this.FixedUntilDate = FixedUntilDate; this.Category = Category; this.Condition = Condition; this.ArithmeticOperator = ArithmeticOperator; this.Components = Components; this.type = 411424972; } } IFC4_32.IfcAppliedValue = IfcAppliedValue; class IfcApproval extends IfcLineObject { constructor(expressID, Identifier, Name, Description, TimeOfApproval, Status, Level, Qualifier, RequestingApproval, GivingApproval) { super(expressID); this.Identifier = Identifier; this.Name = Name; this.Description = Description; this.TimeOfApproval = TimeOfApproval; this.Status = Status; this.Level = Level; this.Qualifier = Qualifier; this.RequestingApproval = RequestingApproval; this.GivingApproval = GivingApproval; this.type = 130549933; } } IFC4_32.IfcApproval = IfcApproval; class IfcBoundaryCondition extends IfcLineObject { constructor(expressID, Name) { super(expressID); this.Name = Name; this.type = 4037036970; } } IFC4_32.IfcBoundaryCondition = IfcBoundaryCondition; class IfcBoundaryEdgeCondition extends IfcBoundaryCondition { constructor(expressID, Name, TranslationalStiffnessByLengthX, TranslationalStiffnessByLengthY, TranslationalStiffnessByLengthZ, RotationalStiffnessByLengthX, RotationalStiffnessByLengthY, RotationalStiffnessByLengthZ) { super(expressID, Name); this.Name = Name; this.TranslationalStiffnessByLengthX = TranslationalStiffnessByLengthX; this.TranslationalStiffnessByLengthY = TranslationalStiffnessByLengthY; this.TranslationalStiffnessByLengthZ = TranslationalStiffnessByLengthZ; this.RotationalStiffnessByLengthX = RotationalStiffnessByLengthX; this.RotationalStiffnessByLengthY = RotationalStiffnessByLengthY; this.RotationalStiffnessByLengthZ = RotationalStiffnessByLengthZ; this.type = 1560379544; } } IFC4_32.IfcBoundaryEdgeCondition = IfcBoundaryEdgeCondition; class IfcBoundaryFaceCondition extends IfcBoundaryCondition { constructor(expressID, Name, TranslationalStiffnessByAreaX, TranslationalStiffnessByAreaY, TranslationalStiffnessByAreaZ) { super(expressID, Name); this.Name = Name; this.TranslationalStiffnessByAreaX = TranslationalStiffnessByAreaX; this.TranslationalStiffnessByAreaY = TranslationalStiffnessByAreaY; this.TranslationalStiffnessByAreaZ = TranslationalStiffnessByAreaZ; this.type = 3367102660; } } IFC4_32.IfcBoundaryFaceCondition = IfcBoundaryFaceCondition; class IfcBoundaryNodeCondition extends IfcBoundaryCondition { constructor(expressID, Name, TranslationalStiffnessX, TranslationalStiffnessY, TranslationalStiffnessZ, RotationalStiffnessX, RotationalStiffnessY, RotationalStiffnessZ) { super(expressID, Name); this.Name = Name; this.TranslationalStiffnessX = TranslationalStiffnessX; this.TranslationalStiffnessY = TranslationalStiffnessY; this.TranslationalStiffnessZ = TranslationalStiffnessZ; this.RotationalStiffnessX = RotationalStiffnessX; this.RotationalStiffnessY = RotationalStiffnessY; this.RotationalStiffnessZ = RotationalStiffnessZ; this.type = 1387855156; } } IFC4_32.IfcBoundaryNodeCondition = IfcBoundaryNodeCondition; class IfcBoundaryNodeConditionWarping extends IfcBoundaryNodeCondition { constructor(expressID, Name, TranslationalStiffnessX, TranslationalStiffnessY, TranslationalStiffnessZ, RotationalStiffnessX, RotationalStiffnessY, RotationalStiffnessZ, WarpingStiffness) { super(expressID, Name, TranslationalStiffnessX, TranslationalStiffnessY, TranslationalStiffnessZ, RotationalStiffnessX, RotationalStiffnessY, RotationalStiffnessZ); this.Name = Name; this.TranslationalStiffnessX = TranslationalStiffnessX; this.TranslationalStiffnessY = TranslationalStiffnessY; this.TranslationalStiffnessZ = TranslationalStiffnessZ; this.RotationalStiffnessX = RotationalStiffnessX; this.RotationalStiffnessY = RotationalStiffnessY; this.RotationalStiffnessZ = RotationalStiffnessZ; this.WarpingStiffness = WarpingStiffness; this.type = 2069777674; } } IFC4_32.IfcBoundaryNodeConditionWarping = IfcBoundaryNodeConditionWarping; class IfcConnectionGeometry extends IfcLineObject { constructor(expressID) { super(expressID); this.type = 2859738748; } } IFC4_32.IfcConnectionGeometry = IfcConnectionGeometry; class IfcConnectionPointGeometry extends IfcConnectionGeometry { constructor(expressID, PointOnRelatingElement, PointOnRelatedElement) { super(expressID); this.PointOnRelatingElement = PointOnRelatingElement; this.PointOnRelatedElement = PointOnRelatedElement; this.type = 2614616156; } } IFC4_32.IfcConnectionPointGeometry = IfcConnectionPointGeometry; class IfcConnectionSurfaceGeometry extends IfcConnectionGeometry { constructor(expressID, SurfaceOnRelatingElement, SurfaceOnRelatedElement) { super(expressID); this.SurfaceOnRelatingElement = SurfaceOnRelatingElement; this.SurfaceOnRelatedElement = SurfaceOnRelatedElement; this.type = 2732653382; } } IFC4_32.IfcConnectionSurfaceGeometry = IfcConnectionSurfaceGeometry; class IfcConnectionVolumeGeometry extends IfcConnectionGeometry { constructor(expressID, VolumeOnRelatingElement, VolumeOnRelatedElement) { super(expressID); this.VolumeOnRelatingElement = VolumeOnRelatingElement; this.VolumeOnRelatedElement = VolumeOnRelatedElement; this.type = 775493141; } } IFC4_32.IfcConnectionVolumeGeometry = IfcConnectionVolumeGeometry; class IfcConstraint extends IfcLineObject { constructor(expressID, Name, Description, ConstraintGrade, ConstraintSource, CreatingActor, CreationTime, UserDefinedGrade) { super(expressID); this.Name = Name; this.Description = Description; this.ConstraintGrade = ConstraintGrade; this.ConstraintSource = ConstraintSource; this.CreatingActor = CreatingActor; this.CreationTime = CreationTime; this.UserDefinedGrade = UserDefinedGrade; this.type = 1959218052; } } IFC4_32.IfcConstraint = IfcConstraint; class IfcCoordinateOperation extends IfcLineObject { constructor(expressID, SourceCRS, TargetCRS) { super(expressID); this.SourceCRS = SourceCRS; this.TargetCRS = TargetCRS; this.type = 1785450214; } } IFC4_32.IfcCoordinateOperation = IfcCoordinateOperation; class IfcCoordinateReferenceSystem extends IfcLineObject { constructor(expressID, Name, Description, GeodeticDatum, VerticalDatum) { super(expressID); this.Name = Name; this.Description = Description; this.GeodeticDatum = GeodeticDatum; this.VerticalDatum = VerticalDatum; this.type = 1466758467; } } IFC4_32.IfcCoordinateReferenceSystem = IfcCoordinateReferenceSystem; class IfcCostValue extends IfcAppliedValue { constructor(expressID, Name, Description, AppliedValue, UnitBasis, ApplicableDate, FixedUntilDate, Category, Condition, ArithmeticOperator, Components) { super(expressID, Name, Description, AppliedValue, UnitBasis, ApplicableDate, FixedUntilDate, Category, Condition, ArithmeticOperator, Components); this.Name = Name; this.Description = Description; this.AppliedValue = AppliedValue; this.UnitBasis = UnitBasis; this.ApplicableDate = ApplicableDate; this.FixedUntilDate = FixedUntilDate; this.Category = Category; this.Condition = Condition; this.ArithmeticOperator = ArithmeticOperator; this.Components = Components; this.type = 602808272; } } IFC4_32.IfcCostValue = IfcCostValue; class IfcDerivedUnit extends IfcLineObject { constructor(expressID, Elements, UnitType, UserDefinedType, Name) { super(expressID); this.Elements = Elements; this.UnitType = UnitType; this.UserDefinedType = UserDefinedType; this.Name = Name; this.type = 1765591967; } } IFC4_32.IfcDerivedUnit = IfcDerivedUnit; class IfcDerivedUnitElement extends IfcLineObject { constructor(expressID, Unit, Exponent) { super(expressID); this.Unit = Unit; this.Exponent = Exponent; this.type = 1045800335; } } IFC4_32.IfcDerivedUnitElement = IfcDerivedUnitElement; class IfcDimensionalExponents extends IfcLineObject { constructor(expressID, LengthExponent, MassExponent, TimeExponent, ElectricCurrentExponent, ThermodynamicTemperatureExponent, AmountOfSubstanceExponent, LuminousIntensityExponent) { super(expressID); this.LengthExponent = LengthExponent; this.MassExponent = MassExponent; this.TimeExponent = TimeExponent; this.ElectricCurrentExponent = ElectricCurrentExponent; this.ThermodynamicTemperatureExponent = ThermodynamicTemperatureExponent; this.AmountOfSubstanceExponent = AmountOfSubstanceExponent; this.LuminousIntensityExponent = LuminousIntensityExponent; this.type = 2949456006; } } IFC4_32.IfcDimensionalExponents = IfcDimensionalExponents; class IfcExternalInformation extends IfcLineObject { constructor(expressID) { super(expressID); this.type = 4294318154; } } IFC4_32.IfcExternalInformation = IfcExternalInformation; class IfcExternalReference extends IfcLineObject { constructor(expressID, Location, Identification, Name) { super(expressID); this.Location = Location; this.Identification = Identification; this.Name = Name; this.type = 3200245327; } } IFC4_32.IfcExternalReference = IfcExternalReference; class IfcExternallyDefinedHatchStyle extends IfcExternalReference { constructor(expressID, Location, Identification, Name) { super(expressID, Location, Identification, Name); this.Location = Location; this.Identification = Identification; this.Name = Name; this.type = 2242383968; } } IFC4_32.IfcExternallyDefinedHatchStyle = IfcExternallyDefinedHatchStyle; class IfcExternallyDefinedSurfaceStyle extends IfcExternalReference { constructor(expressID, Location, Identification, Name) { super(expressID, Location, Identification, Name); this.Location = Location; this.Identification = Identification; this.Name = Name; this.type = 1040185647; } } IFC4_32.IfcExternallyDefinedSurfaceStyle = IfcExternallyDefinedSurfaceStyle; class IfcExternallyDefinedTextFont extends IfcExternalReference { constructor(expressID, Location, Identification, Name) { super(expressID, Location, Identification, Name); this.Location = Location; this.Identification = Identification; this.Name = Name; this.type = 3548104201; } } IFC4_32.IfcExternallyDefinedTextFont = IfcExternallyDefinedTextFont; class IfcGridAxis extends IfcLineObject { constructor(expressID, AxisTag, AxisCurve, SameSense) { super(expressID); this.AxisTag = AxisTag; this.AxisCurve = AxisCurve; this.SameSense = SameSense; this.type = 852622518; } } IFC4_32.IfcGridAxis = IfcGridAxis; class IfcIrregularTimeSeriesValue extends IfcLineObject { constructor(expressID, TimeStamp, ListValues) { super(expressID); this.TimeStamp = TimeStamp; this.ListValues = ListValues; this.type = 3020489413; } } IFC4_32.IfcIrregularTimeSeriesValue = IfcIrregularTimeSeriesValue; class IfcLibraryInformation extends IfcExternalInformation { constructor(expressID, Name, Version, Publisher, VersionDate, Location, Description) { super(expressID); this.Name = Name; this.Version = Version; this.Publisher = Publisher; this.VersionDate = VersionDate; this.Location = Location; this.Description = Description; this.type = 2655187982; } } IFC4_32.IfcLibraryInformation = IfcLibraryInformation; class IfcLibraryReference extends IfcExternalReference { constructor(expressID, Location, Identification, Name, Description, Language, ReferencedLibrary) { super(expressID, Location, Identification, Name); this.Location = Location; this.Identification = Identification; this.Name = Name; this.Description = Description; this.Language = Language; this.ReferencedLibrary = ReferencedLibrary; this.type = 3452421091; } } IFC4_32.IfcLibraryReference = IfcLibraryReference; class IfcLightDistributionData extends IfcLineObject { constructor(expressID, MainPlaneAngle, SecondaryPlaneAngle, LuminousIntensity) { super(expressID); this.MainPlaneAngle = MainPlaneAngle; this.SecondaryPlaneAngle = SecondaryPlaneAngle; this.LuminousIntensity = LuminousIntensity; this.type = 4162380809; } } IFC4_32.IfcLightDistributionData = IfcLightDistributionData; class IfcLightIntensityDistribution extends IfcLineObject { constructor(expressID, LightDistributionCurve, DistributionData) { super(expressID); this.LightDistributionCurve = LightDistributionCurve; this.DistributionData = DistributionData; this.type = 1566485204; } } IFC4_32.IfcLightIntensityDistribution = IfcLightIntensityDistribution; class IfcMapConversion extends IfcCoordinateOperation { constructor(expressID, SourceCRS, TargetCRS, Eastings, Northings, OrthogonalHeight, XAxisAbscissa, XAxisOrdinate, Scale, ScaleY, ScaleZ) { super(expressID, SourceCRS, TargetCRS); this.SourceCRS = SourceCRS; this.TargetCRS = TargetCRS; this.Eastings = Eastings; this.Northings = Northings; this.OrthogonalHeight = OrthogonalHeight; this.XAxisAbscissa = XAxisAbscissa; this.XAxisOrdinate = XAxisOrdinate; this.Scale = Scale; this.ScaleY = ScaleY; this.ScaleZ = ScaleZ; this.type = 3057273783; } } IFC4_32.IfcMapConversion = IfcMapConversion; class IfcMaterialClassificationRelationship extends IfcLineObject { constructor(expressID, MaterialClassifications, ClassifiedMaterial) { super(expressID); this.MaterialClassifications = MaterialClassifications; this.ClassifiedMaterial = ClassifiedMaterial; this.type = 1847130766; } } IFC4_32.IfcMaterialClassificationRelationship = IfcMaterialClassificationRelationship; class IfcMaterialDefinition extends IfcLineObject { constructor(expressID) { super(expressID); this.type = 760658860; } } IFC4_32.IfcMaterialDefinition = IfcMaterialDefinition; class IfcMaterialLayer extends IfcMaterialDefinition { constructor(expressID, Material, LayerThickness, IsVentilated, Name, Description, Category, Priority) { super(expressID); this.Material = Material; this.LayerThickness = LayerThickness; this.IsVentilated = IsVentilated; this.Name = Name; this.Description = Description; this.Category = Category; this.Priority = Priority; this.type = 248100487; } } IFC4_32.IfcMaterialLayer = IfcMaterialLayer; class IfcMaterialLayerSet extends IfcMaterialDefinition { constructor(expressID, MaterialLayers, LayerSetName, Description) { super(expressID); this.MaterialLayers = MaterialLayers; this.LayerSetName = LayerSetName; this.Description = Description; this.type = 3303938423; } } IFC4_32.IfcMaterialLayerSet = IfcMaterialLayerSet; class IfcMaterialLayerWithOffsets extends IfcMaterialLayer { constructor(expressID, Material, LayerThickness, IsVentilated, Name, Description, Category, Priority, OffsetDirection, OffsetValues) { super(expressID, Material, LayerThickness, IsVentilated, Name, Description, Category, Priority); this.Material = Material; this.LayerThickness = LayerThickness; this.IsVentilated = IsVentilated; this.Name = Name; this.Description = Description; this.Category = Category; this.Priority = Priority; this.OffsetDirection = OffsetDirection; this.OffsetValues = OffsetValues; this.type = 1847252529; } } IFC4_32.IfcMaterialLayerWithOffsets = IfcMaterialLayerWithOffsets; class IfcMaterialList extends IfcLineObject { constructor(expressID, Materials) { super(expressID); this.Materials = Materials; this.type = 2199411900; } } IFC4_32.IfcMaterialList = IfcMaterialList; class IfcMaterialProfile extends IfcMaterialDefinition { constructor(expressID, Name, Description, Material, Profile, Priority, Category) { super(expressID); this.Name = Name; this.Description = Description; this.Material = Material; this.Profile = Profile; this.Priority = Priority; this.Category = Category; this.type = 2235152071; } } IFC4_32.IfcMaterialProfile = IfcMaterialProfile; class IfcMaterialProfileSet extends IfcMaterialDefinition { constructor(expressID, Name, Description, MaterialProfiles, CompositeProfile) { super(expressID); this.Name = Name; this.Description = Description; this.MaterialProfiles = MaterialProfiles; this.CompositeProfile = CompositeProfile; this.type = 164193824; } } IFC4_32.IfcMaterialProfileSet = IfcMaterialProfileSet; class IfcMaterialProfileWithOffsets extends IfcMaterialProfile { constructor(expressID, Name, Description, Material, Profile, Priority, Category, OffsetValues) { super(expressID, Name, Description, Material, Profile, Priority, Category); this.Name = Name; this.Description = Description; this.Material = Material; this.Profile = Profile; this.Priority = Priority; this.Category = Category; this.OffsetValues = OffsetValues; this.type = 552965576; } } IFC4_32.IfcMaterialProfileWithOffsets = IfcMaterialProfileWithOffsets; class IfcMaterialUsageDefinition extends IfcLineObject { constructor(expressID) { super(expressID); this.type = 1507914824; } } IFC4_32.IfcMaterialUsageDefinition = IfcMaterialUsageDefinition; class IfcMeasureWithUnit extends IfcLineObject { constructor(expressID, ValueComponent, UnitComponent) { super(expressID); this.ValueComponent = ValueComponent; this.UnitComponent = UnitComponent; this.type = 2597039031; } } IFC4_32.IfcMeasureWithUnit = IfcMeasureWithUnit; class IfcMetric extends IfcConstraint { constructor(expressID, Name, Description, ConstraintGrade, ConstraintSource, CreatingActor, CreationTime, UserDefinedGrade, Benchmark, ValueSource, DataValue, ReferencePath) { super(expressID, Name, Description, ConstraintGrade, ConstraintSource, CreatingActor, CreationTime, UserDefinedGrade); this.Name = Name; this.Description = Description; this.ConstraintGrade = ConstraintGrade; this.ConstraintSource = ConstraintSource; this.CreatingActor = CreatingActor; this.CreationTime = CreationTime; this.UserDefinedGrade = UserDefinedGrade; this.Benchmark = Benchmark; this.ValueSource = ValueSource; this.DataValue = DataValue; this.ReferencePath = ReferencePath; this.type = 3368373690; } } IFC4_32.IfcMetric = IfcMetric; class IfcMonetaryUnit extends IfcLineObject { constructor(expressID, Currency) { super(expressID); this.Currency = Currency; this.type = 2706619895; } } IFC4_32.IfcMonetaryUnit = IfcMonetaryUnit; class IfcNamedUnit extends IfcLineObject { constructor(expressID, Dimensions, UnitType) { super(expressID); this.Dimensions = Dimensions; this.UnitType = UnitType; this.type = 1918398963; } } IFC4_32.IfcNamedUnit = IfcNamedUnit; class IfcObjectPlacement extends IfcLineObject { constructor(expressID, PlacementRelTo) { super(expressID); this.PlacementRelTo = PlacementRelTo; this.type = 3701648758; } } IFC4_32.IfcObjectPlacement = IfcObjectPlacement; class IfcObjective extends IfcConstraint { constructor(expressID, Name, Description, ConstraintGrade, ConstraintSource, CreatingActor, CreationTime, UserDefinedGrade, BenchmarkValues, LogicalAggregator, ObjectiveQualifier, UserDefinedQualifier) { super(expressID, Name, Description, ConstraintGrade, ConstraintSource, CreatingActor, CreationTime, UserDefinedGrade); this.Name = Name; this.Description = Description; this.ConstraintGrade = ConstraintGrade; this.ConstraintSource = ConstraintSource; this.CreatingActor = CreatingActor; this.CreationTime = CreationTime; this.UserDefinedGrade = UserDefinedGrade; this.BenchmarkValues = BenchmarkValues; this.LogicalAggregator = LogicalAggregator; this.ObjectiveQualifier = ObjectiveQualifier; this.UserDefinedQualifier = UserDefinedQualifier; this.type = 2251480897; } } IFC4_32.IfcObjective = IfcObjective; class IfcOrganization extends IfcLineObject { constructor(expressID, Identification, Name, Description, Roles, Addresses) { super(expressID); this.Identification = Identification; this.Name = Name; this.Description = Description; this.Roles = Roles; this.Addresses = Addresses; this.type = 4251960020; } } IFC4_32.IfcOrganization = IfcOrganization; class IfcOwnerHistory extends IfcLineObject { constructor(expressID, OwningUser, OwningApplication, State, ChangeAction, LastModifiedDate, LastModifyingUser, LastModifyingApplication, CreationDate) { super(expressID); this.OwningUser = OwningUser; this.OwningApplication = OwningApplication; this.State = State; this.ChangeAction = ChangeAction; this.LastModifiedDate = LastModifiedDate; this.LastModifyingUser = LastModifyingUser; this.LastModifyingApplication = LastModifyingApplication; this.CreationDate = CreationDate; this.type = 1207048766; } } IFC4_32.IfcOwnerHistory = IfcOwnerHistory; class IfcPerson extends IfcLineObject { constructor(expressID, Identification, FamilyName, GivenName, MiddleNames, PrefixTitles, SuffixTitles, Roles, Addresses) { super(expressID); this.Identification = Identification; this.FamilyName = FamilyName; this.GivenName = GivenName; this.MiddleNames = MiddleNames; this.PrefixTitles = PrefixTitles; this.SuffixTitles = SuffixTitles; this.Roles = Roles; this.Addresses = Addresses; this.type = 2077209135; } } IFC4_32.IfcPerson = IfcPerson; class IfcPersonAndOrganization extends IfcLineObject { constructor(expressID, ThePerson, TheOrganization, Roles) { super(expressID); this.ThePerson = ThePerson; this.TheOrganization = TheOrganization; this.Roles = Roles; this.type = 101040310; } } IFC4_32.IfcPersonAndOrganization = IfcPersonAndOrganization; class IfcPhysicalQuantity extends IfcLineObject { constructor(expressID, Name, Description) { super(expressID); this.Name = Name; this.Description = Description; this.type = 2483315170; } } IFC4_32.IfcPhysicalQuantity = IfcPhysicalQuantity; class IfcPhysicalSimpleQuantity extends IfcPhysicalQuantity { constructor(expressID, Name, Description, Unit) { super(expressID, Name, Description); this.Name = Name; this.Description = Description; this.Unit = Unit; this.type = 2226359599; } } IFC4_32.IfcPhysicalSimpleQuantity = IfcPhysicalSimpleQuantity; class IfcPostalAddress extends IfcAddress { constructor(expressID, Purpose, Description, UserDefinedPurpose, InternalLocation, AddressLines, PostalBox, Town, Region, PostalCode, Country) { super(expressID, Purpose, Description, UserDefinedPurpose); this.Purpose = Purpose; this.Description = Description; this.UserDefinedPurpose = UserDefinedPurpose; this.InternalLocation = InternalLocation; this.AddressLines = AddressLines; this.PostalBox = PostalBox; this.Town = Town; this.Region = Region; this.PostalCode = PostalCode; this.Country = Country; this.type = 3355820592; } } IFC4_32.IfcPostalAddress = IfcPostalAddress; class IfcPresentationItem extends IfcLineObject { constructor(expressID) { super(expressID); this.type = 677532197; } } IFC4_32.IfcPresentationItem = IfcPresentationItem; class IfcPresentationLayerAssignment extends IfcLineObject { constructor(expressID, Name, Description, AssignedItems, Identifier) { super(expressID); this.Name = Name; this.Description = Description; this.AssignedItems = AssignedItems; this.Identifier = Identifier; this.type = 2022622350; } } IFC4_32.IfcPresentationLayerAssignment = IfcPresentationLayerAssignment; class IfcPresentationLayerWithStyle extends IfcPresentationLayerAssignment { constructor(expressID, Name, Description, AssignedItems, Identifier, LayerOn, LayerFrozen, LayerBlocked, LayerStyles) { super(expressID, Name, Description, AssignedItems, Identifier); this.Name = Name; this.Description = Description; this.AssignedItems = AssignedItems; this.Identifier = Identifier; this.LayerOn = LayerOn; this.LayerFrozen = LayerFrozen; this.LayerBlocked = LayerBlocked; this.LayerStyles = LayerStyles; this.type = 1304840413; } } IFC4_32.IfcPresentationLayerWithStyle = IfcPresentationLayerWithStyle; class IfcPresentationStyle extends IfcLineObject { constructor(expressID, Name) { super(expressID); this.Name = Name; this.type = 3119450353; } } IFC4_32.IfcPresentationStyle = IfcPresentationStyle; class IfcProductRepresentation extends IfcLineObject { constructor(expressID, Name, Description, Representations) { super(expressID); this.Name = Name; this.Description = Description; this.Representations = Representations; this.type = 2095639259; } } IFC4_32.IfcProductRepresentation = IfcProductRepresentation; class IfcProfileDef extends IfcLineObject { constructor(expressID, ProfileType, ProfileName) { super(expressID); this.ProfileType = ProfileType; this.ProfileName = ProfileName; this.type = 3958567839; } } IFC4_32.IfcProfileDef = IfcProfileDef; class IfcProjectedCRS extends IfcCoordinateReferenceSystem { constructor(expressID, Name, Description, GeodeticDatum, VerticalDatum, MapProjection, MapZone, MapUnit) { super(expressID, Name, Description, GeodeticDatum, VerticalDatum); this.Name = Name; this.Description = Description; this.GeodeticDatum = GeodeticDatum; this.VerticalDatum = VerticalDatum; this.MapProjection = MapProjection; this.MapZone = MapZone; this.MapUnit = MapUnit; this.type = 3843373140; } } IFC4_32.IfcProjectedCRS = IfcProjectedCRS; class IfcPropertyAbstraction extends IfcLineObject { constructor(expressID) { super(expressID); this.type = 986844984; } } IFC4_32.IfcPropertyAbstraction = IfcPropertyAbstraction; class IfcPropertyEnumeration extends IfcPropertyAbstraction { constructor(expressID, Name, EnumerationValues, Unit) { super(expressID); this.Name = Name; this.EnumerationValues = EnumerationValues; this.Unit = Unit; this.type = 3710013099; } } IFC4_32.IfcPropertyEnumeration = IfcPropertyEnumeration; class IfcQuantityArea extends IfcPhysicalSimpleQuantity { constructor(expressID, Name, Description, Unit, AreaValue, Formula) { super(expressID, Name, Description, Unit); this.Name = Name; this.Description = Description; this.Unit = Unit; this.AreaValue = AreaValue; this.Formula = Formula; this.type = 2044713172; } } IFC4_32.IfcQuantityArea = IfcQuantityArea; class IfcQuantityCount extends IfcPhysicalSimpleQuantity { constructor(expressID, Name, Description, Unit, CountValue, Formula) { super(expressID, Name, Description, Unit); this.Name = Name; this.Description = Description; this.Unit = Unit; this.CountValue = CountValue; this.Formula = Formula; this.type = 2093928680; } } IFC4_32.IfcQuantityCount = IfcQuantityCount; class IfcQuantityLength extends IfcPhysicalSimpleQuantity { constructor(expressID, Name, Description, Unit, LengthValue, Formula) { super(expressID, Name, Description, Unit); this.Name = Name; this.Description = Description; this.Unit = Unit; this.LengthValue = LengthValue; this.Formula = Formula; this.type = 931644368; } } IFC4_32.IfcQuantityLength = IfcQuantityLength; class IfcQuantityNumber extends IfcPhysicalSimpleQuantity { constructor(expressID, Name, Description, Unit, NumberValue, Formula) { super(expressID, Name, Description, Unit); this.Name = Name; this.Description = Description; this.Unit = Unit; this.NumberValue = NumberValue; this.Formula = Formula; this.type = 2691318326; } } IFC4_32.IfcQuantityNumber = IfcQuantityNumber; class IfcQuantityTime extends IfcPhysicalSimpleQuantity { constructor(expressID, Name, Description, Unit, TimeValue, Formula) { super(expressID, Name, Description, Unit); this.Name = Name; this.Description = Description; this.Unit = Unit; this.TimeValue = TimeValue; this.Formula = Formula; this.type = 3252649465; } } IFC4_32.IfcQuantityTime = IfcQuantityTime; class IfcQuantityVolume extends IfcPhysicalSimpleQuantity { constructor(expressID, Name, Description, Unit, VolumeValue, Formula) { super(expressID, Name, Description, Unit); this.Name = Name; this.Description = Description; this.Unit = Unit; this.VolumeValue = VolumeValue; this.Formula = Formula; this.type = 2405470396; } } IFC4_32.IfcQuantityVolume = IfcQuantityVolume; class IfcQuantityWeight extends IfcPhysicalSimpleQuantity { constructor(expressID, Name, Description, Unit, WeightValue, Formula) { super(expressID, Name, Description, Unit); this.Name = Name; this.Description = Description; this.Unit = Unit; this.WeightValue = WeightValue; this.Formula = Formula; this.type = 825690147; } } IFC4_32.IfcQuantityWeight = IfcQuantityWeight; class IfcRecurrencePattern extends IfcLineObject { constructor(expressID, RecurrenceType, DayComponent, WeekdayComponent, MonthComponent, Position, Interval, Occurrences, TimePeriods) { super(expressID); this.RecurrenceType = RecurrenceType; this.DayComponent = DayComponent; this.WeekdayComponent = WeekdayComponent; this.MonthComponent = MonthComponent; this.Position = Position; this.Interval = Interval; this.Occurrences = Occurrences; this.TimePeriods = TimePeriods; this.type = 3915482550; } } IFC4_32.IfcRecurrencePattern = IfcRecurrencePattern; class IfcReference extends IfcLineObject { constructor(expressID, TypeIdentifier, AttributeIdentifier, InstanceName, ListPositions, InnerReference) { super(expressID); this.TypeIdentifier = TypeIdentifier; this.AttributeIdentifier = AttributeIdentifier; this.InstanceName = InstanceName; this.ListPositions = ListPositions; this.InnerReference = InnerReference; this.type = 2433181523; } } IFC4_32.IfcReference = IfcReference; class IfcRepresentation extends IfcLineObject { constructor(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items) { super(expressID); this.ContextOfItems = ContextOfItems; this.RepresentationIdentifier = RepresentationIdentifier; this.RepresentationType = RepresentationType; this.Items = Items; this.type = 1076942058; } } IFC4_32.IfcRepresentation = IfcRepresentation; class IfcRepresentationContext extends IfcLineObject { constructor(expressID, ContextIdentifier, ContextType) { super(expressID); this.ContextIdentifier = ContextIdentifier; this.ContextType = ContextType; this.type = 3377609919; } } IFC4_32.IfcRepresentationContext = IfcRepresentationContext; class IfcRepresentationItem extends IfcLineObject { constructor(expressID) { super(expressID); this.type = 3008791417; } } IFC4_32.IfcRepresentationItem = IfcRepresentationItem; class IfcRepresentationMap extends IfcLineObject { constructor(expressID, MappingOrigin, MappedRepresentation) { super(expressID); this.MappingOrigin = MappingOrigin; this.MappedRepresentation = MappedRepresentation; this.type = 1660063152; } } IFC4_32.IfcRepresentationMap = IfcRepresentationMap; class IfcResourceLevelRelationship extends IfcLineObject { constructor(expressID, Name, Description) { super(expressID); this.Name = Name; this.Description = Description; this.type = 2439245199; } } IFC4_32.IfcResourceLevelRelationship = IfcResourceLevelRelationship; class IfcRoot extends IfcLineObject { constructor(expressID, GlobalId, OwnerHistory, Name, Description) { super(expressID); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.type = 2341007311; } } IFC4_32.IfcRoot = IfcRoot; class IfcSIUnit extends IfcNamedUnit { constructor(expressID, Dimensions, UnitType, Prefix, Name) { super(expressID, Dimensions, UnitType); this.Dimensions = Dimensions; this.UnitType = UnitType; this.Prefix = Prefix; this.Name = Name; this.type = 448429030; } } IFC4_32.IfcSIUnit = IfcSIUnit; class IfcSchedulingTime extends IfcLineObject { constructor(expressID, Name, DataOrigin, UserDefinedDataOrigin) { super(expressID); this.Name = Name; this.DataOrigin = DataOrigin; this.UserDefinedDataOrigin = UserDefinedDataOrigin; this.type = 1054537805; } } IFC4_32.IfcSchedulingTime = IfcSchedulingTime; class IfcShapeAspect extends IfcLineObject { constructor(expressID, ShapeRepresentations, Name, Description, ProductDefinitional, PartOfProductDefinitionShape) { super(expressID); this.ShapeRepresentations = ShapeRepresentations; this.Name = Name; this.Description = Description; this.ProductDefinitional = ProductDefinitional; this.PartOfProductDefinitionShape = PartOfProductDefinitionShape; this.type = 867548509; } } IFC4_32.IfcShapeAspect = IfcShapeAspect; class IfcShapeModel extends IfcRepresentation { constructor(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items) { super(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items); this.ContextOfItems = ContextOfItems; this.RepresentationIdentifier = RepresentationIdentifier; this.RepresentationType = RepresentationType; this.Items = Items; this.type = 3982875396; } } IFC4_32.IfcShapeModel = IfcShapeModel; class IfcShapeRepresentation extends IfcShapeModel { constructor(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items) { super(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items); this.ContextOfItems = ContextOfItems; this.RepresentationIdentifier = RepresentationIdentifier; this.RepresentationType = RepresentationType; this.Items = Items; this.type = 4240577450; } } IFC4_32.IfcShapeRepresentation = IfcShapeRepresentation; class IfcStructuralConnectionCondition extends IfcLineObject { constructor(expressID, Name) { super(expressID); this.Name = Name; this.type = 2273995522; } } IFC4_32.IfcStructuralConnectionCondition = IfcStructuralConnectionCondition; class IfcStructuralLoad extends IfcLineObject { constructor(expressID, Name) { super(expressID); this.Name = Name; this.type = 2162789131; } } IFC4_32.IfcStructuralLoad = IfcStructuralLoad; class IfcStructuralLoadConfiguration extends IfcStructuralLoad { constructor(expressID, Name, Values, Locations) { super(expressID, Name); this.Name = Name; this.Values = Values; this.Locations = Locations; this.type = 3478079324; } } IFC4_32.IfcStructuralLoadConfiguration = IfcStructuralLoadConfiguration; class IfcStructuralLoadOrResult extends IfcStructuralLoad { constructor(expressID, Name) { super(expressID, Name); this.Name = Name; this.type = 609421318; } } IFC4_32.IfcStructuralLoadOrResult = IfcStructuralLoadOrResult; class IfcStructuralLoadStatic extends IfcStructuralLoadOrResult { constructor(expressID, Name) { super(expressID, Name); this.Name = Name; this.type = 2525727697; } } IFC4_32.IfcStructuralLoadStatic = IfcStructuralLoadStatic; class IfcStructuralLoadTemperature extends IfcStructuralLoadStatic { constructor(expressID, Name, DeltaTConstant, DeltaTY, DeltaTZ) { super(expressID, Name); this.Name = Name; this.DeltaTConstant = DeltaTConstant; this.DeltaTY = DeltaTY; this.DeltaTZ = DeltaTZ; this.type = 3408363356; } } IFC4_32.IfcStructuralLoadTemperature = IfcStructuralLoadTemperature; class IfcStyleModel extends IfcRepresentation { constructor(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items) { super(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items); this.ContextOfItems = ContextOfItems; this.RepresentationIdentifier = RepresentationIdentifier; this.RepresentationType = RepresentationType; this.Items = Items; this.type = 2830218821; } } IFC4_32.IfcStyleModel = IfcStyleModel; class IfcStyledItem extends IfcRepresentationItem { constructor(expressID, Item, Styles, Name) { super(expressID); this.Item = Item; this.Styles = Styles; this.Name = Name; this.type = 3958052878; } } IFC4_32.IfcStyledItem = IfcStyledItem; class IfcStyledRepresentation extends IfcStyleModel { constructor(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items) { super(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items); this.ContextOfItems = ContextOfItems; this.RepresentationIdentifier = RepresentationIdentifier; this.RepresentationType = RepresentationType; this.Items = Items; this.type = 3049322572; } } IFC4_32.IfcStyledRepresentation = IfcStyledRepresentation; class IfcSurfaceReinforcementArea extends IfcStructuralLoadOrResult { constructor(expressID, Name, SurfaceReinforcement1, SurfaceReinforcement2, ShearReinforcement) { super(expressID, Name); this.Name = Name; this.SurfaceReinforcement1 = SurfaceReinforcement1; this.SurfaceReinforcement2 = SurfaceReinforcement2; this.ShearReinforcement = ShearReinforcement; this.type = 2934153892; } } IFC4_32.IfcSurfaceReinforcementArea = IfcSurfaceReinforcementArea; class IfcSurfaceStyle extends IfcPresentationStyle { constructor(expressID, Name, Side, Styles) { super(expressID, Name); this.Name = Name; this.Side = Side; this.Styles = Styles; this.type = 1300840506; } } IFC4_32.IfcSurfaceStyle = IfcSurfaceStyle; class IfcSurfaceStyleLighting extends IfcPresentationItem { constructor(expressID, DiffuseTransmissionColour, DiffuseReflectionColour, TransmissionColour, ReflectanceColour) { super(expressID); this.DiffuseTransmissionColour = DiffuseTransmissionColour; this.DiffuseReflectionColour = DiffuseReflectionColour; this.TransmissionColour = TransmissionColour; this.ReflectanceColour = ReflectanceColour; this.type = 3303107099; } } IFC4_32.IfcSurfaceStyleLighting = IfcSurfaceStyleLighting; class IfcSurfaceStyleRefraction extends IfcPresentationItem { constructor(expressID, RefractionIndex, DispersionFactor) { super(expressID); this.RefractionIndex = RefractionIndex; this.DispersionFactor = DispersionFactor; this.type = 1607154358; } } IFC4_32.IfcSurfaceStyleRefraction = IfcSurfaceStyleRefraction; class IfcSurfaceStyleShading extends IfcPresentationItem { constructor(expressID, SurfaceColour, Transparency) { super(expressID); this.SurfaceColour = SurfaceColour; this.Transparency = Transparency; this.type = 846575682; } } IFC4_32.IfcSurfaceStyleShading = IfcSurfaceStyleShading; class IfcSurfaceStyleWithTextures extends IfcPresentationItem { constructor(expressID, Textures) { super(expressID); this.Textures = Textures; this.type = 1351298697; } } IFC4_32.IfcSurfaceStyleWithTextures = IfcSurfaceStyleWithTextures; class IfcSurfaceTexture extends IfcPresentationItem { constructor(expressID, RepeatS, RepeatT, Mode, TextureTransform, Parameter) { super(expressID); this.RepeatS = RepeatS; this.RepeatT = RepeatT; this.Mode = Mode; this.TextureTransform = TextureTransform; this.Parameter = Parameter; this.type = 626085974; } } IFC4_32.IfcSurfaceTexture = IfcSurfaceTexture; class IfcTable extends IfcLineObject { constructor(expressID, Name, Rows, Columns) { super(expressID); this.Name = Name; this.Rows = Rows; this.Columns = Columns; this.type = 985171141; } } IFC4_32.IfcTable = IfcTable; class IfcTableColumn extends IfcLineObject { constructor(expressID, Identifier, Name, Description, Unit, ReferencePath) { super(expressID); this.Identifier = Identifier; this.Name = Name; this.Description = Description; this.Unit = Unit; this.ReferencePath = ReferencePath; this.type = 2043862942; } } IFC4_32.IfcTableColumn = IfcTableColumn; class IfcTableRow extends IfcLineObject { constructor(expressID, RowCells, IsHeading) { super(expressID); this.RowCells = RowCells; this.IsHeading = IsHeading; this.type = 531007025; } } IFC4_32.IfcTableRow = IfcTableRow; class IfcTaskTime extends IfcSchedulingTime { constructor(expressID, Name, DataOrigin, UserDefinedDataOrigin, DurationType, ScheduleDuration, ScheduleStart, ScheduleFinish, EarlyStart, EarlyFinish, LateStart, LateFinish, FreeFloat, TotalFloat, IsCritical, StatusTime, ActualDuration, ActualStart, ActualFinish, RemainingTime, Completion) { super(expressID, Name, DataOrigin, UserDefinedDataOrigin); this.Name = Name; this.DataOrigin = DataOrigin; this.UserDefinedDataOrigin = UserDefinedDataOrigin; this.DurationType = DurationType; this.ScheduleDuration = ScheduleDuration; this.ScheduleStart = ScheduleStart; this.ScheduleFinish = ScheduleFinish; this.EarlyStart = EarlyStart; this.EarlyFinish = EarlyFinish; this.LateStart = LateStart; this.LateFinish = LateFinish; this.FreeFloat = FreeFloat; this.TotalFloat = TotalFloat; this.IsCritical = IsCritical; this.StatusTime = StatusTime; this.ActualDuration = ActualDuration; this.ActualStart = ActualStart; this.ActualFinish = ActualFinish; this.RemainingTime = RemainingTime; this.Completion = Completion; this.type = 1549132990; } } IFC4_32.IfcTaskTime = IfcTaskTime; class IfcTaskTimeRecurring extends IfcTaskTime { constructor(expressID, Name, DataOrigin, UserDefinedDataOrigin, DurationType, ScheduleDuration, ScheduleStart, ScheduleFinish, EarlyStart, EarlyFinish, LateStart, LateFinish, FreeFloat, TotalFloat, IsCritical, StatusTime, ActualDuration, ActualStart, ActualFinish, RemainingTime, Completion, Recurrence) { super(expressID, Name, DataOrigin, UserDefinedDataOrigin, DurationType, ScheduleDuration, ScheduleStart, ScheduleFinish, EarlyStart, EarlyFinish, LateStart, LateFinish, FreeFloat, TotalFloat, IsCritical, StatusTime, ActualDuration, ActualStart, ActualFinish, RemainingTime, Completion); this.Name = Name; this.DataOrigin = DataOrigin; this.UserDefinedDataOrigin = UserDefinedDataOrigin; this.DurationType = DurationType; this.ScheduleDuration = ScheduleDuration; this.ScheduleStart = ScheduleStart; this.ScheduleFinish = ScheduleFinish; this.EarlyStart = EarlyStart; this.EarlyFinish = EarlyFinish; this.LateStart = LateStart; this.LateFinish = LateFinish; this.FreeFloat = FreeFloat; this.TotalFloat = TotalFloat; this.IsCritical = IsCritical; this.StatusTime = StatusTime; this.ActualDuration = ActualDuration; this.ActualStart = ActualStart; this.ActualFinish = ActualFinish; this.RemainingTime = RemainingTime; this.Completion = Completion; this.Recurrence = Recurrence; this.type = 2771591690; } } IFC4_32.IfcTaskTimeRecurring = IfcTaskTimeRecurring; class IfcTelecomAddress extends IfcAddress { constructor(expressID, Purpose, Description, UserDefinedPurpose, TelephoneNumbers, FacsimileNumbers, PagerNumber, ElectronicMailAddresses, WWWHomePageURL, MessagingIDs) { super(expressID, Purpose, Description, UserDefinedPurpose); this.Purpose = Purpose; this.Description = Description; this.UserDefinedPurpose = UserDefinedPurpose; this.TelephoneNumbers = TelephoneNumbers; this.FacsimileNumbers = FacsimileNumbers; this.PagerNumber = PagerNumber; this.ElectronicMailAddresses = ElectronicMailAddresses; this.WWWHomePageURL = WWWHomePageURL; this.MessagingIDs = MessagingIDs; this.type = 912023232; } } IFC4_32.IfcTelecomAddress = IfcTelecomAddress; class IfcTextStyle extends IfcPresentationStyle { constructor(expressID, Name, TextCharacterAppearance, TextStyle, TextFontStyle, ModelOrDraughting) { super(expressID, Name); this.Name = Name; this.TextCharacterAppearance = TextCharacterAppearance; this.TextStyle = TextStyle; this.TextFontStyle = TextFontStyle; this.ModelOrDraughting = ModelOrDraughting; this.type = 1447204868; } } IFC4_32.IfcTextStyle = IfcTextStyle; class IfcTextStyleForDefinedFont extends IfcPresentationItem { constructor(expressID, Colour, BackgroundColour) { super(expressID); this.Colour = Colour; this.BackgroundColour = BackgroundColour; this.type = 2636378356; } } IFC4_32.IfcTextStyleForDefinedFont = IfcTextStyleForDefinedFont; class IfcTextStyleTextModel extends IfcPresentationItem { constructor(expressID, TextIndent, TextAlign, TextDecoration, LetterSpacing, WordSpacing, TextTransform, LineHeight) { super(expressID); this.TextIndent = TextIndent; this.TextAlign = TextAlign; this.TextDecoration = TextDecoration; this.LetterSpacing = LetterSpacing; this.WordSpacing = WordSpacing; this.TextTransform = TextTransform; this.LineHeight = LineHeight; this.type = 1640371178; } } IFC4_32.IfcTextStyleTextModel = IfcTextStyleTextModel; class IfcTextureCoordinate extends IfcPresentationItem { constructor(expressID, Maps) { super(expressID); this.Maps = Maps; this.type = 280115917; } } IFC4_32.IfcTextureCoordinate = IfcTextureCoordinate; class IfcTextureCoordinateGenerator extends IfcTextureCoordinate { constructor(expressID, Maps, Mode, Parameter) { super(expressID, Maps); this.Maps = Maps; this.Mode = Mode; this.Parameter = Parameter; this.type = 1742049831; } } IFC4_32.IfcTextureCoordinateGenerator = IfcTextureCoordinateGenerator; class IfcTextureCoordinateIndices extends IfcLineObject { constructor(expressID, TexCoordIndex, TexCoordsOf) { super(expressID); this.TexCoordIndex = TexCoordIndex; this.TexCoordsOf = TexCoordsOf; this.type = 222769930; } } IFC4_32.IfcTextureCoordinateIndices = IfcTextureCoordinateIndices; class IfcTextureCoordinateIndicesWithVoids extends IfcTextureCoordinateIndices { constructor(expressID, TexCoordIndex, TexCoordsOf, InnerTexCoordIndices) { super(expressID, TexCoordIndex, TexCoordsOf); this.TexCoordIndex = TexCoordIndex; this.TexCoordsOf = TexCoordsOf; this.InnerTexCoordIndices = InnerTexCoordIndices; this.type = 1010789467; } } IFC4_32.IfcTextureCoordinateIndicesWithVoids = IfcTextureCoordinateIndicesWithVoids; class IfcTextureMap extends IfcTextureCoordinate { constructor(expressID, Maps, Vertices, MappedTo) { super(expressID, Maps); this.Maps = Maps; this.Vertices = Vertices; this.MappedTo = MappedTo; this.type = 2552916305; } } IFC4_32.IfcTextureMap = IfcTextureMap; class IfcTextureVertex extends IfcPresentationItem { constructor(expressID, Coordinates) { super(expressID); this.Coordinates = Coordinates; this.type = 1210645708; } } IFC4_32.IfcTextureVertex = IfcTextureVertex; class IfcTextureVertexList extends IfcPresentationItem { constructor(expressID, TexCoordsList) { super(expressID); this.TexCoordsList = TexCoordsList; this.type = 3611470254; } } IFC4_32.IfcTextureVertexList = IfcTextureVertexList; class IfcTimePeriod extends IfcLineObject { constructor(expressID, StartTime, EndTime) { super(expressID); this.StartTime = StartTime; this.EndTime = EndTime; this.type = 1199560280; } } IFC4_32.IfcTimePeriod = IfcTimePeriod; class IfcTimeSeries extends IfcLineObject { constructor(expressID, Name, Description, StartTime, EndTime, TimeSeriesDataType, DataOrigin, UserDefinedDataOrigin, Unit) { super(expressID); this.Name = Name; this.Description = Description; this.StartTime = StartTime; this.EndTime = EndTime; this.TimeSeriesDataType = TimeSeriesDataType; this.DataOrigin = DataOrigin; this.UserDefinedDataOrigin = UserDefinedDataOrigin; this.Unit = Unit; this.type = 3101149627; } } IFC4_32.IfcTimeSeries = IfcTimeSeries; class IfcTimeSeriesValue extends IfcLineObject { constructor(expressID, ListValues) { super(expressID); this.ListValues = ListValues; this.type = 581633288; } } IFC4_32.IfcTimeSeriesValue = IfcTimeSeriesValue; class IfcTopologicalRepresentationItem extends IfcRepresentationItem { constructor(expressID) { super(expressID); this.type = 1377556343; } } IFC4_32.IfcTopologicalRepresentationItem = IfcTopologicalRepresentationItem; class IfcTopologyRepresentation extends IfcShapeModel { constructor(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items) { super(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items); this.ContextOfItems = ContextOfItems; this.RepresentationIdentifier = RepresentationIdentifier; this.RepresentationType = RepresentationType; this.Items = Items; this.type = 1735638870; } } IFC4_32.IfcTopologyRepresentation = IfcTopologyRepresentation; class IfcUnitAssignment extends IfcLineObject { constructor(expressID, Units) { super(expressID); this.Units = Units; this.type = 180925521; } } IFC4_32.IfcUnitAssignment = IfcUnitAssignment; class IfcVertex extends IfcTopologicalRepresentationItem { constructor(expressID) { super(expressID); this.type = 2799835756; } } IFC4_32.IfcVertex = IfcVertex; class IfcVertexPoint extends IfcVertex { constructor(expressID, VertexGeometry) { super(expressID); this.VertexGeometry = VertexGeometry; this.type = 1907098498; } } IFC4_32.IfcVertexPoint = IfcVertexPoint; class IfcVirtualGridIntersection extends IfcLineObject { constructor(expressID, IntersectingAxes, OffsetDistances) { super(expressID); this.IntersectingAxes = IntersectingAxes; this.OffsetDistances = OffsetDistances; this.type = 891718957; } } IFC4_32.IfcVirtualGridIntersection = IfcVirtualGridIntersection; class IfcWorkTime extends IfcSchedulingTime { constructor(expressID, Name, DataOrigin, UserDefinedDataOrigin, RecurrencePattern, StartDate, FinishDate) { super(expressID, Name, DataOrigin, UserDefinedDataOrigin); this.Name = Name; this.DataOrigin = DataOrigin; this.UserDefinedDataOrigin = UserDefinedDataOrigin; this.RecurrencePattern = RecurrencePattern; this.StartDate = StartDate; this.FinishDate = FinishDate; this.type = 1236880293; } } IFC4_32.IfcWorkTime = IfcWorkTime; class IfcAlignmentCantSegment extends IfcAlignmentParameterSegment { constructor(expressID, StartTag, EndTag, StartDistAlong, HorizontalLength, StartCantLeft, EndCantLeft, StartCantRight, EndCantRight, PredefinedType) { super(expressID, StartTag, EndTag); this.StartTag = StartTag; this.EndTag = EndTag; this.StartDistAlong = StartDistAlong; this.HorizontalLength = HorizontalLength; this.StartCantLeft = StartCantLeft; this.EndCantLeft = EndCantLeft; this.StartCantRight = StartCantRight; this.EndCantRight = EndCantRight; this.PredefinedType = PredefinedType; this.type = 3752311538; } } IFC4_32.IfcAlignmentCantSegment = IfcAlignmentCantSegment; class IfcAlignmentHorizontalSegment extends IfcAlignmentParameterSegment { constructor(expressID, StartTag, EndTag, StartPoint, StartDirection, StartRadiusOfCurvature, EndRadiusOfCurvature, SegmentLength, GravityCenterLineHeight, PredefinedType) { super(expressID, StartTag, EndTag); this.StartTag = StartTag; this.EndTag = EndTag; this.StartPoint = StartPoint; this.StartDirection = StartDirection; this.StartRadiusOfCurvature = StartRadiusOfCurvature; this.EndRadiusOfCurvature = EndRadiusOfCurvature; this.SegmentLength = SegmentLength; this.GravityCenterLineHeight = GravityCenterLineHeight; this.PredefinedType = PredefinedType; this.type = 536804194; } } IFC4_32.IfcAlignmentHorizontalSegment = IfcAlignmentHorizontalSegment; class IfcApprovalRelationship extends IfcResourceLevelRelationship { constructor(expressID, Name, Description, RelatingApproval, RelatedApprovals) { super(expressID, Name, Description); this.Name = Name; this.Description = Description; this.RelatingApproval = RelatingApproval; this.RelatedApprovals = RelatedApprovals; this.type = 3869604511; } } IFC4_32.IfcApprovalRelationship = IfcApprovalRelationship; class IfcArbitraryClosedProfileDef extends IfcProfileDef { constructor(expressID, ProfileType, ProfileName, OuterCurve) { super(expressID, ProfileType, ProfileName); this.ProfileType = ProfileType; this.ProfileName = ProfileName; this.OuterCurve = OuterCurve; this.type = 3798115385; } } IFC4_32.IfcArbitraryClosedProfileDef = IfcArbitraryClosedProfileDef; class IfcArbitraryOpenProfileDef extends IfcProfileDef { constructor(expressID, ProfileType, ProfileName, Curve) { super(expressID, ProfileType, ProfileName); this.ProfileType = ProfileType; this.ProfileName = ProfileName; this.Curve = Curve; this.type = 1310608509; } } IFC4_32.IfcArbitraryOpenProfileDef = IfcArbitraryOpenProfileDef; class IfcArbitraryProfileDefWithVoids extends IfcArbitraryClosedProfileDef { constructor(expressID, ProfileType, ProfileName, OuterCurve, InnerCurves) { super(expressID, ProfileType, ProfileName, OuterCurve); this.ProfileType = ProfileType; this.ProfileName = ProfileName; this.OuterCurve = OuterCurve; this.InnerCurves = InnerCurves; this.type = 2705031697; } } IFC4_32.IfcArbitraryProfileDefWithVoids = IfcArbitraryProfileDefWithVoids; class IfcBlobTexture extends IfcSurfaceTexture { constructor(expressID, RepeatS, RepeatT, Mode, TextureTransform, Parameter, RasterFormat, RasterCode) { super(expressID, RepeatS, RepeatT, Mode, TextureTransform, Parameter); this.RepeatS = RepeatS; this.RepeatT = RepeatT; this.Mode = Mode; this.TextureTransform = TextureTransform; this.Parameter = Parameter; this.RasterFormat = RasterFormat; this.RasterCode = RasterCode; this.type = 616511568; } } IFC4_32.IfcBlobTexture = IfcBlobTexture; class IfcCenterLineProfileDef extends IfcArbitraryOpenProfileDef { constructor(expressID, ProfileType, ProfileName, Curve, Thickness) { super(expressID, ProfileType, ProfileName, Curve); this.ProfileType = ProfileType; this.ProfileName = ProfileName; this.Curve = Curve; this.Thickness = Thickness; this.type = 3150382593; } } IFC4_32.IfcCenterLineProfileDef = IfcCenterLineProfileDef; class IfcClassification extends IfcExternalInformation { constructor(expressID, Source, Edition, EditionDate, Name, Description, Specification, ReferenceTokens) { super(expressID); this.Source = Source; this.Edition = Edition; this.EditionDate = EditionDate; this.Name = Name; this.Description = Description; this.Specification = Specification; this.ReferenceTokens = ReferenceTokens; this.type = 747523909; } } IFC4_32.IfcClassification = IfcClassification; class IfcClassificationReference extends IfcExternalReference { constructor(expressID, Location, Identification, Name, ReferencedSource, Description, Sort) { super(expressID, Location, Identification, Name); this.Location = Location; this.Identification = Identification; this.Name = Name; this.ReferencedSource = ReferencedSource; this.Description = Description; this.Sort = Sort; this.type = 647927063; } } IFC4_32.IfcClassificationReference = IfcClassificationReference; class IfcColourRgbList extends IfcPresentationItem { constructor(expressID, ColourList) { super(expressID); this.ColourList = ColourList; this.type = 3285139300; } } IFC4_32.IfcColourRgbList = IfcColourRgbList; class IfcColourSpecification extends IfcPresentationItem { constructor(expressID, Name) { super(expressID); this.Name = Name; this.type = 3264961684; } } IFC4_32.IfcColourSpecification = IfcColourSpecification; class IfcCompositeProfileDef extends IfcProfileDef { constructor(expressID, ProfileType, ProfileName, Profiles, Label) { super(expressID, ProfileType, ProfileName); this.ProfileType = ProfileType; this.ProfileName = ProfileName; this.Profiles = Profiles; this.Label = Label; this.type = 1485152156; } } IFC4_32.IfcCompositeProfileDef = IfcCompositeProfileDef; class IfcConnectedFaceSet extends IfcTopologicalRepresentationItem { constructor(expressID, CfsFaces) { super(expressID); this.CfsFaces = CfsFaces; this.type = 370225590; } } IFC4_32.IfcConnectedFaceSet = IfcConnectedFaceSet; class IfcConnectionCurveGeometry extends IfcConnectionGeometry { constructor(expressID, CurveOnRelatingElement, CurveOnRelatedElement) { super(expressID); this.CurveOnRelatingElement = CurveOnRelatingElement; this.CurveOnRelatedElement = CurveOnRelatedElement; this.type = 1981873012; } } IFC4_32.IfcConnectionCurveGeometry = IfcConnectionCurveGeometry; class IfcConnectionPointEccentricity extends IfcConnectionPointGeometry { constructor(expressID, PointOnRelatingElement, PointOnRelatedElement, EccentricityInX, EccentricityInY, EccentricityInZ) { super(expressID, PointOnRelatingElement, PointOnRelatedElement); this.PointOnRelatingElement = PointOnRelatingElement; this.PointOnRelatedElement = PointOnRelatedElement; this.EccentricityInX = EccentricityInX; this.EccentricityInY = EccentricityInY; this.EccentricityInZ = EccentricityInZ; this.type = 45288368; } } IFC4_32.IfcConnectionPointEccentricity = IfcConnectionPointEccentricity; class IfcContextDependentUnit extends IfcNamedUnit { constructor(expressID, Dimensions, UnitType, Name) { super(expressID, Dimensions, UnitType); this.Dimensions = Dimensions; this.UnitType = UnitType; this.Name = Name; this.type = 3050246964; } } IFC4_32.IfcContextDependentUnit = IfcContextDependentUnit; class IfcConversionBasedUnit extends IfcNamedUnit { constructor(expressID, Dimensions, UnitType, Name, ConversionFactor) { super(expressID, Dimensions, UnitType); this.Dimensions = Dimensions; this.UnitType = UnitType; this.Name = Name; this.ConversionFactor = ConversionFactor; this.type = 2889183280; } } IFC4_32.IfcConversionBasedUnit = IfcConversionBasedUnit; class IfcConversionBasedUnitWithOffset extends IfcConversionBasedUnit { constructor(expressID, Dimensions, UnitType, Name, ConversionFactor, ConversionOffset) { super(expressID, Dimensions, UnitType, Name, ConversionFactor); this.Dimensions = Dimensions; this.UnitType = UnitType; this.Name = Name; this.ConversionFactor = ConversionFactor; this.ConversionOffset = ConversionOffset; this.type = 2713554722; } } IFC4_32.IfcConversionBasedUnitWithOffset = IfcConversionBasedUnitWithOffset; class IfcCurrencyRelationship extends IfcResourceLevelRelationship { constructor(expressID, Name, Description, RelatingMonetaryUnit, RelatedMonetaryUnit, ExchangeRate, RateDateTime, RateSource) { super(expressID, Name, Description); this.Name = Name; this.Description = Description; this.RelatingMonetaryUnit = RelatingMonetaryUnit; this.RelatedMonetaryUnit = RelatedMonetaryUnit; this.ExchangeRate = ExchangeRate; this.RateDateTime = RateDateTime; this.RateSource = RateSource; this.type = 539742890; } } IFC4_32.IfcCurrencyRelationship = IfcCurrencyRelationship; class IfcCurveStyle extends IfcPresentationStyle { constructor(expressID, Name, CurveFont, CurveWidth, CurveColour, ModelOrDraughting) { super(expressID, Name); this.Name = Name; this.CurveFont = CurveFont; this.CurveWidth = CurveWidth; this.CurveColour = CurveColour; this.ModelOrDraughting = ModelOrDraughting; this.type = 3800577675; } } IFC4_32.IfcCurveStyle = IfcCurveStyle; class IfcCurveStyleFont extends IfcPresentationItem { constructor(expressID, Name, PatternList) { super(expressID); this.Name = Name; this.PatternList = PatternList; this.type = 1105321065; } } IFC4_32.IfcCurveStyleFont = IfcCurveStyleFont; class IfcCurveStyleFontAndScaling extends IfcPresentationItem { constructor(expressID, Name, CurveStyleFont, CurveFontScaling) { super(expressID); this.Name = Name; this.CurveStyleFont = CurveStyleFont; this.CurveFontScaling = CurveFontScaling; this.type = 2367409068; } } IFC4_32.IfcCurveStyleFontAndScaling = IfcCurveStyleFontAndScaling; class IfcCurveStyleFontPattern extends IfcPresentationItem { constructor(expressID, VisibleSegmentLength, InvisibleSegmentLength) { super(expressID); this.VisibleSegmentLength = VisibleSegmentLength; this.InvisibleSegmentLength = InvisibleSegmentLength; this.type = 3510044353; } } IFC4_32.IfcCurveStyleFontPattern = IfcCurveStyleFontPattern; class IfcDerivedProfileDef extends IfcProfileDef { constructor(expressID, ProfileType, ProfileName, ParentProfile, Operator, Label) { super(expressID, ProfileType, ProfileName); this.ProfileType = ProfileType; this.ProfileName = ProfileName; this.ParentProfile = ParentProfile; this.Operator = Operator; this.Label = Label; this.type = 3632507154; } } IFC4_32.IfcDerivedProfileDef = IfcDerivedProfileDef; class IfcDocumentInformation extends IfcExternalInformation { constructor(expressID, Identification, Name, Description, Location, Purpose, IntendedUse, Scope, Revision, DocumentOwner, Editors, CreationTime, LastRevisionTime, ElectronicFormat, ValidFrom, ValidUntil, Confidentiality, Status) { super(expressID); this.Identification = Identification; this.Name = Name; this.Description = Description; this.Location = Location; this.Purpose = Purpose; this.IntendedUse = IntendedUse; this.Scope = Scope; this.Revision = Revision; this.DocumentOwner = DocumentOwner; this.Editors = Editors; this.CreationTime = CreationTime; this.LastRevisionTime = LastRevisionTime; this.ElectronicFormat = ElectronicFormat; this.ValidFrom = ValidFrom; this.ValidUntil = ValidUntil; this.Confidentiality = Confidentiality; this.Status = Status; this.type = 1154170062; } } IFC4_32.IfcDocumentInformation = IfcDocumentInformation; class IfcDocumentInformationRelationship extends IfcResourceLevelRelationship { constructor(expressID, Name, Description, RelatingDocument, RelatedDocuments, RelationshipType) { super(expressID, Name, Description); this.Name = Name; this.Description = Description; this.RelatingDocument = RelatingDocument; this.RelatedDocuments = RelatedDocuments; this.RelationshipType = RelationshipType; this.type = 770865208; } } IFC4_32.IfcDocumentInformationRelationship = IfcDocumentInformationRelationship; class IfcDocumentReference extends IfcExternalReference { constructor(expressID, Location, Identification, Name, Description, ReferencedDocument) { super(expressID, Location, Identification, Name); this.Location = Location; this.Identification = Identification; this.Name = Name; this.Description = Description; this.ReferencedDocument = ReferencedDocument; this.type = 3732053477; } } IFC4_32.IfcDocumentReference = IfcDocumentReference; class IfcEdge extends IfcTopologicalRepresentationItem { constructor(expressID, EdgeStart, EdgeEnd) { super(expressID); this.EdgeStart = EdgeStart; this.EdgeEnd = EdgeEnd; this.type = 3900360178; } } IFC4_32.IfcEdge = IfcEdge; class IfcEdgeCurve extends IfcEdge { constructor(expressID, EdgeStart, EdgeEnd, EdgeGeometry, SameSense) { super(expressID, EdgeStart, EdgeEnd); this.EdgeStart = EdgeStart; this.EdgeEnd = EdgeEnd; this.EdgeGeometry = EdgeGeometry; this.SameSense = SameSense; this.type = 476780140; } } IFC4_32.IfcEdgeCurve = IfcEdgeCurve; class IfcEventTime extends IfcSchedulingTime { constructor(expressID, Name, DataOrigin, UserDefinedDataOrigin, ActualDate, EarlyDate, LateDate, ScheduleDate) { super(expressID, Name, DataOrigin, UserDefinedDataOrigin); this.Name = Name; this.DataOrigin = DataOrigin; this.UserDefinedDataOrigin = UserDefinedDataOrigin; this.ActualDate = ActualDate; this.EarlyDate = EarlyDate; this.LateDate = LateDate; this.ScheduleDate = ScheduleDate; this.type = 211053100; } } IFC4_32.IfcEventTime = IfcEventTime; class IfcExtendedProperties extends IfcPropertyAbstraction { constructor(expressID, Name, Description, Properties2) { super(expressID); this.Name = Name; this.Description = Description; this.Properties = Properties2; this.type = 297599258; } } IFC4_32.IfcExtendedProperties = IfcExtendedProperties; class IfcExternalReferenceRelationship extends IfcResourceLevelRelationship { constructor(expressID, Name, Description, RelatingReference, RelatedResourceObjects) { super(expressID, Name, Description); this.Name = Name; this.Description = Description; this.RelatingReference = RelatingReference; this.RelatedResourceObjects = RelatedResourceObjects; this.type = 1437805879; } } IFC4_32.IfcExternalReferenceRelationship = IfcExternalReferenceRelationship; class IfcFace extends IfcTopologicalRepresentationItem { constructor(expressID, Bounds) { super(expressID); this.Bounds = Bounds; this.type = 2556980723; } } IFC4_32.IfcFace = IfcFace; class IfcFaceBound extends IfcTopologicalRepresentationItem { constructor(expressID, Bound, Orientation) { super(expressID); this.Bound = Bound; this.Orientation = Orientation; this.type = 1809719519; } } IFC4_32.IfcFaceBound = IfcFaceBound; class IfcFaceOuterBound extends IfcFaceBound { constructor(expressID, Bound, Orientation) { super(expressID, Bound, Orientation); this.Bound = Bound; this.Orientation = Orientation; this.type = 803316827; } } IFC4_32.IfcFaceOuterBound = IfcFaceOuterBound; class IfcFaceSurface extends IfcFace { constructor(expressID, Bounds, FaceSurface, SameSense) { super(expressID, Bounds); this.Bounds = Bounds; this.FaceSurface = FaceSurface; this.SameSense = SameSense; this.type = 3008276851; } } IFC4_32.IfcFaceSurface = IfcFaceSurface; class IfcFailureConnectionCondition extends IfcStructuralConnectionCondition { constructor(expressID, Name, TensionFailureX, TensionFailureY, TensionFailureZ, CompressionFailureX, CompressionFailureY, CompressionFailureZ) { super(expressID, Name); this.Name = Name; this.TensionFailureX = TensionFailureX; this.TensionFailureY = TensionFailureY; this.TensionFailureZ = TensionFailureZ; this.CompressionFailureX = CompressionFailureX; this.CompressionFailureY = CompressionFailureY; this.CompressionFailureZ = CompressionFailureZ; this.type = 4219587988; } } IFC4_32.IfcFailureConnectionCondition = IfcFailureConnectionCondition; class IfcFillAreaStyle extends IfcPresentationStyle { constructor(expressID, Name, FillStyles, ModelOrDraughting) { super(expressID, Name); this.Name = Name; this.FillStyles = FillStyles; this.ModelOrDraughting = ModelOrDraughting; this.type = 738692330; } } IFC4_32.IfcFillAreaStyle = IfcFillAreaStyle; class IfcGeometricRepresentationContext extends IfcRepresentationContext { constructor(expressID, ContextIdentifier, ContextType, CoordinateSpaceDimension, Precision, WorldCoordinateSystem, TrueNorth) { super(expressID, ContextIdentifier, ContextType); this.ContextIdentifier = ContextIdentifier; this.ContextType = ContextType; this.CoordinateSpaceDimension = CoordinateSpaceDimension; this.Precision = Precision; this.WorldCoordinateSystem = WorldCoordinateSystem; this.TrueNorth = TrueNorth; this.type = 3448662350; } } IFC4_32.IfcGeometricRepresentationContext = IfcGeometricRepresentationContext; class IfcGeometricRepresentationItem extends IfcRepresentationItem { constructor(expressID) { super(expressID); this.type = 2453401579; } } IFC4_32.IfcGeometricRepresentationItem = IfcGeometricRepresentationItem; class IfcGeometricRepresentationSubContext extends IfcGeometricRepresentationContext { constructor(expressID, ContextIdentifier, ContextType, WorldCoordinateSystem, ParentContext, TargetScale, TargetView, UserDefinedTargetView) { super(expressID, ContextIdentifier, ContextType, new IfcDimensionCount(0), null, WorldCoordinateSystem, null); this.ContextIdentifier = ContextIdentifier; this.ContextType = ContextType; this.WorldCoordinateSystem = WorldCoordinateSystem; this.ParentContext = ParentContext; this.TargetScale = TargetScale; this.TargetView = TargetView; this.UserDefinedTargetView = UserDefinedTargetView; this.type = 4142052618; } } IFC4_32.IfcGeometricRepresentationSubContext = IfcGeometricRepresentationSubContext; class IfcGeometricSet extends IfcGeometricRepresentationItem { constructor(expressID, Elements) { super(expressID); this.Elements = Elements; this.type = 3590301190; } } IFC4_32.IfcGeometricSet = IfcGeometricSet; class IfcGridPlacement extends IfcObjectPlacement { constructor(expressID, PlacementRelTo, PlacementLocation, PlacementRefDirection) { super(expressID, PlacementRelTo); this.PlacementRelTo = PlacementRelTo; this.PlacementLocation = PlacementLocation; this.PlacementRefDirection = PlacementRefDirection; this.type = 178086475; } } IFC4_32.IfcGridPlacement = IfcGridPlacement; class IfcHalfSpaceSolid extends IfcGeometricRepresentationItem { constructor(expressID, BaseSurface, AgreementFlag) { super(expressID); this.BaseSurface = BaseSurface; this.AgreementFlag = AgreementFlag; this.type = 812098782; } } IFC4_32.IfcHalfSpaceSolid = IfcHalfSpaceSolid; class IfcImageTexture extends IfcSurfaceTexture { constructor(expressID, RepeatS, RepeatT, Mode, TextureTransform, Parameter, URLReference) { super(expressID, RepeatS, RepeatT, Mode, TextureTransform, Parameter); this.RepeatS = RepeatS; this.RepeatT = RepeatT; this.Mode = Mode; this.TextureTransform = TextureTransform; this.Parameter = Parameter; this.URLReference = URLReference; this.type = 3905492369; } } IFC4_32.IfcImageTexture = IfcImageTexture; class IfcIndexedColourMap extends IfcPresentationItem { constructor(expressID, MappedTo, Opacity, Colours, ColourIndex) { super(expressID); this.MappedTo = MappedTo; this.Opacity = Opacity; this.Colours = Colours; this.ColourIndex = ColourIndex; this.type = 3570813810; } } IFC4_32.IfcIndexedColourMap = IfcIndexedColourMap; class IfcIndexedTextureMap extends IfcTextureCoordinate { constructor(expressID, Maps, MappedTo, TexCoords) { super(expressID, Maps); this.Maps = Maps; this.MappedTo = MappedTo; this.TexCoords = TexCoords; this.type = 1437953363; } } IFC4_32.IfcIndexedTextureMap = IfcIndexedTextureMap; class IfcIndexedTriangleTextureMap extends IfcIndexedTextureMap { constructor(expressID, Maps, MappedTo, TexCoords, TexCoordIndex) { super(expressID, Maps, MappedTo, TexCoords); this.Maps = Maps; this.MappedTo = MappedTo; this.TexCoords = TexCoords; this.TexCoordIndex = TexCoordIndex; this.type = 2133299955; } } IFC4_32.IfcIndexedTriangleTextureMap = IfcIndexedTriangleTextureMap; class IfcIrregularTimeSeries extends IfcTimeSeries { constructor(expressID, Name, Description, StartTime, EndTime, TimeSeriesDataType, DataOrigin, UserDefinedDataOrigin, Unit, Values) { super(expressID, Name, Description, StartTime, EndTime, TimeSeriesDataType, DataOrigin, UserDefinedDataOrigin, Unit); this.Name = Name; this.Description = Description; this.StartTime = StartTime; this.EndTime = EndTime; this.TimeSeriesDataType = TimeSeriesDataType; this.DataOrigin = DataOrigin; this.UserDefinedDataOrigin = UserDefinedDataOrigin; this.Unit = Unit; this.Values = Values; this.type = 3741457305; } } IFC4_32.IfcIrregularTimeSeries = IfcIrregularTimeSeries; class IfcLagTime extends IfcSchedulingTime { constructor(expressID, Name, DataOrigin, UserDefinedDataOrigin, LagValue, DurationType) { super(expressID, Name, DataOrigin, UserDefinedDataOrigin); this.Name = Name; this.DataOrigin = DataOrigin; this.UserDefinedDataOrigin = UserDefinedDataOrigin; this.LagValue = LagValue; this.DurationType = DurationType; this.type = 1585845231; } } IFC4_32.IfcLagTime = IfcLagTime; class IfcLightSource extends IfcGeometricRepresentationItem { constructor(expressID, Name, LightColour, AmbientIntensity, Intensity) { super(expressID); this.Name = Name; this.LightColour = LightColour; this.AmbientIntensity = AmbientIntensity; this.Intensity = Intensity; this.type = 1402838566; } } IFC4_32.IfcLightSource = IfcLightSource; class IfcLightSourceAmbient extends IfcLightSource { constructor(expressID, Name, LightColour, AmbientIntensity, Intensity) { super(expressID, Name, LightColour, AmbientIntensity, Intensity); this.Name = Name; this.LightColour = LightColour; this.AmbientIntensity = AmbientIntensity; this.Intensity = Intensity; this.type = 125510826; } } IFC4_32.IfcLightSourceAmbient = IfcLightSourceAmbient; class IfcLightSourceDirectional extends IfcLightSource { constructor(expressID, Name, LightColour, AmbientIntensity, Intensity, Orientation) { super(expressID, Name, LightColour, AmbientIntensity, Intensity); this.Name = Name; this.LightColour = LightColour; this.AmbientIntensity = AmbientIntensity; this.Intensity = Intensity; this.Orientation = Orientation; this.type = 2604431987; } } IFC4_32.IfcLightSourceDirectional = IfcLightSourceDirectional; class IfcLightSourceGoniometric extends IfcLightSource { constructor(expressID, Name, LightColour, AmbientIntensity, Intensity, Position, ColourAppearance, ColourTemperature, LuminousFlux, LightEmissionSource, LightDistributionDataSource) { super(expressID, Name, LightColour, AmbientIntensity, Intensity); this.Name = Name; this.LightColour = LightColour; this.AmbientIntensity = AmbientIntensity; this.Intensity = Intensity; this.Position = Position; this.ColourAppearance = ColourAppearance; this.ColourTemperature = ColourTemperature; this.LuminousFlux = LuminousFlux; this.LightEmissionSource = LightEmissionSource; this.LightDistributionDataSource = LightDistributionDataSource; this.type = 4266656042; } } IFC4_32.IfcLightSourceGoniometric = IfcLightSourceGoniometric; class IfcLightSourcePositional extends IfcLightSource { constructor(expressID, Name, LightColour, AmbientIntensity, Intensity, Position, Radius, ConstantAttenuation, DistanceAttenuation, QuadricAttenuation) { super(expressID, Name, LightColour, AmbientIntensity, Intensity); this.Name = Name; this.LightColour = LightColour; this.AmbientIntensity = AmbientIntensity; this.Intensity = Intensity; this.Position = Position; this.Radius = Radius; this.ConstantAttenuation = ConstantAttenuation; this.DistanceAttenuation = DistanceAttenuation; this.QuadricAttenuation = QuadricAttenuation; this.type = 1520743889; } } IFC4_32.IfcLightSourcePositional = IfcLightSourcePositional; class IfcLightSourceSpot extends IfcLightSourcePositional { constructor(expressID, Name, LightColour, AmbientIntensity, Intensity, Position, Radius, ConstantAttenuation, DistanceAttenuation, QuadricAttenuation, Orientation, ConcentrationExponent, SpreadAngle, BeamWidthAngle) { super(expressID, Name, LightColour, AmbientIntensity, Intensity, Position, Radius, ConstantAttenuation, DistanceAttenuation, QuadricAttenuation); this.Name = Name; this.LightColour = LightColour; this.AmbientIntensity = AmbientIntensity; this.Intensity = Intensity; this.Position = Position; this.Radius = Radius; this.ConstantAttenuation = ConstantAttenuation; this.DistanceAttenuation = DistanceAttenuation; this.QuadricAttenuation = QuadricAttenuation; this.Orientation = Orientation; this.ConcentrationExponent = ConcentrationExponent; this.SpreadAngle = SpreadAngle; this.BeamWidthAngle = BeamWidthAngle; this.type = 3422422726; } } IFC4_32.IfcLightSourceSpot = IfcLightSourceSpot; class IfcLinearPlacement extends IfcObjectPlacement { constructor(expressID, PlacementRelTo, RelativePlacement, CartesianPosition) { super(expressID, PlacementRelTo); this.PlacementRelTo = PlacementRelTo; this.RelativePlacement = RelativePlacement; this.CartesianPosition = CartesianPosition; this.type = 388784114; } } IFC4_32.IfcLinearPlacement = IfcLinearPlacement; class IfcLocalPlacement extends IfcObjectPlacement { constructor(expressID, PlacementRelTo, RelativePlacement) { super(expressID, PlacementRelTo); this.PlacementRelTo = PlacementRelTo; this.RelativePlacement = RelativePlacement; this.type = 2624227202; } } IFC4_32.IfcLocalPlacement = IfcLocalPlacement; class IfcLoop extends IfcTopologicalRepresentationItem { constructor(expressID) { super(expressID); this.type = 1008929658; } } IFC4_32.IfcLoop = IfcLoop; class IfcMappedItem extends IfcRepresentationItem { constructor(expressID, MappingSource, MappingTarget) { super(expressID); this.MappingSource = MappingSource; this.MappingTarget = MappingTarget; this.type = 2347385850; } } IFC4_32.IfcMappedItem = IfcMappedItem; class IfcMaterial extends IfcMaterialDefinition { constructor(expressID, Name, Description, Category) { super(expressID); this.Name = Name; this.Description = Description; this.Category = Category; this.type = 1838606355; } } IFC4_32.IfcMaterial = IfcMaterial; class IfcMaterialConstituent extends IfcMaterialDefinition { constructor(expressID, Name, Description, Material, Fraction, Category) { super(expressID); this.Name = Name; this.Description = Description; this.Material = Material; this.Fraction = Fraction; this.Category = Category; this.type = 3708119e3; } } IFC4_32.IfcMaterialConstituent = IfcMaterialConstituent; class IfcMaterialConstituentSet extends IfcMaterialDefinition { constructor(expressID, Name, Description, MaterialConstituents) { super(expressID); this.Name = Name; this.Description = Description; this.MaterialConstituents = MaterialConstituents; this.type = 2852063980; } } IFC4_32.IfcMaterialConstituentSet = IfcMaterialConstituentSet; class IfcMaterialDefinitionRepresentation extends IfcProductRepresentation { constructor(expressID, Name, Description, Representations, RepresentedMaterial) { super(expressID, Name, Description, Representations); this.Name = Name; this.Description = Description; this.Representations = Representations; this.RepresentedMaterial = RepresentedMaterial; this.type = 2022407955; } } IFC4_32.IfcMaterialDefinitionRepresentation = IfcMaterialDefinitionRepresentation; class IfcMaterialLayerSetUsage extends IfcMaterialUsageDefinition { constructor(expressID, ForLayerSet, LayerSetDirection, DirectionSense, OffsetFromReferenceLine, ReferenceExtent) { super(expressID); this.ForLayerSet = ForLayerSet; this.LayerSetDirection = LayerSetDirection; this.DirectionSense = DirectionSense; this.OffsetFromReferenceLine = OffsetFromReferenceLine; this.ReferenceExtent = ReferenceExtent; this.type = 1303795690; } } IFC4_32.IfcMaterialLayerSetUsage = IfcMaterialLayerSetUsage; class IfcMaterialProfileSetUsage extends IfcMaterialUsageDefinition { constructor(expressID, ForProfileSet, CardinalPoint, ReferenceExtent) { super(expressID); this.ForProfileSet = ForProfileSet; this.CardinalPoint = CardinalPoint; this.ReferenceExtent = ReferenceExtent; this.type = 3079605661; } } IFC4_32.IfcMaterialProfileSetUsage = IfcMaterialProfileSetUsage; class IfcMaterialProfileSetUsageTapering extends IfcMaterialProfileSetUsage { constructor(expressID, ForProfileSet, CardinalPoint, ReferenceExtent, ForProfileEndSet, CardinalEndPoint) { super(expressID, ForProfileSet, CardinalPoint, ReferenceExtent); this.ForProfileSet = ForProfileSet; this.CardinalPoint = CardinalPoint; this.ReferenceExtent = ReferenceExtent; this.ForProfileEndSet = ForProfileEndSet; this.CardinalEndPoint = CardinalEndPoint; this.type = 3404854881; } } IFC4_32.IfcMaterialProfileSetUsageTapering = IfcMaterialProfileSetUsageTapering; class IfcMaterialProperties extends IfcExtendedProperties { constructor(expressID, Name, Description, Properties2, Material) { super(expressID, Name, Description, Properties2); this.Name = Name; this.Description = Description; this.Properties = Properties2; this.Material = Material; this.type = 3265635763; } } IFC4_32.IfcMaterialProperties = IfcMaterialProperties; class IfcMaterialRelationship extends IfcResourceLevelRelationship { constructor(expressID, Name, Description, RelatingMaterial, RelatedMaterials, MaterialExpression) { super(expressID, Name, Description); this.Name = Name; this.Description = Description; this.RelatingMaterial = RelatingMaterial; this.RelatedMaterials = RelatedMaterials; this.MaterialExpression = MaterialExpression; this.type = 853536259; } } IFC4_32.IfcMaterialRelationship = IfcMaterialRelationship; class IfcMirroredProfileDef extends IfcDerivedProfileDef { constructor(expressID, ProfileType, ProfileName, ParentProfile, Operator, Label) { super(expressID, ProfileType, ProfileName, ParentProfile, Operator, Label); this.ProfileType = ProfileType; this.ProfileName = ProfileName; this.ParentProfile = ParentProfile; this.Operator = Operator; this.Label = Label; this.type = 2998442950; } } IFC4_32.IfcMirroredProfileDef = IfcMirroredProfileDef; class IfcObjectDefinition extends IfcRoot { constructor(expressID, GlobalId, OwnerHistory, Name, Description) { super(expressID, GlobalId, OwnerHistory, Name, Description); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.type = 219451334; } } IFC4_32.IfcObjectDefinition = IfcObjectDefinition; class IfcOpenCrossProfileDef extends IfcProfileDef { constructor(expressID, ProfileType, ProfileName, HorizontalWidths, Widths, Slopes, Tags, OffsetPoint) { super(expressID, ProfileType, ProfileName); this.ProfileType = ProfileType; this.ProfileName = ProfileName; this.HorizontalWidths = HorizontalWidths; this.Widths = Widths; this.Slopes = Slopes; this.Tags = Tags; this.OffsetPoint = OffsetPoint; this.type = 182550632; } } IFC4_32.IfcOpenCrossProfileDef = IfcOpenCrossProfileDef; class IfcOpenShell extends IfcConnectedFaceSet { constructor(expressID, CfsFaces) { super(expressID, CfsFaces); this.CfsFaces = CfsFaces; this.type = 2665983363; } } IFC4_32.IfcOpenShell = IfcOpenShell; class IfcOrganizationRelationship extends IfcResourceLevelRelationship { constructor(expressID, Name, Description, RelatingOrganization, RelatedOrganizations) { super(expressID, Name, Description); this.Name = Name; this.Description = Description; this.RelatingOrganization = RelatingOrganization; this.RelatedOrganizations = RelatedOrganizations; this.type = 1411181986; } } IFC4_32.IfcOrganizationRelationship = IfcOrganizationRelationship; class IfcOrientedEdge extends IfcEdge { constructor(expressID, EdgeStart, EdgeElement, Orientation) { super(expressID, EdgeStart, new Handle(0)); this.EdgeStart = EdgeStart; this.EdgeElement = EdgeElement; this.Orientation = Orientation; this.type = 1029017970; } } IFC4_32.IfcOrientedEdge = IfcOrientedEdge; class IfcParameterizedProfileDef extends IfcProfileDef { constructor(expressID, ProfileType, ProfileName, Position) { super(expressID, ProfileType, ProfileName); this.ProfileType = ProfileType; this.ProfileName = ProfileName; this.Position = Position; this.type = 2529465313; } } IFC4_32.IfcParameterizedProfileDef = IfcParameterizedProfileDef; class IfcPath extends IfcTopologicalRepresentationItem { constructor(expressID, EdgeList) { super(expressID); this.EdgeList = EdgeList; this.type = 2519244187; } } IFC4_32.IfcPath = IfcPath; class IfcPhysicalComplexQuantity extends IfcPhysicalQuantity { constructor(expressID, Name, Description, HasQuantities, Discrimination, Quality, Usage) { super(expressID, Name, Description); this.Name = Name; this.Description = Description; this.HasQuantities = HasQuantities; this.Discrimination = Discrimination; this.Quality = Quality; this.Usage = Usage; this.type = 3021840470; } } IFC4_32.IfcPhysicalComplexQuantity = IfcPhysicalComplexQuantity; class IfcPixelTexture extends IfcSurfaceTexture { constructor(expressID, RepeatS, RepeatT, Mode, TextureTransform, Parameter, Width, Height, ColourComponents, Pixel) { super(expressID, RepeatS, RepeatT, Mode, TextureTransform, Parameter); this.RepeatS = RepeatS; this.RepeatT = RepeatT; this.Mode = Mode; this.TextureTransform = TextureTransform; this.Parameter = Parameter; this.Width = Width; this.Height = Height; this.ColourComponents = ColourComponents; this.Pixel = Pixel; this.type = 597895409; } } IFC4_32.IfcPixelTexture = IfcPixelTexture; class IfcPlacement extends IfcGeometricRepresentationItem { constructor(expressID, Location) { super(expressID); this.Location = Location; this.type = 2004835150; } } IFC4_32.IfcPlacement = IfcPlacement; class IfcPlanarExtent extends IfcGeometricRepresentationItem { constructor(expressID, SizeInX, SizeInY) { super(expressID); this.SizeInX = SizeInX; this.SizeInY = SizeInY; this.type = 1663979128; } } IFC4_32.IfcPlanarExtent = IfcPlanarExtent; class IfcPoint extends IfcGeometricRepresentationItem { constructor(expressID) { super(expressID); this.type = 2067069095; } } IFC4_32.IfcPoint = IfcPoint; class IfcPointByDistanceExpression extends IfcPoint { constructor(expressID, DistanceAlong, OffsetLateral, OffsetVertical, OffsetLongitudinal, BasisCurve) { super(expressID); this.DistanceAlong = DistanceAlong; this.OffsetLateral = OffsetLateral; this.OffsetVertical = OffsetVertical; this.OffsetLongitudinal = OffsetLongitudinal; this.BasisCurve = BasisCurve; this.type = 2165702409; } } IFC4_32.IfcPointByDistanceExpression = IfcPointByDistanceExpression; class IfcPointOnCurve extends IfcPoint { constructor(expressID, BasisCurve, PointParameter) { super(expressID); this.BasisCurve = BasisCurve; this.PointParameter = PointParameter; this.type = 4022376103; } } IFC4_32.IfcPointOnCurve = IfcPointOnCurve; class IfcPointOnSurface extends IfcPoint { constructor(expressID, BasisSurface, PointParameterU, PointParameterV) { super(expressID); this.BasisSurface = BasisSurface; this.PointParameterU = PointParameterU; this.PointParameterV = PointParameterV; this.type = 1423911732; } } IFC4_32.IfcPointOnSurface = IfcPointOnSurface; class IfcPolyLoop extends IfcLoop { constructor(expressID, Polygon) { super(expressID); this.Polygon = Polygon; this.type = 2924175390; } } IFC4_32.IfcPolyLoop = IfcPolyLoop; class IfcPolygonalBoundedHalfSpace extends IfcHalfSpaceSolid { constructor(expressID, BaseSurface, AgreementFlag, Position, PolygonalBoundary) { super(expressID, BaseSurface, AgreementFlag); this.BaseSurface = BaseSurface; this.AgreementFlag = AgreementFlag; this.Position = Position; this.PolygonalBoundary = PolygonalBoundary; this.type = 2775532180; } } IFC4_32.IfcPolygonalBoundedHalfSpace = IfcPolygonalBoundedHalfSpace; class IfcPreDefinedItem extends IfcPresentationItem { constructor(expressID, Name) { super(expressID); this.Name = Name; this.type = 3727388367; } } IFC4_32.IfcPreDefinedItem = IfcPreDefinedItem; class IfcPreDefinedProperties extends IfcPropertyAbstraction { constructor(expressID) { super(expressID); this.type = 3778827333; } } IFC4_32.IfcPreDefinedProperties = IfcPreDefinedProperties; class IfcPreDefinedTextFont extends IfcPreDefinedItem { constructor(expressID, Name) { super(expressID, Name); this.Name = Name; this.type = 1775413392; } } IFC4_32.IfcPreDefinedTextFont = IfcPreDefinedTextFont; class IfcProductDefinitionShape extends IfcProductRepresentation { constructor(expressID, Name, Description, Representations) { super(expressID, Name, Description, Representations); this.Name = Name; this.Description = Description; this.Representations = Representations; this.type = 673634403; } } IFC4_32.IfcProductDefinitionShape = IfcProductDefinitionShape; class IfcProfileProperties extends IfcExtendedProperties { constructor(expressID, Name, Description, Properties2, ProfileDefinition) { super(expressID, Name, Description, Properties2); this.Name = Name; this.Description = Description; this.Properties = Properties2; this.ProfileDefinition = ProfileDefinition; this.type = 2802850158; } } IFC4_32.IfcProfileProperties = IfcProfileProperties; class IfcProperty extends IfcPropertyAbstraction { constructor(expressID, Name, Specification) { super(expressID); this.Name = Name; this.Specification = Specification; this.type = 2598011224; } } IFC4_32.IfcProperty = IfcProperty; class IfcPropertyDefinition extends IfcRoot { constructor(expressID, GlobalId, OwnerHistory, Name, Description) { super(expressID, GlobalId, OwnerHistory, Name, Description); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.type = 1680319473; } } IFC4_32.IfcPropertyDefinition = IfcPropertyDefinition; class IfcPropertyDependencyRelationship extends IfcResourceLevelRelationship { constructor(expressID, Name, Description, DependingProperty, DependantProperty, Expression) { super(expressID, Name, Description); this.Name = Name; this.Description = Description; this.DependingProperty = DependingProperty; this.DependantProperty = DependantProperty; this.Expression = Expression; this.type = 148025276; } } IFC4_32.IfcPropertyDependencyRelationship = IfcPropertyDependencyRelationship; class IfcPropertySetDefinition extends IfcPropertyDefinition { constructor(expressID, GlobalId, OwnerHistory, Name, Description) { super(expressID, GlobalId, OwnerHistory, Name, Description); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.type = 3357820518; } } IFC4_32.IfcPropertySetDefinition = IfcPropertySetDefinition; class IfcPropertyTemplateDefinition extends IfcPropertyDefinition { constructor(expressID, GlobalId, OwnerHistory, Name, Description) { super(expressID, GlobalId, OwnerHistory, Name, Description); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.type = 1482703590; } } IFC4_32.IfcPropertyTemplateDefinition = IfcPropertyTemplateDefinition; class IfcQuantitySet extends IfcPropertySetDefinition { constructor(expressID, GlobalId, OwnerHistory, Name, Description) { super(expressID, GlobalId, OwnerHistory, Name, Description); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.type = 2090586900; } } IFC4_32.IfcQuantitySet = IfcQuantitySet; class IfcRectangleProfileDef extends IfcParameterizedProfileDef { constructor(expressID, ProfileType, ProfileName, Position, XDim, YDim) { super(expressID, ProfileType, ProfileName, Position); this.ProfileType = ProfileType; this.ProfileName = ProfileName; this.Position = Position; this.XDim = XDim; this.YDim = YDim; this.type = 3615266464; } } IFC4_32.IfcRectangleProfileDef = IfcRectangleProfileDef; class IfcRegularTimeSeries extends IfcTimeSeries { constructor(expressID, Name, Description, StartTime, EndTime, TimeSeriesDataType, DataOrigin, UserDefinedDataOrigin, Unit, TimeStep, Values) { super(expressID, Name, Description, StartTime, EndTime, TimeSeriesDataType, DataOrigin, UserDefinedDataOrigin, Unit); this.Name = Name; this.Description = Description; this.StartTime = StartTime; this.EndTime = EndTime; this.TimeSeriesDataType = TimeSeriesDataType; this.DataOrigin = DataOrigin; this.UserDefinedDataOrigin = UserDefinedDataOrigin; this.Unit = Unit; this.TimeStep = TimeStep; this.Values = Values; this.type = 3413951693; } } IFC4_32.IfcRegularTimeSeries = IfcRegularTimeSeries; class IfcReinforcementBarProperties extends IfcPreDefinedProperties { constructor(expressID, TotalCrossSectionArea, SteelGrade, BarSurface, EffectiveDepth, NominalBarDiameter, BarCount) { super(expressID); this.TotalCrossSectionArea = TotalCrossSectionArea; this.SteelGrade = SteelGrade; this.BarSurface = BarSurface; this.EffectiveDepth = EffectiveDepth; this.NominalBarDiameter = NominalBarDiameter; this.BarCount = BarCount; this.type = 1580146022; } } IFC4_32.IfcReinforcementBarProperties = IfcReinforcementBarProperties; class IfcRelationship extends IfcRoot { constructor(expressID, GlobalId, OwnerHistory, Name, Description) { super(expressID, GlobalId, OwnerHistory, Name, Description); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.type = 478536968; } } IFC4_32.IfcRelationship = IfcRelationship; class IfcResourceApprovalRelationship extends IfcResourceLevelRelationship { constructor(expressID, Name, Description, RelatedResourceObjects, RelatingApproval) { super(expressID, Name, Description); this.Name = Name; this.Description = Description; this.RelatedResourceObjects = RelatedResourceObjects; this.RelatingApproval = RelatingApproval; this.type = 2943643501; } } IFC4_32.IfcResourceApprovalRelationship = IfcResourceApprovalRelationship; class IfcResourceConstraintRelationship extends IfcResourceLevelRelationship { constructor(expressID, Name, Description, RelatingConstraint, RelatedResourceObjects) { super(expressID, Name, Description); this.Name = Name; this.Description = Description; this.RelatingConstraint = RelatingConstraint; this.RelatedResourceObjects = RelatedResourceObjects; this.type = 1608871552; } } IFC4_32.IfcResourceConstraintRelationship = IfcResourceConstraintRelationship; class IfcResourceTime extends IfcSchedulingTime { constructor(expressID, Name, DataOrigin, UserDefinedDataOrigin, ScheduleWork, ScheduleUsage, ScheduleStart, ScheduleFinish, ScheduleContour, LevelingDelay, IsOverAllocated, StatusTime, ActualWork, ActualUsage, ActualStart, ActualFinish, RemainingWork, RemainingUsage, Completion) { super(expressID, Name, DataOrigin, UserDefinedDataOrigin); this.Name = Name; this.DataOrigin = DataOrigin; this.UserDefinedDataOrigin = UserDefinedDataOrigin; this.ScheduleWork = ScheduleWork; this.ScheduleUsage = ScheduleUsage; this.ScheduleStart = ScheduleStart; this.ScheduleFinish = ScheduleFinish; this.ScheduleContour = ScheduleContour; this.LevelingDelay = LevelingDelay; this.IsOverAllocated = IsOverAllocated; this.StatusTime = StatusTime; this.ActualWork = ActualWork; this.ActualUsage = ActualUsage; this.ActualStart = ActualStart; this.ActualFinish = ActualFinish; this.RemainingWork = RemainingWork; this.RemainingUsage = RemainingUsage; this.Completion = Completion; this.type = 1042787934; } } IFC4_32.IfcResourceTime = IfcResourceTime; class IfcRoundedRectangleProfileDef extends IfcRectangleProfileDef { constructor(expressID, ProfileType, ProfileName, Position, XDim, YDim, RoundingRadius) { super(expressID, ProfileType, ProfileName, Position, XDim, YDim); this.ProfileType = ProfileType; this.ProfileName = ProfileName; this.Position = Position; this.XDim = XDim; this.YDim = YDim; this.RoundingRadius = RoundingRadius; this.type = 2778083089; } } IFC4_32.IfcRoundedRectangleProfileDef = IfcRoundedRectangleProfileDef; class IfcSectionProperties extends IfcPreDefinedProperties { constructor(expressID, SectionType, StartProfile, EndProfile) { super(expressID); this.SectionType = SectionType; this.StartProfile = StartProfile; this.EndProfile = EndProfile; this.type = 2042790032; } } IFC4_32.IfcSectionProperties = IfcSectionProperties; class IfcSectionReinforcementProperties extends IfcPreDefinedProperties { constructor(expressID, LongitudinalStartPosition, LongitudinalEndPosition, TransversePosition, ReinforcementRole, SectionDefinition, CrossSectionReinforcementDefinitions) { super(expressID); this.LongitudinalStartPosition = LongitudinalStartPosition; this.LongitudinalEndPosition = LongitudinalEndPosition; this.TransversePosition = TransversePosition; this.ReinforcementRole = ReinforcementRole; this.SectionDefinition = SectionDefinition; this.CrossSectionReinforcementDefinitions = CrossSectionReinforcementDefinitions; this.type = 4165799628; } } IFC4_32.IfcSectionReinforcementProperties = IfcSectionReinforcementProperties; class IfcSectionedSpine extends IfcGeometricRepresentationItem { constructor(expressID, SpineCurve, CrossSections, CrossSectionPositions) { super(expressID); this.SpineCurve = SpineCurve; this.CrossSections = CrossSections; this.CrossSectionPositions = CrossSectionPositions; this.type = 1509187699; } } IFC4_32.IfcSectionedSpine = IfcSectionedSpine; class IfcSegment extends IfcGeometricRepresentationItem { constructor(expressID, Transition) { super(expressID); this.Transition = Transition; this.type = 823603102; } } IFC4_32.IfcSegment = IfcSegment; class IfcShellBasedSurfaceModel extends IfcGeometricRepresentationItem { constructor(expressID, SbsmBoundary) { super(expressID); this.SbsmBoundary = SbsmBoundary; this.type = 4124623270; } } IFC4_32.IfcShellBasedSurfaceModel = IfcShellBasedSurfaceModel; class IfcSimpleProperty extends IfcProperty { constructor(expressID, Name, Specification) { super(expressID, Name, Specification); this.Name = Name; this.Specification = Specification; this.type = 3692461612; } } IFC4_32.IfcSimpleProperty = IfcSimpleProperty; class IfcSlippageConnectionCondition extends IfcStructuralConnectionCondition { constructor(expressID, Name, SlippageX, SlippageY, SlippageZ) { super(expressID, Name); this.Name = Name; this.SlippageX = SlippageX; this.SlippageY = SlippageY; this.SlippageZ = SlippageZ; this.type = 2609359061; } } IFC4_32.IfcSlippageConnectionCondition = IfcSlippageConnectionCondition; class IfcSolidModel extends IfcGeometricRepresentationItem { constructor(expressID) { super(expressID); this.type = 723233188; } } IFC4_32.IfcSolidModel = IfcSolidModel; class IfcStructuralLoadLinearForce extends IfcStructuralLoadStatic { constructor(expressID, Name, LinearForceX, LinearForceY, LinearForceZ, LinearMomentX, LinearMomentY, LinearMomentZ) { super(expressID, Name); this.Name = Name; this.LinearForceX = LinearForceX; this.LinearForceY = LinearForceY; this.LinearForceZ = LinearForceZ; this.LinearMomentX = LinearMomentX; this.LinearMomentY = LinearMomentY; this.LinearMomentZ = LinearMomentZ; this.type = 1595516126; } } IFC4_32.IfcStructuralLoadLinearForce = IfcStructuralLoadLinearForce; class IfcStructuralLoadPlanarForce extends IfcStructuralLoadStatic { constructor(expressID, Name, PlanarForceX, PlanarForceY, PlanarForceZ) { super(expressID, Name); this.Name = Name; this.PlanarForceX = PlanarForceX; this.PlanarForceY = PlanarForceY; this.PlanarForceZ = PlanarForceZ; this.type = 2668620305; } } IFC4_32.IfcStructuralLoadPlanarForce = IfcStructuralLoadPlanarForce; class IfcStructuralLoadSingleDisplacement extends IfcStructuralLoadStatic { constructor(expressID, Name, DisplacementX, DisplacementY, DisplacementZ, RotationalDisplacementRX, RotationalDisplacementRY, RotationalDisplacementRZ) { super(expressID, Name); this.Name = Name; this.DisplacementX = DisplacementX; this.DisplacementY = DisplacementY; this.DisplacementZ = DisplacementZ; this.RotationalDisplacementRX = RotationalDisplacementRX; this.RotationalDisplacementRY = RotationalDisplacementRY; this.RotationalDisplacementRZ = RotationalDisplacementRZ; this.type = 2473145415; } } IFC4_32.IfcStructuralLoadSingleDisplacement = IfcStructuralLoadSingleDisplacement; class IfcStructuralLoadSingleDisplacementDistortion extends IfcStructuralLoadSingleDisplacement { constructor(expressID, Name, DisplacementX, DisplacementY, DisplacementZ, RotationalDisplacementRX, RotationalDisplacementRY, RotationalDisplacementRZ, Distortion) { super(expressID, Name, DisplacementX, DisplacementY, DisplacementZ, RotationalDisplacementRX, RotationalDisplacementRY, RotationalDisplacementRZ); this.Name = Name; this.DisplacementX = DisplacementX; this.DisplacementY = DisplacementY; this.DisplacementZ = DisplacementZ; this.RotationalDisplacementRX = RotationalDisplacementRX; this.RotationalDisplacementRY = RotationalDisplacementRY; this.RotationalDisplacementRZ = RotationalDisplacementRZ; this.Distortion = Distortion; this.type = 1973038258; } } IFC4_32.IfcStructuralLoadSingleDisplacementDistortion = IfcStructuralLoadSingleDisplacementDistortion; class IfcStructuralLoadSingleForce extends IfcStructuralLoadStatic { constructor(expressID, Name, ForceX, ForceY, ForceZ, MomentX, MomentY, MomentZ) { super(expressID, Name); this.Name = Name; this.ForceX = ForceX; this.ForceY = ForceY; this.ForceZ = ForceZ; this.MomentX = MomentX; this.MomentY = MomentY; this.MomentZ = MomentZ; this.type = 1597423693; } } IFC4_32.IfcStructuralLoadSingleForce = IfcStructuralLoadSingleForce; class IfcStructuralLoadSingleForceWarping extends IfcStructuralLoadSingleForce { constructor(expressID, Name, ForceX, ForceY, ForceZ, MomentX, MomentY, MomentZ, WarpingMoment) { super(expressID, Name, ForceX, ForceY, ForceZ, MomentX, MomentY, MomentZ); this.Name = Name; this.ForceX = ForceX; this.ForceY = ForceY; this.ForceZ = ForceZ; this.MomentX = MomentX; this.MomentY = MomentY; this.MomentZ = MomentZ; this.WarpingMoment = WarpingMoment; this.type = 1190533807; } } IFC4_32.IfcStructuralLoadSingleForceWarping = IfcStructuralLoadSingleForceWarping; class IfcSubedge extends IfcEdge { constructor(expressID, EdgeStart, EdgeEnd, ParentEdge) { super(expressID, EdgeStart, EdgeEnd); this.EdgeStart = EdgeStart; this.EdgeEnd = EdgeEnd; this.ParentEdge = ParentEdge; this.type = 2233826070; } } IFC4_32.IfcSubedge = IfcSubedge; class IfcSurface extends IfcGeometricRepresentationItem { constructor(expressID) { super(expressID); this.type = 2513912981; } } IFC4_32.IfcSurface = IfcSurface; class IfcSurfaceStyleRendering extends IfcSurfaceStyleShading { constructor(expressID, SurfaceColour, Transparency, DiffuseColour, TransmissionColour, DiffuseTransmissionColour, ReflectionColour, SpecularColour, SpecularHighlight, ReflectanceMethod) { super(expressID, SurfaceColour, Transparency); this.SurfaceColour = SurfaceColour; this.Transparency = Transparency; this.DiffuseColour = DiffuseColour; this.TransmissionColour = TransmissionColour; this.DiffuseTransmissionColour = DiffuseTransmissionColour; this.ReflectionColour = ReflectionColour; this.SpecularColour = SpecularColour; this.SpecularHighlight = SpecularHighlight; this.ReflectanceMethod = ReflectanceMethod; this.type = 1878645084; } } IFC4_32.IfcSurfaceStyleRendering = IfcSurfaceStyleRendering; class IfcSweptAreaSolid extends IfcSolidModel { constructor(expressID, SweptArea, Position) { super(expressID); this.SweptArea = SweptArea; this.Position = Position; this.type = 2247615214; } } IFC4_32.IfcSweptAreaSolid = IfcSweptAreaSolid; class IfcSweptDiskSolid extends IfcSolidModel { constructor(expressID, Directrix, Radius, InnerRadius, StartParam, EndParam) { super(expressID); this.Directrix = Directrix; this.Radius = Radius; this.InnerRadius = InnerRadius; this.StartParam = StartParam; this.EndParam = EndParam; this.type = 1260650574; } } IFC4_32.IfcSweptDiskSolid = IfcSweptDiskSolid; class IfcSweptDiskSolidPolygonal extends IfcSweptDiskSolid { constructor(expressID, Directrix, Radius, InnerRadius, StartParam, EndParam, FilletRadius) { super(expressID, Directrix, Radius, InnerRadius, StartParam, EndParam); this.Directrix = Directrix; this.Radius = Radius; this.InnerRadius = InnerRadius; this.StartParam = StartParam; this.EndParam = EndParam; this.FilletRadius = FilletRadius; this.type = 1096409881; } } IFC4_32.IfcSweptDiskSolidPolygonal = IfcSweptDiskSolidPolygonal; class IfcSweptSurface extends IfcSurface { constructor(expressID, SweptCurve, Position) { super(expressID); this.SweptCurve = SweptCurve; this.Position = Position; this.type = 230924584; } } IFC4_32.IfcSweptSurface = IfcSweptSurface; class IfcTShapeProfileDef extends IfcParameterizedProfileDef { constructor(expressID, ProfileType, ProfileName, Position, Depth, FlangeWidth, WebThickness, FlangeThickness, FilletRadius, FlangeEdgeRadius, WebEdgeRadius, WebSlope, FlangeSlope) { super(expressID, ProfileType, ProfileName, Position); this.ProfileType = ProfileType; this.ProfileName = ProfileName; this.Position = Position; this.Depth = Depth; this.FlangeWidth = FlangeWidth; this.WebThickness = WebThickness; this.FlangeThickness = FlangeThickness; this.FilletRadius = FilletRadius; this.FlangeEdgeRadius = FlangeEdgeRadius; this.WebEdgeRadius = WebEdgeRadius; this.WebSlope = WebSlope; this.FlangeSlope = FlangeSlope; this.type = 3071757647; } } IFC4_32.IfcTShapeProfileDef = IfcTShapeProfileDef; class IfcTessellatedItem extends IfcGeometricRepresentationItem { constructor(expressID) { super(expressID); this.type = 901063453; } } IFC4_32.IfcTessellatedItem = IfcTessellatedItem; class IfcTextLiteral extends IfcGeometricRepresentationItem { constructor(expressID, Literal, Placement, Path) { super(expressID); this.Literal = Literal; this.Placement = Placement; this.Path = Path; this.type = 4282788508; } } IFC4_32.IfcTextLiteral = IfcTextLiteral; class IfcTextLiteralWithExtent extends IfcTextLiteral { constructor(expressID, Literal, Placement, Path, Extent, BoxAlignment) { super(expressID, Literal, Placement, Path); this.Literal = Literal; this.Placement = Placement; this.Path = Path; this.Extent = Extent; this.BoxAlignment = BoxAlignment; this.type = 3124975700; } } IFC4_32.IfcTextLiteralWithExtent = IfcTextLiteralWithExtent; class IfcTextStyleFontModel extends IfcPreDefinedTextFont { constructor(expressID, Name, FontFamily, FontStyle, FontVariant, FontWeight, FontSize) { super(expressID, Name); this.Name = Name; this.FontFamily = FontFamily; this.FontStyle = FontStyle; this.FontVariant = FontVariant; this.FontWeight = FontWeight; this.FontSize = FontSize; this.type = 1983826977; } } IFC4_32.IfcTextStyleFontModel = IfcTextStyleFontModel; class IfcTrapeziumProfileDef extends IfcParameterizedProfileDef { constructor(expressID, ProfileType, ProfileName, Position, BottomXDim, TopXDim, YDim, TopXOffset) { super(expressID, ProfileType, ProfileName, Position); this.ProfileType = ProfileType; this.ProfileName = ProfileName; this.Position = Position; this.BottomXDim = BottomXDim; this.TopXDim = TopXDim; this.YDim = YDim; this.TopXOffset = TopXOffset; this.type = 2715220739; } } IFC4_32.IfcTrapeziumProfileDef = IfcTrapeziumProfileDef; class IfcTypeObject extends IfcObjectDefinition { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets) { super(expressID, GlobalId, OwnerHistory, Name, Description); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.type = 1628702193; } } IFC4_32.IfcTypeObject = IfcTypeObject; class IfcTypeProcess extends IfcTypeObject { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ProcessType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.Identification = Identification; this.LongDescription = LongDescription; this.ProcessType = ProcessType; this.type = 3736923433; } } IFC4_32.IfcTypeProcess = IfcTypeProcess; class IfcTypeProduct extends IfcTypeObject { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.type = 2347495698; } } IFC4_32.IfcTypeProduct = IfcTypeProduct; class IfcTypeResource extends IfcTypeObject { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.Identification = Identification; this.LongDescription = LongDescription; this.ResourceType = ResourceType; this.type = 3698973494; } } IFC4_32.IfcTypeResource = IfcTypeResource; class IfcUShapeProfileDef extends IfcParameterizedProfileDef { constructor(expressID, ProfileType, ProfileName, Position, Depth, FlangeWidth, WebThickness, FlangeThickness, FilletRadius, EdgeRadius, FlangeSlope) { super(expressID, ProfileType, ProfileName, Position); this.ProfileType = ProfileType; this.ProfileName = ProfileName; this.Position = Position; this.Depth = Depth; this.FlangeWidth = FlangeWidth; this.WebThickness = WebThickness; this.FlangeThickness = FlangeThickness; this.FilletRadius = FilletRadius; this.EdgeRadius = EdgeRadius; this.FlangeSlope = FlangeSlope; this.type = 427810014; } } IFC4_32.IfcUShapeProfileDef = IfcUShapeProfileDef; class IfcVector extends IfcGeometricRepresentationItem { constructor(expressID, Orientation, Magnitude) { super(expressID); this.Orientation = Orientation; this.Magnitude = Magnitude; this.type = 1417489154; } } IFC4_32.IfcVector = IfcVector; class IfcVertexLoop extends IfcLoop { constructor(expressID, LoopVertex) { super(expressID); this.LoopVertex = LoopVertex; this.type = 2759199220; } } IFC4_32.IfcVertexLoop = IfcVertexLoop; class IfcZShapeProfileDef extends IfcParameterizedProfileDef { constructor(expressID, ProfileType, ProfileName, Position, Depth, FlangeWidth, WebThickness, FlangeThickness, FilletRadius, EdgeRadius) { super(expressID, ProfileType, ProfileName, Position); this.ProfileType = ProfileType; this.ProfileName = ProfileName; this.Position = Position; this.Depth = Depth; this.FlangeWidth = FlangeWidth; this.WebThickness = WebThickness; this.FlangeThickness = FlangeThickness; this.FilletRadius = FilletRadius; this.EdgeRadius = EdgeRadius; this.type = 2543172580; } } IFC4_32.IfcZShapeProfileDef = IfcZShapeProfileDef; class IfcAdvancedFace extends IfcFaceSurface { constructor(expressID, Bounds, FaceSurface, SameSense) { super(expressID, Bounds, FaceSurface, SameSense); this.Bounds = Bounds; this.FaceSurface = FaceSurface; this.SameSense = SameSense; this.type = 3406155212; } } IFC4_32.IfcAdvancedFace = IfcAdvancedFace; class IfcAnnotationFillArea extends IfcGeometricRepresentationItem { constructor(expressID, OuterBoundary, InnerBoundaries) { super(expressID); this.OuterBoundary = OuterBoundary; this.InnerBoundaries = InnerBoundaries; this.type = 669184980; } } IFC4_32.IfcAnnotationFillArea = IfcAnnotationFillArea; class IfcAsymmetricIShapeProfileDef extends IfcParameterizedProfileDef { constructor(expressID, ProfileType, ProfileName, Position, BottomFlangeWidth, OverallDepth, WebThickness, BottomFlangeThickness, BottomFlangeFilletRadius, TopFlangeWidth, TopFlangeThickness, TopFlangeFilletRadius, BottomFlangeEdgeRadius, BottomFlangeSlope, TopFlangeEdgeRadius, TopFlangeSlope) { super(expressID, ProfileType, ProfileName, Position); this.ProfileType = ProfileType; this.ProfileName = ProfileName; this.Position = Position; this.BottomFlangeWidth = BottomFlangeWidth; this.OverallDepth = OverallDepth; this.WebThickness = WebThickness; this.BottomFlangeThickness = BottomFlangeThickness; this.BottomFlangeFilletRadius = BottomFlangeFilletRadius; this.TopFlangeWidth = TopFlangeWidth; this.TopFlangeThickness = TopFlangeThickness; this.TopFlangeFilletRadius = TopFlangeFilletRadius; this.BottomFlangeEdgeRadius = BottomFlangeEdgeRadius; this.BottomFlangeSlope = BottomFlangeSlope; this.TopFlangeEdgeRadius = TopFlangeEdgeRadius; this.TopFlangeSlope = TopFlangeSlope; this.type = 3207858831; } } IFC4_32.IfcAsymmetricIShapeProfileDef = IfcAsymmetricIShapeProfileDef; class IfcAxis1Placement extends IfcPlacement { constructor(expressID, Location, Axis) { super(expressID, Location); this.Location = Location; this.Axis = Axis; this.type = 4261334040; } } IFC4_32.IfcAxis1Placement = IfcAxis1Placement; class IfcAxis2Placement2D extends IfcPlacement { constructor(expressID, Location, RefDirection) { super(expressID, Location); this.Location = Location; this.RefDirection = RefDirection; this.type = 3125803723; } } IFC4_32.IfcAxis2Placement2D = IfcAxis2Placement2D; class IfcAxis2Placement3D extends IfcPlacement { constructor(expressID, Location, Axis, RefDirection) { super(expressID, Location); this.Location = Location; this.Axis = Axis; this.RefDirection = RefDirection; this.type = 2740243338; } } IFC4_32.IfcAxis2Placement3D = IfcAxis2Placement3D; class IfcAxis2PlacementLinear extends IfcPlacement { constructor(expressID, Location, Axis, RefDirection) { super(expressID, Location); this.Location = Location; this.Axis = Axis; this.RefDirection = RefDirection; this.type = 3425423356; } } IFC4_32.IfcAxis2PlacementLinear = IfcAxis2PlacementLinear; class IfcBooleanResult extends IfcGeometricRepresentationItem { constructor(expressID, Operator, FirstOperand, SecondOperand) { super(expressID); this.Operator = Operator; this.FirstOperand = FirstOperand; this.SecondOperand = SecondOperand; this.type = 2736907675; } } IFC4_32.IfcBooleanResult = IfcBooleanResult; class IfcBoundedSurface extends IfcSurface { constructor(expressID) { super(expressID); this.type = 4182860854; } } IFC4_32.IfcBoundedSurface = IfcBoundedSurface; class IfcBoundingBox extends IfcGeometricRepresentationItem { constructor(expressID, Corner, XDim, YDim, ZDim) { super(expressID); this.Corner = Corner; this.XDim = XDim; this.YDim = YDim; this.ZDim = ZDim; this.type = 2581212453; } } IFC4_32.IfcBoundingBox = IfcBoundingBox; class IfcBoxedHalfSpace extends IfcHalfSpaceSolid { constructor(expressID, BaseSurface, AgreementFlag, Enclosure) { super(expressID, BaseSurface, AgreementFlag); this.BaseSurface = BaseSurface; this.AgreementFlag = AgreementFlag; this.Enclosure = Enclosure; this.type = 2713105998; } } IFC4_32.IfcBoxedHalfSpace = IfcBoxedHalfSpace; class IfcCShapeProfileDef extends IfcParameterizedProfileDef { constructor(expressID, ProfileType, ProfileName, Position, Depth, Width, WallThickness, Girth, InternalFilletRadius) { super(expressID, ProfileType, ProfileName, Position); this.ProfileType = ProfileType; this.ProfileName = ProfileName; this.Position = Position; this.Depth = Depth; this.Width = Width; this.WallThickness = WallThickness; this.Girth = Girth; this.InternalFilletRadius = InternalFilletRadius; this.type = 2898889636; } } IFC4_32.IfcCShapeProfileDef = IfcCShapeProfileDef; class IfcCartesianPoint extends IfcPoint { constructor(expressID, Coordinates) { super(expressID); this.Coordinates = Coordinates; this.type = 1123145078; } } IFC4_32.IfcCartesianPoint = IfcCartesianPoint; class IfcCartesianPointList extends IfcGeometricRepresentationItem { constructor(expressID) { super(expressID); this.type = 574549367; } } IFC4_32.IfcCartesianPointList = IfcCartesianPointList; class IfcCartesianPointList2D extends IfcCartesianPointList { constructor(expressID, CoordList, TagList) { super(expressID); this.CoordList = CoordList; this.TagList = TagList; this.type = 1675464909; } } IFC4_32.IfcCartesianPointList2D = IfcCartesianPointList2D; class IfcCartesianPointList3D extends IfcCartesianPointList { constructor(expressID, CoordList, TagList) { super(expressID); this.CoordList = CoordList; this.TagList = TagList; this.type = 2059837836; } } IFC4_32.IfcCartesianPointList3D = IfcCartesianPointList3D; class IfcCartesianTransformationOperator extends IfcGeometricRepresentationItem { constructor(expressID, Axis1, Axis2, LocalOrigin, Scale) { super(expressID); this.Axis1 = Axis1; this.Axis2 = Axis2; this.LocalOrigin = LocalOrigin; this.Scale = Scale; this.type = 59481748; } } IFC4_32.IfcCartesianTransformationOperator = IfcCartesianTransformationOperator; class IfcCartesianTransformationOperator2D extends IfcCartesianTransformationOperator { constructor(expressID, Axis1, Axis2, LocalOrigin, Scale) { super(expressID, Axis1, Axis2, LocalOrigin, Scale); this.Axis1 = Axis1; this.Axis2 = Axis2; this.LocalOrigin = LocalOrigin; this.Scale = Scale; this.type = 3749851601; } } IFC4_32.IfcCartesianTransformationOperator2D = IfcCartesianTransformationOperator2D; class IfcCartesianTransformationOperator2DnonUniform extends IfcCartesianTransformationOperator2D { constructor(expressID, Axis1, Axis2, LocalOrigin, Scale, Scale2) { super(expressID, Axis1, Axis2, LocalOrigin, Scale); this.Axis1 = Axis1; this.Axis2 = Axis2; this.LocalOrigin = LocalOrigin; this.Scale = Scale; this.Scale2 = Scale2; this.type = 3486308946; } } IFC4_32.IfcCartesianTransformationOperator2DnonUniform = IfcCartesianTransformationOperator2DnonUniform; class IfcCartesianTransformationOperator3D extends IfcCartesianTransformationOperator { constructor(expressID, Axis1, Axis2, LocalOrigin, Scale, Axis3) { super(expressID, Axis1, Axis2, LocalOrigin, Scale); this.Axis1 = Axis1; this.Axis2 = Axis2; this.LocalOrigin = LocalOrigin; this.Scale = Scale; this.Axis3 = Axis3; this.type = 3331915920; } } IFC4_32.IfcCartesianTransformationOperator3D = IfcCartesianTransformationOperator3D; class IfcCartesianTransformationOperator3DnonUniform extends IfcCartesianTransformationOperator3D { constructor(expressID, Axis1, Axis2, LocalOrigin, Scale, Axis3, Scale2, Scale3) { super(expressID, Axis1, Axis2, LocalOrigin, Scale, Axis3); this.Axis1 = Axis1; this.Axis2 = Axis2; this.LocalOrigin = LocalOrigin; this.Scale = Scale; this.Axis3 = Axis3; this.Scale2 = Scale2; this.Scale3 = Scale3; this.type = 1416205885; } } IFC4_32.IfcCartesianTransformationOperator3DnonUniform = IfcCartesianTransformationOperator3DnonUniform; class IfcCircleProfileDef extends IfcParameterizedProfileDef { constructor(expressID, ProfileType, ProfileName, Position, Radius) { super(expressID, ProfileType, ProfileName, Position); this.ProfileType = ProfileType; this.ProfileName = ProfileName; this.Position = Position; this.Radius = Radius; this.type = 1383045692; } } IFC4_32.IfcCircleProfileDef = IfcCircleProfileDef; class IfcClosedShell extends IfcConnectedFaceSet { constructor(expressID, CfsFaces) { super(expressID, CfsFaces); this.CfsFaces = CfsFaces; this.type = 2205249479; } } IFC4_32.IfcClosedShell = IfcClosedShell; class IfcColourRgb extends IfcColourSpecification { constructor(expressID, Name, Red, Green, Blue) { super(expressID, Name); this.Name = Name; this.Red = Red; this.Green = Green; this.Blue = Blue; this.type = 776857604; } } IFC4_32.IfcColourRgb = IfcColourRgb; class IfcComplexProperty extends IfcProperty { constructor(expressID, Name, Specification, UsageName, HasProperties) { super(expressID, Name, Specification); this.Name = Name; this.Specification = Specification; this.UsageName = UsageName; this.HasProperties = HasProperties; this.type = 2542286263; } } IFC4_32.IfcComplexProperty = IfcComplexProperty; class IfcCompositeCurveSegment extends IfcSegment { constructor(expressID, Transition, SameSense, ParentCurve) { super(expressID, Transition); this.Transition = Transition; this.SameSense = SameSense; this.ParentCurve = ParentCurve; this.type = 2485617015; } } IFC4_32.IfcCompositeCurveSegment = IfcCompositeCurveSegment; class IfcConstructionResourceType extends IfcTypeResource { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.Identification = Identification; this.LongDescription = LongDescription; this.ResourceType = ResourceType; this.BaseCosts = BaseCosts; this.BaseQuantity = BaseQuantity; this.type = 2574617495; } } IFC4_32.IfcConstructionResourceType = IfcConstructionResourceType; class IfcContext extends IfcObjectDefinition { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, LongName, Phase, RepresentationContexts, UnitsInContext) { super(expressID, GlobalId, OwnerHistory, Name, Description); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.LongName = LongName; this.Phase = Phase; this.RepresentationContexts = RepresentationContexts; this.UnitsInContext = UnitsInContext; this.type = 3419103109; } } IFC4_32.IfcContext = IfcContext; class IfcCrewResourceType extends IfcConstructionResourceType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.Identification = Identification; this.LongDescription = LongDescription; this.ResourceType = ResourceType; this.BaseCosts = BaseCosts; this.BaseQuantity = BaseQuantity; this.PredefinedType = PredefinedType; this.type = 1815067380; } } IFC4_32.IfcCrewResourceType = IfcCrewResourceType; class IfcCsgPrimitive3D extends IfcGeometricRepresentationItem { constructor(expressID, Position) { super(expressID); this.Position = Position; this.type = 2506170314; } } IFC4_32.IfcCsgPrimitive3D = IfcCsgPrimitive3D; class IfcCsgSolid extends IfcSolidModel { constructor(expressID, TreeRootExpression) { super(expressID); this.TreeRootExpression = TreeRootExpression; this.type = 2147822146; } } IFC4_32.IfcCsgSolid = IfcCsgSolid; class IfcCurve extends IfcGeometricRepresentationItem { constructor(expressID) { super(expressID); this.type = 2601014836; } } IFC4_32.IfcCurve = IfcCurve; class IfcCurveBoundedPlane extends IfcBoundedSurface { constructor(expressID, BasisSurface, OuterBoundary, InnerBoundaries) { super(expressID); this.BasisSurface = BasisSurface; this.OuterBoundary = OuterBoundary; this.InnerBoundaries = InnerBoundaries; this.type = 2827736869; } } IFC4_32.IfcCurveBoundedPlane = IfcCurveBoundedPlane; class IfcCurveBoundedSurface extends IfcBoundedSurface { constructor(expressID, BasisSurface, Boundaries, ImplicitOuter) { super(expressID); this.BasisSurface = BasisSurface; this.Boundaries = Boundaries; this.ImplicitOuter = ImplicitOuter; this.type = 2629017746; } } IFC4_32.IfcCurveBoundedSurface = IfcCurveBoundedSurface; class IfcCurveSegment extends IfcSegment { constructor(expressID, Transition, Placement, SegmentStart, SegmentLength, ParentCurve) { super(expressID, Transition); this.Transition = Transition; this.Placement = Placement; this.SegmentStart = SegmentStart; this.SegmentLength = SegmentLength; this.ParentCurve = ParentCurve; this.type = 4212018352; } } IFC4_32.IfcCurveSegment = IfcCurveSegment; class IfcDirection extends IfcGeometricRepresentationItem { constructor(expressID, DirectionRatios) { super(expressID); this.DirectionRatios = DirectionRatios; this.type = 32440307; } } IFC4_32.IfcDirection = IfcDirection; class IfcDirectrixCurveSweptAreaSolid extends IfcSweptAreaSolid { constructor(expressID, SweptArea, Position, Directrix, StartParam, EndParam) { super(expressID, SweptArea, Position); this.SweptArea = SweptArea; this.Position = Position; this.Directrix = Directrix; this.StartParam = StartParam; this.EndParam = EndParam; this.type = 593015953; } } IFC4_32.IfcDirectrixCurveSweptAreaSolid = IfcDirectrixCurveSweptAreaSolid; class IfcEdgeLoop extends IfcLoop { constructor(expressID, EdgeList) { super(expressID); this.EdgeList = EdgeList; this.type = 1472233963; } } IFC4_32.IfcEdgeLoop = IfcEdgeLoop; class IfcElementQuantity extends IfcQuantitySet { constructor(expressID, GlobalId, OwnerHistory, Name, Description, MethodOfMeasurement, Quantities) { super(expressID, GlobalId, OwnerHistory, Name, Description); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.MethodOfMeasurement = MethodOfMeasurement; this.Quantities = Quantities; this.type = 1883228015; } } IFC4_32.IfcElementQuantity = IfcElementQuantity; class IfcElementType extends IfcTypeProduct { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.type = 339256511; } } IFC4_32.IfcElementType = IfcElementType; class IfcElementarySurface extends IfcSurface { constructor(expressID, Position) { super(expressID); this.Position = Position; this.type = 2777663545; } } IFC4_32.IfcElementarySurface = IfcElementarySurface; class IfcEllipseProfileDef extends IfcParameterizedProfileDef { constructor(expressID, ProfileType, ProfileName, Position, SemiAxis1, SemiAxis2) { super(expressID, ProfileType, ProfileName, Position); this.ProfileType = ProfileType; this.ProfileName = ProfileName; this.Position = Position; this.SemiAxis1 = SemiAxis1; this.SemiAxis2 = SemiAxis2; this.type = 2835456948; } } IFC4_32.IfcEllipseProfileDef = IfcEllipseProfileDef; class IfcEventType extends IfcTypeProcess { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ProcessType, PredefinedType, EventTriggerType, UserDefinedEventTriggerType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ProcessType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.Identification = Identification; this.LongDescription = LongDescription; this.ProcessType = ProcessType; this.PredefinedType = PredefinedType; this.EventTriggerType = EventTriggerType; this.UserDefinedEventTriggerType = UserDefinedEventTriggerType; this.type = 4024345920; } } IFC4_32.IfcEventType = IfcEventType; class IfcExtrudedAreaSolid extends IfcSweptAreaSolid { constructor(expressID, SweptArea, Position, ExtrudedDirection, Depth) { super(expressID, SweptArea, Position); this.SweptArea = SweptArea; this.Position = Position; this.ExtrudedDirection = ExtrudedDirection; this.Depth = Depth; this.type = 477187591; } } IFC4_32.IfcExtrudedAreaSolid = IfcExtrudedAreaSolid; class IfcExtrudedAreaSolidTapered extends IfcExtrudedAreaSolid { constructor(expressID, SweptArea, Position, ExtrudedDirection, Depth, EndSweptArea) { super(expressID, SweptArea, Position, ExtrudedDirection, Depth); this.SweptArea = SweptArea; this.Position = Position; this.ExtrudedDirection = ExtrudedDirection; this.Depth = Depth; this.EndSweptArea = EndSweptArea; this.type = 2804161546; } } IFC4_32.IfcExtrudedAreaSolidTapered = IfcExtrudedAreaSolidTapered; class IfcFaceBasedSurfaceModel extends IfcGeometricRepresentationItem { constructor(expressID, FbsmFaces) { super(expressID); this.FbsmFaces = FbsmFaces; this.type = 2047409740; } } IFC4_32.IfcFaceBasedSurfaceModel = IfcFaceBasedSurfaceModel; class IfcFillAreaStyleHatching extends IfcGeometricRepresentationItem { constructor(expressID, HatchLineAppearance, StartOfNextHatchLine, PointOfReferenceHatchLine, PatternStart, HatchLineAngle) { super(expressID); this.HatchLineAppearance = HatchLineAppearance; this.StartOfNextHatchLine = StartOfNextHatchLine; this.PointOfReferenceHatchLine = PointOfReferenceHatchLine; this.PatternStart = PatternStart; this.HatchLineAngle = HatchLineAngle; this.type = 374418227; } } IFC4_32.IfcFillAreaStyleHatching = IfcFillAreaStyleHatching; class IfcFillAreaStyleTiles extends IfcGeometricRepresentationItem { constructor(expressID, TilingPattern, Tiles, TilingScale) { super(expressID); this.TilingPattern = TilingPattern; this.Tiles = Tiles; this.TilingScale = TilingScale; this.type = 315944413; } } IFC4_32.IfcFillAreaStyleTiles = IfcFillAreaStyleTiles; class IfcFixedReferenceSweptAreaSolid extends IfcDirectrixCurveSweptAreaSolid { constructor(expressID, SweptArea, Position, Directrix, StartParam, EndParam, FixedReference) { super(expressID, SweptArea, Position, Directrix, StartParam, EndParam); this.SweptArea = SweptArea; this.Position = Position; this.Directrix = Directrix; this.StartParam = StartParam; this.EndParam = EndParam; this.FixedReference = FixedReference; this.type = 2652556860; } } IFC4_32.IfcFixedReferenceSweptAreaSolid = IfcFixedReferenceSweptAreaSolid; class IfcFurnishingElementType extends IfcElementType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.type = 4238390223; } } IFC4_32.IfcFurnishingElementType = IfcFurnishingElementType; class IfcFurnitureType extends IfcFurnishingElementType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, AssemblyPlace, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.AssemblyPlace = AssemblyPlace; this.PredefinedType = PredefinedType; this.type = 1268542332; } } IFC4_32.IfcFurnitureType = IfcFurnitureType; class IfcGeographicElementType extends IfcElementType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 4095422895; } } IFC4_32.IfcGeographicElementType = IfcGeographicElementType; class IfcGeometricCurveSet extends IfcGeometricSet { constructor(expressID, Elements) { super(expressID, Elements); this.Elements = Elements; this.type = 987898635; } } IFC4_32.IfcGeometricCurveSet = IfcGeometricCurveSet; class IfcIShapeProfileDef extends IfcParameterizedProfileDef { constructor(expressID, ProfileType, ProfileName, Position, OverallWidth, OverallDepth, WebThickness, FlangeThickness, FilletRadius, FlangeEdgeRadius, FlangeSlope) { super(expressID, ProfileType, ProfileName, Position); this.ProfileType = ProfileType; this.ProfileName = ProfileName; this.Position = Position; this.OverallWidth = OverallWidth; this.OverallDepth = OverallDepth; this.WebThickness = WebThickness; this.FlangeThickness = FlangeThickness; this.FilletRadius = FilletRadius; this.FlangeEdgeRadius = FlangeEdgeRadius; this.FlangeSlope = FlangeSlope; this.type = 1484403080; } } IFC4_32.IfcIShapeProfileDef = IfcIShapeProfileDef; class IfcIndexedPolygonalFace extends IfcTessellatedItem { constructor(expressID, CoordIndex) { super(expressID); this.CoordIndex = CoordIndex; this.type = 178912537; } } IFC4_32.IfcIndexedPolygonalFace = IfcIndexedPolygonalFace; class IfcIndexedPolygonalFaceWithVoids extends IfcIndexedPolygonalFace { constructor(expressID, CoordIndex, InnerCoordIndices) { super(expressID, CoordIndex); this.CoordIndex = CoordIndex; this.InnerCoordIndices = InnerCoordIndices; this.type = 2294589976; } } IFC4_32.IfcIndexedPolygonalFaceWithVoids = IfcIndexedPolygonalFaceWithVoids; class IfcIndexedPolygonalTextureMap extends IfcIndexedTextureMap { constructor(expressID, Maps, MappedTo, TexCoords, TexCoordIndices) { super(expressID, Maps, MappedTo, TexCoords); this.Maps = Maps; this.MappedTo = MappedTo; this.TexCoords = TexCoords; this.TexCoordIndices = TexCoordIndices; this.type = 3465909080; } } IFC4_32.IfcIndexedPolygonalTextureMap = IfcIndexedPolygonalTextureMap; class IfcLShapeProfileDef extends IfcParameterizedProfileDef { constructor(expressID, ProfileType, ProfileName, Position, Depth, Width, Thickness, FilletRadius, EdgeRadius, LegSlope) { super(expressID, ProfileType, ProfileName, Position); this.ProfileType = ProfileType; this.ProfileName = ProfileName; this.Position = Position; this.Depth = Depth; this.Width = Width; this.Thickness = Thickness; this.FilletRadius = FilletRadius; this.EdgeRadius = EdgeRadius; this.LegSlope = LegSlope; this.type = 572779678; } } IFC4_32.IfcLShapeProfileDef = IfcLShapeProfileDef; class IfcLaborResourceType extends IfcConstructionResourceType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.Identification = Identification; this.LongDescription = LongDescription; this.ResourceType = ResourceType; this.BaseCosts = BaseCosts; this.BaseQuantity = BaseQuantity; this.PredefinedType = PredefinedType; this.type = 428585644; } } IFC4_32.IfcLaborResourceType = IfcLaborResourceType; class IfcLine extends IfcCurve { constructor(expressID, Pnt, Dir) { super(expressID); this.Pnt = Pnt; this.Dir = Dir; this.type = 1281925730; } } IFC4_32.IfcLine = IfcLine; class IfcManifoldSolidBrep extends IfcSolidModel { constructor(expressID, Outer) { super(expressID); this.Outer = Outer; this.type = 1425443689; } } IFC4_32.IfcManifoldSolidBrep = IfcManifoldSolidBrep; class IfcObject extends IfcObjectDefinition { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType) { super(expressID, GlobalId, OwnerHistory, Name, Description); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.type = 3888040117; } } IFC4_32.IfcObject = IfcObject; class IfcOffsetCurve extends IfcCurve { constructor(expressID, BasisCurve) { super(expressID); this.BasisCurve = BasisCurve; this.type = 590820931; } } IFC4_32.IfcOffsetCurve = IfcOffsetCurve; class IfcOffsetCurve2D extends IfcOffsetCurve { constructor(expressID, BasisCurve, Distance, SelfIntersect) { super(expressID, BasisCurve); this.BasisCurve = BasisCurve; this.Distance = Distance; this.SelfIntersect = SelfIntersect; this.type = 3388369263; } } IFC4_32.IfcOffsetCurve2D = IfcOffsetCurve2D; class IfcOffsetCurve3D extends IfcOffsetCurve { constructor(expressID, BasisCurve, Distance, SelfIntersect, RefDirection) { super(expressID, BasisCurve); this.BasisCurve = BasisCurve; this.Distance = Distance; this.SelfIntersect = SelfIntersect; this.RefDirection = RefDirection; this.type = 3505215534; } } IFC4_32.IfcOffsetCurve3D = IfcOffsetCurve3D; class IfcOffsetCurveByDistances extends IfcOffsetCurve { constructor(expressID, BasisCurve, OffsetValues, Tag) { super(expressID, BasisCurve); this.BasisCurve = BasisCurve; this.OffsetValues = OffsetValues; this.Tag = Tag; this.type = 2485787929; } } IFC4_32.IfcOffsetCurveByDistances = IfcOffsetCurveByDistances; class IfcPcurve extends IfcCurve { constructor(expressID, BasisSurface, ReferenceCurve) { super(expressID); this.BasisSurface = BasisSurface; this.ReferenceCurve = ReferenceCurve; this.type = 1682466193; } } IFC4_32.IfcPcurve = IfcPcurve; class IfcPlanarBox extends IfcPlanarExtent { constructor(expressID, SizeInX, SizeInY, Placement) { super(expressID, SizeInX, SizeInY); this.SizeInX = SizeInX; this.SizeInY = SizeInY; this.Placement = Placement; this.type = 603570806; } } IFC4_32.IfcPlanarBox = IfcPlanarBox; class IfcPlane extends IfcElementarySurface { constructor(expressID, Position) { super(expressID, Position); this.Position = Position; this.type = 220341763; } } IFC4_32.IfcPlane = IfcPlane; class IfcPolynomialCurve extends IfcCurve { constructor(expressID, Position, CoefficientsX, CoefficientsY, CoefficientsZ) { super(expressID); this.Position = Position; this.CoefficientsX = CoefficientsX; this.CoefficientsY = CoefficientsY; this.CoefficientsZ = CoefficientsZ; this.type = 3381221214; } } IFC4_32.IfcPolynomialCurve = IfcPolynomialCurve; class IfcPreDefinedColour extends IfcPreDefinedItem { constructor(expressID, Name) { super(expressID, Name); this.Name = Name; this.type = 759155922; } } IFC4_32.IfcPreDefinedColour = IfcPreDefinedColour; class IfcPreDefinedCurveFont extends IfcPreDefinedItem { constructor(expressID, Name) { super(expressID, Name); this.Name = Name; this.type = 2559016684; } } IFC4_32.IfcPreDefinedCurveFont = IfcPreDefinedCurveFont; class IfcPreDefinedPropertySet extends IfcPropertySetDefinition { constructor(expressID, GlobalId, OwnerHistory, Name, Description) { super(expressID, GlobalId, OwnerHistory, Name, Description); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.type = 3967405729; } } IFC4_32.IfcPreDefinedPropertySet = IfcPreDefinedPropertySet; class IfcProcedureType extends IfcTypeProcess { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ProcessType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ProcessType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.Identification = Identification; this.LongDescription = LongDescription; this.ProcessType = ProcessType; this.PredefinedType = PredefinedType; this.type = 569719735; } } IFC4_32.IfcProcedureType = IfcProcedureType; class IfcProcess extends IfcObject { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.Identification = Identification; this.LongDescription = LongDescription; this.type = 2945172077; } } IFC4_32.IfcProcess = IfcProcess; class IfcProduct extends IfcObject { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.type = 4208778838; } } IFC4_32.IfcProduct = IfcProduct; class IfcProject extends IfcContext { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, LongName, Phase, RepresentationContexts, UnitsInContext) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, LongName, Phase, RepresentationContexts, UnitsInContext); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.LongName = LongName; this.Phase = Phase; this.RepresentationContexts = RepresentationContexts; this.UnitsInContext = UnitsInContext; this.type = 103090709; } } IFC4_32.IfcProject = IfcProject; class IfcProjectLibrary extends IfcContext { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, LongName, Phase, RepresentationContexts, UnitsInContext) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, LongName, Phase, RepresentationContexts, UnitsInContext); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.LongName = LongName; this.Phase = Phase; this.RepresentationContexts = RepresentationContexts; this.UnitsInContext = UnitsInContext; this.type = 653396225; } } IFC4_32.IfcProjectLibrary = IfcProjectLibrary; class IfcPropertyBoundedValue extends IfcSimpleProperty { constructor(expressID, Name, Specification, UpperBoundValue, LowerBoundValue, Unit, SetPointValue) { super(expressID, Name, Specification); this.Name = Name; this.Specification = Specification; this.UpperBoundValue = UpperBoundValue; this.LowerBoundValue = LowerBoundValue; this.Unit = Unit; this.SetPointValue = SetPointValue; this.type = 871118103; } } IFC4_32.IfcPropertyBoundedValue = IfcPropertyBoundedValue; class IfcPropertyEnumeratedValue extends IfcSimpleProperty { constructor(expressID, Name, Specification, EnumerationValues, EnumerationReference) { super(expressID, Name, Specification); this.Name = Name; this.Specification = Specification; this.EnumerationValues = EnumerationValues; this.EnumerationReference = EnumerationReference; this.type = 4166981789; } } IFC4_32.IfcPropertyEnumeratedValue = IfcPropertyEnumeratedValue; class IfcPropertyListValue extends IfcSimpleProperty { constructor(expressID, Name, Specification, ListValues, Unit) { super(expressID, Name, Specification); this.Name = Name; this.Specification = Specification; this.ListValues = ListValues; this.Unit = Unit; this.type = 2752243245; } } IFC4_32.IfcPropertyListValue = IfcPropertyListValue; class IfcPropertyReferenceValue extends IfcSimpleProperty { constructor(expressID, Name, Specification, UsageName, PropertyReference) { super(expressID, Name, Specification); this.Name = Name; this.Specification = Specification; this.UsageName = UsageName; this.PropertyReference = PropertyReference; this.type = 941946838; } } IFC4_32.IfcPropertyReferenceValue = IfcPropertyReferenceValue; class IfcPropertySet extends IfcPropertySetDefinition { constructor(expressID, GlobalId, OwnerHistory, Name, Description, HasProperties) { super(expressID, GlobalId, OwnerHistory, Name, Description); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.HasProperties = HasProperties; this.type = 1451395588; } } IFC4_32.IfcPropertySet = IfcPropertySet; class IfcPropertySetTemplate extends IfcPropertyTemplateDefinition { constructor(expressID, GlobalId, OwnerHistory, Name, Description, TemplateType, ApplicableEntity, HasPropertyTemplates) { super(expressID, GlobalId, OwnerHistory, Name, Description); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.TemplateType = TemplateType; this.ApplicableEntity = ApplicableEntity; this.HasPropertyTemplates = HasPropertyTemplates; this.type = 492091185; } } IFC4_32.IfcPropertySetTemplate = IfcPropertySetTemplate; class IfcPropertySingleValue extends IfcSimpleProperty { constructor(expressID, Name, Specification, NominalValue, Unit) { super(expressID, Name, Specification); this.Name = Name; this.Specification = Specification; this.NominalValue = NominalValue; this.Unit = Unit; this.type = 3650150729; } } IFC4_32.IfcPropertySingleValue = IfcPropertySingleValue; class IfcPropertyTableValue extends IfcSimpleProperty { constructor(expressID, Name, Specification, DefiningValues, DefinedValues, Expression, DefiningUnit, DefinedUnit, CurveInterpolation) { super(expressID, Name, Specification); this.Name = Name; this.Specification = Specification; this.DefiningValues = DefiningValues; this.DefinedValues = DefinedValues; this.Expression = Expression; this.DefiningUnit = DefiningUnit; this.DefinedUnit = DefinedUnit; this.CurveInterpolation = CurveInterpolation; this.type = 110355661; } } IFC4_32.IfcPropertyTableValue = IfcPropertyTableValue; class IfcPropertyTemplate extends IfcPropertyTemplateDefinition { constructor(expressID, GlobalId, OwnerHistory, Name, Description) { super(expressID, GlobalId, OwnerHistory, Name, Description); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.type = 3521284610; } } IFC4_32.IfcPropertyTemplate = IfcPropertyTemplate; class IfcRectangleHollowProfileDef extends IfcRectangleProfileDef { constructor(expressID, ProfileType, ProfileName, Position, XDim, YDim, WallThickness, InnerFilletRadius, OuterFilletRadius) { super(expressID, ProfileType, ProfileName, Position, XDim, YDim); this.ProfileType = ProfileType; this.ProfileName = ProfileName; this.Position = Position; this.XDim = XDim; this.YDim = YDim; this.WallThickness = WallThickness; this.InnerFilletRadius = InnerFilletRadius; this.OuterFilletRadius = OuterFilletRadius; this.type = 2770003689; } } IFC4_32.IfcRectangleHollowProfileDef = IfcRectangleHollowProfileDef; class IfcRectangularPyramid extends IfcCsgPrimitive3D { constructor(expressID, Position, XLength, YLength, Height) { super(expressID, Position); this.Position = Position; this.XLength = XLength; this.YLength = YLength; this.Height = Height; this.type = 2798486643; } } IFC4_32.IfcRectangularPyramid = IfcRectangularPyramid; class IfcRectangularTrimmedSurface extends IfcBoundedSurface { constructor(expressID, BasisSurface, U1, V1, U2, V2, Usense, Vsense) { super(expressID); this.BasisSurface = BasisSurface; this.U1 = U1; this.V1 = V1; this.U2 = U2; this.V2 = V2; this.Usense = Usense; this.Vsense = Vsense; this.type = 3454111270; } } IFC4_32.IfcRectangularTrimmedSurface = IfcRectangularTrimmedSurface; class IfcReinforcementDefinitionProperties extends IfcPreDefinedPropertySet { constructor(expressID, GlobalId, OwnerHistory, Name, Description, DefinitionType, ReinforcementSectionDefinitions) { super(expressID, GlobalId, OwnerHistory, Name, Description); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.DefinitionType = DefinitionType; this.ReinforcementSectionDefinitions = ReinforcementSectionDefinitions; this.type = 3765753017; } } IFC4_32.IfcReinforcementDefinitionProperties = IfcReinforcementDefinitionProperties; class IfcRelAssigns extends IfcRelationship { constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType) { super(expressID, GlobalId, OwnerHistory, Name, Description); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.RelatedObjects = RelatedObjects; this.RelatedObjectsType = RelatedObjectsType; this.type = 3939117080; } } IFC4_32.IfcRelAssigns = IfcRelAssigns; class IfcRelAssignsToActor extends IfcRelAssigns { constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingActor, ActingRole) { super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.RelatedObjects = RelatedObjects; this.RelatedObjectsType = RelatedObjectsType; this.RelatingActor = RelatingActor; this.ActingRole = ActingRole; this.type = 1683148259; } } IFC4_32.IfcRelAssignsToActor = IfcRelAssignsToActor; class IfcRelAssignsToControl extends IfcRelAssigns { constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingControl) { super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.RelatedObjects = RelatedObjects; this.RelatedObjectsType = RelatedObjectsType; this.RelatingControl = RelatingControl; this.type = 2495723537; } } IFC4_32.IfcRelAssignsToControl = IfcRelAssignsToControl; class IfcRelAssignsToGroup extends IfcRelAssigns { constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingGroup) { super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.RelatedObjects = RelatedObjects; this.RelatedObjectsType = RelatedObjectsType; this.RelatingGroup = RelatingGroup; this.type = 1307041759; } } IFC4_32.IfcRelAssignsToGroup = IfcRelAssignsToGroup; class IfcRelAssignsToGroupByFactor extends IfcRelAssignsToGroup { constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingGroup, Factor) { super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingGroup); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.RelatedObjects = RelatedObjects; this.RelatedObjectsType = RelatedObjectsType; this.RelatingGroup = RelatingGroup; this.Factor = Factor; this.type = 1027710054; } } IFC4_32.IfcRelAssignsToGroupByFactor = IfcRelAssignsToGroupByFactor; class IfcRelAssignsToProcess extends IfcRelAssigns { constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingProcess, QuantityInProcess) { super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.RelatedObjects = RelatedObjects; this.RelatedObjectsType = RelatedObjectsType; this.RelatingProcess = RelatingProcess; this.QuantityInProcess = QuantityInProcess; this.type = 4278684876; } } IFC4_32.IfcRelAssignsToProcess = IfcRelAssignsToProcess; class IfcRelAssignsToProduct extends IfcRelAssigns { constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingProduct) { super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.RelatedObjects = RelatedObjects; this.RelatedObjectsType = RelatedObjectsType; this.RelatingProduct = RelatingProduct; this.type = 2857406711; } } IFC4_32.IfcRelAssignsToProduct = IfcRelAssignsToProduct; class IfcRelAssignsToResource extends IfcRelAssigns { constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingResource) { super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.RelatedObjects = RelatedObjects; this.RelatedObjectsType = RelatedObjectsType; this.RelatingResource = RelatingResource; this.type = 205026976; } } IFC4_32.IfcRelAssignsToResource = IfcRelAssignsToResource; class IfcRelAssociates extends IfcRelationship { constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects) { super(expressID, GlobalId, OwnerHistory, Name, Description); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.RelatedObjects = RelatedObjects; this.type = 1865459582; } } IFC4_32.IfcRelAssociates = IfcRelAssociates; class IfcRelAssociatesApproval extends IfcRelAssociates { constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingApproval) { super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.RelatedObjects = RelatedObjects; this.RelatingApproval = RelatingApproval; this.type = 4095574036; } } IFC4_32.IfcRelAssociatesApproval = IfcRelAssociatesApproval; class IfcRelAssociatesClassification extends IfcRelAssociates { constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingClassification) { super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.RelatedObjects = RelatedObjects; this.RelatingClassification = RelatingClassification; this.type = 919958153; } } IFC4_32.IfcRelAssociatesClassification = IfcRelAssociatesClassification; class IfcRelAssociatesConstraint extends IfcRelAssociates { constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, Intent, RelatingConstraint) { super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.RelatedObjects = RelatedObjects; this.Intent = Intent; this.RelatingConstraint = RelatingConstraint; this.type = 2728634034; } } IFC4_32.IfcRelAssociatesConstraint = IfcRelAssociatesConstraint; class IfcRelAssociatesDocument extends IfcRelAssociates { constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingDocument) { super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.RelatedObjects = RelatedObjects; this.RelatingDocument = RelatingDocument; this.type = 982818633; } } IFC4_32.IfcRelAssociatesDocument = IfcRelAssociatesDocument; class IfcRelAssociatesLibrary extends IfcRelAssociates { constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingLibrary) { super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.RelatedObjects = RelatedObjects; this.RelatingLibrary = RelatingLibrary; this.type = 3840914261; } } IFC4_32.IfcRelAssociatesLibrary = IfcRelAssociatesLibrary; class IfcRelAssociatesMaterial extends IfcRelAssociates { constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingMaterial) { super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.RelatedObjects = RelatedObjects; this.RelatingMaterial = RelatingMaterial; this.type = 2655215786; } } IFC4_32.IfcRelAssociatesMaterial = IfcRelAssociatesMaterial; class IfcRelAssociatesProfileDef extends IfcRelAssociates { constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingProfileDef) { super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.RelatedObjects = RelatedObjects; this.RelatingProfileDef = RelatingProfileDef; this.type = 1033248425; } } IFC4_32.IfcRelAssociatesProfileDef = IfcRelAssociatesProfileDef; class IfcRelConnects extends IfcRelationship { constructor(expressID, GlobalId, OwnerHistory, Name, Description) { super(expressID, GlobalId, OwnerHistory, Name, Description); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.type = 826625072; } } IFC4_32.IfcRelConnects = IfcRelConnects; class IfcRelConnectsElements extends IfcRelConnects { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ConnectionGeometry, RelatingElement, RelatedElement) { super(expressID, GlobalId, OwnerHistory, Name, Description); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ConnectionGeometry = ConnectionGeometry; this.RelatingElement = RelatingElement; this.RelatedElement = RelatedElement; this.type = 1204542856; } } IFC4_32.IfcRelConnectsElements = IfcRelConnectsElements; class IfcRelConnectsPathElements extends IfcRelConnectsElements { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ConnectionGeometry, RelatingElement, RelatedElement, RelatingPriorities, RelatedPriorities, RelatedConnectionType, RelatingConnectionType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ConnectionGeometry, RelatingElement, RelatedElement); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ConnectionGeometry = ConnectionGeometry; this.RelatingElement = RelatingElement; this.RelatedElement = RelatedElement; this.RelatingPriorities = RelatingPriorities; this.RelatedPriorities = RelatedPriorities; this.RelatedConnectionType = RelatedConnectionType; this.RelatingConnectionType = RelatingConnectionType; this.type = 3945020480; } } IFC4_32.IfcRelConnectsPathElements = IfcRelConnectsPathElements; class IfcRelConnectsPortToElement extends IfcRelConnects { constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingPort, RelatedElement) { super(expressID, GlobalId, OwnerHistory, Name, Description); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.RelatingPort = RelatingPort; this.RelatedElement = RelatedElement; this.type = 4201705270; } } IFC4_32.IfcRelConnectsPortToElement = IfcRelConnectsPortToElement; class IfcRelConnectsPorts extends IfcRelConnects { constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingPort, RelatedPort, RealizingElement) { super(expressID, GlobalId, OwnerHistory, Name, Description); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.RelatingPort = RelatingPort; this.RelatedPort = RelatedPort; this.RealizingElement = RealizingElement; this.type = 3190031847; } } IFC4_32.IfcRelConnectsPorts = IfcRelConnectsPorts; class IfcRelConnectsStructuralActivity extends IfcRelConnects { constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingElement, RelatedStructuralActivity) { super(expressID, GlobalId, OwnerHistory, Name, Description); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.RelatingElement = RelatingElement; this.RelatedStructuralActivity = RelatedStructuralActivity; this.type = 2127690289; } } IFC4_32.IfcRelConnectsStructuralActivity = IfcRelConnectsStructuralActivity; class IfcRelConnectsStructuralMember extends IfcRelConnects { constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingStructuralMember, RelatedStructuralConnection, AppliedCondition, AdditionalConditions, SupportedLength, ConditionCoordinateSystem) { super(expressID, GlobalId, OwnerHistory, Name, Description); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.RelatingStructuralMember = RelatingStructuralMember; this.RelatedStructuralConnection = RelatedStructuralConnection; this.AppliedCondition = AppliedCondition; this.AdditionalConditions = AdditionalConditions; this.SupportedLength = SupportedLength; this.ConditionCoordinateSystem = ConditionCoordinateSystem; this.type = 1638771189; } } IFC4_32.IfcRelConnectsStructuralMember = IfcRelConnectsStructuralMember; class IfcRelConnectsWithEccentricity extends IfcRelConnectsStructuralMember { constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingStructuralMember, RelatedStructuralConnection, AppliedCondition, AdditionalConditions, SupportedLength, ConditionCoordinateSystem, ConnectionConstraint) { super(expressID, GlobalId, OwnerHistory, Name, Description, RelatingStructuralMember, RelatedStructuralConnection, AppliedCondition, AdditionalConditions, SupportedLength, ConditionCoordinateSystem); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.RelatingStructuralMember = RelatingStructuralMember; this.RelatedStructuralConnection = RelatedStructuralConnection; this.AppliedCondition = AppliedCondition; this.AdditionalConditions = AdditionalConditions; this.SupportedLength = SupportedLength; this.ConditionCoordinateSystem = ConditionCoordinateSystem; this.ConnectionConstraint = ConnectionConstraint; this.type = 504942748; } } IFC4_32.IfcRelConnectsWithEccentricity = IfcRelConnectsWithEccentricity; class IfcRelConnectsWithRealizingElements extends IfcRelConnectsElements { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ConnectionGeometry, RelatingElement, RelatedElement, RealizingElements, ConnectionType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ConnectionGeometry, RelatingElement, RelatedElement); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ConnectionGeometry = ConnectionGeometry; this.RelatingElement = RelatingElement; this.RelatedElement = RelatedElement; this.RealizingElements = RealizingElements; this.ConnectionType = ConnectionType; this.type = 3678494232; } } IFC4_32.IfcRelConnectsWithRealizingElements = IfcRelConnectsWithRealizingElements; class IfcRelContainedInSpatialStructure extends IfcRelConnects { constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedElements, RelatingStructure) { super(expressID, GlobalId, OwnerHistory, Name, Description); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.RelatedElements = RelatedElements; this.RelatingStructure = RelatingStructure; this.type = 3242617779; } } IFC4_32.IfcRelContainedInSpatialStructure = IfcRelContainedInSpatialStructure; class IfcRelCoversBldgElements extends IfcRelConnects { constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingBuildingElement, RelatedCoverings) { super(expressID, GlobalId, OwnerHistory, Name, Description); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.RelatingBuildingElement = RelatingBuildingElement; this.RelatedCoverings = RelatedCoverings; this.type = 886880790; } } IFC4_32.IfcRelCoversBldgElements = IfcRelCoversBldgElements; class IfcRelCoversSpaces extends IfcRelConnects { constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingSpace, RelatedCoverings) { super(expressID, GlobalId, OwnerHistory, Name, Description); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.RelatingSpace = RelatingSpace; this.RelatedCoverings = RelatedCoverings; this.type = 2802773753; } } IFC4_32.IfcRelCoversSpaces = IfcRelCoversSpaces; class IfcRelDeclares extends IfcRelationship { constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingContext, RelatedDefinitions) { super(expressID, GlobalId, OwnerHistory, Name, Description); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.RelatingContext = RelatingContext; this.RelatedDefinitions = RelatedDefinitions; this.type = 2565941209; } } IFC4_32.IfcRelDeclares = IfcRelDeclares; class IfcRelDecomposes extends IfcRelationship { constructor(expressID, GlobalId, OwnerHistory, Name, Description) { super(expressID, GlobalId, OwnerHistory, Name, Description); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.type = 2551354335; } } IFC4_32.IfcRelDecomposes = IfcRelDecomposes; class IfcRelDefines extends IfcRelationship { constructor(expressID, GlobalId, OwnerHistory, Name, Description) { super(expressID, GlobalId, OwnerHistory, Name, Description); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.type = 693640335; } } IFC4_32.IfcRelDefines = IfcRelDefines; class IfcRelDefinesByObject extends IfcRelDefines { constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingObject) { super(expressID, GlobalId, OwnerHistory, Name, Description); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.RelatedObjects = RelatedObjects; this.RelatingObject = RelatingObject; this.type = 1462361463; } } IFC4_32.IfcRelDefinesByObject = IfcRelDefinesByObject; class IfcRelDefinesByProperties extends IfcRelDefines { constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingPropertyDefinition) { super(expressID, GlobalId, OwnerHistory, Name, Description); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.RelatedObjects = RelatedObjects; this.RelatingPropertyDefinition = RelatingPropertyDefinition; this.type = 4186316022; } } IFC4_32.IfcRelDefinesByProperties = IfcRelDefinesByProperties; class IfcRelDefinesByTemplate extends IfcRelDefines { constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedPropertySets, RelatingTemplate) { super(expressID, GlobalId, OwnerHistory, Name, Description); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.RelatedPropertySets = RelatedPropertySets; this.RelatingTemplate = RelatingTemplate; this.type = 307848117; } } IFC4_32.IfcRelDefinesByTemplate = IfcRelDefinesByTemplate; class IfcRelDefinesByType extends IfcRelDefines { constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingType) { super(expressID, GlobalId, OwnerHistory, Name, Description); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.RelatedObjects = RelatedObjects; this.RelatingType = RelatingType; this.type = 781010003; } } IFC4_32.IfcRelDefinesByType = IfcRelDefinesByType; class IfcRelFillsElement extends IfcRelConnects { constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingOpeningElement, RelatedBuildingElement) { super(expressID, GlobalId, OwnerHistory, Name, Description); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.RelatingOpeningElement = RelatingOpeningElement; this.RelatedBuildingElement = RelatedBuildingElement; this.type = 3940055652; } } IFC4_32.IfcRelFillsElement = IfcRelFillsElement; class IfcRelFlowControlElements extends IfcRelConnects { constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedControlElements, RelatingFlowElement) { super(expressID, GlobalId, OwnerHistory, Name, Description); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.RelatedControlElements = RelatedControlElements; this.RelatingFlowElement = RelatingFlowElement; this.type = 279856033; } } IFC4_32.IfcRelFlowControlElements = IfcRelFlowControlElements; class IfcRelInterferesElements extends IfcRelConnects { constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingElement, RelatedElement, InterferenceGeometry, InterferenceSpace, InterferenceType, ImpliedOrder) { super(expressID, GlobalId, OwnerHistory, Name, Description); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.RelatingElement = RelatingElement; this.RelatedElement = RelatedElement; this.InterferenceGeometry = InterferenceGeometry; this.InterferenceSpace = InterferenceSpace; this.InterferenceType = InterferenceType; this.ImpliedOrder = ImpliedOrder; this.type = 427948657; } } IFC4_32.IfcRelInterferesElements = IfcRelInterferesElements; class IfcRelNests extends IfcRelDecomposes { constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingObject, RelatedObjects) { super(expressID, GlobalId, OwnerHistory, Name, Description); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.RelatingObject = RelatingObject; this.RelatedObjects = RelatedObjects; this.type = 3268803585; } } IFC4_32.IfcRelNests = IfcRelNests; class IfcRelPositions extends IfcRelConnects { constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingPositioningElement, RelatedProducts) { super(expressID, GlobalId, OwnerHistory, Name, Description); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.RelatingPositioningElement = RelatingPositioningElement; this.RelatedProducts = RelatedProducts; this.type = 1441486842; } } IFC4_32.IfcRelPositions = IfcRelPositions; class IfcRelProjectsElement extends IfcRelDecomposes { constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingElement, RelatedFeatureElement) { super(expressID, GlobalId, OwnerHistory, Name, Description); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.RelatingElement = RelatingElement; this.RelatedFeatureElement = RelatedFeatureElement; this.type = 750771296; } } IFC4_32.IfcRelProjectsElement = IfcRelProjectsElement; class IfcRelReferencedInSpatialStructure extends IfcRelConnects { constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedElements, RelatingStructure) { super(expressID, GlobalId, OwnerHistory, Name, Description); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.RelatedElements = RelatedElements; this.RelatingStructure = RelatingStructure; this.type = 1245217292; } } IFC4_32.IfcRelReferencedInSpatialStructure = IfcRelReferencedInSpatialStructure; class IfcRelSequence extends IfcRelConnects { constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingProcess, RelatedProcess, TimeLag, SequenceType, UserDefinedSequenceType) { super(expressID, GlobalId, OwnerHistory, Name, Description); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.RelatingProcess = RelatingProcess; this.RelatedProcess = RelatedProcess; this.TimeLag = TimeLag; this.SequenceType = SequenceType; this.UserDefinedSequenceType = UserDefinedSequenceType; this.type = 4122056220; } } IFC4_32.IfcRelSequence = IfcRelSequence; class IfcRelServicesBuildings extends IfcRelConnects { constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingSystem, RelatedBuildings) { super(expressID, GlobalId, OwnerHistory, Name, Description); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.RelatingSystem = RelatingSystem; this.RelatedBuildings = RelatedBuildings; this.type = 366585022; } } IFC4_32.IfcRelServicesBuildings = IfcRelServicesBuildings; class IfcRelSpaceBoundary extends IfcRelConnects { constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingSpace, RelatedBuildingElement, ConnectionGeometry, PhysicalOrVirtualBoundary, InternalOrExternalBoundary) { super(expressID, GlobalId, OwnerHistory, Name, Description); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.RelatingSpace = RelatingSpace; this.RelatedBuildingElement = RelatedBuildingElement; this.ConnectionGeometry = ConnectionGeometry; this.PhysicalOrVirtualBoundary = PhysicalOrVirtualBoundary; this.InternalOrExternalBoundary = InternalOrExternalBoundary; this.type = 3451746338; } } IFC4_32.IfcRelSpaceBoundary = IfcRelSpaceBoundary; class IfcRelSpaceBoundary1stLevel extends IfcRelSpaceBoundary { constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingSpace, RelatedBuildingElement, ConnectionGeometry, PhysicalOrVirtualBoundary, InternalOrExternalBoundary, ParentBoundary) { super(expressID, GlobalId, OwnerHistory, Name, Description, RelatingSpace, RelatedBuildingElement, ConnectionGeometry, PhysicalOrVirtualBoundary, InternalOrExternalBoundary); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.RelatingSpace = RelatingSpace; this.RelatedBuildingElement = RelatedBuildingElement; this.ConnectionGeometry = ConnectionGeometry; this.PhysicalOrVirtualBoundary = PhysicalOrVirtualBoundary; this.InternalOrExternalBoundary = InternalOrExternalBoundary; this.ParentBoundary = ParentBoundary; this.type = 3523091289; } } IFC4_32.IfcRelSpaceBoundary1stLevel = IfcRelSpaceBoundary1stLevel; class IfcRelSpaceBoundary2ndLevel extends IfcRelSpaceBoundary1stLevel { constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingSpace, RelatedBuildingElement, ConnectionGeometry, PhysicalOrVirtualBoundary, InternalOrExternalBoundary, ParentBoundary, CorrespondingBoundary) { super(expressID, GlobalId, OwnerHistory, Name, Description, RelatingSpace, RelatedBuildingElement, ConnectionGeometry, PhysicalOrVirtualBoundary, InternalOrExternalBoundary, ParentBoundary); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.RelatingSpace = RelatingSpace; this.RelatedBuildingElement = RelatedBuildingElement; this.ConnectionGeometry = ConnectionGeometry; this.PhysicalOrVirtualBoundary = PhysicalOrVirtualBoundary; this.InternalOrExternalBoundary = InternalOrExternalBoundary; this.ParentBoundary = ParentBoundary; this.CorrespondingBoundary = CorrespondingBoundary; this.type = 1521410863; } } IFC4_32.IfcRelSpaceBoundary2ndLevel = IfcRelSpaceBoundary2ndLevel; class IfcRelVoidsElement extends IfcRelDecomposes { constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingBuildingElement, RelatedOpeningElement) { super(expressID, GlobalId, OwnerHistory, Name, Description); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.RelatingBuildingElement = RelatingBuildingElement; this.RelatedOpeningElement = RelatedOpeningElement; this.type = 1401173127; } } IFC4_32.IfcRelVoidsElement = IfcRelVoidsElement; class IfcReparametrisedCompositeCurveSegment extends IfcCompositeCurveSegment { constructor(expressID, Transition, SameSense, ParentCurve, ParamLength) { super(expressID, Transition, SameSense, ParentCurve); this.Transition = Transition; this.SameSense = SameSense; this.ParentCurve = ParentCurve; this.ParamLength = ParamLength; this.type = 816062949; } } IFC4_32.IfcReparametrisedCompositeCurveSegment = IfcReparametrisedCompositeCurveSegment; class IfcResource extends IfcObject { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.Identification = Identification; this.LongDescription = LongDescription; this.type = 2914609552; } } IFC4_32.IfcResource = IfcResource; class IfcRevolvedAreaSolid extends IfcSweptAreaSolid { constructor(expressID, SweptArea, Position, Axis, Angle) { super(expressID, SweptArea, Position); this.SweptArea = SweptArea; this.Position = Position; this.Axis = Axis; this.Angle = Angle; this.type = 1856042241; } } IFC4_32.IfcRevolvedAreaSolid = IfcRevolvedAreaSolid; class IfcRevolvedAreaSolidTapered extends IfcRevolvedAreaSolid { constructor(expressID, SweptArea, Position, Axis, Angle, EndSweptArea) { super(expressID, SweptArea, Position, Axis, Angle); this.SweptArea = SweptArea; this.Position = Position; this.Axis = Axis; this.Angle = Angle; this.EndSweptArea = EndSweptArea; this.type = 3243963512; } } IFC4_32.IfcRevolvedAreaSolidTapered = IfcRevolvedAreaSolidTapered; class IfcRightCircularCone extends IfcCsgPrimitive3D { constructor(expressID, Position, Height, BottomRadius) { super(expressID, Position); this.Position = Position; this.Height = Height; this.BottomRadius = BottomRadius; this.type = 4158566097; } } IFC4_32.IfcRightCircularCone = IfcRightCircularCone; class IfcRightCircularCylinder extends IfcCsgPrimitive3D { constructor(expressID, Position, Height, Radius) { super(expressID, Position); this.Position = Position; this.Height = Height; this.Radius = Radius; this.type = 3626867408; } } IFC4_32.IfcRightCircularCylinder = IfcRightCircularCylinder; class IfcSectionedSolid extends IfcSolidModel { constructor(expressID, Directrix, CrossSections) { super(expressID); this.Directrix = Directrix; this.CrossSections = CrossSections; this.type = 1862484736; } } IFC4_32.IfcSectionedSolid = IfcSectionedSolid; class IfcSectionedSolidHorizontal extends IfcSectionedSolid { constructor(expressID, Directrix, CrossSections, CrossSectionPositions) { super(expressID, Directrix, CrossSections); this.Directrix = Directrix; this.CrossSections = CrossSections; this.CrossSectionPositions = CrossSectionPositions; this.type = 1290935644; } } IFC4_32.IfcSectionedSolidHorizontal = IfcSectionedSolidHorizontal; class IfcSectionedSurface extends IfcSurface { constructor(expressID, Directrix, CrossSectionPositions, CrossSections) { super(expressID); this.Directrix = Directrix; this.CrossSectionPositions = CrossSectionPositions; this.CrossSections = CrossSections; this.type = 1356537516; } } IFC4_32.IfcSectionedSurface = IfcSectionedSurface; class IfcSimplePropertyTemplate extends IfcPropertyTemplate { constructor(expressID, GlobalId, OwnerHistory, Name, Description, TemplateType, PrimaryMeasureType, SecondaryMeasureType, Enumerators, PrimaryUnit, SecondaryUnit, Expression, AccessState) { super(expressID, GlobalId, OwnerHistory, Name, Description); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.TemplateType = TemplateType; this.PrimaryMeasureType = PrimaryMeasureType; this.SecondaryMeasureType = SecondaryMeasureType; this.Enumerators = Enumerators; this.PrimaryUnit = PrimaryUnit; this.SecondaryUnit = SecondaryUnit; this.Expression = Expression; this.AccessState = AccessState; this.type = 3663146110; } } IFC4_32.IfcSimplePropertyTemplate = IfcSimplePropertyTemplate; class IfcSpatialElement extends IfcProduct { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.LongName = LongName; this.type = 1412071761; } } IFC4_32.IfcSpatialElement = IfcSpatialElement; class IfcSpatialElementType extends IfcTypeProduct { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.type = 710998568; } } IFC4_32.IfcSpatialElementType = IfcSpatialElementType; class IfcSpatialStructureElement extends IfcSpatialElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.LongName = LongName; this.CompositionType = CompositionType; this.type = 2706606064; } } IFC4_32.IfcSpatialStructureElement = IfcSpatialStructureElement; class IfcSpatialStructureElementType extends IfcSpatialElementType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.type = 3893378262; } } IFC4_32.IfcSpatialStructureElementType = IfcSpatialStructureElementType; class IfcSpatialZone extends IfcSpatialElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.LongName = LongName; this.PredefinedType = PredefinedType; this.type = 463610769; } } IFC4_32.IfcSpatialZone = IfcSpatialZone; class IfcSpatialZoneType extends IfcSpatialElementType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType, LongName) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.LongName = LongName; this.type = 2481509218; } } IFC4_32.IfcSpatialZoneType = IfcSpatialZoneType; class IfcSphere extends IfcCsgPrimitive3D { constructor(expressID, Position, Radius) { super(expressID, Position); this.Position = Position; this.Radius = Radius; this.type = 451544542; } } IFC4_32.IfcSphere = IfcSphere; class IfcSphericalSurface extends IfcElementarySurface { constructor(expressID, Position, Radius) { super(expressID, Position); this.Position = Position; this.Radius = Radius; this.type = 4015995234; } } IFC4_32.IfcSphericalSurface = IfcSphericalSurface; class IfcSpiral extends IfcCurve { constructor(expressID, Position) { super(expressID); this.Position = Position; this.type = 2735484536; } } IFC4_32.IfcSpiral = IfcSpiral; class IfcStructuralActivity extends IfcProduct { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.AppliedLoad = AppliedLoad; this.GlobalOrLocal = GlobalOrLocal; this.type = 3544373492; } } IFC4_32.IfcStructuralActivity = IfcStructuralActivity; class IfcStructuralItem extends IfcProduct { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.type = 3136571912; } } IFC4_32.IfcStructuralItem = IfcStructuralItem; class IfcStructuralMember extends IfcStructuralItem { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.type = 530289379; } } IFC4_32.IfcStructuralMember = IfcStructuralMember; class IfcStructuralReaction extends IfcStructuralActivity { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.AppliedLoad = AppliedLoad; this.GlobalOrLocal = GlobalOrLocal; this.type = 3689010777; } } IFC4_32.IfcStructuralReaction = IfcStructuralReaction; class IfcStructuralSurfaceMember extends IfcStructuralMember { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType, Thickness) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.PredefinedType = PredefinedType; this.Thickness = Thickness; this.type = 3979015343; } } IFC4_32.IfcStructuralSurfaceMember = IfcStructuralSurfaceMember; class IfcStructuralSurfaceMemberVarying extends IfcStructuralSurfaceMember { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType, Thickness) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType, Thickness); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.PredefinedType = PredefinedType; this.Thickness = Thickness; this.type = 2218152070; } } IFC4_32.IfcStructuralSurfaceMemberVarying = IfcStructuralSurfaceMemberVarying; class IfcStructuralSurfaceReaction extends IfcStructuralReaction { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.AppliedLoad = AppliedLoad; this.GlobalOrLocal = GlobalOrLocal; this.PredefinedType = PredefinedType; this.type = 603775116; } } IFC4_32.IfcStructuralSurfaceReaction = IfcStructuralSurfaceReaction; class IfcSubContractResourceType extends IfcConstructionResourceType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.Identification = Identification; this.LongDescription = LongDescription; this.ResourceType = ResourceType; this.BaseCosts = BaseCosts; this.BaseQuantity = BaseQuantity; this.PredefinedType = PredefinedType; this.type = 4095615324; } } IFC4_32.IfcSubContractResourceType = IfcSubContractResourceType; class IfcSurfaceCurve extends IfcCurve { constructor(expressID, Curve3D, AssociatedGeometry, MasterRepresentation) { super(expressID); this.Curve3D = Curve3D; this.AssociatedGeometry = AssociatedGeometry; this.MasterRepresentation = MasterRepresentation; this.type = 699246055; } } IFC4_32.IfcSurfaceCurve = IfcSurfaceCurve; class IfcSurfaceCurveSweptAreaSolid extends IfcDirectrixCurveSweptAreaSolid { constructor(expressID, SweptArea, Position, Directrix, StartParam, EndParam, ReferenceSurface) { super(expressID, SweptArea, Position, Directrix, StartParam, EndParam); this.SweptArea = SweptArea; this.Position = Position; this.Directrix = Directrix; this.StartParam = StartParam; this.EndParam = EndParam; this.ReferenceSurface = ReferenceSurface; this.type = 2028607225; } } IFC4_32.IfcSurfaceCurveSweptAreaSolid = IfcSurfaceCurveSweptAreaSolid; class IfcSurfaceOfLinearExtrusion extends IfcSweptSurface { constructor(expressID, SweptCurve, Position, ExtrudedDirection, Depth) { super(expressID, SweptCurve, Position); this.SweptCurve = SweptCurve; this.Position = Position; this.ExtrudedDirection = ExtrudedDirection; this.Depth = Depth; this.type = 2809605785; } } IFC4_32.IfcSurfaceOfLinearExtrusion = IfcSurfaceOfLinearExtrusion; class IfcSurfaceOfRevolution extends IfcSweptSurface { constructor(expressID, SweptCurve, Position, AxisPosition) { super(expressID, SweptCurve, Position); this.SweptCurve = SweptCurve; this.Position = Position; this.AxisPosition = AxisPosition; this.type = 4124788165; } } IFC4_32.IfcSurfaceOfRevolution = IfcSurfaceOfRevolution; class IfcSystemFurnitureElementType extends IfcFurnishingElementType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 1580310250; } } IFC4_32.IfcSystemFurnitureElementType = IfcSystemFurnitureElementType; class IfcTask extends IfcProcess { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Status, WorkMethod, IsMilestone, Priority, TaskTime, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.Identification = Identification; this.LongDescription = LongDescription; this.Status = Status; this.WorkMethod = WorkMethod; this.IsMilestone = IsMilestone; this.Priority = Priority; this.TaskTime = TaskTime; this.PredefinedType = PredefinedType; this.type = 3473067441; } } IFC4_32.IfcTask = IfcTask; class IfcTaskType extends IfcTypeProcess { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ProcessType, PredefinedType, WorkMethod) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ProcessType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.Identification = Identification; this.LongDescription = LongDescription; this.ProcessType = ProcessType; this.PredefinedType = PredefinedType; this.WorkMethod = WorkMethod; this.type = 3206491090; } } IFC4_32.IfcTaskType = IfcTaskType; class IfcTessellatedFaceSet extends IfcTessellatedItem { constructor(expressID, Coordinates, Closed) { super(expressID); this.Coordinates = Coordinates; this.Closed = Closed; this.type = 2387106220; } } IFC4_32.IfcTessellatedFaceSet = IfcTessellatedFaceSet; class IfcThirdOrderPolynomialSpiral extends IfcSpiral { constructor(expressID, Position, CubicTerm, QuadraticTerm, LinearTerm, ConstantTerm) { super(expressID, Position); this.Position = Position; this.CubicTerm = CubicTerm; this.QuadraticTerm = QuadraticTerm; this.LinearTerm = LinearTerm; this.ConstantTerm = ConstantTerm; this.type = 782932809; } } IFC4_32.IfcThirdOrderPolynomialSpiral = IfcThirdOrderPolynomialSpiral; class IfcToroidalSurface extends IfcElementarySurface { constructor(expressID, Position, MajorRadius, MinorRadius) { super(expressID, Position); this.Position = Position; this.MajorRadius = MajorRadius; this.MinorRadius = MinorRadius; this.type = 1935646853; } } IFC4_32.IfcToroidalSurface = IfcToroidalSurface; class IfcTransportationDeviceType extends IfcElementType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.type = 3665877780; } } IFC4_32.IfcTransportationDeviceType = IfcTransportationDeviceType; class IfcTriangulatedFaceSet extends IfcTessellatedFaceSet { constructor(expressID, Coordinates, Closed, Normals, CoordIndex, PnIndex) { super(expressID, Coordinates, Closed); this.Coordinates = Coordinates; this.Closed = Closed; this.Normals = Normals; this.CoordIndex = CoordIndex; this.PnIndex = PnIndex; this.type = 2916149573; } } IFC4_32.IfcTriangulatedFaceSet = IfcTriangulatedFaceSet; class IfcTriangulatedIrregularNetwork extends IfcTriangulatedFaceSet { constructor(expressID, Coordinates, Closed, Normals, CoordIndex, PnIndex, Flags) { super(expressID, Coordinates, Closed, Normals, CoordIndex, PnIndex); this.Coordinates = Coordinates; this.Closed = Closed; this.Normals = Normals; this.CoordIndex = CoordIndex; this.PnIndex = PnIndex; this.Flags = Flags; this.type = 1229763772; } } IFC4_32.IfcTriangulatedIrregularNetwork = IfcTriangulatedIrregularNetwork; class IfcVehicleType extends IfcTransportationDeviceType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 3651464721; } } IFC4_32.IfcVehicleType = IfcVehicleType; class IfcWindowLiningProperties extends IfcPreDefinedPropertySet { constructor(expressID, GlobalId, OwnerHistory, Name, Description, LiningDepth, LiningThickness, TransomThickness, MullionThickness, FirstTransomOffset, SecondTransomOffset, FirstMullionOffset, SecondMullionOffset, ShapeAspectStyle, LiningOffset, LiningToPanelOffsetX, LiningToPanelOffsetY) { super(expressID, GlobalId, OwnerHistory, Name, Description); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.LiningDepth = LiningDepth; this.LiningThickness = LiningThickness; this.TransomThickness = TransomThickness; this.MullionThickness = MullionThickness; this.FirstTransomOffset = FirstTransomOffset; this.SecondTransomOffset = SecondTransomOffset; this.FirstMullionOffset = FirstMullionOffset; this.SecondMullionOffset = SecondMullionOffset; this.ShapeAspectStyle = ShapeAspectStyle; this.LiningOffset = LiningOffset; this.LiningToPanelOffsetX = LiningToPanelOffsetX; this.LiningToPanelOffsetY = LiningToPanelOffsetY; this.type = 336235671; } } IFC4_32.IfcWindowLiningProperties = IfcWindowLiningProperties; class IfcWindowPanelProperties extends IfcPreDefinedPropertySet { constructor(expressID, GlobalId, OwnerHistory, Name, Description, OperationType, PanelPosition, FrameDepth, FrameThickness, ShapeAspectStyle) { super(expressID, GlobalId, OwnerHistory, Name, Description); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.OperationType = OperationType; this.PanelPosition = PanelPosition; this.FrameDepth = FrameDepth; this.FrameThickness = FrameThickness; this.ShapeAspectStyle = ShapeAspectStyle; this.type = 512836454; } } IFC4_32.IfcWindowPanelProperties = IfcWindowPanelProperties; class IfcActor extends IfcObject { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, TheActor) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.TheActor = TheActor; this.type = 2296667514; } } IFC4_32.IfcActor = IfcActor; class IfcAdvancedBrep extends IfcManifoldSolidBrep { constructor(expressID, Outer) { super(expressID, Outer); this.Outer = Outer; this.type = 1635779807; } } IFC4_32.IfcAdvancedBrep = IfcAdvancedBrep; class IfcAdvancedBrepWithVoids extends IfcAdvancedBrep { constructor(expressID, Outer, Voids) { super(expressID, Outer); this.Outer = Outer; this.Voids = Voids; this.type = 2603310189; } } IFC4_32.IfcAdvancedBrepWithVoids = IfcAdvancedBrepWithVoids; class IfcAnnotation extends IfcProduct { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.PredefinedType = PredefinedType; this.type = 1674181508; } } IFC4_32.IfcAnnotation = IfcAnnotation; class IfcBSplineSurface extends IfcBoundedSurface { constructor(expressID, UDegree, VDegree, ControlPointsList, SurfaceForm, UClosed, VClosed, SelfIntersect) { super(expressID); this.UDegree = UDegree; this.VDegree = VDegree; this.ControlPointsList = ControlPointsList; this.SurfaceForm = SurfaceForm; this.UClosed = UClosed; this.VClosed = VClosed; this.SelfIntersect = SelfIntersect; this.type = 2887950389; } } IFC4_32.IfcBSplineSurface = IfcBSplineSurface; class IfcBSplineSurfaceWithKnots extends IfcBSplineSurface { constructor(expressID, UDegree, VDegree, ControlPointsList, SurfaceForm, UClosed, VClosed, SelfIntersect, UMultiplicities, VMultiplicities, UKnots, VKnots, KnotSpec) { super(expressID, UDegree, VDegree, ControlPointsList, SurfaceForm, UClosed, VClosed, SelfIntersect); this.UDegree = UDegree; this.VDegree = VDegree; this.ControlPointsList = ControlPointsList; this.SurfaceForm = SurfaceForm; this.UClosed = UClosed; this.VClosed = VClosed; this.SelfIntersect = SelfIntersect; this.UMultiplicities = UMultiplicities; this.VMultiplicities = VMultiplicities; this.UKnots = UKnots; this.VKnots = VKnots; this.KnotSpec = KnotSpec; this.type = 167062518; } } IFC4_32.IfcBSplineSurfaceWithKnots = IfcBSplineSurfaceWithKnots; class IfcBlock extends IfcCsgPrimitive3D { constructor(expressID, Position, XLength, YLength, ZLength) { super(expressID, Position); this.Position = Position; this.XLength = XLength; this.YLength = YLength; this.ZLength = ZLength; this.type = 1334484129; } } IFC4_32.IfcBlock = IfcBlock; class IfcBooleanClippingResult extends IfcBooleanResult { constructor(expressID, Operator, FirstOperand, SecondOperand) { super(expressID, Operator, FirstOperand, SecondOperand); this.Operator = Operator; this.FirstOperand = FirstOperand; this.SecondOperand = SecondOperand; this.type = 3649129432; } } IFC4_32.IfcBooleanClippingResult = IfcBooleanClippingResult; class IfcBoundedCurve extends IfcCurve { constructor(expressID) { super(expressID); this.type = 1260505505; } } IFC4_32.IfcBoundedCurve = IfcBoundedCurve; class IfcBuildingStorey extends IfcSpatialStructureElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, Elevation) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.LongName = LongName; this.CompositionType = CompositionType; this.Elevation = Elevation; this.type = 3124254112; } } IFC4_32.IfcBuildingStorey = IfcBuildingStorey; class IfcBuiltElementType extends IfcElementType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.type = 1626504194; } } IFC4_32.IfcBuiltElementType = IfcBuiltElementType; class IfcChimneyType extends IfcBuiltElementType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 2197970202; } } IFC4_32.IfcChimneyType = IfcChimneyType; class IfcCircleHollowProfileDef extends IfcCircleProfileDef { constructor(expressID, ProfileType, ProfileName, Position, Radius, WallThickness) { super(expressID, ProfileType, ProfileName, Position, Radius); this.ProfileType = ProfileType; this.ProfileName = ProfileName; this.Position = Position; this.Radius = Radius; this.WallThickness = WallThickness; this.type = 2937912522; } } IFC4_32.IfcCircleHollowProfileDef = IfcCircleHollowProfileDef; class IfcCivilElementType extends IfcElementType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.type = 3893394355; } } IFC4_32.IfcCivilElementType = IfcCivilElementType; class IfcClothoid extends IfcSpiral { constructor(expressID, Position, ClothoidConstant) { super(expressID, Position); this.Position = Position; this.ClothoidConstant = ClothoidConstant; this.type = 3497074424; } } IFC4_32.IfcClothoid = IfcClothoid; class IfcColumnType extends IfcBuiltElementType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 300633059; } } IFC4_32.IfcColumnType = IfcColumnType; class IfcComplexPropertyTemplate extends IfcPropertyTemplate { constructor(expressID, GlobalId, OwnerHistory, Name, Description, UsageName, TemplateType, HasPropertyTemplates) { super(expressID, GlobalId, OwnerHistory, Name, Description); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.UsageName = UsageName; this.TemplateType = TemplateType; this.HasPropertyTemplates = HasPropertyTemplates; this.type = 3875453745; } } IFC4_32.IfcComplexPropertyTemplate = IfcComplexPropertyTemplate; class IfcCompositeCurve extends IfcBoundedCurve { constructor(expressID, Segments, SelfIntersect) { super(expressID); this.Segments = Segments; this.SelfIntersect = SelfIntersect; this.type = 3732776249; } } IFC4_32.IfcCompositeCurve = IfcCompositeCurve; class IfcCompositeCurveOnSurface extends IfcCompositeCurve { constructor(expressID, Segments, SelfIntersect) { super(expressID, Segments, SelfIntersect); this.Segments = Segments; this.SelfIntersect = SelfIntersect; this.type = 15328376; } } IFC4_32.IfcCompositeCurveOnSurface = IfcCompositeCurveOnSurface; class IfcConic extends IfcCurve { constructor(expressID, Position) { super(expressID); this.Position = Position; this.type = 2510884976; } } IFC4_32.IfcConic = IfcConic; class IfcConstructionEquipmentResourceType extends IfcConstructionResourceType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.Identification = Identification; this.LongDescription = LongDescription; this.ResourceType = ResourceType; this.BaseCosts = BaseCosts; this.BaseQuantity = BaseQuantity; this.PredefinedType = PredefinedType; this.type = 2185764099; } } IFC4_32.IfcConstructionEquipmentResourceType = IfcConstructionEquipmentResourceType; class IfcConstructionMaterialResourceType extends IfcConstructionResourceType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.Identification = Identification; this.LongDescription = LongDescription; this.ResourceType = ResourceType; this.BaseCosts = BaseCosts; this.BaseQuantity = BaseQuantity; this.PredefinedType = PredefinedType; this.type = 4105962743; } } IFC4_32.IfcConstructionMaterialResourceType = IfcConstructionMaterialResourceType; class IfcConstructionProductResourceType extends IfcConstructionResourceType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.Identification = Identification; this.LongDescription = LongDescription; this.ResourceType = ResourceType; this.BaseCosts = BaseCosts; this.BaseQuantity = BaseQuantity; this.PredefinedType = PredefinedType; this.type = 1525564444; } } IFC4_32.IfcConstructionProductResourceType = IfcConstructionProductResourceType; class IfcConstructionResource extends IfcResource { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.Identification = Identification; this.LongDescription = LongDescription; this.Usage = Usage; this.BaseCosts = BaseCosts; this.BaseQuantity = BaseQuantity; this.type = 2559216714; } } IFC4_32.IfcConstructionResource = IfcConstructionResource; class IfcControl extends IfcObject { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.Identification = Identification; this.type = 3293443760; } } IFC4_32.IfcControl = IfcControl; class IfcCosineSpiral extends IfcSpiral { constructor(expressID, Position, CosineTerm, ConstantTerm) { super(expressID, Position); this.Position = Position; this.CosineTerm = CosineTerm; this.ConstantTerm = ConstantTerm; this.type = 2000195564; } } IFC4_32.IfcCosineSpiral = IfcCosineSpiral; class IfcCostItem extends IfcControl { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, PredefinedType, CostValues, CostQuantities) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.Identification = Identification; this.PredefinedType = PredefinedType; this.CostValues = CostValues; this.CostQuantities = CostQuantities; this.type = 3895139033; } } IFC4_32.IfcCostItem = IfcCostItem; class IfcCostSchedule extends IfcControl { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, PredefinedType, Status, SubmittedOn, UpdateDate) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.Identification = Identification; this.PredefinedType = PredefinedType; this.Status = Status; this.SubmittedOn = SubmittedOn; this.UpdateDate = UpdateDate; this.type = 1419761937; } } IFC4_32.IfcCostSchedule = IfcCostSchedule; class IfcCourseType extends IfcBuiltElementType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 4189326743; } } IFC4_32.IfcCourseType = IfcCourseType; class IfcCoveringType extends IfcBuiltElementType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 1916426348; } } IFC4_32.IfcCoveringType = IfcCoveringType; class IfcCrewResource extends IfcConstructionResource { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.Identification = Identification; this.LongDescription = LongDescription; this.Usage = Usage; this.BaseCosts = BaseCosts; this.BaseQuantity = BaseQuantity; this.PredefinedType = PredefinedType; this.type = 3295246426; } } IFC4_32.IfcCrewResource = IfcCrewResource; class IfcCurtainWallType extends IfcBuiltElementType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 1457835157; } } IFC4_32.IfcCurtainWallType = IfcCurtainWallType; class IfcCylindricalSurface extends IfcElementarySurface { constructor(expressID, Position, Radius) { super(expressID, Position); this.Position = Position; this.Radius = Radius; this.type = 1213902940; } } IFC4_32.IfcCylindricalSurface = IfcCylindricalSurface; class IfcDeepFoundationType extends IfcBuiltElementType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.type = 1306400036; } } IFC4_32.IfcDeepFoundationType = IfcDeepFoundationType; class IfcDirectrixDerivedReferenceSweptAreaSolid extends IfcFixedReferenceSweptAreaSolid { constructor(expressID, SweptArea, Position, Directrix, StartParam, EndParam, FixedReference) { super(expressID, SweptArea, Position, Directrix, StartParam, EndParam, FixedReference); this.SweptArea = SweptArea; this.Position = Position; this.Directrix = Directrix; this.StartParam = StartParam; this.EndParam = EndParam; this.FixedReference = FixedReference; this.type = 4234616927; } } IFC4_32.IfcDirectrixDerivedReferenceSweptAreaSolid = IfcDirectrixDerivedReferenceSweptAreaSolid; class IfcDistributionElementType extends IfcElementType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.type = 3256556792; } } IFC4_32.IfcDistributionElementType = IfcDistributionElementType; class IfcDistributionFlowElementType extends IfcDistributionElementType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.type = 3849074793; } } IFC4_32.IfcDistributionFlowElementType = IfcDistributionFlowElementType; class IfcDoorLiningProperties extends IfcPreDefinedPropertySet { constructor(expressID, GlobalId, OwnerHistory, Name, Description, LiningDepth, LiningThickness, ThresholdDepth, ThresholdThickness, TransomThickness, TransomOffset, LiningOffset, ThresholdOffset, CasingThickness, CasingDepth, ShapeAspectStyle, LiningToPanelOffsetX, LiningToPanelOffsetY) { super(expressID, GlobalId, OwnerHistory, Name, Description); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.LiningDepth = LiningDepth; this.LiningThickness = LiningThickness; this.ThresholdDepth = ThresholdDepth; this.ThresholdThickness = ThresholdThickness; this.TransomThickness = TransomThickness; this.TransomOffset = TransomOffset; this.LiningOffset = LiningOffset; this.ThresholdOffset = ThresholdOffset; this.CasingThickness = CasingThickness; this.CasingDepth = CasingDepth; this.ShapeAspectStyle = ShapeAspectStyle; this.LiningToPanelOffsetX = LiningToPanelOffsetX; this.LiningToPanelOffsetY = LiningToPanelOffsetY; this.type = 2963535650; } } IFC4_32.IfcDoorLiningProperties = IfcDoorLiningProperties; class IfcDoorPanelProperties extends IfcPreDefinedPropertySet { constructor(expressID, GlobalId, OwnerHistory, Name, Description, PanelDepth, PanelOperation, PanelWidth, PanelPosition, ShapeAspectStyle) { super(expressID, GlobalId, OwnerHistory, Name, Description); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.PanelDepth = PanelDepth; this.PanelOperation = PanelOperation; this.PanelWidth = PanelWidth; this.PanelPosition = PanelPosition; this.ShapeAspectStyle = ShapeAspectStyle; this.type = 1714330368; } } IFC4_32.IfcDoorPanelProperties = IfcDoorPanelProperties; class IfcDoorType extends IfcBuiltElementType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType, OperationType, ParameterTakesPrecedence, UserDefinedOperationType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.OperationType = OperationType; this.ParameterTakesPrecedence = ParameterTakesPrecedence; this.UserDefinedOperationType = UserDefinedOperationType; this.type = 2323601079; } } IFC4_32.IfcDoorType = IfcDoorType; class IfcDraughtingPreDefinedColour extends IfcPreDefinedColour { constructor(expressID, Name) { super(expressID, Name); this.Name = Name; this.type = 445594917; } } IFC4_32.IfcDraughtingPreDefinedColour = IfcDraughtingPreDefinedColour; class IfcDraughtingPreDefinedCurveFont extends IfcPreDefinedCurveFont { constructor(expressID, Name) { super(expressID, Name); this.Name = Name; this.type = 4006246654; } } IFC4_32.IfcDraughtingPreDefinedCurveFont = IfcDraughtingPreDefinedCurveFont; class IfcElement extends IfcProduct { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.type = 1758889154; } } IFC4_32.IfcElement = IfcElement; class IfcElementAssembly extends IfcElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, AssemblyPlace, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.AssemblyPlace = AssemblyPlace; this.PredefinedType = PredefinedType; this.type = 4123344466; } } IFC4_32.IfcElementAssembly = IfcElementAssembly; class IfcElementAssemblyType extends IfcElementType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 2397081782; } } IFC4_32.IfcElementAssemblyType = IfcElementAssemblyType; class IfcElementComponent extends IfcElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.type = 1623761950; } } IFC4_32.IfcElementComponent = IfcElementComponent; class IfcElementComponentType extends IfcElementType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.type = 2590856083; } } IFC4_32.IfcElementComponentType = IfcElementComponentType; class IfcEllipse extends IfcConic { constructor(expressID, Position, SemiAxis1, SemiAxis2) { super(expressID, Position); this.Position = Position; this.SemiAxis1 = SemiAxis1; this.SemiAxis2 = SemiAxis2; this.type = 1704287377; } } IFC4_32.IfcEllipse = IfcEllipse; class IfcEnergyConversionDeviceType extends IfcDistributionFlowElementType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.type = 2107101300; } } IFC4_32.IfcEnergyConversionDeviceType = IfcEnergyConversionDeviceType; class IfcEngineType extends IfcEnergyConversionDeviceType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 132023988; } } IFC4_32.IfcEngineType = IfcEngineType; class IfcEvaporativeCoolerType extends IfcEnergyConversionDeviceType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 3174744832; } } IFC4_32.IfcEvaporativeCoolerType = IfcEvaporativeCoolerType; class IfcEvaporatorType extends IfcEnergyConversionDeviceType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 3390157468; } } IFC4_32.IfcEvaporatorType = IfcEvaporatorType; class IfcEvent extends IfcProcess { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, PredefinedType, EventTriggerType, UserDefinedEventTriggerType, EventOccurenceTime) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.Identification = Identification; this.LongDescription = LongDescription; this.PredefinedType = PredefinedType; this.EventTriggerType = EventTriggerType; this.UserDefinedEventTriggerType = UserDefinedEventTriggerType; this.EventOccurenceTime = EventOccurenceTime; this.type = 4148101412; } } IFC4_32.IfcEvent = IfcEvent; class IfcExternalSpatialStructureElement extends IfcSpatialElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.LongName = LongName; this.type = 2853485674; } } IFC4_32.IfcExternalSpatialStructureElement = IfcExternalSpatialStructureElement; class IfcFacetedBrep extends IfcManifoldSolidBrep { constructor(expressID, Outer) { super(expressID, Outer); this.Outer = Outer; this.type = 807026263; } } IFC4_32.IfcFacetedBrep = IfcFacetedBrep; class IfcFacetedBrepWithVoids extends IfcFacetedBrep { constructor(expressID, Outer, Voids) { super(expressID, Outer); this.Outer = Outer; this.Voids = Voids; this.type = 3737207727; } } IFC4_32.IfcFacetedBrepWithVoids = IfcFacetedBrepWithVoids; class IfcFacility extends IfcSpatialStructureElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.LongName = LongName; this.CompositionType = CompositionType; this.type = 24185140; } } IFC4_32.IfcFacility = IfcFacility; class IfcFacilityPart extends IfcSpatialStructureElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, UsageType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.LongName = LongName; this.CompositionType = CompositionType; this.UsageType = UsageType; this.type = 1310830890; } } IFC4_32.IfcFacilityPart = IfcFacilityPart; class IfcFacilityPartCommon extends IfcFacilityPart { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, UsageType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, UsageType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.LongName = LongName; this.CompositionType = CompositionType; this.UsageType = UsageType; this.PredefinedType = PredefinedType; this.type = 4228831410; } } IFC4_32.IfcFacilityPartCommon = IfcFacilityPartCommon; class IfcFastener extends IfcElementComponent { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 647756555; } } IFC4_32.IfcFastener = IfcFastener; class IfcFastenerType extends IfcElementComponentType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 2489546625; } } IFC4_32.IfcFastenerType = IfcFastenerType; class IfcFeatureElement extends IfcElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.type = 2827207264; } } IFC4_32.IfcFeatureElement = IfcFeatureElement; class IfcFeatureElementAddition extends IfcFeatureElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.type = 2143335405; } } IFC4_32.IfcFeatureElementAddition = IfcFeatureElementAddition; class IfcFeatureElementSubtraction extends IfcFeatureElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.type = 1287392070; } } IFC4_32.IfcFeatureElementSubtraction = IfcFeatureElementSubtraction; class IfcFlowControllerType extends IfcDistributionFlowElementType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.type = 3907093117; } } IFC4_32.IfcFlowControllerType = IfcFlowControllerType; class IfcFlowFittingType extends IfcDistributionFlowElementType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.type = 3198132628; } } IFC4_32.IfcFlowFittingType = IfcFlowFittingType; class IfcFlowMeterType extends IfcFlowControllerType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 3815607619; } } IFC4_32.IfcFlowMeterType = IfcFlowMeterType; class IfcFlowMovingDeviceType extends IfcDistributionFlowElementType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.type = 1482959167; } } IFC4_32.IfcFlowMovingDeviceType = IfcFlowMovingDeviceType; class IfcFlowSegmentType extends IfcDistributionFlowElementType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.type = 1834744321; } } IFC4_32.IfcFlowSegmentType = IfcFlowSegmentType; class IfcFlowStorageDeviceType extends IfcDistributionFlowElementType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.type = 1339347760; } } IFC4_32.IfcFlowStorageDeviceType = IfcFlowStorageDeviceType; class IfcFlowTerminalType extends IfcDistributionFlowElementType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.type = 2297155007; } } IFC4_32.IfcFlowTerminalType = IfcFlowTerminalType; class IfcFlowTreatmentDeviceType extends IfcDistributionFlowElementType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.type = 3009222698; } } IFC4_32.IfcFlowTreatmentDeviceType = IfcFlowTreatmentDeviceType; class IfcFootingType extends IfcBuiltElementType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 1893162501; } } IFC4_32.IfcFootingType = IfcFootingType; class IfcFurnishingElement extends IfcElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.type = 263784265; } } IFC4_32.IfcFurnishingElement = IfcFurnishingElement; class IfcFurniture extends IfcFurnishingElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 1509553395; } } IFC4_32.IfcFurniture = IfcFurniture; class IfcGeographicElement extends IfcElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 3493046030; } } IFC4_32.IfcGeographicElement = IfcGeographicElement; class IfcGeotechnicalElement extends IfcElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.type = 4230923436; } } IFC4_32.IfcGeotechnicalElement = IfcGeotechnicalElement; class IfcGeotechnicalStratum extends IfcGeotechnicalElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 1594536857; } } IFC4_32.IfcGeotechnicalStratum = IfcGeotechnicalStratum; class IfcGradientCurve extends IfcCompositeCurve { constructor(expressID, Segments, SelfIntersect, BaseCurve, EndPoint) { super(expressID, Segments, SelfIntersect); this.Segments = Segments; this.SelfIntersect = SelfIntersect; this.BaseCurve = BaseCurve; this.EndPoint = EndPoint; this.type = 2898700619; } } IFC4_32.IfcGradientCurve = IfcGradientCurve; class IfcGroup extends IfcObject { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.type = 2706460486; } } IFC4_32.IfcGroup = IfcGroup; class IfcHeatExchangerType extends IfcEnergyConversionDeviceType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 1251058090; } } IFC4_32.IfcHeatExchangerType = IfcHeatExchangerType; class IfcHumidifierType extends IfcEnergyConversionDeviceType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 1806887404; } } IFC4_32.IfcHumidifierType = IfcHumidifierType; class IfcImpactProtectionDevice extends IfcElementComponent { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 2568555532; } } IFC4_32.IfcImpactProtectionDevice = IfcImpactProtectionDevice; class IfcImpactProtectionDeviceType extends IfcElementComponentType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 3948183225; } } IFC4_32.IfcImpactProtectionDeviceType = IfcImpactProtectionDeviceType; class IfcIndexedPolyCurve extends IfcBoundedCurve { constructor(expressID, Points, Segments, SelfIntersect) { super(expressID); this.Points = Points; this.Segments = Segments; this.SelfIntersect = SelfIntersect; this.type = 2571569899; } } IFC4_32.IfcIndexedPolyCurve = IfcIndexedPolyCurve; class IfcInterceptorType extends IfcFlowTreatmentDeviceType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 3946677679; } } IFC4_32.IfcInterceptorType = IfcInterceptorType; class IfcIntersectionCurve extends IfcSurfaceCurve { constructor(expressID, Curve3D, AssociatedGeometry, MasterRepresentation) { super(expressID, Curve3D, AssociatedGeometry, MasterRepresentation); this.Curve3D = Curve3D; this.AssociatedGeometry = AssociatedGeometry; this.MasterRepresentation = MasterRepresentation; this.type = 3113134337; } } IFC4_32.IfcIntersectionCurve = IfcIntersectionCurve; class IfcInventory extends IfcGroup { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, PredefinedType, Jurisdiction, ResponsiblePersons, LastUpdateDate, CurrentValue, OriginalValue) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.PredefinedType = PredefinedType; this.Jurisdiction = Jurisdiction; this.ResponsiblePersons = ResponsiblePersons; this.LastUpdateDate = LastUpdateDate; this.CurrentValue = CurrentValue; this.OriginalValue = OriginalValue; this.type = 2391368822; } } IFC4_32.IfcInventory = IfcInventory; class IfcJunctionBoxType extends IfcFlowFittingType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 4288270099; } } IFC4_32.IfcJunctionBoxType = IfcJunctionBoxType; class IfcKerbType extends IfcBuiltElementType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, Mountable) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.Mountable = Mountable; this.type = 679976338; } } IFC4_32.IfcKerbType = IfcKerbType; class IfcLaborResource extends IfcConstructionResource { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.Identification = Identification; this.LongDescription = LongDescription; this.Usage = Usage; this.BaseCosts = BaseCosts; this.BaseQuantity = BaseQuantity; this.PredefinedType = PredefinedType; this.type = 3827777499; } } IFC4_32.IfcLaborResource = IfcLaborResource; class IfcLampType extends IfcFlowTerminalType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 1051575348; } } IFC4_32.IfcLampType = IfcLampType; class IfcLightFixtureType extends IfcFlowTerminalType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 1161773419; } } IFC4_32.IfcLightFixtureType = IfcLightFixtureType; class IfcLinearElement extends IfcProduct { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.type = 2176059722; } } IFC4_32.IfcLinearElement = IfcLinearElement; class IfcLiquidTerminalType extends IfcFlowTerminalType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 1770583370; } } IFC4_32.IfcLiquidTerminalType = IfcLiquidTerminalType; class IfcMarineFacility extends IfcFacility { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.LongName = LongName; this.CompositionType = CompositionType; this.PredefinedType = PredefinedType; this.type = 525669439; } } IFC4_32.IfcMarineFacility = IfcMarineFacility; class IfcMarinePart extends IfcFacilityPart { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, UsageType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, UsageType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.LongName = LongName; this.CompositionType = CompositionType; this.UsageType = UsageType; this.PredefinedType = PredefinedType; this.type = 976884017; } } IFC4_32.IfcMarinePart = IfcMarinePart; class IfcMechanicalFastener extends IfcElementComponent { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, NominalDiameter, NominalLength, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.NominalDiameter = NominalDiameter; this.NominalLength = NominalLength; this.PredefinedType = PredefinedType; this.type = 377706215; } } IFC4_32.IfcMechanicalFastener = IfcMechanicalFastener; class IfcMechanicalFastenerType extends IfcElementComponentType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType, NominalDiameter, NominalLength) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.NominalDiameter = NominalDiameter; this.NominalLength = NominalLength; this.type = 2108223431; } } IFC4_32.IfcMechanicalFastenerType = IfcMechanicalFastenerType; class IfcMedicalDeviceType extends IfcFlowTerminalType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 1114901282; } } IFC4_32.IfcMedicalDeviceType = IfcMedicalDeviceType; class IfcMemberType extends IfcBuiltElementType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 3181161470; } } IFC4_32.IfcMemberType = IfcMemberType; class IfcMobileTelecommunicationsApplianceType extends IfcFlowTerminalType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 1950438474; } } IFC4_32.IfcMobileTelecommunicationsApplianceType = IfcMobileTelecommunicationsApplianceType; class IfcMooringDeviceType extends IfcBuiltElementType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 710110818; } } IFC4_32.IfcMooringDeviceType = IfcMooringDeviceType; class IfcMotorConnectionType extends IfcEnergyConversionDeviceType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 977012517; } } IFC4_32.IfcMotorConnectionType = IfcMotorConnectionType; class IfcNavigationElementType extends IfcBuiltElementType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 506776471; } } IFC4_32.IfcNavigationElementType = IfcNavigationElementType; class IfcOccupant extends IfcActor { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, TheActor, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, TheActor); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.TheActor = TheActor; this.PredefinedType = PredefinedType; this.type = 4143007308; } } IFC4_32.IfcOccupant = IfcOccupant; class IfcOpeningElement extends IfcFeatureElementSubtraction { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 3588315303; } } IFC4_32.IfcOpeningElement = IfcOpeningElement; class IfcOutletType extends IfcFlowTerminalType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 2837617999; } } IFC4_32.IfcOutletType = IfcOutletType; class IfcPavementType extends IfcBuiltElementType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 514975943; } } IFC4_32.IfcPavementType = IfcPavementType; class IfcPerformanceHistory extends IfcControl { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LifeCyclePhase, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.Identification = Identification; this.LifeCyclePhase = LifeCyclePhase; this.PredefinedType = PredefinedType; this.type = 2382730787; } } IFC4_32.IfcPerformanceHistory = IfcPerformanceHistory; class IfcPermeableCoveringProperties extends IfcPreDefinedPropertySet { constructor(expressID, GlobalId, OwnerHistory, Name, Description, OperationType, PanelPosition, FrameDepth, FrameThickness, ShapeAspectStyle) { super(expressID, GlobalId, OwnerHistory, Name, Description); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.OperationType = OperationType; this.PanelPosition = PanelPosition; this.FrameDepth = FrameDepth; this.FrameThickness = FrameThickness; this.ShapeAspectStyle = ShapeAspectStyle; this.type = 3566463478; } } IFC4_32.IfcPermeableCoveringProperties = IfcPermeableCoveringProperties; class IfcPermit extends IfcControl { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, PredefinedType, Status, LongDescription) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.Identification = Identification; this.PredefinedType = PredefinedType; this.Status = Status; this.LongDescription = LongDescription; this.type = 3327091369; } } IFC4_32.IfcPermit = IfcPermit; class IfcPileType extends IfcDeepFoundationType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 1158309216; } } IFC4_32.IfcPileType = IfcPileType; class IfcPipeFittingType extends IfcFlowFittingType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 804291784; } } IFC4_32.IfcPipeFittingType = IfcPipeFittingType; class IfcPipeSegmentType extends IfcFlowSegmentType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 4231323485; } } IFC4_32.IfcPipeSegmentType = IfcPipeSegmentType; class IfcPlateType extends IfcBuiltElementType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 4017108033; } } IFC4_32.IfcPlateType = IfcPlateType; class IfcPolygonalFaceSet extends IfcTessellatedFaceSet { constructor(expressID, Coordinates, Closed, Faces, PnIndex) { super(expressID, Coordinates, Closed); this.Coordinates = Coordinates; this.Closed = Closed; this.Faces = Faces; this.PnIndex = PnIndex; this.type = 2839578677; } } IFC4_32.IfcPolygonalFaceSet = IfcPolygonalFaceSet; class IfcPolyline extends IfcBoundedCurve { constructor(expressID, Points) { super(expressID); this.Points = Points; this.type = 3724593414; } } IFC4_32.IfcPolyline = IfcPolyline; class IfcPort extends IfcProduct { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.type = 3740093272; } } IFC4_32.IfcPort = IfcPort; class IfcPositioningElement extends IfcProduct { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.type = 1946335990; } } IFC4_32.IfcPositioningElement = IfcPositioningElement; class IfcProcedure extends IfcProcess { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.Identification = Identification; this.LongDescription = LongDescription; this.PredefinedType = PredefinedType; this.type = 2744685151; } } IFC4_32.IfcProcedure = IfcProcedure; class IfcProjectOrder extends IfcControl { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, PredefinedType, Status, LongDescription) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.Identification = Identification; this.PredefinedType = PredefinedType; this.Status = Status; this.LongDescription = LongDescription; this.type = 2904328755; } } IFC4_32.IfcProjectOrder = IfcProjectOrder; class IfcProjectionElement extends IfcFeatureElementAddition { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 3651124850; } } IFC4_32.IfcProjectionElement = IfcProjectionElement; class IfcProtectiveDeviceType extends IfcFlowControllerType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 1842657554; } } IFC4_32.IfcProtectiveDeviceType = IfcProtectiveDeviceType; class IfcPumpType extends IfcFlowMovingDeviceType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 2250791053; } } IFC4_32.IfcPumpType = IfcPumpType; class IfcRailType extends IfcBuiltElementType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 1763565496; } } IFC4_32.IfcRailType = IfcRailType; class IfcRailingType extends IfcBuiltElementType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 2893384427; } } IFC4_32.IfcRailingType = IfcRailingType; class IfcRailway extends IfcFacility { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.LongName = LongName; this.CompositionType = CompositionType; this.PredefinedType = PredefinedType; this.type = 3992365140; } } IFC4_32.IfcRailway = IfcRailway; class IfcRailwayPart extends IfcFacilityPart { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, UsageType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, UsageType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.LongName = LongName; this.CompositionType = CompositionType; this.UsageType = UsageType; this.PredefinedType = PredefinedType; this.type = 1891881377; } } IFC4_32.IfcRailwayPart = IfcRailwayPart; class IfcRampFlightType extends IfcBuiltElementType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 2324767716; } } IFC4_32.IfcRampFlightType = IfcRampFlightType; class IfcRampType extends IfcBuiltElementType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 1469900589; } } IFC4_32.IfcRampType = IfcRampType; class IfcRationalBSplineSurfaceWithKnots extends IfcBSplineSurfaceWithKnots { constructor(expressID, UDegree, VDegree, ControlPointsList, SurfaceForm, UClosed, VClosed, SelfIntersect, UMultiplicities, VMultiplicities, UKnots, VKnots, KnotSpec, WeightsData) { super(expressID, UDegree, VDegree, ControlPointsList, SurfaceForm, UClosed, VClosed, SelfIntersect, UMultiplicities, VMultiplicities, UKnots, VKnots, KnotSpec); this.UDegree = UDegree; this.VDegree = VDegree; this.ControlPointsList = ControlPointsList; this.SurfaceForm = SurfaceForm; this.UClosed = UClosed; this.VClosed = VClosed; this.SelfIntersect = SelfIntersect; this.UMultiplicities = UMultiplicities; this.VMultiplicities = VMultiplicities; this.UKnots = UKnots; this.VKnots = VKnots; this.KnotSpec = KnotSpec; this.WeightsData = WeightsData; this.type = 683857671; } } IFC4_32.IfcRationalBSplineSurfaceWithKnots = IfcRationalBSplineSurfaceWithKnots; class IfcReferent extends IfcPositioningElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.PredefinedType = PredefinedType; this.type = 4021432810; } } IFC4_32.IfcReferent = IfcReferent; class IfcReinforcingElement extends IfcElementComponent { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.SteelGrade = SteelGrade; this.type = 3027567501; } } IFC4_32.IfcReinforcingElement = IfcReinforcingElement; class IfcReinforcingElementType extends IfcElementComponentType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.type = 964333572; } } IFC4_32.IfcReinforcingElementType = IfcReinforcingElementType; class IfcReinforcingMesh extends IfcReinforcingElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade, MeshLength, MeshWidth, LongitudinalBarNominalDiameter, TransverseBarNominalDiameter, LongitudinalBarCrossSectionArea, TransverseBarCrossSectionArea, LongitudinalBarSpacing, TransverseBarSpacing, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.SteelGrade = SteelGrade; this.MeshLength = MeshLength; this.MeshWidth = MeshWidth; this.LongitudinalBarNominalDiameter = LongitudinalBarNominalDiameter; this.TransverseBarNominalDiameter = TransverseBarNominalDiameter; this.LongitudinalBarCrossSectionArea = LongitudinalBarCrossSectionArea; this.TransverseBarCrossSectionArea = TransverseBarCrossSectionArea; this.LongitudinalBarSpacing = LongitudinalBarSpacing; this.TransverseBarSpacing = TransverseBarSpacing; this.PredefinedType = PredefinedType; this.type = 2320036040; } } IFC4_32.IfcReinforcingMesh = IfcReinforcingMesh; class IfcReinforcingMeshType extends IfcReinforcingElementType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType, MeshLength, MeshWidth, LongitudinalBarNominalDiameter, TransverseBarNominalDiameter, LongitudinalBarCrossSectionArea, TransverseBarCrossSectionArea, LongitudinalBarSpacing, TransverseBarSpacing, BendingShapeCode, BendingParameters) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.MeshLength = MeshLength; this.MeshWidth = MeshWidth; this.LongitudinalBarNominalDiameter = LongitudinalBarNominalDiameter; this.TransverseBarNominalDiameter = TransverseBarNominalDiameter; this.LongitudinalBarCrossSectionArea = LongitudinalBarCrossSectionArea; this.TransverseBarCrossSectionArea = TransverseBarCrossSectionArea; this.LongitudinalBarSpacing = LongitudinalBarSpacing; this.TransverseBarSpacing = TransverseBarSpacing; this.BendingShapeCode = BendingShapeCode; this.BendingParameters = BendingParameters; this.type = 2310774935; } } IFC4_32.IfcReinforcingMeshType = IfcReinforcingMeshType; class IfcRelAdheresToElement extends IfcRelDecomposes { constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingElement, RelatedSurfaceFeatures) { super(expressID, GlobalId, OwnerHistory, Name, Description); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.RelatingElement = RelatingElement; this.RelatedSurfaceFeatures = RelatedSurfaceFeatures; this.type = 3818125796; } } IFC4_32.IfcRelAdheresToElement = IfcRelAdheresToElement; class IfcRelAggregates extends IfcRelDecomposes { constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingObject, RelatedObjects) { super(expressID, GlobalId, OwnerHistory, Name, Description); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.RelatingObject = RelatingObject; this.RelatedObjects = RelatedObjects; this.type = 160246688; } } IFC4_32.IfcRelAggregates = IfcRelAggregates; class IfcRoad extends IfcFacility { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.LongName = LongName; this.CompositionType = CompositionType; this.PredefinedType = PredefinedType; this.type = 146592293; } } IFC4_32.IfcRoad = IfcRoad; class IfcRoadPart extends IfcFacilityPart { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, UsageType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, UsageType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.LongName = LongName; this.CompositionType = CompositionType; this.UsageType = UsageType; this.PredefinedType = PredefinedType; this.type = 550521510; } } IFC4_32.IfcRoadPart = IfcRoadPart; class IfcRoofType extends IfcBuiltElementType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 2781568857; } } IFC4_32.IfcRoofType = IfcRoofType; class IfcSanitaryTerminalType extends IfcFlowTerminalType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 1768891740; } } IFC4_32.IfcSanitaryTerminalType = IfcSanitaryTerminalType; class IfcSeamCurve extends IfcSurfaceCurve { constructor(expressID, Curve3D, AssociatedGeometry, MasterRepresentation) { super(expressID, Curve3D, AssociatedGeometry, MasterRepresentation); this.Curve3D = Curve3D; this.AssociatedGeometry = AssociatedGeometry; this.MasterRepresentation = MasterRepresentation; this.type = 2157484638; } } IFC4_32.IfcSeamCurve = IfcSeamCurve; class IfcSecondOrderPolynomialSpiral extends IfcSpiral { constructor(expressID, Position, QuadraticTerm, LinearTerm, ConstantTerm) { super(expressID, Position); this.Position = Position; this.QuadraticTerm = QuadraticTerm; this.LinearTerm = LinearTerm; this.ConstantTerm = ConstantTerm; this.type = 3649235739; } } IFC4_32.IfcSecondOrderPolynomialSpiral = IfcSecondOrderPolynomialSpiral; class IfcSegmentedReferenceCurve extends IfcCompositeCurve { constructor(expressID, Segments, SelfIntersect, BaseCurve, EndPoint) { super(expressID, Segments, SelfIntersect); this.Segments = Segments; this.SelfIntersect = SelfIntersect; this.BaseCurve = BaseCurve; this.EndPoint = EndPoint; this.type = 544395925; } } IFC4_32.IfcSegmentedReferenceCurve = IfcSegmentedReferenceCurve; class IfcSeventhOrderPolynomialSpiral extends IfcSpiral { constructor(expressID, Position, SepticTerm, SexticTerm, QuinticTerm, QuarticTerm, CubicTerm, QuadraticTerm, LinearTerm, ConstantTerm) { super(expressID, Position); this.Position = Position; this.SepticTerm = SepticTerm; this.SexticTerm = SexticTerm; this.QuinticTerm = QuinticTerm; this.QuarticTerm = QuarticTerm; this.CubicTerm = CubicTerm; this.QuadraticTerm = QuadraticTerm; this.LinearTerm = LinearTerm; this.ConstantTerm = ConstantTerm; this.type = 1027922057; } } IFC4_32.IfcSeventhOrderPolynomialSpiral = IfcSeventhOrderPolynomialSpiral; class IfcShadingDeviceType extends IfcBuiltElementType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 4074543187; } } IFC4_32.IfcShadingDeviceType = IfcShadingDeviceType; class IfcSign extends IfcElementComponent { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 33720170; } } IFC4_32.IfcSign = IfcSign; class IfcSignType extends IfcElementComponentType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 3599934289; } } IFC4_32.IfcSignType = IfcSignType; class IfcSignalType extends IfcFlowTerminalType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 1894708472; } } IFC4_32.IfcSignalType = IfcSignalType; class IfcSineSpiral extends IfcSpiral { constructor(expressID, Position, SineTerm, LinearTerm, ConstantTerm) { super(expressID, Position); this.Position = Position; this.SineTerm = SineTerm; this.LinearTerm = LinearTerm; this.ConstantTerm = ConstantTerm; this.type = 42703149; } } IFC4_32.IfcSineSpiral = IfcSineSpiral; class IfcSite extends IfcSpatialStructureElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, RefLatitude, RefLongitude, RefElevation, LandTitleNumber, SiteAddress) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.LongName = LongName; this.CompositionType = CompositionType; this.RefLatitude = RefLatitude; this.RefLongitude = RefLongitude; this.RefElevation = RefElevation; this.LandTitleNumber = LandTitleNumber; this.SiteAddress = SiteAddress; this.type = 4097777520; } } IFC4_32.IfcSite = IfcSite; class IfcSlabType extends IfcBuiltElementType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 2533589738; } } IFC4_32.IfcSlabType = IfcSlabType; class IfcSolarDeviceType extends IfcEnergyConversionDeviceType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 1072016465; } } IFC4_32.IfcSolarDeviceType = IfcSolarDeviceType; class IfcSpace extends IfcSpatialStructureElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, PredefinedType, ElevationWithFlooring) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.LongName = LongName; this.CompositionType = CompositionType; this.PredefinedType = PredefinedType; this.ElevationWithFlooring = ElevationWithFlooring; this.type = 3856911033; } } IFC4_32.IfcSpace = IfcSpace; class IfcSpaceHeaterType extends IfcFlowTerminalType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 1305183839; } } IFC4_32.IfcSpaceHeaterType = IfcSpaceHeaterType; class IfcSpaceType extends IfcSpatialStructureElementType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType, LongName) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.LongName = LongName; this.type = 3812236995; } } IFC4_32.IfcSpaceType = IfcSpaceType; class IfcStackTerminalType extends IfcFlowTerminalType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 3112655638; } } IFC4_32.IfcStackTerminalType = IfcStackTerminalType; class IfcStairFlightType extends IfcBuiltElementType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 1039846685; } } IFC4_32.IfcStairFlightType = IfcStairFlightType; class IfcStairType extends IfcBuiltElementType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 338393293; } } IFC4_32.IfcStairType = IfcStairType; class IfcStructuralAction extends IfcStructuralActivity { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.AppliedLoad = AppliedLoad; this.GlobalOrLocal = GlobalOrLocal; this.DestabilizingLoad = DestabilizingLoad; this.type = 682877961; } } IFC4_32.IfcStructuralAction = IfcStructuralAction; class IfcStructuralConnection extends IfcStructuralItem { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.AppliedCondition = AppliedCondition; this.type = 1179482911; } } IFC4_32.IfcStructuralConnection = IfcStructuralConnection; class IfcStructuralCurveAction extends IfcStructuralAction { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, ProjectedOrTrue, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.AppliedLoad = AppliedLoad; this.GlobalOrLocal = GlobalOrLocal; this.DestabilizingLoad = DestabilizingLoad; this.ProjectedOrTrue = ProjectedOrTrue; this.PredefinedType = PredefinedType; this.type = 1004757350; } } IFC4_32.IfcStructuralCurveAction = IfcStructuralCurveAction; class IfcStructuralCurveConnection extends IfcStructuralConnection { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition, AxisDirection) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.AppliedCondition = AppliedCondition; this.AxisDirection = AxisDirection; this.type = 4243806635; } } IFC4_32.IfcStructuralCurveConnection = IfcStructuralCurveConnection; class IfcStructuralCurveMember extends IfcStructuralMember { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType, Axis) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.PredefinedType = PredefinedType; this.Axis = Axis; this.type = 214636428; } } IFC4_32.IfcStructuralCurveMember = IfcStructuralCurveMember; class IfcStructuralCurveMemberVarying extends IfcStructuralCurveMember { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType, Axis) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType, Axis); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.PredefinedType = PredefinedType; this.Axis = Axis; this.type = 2445595289; } } IFC4_32.IfcStructuralCurveMemberVarying = IfcStructuralCurveMemberVarying; class IfcStructuralCurveReaction extends IfcStructuralReaction { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.AppliedLoad = AppliedLoad; this.GlobalOrLocal = GlobalOrLocal; this.PredefinedType = PredefinedType; this.type = 2757150158; } } IFC4_32.IfcStructuralCurveReaction = IfcStructuralCurveReaction; class IfcStructuralLinearAction extends IfcStructuralCurveAction { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, ProjectedOrTrue, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, ProjectedOrTrue, PredefinedType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.AppliedLoad = AppliedLoad; this.GlobalOrLocal = GlobalOrLocal; this.DestabilizingLoad = DestabilizingLoad; this.ProjectedOrTrue = ProjectedOrTrue; this.PredefinedType = PredefinedType; this.type = 1807405624; } } IFC4_32.IfcStructuralLinearAction = IfcStructuralLinearAction; class IfcStructuralLoadGroup extends IfcGroup { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, PredefinedType, ActionType, ActionSource, Coefficient, Purpose) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.PredefinedType = PredefinedType; this.ActionType = ActionType; this.ActionSource = ActionSource; this.Coefficient = Coefficient; this.Purpose = Purpose; this.type = 1252848954; } } IFC4_32.IfcStructuralLoadGroup = IfcStructuralLoadGroup; class IfcStructuralPointAction extends IfcStructuralAction { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.AppliedLoad = AppliedLoad; this.GlobalOrLocal = GlobalOrLocal; this.DestabilizingLoad = DestabilizingLoad; this.type = 2082059205; } } IFC4_32.IfcStructuralPointAction = IfcStructuralPointAction; class IfcStructuralPointConnection extends IfcStructuralConnection { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition, ConditionCoordinateSystem) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.AppliedCondition = AppliedCondition; this.ConditionCoordinateSystem = ConditionCoordinateSystem; this.type = 734778138; } } IFC4_32.IfcStructuralPointConnection = IfcStructuralPointConnection; class IfcStructuralPointReaction extends IfcStructuralReaction { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.AppliedLoad = AppliedLoad; this.GlobalOrLocal = GlobalOrLocal; this.type = 1235345126; } } IFC4_32.IfcStructuralPointReaction = IfcStructuralPointReaction; class IfcStructuralResultGroup extends IfcGroup { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, TheoryType, ResultForLoadGroup, IsLinear) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.TheoryType = TheoryType; this.ResultForLoadGroup = ResultForLoadGroup; this.IsLinear = IsLinear; this.type = 2986769608; } } IFC4_32.IfcStructuralResultGroup = IfcStructuralResultGroup; class IfcStructuralSurfaceAction extends IfcStructuralAction { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, ProjectedOrTrue, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.AppliedLoad = AppliedLoad; this.GlobalOrLocal = GlobalOrLocal; this.DestabilizingLoad = DestabilizingLoad; this.ProjectedOrTrue = ProjectedOrTrue; this.PredefinedType = PredefinedType; this.type = 3657597509; } } IFC4_32.IfcStructuralSurfaceAction = IfcStructuralSurfaceAction; class IfcStructuralSurfaceConnection extends IfcStructuralConnection { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.AppliedCondition = AppliedCondition; this.type = 1975003073; } } IFC4_32.IfcStructuralSurfaceConnection = IfcStructuralSurfaceConnection; class IfcSubContractResource extends IfcConstructionResource { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.Identification = Identification; this.LongDescription = LongDescription; this.Usage = Usage; this.BaseCosts = BaseCosts; this.BaseQuantity = BaseQuantity; this.PredefinedType = PredefinedType; this.type = 148013059; } } IFC4_32.IfcSubContractResource = IfcSubContractResource; class IfcSurfaceFeature extends IfcFeatureElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 3101698114; } } IFC4_32.IfcSurfaceFeature = IfcSurfaceFeature; class IfcSwitchingDeviceType extends IfcFlowControllerType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 2315554128; } } IFC4_32.IfcSwitchingDeviceType = IfcSwitchingDeviceType; class IfcSystem extends IfcGroup { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.type = 2254336722; } } IFC4_32.IfcSystem = IfcSystem; class IfcSystemFurnitureElement extends IfcFurnishingElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 413509423; } } IFC4_32.IfcSystemFurnitureElement = IfcSystemFurnitureElement; class IfcTankType extends IfcFlowStorageDeviceType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 5716631; } } IFC4_32.IfcTankType = IfcTankType; class IfcTendon extends IfcReinforcingElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade, PredefinedType, NominalDiameter, CrossSectionArea, TensionForce, PreStress, FrictionCoefficient, AnchorageSlip, MinCurvatureRadius) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.SteelGrade = SteelGrade; this.PredefinedType = PredefinedType; this.NominalDiameter = NominalDiameter; this.CrossSectionArea = CrossSectionArea; this.TensionForce = TensionForce; this.PreStress = PreStress; this.FrictionCoefficient = FrictionCoefficient; this.AnchorageSlip = AnchorageSlip; this.MinCurvatureRadius = MinCurvatureRadius; this.type = 3824725483; } } IFC4_32.IfcTendon = IfcTendon; class IfcTendonAnchor extends IfcReinforcingElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.SteelGrade = SteelGrade; this.PredefinedType = PredefinedType; this.type = 2347447852; } } IFC4_32.IfcTendonAnchor = IfcTendonAnchor; class IfcTendonAnchorType extends IfcReinforcingElementType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 3081323446; } } IFC4_32.IfcTendonAnchorType = IfcTendonAnchorType; class IfcTendonConduit extends IfcReinforcingElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.SteelGrade = SteelGrade; this.PredefinedType = PredefinedType; this.type = 3663046924; } } IFC4_32.IfcTendonConduit = IfcTendonConduit; class IfcTendonConduitType extends IfcReinforcingElementType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 2281632017; } } IFC4_32.IfcTendonConduitType = IfcTendonConduitType; class IfcTendonType extends IfcReinforcingElementType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType, NominalDiameter, CrossSectionArea, SheathDiameter) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.NominalDiameter = NominalDiameter; this.CrossSectionArea = CrossSectionArea; this.SheathDiameter = SheathDiameter; this.type = 2415094496; } } IFC4_32.IfcTendonType = IfcTendonType; class IfcTrackElementType extends IfcBuiltElementType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 618700268; } } IFC4_32.IfcTrackElementType = IfcTrackElementType; class IfcTransformerType extends IfcEnergyConversionDeviceType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 1692211062; } } IFC4_32.IfcTransformerType = IfcTransformerType; class IfcTransportElementType extends IfcTransportationDeviceType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 2097647324; } } IFC4_32.IfcTransportElementType = IfcTransportElementType; class IfcTransportationDevice extends IfcElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.type = 1953115116; } } IFC4_32.IfcTransportationDevice = IfcTransportationDevice; class IfcTrimmedCurve extends IfcBoundedCurve { constructor(expressID, BasisCurve, Trim1, Trim2, SenseAgreement, MasterRepresentation) { super(expressID); this.BasisCurve = BasisCurve; this.Trim1 = Trim1; this.Trim2 = Trim2; this.SenseAgreement = SenseAgreement; this.MasterRepresentation = MasterRepresentation; this.type = 3593883385; } } IFC4_32.IfcTrimmedCurve = IfcTrimmedCurve; class IfcTubeBundleType extends IfcEnergyConversionDeviceType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 1600972822; } } IFC4_32.IfcTubeBundleType = IfcTubeBundleType; class IfcUnitaryEquipmentType extends IfcEnergyConversionDeviceType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 1911125066; } } IFC4_32.IfcUnitaryEquipmentType = IfcUnitaryEquipmentType; class IfcValveType extends IfcFlowControllerType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 728799441; } } IFC4_32.IfcValveType = IfcValveType; class IfcVehicle extends IfcTransportationDevice { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 840318589; } } IFC4_32.IfcVehicle = IfcVehicle; class IfcVibrationDamper extends IfcElementComponent { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 1530820697; } } IFC4_32.IfcVibrationDamper = IfcVibrationDamper; class IfcVibrationDamperType extends IfcElementComponentType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 3956297820; } } IFC4_32.IfcVibrationDamperType = IfcVibrationDamperType; class IfcVibrationIsolator extends IfcElementComponent { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 2391383451; } } IFC4_32.IfcVibrationIsolator = IfcVibrationIsolator; class IfcVibrationIsolatorType extends IfcElementComponentType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 3313531582; } } IFC4_32.IfcVibrationIsolatorType = IfcVibrationIsolatorType; class IfcVirtualElement extends IfcElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 2769231204; } } IFC4_32.IfcVirtualElement = IfcVirtualElement; class IfcVoidingFeature extends IfcFeatureElementSubtraction { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 926996030; } } IFC4_32.IfcVoidingFeature = IfcVoidingFeature; class IfcWallType extends IfcBuiltElementType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 1898987631; } } IFC4_32.IfcWallType = IfcWallType; class IfcWasteTerminalType extends IfcFlowTerminalType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 1133259667; } } IFC4_32.IfcWasteTerminalType = IfcWasteTerminalType; class IfcWindowType extends IfcBuiltElementType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType, PartitioningType, ParameterTakesPrecedence, UserDefinedPartitioningType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.PartitioningType = PartitioningType; this.ParameterTakesPrecedence = ParameterTakesPrecedence; this.UserDefinedPartitioningType = UserDefinedPartitioningType; this.type = 4009809668; } } IFC4_32.IfcWindowType = IfcWindowType; class IfcWorkCalendar extends IfcControl { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, WorkingTimes, ExceptionTimes, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.Identification = Identification; this.WorkingTimes = WorkingTimes; this.ExceptionTimes = ExceptionTimes; this.PredefinedType = PredefinedType; this.type = 4088093105; } } IFC4_32.IfcWorkCalendar = IfcWorkCalendar; class IfcWorkControl extends IfcControl { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, CreationDate, Creators, Purpose, Duration, TotalFloat, StartTime, FinishTime) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.Identification = Identification; this.CreationDate = CreationDate; this.Creators = Creators; this.Purpose = Purpose; this.Duration = Duration; this.TotalFloat = TotalFloat; this.StartTime = StartTime; this.FinishTime = FinishTime; this.type = 1028945134; } } IFC4_32.IfcWorkControl = IfcWorkControl; class IfcWorkPlan extends IfcWorkControl { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, CreationDate, Creators, Purpose, Duration, TotalFloat, StartTime, FinishTime, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, CreationDate, Creators, Purpose, Duration, TotalFloat, StartTime, FinishTime); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.Identification = Identification; this.CreationDate = CreationDate; this.Creators = Creators; this.Purpose = Purpose; this.Duration = Duration; this.TotalFloat = TotalFloat; this.StartTime = StartTime; this.FinishTime = FinishTime; this.PredefinedType = PredefinedType; this.type = 4218914973; } } IFC4_32.IfcWorkPlan = IfcWorkPlan; class IfcWorkSchedule extends IfcWorkControl { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, CreationDate, Creators, Purpose, Duration, TotalFloat, StartTime, FinishTime, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, CreationDate, Creators, Purpose, Duration, TotalFloat, StartTime, FinishTime); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.Identification = Identification; this.CreationDate = CreationDate; this.Creators = Creators; this.Purpose = Purpose; this.Duration = Duration; this.TotalFloat = TotalFloat; this.StartTime = StartTime; this.FinishTime = FinishTime; this.PredefinedType = PredefinedType; this.type = 3342526732; } } IFC4_32.IfcWorkSchedule = IfcWorkSchedule; class IfcZone extends IfcSystem { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, LongName) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.LongName = LongName; this.type = 1033361043; } } IFC4_32.IfcZone = IfcZone; class IfcActionRequest extends IfcControl { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, PredefinedType, Status, LongDescription) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.Identification = Identification; this.PredefinedType = PredefinedType; this.Status = Status; this.LongDescription = LongDescription; this.type = 3821786052; } } IFC4_32.IfcActionRequest = IfcActionRequest; class IfcAirTerminalBoxType extends IfcFlowControllerType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 1411407467; } } IFC4_32.IfcAirTerminalBoxType = IfcAirTerminalBoxType; class IfcAirTerminalType extends IfcFlowTerminalType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 3352864051; } } IFC4_32.IfcAirTerminalType = IfcAirTerminalType; class IfcAirToAirHeatRecoveryType extends IfcEnergyConversionDeviceType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 1871374353; } } IFC4_32.IfcAirToAirHeatRecoveryType = IfcAirToAirHeatRecoveryType; class IfcAlignmentCant extends IfcLinearElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, RailHeadDistance) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.RailHeadDistance = RailHeadDistance; this.type = 4266260250; } } IFC4_32.IfcAlignmentCant = IfcAlignmentCant; class IfcAlignmentHorizontal extends IfcLinearElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.type = 1545765605; } } IFC4_32.IfcAlignmentHorizontal = IfcAlignmentHorizontal; class IfcAlignmentSegment extends IfcLinearElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, DesignParameters) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.DesignParameters = DesignParameters; this.type = 317615605; } } IFC4_32.IfcAlignmentSegment = IfcAlignmentSegment; class IfcAlignmentVertical extends IfcLinearElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.type = 1662888072; } } IFC4_32.IfcAlignmentVertical = IfcAlignmentVertical; class IfcAsset extends IfcGroup { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, OriginalValue, CurrentValue, TotalReplacementCost, Owner, User, ResponsiblePerson, IncorporationDate, DepreciatedValue) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.Identification = Identification; this.OriginalValue = OriginalValue; this.CurrentValue = CurrentValue; this.TotalReplacementCost = TotalReplacementCost; this.Owner = Owner; this.User = User; this.ResponsiblePerson = ResponsiblePerson; this.IncorporationDate = IncorporationDate; this.DepreciatedValue = DepreciatedValue; this.type = 3460190687; } } IFC4_32.IfcAsset = IfcAsset; class IfcAudioVisualApplianceType extends IfcFlowTerminalType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 1532957894; } } IFC4_32.IfcAudioVisualApplianceType = IfcAudioVisualApplianceType; class IfcBSplineCurve extends IfcBoundedCurve { constructor(expressID, Degree, ControlPointsList, CurveForm, ClosedCurve, SelfIntersect) { super(expressID); this.Degree = Degree; this.ControlPointsList = ControlPointsList; this.CurveForm = CurveForm; this.ClosedCurve = ClosedCurve; this.SelfIntersect = SelfIntersect; this.type = 1967976161; } } IFC4_32.IfcBSplineCurve = IfcBSplineCurve; class IfcBSplineCurveWithKnots extends IfcBSplineCurve { constructor(expressID, Degree, ControlPointsList, CurveForm, ClosedCurve, SelfIntersect, KnotMultiplicities, Knots, KnotSpec) { super(expressID, Degree, ControlPointsList, CurveForm, ClosedCurve, SelfIntersect); this.Degree = Degree; this.ControlPointsList = ControlPointsList; this.CurveForm = CurveForm; this.ClosedCurve = ClosedCurve; this.SelfIntersect = SelfIntersect; this.KnotMultiplicities = KnotMultiplicities; this.Knots = Knots; this.KnotSpec = KnotSpec; this.type = 2461110595; } } IFC4_32.IfcBSplineCurveWithKnots = IfcBSplineCurveWithKnots; class IfcBeamType extends IfcBuiltElementType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 819618141; } } IFC4_32.IfcBeamType = IfcBeamType; class IfcBearingType extends IfcBuiltElementType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 3649138523; } } IFC4_32.IfcBearingType = IfcBearingType; class IfcBoilerType extends IfcEnergyConversionDeviceType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 231477066; } } IFC4_32.IfcBoilerType = IfcBoilerType; class IfcBoundaryCurve extends IfcCompositeCurveOnSurface { constructor(expressID, Segments, SelfIntersect) { super(expressID, Segments, SelfIntersect); this.Segments = Segments; this.SelfIntersect = SelfIntersect; this.type = 1136057603; } } IFC4_32.IfcBoundaryCurve = IfcBoundaryCurve; class IfcBridge extends IfcFacility { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.LongName = LongName; this.CompositionType = CompositionType; this.PredefinedType = PredefinedType; this.type = 644574406; } } IFC4_32.IfcBridge = IfcBridge; class IfcBridgePart extends IfcFacilityPart { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, UsageType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, UsageType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.LongName = LongName; this.CompositionType = CompositionType; this.UsageType = UsageType; this.PredefinedType = PredefinedType; this.type = 963979645; } } IFC4_32.IfcBridgePart = IfcBridgePart; class IfcBuilding extends IfcFacility { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, ElevationOfRefHeight, ElevationOfTerrain, BuildingAddress) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.LongName = LongName; this.CompositionType = CompositionType; this.ElevationOfRefHeight = ElevationOfRefHeight; this.ElevationOfTerrain = ElevationOfTerrain; this.BuildingAddress = BuildingAddress; this.type = 4031249490; } } IFC4_32.IfcBuilding = IfcBuilding; class IfcBuildingElementPart extends IfcElementComponent { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 2979338954; } } IFC4_32.IfcBuildingElementPart = IfcBuildingElementPart; class IfcBuildingElementPartType extends IfcElementComponentType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 39481116; } } IFC4_32.IfcBuildingElementPartType = IfcBuildingElementPartType; class IfcBuildingElementProxyType extends IfcBuiltElementType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 1909888760; } } IFC4_32.IfcBuildingElementProxyType = IfcBuildingElementProxyType; class IfcBuildingSystem extends IfcSystem { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, PredefinedType, LongName) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.PredefinedType = PredefinedType; this.LongName = LongName; this.type = 1177604601; } } IFC4_32.IfcBuildingSystem = IfcBuildingSystem; class IfcBuiltElement extends IfcElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.type = 1876633798; } } IFC4_32.IfcBuiltElement = IfcBuiltElement; class IfcBuiltSystem extends IfcSystem { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, PredefinedType, LongName) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.PredefinedType = PredefinedType; this.LongName = LongName; this.type = 3862327254; } } IFC4_32.IfcBuiltSystem = IfcBuiltSystem; class IfcBurnerType extends IfcEnergyConversionDeviceType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 2188180465; } } IFC4_32.IfcBurnerType = IfcBurnerType; class IfcCableCarrierFittingType extends IfcFlowFittingType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 395041908; } } IFC4_32.IfcCableCarrierFittingType = IfcCableCarrierFittingType; class IfcCableCarrierSegmentType extends IfcFlowSegmentType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 3293546465; } } IFC4_32.IfcCableCarrierSegmentType = IfcCableCarrierSegmentType; class IfcCableFittingType extends IfcFlowFittingType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 2674252688; } } IFC4_32.IfcCableFittingType = IfcCableFittingType; class IfcCableSegmentType extends IfcFlowSegmentType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 1285652485; } } IFC4_32.IfcCableSegmentType = IfcCableSegmentType; class IfcCaissonFoundationType extends IfcDeepFoundationType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 3203706013; } } IFC4_32.IfcCaissonFoundationType = IfcCaissonFoundationType; class IfcChillerType extends IfcEnergyConversionDeviceType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 2951183804; } } IFC4_32.IfcChillerType = IfcChillerType; class IfcChimney extends IfcBuiltElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 3296154744; } } IFC4_32.IfcChimney = IfcChimney; class IfcCircle extends IfcConic { constructor(expressID, Position, Radius) { super(expressID, Position); this.Position = Position; this.Radius = Radius; this.type = 2611217952; } } IFC4_32.IfcCircle = IfcCircle; class IfcCivilElement extends IfcElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.type = 1677625105; } } IFC4_32.IfcCivilElement = IfcCivilElement; class IfcCoilType extends IfcEnergyConversionDeviceType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 2301859152; } } IFC4_32.IfcCoilType = IfcCoilType; class IfcColumn extends IfcBuiltElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 843113511; } } IFC4_32.IfcColumn = IfcColumn; class IfcCommunicationsApplianceType extends IfcFlowTerminalType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 400855858; } } IFC4_32.IfcCommunicationsApplianceType = IfcCommunicationsApplianceType; class IfcCompressorType extends IfcFlowMovingDeviceType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 3850581409; } } IFC4_32.IfcCompressorType = IfcCompressorType; class IfcCondenserType extends IfcEnergyConversionDeviceType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 2816379211; } } IFC4_32.IfcCondenserType = IfcCondenserType; class IfcConstructionEquipmentResource extends IfcConstructionResource { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.Identification = Identification; this.LongDescription = LongDescription; this.Usage = Usage; this.BaseCosts = BaseCosts; this.BaseQuantity = BaseQuantity; this.PredefinedType = PredefinedType; this.type = 3898045240; } } IFC4_32.IfcConstructionEquipmentResource = IfcConstructionEquipmentResource; class IfcConstructionMaterialResource extends IfcConstructionResource { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.Identification = Identification; this.LongDescription = LongDescription; this.Usage = Usage; this.BaseCosts = BaseCosts; this.BaseQuantity = BaseQuantity; this.PredefinedType = PredefinedType; this.type = 1060000209; } } IFC4_32.IfcConstructionMaterialResource = IfcConstructionMaterialResource; class IfcConstructionProductResource extends IfcConstructionResource { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.Identification = Identification; this.LongDescription = LongDescription; this.Usage = Usage; this.BaseCosts = BaseCosts; this.BaseQuantity = BaseQuantity; this.PredefinedType = PredefinedType; this.type = 488727124; } } IFC4_32.IfcConstructionProductResource = IfcConstructionProductResource; class IfcConveyorSegmentType extends IfcFlowSegmentType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 2940368186; } } IFC4_32.IfcConveyorSegmentType = IfcConveyorSegmentType; class IfcCooledBeamType extends IfcEnergyConversionDeviceType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 335055490; } } IFC4_32.IfcCooledBeamType = IfcCooledBeamType; class IfcCoolingTowerType extends IfcEnergyConversionDeviceType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 2954562838; } } IFC4_32.IfcCoolingTowerType = IfcCoolingTowerType; class IfcCourse extends IfcBuiltElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 1502416096; } } IFC4_32.IfcCourse = IfcCourse; class IfcCovering extends IfcBuiltElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 1973544240; } } IFC4_32.IfcCovering = IfcCovering; class IfcCurtainWall extends IfcBuiltElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 3495092785; } } IFC4_32.IfcCurtainWall = IfcCurtainWall; class IfcDamperType extends IfcFlowControllerType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 3961806047; } } IFC4_32.IfcDamperType = IfcDamperType; class IfcDeepFoundation extends IfcBuiltElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.type = 3426335179; } } IFC4_32.IfcDeepFoundation = IfcDeepFoundation; class IfcDiscreteAccessory extends IfcElementComponent { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 1335981549; } } IFC4_32.IfcDiscreteAccessory = IfcDiscreteAccessory; class IfcDiscreteAccessoryType extends IfcElementComponentType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 2635815018; } } IFC4_32.IfcDiscreteAccessoryType = IfcDiscreteAccessoryType; class IfcDistributionBoardType extends IfcFlowControllerType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 479945903; } } IFC4_32.IfcDistributionBoardType = IfcDistributionBoardType; class IfcDistributionChamberElementType extends IfcDistributionFlowElementType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 1599208980; } } IFC4_32.IfcDistributionChamberElementType = IfcDistributionChamberElementType; class IfcDistributionControlElementType extends IfcDistributionElementType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.type = 2063403501; } } IFC4_32.IfcDistributionControlElementType = IfcDistributionControlElementType; class IfcDistributionElement extends IfcElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.type = 1945004755; } } IFC4_32.IfcDistributionElement = IfcDistributionElement; class IfcDistributionFlowElement extends IfcDistributionElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.type = 3040386961; } } IFC4_32.IfcDistributionFlowElement = IfcDistributionFlowElement; class IfcDistributionPort extends IfcPort { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, FlowDirection, PredefinedType, SystemType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.FlowDirection = FlowDirection; this.PredefinedType = PredefinedType; this.SystemType = SystemType; this.type = 3041715199; } } IFC4_32.IfcDistributionPort = IfcDistributionPort; class IfcDistributionSystem extends IfcSystem { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, LongName, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.LongName = LongName; this.PredefinedType = PredefinedType; this.type = 3205830791; } } IFC4_32.IfcDistributionSystem = IfcDistributionSystem; class IfcDoor extends IfcBuiltElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, OverallHeight, OverallWidth, PredefinedType, OperationType, UserDefinedOperationType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.OverallHeight = OverallHeight; this.OverallWidth = OverallWidth; this.PredefinedType = PredefinedType; this.OperationType = OperationType; this.UserDefinedOperationType = UserDefinedOperationType; this.type = 395920057; } } IFC4_32.IfcDoor = IfcDoor; class IfcDuctFittingType extends IfcFlowFittingType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 869906466; } } IFC4_32.IfcDuctFittingType = IfcDuctFittingType; class IfcDuctSegmentType extends IfcFlowSegmentType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 3760055223; } } IFC4_32.IfcDuctSegmentType = IfcDuctSegmentType; class IfcDuctSilencerType extends IfcFlowTreatmentDeviceType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 2030761528; } } IFC4_32.IfcDuctSilencerType = IfcDuctSilencerType; class IfcEarthworksCut extends IfcFeatureElementSubtraction { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 3071239417; } } IFC4_32.IfcEarthworksCut = IfcEarthworksCut; class IfcEarthworksElement extends IfcBuiltElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.type = 1077100507; } } IFC4_32.IfcEarthworksElement = IfcEarthworksElement; class IfcEarthworksFill extends IfcEarthworksElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 3376911765; } } IFC4_32.IfcEarthworksFill = IfcEarthworksFill; class IfcElectricApplianceType extends IfcFlowTerminalType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 663422040; } } IFC4_32.IfcElectricApplianceType = IfcElectricApplianceType; class IfcElectricDistributionBoardType extends IfcFlowControllerType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 2417008758; } } IFC4_32.IfcElectricDistributionBoardType = IfcElectricDistributionBoardType; class IfcElectricFlowStorageDeviceType extends IfcFlowStorageDeviceType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 3277789161; } } IFC4_32.IfcElectricFlowStorageDeviceType = IfcElectricFlowStorageDeviceType; class IfcElectricFlowTreatmentDeviceType extends IfcFlowTreatmentDeviceType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 2142170206; } } IFC4_32.IfcElectricFlowTreatmentDeviceType = IfcElectricFlowTreatmentDeviceType; class IfcElectricGeneratorType extends IfcEnergyConversionDeviceType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 1534661035; } } IFC4_32.IfcElectricGeneratorType = IfcElectricGeneratorType; class IfcElectricMotorType extends IfcEnergyConversionDeviceType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 1217240411; } } IFC4_32.IfcElectricMotorType = IfcElectricMotorType; class IfcElectricTimeControlType extends IfcFlowControllerType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 712377611; } } IFC4_32.IfcElectricTimeControlType = IfcElectricTimeControlType; class IfcEnergyConversionDevice extends IfcDistributionFlowElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.type = 1658829314; } } IFC4_32.IfcEnergyConversionDevice = IfcEnergyConversionDevice; class IfcEngine extends IfcEnergyConversionDevice { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 2814081492; } } IFC4_32.IfcEngine = IfcEngine; class IfcEvaporativeCooler extends IfcEnergyConversionDevice { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 3747195512; } } IFC4_32.IfcEvaporativeCooler = IfcEvaporativeCooler; class IfcEvaporator extends IfcEnergyConversionDevice { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 484807127; } } IFC4_32.IfcEvaporator = IfcEvaporator; class IfcExternalSpatialElement extends IfcExternalSpatialStructureElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.LongName = LongName; this.PredefinedType = PredefinedType; this.type = 1209101575; } } IFC4_32.IfcExternalSpatialElement = IfcExternalSpatialElement; class IfcFanType extends IfcFlowMovingDeviceType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 346874300; } } IFC4_32.IfcFanType = IfcFanType; class IfcFilterType extends IfcFlowTreatmentDeviceType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 1810631287; } } IFC4_32.IfcFilterType = IfcFilterType; class IfcFireSuppressionTerminalType extends IfcFlowTerminalType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 4222183408; } } IFC4_32.IfcFireSuppressionTerminalType = IfcFireSuppressionTerminalType; class IfcFlowController extends IfcDistributionFlowElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.type = 2058353004; } } IFC4_32.IfcFlowController = IfcFlowController; class IfcFlowFitting extends IfcDistributionFlowElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.type = 4278956645; } } IFC4_32.IfcFlowFitting = IfcFlowFitting; class IfcFlowInstrumentType extends IfcDistributionControlElementType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 4037862832; } } IFC4_32.IfcFlowInstrumentType = IfcFlowInstrumentType; class IfcFlowMeter extends IfcFlowController { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 2188021234; } } IFC4_32.IfcFlowMeter = IfcFlowMeter; class IfcFlowMovingDevice extends IfcDistributionFlowElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.type = 3132237377; } } IFC4_32.IfcFlowMovingDevice = IfcFlowMovingDevice; class IfcFlowSegment extends IfcDistributionFlowElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.type = 987401354; } } IFC4_32.IfcFlowSegment = IfcFlowSegment; class IfcFlowStorageDevice extends IfcDistributionFlowElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.type = 707683696; } } IFC4_32.IfcFlowStorageDevice = IfcFlowStorageDevice; class IfcFlowTerminal extends IfcDistributionFlowElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.type = 2223149337; } } IFC4_32.IfcFlowTerminal = IfcFlowTerminal; class IfcFlowTreatmentDevice extends IfcDistributionFlowElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.type = 3508470533; } } IFC4_32.IfcFlowTreatmentDevice = IfcFlowTreatmentDevice; class IfcFooting extends IfcBuiltElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 900683007; } } IFC4_32.IfcFooting = IfcFooting; class IfcGeotechnicalAssembly extends IfcGeotechnicalElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.type = 2713699986; } } IFC4_32.IfcGeotechnicalAssembly = IfcGeotechnicalAssembly; class IfcGrid extends IfcPositioningElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, UAxes, VAxes, WAxes, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.UAxes = UAxes; this.VAxes = VAxes; this.WAxes = WAxes; this.PredefinedType = PredefinedType; this.type = 3009204131; } } IFC4_32.IfcGrid = IfcGrid; class IfcHeatExchanger extends IfcEnergyConversionDevice { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 3319311131; } } IFC4_32.IfcHeatExchanger = IfcHeatExchanger; class IfcHumidifier extends IfcEnergyConversionDevice { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 2068733104; } } IFC4_32.IfcHumidifier = IfcHumidifier; class IfcInterceptor extends IfcFlowTreatmentDevice { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 4175244083; } } IFC4_32.IfcInterceptor = IfcInterceptor; class IfcJunctionBox extends IfcFlowFitting { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 2176052936; } } IFC4_32.IfcJunctionBox = IfcJunctionBox; class IfcKerb extends IfcBuiltElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, Mountable) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.Mountable = Mountable; this.type = 2696325953; } } IFC4_32.IfcKerb = IfcKerb; class IfcLamp extends IfcFlowTerminal { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 76236018; } } IFC4_32.IfcLamp = IfcLamp; class IfcLightFixture extends IfcFlowTerminal { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 629592764; } } IFC4_32.IfcLightFixture = IfcLightFixture; class IfcLinearPositioningElement extends IfcPositioningElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.type = 1154579445; } } IFC4_32.IfcLinearPositioningElement = IfcLinearPositioningElement; class IfcLiquidTerminal extends IfcFlowTerminal { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 1638804497; } } IFC4_32.IfcLiquidTerminal = IfcLiquidTerminal; class IfcMedicalDevice extends IfcFlowTerminal { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 1437502449; } } IFC4_32.IfcMedicalDevice = IfcMedicalDevice; class IfcMember extends IfcBuiltElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 1073191201; } } IFC4_32.IfcMember = IfcMember; class IfcMobileTelecommunicationsAppliance extends IfcFlowTerminal { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 2078563270; } } IFC4_32.IfcMobileTelecommunicationsAppliance = IfcMobileTelecommunicationsAppliance; class IfcMooringDevice extends IfcBuiltElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 234836483; } } IFC4_32.IfcMooringDevice = IfcMooringDevice; class IfcMotorConnection extends IfcEnergyConversionDevice { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 2474470126; } } IFC4_32.IfcMotorConnection = IfcMotorConnection; class IfcNavigationElement extends IfcBuiltElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 2182337498; } } IFC4_32.IfcNavigationElement = IfcNavigationElement; class IfcOuterBoundaryCurve extends IfcBoundaryCurve { constructor(expressID, Segments, SelfIntersect) { super(expressID, Segments, SelfIntersect); this.Segments = Segments; this.SelfIntersect = SelfIntersect; this.type = 144952367; } } IFC4_32.IfcOuterBoundaryCurve = IfcOuterBoundaryCurve; class IfcOutlet extends IfcFlowTerminal { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 3694346114; } } IFC4_32.IfcOutlet = IfcOutlet; class IfcPavement extends IfcBuiltElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 1383356374; } } IFC4_32.IfcPavement = IfcPavement; class IfcPile extends IfcDeepFoundation { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType, ConstructionType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.ConstructionType = ConstructionType; this.type = 1687234759; } } IFC4_32.IfcPile = IfcPile; class IfcPipeFitting extends IfcFlowFitting { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 310824031; } } IFC4_32.IfcPipeFitting = IfcPipeFitting; class IfcPipeSegment extends IfcFlowSegment { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 3612865200; } } IFC4_32.IfcPipeSegment = IfcPipeSegment; class IfcPlate extends IfcBuiltElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 3171933400; } } IFC4_32.IfcPlate = IfcPlate; class IfcProtectiveDevice extends IfcFlowController { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 738039164; } } IFC4_32.IfcProtectiveDevice = IfcProtectiveDevice; class IfcProtectiveDeviceTrippingUnitType extends IfcDistributionControlElementType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 655969474; } } IFC4_32.IfcProtectiveDeviceTrippingUnitType = IfcProtectiveDeviceTrippingUnitType; class IfcPump extends IfcFlowMovingDevice { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 90941305; } } IFC4_32.IfcPump = IfcPump; class IfcRail extends IfcBuiltElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 3290496277; } } IFC4_32.IfcRail = IfcRail; class IfcRailing extends IfcBuiltElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 2262370178; } } IFC4_32.IfcRailing = IfcRailing; class IfcRamp extends IfcBuiltElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 3024970846; } } IFC4_32.IfcRamp = IfcRamp; class IfcRampFlight extends IfcBuiltElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 3283111854; } } IFC4_32.IfcRampFlight = IfcRampFlight; class IfcRationalBSplineCurveWithKnots extends IfcBSplineCurveWithKnots { constructor(expressID, Degree, ControlPointsList, CurveForm, ClosedCurve, SelfIntersect, KnotMultiplicities, Knots, KnotSpec, WeightsData) { super(expressID, Degree, ControlPointsList, CurveForm, ClosedCurve, SelfIntersect, KnotMultiplicities, Knots, KnotSpec); this.Degree = Degree; this.ControlPointsList = ControlPointsList; this.CurveForm = CurveForm; this.ClosedCurve = ClosedCurve; this.SelfIntersect = SelfIntersect; this.KnotMultiplicities = KnotMultiplicities; this.Knots = Knots; this.KnotSpec = KnotSpec; this.WeightsData = WeightsData; this.type = 1232101972; } } IFC4_32.IfcRationalBSplineCurveWithKnots = IfcRationalBSplineCurveWithKnots; class IfcReinforcedSoil extends IfcEarthworksElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 3798194928; } } IFC4_32.IfcReinforcedSoil = IfcReinforcedSoil; class IfcReinforcingBar extends IfcReinforcingElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade, NominalDiameter, CrossSectionArea, BarLength, PredefinedType, BarSurface) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.SteelGrade = SteelGrade; this.NominalDiameter = NominalDiameter; this.CrossSectionArea = CrossSectionArea; this.BarLength = BarLength; this.PredefinedType = PredefinedType; this.BarSurface = BarSurface; this.type = 979691226; } } IFC4_32.IfcReinforcingBar = IfcReinforcingBar; class IfcReinforcingBarType extends IfcReinforcingElementType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType, NominalDiameter, CrossSectionArea, BarLength, BarSurface, BendingShapeCode, BendingParameters) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.NominalDiameter = NominalDiameter; this.CrossSectionArea = CrossSectionArea; this.BarLength = BarLength; this.BarSurface = BarSurface; this.BendingShapeCode = BendingShapeCode; this.BendingParameters = BendingParameters; this.type = 2572171363; } } IFC4_32.IfcReinforcingBarType = IfcReinforcingBarType; class IfcRoof extends IfcBuiltElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 2016517767; } } IFC4_32.IfcRoof = IfcRoof; class IfcSanitaryTerminal extends IfcFlowTerminal { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 3053780830; } } IFC4_32.IfcSanitaryTerminal = IfcSanitaryTerminal; class IfcSensorType extends IfcDistributionControlElementType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 1783015770; } } IFC4_32.IfcSensorType = IfcSensorType; class IfcShadingDevice extends IfcBuiltElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 1329646415; } } IFC4_32.IfcShadingDevice = IfcShadingDevice; class IfcSignal extends IfcFlowTerminal { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 991950508; } } IFC4_32.IfcSignal = IfcSignal; class IfcSlab extends IfcBuiltElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 1529196076; } } IFC4_32.IfcSlab = IfcSlab; class IfcSolarDevice extends IfcEnergyConversionDevice { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 3420628829; } } IFC4_32.IfcSolarDevice = IfcSolarDevice; class IfcSpaceHeater extends IfcFlowTerminal { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 1999602285; } } IFC4_32.IfcSpaceHeater = IfcSpaceHeater; class IfcStackTerminal extends IfcFlowTerminal { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 1404847402; } } IFC4_32.IfcStackTerminal = IfcStackTerminal; class IfcStair extends IfcBuiltElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 331165859; } } IFC4_32.IfcStair = IfcStair; class IfcStairFlight extends IfcBuiltElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, NumberOfRisers, NumberOfTreads, RiserHeight, TreadLength, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.NumberOfRisers = NumberOfRisers; this.NumberOfTreads = NumberOfTreads; this.RiserHeight = RiserHeight; this.TreadLength = TreadLength; this.PredefinedType = PredefinedType; this.type = 4252922144; } } IFC4_32.IfcStairFlight = IfcStairFlight; class IfcStructuralAnalysisModel extends IfcSystem { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, PredefinedType, OrientationOf2DPlane, LoadedBy, HasResults, SharedPlacement) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.PredefinedType = PredefinedType; this.OrientationOf2DPlane = OrientationOf2DPlane; this.LoadedBy = LoadedBy; this.HasResults = HasResults; this.SharedPlacement = SharedPlacement; this.type = 2515109513; } } IFC4_32.IfcStructuralAnalysisModel = IfcStructuralAnalysisModel; class IfcStructuralLoadCase extends IfcStructuralLoadGroup { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, PredefinedType, ActionType, ActionSource, Coefficient, Purpose, SelfWeightCoefficients) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, PredefinedType, ActionType, ActionSource, Coefficient, Purpose); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.PredefinedType = PredefinedType; this.ActionType = ActionType; this.ActionSource = ActionSource; this.Coefficient = Coefficient; this.Purpose = Purpose; this.SelfWeightCoefficients = SelfWeightCoefficients; this.type = 385403989; } } IFC4_32.IfcStructuralLoadCase = IfcStructuralLoadCase; class IfcStructuralPlanarAction extends IfcStructuralSurfaceAction { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, ProjectedOrTrue, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, ProjectedOrTrue, PredefinedType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.AppliedLoad = AppliedLoad; this.GlobalOrLocal = GlobalOrLocal; this.DestabilizingLoad = DestabilizingLoad; this.ProjectedOrTrue = ProjectedOrTrue; this.PredefinedType = PredefinedType; this.type = 1621171031; } } IFC4_32.IfcStructuralPlanarAction = IfcStructuralPlanarAction; class IfcSwitchingDevice extends IfcFlowController { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 1162798199; } } IFC4_32.IfcSwitchingDevice = IfcSwitchingDevice; class IfcTank extends IfcFlowStorageDevice { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 812556717; } } IFC4_32.IfcTank = IfcTank; class IfcTrackElement extends IfcBuiltElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 3425753595; } } IFC4_32.IfcTrackElement = IfcTrackElement; class IfcTransformer extends IfcEnergyConversionDevice { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 3825984169; } } IFC4_32.IfcTransformer = IfcTransformer; class IfcTransportElement extends IfcTransportationDevice { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 1620046519; } } IFC4_32.IfcTransportElement = IfcTransportElement; class IfcTubeBundle extends IfcEnergyConversionDevice { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 3026737570; } } IFC4_32.IfcTubeBundle = IfcTubeBundle; class IfcUnitaryControlElementType extends IfcDistributionControlElementType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 3179687236; } } IFC4_32.IfcUnitaryControlElementType = IfcUnitaryControlElementType; class IfcUnitaryEquipment extends IfcEnergyConversionDevice { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 4292641817; } } IFC4_32.IfcUnitaryEquipment = IfcUnitaryEquipment; class IfcValve extends IfcFlowController { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 4207607924; } } IFC4_32.IfcValve = IfcValve; class IfcWall extends IfcBuiltElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 2391406946; } } IFC4_32.IfcWall = IfcWall; class IfcWallStandardCase extends IfcWall { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 3512223829; } } IFC4_32.IfcWallStandardCase = IfcWallStandardCase; class IfcWasteTerminal extends IfcFlowTerminal { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 4237592921; } } IFC4_32.IfcWasteTerminal = IfcWasteTerminal; class IfcWindow extends IfcBuiltElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, OverallHeight, OverallWidth, PredefinedType, PartitioningType, UserDefinedPartitioningType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.OverallHeight = OverallHeight; this.OverallWidth = OverallWidth; this.PredefinedType = PredefinedType; this.PartitioningType = PartitioningType; this.UserDefinedPartitioningType = UserDefinedPartitioningType; this.type = 3304561284; } } IFC4_32.IfcWindow = IfcWindow; class IfcActuatorType extends IfcDistributionControlElementType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 2874132201; } } IFC4_32.IfcActuatorType = IfcActuatorType; class IfcAirTerminal extends IfcFlowTerminal { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 1634111441; } } IFC4_32.IfcAirTerminal = IfcAirTerminal; class IfcAirTerminalBox extends IfcFlowController { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 177149247; } } IFC4_32.IfcAirTerminalBox = IfcAirTerminalBox; class IfcAirToAirHeatRecovery extends IfcEnergyConversionDevice { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 2056796094; } } IFC4_32.IfcAirToAirHeatRecovery = IfcAirToAirHeatRecovery; class IfcAlarmType extends IfcDistributionControlElementType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 3001207471; } } IFC4_32.IfcAlarmType = IfcAlarmType; class IfcAlignment extends IfcLinearPositioningElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.PredefinedType = PredefinedType; this.type = 325726236; } } IFC4_32.IfcAlignment = IfcAlignment; class IfcAudioVisualAppliance extends IfcFlowTerminal { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 277319702; } } IFC4_32.IfcAudioVisualAppliance = IfcAudioVisualAppliance; class IfcBeam extends IfcBuiltElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 753842376; } } IFC4_32.IfcBeam = IfcBeam; class IfcBearing extends IfcBuiltElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 4196446775; } } IFC4_32.IfcBearing = IfcBearing; class IfcBoiler extends IfcEnergyConversionDevice { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 32344328; } } IFC4_32.IfcBoiler = IfcBoiler; class IfcBorehole extends IfcGeotechnicalAssembly { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.type = 3314249567; } } IFC4_32.IfcBorehole = IfcBorehole; class IfcBuildingElementProxy extends IfcBuiltElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 1095909175; } } IFC4_32.IfcBuildingElementProxy = IfcBuildingElementProxy; class IfcBurner extends IfcEnergyConversionDevice { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 2938176219; } } IFC4_32.IfcBurner = IfcBurner; class IfcCableCarrierFitting extends IfcFlowFitting { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 635142910; } } IFC4_32.IfcCableCarrierFitting = IfcCableCarrierFitting; class IfcCableCarrierSegment extends IfcFlowSegment { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 3758799889; } } IFC4_32.IfcCableCarrierSegment = IfcCableCarrierSegment; class IfcCableFitting extends IfcFlowFitting { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 1051757585; } } IFC4_32.IfcCableFitting = IfcCableFitting; class IfcCableSegment extends IfcFlowSegment { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 4217484030; } } IFC4_32.IfcCableSegment = IfcCableSegment; class IfcCaissonFoundation extends IfcDeepFoundation { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 3999819293; } } IFC4_32.IfcCaissonFoundation = IfcCaissonFoundation; class IfcChiller extends IfcEnergyConversionDevice { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 3902619387; } } IFC4_32.IfcChiller = IfcChiller; class IfcCoil extends IfcEnergyConversionDevice { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 639361253; } } IFC4_32.IfcCoil = IfcCoil; class IfcCommunicationsAppliance extends IfcFlowTerminal { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 3221913625; } } IFC4_32.IfcCommunicationsAppliance = IfcCommunicationsAppliance; class IfcCompressor extends IfcFlowMovingDevice { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 3571504051; } } IFC4_32.IfcCompressor = IfcCompressor; class IfcCondenser extends IfcEnergyConversionDevice { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 2272882330; } } IFC4_32.IfcCondenser = IfcCondenser; class IfcControllerType extends IfcDistributionControlElementType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 578613899; } } IFC4_32.IfcControllerType = IfcControllerType; class IfcConveyorSegment extends IfcFlowSegment { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 3460952963; } } IFC4_32.IfcConveyorSegment = IfcConveyorSegment; class IfcCooledBeam extends IfcEnergyConversionDevice { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 4136498852; } } IFC4_32.IfcCooledBeam = IfcCooledBeam; class IfcCoolingTower extends IfcEnergyConversionDevice { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 3640358203; } } IFC4_32.IfcCoolingTower = IfcCoolingTower; class IfcDamper extends IfcFlowController { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 4074379575; } } IFC4_32.IfcDamper = IfcDamper; class IfcDistributionBoard extends IfcFlowController { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 3693000487; } } IFC4_32.IfcDistributionBoard = IfcDistributionBoard; class IfcDistributionChamberElement extends IfcDistributionFlowElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 1052013943; } } IFC4_32.IfcDistributionChamberElement = IfcDistributionChamberElement; class IfcDistributionCircuit extends IfcDistributionSystem { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, LongName, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, LongName, PredefinedType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.LongName = LongName; this.PredefinedType = PredefinedType; this.type = 562808652; } } IFC4_32.IfcDistributionCircuit = IfcDistributionCircuit; class IfcDistributionControlElement extends IfcDistributionElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.type = 1062813311; } } IFC4_32.IfcDistributionControlElement = IfcDistributionControlElement; class IfcDuctFitting extends IfcFlowFitting { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 342316401; } } IFC4_32.IfcDuctFitting = IfcDuctFitting; class IfcDuctSegment extends IfcFlowSegment { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 3518393246; } } IFC4_32.IfcDuctSegment = IfcDuctSegment; class IfcDuctSilencer extends IfcFlowTreatmentDevice { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 1360408905; } } IFC4_32.IfcDuctSilencer = IfcDuctSilencer; class IfcElectricAppliance extends IfcFlowTerminal { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 1904799276; } } IFC4_32.IfcElectricAppliance = IfcElectricAppliance; class IfcElectricDistributionBoard extends IfcFlowController { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 862014818; } } IFC4_32.IfcElectricDistributionBoard = IfcElectricDistributionBoard; class IfcElectricFlowStorageDevice extends IfcFlowStorageDevice { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 3310460725; } } IFC4_32.IfcElectricFlowStorageDevice = IfcElectricFlowStorageDevice; class IfcElectricFlowTreatmentDevice extends IfcFlowTreatmentDevice { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 24726584; } } IFC4_32.IfcElectricFlowTreatmentDevice = IfcElectricFlowTreatmentDevice; class IfcElectricGenerator extends IfcEnergyConversionDevice { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 264262732; } } IFC4_32.IfcElectricGenerator = IfcElectricGenerator; class IfcElectricMotor extends IfcEnergyConversionDevice { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 402227799; } } IFC4_32.IfcElectricMotor = IfcElectricMotor; class IfcElectricTimeControl extends IfcFlowController { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 1003880860; } } IFC4_32.IfcElectricTimeControl = IfcElectricTimeControl; class IfcFan extends IfcFlowMovingDevice { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 3415622556; } } IFC4_32.IfcFan = IfcFan; class IfcFilter extends IfcFlowTreatmentDevice { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 819412036; } } IFC4_32.IfcFilter = IfcFilter; class IfcFireSuppressionTerminal extends IfcFlowTerminal { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 1426591983; } } IFC4_32.IfcFireSuppressionTerminal = IfcFireSuppressionTerminal; class IfcFlowInstrument extends IfcDistributionControlElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 182646315; } } IFC4_32.IfcFlowInstrument = IfcFlowInstrument; class IfcGeomodel extends IfcGeotechnicalAssembly { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.type = 2680139844; } } IFC4_32.IfcGeomodel = IfcGeomodel; class IfcGeoslice extends IfcGeotechnicalAssembly { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.type = 1971632696; } } IFC4_32.IfcGeoslice = IfcGeoslice; class IfcProtectiveDeviceTrippingUnit extends IfcDistributionControlElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 2295281155; } } IFC4_32.IfcProtectiveDeviceTrippingUnit = IfcProtectiveDeviceTrippingUnit; class IfcSensor extends IfcDistributionControlElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 4086658281; } } IFC4_32.IfcSensor = IfcSensor; class IfcUnitaryControlElement extends IfcDistributionControlElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 630975310; } } IFC4_32.IfcUnitaryControlElement = IfcUnitaryControlElement; class IfcActuator extends IfcDistributionControlElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 4288193352; } } IFC4_32.IfcActuator = IfcActuator; class IfcAlarm extends IfcDistributionControlElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 3087945054; } } IFC4_32.IfcAlarm = IfcAlarm; class IfcController extends IfcDistributionControlElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 25142252; } } IFC4_32.IfcController = IfcController; })(IFC4_3 || (IFC4_3 = {})); SchemaNames[3] = "IFC4"; FromRawLineData[3] = { 3630933823: (id, v) => new IFC4.IfcActorRole(id, v[0], !v[1] ? null : new IFC4.IfcLabel(v[1].value), !v[2] ? null : new IFC4.IfcText(v[2].value)), 618182010: (id, v) => new IFC4.IfcAddress(id, v[0], !v[1] ? null : new IFC4.IfcText(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value)), 639542469: (id, v) => new IFC4.IfcApplication(id, new Handle(v[0].value), new IFC4.IfcLabel(v[1].value), new IFC4.IfcLabel(v[2].value), new IFC4.IfcIdentifier(v[3].value)), 411424972: (id, v) => new IFC4.IfcAppliedValue(id, !v[0] ? null : new IFC4.IfcLabel(v[0].value), !v[1] ? null : new IFC4.IfcText(v[1].value), !v[2] ? null : new Handle(v[2].value), !v[3] ? null : new Handle(v[3].value), !v[4] ? null : new IFC4.IfcDate(v[4].value), !v[5] ? null : new IFC4.IfcDate(v[5].value), !v[6] ? null : new IFC4.IfcLabel(v[6].value), !v[7] ? null : new IFC4.IfcLabel(v[7].value), v[8], !v[9] ? null : v[9].map((p) => new Handle(p.value))), 130549933: (id, v) => new IFC4.IfcApproval(id, !v[0] ? null : new IFC4.IfcIdentifier(v[0].value), !v[1] ? null : new IFC4.IfcLabel(v[1].value), !v[2] ? null : new IFC4.IfcText(v[2].value), !v[3] ? null : new IFC4.IfcDateTime(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new IFC4.IfcLabel(v[5].value), !v[6] ? null : new IFC4.IfcText(v[6].value), !v[7] ? null : new Handle(v[7].value), !v[8] ? null : new Handle(v[8].value)), 4037036970: (id, v) => new IFC4.IfcBoundaryCondition(id, !v[0] ? null : new IFC4.IfcLabel(v[0].value)), 1560379544: (id, v) => new IFC4.IfcBoundaryEdgeCondition(id, !v[0] ? null : new IFC4.IfcLabel(v[0].value), !v[1] ? null : TypeInitialiser(3, v[1]), !v[2] ? null : TypeInitialiser(3, v[2]), !v[3] ? null : TypeInitialiser(3, v[3]), !v[4] ? null : TypeInitialiser(3, v[4]), !v[5] ? null : TypeInitialiser(3, v[5]), !v[6] ? null : TypeInitialiser(3, v[6])), 3367102660: (id, v) => new IFC4.IfcBoundaryFaceCondition(id, !v[0] ? null : new IFC4.IfcLabel(v[0].value), !v[1] ? null : TypeInitialiser(3, v[1]), !v[2] ? null : TypeInitialiser(3, v[2]), !v[3] ? null : TypeInitialiser(3, v[3])), 1387855156: (id, v) => new IFC4.IfcBoundaryNodeCondition(id, !v[0] ? null : new IFC4.IfcLabel(v[0].value), !v[1] ? null : TypeInitialiser(3, v[1]), !v[2] ? null : TypeInitialiser(3, v[2]), !v[3] ? null : TypeInitialiser(3, v[3]), !v[4] ? null : TypeInitialiser(3, v[4]), !v[5] ? null : TypeInitialiser(3, v[5]), !v[6] ? null : TypeInitialiser(3, v[6])), 2069777674: (id, v) => new IFC4.IfcBoundaryNodeConditionWarping(id, !v[0] ? null : new IFC4.IfcLabel(v[0].value), !v[1] ? null : TypeInitialiser(3, v[1]), !v[2] ? null : TypeInitialiser(3, v[2]), !v[3] ? null : TypeInitialiser(3, v[3]), !v[4] ? null : TypeInitialiser(3, v[4]), !v[5] ? null : TypeInitialiser(3, v[5]), !v[6] ? null : TypeInitialiser(3, v[6]), !v[7] ? null : TypeInitialiser(3, v[7])), 2859738748: (id, _) => new IFC4.IfcConnectionGeometry(id), 2614616156: (id, v) => new IFC4.IfcConnectionPointGeometry(id, new Handle(v[0].value), !v[1] ? null : new Handle(v[1].value)), 2732653382: (id, v) => new IFC4.IfcConnectionSurfaceGeometry(id, new Handle(v[0].value), !v[1] ? null : new Handle(v[1].value)), 775493141: (id, v) => new IFC4.IfcConnectionVolumeGeometry(id, new Handle(v[0].value), !v[1] ? null : new Handle(v[1].value)), 1959218052: (id, v) => new IFC4.IfcConstraint(id, new IFC4.IfcLabel(v[0].value), !v[1] ? null : new IFC4.IfcText(v[1].value), v[2], !v[3] ? null : new IFC4.IfcLabel(v[3].value), !v[4] ? null : new Handle(v[4].value), !v[5] ? null : new IFC4.IfcDateTime(v[5].value), !v[6] ? null : new IFC4.IfcLabel(v[6].value)), 1785450214: (id, v) => new IFC4.IfcCoordinateOperation(id, new Handle(v[0].value), new Handle(v[1].value)), 1466758467: (id, v) => new IFC4.IfcCoordinateReferenceSystem(id, new IFC4.IfcLabel(v[0].value), !v[1] ? null : new IFC4.IfcText(v[1].value), !v[2] ? null : new IFC4.IfcIdentifier(v[2].value), !v[3] ? null : new IFC4.IfcIdentifier(v[3].value)), 602808272: (id, v) => new IFC4.IfcCostValue(id, !v[0] ? null : new IFC4.IfcLabel(v[0].value), !v[1] ? null : new IFC4.IfcText(v[1].value), !v[2] ? null : new Handle(v[2].value), !v[3] ? null : new Handle(v[3].value), !v[4] ? null : new IFC4.IfcDate(v[4].value), !v[5] ? null : new IFC4.IfcDate(v[5].value), !v[6] ? null : new IFC4.IfcLabel(v[6].value), !v[7] ? null : new IFC4.IfcLabel(v[7].value), v[8], !v[9] ? null : v[9].map((p) => new Handle(p.value))), 1765591967: (id, v) => new IFC4.IfcDerivedUnit(id, v[0].map((p) => new Handle(p.value)), v[1], !v[2] ? null : new IFC4.IfcLabel(v[2].value)), 1045800335: (id, v) => new IFC4.IfcDerivedUnitElement(id, new Handle(v[0].value), v[1].value), 2949456006: (id, v) => new IFC4.IfcDimensionalExponents(id, v[0].value, v[1].value, v[2].value, v[3].value, v[4].value, v[5].value, v[6].value), 4294318154: (id, _) => new IFC4.IfcExternalInformation(id), 3200245327: (id, v) => new IFC4.IfcExternalReference(id, !v[0] ? null : new IFC4.IfcURIReference(v[0].value), !v[1] ? null : new IFC4.IfcIdentifier(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value)), 2242383968: (id, v) => new IFC4.IfcExternallyDefinedHatchStyle(id, !v[0] ? null : new IFC4.IfcURIReference(v[0].value), !v[1] ? null : new IFC4.IfcIdentifier(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value)), 1040185647: (id, v) => new IFC4.IfcExternallyDefinedSurfaceStyle(id, !v[0] ? null : new IFC4.IfcURIReference(v[0].value), !v[1] ? null : new IFC4.IfcIdentifier(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value)), 3548104201: (id, v) => new IFC4.IfcExternallyDefinedTextFont(id, !v[0] ? null : new IFC4.IfcURIReference(v[0].value), !v[1] ? null : new IFC4.IfcIdentifier(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value)), 852622518: (id, v) => new IFC4.IfcGridAxis(id, !v[0] ? null : new IFC4.IfcLabel(v[0].value), new Handle(v[1].value), new IFC4.IfcBoolean(v[2].value)), 3020489413: (id, v) => new IFC4.IfcIrregularTimeSeriesValue(id, new IFC4.IfcDateTime(v[0].value), v[1].map((p) => TypeInitialiser(3, p))), 2655187982: (id, v) => new IFC4.IfcLibraryInformation(id, new IFC4.IfcLabel(v[0].value), !v[1] ? null : new IFC4.IfcLabel(v[1].value), !v[2] ? null : new Handle(v[2].value), !v[3] ? null : new IFC4.IfcDateTime(v[3].value), !v[4] ? null : new IFC4.IfcURIReference(v[4].value), !v[5] ? null : new IFC4.IfcText(v[5].value)), 3452421091: (id, v) => new IFC4.IfcLibraryReference(id, !v[0] ? null : new IFC4.IfcURIReference(v[0].value), !v[1] ? null : new IFC4.IfcIdentifier(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLanguageId(v[4].value), !v[5] ? null : new Handle(v[5].value)), 4162380809: (id, v) => new IFC4.IfcLightDistributionData(id, new IFC4.IfcPlaneAngleMeasure(v[0].value), v[1].map((p) => new IFC4.IfcPlaneAngleMeasure(p.value)), v[2].map((p) => new IFC4.IfcLuminousIntensityDistributionMeasure(p.value))), 1566485204: (id, v) => new IFC4.IfcLightIntensityDistribution(id, v[0], v[1].map((p) => new Handle(p.value))), 3057273783: (id, v) => new IFC4.IfcMapConversion(id, new Handle(v[0].value), new Handle(v[1].value), new IFC4.IfcLengthMeasure(v[2].value), new IFC4.IfcLengthMeasure(v[3].value), new IFC4.IfcLengthMeasure(v[4].value), !v[5] ? null : new IFC4.IfcReal(v[5].value), !v[6] ? null : new IFC4.IfcReal(v[6].value), !v[7] ? null : new IFC4.IfcReal(v[7].value)), 1847130766: (id, v) => new IFC4.IfcMaterialClassificationRelationship(id, v[0].map((p) => new Handle(p.value)), new Handle(v[1].value)), 760658860: (id, _) => new IFC4.IfcMaterialDefinition(id), 248100487: (id, v) => new IFC4.IfcMaterialLayer(id, !v[0] ? null : new Handle(v[0].value), new IFC4.IfcNonNegativeLengthMeasure(v[1].value), !v[2] ? null : new IFC4.IfcLogical(v[2].value), !v[3] ? null : new IFC4.IfcLabel(v[3].value), !v[4] ? null : new IFC4.IfcText(v[4].value), !v[5] ? null : new IFC4.IfcLabel(v[5].value), !v[6] ? null : new IFC4.IfcInteger(v[6].value)), 3303938423: (id, v) => new IFC4.IfcMaterialLayerSet(id, v[0].map((p) => new Handle(p.value)), !v[1] ? null : new IFC4.IfcLabel(v[1].value), !v[2] ? null : new IFC4.IfcText(v[2].value)), 1847252529: (id, v) => new IFC4.IfcMaterialLayerWithOffsets(id, !v[0] ? null : new Handle(v[0].value), new IFC4.IfcNonNegativeLengthMeasure(v[1].value), !v[2] ? null : new IFC4.IfcLogical(v[2].value), !v[3] ? null : new IFC4.IfcLabel(v[3].value), !v[4] ? null : new IFC4.IfcText(v[4].value), !v[5] ? null : new IFC4.IfcLabel(v[5].value), !v[6] ? null : new IFC4.IfcInteger(v[6].value), v[7], new IFC4.IfcLengthMeasure(v[8].value)), 2199411900: (id, v) => new IFC4.IfcMaterialList(id, v[0].map((p) => new Handle(p.value))), 2235152071: (id, v) => new IFC4.IfcMaterialProfile(id, !v[0] ? null : new IFC4.IfcLabel(v[0].value), !v[1] ? null : new IFC4.IfcText(v[1].value), !v[2] ? null : new Handle(v[2].value), new Handle(v[3].value), !v[4] ? null : new IFC4.IfcInteger(v[4].value), !v[5] ? null : new IFC4.IfcLabel(v[5].value)), 164193824: (id, v) => new IFC4.IfcMaterialProfileSet(id, !v[0] ? null : new IFC4.IfcLabel(v[0].value), !v[1] ? null : new IFC4.IfcText(v[1].value), v[2].map((p) => new Handle(p.value)), !v[3] ? null : new Handle(v[3].value)), 552965576: (id, v) => new IFC4.IfcMaterialProfileWithOffsets(id, !v[0] ? null : new IFC4.IfcLabel(v[0].value), !v[1] ? null : new IFC4.IfcText(v[1].value), !v[2] ? null : new Handle(v[2].value), new Handle(v[3].value), !v[4] ? null : new IFC4.IfcInteger(v[4].value), !v[5] ? null : new IFC4.IfcLabel(v[5].value), new IFC4.IfcLengthMeasure(v[6].value)), 1507914824: (id, _) => new IFC4.IfcMaterialUsageDefinition(id), 2597039031: (id, v) => new IFC4.IfcMeasureWithUnit(id, TypeInitialiser(3, v[0]), new Handle(v[1].value)), 3368373690: (id, v) => new IFC4.IfcMetric(id, new IFC4.IfcLabel(v[0].value), !v[1] ? null : new IFC4.IfcText(v[1].value), v[2], !v[3] ? null : new IFC4.IfcLabel(v[3].value), !v[4] ? null : new Handle(v[4].value), !v[5] ? null : new IFC4.IfcDateTime(v[5].value), !v[6] ? null : new IFC4.IfcLabel(v[6].value), v[7], !v[8] ? null : new IFC4.IfcLabel(v[8].value), !v[9] ? null : new Handle(v[9].value), !v[10] ? null : new Handle(v[10].value)), 2706619895: (id, v) => new IFC4.IfcMonetaryUnit(id, new IFC4.IfcLabel(v[0].value)), 1918398963: (id, v) => new IFC4.IfcNamedUnit(id, new Handle(v[0].value), v[1]), 3701648758: (id, _) => new IFC4.IfcObjectPlacement(id), 2251480897: (id, v) => new IFC4.IfcObjective(id, new IFC4.IfcLabel(v[0].value), !v[1] ? null : new IFC4.IfcText(v[1].value), v[2], !v[3] ? null : new IFC4.IfcLabel(v[3].value), !v[4] ? null : new Handle(v[4].value), !v[5] ? null : new IFC4.IfcDateTime(v[5].value), !v[6] ? null : new IFC4.IfcLabel(v[6].value), !v[7] ? null : v[7].map((p) => new Handle(p.value)), v[8], v[9], !v[10] ? null : new IFC4.IfcLabel(v[10].value)), 4251960020: (id, v) => new IFC4.IfcOrganization(id, !v[0] ? null : new IFC4.IfcIdentifier(v[0].value), new IFC4.IfcLabel(v[1].value), !v[2] ? null : new IFC4.IfcText(v[2].value), !v[3] ? null : v[3].map((p) => new Handle(p.value)), !v[4] ? null : v[4].map((p) => new Handle(p.value))), 1207048766: (id, v) => new IFC4.IfcOwnerHistory(id, new Handle(v[0].value), new Handle(v[1].value), v[2], v[3], !v[4] ? null : new IFC4.IfcTimeStamp(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), new IFC4.IfcTimeStamp(v[7].value)), 2077209135: (id, v) => new IFC4.IfcPerson(id, !v[0] ? null : new IFC4.IfcIdentifier(v[0].value), !v[1] ? null : new IFC4.IfcLabel(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : v[3].map((p) => new IFC4.IfcLabel(p.value)), !v[4] ? null : v[4].map((p) => new IFC4.IfcLabel(p.value)), !v[5] ? null : v[5].map((p) => new IFC4.IfcLabel(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : v[7].map((p) => new Handle(p.value))), 101040310: (id, v) => new IFC4.IfcPersonAndOrganization(id, new Handle(v[0].value), new Handle(v[1].value), !v[2] ? null : v[2].map((p) => new Handle(p.value))), 2483315170: (id, v) => new IFC4.IfcPhysicalQuantity(id, new IFC4.IfcLabel(v[0].value), !v[1] ? null : new IFC4.IfcText(v[1].value)), 2226359599: (id, v) => new IFC4.IfcPhysicalSimpleQuantity(id, new IFC4.IfcLabel(v[0].value), !v[1] ? null : new IFC4.IfcText(v[1].value), !v[2] ? null : new Handle(v[2].value)), 3355820592: (id, v) => new IFC4.IfcPostalAddress(id, v[0], !v[1] ? null : new IFC4.IfcText(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcLabel(v[3].value), !v[4] ? null : v[4].map((p) => new IFC4.IfcLabel(p.value)), !v[5] ? null : new IFC4.IfcLabel(v[5].value), !v[6] ? null : new IFC4.IfcLabel(v[6].value), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), !v[9] ? null : new IFC4.IfcLabel(v[9].value)), 677532197: (id, _) => new IFC4.IfcPresentationItem(id), 2022622350: (id, v) => new IFC4.IfcPresentationLayerAssignment(id, new IFC4.IfcLabel(v[0].value), !v[1] ? null : new IFC4.IfcText(v[1].value), v[2].map((p) => new Handle(p.value)), !v[3] ? null : new IFC4.IfcIdentifier(v[3].value)), 1304840413: (id, v) => new IFC4.IfcPresentationLayerWithStyle(id, new IFC4.IfcLabel(v[0].value), !v[1] ? null : new IFC4.IfcText(v[1].value), v[2].map((p) => new Handle(p.value)), !v[3] ? null : new IFC4.IfcIdentifier(v[3].value), new IFC4.IfcLogical(v[4].value), new IFC4.IfcLogical(v[5].value), new IFC4.IfcLogical(v[6].value), v[7].map((p) => new Handle(p.value))), 3119450353: (id, v) => new IFC4.IfcPresentationStyle(id, !v[0] ? null : new IFC4.IfcLabel(v[0].value)), 2417041796: (id, v) => new IFC4.IfcPresentationStyleAssignment(id, v[0].map((p) => new Handle(p.value))), 2095639259: (id, v) => new IFC4.IfcProductRepresentation(id, !v[0] ? null : new IFC4.IfcLabel(v[0].value), !v[1] ? null : new IFC4.IfcText(v[1].value), v[2].map((p) => new Handle(p.value))), 3958567839: (id, v) => new IFC4.IfcProfileDef(id, v[0], !v[1] ? null : new IFC4.IfcLabel(v[1].value)), 3843373140: (id, v) => new IFC4.IfcProjectedCRS(id, new IFC4.IfcLabel(v[0].value), !v[1] ? null : new IFC4.IfcText(v[1].value), !v[2] ? null : new IFC4.IfcIdentifier(v[2].value), !v[3] ? null : new IFC4.IfcIdentifier(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : new IFC4.IfcIdentifier(v[5].value), !v[6] ? null : new Handle(v[6].value)), 986844984: (id, _) => new IFC4.IfcPropertyAbstraction(id), 3710013099: (id, v) => new IFC4.IfcPropertyEnumeration(id, new IFC4.IfcLabel(v[0].value), v[1].map((p) => TypeInitialiser(3, p)), !v[2] ? null : new Handle(v[2].value)), 2044713172: (id, v) => new IFC4.IfcQuantityArea(id, new IFC4.IfcLabel(v[0].value), !v[1] ? null : new IFC4.IfcText(v[1].value), !v[2] ? null : new Handle(v[2].value), new IFC4.IfcAreaMeasure(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value)), 2093928680: (id, v) => new IFC4.IfcQuantityCount(id, new IFC4.IfcLabel(v[0].value), !v[1] ? null : new IFC4.IfcText(v[1].value), !v[2] ? null : new Handle(v[2].value), new IFC4.IfcCountMeasure(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value)), 931644368: (id, v) => new IFC4.IfcQuantityLength(id, new IFC4.IfcLabel(v[0].value), !v[1] ? null : new IFC4.IfcText(v[1].value), !v[2] ? null : new Handle(v[2].value), new IFC4.IfcLengthMeasure(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value)), 3252649465: (id, v) => new IFC4.IfcQuantityTime(id, new IFC4.IfcLabel(v[0].value), !v[1] ? null : new IFC4.IfcText(v[1].value), !v[2] ? null : new Handle(v[2].value), new IFC4.IfcTimeMeasure(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value)), 2405470396: (id, v) => new IFC4.IfcQuantityVolume(id, new IFC4.IfcLabel(v[0].value), !v[1] ? null : new IFC4.IfcText(v[1].value), !v[2] ? null : new Handle(v[2].value), new IFC4.IfcVolumeMeasure(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value)), 825690147: (id, v) => new IFC4.IfcQuantityWeight(id, new IFC4.IfcLabel(v[0].value), !v[1] ? null : new IFC4.IfcText(v[1].value), !v[2] ? null : new Handle(v[2].value), new IFC4.IfcMassMeasure(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value)), 3915482550: (id, v) => new IFC4.IfcRecurrencePattern(id, v[0], !v[1] ? null : v[1].map((p) => new IFC4.IfcDayInMonthNumber(p.value)), !v[2] ? null : v[2].map((p) => new IFC4.IfcDayInWeekNumber(p.value)), !v[3] ? null : v[3].map((p) => new IFC4.IfcMonthInYearNumber(p.value)), !v[4] ? null : new IFC4.IfcInteger(v[4].value), !v[5] ? null : new IFC4.IfcInteger(v[5].value), !v[6] ? null : new IFC4.IfcInteger(v[6].value), !v[7] ? null : v[7].map((p) => new Handle(p.value))), 2433181523: (id, v) => new IFC4.IfcReference(id, !v[0] ? null : new IFC4.IfcIdentifier(v[0].value), !v[1] ? null : new IFC4.IfcIdentifier(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : v[3].map((p) => new IFC4.IfcInteger(p.value)), !v[4] ? null : new Handle(v[4].value)), 1076942058: (id, v) => new IFC4.IfcRepresentation(id, new Handle(v[0].value), !v[1] ? null : new IFC4.IfcLabel(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), v[3].map((p) => new Handle(p.value))), 3377609919: (id, v) => new IFC4.IfcRepresentationContext(id, !v[0] ? null : new IFC4.IfcLabel(v[0].value), !v[1] ? null : new IFC4.IfcLabel(v[1].value)), 3008791417: (id, _) => new IFC4.IfcRepresentationItem(id), 1660063152: (id, v) => new IFC4.IfcRepresentationMap(id, new Handle(v[0].value), new Handle(v[1].value)), 2439245199: (id, v) => new IFC4.IfcResourceLevelRelationship(id, !v[0] ? null : new IFC4.IfcLabel(v[0].value), !v[1] ? null : new IFC4.IfcText(v[1].value)), 2341007311: (id, v) => new IFC4.IfcRoot(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value)), 448429030: (id, v) => new IFC4.IfcSIUnit(id, v[0], v[1], v[2]), 1054537805: (id, v) => new IFC4.IfcSchedulingTime(id, !v[0] ? null : new IFC4.IfcLabel(v[0].value), v[1], !v[2] ? null : new IFC4.IfcLabel(v[2].value)), 867548509: (id, v) => new IFC4.IfcShapeAspect(id, v[0].map((p) => new Handle(p.value)), !v[1] ? null : new IFC4.IfcLabel(v[1].value), !v[2] ? null : new IFC4.IfcText(v[2].value), new IFC4.IfcLogical(v[3].value), !v[4] ? null : new Handle(v[4].value)), 3982875396: (id, v) => new IFC4.IfcShapeModel(id, new Handle(v[0].value), !v[1] ? null : new IFC4.IfcLabel(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), v[3].map((p) => new Handle(p.value))), 4240577450: (id, v) => new IFC4.IfcShapeRepresentation(id, new Handle(v[0].value), !v[1] ? null : new IFC4.IfcLabel(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), v[3].map((p) => new Handle(p.value))), 2273995522: (id, v) => new IFC4.IfcStructuralConnectionCondition(id, !v[0] ? null : new IFC4.IfcLabel(v[0].value)), 2162789131: (id, v) => new IFC4.IfcStructuralLoad(id, !v[0] ? null : new IFC4.IfcLabel(v[0].value)), 3478079324: (id, v) => new IFC4.IfcStructuralLoadConfiguration(id, !v[0] ? null : new IFC4.IfcLabel(v[0].value), v[1].map((p) => new Handle(p.value)), !v[2] ? null : v[2].map((p) => new IFC4.IfcLengthMeasure(p.value))), 609421318: (id, v) => new IFC4.IfcStructuralLoadOrResult(id, !v[0] ? null : new IFC4.IfcLabel(v[0].value)), 2525727697: (id, v) => new IFC4.IfcStructuralLoadStatic(id, !v[0] ? null : new IFC4.IfcLabel(v[0].value)), 3408363356: (id, v) => new IFC4.IfcStructuralLoadTemperature(id, !v[0] ? null : new IFC4.IfcLabel(v[0].value), !v[1] ? null : new IFC4.IfcThermodynamicTemperatureMeasure(v[1].value), !v[2] ? null : new IFC4.IfcThermodynamicTemperatureMeasure(v[2].value), !v[3] ? null : new IFC4.IfcThermodynamicTemperatureMeasure(v[3].value)), 2830218821: (id, v) => new IFC4.IfcStyleModel(id, new Handle(v[0].value), !v[1] ? null : new IFC4.IfcLabel(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), v[3].map((p) => new Handle(p.value))), 3958052878: (id, v) => new IFC4.IfcStyledItem(id, !v[0] ? null : new Handle(v[0].value), v[1].map((p) => new Handle(p.value)), !v[2] ? null : new IFC4.IfcLabel(v[2].value)), 3049322572: (id, v) => new IFC4.IfcStyledRepresentation(id, new Handle(v[0].value), !v[1] ? null : new IFC4.IfcLabel(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), v[3].map((p) => new Handle(p.value))), 2934153892: (id, v) => new IFC4.IfcSurfaceReinforcementArea(id, !v[0] ? null : new IFC4.IfcLabel(v[0].value), !v[1] ? null : v[1].map((p) => new IFC4.IfcLengthMeasure(p.value)), !v[2] ? null : v[2].map((p) => new IFC4.IfcLengthMeasure(p.value)), !v[3] ? null : new IFC4.IfcRatioMeasure(v[3].value)), 1300840506: (id, v) => new IFC4.IfcSurfaceStyle(id, !v[0] ? null : new IFC4.IfcLabel(v[0].value), v[1], v[2].map((p) => new Handle(p.value))), 3303107099: (id, v) => new IFC4.IfcSurfaceStyleLighting(id, new Handle(v[0].value), new Handle(v[1].value), new Handle(v[2].value), new Handle(v[3].value)), 1607154358: (id, v) => new IFC4.IfcSurfaceStyleRefraction(id, !v[0] ? null : new IFC4.IfcReal(v[0].value), !v[1] ? null : new IFC4.IfcReal(v[1].value)), 846575682: (id, v) => new IFC4.IfcSurfaceStyleShading(id, new Handle(v[0].value), !v[1] ? null : new IFC4.IfcNormalisedRatioMeasure(v[1].value)), 1351298697: (id, v) => new IFC4.IfcSurfaceStyleWithTextures(id, v[0].map((p) => new Handle(p.value))), 626085974: (id, v) => new IFC4.IfcSurfaceTexture(id, new IFC4.IfcBoolean(v[0].value), new IFC4.IfcBoolean(v[1].value), !v[2] ? null : new IFC4.IfcIdentifier(v[2].value), !v[3] ? null : new Handle(v[3].value), !v[4] ? null : v[4].map((p) => new IFC4.IfcIdentifier(p.value))), 985171141: (id, v) => new IFC4.IfcTable(id, !v[0] ? null : new IFC4.IfcLabel(v[0].value), !v[1] ? null : v[1].map((p) => new Handle(p.value)), !v[2] ? null : v[2].map((p) => new Handle(p.value))), 2043862942: (id, v) => new IFC4.IfcTableColumn(id, !v[0] ? null : new IFC4.IfcIdentifier(v[0].value), !v[1] ? null : new IFC4.IfcLabel(v[1].value), !v[2] ? null : new IFC4.IfcText(v[2].value), !v[3] ? null : new Handle(v[3].value), !v[4] ? null : new Handle(v[4].value)), 531007025: (id, v) => new IFC4.IfcTableRow(id, !v[0] ? null : v[0].map((p) => TypeInitialiser(3, p)), !v[1] ? null : new IFC4.IfcBoolean(v[1].value)), 1549132990: (id, v) => new IFC4.IfcTaskTime(id, !v[0] ? null : new IFC4.IfcLabel(v[0].value), v[1], !v[2] ? null : new IFC4.IfcLabel(v[2].value), v[3], !v[4] ? null : new IFC4.IfcDuration(v[4].value), !v[5] ? null : new IFC4.IfcDateTime(v[5].value), !v[6] ? null : new IFC4.IfcDateTime(v[6].value), !v[7] ? null : new IFC4.IfcDateTime(v[7].value), !v[8] ? null : new IFC4.IfcDateTime(v[8].value), !v[9] ? null : new IFC4.IfcDateTime(v[9].value), !v[10] ? null : new IFC4.IfcDateTime(v[10].value), !v[11] ? null : new IFC4.IfcDuration(v[11].value), !v[12] ? null : new IFC4.IfcDuration(v[12].value), !v[13] ? null : new IFC4.IfcBoolean(v[13].value), !v[14] ? null : new IFC4.IfcDateTime(v[14].value), !v[15] ? null : new IFC4.IfcDuration(v[15].value), !v[16] ? null : new IFC4.IfcDateTime(v[16].value), !v[17] ? null : new IFC4.IfcDateTime(v[17].value), !v[18] ? null : new IFC4.IfcDuration(v[18].value), !v[19] ? null : new IFC4.IfcPositiveRatioMeasure(v[19].value)), 2771591690: (id, v) => new IFC4.IfcTaskTimeRecurring(id, !v[0] ? null : new IFC4.IfcLabel(v[0].value), v[1], !v[2] ? null : new IFC4.IfcLabel(v[2].value), v[3], !v[4] ? null : new IFC4.IfcDuration(v[4].value), !v[5] ? null : new IFC4.IfcDateTime(v[5].value), !v[6] ? null : new IFC4.IfcDateTime(v[6].value), !v[7] ? null : new IFC4.IfcDateTime(v[7].value), !v[8] ? null : new IFC4.IfcDateTime(v[8].value), !v[9] ? null : new IFC4.IfcDateTime(v[9].value), !v[10] ? null : new IFC4.IfcDateTime(v[10].value), !v[11] ? null : new IFC4.IfcDuration(v[11].value), !v[12] ? null : new IFC4.IfcDuration(v[12].value), !v[13] ? null : new IFC4.IfcBoolean(v[13].value), !v[14] ? null : new IFC4.IfcDateTime(v[14].value), !v[15] ? null : new IFC4.IfcDuration(v[15].value), !v[16] ? null : new IFC4.IfcDateTime(v[16].value), !v[17] ? null : new IFC4.IfcDateTime(v[17].value), !v[18] ? null : new IFC4.IfcDuration(v[18].value), !v[19] ? null : new IFC4.IfcPositiveRatioMeasure(v[19].value), new Handle(v[20].value)), 912023232: (id, v) => new IFC4.IfcTelecomAddress(id, v[0], !v[1] ? null : new IFC4.IfcText(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : v[3].map((p) => new IFC4.IfcLabel(p.value)), !v[4] ? null : v[4].map((p) => new IFC4.IfcLabel(p.value)), !v[5] ? null : new IFC4.IfcLabel(v[5].value), !v[6] ? null : v[6].map((p) => new IFC4.IfcLabel(p.value)), !v[7] ? null : new IFC4.IfcURIReference(v[7].value), !v[8] ? null : v[8].map((p) => new IFC4.IfcURIReference(p.value))), 1447204868: (id, v) => new IFC4.IfcTextStyle(id, !v[0] ? null : new IFC4.IfcLabel(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new Handle(v[2].value), new Handle(v[3].value), !v[4] ? null : new IFC4.IfcBoolean(v[4].value)), 2636378356: (id, v) => new IFC4.IfcTextStyleForDefinedFont(id, new Handle(v[0].value), !v[1] ? null : new Handle(v[1].value)), 1640371178: (id, v) => new IFC4.IfcTextStyleTextModel(id, !v[0] ? null : TypeInitialiser(3, v[0]), !v[1] ? null : new IFC4.IfcTextAlignment(v[1].value), !v[2] ? null : new IFC4.IfcTextDecoration(v[2].value), !v[3] ? null : TypeInitialiser(3, v[3]), !v[4] ? null : TypeInitialiser(3, v[4]), !v[5] ? null : new IFC4.IfcTextTransformation(v[5].value), !v[6] ? null : TypeInitialiser(3, v[6])), 280115917: (id, v) => new IFC4.IfcTextureCoordinate(id, v[0].map((p) => new Handle(p.value))), 1742049831: (id, v) => new IFC4.IfcTextureCoordinateGenerator(id, v[0].map((p) => new Handle(p.value)), new IFC4.IfcLabel(v[1].value), !v[2] ? null : v[2].map((p) => new IFC4.IfcReal(p.value))), 2552916305: (id, v) => new IFC4.IfcTextureMap(id, v[0].map((p) => new Handle(p.value)), v[1].map((p) => new Handle(p.value)), new Handle(v[2].value)), 1210645708: (id, v) => new IFC4.IfcTextureVertex(id, v[0].map((p) => new IFC4.IfcParameterValue(p.value))), 3611470254: (id, v) => new IFC4.IfcTextureVertexList(id, v[0].map((p) => new IFC4.IfcParameterValue(p.value))), 1199560280: (id, v) => new IFC4.IfcTimePeriod(id, new IFC4.IfcTime(v[0].value), new IFC4.IfcTime(v[1].value)), 3101149627: (id, v) => new IFC4.IfcTimeSeries(id, new IFC4.IfcLabel(v[0].value), !v[1] ? null : new IFC4.IfcText(v[1].value), new IFC4.IfcDateTime(v[2].value), new IFC4.IfcDateTime(v[3].value), v[4], v[5], !v[6] ? null : new IFC4.IfcLabel(v[6].value), !v[7] ? null : new Handle(v[7].value)), 581633288: (id, v) => new IFC4.IfcTimeSeriesValue(id, v[0].map((p) => TypeInitialiser(3, p))), 1377556343: (id, _) => new IFC4.IfcTopologicalRepresentationItem(id), 1735638870: (id, v) => new IFC4.IfcTopologyRepresentation(id, new Handle(v[0].value), !v[1] ? null : new IFC4.IfcLabel(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), v[3].map((p) => new Handle(p.value))), 180925521: (id, v) => new IFC4.IfcUnitAssignment(id, v[0].map((p) => new Handle(p.value))), 2799835756: (id, _) => new IFC4.IfcVertex(id), 1907098498: (id, v) => new IFC4.IfcVertexPoint(id, new Handle(v[0].value)), 891718957: (id, v) => new IFC4.IfcVirtualGridIntersection(id, v[0].map((p) => new Handle(p.value)), v[1].map((p) => new IFC4.IfcLengthMeasure(p.value))), 1236880293: (id, v) => new IFC4.IfcWorkTime(id, !v[0] ? null : new IFC4.IfcLabel(v[0].value), v[1], !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new Handle(v[3].value), !v[4] ? null : new IFC4.IfcDate(v[4].value), !v[5] ? null : new IFC4.IfcDate(v[5].value)), 3869604511: (id, v) => new IFC4.IfcApprovalRelationship(id, !v[0] ? null : new IFC4.IfcLabel(v[0].value), !v[1] ? null : new IFC4.IfcText(v[1].value), new Handle(v[2].value), v[3].map((p) => new Handle(p.value))), 3798115385: (id, v) => new IFC4.IfcArbitraryClosedProfileDef(id, v[0], !v[1] ? null : new IFC4.IfcLabel(v[1].value), new Handle(v[2].value)), 1310608509: (id, v) => new IFC4.IfcArbitraryOpenProfileDef(id, v[0], !v[1] ? null : new IFC4.IfcLabel(v[1].value), new Handle(v[2].value)), 2705031697: (id, v) => new IFC4.IfcArbitraryProfileDefWithVoids(id, v[0], !v[1] ? null : new IFC4.IfcLabel(v[1].value), new Handle(v[2].value), v[3].map((p) => new Handle(p.value))), 616511568: (id, v) => new IFC4.IfcBlobTexture(id, new IFC4.IfcBoolean(v[0].value), new IFC4.IfcBoolean(v[1].value), !v[2] ? null : new IFC4.IfcIdentifier(v[2].value), !v[3] ? null : new Handle(v[3].value), !v[4] ? null : v[4].map((p) => new IFC4.IfcIdentifier(p.value)), new IFC4.IfcIdentifier(v[5].value), new IFC4.IfcBinary(v[6].value)), 3150382593: (id, v) => new IFC4.IfcCenterLineProfileDef(id, v[0], !v[1] ? null : new IFC4.IfcLabel(v[1].value), new Handle(v[2].value), new IFC4.IfcPositiveLengthMeasure(v[3].value)), 747523909: (id, v) => new IFC4.IfcClassification(id, !v[0] ? null : new IFC4.IfcLabel(v[0].value), !v[1] ? null : new IFC4.IfcLabel(v[1].value), !v[2] ? null : new IFC4.IfcDate(v[2].value), new IFC4.IfcLabel(v[3].value), !v[4] ? null : new IFC4.IfcText(v[4].value), !v[5] ? null : new IFC4.IfcURIReference(v[5].value), !v[6] ? null : v[6].map((p) => new IFC4.IfcIdentifier(p.value))), 647927063: (id, v) => new IFC4.IfcClassificationReference(id, !v[0] ? null : new IFC4.IfcURIReference(v[0].value), !v[1] ? null : new IFC4.IfcIdentifier(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new Handle(v[3].value), !v[4] ? null : new IFC4.IfcText(v[4].value), !v[5] ? null : new IFC4.IfcIdentifier(v[5].value)), 3285139300: (id, v) => new IFC4.IfcColourRgbList(id, v[0].map((p) => new IFC4.IfcNormalisedRatioMeasure(p.value))), 3264961684: (id, v) => new IFC4.IfcColourSpecification(id, !v[0] ? null : new IFC4.IfcLabel(v[0].value)), 1485152156: (id, v) => new IFC4.IfcCompositeProfileDef(id, v[0], !v[1] ? null : new IFC4.IfcLabel(v[1].value), v[2].map((p) => new Handle(p.value)), !v[3] ? null : new IFC4.IfcLabel(v[3].value)), 370225590: (id, v) => new IFC4.IfcConnectedFaceSet(id, v[0].map((p) => new Handle(p.value))), 1981873012: (id, v) => new IFC4.IfcConnectionCurveGeometry(id, new Handle(v[0].value), !v[1] ? null : new Handle(v[1].value)), 45288368: (id, v) => new IFC4.IfcConnectionPointEccentricity(id, new Handle(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLengthMeasure(v[2].value), !v[3] ? null : new IFC4.IfcLengthMeasure(v[3].value), !v[4] ? null : new IFC4.IfcLengthMeasure(v[4].value)), 3050246964: (id, v) => new IFC4.IfcContextDependentUnit(id, new Handle(v[0].value), v[1], new IFC4.IfcLabel(v[2].value)), 2889183280: (id, v) => new IFC4.IfcConversionBasedUnit(id, new Handle(v[0].value), v[1], new IFC4.IfcLabel(v[2].value), new Handle(v[3].value)), 2713554722: (id, v) => new IFC4.IfcConversionBasedUnitWithOffset(id, new Handle(v[0].value), v[1], new IFC4.IfcLabel(v[2].value), new Handle(v[3].value), new IFC4.IfcReal(v[4].value)), 539742890: (id, v) => new IFC4.IfcCurrencyRelationship(id, !v[0] ? null : new IFC4.IfcLabel(v[0].value), !v[1] ? null : new IFC4.IfcText(v[1].value), new Handle(v[2].value), new Handle(v[3].value), new IFC4.IfcPositiveRatioMeasure(v[4].value), !v[5] ? null : new IFC4.IfcDateTime(v[5].value), !v[6] ? null : new Handle(v[6].value)), 3800577675: (id, v) => new IFC4.IfcCurveStyle(id, !v[0] ? null : new IFC4.IfcLabel(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : TypeInitialiser(3, v[2]), !v[3] ? null : new Handle(v[3].value), !v[4] ? null : new IFC4.IfcBoolean(v[4].value)), 1105321065: (id, v) => new IFC4.IfcCurveStyleFont(id, !v[0] ? null : new IFC4.IfcLabel(v[0].value), v[1].map((p) => new Handle(p.value))), 2367409068: (id, v) => new IFC4.IfcCurveStyleFontAndScaling(id, !v[0] ? null : new IFC4.IfcLabel(v[0].value), new Handle(v[1].value), new IFC4.IfcPositiveRatioMeasure(v[2].value)), 3510044353: (id, v) => new IFC4.IfcCurveStyleFontPattern(id, new IFC4.IfcLengthMeasure(v[0].value), new IFC4.IfcPositiveLengthMeasure(v[1].value)), 3632507154: (id, v) => new IFC4.IfcDerivedProfileDef(id, v[0], !v[1] ? null : new IFC4.IfcLabel(v[1].value), new Handle(v[2].value), new Handle(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value)), 1154170062: (id, v) => new IFC4.IfcDocumentInformation(id, new IFC4.IfcIdentifier(v[0].value), new IFC4.IfcLabel(v[1].value), !v[2] ? null : new IFC4.IfcText(v[2].value), !v[3] ? null : new IFC4.IfcURIReference(v[3].value), !v[4] ? null : new IFC4.IfcText(v[4].value), !v[5] ? null : new IFC4.IfcText(v[5].value), !v[6] ? null : new IFC4.IfcText(v[6].value), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new Handle(v[8].value), !v[9] ? null : v[9].map((p) => new Handle(p.value)), !v[10] ? null : new IFC4.IfcDateTime(v[10].value), !v[11] ? null : new IFC4.IfcDateTime(v[11].value), !v[12] ? null : new IFC4.IfcIdentifier(v[12].value), !v[13] ? null : new IFC4.IfcDate(v[13].value), !v[14] ? null : new IFC4.IfcDate(v[14].value), v[15], v[16]), 770865208: (id, v) => new IFC4.IfcDocumentInformationRelationship(id, !v[0] ? null : new IFC4.IfcLabel(v[0].value), !v[1] ? null : new IFC4.IfcText(v[1].value), new Handle(v[2].value), v[3].map((p) => new Handle(p.value)), !v[4] ? null : new IFC4.IfcLabel(v[4].value)), 3732053477: (id, v) => new IFC4.IfcDocumentReference(id, !v[0] ? null : new IFC4.IfcURIReference(v[0].value), !v[1] ? null : new IFC4.IfcIdentifier(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new Handle(v[4].value)), 3900360178: (id, v) => new IFC4.IfcEdge(id, new Handle(v[0].value), new Handle(v[1].value)), 476780140: (id, v) => new IFC4.IfcEdgeCurve(id, new Handle(v[0].value), new Handle(v[1].value), new Handle(v[2].value), new IFC4.IfcBoolean(v[3].value)), 211053100: (id, v) => new IFC4.IfcEventTime(id, !v[0] ? null : new IFC4.IfcLabel(v[0].value), v[1], !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcDateTime(v[3].value), !v[4] ? null : new IFC4.IfcDateTime(v[4].value), !v[5] ? null : new IFC4.IfcDateTime(v[5].value), !v[6] ? null : new IFC4.IfcDateTime(v[6].value)), 297599258: (id, v) => new IFC4.IfcExtendedProperties(id, !v[0] ? null : new IFC4.IfcIdentifier(v[0].value), !v[1] ? null : new IFC4.IfcText(v[1].value), v[2].map((p) => new Handle(p.value))), 1437805879: (id, v) => new IFC4.IfcExternalReferenceRelationship(id, !v[0] ? null : new IFC4.IfcLabel(v[0].value), !v[1] ? null : new IFC4.IfcText(v[1].value), new Handle(v[2].value), v[3].map((p) => new Handle(p.value))), 2556980723: (id, v) => new IFC4.IfcFace(id, v[0].map((p) => new Handle(p.value))), 1809719519: (id, v) => new IFC4.IfcFaceBound(id, new Handle(v[0].value), new IFC4.IfcBoolean(v[1].value)), 803316827: (id, v) => new IFC4.IfcFaceOuterBound(id, new Handle(v[0].value), new IFC4.IfcBoolean(v[1].value)), 3008276851: (id, v) => new IFC4.IfcFaceSurface(id, v[0].map((p) => new Handle(p.value)), new Handle(v[1].value), new IFC4.IfcBoolean(v[2].value)), 4219587988: (id, v) => new IFC4.IfcFailureConnectionCondition(id, !v[0] ? null : new IFC4.IfcLabel(v[0].value), !v[1] ? null : new IFC4.IfcForceMeasure(v[1].value), !v[2] ? null : new IFC4.IfcForceMeasure(v[2].value), !v[3] ? null : new IFC4.IfcForceMeasure(v[3].value), !v[4] ? null : new IFC4.IfcForceMeasure(v[4].value), !v[5] ? null : new IFC4.IfcForceMeasure(v[5].value), !v[6] ? null : new IFC4.IfcForceMeasure(v[6].value)), 738692330: (id, v) => new IFC4.IfcFillAreaStyle(id, !v[0] ? null : new IFC4.IfcLabel(v[0].value), v[1].map((p) => new Handle(p.value)), !v[2] ? null : new IFC4.IfcBoolean(v[2].value)), 3448662350: (id, v) => new IFC4.IfcGeometricRepresentationContext(id, !v[0] ? null : new IFC4.IfcLabel(v[0].value), !v[1] ? null : new IFC4.IfcLabel(v[1].value), new IFC4.IfcDimensionCount(v[2].value), !v[3] ? null : new IFC4.IfcReal(v[3].value), new Handle(v[4].value), !v[5] ? null : new Handle(v[5].value)), 2453401579: (id, _) => new IFC4.IfcGeometricRepresentationItem(id), 4142052618: (id, v) => new IFC4.IfcGeometricRepresentationSubContext(id, !v[0] ? null : new IFC4.IfcLabel(v[0].value), !v[1] ? null : new IFC4.IfcLabel(v[1].value), new Handle(v[2].value), !v[3] ? null : new IFC4.IfcPositiveRatioMeasure(v[3].value), v[4], !v[5] ? null : new IFC4.IfcLabel(v[5].value)), 3590301190: (id, v) => new IFC4.IfcGeometricSet(id, v[0].map((p) => new Handle(p.value))), 178086475: (id, v) => new IFC4.IfcGridPlacement(id, new Handle(v[0].value), !v[1] ? null : new Handle(v[1].value)), 812098782: (id, v) => new IFC4.IfcHalfSpaceSolid(id, new Handle(v[0].value), new IFC4.IfcBoolean(v[1].value)), 3905492369: (id, v) => new IFC4.IfcImageTexture(id, new IFC4.IfcBoolean(v[0].value), new IFC4.IfcBoolean(v[1].value), !v[2] ? null : new IFC4.IfcIdentifier(v[2].value), !v[3] ? null : new Handle(v[3].value), !v[4] ? null : v[4].map((p) => new IFC4.IfcIdentifier(p.value)), new IFC4.IfcURIReference(v[5].value)), 3570813810: (id, v) => new IFC4.IfcIndexedColourMap(id, new Handle(v[0].value), !v[1] ? null : new IFC4.IfcNormalisedRatioMeasure(v[1].value), new Handle(v[2].value), v[3].map((p) => new IFC4.IfcPositiveInteger(p.value))), 1437953363: (id, v) => new IFC4.IfcIndexedTextureMap(id, v[0].map((p) => new Handle(p.value)), new Handle(v[1].value), new Handle(v[2].value)), 2133299955: (id, v) => new IFC4.IfcIndexedTriangleTextureMap(id, v[0].map((p) => new Handle(p.value)), new Handle(v[1].value), new Handle(v[2].value), !v[3] ? null : v[3].map((p) => new IFC4.IfcPositiveInteger(p.value))), 3741457305: (id, v) => new IFC4.IfcIrregularTimeSeries(id, new IFC4.IfcLabel(v[0].value), !v[1] ? null : new IFC4.IfcText(v[1].value), new IFC4.IfcDateTime(v[2].value), new IFC4.IfcDateTime(v[3].value), v[4], v[5], !v[6] ? null : new IFC4.IfcLabel(v[6].value), !v[7] ? null : new Handle(v[7].value), v[8].map((p) => new Handle(p.value))), 1585845231: (id, v) => new IFC4.IfcLagTime(id, !v[0] ? null : new IFC4.IfcLabel(v[0].value), v[1], !v[2] ? null : new IFC4.IfcLabel(v[2].value), TypeInitialiser(3, v[3]), v[4]), 1402838566: (id, v) => new IFC4.IfcLightSource(id, !v[0] ? null : new IFC4.IfcLabel(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC4.IfcNormalisedRatioMeasure(v[2].value), !v[3] ? null : new IFC4.IfcNormalisedRatioMeasure(v[3].value)), 125510826: (id, v) => new IFC4.IfcLightSourceAmbient(id, !v[0] ? null : new IFC4.IfcLabel(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC4.IfcNormalisedRatioMeasure(v[2].value), !v[3] ? null : new IFC4.IfcNormalisedRatioMeasure(v[3].value)), 2604431987: (id, v) => new IFC4.IfcLightSourceDirectional(id, !v[0] ? null : new IFC4.IfcLabel(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC4.IfcNormalisedRatioMeasure(v[2].value), !v[3] ? null : new IFC4.IfcNormalisedRatioMeasure(v[3].value), new Handle(v[4].value)), 4266656042: (id, v) => new IFC4.IfcLightSourceGoniometric(id, !v[0] ? null : new IFC4.IfcLabel(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC4.IfcNormalisedRatioMeasure(v[2].value), !v[3] ? null : new IFC4.IfcNormalisedRatioMeasure(v[3].value), new Handle(v[4].value), !v[5] ? null : new Handle(v[5].value), new IFC4.IfcThermodynamicTemperatureMeasure(v[6].value), new IFC4.IfcLuminousFluxMeasure(v[7].value), v[8], new Handle(v[9].value)), 1520743889: (id, v) => new IFC4.IfcLightSourcePositional(id, !v[0] ? null : new IFC4.IfcLabel(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC4.IfcNormalisedRatioMeasure(v[2].value), !v[3] ? null : new IFC4.IfcNormalisedRatioMeasure(v[3].value), new Handle(v[4].value), new IFC4.IfcPositiveLengthMeasure(v[5].value), new IFC4.IfcReal(v[6].value), new IFC4.IfcReal(v[7].value), new IFC4.IfcReal(v[8].value)), 3422422726: (id, v) => new IFC4.IfcLightSourceSpot(id, !v[0] ? null : new IFC4.IfcLabel(v[0].value), new Handle(v[1].value), !v[2] ? null : new IFC4.IfcNormalisedRatioMeasure(v[2].value), !v[3] ? null : new IFC4.IfcNormalisedRatioMeasure(v[3].value), new Handle(v[4].value), new IFC4.IfcPositiveLengthMeasure(v[5].value), new IFC4.IfcReal(v[6].value), new IFC4.IfcReal(v[7].value), new IFC4.IfcReal(v[8].value), new Handle(v[9].value), !v[10] ? null : new IFC4.IfcReal(v[10].value), new IFC4.IfcPositivePlaneAngleMeasure(v[11].value), new IFC4.IfcPositivePlaneAngleMeasure(v[12].value)), 2624227202: (id, v) => new IFC4.IfcLocalPlacement(id, !v[0] ? null : new Handle(v[0].value), new Handle(v[1].value)), 1008929658: (id, _) => new IFC4.IfcLoop(id), 2347385850: (id, v) => new IFC4.IfcMappedItem(id, new Handle(v[0].value), new Handle(v[1].value)), 1838606355: (id, v) => new IFC4.IfcMaterial(id, new IFC4.IfcLabel(v[0].value), !v[1] ? null : new IFC4.IfcText(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value)), 3708119e3: (id, v) => new IFC4.IfcMaterialConstituent(id, !v[0] ? null : new IFC4.IfcLabel(v[0].value), !v[1] ? null : new IFC4.IfcText(v[1].value), new Handle(v[2].value), !v[3] ? null : new IFC4.IfcNormalisedRatioMeasure(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value)), 2852063980: (id, v) => new IFC4.IfcMaterialConstituentSet(id, !v[0] ? null : new IFC4.IfcLabel(v[0].value), !v[1] ? null : new IFC4.IfcText(v[1].value), !v[2] ? null : v[2].map((p) => new Handle(p.value))), 2022407955: (id, v) => new IFC4.IfcMaterialDefinitionRepresentation(id, !v[0] ? null : new IFC4.IfcLabel(v[0].value), !v[1] ? null : new IFC4.IfcText(v[1].value), v[2].map((p) => new Handle(p.value)), new Handle(v[3].value)), 1303795690: (id, v) => new IFC4.IfcMaterialLayerSetUsage(id, new Handle(v[0].value), v[1], v[2], new IFC4.IfcLengthMeasure(v[3].value), !v[4] ? null : new IFC4.IfcPositiveLengthMeasure(v[4].value)), 3079605661: (id, v) => new IFC4.IfcMaterialProfileSetUsage(id, new Handle(v[0].value), !v[1] ? null : new IFC4.IfcCardinalPointReference(v[1].value), !v[2] ? null : new IFC4.IfcPositiveLengthMeasure(v[2].value)), 3404854881: (id, v) => new IFC4.IfcMaterialProfileSetUsageTapering(id, new Handle(v[0].value), !v[1] ? null : new IFC4.IfcCardinalPointReference(v[1].value), !v[2] ? null : new IFC4.IfcPositiveLengthMeasure(v[2].value), new Handle(v[3].value), !v[4] ? null : new IFC4.IfcCardinalPointReference(v[4].value)), 3265635763: (id, v) => new IFC4.IfcMaterialProperties(id, !v[0] ? null : new IFC4.IfcIdentifier(v[0].value), !v[1] ? null : new IFC4.IfcText(v[1].value), v[2].map((p) => new Handle(p.value)), new Handle(v[3].value)), 853536259: (id, v) => new IFC4.IfcMaterialRelationship(id, !v[0] ? null : new IFC4.IfcLabel(v[0].value), !v[1] ? null : new IFC4.IfcText(v[1].value), new Handle(v[2].value), v[3].map((p) => new Handle(p.value)), !v[4] ? null : new IFC4.IfcLabel(v[4].value)), 2998442950: (id, v) => new IFC4.IfcMirroredProfileDef(id, v[0], !v[1] ? null : new IFC4.IfcLabel(v[1].value), new Handle(v[2].value), !v[3] ? null : new IFC4.IfcLabel(v[3].value)), 219451334: (id, v) => new IFC4.IfcObjectDefinition(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value)), 2665983363: (id, v) => new IFC4.IfcOpenShell(id, v[0].map((p) => new Handle(p.value))), 1411181986: (id, v) => new IFC4.IfcOrganizationRelationship(id, !v[0] ? null : new IFC4.IfcLabel(v[0].value), !v[1] ? null : new IFC4.IfcText(v[1].value), new Handle(v[2].value), v[3].map((p) => new Handle(p.value))), 1029017970: (id, v) => new IFC4.IfcOrientedEdge(id, new Handle(v[0].value), new IFC4.IfcBoolean(v[1].value)), 2529465313: (id, v) => new IFC4.IfcParameterizedProfileDef(id, v[0], !v[1] ? null : new IFC4.IfcLabel(v[1].value), !v[2] ? null : new Handle(v[2].value)), 2519244187: (id, v) => new IFC4.IfcPath(id, v[0].map((p) => new Handle(p.value))), 3021840470: (id, v) => new IFC4.IfcPhysicalComplexQuantity(id, new IFC4.IfcLabel(v[0].value), !v[1] ? null : new IFC4.IfcText(v[1].value), v[2].map((p) => new Handle(p.value)), new IFC4.IfcLabel(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new IFC4.IfcLabel(v[5].value)), 597895409: (id, v) => new IFC4.IfcPixelTexture(id, new IFC4.IfcBoolean(v[0].value), new IFC4.IfcBoolean(v[1].value), !v[2] ? null : new IFC4.IfcIdentifier(v[2].value), !v[3] ? null : new Handle(v[3].value), !v[4] ? null : v[4].map((p) => new IFC4.IfcIdentifier(p.value)), new IFC4.IfcInteger(v[5].value), new IFC4.IfcInteger(v[6].value), new IFC4.IfcInteger(v[7].value), v[8].map((p) => new IFC4.IfcBinary(p.value))), 2004835150: (id, v) => new IFC4.IfcPlacement(id, new Handle(v[0].value)), 1663979128: (id, v) => new IFC4.IfcPlanarExtent(id, new IFC4.IfcLengthMeasure(v[0].value), new IFC4.IfcLengthMeasure(v[1].value)), 2067069095: (id, _) => new IFC4.IfcPoint(id), 4022376103: (id, v) => new IFC4.IfcPointOnCurve(id, new Handle(v[0].value), new IFC4.IfcParameterValue(v[1].value)), 1423911732: (id, v) => new IFC4.IfcPointOnSurface(id, new Handle(v[0].value), new IFC4.IfcParameterValue(v[1].value), new IFC4.IfcParameterValue(v[2].value)), 2924175390: (id, v) => new IFC4.IfcPolyLoop(id, v[0].map((p) => new Handle(p.value))), 2775532180: (id, v) => new IFC4.IfcPolygonalBoundedHalfSpace(id, new Handle(v[0].value), new IFC4.IfcBoolean(v[1].value), new Handle(v[2].value), new Handle(v[3].value)), 3727388367: (id, v) => new IFC4.IfcPreDefinedItem(id, new IFC4.IfcLabel(v[0].value)), 3778827333: (id, _) => new IFC4.IfcPreDefinedProperties(id), 1775413392: (id, v) => new IFC4.IfcPreDefinedTextFont(id, new IFC4.IfcLabel(v[0].value)), 673634403: (id, v) => new IFC4.IfcProductDefinitionShape(id, !v[0] ? null : new IFC4.IfcLabel(v[0].value), !v[1] ? null : new IFC4.IfcText(v[1].value), v[2].map((p) => new Handle(p.value))), 2802850158: (id, v) => new IFC4.IfcProfileProperties(id, !v[0] ? null : new IFC4.IfcIdentifier(v[0].value), !v[1] ? null : new IFC4.IfcText(v[1].value), v[2].map((p) => new Handle(p.value)), new Handle(v[3].value)), 2598011224: (id, v) => new IFC4.IfcProperty(id, new IFC4.IfcIdentifier(v[0].value), !v[1] ? null : new IFC4.IfcText(v[1].value)), 1680319473: (id, v) => new IFC4.IfcPropertyDefinition(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value)), 148025276: (id, v) => new IFC4.IfcPropertyDependencyRelationship(id, !v[0] ? null : new IFC4.IfcLabel(v[0].value), !v[1] ? null : new IFC4.IfcText(v[1].value), new Handle(v[2].value), new Handle(v[3].value), !v[4] ? null : new IFC4.IfcText(v[4].value)), 3357820518: (id, v) => new IFC4.IfcPropertySetDefinition(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value)), 1482703590: (id, v) => new IFC4.IfcPropertyTemplateDefinition(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value)), 2090586900: (id, v) => new IFC4.IfcQuantitySet(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value)), 3615266464: (id, v) => new IFC4.IfcRectangleProfileDef(id, v[0], !v[1] ? null : new IFC4.IfcLabel(v[1].value), !v[2] ? null : new Handle(v[2].value), new IFC4.IfcPositiveLengthMeasure(v[3].value), new IFC4.IfcPositiveLengthMeasure(v[4].value)), 3413951693: (id, v) => new IFC4.IfcRegularTimeSeries(id, new IFC4.IfcLabel(v[0].value), !v[1] ? null : new IFC4.IfcText(v[1].value), new IFC4.IfcDateTime(v[2].value), new IFC4.IfcDateTime(v[3].value), v[4], v[5], !v[6] ? null : new IFC4.IfcLabel(v[6].value), !v[7] ? null : new Handle(v[7].value), new IFC4.IfcTimeMeasure(v[8].value), v[9].map((p) => new Handle(p.value))), 1580146022: (id, v) => new IFC4.IfcReinforcementBarProperties(id, new IFC4.IfcAreaMeasure(v[0].value), new IFC4.IfcLabel(v[1].value), v[2], !v[3] ? null : new IFC4.IfcLengthMeasure(v[3].value), !v[4] ? null : new IFC4.IfcPositiveLengthMeasure(v[4].value), !v[5] ? null : new IFC4.IfcCountMeasure(v[5].value)), 478536968: (id, v) => new IFC4.IfcRelationship(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value)), 2943643501: (id, v) => new IFC4.IfcResourceApprovalRelationship(id, !v[0] ? null : new IFC4.IfcLabel(v[0].value), !v[1] ? null : new IFC4.IfcText(v[1].value), v[2].map((p) => new Handle(p.value)), new Handle(v[3].value)), 1608871552: (id, v) => new IFC4.IfcResourceConstraintRelationship(id, !v[0] ? null : new IFC4.IfcLabel(v[0].value), !v[1] ? null : new IFC4.IfcText(v[1].value), new Handle(v[2].value), v[3].map((p) => new Handle(p.value))), 1042787934: (id, v) => new IFC4.IfcResourceTime(id, !v[0] ? null : new IFC4.IfcLabel(v[0].value), v[1], !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcDuration(v[3].value), !v[4] ? null : new IFC4.IfcPositiveRatioMeasure(v[4].value), !v[5] ? null : new IFC4.IfcDateTime(v[5].value), !v[6] ? null : new IFC4.IfcDateTime(v[6].value), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcDuration(v[8].value), !v[9] ? null : new IFC4.IfcBoolean(v[9].value), !v[10] ? null : new IFC4.IfcDateTime(v[10].value), !v[11] ? null : new IFC4.IfcDuration(v[11].value), !v[12] ? null : new IFC4.IfcPositiveRatioMeasure(v[12].value), !v[13] ? null : new IFC4.IfcDateTime(v[13].value), !v[14] ? null : new IFC4.IfcDateTime(v[14].value), !v[15] ? null : new IFC4.IfcDuration(v[15].value), !v[16] ? null : new IFC4.IfcPositiveRatioMeasure(v[16].value), !v[17] ? null : new IFC4.IfcPositiveRatioMeasure(v[17].value)), 2778083089: (id, v) => new IFC4.IfcRoundedRectangleProfileDef(id, v[0], !v[1] ? null : new IFC4.IfcLabel(v[1].value), !v[2] ? null : new Handle(v[2].value), new IFC4.IfcPositiveLengthMeasure(v[3].value), new IFC4.IfcPositiveLengthMeasure(v[4].value), new IFC4.IfcPositiveLengthMeasure(v[5].value)), 2042790032: (id, v) => new IFC4.IfcSectionProperties(id, v[0], new Handle(v[1].value), !v[2] ? null : new Handle(v[2].value)), 4165799628: (id, v) => new IFC4.IfcSectionReinforcementProperties(id, new IFC4.IfcLengthMeasure(v[0].value), new IFC4.IfcLengthMeasure(v[1].value), !v[2] ? null : new IFC4.IfcLengthMeasure(v[2].value), v[3], new Handle(v[4].value), v[5].map((p) => new Handle(p.value))), 1509187699: (id, v) => new IFC4.IfcSectionedSpine(id, new Handle(v[0].value), v[1].map((p) => new Handle(p.value)), v[2].map((p) => new Handle(p.value))), 4124623270: (id, v) => new IFC4.IfcShellBasedSurfaceModel(id, v[0].map((p) => new Handle(p.value))), 3692461612: (id, v) => new IFC4.IfcSimpleProperty(id, new IFC4.IfcIdentifier(v[0].value), !v[1] ? null : new IFC4.IfcText(v[1].value)), 2609359061: (id, v) => new IFC4.IfcSlippageConnectionCondition(id, !v[0] ? null : new IFC4.IfcLabel(v[0].value), !v[1] ? null : new IFC4.IfcLengthMeasure(v[1].value), !v[2] ? null : new IFC4.IfcLengthMeasure(v[2].value), !v[3] ? null : new IFC4.IfcLengthMeasure(v[3].value)), 723233188: (id, _) => new IFC4.IfcSolidModel(id), 1595516126: (id, v) => new IFC4.IfcStructuralLoadLinearForce(id, !v[0] ? null : new IFC4.IfcLabel(v[0].value), !v[1] ? null : new IFC4.IfcLinearForceMeasure(v[1].value), !v[2] ? null : new IFC4.IfcLinearForceMeasure(v[2].value), !v[3] ? null : new IFC4.IfcLinearForceMeasure(v[3].value), !v[4] ? null : new IFC4.IfcLinearMomentMeasure(v[4].value), !v[5] ? null : new IFC4.IfcLinearMomentMeasure(v[5].value), !v[6] ? null : new IFC4.IfcLinearMomentMeasure(v[6].value)), 2668620305: (id, v) => new IFC4.IfcStructuralLoadPlanarForce(id, !v[0] ? null : new IFC4.IfcLabel(v[0].value), !v[1] ? null : new IFC4.IfcPlanarForceMeasure(v[1].value), !v[2] ? null : new IFC4.IfcPlanarForceMeasure(v[2].value), !v[3] ? null : new IFC4.IfcPlanarForceMeasure(v[3].value)), 2473145415: (id, v) => new IFC4.IfcStructuralLoadSingleDisplacement(id, !v[0] ? null : new IFC4.IfcLabel(v[0].value), !v[1] ? null : new IFC4.IfcLengthMeasure(v[1].value), !v[2] ? null : new IFC4.IfcLengthMeasure(v[2].value), !v[3] ? null : new IFC4.IfcLengthMeasure(v[3].value), !v[4] ? null : new IFC4.IfcPlaneAngleMeasure(v[4].value), !v[5] ? null : new IFC4.IfcPlaneAngleMeasure(v[5].value), !v[6] ? null : new IFC4.IfcPlaneAngleMeasure(v[6].value)), 1973038258: (id, v) => new IFC4.IfcStructuralLoadSingleDisplacementDistortion(id, !v[0] ? null : new IFC4.IfcLabel(v[0].value), !v[1] ? null : new IFC4.IfcLengthMeasure(v[1].value), !v[2] ? null : new IFC4.IfcLengthMeasure(v[2].value), !v[3] ? null : new IFC4.IfcLengthMeasure(v[3].value), !v[4] ? null : new IFC4.IfcPlaneAngleMeasure(v[4].value), !v[5] ? null : new IFC4.IfcPlaneAngleMeasure(v[5].value), !v[6] ? null : new IFC4.IfcPlaneAngleMeasure(v[6].value), !v[7] ? null : new IFC4.IfcCurvatureMeasure(v[7].value)), 1597423693: (id, v) => new IFC4.IfcStructuralLoadSingleForce(id, !v[0] ? null : new IFC4.IfcLabel(v[0].value), !v[1] ? null : new IFC4.IfcForceMeasure(v[1].value), !v[2] ? null : new IFC4.IfcForceMeasure(v[2].value), !v[3] ? null : new IFC4.IfcForceMeasure(v[3].value), !v[4] ? null : new IFC4.IfcTorqueMeasure(v[4].value), !v[5] ? null : new IFC4.IfcTorqueMeasure(v[5].value), !v[6] ? null : new IFC4.IfcTorqueMeasure(v[6].value)), 1190533807: (id, v) => new IFC4.IfcStructuralLoadSingleForceWarping(id, !v[0] ? null : new IFC4.IfcLabel(v[0].value), !v[1] ? null : new IFC4.IfcForceMeasure(v[1].value), !v[2] ? null : new IFC4.IfcForceMeasure(v[2].value), !v[3] ? null : new IFC4.IfcForceMeasure(v[3].value), !v[4] ? null : new IFC4.IfcTorqueMeasure(v[4].value), !v[5] ? null : new IFC4.IfcTorqueMeasure(v[5].value), !v[6] ? null : new IFC4.IfcTorqueMeasure(v[6].value), !v[7] ? null : new IFC4.IfcWarpingMomentMeasure(v[7].value)), 2233826070: (id, v) => new IFC4.IfcSubedge(id, new Handle(v[0].value), new Handle(v[1].value), new Handle(v[2].value)), 2513912981: (id, _) => new IFC4.IfcSurface(id), 1878645084: (id, v) => new IFC4.IfcSurfaceStyleRendering(id, new Handle(v[0].value), !v[1] ? null : new IFC4.IfcNormalisedRatioMeasure(v[1].value), !v[2] ? null : new Handle(v[2].value), !v[3] ? null : new Handle(v[3].value), !v[4] ? null : new Handle(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : TypeInitialiser(3, v[7]), v[8]), 2247615214: (id, v) => new IFC4.IfcSweptAreaSolid(id, new Handle(v[0].value), !v[1] ? null : new Handle(v[1].value)), 1260650574: (id, v) => new IFC4.IfcSweptDiskSolid(id, new Handle(v[0].value), new IFC4.IfcPositiveLengthMeasure(v[1].value), !v[2] ? null : new IFC4.IfcPositiveLengthMeasure(v[2].value), !v[3] ? null : new IFC4.IfcParameterValue(v[3].value), !v[4] ? null : new IFC4.IfcParameterValue(v[4].value)), 1096409881: (id, v) => new IFC4.IfcSweptDiskSolidPolygonal(id, new Handle(v[0].value), new IFC4.IfcPositiveLengthMeasure(v[1].value), !v[2] ? null : new IFC4.IfcPositiveLengthMeasure(v[2].value), !v[3] ? null : new IFC4.IfcParameterValue(v[3].value), !v[4] ? null : new IFC4.IfcParameterValue(v[4].value), !v[5] ? null : new IFC4.IfcPositiveLengthMeasure(v[5].value)), 230924584: (id, v) => new IFC4.IfcSweptSurface(id, new Handle(v[0].value), !v[1] ? null : new Handle(v[1].value)), 3071757647: (id, v) => new IFC4.IfcTShapeProfileDef(id, v[0], !v[1] ? null : new IFC4.IfcLabel(v[1].value), !v[2] ? null : new Handle(v[2].value), new IFC4.IfcPositiveLengthMeasure(v[3].value), new IFC4.IfcPositiveLengthMeasure(v[4].value), new IFC4.IfcPositiveLengthMeasure(v[5].value), new IFC4.IfcPositiveLengthMeasure(v[6].value), !v[7] ? null : new IFC4.IfcNonNegativeLengthMeasure(v[7].value), !v[8] ? null : new IFC4.IfcNonNegativeLengthMeasure(v[8].value), !v[9] ? null : new IFC4.IfcNonNegativeLengthMeasure(v[9].value), !v[10] ? null : new IFC4.IfcPlaneAngleMeasure(v[10].value), !v[11] ? null : new IFC4.IfcPlaneAngleMeasure(v[11].value)), 901063453: (id, _) => new IFC4.IfcTessellatedItem(id), 4282788508: (id, v) => new IFC4.IfcTextLiteral(id, new IFC4.IfcPresentableText(v[0].value), new Handle(v[1].value), v[2]), 3124975700: (id, v) => new IFC4.IfcTextLiteralWithExtent(id, new IFC4.IfcPresentableText(v[0].value), new Handle(v[1].value), v[2], new Handle(v[3].value), new IFC4.IfcBoxAlignment(v[4].value)), 1983826977: (id, v) => new IFC4.IfcTextStyleFontModel(id, new IFC4.IfcLabel(v[0].value), v[1].map((p) => new IFC4.IfcTextFontName(p.value)), !v[2] ? null : new IFC4.IfcFontStyle(v[2].value), !v[3] ? null : new IFC4.IfcFontVariant(v[3].value), !v[4] ? null : new IFC4.IfcFontWeight(v[4].value), TypeInitialiser(3, v[5])), 2715220739: (id, v) => new IFC4.IfcTrapeziumProfileDef(id, v[0], !v[1] ? null : new IFC4.IfcLabel(v[1].value), !v[2] ? null : new Handle(v[2].value), new IFC4.IfcPositiveLengthMeasure(v[3].value), new IFC4.IfcPositiveLengthMeasure(v[4].value), new IFC4.IfcPositiveLengthMeasure(v[5].value), new IFC4.IfcLengthMeasure(v[6].value)), 1628702193: (id, v) => new IFC4.IfcTypeObject(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value))), 3736923433: (id, v) => new IFC4.IfcTypeProcess(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : new IFC4.IfcIdentifier(v[6].value), !v[7] ? null : new IFC4.IfcText(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value)), 2347495698: (id, v) => new IFC4.IfcTypeProduct(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value)), 3698973494: (id, v) => new IFC4.IfcTypeResource(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : new IFC4.IfcIdentifier(v[6].value), !v[7] ? null : new IFC4.IfcText(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value)), 427810014: (id, v) => new IFC4.IfcUShapeProfileDef(id, v[0], !v[1] ? null : new IFC4.IfcLabel(v[1].value), !v[2] ? null : new Handle(v[2].value), new IFC4.IfcPositiveLengthMeasure(v[3].value), new IFC4.IfcPositiveLengthMeasure(v[4].value), new IFC4.IfcPositiveLengthMeasure(v[5].value), new IFC4.IfcPositiveLengthMeasure(v[6].value), !v[7] ? null : new IFC4.IfcNonNegativeLengthMeasure(v[7].value), !v[8] ? null : new IFC4.IfcNonNegativeLengthMeasure(v[8].value), !v[9] ? null : new IFC4.IfcPlaneAngleMeasure(v[9].value)), 1417489154: (id, v) => new IFC4.IfcVector(id, new Handle(v[0].value), new IFC4.IfcLengthMeasure(v[1].value)), 2759199220: (id, v) => new IFC4.IfcVertexLoop(id, new Handle(v[0].value)), 1299126871: (id, v) => new IFC4.IfcWindowStyle(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), v[8], v[9], new IFC4.IfcBoolean(v[10].value), new IFC4.IfcBoolean(v[11].value)), 2543172580: (id, v) => new IFC4.IfcZShapeProfileDef(id, v[0], !v[1] ? null : new IFC4.IfcLabel(v[1].value), !v[2] ? null : new Handle(v[2].value), new IFC4.IfcPositiveLengthMeasure(v[3].value), new IFC4.IfcPositiveLengthMeasure(v[4].value), new IFC4.IfcPositiveLengthMeasure(v[5].value), new IFC4.IfcPositiveLengthMeasure(v[6].value), !v[7] ? null : new IFC4.IfcNonNegativeLengthMeasure(v[7].value), !v[8] ? null : new IFC4.IfcNonNegativeLengthMeasure(v[8].value)), 3406155212: (id, v) => new IFC4.IfcAdvancedFace(id, v[0].map((p) => new Handle(p.value)), new Handle(v[1].value), new IFC4.IfcBoolean(v[2].value)), 669184980: (id, v) => new IFC4.IfcAnnotationFillArea(id, new Handle(v[0].value), !v[1] ? null : v[1].map((p) => new Handle(p.value))), 3207858831: (id, v) => new IFC4.IfcAsymmetricIShapeProfileDef(id, v[0], !v[1] ? null : new IFC4.IfcLabel(v[1].value), !v[2] ? null : new Handle(v[2].value), new IFC4.IfcPositiveLengthMeasure(v[3].value), new IFC4.IfcPositiveLengthMeasure(v[4].value), new IFC4.IfcPositiveLengthMeasure(v[5].value), new IFC4.IfcPositiveLengthMeasure(v[6].value), !v[7] ? null : new IFC4.IfcNonNegativeLengthMeasure(v[7].value), new IFC4.IfcPositiveLengthMeasure(v[8].value), !v[9] ? null : new IFC4.IfcPositiveLengthMeasure(v[9].value), !v[10] ? null : new IFC4.IfcNonNegativeLengthMeasure(v[10].value), !v[11] ? null : new IFC4.IfcNonNegativeLengthMeasure(v[11].value), !v[12] ? null : new IFC4.IfcPlaneAngleMeasure(v[12].value), !v[13] ? null : new IFC4.IfcNonNegativeLengthMeasure(v[13].value), !v[14] ? null : new IFC4.IfcPlaneAngleMeasure(v[14].value)), 4261334040: (id, v) => new IFC4.IfcAxis1Placement(id, new Handle(v[0].value), !v[1] ? null : new Handle(v[1].value)), 3125803723: (id, v) => new IFC4.IfcAxis2Placement2D(id, new Handle(v[0].value), !v[1] ? null : new Handle(v[1].value)), 2740243338: (id, v) => new IFC4.IfcAxis2Placement3D(id, new Handle(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new Handle(v[2].value)), 2736907675: (id, v) => new IFC4.IfcBooleanResult(id, v[0], new Handle(v[1].value), new Handle(v[2].value)), 4182860854: (id, _) => new IFC4.IfcBoundedSurface(id), 2581212453: (id, v) => new IFC4.IfcBoundingBox(id, new Handle(v[0].value), new IFC4.IfcPositiveLengthMeasure(v[1].value), new IFC4.IfcPositiveLengthMeasure(v[2].value), new IFC4.IfcPositiveLengthMeasure(v[3].value)), 2713105998: (id, v) => new IFC4.IfcBoxedHalfSpace(id, new Handle(v[0].value), new IFC4.IfcBoolean(v[1].value), new Handle(v[2].value)), 2898889636: (id, v) => new IFC4.IfcCShapeProfileDef(id, v[0], !v[1] ? null : new IFC4.IfcLabel(v[1].value), !v[2] ? null : new Handle(v[2].value), new IFC4.IfcPositiveLengthMeasure(v[3].value), new IFC4.IfcPositiveLengthMeasure(v[4].value), new IFC4.IfcPositiveLengthMeasure(v[5].value), new IFC4.IfcPositiveLengthMeasure(v[6].value), !v[7] ? null : new IFC4.IfcNonNegativeLengthMeasure(v[7].value)), 1123145078: (id, v) => new IFC4.IfcCartesianPoint(id, v[0].map((p) => new IFC4.IfcLengthMeasure(p.value))), 574549367: (id, _) => new IFC4.IfcCartesianPointList(id), 1675464909: (id, v) => new IFC4.IfcCartesianPointList2D(id, v[0].map((p) => new IFC4.IfcLengthMeasure(p.value))), 2059837836: (id, v) => new IFC4.IfcCartesianPointList3D(id, v[0].map((p) => new IFC4.IfcLengthMeasure(p.value))), 59481748: (id, v) => new IFC4.IfcCartesianTransformationOperator(id, !v[0] ? null : new Handle(v[0].value), !v[1] ? null : new Handle(v[1].value), new Handle(v[2].value), !v[3] ? null : new IFC4.IfcReal(v[3].value)), 3749851601: (id, v) => new IFC4.IfcCartesianTransformationOperator2D(id, !v[0] ? null : new Handle(v[0].value), !v[1] ? null : new Handle(v[1].value), new Handle(v[2].value), !v[3] ? null : new IFC4.IfcReal(v[3].value)), 3486308946: (id, v) => new IFC4.IfcCartesianTransformationOperator2DnonUniform(id, !v[0] ? null : new Handle(v[0].value), !v[1] ? null : new Handle(v[1].value), new Handle(v[2].value), !v[3] ? null : new IFC4.IfcReal(v[3].value), !v[4] ? null : new IFC4.IfcReal(v[4].value)), 3331915920: (id, v) => new IFC4.IfcCartesianTransformationOperator3D(id, !v[0] ? null : new Handle(v[0].value), !v[1] ? null : new Handle(v[1].value), new Handle(v[2].value), !v[3] ? null : new IFC4.IfcReal(v[3].value), !v[4] ? null : new Handle(v[4].value)), 1416205885: (id, v) => new IFC4.IfcCartesianTransformationOperator3DnonUniform(id, !v[0] ? null : new Handle(v[0].value), !v[1] ? null : new Handle(v[1].value), new Handle(v[2].value), !v[3] ? null : new IFC4.IfcReal(v[3].value), !v[4] ? null : new Handle(v[4].value), !v[5] ? null : new IFC4.IfcReal(v[5].value), !v[6] ? null : new IFC4.IfcReal(v[6].value)), 1383045692: (id, v) => new IFC4.IfcCircleProfileDef(id, v[0], !v[1] ? null : new IFC4.IfcLabel(v[1].value), !v[2] ? null : new Handle(v[2].value), new IFC4.IfcPositiveLengthMeasure(v[3].value)), 2205249479: (id, v) => new IFC4.IfcClosedShell(id, v[0].map((p) => new Handle(p.value))), 776857604: (id, v) => new IFC4.IfcColourRgb(id, !v[0] ? null : new IFC4.IfcLabel(v[0].value), new IFC4.IfcNormalisedRatioMeasure(v[1].value), new IFC4.IfcNormalisedRatioMeasure(v[2].value), new IFC4.IfcNormalisedRatioMeasure(v[3].value)), 2542286263: (id, v) => new IFC4.IfcComplexProperty(id, new IFC4.IfcIdentifier(v[0].value), !v[1] ? null : new IFC4.IfcText(v[1].value), new IFC4.IfcIdentifier(v[2].value), v[3].map((p) => new Handle(p.value))), 2485617015: (id, v) => new IFC4.IfcCompositeCurveSegment(id, v[0], new IFC4.IfcBoolean(v[1].value), new Handle(v[2].value)), 2574617495: (id, v) => new IFC4.IfcConstructionResourceType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : new IFC4.IfcIdentifier(v[6].value), !v[7] ? null : new IFC4.IfcText(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), !v[9] ? null : v[9].map((p) => new Handle(p.value)), !v[10] ? null : new Handle(v[10].value)), 3419103109: (id, v) => new IFC4.IfcContext(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new IFC4.IfcLabel(v[5].value), !v[6] ? null : new IFC4.IfcLabel(v[6].value), !v[7] ? null : v[7].map((p) => new Handle(p.value)), !v[8] ? null : new Handle(v[8].value)), 1815067380: (id, v) => new IFC4.IfcCrewResourceType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : new IFC4.IfcIdentifier(v[6].value), !v[7] ? null : new IFC4.IfcText(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), !v[9] ? null : v[9].map((p) => new Handle(p.value)), !v[10] ? null : new Handle(v[10].value), v[11]), 2506170314: (id, v) => new IFC4.IfcCsgPrimitive3D(id, new Handle(v[0].value)), 2147822146: (id, v) => new IFC4.IfcCsgSolid(id, new Handle(v[0].value)), 2601014836: (id, _) => new IFC4.IfcCurve(id), 2827736869: (id, v) => new IFC4.IfcCurveBoundedPlane(id, new Handle(v[0].value), new Handle(v[1].value), v[2].map((p) => new Handle(p.value))), 2629017746: (id, v) => new IFC4.IfcCurveBoundedSurface(id, new Handle(v[0].value), v[1].map((p) => new Handle(p.value)), new IFC4.IfcBoolean(v[2].value)), 32440307: (id, v) => new IFC4.IfcDirection(id, v[0].map((p) => new IFC4.IfcReal(p.value))), 526551008: (id, v) => new IFC4.IfcDoorStyle(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), v[8], v[9], new IFC4.IfcBoolean(v[10].value), new IFC4.IfcBoolean(v[11].value)), 1472233963: (id, v) => new IFC4.IfcEdgeLoop(id, v[0].map((p) => new Handle(p.value))), 1883228015: (id, v) => new IFC4.IfcElementQuantity(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), v[5].map((p) => new Handle(p.value))), 339256511: (id, v) => new IFC4.IfcElementType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value)), 2777663545: (id, v) => new IFC4.IfcElementarySurface(id, new Handle(v[0].value)), 2835456948: (id, v) => new IFC4.IfcEllipseProfileDef(id, v[0], !v[1] ? null : new IFC4.IfcLabel(v[1].value), !v[2] ? null : new Handle(v[2].value), new IFC4.IfcPositiveLengthMeasure(v[3].value), new IFC4.IfcPositiveLengthMeasure(v[4].value)), 4024345920: (id, v) => new IFC4.IfcEventType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : new IFC4.IfcIdentifier(v[6].value), !v[7] ? null : new IFC4.IfcText(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9], v[10], !v[11] ? null : new IFC4.IfcLabel(v[11].value)), 477187591: (id, v) => new IFC4.IfcExtrudedAreaSolid(id, new Handle(v[0].value), !v[1] ? null : new Handle(v[1].value), new Handle(v[2].value), new IFC4.IfcPositiveLengthMeasure(v[3].value)), 2804161546: (id, v) => new IFC4.IfcExtrudedAreaSolidTapered(id, new Handle(v[0].value), !v[1] ? null : new Handle(v[1].value), new Handle(v[2].value), new IFC4.IfcPositiveLengthMeasure(v[3].value), new Handle(v[4].value)), 2047409740: (id, v) => new IFC4.IfcFaceBasedSurfaceModel(id, v[0].map((p) => new Handle(p.value))), 374418227: (id, v) => new IFC4.IfcFillAreaStyleHatching(id, new Handle(v[0].value), new Handle(v[1].value), !v[2] ? null : new Handle(v[2].value), !v[3] ? null : new Handle(v[3].value), new IFC4.IfcPlaneAngleMeasure(v[4].value)), 315944413: (id, v) => new IFC4.IfcFillAreaStyleTiles(id, v[0].map((p) => new Handle(p.value)), v[1].map((p) => new Handle(p.value)), new IFC4.IfcPositiveRatioMeasure(v[2].value)), 2652556860: (id, v) => new IFC4.IfcFixedReferenceSweptAreaSolid(id, new Handle(v[0].value), !v[1] ? null : new Handle(v[1].value), new Handle(v[2].value), !v[3] ? null : new IFC4.IfcParameterValue(v[3].value), !v[4] ? null : new IFC4.IfcParameterValue(v[4].value), new Handle(v[5].value)), 4238390223: (id, v) => new IFC4.IfcFurnishingElementType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value)), 1268542332: (id, v) => new IFC4.IfcFurnitureType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9], v[10]), 4095422895: (id, v) => new IFC4.IfcGeographicElementType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]), 987898635: (id, v) => new IFC4.IfcGeometricCurveSet(id, v[0].map((p) => new Handle(p.value))), 1484403080: (id, v) => new IFC4.IfcIShapeProfileDef(id, v[0], !v[1] ? null : new IFC4.IfcLabel(v[1].value), !v[2] ? null : new Handle(v[2].value), new IFC4.IfcPositiveLengthMeasure(v[3].value), new IFC4.IfcPositiveLengthMeasure(v[4].value), new IFC4.IfcPositiveLengthMeasure(v[5].value), new IFC4.IfcPositiveLengthMeasure(v[6].value), !v[7] ? null : new IFC4.IfcNonNegativeLengthMeasure(v[7].value), !v[8] ? null : new IFC4.IfcNonNegativeLengthMeasure(v[8].value), !v[9] ? null : new IFC4.IfcPlaneAngleMeasure(v[9].value)), 178912537: (id, v) => new IFC4.IfcIndexedPolygonalFace(id, v[0].map((p) => new IFC4.IfcPositiveInteger(p.value))), 2294589976: (id, v) => new IFC4.IfcIndexedPolygonalFaceWithVoids(id, v[0].map((p) => new IFC4.IfcPositiveInteger(p.value)), v[1].map((p) => new IFC4.IfcPositiveInteger(p.value))), 572779678: (id, v) => new IFC4.IfcLShapeProfileDef(id, v[0], !v[1] ? null : new IFC4.IfcLabel(v[1].value), !v[2] ? null : new Handle(v[2].value), new IFC4.IfcPositiveLengthMeasure(v[3].value), !v[4] ? null : new IFC4.IfcPositiveLengthMeasure(v[4].value), new IFC4.IfcPositiveLengthMeasure(v[5].value), !v[6] ? null : new IFC4.IfcNonNegativeLengthMeasure(v[6].value), !v[7] ? null : new IFC4.IfcNonNegativeLengthMeasure(v[7].value), !v[8] ? null : new IFC4.IfcPlaneAngleMeasure(v[8].value)), 428585644: (id, v) => new IFC4.IfcLaborResourceType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : new IFC4.IfcIdentifier(v[6].value), !v[7] ? null : new IFC4.IfcText(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), !v[9] ? null : v[9].map((p) => new Handle(p.value)), !v[10] ? null : new Handle(v[10].value), v[11]), 1281925730: (id, v) => new IFC4.IfcLine(id, new Handle(v[0].value), new Handle(v[1].value)), 1425443689: (id, v) => new IFC4.IfcManifoldSolidBrep(id, new Handle(v[0].value)), 3888040117: (id, v) => new IFC4.IfcObject(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value)), 3388369263: (id, v) => new IFC4.IfcOffsetCurve2D(id, new Handle(v[0].value), new IFC4.IfcLengthMeasure(v[1].value), new IFC4.IfcLogical(v[2].value)), 3505215534: (id, v) => new IFC4.IfcOffsetCurve3D(id, new Handle(v[0].value), new IFC4.IfcLengthMeasure(v[1].value), new IFC4.IfcLogical(v[2].value), new Handle(v[3].value)), 1682466193: (id, v) => new IFC4.IfcPcurve(id, new Handle(v[0].value), new Handle(v[1].value)), 603570806: (id, v) => new IFC4.IfcPlanarBox(id, new IFC4.IfcLengthMeasure(v[0].value), new IFC4.IfcLengthMeasure(v[1].value), new Handle(v[2].value)), 220341763: (id, v) => new IFC4.IfcPlane(id, new Handle(v[0].value)), 759155922: (id, v) => new IFC4.IfcPreDefinedColour(id, new IFC4.IfcLabel(v[0].value)), 2559016684: (id, v) => new IFC4.IfcPreDefinedCurveFont(id, new IFC4.IfcLabel(v[0].value)), 3967405729: (id, v) => new IFC4.IfcPreDefinedPropertySet(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value)), 569719735: (id, v) => new IFC4.IfcProcedureType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : new IFC4.IfcIdentifier(v[6].value), !v[7] ? null : new IFC4.IfcText(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]), 2945172077: (id, v) => new IFC4.IfcProcess(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new IFC4.IfcIdentifier(v[5].value), !v[6] ? null : new IFC4.IfcText(v[6].value)), 4208778838: (id, v) => new IFC4.IfcProduct(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value)), 103090709: (id, v) => new IFC4.IfcProject(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new IFC4.IfcLabel(v[5].value), !v[6] ? null : new IFC4.IfcLabel(v[6].value), !v[7] ? null : v[7].map((p) => new Handle(p.value)), !v[8] ? null : new Handle(v[8].value)), 653396225: (id, v) => new IFC4.IfcProjectLibrary(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new IFC4.IfcLabel(v[5].value), !v[6] ? null : new IFC4.IfcLabel(v[6].value), !v[7] ? null : v[7].map((p) => new Handle(p.value)), !v[8] ? null : new Handle(v[8].value)), 871118103: (id, v) => new IFC4.IfcPropertyBoundedValue(id, new IFC4.IfcIdentifier(v[0].value), !v[1] ? null : new IFC4.IfcText(v[1].value), !v[2] ? null : TypeInitialiser(3, v[2]), !v[3] ? null : TypeInitialiser(3, v[3]), !v[4] ? null : new Handle(v[4].value), !v[5] ? null : TypeInitialiser(3, v[5])), 4166981789: (id, v) => new IFC4.IfcPropertyEnumeratedValue(id, new IFC4.IfcIdentifier(v[0].value), !v[1] ? null : new IFC4.IfcText(v[1].value), !v[2] ? null : v[2].map((p) => TypeInitialiser(3, p)), !v[3] ? null : new Handle(v[3].value)), 2752243245: (id, v) => new IFC4.IfcPropertyListValue(id, new IFC4.IfcIdentifier(v[0].value), !v[1] ? null : new IFC4.IfcText(v[1].value), !v[2] ? null : v[2].map((p) => TypeInitialiser(3, p)), !v[3] ? null : new Handle(v[3].value)), 941946838: (id, v) => new IFC4.IfcPropertyReferenceValue(id, new IFC4.IfcIdentifier(v[0].value), !v[1] ? null : new IFC4.IfcText(v[1].value), !v[2] ? null : new IFC4.IfcText(v[2].value), !v[3] ? null : new Handle(v[3].value)), 1451395588: (id, v) => new IFC4.IfcPropertySet(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), v[4].map((p) => new Handle(p.value))), 492091185: (id, v) => new IFC4.IfcPropertySetTemplate(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), v[4], !v[5] ? null : new IFC4.IfcIdentifier(v[5].value), v[6].map((p) => new Handle(p.value))), 3650150729: (id, v) => new IFC4.IfcPropertySingleValue(id, new IFC4.IfcIdentifier(v[0].value), !v[1] ? null : new IFC4.IfcText(v[1].value), !v[2] ? null : TypeInitialiser(3, v[2]), !v[3] ? null : new Handle(v[3].value)), 110355661: (id, v) => new IFC4.IfcPropertyTableValue(id, new IFC4.IfcIdentifier(v[0].value), !v[1] ? null : new IFC4.IfcText(v[1].value), !v[2] ? null : v[2].map((p) => TypeInitialiser(3, p)), !v[3] ? null : v[3].map((p) => TypeInitialiser(3, p)), !v[4] ? null : new IFC4.IfcText(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), v[7]), 3521284610: (id, v) => new IFC4.IfcPropertyTemplate(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value)), 3219374653: (id, v) => new IFC4.IfcProxy(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), v[7], !v[8] ? null : new IFC4.IfcLabel(v[8].value)), 2770003689: (id, v) => new IFC4.IfcRectangleHollowProfileDef(id, v[0], !v[1] ? null : new IFC4.IfcLabel(v[1].value), !v[2] ? null : new Handle(v[2].value), new IFC4.IfcPositiveLengthMeasure(v[3].value), new IFC4.IfcPositiveLengthMeasure(v[4].value), new IFC4.IfcPositiveLengthMeasure(v[5].value), !v[6] ? null : new IFC4.IfcNonNegativeLengthMeasure(v[6].value), !v[7] ? null : new IFC4.IfcNonNegativeLengthMeasure(v[7].value)), 2798486643: (id, v) => new IFC4.IfcRectangularPyramid(id, new Handle(v[0].value), new IFC4.IfcPositiveLengthMeasure(v[1].value), new IFC4.IfcPositiveLengthMeasure(v[2].value), new IFC4.IfcPositiveLengthMeasure(v[3].value)), 3454111270: (id, v) => new IFC4.IfcRectangularTrimmedSurface(id, new Handle(v[0].value), new IFC4.IfcParameterValue(v[1].value), new IFC4.IfcParameterValue(v[2].value), new IFC4.IfcParameterValue(v[3].value), new IFC4.IfcParameterValue(v[4].value), new IFC4.IfcBoolean(v[5].value), new IFC4.IfcBoolean(v[6].value)), 3765753017: (id, v) => new IFC4.IfcReinforcementDefinitionProperties(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), v[5].map((p) => new Handle(p.value))), 3939117080: (id, v) => new IFC4.IfcRelAssigns(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), v[4].map((p) => new Handle(p.value)), v[5]), 1683148259: (id, v) => new IFC4.IfcRelAssignsToActor(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), v[4].map((p) => new Handle(p.value)), v[5], new Handle(v[6].value), !v[7] ? null : new Handle(v[7].value)), 2495723537: (id, v) => new IFC4.IfcRelAssignsToControl(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), v[4].map((p) => new Handle(p.value)), v[5], new Handle(v[6].value)), 1307041759: (id, v) => new IFC4.IfcRelAssignsToGroup(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), v[4].map((p) => new Handle(p.value)), v[5], new Handle(v[6].value)), 1027710054: (id, v) => new IFC4.IfcRelAssignsToGroupByFactor(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), v[4].map((p) => new Handle(p.value)), v[5], new Handle(v[6].value), new IFC4.IfcRatioMeasure(v[7].value)), 4278684876: (id, v) => new IFC4.IfcRelAssignsToProcess(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), v[4].map((p) => new Handle(p.value)), v[5], new Handle(v[6].value), !v[7] ? null : new Handle(v[7].value)), 2857406711: (id, v) => new IFC4.IfcRelAssignsToProduct(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), v[4].map((p) => new Handle(p.value)), v[5], new Handle(v[6].value)), 205026976: (id, v) => new IFC4.IfcRelAssignsToResource(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), v[4].map((p) => new Handle(p.value)), v[5], new Handle(v[6].value)), 1865459582: (id, v) => new IFC4.IfcRelAssociates(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), v[4].map((p) => new Handle(p.value))), 4095574036: (id, v) => new IFC4.IfcRelAssociatesApproval(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), v[4].map((p) => new Handle(p.value)), new Handle(v[5].value)), 919958153: (id, v) => new IFC4.IfcRelAssociatesClassification(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), v[4].map((p) => new Handle(p.value)), new Handle(v[5].value)), 2728634034: (id, v) => new IFC4.IfcRelAssociatesConstraint(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), v[4].map((p) => new Handle(p.value)), !v[5] ? null : new IFC4.IfcLabel(v[5].value), new Handle(v[6].value)), 982818633: (id, v) => new IFC4.IfcRelAssociatesDocument(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), v[4].map((p) => new Handle(p.value)), new Handle(v[5].value)), 3840914261: (id, v) => new IFC4.IfcRelAssociatesLibrary(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), v[4].map((p) => new Handle(p.value)), new Handle(v[5].value)), 2655215786: (id, v) => new IFC4.IfcRelAssociatesMaterial(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), v[4].map((p) => new Handle(p.value)), new Handle(v[5].value)), 826625072: (id, v) => new IFC4.IfcRelConnects(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value)), 1204542856: (id, v) => new IFC4.IfcRelConnectsElements(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new Handle(v[4].value), new Handle(v[5].value), new Handle(v[6].value)), 3945020480: (id, v) => new IFC4.IfcRelConnectsPathElements(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new Handle(v[4].value), new Handle(v[5].value), new Handle(v[6].value), v[7].map((p) => new IFC4.IfcInteger(p.value)), v[8].map((p) => new IFC4.IfcInteger(p.value)), v[9], v[10]), 4201705270: (id, v) => new IFC4.IfcRelConnectsPortToElement(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), new Handle(v[4].value), new Handle(v[5].value)), 3190031847: (id, v) => new IFC4.IfcRelConnectsPorts(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), new Handle(v[4].value), new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value)), 2127690289: (id, v) => new IFC4.IfcRelConnectsStructuralActivity(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), new Handle(v[4].value), new Handle(v[5].value)), 1638771189: (id, v) => new IFC4.IfcRelConnectsStructuralMember(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), new Handle(v[4].value), new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new Handle(v[7].value), !v[8] ? null : new IFC4.IfcLengthMeasure(v[8].value), !v[9] ? null : new Handle(v[9].value)), 504942748: (id, v) => new IFC4.IfcRelConnectsWithEccentricity(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), new Handle(v[4].value), new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new Handle(v[7].value), !v[8] ? null : new IFC4.IfcLengthMeasure(v[8].value), !v[9] ? null : new Handle(v[9].value), new Handle(v[10].value)), 3678494232: (id, v) => new IFC4.IfcRelConnectsWithRealizingElements(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new Handle(v[4].value), new Handle(v[5].value), new Handle(v[6].value), v[7].map((p) => new Handle(p.value)), !v[8] ? null : new IFC4.IfcLabel(v[8].value)), 3242617779: (id, v) => new IFC4.IfcRelContainedInSpatialStructure(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), v[4].map((p) => new Handle(p.value)), new Handle(v[5].value)), 886880790: (id, v) => new IFC4.IfcRelCoversBldgElements(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), new Handle(v[4].value), v[5].map((p) => new Handle(p.value))), 2802773753: (id, v) => new IFC4.IfcRelCoversSpaces(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), new Handle(v[4].value), v[5].map((p) => new Handle(p.value))), 2565941209: (id, v) => new IFC4.IfcRelDeclares(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), new Handle(v[4].value), v[5].map((p) => new Handle(p.value))), 2551354335: (id, v) => new IFC4.IfcRelDecomposes(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value)), 693640335: (id, v) => new IFC4.IfcRelDefines(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value)), 1462361463: (id, v) => new IFC4.IfcRelDefinesByObject(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), v[4].map((p) => new Handle(p.value)), new Handle(v[5].value)), 4186316022: (id, v) => new IFC4.IfcRelDefinesByProperties(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), v[4].map((p) => new Handle(p.value)), new Handle(v[5].value)), 307848117: (id, v) => new IFC4.IfcRelDefinesByTemplate(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), v[4].map((p) => new Handle(p.value)), new Handle(v[5].value)), 781010003: (id, v) => new IFC4.IfcRelDefinesByType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), v[4].map((p) => new Handle(p.value)), new Handle(v[5].value)), 3940055652: (id, v) => new IFC4.IfcRelFillsElement(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), new Handle(v[4].value), new Handle(v[5].value)), 279856033: (id, v) => new IFC4.IfcRelFlowControlElements(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), v[4].map((p) => new Handle(p.value)), new Handle(v[5].value)), 427948657: (id, v) => new IFC4.IfcRelInterferesElements(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), new Handle(v[4].value), new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8].value), 3268803585: (id, v) => new IFC4.IfcRelNests(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), new Handle(v[4].value), v[5].map((p) => new Handle(p.value))), 750771296: (id, v) => new IFC4.IfcRelProjectsElement(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), new Handle(v[4].value), new Handle(v[5].value)), 1245217292: (id, v) => new IFC4.IfcRelReferencedInSpatialStructure(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), v[4].map((p) => new Handle(p.value)), new Handle(v[5].value)), 4122056220: (id, v) => new IFC4.IfcRelSequence(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), new Handle(v[4].value), new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), v[7], !v[8] ? null : new IFC4.IfcLabel(v[8].value)), 366585022: (id, v) => new IFC4.IfcRelServicesBuildings(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), new Handle(v[4].value), v[5].map((p) => new Handle(p.value))), 3451746338: (id, v) => new IFC4.IfcRelSpaceBoundary(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), new Handle(v[4].value), new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), v[7], v[8]), 3523091289: (id, v) => new IFC4.IfcRelSpaceBoundary1stLevel(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), new Handle(v[4].value), new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), v[7], v[8], !v[9] ? null : new Handle(v[9].value)), 1521410863: (id, v) => new IFC4.IfcRelSpaceBoundary2ndLevel(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), new Handle(v[4].value), new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), v[7], v[8], !v[9] ? null : new Handle(v[9].value), !v[10] ? null : new Handle(v[10].value)), 1401173127: (id, v) => new IFC4.IfcRelVoidsElement(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), new Handle(v[4].value), new Handle(v[5].value)), 816062949: (id, v) => new IFC4.IfcReparametrisedCompositeCurveSegment(id, v[0], new IFC4.IfcBoolean(v[1].value), new Handle(v[2].value), new IFC4.IfcParameterValue(v[3].value)), 2914609552: (id, v) => new IFC4.IfcResource(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new IFC4.IfcIdentifier(v[5].value), !v[6] ? null : new IFC4.IfcText(v[6].value)), 1856042241: (id, v) => new IFC4.IfcRevolvedAreaSolid(id, new Handle(v[0].value), !v[1] ? null : new Handle(v[1].value), new Handle(v[2].value), new IFC4.IfcPlaneAngleMeasure(v[3].value)), 3243963512: (id, v) => new IFC4.IfcRevolvedAreaSolidTapered(id, new Handle(v[0].value), !v[1] ? null : new Handle(v[1].value), new Handle(v[2].value), new IFC4.IfcPlaneAngleMeasure(v[3].value), new Handle(v[4].value)), 4158566097: (id, v) => new IFC4.IfcRightCircularCone(id, new Handle(v[0].value), new IFC4.IfcPositiveLengthMeasure(v[1].value), new IFC4.IfcPositiveLengthMeasure(v[2].value)), 3626867408: (id, v) => new IFC4.IfcRightCircularCylinder(id, new Handle(v[0].value), new IFC4.IfcPositiveLengthMeasure(v[1].value), new IFC4.IfcPositiveLengthMeasure(v[2].value)), 3663146110: (id, v) => new IFC4.IfcSimplePropertyTemplate(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), v[4], !v[5] ? null : new IFC4.IfcLabel(v[5].value), !v[6] ? null : new IFC4.IfcLabel(v[6].value), !v[7] ? null : new Handle(v[7].value), !v[8] ? null : new Handle(v[8].value), !v[9] ? null : new Handle(v[9].value), !v[10] ? null : new IFC4.IfcLabel(v[10].value), v[11]), 1412071761: (id, v) => new IFC4.IfcSpatialElement(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcLabel(v[7].value)), 710998568: (id, v) => new IFC4.IfcSpatialElementType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value)), 2706606064: (id, v) => new IFC4.IfcSpatialStructureElement(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcLabel(v[7].value), v[8]), 3893378262: (id, v) => new IFC4.IfcSpatialStructureElementType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value)), 463610769: (id, v) => new IFC4.IfcSpatialZone(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcLabel(v[7].value), v[8]), 2481509218: (id, v) => new IFC4.IfcSpatialZoneType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9], !v[10] ? null : new IFC4.IfcLabel(v[10].value)), 451544542: (id, v) => new IFC4.IfcSphere(id, new Handle(v[0].value), new IFC4.IfcPositiveLengthMeasure(v[1].value)), 4015995234: (id, v) => new IFC4.IfcSphericalSurface(id, new Handle(v[0].value), new IFC4.IfcPositiveLengthMeasure(v[1].value)), 3544373492: (id, v) => new IFC4.IfcStructuralActivity(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), new Handle(v[7].value), v[8]), 3136571912: (id, v) => new IFC4.IfcStructuralItem(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value)), 530289379: (id, v) => new IFC4.IfcStructuralMember(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value)), 3689010777: (id, v) => new IFC4.IfcStructuralReaction(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), new Handle(v[7].value), v[8]), 3979015343: (id, v) => new IFC4.IfcStructuralSurfaceMember(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), v[7], !v[8] ? null : new IFC4.IfcPositiveLengthMeasure(v[8].value)), 2218152070: (id, v) => new IFC4.IfcStructuralSurfaceMemberVarying(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), v[7], !v[8] ? null : new IFC4.IfcPositiveLengthMeasure(v[8].value)), 603775116: (id, v) => new IFC4.IfcStructuralSurfaceReaction(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), new Handle(v[7].value), v[8], v[9]), 4095615324: (id, v) => new IFC4.IfcSubContractResourceType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : new IFC4.IfcIdentifier(v[6].value), !v[7] ? null : new IFC4.IfcText(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), !v[9] ? null : v[9].map((p) => new Handle(p.value)), !v[10] ? null : new Handle(v[10].value), v[11]), 699246055: (id, v) => new IFC4.IfcSurfaceCurve(id, new Handle(v[0].value), v[1].map((p) => new Handle(p.value)), v[2]), 2028607225: (id, v) => new IFC4.IfcSurfaceCurveSweptAreaSolid(id, new Handle(v[0].value), !v[1] ? null : new Handle(v[1].value), new Handle(v[2].value), !v[3] ? null : new IFC4.IfcParameterValue(v[3].value), !v[4] ? null : new IFC4.IfcParameterValue(v[4].value), new Handle(v[5].value)), 2809605785: (id, v) => new IFC4.IfcSurfaceOfLinearExtrusion(id, new Handle(v[0].value), !v[1] ? null : new Handle(v[1].value), new Handle(v[2].value), new IFC4.IfcLengthMeasure(v[3].value)), 4124788165: (id, v) => new IFC4.IfcSurfaceOfRevolution(id, new Handle(v[0].value), !v[1] ? null : new Handle(v[1].value), new Handle(v[2].value)), 1580310250: (id, v) => new IFC4.IfcSystemFurnitureElementType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]), 3473067441: (id, v) => new IFC4.IfcTask(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new IFC4.IfcIdentifier(v[5].value), !v[6] ? null : new IFC4.IfcText(v[6].value), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), new IFC4.IfcBoolean(v[9].value), !v[10] ? null : new IFC4.IfcInteger(v[10].value), !v[11] ? null : new Handle(v[11].value), v[12]), 3206491090: (id, v) => new IFC4.IfcTaskType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : new IFC4.IfcIdentifier(v[6].value), !v[7] ? null : new IFC4.IfcText(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9], !v[10] ? null : new IFC4.IfcLabel(v[10].value)), 2387106220: (id, v) => new IFC4.IfcTessellatedFaceSet(id, new Handle(v[0].value)), 1935646853: (id, v) => new IFC4.IfcToroidalSurface(id, new Handle(v[0].value), new IFC4.IfcPositiveLengthMeasure(v[1].value), new IFC4.IfcPositiveLengthMeasure(v[2].value)), 2097647324: (id, v) => new IFC4.IfcTransportElementType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]), 2916149573: (id, v) => new IFC4.IfcTriangulatedFaceSet(id, new Handle(v[0].value), !v[1] ? null : v[1].map((p) => new IFC4.IfcParameterValue(p.value)), !v[2] ? null : new IFC4.IfcBoolean(v[2].value), v[3].map((p) => new IFC4.IfcPositiveInteger(p.value)), !v[4] ? null : v[4].map((p) => new IFC4.IfcPositiveInteger(p.value))), 336235671: (id, v) => new IFC4.IfcWindowLiningProperties(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcPositiveLengthMeasure(v[4].value), !v[5] ? null : new IFC4.IfcNonNegativeLengthMeasure(v[5].value), !v[6] ? null : new IFC4.IfcNonNegativeLengthMeasure(v[6].value), !v[7] ? null : new IFC4.IfcNonNegativeLengthMeasure(v[7].value), !v[8] ? null : new IFC4.IfcNormalisedRatioMeasure(v[8].value), !v[9] ? null : new IFC4.IfcNormalisedRatioMeasure(v[9].value), !v[10] ? null : new IFC4.IfcNormalisedRatioMeasure(v[10].value), !v[11] ? null : new IFC4.IfcNormalisedRatioMeasure(v[11].value), !v[12] ? null : new Handle(v[12].value), !v[13] ? null : new IFC4.IfcLengthMeasure(v[13].value), !v[14] ? null : new IFC4.IfcLengthMeasure(v[14].value), !v[15] ? null : new IFC4.IfcLengthMeasure(v[15].value)), 512836454: (id, v) => new IFC4.IfcWindowPanelProperties(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), v[4], v[5], !v[6] ? null : new IFC4.IfcPositiveLengthMeasure(v[6].value), !v[7] ? null : new IFC4.IfcPositiveLengthMeasure(v[7].value), !v[8] ? null : new Handle(v[8].value)), 2296667514: (id, v) => new IFC4.IfcActor(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), new Handle(v[5].value)), 1635779807: (id, v) => new IFC4.IfcAdvancedBrep(id, new Handle(v[0].value)), 2603310189: (id, v) => new IFC4.IfcAdvancedBrepWithVoids(id, new Handle(v[0].value), v[1].map((p) => new Handle(p.value))), 1674181508: (id, v) => new IFC4.IfcAnnotation(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value)), 2887950389: (id, v) => new IFC4.IfcBSplineSurface(id, new IFC4.IfcInteger(v[0].value), new IFC4.IfcInteger(v[1].value), v[2].map((p) => new Handle(p.value)), v[3], new IFC4.IfcLogical(v[4].value), new IFC4.IfcLogical(v[5].value), new IFC4.IfcLogical(v[6].value)), 167062518: (id, v) => new IFC4.IfcBSplineSurfaceWithKnots(id, new IFC4.IfcInteger(v[0].value), new IFC4.IfcInteger(v[1].value), v[2].map((p) => new Handle(p.value)), v[3], new IFC4.IfcLogical(v[4].value), new IFC4.IfcLogical(v[5].value), new IFC4.IfcLogical(v[6].value), v[7].map((p) => new IFC4.IfcInteger(p.value)), v[8].map((p) => new IFC4.IfcInteger(p.value)), v[9].map((p) => new IFC4.IfcParameterValue(p.value)), v[10].map((p) => new IFC4.IfcParameterValue(p.value)), v[11]), 1334484129: (id, v) => new IFC4.IfcBlock(id, new Handle(v[0].value), new IFC4.IfcPositiveLengthMeasure(v[1].value), new IFC4.IfcPositiveLengthMeasure(v[2].value), new IFC4.IfcPositiveLengthMeasure(v[3].value)), 3649129432: (id, v) => new IFC4.IfcBooleanClippingResult(id, v[0], new Handle(v[1].value), new Handle(v[2].value)), 1260505505: (id, _) => new IFC4.IfcBoundedCurve(id), 4031249490: (id, v) => new IFC4.IfcBuilding(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcLabel(v[7].value), v[8], !v[9] ? null : new IFC4.IfcLengthMeasure(v[9].value), !v[10] ? null : new IFC4.IfcLengthMeasure(v[10].value), !v[11] ? null : new Handle(v[11].value)), 1950629157: (id, v) => new IFC4.IfcBuildingElementType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value)), 3124254112: (id, v) => new IFC4.IfcBuildingStorey(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcLabel(v[7].value), v[8], !v[9] ? null : new IFC4.IfcLengthMeasure(v[9].value)), 2197970202: (id, v) => new IFC4.IfcChimneyType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]), 2937912522: (id, v) => new IFC4.IfcCircleHollowProfileDef(id, v[0], !v[1] ? null : new IFC4.IfcLabel(v[1].value), !v[2] ? null : new Handle(v[2].value), new IFC4.IfcPositiveLengthMeasure(v[3].value), new IFC4.IfcPositiveLengthMeasure(v[4].value)), 3893394355: (id, v) => new IFC4.IfcCivilElementType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value)), 300633059: (id, v) => new IFC4.IfcColumnType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]), 3875453745: (id, v) => new IFC4.IfcComplexPropertyTemplate(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), v[5], !v[6] ? null : v[6].map((p) => new Handle(p.value))), 3732776249: (id, v) => new IFC4.IfcCompositeCurve(id, v[0].map((p) => new Handle(p.value)), new IFC4.IfcLogical(v[1].value)), 15328376: (id, v) => new IFC4.IfcCompositeCurveOnSurface(id, v[0].map((p) => new Handle(p.value)), new IFC4.IfcLogical(v[1].value)), 2510884976: (id, v) => new IFC4.IfcConic(id, new Handle(v[0].value)), 2185764099: (id, v) => new IFC4.IfcConstructionEquipmentResourceType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : new IFC4.IfcIdentifier(v[6].value), !v[7] ? null : new IFC4.IfcText(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), !v[9] ? null : v[9].map((p) => new Handle(p.value)), !v[10] ? null : new Handle(v[10].value), v[11]), 4105962743: (id, v) => new IFC4.IfcConstructionMaterialResourceType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : new IFC4.IfcIdentifier(v[6].value), !v[7] ? null : new IFC4.IfcText(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), !v[9] ? null : v[9].map((p) => new Handle(p.value)), !v[10] ? null : new Handle(v[10].value), v[11]), 1525564444: (id, v) => new IFC4.IfcConstructionProductResourceType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : new IFC4.IfcIdentifier(v[6].value), !v[7] ? null : new IFC4.IfcText(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), !v[9] ? null : v[9].map((p) => new Handle(p.value)), !v[10] ? null : new Handle(v[10].value), v[11]), 2559216714: (id, v) => new IFC4.IfcConstructionResource(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new IFC4.IfcIdentifier(v[5].value), !v[6] ? null : new IFC4.IfcText(v[6].value), !v[7] ? null : new Handle(v[7].value), !v[8] ? null : v[8].map((p) => new Handle(p.value)), !v[9] ? null : new Handle(v[9].value)), 3293443760: (id, v) => new IFC4.IfcControl(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new IFC4.IfcIdentifier(v[5].value)), 3895139033: (id, v) => new IFC4.IfcCostItem(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new IFC4.IfcIdentifier(v[5].value), v[6], !v[7] ? null : v[7].map((p) => new Handle(p.value)), !v[8] ? null : v[8].map((p) => new Handle(p.value))), 1419761937: (id, v) => new IFC4.IfcCostSchedule(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new IFC4.IfcIdentifier(v[5].value), v[6], !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcDateTime(v[8].value), !v[9] ? null : new IFC4.IfcDateTime(v[9].value)), 1916426348: (id, v) => new IFC4.IfcCoveringType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]), 3295246426: (id, v) => new IFC4.IfcCrewResource(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new IFC4.IfcIdentifier(v[5].value), !v[6] ? null : new IFC4.IfcText(v[6].value), !v[7] ? null : new Handle(v[7].value), !v[8] ? null : v[8].map((p) => new Handle(p.value)), !v[9] ? null : new Handle(v[9].value), v[10]), 1457835157: (id, v) => new IFC4.IfcCurtainWallType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]), 1213902940: (id, v) => new IFC4.IfcCylindricalSurface(id, new Handle(v[0].value), new IFC4.IfcPositiveLengthMeasure(v[1].value)), 3256556792: (id, v) => new IFC4.IfcDistributionElementType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value)), 3849074793: (id, v) => new IFC4.IfcDistributionFlowElementType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value)), 2963535650: (id, v) => new IFC4.IfcDoorLiningProperties(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcPositiveLengthMeasure(v[4].value), !v[5] ? null : new IFC4.IfcNonNegativeLengthMeasure(v[5].value), !v[6] ? null : new IFC4.IfcPositiveLengthMeasure(v[6].value), !v[7] ? null : new IFC4.IfcNonNegativeLengthMeasure(v[7].value), !v[8] ? null : new IFC4.IfcNonNegativeLengthMeasure(v[8].value), !v[9] ? null : new IFC4.IfcLengthMeasure(v[9].value), !v[10] ? null : new IFC4.IfcLengthMeasure(v[10].value), !v[11] ? null : new IFC4.IfcLengthMeasure(v[11].value), !v[12] ? null : new IFC4.IfcPositiveLengthMeasure(v[12].value), !v[13] ? null : new IFC4.IfcPositiveLengthMeasure(v[13].value), !v[14] ? null : new Handle(v[14].value), !v[15] ? null : new IFC4.IfcLengthMeasure(v[15].value), !v[16] ? null : new IFC4.IfcLengthMeasure(v[16].value)), 1714330368: (id, v) => new IFC4.IfcDoorPanelProperties(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcPositiveLengthMeasure(v[4].value), v[5], !v[6] ? null : new IFC4.IfcNormalisedRatioMeasure(v[6].value), v[7], !v[8] ? null : new Handle(v[8].value)), 2323601079: (id, v) => new IFC4.IfcDoorType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9], v[10], !v[11] ? null : new IFC4.IfcBoolean(v[11].value), !v[12] ? null : new IFC4.IfcLabel(v[12].value)), 445594917: (id, v) => new IFC4.IfcDraughtingPreDefinedColour(id, new IFC4.IfcLabel(v[0].value)), 4006246654: (id, v) => new IFC4.IfcDraughtingPreDefinedCurveFont(id, new IFC4.IfcLabel(v[0].value)), 1758889154: (id, v) => new IFC4.IfcElement(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value)), 4123344466: (id, v) => new IFC4.IfcElementAssembly(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8], v[9]), 2397081782: (id, v) => new IFC4.IfcElementAssemblyType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]), 1623761950: (id, v) => new IFC4.IfcElementComponent(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value)), 2590856083: (id, v) => new IFC4.IfcElementComponentType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value)), 1704287377: (id, v) => new IFC4.IfcEllipse(id, new Handle(v[0].value), new IFC4.IfcPositiveLengthMeasure(v[1].value), new IFC4.IfcPositiveLengthMeasure(v[2].value)), 2107101300: (id, v) => new IFC4.IfcEnergyConversionDeviceType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value)), 132023988: (id, v) => new IFC4.IfcEngineType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]), 3174744832: (id, v) => new IFC4.IfcEvaporativeCoolerType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]), 3390157468: (id, v) => new IFC4.IfcEvaporatorType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]), 4148101412: (id, v) => new IFC4.IfcEvent(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new IFC4.IfcIdentifier(v[5].value), !v[6] ? null : new IFC4.IfcText(v[6].value), v[7], v[8], !v[9] ? null : new IFC4.IfcLabel(v[9].value), !v[10] ? null : new Handle(v[10].value)), 2853485674: (id, v) => new IFC4.IfcExternalSpatialStructureElement(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcLabel(v[7].value)), 807026263: (id, v) => new IFC4.IfcFacetedBrep(id, new Handle(v[0].value)), 3737207727: (id, v) => new IFC4.IfcFacetedBrepWithVoids(id, new Handle(v[0].value), v[1].map((p) => new Handle(p.value))), 647756555: (id, v) => new IFC4.IfcFastener(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]), 2489546625: (id, v) => new IFC4.IfcFastenerType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]), 2827207264: (id, v) => new IFC4.IfcFeatureElement(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value)), 2143335405: (id, v) => new IFC4.IfcFeatureElementAddition(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value)), 1287392070: (id, v) => new IFC4.IfcFeatureElementSubtraction(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value)), 3907093117: (id, v) => new IFC4.IfcFlowControllerType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value)), 3198132628: (id, v) => new IFC4.IfcFlowFittingType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value)), 3815607619: (id, v) => new IFC4.IfcFlowMeterType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]), 1482959167: (id, v) => new IFC4.IfcFlowMovingDeviceType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value)), 1834744321: (id, v) => new IFC4.IfcFlowSegmentType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value)), 1339347760: (id, v) => new IFC4.IfcFlowStorageDeviceType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value)), 2297155007: (id, v) => new IFC4.IfcFlowTerminalType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value)), 3009222698: (id, v) => new IFC4.IfcFlowTreatmentDeviceType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value)), 1893162501: (id, v) => new IFC4.IfcFootingType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]), 263784265: (id, v) => new IFC4.IfcFurnishingElement(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value)), 1509553395: (id, v) => new IFC4.IfcFurniture(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]), 3493046030: (id, v) => new IFC4.IfcGeographicElement(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]), 3009204131: (id, v) => new IFC4.IfcGrid(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), v[7].map((p) => new Handle(p.value)), v[8].map((p) => new Handle(p.value)), !v[9] ? null : v[9].map((p) => new Handle(p.value)), v[10]), 2706460486: (id, v) => new IFC4.IfcGroup(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value)), 1251058090: (id, v) => new IFC4.IfcHeatExchangerType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]), 1806887404: (id, v) => new IFC4.IfcHumidifierType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]), 2571569899: (id, v) => new IFC4.IfcIndexedPolyCurve(id, new Handle(v[0].value), !v[1] ? null : v[1].map((p) => TypeInitialiser(3, p)), !v[2] ? null : new IFC4.IfcBoolean(v[2].value)), 3946677679: (id, v) => new IFC4.IfcInterceptorType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]), 3113134337: (id, v) => new IFC4.IfcIntersectionCurve(id, new Handle(v[0].value), v[1].map((p) => new Handle(p.value)), v[2]), 2391368822: (id, v) => new IFC4.IfcInventory(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), v[5], !v[6] ? null : new Handle(v[6].value), !v[7] ? null : v[7].map((p) => new Handle(p.value)), !v[8] ? null : new IFC4.IfcDate(v[8].value), !v[9] ? null : new Handle(v[9].value), !v[10] ? null : new Handle(v[10].value)), 4288270099: (id, v) => new IFC4.IfcJunctionBoxType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]), 3827777499: (id, v) => new IFC4.IfcLaborResource(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new IFC4.IfcIdentifier(v[5].value), !v[6] ? null : new IFC4.IfcText(v[6].value), !v[7] ? null : new Handle(v[7].value), !v[8] ? null : v[8].map((p) => new Handle(p.value)), !v[9] ? null : new Handle(v[9].value), v[10]), 1051575348: (id, v) => new IFC4.IfcLampType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]), 1161773419: (id, v) => new IFC4.IfcLightFixtureType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]), 377706215: (id, v) => new IFC4.IfcMechanicalFastener(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), !v[8] ? null : new IFC4.IfcPositiveLengthMeasure(v[8].value), !v[9] ? null : new IFC4.IfcPositiveLengthMeasure(v[9].value), v[10]), 2108223431: (id, v) => new IFC4.IfcMechanicalFastenerType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9], !v[10] ? null : new IFC4.IfcPositiveLengthMeasure(v[10].value), !v[11] ? null : new IFC4.IfcPositiveLengthMeasure(v[11].value)), 1114901282: (id, v) => new IFC4.IfcMedicalDeviceType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]), 3181161470: (id, v) => new IFC4.IfcMemberType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]), 977012517: (id, v) => new IFC4.IfcMotorConnectionType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]), 4143007308: (id, v) => new IFC4.IfcOccupant(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), new Handle(v[5].value), v[6]), 3588315303: (id, v) => new IFC4.IfcOpeningElement(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]), 3079942009: (id, v) => new IFC4.IfcOpeningStandardCase(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]), 2837617999: (id, v) => new IFC4.IfcOutletType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]), 2382730787: (id, v) => new IFC4.IfcPerformanceHistory(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new IFC4.IfcIdentifier(v[5].value), new IFC4.IfcLabel(v[6].value), v[7]), 3566463478: (id, v) => new IFC4.IfcPermeableCoveringProperties(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), v[4], v[5], !v[6] ? null : new IFC4.IfcPositiveLengthMeasure(v[6].value), !v[7] ? null : new IFC4.IfcPositiveLengthMeasure(v[7].value), !v[8] ? null : new Handle(v[8].value)), 3327091369: (id, v) => new IFC4.IfcPermit(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new IFC4.IfcIdentifier(v[5].value), v[6], !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcText(v[8].value)), 1158309216: (id, v) => new IFC4.IfcPileType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]), 804291784: (id, v) => new IFC4.IfcPipeFittingType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]), 4231323485: (id, v) => new IFC4.IfcPipeSegmentType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]), 4017108033: (id, v) => new IFC4.IfcPlateType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]), 2839578677: (id, v) => new IFC4.IfcPolygonalFaceSet(id, new Handle(v[0].value), !v[1] ? null : new IFC4.IfcBoolean(v[1].value), v[2].map((p) => new Handle(p.value)), !v[3] ? null : v[3].map((p) => new IFC4.IfcPositiveInteger(p.value))), 3724593414: (id, v) => new IFC4.IfcPolyline(id, v[0].map((p) => new Handle(p.value))), 3740093272: (id, v) => new IFC4.IfcPort(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value)), 2744685151: (id, v) => new IFC4.IfcProcedure(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new IFC4.IfcIdentifier(v[5].value), !v[6] ? null : new IFC4.IfcText(v[6].value), v[7]), 2904328755: (id, v) => new IFC4.IfcProjectOrder(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new IFC4.IfcIdentifier(v[5].value), v[6], !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcText(v[8].value)), 3651124850: (id, v) => new IFC4.IfcProjectionElement(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]), 1842657554: (id, v) => new IFC4.IfcProtectiveDeviceType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]), 2250791053: (id, v) => new IFC4.IfcPumpType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]), 2893384427: (id, v) => new IFC4.IfcRailingType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]), 2324767716: (id, v) => new IFC4.IfcRampFlightType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]), 1469900589: (id, v) => new IFC4.IfcRampType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]), 683857671: (id, v) => new IFC4.IfcRationalBSplineSurfaceWithKnots(id, new IFC4.IfcInteger(v[0].value), new IFC4.IfcInteger(v[1].value), v[2].map((p) => new Handle(p.value)), v[3], new IFC4.IfcLogical(v[4].value), new IFC4.IfcLogical(v[5].value), new IFC4.IfcLogical(v[6].value), v[7].map((p) => new IFC4.IfcInteger(p.value)), v[8].map((p) => new IFC4.IfcInteger(p.value)), v[9].map((p) => new IFC4.IfcParameterValue(p.value)), v[10].map((p) => new IFC4.IfcParameterValue(p.value)), v[11], v[12].map((p) => new IFC4.IfcReal(p.value))), 3027567501: (id, v) => new IFC4.IfcReinforcingElement(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value)), 964333572: (id, v) => new IFC4.IfcReinforcingElementType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value)), 2320036040: (id, v) => new IFC4.IfcReinforcingMesh(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), !v[9] ? null : new IFC4.IfcPositiveLengthMeasure(v[9].value), !v[10] ? null : new IFC4.IfcPositiveLengthMeasure(v[10].value), !v[11] ? null : new IFC4.IfcPositiveLengthMeasure(v[11].value), !v[12] ? null : new IFC4.IfcPositiveLengthMeasure(v[12].value), !v[13] ? null : new IFC4.IfcAreaMeasure(v[13].value), !v[14] ? null : new IFC4.IfcAreaMeasure(v[14].value), !v[15] ? null : new IFC4.IfcPositiveLengthMeasure(v[15].value), !v[16] ? null : new IFC4.IfcPositiveLengthMeasure(v[16].value), v[17]), 2310774935: (id, v) => new IFC4.IfcReinforcingMeshType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9], !v[10] ? null : new IFC4.IfcPositiveLengthMeasure(v[10].value), !v[11] ? null : new IFC4.IfcPositiveLengthMeasure(v[11].value), !v[12] ? null : new IFC4.IfcPositiveLengthMeasure(v[12].value), !v[13] ? null : new IFC4.IfcPositiveLengthMeasure(v[13].value), !v[14] ? null : new IFC4.IfcAreaMeasure(v[14].value), !v[15] ? null : new IFC4.IfcAreaMeasure(v[15].value), !v[16] ? null : new IFC4.IfcPositiveLengthMeasure(v[16].value), !v[17] ? null : new IFC4.IfcPositiveLengthMeasure(v[17].value), !v[18] ? null : new IFC4.IfcLabel(v[18].value), !v[19] ? null : v[19].map((p) => TypeInitialiser(3, p))), 160246688: (id, v) => new IFC4.IfcRelAggregates(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), new Handle(v[4].value), v[5].map((p) => new Handle(p.value))), 2781568857: (id, v) => new IFC4.IfcRoofType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]), 1768891740: (id, v) => new IFC4.IfcSanitaryTerminalType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]), 2157484638: (id, v) => new IFC4.IfcSeamCurve(id, new Handle(v[0].value), v[1].map((p) => new Handle(p.value)), v[2]), 4074543187: (id, v) => new IFC4.IfcShadingDeviceType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]), 4097777520: (id, v) => new IFC4.IfcSite(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcLabel(v[7].value), v[8], !v[9] ? null : new IFC4.IfcCompoundPlaneAngleMeasure(v[9].value), !v[10] ? null : new IFC4.IfcCompoundPlaneAngleMeasure(v[10].value), !v[11] ? null : new IFC4.IfcLengthMeasure(v[11].value), !v[12] ? null : new IFC4.IfcLabel(v[12].value), !v[13] ? null : new Handle(v[13].value)), 2533589738: (id, v) => new IFC4.IfcSlabType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]), 1072016465: (id, v) => new IFC4.IfcSolarDeviceType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]), 3856911033: (id, v) => new IFC4.IfcSpace(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcLabel(v[7].value), v[8], v[9], !v[10] ? null : new IFC4.IfcLengthMeasure(v[10].value)), 1305183839: (id, v) => new IFC4.IfcSpaceHeaterType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]), 3812236995: (id, v) => new IFC4.IfcSpaceType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9], !v[10] ? null : new IFC4.IfcLabel(v[10].value)), 3112655638: (id, v) => new IFC4.IfcStackTerminalType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]), 1039846685: (id, v) => new IFC4.IfcStairFlightType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]), 338393293: (id, v) => new IFC4.IfcStairType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]), 682877961: (id, v) => new IFC4.IfcStructuralAction(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), new Handle(v[7].value), v[8], !v[9] ? null : new IFC4.IfcBoolean(v[9].value)), 1179482911: (id, v) => new IFC4.IfcStructuralConnection(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new Handle(v[7].value)), 1004757350: (id, v) => new IFC4.IfcStructuralCurveAction(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), new Handle(v[7].value), v[8], !v[9] ? null : new IFC4.IfcBoolean(v[9].value), v[10], v[11]), 4243806635: (id, v) => new IFC4.IfcStructuralCurveConnection(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new Handle(v[7].value), new Handle(v[8].value)), 214636428: (id, v) => new IFC4.IfcStructuralCurveMember(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), v[7], new Handle(v[8].value)), 2445595289: (id, v) => new IFC4.IfcStructuralCurveMemberVarying(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), v[7], new Handle(v[8].value)), 2757150158: (id, v) => new IFC4.IfcStructuralCurveReaction(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), new Handle(v[7].value), v[8], v[9]), 1807405624: (id, v) => new IFC4.IfcStructuralLinearAction(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), new Handle(v[7].value), v[8], !v[9] ? null : new IFC4.IfcBoolean(v[9].value), v[10], v[11]), 1252848954: (id, v) => new IFC4.IfcStructuralLoadGroup(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), v[5], v[6], v[7], !v[8] ? null : new IFC4.IfcRatioMeasure(v[8].value), !v[9] ? null : new IFC4.IfcLabel(v[9].value)), 2082059205: (id, v) => new IFC4.IfcStructuralPointAction(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), new Handle(v[7].value), v[8], !v[9] ? null : new IFC4.IfcBoolean(v[9].value)), 734778138: (id, v) => new IFC4.IfcStructuralPointConnection(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new Handle(v[7].value), !v[8] ? null : new Handle(v[8].value)), 1235345126: (id, v) => new IFC4.IfcStructuralPointReaction(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), new Handle(v[7].value), v[8]), 2986769608: (id, v) => new IFC4.IfcStructuralResultGroup(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), v[5], !v[6] ? null : new Handle(v[6].value), new IFC4.IfcBoolean(v[7].value)), 3657597509: (id, v) => new IFC4.IfcStructuralSurfaceAction(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), new Handle(v[7].value), v[8], !v[9] ? null : new IFC4.IfcBoolean(v[9].value), v[10], v[11]), 1975003073: (id, v) => new IFC4.IfcStructuralSurfaceConnection(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new Handle(v[7].value)), 148013059: (id, v) => new IFC4.IfcSubContractResource(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new IFC4.IfcIdentifier(v[5].value), !v[6] ? null : new IFC4.IfcText(v[6].value), !v[7] ? null : new Handle(v[7].value), !v[8] ? null : v[8].map((p) => new Handle(p.value)), !v[9] ? null : new Handle(v[9].value), v[10]), 3101698114: (id, v) => new IFC4.IfcSurfaceFeature(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]), 2315554128: (id, v) => new IFC4.IfcSwitchingDeviceType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]), 2254336722: (id, v) => new IFC4.IfcSystem(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value)), 413509423: (id, v) => new IFC4.IfcSystemFurnitureElement(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]), 5716631: (id, v) => new IFC4.IfcTankType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]), 3824725483: (id, v) => new IFC4.IfcTendon(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9], !v[10] ? null : new IFC4.IfcPositiveLengthMeasure(v[10].value), !v[11] ? null : new IFC4.IfcAreaMeasure(v[11].value), !v[12] ? null : new IFC4.IfcForceMeasure(v[12].value), !v[13] ? null : new IFC4.IfcPressureMeasure(v[13].value), !v[14] ? null : new IFC4.IfcNormalisedRatioMeasure(v[14].value), !v[15] ? null : new IFC4.IfcPositiveLengthMeasure(v[15].value), !v[16] ? null : new IFC4.IfcPositiveLengthMeasure(v[16].value)), 2347447852: (id, v) => new IFC4.IfcTendonAnchor(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]), 3081323446: (id, v) => new IFC4.IfcTendonAnchorType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]), 2415094496: (id, v) => new IFC4.IfcTendonType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9], !v[10] ? null : new IFC4.IfcPositiveLengthMeasure(v[10].value), !v[11] ? null : new IFC4.IfcAreaMeasure(v[11].value), !v[12] ? null : new IFC4.IfcPositiveLengthMeasure(v[12].value)), 1692211062: (id, v) => new IFC4.IfcTransformerType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]), 1620046519: (id, v) => new IFC4.IfcTransportElement(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]), 3593883385: (id, v) => new IFC4.IfcTrimmedCurve(id, new Handle(v[0].value), v[1].map((p) => new Handle(p.value)), v[2].map((p) => new Handle(p.value)), new IFC4.IfcBoolean(v[3].value), v[4]), 1600972822: (id, v) => new IFC4.IfcTubeBundleType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]), 1911125066: (id, v) => new IFC4.IfcUnitaryEquipmentType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]), 728799441: (id, v) => new IFC4.IfcValveType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]), 2391383451: (id, v) => new IFC4.IfcVibrationIsolator(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]), 3313531582: (id, v) => new IFC4.IfcVibrationIsolatorType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]), 2769231204: (id, v) => new IFC4.IfcVirtualElement(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value)), 926996030: (id, v) => new IFC4.IfcVoidingFeature(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]), 1898987631: (id, v) => new IFC4.IfcWallType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]), 1133259667: (id, v) => new IFC4.IfcWasteTerminalType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]), 4009809668: (id, v) => new IFC4.IfcWindowType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9], v[10], !v[11] ? null : new IFC4.IfcBoolean(v[11].value), !v[12] ? null : new IFC4.IfcLabel(v[12].value)), 4088093105: (id, v) => new IFC4.IfcWorkCalendar(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new IFC4.IfcIdentifier(v[5].value), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : v[7].map((p) => new Handle(p.value)), v[8]), 1028945134: (id, v) => new IFC4.IfcWorkControl(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new IFC4.IfcIdentifier(v[5].value), new IFC4.IfcDateTime(v[6].value), !v[7] ? null : v[7].map((p) => new Handle(p.value)), !v[8] ? null : new IFC4.IfcLabel(v[8].value), !v[9] ? null : new IFC4.IfcDuration(v[9].value), !v[10] ? null : new IFC4.IfcDuration(v[10].value), new IFC4.IfcDateTime(v[11].value), !v[12] ? null : new IFC4.IfcDateTime(v[12].value)), 4218914973: (id, v) => new IFC4.IfcWorkPlan(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new IFC4.IfcIdentifier(v[5].value), new IFC4.IfcDateTime(v[6].value), !v[7] ? null : v[7].map((p) => new Handle(p.value)), !v[8] ? null : new IFC4.IfcLabel(v[8].value), !v[9] ? null : new IFC4.IfcDuration(v[9].value), !v[10] ? null : new IFC4.IfcDuration(v[10].value), new IFC4.IfcDateTime(v[11].value), !v[12] ? null : new IFC4.IfcDateTime(v[12].value), v[13]), 3342526732: (id, v) => new IFC4.IfcWorkSchedule(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new IFC4.IfcIdentifier(v[5].value), new IFC4.IfcDateTime(v[6].value), !v[7] ? null : v[7].map((p) => new Handle(p.value)), !v[8] ? null : new IFC4.IfcLabel(v[8].value), !v[9] ? null : new IFC4.IfcDuration(v[9].value), !v[10] ? null : new IFC4.IfcDuration(v[10].value), new IFC4.IfcDateTime(v[11].value), !v[12] ? null : new IFC4.IfcDateTime(v[12].value), v[13]), 1033361043: (id, v) => new IFC4.IfcZone(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new IFC4.IfcLabel(v[5].value)), 3821786052: (id, v) => new IFC4.IfcActionRequest(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new IFC4.IfcIdentifier(v[5].value), v[6], !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcText(v[8].value)), 1411407467: (id, v) => new IFC4.IfcAirTerminalBoxType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]), 3352864051: (id, v) => new IFC4.IfcAirTerminalType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]), 1871374353: (id, v) => new IFC4.IfcAirToAirHeatRecoveryType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]), 3460190687: (id, v) => new IFC4.IfcAsset(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new IFC4.IfcIdentifier(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new Handle(v[7].value), !v[8] ? null : new Handle(v[8].value), !v[9] ? null : new Handle(v[9].value), !v[10] ? null : new Handle(v[10].value), !v[11] ? null : new Handle(v[11].value), !v[12] ? null : new IFC4.IfcDate(v[12].value), !v[13] ? null : new Handle(v[13].value)), 1532957894: (id, v) => new IFC4.IfcAudioVisualApplianceType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]), 1967976161: (id, v) => new IFC4.IfcBSplineCurve(id, new IFC4.IfcInteger(v[0].value), v[1].map((p) => new Handle(p.value)), v[2], new IFC4.IfcLogical(v[3].value), new IFC4.IfcLogical(v[4].value)), 2461110595: (id, v) => new IFC4.IfcBSplineCurveWithKnots(id, new IFC4.IfcInteger(v[0].value), v[1].map((p) => new Handle(p.value)), v[2], new IFC4.IfcLogical(v[3].value), new IFC4.IfcLogical(v[4].value), v[5].map((p) => new IFC4.IfcInteger(p.value)), v[6].map((p) => new IFC4.IfcParameterValue(p.value)), v[7]), 819618141: (id, v) => new IFC4.IfcBeamType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]), 231477066: (id, v) => new IFC4.IfcBoilerType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]), 1136057603: (id, v) => new IFC4.IfcBoundaryCurve(id, v[0].map((p) => new Handle(p.value)), new IFC4.IfcLogical(v[1].value)), 3299480353: (id, v) => new IFC4.IfcBuildingElement(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value)), 2979338954: (id, v) => new IFC4.IfcBuildingElementPart(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]), 39481116: (id, v) => new IFC4.IfcBuildingElementPartType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]), 1095909175: (id, v) => new IFC4.IfcBuildingElementProxy(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]), 1909888760: (id, v) => new IFC4.IfcBuildingElementProxyType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]), 1177604601: (id, v) => new IFC4.IfcBuildingSystem(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), v[5], !v[6] ? null : new IFC4.IfcLabel(v[6].value)), 2188180465: (id, v) => new IFC4.IfcBurnerType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]), 395041908: (id, v) => new IFC4.IfcCableCarrierFittingType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]), 3293546465: (id, v) => new IFC4.IfcCableCarrierSegmentType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]), 2674252688: (id, v) => new IFC4.IfcCableFittingType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]), 1285652485: (id, v) => new IFC4.IfcCableSegmentType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]), 2951183804: (id, v) => new IFC4.IfcChillerType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]), 3296154744: (id, v) => new IFC4.IfcChimney(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]), 2611217952: (id, v) => new IFC4.IfcCircle(id, new Handle(v[0].value), new IFC4.IfcPositiveLengthMeasure(v[1].value)), 1677625105: (id, v) => new IFC4.IfcCivilElement(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value)), 2301859152: (id, v) => new IFC4.IfcCoilType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]), 843113511: (id, v) => new IFC4.IfcColumn(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]), 905975707: (id, v) => new IFC4.IfcColumnStandardCase(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]), 400855858: (id, v) => new IFC4.IfcCommunicationsApplianceType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]), 3850581409: (id, v) => new IFC4.IfcCompressorType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]), 2816379211: (id, v) => new IFC4.IfcCondenserType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]), 3898045240: (id, v) => new IFC4.IfcConstructionEquipmentResource(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new IFC4.IfcIdentifier(v[5].value), !v[6] ? null : new IFC4.IfcText(v[6].value), !v[7] ? null : new Handle(v[7].value), !v[8] ? null : v[8].map((p) => new Handle(p.value)), !v[9] ? null : new Handle(v[9].value), v[10]), 1060000209: (id, v) => new IFC4.IfcConstructionMaterialResource(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new IFC4.IfcIdentifier(v[5].value), !v[6] ? null : new IFC4.IfcText(v[6].value), !v[7] ? null : new Handle(v[7].value), !v[8] ? null : v[8].map((p) => new Handle(p.value)), !v[9] ? null : new Handle(v[9].value), v[10]), 488727124: (id, v) => new IFC4.IfcConstructionProductResource(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new IFC4.IfcIdentifier(v[5].value), !v[6] ? null : new IFC4.IfcText(v[6].value), !v[7] ? null : new Handle(v[7].value), !v[8] ? null : v[8].map((p) => new Handle(p.value)), !v[9] ? null : new Handle(v[9].value), v[10]), 335055490: (id, v) => new IFC4.IfcCooledBeamType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]), 2954562838: (id, v) => new IFC4.IfcCoolingTowerType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]), 1973544240: (id, v) => new IFC4.IfcCovering(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]), 3495092785: (id, v) => new IFC4.IfcCurtainWall(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]), 3961806047: (id, v) => new IFC4.IfcDamperType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]), 1335981549: (id, v) => new IFC4.IfcDiscreteAccessory(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]), 2635815018: (id, v) => new IFC4.IfcDiscreteAccessoryType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]), 1599208980: (id, v) => new IFC4.IfcDistributionChamberElementType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]), 2063403501: (id, v) => new IFC4.IfcDistributionControlElementType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value)), 1945004755: (id, v) => new IFC4.IfcDistributionElement(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value)), 3040386961: (id, v) => new IFC4.IfcDistributionFlowElement(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value)), 3041715199: (id, v) => new IFC4.IfcDistributionPort(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), v[7], v[8], v[9]), 3205830791: (id, v) => new IFC4.IfcDistributionSystem(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new IFC4.IfcLabel(v[5].value), v[6]), 395920057: (id, v) => new IFC4.IfcDoor(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), !v[8] ? null : new IFC4.IfcPositiveLengthMeasure(v[8].value), !v[9] ? null : new IFC4.IfcPositiveLengthMeasure(v[9].value), v[10], v[11], !v[12] ? null : new IFC4.IfcLabel(v[12].value)), 3242481149: (id, v) => new IFC4.IfcDoorStandardCase(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), !v[8] ? null : new IFC4.IfcPositiveLengthMeasure(v[8].value), !v[9] ? null : new IFC4.IfcPositiveLengthMeasure(v[9].value), v[10], v[11], !v[12] ? null : new IFC4.IfcLabel(v[12].value)), 869906466: (id, v) => new IFC4.IfcDuctFittingType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]), 3760055223: (id, v) => new IFC4.IfcDuctSegmentType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]), 2030761528: (id, v) => new IFC4.IfcDuctSilencerType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]), 663422040: (id, v) => new IFC4.IfcElectricApplianceType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]), 2417008758: (id, v) => new IFC4.IfcElectricDistributionBoardType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]), 3277789161: (id, v) => new IFC4.IfcElectricFlowStorageDeviceType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]), 1534661035: (id, v) => new IFC4.IfcElectricGeneratorType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]), 1217240411: (id, v) => new IFC4.IfcElectricMotorType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]), 712377611: (id, v) => new IFC4.IfcElectricTimeControlType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]), 1658829314: (id, v) => new IFC4.IfcEnergyConversionDevice(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value)), 2814081492: (id, v) => new IFC4.IfcEngine(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]), 3747195512: (id, v) => new IFC4.IfcEvaporativeCooler(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]), 484807127: (id, v) => new IFC4.IfcEvaporator(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]), 1209101575: (id, v) => new IFC4.IfcExternalSpatialElement(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcLabel(v[7].value), v[8]), 346874300: (id, v) => new IFC4.IfcFanType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]), 1810631287: (id, v) => new IFC4.IfcFilterType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]), 4222183408: (id, v) => new IFC4.IfcFireSuppressionTerminalType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]), 2058353004: (id, v) => new IFC4.IfcFlowController(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value)), 4278956645: (id, v) => new IFC4.IfcFlowFitting(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value)), 4037862832: (id, v) => new IFC4.IfcFlowInstrumentType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]), 2188021234: (id, v) => new IFC4.IfcFlowMeter(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]), 3132237377: (id, v) => new IFC4.IfcFlowMovingDevice(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value)), 987401354: (id, v) => new IFC4.IfcFlowSegment(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value)), 707683696: (id, v) => new IFC4.IfcFlowStorageDevice(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value)), 2223149337: (id, v) => new IFC4.IfcFlowTerminal(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value)), 3508470533: (id, v) => new IFC4.IfcFlowTreatmentDevice(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value)), 900683007: (id, v) => new IFC4.IfcFooting(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]), 3319311131: (id, v) => new IFC4.IfcHeatExchanger(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]), 2068733104: (id, v) => new IFC4.IfcHumidifier(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]), 4175244083: (id, v) => new IFC4.IfcInterceptor(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]), 2176052936: (id, v) => new IFC4.IfcJunctionBox(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]), 76236018: (id, v) => new IFC4.IfcLamp(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]), 629592764: (id, v) => new IFC4.IfcLightFixture(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]), 1437502449: (id, v) => new IFC4.IfcMedicalDevice(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]), 1073191201: (id, v) => new IFC4.IfcMember(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]), 1911478936: (id, v) => new IFC4.IfcMemberStandardCase(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]), 2474470126: (id, v) => new IFC4.IfcMotorConnection(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]), 144952367: (id, v) => new IFC4.IfcOuterBoundaryCurve(id, v[0].map((p) => new Handle(p.value)), new IFC4.IfcLogical(v[1].value)), 3694346114: (id, v) => new IFC4.IfcOutlet(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]), 1687234759: (id, v) => new IFC4.IfcPile(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8], v[9]), 310824031: (id, v) => new IFC4.IfcPipeFitting(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]), 3612865200: (id, v) => new IFC4.IfcPipeSegment(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]), 3171933400: (id, v) => new IFC4.IfcPlate(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]), 1156407060: (id, v) => new IFC4.IfcPlateStandardCase(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]), 738039164: (id, v) => new IFC4.IfcProtectiveDevice(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]), 655969474: (id, v) => new IFC4.IfcProtectiveDeviceTrippingUnitType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]), 90941305: (id, v) => new IFC4.IfcPump(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]), 2262370178: (id, v) => new IFC4.IfcRailing(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]), 3024970846: (id, v) => new IFC4.IfcRamp(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]), 3283111854: (id, v) => new IFC4.IfcRampFlight(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]), 1232101972: (id, v) => new IFC4.IfcRationalBSplineCurveWithKnots(id, new IFC4.IfcInteger(v[0].value), v[1].map((p) => new Handle(p.value)), v[2], new IFC4.IfcLogical(v[3].value), new IFC4.IfcLogical(v[4].value), v[5].map((p) => new IFC4.IfcInteger(p.value)), v[6].map((p) => new IFC4.IfcParameterValue(p.value)), v[7], v[8].map((p) => new IFC4.IfcReal(p.value))), 979691226: (id, v) => new IFC4.IfcReinforcingBar(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), !v[9] ? null : new IFC4.IfcPositiveLengthMeasure(v[9].value), !v[10] ? null : new IFC4.IfcAreaMeasure(v[10].value), !v[11] ? null : new IFC4.IfcPositiveLengthMeasure(v[11].value), v[12], v[13]), 2572171363: (id, v) => new IFC4.IfcReinforcingBarType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9], !v[10] ? null : new IFC4.IfcPositiveLengthMeasure(v[10].value), !v[11] ? null : new IFC4.IfcAreaMeasure(v[11].value), !v[12] ? null : new IFC4.IfcPositiveLengthMeasure(v[12].value), v[13], !v[14] ? null : new IFC4.IfcLabel(v[14].value), !v[15] ? null : v[15].map((p) => TypeInitialiser(3, p))), 2016517767: (id, v) => new IFC4.IfcRoof(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]), 3053780830: (id, v) => new IFC4.IfcSanitaryTerminal(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]), 1783015770: (id, v) => new IFC4.IfcSensorType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]), 1329646415: (id, v) => new IFC4.IfcShadingDevice(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]), 1529196076: (id, v) => new IFC4.IfcSlab(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]), 3127900445: (id, v) => new IFC4.IfcSlabElementedCase(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]), 3027962421: (id, v) => new IFC4.IfcSlabStandardCase(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]), 3420628829: (id, v) => new IFC4.IfcSolarDevice(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]), 1999602285: (id, v) => new IFC4.IfcSpaceHeater(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]), 1404847402: (id, v) => new IFC4.IfcStackTerminal(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]), 331165859: (id, v) => new IFC4.IfcStair(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]), 4252922144: (id, v) => new IFC4.IfcStairFlight(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), !v[8] ? null : new IFC4.IfcInteger(v[8].value), !v[9] ? null : new IFC4.IfcInteger(v[9].value), !v[10] ? null : new IFC4.IfcPositiveLengthMeasure(v[10].value), !v[11] ? null : new IFC4.IfcPositiveLengthMeasure(v[11].value), v[12]), 2515109513: (id, v) => new IFC4.IfcStructuralAnalysisModel(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), v[5], !v[6] ? null : new Handle(v[6].value), !v[7] ? null : v[7].map((p) => new Handle(p.value)), !v[8] ? null : v[8].map((p) => new Handle(p.value)), !v[9] ? null : new Handle(v[9].value)), 385403989: (id, v) => new IFC4.IfcStructuralLoadCase(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), v[5], v[6], v[7], !v[8] ? null : new IFC4.IfcRatioMeasure(v[8].value), !v[9] ? null : new IFC4.IfcLabel(v[9].value), !v[10] ? null : v[10].map((p) => new IFC4.IfcRatioMeasure(p.value))), 1621171031: (id, v) => new IFC4.IfcStructuralPlanarAction(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), new Handle(v[7].value), v[8], !v[9] ? null : new IFC4.IfcBoolean(v[9].value), v[10], v[11]), 1162798199: (id, v) => new IFC4.IfcSwitchingDevice(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]), 812556717: (id, v) => new IFC4.IfcTank(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]), 3825984169: (id, v) => new IFC4.IfcTransformer(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]), 3026737570: (id, v) => new IFC4.IfcTubeBundle(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]), 3179687236: (id, v) => new IFC4.IfcUnitaryControlElementType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]), 4292641817: (id, v) => new IFC4.IfcUnitaryEquipment(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]), 4207607924: (id, v) => new IFC4.IfcValve(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]), 2391406946: (id, v) => new IFC4.IfcWall(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]), 4156078855: (id, v) => new IFC4.IfcWallElementedCase(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]), 3512223829: (id, v) => new IFC4.IfcWallStandardCase(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]), 4237592921: (id, v) => new IFC4.IfcWasteTerminal(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]), 3304561284: (id, v) => new IFC4.IfcWindow(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), !v[8] ? null : new IFC4.IfcPositiveLengthMeasure(v[8].value), !v[9] ? null : new IFC4.IfcPositiveLengthMeasure(v[9].value), v[10], v[11], !v[12] ? null : new IFC4.IfcLabel(v[12].value)), 486154966: (id, v) => new IFC4.IfcWindowStandardCase(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), !v[8] ? null : new IFC4.IfcPositiveLengthMeasure(v[8].value), !v[9] ? null : new IFC4.IfcPositiveLengthMeasure(v[9].value), v[10], v[11], !v[12] ? null : new IFC4.IfcLabel(v[12].value)), 2874132201: (id, v) => new IFC4.IfcActuatorType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]), 1634111441: (id, v) => new IFC4.IfcAirTerminal(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]), 177149247: (id, v) => new IFC4.IfcAirTerminalBox(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]), 2056796094: (id, v) => new IFC4.IfcAirToAirHeatRecovery(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]), 3001207471: (id, v) => new IFC4.IfcAlarmType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]), 277319702: (id, v) => new IFC4.IfcAudioVisualAppliance(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]), 753842376: (id, v) => new IFC4.IfcBeam(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]), 2906023776: (id, v) => new IFC4.IfcBeamStandardCase(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]), 32344328: (id, v) => new IFC4.IfcBoiler(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]), 2938176219: (id, v) => new IFC4.IfcBurner(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]), 635142910: (id, v) => new IFC4.IfcCableCarrierFitting(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]), 3758799889: (id, v) => new IFC4.IfcCableCarrierSegment(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]), 1051757585: (id, v) => new IFC4.IfcCableFitting(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]), 4217484030: (id, v) => new IFC4.IfcCableSegment(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]), 3902619387: (id, v) => new IFC4.IfcChiller(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]), 639361253: (id, v) => new IFC4.IfcCoil(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]), 3221913625: (id, v) => new IFC4.IfcCommunicationsAppliance(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]), 3571504051: (id, v) => new IFC4.IfcCompressor(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]), 2272882330: (id, v) => new IFC4.IfcCondenser(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]), 578613899: (id, v) => new IFC4.IfcControllerType(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(v[4].value), !v[5] ? null : v[5].map((p) => new Handle(p.value)), !v[6] ? null : v[6].map((p) => new Handle(p.value)), !v[7] ? null : new IFC4.IfcLabel(v[7].value), !v[8] ? null : new IFC4.IfcLabel(v[8].value), v[9]), 4136498852: (id, v) => new IFC4.IfcCooledBeam(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]), 3640358203: (id, v) => new IFC4.IfcCoolingTower(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]), 4074379575: (id, v) => new IFC4.IfcDamper(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]), 1052013943: (id, v) => new IFC4.IfcDistributionChamberElement(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]), 562808652: (id, v) => new IFC4.IfcDistributionCircuit(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new IFC4.IfcLabel(v[5].value), v[6]), 1062813311: (id, v) => new IFC4.IfcDistributionControlElement(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value)), 342316401: (id, v) => new IFC4.IfcDuctFitting(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]), 3518393246: (id, v) => new IFC4.IfcDuctSegment(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]), 1360408905: (id, v) => new IFC4.IfcDuctSilencer(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]), 1904799276: (id, v) => new IFC4.IfcElectricAppliance(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]), 862014818: (id, v) => new IFC4.IfcElectricDistributionBoard(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]), 3310460725: (id, v) => new IFC4.IfcElectricFlowStorageDevice(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]), 264262732: (id, v) => new IFC4.IfcElectricGenerator(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]), 402227799: (id, v) => new IFC4.IfcElectricMotor(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]), 1003880860: (id, v) => new IFC4.IfcElectricTimeControl(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]), 3415622556: (id, v) => new IFC4.IfcFan(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]), 819412036: (id, v) => new IFC4.IfcFilter(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]), 1426591983: (id, v) => new IFC4.IfcFireSuppressionTerminal(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]), 182646315: (id, v) => new IFC4.IfcFlowInstrument(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]), 2295281155: (id, v) => new IFC4.IfcProtectiveDeviceTrippingUnit(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]), 4086658281: (id, v) => new IFC4.IfcSensor(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]), 630975310: (id, v) => new IFC4.IfcUnitaryControlElement(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]), 4288193352: (id, v) => new IFC4.IfcActuator(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]), 3087945054: (id, v) => new IFC4.IfcAlarm(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]), 25142252: (id, v) => new IFC4.IfcController(id, new IFC4.IfcGloballyUniqueId(v[0].value), !v[1] ? null : new Handle(v[1].value), !v[2] ? null : new IFC4.IfcLabel(v[2].value), !v[3] ? null : new IFC4.IfcText(v[3].value), !v[4] ? null : new IFC4.IfcLabel(v[4].value), !v[5] ? null : new Handle(v[5].value), !v[6] ? null : new Handle(v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(v[7].value), v[8]) }; InheritanceDef[3] = { 618182010: [IFCTELECOMADDRESS, IFCPOSTALADDRESS], 411424972: [IFCCOSTVALUE], 4037036970: [IFCBOUNDARYNODECONDITIONWARPING, IFCBOUNDARYNODECONDITION, IFCBOUNDARYFACECONDITION, IFCBOUNDARYEDGECONDITION], 1387855156: [IFCBOUNDARYNODECONDITIONWARPING], 2859738748: [IFCCONNECTIONCURVEGEOMETRY, IFCCONNECTIONVOLUMEGEOMETRY, IFCCONNECTIONSURFACEGEOMETRY, IFCCONNECTIONPOINTECCENTRICITY, IFCCONNECTIONPOINTGEOMETRY], 2614616156: [IFCCONNECTIONPOINTECCENTRICITY], 1959218052: [IFCOBJECTIVE, IFCMETRIC], 1785450214: [IFCMAPCONVERSION], 1466758467: [IFCPROJECTEDCRS], 4294318154: [IFCDOCUMENTINFORMATION, IFCCLASSIFICATION, IFCLIBRARYINFORMATION], 3200245327: [IFCDOCUMENTREFERENCE, IFCCLASSIFICATIONREFERENCE, IFCLIBRARYREFERENCE, IFCEXTERNALLYDEFINEDTEXTFONT, IFCEXTERNALLYDEFINEDSURFACESTYLE, IFCEXTERNALLYDEFINEDHATCHSTYLE], 760658860: [IFCMATERIALCONSTITUENTSET, IFCMATERIALCONSTITUENT, IFCMATERIAL, IFCMATERIALPROFILESET, IFCMATERIALPROFILEWITHOFFSETS, IFCMATERIALPROFILE, IFCMATERIALLAYERSET, IFCMATERIALLAYERWITHOFFSETS, IFCMATERIALLAYER], 248100487: [IFCMATERIALLAYERWITHOFFSETS], 2235152071: [IFCMATERIALPROFILEWITHOFFSETS], 1507914824: [IFCMATERIALPROFILESETUSAGETAPERING, IFCMATERIALPROFILESETUSAGE, IFCMATERIALLAYERSETUSAGE], 1918398963: [IFCCONVERSIONBASEDUNITWITHOFFSET, IFCCONVERSIONBASEDUNIT, IFCCONTEXTDEPENDENTUNIT, IFCSIUNIT], 3701648758: [IFCLOCALPLACEMENT, IFCGRIDPLACEMENT], 2483315170: [IFCPHYSICALCOMPLEXQUANTITY, IFCQUANTITYWEIGHT, IFCQUANTITYVOLUME, IFCQUANTITYTIME, IFCQUANTITYLENGTH, IFCQUANTITYCOUNT, IFCQUANTITYAREA, IFCPHYSICALSIMPLEQUANTITY], 2226359599: [IFCQUANTITYWEIGHT, IFCQUANTITYVOLUME, IFCQUANTITYTIME, IFCQUANTITYLENGTH, IFCQUANTITYCOUNT, IFCQUANTITYAREA], 677532197: [IFCDRAUGHTINGPREDEFINEDCURVEFONT, IFCPREDEFINEDCURVEFONT, IFCDRAUGHTINGPREDEFINEDCOLOUR, IFCPREDEFINEDCOLOUR, IFCTEXTSTYLEFONTMODEL, IFCPREDEFINEDTEXTFONT, IFCPREDEFINEDITEM, IFCINDEXEDCOLOURMAP, IFCCURVESTYLEFONTPATTERN, IFCCURVESTYLEFONTANDSCALING, IFCCURVESTYLEFONT, IFCCOLOURRGB, IFCCOLOURSPECIFICATION, IFCCOLOURRGBLIST, IFCTEXTUREVERTEXLIST, IFCTEXTUREVERTEX, IFCINDEXEDTRIANGLETEXTUREMAP, IFCINDEXEDTEXTUREMAP, IFCTEXTUREMAP, IFCTEXTURECOORDINATEGENERATOR, IFCTEXTURECOORDINATE, IFCTEXTSTYLETEXTMODEL, IFCTEXTSTYLEFORDEFINEDFONT, IFCPIXELTEXTURE, IFCIMAGETEXTURE, IFCBLOBTEXTURE, IFCSURFACETEXTURE, IFCSURFACESTYLEWITHTEXTURES, IFCSURFACESTYLERENDERING, IFCSURFACESTYLESHADING, IFCSURFACESTYLEREFRACTION, IFCSURFACESTYLELIGHTING], 2022622350: [IFCPRESENTATIONLAYERWITHSTYLE], 3119450353: [IFCFILLAREASTYLE, IFCCURVESTYLE, IFCTEXTSTYLE, IFCSURFACESTYLE], 2095639259: [IFCPRODUCTDEFINITIONSHAPE, IFCMATERIALDEFINITIONREPRESENTATION], 3958567839: [IFCLSHAPEPROFILEDEF, IFCISHAPEPROFILEDEF, IFCELLIPSEPROFILEDEF, IFCCIRCLEHOLLOWPROFILEDEF, IFCCIRCLEPROFILEDEF, IFCCSHAPEPROFILEDEF, IFCASYMMETRICISHAPEPROFILEDEF, IFCZSHAPEPROFILEDEF, IFCUSHAPEPROFILEDEF, IFCTRAPEZIUMPROFILEDEF, IFCTSHAPEPROFILEDEF, IFCRECTANGLEHOLLOWPROFILEDEF, IFCROUNDEDRECTANGLEPROFILEDEF, IFCRECTANGLEPROFILEDEF, IFCPARAMETERIZEDPROFILEDEF, IFCMIRROREDPROFILEDEF, IFCDERIVEDPROFILEDEF, IFCCOMPOSITEPROFILEDEF, IFCCENTERLINEPROFILEDEF, IFCARBITRARYOPENPROFILEDEF, IFCARBITRARYPROFILEDEFWITHVOIDS, IFCARBITRARYCLOSEDPROFILEDEF], 986844984: [IFCCOMPLEXPROPERTY, IFCPROPERTYTABLEVALUE, IFCPROPERTYSINGLEVALUE, IFCPROPERTYREFERENCEVALUE, IFCPROPERTYLISTVALUE, IFCPROPERTYENUMERATEDVALUE, IFCPROPERTYBOUNDEDVALUE, IFCSIMPLEPROPERTY, IFCPROPERTY, IFCSECTIONREINFORCEMENTPROPERTIES, IFCSECTIONPROPERTIES, IFCREINFORCEMENTBARPROPERTIES, IFCPREDEFINEDPROPERTIES, IFCPROFILEPROPERTIES, IFCMATERIALPROPERTIES, IFCEXTENDEDPROPERTIES, IFCPROPERTYENUMERATION], 1076942058: [IFCSTYLEDREPRESENTATION, IFCSTYLEMODEL, IFCTOPOLOGYREPRESENTATION, IFCSHAPEREPRESENTATION, IFCSHAPEMODEL], 3377609919: [IFCGEOMETRICREPRESENTATIONSUBCONTEXT, IFCGEOMETRICREPRESENTATIONCONTEXT], 3008791417: [IFCMAPPEDITEM, IFCFILLAREASTYLETILES, IFCFILLAREASTYLEHATCHING, IFCFACEBASEDSURFACEMODEL, IFCDIRECTION, IFCCIRCLE, IFCELLIPSE, IFCCONIC, IFCRATIONALBSPLINECURVEWITHKNOTS, IFCBSPLINECURVEWITHKNOTS, IFCBSPLINECURVE, IFCTRIMMEDCURVE, IFCPOLYLINE, IFCINDEXEDPOLYCURVE, IFCOUTERBOUNDARYCURVE, IFCBOUNDARYCURVE, IFCCOMPOSITECURVEONSURFACE, IFCCOMPOSITECURVE, IFCBOUNDEDCURVE, IFCSEAMCURVE, IFCINTERSECTIONCURVE, IFCSURFACECURVE, IFCPCURVE, IFCOFFSETCURVE3D, IFCOFFSETCURVE2D, IFCLINE, IFCCURVE, IFCBLOCK, IFCSPHERE, IFCRIGHTCIRCULARCYLINDER, IFCRIGHTCIRCULARCONE, IFCRECTANGULARPYRAMID, IFCCSGPRIMITIVE3D, IFCREPARAMETRISEDCOMPOSITECURVESEGMENT, IFCCOMPOSITECURVESEGMENT, IFCCARTESIANTRANSFORMATIONOPERATOR3DNONUNIFORM, IFCCARTESIANTRANSFORMATIONOPERATOR3D, IFCCARTESIANTRANSFORMATIONOPERATOR2DNONUNIFORM, IFCCARTESIANTRANSFORMATIONOPERATOR2D, IFCCARTESIANTRANSFORMATIONOPERATOR, IFCCARTESIANPOINTLIST3D, IFCCARTESIANPOINTLIST2D, IFCCARTESIANPOINTLIST, IFCBOUNDINGBOX, IFCBOOLEANCLIPPINGRESULT, IFCBOOLEANRESULT, IFCANNOTATIONFILLAREA, IFCVECTOR, IFCTEXTLITERALWITHEXTENT, IFCTEXTLITERAL, IFCPOLYGONALFACESET, IFCTRIANGULATEDFACESET, IFCTESSELLATEDFACESET, IFCINDEXEDPOLYGONALFACEWITHVOIDS, IFCINDEXEDPOLYGONALFACE, IFCTESSELLATEDITEM, IFCCYLINDRICALSURFACE, IFCTOROIDALSURFACE, IFCSPHERICALSURFACE, IFCPLANE, IFCELEMENTARYSURFACE, IFCRATIONALBSPLINESURFACEWITHKNOTS, IFCBSPLINESURFACEWITHKNOTS, IFCBSPLINESURFACE, IFCRECTANGULARTRIMMEDSURFACE, IFCCURVEBOUNDEDSURFACE, IFCCURVEBOUNDEDPLANE, IFCBOUNDEDSURFACE, IFCSURFACEOFREVOLUTION, IFCSURFACEOFLINEAREXTRUSION, IFCSWEPTSURFACE, IFCSURFACE, IFCFACETEDBREPWITHVOIDS, IFCFACETEDBREP, IFCADVANCEDBREPWITHVOIDS, IFCADVANCEDBREP, IFCMANIFOLDSOLIDBREP, IFCCSGSOLID, IFCSWEPTDISKSOLIDPOLYGONAL, IFCSWEPTDISKSOLID, IFCSURFACECURVESWEPTAREASOLID, IFCREVOLVEDAREASOLIDTAPERED, IFCREVOLVEDAREASOLID, IFCFIXEDREFERENCESWEPTAREASOLID, IFCEXTRUDEDAREASOLIDTAPERED, IFCEXTRUDEDAREASOLID, IFCSWEPTAREASOLID, IFCSOLIDMODEL, IFCSHELLBASEDSURFACEMODEL, IFCSECTIONEDSPINE, IFCCARTESIANPOINT, IFCPOINTONSURFACE, IFCPOINTONCURVE, IFCPOINT, IFCPLANARBOX, IFCPLANAREXTENT, IFCAXIS2PLACEMENT3D, IFCAXIS2PLACEMENT2D, IFCAXIS1PLACEMENT, IFCPLACEMENT, IFCLIGHTSOURCESPOT, IFCLIGHTSOURCEPOSITIONAL, IFCLIGHTSOURCEGONIOMETRIC, IFCLIGHTSOURCEDIRECTIONAL, IFCLIGHTSOURCEAMBIENT, IFCLIGHTSOURCE, IFCBOXEDHALFSPACE, IFCPOLYGONALBOUNDEDHALFSPACE, IFCHALFSPACESOLID, IFCGEOMETRICCURVESET, IFCGEOMETRICSET, IFCGEOMETRICREPRESENTATIONITEM, IFCPATH, IFCEDGELOOP, IFCVERTEXLOOP, IFCPOLYLOOP, IFCLOOP, IFCFACEOUTERBOUND, IFCFACEBOUND, IFCADVANCEDFACE, IFCFACESURFACE, IFCFACE, IFCSUBEDGE, IFCORIENTEDEDGE, IFCEDGECURVE, IFCEDGE, IFCCLOSEDSHELL, IFCOPENSHELL, IFCCONNECTEDFACESET, IFCVERTEXPOINT, IFCVERTEX, IFCTOPOLOGICALREPRESENTATIONITEM, IFCSTYLEDITEM], 2439245199: [IFCRESOURCECONSTRAINTRELATIONSHIP, IFCRESOURCEAPPROVALRELATIONSHIP, IFCPROPERTYDEPENDENCYRELATIONSHIP, IFCORGANIZATIONRELATIONSHIP, IFCMATERIALRELATIONSHIP, IFCEXTERNALREFERENCERELATIONSHIP, IFCDOCUMENTINFORMATIONRELATIONSHIP, IFCCURRENCYRELATIONSHIP, IFCAPPROVALRELATIONSHIP], 2341007311: [IFCRELDEFINESBYTYPE, IFCRELDEFINESBYTEMPLATE, IFCRELDEFINESBYPROPERTIES, IFCRELDEFINESBYOBJECT, IFCRELDEFINES, IFCRELAGGREGATES, IFCRELVOIDSELEMENT, IFCRELPROJECTSELEMENT, IFCRELNESTS, IFCRELDECOMPOSES, IFCRELDECLARES, IFCRELSPACEBOUNDARY2NDLEVEL, IFCRELSPACEBOUNDARY1STLEVEL, IFCRELSPACEBOUNDARY, IFCRELSERVICESBUILDINGS, IFCRELSEQUENCE, IFCRELREFERENCEDINSPATIALSTRUCTURE, IFCRELINTERFERESELEMENTS, IFCRELFLOWCONTROLELEMENTS, IFCRELFILLSELEMENT, IFCRELCOVERSSPACES, IFCRELCOVERSBLDGELEMENTS, IFCRELCONTAINEDINSPATIALSTRUCTURE, IFCRELCONNECTSWITHECCENTRICITY, IFCRELCONNECTSSTRUCTURALMEMBER, IFCRELCONNECTSSTRUCTURALACTIVITY, IFCRELCONNECTSPORTS, IFCRELCONNECTSPORTTOELEMENT, IFCRELCONNECTSWITHREALIZINGELEMENTS, IFCRELCONNECTSPATHELEMENTS, IFCRELCONNECTSELEMENTS, IFCRELCONNECTS, IFCRELASSOCIATESMATERIAL, IFCRELASSOCIATESLIBRARY, IFCRELASSOCIATESDOCUMENT, IFCRELASSOCIATESCONSTRAINT, IFCRELASSOCIATESCLASSIFICATION, IFCRELASSOCIATESAPPROVAL, IFCRELASSOCIATES, IFCRELASSIGNSTORESOURCE, IFCRELASSIGNSTOPRODUCT, IFCRELASSIGNSTOPROCESS, IFCRELASSIGNSTOGROUPBYFACTOR, IFCRELASSIGNSTOGROUP, IFCRELASSIGNSTOCONTROL, IFCRELASSIGNSTOACTOR, IFCRELASSIGNS, IFCRELATIONSHIP, IFCCOMPLEXPROPERTYTEMPLATE, IFCSIMPLEPROPERTYTEMPLATE, IFCPROPERTYTEMPLATE, IFCPROPERTYSETTEMPLATE, IFCPROPERTYTEMPLATEDEFINITION, IFCPROPERTYSET, IFCPERMEABLECOVERINGPROPERTIES, IFCDOORPANELPROPERTIES, IFCDOORLININGPROPERTIES, IFCWINDOWPANELPROPERTIES, IFCWINDOWLININGPROPERTIES, IFCREINFORCEMENTDEFINITIONPROPERTIES, IFCPREDEFINEDPROPERTYSET, IFCELEMENTQUANTITY, IFCQUANTITYSET, IFCPROPERTYSETDEFINITION, IFCPROPERTYDEFINITION, IFCASSET, IFCSTRUCTURALANALYSISMODEL, IFCDISTRIBUTIONCIRCUIT, IFCDISTRIBUTIONSYSTEM, IFCBUILDINGSYSTEM, IFCZONE, IFCSYSTEM, IFCSTRUCTURALRESULTGROUP, IFCSTRUCTURALLOADCASE, IFCSTRUCTURALLOADGROUP, IFCINVENTORY, IFCGROUP, IFCACTIONREQUEST, IFCWORKSCHEDULE, IFCWORKPLAN, IFCWORKCONTROL, IFCWORKCALENDAR, IFCPROJECTORDER, IFCPERMIT, IFCPERFORMANCEHISTORY, IFCCOSTSCHEDULE, IFCCOSTITEM, IFCCONTROL, IFCOCCUPANT, IFCACTOR, IFCCONSTRUCTIONPRODUCTRESOURCE, IFCCONSTRUCTIONMATERIALRESOURCE, IFCCONSTRUCTIONEQUIPMENTRESOURCE, IFCSUBCONTRACTRESOURCE, IFCLABORRESOURCE, IFCCREWRESOURCE, IFCCONSTRUCTIONRESOURCE, IFCRESOURCE, IFCDISTRIBUTIONPORT, IFCPORT, IFCGRID, IFCCONTROLLER, IFCALARM, IFCACTUATOR, IFCUNITARYCONTROLELEMENT, IFCSENSOR, IFCPROTECTIVEDEVICETRIPPINGUNIT, IFCFLOWINSTRUMENT, IFCDISTRIBUTIONCONTROLELEMENT, IFCDISTRIBUTIONCHAMBERELEMENT, IFCFILTER, IFCDUCTSILENCER, IFCINTERCEPTOR, IFCFLOWTREATMENTDEVICE, IFCFIRESUPPRESSIONTERMINAL, IFCELECTRICAPPLIANCE, IFCCOMMUNICATIONSAPPLIANCE, IFCAUDIOVISUALAPPLIANCE, IFCAIRTERMINAL, IFCWASTETERMINAL, IFCSTACKTERMINAL, IFCSPACEHEATER, IFCSANITARYTERMINAL, IFCOUTLET, IFCMEDICALDEVICE, IFCLIGHTFIXTURE, IFCLAMP, IFCFLOWTERMINAL, IFCELECTRICFLOWSTORAGEDEVICE, IFCTANK, IFCFLOWSTORAGEDEVICE, IFCDUCTSEGMENT, IFCCABLESEGMENT, IFCCABLECARRIERSEGMENT, IFCPIPESEGMENT, IFCFLOWSEGMENT, IFCFAN, IFCCOMPRESSOR, IFCPUMP, IFCFLOWMOVINGDEVICE, IFCDUCTFITTING, IFCCABLEFITTING, IFCCABLECARRIERFITTING, IFCPIPEFITTING, IFCJUNCTIONBOX, IFCFLOWFITTING, IFCELECTRICTIMECONTROL, IFCELECTRICDISTRIBUTIONBOARD, IFCDAMPER, IFCAIRTERMINALBOX, IFCVALVE, IFCSWITCHINGDEVICE, IFCPROTECTIVEDEVICE, IFCFLOWMETER, IFCFLOWCONTROLLER, IFCELECTRICMOTOR, IFCELECTRICGENERATOR, IFCCOOLINGTOWER, IFCCOOLEDBEAM, IFCCONDENSER, IFCCOIL, IFCCHILLER, IFCBURNER, IFCBOILER, IFCAIRTOAIRHEATRECOVERY, IFCUNITARYEQUIPMENT, IFCTUBEBUNDLE, IFCTRANSFORMER, IFCSOLARDEVICE, IFCMOTORCONNECTION, IFCHUMIDIFIER, IFCHEATEXCHANGER, IFCEVAPORATOR, IFCEVAPORATIVECOOLER, IFCENGINE, IFCENERGYCONVERSIONDEVICE, IFCDISTRIBUTIONFLOWELEMENT, IFCDISTRIBUTIONELEMENT, IFCCIVILELEMENT, IFCBEAMSTANDARDCASE, IFCBEAM, IFCWINDOWSTANDARDCASE, IFCWINDOW, IFCWALLSTANDARDCASE, IFCWALLELEMENTEDCASE, IFCWALL, IFCSTAIRFLIGHT, IFCSTAIR, IFCSLABSTANDARDCASE, IFCSLABELEMENTEDCASE, IFCSLAB, IFCSHADINGDEVICE, IFCROOF, IFCRAMPFLIGHT, IFCRAMP, IFCRAILING, IFCPLATESTANDARDCASE, IFCPLATE, IFCPILE, IFCMEMBERSTANDARDCASE, IFCMEMBER, IFCFOOTING, IFCDOORSTANDARDCASE, IFCDOOR, IFCCURTAINWALL, IFCCOVERING, IFCCOLUMNSTANDARDCASE, IFCCOLUMN, IFCCHIMNEY, IFCBUILDINGELEMENTPROXY, IFCBUILDINGELEMENT, IFCVIRTUALELEMENT, IFCTRANSPORTELEMENT, IFCGEOGRAPHICELEMENT, IFCSYSTEMFURNITUREELEMENT, IFCFURNITURE, IFCFURNISHINGELEMENT, IFCSURFACEFEATURE, IFCVOIDINGFEATURE, IFCOPENINGSTANDARDCASE, IFCOPENINGELEMENT, IFCFEATUREELEMENTSUBTRACTION, IFCPROJECTIONELEMENT, IFCFEATUREELEMENTADDITION, IFCFEATUREELEMENT, IFCDISCRETEACCESSORY, IFCBUILDINGELEMENTPART, IFCVIBRATIONISOLATOR, IFCREINFORCINGBAR, IFCTENDONANCHOR, IFCTENDON, IFCREINFORCINGMESH, IFCREINFORCINGELEMENT, IFCMECHANICALFASTENER, IFCFASTENER, IFCELEMENTCOMPONENT, IFCELEMENTASSEMBLY, IFCELEMENT, IFCANNOTATION, IFCSTRUCTURALSURFACECONNECTION, IFCSTRUCTURALPOINTCONNECTION, IFCSTRUCTURALCURVECONNECTION, IFCSTRUCTURALCONNECTION, IFCSTRUCTURALCURVEMEMBERVARYING, IFCSTRUCTURALCURVEMEMBER, IFCSTRUCTURALSURFACEMEMBERVARYING, IFCSTRUCTURALSURFACEMEMBER, IFCSTRUCTURALMEMBER, IFCSTRUCTURALITEM, IFCSTRUCTURALPLANARACTION, IFCSTRUCTURALSURFACEACTION, IFCSTRUCTURALPOINTACTION, IFCSTRUCTURALLINEARACTION, IFCSTRUCTURALCURVEACTION, IFCSTRUCTURALACTION, IFCSTRUCTURALPOINTREACTION, IFCSTRUCTURALCURVEREACTION, IFCSTRUCTURALSURFACEREACTION, IFCSTRUCTURALREACTION, IFCSTRUCTURALACTIVITY, IFCEXTERNALSPATIALELEMENT, IFCEXTERNALSPATIALSTRUCTUREELEMENT, IFCSPATIALZONE, IFCSPACE, IFCSITE, IFCBUILDINGSTOREY, IFCBUILDING, IFCSPATIALSTRUCTUREELEMENT, IFCSPATIALELEMENT, IFCPROXY, IFCPRODUCT, IFCPROCEDURE, IFCEVENT, IFCTASK, IFCPROCESS, IFCOBJECT, IFCPROJECTLIBRARY, IFCPROJECT, IFCCONTEXT, IFCCONSTRUCTIONPRODUCTRESOURCETYPE, IFCCONSTRUCTIONMATERIALRESOURCETYPE, IFCCONSTRUCTIONEQUIPMENTRESOURCETYPE, IFCSUBCONTRACTRESOURCETYPE, IFCLABORRESOURCETYPE, IFCCREWRESOURCETYPE, IFCCONSTRUCTIONRESOURCETYPE, IFCTYPERESOURCE, IFCSPATIALZONETYPE, IFCSPACETYPE, IFCSPATIALSTRUCTUREELEMENTTYPE, IFCSPATIALELEMENTTYPE, IFCDISCRETEACCESSORYTYPE, IFCBUILDINGELEMENTPARTTYPE, IFCVIBRATIONISOLATORTYPE, IFCREINFORCINGBARTYPE, IFCTENDONTYPE, IFCTENDONANCHORTYPE, IFCREINFORCINGMESHTYPE, IFCREINFORCINGELEMENTTYPE, IFCMECHANICALFASTENERTYPE, IFCFASTENERTYPE, IFCELEMENTCOMPONENTTYPE, IFCELEMENTASSEMBLYTYPE, IFCCONTROLLERTYPE, IFCALARMTYPE, IFCACTUATORTYPE, IFCUNITARYCONTROLELEMENTTYPE, IFCSENSORTYPE, IFCPROTECTIVEDEVICETRIPPINGUNITTYPE, IFCFLOWINSTRUMENTTYPE, IFCDISTRIBUTIONCONTROLELEMENTTYPE, IFCDISTRIBUTIONCHAMBERELEMENTTYPE, IFCFILTERTYPE, IFCDUCTSILENCERTYPE, IFCINTERCEPTORTYPE, IFCFLOWTREATMENTDEVICETYPE, IFCFIRESUPPRESSIONTERMINALTYPE, IFCELECTRICAPPLIANCETYPE, IFCCOMMUNICATIONSAPPLIANCETYPE, IFCAUDIOVISUALAPPLIANCETYPE, IFCAIRTERMINALTYPE, IFCWASTETERMINALTYPE, IFCSTACKTERMINALTYPE, IFCSPACEHEATERTYPE, IFCSANITARYTERMINALTYPE, IFCOUTLETTYPE, IFCMEDICALDEVICETYPE, IFCLIGHTFIXTURETYPE, IFCLAMPTYPE, IFCFLOWTERMINALTYPE, IFCELECTRICFLOWSTORAGEDEVICETYPE, IFCTANKTYPE, IFCFLOWSTORAGEDEVICETYPE, IFCDUCTSEGMENTTYPE, IFCCABLESEGMENTTYPE, IFCCABLECARRIERSEGMENTTYPE, IFCPIPESEGMENTTYPE, IFCFLOWSEGMENTTYPE, IFCFANTYPE, IFCCOMPRESSORTYPE, IFCPUMPTYPE, IFCFLOWMOVINGDEVICETYPE, IFCDUCTFITTINGTYPE, IFCCABLEFITTINGTYPE, IFCCABLECARRIERFITTINGTYPE, IFCPIPEFITTINGTYPE, IFCJUNCTIONBOXTYPE, IFCFLOWFITTINGTYPE, IFCELECTRICTIMECONTROLTYPE, IFCELECTRICDISTRIBUTIONBOARDTYPE, IFCDAMPERTYPE, IFCAIRTERMINALBOXTYPE, IFCVALVETYPE, IFCSWITCHINGDEVICETYPE, IFCPROTECTIVEDEVICETYPE, IFCFLOWMETERTYPE, IFCFLOWCONTROLLERTYPE, IFCELECTRICMOTORTYPE, IFCELECTRICGENERATORTYPE, IFCCOOLINGTOWERTYPE, IFCCOOLEDBEAMTYPE, IFCCONDENSERTYPE, IFCCOILTYPE, IFCCHILLERTYPE, IFCBURNERTYPE, IFCBOILERTYPE, IFCAIRTOAIRHEATRECOVERYTYPE, IFCUNITARYEQUIPMENTTYPE, IFCTUBEBUNDLETYPE, IFCTRANSFORMERTYPE, IFCSOLARDEVICETYPE, IFCMOTORCONNECTIONTYPE, IFCHUMIDIFIERTYPE, IFCHEATEXCHANGERTYPE, IFCEVAPORATORTYPE, IFCEVAPORATIVECOOLERTYPE, IFCENGINETYPE, IFCENERGYCONVERSIONDEVICETYPE, IFCDISTRIBUTIONFLOWELEMENTTYPE, IFCDISTRIBUTIONELEMENTTYPE, IFCCIVILELEMENTTYPE, IFCBUILDINGELEMENTPROXYTYPE, IFCBEAMTYPE, IFCWINDOWTYPE, IFCWALLTYPE, IFCSTAIRTYPE, IFCSTAIRFLIGHTTYPE, IFCSLABTYPE, IFCSHADINGDEVICETYPE, IFCROOFTYPE, IFCRAMPTYPE, IFCRAMPFLIGHTTYPE, IFCRAILINGTYPE, IFCPLATETYPE, IFCPILETYPE, IFCMEMBERTYPE, IFCFOOTINGTYPE, IFCDOORTYPE, IFCCURTAINWALLTYPE, IFCCOVERINGTYPE, IFCCOLUMNTYPE, IFCCHIMNEYTYPE, IFCBUILDINGELEMENTTYPE, IFCTRANSPORTELEMENTTYPE, IFCGEOGRAPHICELEMENTTYPE, IFCSYSTEMFURNITUREELEMENTTYPE, IFCFURNITURETYPE, IFCFURNISHINGELEMENTTYPE, IFCELEMENTTYPE, IFCDOORSTYLE, IFCWINDOWSTYLE, IFCTYPEPRODUCT, IFCTASKTYPE, IFCPROCEDURETYPE, IFCEVENTTYPE, IFCTYPEPROCESS, IFCTYPEOBJECT, IFCOBJECTDEFINITION], 1054537805: [IFCRESOURCETIME, IFCLAGTIME, IFCEVENTTIME, IFCWORKTIME, IFCTASKTIMERECURRING, IFCTASKTIME], 3982875396: [IFCTOPOLOGYREPRESENTATION, IFCSHAPEREPRESENTATION], 2273995522: [IFCSLIPPAGECONNECTIONCONDITION, IFCFAILURECONNECTIONCONDITION], 2162789131: [IFCSURFACEREINFORCEMENTAREA, IFCSTRUCTURALLOADSINGLEFORCEWARPING, IFCSTRUCTURALLOADSINGLEFORCE, IFCSTRUCTURALLOADSINGLEDISPLACEMENTDISTORTION, IFCSTRUCTURALLOADSINGLEDISPLACEMENT, IFCSTRUCTURALLOADPLANARFORCE, IFCSTRUCTURALLOADLINEARFORCE, IFCSTRUCTURALLOADTEMPERATURE, IFCSTRUCTURALLOADSTATIC, IFCSTRUCTURALLOADORRESULT, IFCSTRUCTURALLOADCONFIGURATION], 609421318: [IFCSURFACEREINFORCEMENTAREA, IFCSTRUCTURALLOADSINGLEFORCEWARPING, IFCSTRUCTURALLOADSINGLEFORCE, IFCSTRUCTURALLOADSINGLEDISPLACEMENTDISTORTION, IFCSTRUCTURALLOADSINGLEDISPLACEMENT, IFCSTRUCTURALLOADPLANARFORCE, IFCSTRUCTURALLOADLINEARFORCE, IFCSTRUCTURALLOADTEMPERATURE, IFCSTRUCTURALLOADSTATIC], 2525727697: [IFCSTRUCTURALLOADSINGLEFORCEWARPING, IFCSTRUCTURALLOADSINGLEFORCE, IFCSTRUCTURALLOADSINGLEDISPLACEMENTDISTORTION, IFCSTRUCTURALLOADSINGLEDISPLACEMENT, IFCSTRUCTURALLOADPLANARFORCE, IFCSTRUCTURALLOADLINEARFORCE, IFCSTRUCTURALLOADTEMPERATURE], 2830218821: [IFCSTYLEDREPRESENTATION], 846575682: [IFCSURFACESTYLERENDERING], 626085974: [IFCPIXELTEXTURE, IFCIMAGETEXTURE, IFCBLOBTEXTURE], 1549132990: [IFCTASKTIMERECURRING], 280115917: [IFCINDEXEDTRIANGLETEXTUREMAP, IFCINDEXEDTEXTUREMAP, IFCTEXTUREMAP, IFCTEXTURECOORDINATEGENERATOR], 3101149627: [IFCREGULARTIMESERIES, IFCIRREGULARTIMESERIES], 1377556343: [IFCPATH, IFCEDGELOOP, IFCVERTEXLOOP, IFCPOLYLOOP, IFCLOOP, IFCFACEOUTERBOUND, IFCFACEBOUND, IFCADVANCEDFACE, IFCFACESURFACE, IFCFACE, IFCSUBEDGE, IFCORIENTEDEDGE, IFCEDGECURVE, IFCEDGE, IFCCLOSEDSHELL, IFCOPENSHELL, IFCCONNECTEDFACESET, IFCVERTEXPOINT, IFCVERTEX], 2799835756: [IFCVERTEXPOINT], 3798115385: [IFCARBITRARYPROFILEDEFWITHVOIDS], 1310608509: [IFCCENTERLINEPROFILEDEF], 3264961684: [IFCCOLOURRGB], 370225590: [IFCCLOSEDSHELL, IFCOPENSHELL], 2889183280: [IFCCONVERSIONBASEDUNITWITHOFFSET], 3632507154: [IFCMIRROREDPROFILEDEF], 3900360178: [IFCSUBEDGE, IFCORIENTEDEDGE, IFCEDGECURVE], 297599258: [IFCPROFILEPROPERTIES, IFCMATERIALPROPERTIES], 2556980723: [IFCADVANCEDFACE, IFCFACESURFACE], 1809719519: [IFCFACEOUTERBOUND], 3008276851: [IFCADVANCEDFACE], 3448662350: [IFCGEOMETRICREPRESENTATIONSUBCONTEXT], 2453401579: [IFCFILLAREASTYLETILES, IFCFILLAREASTYLEHATCHING, IFCFACEBASEDSURFACEMODEL, IFCDIRECTION, IFCCIRCLE, IFCELLIPSE, IFCCONIC, IFCRATIONALBSPLINECURVEWITHKNOTS, IFCBSPLINECURVEWITHKNOTS, IFCBSPLINECURVE, IFCTRIMMEDCURVE, IFCPOLYLINE, IFCINDEXEDPOLYCURVE, IFCOUTERBOUNDARYCURVE, IFCBOUNDARYCURVE, IFCCOMPOSITECURVEONSURFACE, IFCCOMPOSITECURVE, IFCBOUNDEDCURVE, IFCSEAMCURVE, IFCINTERSECTIONCURVE, IFCSURFACECURVE, IFCPCURVE, IFCOFFSETCURVE3D, IFCOFFSETCURVE2D, IFCLINE, IFCCURVE, IFCBLOCK, IFCSPHERE, IFCRIGHTCIRCULARCYLINDER, IFCRIGHTCIRCULARCONE, IFCRECTANGULARPYRAMID, IFCCSGPRIMITIVE3D, IFCREPARAMETRISEDCOMPOSITECURVESEGMENT, IFCCOMPOSITECURVESEGMENT, IFCCARTESIANTRANSFORMATIONOPERATOR3DNONUNIFORM, IFCCARTESIANTRANSFORMATIONOPERATOR3D, IFCCARTESIANTRANSFORMATIONOPERATOR2DNONUNIFORM, IFCCARTESIANTRANSFORMATIONOPERATOR2D, IFCCARTESIANTRANSFORMATIONOPERATOR, IFCCARTESIANPOINTLIST3D, IFCCARTESIANPOINTLIST2D, IFCCARTESIANPOINTLIST, IFCBOUNDINGBOX, IFCBOOLEANCLIPPINGRESULT, IFCBOOLEANRESULT, IFCANNOTATIONFILLAREA, IFCVECTOR, IFCTEXTLITERALWITHEXTENT, IFCTEXTLITERAL, IFCPOLYGONALFACESET, IFCTRIANGULATEDFACESET, IFCTESSELLATEDFACESET, IFCINDEXEDPOLYGONALFACEWITHVOIDS, IFCINDEXEDPOLYGONALFACE, IFCTESSELLATEDITEM, IFCCYLINDRICALSURFACE, IFCTOROIDALSURFACE, IFCSPHERICALSURFACE, IFCPLANE, IFCELEMENTARYSURFACE, IFCRATIONALBSPLINESURFACEWITHKNOTS, IFCBSPLINESURFACEWITHKNOTS, IFCBSPLINESURFACE, IFCRECTANGULARTRIMMEDSURFACE, IFCCURVEBOUNDEDSURFACE, IFCCURVEBOUNDEDPLANE, IFCBOUNDEDSURFACE, IFCSURFACEOFREVOLUTION, IFCSURFACEOFLINEAREXTRUSION, IFCSWEPTSURFACE, IFCSURFACE, IFCFACETEDBREPWITHVOIDS, IFCFACETEDBREP, IFCADVANCEDBREPWITHVOIDS, IFCADVANCEDBREP, IFCMANIFOLDSOLIDBREP, IFCCSGSOLID, IFCSWEPTDISKSOLIDPOLYGONAL, IFCSWEPTDISKSOLID, IFCSURFACECURVESWEPTAREASOLID, IFCREVOLVEDAREASOLIDTAPERED, IFCREVOLVEDAREASOLID, IFCFIXEDREFERENCESWEPTAREASOLID, IFCEXTRUDEDAREASOLIDTAPERED, IFCEXTRUDEDAREASOLID, IFCSWEPTAREASOLID, IFCSOLIDMODEL, IFCSHELLBASEDSURFACEMODEL, IFCSECTIONEDSPINE, IFCCARTESIANPOINT, IFCPOINTONSURFACE, IFCPOINTONCURVE, IFCPOINT, IFCPLANARBOX, IFCPLANAREXTENT, IFCAXIS2PLACEMENT3D, IFCAXIS2PLACEMENT2D, IFCAXIS1PLACEMENT, IFCPLACEMENT, IFCLIGHTSOURCESPOT, IFCLIGHTSOURCEPOSITIONAL, IFCLIGHTSOURCEGONIOMETRIC, IFCLIGHTSOURCEDIRECTIONAL, IFCLIGHTSOURCEAMBIENT, IFCLIGHTSOURCE, IFCBOXEDHALFSPACE, IFCPOLYGONALBOUNDEDHALFSPACE, IFCHALFSPACESOLID, IFCGEOMETRICCURVESET, IFCGEOMETRICSET], 3590301190: [IFCGEOMETRICCURVESET], 812098782: [IFCBOXEDHALFSPACE, IFCPOLYGONALBOUNDEDHALFSPACE], 1437953363: [IFCINDEXEDTRIANGLETEXTUREMAP], 1402838566: [IFCLIGHTSOURCESPOT, IFCLIGHTSOURCEPOSITIONAL, IFCLIGHTSOURCEGONIOMETRIC, IFCLIGHTSOURCEDIRECTIONAL, IFCLIGHTSOURCEAMBIENT], 1520743889: [IFCLIGHTSOURCESPOT], 1008929658: [IFCEDGELOOP, IFCVERTEXLOOP, IFCPOLYLOOP], 3079605661: [IFCMATERIALPROFILESETUSAGETAPERING], 219451334: [IFCASSET, IFCSTRUCTURALANALYSISMODEL, IFCDISTRIBUTIONCIRCUIT, IFCDISTRIBUTIONSYSTEM, IFCBUILDINGSYSTEM, IFCZONE, IFCSYSTEM, IFCSTRUCTURALRESULTGROUP, IFCSTRUCTURALLOADCASE, IFCSTRUCTURALLOADGROUP, IFCINVENTORY, IFCGROUP, IFCACTIONREQUEST, IFCWORKSCHEDULE, IFCWORKPLAN, IFCWORKCONTROL, IFCWORKCALENDAR, IFCPROJECTORDER, IFCPERMIT, IFCPERFORMANCEHISTORY, IFCCOSTSCHEDULE, IFCCOSTITEM, IFCCONTROL, IFCOCCUPANT, IFCACTOR, IFCCONSTRUCTIONPRODUCTRESOURCE, IFCCONSTRUCTIONMATERIALRESOURCE, IFCCONSTRUCTIONEQUIPMENTRESOURCE, IFCSUBCONTRACTRESOURCE, IFCLABORRESOURCE, IFCCREWRESOURCE, IFCCONSTRUCTIONRESOURCE, IFCRESOURCE, IFCDISTRIBUTIONPORT, IFCPORT, IFCGRID, IFCCONTROLLER, IFCALARM, IFCACTUATOR, IFCUNITARYCONTROLELEMENT, IFCSENSOR, IFCPROTECTIVEDEVICETRIPPINGUNIT, IFCFLOWINSTRUMENT, IFCDISTRIBUTIONCONTROLELEMENT, IFCDISTRIBUTIONCHAMBERELEMENT, IFCFILTER, IFCDUCTSILENCER, IFCINTERCEPTOR, IFCFLOWTREATMENTDEVICE, IFCFIRESUPPRESSIONTERMINAL, IFCELECTRICAPPLIANCE, IFCCOMMUNICATIONSAPPLIANCE, IFCAUDIOVISUALAPPLIANCE, IFCAIRTERMINAL, IFCWASTETERMINAL, IFCSTACKTERMINAL, IFCSPACEHEATER, IFCSANITARYTERMINAL, IFCOUTLET, IFCMEDICALDEVICE, IFCLIGHTFIXTURE, IFCLAMP, IFCFLOWTERMINAL, IFCELECTRICFLOWSTORAGEDEVICE, IFCTANK, IFCFLOWSTORAGEDEVICE, IFCDUCTSEGMENT, IFCCABLESEGMENT, IFCCABLECARRIERSEGMENT, IFCPIPESEGMENT, IFCFLOWSEGMENT, IFCFAN, IFCCOMPRESSOR, IFCPUMP, IFCFLOWMOVINGDEVICE, IFCDUCTFITTING, IFCCABLEFITTING, IFCCABLECARRIERFITTING, IFCPIPEFITTING, IFCJUNCTIONBOX, IFCFLOWFITTING, IFCELECTRICTIMECONTROL, IFCELECTRICDISTRIBUTIONBOARD, IFCDAMPER, IFCAIRTERMINALBOX, IFCVALVE, IFCSWITCHINGDEVICE, IFCPROTECTIVEDEVICE, IFCFLOWMETER, IFCFLOWCONTROLLER, IFCELECTRICMOTOR, IFCELECTRICGENERATOR, IFCCOOLINGTOWER, IFCCOOLEDBEAM, IFCCONDENSER, IFCCOIL, IFCCHILLER, IFCBURNER, IFCBOILER, IFCAIRTOAIRHEATRECOVERY, IFCUNITARYEQUIPMENT, IFCTUBEBUNDLE, IFCTRANSFORMER, IFCSOLARDEVICE, IFCMOTORCONNECTION, IFCHUMIDIFIER, IFCHEATEXCHANGER, IFCEVAPORATOR, IFCEVAPORATIVECOOLER, IFCENGINE, IFCENERGYCONVERSIONDEVICE, IFCDISTRIBUTIONFLOWELEMENT, IFCDISTRIBUTIONELEMENT, IFCCIVILELEMENT, IFCBEAMSTANDARDCASE, IFCBEAM, IFCWINDOWSTANDARDCASE, IFCWINDOW, IFCWALLSTANDARDCASE, IFCWALLELEMENTEDCASE, IFCWALL, IFCSTAIRFLIGHT, IFCSTAIR, IFCSLABSTANDARDCASE, IFCSLABELEMENTEDCASE, IFCSLAB, IFCSHADINGDEVICE, IFCROOF, IFCRAMPFLIGHT, IFCRAMP, IFCRAILING, IFCPLATESTANDARDCASE, IFCPLATE, IFCPILE, IFCMEMBERSTANDARDCASE, IFCMEMBER, IFCFOOTING, IFCDOORSTANDARDCASE, IFCDOOR, IFCCURTAINWALL, IFCCOVERING, IFCCOLUMNSTANDARDCASE, IFCCOLUMN, IFCCHIMNEY, IFCBUILDINGELEMENTPROXY, IFCBUILDINGELEMENT, IFCVIRTUALELEMENT, IFCTRANSPORTELEMENT, IFCGEOGRAPHICELEMENT, IFCSYSTEMFURNITUREELEMENT, IFCFURNITURE, IFCFURNISHINGELEMENT, IFCSURFACEFEATURE, IFCVOIDINGFEATURE, IFCOPENINGSTANDARDCASE, IFCOPENINGELEMENT, IFCFEATUREELEMENTSUBTRACTION, IFCPROJECTIONELEMENT, IFCFEATUREELEMENTADDITION, IFCFEATUREELEMENT, IFCDISCRETEACCESSORY, IFCBUILDINGELEMENTPART, IFCVIBRATIONISOLATOR, IFCREINFORCINGBAR, IFCTENDONANCHOR, IFCTENDON, IFCREINFORCINGMESH, IFCREINFORCINGELEMENT, IFCMECHANICALFASTENER, IFCFASTENER, IFCELEMENTCOMPONENT, IFCELEMENTASSEMBLY, IFCELEMENT, IFCANNOTATION, IFCSTRUCTURALSURFACECONNECTION, IFCSTRUCTURALPOINTCONNECTION, IFCSTRUCTURALCURVECONNECTION, IFCSTRUCTURALCONNECTION, IFCSTRUCTURALCURVEMEMBERVARYING, IFCSTRUCTURALCURVEMEMBER, IFCSTRUCTURALSURFACEMEMBERVARYING, IFCSTRUCTURALSURFACEMEMBER, IFCSTRUCTURALMEMBER, IFCSTRUCTURALITEM, IFCSTRUCTURALPLANARACTION, IFCSTRUCTURALSURFACEACTION, IFCSTRUCTURALPOINTACTION, IFCSTRUCTURALLINEARACTION, IFCSTRUCTURALCURVEACTION, IFCSTRUCTURALACTION, IFCSTRUCTURALPOINTREACTION, IFCSTRUCTURALCURVEREACTION, IFCSTRUCTURALSURFACEREACTION, IFCSTRUCTURALREACTION, IFCSTRUCTURALACTIVITY, IFCEXTERNALSPATIALELEMENT, IFCEXTERNALSPATIALSTRUCTUREELEMENT, IFCSPATIALZONE, IFCSPACE, IFCSITE, IFCBUILDINGSTOREY, IFCBUILDING, IFCSPATIALSTRUCTUREELEMENT, IFCSPATIALELEMENT, IFCPROXY, IFCPRODUCT, IFCPROCEDURE, IFCEVENT, IFCTASK, IFCPROCESS, IFCOBJECT, IFCPROJECTLIBRARY, IFCPROJECT, IFCCONTEXT, IFCCONSTRUCTIONPRODUCTRESOURCETYPE, IFCCONSTRUCTIONMATERIALRESOURCETYPE, IFCCONSTRUCTIONEQUIPMENTRESOURCETYPE, IFCSUBCONTRACTRESOURCETYPE, IFCLABORRESOURCETYPE, IFCCREWRESOURCETYPE, IFCCONSTRUCTIONRESOURCETYPE, IFCTYPERESOURCE, IFCSPATIALZONETYPE, IFCSPACETYPE, IFCSPATIALSTRUCTUREELEMENTTYPE, IFCSPATIALELEMENTTYPE, IFCDISCRETEACCESSORYTYPE, IFCBUILDINGELEMENTPARTTYPE, IFCVIBRATIONISOLATORTYPE, IFCREINFORCINGBARTYPE, IFCTENDONTYPE, IFCTENDONANCHORTYPE, IFCREINFORCINGMESHTYPE, IFCREINFORCINGELEMENTTYPE, IFCMECHANICALFASTENERTYPE, IFCFASTENERTYPE, IFCELEMENTCOMPONENTTYPE, IFCELEMENTASSEMBLYTYPE, IFCCONTROLLERTYPE, IFCALARMTYPE, IFCACTUATORTYPE, IFCUNITARYCONTROLELEMENTTYPE, IFCSENSORTYPE, IFCPROTECTIVEDEVICETRIPPINGUNITTYPE, IFCFLOWINSTRUMENTTYPE, IFCDISTRIBUTIONCONTROLELEMENTTYPE, IFCDISTRIBUTIONCHAMBERELEMENTTYPE, IFCFILTERTYPE, IFCDUCTSILENCERTYPE, IFCINTERCEPTORTYPE, IFCFLOWTREATMENTDEVICETYPE, IFCFIRESUPPRESSIONTERMINALTYPE, IFCELECTRICAPPLIANCETYPE, IFCCOMMUNICATIONSAPPLIANCETYPE, IFCAUDIOVISUALAPPLIANCETYPE, IFCAIRTERMINALTYPE, IFCWASTETERMINALTYPE, IFCSTACKTERMINALTYPE, IFCSPACEHEATERTYPE, IFCSANITARYTERMINALTYPE, IFCOUTLETTYPE, IFCMEDICALDEVICETYPE, IFCLIGHTFIXTURETYPE, IFCLAMPTYPE, IFCFLOWTERMINALTYPE, IFCELECTRICFLOWSTORAGEDEVICETYPE, IFCTANKTYPE, IFCFLOWSTORAGEDEVICETYPE, IFCDUCTSEGMENTTYPE, IFCCABLESEGMENTTYPE, IFCCABLECARRIERSEGMENTTYPE, IFCPIPESEGMENTTYPE, IFCFLOWSEGMENTTYPE, IFCFANTYPE, IFCCOMPRESSORTYPE, IFCPUMPTYPE, IFCFLOWMOVINGDEVICETYPE, IFCDUCTFITTINGTYPE, IFCCABLEFITTINGTYPE, IFCCABLECARRIERFITTINGTYPE, IFCPIPEFITTINGTYPE, IFCJUNCTIONBOXTYPE, IFCFLOWFITTINGTYPE, IFCELECTRICTIMECONTROLTYPE, IFCELECTRICDISTRIBUTIONBOARDTYPE, IFCDAMPERTYPE, IFCAIRTERMINALBOXTYPE, IFCVALVETYPE, IFCSWITCHINGDEVICETYPE, IFCPROTECTIVEDEVICETYPE, IFCFLOWMETERTYPE, IFCFLOWCONTROLLERTYPE, IFCELECTRICMOTORTYPE, IFCELECTRICGENERATORTYPE, IFCCOOLINGTOWERTYPE, IFCCOOLEDBEAMTYPE, IFCCONDENSERTYPE, IFCCOILTYPE, IFCCHILLERTYPE, IFCBURNERTYPE, IFCBOILERTYPE, IFCAIRTOAIRHEATRECOVERYTYPE, IFCUNITARYEQUIPMENTTYPE, IFCTUBEBUNDLETYPE, IFCTRANSFORMERTYPE, IFCSOLARDEVICETYPE, IFCMOTORCONNECTIONTYPE, IFCHUMIDIFIERTYPE, IFCHEATEXCHANGERTYPE, IFCEVAPORATORTYPE, IFCEVAPORATIVECOOLERTYPE, IFCENGINETYPE, IFCENERGYCONVERSIONDEVICETYPE, IFCDISTRIBUTIONFLOWELEMENTTYPE, IFCDISTRIBUTIONELEMENTTYPE, IFCCIVILELEMENTTYPE, IFCBUILDINGELEMENTPROXYTYPE, IFCBEAMTYPE, IFCWINDOWTYPE, IFCWALLTYPE, IFCSTAIRTYPE, IFCSTAIRFLIGHTTYPE, IFCSLABTYPE, IFCSHADINGDEVICETYPE, IFCROOFTYPE, IFCRAMPTYPE, IFCRAMPFLIGHTTYPE, IFCRAILINGTYPE, IFCPLATETYPE, IFCPILETYPE, IFCMEMBERTYPE, IFCFOOTINGTYPE, IFCDOORTYPE, IFCCURTAINWALLTYPE, IFCCOVERINGTYPE, IFCCOLUMNTYPE, IFCCHIMNEYTYPE, IFCBUILDINGELEMENTTYPE, IFCTRANSPORTELEMENTTYPE, IFCGEOGRAPHICELEMENTTYPE, IFCSYSTEMFURNITUREELEMENTTYPE, IFCFURNITURETYPE, IFCFURNISHINGELEMENTTYPE, IFCELEMENTTYPE, IFCDOORSTYLE, IFCWINDOWSTYLE, IFCTYPEPRODUCT, IFCTASKTYPE, IFCPROCEDURETYPE, IFCEVENTTYPE, IFCTYPEPROCESS, IFCTYPEOBJECT], 2529465313: [IFCLSHAPEPROFILEDEF, IFCISHAPEPROFILEDEF, IFCELLIPSEPROFILEDEF, IFCCIRCLEHOLLOWPROFILEDEF, IFCCIRCLEPROFILEDEF, IFCCSHAPEPROFILEDEF, IFCASYMMETRICISHAPEPROFILEDEF, IFCZSHAPEPROFILEDEF, IFCUSHAPEPROFILEDEF, IFCTRAPEZIUMPROFILEDEF, IFCTSHAPEPROFILEDEF, IFCRECTANGLEHOLLOWPROFILEDEF, IFCROUNDEDRECTANGLEPROFILEDEF, IFCRECTANGLEPROFILEDEF], 2004835150: [IFCAXIS2PLACEMENT3D, IFCAXIS2PLACEMENT2D, IFCAXIS1PLACEMENT], 1663979128: [IFCPLANARBOX], 2067069095: [IFCCARTESIANPOINT, IFCPOINTONSURFACE, IFCPOINTONCURVE], 3727388367: [IFCDRAUGHTINGPREDEFINEDCURVEFONT, IFCPREDEFINEDCURVEFONT, IFCDRAUGHTINGPREDEFINEDCOLOUR, IFCPREDEFINEDCOLOUR, IFCTEXTSTYLEFONTMODEL, IFCPREDEFINEDTEXTFONT], 3778827333: [IFCSECTIONREINFORCEMENTPROPERTIES, IFCSECTIONPROPERTIES, IFCREINFORCEMENTBARPROPERTIES], 1775413392: [IFCTEXTSTYLEFONTMODEL], 2598011224: [IFCCOMPLEXPROPERTY, IFCPROPERTYTABLEVALUE, IFCPROPERTYSINGLEVALUE, IFCPROPERTYREFERENCEVALUE, IFCPROPERTYLISTVALUE, IFCPROPERTYENUMERATEDVALUE, IFCPROPERTYBOUNDEDVALUE, IFCSIMPLEPROPERTY], 1680319473: [IFCCOMPLEXPROPERTYTEMPLATE, IFCSIMPLEPROPERTYTEMPLATE, IFCPROPERTYTEMPLATE, IFCPROPERTYSETTEMPLATE, IFCPROPERTYTEMPLATEDEFINITION, IFCPROPERTYSET, IFCPERMEABLECOVERINGPROPERTIES, IFCDOORPANELPROPERTIES, IFCDOORLININGPROPERTIES, IFCWINDOWPANELPROPERTIES, IFCWINDOWLININGPROPERTIES, IFCREINFORCEMENTDEFINITIONPROPERTIES, IFCPREDEFINEDPROPERTYSET, IFCELEMENTQUANTITY, IFCQUANTITYSET, IFCPROPERTYSETDEFINITION], 3357820518: [IFCPROPERTYSET, IFCPERMEABLECOVERINGPROPERTIES, IFCDOORPANELPROPERTIES, IFCDOORLININGPROPERTIES, IFCWINDOWPANELPROPERTIES, IFCWINDOWLININGPROPERTIES, IFCREINFORCEMENTDEFINITIONPROPERTIES, IFCPREDEFINEDPROPERTYSET, IFCELEMENTQUANTITY, IFCQUANTITYSET], 1482703590: [IFCCOMPLEXPROPERTYTEMPLATE, IFCSIMPLEPROPERTYTEMPLATE, IFCPROPERTYTEMPLATE, IFCPROPERTYSETTEMPLATE], 2090586900: [IFCELEMENTQUANTITY], 3615266464: [IFCRECTANGLEHOLLOWPROFILEDEF, IFCROUNDEDRECTANGLEPROFILEDEF], 478536968: [IFCRELDEFINESBYTYPE, IFCRELDEFINESBYTEMPLATE, IFCRELDEFINESBYPROPERTIES, IFCRELDEFINESBYOBJECT, IFCRELDEFINES, IFCRELAGGREGATES, IFCRELVOIDSELEMENT, IFCRELPROJECTSELEMENT, IFCRELNESTS, IFCRELDECOMPOSES, IFCRELDECLARES, IFCRELSPACEBOUNDARY2NDLEVEL, IFCRELSPACEBOUNDARY1STLEVEL, IFCRELSPACEBOUNDARY, IFCRELSERVICESBUILDINGS, IFCRELSEQUENCE, IFCRELREFERENCEDINSPATIALSTRUCTURE, IFCRELINTERFERESELEMENTS, IFCRELFLOWCONTROLELEMENTS, IFCRELFILLSELEMENT, IFCRELCOVERSSPACES, IFCRELCOVERSBLDGELEMENTS, IFCRELCONTAINEDINSPATIALSTRUCTURE, IFCRELCONNECTSWITHECCENTRICITY, IFCRELCONNECTSSTRUCTURALMEMBER, IFCRELCONNECTSSTRUCTURALACTIVITY, IFCRELCONNECTSPORTS, IFCRELCONNECTSPORTTOELEMENT, IFCRELCONNECTSWITHREALIZINGELEMENTS, IFCRELCONNECTSPATHELEMENTS, IFCRELCONNECTSELEMENTS, IFCRELCONNECTS, IFCRELASSOCIATESMATERIAL, IFCRELASSOCIATESLIBRARY, IFCRELASSOCIATESDOCUMENT, IFCRELASSOCIATESCONSTRAINT, IFCRELASSOCIATESCLASSIFICATION, IFCRELASSOCIATESAPPROVAL, IFCRELASSOCIATES, IFCRELASSIGNSTORESOURCE, IFCRELASSIGNSTOPRODUCT, IFCRELASSIGNSTOPROCESS, IFCRELASSIGNSTOGROUPBYFACTOR, IFCRELASSIGNSTOGROUP, IFCRELASSIGNSTOCONTROL, IFCRELASSIGNSTOACTOR, IFCRELASSIGNS], 3692461612: [IFCPROPERTYTABLEVALUE, IFCPROPERTYSINGLEVALUE, IFCPROPERTYREFERENCEVALUE, IFCPROPERTYLISTVALUE, IFCPROPERTYENUMERATEDVALUE, IFCPROPERTYBOUNDEDVALUE], 723233188: [IFCFACETEDBREPWITHVOIDS, IFCFACETEDBREP, IFCADVANCEDBREPWITHVOIDS, IFCADVANCEDBREP, IFCMANIFOLDSOLIDBREP, IFCCSGSOLID, IFCSWEPTDISKSOLIDPOLYGONAL, IFCSWEPTDISKSOLID, IFCSURFACECURVESWEPTAREASOLID, IFCREVOLVEDAREASOLIDTAPERED, IFCREVOLVEDAREASOLID, IFCFIXEDREFERENCESWEPTAREASOLID, IFCEXTRUDEDAREASOLIDTAPERED, IFCEXTRUDEDAREASOLID, IFCSWEPTAREASOLID], 2473145415: [IFCSTRUCTURALLOADSINGLEDISPLACEMENTDISTORTION], 1597423693: [IFCSTRUCTURALLOADSINGLEFORCEWARPING], 2513912981: [IFCCYLINDRICALSURFACE, IFCTOROIDALSURFACE, IFCSPHERICALSURFACE, IFCPLANE, IFCELEMENTARYSURFACE, IFCRATIONALBSPLINESURFACEWITHKNOTS, IFCBSPLINESURFACEWITHKNOTS, IFCBSPLINESURFACE, IFCRECTANGULARTRIMMEDSURFACE, IFCCURVEBOUNDEDSURFACE, IFCCURVEBOUNDEDPLANE, IFCBOUNDEDSURFACE, IFCSURFACEOFREVOLUTION, IFCSURFACEOFLINEAREXTRUSION, IFCSWEPTSURFACE], 2247615214: [IFCSURFACECURVESWEPTAREASOLID, IFCREVOLVEDAREASOLIDTAPERED, IFCREVOLVEDAREASOLID, IFCFIXEDREFERENCESWEPTAREASOLID, IFCEXTRUDEDAREASOLIDTAPERED, IFCEXTRUDEDAREASOLID], 1260650574: [IFCSWEPTDISKSOLIDPOLYGONAL], 230924584: [IFCSURFACEOFREVOLUTION, IFCSURFACEOFLINEAREXTRUSION], 901063453: [IFCPOLYGONALFACESET, IFCTRIANGULATEDFACESET, IFCTESSELLATEDFACESET, IFCINDEXEDPOLYGONALFACEWITHVOIDS, IFCINDEXEDPOLYGONALFACE], 4282788508: [IFCTEXTLITERALWITHEXTENT], 1628702193: [IFCCONSTRUCTIONPRODUCTRESOURCETYPE, IFCCONSTRUCTIONMATERIALRESOURCETYPE, IFCCONSTRUCTIONEQUIPMENTRESOURCETYPE, IFCSUBCONTRACTRESOURCETYPE, IFCLABORRESOURCETYPE, IFCCREWRESOURCETYPE, IFCCONSTRUCTIONRESOURCETYPE, IFCTYPERESOURCE, IFCSPATIALZONETYPE, IFCSPACETYPE, IFCSPATIALSTRUCTUREELEMENTTYPE, IFCSPATIALELEMENTTYPE, IFCDISCRETEACCESSORYTYPE, IFCBUILDINGELEMENTPARTTYPE, IFCVIBRATIONISOLATORTYPE, IFCREINFORCINGBARTYPE, IFCTENDONTYPE, IFCTENDONANCHORTYPE, IFCREINFORCINGMESHTYPE, IFCREINFORCINGELEMENTTYPE, IFCMECHANICALFASTENERTYPE, IFCFASTENERTYPE, IFCELEMENTCOMPONENTTYPE, IFCELEMENTASSEMBLYTYPE, IFCCONTROLLERTYPE, IFCALARMTYPE, IFCACTUATORTYPE, IFCUNITARYCONTROLELEMENTTYPE, IFCSENSORTYPE, IFCPROTECTIVEDEVICETRIPPINGUNITTYPE, IFCFLOWINSTRUMENTTYPE, IFCDISTRIBUTIONCONTROLELEMENTTYPE, IFCDISTRIBUTIONCHAMBERELEMENTTYPE, IFCFILTERTYPE, IFCDUCTSILENCERTYPE, IFCINTERCEPTORTYPE, IFCFLOWTREATMENTDEVICETYPE, IFCFIRESUPPRESSIONTERMINALTYPE, IFCELECTRICAPPLIANCETYPE, IFCCOMMUNICATIONSAPPLIANCETYPE, IFCAUDIOVISUALAPPLIANCETYPE, IFCAIRTERMINALTYPE, IFCWASTETERMINALTYPE, IFCSTACKTERMINALTYPE, IFCSPACEHEATERTYPE, IFCSANITARYTERMINALTYPE, IFCOUTLETTYPE, IFCMEDICALDEVICETYPE, IFCLIGHTFIXTURETYPE, IFCLAMPTYPE, IFCFLOWTERMINALTYPE, IFCELECTRICFLOWSTORAGEDEVICETYPE, IFCTANKTYPE, IFCFLOWSTORAGEDEVICETYPE, IFCDUCTSEGMENTTYPE, IFCCABLESEGMENTTYPE, IFCCABLECARRIERSEGMENTTYPE, IFCPIPESEGMENTTYPE, IFCFLOWSEGMENTTYPE, IFCFANTYPE, IFCCOMPRESSORTYPE, IFCPUMPTYPE, IFCFLOWMOVINGDEVICETYPE, IFCDUCTFITTINGTYPE, IFCCABLEFITTINGTYPE, IFCCABLECARRIERFITTINGTYPE, IFCPIPEFITTINGTYPE, IFCJUNCTIONBOXTYPE, IFCFLOWFITTINGTYPE, IFCELECTRICTIMECONTROLTYPE, IFCELECTRICDISTRIBUTIONBOARDTYPE, IFCDAMPERTYPE, IFCAIRTERMINALBOXTYPE, IFCVALVETYPE, IFCSWITCHINGDEVICETYPE, IFCPROTECTIVEDEVICETYPE, IFCFLOWMETERTYPE, IFCFLOWCONTROLLERTYPE, IFCELECTRICMOTORTYPE, IFCELECTRICGENERATORTYPE, IFCCOOLINGTOWERTYPE, IFCCOOLEDBEAMTYPE, IFCCONDENSERTYPE, IFCCOILTYPE, IFCCHILLERTYPE, IFCBURNERTYPE, IFCBOILERTYPE, IFCAIRTOAIRHEATRECOVERYTYPE, IFCUNITARYEQUIPMENTTYPE, IFCTUBEBUNDLETYPE, IFCTRANSFORMERTYPE, IFCSOLARDEVICETYPE, IFCMOTORCONNECTIONTYPE, IFCHUMIDIFIERTYPE, IFCHEATEXCHANGERTYPE, IFCEVAPORATORTYPE, IFCEVAPORATIVECOOLERTYPE, IFCENGINETYPE, IFCENERGYCONVERSIONDEVICETYPE, IFCDISTRIBUTIONFLOWELEMENTTYPE, IFCDISTRIBUTIONELEMENTTYPE, IFCCIVILELEMENTTYPE, IFCBUILDINGELEMENTPROXYTYPE, IFCBEAMTYPE, IFCWINDOWTYPE, IFCWALLTYPE, IFCSTAIRTYPE, IFCSTAIRFLIGHTTYPE, IFCSLABTYPE, IFCSHADINGDEVICETYPE, IFCROOFTYPE, IFCRAMPTYPE, IFCRAMPFLIGHTTYPE, IFCRAILINGTYPE, IFCPLATETYPE, IFCPILETYPE, IFCMEMBERTYPE, IFCFOOTINGTYPE, IFCDOORTYPE, IFCCURTAINWALLTYPE, IFCCOVERINGTYPE, IFCCOLUMNTYPE, IFCCHIMNEYTYPE, IFCBUILDINGELEMENTTYPE, IFCTRANSPORTELEMENTTYPE, IFCGEOGRAPHICELEMENTTYPE, IFCSYSTEMFURNITUREELEMENTTYPE, IFCFURNITURETYPE, IFCFURNISHINGELEMENTTYPE, IFCELEMENTTYPE, IFCDOORSTYLE, IFCWINDOWSTYLE, IFCTYPEPRODUCT, IFCTASKTYPE, IFCPROCEDURETYPE, IFCEVENTTYPE, IFCTYPEPROCESS], 3736923433: [IFCTASKTYPE, IFCPROCEDURETYPE, IFCEVENTTYPE], 2347495698: [IFCSPATIALZONETYPE, IFCSPACETYPE, IFCSPATIALSTRUCTUREELEMENTTYPE, IFCSPATIALELEMENTTYPE, IFCDISCRETEACCESSORYTYPE, IFCBUILDINGELEMENTPARTTYPE, IFCVIBRATIONISOLATORTYPE, IFCREINFORCINGBARTYPE, IFCTENDONTYPE, IFCTENDONANCHORTYPE, IFCREINFORCINGMESHTYPE, IFCREINFORCINGELEMENTTYPE, IFCMECHANICALFASTENERTYPE, IFCFASTENERTYPE, IFCELEMENTCOMPONENTTYPE, IFCELEMENTASSEMBLYTYPE, IFCCONTROLLERTYPE, IFCALARMTYPE, IFCACTUATORTYPE, IFCUNITARYCONTROLELEMENTTYPE, IFCSENSORTYPE, IFCPROTECTIVEDEVICETRIPPINGUNITTYPE, IFCFLOWINSTRUMENTTYPE, IFCDISTRIBUTIONCONTROLELEMENTTYPE, IFCDISTRIBUTIONCHAMBERELEMENTTYPE, IFCFILTERTYPE, IFCDUCTSILENCERTYPE, IFCINTERCEPTORTYPE, IFCFLOWTREATMENTDEVICETYPE, IFCFIRESUPPRESSIONTERMINALTYPE, IFCELECTRICAPPLIANCETYPE, IFCCOMMUNICATIONSAPPLIANCETYPE, IFCAUDIOVISUALAPPLIANCETYPE, IFCAIRTERMINALTYPE, IFCWASTETERMINALTYPE, IFCSTACKTERMINALTYPE, IFCSPACEHEATERTYPE, IFCSANITARYTERMINALTYPE, IFCOUTLETTYPE, IFCMEDICALDEVICETYPE, IFCLIGHTFIXTURETYPE, IFCLAMPTYPE, IFCFLOWTERMINALTYPE, IFCELECTRICFLOWSTORAGEDEVICETYPE, IFCTANKTYPE, IFCFLOWSTORAGEDEVICETYPE, IFCDUCTSEGMENTTYPE, IFCCABLESEGMENTTYPE, IFCCABLECARRIERSEGMENTTYPE, IFCPIPESEGMENTTYPE, IFCFLOWSEGMENTTYPE, IFCFANTYPE, IFCCOMPRESSORTYPE, IFCPUMPTYPE, IFCFLOWMOVINGDEVICETYPE, IFCDUCTFITTINGTYPE, IFCCABLEFITTINGTYPE, IFCCABLECARRIERFITTINGTYPE, IFCPIPEFITTINGTYPE, IFCJUNCTIONBOXTYPE, IFCFLOWFITTINGTYPE, IFCELECTRICTIMECONTROLTYPE, IFCELECTRICDISTRIBUTIONBOARDTYPE, IFCDAMPERTYPE, IFCAIRTERMINALBOXTYPE, IFCVALVETYPE, IFCSWITCHINGDEVICETYPE, IFCPROTECTIVEDEVICETYPE, IFCFLOWMETERTYPE, IFCFLOWCONTROLLERTYPE, IFCELECTRICMOTORTYPE, IFCELECTRICGENERATORTYPE, IFCCOOLINGTOWERTYPE, IFCCOOLEDBEAMTYPE, IFCCONDENSERTYPE, IFCCOILTYPE, IFCCHILLERTYPE, IFCBURNERTYPE, IFCBOILERTYPE, IFCAIRTOAIRHEATRECOVERYTYPE, IFCUNITARYEQUIPMENTTYPE, IFCTUBEBUNDLETYPE, IFCTRANSFORMERTYPE, IFCSOLARDEVICETYPE, IFCMOTORCONNECTIONTYPE, IFCHUMIDIFIERTYPE, IFCHEATEXCHANGERTYPE, IFCEVAPORATORTYPE, IFCEVAPORATIVECOOLERTYPE, IFCENGINETYPE, IFCENERGYCONVERSIONDEVICETYPE, IFCDISTRIBUTIONFLOWELEMENTTYPE, IFCDISTRIBUTIONELEMENTTYPE, IFCCIVILELEMENTTYPE, IFCBUILDINGELEMENTPROXYTYPE, IFCBEAMTYPE, IFCWINDOWTYPE, IFCWALLTYPE, IFCSTAIRTYPE, IFCSTAIRFLIGHTTYPE, IFCSLABTYPE, IFCSHADINGDEVICETYPE, IFCROOFTYPE, IFCRAMPTYPE, IFCRAMPFLIGHTTYPE, IFCRAILINGTYPE, IFCPLATETYPE, IFCPILETYPE, IFCMEMBERTYPE, IFCFOOTINGTYPE, IFCDOORTYPE, IFCCURTAINWALLTYPE, IFCCOVERINGTYPE, IFCCOLUMNTYPE, IFCCHIMNEYTYPE, IFCBUILDINGELEMENTTYPE, IFCTRANSPORTELEMENTTYPE, IFCGEOGRAPHICELEMENTTYPE, IFCSYSTEMFURNITUREELEMENTTYPE, IFCFURNITURETYPE, IFCFURNISHINGELEMENTTYPE, IFCELEMENTTYPE, IFCDOORSTYLE, IFCWINDOWSTYLE], 3698973494: [IFCCONSTRUCTIONPRODUCTRESOURCETYPE, IFCCONSTRUCTIONMATERIALRESOURCETYPE, IFCCONSTRUCTIONEQUIPMENTRESOURCETYPE, IFCSUBCONTRACTRESOURCETYPE, IFCLABORRESOURCETYPE, IFCCREWRESOURCETYPE, IFCCONSTRUCTIONRESOURCETYPE], 2736907675: [IFCBOOLEANCLIPPINGRESULT], 4182860854: [IFCRATIONALBSPLINESURFACEWITHKNOTS, IFCBSPLINESURFACEWITHKNOTS, IFCBSPLINESURFACE, IFCRECTANGULARTRIMMEDSURFACE, IFCCURVEBOUNDEDSURFACE, IFCCURVEBOUNDEDPLANE], 574549367: [IFCCARTESIANPOINTLIST3D, IFCCARTESIANPOINTLIST2D], 59481748: [IFCCARTESIANTRANSFORMATIONOPERATOR3DNONUNIFORM, IFCCARTESIANTRANSFORMATIONOPERATOR3D, IFCCARTESIANTRANSFORMATIONOPERATOR2DNONUNIFORM, IFCCARTESIANTRANSFORMATIONOPERATOR2D], 3749851601: [IFCCARTESIANTRANSFORMATIONOPERATOR2DNONUNIFORM], 3331915920: [IFCCARTESIANTRANSFORMATIONOPERATOR3DNONUNIFORM], 1383045692: [IFCCIRCLEHOLLOWPROFILEDEF], 2485617015: [IFCREPARAMETRISEDCOMPOSITECURVESEGMENT], 2574617495: [IFCCONSTRUCTIONPRODUCTRESOURCETYPE, IFCCONSTRUCTIONMATERIALRESOURCETYPE, IFCCONSTRUCTIONEQUIPMENTRESOURCETYPE, IFCSUBCONTRACTRESOURCETYPE, IFCLABORRESOURCETYPE, IFCCREWRESOURCETYPE], 3419103109: [IFCPROJECTLIBRARY, IFCPROJECT], 2506170314: [IFCBLOCK, IFCSPHERE, IFCRIGHTCIRCULARCYLINDER, IFCRIGHTCIRCULARCONE, IFCRECTANGULARPYRAMID], 2601014836: [IFCCIRCLE, IFCELLIPSE, IFCCONIC, IFCRATIONALBSPLINECURVEWITHKNOTS, IFCBSPLINECURVEWITHKNOTS, IFCBSPLINECURVE, IFCTRIMMEDCURVE, IFCPOLYLINE, IFCINDEXEDPOLYCURVE, IFCOUTERBOUNDARYCURVE, IFCBOUNDARYCURVE, IFCCOMPOSITECURVEONSURFACE, IFCCOMPOSITECURVE, IFCBOUNDEDCURVE, IFCSEAMCURVE, IFCINTERSECTIONCURVE, IFCSURFACECURVE, IFCPCURVE, IFCOFFSETCURVE3D, IFCOFFSETCURVE2D, IFCLINE], 339256511: [IFCDISCRETEACCESSORYTYPE, IFCBUILDINGELEMENTPARTTYPE, IFCVIBRATIONISOLATORTYPE, IFCREINFORCINGBARTYPE, IFCTENDONTYPE, IFCTENDONANCHORTYPE, IFCREINFORCINGMESHTYPE, IFCREINFORCINGELEMENTTYPE, IFCMECHANICALFASTENERTYPE, IFCFASTENERTYPE, IFCELEMENTCOMPONENTTYPE, IFCELEMENTASSEMBLYTYPE, IFCCONTROLLERTYPE, IFCALARMTYPE, IFCACTUATORTYPE, IFCUNITARYCONTROLELEMENTTYPE, IFCSENSORTYPE, IFCPROTECTIVEDEVICETRIPPINGUNITTYPE, IFCFLOWINSTRUMENTTYPE, IFCDISTRIBUTIONCONTROLELEMENTTYPE, IFCDISTRIBUTIONCHAMBERELEMENTTYPE, IFCFILTERTYPE, IFCDUCTSILENCERTYPE, IFCINTERCEPTORTYPE, IFCFLOWTREATMENTDEVICETYPE, IFCFIRESUPPRESSIONTERMINALTYPE, IFCELECTRICAPPLIANCETYPE, IFCCOMMUNICATIONSAPPLIANCETYPE, IFCAUDIOVISUALAPPLIANCETYPE, IFCAIRTERMINALTYPE, IFCWASTETERMINALTYPE, IFCSTACKTERMINALTYPE, IFCSPACEHEATERTYPE, IFCSANITARYTERMINALTYPE, IFCOUTLETTYPE, IFCMEDICALDEVICETYPE, IFCLIGHTFIXTURETYPE, IFCLAMPTYPE, IFCFLOWTERMINALTYPE, IFCELECTRICFLOWSTORAGEDEVICETYPE, IFCTANKTYPE, IFCFLOWSTORAGEDEVICETYPE, IFCDUCTSEGMENTTYPE, IFCCABLESEGMENTTYPE, IFCCABLECARRIERSEGMENTTYPE, IFCPIPESEGMENTTYPE, IFCFLOWSEGMENTTYPE, IFCFANTYPE, IFCCOMPRESSORTYPE, IFCPUMPTYPE, IFCFLOWMOVINGDEVICETYPE, IFCDUCTFITTINGTYPE, IFCCABLEFITTINGTYPE, IFCCABLECARRIERFITTINGTYPE, IFCPIPEFITTINGTYPE, IFCJUNCTIONBOXTYPE, IFCFLOWFITTINGTYPE, IFCELECTRICTIMECONTROLTYPE, IFCELECTRICDISTRIBUTIONBOARDTYPE, IFCDAMPERTYPE, IFCAIRTERMINALBOXTYPE, IFCVALVETYPE, IFCSWITCHINGDEVICETYPE, IFCPROTECTIVEDEVICETYPE, IFCFLOWMETERTYPE, IFCFLOWCONTROLLERTYPE, IFCELECTRICMOTORTYPE, IFCELECTRICGENERATORTYPE, IFCCOOLINGTOWERTYPE, IFCCOOLEDBEAMTYPE, IFCCONDENSERTYPE, IFCCOILTYPE, IFCCHILLERTYPE, IFCBURNERTYPE, IFCBOILERTYPE, IFCAIRTOAIRHEATRECOVERYTYPE, IFCUNITARYEQUIPMENTTYPE, IFCTUBEBUNDLETYPE, IFCTRANSFORMERTYPE, IFCSOLARDEVICETYPE, IFCMOTORCONNECTIONTYPE, IFCHUMIDIFIERTYPE, IFCHEATEXCHANGERTYPE, IFCEVAPORATORTYPE, IFCEVAPORATIVECOOLERTYPE, IFCENGINETYPE, IFCENERGYCONVERSIONDEVICETYPE, IFCDISTRIBUTIONFLOWELEMENTTYPE, IFCDISTRIBUTIONELEMENTTYPE, IFCCIVILELEMENTTYPE, IFCBUILDINGELEMENTPROXYTYPE, IFCBEAMTYPE, IFCWINDOWTYPE, IFCWALLTYPE, IFCSTAIRTYPE, IFCSTAIRFLIGHTTYPE, IFCSLABTYPE, IFCSHADINGDEVICETYPE, IFCROOFTYPE, IFCRAMPTYPE, IFCRAMPFLIGHTTYPE, IFCRAILINGTYPE, IFCPLATETYPE, IFCPILETYPE, IFCMEMBERTYPE, IFCFOOTINGTYPE, IFCDOORTYPE, IFCCURTAINWALLTYPE, IFCCOVERINGTYPE, IFCCOLUMNTYPE, IFCCHIMNEYTYPE, IFCBUILDINGELEMENTTYPE, IFCTRANSPORTELEMENTTYPE, IFCGEOGRAPHICELEMENTTYPE, IFCSYSTEMFURNITUREELEMENTTYPE, IFCFURNITURETYPE, IFCFURNISHINGELEMENTTYPE], 2777663545: [IFCCYLINDRICALSURFACE, IFCTOROIDALSURFACE, IFCSPHERICALSURFACE, IFCPLANE], 477187591: [IFCEXTRUDEDAREASOLIDTAPERED], 4238390223: [IFCSYSTEMFURNITUREELEMENTTYPE, IFCFURNITURETYPE], 178912537: [IFCINDEXEDPOLYGONALFACEWITHVOIDS], 1425443689: [IFCFACETEDBREPWITHVOIDS, IFCFACETEDBREP, IFCADVANCEDBREPWITHVOIDS, IFCADVANCEDBREP], 3888040117: [IFCASSET, IFCSTRUCTURALANALYSISMODEL, IFCDISTRIBUTIONCIRCUIT, IFCDISTRIBUTIONSYSTEM, IFCBUILDINGSYSTEM, IFCZONE, IFCSYSTEM, IFCSTRUCTURALRESULTGROUP, IFCSTRUCTURALLOADCASE, IFCSTRUCTURALLOADGROUP, IFCINVENTORY, IFCGROUP, IFCACTIONREQUEST, IFCWORKSCHEDULE, IFCWORKPLAN, IFCWORKCONTROL, IFCWORKCALENDAR, IFCPROJECTORDER, IFCPERMIT, IFCPERFORMANCEHISTORY, IFCCOSTSCHEDULE, IFCCOSTITEM, IFCCONTROL, IFCOCCUPANT, IFCACTOR, IFCCONSTRUCTIONPRODUCTRESOURCE, IFCCONSTRUCTIONMATERIALRESOURCE, IFCCONSTRUCTIONEQUIPMENTRESOURCE, IFCSUBCONTRACTRESOURCE, IFCLABORRESOURCE, IFCCREWRESOURCE, IFCCONSTRUCTIONRESOURCE, IFCRESOURCE, IFCDISTRIBUTIONPORT, IFCPORT, IFCGRID, IFCCONTROLLER, IFCALARM, IFCACTUATOR, IFCUNITARYCONTROLELEMENT, IFCSENSOR, IFCPROTECTIVEDEVICETRIPPINGUNIT, IFCFLOWINSTRUMENT, IFCDISTRIBUTIONCONTROLELEMENT, IFCDISTRIBUTIONCHAMBERELEMENT, IFCFILTER, IFCDUCTSILENCER, IFCINTERCEPTOR, IFCFLOWTREATMENTDEVICE, IFCFIRESUPPRESSIONTERMINAL, IFCELECTRICAPPLIANCE, IFCCOMMUNICATIONSAPPLIANCE, IFCAUDIOVISUALAPPLIANCE, IFCAIRTERMINAL, IFCWASTETERMINAL, IFCSTACKTERMINAL, IFCSPACEHEATER, IFCSANITARYTERMINAL, IFCOUTLET, IFCMEDICALDEVICE, IFCLIGHTFIXTURE, IFCLAMP, IFCFLOWTERMINAL, IFCELECTRICFLOWSTORAGEDEVICE, IFCTANK, IFCFLOWSTORAGEDEVICE, IFCDUCTSEGMENT, IFCCABLESEGMENT, IFCCABLECARRIERSEGMENT, IFCPIPESEGMENT, IFCFLOWSEGMENT, IFCFAN, IFCCOMPRESSOR, IFCPUMP, IFCFLOWMOVINGDEVICE, IFCDUCTFITTING, IFCCABLEFITTING, IFCCABLECARRIERFITTING, IFCPIPEFITTING, IFCJUNCTIONBOX, IFCFLOWFITTING, IFCELECTRICTIMECONTROL, IFCELECTRICDISTRIBUTIONBOARD, IFCDAMPER, IFCAIRTERMINALBOX, IFCVALVE, IFCSWITCHINGDEVICE, IFCPROTECTIVEDEVICE, IFCFLOWMETER, IFCFLOWCONTROLLER, IFCELECTRICMOTOR, IFCELECTRICGENERATOR, IFCCOOLINGTOWER, IFCCOOLEDBEAM, IFCCONDENSER, IFCCOIL, IFCCHILLER, IFCBURNER, IFCBOILER, IFCAIRTOAIRHEATRECOVERY, IFCUNITARYEQUIPMENT, IFCTUBEBUNDLE, IFCTRANSFORMER, IFCSOLARDEVICE, IFCMOTORCONNECTION, IFCHUMIDIFIER, IFCHEATEXCHANGER, IFCEVAPORATOR, IFCEVAPORATIVECOOLER, IFCENGINE, IFCENERGYCONVERSIONDEVICE, IFCDISTRIBUTIONFLOWELEMENT, IFCDISTRIBUTIONELEMENT, IFCCIVILELEMENT, IFCBEAMSTANDARDCASE, IFCBEAM, IFCWINDOWSTANDARDCASE, IFCWINDOW, IFCWALLSTANDARDCASE, IFCWALLELEMENTEDCASE, IFCWALL, IFCSTAIRFLIGHT, IFCSTAIR, IFCSLABSTANDARDCASE, IFCSLABELEMENTEDCASE, IFCSLAB, IFCSHADINGDEVICE, IFCROOF, IFCRAMPFLIGHT, IFCRAMP, IFCRAILING, IFCPLATESTANDARDCASE, IFCPLATE, IFCPILE, IFCMEMBERSTANDARDCASE, IFCMEMBER, IFCFOOTING, IFCDOORSTANDARDCASE, IFCDOOR, IFCCURTAINWALL, IFCCOVERING, IFCCOLUMNSTANDARDCASE, IFCCOLUMN, IFCCHIMNEY, IFCBUILDINGELEMENTPROXY, IFCBUILDINGELEMENT, IFCVIRTUALELEMENT, IFCTRANSPORTELEMENT, IFCGEOGRAPHICELEMENT, IFCSYSTEMFURNITUREELEMENT, IFCFURNITURE, IFCFURNISHINGELEMENT, IFCSURFACEFEATURE, IFCVOIDINGFEATURE, IFCOPENINGSTANDARDCASE, IFCOPENINGELEMENT, IFCFEATUREELEMENTSUBTRACTION, IFCPROJECTIONELEMENT, IFCFEATUREELEMENTADDITION, IFCFEATUREELEMENT, IFCDISCRETEACCESSORY, IFCBUILDINGELEMENTPART, IFCVIBRATIONISOLATOR, IFCREINFORCINGBAR, IFCTENDONANCHOR, IFCTENDON, IFCREINFORCINGMESH, IFCREINFORCINGELEMENT, IFCMECHANICALFASTENER, IFCFASTENER, IFCELEMENTCOMPONENT, IFCELEMENTASSEMBLY, IFCELEMENT, IFCANNOTATION, IFCSTRUCTURALSURFACECONNECTION, IFCSTRUCTURALPOINTCONNECTION, IFCSTRUCTURALCURVECONNECTION, IFCSTRUCTURALCONNECTION, IFCSTRUCTURALCURVEMEMBERVARYING, IFCSTRUCTURALCURVEMEMBER, IFCSTRUCTURALSURFACEMEMBERVARYING, IFCSTRUCTURALSURFACEMEMBER, IFCSTRUCTURALMEMBER, IFCSTRUCTURALITEM, IFCSTRUCTURALPLANARACTION, IFCSTRUCTURALSURFACEACTION, IFCSTRUCTURALPOINTACTION, IFCSTRUCTURALLINEARACTION, IFCSTRUCTURALCURVEACTION, IFCSTRUCTURALACTION, IFCSTRUCTURALPOINTREACTION, IFCSTRUCTURALCURVEREACTION, IFCSTRUCTURALSURFACEREACTION, IFCSTRUCTURALREACTION, IFCSTRUCTURALACTIVITY, IFCEXTERNALSPATIALELEMENT, IFCEXTERNALSPATIALSTRUCTUREELEMENT, IFCSPATIALZONE, IFCSPACE, IFCSITE, IFCBUILDINGSTOREY, IFCBUILDING, IFCSPATIALSTRUCTUREELEMENT, IFCSPATIALELEMENT, IFCPROXY, IFCPRODUCT, IFCPROCEDURE, IFCEVENT, IFCTASK, IFCPROCESS], 759155922: [IFCDRAUGHTINGPREDEFINEDCOLOUR], 2559016684: [IFCDRAUGHTINGPREDEFINEDCURVEFONT], 3967405729: [IFCPERMEABLECOVERINGPROPERTIES, IFCDOORPANELPROPERTIES, IFCDOORLININGPROPERTIES, IFCWINDOWPANELPROPERTIES, IFCWINDOWLININGPROPERTIES, IFCREINFORCEMENTDEFINITIONPROPERTIES], 2945172077: [IFCPROCEDURE, IFCEVENT, IFCTASK], 4208778838: [IFCDISTRIBUTIONPORT, IFCPORT, IFCGRID, IFCCONTROLLER, IFCALARM, IFCACTUATOR, IFCUNITARYCONTROLELEMENT, IFCSENSOR, IFCPROTECTIVEDEVICETRIPPINGUNIT, IFCFLOWINSTRUMENT, IFCDISTRIBUTIONCONTROLELEMENT, IFCDISTRIBUTIONCHAMBERELEMENT, IFCFILTER, IFCDUCTSILENCER, IFCINTERCEPTOR, IFCFLOWTREATMENTDEVICE, IFCFIRESUPPRESSIONTERMINAL, IFCELECTRICAPPLIANCE, IFCCOMMUNICATIONSAPPLIANCE, IFCAUDIOVISUALAPPLIANCE, IFCAIRTERMINAL, IFCWASTETERMINAL, IFCSTACKTERMINAL, IFCSPACEHEATER, IFCSANITARYTERMINAL, IFCOUTLET, IFCMEDICALDEVICE, IFCLIGHTFIXTURE, IFCLAMP, IFCFLOWTERMINAL, IFCELECTRICFLOWSTORAGEDEVICE, IFCTANK, IFCFLOWSTORAGEDEVICE, IFCDUCTSEGMENT, IFCCABLESEGMENT, IFCCABLECARRIERSEGMENT, IFCPIPESEGMENT, IFCFLOWSEGMENT, IFCFAN, IFCCOMPRESSOR, IFCPUMP, IFCFLOWMOVINGDEVICE, IFCDUCTFITTING, IFCCABLEFITTING, IFCCABLECARRIERFITTING, IFCPIPEFITTING, IFCJUNCTIONBOX, IFCFLOWFITTING, IFCELECTRICTIMECONTROL, IFCELECTRICDISTRIBUTIONBOARD, IFCDAMPER, IFCAIRTERMINALBOX, IFCVALVE, IFCSWITCHINGDEVICE, IFCPROTECTIVEDEVICE, IFCFLOWMETER, IFCFLOWCONTROLLER, IFCELECTRICMOTOR, IFCELECTRICGENERATOR, IFCCOOLINGTOWER, IFCCOOLEDBEAM, IFCCONDENSER, IFCCOIL, IFCCHILLER, IFCBURNER, IFCBOILER, IFCAIRTOAIRHEATRECOVERY, IFCUNITARYEQUIPMENT, IFCTUBEBUNDLE, IFCTRANSFORMER, IFCSOLARDEVICE, IFCMOTORCONNECTION, IFCHUMIDIFIER, IFCHEATEXCHANGER, IFCEVAPORATOR, IFCEVAPORATIVECOOLER, IFCENGINE, IFCENERGYCONVERSIONDEVICE, IFCDISTRIBUTIONFLOWELEMENT, IFCDISTRIBUTIONELEMENT, IFCCIVILELEMENT, IFCBEAMSTANDARDCASE, IFCBEAM, IFCWINDOWSTANDARDCASE, IFCWINDOW, IFCWALLSTANDARDCASE, IFCWALLELEMENTEDCASE, IFCWALL, IFCSTAIRFLIGHT, IFCSTAIR, IFCSLABSTANDARDCASE, IFCSLABELEMENTEDCASE, IFCSLAB, IFCSHADINGDEVICE, IFCROOF, IFCRAMPFLIGHT, IFCRAMP, IFCRAILING, IFCPLATESTANDARDCASE, IFCPLATE, IFCPILE, IFCMEMBERSTANDARDCASE, IFCMEMBER, IFCFOOTING, IFCDOORSTANDARDCASE, IFCDOOR, IFCCURTAINWALL, IFCCOVERING, IFCCOLUMNSTANDARDCASE, IFCCOLUMN, IFCCHIMNEY, IFCBUILDINGELEMENTPROXY, IFCBUILDINGELEMENT, IFCVIRTUALELEMENT, IFCTRANSPORTELEMENT, IFCGEOGRAPHICELEMENT, IFCSYSTEMFURNITUREELEMENT, IFCFURNITURE, IFCFURNISHINGELEMENT, IFCSURFACEFEATURE, IFCVOIDINGFEATURE, IFCOPENINGSTANDARDCASE, IFCOPENINGELEMENT, IFCFEATUREELEMENTSUBTRACTION, IFCPROJECTIONELEMENT, IFCFEATUREELEMENTADDITION, IFCFEATUREELEMENT, IFCDISCRETEACCESSORY, IFCBUILDINGELEMENTPART, IFCVIBRATIONISOLATOR, IFCREINFORCINGBAR, IFCTENDONANCHOR, IFCTENDON, IFCREINFORCINGMESH, IFCREINFORCINGELEMENT, IFCMECHANICALFASTENER, IFCFASTENER, IFCELEMENTCOMPONENT, IFCELEMENTASSEMBLY, IFCELEMENT, IFCANNOTATION, IFCSTRUCTURALSURFACECONNECTION, IFCSTRUCTURALPOINTCONNECTION, IFCSTRUCTURALCURVECONNECTION, IFCSTRUCTURALCONNECTION, IFCSTRUCTURALCURVEMEMBERVARYING, IFCSTRUCTURALCURVEMEMBER, IFCSTRUCTURALSURFACEMEMBERVARYING, IFCSTRUCTURALSURFACEMEMBER, IFCSTRUCTURALMEMBER, IFCSTRUCTURALITEM, IFCSTRUCTURALPLANARACTION, IFCSTRUCTURALSURFACEACTION, IFCSTRUCTURALPOINTACTION, IFCSTRUCTURALLINEARACTION, IFCSTRUCTURALCURVEACTION, IFCSTRUCTURALACTION, IFCSTRUCTURALPOINTREACTION, IFCSTRUCTURALCURVEREACTION, IFCSTRUCTURALSURFACEREACTION, IFCSTRUCTURALREACTION, IFCSTRUCTURALACTIVITY, IFCEXTERNALSPATIALELEMENT, IFCEXTERNALSPATIALSTRUCTUREELEMENT, IFCSPATIALZONE, IFCSPACE, IFCSITE, IFCBUILDINGSTOREY, IFCBUILDING, IFCSPATIALSTRUCTUREELEMENT, IFCSPATIALELEMENT, IFCPROXY], 3521284610: [IFCCOMPLEXPROPERTYTEMPLATE, IFCSIMPLEPROPERTYTEMPLATE], 3939117080: [IFCRELASSIGNSTORESOURCE, IFCRELASSIGNSTOPRODUCT, IFCRELASSIGNSTOPROCESS, IFCRELASSIGNSTOGROUPBYFACTOR, IFCRELASSIGNSTOGROUP, IFCRELASSIGNSTOCONTROL, IFCRELASSIGNSTOACTOR], 1307041759: [IFCRELASSIGNSTOGROUPBYFACTOR], 1865459582: [IFCRELASSOCIATESMATERIAL, IFCRELASSOCIATESLIBRARY, IFCRELASSOCIATESDOCUMENT, IFCRELASSOCIATESCONSTRAINT, IFCRELASSOCIATESCLASSIFICATION, IFCRELASSOCIATESAPPROVAL], 826625072: [IFCRELSPACEBOUNDARY2NDLEVEL, IFCRELSPACEBOUNDARY1STLEVEL, IFCRELSPACEBOUNDARY, IFCRELSERVICESBUILDINGS, IFCRELSEQUENCE, IFCRELREFERENCEDINSPATIALSTRUCTURE, IFCRELINTERFERESELEMENTS, IFCRELFLOWCONTROLELEMENTS, IFCRELFILLSELEMENT, IFCRELCOVERSSPACES, IFCRELCOVERSBLDGELEMENTS, IFCRELCONTAINEDINSPATIALSTRUCTURE, IFCRELCONNECTSWITHECCENTRICITY, IFCRELCONNECTSSTRUCTURALMEMBER, IFCRELCONNECTSSTRUCTURALACTIVITY, IFCRELCONNECTSPORTS, IFCRELCONNECTSPORTTOELEMENT, IFCRELCONNECTSWITHREALIZINGELEMENTS, IFCRELCONNECTSPATHELEMENTS, IFCRELCONNECTSELEMENTS], 1204542856: [IFCRELCONNECTSWITHREALIZINGELEMENTS, IFCRELCONNECTSPATHELEMENTS], 1638771189: [IFCRELCONNECTSWITHECCENTRICITY], 2551354335: [IFCRELAGGREGATES, IFCRELVOIDSELEMENT, IFCRELPROJECTSELEMENT, IFCRELNESTS], 693640335: [IFCRELDEFINESBYTYPE, IFCRELDEFINESBYTEMPLATE, IFCRELDEFINESBYPROPERTIES, IFCRELDEFINESBYOBJECT], 3451746338: [IFCRELSPACEBOUNDARY2NDLEVEL, IFCRELSPACEBOUNDARY1STLEVEL], 3523091289: [IFCRELSPACEBOUNDARY2NDLEVEL], 2914609552: [IFCCONSTRUCTIONPRODUCTRESOURCE, IFCCONSTRUCTIONMATERIALRESOURCE, IFCCONSTRUCTIONEQUIPMENTRESOURCE, IFCSUBCONTRACTRESOURCE, IFCLABORRESOURCE, IFCCREWRESOURCE, IFCCONSTRUCTIONRESOURCE], 1856042241: [IFCREVOLVEDAREASOLIDTAPERED], 1412071761: [IFCEXTERNALSPATIALELEMENT, IFCEXTERNALSPATIALSTRUCTUREELEMENT, IFCSPATIALZONE, IFCSPACE, IFCSITE, IFCBUILDINGSTOREY, IFCBUILDING, IFCSPATIALSTRUCTUREELEMENT], 710998568: [IFCSPATIALZONETYPE, IFCSPACETYPE, IFCSPATIALSTRUCTUREELEMENTTYPE], 2706606064: [IFCSPACE, IFCSITE, IFCBUILDINGSTOREY, IFCBUILDING], 3893378262: [IFCSPACETYPE], 3544373492: [IFCSTRUCTURALPLANARACTION, IFCSTRUCTURALSURFACEACTION, IFCSTRUCTURALPOINTACTION, IFCSTRUCTURALLINEARACTION, IFCSTRUCTURALCURVEACTION, IFCSTRUCTURALACTION, IFCSTRUCTURALPOINTREACTION, IFCSTRUCTURALCURVEREACTION, IFCSTRUCTURALSURFACEREACTION, IFCSTRUCTURALREACTION], 3136571912: [IFCSTRUCTURALSURFACECONNECTION, IFCSTRUCTURALPOINTCONNECTION, IFCSTRUCTURALCURVECONNECTION, IFCSTRUCTURALCONNECTION, IFCSTRUCTURALCURVEMEMBERVARYING, IFCSTRUCTURALCURVEMEMBER, IFCSTRUCTURALSURFACEMEMBERVARYING, IFCSTRUCTURALSURFACEMEMBER, IFCSTRUCTURALMEMBER], 530289379: [IFCSTRUCTURALCURVEMEMBERVARYING, IFCSTRUCTURALCURVEMEMBER, IFCSTRUCTURALSURFACEMEMBERVARYING, IFCSTRUCTURALSURFACEMEMBER], 3689010777: [IFCSTRUCTURALPOINTREACTION, IFCSTRUCTURALCURVEREACTION, IFCSTRUCTURALSURFACEREACTION], 3979015343: [IFCSTRUCTURALSURFACEMEMBERVARYING], 699246055: [IFCSEAMCURVE, IFCINTERSECTIONCURVE], 2387106220: [IFCPOLYGONALFACESET, IFCTRIANGULATEDFACESET], 2296667514: [IFCOCCUPANT], 1635779807: [IFCADVANCEDBREPWITHVOIDS], 2887950389: [IFCRATIONALBSPLINESURFACEWITHKNOTS, IFCBSPLINESURFACEWITHKNOTS], 167062518: [IFCRATIONALBSPLINESURFACEWITHKNOTS], 1260505505: [IFCRATIONALBSPLINECURVEWITHKNOTS, IFCBSPLINECURVEWITHKNOTS, IFCBSPLINECURVE, IFCTRIMMEDCURVE, IFCPOLYLINE, IFCINDEXEDPOLYCURVE, IFCOUTERBOUNDARYCURVE, IFCBOUNDARYCURVE, IFCCOMPOSITECURVEONSURFACE, IFCCOMPOSITECURVE], 1950629157: [IFCBUILDINGELEMENTPROXYTYPE, IFCBEAMTYPE, IFCWINDOWTYPE, IFCWALLTYPE, IFCSTAIRTYPE, IFCSTAIRFLIGHTTYPE, IFCSLABTYPE, IFCSHADINGDEVICETYPE, IFCROOFTYPE, IFCRAMPTYPE, IFCRAMPFLIGHTTYPE, IFCRAILINGTYPE, IFCPLATETYPE, IFCPILETYPE, IFCMEMBERTYPE, IFCFOOTINGTYPE, IFCDOORTYPE, IFCCURTAINWALLTYPE, IFCCOVERINGTYPE, IFCCOLUMNTYPE, IFCCHIMNEYTYPE], 3732776249: [IFCOUTERBOUNDARYCURVE, IFCBOUNDARYCURVE, IFCCOMPOSITECURVEONSURFACE], 15328376: [IFCOUTERBOUNDARYCURVE, IFCBOUNDARYCURVE], 2510884976: [IFCCIRCLE, IFCELLIPSE], 2559216714: [IFCCONSTRUCTIONPRODUCTRESOURCE, IFCCONSTRUCTIONMATERIALRESOURCE, IFCCONSTRUCTIONEQUIPMENTRESOURCE, IFCSUBCONTRACTRESOURCE, IFCLABORRESOURCE, IFCCREWRESOURCE], 3293443760: [IFCACTIONREQUEST, IFCWORKSCHEDULE, IFCWORKPLAN, IFCWORKCONTROL, IFCWORKCALENDAR, IFCPROJECTORDER, IFCPERMIT, IFCPERFORMANCEHISTORY, IFCCOSTSCHEDULE, IFCCOSTITEM], 3256556792: [IFCCONTROLLERTYPE, IFCALARMTYPE, IFCACTUATORTYPE, IFCUNITARYCONTROLELEMENTTYPE, IFCSENSORTYPE, IFCPROTECTIVEDEVICETRIPPINGUNITTYPE, IFCFLOWINSTRUMENTTYPE, IFCDISTRIBUTIONCONTROLELEMENTTYPE, IFCDISTRIBUTIONCHAMBERELEMENTTYPE, IFCFILTERTYPE, IFCDUCTSILENCERTYPE, IFCINTERCEPTORTYPE, IFCFLOWTREATMENTDEVICETYPE, IFCFIRESUPPRESSIONTERMINALTYPE, IFCELECTRICAPPLIANCETYPE, IFCCOMMUNICATIONSAPPLIANCETYPE, IFCAUDIOVISUALAPPLIANCETYPE, IFCAIRTERMINALTYPE, IFCWASTETERMINALTYPE, IFCSTACKTERMINALTYPE, IFCSPACEHEATERTYPE, IFCSANITARYTERMINALTYPE, IFCOUTLETTYPE, IFCMEDICALDEVICETYPE, IFCLIGHTFIXTURETYPE, IFCLAMPTYPE, IFCFLOWTERMINALTYPE, IFCELECTRICFLOWSTORAGEDEVICETYPE, IFCTANKTYPE, IFCFLOWSTORAGEDEVICETYPE, IFCDUCTSEGMENTTYPE, IFCCABLESEGMENTTYPE, IFCCABLECARRIERSEGMENTTYPE, IFCPIPESEGMENTTYPE, IFCFLOWSEGMENTTYPE, IFCFANTYPE, IFCCOMPRESSORTYPE, IFCPUMPTYPE, IFCFLOWMOVINGDEVICETYPE, IFCDUCTFITTINGTYPE, IFCCABLEFITTINGTYPE, IFCCABLECARRIERFITTINGTYPE, IFCPIPEFITTINGTYPE, IFCJUNCTIONBOXTYPE, IFCFLOWFITTINGTYPE, IFCELECTRICTIMECONTROLTYPE, IFCELECTRICDISTRIBUTIONBOARDTYPE, IFCDAMPERTYPE, IFCAIRTERMINALBOXTYPE, IFCVALVETYPE, IFCSWITCHINGDEVICETYPE, IFCPROTECTIVEDEVICETYPE, IFCFLOWMETERTYPE, IFCFLOWCONTROLLERTYPE, IFCELECTRICMOTORTYPE, IFCELECTRICGENERATORTYPE, IFCCOOLINGTOWERTYPE, IFCCOOLEDBEAMTYPE, IFCCONDENSERTYPE, IFCCOILTYPE, IFCCHILLERTYPE, IFCBURNERTYPE, IFCBOILERTYPE, IFCAIRTOAIRHEATRECOVERYTYPE, IFCUNITARYEQUIPMENTTYPE, IFCTUBEBUNDLETYPE, IFCTRANSFORMERTYPE, IFCSOLARDEVICETYPE, IFCMOTORCONNECTIONTYPE, IFCHUMIDIFIERTYPE, IFCHEATEXCHANGERTYPE, IFCEVAPORATORTYPE, IFCEVAPORATIVECOOLERTYPE, IFCENGINETYPE, IFCENERGYCONVERSIONDEVICETYPE, IFCDISTRIBUTIONFLOWELEMENTTYPE], 3849074793: [IFCDISTRIBUTIONCHAMBERELEMENTTYPE, IFCFILTERTYPE, IFCDUCTSILENCERTYPE, IFCINTERCEPTORTYPE, IFCFLOWTREATMENTDEVICETYPE, IFCFIRESUPPRESSIONTERMINALTYPE, IFCELECTRICAPPLIANCETYPE, IFCCOMMUNICATIONSAPPLIANCETYPE, IFCAUDIOVISUALAPPLIANCETYPE, IFCAIRTERMINALTYPE, IFCWASTETERMINALTYPE, IFCSTACKTERMINALTYPE, IFCSPACEHEATERTYPE, IFCSANITARYTERMINALTYPE, IFCOUTLETTYPE, IFCMEDICALDEVICETYPE, IFCLIGHTFIXTURETYPE, IFCLAMPTYPE, IFCFLOWTERMINALTYPE, IFCELECTRICFLOWSTORAGEDEVICETYPE, IFCTANKTYPE, IFCFLOWSTORAGEDEVICETYPE, IFCDUCTSEGMENTTYPE, IFCCABLESEGMENTTYPE, IFCCABLECARRIERSEGMENTTYPE, IFCPIPESEGMENTTYPE, IFCFLOWSEGMENTTYPE, IFCFANTYPE, IFCCOMPRESSORTYPE, IFCPUMPTYPE, IFCFLOWMOVINGDEVICETYPE, IFCDUCTFITTINGTYPE, IFCCABLEFITTINGTYPE, IFCCABLECARRIERFITTINGTYPE, IFCPIPEFITTINGTYPE, IFCJUNCTIONBOXTYPE, IFCFLOWFITTINGTYPE, IFCELECTRICTIMECONTROLTYPE, IFCELECTRICDISTRIBUTIONBOARDTYPE, IFCDAMPERTYPE, IFCAIRTERMINALBOXTYPE, IFCVALVETYPE, IFCSWITCHINGDEVICETYPE, IFCPROTECTIVEDEVICETYPE, IFCFLOWMETERTYPE, IFCFLOWCONTROLLERTYPE, IFCELECTRICMOTORTYPE, IFCELECTRICGENERATORTYPE, IFCCOOLINGTOWERTYPE, IFCCOOLEDBEAMTYPE, IFCCONDENSERTYPE, IFCCOILTYPE, IFCCHILLERTYPE, IFCBURNERTYPE, IFCBOILERTYPE, IFCAIRTOAIRHEATRECOVERYTYPE, IFCUNITARYEQUIPMENTTYPE, IFCTUBEBUNDLETYPE, IFCTRANSFORMERTYPE, IFCSOLARDEVICETYPE, IFCMOTORCONNECTIONTYPE, IFCHUMIDIFIERTYPE, IFCHEATEXCHANGERTYPE, IFCEVAPORATORTYPE, IFCEVAPORATIVECOOLERTYPE, IFCENGINETYPE, IFCENERGYCONVERSIONDEVICETYPE], 1758889154: [IFCCONTROLLER, IFCALARM, IFCACTUATOR, IFCUNITARYCONTROLELEMENT, IFCSENSOR, IFCPROTECTIVEDEVICETRIPPINGUNIT, IFCFLOWINSTRUMENT, IFCDISTRIBUTIONCONTROLELEMENT, IFCDISTRIBUTIONCHAMBERELEMENT, IFCFILTER, IFCDUCTSILENCER, IFCINTERCEPTOR, IFCFLOWTREATMENTDEVICE, IFCFIRESUPPRESSIONTERMINAL, IFCELECTRICAPPLIANCE, IFCCOMMUNICATIONSAPPLIANCE, IFCAUDIOVISUALAPPLIANCE, IFCAIRTERMINAL, IFCWASTETERMINAL, IFCSTACKTERMINAL, IFCSPACEHEATER, IFCSANITARYTERMINAL, IFCOUTLET, IFCMEDICALDEVICE, IFCLIGHTFIXTURE, IFCLAMP, IFCFLOWTERMINAL, IFCELECTRICFLOWSTORAGEDEVICE, IFCTANK, IFCFLOWSTORAGEDEVICE, IFCDUCTSEGMENT, IFCCABLESEGMENT, IFCCABLECARRIERSEGMENT, IFCPIPESEGMENT, IFCFLOWSEGMENT, IFCFAN, IFCCOMPRESSOR, IFCPUMP, IFCFLOWMOVINGDEVICE, IFCDUCTFITTING, IFCCABLEFITTING, IFCCABLECARRIERFITTING, IFCPIPEFITTING, IFCJUNCTIONBOX, IFCFLOWFITTING, IFCELECTRICTIMECONTROL, IFCELECTRICDISTRIBUTIONBOARD, IFCDAMPER, IFCAIRTERMINALBOX, IFCVALVE, IFCSWITCHINGDEVICE, IFCPROTECTIVEDEVICE, IFCFLOWMETER, IFCFLOWCONTROLLER, IFCELECTRICMOTOR, IFCELECTRICGENERATOR, IFCCOOLINGTOWER, IFCCOOLEDBEAM, IFCCONDENSER, IFCCOIL, IFCCHILLER, IFCBURNER, IFCBOILER, IFCAIRTOAIRHEATRECOVERY, IFCUNITARYEQUIPMENT, IFCTUBEBUNDLE, IFCTRANSFORMER, IFCSOLARDEVICE, IFCMOTORCONNECTION, IFCHUMIDIFIER, IFCHEATEXCHANGER, IFCEVAPORATOR, IFCEVAPORATIVECOOLER, IFCENGINE, IFCENERGYCONVERSIONDEVICE, IFCDISTRIBUTIONFLOWELEMENT, IFCDISTRIBUTIONELEMENT, IFCCIVILELEMENT, IFCBEAMSTANDARDCASE, IFCBEAM, IFCWINDOWSTANDARDCASE, IFCWINDOW, IFCWALLSTANDARDCASE, IFCWALLELEMENTEDCASE, IFCWALL, IFCSTAIRFLIGHT, IFCSTAIR, IFCSLABSTANDARDCASE, IFCSLABELEMENTEDCASE, IFCSLAB, IFCSHADINGDEVICE, IFCROOF, IFCRAMPFLIGHT, IFCRAMP, IFCRAILING, IFCPLATESTANDARDCASE, IFCPLATE, IFCPILE, IFCMEMBERSTANDARDCASE, IFCMEMBER, IFCFOOTING, IFCDOORSTANDARDCASE, IFCDOOR, IFCCURTAINWALL, IFCCOVERING, IFCCOLUMNSTANDARDCASE, IFCCOLUMN, IFCCHIMNEY, IFCBUILDINGELEMENTPROXY, IFCBUILDINGELEMENT, IFCVIRTUALELEMENT, IFCTRANSPORTELEMENT, IFCGEOGRAPHICELEMENT, IFCSYSTEMFURNITUREELEMENT, IFCFURNITURE, IFCFURNISHINGELEMENT, IFCSURFACEFEATURE, IFCVOIDINGFEATURE, IFCOPENINGSTANDARDCASE, IFCOPENINGELEMENT, IFCFEATUREELEMENTSUBTRACTION, IFCPROJECTIONELEMENT, IFCFEATUREELEMENTADDITION, IFCFEATUREELEMENT, IFCDISCRETEACCESSORY, IFCBUILDINGELEMENTPART, IFCVIBRATIONISOLATOR, IFCREINFORCINGBAR, IFCTENDONANCHOR, IFCTENDON, IFCREINFORCINGMESH, IFCREINFORCINGELEMENT, IFCMECHANICALFASTENER, IFCFASTENER, IFCELEMENTCOMPONENT, IFCELEMENTASSEMBLY], 1623761950: [IFCDISCRETEACCESSORY, IFCBUILDINGELEMENTPART, IFCVIBRATIONISOLATOR, IFCREINFORCINGBAR, IFCTENDONANCHOR, IFCTENDON, IFCREINFORCINGMESH, IFCREINFORCINGELEMENT, IFCMECHANICALFASTENER, IFCFASTENER], 2590856083: [IFCDISCRETEACCESSORYTYPE, IFCBUILDINGELEMENTPARTTYPE, IFCVIBRATIONISOLATORTYPE, IFCREINFORCINGBARTYPE, IFCTENDONTYPE, IFCTENDONANCHORTYPE, IFCREINFORCINGMESHTYPE, IFCREINFORCINGELEMENTTYPE, IFCMECHANICALFASTENERTYPE, IFCFASTENERTYPE], 2107101300: [IFCELECTRICMOTORTYPE, IFCELECTRICGENERATORTYPE, IFCCOOLINGTOWERTYPE, IFCCOOLEDBEAMTYPE, IFCCONDENSERTYPE, IFCCOILTYPE, IFCCHILLERTYPE, IFCBURNERTYPE, IFCBOILERTYPE, IFCAIRTOAIRHEATRECOVERYTYPE, IFCUNITARYEQUIPMENTTYPE, IFCTUBEBUNDLETYPE, IFCTRANSFORMERTYPE, IFCSOLARDEVICETYPE, IFCMOTORCONNECTIONTYPE, IFCHUMIDIFIERTYPE, IFCHEATEXCHANGERTYPE, IFCEVAPORATORTYPE, IFCEVAPORATIVECOOLERTYPE, IFCENGINETYPE], 2853485674: [IFCEXTERNALSPATIALELEMENT], 807026263: [IFCFACETEDBREPWITHVOIDS], 2827207264: [IFCSURFACEFEATURE, IFCVOIDINGFEATURE, IFCOPENINGSTANDARDCASE, IFCOPENINGELEMENT, IFCFEATUREELEMENTSUBTRACTION, IFCPROJECTIONELEMENT, IFCFEATUREELEMENTADDITION], 2143335405: [IFCPROJECTIONELEMENT], 1287392070: [IFCVOIDINGFEATURE, IFCOPENINGSTANDARDCASE, IFCOPENINGELEMENT], 3907093117: [IFCELECTRICTIMECONTROLTYPE, IFCELECTRICDISTRIBUTIONBOARDTYPE, IFCDAMPERTYPE, IFCAIRTERMINALBOXTYPE, IFCVALVETYPE, IFCSWITCHINGDEVICETYPE, IFCPROTECTIVEDEVICETYPE, IFCFLOWMETERTYPE], 3198132628: [IFCDUCTFITTINGTYPE, IFCCABLEFITTINGTYPE, IFCCABLECARRIERFITTINGTYPE, IFCPIPEFITTINGTYPE, IFCJUNCTIONBOXTYPE], 1482959167: [IFCFANTYPE, IFCCOMPRESSORTYPE, IFCPUMPTYPE], 1834744321: [IFCDUCTSEGMENTTYPE, IFCCABLESEGMENTTYPE, IFCCABLECARRIERSEGMENTTYPE, IFCPIPESEGMENTTYPE], 1339347760: [IFCELECTRICFLOWSTORAGEDEVICETYPE, IFCTANKTYPE], 2297155007: [IFCFIRESUPPRESSIONTERMINALTYPE, IFCELECTRICAPPLIANCETYPE, IFCCOMMUNICATIONSAPPLIANCETYPE, IFCAUDIOVISUALAPPLIANCETYPE, IFCAIRTERMINALTYPE, IFCWASTETERMINALTYPE, IFCSTACKTERMINALTYPE, IFCSPACEHEATERTYPE, IFCSANITARYTERMINALTYPE, IFCOUTLETTYPE, IFCMEDICALDEVICETYPE, IFCLIGHTFIXTURETYPE, IFCLAMPTYPE], 3009222698: [IFCFILTERTYPE, IFCDUCTSILENCERTYPE, IFCINTERCEPTORTYPE], 263784265: [IFCSYSTEMFURNITUREELEMENT, IFCFURNITURE], 2706460486: [IFCASSET, IFCSTRUCTURALANALYSISMODEL, IFCDISTRIBUTIONCIRCUIT, IFCDISTRIBUTIONSYSTEM, IFCBUILDINGSYSTEM, IFCZONE, IFCSYSTEM, IFCSTRUCTURALRESULTGROUP, IFCSTRUCTURALLOADCASE, IFCSTRUCTURALLOADGROUP, IFCINVENTORY], 3588315303: [IFCOPENINGSTANDARDCASE], 3740093272: [IFCDISTRIBUTIONPORT], 3027567501: [IFCREINFORCINGBAR, IFCTENDONANCHOR, IFCTENDON, IFCREINFORCINGMESH], 964333572: [IFCREINFORCINGBARTYPE, IFCTENDONTYPE, IFCTENDONANCHORTYPE, IFCREINFORCINGMESHTYPE], 682877961: [IFCSTRUCTURALPLANARACTION, IFCSTRUCTURALSURFACEACTION, IFCSTRUCTURALPOINTACTION, IFCSTRUCTURALLINEARACTION, IFCSTRUCTURALCURVEACTION], 1179482911: [IFCSTRUCTURALSURFACECONNECTION, IFCSTRUCTURALPOINTCONNECTION, IFCSTRUCTURALCURVECONNECTION], 1004757350: [IFCSTRUCTURALLINEARACTION], 214636428: [IFCSTRUCTURALCURVEMEMBERVARYING], 1252848954: [IFCSTRUCTURALLOADCASE], 3657597509: [IFCSTRUCTURALPLANARACTION], 2254336722: [IFCSTRUCTURALANALYSISMODEL, IFCDISTRIBUTIONCIRCUIT, IFCDISTRIBUTIONSYSTEM, IFCBUILDINGSYSTEM, IFCZONE], 1028945134: [IFCWORKSCHEDULE, IFCWORKPLAN], 1967976161: [IFCRATIONALBSPLINECURVEWITHKNOTS, IFCBSPLINECURVEWITHKNOTS], 2461110595: [IFCRATIONALBSPLINECURVEWITHKNOTS], 1136057603: [IFCOUTERBOUNDARYCURVE], 3299480353: [IFCBEAMSTANDARDCASE, IFCBEAM, IFCWINDOWSTANDARDCASE, IFCWINDOW, IFCWALLSTANDARDCASE, IFCWALLELEMENTEDCASE, IFCWALL, IFCSTAIRFLIGHT, IFCSTAIR, IFCSLABSTANDARDCASE, IFCSLABELEMENTEDCASE, IFCSLAB, IFCSHADINGDEVICE, IFCROOF, IFCRAMPFLIGHT, IFCRAMP, IFCRAILING, IFCPLATESTANDARDCASE, IFCPLATE, IFCPILE, IFCMEMBERSTANDARDCASE, IFCMEMBER, IFCFOOTING, IFCDOORSTANDARDCASE, IFCDOOR, IFCCURTAINWALL, IFCCOVERING, IFCCOLUMNSTANDARDCASE, IFCCOLUMN, IFCCHIMNEY, IFCBUILDINGELEMENTPROXY], 843113511: [IFCCOLUMNSTANDARDCASE], 2063403501: [IFCCONTROLLERTYPE, IFCALARMTYPE, IFCACTUATORTYPE, IFCUNITARYCONTROLELEMENTTYPE, IFCSENSORTYPE, IFCPROTECTIVEDEVICETRIPPINGUNITTYPE, IFCFLOWINSTRUMENTTYPE], 1945004755: [IFCCONTROLLER, IFCALARM, IFCACTUATOR, IFCUNITARYCONTROLELEMENT, IFCSENSOR, IFCPROTECTIVEDEVICETRIPPINGUNIT, IFCFLOWINSTRUMENT, IFCDISTRIBUTIONCONTROLELEMENT, IFCDISTRIBUTIONCHAMBERELEMENT, IFCFILTER, IFCDUCTSILENCER, IFCINTERCEPTOR, IFCFLOWTREATMENTDEVICE, IFCFIRESUPPRESSIONTERMINAL, IFCELECTRICAPPLIANCE, IFCCOMMUNICATIONSAPPLIANCE, IFCAUDIOVISUALAPPLIANCE, IFCAIRTERMINAL, IFCWASTETERMINAL, IFCSTACKTERMINAL, IFCSPACEHEATER, IFCSANITARYTERMINAL, IFCOUTLET, IFCMEDICALDEVICE, IFCLIGHTFIXTURE, IFCLAMP, IFCFLOWTERMINAL, IFCELECTRICFLOWSTORAGEDEVICE, IFCTANK, IFCFLOWSTORAGEDEVICE, IFCDUCTSEGMENT, IFCCABLESEGMENT, IFCCABLECARRIERSEGMENT, IFCPIPESEGMENT, IFCFLOWSEGMENT, IFCFAN, IFCCOMPRESSOR, IFCPUMP, IFCFLOWMOVINGDEVICE, IFCDUCTFITTING, IFCCABLEFITTING, IFCCABLECARRIERFITTING, IFCPIPEFITTING, IFCJUNCTIONBOX, IFCFLOWFITTING, IFCELECTRICTIMECONTROL, IFCELECTRICDISTRIBUTIONBOARD, IFCDAMPER, IFCAIRTERMINALBOX, IFCVALVE, IFCSWITCHINGDEVICE, IFCPROTECTIVEDEVICE, IFCFLOWMETER, IFCFLOWCONTROLLER, IFCELECTRICMOTOR, IFCELECTRICGENERATOR, IFCCOOLINGTOWER, IFCCOOLEDBEAM, IFCCONDENSER, IFCCOIL, IFCCHILLER, IFCBURNER, IFCBOILER, IFCAIRTOAIRHEATRECOVERY, IFCUNITARYEQUIPMENT, IFCTUBEBUNDLE, IFCTRANSFORMER, IFCSOLARDEVICE, IFCMOTORCONNECTION, IFCHUMIDIFIER, IFCHEATEXCHANGER, IFCEVAPORATOR, IFCEVAPORATIVECOOLER, IFCENGINE, IFCENERGYCONVERSIONDEVICE, IFCDISTRIBUTIONFLOWELEMENT], 3040386961: [IFCDISTRIBUTIONCHAMBERELEMENT, IFCFILTER, IFCDUCTSILENCER, IFCINTERCEPTOR, IFCFLOWTREATMENTDEVICE, IFCFIRESUPPRESSIONTERMINAL, IFCELECTRICAPPLIANCE, IFCCOMMUNICATIONSAPPLIANCE, IFCAUDIOVISUALAPPLIANCE, IFCAIRTERMINAL, IFCWASTETERMINAL, IFCSTACKTERMINAL, IFCSPACEHEATER, IFCSANITARYTERMINAL, IFCOUTLET, IFCMEDICALDEVICE, IFCLIGHTFIXTURE, IFCLAMP, IFCFLOWTERMINAL, IFCELECTRICFLOWSTORAGEDEVICE, IFCTANK, IFCFLOWSTORAGEDEVICE, IFCDUCTSEGMENT, IFCCABLESEGMENT, IFCCABLECARRIERSEGMENT, IFCPIPESEGMENT, IFCFLOWSEGMENT, IFCFAN, IFCCOMPRESSOR, IFCPUMP, IFCFLOWMOVINGDEVICE, IFCDUCTFITTING, IFCCABLEFITTING, IFCCABLECARRIERFITTING, IFCPIPEFITTING, IFCJUNCTIONBOX, IFCFLOWFITTING, IFCELECTRICTIMECONTROL, IFCELECTRICDISTRIBUTIONBOARD, IFCDAMPER, IFCAIRTERMINALBOX, IFCVALVE, IFCSWITCHINGDEVICE, IFCPROTECTIVEDEVICE, IFCFLOWMETER, IFCFLOWCONTROLLER, IFCELECTRICMOTOR, IFCELECTRICGENERATOR, IFCCOOLINGTOWER, IFCCOOLEDBEAM, IFCCONDENSER, IFCCOIL, IFCCHILLER, IFCBURNER, IFCBOILER, IFCAIRTOAIRHEATRECOVERY, IFCUNITARYEQUIPMENT, IFCTUBEBUNDLE, IFCTRANSFORMER, IFCSOLARDEVICE, IFCMOTORCONNECTION, IFCHUMIDIFIER, IFCHEATEXCHANGER, IFCEVAPORATOR, IFCEVAPORATIVECOOLER, IFCENGINE, IFCENERGYCONVERSIONDEVICE], 3205830791: [IFCDISTRIBUTIONCIRCUIT], 395920057: [IFCDOORSTANDARDCASE], 1658829314: [IFCELECTRICMOTOR, IFCELECTRICGENERATOR, IFCCOOLINGTOWER, IFCCOOLEDBEAM, IFCCONDENSER, IFCCOIL, IFCCHILLER, IFCBURNER, IFCBOILER, IFCAIRTOAIRHEATRECOVERY, IFCUNITARYEQUIPMENT, IFCTUBEBUNDLE, IFCTRANSFORMER, IFCSOLARDEVICE, IFCMOTORCONNECTION, IFCHUMIDIFIER, IFCHEATEXCHANGER, IFCEVAPORATOR, IFCEVAPORATIVECOOLER, IFCENGINE], 2058353004: [IFCELECTRICTIMECONTROL, IFCELECTRICDISTRIBUTIONBOARD, IFCDAMPER, IFCAIRTERMINALBOX, IFCVALVE, IFCSWITCHINGDEVICE, IFCPROTECTIVEDEVICE, IFCFLOWMETER], 4278956645: [IFCDUCTFITTING, IFCCABLEFITTING, IFCCABLECARRIERFITTING, IFCPIPEFITTING, IFCJUNCTIONBOX], 3132237377: [IFCFAN, IFCCOMPRESSOR, IFCPUMP], 987401354: [IFCDUCTSEGMENT, IFCCABLESEGMENT, IFCCABLECARRIERSEGMENT, IFCPIPESEGMENT], 707683696: [IFCELECTRICFLOWSTORAGEDEVICE, IFCTANK], 2223149337: [IFCFIRESUPPRESSIONTERMINAL, IFCELECTRICAPPLIANCE, IFCCOMMUNICATIONSAPPLIANCE, IFCAUDIOVISUALAPPLIANCE, IFCAIRTERMINAL, IFCWASTETERMINAL, IFCSTACKTERMINAL, IFCSPACEHEATER, IFCSANITARYTERMINAL, IFCOUTLET, IFCMEDICALDEVICE, IFCLIGHTFIXTURE, IFCLAMP], 3508470533: [IFCFILTER, IFCDUCTSILENCER, IFCINTERCEPTOR], 1073191201: [IFCMEMBERSTANDARDCASE], 3171933400: [IFCPLATESTANDARDCASE], 1529196076: [IFCSLABSTANDARDCASE, IFCSLABELEMENTEDCASE], 2391406946: [IFCWALLSTANDARDCASE, IFCWALLELEMENTEDCASE], 3304561284: [IFCWINDOWSTANDARDCASE], 753842376: [IFCBEAMSTANDARDCASE], 1062813311: [IFCCONTROLLER, IFCALARM, IFCACTUATOR, IFCUNITARYCONTROLELEMENT, IFCSENSOR, IFCPROTECTIVEDEVICETRIPPINGUNIT, IFCFLOWINSTRUMENT] }; InversePropertyDef[3] = { 3630933823: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]], 618182010: [["OfPerson", IFCPERSON, 7, true], ["OfOrganization", IFCORGANIZATION, 4, true]], 411424972: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]], 130549933: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["ApprovedObjects", IFCRELASSOCIATESAPPROVAL, 5, true], ["ApprovedResources", IFCRESOURCEAPPROVALRELATIONSHIP, 3, true], ["IsRelatedWith", IFCAPPROVALRELATIONSHIP, 3, true], ["Relates", IFCAPPROVALRELATIONSHIP, 2, true]], 1959218052: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["PropertiesForConstraint", IFCRESOURCECONSTRAINTRELATIONSHIP, 2, true]], 1466758467: [["HasCoordinateOperation", IFCCOORDINATEOPERATION, 0, true]], 602808272: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]], 3200245327: [["ExternalReferenceForResources", IFCEXTERNALREFERENCERELATIONSHIP, 2, true]], 2242383968: [["ExternalReferenceForResources", IFCEXTERNALREFERENCERELATIONSHIP, 2, true]], 1040185647: [["ExternalReferenceForResources", IFCEXTERNALREFERENCERELATIONSHIP, 2, true]], 3548104201: [["ExternalReferenceForResources", IFCEXTERNALREFERENCERELATIONSHIP, 2, true]], 852622518: [["PartOfW", IFCGRID, 9, true], ["PartOfV", IFCGRID, 8, true], ["PartOfU", IFCGRID, 7, true], ["HasIntersections", IFCVIRTUALGRIDINTERSECTION, 0, true]], 2655187982: [["LibraryInfoForObjects", IFCRELASSOCIATESLIBRARY, 5, true], ["HasLibraryReferences", IFCLIBRARYREFERENCE, 5, true]], 3452421091: [["ExternalReferenceForResources", IFCEXTERNALREFERENCERELATIONSHIP, 2, true], ["LibraryRefForObjects", IFCRELASSOCIATESLIBRARY, 5, true]], 760658860: [["AssociatedTo", IFCRELASSOCIATESMATERIAL, 5, true], ["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCMATERIALPROPERTIES, 3, true]], 248100487: [["AssociatedTo", IFCRELASSOCIATESMATERIAL, 5, true], ["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCMATERIALPROPERTIES, 3, true], ["ToMaterialLayerSet", IFCMATERIALLAYERSET, 0, false]], 3303938423: [["AssociatedTo", IFCRELASSOCIATESMATERIAL, 5, true], ["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCMATERIALPROPERTIES, 3, true]], 1847252529: [["AssociatedTo", IFCRELASSOCIATESMATERIAL, 5, true], ["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCMATERIALPROPERTIES, 3, true], ["ToMaterialLayerSet", IFCMATERIALLAYERSET, 0, false]], 2235152071: [["AssociatedTo", IFCRELASSOCIATESMATERIAL, 5, true], ["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCMATERIALPROPERTIES, 3, true], ["ToMaterialProfileSet", IFCMATERIALPROFILESET, 2, false]], 164193824: [["AssociatedTo", IFCRELASSOCIATESMATERIAL, 5, true], ["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCMATERIALPROPERTIES, 3, true]], 552965576: [["AssociatedTo", IFCRELASSOCIATESMATERIAL, 5, true], ["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCMATERIALPROPERTIES, 3, true], ["ToMaterialProfileSet", IFCMATERIALPROFILESET, 2, false]], 1507914824: [["AssociatedTo", IFCRELASSOCIATESMATERIAL, 5, true]], 3368373690: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["PropertiesForConstraint", IFCRESOURCECONSTRAINTRELATIONSHIP, 2, true]], 3701648758: [["PlacesObject", IFCPRODUCT, 5, true], ["ReferencedByPlacements", IFCLOCALPLACEMENT, 0, true]], 2251480897: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["PropertiesForConstraint", IFCRESOURCECONSTRAINTRELATIONSHIP, 2, true]], 4251960020: [["IsRelatedBy", IFCORGANIZATIONRELATIONSHIP, 3, true], ["Relates", IFCORGANIZATIONRELATIONSHIP, 2, true], ["Engages", IFCPERSONANDORGANIZATION, 1, true]], 2077209135: [["EngagedIn", IFCPERSONANDORGANIZATION, 0, true]], 2483315170: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["PartOfComplex", IFCPHYSICALCOMPLEXQUANTITY, 2, true]], 2226359599: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["PartOfComplex", IFCPHYSICALCOMPLEXQUANTITY, 2, true]], 3355820592: [["OfPerson", IFCPERSON, 7, true], ["OfOrganization", IFCORGANIZATION, 4, true]], 3958567839: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCPROFILEPROPERTIES, 3, true]], 3843373140: [["HasCoordinateOperation", IFCCOORDINATEOPERATION, 0, true]], 986844984: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]], 3710013099: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]], 2044713172: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["PartOfComplex", IFCPHYSICALCOMPLEXQUANTITY, 2, true]], 2093928680: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["PartOfComplex", IFCPHYSICALCOMPLEXQUANTITY, 2, true]], 931644368: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["PartOfComplex", IFCPHYSICALCOMPLEXQUANTITY, 2, true]], 3252649465: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["PartOfComplex", IFCPHYSICALCOMPLEXQUANTITY, 2, true]], 2405470396: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["PartOfComplex", IFCPHYSICALCOMPLEXQUANTITY, 2, true]], 825690147: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["PartOfComplex", IFCPHYSICALCOMPLEXQUANTITY, 2, true]], 1076942058: [["RepresentationMap", IFCREPRESENTATIONMAP, 1, true], ["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["OfProductRepresentation", IFCPRODUCTREPRESENTATION, 2, true]], 3377609919: [["RepresentationsInContext", IFCREPRESENTATION, 0, true]], 3008791417: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 1660063152: [["HasShapeAspects", IFCSHAPEASPECT, 4, true], ["MapUsage", IFCMAPPEDITEM, 0, true]], 3982875396: [["RepresentationMap", IFCREPRESENTATIONMAP, 1, true], ["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["OfProductRepresentation", IFCPRODUCTREPRESENTATION, 2, true], ["OfShapeAspect", IFCSHAPEASPECT, 0, true]], 4240577450: [["RepresentationMap", IFCREPRESENTATIONMAP, 1, true], ["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["OfProductRepresentation", IFCPRODUCTREPRESENTATION, 2, true], ["OfShapeAspect", IFCSHAPEASPECT, 0, true]], 2830218821: [["RepresentationMap", IFCREPRESENTATIONMAP, 1, true], ["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["OfProductRepresentation", IFCPRODUCTREPRESENTATION, 2, true]], 3958052878: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 3049322572: [["RepresentationMap", IFCREPRESENTATIONMAP, 1, true], ["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["OfProductRepresentation", IFCPRODUCTREPRESENTATION, 2, true]], 626085974: [["IsMappedBy", IFCTEXTURECOORDINATE, 0, true], ["UsedInStyles", IFCSURFACESTYLEWITHTEXTURES, 0, true]], 912023232: [["OfPerson", IFCPERSON, 7, true], ["OfOrganization", IFCORGANIZATION, 4, true]], 3101149627: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]], 1377556343: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 1735638870: [["RepresentationMap", IFCREPRESENTATIONMAP, 1, true], ["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["OfProductRepresentation", IFCPRODUCTREPRESENTATION, 2, true], ["OfShapeAspect", IFCSHAPEASPECT, 0, true]], 2799835756: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 1907098498: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 3798115385: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCPROFILEPROPERTIES, 3, true]], 1310608509: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCPROFILEPROPERTIES, 3, true]], 2705031697: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCPROFILEPROPERTIES, 3, true]], 616511568: [["IsMappedBy", IFCTEXTURECOORDINATE, 0, true], ["UsedInStyles", IFCSURFACESTYLEWITHTEXTURES, 0, true]], 3150382593: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCPROFILEPROPERTIES, 3, true]], 747523909: [["ClassificationForObjects", IFCRELASSOCIATESCLASSIFICATION, 5, true], ["HasReferences", IFCCLASSIFICATIONREFERENCE, 3, true]], 647927063: [["ExternalReferenceForResources", IFCEXTERNALREFERENCERELATIONSHIP, 2, true], ["ClassificationRefForObjects", IFCRELASSOCIATESCLASSIFICATION, 5, true], ["HasReferences", IFCCLASSIFICATIONREFERENCE, 3, true]], 1485152156: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCPROFILEPROPERTIES, 3, true]], 370225590: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 3050246964: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]], 2889183280: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]], 2713554722: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]], 3632507154: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCPROFILEPROPERTIES, 3, true]], 1154170062: [["DocumentInfoForObjects", IFCRELASSOCIATESDOCUMENT, 5, true], ["HasDocumentReferences", IFCDOCUMENTREFERENCE, 4, true], ["IsPointedTo", IFCDOCUMENTINFORMATIONRELATIONSHIP, 3, true], ["IsPointer", IFCDOCUMENTINFORMATIONRELATIONSHIP, 2, true]], 3732053477: [["ExternalReferenceForResources", IFCEXTERNALREFERENCERELATIONSHIP, 2, true], ["DocumentRefForObjects", IFCRELASSOCIATESDOCUMENT, 5, true]], 3900360178: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 476780140: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 297599258: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]], 2556980723: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true], ["HasTextureMaps", IFCTEXTUREMAP, 2, true]], 1809719519: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 803316827: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 3008276851: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true], ["HasTextureMaps", IFCTEXTUREMAP, 2, true]], 3448662350: [["RepresentationsInContext", IFCREPRESENTATION, 0, true], ["HasSubContexts", IFCGEOMETRICREPRESENTATIONSUBCONTEXT, 6, true], ["HasCoordinateOperation", IFCCOORDINATEOPERATION, 0, true]], 2453401579: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 4142052618: [["RepresentationsInContext", IFCREPRESENTATION, 0, true], ["HasSubContexts", IFCGEOMETRICREPRESENTATIONSUBCONTEXT, 6, true], ["HasCoordinateOperation", IFCCOORDINATEOPERATION, 0, true]], 3590301190: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 178086475: [["PlacesObject", IFCPRODUCT, 5, true], ["ReferencedByPlacements", IFCLOCALPLACEMENT, 0, true]], 812098782: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 3905492369: [["IsMappedBy", IFCTEXTURECOORDINATE, 0, true], ["UsedInStyles", IFCSURFACESTYLEWITHTEXTURES, 0, true]], 3741457305: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]], 1402838566: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 125510826: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 2604431987: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 4266656042: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 1520743889: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 3422422726: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 2624227202: [["PlacesObject", IFCPRODUCT, 5, true], ["ReferencedByPlacements", IFCLOCALPLACEMENT, 0, true]], 1008929658: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 2347385850: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 1838606355: [["AssociatedTo", IFCRELASSOCIATESMATERIAL, 5, true], ["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCMATERIALPROPERTIES, 3, true], ["HasRepresentation", IFCMATERIALDEFINITIONREPRESENTATION, 3, true], ["IsRelatedWith", IFCMATERIALRELATIONSHIP, 3, true], ["RelatesTo", IFCMATERIALRELATIONSHIP, 2, true]], 3708119e3: [["AssociatedTo", IFCRELASSOCIATESMATERIAL, 5, true], ["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCMATERIALPROPERTIES, 3, true], ["ToMaterialConstituentSet", IFCMATERIALCONSTITUENTSET, 2, false]], 2852063980: [["AssociatedTo", IFCRELASSOCIATESMATERIAL, 5, true], ["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCMATERIALPROPERTIES, 3, true]], 1303795690: [["AssociatedTo", IFCRELASSOCIATESMATERIAL, 5, true]], 3079605661: [["AssociatedTo", IFCRELASSOCIATESMATERIAL, 5, true]], 3404854881: [["AssociatedTo", IFCRELASSOCIATESMATERIAL, 5, true]], 3265635763: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]], 2998442950: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCPROFILEPROPERTIES, 3, true]], 219451334: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true]], 2665983363: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 1029017970: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 2529465313: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCPROFILEPROPERTIES, 3, true]], 2519244187: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 3021840470: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["PartOfComplex", IFCPHYSICALCOMPLEXQUANTITY, 2, true]], 597895409: [["IsMappedBy", IFCTEXTURECOORDINATE, 0, true], ["UsedInStyles", IFCSURFACESTYLEWITHTEXTURES, 0, true]], 2004835150: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 1663979128: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 2067069095: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 4022376103: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 1423911732: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 2924175390: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 2775532180: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 3778827333: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]], 673634403: [["ShapeOfProduct", IFCPRODUCT, 6, true], ["HasShapeAspects", IFCSHAPEASPECT, 4, true]], 2802850158: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]], 2598011224: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["PartOfPset", IFCPROPERTYSET, 4, true], ["PropertyForDependance", IFCPROPERTYDEPENDENCYRELATIONSHIP, 2, true], ["PropertyDependsOn", IFCPROPERTYDEPENDENCYRELATIONSHIP, 3, true], ["PartOfComplex", IFCCOMPLEXPROPERTY, 3, true], ["HasConstraints", IFCRESOURCECONSTRAINTRELATIONSHIP, 3, true], ["HasApprovals", IFCRESOURCEAPPROVALRELATIONSHIP, 2, true]], 1680319473: [["HasContext", IFCRELDECLARES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true]], 3357820518: [["HasContext", IFCRELDECLARES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["DefinesType", IFCTYPEOBJECT, 5, true], ["IsDefinedBy", IFCRELDEFINESBYTEMPLATE, 4, true], ["DefinesOccurrence", IFCRELDEFINESBYPROPERTIES, 5, true]], 1482703590: [["HasContext", IFCRELDECLARES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true]], 2090586900: [["HasContext", IFCRELDECLARES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["DefinesType", IFCTYPEOBJECT, 5, true], ["IsDefinedBy", IFCRELDEFINESBYTEMPLATE, 4, true], ["DefinesOccurrence", IFCRELDEFINESBYPROPERTIES, 5, true]], 3615266464: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCPROFILEPROPERTIES, 3, true]], 3413951693: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]], 1580146022: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]], 2778083089: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCPROFILEPROPERTIES, 3, true]], 2042790032: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]], 4165799628: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]], 1509187699: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 4124623270: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 3692461612: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["PartOfPset", IFCPROPERTYSET, 4, true], ["PropertyForDependance", IFCPROPERTYDEPENDENCYRELATIONSHIP, 2, true], ["PropertyDependsOn", IFCPROPERTYDEPENDENCYRELATIONSHIP, 3, true], ["PartOfComplex", IFCCOMPLEXPROPERTY, 3, true], ["HasConstraints", IFCRESOURCECONSTRAINTRELATIONSHIP, 3, true], ["HasApprovals", IFCRESOURCEAPPROVALRELATIONSHIP, 2, true]], 723233188: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 2233826070: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 2513912981: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 2247615214: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 1260650574: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 1096409881: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 230924584: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 3071757647: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCPROFILEPROPERTIES, 3, true]], 901063453: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 4282788508: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 3124975700: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 2715220739: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCPROFILEPROPERTIES, 3, true]], 1628702193: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true]], 3736923433: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["OperatesOn", IFCRELASSIGNSTOPROCESS, 6, true]], 2347495698: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 3698973494: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ResourceOf", IFCRELASSIGNSTORESOURCE, 6, true]], 427810014: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCPROFILEPROPERTIES, 3, true]], 1417489154: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 2759199220: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 1299126871: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 2543172580: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCPROFILEPROPERTIES, 3, true]], 3406155212: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true], ["HasTextureMaps", IFCTEXTUREMAP, 2, true]], 669184980: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 3207858831: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCPROFILEPROPERTIES, 3, true]], 4261334040: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 3125803723: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 2740243338: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 2736907675: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 4182860854: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 2581212453: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 2713105998: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 2898889636: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCPROFILEPROPERTIES, 3, true]], 1123145078: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 574549367: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 1675464909: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 2059837836: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 59481748: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 3749851601: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 3486308946: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 3331915920: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 1416205885: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 1383045692: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCPROFILEPROPERTIES, 3, true]], 2205249479: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 2542286263: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["PartOfPset", IFCPROPERTYSET, 4, true], ["PropertyForDependance", IFCPROPERTYDEPENDENCYRELATIONSHIP, 2, true], ["PropertyDependsOn", IFCPROPERTYDEPENDENCYRELATIONSHIP, 3, true], ["PartOfComplex", IFCCOMPLEXPROPERTY, 3, true], ["HasConstraints", IFCRESOURCECONSTRAINTRELATIONSHIP, 3, true], ["HasApprovals", IFCRESOURCEAPPROVALRELATIONSHIP, 2, true]], 2485617015: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true], ["UsingCurves", IFCCOMPOSITECURVE, 0, true]], 2574617495: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ResourceOf", IFCRELASSIGNSTORESOURCE, 6, true]], 3419103109: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["Declares", IFCRELDECLARES, 4, true]], 1815067380: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ResourceOf", IFCRELASSIGNSTORESOURCE, 6, true]], 2506170314: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 2147822146: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 2601014836: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 2827736869: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 2629017746: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 32440307: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 526551008: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 1472233963: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 1883228015: [["HasContext", IFCRELDECLARES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["DefinesType", IFCTYPEOBJECT, 5, true], ["IsDefinedBy", IFCRELDEFINESBYTEMPLATE, 4, true], ["DefinesOccurrence", IFCRELDEFINESBYPROPERTIES, 5, true]], 339256511: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 2777663545: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 2835456948: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCPROFILEPROPERTIES, 3, true]], 4024345920: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["OperatesOn", IFCRELASSIGNSTOPROCESS, 6, true]], 477187591: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 2804161546: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 2047409740: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 374418227: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 315944413: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 2652556860: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 4238390223: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 1268542332: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 4095422895: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 987898635: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 1484403080: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCPROFILEPROPERTIES, 3, true]], 178912537: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true], ["ToFaceSet", IFCPOLYGONALFACESET, 2, true]], 2294589976: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true], ["ToFaceSet", IFCPOLYGONALFACESET, 2, true]], 572779678: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCPROFILEPROPERTIES, 3, true]], 428585644: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ResourceOf", IFCRELASSIGNSTORESOURCE, 6, true]], 1281925730: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 1425443689: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 3888040117: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true]], 3388369263: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 3505215534: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 1682466193: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 603570806: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 220341763: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 3967405729: [["HasContext", IFCRELDECLARES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["DefinesType", IFCTYPEOBJECT, 5, true], ["IsDefinedBy", IFCRELDEFINESBYTEMPLATE, 4, true], ["DefinesOccurrence", IFCRELDEFINESBYPROPERTIES, 5, true]], 569719735: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["OperatesOn", IFCRELASSIGNSTOPROCESS, 6, true]], 2945172077: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["IsPredecessorTo", IFCRELSEQUENCE, 4, true], ["IsSuccessorFrom", IFCRELSEQUENCE, 5, true], ["OperatesOn", IFCRELASSIGNSTOPROCESS, 6, true]], 4208778838: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 103090709: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["Declares", IFCRELDECLARES, 4, true]], 653396225: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["Declares", IFCRELDECLARES, 4, true]], 871118103: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["PartOfPset", IFCPROPERTYSET, 4, true], ["PropertyForDependance", IFCPROPERTYDEPENDENCYRELATIONSHIP, 2, true], ["PropertyDependsOn", IFCPROPERTYDEPENDENCYRELATIONSHIP, 3, true], ["PartOfComplex", IFCCOMPLEXPROPERTY, 3, true], ["HasConstraints", IFCRESOURCECONSTRAINTRELATIONSHIP, 3, true], ["HasApprovals", IFCRESOURCEAPPROVALRELATIONSHIP, 2, true]], 4166981789: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["PartOfPset", IFCPROPERTYSET, 4, true], ["PropertyForDependance", IFCPROPERTYDEPENDENCYRELATIONSHIP, 2, true], ["PropertyDependsOn", IFCPROPERTYDEPENDENCYRELATIONSHIP, 3, true], ["PartOfComplex", IFCCOMPLEXPROPERTY, 3, true], ["HasConstraints", IFCRESOURCECONSTRAINTRELATIONSHIP, 3, true], ["HasApprovals", IFCRESOURCEAPPROVALRELATIONSHIP, 2, true]], 2752243245: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["PartOfPset", IFCPROPERTYSET, 4, true], ["PropertyForDependance", IFCPROPERTYDEPENDENCYRELATIONSHIP, 2, true], ["PropertyDependsOn", IFCPROPERTYDEPENDENCYRELATIONSHIP, 3, true], ["PartOfComplex", IFCCOMPLEXPROPERTY, 3, true], ["HasConstraints", IFCRESOURCECONSTRAINTRELATIONSHIP, 3, true], ["HasApprovals", IFCRESOURCEAPPROVALRELATIONSHIP, 2, true]], 941946838: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["PartOfPset", IFCPROPERTYSET, 4, true], ["PropertyForDependance", IFCPROPERTYDEPENDENCYRELATIONSHIP, 2, true], ["PropertyDependsOn", IFCPROPERTYDEPENDENCYRELATIONSHIP, 3, true], ["PartOfComplex", IFCCOMPLEXPROPERTY, 3, true], ["HasConstraints", IFCRESOURCECONSTRAINTRELATIONSHIP, 3, true], ["HasApprovals", IFCRESOURCEAPPROVALRELATIONSHIP, 2, true]], 1451395588: [["HasContext", IFCRELDECLARES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["DefinesType", IFCTYPEOBJECT, 5, true], ["IsDefinedBy", IFCRELDEFINESBYTEMPLATE, 4, true], ["DefinesOccurrence", IFCRELDEFINESBYPROPERTIES, 5, true]], 492091185: [["HasContext", IFCRELDECLARES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Defines", IFCRELDEFINESBYTEMPLATE, 5, true]], 3650150729: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["PartOfPset", IFCPROPERTYSET, 4, true], ["PropertyForDependance", IFCPROPERTYDEPENDENCYRELATIONSHIP, 2, true], ["PropertyDependsOn", IFCPROPERTYDEPENDENCYRELATIONSHIP, 3, true], ["PartOfComplex", IFCCOMPLEXPROPERTY, 3, true], ["HasConstraints", IFCRESOURCECONSTRAINTRELATIONSHIP, 3, true], ["HasApprovals", IFCRESOURCEAPPROVALRELATIONSHIP, 2, true]], 110355661: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["PartOfPset", IFCPROPERTYSET, 4, true], ["PropertyForDependance", IFCPROPERTYDEPENDENCYRELATIONSHIP, 2, true], ["PropertyDependsOn", IFCPROPERTYDEPENDENCYRELATIONSHIP, 3, true], ["PartOfComplex", IFCCOMPLEXPROPERTY, 3, true], ["HasConstraints", IFCRESOURCECONSTRAINTRELATIONSHIP, 3, true], ["HasApprovals", IFCRESOURCEAPPROVALRELATIONSHIP, 2, true]], 3521284610: [["HasContext", IFCRELDECLARES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["PartOfComplexTemplate", IFCCOMPLEXPROPERTYTEMPLATE, 6, true], ["PartOfPsetTemplate", IFCPROPERTYSETTEMPLATE, 6, true]], 3219374653: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 2770003689: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCPROFILEPROPERTIES, 3, true]], 2798486643: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 3454111270: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 3765753017: [["HasContext", IFCRELDECLARES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["DefinesType", IFCTYPEOBJECT, 5, true], ["IsDefinedBy", IFCRELDEFINESBYTEMPLATE, 4, true], ["DefinesOccurrence", IFCRELDEFINESBYPROPERTIES, 5, true]], 3523091289: [["InnerBoundaries", IFCRELSPACEBOUNDARY1STLEVEL, 9, true]], 1521410863: [["InnerBoundaries", IFCRELSPACEBOUNDARY1STLEVEL, 9, true], ["Corresponds", IFCRELSPACEBOUNDARY2NDLEVEL, 10, true]], 816062949: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true], ["UsingCurves", IFCCOMPOSITECURVE, 0, true]], 2914609552: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ResourceOf", IFCRELASSIGNSTORESOURCE, 6, true]], 1856042241: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 3243963512: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 4158566097: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 3626867408: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 3663146110: [["HasContext", IFCRELDECLARES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["PartOfComplexTemplate", IFCCOMPLEXPROPERTYTEMPLATE, 6, true], ["PartOfPsetTemplate", IFCPROPERTYSETTEMPLATE, 6, true]], 1412071761: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["ContainsElements", IFCRELCONTAINEDINSPATIALSTRUCTURE, 5, true], ["ServicedBySystems", IFCRELSERVICESBUILDINGS, 5, true], ["ReferencesElements", IFCRELREFERENCEDINSPATIALSTRUCTURE, 5, true]], 710998568: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 2706606064: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["ContainsElements", IFCRELCONTAINEDINSPATIALSTRUCTURE, 5, true], ["ServicedBySystems", IFCRELSERVICESBUILDINGS, 5, true], ["ReferencesElements", IFCRELREFERENCEDINSPATIALSTRUCTURE, 5, true]], 3893378262: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 463610769: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["ContainsElements", IFCRELCONTAINEDINSPATIALSTRUCTURE, 5, true], ["ServicedBySystems", IFCRELSERVICESBUILDINGS, 5, true], ["ReferencesElements", IFCRELREFERENCEDINSPATIALSTRUCTURE, 5, true]], 2481509218: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 451544542: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 4015995234: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 3544373492: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["AssignedToStructuralItem", IFCRELCONNECTSSTRUCTURALACTIVITY, 5, true]], 3136571912: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["AssignedStructuralActivity", IFCRELCONNECTSSTRUCTURALACTIVITY, 4, true]], 530289379: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["AssignedStructuralActivity", IFCRELCONNECTSSTRUCTURALACTIVITY, 4, true], ["ConnectedBy", IFCRELCONNECTSSTRUCTURALMEMBER, 4, true]], 3689010777: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["AssignedToStructuralItem", IFCRELCONNECTSSTRUCTURALACTIVITY, 5, true]], 3979015343: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["AssignedStructuralActivity", IFCRELCONNECTSSTRUCTURALACTIVITY, 4, true], ["ConnectedBy", IFCRELCONNECTSSTRUCTURALMEMBER, 4, true]], 2218152070: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["AssignedStructuralActivity", IFCRELCONNECTSSTRUCTURALACTIVITY, 4, true], ["ConnectedBy", IFCRELCONNECTSSTRUCTURALMEMBER, 4, true]], 603775116: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["AssignedToStructuralItem", IFCRELCONNECTSSTRUCTURALACTIVITY, 5, true]], 4095615324: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ResourceOf", IFCRELASSIGNSTORESOURCE, 6, true]], 699246055: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 2028607225: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 2809605785: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 4124788165: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 1580310250: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 3473067441: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["IsPredecessorTo", IFCRELSEQUENCE, 4, true], ["IsSuccessorFrom", IFCRELSEQUENCE, 5, true], ["OperatesOn", IFCRELASSIGNSTOPROCESS, 6, true]], 3206491090: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["OperatesOn", IFCRELASSIGNSTOPROCESS, 6, true]], 2387106220: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true], ["HasColours", IFCINDEXEDCOLOURMAP, 0, true], ["HasTextures", IFCINDEXEDTEXTUREMAP, 1, true]], 1935646853: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 2097647324: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 2916149573: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true], ["HasColours", IFCINDEXEDCOLOURMAP, 0, true], ["HasTextures", IFCINDEXEDTEXTUREMAP, 1, true]], 336235671: [["HasContext", IFCRELDECLARES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["DefinesType", IFCTYPEOBJECT, 5, true], ["IsDefinedBy", IFCRELDEFINESBYTEMPLATE, 4, true], ["DefinesOccurrence", IFCRELDEFINESBYPROPERTIES, 5, true]], 512836454: [["HasContext", IFCRELDECLARES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["DefinesType", IFCTYPEOBJECT, 5, true], ["IsDefinedBy", IFCRELDEFINESBYTEMPLATE, 4, true], ["DefinesOccurrence", IFCRELDEFINESBYPROPERTIES, 5, true]], 2296667514: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["IsActingUpon", IFCRELASSIGNSTOACTOR, 6, true]], 1635779807: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 2603310189: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 1674181508: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]], 2887950389: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 167062518: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 1334484129: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 3649129432: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 1260505505: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 4031249490: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["ContainsElements", IFCRELCONTAINEDINSPATIALSTRUCTURE, 5, true], ["ServicedBySystems", IFCRELSERVICESBUILDINGS, 5, true], ["ReferencesElements", IFCRELREFERENCEDINSPATIALSTRUCTURE, 5, true]], 1950629157: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 3124254112: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["ContainsElements", IFCRELCONTAINEDINSPATIALSTRUCTURE, 5, true], ["ServicedBySystems", IFCRELSERVICESBUILDINGS, 5, true], ["ReferencesElements", IFCRELREFERENCEDINSPATIALSTRUCTURE, 5, true]], 2197970202: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 2937912522: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCPROFILEPROPERTIES, 3, true]], 3893394355: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 300633059: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 3875453745: [["HasContext", IFCRELDECLARES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["PartOfComplexTemplate", IFCCOMPLEXPROPERTYTEMPLATE, 6, true], ["PartOfPsetTemplate", IFCPROPERTYSETTEMPLATE, 6, true]], 3732776249: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 15328376: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 2510884976: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 2185764099: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ResourceOf", IFCRELASSIGNSTORESOURCE, 6, true]], 4105962743: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ResourceOf", IFCRELASSIGNSTORESOURCE, 6, true]], 1525564444: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ResourceOf", IFCRELASSIGNSTORESOURCE, 6, true]], 2559216714: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ResourceOf", IFCRELASSIGNSTORESOURCE, 6, true]], 3293443760: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["Controls", IFCRELASSIGNSTOCONTROL, 6, true]], 3895139033: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["Controls", IFCRELASSIGNSTOCONTROL, 6, true]], 1419761937: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["Controls", IFCRELASSIGNSTOCONTROL, 6, true]], 1916426348: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 3295246426: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ResourceOf", IFCRELASSIGNSTORESOURCE, 6, true]], 1457835157: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 1213902940: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 3256556792: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 3849074793: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 2963535650: [["HasContext", IFCRELDECLARES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["DefinesType", IFCTYPEOBJECT, 5, true], ["IsDefinedBy", IFCRELDEFINESBYTEMPLATE, 4, true], ["DefinesOccurrence", IFCRELDEFINESBYPROPERTIES, 5, true]], 1714330368: [["HasContext", IFCRELDECLARES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["DefinesType", IFCTYPEOBJECT, 5, true], ["IsDefinedBy", IFCRELDEFINESBYTEMPLATE, 4, true], ["DefinesOccurrence", IFCRELDEFINESBYPROPERTIES, 5, true]], 2323601079: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 1758889154: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true]], 4123344466: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true]], 2397081782: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 1623761950: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true]], 2590856083: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 1704287377: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 2107101300: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 132023988: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 3174744832: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 3390157468: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 4148101412: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["IsPredecessorTo", IFCRELSEQUENCE, 4, true], ["IsSuccessorFrom", IFCRELSEQUENCE, 5, true], ["OperatesOn", IFCRELASSIGNSTOPROCESS, 6, true]], 2853485674: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["ContainsElements", IFCRELCONTAINEDINSPATIALSTRUCTURE, 5, true], ["ServicedBySystems", IFCRELSERVICESBUILDINGS, 5, true], ["ReferencesElements", IFCRELREFERENCEDINSPATIALSTRUCTURE, 5, true]], 807026263: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 3737207727: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 647756555: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true]], 2489546625: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 2827207264: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true]], 2143335405: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["ProjectsElements", IFCRELPROJECTSELEMENT, 5, false]], 1287392070: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["VoidsElements", IFCRELVOIDSELEMENT, 5, false]], 3907093117: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 3198132628: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 3815607619: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 1482959167: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 1834744321: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 1339347760: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 2297155007: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 3009222698: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 1893162501: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 263784265: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true]], 1509553395: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true]], 3493046030: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true]], 3009204131: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]], 2706460486: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["IsGroupedBy", IFCRELASSIGNSTOGROUP, 6, true]], 1251058090: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 1806887404: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 2571569899: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 3946677679: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 3113134337: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 2391368822: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["IsGroupedBy", IFCRELASSIGNSTOGROUP, 6, true]], 4288270099: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 3827777499: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ResourceOf", IFCRELASSIGNSTORESOURCE, 6, true]], 1051575348: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 1161773419: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 377706215: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true]], 2108223431: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 1114901282: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 3181161470: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 977012517: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 4143007308: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["IsActingUpon", IFCRELASSIGNSTOACTOR, 6, true]], 3588315303: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["VoidsElements", IFCRELVOIDSELEMENT, 5, false], ["HasFillings", IFCRELFILLSELEMENT, 4, true]], 3079942009: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["VoidsElements", IFCRELVOIDSELEMENT, 5, false], ["HasFillings", IFCRELFILLSELEMENT, 4, true]], 2837617999: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 2382730787: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["Controls", IFCRELASSIGNSTOCONTROL, 6, true]], 3566463478: [["HasContext", IFCRELDECLARES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["DefinesType", IFCTYPEOBJECT, 5, true], ["IsDefinedBy", IFCRELDEFINESBYTEMPLATE, 4, true], ["DefinesOccurrence", IFCRELDEFINESBYPROPERTIES, 5, true]], 3327091369: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["Controls", IFCRELASSIGNSTOCONTROL, 6, true]], 1158309216: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 804291784: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 4231323485: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 4017108033: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 2839578677: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true], ["HasColours", IFCINDEXEDCOLOURMAP, 0, true], ["HasTextures", IFCINDEXEDTEXTUREMAP, 1, true]], 3724593414: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 3740093272: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["ContainedIn", IFCRELCONNECTSPORTTOELEMENT, 4, true], ["ConnectedFrom", IFCRELCONNECTSPORTS, 5, true], ["ConnectedTo", IFCRELCONNECTSPORTS, 4, true]], 2744685151: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["IsPredecessorTo", IFCRELSEQUENCE, 4, true], ["IsSuccessorFrom", IFCRELSEQUENCE, 5, true], ["OperatesOn", IFCRELASSIGNSTOPROCESS, 6, true]], 2904328755: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["Controls", IFCRELASSIGNSTOCONTROL, 6, true]], 3651124850: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["ProjectsElements", IFCRELPROJECTSELEMENT, 5, false]], 1842657554: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 2250791053: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 2893384427: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 2324767716: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 1469900589: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 683857671: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 3027567501: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true]], 964333572: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 2320036040: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true]], 2310774935: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 2781568857: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 1768891740: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 2157484638: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 4074543187: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 4097777520: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["ContainsElements", IFCRELCONTAINEDINSPATIALSTRUCTURE, 5, true], ["ServicedBySystems", IFCRELSERVICESBUILDINGS, 5, true], ["ReferencesElements", IFCRELREFERENCEDINSPATIALSTRUCTURE, 5, true]], 2533589738: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 1072016465: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 3856911033: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["ContainsElements", IFCRELCONTAINEDINSPATIALSTRUCTURE, 5, true], ["ServicedBySystems", IFCRELSERVICESBUILDINGS, 5, true], ["ReferencesElements", IFCRELREFERENCEDINSPATIALSTRUCTURE, 5, true], ["HasCoverings", IFCRELCOVERSSPACES, 4, true], ["BoundedBy", IFCRELSPACEBOUNDARY, 4, true]], 1305183839: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 3812236995: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 3112655638: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 1039846685: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 338393293: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 682877961: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["AssignedToStructuralItem", IFCRELCONNECTSSTRUCTURALACTIVITY, 5, true]], 1179482911: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["AssignedStructuralActivity", IFCRELCONNECTSSTRUCTURALACTIVITY, 4, true], ["ConnectsStructuralMembers", IFCRELCONNECTSSTRUCTURALMEMBER, 5, true]], 1004757350: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["AssignedToStructuralItem", IFCRELCONNECTSSTRUCTURALACTIVITY, 5, true]], 4243806635: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["AssignedStructuralActivity", IFCRELCONNECTSSTRUCTURALACTIVITY, 4, true], ["ConnectsStructuralMembers", IFCRELCONNECTSSTRUCTURALMEMBER, 5, true]], 214636428: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["AssignedStructuralActivity", IFCRELCONNECTSSTRUCTURALACTIVITY, 4, true], ["ConnectedBy", IFCRELCONNECTSSTRUCTURALMEMBER, 4, true]], 2445595289: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["AssignedStructuralActivity", IFCRELCONNECTSSTRUCTURALACTIVITY, 4, true], ["ConnectedBy", IFCRELCONNECTSSTRUCTURALMEMBER, 4, true]], 2757150158: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["AssignedToStructuralItem", IFCRELCONNECTSSTRUCTURALACTIVITY, 5, true]], 1807405624: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["AssignedToStructuralItem", IFCRELCONNECTSSTRUCTURALACTIVITY, 5, true]], 1252848954: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["IsGroupedBy", IFCRELASSIGNSTOGROUP, 6, true], ["SourceOfResultGroup", IFCSTRUCTURALRESULTGROUP, 6, true], ["LoadGroupFor", IFCSTRUCTURALANALYSISMODEL, 7, true]], 2082059205: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["AssignedToStructuralItem", IFCRELCONNECTSSTRUCTURALACTIVITY, 5, true]], 734778138: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["AssignedStructuralActivity", IFCRELCONNECTSSTRUCTURALACTIVITY, 4, true], ["ConnectsStructuralMembers", IFCRELCONNECTSSTRUCTURALMEMBER, 5, true]], 1235345126: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["AssignedToStructuralItem", IFCRELCONNECTSSTRUCTURALACTIVITY, 5, true]], 2986769608: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["IsGroupedBy", IFCRELASSIGNSTOGROUP, 6, true], ["ResultGroupFor", IFCSTRUCTURALANALYSISMODEL, 8, true]], 3657597509: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["AssignedToStructuralItem", IFCRELCONNECTSSTRUCTURALACTIVITY, 5, true]], 1975003073: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["AssignedStructuralActivity", IFCRELCONNECTSSTRUCTURALACTIVITY, 4, true], ["ConnectsStructuralMembers", IFCRELCONNECTSSTRUCTURALMEMBER, 5, true]], 148013059: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ResourceOf", IFCRELASSIGNSTORESOURCE, 6, true]], 3101698114: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true]], 2315554128: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 2254336722: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["IsGroupedBy", IFCRELASSIGNSTOGROUP, 6, true], ["ServicesBuildings", IFCRELSERVICESBUILDINGS, 4, true]], 413509423: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true]], 5716631: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 3824725483: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true]], 2347447852: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true]], 3081323446: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 2415094496: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 1692211062: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 1620046519: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true]], 3593883385: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 1600972822: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 1911125066: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 728799441: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 2391383451: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true]], 3313531582: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 2769231204: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true]], 926996030: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["VoidsElements", IFCRELVOIDSELEMENT, 5, false]], 1898987631: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 1133259667: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 4009809668: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 4088093105: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["Controls", IFCRELASSIGNSTOCONTROL, 6, true]], 1028945134: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["Controls", IFCRELASSIGNSTOCONTROL, 6, true]], 4218914973: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["Controls", IFCRELASSIGNSTOCONTROL, 6, true]], 3342526732: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["Controls", IFCRELASSIGNSTOCONTROL, 6, true]], 1033361043: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["IsGroupedBy", IFCRELASSIGNSTOGROUP, 6, true], ["ServicesBuildings", IFCRELSERVICESBUILDINGS, 4, true]], 3821786052: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["Controls", IFCRELASSIGNSTOCONTROL, 6, true]], 1411407467: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 3352864051: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 1871374353: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 3460190687: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["IsGroupedBy", IFCRELASSIGNSTOGROUP, 6, true]], 1532957894: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 1967976161: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 2461110595: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 819618141: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 231477066: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 1136057603: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 3299480353: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true]], 2979338954: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true]], 39481116: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 1095909175: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true]], 1909888760: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 1177604601: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["IsGroupedBy", IFCRELASSIGNSTOGROUP, 6, true], ["ServicesBuildings", IFCRELSERVICESBUILDINGS, 4, true]], 2188180465: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 395041908: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 3293546465: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 2674252688: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 1285652485: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 2951183804: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 3296154744: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true]], 2611217952: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 1677625105: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true]], 2301859152: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 843113511: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true]], 905975707: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true]], 400855858: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 3850581409: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 2816379211: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 3898045240: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ResourceOf", IFCRELASSIGNSTORESOURCE, 6, true]], 1060000209: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ResourceOf", IFCRELASSIGNSTORESOURCE, 6, true]], 488727124: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ResourceOf", IFCRELASSIGNSTORESOURCE, 6, true]], 335055490: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 2954562838: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 1973544240: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["CoversSpaces", IFCRELCOVERSSPACES, 5, true], ["CoversElements", IFCRELCOVERSBLDGELEMENTS, 5, true]], 3495092785: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true]], 3961806047: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 1335981549: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true]], 2635815018: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 1599208980: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 2063403501: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 1945004755: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true]], 3040386961: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], 3041715199: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["ContainedIn", IFCRELCONNECTSPORTTOELEMENT, 4, true], ["ConnectedFrom", IFCRELCONNECTSPORTS, 5, true], ["ConnectedTo", IFCRELCONNECTSPORTS, 4, true]], 3205830791: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["IsGroupedBy", IFCRELASSIGNSTOGROUP, 6, true], ["ServicesBuildings", IFCRELSERVICESBUILDINGS, 4, true]], 395920057: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true]], 3242481149: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true]], 869906466: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 3760055223: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 2030761528: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 663422040: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 2417008758: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 3277789161: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 1534661035: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 1217240411: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 712377611: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 1658829314: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], 2814081492: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], 3747195512: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], 484807127: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], 1209101575: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["ContainsElements", IFCRELCONTAINEDINSPATIALSTRUCTURE, 5, true], ["ServicedBySystems", IFCRELSERVICESBUILDINGS, 5, true], ["ReferencesElements", IFCRELREFERENCEDINSPATIALSTRUCTURE, 5, true], ["BoundedBy", IFCRELSPACEBOUNDARY, 4, true]], 346874300: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 1810631287: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 4222183408: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 2058353004: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], 4278956645: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], 4037862832: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 2188021234: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], 3132237377: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], 987401354: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], 707683696: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], 2223149337: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], 3508470533: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], 900683007: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true]], 3319311131: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], 2068733104: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], 4175244083: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], 2176052936: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], 76236018: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], 629592764: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], 1437502449: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], 1073191201: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true]], 1911478936: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true]], 2474470126: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], 144952367: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 3694346114: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], 1687234759: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true]], 310824031: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], 3612865200: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], 3171933400: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true]], 1156407060: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true]], 738039164: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], 655969474: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 90941305: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], 2262370178: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true]], 3024970846: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true]], 3283111854: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true]], 1232101972: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]], 979691226: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true]], 2572171363: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 2016517767: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true]], 3053780830: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], 1783015770: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 1329646415: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true]], 1529196076: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true]], 3127900445: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true]], 3027962421: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true]], 3420628829: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], 1999602285: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], 1404847402: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], 331165859: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true]], 4252922144: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true]], 2515109513: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["IsGroupedBy", IFCRELASSIGNSTOGROUP, 6, true], ["ServicesBuildings", IFCRELSERVICESBUILDINGS, 4, true]], 385403989: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["IsGroupedBy", IFCRELASSIGNSTOGROUP, 6, true], ["SourceOfResultGroup", IFCSTRUCTURALRESULTGROUP, 6, true], ["LoadGroupFor", IFCSTRUCTURALANALYSISMODEL, 7, true]], 1621171031: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["AssignedToStructuralItem", IFCRELCONNECTSSTRUCTURALACTIVITY, 5, true]], 1162798199: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], 812556717: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], 3825984169: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], 3026737570: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], 3179687236: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 4292641817: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], 4207607924: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], 2391406946: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true]], 4156078855: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true]], 3512223829: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true]], 4237592921: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], 3304561284: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true]], 486154966: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true]], 2874132201: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 1634111441: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], 177149247: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], 2056796094: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], 3001207471: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 277319702: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], 753842376: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true]], 2906023776: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true]], 32344328: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], 2938176219: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], 635142910: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], 3758799889: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], 1051757585: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], 4217484030: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], 3902619387: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], 639361253: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], 3221913625: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], 3571504051: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], 2272882330: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], 578613899: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]], 4136498852: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], 3640358203: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], 4074379575: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], 1052013943: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], 562808652: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["IsGroupedBy", IFCRELASSIGNSTOGROUP, 6, true], ["ServicesBuildings", IFCRELSERVICESBUILDINGS, 4, true]], 1062813311: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["AssignedToFlowElement", IFCRELFLOWCONTROLELEMENTS, 4, true]], 342316401: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], 3518393246: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], 1360408905: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], 1904799276: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], 862014818: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], 3310460725: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], 264262732: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], 402227799: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], 1003880860: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], 3415622556: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], 819412036: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], 1426591983: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]], 182646315: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["AssignedToFlowElement", IFCRELFLOWCONTROLELEMENTS, 4, true]], 2295281155: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["AssignedToFlowElement", IFCRELFLOWCONTROLELEMENTS, 4, true]], 4086658281: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["AssignedToFlowElement", IFCRELFLOWCONTROLELEMENTS, 4, true]], 630975310: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["AssignedToFlowElement", IFCRELFLOWCONTROLELEMENTS, 4, true]], 4288193352: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["AssignedToFlowElement", IFCRELFLOWCONTROLELEMENTS, 4, true]], 3087945054: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["AssignedToFlowElement", IFCRELFLOWCONTROLELEMENTS, 4, true]], 25142252: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["AssignedToFlowElement", IFCRELFLOWCONTROLELEMENTS, 4, true]] }; Constructors[3] = { 3630933823: (ID, a) => new IFC4.IfcActorRole(ID, a[0], a[1], a[2]), 618182010: (ID, a) => new IFC4.IfcAddress(ID, a[0], a[1], a[2]), 639542469: (ID, a) => new IFC4.IfcApplication(ID, a[0], a[1], a[2], a[3]), 411424972: (ID, a) => new IFC4.IfcAppliedValue(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 130549933: (ID, a) => new IFC4.IfcApproval(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 4037036970: (ID, a) => new IFC4.IfcBoundaryCondition(ID, a[0]), 1560379544: (ID, a) => new IFC4.IfcBoundaryEdgeCondition(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]), 3367102660: (ID, a) => new IFC4.IfcBoundaryFaceCondition(ID, a[0], a[1], a[2], a[3]), 1387855156: (ID, a) => new IFC4.IfcBoundaryNodeCondition(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]), 2069777674: (ID, a) => new IFC4.IfcBoundaryNodeConditionWarping(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), 2859738748: (ID, _) => new IFC4.IfcConnectionGeometry(ID), 2614616156: (ID, a) => new IFC4.IfcConnectionPointGeometry(ID, a[0], a[1]), 2732653382: (ID, a) => new IFC4.IfcConnectionSurfaceGeometry(ID, a[0], a[1]), 775493141: (ID, a) => new IFC4.IfcConnectionVolumeGeometry(ID, a[0], a[1]), 1959218052: (ID, a) => new IFC4.IfcConstraint(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]), 1785450214: (ID, a) => new IFC4.IfcCoordinateOperation(ID, a[0], a[1]), 1466758467: (ID, a) => new IFC4.IfcCoordinateReferenceSystem(ID, a[0], a[1], a[2], a[3]), 602808272: (ID, a) => new IFC4.IfcCostValue(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 1765591967: (ID, a) => new IFC4.IfcDerivedUnit(ID, a[0], a[1], a[2]), 1045800335: (ID, a) => new IFC4.IfcDerivedUnitElement(ID, a[0], a[1]), 2949456006: (ID, a) => new IFC4.IfcDimensionalExponents(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]), 4294318154: (ID, _) => new IFC4.IfcExternalInformation(ID), 3200245327: (ID, a) => new IFC4.IfcExternalReference(ID, a[0], a[1], a[2]), 2242383968: (ID, a) => new IFC4.IfcExternallyDefinedHatchStyle(ID, a[0], a[1], a[2]), 1040185647: (ID, a) => new IFC4.IfcExternallyDefinedSurfaceStyle(ID, a[0], a[1], a[2]), 3548104201: (ID, a) => new IFC4.IfcExternallyDefinedTextFont(ID, a[0], a[1], a[2]), 852622518: (ID, a) => new IFC4.IfcGridAxis(ID, a[0], a[1], a[2]), 3020489413: (ID, a) => new IFC4.IfcIrregularTimeSeriesValue(ID, a[0], a[1]), 2655187982: (ID, a) => new IFC4.IfcLibraryInformation(ID, a[0], a[1], a[2], a[3], a[4], a[5]), 3452421091: (ID, a) => new IFC4.IfcLibraryReference(ID, a[0], a[1], a[2], a[3], a[4], a[5]), 4162380809: (ID, a) => new IFC4.IfcLightDistributionData(ID, a[0], a[1], a[2]), 1566485204: (ID, a) => new IFC4.IfcLightIntensityDistribution(ID, a[0], a[1]), 3057273783: (ID, a) => new IFC4.IfcMapConversion(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), 1847130766: (ID, a) => new IFC4.IfcMaterialClassificationRelationship(ID, a[0], a[1]), 760658860: (ID, _) => new IFC4.IfcMaterialDefinition(ID), 248100487: (ID, a) => new IFC4.IfcMaterialLayer(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]), 3303938423: (ID, a) => new IFC4.IfcMaterialLayerSet(ID, a[0], a[1], a[2]), 1847252529: (ID, a) => new IFC4.IfcMaterialLayerWithOffsets(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 2199411900: (ID, a) => new IFC4.IfcMaterialList(ID, a[0]), 2235152071: (ID, a) => new IFC4.IfcMaterialProfile(ID, a[0], a[1], a[2], a[3], a[4], a[5]), 164193824: (ID, a) => new IFC4.IfcMaterialProfileSet(ID, a[0], a[1], a[2], a[3]), 552965576: (ID, a) => new IFC4.IfcMaterialProfileWithOffsets(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]), 1507914824: (ID, _) => new IFC4.IfcMaterialUsageDefinition(ID), 2597039031: (ID, a) => new IFC4.IfcMeasureWithUnit(ID, a[0], a[1]), 3368373690: (ID, a) => new IFC4.IfcMetric(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]), 2706619895: (ID, a) => new IFC4.IfcMonetaryUnit(ID, a[0]), 1918398963: (ID, a) => new IFC4.IfcNamedUnit(ID, a[0], a[1]), 3701648758: (ID, _) => new IFC4.IfcObjectPlacement(ID), 2251480897: (ID, a) => new IFC4.IfcObjective(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]), 4251960020: (ID, a) => new IFC4.IfcOrganization(ID, a[0], a[1], a[2], a[3], a[4]), 1207048766: (ID, a) => new IFC4.IfcOwnerHistory(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), 2077209135: (ID, a) => new IFC4.IfcPerson(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), 101040310: (ID, a) => new IFC4.IfcPersonAndOrganization(ID, a[0], a[1], a[2]), 2483315170: (ID, a) => new IFC4.IfcPhysicalQuantity(ID, a[0], a[1]), 2226359599: (ID, a) => new IFC4.IfcPhysicalSimpleQuantity(ID, a[0], a[1], a[2]), 3355820592: (ID, a) => new IFC4.IfcPostalAddress(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 677532197: (ID, _) => new IFC4.IfcPresentationItem(ID), 2022622350: (ID, a) => new IFC4.IfcPresentationLayerAssignment(ID, a[0], a[1], a[2], a[3]), 1304840413: (ID, a) => new IFC4.IfcPresentationLayerWithStyle(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), 3119450353: (ID, a) => new IFC4.IfcPresentationStyle(ID, a[0]), 2417041796: (ID, a) => new IFC4.IfcPresentationStyleAssignment(ID, a[0]), 2095639259: (ID, a) => new IFC4.IfcProductRepresentation(ID, a[0], a[1], a[2]), 3958567839: (ID, a) => new IFC4.IfcProfileDef(ID, a[0], a[1]), 3843373140: (ID, a) => new IFC4.IfcProjectedCRS(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]), 986844984: (ID, _) => new IFC4.IfcPropertyAbstraction(ID), 3710013099: (ID, a) => new IFC4.IfcPropertyEnumeration(ID, a[0], a[1], a[2]), 2044713172: (ID, a) => new IFC4.IfcQuantityArea(ID, a[0], a[1], a[2], a[3], a[4]), 2093928680: (ID, a) => new IFC4.IfcQuantityCount(ID, a[0], a[1], a[2], a[3], a[4]), 931644368: (ID, a) => new IFC4.IfcQuantityLength(ID, a[0], a[1], a[2], a[3], a[4]), 3252649465: (ID, a) => new IFC4.IfcQuantityTime(ID, a[0], a[1], a[2], a[3], a[4]), 2405470396: (ID, a) => new IFC4.IfcQuantityVolume(ID, a[0], a[1], a[2], a[3], a[4]), 825690147: (ID, a) => new IFC4.IfcQuantityWeight(ID, a[0], a[1], a[2], a[3], a[4]), 3915482550: (ID, a) => new IFC4.IfcRecurrencePattern(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), 2433181523: (ID, a) => new IFC4.IfcReference(ID, a[0], a[1], a[2], a[3], a[4]), 1076942058: (ID, a) => new IFC4.IfcRepresentation(ID, a[0], a[1], a[2], a[3]), 3377609919: (ID, a) => new IFC4.IfcRepresentationContext(ID, a[0], a[1]), 3008791417: (ID, _) => new IFC4.IfcRepresentationItem(ID), 1660063152: (ID, a) => new IFC4.IfcRepresentationMap(ID, a[0], a[1]), 2439245199: (ID, a) => new IFC4.IfcResourceLevelRelationship(ID, a[0], a[1]), 2341007311: (ID, a) => new IFC4.IfcRoot(ID, a[0], a[1], a[2], a[3]), 448429030: (ID, a) => new IFC4.IfcSIUnit(ID, a[0], a[1], a[2]), 1054537805: (ID, a) => new IFC4.IfcSchedulingTime(ID, a[0], a[1], a[2]), 867548509: (ID, a) => new IFC4.IfcShapeAspect(ID, a[0], a[1], a[2], a[3], a[4]), 3982875396: (ID, a) => new IFC4.IfcShapeModel(ID, a[0], a[1], a[2], a[3]), 4240577450: (ID, a) => new IFC4.IfcShapeRepresentation(ID, a[0], a[1], a[2], a[3]), 2273995522: (ID, a) => new IFC4.IfcStructuralConnectionCondition(ID, a[0]), 2162789131: (ID, a) => new IFC4.IfcStructuralLoad(ID, a[0]), 3478079324: (ID, a) => new IFC4.IfcStructuralLoadConfiguration(ID, a[0], a[1], a[2]), 609421318: (ID, a) => new IFC4.IfcStructuralLoadOrResult(ID, a[0]), 2525727697: (ID, a) => new IFC4.IfcStructuralLoadStatic(ID, a[0]), 3408363356: (ID, a) => new IFC4.IfcStructuralLoadTemperature(ID, a[0], a[1], a[2], a[3]), 2830218821: (ID, a) => new IFC4.IfcStyleModel(ID, a[0], a[1], a[2], a[3]), 3958052878: (ID, a) => new IFC4.IfcStyledItem(ID, a[0], a[1], a[2]), 3049322572: (ID, a) => new IFC4.IfcStyledRepresentation(ID, a[0], a[1], a[2], a[3]), 2934153892: (ID, a) => new IFC4.IfcSurfaceReinforcementArea(ID, a[0], a[1], a[2], a[3]), 1300840506: (ID, a) => new IFC4.IfcSurfaceStyle(ID, a[0], a[1], a[2]), 3303107099: (ID, a) => new IFC4.IfcSurfaceStyleLighting(ID, a[0], a[1], a[2], a[3]), 1607154358: (ID, a) => new IFC4.IfcSurfaceStyleRefraction(ID, a[0], a[1]), 846575682: (ID, a) => new IFC4.IfcSurfaceStyleShading(ID, a[0], a[1]), 1351298697: (ID, a) => new IFC4.IfcSurfaceStyleWithTextures(ID, a[0]), 626085974: (ID, a) => new IFC4.IfcSurfaceTexture(ID, a[0], a[1], a[2], a[3], a[4]), 985171141: (ID, a) => new IFC4.IfcTable(ID, a[0], a[1], a[2]), 2043862942: (ID, a) => new IFC4.IfcTableColumn(ID, a[0], a[1], a[2], a[3], a[4]), 531007025: (ID, a) => new IFC4.IfcTableRow(ID, a[0], a[1]), 1549132990: (ID, a) => new IFC4.IfcTaskTime(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14], a[15], a[16], a[17], a[18], a[19]), 2771591690: (ID, a) => new IFC4.IfcTaskTimeRecurring(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14], a[15], a[16], a[17], a[18], a[19], a[20]), 912023232: (ID, a) => new IFC4.IfcTelecomAddress(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 1447204868: (ID, a) => new IFC4.IfcTextStyle(ID, a[0], a[1], a[2], a[3], a[4]), 2636378356: (ID, a) => new IFC4.IfcTextStyleForDefinedFont(ID, a[0], a[1]), 1640371178: (ID, a) => new IFC4.IfcTextStyleTextModel(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]), 280115917: (ID, a) => new IFC4.IfcTextureCoordinate(ID, a[0]), 1742049831: (ID, a) => new IFC4.IfcTextureCoordinateGenerator(ID, a[0], a[1], a[2]), 2552916305: (ID, a) => new IFC4.IfcTextureMap(ID, a[0], a[1], a[2]), 1210645708: (ID, a) => new IFC4.IfcTextureVertex(ID, a[0]), 3611470254: (ID, a) => new IFC4.IfcTextureVertexList(ID, a[0]), 1199560280: (ID, a) => new IFC4.IfcTimePeriod(ID, a[0], a[1]), 3101149627: (ID, a) => new IFC4.IfcTimeSeries(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), 581633288: (ID, a) => new IFC4.IfcTimeSeriesValue(ID, a[0]), 1377556343: (ID, _) => new IFC4.IfcTopologicalRepresentationItem(ID), 1735638870: (ID, a) => new IFC4.IfcTopologyRepresentation(ID, a[0], a[1], a[2], a[3]), 180925521: (ID, a) => new IFC4.IfcUnitAssignment(ID, a[0]), 2799835756: (ID, _) => new IFC4.IfcVertex(ID), 1907098498: (ID, a) => new IFC4.IfcVertexPoint(ID, a[0]), 891718957: (ID, a) => new IFC4.IfcVirtualGridIntersection(ID, a[0], a[1]), 1236880293: (ID, a) => new IFC4.IfcWorkTime(ID, a[0], a[1], a[2], a[3], a[4], a[5]), 3869604511: (ID, a) => new IFC4.IfcApprovalRelationship(ID, a[0], a[1], a[2], a[3]), 3798115385: (ID, a) => new IFC4.IfcArbitraryClosedProfileDef(ID, a[0], a[1], a[2]), 1310608509: (ID, a) => new IFC4.IfcArbitraryOpenProfileDef(ID, a[0], a[1], a[2]), 2705031697: (ID, a) => new IFC4.IfcArbitraryProfileDefWithVoids(ID, a[0], a[1], a[2], a[3]), 616511568: (ID, a) => new IFC4.IfcBlobTexture(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]), 3150382593: (ID, a) => new IFC4.IfcCenterLineProfileDef(ID, a[0], a[1], a[2], a[3]), 747523909: (ID, a) => new IFC4.IfcClassification(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]), 647927063: (ID, a) => new IFC4.IfcClassificationReference(ID, a[0], a[1], a[2], a[3], a[4], a[5]), 3285139300: (ID, a) => new IFC4.IfcColourRgbList(ID, a[0]), 3264961684: (ID, a) => new IFC4.IfcColourSpecification(ID, a[0]), 1485152156: (ID, a) => new IFC4.IfcCompositeProfileDef(ID, a[0], a[1], a[2], a[3]), 370225590: (ID, a) => new IFC4.IfcConnectedFaceSet(ID, a[0]), 1981873012: (ID, a) => new IFC4.IfcConnectionCurveGeometry(ID, a[0], a[1]), 45288368: (ID, a) => new IFC4.IfcConnectionPointEccentricity(ID, a[0], a[1], a[2], a[3], a[4]), 3050246964: (ID, a) => new IFC4.IfcContextDependentUnit(ID, a[0], a[1], a[2]), 2889183280: (ID, a) => new IFC4.IfcConversionBasedUnit(ID, a[0], a[1], a[2], a[3]), 2713554722: (ID, a) => new IFC4.IfcConversionBasedUnitWithOffset(ID, a[0], a[1], a[2], a[3], a[4]), 539742890: (ID, a) => new IFC4.IfcCurrencyRelationship(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]), 3800577675: (ID, a) => new IFC4.IfcCurveStyle(ID, a[0], a[1], a[2], a[3], a[4]), 1105321065: (ID, a) => new IFC4.IfcCurveStyleFont(ID, a[0], a[1]), 2367409068: (ID, a) => new IFC4.IfcCurveStyleFontAndScaling(ID, a[0], a[1], a[2]), 3510044353: (ID, a) => new IFC4.IfcCurveStyleFontPattern(ID, a[0], a[1]), 3632507154: (ID, a) => new IFC4.IfcDerivedProfileDef(ID, a[0], a[1], a[2], a[3], a[4]), 1154170062: (ID, a) => new IFC4.IfcDocumentInformation(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14], a[15], a[16]), 770865208: (ID, a) => new IFC4.IfcDocumentInformationRelationship(ID, a[0], a[1], a[2], a[3], a[4]), 3732053477: (ID, a) => new IFC4.IfcDocumentReference(ID, a[0], a[1], a[2], a[3], a[4]), 3900360178: (ID, a) => new IFC4.IfcEdge(ID, a[0], a[1]), 476780140: (ID, a) => new IFC4.IfcEdgeCurve(ID, a[0], a[1], a[2], a[3]), 211053100: (ID, a) => new IFC4.IfcEventTime(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]), 297599258: (ID, a) => new IFC4.IfcExtendedProperties(ID, a[0], a[1], a[2]), 1437805879: (ID, a) => new IFC4.IfcExternalReferenceRelationship(ID, a[0], a[1], a[2], a[3]), 2556980723: (ID, a) => new IFC4.IfcFace(ID, a[0]), 1809719519: (ID, a) => new IFC4.IfcFaceBound(ID, a[0], a[1]), 803316827: (ID, a) => new IFC4.IfcFaceOuterBound(ID, a[0], a[1]), 3008276851: (ID, a) => new IFC4.IfcFaceSurface(ID, a[0], a[1], a[2]), 4219587988: (ID, a) => new IFC4.IfcFailureConnectionCondition(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]), 738692330: (ID, a) => new IFC4.IfcFillAreaStyle(ID, a[0], a[1], a[2]), 3448662350: (ID, a) => new IFC4.IfcGeometricRepresentationContext(ID, a[0], a[1], a[2], a[3], a[4], a[5]), 2453401579: (ID, _) => new IFC4.IfcGeometricRepresentationItem(ID), 4142052618: (ID, a) => new IFC4.IfcGeometricRepresentationSubContext(ID, a[0], a[1], a[2], a[3], a[4], a[5]), 3590301190: (ID, a) => new IFC4.IfcGeometricSet(ID, a[0]), 178086475: (ID, a) => new IFC4.IfcGridPlacement(ID, a[0], a[1]), 812098782: (ID, a) => new IFC4.IfcHalfSpaceSolid(ID, a[0], a[1]), 3905492369: (ID, a) => new IFC4.IfcImageTexture(ID, a[0], a[1], a[2], a[3], a[4], a[5]), 3570813810: (ID, a) => new IFC4.IfcIndexedColourMap(ID, a[0], a[1], a[2], a[3]), 1437953363: (ID, a) => new IFC4.IfcIndexedTextureMap(ID, a[0], a[1], a[2]), 2133299955: (ID, a) => new IFC4.IfcIndexedTriangleTextureMap(ID, a[0], a[1], a[2], a[3]), 3741457305: (ID, a) => new IFC4.IfcIrregularTimeSeries(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 1585845231: (ID, a) => new IFC4.IfcLagTime(ID, a[0], a[1], a[2], a[3], a[4]), 1402838566: (ID, a) => new IFC4.IfcLightSource(ID, a[0], a[1], a[2], a[3]), 125510826: (ID, a) => new IFC4.IfcLightSourceAmbient(ID, a[0], a[1], a[2], a[3]), 2604431987: (ID, a) => new IFC4.IfcLightSourceDirectional(ID, a[0], a[1], a[2], a[3], a[4]), 4266656042: (ID, a) => new IFC4.IfcLightSourceGoniometric(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 1520743889: (ID, a) => new IFC4.IfcLightSourcePositional(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 3422422726: (ID, a) => new IFC4.IfcLightSourceSpot(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12]), 2624227202: (ID, a) => new IFC4.IfcLocalPlacement(ID, a[0], a[1]), 1008929658: (ID, _) => new IFC4.IfcLoop(ID), 2347385850: (ID, a) => new IFC4.IfcMappedItem(ID, a[0], a[1]), 1838606355: (ID, a) => new IFC4.IfcMaterial(ID, a[0], a[1], a[2]), 3708119e3: (ID, a) => new IFC4.IfcMaterialConstituent(ID, a[0], a[1], a[2], a[3], a[4]), 2852063980: (ID, a) => new IFC4.IfcMaterialConstituentSet(ID, a[0], a[1], a[2]), 2022407955: (ID, a) => new IFC4.IfcMaterialDefinitionRepresentation(ID, a[0], a[1], a[2], a[3]), 1303795690: (ID, a) => new IFC4.IfcMaterialLayerSetUsage(ID, a[0], a[1], a[2], a[3], a[4]), 3079605661: (ID, a) => new IFC4.IfcMaterialProfileSetUsage(ID, a[0], a[1], a[2]), 3404854881: (ID, a) => new IFC4.IfcMaterialProfileSetUsageTapering(ID, a[0], a[1], a[2], a[3], a[4]), 3265635763: (ID, a) => new IFC4.IfcMaterialProperties(ID, a[0], a[1], a[2], a[3]), 853536259: (ID, a) => new IFC4.IfcMaterialRelationship(ID, a[0], a[1], a[2], a[3], a[4]), 2998442950: (ID, a) => new IFC4.IfcMirroredProfileDef(ID, a[0], a[1], a[2], a[3]), 219451334: (ID, a) => new IFC4.IfcObjectDefinition(ID, a[0], a[1], a[2], a[3]), 2665983363: (ID, a) => new IFC4.IfcOpenShell(ID, a[0]), 1411181986: (ID, a) => new IFC4.IfcOrganizationRelationship(ID, a[0], a[1], a[2], a[3]), 1029017970: (ID, a) => new IFC4.IfcOrientedEdge(ID, a[0], a[1]), 2529465313: (ID, a) => new IFC4.IfcParameterizedProfileDef(ID, a[0], a[1], a[2]), 2519244187: (ID, a) => new IFC4.IfcPath(ID, a[0]), 3021840470: (ID, a) => new IFC4.IfcPhysicalComplexQuantity(ID, a[0], a[1], a[2], a[3], a[4], a[5]), 597895409: (ID, a) => new IFC4.IfcPixelTexture(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 2004835150: (ID, a) => new IFC4.IfcPlacement(ID, a[0]), 1663979128: (ID, a) => new IFC4.IfcPlanarExtent(ID, a[0], a[1]), 2067069095: (ID, _) => new IFC4.IfcPoint(ID), 4022376103: (ID, a) => new IFC4.IfcPointOnCurve(ID, a[0], a[1]), 1423911732: (ID, a) => new IFC4.IfcPointOnSurface(ID, a[0], a[1], a[2]), 2924175390: (ID, a) => new IFC4.IfcPolyLoop(ID, a[0]), 2775532180: (ID, a) => new IFC4.IfcPolygonalBoundedHalfSpace(ID, a[0], a[1], a[2], a[3]), 3727388367: (ID, a) => new IFC4.IfcPreDefinedItem(ID, a[0]), 3778827333: (ID, _) => new IFC4.IfcPreDefinedProperties(ID), 1775413392: (ID, a) => new IFC4.IfcPreDefinedTextFont(ID, a[0]), 673634403: (ID, a) => new IFC4.IfcProductDefinitionShape(ID, a[0], a[1], a[2]), 2802850158: (ID, a) => new IFC4.IfcProfileProperties(ID, a[0], a[1], a[2], a[3]), 2598011224: (ID, a) => new IFC4.IfcProperty(ID, a[0], a[1]), 1680319473: (ID, a) => new IFC4.IfcPropertyDefinition(ID, a[0], a[1], a[2], a[3]), 148025276: (ID, a) => new IFC4.IfcPropertyDependencyRelationship(ID, a[0], a[1], a[2], a[3], a[4]), 3357820518: (ID, a) => new IFC4.IfcPropertySetDefinition(ID, a[0], a[1], a[2], a[3]), 1482703590: (ID, a) => new IFC4.IfcPropertyTemplateDefinition(ID, a[0], a[1], a[2], a[3]), 2090586900: (ID, a) => new IFC4.IfcQuantitySet(ID, a[0], a[1], a[2], a[3]), 3615266464: (ID, a) => new IFC4.IfcRectangleProfileDef(ID, a[0], a[1], a[2], a[3], a[4]), 3413951693: (ID, a) => new IFC4.IfcRegularTimeSeries(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 1580146022: (ID, a) => new IFC4.IfcReinforcementBarProperties(ID, a[0], a[1], a[2], a[3], a[4], a[5]), 478536968: (ID, a) => new IFC4.IfcRelationship(ID, a[0], a[1], a[2], a[3]), 2943643501: (ID, a) => new IFC4.IfcResourceApprovalRelationship(ID, a[0], a[1], a[2], a[3]), 1608871552: (ID, a) => new IFC4.IfcResourceConstraintRelationship(ID, a[0], a[1], a[2], a[3]), 1042787934: (ID, a) => new IFC4.IfcResourceTime(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14], a[15], a[16], a[17]), 2778083089: (ID, a) => new IFC4.IfcRoundedRectangleProfileDef(ID, a[0], a[1], a[2], a[3], a[4], a[5]), 2042790032: (ID, a) => new IFC4.IfcSectionProperties(ID, a[0], a[1], a[2]), 4165799628: (ID, a) => new IFC4.IfcSectionReinforcementProperties(ID, a[0], a[1], a[2], a[3], a[4], a[5]), 1509187699: (ID, a) => new IFC4.IfcSectionedSpine(ID, a[0], a[1], a[2]), 4124623270: (ID, a) => new IFC4.IfcShellBasedSurfaceModel(ID, a[0]), 3692461612: (ID, a) => new IFC4.IfcSimpleProperty(ID, a[0], a[1]), 2609359061: (ID, a) => new IFC4.IfcSlippageConnectionCondition(ID, a[0], a[1], a[2], a[3]), 723233188: (ID, _) => new IFC4.IfcSolidModel(ID), 1595516126: (ID, a) => new IFC4.IfcStructuralLoadLinearForce(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]), 2668620305: (ID, a) => new IFC4.IfcStructuralLoadPlanarForce(ID, a[0], a[1], a[2], a[3]), 2473145415: (ID, a) => new IFC4.IfcStructuralLoadSingleDisplacement(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]), 1973038258: (ID, a) => new IFC4.IfcStructuralLoadSingleDisplacementDistortion(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), 1597423693: (ID, a) => new IFC4.IfcStructuralLoadSingleForce(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]), 1190533807: (ID, a) => new IFC4.IfcStructuralLoadSingleForceWarping(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), 2233826070: (ID, a) => new IFC4.IfcSubedge(ID, a[0], a[1], a[2]), 2513912981: (ID, _) => new IFC4.IfcSurface(ID), 1878645084: (ID, a) => new IFC4.IfcSurfaceStyleRendering(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 2247615214: (ID, a) => new IFC4.IfcSweptAreaSolid(ID, a[0], a[1]), 1260650574: (ID, a) => new IFC4.IfcSweptDiskSolid(ID, a[0], a[1], a[2], a[3], a[4]), 1096409881: (ID, a) => new IFC4.IfcSweptDiskSolidPolygonal(ID, a[0], a[1], a[2], a[3], a[4], a[5]), 230924584: (ID, a) => new IFC4.IfcSweptSurface(ID, a[0], a[1]), 3071757647: (ID, a) => new IFC4.IfcTShapeProfileDef(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]), 901063453: (ID, _) => new IFC4.IfcTessellatedItem(ID), 4282788508: (ID, a) => new IFC4.IfcTextLiteral(ID, a[0], a[1], a[2]), 3124975700: (ID, a) => new IFC4.IfcTextLiteralWithExtent(ID, a[0], a[1], a[2], a[3], a[4]), 1983826977: (ID, a) => new IFC4.IfcTextStyleFontModel(ID, a[0], a[1], a[2], a[3], a[4], a[5]), 2715220739: (ID, a) => new IFC4.IfcTrapeziumProfileDef(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]), 1628702193: (ID, a) => new IFC4.IfcTypeObject(ID, a[0], a[1], a[2], a[3], a[4], a[5]), 3736923433: (ID, a) => new IFC4.IfcTypeProcess(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 2347495698: (ID, a) => new IFC4.IfcTypeProduct(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), 3698973494: (ID, a) => new IFC4.IfcTypeResource(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 427810014: (ID, a) => new IFC4.IfcUShapeProfileDef(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 1417489154: (ID, a) => new IFC4.IfcVector(ID, a[0], a[1]), 2759199220: (ID, a) => new IFC4.IfcVertexLoop(ID, a[0]), 1299126871: (ID, a) => new IFC4.IfcWindowStyle(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]), 2543172580: (ID, a) => new IFC4.IfcZShapeProfileDef(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 3406155212: (ID, a) => new IFC4.IfcAdvancedFace(ID, a[0], a[1], a[2]), 669184980: (ID, a) => new IFC4.IfcAnnotationFillArea(ID, a[0], a[1]), 3207858831: (ID, a) => new IFC4.IfcAsymmetricIShapeProfileDef(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14]), 4261334040: (ID, a) => new IFC4.IfcAxis1Placement(ID, a[0], a[1]), 3125803723: (ID, a) => new IFC4.IfcAxis2Placement2D(ID, a[0], a[1]), 2740243338: (ID, a) => new IFC4.IfcAxis2Placement3D(ID, a[0], a[1], a[2]), 2736907675: (ID, a) => new IFC4.IfcBooleanResult(ID, a[0], a[1], a[2]), 4182860854: (ID, _) => new IFC4.IfcBoundedSurface(ID), 2581212453: (ID, a) => new IFC4.IfcBoundingBox(ID, a[0], a[1], a[2], a[3]), 2713105998: (ID, a) => new IFC4.IfcBoxedHalfSpace(ID, a[0], a[1], a[2]), 2898889636: (ID, a) => new IFC4.IfcCShapeProfileDef(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), 1123145078: (ID, a) => new IFC4.IfcCartesianPoint(ID, a[0]), 574549367: (ID, _) => new IFC4.IfcCartesianPointList(ID), 1675464909: (ID, a) => new IFC4.IfcCartesianPointList2D(ID, a[0]), 2059837836: (ID, a) => new IFC4.IfcCartesianPointList3D(ID, a[0]), 59481748: (ID, a) => new IFC4.IfcCartesianTransformationOperator(ID, a[0], a[1], a[2], a[3]), 3749851601: (ID, a) => new IFC4.IfcCartesianTransformationOperator2D(ID, a[0], a[1], a[2], a[3]), 3486308946: (ID, a) => new IFC4.IfcCartesianTransformationOperator2DnonUniform(ID, a[0], a[1], a[2], a[3], a[4]), 3331915920: (ID, a) => new IFC4.IfcCartesianTransformationOperator3D(ID, a[0], a[1], a[2], a[3], a[4]), 1416205885: (ID, a) => new IFC4.IfcCartesianTransformationOperator3DnonUniform(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]), 1383045692: (ID, a) => new IFC4.IfcCircleProfileDef(ID, a[0], a[1], a[2], a[3]), 2205249479: (ID, a) => new IFC4.IfcClosedShell(ID, a[0]), 776857604: (ID, a) => new IFC4.IfcColourRgb(ID, a[0], a[1], a[2], a[3]), 2542286263: (ID, a) => new IFC4.IfcComplexProperty(ID, a[0], a[1], a[2], a[3]), 2485617015: (ID, a) => new IFC4.IfcCompositeCurveSegment(ID, a[0], a[1], a[2]), 2574617495: (ID, a) => new IFC4.IfcConstructionResourceType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]), 3419103109: (ID, a) => new IFC4.IfcContext(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 1815067380: (ID, a) => new IFC4.IfcCrewResourceType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]), 2506170314: (ID, a) => new IFC4.IfcCsgPrimitive3D(ID, a[0]), 2147822146: (ID, a) => new IFC4.IfcCsgSolid(ID, a[0]), 2601014836: (ID, _) => new IFC4.IfcCurve(ID), 2827736869: (ID, a) => new IFC4.IfcCurveBoundedPlane(ID, a[0], a[1], a[2]), 2629017746: (ID, a) => new IFC4.IfcCurveBoundedSurface(ID, a[0], a[1], a[2]), 32440307: (ID, a) => new IFC4.IfcDirection(ID, a[0]), 526551008: (ID, a) => new IFC4.IfcDoorStyle(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]), 1472233963: (ID, a) => new IFC4.IfcEdgeLoop(ID, a[0]), 1883228015: (ID, a) => new IFC4.IfcElementQuantity(ID, a[0], a[1], a[2], a[3], a[4], a[5]), 339256511: (ID, a) => new IFC4.IfcElementType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 2777663545: (ID, a) => new IFC4.IfcElementarySurface(ID, a[0]), 2835456948: (ID, a) => new IFC4.IfcEllipseProfileDef(ID, a[0], a[1], a[2], a[3], a[4]), 4024345920: (ID, a) => new IFC4.IfcEventType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]), 477187591: (ID, a) => new IFC4.IfcExtrudedAreaSolid(ID, a[0], a[1], a[2], a[3]), 2804161546: (ID, a) => new IFC4.IfcExtrudedAreaSolidTapered(ID, a[0], a[1], a[2], a[3], a[4]), 2047409740: (ID, a) => new IFC4.IfcFaceBasedSurfaceModel(ID, a[0]), 374418227: (ID, a) => new IFC4.IfcFillAreaStyleHatching(ID, a[0], a[1], a[2], a[3], a[4]), 315944413: (ID, a) => new IFC4.IfcFillAreaStyleTiles(ID, a[0], a[1], a[2]), 2652556860: (ID, a) => new IFC4.IfcFixedReferenceSweptAreaSolid(ID, a[0], a[1], a[2], a[3], a[4], a[5]), 4238390223: (ID, a) => new IFC4.IfcFurnishingElementType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 1268542332: (ID, a) => new IFC4.IfcFurnitureType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]), 4095422895: (ID, a) => new IFC4.IfcGeographicElementType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 987898635: (ID, a) => new IFC4.IfcGeometricCurveSet(ID, a[0]), 1484403080: (ID, a) => new IFC4.IfcIShapeProfileDef(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 178912537: (ID, a) => new IFC4.IfcIndexedPolygonalFace(ID, a[0]), 2294589976: (ID, a) => new IFC4.IfcIndexedPolygonalFaceWithVoids(ID, a[0], a[1]), 572779678: (ID, a) => new IFC4.IfcLShapeProfileDef(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 428585644: (ID, a) => new IFC4.IfcLaborResourceType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]), 1281925730: (ID, a) => new IFC4.IfcLine(ID, a[0], a[1]), 1425443689: (ID, a) => new IFC4.IfcManifoldSolidBrep(ID, a[0]), 3888040117: (ID, a) => new IFC4.IfcObject(ID, a[0], a[1], a[2], a[3], a[4]), 3388369263: (ID, a) => new IFC4.IfcOffsetCurve2D(ID, a[0], a[1], a[2]), 3505215534: (ID, a) => new IFC4.IfcOffsetCurve3D(ID, a[0], a[1], a[2], a[3]), 1682466193: (ID, a) => new IFC4.IfcPcurve(ID, a[0], a[1]), 603570806: (ID, a) => new IFC4.IfcPlanarBox(ID, a[0], a[1], a[2]), 220341763: (ID, a) => new IFC4.IfcPlane(ID, a[0]), 759155922: (ID, a) => new IFC4.IfcPreDefinedColour(ID, a[0]), 2559016684: (ID, a) => new IFC4.IfcPreDefinedCurveFont(ID, a[0]), 3967405729: (ID, a) => new IFC4.IfcPreDefinedPropertySet(ID, a[0], a[1], a[2], a[3]), 569719735: (ID, a) => new IFC4.IfcProcedureType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 2945172077: (ID, a) => new IFC4.IfcProcess(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]), 4208778838: (ID, a) => new IFC4.IfcProduct(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]), 103090709: (ID, a) => new IFC4.IfcProject(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 653396225: (ID, a) => new IFC4.IfcProjectLibrary(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 871118103: (ID, a) => new IFC4.IfcPropertyBoundedValue(ID, a[0], a[1], a[2], a[3], a[4], a[5]), 4166981789: (ID, a) => new IFC4.IfcPropertyEnumeratedValue(ID, a[0], a[1], a[2], a[3]), 2752243245: (ID, a) => new IFC4.IfcPropertyListValue(ID, a[0], a[1], a[2], a[3]), 941946838: (ID, a) => new IFC4.IfcPropertyReferenceValue(ID, a[0], a[1], a[2], a[3]), 1451395588: (ID, a) => new IFC4.IfcPropertySet(ID, a[0], a[1], a[2], a[3], a[4]), 492091185: (ID, a) => new IFC4.IfcPropertySetTemplate(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]), 3650150729: (ID, a) => new IFC4.IfcPropertySingleValue(ID, a[0], a[1], a[2], a[3]), 110355661: (ID, a) => new IFC4.IfcPropertyTableValue(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), 3521284610: (ID, a) => new IFC4.IfcPropertyTemplate(ID, a[0], a[1], a[2], a[3]), 3219374653: (ID, a) => new IFC4.IfcProxy(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 2770003689: (ID, a) => new IFC4.IfcRectangleHollowProfileDef(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), 2798486643: (ID, a) => new IFC4.IfcRectangularPyramid(ID, a[0], a[1], a[2], a[3]), 3454111270: (ID, a) => new IFC4.IfcRectangularTrimmedSurface(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]), 3765753017: (ID, a) => new IFC4.IfcReinforcementDefinitionProperties(ID, a[0], a[1], a[2], a[3], a[4], a[5]), 3939117080: (ID, a) => new IFC4.IfcRelAssigns(ID, a[0], a[1], a[2], a[3], a[4], a[5]), 1683148259: (ID, a) => new IFC4.IfcRelAssignsToActor(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), 2495723537: (ID, a) => new IFC4.IfcRelAssignsToControl(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]), 1307041759: (ID, a) => new IFC4.IfcRelAssignsToGroup(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]), 1027710054: (ID, a) => new IFC4.IfcRelAssignsToGroupByFactor(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), 4278684876: (ID, a) => new IFC4.IfcRelAssignsToProcess(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), 2857406711: (ID, a) => new IFC4.IfcRelAssignsToProduct(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]), 205026976: (ID, a) => new IFC4.IfcRelAssignsToResource(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]), 1865459582: (ID, a) => new IFC4.IfcRelAssociates(ID, a[0], a[1], a[2], a[3], a[4]), 4095574036: (ID, a) => new IFC4.IfcRelAssociatesApproval(ID, a[0], a[1], a[2], a[3], a[4], a[5]), 919958153: (ID, a) => new IFC4.IfcRelAssociatesClassification(ID, a[0], a[1], a[2], a[3], a[4], a[5]), 2728634034: (ID, a) => new IFC4.IfcRelAssociatesConstraint(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]), 982818633: (ID, a) => new IFC4.IfcRelAssociatesDocument(ID, a[0], a[1], a[2], a[3], a[4], a[5]), 3840914261: (ID, a) => new IFC4.IfcRelAssociatesLibrary(ID, a[0], a[1], a[2], a[3], a[4], a[5]), 2655215786: (ID, a) => new IFC4.IfcRelAssociatesMaterial(ID, a[0], a[1], a[2], a[3], a[4], a[5]), 826625072: (ID, a) => new IFC4.IfcRelConnects(ID, a[0], a[1], a[2], a[3]), 1204542856: (ID, a) => new IFC4.IfcRelConnectsElements(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]), 3945020480: (ID, a) => new IFC4.IfcRelConnectsPathElements(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]), 4201705270: (ID, a) => new IFC4.IfcRelConnectsPortToElement(ID, a[0], a[1], a[2], a[3], a[4], a[5]), 3190031847: (ID, a) => new IFC4.IfcRelConnectsPorts(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]), 2127690289: (ID, a) => new IFC4.IfcRelConnectsStructuralActivity(ID, a[0], a[1], a[2], a[3], a[4], a[5]), 1638771189: (ID, a) => new IFC4.IfcRelConnectsStructuralMember(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 504942748: (ID, a) => new IFC4.IfcRelConnectsWithEccentricity(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]), 3678494232: (ID, a) => new IFC4.IfcRelConnectsWithRealizingElements(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 3242617779: (ID, a) => new IFC4.IfcRelContainedInSpatialStructure(ID, a[0], a[1], a[2], a[3], a[4], a[5]), 886880790: (ID, a) => new IFC4.IfcRelCoversBldgElements(ID, a[0], a[1], a[2], a[3], a[4], a[5]), 2802773753: (ID, a) => new IFC4.IfcRelCoversSpaces(ID, a[0], a[1], a[2], a[3], a[4], a[5]), 2565941209: (ID, a) => new IFC4.IfcRelDeclares(ID, a[0], a[1], a[2], a[3], a[4], a[5]), 2551354335: (ID, a) => new IFC4.IfcRelDecomposes(ID, a[0], a[1], a[2], a[3]), 693640335: (ID, a) => new IFC4.IfcRelDefines(ID, a[0], a[1], a[2], a[3]), 1462361463: (ID, a) => new IFC4.IfcRelDefinesByObject(ID, a[0], a[1], a[2], a[3], a[4], a[5]), 4186316022: (ID, a) => new IFC4.IfcRelDefinesByProperties(ID, a[0], a[1], a[2], a[3], a[4], a[5]), 307848117: (ID, a) => new IFC4.IfcRelDefinesByTemplate(ID, a[0], a[1], a[2], a[3], a[4], a[5]), 781010003: (ID, a) => new IFC4.IfcRelDefinesByType(ID, a[0], a[1], a[2], a[3], a[4], a[5]), 3940055652: (ID, a) => new IFC4.IfcRelFillsElement(ID, a[0], a[1], a[2], a[3], a[4], a[5]), 279856033: (ID, a) => new IFC4.IfcRelFlowControlElements(ID, a[0], a[1], a[2], a[3], a[4], a[5]), 427948657: (ID, a) => new IFC4.IfcRelInterferesElements(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 3268803585: (ID, a) => new IFC4.IfcRelNests(ID, a[0], a[1], a[2], a[3], a[4], a[5]), 750771296: (ID, a) => new IFC4.IfcRelProjectsElement(ID, a[0], a[1], a[2], a[3], a[4], a[5]), 1245217292: (ID, a) => new IFC4.IfcRelReferencedInSpatialStructure(ID, a[0], a[1], a[2], a[3], a[4], a[5]), 4122056220: (ID, a) => new IFC4.IfcRelSequence(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 366585022: (ID, a) => new IFC4.IfcRelServicesBuildings(ID, a[0], a[1], a[2], a[3], a[4], a[5]), 3451746338: (ID, a) => new IFC4.IfcRelSpaceBoundary(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 3523091289: (ID, a) => new IFC4.IfcRelSpaceBoundary1stLevel(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 1521410863: (ID, a) => new IFC4.IfcRelSpaceBoundary2ndLevel(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]), 1401173127: (ID, a) => new IFC4.IfcRelVoidsElement(ID, a[0], a[1], a[2], a[3], a[4], a[5]), 816062949: (ID, a) => new IFC4.IfcReparametrisedCompositeCurveSegment(ID, a[0], a[1], a[2], a[3]), 2914609552: (ID, a) => new IFC4.IfcResource(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]), 1856042241: (ID, a) => new IFC4.IfcRevolvedAreaSolid(ID, a[0], a[1], a[2], a[3]), 3243963512: (ID, a) => new IFC4.IfcRevolvedAreaSolidTapered(ID, a[0], a[1], a[2], a[3], a[4]), 4158566097: (ID, a) => new IFC4.IfcRightCircularCone(ID, a[0], a[1], a[2]), 3626867408: (ID, a) => new IFC4.IfcRightCircularCylinder(ID, a[0], a[1], a[2]), 3663146110: (ID, a) => new IFC4.IfcSimplePropertyTemplate(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]), 1412071761: (ID, a) => new IFC4.IfcSpatialElement(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), 710998568: (ID, a) => new IFC4.IfcSpatialElementType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 2706606064: (ID, a) => new IFC4.IfcSpatialStructureElement(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 3893378262: (ID, a) => new IFC4.IfcSpatialStructureElementType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 463610769: (ID, a) => new IFC4.IfcSpatialZone(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 2481509218: (ID, a) => new IFC4.IfcSpatialZoneType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]), 451544542: (ID, a) => new IFC4.IfcSphere(ID, a[0], a[1]), 4015995234: (ID, a) => new IFC4.IfcSphericalSurface(ID, a[0], a[1]), 3544373492: (ID, a) => new IFC4.IfcStructuralActivity(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 3136571912: (ID, a) => new IFC4.IfcStructuralItem(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]), 530289379: (ID, a) => new IFC4.IfcStructuralMember(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]), 3689010777: (ID, a) => new IFC4.IfcStructuralReaction(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 3979015343: (ID, a) => new IFC4.IfcStructuralSurfaceMember(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 2218152070: (ID, a) => new IFC4.IfcStructuralSurfaceMemberVarying(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 603775116: (ID, a) => new IFC4.IfcStructuralSurfaceReaction(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 4095615324: (ID, a) => new IFC4.IfcSubContractResourceType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]), 699246055: (ID, a) => new IFC4.IfcSurfaceCurve(ID, a[0], a[1], a[2]), 2028607225: (ID, a) => new IFC4.IfcSurfaceCurveSweptAreaSolid(ID, a[0], a[1], a[2], a[3], a[4], a[5]), 2809605785: (ID, a) => new IFC4.IfcSurfaceOfLinearExtrusion(ID, a[0], a[1], a[2], a[3]), 4124788165: (ID, a) => new IFC4.IfcSurfaceOfRevolution(ID, a[0], a[1], a[2]), 1580310250: (ID, a) => new IFC4.IfcSystemFurnitureElementType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 3473067441: (ID, a) => new IFC4.IfcTask(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12]), 3206491090: (ID, a) => new IFC4.IfcTaskType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]), 2387106220: (ID, a) => new IFC4.IfcTessellatedFaceSet(ID, a[0]), 1935646853: (ID, a) => new IFC4.IfcToroidalSurface(ID, a[0], a[1], a[2]), 2097647324: (ID, a) => new IFC4.IfcTransportElementType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 2916149573: (ID, a) => new IFC4.IfcTriangulatedFaceSet(ID, a[0], a[1], a[2], a[3], a[4]), 336235671: (ID, a) => new IFC4.IfcWindowLiningProperties(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14], a[15]), 512836454: (ID, a) => new IFC4.IfcWindowPanelProperties(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 2296667514: (ID, a) => new IFC4.IfcActor(ID, a[0], a[1], a[2], a[3], a[4], a[5]), 1635779807: (ID, a) => new IFC4.IfcAdvancedBrep(ID, a[0]), 2603310189: (ID, a) => new IFC4.IfcAdvancedBrepWithVoids(ID, a[0], a[1]), 1674181508: (ID, a) => new IFC4.IfcAnnotation(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]), 2887950389: (ID, a) => new IFC4.IfcBSplineSurface(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]), 167062518: (ID, a) => new IFC4.IfcBSplineSurfaceWithKnots(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]), 1334484129: (ID, a) => new IFC4.IfcBlock(ID, a[0], a[1], a[2], a[3]), 3649129432: (ID, a) => new IFC4.IfcBooleanClippingResult(ID, a[0], a[1], a[2]), 1260505505: (ID, _) => new IFC4.IfcBoundedCurve(ID), 4031249490: (ID, a) => new IFC4.IfcBuilding(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]), 1950629157: (ID, a) => new IFC4.IfcBuildingElementType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 3124254112: (ID, a) => new IFC4.IfcBuildingStorey(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 2197970202: (ID, a) => new IFC4.IfcChimneyType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 2937912522: (ID, a) => new IFC4.IfcCircleHollowProfileDef(ID, a[0], a[1], a[2], a[3], a[4]), 3893394355: (ID, a) => new IFC4.IfcCivilElementType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 300633059: (ID, a) => new IFC4.IfcColumnType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 3875453745: (ID, a) => new IFC4.IfcComplexPropertyTemplate(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]), 3732776249: (ID, a) => new IFC4.IfcCompositeCurve(ID, a[0], a[1]), 15328376: (ID, a) => new IFC4.IfcCompositeCurveOnSurface(ID, a[0], a[1]), 2510884976: (ID, a) => new IFC4.IfcConic(ID, a[0]), 2185764099: (ID, a) => new IFC4.IfcConstructionEquipmentResourceType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]), 4105962743: (ID, a) => new IFC4.IfcConstructionMaterialResourceType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]), 1525564444: (ID, a) => new IFC4.IfcConstructionProductResourceType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]), 2559216714: (ID, a) => new IFC4.IfcConstructionResource(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 3293443760: (ID, a) => new IFC4.IfcControl(ID, a[0], a[1], a[2], a[3], a[4], a[5]), 3895139033: (ID, a) => new IFC4.IfcCostItem(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 1419761937: (ID, a) => new IFC4.IfcCostSchedule(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 1916426348: (ID, a) => new IFC4.IfcCoveringType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 3295246426: (ID, a) => new IFC4.IfcCrewResource(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]), 1457835157: (ID, a) => new IFC4.IfcCurtainWallType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 1213902940: (ID, a) => new IFC4.IfcCylindricalSurface(ID, a[0], a[1]), 3256556792: (ID, a) => new IFC4.IfcDistributionElementType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 3849074793: (ID, a) => new IFC4.IfcDistributionFlowElementType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 2963535650: (ID, a) => new IFC4.IfcDoorLiningProperties(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14], a[15], a[16]), 1714330368: (ID, a) => new IFC4.IfcDoorPanelProperties(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 2323601079: (ID, a) => new IFC4.IfcDoorType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12]), 445594917: (ID, a) => new IFC4.IfcDraughtingPreDefinedColour(ID, a[0]), 4006246654: (ID, a) => new IFC4.IfcDraughtingPreDefinedCurveFont(ID, a[0]), 1758889154: (ID, a) => new IFC4.IfcElement(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), 4123344466: (ID, a) => new IFC4.IfcElementAssembly(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 2397081782: (ID, a) => new IFC4.IfcElementAssemblyType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 1623761950: (ID, a) => new IFC4.IfcElementComponent(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), 2590856083: (ID, a) => new IFC4.IfcElementComponentType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 1704287377: (ID, a) => new IFC4.IfcEllipse(ID, a[0], a[1], a[2]), 2107101300: (ID, a) => new IFC4.IfcEnergyConversionDeviceType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 132023988: (ID, a) => new IFC4.IfcEngineType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 3174744832: (ID, a) => new IFC4.IfcEvaporativeCoolerType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 3390157468: (ID, a) => new IFC4.IfcEvaporatorType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 4148101412: (ID, a) => new IFC4.IfcEvent(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]), 2853485674: (ID, a) => new IFC4.IfcExternalSpatialStructureElement(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), 807026263: (ID, a) => new IFC4.IfcFacetedBrep(ID, a[0]), 3737207727: (ID, a) => new IFC4.IfcFacetedBrepWithVoids(ID, a[0], a[1]), 647756555: (ID, a) => new IFC4.IfcFastener(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 2489546625: (ID, a) => new IFC4.IfcFastenerType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 2827207264: (ID, a) => new IFC4.IfcFeatureElement(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), 2143335405: (ID, a) => new IFC4.IfcFeatureElementAddition(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), 1287392070: (ID, a) => new IFC4.IfcFeatureElementSubtraction(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), 3907093117: (ID, a) => new IFC4.IfcFlowControllerType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 3198132628: (ID, a) => new IFC4.IfcFlowFittingType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 3815607619: (ID, a) => new IFC4.IfcFlowMeterType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 1482959167: (ID, a) => new IFC4.IfcFlowMovingDeviceType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 1834744321: (ID, a) => new IFC4.IfcFlowSegmentType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 1339347760: (ID, a) => new IFC4.IfcFlowStorageDeviceType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 2297155007: (ID, a) => new IFC4.IfcFlowTerminalType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 3009222698: (ID, a) => new IFC4.IfcFlowTreatmentDeviceType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 1893162501: (ID, a) => new IFC4.IfcFootingType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 263784265: (ID, a) => new IFC4.IfcFurnishingElement(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), 1509553395: (ID, a) => new IFC4.IfcFurniture(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 3493046030: (ID, a) => new IFC4.IfcGeographicElement(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 3009204131: (ID, a) => new IFC4.IfcGrid(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]), 2706460486: (ID, a) => new IFC4.IfcGroup(ID, a[0], a[1], a[2], a[3], a[4]), 1251058090: (ID, a) => new IFC4.IfcHeatExchangerType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 1806887404: (ID, a) => new IFC4.IfcHumidifierType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 2571569899: (ID, a) => new IFC4.IfcIndexedPolyCurve(ID, a[0], a[1], a[2]), 3946677679: (ID, a) => new IFC4.IfcInterceptorType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 3113134337: (ID, a) => new IFC4.IfcIntersectionCurve(ID, a[0], a[1], a[2]), 2391368822: (ID, a) => new IFC4.IfcInventory(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]), 4288270099: (ID, a) => new IFC4.IfcJunctionBoxType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 3827777499: (ID, a) => new IFC4.IfcLaborResource(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]), 1051575348: (ID, a) => new IFC4.IfcLampType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 1161773419: (ID, a) => new IFC4.IfcLightFixtureType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 377706215: (ID, a) => new IFC4.IfcMechanicalFastener(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]), 2108223431: (ID, a) => new IFC4.IfcMechanicalFastenerType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]), 1114901282: (ID, a) => new IFC4.IfcMedicalDeviceType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 3181161470: (ID, a) => new IFC4.IfcMemberType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 977012517: (ID, a) => new IFC4.IfcMotorConnectionType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 4143007308: (ID, a) => new IFC4.IfcOccupant(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]), 3588315303: (ID, a) => new IFC4.IfcOpeningElement(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 3079942009: (ID, a) => new IFC4.IfcOpeningStandardCase(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 2837617999: (ID, a) => new IFC4.IfcOutletType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 2382730787: (ID, a) => new IFC4.IfcPerformanceHistory(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), 3566463478: (ID, a) => new IFC4.IfcPermeableCoveringProperties(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 3327091369: (ID, a) => new IFC4.IfcPermit(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 1158309216: (ID, a) => new IFC4.IfcPileType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 804291784: (ID, a) => new IFC4.IfcPipeFittingType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 4231323485: (ID, a) => new IFC4.IfcPipeSegmentType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 4017108033: (ID, a) => new IFC4.IfcPlateType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 2839578677: (ID, a) => new IFC4.IfcPolygonalFaceSet(ID, a[0], a[1], a[2], a[3]), 3724593414: (ID, a) => new IFC4.IfcPolyline(ID, a[0]), 3740093272: (ID, a) => new IFC4.IfcPort(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]), 2744685151: (ID, a) => new IFC4.IfcProcedure(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), 2904328755: (ID, a) => new IFC4.IfcProjectOrder(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 3651124850: (ID, a) => new IFC4.IfcProjectionElement(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 1842657554: (ID, a) => new IFC4.IfcProtectiveDeviceType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 2250791053: (ID, a) => new IFC4.IfcPumpType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 2893384427: (ID, a) => new IFC4.IfcRailingType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 2324767716: (ID, a) => new IFC4.IfcRampFlightType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 1469900589: (ID, a) => new IFC4.IfcRampType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 683857671: (ID, a) => new IFC4.IfcRationalBSplineSurfaceWithKnots(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12]), 3027567501: (ID, a) => new IFC4.IfcReinforcingElement(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 964333572: (ID, a) => new IFC4.IfcReinforcingElementType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 2320036040: (ID, a) => new IFC4.IfcReinforcingMesh(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14], a[15], a[16], a[17]), 2310774935: (ID, a) => new IFC4.IfcReinforcingMeshType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14], a[15], a[16], a[17], a[18], a[19]), 160246688: (ID, a) => new IFC4.IfcRelAggregates(ID, a[0], a[1], a[2], a[3], a[4], a[5]), 2781568857: (ID, a) => new IFC4.IfcRoofType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 1768891740: (ID, a) => new IFC4.IfcSanitaryTerminalType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 2157484638: (ID, a) => new IFC4.IfcSeamCurve(ID, a[0], a[1], a[2]), 4074543187: (ID, a) => new IFC4.IfcShadingDeviceType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 4097777520: (ID, a) => new IFC4.IfcSite(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13]), 2533589738: (ID, a) => new IFC4.IfcSlabType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 1072016465: (ID, a) => new IFC4.IfcSolarDeviceType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 3856911033: (ID, a) => new IFC4.IfcSpace(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]), 1305183839: (ID, a) => new IFC4.IfcSpaceHeaterType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 3812236995: (ID, a) => new IFC4.IfcSpaceType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]), 3112655638: (ID, a) => new IFC4.IfcStackTerminalType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 1039846685: (ID, a) => new IFC4.IfcStairFlightType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 338393293: (ID, a) => new IFC4.IfcStairType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 682877961: (ID, a) => new IFC4.IfcStructuralAction(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 1179482911: (ID, a) => new IFC4.IfcStructuralConnection(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), 1004757350: (ID, a) => new IFC4.IfcStructuralCurveAction(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]), 4243806635: (ID, a) => new IFC4.IfcStructuralCurveConnection(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 214636428: (ID, a) => new IFC4.IfcStructuralCurveMember(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 2445595289: (ID, a) => new IFC4.IfcStructuralCurveMemberVarying(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 2757150158: (ID, a) => new IFC4.IfcStructuralCurveReaction(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 1807405624: (ID, a) => new IFC4.IfcStructuralLinearAction(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]), 1252848954: (ID, a) => new IFC4.IfcStructuralLoadGroup(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 2082059205: (ID, a) => new IFC4.IfcStructuralPointAction(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 734778138: (ID, a) => new IFC4.IfcStructuralPointConnection(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 1235345126: (ID, a) => new IFC4.IfcStructuralPointReaction(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 2986769608: (ID, a) => new IFC4.IfcStructuralResultGroup(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), 3657597509: (ID, a) => new IFC4.IfcStructuralSurfaceAction(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]), 1975003073: (ID, a) => new IFC4.IfcStructuralSurfaceConnection(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), 148013059: (ID, a) => new IFC4.IfcSubContractResource(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]), 3101698114: (ID, a) => new IFC4.IfcSurfaceFeature(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 2315554128: (ID, a) => new IFC4.IfcSwitchingDeviceType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 2254336722: (ID, a) => new IFC4.IfcSystem(ID, a[0], a[1], a[2], a[3], a[4]), 413509423: (ID, a) => new IFC4.IfcSystemFurnitureElement(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 5716631: (ID, a) => new IFC4.IfcTankType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 3824725483: (ID, a) => new IFC4.IfcTendon(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14], a[15], a[16]), 2347447852: (ID, a) => new IFC4.IfcTendonAnchor(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 3081323446: (ID, a) => new IFC4.IfcTendonAnchorType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 2415094496: (ID, a) => new IFC4.IfcTendonType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12]), 1692211062: (ID, a) => new IFC4.IfcTransformerType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 1620046519: (ID, a) => new IFC4.IfcTransportElement(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 3593883385: (ID, a) => new IFC4.IfcTrimmedCurve(ID, a[0], a[1], a[2], a[3], a[4]), 1600972822: (ID, a) => new IFC4.IfcTubeBundleType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 1911125066: (ID, a) => new IFC4.IfcUnitaryEquipmentType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 728799441: (ID, a) => new IFC4.IfcValveType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 2391383451: (ID, a) => new IFC4.IfcVibrationIsolator(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 3313531582: (ID, a) => new IFC4.IfcVibrationIsolatorType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 2769231204: (ID, a) => new IFC4.IfcVirtualElement(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), 926996030: (ID, a) => new IFC4.IfcVoidingFeature(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 1898987631: (ID, a) => new IFC4.IfcWallType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 1133259667: (ID, a) => new IFC4.IfcWasteTerminalType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 4009809668: (ID, a) => new IFC4.IfcWindowType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12]), 4088093105: (ID, a) => new IFC4.IfcWorkCalendar(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 1028945134: (ID, a) => new IFC4.IfcWorkControl(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12]), 4218914973: (ID, a) => new IFC4.IfcWorkPlan(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13]), 3342526732: (ID, a) => new IFC4.IfcWorkSchedule(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13]), 1033361043: (ID, a) => new IFC4.IfcZone(ID, a[0], a[1], a[2], a[3], a[4], a[5]), 3821786052: (ID, a) => new IFC4.IfcActionRequest(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 1411407467: (ID, a) => new IFC4.IfcAirTerminalBoxType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 3352864051: (ID, a) => new IFC4.IfcAirTerminalType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 1871374353: (ID, a) => new IFC4.IfcAirToAirHeatRecoveryType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 3460190687: (ID, a) => new IFC4.IfcAsset(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13]), 1532957894: (ID, a) => new IFC4.IfcAudioVisualApplianceType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 1967976161: (ID, a) => new IFC4.IfcBSplineCurve(ID, a[0], a[1], a[2], a[3], a[4]), 2461110595: (ID, a) => new IFC4.IfcBSplineCurveWithKnots(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), 819618141: (ID, a) => new IFC4.IfcBeamType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 231477066: (ID, a) => new IFC4.IfcBoilerType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 1136057603: (ID, a) => new IFC4.IfcBoundaryCurve(ID, a[0], a[1]), 3299480353: (ID, a) => new IFC4.IfcBuildingElement(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), 2979338954: (ID, a) => new IFC4.IfcBuildingElementPart(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 39481116: (ID, a) => new IFC4.IfcBuildingElementPartType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 1095909175: (ID, a) => new IFC4.IfcBuildingElementProxy(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 1909888760: (ID, a) => new IFC4.IfcBuildingElementProxyType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 1177604601: (ID, a) => new IFC4.IfcBuildingSystem(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]), 2188180465: (ID, a) => new IFC4.IfcBurnerType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 395041908: (ID, a) => new IFC4.IfcCableCarrierFittingType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 3293546465: (ID, a) => new IFC4.IfcCableCarrierSegmentType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 2674252688: (ID, a) => new IFC4.IfcCableFittingType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 1285652485: (ID, a) => new IFC4.IfcCableSegmentType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 2951183804: (ID, a) => new IFC4.IfcChillerType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 3296154744: (ID, a) => new IFC4.IfcChimney(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 2611217952: (ID, a) => new IFC4.IfcCircle(ID, a[0], a[1]), 1677625105: (ID, a) => new IFC4.IfcCivilElement(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), 2301859152: (ID, a) => new IFC4.IfcCoilType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 843113511: (ID, a) => new IFC4.IfcColumn(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 905975707: (ID, a) => new IFC4.IfcColumnStandardCase(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 400855858: (ID, a) => new IFC4.IfcCommunicationsApplianceType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 3850581409: (ID, a) => new IFC4.IfcCompressorType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 2816379211: (ID, a) => new IFC4.IfcCondenserType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 3898045240: (ID, a) => new IFC4.IfcConstructionEquipmentResource(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]), 1060000209: (ID, a) => new IFC4.IfcConstructionMaterialResource(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]), 488727124: (ID, a) => new IFC4.IfcConstructionProductResource(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]), 335055490: (ID, a) => new IFC4.IfcCooledBeamType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 2954562838: (ID, a) => new IFC4.IfcCoolingTowerType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 1973544240: (ID, a) => new IFC4.IfcCovering(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 3495092785: (ID, a) => new IFC4.IfcCurtainWall(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 3961806047: (ID, a) => new IFC4.IfcDamperType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 1335981549: (ID, a) => new IFC4.IfcDiscreteAccessory(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 2635815018: (ID, a) => new IFC4.IfcDiscreteAccessoryType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 1599208980: (ID, a) => new IFC4.IfcDistributionChamberElementType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 2063403501: (ID, a) => new IFC4.IfcDistributionControlElementType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 1945004755: (ID, a) => new IFC4.IfcDistributionElement(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), 3040386961: (ID, a) => new IFC4.IfcDistributionFlowElement(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), 3041715199: (ID, a) => new IFC4.IfcDistributionPort(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 3205830791: (ID, a) => new IFC4.IfcDistributionSystem(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]), 395920057: (ID, a) => new IFC4.IfcDoor(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12]), 3242481149: (ID, a) => new IFC4.IfcDoorStandardCase(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12]), 869906466: (ID, a) => new IFC4.IfcDuctFittingType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 3760055223: (ID, a) => new IFC4.IfcDuctSegmentType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 2030761528: (ID, a) => new IFC4.IfcDuctSilencerType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 663422040: (ID, a) => new IFC4.IfcElectricApplianceType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 2417008758: (ID, a) => new IFC4.IfcElectricDistributionBoardType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 3277789161: (ID, a) => new IFC4.IfcElectricFlowStorageDeviceType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 1534661035: (ID, a) => new IFC4.IfcElectricGeneratorType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 1217240411: (ID, a) => new IFC4.IfcElectricMotorType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 712377611: (ID, a) => new IFC4.IfcElectricTimeControlType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 1658829314: (ID, a) => new IFC4.IfcEnergyConversionDevice(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), 2814081492: (ID, a) => new IFC4.IfcEngine(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 3747195512: (ID, a) => new IFC4.IfcEvaporativeCooler(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 484807127: (ID, a) => new IFC4.IfcEvaporator(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 1209101575: (ID, a) => new IFC4.IfcExternalSpatialElement(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 346874300: (ID, a) => new IFC4.IfcFanType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 1810631287: (ID, a) => new IFC4.IfcFilterType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 4222183408: (ID, a) => new IFC4.IfcFireSuppressionTerminalType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 2058353004: (ID, a) => new IFC4.IfcFlowController(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), 4278956645: (ID, a) => new IFC4.IfcFlowFitting(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), 4037862832: (ID, a) => new IFC4.IfcFlowInstrumentType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 2188021234: (ID, a) => new IFC4.IfcFlowMeter(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 3132237377: (ID, a) => new IFC4.IfcFlowMovingDevice(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), 987401354: (ID, a) => new IFC4.IfcFlowSegment(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), 707683696: (ID, a) => new IFC4.IfcFlowStorageDevice(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), 2223149337: (ID, a) => new IFC4.IfcFlowTerminal(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), 3508470533: (ID, a) => new IFC4.IfcFlowTreatmentDevice(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), 900683007: (ID, a) => new IFC4.IfcFooting(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 3319311131: (ID, a) => new IFC4.IfcHeatExchanger(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 2068733104: (ID, a) => new IFC4.IfcHumidifier(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 4175244083: (ID, a) => new IFC4.IfcInterceptor(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 2176052936: (ID, a) => new IFC4.IfcJunctionBox(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 76236018: (ID, a) => new IFC4.IfcLamp(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 629592764: (ID, a) => new IFC4.IfcLightFixture(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 1437502449: (ID, a) => new IFC4.IfcMedicalDevice(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 1073191201: (ID, a) => new IFC4.IfcMember(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 1911478936: (ID, a) => new IFC4.IfcMemberStandardCase(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 2474470126: (ID, a) => new IFC4.IfcMotorConnection(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 144952367: (ID, a) => new IFC4.IfcOuterBoundaryCurve(ID, a[0], a[1]), 3694346114: (ID, a) => new IFC4.IfcOutlet(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 1687234759: (ID, a) => new IFC4.IfcPile(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 310824031: (ID, a) => new IFC4.IfcPipeFitting(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 3612865200: (ID, a) => new IFC4.IfcPipeSegment(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 3171933400: (ID, a) => new IFC4.IfcPlate(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 1156407060: (ID, a) => new IFC4.IfcPlateStandardCase(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 738039164: (ID, a) => new IFC4.IfcProtectiveDevice(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 655969474: (ID, a) => new IFC4.IfcProtectiveDeviceTrippingUnitType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 90941305: (ID, a) => new IFC4.IfcPump(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 2262370178: (ID, a) => new IFC4.IfcRailing(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 3024970846: (ID, a) => new IFC4.IfcRamp(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 3283111854: (ID, a) => new IFC4.IfcRampFlight(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 1232101972: (ID, a) => new IFC4.IfcRationalBSplineCurveWithKnots(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 979691226: (ID, a) => new IFC4.IfcReinforcingBar(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13]), 2572171363: (ID, a) => new IFC4.IfcReinforcingBarType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14], a[15]), 2016517767: (ID, a) => new IFC4.IfcRoof(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 3053780830: (ID, a) => new IFC4.IfcSanitaryTerminal(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 1783015770: (ID, a) => new IFC4.IfcSensorType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 1329646415: (ID, a) => new IFC4.IfcShadingDevice(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 1529196076: (ID, a) => new IFC4.IfcSlab(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 3127900445: (ID, a) => new IFC4.IfcSlabElementedCase(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 3027962421: (ID, a) => new IFC4.IfcSlabStandardCase(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 3420628829: (ID, a) => new IFC4.IfcSolarDevice(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 1999602285: (ID, a) => new IFC4.IfcSpaceHeater(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 1404847402: (ID, a) => new IFC4.IfcStackTerminal(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 331165859: (ID, a) => new IFC4.IfcStair(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 4252922144: (ID, a) => new IFC4.IfcStairFlight(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12]), 2515109513: (ID, a) => new IFC4.IfcStructuralAnalysisModel(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 385403989: (ID, a) => new IFC4.IfcStructuralLoadCase(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]), 1621171031: (ID, a) => new IFC4.IfcStructuralPlanarAction(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]), 1162798199: (ID, a) => new IFC4.IfcSwitchingDevice(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 812556717: (ID, a) => new IFC4.IfcTank(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 3825984169: (ID, a) => new IFC4.IfcTransformer(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 3026737570: (ID, a) => new IFC4.IfcTubeBundle(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 3179687236: (ID, a) => new IFC4.IfcUnitaryControlElementType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 4292641817: (ID, a) => new IFC4.IfcUnitaryEquipment(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 4207607924: (ID, a) => new IFC4.IfcValve(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 2391406946: (ID, a) => new IFC4.IfcWall(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 4156078855: (ID, a) => new IFC4.IfcWallElementedCase(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 3512223829: (ID, a) => new IFC4.IfcWallStandardCase(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 4237592921: (ID, a) => new IFC4.IfcWasteTerminal(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 3304561284: (ID, a) => new IFC4.IfcWindow(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12]), 486154966: (ID, a) => new IFC4.IfcWindowStandardCase(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12]), 2874132201: (ID, a) => new IFC4.IfcActuatorType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 1634111441: (ID, a) => new IFC4.IfcAirTerminal(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 177149247: (ID, a) => new IFC4.IfcAirTerminalBox(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 2056796094: (ID, a) => new IFC4.IfcAirToAirHeatRecovery(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 3001207471: (ID, a) => new IFC4.IfcAlarmType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 277319702: (ID, a) => new IFC4.IfcAudioVisualAppliance(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 753842376: (ID, a) => new IFC4.IfcBeam(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 2906023776: (ID, a) => new IFC4.IfcBeamStandardCase(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 32344328: (ID, a) => new IFC4.IfcBoiler(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 2938176219: (ID, a) => new IFC4.IfcBurner(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 635142910: (ID, a) => new IFC4.IfcCableCarrierFitting(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 3758799889: (ID, a) => new IFC4.IfcCableCarrierSegment(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 1051757585: (ID, a) => new IFC4.IfcCableFitting(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 4217484030: (ID, a) => new IFC4.IfcCableSegment(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 3902619387: (ID, a) => new IFC4.IfcChiller(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 639361253: (ID, a) => new IFC4.IfcCoil(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 3221913625: (ID, a) => new IFC4.IfcCommunicationsAppliance(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 3571504051: (ID, a) => new IFC4.IfcCompressor(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 2272882330: (ID, a) => new IFC4.IfcCondenser(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 578613899: (ID, a) => new IFC4.IfcControllerType(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]), 4136498852: (ID, a) => new IFC4.IfcCooledBeam(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 3640358203: (ID, a) => new IFC4.IfcCoolingTower(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 4074379575: (ID, a) => new IFC4.IfcDamper(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 1052013943: (ID, a) => new IFC4.IfcDistributionChamberElement(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 562808652: (ID, a) => new IFC4.IfcDistributionCircuit(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6]), 1062813311: (ID, a) => new IFC4.IfcDistributionControlElement(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]), 342316401: (ID, a) => new IFC4.IfcDuctFitting(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 3518393246: (ID, a) => new IFC4.IfcDuctSegment(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 1360408905: (ID, a) => new IFC4.IfcDuctSilencer(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 1904799276: (ID, a) => new IFC4.IfcElectricAppliance(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 862014818: (ID, a) => new IFC4.IfcElectricDistributionBoard(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 3310460725: (ID, a) => new IFC4.IfcElectricFlowStorageDevice(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 264262732: (ID, a) => new IFC4.IfcElectricGenerator(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 402227799: (ID, a) => new IFC4.IfcElectricMotor(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 1003880860: (ID, a) => new IFC4.IfcElectricTimeControl(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 3415622556: (ID, a) => new IFC4.IfcFan(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 819412036: (ID, a) => new IFC4.IfcFilter(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 1426591983: (ID, a) => new IFC4.IfcFireSuppressionTerminal(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 182646315: (ID, a) => new IFC4.IfcFlowInstrument(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 2295281155: (ID, a) => new IFC4.IfcProtectiveDeviceTrippingUnit(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 4086658281: (ID, a) => new IFC4.IfcSensor(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 630975310: (ID, a) => new IFC4.IfcUnitaryControlElement(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 4288193352: (ID, a) => new IFC4.IfcActuator(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 3087945054: (ID, a) => new IFC4.IfcAlarm(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]), 25142252: (ID, a) => new IFC4.IfcController(ID, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]) }; ToRawLineData[3] = { 3630933823: (i) => [i.Role, i.UserDefinedRole, i.Description], 618182010: (i) => [i.Purpose, i.Description, i.UserDefinedPurpose], 639542469: (i) => [i.ApplicationDeveloper, i.Version, i.ApplicationFullName, i.ApplicationIdentifier], 411424972: (i) => [i.Name, i.Description, i.AppliedValue, i.UnitBasis, i.ApplicableDate, i.FixedUntilDate, i.Category, i.Condition, i.ArithmeticOperator, i.Components], 130549933: (i) => [i.Identifier, i.Name, i.Description, i.TimeOfApproval, i.Status, i.Level, i.Qualifier, i.RequestingApproval, i.GivingApproval], 4037036970: (i) => [i.Name], 1560379544: (i) => [i.Name, !i.TranslationalStiffnessByLengthX ? null : Labelise(i.TranslationalStiffnessByLengthX), !i.TranslationalStiffnessByLengthY ? null : Labelise(i.TranslationalStiffnessByLengthY), !i.TranslationalStiffnessByLengthZ ? null : Labelise(i.TranslationalStiffnessByLengthZ), !i.RotationalStiffnessByLengthX ? null : Labelise(i.RotationalStiffnessByLengthX), !i.RotationalStiffnessByLengthY ? null : Labelise(i.RotationalStiffnessByLengthY), !i.RotationalStiffnessByLengthZ ? null : Labelise(i.RotationalStiffnessByLengthZ)], 3367102660: (i) => [i.Name, !i.TranslationalStiffnessByAreaX ? null : Labelise(i.TranslationalStiffnessByAreaX), !i.TranslationalStiffnessByAreaY ? null : Labelise(i.TranslationalStiffnessByAreaY), !i.TranslationalStiffnessByAreaZ ? null : Labelise(i.TranslationalStiffnessByAreaZ)], 1387855156: (i) => [i.Name, !i.TranslationalStiffnessX ? null : Labelise(i.TranslationalStiffnessX), !i.TranslationalStiffnessY ? null : Labelise(i.TranslationalStiffnessY), !i.TranslationalStiffnessZ ? null : Labelise(i.TranslationalStiffnessZ), !i.RotationalStiffnessX ? null : Labelise(i.RotationalStiffnessX), !i.RotationalStiffnessY ? null : Labelise(i.RotationalStiffnessY), !i.RotationalStiffnessZ ? null : Labelise(i.RotationalStiffnessZ)], 2069777674: (i) => [i.Name, !i.TranslationalStiffnessX ? null : Labelise(i.TranslationalStiffnessX), !i.TranslationalStiffnessY ? null : Labelise(i.TranslationalStiffnessY), !i.TranslationalStiffnessZ ? null : Labelise(i.TranslationalStiffnessZ), !i.RotationalStiffnessX ? null : Labelise(i.RotationalStiffnessX), !i.RotationalStiffnessY ? null : Labelise(i.RotationalStiffnessY), !i.RotationalStiffnessZ ? null : Labelise(i.RotationalStiffnessZ), !i.WarpingStiffness ? null : Labelise(i.WarpingStiffness)], 2859738748: (_) => [], 2614616156: (i) => [i.PointOnRelatingElement, i.PointOnRelatedElement], 2732653382: (i) => [i.SurfaceOnRelatingElement, i.SurfaceOnRelatedElement], 775493141: (i) => [i.VolumeOnRelatingElement, i.VolumeOnRelatedElement], 1959218052: (i) => [i.Name, i.Description, i.ConstraintGrade, i.ConstraintSource, i.CreatingActor, i.CreationTime, i.UserDefinedGrade], 1785450214: (i) => [i.SourceCRS, i.TargetCRS], 1466758467: (i) => [i.Name, i.Description, i.GeodeticDatum, i.VerticalDatum], 602808272: (i) => [i.Name, i.Description, i.AppliedValue, i.UnitBasis, i.ApplicableDate, i.FixedUntilDate, i.Category, i.Condition, i.ArithmeticOperator, i.Components], 1765591967: (i) => [i.Elements, i.UnitType, i.UserDefinedType], 1045800335: (i) => [i.Unit, i.Exponent], 2949456006: (i) => [i.LengthExponent, i.MassExponent, i.TimeExponent, i.ElectricCurrentExponent, i.ThermodynamicTemperatureExponent, i.AmountOfSubstanceExponent, i.LuminousIntensityExponent], 4294318154: (_) => [], 3200245327: (i) => [i.Location, i.Identification, i.Name], 2242383968: (i) => [i.Location, i.Identification, i.Name], 1040185647: (i) => [i.Location, i.Identification, i.Name], 3548104201: (i) => [i.Location, i.Identification, i.Name], 852622518: (i) => [i.AxisTag, i.AxisCurve, i.SameSense], 3020489413: (i) => [i.TimeStamp, i.ListValues.map((p) => Labelise(p))], 2655187982: (i) => [i.Name, i.Version, i.Publisher, i.VersionDate, i.Location, i.Description], 3452421091: (i) => [i.Location, i.Identification, i.Name, i.Description, i.Language, i.ReferencedLibrary], 4162380809: (i) => [i.MainPlaneAngle, i.SecondaryPlaneAngle, i.LuminousIntensity], 1566485204: (i) => [i.LightDistributionCurve, i.DistributionData], 3057273783: (i) => [i.SourceCRS, i.TargetCRS, i.Eastings, i.Northings, i.OrthogonalHeight, i.XAxisAbscissa, i.XAxisOrdinate, i.Scale], 1847130766: (i) => [i.MaterialClassifications, i.ClassifiedMaterial], 760658860: (_) => [], 248100487: (i) => [i.Material, i.LayerThickness, i.IsVentilated, i.Name, i.Description, i.Category, i.Priority], 3303938423: (i) => [i.MaterialLayers, i.LayerSetName, i.Description], 1847252529: (i) => [i.Material, i.LayerThickness, i.IsVentilated, i.Name, i.Description, i.Category, i.Priority, i.OffsetDirection, i.OffsetValues], 2199411900: (i) => [i.Materials], 2235152071: (i) => [i.Name, i.Description, i.Material, i.Profile, i.Priority, i.Category], 164193824: (i) => [i.Name, i.Description, i.MaterialProfiles, i.CompositeProfile], 552965576: (i) => [i.Name, i.Description, i.Material, i.Profile, i.Priority, i.Category, i.OffsetValues], 1507914824: (_) => [], 2597039031: (i) => [Labelise(i.ValueComponent), i.UnitComponent], 3368373690: (i) => [i.Name, i.Description, i.ConstraintGrade, i.ConstraintSource, i.CreatingActor, i.CreationTime, i.UserDefinedGrade, i.Benchmark, i.ValueSource, i.DataValue, i.ReferencePath], 2706619895: (i) => [i.Currency], 1918398963: (i) => [i.Dimensions, i.UnitType], 3701648758: (_) => [], 2251480897: (i) => [i.Name, i.Description, i.ConstraintGrade, i.ConstraintSource, i.CreatingActor, i.CreationTime, i.UserDefinedGrade, i.BenchmarkValues, i.LogicalAggregator, i.ObjectiveQualifier, i.UserDefinedQualifier], 4251960020: (i) => [i.Identification, i.Name, i.Description, i.Roles, i.Addresses], 1207048766: (i) => [i.OwningUser, i.OwningApplication, i.State, i.ChangeAction, i.LastModifiedDate, i.LastModifyingUser, i.LastModifyingApplication, i.CreationDate], 2077209135: (i) => [i.Identification, i.FamilyName, i.GivenName, i.MiddleNames, i.PrefixTitles, i.SuffixTitles, i.Roles, i.Addresses], 101040310: (i) => [i.ThePerson, i.TheOrganization, i.Roles], 2483315170: (i) => [i.Name, i.Description], 2226359599: (i) => [i.Name, i.Description, i.Unit], 3355820592: (i) => [i.Purpose, i.Description, i.UserDefinedPurpose, i.InternalLocation, i.AddressLines, i.PostalBox, i.Town, i.Region, i.PostalCode, i.Country], 677532197: (_) => [], 2022622350: (i) => [i.Name, i.Description, i.AssignedItems, i.Identifier], 1304840413: (i) => [i.Name, i.Description, i.AssignedItems, i.Identifier, i.LayerOn, i.LayerFrozen, i.LayerBlocked, i.LayerStyles], 3119450353: (i) => [i.Name], 2417041796: (i) => [i.Styles], 2095639259: (i) => [i.Name, i.Description, i.Representations], 3958567839: (i) => [i.ProfileType, i.ProfileName], 3843373140: (i) => [i.Name, i.Description, i.GeodeticDatum, i.VerticalDatum, i.MapProjection, i.MapZone, i.MapUnit], 986844984: (_) => [], 3710013099: (i) => [i.Name, i.EnumerationValues.map((p) => Labelise(p)), i.Unit], 2044713172: (i) => [i.Name, i.Description, i.Unit, i.AreaValue, i.Formula], 2093928680: (i) => [i.Name, i.Description, i.Unit, i.CountValue, i.Formula], 931644368: (i) => [i.Name, i.Description, i.Unit, i.LengthValue, i.Formula], 3252649465: (i) => [i.Name, i.Description, i.Unit, i.TimeValue, i.Formula], 2405470396: (i) => [i.Name, i.Description, i.Unit, i.VolumeValue, i.Formula], 825690147: (i) => [i.Name, i.Description, i.Unit, i.WeightValue, i.Formula], 3915482550: (i) => [i.RecurrenceType, i.DayComponent, i.WeekdayComponent, i.MonthComponent, i.Position, i.Interval, i.Occurrences, i.TimePeriods], 2433181523: (i) => [i.TypeIdentifier, i.AttributeIdentifier, i.InstanceName, i.ListPositions, i.InnerReference], 1076942058: (i) => [i.ContextOfItems, i.RepresentationIdentifier, i.RepresentationType, i.Items], 3377609919: (i) => [i.ContextIdentifier, i.ContextType], 3008791417: (_) => [], 1660063152: (i) => [i.MappingOrigin, i.MappedRepresentation], 2439245199: (i) => [i.Name, i.Description], 2341007311: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description], 448429030: (i) => [i.Dimensions, i.UnitType, i.Prefix, i.Name], 1054537805: (i) => [i.Name, i.DataOrigin, i.UserDefinedDataOrigin], 867548509: (i) => [i.ShapeRepresentations, i.Name, i.Description, i.ProductDefinitional, i.PartOfProductDefinitionShape], 3982875396: (i) => [i.ContextOfItems, i.RepresentationIdentifier, i.RepresentationType, i.Items], 4240577450: (i) => [i.ContextOfItems, i.RepresentationIdentifier, i.RepresentationType, i.Items], 2273995522: (i) => [i.Name], 2162789131: (i) => [i.Name], 3478079324: (i) => [i.Name, i.Values, i.Locations], 609421318: (i) => [i.Name], 2525727697: (i) => [i.Name], 3408363356: (i) => [i.Name, i.DeltaTConstant, i.DeltaTY, i.DeltaTZ], 2830218821: (i) => [i.ContextOfItems, i.RepresentationIdentifier, i.RepresentationType, i.Items], 3958052878: (i) => [i.Item, i.Styles, i.Name], 3049322572: (i) => [i.ContextOfItems, i.RepresentationIdentifier, i.RepresentationType, i.Items], 2934153892: (i) => [i.Name, i.SurfaceReinforcement1, i.SurfaceReinforcement2, i.ShearReinforcement], 1300840506: (i) => [i.Name, i.Side, i.Styles], 3303107099: (i) => [i.DiffuseTransmissionColour, i.DiffuseReflectionColour, i.TransmissionColour, i.ReflectanceColour], 1607154358: (i) => [i.RefractionIndex, i.DispersionFactor], 846575682: (i) => [i.SurfaceColour, i.Transparency], 1351298697: (i) => [i.Textures], 626085974: (i) => [i.RepeatS, i.RepeatT, i.Mode, i.TextureTransform, i.Parameter], 985171141: (i) => [i.Name, i.Rows, i.Columns], 2043862942: (i) => [i.Identifier, i.Name, i.Description, i.Unit, i.ReferencePath], 531007025: (i) => [!i.RowCells ? null : i.RowCells.map((p) => Labelise(p)), i.IsHeading], 1549132990: (i) => [i.Name, i.DataOrigin, i.UserDefinedDataOrigin, i.DurationType, i.ScheduleDuration, i.ScheduleStart, i.ScheduleFinish, i.EarlyStart, i.EarlyFinish, i.LateStart, i.LateFinish, i.FreeFloat, i.TotalFloat, i.IsCritical, i.StatusTime, i.ActualDuration, i.ActualStart, i.ActualFinish, i.RemainingTime, i.Completion], 2771591690: (i) => [i.Name, i.DataOrigin, i.UserDefinedDataOrigin, i.DurationType, i.ScheduleDuration, i.ScheduleStart, i.ScheduleFinish, i.EarlyStart, i.EarlyFinish, i.LateStart, i.LateFinish, i.FreeFloat, i.TotalFloat, i.IsCritical, i.StatusTime, i.ActualDuration, i.ActualStart, i.ActualFinish, i.RemainingTime, i.Completion, i.Recurrence], 912023232: (i) => [i.Purpose, i.Description, i.UserDefinedPurpose, i.TelephoneNumbers, i.FacsimileNumbers, i.PagerNumber, i.ElectronicMailAddresses, i.WWWHomePageURL, i.MessagingIDs], 1447204868: (i) => [i.Name, i.TextCharacterAppearance, i.TextStyle, i.TextFontStyle, i.ModelOrDraughting], 2636378356: (i) => [i.Colour, i.BackgroundColour], 1640371178: (i) => [!i.TextIndent ? null : Labelise(i.TextIndent), i.TextAlign, i.TextDecoration, !i.LetterSpacing ? null : Labelise(i.LetterSpacing), !i.WordSpacing ? null : Labelise(i.WordSpacing), i.TextTransform, !i.LineHeight ? null : Labelise(i.LineHeight)], 280115917: (i) => [i.Maps], 1742049831: (i) => [i.Maps, i.Mode, i.Parameter], 2552916305: (i) => [i.Maps, i.Vertices, i.MappedTo], 1210645708: (i) => [i.Coordinates], 3611470254: (i) => [i.TexCoordsList], 1199560280: (i) => [i.StartTime, i.EndTime], 3101149627: (i) => [i.Name, i.Description, i.StartTime, i.EndTime, i.TimeSeriesDataType, i.DataOrigin, i.UserDefinedDataOrigin, i.Unit], 581633288: (i) => [i.ListValues.map((p) => Labelise(p))], 1377556343: (_) => [], 1735638870: (i) => [i.ContextOfItems, i.RepresentationIdentifier, i.RepresentationType, i.Items], 180925521: (i) => [i.Units], 2799835756: (_) => [], 1907098498: (i) => [i.VertexGeometry], 891718957: (i) => [i.IntersectingAxes, i.OffsetDistances], 1236880293: (i) => [i.Name, i.DataOrigin, i.UserDefinedDataOrigin, i.RecurrencePattern, i.Start, i.Finish], 3869604511: (i) => [i.Name, i.Description, i.RelatingApproval, i.RelatedApprovals], 3798115385: (i) => [i.ProfileType, i.ProfileName, i.OuterCurve], 1310608509: (i) => [i.ProfileType, i.ProfileName, i.Curve], 2705031697: (i) => [i.ProfileType, i.ProfileName, i.OuterCurve, i.InnerCurves], 616511568: (i) => [i.RepeatS, i.RepeatT, i.Mode, i.TextureTransform, i.Parameter, i.RasterFormat, i.RasterCode], 3150382593: (i) => [i.ProfileType, i.ProfileName, i.Curve, i.Thickness], 747523909: (i) => [i.Source, i.Edition, i.EditionDate, i.Name, i.Description, i.Location, i.ReferenceTokens], 647927063: (i) => [i.Location, i.Identification, i.Name, i.ReferencedSource, i.Description, i.Sort], 3285139300: (i) => [i.ColourList], 3264961684: (i) => [i.Name], 1485152156: (i) => [i.ProfileType, i.ProfileName, i.Profiles, i.Label], 370225590: (i) => [i.CfsFaces], 1981873012: (i) => [i.CurveOnRelatingElement, i.CurveOnRelatedElement], 45288368: (i) => [i.PointOnRelatingElement, i.PointOnRelatedElement, i.EccentricityInX, i.EccentricityInY, i.EccentricityInZ], 3050246964: (i) => [i.Dimensions, i.UnitType, i.Name], 2889183280: (i) => [i.Dimensions, i.UnitType, i.Name, i.ConversionFactor], 2713554722: (i) => [i.Dimensions, i.UnitType, i.Name, i.ConversionFactor, i.ConversionOffset], 539742890: (i) => [i.Name, i.Description, i.RelatingMonetaryUnit, i.RelatedMonetaryUnit, i.ExchangeRate, i.RateDateTime, i.RateSource], 3800577675: (i) => [i.Name, i.CurveFont, !i.CurveWidth ? null : Labelise(i.CurveWidth), i.CurveColour, i.ModelOrDraughting], 1105321065: (i) => [i.Name, i.PatternList], 2367409068: (i) => [i.Name, i.CurveFont, i.CurveFontScaling], 3510044353: (i) => [i.VisibleSegmentLength, i.InvisibleSegmentLength], 3632507154: (i) => [i.ProfileType, i.ProfileName, i.ParentProfile, i.Operator, i.Label], 1154170062: (i) => [i.Identification, i.Name, i.Description, i.Location, i.Purpose, i.IntendedUse, i.Scope, i.Revision, i.DocumentOwner, i.Editors, i.CreationTime, i.LastRevisionTime, i.ElectronicFormat, i.ValidFrom, i.ValidUntil, i.Confidentiality, i.Status], 770865208: (i) => [i.Name, i.Description, i.RelatingDocument, i.RelatedDocuments, i.RelationshipType], 3732053477: (i) => [i.Location, i.Identification, i.Name, i.Description, i.ReferencedDocument], 3900360178: (i) => [i.EdgeStart, i.EdgeEnd], 476780140: (i) => [i.EdgeStart, i.EdgeEnd, i.EdgeGeometry, i.SameSense], 211053100: (i) => [i.Name, i.DataOrigin, i.UserDefinedDataOrigin, i.ActualDate, i.EarlyDate, i.LateDate, i.ScheduleDate], 297599258: (i) => [i.Name, i.Description, i.Properties], 1437805879: (i) => [i.Name, i.Description, i.RelatingReference, i.RelatedResourceObjects], 2556980723: (i) => [i.Bounds], 1809719519: (i) => [i.Bound, i.Orientation], 803316827: (i) => [i.Bound, i.Orientation], 3008276851: (i) => [i.Bounds, i.FaceSurface, i.SameSense], 4219587988: (i) => [i.Name, i.TensionFailureX, i.TensionFailureY, i.TensionFailureZ, i.CompressionFailureX, i.CompressionFailureY, i.CompressionFailureZ], 738692330: (i) => [i.Name, i.FillStyles, i.ModelorDraughting], 3448662350: (i) => [i.ContextIdentifier, i.ContextType, i.CoordinateSpaceDimension, i.Precision, i.WorldCoordinateSystem, i.TrueNorth], 2453401579: (_) => [], 4142052618: (i) => [i.ContextIdentifier, i.ContextType, i.CoordinateSpaceDimension, i.Precision, i.WorldCoordinateSystem, i.TrueNorth, i.ParentContext, i.TargetScale, i.TargetView, i.UserDefinedTargetView], 3590301190: (i) => [i.Elements], 178086475: (i) => [i.PlacementLocation, i.PlacementRefDirection], 812098782: (i) => [i.BaseSurface, i.AgreementFlag], 3905492369: (i) => [i.RepeatS, i.RepeatT, i.Mode, i.TextureTransform, i.Parameter, i.URLReference], 3570813810: (i) => [i.MappedTo, i.Opacity, i.Colours, i.ColourIndex], 1437953363: (i) => [i.Maps, i.MappedTo, i.TexCoords], 2133299955: (i) => [i.Maps, i.MappedTo, i.TexCoords, i.TexCoordIndex], 3741457305: (i) => [i.Name, i.Description, i.StartTime, i.EndTime, i.TimeSeriesDataType, i.DataOrigin, i.UserDefinedDataOrigin, i.Unit, i.Values], 1585845231: (i) => [i.Name, i.DataOrigin, i.UserDefinedDataOrigin, Labelise(i.LagValue), i.DurationType], 1402838566: (i) => [i.Name, i.LightColour, i.AmbientIntensity, i.Intensity], 125510826: (i) => [i.Name, i.LightColour, i.AmbientIntensity, i.Intensity], 2604431987: (i) => [i.Name, i.LightColour, i.AmbientIntensity, i.Intensity, i.Orientation], 4266656042: (i) => [i.Name, i.LightColour, i.AmbientIntensity, i.Intensity, i.Position, i.ColourAppearance, i.ColourTemperature, i.LuminousFlux, i.LightEmissionSource, i.LightDistributionDataSource], 1520743889: (i) => [i.Name, i.LightColour, i.AmbientIntensity, i.Intensity, i.Position, i.Radius, i.ConstantAttenuation, i.DistanceAttenuation, i.QuadricAttenuation], 3422422726: (i) => [i.Name, i.LightColour, i.AmbientIntensity, i.Intensity, i.Position, i.Radius, i.ConstantAttenuation, i.DistanceAttenuation, i.QuadricAttenuation, i.Orientation, i.ConcentrationExponent, i.SpreadAngle, i.BeamWidthAngle], 2624227202: (i) => [i.PlacementRelTo, i.RelativePlacement], 1008929658: (_) => [], 2347385850: (i) => [i.MappingSource, i.MappingTarget], 1838606355: (i) => [i.Name, i.Description, i.Category], 3708119e3: (i) => [i.Name, i.Description, i.Material, i.Fraction, i.Category], 2852063980: (i) => [i.Name, i.Description, i.MaterialConstituents], 2022407955: (i) => [i.Name, i.Description, i.Representations, i.RepresentedMaterial], 1303795690: (i) => [i.ForLayerSet, i.LayerSetDirection, i.DirectionSense, i.OffsetFromReferenceLine, i.ReferenceExtent], 3079605661: (i) => [i.ForProfileSet, i.CardinalPoint, i.ReferenceExtent], 3404854881: (i) => [i.ForProfileSet, i.CardinalPoint, i.ReferenceExtent, i.ForProfileEndSet, i.CardinalEndPoint], 3265635763: (i) => [i.Name, i.Description, i.Properties, i.Material], 853536259: (i) => [i.Name, i.Description, i.RelatingMaterial, i.RelatedMaterials, i.Expression], 2998442950: (i) => [i.ProfileType, i.ProfileName, i.ParentProfile, i.Operator, i.Label], 219451334: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description], 2665983363: (i) => [i.CfsFaces], 1411181986: (i) => [i.Name, i.Description, i.RelatingOrganization, i.RelatedOrganizations], 1029017970: (i) => [i.EdgeStart, i.EdgeEnd, i.EdgeElement, i.Orientation], 2529465313: (i) => [i.ProfileType, i.ProfileName, i.Position], 2519244187: (i) => [i.EdgeList], 3021840470: (i) => [i.Name, i.Description, i.HasQuantities, i.Discrimination, i.Quality, i.Usage], 597895409: (i) => [i.RepeatS, i.RepeatT, i.Mode, i.TextureTransform, i.Parameter, i.Width, i.Height, i.ColourComponents, i.Pixel], 2004835150: (i) => [i.Location], 1663979128: (i) => [i.SizeInX, i.SizeInY], 2067069095: (_) => [], 4022376103: (i) => [i.BasisCurve, i.PointParameter], 1423911732: (i) => [i.BasisSurface, i.PointParameterU, i.PointParameterV], 2924175390: (i) => [i.Polygon], 2775532180: (i) => [i.BaseSurface, i.AgreementFlag, i.Position, i.PolygonalBoundary], 3727388367: (i) => [i.Name], 3778827333: (_) => [], 1775413392: (i) => [i.Name], 673634403: (i) => [i.Name, i.Description, i.Representations], 2802850158: (i) => [i.Name, i.Description, i.Properties, i.ProfileDefinition], 2598011224: (i) => [i.Name, i.Description], 1680319473: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description], 148025276: (i) => [i.Name, i.Description, i.DependingProperty, i.DependantProperty, i.Expression], 3357820518: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description], 1482703590: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description], 2090586900: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description], 3615266464: (i) => [i.ProfileType, i.ProfileName, i.Position, i.XDim, i.YDim], 3413951693: (i) => [i.Name, i.Description, i.StartTime, i.EndTime, i.TimeSeriesDataType, i.DataOrigin, i.UserDefinedDataOrigin, i.Unit, i.TimeStep, i.Values], 1580146022: (i) => [i.TotalCrossSectionArea, i.SteelGrade, i.BarSurface, i.EffectiveDepth, i.NominalBarDiameter, i.BarCount], 478536968: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description], 2943643501: (i) => [i.Name, i.Description, i.RelatedResourceObjects, i.RelatingApproval], 1608871552: (i) => [i.Name, i.Description, i.RelatingConstraint, i.RelatedResourceObjects], 1042787934: (i) => [i.Name, i.DataOrigin, i.UserDefinedDataOrigin, i.ScheduleWork, i.ScheduleUsage, i.ScheduleStart, i.ScheduleFinish, i.ScheduleContour, i.LevelingDelay, i.IsOverAllocated, i.StatusTime, i.ActualWork, i.ActualUsage, i.ActualStart, i.ActualFinish, i.RemainingWork, i.RemainingUsage, i.Completion], 2778083089: (i) => [i.ProfileType, i.ProfileName, i.Position, i.XDim, i.YDim, i.RoundingRadius], 2042790032: (i) => [i.SectionType, i.StartProfile, i.EndProfile], 4165799628: (i) => [i.LongitudinalStartPosition, i.LongitudinalEndPosition, i.TransversePosition, i.ReinforcementRole, i.SectionDefinition, i.CrossSectionReinforcementDefinitions], 1509187699: (i) => [i.SpineCurve, i.CrossSections, i.CrossSectionPositions], 4124623270: (i) => [i.SbsmBoundary], 3692461612: (i) => [i.Name, i.Description], 2609359061: (i) => [i.Name, i.SlippageX, i.SlippageY, i.SlippageZ], 723233188: (_) => [], 1595516126: (i) => [i.Name, i.LinearForceX, i.LinearForceY, i.LinearForceZ, i.LinearMomentX, i.LinearMomentY, i.LinearMomentZ], 2668620305: (i) => [i.Name, i.PlanarForceX, i.PlanarForceY, i.PlanarForceZ], 2473145415: (i) => [i.Name, i.DisplacementX, i.DisplacementY, i.DisplacementZ, i.RotationalDisplacementRX, i.RotationalDisplacementRY, i.RotationalDisplacementRZ], 1973038258: (i) => [i.Name, i.DisplacementX, i.DisplacementY, i.DisplacementZ, i.RotationalDisplacementRX, i.RotationalDisplacementRY, i.RotationalDisplacementRZ, i.Distortion], 1597423693: (i) => [i.Name, i.ForceX, i.ForceY, i.ForceZ, i.MomentX, i.MomentY, i.MomentZ], 1190533807: (i) => [i.Name, i.ForceX, i.ForceY, i.ForceZ, i.MomentX, i.MomentY, i.MomentZ, i.WarpingMoment], 2233826070: (i) => [i.EdgeStart, i.EdgeEnd, i.ParentEdge], 2513912981: (_) => [], 1878645084: (i) => [i.SurfaceColour, i.Transparency, i.DiffuseColour, i.TransmissionColour, i.DiffuseTransmissionColour, i.ReflectionColour, i.SpecularColour, !i.SpecularHighlight ? null : Labelise(i.SpecularHighlight), i.ReflectanceMethod], 2247615214: (i) => [i.SweptArea, i.Position], 1260650574: (i) => [i.Directrix, i.Radius, i.InnerRadius, i.StartParam, i.EndParam], 1096409881: (i) => [i.Directrix, i.Radius, i.InnerRadius, i.StartParam, i.EndParam, i.FilletRadius], 230924584: (i) => [i.SweptCurve, i.Position], 3071757647: (i) => [i.ProfileType, i.ProfileName, i.Position, i.Depth, i.FlangeWidth, i.WebThickness, i.FlangeThickness, i.FilletRadius, i.FlangeEdgeRadius, i.WebEdgeRadius, i.WebSlope, i.FlangeSlope], 901063453: (_) => [], 4282788508: (i) => [i.Literal, i.Placement, i.Path], 3124975700: (i) => [i.Literal, i.Placement, i.Path, i.Extent, i.BoxAlignment], 1983826977: (i) => [i.Name, i.FontFamily, i.FontStyle, i.FontVariant, i.FontWeight, Labelise(i.FontSize)], 2715220739: (i) => [i.ProfileType, i.ProfileName, i.Position, i.BottomXDim, i.TopXDim, i.YDim, i.TopXOffset], 1628702193: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets], 3736923433: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.Identification, i.LongDescription, i.ProcessType], 2347495698: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag], 3698973494: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.Identification, i.LongDescription, i.ResourceType], 427810014: (i) => [i.ProfileType, i.ProfileName, i.Position, i.Depth, i.FlangeWidth, i.WebThickness, i.FlangeThickness, i.FilletRadius, i.EdgeRadius, i.FlangeSlope], 1417489154: (i) => [i.Orientation, i.Magnitude], 2759199220: (i) => [i.LoopVertex], 1299126871: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ConstructionType, i.OperationType, i.ParameterTakesPrecedence, i.Sizeable], 2543172580: (i) => [i.ProfileType, i.ProfileName, i.Position, i.Depth, i.FlangeWidth, i.WebThickness, i.FlangeThickness, i.FilletRadius, i.EdgeRadius], 3406155212: (i) => [i.Bounds, i.FaceSurface, i.SameSense], 669184980: (i) => [i.OuterBoundary, i.InnerBoundaries], 3207858831: (i) => [i.ProfileType, i.ProfileName, i.Position, i.BottomFlangeWidth, i.OverallDepth, i.WebThickness, i.BottomFlangeThickness, i.BottomFlangeFilletRadius, i.TopFlangeWidth, i.TopFlangeThickness, i.TopFlangeFilletRadius, i.BottomFlangeEdgeRadius, i.BottomFlangeSlope, i.TopFlangeEdgeRadius, i.TopFlangeSlope], 4261334040: (i) => [i.Location, i.Axis], 3125803723: (i) => [i.Location, i.RefDirection], 2740243338: (i) => [i.Location, i.Axis, i.RefDirection], 2736907675: (i) => [i.Operator, i.FirstOperand, i.SecondOperand], 4182860854: (_) => [], 2581212453: (i) => [i.Corner, i.XDim, i.YDim, i.ZDim], 2713105998: (i) => [i.BaseSurface, i.AgreementFlag, i.Enclosure], 2898889636: (i) => [i.ProfileType, i.ProfileName, i.Position, i.Depth, i.Width, i.WallThickness, i.Girth, i.InternalFilletRadius], 1123145078: (i) => [i.Coordinates], 574549367: (_) => [], 1675464909: (i) => [i.CoordList], 2059837836: (i) => [i.CoordList], 59481748: (i) => [i.Axis1, i.Axis2, i.LocalOrigin, i.Scale], 3749851601: (i) => [i.Axis1, i.Axis2, i.LocalOrigin, i.Scale], 3486308946: (i) => [i.Axis1, i.Axis2, i.LocalOrigin, i.Scale, i.Scale2], 3331915920: (i) => [i.Axis1, i.Axis2, i.LocalOrigin, i.Scale, i.Axis3], 1416205885: (i) => [i.Axis1, i.Axis2, i.LocalOrigin, i.Scale, i.Axis3, i.Scale2, i.Scale3], 1383045692: (i) => [i.ProfileType, i.ProfileName, i.Position, i.Radius], 2205249479: (i) => [i.CfsFaces], 776857604: (i) => [i.Name, i.Red, i.Green, i.Blue], 2542286263: (i) => [i.Name, i.Description, i.UsageName, i.HasProperties], 2485617015: (i) => [i.Transition, i.SameSense, i.ParentCurve], 2574617495: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.Identification, i.LongDescription, i.ResourceType, i.BaseCosts, i.BaseQuantity], 3419103109: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.LongName, i.Phase, i.RepresentationContexts, i.UnitsInContext], 1815067380: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.Identification, i.LongDescription, i.ResourceType, i.BaseCosts, i.BaseQuantity, i.PredefinedType], 2506170314: (i) => [i.Position], 2147822146: (i) => [i.TreeRootExpression], 2601014836: (_) => [], 2827736869: (i) => [i.BasisSurface, i.OuterBoundary, i.InnerBoundaries], 2629017746: (i) => [i.BasisSurface, i.Boundaries, i.ImplicitOuter], 32440307: (i) => [i.DirectionRatios], 526551008: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.OperationType, i.ConstructionType, i.ParameterTakesPrecedence, i.Sizeable], 1472233963: (i) => [i.EdgeList], 1883228015: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.MethodOfMeasurement, i.Quantities], 339256511: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType], 2777663545: (i) => [i.Position], 2835456948: (i) => [i.ProfileType, i.ProfileName, i.Position, i.SemiAxis1, i.SemiAxis2], 4024345920: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.Identification, i.LongDescription, i.ProcessType, i.PredefinedType, i.EventTriggerType, i.UserDefinedEventTriggerType], 477187591: (i) => [i.SweptArea, i.Position, i.ExtrudedDirection, i.Depth], 2804161546: (i) => [i.SweptArea, i.Position, i.ExtrudedDirection, i.Depth, i.EndSweptArea], 2047409740: (i) => [i.FbsmFaces], 374418227: (i) => [i.HatchLineAppearance, i.StartOfNextHatchLine, i.PointOfReferenceHatchLine, i.PatternStart, i.HatchLineAngle], 315944413: (i) => [i.TilingPattern, i.Tiles, i.TilingScale], 2652556860: (i) => [i.SweptArea, i.Position, i.Directrix, i.StartParam, i.EndParam, i.FixedReference], 4238390223: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType], 1268542332: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.AssemblyPlace, i.PredefinedType], 4095422895: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 987898635: (i) => [i.Elements], 1484403080: (i) => [i.ProfileType, i.ProfileName, i.Position, i.OverallWidth, i.OverallDepth, i.WebThickness, i.FlangeThickness, i.FilletRadius, i.FlangeEdgeRadius, i.FlangeSlope], 178912537: (i) => [i.CoordIndex], 2294589976: (i) => [i.CoordIndex, i.InnerCoordIndices], 572779678: (i) => [i.ProfileType, i.ProfileName, i.Position, i.Depth, i.Width, i.Thickness, i.FilletRadius, i.EdgeRadius, i.LegSlope], 428585644: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.Identification, i.LongDescription, i.ResourceType, i.BaseCosts, i.BaseQuantity, i.PredefinedType], 1281925730: (i) => [i.Pnt, i.Dir], 1425443689: (i) => [i.Outer], 3888040117: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType], 3388369263: (i) => [i.BasisCurve, i.Distance, i.SelfIntersect], 3505215534: (i) => [i.BasisCurve, i.Distance, i.SelfIntersect, i.RefDirection], 1682466193: (i) => [i.BasisSurface, i.ReferenceCurve], 603570806: (i) => [i.SizeInX, i.SizeInY, i.Placement], 220341763: (i) => [i.Position], 759155922: (i) => [i.Name], 2559016684: (i) => [i.Name], 3967405729: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description], 569719735: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.Identification, i.LongDescription, i.ProcessType, i.PredefinedType], 2945172077: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.LongDescription], 4208778838: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation], 103090709: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.LongName, i.Phase, i.RepresentationContexts, i.UnitsInContext], 653396225: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.LongName, i.Phase, i.RepresentationContexts, i.UnitsInContext], 871118103: (i) => [i.Name, i.Description, !i.UpperBoundValue ? null : Labelise(i.UpperBoundValue), !i.LowerBoundValue ? null : Labelise(i.LowerBoundValue), i.Unit, !i.SetPointValue ? null : Labelise(i.SetPointValue)], 4166981789: (i) => [i.Name, i.Description, !i.EnumerationValues ? null : i.EnumerationValues.map((p) => Labelise(p)), i.EnumerationReference], 2752243245: (i) => [i.Name, i.Description, !i.ListValues ? null : i.ListValues.map((p) => Labelise(p)), i.Unit], 941946838: (i) => [i.Name, i.Description, i.UsageName, i.PropertyReference], 1451395588: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.HasProperties], 492091185: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.TemplateType, i.ApplicableEntity, i.HasPropertyTemplates], 3650150729: (i) => [i.Name, i.Description, !i.NominalValue ? null : Labelise(i.NominalValue), i.Unit], 110355661: (i) => [i.Name, i.Description, !i.DefiningValues ? null : i.DefiningValues.map((p) => Labelise(p)), !i.DefinedValues ? null : i.DefinedValues.map((p) => Labelise(p)), i.Expression, i.DefiningUnit, i.DefinedUnit, i.CurveInterpolation], 3521284610: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description], 3219374653: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.ProxyType, i.Tag], 2770003689: (i) => [i.ProfileType, i.ProfileName, i.Position, i.XDim, i.YDim, i.WallThickness, i.InnerFilletRadius, i.OuterFilletRadius], 2798486643: (i) => [i.Position, i.XLength, i.YLength, i.Height], 3454111270: (i) => [i.BasisSurface, i.U1, i.V1, i.U2, i.V2, i.Usense, i.Vsense], 3765753017: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.DefinitionType, i.ReinforcementSectionDefinitions], 3939117080: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatedObjectsType], 1683148259: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatedObjectsType, i.RelatingActor, i.ActingRole], 2495723537: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatedObjectsType, i.RelatingControl], 1307041759: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatedObjectsType, i.RelatingGroup], 1027710054: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatedObjectsType, i.RelatingGroup, i.Factor], 4278684876: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatedObjectsType, i.RelatingProcess, i.QuantityInProcess], 2857406711: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatedObjectsType, i.RelatingProduct], 205026976: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatedObjectsType, i.RelatingResource], 1865459582: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects], 4095574036: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatingApproval], 919958153: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatingClassification], 2728634034: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.Intent, i.RelatingConstraint], 982818633: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatingDocument], 3840914261: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatingLibrary], 2655215786: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatingMaterial], 826625072: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description], 1204542856: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ConnectionGeometry, i.RelatingElement, i.RelatedElement], 3945020480: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ConnectionGeometry, i.RelatingElement, i.RelatedElement, i.RelatingPriorities, i.RelatedPriorities, i.RelatedConnectionType, i.RelatingConnectionType], 4201705270: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingPort, i.RelatedElement], 3190031847: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingPort, i.RelatedPort, i.RealizingElement], 2127690289: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingElement, i.RelatedStructuralActivity], 1638771189: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingStructuralMember, i.RelatedStructuralConnection, i.AppliedCondition, i.AdditionalConditions, i.SupportedLength, i.ConditionCoordinateSystem], 504942748: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingStructuralMember, i.RelatedStructuralConnection, i.AppliedCondition, i.AdditionalConditions, i.SupportedLength, i.ConditionCoordinateSystem, i.ConnectionConstraint], 3678494232: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ConnectionGeometry, i.RelatingElement, i.RelatedElement, i.RealizingElements, i.ConnectionType], 3242617779: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedElements, i.RelatingStructure], 886880790: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingBuildingElement, i.RelatedCoverings], 2802773753: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingSpace, i.RelatedCoverings], 2565941209: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingContext, i.RelatedDefinitions], 2551354335: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description], 693640335: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description], 1462361463: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatingObject], 4186316022: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatingPropertyDefinition], 307848117: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedPropertySets, i.RelatingTemplate], 781010003: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatingType], 3940055652: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingOpeningElement, i.RelatedBuildingElement], 279856033: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedControlElements, i.RelatingFlowElement], 427948657: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingElement, i.RelatedElement, i.InterferenceGeometry, i.InterferenceType, i.ImpliedOrder], 3268803585: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingObject, i.RelatedObjects], 750771296: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingElement, i.RelatedFeatureElement], 1245217292: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedElements, i.RelatingStructure], 4122056220: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingProcess, i.RelatedProcess, i.TimeLag, i.SequenceType, i.UserDefinedSequenceType], 366585022: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingSystem, i.RelatedBuildings], 3451746338: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingSpace, i.RelatedBuildingElement, i.ConnectionGeometry, i.PhysicalOrVirtualBoundary, i.InternalOrExternalBoundary], 3523091289: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingSpace, i.RelatedBuildingElement, i.ConnectionGeometry, i.PhysicalOrVirtualBoundary, i.InternalOrExternalBoundary, i.ParentBoundary], 1521410863: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingSpace, i.RelatedBuildingElement, i.ConnectionGeometry, i.PhysicalOrVirtualBoundary, i.InternalOrExternalBoundary, i.ParentBoundary, i.CorrespondingBoundary], 1401173127: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingBuildingElement, i.RelatedOpeningElement], 816062949: (i) => [i.Transition, i.SameSense, i.ParentCurve, i.ParamLength], 2914609552: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.LongDescription], 1856042241: (i) => [i.SweptArea, i.Position, i.Axis, i.Angle], 3243963512: (i) => [i.SweptArea, i.Position, i.Axis, i.Angle, i.EndSweptArea], 4158566097: (i) => [i.Position, i.Height, i.BottomRadius], 3626867408: (i) => [i.Position, i.Height, i.Radius], 3663146110: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.TemplateType, i.PrimaryMeasureType, i.SecondaryMeasureType, i.Enumerators, i.PrimaryUnit, i.SecondaryUnit, i.Expression, i.AccessState], 1412071761: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.LongName], 710998568: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType], 2706606064: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.LongName, i.CompositionType], 3893378262: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType], 463610769: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.LongName, i.PredefinedType], 2481509218: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType, i.LongName], 451544542: (i) => [i.Position, i.Radius], 4015995234: (i) => [i.Position, i.Radius], 3544373492: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedLoad, i.GlobalOrLocal], 3136571912: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation], 530289379: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation], 3689010777: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedLoad, i.GlobalOrLocal], 3979015343: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.PredefinedType, i.Thickness], 2218152070: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.PredefinedType, i.Thickness], 603775116: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedLoad, i.GlobalOrLocal, i.PredefinedType], 4095615324: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.Identification, i.LongDescription, i.ResourceType, i.BaseCosts, i.BaseQuantity, i.PredefinedType], 699246055: (i) => [i.Curve3D, i.AssociatedGeometry, i.MasterRepresentation], 2028607225: (i) => [i.SweptArea, i.Position, i.Directrix, i.StartParam, i.EndParam, i.ReferenceSurface], 2809605785: (i) => [i.SweptCurve, i.Position, i.ExtrudedDirection, i.Depth], 4124788165: (i) => [i.SweptCurve, i.Position, i.AxisPosition], 1580310250: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 3473067441: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.LongDescription, i.Status, i.WorkMethod, i.IsMilestone, i.Priority, i.TaskTime, i.PredefinedType], 3206491090: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.Identification, i.LongDescription, i.ProcessType, i.PredefinedType, i.WorkMethod], 2387106220: (i) => [i.Coordinates], 1935646853: (i) => [i.Position, i.MajorRadius, i.MinorRadius], 2097647324: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 2916149573: (i) => [i.Coordinates, i.Normals, i.Closed, i.CoordIndex, i.PnIndex], 336235671: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.LiningDepth, i.LiningThickness, i.TransomThickness, i.MullionThickness, i.FirstTransomOffset, i.SecondTransomOffset, i.FirstMullionOffset, i.SecondMullionOffset, i.ShapeAspectStyle, i.LiningOffset, i.LiningToPanelOffsetX, i.LiningToPanelOffsetY], 512836454: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.OperationType, i.PanelPosition, i.FrameDepth, i.FrameThickness, i.ShapeAspectStyle], 2296667514: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.TheActor], 1635779807: (i) => [i.Outer], 2603310189: (i) => [i.Outer, i.Voids], 1674181508: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation], 2887950389: (i) => [i.UDegree, i.VDegree, i.ControlPointsList, i.SurfaceForm, i.UClosed, i.VClosed, i.SelfIntersect], 167062518: (i) => [i.UDegree, i.VDegree, i.ControlPointsList, i.SurfaceForm, i.UClosed, i.VClosed, i.SelfIntersect, i.UMultiplicities, i.VMultiplicities, i.UKnots, i.VKnots, i.KnotSpec], 1334484129: (i) => [i.Position, i.XLength, i.YLength, i.ZLength], 3649129432: (i) => [i.Operator, i.FirstOperand, i.SecondOperand], 1260505505: (_) => [], 4031249490: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.LongName, i.CompositionType, i.ElevationOfRefHeight, i.ElevationOfTerrain, i.BuildingAddress], 1950629157: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType], 3124254112: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.LongName, i.CompositionType, i.Elevation], 2197970202: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 2937912522: (i) => [i.ProfileType, i.ProfileName, i.Position, i.Radius, i.WallThickness], 3893394355: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType], 300633059: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 3875453745: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.UsageName, i.TemplateType, i.HasPropertyTemplates], 3732776249: (i) => [i.Segments, i.SelfIntersect], 15328376: (i) => [i.Segments, i.SelfIntersect], 2510884976: (i) => [i.Position], 2185764099: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.Identification, i.LongDescription, i.ResourceType, i.BaseCosts, i.BaseQuantity, i.PredefinedType], 4105962743: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.Identification, i.LongDescription, i.ResourceType, i.BaseCosts, i.BaseQuantity, i.PredefinedType], 1525564444: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.Identification, i.LongDescription, i.ResourceType, i.BaseCosts, i.BaseQuantity, i.PredefinedType], 2559216714: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.LongDescription, i.Usage, i.BaseCosts, i.BaseQuantity], 3293443760: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification], 3895139033: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.PredefinedType, i.CostValues, i.CostQuantities], 1419761937: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.PredefinedType, i.Status, i.SubmittedOn, i.UpdateDate], 1916426348: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 3295246426: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.LongDescription, i.Usage, i.BaseCosts, i.BaseQuantity, i.PredefinedType], 1457835157: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 1213902940: (i) => [i.Position, i.Radius], 3256556792: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType], 3849074793: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType], 2963535650: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.LiningDepth, i.LiningThickness, i.ThresholdDepth, i.ThresholdThickness, i.TransomThickness, i.TransomOffset, i.LiningOffset, i.ThresholdOffset, i.CasingThickness, i.CasingDepth, i.ShapeAspectStyle, i.LiningToPanelOffsetX, i.LiningToPanelOffsetY], 1714330368: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.PanelDepth, i.PanelOperation, i.PanelWidth, i.PanelPosition, i.ShapeAspectStyle], 2323601079: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType, i.OperationType, i.ParameterTakesPrecedence, i.UserDefinedOperationType], 445594917: (i) => [i.Name], 4006246654: (i) => [i.Name], 1758889154: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag], 4123344466: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.AssemblyPlace, i.PredefinedType], 2397081782: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 1623761950: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag], 2590856083: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType], 1704287377: (i) => [i.Position, i.SemiAxis1, i.SemiAxis2], 2107101300: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType], 132023988: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 3174744832: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 3390157468: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 4148101412: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.LongDescription, i.PredefinedType, i.EventTriggerType, i.UserDefinedEventTriggerType, i.EventOccurenceTime], 2853485674: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.LongName], 807026263: (i) => [i.Outer], 3737207727: (i) => [i.Outer, i.Voids], 647756555: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 2489546625: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 2827207264: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag], 2143335405: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag], 1287392070: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag], 3907093117: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType], 3198132628: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType], 3815607619: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 1482959167: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType], 1834744321: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType], 1339347760: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType], 2297155007: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType], 3009222698: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType], 1893162501: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 263784265: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag], 1509553395: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 3493046030: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 3009204131: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.UAxes, i.VAxes, i.WAxes, i.PredefinedType], 2706460486: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType], 1251058090: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 1806887404: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 2571569899: (i) => [i.Points, !i.Segments ? null : i.Segments.map((p) => Labelise(p)), i.SelfIntersect], 3946677679: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 3113134337: (i) => [i.Curve3D, i.AssociatedGeometry, i.MasterRepresentation], 2391368822: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.PredefinedType, i.Jurisdiction, i.ResponsiblePersons, i.LastUpdateDate, i.CurrentValue, i.OriginalValue], 4288270099: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 3827777499: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.LongDescription, i.Usage, i.BaseCosts, i.BaseQuantity, i.PredefinedType], 1051575348: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 1161773419: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 377706215: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.NominalDiameter, i.NominalLength, i.PredefinedType], 2108223431: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType, i.NominalDiameter, i.NominalLength], 1114901282: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 3181161470: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 977012517: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 4143007308: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.TheActor, i.PredefinedType], 3588315303: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 3079942009: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 2837617999: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 2382730787: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.LifeCyclePhase, i.PredefinedType], 3566463478: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.OperationType, i.PanelPosition, i.FrameDepth, i.FrameThickness, i.ShapeAspectStyle], 3327091369: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.PredefinedType, i.Status, i.LongDescription], 1158309216: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 804291784: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 4231323485: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 4017108033: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 2839578677: (i) => [i.Coordinates, i.Closed, i.Faces, i.PnIndex], 3724593414: (i) => [i.Points], 3740093272: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation], 2744685151: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.LongDescription, i.PredefinedType], 2904328755: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.PredefinedType, i.Status, i.LongDescription], 3651124850: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 1842657554: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 2250791053: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 2893384427: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 2324767716: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 1469900589: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 683857671: (i) => [i.UDegree, i.VDegree, i.ControlPointsList, i.SurfaceForm, i.UClosed, i.VClosed, i.SelfIntersect, i.UMultiplicities, i.VMultiplicities, i.UKnots, i.VKnots, i.KnotSpec, i.WeightsData], 3027567501: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.SteelGrade], 964333572: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType], 2320036040: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.SteelGrade, i.MeshLength, i.MeshWidth, i.LongitudinalBarNominalDiameter, i.TransverseBarNominalDiameter, i.LongitudinalBarCrossSectionArea, i.TransverseBarCrossSectionArea, i.LongitudinalBarSpacing, i.TransverseBarSpacing, i.PredefinedType], 2310774935: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType, i.MeshLength, i.MeshWidth, i.LongitudinalBarNominalDiameter, i.TransverseBarNominalDiameter, i.LongitudinalBarCrossSectionArea, i.TransverseBarCrossSectionArea, i.LongitudinalBarSpacing, i.TransverseBarSpacing, i.BendingShapeCode, !i.BendingParameters ? null : i.BendingParameters.map((p) => Labelise(p))], 160246688: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingObject, i.RelatedObjects], 2781568857: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 1768891740: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 2157484638: (i) => [i.Curve3D, i.AssociatedGeometry, i.MasterRepresentation], 4074543187: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 4097777520: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.LongName, i.CompositionType, i.RefLatitude, i.RefLongitude, i.RefElevation, i.LandTitleNumber, i.SiteAddress], 2533589738: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 1072016465: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 3856911033: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.LongName, i.CompositionType, i.PredefinedType, i.ElevationWithFlooring], 1305183839: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 3812236995: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType, i.LongName], 3112655638: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 1039846685: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 338393293: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 682877961: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedLoad, i.GlobalOrLocal, i.DestabilizingLoad], 1179482911: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedCondition], 1004757350: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedLoad, i.GlobalOrLocal, i.DestabilizingLoad, i.ProjectedOrTrue, i.PredefinedType], 4243806635: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedCondition, i.Axis], 214636428: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.PredefinedType, i.Axis], 2445595289: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.PredefinedType, i.Axis], 2757150158: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedLoad, i.GlobalOrLocal, i.PredefinedType], 1807405624: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedLoad, i.GlobalOrLocal, i.DestabilizingLoad, i.ProjectedOrTrue, i.PredefinedType], 1252848954: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.PredefinedType, i.ActionType, i.ActionSource, i.Coefficient, i.Purpose], 2082059205: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedLoad, i.GlobalOrLocal, i.DestabilizingLoad], 734778138: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedCondition, i.ConditionCoordinateSystem], 1235345126: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedLoad, i.GlobalOrLocal], 2986769608: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.TheoryType, i.ResultForLoadGroup, i.IsLinear], 3657597509: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedLoad, i.GlobalOrLocal, i.DestabilizingLoad, i.ProjectedOrTrue, i.PredefinedType], 1975003073: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedCondition], 148013059: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.LongDescription, i.Usage, i.BaseCosts, i.BaseQuantity, i.PredefinedType], 3101698114: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 2315554128: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 2254336722: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType], 413509423: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 5716631: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 3824725483: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.SteelGrade, i.PredefinedType, i.NominalDiameter, i.CrossSectionArea, i.TensionForce, i.PreStress, i.FrictionCoefficient, i.AnchorageSlip, i.MinCurvatureRadius], 2347447852: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.SteelGrade, i.PredefinedType], 3081323446: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 2415094496: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType, i.NominalDiameter, i.CrossSectionArea, i.SheathDiameter], 1692211062: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 1620046519: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 3593883385: (i) => [i.BasisCurve, i.Trim1, i.Trim2, i.SenseAgreement, i.MasterRepresentation], 1600972822: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 1911125066: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 728799441: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 2391383451: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 3313531582: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 2769231204: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag], 926996030: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 1898987631: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 1133259667: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 4009809668: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType, i.PartitioningType, i.ParameterTakesPrecedence, i.UserDefinedPartitioningType], 4088093105: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.WorkingTimes, i.ExceptionTimes, i.PredefinedType], 1028945134: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.CreationDate, i.Creators, i.Purpose, i.Duration, i.TotalFloat, i.StartTime, i.FinishTime], 4218914973: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.CreationDate, i.Creators, i.Purpose, i.Duration, i.TotalFloat, i.StartTime, i.FinishTime, i.PredefinedType], 3342526732: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.CreationDate, i.Creators, i.Purpose, i.Duration, i.TotalFloat, i.StartTime, i.FinishTime, i.PredefinedType], 1033361043: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.LongName], 3821786052: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.PredefinedType, i.Status, i.LongDescription], 1411407467: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 3352864051: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 1871374353: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 3460190687: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.OriginalValue, i.CurrentValue, i.TotalReplacementCost, i.Owner, i.User, i.ResponsiblePerson, i.IncorporationDate, i.DepreciatedValue], 1532957894: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 1967976161: (i) => [i.Degree, i.ControlPointsList, i.CurveForm, i.ClosedCurve, i.SelfIntersect], 2461110595: (i) => [i.Degree, i.ControlPointsList, i.CurveForm, i.ClosedCurve, i.SelfIntersect, i.KnotMultiplicities, i.Knots, i.KnotSpec], 819618141: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 231477066: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 1136057603: (i) => [i.Segments, i.SelfIntersect], 3299480353: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag], 2979338954: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 39481116: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 1095909175: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 1909888760: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 1177604601: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.PredefinedType, i.LongName], 2188180465: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 395041908: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 3293546465: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 2674252688: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 1285652485: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 2951183804: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 3296154744: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 2611217952: (i) => [i.Position, i.Radius], 1677625105: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag], 2301859152: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 843113511: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 905975707: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 400855858: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 3850581409: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 2816379211: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 3898045240: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.LongDescription, i.Usage, i.BaseCosts, i.BaseQuantity, i.PredefinedType], 1060000209: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.LongDescription, i.Usage, i.BaseCosts, i.BaseQuantity, i.PredefinedType], 488727124: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.LongDescription, i.Usage, i.BaseCosts, i.BaseQuantity, i.PredefinedType], 335055490: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 2954562838: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 1973544240: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 3495092785: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 3961806047: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 1335981549: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 2635815018: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 1599208980: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 2063403501: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType], 1945004755: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag], 3040386961: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag], 3041715199: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.FlowDirection, i.PredefinedType, i.SystemType], 3205830791: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.LongName, i.PredefinedType], 395920057: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.OverallHeight, i.OverallWidth, i.PredefinedType, i.OperationType, i.UserDefinedOperationType], 3242481149: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.OverallHeight, i.OverallWidth, i.PredefinedType, i.OperationType, i.UserDefinedOperationType], 869906466: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 3760055223: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 2030761528: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 663422040: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 2417008758: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 3277789161: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 1534661035: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 1217240411: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 712377611: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 1658829314: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag], 2814081492: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 3747195512: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 484807127: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 1209101575: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.LongName, i.PredefinedType], 346874300: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 1810631287: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 4222183408: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 2058353004: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag], 4278956645: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag], 4037862832: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 2188021234: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 3132237377: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag], 987401354: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag], 707683696: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag], 2223149337: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag], 3508470533: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag], 900683007: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 3319311131: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 2068733104: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 4175244083: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 2176052936: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 76236018: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 629592764: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 1437502449: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 1073191201: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 1911478936: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 2474470126: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 144952367: (i) => [i.Segments, i.SelfIntersect], 3694346114: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 1687234759: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType, i.ConstructionType], 310824031: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 3612865200: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 3171933400: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 1156407060: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 738039164: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 655969474: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 90941305: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 2262370178: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 3024970846: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 3283111854: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 1232101972: (i) => [i.Degree, i.ControlPointsList, i.CurveForm, i.ClosedCurve, i.SelfIntersect, i.KnotMultiplicities, i.Knots, i.KnotSpec, i.WeightsData], 979691226: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.SteelGrade, i.NominalDiameter, i.CrossSectionArea, i.BarLength, i.PredefinedType, i.BarSurface], 2572171363: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType, i.NominalDiameter, i.CrossSectionArea, i.BarLength, i.BarSurface, i.BendingShapeCode, !i.BendingParameters ? null : i.BendingParameters.map((p) => Labelise(p))], 2016517767: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 3053780830: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 1783015770: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 1329646415: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 1529196076: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 3127900445: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 3027962421: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 3420628829: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 1999602285: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 1404847402: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 331165859: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 4252922144: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.NumberOfRisers, i.NumberOfTreads, i.RiserHeight, i.TreadLength, i.PredefinedType], 2515109513: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.PredefinedType, i.OrientationOf2DPlane, i.LoadedBy, i.HasResults, i.SharedPlacement], 385403989: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.PredefinedType, i.ActionType, i.ActionSource, i.Coefficient, i.Purpose, i.SelfWeightCoefficients], 1621171031: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedLoad, i.GlobalOrLocal, i.DestabilizingLoad, i.ProjectedOrTrue, i.PredefinedType], 1162798199: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 812556717: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 3825984169: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 3026737570: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 3179687236: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 4292641817: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 4207607924: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 2391406946: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 4156078855: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 3512223829: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 4237592921: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 3304561284: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.OverallHeight, i.OverallWidth, i.PredefinedType, i.PartitioningType, i.UserDefinedPartitioningType], 486154966: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.OverallHeight, i.OverallWidth, i.PredefinedType, i.PartitioningType, i.UserDefinedPartitioningType], 2874132201: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 1634111441: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 177149247: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 2056796094: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 3001207471: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 277319702: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 753842376: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 2906023776: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 32344328: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 2938176219: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 635142910: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 3758799889: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 1051757585: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 4217484030: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 3902619387: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 639361253: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 3221913625: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 3571504051: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 2272882330: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 578613899: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType], 4136498852: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 3640358203: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 4074379575: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 1052013943: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 562808652: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.LongName, i.PredefinedType], 1062813311: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag], 342316401: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 3518393246: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 1360408905: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 1904799276: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 862014818: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 3310460725: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 264262732: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 402227799: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 1003880860: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 3415622556: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 819412036: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 1426591983: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 182646315: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 2295281155: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 4086658281: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 630975310: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 4288193352: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 3087945054: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType], 25142252: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType] }; TypeInitialisers[3] = { 3699917729: (v) => new IFC4.IfcAbsorbedDoseMeasure(v), 4182062534: (v) => new IFC4.IfcAccelerationMeasure(v), 360377573: (v) => new IFC4.IfcAmountOfSubstanceMeasure(v), 632304761: (v) => new IFC4.IfcAngularVelocityMeasure(v), 3683503648: (v) => new IFC4.IfcArcIndex(v), 1500781891: (v) => new IFC4.IfcAreaDensityMeasure(v), 2650437152: (v) => new IFC4.IfcAreaMeasure(v), 2314439260: (v) => new IFC4.IfcBinary(v), 2735952531: (v) => new IFC4.IfcBoolean(v), 1867003952: (v) => new IFC4.IfcBoxAlignment(v), 1683019596: (v) => new IFC4.IfcCardinalPointReference(v), 2991860651: (v) => new IFC4.IfcComplexNumber(v), 3812528620: (v) => new IFC4.IfcCompoundPlaneAngleMeasure(v), 3238673880: (v) => new IFC4.IfcContextDependentMeasure(v), 1778710042: (v) => new IFC4.IfcCountMeasure(v), 94842927: (v) => new IFC4.IfcCurvatureMeasure(v), 937566702: (v) => new IFC4.IfcDate(v), 2195413836: (v) => new IFC4.IfcDateTime(v), 86635668: (v) => new IFC4.IfcDayInMonthNumber(v), 3701338814: (v) => new IFC4.IfcDayInWeekNumber(v), 1514641115: (v) => new IFC4.IfcDescriptiveMeasure(v), 4134073009: (v) => new IFC4.IfcDimensionCount(v), 524656162: (v) => new IFC4.IfcDoseEquivalentMeasure(v), 2541165894: (v) => new IFC4.IfcDuration(v), 69416015: (v) => new IFC4.IfcDynamicViscosityMeasure(v), 1827137117: (v) => new IFC4.IfcElectricCapacitanceMeasure(v), 3818826038: (v) => new IFC4.IfcElectricChargeMeasure(v), 2093906313: (v) => new IFC4.IfcElectricConductanceMeasure(v), 3790457270: (v) => new IFC4.IfcElectricCurrentMeasure(v), 2951915441: (v) => new IFC4.IfcElectricResistanceMeasure(v), 2506197118: (v) => new IFC4.IfcElectricVoltageMeasure(v), 2078135608: (v) => new IFC4.IfcEnergyMeasure(v), 1102727119: (v) => new IFC4.IfcFontStyle(v), 2715512545: (v) => new IFC4.IfcFontVariant(v), 2590844177: (v) => new IFC4.IfcFontWeight(v), 1361398929: (v) => new IFC4.IfcForceMeasure(v), 3044325142: (v) => new IFC4.IfcFrequencyMeasure(v), 3064340077: (v) => new IFC4.IfcGloballyUniqueId(v), 3113092358: (v) => new IFC4.IfcHeatFluxDensityMeasure(v), 1158859006: (v) => new IFC4.IfcHeatingValueMeasure(v), 983778844: (v) => new IFC4.IfcIdentifier(v), 3358199106: (v) => new IFC4.IfcIlluminanceMeasure(v), 2679005408: (v) => new IFC4.IfcInductanceMeasure(v), 1939436016: (v) => new IFC4.IfcInteger(v), 3809634241: (v) => new IFC4.IfcIntegerCountRateMeasure(v), 3686016028: (v) => new IFC4.IfcIonConcentrationMeasure(v), 3192672207: (v) => new IFC4.IfcIsothermalMoistureCapacityMeasure(v), 2054016361: (v) => new IFC4.IfcKinematicViscosityMeasure(v), 3258342251: (v) => new IFC4.IfcLabel(v), 1275358634: (v) => new IFC4.IfcLanguageId(v), 1243674935: (v) => new IFC4.IfcLengthMeasure(v), 1774176899: (v) => new IFC4.IfcLineIndex(v), 191860431: (v) => new IFC4.IfcLinearForceMeasure(v), 2128979029: (v) => new IFC4.IfcLinearMomentMeasure(v), 1307019551: (v) => new IFC4.IfcLinearStiffnessMeasure(v), 3086160713: (v) => new IFC4.IfcLinearVelocityMeasure(v), 503418787: (v) => new IFC4.IfcLogical(v), 2095003142: (v) => new IFC4.IfcLuminousFluxMeasure(v), 2755797622: (v) => new IFC4.IfcLuminousIntensityDistributionMeasure(v), 151039812: (v) => new IFC4.IfcLuminousIntensityMeasure(v), 286949696: (v) => new IFC4.IfcMagneticFluxDensityMeasure(v), 2486716878: (v) => new IFC4.IfcMagneticFluxMeasure(v), 1477762836: (v) => new IFC4.IfcMassDensityMeasure(v), 4017473158: (v) => new IFC4.IfcMassFlowRateMeasure(v), 3124614049: (v) => new IFC4.IfcMassMeasure(v), 3531705166: (v) => new IFC4.IfcMassPerLengthMeasure(v), 3341486342: (v) => new IFC4.IfcModulusOfElasticityMeasure(v), 2173214787: (v) => new IFC4.IfcModulusOfLinearSubgradeReactionMeasure(v), 1052454078: (v) => new IFC4.IfcModulusOfRotationalSubgradeReactionMeasure(v), 1753493141: (v) => new IFC4.IfcModulusOfSubgradeReactionMeasure(v), 3177669450: (v) => new IFC4.IfcMoistureDiffusivityMeasure(v), 1648970520: (v) => new IFC4.IfcMolecularWeightMeasure(v), 3114022597: (v) => new IFC4.IfcMomentOfInertiaMeasure(v), 2615040989: (v) => new IFC4.IfcMonetaryMeasure(v), 765770214: (v) => new IFC4.IfcMonthInYearNumber(v), 525895558: (v) => new IFC4.IfcNonNegativeLengthMeasure(v), 2095195183: (v) => new IFC4.IfcNormalisedRatioMeasure(v), 2395907400: (v) => new IFC4.IfcNumericMeasure(v), 929793134: (v) => new IFC4.IfcPHMeasure(v), 2260317790: (v) => new IFC4.IfcParameterValue(v), 2642773653: (v) => new IFC4.IfcPlanarForceMeasure(v), 4042175685: (v) => new IFC4.IfcPlaneAngleMeasure(v), 1790229001: (v) => new IFC4.IfcPositiveInteger(v), 2815919920: (v) => new IFC4.IfcPositiveLengthMeasure(v), 3054510233: (v) => new IFC4.IfcPositivePlaneAngleMeasure(v), 1245737093: (v) => new IFC4.IfcPositiveRatioMeasure(v), 1364037233: (v) => new IFC4.IfcPowerMeasure(v), 2169031380: (v) => new IFC4.IfcPresentableText(v), 3665567075: (v) => new IFC4.IfcPressureMeasure(v), 2798247006: (v) => new IFC4.IfcPropertySetDefinitionSet(v), 3972513137: (v) => new IFC4.IfcRadioActivityMeasure(v), 96294661: (v) => new IFC4.IfcRatioMeasure(v), 200335297: (v) => new IFC4.IfcReal(v), 2133746277: (v) => new IFC4.IfcRotationalFrequencyMeasure(v), 1755127002: (v) => new IFC4.IfcRotationalMassMeasure(v), 3211557302: (v) => new IFC4.IfcRotationalStiffnessMeasure(v), 3467162246: (v) => new IFC4.IfcSectionModulusMeasure(v), 2190458107: (v) => new IFC4.IfcSectionalAreaIntegralMeasure(v), 408310005: (v) => new IFC4.IfcShearModulusMeasure(v), 3471399674: (v) => new IFC4.IfcSolidAngleMeasure(v), 4157543285: (v) => new IFC4.IfcSoundPowerLevelMeasure(v), 846465480: (v) => new IFC4.IfcSoundPowerMeasure(v), 3457685358: (v) => new IFC4.IfcSoundPressureLevelMeasure(v), 993287707: (v) => new IFC4.IfcSoundPressureMeasure(v), 3477203348: (v) => new IFC4.IfcSpecificHeatCapacityMeasure(v), 2757832317: (v) => new IFC4.IfcSpecularExponent(v), 361837227: (v) => new IFC4.IfcSpecularRoughness(v), 58845555: (v) => new IFC4.IfcTemperatureGradientMeasure(v), 1209108979: (v) => new IFC4.IfcTemperatureRateOfChangeMeasure(v), 2801250643: (v) => new IFC4.IfcText(v), 1460886941: (v) => new IFC4.IfcTextAlignment(v), 3490877962: (v) => new IFC4.IfcTextDecoration(v), 603696268: (v) => new IFC4.IfcTextFontName(v), 296282323: (v) => new IFC4.IfcTextTransformation(v), 232962298: (v) => new IFC4.IfcThermalAdmittanceMeasure(v), 2645777649: (v) => new IFC4.IfcThermalConductivityMeasure(v), 2281867870: (v) => new IFC4.IfcThermalExpansionCoefficientMeasure(v), 857959152: (v) => new IFC4.IfcThermalResistanceMeasure(v), 2016195849: (v) => new IFC4.IfcThermalTransmittanceMeasure(v), 743184107: (v) => new IFC4.IfcThermodynamicTemperatureMeasure(v), 4075327185: (v) => new IFC4.IfcTime(v), 2726807636: (v) => new IFC4.IfcTimeMeasure(v), 2591213694: (v) => new IFC4.IfcTimeStamp(v), 1278329552: (v) => new IFC4.IfcTorqueMeasure(v), 950732822: (v) => new IFC4.IfcURIReference(v), 3345633955: (v) => new IFC4.IfcVaporPermeabilityMeasure(v), 3458127941: (v) => new IFC4.IfcVolumeMeasure(v), 2593997549: (v) => new IFC4.IfcVolumetricFlowRateMeasure(v), 51269191: (v) => new IFC4.IfcWarpingConstantMeasure(v), 1718600412: (v) => new IFC4.IfcWarpingMomentMeasure(v) }; var IFC4; (function(IFC42) { class IfcAbsorbedDoseMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC42.IfcAbsorbedDoseMeasure = IfcAbsorbedDoseMeasure; class IfcAccelerationMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC42.IfcAccelerationMeasure = IfcAccelerationMeasure; class IfcAmountOfSubstanceMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC42.IfcAmountOfSubstanceMeasure = IfcAmountOfSubstanceMeasure; class IfcAngularVelocityMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC42.IfcAngularVelocityMeasure = IfcAngularVelocityMeasure; class IfcArcIndex { constructor(value) { this.value = value; } } IFC42.IfcArcIndex = IfcArcIndex; class IfcAreaDensityMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC42.IfcAreaDensityMeasure = IfcAreaDensityMeasure; class IfcAreaMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC42.IfcAreaMeasure = IfcAreaMeasure; class IfcBinary { constructor(value) { this.value = value; this.type = 4; } } IFC42.IfcBinary = IfcBinary; class IfcBoolean { constructor(value) { this.value = value; this.type = 3; } } IFC42.IfcBoolean = IfcBoolean; class IfcBoxAlignment { constructor(value) { this.value = value; this.type = 1; } } IFC42.IfcBoxAlignment = IfcBoxAlignment; class IfcCardinalPointReference { constructor(value) { this.value = value; this.type = 4; } } IFC42.IfcCardinalPointReference = IfcCardinalPointReference; class IfcComplexNumber { constructor(value) { this.value = value; } } IFC42.IfcComplexNumber = IfcComplexNumber; class IfcCompoundPlaneAngleMeasure { constructor(value) { this.value = value; } } IFC42.IfcCompoundPlaneAngleMeasure = IfcCompoundPlaneAngleMeasure; class IfcContextDependentMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC42.IfcContextDependentMeasure = IfcContextDependentMeasure; class IfcCountMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC42.IfcCountMeasure = IfcCountMeasure; class IfcCurvatureMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC42.IfcCurvatureMeasure = IfcCurvatureMeasure; class IfcDate { constructor(value) { this.value = value; this.type = 1; } } IFC42.IfcDate = IfcDate; class IfcDateTime { constructor(value) { this.value = value; this.type = 1; } } IFC42.IfcDateTime = IfcDateTime; class IfcDayInMonthNumber { constructor(value) { this.value = value; this.type = 4; } } IFC42.IfcDayInMonthNumber = IfcDayInMonthNumber; class IfcDayInWeekNumber { constructor(value) { this.value = value; this.type = 4; } } IFC42.IfcDayInWeekNumber = IfcDayInWeekNumber; class IfcDescriptiveMeasure { constructor(value) { this.value = value; this.type = 1; } } IFC42.IfcDescriptiveMeasure = IfcDescriptiveMeasure; class IfcDimensionCount { constructor(value) { this.value = value; this.type = 4; } } IFC42.IfcDimensionCount = IfcDimensionCount; class IfcDoseEquivalentMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC42.IfcDoseEquivalentMeasure = IfcDoseEquivalentMeasure; class IfcDuration { constructor(value) { this.value = value; this.type = 1; } } IFC42.IfcDuration = IfcDuration; class IfcDynamicViscosityMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC42.IfcDynamicViscosityMeasure = IfcDynamicViscosityMeasure; class IfcElectricCapacitanceMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC42.IfcElectricCapacitanceMeasure = IfcElectricCapacitanceMeasure; class IfcElectricChargeMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC42.IfcElectricChargeMeasure = IfcElectricChargeMeasure; class IfcElectricConductanceMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC42.IfcElectricConductanceMeasure = IfcElectricConductanceMeasure; class IfcElectricCurrentMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC42.IfcElectricCurrentMeasure = IfcElectricCurrentMeasure; class IfcElectricResistanceMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC42.IfcElectricResistanceMeasure = IfcElectricResistanceMeasure; class IfcElectricVoltageMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC42.IfcElectricVoltageMeasure = IfcElectricVoltageMeasure; class IfcEnergyMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC42.IfcEnergyMeasure = IfcEnergyMeasure; class IfcFontStyle { constructor(value) { this.value = value; this.type = 1; } } IFC42.IfcFontStyle = IfcFontStyle; class IfcFontVariant { constructor(value) { this.value = value; this.type = 1; } } IFC42.IfcFontVariant = IfcFontVariant; class IfcFontWeight { constructor(value) { this.value = value; this.type = 1; } } IFC42.IfcFontWeight = IfcFontWeight; class IfcForceMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC42.IfcForceMeasure = IfcForceMeasure; class IfcFrequencyMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC42.IfcFrequencyMeasure = IfcFrequencyMeasure; class IfcGloballyUniqueId { constructor(value) { this.value = value; this.type = 1; } } IFC42.IfcGloballyUniqueId = IfcGloballyUniqueId; class IfcHeatFluxDensityMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC42.IfcHeatFluxDensityMeasure = IfcHeatFluxDensityMeasure; class IfcHeatingValueMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC42.IfcHeatingValueMeasure = IfcHeatingValueMeasure; class IfcIdentifier { constructor(value) { this.value = value; this.type = 1; } } IFC42.IfcIdentifier = IfcIdentifier; class IfcIlluminanceMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC42.IfcIlluminanceMeasure = IfcIlluminanceMeasure; class IfcInductanceMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC42.IfcInductanceMeasure = IfcInductanceMeasure; class IfcInteger { constructor(value) { this.value = value; this.type = 4; } } IFC42.IfcInteger = IfcInteger; class IfcIntegerCountRateMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC42.IfcIntegerCountRateMeasure = IfcIntegerCountRateMeasure; class IfcIonConcentrationMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC42.IfcIonConcentrationMeasure = IfcIonConcentrationMeasure; class IfcIsothermalMoistureCapacityMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC42.IfcIsothermalMoistureCapacityMeasure = IfcIsothermalMoistureCapacityMeasure; class IfcKinematicViscosityMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC42.IfcKinematicViscosityMeasure = IfcKinematicViscosityMeasure; class IfcLabel { constructor(value) { this.value = value; this.type = 1; } } IFC42.IfcLabel = IfcLabel; class IfcLanguageId { constructor(value) { this.value = value; this.type = 1; } } IFC42.IfcLanguageId = IfcLanguageId; class IfcLengthMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC42.IfcLengthMeasure = IfcLengthMeasure; class IfcLineIndex { constructor(value) { this.value = value; } } IFC42.IfcLineIndex = IfcLineIndex; class IfcLinearForceMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC42.IfcLinearForceMeasure = IfcLinearForceMeasure; class IfcLinearMomentMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC42.IfcLinearMomentMeasure = IfcLinearMomentMeasure; class IfcLinearStiffnessMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC42.IfcLinearStiffnessMeasure = IfcLinearStiffnessMeasure; class IfcLinearVelocityMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC42.IfcLinearVelocityMeasure = IfcLinearVelocityMeasure; class IfcLogical { constructor(value) { this.value = value; this.type = 3; } } IFC42.IfcLogical = IfcLogical; class IfcLuminousFluxMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC42.IfcLuminousFluxMeasure = IfcLuminousFluxMeasure; class IfcLuminousIntensityDistributionMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC42.IfcLuminousIntensityDistributionMeasure = IfcLuminousIntensityDistributionMeasure; class IfcLuminousIntensityMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC42.IfcLuminousIntensityMeasure = IfcLuminousIntensityMeasure; class IfcMagneticFluxDensityMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC42.IfcMagneticFluxDensityMeasure = IfcMagneticFluxDensityMeasure; class IfcMagneticFluxMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC42.IfcMagneticFluxMeasure = IfcMagneticFluxMeasure; class IfcMassDensityMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC42.IfcMassDensityMeasure = IfcMassDensityMeasure; class IfcMassFlowRateMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC42.IfcMassFlowRateMeasure = IfcMassFlowRateMeasure; class IfcMassMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC42.IfcMassMeasure = IfcMassMeasure; class IfcMassPerLengthMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC42.IfcMassPerLengthMeasure = IfcMassPerLengthMeasure; class IfcModulusOfElasticityMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC42.IfcModulusOfElasticityMeasure = IfcModulusOfElasticityMeasure; class IfcModulusOfLinearSubgradeReactionMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC42.IfcModulusOfLinearSubgradeReactionMeasure = IfcModulusOfLinearSubgradeReactionMeasure; class IfcModulusOfRotationalSubgradeReactionMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC42.IfcModulusOfRotationalSubgradeReactionMeasure = IfcModulusOfRotationalSubgradeReactionMeasure; class IfcModulusOfSubgradeReactionMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC42.IfcModulusOfSubgradeReactionMeasure = IfcModulusOfSubgradeReactionMeasure; class IfcMoistureDiffusivityMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC42.IfcMoistureDiffusivityMeasure = IfcMoistureDiffusivityMeasure; class IfcMolecularWeightMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC42.IfcMolecularWeightMeasure = IfcMolecularWeightMeasure; class IfcMomentOfInertiaMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC42.IfcMomentOfInertiaMeasure = IfcMomentOfInertiaMeasure; class IfcMonetaryMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC42.IfcMonetaryMeasure = IfcMonetaryMeasure; class IfcMonthInYearNumber { constructor(value) { this.value = value; this.type = 4; } } IFC42.IfcMonthInYearNumber = IfcMonthInYearNumber; class IfcNonNegativeLengthMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC42.IfcNonNegativeLengthMeasure = IfcNonNegativeLengthMeasure; class IfcNormalisedRatioMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC42.IfcNormalisedRatioMeasure = IfcNormalisedRatioMeasure; class IfcNumericMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC42.IfcNumericMeasure = IfcNumericMeasure; class IfcPHMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC42.IfcPHMeasure = IfcPHMeasure; class IfcParameterValue { constructor(value) { this.value = value; this.type = 4; } } IFC42.IfcParameterValue = IfcParameterValue; class IfcPlanarForceMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC42.IfcPlanarForceMeasure = IfcPlanarForceMeasure; class IfcPlaneAngleMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC42.IfcPlaneAngleMeasure = IfcPlaneAngleMeasure; class IfcPositiveInteger { constructor(value) { this.value = value; this.type = 4; } } IFC42.IfcPositiveInteger = IfcPositiveInteger; class IfcPositiveLengthMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC42.IfcPositiveLengthMeasure = IfcPositiveLengthMeasure; class IfcPositivePlaneAngleMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC42.IfcPositivePlaneAngleMeasure = IfcPositivePlaneAngleMeasure; class IfcPositiveRatioMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC42.IfcPositiveRatioMeasure = IfcPositiveRatioMeasure; class IfcPowerMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC42.IfcPowerMeasure = IfcPowerMeasure; class IfcPresentableText { constructor(value) { this.value = value; this.type = 1; } } IFC42.IfcPresentableText = IfcPresentableText; class IfcPressureMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC42.IfcPressureMeasure = IfcPressureMeasure; class IfcPropertySetDefinitionSet { constructor(value) { this.value = value; } } IFC42.IfcPropertySetDefinitionSet = IfcPropertySetDefinitionSet; class IfcRadioActivityMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC42.IfcRadioActivityMeasure = IfcRadioActivityMeasure; class IfcRatioMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC42.IfcRatioMeasure = IfcRatioMeasure; class IfcReal { constructor(value) { this.value = value; this.type = 4; } } IFC42.IfcReal = IfcReal; class IfcRotationalFrequencyMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC42.IfcRotationalFrequencyMeasure = IfcRotationalFrequencyMeasure; class IfcRotationalMassMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC42.IfcRotationalMassMeasure = IfcRotationalMassMeasure; class IfcRotationalStiffnessMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC42.IfcRotationalStiffnessMeasure = IfcRotationalStiffnessMeasure; class IfcSectionModulusMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC42.IfcSectionModulusMeasure = IfcSectionModulusMeasure; class IfcSectionalAreaIntegralMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC42.IfcSectionalAreaIntegralMeasure = IfcSectionalAreaIntegralMeasure; class IfcShearModulusMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC42.IfcShearModulusMeasure = IfcShearModulusMeasure; class IfcSolidAngleMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC42.IfcSolidAngleMeasure = IfcSolidAngleMeasure; class IfcSoundPowerLevelMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC42.IfcSoundPowerLevelMeasure = IfcSoundPowerLevelMeasure; class IfcSoundPowerMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC42.IfcSoundPowerMeasure = IfcSoundPowerMeasure; class IfcSoundPressureLevelMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC42.IfcSoundPressureLevelMeasure = IfcSoundPressureLevelMeasure; class IfcSoundPressureMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC42.IfcSoundPressureMeasure = IfcSoundPressureMeasure; class IfcSpecificHeatCapacityMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC42.IfcSpecificHeatCapacityMeasure = IfcSpecificHeatCapacityMeasure; class IfcSpecularExponent { constructor(value) { this.value = value; this.type = 4; } } IFC42.IfcSpecularExponent = IfcSpecularExponent; class IfcSpecularRoughness { constructor(value) { this.value = value; this.type = 4; } } IFC42.IfcSpecularRoughness = IfcSpecularRoughness; class IfcTemperatureGradientMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC42.IfcTemperatureGradientMeasure = IfcTemperatureGradientMeasure; class IfcTemperatureRateOfChangeMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC42.IfcTemperatureRateOfChangeMeasure = IfcTemperatureRateOfChangeMeasure; class IfcText { constructor(value) { this.value = value; this.type = 1; } } IFC42.IfcText = IfcText; class IfcTextAlignment { constructor(value) { this.value = value; this.type = 1; } } IFC42.IfcTextAlignment = IfcTextAlignment; class IfcTextDecoration { constructor(value) { this.value = value; this.type = 1; } } IFC42.IfcTextDecoration = IfcTextDecoration; class IfcTextFontName { constructor(value) { this.value = value; this.type = 1; } } IFC42.IfcTextFontName = IfcTextFontName; class IfcTextTransformation { constructor(value) { this.value = value; this.type = 1; } } IFC42.IfcTextTransformation = IfcTextTransformation; class IfcThermalAdmittanceMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC42.IfcThermalAdmittanceMeasure = IfcThermalAdmittanceMeasure; class IfcThermalConductivityMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC42.IfcThermalConductivityMeasure = IfcThermalConductivityMeasure; class IfcThermalExpansionCoefficientMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC42.IfcThermalExpansionCoefficientMeasure = IfcThermalExpansionCoefficientMeasure; class IfcThermalResistanceMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC42.IfcThermalResistanceMeasure = IfcThermalResistanceMeasure; class IfcThermalTransmittanceMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC42.IfcThermalTransmittanceMeasure = IfcThermalTransmittanceMeasure; class IfcThermodynamicTemperatureMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC42.IfcThermodynamicTemperatureMeasure = IfcThermodynamicTemperatureMeasure; class IfcTime { constructor(value) { this.value = value; this.type = 1; } } IFC42.IfcTime = IfcTime; class IfcTimeMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC42.IfcTimeMeasure = IfcTimeMeasure; class IfcTimeStamp { constructor(value) { this.value = value; this.type = 4; } } IFC42.IfcTimeStamp = IfcTimeStamp; class IfcTorqueMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC42.IfcTorqueMeasure = IfcTorqueMeasure; class IfcURIReference { constructor(value) { this.value = value; this.type = 1; } } IFC42.IfcURIReference = IfcURIReference; class IfcVaporPermeabilityMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC42.IfcVaporPermeabilityMeasure = IfcVaporPermeabilityMeasure; class IfcVolumeMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC42.IfcVolumeMeasure = IfcVolumeMeasure; class IfcVolumetricFlowRateMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC42.IfcVolumetricFlowRateMeasure = IfcVolumetricFlowRateMeasure; class IfcWarpingConstantMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC42.IfcWarpingConstantMeasure = IfcWarpingConstantMeasure; class IfcWarpingMomentMeasure { constructor(value) { this.value = value; this.type = 4; } } IFC42.IfcWarpingMomentMeasure = IfcWarpingMomentMeasure; class IfcActionRequestTypeEnum { } IfcActionRequestTypeEnum.EMAIL = { type: 3, value: "EMAIL" }; IfcActionRequestTypeEnum.FAX = { type: 3, value: "FAX" }; IfcActionRequestTypeEnum.PHONE = { type: 3, value: "PHONE" }; IfcActionRequestTypeEnum.POST = { type: 3, value: "POST" }; IfcActionRequestTypeEnum.VERBAL = { type: 3, value: "VERBAL" }; IfcActionRequestTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcActionRequestTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC42.IfcActionRequestTypeEnum = IfcActionRequestTypeEnum; class IfcActionSourceTypeEnum { } IfcActionSourceTypeEnum.DEAD_LOAD_G = { type: 3, value: "DEAD_LOAD_G" }; IfcActionSourceTypeEnum.COMPLETION_G1 = { type: 3, value: "COMPLETION_G1" }; IfcActionSourceTypeEnum.LIVE_LOAD_Q = { type: 3, value: "LIVE_LOAD_Q" }; IfcActionSourceTypeEnum.SNOW_S = { type: 3, value: "SNOW_S" }; IfcActionSourceTypeEnum.WIND_W = { type: 3, value: "WIND_W" }; IfcActionSourceTypeEnum.PRESTRESSING_P = { type: 3, value: "PRESTRESSING_P" }; IfcActionSourceTypeEnum.SETTLEMENT_U = { type: 3, value: "SETTLEMENT_U" }; IfcActionSourceTypeEnum.TEMPERATURE_T = { type: 3, value: "TEMPERATURE_T" }; IfcActionSourceTypeEnum.EARTHQUAKE_E = { type: 3, value: "EARTHQUAKE_E" }; IfcActionSourceTypeEnum.FIRE = { type: 3, value: "FIRE" }; IfcActionSourceTypeEnum.IMPULSE = { type: 3, value: "IMPULSE" }; IfcActionSourceTypeEnum.IMPACT = { type: 3, value: "IMPACT" }; IfcActionSourceTypeEnum.TRANSPORT = { type: 3, value: "TRANSPORT" }; IfcActionSourceTypeEnum.ERECTION = { type: 3, value: "ERECTION" }; IfcActionSourceTypeEnum.PROPPING = { type: 3, value: "PROPPING" }; IfcActionSourceTypeEnum.SYSTEM_IMPERFECTION = { type: 3, value: "SYSTEM_IMPERFECTION" }; IfcActionSourceTypeEnum.SHRINKAGE = { type: 3, value: "SHRINKAGE" }; IfcActionSourceTypeEnum.CREEP = { type: 3, value: "CREEP" }; IfcActionSourceTypeEnum.LACK_OF_FIT = { type: 3, value: "LACK_OF_FIT" }; IfcActionSourceTypeEnum.BUOYANCY = { type: 3, value: "BUOYANCY" }; IfcActionSourceTypeEnum.ICE = { type: 3, value: "ICE" }; IfcActionSourceTypeEnum.CURRENT = { type: 3, value: "CURRENT" }; IfcActionSourceTypeEnum.WAVE = { type: 3, value: "WAVE" }; IfcActionSourceTypeEnum.RAIN = { type: 3, value: "RAIN" }; IfcActionSourceTypeEnum.BRAKES = { type: 3, value: "BRAKES" }; IfcActionSourceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcActionSourceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC42.IfcActionSourceTypeEnum = IfcActionSourceTypeEnum; class IfcActionTypeEnum { } IfcActionTypeEnum.PERMANENT_G = { type: 3, value: "PERMANENT_G" }; IfcActionTypeEnum.VARIABLE_Q = { type: 3, value: "VARIABLE_Q" }; IfcActionTypeEnum.EXTRAORDINARY_A = { type: 3, value: "EXTRAORDINARY_A" }; IfcActionTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcActionTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC42.IfcActionTypeEnum = IfcActionTypeEnum; class IfcActuatorTypeEnum { } IfcActuatorTypeEnum.ELECTRICACTUATOR = { type: 3, value: "ELECTRICACTUATOR" }; IfcActuatorTypeEnum.HANDOPERATEDACTUATOR = { type: 3, value: "HANDOPERATEDACTUATOR" }; IfcActuatorTypeEnum.HYDRAULICACTUATOR = { type: 3, value: "HYDRAULICACTUATOR" }; IfcActuatorTypeEnum.PNEUMATICACTUATOR = { type: 3, value: "PNEUMATICACTUATOR" }; IfcActuatorTypeEnum.THERMOSTATICACTUATOR = { type: 3, value: "THERMOSTATICACTUATOR" }; IfcActuatorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcActuatorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC42.IfcActuatorTypeEnum = IfcActuatorTypeEnum; class IfcAddressTypeEnum { } IfcAddressTypeEnum.OFFICE = { type: 3, value: "OFFICE" }; IfcAddressTypeEnum.SITE = { type: 3, value: "SITE" }; IfcAddressTypeEnum.HOME = { type: 3, value: "HOME" }; IfcAddressTypeEnum.DISTRIBUTIONPOINT = { type: 3, value: "DISTRIBUTIONPOINT" }; IfcAddressTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IFC42.IfcAddressTypeEnum = IfcAddressTypeEnum; class IfcAirTerminalBoxTypeEnum { } IfcAirTerminalBoxTypeEnum.CONSTANTFLOW = { type: 3, value: "CONSTANTFLOW" }; IfcAirTerminalBoxTypeEnum.VARIABLEFLOWPRESSUREDEPENDANT = { type: 3, value: "VARIABLEFLOWPRESSUREDEPENDANT" }; IfcAirTerminalBoxTypeEnum.VARIABLEFLOWPRESSUREINDEPENDANT = { type: 3, value: "VARIABLEFLOWPRESSUREINDEPENDANT" }; IfcAirTerminalBoxTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcAirTerminalBoxTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC42.IfcAirTerminalBoxTypeEnum = IfcAirTerminalBoxTypeEnum; class IfcAirTerminalTypeEnum { } IfcAirTerminalTypeEnum.DIFFUSER = { type: 3, value: "DIFFUSER" }; IfcAirTerminalTypeEnum.GRILLE = { type: 3, value: "GRILLE" }; IfcAirTerminalTypeEnum.LOUVRE = { type: 3, value: "LOUVRE" }; IfcAirTerminalTypeEnum.REGISTER = { type: 3, value: "REGISTER" }; IfcAirTerminalTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcAirTerminalTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC42.IfcAirTerminalTypeEnum = IfcAirTerminalTypeEnum; class IfcAirToAirHeatRecoveryTypeEnum { } IfcAirToAirHeatRecoveryTypeEnum.FIXEDPLATECOUNTERFLOWEXCHANGER = { type: 3, value: "FIXEDPLATECOUNTERFLOWEXCHANGER" }; IfcAirToAirHeatRecoveryTypeEnum.FIXEDPLATECROSSFLOWEXCHANGER = { type: 3, value: "FIXEDPLATECROSSFLOWEXCHANGER" }; IfcAirToAirHeatRecoveryTypeEnum.FIXEDPLATEPARALLELFLOWEXCHANGER = { type: 3, value: "FIXEDPLATEPARALLELFLOWEXCHANGER" }; IfcAirToAirHeatRecoveryTypeEnum.ROTARYWHEEL = { type: 3, value: "ROTARYWHEEL" }; IfcAirToAirHeatRecoveryTypeEnum.RUNAROUNDCOILLOOP = { type: 3, value: "RUNAROUNDCOILLOOP" }; IfcAirToAirHeatRecoveryTypeEnum.HEATPIPE = { type: 3, value: "HEATPIPE" }; IfcAirToAirHeatRecoveryTypeEnum.TWINTOWERENTHALPYRECOVERYLOOPS = { type: 3, value: "TWINTOWERENTHALPYRECOVERYLOOPS" }; IfcAirToAirHeatRecoveryTypeEnum.THERMOSIPHONSEALEDTUBEHEATEXCHANGERS = { type: 3, value: "THERMOSIPHONSEALEDTUBEHEATEXCHANGERS" }; IfcAirToAirHeatRecoveryTypeEnum.THERMOSIPHONCOILTYPEHEATEXCHANGERS = { type: 3, value: "THERMOSIPHONCOILTYPEHEATEXCHANGERS" }; IfcAirToAirHeatRecoveryTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcAirToAirHeatRecoveryTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC42.IfcAirToAirHeatRecoveryTypeEnum = IfcAirToAirHeatRecoveryTypeEnum; class IfcAlarmTypeEnum { } IfcAlarmTypeEnum.BELL = { type: 3, value: "BELL" }; IfcAlarmTypeEnum.BREAKGLASSBUTTON = { type: 3, value: "BREAKGLASSBUTTON" }; IfcAlarmTypeEnum.LIGHT = { type: 3, value: "LIGHT" }; IfcAlarmTypeEnum.MANUALPULLBOX = { type: 3, value: "MANUALPULLBOX" }; IfcAlarmTypeEnum.SIREN = { type: 3, value: "SIREN" }; IfcAlarmTypeEnum.WHISTLE = { type: 3, value: "WHISTLE" }; IfcAlarmTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcAlarmTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC42.IfcAlarmTypeEnum = IfcAlarmTypeEnum; class IfcAnalysisModelTypeEnum { } IfcAnalysisModelTypeEnum.IN_PLANE_LOADING_2D = { type: 3, value: "IN_PLANE_LOADING_2D" }; IfcAnalysisModelTypeEnum.OUT_PLANE_LOADING_2D = { type: 3, value: "OUT_PLANE_LOADING_2D" }; IfcAnalysisModelTypeEnum.LOADING_3D = { type: 3, value: "LOADING_3D" }; IfcAnalysisModelTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcAnalysisModelTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC42.IfcAnalysisModelTypeEnum = IfcAnalysisModelTypeEnum; class IfcAnalysisTheoryTypeEnum { } IfcAnalysisTheoryTypeEnum.FIRST_ORDER_THEORY = { type: 3, value: "FIRST_ORDER_THEORY" }; IfcAnalysisTheoryTypeEnum.SECOND_ORDER_THEORY = { type: 3, value: "SECOND_ORDER_THEORY" }; IfcAnalysisTheoryTypeEnum.THIRD_ORDER_THEORY = { type: 3, value: "THIRD_ORDER_THEORY" }; IfcAnalysisTheoryTypeEnum.FULL_NONLINEAR_THEORY = { type: 3, value: "FULL_NONLINEAR_THEORY" }; IfcAnalysisTheoryTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcAnalysisTheoryTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC42.IfcAnalysisTheoryTypeEnum = IfcAnalysisTheoryTypeEnum; class IfcArithmeticOperatorEnum { } IfcArithmeticOperatorEnum.ADD = { type: 3, value: "ADD" }; IfcArithmeticOperatorEnum.DIVIDE = { type: 3, value: "DIVIDE" }; IfcArithmeticOperatorEnum.MULTIPLY = { type: 3, value: "MULTIPLY" }; IfcArithmeticOperatorEnum.SUBTRACT = { type: 3, value: "SUBTRACT" }; IFC42.IfcArithmeticOperatorEnum = IfcArithmeticOperatorEnum; class IfcAssemblyPlaceEnum { } IfcAssemblyPlaceEnum.SITE = { type: 3, value: "SITE" }; IfcAssemblyPlaceEnum.FACTORY = { type: 3, value: "FACTORY" }; IfcAssemblyPlaceEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC42.IfcAssemblyPlaceEnum = IfcAssemblyPlaceEnum; class IfcAudioVisualApplianceTypeEnum { } IfcAudioVisualApplianceTypeEnum.AMPLIFIER = { type: 3, value: "AMPLIFIER" }; IfcAudioVisualApplianceTypeEnum.CAMERA = { type: 3, value: "CAMERA" }; IfcAudioVisualApplianceTypeEnum.DISPLAY = { type: 3, value: "DISPLAY" }; IfcAudioVisualApplianceTypeEnum.MICROPHONE = { type: 3, value: "MICROPHONE" }; IfcAudioVisualApplianceTypeEnum.PLAYER = { type: 3, value: "PLAYER" }; IfcAudioVisualApplianceTypeEnum.PROJECTOR = { type: 3, value: "PROJECTOR" }; IfcAudioVisualApplianceTypeEnum.RECEIVER = { type: 3, value: "RECEIVER" }; IfcAudioVisualApplianceTypeEnum.SPEAKER = { type: 3, value: "SPEAKER" }; IfcAudioVisualApplianceTypeEnum.SWITCHER = { type: 3, value: "SWITCHER" }; IfcAudioVisualApplianceTypeEnum.TELEPHONE = { type: 3, value: "TELEPHONE" }; IfcAudioVisualApplianceTypeEnum.TUNER = { type: 3, value: "TUNER" }; IfcAudioVisualApplianceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcAudioVisualApplianceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC42.IfcAudioVisualApplianceTypeEnum = IfcAudioVisualApplianceTypeEnum; class IfcBSplineCurveForm { } IfcBSplineCurveForm.POLYLINE_FORM = { type: 3, value: "POLYLINE_FORM" }; IfcBSplineCurveForm.CIRCULAR_ARC = { type: 3, value: "CIRCULAR_ARC" }; IfcBSplineCurveForm.ELLIPTIC_ARC = { type: 3, value: "ELLIPTIC_ARC" }; IfcBSplineCurveForm.PARABOLIC_ARC = { type: 3, value: "PARABOLIC_ARC" }; IfcBSplineCurveForm.HYPERBOLIC_ARC = { type: 3, value: "HYPERBOLIC_ARC" }; IfcBSplineCurveForm.UNSPECIFIED = { type: 3, value: "UNSPECIFIED" }; IFC42.IfcBSplineCurveForm = IfcBSplineCurveForm; class IfcBSplineSurfaceForm { } IfcBSplineSurfaceForm.PLANE_SURF = { type: 3, value: "PLANE_SURF" }; IfcBSplineSurfaceForm.CYLINDRICAL_SURF = { type: 3, value: "CYLINDRICAL_SURF" }; IfcBSplineSurfaceForm.CONICAL_SURF = { type: 3, value: "CONICAL_SURF" }; IfcBSplineSurfaceForm.SPHERICAL_SURF = { type: 3, value: "SPHERICAL_SURF" }; IfcBSplineSurfaceForm.TOROIDAL_SURF = { type: 3, value: "TOROIDAL_SURF" }; IfcBSplineSurfaceForm.SURF_OF_REVOLUTION = { type: 3, value: "SURF_OF_REVOLUTION" }; IfcBSplineSurfaceForm.RULED_SURF = { type: 3, value: "RULED_SURF" }; IfcBSplineSurfaceForm.GENERALISED_CONE = { type: 3, value: "GENERALISED_CONE" }; IfcBSplineSurfaceForm.QUADRIC_SURF = { type: 3, value: "QUADRIC_SURF" }; IfcBSplineSurfaceForm.SURF_OF_LINEAR_EXTRUSION = { type: 3, value: "SURF_OF_LINEAR_EXTRUSION" }; IfcBSplineSurfaceForm.UNSPECIFIED = { type: 3, value: "UNSPECIFIED" }; IFC42.IfcBSplineSurfaceForm = IfcBSplineSurfaceForm; class IfcBeamTypeEnum { } IfcBeamTypeEnum.BEAM = { type: 3, value: "BEAM" }; IfcBeamTypeEnum.JOIST = { type: 3, value: "JOIST" }; IfcBeamTypeEnum.HOLLOWCORE = { type: 3, value: "HOLLOWCORE" }; IfcBeamTypeEnum.LINTEL = { type: 3, value: "LINTEL" }; IfcBeamTypeEnum.SPANDREL = { type: 3, value: "SPANDREL" }; IfcBeamTypeEnum.T_BEAM = { type: 3, value: "T_BEAM" }; IfcBeamTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcBeamTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC42.IfcBeamTypeEnum = IfcBeamTypeEnum; class IfcBenchmarkEnum { } IfcBenchmarkEnum.GREATERTHAN = { type: 3, value: "GREATERTHAN" }; IfcBenchmarkEnum.GREATERTHANOREQUALTO = { type: 3, value: "GREATERTHANOREQUALTO" }; IfcBenchmarkEnum.LESSTHAN = { type: 3, value: "LESSTHAN" }; IfcBenchmarkEnum.LESSTHANOREQUALTO = { type: 3, value: "LESSTHANOREQUALTO" }; IfcBenchmarkEnum.EQUALTO = { type: 3, value: "EQUALTO" }; IfcBenchmarkEnum.NOTEQUALTO = { type: 3, value: "NOTEQUALTO" }; IfcBenchmarkEnum.INCLUDES = { type: 3, value: "INCLUDES" }; IfcBenchmarkEnum.NOTINCLUDES = { type: 3, value: "NOTINCLUDES" }; IfcBenchmarkEnum.INCLUDEDIN = { type: 3, value: "INCLUDEDIN" }; IfcBenchmarkEnum.NOTINCLUDEDIN = { type: 3, value: "NOTINCLUDEDIN" }; IFC42.IfcBenchmarkEnum = IfcBenchmarkEnum; class IfcBoilerTypeEnum { } IfcBoilerTypeEnum.WATER = { type: 3, value: "WATER" }; IfcBoilerTypeEnum.STEAM = { type: 3, value: "STEAM" }; IfcBoilerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcBoilerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC42.IfcBoilerTypeEnum = IfcBoilerTypeEnum; class IfcBooleanOperator { } IfcBooleanOperator.UNION = { type: 3, value: "UNION" }; IfcBooleanOperator.INTERSECTION = { type: 3, value: "INTERSECTION" }; IfcBooleanOperator.DIFFERENCE = { type: 3, value: "DIFFERENCE" }; IFC42.IfcBooleanOperator = IfcBooleanOperator; class IfcBuildingElementPartTypeEnum { } IfcBuildingElementPartTypeEnum.INSULATION = { type: 3, value: "INSULATION" }; IfcBuildingElementPartTypeEnum.PRECASTPANEL = { type: 3, value: "PRECASTPANEL" }; IfcBuildingElementPartTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcBuildingElementPartTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC42.IfcBuildingElementPartTypeEnum = IfcBuildingElementPartTypeEnum; class IfcBuildingElementProxyTypeEnum { } IfcBuildingElementProxyTypeEnum.COMPLEX = { type: 3, value: "COMPLEX" }; IfcBuildingElementProxyTypeEnum.ELEMENT = { type: 3, value: "ELEMENT" }; IfcBuildingElementProxyTypeEnum.PARTIAL = { type: 3, value: "PARTIAL" }; IfcBuildingElementProxyTypeEnum.PROVISIONFORVOID = { type: 3, value: "PROVISIONFORVOID" }; IfcBuildingElementProxyTypeEnum.PROVISIONFORSPACE = { type: 3, value: "PROVISIONFORSPACE" }; IfcBuildingElementProxyTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcBuildingElementProxyTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC42.IfcBuildingElementProxyTypeEnum = IfcBuildingElementProxyTypeEnum; class IfcBuildingSystemTypeEnum { } IfcBuildingSystemTypeEnum.FENESTRATION = { type: 3, value: "FENESTRATION" }; IfcBuildingSystemTypeEnum.FOUNDATION = { type: 3, value: "FOUNDATION" }; IfcBuildingSystemTypeEnum.LOADBEARING = { type: 3, value: "LOADBEARING" }; IfcBuildingSystemTypeEnum.OUTERSHELL = { type: 3, value: "OUTERSHELL" }; IfcBuildingSystemTypeEnum.SHADING = { type: 3, value: "SHADING" }; IfcBuildingSystemTypeEnum.TRANSPORT = { type: 3, value: "TRANSPORT" }; IfcBuildingSystemTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcBuildingSystemTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC42.IfcBuildingSystemTypeEnum = IfcBuildingSystemTypeEnum; class IfcBurnerTypeEnum { } IfcBurnerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcBurnerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC42.IfcBurnerTypeEnum = IfcBurnerTypeEnum; class IfcCableCarrierFittingTypeEnum { } IfcCableCarrierFittingTypeEnum.BEND = { type: 3, value: "BEND" }; IfcCableCarrierFittingTypeEnum.CROSS = { type: 3, value: "CROSS" }; IfcCableCarrierFittingTypeEnum.REDUCER = { type: 3, value: "REDUCER" }; IfcCableCarrierFittingTypeEnum.TEE = { type: 3, value: "TEE" }; IfcCableCarrierFittingTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcCableCarrierFittingTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC42.IfcCableCarrierFittingTypeEnum = IfcCableCarrierFittingTypeEnum; class IfcCableCarrierSegmentTypeEnum { } IfcCableCarrierSegmentTypeEnum.CABLELADDERSEGMENT = { type: 3, value: "CABLELADDERSEGMENT" }; IfcCableCarrierSegmentTypeEnum.CABLETRAYSEGMENT = { type: 3, value: "CABLETRAYSEGMENT" }; IfcCableCarrierSegmentTypeEnum.CABLETRUNKINGSEGMENT = { type: 3, value: "CABLETRUNKINGSEGMENT" }; IfcCableCarrierSegmentTypeEnum.CONDUITSEGMENT = { type: 3, value: "CONDUITSEGMENT" }; IfcCableCarrierSegmentTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcCableCarrierSegmentTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC42.IfcCableCarrierSegmentTypeEnum = IfcCableCarrierSegmentTypeEnum; class IfcCableFittingTypeEnum { } IfcCableFittingTypeEnum.CONNECTOR = { type: 3, value: "CONNECTOR" }; IfcCableFittingTypeEnum.ENTRY = { type: 3, value: "ENTRY" }; IfcCableFittingTypeEnum.EXIT = { type: 3, value: "EXIT" }; IfcCableFittingTypeEnum.JUNCTION = { type: 3, value: "JUNCTION" }; IfcCableFittingTypeEnum.TRANSITION = { type: 3, value: "TRANSITION" }; IfcCableFittingTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcCableFittingTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC42.IfcCableFittingTypeEnum = IfcCableFittingTypeEnum; class IfcCableSegmentTypeEnum { } IfcCableSegmentTypeEnum.BUSBARSEGMENT = { type: 3, value: "BUSBARSEGMENT" }; IfcCableSegmentTypeEnum.CABLESEGMENT = { type: 3, value: "CABLESEGMENT" }; IfcCableSegmentTypeEnum.CONDUCTORSEGMENT = { type: 3, value: "CONDUCTORSEGMENT" }; IfcCableSegmentTypeEnum.CORESEGMENT = { type: 3, value: "CORESEGMENT" }; IfcCableSegmentTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcCableSegmentTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC42.IfcCableSegmentTypeEnum = IfcCableSegmentTypeEnum; class IfcChangeActionEnum { } IfcChangeActionEnum.NOCHANGE = { type: 3, value: "NOCHANGE" }; IfcChangeActionEnum.MODIFIED = { type: 3, value: "MODIFIED" }; IfcChangeActionEnum.ADDED = { type: 3, value: "ADDED" }; IfcChangeActionEnum.DELETED = { type: 3, value: "DELETED" }; IfcChangeActionEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC42.IfcChangeActionEnum = IfcChangeActionEnum; class IfcChillerTypeEnum { } IfcChillerTypeEnum.AIRCOOLED = { type: 3, value: "AIRCOOLED" }; IfcChillerTypeEnum.WATERCOOLED = { type: 3, value: "WATERCOOLED" }; IfcChillerTypeEnum.HEATRECOVERY = { type: 3, value: "HEATRECOVERY" }; IfcChillerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcChillerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC42.IfcChillerTypeEnum = IfcChillerTypeEnum; class IfcChimneyTypeEnum { } IfcChimneyTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcChimneyTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC42.IfcChimneyTypeEnum = IfcChimneyTypeEnum; class IfcCoilTypeEnum { } IfcCoilTypeEnum.DXCOOLINGCOIL = { type: 3, value: "DXCOOLINGCOIL" }; IfcCoilTypeEnum.ELECTRICHEATINGCOIL = { type: 3, value: "ELECTRICHEATINGCOIL" }; IfcCoilTypeEnum.GASHEATINGCOIL = { type: 3, value: "GASHEATINGCOIL" }; IfcCoilTypeEnum.HYDRONICCOIL = { type: 3, value: "HYDRONICCOIL" }; IfcCoilTypeEnum.STEAMHEATINGCOIL = { type: 3, value: "STEAMHEATINGCOIL" }; IfcCoilTypeEnum.WATERCOOLINGCOIL = { type: 3, value: "WATERCOOLINGCOIL" }; IfcCoilTypeEnum.WATERHEATINGCOIL = { type: 3, value: "WATERHEATINGCOIL" }; IfcCoilTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcCoilTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC42.IfcCoilTypeEnum = IfcCoilTypeEnum; class IfcColumnTypeEnum { } IfcColumnTypeEnum.COLUMN = { type: 3, value: "COLUMN" }; IfcColumnTypeEnum.PILASTER = { type: 3, value: "PILASTER" }; IfcColumnTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcColumnTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC42.IfcColumnTypeEnum = IfcColumnTypeEnum; class IfcCommunicationsApplianceTypeEnum { } IfcCommunicationsApplianceTypeEnum.ANTENNA = { type: 3, value: "ANTENNA" }; IfcCommunicationsApplianceTypeEnum.COMPUTER = { type: 3, value: "COMPUTER" }; IfcCommunicationsApplianceTypeEnum.FAX = { type: 3, value: "FAX" }; IfcCommunicationsApplianceTypeEnum.GATEWAY = { type: 3, value: "GATEWAY" }; IfcCommunicationsApplianceTypeEnum.MODEM = { type: 3, value: "MODEM" }; IfcCommunicationsApplianceTypeEnum.NETWORKAPPLIANCE = { type: 3, value: "NETWORKAPPLIANCE" }; IfcCommunicationsApplianceTypeEnum.NETWORKBRIDGE = { type: 3, value: "NETWORKBRIDGE" }; IfcCommunicationsApplianceTypeEnum.NETWORKHUB = { type: 3, value: "NETWORKHUB" }; IfcCommunicationsApplianceTypeEnum.PRINTER = { type: 3, value: "PRINTER" }; IfcCommunicationsApplianceTypeEnum.REPEATER = { type: 3, value: "REPEATER" }; IfcCommunicationsApplianceTypeEnum.ROUTER = { type: 3, value: "ROUTER" }; IfcCommunicationsApplianceTypeEnum.SCANNER = { type: 3, value: "SCANNER" }; IfcCommunicationsApplianceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcCommunicationsApplianceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC42.IfcCommunicationsApplianceTypeEnum = IfcCommunicationsApplianceTypeEnum; class IfcComplexPropertyTemplateTypeEnum { } IfcComplexPropertyTemplateTypeEnum.P_COMPLEX = { type: 3, value: "P_COMPLEX" }; IfcComplexPropertyTemplateTypeEnum.Q_COMPLEX = { type: 3, value: "Q_COMPLEX" }; IFC42.IfcComplexPropertyTemplateTypeEnum = IfcComplexPropertyTemplateTypeEnum; class IfcCompressorTypeEnum { } IfcCompressorTypeEnum.DYNAMIC = { type: 3, value: "DYNAMIC" }; IfcCompressorTypeEnum.RECIPROCATING = { type: 3, value: "RECIPROCATING" }; IfcCompressorTypeEnum.ROTARY = { type: 3, value: "ROTARY" }; IfcCompressorTypeEnum.SCROLL = { type: 3, value: "SCROLL" }; IfcCompressorTypeEnum.TROCHOIDAL = { type: 3, value: "TROCHOIDAL" }; IfcCompressorTypeEnum.SINGLESTAGE = { type: 3, value: "SINGLESTAGE" }; IfcCompressorTypeEnum.BOOSTER = { type: 3, value: "BOOSTER" }; IfcCompressorTypeEnum.OPENTYPE = { type: 3, value: "OPENTYPE" }; IfcCompressorTypeEnum.HERMETIC = { type: 3, value: "HERMETIC" }; IfcCompressorTypeEnum.SEMIHERMETIC = { type: 3, value: "SEMIHERMETIC" }; IfcCompressorTypeEnum.WELDEDSHELLHERMETIC = { type: 3, value: "WELDEDSHELLHERMETIC" }; IfcCompressorTypeEnum.ROLLINGPISTON = { type: 3, value: "ROLLINGPISTON" }; IfcCompressorTypeEnum.ROTARYVANE = { type: 3, value: "ROTARYVANE" }; IfcCompressorTypeEnum.SINGLESCREW = { type: 3, value: "SINGLESCREW" }; IfcCompressorTypeEnum.TWINSCREW = { type: 3, value: "TWINSCREW" }; IfcCompressorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcCompressorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC42.IfcCompressorTypeEnum = IfcCompressorTypeEnum; class IfcCondenserTypeEnum { } IfcCondenserTypeEnum.AIRCOOLED = { type: 3, value: "AIRCOOLED" }; IfcCondenserTypeEnum.EVAPORATIVECOOLED = { type: 3, value: "EVAPORATIVECOOLED" }; IfcCondenserTypeEnum.WATERCOOLED = { type: 3, value: "WATERCOOLED" }; IfcCondenserTypeEnum.WATERCOOLEDBRAZEDPLATE = { type: 3, value: "WATERCOOLEDBRAZEDPLATE" }; IfcCondenserTypeEnum.WATERCOOLEDSHELLCOIL = { type: 3, value: "WATERCOOLEDSHELLCOIL" }; IfcCondenserTypeEnum.WATERCOOLEDSHELLTUBE = { type: 3, value: "WATERCOOLEDSHELLTUBE" }; IfcCondenserTypeEnum.WATERCOOLEDTUBEINTUBE = { type: 3, value: "WATERCOOLEDTUBEINTUBE" }; IfcCondenserTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcCondenserTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC42.IfcCondenserTypeEnum = IfcCondenserTypeEnum; class IfcConnectionTypeEnum { } IfcConnectionTypeEnum.ATPATH = { type: 3, value: "ATPATH" }; IfcConnectionTypeEnum.ATSTART = { type: 3, value: "ATSTART" }; IfcConnectionTypeEnum.ATEND = { type: 3, value: "ATEND" }; IfcConnectionTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC42.IfcConnectionTypeEnum = IfcConnectionTypeEnum; class IfcConstraintEnum { } IfcConstraintEnum.HARD = { type: 3, value: "HARD" }; IfcConstraintEnum.SOFT = { type: 3, value: "SOFT" }; IfcConstraintEnum.ADVISORY = { type: 3, value: "ADVISORY" }; IfcConstraintEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcConstraintEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC42.IfcConstraintEnum = IfcConstraintEnum; class IfcConstructionEquipmentResourceTypeEnum { } IfcConstructionEquipmentResourceTypeEnum.DEMOLISHING = { type: 3, value: "DEMOLISHING" }; IfcConstructionEquipmentResourceTypeEnum.EARTHMOVING = { type: 3, value: "EARTHMOVING" }; IfcConstructionEquipmentResourceTypeEnum.ERECTING = { type: 3, value: "ERECTING" }; IfcConstructionEquipmentResourceTypeEnum.HEATING = { type: 3, value: "HEATING" }; IfcConstructionEquipmentResourceTypeEnum.LIGHTING = { type: 3, value: "LIGHTING" }; IfcConstructionEquipmentResourceTypeEnum.PAVING = { type: 3, value: "PAVING" }; IfcConstructionEquipmentResourceTypeEnum.PUMPING = { type: 3, value: "PUMPING" }; IfcConstructionEquipmentResourceTypeEnum.TRANSPORTING = { type: 3, value: "TRANSPORTING" }; IfcConstructionEquipmentResourceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcConstructionEquipmentResourceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC42.IfcConstructionEquipmentResourceTypeEnum = IfcConstructionEquipmentResourceTypeEnum; class IfcConstructionMaterialResourceTypeEnum { } IfcConstructionMaterialResourceTypeEnum.AGGREGATES = { type: 3, value: "AGGREGATES" }; IfcConstructionMaterialResourceTypeEnum.CONCRETE = { type: 3, value: "CONCRETE" }; IfcConstructionMaterialResourceTypeEnum.DRYWALL = { type: 3, value: "DRYWALL" }; IfcConstructionMaterialResourceTypeEnum.FUEL = { type: 3, value: "FUEL" }; IfcConstructionMaterialResourceTypeEnum.GYPSUM = { type: 3, value: "GYPSUM" }; IfcConstructionMaterialResourceTypeEnum.MASONRY = { type: 3, value: "MASONRY" }; IfcConstructionMaterialResourceTypeEnum.METAL = { type: 3, value: "METAL" }; IfcConstructionMaterialResourceTypeEnum.PLASTIC = { type: 3, value: "PLASTIC" }; IfcConstructionMaterialResourceTypeEnum.WOOD = { type: 3, value: "WOOD" }; IfcConstructionMaterialResourceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IfcConstructionMaterialResourceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IFC42.IfcConstructionMaterialResourceTypeEnum = IfcConstructionMaterialResourceTypeEnum; class IfcConstructionProductResourceTypeEnum { } IfcConstructionProductResourceTypeEnum.ASSEMBLY = { type: 3, value: "ASSEMBLY" }; IfcConstructionProductResourceTypeEnum.FORMWORK = { type: 3, value: "FORMWORK" }; IfcConstructionProductResourceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcConstructionProductResourceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC42.IfcConstructionProductResourceTypeEnum = IfcConstructionProductResourceTypeEnum; class IfcControllerTypeEnum { } IfcControllerTypeEnum.FLOATING = { type: 3, value: "FLOATING" }; IfcControllerTypeEnum.PROGRAMMABLE = { type: 3, value: "PROGRAMMABLE" }; IfcControllerTypeEnum.PROPORTIONAL = { type: 3, value: "PROPORTIONAL" }; IfcControllerTypeEnum.MULTIPOSITION = { type: 3, value: "MULTIPOSITION" }; IfcControllerTypeEnum.TWOPOSITION = { type: 3, value: "TWOPOSITION" }; IfcControllerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcControllerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC42.IfcControllerTypeEnum = IfcControllerTypeEnum; class IfcCooledBeamTypeEnum { } IfcCooledBeamTypeEnum.ACTIVE = { type: 3, value: "ACTIVE" }; IfcCooledBeamTypeEnum.PASSIVE = { type: 3, value: "PASSIVE" }; IfcCooledBeamTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcCooledBeamTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC42.IfcCooledBeamTypeEnum = IfcCooledBeamTypeEnum; class IfcCoolingTowerTypeEnum { } IfcCoolingTowerTypeEnum.NATURALDRAFT = { type: 3, value: "NATURALDRAFT" }; IfcCoolingTowerTypeEnum.MECHANICALINDUCEDDRAFT = { type: 3, value: "MECHANICALINDUCEDDRAFT" }; IfcCoolingTowerTypeEnum.MECHANICALFORCEDDRAFT = { type: 3, value: "MECHANICALFORCEDDRAFT" }; IfcCoolingTowerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcCoolingTowerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC42.IfcCoolingTowerTypeEnum = IfcCoolingTowerTypeEnum; class IfcCostItemTypeEnum { } IfcCostItemTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcCostItemTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC42.IfcCostItemTypeEnum = IfcCostItemTypeEnum; class IfcCostScheduleTypeEnum { } IfcCostScheduleTypeEnum.BUDGET = { type: 3, value: "BUDGET" }; IfcCostScheduleTypeEnum.COSTPLAN = { type: 3, value: "COSTPLAN" }; IfcCostScheduleTypeEnum.ESTIMATE = { type: 3, value: "ESTIMATE" }; IfcCostScheduleTypeEnum.TENDER = { type: 3, value: "TENDER" }; IfcCostScheduleTypeEnum.PRICEDBILLOFQUANTITIES = { type: 3, value: "PRICEDBILLOFQUANTITIES" }; IfcCostScheduleTypeEnum.UNPRICEDBILLOFQUANTITIES = { type: 3, value: "UNPRICEDBILLOFQUANTITIES" }; IfcCostScheduleTypeEnum.SCHEDULEOFRATES = { type: 3, value: "SCHEDULEOFRATES" }; IfcCostScheduleTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcCostScheduleTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC42.IfcCostScheduleTypeEnum = IfcCostScheduleTypeEnum; class IfcCoveringTypeEnum { } IfcCoveringTypeEnum.CEILING = { type: 3, value: "CEILING" }; IfcCoveringTypeEnum.FLOORING = { type: 3, value: "FLOORING" }; IfcCoveringTypeEnum.CLADDING = { type: 3, value: "CLADDING" }; IfcCoveringTypeEnum.ROOFING = { type: 3, value: "ROOFING" }; IfcCoveringTypeEnum.MOLDING = { type: 3, value: "MOLDING" }; IfcCoveringTypeEnum.SKIRTINGBOARD = { type: 3, value: "SKIRTINGBOARD" }; IfcCoveringTypeEnum.INSULATION = { type: 3, value: "INSULATION" }; IfcCoveringTypeEnum.MEMBRANE = { type: 3, value: "MEMBRANE" }; IfcCoveringTypeEnum.SLEEVING = { type: 3, value: "SLEEVING" }; IfcCoveringTypeEnum.WRAPPING = { type: 3, value: "WRAPPING" }; IfcCoveringTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcCoveringTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC42.IfcCoveringTypeEnum = IfcCoveringTypeEnum; class IfcCrewResourceTypeEnum { } IfcCrewResourceTypeEnum.OFFICE = { type: 3, value: "OFFICE" }; IfcCrewResourceTypeEnum.SITE = { type: 3, value: "SITE" }; IfcCrewResourceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcCrewResourceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC42.IfcCrewResourceTypeEnum = IfcCrewResourceTypeEnum; class IfcCurtainWallTypeEnum { } IfcCurtainWallTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcCurtainWallTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC42.IfcCurtainWallTypeEnum = IfcCurtainWallTypeEnum; class IfcCurveInterpolationEnum { } IfcCurveInterpolationEnum.LINEAR = { type: 3, value: "LINEAR" }; IfcCurveInterpolationEnum.LOG_LINEAR = { type: 3, value: "LOG_LINEAR" }; IfcCurveInterpolationEnum.LOG_LOG = { type: 3, value: "LOG_LOG" }; IfcCurveInterpolationEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC42.IfcCurveInterpolationEnum = IfcCurveInterpolationEnum; class IfcDamperTypeEnum { } IfcDamperTypeEnum.BACKDRAFTDAMPER = { type: 3, value: "BACKDRAFTDAMPER" }; IfcDamperTypeEnum.BALANCINGDAMPER = { type: 3, value: "BALANCINGDAMPER" }; IfcDamperTypeEnum.BLASTDAMPER = { type: 3, value: "BLASTDAMPER" }; IfcDamperTypeEnum.CONTROLDAMPER = { type: 3, value: "CONTROLDAMPER" }; IfcDamperTypeEnum.FIREDAMPER = { type: 3, value: "FIREDAMPER" }; IfcDamperTypeEnum.FIRESMOKEDAMPER = { type: 3, value: "FIRESMOKEDAMPER" }; IfcDamperTypeEnum.FUMEHOODEXHAUST = { type: 3, value: "FUMEHOODEXHAUST" }; IfcDamperTypeEnum.GRAVITYDAMPER = { type: 3, value: "GRAVITYDAMPER" }; IfcDamperTypeEnum.GRAVITYRELIEFDAMPER = { type: 3, value: "GRAVITYRELIEFDAMPER" }; IfcDamperTypeEnum.RELIEFDAMPER = { type: 3, value: "RELIEFDAMPER" }; IfcDamperTypeEnum.SMOKEDAMPER = { type: 3, value: "SMOKEDAMPER" }; IfcDamperTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcDamperTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC42.IfcDamperTypeEnum = IfcDamperTypeEnum; class IfcDataOriginEnum { } IfcDataOriginEnum.MEASURED = { type: 3, value: "MEASURED" }; IfcDataOriginEnum.PREDICTED = { type: 3, value: "PREDICTED" }; IfcDataOriginEnum.SIMULATED = { type: 3, value: "SIMULATED" }; IfcDataOriginEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcDataOriginEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC42.IfcDataOriginEnum = IfcDataOriginEnum; class IfcDerivedUnitEnum { } IfcDerivedUnitEnum.ANGULARVELOCITYUNIT = { type: 3, value: "ANGULARVELOCITYUNIT" }; IfcDerivedUnitEnum.AREADENSITYUNIT = { type: 3, value: "AREADENSITYUNIT" }; IfcDerivedUnitEnum.COMPOUNDPLANEANGLEUNIT = { type: 3, value: "COMPOUNDPLANEANGLEUNIT" }; IfcDerivedUnitEnum.DYNAMICVISCOSITYUNIT = { type: 3, value: "DYNAMICVISCOSITYUNIT" }; IfcDerivedUnitEnum.HEATFLUXDENSITYUNIT = { type: 3, value: "HEATFLUXDENSITYUNIT" }; IfcDerivedUnitEnum.INTEGERCOUNTRATEUNIT = { type: 3, value: "INTEGERCOUNTRATEUNIT" }; IfcDerivedUnitEnum.ISOTHERMALMOISTURECAPACITYUNIT = { type: 3, value: "ISOTHERMALMOISTURECAPACITYUNIT" }; IfcDerivedUnitEnum.KINEMATICVISCOSITYUNIT = { type: 3, value: "KINEMATICVISCOSITYUNIT" }; IfcDerivedUnitEnum.LINEARVELOCITYUNIT = { type: 3, value: "LINEARVELOCITYUNIT" }; IfcDerivedUnitEnum.MASSDENSITYUNIT = { type: 3, value: "MASSDENSITYUNIT" }; IfcDerivedUnitEnum.MASSFLOWRATEUNIT = { type: 3, value: "MASSFLOWRATEUNIT" }; IfcDerivedUnitEnum.MOISTUREDIFFUSIVITYUNIT = { type: 3, value: "MOISTUREDIFFUSIVITYUNIT" }; IfcDerivedUnitEnum.MOLECULARWEIGHTUNIT = { type: 3, value: "MOLECULARWEIGHTUNIT" }; IfcDerivedUnitEnum.SPECIFICHEATCAPACITYUNIT = { type: 3, value: "SPECIFICHEATCAPACITYUNIT" }; IfcDerivedUnitEnum.THERMALADMITTANCEUNIT = { type: 3, value: "THERMALADMITTANCEUNIT" }; IfcDerivedUnitEnum.THERMALCONDUCTANCEUNIT = { type: 3, value: "THERMALCONDUCTANCEUNIT" }; IfcDerivedUnitEnum.THERMALRESISTANCEUNIT = { type: 3, value: "THERMALRESISTANCEUNIT" }; IfcDerivedUnitEnum.THERMALTRANSMITTANCEUNIT = { type: 3, value: "THERMALTRANSMITTANCEUNIT" }; IfcDerivedUnitEnum.VAPORPERMEABILITYUNIT = { type: 3, value: "VAPORPERMEABILITYUNIT" }; IfcDerivedUnitEnum.VOLUMETRICFLOWRATEUNIT = { type: 3, value: "VOLUMETRICFLOWRATEUNIT" }; IfcDerivedUnitEnum.ROTATIONALFREQUENCYUNIT = { type: 3, value: "ROTATIONALFREQUENCYUNIT" }; IfcDerivedUnitEnum.TORQUEUNIT = { type: 3, value: "TORQUEUNIT" }; IfcDerivedUnitEnum.MOMENTOFINERTIAUNIT = { type: 3, value: "MOMENTOFINERTIAUNIT" }; IfcDerivedUnitEnum.LINEARMOMENTUNIT = { type: 3, value: "LINEARMOMENTUNIT" }; IfcDerivedUnitEnum.LINEARFORCEUNIT = { type: 3, value: "LINEARFORCEUNIT" }; IfcDerivedUnitEnum.PLANARFORCEUNIT = { type: 3, value: "PLANARFORCEUNIT" }; IfcDerivedUnitEnum.MODULUSOFELASTICITYUNIT = { type: 3, value: "MODULUSOFELASTICITYUNIT" }; IfcDerivedUnitEnum.SHEARMODULUSUNIT = { type: 3, value: "SHEARMODULUSUNIT" }; IfcDerivedUnitEnum.LINEARSTIFFNESSUNIT = { type: 3, value: "LINEARSTIFFNESSUNIT" }; IfcDerivedUnitEnum.ROTATIONALSTIFFNESSUNIT = { type: 3, value: "ROTATIONALSTIFFNESSUNIT" }; IfcDerivedUnitEnum.MODULUSOFSUBGRADEREACTIONUNIT = { type: 3, value: "MODULUSOFSUBGRADEREACTIONUNIT" }; IfcDerivedUnitEnum.ACCELERATIONUNIT = { type: 3, value: "ACCELERATIONUNIT" }; IfcDerivedUnitEnum.CURVATUREUNIT = { type: 3, value: "CURVATUREUNIT" }; IfcDerivedUnitEnum.HEATINGVALUEUNIT = { type: 3, value: "HEATINGVALUEUNIT" }; IfcDerivedUnitEnum.IONCONCENTRATIONUNIT = { type: 3, value: "IONCONCENTRATIONUNIT" }; IfcDerivedUnitEnum.LUMINOUSINTENSITYDISTRIBUTIONUNIT = { type: 3, value: "LUMINOUSINTENSITYDISTRIBUTIONUNIT" }; IfcDerivedUnitEnum.MASSPERLENGTHUNIT = { type: 3, value: "MASSPERLENGTHUNIT" }; IfcDerivedUnitEnum.MODULUSOFLINEARSUBGRADEREACTIONUNIT = { type: 3, value: "MODULUSOFLINEARSUBGRADEREACTIONUNIT" }; IfcDerivedUnitEnum.MODULUSOFROTATIONALSUBGRADEREACTIONUNIT = { type: 3, value: "MODULUSOFROTATIONALSUBGRADEREACTIONUNIT" }; IfcDerivedUnitEnum.PHUNIT = { type: 3, value: "PHUNIT" }; IfcDerivedUnitEnum.ROTATIONALMASSUNIT = { type: 3, value: "ROTATIONALMASSUNIT" }; IfcDerivedUnitEnum.SECTIONAREAINTEGRALUNIT = { type: 3, value: "SECTIONAREAINTEGRALUNIT" }; IfcDerivedUnitEnum.SECTIONMODULUSUNIT = { type: 3, value: "SECTIONMODULUSUNIT" }; IfcDerivedUnitEnum.SOUNDPOWERLEVELUNIT = { type: 3, value: "SOUNDPOWERLEVELUNIT" }; IfcDerivedUnitEnum.SOUNDPOWERUNIT = { type: 3, value: "SOUNDPOWERUNIT" }; IfcDerivedUnitEnum.SOUNDPRESSURELEVELUNIT = { type: 3, value: "SOUNDPRESSURELEVELUNIT" }; IfcDerivedUnitEnum.SOUNDPRESSUREUNIT = { type: 3, value: "SOUNDPRESSUREUNIT" }; IfcDerivedUnitEnum.TEMPERATUREGRADIENTUNIT = { type: 3, value: "TEMPERATUREGRADIENTUNIT" }; IfcDerivedUnitEnum.TEMPERATURERATEOFCHANGEUNIT = { type: 3, value: "TEMPERATURERATEOFCHANGEUNIT" }; IfcDerivedUnitEnum.THERMALEXPANSIONCOEFFICIENTUNIT = { type: 3, value: "THERMALEXPANSIONCOEFFICIENTUNIT" }; IfcDerivedUnitEnum.WARPINGCONSTANTUNIT = { type: 3, value: "WARPINGCONSTANTUNIT" }; IfcDerivedUnitEnum.WARPINGMOMENTUNIT = { type: 3, value: "WARPINGMOMENTUNIT" }; IfcDerivedUnitEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IFC42.IfcDerivedUnitEnum = IfcDerivedUnitEnum; class IfcDirectionSenseEnum { } IfcDirectionSenseEnum.POSITIVE = { type: 3, value: "POSITIVE" }; IfcDirectionSenseEnum.NEGATIVE = { type: 3, value: "NEGATIVE" }; IFC42.IfcDirectionSenseEnum = IfcDirectionSenseEnum; class IfcDiscreteAccessoryTypeEnum { } IfcDiscreteAccessoryTypeEnum.ANCHORPLATE = { type: 3, value: "ANCHORPLATE" }; IfcDiscreteAccessoryTypeEnum.BRACKET = { type: 3, value: "BRACKET" }; IfcDiscreteAccessoryTypeEnum.SHOE = { type: 3, value: "SHOE" }; IfcDiscreteAccessoryTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcDiscreteAccessoryTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC42.IfcDiscreteAccessoryTypeEnum = IfcDiscreteAccessoryTypeEnum; class IfcDistributionChamberElementTypeEnum { } IfcDistributionChamberElementTypeEnum.FORMEDDUCT = { type: 3, value: "FORMEDDUCT" }; IfcDistributionChamberElementTypeEnum.INSPECTIONCHAMBER = { type: 3, value: "INSPECTIONCHAMBER" }; IfcDistributionChamberElementTypeEnum.INSPECTIONPIT = { type: 3, value: "INSPECTIONPIT" }; IfcDistributionChamberElementTypeEnum.MANHOLE = { type: 3, value: "MANHOLE" }; IfcDistributionChamberElementTypeEnum.METERCHAMBER = { type: 3, value: "METERCHAMBER" }; IfcDistributionChamberElementTypeEnum.SUMP = { type: 3, value: "SUMP" }; IfcDistributionChamberElementTypeEnum.TRENCH = { type: 3, value: "TRENCH" }; IfcDistributionChamberElementTypeEnum.VALVECHAMBER = { type: 3, value: "VALVECHAMBER" }; IfcDistributionChamberElementTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcDistributionChamberElementTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC42.IfcDistributionChamberElementTypeEnum = IfcDistributionChamberElementTypeEnum; class IfcDistributionPortTypeEnum { } IfcDistributionPortTypeEnum.CABLE = { type: 3, value: "CABLE" }; IfcDistributionPortTypeEnum.CABLECARRIER = { type: 3, value: "CABLECARRIER" }; IfcDistributionPortTypeEnum.DUCT = { type: 3, value: "DUCT" }; IfcDistributionPortTypeEnum.PIPE = { type: 3, value: "PIPE" }; IfcDistributionPortTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcDistributionPortTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC42.IfcDistributionPortTypeEnum = IfcDistributionPortTypeEnum; class IfcDistributionSystemEnum { } IfcDistributionSystemEnum.AIRCONDITIONING = { type: 3, value: "AIRCONDITIONING" }; IfcDistributionSystemEnum.AUDIOVISUAL = { type: 3, value: "AUDIOVISUAL" }; IfcDistributionSystemEnum.CHEMICAL = { type: 3, value: "CHEMICAL" }; IfcDistributionSystemEnum.CHILLEDWATER = { type: 3, value: "CHILLEDWATER" }; IfcDistributionSystemEnum.COMMUNICATION = { type: 3, value: "COMMUNICATION" }; IfcDistributionSystemEnum.COMPRESSEDAIR = { type: 3, value: "COMPRESSEDAIR" }; IfcDistributionSystemEnum.CONDENSERWATER = { type: 3, value: "CONDENSERWATER" }; IfcDistributionSystemEnum.CONTROL = { type: 3, value: "CONTROL" }; IfcDistributionSystemEnum.CONVEYING = { type: 3, value: "CONVEYING" }; IfcDistributionSystemEnum.DATA = { type: 3, value: "DATA" }; IfcDistributionSystemEnum.DISPOSAL = { type: 3, value: "DISPOSAL" }; IfcDistributionSystemEnum.DOMESTICCOLDWATER = { type: 3, value: "DOMESTICCOLDWATER" }; IfcDistributionSystemEnum.DOMESTICHOTWATER = { type: 3, value: "DOMESTICHOTWATER" }; IfcDistributionSystemEnum.DRAINAGE = { type: 3, value: "DRAINAGE" }; IfcDistributionSystemEnum.EARTHING = { type: 3, value: "EARTHING" }; IfcDistributionSystemEnum.ELECTRICAL = { type: 3, value: "ELECTRICAL" }; IfcDistributionSystemEnum.ELECTROACOUSTIC = { type: 3, value: "ELECTROACOUSTIC" }; IfcDistributionSystemEnum.EXHAUST = { type: 3, value: "EXHAUST" }; IfcDistributionSystemEnum.FIREPROTECTION = { type: 3, value: "FIREPROTECTION" }; IfcDistributionSystemEnum.FUEL = { type: 3, value: "FUEL" }; IfcDistributionSystemEnum.GAS = { type: 3, value: "GAS" }; IfcDistributionSystemEnum.HAZARDOUS = { type: 3, value: "HAZARDOUS" }; IfcDistributionSystemEnum.HEATING = { type: 3, value: "HEATING" }; IfcDistributionSystemEnum.LIGHTING = { type: 3, value: "LIGHTING" }; IfcDistributionSystemEnum.LIGHTNINGPROTECTION = { type: 3, value: "LIGHTNINGPROTECTION" }; IfcDistributionSystemEnum.MUNICIPALSOLIDWASTE = { type: 3, value: "MUNICIPALSOLIDWASTE" }; IfcDistributionSystemEnum.OIL = { type: 3, value: "OIL" }; IfcDistributionSystemEnum.OPERATIONAL = { type: 3, value: "OPERATIONAL" }; IfcDistributionSystemEnum.POWERGENERATION = { type: 3, value: "POWERGENERATION" }; IfcDistributionSystemEnum.RAINWATER = { type: 3, value: "RAINWATER" }; IfcDistributionSystemEnum.REFRIGERATION = { type: 3, value: "REFRIGERATION" }; IfcDistributionSystemEnum.SECURITY = { type: 3, value: "SECURITY" }; IfcDistributionSystemEnum.SEWAGE = { type: 3, value: "SEWAGE" }; IfcDistributionSystemEnum.SIGNAL = { type: 3, value: "SIGNAL" }; IfcDistributionSystemEnum.STORMWATER = { type: 3, value: "STORMWATER" }; IfcDistributionSystemEnum.TELEPHONE = { type: 3, value: "TELEPHONE" }; IfcDistributionSystemEnum.TV = { type: 3, value: "TV" }; IfcDistributionSystemEnum.VACUUM = { type: 3, value: "VACUUM" }; IfcDistributionSystemEnum.VENT = { type: 3, value: "VENT" }; IfcDistributionSystemEnum.VENTILATION = { type: 3, value: "VENTILATION" }; IfcDistributionSystemEnum.WASTEWATER = { type: 3, value: "WASTEWATER" }; IfcDistributionSystemEnum.WATERSUPPLY = { type: 3, value: "WATERSUPPLY" }; IfcDistributionSystemEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcDistributionSystemEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC42.IfcDistributionSystemEnum = IfcDistributionSystemEnum; class IfcDocumentConfidentialityEnum { } IfcDocumentConfidentialityEnum.PUBLIC = { type: 3, value: "PUBLIC" }; IfcDocumentConfidentialityEnum.RESTRICTED = { type: 3, value: "RESTRICTED" }; IfcDocumentConfidentialityEnum.CONFIDENTIAL = { type: 3, value: "CONFIDENTIAL" }; IfcDocumentConfidentialityEnum.PERSONAL = { type: 3, value: "PERSONAL" }; IfcDocumentConfidentialityEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcDocumentConfidentialityEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC42.IfcDocumentConfidentialityEnum = IfcDocumentConfidentialityEnum; class IfcDocumentStatusEnum { } IfcDocumentStatusEnum.DRAFT = { type: 3, value: "DRAFT" }; IfcDocumentStatusEnum.FINALDRAFT = { type: 3, value: "FINALDRAFT" }; IfcDocumentStatusEnum.FINAL = { type: 3, value: "FINAL" }; IfcDocumentStatusEnum.REVISION = { type: 3, value: "REVISION" }; IfcDocumentStatusEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC42.IfcDocumentStatusEnum = IfcDocumentStatusEnum; class IfcDoorPanelOperationEnum { } IfcDoorPanelOperationEnum.SWINGING = { type: 3, value: "SWINGING" }; IfcDoorPanelOperationEnum.DOUBLE_ACTING = { type: 3, value: "DOUBLE_ACTING" }; IfcDoorPanelOperationEnum.SLIDING = { type: 3, value: "SLIDING" }; IfcDoorPanelOperationEnum.FOLDING = { type: 3, value: "FOLDING" }; IfcDoorPanelOperationEnum.REVOLVING = { type: 3, value: "REVOLVING" }; IfcDoorPanelOperationEnum.ROLLINGUP = { type: 3, value: "ROLLINGUP" }; IfcDoorPanelOperationEnum.FIXEDPANEL = { type: 3, value: "FIXEDPANEL" }; IfcDoorPanelOperationEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcDoorPanelOperationEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC42.IfcDoorPanelOperationEnum = IfcDoorPanelOperationEnum; class IfcDoorPanelPositionEnum { } IfcDoorPanelPositionEnum.LEFT = { type: 3, value: "LEFT" }; IfcDoorPanelPositionEnum.MIDDLE = { type: 3, value: "MIDDLE" }; IfcDoorPanelPositionEnum.RIGHT = { type: 3, value: "RIGHT" }; IfcDoorPanelPositionEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC42.IfcDoorPanelPositionEnum = IfcDoorPanelPositionEnum; class IfcDoorStyleConstructionEnum { } IfcDoorStyleConstructionEnum.ALUMINIUM = { type: 3, value: "ALUMINIUM" }; IfcDoorStyleConstructionEnum.HIGH_GRADE_STEEL = { type: 3, value: "HIGH_GRADE_STEEL" }; IfcDoorStyleConstructionEnum.STEEL = { type: 3, value: "STEEL" }; IfcDoorStyleConstructionEnum.WOOD = { type: 3, value: "WOOD" }; IfcDoorStyleConstructionEnum.ALUMINIUM_WOOD = { type: 3, value: "ALUMINIUM_WOOD" }; IfcDoorStyleConstructionEnum.ALUMINIUM_PLASTIC = { type: 3, value: "ALUMINIUM_PLASTIC" }; IfcDoorStyleConstructionEnum.PLASTIC = { type: 3, value: "PLASTIC" }; IfcDoorStyleConstructionEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcDoorStyleConstructionEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC42.IfcDoorStyleConstructionEnum = IfcDoorStyleConstructionEnum; class IfcDoorStyleOperationEnum { } IfcDoorStyleOperationEnum.SINGLE_SWING_LEFT = { type: 3, value: "SINGLE_SWING_LEFT" }; IfcDoorStyleOperationEnum.SINGLE_SWING_RIGHT = { type: 3, value: "SINGLE_SWING_RIGHT" }; IfcDoorStyleOperationEnum.DOUBLE_DOOR_SINGLE_SWING = { type: 3, value: "DOUBLE_DOOR_SINGLE_SWING" }; IfcDoorStyleOperationEnum.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT = { type: 3, value: "DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT" }; IfcDoorStyleOperationEnum.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT = { type: 3, value: "DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT" }; IfcDoorStyleOperationEnum.DOUBLE_SWING_LEFT = { type: 3, value: "DOUBLE_SWING_LEFT" }; IfcDoorStyleOperationEnum.DOUBLE_SWING_RIGHT = { type: 3, value: "DOUBLE_SWING_RIGHT" }; IfcDoorStyleOperationEnum.DOUBLE_DOOR_DOUBLE_SWING = { type: 3, value: "DOUBLE_DOOR_DOUBLE_SWING" }; IfcDoorStyleOperationEnum.SLIDING_TO_LEFT = { type: 3, value: "SLIDING_TO_LEFT" }; IfcDoorStyleOperationEnum.SLIDING_TO_RIGHT = { type: 3, value: "SLIDING_TO_RIGHT" }; IfcDoorStyleOperationEnum.DOUBLE_DOOR_SLIDING = { type: 3, value: "DOUBLE_DOOR_SLIDING" }; IfcDoorStyleOperationEnum.FOLDING_TO_LEFT = { type: 3, value: "FOLDING_TO_LEFT" }; IfcDoorStyleOperationEnum.FOLDING_TO_RIGHT = { type: 3, value: "FOLDING_TO_RIGHT" }; IfcDoorStyleOperationEnum.DOUBLE_DOOR_FOLDING = { type: 3, value: "DOUBLE_DOOR_FOLDING" }; IfcDoorStyleOperationEnum.REVOLVING = { type: 3, value: "REVOLVING" }; IfcDoorStyleOperationEnum.ROLLINGUP = { type: 3, value: "ROLLINGUP" }; IfcDoorStyleOperationEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcDoorStyleOperationEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC42.IfcDoorStyleOperationEnum = IfcDoorStyleOperationEnum; class IfcDoorTypeEnum { } IfcDoorTypeEnum.DOOR = { type: 3, value: "DOOR" }; IfcDoorTypeEnum.GATE = { type: 3, value: "GATE" }; IfcDoorTypeEnum.TRAPDOOR = { type: 3, value: "TRAPDOOR" }; IfcDoorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcDoorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC42.IfcDoorTypeEnum = IfcDoorTypeEnum; class IfcDoorTypeOperationEnum { } IfcDoorTypeOperationEnum.SINGLE_SWING_LEFT = { type: 3, value: "SINGLE_SWING_LEFT" }; IfcDoorTypeOperationEnum.SINGLE_SWING_RIGHT = { type: 3, value: "SINGLE_SWING_RIGHT" }; IfcDoorTypeOperationEnum.DOUBLE_DOOR_SINGLE_SWING = { type: 3, value: "DOUBLE_DOOR_SINGLE_SWING" }; IfcDoorTypeOperationEnum.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT = { type: 3, value: "DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT" }; IfcDoorTypeOperationEnum.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT = { type: 3, value: "DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT" }; IfcDoorTypeOperationEnum.DOUBLE_SWING_LEFT = { type: 3, value: "DOUBLE_SWING_LEFT" }; IfcDoorTypeOperationEnum.DOUBLE_SWING_RIGHT = { type: 3, value: "DOUBLE_SWING_RIGHT" }; IfcDoorTypeOperationEnum.DOUBLE_DOOR_DOUBLE_SWING = { type: 3, value: "DOUBLE_DOOR_DOUBLE_SWING" }; IfcDoorTypeOperationEnum.SLIDING_TO_LEFT = { type: 3, value: "SLIDING_TO_LEFT" }; IfcDoorTypeOperationEnum.SLIDING_TO_RIGHT = { type: 3, value: "SLIDING_TO_RIGHT" }; IfcDoorTypeOperationEnum.DOUBLE_DOOR_SLIDING = { type: 3, value: "DOUBLE_DOOR_SLIDING" }; IfcDoorTypeOperationEnum.FOLDING_TO_LEFT = { type: 3, value: "FOLDING_TO_LEFT" }; IfcDoorTypeOperationEnum.FOLDING_TO_RIGHT = { type: 3, value: "FOLDING_TO_RIGHT" }; IfcDoorTypeOperationEnum.DOUBLE_DOOR_FOLDING = { type: 3, value: "DOUBLE_DOOR_FOLDING" }; IfcDoorTypeOperationEnum.REVOLVING = { type: 3, value: "REVOLVING" }; IfcDoorTypeOperationEnum.ROLLINGUP = { type: 3, value: "ROLLINGUP" }; IfcDoorTypeOperationEnum.SWING_FIXED_LEFT = { type: 3, value: "SWING_FIXED_LEFT" }; IfcDoorTypeOperationEnum.SWING_FIXED_RIGHT = { type: 3, value: "SWING_FIXED_RIGHT" }; IfcDoorTypeOperationEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcDoorTypeOperationEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC42.IfcDoorTypeOperationEnum = IfcDoorTypeOperationEnum; class IfcDuctFittingTypeEnum { } IfcDuctFittingTypeEnum.BEND = { type: 3, value: "BEND" }; IfcDuctFittingTypeEnum.CONNECTOR = { type: 3, value: "CONNECTOR" }; IfcDuctFittingTypeEnum.ENTRY = { type: 3, value: "ENTRY" }; IfcDuctFittingTypeEnum.EXIT = { type: 3, value: "EXIT" }; IfcDuctFittingTypeEnum.JUNCTION = { type: 3, value: "JUNCTION" }; IfcDuctFittingTypeEnum.OBSTRUCTION = { type: 3, value: "OBSTRUCTION" }; IfcDuctFittingTypeEnum.TRANSITION = { type: 3, value: "TRANSITION" }; IfcDuctFittingTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcDuctFittingTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC42.IfcDuctFittingTypeEnum = IfcDuctFittingTypeEnum; class IfcDuctSegmentTypeEnum { } IfcDuctSegmentTypeEnum.RIGIDSEGMENT = { type: 3, value: "RIGIDSEGMENT" }; IfcDuctSegmentTypeEnum.FLEXIBLESEGMENT = { type: 3, value: "FLEXIBLESEGMENT" }; IfcDuctSegmentTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcDuctSegmentTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC42.IfcDuctSegmentTypeEnum = IfcDuctSegmentTypeEnum; class IfcDuctSilencerTypeEnum { } IfcDuctSilencerTypeEnum.FLATOVAL = { type: 3, value: "FLATOVAL" }; IfcDuctSilencerTypeEnum.RECTANGULAR = { type: 3, value: "RECTANGULAR" }; IfcDuctSilencerTypeEnum.ROUND = { type: 3, value: "ROUND" }; IfcDuctSilencerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcDuctSilencerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC42.IfcDuctSilencerTypeEnum = IfcDuctSilencerTypeEnum; class IfcElectricApplianceTypeEnum { } IfcElectricApplianceTypeEnum.DISHWASHER = { type: 3, value: "DISHWASHER" }; IfcElectricApplianceTypeEnum.ELECTRICCOOKER = { type: 3, value: "ELECTRICCOOKER" }; IfcElectricApplianceTypeEnum.FREESTANDINGELECTRICHEATER = { type: 3, value: "FREESTANDINGELECTRICHEATER" }; IfcElectricApplianceTypeEnum.FREESTANDINGFAN = { type: 3, value: "FREESTANDINGFAN" }; IfcElectricApplianceTypeEnum.FREESTANDINGWATERHEATER = { type: 3, value: "FREESTANDINGWATERHEATER" }; IfcElectricApplianceTypeEnum.FREESTANDINGWATERCOOLER = { type: 3, value: "FREESTANDINGWATERCOOLER" }; IfcElectricApplianceTypeEnum.FREEZER = { type: 3, value: "FREEZER" }; IfcElectricApplianceTypeEnum.FRIDGE_FREEZER = { type: 3, value: "FRIDGE_FREEZER" }; IfcElectricApplianceTypeEnum.HANDDRYER = { type: 3, value: "HANDDRYER" }; IfcElectricApplianceTypeEnum.KITCHENMACHINE = { type: 3, value: "KITCHENMACHINE" }; IfcElectricApplianceTypeEnum.MICROWAVE = { type: 3, value: "MICROWAVE" }; IfcElectricApplianceTypeEnum.PHOTOCOPIER = { type: 3, value: "PHOTOCOPIER" }; IfcElectricApplianceTypeEnum.REFRIGERATOR = { type: 3, value: "REFRIGERATOR" }; IfcElectricApplianceTypeEnum.TUMBLEDRYER = { type: 3, value: "TUMBLEDRYER" }; IfcElectricApplianceTypeEnum.VENDINGMACHINE = { type: 3, value: "VENDINGMACHINE" }; IfcElectricApplianceTypeEnum.WASHINGMACHINE = { type: 3, value: "WASHINGMACHINE" }; IfcElectricApplianceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcElectricApplianceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC42.IfcElectricApplianceTypeEnum = IfcElectricApplianceTypeEnum; class IfcElectricDistributionBoardTypeEnum { } IfcElectricDistributionBoardTypeEnum.CONSUMERUNIT = { type: 3, value: "CONSUMERUNIT" }; IfcElectricDistributionBoardTypeEnum.DISTRIBUTIONBOARD = { type: 3, value: "DISTRIBUTIONBOARD" }; IfcElectricDistributionBoardTypeEnum.MOTORCONTROLCENTRE = { type: 3, value: "MOTORCONTROLCENTRE" }; IfcElectricDistributionBoardTypeEnum.SWITCHBOARD = { type: 3, value: "SWITCHBOARD" }; IfcElectricDistributionBoardTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcElectricDistributionBoardTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC42.IfcElectricDistributionBoardTypeEnum = IfcElectricDistributionBoardTypeEnum; class IfcElectricFlowStorageDeviceTypeEnum { } IfcElectricFlowStorageDeviceTypeEnum.BATTERY = { type: 3, value: "BATTERY" }; IfcElectricFlowStorageDeviceTypeEnum.CAPACITORBANK = { type: 3, value: "CAPACITORBANK" }; IfcElectricFlowStorageDeviceTypeEnum.HARMONICFILTER = { type: 3, value: "HARMONICFILTER" }; IfcElectricFlowStorageDeviceTypeEnum.INDUCTORBANK = { type: 3, value: "INDUCTORBANK" }; IfcElectricFlowStorageDeviceTypeEnum.UPS = { type: 3, value: "UPS" }; IfcElectricFlowStorageDeviceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcElectricFlowStorageDeviceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC42.IfcElectricFlowStorageDeviceTypeEnum = IfcElectricFlowStorageDeviceTypeEnum; class IfcElectricGeneratorTypeEnum { } IfcElectricGeneratorTypeEnum.CHP = { type: 3, value: "CHP" }; IfcElectricGeneratorTypeEnum.ENGINEGENERATOR = { type: 3, value: "ENGINEGENERATOR" }; IfcElectricGeneratorTypeEnum.STANDALONE = { type: 3, value: "STANDALONE" }; IfcElectricGeneratorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcElectricGeneratorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC42.IfcElectricGeneratorTypeEnum = IfcElectricGeneratorTypeEnum; class IfcElectricMotorTypeEnum { } IfcElectricMotorTypeEnum.DC = { type: 3, value: "DC" }; IfcElectricMotorTypeEnum.INDUCTION = { type: 3, value: "INDUCTION" }; IfcElectricMotorTypeEnum.POLYPHASE = { type: 3, value: "POLYPHASE" }; IfcElectricMotorTypeEnum.RELUCTANCESYNCHRONOUS = { type: 3, value: "RELUCTANCESYNCHRONOUS" }; IfcElectricMotorTypeEnum.SYNCHRONOUS = { type: 3, value: "SYNCHRONOUS" }; IfcElectricMotorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcElectricMotorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC42.IfcElectricMotorTypeEnum = IfcElectricMotorTypeEnum; class IfcElectricTimeControlTypeEnum { } IfcElectricTimeControlTypeEnum.TIMECLOCK = { type: 3, value: "TIMECLOCK" }; IfcElectricTimeControlTypeEnum.TIMEDELAY = { type: 3, value: "TIMEDELAY" }; IfcElectricTimeControlTypeEnum.RELAY = { type: 3, value: "RELAY" }; IfcElectricTimeControlTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcElectricTimeControlTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC42.IfcElectricTimeControlTypeEnum = IfcElectricTimeControlTypeEnum; class IfcElementAssemblyTypeEnum { } IfcElementAssemblyTypeEnum.ACCESSORY_ASSEMBLY = { type: 3, value: "ACCESSORY_ASSEMBLY" }; IfcElementAssemblyTypeEnum.ARCH = { type: 3, value: "ARCH" }; IfcElementAssemblyTypeEnum.BEAM_GRID = { type: 3, value: "BEAM_GRID" }; IfcElementAssemblyTypeEnum.BRACED_FRAME = { type: 3, value: "BRACED_FRAME" }; IfcElementAssemblyTypeEnum.GIRDER = { type: 3, value: "GIRDER" }; IfcElementAssemblyTypeEnum.REINFORCEMENT_UNIT = { type: 3, value: "REINFORCEMENT_UNIT" }; IfcElementAssemblyTypeEnum.RIGID_FRAME = { type: 3, value: "RIGID_FRAME" }; IfcElementAssemblyTypeEnum.SLAB_FIELD = { type: 3, value: "SLAB_FIELD" }; IfcElementAssemblyTypeEnum.TRUSS = { type: 3, value: "TRUSS" }; IfcElementAssemblyTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcElementAssemblyTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC42.IfcElementAssemblyTypeEnum = IfcElementAssemblyTypeEnum; class IfcElementCompositionEnum { } IfcElementCompositionEnum.COMPLEX = { type: 3, value: "COMPLEX" }; IfcElementCompositionEnum.ELEMENT = { type: 3, value: "ELEMENT" }; IfcElementCompositionEnum.PARTIAL = { type: 3, value: "PARTIAL" }; IFC42.IfcElementCompositionEnum = IfcElementCompositionEnum; class IfcEngineTypeEnum { } IfcEngineTypeEnum.EXTERNALCOMBUSTION = { type: 3, value: "EXTERNALCOMBUSTION" }; IfcEngineTypeEnum.INTERNALCOMBUSTION = { type: 3, value: "INTERNALCOMBUSTION" }; IfcEngineTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcEngineTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC42.IfcEngineTypeEnum = IfcEngineTypeEnum; class IfcEvaporativeCoolerTypeEnum { } IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVERANDOMMEDIAAIRCOOLER = { type: 3, value: "DIRECTEVAPORATIVERANDOMMEDIAAIRCOOLER" }; IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVERIGIDMEDIAAIRCOOLER = { type: 3, value: "DIRECTEVAPORATIVERIGIDMEDIAAIRCOOLER" }; IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVESLINGERSPACKAGEDAIRCOOLER = { type: 3, value: "DIRECTEVAPORATIVESLINGERSPACKAGEDAIRCOOLER" }; IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVEPACKAGEDROTARYAIRCOOLER = { type: 3, value: "DIRECTEVAPORATIVEPACKAGEDROTARYAIRCOOLER" }; IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVEAIRWASHER = { type: 3, value: "DIRECTEVAPORATIVEAIRWASHER" }; IfcEvaporativeCoolerTypeEnum.INDIRECTEVAPORATIVEPACKAGEAIRCOOLER = { type: 3, value: "INDIRECTEVAPORATIVEPACKAGEAIRCOOLER" }; IfcEvaporativeCoolerTypeEnum.INDIRECTEVAPORATIVEWETCOIL = { type: 3, value: "INDIRECTEVAPORATIVEWETCOIL" }; IfcEvaporativeCoolerTypeEnum.INDIRECTEVAPORATIVECOOLINGTOWERORCOILCOOLER = { type: 3, value: "INDIRECTEVAPORATIVECOOLINGTOWERORCOILCOOLER" }; IfcEvaporativeCoolerTypeEnum.INDIRECTDIRECTCOMBINATION = { type: 3, value: "INDIRECTDIRECTCOMBINATION" }; IfcEvaporativeCoolerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcEvaporativeCoolerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC42.IfcEvaporativeCoolerTypeEnum = IfcEvaporativeCoolerTypeEnum; class IfcEvaporatorTypeEnum { } IfcEvaporatorTypeEnum.DIRECTEXPANSION = { type: 3, value: "DIRECTEXPANSION" }; IfcEvaporatorTypeEnum.DIRECTEXPANSIONSHELLANDTUBE = { type: 3, value: "DIRECTEXPANSIONSHELLANDTUBE" }; IfcEvaporatorTypeEnum.DIRECTEXPANSIONTUBEINTUBE = { type: 3, value: "DIRECTEXPANSIONTUBEINTUBE" }; IfcEvaporatorTypeEnum.DIRECTEXPANSIONBRAZEDPLATE = { type: 3, value: "DIRECTEXPANSIONBRAZEDPLATE" }; IfcEvaporatorTypeEnum.FLOODEDSHELLANDTUBE = { type: 3, value: "FLOODEDSHELLANDTUBE" }; IfcEvaporatorTypeEnum.SHELLANDCOIL = { type: 3, value: "SHELLANDCOIL" }; IfcEvaporatorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcEvaporatorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC42.IfcEvaporatorTypeEnum = IfcEvaporatorTypeEnum; class IfcEventTriggerTypeEnum { } IfcEventTriggerTypeEnum.EVENTRULE = { type: 3, value: "EVENTRULE" }; IfcEventTriggerTypeEnum.EVENTMESSAGE = { type: 3, value: "EVENTMESSAGE" }; IfcEventTriggerTypeEnum.EVENTTIME = { type: 3, value: "EVENTTIME" }; IfcEventTriggerTypeEnum.EVENTCOMPLEX = { type: 3, value: "EVENTCOMPLEX" }; IfcEventTriggerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcEventTriggerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC42.IfcEventTriggerTypeEnum = IfcEventTriggerTypeEnum; class IfcEventTypeEnum { } IfcEventTypeEnum.STARTEVENT = { type: 3, value: "STARTEVENT" }; IfcEventTypeEnum.ENDEVENT = { type: 3, value: "ENDEVENT" }; IfcEventTypeEnum.INTERMEDIATEEVENT = { type: 3, value: "INTERMEDIATEEVENT" }; IfcEventTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcEventTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC42.IfcEventTypeEnum = IfcEventTypeEnum; class IfcExternalSpatialElementTypeEnum { } IfcExternalSpatialElementTypeEnum.EXTERNAL = { type: 3, value: "EXTERNAL" }; IfcExternalSpatialElementTypeEnum.EXTERNAL_EARTH = { type: 3, value: "EXTERNAL_EARTH" }; IfcExternalSpatialElementTypeEnum.EXTERNAL_WATER = { type: 3, value: "EXTERNAL_WATER" }; IfcExternalSpatialElementTypeEnum.EXTERNAL_FIRE = { type: 3, value: "EXTERNAL_FIRE" }; IfcExternalSpatialElementTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcExternalSpatialElementTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC42.IfcExternalSpatialElementTypeEnum = IfcExternalSpatialElementTypeEnum; class IfcFanTypeEnum { } IfcFanTypeEnum.CENTRIFUGALFORWARDCURVED = { type: 3, value: "CENTRIFUGALFORWARDCURVED" }; IfcFanTypeEnum.CENTRIFUGALRADIAL = { type: 3, value: "CENTRIFUGALRADIAL" }; IfcFanTypeEnum.CENTRIFUGALBACKWARDINCLINEDCURVED = { type: 3, value: "CENTRIFUGALBACKWARDINCLINEDCURVED" }; IfcFanTypeEnum.CENTRIFUGALAIRFOIL = { type: 3, value: "CENTRIFUGALAIRFOIL" }; IfcFanTypeEnum.TUBEAXIAL = { type: 3, value: "TUBEAXIAL" }; IfcFanTypeEnum.VANEAXIAL = { type: 3, value: "VANEAXIAL" }; IfcFanTypeEnum.PROPELLORAXIAL = { type: 3, value: "PROPELLORAXIAL" }; IfcFanTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcFanTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC42.IfcFanTypeEnum = IfcFanTypeEnum; class IfcFastenerTypeEnum { } IfcFastenerTypeEnum.GLUE = { type: 3, value: "GLUE" }; IfcFastenerTypeEnum.MORTAR = { type: 3, value: "MORTAR" }; IfcFastenerTypeEnum.WELD = { type: 3, value: "WELD" }; IfcFastenerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcFastenerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC42.IfcFastenerTypeEnum = IfcFastenerTypeEnum; class IfcFilterTypeEnum { } IfcFilterTypeEnum.AIRPARTICLEFILTER = { type: 3, value: "AIRPARTICLEFILTER" }; IfcFilterTypeEnum.COMPRESSEDAIRFILTER = { type: 3, value: "COMPRESSEDAIRFILTER" }; IfcFilterTypeEnum.ODORFILTER = { type: 3, value: "ODORFILTER" }; IfcFilterTypeEnum.OILFILTER = { type: 3, value: "OILFILTER" }; IfcFilterTypeEnum.STRAINER = { type: 3, value: "STRAINER" }; IfcFilterTypeEnum.WATERFILTER = { type: 3, value: "WATERFILTER" }; IfcFilterTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcFilterTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC42.IfcFilterTypeEnum = IfcFilterTypeEnum; class IfcFireSuppressionTerminalTypeEnum { } IfcFireSuppressionTerminalTypeEnum.BREECHINGINLET = { type: 3, value: "BREECHINGINLET" }; IfcFireSuppressionTerminalTypeEnum.FIREHYDRANT = { type: 3, value: "FIREHYDRANT" }; IfcFireSuppressionTerminalTypeEnum.HOSEREEL = { type: 3, value: "HOSEREEL" }; IfcFireSuppressionTerminalTypeEnum.SPRINKLER = { type: 3, value: "SPRINKLER" }; IfcFireSuppressionTerminalTypeEnum.SPRINKLERDEFLECTOR = { type: 3, value: "SPRINKLERDEFLECTOR" }; IfcFireSuppressionTerminalTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcFireSuppressionTerminalTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC42.IfcFireSuppressionTerminalTypeEnum = IfcFireSuppressionTerminalTypeEnum; class IfcFlowDirectionEnum { } IfcFlowDirectionEnum.SOURCE = { type: 3, value: "SOURCE" }; IfcFlowDirectionEnum.SINK = { type: 3, value: "SINK" }; IfcFlowDirectionEnum.SOURCEANDSINK = { type: 3, value: "SOURCEANDSINK" }; IfcFlowDirectionEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC42.IfcFlowDirectionEnum = IfcFlowDirectionEnum; class IfcFlowInstrumentTypeEnum { } IfcFlowInstrumentTypeEnum.PRESSUREGAUGE = { type: 3, value: "PRESSUREGAUGE" }; IfcFlowInstrumentTypeEnum.THERMOMETER = { type: 3, value: "THERMOMETER" }; IfcFlowInstrumentTypeEnum.AMMETER = { type: 3, value: "AMMETER" }; IfcFlowInstrumentTypeEnum.FREQUENCYMETER = { type: 3, value: "FREQUENCYMETER" }; IfcFlowInstrumentTypeEnum.POWERFACTORMETER = { type: 3, value: "POWERFACTORMETER" }; IfcFlowInstrumentTypeEnum.PHASEANGLEMETER = { type: 3, value: "PHASEANGLEMETER" }; IfcFlowInstrumentTypeEnum.VOLTMETER_PEAK = { type: 3, value: "VOLTMETER_PEAK" }; IfcFlowInstrumentTypeEnum.VOLTMETER_RMS = { type: 3, value: "VOLTMETER_RMS" }; IfcFlowInstrumentTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcFlowInstrumentTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC42.IfcFlowInstrumentTypeEnum = IfcFlowInstrumentTypeEnum; class IfcFlowMeterTypeEnum { } IfcFlowMeterTypeEnum.ENERGYMETER = { type: 3, value: "ENERGYMETER" }; IfcFlowMeterTypeEnum.GASMETER = { type: 3, value: "GASMETER" }; IfcFlowMeterTypeEnum.OILMETER = { type: 3, value: "OILMETER" }; IfcFlowMeterTypeEnum.WATERMETER = { type: 3, value: "WATERMETER" }; IfcFlowMeterTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcFlowMeterTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC42.IfcFlowMeterTypeEnum = IfcFlowMeterTypeEnum; class IfcFootingTypeEnum { } IfcFootingTypeEnum.CAISSON_FOUNDATION = { type: 3, value: "CAISSON_FOUNDATION" }; IfcFootingTypeEnum.FOOTING_BEAM = { type: 3, value: "FOOTING_BEAM" }; IfcFootingTypeEnum.PAD_FOOTING = { type: 3, value: "PAD_FOOTING" }; IfcFootingTypeEnum.PILE_CAP = { type: 3, value: "PILE_CAP" }; IfcFootingTypeEnum.STRIP_FOOTING = { type: 3, value: "STRIP_FOOTING" }; IfcFootingTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcFootingTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC42.IfcFootingTypeEnum = IfcFootingTypeEnum; class IfcFurnitureTypeEnum { } IfcFurnitureTypeEnum.CHAIR = { type: 3, value: "CHAIR" }; IfcFurnitureTypeEnum.TABLE = { type: 3, value: "TABLE" }; IfcFurnitureTypeEnum.DESK = { type: 3, value: "DESK" }; IfcFurnitureTypeEnum.BED = { type: 3, value: "BED" }; IfcFurnitureTypeEnum.FILECABINET = { type: 3, value: "FILECABINET" }; IfcFurnitureTypeEnum.SHELF = { type: 3, value: "SHELF" }; IfcFurnitureTypeEnum.SOFA = { type: 3, value: "SOFA" }; IfcFurnitureTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcFurnitureTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC42.IfcFurnitureTypeEnum = IfcFurnitureTypeEnum; class IfcGeographicElementTypeEnum { } IfcGeographicElementTypeEnum.TERRAIN = { type: 3, value: "TERRAIN" }; IfcGeographicElementTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcGeographicElementTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC42.IfcGeographicElementTypeEnum = IfcGeographicElementTypeEnum; class IfcGeometricProjectionEnum { } IfcGeometricProjectionEnum.GRAPH_VIEW = { type: 3, value: "GRAPH_VIEW" }; IfcGeometricProjectionEnum.SKETCH_VIEW = { type: 3, value: "SKETCH_VIEW" }; IfcGeometricProjectionEnum.MODEL_VIEW = { type: 3, value: "MODEL_VIEW" }; IfcGeometricProjectionEnum.PLAN_VIEW = { type: 3, value: "PLAN_VIEW" }; IfcGeometricProjectionEnum.REFLECTED_PLAN_VIEW = { type: 3, value: "REFLECTED_PLAN_VIEW" }; IfcGeometricProjectionEnum.SECTION_VIEW = { type: 3, value: "SECTION_VIEW" }; IfcGeometricProjectionEnum.ELEVATION_VIEW = { type: 3, value: "ELEVATION_VIEW" }; IfcGeometricProjectionEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcGeometricProjectionEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC42.IfcGeometricProjectionEnum = IfcGeometricProjectionEnum; class IfcGlobalOrLocalEnum { } IfcGlobalOrLocalEnum.GLOBAL_COORDS = { type: 3, value: "GLOBAL_COORDS" }; IfcGlobalOrLocalEnum.LOCAL_COORDS = { type: 3, value: "LOCAL_COORDS" }; IFC42.IfcGlobalOrLocalEnum = IfcGlobalOrLocalEnum; class IfcGridTypeEnum { } IfcGridTypeEnum.RECTANGULAR = { type: 3, value: "RECTANGULAR" }; IfcGridTypeEnum.RADIAL = { type: 3, value: "RADIAL" }; IfcGridTypeEnum.TRIANGULAR = { type: 3, value: "TRIANGULAR" }; IfcGridTypeEnum.IRREGULAR = { type: 3, value: "IRREGULAR" }; IfcGridTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcGridTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC42.IfcGridTypeEnum = IfcGridTypeEnum; class IfcHeatExchangerTypeEnum { } IfcHeatExchangerTypeEnum.PLATE = { type: 3, value: "PLATE" }; IfcHeatExchangerTypeEnum.SHELLANDTUBE = { type: 3, value: "SHELLANDTUBE" }; IfcHeatExchangerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcHeatExchangerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC42.IfcHeatExchangerTypeEnum = IfcHeatExchangerTypeEnum; class IfcHumidifierTypeEnum { } IfcHumidifierTypeEnum.STEAMINJECTION = { type: 3, value: "STEAMINJECTION" }; IfcHumidifierTypeEnum.ADIABATICAIRWASHER = { type: 3, value: "ADIABATICAIRWASHER" }; IfcHumidifierTypeEnum.ADIABATICPAN = { type: 3, value: "ADIABATICPAN" }; IfcHumidifierTypeEnum.ADIABATICWETTEDELEMENT = { type: 3, value: "ADIABATICWETTEDELEMENT" }; IfcHumidifierTypeEnum.ADIABATICATOMIZING = { type: 3, value: "ADIABATICATOMIZING" }; IfcHumidifierTypeEnum.ADIABATICULTRASONIC = { type: 3, value: "ADIABATICULTRASONIC" }; IfcHumidifierTypeEnum.ADIABATICRIGIDMEDIA = { type: 3, value: "ADIABATICRIGIDMEDIA" }; IfcHumidifierTypeEnum.ADIABATICCOMPRESSEDAIRNOZZLE = { type: 3, value: "ADIABATICCOMPRESSEDAIRNOZZLE" }; IfcHumidifierTypeEnum.ASSISTEDELECTRIC = { type: 3, value: "ASSISTEDELECTRIC" }; IfcHumidifierTypeEnum.ASSISTEDNATURALGAS = { type: 3, value: "ASSISTEDNATURALGAS" }; IfcHumidifierTypeEnum.ASSISTEDPROPANE = { type: 3, value: "ASSISTEDPROPANE" }; IfcHumidifierTypeEnum.ASSISTEDBUTANE = { type: 3, value: "ASSISTEDBUTANE" }; IfcHumidifierTypeEnum.ASSISTEDSTEAM = { type: 3, value: "ASSISTEDSTEAM" }; IfcHumidifierTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcHumidifierTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC42.IfcHumidifierTypeEnum = IfcHumidifierTypeEnum; class IfcInterceptorTypeEnum { } IfcInterceptorTypeEnum.CYCLONIC = { type: 3, value: "CYCLONIC" }; IfcInterceptorTypeEnum.GREASE = { type: 3, value: "GREASE" }; IfcInterceptorTypeEnum.OIL = { type: 3, value: "OIL" }; IfcInterceptorTypeEnum.PETROL = { type: 3, value: "PETROL" }; IfcInterceptorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcInterceptorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC42.IfcInterceptorTypeEnum = IfcInterceptorTypeEnum; class IfcInternalOrExternalEnum { } IfcInternalOrExternalEnum.INTERNAL = { type: 3, value: "INTERNAL" }; IfcInternalOrExternalEnum.EXTERNAL = { type: 3, value: "EXTERNAL" }; IfcInternalOrExternalEnum.EXTERNAL_EARTH = { type: 3, value: "EXTERNAL_EARTH" }; IfcInternalOrExternalEnum.EXTERNAL_WATER = { type: 3, value: "EXTERNAL_WATER" }; IfcInternalOrExternalEnum.EXTERNAL_FIRE = { type: 3, value: "EXTERNAL_FIRE" }; IfcInternalOrExternalEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC42.IfcInternalOrExternalEnum = IfcInternalOrExternalEnum; class IfcInventoryTypeEnum { } IfcInventoryTypeEnum.ASSETINVENTORY = { type: 3, value: "ASSETINVENTORY" }; IfcInventoryTypeEnum.SPACEINVENTORY = { type: 3, value: "SPACEINVENTORY" }; IfcInventoryTypeEnum.FURNITUREINVENTORY = { type: 3, value: "FURNITUREINVENTORY" }; IfcInventoryTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcInventoryTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC42.IfcInventoryTypeEnum = IfcInventoryTypeEnum; class IfcJunctionBoxTypeEnum { } IfcJunctionBoxTypeEnum.DATA = { type: 3, value: "DATA" }; IfcJunctionBoxTypeEnum.POWER = { type: 3, value: "POWER" }; IfcJunctionBoxTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcJunctionBoxTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC42.IfcJunctionBoxTypeEnum = IfcJunctionBoxTypeEnum; class IfcKnotType { } IfcKnotType.UNIFORM_KNOTS = { type: 3, value: "UNIFORM_KNOTS" }; IfcKnotType.QUASI_UNIFORM_KNOTS = { type: 3, value: "QUASI_UNIFORM_KNOTS" }; IfcKnotType.PIECEWISE_BEZIER_KNOTS = { type: 3, value: "PIECEWISE_BEZIER_KNOTS" }; IfcKnotType.UNSPECIFIED = { type: 3, value: "UNSPECIFIED" }; IFC42.IfcKnotType = IfcKnotType; class IfcLaborResourceTypeEnum { } IfcLaborResourceTypeEnum.ADMINISTRATION = { type: 3, value: "ADMINISTRATION" }; IfcLaborResourceTypeEnum.CARPENTRY = { type: 3, value: "CARPENTRY" }; IfcLaborResourceTypeEnum.CLEANING = { type: 3, value: "CLEANING" }; IfcLaborResourceTypeEnum.CONCRETE = { type: 3, value: "CONCRETE" }; IfcLaborResourceTypeEnum.DRYWALL = { type: 3, value: "DRYWALL" }; IfcLaborResourceTypeEnum.ELECTRIC = { type: 3, value: "ELECTRIC" }; IfcLaborResourceTypeEnum.FINISHING = { type: 3, value: "FINISHING" }; IfcLaborResourceTypeEnum.FLOORING = { type: 3, value: "FLOORING" }; IfcLaborResourceTypeEnum.GENERAL = { type: 3, value: "GENERAL" }; IfcLaborResourceTypeEnum.HVAC = { type: 3, value: "HVAC" }; IfcLaborResourceTypeEnum.LANDSCAPING = { type: 3, value: "LANDSCAPING" }; IfcLaborResourceTypeEnum.MASONRY = { type: 3, value: "MASONRY" }; IfcLaborResourceTypeEnum.PAINTING = { type: 3, value: "PAINTING" }; IfcLaborResourceTypeEnum.PAVING = { type: 3, value: "PAVING" }; IfcLaborResourceTypeEnum.PLUMBING = { type: 3, value: "PLUMBING" }; IfcLaborResourceTypeEnum.ROOFING = { type: 3, value: "ROOFING" }; IfcLaborResourceTypeEnum.SITEGRADING = { type: 3, value: "SITEGRADING" }; IfcLaborResourceTypeEnum.STEELWORK = { type: 3, value: "STEELWORK" }; IfcLaborResourceTypeEnum.SURVEYING = { type: 3, value: "SURVEYING" }; IfcLaborResourceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcLaborResourceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC42.IfcLaborResourceTypeEnum = IfcLaborResourceTypeEnum; class IfcLampTypeEnum { } IfcLampTypeEnum.COMPACTFLUORESCENT = { type: 3, value: "COMPACTFLUORESCENT" }; IfcLampTypeEnum.FLUORESCENT = { type: 3, value: "FLUORESCENT" }; IfcLampTypeEnum.HALOGEN = { type: 3, value: "HALOGEN" }; IfcLampTypeEnum.HIGHPRESSUREMERCURY = { type: 3, value: "HIGHPRESSUREMERCURY" }; IfcLampTypeEnum.HIGHPRESSURESODIUM = { type: 3, value: "HIGHPRESSURESODIUM" }; IfcLampTypeEnum.LED = { type: 3, value: "LED" }; IfcLampTypeEnum.METALHALIDE = { type: 3, value: "METALHALIDE" }; IfcLampTypeEnum.OLED = { type: 3, value: "OLED" }; IfcLampTypeEnum.TUNGSTENFILAMENT = { type: 3, value: "TUNGSTENFILAMENT" }; IfcLampTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcLampTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC42.IfcLampTypeEnum = IfcLampTypeEnum; class IfcLayerSetDirectionEnum { } IfcLayerSetDirectionEnum.AXIS1 = { type: 3, value: "AXIS1" }; IfcLayerSetDirectionEnum.AXIS2 = { type: 3, value: "AXIS2" }; IfcLayerSetDirectionEnum.AXIS3 = { type: 3, value: "AXIS3" }; IFC42.IfcLayerSetDirectionEnum = IfcLayerSetDirectionEnum; class IfcLightDistributionCurveEnum { } IfcLightDistributionCurveEnum.TYPE_A = { type: 3, value: "TYPE_A" }; IfcLightDistributionCurveEnum.TYPE_B = { type: 3, value: "TYPE_B" }; IfcLightDistributionCurveEnum.TYPE_C = { type: 3, value: "TYPE_C" }; IfcLightDistributionCurveEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC42.IfcLightDistributionCurveEnum = IfcLightDistributionCurveEnum; class IfcLightEmissionSourceEnum { } IfcLightEmissionSourceEnum.COMPACTFLUORESCENT = { type: 3, value: "COMPACTFLUORESCENT" }; IfcLightEmissionSourceEnum.FLUORESCENT = { type: 3, value: "FLUORESCENT" }; IfcLightEmissionSourceEnum.HIGHPRESSUREMERCURY = { type: 3, value: "HIGHPRESSUREMERCURY" }; IfcLightEmissionSourceEnum.HIGHPRESSURESODIUM = { type: 3, value: "HIGHPRESSURESODIUM" }; IfcLightEmissionSourceEnum.LIGHTEMITTINGDIODE = { type: 3, value: "LIGHTEMITTINGDIODE" }; IfcLightEmissionSourceEnum.LOWPRESSURESODIUM = { type: 3, value: "LOWPRESSURESODIUM" }; IfcLightEmissionSourceEnum.LOWVOLTAGEHALOGEN = { type: 3, value: "LOWVOLTAGEHALOGEN" }; IfcLightEmissionSourceEnum.MAINVOLTAGEHALOGEN = { type: 3, value: "MAINVOLTAGEHALOGEN" }; IfcLightEmissionSourceEnum.METALHALIDE = { type: 3, value: "METALHALIDE" }; IfcLightEmissionSourceEnum.TUNGSTENFILAMENT = { type: 3, value: "TUNGSTENFILAMENT" }; IfcLightEmissionSourceEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC42.IfcLightEmissionSourceEnum = IfcLightEmissionSourceEnum; class IfcLightFixtureTypeEnum { } IfcLightFixtureTypeEnum.POINTSOURCE = { type: 3, value: "POINTSOURCE" }; IfcLightFixtureTypeEnum.DIRECTIONSOURCE = { type: 3, value: "DIRECTIONSOURCE" }; IfcLightFixtureTypeEnum.SECURITYLIGHTING = { type: 3, value: "SECURITYLIGHTING" }; IfcLightFixtureTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcLightFixtureTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC42.IfcLightFixtureTypeEnum = IfcLightFixtureTypeEnum; class IfcLoadGroupTypeEnum { } IfcLoadGroupTypeEnum.LOAD_GROUP = { type: 3, value: "LOAD_GROUP" }; IfcLoadGroupTypeEnum.LOAD_CASE = { type: 3, value: "LOAD_CASE" }; IfcLoadGroupTypeEnum.LOAD_COMBINATION = { type: 3, value: "LOAD_COMBINATION" }; IfcLoadGroupTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcLoadGroupTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC42.IfcLoadGroupTypeEnum = IfcLoadGroupTypeEnum; class IfcLogicalOperatorEnum { } IfcLogicalOperatorEnum.LOGICALAND = { type: 3, value: "LOGICALAND" }; IfcLogicalOperatorEnum.LOGICALOR = { type: 3, value: "LOGICALOR" }; IfcLogicalOperatorEnum.LOGICALXOR = { type: 3, value: "LOGICALXOR" }; IfcLogicalOperatorEnum.LOGICALNOTAND = { type: 3, value: "LOGICALNOTAND" }; IfcLogicalOperatorEnum.LOGICALNOTOR = { type: 3, value: "LOGICALNOTOR" }; IFC42.IfcLogicalOperatorEnum = IfcLogicalOperatorEnum; class IfcMechanicalFastenerTypeEnum { } IfcMechanicalFastenerTypeEnum.ANCHORBOLT = { type: 3, value: "ANCHORBOLT" }; IfcMechanicalFastenerTypeEnum.BOLT = { type: 3, value: "BOLT" }; IfcMechanicalFastenerTypeEnum.DOWEL = { type: 3, value: "DOWEL" }; IfcMechanicalFastenerTypeEnum.NAIL = { type: 3, value: "NAIL" }; IfcMechanicalFastenerTypeEnum.NAILPLATE = { type: 3, value: "NAILPLATE" }; IfcMechanicalFastenerTypeEnum.RIVET = { type: 3, value: "RIVET" }; IfcMechanicalFastenerTypeEnum.SCREW = { type: 3, value: "SCREW" }; IfcMechanicalFastenerTypeEnum.SHEARCONNECTOR = { type: 3, value: "SHEARCONNECTOR" }; IfcMechanicalFastenerTypeEnum.STAPLE = { type: 3, value: "STAPLE" }; IfcMechanicalFastenerTypeEnum.STUDSHEARCONNECTOR = { type: 3, value: "STUDSHEARCONNECTOR" }; IfcMechanicalFastenerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcMechanicalFastenerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC42.IfcMechanicalFastenerTypeEnum = IfcMechanicalFastenerTypeEnum; class IfcMedicalDeviceTypeEnum { } IfcMedicalDeviceTypeEnum.AIRSTATION = { type: 3, value: "AIRSTATION" }; IfcMedicalDeviceTypeEnum.FEEDAIRUNIT = { type: 3, value: "FEEDAIRUNIT" }; IfcMedicalDeviceTypeEnum.OXYGENGENERATOR = { type: 3, value: "OXYGENGENERATOR" }; IfcMedicalDeviceTypeEnum.OXYGENPLANT = { type: 3, value: "OXYGENPLANT" }; IfcMedicalDeviceTypeEnum.VACUUMSTATION = { type: 3, value: "VACUUMSTATION" }; IfcMedicalDeviceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcMedicalDeviceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC42.IfcMedicalDeviceTypeEnum = IfcMedicalDeviceTypeEnum; class IfcMemberTypeEnum { } IfcMemberTypeEnum.BRACE = { type: 3, value: "BRACE" }; IfcMemberTypeEnum.CHORD = { type: 3, value: "CHORD" }; IfcMemberTypeEnum.COLLAR = { type: 3, value: "COLLAR" }; IfcMemberTypeEnum.MEMBER = { type: 3, value: "MEMBER" }; IfcMemberTypeEnum.MULLION = { type: 3, value: "MULLION" }; IfcMemberTypeEnum.PLATE = { type: 3, value: "PLATE" }; IfcMemberTypeEnum.POST = { type: 3, value: "POST" }; IfcMemberTypeEnum.PURLIN = { type: 3, value: "PURLIN" }; IfcMemberTypeEnum.RAFTER = { type: 3, value: "RAFTER" }; IfcMemberTypeEnum.STRINGER = { type: 3, value: "STRINGER" }; IfcMemberTypeEnum.STRUT = { type: 3, value: "STRUT" }; IfcMemberTypeEnum.STUD = { type: 3, value: "STUD" }; IfcMemberTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcMemberTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC42.IfcMemberTypeEnum = IfcMemberTypeEnum; class IfcMotorConnectionTypeEnum { } IfcMotorConnectionTypeEnum.BELTDRIVE = { type: 3, value: "BELTDRIVE" }; IfcMotorConnectionTypeEnum.COUPLING = { type: 3, value: "COUPLING" }; IfcMotorConnectionTypeEnum.DIRECTDRIVE = { type: 3, value: "DIRECTDRIVE" }; IfcMotorConnectionTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcMotorConnectionTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC42.IfcMotorConnectionTypeEnum = IfcMotorConnectionTypeEnum; class IfcNullStyle { } IfcNullStyle.NULL = { type: 3, value: "NULL" }; IFC42.IfcNullStyle = IfcNullStyle; class IfcObjectTypeEnum { } IfcObjectTypeEnum.PRODUCT = { type: 3, value: "PRODUCT" }; IfcObjectTypeEnum.PROCESS = { type: 3, value: "PROCESS" }; IfcObjectTypeEnum.CONTROL = { type: 3, value: "CONTROL" }; IfcObjectTypeEnum.RESOURCE = { type: 3, value: "RESOURCE" }; IfcObjectTypeEnum.ACTOR = { type: 3, value: "ACTOR" }; IfcObjectTypeEnum.GROUP = { type: 3, value: "GROUP" }; IfcObjectTypeEnum.PROJECT = { type: 3, value: "PROJECT" }; IfcObjectTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC42.IfcObjectTypeEnum = IfcObjectTypeEnum; class IfcObjectiveEnum { } IfcObjectiveEnum.CODECOMPLIANCE = { type: 3, value: "CODECOMPLIANCE" }; IfcObjectiveEnum.CODEWAIVER = { type: 3, value: "CODEWAIVER" }; IfcObjectiveEnum.DESIGNINTENT = { type: 3, value: "DESIGNINTENT" }; IfcObjectiveEnum.EXTERNAL = { type: 3, value: "EXTERNAL" }; IfcObjectiveEnum.HEALTHANDSAFETY = { type: 3, value: "HEALTHANDSAFETY" }; IfcObjectiveEnum.MERGECONFLICT = { type: 3, value: "MERGECONFLICT" }; IfcObjectiveEnum.MODELVIEW = { type: 3, value: "MODELVIEW" }; IfcObjectiveEnum.PARAMETER = { type: 3, value: "PARAMETER" }; IfcObjectiveEnum.REQUIREMENT = { type: 3, value: "REQUIREMENT" }; IfcObjectiveEnum.SPECIFICATION = { type: 3, value: "SPECIFICATION" }; IfcObjectiveEnum.TRIGGERCONDITION = { type: 3, value: "TRIGGERCONDITION" }; IfcObjectiveEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcObjectiveEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC42.IfcObjectiveEnum = IfcObjectiveEnum; class IfcOccupantTypeEnum { } IfcOccupantTypeEnum.ASSIGNEE = { type: 3, value: "ASSIGNEE" }; IfcOccupantTypeEnum.ASSIGNOR = { type: 3, value: "ASSIGNOR" }; IfcOccupantTypeEnum.LESSEE = { type: 3, value: "LESSEE" }; IfcOccupantTypeEnum.LESSOR = { type: 3, value: "LESSOR" }; IfcOccupantTypeEnum.LETTINGAGENT = { type: 3, value: "LETTINGAGENT" }; IfcOccupantTypeEnum.OWNER = { type: 3, value: "OWNER" }; IfcOccupantTypeEnum.TENANT = { type: 3, value: "TENANT" }; IfcOccupantTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcOccupantTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC42.IfcOccupantTypeEnum = IfcOccupantTypeEnum; class IfcOpeningElementTypeEnum { } IfcOpeningElementTypeEnum.OPENING = { type: 3, value: "OPENING" }; IfcOpeningElementTypeEnum.RECESS = { type: 3, value: "RECESS" }; IfcOpeningElementTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcOpeningElementTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC42.IfcOpeningElementTypeEnum = IfcOpeningElementTypeEnum; class IfcOutletTypeEnum { } IfcOutletTypeEnum.AUDIOVISUALOUTLET = { type: 3, value: "AUDIOVISUALOUTLET" }; IfcOutletTypeEnum.COMMUNICATIONSOUTLET = { type: 3, value: "COMMUNICATIONSOUTLET" }; IfcOutletTypeEnum.POWEROUTLET = { type: 3, value: "POWEROUTLET" }; IfcOutletTypeEnum.DATAOUTLET = { type: 3, value: "DATAOUTLET" }; IfcOutletTypeEnum.TELEPHONEOUTLET = { type: 3, value: "TELEPHONEOUTLET" }; IfcOutletTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcOutletTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC42.IfcOutletTypeEnum = IfcOutletTypeEnum; class IfcPerformanceHistoryTypeEnum { } IfcPerformanceHistoryTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcPerformanceHistoryTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC42.IfcPerformanceHistoryTypeEnum = IfcPerformanceHistoryTypeEnum; class IfcPermeableCoveringOperationEnum { } IfcPermeableCoveringOperationEnum.GRILL = { type: 3, value: "GRILL" }; IfcPermeableCoveringOperationEnum.LOUVER = { type: 3, value: "LOUVER" }; IfcPermeableCoveringOperationEnum.SCREEN = { type: 3, value: "SCREEN" }; IfcPermeableCoveringOperationEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcPermeableCoveringOperationEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC42.IfcPermeableCoveringOperationEnum = IfcPermeableCoveringOperationEnum; class IfcPermitTypeEnum { } IfcPermitTypeEnum.ACCESS = { type: 3, value: "ACCESS" }; IfcPermitTypeEnum.BUILDING = { type: 3, value: "BUILDING" }; IfcPermitTypeEnum.WORK = { type: 3, value: "WORK" }; IfcPermitTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcPermitTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC42.IfcPermitTypeEnum = IfcPermitTypeEnum; class IfcPhysicalOrVirtualEnum { } IfcPhysicalOrVirtualEnum.PHYSICAL = { type: 3, value: "PHYSICAL" }; IfcPhysicalOrVirtualEnum.VIRTUAL = { type: 3, value: "VIRTUAL" }; IfcPhysicalOrVirtualEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC42.IfcPhysicalOrVirtualEnum = IfcPhysicalOrVirtualEnum; class IfcPileConstructionEnum { } IfcPileConstructionEnum.CAST_IN_PLACE = { type: 3, value: "CAST_IN_PLACE" }; IfcPileConstructionEnum.COMPOSITE = { type: 3, value: "COMPOSITE" }; IfcPileConstructionEnum.PRECAST_CONCRETE = { type: 3, value: "PRECAST_CONCRETE" }; IfcPileConstructionEnum.PREFAB_STEEL = { type: 3, value: "PREFAB_STEEL" }; IfcPileConstructionEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcPileConstructionEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC42.IfcPileConstructionEnum = IfcPileConstructionEnum; class IfcPileTypeEnum { } IfcPileTypeEnum.BORED = { type: 3, value: "BORED" }; IfcPileTypeEnum.DRIVEN = { type: 3, value: "DRIVEN" }; IfcPileTypeEnum.JETGROUTING = { type: 3, value: "JETGROUTING" }; IfcPileTypeEnum.COHESION = { type: 3, value: "COHESION" }; IfcPileTypeEnum.FRICTION = { type: 3, value: "FRICTION" }; IfcPileTypeEnum.SUPPORT = { type: 3, value: "SUPPORT" }; IfcPileTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcPileTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC42.IfcPileTypeEnum = IfcPileTypeEnum; class IfcPipeFittingTypeEnum { } IfcPipeFittingTypeEnum.BEND = { type: 3, value: "BEND" }; IfcPipeFittingTypeEnum.CONNECTOR = { type: 3, value: "CONNECTOR" }; IfcPipeFittingTypeEnum.ENTRY = { type: 3, value: "ENTRY" }; IfcPipeFittingTypeEnum.EXIT = { type: 3, value: "EXIT" }; IfcPipeFittingTypeEnum.JUNCTION = { type: 3, value: "JUNCTION" }; IfcPipeFittingTypeEnum.OBSTRUCTION = { type: 3, value: "OBSTRUCTION" }; IfcPipeFittingTypeEnum.TRANSITION = { type: 3, value: "TRANSITION" }; IfcPipeFittingTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcPipeFittingTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC42.IfcPipeFittingTypeEnum = IfcPipeFittingTypeEnum; class IfcPipeSegmentTypeEnum { } IfcPipeSegmentTypeEnum.CULVERT = { type: 3, value: "CULVERT" }; IfcPipeSegmentTypeEnum.FLEXIBLESEGMENT = { type: 3, value: "FLEXIBLESEGMENT" }; IfcPipeSegmentTypeEnum.RIGIDSEGMENT = { type: 3, value: "RIGIDSEGMENT" }; IfcPipeSegmentTypeEnum.GUTTER = { type: 3, value: "GUTTER" }; IfcPipeSegmentTypeEnum.SPOOL = { type: 3, value: "SPOOL" }; IfcPipeSegmentTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcPipeSegmentTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC42.IfcPipeSegmentTypeEnum = IfcPipeSegmentTypeEnum; class IfcPlateTypeEnum { } IfcPlateTypeEnum.CURTAIN_PANEL = { type: 3, value: "CURTAIN_PANEL" }; IfcPlateTypeEnum.SHEET = { type: 3, value: "SHEET" }; IfcPlateTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcPlateTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC42.IfcPlateTypeEnum = IfcPlateTypeEnum; class IfcPreferredSurfaceCurveRepresentation { } IfcPreferredSurfaceCurveRepresentation.CURVE3D = { type: 3, value: "CURVE3D" }; IfcPreferredSurfaceCurveRepresentation.PCURVE_S1 = { type: 3, value: "PCURVE_S1" }; IfcPreferredSurfaceCurveRepresentation.PCURVE_S2 = { type: 3, value: "PCURVE_S2" }; IFC42.IfcPreferredSurfaceCurveRepresentation = IfcPreferredSurfaceCurveRepresentation; class IfcProcedureTypeEnum { } IfcProcedureTypeEnum.ADVICE_CAUTION = { type: 3, value: "ADVICE_CAUTION" }; IfcProcedureTypeEnum.ADVICE_NOTE = { type: 3, value: "ADVICE_NOTE" }; IfcProcedureTypeEnum.ADVICE_WARNING = { type: 3, value: "ADVICE_WARNING" }; IfcProcedureTypeEnum.CALIBRATION = { type: 3, value: "CALIBRATION" }; IfcProcedureTypeEnum.DIAGNOSTIC = { type: 3, value: "DIAGNOSTIC" }; IfcProcedureTypeEnum.SHUTDOWN = { type: 3, value: "SHUTDOWN" }; IfcProcedureTypeEnum.STARTUP = { type: 3, value: "STARTUP" }; IfcProcedureTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcProcedureTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC42.IfcProcedureTypeEnum = IfcProcedureTypeEnum; class IfcProfileTypeEnum { } IfcProfileTypeEnum.CURVE = { type: 3, value: "CURVE" }; IfcProfileTypeEnum.AREA = { type: 3, value: "AREA" }; IFC42.IfcProfileTypeEnum = IfcProfileTypeEnum; class IfcProjectOrderTypeEnum { } IfcProjectOrderTypeEnum.CHANGEORDER = { type: 3, value: "CHANGEORDER" }; IfcProjectOrderTypeEnum.MAINTENANCEWORKORDER = { type: 3, value: "MAINTENANCEWORKORDER" }; IfcProjectOrderTypeEnum.MOVEORDER = { type: 3, value: "MOVEORDER" }; IfcProjectOrderTypeEnum.PURCHASEORDER = { type: 3, value: "PURCHASEORDER" }; IfcProjectOrderTypeEnum.WORKORDER = { type: 3, value: "WORKORDER" }; IfcProjectOrderTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcProjectOrderTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC42.IfcProjectOrderTypeEnum = IfcProjectOrderTypeEnum; class IfcProjectedOrTrueLengthEnum { } IfcProjectedOrTrueLengthEnum.PROJECTED_LENGTH = { type: 3, value: "PROJECTED_LENGTH" }; IfcProjectedOrTrueLengthEnum.TRUE_LENGTH = { type: 3, value: "TRUE_LENGTH" }; IFC42.IfcProjectedOrTrueLengthEnum = IfcProjectedOrTrueLengthEnum; class IfcProjectionElementTypeEnum { } IfcProjectionElementTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcProjectionElementTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC42.IfcProjectionElementTypeEnum = IfcProjectionElementTypeEnum; class IfcPropertySetTemplateTypeEnum { } IfcPropertySetTemplateTypeEnum.PSET_TYPEDRIVENONLY = { type: 3, value: "PSET_TYPEDRIVENONLY" }; IfcPropertySetTemplateTypeEnum.PSET_TYPEDRIVENOVERRIDE = { type: 3, value: "PSET_TYPEDRIVENOVERRIDE" }; IfcPropertySetTemplateTypeEnum.PSET_OCCURRENCEDRIVEN = { type: 3, value: "PSET_OCCURRENCEDRIVEN" }; IfcPropertySetTemplateTypeEnum.PSET_PERFORMANCEDRIVEN = { type: 3, value: "PSET_PERFORMANCEDRIVEN" }; IfcPropertySetTemplateTypeEnum.QTO_TYPEDRIVENONLY = { type: 3, value: "QTO_TYPEDRIVENONLY" }; IfcPropertySetTemplateTypeEnum.QTO_TYPEDRIVENOVERRIDE = { type: 3, value: "QTO_TYPEDRIVENOVERRIDE" }; IfcPropertySetTemplateTypeEnum.QTO_OCCURRENCEDRIVEN = { type: 3, value: "QTO_OCCURRENCEDRIVEN" }; IfcPropertySetTemplateTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC42.IfcPropertySetTemplateTypeEnum = IfcPropertySetTemplateTypeEnum; class IfcProtectiveDeviceTrippingUnitTypeEnum { } IfcProtectiveDeviceTrippingUnitTypeEnum.ELECTRONIC = { type: 3, value: "ELECTRONIC" }; IfcProtectiveDeviceTrippingUnitTypeEnum.ELECTROMAGNETIC = { type: 3, value: "ELECTROMAGNETIC" }; IfcProtectiveDeviceTrippingUnitTypeEnum.RESIDUALCURRENT = { type: 3, value: "RESIDUALCURRENT" }; IfcProtectiveDeviceTrippingUnitTypeEnum.THERMAL = { type: 3, value: "THERMAL" }; IfcProtectiveDeviceTrippingUnitTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcProtectiveDeviceTrippingUnitTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC42.IfcProtectiveDeviceTrippingUnitTypeEnum = IfcProtectiveDeviceTrippingUnitTypeEnum; class IfcProtectiveDeviceTypeEnum { } IfcProtectiveDeviceTypeEnum.CIRCUITBREAKER = { type: 3, value: "CIRCUITBREAKER" }; IfcProtectiveDeviceTypeEnum.EARTHLEAKAGECIRCUITBREAKER = { type: 3, value: "EARTHLEAKAGECIRCUITBREAKER" }; IfcProtectiveDeviceTypeEnum.EARTHINGSWITCH = { type: 3, value: "EARTHINGSWITCH" }; IfcProtectiveDeviceTypeEnum.FUSEDISCONNECTOR = { type: 3, value: "FUSEDISCONNECTOR" }; IfcProtectiveDeviceTypeEnum.RESIDUALCURRENTCIRCUITBREAKER = { type: 3, value: "RESIDUALCURRENTCIRCUITBREAKER" }; IfcProtectiveDeviceTypeEnum.RESIDUALCURRENTSWITCH = { type: 3, value: "RESIDUALCURRENTSWITCH" }; IfcProtectiveDeviceTypeEnum.VARISTOR = { type: 3, value: "VARISTOR" }; IfcProtectiveDeviceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcProtectiveDeviceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC42.IfcProtectiveDeviceTypeEnum = IfcProtectiveDeviceTypeEnum; class IfcPumpTypeEnum { } IfcPumpTypeEnum.CIRCULATOR = { type: 3, value: "CIRCULATOR" }; IfcPumpTypeEnum.ENDSUCTION = { type: 3, value: "ENDSUCTION" }; IfcPumpTypeEnum.SPLITCASE = { type: 3, value: "SPLITCASE" }; IfcPumpTypeEnum.SUBMERSIBLEPUMP = { type: 3, value: "SUBMERSIBLEPUMP" }; IfcPumpTypeEnum.SUMPPUMP = { type: 3, value: "SUMPPUMP" }; IfcPumpTypeEnum.VERTICALINLINE = { type: 3, value: "VERTICALINLINE" }; IfcPumpTypeEnum.VERTICALTURBINE = { type: 3, value: "VERTICALTURBINE" }; IfcPumpTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcPumpTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC42.IfcPumpTypeEnum = IfcPumpTypeEnum; class IfcRailingTypeEnum { } IfcRailingTypeEnum.HANDRAIL = { type: 3, value: "HANDRAIL" }; IfcRailingTypeEnum.GUARDRAIL = { type: 3, value: "GUARDRAIL" }; IfcRailingTypeEnum.BALUSTRADE = { type: 3, value: "BALUSTRADE" }; IfcRailingTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcRailingTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC42.IfcRailingTypeEnum = IfcRailingTypeEnum; class IfcRampFlightTypeEnum { } IfcRampFlightTypeEnum.STRAIGHT = { type: 3, value: "STRAIGHT" }; IfcRampFlightTypeEnum.SPIRAL = { type: 3, value: "SPIRAL" }; IfcRampFlightTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcRampFlightTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC42.IfcRampFlightTypeEnum = IfcRampFlightTypeEnum; class IfcRampTypeEnum { } IfcRampTypeEnum.STRAIGHT_RUN_RAMP = { type: 3, value: "STRAIGHT_RUN_RAMP" }; IfcRampTypeEnum.TWO_STRAIGHT_RUN_RAMP = { type: 3, value: "TWO_STRAIGHT_RUN_RAMP" }; IfcRampTypeEnum.QUARTER_TURN_RAMP = { type: 3, value: "QUARTER_TURN_RAMP" }; IfcRampTypeEnum.TWO_QUARTER_TURN_RAMP = { type: 3, value: "TWO_QUARTER_TURN_RAMP" }; IfcRampTypeEnum.HALF_TURN_RAMP = { type: 3, value: "HALF_TURN_RAMP" }; IfcRampTypeEnum.SPIRAL_RAMP = { type: 3, value: "SPIRAL_RAMP" }; IfcRampTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcRampTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC42.IfcRampTypeEnum = IfcRampTypeEnum; class IfcRecurrenceTypeEnum { } IfcRecurrenceTypeEnum.DAILY = { type: 3, value: "DAILY" }; IfcRecurrenceTypeEnum.WEEKLY = { type: 3, value: "WEEKLY" }; IfcRecurrenceTypeEnum.MONTHLY_BY_DAY_OF_MONTH = { type: 3, value: "MONTHLY_BY_DAY_OF_MONTH" }; IfcRecurrenceTypeEnum.MONTHLY_BY_POSITION = { type: 3, value: "MONTHLY_BY_POSITION" }; IfcRecurrenceTypeEnum.BY_DAY_COUNT = { type: 3, value: "BY_DAY_COUNT" }; IfcRecurrenceTypeEnum.BY_WEEKDAY_COUNT = { type: 3, value: "BY_WEEKDAY_COUNT" }; IfcRecurrenceTypeEnum.YEARLY_BY_DAY_OF_MONTH = { type: 3, value: "YEARLY_BY_DAY_OF_MONTH" }; IfcRecurrenceTypeEnum.YEARLY_BY_POSITION = { type: 3, value: "YEARLY_BY_POSITION" }; IFC42.IfcRecurrenceTypeEnum = IfcRecurrenceTypeEnum; class IfcReflectanceMethodEnum { } IfcReflectanceMethodEnum.BLINN = { type: 3, value: "BLINN" }; IfcReflectanceMethodEnum.FLAT = { type: 3, value: "FLAT" }; IfcReflectanceMethodEnum.GLASS = { type: 3, value: "GLASS" }; IfcReflectanceMethodEnum.MATT = { type: 3, value: "MATT" }; IfcReflectanceMethodEnum.METAL = { type: 3, value: "METAL" }; IfcReflectanceMethodEnum.MIRROR = { type: 3, value: "MIRROR" }; IfcReflectanceMethodEnum.PHONG = { type: 3, value: "PHONG" }; IfcReflectanceMethodEnum.PLASTIC = { type: 3, value: "PLASTIC" }; IfcReflectanceMethodEnum.STRAUSS = { type: 3, value: "STRAUSS" }; IfcReflectanceMethodEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC42.IfcReflectanceMethodEnum = IfcReflectanceMethodEnum; class IfcReinforcingBarRoleEnum { } IfcReinforcingBarRoleEnum.MAIN = { type: 3, value: "MAIN" }; IfcReinforcingBarRoleEnum.SHEAR = { type: 3, value: "SHEAR" }; IfcReinforcingBarRoleEnum.LIGATURE = { type: 3, value: "LIGATURE" }; IfcReinforcingBarRoleEnum.STUD = { type: 3, value: "STUD" }; IfcReinforcingBarRoleEnum.PUNCHING = { type: 3, value: "PUNCHING" }; IfcReinforcingBarRoleEnum.EDGE = { type: 3, value: "EDGE" }; IfcReinforcingBarRoleEnum.RING = { type: 3, value: "RING" }; IfcReinforcingBarRoleEnum.ANCHORING = { type: 3, value: "ANCHORING" }; IfcReinforcingBarRoleEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcReinforcingBarRoleEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC42.IfcReinforcingBarRoleEnum = IfcReinforcingBarRoleEnum; class IfcReinforcingBarSurfaceEnum { } IfcReinforcingBarSurfaceEnum.PLAIN = { type: 3, value: "PLAIN" }; IfcReinforcingBarSurfaceEnum.TEXTURED = { type: 3, value: "TEXTURED" }; IFC42.IfcReinforcingBarSurfaceEnum = IfcReinforcingBarSurfaceEnum; class IfcReinforcingBarTypeEnum { } IfcReinforcingBarTypeEnum.ANCHORING = { type: 3, value: "ANCHORING" }; IfcReinforcingBarTypeEnum.EDGE = { type: 3, value: "EDGE" }; IfcReinforcingBarTypeEnum.LIGATURE = { type: 3, value: "LIGATURE" }; IfcReinforcingBarTypeEnum.MAIN = { type: 3, value: "MAIN" }; IfcReinforcingBarTypeEnum.PUNCHING = { type: 3, value: "PUNCHING" }; IfcReinforcingBarTypeEnum.RING = { type: 3, value: "RING" }; IfcReinforcingBarTypeEnum.SHEAR = { type: 3, value: "SHEAR" }; IfcReinforcingBarTypeEnum.STUD = { type: 3, value: "STUD" }; IfcReinforcingBarTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcReinforcingBarTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC42.IfcReinforcingBarTypeEnum = IfcReinforcingBarTypeEnum; class IfcReinforcingMeshTypeEnum { } IfcReinforcingMeshTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcReinforcingMeshTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC42.IfcReinforcingMeshTypeEnum = IfcReinforcingMeshTypeEnum; class IfcRoleEnum { } IfcRoleEnum.SUPPLIER = { type: 3, value: "SUPPLIER" }; IfcRoleEnum.MANUFACTURER = { type: 3, value: "MANUFACTURER" }; IfcRoleEnum.CONTRACTOR = { type: 3, value: "CONTRACTOR" }; IfcRoleEnum.SUBCONTRACTOR = { type: 3, value: "SUBCONTRACTOR" }; IfcRoleEnum.ARCHITECT = { type: 3, value: "ARCHITECT" }; IfcRoleEnum.STRUCTURALENGINEER = { type: 3, value: "STRUCTURALENGINEER" }; IfcRoleEnum.COSTENGINEER = { type: 3, value: "COSTENGINEER" }; IfcRoleEnum.CLIENT = { type: 3, value: "CLIENT" }; IfcRoleEnum.BUILDINGOWNER = { type: 3, value: "BUILDINGOWNER" }; IfcRoleEnum.BUILDINGOPERATOR = { type: 3, value: "BUILDINGOPERATOR" }; IfcRoleEnum.MECHANICALENGINEER = { type: 3, value: "MECHANICALENGINEER" }; IfcRoleEnum.ELECTRICALENGINEER = { type: 3, value: "ELECTRICALENGINEER" }; IfcRoleEnum.PROJECTMANAGER = { type: 3, value: "PROJECTMANAGER" }; IfcRoleEnum.FACILITIESMANAGER = { type: 3, value: "FACILITIESMANAGER" }; IfcRoleEnum.CIVILENGINEER = { type: 3, value: "CIVILENGINEER" }; IfcRoleEnum.COMMISSIONINGENGINEER = { type: 3, value: "COMMISSIONINGENGINEER" }; IfcRoleEnum.ENGINEER = { type: 3, value: "ENGINEER" }; IfcRoleEnum.OWNER = { type: 3, value: "OWNER" }; IfcRoleEnum.CONSULTANT = { type: 3, value: "CONSULTANT" }; IfcRoleEnum.CONSTRUCTIONMANAGER = { type: 3, value: "CONSTRUCTIONMANAGER" }; IfcRoleEnum.FIELDCONSTRUCTIONMANAGER = { type: 3, value: "FIELDCONSTRUCTIONMANAGER" }; IfcRoleEnum.RESELLER = { type: 3, value: "RESELLER" }; IfcRoleEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IFC42.IfcRoleEnum = IfcRoleEnum; class IfcRoofTypeEnum { } IfcRoofTypeEnum.FLAT_ROOF = { type: 3, value: "FLAT_ROOF" }; IfcRoofTypeEnum.SHED_ROOF = { type: 3, value: "SHED_ROOF" }; IfcRoofTypeEnum.GABLE_ROOF = { type: 3, value: "GABLE_ROOF" }; IfcRoofTypeEnum.HIP_ROOF = { type: 3, value: "HIP_ROOF" }; IfcRoofTypeEnum.HIPPED_GABLE_ROOF = { type: 3, value: "HIPPED_GABLE_ROOF" }; IfcRoofTypeEnum.GAMBREL_ROOF = { type: 3, value: "GAMBREL_ROOF" }; IfcRoofTypeEnum.MANSARD_ROOF = { type: 3, value: "MANSARD_ROOF" }; IfcRoofTypeEnum.BARREL_ROOF = { type: 3, value: "BARREL_ROOF" }; IfcRoofTypeEnum.RAINBOW_ROOF = { type: 3, value: "RAINBOW_ROOF" }; IfcRoofTypeEnum.BUTTERFLY_ROOF = { type: 3, value: "BUTTERFLY_ROOF" }; IfcRoofTypeEnum.PAVILION_ROOF = { type: 3, value: "PAVILION_ROOF" }; IfcRoofTypeEnum.DOME_ROOF = { type: 3, value: "DOME_ROOF" }; IfcRoofTypeEnum.FREEFORM = { type: 3, value: "FREEFORM" }; IfcRoofTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcRoofTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC42.IfcRoofTypeEnum = IfcRoofTypeEnum; class IfcSIPrefix { } IfcSIPrefix.EXA = { type: 3, value: "EXA" }; IfcSIPrefix.PETA = { type: 3, value: "PETA" }; IfcSIPrefix.TERA = { type: 3, value: "TERA" }; IfcSIPrefix.GIGA = { type: 3, value: "GIGA" }; IfcSIPrefix.MEGA = { type: 3, value: "MEGA" }; IfcSIPrefix.KILO = { type: 3, value: "KILO" }; IfcSIPrefix.HECTO = { type: 3, value: "HECTO" }; IfcSIPrefix.DECA = { type: 3, value: "DECA" }; IfcSIPrefix.DECI = { type: 3, value: "DECI" }; IfcSIPrefix.CENTI = { type: 3, value: "CENTI" }; IfcSIPrefix.MILLI = { type: 3, value: "MILLI" }; IfcSIPrefix.MICRO = { type: 3, value: "MICRO" }; IfcSIPrefix.NANO = { type: 3, value: "NANO" }; IfcSIPrefix.PICO = { type: 3, value: "PICO" }; IfcSIPrefix.FEMTO = { type: 3, value: "FEMTO" }; IfcSIPrefix.ATTO = { type: 3, value: "ATTO" }; IFC42.IfcSIPrefix = IfcSIPrefix; class IfcSIUnitName { } IfcSIUnitName.AMPERE = { type: 3, value: "AMPERE" }; IfcSIUnitName.BECQUEREL = { type: 3, value: "BECQUEREL" }; IfcSIUnitName.CANDELA = { type: 3, value: "CANDELA" }; IfcSIUnitName.COULOMB = { type: 3, value: "COULOMB" }; IfcSIUnitName.CUBIC_METRE = { type: 3, value: "CUBIC_METRE" }; IfcSIUnitName.DEGREE_CELSIUS = { type: 3, value: "DEGREE_CELSIUS" }; IfcSIUnitName.FARAD = { type: 3, value: "FARAD" }; IfcSIUnitName.GRAM = { type: 3, value: "GRAM" }; IfcSIUnitName.GRAY = { type: 3, value: "GRAY" }; IfcSIUnitName.HENRY = { type: 3, value: "HENRY" }; IfcSIUnitName.HERTZ = { type: 3, value: "HERTZ" }; IfcSIUnitName.JOULE = { type: 3, value: "JOULE" }; IfcSIUnitName.KELVIN = { type: 3, value: "KELVIN" }; IfcSIUnitName.LUMEN = { type: 3, value: "LUMEN" }; IfcSIUnitName.LUX = { type: 3, value: "LUX" }; IfcSIUnitName.METRE = { type: 3, value: "METRE" }; IfcSIUnitName.MOLE = { type: 3, value: "MOLE" }; IfcSIUnitName.NEWTON = { type: 3, value: "NEWTON" }; IfcSIUnitName.OHM = { type: 3, value: "OHM" }; IfcSIUnitName.PASCAL = { type: 3, value: "PASCAL" }; IfcSIUnitName.RADIAN = { type: 3, value: "RADIAN" }; IfcSIUnitName.SECOND = { type: 3, value: "SECOND" }; IfcSIUnitName.SIEMENS = { type: 3, value: "SIEMENS" }; IfcSIUnitName.SIEVERT = { type: 3, value: "SIEVERT" }; IfcSIUnitName.SQUARE_METRE = { type: 3, value: "SQUARE_METRE" }; IfcSIUnitName.STERADIAN = { type: 3, value: "STERADIAN" }; IfcSIUnitName.TESLA = { type: 3, value: "TESLA" }; IfcSIUnitName.VOLT = { type: 3, value: "VOLT" }; IfcSIUnitName.WATT = { type: 3, value: "WATT" }; IfcSIUnitName.WEBER = { type: 3, value: "WEBER" }; IFC42.IfcSIUnitName = IfcSIUnitName; class IfcSanitaryTerminalTypeEnum { } IfcSanitaryTerminalTypeEnum.BATH = { type: 3, value: "BATH" }; IfcSanitaryTerminalTypeEnum.BIDET = { type: 3, value: "BIDET" }; IfcSanitaryTerminalTypeEnum.CISTERN = { type: 3, value: "CISTERN" }; IfcSanitaryTerminalTypeEnum.SHOWER = { type: 3, value: "SHOWER" }; IfcSanitaryTerminalTypeEnum.SINK = { type: 3, value: "SINK" }; IfcSanitaryTerminalTypeEnum.SANITARYFOUNTAIN = { type: 3, value: "SANITARYFOUNTAIN" }; IfcSanitaryTerminalTypeEnum.TOILETPAN = { type: 3, value: "TOILETPAN" }; IfcSanitaryTerminalTypeEnum.URINAL = { type: 3, value: "URINAL" }; IfcSanitaryTerminalTypeEnum.WASHHANDBASIN = { type: 3, value: "WASHHANDBASIN" }; IfcSanitaryTerminalTypeEnum.WCSEAT = { type: 3, value: "WCSEAT" }; IfcSanitaryTerminalTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcSanitaryTerminalTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC42.IfcSanitaryTerminalTypeEnum = IfcSanitaryTerminalTypeEnum; class IfcSectionTypeEnum { } IfcSectionTypeEnum.UNIFORM = { type: 3, value: "UNIFORM" }; IfcSectionTypeEnum.TAPERED = { type: 3, value: "TAPERED" }; IFC42.IfcSectionTypeEnum = IfcSectionTypeEnum; class IfcSensorTypeEnum { } IfcSensorTypeEnum.COSENSOR = { type: 3, value: "COSENSOR" }; IfcSensorTypeEnum.CO2SENSOR = { type: 3, value: "CO2SENSOR" }; IfcSensorTypeEnum.CONDUCTANCESENSOR = { type: 3, value: "CONDUCTANCESENSOR" }; IfcSensorTypeEnum.CONTACTSENSOR = { type: 3, value: "CONTACTSENSOR" }; IfcSensorTypeEnum.FIRESENSOR = { type: 3, value: "FIRESENSOR" }; IfcSensorTypeEnum.FLOWSENSOR = { type: 3, value: "FLOWSENSOR" }; IfcSensorTypeEnum.FROSTSENSOR = { type: 3, value: "FROSTSENSOR" }; IfcSensorTypeEnum.GASSENSOR = { type: 3, value: "GASSENSOR" }; IfcSensorTypeEnum.HEATSENSOR = { type: 3, value: "HEATSENSOR" }; IfcSensorTypeEnum.HUMIDITYSENSOR = { type: 3, value: "HUMIDITYSENSOR" }; IfcSensorTypeEnum.IDENTIFIERSENSOR = { type: 3, value: "IDENTIFIERSENSOR" }; IfcSensorTypeEnum.IONCONCENTRATIONSENSOR = { type: 3, value: "IONCONCENTRATIONSENSOR" }; IfcSensorTypeEnum.LEVELSENSOR = { type: 3, value: "LEVELSENSOR" }; IfcSensorTypeEnum.LIGHTSENSOR = { type: 3, value: "LIGHTSENSOR" }; IfcSensorTypeEnum.MOISTURESENSOR = { type: 3, value: "MOISTURESENSOR" }; IfcSensorTypeEnum.MOVEMENTSENSOR = { type: 3, value: "MOVEMENTSENSOR" }; IfcSensorTypeEnum.PHSENSOR = { type: 3, value: "PHSENSOR" }; IfcSensorTypeEnum.PRESSURESENSOR = { type: 3, value: "PRESSURESENSOR" }; IfcSensorTypeEnum.RADIATIONSENSOR = { type: 3, value: "RADIATIONSENSOR" }; IfcSensorTypeEnum.RADIOACTIVITYSENSOR = { type: 3, value: "RADIOACTIVITYSENSOR" }; IfcSensorTypeEnum.SMOKESENSOR = { type: 3, value: "SMOKESENSOR" }; IfcSensorTypeEnum.SOUNDSENSOR = { type: 3, value: "SOUNDSENSOR" }; IfcSensorTypeEnum.TEMPERATURESENSOR = { type: 3, value: "TEMPERATURESENSOR" }; IfcSensorTypeEnum.WINDSENSOR = { type: 3, value: "WINDSENSOR" }; IfcSensorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcSensorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC42.IfcSensorTypeEnum = IfcSensorTypeEnum; class IfcSequenceEnum { } IfcSequenceEnum.START_START = { type: 3, value: "START_START" }; IfcSequenceEnum.START_FINISH = { type: 3, value: "START_FINISH" }; IfcSequenceEnum.FINISH_START = { type: 3, value: "FINISH_START" }; IfcSequenceEnum.FINISH_FINISH = { type: 3, value: "FINISH_FINISH" }; IfcSequenceEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcSequenceEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC42.IfcSequenceEnum = IfcSequenceEnum; class IfcShadingDeviceTypeEnum { } IfcShadingDeviceTypeEnum.JALOUSIE = { type: 3, value: "JALOUSIE" }; IfcShadingDeviceTypeEnum.SHUTTER = { type: 3, value: "SHUTTER" }; IfcShadingDeviceTypeEnum.AWNING = { type: 3, value: "AWNING" }; IfcShadingDeviceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcShadingDeviceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC42.IfcShadingDeviceTypeEnum = IfcShadingDeviceTypeEnum; class IfcSimplePropertyTemplateTypeEnum { } IfcSimplePropertyTemplateTypeEnum.P_SINGLEVALUE = { type: 3, value: "P_SINGLEVALUE" }; IfcSimplePropertyTemplateTypeEnum.P_ENUMERATEDVALUE = { type: 3, value: "P_ENUMERATEDVALUE" }; IfcSimplePropertyTemplateTypeEnum.P_BOUNDEDVALUE = { type: 3, value: "P_BOUNDEDVALUE" }; IfcSimplePropertyTemplateTypeEnum.P_LISTVALUE = { type: 3, value: "P_LISTVALUE" }; IfcSimplePropertyTemplateTypeEnum.P_TABLEVALUE = { type: 3, value: "P_TABLEVALUE" }; IfcSimplePropertyTemplateTypeEnum.P_REFERENCEVALUE = { type: 3, value: "P_REFERENCEVALUE" }; IfcSimplePropertyTemplateTypeEnum.Q_LENGTH = { type: 3, value: "Q_LENGTH" }; IfcSimplePropertyTemplateTypeEnum.Q_AREA = { type: 3, value: "Q_AREA" }; IfcSimplePropertyTemplateTypeEnum.Q_VOLUME = { type: 3, value: "Q_VOLUME" }; IfcSimplePropertyTemplateTypeEnum.Q_COUNT = { type: 3, value: "Q_COUNT" }; IfcSimplePropertyTemplateTypeEnum.Q_WEIGHT = { type: 3, value: "Q_WEIGHT" }; IfcSimplePropertyTemplateTypeEnum.Q_TIME = { type: 3, value: "Q_TIME" }; IFC42.IfcSimplePropertyTemplateTypeEnum = IfcSimplePropertyTemplateTypeEnum; class IfcSlabTypeEnum { } IfcSlabTypeEnum.FLOOR = { type: 3, value: "FLOOR" }; IfcSlabTypeEnum.ROOF = { type: 3, value: "ROOF" }; IfcSlabTypeEnum.LANDING = { type: 3, value: "LANDING" }; IfcSlabTypeEnum.BASESLAB = { type: 3, value: "BASESLAB" }; IfcSlabTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcSlabTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC42.IfcSlabTypeEnum = IfcSlabTypeEnum; class IfcSolarDeviceTypeEnum { } IfcSolarDeviceTypeEnum.SOLARCOLLECTOR = { type: 3, value: "SOLARCOLLECTOR" }; IfcSolarDeviceTypeEnum.SOLARPANEL = { type: 3, value: "SOLARPANEL" }; IfcSolarDeviceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcSolarDeviceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC42.IfcSolarDeviceTypeEnum = IfcSolarDeviceTypeEnum; class IfcSpaceHeaterTypeEnum { } IfcSpaceHeaterTypeEnum.CONVECTOR = { type: 3, value: "CONVECTOR" }; IfcSpaceHeaterTypeEnum.RADIATOR = { type: 3, value: "RADIATOR" }; IfcSpaceHeaterTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcSpaceHeaterTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC42.IfcSpaceHeaterTypeEnum = IfcSpaceHeaterTypeEnum; class IfcSpaceTypeEnum { } IfcSpaceTypeEnum.SPACE = { type: 3, value: "SPACE" }; IfcSpaceTypeEnum.PARKING = { type: 3, value: "PARKING" }; IfcSpaceTypeEnum.GFA = { type: 3, value: "GFA" }; IfcSpaceTypeEnum.INTERNAL = { type: 3, value: "INTERNAL" }; IfcSpaceTypeEnum.EXTERNAL = { type: 3, value: "EXTERNAL" }; IfcSpaceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcSpaceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC42.IfcSpaceTypeEnum = IfcSpaceTypeEnum; class IfcSpatialZoneTypeEnum { } IfcSpatialZoneTypeEnum.CONSTRUCTION = { type: 3, value: "CONSTRUCTION" }; IfcSpatialZoneTypeEnum.FIRESAFETY = { type: 3, value: "FIRESAFETY" }; IfcSpatialZoneTypeEnum.LIGHTING = { type: 3, value: "LIGHTING" }; IfcSpatialZoneTypeEnum.OCCUPANCY = { type: 3, value: "OCCUPANCY" }; IfcSpatialZoneTypeEnum.SECURITY = { type: 3, value: "SECURITY" }; IfcSpatialZoneTypeEnum.THERMAL = { type: 3, value: "THERMAL" }; IfcSpatialZoneTypeEnum.TRANSPORT = { type: 3, value: "TRANSPORT" }; IfcSpatialZoneTypeEnum.VENTILATION = { type: 3, value: "VENTILATION" }; IfcSpatialZoneTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcSpatialZoneTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC42.IfcSpatialZoneTypeEnum = IfcSpatialZoneTypeEnum; class IfcStackTerminalTypeEnum { } IfcStackTerminalTypeEnum.BIRDCAGE = { type: 3, value: "BIRDCAGE" }; IfcStackTerminalTypeEnum.COWL = { type: 3, value: "COWL" }; IfcStackTerminalTypeEnum.RAINWATERHOPPER = { type: 3, value: "RAINWATERHOPPER" }; IfcStackTerminalTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcStackTerminalTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC42.IfcStackTerminalTypeEnum = IfcStackTerminalTypeEnum; class IfcStairFlightTypeEnum { } IfcStairFlightTypeEnum.STRAIGHT = { type: 3, value: "STRAIGHT" }; IfcStairFlightTypeEnum.WINDER = { type: 3, value: "WINDER" }; IfcStairFlightTypeEnum.SPIRAL = { type: 3, value: "SPIRAL" }; IfcStairFlightTypeEnum.CURVED = { type: 3, value: "CURVED" }; IfcStairFlightTypeEnum.FREEFORM = { type: 3, value: "FREEFORM" }; IfcStairFlightTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcStairFlightTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC42.IfcStairFlightTypeEnum = IfcStairFlightTypeEnum; class IfcStairTypeEnum { } IfcStairTypeEnum.STRAIGHT_RUN_STAIR = { type: 3, value: "STRAIGHT_RUN_STAIR" }; IfcStairTypeEnum.TWO_STRAIGHT_RUN_STAIR = { type: 3, value: "TWO_STRAIGHT_RUN_STAIR" }; IfcStairTypeEnum.QUARTER_WINDING_STAIR = { type: 3, value: "QUARTER_WINDING_STAIR" }; IfcStairTypeEnum.QUARTER_TURN_STAIR = { type: 3, value: "QUARTER_TURN_STAIR" }; IfcStairTypeEnum.HALF_WINDING_STAIR = { type: 3, value: "HALF_WINDING_STAIR" }; IfcStairTypeEnum.HALF_TURN_STAIR = { type: 3, value: "HALF_TURN_STAIR" }; IfcStairTypeEnum.TWO_QUARTER_WINDING_STAIR = { type: 3, value: "TWO_QUARTER_WINDING_STAIR" }; IfcStairTypeEnum.TWO_QUARTER_TURN_STAIR = { type: 3, value: "TWO_QUARTER_TURN_STAIR" }; IfcStairTypeEnum.THREE_QUARTER_WINDING_STAIR = { type: 3, value: "THREE_QUARTER_WINDING_STAIR" }; IfcStairTypeEnum.THREE_QUARTER_TURN_STAIR = { type: 3, value: "THREE_QUARTER_TURN_STAIR" }; IfcStairTypeEnum.SPIRAL_STAIR = { type: 3, value: "SPIRAL_STAIR" }; IfcStairTypeEnum.DOUBLE_RETURN_STAIR = { type: 3, value: "DOUBLE_RETURN_STAIR" }; IfcStairTypeEnum.CURVED_RUN_STAIR = { type: 3, value: "CURVED_RUN_STAIR" }; IfcStairTypeEnum.TWO_CURVED_RUN_STAIR = { type: 3, value: "TWO_CURVED_RUN_STAIR" }; IfcStairTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcStairTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC42.IfcStairTypeEnum = IfcStairTypeEnum; class IfcStateEnum { } IfcStateEnum.READWRITE = { type: 3, value: "READWRITE" }; IfcStateEnum.READONLY = { type: 3, value: "READONLY" }; IfcStateEnum.LOCKED = { type: 3, value: "LOCKED" }; IfcStateEnum.READWRITELOCKED = { type: 3, value: "READWRITELOCKED" }; IfcStateEnum.READONLYLOCKED = { type: 3, value: "READONLYLOCKED" }; IFC42.IfcStateEnum = IfcStateEnum; class IfcStructuralCurveActivityTypeEnum { } IfcStructuralCurveActivityTypeEnum.CONST = { type: 3, value: "CONST" }; IfcStructuralCurveActivityTypeEnum.LINEAR = { type: 3, value: "LINEAR" }; IfcStructuralCurveActivityTypeEnum.POLYGONAL = { type: 3, value: "POLYGONAL" }; IfcStructuralCurveActivityTypeEnum.EQUIDISTANT = { type: 3, value: "EQUIDISTANT" }; IfcStructuralCurveActivityTypeEnum.SINUS = { type: 3, value: "SINUS" }; IfcStructuralCurveActivityTypeEnum.PARABOLA = { type: 3, value: "PARABOLA" }; IfcStructuralCurveActivityTypeEnum.DISCRETE = { type: 3, value: "DISCRETE" }; IfcStructuralCurveActivityTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcStructuralCurveActivityTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC42.IfcStructuralCurveActivityTypeEnum = IfcStructuralCurveActivityTypeEnum; class IfcStructuralCurveMemberTypeEnum { } IfcStructuralCurveMemberTypeEnum.RIGID_JOINED_MEMBER = { type: 3, value: "RIGID_JOINED_MEMBER" }; IfcStructuralCurveMemberTypeEnum.PIN_JOINED_MEMBER = { type: 3, value: "PIN_JOINED_MEMBER" }; IfcStructuralCurveMemberTypeEnum.CABLE = { type: 3, value: "CABLE" }; IfcStructuralCurveMemberTypeEnum.TENSION_MEMBER = { type: 3, value: "TENSION_MEMBER" }; IfcStructuralCurveMemberTypeEnum.COMPRESSION_MEMBER = { type: 3, value: "COMPRESSION_MEMBER" }; IfcStructuralCurveMemberTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcStructuralCurveMemberTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC42.IfcStructuralCurveMemberTypeEnum = IfcStructuralCurveMemberTypeEnum; class IfcStructuralSurfaceActivityTypeEnum { } IfcStructuralSurfaceActivityTypeEnum.CONST = { type: 3, value: "CONST" }; IfcStructuralSurfaceActivityTypeEnum.BILINEAR = { type: 3, value: "BILINEAR" }; IfcStructuralSurfaceActivityTypeEnum.DISCRETE = { type: 3, value: "DISCRETE" }; IfcStructuralSurfaceActivityTypeEnum.ISOCONTOUR = { type: 3, value: "ISOCONTOUR" }; IfcStructuralSurfaceActivityTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcStructuralSurfaceActivityTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC42.IfcStructuralSurfaceActivityTypeEnum = IfcStructuralSurfaceActivityTypeEnum; class IfcStructuralSurfaceMemberTypeEnum { } IfcStructuralSurfaceMemberTypeEnum.BENDING_ELEMENT = { type: 3, value: "BENDING_ELEMENT" }; IfcStructuralSurfaceMemberTypeEnum.MEMBRANE_ELEMENT = { type: 3, value: "MEMBRANE_ELEMENT" }; IfcStructuralSurfaceMemberTypeEnum.SHELL = { type: 3, value: "SHELL" }; IfcStructuralSurfaceMemberTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcStructuralSurfaceMemberTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC42.IfcStructuralSurfaceMemberTypeEnum = IfcStructuralSurfaceMemberTypeEnum; class IfcSubContractResourceTypeEnum { } IfcSubContractResourceTypeEnum.PURCHASE = { type: 3, value: "PURCHASE" }; IfcSubContractResourceTypeEnum.WORK = { type: 3, value: "WORK" }; IfcSubContractResourceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcSubContractResourceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC42.IfcSubContractResourceTypeEnum = IfcSubContractResourceTypeEnum; class IfcSurfaceFeatureTypeEnum { } IfcSurfaceFeatureTypeEnum.MARK = { type: 3, value: "MARK" }; IfcSurfaceFeatureTypeEnum.TAG = { type: 3, value: "TAG" }; IfcSurfaceFeatureTypeEnum.TREATMENT = { type: 3, value: "TREATMENT" }; IfcSurfaceFeatureTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcSurfaceFeatureTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC42.IfcSurfaceFeatureTypeEnum = IfcSurfaceFeatureTypeEnum; class IfcSurfaceSide { } IfcSurfaceSide.POSITIVE = { type: 3, value: "POSITIVE" }; IfcSurfaceSide.NEGATIVE = { type: 3, value: "NEGATIVE" }; IfcSurfaceSide.BOTH = { type: 3, value: "BOTH" }; IFC42.IfcSurfaceSide = IfcSurfaceSide; class IfcSwitchingDeviceTypeEnum { } IfcSwitchingDeviceTypeEnum.CONTACTOR = { type: 3, value: "CONTACTOR" }; IfcSwitchingDeviceTypeEnum.DIMMERSWITCH = { type: 3, value: "DIMMERSWITCH" }; IfcSwitchingDeviceTypeEnum.EMERGENCYSTOP = { type: 3, value: "EMERGENCYSTOP" }; IfcSwitchingDeviceTypeEnum.KEYPAD = { type: 3, value: "KEYPAD" }; IfcSwitchingDeviceTypeEnum.MOMENTARYSWITCH = { type: 3, value: "MOMENTARYSWITCH" }; IfcSwitchingDeviceTypeEnum.SELECTORSWITCH = { type: 3, value: "SELECTORSWITCH" }; IfcSwitchingDeviceTypeEnum.STARTER = { type: 3, value: "STARTER" }; IfcSwitchingDeviceTypeEnum.SWITCHDISCONNECTOR = { type: 3, value: "SWITCHDISCONNECTOR" }; IfcSwitchingDeviceTypeEnum.TOGGLESWITCH = { type: 3, value: "TOGGLESWITCH" }; IfcSwitchingDeviceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcSwitchingDeviceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC42.IfcSwitchingDeviceTypeEnum = IfcSwitchingDeviceTypeEnum; class IfcSystemFurnitureElementTypeEnum { } IfcSystemFurnitureElementTypeEnum.PANEL = { type: 3, value: "PANEL" }; IfcSystemFurnitureElementTypeEnum.WORKSURFACE = { type: 3, value: "WORKSURFACE" }; IfcSystemFurnitureElementTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcSystemFurnitureElementTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC42.IfcSystemFurnitureElementTypeEnum = IfcSystemFurnitureElementTypeEnum; class IfcTankTypeEnum { } IfcTankTypeEnum.BASIN = { type: 3, value: "BASIN" }; IfcTankTypeEnum.BREAKPRESSURE = { type: 3, value: "BREAKPRESSURE" }; IfcTankTypeEnum.EXPANSION = { type: 3, value: "EXPANSION" }; IfcTankTypeEnum.FEEDANDEXPANSION = { type: 3, value: "FEEDANDEXPANSION" }; IfcTankTypeEnum.PRESSUREVESSEL = { type: 3, value: "PRESSUREVESSEL" }; IfcTankTypeEnum.STORAGE = { type: 3, value: "STORAGE" }; IfcTankTypeEnum.VESSEL = { type: 3, value: "VESSEL" }; IfcTankTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcTankTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC42.IfcTankTypeEnum = IfcTankTypeEnum; class IfcTaskDurationEnum { } IfcTaskDurationEnum.ELAPSEDTIME = { type: 3, value: "ELAPSEDTIME" }; IfcTaskDurationEnum.WORKTIME = { type: 3, value: "WORKTIME" }; IfcTaskDurationEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC42.IfcTaskDurationEnum = IfcTaskDurationEnum; class IfcTaskTypeEnum { } IfcTaskTypeEnum.ATTENDANCE = { type: 3, value: "ATTENDANCE" }; IfcTaskTypeEnum.CONSTRUCTION = { type: 3, value: "CONSTRUCTION" }; IfcTaskTypeEnum.DEMOLITION = { type: 3, value: "DEMOLITION" }; IfcTaskTypeEnum.DISMANTLE = { type: 3, value: "DISMANTLE" }; IfcTaskTypeEnum.DISPOSAL = { type: 3, value: "DISPOSAL" }; IfcTaskTypeEnum.INSTALLATION = { type: 3, value: "INSTALLATION" }; IfcTaskTypeEnum.LOGISTIC = { type: 3, value: "LOGISTIC" }; IfcTaskTypeEnum.MAINTENANCE = { type: 3, value: "MAINTENANCE" }; IfcTaskTypeEnum.MOVE = { type: 3, value: "MOVE" }; IfcTaskTypeEnum.OPERATION = { type: 3, value: "OPERATION" }; IfcTaskTypeEnum.REMOVAL = { type: 3, value: "REMOVAL" }; IfcTaskTypeEnum.RENOVATION = { type: 3, value: "RENOVATION" }; IfcTaskTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcTaskTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC42.IfcTaskTypeEnum = IfcTaskTypeEnum; class IfcTendonAnchorTypeEnum { } IfcTendonAnchorTypeEnum.COUPLER = { type: 3, value: "COUPLER" }; IfcTendonAnchorTypeEnum.FIXED_END = { type: 3, value: "FIXED_END" }; IfcTendonAnchorTypeEnum.TENSIONING_END = { type: 3, value: "TENSIONING_END" }; IfcTendonAnchorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcTendonAnchorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC42.IfcTendonAnchorTypeEnum = IfcTendonAnchorTypeEnum; class IfcTendonTypeEnum { } IfcTendonTypeEnum.BAR = { type: 3, value: "BAR" }; IfcTendonTypeEnum.COATED = { type: 3, value: "COATED" }; IfcTendonTypeEnum.STRAND = { type: 3, value: "STRAND" }; IfcTendonTypeEnum.WIRE = { type: 3, value: "WIRE" }; IfcTendonTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcTendonTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC42.IfcTendonTypeEnum = IfcTendonTypeEnum; class IfcTextPath { } IfcTextPath.LEFT = { type: 3, value: "LEFT" }; IfcTextPath.RIGHT = { type: 3, value: "RIGHT" }; IfcTextPath.UP = { type: 3, value: "UP" }; IfcTextPath.DOWN = { type: 3, value: "DOWN" }; IFC42.IfcTextPath = IfcTextPath; class IfcTimeSeriesDataTypeEnum { } IfcTimeSeriesDataTypeEnum.CONTINUOUS = { type: 3, value: "CONTINUOUS" }; IfcTimeSeriesDataTypeEnum.DISCRETE = { type: 3, value: "DISCRETE" }; IfcTimeSeriesDataTypeEnum.DISCRETEBINARY = { type: 3, value: "DISCRETEBINARY" }; IfcTimeSeriesDataTypeEnum.PIECEWISEBINARY = { type: 3, value: "PIECEWISEBINARY" }; IfcTimeSeriesDataTypeEnum.PIECEWISECONSTANT = { type: 3, value: "PIECEWISECONSTANT" }; IfcTimeSeriesDataTypeEnum.PIECEWISECONTINUOUS = { type: 3, value: "PIECEWISECONTINUOUS" }; IfcTimeSeriesDataTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC42.IfcTimeSeriesDataTypeEnum = IfcTimeSeriesDataTypeEnum; class IfcTransformerTypeEnum { } IfcTransformerTypeEnum.CURRENT = { type: 3, value: "CURRENT" }; IfcTransformerTypeEnum.FREQUENCY = { type: 3, value: "FREQUENCY" }; IfcTransformerTypeEnum.INVERTER = { type: 3, value: "INVERTER" }; IfcTransformerTypeEnum.RECTIFIER = { type: 3, value: "RECTIFIER" }; IfcTransformerTypeEnum.VOLTAGE = { type: 3, value: "VOLTAGE" }; IfcTransformerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcTransformerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC42.IfcTransformerTypeEnum = IfcTransformerTypeEnum; class IfcTransitionCode { } IfcTransitionCode.DISCONTINUOUS = { type: 3, value: "DISCONTINUOUS" }; IfcTransitionCode.CONTINUOUS = { type: 3, value: "CONTINUOUS" }; IfcTransitionCode.CONTSAMEGRADIENT = { type: 3, value: "CONTSAMEGRADIENT" }; IfcTransitionCode.CONTSAMEGRADIENTSAMECURVATURE = { type: 3, value: "CONTSAMEGRADIENTSAMECURVATURE" }; IFC42.IfcTransitionCode = IfcTransitionCode; class IfcTransportElementTypeEnum { } IfcTransportElementTypeEnum.ELEVATOR = { type: 3, value: "ELEVATOR" }; IfcTransportElementTypeEnum.ESCALATOR = { type: 3, value: "ESCALATOR" }; IfcTransportElementTypeEnum.MOVINGWALKWAY = { type: 3, value: "MOVINGWALKWAY" }; IfcTransportElementTypeEnum.CRANEWAY = { type: 3, value: "CRANEWAY" }; IfcTransportElementTypeEnum.LIFTINGGEAR = { type: 3, value: "LIFTINGGEAR" }; IfcTransportElementTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcTransportElementTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC42.IfcTransportElementTypeEnum = IfcTransportElementTypeEnum; class IfcTrimmingPreference { } IfcTrimmingPreference.CARTESIAN = { type: 3, value: "CARTESIAN" }; IfcTrimmingPreference.PARAMETER = { type: 3, value: "PARAMETER" }; IfcTrimmingPreference.UNSPECIFIED = { type: 3, value: "UNSPECIFIED" }; IFC42.IfcTrimmingPreference = IfcTrimmingPreference; class IfcTubeBundleTypeEnum { } IfcTubeBundleTypeEnum.FINNED = { type: 3, value: "FINNED" }; IfcTubeBundleTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcTubeBundleTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC42.IfcTubeBundleTypeEnum = IfcTubeBundleTypeEnum; class IfcUnitEnum { } IfcUnitEnum.ABSORBEDDOSEUNIT = { type: 3, value: "ABSORBEDDOSEUNIT" }; IfcUnitEnum.AMOUNTOFSUBSTANCEUNIT = { type: 3, value: "AMOUNTOFSUBSTANCEUNIT" }; IfcUnitEnum.AREAUNIT = { type: 3, value: "AREAUNIT" }; IfcUnitEnum.DOSEEQUIVALENTUNIT = { type: 3, value: "DOSEEQUIVALENTUNIT" }; IfcUnitEnum.ELECTRICCAPACITANCEUNIT = { type: 3, value: "ELECTRICCAPACITANCEUNIT" }; IfcUnitEnum.ELECTRICCHARGEUNIT = { type: 3, value: "ELECTRICCHARGEUNIT" }; IfcUnitEnum.ELECTRICCONDUCTANCEUNIT = { type: 3, value: "ELECTRICCONDUCTANCEUNIT" }; IfcUnitEnum.ELECTRICCURRENTUNIT = { type: 3, value: "ELECTRICCURRENTUNIT" }; IfcUnitEnum.ELECTRICRESISTANCEUNIT = { type: 3, value: "ELECTRICRESISTANCEUNIT" }; IfcUnitEnum.ELECTRICVOLTAGEUNIT = { type: 3, value: "ELECTRICVOLTAGEUNIT" }; IfcUnitEnum.ENERGYUNIT = { type: 3, value: "ENERGYUNIT" }; IfcUnitEnum.FORCEUNIT = { type: 3, value: "FORCEUNIT" }; IfcUnitEnum.FREQUENCYUNIT = { type: 3, value: "FREQUENCYUNIT" }; IfcUnitEnum.ILLUMINANCEUNIT = { type: 3, value: "ILLUMINANCEUNIT" }; IfcUnitEnum.INDUCTANCEUNIT = { type: 3, value: "INDUCTANCEUNIT" }; IfcUnitEnum.LENGTHUNIT = { type: 3, value: "LENGTHUNIT" }; IfcUnitEnum.LUMINOUSFLUXUNIT = { type: 3, value: "LUMINOUSFLUXUNIT" }; IfcUnitEnum.LUMINOUSINTENSITYUNIT = { type: 3, value: "LUMINOUSINTENSITYUNIT" }; IfcUnitEnum.MAGNETICFLUXDENSITYUNIT = { type: 3, value: "MAGNETICFLUXDENSITYUNIT" }; IfcUnitEnum.MAGNETICFLUXUNIT = { type: 3, value: "MAGNETICFLUXUNIT" }; IfcUnitEnum.MASSUNIT = { type: 3, value: "MASSUNIT" }; IfcUnitEnum.PLANEANGLEUNIT = { type: 3, value: "PLANEANGLEUNIT" }; IfcUnitEnum.POWERUNIT = { type: 3, value: "POWERUNIT" }; IfcUnitEnum.PRESSUREUNIT = { type: 3, value: "PRESSUREUNIT" }; IfcUnitEnum.RADIOACTIVITYUNIT = { type: 3, value: "RADIOACTIVITYUNIT" }; IfcUnitEnum.SOLIDANGLEUNIT = { type: 3, value: "SOLIDANGLEUNIT" }; IfcUnitEnum.THERMODYNAMICTEMPERATUREUNIT = { type: 3, value: "THERMODYNAMICTEMPERATUREUNIT" }; IfcUnitEnum.TIMEUNIT = { type: 3, value: "TIMEUNIT" }; IfcUnitEnum.VOLUMEUNIT = { type: 3, value: "VOLUMEUNIT" }; IfcUnitEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IFC42.IfcUnitEnum = IfcUnitEnum; class IfcUnitaryControlElementTypeEnum { } IfcUnitaryControlElementTypeEnum.ALARMPANEL = { type: 3, value: "ALARMPANEL" }; IfcUnitaryControlElementTypeEnum.CONTROLPANEL = { type: 3, value: "CONTROLPANEL" }; IfcUnitaryControlElementTypeEnum.GASDETECTIONPANEL = { type: 3, value: "GASDETECTIONPANEL" }; IfcUnitaryControlElementTypeEnum.INDICATORPANEL = { type: 3, value: "INDICATORPANEL" }; IfcUnitaryControlElementTypeEnum.MIMICPANEL = { type: 3, value: "MIMICPANEL" }; IfcUnitaryControlElementTypeEnum.HUMIDISTAT = { type: 3, value: "HUMIDISTAT" }; IfcUnitaryControlElementTypeEnum.THERMOSTAT = { type: 3, value: "THERMOSTAT" }; IfcUnitaryControlElementTypeEnum.WEATHERSTATION = { type: 3, value: "WEATHERSTATION" }; IfcUnitaryControlElementTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcUnitaryControlElementTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC42.IfcUnitaryControlElementTypeEnum = IfcUnitaryControlElementTypeEnum; class IfcUnitaryEquipmentTypeEnum { } IfcUnitaryEquipmentTypeEnum.AIRHANDLER = { type: 3, value: "AIRHANDLER" }; IfcUnitaryEquipmentTypeEnum.AIRCONDITIONINGUNIT = { type: 3, value: "AIRCONDITIONINGUNIT" }; IfcUnitaryEquipmentTypeEnum.DEHUMIDIFIER = { type: 3, value: "DEHUMIDIFIER" }; IfcUnitaryEquipmentTypeEnum.SPLITSYSTEM = { type: 3, value: "SPLITSYSTEM" }; IfcUnitaryEquipmentTypeEnum.ROOFTOPUNIT = { type: 3, value: "ROOFTOPUNIT" }; IfcUnitaryEquipmentTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcUnitaryEquipmentTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC42.IfcUnitaryEquipmentTypeEnum = IfcUnitaryEquipmentTypeEnum; class IfcValveTypeEnum { } IfcValveTypeEnum.AIRRELEASE = { type: 3, value: "AIRRELEASE" }; IfcValveTypeEnum.ANTIVACUUM = { type: 3, value: "ANTIVACUUM" }; IfcValveTypeEnum.CHANGEOVER = { type: 3, value: "CHANGEOVER" }; IfcValveTypeEnum.CHECK = { type: 3, value: "CHECK" }; IfcValveTypeEnum.COMMISSIONING = { type: 3, value: "COMMISSIONING" }; IfcValveTypeEnum.DIVERTING = { type: 3, value: "DIVERTING" }; IfcValveTypeEnum.DRAWOFFCOCK = { type: 3, value: "DRAWOFFCOCK" }; IfcValveTypeEnum.DOUBLECHECK = { type: 3, value: "DOUBLECHECK" }; IfcValveTypeEnum.DOUBLEREGULATING = { type: 3, value: "DOUBLEREGULATING" }; IfcValveTypeEnum.FAUCET = { type: 3, value: "FAUCET" }; IfcValveTypeEnum.FLUSHING = { type: 3, value: "FLUSHING" }; IfcValveTypeEnum.GASCOCK = { type: 3, value: "GASCOCK" }; IfcValveTypeEnum.GASTAP = { type: 3, value: "GASTAP" }; IfcValveTypeEnum.ISOLATING = { type: 3, value: "ISOLATING" }; IfcValveTypeEnum.MIXING = { type: 3, value: "MIXING" }; IfcValveTypeEnum.PRESSUREREDUCING = { type: 3, value: "PRESSUREREDUCING" }; IfcValveTypeEnum.PRESSURERELIEF = { type: 3, value: "PRESSURERELIEF" }; IfcValveTypeEnum.REGULATING = { type: 3, value: "REGULATING" }; IfcValveTypeEnum.SAFETYCUTOFF = { type: 3, value: "SAFETYCUTOFF" }; IfcValveTypeEnum.STEAMTRAP = { type: 3, value: "STEAMTRAP" }; IfcValveTypeEnum.STOPCOCK = { type: 3, value: "STOPCOCK" }; IfcValveTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcValveTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC42.IfcValveTypeEnum = IfcValveTypeEnum; class IfcVibrationIsolatorTypeEnum { } IfcVibrationIsolatorTypeEnum.COMPRESSION = { type: 3, value: "COMPRESSION" }; IfcVibrationIsolatorTypeEnum.SPRING = { type: 3, value: "SPRING" }; IfcVibrationIsolatorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcVibrationIsolatorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC42.IfcVibrationIsolatorTypeEnum = IfcVibrationIsolatorTypeEnum; class IfcVoidingFeatureTypeEnum { } IfcVoidingFeatureTypeEnum.CUTOUT = { type: 3, value: "CUTOUT" }; IfcVoidingFeatureTypeEnum.NOTCH = { type: 3, value: "NOTCH" }; IfcVoidingFeatureTypeEnum.HOLE = { type: 3, value: "HOLE" }; IfcVoidingFeatureTypeEnum.MITER = { type: 3, value: "MITER" }; IfcVoidingFeatureTypeEnum.CHAMFER = { type: 3, value: "CHAMFER" }; IfcVoidingFeatureTypeEnum.EDGE = { type: 3, value: "EDGE" }; IfcVoidingFeatureTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcVoidingFeatureTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC42.IfcVoidingFeatureTypeEnum = IfcVoidingFeatureTypeEnum; class IfcWallTypeEnum { } IfcWallTypeEnum.MOVABLE = { type: 3, value: "MOVABLE" }; IfcWallTypeEnum.PARAPET = { type: 3, value: "PARAPET" }; IfcWallTypeEnum.PARTITIONING = { type: 3, value: "PARTITIONING" }; IfcWallTypeEnum.PLUMBINGWALL = { type: 3, value: "PLUMBINGWALL" }; IfcWallTypeEnum.SHEAR = { type: 3, value: "SHEAR" }; IfcWallTypeEnum.SOLIDWALL = { type: 3, value: "SOLIDWALL" }; IfcWallTypeEnum.STANDARD = { type: 3, value: "STANDARD" }; IfcWallTypeEnum.POLYGONAL = { type: 3, value: "POLYGONAL" }; IfcWallTypeEnum.ELEMENTEDWALL = { type: 3, value: "ELEMENTEDWALL" }; IfcWallTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcWallTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC42.IfcWallTypeEnum = IfcWallTypeEnum; class IfcWasteTerminalTypeEnum { } IfcWasteTerminalTypeEnum.FLOORTRAP = { type: 3, value: "FLOORTRAP" }; IfcWasteTerminalTypeEnum.FLOORWASTE = { type: 3, value: "FLOORWASTE" }; IfcWasteTerminalTypeEnum.GULLYSUMP = { type: 3, value: "GULLYSUMP" }; IfcWasteTerminalTypeEnum.GULLYTRAP = { type: 3, value: "GULLYTRAP" }; IfcWasteTerminalTypeEnum.ROOFDRAIN = { type: 3, value: "ROOFDRAIN" }; IfcWasteTerminalTypeEnum.WASTEDISPOSALUNIT = { type: 3, value: "WASTEDISPOSALUNIT" }; IfcWasteTerminalTypeEnum.WASTETRAP = { type: 3, value: "WASTETRAP" }; IfcWasteTerminalTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcWasteTerminalTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC42.IfcWasteTerminalTypeEnum = IfcWasteTerminalTypeEnum; class IfcWindowPanelOperationEnum { } IfcWindowPanelOperationEnum.SIDEHUNGRIGHTHAND = { type: 3, value: "SIDEHUNGRIGHTHAND" }; IfcWindowPanelOperationEnum.SIDEHUNGLEFTHAND = { type: 3, value: "SIDEHUNGLEFTHAND" }; IfcWindowPanelOperationEnum.TILTANDTURNRIGHTHAND = { type: 3, value: "TILTANDTURNRIGHTHAND" }; IfcWindowPanelOperationEnum.TILTANDTURNLEFTHAND = { type: 3, value: "TILTANDTURNLEFTHAND" }; IfcWindowPanelOperationEnum.TOPHUNG = { type: 3, value: "TOPHUNG" }; IfcWindowPanelOperationEnum.BOTTOMHUNG = { type: 3, value: "BOTTOMHUNG" }; IfcWindowPanelOperationEnum.PIVOTHORIZONTAL = { type: 3, value: "PIVOTHORIZONTAL" }; IfcWindowPanelOperationEnum.PIVOTVERTICAL = { type: 3, value: "PIVOTVERTICAL" }; IfcWindowPanelOperationEnum.SLIDINGHORIZONTAL = { type: 3, value: "SLIDINGHORIZONTAL" }; IfcWindowPanelOperationEnum.SLIDINGVERTICAL = { type: 3, value: "SLIDINGVERTICAL" }; IfcWindowPanelOperationEnum.REMOVABLECASEMENT = { type: 3, value: "REMOVABLECASEMENT" }; IfcWindowPanelOperationEnum.FIXEDCASEMENT = { type: 3, value: "FIXEDCASEMENT" }; IfcWindowPanelOperationEnum.OTHEROPERATION = { type: 3, value: "OTHEROPERATION" }; IfcWindowPanelOperationEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC42.IfcWindowPanelOperationEnum = IfcWindowPanelOperationEnum; class IfcWindowPanelPositionEnum { } IfcWindowPanelPositionEnum.LEFT = { type: 3, value: "LEFT" }; IfcWindowPanelPositionEnum.MIDDLE = { type: 3, value: "MIDDLE" }; IfcWindowPanelPositionEnum.RIGHT = { type: 3, value: "RIGHT" }; IfcWindowPanelPositionEnum.BOTTOM = { type: 3, value: "BOTTOM" }; IfcWindowPanelPositionEnum.TOP = { type: 3, value: "TOP" }; IfcWindowPanelPositionEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC42.IfcWindowPanelPositionEnum = IfcWindowPanelPositionEnum; class IfcWindowStyleConstructionEnum { } IfcWindowStyleConstructionEnum.ALUMINIUM = { type: 3, value: "ALUMINIUM" }; IfcWindowStyleConstructionEnum.HIGH_GRADE_STEEL = { type: 3, value: "HIGH_GRADE_STEEL" }; IfcWindowStyleConstructionEnum.STEEL = { type: 3, value: "STEEL" }; IfcWindowStyleConstructionEnum.WOOD = { type: 3, value: "WOOD" }; IfcWindowStyleConstructionEnum.ALUMINIUM_WOOD = { type: 3, value: "ALUMINIUM_WOOD" }; IfcWindowStyleConstructionEnum.PLASTIC = { type: 3, value: "PLASTIC" }; IfcWindowStyleConstructionEnum.OTHER_CONSTRUCTION = { type: 3, value: "OTHER_CONSTRUCTION" }; IfcWindowStyleConstructionEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC42.IfcWindowStyleConstructionEnum = IfcWindowStyleConstructionEnum; class IfcWindowStyleOperationEnum { } IfcWindowStyleOperationEnum.SINGLE_PANEL = { type: 3, value: "SINGLE_PANEL" }; IfcWindowStyleOperationEnum.DOUBLE_PANEL_VERTICAL = { type: 3, value: "DOUBLE_PANEL_VERTICAL" }; IfcWindowStyleOperationEnum.DOUBLE_PANEL_HORIZONTAL = { type: 3, value: "DOUBLE_PANEL_HORIZONTAL" }; IfcWindowStyleOperationEnum.TRIPLE_PANEL_VERTICAL = { type: 3, value: "TRIPLE_PANEL_VERTICAL" }; IfcWindowStyleOperationEnum.TRIPLE_PANEL_BOTTOM = { type: 3, value: "TRIPLE_PANEL_BOTTOM" }; IfcWindowStyleOperationEnum.TRIPLE_PANEL_TOP = { type: 3, value: "TRIPLE_PANEL_TOP" }; IfcWindowStyleOperationEnum.TRIPLE_PANEL_LEFT = { type: 3, value: "TRIPLE_PANEL_LEFT" }; IfcWindowStyleOperationEnum.TRIPLE_PANEL_RIGHT = { type: 3, value: "TRIPLE_PANEL_RIGHT" }; IfcWindowStyleOperationEnum.TRIPLE_PANEL_HORIZONTAL = { type: 3, value: "TRIPLE_PANEL_HORIZONTAL" }; IfcWindowStyleOperationEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcWindowStyleOperationEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC42.IfcWindowStyleOperationEnum = IfcWindowStyleOperationEnum; class IfcWindowTypeEnum { } IfcWindowTypeEnum.WINDOW = { type: 3, value: "WINDOW" }; IfcWindowTypeEnum.SKYLIGHT = { type: 3, value: "SKYLIGHT" }; IfcWindowTypeEnum.LIGHTDOME = { type: 3, value: "LIGHTDOME" }; IfcWindowTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcWindowTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC42.IfcWindowTypeEnum = IfcWindowTypeEnum; class IfcWindowTypePartitioningEnum { } IfcWindowTypePartitioningEnum.SINGLE_PANEL = { type: 3, value: "SINGLE_PANEL" }; IfcWindowTypePartitioningEnum.DOUBLE_PANEL_VERTICAL = { type: 3, value: "DOUBLE_PANEL_VERTICAL" }; IfcWindowTypePartitioningEnum.DOUBLE_PANEL_HORIZONTAL = { type: 3, value: "DOUBLE_PANEL_HORIZONTAL" }; IfcWindowTypePartitioningEnum.TRIPLE_PANEL_VERTICAL = { type: 3, value: "TRIPLE_PANEL_VERTICAL" }; IfcWindowTypePartitioningEnum.TRIPLE_PANEL_BOTTOM = { type: 3, value: "TRIPLE_PANEL_BOTTOM" }; IfcWindowTypePartitioningEnum.TRIPLE_PANEL_TOP = { type: 3, value: "TRIPLE_PANEL_TOP" }; IfcWindowTypePartitioningEnum.TRIPLE_PANEL_LEFT = { type: 3, value: "TRIPLE_PANEL_LEFT" }; IfcWindowTypePartitioningEnum.TRIPLE_PANEL_RIGHT = { type: 3, value: "TRIPLE_PANEL_RIGHT" }; IfcWindowTypePartitioningEnum.TRIPLE_PANEL_HORIZONTAL = { type: 3, value: "TRIPLE_PANEL_HORIZONTAL" }; IfcWindowTypePartitioningEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcWindowTypePartitioningEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC42.IfcWindowTypePartitioningEnum = IfcWindowTypePartitioningEnum; class IfcWorkCalendarTypeEnum { } IfcWorkCalendarTypeEnum.FIRSTSHIFT = { type: 3, value: "FIRSTSHIFT" }; IfcWorkCalendarTypeEnum.SECONDSHIFT = { type: 3, value: "SECONDSHIFT" }; IfcWorkCalendarTypeEnum.THIRDSHIFT = { type: 3, value: "THIRDSHIFT" }; IfcWorkCalendarTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcWorkCalendarTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC42.IfcWorkCalendarTypeEnum = IfcWorkCalendarTypeEnum; class IfcWorkPlanTypeEnum { } IfcWorkPlanTypeEnum.ACTUAL = { type: 3, value: "ACTUAL" }; IfcWorkPlanTypeEnum.BASELINE = { type: 3, value: "BASELINE" }; IfcWorkPlanTypeEnum.PLANNED = { type: 3, value: "PLANNED" }; IfcWorkPlanTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcWorkPlanTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC42.IfcWorkPlanTypeEnum = IfcWorkPlanTypeEnum; class IfcWorkScheduleTypeEnum { } IfcWorkScheduleTypeEnum.ACTUAL = { type: 3, value: "ACTUAL" }; IfcWorkScheduleTypeEnum.BASELINE = { type: 3, value: "BASELINE" }; IfcWorkScheduleTypeEnum.PLANNED = { type: 3, value: "PLANNED" }; IfcWorkScheduleTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; IfcWorkScheduleTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; IFC42.IfcWorkScheduleTypeEnum = IfcWorkScheduleTypeEnum; class IfcActorRole extends IfcLineObject { constructor(expressID, Role, UserDefinedRole, Description) { super(expressID); this.Role = Role; this.UserDefinedRole = UserDefinedRole; this.Description = Description; this.type = 3630933823; } } IFC42.IfcActorRole = IfcActorRole; class IfcAddress extends IfcLineObject { constructor(expressID, Purpose, Description, UserDefinedPurpose) { super(expressID); this.Purpose = Purpose; this.Description = Description; this.UserDefinedPurpose = UserDefinedPurpose; this.type = 618182010; } } IFC42.IfcAddress = IfcAddress; class IfcApplication extends IfcLineObject { constructor(expressID, ApplicationDeveloper, Version, ApplicationFullName, ApplicationIdentifier) { super(expressID); this.ApplicationDeveloper = ApplicationDeveloper; this.Version = Version; this.ApplicationFullName = ApplicationFullName; this.ApplicationIdentifier = ApplicationIdentifier; this.type = 639542469; } } IFC42.IfcApplication = IfcApplication; class IfcAppliedValue extends IfcLineObject { constructor(expressID, Name, Description, AppliedValue, UnitBasis, ApplicableDate, FixedUntilDate, Category, Condition, ArithmeticOperator, Components) { super(expressID); this.Name = Name; this.Description = Description; this.AppliedValue = AppliedValue; this.UnitBasis = UnitBasis; this.ApplicableDate = ApplicableDate; this.FixedUntilDate = FixedUntilDate; this.Category = Category; this.Condition = Condition; this.ArithmeticOperator = ArithmeticOperator; this.Components = Components; this.type = 411424972; } } IFC42.IfcAppliedValue = IfcAppliedValue; class IfcApproval extends IfcLineObject { constructor(expressID, Identifier, Name, Description, TimeOfApproval, Status, Level, Qualifier, RequestingApproval, GivingApproval) { super(expressID); this.Identifier = Identifier; this.Name = Name; this.Description = Description; this.TimeOfApproval = TimeOfApproval; this.Status = Status; this.Level = Level; this.Qualifier = Qualifier; this.RequestingApproval = RequestingApproval; this.GivingApproval = GivingApproval; this.type = 130549933; } } IFC42.IfcApproval = IfcApproval; class IfcBoundaryCondition extends IfcLineObject { constructor(expressID, Name) { super(expressID); this.Name = Name; this.type = 4037036970; } } IFC42.IfcBoundaryCondition = IfcBoundaryCondition; class IfcBoundaryEdgeCondition extends IfcBoundaryCondition { constructor(expressID, Name, TranslationalStiffnessByLengthX, TranslationalStiffnessByLengthY, TranslationalStiffnessByLengthZ, RotationalStiffnessByLengthX, RotationalStiffnessByLengthY, RotationalStiffnessByLengthZ) { super(expressID, Name); this.Name = Name; this.TranslationalStiffnessByLengthX = TranslationalStiffnessByLengthX; this.TranslationalStiffnessByLengthY = TranslationalStiffnessByLengthY; this.TranslationalStiffnessByLengthZ = TranslationalStiffnessByLengthZ; this.RotationalStiffnessByLengthX = RotationalStiffnessByLengthX; this.RotationalStiffnessByLengthY = RotationalStiffnessByLengthY; this.RotationalStiffnessByLengthZ = RotationalStiffnessByLengthZ; this.type = 1560379544; } } IFC42.IfcBoundaryEdgeCondition = IfcBoundaryEdgeCondition; class IfcBoundaryFaceCondition extends IfcBoundaryCondition { constructor(expressID, Name, TranslationalStiffnessByAreaX, TranslationalStiffnessByAreaY, TranslationalStiffnessByAreaZ) { super(expressID, Name); this.Name = Name; this.TranslationalStiffnessByAreaX = TranslationalStiffnessByAreaX; this.TranslationalStiffnessByAreaY = TranslationalStiffnessByAreaY; this.TranslationalStiffnessByAreaZ = TranslationalStiffnessByAreaZ; this.type = 3367102660; } } IFC42.IfcBoundaryFaceCondition = IfcBoundaryFaceCondition; class IfcBoundaryNodeCondition extends IfcBoundaryCondition { constructor(expressID, Name, TranslationalStiffnessX, TranslationalStiffnessY, TranslationalStiffnessZ, RotationalStiffnessX, RotationalStiffnessY, RotationalStiffnessZ) { super(expressID, Name); this.Name = Name; this.TranslationalStiffnessX = TranslationalStiffnessX; this.TranslationalStiffnessY = TranslationalStiffnessY; this.TranslationalStiffnessZ = TranslationalStiffnessZ; this.RotationalStiffnessX = RotationalStiffnessX; this.RotationalStiffnessY = RotationalStiffnessY; this.RotationalStiffnessZ = RotationalStiffnessZ; this.type = 1387855156; } } IFC42.IfcBoundaryNodeCondition = IfcBoundaryNodeCondition; class IfcBoundaryNodeConditionWarping extends IfcBoundaryNodeCondition { constructor(expressID, Name, TranslationalStiffnessX, TranslationalStiffnessY, TranslationalStiffnessZ, RotationalStiffnessX, RotationalStiffnessY, RotationalStiffnessZ, WarpingStiffness) { super(expressID, Name, TranslationalStiffnessX, TranslationalStiffnessY, TranslationalStiffnessZ, RotationalStiffnessX, RotationalStiffnessY, RotationalStiffnessZ); this.Name = Name; this.TranslationalStiffnessX = TranslationalStiffnessX; this.TranslationalStiffnessY = TranslationalStiffnessY; this.TranslationalStiffnessZ = TranslationalStiffnessZ; this.RotationalStiffnessX = RotationalStiffnessX; this.RotationalStiffnessY = RotationalStiffnessY; this.RotationalStiffnessZ = RotationalStiffnessZ; this.WarpingStiffness = WarpingStiffness; this.type = 2069777674; } } IFC42.IfcBoundaryNodeConditionWarping = IfcBoundaryNodeConditionWarping; class IfcConnectionGeometry extends IfcLineObject { constructor(expressID) { super(expressID); this.type = 2859738748; } } IFC42.IfcConnectionGeometry = IfcConnectionGeometry; class IfcConnectionPointGeometry extends IfcConnectionGeometry { constructor(expressID, PointOnRelatingElement, PointOnRelatedElement) { super(expressID); this.PointOnRelatingElement = PointOnRelatingElement; this.PointOnRelatedElement = PointOnRelatedElement; this.type = 2614616156; } } IFC42.IfcConnectionPointGeometry = IfcConnectionPointGeometry; class IfcConnectionSurfaceGeometry extends IfcConnectionGeometry { constructor(expressID, SurfaceOnRelatingElement, SurfaceOnRelatedElement) { super(expressID); this.SurfaceOnRelatingElement = SurfaceOnRelatingElement; this.SurfaceOnRelatedElement = SurfaceOnRelatedElement; this.type = 2732653382; } } IFC42.IfcConnectionSurfaceGeometry = IfcConnectionSurfaceGeometry; class IfcConnectionVolumeGeometry extends IfcConnectionGeometry { constructor(expressID, VolumeOnRelatingElement, VolumeOnRelatedElement) { super(expressID); this.VolumeOnRelatingElement = VolumeOnRelatingElement; this.VolumeOnRelatedElement = VolumeOnRelatedElement; this.type = 775493141; } } IFC42.IfcConnectionVolumeGeometry = IfcConnectionVolumeGeometry; class IfcConstraint extends IfcLineObject { constructor(expressID, Name, Description, ConstraintGrade, ConstraintSource, CreatingActor, CreationTime, UserDefinedGrade) { super(expressID); this.Name = Name; this.Description = Description; this.ConstraintGrade = ConstraintGrade; this.ConstraintSource = ConstraintSource; this.CreatingActor = CreatingActor; this.CreationTime = CreationTime; this.UserDefinedGrade = UserDefinedGrade; this.type = 1959218052; } } IFC42.IfcConstraint = IfcConstraint; class IfcCoordinateOperation extends IfcLineObject { constructor(expressID, SourceCRS, TargetCRS) { super(expressID); this.SourceCRS = SourceCRS; this.TargetCRS = TargetCRS; this.type = 1785450214; } } IFC42.IfcCoordinateOperation = IfcCoordinateOperation; class IfcCoordinateReferenceSystem extends IfcLineObject { constructor(expressID, Name, Description, GeodeticDatum, VerticalDatum) { super(expressID); this.Name = Name; this.Description = Description; this.GeodeticDatum = GeodeticDatum; this.VerticalDatum = VerticalDatum; this.type = 1466758467; } } IFC42.IfcCoordinateReferenceSystem = IfcCoordinateReferenceSystem; class IfcCostValue extends IfcAppliedValue { constructor(expressID, Name, Description, AppliedValue, UnitBasis, ApplicableDate, FixedUntilDate, Category, Condition, ArithmeticOperator, Components) { super(expressID, Name, Description, AppliedValue, UnitBasis, ApplicableDate, FixedUntilDate, Category, Condition, ArithmeticOperator, Components); this.Name = Name; this.Description = Description; this.AppliedValue = AppliedValue; this.UnitBasis = UnitBasis; this.ApplicableDate = ApplicableDate; this.FixedUntilDate = FixedUntilDate; this.Category = Category; this.Condition = Condition; this.ArithmeticOperator = ArithmeticOperator; this.Components = Components; this.type = 602808272; } } IFC42.IfcCostValue = IfcCostValue; class IfcDerivedUnit extends IfcLineObject { constructor(expressID, Elements, UnitType, UserDefinedType) { super(expressID); this.Elements = Elements; this.UnitType = UnitType; this.UserDefinedType = UserDefinedType; this.type = 1765591967; } } IFC42.IfcDerivedUnit = IfcDerivedUnit; class IfcDerivedUnitElement extends IfcLineObject { constructor(expressID, Unit, Exponent) { super(expressID); this.Unit = Unit; this.Exponent = Exponent; this.type = 1045800335; } } IFC42.IfcDerivedUnitElement = IfcDerivedUnitElement; class IfcDimensionalExponents extends IfcLineObject { constructor(expressID, LengthExponent, MassExponent, TimeExponent, ElectricCurrentExponent, ThermodynamicTemperatureExponent, AmountOfSubstanceExponent, LuminousIntensityExponent) { super(expressID); this.LengthExponent = LengthExponent; this.MassExponent = MassExponent; this.TimeExponent = TimeExponent; this.ElectricCurrentExponent = ElectricCurrentExponent; this.ThermodynamicTemperatureExponent = ThermodynamicTemperatureExponent; this.AmountOfSubstanceExponent = AmountOfSubstanceExponent; this.LuminousIntensityExponent = LuminousIntensityExponent; this.type = 2949456006; } } IFC42.IfcDimensionalExponents = IfcDimensionalExponents; class IfcExternalInformation extends IfcLineObject { constructor(expressID) { super(expressID); this.type = 4294318154; } } IFC42.IfcExternalInformation = IfcExternalInformation; class IfcExternalReference extends IfcLineObject { constructor(expressID, Location, Identification, Name) { super(expressID); this.Location = Location; this.Identification = Identification; this.Name = Name; this.type = 3200245327; } } IFC42.IfcExternalReference = IfcExternalReference; class IfcExternallyDefinedHatchStyle extends IfcExternalReference { constructor(expressID, Location, Identification, Name) { super(expressID, Location, Identification, Name); this.Location = Location; this.Identification = Identification; this.Name = Name; this.type = 2242383968; } } IFC42.IfcExternallyDefinedHatchStyle = IfcExternallyDefinedHatchStyle; class IfcExternallyDefinedSurfaceStyle extends IfcExternalReference { constructor(expressID, Location, Identification, Name) { super(expressID, Location, Identification, Name); this.Location = Location; this.Identification = Identification; this.Name = Name; this.type = 1040185647; } } IFC42.IfcExternallyDefinedSurfaceStyle = IfcExternallyDefinedSurfaceStyle; class IfcExternallyDefinedTextFont extends IfcExternalReference { constructor(expressID, Location, Identification, Name) { super(expressID, Location, Identification, Name); this.Location = Location; this.Identification = Identification; this.Name = Name; this.type = 3548104201; } } IFC42.IfcExternallyDefinedTextFont = IfcExternallyDefinedTextFont; class IfcGridAxis extends IfcLineObject { constructor(expressID, AxisTag, AxisCurve, SameSense) { super(expressID); this.AxisTag = AxisTag; this.AxisCurve = AxisCurve; this.SameSense = SameSense; this.type = 852622518; } } IFC42.IfcGridAxis = IfcGridAxis; class IfcIrregularTimeSeriesValue extends IfcLineObject { constructor(expressID, TimeStamp, ListValues) { super(expressID); this.TimeStamp = TimeStamp; this.ListValues = ListValues; this.type = 3020489413; } } IFC42.IfcIrregularTimeSeriesValue = IfcIrregularTimeSeriesValue; class IfcLibraryInformation extends IfcExternalInformation { constructor(expressID, Name, Version, Publisher, VersionDate, Location, Description) { super(expressID); this.Name = Name; this.Version = Version; this.Publisher = Publisher; this.VersionDate = VersionDate; this.Location = Location; this.Description = Description; this.type = 2655187982; } } IFC42.IfcLibraryInformation = IfcLibraryInformation; class IfcLibraryReference extends IfcExternalReference { constructor(expressID, Location, Identification, Name, Description, Language, ReferencedLibrary) { super(expressID, Location, Identification, Name); this.Location = Location; this.Identification = Identification; this.Name = Name; this.Description = Description; this.Language = Language; this.ReferencedLibrary = ReferencedLibrary; this.type = 3452421091; } } IFC42.IfcLibraryReference = IfcLibraryReference; class IfcLightDistributionData extends IfcLineObject { constructor(expressID, MainPlaneAngle, SecondaryPlaneAngle, LuminousIntensity) { super(expressID); this.MainPlaneAngle = MainPlaneAngle; this.SecondaryPlaneAngle = SecondaryPlaneAngle; this.LuminousIntensity = LuminousIntensity; this.type = 4162380809; } } IFC42.IfcLightDistributionData = IfcLightDistributionData; class IfcLightIntensityDistribution extends IfcLineObject { constructor(expressID, LightDistributionCurve, DistributionData) { super(expressID); this.LightDistributionCurve = LightDistributionCurve; this.DistributionData = DistributionData; this.type = 1566485204; } } IFC42.IfcLightIntensityDistribution = IfcLightIntensityDistribution; class IfcMapConversion extends IfcCoordinateOperation { constructor(expressID, SourceCRS, TargetCRS, Eastings, Northings, OrthogonalHeight, XAxisAbscissa, XAxisOrdinate, Scale) { super(expressID, SourceCRS, TargetCRS); this.SourceCRS = SourceCRS; this.TargetCRS = TargetCRS; this.Eastings = Eastings; this.Northings = Northings; this.OrthogonalHeight = OrthogonalHeight; this.XAxisAbscissa = XAxisAbscissa; this.XAxisOrdinate = XAxisOrdinate; this.Scale = Scale; this.type = 3057273783; } } IFC42.IfcMapConversion = IfcMapConversion; class IfcMaterialClassificationRelationship extends IfcLineObject { constructor(expressID, MaterialClassifications, ClassifiedMaterial) { super(expressID); this.MaterialClassifications = MaterialClassifications; this.ClassifiedMaterial = ClassifiedMaterial; this.type = 1847130766; } } IFC42.IfcMaterialClassificationRelationship = IfcMaterialClassificationRelationship; class IfcMaterialDefinition extends IfcLineObject { constructor(expressID) { super(expressID); this.type = 760658860; } } IFC42.IfcMaterialDefinition = IfcMaterialDefinition; class IfcMaterialLayer extends IfcMaterialDefinition { constructor(expressID, Material, LayerThickness, IsVentilated, Name, Description, Category, Priority) { super(expressID); this.Material = Material; this.LayerThickness = LayerThickness; this.IsVentilated = IsVentilated; this.Name = Name; this.Description = Description; this.Category = Category; this.Priority = Priority; this.type = 248100487; } } IFC42.IfcMaterialLayer = IfcMaterialLayer; class IfcMaterialLayerSet extends IfcMaterialDefinition { constructor(expressID, MaterialLayers, LayerSetName, Description) { super(expressID); this.MaterialLayers = MaterialLayers; this.LayerSetName = LayerSetName; this.Description = Description; this.type = 3303938423; } } IFC42.IfcMaterialLayerSet = IfcMaterialLayerSet; class IfcMaterialLayerWithOffsets extends IfcMaterialLayer { constructor(expressID, Material, LayerThickness, IsVentilated, Name, Description, Category, Priority, OffsetDirection, OffsetValues) { super(expressID, Material, LayerThickness, IsVentilated, Name, Description, Category, Priority); this.Material = Material; this.LayerThickness = LayerThickness; this.IsVentilated = IsVentilated; this.Name = Name; this.Description = Description; this.Category = Category; this.Priority = Priority; this.OffsetDirection = OffsetDirection; this.OffsetValues = OffsetValues; this.type = 1847252529; } } IFC42.IfcMaterialLayerWithOffsets = IfcMaterialLayerWithOffsets; class IfcMaterialList extends IfcLineObject { constructor(expressID, Materials) { super(expressID); this.Materials = Materials; this.type = 2199411900; } } IFC42.IfcMaterialList = IfcMaterialList; class IfcMaterialProfile extends IfcMaterialDefinition { constructor(expressID, Name, Description, Material, Profile, Priority, Category) { super(expressID); this.Name = Name; this.Description = Description; this.Material = Material; this.Profile = Profile; this.Priority = Priority; this.Category = Category; this.type = 2235152071; } } IFC42.IfcMaterialProfile = IfcMaterialProfile; class IfcMaterialProfileSet extends IfcMaterialDefinition { constructor(expressID, Name, Description, MaterialProfiles, CompositeProfile) { super(expressID); this.Name = Name; this.Description = Description; this.MaterialProfiles = MaterialProfiles; this.CompositeProfile = CompositeProfile; this.type = 164193824; } } IFC42.IfcMaterialProfileSet = IfcMaterialProfileSet; class IfcMaterialProfileWithOffsets extends IfcMaterialProfile { constructor(expressID, Name, Description, Material, Profile, Priority, Category, OffsetValues) { super(expressID, Name, Description, Material, Profile, Priority, Category); this.Name = Name; this.Description = Description; this.Material = Material; this.Profile = Profile; this.Priority = Priority; this.Category = Category; this.OffsetValues = OffsetValues; this.type = 552965576; } } IFC42.IfcMaterialProfileWithOffsets = IfcMaterialProfileWithOffsets; class IfcMaterialUsageDefinition extends IfcLineObject { constructor(expressID) { super(expressID); this.type = 1507914824; } } IFC42.IfcMaterialUsageDefinition = IfcMaterialUsageDefinition; class IfcMeasureWithUnit extends IfcLineObject { constructor(expressID, ValueComponent, UnitComponent) { super(expressID); this.ValueComponent = ValueComponent; this.UnitComponent = UnitComponent; this.type = 2597039031; } } IFC42.IfcMeasureWithUnit = IfcMeasureWithUnit; class IfcMetric extends IfcConstraint { constructor(expressID, Name, Description, ConstraintGrade, ConstraintSource, CreatingActor, CreationTime, UserDefinedGrade, Benchmark, ValueSource, DataValue, ReferencePath) { super(expressID, Name, Description, ConstraintGrade, ConstraintSource, CreatingActor, CreationTime, UserDefinedGrade); this.Name = Name; this.Description = Description; this.ConstraintGrade = ConstraintGrade; this.ConstraintSource = ConstraintSource; this.CreatingActor = CreatingActor; this.CreationTime = CreationTime; this.UserDefinedGrade = UserDefinedGrade; this.Benchmark = Benchmark; this.ValueSource = ValueSource; this.DataValue = DataValue; this.ReferencePath = ReferencePath; this.type = 3368373690; } } IFC42.IfcMetric = IfcMetric; class IfcMonetaryUnit extends IfcLineObject { constructor(expressID, Currency) { super(expressID); this.Currency = Currency; this.type = 2706619895; } } IFC42.IfcMonetaryUnit = IfcMonetaryUnit; class IfcNamedUnit extends IfcLineObject { constructor(expressID, Dimensions, UnitType) { super(expressID); this.Dimensions = Dimensions; this.UnitType = UnitType; this.type = 1918398963; } } IFC42.IfcNamedUnit = IfcNamedUnit; class IfcObjectPlacement extends IfcLineObject { constructor(expressID) { super(expressID); this.type = 3701648758; } } IFC42.IfcObjectPlacement = IfcObjectPlacement; class IfcObjective extends IfcConstraint { constructor(expressID, Name, Description, ConstraintGrade, ConstraintSource, CreatingActor, CreationTime, UserDefinedGrade, BenchmarkValues, LogicalAggregator, ObjectiveQualifier, UserDefinedQualifier) { super(expressID, Name, Description, ConstraintGrade, ConstraintSource, CreatingActor, CreationTime, UserDefinedGrade); this.Name = Name; this.Description = Description; this.ConstraintGrade = ConstraintGrade; this.ConstraintSource = ConstraintSource; this.CreatingActor = CreatingActor; this.CreationTime = CreationTime; this.UserDefinedGrade = UserDefinedGrade; this.BenchmarkValues = BenchmarkValues; this.LogicalAggregator = LogicalAggregator; this.ObjectiveQualifier = ObjectiveQualifier; this.UserDefinedQualifier = UserDefinedQualifier; this.type = 2251480897; } } IFC42.IfcObjective = IfcObjective; class IfcOrganization extends IfcLineObject { constructor(expressID, Identification, Name, Description, Roles, Addresses) { super(expressID); this.Identification = Identification; this.Name = Name; this.Description = Description; this.Roles = Roles; this.Addresses = Addresses; this.type = 4251960020; } } IFC42.IfcOrganization = IfcOrganization; class IfcOwnerHistory extends IfcLineObject { constructor(expressID, OwningUser, OwningApplication, State, ChangeAction, LastModifiedDate, LastModifyingUser, LastModifyingApplication, CreationDate) { super(expressID); this.OwningUser = OwningUser; this.OwningApplication = OwningApplication; this.State = State; this.ChangeAction = ChangeAction; this.LastModifiedDate = LastModifiedDate; this.LastModifyingUser = LastModifyingUser; this.LastModifyingApplication = LastModifyingApplication; this.CreationDate = CreationDate; this.type = 1207048766; } } IFC42.IfcOwnerHistory = IfcOwnerHistory; class IfcPerson extends IfcLineObject { constructor(expressID, Identification, FamilyName, GivenName, MiddleNames, PrefixTitles, SuffixTitles, Roles, Addresses) { super(expressID); this.Identification = Identification; this.FamilyName = FamilyName; this.GivenName = GivenName; this.MiddleNames = MiddleNames; this.PrefixTitles = PrefixTitles; this.SuffixTitles = SuffixTitles; this.Roles = Roles; this.Addresses = Addresses; this.type = 2077209135; } } IFC42.IfcPerson = IfcPerson; class IfcPersonAndOrganization extends IfcLineObject { constructor(expressID, ThePerson, TheOrganization, Roles) { super(expressID); this.ThePerson = ThePerson; this.TheOrganization = TheOrganization; this.Roles = Roles; this.type = 101040310; } } IFC42.IfcPersonAndOrganization = IfcPersonAndOrganization; class IfcPhysicalQuantity extends IfcLineObject { constructor(expressID, Name, Description) { super(expressID); this.Name = Name; this.Description = Description; this.type = 2483315170; } } IFC42.IfcPhysicalQuantity = IfcPhysicalQuantity; class IfcPhysicalSimpleQuantity extends IfcPhysicalQuantity { constructor(expressID, Name, Description, Unit) { super(expressID, Name, Description); this.Name = Name; this.Description = Description; this.Unit = Unit; this.type = 2226359599; } } IFC42.IfcPhysicalSimpleQuantity = IfcPhysicalSimpleQuantity; class IfcPostalAddress extends IfcAddress { constructor(expressID, Purpose, Description, UserDefinedPurpose, InternalLocation, AddressLines, PostalBox, Town, Region, PostalCode, Country) { super(expressID, Purpose, Description, UserDefinedPurpose); this.Purpose = Purpose; this.Description = Description; this.UserDefinedPurpose = UserDefinedPurpose; this.InternalLocation = InternalLocation; this.AddressLines = AddressLines; this.PostalBox = PostalBox; this.Town = Town; this.Region = Region; this.PostalCode = PostalCode; this.Country = Country; this.type = 3355820592; } } IFC42.IfcPostalAddress = IfcPostalAddress; class IfcPresentationItem extends IfcLineObject { constructor(expressID) { super(expressID); this.type = 677532197; } } IFC42.IfcPresentationItem = IfcPresentationItem; class IfcPresentationLayerAssignment extends IfcLineObject { constructor(expressID, Name, Description, AssignedItems, Identifier) { super(expressID); this.Name = Name; this.Description = Description; this.AssignedItems = AssignedItems; this.Identifier = Identifier; this.type = 2022622350; } } IFC42.IfcPresentationLayerAssignment = IfcPresentationLayerAssignment; class IfcPresentationLayerWithStyle extends IfcPresentationLayerAssignment { constructor(expressID, Name, Description, AssignedItems, Identifier, LayerOn, LayerFrozen, LayerBlocked, LayerStyles) { super(expressID, Name, Description, AssignedItems, Identifier); this.Name = Name; this.Description = Description; this.AssignedItems = AssignedItems; this.Identifier = Identifier; this.LayerOn = LayerOn; this.LayerFrozen = LayerFrozen; this.LayerBlocked = LayerBlocked; this.LayerStyles = LayerStyles; this.type = 1304840413; } } IFC42.IfcPresentationLayerWithStyle = IfcPresentationLayerWithStyle; class IfcPresentationStyle extends IfcLineObject { constructor(expressID, Name) { super(expressID); this.Name = Name; this.type = 3119450353; } } IFC42.IfcPresentationStyle = IfcPresentationStyle; class IfcPresentationStyleAssignment extends IfcLineObject { constructor(expressID, Styles) { super(expressID); this.Styles = Styles; this.type = 2417041796; } } IFC42.IfcPresentationStyleAssignment = IfcPresentationStyleAssignment; class IfcProductRepresentation extends IfcLineObject { constructor(expressID, Name, Description, Representations) { super(expressID); this.Name = Name; this.Description = Description; this.Representations = Representations; this.type = 2095639259; } } IFC42.IfcProductRepresentation = IfcProductRepresentation; class IfcProfileDef extends IfcLineObject { constructor(expressID, ProfileType, ProfileName) { super(expressID); this.ProfileType = ProfileType; this.ProfileName = ProfileName; this.type = 3958567839; } } IFC42.IfcProfileDef = IfcProfileDef; class IfcProjectedCRS extends IfcCoordinateReferenceSystem { constructor(expressID, Name, Description, GeodeticDatum, VerticalDatum, MapProjection, MapZone, MapUnit) { super(expressID, Name, Description, GeodeticDatum, VerticalDatum); this.Name = Name; this.Description = Description; this.GeodeticDatum = GeodeticDatum; this.VerticalDatum = VerticalDatum; this.MapProjection = MapProjection; this.MapZone = MapZone; this.MapUnit = MapUnit; this.type = 3843373140; } } IFC42.IfcProjectedCRS = IfcProjectedCRS; class IfcPropertyAbstraction extends IfcLineObject { constructor(expressID) { super(expressID); this.type = 986844984; } } IFC42.IfcPropertyAbstraction = IfcPropertyAbstraction; class IfcPropertyEnumeration extends IfcPropertyAbstraction { constructor(expressID, Name, EnumerationValues, Unit) { super(expressID); this.Name = Name; this.EnumerationValues = EnumerationValues; this.Unit = Unit; this.type = 3710013099; } } IFC42.IfcPropertyEnumeration = IfcPropertyEnumeration; class IfcQuantityArea extends IfcPhysicalSimpleQuantity { constructor(expressID, Name, Description, Unit, AreaValue, Formula) { super(expressID, Name, Description, Unit); this.Name = Name; this.Description = Description; this.Unit = Unit; this.AreaValue = AreaValue; this.Formula = Formula; this.type = 2044713172; } } IFC42.IfcQuantityArea = IfcQuantityArea; class IfcQuantityCount extends IfcPhysicalSimpleQuantity { constructor(expressID, Name, Description, Unit, CountValue, Formula) { super(expressID, Name, Description, Unit); this.Name = Name; this.Description = Description; this.Unit = Unit; this.CountValue = CountValue; this.Formula = Formula; this.type = 2093928680; } } IFC42.IfcQuantityCount = IfcQuantityCount; class IfcQuantityLength extends IfcPhysicalSimpleQuantity { constructor(expressID, Name, Description, Unit, LengthValue, Formula) { super(expressID, Name, Description, Unit); this.Name = Name; this.Description = Description; this.Unit = Unit; this.LengthValue = LengthValue; this.Formula = Formula; this.type = 931644368; } } IFC42.IfcQuantityLength = IfcQuantityLength; class IfcQuantityTime extends IfcPhysicalSimpleQuantity { constructor(expressID, Name, Description, Unit, TimeValue, Formula) { super(expressID, Name, Description, Unit); this.Name = Name; this.Description = Description; this.Unit = Unit; this.TimeValue = TimeValue; this.Formula = Formula; this.type = 3252649465; } } IFC42.IfcQuantityTime = IfcQuantityTime; class IfcQuantityVolume extends IfcPhysicalSimpleQuantity { constructor(expressID, Name, Description, Unit, VolumeValue, Formula) { super(expressID, Name, Description, Unit); this.Name = Name; this.Description = Description; this.Unit = Unit; this.VolumeValue = VolumeValue; this.Formula = Formula; this.type = 2405470396; } } IFC42.IfcQuantityVolume = IfcQuantityVolume; class IfcQuantityWeight extends IfcPhysicalSimpleQuantity { constructor(expressID, Name, Description, Unit, WeightValue, Formula) { super(expressID, Name, Description, Unit); this.Name = Name; this.Description = Description; this.Unit = Unit; this.WeightValue = WeightValue; this.Formula = Formula; this.type = 825690147; } } IFC42.IfcQuantityWeight = IfcQuantityWeight; class IfcRecurrencePattern extends IfcLineObject { constructor(expressID, RecurrenceType, DayComponent, WeekdayComponent, MonthComponent, Position, Interval, Occurrences, TimePeriods) { super(expressID); this.RecurrenceType = RecurrenceType; this.DayComponent = DayComponent; this.WeekdayComponent = WeekdayComponent; this.MonthComponent = MonthComponent; this.Position = Position; this.Interval = Interval; this.Occurrences = Occurrences; this.TimePeriods = TimePeriods; this.type = 3915482550; } } IFC42.IfcRecurrencePattern = IfcRecurrencePattern; class IfcReference extends IfcLineObject { constructor(expressID, TypeIdentifier, AttributeIdentifier, InstanceName, ListPositions, InnerReference) { super(expressID); this.TypeIdentifier = TypeIdentifier; this.AttributeIdentifier = AttributeIdentifier; this.InstanceName = InstanceName; this.ListPositions = ListPositions; this.InnerReference = InnerReference; this.type = 2433181523; } } IFC42.IfcReference = IfcReference; class IfcRepresentation extends IfcLineObject { constructor(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items) { super(expressID); this.ContextOfItems = ContextOfItems; this.RepresentationIdentifier = RepresentationIdentifier; this.RepresentationType = RepresentationType; this.Items = Items; this.type = 1076942058; } } IFC42.IfcRepresentation = IfcRepresentation; class IfcRepresentationContext extends IfcLineObject { constructor(expressID, ContextIdentifier, ContextType) { super(expressID); this.ContextIdentifier = ContextIdentifier; this.ContextType = ContextType; this.type = 3377609919; } } IFC42.IfcRepresentationContext = IfcRepresentationContext; class IfcRepresentationItem extends IfcLineObject { constructor(expressID) { super(expressID); this.type = 3008791417; } } IFC42.IfcRepresentationItem = IfcRepresentationItem; class IfcRepresentationMap extends IfcLineObject { constructor(expressID, MappingOrigin, MappedRepresentation) { super(expressID); this.MappingOrigin = MappingOrigin; this.MappedRepresentation = MappedRepresentation; this.type = 1660063152; } } IFC42.IfcRepresentationMap = IfcRepresentationMap; class IfcResourceLevelRelationship extends IfcLineObject { constructor(expressID, Name, Description) { super(expressID); this.Name = Name; this.Description = Description; this.type = 2439245199; } } IFC42.IfcResourceLevelRelationship = IfcResourceLevelRelationship; class IfcRoot extends IfcLineObject { constructor(expressID, GlobalId, OwnerHistory, Name, Description) { super(expressID); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.type = 2341007311; } } IFC42.IfcRoot = IfcRoot; class IfcSIUnit extends IfcNamedUnit { constructor(expressID, UnitType, Prefix, Name) { super(expressID, new Handle(0), UnitType); this.UnitType = UnitType; this.Prefix = Prefix; this.Name = Name; this.type = 448429030; } } IFC42.IfcSIUnit = IfcSIUnit; class IfcSchedulingTime extends IfcLineObject { constructor(expressID, Name, DataOrigin, UserDefinedDataOrigin) { super(expressID); this.Name = Name; this.DataOrigin = DataOrigin; this.UserDefinedDataOrigin = UserDefinedDataOrigin; this.type = 1054537805; } } IFC42.IfcSchedulingTime = IfcSchedulingTime; class IfcShapeAspect extends IfcLineObject { constructor(expressID, ShapeRepresentations, Name, Description, ProductDefinitional, PartOfProductDefinitionShape) { super(expressID); this.ShapeRepresentations = ShapeRepresentations; this.Name = Name; this.Description = Description; this.ProductDefinitional = ProductDefinitional; this.PartOfProductDefinitionShape = PartOfProductDefinitionShape; this.type = 867548509; } } IFC42.IfcShapeAspect = IfcShapeAspect; class IfcShapeModel extends IfcRepresentation { constructor(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items) { super(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items); this.ContextOfItems = ContextOfItems; this.RepresentationIdentifier = RepresentationIdentifier; this.RepresentationType = RepresentationType; this.Items = Items; this.type = 3982875396; } } IFC42.IfcShapeModel = IfcShapeModel; class IfcShapeRepresentation extends IfcShapeModel { constructor(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items) { super(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items); this.ContextOfItems = ContextOfItems; this.RepresentationIdentifier = RepresentationIdentifier; this.RepresentationType = RepresentationType; this.Items = Items; this.type = 4240577450; } } IFC42.IfcShapeRepresentation = IfcShapeRepresentation; class IfcStructuralConnectionCondition extends IfcLineObject { constructor(expressID, Name) { super(expressID); this.Name = Name; this.type = 2273995522; } } IFC42.IfcStructuralConnectionCondition = IfcStructuralConnectionCondition; class IfcStructuralLoad extends IfcLineObject { constructor(expressID, Name) { super(expressID); this.Name = Name; this.type = 2162789131; } } IFC42.IfcStructuralLoad = IfcStructuralLoad; class IfcStructuralLoadConfiguration extends IfcStructuralLoad { constructor(expressID, Name, Values, Locations) { super(expressID, Name); this.Name = Name; this.Values = Values; this.Locations = Locations; this.type = 3478079324; } } IFC42.IfcStructuralLoadConfiguration = IfcStructuralLoadConfiguration; class IfcStructuralLoadOrResult extends IfcStructuralLoad { constructor(expressID, Name) { super(expressID, Name); this.Name = Name; this.type = 609421318; } } IFC42.IfcStructuralLoadOrResult = IfcStructuralLoadOrResult; class IfcStructuralLoadStatic extends IfcStructuralLoadOrResult { constructor(expressID, Name) { super(expressID, Name); this.Name = Name; this.type = 2525727697; } } IFC42.IfcStructuralLoadStatic = IfcStructuralLoadStatic; class IfcStructuralLoadTemperature extends IfcStructuralLoadStatic { constructor(expressID, Name, DeltaTConstant, DeltaTY, DeltaTZ) { super(expressID, Name); this.Name = Name; this.DeltaTConstant = DeltaTConstant; this.DeltaTY = DeltaTY; this.DeltaTZ = DeltaTZ; this.type = 3408363356; } } IFC42.IfcStructuralLoadTemperature = IfcStructuralLoadTemperature; class IfcStyleModel extends IfcRepresentation { constructor(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items) { super(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items); this.ContextOfItems = ContextOfItems; this.RepresentationIdentifier = RepresentationIdentifier; this.RepresentationType = RepresentationType; this.Items = Items; this.type = 2830218821; } } IFC42.IfcStyleModel = IfcStyleModel; class IfcStyledItem extends IfcRepresentationItem { constructor(expressID, Item, Styles, Name) { super(expressID); this.Item = Item; this.Styles = Styles; this.Name = Name; this.type = 3958052878; } } IFC42.IfcStyledItem = IfcStyledItem; class IfcStyledRepresentation extends IfcStyleModel { constructor(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items) { super(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items); this.ContextOfItems = ContextOfItems; this.RepresentationIdentifier = RepresentationIdentifier; this.RepresentationType = RepresentationType; this.Items = Items; this.type = 3049322572; } } IFC42.IfcStyledRepresentation = IfcStyledRepresentation; class IfcSurfaceReinforcementArea extends IfcStructuralLoadOrResult { constructor(expressID, Name, SurfaceReinforcement1, SurfaceReinforcement2, ShearReinforcement) { super(expressID, Name); this.Name = Name; this.SurfaceReinforcement1 = SurfaceReinforcement1; this.SurfaceReinforcement2 = SurfaceReinforcement2; this.ShearReinforcement = ShearReinforcement; this.type = 2934153892; } } IFC42.IfcSurfaceReinforcementArea = IfcSurfaceReinforcementArea; class IfcSurfaceStyle extends IfcPresentationStyle { constructor(expressID, Name, Side, Styles) { super(expressID, Name); this.Name = Name; this.Side = Side; this.Styles = Styles; this.type = 1300840506; } } IFC42.IfcSurfaceStyle = IfcSurfaceStyle; class IfcSurfaceStyleLighting extends IfcPresentationItem { constructor(expressID, DiffuseTransmissionColour, DiffuseReflectionColour, TransmissionColour, ReflectanceColour) { super(expressID); this.DiffuseTransmissionColour = DiffuseTransmissionColour; this.DiffuseReflectionColour = DiffuseReflectionColour; this.TransmissionColour = TransmissionColour; this.ReflectanceColour = ReflectanceColour; this.type = 3303107099; } } IFC42.IfcSurfaceStyleLighting = IfcSurfaceStyleLighting; class IfcSurfaceStyleRefraction extends IfcPresentationItem { constructor(expressID, RefractionIndex, DispersionFactor) { super(expressID); this.RefractionIndex = RefractionIndex; this.DispersionFactor = DispersionFactor; this.type = 1607154358; } } IFC42.IfcSurfaceStyleRefraction = IfcSurfaceStyleRefraction; class IfcSurfaceStyleShading extends IfcPresentationItem { constructor(expressID, SurfaceColour, Transparency) { super(expressID); this.SurfaceColour = SurfaceColour; this.Transparency = Transparency; this.type = 846575682; } } IFC42.IfcSurfaceStyleShading = IfcSurfaceStyleShading; class IfcSurfaceStyleWithTextures extends IfcPresentationItem { constructor(expressID, Textures) { super(expressID); this.Textures = Textures; this.type = 1351298697; } } IFC42.IfcSurfaceStyleWithTextures = IfcSurfaceStyleWithTextures; class IfcSurfaceTexture extends IfcPresentationItem { constructor(expressID, RepeatS, RepeatT, Mode, TextureTransform, Parameter) { super(expressID); this.RepeatS = RepeatS; this.RepeatT = RepeatT; this.Mode = Mode; this.TextureTransform = TextureTransform; this.Parameter = Parameter; this.type = 626085974; } } IFC42.IfcSurfaceTexture = IfcSurfaceTexture; class IfcTable extends IfcLineObject { constructor(expressID, Name, Rows, Columns) { super(expressID); this.Name = Name; this.Rows = Rows; this.Columns = Columns; this.type = 985171141; } } IFC42.IfcTable = IfcTable; class IfcTableColumn extends IfcLineObject { constructor(expressID, Identifier, Name, Description, Unit, ReferencePath) { super(expressID); this.Identifier = Identifier; this.Name = Name; this.Description = Description; this.Unit = Unit; this.ReferencePath = ReferencePath; this.type = 2043862942; } } IFC42.IfcTableColumn = IfcTableColumn; class IfcTableRow extends IfcLineObject { constructor(expressID, RowCells, IsHeading) { super(expressID); this.RowCells = RowCells; this.IsHeading = IsHeading; this.type = 531007025; } } IFC42.IfcTableRow = IfcTableRow; class IfcTaskTime extends IfcSchedulingTime { constructor(expressID, Name, DataOrigin, UserDefinedDataOrigin, DurationType, ScheduleDuration, ScheduleStart, ScheduleFinish, EarlyStart, EarlyFinish, LateStart, LateFinish, FreeFloat, TotalFloat, IsCritical, StatusTime, ActualDuration, ActualStart, ActualFinish, RemainingTime, Completion) { super(expressID, Name, DataOrigin, UserDefinedDataOrigin); this.Name = Name; this.DataOrigin = DataOrigin; this.UserDefinedDataOrigin = UserDefinedDataOrigin; this.DurationType = DurationType; this.ScheduleDuration = ScheduleDuration; this.ScheduleStart = ScheduleStart; this.ScheduleFinish = ScheduleFinish; this.EarlyStart = EarlyStart; this.EarlyFinish = EarlyFinish; this.LateStart = LateStart; this.LateFinish = LateFinish; this.FreeFloat = FreeFloat; this.TotalFloat = TotalFloat; this.IsCritical = IsCritical; this.StatusTime = StatusTime; this.ActualDuration = ActualDuration; this.ActualStart = ActualStart; this.ActualFinish = ActualFinish; this.RemainingTime = RemainingTime; this.Completion = Completion; this.type = 1549132990; } } IFC42.IfcTaskTime = IfcTaskTime; class IfcTaskTimeRecurring extends IfcTaskTime { constructor(expressID, Name, DataOrigin, UserDefinedDataOrigin, DurationType, ScheduleDuration, ScheduleStart, ScheduleFinish, EarlyStart, EarlyFinish, LateStart, LateFinish, FreeFloat, TotalFloat, IsCritical, StatusTime, ActualDuration, ActualStart, ActualFinish, RemainingTime, Completion, Recurrence) { super(expressID, Name, DataOrigin, UserDefinedDataOrigin, DurationType, ScheduleDuration, ScheduleStart, ScheduleFinish, EarlyStart, EarlyFinish, LateStart, LateFinish, FreeFloat, TotalFloat, IsCritical, StatusTime, ActualDuration, ActualStart, ActualFinish, RemainingTime, Completion); this.Name = Name; this.DataOrigin = DataOrigin; this.UserDefinedDataOrigin = UserDefinedDataOrigin; this.DurationType = DurationType; this.ScheduleDuration = ScheduleDuration; this.ScheduleStart = ScheduleStart; this.ScheduleFinish = ScheduleFinish; this.EarlyStart = EarlyStart; this.EarlyFinish = EarlyFinish; this.LateStart = LateStart; this.LateFinish = LateFinish; this.FreeFloat = FreeFloat; this.TotalFloat = TotalFloat; this.IsCritical = IsCritical; this.StatusTime = StatusTime; this.ActualDuration = ActualDuration; this.ActualStart = ActualStart; this.ActualFinish = ActualFinish; this.RemainingTime = RemainingTime; this.Completion = Completion; this.Recurrence = Recurrence; this.type = 2771591690; } } IFC42.IfcTaskTimeRecurring = IfcTaskTimeRecurring; class IfcTelecomAddress extends IfcAddress { constructor(expressID, Purpose, Description, UserDefinedPurpose, TelephoneNumbers, FacsimileNumbers, PagerNumber, ElectronicMailAddresses, WWWHomePageURL, MessagingIDs) { super(expressID, Purpose, Description, UserDefinedPurpose); this.Purpose = Purpose; this.Description = Description; this.UserDefinedPurpose = UserDefinedPurpose; this.TelephoneNumbers = TelephoneNumbers; this.FacsimileNumbers = FacsimileNumbers; this.PagerNumber = PagerNumber; this.ElectronicMailAddresses = ElectronicMailAddresses; this.WWWHomePageURL = WWWHomePageURL; this.MessagingIDs = MessagingIDs; this.type = 912023232; } } IFC42.IfcTelecomAddress = IfcTelecomAddress; class IfcTextStyle extends IfcPresentationStyle { constructor(expressID, Name, TextCharacterAppearance, TextStyle, TextFontStyle, ModelOrDraughting) { super(expressID, Name); this.Name = Name; this.TextCharacterAppearance = TextCharacterAppearance; this.TextStyle = TextStyle; this.TextFontStyle = TextFontStyle; this.ModelOrDraughting = ModelOrDraughting; this.type = 1447204868; } } IFC42.IfcTextStyle = IfcTextStyle; class IfcTextStyleForDefinedFont extends IfcPresentationItem { constructor(expressID, Colour, BackgroundColour) { super(expressID); this.Colour = Colour; this.BackgroundColour = BackgroundColour; this.type = 2636378356; } } IFC42.IfcTextStyleForDefinedFont = IfcTextStyleForDefinedFont; class IfcTextStyleTextModel extends IfcPresentationItem { constructor(expressID, TextIndent, TextAlign, TextDecoration, LetterSpacing, WordSpacing, TextTransform, LineHeight) { super(expressID); this.TextIndent = TextIndent; this.TextAlign = TextAlign; this.TextDecoration = TextDecoration; this.LetterSpacing = LetterSpacing; this.WordSpacing = WordSpacing; this.TextTransform = TextTransform; this.LineHeight = LineHeight; this.type = 1640371178; } } IFC42.IfcTextStyleTextModel = IfcTextStyleTextModel; class IfcTextureCoordinate extends IfcPresentationItem { constructor(expressID, Maps) { super(expressID); this.Maps = Maps; this.type = 280115917; } } IFC42.IfcTextureCoordinate = IfcTextureCoordinate; class IfcTextureCoordinateGenerator extends IfcTextureCoordinate { constructor(expressID, Maps, Mode, Parameter) { super(expressID, Maps); this.Maps = Maps; this.Mode = Mode; this.Parameter = Parameter; this.type = 1742049831; } } IFC42.IfcTextureCoordinateGenerator = IfcTextureCoordinateGenerator; class IfcTextureMap extends IfcTextureCoordinate { constructor(expressID, Maps, Vertices, MappedTo) { super(expressID, Maps); this.Maps = Maps; this.Vertices = Vertices; this.MappedTo = MappedTo; this.type = 2552916305; } } IFC42.IfcTextureMap = IfcTextureMap; class IfcTextureVertex extends IfcPresentationItem { constructor(expressID, Coordinates) { super(expressID); this.Coordinates = Coordinates; this.type = 1210645708; } } IFC42.IfcTextureVertex = IfcTextureVertex; class IfcTextureVertexList extends IfcPresentationItem { constructor(expressID, TexCoordsList) { super(expressID); this.TexCoordsList = TexCoordsList; this.type = 3611470254; } } IFC42.IfcTextureVertexList = IfcTextureVertexList; class IfcTimePeriod extends IfcLineObject { constructor(expressID, StartTime, EndTime) { super(expressID); this.StartTime = StartTime; this.EndTime = EndTime; this.type = 1199560280; } } IFC42.IfcTimePeriod = IfcTimePeriod; class IfcTimeSeries extends IfcLineObject { constructor(expressID, Name, Description, StartTime, EndTime, TimeSeriesDataType, DataOrigin, UserDefinedDataOrigin, Unit) { super(expressID); this.Name = Name; this.Description = Description; this.StartTime = StartTime; this.EndTime = EndTime; this.TimeSeriesDataType = TimeSeriesDataType; this.DataOrigin = DataOrigin; this.UserDefinedDataOrigin = UserDefinedDataOrigin; this.Unit = Unit; this.type = 3101149627; } } IFC42.IfcTimeSeries = IfcTimeSeries; class IfcTimeSeriesValue extends IfcLineObject { constructor(expressID, ListValues) { super(expressID); this.ListValues = ListValues; this.type = 581633288; } } IFC42.IfcTimeSeriesValue = IfcTimeSeriesValue; class IfcTopologicalRepresentationItem extends IfcRepresentationItem { constructor(expressID) { super(expressID); this.type = 1377556343; } } IFC42.IfcTopologicalRepresentationItem = IfcTopologicalRepresentationItem; class IfcTopologyRepresentation extends IfcShapeModel { constructor(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items) { super(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items); this.ContextOfItems = ContextOfItems; this.RepresentationIdentifier = RepresentationIdentifier; this.RepresentationType = RepresentationType; this.Items = Items; this.type = 1735638870; } } IFC42.IfcTopologyRepresentation = IfcTopologyRepresentation; class IfcUnitAssignment extends IfcLineObject { constructor(expressID, Units) { super(expressID); this.Units = Units; this.type = 180925521; } } IFC42.IfcUnitAssignment = IfcUnitAssignment; class IfcVertex extends IfcTopologicalRepresentationItem { constructor(expressID) { super(expressID); this.type = 2799835756; } } IFC42.IfcVertex = IfcVertex; class IfcVertexPoint extends IfcVertex { constructor(expressID, VertexGeometry) { super(expressID); this.VertexGeometry = VertexGeometry; this.type = 1907098498; } } IFC42.IfcVertexPoint = IfcVertexPoint; class IfcVirtualGridIntersection extends IfcLineObject { constructor(expressID, IntersectingAxes, OffsetDistances) { super(expressID); this.IntersectingAxes = IntersectingAxes; this.OffsetDistances = OffsetDistances; this.type = 891718957; } } IFC42.IfcVirtualGridIntersection = IfcVirtualGridIntersection; class IfcWorkTime extends IfcSchedulingTime { constructor(expressID, Name, DataOrigin, UserDefinedDataOrigin, RecurrencePattern, Start, Finish) { super(expressID, Name, DataOrigin, UserDefinedDataOrigin); this.Name = Name; this.DataOrigin = DataOrigin; this.UserDefinedDataOrigin = UserDefinedDataOrigin; this.RecurrencePattern = RecurrencePattern; this.Start = Start; this.Finish = Finish; this.type = 1236880293; } } IFC42.IfcWorkTime = IfcWorkTime; class IfcApprovalRelationship extends IfcResourceLevelRelationship { constructor(expressID, Name, Description, RelatingApproval, RelatedApprovals) { super(expressID, Name, Description); this.Name = Name; this.Description = Description; this.RelatingApproval = RelatingApproval; this.RelatedApprovals = RelatedApprovals; this.type = 3869604511; } } IFC42.IfcApprovalRelationship = IfcApprovalRelationship; class IfcArbitraryClosedProfileDef extends IfcProfileDef { constructor(expressID, ProfileType, ProfileName, OuterCurve) { super(expressID, ProfileType, ProfileName); this.ProfileType = ProfileType; this.ProfileName = ProfileName; this.OuterCurve = OuterCurve; this.type = 3798115385; } } IFC42.IfcArbitraryClosedProfileDef = IfcArbitraryClosedProfileDef; class IfcArbitraryOpenProfileDef extends IfcProfileDef { constructor(expressID, ProfileType, ProfileName, Curve) { super(expressID, ProfileType, ProfileName); this.ProfileType = ProfileType; this.ProfileName = ProfileName; this.Curve = Curve; this.type = 1310608509; } } IFC42.IfcArbitraryOpenProfileDef = IfcArbitraryOpenProfileDef; class IfcArbitraryProfileDefWithVoids extends IfcArbitraryClosedProfileDef { constructor(expressID, ProfileType, ProfileName, OuterCurve, InnerCurves) { super(expressID, ProfileType, ProfileName, OuterCurve); this.ProfileType = ProfileType; this.ProfileName = ProfileName; this.OuterCurve = OuterCurve; this.InnerCurves = InnerCurves; this.type = 2705031697; } } IFC42.IfcArbitraryProfileDefWithVoids = IfcArbitraryProfileDefWithVoids; class IfcBlobTexture extends IfcSurfaceTexture { constructor(expressID, RepeatS, RepeatT, Mode, TextureTransform, Parameter, RasterFormat, RasterCode) { super(expressID, RepeatS, RepeatT, Mode, TextureTransform, Parameter); this.RepeatS = RepeatS; this.RepeatT = RepeatT; this.Mode = Mode; this.TextureTransform = TextureTransform; this.Parameter = Parameter; this.RasterFormat = RasterFormat; this.RasterCode = RasterCode; this.type = 616511568; } } IFC42.IfcBlobTexture = IfcBlobTexture; class IfcCenterLineProfileDef extends IfcArbitraryOpenProfileDef { constructor(expressID, ProfileType, ProfileName, Curve, Thickness) { super(expressID, ProfileType, ProfileName, Curve); this.ProfileType = ProfileType; this.ProfileName = ProfileName; this.Curve = Curve; this.Thickness = Thickness; this.type = 3150382593; } } IFC42.IfcCenterLineProfileDef = IfcCenterLineProfileDef; class IfcClassification extends IfcExternalInformation { constructor(expressID, Source, Edition, EditionDate, Name, Description, Location, ReferenceTokens) { super(expressID); this.Source = Source; this.Edition = Edition; this.EditionDate = EditionDate; this.Name = Name; this.Description = Description; this.Location = Location; this.ReferenceTokens = ReferenceTokens; this.type = 747523909; } } IFC42.IfcClassification = IfcClassification; class IfcClassificationReference extends IfcExternalReference { constructor(expressID, Location, Identification, Name, ReferencedSource, Description, Sort) { super(expressID, Location, Identification, Name); this.Location = Location; this.Identification = Identification; this.Name = Name; this.ReferencedSource = ReferencedSource; this.Description = Description; this.Sort = Sort; this.type = 647927063; } } IFC42.IfcClassificationReference = IfcClassificationReference; class IfcColourRgbList extends IfcPresentationItem { constructor(expressID, ColourList) { super(expressID); this.ColourList = ColourList; this.type = 3285139300; } } IFC42.IfcColourRgbList = IfcColourRgbList; class IfcColourSpecification extends IfcPresentationItem { constructor(expressID, Name) { super(expressID); this.Name = Name; this.type = 3264961684; } } IFC42.IfcColourSpecification = IfcColourSpecification; class IfcCompositeProfileDef extends IfcProfileDef { constructor(expressID, ProfileType, ProfileName, Profiles, Label) { super(expressID, ProfileType, ProfileName); this.ProfileType = ProfileType; this.ProfileName = ProfileName; this.Profiles = Profiles; this.Label = Label; this.type = 1485152156; } } IFC42.IfcCompositeProfileDef = IfcCompositeProfileDef; class IfcConnectedFaceSet extends IfcTopologicalRepresentationItem { constructor(expressID, CfsFaces) { super(expressID); this.CfsFaces = CfsFaces; this.type = 370225590; } } IFC42.IfcConnectedFaceSet = IfcConnectedFaceSet; class IfcConnectionCurveGeometry extends IfcConnectionGeometry { constructor(expressID, CurveOnRelatingElement, CurveOnRelatedElement) { super(expressID); this.CurveOnRelatingElement = CurveOnRelatingElement; this.CurveOnRelatedElement = CurveOnRelatedElement; this.type = 1981873012; } } IFC42.IfcConnectionCurveGeometry = IfcConnectionCurveGeometry; class IfcConnectionPointEccentricity extends IfcConnectionPointGeometry { constructor(expressID, PointOnRelatingElement, PointOnRelatedElement, EccentricityInX, EccentricityInY, EccentricityInZ) { super(expressID, PointOnRelatingElement, PointOnRelatedElement); this.PointOnRelatingElement = PointOnRelatingElement; this.PointOnRelatedElement = PointOnRelatedElement; this.EccentricityInX = EccentricityInX; this.EccentricityInY = EccentricityInY; this.EccentricityInZ = EccentricityInZ; this.type = 45288368; } } IFC42.IfcConnectionPointEccentricity = IfcConnectionPointEccentricity; class IfcContextDependentUnit extends IfcNamedUnit { constructor(expressID, Dimensions, UnitType, Name) { super(expressID, Dimensions, UnitType); this.Dimensions = Dimensions; this.UnitType = UnitType; this.Name = Name; this.type = 3050246964; } } IFC42.IfcContextDependentUnit = IfcContextDependentUnit; class IfcConversionBasedUnit extends IfcNamedUnit { constructor(expressID, Dimensions, UnitType, Name, ConversionFactor) { super(expressID, Dimensions, UnitType); this.Dimensions = Dimensions; this.UnitType = UnitType; this.Name = Name; this.ConversionFactor = ConversionFactor; this.type = 2889183280; } } IFC42.IfcConversionBasedUnit = IfcConversionBasedUnit; class IfcConversionBasedUnitWithOffset extends IfcConversionBasedUnit { constructor(expressID, Dimensions, UnitType, Name, ConversionFactor, ConversionOffset) { super(expressID, Dimensions, UnitType, Name, ConversionFactor); this.Dimensions = Dimensions; this.UnitType = UnitType; this.Name = Name; this.ConversionFactor = ConversionFactor; this.ConversionOffset = ConversionOffset; this.type = 2713554722; } } IFC42.IfcConversionBasedUnitWithOffset = IfcConversionBasedUnitWithOffset; class IfcCurrencyRelationship extends IfcResourceLevelRelationship { constructor(expressID, Name, Description, RelatingMonetaryUnit, RelatedMonetaryUnit, ExchangeRate, RateDateTime, RateSource) { super(expressID, Name, Description); this.Name = Name; this.Description = Description; this.RelatingMonetaryUnit = RelatingMonetaryUnit; this.RelatedMonetaryUnit = RelatedMonetaryUnit; this.ExchangeRate = ExchangeRate; this.RateDateTime = RateDateTime; this.RateSource = RateSource; this.type = 539742890; } } IFC42.IfcCurrencyRelationship = IfcCurrencyRelationship; class IfcCurveStyle extends IfcPresentationStyle { constructor(expressID, Name, CurveFont, CurveWidth, CurveColour, ModelOrDraughting) { super(expressID, Name); this.Name = Name; this.CurveFont = CurveFont; this.CurveWidth = CurveWidth; this.CurveColour = CurveColour; this.ModelOrDraughting = ModelOrDraughting; this.type = 3800577675; } } IFC42.IfcCurveStyle = IfcCurveStyle; class IfcCurveStyleFont extends IfcPresentationItem { constructor(expressID, Name, PatternList) { super(expressID); this.Name = Name; this.PatternList = PatternList; this.type = 1105321065; } } IFC42.IfcCurveStyleFont = IfcCurveStyleFont; class IfcCurveStyleFontAndScaling extends IfcPresentationItem { constructor(expressID, Name, CurveFont, CurveFontScaling) { super(expressID); this.Name = Name; this.CurveFont = CurveFont; this.CurveFontScaling = CurveFontScaling; this.type = 2367409068; } } IFC42.IfcCurveStyleFontAndScaling = IfcCurveStyleFontAndScaling; class IfcCurveStyleFontPattern extends IfcPresentationItem { constructor(expressID, VisibleSegmentLength, InvisibleSegmentLength) { super(expressID); this.VisibleSegmentLength = VisibleSegmentLength; this.InvisibleSegmentLength = InvisibleSegmentLength; this.type = 3510044353; } } IFC42.IfcCurveStyleFontPattern = IfcCurveStyleFontPattern; class IfcDerivedProfileDef extends IfcProfileDef { constructor(expressID, ProfileType, ProfileName, ParentProfile, Operator, Label) { super(expressID, ProfileType, ProfileName); this.ProfileType = ProfileType; this.ProfileName = ProfileName; this.ParentProfile = ParentProfile; this.Operator = Operator; this.Label = Label; this.type = 3632507154; } } IFC42.IfcDerivedProfileDef = IfcDerivedProfileDef; class IfcDocumentInformation extends IfcExternalInformation { constructor(expressID, Identification, Name, Description, Location, Purpose, IntendedUse, Scope, Revision, DocumentOwner, Editors, CreationTime, LastRevisionTime, ElectronicFormat, ValidFrom, ValidUntil, Confidentiality, Status) { super(expressID); this.Identification = Identification; this.Name = Name; this.Description = Description; this.Location = Location; this.Purpose = Purpose; this.IntendedUse = IntendedUse; this.Scope = Scope; this.Revision = Revision; this.DocumentOwner = DocumentOwner; this.Editors = Editors; this.CreationTime = CreationTime; this.LastRevisionTime = LastRevisionTime; this.ElectronicFormat = ElectronicFormat; this.ValidFrom = ValidFrom; this.ValidUntil = ValidUntil; this.Confidentiality = Confidentiality; this.Status = Status; this.type = 1154170062; } } IFC42.IfcDocumentInformation = IfcDocumentInformation; class IfcDocumentInformationRelationship extends IfcResourceLevelRelationship { constructor(expressID, Name, Description, RelatingDocument, RelatedDocuments, RelationshipType) { super(expressID, Name, Description); this.Name = Name; this.Description = Description; this.RelatingDocument = RelatingDocument; this.RelatedDocuments = RelatedDocuments; this.RelationshipType = RelationshipType; this.type = 770865208; } } IFC42.IfcDocumentInformationRelationship = IfcDocumentInformationRelationship; class IfcDocumentReference extends IfcExternalReference { constructor(expressID, Location, Identification, Name, Description, ReferencedDocument) { super(expressID, Location, Identification, Name); this.Location = Location; this.Identification = Identification; this.Name = Name; this.Description = Description; this.ReferencedDocument = ReferencedDocument; this.type = 3732053477; } } IFC42.IfcDocumentReference = IfcDocumentReference; class IfcEdge extends IfcTopologicalRepresentationItem { constructor(expressID, EdgeStart, EdgeEnd) { super(expressID); this.EdgeStart = EdgeStart; this.EdgeEnd = EdgeEnd; this.type = 3900360178; } } IFC42.IfcEdge = IfcEdge; class IfcEdgeCurve extends IfcEdge { constructor(expressID, EdgeStart, EdgeEnd, EdgeGeometry, SameSense) { super(expressID, EdgeStart, EdgeEnd); this.EdgeStart = EdgeStart; this.EdgeEnd = EdgeEnd; this.EdgeGeometry = EdgeGeometry; this.SameSense = SameSense; this.type = 476780140; } } IFC42.IfcEdgeCurve = IfcEdgeCurve; class IfcEventTime extends IfcSchedulingTime { constructor(expressID, Name, DataOrigin, UserDefinedDataOrigin, ActualDate, EarlyDate, LateDate, ScheduleDate) { super(expressID, Name, DataOrigin, UserDefinedDataOrigin); this.Name = Name; this.DataOrigin = DataOrigin; this.UserDefinedDataOrigin = UserDefinedDataOrigin; this.ActualDate = ActualDate; this.EarlyDate = EarlyDate; this.LateDate = LateDate; this.ScheduleDate = ScheduleDate; this.type = 211053100; } } IFC42.IfcEventTime = IfcEventTime; class IfcExtendedProperties extends IfcPropertyAbstraction { constructor(expressID, Name, Description, Properties2) { super(expressID); this.Name = Name; this.Description = Description; this.Properties = Properties2; this.type = 297599258; } } IFC42.IfcExtendedProperties = IfcExtendedProperties; class IfcExternalReferenceRelationship extends IfcResourceLevelRelationship { constructor(expressID, Name, Description, RelatingReference, RelatedResourceObjects) { super(expressID, Name, Description); this.Name = Name; this.Description = Description; this.RelatingReference = RelatingReference; this.RelatedResourceObjects = RelatedResourceObjects; this.type = 1437805879; } } IFC42.IfcExternalReferenceRelationship = IfcExternalReferenceRelationship; class IfcFace extends IfcTopologicalRepresentationItem { constructor(expressID, Bounds) { super(expressID); this.Bounds = Bounds; this.type = 2556980723; } } IFC42.IfcFace = IfcFace; class IfcFaceBound extends IfcTopologicalRepresentationItem { constructor(expressID, Bound, Orientation) { super(expressID); this.Bound = Bound; this.Orientation = Orientation; this.type = 1809719519; } } IFC42.IfcFaceBound = IfcFaceBound; class IfcFaceOuterBound extends IfcFaceBound { constructor(expressID, Bound, Orientation) { super(expressID, Bound, Orientation); this.Bound = Bound; this.Orientation = Orientation; this.type = 803316827; } } IFC42.IfcFaceOuterBound = IfcFaceOuterBound; class IfcFaceSurface extends IfcFace { constructor(expressID, Bounds, FaceSurface, SameSense) { super(expressID, Bounds); this.Bounds = Bounds; this.FaceSurface = FaceSurface; this.SameSense = SameSense; this.type = 3008276851; } } IFC42.IfcFaceSurface = IfcFaceSurface; class IfcFailureConnectionCondition extends IfcStructuralConnectionCondition { constructor(expressID, Name, TensionFailureX, TensionFailureY, TensionFailureZ, CompressionFailureX, CompressionFailureY, CompressionFailureZ) { super(expressID, Name); this.Name = Name; this.TensionFailureX = TensionFailureX; this.TensionFailureY = TensionFailureY; this.TensionFailureZ = TensionFailureZ; this.CompressionFailureX = CompressionFailureX; this.CompressionFailureY = CompressionFailureY; this.CompressionFailureZ = CompressionFailureZ; this.type = 4219587988; } } IFC42.IfcFailureConnectionCondition = IfcFailureConnectionCondition; class IfcFillAreaStyle extends IfcPresentationStyle { constructor(expressID, Name, FillStyles, ModelorDraughting) { super(expressID, Name); this.Name = Name; this.FillStyles = FillStyles; this.ModelorDraughting = ModelorDraughting; this.type = 738692330; } } IFC42.IfcFillAreaStyle = IfcFillAreaStyle; class IfcGeometricRepresentationContext extends IfcRepresentationContext { constructor(expressID, ContextIdentifier, ContextType, CoordinateSpaceDimension, Precision, WorldCoordinateSystem, TrueNorth) { super(expressID, ContextIdentifier, ContextType); this.ContextIdentifier = ContextIdentifier; this.ContextType = ContextType; this.CoordinateSpaceDimension = CoordinateSpaceDimension; this.Precision = Precision; this.WorldCoordinateSystem = WorldCoordinateSystem; this.TrueNorth = TrueNorth; this.type = 3448662350; } } IFC42.IfcGeometricRepresentationContext = IfcGeometricRepresentationContext; class IfcGeometricRepresentationItem extends IfcRepresentationItem { constructor(expressID) { super(expressID); this.type = 2453401579; } } IFC42.IfcGeometricRepresentationItem = IfcGeometricRepresentationItem; class IfcGeometricRepresentationSubContext extends IfcGeometricRepresentationContext { constructor(expressID, ContextIdentifier, ContextType, ParentContext, TargetScale, TargetView, UserDefinedTargetView) { super(expressID, ContextIdentifier, ContextType, new IfcDimensionCount(0), null, new Handle(0), null); this.ContextIdentifier = ContextIdentifier; this.ContextType = ContextType; this.ParentContext = ParentContext; this.TargetScale = TargetScale; this.TargetView = TargetView; this.UserDefinedTargetView = UserDefinedTargetView; this.type = 4142052618; } } IFC42.IfcGeometricRepresentationSubContext = IfcGeometricRepresentationSubContext; class IfcGeometricSet extends IfcGeometricRepresentationItem { constructor(expressID, Elements) { super(expressID); this.Elements = Elements; this.type = 3590301190; } } IFC42.IfcGeometricSet = IfcGeometricSet; class IfcGridPlacement extends IfcObjectPlacement { constructor(expressID, PlacementLocation, PlacementRefDirection) { super(expressID); this.PlacementLocation = PlacementLocation; this.PlacementRefDirection = PlacementRefDirection; this.type = 178086475; } } IFC42.IfcGridPlacement = IfcGridPlacement; class IfcHalfSpaceSolid extends IfcGeometricRepresentationItem { constructor(expressID, BaseSurface, AgreementFlag) { super(expressID); this.BaseSurface = BaseSurface; this.AgreementFlag = AgreementFlag; this.type = 812098782; } } IFC42.IfcHalfSpaceSolid = IfcHalfSpaceSolid; class IfcImageTexture extends IfcSurfaceTexture { constructor(expressID, RepeatS, RepeatT, Mode, TextureTransform, Parameter, URLReference) { super(expressID, RepeatS, RepeatT, Mode, TextureTransform, Parameter); this.RepeatS = RepeatS; this.RepeatT = RepeatT; this.Mode = Mode; this.TextureTransform = TextureTransform; this.Parameter = Parameter; this.URLReference = URLReference; this.type = 3905492369; } } IFC42.IfcImageTexture = IfcImageTexture; class IfcIndexedColourMap extends IfcPresentationItem { constructor(expressID, MappedTo, Opacity, Colours, ColourIndex) { super(expressID); this.MappedTo = MappedTo; this.Opacity = Opacity; this.Colours = Colours; this.ColourIndex = ColourIndex; this.type = 3570813810; } } IFC42.IfcIndexedColourMap = IfcIndexedColourMap; class IfcIndexedTextureMap extends IfcTextureCoordinate { constructor(expressID, Maps, MappedTo, TexCoords) { super(expressID, Maps); this.Maps = Maps; this.MappedTo = MappedTo; this.TexCoords = TexCoords; this.type = 1437953363; } } IFC42.IfcIndexedTextureMap = IfcIndexedTextureMap; class IfcIndexedTriangleTextureMap extends IfcIndexedTextureMap { constructor(expressID, Maps, MappedTo, TexCoords, TexCoordIndex) { super(expressID, Maps, MappedTo, TexCoords); this.Maps = Maps; this.MappedTo = MappedTo; this.TexCoords = TexCoords; this.TexCoordIndex = TexCoordIndex; this.type = 2133299955; } } IFC42.IfcIndexedTriangleTextureMap = IfcIndexedTriangleTextureMap; class IfcIrregularTimeSeries extends IfcTimeSeries { constructor(expressID, Name, Description, StartTime, EndTime, TimeSeriesDataType, DataOrigin, UserDefinedDataOrigin, Unit, Values) { super(expressID, Name, Description, StartTime, EndTime, TimeSeriesDataType, DataOrigin, UserDefinedDataOrigin, Unit); this.Name = Name; this.Description = Description; this.StartTime = StartTime; this.EndTime = EndTime; this.TimeSeriesDataType = TimeSeriesDataType; this.DataOrigin = DataOrigin; this.UserDefinedDataOrigin = UserDefinedDataOrigin; this.Unit = Unit; this.Values = Values; this.type = 3741457305; } } IFC42.IfcIrregularTimeSeries = IfcIrregularTimeSeries; class IfcLagTime extends IfcSchedulingTime { constructor(expressID, Name, DataOrigin, UserDefinedDataOrigin, LagValue, DurationType) { super(expressID, Name, DataOrigin, UserDefinedDataOrigin); this.Name = Name; this.DataOrigin = DataOrigin; this.UserDefinedDataOrigin = UserDefinedDataOrigin; this.LagValue = LagValue; this.DurationType = DurationType; this.type = 1585845231; } } IFC42.IfcLagTime = IfcLagTime; class IfcLightSource extends IfcGeometricRepresentationItem { constructor(expressID, Name, LightColour, AmbientIntensity, Intensity) { super(expressID); this.Name = Name; this.LightColour = LightColour; this.AmbientIntensity = AmbientIntensity; this.Intensity = Intensity; this.type = 1402838566; } } IFC42.IfcLightSource = IfcLightSource; class IfcLightSourceAmbient extends IfcLightSource { constructor(expressID, Name, LightColour, AmbientIntensity, Intensity) { super(expressID, Name, LightColour, AmbientIntensity, Intensity); this.Name = Name; this.LightColour = LightColour; this.AmbientIntensity = AmbientIntensity; this.Intensity = Intensity; this.type = 125510826; } } IFC42.IfcLightSourceAmbient = IfcLightSourceAmbient; class IfcLightSourceDirectional extends IfcLightSource { constructor(expressID, Name, LightColour, AmbientIntensity, Intensity, Orientation) { super(expressID, Name, LightColour, AmbientIntensity, Intensity); this.Name = Name; this.LightColour = LightColour; this.AmbientIntensity = AmbientIntensity; this.Intensity = Intensity; this.Orientation = Orientation; this.type = 2604431987; } } IFC42.IfcLightSourceDirectional = IfcLightSourceDirectional; class IfcLightSourceGoniometric extends IfcLightSource { constructor(expressID, Name, LightColour, AmbientIntensity, Intensity, Position, ColourAppearance, ColourTemperature, LuminousFlux, LightEmissionSource, LightDistributionDataSource) { super(expressID, Name, LightColour, AmbientIntensity, Intensity); this.Name = Name; this.LightColour = LightColour; this.AmbientIntensity = AmbientIntensity; this.Intensity = Intensity; this.Position = Position; this.ColourAppearance = ColourAppearance; this.ColourTemperature = ColourTemperature; this.LuminousFlux = LuminousFlux; this.LightEmissionSource = LightEmissionSource; this.LightDistributionDataSource = LightDistributionDataSource; this.type = 4266656042; } } IFC42.IfcLightSourceGoniometric = IfcLightSourceGoniometric; class IfcLightSourcePositional extends IfcLightSource { constructor(expressID, Name, LightColour, AmbientIntensity, Intensity, Position, Radius, ConstantAttenuation, DistanceAttenuation, QuadricAttenuation) { super(expressID, Name, LightColour, AmbientIntensity, Intensity); this.Name = Name; this.LightColour = LightColour; this.AmbientIntensity = AmbientIntensity; this.Intensity = Intensity; this.Position = Position; this.Radius = Radius; this.ConstantAttenuation = ConstantAttenuation; this.DistanceAttenuation = DistanceAttenuation; this.QuadricAttenuation = QuadricAttenuation; this.type = 1520743889; } } IFC42.IfcLightSourcePositional = IfcLightSourcePositional; class IfcLightSourceSpot extends IfcLightSourcePositional { constructor(expressID, Name, LightColour, AmbientIntensity, Intensity, Position, Radius, ConstantAttenuation, DistanceAttenuation, QuadricAttenuation, Orientation, ConcentrationExponent, SpreadAngle, BeamWidthAngle) { super(expressID, Name, LightColour, AmbientIntensity, Intensity, Position, Radius, ConstantAttenuation, DistanceAttenuation, QuadricAttenuation); this.Name = Name; this.LightColour = LightColour; this.AmbientIntensity = AmbientIntensity; this.Intensity = Intensity; this.Position = Position; this.Radius = Radius; this.ConstantAttenuation = ConstantAttenuation; this.DistanceAttenuation = DistanceAttenuation; this.QuadricAttenuation = QuadricAttenuation; this.Orientation = Orientation; this.ConcentrationExponent = ConcentrationExponent; this.SpreadAngle = SpreadAngle; this.BeamWidthAngle = BeamWidthAngle; this.type = 3422422726; } } IFC42.IfcLightSourceSpot = IfcLightSourceSpot; class IfcLocalPlacement extends IfcObjectPlacement { constructor(expressID, PlacementRelTo, RelativePlacement) { super(expressID); this.PlacementRelTo = PlacementRelTo; this.RelativePlacement = RelativePlacement; this.type = 2624227202; } } IFC42.IfcLocalPlacement = IfcLocalPlacement; class IfcLoop extends IfcTopologicalRepresentationItem { constructor(expressID) { super(expressID); this.type = 1008929658; } } IFC42.IfcLoop = IfcLoop; class IfcMappedItem extends IfcRepresentationItem { constructor(expressID, MappingSource, MappingTarget) { super(expressID); this.MappingSource = MappingSource; this.MappingTarget = MappingTarget; this.type = 2347385850; } } IFC42.IfcMappedItem = IfcMappedItem; class IfcMaterial extends IfcMaterialDefinition { constructor(expressID, Name, Description, Category) { super(expressID); this.Name = Name; this.Description = Description; this.Category = Category; this.type = 1838606355; } } IFC42.IfcMaterial = IfcMaterial; class IfcMaterialConstituent extends IfcMaterialDefinition { constructor(expressID, Name, Description, Material, Fraction, Category) { super(expressID); this.Name = Name; this.Description = Description; this.Material = Material; this.Fraction = Fraction; this.Category = Category; this.type = 3708119e3; } } IFC42.IfcMaterialConstituent = IfcMaterialConstituent; class IfcMaterialConstituentSet extends IfcMaterialDefinition { constructor(expressID, Name, Description, MaterialConstituents) { super(expressID); this.Name = Name; this.Description = Description; this.MaterialConstituents = MaterialConstituents; this.type = 2852063980; } } IFC42.IfcMaterialConstituentSet = IfcMaterialConstituentSet; class IfcMaterialDefinitionRepresentation extends IfcProductRepresentation { constructor(expressID, Name, Description, Representations, RepresentedMaterial) { super(expressID, Name, Description, Representations); this.Name = Name; this.Description = Description; this.Representations = Representations; this.RepresentedMaterial = RepresentedMaterial; this.type = 2022407955; } } IFC42.IfcMaterialDefinitionRepresentation = IfcMaterialDefinitionRepresentation; class IfcMaterialLayerSetUsage extends IfcMaterialUsageDefinition { constructor(expressID, ForLayerSet, LayerSetDirection, DirectionSense, OffsetFromReferenceLine, ReferenceExtent) { super(expressID); this.ForLayerSet = ForLayerSet; this.LayerSetDirection = LayerSetDirection; this.DirectionSense = DirectionSense; this.OffsetFromReferenceLine = OffsetFromReferenceLine; this.ReferenceExtent = ReferenceExtent; this.type = 1303795690; } } IFC42.IfcMaterialLayerSetUsage = IfcMaterialLayerSetUsage; class IfcMaterialProfileSetUsage extends IfcMaterialUsageDefinition { constructor(expressID, ForProfileSet, CardinalPoint, ReferenceExtent) { super(expressID); this.ForProfileSet = ForProfileSet; this.CardinalPoint = CardinalPoint; this.ReferenceExtent = ReferenceExtent; this.type = 3079605661; } } IFC42.IfcMaterialProfileSetUsage = IfcMaterialProfileSetUsage; class IfcMaterialProfileSetUsageTapering extends IfcMaterialProfileSetUsage { constructor(expressID, ForProfileSet, CardinalPoint, ReferenceExtent, ForProfileEndSet, CardinalEndPoint) { super(expressID, ForProfileSet, CardinalPoint, ReferenceExtent); this.ForProfileSet = ForProfileSet; this.CardinalPoint = CardinalPoint; this.ReferenceExtent = ReferenceExtent; this.ForProfileEndSet = ForProfileEndSet; this.CardinalEndPoint = CardinalEndPoint; this.type = 3404854881; } } IFC42.IfcMaterialProfileSetUsageTapering = IfcMaterialProfileSetUsageTapering; class IfcMaterialProperties extends IfcExtendedProperties { constructor(expressID, Name, Description, Properties2, Material) { super(expressID, Name, Description, Properties2); this.Name = Name; this.Description = Description; this.Properties = Properties2; this.Material = Material; this.type = 3265635763; } } IFC42.IfcMaterialProperties = IfcMaterialProperties; class IfcMaterialRelationship extends IfcResourceLevelRelationship { constructor(expressID, Name, Description, RelatingMaterial, RelatedMaterials, Expression) { super(expressID, Name, Description); this.Name = Name; this.Description = Description; this.RelatingMaterial = RelatingMaterial; this.RelatedMaterials = RelatedMaterials; this.Expression = Expression; this.type = 853536259; } } IFC42.IfcMaterialRelationship = IfcMaterialRelationship; class IfcMirroredProfileDef extends IfcDerivedProfileDef { constructor(expressID, ProfileType, ProfileName, ParentProfile, Label) { super(expressID, ProfileType, ProfileName, ParentProfile, new Handle(0), Label); this.ProfileType = ProfileType; this.ProfileName = ProfileName; this.ParentProfile = ParentProfile; this.Label = Label; this.type = 2998442950; } } IFC42.IfcMirroredProfileDef = IfcMirroredProfileDef; class IfcObjectDefinition extends IfcRoot { constructor(expressID, GlobalId, OwnerHistory, Name, Description) { super(expressID, GlobalId, OwnerHistory, Name, Description); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.type = 219451334; } } IFC42.IfcObjectDefinition = IfcObjectDefinition; class IfcOpenShell extends IfcConnectedFaceSet { constructor(expressID, CfsFaces) { super(expressID, CfsFaces); this.CfsFaces = CfsFaces; this.type = 2665983363; } } IFC42.IfcOpenShell = IfcOpenShell; class IfcOrganizationRelationship extends IfcResourceLevelRelationship { constructor(expressID, Name, Description, RelatingOrganization, RelatedOrganizations) { super(expressID, Name, Description); this.Name = Name; this.Description = Description; this.RelatingOrganization = RelatingOrganization; this.RelatedOrganizations = RelatedOrganizations; this.type = 1411181986; } } IFC42.IfcOrganizationRelationship = IfcOrganizationRelationship; class IfcOrientedEdge extends IfcEdge { constructor(expressID, EdgeElement, Orientation) { super(expressID, new Handle(0), new Handle(0)); this.EdgeElement = EdgeElement; this.Orientation = Orientation; this.type = 1029017970; } } IFC42.IfcOrientedEdge = IfcOrientedEdge; class IfcParameterizedProfileDef extends IfcProfileDef { constructor(expressID, ProfileType, ProfileName, Position) { super(expressID, ProfileType, ProfileName); this.ProfileType = ProfileType; this.ProfileName = ProfileName; this.Position = Position; this.type = 2529465313; } } IFC42.IfcParameterizedProfileDef = IfcParameterizedProfileDef; class IfcPath extends IfcTopologicalRepresentationItem { constructor(expressID, EdgeList) { super(expressID); this.EdgeList = EdgeList; this.type = 2519244187; } } IFC42.IfcPath = IfcPath; class IfcPhysicalComplexQuantity extends IfcPhysicalQuantity { constructor(expressID, Name, Description, HasQuantities, Discrimination, Quality, Usage) { super(expressID, Name, Description); this.Name = Name; this.Description = Description; this.HasQuantities = HasQuantities; this.Discrimination = Discrimination; this.Quality = Quality; this.Usage = Usage; this.type = 3021840470; } } IFC42.IfcPhysicalComplexQuantity = IfcPhysicalComplexQuantity; class IfcPixelTexture extends IfcSurfaceTexture { constructor(expressID, RepeatS, RepeatT, Mode, TextureTransform, Parameter, Width, Height, ColourComponents, Pixel) { super(expressID, RepeatS, RepeatT, Mode, TextureTransform, Parameter); this.RepeatS = RepeatS; this.RepeatT = RepeatT; this.Mode = Mode; this.TextureTransform = TextureTransform; this.Parameter = Parameter; this.Width = Width; this.Height = Height; this.ColourComponents = ColourComponents; this.Pixel = Pixel; this.type = 597895409; } } IFC42.IfcPixelTexture = IfcPixelTexture; class IfcPlacement extends IfcGeometricRepresentationItem { constructor(expressID, Location) { super(expressID); this.Location = Location; this.type = 2004835150; } } IFC42.IfcPlacement = IfcPlacement; class IfcPlanarExtent extends IfcGeometricRepresentationItem { constructor(expressID, SizeInX, SizeInY) { super(expressID); this.SizeInX = SizeInX; this.SizeInY = SizeInY; this.type = 1663979128; } } IFC42.IfcPlanarExtent = IfcPlanarExtent; class IfcPoint extends IfcGeometricRepresentationItem { constructor(expressID) { super(expressID); this.type = 2067069095; } } IFC42.IfcPoint = IfcPoint; class IfcPointOnCurve extends IfcPoint { constructor(expressID, BasisCurve, PointParameter) { super(expressID); this.BasisCurve = BasisCurve; this.PointParameter = PointParameter; this.type = 4022376103; } } IFC42.IfcPointOnCurve = IfcPointOnCurve; class IfcPointOnSurface extends IfcPoint { constructor(expressID, BasisSurface, PointParameterU, PointParameterV) { super(expressID); this.BasisSurface = BasisSurface; this.PointParameterU = PointParameterU; this.PointParameterV = PointParameterV; this.type = 1423911732; } } IFC42.IfcPointOnSurface = IfcPointOnSurface; class IfcPolyLoop extends IfcLoop { constructor(expressID, Polygon) { super(expressID); this.Polygon = Polygon; this.type = 2924175390; } } IFC42.IfcPolyLoop = IfcPolyLoop; class IfcPolygonalBoundedHalfSpace extends IfcHalfSpaceSolid { constructor(expressID, BaseSurface, AgreementFlag, Position, PolygonalBoundary) { super(expressID, BaseSurface, AgreementFlag); this.BaseSurface = BaseSurface; this.AgreementFlag = AgreementFlag; this.Position = Position; this.PolygonalBoundary = PolygonalBoundary; this.type = 2775532180; } } IFC42.IfcPolygonalBoundedHalfSpace = IfcPolygonalBoundedHalfSpace; class IfcPreDefinedItem extends IfcPresentationItem { constructor(expressID, Name) { super(expressID); this.Name = Name; this.type = 3727388367; } } IFC42.IfcPreDefinedItem = IfcPreDefinedItem; class IfcPreDefinedProperties extends IfcPropertyAbstraction { constructor(expressID) { super(expressID); this.type = 3778827333; } } IFC42.IfcPreDefinedProperties = IfcPreDefinedProperties; class IfcPreDefinedTextFont extends IfcPreDefinedItem { constructor(expressID, Name) { super(expressID, Name); this.Name = Name; this.type = 1775413392; } } IFC42.IfcPreDefinedTextFont = IfcPreDefinedTextFont; class IfcProductDefinitionShape extends IfcProductRepresentation { constructor(expressID, Name, Description, Representations) { super(expressID, Name, Description, Representations); this.Name = Name; this.Description = Description; this.Representations = Representations; this.type = 673634403; } } IFC42.IfcProductDefinitionShape = IfcProductDefinitionShape; class IfcProfileProperties extends IfcExtendedProperties { constructor(expressID, Name, Description, Properties2, ProfileDefinition) { super(expressID, Name, Description, Properties2); this.Name = Name; this.Description = Description; this.Properties = Properties2; this.ProfileDefinition = ProfileDefinition; this.type = 2802850158; } } IFC42.IfcProfileProperties = IfcProfileProperties; class IfcProperty extends IfcPropertyAbstraction { constructor(expressID, Name, Description) { super(expressID); this.Name = Name; this.Description = Description; this.type = 2598011224; } } IFC42.IfcProperty = IfcProperty; class IfcPropertyDefinition extends IfcRoot { constructor(expressID, GlobalId, OwnerHistory, Name, Description) { super(expressID, GlobalId, OwnerHistory, Name, Description); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.type = 1680319473; } } IFC42.IfcPropertyDefinition = IfcPropertyDefinition; class IfcPropertyDependencyRelationship extends IfcResourceLevelRelationship { constructor(expressID, Name, Description, DependingProperty, DependantProperty, Expression) { super(expressID, Name, Description); this.Name = Name; this.Description = Description; this.DependingProperty = DependingProperty; this.DependantProperty = DependantProperty; this.Expression = Expression; this.type = 148025276; } } IFC42.IfcPropertyDependencyRelationship = IfcPropertyDependencyRelationship; class IfcPropertySetDefinition extends IfcPropertyDefinition { constructor(expressID, GlobalId, OwnerHistory, Name, Description) { super(expressID, GlobalId, OwnerHistory, Name, Description); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.type = 3357820518; } } IFC42.IfcPropertySetDefinition = IfcPropertySetDefinition; class IfcPropertyTemplateDefinition extends IfcPropertyDefinition { constructor(expressID, GlobalId, OwnerHistory, Name, Description) { super(expressID, GlobalId, OwnerHistory, Name, Description); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.type = 1482703590; } } IFC42.IfcPropertyTemplateDefinition = IfcPropertyTemplateDefinition; class IfcQuantitySet extends IfcPropertySetDefinition { constructor(expressID, GlobalId, OwnerHistory, Name, Description) { super(expressID, GlobalId, OwnerHistory, Name, Description); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.type = 2090586900; } } IFC42.IfcQuantitySet = IfcQuantitySet; class IfcRectangleProfileDef extends IfcParameterizedProfileDef { constructor(expressID, ProfileType, ProfileName, Position, XDim, YDim) { super(expressID, ProfileType, ProfileName, Position); this.ProfileType = ProfileType; this.ProfileName = ProfileName; this.Position = Position; this.XDim = XDim; this.YDim = YDim; this.type = 3615266464; } } IFC42.IfcRectangleProfileDef = IfcRectangleProfileDef; class IfcRegularTimeSeries extends IfcTimeSeries { constructor(expressID, Name, Description, StartTime, EndTime, TimeSeriesDataType, DataOrigin, UserDefinedDataOrigin, Unit, TimeStep, Values) { super(expressID, Name, Description, StartTime, EndTime, TimeSeriesDataType, DataOrigin, UserDefinedDataOrigin, Unit); this.Name = Name; this.Description = Description; this.StartTime = StartTime; this.EndTime = EndTime; this.TimeSeriesDataType = TimeSeriesDataType; this.DataOrigin = DataOrigin; this.UserDefinedDataOrigin = UserDefinedDataOrigin; this.Unit = Unit; this.TimeStep = TimeStep; this.Values = Values; this.type = 3413951693; } } IFC42.IfcRegularTimeSeries = IfcRegularTimeSeries; class IfcReinforcementBarProperties extends IfcPreDefinedProperties { constructor(expressID, TotalCrossSectionArea, SteelGrade, BarSurface, EffectiveDepth, NominalBarDiameter, BarCount) { super(expressID); this.TotalCrossSectionArea = TotalCrossSectionArea; this.SteelGrade = SteelGrade; this.BarSurface = BarSurface; this.EffectiveDepth = EffectiveDepth; this.NominalBarDiameter = NominalBarDiameter; this.BarCount = BarCount; this.type = 1580146022; } } IFC42.IfcReinforcementBarProperties = IfcReinforcementBarProperties; class IfcRelationship extends IfcRoot { constructor(expressID, GlobalId, OwnerHistory, Name, Description) { super(expressID, GlobalId, OwnerHistory, Name, Description); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.type = 478536968; } } IFC42.IfcRelationship = IfcRelationship; class IfcResourceApprovalRelationship extends IfcResourceLevelRelationship { constructor(expressID, Name, Description, RelatedResourceObjects, RelatingApproval) { super(expressID, Name, Description); this.Name = Name; this.Description = Description; this.RelatedResourceObjects = RelatedResourceObjects; this.RelatingApproval = RelatingApproval; this.type = 2943643501; } } IFC42.IfcResourceApprovalRelationship = IfcResourceApprovalRelationship; class IfcResourceConstraintRelationship extends IfcResourceLevelRelationship { constructor(expressID, Name, Description, RelatingConstraint, RelatedResourceObjects) { super(expressID, Name, Description); this.Name = Name; this.Description = Description; this.RelatingConstraint = RelatingConstraint; this.RelatedResourceObjects = RelatedResourceObjects; this.type = 1608871552; } } IFC42.IfcResourceConstraintRelationship = IfcResourceConstraintRelationship; class IfcResourceTime extends IfcSchedulingTime { constructor(expressID, Name, DataOrigin, UserDefinedDataOrigin, ScheduleWork, ScheduleUsage, ScheduleStart, ScheduleFinish, ScheduleContour, LevelingDelay, IsOverAllocated, StatusTime, ActualWork, ActualUsage, ActualStart, ActualFinish, RemainingWork, RemainingUsage, Completion) { super(expressID, Name, DataOrigin, UserDefinedDataOrigin); this.Name = Name; this.DataOrigin = DataOrigin; this.UserDefinedDataOrigin = UserDefinedDataOrigin; this.ScheduleWork = ScheduleWork; this.ScheduleUsage = ScheduleUsage; this.ScheduleStart = ScheduleStart; this.ScheduleFinish = ScheduleFinish; this.ScheduleContour = ScheduleContour; this.LevelingDelay = LevelingDelay; this.IsOverAllocated = IsOverAllocated; this.StatusTime = StatusTime; this.ActualWork = ActualWork; this.ActualUsage = ActualUsage; this.ActualStart = ActualStart; this.ActualFinish = ActualFinish; this.RemainingWork = RemainingWork; this.RemainingUsage = RemainingUsage; this.Completion = Completion; this.type = 1042787934; } } IFC42.IfcResourceTime = IfcResourceTime; class IfcRoundedRectangleProfileDef extends IfcRectangleProfileDef { constructor(expressID, ProfileType, ProfileName, Position, XDim, YDim, RoundingRadius) { super(expressID, ProfileType, ProfileName, Position, XDim, YDim); this.ProfileType = ProfileType; this.ProfileName = ProfileName; this.Position = Position; this.XDim = XDim; this.YDim = YDim; this.RoundingRadius = RoundingRadius; this.type = 2778083089; } } IFC42.IfcRoundedRectangleProfileDef = IfcRoundedRectangleProfileDef; class IfcSectionProperties extends IfcPreDefinedProperties { constructor(expressID, SectionType, StartProfile, EndProfile) { super(expressID); this.SectionType = SectionType; this.StartProfile = StartProfile; this.EndProfile = EndProfile; this.type = 2042790032; } } IFC42.IfcSectionProperties = IfcSectionProperties; class IfcSectionReinforcementProperties extends IfcPreDefinedProperties { constructor(expressID, LongitudinalStartPosition, LongitudinalEndPosition, TransversePosition, ReinforcementRole, SectionDefinition, CrossSectionReinforcementDefinitions) { super(expressID); this.LongitudinalStartPosition = LongitudinalStartPosition; this.LongitudinalEndPosition = LongitudinalEndPosition; this.TransversePosition = TransversePosition; this.ReinforcementRole = ReinforcementRole; this.SectionDefinition = SectionDefinition; this.CrossSectionReinforcementDefinitions = CrossSectionReinforcementDefinitions; this.type = 4165799628; } } IFC42.IfcSectionReinforcementProperties = IfcSectionReinforcementProperties; class IfcSectionedSpine extends IfcGeometricRepresentationItem { constructor(expressID, SpineCurve, CrossSections, CrossSectionPositions) { super(expressID); this.SpineCurve = SpineCurve; this.CrossSections = CrossSections; this.CrossSectionPositions = CrossSectionPositions; this.type = 1509187699; } } IFC42.IfcSectionedSpine = IfcSectionedSpine; class IfcShellBasedSurfaceModel extends IfcGeometricRepresentationItem { constructor(expressID, SbsmBoundary) { super(expressID); this.SbsmBoundary = SbsmBoundary; this.type = 4124623270; } } IFC42.IfcShellBasedSurfaceModel = IfcShellBasedSurfaceModel; class IfcSimpleProperty extends IfcProperty { constructor(expressID, Name, Description) { super(expressID, Name, Description); this.Name = Name; this.Description = Description; this.type = 3692461612; } } IFC42.IfcSimpleProperty = IfcSimpleProperty; class IfcSlippageConnectionCondition extends IfcStructuralConnectionCondition { constructor(expressID, Name, SlippageX, SlippageY, SlippageZ) { super(expressID, Name); this.Name = Name; this.SlippageX = SlippageX; this.SlippageY = SlippageY; this.SlippageZ = SlippageZ; this.type = 2609359061; } } IFC42.IfcSlippageConnectionCondition = IfcSlippageConnectionCondition; class IfcSolidModel extends IfcGeometricRepresentationItem { constructor(expressID) { super(expressID); this.type = 723233188; } } IFC42.IfcSolidModel = IfcSolidModel; class IfcStructuralLoadLinearForce extends IfcStructuralLoadStatic { constructor(expressID, Name, LinearForceX, LinearForceY, LinearForceZ, LinearMomentX, LinearMomentY, LinearMomentZ) { super(expressID, Name); this.Name = Name; this.LinearForceX = LinearForceX; this.LinearForceY = LinearForceY; this.LinearForceZ = LinearForceZ; this.LinearMomentX = LinearMomentX; this.LinearMomentY = LinearMomentY; this.LinearMomentZ = LinearMomentZ; this.type = 1595516126; } } IFC42.IfcStructuralLoadLinearForce = IfcStructuralLoadLinearForce; class IfcStructuralLoadPlanarForce extends IfcStructuralLoadStatic { constructor(expressID, Name, PlanarForceX, PlanarForceY, PlanarForceZ) { super(expressID, Name); this.Name = Name; this.PlanarForceX = PlanarForceX; this.PlanarForceY = PlanarForceY; this.PlanarForceZ = PlanarForceZ; this.type = 2668620305; } } IFC42.IfcStructuralLoadPlanarForce = IfcStructuralLoadPlanarForce; class IfcStructuralLoadSingleDisplacement extends IfcStructuralLoadStatic { constructor(expressID, Name, DisplacementX, DisplacementY, DisplacementZ, RotationalDisplacementRX, RotationalDisplacementRY, RotationalDisplacementRZ) { super(expressID, Name); this.Name = Name; this.DisplacementX = DisplacementX; this.DisplacementY = DisplacementY; this.DisplacementZ = DisplacementZ; this.RotationalDisplacementRX = RotationalDisplacementRX; this.RotationalDisplacementRY = RotationalDisplacementRY; this.RotationalDisplacementRZ = RotationalDisplacementRZ; this.type = 2473145415; } } IFC42.IfcStructuralLoadSingleDisplacement = IfcStructuralLoadSingleDisplacement; class IfcStructuralLoadSingleDisplacementDistortion extends IfcStructuralLoadSingleDisplacement { constructor(expressID, Name, DisplacementX, DisplacementY, DisplacementZ, RotationalDisplacementRX, RotationalDisplacementRY, RotationalDisplacementRZ, Distortion) { super(expressID, Name, DisplacementX, DisplacementY, DisplacementZ, RotationalDisplacementRX, RotationalDisplacementRY, RotationalDisplacementRZ); this.Name = Name; this.DisplacementX = DisplacementX; this.DisplacementY = DisplacementY; this.DisplacementZ = DisplacementZ; this.RotationalDisplacementRX = RotationalDisplacementRX; this.RotationalDisplacementRY = RotationalDisplacementRY; this.RotationalDisplacementRZ = RotationalDisplacementRZ; this.Distortion = Distortion; this.type = 1973038258; } } IFC42.IfcStructuralLoadSingleDisplacementDistortion = IfcStructuralLoadSingleDisplacementDistortion; class IfcStructuralLoadSingleForce extends IfcStructuralLoadStatic { constructor(expressID, Name, ForceX, ForceY, ForceZ, MomentX, MomentY, MomentZ) { super(expressID, Name); this.Name = Name; this.ForceX = ForceX; this.ForceY = ForceY; this.ForceZ = ForceZ; this.MomentX = MomentX; this.MomentY = MomentY; this.MomentZ = MomentZ; this.type = 1597423693; } } IFC42.IfcStructuralLoadSingleForce = IfcStructuralLoadSingleForce; class IfcStructuralLoadSingleForceWarping extends IfcStructuralLoadSingleForce { constructor(expressID, Name, ForceX, ForceY, ForceZ, MomentX, MomentY, MomentZ, WarpingMoment) { super(expressID, Name, ForceX, ForceY, ForceZ, MomentX, MomentY, MomentZ); this.Name = Name; this.ForceX = ForceX; this.ForceY = ForceY; this.ForceZ = ForceZ; this.MomentX = MomentX; this.MomentY = MomentY; this.MomentZ = MomentZ; this.WarpingMoment = WarpingMoment; this.type = 1190533807; } } IFC42.IfcStructuralLoadSingleForceWarping = IfcStructuralLoadSingleForceWarping; class IfcSubedge extends IfcEdge { constructor(expressID, EdgeStart, EdgeEnd, ParentEdge) { super(expressID, EdgeStart, EdgeEnd); this.EdgeStart = EdgeStart; this.EdgeEnd = EdgeEnd; this.ParentEdge = ParentEdge; this.type = 2233826070; } } IFC42.IfcSubedge = IfcSubedge; class IfcSurface extends IfcGeometricRepresentationItem { constructor(expressID) { super(expressID); this.type = 2513912981; } } IFC42.IfcSurface = IfcSurface; class IfcSurfaceStyleRendering extends IfcSurfaceStyleShading { constructor(expressID, SurfaceColour, Transparency, DiffuseColour, TransmissionColour, DiffuseTransmissionColour, ReflectionColour, SpecularColour, SpecularHighlight, ReflectanceMethod) { super(expressID, SurfaceColour, Transparency); this.SurfaceColour = SurfaceColour; this.Transparency = Transparency; this.DiffuseColour = DiffuseColour; this.TransmissionColour = TransmissionColour; this.DiffuseTransmissionColour = DiffuseTransmissionColour; this.ReflectionColour = ReflectionColour; this.SpecularColour = SpecularColour; this.SpecularHighlight = SpecularHighlight; this.ReflectanceMethod = ReflectanceMethod; this.type = 1878645084; } } IFC42.IfcSurfaceStyleRendering = IfcSurfaceStyleRendering; class IfcSweptAreaSolid extends IfcSolidModel { constructor(expressID, SweptArea, Position) { super(expressID); this.SweptArea = SweptArea; this.Position = Position; this.type = 2247615214; } } IFC42.IfcSweptAreaSolid = IfcSweptAreaSolid; class IfcSweptDiskSolid extends IfcSolidModel { constructor(expressID, Directrix, Radius, InnerRadius, StartParam, EndParam) { super(expressID); this.Directrix = Directrix; this.Radius = Radius; this.InnerRadius = InnerRadius; this.StartParam = StartParam; this.EndParam = EndParam; this.type = 1260650574; } } IFC42.IfcSweptDiskSolid = IfcSweptDiskSolid; class IfcSweptDiskSolidPolygonal extends IfcSweptDiskSolid { constructor(expressID, Directrix, Radius, InnerRadius, StartParam, EndParam, FilletRadius) { super(expressID, Directrix, Radius, InnerRadius, StartParam, EndParam); this.Directrix = Directrix; this.Radius = Radius; this.InnerRadius = InnerRadius; this.StartParam = StartParam; this.EndParam = EndParam; this.FilletRadius = FilletRadius; this.type = 1096409881; } } IFC42.IfcSweptDiskSolidPolygonal = IfcSweptDiskSolidPolygonal; class IfcSweptSurface extends IfcSurface { constructor(expressID, SweptCurve, Position) { super(expressID); this.SweptCurve = SweptCurve; this.Position = Position; this.type = 230924584; } } IFC42.IfcSweptSurface = IfcSweptSurface; class IfcTShapeProfileDef extends IfcParameterizedProfileDef { constructor(expressID, ProfileType, ProfileName, Position, Depth, FlangeWidth, WebThickness, FlangeThickness, FilletRadius, FlangeEdgeRadius, WebEdgeRadius, WebSlope, FlangeSlope) { super(expressID, ProfileType, ProfileName, Position); this.ProfileType = ProfileType; this.ProfileName = ProfileName; this.Position = Position; this.Depth = Depth; this.FlangeWidth = FlangeWidth; this.WebThickness = WebThickness; this.FlangeThickness = FlangeThickness; this.FilletRadius = FilletRadius; this.FlangeEdgeRadius = FlangeEdgeRadius; this.WebEdgeRadius = WebEdgeRadius; this.WebSlope = WebSlope; this.FlangeSlope = FlangeSlope; this.type = 3071757647; } } IFC42.IfcTShapeProfileDef = IfcTShapeProfileDef; class IfcTessellatedItem extends IfcGeometricRepresentationItem { constructor(expressID) { super(expressID); this.type = 901063453; } } IFC42.IfcTessellatedItem = IfcTessellatedItem; class IfcTextLiteral extends IfcGeometricRepresentationItem { constructor(expressID, Literal, Placement, Path) { super(expressID); this.Literal = Literal; this.Placement = Placement; this.Path = Path; this.type = 4282788508; } } IFC42.IfcTextLiteral = IfcTextLiteral; class IfcTextLiteralWithExtent extends IfcTextLiteral { constructor(expressID, Literal, Placement, Path, Extent, BoxAlignment) { super(expressID, Literal, Placement, Path); this.Literal = Literal; this.Placement = Placement; this.Path = Path; this.Extent = Extent; this.BoxAlignment = BoxAlignment; this.type = 3124975700; } } IFC42.IfcTextLiteralWithExtent = IfcTextLiteralWithExtent; class IfcTextStyleFontModel extends IfcPreDefinedTextFont { constructor(expressID, Name, FontFamily, FontStyle, FontVariant, FontWeight, FontSize) { super(expressID, Name); this.Name = Name; this.FontFamily = FontFamily; this.FontStyle = FontStyle; this.FontVariant = FontVariant; this.FontWeight = FontWeight; this.FontSize = FontSize; this.type = 1983826977; } } IFC42.IfcTextStyleFontModel = IfcTextStyleFontModel; class IfcTrapeziumProfileDef extends IfcParameterizedProfileDef { constructor(expressID, ProfileType, ProfileName, Position, BottomXDim, TopXDim, YDim, TopXOffset) { super(expressID, ProfileType, ProfileName, Position); this.ProfileType = ProfileType; this.ProfileName = ProfileName; this.Position = Position; this.BottomXDim = BottomXDim; this.TopXDim = TopXDim; this.YDim = YDim; this.TopXOffset = TopXOffset; this.type = 2715220739; } } IFC42.IfcTrapeziumProfileDef = IfcTrapeziumProfileDef; class IfcTypeObject extends IfcObjectDefinition { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets) { super(expressID, GlobalId, OwnerHistory, Name, Description); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.type = 1628702193; } } IFC42.IfcTypeObject = IfcTypeObject; class IfcTypeProcess extends IfcTypeObject { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ProcessType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.Identification = Identification; this.LongDescription = LongDescription; this.ProcessType = ProcessType; this.type = 3736923433; } } IFC42.IfcTypeProcess = IfcTypeProcess; class IfcTypeProduct extends IfcTypeObject { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.type = 2347495698; } } IFC42.IfcTypeProduct = IfcTypeProduct; class IfcTypeResource extends IfcTypeObject { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.Identification = Identification; this.LongDescription = LongDescription; this.ResourceType = ResourceType; this.type = 3698973494; } } IFC42.IfcTypeResource = IfcTypeResource; class IfcUShapeProfileDef extends IfcParameterizedProfileDef { constructor(expressID, ProfileType, ProfileName, Position, Depth, FlangeWidth, WebThickness, FlangeThickness, FilletRadius, EdgeRadius, FlangeSlope) { super(expressID, ProfileType, ProfileName, Position); this.ProfileType = ProfileType; this.ProfileName = ProfileName; this.Position = Position; this.Depth = Depth; this.FlangeWidth = FlangeWidth; this.WebThickness = WebThickness; this.FlangeThickness = FlangeThickness; this.FilletRadius = FilletRadius; this.EdgeRadius = EdgeRadius; this.FlangeSlope = FlangeSlope; this.type = 427810014; } } IFC42.IfcUShapeProfileDef = IfcUShapeProfileDef; class IfcVector extends IfcGeometricRepresentationItem { constructor(expressID, Orientation, Magnitude) { super(expressID); this.Orientation = Orientation; this.Magnitude = Magnitude; this.type = 1417489154; } } IFC42.IfcVector = IfcVector; class IfcVertexLoop extends IfcLoop { constructor(expressID, LoopVertex) { super(expressID); this.LoopVertex = LoopVertex; this.type = 2759199220; } } IFC42.IfcVertexLoop = IfcVertexLoop; class IfcWindowStyle extends IfcTypeProduct { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ConstructionType, OperationType, ParameterTakesPrecedence, Sizeable) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ConstructionType = ConstructionType; this.OperationType = OperationType; this.ParameterTakesPrecedence = ParameterTakesPrecedence; this.Sizeable = Sizeable; this.type = 1299126871; } } IFC42.IfcWindowStyle = IfcWindowStyle; class IfcZShapeProfileDef extends IfcParameterizedProfileDef { constructor(expressID, ProfileType, ProfileName, Position, Depth, FlangeWidth, WebThickness, FlangeThickness, FilletRadius, EdgeRadius) { super(expressID, ProfileType, ProfileName, Position); this.ProfileType = ProfileType; this.ProfileName = ProfileName; this.Position = Position; this.Depth = Depth; this.FlangeWidth = FlangeWidth; this.WebThickness = WebThickness; this.FlangeThickness = FlangeThickness; this.FilletRadius = FilletRadius; this.EdgeRadius = EdgeRadius; this.type = 2543172580; } } IFC42.IfcZShapeProfileDef = IfcZShapeProfileDef; class IfcAdvancedFace extends IfcFaceSurface { constructor(expressID, Bounds, FaceSurface, SameSense) { super(expressID, Bounds, FaceSurface, SameSense); this.Bounds = Bounds; this.FaceSurface = FaceSurface; this.SameSense = SameSense; this.type = 3406155212; } } IFC42.IfcAdvancedFace = IfcAdvancedFace; class IfcAnnotationFillArea extends IfcGeometricRepresentationItem { constructor(expressID, OuterBoundary, InnerBoundaries) { super(expressID); this.OuterBoundary = OuterBoundary; this.InnerBoundaries = InnerBoundaries; this.type = 669184980; } } IFC42.IfcAnnotationFillArea = IfcAnnotationFillArea; class IfcAsymmetricIShapeProfileDef extends IfcParameterizedProfileDef { constructor(expressID, ProfileType, ProfileName, Position, BottomFlangeWidth, OverallDepth, WebThickness, BottomFlangeThickness, BottomFlangeFilletRadius, TopFlangeWidth, TopFlangeThickness, TopFlangeFilletRadius, BottomFlangeEdgeRadius, BottomFlangeSlope, TopFlangeEdgeRadius, TopFlangeSlope) { super(expressID, ProfileType, ProfileName, Position); this.ProfileType = ProfileType; this.ProfileName = ProfileName; this.Position = Position; this.BottomFlangeWidth = BottomFlangeWidth; this.OverallDepth = OverallDepth; this.WebThickness = WebThickness; this.BottomFlangeThickness = BottomFlangeThickness; this.BottomFlangeFilletRadius = BottomFlangeFilletRadius; this.TopFlangeWidth = TopFlangeWidth; this.TopFlangeThickness = TopFlangeThickness; this.TopFlangeFilletRadius = TopFlangeFilletRadius; this.BottomFlangeEdgeRadius = BottomFlangeEdgeRadius; this.BottomFlangeSlope = BottomFlangeSlope; this.TopFlangeEdgeRadius = TopFlangeEdgeRadius; this.TopFlangeSlope = TopFlangeSlope; this.type = 3207858831; } } IFC42.IfcAsymmetricIShapeProfileDef = IfcAsymmetricIShapeProfileDef; class IfcAxis1Placement extends IfcPlacement { constructor(expressID, Location, Axis) { super(expressID, Location); this.Location = Location; this.Axis = Axis; this.type = 4261334040; } } IFC42.IfcAxis1Placement = IfcAxis1Placement; class IfcAxis2Placement2D extends IfcPlacement { constructor(expressID, Location, RefDirection) { super(expressID, Location); this.Location = Location; this.RefDirection = RefDirection; this.type = 3125803723; } } IFC42.IfcAxis2Placement2D = IfcAxis2Placement2D; class IfcAxis2Placement3D extends IfcPlacement { constructor(expressID, Location, Axis, RefDirection) { super(expressID, Location); this.Location = Location; this.Axis = Axis; this.RefDirection = RefDirection; this.type = 2740243338; } } IFC42.IfcAxis2Placement3D = IfcAxis2Placement3D; class IfcBooleanResult extends IfcGeometricRepresentationItem { constructor(expressID, Operator, FirstOperand, SecondOperand) { super(expressID); this.Operator = Operator; this.FirstOperand = FirstOperand; this.SecondOperand = SecondOperand; this.type = 2736907675; } } IFC42.IfcBooleanResult = IfcBooleanResult; class IfcBoundedSurface extends IfcSurface { constructor(expressID) { super(expressID); this.type = 4182860854; } } IFC42.IfcBoundedSurface = IfcBoundedSurface; class IfcBoundingBox extends IfcGeometricRepresentationItem { constructor(expressID, Corner, XDim, YDim, ZDim) { super(expressID); this.Corner = Corner; this.XDim = XDim; this.YDim = YDim; this.ZDim = ZDim; this.type = 2581212453; } } IFC42.IfcBoundingBox = IfcBoundingBox; class IfcBoxedHalfSpace extends IfcHalfSpaceSolid { constructor(expressID, BaseSurface, AgreementFlag, Enclosure) { super(expressID, BaseSurface, AgreementFlag); this.BaseSurface = BaseSurface; this.AgreementFlag = AgreementFlag; this.Enclosure = Enclosure; this.type = 2713105998; } } IFC42.IfcBoxedHalfSpace = IfcBoxedHalfSpace; class IfcCShapeProfileDef extends IfcParameterizedProfileDef { constructor(expressID, ProfileType, ProfileName, Position, Depth, Width, WallThickness, Girth, InternalFilletRadius) { super(expressID, ProfileType, ProfileName, Position); this.ProfileType = ProfileType; this.ProfileName = ProfileName; this.Position = Position; this.Depth = Depth; this.Width = Width; this.WallThickness = WallThickness; this.Girth = Girth; this.InternalFilletRadius = InternalFilletRadius; this.type = 2898889636; } } IFC42.IfcCShapeProfileDef = IfcCShapeProfileDef; class IfcCartesianPoint extends IfcPoint { constructor(expressID, Coordinates) { super(expressID); this.Coordinates = Coordinates; this.type = 1123145078; } } IFC42.IfcCartesianPoint = IfcCartesianPoint; class IfcCartesianPointList extends IfcGeometricRepresentationItem { constructor(expressID) { super(expressID); this.type = 574549367; } } IFC42.IfcCartesianPointList = IfcCartesianPointList; class IfcCartesianPointList2D extends IfcCartesianPointList { constructor(expressID, CoordList) { super(expressID); this.CoordList = CoordList; this.type = 1675464909; } } IFC42.IfcCartesianPointList2D = IfcCartesianPointList2D; class IfcCartesianPointList3D extends IfcCartesianPointList { constructor(expressID, CoordList) { super(expressID); this.CoordList = CoordList; this.type = 2059837836; } } IFC42.IfcCartesianPointList3D = IfcCartesianPointList3D; class IfcCartesianTransformationOperator extends IfcGeometricRepresentationItem { constructor(expressID, Axis1, Axis2, LocalOrigin, Scale) { super(expressID); this.Axis1 = Axis1; this.Axis2 = Axis2; this.LocalOrigin = LocalOrigin; this.Scale = Scale; this.type = 59481748; } } IFC42.IfcCartesianTransformationOperator = IfcCartesianTransformationOperator; class IfcCartesianTransformationOperator2D extends IfcCartesianTransformationOperator { constructor(expressID, Axis1, Axis2, LocalOrigin, Scale) { super(expressID, Axis1, Axis2, LocalOrigin, Scale); this.Axis1 = Axis1; this.Axis2 = Axis2; this.LocalOrigin = LocalOrigin; this.Scale = Scale; this.type = 3749851601; } } IFC42.IfcCartesianTransformationOperator2D = IfcCartesianTransformationOperator2D; class IfcCartesianTransformationOperator2DnonUniform extends IfcCartesianTransformationOperator2D { constructor(expressID, Axis1, Axis2, LocalOrigin, Scale, Scale2) { super(expressID, Axis1, Axis2, LocalOrigin, Scale); this.Axis1 = Axis1; this.Axis2 = Axis2; this.LocalOrigin = LocalOrigin; this.Scale = Scale; this.Scale2 = Scale2; this.type = 3486308946; } } IFC42.IfcCartesianTransformationOperator2DnonUniform = IfcCartesianTransformationOperator2DnonUniform; class IfcCartesianTransformationOperator3D extends IfcCartesianTransformationOperator { constructor(expressID, Axis1, Axis2, LocalOrigin, Scale, Axis3) { super(expressID, Axis1, Axis2, LocalOrigin, Scale); this.Axis1 = Axis1; this.Axis2 = Axis2; this.LocalOrigin = LocalOrigin; this.Scale = Scale; this.Axis3 = Axis3; this.type = 3331915920; } } IFC42.IfcCartesianTransformationOperator3D = IfcCartesianTransformationOperator3D; class IfcCartesianTransformationOperator3DnonUniform extends IfcCartesianTransformationOperator3D { constructor(expressID, Axis1, Axis2, LocalOrigin, Scale, Axis3, Scale2, Scale3) { super(expressID, Axis1, Axis2, LocalOrigin, Scale, Axis3); this.Axis1 = Axis1; this.Axis2 = Axis2; this.LocalOrigin = LocalOrigin; this.Scale = Scale; this.Axis3 = Axis3; this.Scale2 = Scale2; this.Scale3 = Scale3; this.type = 1416205885; } } IFC42.IfcCartesianTransformationOperator3DnonUniform = IfcCartesianTransformationOperator3DnonUniform; class IfcCircleProfileDef extends IfcParameterizedProfileDef { constructor(expressID, ProfileType, ProfileName, Position, Radius) { super(expressID, ProfileType, ProfileName, Position); this.ProfileType = ProfileType; this.ProfileName = ProfileName; this.Position = Position; this.Radius = Radius; this.type = 1383045692; } } IFC42.IfcCircleProfileDef = IfcCircleProfileDef; class IfcClosedShell extends IfcConnectedFaceSet { constructor(expressID, CfsFaces) { super(expressID, CfsFaces); this.CfsFaces = CfsFaces; this.type = 2205249479; } } IFC42.IfcClosedShell = IfcClosedShell; class IfcColourRgb extends IfcColourSpecification { constructor(expressID, Name, Red, Green, Blue) { super(expressID, Name); this.Name = Name; this.Red = Red; this.Green = Green; this.Blue = Blue; this.type = 776857604; } } IFC42.IfcColourRgb = IfcColourRgb; class IfcComplexProperty extends IfcProperty { constructor(expressID, Name, Description, UsageName, HasProperties) { super(expressID, Name, Description); this.Name = Name; this.Description = Description; this.UsageName = UsageName; this.HasProperties = HasProperties; this.type = 2542286263; } } IFC42.IfcComplexProperty = IfcComplexProperty; class IfcCompositeCurveSegment extends IfcGeometricRepresentationItem { constructor(expressID, Transition, SameSense, ParentCurve) { super(expressID); this.Transition = Transition; this.SameSense = SameSense; this.ParentCurve = ParentCurve; this.type = 2485617015; } } IFC42.IfcCompositeCurveSegment = IfcCompositeCurveSegment; class IfcConstructionResourceType extends IfcTypeResource { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.Identification = Identification; this.LongDescription = LongDescription; this.ResourceType = ResourceType; this.BaseCosts = BaseCosts; this.BaseQuantity = BaseQuantity; this.type = 2574617495; } } IFC42.IfcConstructionResourceType = IfcConstructionResourceType; class IfcContext extends IfcObjectDefinition { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, LongName, Phase, RepresentationContexts, UnitsInContext) { super(expressID, GlobalId, OwnerHistory, Name, Description); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.LongName = LongName; this.Phase = Phase; this.RepresentationContexts = RepresentationContexts; this.UnitsInContext = UnitsInContext; this.type = 3419103109; } } IFC42.IfcContext = IfcContext; class IfcCrewResourceType extends IfcConstructionResourceType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.Identification = Identification; this.LongDescription = LongDescription; this.ResourceType = ResourceType; this.BaseCosts = BaseCosts; this.BaseQuantity = BaseQuantity; this.PredefinedType = PredefinedType; this.type = 1815067380; } } IFC42.IfcCrewResourceType = IfcCrewResourceType; class IfcCsgPrimitive3D extends IfcGeometricRepresentationItem { constructor(expressID, Position) { super(expressID); this.Position = Position; this.type = 2506170314; } } IFC42.IfcCsgPrimitive3D = IfcCsgPrimitive3D; class IfcCsgSolid extends IfcSolidModel { constructor(expressID, TreeRootExpression) { super(expressID); this.TreeRootExpression = TreeRootExpression; this.type = 2147822146; } } IFC42.IfcCsgSolid = IfcCsgSolid; class IfcCurve extends IfcGeometricRepresentationItem { constructor(expressID) { super(expressID); this.type = 2601014836; } } IFC42.IfcCurve = IfcCurve; class IfcCurveBoundedPlane extends IfcBoundedSurface { constructor(expressID, BasisSurface, OuterBoundary, InnerBoundaries) { super(expressID); this.BasisSurface = BasisSurface; this.OuterBoundary = OuterBoundary; this.InnerBoundaries = InnerBoundaries; this.type = 2827736869; } } IFC42.IfcCurveBoundedPlane = IfcCurveBoundedPlane; class IfcCurveBoundedSurface extends IfcBoundedSurface { constructor(expressID, BasisSurface, Boundaries, ImplicitOuter) { super(expressID); this.BasisSurface = BasisSurface; this.Boundaries = Boundaries; this.ImplicitOuter = ImplicitOuter; this.type = 2629017746; } } IFC42.IfcCurveBoundedSurface = IfcCurveBoundedSurface; class IfcDirection extends IfcGeometricRepresentationItem { constructor(expressID, DirectionRatios) { super(expressID); this.DirectionRatios = DirectionRatios; this.type = 32440307; } } IFC42.IfcDirection = IfcDirection; class IfcDoorStyle extends IfcTypeProduct { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, OperationType, ConstructionType, ParameterTakesPrecedence, Sizeable) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.OperationType = OperationType; this.ConstructionType = ConstructionType; this.ParameterTakesPrecedence = ParameterTakesPrecedence; this.Sizeable = Sizeable; this.type = 526551008; } } IFC42.IfcDoorStyle = IfcDoorStyle; class IfcEdgeLoop extends IfcLoop { constructor(expressID, EdgeList) { super(expressID); this.EdgeList = EdgeList; this.type = 1472233963; } } IFC42.IfcEdgeLoop = IfcEdgeLoop; class IfcElementQuantity extends IfcQuantitySet { constructor(expressID, GlobalId, OwnerHistory, Name, Description, MethodOfMeasurement, Quantities) { super(expressID, GlobalId, OwnerHistory, Name, Description); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.MethodOfMeasurement = MethodOfMeasurement; this.Quantities = Quantities; this.type = 1883228015; } } IFC42.IfcElementQuantity = IfcElementQuantity; class IfcElementType extends IfcTypeProduct { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.type = 339256511; } } IFC42.IfcElementType = IfcElementType; class IfcElementarySurface extends IfcSurface { constructor(expressID, Position) { super(expressID); this.Position = Position; this.type = 2777663545; } } IFC42.IfcElementarySurface = IfcElementarySurface; class IfcEllipseProfileDef extends IfcParameterizedProfileDef { constructor(expressID, ProfileType, ProfileName, Position, SemiAxis1, SemiAxis2) { super(expressID, ProfileType, ProfileName, Position); this.ProfileType = ProfileType; this.ProfileName = ProfileName; this.Position = Position; this.SemiAxis1 = SemiAxis1; this.SemiAxis2 = SemiAxis2; this.type = 2835456948; } } IFC42.IfcEllipseProfileDef = IfcEllipseProfileDef; class IfcEventType extends IfcTypeProcess { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ProcessType, PredefinedType, EventTriggerType, UserDefinedEventTriggerType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ProcessType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.Identification = Identification; this.LongDescription = LongDescription; this.ProcessType = ProcessType; this.PredefinedType = PredefinedType; this.EventTriggerType = EventTriggerType; this.UserDefinedEventTriggerType = UserDefinedEventTriggerType; this.type = 4024345920; } } IFC42.IfcEventType = IfcEventType; class IfcExtrudedAreaSolid extends IfcSweptAreaSolid { constructor(expressID, SweptArea, Position, ExtrudedDirection, Depth) { super(expressID, SweptArea, Position); this.SweptArea = SweptArea; this.Position = Position; this.ExtrudedDirection = ExtrudedDirection; this.Depth = Depth; this.type = 477187591; } } IFC42.IfcExtrudedAreaSolid = IfcExtrudedAreaSolid; class IfcExtrudedAreaSolidTapered extends IfcExtrudedAreaSolid { constructor(expressID, SweptArea, Position, ExtrudedDirection, Depth, EndSweptArea) { super(expressID, SweptArea, Position, ExtrudedDirection, Depth); this.SweptArea = SweptArea; this.Position = Position; this.ExtrudedDirection = ExtrudedDirection; this.Depth = Depth; this.EndSweptArea = EndSweptArea; this.type = 2804161546; } } IFC42.IfcExtrudedAreaSolidTapered = IfcExtrudedAreaSolidTapered; class IfcFaceBasedSurfaceModel extends IfcGeometricRepresentationItem { constructor(expressID, FbsmFaces) { super(expressID); this.FbsmFaces = FbsmFaces; this.type = 2047409740; } } IFC42.IfcFaceBasedSurfaceModel = IfcFaceBasedSurfaceModel; class IfcFillAreaStyleHatching extends IfcGeometricRepresentationItem { constructor(expressID, HatchLineAppearance, StartOfNextHatchLine, PointOfReferenceHatchLine, PatternStart, HatchLineAngle) { super(expressID); this.HatchLineAppearance = HatchLineAppearance; this.StartOfNextHatchLine = StartOfNextHatchLine; this.PointOfReferenceHatchLine = PointOfReferenceHatchLine; this.PatternStart = PatternStart; this.HatchLineAngle = HatchLineAngle; this.type = 374418227; } } IFC42.IfcFillAreaStyleHatching = IfcFillAreaStyleHatching; class IfcFillAreaStyleTiles extends IfcGeometricRepresentationItem { constructor(expressID, TilingPattern, Tiles, TilingScale) { super(expressID); this.TilingPattern = TilingPattern; this.Tiles = Tiles; this.TilingScale = TilingScale; this.type = 315944413; } } IFC42.IfcFillAreaStyleTiles = IfcFillAreaStyleTiles; class IfcFixedReferenceSweptAreaSolid extends IfcSweptAreaSolid { constructor(expressID, SweptArea, Position, Directrix, StartParam, EndParam, FixedReference) { super(expressID, SweptArea, Position); this.SweptArea = SweptArea; this.Position = Position; this.Directrix = Directrix; this.StartParam = StartParam; this.EndParam = EndParam; this.FixedReference = FixedReference; this.type = 2652556860; } } IFC42.IfcFixedReferenceSweptAreaSolid = IfcFixedReferenceSweptAreaSolid; class IfcFurnishingElementType extends IfcElementType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.type = 4238390223; } } IFC42.IfcFurnishingElementType = IfcFurnishingElementType; class IfcFurnitureType extends IfcFurnishingElementType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, AssemblyPlace, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.AssemblyPlace = AssemblyPlace; this.PredefinedType = PredefinedType; this.type = 1268542332; } } IFC42.IfcFurnitureType = IfcFurnitureType; class IfcGeographicElementType extends IfcElementType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 4095422895; } } IFC42.IfcGeographicElementType = IfcGeographicElementType; class IfcGeometricCurveSet extends IfcGeometricSet { constructor(expressID, Elements) { super(expressID, Elements); this.Elements = Elements; this.type = 987898635; } } IFC42.IfcGeometricCurveSet = IfcGeometricCurveSet; class IfcIShapeProfileDef extends IfcParameterizedProfileDef { constructor(expressID, ProfileType, ProfileName, Position, OverallWidth, OverallDepth, WebThickness, FlangeThickness, FilletRadius, FlangeEdgeRadius, FlangeSlope) { super(expressID, ProfileType, ProfileName, Position); this.ProfileType = ProfileType; this.ProfileName = ProfileName; this.Position = Position; this.OverallWidth = OverallWidth; this.OverallDepth = OverallDepth; this.WebThickness = WebThickness; this.FlangeThickness = FlangeThickness; this.FilletRadius = FilletRadius; this.FlangeEdgeRadius = FlangeEdgeRadius; this.FlangeSlope = FlangeSlope; this.type = 1484403080; } } IFC42.IfcIShapeProfileDef = IfcIShapeProfileDef; class IfcIndexedPolygonalFace extends IfcTessellatedItem { constructor(expressID, CoordIndex) { super(expressID); this.CoordIndex = CoordIndex; this.type = 178912537; } } IFC42.IfcIndexedPolygonalFace = IfcIndexedPolygonalFace; class IfcIndexedPolygonalFaceWithVoids extends IfcIndexedPolygonalFace { constructor(expressID, CoordIndex, InnerCoordIndices) { super(expressID, CoordIndex); this.CoordIndex = CoordIndex; this.InnerCoordIndices = InnerCoordIndices; this.type = 2294589976; } } IFC42.IfcIndexedPolygonalFaceWithVoids = IfcIndexedPolygonalFaceWithVoids; class IfcLShapeProfileDef extends IfcParameterizedProfileDef { constructor(expressID, ProfileType, ProfileName, Position, Depth, Width, Thickness, FilletRadius, EdgeRadius, LegSlope) { super(expressID, ProfileType, ProfileName, Position); this.ProfileType = ProfileType; this.ProfileName = ProfileName; this.Position = Position; this.Depth = Depth; this.Width = Width; this.Thickness = Thickness; this.FilletRadius = FilletRadius; this.EdgeRadius = EdgeRadius; this.LegSlope = LegSlope; this.type = 572779678; } } IFC42.IfcLShapeProfileDef = IfcLShapeProfileDef; class IfcLaborResourceType extends IfcConstructionResourceType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.Identification = Identification; this.LongDescription = LongDescription; this.ResourceType = ResourceType; this.BaseCosts = BaseCosts; this.BaseQuantity = BaseQuantity; this.PredefinedType = PredefinedType; this.type = 428585644; } } IFC42.IfcLaborResourceType = IfcLaborResourceType; class IfcLine extends IfcCurve { constructor(expressID, Pnt, Dir) { super(expressID); this.Pnt = Pnt; this.Dir = Dir; this.type = 1281925730; } } IFC42.IfcLine = IfcLine; class IfcManifoldSolidBrep extends IfcSolidModel { constructor(expressID, Outer) { super(expressID); this.Outer = Outer; this.type = 1425443689; } } IFC42.IfcManifoldSolidBrep = IfcManifoldSolidBrep; class IfcObject extends IfcObjectDefinition { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType) { super(expressID, GlobalId, OwnerHistory, Name, Description); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.type = 3888040117; } } IFC42.IfcObject = IfcObject; class IfcOffsetCurve2D extends IfcCurve { constructor(expressID, BasisCurve, Distance, SelfIntersect) { super(expressID); this.BasisCurve = BasisCurve; this.Distance = Distance; this.SelfIntersect = SelfIntersect; this.type = 3388369263; } } IFC42.IfcOffsetCurve2D = IfcOffsetCurve2D; class IfcOffsetCurve3D extends IfcCurve { constructor(expressID, BasisCurve, Distance, SelfIntersect, RefDirection) { super(expressID); this.BasisCurve = BasisCurve; this.Distance = Distance; this.SelfIntersect = SelfIntersect; this.RefDirection = RefDirection; this.type = 3505215534; } } IFC42.IfcOffsetCurve3D = IfcOffsetCurve3D; class IfcPcurve extends IfcCurve { constructor(expressID, BasisSurface, ReferenceCurve) { super(expressID); this.BasisSurface = BasisSurface; this.ReferenceCurve = ReferenceCurve; this.type = 1682466193; } } IFC42.IfcPcurve = IfcPcurve; class IfcPlanarBox extends IfcPlanarExtent { constructor(expressID, SizeInX, SizeInY, Placement) { super(expressID, SizeInX, SizeInY); this.SizeInX = SizeInX; this.SizeInY = SizeInY; this.Placement = Placement; this.type = 603570806; } } IFC42.IfcPlanarBox = IfcPlanarBox; class IfcPlane extends IfcElementarySurface { constructor(expressID, Position) { super(expressID, Position); this.Position = Position; this.type = 220341763; } } IFC42.IfcPlane = IfcPlane; class IfcPreDefinedColour extends IfcPreDefinedItem { constructor(expressID, Name) { super(expressID, Name); this.Name = Name; this.type = 759155922; } } IFC42.IfcPreDefinedColour = IfcPreDefinedColour; class IfcPreDefinedCurveFont extends IfcPreDefinedItem { constructor(expressID, Name) { super(expressID, Name); this.Name = Name; this.type = 2559016684; } } IFC42.IfcPreDefinedCurveFont = IfcPreDefinedCurveFont; class IfcPreDefinedPropertySet extends IfcPropertySetDefinition { constructor(expressID, GlobalId, OwnerHistory, Name, Description) { super(expressID, GlobalId, OwnerHistory, Name, Description); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.type = 3967405729; } } IFC42.IfcPreDefinedPropertySet = IfcPreDefinedPropertySet; class IfcProcedureType extends IfcTypeProcess { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ProcessType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ProcessType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.Identification = Identification; this.LongDescription = LongDescription; this.ProcessType = ProcessType; this.PredefinedType = PredefinedType; this.type = 569719735; } } IFC42.IfcProcedureType = IfcProcedureType; class IfcProcess extends IfcObject { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.Identification = Identification; this.LongDescription = LongDescription; this.type = 2945172077; } } IFC42.IfcProcess = IfcProcess; class IfcProduct extends IfcObject { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.type = 4208778838; } } IFC42.IfcProduct = IfcProduct; class IfcProject extends IfcContext { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, LongName, Phase, RepresentationContexts, UnitsInContext) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, LongName, Phase, RepresentationContexts, UnitsInContext); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.LongName = LongName; this.Phase = Phase; this.RepresentationContexts = RepresentationContexts; this.UnitsInContext = UnitsInContext; this.type = 103090709; } } IFC42.IfcProject = IfcProject; class IfcProjectLibrary extends IfcContext { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, LongName, Phase, RepresentationContexts, UnitsInContext) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, LongName, Phase, RepresentationContexts, UnitsInContext); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.LongName = LongName; this.Phase = Phase; this.RepresentationContexts = RepresentationContexts; this.UnitsInContext = UnitsInContext; this.type = 653396225; } } IFC42.IfcProjectLibrary = IfcProjectLibrary; class IfcPropertyBoundedValue extends IfcSimpleProperty { constructor(expressID, Name, Description, UpperBoundValue, LowerBoundValue, Unit, SetPointValue) { super(expressID, Name, Description); this.Name = Name; this.Description = Description; this.UpperBoundValue = UpperBoundValue; this.LowerBoundValue = LowerBoundValue; this.Unit = Unit; this.SetPointValue = SetPointValue; this.type = 871118103; } } IFC42.IfcPropertyBoundedValue = IfcPropertyBoundedValue; class IfcPropertyEnumeratedValue extends IfcSimpleProperty { constructor(expressID, Name, Description, EnumerationValues, EnumerationReference) { super(expressID, Name, Description); this.Name = Name; this.Description = Description; this.EnumerationValues = EnumerationValues; this.EnumerationReference = EnumerationReference; this.type = 4166981789; } } IFC42.IfcPropertyEnumeratedValue = IfcPropertyEnumeratedValue; class IfcPropertyListValue extends IfcSimpleProperty { constructor(expressID, Name, Description, ListValues, Unit) { super(expressID, Name, Description); this.Name = Name; this.Description = Description; this.ListValues = ListValues; this.Unit = Unit; this.type = 2752243245; } } IFC42.IfcPropertyListValue = IfcPropertyListValue; class IfcPropertyReferenceValue extends IfcSimpleProperty { constructor(expressID, Name, Description, UsageName, PropertyReference) { super(expressID, Name, Description); this.Name = Name; this.Description = Description; this.UsageName = UsageName; this.PropertyReference = PropertyReference; this.type = 941946838; } } IFC42.IfcPropertyReferenceValue = IfcPropertyReferenceValue; class IfcPropertySet extends IfcPropertySetDefinition { constructor(expressID, GlobalId, OwnerHistory, Name, Description, HasProperties) { super(expressID, GlobalId, OwnerHistory, Name, Description); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.HasProperties = HasProperties; this.type = 1451395588; } } IFC42.IfcPropertySet = IfcPropertySet; class IfcPropertySetTemplate extends IfcPropertyTemplateDefinition { constructor(expressID, GlobalId, OwnerHistory, Name, Description, TemplateType, ApplicableEntity, HasPropertyTemplates) { super(expressID, GlobalId, OwnerHistory, Name, Description); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.TemplateType = TemplateType; this.ApplicableEntity = ApplicableEntity; this.HasPropertyTemplates = HasPropertyTemplates; this.type = 492091185; } } IFC42.IfcPropertySetTemplate = IfcPropertySetTemplate; class IfcPropertySingleValue extends IfcSimpleProperty { constructor(expressID, Name, Description, NominalValue, Unit) { super(expressID, Name, Description); this.Name = Name; this.Description = Description; this.NominalValue = NominalValue; this.Unit = Unit; this.type = 3650150729; } } IFC42.IfcPropertySingleValue = IfcPropertySingleValue; class IfcPropertyTableValue extends IfcSimpleProperty { constructor(expressID, Name, Description, DefiningValues, DefinedValues, Expression, DefiningUnit, DefinedUnit, CurveInterpolation) { super(expressID, Name, Description); this.Name = Name; this.Description = Description; this.DefiningValues = DefiningValues; this.DefinedValues = DefinedValues; this.Expression = Expression; this.DefiningUnit = DefiningUnit; this.DefinedUnit = DefinedUnit; this.CurveInterpolation = CurveInterpolation; this.type = 110355661; } } IFC42.IfcPropertyTableValue = IfcPropertyTableValue; class IfcPropertyTemplate extends IfcPropertyTemplateDefinition { constructor(expressID, GlobalId, OwnerHistory, Name, Description) { super(expressID, GlobalId, OwnerHistory, Name, Description); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.type = 3521284610; } } IFC42.IfcPropertyTemplate = IfcPropertyTemplate; class IfcProxy extends IfcProduct { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, ProxyType, Tag) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.ProxyType = ProxyType; this.Tag = Tag; this.type = 3219374653; } } IFC42.IfcProxy = IfcProxy; class IfcRectangleHollowProfileDef extends IfcRectangleProfileDef { constructor(expressID, ProfileType, ProfileName, Position, XDim, YDim, WallThickness, InnerFilletRadius, OuterFilletRadius) { super(expressID, ProfileType, ProfileName, Position, XDim, YDim); this.ProfileType = ProfileType; this.ProfileName = ProfileName; this.Position = Position; this.XDim = XDim; this.YDim = YDim; this.WallThickness = WallThickness; this.InnerFilletRadius = InnerFilletRadius; this.OuterFilletRadius = OuterFilletRadius; this.type = 2770003689; } } IFC42.IfcRectangleHollowProfileDef = IfcRectangleHollowProfileDef; class IfcRectangularPyramid extends IfcCsgPrimitive3D { constructor(expressID, Position, XLength, YLength, Height) { super(expressID, Position); this.Position = Position; this.XLength = XLength; this.YLength = YLength; this.Height = Height; this.type = 2798486643; } } IFC42.IfcRectangularPyramid = IfcRectangularPyramid; class IfcRectangularTrimmedSurface extends IfcBoundedSurface { constructor(expressID, BasisSurface, U1, V1, U2, V2, Usense, Vsense) { super(expressID); this.BasisSurface = BasisSurface; this.U1 = U1; this.V1 = V1; this.U2 = U2; this.V2 = V2; this.Usense = Usense; this.Vsense = Vsense; this.type = 3454111270; } } IFC42.IfcRectangularTrimmedSurface = IfcRectangularTrimmedSurface; class IfcReinforcementDefinitionProperties extends IfcPreDefinedPropertySet { constructor(expressID, GlobalId, OwnerHistory, Name, Description, DefinitionType, ReinforcementSectionDefinitions) { super(expressID, GlobalId, OwnerHistory, Name, Description); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.DefinitionType = DefinitionType; this.ReinforcementSectionDefinitions = ReinforcementSectionDefinitions; this.type = 3765753017; } } IFC42.IfcReinforcementDefinitionProperties = IfcReinforcementDefinitionProperties; class IfcRelAssigns extends IfcRelationship { constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType) { super(expressID, GlobalId, OwnerHistory, Name, Description); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.RelatedObjects = RelatedObjects; this.RelatedObjectsType = RelatedObjectsType; this.type = 3939117080; } } IFC42.IfcRelAssigns = IfcRelAssigns; class IfcRelAssignsToActor extends IfcRelAssigns { constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingActor, ActingRole) { super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.RelatedObjects = RelatedObjects; this.RelatedObjectsType = RelatedObjectsType; this.RelatingActor = RelatingActor; this.ActingRole = ActingRole; this.type = 1683148259; } } IFC42.IfcRelAssignsToActor = IfcRelAssignsToActor; class IfcRelAssignsToControl extends IfcRelAssigns { constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingControl) { super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.RelatedObjects = RelatedObjects; this.RelatedObjectsType = RelatedObjectsType; this.RelatingControl = RelatingControl; this.type = 2495723537; } } IFC42.IfcRelAssignsToControl = IfcRelAssignsToControl; class IfcRelAssignsToGroup extends IfcRelAssigns { constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingGroup) { super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.RelatedObjects = RelatedObjects; this.RelatedObjectsType = RelatedObjectsType; this.RelatingGroup = RelatingGroup; this.type = 1307041759; } } IFC42.IfcRelAssignsToGroup = IfcRelAssignsToGroup; class IfcRelAssignsToGroupByFactor extends IfcRelAssignsToGroup { constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingGroup, Factor) { super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingGroup); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.RelatedObjects = RelatedObjects; this.RelatedObjectsType = RelatedObjectsType; this.RelatingGroup = RelatingGroup; this.Factor = Factor; this.type = 1027710054; } } IFC42.IfcRelAssignsToGroupByFactor = IfcRelAssignsToGroupByFactor; class IfcRelAssignsToProcess extends IfcRelAssigns { constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingProcess, QuantityInProcess) { super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.RelatedObjects = RelatedObjects; this.RelatedObjectsType = RelatedObjectsType; this.RelatingProcess = RelatingProcess; this.QuantityInProcess = QuantityInProcess; this.type = 4278684876; } } IFC42.IfcRelAssignsToProcess = IfcRelAssignsToProcess; class IfcRelAssignsToProduct extends IfcRelAssigns { constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingProduct) { super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.RelatedObjects = RelatedObjects; this.RelatedObjectsType = RelatedObjectsType; this.RelatingProduct = RelatingProduct; this.type = 2857406711; } } IFC42.IfcRelAssignsToProduct = IfcRelAssignsToProduct; class IfcRelAssignsToResource extends IfcRelAssigns { constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingResource) { super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.RelatedObjects = RelatedObjects; this.RelatedObjectsType = RelatedObjectsType; this.RelatingResource = RelatingResource; this.type = 205026976; } } IFC42.IfcRelAssignsToResource = IfcRelAssignsToResource; class IfcRelAssociates extends IfcRelationship { constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects) { super(expressID, GlobalId, OwnerHistory, Name, Description); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.RelatedObjects = RelatedObjects; this.type = 1865459582; } } IFC42.IfcRelAssociates = IfcRelAssociates; class IfcRelAssociatesApproval extends IfcRelAssociates { constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingApproval) { super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.RelatedObjects = RelatedObjects; this.RelatingApproval = RelatingApproval; this.type = 4095574036; } } IFC42.IfcRelAssociatesApproval = IfcRelAssociatesApproval; class IfcRelAssociatesClassification extends IfcRelAssociates { constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingClassification) { super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.RelatedObjects = RelatedObjects; this.RelatingClassification = RelatingClassification; this.type = 919958153; } } IFC42.IfcRelAssociatesClassification = IfcRelAssociatesClassification; class IfcRelAssociatesConstraint extends IfcRelAssociates { constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, Intent, RelatingConstraint) { super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.RelatedObjects = RelatedObjects; this.Intent = Intent; this.RelatingConstraint = RelatingConstraint; this.type = 2728634034; } } IFC42.IfcRelAssociatesConstraint = IfcRelAssociatesConstraint; class IfcRelAssociatesDocument extends IfcRelAssociates { constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingDocument) { super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.RelatedObjects = RelatedObjects; this.RelatingDocument = RelatingDocument; this.type = 982818633; } } IFC42.IfcRelAssociatesDocument = IfcRelAssociatesDocument; class IfcRelAssociatesLibrary extends IfcRelAssociates { constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingLibrary) { super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.RelatedObjects = RelatedObjects; this.RelatingLibrary = RelatingLibrary; this.type = 3840914261; } } IFC42.IfcRelAssociatesLibrary = IfcRelAssociatesLibrary; class IfcRelAssociatesMaterial extends IfcRelAssociates { constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingMaterial) { super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.RelatedObjects = RelatedObjects; this.RelatingMaterial = RelatingMaterial; this.type = 2655215786; } } IFC42.IfcRelAssociatesMaterial = IfcRelAssociatesMaterial; class IfcRelConnects extends IfcRelationship { constructor(expressID, GlobalId, OwnerHistory, Name, Description) { super(expressID, GlobalId, OwnerHistory, Name, Description); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.type = 826625072; } } IFC42.IfcRelConnects = IfcRelConnects; class IfcRelConnectsElements extends IfcRelConnects { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ConnectionGeometry, RelatingElement, RelatedElement) { super(expressID, GlobalId, OwnerHistory, Name, Description); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ConnectionGeometry = ConnectionGeometry; this.RelatingElement = RelatingElement; this.RelatedElement = RelatedElement; this.type = 1204542856; } } IFC42.IfcRelConnectsElements = IfcRelConnectsElements; class IfcRelConnectsPathElements extends IfcRelConnectsElements { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ConnectionGeometry, RelatingElement, RelatedElement, RelatingPriorities, RelatedPriorities, RelatedConnectionType, RelatingConnectionType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ConnectionGeometry, RelatingElement, RelatedElement); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ConnectionGeometry = ConnectionGeometry; this.RelatingElement = RelatingElement; this.RelatedElement = RelatedElement; this.RelatingPriorities = RelatingPriorities; this.RelatedPriorities = RelatedPriorities; this.RelatedConnectionType = RelatedConnectionType; this.RelatingConnectionType = RelatingConnectionType; this.type = 3945020480; } } IFC42.IfcRelConnectsPathElements = IfcRelConnectsPathElements; class IfcRelConnectsPortToElement extends IfcRelConnects { constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingPort, RelatedElement) { super(expressID, GlobalId, OwnerHistory, Name, Description); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.RelatingPort = RelatingPort; this.RelatedElement = RelatedElement; this.type = 4201705270; } } IFC42.IfcRelConnectsPortToElement = IfcRelConnectsPortToElement; class IfcRelConnectsPorts extends IfcRelConnects { constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingPort, RelatedPort, RealizingElement) { super(expressID, GlobalId, OwnerHistory, Name, Description); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.RelatingPort = RelatingPort; this.RelatedPort = RelatedPort; this.RealizingElement = RealizingElement; this.type = 3190031847; } } IFC42.IfcRelConnectsPorts = IfcRelConnectsPorts; class IfcRelConnectsStructuralActivity extends IfcRelConnects { constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingElement, RelatedStructuralActivity) { super(expressID, GlobalId, OwnerHistory, Name, Description); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.RelatingElement = RelatingElement; this.RelatedStructuralActivity = RelatedStructuralActivity; this.type = 2127690289; } } IFC42.IfcRelConnectsStructuralActivity = IfcRelConnectsStructuralActivity; class IfcRelConnectsStructuralMember extends IfcRelConnects { constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingStructuralMember, RelatedStructuralConnection, AppliedCondition, AdditionalConditions, SupportedLength, ConditionCoordinateSystem) { super(expressID, GlobalId, OwnerHistory, Name, Description); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.RelatingStructuralMember = RelatingStructuralMember; this.RelatedStructuralConnection = RelatedStructuralConnection; this.AppliedCondition = AppliedCondition; this.AdditionalConditions = AdditionalConditions; this.SupportedLength = SupportedLength; this.ConditionCoordinateSystem = ConditionCoordinateSystem; this.type = 1638771189; } } IFC42.IfcRelConnectsStructuralMember = IfcRelConnectsStructuralMember; class IfcRelConnectsWithEccentricity extends IfcRelConnectsStructuralMember { constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingStructuralMember, RelatedStructuralConnection, AppliedCondition, AdditionalConditions, SupportedLength, ConditionCoordinateSystem, ConnectionConstraint) { super(expressID, GlobalId, OwnerHistory, Name, Description, RelatingStructuralMember, RelatedStructuralConnection, AppliedCondition, AdditionalConditions, SupportedLength, ConditionCoordinateSystem); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.RelatingStructuralMember = RelatingStructuralMember; this.RelatedStructuralConnection = RelatedStructuralConnection; this.AppliedCondition = AppliedCondition; this.AdditionalConditions = AdditionalConditions; this.SupportedLength = SupportedLength; this.ConditionCoordinateSystem = ConditionCoordinateSystem; this.ConnectionConstraint = ConnectionConstraint; this.type = 504942748; } } IFC42.IfcRelConnectsWithEccentricity = IfcRelConnectsWithEccentricity; class IfcRelConnectsWithRealizingElements extends IfcRelConnectsElements { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ConnectionGeometry, RelatingElement, RelatedElement, RealizingElements, ConnectionType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ConnectionGeometry, RelatingElement, RelatedElement); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ConnectionGeometry = ConnectionGeometry; this.RelatingElement = RelatingElement; this.RelatedElement = RelatedElement; this.RealizingElements = RealizingElements; this.ConnectionType = ConnectionType; this.type = 3678494232; } } IFC42.IfcRelConnectsWithRealizingElements = IfcRelConnectsWithRealizingElements; class IfcRelContainedInSpatialStructure extends IfcRelConnects { constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedElements, RelatingStructure) { super(expressID, GlobalId, OwnerHistory, Name, Description); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.RelatedElements = RelatedElements; this.RelatingStructure = RelatingStructure; this.type = 3242617779; } } IFC42.IfcRelContainedInSpatialStructure = IfcRelContainedInSpatialStructure; class IfcRelCoversBldgElements extends IfcRelConnects { constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingBuildingElement, RelatedCoverings) { super(expressID, GlobalId, OwnerHistory, Name, Description); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.RelatingBuildingElement = RelatingBuildingElement; this.RelatedCoverings = RelatedCoverings; this.type = 886880790; } } IFC42.IfcRelCoversBldgElements = IfcRelCoversBldgElements; class IfcRelCoversSpaces extends IfcRelConnects { constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingSpace, RelatedCoverings) { super(expressID, GlobalId, OwnerHistory, Name, Description); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.RelatingSpace = RelatingSpace; this.RelatedCoverings = RelatedCoverings; this.type = 2802773753; } } IFC42.IfcRelCoversSpaces = IfcRelCoversSpaces; class IfcRelDeclares extends IfcRelationship { constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingContext, RelatedDefinitions) { super(expressID, GlobalId, OwnerHistory, Name, Description); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.RelatingContext = RelatingContext; this.RelatedDefinitions = RelatedDefinitions; this.type = 2565941209; } } IFC42.IfcRelDeclares = IfcRelDeclares; class IfcRelDecomposes extends IfcRelationship { constructor(expressID, GlobalId, OwnerHistory, Name, Description) { super(expressID, GlobalId, OwnerHistory, Name, Description); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.type = 2551354335; } } IFC42.IfcRelDecomposes = IfcRelDecomposes; class IfcRelDefines extends IfcRelationship { constructor(expressID, GlobalId, OwnerHistory, Name, Description) { super(expressID, GlobalId, OwnerHistory, Name, Description); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.type = 693640335; } } IFC42.IfcRelDefines = IfcRelDefines; class IfcRelDefinesByObject extends IfcRelDefines { constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingObject) { super(expressID, GlobalId, OwnerHistory, Name, Description); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.RelatedObjects = RelatedObjects; this.RelatingObject = RelatingObject; this.type = 1462361463; } } IFC42.IfcRelDefinesByObject = IfcRelDefinesByObject; class IfcRelDefinesByProperties extends IfcRelDefines { constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingPropertyDefinition) { super(expressID, GlobalId, OwnerHistory, Name, Description); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.RelatedObjects = RelatedObjects; this.RelatingPropertyDefinition = RelatingPropertyDefinition; this.type = 4186316022; } } IFC42.IfcRelDefinesByProperties = IfcRelDefinesByProperties; class IfcRelDefinesByTemplate extends IfcRelDefines { constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedPropertySets, RelatingTemplate) { super(expressID, GlobalId, OwnerHistory, Name, Description); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.RelatedPropertySets = RelatedPropertySets; this.RelatingTemplate = RelatingTemplate; this.type = 307848117; } } IFC42.IfcRelDefinesByTemplate = IfcRelDefinesByTemplate; class IfcRelDefinesByType extends IfcRelDefines { constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingType) { super(expressID, GlobalId, OwnerHistory, Name, Description); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.RelatedObjects = RelatedObjects; this.RelatingType = RelatingType; this.type = 781010003; } } IFC42.IfcRelDefinesByType = IfcRelDefinesByType; class IfcRelFillsElement extends IfcRelConnects { constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingOpeningElement, RelatedBuildingElement) { super(expressID, GlobalId, OwnerHistory, Name, Description); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.RelatingOpeningElement = RelatingOpeningElement; this.RelatedBuildingElement = RelatedBuildingElement; this.type = 3940055652; } } IFC42.IfcRelFillsElement = IfcRelFillsElement; class IfcRelFlowControlElements extends IfcRelConnects { constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedControlElements, RelatingFlowElement) { super(expressID, GlobalId, OwnerHistory, Name, Description); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.RelatedControlElements = RelatedControlElements; this.RelatingFlowElement = RelatingFlowElement; this.type = 279856033; } } IFC42.IfcRelFlowControlElements = IfcRelFlowControlElements; class IfcRelInterferesElements extends IfcRelConnects { constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingElement, RelatedElement, InterferenceGeometry, InterferenceType, ImpliedOrder) { super(expressID, GlobalId, OwnerHistory, Name, Description); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.RelatingElement = RelatingElement; this.RelatedElement = RelatedElement; this.InterferenceGeometry = InterferenceGeometry; this.InterferenceType = InterferenceType; this.ImpliedOrder = ImpliedOrder; this.type = 427948657; } } IFC42.IfcRelInterferesElements = IfcRelInterferesElements; class IfcRelNests extends IfcRelDecomposes { constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingObject, RelatedObjects) { super(expressID, GlobalId, OwnerHistory, Name, Description); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.RelatingObject = RelatingObject; this.RelatedObjects = RelatedObjects; this.type = 3268803585; } } IFC42.IfcRelNests = IfcRelNests; class IfcRelProjectsElement extends IfcRelDecomposes { constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingElement, RelatedFeatureElement) { super(expressID, GlobalId, OwnerHistory, Name, Description); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.RelatingElement = RelatingElement; this.RelatedFeatureElement = RelatedFeatureElement; this.type = 750771296; } } IFC42.IfcRelProjectsElement = IfcRelProjectsElement; class IfcRelReferencedInSpatialStructure extends IfcRelConnects { constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedElements, RelatingStructure) { super(expressID, GlobalId, OwnerHistory, Name, Description); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.RelatedElements = RelatedElements; this.RelatingStructure = RelatingStructure; this.type = 1245217292; } } IFC42.IfcRelReferencedInSpatialStructure = IfcRelReferencedInSpatialStructure; class IfcRelSequence extends IfcRelConnects { constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingProcess, RelatedProcess, TimeLag, SequenceType, UserDefinedSequenceType) { super(expressID, GlobalId, OwnerHistory, Name, Description); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.RelatingProcess = RelatingProcess; this.RelatedProcess = RelatedProcess; this.TimeLag = TimeLag; this.SequenceType = SequenceType; this.UserDefinedSequenceType = UserDefinedSequenceType; this.type = 4122056220; } } IFC42.IfcRelSequence = IfcRelSequence; class IfcRelServicesBuildings extends IfcRelConnects { constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingSystem, RelatedBuildings) { super(expressID, GlobalId, OwnerHistory, Name, Description); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.RelatingSystem = RelatingSystem; this.RelatedBuildings = RelatedBuildings; this.type = 366585022; } } IFC42.IfcRelServicesBuildings = IfcRelServicesBuildings; class IfcRelSpaceBoundary extends IfcRelConnects { constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingSpace, RelatedBuildingElement, ConnectionGeometry, PhysicalOrVirtualBoundary, InternalOrExternalBoundary) { super(expressID, GlobalId, OwnerHistory, Name, Description); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.RelatingSpace = RelatingSpace; this.RelatedBuildingElement = RelatedBuildingElement; this.ConnectionGeometry = ConnectionGeometry; this.PhysicalOrVirtualBoundary = PhysicalOrVirtualBoundary; this.InternalOrExternalBoundary = InternalOrExternalBoundary; this.type = 3451746338; } } IFC42.IfcRelSpaceBoundary = IfcRelSpaceBoundary; class IfcRelSpaceBoundary1stLevel extends IfcRelSpaceBoundary { constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingSpace, RelatedBuildingElement, ConnectionGeometry, PhysicalOrVirtualBoundary, InternalOrExternalBoundary, ParentBoundary) { super(expressID, GlobalId, OwnerHistory, Name, Description, RelatingSpace, RelatedBuildingElement, ConnectionGeometry, PhysicalOrVirtualBoundary, InternalOrExternalBoundary); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.RelatingSpace = RelatingSpace; this.RelatedBuildingElement = RelatedBuildingElement; this.ConnectionGeometry = ConnectionGeometry; this.PhysicalOrVirtualBoundary = PhysicalOrVirtualBoundary; this.InternalOrExternalBoundary = InternalOrExternalBoundary; this.ParentBoundary = ParentBoundary; this.type = 3523091289; } } IFC42.IfcRelSpaceBoundary1stLevel = IfcRelSpaceBoundary1stLevel; class IfcRelSpaceBoundary2ndLevel extends IfcRelSpaceBoundary1stLevel { constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingSpace, RelatedBuildingElement, ConnectionGeometry, PhysicalOrVirtualBoundary, InternalOrExternalBoundary, ParentBoundary, CorrespondingBoundary) { super(expressID, GlobalId, OwnerHistory, Name, Description, RelatingSpace, RelatedBuildingElement, ConnectionGeometry, PhysicalOrVirtualBoundary, InternalOrExternalBoundary, ParentBoundary); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.RelatingSpace = RelatingSpace; this.RelatedBuildingElement = RelatedBuildingElement; this.ConnectionGeometry = ConnectionGeometry; this.PhysicalOrVirtualBoundary = PhysicalOrVirtualBoundary; this.InternalOrExternalBoundary = InternalOrExternalBoundary; this.ParentBoundary = ParentBoundary; this.CorrespondingBoundary = CorrespondingBoundary; this.type = 1521410863; } } IFC42.IfcRelSpaceBoundary2ndLevel = IfcRelSpaceBoundary2ndLevel; class IfcRelVoidsElement extends IfcRelDecomposes { constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingBuildingElement, RelatedOpeningElement) { super(expressID, GlobalId, OwnerHistory, Name, Description); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.RelatingBuildingElement = RelatingBuildingElement; this.RelatedOpeningElement = RelatedOpeningElement; this.type = 1401173127; } } IFC42.IfcRelVoidsElement = IfcRelVoidsElement; class IfcReparametrisedCompositeCurveSegment extends IfcCompositeCurveSegment { constructor(expressID, Transition, SameSense, ParentCurve, ParamLength) { super(expressID, Transition, SameSense, ParentCurve); this.Transition = Transition; this.SameSense = SameSense; this.ParentCurve = ParentCurve; this.ParamLength = ParamLength; this.type = 816062949; } } IFC42.IfcReparametrisedCompositeCurveSegment = IfcReparametrisedCompositeCurveSegment; class IfcResource extends IfcObject { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.Identification = Identification; this.LongDescription = LongDescription; this.type = 2914609552; } } IFC42.IfcResource = IfcResource; class IfcRevolvedAreaSolid extends IfcSweptAreaSolid { constructor(expressID, SweptArea, Position, Axis, Angle) { super(expressID, SweptArea, Position); this.SweptArea = SweptArea; this.Position = Position; this.Axis = Axis; this.Angle = Angle; this.type = 1856042241; } } IFC42.IfcRevolvedAreaSolid = IfcRevolvedAreaSolid; class IfcRevolvedAreaSolidTapered extends IfcRevolvedAreaSolid { constructor(expressID, SweptArea, Position, Axis, Angle, EndSweptArea) { super(expressID, SweptArea, Position, Axis, Angle); this.SweptArea = SweptArea; this.Position = Position; this.Axis = Axis; this.Angle = Angle; this.EndSweptArea = EndSweptArea; this.type = 3243963512; } } IFC42.IfcRevolvedAreaSolidTapered = IfcRevolvedAreaSolidTapered; class IfcRightCircularCone extends IfcCsgPrimitive3D { constructor(expressID, Position, Height, BottomRadius) { super(expressID, Position); this.Position = Position; this.Height = Height; this.BottomRadius = BottomRadius; this.type = 4158566097; } } IFC42.IfcRightCircularCone = IfcRightCircularCone; class IfcRightCircularCylinder extends IfcCsgPrimitive3D { constructor(expressID, Position, Height, Radius) { super(expressID, Position); this.Position = Position; this.Height = Height; this.Radius = Radius; this.type = 3626867408; } } IFC42.IfcRightCircularCylinder = IfcRightCircularCylinder; class IfcSimplePropertyTemplate extends IfcPropertyTemplate { constructor(expressID, GlobalId, OwnerHistory, Name, Description, TemplateType, PrimaryMeasureType, SecondaryMeasureType, Enumerators, PrimaryUnit, SecondaryUnit, Expression, AccessState) { super(expressID, GlobalId, OwnerHistory, Name, Description); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.TemplateType = TemplateType; this.PrimaryMeasureType = PrimaryMeasureType; this.SecondaryMeasureType = SecondaryMeasureType; this.Enumerators = Enumerators; this.PrimaryUnit = PrimaryUnit; this.SecondaryUnit = SecondaryUnit; this.Expression = Expression; this.AccessState = AccessState; this.type = 3663146110; } } IFC42.IfcSimplePropertyTemplate = IfcSimplePropertyTemplate; class IfcSpatialElement extends IfcProduct { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.LongName = LongName; this.type = 1412071761; } } IFC42.IfcSpatialElement = IfcSpatialElement; class IfcSpatialElementType extends IfcTypeProduct { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.type = 710998568; } } IFC42.IfcSpatialElementType = IfcSpatialElementType; class IfcSpatialStructureElement extends IfcSpatialElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.LongName = LongName; this.CompositionType = CompositionType; this.type = 2706606064; } } IFC42.IfcSpatialStructureElement = IfcSpatialStructureElement; class IfcSpatialStructureElementType extends IfcSpatialElementType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.type = 3893378262; } } IFC42.IfcSpatialStructureElementType = IfcSpatialStructureElementType; class IfcSpatialZone extends IfcSpatialElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.LongName = LongName; this.PredefinedType = PredefinedType; this.type = 463610769; } } IFC42.IfcSpatialZone = IfcSpatialZone; class IfcSpatialZoneType extends IfcSpatialElementType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType, LongName) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.LongName = LongName; this.type = 2481509218; } } IFC42.IfcSpatialZoneType = IfcSpatialZoneType; class IfcSphere extends IfcCsgPrimitive3D { constructor(expressID, Position, Radius) { super(expressID, Position); this.Position = Position; this.Radius = Radius; this.type = 451544542; } } IFC42.IfcSphere = IfcSphere; class IfcSphericalSurface extends IfcElementarySurface { constructor(expressID, Position, Radius) { super(expressID, Position); this.Position = Position; this.Radius = Radius; this.type = 4015995234; } } IFC42.IfcSphericalSurface = IfcSphericalSurface; class IfcStructuralActivity extends IfcProduct { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.AppliedLoad = AppliedLoad; this.GlobalOrLocal = GlobalOrLocal; this.type = 3544373492; } } IFC42.IfcStructuralActivity = IfcStructuralActivity; class IfcStructuralItem extends IfcProduct { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.type = 3136571912; } } IFC42.IfcStructuralItem = IfcStructuralItem; class IfcStructuralMember extends IfcStructuralItem { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.type = 530289379; } } IFC42.IfcStructuralMember = IfcStructuralMember; class IfcStructuralReaction extends IfcStructuralActivity { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.AppliedLoad = AppliedLoad; this.GlobalOrLocal = GlobalOrLocal; this.type = 3689010777; } } IFC42.IfcStructuralReaction = IfcStructuralReaction; class IfcStructuralSurfaceMember extends IfcStructuralMember { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType, Thickness) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.PredefinedType = PredefinedType; this.Thickness = Thickness; this.type = 3979015343; } } IFC42.IfcStructuralSurfaceMember = IfcStructuralSurfaceMember; class IfcStructuralSurfaceMemberVarying extends IfcStructuralSurfaceMember { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType, Thickness) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType, Thickness); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.PredefinedType = PredefinedType; this.Thickness = Thickness; this.type = 2218152070; } } IFC42.IfcStructuralSurfaceMemberVarying = IfcStructuralSurfaceMemberVarying; class IfcStructuralSurfaceReaction extends IfcStructuralReaction { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.AppliedLoad = AppliedLoad; this.GlobalOrLocal = GlobalOrLocal; this.PredefinedType = PredefinedType; this.type = 603775116; } } IFC42.IfcStructuralSurfaceReaction = IfcStructuralSurfaceReaction; class IfcSubContractResourceType extends IfcConstructionResourceType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.Identification = Identification; this.LongDescription = LongDescription; this.ResourceType = ResourceType; this.BaseCosts = BaseCosts; this.BaseQuantity = BaseQuantity; this.PredefinedType = PredefinedType; this.type = 4095615324; } } IFC42.IfcSubContractResourceType = IfcSubContractResourceType; class IfcSurfaceCurve extends IfcCurve { constructor(expressID, Curve3D, AssociatedGeometry, MasterRepresentation) { super(expressID); this.Curve3D = Curve3D; this.AssociatedGeometry = AssociatedGeometry; this.MasterRepresentation = MasterRepresentation; this.type = 699246055; } } IFC42.IfcSurfaceCurve = IfcSurfaceCurve; class IfcSurfaceCurveSweptAreaSolid extends IfcSweptAreaSolid { constructor(expressID, SweptArea, Position, Directrix, StartParam, EndParam, ReferenceSurface) { super(expressID, SweptArea, Position); this.SweptArea = SweptArea; this.Position = Position; this.Directrix = Directrix; this.StartParam = StartParam; this.EndParam = EndParam; this.ReferenceSurface = ReferenceSurface; this.type = 2028607225; } } IFC42.IfcSurfaceCurveSweptAreaSolid = IfcSurfaceCurveSweptAreaSolid; class IfcSurfaceOfLinearExtrusion extends IfcSweptSurface { constructor(expressID, SweptCurve, Position, ExtrudedDirection, Depth) { super(expressID, SweptCurve, Position); this.SweptCurve = SweptCurve; this.Position = Position; this.ExtrudedDirection = ExtrudedDirection; this.Depth = Depth; this.type = 2809605785; } } IFC42.IfcSurfaceOfLinearExtrusion = IfcSurfaceOfLinearExtrusion; class IfcSurfaceOfRevolution extends IfcSweptSurface { constructor(expressID, SweptCurve, Position, AxisPosition) { super(expressID, SweptCurve, Position); this.SweptCurve = SweptCurve; this.Position = Position; this.AxisPosition = AxisPosition; this.type = 4124788165; } } IFC42.IfcSurfaceOfRevolution = IfcSurfaceOfRevolution; class IfcSystemFurnitureElementType extends IfcFurnishingElementType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 1580310250; } } IFC42.IfcSystemFurnitureElementType = IfcSystemFurnitureElementType; class IfcTask extends IfcProcess { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Status, WorkMethod, IsMilestone, Priority, TaskTime, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.Identification = Identification; this.LongDescription = LongDescription; this.Status = Status; this.WorkMethod = WorkMethod; this.IsMilestone = IsMilestone; this.Priority = Priority; this.TaskTime = TaskTime; this.PredefinedType = PredefinedType; this.type = 3473067441; } } IFC42.IfcTask = IfcTask; class IfcTaskType extends IfcTypeProcess { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ProcessType, PredefinedType, WorkMethod) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ProcessType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.Identification = Identification; this.LongDescription = LongDescription; this.ProcessType = ProcessType; this.PredefinedType = PredefinedType; this.WorkMethod = WorkMethod; this.type = 3206491090; } } IFC42.IfcTaskType = IfcTaskType; class IfcTessellatedFaceSet extends IfcTessellatedItem { constructor(expressID, Coordinates) { super(expressID); this.Coordinates = Coordinates; this.type = 2387106220; } } IFC42.IfcTessellatedFaceSet = IfcTessellatedFaceSet; class IfcToroidalSurface extends IfcElementarySurface { constructor(expressID, Position, MajorRadius, MinorRadius) { super(expressID, Position); this.Position = Position; this.MajorRadius = MajorRadius; this.MinorRadius = MinorRadius; this.type = 1935646853; } } IFC42.IfcToroidalSurface = IfcToroidalSurface; class IfcTransportElementType extends IfcElementType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 2097647324; } } IFC42.IfcTransportElementType = IfcTransportElementType; class IfcTriangulatedFaceSet extends IfcTessellatedFaceSet { constructor(expressID, Coordinates, Normals, Closed, CoordIndex, PnIndex) { super(expressID, Coordinates); this.Coordinates = Coordinates; this.Normals = Normals; this.Closed = Closed; this.CoordIndex = CoordIndex; this.PnIndex = PnIndex; this.type = 2916149573; } } IFC42.IfcTriangulatedFaceSet = IfcTriangulatedFaceSet; class IfcWindowLiningProperties extends IfcPreDefinedPropertySet { constructor(expressID, GlobalId, OwnerHistory, Name, Description, LiningDepth, LiningThickness, TransomThickness, MullionThickness, FirstTransomOffset, SecondTransomOffset, FirstMullionOffset, SecondMullionOffset, ShapeAspectStyle, LiningOffset, LiningToPanelOffsetX, LiningToPanelOffsetY) { super(expressID, GlobalId, OwnerHistory, Name, Description); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.LiningDepth = LiningDepth; this.LiningThickness = LiningThickness; this.TransomThickness = TransomThickness; this.MullionThickness = MullionThickness; this.FirstTransomOffset = FirstTransomOffset; this.SecondTransomOffset = SecondTransomOffset; this.FirstMullionOffset = FirstMullionOffset; this.SecondMullionOffset = SecondMullionOffset; this.ShapeAspectStyle = ShapeAspectStyle; this.LiningOffset = LiningOffset; this.LiningToPanelOffsetX = LiningToPanelOffsetX; this.LiningToPanelOffsetY = LiningToPanelOffsetY; this.type = 336235671; } } IFC42.IfcWindowLiningProperties = IfcWindowLiningProperties; class IfcWindowPanelProperties extends IfcPreDefinedPropertySet { constructor(expressID, GlobalId, OwnerHistory, Name, Description, OperationType, PanelPosition, FrameDepth, FrameThickness, ShapeAspectStyle) { super(expressID, GlobalId, OwnerHistory, Name, Description); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.OperationType = OperationType; this.PanelPosition = PanelPosition; this.FrameDepth = FrameDepth; this.FrameThickness = FrameThickness; this.ShapeAspectStyle = ShapeAspectStyle; this.type = 512836454; } } IFC42.IfcWindowPanelProperties = IfcWindowPanelProperties; class IfcActor extends IfcObject { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, TheActor) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.TheActor = TheActor; this.type = 2296667514; } } IFC42.IfcActor = IfcActor; class IfcAdvancedBrep extends IfcManifoldSolidBrep { constructor(expressID, Outer) { super(expressID, Outer); this.Outer = Outer; this.type = 1635779807; } } IFC42.IfcAdvancedBrep = IfcAdvancedBrep; class IfcAdvancedBrepWithVoids extends IfcAdvancedBrep { constructor(expressID, Outer, Voids) { super(expressID, Outer); this.Outer = Outer; this.Voids = Voids; this.type = 2603310189; } } IFC42.IfcAdvancedBrepWithVoids = IfcAdvancedBrepWithVoids; class IfcAnnotation extends IfcProduct { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.type = 1674181508; } } IFC42.IfcAnnotation = IfcAnnotation; class IfcBSplineSurface extends IfcBoundedSurface { constructor(expressID, UDegree, VDegree, ControlPointsList, SurfaceForm, UClosed, VClosed, SelfIntersect) { super(expressID); this.UDegree = UDegree; this.VDegree = VDegree; this.ControlPointsList = ControlPointsList; this.SurfaceForm = SurfaceForm; this.UClosed = UClosed; this.VClosed = VClosed; this.SelfIntersect = SelfIntersect; this.type = 2887950389; } } IFC42.IfcBSplineSurface = IfcBSplineSurface; class IfcBSplineSurfaceWithKnots extends IfcBSplineSurface { constructor(expressID, UDegree, VDegree, ControlPointsList, SurfaceForm, UClosed, VClosed, SelfIntersect, UMultiplicities, VMultiplicities, UKnots, VKnots, KnotSpec) { super(expressID, UDegree, VDegree, ControlPointsList, SurfaceForm, UClosed, VClosed, SelfIntersect); this.UDegree = UDegree; this.VDegree = VDegree; this.ControlPointsList = ControlPointsList; this.SurfaceForm = SurfaceForm; this.UClosed = UClosed; this.VClosed = VClosed; this.SelfIntersect = SelfIntersect; this.UMultiplicities = UMultiplicities; this.VMultiplicities = VMultiplicities; this.UKnots = UKnots; this.VKnots = VKnots; this.KnotSpec = KnotSpec; this.type = 167062518; } } IFC42.IfcBSplineSurfaceWithKnots = IfcBSplineSurfaceWithKnots; class IfcBlock extends IfcCsgPrimitive3D { constructor(expressID, Position, XLength, YLength, ZLength) { super(expressID, Position); this.Position = Position; this.XLength = XLength; this.YLength = YLength; this.ZLength = ZLength; this.type = 1334484129; } } IFC42.IfcBlock = IfcBlock; class IfcBooleanClippingResult extends IfcBooleanResult { constructor(expressID, Operator, FirstOperand, SecondOperand) { super(expressID, Operator, FirstOperand, SecondOperand); this.Operator = Operator; this.FirstOperand = FirstOperand; this.SecondOperand = SecondOperand; this.type = 3649129432; } } IFC42.IfcBooleanClippingResult = IfcBooleanClippingResult; class IfcBoundedCurve extends IfcCurve { constructor(expressID) { super(expressID); this.type = 1260505505; } } IFC42.IfcBoundedCurve = IfcBoundedCurve; class IfcBuilding extends IfcSpatialStructureElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, ElevationOfRefHeight, ElevationOfTerrain, BuildingAddress) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.LongName = LongName; this.CompositionType = CompositionType; this.ElevationOfRefHeight = ElevationOfRefHeight; this.ElevationOfTerrain = ElevationOfTerrain; this.BuildingAddress = BuildingAddress; this.type = 4031249490; } } IFC42.IfcBuilding = IfcBuilding; class IfcBuildingElementType extends IfcElementType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.type = 1950629157; } } IFC42.IfcBuildingElementType = IfcBuildingElementType; class IfcBuildingStorey extends IfcSpatialStructureElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, Elevation) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.LongName = LongName; this.CompositionType = CompositionType; this.Elevation = Elevation; this.type = 3124254112; } } IFC42.IfcBuildingStorey = IfcBuildingStorey; class IfcChimneyType extends IfcBuildingElementType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 2197970202; } } IFC42.IfcChimneyType = IfcChimneyType; class IfcCircleHollowProfileDef extends IfcCircleProfileDef { constructor(expressID, ProfileType, ProfileName, Position, Radius, WallThickness) { super(expressID, ProfileType, ProfileName, Position, Radius); this.ProfileType = ProfileType; this.ProfileName = ProfileName; this.Position = Position; this.Radius = Radius; this.WallThickness = WallThickness; this.type = 2937912522; } } IFC42.IfcCircleHollowProfileDef = IfcCircleHollowProfileDef; class IfcCivilElementType extends IfcElementType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.type = 3893394355; } } IFC42.IfcCivilElementType = IfcCivilElementType; class IfcColumnType extends IfcBuildingElementType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 300633059; } } IFC42.IfcColumnType = IfcColumnType; class IfcComplexPropertyTemplate extends IfcPropertyTemplate { constructor(expressID, GlobalId, OwnerHistory, Name, Description, UsageName, TemplateType, HasPropertyTemplates) { super(expressID, GlobalId, OwnerHistory, Name, Description); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.UsageName = UsageName; this.TemplateType = TemplateType; this.HasPropertyTemplates = HasPropertyTemplates; this.type = 3875453745; } } IFC42.IfcComplexPropertyTemplate = IfcComplexPropertyTemplate; class IfcCompositeCurve extends IfcBoundedCurve { constructor(expressID, Segments, SelfIntersect) { super(expressID); this.Segments = Segments; this.SelfIntersect = SelfIntersect; this.type = 3732776249; } } IFC42.IfcCompositeCurve = IfcCompositeCurve; class IfcCompositeCurveOnSurface extends IfcCompositeCurve { constructor(expressID, Segments, SelfIntersect) { super(expressID, Segments, SelfIntersect); this.Segments = Segments; this.SelfIntersect = SelfIntersect; this.type = 15328376; } } IFC42.IfcCompositeCurveOnSurface = IfcCompositeCurveOnSurface; class IfcConic extends IfcCurve { constructor(expressID, Position) { super(expressID); this.Position = Position; this.type = 2510884976; } } IFC42.IfcConic = IfcConic; class IfcConstructionEquipmentResourceType extends IfcConstructionResourceType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.Identification = Identification; this.LongDescription = LongDescription; this.ResourceType = ResourceType; this.BaseCosts = BaseCosts; this.BaseQuantity = BaseQuantity; this.PredefinedType = PredefinedType; this.type = 2185764099; } } IFC42.IfcConstructionEquipmentResourceType = IfcConstructionEquipmentResourceType; class IfcConstructionMaterialResourceType extends IfcConstructionResourceType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.Identification = Identification; this.LongDescription = LongDescription; this.ResourceType = ResourceType; this.BaseCosts = BaseCosts; this.BaseQuantity = BaseQuantity; this.PredefinedType = PredefinedType; this.type = 4105962743; } } IFC42.IfcConstructionMaterialResourceType = IfcConstructionMaterialResourceType; class IfcConstructionProductResourceType extends IfcConstructionResourceType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.Identification = Identification; this.LongDescription = LongDescription; this.ResourceType = ResourceType; this.BaseCosts = BaseCosts; this.BaseQuantity = BaseQuantity; this.PredefinedType = PredefinedType; this.type = 1525564444; } } IFC42.IfcConstructionProductResourceType = IfcConstructionProductResourceType; class IfcConstructionResource extends IfcResource { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.Identification = Identification; this.LongDescription = LongDescription; this.Usage = Usage; this.BaseCosts = BaseCosts; this.BaseQuantity = BaseQuantity; this.type = 2559216714; } } IFC42.IfcConstructionResource = IfcConstructionResource; class IfcControl extends IfcObject { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.Identification = Identification; this.type = 3293443760; } } IFC42.IfcControl = IfcControl; class IfcCostItem extends IfcControl { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, PredefinedType, CostValues, CostQuantities) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.Identification = Identification; this.PredefinedType = PredefinedType; this.CostValues = CostValues; this.CostQuantities = CostQuantities; this.type = 3895139033; } } IFC42.IfcCostItem = IfcCostItem; class IfcCostSchedule extends IfcControl { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, PredefinedType, Status, SubmittedOn, UpdateDate) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.Identification = Identification; this.PredefinedType = PredefinedType; this.Status = Status; this.SubmittedOn = SubmittedOn; this.UpdateDate = UpdateDate; this.type = 1419761937; } } IFC42.IfcCostSchedule = IfcCostSchedule; class IfcCoveringType extends IfcBuildingElementType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 1916426348; } } IFC42.IfcCoveringType = IfcCoveringType; class IfcCrewResource extends IfcConstructionResource { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.Identification = Identification; this.LongDescription = LongDescription; this.Usage = Usage; this.BaseCosts = BaseCosts; this.BaseQuantity = BaseQuantity; this.PredefinedType = PredefinedType; this.type = 3295246426; } } IFC42.IfcCrewResource = IfcCrewResource; class IfcCurtainWallType extends IfcBuildingElementType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 1457835157; } } IFC42.IfcCurtainWallType = IfcCurtainWallType; class IfcCylindricalSurface extends IfcElementarySurface { constructor(expressID, Position, Radius) { super(expressID, Position); this.Position = Position; this.Radius = Radius; this.type = 1213902940; } } IFC42.IfcCylindricalSurface = IfcCylindricalSurface; class IfcDistributionElementType extends IfcElementType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.type = 3256556792; } } IFC42.IfcDistributionElementType = IfcDistributionElementType; class IfcDistributionFlowElementType extends IfcDistributionElementType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.type = 3849074793; } } IFC42.IfcDistributionFlowElementType = IfcDistributionFlowElementType; class IfcDoorLiningProperties extends IfcPreDefinedPropertySet { constructor(expressID, GlobalId, OwnerHistory, Name, Description, LiningDepth, LiningThickness, ThresholdDepth, ThresholdThickness, TransomThickness, TransomOffset, LiningOffset, ThresholdOffset, CasingThickness, CasingDepth, ShapeAspectStyle, LiningToPanelOffsetX, LiningToPanelOffsetY) { super(expressID, GlobalId, OwnerHistory, Name, Description); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.LiningDepth = LiningDepth; this.LiningThickness = LiningThickness; this.ThresholdDepth = ThresholdDepth; this.ThresholdThickness = ThresholdThickness; this.TransomThickness = TransomThickness; this.TransomOffset = TransomOffset; this.LiningOffset = LiningOffset; this.ThresholdOffset = ThresholdOffset; this.CasingThickness = CasingThickness; this.CasingDepth = CasingDepth; this.ShapeAspectStyle = ShapeAspectStyle; this.LiningToPanelOffsetX = LiningToPanelOffsetX; this.LiningToPanelOffsetY = LiningToPanelOffsetY; this.type = 2963535650; } } IFC42.IfcDoorLiningProperties = IfcDoorLiningProperties; class IfcDoorPanelProperties extends IfcPreDefinedPropertySet { constructor(expressID, GlobalId, OwnerHistory, Name, Description, PanelDepth, PanelOperation, PanelWidth, PanelPosition, ShapeAspectStyle) { super(expressID, GlobalId, OwnerHistory, Name, Description); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.PanelDepth = PanelDepth; this.PanelOperation = PanelOperation; this.PanelWidth = PanelWidth; this.PanelPosition = PanelPosition; this.ShapeAspectStyle = ShapeAspectStyle; this.type = 1714330368; } } IFC42.IfcDoorPanelProperties = IfcDoorPanelProperties; class IfcDoorType extends IfcBuildingElementType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType, OperationType, ParameterTakesPrecedence, UserDefinedOperationType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.OperationType = OperationType; this.ParameterTakesPrecedence = ParameterTakesPrecedence; this.UserDefinedOperationType = UserDefinedOperationType; this.type = 2323601079; } } IFC42.IfcDoorType = IfcDoorType; class IfcDraughtingPreDefinedColour extends IfcPreDefinedColour { constructor(expressID, Name) { super(expressID, Name); this.Name = Name; this.type = 445594917; } } IFC42.IfcDraughtingPreDefinedColour = IfcDraughtingPreDefinedColour; class IfcDraughtingPreDefinedCurveFont extends IfcPreDefinedCurveFont { constructor(expressID, Name) { super(expressID, Name); this.Name = Name; this.type = 4006246654; } } IFC42.IfcDraughtingPreDefinedCurveFont = IfcDraughtingPreDefinedCurveFont; class IfcElement extends IfcProduct { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.type = 1758889154; } } IFC42.IfcElement = IfcElement; class IfcElementAssembly extends IfcElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, AssemblyPlace, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.AssemblyPlace = AssemblyPlace; this.PredefinedType = PredefinedType; this.type = 4123344466; } } IFC42.IfcElementAssembly = IfcElementAssembly; class IfcElementAssemblyType extends IfcElementType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 2397081782; } } IFC42.IfcElementAssemblyType = IfcElementAssemblyType; class IfcElementComponent extends IfcElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.type = 1623761950; } } IFC42.IfcElementComponent = IfcElementComponent; class IfcElementComponentType extends IfcElementType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.type = 2590856083; } } IFC42.IfcElementComponentType = IfcElementComponentType; class IfcEllipse extends IfcConic { constructor(expressID, Position, SemiAxis1, SemiAxis2) { super(expressID, Position); this.Position = Position; this.SemiAxis1 = SemiAxis1; this.SemiAxis2 = SemiAxis2; this.type = 1704287377; } } IFC42.IfcEllipse = IfcEllipse; class IfcEnergyConversionDeviceType extends IfcDistributionFlowElementType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.type = 2107101300; } } IFC42.IfcEnergyConversionDeviceType = IfcEnergyConversionDeviceType; class IfcEngineType extends IfcEnergyConversionDeviceType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 132023988; } } IFC42.IfcEngineType = IfcEngineType; class IfcEvaporativeCoolerType extends IfcEnergyConversionDeviceType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 3174744832; } } IFC42.IfcEvaporativeCoolerType = IfcEvaporativeCoolerType; class IfcEvaporatorType extends IfcEnergyConversionDeviceType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 3390157468; } } IFC42.IfcEvaporatorType = IfcEvaporatorType; class IfcEvent extends IfcProcess { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, PredefinedType, EventTriggerType, UserDefinedEventTriggerType, EventOccurenceTime) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.Identification = Identification; this.LongDescription = LongDescription; this.PredefinedType = PredefinedType; this.EventTriggerType = EventTriggerType; this.UserDefinedEventTriggerType = UserDefinedEventTriggerType; this.EventOccurenceTime = EventOccurenceTime; this.type = 4148101412; } } IFC42.IfcEvent = IfcEvent; class IfcExternalSpatialStructureElement extends IfcSpatialElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.LongName = LongName; this.type = 2853485674; } } IFC42.IfcExternalSpatialStructureElement = IfcExternalSpatialStructureElement; class IfcFacetedBrep extends IfcManifoldSolidBrep { constructor(expressID, Outer) { super(expressID, Outer); this.Outer = Outer; this.type = 807026263; } } IFC42.IfcFacetedBrep = IfcFacetedBrep; class IfcFacetedBrepWithVoids extends IfcFacetedBrep { constructor(expressID, Outer, Voids) { super(expressID, Outer); this.Outer = Outer; this.Voids = Voids; this.type = 3737207727; } } IFC42.IfcFacetedBrepWithVoids = IfcFacetedBrepWithVoids; class IfcFastener extends IfcElementComponent { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 647756555; } } IFC42.IfcFastener = IfcFastener; class IfcFastenerType extends IfcElementComponentType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 2489546625; } } IFC42.IfcFastenerType = IfcFastenerType; class IfcFeatureElement extends IfcElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.type = 2827207264; } } IFC42.IfcFeatureElement = IfcFeatureElement; class IfcFeatureElementAddition extends IfcFeatureElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.type = 2143335405; } } IFC42.IfcFeatureElementAddition = IfcFeatureElementAddition; class IfcFeatureElementSubtraction extends IfcFeatureElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.type = 1287392070; } } IFC42.IfcFeatureElementSubtraction = IfcFeatureElementSubtraction; class IfcFlowControllerType extends IfcDistributionFlowElementType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.type = 3907093117; } } IFC42.IfcFlowControllerType = IfcFlowControllerType; class IfcFlowFittingType extends IfcDistributionFlowElementType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.type = 3198132628; } } IFC42.IfcFlowFittingType = IfcFlowFittingType; class IfcFlowMeterType extends IfcFlowControllerType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 3815607619; } } IFC42.IfcFlowMeterType = IfcFlowMeterType; class IfcFlowMovingDeviceType extends IfcDistributionFlowElementType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.type = 1482959167; } } IFC42.IfcFlowMovingDeviceType = IfcFlowMovingDeviceType; class IfcFlowSegmentType extends IfcDistributionFlowElementType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.type = 1834744321; } } IFC42.IfcFlowSegmentType = IfcFlowSegmentType; class IfcFlowStorageDeviceType extends IfcDistributionFlowElementType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.type = 1339347760; } } IFC42.IfcFlowStorageDeviceType = IfcFlowStorageDeviceType; class IfcFlowTerminalType extends IfcDistributionFlowElementType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.type = 2297155007; } } IFC42.IfcFlowTerminalType = IfcFlowTerminalType; class IfcFlowTreatmentDeviceType extends IfcDistributionFlowElementType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.type = 3009222698; } } IFC42.IfcFlowTreatmentDeviceType = IfcFlowTreatmentDeviceType; class IfcFootingType extends IfcBuildingElementType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 1893162501; } } IFC42.IfcFootingType = IfcFootingType; class IfcFurnishingElement extends IfcElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.type = 263784265; } } IFC42.IfcFurnishingElement = IfcFurnishingElement; class IfcFurniture extends IfcFurnishingElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 1509553395; } } IFC42.IfcFurniture = IfcFurniture; class IfcGeographicElement extends IfcElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 3493046030; } } IFC42.IfcGeographicElement = IfcGeographicElement; class IfcGrid extends IfcProduct { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, UAxes, VAxes, WAxes, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.UAxes = UAxes; this.VAxes = VAxes; this.WAxes = WAxes; this.PredefinedType = PredefinedType; this.type = 3009204131; } } IFC42.IfcGrid = IfcGrid; class IfcGroup extends IfcObject { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.type = 2706460486; } } IFC42.IfcGroup = IfcGroup; class IfcHeatExchangerType extends IfcEnergyConversionDeviceType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 1251058090; } } IFC42.IfcHeatExchangerType = IfcHeatExchangerType; class IfcHumidifierType extends IfcEnergyConversionDeviceType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 1806887404; } } IFC42.IfcHumidifierType = IfcHumidifierType; class IfcIndexedPolyCurve extends IfcBoundedCurve { constructor(expressID, Points, Segments, SelfIntersect) { super(expressID); this.Points = Points; this.Segments = Segments; this.SelfIntersect = SelfIntersect; this.type = 2571569899; } } IFC42.IfcIndexedPolyCurve = IfcIndexedPolyCurve; class IfcInterceptorType extends IfcFlowTreatmentDeviceType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 3946677679; } } IFC42.IfcInterceptorType = IfcInterceptorType; class IfcIntersectionCurve extends IfcSurfaceCurve { constructor(expressID, Curve3D, AssociatedGeometry, MasterRepresentation) { super(expressID, Curve3D, AssociatedGeometry, MasterRepresentation); this.Curve3D = Curve3D; this.AssociatedGeometry = AssociatedGeometry; this.MasterRepresentation = MasterRepresentation; this.type = 3113134337; } } IFC42.IfcIntersectionCurve = IfcIntersectionCurve; class IfcInventory extends IfcGroup { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, PredefinedType, Jurisdiction, ResponsiblePersons, LastUpdateDate, CurrentValue, OriginalValue) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.PredefinedType = PredefinedType; this.Jurisdiction = Jurisdiction; this.ResponsiblePersons = ResponsiblePersons; this.LastUpdateDate = LastUpdateDate; this.CurrentValue = CurrentValue; this.OriginalValue = OriginalValue; this.type = 2391368822; } } IFC42.IfcInventory = IfcInventory; class IfcJunctionBoxType extends IfcFlowFittingType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 4288270099; } } IFC42.IfcJunctionBoxType = IfcJunctionBoxType; class IfcLaborResource extends IfcConstructionResource { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.Identification = Identification; this.LongDescription = LongDescription; this.Usage = Usage; this.BaseCosts = BaseCosts; this.BaseQuantity = BaseQuantity; this.PredefinedType = PredefinedType; this.type = 3827777499; } } IFC42.IfcLaborResource = IfcLaborResource; class IfcLampType extends IfcFlowTerminalType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 1051575348; } } IFC42.IfcLampType = IfcLampType; class IfcLightFixtureType extends IfcFlowTerminalType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 1161773419; } } IFC42.IfcLightFixtureType = IfcLightFixtureType; class IfcMechanicalFastener extends IfcElementComponent { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, NominalDiameter, NominalLength, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.NominalDiameter = NominalDiameter; this.NominalLength = NominalLength; this.PredefinedType = PredefinedType; this.type = 377706215; } } IFC42.IfcMechanicalFastener = IfcMechanicalFastener; class IfcMechanicalFastenerType extends IfcElementComponentType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType, NominalDiameter, NominalLength) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.NominalDiameter = NominalDiameter; this.NominalLength = NominalLength; this.type = 2108223431; } } IFC42.IfcMechanicalFastenerType = IfcMechanicalFastenerType; class IfcMedicalDeviceType extends IfcFlowTerminalType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 1114901282; } } IFC42.IfcMedicalDeviceType = IfcMedicalDeviceType; class IfcMemberType extends IfcBuildingElementType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 3181161470; } } IFC42.IfcMemberType = IfcMemberType; class IfcMotorConnectionType extends IfcEnergyConversionDeviceType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 977012517; } } IFC42.IfcMotorConnectionType = IfcMotorConnectionType; class IfcOccupant extends IfcActor { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, TheActor, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, TheActor); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.TheActor = TheActor; this.PredefinedType = PredefinedType; this.type = 4143007308; } } IFC42.IfcOccupant = IfcOccupant; class IfcOpeningElement extends IfcFeatureElementSubtraction { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 3588315303; } } IFC42.IfcOpeningElement = IfcOpeningElement; class IfcOpeningStandardCase extends IfcOpeningElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 3079942009; } } IFC42.IfcOpeningStandardCase = IfcOpeningStandardCase; class IfcOutletType extends IfcFlowTerminalType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 2837617999; } } IFC42.IfcOutletType = IfcOutletType; class IfcPerformanceHistory extends IfcControl { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LifeCyclePhase, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.Identification = Identification; this.LifeCyclePhase = LifeCyclePhase; this.PredefinedType = PredefinedType; this.type = 2382730787; } } IFC42.IfcPerformanceHistory = IfcPerformanceHistory; class IfcPermeableCoveringProperties extends IfcPreDefinedPropertySet { constructor(expressID, GlobalId, OwnerHistory, Name, Description, OperationType, PanelPosition, FrameDepth, FrameThickness, ShapeAspectStyle) { super(expressID, GlobalId, OwnerHistory, Name, Description); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.OperationType = OperationType; this.PanelPosition = PanelPosition; this.FrameDepth = FrameDepth; this.FrameThickness = FrameThickness; this.ShapeAspectStyle = ShapeAspectStyle; this.type = 3566463478; } } IFC42.IfcPermeableCoveringProperties = IfcPermeableCoveringProperties; class IfcPermit extends IfcControl { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, PredefinedType, Status, LongDescription) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.Identification = Identification; this.PredefinedType = PredefinedType; this.Status = Status; this.LongDescription = LongDescription; this.type = 3327091369; } } IFC42.IfcPermit = IfcPermit; class IfcPileType extends IfcBuildingElementType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 1158309216; } } IFC42.IfcPileType = IfcPileType; class IfcPipeFittingType extends IfcFlowFittingType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 804291784; } } IFC42.IfcPipeFittingType = IfcPipeFittingType; class IfcPipeSegmentType extends IfcFlowSegmentType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 4231323485; } } IFC42.IfcPipeSegmentType = IfcPipeSegmentType; class IfcPlateType extends IfcBuildingElementType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 4017108033; } } IFC42.IfcPlateType = IfcPlateType; class IfcPolygonalFaceSet extends IfcTessellatedFaceSet { constructor(expressID, Coordinates, Closed, Faces, PnIndex) { super(expressID, Coordinates); this.Coordinates = Coordinates; this.Closed = Closed; this.Faces = Faces; this.PnIndex = PnIndex; this.type = 2839578677; } } IFC42.IfcPolygonalFaceSet = IfcPolygonalFaceSet; class IfcPolyline extends IfcBoundedCurve { constructor(expressID, Points) { super(expressID); this.Points = Points; this.type = 3724593414; } } IFC42.IfcPolyline = IfcPolyline; class IfcPort extends IfcProduct { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.type = 3740093272; } } IFC42.IfcPort = IfcPort; class IfcProcedure extends IfcProcess { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.Identification = Identification; this.LongDescription = LongDescription; this.PredefinedType = PredefinedType; this.type = 2744685151; } } IFC42.IfcProcedure = IfcProcedure; class IfcProjectOrder extends IfcControl { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, PredefinedType, Status, LongDescription) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.Identification = Identification; this.PredefinedType = PredefinedType; this.Status = Status; this.LongDescription = LongDescription; this.type = 2904328755; } } IFC42.IfcProjectOrder = IfcProjectOrder; class IfcProjectionElement extends IfcFeatureElementAddition { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 3651124850; } } IFC42.IfcProjectionElement = IfcProjectionElement; class IfcProtectiveDeviceType extends IfcFlowControllerType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 1842657554; } } IFC42.IfcProtectiveDeviceType = IfcProtectiveDeviceType; class IfcPumpType extends IfcFlowMovingDeviceType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 2250791053; } } IFC42.IfcPumpType = IfcPumpType; class IfcRailingType extends IfcBuildingElementType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 2893384427; } } IFC42.IfcRailingType = IfcRailingType; class IfcRampFlightType extends IfcBuildingElementType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 2324767716; } } IFC42.IfcRampFlightType = IfcRampFlightType; class IfcRampType extends IfcBuildingElementType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 1469900589; } } IFC42.IfcRampType = IfcRampType; class IfcRationalBSplineSurfaceWithKnots extends IfcBSplineSurfaceWithKnots { constructor(expressID, UDegree, VDegree, ControlPointsList, SurfaceForm, UClosed, VClosed, SelfIntersect, UMultiplicities, VMultiplicities, UKnots, VKnots, KnotSpec, WeightsData) { super(expressID, UDegree, VDegree, ControlPointsList, SurfaceForm, UClosed, VClosed, SelfIntersect, UMultiplicities, VMultiplicities, UKnots, VKnots, KnotSpec); this.UDegree = UDegree; this.VDegree = VDegree; this.ControlPointsList = ControlPointsList; this.SurfaceForm = SurfaceForm; this.UClosed = UClosed; this.VClosed = VClosed; this.SelfIntersect = SelfIntersect; this.UMultiplicities = UMultiplicities; this.VMultiplicities = VMultiplicities; this.UKnots = UKnots; this.VKnots = VKnots; this.KnotSpec = KnotSpec; this.WeightsData = WeightsData; this.type = 683857671; } } IFC42.IfcRationalBSplineSurfaceWithKnots = IfcRationalBSplineSurfaceWithKnots; class IfcReinforcingElement extends IfcElementComponent { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.SteelGrade = SteelGrade; this.type = 3027567501; } } IFC42.IfcReinforcingElement = IfcReinforcingElement; class IfcReinforcingElementType extends IfcElementComponentType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.type = 964333572; } } IFC42.IfcReinforcingElementType = IfcReinforcingElementType; class IfcReinforcingMesh extends IfcReinforcingElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade, MeshLength, MeshWidth, LongitudinalBarNominalDiameter, TransverseBarNominalDiameter, LongitudinalBarCrossSectionArea, TransverseBarCrossSectionArea, LongitudinalBarSpacing, TransverseBarSpacing, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.SteelGrade = SteelGrade; this.MeshLength = MeshLength; this.MeshWidth = MeshWidth; this.LongitudinalBarNominalDiameter = LongitudinalBarNominalDiameter; this.TransverseBarNominalDiameter = TransverseBarNominalDiameter; this.LongitudinalBarCrossSectionArea = LongitudinalBarCrossSectionArea; this.TransverseBarCrossSectionArea = TransverseBarCrossSectionArea; this.LongitudinalBarSpacing = LongitudinalBarSpacing; this.TransverseBarSpacing = TransverseBarSpacing; this.PredefinedType = PredefinedType; this.type = 2320036040; } } IFC42.IfcReinforcingMesh = IfcReinforcingMesh; class IfcReinforcingMeshType extends IfcReinforcingElementType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType, MeshLength, MeshWidth, LongitudinalBarNominalDiameter, TransverseBarNominalDiameter, LongitudinalBarCrossSectionArea, TransverseBarCrossSectionArea, LongitudinalBarSpacing, TransverseBarSpacing, BendingShapeCode, BendingParameters) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.MeshLength = MeshLength; this.MeshWidth = MeshWidth; this.LongitudinalBarNominalDiameter = LongitudinalBarNominalDiameter; this.TransverseBarNominalDiameter = TransverseBarNominalDiameter; this.LongitudinalBarCrossSectionArea = LongitudinalBarCrossSectionArea; this.TransverseBarCrossSectionArea = TransverseBarCrossSectionArea; this.LongitudinalBarSpacing = LongitudinalBarSpacing; this.TransverseBarSpacing = TransverseBarSpacing; this.BendingShapeCode = BendingShapeCode; this.BendingParameters = BendingParameters; this.type = 2310774935; } } IFC42.IfcReinforcingMeshType = IfcReinforcingMeshType; class IfcRelAggregates extends IfcRelDecomposes { constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingObject, RelatedObjects) { super(expressID, GlobalId, OwnerHistory, Name, Description); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.RelatingObject = RelatingObject; this.RelatedObjects = RelatedObjects; this.type = 160246688; } } IFC42.IfcRelAggregates = IfcRelAggregates; class IfcRoofType extends IfcBuildingElementType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 2781568857; } } IFC42.IfcRoofType = IfcRoofType; class IfcSanitaryTerminalType extends IfcFlowTerminalType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 1768891740; } } IFC42.IfcSanitaryTerminalType = IfcSanitaryTerminalType; class IfcSeamCurve extends IfcSurfaceCurve { constructor(expressID, Curve3D, AssociatedGeometry, MasterRepresentation) { super(expressID, Curve3D, AssociatedGeometry, MasterRepresentation); this.Curve3D = Curve3D; this.AssociatedGeometry = AssociatedGeometry; this.MasterRepresentation = MasterRepresentation; this.type = 2157484638; } } IFC42.IfcSeamCurve = IfcSeamCurve; class IfcShadingDeviceType extends IfcBuildingElementType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 4074543187; } } IFC42.IfcShadingDeviceType = IfcShadingDeviceType; class IfcSite extends IfcSpatialStructureElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, RefLatitude, RefLongitude, RefElevation, LandTitleNumber, SiteAddress) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.LongName = LongName; this.CompositionType = CompositionType; this.RefLatitude = RefLatitude; this.RefLongitude = RefLongitude; this.RefElevation = RefElevation; this.LandTitleNumber = LandTitleNumber; this.SiteAddress = SiteAddress; this.type = 4097777520; } } IFC42.IfcSite = IfcSite; class IfcSlabType extends IfcBuildingElementType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 2533589738; } } IFC42.IfcSlabType = IfcSlabType; class IfcSolarDeviceType extends IfcEnergyConversionDeviceType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 1072016465; } } IFC42.IfcSolarDeviceType = IfcSolarDeviceType; class IfcSpace extends IfcSpatialStructureElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, PredefinedType, ElevationWithFlooring) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.LongName = LongName; this.CompositionType = CompositionType; this.PredefinedType = PredefinedType; this.ElevationWithFlooring = ElevationWithFlooring; this.type = 3856911033; } } IFC42.IfcSpace = IfcSpace; class IfcSpaceHeaterType extends IfcFlowTerminalType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 1305183839; } } IFC42.IfcSpaceHeaterType = IfcSpaceHeaterType; class IfcSpaceType extends IfcSpatialStructureElementType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType, LongName) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.LongName = LongName; this.type = 3812236995; } } IFC42.IfcSpaceType = IfcSpaceType; class IfcStackTerminalType extends IfcFlowTerminalType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 3112655638; } } IFC42.IfcStackTerminalType = IfcStackTerminalType; class IfcStairFlightType extends IfcBuildingElementType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 1039846685; } } IFC42.IfcStairFlightType = IfcStairFlightType; class IfcStairType extends IfcBuildingElementType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 338393293; } } IFC42.IfcStairType = IfcStairType; class IfcStructuralAction extends IfcStructuralActivity { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.AppliedLoad = AppliedLoad; this.GlobalOrLocal = GlobalOrLocal; this.DestabilizingLoad = DestabilizingLoad; this.type = 682877961; } } IFC42.IfcStructuralAction = IfcStructuralAction; class IfcStructuralConnection extends IfcStructuralItem { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.AppliedCondition = AppliedCondition; this.type = 1179482911; } } IFC42.IfcStructuralConnection = IfcStructuralConnection; class IfcStructuralCurveAction extends IfcStructuralAction { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, ProjectedOrTrue, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.AppliedLoad = AppliedLoad; this.GlobalOrLocal = GlobalOrLocal; this.DestabilizingLoad = DestabilizingLoad; this.ProjectedOrTrue = ProjectedOrTrue; this.PredefinedType = PredefinedType; this.type = 1004757350; } } IFC42.IfcStructuralCurveAction = IfcStructuralCurveAction; class IfcStructuralCurveConnection extends IfcStructuralConnection { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition, Axis) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.AppliedCondition = AppliedCondition; this.Axis = Axis; this.type = 4243806635; } } IFC42.IfcStructuralCurveConnection = IfcStructuralCurveConnection; class IfcStructuralCurveMember extends IfcStructuralMember { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType, Axis) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.PredefinedType = PredefinedType; this.Axis = Axis; this.type = 214636428; } } IFC42.IfcStructuralCurveMember = IfcStructuralCurveMember; class IfcStructuralCurveMemberVarying extends IfcStructuralCurveMember { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType, Axis) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType, Axis); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.PredefinedType = PredefinedType; this.Axis = Axis; this.type = 2445595289; } } IFC42.IfcStructuralCurveMemberVarying = IfcStructuralCurveMemberVarying; class IfcStructuralCurveReaction extends IfcStructuralReaction { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.AppliedLoad = AppliedLoad; this.GlobalOrLocal = GlobalOrLocal; this.PredefinedType = PredefinedType; this.type = 2757150158; } } IFC42.IfcStructuralCurveReaction = IfcStructuralCurveReaction; class IfcStructuralLinearAction extends IfcStructuralCurveAction { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, ProjectedOrTrue, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, ProjectedOrTrue, PredefinedType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.AppliedLoad = AppliedLoad; this.GlobalOrLocal = GlobalOrLocal; this.DestabilizingLoad = DestabilizingLoad; this.ProjectedOrTrue = ProjectedOrTrue; this.PredefinedType = PredefinedType; this.type = 1807405624; } } IFC42.IfcStructuralLinearAction = IfcStructuralLinearAction; class IfcStructuralLoadGroup extends IfcGroup { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, PredefinedType, ActionType, ActionSource, Coefficient, Purpose) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.PredefinedType = PredefinedType; this.ActionType = ActionType; this.ActionSource = ActionSource; this.Coefficient = Coefficient; this.Purpose = Purpose; this.type = 1252848954; } } IFC42.IfcStructuralLoadGroup = IfcStructuralLoadGroup; class IfcStructuralPointAction extends IfcStructuralAction { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.AppliedLoad = AppliedLoad; this.GlobalOrLocal = GlobalOrLocal; this.DestabilizingLoad = DestabilizingLoad; this.type = 2082059205; } } IFC42.IfcStructuralPointAction = IfcStructuralPointAction; class IfcStructuralPointConnection extends IfcStructuralConnection { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition, ConditionCoordinateSystem) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.AppliedCondition = AppliedCondition; this.ConditionCoordinateSystem = ConditionCoordinateSystem; this.type = 734778138; } } IFC42.IfcStructuralPointConnection = IfcStructuralPointConnection; class IfcStructuralPointReaction extends IfcStructuralReaction { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.AppliedLoad = AppliedLoad; this.GlobalOrLocal = GlobalOrLocal; this.type = 1235345126; } } IFC42.IfcStructuralPointReaction = IfcStructuralPointReaction; class IfcStructuralResultGroup extends IfcGroup { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, TheoryType, ResultForLoadGroup, IsLinear) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.TheoryType = TheoryType; this.ResultForLoadGroup = ResultForLoadGroup; this.IsLinear = IsLinear; this.type = 2986769608; } } IFC42.IfcStructuralResultGroup = IfcStructuralResultGroup; class IfcStructuralSurfaceAction extends IfcStructuralAction { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, ProjectedOrTrue, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.AppliedLoad = AppliedLoad; this.GlobalOrLocal = GlobalOrLocal; this.DestabilizingLoad = DestabilizingLoad; this.ProjectedOrTrue = ProjectedOrTrue; this.PredefinedType = PredefinedType; this.type = 3657597509; } } IFC42.IfcStructuralSurfaceAction = IfcStructuralSurfaceAction; class IfcStructuralSurfaceConnection extends IfcStructuralConnection { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.AppliedCondition = AppliedCondition; this.type = 1975003073; } } IFC42.IfcStructuralSurfaceConnection = IfcStructuralSurfaceConnection; class IfcSubContractResource extends IfcConstructionResource { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.Identification = Identification; this.LongDescription = LongDescription; this.Usage = Usage; this.BaseCosts = BaseCosts; this.BaseQuantity = BaseQuantity; this.PredefinedType = PredefinedType; this.type = 148013059; } } IFC42.IfcSubContractResource = IfcSubContractResource; class IfcSurfaceFeature extends IfcFeatureElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 3101698114; } } IFC42.IfcSurfaceFeature = IfcSurfaceFeature; class IfcSwitchingDeviceType extends IfcFlowControllerType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 2315554128; } } IFC42.IfcSwitchingDeviceType = IfcSwitchingDeviceType; class IfcSystem extends IfcGroup { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.type = 2254336722; } } IFC42.IfcSystem = IfcSystem; class IfcSystemFurnitureElement extends IfcFurnishingElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 413509423; } } IFC42.IfcSystemFurnitureElement = IfcSystemFurnitureElement; class IfcTankType extends IfcFlowStorageDeviceType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 5716631; } } IFC42.IfcTankType = IfcTankType; class IfcTendon extends IfcReinforcingElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade, PredefinedType, NominalDiameter, CrossSectionArea, TensionForce, PreStress, FrictionCoefficient, AnchorageSlip, MinCurvatureRadius) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.SteelGrade = SteelGrade; this.PredefinedType = PredefinedType; this.NominalDiameter = NominalDiameter; this.CrossSectionArea = CrossSectionArea; this.TensionForce = TensionForce; this.PreStress = PreStress; this.FrictionCoefficient = FrictionCoefficient; this.AnchorageSlip = AnchorageSlip; this.MinCurvatureRadius = MinCurvatureRadius; this.type = 3824725483; } } IFC42.IfcTendon = IfcTendon; class IfcTendonAnchor extends IfcReinforcingElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.SteelGrade = SteelGrade; this.PredefinedType = PredefinedType; this.type = 2347447852; } } IFC42.IfcTendonAnchor = IfcTendonAnchor; class IfcTendonAnchorType extends IfcReinforcingElementType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 3081323446; } } IFC42.IfcTendonAnchorType = IfcTendonAnchorType; class IfcTendonType extends IfcReinforcingElementType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType, NominalDiameter, CrossSectionArea, SheathDiameter) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.NominalDiameter = NominalDiameter; this.CrossSectionArea = CrossSectionArea; this.SheathDiameter = SheathDiameter; this.type = 2415094496; } } IFC42.IfcTendonType = IfcTendonType; class IfcTransformerType extends IfcEnergyConversionDeviceType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 1692211062; } } IFC42.IfcTransformerType = IfcTransformerType; class IfcTransportElement extends IfcElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 1620046519; } } IFC42.IfcTransportElement = IfcTransportElement; class IfcTrimmedCurve extends IfcBoundedCurve { constructor(expressID, BasisCurve, Trim1, Trim2, SenseAgreement, MasterRepresentation) { super(expressID); this.BasisCurve = BasisCurve; this.Trim1 = Trim1; this.Trim2 = Trim2; this.SenseAgreement = SenseAgreement; this.MasterRepresentation = MasterRepresentation; this.type = 3593883385; } } IFC42.IfcTrimmedCurve = IfcTrimmedCurve; class IfcTubeBundleType extends IfcEnergyConversionDeviceType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 1600972822; } } IFC42.IfcTubeBundleType = IfcTubeBundleType; class IfcUnitaryEquipmentType extends IfcEnergyConversionDeviceType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 1911125066; } } IFC42.IfcUnitaryEquipmentType = IfcUnitaryEquipmentType; class IfcValveType extends IfcFlowControllerType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 728799441; } } IFC42.IfcValveType = IfcValveType; class IfcVibrationIsolator extends IfcElementComponent { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 2391383451; } } IFC42.IfcVibrationIsolator = IfcVibrationIsolator; class IfcVibrationIsolatorType extends IfcElementComponentType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 3313531582; } } IFC42.IfcVibrationIsolatorType = IfcVibrationIsolatorType; class IfcVirtualElement extends IfcElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.type = 2769231204; } } IFC42.IfcVirtualElement = IfcVirtualElement; class IfcVoidingFeature extends IfcFeatureElementSubtraction { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 926996030; } } IFC42.IfcVoidingFeature = IfcVoidingFeature; class IfcWallType extends IfcBuildingElementType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 1898987631; } } IFC42.IfcWallType = IfcWallType; class IfcWasteTerminalType extends IfcFlowTerminalType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 1133259667; } } IFC42.IfcWasteTerminalType = IfcWasteTerminalType; class IfcWindowType extends IfcBuildingElementType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType, PartitioningType, ParameterTakesPrecedence, UserDefinedPartitioningType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.PartitioningType = PartitioningType; this.ParameterTakesPrecedence = ParameterTakesPrecedence; this.UserDefinedPartitioningType = UserDefinedPartitioningType; this.type = 4009809668; } } IFC42.IfcWindowType = IfcWindowType; class IfcWorkCalendar extends IfcControl { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, WorkingTimes, ExceptionTimes, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.Identification = Identification; this.WorkingTimes = WorkingTimes; this.ExceptionTimes = ExceptionTimes; this.PredefinedType = PredefinedType; this.type = 4088093105; } } IFC42.IfcWorkCalendar = IfcWorkCalendar; class IfcWorkControl extends IfcControl { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, CreationDate, Creators, Purpose, Duration, TotalFloat, StartTime, FinishTime) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.Identification = Identification; this.CreationDate = CreationDate; this.Creators = Creators; this.Purpose = Purpose; this.Duration = Duration; this.TotalFloat = TotalFloat; this.StartTime = StartTime; this.FinishTime = FinishTime; this.type = 1028945134; } } IFC42.IfcWorkControl = IfcWorkControl; class IfcWorkPlan extends IfcWorkControl { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, CreationDate, Creators, Purpose, Duration, TotalFloat, StartTime, FinishTime, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, CreationDate, Creators, Purpose, Duration, TotalFloat, StartTime, FinishTime); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.Identification = Identification; this.CreationDate = CreationDate; this.Creators = Creators; this.Purpose = Purpose; this.Duration = Duration; this.TotalFloat = TotalFloat; this.StartTime = StartTime; this.FinishTime = FinishTime; this.PredefinedType = PredefinedType; this.type = 4218914973; } } IFC42.IfcWorkPlan = IfcWorkPlan; class IfcWorkSchedule extends IfcWorkControl { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, CreationDate, Creators, Purpose, Duration, TotalFloat, StartTime, FinishTime, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, CreationDate, Creators, Purpose, Duration, TotalFloat, StartTime, FinishTime); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.Identification = Identification; this.CreationDate = CreationDate; this.Creators = Creators; this.Purpose = Purpose; this.Duration = Duration; this.TotalFloat = TotalFloat; this.StartTime = StartTime; this.FinishTime = FinishTime; this.PredefinedType = PredefinedType; this.type = 3342526732; } } IFC42.IfcWorkSchedule = IfcWorkSchedule; class IfcZone extends IfcSystem { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, LongName) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.LongName = LongName; this.type = 1033361043; } } IFC42.IfcZone = IfcZone; class IfcActionRequest extends IfcControl { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, PredefinedType, Status, LongDescription) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.Identification = Identification; this.PredefinedType = PredefinedType; this.Status = Status; this.LongDescription = LongDescription; this.type = 3821786052; } } IFC42.IfcActionRequest = IfcActionRequest; class IfcAirTerminalBoxType extends IfcFlowControllerType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 1411407467; } } IFC42.IfcAirTerminalBoxType = IfcAirTerminalBoxType; class IfcAirTerminalType extends IfcFlowTerminalType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 3352864051; } } IFC42.IfcAirTerminalType = IfcAirTerminalType; class IfcAirToAirHeatRecoveryType extends IfcEnergyConversionDeviceType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 1871374353; } } IFC42.IfcAirToAirHeatRecoveryType = IfcAirToAirHeatRecoveryType; class IfcAsset extends IfcGroup { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, OriginalValue, CurrentValue, TotalReplacementCost, Owner, User, ResponsiblePerson, IncorporationDate, DepreciatedValue) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.Identification = Identification; this.OriginalValue = OriginalValue; this.CurrentValue = CurrentValue; this.TotalReplacementCost = TotalReplacementCost; this.Owner = Owner; this.User = User; this.ResponsiblePerson = ResponsiblePerson; this.IncorporationDate = IncorporationDate; this.DepreciatedValue = DepreciatedValue; this.type = 3460190687; } } IFC42.IfcAsset = IfcAsset; class IfcAudioVisualApplianceType extends IfcFlowTerminalType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 1532957894; } } IFC42.IfcAudioVisualApplianceType = IfcAudioVisualApplianceType; class IfcBSplineCurve extends IfcBoundedCurve { constructor(expressID, Degree, ControlPointsList, CurveForm, ClosedCurve, SelfIntersect) { super(expressID); this.Degree = Degree; this.ControlPointsList = ControlPointsList; this.CurveForm = CurveForm; this.ClosedCurve = ClosedCurve; this.SelfIntersect = SelfIntersect; this.type = 1967976161; } } IFC42.IfcBSplineCurve = IfcBSplineCurve; class IfcBSplineCurveWithKnots extends IfcBSplineCurve { constructor(expressID, Degree, ControlPointsList, CurveForm, ClosedCurve, SelfIntersect, KnotMultiplicities, Knots, KnotSpec) { super(expressID, Degree, ControlPointsList, CurveForm, ClosedCurve, SelfIntersect); this.Degree = Degree; this.ControlPointsList = ControlPointsList; this.CurveForm = CurveForm; this.ClosedCurve = ClosedCurve; this.SelfIntersect = SelfIntersect; this.KnotMultiplicities = KnotMultiplicities; this.Knots = Knots; this.KnotSpec = KnotSpec; this.type = 2461110595; } } IFC42.IfcBSplineCurveWithKnots = IfcBSplineCurveWithKnots; class IfcBeamType extends IfcBuildingElementType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 819618141; } } IFC42.IfcBeamType = IfcBeamType; class IfcBoilerType extends IfcEnergyConversionDeviceType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 231477066; } } IFC42.IfcBoilerType = IfcBoilerType; class IfcBoundaryCurve extends IfcCompositeCurveOnSurface { constructor(expressID, Segments, SelfIntersect) { super(expressID, Segments, SelfIntersect); this.Segments = Segments; this.SelfIntersect = SelfIntersect; this.type = 1136057603; } } IFC42.IfcBoundaryCurve = IfcBoundaryCurve; class IfcBuildingElement extends IfcElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.type = 3299480353; } } IFC42.IfcBuildingElement = IfcBuildingElement; class IfcBuildingElementPart extends IfcElementComponent { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 2979338954; } } IFC42.IfcBuildingElementPart = IfcBuildingElementPart; class IfcBuildingElementPartType extends IfcElementComponentType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 39481116; } } IFC42.IfcBuildingElementPartType = IfcBuildingElementPartType; class IfcBuildingElementProxy extends IfcBuildingElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 1095909175; } } IFC42.IfcBuildingElementProxy = IfcBuildingElementProxy; class IfcBuildingElementProxyType extends IfcBuildingElementType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 1909888760; } } IFC42.IfcBuildingElementProxyType = IfcBuildingElementProxyType; class IfcBuildingSystem extends IfcSystem { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, PredefinedType, LongName) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.PredefinedType = PredefinedType; this.LongName = LongName; this.type = 1177604601; } } IFC42.IfcBuildingSystem = IfcBuildingSystem; class IfcBurnerType extends IfcEnergyConversionDeviceType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 2188180465; } } IFC42.IfcBurnerType = IfcBurnerType; class IfcCableCarrierFittingType extends IfcFlowFittingType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 395041908; } } IFC42.IfcCableCarrierFittingType = IfcCableCarrierFittingType; class IfcCableCarrierSegmentType extends IfcFlowSegmentType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 3293546465; } } IFC42.IfcCableCarrierSegmentType = IfcCableCarrierSegmentType; class IfcCableFittingType extends IfcFlowFittingType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 2674252688; } } IFC42.IfcCableFittingType = IfcCableFittingType; class IfcCableSegmentType extends IfcFlowSegmentType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 1285652485; } } IFC42.IfcCableSegmentType = IfcCableSegmentType; class IfcChillerType extends IfcEnergyConversionDeviceType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 2951183804; } } IFC42.IfcChillerType = IfcChillerType; class IfcChimney extends IfcBuildingElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 3296154744; } } IFC42.IfcChimney = IfcChimney; class IfcCircle extends IfcConic { constructor(expressID, Position, Radius) { super(expressID, Position); this.Position = Position; this.Radius = Radius; this.type = 2611217952; } } IFC42.IfcCircle = IfcCircle; class IfcCivilElement extends IfcElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.type = 1677625105; } } IFC42.IfcCivilElement = IfcCivilElement; class IfcCoilType extends IfcEnergyConversionDeviceType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 2301859152; } } IFC42.IfcCoilType = IfcCoilType; class IfcColumn extends IfcBuildingElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 843113511; } } IFC42.IfcColumn = IfcColumn; class IfcColumnStandardCase extends IfcColumn { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 905975707; } } IFC42.IfcColumnStandardCase = IfcColumnStandardCase; class IfcCommunicationsApplianceType extends IfcFlowTerminalType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 400855858; } } IFC42.IfcCommunicationsApplianceType = IfcCommunicationsApplianceType; class IfcCompressorType extends IfcFlowMovingDeviceType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 3850581409; } } IFC42.IfcCompressorType = IfcCompressorType; class IfcCondenserType extends IfcEnergyConversionDeviceType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 2816379211; } } IFC42.IfcCondenserType = IfcCondenserType; class IfcConstructionEquipmentResource extends IfcConstructionResource { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.Identification = Identification; this.LongDescription = LongDescription; this.Usage = Usage; this.BaseCosts = BaseCosts; this.BaseQuantity = BaseQuantity; this.PredefinedType = PredefinedType; this.type = 3898045240; } } IFC42.IfcConstructionEquipmentResource = IfcConstructionEquipmentResource; class IfcConstructionMaterialResource extends IfcConstructionResource { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.Identification = Identification; this.LongDescription = LongDescription; this.Usage = Usage; this.BaseCosts = BaseCosts; this.BaseQuantity = BaseQuantity; this.PredefinedType = PredefinedType; this.type = 1060000209; } } IFC42.IfcConstructionMaterialResource = IfcConstructionMaterialResource; class IfcConstructionProductResource extends IfcConstructionResource { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.Identification = Identification; this.LongDescription = LongDescription; this.Usage = Usage; this.BaseCosts = BaseCosts; this.BaseQuantity = BaseQuantity; this.PredefinedType = PredefinedType; this.type = 488727124; } } IFC42.IfcConstructionProductResource = IfcConstructionProductResource; class IfcCooledBeamType extends IfcEnergyConversionDeviceType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 335055490; } } IFC42.IfcCooledBeamType = IfcCooledBeamType; class IfcCoolingTowerType extends IfcEnergyConversionDeviceType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 2954562838; } } IFC42.IfcCoolingTowerType = IfcCoolingTowerType; class IfcCovering extends IfcBuildingElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 1973544240; } } IFC42.IfcCovering = IfcCovering; class IfcCurtainWall extends IfcBuildingElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 3495092785; } } IFC42.IfcCurtainWall = IfcCurtainWall; class IfcDamperType extends IfcFlowControllerType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 3961806047; } } IFC42.IfcDamperType = IfcDamperType; class IfcDiscreteAccessory extends IfcElementComponent { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 1335981549; } } IFC42.IfcDiscreteAccessory = IfcDiscreteAccessory; class IfcDiscreteAccessoryType extends IfcElementComponentType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 2635815018; } } IFC42.IfcDiscreteAccessoryType = IfcDiscreteAccessoryType; class IfcDistributionChamberElementType extends IfcDistributionFlowElementType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 1599208980; } } IFC42.IfcDistributionChamberElementType = IfcDistributionChamberElementType; class IfcDistributionControlElementType extends IfcDistributionElementType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.type = 2063403501; } } IFC42.IfcDistributionControlElementType = IfcDistributionControlElementType; class IfcDistributionElement extends IfcElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.type = 1945004755; } } IFC42.IfcDistributionElement = IfcDistributionElement; class IfcDistributionFlowElement extends IfcDistributionElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.type = 3040386961; } } IFC42.IfcDistributionFlowElement = IfcDistributionFlowElement; class IfcDistributionPort extends IfcPort { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, FlowDirection, PredefinedType, SystemType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.FlowDirection = FlowDirection; this.PredefinedType = PredefinedType; this.SystemType = SystemType; this.type = 3041715199; } } IFC42.IfcDistributionPort = IfcDistributionPort; class IfcDistributionSystem extends IfcSystem { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, LongName, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.LongName = LongName; this.PredefinedType = PredefinedType; this.type = 3205830791; } } IFC42.IfcDistributionSystem = IfcDistributionSystem; class IfcDoor extends IfcBuildingElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, OverallHeight, OverallWidth, PredefinedType, OperationType, UserDefinedOperationType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.OverallHeight = OverallHeight; this.OverallWidth = OverallWidth; this.PredefinedType = PredefinedType; this.OperationType = OperationType; this.UserDefinedOperationType = UserDefinedOperationType; this.type = 395920057; } } IFC42.IfcDoor = IfcDoor; class IfcDoorStandardCase extends IfcDoor { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, OverallHeight, OverallWidth, PredefinedType, OperationType, UserDefinedOperationType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, OverallHeight, OverallWidth, PredefinedType, OperationType, UserDefinedOperationType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.OverallHeight = OverallHeight; this.OverallWidth = OverallWidth; this.PredefinedType = PredefinedType; this.OperationType = OperationType; this.UserDefinedOperationType = UserDefinedOperationType; this.type = 3242481149; } } IFC42.IfcDoorStandardCase = IfcDoorStandardCase; class IfcDuctFittingType extends IfcFlowFittingType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 869906466; } } IFC42.IfcDuctFittingType = IfcDuctFittingType; class IfcDuctSegmentType extends IfcFlowSegmentType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 3760055223; } } IFC42.IfcDuctSegmentType = IfcDuctSegmentType; class IfcDuctSilencerType extends IfcFlowTreatmentDeviceType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 2030761528; } } IFC42.IfcDuctSilencerType = IfcDuctSilencerType; class IfcElectricApplianceType extends IfcFlowTerminalType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 663422040; } } IFC42.IfcElectricApplianceType = IfcElectricApplianceType; class IfcElectricDistributionBoardType extends IfcFlowControllerType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 2417008758; } } IFC42.IfcElectricDistributionBoardType = IfcElectricDistributionBoardType; class IfcElectricFlowStorageDeviceType extends IfcFlowStorageDeviceType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 3277789161; } } IFC42.IfcElectricFlowStorageDeviceType = IfcElectricFlowStorageDeviceType; class IfcElectricGeneratorType extends IfcEnergyConversionDeviceType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 1534661035; } } IFC42.IfcElectricGeneratorType = IfcElectricGeneratorType; class IfcElectricMotorType extends IfcEnergyConversionDeviceType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 1217240411; } } IFC42.IfcElectricMotorType = IfcElectricMotorType; class IfcElectricTimeControlType extends IfcFlowControllerType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 712377611; } } IFC42.IfcElectricTimeControlType = IfcElectricTimeControlType; class IfcEnergyConversionDevice extends IfcDistributionFlowElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.type = 1658829314; } } IFC42.IfcEnergyConversionDevice = IfcEnergyConversionDevice; class IfcEngine extends IfcEnergyConversionDevice { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 2814081492; } } IFC42.IfcEngine = IfcEngine; class IfcEvaporativeCooler extends IfcEnergyConversionDevice { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 3747195512; } } IFC42.IfcEvaporativeCooler = IfcEvaporativeCooler; class IfcEvaporator extends IfcEnergyConversionDevice { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 484807127; } } IFC42.IfcEvaporator = IfcEvaporator; class IfcExternalSpatialElement extends IfcExternalSpatialStructureElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.LongName = LongName; this.PredefinedType = PredefinedType; this.type = 1209101575; } } IFC42.IfcExternalSpatialElement = IfcExternalSpatialElement; class IfcFanType extends IfcFlowMovingDeviceType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 346874300; } } IFC42.IfcFanType = IfcFanType; class IfcFilterType extends IfcFlowTreatmentDeviceType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 1810631287; } } IFC42.IfcFilterType = IfcFilterType; class IfcFireSuppressionTerminalType extends IfcFlowTerminalType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 4222183408; } } IFC42.IfcFireSuppressionTerminalType = IfcFireSuppressionTerminalType; class IfcFlowController extends IfcDistributionFlowElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.type = 2058353004; } } IFC42.IfcFlowController = IfcFlowController; class IfcFlowFitting extends IfcDistributionFlowElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.type = 4278956645; } } IFC42.IfcFlowFitting = IfcFlowFitting; class IfcFlowInstrumentType extends IfcDistributionControlElementType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 4037862832; } } IFC42.IfcFlowInstrumentType = IfcFlowInstrumentType; class IfcFlowMeter extends IfcFlowController { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 2188021234; } } IFC42.IfcFlowMeter = IfcFlowMeter; class IfcFlowMovingDevice extends IfcDistributionFlowElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.type = 3132237377; } } IFC42.IfcFlowMovingDevice = IfcFlowMovingDevice; class IfcFlowSegment extends IfcDistributionFlowElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.type = 987401354; } } IFC42.IfcFlowSegment = IfcFlowSegment; class IfcFlowStorageDevice extends IfcDistributionFlowElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.type = 707683696; } } IFC42.IfcFlowStorageDevice = IfcFlowStorageDevice; class IfcFlowTerminal extends IfcDistributionFlowElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.type = 2223149337; } } IFC42.IfcFlowTerminal = IfcFlowTerminal; class IfcFlowTreatmentDevice extends IfcDistributionFlowElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.type = 3508470533; } } IFC42.IfcFlowTreatmentDevice = IfcFlowTreatmentDevice; class IfcFooting extends IfcBuildingElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 900683007; } } IFC42.IfcFooting = IfcFooting; class IfcHeatExchanger extends IfcEnergyConversionDevice { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 3319311131; } } IFC42.IfcHeatExchanger = IfcHeatExchanger; class IfcHumidifier extends IfcEnergyConversionDevice { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 2068733104; } } IFC42.IfcHumidifier = IfcHumidifier; class IfcInterceptor extends IfcFlowTreatmentDevice { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 4175244083; } } IFC42.IfcInterceptor = IfcInterceptor; class IfcJunctionBox extends IfcFlowFitting { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 2176052936; } } IFC42.IfcJunctionBox = IfcJunctionBox; class IfcLamp extends IfcFlowTerminal { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 76236018; } } IFC42.IfcLamp = IfcLamp; class IfcLightFixture extends IfcFlowTerminal { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 629592764; } } IFC42.IfcLightFixture = IfcLightFixture; class IfcMedicalDevice extends IfcFlowTerminal { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 1437502449; } } IFC42.IfcMedicalDevice = IfcMedicalDevice; class IfcMember extends IfcBuildingElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 1073191201; } } IFC42.IfcMember = IfcMember; class IfcMemberStandardCase extends IfcMember { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 1911478936; } } IFC42.IfcMemberStandardCase = IfcMemberStandardCase; class IfcMotorConnection extends IfcEnergyConversionDevice { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 2474470126; } } IFC42.IfcMotorConnection = IfcMotorConnection; class IfcOuterBoundaryCurve extends IfcBoundaryCurve { constructor(expressID, Segments, SelfIntersect) { super(expressID, Segments, SelfIntersect); this.Segments = Segments; this.SelfIntersect = SelfIntersect; this.type = 144952367; } } IFC42.IfcOuterBoundaryCurve = IfcOuterBoundaryCurve; class IfcOutlet extends IfcFlowTerminal { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 3694346114; } } IFC42.IfcOutlet = IfcOutlet; class IfcPile extends IfcBuildingElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType, ConstructionType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.ConstructionType = ConstructionType; this.type = 1687234759; } } IFC42.IfcPile = IfcPile; class IfcPipeFitting extends IfcFlowFitting { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 310824031; } } IFC42.IfcPipeFitting = IfcPipeFitting; class IfcPipeSegment extends IfcFlowSegment { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 3612865200; } } IFC42.IfcPipeSegment = IfcPipeSegment; class IfcPlate extends IfcBuildingElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 3171933400; } } IFC42.IfcPlate = IfcPlate; class IfcPlateStandardCase extends IfcPlate { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 1156407060; } } IFC42.IfcPlateStandardCase = IfcPlateStandardCase; class IfcProtectiveDevice extends IfcFlowController { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 738039164; } } IFC42.IfcProtectiveDevice = IfcProtectiveDevice; class IfcProtectiveDeviceTrippingUnitType extends IfcDistributionControlElementType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 655969474; } } IFC42.IfcProtectiveDeviceTrippingUnitType = IfcProtectiveDeviceTrippingUnitType; class IfcPump extends IfcFlowMovingDevice { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 90941305; } } IFC42.IfcPump = IfcPump; class IfcRailing extends IfcBuildingElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 2262370178; } } IFC42.IfcRailing = IfcRailing; class IfcRamp extends IfcBuildingElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 3024970846; } } IFC42.IfcRamp = IfcRamp; class IfcRampFlight extends IfcBuildingElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 3283111854; } } IFC42.IfcRampFlight = IfcRampFlight; class IfcRationalBSplineCurveWithKnots extends IfcBSplineCurveWithKnots { constructor(expressID, Degree, ControlPointsList, CurveForm, ClosedCurve, SelfIntersect, KnotMultiplicities, Knots, KnotSpec, WeightsData) { super(expressID, Degree, ControlPointsList, CurveForm, ClosedCurve, SelfIntersect, KnotMultiplicities, Knots, KnotSpec); this.Degree = Degree; this.ControlPointsList = ControlPointsList; this.CurveForm = CurveForm; this.ClosedCurve = ClosedCurve; this.SelfIntersect = SelfIntersect; this.KnotMultiplicities = KnotMultiplicities; this.Knots = Knots; this.KnotSpec = KnotSpec; this.WeightsData = WeightsData; this.type = 1232101972; } } IFC42.IfcRationalBSplineCurveWithKnots = IfcRationalBSplineCurveWithKnots; class IfcReinforcingBar extends IfcReinforcingElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade, NominalDiameter, CrossSectionArea, BarLength, PredefinedType, BarSurface) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.SteelGrade = SteelGrade; this.NominalDiameter = NominalDiameter; this.CrossSectionArea = CrossSectionArea; this.BarLength = BarLength; this.PredefinedType = PredefinedType; this.BarSurface = BarSurface; this.type = 979691226; } } IFC42.IfcReinforcingBar = IfcReinforcingBar; class IfcReinforcingBarType extends IfcReinforcingElementType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType, NominalDiameter, CrossSectionArea, BarLength, BarSurface, BendingShapeCode, BendingParameters) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.NominalDiameter = NominalDiameter; this.CrossSectionArea = CrossSectionArea; this.BarLength = BarLength; this.BarSurface = BarSurface; this.BendingShapeCode = BendingShapeCode; this.BendingParameters = BendingParameters; this.type = 2572171363; } } IFC42.IfcReinforcingBarType = IfcReinforcingBarType; class IfcRoof extends IfcBuildingElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 2016517767; } } IFC42.IfcRoof = IfcRoof; class IfcSanitaryTerminal extends IfcFlowTerminal { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 3053780830; } } IFC42.IfcSanitaryTerminal = IfcSanitaryTerminal; class IfcSensorType extends IfcDistributionControlElementType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 1783015770; } } IFC42.IfcSensorType = IfcSensorType; class IfcShadingDevice extends IfcBuildingElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 1329646415; } } IFC42.IfcShadingDevice = IfcShadingDevice; class IfcSlab extends IfcBuildingElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 1529196076; } } IFC42.IfcSlab = IfcSlab; class IfcSlabElementedCase extends IfcSlab { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 3127900445; } } IFC42.IfcSlabElementedCase = IfcSlabElementedCase; class IfcSlabStandardCase extends IfcSlab { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 3027962421; } } IFC42.IfcSlabStandardCase = IfcSlabStandardCase; class IfcSolarDevice extends IfcEnergyConversionDevice { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 3420628829; } } IFC42.IfcSolarDevice = IfcSolarDevice; class IfcSpaceHeater extends IfcFlowTerminal { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 1999602285; } } IFC42.IfcSpaceHeater = IfcSpaceHeater; class IfcStackTerminal extends IfcFlowTerminal { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 1404847402; } } IFC42.IfcStackTerminal = IfcStackTerminal; class IfcStair extends IfcBuildingElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 331165859; } } IFC42.IfcStair = IfcStair; class IfcStairFlight extends IfcBuildingElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, NumberOfRisers, NumberOfTreads, RiserHeight, TreadLength, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.NumberOfRisers = NumberOfRisers; this.NumberOfTreads = NumberOfTreads; this.RiserHeight = RiserHeight; this.TreadLength = TreadLength; this.PredefinedType = PredefinedType; this.type = 4252922144; } } IFC42.IfcStairFlight = IfcStairFlight; class IfcStructuralAnalysisModel extends IfcSystem { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, PredefinedType, OrientationOf2DPlane, LoadedBy, HasResults, SharedPlacement) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.PredefinedType = PredefinedType; this.OrientationOf2DPlane = OrientationOf2DPlane; this.LoadedBy = LoadedBy; this.HasResults = HasResults; this.SharedPlacement = SharedPlacement; this.type = 2515109513; } } IFC42.IfcStructuralAnalysisModel = IfcStructuralAnalysisModel; class IfcStructuralLoadCase extends IfcStructuralLoadGroup { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, PredefinedType, ActionType, ActionSource, Coefficient, Purpose, SelfWeightCoefficients) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, PredefinedType, ActionType, ActionSource, Coefficient, Purpose); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.PredefinedType = PredefinedType; this.ActionType = ActionType; this.ActionSource = ActionSource; this.Coefficient = Coefficient; this.Purpose = Purpose; this.SelfWeightCoefficients = SelfWeightCoefficients; this.type = 385403989; } } IFC42.IfcStructuralLoadCase = IfcStructuralLoadCase; class IfcStructuralPlanarAction extends IfcStructuralSurfaceAction { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, ProjectedOrTrue, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, ProjectedOrTrue, PredefinedType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.AppliedLoad = AppliedLoad; this.GlobalOrLocal = GlobalOrLocal; this.DestabilizingLoad = DestabilizingLoad; this.ProjectedOrTrue = ProjectedOrTrue; this.PredefinedType = PredefinedType; this.type = 1621171031; } } IFC42.IfcStructuralPlanarAction = IfcStructuralPlanarAction; class IfcSwitchingDevice extends IfcFlowController { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 1162798199; } } IFC42.IfcSwitchingDevice = IfcSwitchingDevice; class IfcTank extends IfcFlowStorageDevice { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 812556717; } } IFC42.IfcTank = IfcTank; class IfcTransformer extends IfcEnergyConversionDevice { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 3825984169; } } IFC42.IfcTransformer = IfcTransformer; class IfcTubeBundle extends IfcEnergyConversionDevice { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 3026737570; } } IFC42.IfcTubeBundle = IfcTubeBundle; class IfcUnitaryControlElementType extends IfcDistributionControlElementType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 3179687236; } } IFC42.IfcUnitaryControlElementType = IfcUnitaryControlElementType; class IfcUnitaryEquipment extends IfcEnergyConversionDevice { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 4292641817; } } IFC42.IfcUnitaryEquipment = IfcUnitaryEquipment; class IfcValve extends IfcFlowController { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 4207607924; } } IFC42.IfcValve = IfcValve; class IfcWall extends IfcBuildingElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 2391406946; } } IFC42.IfcWall = IfcWall; class IfcWallElementedCase extends IfcWall { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 4156078855; } } IFC42.IfcWallElementedCase = IfcWallElementedCase; class IfcWallStandardCase extends IfcWall { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 3512223829; } } IFC42.IfcWallStandardCase = IfcWallStandardCase; class IfcWasteTerminal extends IfcFlowTerminal { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 4237592921; } } IFC42.IfcWasteTerminal = IfcWasteTerminal; class IfcWindow extends IfcBuildingElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, OverallHeight, OverallWidth, PredefinedType, PartitioningType, UserDefinedPartitioningType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.OverallHeight = OverallHeight; this.OverallWidth = OverallWidth; this.PredefinedType = PredefinedType; this.PartitioningType = PartitioningType; this.UserDefinedPartitioningType = UserDefinedPartitioningType; this.type = 3304561284; } } IFC42.IfcWindow = IfcWindow; class IfcWindowStandardCase extends IfcWindow { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, OverallHeight, OverallWidth, PredefinedType, PartitioningType, UserDefinedPartitioningType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, OverallHeight, OverallWidth, PredefinedType, PartitioningType, UserDefinedPartitioningType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.OverallHeight = OverallHeight; this.OverallWidth = OverallWidth; this.PredefinedType = PredefinedType; this.PartitioningType = PartitioningType; this.UserDefinedPartitioningType = UserDefinedPartitioningType; this.type = 486154966; } } IFC42.IfcWindowStandardCase = IfcWindowStandardCase; class IfcActuatorType extends IfcDistributionControlElementType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 2874132201; } } IFC42.IfcActuatorType = IfcActuatorType; class IfcAirTerminal extends IfcFlowTerminal { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 1634111441; } } IFC42.IfcAirTerminal = IfcAirTerminal; class IfcAirTerminalBox extends IfcFlowController { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 177149247; } } IFC42.IfcAirTerminalBox = IfcAirTerminalBox; class IfcAirToAirHeatRecovery extends IfcEnergyConversionDevice { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 2056796094; } } IFC42.IfcAirToAirHeatRecovery = IfcAirToAirHeatRecovery; class IfcAlarmType extends IfcDistributionControlElementType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 3001207471; } } IFC42.IfcAlarmType = IfcAlarmType; class IfcAudioVisualAppliance extends IfcFlowTerminal { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 277319702; } } IFC42.IfcAudioVisualAppliance = IfcAudioVisualAppliance; class IfcBeam extends IfcBuildingElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 753842376; } } IFC42.IfcBeam = IfcBeam; class IfcBeamStandardCase extends IfcBeam { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 2906023776; } } IFC42.IfcBeamStandardCase = IfcBeamStandardCase; class IfcBoiler extends IfcEnergyConversionDevice { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 32344328; } } IFC42.IfcBoiler = IfcBoiler; class IfcBurner extends IfcEnergyConversionDevice { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 2938176219; } } IFC42.IfcBurner = IfcBurner; class IfcCableCarrierFitting extends IfcFlowFitting { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 635142910; } } IFC42.IfcCableCarrierFitting = IfcCableCarrierFitting; class IfcCableCarrierSegment extends IfcFlowSegment { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 3758799889; } } IFC42.IfcCableCarrierSegment = IfcCableCarrierSegment; class IfcCableFitting extends IfcFlowFitting { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 1051757585; } } IFC42.IfcCableFitting = IfcCableFitting; class IfcCableSegment extends IfcFlowSegment { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 4217484030; } } IFC42.IfcCableSegment = IfcCableSegment; class IfcChiller extends IfcEnergyConversionDevice { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 3902619387; } } IFC42.IfcChiller = IfcChiller; class IfcCoil extends IfcEnergyConversionDevice { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 639361253; } } IFC42.IfcCoil = IfcCoil; class IfcCommunicationsAppliance extends IfcFlowTerminal { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 3221913625; } } IFC42.IfcCommunicationsAppliance = IfcCommunicationsAppliance; class IfcCompressor extends IfcFlowMovingDevice { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 3571504051; } } IFC42.IfcCompressor = IfcCompressor; class IfcCondenser extends IfcEnergyConversionDevice { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 2272882330; } } IFC42.IfcCondenser = IfcCondenser; class IfcControllerType extends IfcDistributionControlElementType { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ApplicableOccurrence = ApplicableOccurrence; this.HasPropertySets = HasPropertySets; this.RepresentationMaps = RepresentationMaps; this.Tag = Tag; this.ElementType = ElementType; this.PredefinedType = PredefinedType; this.type = 578613899; } } IFC42.IfcControllerType = IfcControllerType; class IfcCooledBeam extends IfcEnergyConversionDevice { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 4136498852; } } IFC42.IfcCooledBeam = IfcCooledBeam; class IfcCoolingTower extends IfcEnergyConversionDevice { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 3640358203; } } IFC42.IfcCoolingTower = IfcCoolingTower; class IfcDamper extends IfcFlowController { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 4074379575; } } IFC42.IfcDamper = IfcDamper; class IfcDistributionChamberElement extends IfcDistributionFlowElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 1052013943; } } IFC42.IfcDistributionChamberElement = IfcDistributionChamberElement; class IfcDistributionCircuit extends IfcDistributionSystem { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, LongName, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, LongName, PredefinedType); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.LongName = LongName; this.PredefinedType = PredefinedType; this.type = 562808652; } } IFC42.IfcDistributionCircuit = IfcDistributionCircuit; class IfcDistributionControlElement extends IfcDistributionElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.type = 1062813311; } } IFC42.IfcDistributionControlElement = IfcDistributionControlElement; class IfcDuctFitting extends IfcFlowFitting { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 342316401; } } IFC42.IfcDuctFitting = IfcDuctFitting; class IfcDuctSegment extends IfcFlowSegment { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 3518393246; } } IFC42.IfcDuctSegment = IfcDuctSegment; class IfcDuctSilencer extends IfcFlowTreatmentDevice { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 1360408905; } } IFC42.IfcDuctSilencer = IfcDuctSilencer; class IfcElectricAppliance extends IfcFlowTerminal { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 1904799276; } } IFC42.IfcElectricAppliance = IfcElectricAppliance; class IfcElectricDistributionBoard extends IfcFlowController { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 862014818; } } IFC42.IfcElectricDistributionBoard = IfcElectricDistributionBoard; class IfcElectricFlowStorageDevice extends IfcFlowStorageDevice { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 3310460725; } } IFC42.IfcElectricFlowStorageDevice = IfcElectricFlowStorageDevice; class IfcElectricGenerator extends IfcEnergyConversionDevice { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 264262732; } } IFC42.IfcElectricGenerator = IfcElectricGenerator; class IfcElectricMotor extends IfcEnergyConversionDevice { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 402227799; } } IFC42.IfcElectricMotor = IfcElectricMotor; class IfcElectricTimeControl extends IfcFlowController { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 1003880860; } } IFC42.IfcElectricTimeControl = IfcElectricTimeControl; class IfcFan extends IfcFlowMovingDevice { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 3415622556; } } IFC42.IfcFan = IfcFan; class IfcFilter extends IfcFlowTreatmentDevice { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 819412036; } } IFC42.IfcFilter = IfcFilter; class IfcFireSuppressionTerminal extends IfcFlowTerminal { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 1426591983; } } IFC42.IfcFireSuppressionTerminal = IfcFireSuppressionTerminal; class IfcFlowInstrument extends IfcDistributionControlElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 182646315; } } IFC42.IfcFlowInstrument = IfcFlowInstrument; class IfcProtectiveDeviceTrippingUnit extends IfcDistributionControlElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 2295281155; } } IFC42.IfcProtectiveDeviceTrippingUnit = IfcProtectiveDeviceTrippingUnit; class IfcSensor extends IfcDistributionControlElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 4086658281; } } IFC42.IfcSensor = IfcSensor; class IfcUnitaryControlElement extends IfcDistributionControlElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 630975310; } } IFC42.IfcUnitaryControlElement = IfcUnitaryControlElement; class IfcActuator extends IfcDistributionControlElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 4288193352; } } IFC42.IfcActuator = IfcActuator; class IfcAlarm extends IfcDistributionControlElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 3087945054; } } IFC42.IfcAlarm = IfcAlarm; class IfcController extends IfcDistributionControlElement { constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); this.GlobalId = GlobalId; this.OwnerHistory = OwnerHistory; this.Name = Name; this.Description = Description; this.ObjectType = ObjectType; this.ObjectPlacement = ObjectPlacement; this.Representation = Representation; this.Tag = Tag; this.PredefinedType = PredefinedType; this.type = 25142252; } } IFC42.IfcController = IfcController; })(IFC4 || (IFC4 = {})); // dist/helpers/properties.ts var PropsNames$1 = { aggregates: { name: IFCRELAGGREGATES, relating: "RelatingObject", related: "RelatedObjects", key: "children" }, spatial: { name: IFCRELCONTAINEDINSPATIALSTRUCTURE, relating: "RelatingStructure", related: "RelatedElements", key: "children" }, psets: { name: IFCRELDEFINESBYPROPERTIES, relating: "RelatingPropertyDefinition", related: "RelatedObjects", key: "IsDefinedBy" }, materials: { name: IFCRELASSOCIATESMATERIAL, relating: "RelatingMaterial", related: "RelatedObjects", key: "HasAssociations" }, type: { name: IFCRELDEFINESBYTYPE, relating: "RelatingType", related: "RelatedObjects", key: "IsDefinedBy" } }; var Properties = class { constructor(api) { this.api = api; } getItemProperties(modelID, id, recursive = false, inverse = false) { return __async(this, null, function* () { return this.api.GetLine(modelID, id, recursive, inverse); }); } getPropertySets(modelID, elementID = 0, recursive = false) { return __async(this, null, function* () { return yield this.getRelatedProperties(modelID, elementID, PropsNames$1.psets, recursive); }); } setPropertySets(modelID, elementID, psetID) { return __async(this, null, function* () { return this.setItemProperties(modelID, elementID, psetID, PropsNames$1.psets); }); } getTypeProperties(modelID, elementID, recursive = false) { return __async(this, null, function* () { if (this.api.GetModelSchema(modelID) == "IFX2X3") { return yield this.getRelatedProperties(modelID, elementID, PropsNames$1.type, recursive); } else { return yield this.getRelatedProperties(modelID, elementID, __spreadProps(__spreadValues({}, PropsNames$1.type), { key: "IsTypedBy" }), recursive); } }); } getMaterialsProperties(modelID, elementID = 0, recursive = false) { return __async(this, null, function* () { return yield this.getRelatedProperties(modelID, elementID, PropsNames$1.materials, recursive); }); } setMaterialsProperties(modelID, elementID, materialID) { return __async(this, null, function* () { return this.setItemProperties(modelID, elementID, materialID, PropsNames$1.materials); }); } getSpatialStructure(modelID, includeProperties = false) { return __async(this, null, function* () { const chunks = yield this.getSpatialTreeChunks(modelID); const allLines = yield this.api.GetLineIDsWithType(modelID, IFCPROJECT); const projectID = allLines.get(0); const project = Properties.newIfcProject(projectID); yield this.getSpatialNode(modelID, project, chunks, includeProperties); return project; }); } getRelatedProperties(modelID, elementID, propsName, recursive = false) { return __async(this, null, function* () { const result = []; let rels = null; if (elementID !== 0) rels = yield this.api.GetLine(modelID, elementID, false, true)[propsName.key]; else { let vec = this.api.GetLineIDsWithType(modelID, propsName.name); rels = []; for (let i = 0; i < vec.size(); ++i) rels.push({ value: vec.get(i) }); } if (rels == null) return result; if (!Array.isArray(rels)) rels = [rels]; for (let i = 0; i < rels.length; i++) { let propSetIds = yield this.api.GetLine(modelID, rels[i].value, false, false)[propsName.relating]; if (propSetIds == null) continue; if (!Array.isArray(propSetIds)) propSetIds = [propSetIds]; for (let x = 0; x < propSetIds.length; x++) { result.push(yield this.api.GetLine(modelID, propSetIds[x].value, recursive)); } } return result; }); } getChunks(modelID, chunks, propNames) { return __async(this, null, function* () { const relation = yield this.api.GetLineIDsWithType(modelID, propNames.name, true); for (let i = 0; i < relation.size(); i++) { const rel = yield this.api.GetLine(modelID, relation.get(i), false); this.saveChunk(chunks, propNames, rel); } }); } static newIfcProject(id) { return { expressID: id, type: "IFCPROJECT", children: [] }; } getSpatialNode(modelID, node, treeChunks, includeProperties) { return __async(this, null, function* () { yield this.getChildren(modelID, node, treeChunks, PropsNames$1.aggregates, includeProperties); yield this.getChildren(modelID, node, treeChunks, PropsNames$1.spatial, includeProperties); }); } getChildren(modelID, node, treeChunks, propNames, includeProperties) { return __async(this, null, function* () { const children = treeChunks[node.expressID]; if (children == void 0) return; const prop = propNames.key; const nodes = []; for (let i = 0; i < children.length; i++) { const child = children[i]; let node2 = this.newNode(child, this.api.GetLineType(modelID, child)); if (includeProperties) { const properties = yield this.getItemProperties(modelID, node2.expressID); node2 = __spreadValues(__spreadValues({}, properties), node2); } yield this.getSpatialNode(modelID, node2, treeChunks, includeProperties); nodes.push(node2); } node[prop] = nodes; }); } newNode(id, type) { return { expressID: id, type: this.api.GetNameFromTypeCode(type), children: [] }; } getSpatialTreeChunks(modelID) { return __async(this, null, function* () { const treeChunks = {}; yield this.getChunks(modelID, treeChunks, PropsNames$1.aggregates); yield this.getChunks(modelID, treeChunks, PropsNames$1.spatial); return treeChunks; }); } saveChunk(chunks, propNames, rel) { const relating = rel[propNames.relating].value; const related = rel[propNames.related].map((r) => r.value); if (chunks[relating] == void 0) { chunks[relating] = related; } else { chunks[relating] = chunks[relating].concat(related); } } setItemProperties(modelID, elementID, propID, propsName) { return __async(this, null, function* () { if (!Array.isArray(elementID)) elementID = [elementID]; if (!Array.isArray(propID)) propID = [propID]; let foundRel = 0; const rels = []; const elements = []; for (const elID of elementID) { const element = yield this.api.GetLine(modelID, elID, false, true); if (!element[propsName.key]) continue; elements.push(element); } if (elements.length < 1) return false; const relations = this.api.GetLineIDsWithType(modelID, propsName.name); for (let i = 0; i < relations.size(); ++i) { const rel = yield this.api.GetLine(modelID, relations.get(i)); if (propID.includes(Number(rel[propsName.relating].value))) { rels.push(rel); foundRel++; } if (foundRel == propID.length) break; } for (const element of elements) { for (const rel of rels) { if (!element[propsName.key].some((e) => e.value === rel.expressID)) element[propsName.key].push({ type: 5, value: rel.expressID }); if (!rel[propsName.related].some((e) => e.value === element.expressID)) { rel[propsName.related].push({ type: 5, value: element.expressID }); this.api.WriteLine(modelID, rel); } } this.api.WriteLine(modelID, element); } return true; }); } }; // dist/helpers/log.ts var LogLevel; (function(LogLevel2) { LogLevel2[LogLevel2["LOG_LEVEL_DEBUG"] = 0] = "LOG_LEVEL_DEBUG"; LogLevel2[LogLevel2["LOG_LEVEL_INFO"] = 1] = "LOG_LEVEL_INFO"; LogLevel2[LogLevel2["LOG_LEVEL_WARN"] = 2] = "LOG_LEVEL_WARN"; LogLevel2[LogLevel2["LOG_LEVEL_ERROR"] = 3] = "LOG_LEVEL_ERROR"; LogLevel2[LogLevel2["LOG_LEVEL_OFF"] = 4] = "LOG_LEVEL_OFF"; })(LogLevel || (LogLevel = {})); var Log = class { static setLogLevel(level) { this.logLevel = level; } static log(msg, ...args) { if (this.logLevel <= 3) { console.log(msg, ...args); } } static debug(msg, ...args) { if (this.logLevel <= 0) { console.trace("DEBUG: ", msg, ...args); } } static info(msg, ...args) { if (this.logLevel <= 1) { console.info("INFO: ", msg, ...args); } } static warn(msg, ...args) { if (this.logLevel <= 2) { console.warn("WARN: ", msg, ...args); } } static error(msg, ...args) { if (this.logLevel <= 3) { console.error("ERROR: ", msg, ...args); } } }; Log.logLevel = 1; // dist/web-ifc-api.ts var WebIFCWasm; if (typeof self !== "undefined" && self.crossOriginIsolated) { try { WebIFCWasm = require_web_ifc_mt(); } catch (ex) { WebIFCWasm = require_web_ifc(); } } else { WebIFCWasm = require_web_ifc(); } var STRING = 1; var IfcAPI2 = class { constructor() { this.wasmModule = void 0; this.wasmPath = ""; this.isWasmPathAbsolute = false; this.modelSchemaList = []; this.ifcGuidMap = new Map(); this.properties = new Properties(this); } Init(customLocateFileHandler) { return __async(this, null, function* () { if (WebIFCWasm) { let locateFileHandler = (path, prefix) => { if (path.endsWith(".wasm")) { if (this.isWasmPathAbsolute) { return this.wasmPath + path; } return prefix + this.wasmPath + path; } return prefix + path; }; this.wasmModule = yield WebIFCWasm({ noInitialRun: true, locateFile: customLocateFileHandler || locateFileHandler }); } else { Log.error(`Could not find wasm module at './web-ifc' from web-ifc-api.ts`); } }); } OpenModels(dataSets, settings) { let s = __spreadValues({ MEMORY_LIMIT: 3221225472 }, settings); s.MEMORY_LIMIT = s.MEMORY_LIMIT / dataSets.length; let modelIDs = []; for (let dataSet of dataSets) modelIDs.push(this.OpenModel(dataSet, s)); return modelIDs; } OpenModel(data, settings) { let s = __spreadValues({ COORDINATE_TO_ORIGIN: false, USE_FAST_BOOLS: true, CIRCLE_SEGMENTS_LOW: 5, CIRCLE_SEGMENTS_MEDIUM: 8, CIRCLE_SEGMENTS_HIGH: 12, BOOL_ABORT_THRESHOLD: 1e4, TAPE_SIZE: 67108864, MEMORY_LIMIT: 3221225472 }, settings); let result = this.wasmModule.OpenModel(s, (destPtr, offsetInSrc, destSize) => { let srcSize = Math.min(data.byteLength - offsetInSrc, destSize); let dest = this.wasmModule.HEAPU8.subarray(destPtr, destPtr + srcSize); let src = data.subarray(offsetInSrc, offsetInSrc + srcSize); dest.set(src); return srcSize; }); this.modelSchemaList[result] = SchemaNames.indexOf(this.GetHeaderLine(result, FILE_SCHEMA).arguments[0][0].value); Log.info("Parsing Model using " + this.GetHeaderLine(result, FILE_SCHEMA).arguments[0][0].value + " Schema"); return result; } GetModelSchema(modelID) { return SchemaNames[this.modelSchemaList[modelID]]; } CreateModel(model, settings) { var _a, _b, _c; let s = __spreadValues({ COORDINATE_TO_ORIGIN: false, USE_FAST_BOOLS: true, CIRCLE_SEGMENTS_LOW: 5, CIRCLE_SEGMENTS_MEDIUM: 8, CIRCLE_SEGMENTS_HIGH: 12, BOOL_ABORT_THRESHOLD: 1e4, TAPE_SIZE: 67108864, MEMORY_LIMIT: 3221225472 }, settings); let result = this.wasmModule.CreateModel(s); this.modelSchemaList[result] = SchemaNames.indexOf(model.schema); const modelName = model.name || "web-ifc-model-" + result + ".ifc"; const timestamp = new Date().toISOString().slice(0, 19); const description = ((_a = model.description) == null ? void 0 : _a.map((d) => ({ type: STRING, value: d }))) || [{ type: STRING, value: "ViewDefinition [CoordinationView]" }]; const authors = ((_b = model.authors) == null ? void 0 : _b.map((a) => ({ type: STRING, value: a }))) || [null]; const orgs = ((_c = model.organizations) == null ? void 0 : _c.map((o) => ({ type: STRING, value: o }))) || [null]; const auth = model.authorization ? { type: STRING, value: model.authorization } : null; this.wasmModule.WriteHeaderLine(result, FILE_DESCRIPTION, [ description, { type: STRING, value: "2;1" } ]); this.wasmModule.WriteHeaderLine(result, FILE_NAME, [ { type: STRING, value: modelName }, { type: STRING, value: timestamp }, authors, orgs, { type: STRING, value: "ifcjs/web-ifc-api" }, { type: STRING, value: "ifcjs/web-ifc-api" }, auth ]); this.wasmModule.WriteHeaderLine(result, FILE_SCHEMA, [[{ type: STRING, value: model.schema }]]); return result; } SaveModel(modelID) { let modelSize = this.wasmModule.GetModelSize(modelID); const headerBytes = 512; let dataBuffer = new Uint8Array(modelSize + headerBytes); let size = 0; this.wasmModule.SaveModel(modelID, (srcPtr, srcSize) => { let src = this.wasmModule.HEAPU8.subarray(srcPtr, srcPtr + srcSize); size = srcSize; dataBuffer.set(src, 0); }); let newBuffer = new Uint8Array(size); newBuffer.set(dataBuffer.subarray(0, size), 0); return newBuffer; } ExportFileAsIFC(modelID) { Log.warn("ExportFileAsIFC is deprecated, use SaveModel instead"); return this.SaveModel(modelID); } GetGeometry(modelID, geometryExpressID) { return this.wasmModule.GetGeometry(modelID, geometryExpressID); } GetHeaderLine(modelID, headerType) { return this.wasmModule.GetHeaderLine(modelID, headerType); } GetAllTypesOfModel(modelID) { let typesNames = []; const elements = Object.keys(FromRawLineData[this.modelSchemaList[modelID]]).map((e) => parseInt(e)); for (let i = 0; i < elements.length; i++) { const lines = this.GetLineIDsWithType(modelID, elements[i]); if (lines.size() > 0) typesNames.push({ typeID: elements[i], typeName: this.wasmModule.GetNameFromTypeCode(elements[i]) }); } return typesNames; } GetLine(modelID, expressID, flatten = false, inverse = false) { let expressCheck = this.wasmModule.ValidateExpressID(modelID, expressID); if (!expressCheck) { return; } let rawLineData = this.GetRawLineData(modelID, expressID); let lineData = FromRawLineData[this.modelSchemaList[modelID]][rawLineData.type](rawLineData.ID, rawLineData.arguments); if (flatten) { this.FlattenLine(modelID, lineData); } let inverseData = InversePropertyDef[this.modelSchemaList[modelID]][rawLineData.type]; if (inverse && inverseData != null) { for (let inverseProp of inverseData) { if (!inverseProp[3]) lineData[inverseProp[0]] = null; else lineData[inverseProp[0]] = []; let targetTypes = [inverseProp[1]]; if (typeof InheritanceDef[this.modelSchemaList[modelID]][inverseProp[1]] != "undefined") { targetTypes = targetTypes.concat(InheritanceDef[this.modelSchemaList[modelID]][inverseProp[1]]); } let inverseIDs = this.wasmModule.GetInversePropertyForItem(modelID, expressID, targetTypes, inverseProp[2], inverseProp[3]); if (!inverseProp[3] && inverseIDs.size() > 0) { if (!flatten) lineData[inverseProp[0]] = { type: 5, value: inverseIDs.get(0) }; else lineData[inverseProp[0]] = this.GetLine(modelID, inverseIDs.get(0)); } else { for (let x = 0; x < inverseIDs.size(); x++) { if (!flatten) lineData[inverseProp[0]].push({ type: 5, value: inverseIDs.get(x) }); else lineData[inverseProp[0]].push(this.GetLine(modelID, inverseIDs.get(x))); } } } } return lineData; } GetNextExpressID(modelID, expressID) { return this.wasmModule.GetNextExpressID(modelID, expressID); } GetAndClearErrors(modelID) { return this.wasmModule.GetAndClearErrors(modelID); } CreateIfcEntity(modelID, type, ...args) { return Constructors[this.modelSchemaList[modelID]][type](-1, args); } CreateIfcType(modelID, type, value) { return TypeInitialisers[this.modelSchemaList[modelID]][type](value); } GetNameFromTypeCode(type) { return this.wasmModule.GetNameFromTypeCode(type); } GetTypeCodeFromName(modelID, typeName) { return this.wasmModule.GetTypeCodeFromName(modelID, typeName); } IsIfcElement(type) { return this.wasmModule.IsIfcElement(type); } GetIfcEntityList(modelID) { return Object.keys(FromRawLineData[this.modelSchemaList[modelID]]).map((x) => parseInt(x)); } WriteLine(modelID, lineObject) { let property; for (property in lineObject) { const lineProperty = lineObject[property]; if (lineProperty && lineProperty.expressID !== void 0) { this.WriteLine(modelID, lineProperty); lineObject[property] = new Handle(lineProperty.expressID); } else if (Array.isArray(lineProperty) && lineProperty.length > 0) { for (let i = 0; i < lineProperty.length; i++) { if (lineProperty[i].expressID !== void 0) { this.WriteLine(modelID, lineProperty[i]); lineObject[property][i] = new Handle(lineProperty[i].expressID); } } } } if (lineObject.expressID === void 0 || lineObject.expressID < 0) { lineObject.expressID = this.GetMaxExpressID(modelID) + 1; } let rawLineData = { ID: lineObject.expressID, type: lineObject.type, arguments: ToRawLineData[this.modelSchemaList[modelID]][lineObject.type](lineObject) }; this.WriteRawLineData(modelID, rawLineData); } FlattenLine(modelID, line) { Object.keys(line).forEach((propertyName) => { let property = line[propertyName]; if (property && property.type === 5) { if (property.value) line[propertyName] = this.GetLine(modelID, property.value, true); } else if (Array.isArray(property) && property.length > 0 && property[0].type === 5) { for (let i = 0; i < property.length; i++) { if (property[i].value) line[propertyName][i] = this.GetLine(modelID, property[i].value, true); } } }); } GetRawLineData(modelID, expressID) { return this.wasmModule.GetLine(modelID, expressID); } WriteRawLineData(modelID, data) { this.wasmModule.WriteLine(modelID, data.ID, data.type, data.arguments); } GetLineIDsWithType(modelID, type, includeInherited = false) { let types = []; types.push(type); if (includeInherited && typeof InheritanceDef[this.modelSchemaList[modelID]][type] != "undefined") { types = types.concat(InheritanceDef[this.modelSchemaList[modelID]][type]); } return this.wasmModule.GetLineIDsWithType(modelID, types); } GetAllLines(modelID) { return this.wasmModule.GetAllLines(modelID); } SetGeometryTransformation(modelID, transformationMatrix) { if (transformationMatrix.length != 16) { throw new Error(`invalid matrix size: ${transformationMatrix.length}`); } this.wasmModule.SetGeometryTransformation(modelID, transformationMatrix); } GetCoordinationMatrix(modelID) { return this.wasmModule.GetCoordinationMatrix(modelID); } GetVertexArray(ptr, size) { return this.getSubArray(this.wasmModule.HEAPF32, ptr, size); } GetIndexArray(ptr, size) { return this.getSubArray(this.wasmModule.HEAPU32, ptr, size); } getSubArray(heap, startPtr, sizeBytes) { return heap.subarray(startPtr / 4, startPtr / 4 + sizeBytes).slice(0); } CloseModel(modelID) { this.ifcGuidMap.delete(modelID); this.wasmModule.CloseModel(modelID); } StreamAllMeshes(modelID, meshCallback) { this.wasmModule.StreamAllMeshes(modelID, meshCallback); } StreamAllMeshesWithTypes(modelID, types, meshCallback) { this.wasmModule.StreamAllMeshesWithTypes(modelID, types, meshCallback); } IsModelOpen(modelID) { return this.wasmModule.IsModelOpen(modelID); } LoadAllGeometry(modelID) { return this.wasmModule.LoadAllGeometry(modelID); } GetFlatMesh(modelID, expressID) { return this.wasmModule.GetFlatMesh(modelID, expressID); } GetMaxExpressID(modelID) { return this.wasmModule.GetMaxExpressID(modelID); } IncrementMaxExpressID(modelID, incrementSize) { Log.warn("IncrementMaxExpressID is deprecated, use GetNextExpressID or GetMaxExpressID instead"); return this.wasmModule.GetMaxExpressID(modelID) + incrementSize; } GetLineType(modelID, expressID) { return this.wasmModule.GetLineType(modelID, expressID); } CreateIfcGuidToExpressIdMapping(modelID) { const map = new Map(); let entities = this.GetIfcEntityList(modelID); for (const typeId of entities) { const lines = this.GetLineIDsWithType(modelID, typeId); const size = lines.size(); for (let y = 0; y < size; y++) { const expressID = lines.get(y); const info = this.GetLine(modelID, expressID); if (info.GlobalId == null) { continue; } const globalID = info.GlobalId.value; map.set(expressID, globalID); map.set(globalID, expressID); } } this.ifcGuidMap.set(modelID, map); } SetWasmPath(path, absolute = false) { this.wasmPath = path; this.isWasmPathAbsolute = absolute; } SetLogLevel(level) { Log.setLogLevel(level); this.wasmModule.SetLogLevel(level); } }; class WebIfcWorker { constructor(worker, serializer) { this.worker = worker; this.serializer = serializer; this.API = WorkerAPIs.webIfc; this.webIFC = new IfcAPI2(); this.worker.initializeAPI(this.webIFC); } async Init(data) { await this.webIFC.Init(); this.worker.post(data); } ; async Close(data) { this.nullifyWebIfc(); this.webIFC = new IfcAPI2(); await this.webIFC.Init(); this.worker.post(data); } ; async DisposeWebIfc(data) { this.nullifyWebIfc(); this.worker.post(data); } CloseModel(data) { this.webIFC.CloseModel(data.args.modelID); this.worker.post(data); } CreateModel(data) { data.result = this.webIFC.CreateModel(data.args.settings); this.worker.post(data); } ExportFileAsIFC(data) { data.result = this.webIFC.ExportFileAsIFC(data.args.modelID); this.worker.post(data); } FlattenLine(data) { this.webIFC.FlattenLine(data.args.modelID, data.args.line); this.worker.post(data); } GetAllLines(data) { const vector = this.webIFC.GetAllLines(data.args.modelID); data.result = this.serializer.serializeVector(vector); this.worker.post(data); } GetAndClearErrors(data) { const vector = this.webIFC.GetAndClearErrors(data.args.modelID); data.result = this.serializer.serializeVector(vector); this.worker.post(data); } GetCoordinationMatrix(data) { data.result = this.webIFC.GetCoordinationMatrix(data.args.modelID); this.worker.post(data); } GetFlatMesh(data) { const flatMesh = this.webIFC.GetFlatMesh(data.args.modelID, data.args.expressID); data.result = this.serializer.serializeFlatMesh(flatMesh); this.worker.post(data); } GetGeometry(data) { const ifcGeometry = this.webIFC.GetGeometry(data.args.modelID, data.args.geometryExpressID); data.result = this.serializer.serializeIfcGeometry(ifcGeometry); this.worker.post(data); } GetIndexArray(data) { data.result = this.webIFC.GetIndexArray(data.args.ptr, data.args.size); this.worker.post(data); } GetLine(data) { const args = data.args; try { data.result = this.webIFC.GetLine(args.modelID, args.expressID, args.flatten); } catch (e) { console.log(`There was a problem getting the properties of the item ${args.expressID}`); data.result = {}; } this.worker.post(data); } GetLineIDsWithType(data) { const vector = this.webIFC.GetLineIDsWithType(data.args.modelID, data.args.type); data.result = this.serializer.serializeVector(vector); this.worker.post(data); } GetRawLineData(data) { data.result = this.webIFC.GetRawLineData(data.args.modelID, data.args.expressID); this.worker.post(data); } GetVertexArray(data) { data.result = this.webIFC.GetVertexArray(data.args.ptr, data.args.size); this.worker.post(data); } IsModelOpen(data) { data.result = this.webIFC.IsModelOpen(data.args.modelID); this.worker.post(data); } LoadAllGeometry(data) { const flatMeshVector = this.webIFC.LoadAllGeometry(data.args.modelID); data.result = this.serializer.serializeFlatMeshVector(flatMeshVector); this.worker.post(data); } OpenModel(data) { data.result = this.webIFC.OpenModel(data.args.data, data.args.settings); this.worker.post(data); } SetGeometryTransformation(data) { this.webIFC.SetGeometryTransformation(data.args.modelID, data.args.transformationMatrix); this.worker.post(data); } SetWasmPath(data) { this.webIFC.SetWasmPath(data.args.path); this.worker.post(data); } StreamAllMeshes(data) { const serializer = this.serializer.serializeFlatMesh; const callback = (result) => this.worker.postCallback(data, result, serializer); this.webIFC.StreamAllMeshes(data.args.modelID, callback); } StreamAllMeshesWithTypes(data) { const args = data.args; const serializer = this.serializer.serializeFlatMesh; const callback = (result) => this.worker.postCallback(data, result, serializer); this.webIFC.StreamAllMeshesWithTypes(args.modelID, args.types, callback); } WriteLine(data) { const modelID = data.args.modelID; const serializedObject = data.args.lineObject; const object = this.webIFC.GetLine(modelID, serializedObject.expressID); Object.keys(serializedObject).forEach(propName => { if (object[propName] !== undefined) { object[propName] = serializedObject[propName]; } }); this.webIFC.WriteLine(data.args.modelID, object); this.worker.post(data); } WriteRawLineData(data) { this.webIFC.WriteRawLineData(data.args.modelID, data.args.data); this.worker.post(data); } getSubArray(data) { const args = data.args; this.webIFC.getSubArray(args.heap, args.startPtr, args.sizeBytes); this.worker.post(data); } GetNameFromTypeCode(data) { data.result = this.webIFC.GetNameFromTypeCode(data.args.modelID); this.worker.post(data); } GetIfcEntityList(data) { data.result = this.webIFC.GetIfcEntityList(data.args.modelID); this.worker.post(data); } GetTypeCodeFromName(data) { data.result = this.webIFC.GetTypeCodeFromName(data.args.modelID, data.args.typeName); this.worker.post(data); } nullifyWebIfc() { this.webIFC = null; } } const IdAttrName = 'expressID'; const PropsNames = { aggregates: { name: IFCRELAGGREGATES, relating: 'RelatingObject', related: 'RelatedObjects', key: 'children' }, spatial: { name: IFCRELCONTAINEDINSPATIALSTRUCTURE, relating: 'RelatingStructure', related: 'RelatedElements', key: 'children' }, psets: { name: IFCRELDEFINESBYPROPERTIES, relating: 'RelatingPropertyDefinition', related: 'RelatedObjects', key: 'hasPsets' }, materials: { name: IFCRELASSOCIATESMATERIAL, relating: 'RelatingMaterial', related: 'RelatedObjects', key: 'hasMaterial' }, type: { name: IFCRELDEFINESBYTYPE, relating: 'RelatingType', related: 'RelatedObjects', key: 'hasType' } }; class BasePropertyManager { constructor(state) { this.state = state; } async getPropertySets(modelID, elementID, recursive = false) { return await this.getProperty(modelID, elementID, recursive, PropsNames.psets); } async getTypeProperties(modelID, elementID, recursive = false) { return await this.getProperty(modelID, elementID, recursive, PropsNames.type); } async getMaterialsProperties(modelID, elementID, recursive = false) { return await this.getProperty(modelID, elementID, recursive, PropsNames.materials); } async getSpatialNode(modelID, node, treeChunks, includeProperties) { await this.getChildren(modelID, node, treeChunks, PropsNames.aggregates, includeProperties); await this.getChildren(modelID, node, treeChunks, PropsNames.spatial, includeProperties); } async getChildren(modelID, node, treeChunks, propNames, includeProperties) { const children = treeChunks[node.expressID]; if (children == undefined) return; const prop = propNames.key; const nodes = []; for (let i = 0; i < children.length; i++) { const child = children[i]; let node = this.newNode(modelID, child); if (includeProperties) { const properties = await this.getItemProperties(modelID, node.expressID); node = { ...properties, ...node }; } await this.getSpatialNode(modelID, node, treeChunks, includeProperties); nodes.push(node); } node[prop] = nodes; } newNode(modelID, id) { const typeName = this.getNodeType(modelID, id); return { expressID: id, type: typeName, children: [] }; } async getSpatialTreeChunks(modelID) { const treeChunks = {}; await this.getChunks(modelID, treeChunks, PropsNames.aggregates); await this.getChunks(modelID, treeChunks, PropsNames.spatial); return treeChunks; } saveChunk(chunks, propNames, rel) { const relating = rel[propNames.relating].value; const related = rel[propNames.related].map((r) => r.value); if (chunks[relating] == undefined) { chunks[relating] = related; } else { chunks[relating] = chunks[relating].concat(related); } } getRelated(rel, propNames, IDs) { const element = rel[propNames.relating]; if (!element) { return console.warn(`The object with ID ${rel.expressID} has a broken reference.`); } if (!Array.isArray(element)) IDs.push(element.value); else element.forEach((ele) => IDs.push(ele.value)); } static isRelated(id, rel, propNames) { const relatedItems = rel[propNames.related]; if (Array.isArray(relatedItems)) { const values = relatedItems.map((item) => item.value); return values.includes(id); } return relatedItems.value === id; } static newIfcProject(id) { return { expressID: id, type: 'IFCPROJECT', children: [] }; } async getProperty(modelID, elementID, recursive = false, propName) { } async getChunks(modelID, chunks, propNames) { } async getItemProperties(modelID, expressID, recursive = false) { } getNodeType(modelID, id) { } } class WebIfcPropertyManager extends BasePropertyManager { async getItemProperties(modelID, id, recursive = false) { return this.state.api.GetLine(modelID, id, recursive); } async getHeaderLine(modelID, headerType) { return this.state.api.GetHeaderLine(modelID, headerType); } async getSpatialStructure(modelID, includeProperties) { const chunks = await this.getSpatialTreeChunks(modelID); const allLines = await this.state.api.GetLineIDsWithType(modelID, IFCPROJECT); const projectID = allLines.get(0); const project = WebIfcPropertyManager.newIfcProject(projectID); await this.getSpatialNode(modelID, project, chunks, includeProperties); return project; } async getAllItemsOfType(modelID, type, verbose) { let items = []; const lines = await this.state.api.GetLineIDsWithType(modelID, type); for (let i = 0; i < lines.size(); i++) items.push(lines.get(i)); if (!verbose) return items; const result = []; for (let i = 0; i < items.length; i++) { result.push(await this.state.api.GetLine(modelID, items[i])); } return result; } async getProperty(modelID, elementID, recursive = false, propName) { const propSetIds = await this.getAllRelatedItemsOfType(modelID, elementID, propName); const result = []; for (let i = 0; i < propSetIds.length; i++) { result.push(await this.state.api.GetLine(modelID, propSetIds[i], recursive)); } return result; } getNodeType(modelID, id) { const typeID = this.state.models[modelID].types[id]; return this.state.api.GetNameFromTypeCode(typeID); } async getChunks(modelID, chunks, propNames) { const relation = await this.state.api.GetLineIDsWithType(modelID, propNames.name); for (let i = 0; i < relation.size(); i++) { const rel = await this.state.api.GetLine(modelID, relation.get(i), false); this.saveChunk(chunks, propNames, rel); } } async getAllRelatedItemsOfType(modelID, id, propNames) { const lines = await this.state.api.GetLineIDsWithType(modelID, propNames.name); const IDs = []; for (let i = 0; i < lines.size(); i++) { const rel = await this.state.api.GetLine(modelID, lines.get(i)); const isRelated = BasePropertyManager.isRelated(id, rel, propNames); if (isRelated) this.getRelated(rel, propNames, IDs); } return IDs; } } class JSONPropertyManager extends BasePropertyManager { async getItemProperties(modelID, id, recursive = false) { return { ...this.state.models[modelID].jsonData[id] }; } async getHeaderLine(modelID) { return {}; } async getSpatialStructure(modelID, includeProperties) { const chunks = await this.getSpatialTreeChunks(modelID); const projectsIDs = await this.getAllItemsOfType(modelID, IFCPROJECT, false); const projectID = projectsIDs[0]; const project = JSONPropertyManager.newIfcProject(projectID); await this.getSpatialNode(modelID, project, chunks, includeProperties); return { ...project }; } async getAllItemsOfType(modelID, type, verbose) { const data = this.state.models[modelID].jsonData; const typeName = await this.state.api.GetNameFromTypeCode(type); if (!typeName) { throw new Error(`Type not found: ${type}`); } return this.filterItemsByType(data, typeName, verbose); } async getProperty(modelID, elementID, recursive = false, propName) { const resultIDs = await this.getAllRelatedItemsOfType(modelID, elementID, propName); const result = this.getItemsByID(modelID, resultIDs); if (recursive) { result.forEach(result => this.getReferencesRecursively(modelID, result)); } return result; } getNodeType(modelID, id) { return this.state.models[modelID].jsonData[id].type; } async getChunks(modelID, chunks, propNames) { const relation = await this.getAllItemsOfType(modelID, propNames.name, true); relation.forEach(rel => { this.saveChunk(chunks, propNames, rel); }); } filterItemsByType(data, typeName, verbose) { const result = []; Object.keys(data).forEach(key => { const numKey = parseInt(key); if (data[numKey].type.toUpperCase() === typeName) { result.push(verbose ? { ...data[numKey] } : numKey); } }); return result; } async getAllRelatedItemsOfType(modelID, id, propNames) { const lines = await this.getAllItemsOfType(modelID, propNames.name, true); const IDs = []; lines.forEach(line => { const isRelated = JSONPropertyManager.isRelated(id, line, propNames); if (isRelated) this.getRelated(line, propNames, IDs); }); return IDs; } getItemsByID(modelID, ids) { const data = this.state.models[modelID].jsonData; const result = []; ids.forEach(id => result.push({ ...data[id] })); return result; } getReferencesRecursively(modelID, jsonObject) { if (jsonObject == undefined) return; const keys = Object.keys(jsonObject); for (let i = 0; i < keys.length; i++) { const key = keys[i]; this.getJSONItem(modelID, jsonObject, key); } } getJSONItem(modelID, jsonObject, key) { if (Array.isArray(jsonObject[key])) { return this.getMultipleJSONItems(modelID, jsonObject, key); } if (jsonObject[key] && jsonObject[key].type === 5) { jsonObject[key] = this.getItemsByID(modelID, [jsonObject[key].value])[0]; this.getReferencesRecursively(modelID, jsonObject[key]); } } getMultipleJSONItems(modelID, jsonObject, key) { jsonObject[key] = jsonObject[key].map((item) => { if (item.type === 5) { item = this.getItemsByID(modelID, [item.value])[0]; this.getReferencesRecursively(modelID, item); } return item; }); } } const geometryTypes = new Set([ 1123145078, 574549367, 1675464909, 2059837836, 3798115385, 32440307, 3125803723, 3207858831, 2740243338, 2624227202, 4240577450, 3615266464, 3724593414, 220341763, 477187591, 1878645084, 1300840506, 3303107099, 1607154358, 1878645084, 846575682, 1351298697, 2417041796, 3049322572, 3331915920, 1416205885, 776857604, 3285139300, 3958052878, 2827736869, 2732653382, 673634403, 3448662350, 4142052618, 2924175390, 803316827, 2556980723, 1809719519, 2205249479, 807026263, 3737207727, 1660063152, 2347385850, 3940055652, 2705031697, 3732776249, 2485617015, 2611217952, 1704287377, 2937912522, 2770003689, 1281925730, 1484403080, 3448662350, 4142052618, 3800577675, 4006246654, 3590301190, 1383045692, 2775532180, 2047409740, 370225590, 3593883385, 2665983363, 4124623270, 812098782, 3649129432, 987898635, 1105321065, 3510044353, 1635779807, 2603310189, 3406155212, 1310608509, 4261334040, 2736907675, 3649129432, 1136057603, 1260505505, 4182860854, 2713105998, 2898889636, 59481748, 3749851601, 3486308946, 3150382593, 1062206242, 3264961684, 15328376, 1485152156, 370225590, 1981873012, 2859738748, 45288368, 2614616156, 2732653382, 775493141, 2147822146, 2601014836, 2629017746, 1186437898, 2367409068, 1213902940, 3632507154, 3900360178, 476780140, 1472233963, 2804161546, 3008276851, 738692330, 374418227, 315944413, 3905492369, 3570813810, 2571569899, 178912537, 2294589976, 1437953363, 2133299955, 572779678, 3092502836, 388784114, 2624227202, 1425443689, 3057273783, 2347385850, 1682466193, 2519244187, 2839578677, 3958567839, 2513912981, 2830218821, 427810014 ]); class PropertySerializer { constructor(webIfc) { this.webIfc = webIfc; } dispose() { this.webIfc = null; } async serializeAllProperties(modelID, maxSize, event) { const blobs = []; await this.getPropertiesAsBlobs(modelID, blobs, maxSize, event); return blobs; } async getPropertiesAsBlobs(modelID, blobs, maxSize, event) { const geometriesIDs = await this.getAllGeometriesIDs(modelID); let properties = await this.initializePropertiesObject(modelID); const allLinesIDs = await this.webIfc.GetAllLines(modelID); const linesCount = allLinesIDs.size(); let lastEvent = 0.1; let counter = 0; for (let i = 0; i < linesCount; i++) { const id = allLinesIDs.get(i); if (!geometriesIDs.has(id)) { await this.getItemProperty(modelID, id, properties); counter++; } if (maxSize && counter > maxSize) { blobs.push(new Blob([JSON.stringify(properties)], { type: 'application/json' })); properties = {}; counter = 0; } if (event && i / linesCount > lastEvent) { event(i, linesCount); lastEvent += 0.1; } } blobs.push(new Blob([JSON.stringify(properties)], { type: 'application/json' })); } async getItemProperty(modelID, id, properties) { try { const props = await this.webIfc.GetLine(modelID, id); if (props.type) { props.type = this.webIfc.GetNameFromTypeCode(props.type); } this.formatItemProperties(props); properties[id] = props; } catch (e) { console.log(`There was a problem getting the properties of the item with ID ${id}`); } } formatItemProperties(props) { Object.keys(props).forEach((key) => { const value = props[key]; if (value && value.value !== undefined) props[key] = value.value; else if (Array.isArray(value)) props[key] = value.map((item) => { if (item && item.value) return item.value; return item; }); }); } async initializePropertiesObject(modelID) { return { coordinationMatrix: await this.webIfc.GetCoordinationMatrix(modelID), globalHeight: await this.getBuildingHeight(modelID) }; } async getBuildingHeight(modelID) { const building = await this.getBuilding(modelID); let placement; const siteReference = building.ObjectPlacement.PlacementRelTo; if (siteReference) placement = siteReference.RelativePlacement.Location; else placement = building.ObjectPlacement.RelativePlacement.Location; const transform = placement.Coordinates.map((coord) => coord.value); return transform[2]; } async getBuilding(modelID) { const allBuildingsIDs = await this.webIfc.GetLineIDsWithType(modelID, IFCBUILDING); const buildingID = allBuildingsIDs.get(0); return this.webIfc.GetLine(modelID, buildingID, true); } async getAllGeometriesIDs(modelID) { const geometriesIDs = new Set(); const geomTypesArray = Array.from(geometryTypes); for (let i = 0; i < geomTypesArray.length; i++) { const category = geomTypesArray[i]; const ids = await this.webIfc.GetLineIDsWithType(modelID, category); const idsSize = ids.size(); for (let j = 0; j < idsSize; j++) { geometriesIDs.add(ids.get(j)); } } return geometriesIDs; } } class PropertyManager { constructor(state) { this.state = state; this.webIfcProps = new WebIfcPropertyManager(state); this.jsonProps = new JSONPropertyManager(state); this.currentProps = this.webIfcProps; this.serializer = new PropertySerializer(this.state.api); } getExpressId(geometry, faceIndex) { if (!geometry.index) throw new Error('Geometry does not have index information.'); const geoIndex = geometry.index.array; const bufferAttr = geometry.attributes[IdAttrName]; return bufferAttr.getX(geoIndex[3 * faceIndex]); } async getHeaderLine(modelID, headerType) { this.updateCurrentProps(); return this.currentProps.getHeaderLine(modelID, headerType); } async getItemProperties(modelID, elementID, recursive = false) { this.updateCurrentProps(); return this.currentProps.getItemProperties(modelID, elementID, recursive); } async getAllItemsOfType(modelID, type, verbose) { this.updateCurrentProps(); return this.currentProps.getAllItemsOfType(modelID, type, verbose); } async getPropertySets(modelID, elementID, recursive = false) { this.updateCurrentProps(); return this.currentProps.getPropertySets(modelID, elementID, recursive); } async getTypeProperties(modelID, elementID, recursive = false) { this.updateCurrentProps(); return this.currentProps.getTypeProperties(modelID, elementID, recursive); } async getMaterialsProperties(modelID, elementID, recursive = false) { this.updateCurrentProps(); return this.currentProps.getMaterialsProperties(modelID, elementID, recursive); } async getSpatialStructure(modelID, includeProperties) { this.updateCurrentProps(); if (!this.state.useJSON && includeProperties) { console.warn('Including properties in getSpatialStructure with the JSON workflow disabled can lead to poor performance.'); } return await this.currentProps.getSpatialStructure(modelID, includeProperties); } updateCurrentProps() { this.currentProps = this.state.useJSON ? this.jsonProps : this.webIfcProps; } } class PropertyWorker { constructor(worker) { this.worker = worker; this.API = WorkerAPIs.properties; } initializeProperties() { if (!this.properties) { if (!this.worker.state) throw new Error(ErrorRootStateNotAvailable); this.properties = new PropertyManager(this.worker.state); } } async getHeaderLine(data) { this.initializeProperties(); if (!this.properties) throw new Error(ErrorPropertiesNotAvailable); const args = data.args; data.result = await this.properties.getHeaderLine(args.modelID, args.headerType); this.worker.post(data); } async getAllItemsOfType(data) { this.initializeProperties(); if (!this.properties) throw new Error(ErrorPropertiesNotAvailable); const args = data.args; data.result = await this.properties.getAllItemsOfType(args.modelID, args.type, args.verbose); this.worker.post(data); } async getItemProperties(data) { this.initializeProperties(); if (!this.properties) throw new Error(ErrorPropertiesNotAvailable); const args = data.args; data.result = await this.properties.getItemProperties(args.modelID, args.elementID, args.recursive); this.worker.post(data); } async getMaterialsProperties(data) { this.initializeProperties(); if (!this.properties) throw new Error(ErrorPropertiesNotAvailable); const args = data.args; data.result = await this.properties.getMaterialsProperties(args.modelID, args.elementID, args.recursive); this.worker.post(data); } async getPropertySets(data) { this.initializeProperties(); if (!this.properties) throw new Error(ErrorPropertiesNotAvailable); const args = data.args; data.result = await this.properties.getPropertySets(args.modelID, args.elementID, args.recursive); this.worker.post(data); } async getSpatialStructure(data) { this.initializeProperties(); if (!this.properties) throw new Error(ErrorPropertiesNotAvailable); const args = data.args; data.result = await this.properties.getSpatialStructure(args.modelID, args.includeProperties); this.worker.post(data); } async getTypeProperties(data) { this.initializeProperties(); if (!this.properties) throw new Error(ErrorPropertiesNotAvailable); const args = data.args; data.result = await this.properties.getTypeProperties(args.modelID, args.elementID, args.recursive); this.worker.post(data); } } class MemoryCleaner { constructor(state) { this.state = state; } async dispose() { Object.keys(this.state.models).forEach(modelID => { const model = this.state.models[parseInt(modelID, 10)]; model.mesh.removeFromParent(); const geom = model.mesh.geometry; if (geom.disposeBoundsTree) geom.disposeBoundsTree(); geom.dispose(); if (!Array.isArray(model.mesh.material)) model.mesh.material.dispose(); else model.mesh.material.forEach(mat => mat.dispose()); model.mesh = null; model.types = null; model.jsonData = null; }); this.state.api = null; this.state.models = null; } } class StateWorker { constructor(worker) { this.worker = worker; this.API = WorkerAPIs.workerState; } updateStateUseJson(data) { if (!this.worker.state) throw new Error(ErrorRootStateNotAvailable); this.worker.state.useJSON = data.args.useJson; this.worker.post(data); } updateStateWebIfcSettings(data) { if (!this.worker.state) throw new Error(ErrorRootStateNotAvailable); this.worker.state.webIfcSettings = data.args.webIfcSettings; this.worker.post(data); } updateModelStateJsonData(data) { if (!this.worker.state) throw new Error(ErrorRootStateNotAvailable); const model = this.getModel(data); model.jsonData = data.args.jsonData; this.worker.post(data); } updateModelStateTypes(data) { if (!this.worker.state) throw new Error(ErrorRootStateNotAvailable); const model = this.getModel(data); model.types = data.args.types; this.worker.post(data); } async dispose(data) { if (!this.worker.state) throw new Error("Error: no state was found in the worker"); if (!this.cleaner) this.cleaner = new MemoryCleaner(this.worker.state); await this.cleaner.dispose(); this.worker.post(data); } async loadJsonDataFromWorker(data) { if (!this.worker.state) throw new Error(ErrorRootStateNotAvailable); const currentModel = this.getModel(data); const file = await fetch(data.args.path); if (!file.ok) throw new Error(ErrorBadJsonPath); const json = await file.json(); if (typeof json !== 'object') throw new Error(ErrorBadJson); currentModel.jsonData = json; this.worker.post(data); } getModel(data) { if (!this.worker.state) throw new Error(ErrorRootStateNotAvailable); const modelID = data.args.modelID; if (!this.worker.state.models[modelID]) { this.worker.state.models[modelID] = { modelID, mesh: {}, types: {}, jsonData: {} }; } return this.worker.state.models[modelID]; } } /** * @param {Array} geometries * @param {Boolean} useGroups * @return {BufferGeometry} */ function mergeBufferGeometries( geometries, useGroups = false ) { const isIndexed = geometries[ 0 ].index !== null; const attributesUsed = new Set( Object.keys( geometries[ 0 ].attributes ) ); const morphAttributesUsed = new Set( Object.keys( geometries[ 0 ].morphAttributes ) ); const attributes = {}; const morphAttributes = {}; const morphTargetsRelative = geometries[ 0 ].morphTargetsRelative; const mergedGeometry = new BufferGeometry(); let offset = 0; for ( let i = 0; i < geometries.length; ++ i ) { const geometry = geometries[ i ]; let attributesCount = 0; // ensure that all geometries are indexed, or none if ( isIndexed !== ( geometry.index !== null ) ) { console.error( 'THREE.BufferGeometryUtils: .mergeBufferGeometries() failed with geometry at index ' + i + '. All geometries must have compatible attributes; make sure index attribute exists among all geometries, or in none of them.' ); return null; } // gather attributes, exit early if they're different for ( const name in geometry.attributes ) { if ( ! attributesUsed.has( name ) ) { console.error( 'THREE.BufferGeometryUtils: .mergeBufferGeometries() failed with geometry at index ' + i + '. All geometries must have compatible attributes; make sure "' + name + '" attribute exists among all geometries, or in none of them.' ); return null; } if ( attributes[ name ] === undefined ) attributes[ name ] = []; attributes[ name ].push( geometry.attributes[ name ] ); attributesCount ++; } // ensure geometries have the same number of attributes if ( attributesCount !== attributesUsed.size ) { console.error( 'THREE.BufferGeometryUtils: .mergeBufferGeometries() failed with geometry at index ' + i + '. Make sure all geometries have the same number of attributes.' ); return null; } // gather morph attributes, exit early if they're different if ( morphTargetsRelative !== geometry.morphTargetsRelative ) { console.error( 'THREE.BufferGeometryUtils: .mergeBufferGeometries() failed with geometry at index ' + i + '. .morphTargetsRelative must be consistent throughout all geometries.' ); return null; } for ( const name in geometry.morphAttributes ) { if ( ! morphAttributesUsed.has( name ) ) { console.error( 'THREE.BufferGeometryUtils: .mergeBufferGeometries() failed with geometry at index ' + i + '. .morphAttributes must be consistent throughout all geometries.' ); return null; } if ( morphAttributes[ name ] === undefined ) morphAttributes[ name ] = []; morphAttributes[ name ].push( geometry.morphAttributes[ name ] ); } if ( useGroups ) { let count; if ( isIndexed ) { count = geometry.index.count; } else if ( geometry.attributes.position !== undefined ) { count = geometry.attributes.position.count; } else { console.error( 'THREE.BufferGeometryUtils: .mergeBufferGeometries() failed with geometry at index ' + i + '. The geometry must have either an index or a position attribute' ); return null; } mergedGeometry.addGroup( offset, count, i ); offset += count; } } // merge indices if ( isIndexed ) { let indexOffset = 0; const mergedIndex = []; for ( let i = 0; i < geometries.length; ++ i ) { const index = geometries[ i ].index; for ( let j = 0; j < index.count; ++ j ) { mergedIndex.push( index.getX( j ) + indexOffset ); } indexOffset += geometries[ i ].attributes.position.count; } mergedGeometry.setIndex( mergedIndex ); } // merge attributes for ( const name in attributes ) { const mergedAttribute = mergeBufferAttributes( attributes[ name ] ); if ( ! mergedAttribute ) { console.error( 'THREE.BufferGeometryUtils: .mergeBufferGeometries() failed while trying to merge the ' + name + ' attribute.' ); return null; } mergedGeometry.setAttribute( name, mergedAttribute ); } // merge morph attributes for ( const name in morphAttributes ) { const numMorphTargets = morphAttributes[ name ][ 0 ].length; if ( numMorphTargets === 0 ) break; mergedGeometry.morphAttributes = mergedGeometry.morphAttributes || {}; mergedGeometry.morphAttributes[ name ] = []; for ( let i = 0; i < numMorphTargets; ++ i ) { const morphAttributesToMerge = []; for ( let j = 0; j < morphAttributes[ name ].length; ++ j ) { morphAttributesToMerge.push( morphAttributes[ name ][ j ][ i ] ); } const mergedMorphAttribute = mergeBufferAttributes( morphAttributesToMerge ); if ( ! mergedMorphAttribute ) { console.error( 'THREE.BufferGeometryUtils: .mergeBufferGeometries() failed while trying to merge the ' + name + ' morphAttribute.' ); return null; } mergedGeometry.morphAttributes[ name ].push( mergedMorphAttribute ); } } return mergedGeometry; } /** * @param {Array} attributes * @return {BufferAttribute} */ function mergeBufferAttributes( attributes ) { let TypedArray; let itemSize; let normalized; let arrayLength = 0; for ( let i = 0; i < attributes.length; ++ i ) { const attribute = attributes[ i ]; if ( attribute.isInterleavedBufferAttribute ) { console.error( 'THREE.BufferGeometryUtils: .mergeBufferAttributes() failed. InterleavedBufferAttributes are not supported.' ); return null; } if ( TypedArray === undefined ) TypedArray = attribute.array.constructor; if ( TypedArray !== attribute.array.constructor ) { console.error( 'THREE.BufferGeometryUtils: .mergeBufferAttributes() failed. BufferAttribute.array must be of consistent array types across matching attributes.' ); return null; } if ( itemSize === undefined ) itemSize = attribute.itemSize; if ( itemSize !== attribute.itemSize ) { console.error( 'THREE.BufferGeometryUtils: .mergeBufferAttributes() failed. BufferAttribute.itemSize must be consistent across matching attributes.' ); return null; } if ( normalized === undefined ) normalized = attribute.normalized; if ( normalized !== attribute.normalized ) { console.error( 'THREE.BufferGeometryUtils: .mergeBufferAttributes() failed. BufferAttribute.normalized must be consistent across matching attributes.' ); return null; } arrayLength += attribute.array.length; } const array = new TypedArray( arrayLength ); let offset = 0; for ( let i = 0; i < attributes.length; ++ i ) { array.set( attributes[ i ].array, offset ); offset += attributes[ i ].array.length; } return new BufferAttribute( array, itemSize, normalized ); } class IFCParser { constructor(state, BVH) { this.state = state; this.BVH = BVH; this.loadedModels = 0; this.optionalCategories = { [IFCSPACE]: true, [IFCOPENINGELEMENT]: false }; this.geometriesByMaterials = {}; this.loadingState = { total: 0, current: 0, step: 0.1 }; this.currentWebIfcID = -1; this.currentModelID = -1; } async setupOptionalCategories(config) { this.optionalCategories = config; } async parse(buffer, coordinationMatrix) { if (this.state.api.wasmModule === undefined) await this.state.api.Init(); await this.newIfcModel(buffer); this.loadedModels++; if (coordinationMatrix) { await this.state.api.SetGeometryTransformation(this.currentWebIfcID, coordinationMatrix); } return this.loadAllGeometry(this.currentWebIfcID); } getAndClearErrors(_modelId) { } notifyProgress(loaded, total) { if (this.state.onProgress) this.state.onProgress({ loaded, total }); } async newIfcModel(buffer) { const data = new Uint8Array(buffer); this.currentWebIfcID = await this.state.api.OpenModel(data, this.state.webIfcSettings); this.currentModelID = this.state.useJSON ? this.loadedModels : this.currentWebIfcID; this.state.models[this.currentModelID] = { modelID: this.currentModelID, mesh: {}, types: {}, jsonData: {} }; } async loadAllGeometry(modelID) { this.addOptionalCategories(modelID); await this.initializeLoadingState(modelID); this.state.api.StreamAllMeshes(modelID, (mesh) => { this.updateLoadingState(); this.streamMesh(modelID, mesh); }); this.notifyLoadingEnded(); const geometries = []; const materials = []; Object.keys(this.geometriesByMaterials).forEach((key) => { const geometriesByMaterial = this.geometriesByMaterials[key].geometries; const merged = mergeBufferGeometries(geometriesByMaterial); materials.push(this.geometriesByMaterials[key].material); geometries.push(merged); }); const combinedGeometry = mergeBufferGeometries(geometries, true); this.cleanUpGeometryMemory(geometries); if (this.BVH) this.BVH.applyThreeMeshBVH(combinedGeometry); const model = new IFCModel(combinedGeometry, materials); this.state.models[this.currentModelID].mesh = model; return model; } async initializeLoadingState(modelID) { const shapes = await this.state.api.GetLineIDsWithType(modelID, IFCPRODUCTDEFINITIONSHAPE); this.loadingState.total = shapes.size(); this.loadingState.current = 0; this.loadingState.step = 0.1; } notifyLoadingEnded() { this.notifyProgress(this.loadingState.total, this.loadingState.total); } updateLoadingState() { const realCurrentItem = Math.min(this.loadingState.current++, this.loadingState.total); if (realCurrentItem / this.loadingState.total >= this.loadingState.step) { const currentProgress = Math.ceil(this.loadingState.total * this.loadingState.step); this.notifyProgress(currentProgress, this.loadingState.total); this.loadingState.step += 0.1; } } addOptionalCategories(modelID) { const optionalTypes = []; for (let key in this.optionalCategories) { if (this.optionalCategories.hasOwnProperty(key)) { const category = parseInt(key); if (this.optionalCategories[category]) optionalTypes.push(category); } } this.state.api.StreamAllMeshesWithTypes(this.currentWebIfcID, optionalTypes, (mesh) => { this.streamMesh(modelID, mesh); }); } streamMesh(modelID, mesh) { const placedGeometries = mesh.geometries; const size = placedGeometries.size(); for (let i = 0; i < size; i++) { const placedGeometry = placedGeometries.get(i); let itemMesh = this.getPlacedGeometry(modelID, mesh.expressID, placedGeometry); let geom = itemMesh.geometry.applyMatrix4(itemMesh.matrix); this.storeGeometryByMaterial(placedGeometry.color, geom); } } getPlacedGeometry(modelID, expressID, placedGeometry) { const geometry = this.getBufferGeometry(modelID, expressID, placedGeometry); const mesh = new Mesh(geometry); mesh.matrix = this.getMeshMatrix(placedGeometry.flatTransformation); mesh.matrixAutoUpdate = false; return mesh; } getBufferGeometry(modelID, expressID, placedGeometry) { const geometry = this.state.api.GetGeometry(modelID, placedGeometry.geometryExpressID); const verts = this.state.api.GetVertexArray(geometry.GetVertexData(), geometry.GetVertexDataSize()); const indices = this.state.api.GetIndexArray(geometry.GetIndexData(), geometry.GetIndexDataSize()); const buffer = this.ifcGeometryToBuffer(expressID, verts, indices); geometry.delete(); return buffer; } storeGeometryByMaterial(color, geometry) { let colID = `${color.x}${color.y}${color.z}${color.w}`; if (this.geometriesByMaterials[colID]) { this.geometriesByMaterials[colID].geometries.push(geometry); return; } const col = new Color().setRGB(color.x, color.y, color.z, 'srgb'); const material = new MeshLambertMaterial({ color: col, side: DoubleSide }); material.transparent = color.w !== 1; if (material.transparent) material.opacity = color.w; this.geometriesByMaterials[colID] = { material, geometries: [geometry] }; } getMeshMatrix(matrix) { const mat = new Matrix4(); mat.fromArray(matrix); return mat; } ifcGeometryToBuffer(expressID, vertexData, indexData) { const geometry = new BufferGeometry(); const posFloats = new Float32Array(vertexData.length / 2); const normFloats = new Float32Array(vertexData.length / 2); const idAttribute = new Uint32Array(vertexData.length / 6); for (let i = 0; i < vertexData.length; i += 6) { posFloats[i / 2] = vertexData[i]; posFloats[i / 2 + 1] = vertexData[i + 1]; posFloats[i / 2 + 2] = vertexData[i + 2]; normFloats[i / 2] = vertexData[i + 3]; normFloats[i / 2 + 1] = vertexData[i + 4]; normFloats[i / 2 + 2] = vertexData[i + 5]; idAttribute[i / 6] = expressID; } geometry.setAttribute('position', new BufferAttribute(posFloats, 3)); geometry.setAttribute('normal', new BufferAttribute(normFloats, 3)); geometry.setAttribute('expressID', new BufferAttribute(idAttribute, 1)); geometry.setIndex(new BufferAttribute(indexData, 1)); return geometry; } cleanUpGeometryMemory(geometries) { geometries.forEach(geometry => geometry.dispose()); Object.keys(this.geometriesByMaterials).forEach((materialID) => { const geometriesByMaterial = this.geometriesByMaterials[materialID]; geometriesByMaterial.geometries.forEach(geometry => geometry.dispose()); geometriesByMaterial.geometries = []; geometriesByMaterial.material = null; }); this.geometriesByMaterials = {}; } } var DBOperation; (function (DBOperation) { DBOperation[DBOperation["transferIfcModel"] = 0] = "transferIfcModel"; DBOperation[DBOperation["transferIndividualItems"] = 1] = "transferIndividualItems"; })(DBOperation || (DBOperation = {})); class IndexedDatabase { async save(item, id) { const open = IndexedDatabase.openOrCreateDB(id); this.createSchema(open, id); return new Promise((resolve, reject) => { open.onsuccess = () => this.saveItem(item, open, id, resolve); }); } async load(id) { const open = IndexedDatabase.openOrCreateDB(id); return new Promise((resolve, reject) => { open.onsuccess = () => this.loadItem(open, id, resolve); }); } createSchema(open, id) { open.onupgradeneeded = function () { const db = open.result; db.createObjectStore(id.toString(), { keyPath: "id" }); }; } saveItem(item, open, id, resolve) { const { db, tx, store } = IndexedDatabase.getDBItems(open, id); item.id = id; store.put(item); tx.oncomplete = () => IndexedDatabase.closeDB(db, tx, resolve); } loadItem(open, id, resolve) { const { db, tx, store } = IndexedDatabase.getDBItems(open, id); const item = store.get(id); const callback = () => { delete item.result.id; resolve(item.result); }; tx.oncomplete = () => IndexedDatabase.closeDB(db, tx, callback); } static getDBItems(open, id) { const db = open.result; const tx = db.transaction(id.toString(), "readwrite"); const store = tx.objectStore(id.toString()); return { db, tx, store }; } static openOrCreateDB(id) { return indexedDB.open(id.toString(), 1); } static closeDB(db, tx, resolve) { db.close(); resolve("success"); } } class ParserWorker { constructor(worker, serializer, IDB) { this.worker = worker; this.serializer = serializer; this.IDB = IDB; this.API = WorkerAPIs.parser; } initializeParser() { if (!this.parser) { if (!this.worker.state) throw new Error(ErrorRootStateNotAvailable); this.parser = new IFCParser(this.worker.state); } } setupOptionalCategories(data) { this.initializeParser(); if (this.parser === undefined) throw new Error(ErrorParserNotAvailable); this.parser.setupOptionalCategories(data.args.config); this.worker.post(data); } async parse(data) { this.initializeParser(); if (this.parser === undefined) throw new Error(ErrorParserNotAvailable); if (this.worker.state) this.worker.state.onProgress = (event) => this.onProgress(event, data); const serializedIfcModel = await this.getResponse(data); await this.IDB.save(serializedIfcModel, DBOperation.transferIfcModel); this.worker.post(data); } onProgress(event, data) { this.worker.post({ ...data, onProgress: true, result: event }); } async getResponse(data) { if (!this.parser) throw new Error(ErrorParserNotAvailable); const ifcModel = await this.parser.parse(data.args.buffer, data.args.coordinationMatrix); const serializedIfcModel = this.serializer.serializeIfcModel(ifcModel); this.cleanUpGeometries(ifcModel); data.result = { modelID: ifcModel.modelID }; return serializedIfcModel; } cleanUpGeometries(model) { model.geometry.dispose(); if (Array.isArray(model.material)) model.material.forEach(mat => mat.dispose()); else model.material.dispose(); } } class IFCWorker { constructor() { this.serializer = new Serializer(); this.IDB = new IndexedDatabase(); this.workerState = new StateWorker(this); this.webIfc = new WebIfcWorker(this, this.serializer); this.properties = new PropertyWorker(this); this.parser = new ParserWorker(this, this.serializer, this.IDB); } initializeAPI(api) { this.state = { models: [], api, useJSON: false, worker: { active: false, path: '' } }; } post(data) { self.postMessage(data); } postCallback(data, result, serializer) { data.result = serializer ? serializer(result) : result; this.post(data); } } const ifcWorker = new IFCWorker(); self.onmessage = async (event) => { const data = event.data; const { worker, action } = data; checkRequestIsValid(worker, action); const requestedWorker = ifcWorker[worker]; requestedWorker[action](data); }; function checkRequestIsValid(worker, action) { if (!ifcWorker[worker]) { throw new Error(`The worker ${worker} does not exist.`); } const requestedWorker = ifcWorker[worker]; if (!requestedWorker[action]) { throw new Error(`The action ${action} does not exist in the worker ${worker}.`); } } //# sourceMappingURL=IFCWorker.js.map ================================================ FILE: packages/sdk/public/resource/luts/Bourbon 64.CUBE ================================================ #Created by: Adobe Photoshop Export Color Lookup Plugin #Copyright: (C) Copyright 2017 RocketStock TITLE "Warm" #LUT size LUT_3D_SIZE 32 #data domain DOMAIN_MIN 0.0 0.0 0.0 DOMAIN_MAX 1.0 1.0 1.0 #LUT data points 0.038818 0.000000 0.065033 0.060364 0.000610 0.064850 0.082916 0.001251 0.064636 0.106476 0.001923 0.064484 0.131226 0.002625 0.064270 0.157196 0.003326 0.063995 0.184662 0.004120 0.063812 0.213654 0.004883 0.063538 0.244507 0.005676 0.063232 0.277344 0.006561 0.062897 0.312256 0.007416 0.062592 0.349243 0.008331 0.062256 0.388153 0.009247 0.061920 0.428619 0.010193 0.061554 0.470520 0.011200 0.061157 0.513611 0.012177 0.060791 0.557220 0.013214 0.060364 0.599731 0.014252 0.059998 0.640564 0.015320 0.059540 0.679230 0.016449 0.059082 0.715546 0.017548 0.058624 0.749054 0.018707 0.058197 0.779694 0.019867 0.057709 0.807495 0.021088 0.057220 0.832703 0.022247 0.056763 0.855652 0.023468 0.056274 0.876495 0.024780 0.055756 0.895508 0.026001 0.055237 0.912781 0.027313 0.054718 0.928528 0.028595 0.054230 0.942902 0.029938 0.053711 0.955872 0.031281 0.053162 0.040009 0.020721 0.064636 0.061707 0.021454 0.064484 0.084320 0.022125 0.064301 0.108063 0.022919 0.064026 0.132904 0.023682 0.063812 0.159088 0.024536 0.063538 0.186707 0.025330 0.063263 0.215942 0.026245 0.062927 0.246979 0.027161 0.062622 0.280060 0.028076 0.062256 0.315247 0.029022 0.061920 0.352417 0.030029 0.061554 0.391541 0.031036 0.061157 0.432251 0.032074 0.060791 0.474365 0.033142 0.060364 0.517517 0.034210 0.060028 0.561279 0.035339 0.059570 0.603729 0.036499 0.059082 0.644348 0.037628 0.058655 0.682953 0.038849 0.058228 0.719025 0.040070 0.057709 0.752319 0.041260 0.057251 0.782715 0.042511 0.056793 0.810272 0.043823 0.056274 0.835266 0.045105 0.055786 0.858002 0.046448 0.055267 0.878693 0.047791 0.054718 0.897522 0.049133 0.054230 0.914673 0.050507 0.053711 0.930237 0.051910 0.053162 0.944458 0.053314 0.052673 0.957306 0.054749 0.052094 0.041290 0.042450 0.064301 0.063141 0.043243 0.064026 0.085876 0.044037 0.063812 0.109711 0.044891 0.063538 0.134735 0.045776 0.063263 0.161072 0.046661 0.062927 0.188904 0.047638 0.062622 0.218323 0.048584 0.062286 0.249573 0.049591 0.061951 0.282867 0.050629 0.061554 0.318298 0.051666 0.061188 0.355774 0.052734 0.060822 0.395172 0.053833 0.060394 0.436035 0.054962 0.060028 0.478363 0.056152 0.059570 0.521759 0.057281 0.059113 0.565491 0.058502 0.058655 0.607849 0.059753 0.058228 0.648438 0.061005 0.057739 0.686737 0.062286 0.057251 0.722656 0.063629 0.056793 0.755707 0.064941 0.056305 0.785797 0.066284 0.055786 0.813141 0.067688 0.055267 0.837891 0.069061 0.054749 0.860413 0.070465 0.054260 0.880890 0.071899 0.053741 0.899506 0.073364 0.053162 0.916534 0.074860 0.052673 0.931976 0.076355 0.052124 0.945984 0.077820 0.051605 0.958710 0.079376 0.051056 0.042725 0.065186 0.063812 0.064636 0.066101 0.063538 0.087555 0.066986 0.063263 0.111511 0.067932 0.062958 0.136719 0.068878 0.062653 0.163208 0.069885 0.062317 0.191193 0.070923 0.061951 0.220825 0.072021 0.061584 0.252380 0.073120 0.061188 0.285950 0.074249 0.060822 0.321655 0.075378 0.060394 0.359314 0.076569 0.060028 0.398895 0.077759 0.059570 0.440002 0.078979 0.059143 0.482513 0.080261 0.058685 0.526031 0.081512 0.058258 0.569794 0.082855 0.057770 0.612122 0.084198 0.057281 0.652466 0.085541 0.056824 0.690674 0.086945 0.056305 0.726318 0.088379 0.055817 0.759094 0.089752 0.055298 0.788910 0.091248 0.054749 0.815979 0.092712 0.054260 0.840515 0.094177 0.053772 0.862823 0.095703 0.053192 0.883087 0.097229 0.052704 0.901581 0.098816 0.052124 0.918396 0.100403 0.051605 0.933716 0.101990 0.051086 0.947601 0.103607 0.050507 0.960175 0.105255 0.049957 0.044312 0.089050 0.063263 0.066284 0.090057 0.062958 0.089355 0.091064 0.062653 0.113495 0.092133 0.062317 0.138824 0.093201 0.061981 0.165497 0.094299 0.061584 0.193695 0.095459 0.061218 0.223541 0.096619 0.060852 0.255249 0.097839 0.060425 0.289154 0.099091 0.060059 0.325043 0.100311 0.059601 0.363037 0.101624 0.059143 0.402771 0.102905 0.058716 0.444183 0.104248 0.058258 0.486908 0.105652 0.057770 0.530548 0.106995 0.057312 0.574219 0.108459 0.056824 0.616425 0.109924 0.056305 0.656677 0.111359 0.055847 0.694702 0.112854 0.055328 0.730072 0.114380 0.054749 0.762543 0.115906 0.054291 0.792084 0.117493 0.053772 0.818878 0.119080 0.053223 0.843170 0.120667 0.052704 0.865265 0.122345 0.052124 0.885315 0.123962 0.051636 0.903625 0.125641 0.051086 0.920288 0.127350 0.050537 0.935425 0.129028 0.049988 0.949188 0.130798 0.049408 0.961609 0.132538 0.048920 0.045929 0.114288 0.062653 0.068085 0.115326 0.062347 0.091309 0.116455 0.061981 0.115540 0.117615 0.061615 0.141022 0.118805 0.061218 0.167908 0.120026 0.060852 0.196289 0.121307 0.060425 0.226349 0.122589 0.060059 0.258362 0.123932 0.059631 0.292450 0.125275 0.059174 0.328644 0.126648 0.058716 0.366882 0.128021 0.058258 0.406891 0.129456 0.057800 0.448486 0.130920 0.057312 0.491364 0.132416 0.056824 0.535217 0.133911 0.056335 0.578796 0.135468 0.055847 0.620911 0.137054 0.055328 0.660980 0.138611 0.054779 0.698700 0.140228 0.054321 0.733856 0.141876 0.053772 0.766022 0.143524 0.053223 0.795319 0.145233 0.052704 0.821808 0.146912 0.052155 0.845886 0.148682 0.051666 0.867737 0.150421 0.051117 0.887604 0.152191 0.050568 0.905701 0.153992 0.050018 0.922180 0.155853 0.049438 0.937134 0.157654 0.048920 0.950745 0.159485 0.048370 0.963043 0.161407 0.047821 0.047729 0.140839 0.061981 0.069977 0.142029 0.061615 0.093323 0.143250 0.061249 0.117737 0.144562 0.060883 0.143341 0.145874 0.060455 0.170441 0.147217 0.060089 0.199005 0.148621 0.059631 0.229340 0.150024 0.059174 0.261536 0.151459 0.058746 0.295898 0.152924 0.058289 0.332428 0.154419 0.057831 0.370880 0.156006 0.057343 0.411102 0.157532 0.056854 0.452911 0.159149 0.056366 0.496063 0.160736 0.055847 0.539978 0.162354 0.055359 0.583527 0.164062 0.054810 0.625458 0.165802 0.054321 0.665314 0.167450 0.053802 0.702850 0.169220 0.053253 0.737640 0.170990 0.052734 0.769531 0.172791 0.052185 0.798523 0.174652 0.051666 0.824738 0.176422 0.051147 0.848572 0.178345 0.050568 0.870209 0.180237 0.050018 0.889862 0.182129 0.049469 0.907806 0.184082 0.048920 0.924072 0.186035 0.048370 0.938904 0.187988 0.047852 0.952332 0.189972 0.047302 0.964447 0.191986 0.046753 0.049591 0.168976 0.061249 0.071991 0.170319 0.060883 0.095428 0.171692 0.060486 0.120026 0.173126 0.060089 0.145844 0.174591 0.059662 0.173065 0.176056 0.059204 0.201904 0.177582 0.058746 0.232391 0.179108 0.058289 0.264893 0.180695 0.057831 0.299561 0.182281 0.057373 0.336334 0.183960 0.056885 0.375092 0.185638 0.056366 0.415497 0.187317 0.055878 0.457581 0.189087 0.055389 0.500824 0.190857 0.054810 0.544861 0.192596 0.054352 0.588318 0.194458 0.053802 0.630127 0.196289 0.053253 0.669739 0.198120 0.052734 0.707062 0.200043 0.052185 0.741486 0.201935 0.051697 0.773102 0.203918 0.051147 0.801788 0.205872 0.050598 0.827698 0.207855 0.050049 0.851257 0.209930 0.049500 0.872711 0.211945 0.048950 0.892120 0.213959 0.048401 0.909882 0.216125 0.047882 0.925995 0.218201 0.047302 0.940643 0.220276 0.046753 0.953918 0.222443 0.046265 0.965881 0.224579 0.045715 0.051544 0.198914 0.060486 0.074066 0.200378 0.060120 0.097687 0.201904 0.059662 0.122437 0.203491 0.059204 0.148407 0.205109 0.058777 0.175842 0.206757 0.058319 0.204865 0.208374 0.057861 0.235626 0.210083 0.057373 0.268402 0.211823 0.056885 0.303314 0.213562 0.056396 0.340363 0.215393 0.055878 0.379364 0.217255 0.055389 0.420044 0.219055 0.054840 0.462311 0.220947 0.054382 0.505737 0.222900 0.053833 0.549805 0.224792 0.053284 0.593201 0.226837 0.052734 0.634796 0.228851 0.052216 0.674194 0.230835 0.051727 0.711212 0.232910 0.051147 0.745392 0.234955 0.050629 0.776703 0.237122 0.050049 0.805054 0.239258 0.049500 0.830688 0.241364 0.048981 0.854004 0.243591 0.048431 0.875183 0.245789 0.047882 0.894409 0.248016 0.047333 0.911926 0.250275 0.046783 0.927887 0.252563 0.046265 0.942352 0.254822 0.045715 0.955475 0.257141 0.045166 0.967285 0.259430 0.044647 0.053589 0.230835 0.059662 0.076324 0.232483 0.059235 0.100037 0.234192 0.058807 0.124939 0.235931 0.058319 0.151123 0.237671 0.057861 0.178741 0.239471 0.057404 0.207947 0.241302 0.056915 0.238983 0.243164 0.056427 0.272003 0.245087 0.055908 0.307190 0.246979 0.055389 0.344543 0.248962 0.054871 0.383820 0.251007 0.054382 0.424744 0.252991 0.053833 0.467163 0.255066 0.053314 0.510773 0.257172 0.052765 0.554932 0.259308 0.052246 0.598175 0.261475 0.051727 0.639496 0.263611 0.051147 0.678741 0.265839 0.050629 0.715454 0.268097 0.050079 0.749359 0.270325 0.049530 0.780273 0.272644 0.048981 0.808289 0.274963 0.048431 0.833649 0.277252 0.047913 0.856689 0.279663 0.047333 0.877686 0.282104 0.046783 0.896667 0.284454 0.046295 0.914001 0.286957 0.045715 0.929779 0.289307 0.045197 0.944092 0.291779 0.044647 0.957031 0.294342 0.044128 0.968689 0.296814 0.043640 0.055756 0.265015 0.058807 0.078583 0.266815 0.058319 0.102509 0.268707 0.057861 0.127533 0.270599 0.057434 0.153900 0.272491 0.056915 0.181732 0.274567 0.056427 0.211151 0.276550 0.055939 0.242462 0.278595 0.055420 0.275787 0.280731 0.054871 0.311279 0.282776 0.054382 0.348846 0.285004 0.053864 0.388367 0.287231 0.053314 0.429504 0.289398 0.052795 0.472137 0.291687 0.052246 0.515808 0.293945 0.051758 0.560089 0.296295 0.051178 0.603119 0.298615 0.050659 0.644287 0.300964 0.050110 0.683319 0.303375 0.049561 0.719696 0.305847 0.049011 0.753265 0.308228 0.048462 0.783875 0.310730 0.047913 0.811584 0.313293 0.047333 0.836639 0.315765 0.046814 0.859436 0.318298 0.046326 0.880127 0.320892 0.045746 0.898926 0.323456 0.045227 0.916077 0.326080 0.044647 0.931641 0.328674 0.044159 0.945801 0.331329 0.043640 0.958557 0.334015 0.043091 0.970062 0.336639 0.042603 0.058014 0.301666 0.057892 0.080963 0.303650 0.057434 0.105042 0.305725 0.056946 0.130219 0.307800 0.056458 0.156799 0.309967 0.055939 0.184845 0.312164 0.055420 0.214508 0.314331 0.054901 0.246002 0.316589 0.054413 0.279663 0.318909 0.053864 0.315430 0.321136 0.053345 0.353271 0.323578 0.052795 0.393005 0.325958 0.052277 0.434387 0.328308 0.051758 0.477203 0.330750 0.051178 0.521088 0.333221 0.050690 0.565247 0.335724 0.050110 0.608185 0.338318 0.049591 0.649109 0.340790 0.049042 0.687866 0.343414 0.048462 0.723969 0.346039 0.047913 0.757172 0.348602 0.047363 0.787415 0.351288 0.046844 0.814819 0.354004 0.046326 0.839569 0.356628 0.045776 0.862122 0.359375 0.045227 0.882568 0.362061 0.044678 0.901184 0.364807 0.044159 0.918121 0.367615 0.043671 0.933502 0.370331 0.043091 0.947479 0.373199 0.042633 0.960114 0.376007 0.042114 0.971466 0.378815 0.041595 0.060303 0.340729 0.056976 0.083435 0.342957 0.056488 0.107635 0.345215 0.055969 0.132996 0.347473 0.055450 0.159760 0.349792 0.054932 0.188049 0.352203 0.054413 0.217926 0.354523 0.053894 0.249725 0.356995 0.053375 0.283630 0.359467 0.052826 0.319641 0.361908 0.052307 0.357788 0.364441 0.051788 0.397736 0.367004 0.051208 0.439392 0.369598 0.050690 0.482422 0.372253 0.050110 0.526367 0.374817 0.049622 0.570557 0.377533 0.049072 0.613281 0.380249 0.048492 0.653992 0.382935 0.047943 0.692444 0.385681 0.047363 0.728241 0.388489 0.046875 0.761078 0.391235 0.046326 0.790985 0.394073 0.045776 0.818054 0.396942 0.045258 0.842529 0.399750 0.044678 0.864807 0.402588 0.044189 0.885010 0.405457 0.043701 0.903412 0.408356 0.043121 0.920166 0.411285 0.042633 0.935333 0.414154 0.042114 0.949158 0.417114 0.041626 0.961609 0.420135 0.041107 0.972809 0.422943 0.040649 0.062744 0.382050 0.056000 0.085999 0.384491 0.055481 0.110382 0.386932 0.054932 0.135925 0.389343 0.054443 0.162872 0.391876 0.053925 0.191315 0.394440 0.053375 0.221466 0.396973 0.052856 0.253540 0.399597 0.052338 0.287720 0.402222 0.051788 0.324036 0.404816 0.051239 0.362427 0.407562 0.050690 0.402649 0.410217 0.050140 0.444519 0.412994 0.049622 0.487671 0.415771 0.049072 0.531799 0.418579 0.048523 0.575806 0.421387 0.047974 0.618378 0.424255 0.047394 0.658905 0.427094 0.046906 0.697083 0.430023 0.046356 0.732513 0.432922 0.045776 0.765015 0.435822 0.045288 0.794525 0.438782 0.044678 0.821228 0.441711 0.044220 0.845459 0.444733 0.043732 0.867462 0.447693 0.043152 0.887421 0.450653 0.042633 0.905609 0.453705 0.042145 0.922180 0.456757 0.041656 0.937164 0.459747 0.041138 0.950806 0.462799 0.040649 0.963104 0.465820 0.040192 0.974121 0.468903 0.039734 0.065216 0.425537 0.054962 0.088623 0.428040 0.054474 0.113159 0.430664 0.053925 0.138916 0.433258 0.053406 0.166046 0.435944 0.052856 0.194733 0.438629 0.052338 0.225098 0.441284 0.051819 0.257385 0.444092 0.051239 0.291809 0.446808 0.050720 0.328491 0.449615 0.050140 0.367188 0.452484 0.049652 0.407623 0.455292 0.049103 0.449707 0.458221 0.048523 0.493073 0.461151 0.047974 0.537323 0.464050 0.047424 0.581207 0.467010 0.046906 0.623596 0.470001 0.046356 0.663757 0.472961 0.045807 0.701660 0.476013 0.045288 0.736755 0.479034 0.044708 0.768860 0.482025 0.044220 0.798035 0.485046 0.043732 0.824402 0.488129 0.043182 0.848358 0.491241 0.042664 0.870117 0.494324 0.042145 0.889832 0.497375 0.041656 0.907806 0.500458 0.041138 0.924133 0.503662 0.040680 0.938995 0.506683 0.040222 0.952423 0.509796 0.039734 0.964569 0.513000 0.039276 0.975433 0.516022 0.038849 0.067780 0.470642 0.053955 0.091339 0.473389 0.053406 0.116058 0.476135 0.052887 0.141968 0.478851 0.052368 0.169281 0.481628 0.051819 0.198181 0.484497 0.051270 0.228790 0.487274 0.050720 0.261414 0.490173 0.050171 0.296143 0.493042 0.049683 0.333069 0.495972 0.049133 0.372040 0.498932 0.048553 0.412720 0.501862 0.048004 0.454956 0.504913 0.047455 0.498474 0.507935 0.046906 0.542816 0.510925 0.046387 0.586548 0.513947 0.045837 0.628723 0.517120 0.045319 0.668640 0.520142 0.044739 0.706207 0.523224 0.044250 0.740906 0.526337 0.043732 0.772736 0.529449 0.043182 0.801514 0.532593 0.042664 0.827576 0.535706 0.042175 0.851227 0.538879 0.041687 0.872711 0.541992 0.041168 0.892212 0.545135 0.040710 0.909973 0.548218 0.040222 0.926086 0.551392 0.039734 0.940765 0.554443 0.039307 0.954010 0.557587 0.038849 0.965973 0.560577 0.038391 0.976715 0.563690 0.037994 0.070404 0.517181 0.052917 0.094116 0.520050 0.052399 0.118988 0.522919 0.051819 0.145111 0.525757 0.051300 0.172607 0.528625 0.050720 0.201721 0.531586 0.050201 0.232605 0.534515 0.049683 0.265472 0.537537 0.049133 0.300507 0.540405 0.048584 0.337738 0.543457 0.048004 0.376923 0.546478 0.047455 0.417816 0.549438 0.046936 0.460266 0.552521 0.046417 0.503937 0.555573 0.045837 0.548340 0.558533 0.045319 0.591949 0.561646 0.044769 0.633850 0.564697 0.044250 0.673523 0.567719 0.043762 0.710754 0.570831 0.043213 0.745148 0.573883 0.042694 0.776550 0.576843 0.042206 0.804962 0.579956 0.041687 0.830688 0.582916 0.041199 0.854034 0.585999 0.040710 0.875275 0.589020 0.040253 0.894562 0.592041 0.039764 0.912048 0.595032 0.039307 0.928009 0.598083 0.038849 0.942474 0.600983 0.038422 0.955597 0.603973 0.037994 0.967407 0.606964 0.037567 0.977966 0.609863 0.037170 0.073120 0.564270 0.051849 0.096985 0.567139 0.051331 0.122009 0.569977 0.050751 0.148254 0.572754 0.050232 0.176025 0.575684 0.049713 0.205414 0.578552 0.049133 0.236511 0.581421 0.048615 0.269684 0.584320 0.048035 0.304962 0.587250 0.047485 0.342438 0.590179 0.046936 0.381958 0.593109 0.046448 0.423035 0.596039 0.045868 0.465668 0.598999 0.045319 0.509521 0.601959 0.044769 0.553894 0.604828 0.044281 0.597351 0.607819 0.043762 0.639008 0.610779 0.043213 0.678406 0.613678 0.042694 0.715271 0.616669 0.042206 0.749237 0.619537 0.041748 0.780273 0.622467 0.041199 0.808380 0.625427 0.040710 0.833771 0.628265 0.040283 0.856842 0.631165 0.039795 0.877838 0.634094 0.039337 0.896851 0.636902 0.038879 0.914154 0.639771 0.038422 0.929932 0.642609 0.037994 0.944183 0.645386 0.037598 0.957153 0.648254 0.037170 0.968781 0.650940 0.036804 0.979187 0.653687 0.036469 0.075897 0.609924 0.050781 0.099915 0.612732 0.050232 0.125122 0.615479 0.049713 0.151550 0.618195 0.049133 0.179504 0.621063 0.048615 0.209045 0.623749 0.048065 0.240448 0.626556 0.047516 0.273895 0.629486 0.046967 0.309540 0.632141 0.046448 0.347290 0.635010 0.045898 0.386993 0.637817 0.045319 0.428314 0.640656 0.044800 0.471130 0.643433 0.044312 0.515106 0.646301 0.043762 0.559418 0.649017 0.043243 0.602692 0.651825 0.042694 0.644135 0.654694 0.042236 0.683197 0.657440 0.041748 0.719757 0.660217 0.041229 0.753326 0.662933 0.040741 0.783997 0.665710 0.040283 0.811737 0.668457 0.039795 0.836853 0.671143 0.039337 0.859619 0.673889 0.038879 0.880310 0.676605 0.038422 0.899109 0.679230 0.038025 0.916260 0.681946 0.037598 0.931763 0.684540 0.037170 0.945862 0.687164 0.036835 0.958618 0.689758 0.036469 0.970093 0.692291 0.036469 0.980377 0.694885 0.036469 0.078674 0.653503 0.049744 0.102875 0.656189 0.049164 0.128265 0.658844 0.048645 0.154877 0.661469 0.048065 0.183044 0.664154 0.047516 0.212830 0.666748 0.046997 0.244476 0.669403 0.046448 0.278229 0.672150 0.045898 0.314087 0.674744 0.045349 0.352142 0.677368 0.044830 0.392029 0.680084 0.044312 0.433624 0.682678 0.043793 0.476654 0.685364 0.043274 0.520752 0.688019 0.042725 0.565002 0.690582 0.042267 0.608032 0.693237 0.041748 0.649109 0.695801 0.041260 0.687927 0.698395 0.040741 0.724121 0.701019 0.040314 0.757416 0.703522 0.039825 0.787659 0.706116 0.039337 0.815002 0.708679 0.038910 0.839813 0.711182 0.038452 0.862305 0.713654 0.038055 0.882782 0.716156 0.037598 0.901337 0.718597 0.037201 0.918213 0.721069 0.036835 0.933563 0.723419 0.036469 0.947540 0.725830 0.036469 0.960144 0.728241 0.036469 0.971436 0.730560 0.036469 0.981537 0.732910 0.036469 0.081573 0.694519 0.048676 0.105896 0.697083 0.048096 0.131409 0.699493 0.047577 0.158295 0.701965 0.046997 0.186676 0.704529 0.046478 0.216644 0.706970 0.045929 0.248596 0.709473 0.045380 0.282593 0.711945 0.044830 0.318787 0.714417 0.044342 0.357117 0.716919 0.043793 0.397247 0.719421 0.043274 0.438965 0.721802 0.042755 0.482117 0.724274 0.042267 0.526306 0.726654 0.041748 0.570557 0.729156 0.041260 0.613373 0.731567 0.040771 0.654175 0.733887 0.040344 0.692719 0.736298 0.039825 0.728485 0.738678 0.039368 0.761353 0.740997 0.038940 0.791229 0.743347 0.038483 0.818268 0.745636 0.038055 0.842743 0.747925 0.037628 0.864990 0.750214 0.037231 0.885162 0.752472 0.036835 0.903503 0.754669 0.036469 0.920197 0.756897 0.036469 0.935364 0.759064 0.036469 0.949158 0.761169 0.036469 0.961548 0.763336 0.036469 0.972717 0.765442 0.036469 0.982666 0.767517 0.036469 0.084503 0.732544 0.047577 0.108978 0.734863 0.047028 0.134644 0.737152 0.046509 0.161743 0.739471 0.045929 0.190338 0.741821 0.045380 0.220581 0.744019 0.044861 0.252777 0.746368 0.044342 0.287048 0.748627 0.043823 0.323547 0.750885 0.043304 0.362061 0.753143 0.042786 0.402405 0.755402 0.042297 0.444366 0.757660 0.041779 0.487671 0.759857 0.041290 0.531952 0.762054 0.040802 0.576080 0.764252 0.040344 0.618683 0.766449 0.039856 0.659210 0.768616 0.039398 0.697357 0.770782 0.038940 0.732819 0.772919 0.038483 0.765289 0.774963 0.038086 0.794769 0.777100 0.037659 0.821472 0.779175 0.037231 0.845612 0.781189 0.036835 0.867584 0.783264 0.036469 0.887543 0.785217 0.036469 0.905640 0.787262 0.036469 0.922150 0.789215 0.036469 0.937103 0.791138 0.036469 0.950714 0.793030 0.036469 0.962952 0.794983 0.036469 0.973969 0.796783 0.036469 0.983765 0.798676 0.036469 0.087463 0.767242 0.046509 0.112152 0.769379 0.045959 0.137970 0.771454 0.045441 0.165222 0.773590 0.044891 0.194031 0.775665 0.044373 0.224518 0.777710 0.043854 0.256958 0.779785 0.043304 0.291534 0.781891 0.042786 0.328247 0.783905 0.042328 0.367035 0.785980 0.041779 0.407623 0.787964 0.041290 0.449799 0.789978 0.040802 0.493256 0.791992 0.040344 0.537567 0.793945 0.039886 0.581543 0.795959 0.039398 0.623901 0.797913 0.038940 0.664154 0.799835 0.038513 0.701935 0.801788 0.038116 0.737061 0.803680 0.037659 0.769135 0.805542 0.037262 0.798248 0.807404 0.036865 0.824585 0.809265 0.036469 0.848450 0.811127 0.036469 0.870117 0.812927 0.036469 0.889801 0.814667 0.036469 0.907715 0.816437 0.036469 0.924011 0.818207 0.036469 0.938812 0.819916 0.036469 0.952209 0.821655 0.036469 0.964325 0.823334 0.036469 0.975159 0.824951 0.036469 0.984802 0.826599 0.036469 0.090485 0.798523 0.045441 0.115295 0.800476 0.044891 0.141296 0.802338 0.044403 0.168732 0.804260 0.043854 0.197784 0.806152 0.043304 0.228485 0.808014 0.042816 0.261169 0.809875 0.042328 0.296082 0.811798 0.041809 0.333069 0.813568 0.041290 0.372101 0.815460 0.040833 0.412903 0.817230 0.040375 0.455231 0.819061 0.039886 0.498779 0.820862 0.039429 0.543182 0.822601 0.038971 0.586945 0.824402 0.038544 0.629059 0.826141 0.038116 0.668976 0.827850 0.037689 0.706482 0.829620 0.037262 0.741211 0.831329 0.036865 0.772858 0.833008 0.036499 0.801636 0.834686 0.036469 0.827606 0.836273 0.036469 0.851166 0.837952 0.036469 0.872589 0.839569 0.036469 0.892029 0.841125 0.036469 0.909760 0.842712 0.036469 0.925842 0.844330 0.036469 0.940430 0.845825 0.036469 0.953705 0.847351 0.036469 0.965637 0.848877 0.036469 0.976318 0.850281 0.036469 0.985840 0.851746 0.036469 0.093536 0.826691 0.044403 0.118500 0.828430 0.043884 0.144684 0.830170 0.043304 0.172333 0.831848 0.042847 0.201569 0.833588 0.042328 0.232513 0.835236 0.041840 0.265472 0.836945 0.041290 0.300659 0.838623 0.040833 0.337921 0.840271 0.040375 0.377167 0.841919 0.039917 0.418121 0.843567 0.039459 0.460632 0.845215 0.038971 0.504364 0.846832 0.038544 0.548767 0.848389 0.038147 0.592346 0.850006 0.037689 0.634155 0.851593 0.037292 0.673828 0.853149 0.036896 0.710938 0.854675 0.036499 0.745270 0.856232 0.036469 0.776581 0.857697 0.036469 0.804962 0.859192 0.036469 0.830597 0.860657 0.036469 0.853882 0.862122 0.036469 0.875061 0.863586 0.036469 0.894257 0.864990 0.036469 0.911743 0.866364 0.036469 0.927643 0.867798 0.036469 0.942047 0.869110 0.036469 0.955139 0.870483 0.036469 0.966919 0.871826 0.036469 0.977448 0.873108 0.036469 0.986816 0.874390 0.036469 0.096619 0.852051 0.043335 0.121735 0.853607 0.042847 0.148132 0.855194 0.042358 0.175934 0.856720 0.041870 0.205414 0.858276 0.041290 0.236572 0.859772 0.040863 0.269836 0.861328 0.040405 0.305206 0.862793 0.039948 0.342773 0.864349 0.039459 0.382233 0.865814 0.038971 0.423401 0.867249 0.038544 0.466095 0.868744 0.038147 0.509918 0.870209 0.037720 0.554260 0.871643 0.037323 0.597595 0.873077 0.036896 0.639221 0.874481 0.036499 0.678528 0.875885 0.036469 0.715302 0.877258 0.036469 0.749207 0.878601 0.036469 0.780182 0.879974 0.036469 0.808197 0.881287 0.036469 0.833496 0.882568 0.036469 0.856537 0.883881 0.036469 0.877380 0.885193 0.036469 0.896393 0.886444 0.036469 0.913635 0.887726 0.036469 0.929352 0.888947 0.036469 0.943604 0.890137 0.036469 0.956512 0.891327 0.036469 0.968109 0.892517 0.036469 0.978546 0.893677 0.036469 0.987762 0.894806 0.036469 0.099762 0.874908 0.042358 0.125031 0.876373 0.041870 0.151520 0.877747 0.041321 0.179565 0.879150 0.040894 0.209229 0.880554 0.040405 0.240662 0.881927 0.039948 0.274139 0.883301 0.039459 0.309845 0.884644 0.039001 0.347656 0.886017 0.038544 0.387329 0.887390 0.038177 0.428711 0.888702 0.037720 0.471527 0.890015 0.037323 0.515442 0.891296 0.036926 0.559723 0.892609 0.036530 0.602905 0.893860 0.036469 0.644165 0.895142 0.036469 0.683167 0.896393 0.036469 0.719604 0.897614 0.036469 0.753082 0.898834 0.036469 0.783661 0.900055 0.036469 0.811310 0.901245 0.036469 0.836304 0.902374 0.036469 0.859039 0.903564 0.036469 0.879700 0.904724 0.036469 0.898438 0.905823 0.036469 0.915527 0.906952 0.036469 0.931030 0.908051 0.036469 0.945099 0.909119 0.036469 0.957855 0.910187 0.036469 0.969299 0.911194 0.036469 0.979584 0.912201 0.036469 0.988678 0.913239 0.036469 0.102875 0.895599 0.041351 0.128326 0.896881 0.040894 0.154999 0.898163 0.040405 0.183228 0.899414 0.039948 0.213043 0.900665 0.039490 0.244751 0.901917 0.039032 0.278564 0.903168 0.038574 0.314453 0.904388 0.038177 0.352509 0.905579 0.037720 0.392395 0.906830 0.037323 0.433929 0.907990 0.036957 0.476898 0.909180 0.036530 0.520905 0.910370 0.036469 0.565125 0.911469 0.036469 0.608002 0.912659 0.036469 0.648956 0.913727 0.036469 0.687683 0.914886 0.036469 0.723755 0.916016 0.036469 0.756897 0.917084 0.036469 0.787048 0.918152 0.036469 0.814392 0.919220 0.036469 0.839081 0.920258 0.036469 0.861511 0.921295 0.036469 0.881897 0.922333 0.036469 0.900421 0.923279 0.036469 0.917328 0.924286 0.036469 0.932648 0.925262 0.036469 0.946564 0.926208 0.036469 0.959137 0.927155 0.036469 0.970459 0.928040 0.036469 0.980560 0.928955 0.036469 0.989532 0.929871 0.036469 0.105988 0.914276 0.040405 0.131592 0.915436 0.039948 0.158508 0.916595 0.039520 0.186890 0.917725 0.039032 0.216949 0.918823 0.038605 0.248901 0.919952 0.038177 0.282928 0.921082 0.037750 0.319122 0.922180 0.037354 0.357391 0.923248 0.036957 0.397491 0.924347 0.036560 0.439148 0.925415 0.036469 0.482239 0.926483 0.036469 0.526306 0.927521 0.036469 0.570343 0.928528 0.036469 0.613068 0.929596 0.036469 0.653717 0.930573 0.036469 0.692078 0.931549 0.036469 0.727844 0.932587 0.036469 0.760559 0.933533 0.036469 0.790375 0.934479 0.036469 0.817322 0.935455 0.036469 0.841736 0.936371 0.036469 0.863922 0.937286 0.036469 0.884094 0.938171 0.036469 0.902374 0.939056 0.036469 0.919037 0.939972 0.036469 0.934174 0.940796 0.036469 0.947937 0.941650 0.036469 0.960388 0.942444 0.036469 0.971558 0.943237 0.036469 0.981537 0.944031 0.036469 0.990387 0.944855 0.036469 0.109192 0.931122 0.039520 0.134888 0.932159 0.039062 0.161987 0.933167 0.038605 0.190582 0.934235 0.038177 0.220825 0.935242 0.037750 0.253021 0.936218 0.037354 0.287323 0.937256 0.036957 0.323700 0.938232 0.036591 0.362213 0.939209 0.036469 0.402527 0.940186 0.036469 0.444336 0.941132 0.036469 0.487518 0.942078 0.036469 0.531586 0.942993 0.036469 0.575562 0.943939 0.036469 0.618011 0.944855 0.036469 0.658356 0.945740 0.036469 0.696442 0.946625 0.036469 0.731781 0.947510 0.036469 0.764130 0.948334 0.036469 0.793579 0.949219 0.036469 0.820221 0.950012 0.036469 0.844330 0.950836 0.036469 0.866211 0.951630 0.036469 0.886108 0.952423 0.036469 0.904236 0.953217 0.036469 0.920715 0.953979 0.036469 0.935669 0.954712 0.036469 0.949249 0.955475 0.036469 0.961548 0.956207 0.036469 0.972595 0.956909 0.036469 0.982483 0.957611 0.036469 0.991150 0.958282 0.036469 0.112366 0.946289 0.038635 0.138214 0.947235 0.038177 0.165466 0.948181 0.037750 0.194244 0.949097 0.037384 0.224731 0.949951 0.036987 0.257141 0.950867 0.036591 0.291718 0.951752 0.036469 0.328369 0.952667 0.036469 0.367035 0.953552 0.036469 0.407532 0.954407 0.036469 0.449493 0.955231 0.036469 0.492798 0.956085 0.036469 0.536896 0.956909 0.036469 0.580627 0.957703 0.036469 0.622833 0.958527 0.036469 0.662903 0.959290 0.036469 0.700653 0.960114 0.036469 0.735596 0.960846 0.036469 0.767609 0.961609 0.036469 0.796661 0.962372 0.036469 0.822968 0.963104 0.036469 0.846802 0.963806 0.036469 0.868439 0.964508 0.036469 0.888123 0.965210 0.036469 0.906006 0.965912 0.036469 0.922333 0.966583 0.036469 0.937103 0.967224 0.036469 0.950562 0.967834 0.036469 0.962677 0.968475 0.036469 0.973572 0.969086 0.036469 0.983307 0.969696 0.036469 0.991913 0.970276 0.036469 0.115509 0.959930 0.037750 0.141541 0.960754 0.037384 0.168976 0.961578 0.036987 0.197968 0.962402 0.036591 0.228607 0.963196 0.036469 0.261230 0.963989 0.036469 0.296082 0.964813 0.036469 0.332947 0.965546 0.036469 0.371857 0.966339 0.036469 0.412415 0.967102 0.036469 0.454559 0.967804 0.036469 0.497925 0.968597 0.036469 0.542114 0.969299 0.036469 0.585663 0.970032 0.036469 0.627563 0.970734 0.036469 0.667297 0.971436 0.036469 0.704712 0.972107 0.036469 0.739319 0.972778 0.036469 0.770935 0.973450 0.036469 0.799652 0.974060 0.036469 0.825653 0.974731 0.036469 0.849182 0.975342 0.036469 0.870605 0.975983 0.036469 0.890045 0.976562 0.036469 0.907776 0.977142 0.036469 0.923859 0.977722 0.036469 0.938477 0.978302 0.036469 0.951752 0.978821 0.036469 0.963776 0.979401 0.036469 0.974548 0.979919 0.036469 0.984131 0.980408 0.036469 0.992584 0.980896 0.036469 0.039032 0.000244 0.087006 0.060638 0.000824 0.086853 0.083191 0.001495 0.086609 0.106750 0.002167 0.086426 0.131500 0.002869 0.086182 0.157593 0.003601 0.085938 0.185028 0.004395 0.085693 0.214142 0.005188 0.085388 0.244995 0.006042 0.085083 0.277832 0.006866 0.084747 0.312805 0.007751 0.084442 0.349915 0.008667 0.084045 0.388733 0.009583 0.083710 0.429291 0.010559 0.083313 0.471222 0.011536 0.082916 0.514313 0.012573 0.082489 0.557953 0.013611 0.082092 0.600433 0.014648 0.081665 0.641235 0.015717 0.081207 0.679932 0.016846 0.080719 0.716095 0.017944 0.080261 0.749664 0.019104 0.079773 0.780273 0.020325 0.079285 0.808014 0.021484 0.078796 0.833221 0.022736 0.078247 0.856079 0.023956 0.077728 0.876892 0.025208 0.077209 0.895905 0.026489 0.076691 0.913116 0.027802 0.076172 0.928864 0.029083 0.075592 0.943176 0.030426 0.075043 0.956116 0.031769 0.074493 0.040222 0.020996 0.086639 0.061920 0.021667 0.086426 0.084625 0.022430 0.086182 0.108337 0.023193 0.085938 0.133240 0.023987 0.085693 0.159424 0.024841 0.085419 0.187073 0.025696 0.085114 0.216370 0.026581 0.084778 0.247437 0.027466 0.084442 0.280518 0.028381 0.084076 0.315826 0.029388 0.083710 0.353058 0.030365 0.083344 0.392151 0.031403 0.082916 0.432983 0.032471 0.082520 0.475037 0.033539 0.082123 0.518341 0.034607 0.081665 0.562073 0.035767 0.081207 0.604431 0.036896 0.080750 0.645172 0.038086 0.080261 0.683685 0.039276 0.079773 0.719696 0.040497 0.079285 0.752930 0.041748 0.078796 0.783295 0.043030 0.078278 0.810760 0.044312 0.077728 0.835754 0.045593 0.077240 0.858429 0.046906 0.076721 0.879089 0.048279 0.076172 0.897888 0.049683 0.075623 0.914978 0.051025 0.075073 0.930573 0.052460 0.074524 0.944763 0.053864 0.073975 0.957550 0.055298 0.073425 0.041534 0.042694 0.086182 0.063385 0.043518 0.085968 0.086182 0.044373 0.085724 0.110077 0.045197 0.085419 0.135101 0.046082 0.085114 0.161499 0.047028 0.084778 0.189301 0.047974 0.084473 0.218781 0.048950 0.084076 0.250092 0.049957 0.083710 0.283447 0.050964 0.083344 0.318939 0.052032 0.082916 0.356415 0.053131 0.082520 0.395782 0.054260 0.082123 0.436768 0.055389 0.081696 0.479126 0.056549 0.081238 0.522552 0.057739 0.080780 0.566284 0.058990 0.080292 0.608612 0.060211 0.079803 0.649170 0.061493 0.079285 0.687500 0.062775 0.078827 0.723267 0.064056 0.078308 0.756317 0.065430 0.077759 0.786377 0.066772 0.077240 0.813599 0.068146 0.076721 0.838379 0.069580 0.076202 0.860840 0.070953 0.075653 0.881287 0.072449 0.075073 0.899933 0.073914 0.074524 0.916870 0.075378 0.074005 0.932281 0.076874 0.073425 0.946320 0.078430 0.072845 0.958984 0.079956 0.072296 0.042999 0.065521 0.085724 0.064972 0.066406 0.085419 0.087921 0.067322 0.085114 0.111908 0.068298 0.084808 0.137115 0.069275 0.084473 0.163666 0.070282 0.084106 0.191620 0.071320 0.083740 0.221313 0.072418 0.083374 0.252869 0.073517 0.082947 0.286499 0.074646 0.082550 0.322266 0.075836 0.082123 0.359985 0.076996 0.081696 0.399597 0.078186 0.081268 0.440826 0.079437 0.080780 0.483307 0.080719 0.080322 0.526917 0.082031 0.079834 0.570679 0.083374 0.079315 0.612885 0.084686 0.078827 0.653290 0.086060 0.078308 0.691437 0.087463 0.077759 0.726959 0.088867 0.077271 0.759735 0.090332 0.076752 0.789490 0.091766 0.076233 0.816498 0.093262 0.075653 0.841003 0.094757 0.075073 0.863281 0.096252 0.074585 0.883545 0.097839 0.074005 0.901978 0.099396 0.073456 0.918701 0.100952 0.072876 0.934021 0.102600 0.072327 0.947876 0.104218 0.071716 0.960449 0.105835 0.071198 0.044556 0.089447 0.085114 0.066650 0.090424 0.084808 0.089691 0.091461 0.084473 0.113861 0.092499 0.084106 0.139221 0.093597 0.083740 0.165955 0.094757 0.083374 0.194122 0.095886 0.082947 0.224060 0.097046 0.082550 0.255829 0.098297 0.082153 0.289703 0.099518 0.081696 0.325714 0.100800 0.081268 0.363739 0.102081 0.080811 0.403595 0.103424 0.080322 0.445007 0.104797 0.079834 0.487671 0.106110 0.079315 0.531433 0.107544 0.078857 0.575134 0.108978 0.078339 0.617249 0.110443 0.077789 0.657471 0.111938 0.077271 0.695404 0.113403 0.076782 0.730713 0.114929 0.076233 0.763184 0.116516 0.075684 0.792664 0.118073 0.075104 0.819427 0.119659 0.074585 0.843689 0.121277 0.074036 0.865692 0.122894 0.073486 0.885773 0.124603 0.072876 0.904022 0.126251 0.072357 0.920624 0.127960 0.071747 0.935730 0.129700 0.071198 0.949432 0.131409 0.070618 0.961853 0.133179 0.070068 0.046265 0.114624 0.084503 0.068451 0.115753 0.084137 0.091675 0.116882 0.083771 0.115936 0.118073 0.083374 0.141479 0.119293 0.082977 0.168365 0.120483 0.082581 0.196777 0.121765 0.082153 0.226898 0.123077 0.081696 0.258911 0.124390 0.081268 0.293091 0.125763 0.080841 0.329376 0.127167 0.080353 0.367584 0.128571 0.079865 0.407684 0.130005 0.079315 0.449341 0.131500 0.078888 0.492218 0.132935 0.078369 0.536102 0.134491 0.077820 0.579712 0.136017 0.077301 0.621735 0.137604 0.076782 0.661804 0.139221 0.076263 0.699432 0.140808 0.075714 0.734528 0.142517 0.075134 0.766724 0.144196 0.074615 0.795868 0.145844 0.074036 0.822357 0.147583 0.073486 0.846405 0.149323 0.072906 0.868195 0.151062 0.072357 0.888031 0.152832 0.071777 0.906097 0.154694 0.071228 0.922546 0.156464 0.070648 0.937469 0.158356 0.070099 0.951050 0.160156 0.069489 0.963287 0.162079 0.068939 0.048004 0.141266 0.083801 0.070374 0.142517 0.083374 0.093719 0.143768 0.082977 0.118164 0.145050 0.082581 0.143860 0.146393 0.082153 0.170929 0.147736 0.081726 0.199554 0.149139 0.081268 0.229919 0.150543 0.080841 0.262177 0.152008 0.080383 0.296600 0.153503 0.079865 0.333191 0.154999 0.079346 0.371674 0.156494 0.078888 0.411957 0.158142 0.078369 0.453857 0.159729 0.077820 0.496857 0.161346 0.077332 0.540894 0.162994 0.076782 0.584381 0.164642 0.076294 0.626312 0.166382 0.075714 0.666168 0.168121 0.075134 0.703613 0.169861 0.074646 0.738342 0.171661 0.074036 0.770233 0.173492 0.073517 0.799103 0.175293 0.072937 0.825317 0.177155 0.072357 0.849091 0.179047 0.071777 0.870667 0.180939 0.071259 0.890320 0.182831 0.070648 0.908142 0.184753 0.070129 0.924438 0.186737 0.069519 0.939240 0.188751 0.068970 0.952606 0.190674 0.068390 0.964722 0.192749 0.067841 0.049927 0.169434 0.083008 0.072388 0.170807 0.082611 0.095886 0.172241 0.082184 0.120453 0.173645 0.081757 0.146332 0.175140 0.081299 0.173584 0.176605 0.080841 0.202423 0.178101 0.080383 0.233063 0.179688 0.079895 0.265533 0.181274 0.079376 0.300232 0.182892 0.078918 0.337097 0.184601 0.078400 0.375854 0.186218 0.077850 0.416382 0.187988 0.077362 0.458374 0.189697 0.076813 0.501648 0.191467 0.076294 0.545807 0.193298 0.075745 0.589172 0.195099 0.075165 0.630920 0.196991 0.074646 0.670593 0.198853 0.074066 0.707733 0.200745 0.073547 0.742249 0.202698 0.072937 0.773834 0.204651 0.072388 0.802368 0.206604 0.071838 0.828278 0.208618 0.071289 0.851776 0.210663 0.070679 0.873138 0.212646 0.070129 0.892609 0.214783 0.069519 0.910248 0.216797 0.069000 0.926331 0.218964 0.068420 0.940948 0.221069 0.067841 0.954193 0.223206 0.067322 0.966125 0.225372 0.066711 0.051910 0.199463 0.082184 0.074493 0.200958 0.081757 0.098114 0.202484 0.081329 0.122864 0.204071 0.080841 0.148956 0.205719 0.080383 0.176361 0.207306 0.079926 0.205444 0.209015 0.079376 0.236267 0.210724 0.078918 0.269043 0.212463 0.078430 0.304047 0.214264 0.077881 0.341125 0.216125 0.077362 0.380127 0.217865 0.076813 0.420959 0.219788 0.076324 0.463135 0.221649 0.075775 0.506622 0.223633 0.075195 0.550842 0.225616 0.074677 0.594086 0.227509 0.074097 0.635651 0.229584 0.073578 0.675079 0.231598 0.072968 0.711945 0.233673 0.072418 0.746155 0.235748 0.071838 0.777344 0.237915 0.071289 0.805634 0.240021 0.070709 0.831268 0.242188 0.070160 0.854492 0.244385 0.069580 0.875610 0.246582 0.069031 0.894867 0.248871 0.068451 0.912292 0.251068 0.067871 0.928223 0.253357 0.067322 0.942688 0.255707 0.066742 0.955750 0.257965 0.066193 0.967560 0.260315 0.065643 0.053955 0.231415 0.081329 0.076721 0.233124 0.080872 0.100464 0.234772 0.080414 0.125427 0.236542 0.079926 0.151611 0.238342 0.079407 0.179260 0.240112 0.078918 0.208527 0.242004 0.078430 0.239685 0.243896 0.077881 0.272705 0.245728 0.077393 0.307983 0.247742 0.076843 0.345367 0.249756 0.076324 0.384613 0.251709 0.075775 0.425629 0.253754 0.075195 0.468048 0.255829 0.074707 0.511658 0.257935 0.074097 0.555878 0.260132 0.073578 0.598999 0.262268 0.072998 0.640411 0.264465 0.072418 0.679596 0.266693 0.071869 0.716217 0.268890 0.071320 0.750061 0.271210 0.070709 0.780975 0.273529 0.070160 0.808868 0.275848 0.069580 0.834198 0.278168 0.069031 0.857208 0.280518 0.068451 0.878082 0.282928 0.067902 0.897095 0.285400 0.067322 0.914398 0.287781 0.066772 0.930115 0.290253 0.066193 0.944397 0.292755 0.065674 0.957306 0.295227 0.065094 0.968964 0.297760 0.064575 0.056183 0.265625 0.080414 0.079041 0.267548 0.079956 0.102936 0.269348 0.079437 0.128021 0.271301 0.078949 0.154449 0.273315 0.078430 0.182281 0.275269 0.077911 0.211792 0.277283 0.077393 0.243103 0.279388 0.076843 0.276459 0.281464 0.076355 0.312042 0.283630 0.075806 0.349609 0.285767 0.075226 0.389160 0.287994 0.074707 0.430450 0.290253 0.074127 0.473022 0.292480 0.073608 0.516876 0.294830 0.072998 0.561035 0.297180 0.072449 0.604065 0.299469 0.071899 0.645203 0.301880 0.071320 0.684174 0.304291 0.070740 0.720490 0.306702 0.070190 0.753998 0.309174 0.069611 0.784485 0.311615 0.069061 0.812134 0.314148 0.068451 0.837189 0.316742 0.067902 0.859894 0.319244 0.067322 0.880554 0.321869 0.066803 0.899384 0.324463 0.066223 0.916443 0.327026 0.065674 0.932007 0.329651 0.065125 0.946106 0.332367 0.064606 0.958832 0.334930 0.064026 0.970337 0.337677 0.063538 0.058411 0.302399 0.079437 0.081421 0.304413 0.078949 0.105499 0.306488 0.078461 0.130768 0.308624 0.077942 0.157379 0.310760 0.077423 0.185425 0.312927 0.076874 0.215149 0.315186 0.076355 0.246735 0.317474 0.075806 0.280365 0.319733 0.075256 0.316254 0.322021 0.074738 0.354095 0.324371 0.074158 0.393921 0.326813 0.073639 0.435333 0.329254 0.073029 0.478180 0.331635 0.072479 0.522095 0.334167 0.071899 0.566284 0.336700 0.071320 0.609070 0.339203 0.070770 0.650085 0.341766 0.070221 0.688751 0.344391 0.069611 0.724762 0.346954 0.069092 0.757935 0.349609 0.068481 0.788086 0.352234 0.067932 0.815399 0.354980 0.067352 0.840179 0.357666 0.066803 0.862640 0.360352 0.066254 0.883026 0.363129 0.065674 0.901611 0.365875 0.065125 0.918488 0.368652 0.064606 0.933868 0.371429 0.064056 0.947784 0.374237 0.063538 0.960388 0.377075 0.063019 0.971710 0.379883 0.062500 0.060791 0.341553 0.078491 0.083923 0.343781 0.077942 0.108124 0.346008 0.077454 0.133606 0.348358 0.076904 0.160370 0.350708 0.076355 0.188629 0.353058 0.075836 0.218597 0.355469 0.075256 0.250397 0.357849 0.074768 0.284363 0.360352 0.074188 0.320496 0.362854 0.073639 0.358612 0.365356 0.073059 0.398682 0.367950 0.072510 0.440369 0.370575 0.071930 0.483368 0.373199 0.071350 0.527435 0.375854 0.070801 0.571594 0.378571 0.070251 0.614227 0.381226 0.069641 0.654938 0.384003 0.069092 0.693298 0.386749 0.068481 0.729004 0.389496 0.067963 0.761871 0.392273 0.067352 0.791626 0.395050 0.066833 0.818634 0.397919 0.066284 0.843109 0.400818 0.065704 0.865265 0.403656 0.065155 0.885468 0.406555 0.064606 0.903809 0.409485 0.064056 0.920532 0.412354 0.063568 0.935699 0.415253 0.063049 0.949432 0.418152 0.062531 0.961884 0.421143 0.062012 0.973053 0.424103 0.061493 0.063202 0.382965 0.077484 0.086487 0.385406 0.076904 0.110870 0.387817 0.076385 0.136505 0.390320 0.075867 0.163452 0.392822 0.075287 0.191956 0.395386 0.074768 0.222137 0.397919 0.074188 0.254211 0.400513 0.073639 0.288452 0.403137 0.073090 0.324860 0.405853 0.072510 0.363281 0.408508 0.071960 0.403595 0.411255 0.071381 0.445465 0.414032 0.070801 0.488617 0.416779 0.070251 0.532837 0.419647 0.069672 0.576843 0.422485 0.069122 0.619354 0.425293 0.068542 0.659821 0.428162 0.067963 0.697906 0.431000 0.067383 0.733246 0.433960 0.066864 0.765747 0.436920 0.066284 0.795166 0.439819 0.065735 0.821838 0.442841 0.065186 0.846039 0.445801 0.064606 0.867950 0.448822 0.064117 0.887878 0.451813 0.063599 0.906006 0.454834 0.063049 0.922546 0.457825 0.062561 0.937531 0.460846 0.062042 0.951080 0.463867 0.061523 0.963379 0.466919 0.061005 0.974396 0.470032 0.060547 0.065704 0.426483 0.076385 0.089111 0.429077 0.075867 0.113708 0.431580 0.075317 0.139465 0.434265 0.074768 0.166595 0.436890 0.074219 0.195312 0.439575 0.073639 0.225800 0.442322 0.073090 0.258118 0.445099 0.072510 0.292694 0.447876 0.071960 0.329376 0.450684 0.071381 0.368042 0.453491 0.070831 0.408600 0.456421 0.070251 0.450653 0.459290 0.069672 0.494019 0.462189 0.069122 0.538361 0.465088 0.068542 0.582153 0.468048 0.067993 0.624512 0.471100 0.067413 0.664703 0.474091 0.066864 0.702454 0.477020 0.066284 0.737488 0.480164 0.065735 0.769592 0.483185 0.065186 0.798706 0.486176 0.064636 0.825012 0.489258 0.064117 0.848907 0.492371 0.063599 0.870575 0.495453 0.063080 0.890289 0.498566 0.062561 0.908234 0.501648 0.062042 0.924469 0.504761 0.061523 0.939301 0.507874 0.061035 0.952698 0.510956 0.060577 0.964813 0.514069 0.060120 0.975677 0.517273 0.059631 0.068298 0.471680 0.075348 0.091888 0.474396 0.074799 0.116577 0.477081 0.074249 0.142548 0.479889 0.073639 0.169891 0.482635 0.073120 0.198853 0.485443 0.072540 0.229523 0.488403 0.071991 0.262146 0.491180 0.071411 0.296936 0.494141 0.070862 0.333984 0.497131 0.070251 0.372864 0.499969 0.069702 0.413635 0.503021 0.069122 0.455963 0.506042 0.068573 0.499481 0.509033 0.067993 0.543823 0.512115 0.067413 0.587524 0.515106 0.066864 0.629639 0.518188 0.066315 0.669586 0.521271 0.065735 0.707062 0.524323 0.065216 0.741699 0.527496 0.064636 0.773468 0.530640 0.064148 0.802155 0.533691 0.063629 0.828186 0.536865 0.063110 0.851746 0.540070 0.062592 0.873169 0.543091 0.062073 0.892670 0.546234 0.061523 0.910339 0.549347 0.061066 0.926422 0.552460 0.060608 0.941071 0.555573 0.060120 0.954315 0.558655 0.059662 0.966248 0.561768 0.059174 0.976959 0.564819 0.058746 0.070923 0.518311 0.074249 0.094696 0.521118 0.073669 0.119507 0.523956 0.073151 0.145691 0.526855 0.072540 0.173248 0.529724 0.072021 0.202423 0.532654 0.071411 0.233368 0.535583 0.070862 0.266266 0.538574 0.070282 0.301361 0.541565 0.069733 0.338654 0.544586 0.069153 0.377838 0.547516 0.068604 0.418793 0.550568 0.067993 0.461334 0.553619 0.067444 0.504974 0.556641 0.066895 0.549438 0.559692 0.066315 0.592926 0.562714 0.065765 0.634796 0.565796 0.065247 0.674469 0.568848 0.064667 0.711548 0.571869 0.064148 0.745880 0.574982 0.063660 0.777252 0.578064 0.063110 0.805603 0.580994 0.062592 0.831268 0.584045 0.062103 0.854614 0.587158 0.061554 0.875763 0.590118 0.061066 0.894958 0.593109 0.060608 0.912476 0.596069 0.060120 0.928345 0.599091 0.059662 0.942810 0.602112 0.059204 0.955872 0.605011 0.058777 0.967651 0.608002 0.058319 0.978210 0.610901 0.057922 0.073639 0.565338 0.073181 0.097534 0.568146 0.072571 0.122559 0.570984 0.072052 0.148926 0.573853 0.071442 0.176666 0.576660 0.070892 0.206024 0.579559 0.070312 0.237244 0.582550 0.069763 0.270416 0.585388 0.069183 0.305847 0.588379 0.068604 0.343414 0.591309 0.067993 0.382782 0.594177 0.067474 0.424011 0.597168 0.066895 0.466736 0.600128 0.066345 0.510529 0.603027 0.065796 0.554993 0.605957 0.065247 0.598328 0.608826 0.064697 0.639954 0.611847 0.064178 0.679321 0.614777 0.063660 0.716034 0.617676 0.063141 0.750031 0.620605 0.062592 0.781006 0.623596 0.062103 0.808990 0.626434 0.061584 0.834381 0.629364 0.061096 0.857391 0.632263 0.060638 0.878265 0.635071 0.060150 0.897278 0.637970 0.059662 0.914581 0.640778 0.059235 0.930267 0.643646 0.058777 0.944519 0.646454 0.058350 0.957397 0.649170 0.057922 0.969025 0.651978 0.057526 0.979431 0.654785 0.057343 0.076416 0.610962 0.072052 0.100433 0.613678 0.071472 0.125671 0.616486 0.070892 0.152191 0.619263 0.070312 0.180145 0.622040 0.069794 0.209778 0.624817 0.069214 0.241241 0.627655 0.068634 0.274689 0.630432 0.068024 0.310425 0.633270 0.067505 0.348206 0.636078 0.066925 0.387878 0.638855 0.066376 0.429321 0.641663 0.065796 0.472076 0.644440 0.065277 0.516083 0.647278 0.064697 0.560547 0.650116 0.064178 0.603638 0.652832 0.063690 0.645050 0.655640 0.063171 0.684113 0.658447 0.062622 0.720520 0.661194 0.062134 0.754120 0.663971 0.061615 0.784729 0.666748 0.061096 0.812317 0.669403 0.060669 0.837372 0.672180 0.060150 0.860077 0.674896 0.059662 0.880737 0.677582 0.059235 0.899536 0.680206 0.058807 0.916626 0.682831 0.058350 0.932098 0.685516 0.057953 0.946198 0.688080 0.057556 0.958923 0.690674 0.057343 0.970367 0.693268 0.057343 0.980591 0.695801 0.057343 0.079254 0.654572 0.070923 0.103424 0.657104 0.070343 0.128815 0.659760 0.069794 0.155518 0.662506 0.069214 0.183685 0.665039 0.068665 0.213562 0.667786 0.068054 0.245270 0.670410 0.067505 0.278992 0.673035 0.066956 0.314972 0.675781 0.066376 0.353088 0.678436 0.065826 0.393005 0.681030 0.065277 0.434631 0.683685 0.064728 0.477631 0.686310 0.064240 0.521759 0.688934 0.063721 0.566101 0.691589 0.063171 0.608978 0.694122 0.062653 0.650116 0.696808 0.062134 0.688873 0.699402 0.061615 0.724945 0.701904 0.061096 0.758179 0.704529 0.060669 0.788361 0.707123 0.060150 0.815643 0.709534 0.059692 0.840393 0.712097 0.059265 0.862793 0.714508 0.058838 0.883179 0.717041 0.058380 0.901733 0.719543 0.057953 0.918579 0.721924 0.057587 0.933899 0.724304 0.057343 0.947845 0.726746 0.057343 0.960388 0.729034 0.057343 0.971710 0.731445 0.057343 0.981781 0.733795 0.057343 0.082123 0.695465 0.069794 0.106445 0.697937 0.069214 0.132019 0.700439 0.068665 0.158936 0.702942 0.068085 0.187286 0.705383 0.067535 0.217407 0.707886 0.066986 0.249390 0.710419 0.066406 0.283417 0.712860 0.065857 0.319672 0.715332 0.065308 0.357971 0.717804 0.064758 0.398132 0.720306 0.064240 0.440002 0.722717 0.063721 0.483185 0.725159 0.063202 0.527374 0.727570 0.062653 0.571594 0.730042 0.062134 0.614288 0.732391 0.061646 0.655151 0.734772 0.061127 0.693604 0.737183 0.060669 0.729279 0.739532 0.060181 0.762146 0.741882 0.059692 0.791931 0.744202 0.059265 0.818878 0.746460 0.058838 0.843323 0.748779 0.058380 0.865448 0.751007 0.057983 0.885590 0.753265 0.057587 0.903900 0.755463 0.057343 0.920532 0.757660 0.057343 0.935699 0.759827 0.057343 0.949432 0.761993 0.057343 0.961823 0.764099 0.057343 0.972961 0.766174 0.057343 0.982910 0.768311 0.057343 0.085083 0.733398 0.068665 0.109558 0.735657 0.068115 0.135284 0.738037 0.067535 0.162384 0.740356 0.066986 0.190979 0.742584 0.066406 0.221283 0.744934 0.065857 0.253571 0.747192 0.065308 0.287872 0.749451 0.064789 0.324402 0.751740 0.064270 0.362976 0.753937 0.063721 0.403381 0.756256 0.063202 0.445404 0.758514 0.062683 0.488678 0.760651 0.062134 0.532990 0.762878 0.061646 0.577087 0.765106 0.061127 0.619629 0.767242 0.060730 0.660126 0.769409 0.060211 0.698242 0.771576 0.059723 0.733582 0.773682 0.059296 0.766022 0.775787 0.058868 0.795441 0.777863 0.058411 0.822052 0.779907 0.057983 0.846191 0.781982 0.057587 0.868042 0.783966 0.057343 0.887939 0.785980 0.057343 0.906006 0.787994 0.057343 0.922485 0.789886 0.057343 0.937408 0.791809 0.057343 0.950989 0.793762 0.057343 0.963196 0.795624 0.057343 0.974182 0.797485 0.057343 0.983917 0.799316 0.057343 0.088043 0.768005 0.067535 0.112671 0.770111 0.067017 0.138611 0.772247 0.066437 0.165924 0.774353 0.065887 0.194702 0.776398 0.065338 0.225220 0.778503 0.064789 0.257721 0.780518 0.064301 0.292358 0.782623 0.063751 0.329224 0.784698 0.063202 0.367981 0.786682 0.062714 0.408661 0.788727 0.062164 0.450836 0.790741 0.061676 0.494263 0.792725 0.061157 0.538635 0.794708 0.060730 0.582581 0.796692 0.060211 0.624817 0.798615 0.059753 0.665039 0.800537 0.059326 0.702850 0.802490 0.058868 0.737793 0.804321 0.058411 0.769836 0.806274 0.058014 0.798859 0.808075 0.057617 0.825165 0.809937 0.057343 0.848999 0.811829 0.057343 0.870575 0.813568 0.057343 0.890228 0.815369 0.057343 0.908112 0.817108 0.057343 0.924347 0.818848 0.057343 0.939117 0.820526 0.057343 0.952515 0.822266 0.057343 0.964569 0.823914 0.057343 0.975372 0.825562 0.057343 0.984985 0.827179 0.057343 0.091064 0.799286 0.066437 0.115875 0.801178 0.065918 0.141968 0.803070 0.065369 0.169434 0.804962 0.064819 0.198425 0.806854 0.064301 0.229248 0.808746 0.063751 0.261993 0.810547 0.063232 0.296906 0.812408 0.062714 0.334015 0.814270 0.062164 0.373016 0.816071 0.061707 0.413849 0.817932 0.061157 0.456268 0.819733 0.060730 0.499847 0.821503 0.060242 0.544250 0.823303 0.059753 0.588013 0.825043 0.059326 0.630005 0.826752 0.058868 0.669952 0.828522 0.058441 0.707306 0.830231 0.058044 0.741974 0.831909 0.057648 0.773621 0.833588 0.057343 0.802246 0.835266 0.057343 0.828186 0.836914 0.057343 0.851715 0.838562 0.057343 0.873077 0.840149 0.057343 0.892487 0.841736 0.057343 0.910156 0.843353 0.057343 0.926147 0.844849 0.057343 0.940765 0.846405 0.057343 0.953918 0.847870 0.057343 0.965881 0.849365 0.057343 0.976562 0.850830 0.057343 0.985992 0.852234 0.057343 0.094116 0.827332 0.065369 0.119110 0.829041 0.064850 0.145355 0.830811 0.064331 0.172974 0.832489 0.063782 0.202271 0.834167 0.063263 0.233307 0.835876 0.062744 0.266266 0.837524 0.062195 0.301483 0.839233 0.061707 0.338806 0.840881 0.061188 0.378082 0.842529 0.060730 0.419159 0.844177 0.060272 0.461670 0.845825 0.059753 0.505402 0.847412 0.059357 0.549805 0.849030 0.058868 0.593323 0.850555 0.058441 0.635040 0.852142 0.058044 0.674744 0.853699 0.057648 0.711731 0.855194 0.057343 0.746002 0.856720 0.057343 0.777283 0.858276 0.057343 0.805542 0.859741 0.057343 0.831177 0.861237 0.057343 0.854401 0.862640 0.057343 0.875488 0.864075 0.057343 0.894653 0.865509 0.057343 0.912109 0.866913 0.057343 0.927948 0.868286 0.057343 0.942352 0.869659 0.057343 0.955383 0.870972 0.057343 0.967133 0.872284 0.057343 0.977661 0.873566 0.057343 0.987000 0.874817 0.057343 0.097229 0.852661 0.064331 0.122345 0.854187 0.063812 0.148773 0.855743 0.063263 0.176605 0.857269 0.062775 0.206055 0.858826 0.062225 0.237366 0.860382 0.061737 0.270599 0.861877 0.061218 0.306091 0.863403 0.060760 0.343719 0.864868 0.060272 0.383148 0.866364 0.059784 0.424438 0.867828 0.059357 0.467133 0.869293 0.058899 0.510925 0.870758 0.058441 0.555328 0.872162 0.058044 0.598572 0.873535 0.057648 0.640076 0.874969 0.057343 0.679382 0.876373 0.057343 0.716064 0.877747 0.057343 0.749969 0.879089 0.057343 0.780823 0.880493 0.057343 0.808746 0.881805 0.057343 0.834045 0.883087 0.057343 0.857025 0.884399 0.057343 0.877838 0.885651 0.057343 0.896759 0.886932 0.057343 0.913971 0.888153 0.057343 0.929688 0.889374 0.057343 0.943909 0.890594 0.057343 0.956726 0.891754 0.057343 0.968353 0.892944 0.057343 0.978760 0.894104 0.057343 0.987946 0.895233 0.057343 0.100281 0.875427 0.063293 0.125610 0.876862 0.062775 0.152222 0.878296 0.062225 0.180237 0.879669 0.061737 0.209961 0.881104 0.061249 0.241455 0.882477 0.060760 0.274963 0.883789 0.060303 0.310699 0.885162 0.059814 0.348572 0.886505 0.059387 0.388245 0.887848 0.058929 0.429657 0.889191 0.058472 0.472504 0.890442 0.058044 0.516388 0.891754 0.057648 0.560760 0.893097 0.057343 0.603790 0.894318 0.057343 0.645050 0.895599 0.057343 0.683990 0.896851 0.057343 0.720337 0.898071 0.057343 0.753815 0.899292 0.057343 0.784302 0.900513 0.057343 0.811890 0.901642 0.057343 0.836884 0.902832 0.057343 0.859558 0.903992 0.057343 0.880096 0.905121 0.057343 0.898834 0.906250 0.057343 0.915863 0.907349 0.057343 0.931305 0.908417 0.057343 0.945374 0.909515 0.057343 0.958069 0.910553 0.057343 0.969543 0.911560 0.057343 0.979797 0.912598 0.057343 0.988831 0.913574 0.057343 0.103455 0.896057 0.062256 0.128906 0.897369 0.061737 0.155701 0.898651 0.061249 0.183899 0.899872 0.060791 0.213776 0.901154 0.060303 0.245575 0.902374 0.059814 0.279358 0.903595 0.059418 0.315338 0.904846 0.058929 0.353455 0.906036 0.058472 0.393372 0.907227 0.058075 0.434967 0.908417 0.057648 0.477875 0.909607 0.057343 0.521912 0.910767 0.057343 0.566132 0.911926 0.057343 0.608948 0.913025 0.057343 0.649902 0.914185 0.057343 0.688538 0.915314 0.057343 0.724457 0.916412 0.057343 0.757629 0.917511 0.057343 0.787689 0.918549 0.057343 0.814880 0.919586 0.057343 0.839569 0.920654 0.057343 0.861969 0.921661 0.057343 0.882324 0.922699 0.057343 0.900787 0.923676 0.057343 0.917633 0.924652 0.057343 0.932922 0.925629 0.057343 0.946808 0.926544 0.057343 0.959351 0.927490 0.057343 0.970673 0.928406 0.057343 0.980774 0.929321 0.057343 0.989685 0.930176 0.057343 0.106598 0.914703 0.061279 0.132202 0.915863 0.060791 0.159180 0.916992 0.060303 0.187561 0.918121 0.059845 0.217682 0.919250 0.059418 0.249695 0.920380 0.058960 0.283722 0.921478 0.058502 0.320007 0.922607 0.058075 0.358215 0.923615 0.057648 0.398407 0.924744 0.057343 0.440155 0.925812 0.057343 0.483185 0.926849 0.057343 0.527283 0.927917 0.057343 0.571411 0.928955 0.057343 0.613922 0.929932 0.057343 0.654633 0.930939 0.057343 0.692932 0.931946 0.057343 0.728485 0.932922 0.057343 0.761230 0.933899 0.057343 0.790985 0.934845 0.057343 0.817871 0.935760 0.057343 0.842255 0.936707 0.057343 0.864349 0.937592 0.057343 0.884430 0.938507 0.057343 0.902771 0.939392 0.057343 0.919342 0.940247 0.057343 0.934479 0.941101 0.057343 0.948212 0.941956 0.057343 0.960571 0.942749 0.057343 0.971771 0.943542 0.057343 0.981720 0.944336 0.057343 0.990479 0.945099 0.057343 0.109741 0.931458 0.060333 0.135529 0.932556 0.059875 0.162628 0.933563 0.059448 0.191223 0.934601 0.058960 0.221558 0.935608 0.058502 0.253815 0.936646 0.058105 0.288147 0.937592 0.057678 0.324646 0.938599 0.057343 0.363129 0.939575 0.057343 0.403442 0.940491 0.057343 0.445312 0.941467 0.057343 0.488464 0.942383 0.057343 0.532654 0.943329 0.057343 0.576538 0.944244 0.057343 0.618896 0.945129 0.057343 0.659241 0.946045 0.057343 0.697266 0.946960 0.057343 0.732483 0.947784 0.057343 0.764832 0.948669 0.057343 0.794159 0.949493 0.057343 0.820709 0.950317 0.057343 0.844788 0.951141 0.057343 0.866638 0.951935 0.057343 0.886505 0.952728 0.057343 0.904602 0.953522 0.057343 0.921021 0.954285 0.057343 0.935944 0.955017 0.057343 0.949524 0.955750 0.057343 0.961792 0.956482 0.057343 0.972809 0.957184 0.057343 0.982605 0.957825 0.057343 0.991272 0.958496 0.057343 0.112915 0.946625 0.059448 0.138855 0.947571 0.058990 0.166138 0.948486 0.058533 0.194946 0.949402 0.058105 0.225464 0.950317 0.057678 0.257935 0.951233 0.057343 0.292480 0.952087 0.057343 0.329254 0.953003 0.057343 0.367920 0.953827 0.057343 0.408417 0.954712 0.057343 0.450470 0.955536 0.057343 0.493713 0.956390 0.057343 0.537933 0.957184 0.057343 0.581604 0.958008 0.057343 0.623718 0.958801 0.057343 0.663757 0.959595 0.057343 0.701416 0.960388 0.057343 0.736267 0.961151 0.057343 0.768280 0.961884 0.057343 0.797241 0.962616 0.057343 0.823456 0.963379 0.057343 0.847260 0.964081 0.057343 0.868835 0.964752 0.057343 0.888489 0.965454 0.057343 0.906372 0.966125 0.057343 0.922638 0.966766 0.057343 0.937378 0.967468 0.057343 0.950806 0.968079 0.057343 0.962891 0.968719 0.057343 0.973785 0.969299 0.057343 0.983459 0.969910 0.057343 0.992004 0.970520 0.057343 0.116089 0.960236 0.058533 0.142181 0.961090 0.058136 0.169647 0.961884 0.057709 0.198639 0.962677 0.057343 0.229370 0.963501 0.057343 0.262054 0.964294 0.057343 0.296844 0.965057 0.057343 0.333832 0.965851 0.057343 0.372681 0.966614 0.057343 0.413361 0.967377 0.057343 0.455536 0.968109 0.057343 0.498810 0.968872 0.057343 0.543060 0.969543 0.057343 0.586639 0.970306 0.057343 0.628418 0.970978 0.057343 0.668152 0.971710 0.057343 0.705414 0.972321 0.057343 0.739990 0.973022 0.057343 0.771606 0.973694 0.057343 0.800171 0.974335 0.057343 0.826111 0.974945 0.057343 0.849670 0.975586 0.057343 0.870972 0.976135 0.057343 0.890411 0.976776 0.057343 0.908051 0.977356 0.057343 0.924133 0.977936 0.057343 0.938751 0.978485 0.057343 0.951996 0.979004 0.057343 0.963959 0.979584 0.057343 0.974701 0.980072 0.057343 0.984283 0.980560 0.057343 0.992737 0.981079 0.057343 0.039215 0.000458 0.109955 0.060883 0.001068 0.109741 0.083405 0.001709 0.109558 0.107025 0.002411 0.109344 0.131836 0.003174 0.109070 0.157867 0.003906 0.108826 0.185394 0.004700 0.108521 0.214539 0.005493 0.108215 0.245392 0.006348 0.107910 0.278351 0.007202 0.107544 0.313354 0.008057 0.107178 0.350464 0.009003 0.106842 0.389343 0.009949 0.106445 0.429932 0.010895 0.105988 0.471924 0.011902 0.105591 0.515045 0.012939 0.105133 0.558685 0.013947 0.104706 0.601196 0.015015 0.104248 0.641998 0.016144 0.103760 0.680603 0.017242 0.103271 0.716827 0.018402 0.102783 0.750244 0.019562 0.102264 0.780792 0.020721 0.101746 0.808533 0.021942 0.101227 0.833618 0.023132 0.100708 0.856537 0.024414 0.100159 0.877350 0.025696 0.099609 0.896240 0.026947 0.099060 0.913483 0.028259 0.098450 0.929199 0.029602 0.097900 0.943481 0.030914 0.097351 0.956421 0.032288 0.096771 0.040466 0.021240 0.109558 0.062195 0.021973 0.109344 0.084900 0.022705 0.109100 0.108643 0.023468 0.108826 0.133606 0.024323 0.108521 0.159821 0.025116 0.108246 0.187469 0.026001 0.107910 0.216766 0.026855 0.107574 0.247955 0.027832 0.107208 0.281067 0.028778 0.106842 0.316345 0.029724 0.106445 0.353699 0.030762 0.106018 0.392822 0.031799 0.105591 0.433624 0.032867 0.105164 0.475830 0.033936 0.104736 0.519135 0.035034 0.104248 0.562805 0.036163 0.103760 0.605225 0.037354 0.103302 0.645935 0.038544 0.102814 0.684357 0.039734 0.102295 0.720367 0.040955 0.101746 0.753540 0.042175 0.101227 0.783875 0.043457 0.100708 0.811340 0.044739 0.100159 0.836243 0.046051 0.099640 0.858887 0.047394 0.099060 0.879486 0.048767 0.098480 0.898254 0.050110 0.097931 0.915344 0.051544 0.097351 0.930878 0.052948 0.096802 0.945007 0.054382 0.096191 0.957825 0.055847 0.095612 0.041840 0.043030 0.109100 0.063721 0.043854 0.108826 0.086487 0.044647 0.108521 0.110413 0.045532 0.108246 0.135468 0.046448 0.107941 0.161865 0.047333 0.107574 0.189728 0.048309 0.107208 0.219208 0.049316 0.106873 0.250610 0.050323 0.106445 0.283997 0.051361 0.106018 0.319519 0.052460 0.105621 0.357117 0.053558 0.105164 0.396515 0.054688 0.104736 0.437469 0.055817 0.104279 0.479889 0.057007 0.103790 0.523376 0.058228 0.103302 0.567017 0.059448 0.102844 0.609375 0.060730 0.102295 0.649902 0.061920 0.101776 0.688202 0.063263 0.101257 0.723969 0.064606 0.100739 0.756927 0.065918 0.100189 0.786926 0.067322 0.099640 0.814209 0.068695 0.099091 0.838837 0.070099 0.098511 0.861298 0.071533 0.097961 0.881714 0.072998 0.097382 0.900269 0.074463 0.096802 0.917236 0.075928 0.096222 0.932617 0.077423 0.095642 0.946594 0.078949 0.095032 0.959259 0.080536 0.094421 0.043304 0.065826 0.108521 0.065277 0.066742 0.108246 0.088226 0.067657 0.107941 0.112244 0.068665 0.107574 0.137451 0.069611 0.107208 0.164062 0.070648 0.106873 0.192108 0.071716 0.106445 0.221802 0.072754 0.106049 0.253418 0.073914 0.105621 0.287079 0.075073 0.105194 0.322876 0.076233 0.104767 0.360687 0.077454 0.104279 0.400360 0.078674 0.103790 0.441559 0.079926 0.103333 0.484161 0.081207 0.102844 0.527679 0.082458 0.102325 0.571442 0.083832 0.101776 0.613678 0.085175 0.101257 0.654022 0.086548 0.100739 0.692108 0.087952 0.100220 0.727661 0.089417 0.099670 0.760315 0.090820 0.099121 0.790131 0.092316 0.098511 0.817078 0.093842 0.097961 0.841492 0.095306 0.097412 0.863739 0.096863 0.096832 0.883942 0.098419 0.096222 0.902313 0.099976 0.095642 0.919067 0.101593 0.095062 0.934326 0.103149 0.094482 0.948212 0.104828 0.093872 0.960693 0.106445 0.093292 0.044891 0.089813 0.107971 0.066986 0.090820 0.107574 0.090057 0.091858 0.107239 0.114288 0.092926 0.106903 0.139618 0.094025 0.106476 0.166382 0.095154 0.106049 0.194641 0.096313 0.105652 0.224579 0.097504 0.105225 0.256409 0.098724 0.104797 0.290344 0.099976 0.104309 0.326385 0.101227 0.103821 0.364441 0.102570 0.103363 0.404327 0.103912 0.102875 0.445770 0.105255 0.102356 0.488556 0.106659 0.101807 0.532257 0.108063 0.101288 0.575928 0.109497 0.100769 0.618134 0.110992 0.100220 0.658264 0.112457 0.099701 0.696198 0.113983 0.099121 0.731445 0.115540 0.098541 0.763855 0.117065 0.097961 0.793304 0.118683 0.097412 0.819977 0.120270 0.096832 0.844177 0.121887 0.096252 0.866211 0.123566 0.095673 0.886169 0.125183 0.095093 0.904388 0.126892 0.094482 0.920990 0.128632 0.093872 0.936066 0.130280 0.093323 0.949768 0.132050 0.092712 0.962158 0.133850 0.092102 0.046600 0.115051 0.107239 0.068787 0.116150 0.106903 0.092041 0.117310 0.106476 0.116364 0.118530 0.106079 0.141876 0.119690 0.105682 0.168793 0.120972 0.105225 0.197327 0.122253 0.104797 0.227417 0.123566 0.104340 0.259521 0.124878 0.103851 0.293701 0.126251 0.103363 0.330078 0.127655 0.102875 0.368347 0.129089 0.102356 0.408447 0.130524 0.101837 0.450165 0.132019 0.101318 0.493103 0.133545 0.100769 0.536987 0.135010 0.100250 0.580566 0.136627 0.099701 0.622620 0.138214 0.099152 0.662567 0.139801 0.098572 0.700226 0.141449 0.097992 0.735260 0.143097 0.097443 0.767334 0.144745 0.096863 0.796509 0.146484 0.096252 0.822906 0.148224 0.095673 0.846893 0.149963 0.095093 0.868683 0.151703 0.094513 0.888428 0.153503 0.093903 0.906494 0.155304 0.093353 0.922913 0.157166 0.092712 0.937836 0.158997 0.092133 0.951355 0.160858 0.091522 0.963562 0.162750 0.090912 0.048401 0.141693 0.106476 0.070709 0.142944 0.106079 0.094086 0.144196 0.105682 0.118591 0.145538 0.105255 0.144257 0.146851 0.104828 0.171448 0.148224 0.104340 0.200073 0.149628 0.103851 0.230469 0.151093 0.103394 0.262787 0.152527 0.102875 0.297272 0.154053 0.102386 0.333832 0.155548 0.101837 0.372437 0.157104 0.101318 0.412781 0.158691 0.100800 0.454620 0.160309 0.100250 0.497772 0.161957 0.099731 0.541779 0.163605 0.099182 0.585297 0.165314 0.098572 0.627167 0.167023 0.097992 0.666931 0.168732 0.097473 0.704346 0.170532 0.096893 0.739105 0.172333 0.096283 0.770874 0.174133 0.095703 0.799744 0.175995 0.095123 0.825867 0.177826 0.094543 0.849579 0.179718 0.093933 0.871124 0.181641 0.093353 0.890717 0.183533 0.092743 0.908569 0.185486 0.092163 0.924805 0.187469 0.091553 0.939545 0.189423 0.090942 0.952942 0.191437 0.090393 0.964996 0.193512 0.089783 0.050293 0.169952 0.105713 0.072754 0.171326 0.105255 0.096252 0.172729 0.104828 0.120911 0.174194 0.104370 0.146790 0.175629 0.103882 0.174103 0.177185 0.103394 0.203003 0.178711 0.102875 0.233612 0.180267 0.102417 0.266235 0.181885 0.101868 0.300934 0.183502 0.101349 0.337769 0.185181 0.100830 0.376648 0.186890 0.100250 0.417206 0.188568 0.099762 0.459290 0.190369 0.099182 0.502625 0.192139 0.098602 0.546722 0.193909 0.098053 0.590149 0.195801 0.097504 0.631836 0.197662 0.096893 0.671387 0.199524 0.096313 0.708557 0.201447 0.095703 0.742981 0.203430 0.095123 0.774445 0.205353 0.094543 0.802979 0.207336 0.093933 0.828827 0.209320 0.093384 0.852264 0.211395 0.092743 0.873596 0.213470 0.092163 0.892975 0.215515 0.091583 0.910645 0.217621 0.090973 0.926697 0.219757 0.090393 0.941254 0.221832 0.089813 0.954498 0.224030 0.089203 0.966431 0.226227 0.088623 0.052307 0.199982 0.104828 0.074890 0.201477 0.104370 0.098541 0.203064 0.103882 0.123383 0.204681 0.103424 0.149384 0.206268 0.102905 0.176910 0.207947 0.102417 0.205994 0.209656 0.101868 0.236847 0.211365 0.101379 0.269745 0.213135 0.100830 0.304718 0.214874 0.100281 0.341919 0.216705 0.099762 0.380951 0.218597 0.099213 0.421753 0.220459 0.098633 0.464111 0.222382 0.098053 0.507568 0.224335 0.097504 0.551727 0.226257 0.096893 0.594971 0.228271 0.096313 0.636566 0.230286 0.095734 0.675903 0.232361 0.095184 0.712769 0.234436 0.094574 0.746826 0.236511 0.093994 0.778015 0.238678 0.093384 0.806274 0.240845 0.092773 0.831787 0.242981 0.092194 0.855011 0.245209 0.091583 0.876099 0.247406 0.090973 0.895264 0.249664 0.090424 0.912689 0.251953 0.089813 0.928589 0.254211 0.089233 0.942993 0.256531 0.088654 0.956055 0.258820 0.088074 0.967804 0.261139 0.087494 0.054413 0.232025 0.103912 0.077118 0.233704 0.103455 0.100922 0.235413 0.102936 0.125885 0.237213 0.102448 0.152130 0.238953 0.101898 0.179871 0.240845 0.101379 0.209106 0.242645 0.100861 0.240295 0.244537 0.100311 0.273438 0.246490 0.099792 0.308716 0.248413 0.099243 0.346130 0.250427 0.098633 0.385468 0.252502 0.098083 0.426483 0.254517 0.097504 0.468964 0.256622 0.096924 0.512634 0.258759 0.096344 0.556824 0.260895 0.095764 0.599976 0.263031 0.095184 0.641357 0.265289 0.094574 0.680420 0.267487 0.093994 0.717041 0.269745 0.093384 0.750793 0.272003 0.092804 0.781616 0.274353 0.092224 0.809509 0.276703 0.091614 0.834778 0.279022 0.091034 0.857727 0.281433 0.090424 0.878601 0.283813 0.089844 0.897522 0.286255 0.089264 0.914795 0.288696 0.088684 0.930481 0.291199 0.088104 0.944702 0.293640 0.087524 0.957611 0.296143 0.086975 0.969208 0.298645 0.086395 0.056610 0.266357 0.102936 0.079437 0.268158 0.102448 0.103424 0.270081 0.101929 0.128571 0.272095 0.101410 0.154968 0.274017 0.100861 0.182861 0.276001 0.100311 0.212372 0.278076 0.099792 0.243774 0.280121 0.099274 0.277191 0.282288 0.098663 0.312744 0.284393 0.098114 0.350494 0.286591 0.097534 0.390076 0.288879 0.096954 0.431305 0.291046 0.096375 0.473999 0.293335 0.095764 0.517822 0.295654 0.095215 0.562042 0.297974 0.094604 0.605011 0.300385 0.094025 0.646118 0.302734 0.093384 0.684998 0.305145 0.092804 0.721252 0.307617 0.092224 0.754700 0.310028 0.091644 0.785187 0.312592 0.091034 0.812775 0.315125 0.090424 0.837738 0.317627 0.089874 0.860443 0.320221 0.089264 0.881073 0.322815 0.088715 0.899780 0.325378 0.088135 0.916870 0.328033 0.087524 0.932343 0.330597 0.087006 0.946442 0.333282 0.086395 0.959167 0.335968 0.085876 0.970612 0.338654 0.085327 0.058868 0.303162 0.101929 0.081848 0.305145 0.101440 0.105988 0.307312 0.100861 0.131317 0.309418 0.100342 0.157867 0.311554 0.099792 0.186005 0.313782 0.099274 0.215729 0.315979 0.098694 0.247375 0.318268 0.098114 0.281128 0.320587 0.097534 0.316986 0.322876 0.096985 0.354919 0.325317 0.096375 0.394775 0.327698 0.095795 0.436218 0.330109 0.095215 0.479156 0.332611 0.094635 0.523041 0.335052 0.094025 0.567200 0.337555 0.093414 0.610077 0.340149 0.092834 0.650940 0.342682 0.092255 0.689545 0.345276 0.091675 0.725555 0.347961 0.091064 0.758636 0.350586 0.090454 0.788757 0.353271 0.089905 0.816010 0.355957 0.089294 0.840698 0.358612 0.088745 0.863129 0.361389 0.088135 0.883545 0.364166 0.087555 0.902008 0.366882 0.087006 0.918884 0.369690 0.086426 0.934174 0.372437 0.085876 0.948090 0.375275 0.085327 0.960663 0.378082 0.084778 0.971954 0.380890 0.084259 0.061218 0.342407 0.100891 0.084381 0.344574 0.100372 0.108643 0.346863 0.099823 0.134125 0.349121 0.099304 0.160919 0.351532 0.098694 0.189270 0.353943 0.098145 0.219208 0.356323 0.097534 0.251129 0.358795 0.096985 0.285156 0.361359 0.096405 0.321289 0.363770 0.095825 0.359497 0.366364 0.095215 0.399597 0.368927 0.094635 0.441254 0.371521 0.094025 0.484344 0.374176 0.093414 0.528381 0.376801 0.092865 0.572540 0.379517 0.092255 0.615204 0.382233 0.091675 0.655853 0.384949 0.091095 0.694122 0.387695 0.090485 0.729828 0.390533 0.089905 0.762573 0.393280 0.089325 0.792297 0.396118 0.088745 0.819244 0.398987 0.088165 0.843628 0.401825 0.087585 0.865784 0.404694 0.087006 0.885925 0.407562 0.086456 0.904236 0.410492 0.085876 0.920898 0.413452 0.085358 0.936035 0.416290 0.084808 0.949768 0.419281 0.084259 0.962158 0.422272 0.083740 0.973297 0.425140 0.083221 0.063690 0.383881 0.099823 0.086975 0.386230 0.099304 0.111389 0.388763 0.098724 0.137024 0.391144 0.098175 0.164032 0.393768 0.097565 0.192566 0.396332 0.097015 0.222809 0.398834 0.096436 0.254944 0.401489 0.095825 0.289276 0.404205 0.095245 0.325684 0.406830 0.094696 0.364197 0.409576 0.094055 0.404572 0.412354 0.093445 0.446442 0.415039 0.092865 0.489655 0.417847 0.092285 0.533844 0.420624 0.091705 0.577850 0.423523 0.091095 0.620300 0.426361 0.090485 0.660736 0.429199 0.089935 0.698730 0.432129 0.089325 0.734070 0.435028 0.088776 0.766418 0.437958 0.088196 0.795837 0.440979 0.087585 0.822449 0.443970 0.087006 0.846558 0.446899 0.086487 0.868439 0.449890 0.085907 0.888336 0.452881 0.085388 0.906433 0.455933 0.084808 0.922913 0.458984 0.084259 0.937836 0.461975 0.083771 0.951416 0.465027 0.083252 0.963623 0.468109 0.082733 0.974609 0.471130 0.082245 0.066162 0.427399 0.098755 0.089630 0.429962 0.098175 0.114258 0.432587 0.097565 0.140015 0.435181 0.097046 0.167236 0.437927 0.096436 0.195984 0.440613 0.095856 0.226471 0.443268 0.095276 0.258911 0.446106 0.094696 0.293457 0.448975 0.094055 0.330170 0.451721 0.093475 0.368988 0.454590 0.092896 0.409485 0.457428 0.092316 0.451630 0.460388 0.091736 0.495026 0.463287 0.091125 0.539307 0.466217 0.090546 0.583160 0.469177 0.089966 0.625458 0.472198 0.089355 0.665588 0.475128 0.088806 0.703308 0.478210 0.088196 0.738312 0.481262 0.087616 0.770294 0.484222 0.087036 0.799347 0.487366 0.086487 0.825592 0.490356 0.085938 0.849457 0.493439 0.085388 0.871094 0.496552 0.084839 0.890717 0.499664 0.084290 0.908600 0.502777 0.083771 0.924896 0.505890 0.083252 0.939636 0.509003 0.082764 0.953033 0.512115 0.082245 0.965088 0.515259 0.081757 0.975922 0.518341 0.081268 0.068756 0.472626 0.097595 0.092377 0.475342 0.097046 0.117096 0.478088 0.096466 0.143097 0.480835 0.095886 0.170532 0.483704 0.095276 0.199524 0.486572 0.094696 0.230194 0.489349 0.094086 0.262939 0.492340 0.093506 0.297821 0.495239 0.092926 0.334747 0.498169 0.092316 0.373810 0.501129 0.091736 0.414581 0.504028 0.091156 0.456940 0.507141 0.090546 0.500549 0.510193 0.089966 0.544861 0.513153 0.089386 0.588562 0.516235 0.088806 0.630615 0.519348 0.088226 0.670471 0.522369 0.087646 0.707886 0.525513 0.087067 0.742523 0.528717 0.086517 0.774139 0.531769 0.085938 0.802795 0.534912 0.085419 0.828735 0.537994 0.084869 0.852264 0.541138 0.084320 0.873657 0.544342 0.083801 0.893097 0.547333 0.083282 0.910736 0.550537 0.082764 0.926819 0.553619 0.082245 0.941376 0.556702 0.081787 0.954620 0.559814 0.081299 0.966522 0.562897 0.080841 0.977173 0.565887 0.080383 0.071411 0.519257 0.096497 0.095215 0.522156 0.095917 0.120087 0.524963 0.095306 0.146240 0.527832 0.094727 0.173889 0.530792 0.094116 0.203094 0.533752 0.093506 0.234070 0.536652 0.092926 0.267059 0.539673 0.092346 0.302246 0.542725 0.091766 0.339478 0.545654 0.091187 0.378784 0.548706 0.090576 0.419708 0.551697 0.089966 0.462280 0.554718 0.089417 0.506042 0.557739 0.088837 0.550446 0.560760 0.088257 0.593964 0.563904 0.087646 0.635803 0.566895 0.087067 0.675323 0.569916 0.086548 0.712433 0.573029 0.085968 0.746704 0.576080 0.085419 0.777954 0.579102 0.084869 0.806274 0.582153 0.084320 0.831848 0.585114 0.083832 0.855103 0.588226 0.083282 0.876251 0.591278 0.082764 0.895416 0.594238 0.082275 0.912842 0.597229 0.081787 0.928741 0.600250 0.081299 0.943146 0.603149 0.080841 0.956177 0.606171 0.080414 0.967896 0.609070 0.079956 0.978424 0.611969 0.079498 0.074127 0.566376 0.095337 0.098053 0.569183 0.094727 0.123169 0.572052 0.094147 0.149475 0.574890 0.093536 0.177307 0.577789 0.092926 0.206787 0.580719 0.092346 0.237946 0.583588 0.091797 0.271240 0.586517 0.091187 0.306671 0.589355 0.090607 0.344269 0.592316 0.089996 0.383820 0.595276 0.089417 0.424957 0.598206 0.088837 0.467712 0.601166 0.088257 0.511566 0.604095 0.087677 0.555969 0.606995 0.087097 0.599304 0.609955 0.086548 0.640900 0.612946 0.085968 0.680176 0.615814 0.085419 0.716919 0.618774 0.084900 0.750824 0.621765 0.084351 0.781677 0.624573 0.083832 0.809631 0.627533 0.083313 0.834930 0.630402 0.082794 0.857880 0.633270 0.082275 0.878754 0.636139 0.081787 0.897705 0.639008 0.081329 0.914948 0.641846 0.080872 0.930603 0.644653 0.080414 0.944855 0.647400 0.079987 0.957703 0.650238 0.079529 0.969299 0.653015 0.079102 0.979645 0.655731 0.079071 0.076935 0.611969 0.094177 0.100983 0.614746 0.093567 0.126251 0.617554 0.092957 0.152771 0.620270 0.092377 0.180817 0.623047 0.091797 0.210480 0.625885 0.091217 0.241943 0.628662 0.090607 0.275513 0.631500 0.089996 0.311279 0.634247 0.089447 0.349091 0.637054 0.088837 0.388885 0.639923 0.088287 0.430267 0.642670 0.087708 0.473175 0.645538 0.087128 0.517181 0.648346 0.086548 0.561523 0.651123 0.085999 0.604645 0.653900 0.085449 0.645996 0.656708 0.084900 0.684998 0.659485 0.084381 0.721405 0.662262 0.083832 0.754852 0.664917 0.083344 0.785339 0.667755 0.082825 0.812988 0.670471 0.082306 0.837952 0.673126 0.081818 0.860626 0.675842 0.081329 0.881226 0.678558 0.080872 0.899963 0.681152 0.080414 0.916992 0.683838 0.079987 0.932465 0.686462 0.079529 0.946503 0.689026 0.079132 0.959198 0.691620 0.079071 0.970612 0.694122 0.079071 0.980835 0.696747 0.079071 0.079773 0.655457 0.092987 0.103973 0.658142 0.092407 0.129425 0.660797 0.091797 0.156158 0.663391 0.091248 0.184387 0.666077 0.090637 0.214294 0.668762 0.090027 0.246002 0.671387 0.089478 0.279846 0.674072 0.088867 0.315857 0.676636 0.088318 0.353943 0.679352 0.087738 0.394012 0.682007 0.087128 0.435577 0.684631 0.086578 0.478668 0.687317 0.086029 0.522797 0.689911 0.085449 0.567047 0.692535 0.084930 0.610046 0.695129 0.084381 0.651123 0.697784 0.083832 0.689697 0.700317 0.083344 0.725769 0.702881 0.082825 0.758911 0.705414 0.082336 0.788971 0.707977 0.081818 0.816254 0.710541 0.081329 0.840881 0.712982 0.080872 0.863312 0.715485 0.080414 0.883667 0.717987 0.079987 0.902161 0.720367 0.079559 0.918976 0.722839 0.079132 0.934265 0.725281 0.079071 0.948120 0.727570 0.079071 0.960663 0.729950 0.079071 0.971893 0.732269 0.079071 0.981964 0.734558 0.079071 0.082672 0.696350 0.091827 0.107025 0.698883 0.091248 0.132660 0.701385 0.090637 0.159546 0.703827 0.090057 0.188019 0.706329 0.089478 0.218109 0.708801 0.088898 0.250122 0.711273 0.088348 0.284302 0.713776 0.087738 0.320526 0.716217 0.087158 0.358948 0.718719 0.086578 0.399170 0.721161 0.086029 0.440979 0.723602 0.085480 0.484192 0.726105 0.084961 0.528442 0.728485 0.084412 0.572601 0.730865 0.083862 0.615356 0.733307 0.083374 0.656036 0.735626 0.082855 0.694427 0.738037 0.082336 0.730133 0.740387 0.081848 0.762848 0.742676 0.081360 0.792572 0.745026 0.080872 0.819489 0.747375 0.080444 0.843811 0.749603 0.079987 0.865967 0.751862 0.079559 0.886047 0.754089 0.079132 0.904297 0.756287 0.079071 0.920929 0.758514 0.079071 0.936005 0.760559 0.079071 0.949707 0.762787 0.079071 0.962097 0.764862 0.079071 0.973206 0.766968 0.079071 0.983063 0.768982 0.079071 0.085602 0.734253 0.090668 0.110138 0.736542 0.090088 0.135925 0.738892 0.089508 0.163025 0.741119 0.088928 0.191650 0.743469 0.088348 0.222046 0.745697 0.087769 0.254303 0.748016 0.087189 0.288727 0.750305 0.086609 0.325287 0.752533 0.086090 0.363922 0.754822 0.085510 0.404419 0.757080 0.084961 0.446381 0.759277 0.084442 0.489746 0.761505 0.083893 0.534088 0.763733 0.083374 0.578094 0.765900 0.082886 0.620575 0.768066 0.082367 0.661011 0.770142 0.081848 0.699066 0.772339 0.081360 0.734406 0.774445 0.080902 0.766724 0.776550 0.080475 0.796051 0.778625 0.080017 0.822632 0.780701 0.079590 0.846680 0.782715 0.079163 0.868561 0.784729 0.079071 0.888397 0.786743 0.079071 0.906433 0.788666 0.079071 0.922852 0.790619 0.079071 0.937744 0.792542 0.079071 0.951263 0.794434 0.079071 0.963470 0.796295 0.079071 0.974426 0.798126 0.079071 0.984161 0.800018 0.079071 0.088593 0.768768 0.089508 0.113281 0.770905 0.088928 0.139191 0.772980 0.088379 0.166534 0.775085 0.087799 0.195404 0.777191 0.087189 0.225983 0.779236 0.086639 0.258545 0.781342 0.086090 0.293274 0.783417 0.085510 0.330078 0.785370 0.084961 0.368927 0.787415 0.084442 0.409607 0.789459 0.083893 0.451813 0.791443 0.083374 0.495331 0.793488 0.082886 0.539673 0.795441 0.082397 0.583588 0.797363 0.081879 0.625824 0.799347 0.081390 0.665924 0.801239 0.080933 0.703644 0.803192 0.080475 0.738617 0.805084 0.080017 0.770569 0.806946 0.079590 0.799530 0.808777 0.079163 0.825714 0.810638 0.079071 0.849487 0.812408 0.079071 0.871063 0.814240 0.079071 0.890656 0.815979 0.079071 0.908478 0.817719 0.079071 0.924713 0.819489 0.079071 0.939423 0.821167 0.079071 0.952789 0.822876 0.079071 0.964813 0.824554 0.079071 0.975586 0.826141 0.079071 0.985199 0.827789 0.079071 0.091614 0.799957 0.088379 0.116486 0.801880 0.087799 0.142548 0.803741 0.087250 0.170074 0.805634 0.086670 0.199188 0.807526 0.086090 0.229980 0.809387 0.085541 0.262787 0.811249 0.084991 0.297821 0.813141 0.084473 0.334869 0.814880 0.083923 0.373993 0.816803 0.083405 0.414886 0.818604 0.082886 0.457214 0.820343 0.082397 0.500854 0.822174 0.081909 0.545288 0.823914 0.081421 0.588989 0.825684 0.080933 0.630981 0.827454 0.080505 0.670807 0.829132 0.080048 0.708160 0.830872 0.079620 0.742737 0.832581 0.079193 0.774292 0.834198 0.079071 0.802887 0.835876 0.079071 0.828766 0.837524 0.079071 0.852203 0.839142 0.079071 0.873535 0.840729 0.079071 0.892883 0.842316 0.079071 0.910492 0.843872 0.079071 0.926514 0.845428 0.079071 0.941040 0.846924 0.079071 0.954254 0.848450 0.079071 0.966095 0.849915 0.079071 0.976746 0.851349 0.079071 0.986206 0.852814 0.079071 0.094696 0.827942 0.087250 0.119690 0.829712 0.086670 0.145966 0.831390 0.086121 0.173706 0.833130 0.085571 0.203003 0.834808 0.084991 0.234039 0.836487 0.084503 0.267090 0.838165 0.083954 0.302399 0.839844 0.083405 0.339752 0.841492 0.082916 0.379120 0.843140 0.082428 0.420135 0.844757 0.081909 0.462708 0.846405 0.081421 0.506439 0.848022 0.080933 0.550842 0.849579 0.080505 0.594360 0.851135 0.080078 0.636078 0.852722 0.079620 0.675598 0.854248 0.079224 0.712585 0.855804 0.079071 0.746765 0.857330 0.079071 0.777924 0.858795 0.079071 0.806152 0.860291 0.079071 0.831696 0.861786 0.079071 0.854889 0.863190 0.079071 0.875916 0.864624 0.079071 0.895050 0.865997 0.079071 0.912445 0.867401 0.079071 0.928253 0.868774 0.079071 0.942627 0.870117 0.079071 0.955627 0.871460 0.079071 0.967377 0.872772 0.079071 0.977875 0.874054 0.079071 0.987183 0.875305 0.079071 0.097778 0.853210 0.086121 0.122955 0.854797 0.085571 0.149353 0.856293 0.085022 0.177277 0.857849 0.084503 0.206818 0.859436 0.083954 0.238068 0.860901 0.083435 0.271423 0.862427 0.082916 0.306976 0.863983 0.082428 0.344574 0.865417 0.081940 0.384155 0.866882 0.081451 0.425385 0.868347 0.080963 0.468109 0.869812 0.080536 0.511963 0.871277 0.080078 0.556305 0.872681 0.079651 0.599579 0.874084 0.079224 0.641083 0.875488 0.079071 0.680237 0.876862 0.079071 0.716919 0.878235 0.079071 0.750702 0.879608 0.079071 0.781525 0.880951 0.079071 0.809326 0.882263 0.079071 0.834595 0.883545 0.079071 0.857452 0.884888 0.079071 0.878265 0.886139 0.079071 0.897125 0.887360 0.079071 0.914337 0.888611 0.079071 0.929993 0.889862 0.079071 0.944153 0.891022 0.079071 0.957001 0.892212 0.079071 0.968597 0.893402 0.079071 0.978912 0.894501 0.079071 0.988098 0.895630 0.079071 0.100891 0.875977 0.085052 0.126221 0.877380 0.084503 0.152802 0.878784 0.083984 0.180939 0.880188 0.083466 0.210663 0.881592 0.082947 0.242188 0.882965 0.082458 0.275787 0.884308 0.081940 0.311554 0.885651 0.081482 0.349426 0.886993 0.080994 0.389252 0.888336 0.080536 0.430634 0.889618 0.080109 0.473511 0.890961 0.079651 0.517456 0.892242 0.079224 0.561707 0.893524 0.079071 0.604767 0.894775 0.079071 0.645966 0.896057 0.079071 0.684845 0.897278 0.079071 0.721130 0.898499 0.079071 0.754547 0.899719 0.079071 0.784943 0.900879 0.079071 0.812469 0.902100 0.079071 0.837341 0.903229 0.079071 0.859985 0.904388 0.079071 0.880554 0.905548 0.079071 0.899200 0.906647 0.079071 0.916199 0.907745 0.079071 0.931641 0.908813 0.079071 0.945648 0.909912 0.079071 0.958313 0.910950 0.079071 0.969757 0.911957 0.079071 0.979950 0.912933 0.079071 0.988983 0.913940 0.079071 0.104004 0.896545 0.084015 0.129547 0.897827 0.083466 0.156311 0.899078 0.082947 0.184601 0.900330 0.082458 0.214569 0.901581 0.081970 0.246277 0.902832 0.081482 0.280212 0.904053 0.080994 0.316162 0.905273 0.080566 0.354309 0.906494 0.080109 0.394318 0.907684 0.079681 0.435852 0.908844 0.079254 0.478882 0.910034 0.079071 0.522919 0.911194 0.079071 0.567047 0.912323 0.079071 0.609894 0.913452 0.079071 0.650787 0.914612 0.079071 0.689331 0.915710 0.079071 0.725281 0.916809 0.079071 0.758301 0.917847 0.079071 0.788330 0.918945 0.079071 0.815521 0.919983 0.079071 0.840057 0.921021 0.079071 0.862427 0.922058 0.079071 0.882721 0.923065 0.079071 0.901184 0.924042 0.079071 0.917969 0.925018 0.079071 0.933228 0.925964 0.079071 0.947052 0.926880 0.079071 0.959595 0.927856 0.079071 0.970856 0.928711 0.079071 0.980957 0.929657 0.079071 0.989868 0.930481 0.079071 0.107178 0.915161 0.082977 0.132843 0.916290 0.082458 0.159760 0.917419 0.082001 0.188293 0.918549 0.081512 0.218384 0.919647 0.081024 0.250397 0.920807 0.080597 0.284546 0.921906 0.080139 0.320831 0.922974 0.079712 0.359222 0.924072 0.079285 0.399384 0.925171 0.079071 0.441071 0.926178 0.079071 0.484192 0.927246 0.079071 0.528290 0.928284 0.079071 0.572296 0.929321 0.079071 0.614899 0.930298 0.079071 0.655426 0.931305 0.079071 0.693726 0.932312 0.079071 0.729279 0.933289 0.079071 0.761932 0.934235 0.079071 0.791565 0.935211 0.079071 0.818390 0.936127 0.079071 0.842682 0.937012 0.079071 0.864777 0.937927 0.079071 0.884888 0.938843 0.079071 0.903076 0.939697 0.079071 0.919647 0.940582 0.079071 0.934784 0.941406 0.079071 0.948425 0.942230 0.079071 0.960815 0.943085 0.079071 0.971954 0.943848 0.079071 0.981903 0.944641 0.079071 0.990662 0.945374 0.079071 0.110382 0.931885 0.082001 0.136139 0.932922 0.081512 0.163269 0.933929 0.081055 0.191986 0.934967 0.080597 0.222290 0.935944 0.080139 0.254547 0.936951 0.079712 0.288971 0.937988 0.079285 0.325500 0.938934 0.079071 0.364014 0.939941 0.079071 0.404388 0.940887 0.079071 0.446259 0.941833 0.079071 0.489471 0.942749 0.079071 0.533661 0.943695 0.079071 0.577515 0.944580 0.079071 0.619812 0.945496 0.079071 0.660034 0.946381 0.079071 0.697998 0.947266 0.079071 0.733185 0.948120 0.079071 0.765472 0.948975 0.079071 0.794739 0.949799 0.079071 0.821259 0.950653 0.079071 0.845245 0.951447 0.079071 0.867065 0.952209 0.079071 0.886902 0.953033 0.079071 0.904907 0.953796 0.079071 0.921326 0.954529 0.079071 0.936218 0.955261 0.079071 0.949768 0.956024 0.079071 0.961975 0.956726 0.079071 0.972992 0.957397 0.079071 0.982788 0.958069 0.079071 0.991425 0.958740 0.079071 0.113525 0.946991 0.081055 0.139435 0.947906 0.080627 0.166748 0.948822 0.080170 0.195648 0.949768 0.079712 0.226196 0.950653 0.079285 0.258698 0.951538 0.079071 0.293335 0.952423 0.079071 0.330078 0.953278 0.079071 0.368835 0.954163 0.079071 0.409393 0.955017 0.079071 0.451355 0.955841 0.079071 0.494720 0.956665 0.079071 0.538879 0.957489 0.079071 0.582550 0.958313 0.079071 0.624664 0.959106 0.079071 0.664581 0.959869 0.079071 0.702148 0.960632 0.079071 0.737000 0.961426 0.079071 0.768860 0.962158 0.079071 0.797791 0.962921 0.079071 0.823975 0.963623 0.079071 0.847717 0.964325 0.079071 0.869263 0.965027 0.079071 0.888885 0.965729 0.079071 0.906677 0.966370 0.079071 0.922913 0.967041 0.079071 0.937653 0.967682 0.079071 0.951019 0.968323 0.079071 0.963104 0.968933 0.079071 0.973969 0.969513 0.079071 0.983643 0.970123 0.079071 0.992157 0.970703 0.079071 0.116699 0.960541 0.080170 0.142761 0.961365 0.079742 0.170288 0.962189 0.079285 0.199310 0.963013 0.079071 0.230072 0.963776 0.079071 0.262817 0.964600 0.079071 0.297699 0.965393 0.079071 0.334656 0.966125 0.079071 0.373596 0.966888 0.079071 0.414307 0.967651 0.079071 0.456451 0.968414 0.079071 0.499847 0.969116 0.079071 0.543976 0.969818 0.079071 0.587494 0.970551 0.079071 0.629333 0.971252 0.079071 0.668884 0.971893 0.079071 0.706207 0.972595 0.079071 0.740662 0.973297 0.079071 0.772186 0.973907 0.079071 0.800720 0.974548 0.079071 0.826599 0.975189 0.079071 0.850067 0.975800 0.079071 0.871368 0.976410 0.079071 0.890747 0.976990 0.079071 0.908356 0.977570 0.079071 0.924408 0.978149 0.079071 0.938995 0.978699 0.079071 0.952209 0.979248 0.079071 0.964172 0.979797 0.079071 0.974884 0.980286 0.079071 0.984436 0.980774 0.079071 0.992828 0.981262 0.079071 0.039490 0.000671 0.133972 0.061096 0.001312 0.133759 0.083679 0.001984 0.133545 0.107361 0.002686 0.133301 0.132141 0.003418 0.132996 0.158264 0.004150 0.132721 0.185730 0.004944 0.132416 0.214905 0.005798 0.132111 0.245850 0.006622 0.131744 0.278809 0.007507 0.131378 0.313904 0.008423 0.130981 0.351044 0.009369 0.130615 0.389984 0.010315 0.130188 0.430634 0.011261 0.129761 0.472626 0.012238 0.129333 0.515778 0.013306 0.128845 0.559418 0.014343 0.128357 0.601898 0.015411 0.127899 0.642731 0.016541 0.127380 0.681305 0.017670 0.126862 0.717438 0.018799 0.126312 0.750854 0.019958 0.125824 0.781403 0.021210 0.125275 0.809021 0.022400 0.124725 0.834167 0.023621 0.124146 0.856995 0.024902 0.123566 0.877716 0.026123 0.122986 0.896606 0.027466 0.122406 0.913818 0.028748 0.121796 0.929504 0.030090 0.121185 0.943787 0.031433 0.120575 0.956635 0.032776 0.119965 0.040710 0.021484 0.133545 0.062469 0.022217 0.133301 0.085175 0.023010 0.132996 0.108978 0.023743 0.132751 0.133911 0.024597 0.132416 0.160187 0.025452 0.132111 0.187897 0.026337 0.131744 0.217255 0.027252 0.131409 0.248413 0.028168 0.131012 0.281586 0.029114 0.130615 0.316956 0.030151 0.130188 0.354309 0.031128 0.129761 0.393494 0.032166 0.129333 0.434326 0.033264 0.128845 0.476532 0.034302 0.128387 0.519897 0.035431 0.127899 0.563599 0.036591 0.127380 0.605988 0.037750 0.126892 0.646667 0.038940 0.126343 0.685120 0.040192 0.125824 0.721008 0.041351 0.125305 0.754181 0.042664 0.124725 0.784454 0.043976 0.124176 0.811859 0.045258 0.123566 0.836731 0.046570 0.122986 0.859314 0.047913 0.122406 0.879913 0.049286 0.121826 0.898651 0.050690 0.121216 0.915680 0.052032 0.120605 0.931213 0.053467 0.119995 0.945312 0.054901 0.119385 0.958069 0.056335 0.118774 0.042114 0.043304 0.132996 0.063965 0.044098 0.132751 0.086823 0.045013 0.132416 0.110718 0.045837 0.132111 0.135834 0.046753 0.131775 0.162292 0.047729 0.131409 0.190155 0.048676 0.131012 0.219727 0.049713 0.130646 0.251129 0.050720 0.130188 0.284546 0.051758 0.129791 0.320190 0.052826 0.129364 0.357788 0.053955 0.128876 0.397217 0.055084 0.128418 0.438232 0.056244 0.127930 0.480652 0.057434 0.127411 0.524170 0.058624 0.126892 0.567871 0.059906 0.126343 0.610168 0.061096 0.125854 0.650696 0.062408 0.125305 0.688934 0.063751 0.124725 0.724609 0.065063 0.124207 0.757568 0.066406 0.123596 0.787567 0.067810 0.123016 0.814697 0.069214 0.122437 0.839355 0.070587 0.121826 0.861755 0.072052 0.121246 0.882111 0.073517 0.120636 0.900696 0.074982 0.119995 0.917572 0.076447 0.119385 0.932922 0.078003 0.118805 0.946869 0.079529 0.118195 0.959534 0.081055 0.117554 0.043579 0.066162 0.132446 0.065582 0.067108 0.132141 0.088562 0.067993 0.131775 0.112610 0.069000 0.131439 0.137878 0.070007 0.131042 0.164490 0.071045 0.130646 0.192566 0.072113 0.130219 0.222351 0.073181 0.129791 0.253967 0.074341 0.129364 0.287689 0.075470 0.128876 0.323547 0.076660 0.128418 0.361389 0.077850 0.127960 0.401093 0.079102 0.127411 0.442322 0.080414 0.126923 0.484924 0.081665 0.126373 0.528595 0.082977 0.125854 0.572266 0.084320 0.125336 0.614471 0.085693 0.124756 0.654877 0.087067 0.124207 0.692932 0.088470 0.123596 0.728333 0.089935 0.123047 0.761017 0.091400 0.122437 0.790680 0.092834 0.121857 0.817566 0.094330 0.121246 0.842010 0.095886 0.120636 0.864166 0.097412 0.120026 0.884369 0.098969 0.119415 0.902740 0.100586 0.118805 0.919434 0.102112 0.118225 0.934662 0.103760 0.117554 0.948456 0.105438 0.116974 0.960968 0.107025 0.116364 0.045197 0.090179 0.131805 0.067322 0.091187 0.131439 0.090424 0.092255 0.131042 0.114594 0.093323 0.130676 0.140015 0.094421 0.130219 0.166809 0.095581 0.129822 0.195099 0.096741 0.129395 0.225098 0.097961 0.128906 0.256989 0.099213 0.128448 0.290955 0.100433 0.127960 0.327057 0.101746 0.127441 0.365143 0.103027 0.126953 0.405060 0.104401 0.126373 0.446533 0.105774 0.125885 0.489349 0.107147 0.125366 0.533142 0.108582 0.124756 0.576813 0.110077 0.124237 0.618896 0.111511 0.123627 0.659058 0.113007 0.123047 0.696930 0.114532 0.122467 0.732147 0.116089 0.121887 0.764496 0.117645 0.121277 0.793854 0.119232 0.120667 0.820496 0.120850 0.120056 0.844666 0.122498 0.119415 0.866608 0.124146 0.118835 0.886627 0.125824 0.118225 0.904816 0.127533 0.117584 0.921356 0.129211 0.117004 0.936401 0.130951 0.116394 0.950043 0.132721 0.115753 0.962372 0.134460 0.115143 0.046906 0.115448 0.131073 0.069153 0.116577 0.130676 0.092407 0.117737 0.130249 0.116730 0.118927 0.129822 0.142365 0.120148 0.129395 0.169312 0.121429 0.128906 0.197784 0.122711 0.128448 0.227997 0.124054 0.127991 0.260101 0.125397 0.127472 0.294373 0.126801 0.126953 0.330750 0.128174 0.126404 0.369110 0.129608 0.125885 0.409271 0.131073 0.125366 0.450989 0.132568 0.124786 0.493988 0.134064 0.124268 0.537872 0.135620 0.123657 0.581512 0.137207 0.123077 0.623444 0.138794 0.122498 0.663391 0.140411 0.121887 0.701050 0.142090 0.121277 0.735931 0.143707 0.120697 0.768005 0.145416 0.120056 0.797089 0.147064 0.119446 0.823456 0.148865 0.118866 0.847412 0.150604 0.118256 0.869080 0.152374 0.117615 0.888885 0.154175 0.117004 0.906891 0.156036 0.116394 0.923248 0.157806 0.115784 0.938110 0.159668 0.115143 0.951630 0.161530 0.114532 0.963806 0.163422 0.113922 0.048706 0.142151 0.130280 0.071106 0.143402 0.129852 0.094513 0.144714 0.129395 0.118988 0.145996 0.128937 0.144745 0.147339 0.128479 0.171936 0.148773 0.127991 0.200562 0.150177 0.127472 0.231049 0.151611 0.126953 0.263367 0.153076 0.126434 0.297943 0.154633 0.125885 0.334595 0.156158 0.125397 0.373199 0.157684 0.124817 0.413574 0.159271 0.124268 0.455536 0.160919 0.123657 0.498657 0.162537 0.123108 0.542725 0.164215 0.122498 0.586243 0.165955 0.121918 0.628021 0.167664 0.121307 0.667816 0.169403 0.120697 0.705109 0.171173 0.120117 0.739838 0.172974 0.119476 0.771576 0.174805 0.118896 0.800293 0.176636 0.118286 0.826416 0.178528 0.117645 0.850128 0.180450 0.117035 0.871582 0.182312 0.116425 0.891144 0.184296 0.115814 0.908966 0.186218 0.115173 0.925171 0.188171 0.114532 0.939880 0.190186 0.113922 0.953186 0.192200 0.113312 0.965271 0.194183 0.112671 0.050659 0.170471 0.129395 0.073181 0.171814 0.128937 0.096710 0.173279 0.128479 0.121338 0.174713 0.127991 0.147247 0.176208 0.127502 0.174622 0.177673 0.126984 0.203522 0.179260 0.126434 0.234222 0.180847 0.125916 0.266815 0.182465 0.125397 0.301636 0.184113 0.124817 0.338562 0.185791 0.124268 0.377441 0.187469 0.123688 0.418060 0.189240 0.123108 0.460236 0.191010 0.122528 0.503510 0.192810 0.121948 0.547638 0.194641 0.121338 0.591064 0.196503 0.120728 0.632690 0.198334 0.120117 0.672272 0.200256 0.119507 0.709320 0.202179 0.118927 0.743713 0.204102 0.118286 0.775116 0.206055 0.117645 0.803589 0.208069 0.117065 0.829407 0.210083 0.116425 0.852814 0.212158 0.115814 0.874084 0.214203 0.115204 0.893433 0.216309 0.114563 0.911041 0.218414 0.113953 0.927063 0.220551 0.113342 0.941589 0.222656 0.112701 0.954773 0.224792 0.112152 0.966675 0.227020 0.111511 0.052673 0.200500 0.128510 0.075317 0.202118 0.127991 0.098999 0.203674 0.127502 0.123810 0.205231 0.127014 0.149933 0.206909 0.126465 0.177429 0.208527 0.125946 0.206604 0.210266 0.125427 0.237488 0.212006 0.124847 0.270386 0.213745 0.124298 0.305450 0.215576 0.123718 0.342682 0.217407 0.123138 0.381805 0.219238 0.122559 0.422668 0.221130 0.121948 0.465027 0.223114 0.121368 0.508484 0.225037 0.120758 0.552704 0.227081 0.120148 0.595886 0.229004 0.119537 0.637390 0.231079 0.118927 0.676758 0.233154 0.118317 0.713531 0.235168 0.117676 0.747620 0.237335 0.117065 0.778717 0.239471 0.116455 0.806854 0.241577 0.115845 0.832367 0.243835 0.115204 0.855530 0.246002 0.114563 0.876526 0.248260 0.113983 0.895721 0.250458 0.113342 0.913055 0.252747 0.112732 0.928925 0.255035 0.112152 0.943329 0.257324 0.111511 0.956360 0.259644 0.110962 0.968079 0.262054 0.110321 0.054749 0.232635 0.127533 0.077576 0.234314 0.127014 0.101379 0.236053 0.126495 0.126373 0.237823 0.125946 0.152649 0.239685 0.125427 0.180389 0.241486 0.124878 0.209747 0.243378 0.124298 0.240936 0.245270 0.123718 0.274078 0.247162 0.123169 0.309448 0.249207 0.122559 0.346954 0.251190 0.121979 0.386322 0.253235 0.121368 0.427429 0.255280 0.120758 0.469910 0.257324 0.120178 0.513580 0.259521 0.119537 0.557831 0.261688 0.118958 0.600891 0.263855 0.118347 0.642181 0.266052 0.117706 0.681274 0.268280 0.117065 0.717804 0.270569 0.116486 0.751526 0.272888 0.115875 0.782288 0.275208 0.115234 0.810089 0.277527 0.114594 0.835327 0.279907 0.113983 0.858246 0.282349 0.113373 0.879028 0.284698 0.112732 0.897980 0.287170 0.112183 0.915161 0.289520 0.111542 0.930817 0.292053 0.110962 0.945007 0.294617 0.110352 0.957886 0.297028 0.109741 0.969482 0.299591 0.109161 0.056976 0.266937 0.126495 0.079926 0.268890 0.125977 0.103851 0.270782 0.125427 0.129059 0.272766 0.124878 0.155518 0.274719 0.124329 0.183411 0.276764 0.123749 0.213013 0.278839 0.123169 0.244476 0.280914 0.122589 0.277893 0.283020 0.122009 0.313568 0.285248 0.121399 0.351349 0.287445 0.120789 0.390900 0.289612 0.120178 0.432251 0.291931 0.119568 0.474945 0.294128 0.118988 0.518799 0.296478 0.118347 0.562988 0.298859 0.117737 0.605927 0.301208 0.117096 0.647034 0.303619 0.116486 0.685852 0.306091 0.115875 0.722076 0.308533 0.115265 0.755432 0.311005 0.114624 0.785889 0.313538 0.114014 0.813354 0.316010 0.113403 0.838318 0.318604 0.112762 0.860931 0.321106 0.112213 0.881500 0.323700 0.111542 0.900208 0.326355 0.110962 0.917236 0.328949 0.110382 0.932739 0.331604 0.109772 0.946747 0.334320 0.109192 0.959412 0.336914 0.108612 0.970856 0.339661 0.108063 0.059296 0.303864 0.125458 0.082336 0.305939 0.124908 0.106445 0.308014 0.124359 0.131805 0.310181 0.123779 0.158478 0.312408 0.123199 0.186584 0.314575 0.122620 0.216400 0.316803 0.122009 0.248108 0.319153 0.121399 0.281830 0.321442 0.120819 0.317749 0.323792 0.120209 0.355743 0.326141 0.119598 0.395660 0.328522 0.118988 0.437195 0.330994 0.118378 0.480072 0.333466 0.117767 0.524078 0.335968 0.117126 0.568268 0.338562 0.116516 0.611023 0.341064 0.115906 0.651825 0.343658 0.115295 0.690399 0.346283 0.114655 0.726318 0.348877 0.114044 0.759399 0.351562 0.113403 0.789429 0.354279 0.112762 0.816589 0.356934 0.112213 0.841248 0.359650 0.111572 0.863586 0.362335 0.110992 0.883942 0.365143 0.110413 0.902435 0.367920 0.109772 0.919250 0.370667 0.109222 0.934540 0.373535 0.108612 0.948395 0.376343 0.108063 0.960938 0.379120 0.107483 0.972229 0.381958 0.106903 0.061646 0.343170 0.124359 0.084869 0.345428 0.123779 0.109131 0.347687 0.123230 0.134644 0.350067 0.122620 0.161530 0.352417 0.122040 0.189850 0.354797 0.121429 0.219879 0.357239 0.120850 0.251831 0.359741 0.120209 0.285858 0.362122 0.119629 0.322144 0.364716 0.119019 0.360352 0.367279 0.118408 0.400482 0.369873 0.117767 0.442261 0.372498 0.117126 0.485291 0.375122 0.116547 0.529449 0.377838 0.115906 0.573547 0.380524 0.115295 0.616089 0.383209 0.114685 0.656738 0.385986 0.114075 0.695038 0.388763 0.113434 0.730591 0.391510 0.112823 0.763306 0.394379 0.112213 0.792969 0.397156 0.111603 0.819824 0.400024 0.110992 0.844177 0.402863 0.110413 0.866272 0.405731 0.109802 0.886353 0.408661 0.109253 0.904663 0.411591 0.108643 0.921265 0.414490 0.108093 0.936371 0.417419 0.107513 0.950073 0.420410 0.106903 0.962433 0.423279 0.106415 0.973541 0.426270 0.105865 0.064117 0.384735 0.123230 0.087463 0.387238 0.122650 0.111908 0.389648 0.122070 0.137573 0.392151 0.121460 0.164642 0.394745 0.120850 0.193176 0.397217 0.120239 0.223511 0.399841 0.119629 0.255707 0.402405 0.119049 0.290009 0.405121 0.118408 0.326569 0.407867 0.117798 0.365051 0.410492 0.117157 0.405457 0.413269 0.116547 0.447388 0.416077 0.115936 0.490662 0.418823 0.115326 0.534912 0.421692 0.114685 0.578888 0.424591 0.114075 0.621246 0.427399 0.113464 0.661621 0.430298 0.112823 0.699585 0.433258 0.112213 0.734833 0.436127 0.111603 0.767212 0.439117 0.111023 0.796478 0.441956 0.110443 0.823029 0.445007 0.109833 0.847107 0.448029 0.109253 0.868927 0.450958 0.108673 0.888794 0.454010 0.108093 0.906860 0.457092 0.107513 0.923248 0.460022 0.106934 0.938171 0.463104 0.106445 0.951721 0.466217 0.105865 0.963898 0.469177 0.105377 0.974884 0.472229 0.104858 0.066650 0.428314 0.122070 0.090149 0.430969 0.121490 0.114746 0.433502 0.120880 0.140625 0.436188 0.120270 0.167877 0.438904 0.119659 0.196655 0.441589 0.119049 0.227203 0.444366 0.118439 0.259613 0.447113 0.117828 0.294250 0.449951 0.117188 0.331085 0.452759 0.116577 0.369843 0.455658 0.115967 0.410461 0.458527 0.115356 0.452637 0.461426 0.114716 0.496063 0.464325 0.114105 0.540405 0.467316 0.113495 0.584229 0.470276 0.112854 0.626373 0.473267 0.112244 0.666504 0.476318 0.111633 0.704132 0.479279 0.111053 0.739075 0.482300 0.110474 0.771057 0.485413 0.109863 0.799988 0.488434 0.109283 0.826172 0.491547 0.108673 0.849976 0.494629 0.108124 0.871552 0.497681 0.107544 0.891174 0.500824 0.106964 0.909027 0.503937 0.106445 0.925232 0.507050 0.105896 0.939972 0.510193 0.105377 0.953308 0.513184 0.104889 0.965393 0.516327 0.104370 0.976135 0.519501 0.103851 0.069244 0.473633 0.120911 0.092896 0.476379 0.120270 0.117645 0.479126 0.119690 0.143707 0.481934 0.119080 0.171143 0.484680 0.118469 0.200134 0.487610 0.117828 0.230927 0.490448 0.117188 0.263641 0.493286 0.116608 0.298615 0.496277 0.115967 0.335693 0.499237 0.115356 0.374725 0.502167 0.114746 0.415558 0.505188 0.114136 0.457947 0.508240 0.113495 0.501465 0.511261 0.112885 0.545959 0.514313 0.112274 0.589478 0.517334 0.111664 0.631561 0.520447 0.111053 0.671387 0.523560 0.110474 0.708710 0.526642 0.109894 0.743256 0.529785 0.109283 0.774902 0.532867 0.108704 0.803406 0.535980 0.108154 0.829315 0.539154 0.107544 0.852814 0.542328 0.106995 0.874146 0.545380 0.106445 0.893555 0.548553 0.105927 0.911163 0.551697 0.105408 0.927185 0.554718 0.104889 0.941742 0.557861 0.104370 0.954895 0.560852 0.103882 0.966766 0.563965 0.103394 0.977417 0.567047 0.102905 0.071930 0.520325 0.119690 0.095734 0.523132 0.119110 0.120636 0.526031 0.118500 0.146881 0.528961 0.117859 0.174561 0.531921 0.117218 0.203766 0.534821 0.116608 0.234802 0.537781 0.115997 0.267792 0.540710 0.115387 0.303040 0.543762 0.114746 0.340393 0.546783 0.114166 0.379669 0.549713 0.113525 0.420776 0.552826 0.112885 0.463379 0.555878 0.112274 0.507050 0.558838 0.111694 0.551483 0.561920 0.111053 0.594971 0.565002 0.110504 0.636719 0.567993 0.109894 0.676270 0.571106 0.109314 0.713196 0.574097 0.108734 0.747437 0.577118 0.108154 0.778656 0.580231 0.107574 0.806885 0.583221 0.106995 0.832458 0.586273 0.106476 0.855652 0.589325 0.105927 0.876678 0.592316 0.105438 0.895844 0.595306 0.104889 0.913239 0.598358 0.104401 0.929077 0.601318 0.103882 0.943451 0.604279 0.103424 0.956482 0.607208 0.102936 0.968170 0.610107 0.102509 0.978668 0.613098 0.102020 0.074677 0.567413 0.118500 0.098633 0.570251 0.117859 0.123718 0.573059 0.117249 0.150146 0.575928 0.116608 0.177948 0.578796 0.116028 0.207428 0.581726 0.115417 0.238708 0.584625 0.114746 0.271973 0.587524 0.114197 0.307526 0.590485 0.113556 0.345184 0.593475 0.112915 0.384674 0.596344 0.112335 0.425995 0.599274 0.111694 0.468750 0.602234 0.111084 0.512573 0.605164 0.110535 0.557037 0.608154 0.109924 0.600311 0.611023 0.109344 0.641846 0.613983 0.108734 0.681061 0.616913 0.108185 0.717712 0.619812 0.107605 0.751587 0.622803 0.107025 0.782379 0.625702 0.106476 0.810242 0.628540 0.105957 0.835480 0.631500 0.105438 0.858429 0.634369 0.104889 0.879181 0.637177 0.104431 0.898132 0.640015 0.103912 0.915344 0.642883 0.103424 0.930939 0.645630 0.102936 0.945129 0.648499 0.102509 0.957947 0.651215 0.102051 0.969543 0.653992 0.101746 0.979858 0.656738 0.101746 0.077484 0.612976 0.117279 0.101593 0.615753 0.116638 0.126831 0.618500 0.116028 0.153442 0.621338 0.115417 0.181458 0.624084 0.114777 0.211182 0.626923 0.114197 0.242706 0.629700 0.113556 0.276276 0.632477 0.112946 0.312103 0.635345 0.112335 0.350006 0.638123 0.111725 0.389771 0.640900 0.111115 0.431305 0.643768 0.110535 0.474243 0.646545 0.109924 0.518188 0.649323 0.109375 0.562592 0.652130 0.108765 0.605621 0.654907 0.108215 0.646942 0.657715 0.107635 0.685852 0.660492 0.107025 0.722168 0.663208 0.106506 0.755615 0.665985 0.105988 0.786072 0.668701 0.105469 0.813568 0.671417 0.104919 0.838531 0.674164 0.104431 0.861145 0.676849 0.103912 0.881653 0.679504 0.103455 0.900360 0.682190 0.102966 0.917358 0.684784 0.102539 0.932831 0.687378 0.102051 0.946777 0.690033 0.101746 0.959442 0.692566 0.101746 0.970856 0.695099 0.101746 0.981018 0.697693 0.101746 0.080322 0.656464 0.116058 0.104553 0.659058 0.115448 0.130035 0.661713 0.114777 0.156799 0.664429 0.114227 0.185028 0.667023 0.113586 0.214966 0.669708 0.112946 0.246796 0.672394 0.112366 0.280609 0.675049 0.111755 0.316742 0.677704 0.111115 0.354919 0.680359 0.110565 0.394928 0.682953 0.109955 0.436615 0.685638 0.109375 0.479645 0.688202 0.108795 0.523834 0.690857 0.108215 0.568146 0.693542 0.107635 0.610962 0.696075 0.107056 0.651978 0.698700 0.106537 0.690613 0.701324 0.105988 0.726593 0.703796 0.105499 0.759644 0.706390 0.104950 0.789703 0.708923 0.104462 0.816864 0.711395 0.103912 0.841492 0.713959 0.103455 0.863831 0.716400 0.102966 0.884125 0.718811 0.102539 0.902557 0.721283 0.102081 0.919342 0.723663 0.101746 0.934601 0.726105 0.101746 0.948425 0.728455 0.101746 0.960938 0.730774 0.101746 0.972168 0.733124 0.101746 0.982208 0.735443 0.101746 0.083221 0.697296 0.114807 0.107605 0.699738 0.114258 0.133240 0.702209 0.113617 0.160217 0.704803 0.112976 0.188660 0.707214 0.112396 0.218872 0.709717 0.111755 0.250946 0.712219 0.111145 0.285095 0.714661 0.110596 0.321472 0.717133 0.109985 0.359833 0.719666 0.109406 0.400146 0.722076 0.108795 0.442047 0.724518 0.108246 0.485138 0.726929 0.107666 0.529449 0.729370 0.107086 0.573700 0.731781 0.106537 0.616272 0.734131 0.105988 0.657043 0.736542 0.105499 0.695282 0.738922 0.104950 0.730896 0.741211 0.104462 0.763580 0.743591 0.103912 0.793274 0.745880 0.103455 0.820038 0.748169 0.102997 0.844391 0.750427 0.102539 0.866425 0.752655 0.102081 0.886475 0.754883 0.101746 0.904724 0.757111 0.101746 0.921265 0.759247 0.101746 0.936340 0.761414 0.101746 0.949982 0.763580 0.101746 0.962341 0.765656 0.101746 0.973450 0.767731 0.101746 0.983307 0.769775 0.101746 0.086182 0.735107 0.113647 0.110718 0.737366 0.113007 0.136536 0.739685 0.112396 0.163727 0.742035 0.111786 0.192352 0.744324 0.111176 0.222778 0.746582 0.110596 0.255096 0.748871 0.109985 0.289490 0.751099 0.109436 0.326172 0.753418 0.108826 0.364807 0.755585 0.108246 0.405334 0.757843 0.107666 0.447418 0.760071 0.107086 0.490753 0.762268 0.106567 0.535126 0.764496 0.106018 0.579163 0.766693 0.105530 0.621582 0.768829 0.104980 0.662018 0.770966 0.104492 0.699951 0.773102 0.103943 0.735168 0.775177 0.103485 0.767487 0.777283 0.102997 0.796753 0.779419 0.102539 0.823212 0.781433 0.102081 0.847229 0.783478 0.101746 0.868988 0.785431 0.101746 0.888794 0.787415 0.101746 0.906830 0.789398 0.101746 0.923157 0.791290 0.101746 0.938049 0.793243 0.101746 0.951538 0.795166 0.101746 0.963715 0.796997 0.101746 0.974640 0.798859 0.101746 0.984344 0.800690 0.101746 0.089142 0.769562 0.112427 0.113861 0.771667 0.111816 0.139862 0.773804 0.111176 0.167206 0.775848 0.110596 0.196075 0.777954 0.110016 0.226746 0.779999 0.109436 0.259338 0.782104 0.108856 0.294067 0.784119 0.108246 0.330963 0.786163 0.107697 0.369873 0.788147 0.107117 0.410583 0.790192 0.106598 0.452820 0.792206 0.106018 0.496307 0.794159 0.105530 0.540741 0.796173 0.105011 0.584595 0.798126 0.104492 0.626770 0.800049 0.103973 0.666901 0.801971 0.103485 0.704529 0.803894 0.102997 0.739319 0.805725 0.102570 0.771240 0.807617 0.102112 0.800110 0.809448 0.101746 0.826324 0.811279 0.101746 0.850006 0.813110 0.101746 0.871490 0.814850 0.101746 0.891083 0.816620 0.101746 0.908875 0.818390 0.101746 0.925049 0.820099 0.101746 0.939728 0.821838 0.101746 0.953064 0.823517 0.101746 0.965027 0.825104 0.101746 0.975800 0.826752 0.101746 0.985382 0.828369 0.101746 0.092224 0.800690 0.111206 0.117065 0.802521 0.110626 0.143219 0.804413 0.110046 0.170776 0.806335 0.109436 0.199829 0.808197 0.108887 0.230743 0.810059 0.108276 0.263611 0.811951 0.107727 0.298615 0.813751 0.107147 0.335785 0.815613 0.106598 0.374908 0.817413 0.106049 0.415802 0.819244 0.105530 0.458313 0.821014 0.105011 0.501862 0.822815 0.104523 0.546356 0.824585 0.103973 0.589996 0.826355 0.103516 0.631866 0.828064 0.103027 0.671722 0.829773 0.102570 0.709015 0.831512 0.102112 0.743439 0.833160 0.101746 0.774963 0.834839 0.101746 0.803436 0.836487 0.101746 0.829315 0.838135 0.101746 0.852722 0.839722 0.101746 0.873932 0.841309 0.101746 0.893311 0.842896 0.101746 0.910858 0.844452 0.101746 0.926849 0.846008 0.101746 0.941376 0.847504 0.101746 0.954498 0.848999 0.101746 0.966339 0.850433 0.101746 0.976959 0.851898 0.101746 0.986389 0.853333 0.101746 0.095276 0.828613 0.110046 0.120270 0.830322 0.109467 0.146606 0.832062 0.108887 0.174347 0.833740 0.108276 0.203674 0.835388 0.107758 0.234802 0.837128 0.107147 0.267853 0.838776 0.106628 0.303223 0.840454 0.106079 0.340607 0.842102 0.105530 0.380005 0.843719 0.105042 0.421082 0.845367 0.104553 0.463715 0.846985 0.104004 0.507416 0.848572 0.103516 0.551880 0.850159 0.103027 0.595306 0.851746 0.102600 0.636993 0.853302 0.102142 0.676483 0.854828 0.101746 0.713348 0.856323 0.101746 0.747498 0.857819 0.101746 0.778625 0.859375 0.101746 0.806763 0.860809 0.101746 0.832245 0.862274 0.101746 0.855377 0.863708 0.101746 0.876373 0.865143 0.101746 0.895447 0.866516 0.101746 0.912811 0.867920 0.101746 0.928589 0.869263 0.101746 0.942932 0.870605 0.101746 0.955902 0.871918 0.101746 0.967590 0.873230 0.101746 0.978058 0.874512 0.101746 0.987366 0.875793 0.101746 0.098419 0.853790 0.108887 0.123566 0.855316 0.108307 0.150055 0.856873 0.107758 0.177979 0.858429 0.107178 0.207520 0.859955 0.106659 0.238892 0.861481 0.106079 0.272217 0.862976 0.105560 0.307800 0.864471 0.105072 0.345551 0.865967 0.104553 0.385071 0.867401 0.104004 0.426361 0.868896 0.103546 0.469116 0.870361 0.103058 0.512970 0.871765 0.102600 0.557373 0.873199 0.102142 0.600586 0.874634 0.101746 0.641968 0.876007 0.101746 0.681152 0.877380 0.101746 0.717682 0.878754 0.101746 0.751404 0.880096 0.101746 0.782166 0.881409 0.101746 0.809906 0.882721 0.101746 0.835114 0.884033 0.101746 0.857941 0.885315 0.101746 0.878662 0.886597 0.101746 0.897522 0.887848 0.101746 0.914703 0.889099 0.101746 0.930298 0.890259 0.101746 0.944458 0.891449 0.101746 0.957245 0.892609 0.101746 0.968811 0.893768 0.101746 0.979156 0.894928 0.101746 0.988281 0.896027 0.101746 0.101501 0.876495 0.107758 0.126831 0.877899 0.107208 0.153503 0.879303 0.106659 0.181580 0.880676 0.106110 0.211365 0.882050 0.105591 0.242981 0.883453 0.105072 0.276581 0.884796 0.104584 0.312439 0.886139 0.104034 0.350342 0.887543 0.103546 0.390137 0.888794 0.103088 0.431641 0.890137 0.102631 0.474548 0.891418 0.102173 0.518463 0.892731 0.101746 0.562744 0.894012 0.101746 0.605743 0.895233 0.101746 0.646820 0.896484 0.101746 0.685699 0.897736 0.101746 0.721924 0.898956 0.101746 0.755219 0.900146 0.101746 0.785583 0.901367 0.101746 0.813019 0.902496 0.101746 0.837891 0.903687 0.101746 0.860474 0.904846 0.101746 0.880951 0.905914 0.101746 0.899567 0.907074 0.101746 0.916534 0.908112 0.101746 0.931915 0.909241 0.101746 0.945892 0.910278 0.101746 0.958557 0.911285 0.101746 0.969971 0.912323 0.101746 0.980164 0.913330 0.101746 0.989166 0.914337 0.101746 0.104645 0.897034 0.106689 0.130127 0.898285 0.106140 0.156982 0.899567 0.105591 0.185242 0.900787 0.105072 0.215271 0.902008 0.104584 0.247070 0.903290 0.104034 0.280975 0.904510 0.103577 0.317078 0.905731 0.103088 0.355225 0.906952 0.102631 0.395233 0.908112 0.102173 0.436890 0.909302 0.101746 0.479919 0.910461 0.101746 0.523895 0.911591 0.101746 0.568115 0.912750 0.101746 0.610779 0.913849 0.101746 0.651611 0.915009 0.101746 0.690216 0.916138 0.101746 0.725983 0.917175 0.101746 0.759003 0.918243 0.101746 0.788940 0.919342 0.101746 0.816010 0.920349 0.101746 0.840607 0.921417 0.101746 0.862885 0.922424 0.101746 0.883118 0.923401 0.101746 0.901550 0.924408 0.101746 0.918243 0.925354 0.101746 0.933502 0.926300 0.101746 0.947357 0.927246 0.101746 0.959839 0.928131 0.101746 0.971100 0.929047 0.101746 0.981140 0.929962 0.101746 0.989990 0.930817 0.101746 0.107758 0.915527 0.105621 0.133453 0.916718 0.105103 0.160461 0.917847 0.104614 0.188934 0.918945 0.104065 0.219116 0.920074 0.103607 0.251221 0.921173 0.103088 0.285370 0.922272 0.102661 0.321716 0.923370 0.102203 0.360077 0.924469 0.101746 0.400269 0.925537 0.101746 0.442078 0.926575 0.101746 0.485138 0.927612 0.101746 0.529297 0.928650 0.101746 0.573334 0.929718 0.101746 0.615814 0.930664 0.101746 0.656342 0.931671 0.101746 0.694580 0.932709 0.101746 0.730042 0.933624 0.101746 0.762604 0.934601 0.101746 0.792175 0.935547 0.101746 0.818939 0.936462 0.101746 0.843201 0.937378 0.101746 0.865204 0.938263 0.101746 0.885223 0.939148 0.101746 0.903442 0.940063 0.101746 0.919983 0.940857 0.101746 0.935028 0.941711 0.101746 0.948700 0.942535 0.101746 0.961029 0.943329 0.101746 0.972168 0.944122 0.101746 0.982056 0.944916 0.101746 0.990814 0.945679 0.101746 0.110962 0.932251 0.104614 0.136749 0.933289 0.104095 0.163971 0.934326 0.103607 0.192627 0.935333 0.103119 0.222992 0.936340 0.102692 0.255341 0.937347 0.102203 0.289703 0.938324 0.101776 0.326355 0.939301 0.101746 0.364960 0.940277 0.101746 0.405304 0.941223 0.101746 0.447266 0.942169 0.101746 0.490417 0.943085 0.101746 0.534637 0.944031 0.101746 0.578491 0.944946 0.101746 0.620667 0.945801 0.101746 0.660950 0.946716 0.101746 0.698853 0.947601 0.101746 0.733887 0.948425 0.101746 0.766113 0.949249 0.101746 0.795349 0.950134 0.101746 0.821777 0.950928 0.101746 0.845703 0.951721 0.101746 0.867462 0.952515 0.101746 0.887238 0.953308 0.101746 0.905273 0.954041 0.101746 0.921631 0.954803 0.101746 0.936493 0.955536 0.101746 0.949982 0.956299 0.101746 0.962219 0.956970 0.101746 0.973175 0.957672 0.101746 0.982971 0.958344 0.101746 0.991577 0.959015 0.101746 0.114136 0.947327 0.103638 0.140076 0.948273 0.103149 0.167450 0.949188 0.102692 0.196289 0.950043 0.102234 0.226929 0.950989 0.101776 0.259460 0.951904 0.101746 0.294098 0.952728 0.101746 0.330933 0.953613 0.101746 0.369690 0.954468 0.101746 0.410278 0.955322 0.101746 0.452332 0.956177 0.101746 0.495636 0.956970 0.101746 0.539825 0.957794 0.101746 0.583527 0.958588 0.101746 0.625458 0.959351 0.101746 0.665405 0.960175 0.101746 0.702942 0.960938 0.101746 0.737671 0.961700 0.101746 0.769501 0.962433 0.101746 0.798370 0.963196 0.101746 0.824432 0.963867 0.101746 0.848175 0.964600 0.101746 0.869659 0.965302 0.101746 0.889221 0.965973 0.101746 0.907013 0.966644 0.101746 0.923157 0.967285 0.101746 0.937927 0.967896 0.101746 0.951263 0.968536 0.101746 0.963287 0.969147 0.101746 0.974121 0.969727 0.101746 0.983795 0.970337 0.101746 0.992310 0.970917 0.101746 0.117279 0.960815 0.102722 0.143402 0.961670 0.102234 0.170959 0.962463 0.101776 0.199982 0.963287 0.101746 0.230804 0.964081 0.101746 0.263580 0.964844 0.101746 0.298462 0.965637 0.101746 0.335510 0.966431 0.101746 0.374420 0.967163 0.101746 0.415192 0.967896 0.101746 0.457428 0.968658 0.101746 0.500793 0.969391 0.101746 0.544983 0.970093 0.101746 0.588409 0.970795 0.101746 0.630157 0.971497 0.101746 0.669739 0.972198 0.101746 0.706940 0.972870 0.101746 0.741333 0.973511 0.101746 0.772797 0.974152 0.101746 0.801270 0.974762 0.101746 0.827087 0.975403 0.101746 0.850525 0.976044 0.101746 0.871735 0.976624 0.101746 0.891083 0.977203 0.101746 0.908691 0.977783 0.101746 0.924683 0.978363 0.101746 0.939240 0.978882 0.101746 0.952423 0.979431 0.101746 0.964325 0.979950 0.101746 0.975067 0.980469 0.101746 0.984558 0.980957 0.101746 0.992950 0.981445 0.101746 0.039673 0.000885 0.159149 0.061340 0.001587 0.158905 0.083954 0.002258 0.158691 0.107635 0.002960 0.158417 0.132446 0.003723 0.158112 0.158600 0.004456 0.157806 0.186157 0.005280 0.157501 0.215363 0.006104 0.157104 0.246277 0.006958 0.156769 0.279358 0.007843 0.156342 0.314423 0.008728 0.155975 0.351654 0.009674 0.155518 0.390625 0.010620 0.155060 0.431305 0.011627 0.154663 0.473389 0.012665 0.154144 0.516571 0.013672 0.153656 0.560211 0.014740 0.153168 0.602692 0.015839 0.152618 0.643433 0.016937 0.152100 0.682007 0.018066 0.151550 0.718140 0.019226 0.151001 0.751495 0.020416 0.150421 0.781952 0.021606 0.149872 0.809570 0.022827 0.149261 0.834625 0.024078 0.148682 0.857422 0.025299 0.148071 0.878143 0.026611 0.147430 0.896973 0.027924 0.146851 0.914185 0.029205 0.146179 0.929840 0.030579 0.145569 0.944031 0.031921 0.144989 0.956940 0.033295 0.144287 0.040955 0.021759 0.158691 0.062775 0.022522 0.158417 0.085480 0.023254 0.158142 0.109283 0.024109 0.157806 0.134308 0.024933 0.157501 0.160583 0.025757 0.157135 0.188324 0.026642 0.156769 0.217682 0.027588 0.156342 0.248901 0.028503 0.155975 0.282166 0.029480 0.155518 0.317505 0.030487 0.155090 0.354919 0.031494 0.154663 0.394196 0.032593 0.154175 0.435028 0.033661 0.153687 0.477325 0.034729 0.153168 0.520721 0.035889 0.152618 0.564392 0.037018 0.152130 0.606750 0.038177 0.151550 0.647400 0.039398 0.151031 0.685791 0.040619 0.150452 0.721710 0.041901 0.149902 0.754822 0.043091 0.149292 0.785004 0.044434 0.148712 0.812378 0.045746 0.148102 0.837189 0.047058 0.147461 0.859772 0.048401 0.146881 0.880310 0.049805 0.146210 0.899017 0.051147 0.145599 0.916077 0.052582 0.144989 0.931519 0.053986 0.144318 0.945618 0.055420 0.143707 0.958374 0.056915 0.143036 0.042389 0.043610 0.158142 0.064270 0.044434 0.157806 0.087128 0.045319 0.157532 0.111053 0.046204 0.157135 0.136230 0.047119 0.156769 0.162628 0.048035 0.156372 0.190613 0.049072 0.155975 0.220154 0.050018 0.155548 0.251617 0.051117 0.155090 0.285156 0.052124 0.154663 0.320740 0.053223 0.154175 0.358398 0.054382 0.153687 0.397919 0.055542 0.153198 0.438965 0.056671 0.152649 0.481445 0.057861 0.152130 0.524963 0.059082 0.151581 0.568634 0.060333 0.151062 0.610962 0.061615 0.150452 0.651459 0.062897 0.149902 0.689667 0.064209 0.149292 0.725342 0.065582 0.148712 0.758179 0.066895 0.148132 0.788116 0.068329 0.147522 0.815277 0.069733 0.146881 0.839813 0.071136 0.146240 0.862183 0.072571 0.145630 0.882538 0.074036 0.145020 0.901031 0.075500 0.144348 0.917908 0.077026 0.143707 0.933258 0.078583 0.143066 0.947205 0.080109 0.142456 0.959808 0.081665 0.141754 0.043884 0.066467 0.157532 0.065887 0.067413 0.157166 0.088898 0.068390 0.156799 0.112976 0.069366 0.156372 0.138275 0.070404 0.156006 0.164917 0.071411 0.155548 0.193024 0.072510 0.155121 0.222809 0.073639 0.154694 0.254517 0.074768 0.154205 0.288269 0.075928 0.153687 0.324158 0.077087 0.153198 0.362061 0.078339 0.152649 0.401825 0.079590 0.152161 0.443054 0.080841 0.151611 0.485809 0.082153 0.151062 0.529449 0.083496 0.150452 0.573090 0.084808 0.149933 0.615356 0.086182 0.149323 0.655609 0.087555 0.148773 0.693634 0.089020 0.148132 0.729034 0.090454 0.147522 0.761658 0.091919 0.146912 0.791260 0.093384 0.146240 0.818146 0.094910 0.145630 0.842499 0.096436 0.145050 0.864624 0.097992 0.144379 0.884796 0.099579 0.143738 0.903107 0.101135 0.143097 0.919800 0.102753 0.142456 0.934967 0.104370 0.141785 0.948761 0.105988 0.141144 0.961243 0.107697 0.140503 0.045502 0.090546 0.156799 0.067657 0.091583 0.156372 0.090759 0.092621 0.156006 0.115021 0.093719 0.155609 0.140503 0.094849 0.155121 0.167267 0.096008 0.154694 0.195587 0.097198 0.154205 0.225647 0.098419 0.153687 0.257538 0.099640 0.153229 0.291626 0.100922 0.152679 0.327698 0.102203 0.152191 0.365875 0.103546 0.151611 0.405853 0.104919 0.151093 0.447388 0.106262 0.150513 0.490265 0.107697 0.149933 0.533997 0.109100 0.149353 0.577637 0.110596 0.148773 0.619720 0.112091 0.148163 0.659851 0.113556 0.147552 0.697693 0.115082 0.146942 0.732880 0.116638 0.146301 0.765106 0.118225 0.145691 0.794464 0.119812 0.145081 0.821075 0.121460 0.144379 0.845184 0.123077 0.143768 0.867096 0.124756 0.143127 0.887054 0.126434 0.142487 0.905182 0.128143 0.141815 0.921722 0.129883 0.141174 0.936737 0.131561 0.140533 0.950348 0.133362 0.139862 0.962677 0.135101 0.139191 0.047241 0.115875 0.156036 0.069489 0.117035 0.155609 0.092773 0.118195 0.155151 0.117157 0.119385 0.154724 0.142761 0.120605 0.154236 0.169769 0.121887 0.153717 0.198303 0.123199 0.153229 0.228546 0.124542 0.152710 0.260742 0.125885 0.152191 0.295044 0.127289 0.151611 0.331451 0.128693 0.151123 0.369873 0.130127 0.150513 0.410126 0.131622 0.149963 0.451782 0.133087 0.149353 0.494873 0.134644 0.148773 0.538757 0.136139 0.148193 0.582306 0.137756 0.147583 0.624329 0.139374 0.146942 0.664185 0.140991 0.146332 0.701813 0.142639 0.145691 0.736694 0.144318 0.145081 0.768646 0.146027 0.144409 0.797699 0.147766 0.143799 0.824005 0.149506 0.143127 0.847870 0.151245 0.142517 0.869568 0.153046 0.141815 0.889282 0.154846 0.141205 0.907257 0.156677 0.140564 0.923615 0.158508 0.139893 0.938446 0.160370 0.139252 0.951935 0.162262 0.138611 0.964111 0.164185 0.137939 0.049103 0.142609 0.155151 0.071472 0.143890 0.154724 0.094879 0.145172 0.154236 0.119415 0.146515 0.153717 0.145203 0.147858 0.153259 0.172394 0.149231 0.152710 0.201141 0.150726 0.152222 0.231598 0.152130 0.151642 0.264008 0.153625 0.151123 0.298645 0.155151 0.150513 0.335297 0.156677 0.149994 0.373993 0.158295 0.149384 0.414459 0.159912 0.148804 0.456390 0.161499 0.148224 0.499634 0.163177 0.147583 0.543579 0.164856 0.146973 0.587067 0.166534 0.146362 0.628906 0.168304 0.145721 0.668610 0.170044 0.145111 0.705902 0.171814 0.144440 0.740509 0.173645 0.143799 0.772217 0.175507 0.143158 0.800964 0.177338 0.142517 0.826965 0.179230 0.141846 0.850586 0.181122 0.141205 0.872070 0.183044 0.140564 0.891571 0.184967 0.139923 0.909363 0.186920 0.139252 0.925537 0.188934 0.138611 0.940186 0.190918 0.137970 0.953491 0.192932 0.137329 0.965515 0.195007 0.136658 0.051025 0.170990 0.154266 0.073547 0.172333 0.153748 0.097076 0.173798 0.153290 0.121796 0.175293 0.152740 0.147766 0.176758 0.152252 0.175171 0.178314 0.151672 0.204102 0.179871 0.151154 0.234802 0.181458 0.150543 0.267548 0.183075 0.149994 0.302399 0.184753 0.149384 0.339294 0.186401 0.148834 0.378265 0.188141 0.148224 0.418915 0.189850 0.147614 0.461060 0.191620 0.147003 0.504425 0.193451 0.146362 0.548553 0.195251 0.145752 0.591919 0.197144 0.145142 0.633575 0.199036 0.144440 0.673065 0.200928 0.143829 0.710114 0.202850 0.143188 0.744446 0.204865 0.142548 0.775757 0.206818 0.141876 0.804199 0.208801 0.141235 0.829926 0.210815 0.140625 0.853333 0.212860 0.139954 0.874542 0.214966 0.139282 0.893829 0.217041 0.138641 0.911407 0.219147 0.137970 0.927429 0.221313 0.137329 0.941925 0.223419 0.136688 0.955078 0.225647 0.136047 0.966949 0.227783 0.135406 0.053070 0.201111 0.153290 0.075714 0.202637 0.152740 0.099426 0.204193 0.152252 0.124298 0.205841 0.151672 0.150391 0.207458 0.151184 0.177979 0.209198 0.150574 0.207153 0.210907 0.150024 0.238129 0.212616 0.149414 0.271088 0.214447 0.148834 0.306274 0.216278 0.148224 0.343475 0.218079 0.147644 0.382660 0.219971 0.147003 0.423523 0.221832 0.146393 0.465881 0.223785 0.145752 0.509491 0.225769 0.145142 0.553589 0.227692 0.144470 0.596832 0.229797 0.143860 0.638336 0.231812 0.143188 0.677582 0.233887 0.142548 0.714386 0.235992 0.141876 0.748383 0.238129 0.141266 0.779327 0.240265 0.140625 0.807465 0.242432 0.139954 0.832916 0.244568 0.139313 0.856018 0.246826 0.138672 0.877014 0.249115 0.138000 0.896118 0.251282 0.137360 0.913483 0.253601 0.136719 0.929321 0.255920 0.136047 0.943634 0.258179 0.135437 0.956635 0.260559 0.134827 0.968353 0.262939 0.134216 0.055176 0.233307 0.152283 0.077972 0.234924 0.151703 0.101837 0.236694 0.151184 0.126892 0.238525 0.150574 0.153198 0.240326 0.150055 0.180969 0.242157 0.149445 0.210358 0.244080 0.148865 0.241547 0.245941 0.148254 0.274811 0.247955 0.147644 0.310211 0.249878 0.147034 0.347717 0.251862 0.146423 0.387146 0.253967 0.145782 0.428253 0.256042 0.145142 0.470825 0.258148 0.144501 0.514557 0.260315 0.143860 0.558777 0.262482 0.143219 0.601868 0.264709 0.142578 0.643097 0.266876 0.141907 0.682129 0.269135 0.141296 0.718628 0.271423 0.140656 0.752258 0.273682 0.139954 0.782928 0.276031 0.139313 0.810730 0.278412 0.138672 0.835846 0.280762 0.138031 0.858734 0.283173 0.137360 0.879486 0.285614 0.136719 0.898376 0.287994 0.136078 0.915558 0.290527 0.135468 0.931183 0.293030 0.134827 0.945343 0.295471 0.134247 0.958160 0.298004 0.133606 0.969727 0.300476 0.132965 0.057434 0.267700 0.151184 0.080353 0.269531 0.150604 0.104370 0.271545 0.150055 0.129578 0.273499 0.149445 0.156067 0.275482 0.148895 0.184052 0.277496 0.148254 0.213654 0.279633 0.147675 0.245087 0.281647 0.147034 0.278625 0.283813 0.146423 0.314301 0.285980 0.145813 0.352112 0.288208 0.145172 0.391815 0.290497 0.144501 0.433167 0.292694 0.143890 0.475891 0.295013 0.143250 0.519806 0.297424 0.142578 0.563934 0.299713 0.141968 0.606934 0.302124 0.141296 0.647980 0.304535 0.140656 0.686676 0.306946 0.139984 0.722870 0.309418 0.139343 0.756195 0.311859 0.138702 0.786499 0.314423 0.138062 0.813995 0.316986 0.137390 0.838837 0.319489 0.136749 0.861420 0.322113 0.136108 0.881958 0.324707 0.135468 0.900604 0.327271 0.134857 0.917603 0.329956 0.134247 0.933044 0.332611 0.133606 0.947052 0.335266 0.132996 0.959717 0.337952 0.132385 0.971130 0.340576 0.131805 0.059692 0.304657 0.150085 0.082794 0.306671 0.149475 0.106934 0.308868 0.148895 0.132324 0.311005 0.148254 0.158997 0.313141 0.147705 0.187225 0.315430 0.147034 0.217041 0.317657 0.146454 0.248810 0.319977 0.145813 0.282593 0.322296 0.145172 0.318573 0.324646 0.144531 0.356628 0.327026 0.143921 0.396576 0.329498 0.143250 0.438110 0.331940 0.142609 0.481079 0.334412 0.141968 0.525085 0.336914 0.141327 0.569183 0.339417 0.140656 0.611969 0.342072 0.139984 0.652802 0.344635 0.139343 0.691254 0.347198 0.138733 0.727173 0.349915 0.138062 0.760071 0.352509 0.137421 0.790100 0.355225 0.136780 0.817230 0.357971 0.136108 0.841766 0.360626 0.135498 0.864105 0.363403 0.134888 0.884399 0.366180 0.134277 0.902863 0.368896 0.133636 0.919617 0.371704 0.132996 0.934875 0.374481 0.132416 0.948730 0.377319 0.131836 0.961212 0.380157 0.131256 0.972443 0.382965 0.130676 0.062134 0.343994 0.148926 0.085327 0.346252 0.148315 0.109650 0.348572 0.147705 0.135193 0.350922 0.147064 0.162109 0.353271 0.146484 0.190491 0.355713 0.145844 0.220581 0.358063 0.145203 0.252533 0.360626 0.144562 0.286621 0.363159 0.143921 0.322876 0.365631 0.143280 0.361237 0.368195 0.142639 0.401459 0.370850 0.141998 0.443176 0.373474 0.141357 0.486298 0.376099 0.140686 0.530487 0.378815 0.140015 0.574463 0.381470 0.139404 0.617096 0.384247 0.138763 0.657654 0.386932 0.138092 0.695862 0.389771 0.137421 0.731415 0.392548 0.136780 0.763977 0.395386 0.136169 0.793610 0.398224 0.135529 0.820435 0.401093 0.134918 0.844696 0.403900 0.134308 0.866791 0.406830 0.133667 0.886841 0.409760 0.133026 0.905060 0.412628 0.132446 0.921661 0.415558 0.131836 0.936707 0.418457 0.131287 0.950378 0.421387 0.130707 0.962738 0.424408 0.130096 0.973816 0.427307 0.129547 0.064606 0.385651 0.147736 0.087921 0.388031 0.147095 0.112457 0.390533 0.146484 0.138123 0.393005 0.145874 0.165222 0.395599 0.145233 0.193848 0.398224 0.144592 0.224121 0.400757 0.143982 0.256439 0.403442 0.143280 0.290833 0.406097 0.142639 0.327362 0.408783 0.142029 0.365967 0.411499 0.141357 0.406403 0.414337 0.140686 0.448364 0.417053 0.140045 0.491699 0.419891 0.139404 0.535828 0.422699 0.138794 0.579834 0.425598 0.138123 0.622223 0.428467 0.137451 0.662537 0.431305 0.136841 0.700439 0.434265 0.136169 0.735657 0.437256 0.135559 0.767853 0.440094 0.134949 0.797119 0.443115 0.134308 0.823639 0.446167 0.133667 0.847626 0.449066 0.133057 0.869415 0.452118 0.132446 0.889252 0.455139 0.131866 0.907227 0.458099 0.131287 0.923615 0.461212 0.130707 0.938507 0.464142 0.130127 0.951996 0.467255 0.129578 0.964203 0.470337 0.129028 0.975098 0.473328 0.128510 0.067139 0.429321 0.146515 0.090637 0.431854 0.145874 0.115295 0.434509 0.145233 0.141144 0.437134 0.144623 0.168488 0.439850 0.143982 0.197327 0.442657 0.143311 0.227875 0.445312 0.142670 0.260376 0.448181 0.142059 0.295074 0.450989 0.141388 0.331940 0.453827 0.140717 0.370758 0.456726 0.140076 0.411438 0.459595 0.139435 0.453613 0.462494 0.138794 0.497101 0.465485 0.138123 0.541412 0.468323 0.137482 0.585175 0.471344 0.136841 0.627411 0.474396 0.136230 0.667389 0.477386 0.135590 0.705017 0.480438 0.134949 0.739899 0.483490 0.134308 0.771729 0.486481 0.133698 0.800659 0.489594 0.133057 0.826782 0.492676 0.132477 0.850525 0.495697 0.131897 0.872070 0.498810 0.131317 0.891571 0.501923 0.130737 0.909424 0.505035 0.130157 0.925629 0.508179 0.129578 0.940277 0.511261 0.129059 0.953613 0.514374 0.128510 0.965637 0.517517 0.127991 0.976410 0.520599 0.127472 0.069733 0.474579 0.145264 0.093384 0.477386 0.144623 0.118225 0.480194 0.144012 0.144257 0.482910 0.143341 0.171753 0.485809 0.142700 0.200836 0.488678 0.142059 0.231628 0.491486 0.141418 0.264465 0.494446 0.140747 0.299438 0.497406 0.140076 0.336548 0.500305 0.139465 0.375671 0.503326 0.138824 0.416504 0.506287 0.138153 0.458923 0.509338 0.137512 0.502594 0.512390 0.136871 0.546997 0.515381 0.136261 0.590576 0.518494 0.135590 0.632507 0.521637 0.134979 0.672272 0.524628 0.134338 0.709534 0.527802 0.133728 0.744049 0.530975 0.133087 0.775574 0.533997 0.132507 0.804108 0.537201 0.131897 0.829956 0.540375 0.131317 0.853333 0.543396 0.130768 0.874634 0.546600 0.130157 0.893921 0.549622 0.129608 0.911560 0.552734 0.129059 0.927521 0.555878 0.128540 0.942047 0.558960 0.127991 0.955200 0.562073 0.127472 0.967041 0.565186 0.126984 0.977661 0.568146 0.126495 0.072449 0.521362 0.144012 0.096222 0.524200 0.143341 0.121216 0.527161 0.142731 0.147430 0.529968 0.142090 0.175171 0.532959 0.141418 0.204437 0.535919 0.140747 0.235474 0.538879 0.140106 0.268616 0.541840 0.139465 0.303864 0.544922 0.138824 0.341217 0.547821 0.138184 0.380615 0.550873 0.137512 0.421753 0.553925 0.136871 0.464294 0.556946 0.136261 0.508087 0.560059 0.135620 0.552460 0.562988 0.135010 0.595917 0.566101 0.134338 0.637665 0.569183 0.133728 0.677124 0.572174 0.133148 0.714142 0.575287 0.132507 0.748230 0.578308 0.131927 0.779327 0.581299 0.131348 0.807526 0.584381 0.130768 0.833069 0.587433 0.130188 0.856171 0.590424 0.129639 0.877167 0.593475 0.129089 0.896271 0.596405 0.128571 0.913635 0.599396 0.128021 0.929443 0.602386 0.127502 0.943787 0.605316 0.127014 0.956726 0.608246 0.126495 0.968445 0.611267 0.126038 0.978882 0.614105 0.125580 0.075134 0.568420 0.142761 0.099152 0.571259 0.142120 0.124298 0.574127 0.141449 0.150726 0.576935 0.140808 0.178589 0.579865 0.140137 0.208130 0.582764 0.139496 0.239441 0.585693 0.138885 0.272797 0.588654 0.138184 0.308380 0.591583 0.137543 0.346039 0.594482 0.136902 0.385651 0.597412 0.136292 0.426941 0.600372 0.135651 0.469757 0.603302 0.135010 0.513672 0.606232 0.134369 0.558075 0.609161 0.133759 0.601318 0.612152 0.133148 0.642822 0.615051 0.132538 0.681976 0.617981 0.131958 0.718597 0.620911 0.131378 0.752350 0.623840 0.130798 0.783020 0.626709 0.130188 0.810883 0.629639 0.129639 0.836060 0.632507 0.129089 0.858917 0.635376 0.128571 0.879669 0.638275 0.128021 0.898529 0.641052 0.127533 0.915710 0.643921 0.127014 0.931305 0.646729 0.126495 0.945465 0.649475 0.126038 0.958252 0.652283 0.125580 0.969788 0.655060 0.125427 0.980072 0.657715 0.125427 0.077972 0.613983 0.141479 0.102081 0.616730 0.140808 0.127441 0.619568 0.140137 0.154022 0.622314 0.139526 0.182129 0.625092 0.138885 0.211914 0.627899 0.138214 0.243469 0.630676 0.137573 0.277100 0.633545 0.136932 0.312958 0.636383 0.136292 0.350861 0.639099 0.135651 0.390778 0.641998 0.135010 0.432251 0.644714 0.134399 0.475189 0.647552 0.133789 0.519257 0.650391 0.133179 0.563599 0.653137 0.132568 0.606659 0.655975 0.131958 0.647888 0.658752 0.131378 0.686737 0.661469 0.130798 0.723053 0.664276 0.130219 0.756409 0.667023 0.129669 0.786743 0.669708 0.129120 0.814240 0.672455 0.128601 0.839050 0.675140 0.128052 0.861633 0.677856 0.127533 0.882111 0.680511 0.127045 0.900757 0.683136 0.126526 0.917725 0.685730 0.126068 0.933136 0.688416 0.125610 0.947113 0.690918 0.125427 0.959747 0.693542 0.125427 0.971130 0.696075 0.125427 0.981262 0.698517 0.125427 0.080841 0.657410 0.140167 0.105103 0.660034 0.139526 0.130646 0.662720 0.138916 0.157440 0.665314 0.138245 0.185699 0.668030 0.137573 0.215698 0.670685 0.136963 0.247498 0.673340 0.136322 0.281525 0.675995 0.135681 0.317627 0.678680 0.135040 0.355774 0.681274 0.134399 0.395905 0.683960 0.133789 0.437592 0.686554 0.133209 0.480682 0.689209 0.132568 0.524902 0.691833 0.131989 0.569153 0.694427 0.131409 0.612000 0.697083 0.130798 0.652985 0.699677 0.130249 0.691467 0.702179 0.129700 0.727386 0.704803 0.129150 0.760376 0.707336 0.128601 0.790344 0.709839 0.128052 0.817444 0.712402 0.127563 0.841980 0.714813 0.127045 0.864288 0.717285 0.126587 0.884552 0.719788 0.126068 0.902954 0.722168 0.125641 0.919708 0.724579 0.125427 0.934937 0.727020 0.125427 0.948730 0.729340 0.125427 0.961182 0.731659 0.125427 0.972412 0.734009 0.125427 0.982391 0.736237 0.125427 0.083740 0.698181 0.138947 0.108215 0.700714 0.138275 0.133881 0.703217 0.137604 0.160828 0.705627 0.136993 0.189362 0.708160 0.136353 0.219604 0.710693 0.135681 0.251648 0.713074 0.135040 0.285889 0.715607 0.134430 0.322296 0.718048 0.133850 0.360809 0.720520 0.133240 0.401123 0.723022 0.132599 0.442993 0.725403 0.132019 0.486237 0.727844 0.131439 0.530548 0.730255 0.130829 0.574646 0.732605 0.130249 0.617310 0.735046 0.129700 0.657959 0.737427 0.129150 0.696198 0.739777 0.128632 0.731689 0.742096 0.128082 0.764252 0.744415 0.127563 0.793915 0.746704 0.127075 0.820679 0.749023 0.126587 0.844879 0.751221 0.126099 0.866913 0.753479 0.125641 0.886932 0.755737 0.125427 0.905090 0.757904 0.125427 0.921631 0.760040 0.125427 0.936707 0.762207 0.125427 0.950287 0.764313 0.125427 0.962585 0.766388 0.125427 0.973633 0.768433 0.125427 0.983490 0.770508 0.125427 0.086700 0.735931 0.137634 0.111298 0.738251 0.136993 0.137177 0.740570 0.136353 0.164307 0.742828 0.135712 0.193054 0.745148 0.135071 0.223450 0.747406 0.134460 0.255859 0.749664 0.133850 0.290405 0.751984 0.133240 0.327026 0.754181 0.132629 0.365784 0.756470 0.132019 0.406311 0.758728 0.131439 0.448395 0.760895 0.130859 0.491852 0.763123 0.130280 0.536224 0.765320 0.129730 0.580139 0.767487 0.129181 0.622528 0.769653 0.128632 0.662933 0.771820 0.128082 0.700836 0.773895 0.127594 0.735992 0.776001 0.127075 0.768158 0.778076 0.126617 0.797363 0.780121 0.126099 0.823792 0.782196 0.125641 0.847717 0.784149 0.125427 0.869476 0.786163 0.125427 0.889252 0.788177 0.125427 0.907196 0.790131 0.125427 0.923523 0.792023 0.125427 0.938385 0.793945 0.125427 0.951813 0.795807 0.125427 0.963989 0.797699 0.125427 0.974854 0.799500 0.125427 0.984528 0.801300 0.125427 0.089691 0.770325 0.136383 0.114471 0.772461 0.135742 0.140503 0.774567 0.135101 0.167847 0.776581 0.134491 0.196808 0.778717 0.133881 0.227448 0.780731 0.133270 0.260132 0.782837 0.132629 0.294952 0.784851 0.132050 0.331818 0.786865 0.131470 0.370789 0.788910 0.130859 0.411591 0.790924 0.130280 0.453857 0.792938 0.129761 0.497406 0.794922 0.129211 0.541809 0.796875 0.128662 0.585632 0.798828 0.128113 0.627716 0.800751 0.127594 0.667786 0.802643 0.127106 0.705322 0.804565 0.126617 0.740173 0.806427 0.126129 0.771942 0.808289 0.125671 0.800751 0.810120 0.125427 0.826843 0.811981 0.125427 0.850525 0.813721 0.125427 0.871979 0.815552 0.125427 0.891510 0.817291 0.125427 0.909241 0.819031 0.125427 0.925385 0.820740 0.125427 0.940063 0.822418 0.125427 0.953308 0.824066 0.125427 0.965302 0.825714 0.125427 0.976044 0.827332 0.125427 0.985565 0.828949 0.125427 0.092743 0.801331 0.135132 0.117676 0.803253 0.134491 0.143829 0.805115 0.133911 0.171448 0.807007 0.133301 0.200562 0.808929 0.132660 0.231445 0.810730 0.132080 0.264404 0.812592 0.131500 0.299469 0.814453 0.130890 0.336639 0.816254 0.130341 0.375885 0.818115 0.129761 0.416901 0.819916 0.129211 0.459259 0.821686 0.128693 0.502960 0.823456 0.128143 0.547333 0.825226 0.127625 0.590942 0.826965 0.127136 0.632874 0.828674 0.126648 0.672607 0.830383 0.126129 0.709808 0.832123 0.125702 0.744232 0.833801 0.125427 0.775635 0.835419 0.125427 0.804108 0.837097 0.125427 0.829865 0.838745 0.125427 0.853210 0.840302 0.125427 0.874420 0.841888 0.125427 0.893738 0.843506 0.125427 0.911224 0.845001 0.125427 0.927185 0.846558 0.125427 0.941650 0.848022 0.125427 0.954742 0.849518 0.125427 0.966614 0.850983 0.125427 0.977173 0.852386 0.125427 0.986572 0.853821 0.125427 0.095825 0.829224 0.133911 0.120911 0.830994 0.133301 0.147217 0.832642 0.132690 0.175049 0.834351 0.132080 0.204407 0.836060 0.131500 0.235504 0.837738 0.130920 0.268707 0.839417 0.130341 0.304077 0.841064 0.129791 0.341461 0.842682 0.129242 0.380920 0.844360 0.128693 0.422150 0.846008 0.128143 0.464691 0.847565 0.127655 0.508484 0.849152 0.127136 0.552856 0.850739 0.126678 0.596283 0.852295 0.126129 0.637939 0.853851 0.125702 0.677307 0.855377 0.125427 0.714203 0.856873 0.125427 0.748230 0.858429 0.125427 0.779236 0.859863 0.125427 0.807343 0.861359 0.125427 0.832794 0.862823 0.125427 0.855835 0.864227 0.125427 0.876801 0.865662 0.125427 0.895813 0.867004 0.125427 0.913116 0.868408 0.125427 0.928925 0.869751 0.125427 0.943207 0.871094 0.125427 0.956177 0.872437 0.125427 0.967804 0.873718 0.125427 0.978302 0.874969 0.125427 0.987518 0.876251 0.125427 0.098938 0.854370 0.132690 0.124207 0.855927 0.132111 0.150635 0.857422 0.131500 0.178619 0.858978 0.130920 0.208221 0.860535 0.130341 0.239594 0.862030 0.129822 0.273071 0.863525 0.129242 0.308716 0.865021 0.128693 0.346405 0.866486 0.128174 0.386017 0.867981 0.127655 0.427307 0.869415 0.127167 0.470123 0.870911 0.126678 0.513947 0.872314 0.126129 0.558289 0.873688 0.125732 0.601532 0.875122 0.125427 0.642883 0.876495 0.125427 0.681976 0.877869 0.125427 0.718506 0.879242 0.125427 0.752197 0.880585 0.125427 0.782776 0.881897 0.125427 0.810516 0.883209 0.125427 0.835632 0.884521 0.125427 0.858429 0.885803 0.125427 0.879120 0.887054 0.125427 0.897919 0.888275 0.125427 0.915070 0.889496 0.125427 0.930603 0.890717 0.125427 0.944733 0.891876 0.125427 0.957520 0.893066 0.125427 0.969025 0.894226 0.125427 0.979340 0.895355 0.125427 0.988464 0.896423 0.125427 0.102081 0.877014 0.131531 0.127472 0.878418 0.130951 0.154114 0.879822 0.130371 0.182281 0.881226 0.129822 0.212128 0.882568 0.129272 0.243683 0.883942 0.128723 0.277405 0.885284 0.128174 0.313324 0.886658 0.127655 0.351288 0.887970 0.127167 0.391113 0.889282 0.126678 0.432587 0.890564 0.126160 0.475494 0.891907 0.125732 0.519501 0.893219 0.125427 0.563751 0.894440 0.125427 0.606720 0.895721 0.125427 0.647766 0.896942 0.125427 0.686523 0.898163 0.125427 0.722687 0.899384 0.125427 0.755981 0.900604 0.125427 0.786224 0.901764 0.125427 0.813568 0.902985 0.125427 0.838379 0.904053 0.125427 0.860901 0.905243 0.125427 0.881348 0.906372 0.125427 0.899963 0.907471 0.125427 0.916870 0.908539 0.125427 0.932251 0.909637 0.125427 0.946167 0.910645 0.125427 0.958801 0.911682 0.125427 0.970184 0.912689 0.125427 0.980347 0.913666 0.125427 0.989349 0.914703 0.125427 0.105194 0.897491 0.130402 0.130768 0.898743 0.129852 0.157623 0.899994 0.129303 0.185974 0.901276 0.128723 0.216003 0.902496 0.128204 0.247833 0.903717 0.127686 0.281830 0.904968 0.127197 0.317902 0.906097 0.126709 0.356079 0.907349 0.126190 0.396210 0.908539 0.125763 0.437866 0.909729 0.125427 0.480835 0.910889 0.125427 0.524933 0.912018 0.125427 0.569031 0.913116 0.125427 0.611755 0.914307 0.125427 0.652588 0.915436 0.125427 0.690948 0.916534 0.125427 0.726776 0.917603 0.125427 0.759674 0.918640 0.125427 0.789520 0.919708 0.125427 0.816559 0.920746 0.125427 0.841064 0.921753 0.125427 0.863312 0.922791 0.125427 0.883545 0.923767 0.125427 0.901855 0.924744 0.125427 0.918610 0.925720 0.125427 0.933807 0.926666 0.125427 0.947601 0.927612 0.125427 0.960052 0.928497 0.125427 0.971283 0.929413 0.125427 0.981323 0.930267 0.125427 0.990143 0.931122 0.125427 0.108368 0.915985 0.129303 0.134094 0.917145 0.128754 0.161072 0.918213 0.128235 0.189667 0.919373 0.127716 0.219879 0.920502 0.127197 0.251984 0.921600 0.126740 0.286224 0.922729 0.126190 0.322540 0.923737 0.125763 0.360992 0.924866 0.125427 0.401245 0.925903 0.125427 0.443024 0.926971 0.125427 0.486176 0.928009 0.125427 0.530304 0.929047 0.125427 0.574280 0.930023 0.125427 0.616730 0.931030 0.125427 0.657288 0.932037 0.125427 0.695374 0.933014 0.125427 0.730743 0.933990 0.125427 0.763214 0.934906 0.125427 0.792755 0.935852 0.125427 0.819458 0.936798 0.125427 0.843658 0.937714 0.125427 0.865662 0.938599 0.125427 0.885620 0.939484 0.125427 0.903778 0.940308 0.125427 0.920288 0.941193 0.125427 0.935333 0.942047 0.125427 0.948944 0.942841 0.125427 0.961273 0.943634 0.125427 0.972321 0.944397 0.125427 0.982239 0.945190 0.125427 0.990967 0.945953 0.125427 0.111511 0.932648 0.128235 0.137390 0.933716 0.127716 0.164581 0.934692 0.127228 0.193329 0.935730 0.126740 0.223785 0.936737 0.126190 0.256073 0.937714 0.125793 0.290588 0.938690 0.125427 0.327179 0.939667 0.125427 0.365814 0.940613 0.125427 0.406219 0.941559 0.125427 0.448181 0.942505 0.125427 0.491455 0.943420 0.125427 0.535583 0.944336 0.125427 0.579376 0.945221 0.125427 0.621613 0.946167 0.125427 0.661804 0.947052 0.125427 0.699554 0.947876 0.125427 0.734619 0.948730 0.125427 0.766754 0.949554 0.125427 0.795868 0.950409 0.125427 0.822266 0.951233 0.125427 0.846191 0.951996 0.125427 0.867889 0.952789 0.125427 0.887665 0.953583 0.125427 0.905548 0.954346 0.125427 0.921936 0.955078 0.125427 0.936798 0.955841 0.125427 0.950226 0.956543 0.125427 0.962402 0.957245 0.125427 0.973358 0.957886 0.125427 0.983124 0.958557 0.125427 0.991699 0.959229 0.125427 0.114716 0.947662 0.127258 0.140717 0.948578 0.126740 0.168091 0.949493 0.126221 0.197021 0.950409 0.125793 0.227600 0.951294 0.125427 0.260254 0.952179 0.125427 0.294952 0.953094 0.125427 0.331757 0.953918 0.125427 0.370636 0.954773 0.125427 0.411224 0.955627 0.125427 0.453278 0.956482 0.125427 0.496582 0.957275 0.125427 0.540802 0.958099 0.125427 0.584381 0.958862 0.125427 0.626343 0.959686 0.125427 0.666199 0.960449 0.125427 0.703674 0.961182 0.125427 0.738373 0.961975 0.125427 0.770081 0.962677 0.125427 0.798920 0.963440 0.125427 0.824982 0.964172 0.125427 0.848572 0.964844 0.125427 0.870056 0.965515 0.125427 0.889557 0.966187 0.125427 0.907318 0.966858 0.125427 0.923462 0.967499 0.125427 0.938141 0.968140 0.125427 0.951477 0.968781 0.125427 0.963501 0.969391 0.125427 0.974335 0.969971 0.125427 0.983917 0.970551 0.125427 0.992432 0.971130 0.125427 0.117889 0.961151 0.126251 0.144073 0.961975 0.125793 0.171570 0.962769 0.125427 0.200684 0.963593 0.125427 0.231476 0.964355 0.125427 0.264343 0.965149 0.125427 0.299316 0.965942 0.125427 0.336334 0.966705 0.125427 0.375336 0.967468 0.125427 0.416107 0.968201 0.125427 0.458313 0.968933 0.125427 0.501740 0.969635 0.125427 0.545959 0.970367 0.125427 0.589264 0.971039 0.125427 0.631012 0.971771 0.125427 0.670532 0.972412 0.125427 0.707672 0.973083 0.125427 0.742004 0.973755 0.125427 0.773346 0.974396 0.125427 0.801819 0.975006 0.125427 0.827576 0.975616 0.125427 0.850891 0.976227 0.125427 0.872131 0.976837 0.125427 0.891418 0.977417 0.125427 0.908997 0.977966 0.125427 0.924988 0.978546 0.125427 0.939484 0.979095 0.125427 0.952637 0.979614 0.125427 0.964539 0.980133 0.125427 0.975220 0.980652 0.125427 0.984741 0.981140 0.125427 0.993073 0.981598 0.125427 0.039948 0.001160 0.185608 0.061584 0.001801 0.185394 0.084259 0.002502 0.185120 0.107971 0.003235 0.184845 0.132782 0.003967 0.184509 0.158936 0.004761 0.184174 0.186523 0.005554 0.183838 0.215790 0.006378 0.183411 0.246796 0.007263 0.183044 0.279816 0.008148 0.182617 0.314972 0.009064 0.182190 0.352234 0.010040 0.181732 0.391266 0.011017 0.181244 0.431976 0.011993 0.180756 0.474091 0.013031 0.180237 0.517303 0.014069 0.179718 0.560974 0.015167 0.179199 0.603424 0.016296 0.178619 0.644165 0.017365 0.178070 0.682770 0.018524 0.177490 0.718750 0.019684 0.176910 0.752106 0.020874 0.176300 0.782501 0.022064 0.175690 0.810059 0.023254 0.175110 0.835114 0.024536 0.174469 0.857819 0.025818 0.173828 0.878510 0.027100 0.173187 0.897369 0.028381 0.172516 0.914551 0.029724 0.171844 0.930145 0.031067 0.171204 0.944336 0.032440 0.170532 0.957184 0.033813 0.169861 0.041229 0.022034 0.185120 0.063019 0.022797 0.184845 0.085785 0.023560 0.184509 0.109589 0.024384 0.184174 0.134613 0.025208 0.183838 0.160919 0.026093 0.183441 0.188690 0.026978 0.183075 0.218140 0.027924 0.182648 0.249420 0.028870 0.182190 0.282684 0.029816 0.181732 0.318115 0.030853 0.181274 0.355591 0.031891 0.180756 0.394867 0.032959 0.180267 0.435791 0.034027 0.179749 0.478088 0.035187 0.179199 0.521423 0.036255 0.178650 0.565186 0.037476 0.178101 0.607513 0.038605 0.177521 0.648163 0.039856 0.176941 0.686523 0.041077 0.176331 0.722321 0.042328 0.175720 0.755432 0.043610 0.175110 0.785583 0.044922 0.174500 0.812897 0.046204 0.173859 0.837738 0.047546 0.173218 0.860229 0.048920 0.172516 0.880737 0.050293 0.171906 0.899384 0.051727 0.171234 0.916382 0.053070 0.170563 0.931824 0.054504 0.169891 0.945892 0.056000 0.169189 0.958588 0.057434 0.168549 0.042633 0.043915 0.184540 0.064545 0.044708 0.184204 0.087463 0.045624 0.183868 0.111389 0.046509 0.183441 0.136597 0.047424 0.183075 0.163086 0.048431 0.182648 0.191040 0.049377 0.182220 0.220673 0.050446 0.181763 0.252197 0.051483 0.181274 0.285675 0.052551 0.180786 0.321381 0.053650 0.180267 0.359131 0.054749 0.179749 0.398590 0.055939 0.179230 0.439789 0.057098 0.178680 0.482239 0.058319 0.178131 0.525787 0.059540 0.177521 0.569519 0.060791 0.176941 0.611755 0.062073 0.176361 0.652252 0.063385 0.175720 0.690399 0.064697 0.175140 0.726044 0.066071 0.174530 0.758881 0.067413 0.173889 0.788727 0.068817 0.173218 0.815765 0.070251 0.172546 0.840332 0.071686 0.171906 0.862640 0.073151 0.171234 0.882965 0.074585 0.170593 0.901459 0.076080 0.169891 0.918243 0.077576 0.169220 0.933563 0.079102 0.168549 0.947510 0.080688 0.167877 0.960052 0.082214 0.167175 0.044189 0.066864 0.183868 0.066193 0.067749 0.183502 0.089233 0.068756 0.183075 0.113342 0.069733 0.182678 0.138672 0.070770 0.182220 0.165344 0.071838 0.181763 0.193512 0.072906 0.181305 0.223328 0.074036 0.180817 0.255066 0.075165 0.180298 0.288910 0.076355 0.179779 0.324829 0.077576 0.179230 0.362793 0.078796 0.178680 0.402527 0.080048 0.178131 0.443878 0.081329 0.177551 0.486572 0.082611 0.176971 0.530304 0.083954 0.176361 0.573975 0.085327 0.175751 0.616089 0.086700 0.175171 0.656403 0.088104 0.174530 0.694397 0.089539 0.173889 0.729736 0.090942 0.173248 0.762299 0.092468 0.172577 0.791901 0.093964 0.171936 0.818665 0.095459 0.171265 0.843018 0.097015 0.170593 0.865082 0.098511 0.169922 0.885193 0.100128 0.169250 0.903503 0.101746 0.168549 0.920135 0.103333 0.167908 0.935333 0.104980 0.167206 0.949097 0.106628 0.166504 0.961487 0.108276 0.165863 0.045807 0.090881 0.183105 0.067963 0.091949 0.182678 0.091156 0.093018 0.182251 0.115417 0.094116 0.181793 0.140869 0.095276 0.181305 0.167755 0.096436 0.180817 0.196075 0.097595 0.180298 0.226166 0.098877 0.179779 0.258148 0.100128 0.179260 0.292206 0.101379 0.178711 0.328430 0.102722 0.178131 0.366608 0.104004 0.177582 0.406586 0.105408 0.176971 0.448242 0.106812 0.176392 0.491058 0.108215 0.175781 0.534912 0.109619 0.175201 0.578552 0.111115 0.174561 0.620575 0.112610 0.173920 0.660675 0.114136 0.173279 0.698425 0.115692 0.172577 0.733551 0.117218 0.171967 0.765839 0.118805 0.171295 0.795074 0.120453 0.170624 0.821625 0.122040 0.169952 0.845673 0.123718 0.169250 0.867554 0.125366 0.168579 0.887482 0.127075 0.167908 0.905548 0.128784 0.167236 0.922058 0.130493 0.166534 0.937012 0.132202 0.165863 0.950684 0.134003 0.165161 0.962952 0.135773 0.164490 0.047577 0.116272 0.182251 0.069855 0.117432 0.181793 0.093170 0.118652 0.181335 0.117554 0.119812 0.180847 0.143219 0.121063 0.180328 0.170288 0.122406 0.179810 0.198822 0.123688 0.179291 0.229126 0.125031 0.178711 0.261322 0.126404 0.178162 0.295654 0.127808 0.177582 0.332184 0.129242 0.177032 0.370575 0.130676 0.176422 0.410858 0.132172 0.175781 0.452637 0.133667 0.175201 0.495667 0.135162 0.174591 0.539673 0.136780 0.173950 0.583221 0.138367 0.173279 0.625092 0.139954 0.172607 0.665009 0.141602 0.171967 0.702545 0.143250 0.171295 0.737366 0.144958 0.170654 0.769318 0.146667 0.169952 0.798279 0.148346 0.169281 0.824554 0.150146 0.168610 0.848389 0.151917 0.167938 0.870026 0.153687 0.167267 0.889709 0.155487 0.166565 0.907654 0.157379 0.165894 0.923950 0.159180 0.165222 0.938782 0.161041 0.164520 0.952209 0.162964 0.163849 0.964355 0.164856 0.163147 0.049408 0.143066 0.181335 0.071838 0.144318 0.180847 0.095306 0.145660 0.180389 0.119843 0.147003 0.179871 0.145691 0.148346 0.179291 0.172913 0.149811 0.178741 0.201660 0.151215 0.178192 0.232239 0.152679 0.177612 0.264648 0.154175 0.177063 0.299316 0.155731 0.176422 0.336090 0.157288 0.175812 0.374756 0.158844 0.175232 0.415222 0.160461 0.174591 0.457275 0.162140 0.173950 0.500427 0.163788 0.173309 0.544586 0.165466 0.172668 0.588013 0.167206 0.171997 0.629700 0.168945 0.171326 0.669403 0.170715 0.170654 0.706726 0.172516 0.169983 0.741241 0.174316 0.169312 0.772858 0.176178 0.168610 0.801514 0.178009 0.167969 0.827545 0.179901 0.167267 0.851105 0.181824 0.166565 0.872498 0.183716 0.165924 0.891968 0.185669 0.165222 0.909729 0.187714 0.164520 0.925842 0.189636 0.163879 0.940491 0.191620 0.163177 0.953796 0.193695 0.162476 0.965790 0.195709 0.161835 0.051361 0.171448 0.180389 0.073944 0.172882 0.179871 0.097534 0.174347 0.179291 0.122253 0.175781 0.178772 0.148224 0.177338 0.178192 0.175659 0.178894 0.177612 0.204651 0.180450 0.177063 0.235413 0.182068 0.176422 0.268127 0.183655 0.175842 0.303070 0.185364 0.175262 0.340088 0.187042 0.174622 0.379059 0.188782 0.173981 0.419769 0.190552 0.173340 0.461975 0.192352 0.172668 0.505310 0.194122 0.172028 0.549500 0.195953 0.171356 0.592865 0.197876 0.170685 0.634430 0.199707 0.170013 0.673889 0.201630 0.169312 0.710907 0.203552 0.168640 0.745148 0.205536 0.167999 0.776489 0.207550 0.167297 0.804749 0.209534 0.166595 0.830505 0.211578 0.165924 0.853821 0.213654 0.165253 0.874969 0.215698 0.164551 0.894287 0.217804 0.163879 0.911804 0.219971 0.163177 0.927765 0.222076 0.162506 0.942230 0.224274 0.161835 0.955353 0.226379 0.161163 0.967194 0.228607 0.160522 0.053436 0.201630 0.179352 0.076141 0.203217 0.178772 0.099884 0.204834 0.178192 0.124756 0.206451 0.177643 0.150940 0.208130 0.177094 0.178528 0.209778 0.176453 0.207764 0.211517 0.175842 0.238800 0.213348 0.175262 0.271759 0.215057 0.174652 0.306946 0.216949 0.174011 0.344269 0.218781 0.173340 0.383423 0.220642 0.172699 0.424408 0.222565 0.172058 0.466858 0.224548 0.171356 0.510376 0.226501 0.170715 0.554596 0.228516 0.170013 0.597809 0.230530 0.169342 0.639191 0.232574 0.168671 0.678497 0.234619 0.167999 0.715118 0.236694 0.167328 0.749084 0.238892 0.166626 0.780029 0.241028 0.165955 0.808044 0.243195 0.165283 0.833496 0.245422 0.164581 0.856567 0.247650 0.163910 0.877441 0.249847 0.163208 0.896545 0.252197 0.162537 0.913849 0.254486 0.161865 0.929657 0.256714 0.161194 0.943970 0.259064 0.160522 0.956909 0.261353 0.159912 0.968597 0.263763 0.159210 0.055603 0.233887 0.178253 0.078430 0.235596 0.177673 0.102325 0.237366 0.177094 0.127350 0.239166 0.176514 0.153687 0.240997 0.175873 0.181519 0.242828 0.175293 0.210938 0.244720 0.174652 0.242218 0.246704 0.174011 0.275482 0.248627 0.173370 0.311005 0.250641 0.172729 0.348572 0.252716 0.172058 0.388000 0.254700 0.171417 0.429169 0.256836 0.170715 0.471832 0.258942 0.170044 0.515503 0.261078 0.169373 0.559723 0.263275 0.168671 0.602753 0.265442 0.168030 0.643982 0.267700 0.167328 0.683014 0.269989 0.166656 0.719391 0.272247 0.165985 0.753021 0.274597 0.165283 0.783630 0.276917 0.164581 0.811310 0.279266 0.163940 0.836456 0.281647 0.163239 0.859253 0.284088 0.162537 0.879974 0.286499 0.161896 0.898804 0.288971 0.161194 0.915924 0.291382 0.160614 0.931488 0.293884 0.159912 0.945679 0.296387 0.159241 0.958466 0.298889 0.158600 0.970001 0.301453 0.157959 0.057831 0.268372 0.177124 0.080841 0.270294 0.176514 0.104889 0.272247 0.175873 0.130066 0.274170 0.175293 0.156616 0.276215 0.174683 0.184601 0.278229 0.174042 0.214294 0.280365 0.173401 0.245789 0.282501 0.172729 0.279358 0.284637 0.172089 0.315125 0.286804 0.171448 0.352966 0.289062 0.170746 0.392609 0.291260 0.170074 0.434082 0.293579 0.169403 0.476837 0.295868 0.168701 0.520752 0.298218 0.168060 0.564941 0.300568 0.167358 0.607819 0.302979 0.166687 0.648804 0.305389 0.166016 0.687531 0.307892 0.165314 0.723663 0.310272 0.164612 0.756927 0.312805 0.163971 0.787201 0.315338 0.163269 0.814545 0.317841 0.162567 0.839417 0.320465 0.161926 0.861969 0.323059 0.161224 0.882385 0.325653 0.160614 0.901031 0.328247 0.159943 0.917969 0.330902 0.159271 0.933350 0.333527 0.158630 0.947357 0.336273 0.157959 0.959991 0.338928 0.157379 0.971375 0.341614 0.156738 0.060150 0.305359 0.175903 0.083282 0.307465 0.175323 0.107422 0.309601 0.174713 0.132843 0.311798 0.174072 0.159576 0.313995 0.173401 0.187805 0.316162 0.172760 0.217682 0.318481 0.172089 0.249481 0.320831 0.171448 0.283325 0.323151 0.170776 0.319366 0.325531 0.170135 0.357513 0.327942 0.169403 0.397430 0.330353 0.168732 0.439087 0.332855 0.168060 0.481995 0.335297 0.167389 0.526031 0.337799 0.166687 0.570190 0.340393 0.166016 0.612915 0.342957 0.165344 0.653687 0.345581 0.164642 0.692108 0.348206 0.163971 0.727966 0.350830 0.163300 0.760834 0.353516 0.162598 0.790741 0.356232 0.161926 0.817780 0.358917 0.161255 0.842346 0.361694 0.160614 0.864594 0.364349 0.159973 0.884888 0.367126 0.159271 0.903259 0.369934 0.158630 0.919983 0.372681 0.157990 0.935242 0.375519 0.157410 0.949036 0.378387 0.156738 0.961517 0.381165 0.156158 0.972717 0.384033 0.155518 0.062561 0.344849 0.174713 0.085846 0.347137 0.174072 0.110138 0.349396 0.173431 0.135742 0.351746 0.172791 0.162659 0.354156 0.172119 0.191071 0.356567 0.171478 0.221222 0.359100 0.170807 0.253296 0.361542 0.170135 0.287384 0.364014 0.169434 0.323700 0.366608 0.168762 0.362122 0.369202 0.168091 0.402344 0.371796 0.167419 0.444183 0.374420 0.166718 0.487274 0.377075 0.166046 0.531433 0.379761 0.165344 0.575500 0.382538 0.164642 0.618011 0.385223 0.164001 0.658569 0.388000 0.163300 0.696777 0.390808 0.162598 0.732178 0.393585 0.161957 0.764740 0.396423 0.161255 0.794312 0.399292 0.160614 0.820984 0.402100 0.159973 0.845276 0.404999 0.159302 0.867249 0.407867 0.158691 0.887268 0.410767 0.158020 0.905457 0.413696 0.157410 0.922028 0.416595 0.156769 0.937042 0.419586 0.156158 0.950714 0.422546 0.155548 0.962982 0.425476 0.154938 0.974030 0.428467 0.154358 0.065063 0.386536 0.173462 0.088440 0.388977 0.172791 0.112946 0.391449 0.172150 0.138733 0.394012 0.171478 0.165863 0.396576 0.170807 0.194489 0.399048 0.170166 0.224823 0.401764 0.169464 0.257172 0.404449 0.168762 0.291626 0.407135 0.168121 0.328217 0.409821 0.167419 0.366821 0.412537 0.166748 0.407318 0.415344 0.166077 0.449371 0.418121 0.165375 0.492645 0.420898 0.164673 0.536896 0.423798 0.164032 0.580841 0.426666 0.163330 0.623138 0.429504 0.162628 0.663422 0.432404 0.161987 0.701355 0.435394 0.161316 0.736420 0.438232 0.160645 0.768616 0.441254 0.160004 0.797791 0.444183 0.159332 0.824188 0.447205 0.158691 0.848175 0.450195 0.158020 0.869904 0.453186 0.157440 0.889679 0.456177 0.156799 0.907654 0.459259 0.156189 0.923981 0.462280 0.155609 0.938873 0.465332 0.154968 0.952301 0.468414 0.154388 0.964447 0.471405 0.153809 0.975342 0.474457 0.153259 0.067596 0.430237 0.172180 0.091187 0.432892 0.171509 0.115814 0.435486 0.170837 0.141724 0.438141 0.170197 0.169067 0.440918 0.169464 0.197937 0.443573 0.168793 0.228577 0.446381 0.168152 0.261139 0.449219 0.167450 0.295868 0.452026 0.166748 0.332764 0.454895 0.166107 0.371613 0.457733 0.165405 0.412384 0.460632 0.164703 0.454590 0.463654 0.164032 0.498047 0.466492 0.163361 0.542480 0.469482 0.162659 0.586243 0.472504 0.161987 0.628357 0.475464 0.161346 0.668335 0.478516 0.160675 0.705902 0.481537 0.160004 0.740631 0.484619 0.159363 0.772491 0.487640 0.158722 0.801270 0.490692 0.158081 0.827362 0.493835 0.157471 0.851013 0.496887 0.156799 0.872498 0.499939 0.156219 0.892029 0.503052 0.155609 0.909821 0.506256 0.154999 0.925934 0.509308 0.154419 0.940643 0.512390 0.153809 0.953918 0.515564 0.153290 0.965912 0.518646 0.152710 0.976624 0.521790 0.152191 0.070251 0.475616 0.170898 0.093964 0.478394 0.170197 0.118744 0.481140 0.169495 0.144897 0.484009 0.168854 0.172394 0.486847 0.168152 0.201447 0.489655 0.167480 0.232361 0.492554 0.166779 0.265167 0.495483 0.166138 0.300232 0.498474 0.165436 0.337433 0.501434 0.164734 0.376556 0.504364 0.164062 0.417480 0.507416 0.163361 0.459961 0.510468 0.162689 0.503571 0.513458 0.162018 0.547974 0.516571 0.161377 0.591583 0.519684 0.160675 0.633453 0.522705 0.160034 0.673218 0.525818 0.159363 0.710480 0.528992 0.158722 0.744812 0.532074 0.158112 0.776276 0.535217 0.157471 0.804718 0.538300 0.156830 0.830505 0.541443 0.156219 0.853882 0.544617 0.155609 0.875092 0.547668 0.154999 0.894409 0.550842 0.154419 0.911926 0.553925 0.153809 0.927887 0.556976 0.153290 0.942352 0.560150 0.152710 0.955475 0.563141 0.152222 0.967285 0.566254 0.151672 0.977875 0.569305 0.151184 0.072937 0.522369 0.169525 0.096802 0.525269 0.168854 0.121765 0.528137 0.168182 0.148102 0.531097 0.167480 0.175781 0.534058 0.166779 0.205109 0.536987 0.166138 0.236237 0.539978 0.165436 0.269409 0.542999 0.164734 0.304688 0.545959 0.164093 0.342133 0.549011 0.163391 0.381500 0.551941 0.162720 0.422699 0.555084 0.162079 0.465332 0.558105 0.161377 0.509064 0.561035 0.160706 0.553528 0.564178 0.160065 0.596954 0.567200 0.159393 0.638611 0.570251 0.158752 0.678070 0.573334 0.158112 0.714966 0.576355 0.157501 0.748962 0.579376 0.156860 0.780029 0.582458 0.156250 0.808105 0.585480 0.155670 0.833588 0.588531 0.155029 0.856659 0.591553 0.154449 0.877625 0.594543 0.153900 0.896698 0.597534 0.153320 0.914032 0.600555 0.152740 0.929779 0.603424 0.152252 0.944092 0.606445 0.151703 0.957031 0.609375 0.151215 0.968689 0.612213 0.150726 0.979095 0.615204 0.150269 0.075684 0.569519 0.168213 0.099731 0.572296 0.167511 0.124847 0.575165 0.166809 0.151337 0.578094 0.166138 0.179260 0.580994 0.165466 0.208801 0.583862 0.164764 0.240204 0.586792 0.164093 0.273560 0.589630 0.163422 0.309204 0.592621 0.162720 0.346954 0.595551 0.162079 0.386566 0.598511 0.161407 0.427948 0.601410 0.160736 0.470795 0.604401 0.160065 0.514648 0.607300 0.159424 0.559082 0.610260 0.158783 0.602356 0.613251 0.158142 0.643707 0.616089 0.157532 0.682861 0.619080 0.156860 0.719391 0.621948 0.156281 0.753082 0.624847 0.155670 0.783752 0.627838 0.155029 0.811493 0.630646 0.154480 0.836639 0.633575 0.153900 0.859436 0.636414 0.153351 0.880127 0.639282 0.152771 0.898987 0.642120 0.152252 0.916107 0.645020 0.151703 0.931641 0.647705 0.151245 0.945770 0.650513 0.150726 0.958527 0.653259 0.150269 0.970032 0.656006 0.150269 0.980316 0.658722 0.150269 0.078522 0.615021 0.166840 0.102692 0.617859 0.166138 0.127991 0.620544 0.165497 0.154694 0.623322 0.164825 0.182800 0.626160 0.164124 0.212555 0.628937 0.163452 0.244202 0.631744 0.162750 0.277893 0.634521 0.162109 0.313812 0.637329 0.161438 0.351868 0.640198 0.160736 0.391693 0.642914 0.160126 0.433289 0.645813 0.159424 0.476227 0.648651 0.158783 0.520294 0.651337 0.158173 0.564667 0.654175 0.157532 0.607697 0.656982 0.156891 0.648804 0.659729 0.156281 0.687653 0.662537 0.155670 0.723816 0.665192 0.155090 0.757141 0.667999 0.154480 0.787415 0.670746 0.153900 0.814789 0.673401 0.153351 0.839600 0.676117 0.152771 0.862152 0.678833 0.152283 0.882568 0.681458 0.151733 0.901184 0.684113 0.151245 0.918091 0.686737 0.150757 0.933441 0.689270 0.150269 0.947418 0.691895 0.150269 0.959991 0.694427 0.150269 0.971344 0.696991 0.150269 0.981476 0.699493 0.150269 0.081390 0.658417 0.165497 0.105713 0.661072 0.164825 0.131195 0.663666 0.164154 0.158081 0.666382 0.163452 0.186371 0.668945 0.162811 0.216400 0.671661 0.162140 0.248322 0.674347 0.161438 0.282257 0.676941 0.160767 0.318481 0.679596 0.160126 0.356781 0.682312 0.159454 0.396851 0.684906 0.158813 0.438629 0.687531 0.158173 0.481781 0.690216 0.157562 0.525940 0.692780 0.156921 0.570190 0.695435 0.156311 0.612946 0.697968 0.155701 0.653839 0.700562 0.155090 0.692383 0.703186 0.154510 0.728180 0.705658 0.153931 0.761108 0.708221 0.153381 0.791016 0.710785 0.152802 0.818054 0.713226 0.152313 0.842560 0.715759 0.151733 0.864807 0.718262 0.151276 0.884979 0.720642 0.150787 0.903381 0.723083 0.150299 0.920044 0.725433 0.150269 0.935242 0.727844 0.150269 0.949036 0.730194 0.150269 0.961456 0.732483 0.150269 0.972626 0.734772 0.150269 0.982574 0.737091 0.150269 0.084320 0.699097 0.164185 0.108795 0.701660 0.163483 0.134430 0.704102 0.162811 0.161499 0.706604 0.162170 0.190002 0.709045 0.161499 0.220306 0.711548 0.160797 0.252472 0.714050 0.160156 0.286682 0.716492 0.159485 0.323181 0.718933 0.158844 0.361725 0.721436 0.158203 0.402039 0.723846 0.157593 0.444031 0.726318 0.156921 0.487366 0.728760 0.156311 0.531555 0.731110 0.155731 0.575684 0.733551 0.155090 0.618225 0.735840 0.154541 0.658844 0.738281 0.153961 0.697083 0.740631 0.153381 0.732483 0.742889 0.152832 0.765045 0.745239 0.152313 0.794556 0.747589 0.151764 0.821259 0.749817 0.151276 0.845428 0.752075 0.150787 0.867401 0.754303 0.150299 0.887360 0.756500 0.150269 0.905518 0.758728 0.150269 0.921997 0.760834 0.150269 0.936981 0.763000 0.150269 0.950592 0.765106 0.150269 0.962860 0.767120 0.150269 0.973877 0.769226 0.150269 0.983673 0.771240 0.150269 0.087280 0.736847 0.162842 0.111877 0.739075 0.162201 0.137726 0.741394 0.161499 0.165009 0.743713 0.160828 0.193726 0.745972 0.160187 0.224274 0.748230 0.159485 0.256683 0.750519 0.158844 0.291199 0.752747 0.158234 0.327942 0.755035 0.157593 0.366730 0.757294 0.156952 0.407318 0.759491 0.156311 0.449432 0.761719 0.155731 0.492828 0.763916 0.155121 0.537201 0.766113 0.154541 0.581207 0.768280 0.153961 0.623474 0.770416 0.153412 0.663818 0.772552 0.152832 0.701691 0.774689 0.152344 0.736755 0.776733 0.151794 0.768890 0.778809 0.151306 0.798035 0.780914 0.150818 0.824371 0.782898 0.150330 0.848267 0.784943 0.150269 0.869965 0.786865 0.150269 0.889648 0.788879 0.150269 0.907593 0.790771 0.150269 0.923889 0.792725 0.150269 0.938690 0.794617 0.150269 0.952118 0.796509 0.150269 0.964233 0.798340 0.150269 0.975067 0.800171 0.150269 0.984772 0.801971 0.150269 0.090332 0.771118 0.161530 0.115051 0.773193 0.160858 0.141083 0.775299 0.160187 0.168549 0.777374 0.159515 0.197479 0.779449 0.158875 0.228210 0.781555 0.158234 0.260925 0.783600 0.157623 0.295746 0.785583 0.156982 0.332764 0.787628 0.156342 0.371796 0.789703 0.155762 0.412537 0.791656 0.155151 0.454834 0.793671 0.154572 0.498444 0.795593 0.153992 0.542816 0.797546 0.153442 0.586639 0.799530 0.152893 0.628662 0.801422 0.152344 0.668671 0.803345 0.151794 0.706207 0.805267 0.151306 0.740875 0.807098 0.150818 0.772675 0.808960 0.150330 0.801392 0.810822 0.150269 0.827423 0.812592 0.150269 0.850983 0.814423 0.150269 0.872437 0.816132 0.150269 0.891907 0.817932 0.150269 0.909637 0.819672 0.150269 0.925720 0.821350 0.150269 0.940338 0.823029 0.150269 0.953613 0.824707 0.150269 0.965515 0.826324 0.150269 0.976227 0.827942 0.150269 0.985779 0.829559 0.150269 0.093353 0.802063 0.160217 0.118256 0.803925 0.159546 0.144470 0.805847 0.158905 0.172089 0.807739 0.158264 0.201263 0.809570 0.157654 0.232269 0.811432 0.156982 0.265198 0.813293 0.156342 0.300323 0.815125 0.155792 0.337585 0.816956 0.155151 0.376801 0.818756 0.154572 0.417816 0.820526 0.154022 0.460327 0.822357 0.153442 0.503937 0.824066 0.152893 0.548370 0.825867 0.152374 0.592041 0.827606 0.151794 0.633789 0.829315 0.151306 0.673523 0.831055 0.150848 0.710663 0.832733 0.150360 0.744965 0.834381 0.150269 0.776337 0.836060 0.150269 0.804749 0.837708 0.150269 0.830414 0.839294 0.150269 0.853699 0.840881 0.150269 0.874847 0.842468 0.150269 0.894104 0.844025 0.150269 0.911591 0.845581 0.150269 0.927521 0.847046 0.150269 0.941956 0.848572 0.150269 0.955078 0.850098 0.150269 0.966797 0.851501 0.150269 0.977386 0.852936 0.150269 0.986755 0.854370 0.150269 0.096436 0.829865 0.158905 0.121490 0.831573 0.158295 0.147888 0.833313 0.157654 0.175690 0.835022 0.157013 0.205109 0.836670 0.156372 0.236328 0.838318 0.155792 0.269531 0.840027 0.155182 0.304901 0.841644 0.154633 0.342438 0.843353 0.154022 0.381836 0.844910 0.153473 0.423065 0.846558 0.152924 0.465698 0.848175 0.152374 0.509491 0.849731 0.151825 0.553894 0.851318 0.151306 0.597290 0.852875 0.150848 0.638824 0.854401 0.150360 0.678223 0.855957 0.150269 0.714996 0.857483 0.150269 0.748932 0.858948 0.150269 0.779938 0.860443 0.150269 0.807892 0.861877 0.150269 0.833344 0.863342 0.150269 0.856354 0.864777 0.150269 0.877228 0.866150 0.150269 0.896240 0.867554 0.150269 0.913513 0.868927 0.150269 0.929230 0.870239 0.150269 0.943512 0.871582 0.150269 0.956421 0.872894 0.150269 0.968048 0.874176 0.150269 0.978485 0.875458 0.150269 0.987701 0.876678 0.150269 0.099518 0.854950 0.157684 0.124756 0.856476 0.157043 0.151306 0.858032 0.156403 0.179352 0.859589 0.155823 0.208954 0.861084 0.155212 0.240387 0.862610 0.154633 0.273834 0.864044 0.154053 0.309570 0.865570 0.153473 0.347321 0.867065 0.152924 0.386932 0.868500 0.152405 0.428345 0.869965 0.151855 0.471161 0.871399 0.151337 0.515015 0.872803 0.150879 0.559387 0.874268 0.150360 0.602539 0.875641 0.150269 0.643768 0.877014 0.150269 0.682861 0.878387 0.150269 0.719299 0.879761 0.150269 0.752869 0.881104 0.150269 0.783447 0.882385 0.150269 0.811096 0.883698 0.150269 0.836121 0.884979 0.150269 0.858887 0.886261 0.150269 0.879517 0.887512 0.150269 0.898285 0.888733 0.150269 0.915375 0.889984 0.150269 0.930908 0.891113 0.150269 0.945007 0.892334 0.150269 0.957764 0.893494 0.150269 0.969238 0.894592 0.150269 0.979523 0.895752 0.150269 0.988586 0.896820 0.150269 0.102661 0.877533 0.156403 0.128052 0.878937 0.155853 0.154816 0.880310 0.155212 0.183014 0.881714 0.154663 0.212799 0.883057 0.154053 0.244507 0.884430 0.153503 0.278198 0.885803 0.152954 0.314178 0.887115 0.152405 0.352203 0.888458 0.151855 0.392029 0.889740 0.151367 0.433563 0.891083 0.150879 0.476532 0.892395 0.150360 0.520477 0.893646 0.150269 0.564789 0.894897 0.150269 0.607666 0.896179 0.150269 0.648651 0.897430 0.150269 0.687378 0.898651 0.150269 0.723419 0.899811 0.150269 0.756653 0.901031 0.150269 0.786835 0.902191 0.150269 0.814178 0.903351 0.150269 0.838898 0.904541 0.150269 0.861359 0.905640 0.150269 0.881775 0.906769 0.150269 0.900330 0.907867 0.150269 0.917206 0.908936 0.150269 0.932556 0.910004 0.150269 0.946472 0.911041 0.150269 0.959045 0.912048 0.150269 0.970398 0.913055 0.150269 0.980499 0.914032 0.150269 0.989471 0.915070 0.150269 0.105804 0.897980 0.155243 0.131378 0.899200 0.154694 0.158264 0.900482 0.154083 0.186646 0.901703 0.153534 0.216675 0.902954 0.152985 0.248627 0.904175 0.152435 0.282593 0.905365 0.151917 0.318817 0.906616 0.151367 0.357117 0.907806 0.150909 0.397125 0.908966 0.150391 0.438812 0.910156 0.150269 0.481873 0.911316 0.150269 0.525879 0.912445 0.150269 0.570038 0.913574 0.150269 0.612671 0.914703 0.150269 0.653442 0.915802 0.150269 0.691772 0.916931 0.150269 0.727509 0.917969 0.150269 0.760315 0.919037 0.150269 0.790192 0.920074 0.150269 0.817108 0.921112 0.150269 0.841583 0.922180 0.150269 0.863770 0.923157 0.150269 0.883881 0.924133 0.150269 0.902252 0.925110 0.150269 0.918945 0.926056 0.150269 0.934082 0.927002 0.150269 0.947845 0.927948 0.150269 0.960297 0.928802 0.150269 0.971497 0.929749 0.150269 0.981476 0.930573 0.150269 0.990326 0.931427 0.150269 0.108978 0.916412 0.154114 0.134674 0.917542 0.153534 0.161774 0.918640 0.152985 0.190338 0.919739 0.152466 0.220612 0.920898 0.151917 0.252777 0.922028 0.151398 0.286987 0.923096 0.150940 0.323425 0.924164 0.150391 0.361877 0.925262 0.150269 0.402130 0.926270 0.150269 0.444031 0.927368 0.150269 0.487213 0.928406 0.150269 0.531281 0.929413 0.150269 0.575287 0.930420 0.150269 0.617645 0.931396 0.150269 0.658081 0.932404 0.150269 0.696136 0.933350 0.150269 0.731476 0.934326 0.150269 0.763947 0.935272 0.150269 0.793365 0.936218 0.150269 0.819977 0.937103 0.150269 0.844177 0.938049 0.150269 0.866058 0.938934 0.150269 0.885956 0.939789 0.150269 0.904114 0.940674 0.150269 0.920593 0.941467 0.150269 0.935608 0.942291 0.150269 0.949188 0.943146 0.150269 0.961487 0.943939 0.150269 0.972534 0.944702 0.150269 0.982422 0.945465 0.150269 0.991089 0.946198 0.150269 0.112122 0.933014 0.153015 0.138000 0.934052 0.152466 0.165253 0.935059 0.151947 0.193970 0.936066 0.151398 0.224518 0.937073 0.150940 0.256866 0.938049 0.150421 0.291382 0.939056 0.150269 0.328064 0.940033 0.150269 0.366730 0.940979 0.150269 0.407166 0.941925 0.150269 0.449188 0.942871 0.150269 0.492371 0.943787 0.150269 0.536591 0.944672 0.150269 0.580383 0.945587 0.150269 0.622498 0.946472 0.150269 0.662598 0.947357 0.150269 0.700348 0.948212 0.150269 0.735321 0.949036 0.150269 0.767395 0.949890 0.150269 0.796478 0.950745 0.150269 0.822784 0.951508 0.150269 0.846649 0.952301 0.150269 0.868347 0.953094 0.150269 0.888000 0.953827 0.150269 0.905914 0.954620 0.150269 0.922211 0.955322 0.150269 0.937012 0.956085 0.150269 0.950470 0.956787 0.150269 0.962616 0.957458 0.150269 0.973541 0.958130 0.150269 0.983276 0.958832 0.150269 0.991852 0.959442 0.150269 0.115295 0.947998 0.151978 0.141327 0.948914 0.151428 0.168732 0.949860 0.150940 0.197662 0.950745 0.150452 0.228363 0.951630 0.150269 0.261047 0.952515 0.150269 0.295746 0.953369 0.150269 0.332642 0.954285 0.150269 0.371521 0.955139 0.150269 0.412109 0.955933 0.150269 0.454224 0.956757 0.150269 0.497559 0.957550 0.150269 0.541779 0.958374 0.150269 0.585358 0.959167 0.150269 0.627167 0.959961 0.150269 0.667023 0.960724 0.150269 0.704468 0.961517 0.150269 0.739014 0.962250 0.150269 0.770752 0.962982 0.150269 0.799469 0.963715 0.150269 0.825439 0.964386 0.150269 0.849060 0.965088 0.150269 0.870422 0.965790 0.150269 0.889923 0.966431 0.150269 0.907654 0.967133 0.150269 0.923737 0.967743 0.150269 0.938385 0.968384 0.150269 0.951691 0.968994 0.150269 0.963715 0.969574 0.150269 0.974487 0.970154 0.150269 0.984100 0.970764 0.150269 0.992554 0.971283 0.150269 0.118469 0.961456 0.150970 0.144623 0.962250 0.150452 0.172241 0.963074 0.150269 0.201324 0.963837 0.150269 0.232269 0.964661 0.150269 0.265076 0.965454 0.150269 0.300110 0.966187 0.150269 0.337189 0.966980 0.150269 0.376221 0.967712 0.150269 0.417023 0.968475 0.150269 0.459259 0.969208 0.150269 0.502655 0.969910 0.150269 0.546875 0.970612 0.150269 0.590179 0.971313 0.150269 0.631775 0.971985 0.150269 0.671326 0.972687 0.150269 0.708405 0.973358 0.150269 0.742615 0.973969 0.150269 0.773987 0.974609 0.150269 0.802368 0.975250 0.150269 0.828033 0.975861 0.150269 0.851349 0.976471 0.150269 0.872467 0.977051 0.150269 0.891754 0.977631 0.150269 0.909302 0.978210 0.150269 0.925232 0.978760 0.150269 0.939697 0.979309 0.150269 0.952881 0.979828 0.150269 0.964722 0.980316 0.150269 0.975372 0.980835 0.150269 0.984863 0.981323 0.150269 0.993195 0.981781 0.150269 0.040161 0.001404 0.213562 0.061859 0.002075 0.213318 0.084503 0.002716 0.213013 0.108246 0.003448 0.212677 0.133148 0.004272 0.212341 0.159302 0.005035 0.211975 0.186920 0.005859 0.211578 0.216248 0.006714 0.211182 0.247284 0.007599 0.210754 0.280365 0.008514 0.210327 0.315613 0.009460 0.209869 0.352814 0.010376 0.209351 0.391907 0.011383 0.208862 0.432678 0.012360 0.208344 0.474792 0.013428 0.207794 0.518066 0.014465 0.207184 0.561707 0.015533 0.206665 0.604187 0.016663 0.206024 0.644897 0.017792 0.205475 0.683380 0.018921 0.204865 0.719452 0.020081 0.204193 0.752747 0.021301 0.203552 0.783081 0.022522 0.202972 0.810608 0.023743 0.202301 0.835571 0.024994 0.201599 0.858276 0.026276 0.200928 0.878967 0.027588 0.200256 0.897736 0.028839 0.199554 0.914886 0.030212 0.198853 0.930450 0.031586 0.198120 0.944611 0.032928 0.197479 0.957458 0.034302 0.196747 0.041473 0.022308 0.213013 0.063293 0.023071 0.212677 0.086090 0.023834 0.212341 0.109924 0.024719 0.212006 0.134979 0.025543 0.211578 0.161316 0.026398 0.211212 0.189178 0.027344 0.210754 0.218628 0.028259 0.210327 0.249878 0.029205 0.209869 0.283234 0.030212 0.209351 0.318756 0.031250 0.208862 0.356201 0.032288 0.208344 0.395538 0.033356 0.207794 0.436462 0.034424 0.207245 0.478851 0.035553 0.206665 0.522308 0.036713 0.206055 0.565948 0.037872 0.205475 0.608307 0.039062 0.204865 0.648895 0.040314 0.204254 0.687225 0.041504 0.203613 0.723053 0.042786 0.202972 0.756104 0.044098 0.202301 0.786163 0.045349 0.201630 0.813446 0.046692 0.200958 0.838165 0.048004 0.200287 0.860687 0.049377 0.199585 0.881134 0.050812 0.198883 0.899750 0.052155 0.198151 0.916748 0.053619 0.197479 0.932190 0.055084 0.196777 0.946198 0.056519 0.196045 0.958893 0.057983 0.195312 0.042908 0.044220 0.212341 0.064850 0.045105 0.212006 0.087769 0.045929 0.211639 0.111755 0.046875 0.211212 0.136963 0.047821 0.210754 0.163483 0.048767 0.210358 0.191498 0.049805 0.209900 0.221161 0.050812 0.209351 0.252716 0.051849 0.208893 0.286285 0.052948 0.208374 0.321991 0.054047 0.207825 0.359772 0.055176 0.207275 0.399323 0.056366 0.206726 0.440521 0.057556 0.206085 0.483032 0.058777 0.205505 0.526642 0.060059 0.204895 0.570312 0.061249 0.204254 0.612579 0.062561 0.203644 0.653015 0.063904 0.202972 0.691132 0.065186 0.202332 0.726746 0.066559 0.201630 0.759460 0.067932 0.201019 0.789337 0.069336 0.200287 0.816315 0.070770 0.199585 0.840790 0.072174 0.198914 0.863129 0.073639 0.198181 0.883392 0.075104 0.197510 0.901825 0.076599 0.196808 0.918610 0.078156 0.196045 0.933899 0.079712 0.195374 0.947754 0.081238 0.194641 0.960327 0.082794 0.193878 0.044464 0.067169 0.211639 0.066528 0.068115 0.211212 0.089569 0.069122 0.210815 0.113739 0.070129 0.210358 0.139069 0.071167 0.209900 0.165771 0.072205 0.209381 0.193939 0.073303 0.208893 0.223846 0.074463 0.208374 0.255646 0.075592 0.207825 0.289459 0.076782 0.207275 0.325500 0.078003 0.206726 0.363525 0.079254 0.206085 0.403320 0.080536 0.205505 0.444672 0.081787 0.204926 0.487396 0.083130 0.204285 0.531128 0.084473 0.203644 0.574768 0.085815 0.203003 0.616913 0.087219 0.202362 0.657196 0.088654 0.201660 0.695129 0.090057 0.201019 0.730499 0.091522 0.200317 0.762909 0.092957 0.199615 0.792480 0.094513 0.198944 0.819244 0.096069 0.198212 0.843506 0.097534 0.197540 0.865570 0.099152 0.196808 0.885651 0.100739 0.196075 0.903870 0.102295 0.195404 0.920532 0.103912 0.194672 0.935669 0.105591 0.193909 0.949341 0.107208 0.193237 0.961792 0.108917 0.192505 0.046143 0.091309 0.210815 0.068359 0.092346 0.210358 0.091492 0.093384 0.209930 0.115814 0.094543 0.209381 0.141327 0.095703 0.208923 0.168182 0.096893 0.208405 0.196594 0.098083 0.207855 0.226685 0.099335 0.207306 0.258728 0.100586 0.206757 0.292847 0.101868 0.206146 0.329102 0.103149 0.205536 0.367371 0.104553 0.204926 0.407410 0.105927 0.204315 0.449005 0.107300 0.203674 0.491913 0.108734 0.203033 0.535797 0.110199 0.202362 0.579376 0.111633 0.201691 0.621399 0.113159 0.201050 0.661499 0.114716 0.200317 0.699188 0.116241 0.199646 0.734283 0.117798 0.198944 0.766418 0.119385 0.198242 0.795654 0.121002 0.197540 0.822144 0.122681 0.196838 0.846191 0.124298 0.196106 0.868042 0.125977 0.195404 0.887878 0.127716 0.194672 0.905945 0.129395 0.193939 0.922424 0.131134 0.193237 0.937378 0.132843 0.192535 0.950928 0.134644 0.191803 0.963196 0.136444 0.191071 0.047913 0.116669 0.209930 0.070251 0.117889 0.209442 0.093536 0.119080 0.208923 0.118011 0.120300 0.208405 0.143707 0.121582 0.207855 0.170715 0.122864 0.207306 0.199341 0.124207 0.206757 0.229706 0.125519 0.206146 0.261963 0.126892 0.205566 0.296356 0.128326 0.204956 0.332855 0.129730 0.204315 0.371368 0.131226 0.203735 0.411652 0.132721 0.203033 0.453461 0.134247 0.202393 0.496552 0.135773 0.201691 0.540588 0.137360 0.201050 0.584045 0.138947 0.200348 0.625977 0.140594 0.199677 0.665833 0.142212 0.198975 0.703308 0.143890 0.198242 0.738129 0.145569 0.197571 0.769989 0.147247 0.196869 0.798920 0.149048 0.196106 0.825104 0.150818 0.195435 0.848907 0.152527 0.194733 0.870514 0.154358 0.193970 0.890167 0.156219 0.193268 0.908020 0.157990 0.192535 0.924316 0.159882 0.191803 0.939117 0.161743 0.191101 0.952515 0.163666 0.190399 0.964630 0.165588 0.189667 0.049805 0.143555 0.208954 0.072235 0.144867 0.208405 0.095673 0.146118 0.207886 0.120300 0.147522 0.207336 0.146118 0.148895 0.206787 0.173401 0.150330 0.206177 0.202271 0.151733 0.205566 0.232788 0.153229 0.204956 0.265289 0.154755 0.204346 0.299988 0.156311 0.203735 0.336792 0.157837 0.203064 0.375549 0.159424 0.202423 0.416107 0.161072 0.201721 0.458069 0.162689 0.201080 0.501343 0.164398 0.200378 0.545471 0.166077 0.199707 0.588867 0.167847 0.199005 0.630646 0.169617 0.198303 0.670258 0.171356 0.197601 0.707489 0.173187 0.196899 0.742004 0.175018 0.196167 0.773560 0.176819 0.195465 0.802155 0.178711 0.194733 0.828094 0.180634 0.193970 0.851593 0.182526 0.193298 0.872955 0.184479 0.192566 0.892426 0.186432 0.191833 0.910095 0.188385 0.191132 0.926208 0.190399 0.190430 0.940826 0.192383 0.189697 0.954102 0.194458 0.189026 0.966064 0.196503 0.188293 0.051788 0.171997 0.207886 0.074371 0.173431 0.207336 0.097961 0.174866 0.206818 0.122742 0.176361 0.206177 0.148743 0.177856 0.205627 0.176178 0.179443 0.204987 0.205231 0.181030 0.204346 0.236023 0.182617 0.203766 0.268829 0.184296 0.203094 0.303772 0.185974 0.202423 0.340851 0.187714 0.201752 0.379852 0.189423 0.201111 0.420624 0.191193 0.200378 0.462860 0.192963 0.199707 0.506287 0.194794 0.199005 0.550446 0.196655 0.198334 0.593750 0.198486 0.197632 0.635345 0.200409 0.196899 0.674744 0.202362 0.196198 0.711700 0.204315 0.195465 0.745880 0.206268 0.194763 0.777100 0.208252 0.194031 0.805420 0.210297 0.193298 0.831085 0.212341 0.192596 0.854309 0.214417 0.191864 0.875458 0.216492 0.191132 0.894684 0.218567 0.190460 0.912170 0.220734 0.189728 0.928101 0.222870 0.189026 0.942566 0.225037 0.188324 0.955658 0.227234 0.187592 0.967468 0.229431 0.186890 0.053833 0.202271 0.206818 0.076538 0.203796 0.206207 0.100281 0.205414 0.205658 0.125275 0.207062 0.204987 0.151398 0.208710 0.204407 0.179077 0.210419 0.203766 0.208374 0.212189 0.203094 0.239410 0.213928 0.202454 0.272430 0.215729 0.201752 0.307709 0.217621 0.201111 0.345062 0.219452 0.200409 0.384308 0.221375 0.199738 0.425201 0.223236 0.199036 0.467712 0.225220 0.198334 0.511383 0.227234 0.197632 0.555481 0.229218 0.196930 0.598724 0.231232 0.196228 0.640076 0.233368 0.195496 0.679230 0.235382 0.194794 0.715942 0.237518 0.194061 0.749817 0.239716 0.193329 0.780701 0.241852 0.192627 0.808685 0.244049 0.191925 0.834045 0.246216 0.191162 0.857025 0.248474 0.190460 0.877930 0.250702 0.189728 0.896942 0.252960 0.189056 0.914276 0.255249 0.188354 0.929993 0.257568 0.187622 0.944275 0.259888 0.186920 0.957214 0.262299 0.186218 0.968872 0.264709 0.185547 0.056000 0.234497 0.205658 0.078857 0.236206 0.205017 0.102783 0.238007 0.204407 0.127899 0.239838 0.203796 0.154236 0.241638 0.203125 0.182098 0.243561 0.202484 0.211578 0.245453 0.201813 0.242889 0.247375 0.201141 0.276215 0.249390 0.200439 0.311798 0.251434 0.199738 0.349365 0.253387 0.199066 0.388916 0.255493 0.198364 0.430084 0.257538 0.197662 0.472717 0.259674 0.196991 0.516479 0.261902 0.196228 0.560638 0.264099 0.195526 0.603729 0.266296 0.194794 0.644928 0.268524 0.194061 0.683807 0.270782 0.193359 0.720215 0.273102 0.192627 0.753754 0.275421 0.191925 0.784241 0.277802 0.191193 0.811951 0.280212 0.190491 0.836975 0.282501 0.189758 0.859741 0.284943 0.189087 0.880432 0.287384 0.188354 0.899200 0.289825 0.187653 0.916351 0.292328 0.186920 0.931854 0.294830 0.186218 0.945984 0.297302 0.185577 0.958740 0.299835 0.184906 0.970245 0.302429 0.184204 0.058258 0.269073 0.204407 0.081268 0.270966 0.203827 0.105316 0.272949 0.203156 0.130585 0.274963 0.202484 0.157135 0.276947 0.201843 0.185181 0.279022 0.201172 0.214935 0.281158 0.200439 0.246460 0.283234 0.199768 0.280090 0.285431 0.199066 0.315887 0.287598 0.198395 0.353760 0.289825 0.197693 0.393585 0.292084 0.196991 0.434967 0.294373 0.196259 0.477814 0.296692 0.195526 0.521759 0.299103 0.194855 0.565887 0.301422 0.194122 0.608765 0.303864 0.193359 0.649750 0.306335 0.192657 0.688416 0.308777 0.191956 0.724457 0.311279 0.191193 0.757690 0.313782 0.190491 0.787842 0.316284 0.189789 0.815186 0.318848 0.189087 0.839935 0.321381 0.188385 0.862427 0.324005 0.187653 0.882874 0.326691 0.186951 0.901459 0.329224 0.186249 0.918335 0.331848 0.185577 0.933746 0.334564 0.184906 0.947662 0.337189 0.184235 0.960297 0.339966 0.183594 0.971649 0.342651 0.182892 0.060638 0.306152 0.203156 0.083740 0.308228 0.202515 0.107971 0.310425 0.201843 0.133423 0.312622 0.201172 0.160156 0.314728 0.200470 0.188416 0.317078 0.199799 0.218353 0.319366 0.199127 0.250153 0.321655 0.198395 0.284088 0.324036 0.197693 0.320190 0.326355 0.197021 0.358337 0.328796 0.196289 0.398315 0.331268 0.195557 0.439972 0.333710 0.194885 0.483032 0.336273 0.194122 0.527130 0.338806 0.193390 0.571136 0.341278 0.192719 0.613892 0.343903 0.191986 0.654633 0.346588 0.191223 0.692963 0.349121 0.190552 0.728760 0.351868 0.189789 0.761536 0.354492 0.189148 0.791382 0.357178 0.188416 0.818420 0.359955 0.187714 0.842865 0.362640 0.186981 0.865112 0.365417 0.186279 0.885315 0.368195 0.185608 0.903687 0.370941 0.184937 0.920380 0.373779 0.184235 0.935608 0.376587 0.183594 0.949310 0.379425 0.182922 0.961792 0.382233 0.182312 0.972961 0.385040 0.181671 0.063049 0.345642 0.201874 0.086273 0.347900 0.201202 0.110687 0.350281 0.200500 0.136322 0.352692 0.199799 0.163239 0.355011 0.199158 0.191711 0.357483 0.198425 0.221832 0.359894 0.197723 0.253937 0.362427 0.197052 0.288208 0.364990 0.196289 0.324524 0.367493 0.195587 0.362976 0.370117 0.194885 0.403229 0.372803 0.194153 0.445099 0.375366 0.193420 0.488281 0.378082 0.192719 0.532532 0.380798 0.191986 0.576477 0.383484 0.191254 0.618988 0.386230 0.190552 0.659515 0.389069 0.189819 0.697571 0.391785 0.189148 0.732971 0.394623 0.188416 0.765472 0.397430 0.187744 0.794952 0.400299 0.187012 0.821655 0.403198 0.186279 0.845795 0.406036 0.185638 0.867798 0.408966 0.184967 0.887756 0.411926 0.184296 0.905853 0.414764 0.183624 0.922394 0.417694 0.182983 0.937378 0.420654 0.182312 0.950989 0.423584 0.181702 0.963287 0.426544 0.181061 0.974304 0.429504 0.180481 0.065521 0.387451 0.200500 0.088959 0.389862 0.199829 0.113495 0.392365 0.199158 0.139282 0.394958 0.198425 0.166412 0.397491 0.197784 0.195129 0.400146 0.197052 0.225494 0.402710 0.196320 0.257874 0.405365 0.195648 0.292419 0.408081 0.194916 0.329041 0.410767 0.194183 0.367737 0.413574 0.193451 0.408264 0.416351 0.192749 0.450317 0.419128 0.192017 0.493683 0.421997 0.191284 0.538025 0.424866 0.190582 0.581787 0.427643 0.189850 0.624176 0.430603 0.189178 0.664307 0.433441 0.188446 0.702148 0.436401 0.187775 0.737213 0.439392 0.187012 0.769318 0.442291 0.186310 0.798462 0.445282 0.185638 0.824829 0.448303 0.184967 0.848694 0.451294 0.184326 0.870392 0.454346 0.183655 0.890137 0.457336 0.183014 0.908051 0.460327 0.182343 0.924347 0.463440 0.181702 0.939178 0.466400 0.181122 0.952606 0.469513 0.180481 0.964722 0.472534 0.179901 0.975586 0.475586 0.179291 0.068085 0.431213 0.199188 0.091675 0.433777 0.198456 0.116394 0.436462 0.197784 0.142365 0.439209 0.197083 0.169678 0.441895 0.196350 0.198639 0.444672 0.195648 0.229248 0.447388 0.194946 0.261902 0.450226 0.194183 0.296692 0.453064 0.193451 0.333618 0.455902 0.192780 0.372589 0.458832 0.192047 0.413300 0.461731 0.191284 0.455536 0.464661 0.190613 0.499084 0.467621 0.189880 0.543457 0.470520 0.189209 0.587219 0.473572 0.188477 0.629333 0.476624 0.187775 0.669189 0.479553 0.187042 0.706726 0.482635 0.186371 0.741455 0.485718 0.185669 0.773132 0.488708 0.184998 0.801941 0.491852 0.184357 0.827972 0.494934 0.183655 0.851532 0.498016 0.183014 0.872986 0.501129 0.182343 0.892517 0.504242 0.181732 0.910217 0.507324 0.181122 0.926331 0.510468 0.180511 0.940948 0.513580 0.179932 0.954224 0.516724 0.179291 0.966156 0.519836 0.178741 0.976837 0.522888 0.178192 0.070770 0.476654 0.197815 0.094452 0.479370 0.197113 0.119385 0.482239 0.196350 0.145447 0.484985 0.195679 0.173004 0.487915 0.194946 0.202209 0.490753 0.194214 0.233093 0.493591 0.193542 0.265991 0.496552 0.192780 0.301086 0.499542 0.192047 0.338287 0.502472 0.191315 0.377502 0.505463 0.190613 0.418457 0.508575 0.189880 0.460907 0.511566 0.189209 0.504608 0.514648 0.188477 0.549011 0.517639 0.187805 0.592529 0.520752 0.187073 0.634460 0.523895 0.186401 0.674072 0.526978 0.185699 0.711243 0.530090 0.185028 0.745605 0.533264 0.184357 0.776978 0.536316 0.183685 0.805389 0.539459 0.183044 0.831116 0.542664 0.182373 0.854401 0.545685 0.181763 0.875549 0.548859 0.181122 0.894806 0.551910 0.180542 0.912292 0.555084 0.179932 0.928223 0.558167 0.179352 0.942688 0.561249 0.178772 0.955780 0.564331 0.178192 0.967560 0.567352 0.177643 0.978119 0.570343 0.177155 0.073486 0.523499 0.196381 0.097321 0.526337 0.195709 0.122375 0.529266 0.194977 0.148682 0.532104 0.194244 0.176422 0.535126 0.193542 0.205811 0.538147 0.192810 0.236908 0.541016 0.192108 0.270142 0.544067 0.191376 0.305573 0.547119 0.190643 0.342987 0.550079 0.189941 0.382477 0.553101 0.189240 0.423706 0.556152 0.188507 0.466278 0.559143 0.187836 0.510193 0.562256 0.187073 0.554565 0.565247 0.186432 0.597961 0.568298 0.185699 0.639587 0.571411 0.185028 0.678955 0.574402 0.184387 0.715790 0.577515 0.183716 0.749786 0.580566 0.183044 0.780731 0.583527 0.182404 0.808777 0.586639 0.181763 0.834167 0.589630 0.181152 0.857178 0.592590 0.180542 0.878113 0.595642 0.179962 0.897125 0.598663 0.179382 0.914429 0.601593 0.178772 0.930145 0.604584 0.178192 0.944397 0.607452 0.177673 0.957306 0.610413 0.177155 0.968964 0.613373 0.176636 0.979340 0.616180 0.176331 0.076263 0.570557 0.195007 0.100250 0.573334 0.194244 0.125458 0.576233 0.193573 0.151947 0.579102 0.192841 0.179932 0.582001 0.192108 0.209534 0.584991 0.191376 0.240936 0.587830 0.190674 0.274384 0.590759 0.189941 0.310089 0.593750 0.189240 0.347809 0.596619 0.188538 0.387512 0.599579 0.187836 0.428986 0.602570 0.187103 0.471741 0.605438 0.186432 0.515747 0.608429 0.185730 0.560089 0.611298 0.185059 0.603302 0.614258 0.184418 0.644714 0.617249 0.183716 0.683777 0.620117 0.183075 0.720245 0.623047 0.182404 0.753876 0.625977 0.181793 0.784424 0.628815 0.181183 0.812103 0.631744 0.180573 0.837189 0.634674 0.179962 0.859924 0.637482 0.179382 0.880615 0.640350 0.178772 0.899353 0.643097 0.178223 0.916473 0.645966 0.177673 0.931976 0.648773 0.177185 0.946075 0.651489 0.176666 0.958801 0.654266 0.176331 0.970276 0.657043 0.176331 0.980499 0.659668 0.176331 0.079041 0.615967 0.193604 0.103210 0.618805 0.192871 0.128632 0.621613 0.192139 0.155273 0.624359 0.191406 0.183441 0.627167 0.190674 0.213348 0.630005 0.189972 0.244965 0.632751 0.189270 0.278717 0.635620 0.188568 0.314697 0.638428 0.187866 0.352722 0.641174 0.187164 0.392609 0.644012 0.186462 0.434265 0.646790 0.185760 0.477203 0.649597 0.185089 0.521362 0.652435 0.184418 0.565674 0.655151 0.183777 0.608643 0.657959 0.183105 0.649811 0.660797 0.182465 0.688507 0.663452 0.181824 0.724609 0.666229 0.181183 0.757904 0.669006 0.180573 0.788086 0.671692 0.179993 0.815430 0.674438 0.179413 0.840210 0.677124 0.178833 0.862640 0.679749 0.178253 0.883057 0.682465 0.177704 0.901581 0.685028 0.177216 0.918457 0.687683 0.176697 0.933807 0.690277 0.176331 0.947693 0.692810 0.176331 0.960297 0.695404 0.176331 0.971588 0.697937 0.176331 0.981689 0.700348 0.176331 0.081909 0.659332 0.192200 0.106262 0.662018 0.191437 0.131805 0.664642 0.190704 0.158691 0.667297 0.190002 0.187042 0.670013 0.189301 0.217194 0.672668 0.188568 0.249084 0.675293 0.187897 0.283142 0.677979 0.187164 0.319397 0.680603 0.186462 0.357666 0.683289 0.185791 0.397858 0.685852 0.185120 0.439575 0.688507 0.184448 0.482758 0.691132 0.183807 0.527008 0.693787 0.183136 0.571228 0.696350 0.182495 0.613983 0.698944 0.181824 0.654877 0.701569 0.181213 0.693237 0.704102 0.180603 0.729004 0.706635 0.179993 0.761902 0.709229 0.179413 0.791656 0.711639 0.178864 0.818665 0.714203 0.178253 0.843109 0.716583 0.177734 0.865265 0.719116 0.177216 0.885468 0.721558 0.176697 0.903748 0.723938 0.176331 0.920441 0.726318 0.176331 0.935608 0.728729 0.176331 0.949280 0.731018 0.176331 0.961731 0.733337 0.176331 0.972870 0.735657 0.176331 0.982819 0.737885 0.176331 0.084839 0.700012 0.190735 0.109375 0.702515 0.190002 0.135071 0.705017 0.189301 0.162140 0.707428 0.188599 0.190735 0.709961 0.187897 0.221008 0.712524 0.187195 0.253235 0.714935 0.186493 0.287567 0.717377 0.185791 0.324066 0.719818 0.185150 0.362640 0.722290 0.184479 0.403076 0.724792 0.183807 0.445007 0.727173 0.183136 0.488342 0.729584 0.182526 0.532654 0.732025 0.181854 0.576691 0.734406 0.181244 0.619232 0.736786 0.180634 0.659821 0.739136 0.180023 0.697906 0.741455 0.179443 0.733307 0.743805 0.178864 0.765808 0.746155 0.178314 0.795197 0.748383 0.177734 0.821838 0.750641 0.177216 0.845978 0.752869 0.176727 0.867859 0.755096 0.176331 0.887817 0.757324 0.176331 0.905884 0.759460 0.176331 0.922363 0.761597 0.176331 0.937317 0.763794 0.176331 0.950836 0.765869 0.176331 0.963104 0.767914 0.176331 0.974091 0.769989 0.176331 0.983887 0.771973 0.176331 0.087860 0.737579 0.189362 0.112518 0.739929 0.188629 0.138397 0.742249 0.187927 0.165649 0.744537 0.187225 0.194489 0.746796 0.186523 0.224945 0.749115 0.185852 0.257446 0.751343 0.185150 0.292053 0.753632 0.184479 0.328796 0.755859 0.183838 0.367615 0.758118 0.183167 0.408264 0.760315 0.182526 0.450409 0.762512 0.181885 0.493927 0.764740 0.181244 0.538300 0.766937 0.180634 0.582153 0.769043 0.180054 0.624512 0.771210 0.179443 0.664764 0.773315 0.178894 0.702484 0.775452 0.178345 0.737518 0.777496 0.177734 0.769562 0.779541 0.177246 0.798615 0.781647 0.176727 0.824951 0.783661 0.176331 0.848755 0.785614 0.176331 0.870392 0.787628 0.176331 0.890106 0.789612 0.176331 0.907959 0.791504 0.176331 0.924225 0.793457 0.176331 0.938995 0.795349 0.176331 0.952393 0.797180 0.176331 0.964447 0.799011 0.176331 0.975281 0.800781 0.176331 0.984924 0.802612 0.176331 0.090851 0.771851 0.187958 0.115662 0.773987 0.187256 0.141724 0.776093 0.186523 0.169159 0.778168 0.185883 0.198181 0.780243 0.185181 0.229004 0.782318 0.184509 0.261688 0.784302 0.183868 0.296631 0.786377 0.183167 0.333618 0.788391 0.182556 0.372681 0.790405 0.181885 0.413513 0.792419 0.181274 0.455902 0.794373 0.180664 0.499481 0.796326 0.180054 0.543915 0.798309 0.179474 0.587585 0.800201 0.178925 0.629639 0.802155 0.178345 0.669586 0.804077 0.177795 0.707062 0.805939 0.177277 0.741669 0.807800 0.176727 0.773315 0.809631 0.176331 0.802032 0.811462 0.176331 0.828003 0.813263 0.176331 0.851501 0.815002 0.176331 0.872894 0.816833 0.176331 0.892334 0.818573 0.176331 0.910004 0.820282 0.176331 0.926056 0.821991 0.176331 0.940674 0.823669 0.176331 0.953827 0.825287 0.176331 0.965790 0.826965 0.176331 0.976471 0.828491 0.176331 0.985962 0.830139 0.176331 0.093903 0.802734 0.186554 0.118866 0.804626 0.185883 0.145142 0.806519 0.185181 0.172760 0.808380 0.184540 0.201996 0.810272 0.183868 0.232971 0.812073 0.183228 0.265991 0.813965 0.182556 0.301147 0.815826 0.181946 0.338501 0.817566 0.181305 0.377808 0.819427 0.180695 0.418793 0.821259 0.180084 0.461304 0.822968 0.179504 0.505005 0.824768 0.178925 0.549469 0.826538 0.178345 0.592926 0.828247 0.177826 0.634735 0.829956 0.177277 0.674347 0.831635 0.176758 0.711426 0.833344 0.176331 0.745728 0.835022 0.176331 0.777008 0.836670 0.176331 0.805328 0.838287 0.176331 0.830994 0.839905 0.176331 0.854187 0.841492 0.176331 0.875305 0.843048 0.176331 0.894531 0.844604 0.176331 0.911926 0.846130 0.176331 0.927856 0.847656 0.176331 0.942230 0.849121 0.176331 0.955292 0.850586 0.176331 0.967041 0.852051 0.176331 0.977600 0.853424 0.176331 0.986938 0.854858 0.176331 0.096985 0.830475 0.185211 0.122131 0.832214 0.184540 0.148560 0.833923 0.183899 0.176331 0.835602 0.183228 0.205841 0.837280 0.182587 0.237030 0.838959 0.181976 0.270325 0.840607 0.181305 0.305817 0.842285 0.180695 0.343323 0.843903 0.180115 0.382843 0.845520 0.179504 0.424103 0.847168 0.178925 0.466675 0.848724 0.178375 0.510590 0.850342 0.177826 0.554993 0.851898 0.177277 0.598236 0.853424 0.176788 0.639771 0.854980 0.176331 0.679077 0.856506 0.176331 0.715820 0.858002 0.176331 0.749695 0.859528 0.176331 0.780548 0.860962 0.176331 0.808533 0.862427 0.176331 0.833862 0.863861 0.176331 0.856812 0.865265 0.176331 0.877686 0.866669 0.176331 0.896637 0.868042 0.176331 0.913849 0.869385 0.176331 0.929596 0.870758 0.176331 0.943787 0.872070 0.176331 0.956665 0.873352 0.176331 0.968292 0.874664 0.176331 0.978668 0.875885 0.176331 0.987885 0.877167 0.176331 0.100098 0.855469 0.183929 0.125427 0.857025 0.183258 0.151947 0.858582 0.182617 0.179993 0.860077 0.181976 0.209656 0.861633 0.181335 0.241150 0.863129 0.180725 0.274689 0.864624 0.180115 0.310425 0.866119 0.179535 0.348175 0.867584 0.178955 0.387939 0.869019 0.178406 0.429352 0.870514 0.177856 0.472076 0.871918 0.177307 0.516022 0.873352 0.176788 0.560364 0.874725 0.176331 0.603516 0.876160 0.176331 0.644714 0.877533 0.176331 0.683685 0.878906 0.176331 0.720032 0.880219 0.176331 0.753601 0.881592 0.176331 0.784058 0.882843 0.176331 0.811676 0.884186 0.176331 0.836700 0.885468 0.176331 0.859344 0.886719 0.176331 0.879974 0.887939 0.176331 0.898651 0.889191 0.176331 0.915710 0.890411 0.176331 0.931213 0.891571 0.176331 0.945251 0.892761 0.176331 0.958008 0.893921 0.176331 0.969452 0.895050 0.176331 0.979706 0.896149 0.176331 0.988770 0.897247 0.176331 0.103241 0.878052 0.182617 0.128693 0.879486 0.182007 0.155396 0.880798 0.181366 0.183655 0.882233 0.180756 0.213562 0.883606 0.180145 0.245239 0.884949 0.179565 0.279083 0.886292 0.178986 0.315063 0.887665 0.178406 0.353088 0.888947 0.177856 0.393005 0.890259 0.177338 0.434601 0.891571 0.176819 0.477478 0.892853 0.176331 0.521515 0.894135 0.176331 0.565704 0.895386 0.176331 0.608612 0.896606 0.176331 0.649567 0.897858 0.176331 0.688202 0.899078 0.176331 0.724182 0.900269 0.176331 0.757355 0.901489 0.176331 0.787415 0.902649 0.176331 0.814697 0.903778 0.176331 0.839417 0.904968 0.176331 0.861786 0.906036 0.176331 0.882172 0.907166 0.176331 0.900665 0.908234 0.176331 0.917511 0.909363 0.176331 0.932831 0.910400 0.176331 0.946716 0.911407 0.176331 0.959259 0.912445 0.176331 0.970612 0.913422 0.176331 0.980713 0.914429 0.176331 0.989624 0.915375 0.176331 0.106384 0.898407 0.181366 0.131989 0.899658 0.180756 0.158905 0.900879 0.180176 0.187317 0.902191 0.179565 0.217468 0.903412 0.178986 0.249390 0.904633 0.178436 0.283447 0.905823 0.177887 0.319672 0.907043 0.177338 0.357880 0.908234 0.176819 0.398071 0.909454 0.176331 0.439728 0.910553 0.176331 0.482819 0.911743 0.176331 0.526978 0.912842 0.176331 0.571014 0.913971 0.176331 0.613617 0.915131 0.176331 0.654327 0.916260 0.176331 0.692596 0.917297 0.176331 0.728271 0.918365 0.176331 0.761047 0.919434 0.176331 0.790741 0.920441 0.176331 0.817688 0.921509 0.176331 0.842072 0.922546 0.176331 0.864197 0.923492 0.176331 0.884308 0.924469 0.176331 0.902588 0.925446 0.176331 0.919250 0.926422 0.176331 0.934357 0.927338 0.176331 0.948120 0.928223 0.176331 0.960510 0.929138 0.176331 0.971710 0.930023 0.176331 0.981659 0.930908 0.176331 0.990448 0.931732 0.176331 0.109558 0.916809 0.180176 0.135284 0.917938 0.179596 0.162384 0.919067 0.179016 0.191010 0.920166 0.178467 0.221313 0.921295 0.177887 0.253540 0.922394 0.177368 0.287872 0.923492 0.176849 0.324310 0.924561 0.176331 0.362793 0.925629 0.176331 0.403107 0.926697 0.176331 0.444977 0.927734 0.176331 0.488129 0.928741 0.176331 0.532318 0.929810 0.176331 0.576172 0.930756 0.176331 0.618591 0.931763 0.176331 0.658966 0.932800 0.176331 0.696930 0.933716 0.176331 0.732208 0.934692 0.176331 0.764587 0.935638 0.176331 0.793945 0.936554 0.176331 0.820526 0.937469 0.176331 0.844604 0.938354 0.176331 0.866486 0.939240 0.176331 0.886353 0.940125 0.176331 0.904449 0.940948 0.176331 0.920898 0.941803 0.176331 0.935852 0.942627 0.176331 0.949432 0.943420 0.176331 0.961731 0.944214 0.176331 0.972748 0.944977 0.176331 0.982544 0.945740 0.176331 0.991241 0.946503 0.176331 0.112701 0.933380 0.179047 0.138641 0.934418 0.178467 0.165894 0.935425 0.177917 0.194702 0.936432 0.177368 0.225220 0.937469 0.176849 0.257629 0.938416 0.176361 0.292206 0.939392 0.176331 0.328888 0.940338 0.176331 0.367584 0.941315 0.176331 0.408081 0.942261 0.176331 0.450104 0.943176 0.176331 0.493317 0.944092 0.176331 0.537567 0.945007 0.176331 0.581268 0.945892 0.176331 0.623352 0.946777 0.176331 0.663452 0.947662 0.176331 0.701080 0.948486 0.176331 0.736053 0.949341 0.176331 0.768066 0.950195 0.176331 0.797028 0.951019 0.176331 0.823303 0.951813 0.176331 0.847076 0.952606 0.176331 0.868744 0.953369 0.176331 0.888367 0.954163 0.176331 0.906219 0.954895 0.176331 0.922546 0.955627 0.176331 0.937286 0.956360 0.176331 0.950714 0.957062 0.176331 0.962860 0.957733 0.176331 0.973724 0.958405 0.176331 0.983398 0.959045 0.176331 0.991974 0.959717 0.176331 0.115906 0.948334 0.177917 0.141968 0.949249 0.177399 0.169373 0.950165 0.176880 0.198364 0.951080 0.176361 0.229126 0.951996 0.176331 0.261749 0.952820 0.176331 0.296570 0.953705 0.176331 0.333466 0.954529 0.176331 0.372406 0.955414 0.176331 0.413086 0.956238 0.176331 0.455139 0.957062 0.176331 0.498566 0.957886 0.176331 0.542786 0.958679 0.176331 0.586243 0.959442 0.176331 0.628082 0.960236 0.176331 0.667847 0.961029 0.176331 0.705139 0.961792 0.176331 0.739777 0.962494 0.176331 0.771332 0.963226 0.176331 0.800018 0.963959 0.176331 0.825928 0.964661 0.176331 0.849487 0.965363 0.176331 0.870850 0.966034 0.176331 0.890289 0.966705 0.176331 0.907959 0.967316 0.176331 0.924042 0.967987 0.176331 0.938690 0.968597 0.176331 0.951904 0.969208 0.176331 0.963898 0.969818 0.176331 0.974640 0.970398 0.176331 0.984253 0.970947 0.176331 0.992676 0.971527 0.176331 0.119080 0.961731 0.176880 0.145264 0.962555 0.176361 0.172852 0.963379 0.176331 0.202026 0.964172 0.176331 0.232910 0.964935 0.176331 0.265839 0.965729 0.176331 0.300873 0.966492 0.176331 0.338013 0.967255 0.176331 0.377106 0.967987 0.176331 0.417938 0.968750 0.176331 0.460175 0.969452 0.176331 0.503632 0.970154 0.176331 0.547791 0.970856 0.176331 0.591064 0.971558 0.176331 0.632690 0.972229 0.176331 0.672119 0.972931 0.176331 0.709106 0.973541 0.176331 0.743347 0.974213 0.176331 0.774567 0.974854 0.176331 0.802856 0.975464 0.176331 0.828491 0.976074 0.176331 0.851746 0.976654 0.176331 0.872864 0.977264 0.176331 0.892120 0.977844 0.176331 0.909576 0.978394 0.176331 0.925507 0.978912 0.176331 0.939972 0.979492 0.176331 0.953094 0.979980 0.176331 0.964905 0.980499 0.176331 0.975555 0.980988 0.176331 0.984985 0.981476 0.176331 0.993317 0.981964 0.176331 0.040405 0.001648 0.243073 0.062134 0.002319 0.242798 0.084778 0.003021 0.242493 0.108521 0.003784 0.242126 0.133484 0.004547 0.241791 0.159668 0.005371 0.241364 0.187347 0.006195 0.240967 0.216644 0.007050 0.240540 0.247742 0.007904 0.240051 0.280884 0.008789 0.239563 0.316132 0.009766 0.239075 0.353485 0.010742 0.238525 0.392548 0.011719 0.238007 0.433380 0.012756 0.237427 0.475586 0.013824 0.236847 0.518799 0.014832 0.236267 0.562500 0.015930 0.235657 0.604950 0.017090 0.235016 0.645599 0.018188 0.234344 0.684143 0.019379 0.233734 0.720062 0.020508 0.233093 0.753326 0.021729 0.232391 0.783661 0.022980 0.231689 0.811127 0.024170 0.231018 0.836060 0.025452 0.230255 0.858734 0.026764 0.229584 0.879333 0.028046 0.228851 0.898132 0.029358 0.228088 0.915253 0.030731 0.227356 0.930756 0.032043 0.226624 0.944916 0.033447 0.225891 0.957703 0.034821 0.225128 0.041748 0.022614 0.242493 0.063568 0.023346 0.242157 0.086365 0.024139 0.241791 0.110291 0.025024 0.241425 0.135315 0.025848 0.240967 0.161713 0.026764 0.240540 0.189575 0.027649 0.240082 0.219055 0.028595 0.239563 0.250397 0.029572 0.239075 0.283783 0.030579 0.238556 0.319336 0.031616 0.238007 0.356873 0.032654 0.237427 0.396240 0.033722 0.236877 0.437256 0.034821 0.236267 0.479614 0.035980 0.235657 0.523041 0.037140 0.235046 0.566742 0.038330 0.234375 0.609100 0.039520 0.233734 0.649597 0.040710 0.233093 0.687927 0.041992 0.232391 0.723694 0.043243 0.231720 0.756714 0.044525 0.231018 0.786774 0.045868 0.230286 0.813995 0.047150 0.229645 0.838684 0.048553 0.228851 0.861145 0.049927 0.228088 0.881561 0.051300 0.227386 0.900146 0.052704 0.226654 0.917084 0.054138 0.225891 0.932526 0.055603 0.225128 0.946503 0.057037 0.224396 0.959167 0.058502 0.223633 0.043182 0.044495 0.241821 0.065155 0.045349 0.241425 0.088104 0.046295 0.240997 0.112152 0.047211 0.240540 0.137360 0.048126 0.240082 0.163910 0.049133 0.239594 0.191956 0.050110 0.239105 0.221649 0.051178 0.238556 0.253265 0.052246 0.238007 0.286835 0.053345 0.237457 0.322632 0.054504 0.236877 0.360474 0.055634 0.236267 0.400085 0.056793 0.235687 0.441254 0.058014 0.235046 0.483856 0.059235 0.234375 0.527435 0.060455 0.233795 0.571136 0.061737 0.233124 0.613373 0.063019 0.232452 0.653778 0.064392 0.231750 0.691895 0.065704 0.231049 0.727386 0.067047 0.230286 0.760101 0.068451 0.229645 0.789886 0.069824 0.228882 0.816864 0.071289 0.228149 0.841339 0.072723 0.227386 0.863586 0.074219 0.226654 0.883789 0.075653 0.225922 0.902191 0.077209 0.225159 0.918945 0.078674 0.224426 0.934235 0.080261 0.223663 0.948090 0.081787 0.222870 0.960571 0.083374 0.222137 0.044769 0.067535 0.240997 0.066864 0.068451 0.240570 0.089935 0.069458 0.240082 0.114136 0.070465 0.239594 0.139465 0.071533 0.239105 0.166199 0.072632 0.238586 0.194458 0.073730 0.238037 0.224396 0.074890 0.237488 0.256226 0.076050 0.236877 0.290070 0.077209 0.236328 0.326141 0.078461 0.235687 0.364197 0.079742 0.235077 0.404053 0.080963 0.234436 0.445465 0.082275 0.233795 0.488190 0.083618 0.233154 0.531982 0.084961 0.232483 0.575653 0.086334 0.231750 0.617737 0.087708 0.231079 0.657959 0.089111 0.230316 0.695923 0.090607 0.229675 0.731110 0.092072 0.228912 0.763641 0.093536 0.228180 0.793060 0.095093 0.227417 0.819763 0.096588 0.226685 0.843994 0.098145 0.225952 0.866028 0.099762 0.225189 0.886017 0.101288 0.224426 0.904266 0.102905 0.223694 0.920868 0.104553 0.222900 0.935944 0.106171 0.222168 0.949646 0.107880 0.221405 0.962036 0.109497 0.220642 0.046478 0.091705 0.240112 0.068665 0.092712 0.239685 0.091888 0.093842 0.239166 0.116211 0.094940 0.238647 0.141724 0.096130 0.238068 0.168640 0.097321 0.237488 0.197113 0.098480 0.236908 0.227264 0.099792 0.236359 0.259338 0.101044 0.235718 0.293457 0.102356 0.235107 0.329773 0.103699 0.234467 0.368134 0.105072 0.233795 0.408142 0.106415 0.233154 0.449860 0.107849 0.232483 0.492798 0.109253 0.231781 0.536652 0.110718 0.231110 0.580261 0.112213 0.230316 0.622253 0.113739 0.229706 0.662323 0.115265 0.228912 0.700012 0.116821 0.228180 0.734924 0.118378 0.227448 0.767090 0.119965 0.226746 0.796265 0.121643 0.225983 0.822693 0.123260 0.225220 0.846710 0.124939 0.224487 0.868439 0.126617 0.223724 0.888306 0.128296 0.222931 0.906342 0.130066 0.222168 0.922760 0.131744 0.221436 0.937714 0.133545 0.220673 0.951233 0.135284 0.219879 0.963470 0.137085 0.219116 0.048279 0.117126 0.239166 0.070557 0.118286 0.238647 0.093964 0.119507 0.238068 0.118408 0.120728 0.237518 0.144135 0.122040 0.236938 0.171234 0.123352 0.236359 0.199829 0.124664 0.235748 0.230225 0.126007 0.235107 0.262604 0.127441 0.234467 0.296997 0.128815 0.233826 0.333557 0.130280 0.233185 0.372162 0.131775 0.232513 0.412476 0.133270 0.231812 0.454346 0.134796 0.231110 0.497406 0.136353 0.230347 0.541443 0.137909 0.229706 0.584991 0.139557 0.228943 0.626801 0.141144 0.228210 0.666687 0.142822 0.227478 0.704132 0.144501 0.226746 0.738800 0.146149 0.226013 0.770660 0.147949 0.225220 0.799530 0.149658 0.224487 0.825653 0.151398 0.223724 0.849396 0.153229 0.222931 0.870972 0.154999 0.222229 0.890564 0.156830 0.221436 0.908417 0.158722 0.220673 0.924652 0.160522 0.219910 0.939423 0.162415 0.219147 0.952789 0.164368 0.218384 0.964874 0.166199 0.217651 0.050110 0.144012 0.238129 0.072632 0.145294 0.237518 0.096130 0.146667 0.236938 0.120728 0.148010 0.236389 0.146637 0.149384 0.235748 0.173950 0.150879 0.235107 0.202759 0.152283 0.234497 0.233398 0.153748 0.233887 0.265991 0.155304 0.233185 0.300690 0.156860 0.232544 0.337555 0.158447 0.231812 0.376343 0.160034 0.231140 0.416931 0.161682 0.230438 0.459015 0.163330 0.229736 0.502289 0.165009 0.229004 0.546387 0.166718 0.228241 0.589783 0.168488 0.227478 0.631500 0.170227 0.226776 0.671082 0.172028 0.226013 0.708313 0.173859 0.225250 0.742676 0.175659 0.224518 0.774200 0.177521 0.223755 0.802734 0.179382 0.222992 0.828613 0.181274 0.222260 0.852112 0.183228 0.221466 0.873444 0.185150 0.220703 0.892853 0.187103 0.219910 0.910522 0.189148 0.219177 0.926544 0.191101 0.218414 0.941162 0.193115 0.217651 0.954407 0.195190 0.216949 0.966309 0.197205 0.216187 0.052124 0.172485 0.236969 0.074768 0.173950 0.236389 0.098419 0.175415 0.235748 0.123169 0.176880 0.235138 0.149231 0.178436 0.234497 0.176727 0.180023 0.233887 0.205780 0.181610 0.233215 0.236633 0.183228 0.232544 0.269501 0.184937 0.231873 0.304474 0.186584 0.231140 0.341614 0.188324 0.230469 0.380676 0.190063 0.229767 0.421448 0.191833 0.229004 0.463745 0.193665 0.228271 0.507172 0.195465 0.227509 0.551392 0.197357 0.226807 0.594696 0.199249 0.226044 0.636169 0.201141 0.225311 0.675598 0.203064 0.224548 0.712524 0.205048 0.223755 0.746613 0.207001 0.222992 0.777802 0.209015 0.222260 0.806000 0.210999 0.221497 0.831604 0.213135 0.220734 0.854828 0.215179 0.219971 0.875885 0.217255 0.219208 0.895111 0.219330 0.218445 0.912567 0.221527 0.217682 0.928436 0.223663 0.216980 0.942902 0.225830 0.216217 0.955963 0.228027 0.215424 0.967712 0.230194 0.214752 0.054230 0.202789 0.235809 0.076996 0.204376 0.235168 0.100769 0.205994 0.234528 0.125732 0.207672 0.233917 0.151978 0.209351 0.233215 0.179657 0.211060 0.232574 0.208923 0.212799 0.231903 0.240051 0.214600 0.231171 0.273163 0.216400 0.230469 0.308441 0.218231 0.229767 0.345917 0.220154 0.229034 0.385101 0.222046 0.228302 0.426178 0.223999 0.227570 0.468719 0.225983 0.226807 0.512268 0.227936 0.226074 0.556488 0.229980 0.225311 0.599670 0.232025 0.224579 0.640930 0.234100 0.223785 0.680115 0.236206 0.223053 0.716766 0.238342 0.222290 0.750519 0.240448 0.221497 0.781372 0.242645 0.220764 0.809235 0.244781 0.220001 0.834595 0.247040 0.219208 0.857574 0.249298 0.218445 0.878387 0.251526 0.217712 0.897369 0.253845 0.216980 0.914642 0.256165 0.216248 0.930298 0.258423 0.215515 0.944580 0.260803 0.214752 0.957489 0.263092 0.213989 0.969116 0.265533 0.213318 0.056427 0.235107 0.234558 0.079285 0.236877 0.233948 0.103241 0.238708 0.233246 0.128357 0.240479 0.232574 0.154816 0.242371 0.231903 0.182678 0.244232 0.231201 0.212189 0.246155 0.230499 0.243561 0.248108 0.229797 0.276917 0.250092 0.229065 0.312500 0.252136 0.228302 0.350189 0.254181 0.227570 0.389709 0.256256 0.226868 0.430969 0.258392 0.226074 0.473694 0.260529 0.225342 0.517456 0.262665 0.224609 0.561676 0.264893 0.223816 0.604645 0.267120 0.223053 0.645813 0.269348 0.222321 0.684692 0.271667 0.221527 0.720947 0.273895 0.220795 0.754456 0.276276 0.220032 0.784943 0.278625 0.219238 0.812531 0.281006 0.218475 0.837524 0.283417 0.217743 0.860229 0.285858 0.217010 0.880859 0.288269 0.216278 0.899628 0.290771 0.215515 0.916718 0.293274 0.214783 0.932220 0.295715 0.214020 0.946289 0.298248 0.213348 0.959015 0.300720 0.212616 0.970520 0.303314 0.211914 0.058685 0.269745 0.233307 0.081726 0.271698 0.232605 0.105804 0.273682 0.231934 0.131073 0.275665 0.231201 0.157715 0.277771 0.230499 0.185760 0.279785 0.229828 0.215546 0.281891 0.229065 0.247131 0.284088 0.228363 0.280792 0.286224 0.227600 0.316650 0.288452 0.226868 0.354645 0.290680 0.226105 0.394440 0.292908 0.225372 0.435944 0.295258 0.224609 0.478760 0.297577 0.223846 0.522705 0.299927 0.223083 0.566864 0.302399 0.222321 0.609741 0.304749 0.221558 0.650635 0.307190 0.220795 0.689240 0.309662 0.220032 0.725220 0.312164 0.219269 0.758392 0.314667 0.218506 0.788544 0.317230 0.217743 0.815765 0.319733 0.217041 0.840485 0.322327 0.216278 0.862946 0.325012 0.215546 0.883301 0.327515 0.214813 0.901855 0.330231 0.214020 0.918732 0.332886 0.213348 0.934082 0.335510 0.212616 0.947998 0.338226 0.211945 0.960541 0.340851 0.211243 0.971863 0.343628 0.210571 0.061005 0.306915 0.231964 0.084229 0.309052 0.231232 0.108490 0.311218 0.230530 0.133911 0.313385 0.229828 0.160736 0.315674 0.229126 0.189026 0.317841 0.228394 0.219025 0.320221 0.227631 0.250916 0.322540 0.226898 0.284851 0.324860 0.226166 0.320984 0.327271 0.225372 0.359253 0.329742 0.224640 0.399261 0.332153 0.223907 0.440979 0.334656 0.223114 0.484039 0.337189 0.222351 0.528046 0.339752 0.221588 0.572174 0.342316 0.220825 0.614777 0.344849 0.220062 0.655457 0.347473 0.219269 0.693878 0.350128 0.218506 0.729492 0.352783 0.217773 0.762299 0.355499 0.217041 0.792084 0.358215 0.216309 0.819031 0.360931 0.215576 0.843445 0.363647 0.214813 0.865631 0.366425 0.214050 0.885773 0.369202 0.213409 0.904053 0.372040 0.212646 0.920746 0.374756 0.211975 0.935913 0.377625 0.211243 0.949646 0.380432 0.210571 0.962067 0.383240 0.209930 0.973206 0.386139 0.209229 0.063477 0.346466 0.230560 0.086823 0.348785 0.229889 0.111176 0.351135 0.229156 0.136810 0.353516 0.228394 0.163849 0.355927 0.227631 0.192352 0.358368 0.226929 0.222565 0.360901 0.226166 0.254700 0.363403 0.225403 0.288940 0.365875 0.224670 0.325409 0.368500 0.223907 0.363861 0.371124 0.223114 0.404205 0.373749 0.222382 0.446106 0.376373 0.221588 0.489258 0.379059 0.220856 0.533508 0.381775 0.220093 0.577515 0.384521 0.219299 0.619904 0.387238 0.218567 0.660400 0.390045 0.217804 0.698425 0.392883 0.217072 0.733795 0.395660 0.216339 0.766174 0.398468 0.215576 0.795593 0.401398 0.214844 0.822235 0.404205 0.214142 0.846375 0.407135 0.213409 0.868317 0.410034 0.212646 0.888184 0.412933 0.211975 0.906281 0.415894 0.211273 0.922760 0.418762 0.210602 0.937744 0.421753 0.209930 0.951294 0.424744 0.209259 0.963531 0.427612 0.208618 0.974548 0.430634 0.207947 0.066010 0.388306 0.229156 0.089478 0.390808 0.228455 0.114014 0.393280 0.227661 0.139832 0.395874 0.226929 0.166992 0.398438 0.226196 0.195740 0.401062 0.225433 0.226227 0.403717 0.224670 0.258667 0.406403 0.223938 0.293152 0.409027 0.223175 0.329926 0.411804 0.222412 0.368683 0.414612 0.221649 0.409149 0.417328 0.220856 0.451294 0.420197 0.220093 0.494629 0.422943 0.219330 0.538971 0.425873 0.218597 0.582855 0.428741 0.217804 0.625092 0.431641 0.217102 0.665283 0.434509 0.216339 0.703003 0.437561 0.215607 0.737976 0.440430 0.214874 0.770050 0.443390 0.214172 0.799103 0.446442 0.213440 0.825378 0.449371 0.212677 0.849243 0.452423 0.212006 0.870911 0.455383 0.211304 0.890564 0.458466 0.210632 0.908447 0.461487 0.209961 0.924744 0.464508 0.209290 0.939514 0.467560 0.208618 0.952942 0.470642 0.207977 0.964966 0.473633 0.207367 0.975800 0.476776 0.206757 0.068573 0.432159 0.227692 0.092194 0.434814 0.226959 0.116913 0.437439 0.226227 0.142914 0.440155 0.225464 0.170319 0.442902 0.224701 0.199249 0.445618 0.223969 0.229980 0.448456 0.223175 0.262665 0.451294 0.222412 0.297485 0.454071 0.221680 0.334534 0.456970 0.220886 0.373474 0.459839 0.220154 0.414276 0.462799 0.219391 0.456604 0.465759 0.218628 0.500061 0.468719 0.217834 0.544495 0.471680 0.217133 0.588226 0.474701 0.216370 0.630249 0.477692 0.215637 0.670197 0.480682 0.214874 0.707581 0.483826 0.214172 0.742218 0.486786 0.213470 0.773926 0.489899 0.212738 0.802612 0.493042 0.212006 0.828522 0.496063 0.211304 0.852112 0.499115 0.210632 0.873474 0.502228 0.209991 0.892914 0.505310 0.209290 0.910614 0.508484 0.208649 0.926666 0.511566 0.207977 0.941284 0.514709 0.207367 0.954498 0.517822 0.206787 0.966431 0.520935 0.206177 0.977081 0.524048 0.205566 0.071259 0.477631 0.226227 0.095001 0.480469 0.225464 0.119843 0.483215 0.224731 0.146057 0.486053 0.223969 0.173645 0.488953 0.223206 0.202820 0.491760 0.222443 0.233795 0.494751 0.221680 0.266754 0.497681 0.220886 0.301880 0.500641 0.220154 0.339172 0.503632 0.219391 0.378418 0.506592 0.218689 0.419403 0.509583 0.217865 0.461945 0.512726 0.217133 0.505585 0.515686 0.216400 0.550018 0.518799 0.215637 0.593597 0.521942 0.214905 0.635376 0.524963 0.214203 0.675049 0.528137 0.213470 0.712128 0.531250 0.212738 0.746368 0.534363 0.212036 0.777649 0.537537 0.211365 0.806000 0.540588 0.210663 0.831635 0.543762 0.209991 0.854950 0.546906 0.209320 0.876038 0.549957 0.208679 0.895233 0.553101 0.208008 0.912720 0.556244 0.207367 0.928589 0.559265 0.206818 0.943024 0.562347 0.206177 0.956085 0.565491 0.205627 0.967804 0.568451 0.205017 0.978363 0.571472 0.204468 0.073975 0.524475 0.224731 0.097900 0.527374 0.223999 0.122894 0.530304 0.223236 0.149261 0.533264 0.222504 0.177094 0.536224 0.221710 0.206512 0.539154 0.220917 0.237701 0.542175 0.220184 0.270966 0.545227 0.219452 0.306366 0.548157 0.218689 0.343903 0.551239 0.217865 0.383392 0.554199 0.217194 0.424622 0.557281 0.216431 0.467377 0.560364 0.215668 0.511139 0.563354 0.214935 0.555573 0.566406 0.214233 0.598969 0.569519 0.213501 0.640503 0.572449 0.212769 0.679871 0.575531 0.212067 0.716644 0.578644 0.211365 0.750488 0.581604 0.210693 0.781433 0.584686 0.210022 0.809418 0.587708 0.209320 0.834747 0.590698 0.208679 0.857697 0.593750 0.208069 0.878571 0.596710 0.207397 0.897522 0.599731 0.206818 0.914825 0.602753 0.206207 0.930481 0.605621 0.205658 0.944733 0.608582 0.205048 0.957611 0.611542 0.204468 0.969208 0.614410 0.203979 0.979553 0.617310 0.203857 0.076752 0.571564 0.223236 0.100800 0.574402 0.222504 0.126007 0.577240 0.221741 0.152557 0.580200 0.220947 0.180603 0.583130 0.220184 0.210205 0.585999 0.219482 0.241699 0.588959 0.218719 0.275269 0.591858 0.217926 0.310913 0.594727 0.217224 0.348785 0.597717 0.216431 0.388489 0.600616 0.215698 0.429932 0.603577 0.214966 0.472809 0.606567 0.214233 0.516754 0.609467 0.213531 0.561157 0.612396 0.212799 0.604340 0.615387 0.212067 0.645599 0.618225 0.211395 0.684662 0.621246 0.210693 0.721069 0.624176 0.210022 0.754578 0.626984 0.209351 0.785126 0.629913 0.208710 0.812714 0.632751 0.208069 0.837738 0.635651 0.207428 0.860474 0.638550 0.206848 0.881042 0.641357 0.206207 0.899780 0.644165 0.205658 0.916870 0.647034 0.205048 0.932312 0.649750 0.204529 0.946411 0.652557 0.203979 0.959106 0.655304 0.203857 0.970520 0.657959 0.203857 0.980743 0.660736 0.203857 0.079590 0.617035 0.221771 0.103790 0.619843 0.220978 0.129211 0.622620 0.220245 0.155945 0.625427 0.219482 0.184143 0.628265 0.218719 0.213989 0.630981 0.217957 0.245728 0.633820 0.217224 0.279480 0.636566 0.216461 0.315582 0.639465 0.215729 0.353668 0.642273 0.214966 0.393646 0.645050 0.214264 0.435242 0.647797 0.213531 0.478302 0.650665 0.212799 0.522369 0.653442 0.212128 0.566711 0.656219 0.211426 0.609711 0.659027 0.210724 0.650696 0.661774 0.210052 0.689392 0.664520 0.209381 0.725494 0.667297 0.208710 0.758606 0.670013 0.208099 0.788757 0.672729 0.207428 0.815979 0.675415 0.206879 0.840698 0.678070 0.206238 0.863159 0.680756 0.205658 0.883514 0.683380 0.205109 0.902008 0.686035 0.204559 0.918823 0.688690 0.204010 0.934143 0.691193 0.203857 0.948029 0.693787 0.203857 0.960571 0.696289 0.203857 0.971802 0.698761 0.203857 0.981903 0.701324 0.203857 0.082458 0.660309 0.220276 0.106873 0.662994 0.219513 0.132385 0.665649 0.218781 0.159332 0.668304 0.218018 0.187805 0.670959 0.217255 0.217834 0.673584 0.216492 0.249847 0.676270 0.215729 0.283905 0.678894 0.214996 0.320251 0.681549 0.214294 0.358582 0.684204 0.213562 0.398773 0.686829 0.212860 0.440613 0.689423 0.212158 0.483856 0.692108 0.211426 0.528046 0.694702 0.210754 0.572266 0.697296 0.210083 0.615021 0.699921 0.209381 0.655731 0.702454 0.208740 0.694122 0.705017 0.208099 0.729797 0.707520 0.207458 0.762604 0.710083 0.206879 0.792328 0.712616 0.206238 0.819244 0.715057 0.205688 0.843628 0.717560 0.205139 0.865784 0.720001 0.204559 0.885864 0.722382 0.204010 0.904144 0.724854 0.203857 0.920807 0.727264 0.203857 0.935913 0.729553 0.203857 0.949615 0.731873 0.203857 0.961975 0.734131 0.203857 0.973114 0.736450 0.203857 0.983032 0.738708 0.203857 0.085419 0.700928 0.218781 0.109955 0.703430 0.218018 0.135681 0.705902 0.217285 0.162811 0.708435 0.216492 0.191406 0.710846 0.215790 0.221741 0.713348 0.215027 0.254028 0.715851 0.214294 0.288361 0.718292 0.213593 0.324982 0.720764 0.212860 0.363586 0.723236 0.212158 0.404022 0.725647 0.211456 0.446075 0.728088 0.210754 0.489380 0.730530 0.210083 0.533661 0.732910 0.209442 0.577759 0.735321 0.208771 0.620239 0.737579 0.208130 0.660736 0.739990 0.207520 0.698761 0.742371 0.206879 0.734070 0.744629 0.206268 0.766449 0.746948 0.205719 0.795837 0.749237 0.205139 0.822418 0.751434 0.204590 0.846497 0.753723 0.204041 0.868378 0.755981 0.203857 0.888184 0.758118 0.203857 0.906281 0.760254 0.203857 0.922729 0.762451 0.203857 0.937653 0.764526 0.203857 0.951172 0.766602 0.203857 0.963379 0.768646 0.203857 0.974335 0.770691 0.203857 0.984100 0.772736 0.203857 0.088379 0.738464 0.217285 0.113098 0.740814 0.216522 0.139008 0.743073 0.215820 0.166321 0.745361 0.215027 0.195129 0.747620 0.214355 0.225739 0.749939 0.213593 0.258270 0.752228 0.212891 0.292877 0.754395 0.212189 0.329742 0.756683 0.211487 0.368652 0.758942 0.210815 0.409271 0.761108 0.210114 0.451477 0.763336 0.209442 0.494934 0.765533 0.208771 0.539307 0.767670 0.208160 0.583221 0.769836 0.207520 0.625427 0.771973 0.206940 0.665649 0.774078 0.206299 0.703339 0.776215 0.205719 0.738281 0.778229 0.205170 0.770294 0.780334 0.204590 0.799316 0.782379 0.204041 0.825470 0.784393 0.203857 0.849304 0.786377 0.203857 0.870911 0.788391 0.203857 0.890503 0.790283 0.203857 0.908325 0.792236 0.203857 0.924530 0.794098 0.203857 0.939301 0.795990 0.203857 0.952667 0.797821 0.203857 0.964691 0.799652 0.203857 0.975525 0.801453 0.203857 0.985138 0.803284 0.203857 0.091400 0.772675 0.215820 0.116241 0.774719 0.215057 0.142365 0.776825 0.214355 0.169861 0.778931 0.213623 0.198883 0.780975 0.212891 0.229736 0.783020 0.212219 0.262512 0.785095 0.211487 0.297455 0.787079 0.210846 0.334564 0.789124 0.210144 0.373657 0.791168 0.209473 0.414490 0.793091 0.208801 0.456909 0.795074 0.208160 0.500427 0.797058 0.207550 0.544922 0.798981 0.206940 0.588654 0.800964 0.206299 0.630554 0.802795 0.205750 0.670471 0.804749 0.205170 0.707855 0.806610 0.204620 0.742401 0.808441 0.204071 0.774048 0.810272 0.203857 0.802673 0.812134 0.203857 0.828522 0.813934 0.203857 0.852020 0.815704 0.203857 0.873352 0.817474 0.203857 0.892761 0.819183 0.203857 0.910370 0.820892 0.203857 0.926361 0.822571 0.203857 0.940948 0.824249 0.203857 0.954132 0.825897 0.203857 0.966034 0.827515 0.203857 0.976654 0.829102 0.203857 0.986145 0.830688 0.203857 0.094482 0.803406 0.214417 0.119446 0.805298 0.213654 0.145721 0.807190 0.212921 0.173431 0.809082 0.212219 0.202698 0.810944 0.211517 0.233765 0.812805 0.210846 0.266815 0.814667 0.210144 0.302063 0.816437 0.209503 0.339417 0.818268 0.208862 0.378754 0.820099 0.208191 0.419769 0.821869 0.207611 0.462311 0.823669 0.206940 0.506012 0.825378 0.206360 0.550476 0.827148 0.205750 0.593994 0.828888 0.205200 0.635651 0.830566 0.204620 0.675293 0.832275 0.204071 0.712311 0.833954 0.203857 0.746460 0.835602 0.203857 0.777649 0.837250 0.203857 0.805969 0.838898 0.203857 0.831482 0.840454 0.203857 0.854706 0.842072 0.203857 0.875763 0.843597 0.203857 0.894897 0.845154 0.203857 0.912292 0.846710 0.203857 0.928131 0.848175 0.203857 0.942535 0.849670 0.203857 0.955566 0.851135 0.203857 0.967285 0.852570 0.203857 0.977783 0.853973 0.203857 0.987122 0.855377 0.203857 0.097565 0.831146 0.212921 0.122711 0.832794 0.212250 0.149170 0.834534 0.211548 0.177063 0.836243 0.210876 0.206543 0.837891 0.210175 0.237823 0.839569 0.209534 0.271179 0.841248 0.208862 0.306641 0.842834 0.208221 0.344269 0.844513 0.207611 0.383789 0.846130 0.206970 0.425018 0.847717 0.206360 0.467773 0.849304 0.205780 0.511566 0.850861 0.205200 0.555969 0.852448 0.204651 0.599243 0.854004 0.204102 0.640686 0.855530 0.203857 0.679932 0.857056 0.203857 0.716644 0.858582 0.203857 0.750427 0.860016 0.203857 0.781281 0.861481 0.203857 0.809143 0.862946 0.203857 0.834381 0.864380 0.203857 0.857300 0.865784 0.203857 0.878082 0.867157 0.203857 0.897003 0.868561 0.203857 0.914246 0.869904 0.203857 0.929840 0.871216 0.203857 0.944061 0.872528 0.203857 0.956909 0.873840 0.203857 0.968506 0.875092 0.203857 0.978882 0.876373 0.203857 0.988037 0.877594 0.203857 0.100708 0.856079 0.211548 0.125977 0.857574 0.210907 0.152588 0.859161 0.210205 0.180695 0.860687 0.209534 0.210358 0.862152 0.208893 0.241913 0.863678 0.208221 0.275513 0.865173 0.207611 0.311279 0.866638 0.207001 0.349121 0.868134 0.206390 0.388885 0.869568 0.205811 0.430298 0.871002 0.205231 0.473175 0.872467 0.204651 0.517059 0.873840 0.204132 0.561401 0.875244 0.203857 0.604431 0.876648 0.203857 0.645599 0.878021 0.203857 0.684540 0.879395 0.203857 0.720886 0.880737 0.203857 0.754272 0.882019 0.203857 0.784729 0.883362 0.203857 0.812256 0.884583 0.203857 0.837158 0.885925 0.203857 0.859833 0.887177 0.203857 0.880371 0.888397 0.203857 0.899048 0.889618 0.203857 0.916077 0.890839 0.203857 0.931488 0.891968 0.203857 0.945557 0.893188 0.203857 0.958252 0.894348 0.203857 0.969666 0.895447 0.203857 0.979919 0.896545 0.203857 0.988922 0.897614 0.203857 0.103821 0.878571 0.210205 0.129303 0.879974 0.209564 0.156097 0.881317 0.208923 0.184387 0.882721 0.208221 0.214264 0.884094 0.207642 0.246033 0.885468 0.207001 0.279907 0.886810 0.206390 0.315887 0.888092 0.205811 0.354004 0.889435 0.205231 0.393951 0.890747 0.204681 0.435547 0.892029 0.204132 0.478546 0.893341 0.203857 0.522491 0.894592 0.203857 0.566711 0.895844 0.203857 0.609589 0.897064 0.203857 0.650421 0.898285 0.203857 0.689026 0.899506 0.203857 0.725037 0.900726 0.203857 0.758026 0.901886 0.203857 0.788086 0.903076 0.203857 0.815277 0.904205 0.203857 0.839905 0.905334 0.203857 0.862274 0.906464 0.203857 0.882568 0.907532 0.203857 0.901031 0.908630 0.203857 0.917847 0.909729 0.203857 0.933075 0.910736 0.203857 0.946991 0.911774 0.203857 0.959534 0.912811 0.203857 0.970795 0.913757 0.203857 0.980896 0.914795 0.203857 0.989807 0.915741 0.203857 0.106964 0.898895 0.208923 0.132568 0.900116 0.208282 0.159546 0.901398 0.207672 0.188049 0.902649 0.207031 0.218140 0.903839 0.206451 0.250153 0.905090 0.205841 0.284241 0.906250 0.205261 0.320526 0.907471 0.204681 0.358917 0.908691 0.204132 0.398956 0.909821 0.203857 0.440735 0.911011 0.203857 0.483856 0.912170 0.203857 0.527893 0.913239 0.203857 0.571991 0.914429 0.203857 0.614594 0.915527 0.203857 0.655151 0.916626 0.203857 0.693420 0.917725 0.203857 0.728973 0.918732 0.203857 0.761688 0.919800 0.203857 0.791351 0.920868 0.203857 0.818176 0.921875 0.203857 0.842529 0.922882 0.203857 0.864624 0.923889 0.203857 0.884674 0.924835 0.203857 0.902985 0.925812 0.203857 0.919556 0.926758 0.203857 0.934662 0.927673 0.203857 0.948334 0.928589 0.203857 0.960724 0.929504 0.203857 0.971863 0.930328 0.203857 0.981842 0.931213 0.203857 0.990601 0.932037 0.203857 0.110138 0.917267 0.207672 0.135925 0.918335 0.207062 0.163055 0.919464 0.206482 0.191711 0.920593 0.205841 0.222046 0.921722 0.205261 0.254303 0.922821 0.204712 0.288605 0.923889 0.204163 0.325165 0.924988 0.203857 0.363739 0.926025 0.203857 0.404022 0.927063 0.203857 0.445953 0.928101 0.203857 0.489166 0.929138 0.203857 0.533264 0.930145 0.203857 0.577118 0.931152 0.203857 0.619537 0.932159 0.203857 0.659760 0.933075 0.203857 0.697723 0.934082 0.203857 0.732910 0.934998 0.203857 0.765228 0.935944 0.203857 0.794525 0.936859 0.203857 0.821014 0.937805 0.203857 0.845093 0.938690 0.203857 0.866913 0.939575 0.203857 0.886749 0.940399 0.203857 0.904816 0.941254 0.203857 0.921234 0.942108 0.203857 0.936127 0.942902 0.203857 0.949677 0.943726 0.203857 0.961884 0.944489 0.203857 0.972931 0.945251 0.203857 0.982727 0.946014 0.203857 0.991394 0.946747 0.203857 0.113312 0.933807 0.206482 0.139221 0.934784 0.205872 0.166534 0.935791 0.205292 0.195374 0.936798 0.204742 0.225952 0.937805 0.204193 0.258423 0.938782 0.203857 0.293030 0.939758 0.203857 0.329742 0.940704 0.203857 0.368530 0.941681 0.203857 0.408997 0.942596 0.203857 0.451050 0.943512 0.203857 0.494415 0.944458 0.203857 0.538483 0.945343 0.203857 0.582184 0.946228 0.203857 0.624237 0.947083 0.203857 0.664276 0.947968 0.203857 0.701904 0.948822 0.203857 0.736755 0.949646 0.203857 0.768646 0.950500 0.203857 0.797577 0.951294 0.203857 0.823761 0.952087 0.203857 0.847565 0.952881 0.203857 0.869110 0.953674 0.203857 0.888702 0.954407 0.203857 0.906586 0.955170 0.203857 0.922821 0.955872 0.203857 0.937561 0.956604 0.203857 0.950928 0.957306 0.203857 0.963013 0.957977 0.203857 0.973907 0.958649 0.203857 0.983582 0.959290 0.203857 0.992126 0.959930 0.203857 0.116516 0.948700 0.205292 0.142548 0.949615 0.204742 0.170044 0.950500 0.204193 0.199036 0.951385 0.203857 0.229828 0.952240 0.203857 0.262573 0.953125 0.203857 0.297363 0.954010 0.203857 0.334351 0.954865 0.203857 0.373352 0.955719 0.203857 0.413879 0.956543 0.203857 0.456116 0.957336 0.203857 0.499512 0.958160 0.203857 0.543671 0.958954 0.203857 0.587158 0.959778 0.203857 0.628937 0.960510 0.203857 0.668640 0.961273 0.203857 0.705902 0.962067 0.203857 0.740387 0.962769 0.203857 0.771973 0.963501 0.203857 0.800537 0.964233 0.203857 0.826416 0.964905 0.203857 0.849915 0.965576 0.203857 0.871246 0.966278 0.203857 0.890594 0.966949 0.203857 0.908234 0.967590 0.203857 0.924286 0.968201 0.203857 0.938904 0.968842 0.203857 0.952148 0.969452 0.203857 0.964081 0.970032 0.203857 0.974854 0.970612 0.203857 0.984406 0.971191 0.203857 0.992798 0.971710 0.203857 0.119629 0.962036 0.204254 0.145874 0.962860 0.203857 0.173523 0.963654 0.203857 0.202728 0.964417 0.203857 0.233704 0.965210 0.203857 0.266632 0.966034 0.203857 0.301666 0.966766 0.203857 0.338928 0.967529 0.203857 0.378052 0.968292 0.203857 0.418823 0.968994 0.203857 0.461090 0.969727 0.203857 0.504517 0.970428 0.203857 0.548706 0.971130 0.203857 0.592041 0.971802 0.203857 0.633514 0.972473 0.203857 0.672882 0.973175 0.203857 0.709839 0.973816 0.203857 0.743958 0.974457 0.203857 0.775116 0.975067 0.203857 0.803406 0.975708 0.203857 0.828949 0.976318 0.203857 0.852173 0.976898 0.203857 0.873260 0.977448 0.203857 0.892426 0.978058 0.203857 0.909912 0.978607 0.203857 0.925781 0.979126 0.203857 0.940186 0.979675 0.203857 0.953278 0.980194 0.203857 0.965088 0.980682 0.203857 0.975708 0.981171 0.203857 0.985138 0.981689 0.203857 0.993408 0.982117 0.203857 0.040619 0.001862 0.274414 0.062347 0.002563 0.274078 0.085083 0.003265 0.273712 0.108856 0.004059 0.273376 0.133789 0.004852 0.272949 0.160034 0.005646 0.272522 0.187775 0.006500 0.272125 0.217102 0.007355 0.271606 0.248260 0.008240 0.271149 0.281433 0.009155 0.270599 0.316742 0.010132 0.270050 0.354095 0.011078 0.269470 0.393250 0.012115 0.268890 0.434113 0.013153 0.268250 0.476318 0.014160 0.267670 0.519562 0.015228 0.266998 0.563293 0.016357 0.266357 0.605743 0.017456 0.265717 0.646362 0.018616 0.265015 0.684814 0.019775 0.264343 0.720764 0.020996 0.263611 0.753967 0.022186 0.262909 0.784210 0.023376 0.262146 0.811646 0.024689 0.261414 0.836578 0.025909 0.260651 0.859192 0.027252 0.259888 0.879761 0.028534 0.259094 0.898499 0.029816 0.258362 0.915588 0.031189 0.257538 0.931122 0.032593 0.256714 0.945190 0.033936 0.255951 0.958008 0.035339 0.255127 0.041992 0.022858 0.273743 0.063873 0.023651 0.273376 0.086670 0.024445 0.273010 0.110596 0.025269 0.272522 0.135712 0.026184 0.272125 0.162140 0.027069 0.271637 0.189972 0.028015 0.271149 0.219543 0.028961 0.270599 0.250916 0.029938 0.270050 0.284363 0.030945 0.269501 0.319977 0.032013 0.268890 0.357513 0.033051 0.268280 0.396942 0.034149 0.267700 0.437958 0.035248 0.267059 0.480377 0.036377 0.266388 0.523895 0.037567 0.265717 0.567535 0.038757 0.265045 0.609894 0.039978 0.264343 0.650421 0.041199 0.263611 0.688690 0.042419 0.262939 0.724396 0.043732 0.262177 0.757355 0.045074 0.261414 0.787292 0.046356 0.260651 0.814484 0.047729 0.259888 0.839203 0.049072 0.259094 0.861572 0.050415 0.258362 0.881958 0.051819 0.257538 0.900513 0.053192 0.256744 0.917450 0.054657 0.255981 0.932831 0.056152 0.255157 0.946777 0.057587 0.254364 0.959412 0.059052 0.253601 0.043457 0.044800 0.273010 0.065491 0.045715 0.272522 0.088409 0.046631 0.272156 0.112488 0.047546 0.271637 0.137726 0.048523 0.271149 0.164307 0.049500 0.270630 0.192413 0.050537 0.270081 0.222168 0.051605 0.269501 0.253754 0.052673 0.268921 0.287445 0.053772 0.268280 0.323334 0.054871 0.267700 0.361176 0.056030 0.267090 0.400818 0.057220 0.266388 0.442047 0.058441 0.265747 0.484650 0.059662 0.265045 0.528290 0.060944 0.264404 0.571930 0.062164 0.263641 0.614227 0.063507 0.262939 0.654602 0.064850 0.262207 0.692596 0.066193 0.261444 0.728119 0.067566 0.260681 0.760803 0.069000 0.259918 0.790466 0.070374 0.259125 0.817413 0.071808 0.258392 0.841797 0.073212 0.257568 0.863983 0.074768 0.256805 0.884216 0.076263 0.255981 0.902557 0.077698 0.255219 0.919312 0.079285 0.254425 0.934540 0.080841 0.253601 0.948334 0.082367 0.252808 0.960846 0.083984 0.251984 0.045105 0.067871 0.272156 0.067200 0.068817 0.271667 0.090302 0.069824 0.271179 0.114471 0.070892 0.270630 0.139923 0.071960 0.270081 0.166656 0.073029 0.269531 0.194946 0.074158 0.268982 0.224884 0.075317 0.268372 0.256744 0.076477 0.267761 0.290710 0.077667 0.267090 0.326782 0.078918 0.266418 0.364929 0.080170 0.265778 0.404816 0.081451 0.265076 0.446259 0.082764 0.264435 0.489075 0.084076 0.263702 0.532837 0.085449 0.262970 0.576477 0.086853 0.262268 0.618622 0.088257 0.261475 0.658813 0.089661 0.260742 0.696625 0.091125 0.259949 0.731873 0.092621 0.259155 0.764252 0.094116 0.258392 0.793640 0.095612 0.257629 0.820312 0.097168 0.256805 0.844482 0.098694 0.256012 0.866455 0.100281 0.255219 0.886444 0.101898 0.254425 0.904663 0.103485 0.253632 0.921204 0.105133 0.252808 0.936279 0.106812 0.251984 0.949921 0.108459 0.251190 0.962311 0.110138 0.250366 0.046783 0.092072 0.271179 0.069061 0.093140 0.270660 0.092255 0.094238 0.270111 0.116608 0.095367 0.269531 0.142212 0.096588 0.268982 0.169128 0.097748 0.268402 0.197601 0.098969 0.267761 0.227783 0.100250 0.267090 0.259888 0.101532 0.266479 0.294128 0.102875 0.265778 0.330475 0.104156 0.265076 0.368835 0.105530 0.264435 0.408966 0.106903 0.263702 0.450653 0.108337 0.262970 0.493683 0.109802 0.262268 0.537567 0.111267 0.261475 0.581116 0.112732 0.260773 0.623077 0.114288 0.259949 0.663116 0.115845 0.259216 0.700745 0.117371 0.258423 0.735687 0.118988 0.257629 0.767761 0.120544 0.256836 0.796875 0.122223 0.256042 0.823273 0.123871 0.255249 0.847198 0.125519 0.254486 0.868927 0.127228 0.253662 0.888733 0.128937 0.252838 0.906738 0.130676 0.252045 0.923126 0.132385 0.251221 0.938049 0.134216 0.250397 0.951508 0.135956 0.249603 0.963715 0.137756 0.248810 0.048615 0.117523 0.270111 0.070953 0.118744 0.269592 0.094330 0.119934 0.269012 0.118835 0.121216 0.268402 0.144592 0.122528 0.267792 0.171692 0.123810 0.267120 0.200409 0.125183 0.266479 0.230804 0.126495 0.265808 0.263184 0.127960 0.265137 0.297699 0.129395 0.264465 0.334320 0.130798 0.263733 0.372955 0.132294 0.263000 0.413300 0.133820 0.262299 0.455200 0.135345 0.261505 0.498352 0.136932 0.260773 0.542419 0.138550 0.259979 0.585876 0.140106 0.259247 0.627686 0.141754 0.258453 0.667511 0.143463 0.257660 0.704865 0.145142 0.256866 0.739563 0.146851 0.256073 0.771301 0.148560 0.255280 0.800110 0.150330 0.254486 0.826202 0.152100 0.253662 0.849884 0.153870 0.252869 0.871429 0.155701 0.252045 0.890991 0.157562 0.251221 0.908783 0.159363 0.250427 0.925049 0.161224 0.249664 0.939758 0.163147 0.248840 0.953094 0.165039 0.248047 0.965149 0.166962 0.247223 0.050507 0.144470 0.269012 0.073029 0.145813 0.268402 0.096527 0.147095 0.267792 0.121185 0.148529 0.267151 0.147095 0.149963 0.266541 0.174408 0.151337 0.265808 0.203308 0.152832 0.265137 0.234009 0.154327 0.264465 0.266602 0.155884 0.263763 0.301422 0.157471 0.263031 0.338287 0.158997 0.262299 0.377136 0.160645 0.261536 0.417786 0.162292 0.260803 0.459839 0.163940 0.260040 0.503204 0.165680 0.259247 0.547333 0.167389 0.258453 0.590637 0.169098 0.257721 0.632324 0.170898 0.256927 0.671936 0.172668 0.256134 0.709045 0.174500 0.255280 0.743439 0.176331 0.254517 0.774872 0.178192 0.253693 0.803375 0.180084 0.252930 0.829193 0.182037 0.252106 0.852600 0.183929 0.251251 0.873901 0.185883 0.250427 0.893280 0.187897 0.249664 0.910889 0.189819 0.248871 0.926941 0.191864 0.248047 0.941467 0.193848 0.247284 0.954651 0.195923 0.246460 0.966614 0.197998 0.245667 0.052551 0.173004 0.267822 0.075134 0.174500 0.267151 0.098846 0.175934 0.266541 0.123657 0.177460 0.265839 0.149719 0.178986 0.265167 0.177246 0.180603 0.264496 0.206390 0.182220 0.263763 0.237244 0.183838 0.263031 0.270142 0.185516 0.262329 0.305237 0.187225 0.261536 0.342407 0.188934 0.260834 0.381500 0.190704 0.260040 0.422363 0.192505 0.259308 0.464661 0.194305 0.258514 0.508179 0.196167 0.257721 0.552307 0.197998 0.256958 0.595551 0.199921 0.256134 0.637115 0.201843 0.255341 0.676392 0.203796 0.254547 0.713226 0.205750 0.253723 0.747375 0.207764 0.252930 0.778442 0.209747 0.252136 0.806610 0.211792 0.251282 0.832184 0.213867 0.250458 0.855316 0.215942 0.249695 0.876373 0.218048 0.248901 0.895569 0.220154 0.248077 0.912933 0.222290 0.247284 0.928802 0.224487 0.246490 0.943176 0.226624 0.245697 0.956238 0.228821 0.244934 0.967987 0.231049 0.244141 0.054626 0.203369 0.266571 0.077423 0.204987 0.265839 0.101196 0.206604 0.265198 0.126190 0.208282 0.264496 0.152466 0.209961 0.263794 0.180176 0.211700 0.263062 0.209534 0.213501 0.262360 0.240662 0.215271 0.261566 0.273834 0.217102 0.260834 0.309204 0.218994 0.260101 0.346619 0.220825 0.259338 0.385986 0.222778 0.258545 0.427094 0.224731 0.257751 0.469543 0.226685 0.256958 0.513275 0.228729 0.256165 0.557434 0.230652 0.255402 0.600555 0.232758 0.254547 0.641907 0.234863 0.253723 0.680939 0.236908 0.252960 0.717529 0.239105 0.252136 0.751251 0.241272 0.251282 0.782043 0.243408 0.250519 0.809875 0.245636 0.249725 0.835144 0.247894 0.248901 0.858032 0.250092 0.248108 0.878906 0.252411 0.247314 0.897797 0.254608 0.246521 0.915070 0.256958 0.245697 0.930695 0.259338 0.244965 0.944916 0.261566 0.244171 0.957794 0.263977 0.243408 0.969391 0.266388 0.242645 0.056824 0.235748 0.265198 0.079742 0.237549 0.264526 0.103729 0.239319 0.263794 0.128876 0.241180 0.263062 0.155273 0.243011 0.262360 0.183228 0.244965 0.261627 0.212799 0.246887 0.260895 0.244171 0.248840 0.260132 0.277649 0.250885 0.259338 0.313324 0.252930 0.258545 0.350983 0.254913 0.257812 0.390564 0.257019 0.256989 0.431946 0.259155 0.256165 0.474579 0.261261 0.255402 0.518463 0.263489 0.254578 0.562592 0.265686 0.253815 0.605591 0.267914 0.252991 0.646698 0.270233 0.252197 0.685516 0.272461 0.251343 0.721771 0.274811 0.250519 0.755188 0.277130 0.249725 0.785583 0.279480 0.248932 0.813141 0.281891 0.248108 0.838135 0.284363 0.247314 0.860718 0.286743 0.246521 0.881317 0.289215 0.245728 0.900055 0.291656 0.244995 0.917084 0.294128 0.244202 0.932587 0.296661 0.243408 0.946625 0.299133 0.242676 0.959320 0.301727 0.241913 0.970764 0.304291 0.241180 0.059113 0.270477 0.263855 0.082153 0.272400 0.263092 0.106293 0.274384 0.262390 0.131622 0.276459 0.261627 0.158234 0.278442 0.260925 0.186371 0.280548 0.260132 0.216217 0.282715 0.259369 0.247833 0.284851 0.258575 0.281586 0.287048 0.257812 0.317505 0.289276 0.256989 0.355469 0.291504 0.256256 0.395386 0.293823 0.255432 0.436829 0.296082 0.254608 0.479736 0.298462 0.253815 0.523743 0.300812 0.252991 0.567871 0.303192 0.252228 0.610687 0.305634 0.251343 0.651520 0.308136 0.250549 0.690094 0.310577 0.249786 0.726044 0.313080 0.248962 0.759155 0.315674 0.248169 0.789185 0.318115 0.247375 0.816406 0.320740 0.246552 0.841034 0.323303 0.245789 0.863434 0.325897 0.244995 0.883789 0.328522 0.244202 0.902283 0.331146 0.243469 0.919098 0.333832 0.242676 0.934418 0.336548 0.241913 0.948273 0.339172 0.241241 0.960846 0.341919 0.240448 0.972137 0.344604 0.239746 0.061493 0.307678 0.262390 0.084686 0.309814 0.261688 0.108978 0.311981 0.260925 0.134460 0.314209 0.260162 0.161255 0.316406 0.259399 0.189636 0.318756 0.258636 0.219696 0.321014 0.257843 0.251556 0.323364 0.257019 0.285614 0.325775 0.256256 0.321869 0.328217 0.255463 0.360016 0.330597 0.254608 0.400208 0.333069 0.253845 0.441895 0.335541 0.253021 0.484985 0.338104 0.252258 0.529114 0.340698 0.251434 0.573151 0.343201 0.250610 0.615753 0.345825 0.249786 0.656464 0.348511 0.248962 0.694702 0.351135 0.248199 0.730316 0.353760 0.247375 0.763062 0.356506 0.246552 0.792725 0.359222 0.245789 0.819611 0.361908 0.245026 0.843964 0.364624 0.244232 0.866089 0.367462 0.243500 0.886230 0.370209 0.242706 0.904510 0.373016 0.242004 0.921143 0.375854 0.241241 0.936249 0.378693 0.240479 0.949951 0.381439 0.239777 0.962341 0.384369 0.239075 0.973480 0.387238 0.238342 0.063934 0.347351 0.260956 0.087280 0.349609 0.260223 0.111694 0.352020 0.259399 0.137390 0.354431 0.258636 0.164398 0.356812 0.257874 0.192963 0.359283 0.257050 0.223236 0.361786 0.256287 0.255432 0.364288 0.255493 0.289764 0.366882 0.254639 0.326172 0.369415 0.253876 0.364716 0.372070 0.253052 0.405121 0.374725 0.252258 0.447052 0.377319 0.251465 0.490295 0.380035 0.250641 0.534607 0.382782 0.249817 0.578491 0.385468 0.248993 0.620911 0.388245 0.248260 0.661316 0.391083 0.247406 0.699249 0.393860 0.246613 0.734558 0.396698 0.245819 0.766907 0.399536 0.245056 0.796234 0.402405 0.244263 0.822815 0.405304 0.243500 0.846893 0.408112 0.242737 0.868744 0.411072 0.242004 0.888641 0.414001 0.241272 0.906708 0.416931 0.240540 0.923126 0.419861 0.239807 0.938049 0.422852 0.239075 0.951569 0.425781 0.238373 0.963806 0.428741 0.237701 0.974762 0.431671 0.237030 0.066467 0.389252 0.259430 0.089966 0.391693 0.258698 0.114532 0.394287 0.257904 0.140442 0.396851 0.257050 0.167633 0.399384 0.256317 0.196381 0.402039 0.255493 0.226929 0.404755 0.254639 0.259369 0.407349 0.253876 0.293976 0.410126 0.253052 0.330719 0.412811 0.252289 0.369537 0.415588 0.251465 0.410156 0.418427 0.250641 0.452271 0.421173 0.249847 0.495667 0.424042 0.249084 0.540070 0.426941 0.248260 0.583832 0.429749 0.247437 0.626068 0.432739 0.246613 0.666199 0.435669 0.245819 0.703827 0.438599 0.245056 0.738800 0.441559 0.244263 0.770752 0.444458 0.243561 0.799744 0.447479 0.242737 0.825989 0.450531 0.242035 0.849762 0.453461 0.241302 0.871368 0.456543 0.240540 0.891022 0.459595 0.239807 0.908844 0.462555 0.239105 0.925110 0.465668 0.238403 0.939880 0.468750 0.237701 0.953186 0.471710 0.237030 0.965271 0.474792 0.236389 0.976044 0.477814 0.235718 0.069122 0.433136 0.257904 0.092712 0.435730 0.257111 0.117462 0.438446 0.256317 0.143524 0.441162 0.255524 0.170929 0.443878 0.254730 0.199921 0.446655 0.253906 0.230621 0.449402 0.253113 0.263367 0.452301 0.252350 0.298309 0.455139 0.251495 0.335327 0.458008 0.250671 0.374390 0.460938 0.249847 0.415222 0.463867 0.249084 0.457581 0.466766 0.248291 0.501129 0.469788 0.247437 0.545532 0.472778 0.246704 0.589172 0.475769 0.245850 0.631256 0.478760 0.245087 0.671082 0.481842 0.244354 0.708405 0.484863 0.243561 0.742981 0.487976 0.242798 0.774597 0.490997 0.242065 0.803223 0.494110 0.241302 0.829132 0.497253 0.240570 0.852600 0.500275 0.239838 0.873932 0.503418 0.239166 0.893372 0.506531 0.238403 0.911011 0.509583 0.237762 0.927063 0.512756 0.237091 0.941589 0.515778 0.236420 0.954773 0.518951 0.235748 0.966705 0.522095 0.235107 0.977325 0.525116 0.234528 0.071747 0.478699 0.256348 0.095520 0.481445 0.255554 0.120453 0.484222 0.254730 0.146667 0.487152 0.253906 0.174286 0.489960 0.253113 0.203522 0.492889 0.252350 0.234497 0.495789 0.251526 0.267548 0.498749 0.250702 0.302734 0.501740 0.249878 0.340027 0.504700 0.249146 0.379364 0.507721 0.248322 0.420441 0.510773 0.247467 0.462921 0.513794 0.246735 0.506622 0.516876 0.245911 0.551147 0.519958 0.245117 0.594574 0.523041 0.244385 0.636383 0.526154 0.243591 0.675903 0.529266 0.242828 0.712921 0.532379 0.242065 0.747162 0.535553 0.241333 0.778381 0.538605 0.240601 0.806641 0.541779 0.239868 0.832275 0.544922 0.239166 0.855408 0.547974 0.238434 0.876495 0.551147 0.237762 0.895721 0.554260 0.237091 0.913086 0.557312 0.236420 0.928955 0.560425 0.235748 0.943298 0.563446 0.235138 0.956360 0.566528 0.234528 0.968079 0.569641 0.233948 0.978577 0.572571 0.233398 0.074463 0.525574 0.254761 0.098419 0.528442 0.253937 0.123535 0.531403 0.253143 0.149933 0.534363 0.252380 0.177704 0.537292 0.251526 0.207153 0.540253 0.250702 0.238403 0.543182 0.249939 0.271698 0.546234 0.249146 0.307220 0.549286 0.248322 0.344788 0.552277 0.247498 0.384399 0.555328 0.246735 0.425690 0.558411 0.245941 0.468323 0.561432 0.245148 0.512177 0.564453 0.244385 0.556702 0.567566 0.243591 0.599976 0.570557 0.242828 0.641479 0.573639 0.242096 0.680725 0.576630 0.241364 0.717438 0.579681 0.240601 0.751282 0.582764 0.239868 0.782104 0.585754 0.239197 0.809998 0.588776 0.238495 0.835297 0.591858 0.237762 0.858215 0.594818 0.237122 0.879028 0.597809 0.236481 0.897980 0.600830 0.235809 0.915192 0.603790 0.235168 0.930847 0.606720 0.234528 0.945007 0.609619 0.234009 0.957886 0.612579 0.233398 0.969452 0.615479 0.232880 0.979797 0.618317 0.232880 0.077271 0.572601 0.253143 0.101349 0.575470 0.252411 0.126648 0.578369 0.251556 0.153229 0.581299 0.250732 0.181213 0.584106 0.249969 0.210938 0.587097 0.249176 0.242432 0.589935 0.248352 0.276001 0.592926 0.247559 0.311829 0.595886 0.246765 0.349640 0.598755 0.245972 0.389465 0.601746 0.245148 0.430969 0.604736 0.244415 0.473785 0.607605 0.243622 0.517822 0.610596 0.242889 0.562256 0.613525 0.242096 0.605316 0.616425 0.241364 0.646606 0.619385 0.240631 0.685547 0.622253 0.239899 0.721924 0.625214 0.239227 0.755371 0.628082 0.238495 0.785797 0.630981 0.237793 0.813354 0.633850 0.237152 0.838318 0.636749 0.236481 0.860962 0.639557 0.235840 0.881500 0.642365 0.235168 0.900238 0.645264 0.234558 0.917236 0.648010 0.234039 0.932709 0.650787 0.233398 0.946686 0.653503 0.232880 0.959351 0.656281 0.232880 0.970764 0.658997 0.232880 0.980957 0.661621 0.232880 0.080139 0.618042 0.251556 0.104370 0.620819 0.250763 0.129822 0.623627 0.249969 0.156525 0.626373 0.249207 0.184814 0.629211 0.248383 0.214752 0.632019 0.247559 0.246460 0.634857 0.246796 0.280365 0.637665 0.245972 0.316406 0.640503 0.245209 0.354523 0.643250 0.244446 0.394592 0.646088 0.243652 0.436310 0.648895 0.242920 0.479279 0.651611 0.242126 0.523407 0.654480 0.241425 0.567719 0.657196 0.240662 0.610657 0.660004 0.239960 0.651672 0.662781 0.239227 0.690247 0.665527 0.238525 0.726257 0.668274 0.237823 0.759399 0.670959 0.237152 0.789398 0.673676 0.236511 0.816620 0.676392 0.235840 0.841278 0.679108 0.235168 0.863617 0.681732 0.234589 0.883942 0.684387 0.234039 0.902374 0.686920 0.233429 0.919189 0.689545 0.232880 0.934479 0.692200 0.232880 0.948303 0.694702 0.232880 0.960815 0.697235 0.232880 0.972076 0.699738 0.232880 0.982117 0.702148 0.232880 0.083038 0.661316 0.250000 0.107391 0.663940 0.249207 0.132996 0.666626 0.248383 0.159973 0.669220 0.247589 0.188446 0.671936 0.246796 0.218597 0.674622 0.246002 0.250610 0.677185 0.245239 0.284790 0.679871 0.244446 0.321106 0.682587 0.243652 0.359497 0.685181 0.242950 0.399780 0.687805 0.242157 0.441711 0.690430 0.241425 0.484833 0.693054 0.240662 0.529114 0.695709 0.239960 0.573242 0.698212 0.239258 0.615936 0.700867 0.238556 0.656677 0.703430 0.237823 0.694977 0.705902 0.237183 0.730652 0.708496 0.236542 0.763336 0.711060 0.235840 0.792999 0.713501 0.235199 0.819855 0.715973 0.234589 0.844177 0.718475 0.234039 0.866272 0.720886 0.233429 0.886322 0.723297 0.232880 0.904541 0.725677 0.232880 0.921173 0.728058 0.232880 0.936218 0.730469 0.232880 0.949890 0.732727 0.232880 0.962250 0.735046 0.232880 0.973358 0.737305 0.232880 0.983215 0.739532 0.232880 0.085938 0.701843 0.248474 0.110535 0.704315 0.247620 0.136322 0.706879 0.246826 0.163422 0.709290 0.246033 0.192108 0.711792 0.245239 0.222534 0.714294 0.244476 0.254761 0.716736 0.243683 0.289246 0.719238 0.242950 0.325897 0.721710 0.242157 0.364441 0.724060 0.241455 0.404968 0.726562 0.240723 0.447052 0.728943 0.239990 0.490417 0.731384 0.239258 0.534760 0.733795 0.238556 0.578766 0.736145 0.237854 0.621185 0.738495 0.237183 0.661682 0.740875 0.236542 0.699585 0.743195 0.235901 0.734863 0.745483 0.235229 0.767212 0.747803 0.234619 0.796478 0.750031 0.234070 0.822998 0.752319 0.233490 0.847046 0.754547 0.232880 0.868835 0.756714 0.232880 0.888672 0.758942 0.232880 0.906677 0.761047 0.232880 0.923065 0.763184 0.232880 0.937958 0.765320 0.232880 0.951447 0.767365 0.232880 0.963623 0.769440 0.232880 0.974579 0.771454 0.232880 0.984283 0.773438 0.232880 0.088959 0.739288 0.246857 0.113678 0.741608 0.246033 0.139618 0.743927 0.245270 0.166931 0.746185 0.244507 0.195831 0.748444 0.243744 0.226501 0.750763 0.242981 0.259033 0.753021 0.242188 0.293793 0.755249 0.241486 0.330688 0.757538 0.240723 0.369537 0.759705 0.240021 0.410217 0.761932 0.239288 0.452454 0.764099 0.238586 0.495972 0.766266 0.237915 0.540405 0.768494 0.237213 0.584198 0.770630 0.236572 0.626373 0.772766 0.235931 0.666565 0.774902 0.235229 0.704163 0.776917 0.234619 0.739075 0.779022 0.234100 0.771027 0.781097 0.233490 0.799927 0.783112 0.232910 0.826080 0.785126 0.232880 0.849792 0.787079 0.232880 0.871338 0.789062 0.232880 0.890930 0.790985 0.232880 0.908691 0.792938 0.232880 0.924896 0.794800 0.232880 0.939606 0.796692 0.232880 0.952972 0.798492 0.232880 0.964966 0.800323 0.232880 0.975739 0.802155 0.232880 0.985321 0.803894 0.232880 0.091980 0.773407 0.245300 0.116852 0.775543 0.244507 0.143005 0.777588 0.243744 0.170502 0.779633 0.243011 0.199615 0.781738 0.242218 0.230499 0.783783 0.241486 0.263306 0.785828 0.240753 0.298309 0.787872 0.240021 0.335449 0.789825 0.239319 0.374573 0.791870 0.238586 0.415497 0.793854 0.237915 0.457855 0.795807 0.237244 0.501495 0.797791 0.236572 0.545990 0.799744 0.235931 0.589600 0.801636 0.235321 0.631561 0.803528 0.234650 0.671387 0.805420 0.234100 0.708679 0.807281 0.233521 0.743195 0.809174 0.232910 0.774750 0.810974 0.232880 0.803253 0.812805 0.232880 0.829102 0.814606 0.232880 0.852509 0.816345 0.232880 0.873810 0.818085 0.232880 0.893158 0.819855 0.232880 0.910706 0.821503 0.232880 0.926697 0.823212 0.232880 0.941254 0.824860 0.232880 0.954407 0.826508 0.232880 0.966248 0.828125 0.232880 0.976898 0.829712 0.232880 0.986328 0.831238 0.232880 0.095032 0.804108 0.243774 0.120056 0.806030 0.243011 0.146393 0.807892 0.242218 0.174103 0.809753 0.241516 0.203430 0.811615 0.240784 0.234528 0.813507 0.240051 0.267609 0.815338 0.239319 0.302917 0.817108 0.238647 0.340271 0.818939 0.237946 0.379639 0.820740 0.237244 0.420776 0.822510 0.236603 0.463287 0.824280 0.235962 0.507080 0.826050 0.235352 0.551544 0.827789 0.234650 0.594910 0.829498 0.234131 0.636658 0.831207 0.233551 0.676147 0.832916 0.232971 0.713074 0.834595 0.232880 0.747192 0.836212 0.232880 0.778351 0.837830 0.232880 0.806519 0.839447 0.232880 0.832062 0.841064 0.232880 0.855194 0.842621 0.232880 0.876221 0.844177 0.232880 0.895325 0.845734 0.232880 0.912659 0.847229 0.232880 0.928467 0.848724 0.232880 0.942841 0.850250 0.232880 0.955811 0.851624 0.232880 0.967529 0.853088 0.232880 0.977966 0.854462 0.232880 0.987305 0.855835 0.232880 0.098145 0.831726 0.242310 0.123352 0.833466 0.241547 0.149841 0.835175 0.240784 0.177673 0.836853 0.240082 0.207245 0.838531 0.239380 0.238556 0.840149 0.238678 0.271942 0.841827 0.237976 0.307526 0.843506 0.237274 0.345123 0.845062 0.236633 0.384735 0.846710 0.235992 0.426056 0.848328 0.235352 0.468750 0.849884 0.234711 0.512604 0.851471 0.234131 0.557037 0.853027 0.233551 0.600220 0.854553 0.233032 0.641632 0.856110 0.232880 0.680878 0.857635 0.232880 0.717377 0.859100 0.232880 0.751129 0.860596 0.232880 0.781891 0.862030 0.232880 0.809723 0.863464 0.232880 0.834930 0.864899 0.232880 0.857758 0.866272 0.232880 0.878510 0.867676 0.232880 0.897430 0.869049 0.232880 0.914581 0.870392 0.232880 0.930176 0.871735 0.232880 0.944336 0.873047 0.232880 0.957184 0.874298 0.232880 0.968750 0.875549 0.232880 0.979034 0.876801 0.232880 0.988220 0.878021 0.232880 0.101257 0.856598 0.240845 0.126648 0.858185 0.240082 0.153290 0.859711 0.239380 0.181335 0.861237 0.238678 0.211121 0.862732 0.237976 0.242676 0.864227 0.237335 0.276276 0.865692 0.236633 0.312164 0.867218 0.235992 0.350006 0.868652 0.235382 0.389832 0.870117 0.234711 0.431305 0.871582 0.234161 0.474091 0.872955 0.233612 0.518066 0.874390 0.233032 0.562408 0.875793 0.232880 0.605408 0.877167 0.232880 0.646515 0.878510 0.232880 0.685364 0.879883 0.232880 0.721619 0.881226 0.232880 0.754974 0.882507 0.232880 0.785309 0.883820 0.232880 0.812836 0.885101 0.232880 0.837738 0.886383 0.232880 0.860260 0.887634 0.232880 0.880768 0.888855 0.232880 0.899475 0.890076 0.232880 0.916412 0.891235 0.232880 0.931824 0.892456 0.232880 0.945801 0.893585 0.232880 0.958466 0.894745 0.232880 0.969910 0.895874 0.232880 0.980072 0.896942 0.232880 0.989105 0.898010 0.232880 0.104401 0.879059 0.239410 0.129913 0.880493 0.238708 0.156708 0.881805 0.238007 0.185028 0.883179 0.237335 0.214966 0.884583 0.236664 0.246796 0.885925 0.236023 0.280640 0.887268 0.235382 0.316772 0.888611 0.234772 0.354889 0.889923 0.234161 0.394928 0.891205 0.233612 0.436554 0.892517 0.233032 0.479462 0.893768 0.232880 0.523529 0.895050 0.232880 0.567688 0.896271 0.232880 0.610504 0.897522 0.232880 0.651306 0.898743 0.232880 0.689850 0.899963 0.232880 0.725708 0.901154 0.232880 0.758759 0.902313 0.232880 0.788696 0.903473 0.232880 0.815826 0.904633 0.232880 0.840424 0.905762 0.232880 0.862701 0.906891 0.232880 0.882965 0.907959 0.232880 0.901428 0.909058 0.232880 0.918152 0.910095 0.232880 0.933411 0.911163 0.232880 0.947235 0.912140 0.232880 0.959747 0.913147 0.232880 0.971008 0.914154 0.232880 0.981049 0.915161 0.232880 0.989929 0.916077 0.232880 0.107544 0.899323 0.238037 0.133240 0.900604 0.237366 0.160187 0.901825 0.236664 0.188690 0.903107 0.236023 0.218903 0.904297 0.235413 0.250916 0.905518 0.234802 0.285095 0.906738 0.234192 0.321442 0.907928 0.233643 0.359741 0.909119 0.233063 0.399933 0.910278 0.232880 0.441742 0.911438 0.232880 0.484833 0.912537 0.232880 0.528961 0.913666 0.232880 0.572906 0.914825 0.232880 0.615479 0.915924 0.232880 0.656036 0.917023 0.232880 0.694214 0.918060 0.232880 0.729736 0.919159 0.232880 0.762390 0.920197 0.232880 0.791931 0.921234 0.232880 0.818756 0.922241 0.232880 0.843048 0.923248 0.232880 0.865051 0.924225 0.232880 0.885101 0.925201 0.232880 0.903290 0.926147 0.232880 0.919861 0.927094 0.232880 0.934937 0.928009 0.232880 0.948578 0.928894 0.232880 0.960968 0.929810 0.232880 0.972076 0.930664 0.232880 0.981995 0.931488 0.232880 0.990753 0.932373 0.232880 0.110748 0.917633 0.236694 0.136566 0.918762 0.236053 0.163696 0.919861 0.235443 0.192383 0.920990 0.234802 0.222778 0.922119 0.234192 0.255035 0.923187 0.233643 0.289429 0.924255 0.233063 0.326050 0.925354 0.232880 0.364563 0.926392 0.232880 0.404968 0.927460 0.232880 0.446899 0.928467 0.232880 0.490112 0.929504 0.232880 0.534241 0.930511 0.232880 0.578094 0.931488 0.232880 0.620392 0.932526 0.232880 0.660675 0.933502 0.232880 0.698486 0.934418 0.232880 0.733673 0.935394 0.232880 0.765900 0.936310 0.232880 0.795074 0.937195 0.232880 0.821594 0.938110 0.232880 0.845551 0.939026 0.232880 0.867310 0.939880 0.232880 0.887115 0.940765 0.232880 0.905121 0.941559 0.232880 0.921539 0.942383 0.232880 0.936401 0.943207 0.232880 0.949921 0.944031 0.232880 0.962158 0.944763 0.232880 0.973114 0.945557 0.232880 0.982910 0.946289 0.232880 0.991516 0.947021 0.232880 0.113892 0.934174 0.235443 0.139893 0.935181 0.234833 0.167175 0.936157 0.234222 0.196045 0.937164 0.233673 0.226685 0.938171 0.233093 0.259155 0.939117 0.232880 0.293823 0.940125 0.232880 0.330658 0.941071 0.232880 0.369385 0.942017 0.232880 0.409973 0.942932 0.232880 0.451965 0.943878 0.232880 0.495300 0.944763 0.232880 0.539520 0.945679 0.232880 0.583130 0.946564 0.232880 0.625153 0.947418 0.232880 0.665100 0.948303 0.232880 0.702606 0.949158 0.232880 0.737427 0.949951 0.232880 0.769287 0.950806 0.232880 0.798126 0.951569 0.232880 0.824280 0.952393 0.232880 0.847992 0.953125 0.232880 0.869507 0.953918 0.232880 0.889099 0.954681 0.232880 0.906891 0.955414 0.232880 0.923096 0.956146 0.232880 0.937836 0.956848 0.232880 0.951172 0.957520 0.232880 0.963226 0.958221 0.232880 0.974060 0.958893 0.232880 0.983734 0.959534 0.232880 0.992249 0.960175 0.232880 0.117065 0.949005 0.234253 0.143188 0.949921 0.233673 0.170654 0.950806 0.233124 0.199738 0.951721 0.232880 0.230560 0.952606 0.232880 0.263275 0.953491 0.232880 0.298187 0.954346 0.232880 0.335205 0.955170 0.232880 0.374176 0.956024 0.232880 0.414886 0.956848 0.232880 0.457062 0.957642 0.232880 0.500427 0.958466 0.232880 0.544647 0.959259 0.232880 0.588074 0.960022 0.232880 0.629822 0.960815 0.232880 0.669464 0.961548 0.232880 0.706635 0.962311 0.232880 0.741089 0.963043 0.232880 0.772583 0.963776 0.232880 0.801086 0.964447 0.232880 0.826904 0.965179 0.232880 0.850342 0.965820 0.232880 0.871613 0.966522 0.232880 0.890961 0.967194 0.232880 0.908569 0.967804 0.232880 0.924591 0.968445 0.232880 0.939148 0.969025 0.232880 0.952332 0.969635 0.232880 0.964294 0.970245 0.232880 0.975006 0.970795 0.232880 0.984528 0.971375 0.232880 0.992889 0.971893 0.232880 0.120239 0.962341 0.233124 0.146515 0.963135 0.232880 0.174164 0.963928 0.232880 0.203369 0.964752 0.232880 0.234436 0.965515 0.232880 0.267365 0.966278 0.232880 0.302521 0.967041 0.232880 0.339752 0.967773 0.232880 0.378876 0.968506 0.232880 0.419769 0.969269 0.232880 0.462036 0.969971 0.232880 0.505463 0.970673 0.232880 0.549622 0.971375 0.232880 0.592834 0.972076 0.232880 0.634369 0.972748 0.232880 0.673676 0.973419 0.232880 0.710541 0.974030 0.232880 0.744598 0.974670 0.232880 0.775696 0.975281 0.232880 0.803894 0.975922 0.232880 0.829437 0.976532 0.232880 0.852570 0.977081 0.232880 0.873627 0.977692 0.232880 0.892761 0.978271 0.232880 0.910187 0.978821 0.232880 0.925995 0.979340 0.232880 0.940430 0.979858 0.232880 0.953491 0.980377 0.232880 0.965302 0.980896 0.232880 0.975861 0.981354 0.232880 0.985291 0.981842 0.232880 0.993561 0.982300 0.232880 0.040894 0.002136 0.307648 0.062622 0.002808 0.307312 0.085388 0.003571 0.306915 0.109192 0.004333 0.306519 0.134155 0.005096 0.306091 0.160431 0.005981 0.305603 0.188171 0.006805 0.305084 0.217529 0.007690 0.304596 0.248688 0.008575 0.304077 0.281982 0.009552 0.303497 0.317291 0.010498 0.302948 0.354706 0.011475 0.302338 0.393951 0.012482 0.301727 0.434814 0.013489 0.301056 0.477081 0.014587 0.300385 0.520386 0.015656 0.299713 0.564087 0.016754 0.298950 0.606506 0.017914 0.298248 0.647095 0.019012 0.297516 0.685547 0.020203 0.296814 0.721466 0.021423 0.296051 0.754578 0.022614 0.295258 0.784790 0.023865 0.294464 0.812164 0.025116 0.293671 0.837067 0.026398 0.292877 0.859650 0.027710 0.292023 0.880157 0.028992 0.291229 0.898865 0.030334 0.290405 0.915924 0.031708 0.289520 0.931427 0.033051 0.288727 0.945496 0.034454 0.287872 0.958252 0.035889 0.287018 0.042297 0.023132 0.306915 0.064148 0.023956 0.306549 0.087006 0.024780 0.306091 0.110962 0.025635 0.305634 0.136047 0.026489 0.305145 0.162506 0.027435 0.304596 0.190460 0.028381 0.304077 0.220001 0.029327 0.303497 0.251465 0.030334 0.302948 0.284912 0.031311 0.302399 0.320526 0.032379 0.301727 0.358185 0.033447 0.301056 0.397583 0.034546 0.300415 0.438690 0.035675 0.299713 0.481232 0.036835 0.298950 0.524628 0.037994 0.298279 0.568329 0.039185 0.297546 0.610718 0.040405 0.296814 0.651154 0.041656 0.296082 0.689392 0.042908 0.295288 0.725067 0.044189 0.294495 0.757965 0.045502 0.293671 0.787933 0.046844 0.292877 0.815002 0.048157 0.292053 0.839661 0.049561 0.291229 0.862030 0.050934 0.290405 0.882385 0.052338 0.289581 0.900879 0.053772 0.288727 0.917786 0.055206 0.287903 0.933105 0.056641 0.287048 0.947052 0.058136 0.286194 0.959686 0.059601 0.285370 0.043762 0.045166 0.306091 0.065735 0.046021 0.305634 0.088806 0.046936 0.305145 0.112854 0.047913 0.304657 0.138123 0.048889 0.304108 0.164734 0.049896 0.303528 0.192871 0.050934 0.302948 0.222656 0.051971 0.302399 0.254333 0.053070 0.301727 0.288055 0.054138 0.301086 0.323944 0.055298 0.300415 0.361847 0.056519 0.299713 0.401489 0.057648 0.299042 0.442841 0.058899 0.298309 0.485443 0.060120 0.297577 0.529114 0.061401 0.296844 0.572815 0.062714 0.296082 0.615021 0.063995 0.295288 0.655334 0.065338 0.294525 0.693390 0.066711 0.293701 0.728790 0.068024 0.292908 0.761383 0.069458 0.292084 0.791046 0.070892 0.291260 0.817932 0.072327 0.290436 0.842316 0.073822 0.289612 0.864471 0.075287 0.288757 0.884583 0.076782 0.287933 0.902985 0.078308 0.287079 0.919678 0.079865 0.286224 0.934875 0.081360 0.285400 0.948669 0.082947 0.284515 0.961151 0.084534 0.283630 0.045380 0.068237 0.305176 0.067535 0.069214 0.304657 0.090668 0.070251 0.304108 0.114868 0.071289 0.303528 0.140320 0.072327 0.302979 0.167114 0.073456 0.302399 0.195404 0.074554 0.301788 0.225403 0.075714 0.301086 0.257294 0.076904 0.300446 0.291321 0.078125 0.299744 0.327484 0.079346 0.299072 0.365631 0.080658 0.298309 0.405518 0.081909 0.297577 0.447113 0.083252 0.296875 0.489960 0.084595 0.296112 0.533691 0.085938 0.295319 0.577362 0.087341 0.294525 0.619476 0.088806 0.293701 0.659546 0.090210 0.292999 0.697418 0.091675 0.292084 0.732544 0.093140 0.291321 0.764893 0.094666 0.290497 0.794281 0.096191 0.289612 0.820831 0.097717 0.288818 0.845001 0.099335 0.287964 0.866943 0.100861 0.287079 0.886902 0.102478 0.286255 0.905060 0.104095 0.285400 0.921600 0.105774 0.284515 0.936615 0.107361 0.283691 0.950226 0.109070 0.282776 0.962555 0.110748 0.281982 0.047119 0.092468 0.304108 0.069366 0.093506 0.303589 0.092651 0.094666 0.303040 0.117035 0.095825 0.302429 0.142609 0.096985 0.301819 0.169617 0.098206 0.301117 0.198090 0.099396 0.300476 0.228363 0.100708 0.299774 0.260498 0.102020 0.299072 0.294769 0.103302 0.298370 0.331207 0.104675 0.297668 0.369598 0.106049 0.296875 0.409760 0.107422 0.296143 0.451508 0.108887 0.295319 0.494507 0.110352 0.294617 0.538452 0.111816 0.293793 0.582001 0.113312 0.292999 0.623932 0.114807 0.292175 0.663940 0.116425 0.291321 0.701538 0.117981 0.290527 0.736389 0.119537 0.289673 0.768433 0.121155 0.288879 0.797485 0.122833 0.287964 0.823792 0.124481 0.287140 0.847717 0.126129 0.286285 0.869415 0.127899 0.285431 0.889160 0.129547 0.284546 0.907135 0.131317 0.283691 0.923431 0.132996 0.282806 0.938354 0.134827 0.281982 0.951813 0.136658 0.281128 0.963989 0.138397 0.280304 0.048950 0.118011 0.303040 0.071350 0.119202 0.302429 0.094757 0.120422 0.301819 0.119293 0.121674 0.301117 0.145081 0.122955 0.300476 0.172211 0.124329 0.299774 0.200928 0.125671 0.299103 0.231384 0.127045 0.298370 0.263855 0.128479 0.297668 0.298370 0.129883 0.296906 0.335052 0.131378 0.296143 0.373749 0.132874 0.295380 0.414124 0.134369 0.294647 0.456085 0.135956 0.293823 0.499207 0.137482 0.293030 0.543304 0.139099 0.292206 0.586792 0.140717 0.291382 0.628540 0.142365 0.290558 0.668304 0.144043 0.289703 0.705658 0.145752 0.288879 0.740265 0.147430 0.287994 0.771973 0.149170 0.287170 0.800720 0.151001 0.286285 0.826752 0.152710 0.285461 0.850403 0.154541 0.284607 0.871887 0.156372 0.283722 0.891418 0.158203 0.282867 0.909241 0.160065 0.282013 0.925354 0.161926 0.281158 0.940063 0.163849 0.280304 0.953400 0.165771 0.279449 0.965454 0.167664 0.278595 0.050903 0.144989 0.301819 0.073395 0.146240 0.301147 0.096954 0.147675 0.300476 0.121643 0.149017 0.299835 0.147583 0.150421 0.299133 0.174988 0.151917 0.298401 0.203888 0.153381 0.297699 0.234558 0.154877 0.296936 0.267303 0.156433 0.296204 0.302094 0.157990 0.295441 0.339020 0.159607 0.294647 0.377991 0.161224 0.293823 0.418610 0.162872 0.293060 0.460754 0.164581 0.292206 0.504028 0.166229 0.291412 0.548218 0.167999 0.290558 0.591644 0.169769 0.289703 0.633240 0.171509 0.288910 0.672791 0.173370 0.288055 0.709869 0.175201 0.287170 0.744141 0.177032 0.286316 0.775574 0.178925 0.285461 0.803986 0.180817 0.284637 0.829742 0.182709 0.283752 0.853149 0.184662 0.282867 0.874329 0.186584 0.282074 0.893677 0.188568 0.281189 0.911285 0.190582 0.280334 0.927246 0.192566 0.279480 0.941803 0.194641 0.278625 0.954987 0.196716 0.277802 0.966858 0.198730 0.276947 0.052917 0.173523 0.300507 0.075531 0.175018 0.299835 0.099304 0.176514 0.299133 0.124115 0.178009 0.298462 0.150238 0.179596 0.297729 0.177826 0.181183 0.296936 0.206940 0.182770 0.296265 0.237915 0.184479 0.295441 0.270874 0.186157 0.294678 0.306000 0.187866 0.293854 0.343170 0.189606 0.293060 0.382324 0.191315 0.292236 0.423218 0.193146 0.291443 0.465576 0.195007 0.290588 0.509064 0.196808 0.289764 0.553314 0.198730 0.288940 0.596558 0.200623 0.288055 0.637939 0.202515 0.287231 0.677246 0.204529 0.286346 0.714142 0.206512 0.285492 0.748077 0.208466 0.284668 0.779144 0.210480 0.283783 0.807251 0.212555 0.282928 0.832703 0.214600 0.282074 0.855835 0.216705 0.281250 0.876831 0.218781 0.280365 0.895966 0.220917 0.279480 0.913361 0.223083 0.278625 0.929138 0.225220 0.277832 0.943512 0.227417 0.276978 0.956543 0.229706 0.276154 0.968262 0.231873 0.275360 0.055054 0.203949 0.299164 0.077820 0.205566 0.298462 0.101685 0.207245 0.297729 0.126709 0.208893 0.296997 0.153015 0.210602 0.296265 0.180756 0.212341 0.295471 0.210114 0.214142 0.294708 0.241333 0.215973 0.293884 0.274597 0.217773 0.293091 0.309937 0.219635 0.292267 0.347443 0.221527 0.291443 0.386780 0.223419 0.290649 0.427948 0.225403 0.289795 0.470520 0.227417 0.288940 0.514191 0.229401 0.288116 0.558411 0.231445 0.287262 0.601532 0.233551 0.286346 0.642761 0.235596 0.285553 0.681854 0.237762 0.284668 0.718353 0.239899 0.283783 0.752014 0.242035 0.282959 0.782715 0.244232 0.282104 0.810486 0.246429 0.281281 0.835663 0.248657 0.280396 0.858582 0.250977 0.279541 0.879303 0.253235 0.278717 0.898224 0.255493 0.277863 0.915436 0.257874 0.276978 0.931030 0.260162 0.276184 0.945221 0.262512 0.275360 0.958069 0.264893 0.274567 0.969635 0.267273 0.273743 0.057220 0.236389 0.297760 0.080200 0.238220 0.296997 0.104187 0.240021 0.296295 0.129364 0.241852 0.295502 0.155884 0.243744 0.294708 0.183838 0.245636 0.293884 0.213440 0.247589 0.293121 0.244873 0.249603 0.292267 0.278351 0.251556 0.291473 0.314056 0.253632 0.290649 0.351868 0.255737 0.289795 0.391449 0.257812 0.288971 0.432831 0.259918 0.288147 0.475586 0.262146 0.287262 0.519379 0.264252 0.286407 0.563599 0.266541 0.285553 0.606567 0.268799 0.284698 0.647583 0.271027 0.283813 0.686371 0.273346 0.282959 0.722595 0.275665 0.282104 0.755951 0.278046 0.281281 0.786285 0.280396 0.280396 0.813721 0.282715 0.279572 0.838654 0.285187 0.278717 0.861267 0.287628 0.277863 0.881805 0.290070 0.277039 0.900452 0.292572 0.276215 0.917480 0.295074 0.275391 0.932922 0.297546 0.274597 0.946930 0.300140 0.273743 0.959625 0.302704 0.273010 0.971008 0.305176 0.272186 0.059540 0.271179 0.296326 0.082642 0.273163 0.295502 0.106812 0.275177 0.294739 0.132141 0.277130 0.293945 0.158813 0.279236 0.293121 0.186981 0.281342 0.292328 0.216797 0.283478 0.291504 0.248535 0.285645 0.290680 0.282288 0.287811 0.289825 0.318268 0.290070 0.289001 0.356323 0.292358 0.288147 0.396210 0.294647 0.287292 0.437775 0.296936 0.286438 0.480743 0.299347 0.285583 0.524719 0.301666 0.284729 0.568848 0.304108 0.283875 0.611633 0.306580 0.282990 0.652435 0.309021 0.282196 0.690948 0.311523 0.281311 0.726807 0.313995 0.280426 0.759827 0.316528 0.279572 0.789856 0.319122 0.278748 0.816986 0.321655 0.277893 0.841614 0.324249 0.277069 0.863983 0.326935 0.276215 0.884247 0.329498 0.275421 0.902710 0.332153 0.274628 0.919525 0.334839 0.273773 0.934753 0.337494 0.273010 0.948608 0.340210 0.272217 0.961121 0.342834 0.271423 0.972351 0.345581 0.270691 0.061920 0.308441 0.294769 0.085144 0.310638 0.293976 0.109497 0.312805 0.293152 0.134979 0.314972 0.292358 0.161865 0.317261 0.291504 0.190216 0.319519 0.290710 0.220306 0.321899 0.289856 0.252289 0.324280 0.289001 0.286316 0.326599 0.288208 0.322632 0.329071 0.287323 0.360992 0.331512 0.286499 0.401062 0.333984 0.285614 0.442841 0.336517 0.284729 0.485992 0.339081 0.283875 0.530090 0.341583 0.283020 0.574127 0.344177 0.282196 0.616730 0.346832 0.281311 0.657318 0.349396 0.280487 0.695557 0.352112 0.279633 0.731079 0.354736 0.278809 0.763763 0.357483 0.277924 0.793427 0.360199 0.277069 0.820190 0.362946 0.276276 0.844543 0.365662 0.275421 0.866608 0.368500 0.274628 0.886658 0.371216 0.273834 0.904907 0.374023 0.273041 0.921539 0.376892 0.272247 0.936584 0.379669 0.271454 0.950256 0.382538 0.270691 0.962585 0.385315 0.269989 0.973724 0.388214 0.269226 0.064423 0.348175 0.293243 0.087799 0.350555 0.292358 0.112274 0.352905 0.291534 0.137939 0.355286 0.290710 0.165039 0.357727 0.289856 0.193604 0.360168 0.289093 0.223907 0.362671 0.288208 0.256165 0.365234 0.287354 0.290497 0.367767 0.286530 0.327057 0.370422 0.285645 0.365662 0.373047 0.284790 0.406006 0.375671 0.283966 0.448029 0.378387 0.283081 0.491333 0.381073 0.282227 0.535522 0.383789 0.281342 0.579468 0.386536 0.280487 0.621887 0.389282 0.279663 0.662231 0.392029 0.278809 0.700165 0.394958 0.278015 0.735352 0.397705 0.277130 0.767639 0.400574 0.276276 0.796936 0.403503 0.275482 0.823395 0.406311 0.274658 0.847443 0.409271 0.273834 0.869232 0.412201 0.273071 0.889069 0.415039 0.272278 0.907104 0.418030 0.271454 0.923492 0.420898 0.270752 0.938385 0.423889 0.269989 0.951904 0.426910 0.269226 0.964081 0.429749 0.268524 0.975006 0.432770 0.267822 0.066956 0.390137 0.291626 0.090454 0.392609 0.290771 0.115112 0.395233 0.289886 0.140961 0.397736 0.289093 0.168243 0.400391 0.288239 0.197052 0.402954 0.287384 0.227600 0.405670 0.286530 0.260132 0.408356 0.285645 0.294769 0.411072 0.284851 0.331604 0.413818 0.283966 0.370453 0.416656 0.283081 0.411072 0.419403 0.282257 0.453278 0.422272 0.281372 0.496674 0.425018 0.280518 0.541016 0.427979 0.279694 0.584839 0.430847 0.278839 0.626984 0.433777 0.278046 0.667053 0.436737 0.277130 0.704773 0.439667 0.276337 0.739563 0.442596 0.275513 0.771484 0.445618 0.274689 0.800415 0.448669 0.273865 0.826538 0.451538 0.273102 0.850311 0.454590 0.272278 0.871887 0.457672 0.271545 0.891418 0.460632 0.270752 0.909271 0.463715 0.270020 0.925446 0.466736 0.269287 0.940186 0.469788 0.268524 0.953522 0.472870 0.267822 0.965515 0.475861 0.267151 0.976318 0.478973 0.266479 0.069550 0.434082 0.289948 0.093231 0.436768 0.289154 0.118011 0.439392 0.288269 0.144073 0.442139 0.287384 0.171539 0.444977 0.286560 0.200531 0.447662 0.285675 0.231384 0.450531 0.284851 0.264191 0.453369 0.283997 0.299103 0.456146 0.283142 0.336273 0.459137 0.282257 0.375336 0.462036 0.281372 0.416138 0.464905 0.280548 0.458618 0.467926 0.279694 0.502136 0.470825 0.278870 0.546570 0.473846 0.278046 0.590271 0.476898 0.277191 0.632141 0.479889 0.276398 0.671967 0.482910 0.275513 0.709290 0.486023 0.274689 0.743774 0.489075 0.273895 0.775330 0.492096 0.273102 0.803894 0.495300 0.272308 0.829712 0.498322 0.271576 0.853180 0.501434 0.270782 0.874420 0.504517 0.270050 0.893799 0.507629 0.269318 0.911377 0.510773 0.268524 0.927399 0.513855 0.267853 0.941925 0.516998 0.267151 0.955109 0.520142 0.266479 0.966949 0.523132 0.265808 0.977570 0.526337 0.265198 0.072235 0.479645 0.288269 0.096100 0.482483 0.287445 0.121002 0.485260 0.286591 0.147217 0.488129 0.285706 0.174927 0.491058 0.284882 0.204163 0.493927 0.284058 0.235199 0.496857 0.283173 0.268280 0.499847 0.282288 0.303528 0.502808 0.281433 0.340942 0.505859 0.280548 0.380310 0.508881 0.279724 0.421326 0.511841 0.278870 0.463959 0.514984 0.278076 0.507690 0.517944 0.277222 0.552124 0.521088 0.276398 0.595612 0.524200 0.275574 0.637268 0.527252 0.274719 0.676819 0.530365 0.273895 0.713806 0.533539 0.273163 0.747925 0.536652 0.272369 0.779053 0.539825 0.271576 0.807281 0.542938 0.270782 0.832794 0.545990 0.270050 0.855988 0.549194 0.269318 0.876984 0.552216 0.268646 0.896118 0.555328 0.267883 0.913483 0.558502 0.267212 0.929321 0.561523 0.266541 0.943665 0.564606 0.265839 0.956635 0.567688 0.265198 0.968353 0.570679 0.264618 0.978821 0.573730 0.263977 0.074982 0.526611 0.286591 0.098969 0.529572 0.285767 0.124084 0.532410 0.284912 0.150482 0.535400 0.284058 0.178375 0.538391 0.283173 0.207855 0.541290 0.282349 0.239197 0.544373 0.281464 0.272491 0.547363 0.280579 0.308044 0.550354 0.279785 0.345764 0.553406 0.278931 0.385315 0.556488 0.278076 0.426636 0.559479 0.277222 0.469360 0.562561 0.276428 0.513275 0.565552 0.275604 0.557678 0.568634 0.274780 0.600983 0.571716 0.273956 0.642365 0.574738 0.273193 0.681671 0.577789 0.272369 0.718323 0.580841 0.271606 0.752045 0.583862 0.270874 0.782837 0.586914 0.270081 0.810669 0.589935 0.269348 0.835846 0.592926 0.268646 0.858734 0.595917 0.267883 0.879486 0.598877 0.267273 0.898376 0.601868 0.266571 0.915588 0.604828 0.265839 0.931183 0.607727 0.265228 0.945343 0.610718 0.264618 0.958130 0.613647 0.263977 0.969666 0.616516 0.263733 0.979980 0.619385 0.263733 0.077759 0.573639 0.284943 0.101898 0.576538 0.284088 0.127197 0.579376 0.283203 0.153778 0.582306 0.282410 0.181885 0.585266 0.281525 0.211578 0.588104 0.280609 0.243195 0.591064 0.279785 0.276855 0.594025 0.278961 0.312653 0.596924 0.278107 0.350586 0.599854 0.277252 0.390350 0.602783 0.276459 0.431946 0.605774 0.275635 0.474884 0.608734 0.274780 0.518860 0.611633 0.274017 0.563232 0.614532 0.273193 0.606354 0.617554 0.272400 0.647522 0.620422 0.271637 0.686401 0.623322 0.270874 0.722717 0.626312 0.270081 0.756104 0.629150 0.269348 0.786499 0.632019 0.268646 0.813995 0.634918 0.267914 0.838867 0.637756 0.267273 0.861450 0.640656 0.266571 0.881958 0.643402 0.265930 0.900604 0.646240 0.265228 0.917603 0.649017 0.264648 0.932983 0.651733 0.264008 0.946991 0.654572 0.263733 0.959656 0.657318 0.263733 0.971008 0.659912 0.263733 0.981171 0.662659 0.263733 0.080658 0.619049 0.283234 0.104919 0.621918 0.282410 0.130371 0.624664 0.281555 0.157166 0.627441 0.280640 0.185486 0.630280 0.279816 0.215424 0.633026 0.278992 0.247284 0.635895 0.278137 0.281189 0.638702 0.277252 0.317261 0.641479 0.276459 0.355499 0.644287 0.275635 0.395508 0.647064 0.274811 0.437256 0.649902 0.274048 0.480377 0.652710 0.273224 0.524475 0.655457 0.272430 0.568787 0.658264 0.271667 0.611664 0.661072 0.270874 0.652588 0.663788 0.270111 0.691193 0.666534 0.269409 0.727142 0.669281 0.268677 0.760071 0.671967 0.267944 0.790131 0.674713 0.267273 0.817230 0.677338 0.266602 0.841797 0.680054 0.265930 0.864105 0.682678 0.265289 0.884399 0.685303 0.264648 0.902832 0.687927 0.264099 0.919586 0.690552 0.263733 0.934784 0.693054 0.263733 0.948608 0.695648 0.263733 0.961090 0.698181 0.263733 0.972290 0.700592 0.263733 0.982330 0.703125 0.263733 0.083557 0.662262 0.281555 0.108032 0.664917 0.280640 0.133606 0.667572 0.279846 0.160614 0.670258 0.278992 0.189148 0.672974 0.278137 0.219269 0.675568 0.277283 0.251434 0.678223 0.276520 0.285583 0.680786 0.275665 0.321991 0.683502 0.274872 0.360443 0.686157 0.274048 0.400726 0.688751 0.273254 0.442657 0.691406 0.272430 0.485962 0.694031 0.271667 0.530151 0.696594 0.270905 0.574310 0.699188 0.270142 0.616974 0.701813 0.269409 0.657623 0.704315 0.268707 0.695923 0.706909 0.267944 0.731445 0.709442 0.267303 0.764008 0.711914 0.266602 0.793671 0.714417 0.265961 0.820404 0.716858 0.265289 0.844696 0.719360 0.264709 0.866760 0.721771 0.264099 0.886780 0.724152 0.263733 0.904999 0.726593 0.263733 0.921539 0.728943 0.263733 0.936584 0.731262 0.263733 0.950195 0.733582 0.263733 0.962494 0.735901 0.263733 0.973541 0.738098 0.263733 0.983398 0.740356 0.263733 0.086517 0.702759 0.279907 0.111084 0.705261 0.279022 0.136902 0.707733 0.278168 0.164093 0.710266 0.277344 0.192841 0.712738 0.276520 0.223206 0.715179 0.275696 0.255646 0.717651 0.274902 0.290039 0.720062 0.274078 0.326752 0.722565 0.273254 0.365448 0.725037 0.272461 0.405914 0.727386 0.271698 0.448090 0.729828 0.270935 0.491486 0.732300 0.270142 0.535767 0.734619 0.269440 0.579803 0.737000 0.268707 0.622223 0.739410 0.267975 0.662567 0.741669 0.267334 0.700500 0.744019 0.266632 0.735626 0.746307 0.265991 0.767853 0.748596 0.265320 0.797119 0.750885 0.264709 0.823578 0.753082 0.264130 0.847565 0.755310 0.263733 0.869324 0.757538 0.263733 0.889069 0.759674 0.263733 0.907074 0.761871 0.263733 0.923431 0.763977 0.263733 0.938263 0.766083 0.263733 0.951721 0.768127 0.263733 0.963867 0.770111 0.263733 0.974762 0.772186 0.263733 0.984467 0.774170 0.263733 0.089508 0.740173 0.278198 0.114288 0.742462 0.277344 0.140198 0.744751 0.276581 0.167633 0.747009 0.275696 0.196564 0.749359 0.274902 0.227203 0.751587 0.274078 0.259827 0.753815 0.273315 0.294617 0.756073 0.272491 0.331512 0.758331 0.271698 0.370483 0.760529 0.270966 0.411133 0.762756 0.270233 0.453461 0.764954 0.269470 0.497009 0.767120 0.268768 0.541412 0.769257 0.267975 0.585205 0.771423 0.267334 0.627411 0.773590 0.266632 0.667480 0.775635 0.265991 0.705048 0.777740 0.265320 0.739838 0.779755 0.264740 0.771698 0.781830 0.264130 0.800537 0.783875 0.263733 0.826630 0.785828 0.263733 0.850342 0.787842 0.263733 0.871826 0.789795 0.263733 0.891327 0.791687 0.263733 0.909119 0.793610 0.263733 0.925262 0.795532 0.263733 0.939941 0.797333 0.263733 0.953217 0.799225 0.263733 0.965210 0.800995 0.263733 0.975983 0.802765 0.263733 0.985504 0.804565 0.263733 0.092560 0.774170 0.276581 0.117462 0.776306 0.275726 0.143616 0.778351 0.274933 0.171204 0.780426 0.274109 0.200287 0.782440 0.273346 0.231201 0.784515 0.272491 0.264130 0.786560 0.271759 0.299133 0.788574 0.270966 0.336365 0.790588 0.270264 0.375549 0.792633 0.269470 0.416443 0.794556 0.268799 0.458923 0.796539 0.268066 0.502625 0.798492 0.267365 0.547028 0.800415 0.266663 0.590607 0.802368 0.266022 0.632477 0.804230 0.265350 0.672272 0.806091 0.264771 0.709503 0.808014 0.264130 0.743927 0.809814 0.263733 0.775391 0.811646 0.263733 0.803894 0.813477 0.263733 0.829651 0.815247 0.263733 0.853027 0.817017 0.263733 0.874268 0.818756 0.263733 0.893555 0.820435 0.263733 0.911102 0.822144 0.263733 0.927063 0.823792 0.263733 0.941528 0.825470 0.263733 0.954651 0.827087 0.263733 0.966492 0.828674 0.263733 0.977081 0.830292 0.263733 0.986511 0.831848 0.263733 0.095642 0.804840 0.274963 0.120697 0.806763 0.274109 0.147003 0.808563 0.273346 0.174774 0.810455 0.272522 0.204102 0.812256 0.271820 0.235229 0.814178 0.271027 0.268433 0.815979 0.270264 0.303741 0.817749 0.269501 0.341187 0.819611 0.268799 0.380615 0.821411 0.268066 0.421692 0.823151 0.267395 0.464325 0.824921 0.266693 0.508118 0.826691 0.266022 0.552521 0.828400 0.265350 0.595917 0.830170 0.264771 0.637512 0.831818 0.264160 0.676971 0.833496 0.263733 0.713959 0.835205 0.263733 0.747955 0.836823 0.263733 0.778992 0.838409 0.263733 0.807129 0.840057 0.263733 0.832581 0.841644 0.263733 0.855652 0.843231 0.263733 0.876648 0.844788 0.263733 0.895721 0.846283 0.263733 0.913025 0.847809 0.263733 0.928772 0.849274 0.263733 0.943115 0.850739 0.263733 0.956085 0.852173 0.263733 0.967743 0.853577 0.263733 0.978210 0.854980 0.263733 0.987457 0.856384 0.263733 0.098755 0.832367 0.273376 0.123932 0.834045 0.272614 0.150421 0.835754 0.271851 0.178406 0.837463 0.271027 0.207947 0.839111 0.270294 0.239380 0.840759 0.269531 0.272766 0.842438 0.268829 0.308350 0.844055 0.268097 0.346069 0.845673 0.267395 0.385681 0.847321 0.266693 0.426971 0.848907 0.266052 0.469757 0.850494 0.265411 0.513611 0.852020 0.264801 0.557953 0.853577 0.264160 0.601196 0.855164 0.263733 0.642487 0.856628 0.263733 0.681702 0.858154 0.263733 0.718262 0.859680 0.263733 0.751862 0.861084 0.263733 0.782562 0.862579 0.263733 0.810272 0.863983 0.263733 0.835419 0.865417 0.263733 0.858246 0.866821 0.263733 0.878967 0.868195 0.263733 0.897797 0.869537 0.263733 0.914948 0.870911 0.263733 0.930481 0.872192 0.263733 0.944641 0.873505 0.263733 0.957428 0.874786 0.263733 0.968964 0.876038 0.263733 0.979279 0.877258 0.263733 0.988403 0.878479 0.263733 0.101837 0.857208 0.271851 0.127228 0.858704 0.271057 0.153900 0.860260 0.270325 0.182068 0.861786 0.269531 0.211792 0.863281 0.268860 0.243469 0.864777 0.268127 0.277130 0.866272 0.267456 0.312958 0.867737 0.266724 0.350922 0.869171 0.266052 0.390778 0.870636 0.265411 0.432251 0.872070 0.264801 0.475159 0.873505 0.264191 0.519073 0.874847 0.263733 0.563385 0.876282 0.263733 0.606384 0.877686 0.263733 0.647400 0.878998 0.263733 0.686249 0.880371 0.263733 0.722382 0.881714 0.263733 0.755707 0.883026 0.263733 0.785980 0.884308 0.263733 0.813354 0.885590 0.263733 0.838196 0.886841 0.263733 0.860748 0.888062 0.263733 0.881195 0.889282 0.263733 0.899780 0.890503 0.263733 0.916748 0.891724 0.263733 0.932098 0.892883 0.263733 0.946075 0.894012 0.263733 0.958710 0.895172 0.263733 0.970093 0.896271 0.263733 0.980286 0.897369 0.263733 0.989288 0.898407 0.263733 0.105011 0.879578 0.270325 0.130524 0.880981 0.269592 0.157410 0.882355 0.268860 0.185699 0.883728 0.268127 0.215698 0.885071 0.267456 0.247559 0.886414 0.266724 0.281525 0.887756 0.266083 0.317627 0.889099 0.265442 0.355774 0.890411 0.264801 0.395844 0.891663 0.264221 0.437469 0.892975 0.263733 0.480530 0.894257 0.263733 0.524567 0.895508 0.263733 0.568726 0.896759 0.263733 0.611450 0.898010 0.263733 0.652252 0.899200 0.263733 0.690704 0.900421 0.263733 0.726562 0.901581 0.263733 0.759430 0.902771 0.263733 0.789368 0.903900 0.263733 0.816406 0.905060 0.263733 0.840851 0.906128 0.263733 0.863190 0.907288 0.263733 0.883362 0.908325 0.263733 0.901733 0.909454 0.263733 0.918518 0.910492 0.263733 0.933716 0.911499 0.263733 0.947510 0.912537 0.263733 0.959991 0.913544 0.263733 0.971191 0.914520 0.263733 0.981262 0.915497 0.263733 0.990082 0.916412 0.263733 0.108185 0.899780 0.268890 0.133820 0.901031 0.268158 0.160858 0.902283 0.267487 0.189392 0.903534 0.266754 0.219574 0.904724 0.266113 0.251709 0.905945 0.265472 0.285889 0.907196 0.264832 0.322266 0.908325 0.264221 0.360657 0.909546 0.263733 0.400879 0.910675 0.263733 0.442688 0.911835 0.263733 0.485840 0.912964 0.263733 0.529907 0.914093 0.263733 0.573975 0.915253 0.263733 0.616425 0.916351 0.263733 0.656891 0.917419 0.263733 0.695068 0.918488 0.263733 0.730530 0.919525 0.263733 0.763031 0.920563 0.263733 0.792572 0.921600 0.263733 0.819275 0.922607 0.263733 0.843506 0.923615 0.263733 0.865509 0.924591 0.263733 0.885468 0.925537 0.263733 0.903656 0.926483 0.263733 0.920166 0.927460 0.263733 0.935211 0.928314 0.263733 0.948853 0.929230 0.263733 0.961182 0.930115 0.263733 0.972290 0.930969 0.263733 0.982178 0.931824 0.263733 0.990906 0.932648 0.263733 0.111328 0.918060 0.267487 0.137146 0.919159 0.266815 0.164368 0.920288 0.266113 0.193085 0.921448 0.265472 0.223450 0.922546 0.264862 0.255829 0.923584 0.264252 0.290253 0.924652 0.263733 0.326843 0.925751 0.263733 0.365509 0.926788 0.263733 0.405853 0.927826 0.263733 0.447815 0.928864 0.263733 0.491089 0.929901 0.263733 0.535217 0.930878 0.263733 0.579071 0.931885 0.263733 0.621338 0.932892 0.263733 0.661469 0.933807 0.263733 0.699249 0.934784 0.263733 0.734406 0.935730 0.263733 0.766479 0.936646 0.263733 0.795685 0.937561 0.263733 0.822052 0.938416 0.263733 0.846039 0.939301 0.263733 0.867767 0.940186 0.263733 0.887512 0.941040 0.263733 0.905457 0.941895 0.263733 0.921814 0.942719 0.263733 0.936676 0.943512 0.263733 0.950134 0.944275 0.263733 0.962341 0.945068 0.263733 0.973297 0.945801 0.263733 0.983063 0.946564 0.263733 0.991638 0.947296 0.263733 0.114502 0.934540 0.266144 0.140503 0.935547 0.265533 0.167877 0.936584 0.264862 0.196777 0.937561 0.264252 0.227356 0.938507 0.263733 0.259949 0.939514 0.263733 0.294647 0.940430 0.263733 0.331482 0.941406 0.263733 0.370300 0.942352 0.263733 0.410858 0.943237 0.263733 0.452972 0.944214 0.263733 0.496277 0.945099 0.263733 0.540497 0.945984 0.263733 0.584045 0.946869 0.263733 0.626068 0.947754 0.263733 0.665894 0.948578 0.263733 0.703430 0.949432 0.263733 0.738098 0.950256 0.263733 0.769867 0.951080 0.263733 0.798737 0.951904 0.263733 0.824768 0.952667 0.263733 0.848419 0.953461 0.263733 0.869934 0.954224 0.263733 0.889435 0.954987 0.263733 0.907196 0.955688 0.263733 0.923370 0.956421 0.263733 0.938049 0.957123 0.263733 0.951385 0.957794 0.263733 0.963440 0.958466 0.263733 0.974243 0.959137 0.263733 0.983887 0.959808 0.263733 0.992371 0.960388 0.263733 0.117676 0.949341 0.264893 0.143799 0.950256 0.264282 0.171326 0.951172 0.263733 0.200378 0.952026 0.263733 0.231232 0.952942 0.263733 0.264099 0.953796 0.263733 0.298950 0.954620 0.263733 0.336060 0.955505 0.263733 0.375092 0.956329 0.263733 0.415741 0.957153 0.263733 0.458008 0.957947 0.263733 0.501434 0.958740 0.263733 0.545532 0.959534 0.263733 0.588989 0.960327 0.263733 0.630646 0.961090 0.263733 0.670258 0.961853 0.263733 0.707397 0.962585 0.263733 0.741699 0.963318 0.263733 0.773132 0.964020 0.263733 0.801636 0.964752 0.263733 0.827362 0.965424 0.263733 0.850769 0.966064 0.263733 0.872009 0.966766 0.263733 0.891266 0.967377 0.263733 0.908875 0.968048 0.263733 0.924896 0.968689 0.263733 0.939392 0.969269 0.263733 0.952576 0.969879 0.263733 0.964447 0.970459 0.263733 0.975159 0.971008 0.263733 0.984680 0.971558 0.263733 0.993011 0.972107 0.263733 0.120850 0.962677 0.263733 0.147095 0.963440 0.263733 0.174835 0.964264 0.263733 0.204071 0.965027 0.263733 0.235107 0.965820 0.263733 0.268158 0.966583 0.263733 0.303314 0.967285 0.263733 0.340576 0.968048 0.263733 0.379761 0.968811 0.263733 0.420624 0.969513 0.263733 0.462952 0.970245 0.263733 0.506439 0.970947 0.263733 0.550537 0.971649 0.263733 0.593750 0.972290 0.263733 0.635162 0.972992 0.263733 0.674469 0.973633 0.263733 0.711243 0.974304 0.263733 0.745209 0.974915 0.263733 0.776306 0.975525 0.263733 0.804413 0.976135 0.263733 0.829865 0.976746 0.263733 0.852997 0.977325 0.263733 0.873993 0.977875 0.263733 0.893097 0.978455 0.263733 0.910461 0.979004 0.263733 0.926270 0.979523 0.263733 0.940674 0.980042 0.263733 0.953705 0.980560 0.263733 0.965454 0.981049 0.263733 0.976044 0.981506 0.263733 0.985443 0.982025 0.263733 0.993683 0.982483 0.263733 0.041107 0.002350 0.342682 0.062897 0.003082 0.342316 0.085693 0.003845 0.341949 0.109467 0.004608 0.341461 0.134491 0.005432 0.341003 0.160797 0.006256 0.340515 0.188568 0.007141 0.339996 0.218018 0.008026 0.339417 0.249207 0.008911 0.338898 0.282501 0.009888 0.338287 0.317902 0.010864 0.337585 0.355347 0.011810 0.337006 0.394623 0.012848 0.336334 0.435547 0.013916 0.335602 0.477783 0.014984 0.334900 0.521149 0.016052 0.334198 0.564941 0.017212 0.333466 0.607239 0.018311 0.332672 0.647858 0.019470 0.331940 0.686188 0.020630 0.331116 0.722137 0.021851 0.330322 0.755219 0.023071 0.329498 0.785339 0.024353 0.328674 0.812714 0.025604 0.327759 0.837524 0.026855 0.326965 0.860077 0.028137 0.326080 0.880585 0.029510 0.325226 0.899292 0.030853 0.324310 0.916260 0.032196 0.323456 0.931732 0.033600 0.322540 0.945801 0.034943 0.321686 0.958527 0.036377 0.320770 0.042511 0.023438 0.341949 0.064423 0.024261 0.341461 0.087341 0.025085 0.341003 0.111267 0.025909 0.340546 0.136475 0.026825 0.340027 0.162903 0.027771 0.339478 0.190887 0.028717 0.338898 0.220551 0.029694 0.338287 0.251953 0.030701 0.337646 0.285492 0.031708 0.337006 0.321136 0.032776 0.336334 0.358887 0.033844 0.335693 0.398315 0.034973 0.334930 0.439484 0.036102 0.334229 0.481934 0.037262 0.333466 0.525482 0.038422 0.332672 0.569153 0.039612 0.331970 0.611481 0.040863 0.331146 0.651947 0.042114 0.330353 0.690125 0.043335 0.329529 0.725769 0.044647 0.328674 0.758636 0.045990 0.327850 0.788452 0.047302 0.326996 0.815582 0.048676 0.326141 0.840179 0.050049 0.325287 0.862457 0.051422 0.324371 0.882812 0.052856 0.323456 0.901276 0.054260 0.322601 0.918152 0.055725 0.321716 0.933441 0.057190 0.320770 0.947357 0.058655 0.319946 0.959961 0.060181 0.318970 0.044067 0.045471 0.341064 0.066101 0.046387 0.340546 0.089081 0.047302 0.340027 0.113190 0.048248 0.339478 0.138550 0.049255 0.338928 0.165161 0.050232 0.338318 0.193329 0.051300 0.337677 0.223175 0.052399 0.337006 0.254852 0.053436 0.336365 0.288666 0.054565 0.335693 0.324646 0.055756 0.334930 0.362488 0.056915 0.334229 0.402283 0.058136 0.333496 0.443573 0.059357 0.332703 0.486237 0.060608 0.331970 0.529968 0.061890 0.331146 0.573608 0.063171 0.330414 0.615814 0.064484 0.329529 0.656158 0.065826 0.328674 0.694092 0.067200 0.327881 0.729523 0.068604 0.327026 0.762054 0.070007 0.326141 0.791656 0.071411 0.325317 0.818481 0.072845 0.324402 0.842804 0.074371 0.323547 0.864929 0.075836 0.322632 0.885071 0.077362 0.321716 0.903320 0.078857 0.320831 0.920013 0.080414 0.319946 0.935211 0.081970 0.318970 0.948944 0.083527 0.318085 0.961395 0.085114 0.317200 0.045715 0.068573 0.340027 0.067871 0.069550 0.339478 0.090973 0.070557 0.338959 0.115265 0.071655 0.338318 0.140747 0.072723 0.337677 0.167542 0.073853 0.337067 0.195923 0.074982 0.336365 0.225983 0.076172 0.335693 0.257904 0.077362 0.335022 0.291962 0.078583 0.334259 0.328186 0.079865 0.333496 0.366364 0.081116 0.332764 0.406372 0.082428 0.332001 0.447876 0.083710 0.331207 0.490753 0.085083 0.330414 0.534637 0.086487 0.329559 0.578186 0.087891 0.328735 0.620270 0.089294 0.327881 0.660400 0.090759 0.327026 0.698151 0.092194 0.326172 0.733307 0.093689 0.325317 0.765594 0.095215 0.324402 0.794830 0.096741 0.323578 0.821411 0.098328 0.322632 0.845459 0.099854 0.321747 0.867401 0.101471 0.320862 0.887299 0.103058 0.319977 0.905426 0.104706 0.319092 0.921936 0.106354 0.318115 0.936920 0.108063 0.317230 0.950531 0.109650 0.316345 0.962860 0.111389 0.315430 0.047424 0.092834 0.338959 0.069763 0.093964 0.338348 0.092987 0.095062 0.337738 0.117432 0.096222 0.337097 0.143066 0.097443 0.336395 0.170074 0.098633 0.335724 0.198669 0.099915 0.335022 0.228912 0.101166 0.334320 0.261108 0.102478 0.333527 0.295471 0.103790 0.332764 0.331940 0.105194 0.332001 0.370300 0.106537 0.331238 0.410553 0.108002 0.330444 0.452301 0.109406 0.329620 0.495392 0.110901 0.328735 0.539368 0.112396 0.327911 0.582855 0.113861 0.327057 0.624817 0.115417 0.326202 0.664764 0.116974 0.325348 0.702209 0.118561 0.324463 0.737152 0.120148 0.323578 0.769104 0.121796 0.322662 0.798065 0.123444 0.321777 0.824371 0.125122 0.320862 0.848206 0.126770 0.320007 0.869843 0.128479 0.319092 0.889557 0.130188 0.318115 0.907501 0.131927 0.317261 0.923798 0.133698 0.316345 0.938690 0.135468 0.315460 0.952118 0.137268 0.314575 0.964294 0.139069 0.313629 0.049316 0.118408 0.337738 0.071716 0.119629 0.337097 0.095154 0.120880 0.336456 0.119690 0.122162 0.335754 0.145508 0.123505 0.335052 0.172729 0.124786 0.334320 0.201447 0.126129 0.333557 0.231995 0.127594 0.332825 0.264465 0.128967 0.332062 0.299072 0.130432 0.331238 0.335754 0.131897 0.330475 0.374481 0.133423 0.329620 0.414978 0.134949 0.328796 0.456909 0.136505 0.327942 0.500122 0.138092 0.327087 0.544220 0.139709 0.326202 0.587616 0.141327 0.325378 0.629486 0.142975 0.324493 0.669159 0.144684 0.323608 0.706421 0.146362 0.322693 0.741028 0.148102 0.321777 0.772614 0.149841 0.320892 0.801331 0.151581 0.320038 0.827332 0.153412 0.319122 0.850891 0.155182 0.318176 0.872375 0.157013 0.317291 0.891846 0.158905 0.316376 0.909576 0.160736 0.315491 0.925751 0.162628 0.314575 0.940399 0.164551 0.313629 0.953705 0.166443 0.312744 0.965698 0.168427 0.311859 0.051239 0.145447 0.336456 0.073822 0.146790 0.335754 0.097382 0.148132 0.335083 0.122101 0.149536 0.334351 0.148102 0.151001 0.333557 0.175446 0.152435 0.332855 0.204437 0.153931 0.332062 0.235168 0.155457 0.331268 0.267883 0.157013 0.330475 0.302795 0.158600 0.329651 0.339783 0.160187 0.328796 0.378784 0.161835 0.328033 0.419464 0.163483 0.327087 0.461609 0.165192 0.326233 0.505035 0.166870 0.325378 0.549194 0.168640 0.324493 0.592499 0.170410 0.323639 0.634125 0.172211 0.322693 0.673645 0.174042 0.321869 0.710632 0.175812 0.320923 0.744904 0.177704 0.320038 0.776184 0.179565 0.319153 0.804565 0.181488 0.318237 0.830322 0.183411 0.317291 0.853607 0.185364 0.316406 0.874817 0.187317 0.315521 0.894135 0.189331 0.314606 0.911652 0.191284 0.313660 0.927643 0.193329 0.312805 0.942139 0.195404 0.311920 0.955261 0.197449 0.311035 0.967133 0.199524 0.310120 0.053314 0.174072 0.335083 0.075989 0.175568 0.334351 0.099701 0.177063 0.333618 0.124603 0.178589 0.332855 0.150787 0.180176 0.332123 0.178345 0.181763 0.331329 0.207550 0.183411 0.330505 0.238495 0.185059 0.329712 0.271545 0.186768 0.328857 0.306702 0.188507 0.328033 0.343964 0.190216 0.327179 0.383148 0.192017 0.326324 0.424103 0.193817 0.325409 0.466431 0.195648 0.324524 0.510071 0.197540 0.323639 0.554260 0.199432 0.322784 0.597412 0.201294 0.321899 0.638885 0.203247 0.320923 0.678192 0.205261 0.320068 0.714844 0.207184 0.319153 0.748810 0.209229 0.318237 0.779755 0.211212 0.317352 0.807831 0.213318 0.316406 0.833313 0.215393 0.315521 0.856323 0.217468 0.314636 0.877319 0.219574 0.313751 0.896393 0.221741 0.312805 0.913727 0.223846 0.311951 0.929535 0.226044 0.311035 0.943848 0.228210 0.310181 0.956818 0.230438 0.309326 0.968506 0.232666 0.308441 0.055450 0.204559 0.333618 0.078278 0.206177 0.332886 0.102112 0.207825 0.332153 0.127197 0.209534 0.331329 0.153534 0.211243 0.330505 0.181305 0.212952 0.329712 0.210724 0.214813 0.328857 0.241943 0.216553 0.328064 0.275269 0.218445 0.327209 0.310730 0.220337 0.326324 0.348206 0.222260 0.325500 0.387695 0.224182 0.324554 0.428894 0.226166 0.323669 0.471405 0.228149 0.322815 0.515137 0.230164 0.321930 0.559387 0.232269 0.320984 0.602417 0.234283 0.320099 0.643677 0.236389 0.319183 0.682648 0.238495 0.318298 0.719116 0.240662 0.317413 0.752747 0.242889 0.316498 0.783356 0.245026 0.315582 0.811127 0.247284 0.314636 0.836243 0.249512 0.313782 0.859039 0.251740 0.312866 0.879791 0.254059 0.311951 0.898651 0.256409 0.311096 0.915802 0.258698 0.310211 0.931396 0.261047 0.309357 0.945557 0.263336 0.308502 0.958374 0.265747 0.307617 0.969910 0.268158 0.306763 0.057678 0.237091 0.332153 0.080658 0.238892 0.331329 0.104675 0.240662 0.330566 0.129883 0.242523 0.329742 0.156372 0.244415 0.328949 0.184418 0.246307 0.328064 0.214020 0.248352 0.327209 0.245544 0.250305 0.326355 0.279114 0.252350 0.325500 0.314850 0.254425 0.324554 0.352631 0.256470 0.323700 0.392365 0.258636 0.322845 0.433777 0.260773 0.321930 0.476501 0.262909 0.321014 0.520386 0.265076 0.320099 0.564545 0.267334 0.319244 0.607452 0.269592 0.318298 0.648499 0.271912 0.317413 0.687225 0.274139 0.316528 0.723358 0.276550 0.315613 0.756683 0.278931 0.314667 0.786896 0.281250 0.313812 0.814362 0.283691 0.312897 0.839203 0.286072 0.311981 0.861755 0.288513 0.311127 0.882233 0.290985 0.310242 0.900879 0.293457 0.309357 0.917847 0.295990 0.308502 0.933258 0.298492 0.307617 0.947235 0.300995 0.306793 0.959900 0.303589 0.306000 0.971252 0.306152 0.305084 0.060028 0.271912 0.330566 0.083130 0.273865 0.329742 0.107269 0.275879 0.328949 0.132660 0.277924 0.328094 0.159363 0.279999 0.327240 0.187592 0.282104 0.326385 0.217499 0.284302 0.325531 0.249207 0.286407 0.324677 0.283020 0.288666 0.323792 0.319122 0.290894 0.322845 0.357178 0.293152 0.321960 0.397125 0.295502 0.321075 0.438690 0.297852 0.320190 0.481720 0.300201 0.319305 0.525757 0.302643 0.318329 0.569824 0.304962 0.317444 0.612579 0.307434 0.316528 0.653381 0.309937 0.315613 0.691772 0.312408 0.314697 0.727631 0.314911 0.313812 0.760559 0.317474 0.312897 0.790497 0.320007 0.312042 0.817566 0.322601 0.311157 0.842163 0.325287 0.310242 0.864441 0.327759 0.309387 0.884674 0.330475 0.308533 0.903107 0.333069 0.307678 0.919861 0.335754 0.306824 0.935120 0.338501 0.306000 0.948914 0.341125 0.305145 0.961395 0.343842 0.304321 0.972626 0.346619 0.303497 0.062378 0.309296 0.328949 0.085632 0.311371 0.328125 0.109985 0.313599 0.327271 0.135529 0.315857 0.326385 0.162415 0.318085 0.325562 0.190887 0.320435 0.324677 0.220978 0.322784 0.323792 0.252991 0.325134 0.322876 0.287140 0.327515 0.321991 0.323456 0.329987 0.321075 0.361755 0.332397 0.320221 0.401978 0.334900 0.319305 0.443726 0.337402 0.318390 0.486938 0.339996 0.317474 0.531097 0.342499 0.316559 0.575134 0.345123 0.315704 0.617676 0.347717 0.314728 0.658264 0.350464 0.313843 0.696381 0.353058 0.312927 0.731873 0.355743 0.312073 0.764496 0.358521 0.311157 0.794006 0.361206 0.310272 0.820801 0.363922 0.309418 0.845093 0.366730 0.308533 0.867096 0.369476 0.307678 0.887115 0.372284 0.306824 0.905334 0.375000 0.306030 0.921906 0.377869 0.305176 0.936920 0.380737 0.304352 0.950562 0.383514 0.303528 0.962891 0.386414 0.302765 0.973969 0.389313 0.302002 0.064880 0.349060 0.327271 0.088287 0.351379 0.326416 0.112732 0.353729 0.325592 0.138519 0.356201 0.324707 0.165619 0.358612 0.323822 0.194214 0.361115 0.322968 0.224609 0.363617 0.321991 0.256866 0.366180 0.321106 0.291321 0.368744 0.320221 0.327911 0.371368 0.319336 0.366516 0.373993 0.318390 0.406982 0.376648 0.317474 0.448975 0.379333 0.316589 0.492249 0.382019 0.315704 0.536591 0.384796 0.314728 0.580444 0.387512 0.313904 0.622833 0.390320 0.312958 0.663116 0.393158 0.312073 0.700989 0.395905 0.311218 0.736145 0.398773 0.310303 0.768372 0.401672 0.309418 0.797546 0.404541 0.308624 0.823975 0.407410 0.307678 0.847961 0.410278 0.306885 0.869720 0.413208 0.306030 0.889526 0.416138 0.305176 0.907501 0.419098 0.304352 0.923859 0.422028 0.303589 0.938721 0.424988 0.302765 0.952209 0.427948 0.302063 0.964355 0.430908 0.301239 0.975281 0.433929 0.300476 0.067444 0.391052 0.325592 0.090942 0.393555 0.324738 0.115631 0.396088 0.323853 0.141571 0.398712 0.322968 0.168793 0.401306 0.322021 0.197693 0.404022 0.321136 0.228302 0.406677 0.320251 0.260834 0.409332 0.319366 0.295593 0.412109 0.318420 0.332428 0.414825 0.317566 0.371307 0.417633 0.316620 0.412048 0.420471 0.315735 0.454193 0.423248 0.314819 0.497681 0.426117 0.313904 0.542114 0.429077 0.312958 0.585785 0.431946 0.312103 0.627991 0.434845 0.311279 0.668030 0.437866 0.310303 0.705566 0.440735 0.309448 0.740387 0.443695 0.308624 0.772217 0.446747 0.307709 0.801056 0.449707 0.306915 0.827179 0.452698 0.306061 0.850800 0.455688 0.305206 0.872375 0.458710 0.304382 0.891907 0.461792 0.303589 0.909637 0.464813 0.302795 0.925842 0.467865 0.302063 0.940491 0.470947 0.301239 0.953796 0.473938 0.300507 0.965820 0.477020 0.299774 0.976562 0.480164 0.299103 0.070099 0.435028 0.323853 0.093750 0.437714 0.322998 0.118591 0.440430 0.322113 0.144653 0.443176 0.321136 0.172150 0.445923 0.320282 0.201233 0.448730 0.319366 0.232086 0.451538 0.318481 0.264893 0.454376 0.317566 0.299957 0.457275 0.316620 0.337067 0.460144 0.315765 0.376251 0.463104 0.314850 0.417145 0.466064 0.313934 0.459503 0.468964 0.313080 0.503204 0.471924 0.312164 0.547638 0.474976 0.311279 0.591187 0.477966 0.310364 0.633148 0.481079 0.309540 0.672882 0.484070 0.308655 0.710083 0.487091 0.307770 0.744568 0.490173 0.306915 0.776001 0.493256 0.306091 0.804474 0.496368 0.305237 0.830322 0.499512 0.304413 0.853638 0.502533 0.303619 0.874908 0.505707 0.302887 0.894257 0.508820 0.302094 0.911774 0.511841 0.301300 0.927765 0.515015 0.300537 0.942261 0.518188 0.299835 0.955383 0.521240 0.299133 0.967224 0.524384 0.298401 0.977783 0.527435 0.297760 0.072754 0.480682 0.322113 0.096588 0.483490 0.321198 0.121582 0.486328 0.320312 0.147888 0.489227 0.319397 0.175568 0.492065 0.318542 0.204895 0.495026 0.317627 0.235962 0.497894 0.316650 0.269073 0.500946 0.315765 0.304382 0.503906 0.314850 0.341797 0.506897 0.313995 0.381226 0.509918 0.313080 0.422363 0.513000 0.312164 0.464905 0.515961 0.311310 0.508728 0.519135 0.310425 0.553223 0.522217 0.309540 0.596588 0.525269 0.308716 0.638306 0.528442 0.307770 0.677795 0.531586 0.306946 0.714600 0.534668 0.306122 0.748718 0.537842 0.305237 0.779755 0.540894 0.304474 0.807892 0.544067 0.303650 0.833374 0.547211 0.302887 0.856476 0.550293 0.302094 0.877441 0.553406 0.301331 0.896545 0.556549 0.300537 0.913849 0.559570 0.299866 0.929688 0.562622 0.299133 0.943970 0.565735 0.298462 0.956909 0.568756 0.297760 0.968597 0.571838 0.297119 0.979004 0.574768 0.296478 0.075500 0.527679 0.320312 0.099487 0.530548 0.319427 0.124695 0.533539 0.318542 0.151154 0.536499 0.317627 0.179016 0.539459 0.316742 0.208557 0.542480 0.315826 0.239960 0.545502 0.314880 0.273315 0.548462 0.314026 0.308929 0.551544 0.313110 0.346619 0.554504 0.312195 0.386230 0.557587 0.311340 0.427612 0.560608 0.310425 0.470337 0.563660 0.309570 0.514313 0.566681 0.308716 0.558777 0.569794 0.307800 0.601898 0.572815 0.306976 0.643402 0.575806 0.306122 0.682587 0.578949 0.305298 0.719116 0.581909 0.304474 0.752838 0.584991 0.303650 0.783478 0.587982 0.302917 0.811249 0.591003 0.302124 0.836456 0.594025 0.301331 0.859222 0.597015 0.300568 0.879974 0.600006 0.299866 0.898834 0.603027 0.299133 0.915955 0.605927 0.298462 0.931488 0.608887 0.297821 0.945679 0.611847 0.297119 0.958435 0.614655 0.296539 0.969940 0.617615 0.296448 0.980225 0.620422 0.296448 0.078339 0.574738 0.318573 0.102478 0.577545 0.317657 0.127808 0.580444 0.316742 0.154449 0.583435 0.315826 0.182556 0.586273 0.314911 0.212311 0.589233 0.314026 0.243927 0.592102 0.313141 0.277618 0.595093 0.312225 0.313538 0.597992 0.311340 0.351471 0.600922 0.310455 0.391357 0.603882 0.309601 0.432922 0.606842 0.308746 0.475861 0.609741 0.307861 0.519928 0.612732 0.306976 0.564331 0.615662 0.306152 0.607300 0.618591 0.305359 0.648499 0.621521 0.304535 0.687347 0.624481 0.303711 0.723541 0.627319 0.302948 0.756866 0.630249 0.302124 0.787140 0.633087 0.301361 0.814606 0.635925 0.300659 0.839417 0.638855 0.299866 0.861938 0.641632 0.299164 0.882416 0.644470 0.298492 0.901031 0.647278 0.297821 0.917969 0.650055 0.297180 0.933350 0.652802 0.296539 0.947327 0.655579 0.296448 0.959930 0.658264 0.296448 0.971252 0.660980 0.296448 0.981384 0.663635 0.296448 0.081238 0.620117 0.316772 0.105499 0.622864 0.315887 0.130981 0.625702 0.314941 0.157837 0.628540 0.314056 0.186127 0.631256 0.313141 0.216187 0.634094 0.312225 0.248016 0.636871 0.311401 0.281982 0.639740 0.310486 0.318176 0.642548 0.309631 0.356384 0.645294 0.308777 0.396515 0.648163 0.307892 0.438293 0.650970 0.307037 0.481354 0.653687 0.306244 0.525574 0.656494 0.305359 0.569824 0.659302 0.304535 0.612610 0.662048 0.303741 0.653534 0.664795 0.302948 0.692017 0.667511 0.302155 0.727905 0.670258 0.301422 0.760864 0.673004 0.300659 0.790741 0.675690 0.299927 0.817810 0.678345 0.299194 0.842377 0.681030 0.298492 0.864594 0.683655 0.297852 0.884857 0.686310 0.297180 0.903229 0.688904 0.296570 0.919922 0.691467 0.296448 0.935150 0.694031 0.296448 0.948914 0.696533 0.296448 0.961365 0.699036 0.296448 0.972534 0.701569 0.296448 0.982513 0.703979 0.296448 0.084137 0.663239 0.314941 0.108551 0.665894 0.314087 0.134247 0.668549 0.313171 0.161224 0.671143 0.312317 0.189789 0.673859 0.311401 0.220032 0.676514 0.310516 0.252197 0.679169 0.309662 0.286407 0.681854 0.308777 0.322876 0.684509 0.307892 0.361389 0.687103 0.307068 0.401733 0.689758 0.306244 0.443695 0.692383 0.305389 0.486908 0.694946 0.304565 0.531189 0.697601 0.303741 0.575317 0.700104 0.302979 0.617920 0.702667 0.302216 0.658508 0.705292 0.301422 0.696716 0.707764 0.300690 0.732208 0.710327 0.299957 0.764801 0.712860 0.299194 0.794281 0.715302 0.298523 0.821014 0.717804 0.297852 0.845245 0.720245 0.297211 0.867218 0.722656 0.296570 0.887177 0.725067 0.296448 0.905365 0.727478 0.296448 0.921875 0.729797 0.296448 0.936859 0.732147 0.296448 0.950470 0.734406 0.296448 0.962769 0.736694 0.296448 0.973816 0.738953 0.296448 0.983612 0.741119 0.296448 0.087097 0.703705 0.313263 0.111664 0.706146 0.312317 0.137512 0.708679 0.311432 0.164703 0.711090 0.310577 0.193512 0.713623 0.309662 0.223999 0.716064 0.308807 0.256348 0.718567 0.307953 0.290894 0.721008 0.307068 0.327667 0.723480 0.306274 0.366364 0.725861 0.305420 0.406952 0.728302 0.304596 0.449066 0.730743 0.303772 0.492493 0.733124 0.303040 0.536865 0.735535 0.302216 0.580750 0.737823 0.301453 0.623138 0.740234 0.300690 0.663452 0.742584 0.299957 0.701324 0.744843 0.299286 0.736450 0.747162 0.298553 0.768646 0.749451 0.297913 0.797760 0.751678 0.297241 0.824158 0.753937 0.296600 0.848083 0.756195 0.296448 0.869781 0.758331 0.296448 0.889496 0.760498 0.296448 0.907440 0.762604 0.296448 0.923737 0.764740 0.296448 0.938599 0.766846 0.296448 0.951996 0.768860 0.296448 0.964142 0.770905 0.296448 0.975006 0.772919 0.296448 0.984680 0.774872 0.296448 0.090057 0.740997 0.311523 0.114838 0.743286 0.310577 0.140869 0.745575 0.309692 0.168243 0.747864 0.308868 0.197266 0.750153 0.307983 0.227966 0.752441 0.307129 0.260620 0.754608 0.306305 0.295471 0.756897 0.305420 0.332458 0.759155 0.304596 0.371368 0.761322 0.303833 0.412201 0.763550 0.303040 0.454468 0.765717 0.302246 0.498047 0.767853 0.301453 0.542480 0.770050 0.300720 0.586212 0.772186 0.299988 0.628357 0.774323 0.299286 0.668365 0.776398 0.298553 0.705872 0.778473 0.297943 0.740601 0.780518 0.297241 0.772430 0.782593 0.296600 0.801178 0.784576 0.296448 0.827209 0.786591 0.296448 0.850830 0.788574 0.296448 0.872284 0.790497 0.296448 0.891754 0.792450 0.296448 0.909454 0.794312 0.296448 0.925629 0.796204 0.296448 0.940216 0.798035 0.296448 0.953491 0.799835 0.296448 0.965454 0.801666 0.296448 0.976166 0.803436 0.296448 0.985687 0.805176 0.296448 0.093109 0.774933 0.309753 0.118073 0.777039 0.308868 0.144226 0.779144 0.307983 0.171814 0.781158 0.307159 0.201050 0.783234 0.306305 0.231995 0.785278 0.305450 0.264862 0.787292 0.304657 0.299988 0.789368 0.303833 0.337280 0.791351 0.303070 0.376465 0.793335 0.302277 0.417480 0.795319 0.301483 0.459869 0.797241 0.300751 0.503632 0.799194 0.300018 0.548035 0.801178 0.299316 0.591583 0.803009 0.298615 0.633453 0.804932 0.297943 0.673218 0.806854 0.297272 0.710327 0.808624 0.296631 0.744690 0.810486 0.296448 0.776093 0.812317 0.296448 0.804443 0.814087 0.296448 0.830231 0.815887 0.296448 0.853516 0.817627 0.296448 0.874695 0.819366 0.296448 0.893951 0.821075 0.296448 0.911469 0.822754 0.296448 0.927399 0.824402 0.296448 0.941833 0.826080 0.296448 0.954926 0.827667 0.296448 0.966736 0.829285 0.296448 0.977295 0.830872 0.296448 0.986694 0.832367 0.296448 0.096191 0.805481 0.308014 0.121277 0.807404 0.307159 0.147675 0.809235 0.306335 0.175415 0.811127 0.305481 0.204865 0.812988 0.304688 0.236053 0.814819 0.303864 0.269196 0.816620 0.303070 0.304596 0.818451 0.302277 0.342102 0.820251 0.301575 0.381500 0.822052 0.300751 0.422729 0.823822 0.300018 0.465332 0.825531 0.299347 0.509155 0.827301 0.298615 0.553528 0.829071 0.297943 0.596924 0.830780 0.297272 0.638458 0.832458 0.296631 0.677917 0.834137 0.296448 0.714691 0.835754 0.296448 0.748718 0.837402 0.296448 0.779694 0.839050 0.296448 0.807739 0.840607 0.296448 0.833130 0.842224 0.296448 0.856171 0.843750 0.296448 0.877075 0.845306 0.296448 0.896118 0.846863 0.296448 0.913361 0.848328 0.296448 0.929108 0.849823 0.296448 0.943420 0.851257 0.296448 0.956299 0.852692 0.296448 0.967987 0.854095 0.296448 0.978394 0.855499 0.296448 0.987640 0.856842 0.296448 0.099335 0.832977 0.306366 0.124573 0.834717 0.305481 0.151123 0.836426 0.304688 0.179077 0.838043 0.303894 0.208710 0.839722 0.303101 0.240112 0.841431 0.302338 0.273560 0.843018 0.301575 0.309296 0.844635 0.300781 0.346954 0.846283 0.300110 0.386597 0.847870 0.299347 0.427979 0.849518 0.298645 0.470734 0.851013 0.297974 0.514648 0.852600 0.297302 0.559052 0.854187 0.296661 0.602112 0.855652 0.296448 0.643433 0.857208 0.296448 0.682587 0.858704 0.296448 0.718964 0.860168 0.296448 0.752594 0.861633 0.296448 0.783173 0.863068 0.296448 0.810883 0.864502 0.296448 0.835968 0.865936 0.296448 0.858704 0.867279 0.296448 0.879364 0.868713 0.296448 0.898163 0.870026 0.296448 0.915253 0.871338 0.296448 0.930786 0.872681 0.296448 0.944916 0.873962 0.296448 0.957672 0.875214 0.296448 0.969177 0.876465 0.296448 0.979431 0.877716 0.296448 0.988556 0.878937 0.296448 0.102448 0.857758 0.304718 0.127869 0.859283 0.303894 0.154572 0.860840 0.303162 0.182709 0.862305 0.302399 0.212555 0.863831 0.301605 0.244232 0.865326 0.300781 0.277924 0.866821 0.300110 0.313843 0.868317 0.299377 0.351837 0.869720 0.298645 0.391693 0.871155 0.298004 0.433258 0.872589 0.297302 0.476135 0.873993 0.296692 0.520142 0.875397 0.296448 0.564423 0.876801 0.296448 0.607300 0.878174 0.296448 0.648346 0.879517 0.296448 0.687103 0.880890 0.296448 0.723145 0.882172 0.296448 0.756439 0.883514 0.296448 0.786591 0.884735 0.296448 0.813965 0.886017 0.296448 0.838745 0.887299 0.296448 0.861206 0.888519 0.296448 0.881622 0.889740 0.296448 0.900177 0.890961 0.296448 0.917084 0.892120 0.296448 0.932434 0.893311 0.296448 0.946381 0.894440 0.296448 0.958954 0.895569 0.296448 0.970337 0.896667 0.296448 0.980438 0.897736 0.296448 0.989410 0.898834 0.296448 0.105560 0.880066 0.303162 0.131134 0.881470 0.302399 0.158020 0.882843 0.301605 0.186371 0.884216 0.300812 0.216431 0.885559 0.300140 0.248322 0.886902 0.299377 0.282288 0.888214 0.298676 0.318542 0.889557 0.298004 0.356659 0.890869 0.297363 0.396790 0.892151 0.296692 0.438477 0.893463 0.296448 0.481506 0.894714 0.296448 0.525513 0.895966 0.296448 0.569733 0.897186 0.296448 0.612335 0.898407 0.296448 0.653137 0.899658 0.296448 0.691467 0.900787 0.296448 0.727264 0.902008 0.296448 0.760071 0.903168 0.296448 0.789917 0.904327 0.296448 0.816925 0.905457 0.296448 0.841431 0.906586 0.296448 0.863586 0.907654 0.296448 0.883759 0.908752 0.296448 0.902130 0.909821 0.296448 0.918793 0.910858 0.296448 0.933990 0.911896 0.296448 0.947754 0.912872 0.296448 0.960236 0.913879 0.296448 0.971405 0.914886 0.296448 0.981415 0.915833 0.296448 0.990265 0.916779 0.296448 0.108734 0.900269 0.301636 0.134460 0.901520 0.300812 0.161530 0.902771 0.300140 0.190063 0.903961 0.299438 0.220337 0.905182 0.298676 0.252441 0.906403 0.298065 0.286682 0.907593 0.297363 0.323151 0.908783 0.296692 0.361542 0.909943 0.296448 0.401825 0.911102 0.296448 0.443695 0.912262 0.296448 0.486786 0.913391 0.296448 0.530975 0.914520 0.296448 0.574921 0.915649 0.296448 0.617310 0.916718 0.296448 0.657806 0.917816 0.296448 0.695801 0.918854 0.296448 0.731232 0.919891 0.296448 0.763702 0.920959 0.296448 0.793152 0.921967 0.296448 0.819824 0.923004 0.296448 0.843964 0.923981 0.296448 0.865906 0.924957 0.296448 0.885834 0.925903 0.296448 0.903992 0.926880 0.296448 0.920471 0.927795 0.296448 0.935516 0.928680 0.296448 0.949097 0.929596 0.296448 0.961395 0.930420 0.296448 0.972473 0.931305 0.296448 0.982361 0.932129 0.296448 0.991028 0.932983 0.296448 0.111908 0.918457 0.300171 0.137787 0.919586 0.299438 0.164978 0.920715 0.298737 0.193756 0.921814 0.298065 0.224274 0.922913 0.297424 0.256592 0.923981 0.296753 0.291077 0.925079 0.296448 0.327728 0.926147 0.296448 0.366394 0.927185 0.296448 0.406830 0.928192 0.296448 0.448853 0.929230 0.296448 0.492035 0.930237 0.296448 0.536224 0.931274 0.296448 0.579987 0.932251 0.296448 0.622162 0.933197 0.296448 0.662354 0.934174 0.296448 0.700043 0.935120 0.296448 0.735077 0.936035 0.296448 0.767181 0.936981 0.296448 0.796234 0.937897 0.296448 0.822571 0.938782 0.296448 0.846497 0.939667 0.296448 0.868164 0.940491 0.296448 0.887848 0.941345 0.296448 0.905792 0.942169 0.296448 0.922089 0.942993 0.296448 0.936920 0.943787 0.296448 0.950378 0.944580 0.296448 0.962555 0.945343 0.296448 0.973480 0.946106 0.296448 0.983215 0.946808 0.296448 0.991791 0.947571 0.296448 0.115082 0.934875 0.298798 0.141113 0.935913 0.298096 0.168488 0.936859 0.297455 0.197449 0.937927 0.296814 0.228088 0.938904 0.296448 0.260681 0.939850 0.296448 0.295471 0.940826 0.296448 0.332367 0.941772 0.296448 0.371155 0.942688 0.296448 0.411774 0.943604 0.296448 0.453949 0.944519 0.296448 0.497253 0.945435 0.296448 0.541412 0.946350 0.296448 0.584991 0.947205 0.296448 0.626923 0.948059 0.296448 0.666748 0.948914 0.296448 0.704132 0.949738 0.296448 0.738800 0.950592 0.296448 0.770569 0.951385 0.296448 0.799255 0.952179 0.296448 0.825256 0.952972 0.296448 0.848907 0.953735 0.296448 0.870300 0.954498 0.296448 0.889801 0.955231 0.296448 0.907501 0.955933 0.296448 0.923615 0.956665 0.296448 0.938324 0.957367 0.296448 0.951599 0.958038 0.296448 0.963623 0.958710 0.296448 0.974426 0.959351 0.296448 0.984009 0.959991 0.296448 0.992523 0.960602 0.296448 0.118256 0.949677 0.297455 0.144409 0.950592 0.296814 0.171967 0.951477 0.296448 0.201111 0.952332 0.296448 0.231995 0.953217 0.296448 0.264801 0.954102 0.296448 0.299774 0.954987 0.296448 0.336914 0.955811 0.296448 0.375916 0.956604 0.296448 0.416687 0.957428 0.296448 0.458862 0.958221 0.296448 0.502319 0.959045 0.296448 0.546478 0.959839 0.296448 0.589844 0.960571 0.296448 0.631531 0.961365 0.296448 0.671082 0.962158 0.296448 0.708099 0.962860 0.296448 0.742401 0.963562 0.296448 0.773804 0.964294 0.296448 0.802155 0.964966 0.296448 0.827850 0.965668 0.296448 0.851166 0.966339 0.296448 0.872375 0.967010 0.296448 0.891663 0.967651 0.296448 0.909180 0.968262 0.296448 0.925140 0.968903 0.296448 0.939636 0.969513 0.296448 0.952789 0.970062 0.296448 0.964661 0.970673 0.296448 0.975342 0.971222 0.296448 0.984802 0.971771 0.296448 0.993164 0.972290 0.296448 0.121429 0.962952 0.296448 0.147766 0.963715 0.296448 0.175446 0.964508 0.296448 0.204742 0.965332 0.296448 0.235840 0.966064 0.296448 0.268890 0.966858 0.296448 0.304108 0.967590 0.296448 0.341431 0.968353 0.296448 0.380615 0.969055 0.296448 0.421509 0.969788 0.296448 0.463837 0.970520 0.296448 0.507324 0.971191 0.296448 0.551483 0.971863 0.296448 0.594635 0.972534 0.296448 0.636017 0.973206 0.296448 0.675262 0.973877 0.296448 0.711914 0.974518 0.296448 0.745880 0.975128 0.296448 0.776855 0.975739 0.296448 0.804932 0.976349 0.296448 0.830353 0.976959 0.296448 0.853394 0.977539 0.296448 0.874329 0.978088 0.296448 0.893433 0.978668 0.296448 0.910736 0.979218 0.296448 0.926514 0.979736 0.296448 0.940887 0.980255 0.296448 0.953857 0.980743 0.296448 0.965637 0.981232 0.296448 0.976166 0.981720 0.296448 0.985535 0.982178 0.296448 0.993805 0.982635 0.296448 0.041351 0.002625 0.379456 0.063202 0.003357 0.379059 0.085968 0.004120 0.378601 0.109802 0.004913 0.378174 0.134827 0.005707 0.377655 0.161163 0.006561 0.377106 0.189026 0.007477 0.376526 0.218414 0.008362 0.375977 0.249725 0.009247 0.375336 0.283020 0.010254 0.374725 0.318481 0.011230 0.374023 0.355957 0.012207 0.373383 0.395294 0.013245 0.372650 0.436218 0.014282 0.371918 0.478577 0.015381 0.371155 0.521942 0.016479 0.370422 0.565674 0.017609 0.369629 0.608032 0.018768 0.368805 0.648621 0.019897 0.367981 0.686981 0.021088 0.367126 0.722809 0.022308 0.366333 0.755859 0.023529 0.365448 0.785950 0.024811 0.364563 0.813263 0.026062 0.363647 0.838013 0.027344 0.362793 0.860535 0.028656 0.361847 0.881012 0.029968 0.360992 0.899628 0.031311 0.360016 0.916626 0.032715 0.359131 0.932037 0.034058 0.358185 0.946075 0.035492 0.357208 0.958801 0.036926 0.356293 0.042816 0.023712 0.378632 0.064697 0.024536 0.378174 0.087646 0.025360 0.377655 0.111633 0.026276 0.377106 0.136810 0.027191 0.376556 0.163330 0.028107 0.375977 0.191315 0.029053 0.375336 0.220947 0.030060 0.374756 0.252502 0.031067 0.374054 0.286072 0.032104 0.373383 0.321777 0.033173 0.372681 0.359497 0.034241 0.371948 0.399017 0.035370 0.371216 0.440247 0.036530 0.370453 0.482758 0.037720 0.369629 0.526306 0.038849 0.368835 0.570007 0.040131 0.368042 0.612305 0.041290 0.367188 0.652710 0.042572 0.366364 0.690887 0.043884 0.365448 0.726471 0.045166 0.364594 0.759247 0.046478 0.363739 0.789093 0.047821 0.362823 0.816101 0.049133 0.361877 0.840637 0.050568 0.361023 0.862946 0.051971 0.360016 0.883179 0.053375 0.359161 0.901672 0.054779 0.358185 0.918518 0.056305 0.357239 0.933777 0.057709 0.356323 0.947662 0.059235 0.355377 0.960236 0.060760 0.354370 0.044373 0.045807 0.377655 0.066406 0.046692 0.377136 0.089478 0.047668 0.376556 0.113617 0.048645 0.375977 0.138947 0.049622 0.375366 0.165619 0.050659 0.374756 0.193817 0.051727 0.374054 0.223694 0.052734 0.373413 0.255432 0.053864 0.372681 0.289246 0.054993 0.371948 0.325287 0.056183 0.371216 0.363220 0.057373 0.370453 0.402954 0.058533 0.369690 0.444427 0.059784 0.368896 0.487091 0.061035 0.368042 0.530792 0.062347 0.367249 0.574463 0.063690 0.366394 0.616669 0.065002 0.365509 0.656891 0.066315 0.364624 0.694885 0.067719 0.363770 0.730255 0.069122 0.362823 0.762726 0.070465 0.361908 0.792236 0.071991 0.361023 0.819031 0.073395 0.360107 0.843353 0.074890 0.359161 0.865387 0.076355 0.358215 0.885468 0.077881 0.357300 0.903717 0.079407 0.356323 0.920380 0.080963 0.355377 0.935516 0.082520 0.354431 0.949249 0.084137 0.353485 0.961670 0.085754 0.352509 0.046021 0.068939 0.376587 0.068207 0.069916 0.376007 0.091370 0.070953 0.375366 0.115662 0.072052 0.374756 0.141144 0.073151 0.374115 0.168030 0.074280 0.373474 0.196442 0.075439 0.372772 0.226532 0.076569 0.372040 0.258514 0.077789 0.371246 0.292603 0.079041 0.370483 0.328857 0.080292 0.369690 0.367096 0.081604 0.368896 0.407135 0.082886 0.368103 0.448730 0.084229 0.367249 0.491638 0.085632 0.366394 0.535492 0.086975 0.365540 0.579071 0.088379 0.364624 0.621155 0.089844 0.363770 0.661194 0.091278 0.362854 0.698914 0.092743 0.361908 0.734009 0.094238 0.361053 0.766174 0.095764 0.360107 0.795502 0.097321 0.359222 0.821960 0.098877 0.358246 0.846039 0.100433 0.357300 0.867859 0.102081 0.356384 0.887726 0.103668 0.355438 0.905823 0.105316 0.354492 0.922302 0.106934 0.353516 0.937256 0.108612 0.352570 0.950836 0.110321 0.351562 0.963074 0.112000 0.350677 0.047791 0.093262 0.375427 0.070099 0.094330 0.374786 0.093384 0.095490 0.374115 0.117859 0.096680 0.373474 0.143524 0.097870 0.372772 0.170563 0.099121 0.372040 0.199158 0.100342 0.371307 0.229462 0.101654 0.370514 0.261719 0.102966 0.369720 0.296082 0.104309 0.368927 0.332611 0.105682 0.368134 0.371124 0.107056 0.367279 0.411316 0.108490 0.366425 0.453186 0.109955 0.365601 0.496277 0.111420 0.364685 0.540222 0.112885 0.363800 0.583740 0.114410 0.362946 0.625702 0.115997 0.361969 0.665558 0.117523 0.361115 0.703033 0.119171 0.360168 0.737823 0.120728 0.359253 0.769745 0.122406 0.358246 0.798706 0.124054 0.357361 0.824890 0.125702 0.356415 0.848694 0.127380 0.355469 0.870361 0.129120 0.354492 0.890015 0.130798 0.353577 0.907898 0.132568 0.352600 0.924194 0.134369 0.351654 0.938995 0.136108 0.350708 0.952423 0.137939 0.349762 0.964508 0.139740 0.348785 0.049713 0.118866 0.374176 0.072113 0.120056 0.373535 0.095551 0.121338 0.372803 0.120148 0.122650 0.372070 0.145966 0.123962 0.371307 0.173248 0.125305 0.370514 0.201996 0.126678 0.369781 0.232574 0.128082 0.368988 0.265076 0.129517 0.368134 0.299713 0.130951 0.367310 0.336548 0.132446 0.366425 0.375305 0.134003 0.365601 0.415741 0.135498 0.364716 0.457825 0.137085 0.363831 0.501038 0.138702 0.362946 0.545135 0.140289 0.362030 0.588562 0.141968 0.361115 0.630280 0.143585 0.360199 0.669952 0.145264 0.359253 0.707214 0.147003 0.358337 0.741669 0.148712 0.357391 0.773285 0.150482 0.356415 0.801971 0.152283 0.355499 0.827850 0.154053 0.354523 0.851410 0.155884 0.353577 0.872803 0.157745 0.352631 0.892242 0.159546 0.351685 0.910004 0.161438 0.350708 0.926056 0.163300 0.349792 0.940735 0.165222 0.348846 0.953979 0.167175 0.347839 0.965942 0.169067 0.346954 0.051666 0.145935 0.372803 0.074188 0.147247 0.372070 0.097809 0.148682 0.371338 0.122559 0.150116 0.370514 0.148560 0.151489 0.369781 0.175995 0.153015 0.368988 0.204987 0.154480 0.368164 0.235809 0.156036 0.367310 0.268616 0.157623 0.366455 0.303497 0.159180 0.365631 0.340576 0.160797 0.364716 0.379578 0.162445 0.363831 0.420288 0.164124 0.362976 0.462555 0.165833 0.362061 0.505951 0.167511 0.361176 0.550079 0.169281 0.360199 0.593475 0.171082 0.359283 0.634979 0.172852 0.358368 0.674469 0.174683 0.357452 0.711395 0.176544 0.356445 0.745575 0.178375 0.355530 0.776855 0.180267 0.354553 0.805206 0.182220 0.353638 0.830841 0.184113 0.352692 0.854126 0.186066 0.351715 0.875305 0.188080 0.350769 0.894531 0.190002 0.349792 0.912048 0.192078 0.348846 0.927979 0.194061 0.347900 0.942444 0.196106 0.346985 0.955566 0.198181 0.346039 0.967346 0.200256 0.345123 0.053711 0.174652 0.371338 0.076385 0.176086 0.370575 0.100159 0.177612 0.369843 0.125061 0.179138 0.369019 0.151276 0.180756 0.368195 0.178894 0.182373 0.367371 0.208099 0.183990 0.366516 0.239166 0.185669 0.365631 0.272217 0.187408 0.364777 0.307404 0.189117 0.363861 0.344757 0.190887 0.363007 0.384033 0.192719 0.362061 0.424957 0.194519 0.361206 0.467407 0.196350 0.360260 0.510956 0.198151 0.359314 0.555237 0.200073 0.358398 0.598389 0.202026 0.357452 0.639740 0.203949 0.356506 0.679016 0.205933 0.355530 0.715637 0.207947 0.354553 0.749542 0.209961 0.353668 0.780457 0.212006 0.352692 0.808441 0.214050 0.351715 0.833801 0.216156 0.350800 0.856842 0.218231 0.349823 0.877747 0.220337 0.348938 0.896790 0.222504 0.347961 0.914124 0.224670 0.346985 0.929840 0.226837 0.346069 0.944153 0.229034 0.345184 0.957123 0.231293 0.344208 0.968781 0.233490 0.343353 0.055878 0.205170 0.369843 0.078674 0.206787 0.369019 0.102600 0.208435 0.368195 0.127686 0.210114 0.367401 0.154053 0.211853 0.366516 0.181885 0.213654 0.365662 0.211304 0.215424 0.364807 0.242645 0.217285 0.363922 0.275970 0.219147 0.363007 0.311432 0.220978 0.362091 0.349060 0.222961 0.361206 0.388580 0.224884 0.360260 0.429718 0.226868 0.359375 0.472382 0.228882 0.358398 0.516083 0.230865 0.357483 0.560364 0.232971 0.356506 0.603394 0.235077 0.355591 0.644501 0.237152 0.354614 0.683502 0.239319 0.353668 0.719910 0.241486 0.352722 0.753448 0.243622 0.351746 0.784027 0.245850 0.350800 0.811737 0.248108 0.349823 0.836792 0.250336 0.348938 0.859589 0.252625 0.347961 0.880219 0.254852 0.347046 0.899048 0.257202 0.346069 0.916199 0.259552 0.345184 0.931732 0.261871 0.344269 0.945862 0.264252 0.343353 0.958649 0.266632 0.342438 0.970154 0.269012 0.341583 0.058105 0.237701 0.368286 0.081085 0.239502 0.367401 0.105133 0.241364 0.366577 0.130371 0.243225 0.365723 0.156952 0.245117 0.364807 0.184998 0.247070 0.363922 0.214691 0.249084 0.363037 0.246185 0.251038 0.362122 0.279846 0.253082 0.361237 0.315613 0.255127 0.360321 0.353516 0.257233 0.359375 0.393188 0.259338 0.358429 0.434631 0.261505 0.357513 0.477478 0.263733 0.356567 0.521332 0.265930 0.355652 0.565552 0.268158 0.354645 0.608459 0.270416 0.353699 0.649384 0.272705 0.352783 0.688080 0.275055 0.351837 0.724182 0.277405 0.350830 0.757416 0.279724 0.349915 0.787598 0.282166 0.348969 0.814911 0.284515 0.347992 0.839722 0.286987 0.347107 0.862244 0.289429 0.346130 0.882660 0.291870 0.345215 0.901306 0.294434 0.344330 0.918213 0.296906 0.343414 0.933594 0.299377 0.342468 0.947571 0.301971 0.341583 0.960175 0.304535 0.340729 0.971527 0.307068 0.339844 0.060425 0.272614 0.366608 0.083557 0.274597 0.365784 0.107788 0.276672 0.364868 0.133179 0.278687 0.363983 0.159943 0.280762 0.363129 0.188232 0.282928 0.362122 0.218109 0.285095 0.361267 0.249939 0.287262 0.360352 0.283813 0.289490 0.359406 0.319855 0.291718 0.358521 0.358032 0.294067 0.357513 0.397949 0.296326 0.356598 0.439667 0.298676 0.355652 0.482666 0.301086 0.354706 0.526703 0.303467 0.353729 0.570831 0.305878 0.352783 0.613556 0.308350 0.351837 0.654266 0.310852 0.350861 0.692719 0.313354 0.349945 0.728455 0.315887 0.348969 0.761292 0.318390 0.348022 0.791168 0.320984 0.347107 0.818146 0.323547 0.346191 0.842682 0.326172 0.345245 0.864929 0.328796 0.344330 0.885132 0.331421 0.343475 0.903534 0.334076 0.342499 0.920258 0.336792 0.341614 0.935455 0.339417 0.340759 0.949219 0.342133 0.339935 0.961700 0.344910 0.339020 0.972870 0.347565 0.338226 0.062805 0.309998 0.364929 0.086121 0.312225 0.364014 0.110535 0.314423 0.363129 0.136047 0.316620 0.362213 0.163025 0.318970 0.361267 0.191498 0.321289 0.360352 0.221649 0.323608 0.359467 0.253723 0.325989 0.358521 0.287903 0.328400 0.357544 0.324280 0.330841 0.356628 0.362671 0.333313 0.355682 0.402863 0.335785 0.354736 0.444763 0.338348 0.353760 0.487946 0.340942 0.352814 0.532104 0.343506 0.351898 0.576141 0.346069 0.350922 0.618683 0.348755 0.349976 0.659119 0.351379 0.348999 0.697266 0.354095 0.348053 0.732635 0.356750 0.347137 0.765167 0.359467 0.346222 0.794708 0.362213 0.345245 0.821411 0.364929 0.344360 0.845612 0.367737 0.343475 0.867615 0.370514 0.342499 0.887573 0.373322 0.341644 0.905731 0.376099 0.340790 0.922272 0.378967 0.339935 0.937286 0.381775 0.339081 0.950867 0.384613 0.338226 0.963135 0.387451 0.337402 0.974182 0.390320 0.336578 0.065338 0.349915 0.363159 0.088776 0.352234 0.362244 0.113312 0.354645 0.361359 0.139038 0.357117 0.360382 0.166168 0.359528 0.359467 0.194916 0.362061 0.358551 0.225250 0.364563 0.357605 0.257629 0.367126 0.356628 0.292053 0.369690 0.355713 0.328705 0.372284 0.354736 0.367401 0.374969 0.353760 0.407867 0.377625 0.352875 0.449951 0.380310 0.351898 0.493286 0.383057 0.350922 0.537567 0.385773 0.350006 0.581512 0.388519 0.349060 0.623840 0.391357 0.348053 0.664001 0.394135 0.347168 0.701874 0.396973 0.346222 0.736938 0.399780 0.345276 0.769073 0.402710 0.344391 0.798248 0.405548 0.343506 0.824585 0.408447 0.342590 0.848480 0.411377 0.341736 0.870209 0.414337 0.340790 0.889954 0.417206 0.339966 0.907928 0.420166 0.339081 0.924255 0.423126 0.338287 0.939056 0.426056 0.337433 0.952515 0.429016 0.336609 0.964630 0.431976 0.335785 0.975525 0.434967 0.335052 0.067932 0.391968 0.361389 0.091461 0.394501 0.360443 0.116211 0.397125 0.359497 0.142120 0.399628 0.358582 0.169434 0.402344 0.357605 0.198334 0.404907 0.356659 0.229004 0.407623 0.355743 0.261627 0.410370 0.354797 0.296356 0.413086 0.353851 0.333313 0.415894 0.352875 0.372253 0.418732 0.351929 0.412933 0.421448 0.350983 0.455231 0.424347 0.350006 0.498749 0.427246 0.349060 0.543091 0.430084 0.348145 0.586853 0.433014 0.347168 0.628998 0.435974 0.346252 0.668884 0.438843 0.345367 0.706451 0.441864 0.344391 0.741119 0.444763 0.343536 0.772919 0.447784 0.342621 0.801727 0.450775 0.341736 0.827728 0.453827 0.340851 0.851349 0.456879 0.339996 0.872833 0.459869 0.339142 0.892334 0.462921 0.338318 0.910095 0.465942 0.337433 0.926208 0.469025 0.336609 0.940826 0.472046 0.335876 0.954102 0.475128 0.335083 0.966064 0.478088 0.334320 0.976776 0.481232 0.333527 0.070526 0.436005 0.359528 0.094269 0.438690 0.358582 0.119171 0.441437 0.357666 0.145233 0.444183 0.356750 0.172791 0.446960 0.355743 0.201904 0.449707 0.354858 0.232819 0.452606 0.353882 0.265717 0.455414 0.352905 0.300720 0.458313 0.351990 0.337952 0.461243 0.351013 0.377167 0.464203 0.350067 0.418060 0.467072 0.349091 0.460571 0.470123 0.348175 0.504242 0.473114 0.347198 0.548645 0.476044 0.346283 0.592224 0.479126 0.345367 0.634064 0.482086 0.344513 0.673767 0.485138 0.343536 0.710999 0.488281 0.342621 0.745270 0.491302 0.341766 0.776703 0.494415 0.340881 0.805145 0.497498 0.339996 0.830872 0.500580 0.339172 0.854187 0.503723 0.338318 0.875397 0.506805 0.337494 0.894653 0.509918 0.336639 0.912170 0.513031 0.335876 0.928070 0.516144 0.335083 0.942566 0.519257 0.334320 0.955688 0.522461 0.333557 0.967468 0.525421 0.332855 0.978027 0.528595 0.332184 0.073242 0.481720 0.357697 0.097107 0.484528 0.356750 0.122131 0.487366 0.355774 0.148438 0.490265 0.354858 0.176208 0.493134 0.353912 0.205536 0.496094 0.352936 0.236694 0.499054 0.351990 0.269897 0.502014 0.351013 0.305206 0.505005 0.350098 0.342682 0.507996 0.349121 0.382172 0.511078 0.348175 0.423279 0.514069 0.347290 0.465942 0.517181 0.346283 0.509705 0.520172 0.345428 0.554199 0.523346 0.344513 0.597565 0.526459 0.343567 0.639221 0.529572 0.342651 0.678680 0.532684 0.341797 0.715485 0.535828 0.340881 0.749451 0.538910 0.340027 0.780457 0.542053 0.339172 0.808533 0.545288 0.338318 0.833954 0.548309 0.337524 0.857025 0.551422 0.336700 0.877930 0.554596 0.335907 0.896942 0.557617 0.335114 0.914276 0.560730 0.334351 0.929993 0.563751 0.333618 0.944275 0.566833 0.332886 0.957214 0.569916 0.332184 0.968872 0.572845 0.331512 0.979279 0.575928 0.330994 0.075989 0.528748 0.355835 0.100037 0.531708 0.354889 0.125275 0.534668 0.353912 0.151703 0.537567 0.352966 0.179688 0.540558 0.352020 0.209229 0.543518 0.351044 0.240662 0.546570 0.350128 0.274109 0.549561 0.349182 0.309753 0.552582 0.348206 0.347534 0.555603 0.347321 0.387238 0.558685 0.346313 0.428558 0.561707 0.345428 0.471405 0.564789 0.344543 0.515381 0.567871 0.343567 0.559723 0.570862 0.342682 0.602966 0.573975 0.341797 0.644287 0.576935 0.340942 0.683472 0.580048 0.340057 0.719971 0.583069 0.339203 0.753540 0.586090 0.338348 0.784180 0.589142 0.337524 0.811920 0.592163 0.336700 0.836975 0.595123 0.335938 0.859741 0.598175 0.335114 0.880463 0.601166 0.334412 0.899200 0.604065 0.333618 0.916351 0.607056 0.332886 0.931824 0.609924 0.332214 0.945953 0.612885 0.331512 0.958710 0.615753 0.330994 0.970184 0.618622 0.330994 0.980438 0.621460 0.330994 0.078857 0.575745 0.353943 0.102997 0.578674 0.352966 0.128387 0.581512 0.352081 0.155060 0.584442 0.351135 0.183228 0.587402 0.350128 0.213013 0.590271 0.349213 0.244690 0.593231 0.348267 0.278442 0.596191 0.347321 0.314331 0.599060 0.346405 0.352417 0.602051 0.345459 0.392334 0.605011 0.344543 0.433899 0.607880 0.343628 0.476898 0.610870 0.342773 0.520935 0.613739 0.341827 0.565338 0.616699 0.340973 0.608307 0.619659 0.340057 0.649384 0.622528 0.339233 0.688202 0.625458 0.338379 0.724365 0.628418 0.337555 0.757629 0.631256 0.336731 0.787842 0.634125 0.335938 0.815216 0.637024 0.335205 0.839966 0.639832 0.334412 0.862457 0.642670 0.333679 0.882843 0.645447 0.332947 0.901459 0.648285 0.332214 0.918335 0.651123 0.331512 0.933685 0.653778 0.330994 0.947601 0.656525 0.330994 0.960205 0.659302 0.330994 0.971497 0.661957 0.330994 0.981598 0.664612 0.330994 0.081726 0.621124 0.352081 0.106049 0.623932 0.351135 0.131561 0.626678 0.350189 0.158447 0.629517 0.349213 0.186859 0.632324 0.348267 0.216827 0.635071 0.347351 0.248810 0.637939 0.346405 0.282806 0.640778 0.345459 0.319031 0.643524 0.344574 0.357361 0.646362 0.343658 0.397522 0.649170 0.342773 0.439270 0.651947 0.341919 0.482422 0.654785 0.340973 0.526611 0.657471 0.340088 0.570862 0.660278 0.339233 0.613647 0.663086 0.338440 0.654480 0.665741 0.337555 0.692932 0.668488 0.336731 0.728760 0.671295 0.335968 0.761566 0.673920 0.335236 0.791412 0.676636 0.334442 0.818451 0.679352 0.333679 0.842865 0.681976 0.332947 0.865143 0.684662 0.332275 0.885284 0.687225 0.331573 0.903595 0.689850 0.330994 0.920288 0.692444 0.330994 0.935486 0.694946 0.330994 0.949219 0.697449 0.330994 0.961639 0.700012 0.330994 0.972778 0.702393 0.330994 0.982727 0.704895 0.330994 0.084656 0.664246 0.350250 0.109161 0.666901 0.349243 0.134827 0.669495 0.348328 0.161896 0.672180 0.347412 0.190521 0.674896 0.346436 0.220764 0.677460 0.345551 0.252960 0.680115 0.344604 0.287292 0.682831 0.343719 0.323700 0.685486 0.342804 0.362274 0.688049 0.341919 0.402649 0.690674 0.341003 0.444672 0.693298 0.340149 0.487976 0.695953 0.339294 0.532227 0.698486 0.338501 0.576324 0.701080 0.337585 0.618896 0.703674 0.336792 0.659485 0.706207 0.336060 0.697601 0.708740 0.335236 0.733032 0.711273 0.334442 0.765503 0.713715 0.333710 0.794983 0.716248 0.332977 0.821655 0.718719 0.332275 0.845764 0.721100 0.331604 0.867706 0.723541 0.330994 0.887634 0.725922 0.330994 0.905731 0.728271 0.330994 0.922241 0.730682 0.330994 0.937195 0.732941 0.330994 0.950775 0.735260 0.330994 0.963043 0.737518 0.330994 0.974030 0.739777 0.330994 0.983826 0.741974 0.330994 0.087616 0.704590 0.348358 0.112305 0.707123 0.347412 0.138123 0.709534 0.346466 0.165405 0.712067 0.345581 0.194183 0.714508 0.344604 0.224701 0.716980 0.343750 0.257172 0.719452 0.342834 0.291779 0.721954 0.341949 0.328491 0.724304 0.341064 0.367310 0.726776 0.340149 0.407898 0.729187 0.339355 0.450104 0.731598 0.338501 0.493561 0.734009 0.337646 0.537872 0.736359 0.336823 0.581787 0.738708 0.336060 0.624115 0.741119 0.335266 0.664429 0.743408 0.334473 0.702179 0.745728 0.333710 0.737274 0.748016 0.332977 0.769287 0.750244 0.332306 0.798431 0.752533 0.331604 0.824707 0.754700 0.330994 0.848602 0.756927 0.330994 0.870270 0.759155 0.330994 0.889954 0.761230 0.330994 0.907837 0.763397 0.330994 0.924133 0.765533 0.330994 0.938873 0.767578 0.330994 0.952271 0.769592 0.330994 0.964386 0.771667 0.330994 0.975220 0.773651 0.330994 0.984863 0.775604 0.330994 0.090668 0.741852 0.346497 0.115448 0.744141 0.345581 0.141479 0.746399 0.344635 0.168945 0.748718 0.343750 0.197968 0.751007 0.342834 0.228668 0.753235 0.341980 0.261414 0.755463 0.341064 0.296295 0.757721 0.340210 0.333313 0.759949 0.339355 0.372406 0.762177 0.338501 0.413116 0.764313 0.337646 0.455505 0.766541 0.336823 0.499084 0.768707 0.336060 0.543457 0.770813 0.335266 0.587250 0.772949 0.334473 0.629333 0.775085 0.333740 0.669220 0.777130 0.333038 0.706726 0.779236 0.332306 0.741425 0.781311 0.331604 0.773071 0.783295 0.330994 0.801819 0.785309 0.330994 0.827759 0.787292 0.330994 0.851349 0.789276 0.330994 0.872742 0.791199 0.330994 0.892151 0.793091 0.330994 0.909882 0.795013 0.330994 0.925934 0.796875 0.330994 0.940521 0.798706 0.330994 0.953766 0.800507 0.330994 0.965698 0.802338 0.330994 0.976410 0.804077 0.330994 0.985901 0.805817 0.330994 0.093719 0.775726 0.344696 0.118683 0.777802 0.343781 0.144897 0.779846 0.342865 0.172516 0.781952 0.341980 0.201721 0.783997 0.341095 0.232727 0.786011 0.340240 0.265717 0.788055 0.339386 0.300812 0.790039 0.338562 0.338165 0.792053 0.337677 0.377472 0.794037 0.336884 0.418427 0.795990 0.336121 0.460938 0.797974 0.335297 0.504669 0.799957 0.334534 0.549042 0.801819 0.333801 0.592590 0.803741 0.333069 0.634430 0.805634 0.332367 0.674042 0.807465 0.331635 0.711182 0.809326 0.330994 0.745422 0.811157 0.330994 0.776733 0.812988 0.330994 0.805115 0.814758 0.330994 0.830780 0.816498 0.330994 0.854034 0.818237 0.330994 0.875183 0.820007 0.330994 0.894379 0.821686 0.330994 0.911835 0.823364 0.330994 0.927734 0.825043 0.330994 0.942139 0.826630 0.330994 0.955200 0.828278 0.330994 0.966949 0.829834 0.330994 0.977509 0.831421 0.330994 0.986877 0.832977 0.330994 0.096802 0.806183 0.342926 0.121918 0.808075 0.342010 0.148254 0.809906 0.341125 0.176117 0.811829 0.340240 0.205536 0.813599 0.339417 0.236786 0.815521 0.338562 0.270050 0.817322 0.337677 0.305420 0.819092 0.336914 0.342987 0.820923 0.336121 0.382538 0.822693 0.335327 0.423706 0.824432 0.334564 0.466370 0.826202 0.333801 0.510223 0.827972 0.333069 0.554565 0.829681 0.332397 0.597931 0.831390 0.331635 0.639435 0.833069 0.330994 0.678772 0.834747 0.330994 0.715546 0.836395 0.330994 0.749420 0.837982 0.330994 0.780334 0.839600 0.330994 0.808319 0.841217 0.330994 0.833618 0.842773 0.330994 0.856628 0.844360 0.330994 0.877502 0.845917 0.330994 0.896484 0.847382 0.330994 0.913727 0.848907 0.330994 0.929474 0.850372 0.330994 0.943695 0.851776 0.330994 0.956573 0.853241 0.330994 0.968201 0.854614 0.330994 0.978607 0.856018 0.330994 0.987823 0.857361 0.330994 0.099884 0.833588 0.341125 0.125183 0.835327 0.340271 0.151703 0.837006 0.339417 0.179749 0.838684 0.338562 0.209381 0.840332 0.337769 0.240906 0.841980 0.336914 0.274384 0.843628 0.336121 0.310089 0.845245 0.335327 0.347839 0.846893 0.334564 0.387634 0.848480 0.333832 0.428925 0.850067 0.333130 0.471741 0.851593 0.332397 0.515686 0.853210 0.331696 0.559998 0.854706 0.330994 0.603119 0.856262 0.330994 0.644318 0.857758 0.330994 0.683380 0.859253 0.330994 0.719788 0.860718 0.330994 0.753296 0.862152 0.330994 0.783813 0.863617 0.330994 0.811462 0.865051 0.330994 0.836487 0.866425 0.330994 0.859192 0.867798 0.330994 0.879822 0.869171 0.330994 0.898560 0.870514 0.330994 0.915619 0.871857 0.330994 0.931122 0.873138 0.330994 0.945190 0.874420 0.330994 0.957916 0.875702 0.330994 0.969391 0.876923 0.330994 0.979645 0.878174 0.330994 0.988708 0.879364 0.330994 0.102997 0.858337 0.339478 0.128448 0.859833 0.338623 0.155182 0.861359 0.337769 0.183411 0.862885 0.336945 0.213257 0.864380 0.336151 0.244995 0.865845 0.335388 0.278748 0.867340 0.334595 0.314667 0.868805 0.333862 0.352783 0.870239 0.333130 0.392700 0.871704 0.332428 0.434235 0.873108 0.331757 0.477112 0.874512 0.331085 0.521088 0.875885 0.330994 0.565369 0.877289 0.330994 0.608246 0.878662 0.330994 0.649200 0.880005 0.330994 0.687897 0.881317 0.330994 0.723969 0.882660 0.330994 0.757080 0.883942 0.330994 0.787262 0.885254 0.330994 0.814514 0.886505 0.330994 0.839203 0.887756 0.330994 0.861633 0.888977 0.330994 0.881989 0.890228 0.330994 0.900543 0.891388 0.330994 0.917419 0.892578 0.330994 0.932739 0.893707 0.330994 0.946625 0.894867 0.330994 0.959198 0.895996 0.330994 0.970520 0.897034 0.330994 0.980652 0.898163 0.330994 0.989563 0.899200 0.330994 0.106171 0.880615 0.337769 0.131714 0.881958 0.337006 0.158661 0.883362 0.336243 0.187073 0.884735 0.335388 0.217133 0.886047 0.334656 0.249146 0.887421 0.333862 0.283173 0.888733 0.333191 0.319336 0.890045 0.332428 0.357605 0.891327 0.331757 0.397736 0.892670 0.331085 0.439423 0.893921 0.330994 0.482513 0.895203 0.330994 0.526550 0.896393 0.330994 0.570679 0.897675 0.330994 0.613342 0.898895 0.330994 0.653961 0.900055 0.330994 0.692352 0.901276 0.330994 0.728027 0.902435 0.330994 0.760742 0.903595 0.330994 0.790527 0.904755 0.330994 0.817474 0.905884 0.330994 0.841888 0.906982 0.330994 0.864014 0.908081 0.330994 0.884155 0.909180 0.330994 0.902466 0.910217 0.330994 0.919128 0.911255 0.330994 0.934265 0.912231 0.330994 0.948029 0.913239 0.330994 0.960449 0.914276 0.330994 0.971619 0.915253 0.330994 0.981598 0.916199 0.330994 0.990417 0.917145 0.330994 0.109344 0.900696 0.336243 0.135040 0.901947 0.335449 0.162170 0.903198 0.334656 0.190765 0.904419 0.333893 0.221008 0.905640 0.333221 0.253265 0.906860 0.332458 0.287567 0.908051 0.331787 0.324005 0.909241 0.331116 0.362457 0.910400 0.330994 0.402710 0.911530 0.330994 0.444611 0.912659 0.330994 0.487793 0.913818 0.330994 0.531921 0.914948 0.330994 0.575806 0.916046 0.330994 0.618225 0.917145 0.330994 0.658569 0.918182 0.330994 0.696625 0.919250 0.330994 0.731995 0.920288 0.330994 0.764343 0.921326 0.330994 0.793732 0.922363 0.330994 0.820343 0.923340 0.330994 0.844452 0.924316 0.330994 0.866333 0.925323 0.330994 0.886230 0.926239 0.330994 0.904327 0.927185 0.330994 0.920807 0.928101 0.330994 0.935760 0.928986 0.330994 0.949341 0.929901 0.330994 0.961639 0.930756 0.330994 0.972656 0.931580 0.330994 0.982513 0.932465 0.330994 0.991180 0.933258 0.330994 0.112549 0.918884 0.334686 0.138397 0.919983 0.333893 0.165680 0.921082 0.333221 0.194489 0.922241 0.332458 0.224884 0.923279 0.331787 0.257324 0.924377 0.331116 0.291931 0.925446 0.330994 0.328613 0.926483 0.330994 0.367279 0.927582 0.330994 0.407715 0.928558 0.330994 0.449738 0.929626 0.330994 0.493042 0.930634 0.330994 0.537170 0.931580 0.330994 0.580963 0.932617 0.330994 0.623077 0.933563 0.330994 0.663116 0.934509 0.330994 0.700867 0.935486 0.330994 0.735779 0.936401 0.330994 0.767792 0.937317 0.330994 0.796814 0.938202 0.330994 0.823090 0.939087 0.330994 0.846924 0.939972 0.330994 0.868591 0.940826 0.330994 0.888184 0.941650 0.330994 0.906097 0.942474 0.330994 0.922424 0.943298 0.330994 0.937195 0.944092 0.330994 0.950623 0.944855 0.330994 0.962769 0.945648 0.330994 0.973633 0.946350 0.330994 0.983368 0.947083 0.330994 0.991943 0.947784 0.330994 0.115692 0.935272 0.333221 0.141693 0.936249 0.332489 0.169159 0.937286 0.331818 0.198120 0.938263 0.331146 0.228821 0.939240 0.330994 0.261475 0.940186 0.330994 0.296295 0.941162 0.330994 0.333191 0.942078 0.330994 0.372070 0.943054 0.330994 0.412720 0.943970 0.330994 0.454803 0.944855 0.330994 0.498199 0.945770 0.330994 0.542358 0.946625 0.330994 0.585907 0.947510 0.330994 0.627808 0.948364 0.330994 0.667572 0.949219 0.330994 0.704895 0.950043 0.330994 0.739532 0.950867 0.330994 0.771118 0.951660 0.330994 0.799805 0.952454 0.330994 0.825714 0.953217 0.330994 0.849304 0.954010 0.330994 0.870728 0.954773 0.330994 0.890137 0.955505 0.330994 0.907837 0.956238 0.330994 0.923950 0.956940 0.330994 0.938538 0.957611 0.330994 0.951813 0.958282 0.330994 0.963806 0.958954 0.330994 0.974579 0.959595 0.330994 0.984192 0.960236 0.330994 0.992615 0.960846 0.330994 0.118866 0.950012 0.331818 0.145050 0.950897 0.331207 0.172607 0.951813 0.330994 0.201813 0.952698 0.330994 0.232666 0.953583 0.330994 0.265594 0.954437 0.330994 0.300537 0.955231 0.330994 0.337738 0.956116 0.330994 0.376831 0.956940 0.330994 0.417572 0.957733 0.330994 0.459839 0.958527 0.330994 0.503326 0.959351 0.330994 0.547363 0.960114 0.330994 0.590759 0.960876 0.330994 0.632416 0.961639 0.330994 0.671844 0.962372 0.330994 0.708832 0.963104 0.330994 0.743042 0.963806 0.330994 0.774353 0.964539 0.330994 0.802673 0.965240 0.330994 0.828308 0.965912 0.330994 0.851593 0.966614 0.330994 0.872772 0.967255 0.330994 0.891937 0.967865 0.330994 0.909485 0.968506 0.330994 0.925415 0.969116 0.330994 0.939880 0.969696 0.330994 0.953033 0.970306 0.330994 0.964844 0.970856 0.330994 0.975494 0.971436 0.330994 0.984955 0.971985 0.330994 0.993286 0.972473 0.330994 0.122040 0.963257 0.330994 0.148315 0.964020 0.330994 0.176117 0.964813 0.330994 0.205475 0.965607 0.330994 0.236572 0.966370 0.330994 0.269684 0.967133 0.330994 0.304901 0.967834 0.330994 0.342224 0.968597 0.330994 0.381470 0.969360 0.330994 0.422394 0.970032 0.330994 0.464813 0.970764 0.330994 0.508270 0.971466 0.330994 0.552338 0.972137 0.330994 0.595459 0.972809 0.330994 0.636871 0.973480 0.330994 0.675964 0.974091 0.330994 0.712646 0.974762 0.330994 0.746521 0.975372 0.330994 0.777405 0.975983 0.330994 0.805420 0.976593 0.330994 0.830811 0.977142 0.330994 0.853790 0.977753 0.330994 0.874695 0.978333 0.330994 0.893738 0.978851 0.330994 0.911041 0.979401 0.330994 0.926788 0.979919 0.330994 0.941132 0.980438 0.330994 0.954102 0.980927 0.330994 0.965820 0.981415 0.330994 0.976318 0.981903 0.330994 0.985687 0.982361 0.330994 0.993896 0.982788 0.330994 0.041626 0.002899 0.417694 0.063477 0.003632 0.417267 0.086243 0.004425 0.416779 0.110138 0.005219 0.416290 0.135193 0.006073 0.415771 0.161591 0.006927 0.415222 0.189392 0.007782 0.414612 0.218933 0.008667 0.414001 0.250183 0.009613 0.413361 0.283569 0.010559 0.412720 0.319122 0.011597 0.412018 0.356598 0.012573 0.411285 0.395966 0.013641 0.410492 0.437012 0.014679 0.409760 0.479340 0.015747 0.408966 0.522766 0.016876 0.408142 0.566498 0.018036 0.407349 0.608795 0.019165 0.406464 0.649384 0.020325 0.405640 0.687714 0.021515 0.404755 0.723480 0.022766 0.403870 0.756500 0.023987 0.402954 0.786530 0.025238 0.402039 0.813751 0.026520 0.401123 0.838531 0.027863 0.400208 0.860992 0.029114 0.399261 0.881409 0.030487 0.398254 0.900024 0.031860 0.397308 0.916962 0.033203 0.396332 0.932373 0.034607 0.395386 0.946381 0.035980 0.394409 0.959045 0.037415 0.393402 0.043091 0.024017 0.416840 0.065063 0.024872 0.416290 0.087952 0.025696 0.415771 0.112000 0.026581 0.415222 0.137207 0.027496 0.414673 0.163788 0.028473 0.414001 0.191772 0.029419 0.413391 0.221466 0.030396 0.412720 0.253021 0.031433 0.412018 0.286621 0.032471 0.411285 0.322418 0.033600 0.410553 0.360168 0.034637 0.409821 0.399780 0.035797 0.408997 0.441010 0.036987 0.408142 0.483582 0.038116 0.407379 0.527161 0.039337 0.406555 0.570862 0.040527 0.405670 0.613098 0.041779 0.404785 0.653503 0.043060 0.403900 0.691589 0.044312 0.403015 0.727173 0.045654 0.402100 0.759888 0.046967 0.401184 0.789673 0.048309 0.400269 0.816650 0.049713 0.399292 0.841125 0.051117 0.398285 0.863403 0.052490 0.397339 0.883636 0.053894 0.396393 0.902069 0.055359 0.395386 0.918823 0.056824 0.394409 0.934082 0.058289 0.393433 0.947937 0.059753 0.392456 0.960480 0.061279 0.391449 0.044647 0.046112 0.415802 0.066742 0.047058 0.415222 0.089813 0.048004 0.414673 0.113953 0.048981 0.414032 0.139343 0.049988 0.413391 0.166046 0.051025 0.412781 0.194244 0.052063 0.412048 0.224213 0.053162 0.411285 0.255981 0.054291 0.410583 0.289856 0.055420 0.409821 0.325928 0.056610 0.408997 0.363922 0.057770 0.408234 0.403809 0.059021 0.407379 0.445190 0.060303 0.406555 0.487946 0.061523 0.405701 0.531708 0.062805 0.404816 0.575348 0.064148 0.403992 0.617462 0.065491 0.403015 0.657715 0.066864 0.402100 0.695587 0.068207 0.401245 0.730896 0.069611 0.400269 0.763367 0.071045 0.399292 0.792816 0.072479 0.398315 0.819580 0.073944 0.397369 0.843811 0.075439 0.396423 0.865814 0.076935 0.395477 0.885895 0.078461 0.394440 0.904144 0.080017 0.393433 0.920715 0.081543 0.392456 0.935852 0.083130 0.391449 0.949524 0.084686 0.390503 0.961914 0.086304 0.389496 0.046356 0.069305 0.414673 0.068542 0.070312 0.414032 0.091766 0.071381 0.413391 0.116058 0.072449 0.412781 0.141602 0.073578 0.412048 0.168488 0.074677 0.411316 0.196899 0.075867 0.410583 0.227081 0.077026 0.409851 0.259064 0.078217 0.409027 0.293274 0.079468 0.408264 0.329559 0.080811 0.407410 0.367828 0.082062 0.406586 0.407898 0.083374 0.405701 0.449554 0.084747 0.404816 0.492493 0.086090 0.403992 0.536377 0.087494 0.403076 0.579956 0.088898 0.402130 0.621948 0.090363 0.401245 0.662048 0.091827 0.400299 0.699677 0.093292 0.399323 0.734711 0.094788 0.398315 0.766907 0.096344 0.397369 0.796021 0.097870 0.396484 0.822479 0.099426 0.395477 0.846527 0.101044 0.394440 0.868347 0.102631 0.393494 0.888153 0.104279 0.392517 0.906189 0.105865 0.391510 0.922638 0.107544 0.390503 0.937592 0.109253 0.389496 0.951111 0.110931 0.388519 0.963379 0.112640 0.387512 0.048096 0.093628 0.413452 0.070465 0.094757 0.412811 0.093811 0.095917 0.412109 0.118256 0.097076 0.411377 0.143982 0.098358 0.410645 0.171051 0.099548 0.409851 0.199677 0.100830 0.409088 0.230072 0.102112 0.408264 0.262329 0.103455 0.407501 0.296753 0.104828 0.406586 0.333405 0.106201 0.405731 0.371857 0.107574 0.404877 0.412201 0.109009 0.404022 0.454010 0.110474 0.403107 0.497131 0.111969 0.402191 0.541138 0.113495 0.401276 0.584625 0.114960 0.400360 0.626526 0.116547 0.399384 0.666382 0.118164 0.398407 0.703796 0.119690 0.397430 0.738556 0.121338 0.396484 0.770447 0.122986 0.395508 0.799286 0.124634 0.394501 0.825470 0.126312 0.393555 0.849213 0.128021 0.392517 0.870789 0.129730 0.391541 0.890411 0.131500 0.390533 0.908264 0.133209 0.389526 0.924530 0.135010 0.388519 0.939301 0.136780 0.387604 0.952698 0.138580 0.386566 0.964813 0.140442 0.385590 0.050018 0.119324 0.412109 0.072510 0.120544 0.411377 0.095978 0.121796 0.410645 0.120575 0.123108 0.409912 0.146454 0.124451 0.409088 0.173737 0.125793 0.408295 0.202576 0.127197 0.407501 0.233185 0.128632 0.406647 0.265717 0.130035 0.405792 0.300446 0.131500 0.404907 0.337280 0.132996 0.404022 0.376068 0.134521 0.403107 0.416656 0.136078 0.402191 0.458649 0.137634 0.401306 0.501923 0.139252 0.400360 0.546051 0.140900 0.399414 0.589417 0.142548 0.398438 0.631165 0.144196 0.397491 0.670807 0.145935 0.396515 0.707977 0.147614 0.395538 0.742432 0.149353 0.394562 0.773987 0.151154 0.393555 0.802521 0.152924 0.392548 0.828430 0.154755 0.391541 0.851898 0.156494 0.390564 0.873260 0.158386 0.389618 0.892700 0.160248 0.388580 0.910370 0.162140 0.387634 0.926422 0.164032 0.386597 0.941040 0.165955 0.385620 0.954285 0.167847 0.384674 0.966217 0.169800 0.383667 0.052002 0.146423 0.410706 0.074615 0.147797 0.409912 0.098236 0.149170 0.409149 0.123016 0.150574 0.408295 0.149078 0.152069 0.407532 0.176514 0.153534 0.406677 0.205566 0.155029 0.405792 0.236420 0.156616 0.404907 0.269226 0.158173 0.404083 0.304260 0.159760 0.403137 0.341278 0.161377 0.402222 0.380371 0.163055 0.401306 0.421173 0.164734 0.400391 0.463409 0.166412 0.399414 0.506897 0.168182 0.398438 0.551117 0.169952 0.397491 0.594360 0.171692 0.396576 0.635895 0.173523 0.395538 0.675323 0.175385 0.394562 0.712189 0.177216 0.393646 0.746368 0.179077 0.392578 0.777557 0.181030 0.391602 0.805817 0.182892 0.390625 0.831421 0.184875 0.389618 0.854645 0.186798 0.388611 0.875763 0.188782 0.387634 0.894958 0.190796 0.386597 0.912415 0.192780 0.385651 0.928314 0.194855 0.384674 0.942780 0.196899 0.383698 0.955841 0.198944 0.382690 0.967651 0.201050 0.381775 0.054047 0.175171 0.409149 0.076813 0.176666 0.408356 0.100616 0.178162 0.407532 0.125549 0.179749 0.406677 0.151764 0.181335 0.405853 0.179443 0.182983 0.404968 0.208710 0.184631 0.404083 0.239838 0.186310 0.403137 0.272888 0.188019 0.402283 0.308197 0.189789 0.401367 0.345551 0.191498 0.400452 0.384857 0.193329 0.399475 0.425873 0.195190 0.398468 0.468292 0.197021 0.397522 0.511963 0.198914 0.396576 0.556152 0.200836 0.395599 0.599274 0.202728 0.394623 0.640686 0.204681 0.393646 0.679840 0.206726 0.392578 0.716431 0.208679 0.391663 0.750275 0.210693 0.390625 0.781097 0.212738 0.389679 0.809052 0.214813 0.388672 0.834381 0.216949 0.387665 0.857330 0.219025 0.386688 0.878235 0.221130 0.385681 0.897217 0.223328 0.384705 0.914520 0.225433 0.383789 0.930206 0.227631 0.382751 0.944489 0.229919 0.381805 0.957367 0.232056 0.380859 0.969025 0.234283 0.379883 0.056274 0.205750 0.407562 0.079163 0.207397 0.406738 0.103027 0.209045 0.405853 0.128174 0.210754 0.404999 0.154633 0.212555 0.404083 0.182465 0.214294 0.403198 0.211975 0.216156 0.402283 0.243256 0.217926 0.401398 0.276672 0.219818 0.400452 0.312225 0.221741 0.399475 0.349823 0.223663 0.398529 0.389404 0.225647 0.397552 0.430664 0.227600 0.396637 0.473328 0.229645 0.395660 0.517120 0.231689 0.394623 0.561310 0.233765 0.393707 0.604279 0.235809 0.392609 0.645447 0.237946 0.391663 0.684387 0.240112 0.390686 0.720673 0.242310 0.389679 0.754181 0.244476 0.388672 0.784698 0.246613 0.387695 0.812317 0.248901 0.386719 0.837311 0.251190 0.385681 0.860046 0.253418 0.384735 0.880707 0.255768 0.383789 0.899475 0.258087 0.382782 0.916565 0.260376 0.381836 0.932098 0.262756 0.380859 0.946198 0.265137 0.379883 0.958923 0.267487 0.378998 0.970428 0.269897 0.378052 0.058533 0.238373 0.405884 0.081573 0.240204 0.404999 0.105621 0.242035 0.404175 0.130890 0.243927 0.403229 0.157532 0.245850 0.402344 0.185547 0.247803 0.401398 0.215332 0.249786 0.400482 0.246857 0.251740 0.399536 0.280548 0.253845 0.398590 0.316406 0.255951 0.397583 0.354309 0.258026 0.396667 0.394135 0.260162 0.395660 0.435638 0.262360 0.394653 0.478394 0.264496 0.393738 0.522369 0.266724 0.392700 0.566528 0.269012 0.391693 0.609344 0.271240 0.390717 0.650330 0.273560 0.389709 0.688904 0.275879 0.388733 0.724945 0.278229 0.387695 0.758148 0.280609 0.386719 0.788239 0.282990 0.385773 0.815552 0.285431 0.384735 0.840302 0.287903 0.383820 0.862732 0.290314 0.382843 0.883148 0.292816 0.381836 0.901733 0.295319 0.380890 0.918579 0.297821 0.380005 0.933960 0.300385 0.379059 0.947845 0.302917 0.378082 0.960449 0.305420 0.377167 0.971771 0.308044 0.376282 0.060883 0.273346 0.404205 0.084045 0.275360 0.403229 0.108276 0.277344 0.402374 0.133728 0.279449 0.401459 0.160492 0.281525 0.400513 0.188812 0.283691 0.399567 0.218781 0.285858 0.398590 0.250610 0.288055 0.397675 0.284546 0.290314 0.396667 0.320709 0.292603 0.395691 0.358917 0.294891 0.394745 0.398895 0.297211 0.393738 0.440613 0.299591 0.392700 0.483612 0.301910 0.391724 0.527740 0.304352 0.390717 0.571777 0.306763 0.389771 0.614441 0.309296 0.388763 0.655151 0.311768 0.387787 0.693542 0.314209 0.386780 0.729218 0.316772 0.385803 0.762024 0.319366 0.384796 0.791779 0.321899 0.383850 0.818817 0.324524 0.382843 0.843262 0.327179 0.381866 0.865417 0.329742 0.380920 0.885590 0.332428 0.380005 0.903931 0.335114 0.379059 0.920624 0.337738 0.378174 0.935760 0.340424 0.377258 0.949524 0.343140 0.376343 0.961945 0.345917 0.375427 0.973114 0.348602 0.374542 0.063324 0.310852 0.402374 0.086609 0.312988 0.401459 0.110992 0.315247 0.400513 0.136658 0.317505 0.399597 0.163605 0.319794 0.398621 0.192108 0.322144 0.397675 0.222351 0.324493 0.396698 0.254425 0.326843 0.395752 0.288696 0.329315 0.394745 0.325134 0.331787 0.393768 0.363556 0.334229 0.392761 0.403870 0.336731 0.391785 0.445770 0.339355 0.390778 0.488922 0.341827 0.389771 0.533142 0.344421 0.388763 0.577087 0.347046 0.387817 0.619629 0.349731 0.386780 0.660095 0.352356 0.385803 0.698120 0.355011 0.384857 0.733490 0.357727 0.383850 0.765961 0.360474 0.382904 0.795349 0.363190 0.381958 0.822021 0.365967 0.380951 0.846191 0.368744 0.380035 0.868073 0.371521 0.379120 0.888031 0.374359 0.378174 0.906097 0.377106 0.377289 0.922638 0.379944 0.376343 0.937592 0.382843 0.375488 0.951172 0.385620 0.374573 0.963440 0.388489 0.373749 0.974457 0.391418 0.372864 0.065826 0.350769 0.400574 0.089264 0.353149 0.399597 0.113831 0.355530 0.398682 0.139648 0.358002 0.397705 0.166779 0.360443 0.396759 0.195526 0.362976 0.395782 0.225983 0.365509 0.394775 0.258362 0.368042 0.393829 0.292877 0.370667 0.392761 0.329620 0.373352 0.391785 0.368317 0.375916 0.390808 0.408813 0.378632 0.389832 0.450958 0.381317 0.388794 0.494293 0.384033 0.387848 0.538635 0.386780 0.386871 0.582458 0.389526 0.385834 0.624725 0.392365 0.384888 0.664978 0.395233 0.383881 0.702667 0.397949 0.382935 0.737701 0.400879 0.381958 0.769806 0.403809 0.380951 0.798859 0.406586 0.380066 0.825195 0.409546 0.379150 0.849060 0.412476 0.378204 0.870728 0.415375 0.377289 0.890411 0.418304 0.376373 0.908295 0.421234 0.375519 0.924591 0.424194 0.374603 0.939392 0.427216 0.373779 0.952789 0.430084 0.372955 0.964874 0.433136 0.372101 0.975739 0.436127 0.371307 0.068420 0.392883 0.398682 0.092010 0.395416 0.397736 0.116699 0.397949 0.396790 0.142700 0.400635 0.395782 0.170044 0.403229 0.394806 0.199005 0.405914 0.393829 0.229736 0.408661 0.392822 0.262360 0.411316 0.391815 0.297211 0.414124 0.390808 0.334229 0.416931 0.389862 0.373169 0.419678 0.388885 0.413879 0.422546 0.387848 0.456146 0.425323 0.386902 0.499756 0.428253 0.385864 0.544189 0.431152 0.384888 0.587830 0.434082 0.383942 0.629883 0.437012 0.382935 0.669830 0.439972 0.381989 0.707275 0.442902 0.381042 0.741943 0.445923 0.380066 0.773651 0.448975 0.379150 0.802338 0.451874 0.378235 0.828339 0.454895 0.377319 0.851898 0.457886 0.376434 0.873322 0.460938 0.375519 0.892792 0.464020 0.374603 0.910461 0.467010 0.373779 0.926544 0.470123 0.372986 0.941193 0.473175 0.372101 0.954407 0.476196 0.371307 0.966339 0.479248 0.370514 0.977020 0.482300 0.369720 0.071045 0.437012 0.396790 0.094757 0.439667 0.395844 0.119659 0.442383 0.394867 0.145844 0.445221 0.393860 0.173401 0.447968 0.392883 0.202576 0.450775 0.391876 0.233551 0.453674 0.390869 0.266418 0.456543 0.389893 0.301605 0.459412 0.388916 0.338898 0.462311 0.387878 0.378052 0.465210 0.386902 0.419098 0.468170 0.385864 0.461517 0.471130 0.384949 0.505219 0.474152 0.384003 0.549652 0.477173 0.382965 0.593231 0.480194 0.382019 0.635040 0.483276 0.381073 0.674744 0.486328 0.380127 0.711761 0.489349 0.379181 0.746124 0.492493 0.378265 0.777405 0.495605 0.377319 0.805786 0.498596 0.376434 0.831451 0.501770 0.375519 0.854706 0.504822 0.374634 0.875885 0.507935 0.373810 0.895081 0.511108 0.372986 0.912537 0.514160 0.372162 0.928467 0.517303 0.371338 0.942902 0.520447 0.370514 0.955933 0.523499 0.369781 0.967712 0.526642 0.369019 0.978302 0.529755 0.368317 0.073792 0.482758 0.394867 0.097626 0.485565 0.393921 0.122742 0.488434 0.392883 0.149078 0.491333 0.391876 0.176819 0.494232 0.390900 0.206238 0.497162 0.389893 0.237427 0.500122 0.388916 0.270630 0.503113 0.387939 0.306091 0.506165 0.386932 0.343567 0.509064 0.385956 0.383057 0.512146 0.384979 0.424286 0.515259 0.384003 0.466919 0.518311 0.383026 0.510803 0.521362 0.382019 0.555267 0.524475 0.381073 0.598572 0.527557 0.380157 0.640137 0.530701 0.379272 0.679535 0.533844 0.378265 0.716278 0.536987 0.377380 0.750244 0.540131 0.376465 0.781128 0.543182 0.375641 0.809143 0.546356 0.374725 0.834534 0.549469 0.373840 0.857513 0.552582 0.373016 0.878418 0.555695 0.372162 0.897400 0.558807 0.371338 0.914642 0.561829 0.370575 0.930328 0.564941 0.369843 0.944611 0.567993 0.369049 0.957489 0.571014 0.368347 0.969116 0.574036 0.367615 0.979462 0.576935 0.367371 0.076569 0.529877 0.392914 0.100586 0.532684 0.391968 0.125824 0.535706 0.390900 0.152374 0.538727 0.389954 0.180298 0.541595 0.388947 0.209961 0.544647 0.387939 0.241455 0.547668 0.386932 0.274902 0.550690 0.385986 0.310638 0.553711 0.384979 0.348389 0.556732 0.384033 0.388153 0.559814 0.383026 0.429565 0.562866 0.382050 0.472382 0.565857 0.381104 0.516388 0.568939 0.380157 0.560822 0.572021 0.379272 0.603912 0.575012 0.378326 0.645294 0.578094 0.377441 0.684357 0.581207 0.376465 0.720764 0.584106 0.375641 0.754333 0.587219 0.374725 0.784912 0.590271 0.373840 0.812500 0.593231 0.373047 0.837555 0.596252 0.372223 0.860229 0.599213 0.371368 0.880890 0.602173 0.370575 0.899658 0.605164 0.369843 0.916718 0.608032 0.369110 0.932190 0.611023 0.368347 0.946289 0.613922 0.367615 0.958984 0.616791 0.367371 0.970459 0.619690 0.367371 0.980652 0.622528 0.367371 0.079376 0.576813 0.390930 0.103577 0.579681 0.389984 0.128998 0.582581 0.388977 0.155731 0.585541 0.388000 0.183899 0.588409 0.387054 0.213715 0.591431 0.385986 0.245453 0.594360 0.385040 0.279236 0.597198 0.384064 0.315277 0.600220 0.383057 0.353302 0.603058 0.382111 0.393250 0.606079 0.381165 0.434906 0.608978 0.380219 0.477936 0.611908 0.379303 0.522034 0.614868 0.378387 0.566406 0.617859 0.377441 0.609253 0.620728 0.376526 0.650391 0.623657 0.375671 0.689087 0.626556 0.374756 0.725189 0.629486 0.373901 0.758362 0.632324 0.373047 0.788483 0.635162 0.372253 0.815796 0.638031 0.371429 0.840546 0.640900 0.370636 0.862946 0.643677 0.369873 0.883331 0.646515 0.369110 0.901855 0.649323 0.368408 0.918701 0.652069 0.367676 0.934021 0.654816 0.367371 0.947906 0.657593 0.367371 0.960449 0.660217 0.367371 0.971771 0.662903 0.367371 0.981812 0.665558 0.367371 0.082275 0.622162 0.388977 0.106628 0.624939 0.388031 0.132202 0.627716 0.387054 0.159149 0.630554 0.386017 0.187469 0.633331 0.385071 0.217590 0.636139 0.384064 0.249603 0.639008 0.383118 0.283630 0.641754 0.382172 0.319977 0.644531 0.381165 0.358215 0.647339 0.380249 0.398438 0.650146 0.379333 0.440277 0.652985 0.378387 0.483429 0.655731 0.377472 0.527649 0.658508 0.376556 0.571869 0.661316 0.375671 0.614594 0.664062 0.374786 0.655426 0.666779 0.373901 0.693817 0.669556 0.373108 0.729523 0.672272 0.372253 0.762360 0.674988 0.371429 0.792084 0.677612 0.370667 0.819031 0.680298 0.369873 0.843475 0.683014 0.369171 0.865570 0.685577 0.368408 0.885742 0.688202 0.367676 0.904022 0.690765 0.367371 0.920654 0.693298 0.367371 0.935760 0.695923 0.367371 0.949524 0.698395 0.367371 0.961884 0.700867 0.367371 0.973022 0.703339 0.367371 0.982941 0.705750 0.367371 0.085205 0.665161 0.387085 0.109711 0.667816 0.386047 0.135468 0.670532 0.385101 0.162567 0.673218 0.384125 0.191162 0.675812 0.383148 0.221497 0.678497 0.382172 0.253693 0.681061 0.381226 0.288116 0.683777 0.380249 0.324677 0.686401 0.379333 0.363190 0.688995 0.378418 0.403656 0.691620 0.377502 0.445740 0.694305 0.376587 0.488953 0.696869 0.375702 0.533295 0.699432 0.374786 0.577393 0.702087 0.373932 0.619873 0.704590 0.373108 0.660400 0.707153 0.372284 0.698395 0.709625 0.371490 0.733826 0.712189 0.370667 0.766205 0.714691 0.369904 0.795593 0.717102 0.369171 0.822235 0.719604 0.368469 0.846313 0.722076 0.367737 0.868195 0.724396 0.367371 0.888031 0.726807 0.367371 0.906128 0.729218 0.367371 0.922607 0.731476 0.367371 0.937531 0.733826 0.367371 0.951050 0.736053 0.367371 0.963287 0.738342 0.367371 0.974243 0.740570 0.367371 0.984009 0.742737 0.367371 0.088226 0.705566 0.385101 0.112823 0.707977 0.384155 0.138794 0.710510 0.383148 0.166077 0.712982 0.382202 0.194916 0.715424 0.381256 0.225433 0.717926 0.380310 0.257935 0.720337 0.379364 0.292603 0.722809 0.378448 0.329468 0.725281 0.377502 0.368195 0.727661 0.376587 0.408875 0.730103 0.375702 0.451111 0.732513 0.374817 0.494507 0.734833 0.373993 0.538971 0.737274 0.373169 0.582886 0.739624 0.372284 0.625092 0.741943 0.371490 0.665314 0.744232 0.370697 0.703003 0.746552 0.369934 0.738037 0.748810 0.369202 0.770050 0.751099 0.368469 0.799011 0.753326 0.367737 0.825287 0.755554 0.367371 0.849121 0.757751 0.367371 0.870728 0.759888 0.367371 0.890350 0.762054 0.367371 0.908234 0.764191 0.367371 0.924438 0.766235 0.367371 0.939209 0.768341 0.367371 0.952545 0.770325 0.367371 0.964630 0.772400 0.367371 0.975464 0.774384 0.367371 0.985046 0.776306 0.367371 0.091248 0.742676 0.383209 0.116028 0.744965 0.382233 0.142151 0.747314 0.381287 0.169556 0.749542 0.380341 0.198669 0.751831 0.379425 0.229462 0.754089 0.378448 0.262207 0.756287 0.377533 0.297180 0.758545 0.376648 0.334229 0.760742 0.375732 0.373322 0.762939 0.374908 0.414154 0.765137 0.373993 0.456573 0.767334 0.373169 0.500061 0.769470 0.372314 0.544586 0.771637 0.371521 0.588226 0.773712 0.370758 0.630249 0.775818 0.369934 0.670197 0.777954 0.369202 0.707520 0.779968 0.368500 0.742157 0.782043 0.367767 0.773834 0.784058 0.367371 0.802399 0.786041 0.367371 0.828339 0.788025 0.367371 0.851837 0.789978 0.367371 0.873169 0.791901 0.367371 0.892609 0.793823 0.367371 0.910217 0.795654 0.367371 0.926239 0.797516 0.367371 0.940857 0.799408 0.367371 0.954010 0.801178 0.367371 0.965942 0.802948 0.367371 0.976624 0.804718 0.367371 0.986084 0.806427 0.367371 0.094299 0.776520 0.381287 0.119263 0.778534 0.380341 0.145508 0.780609 0.379425 0.173187 0.782684 0.378540 0.202454 0.784760 0.377625 0.233521 0.786804 0.376648 0.266479 0.788757 0.375793 0.301727 0.790771 0.374908 0.339081 0.792816 0.374023 0.378387 0.794739 0.373199 0.419464 0.796753 0.372406 0.461975 0.798706 0.371582 0.505615 0.800598 0.370758 0.550140 0.802521 0.369934 0.593536 0.804382 0.369263 0.635345 0.806305 0.368500 0.674988 0.808197 0.367767 0.711914 0.809967 0.367371 0.746216 0.811829 0.367371 0.777405 0.813629 0.367371 0.805664 0.815430 0.367371 0.831268 0.817200 0.367371 0.854553 0.818939 0.367371 0.875580 0.820618 0.367371 0.894775 0.822327 0.367371 0.912170 0.823975 0.367371 0.928040 0.825623 0.367371 0.942444 0.827240 0.367371 0.955444 0.828857 0.367371 0.967194 0.830414 0.367371 0.977722 0.831970 0.367371 0.987030 0.833496 0.367371 0.097351 0.806885 0.379456 0.122498 0.808746 0.378571 0.148956 0.810638 0.377625 0.176788 0.812469 0.376740 0.206268 0.814331 0.375793 0.237549 0.816162 0.374939 0.270844 0.817963 0.374054 0.306335 0.819794 0.373230 0.343964 0.821625 0.372406 0.383423 0.823334 0.371582 0.424652 0.825104 0.370758 0.467316 0.826813 0.369965 0.511139 0.828583 0.369263 0.555573 0.830322 0.368530 0.598877 0.831970 0.367828 0.640350 0.833649 0.367371 0.679657 0.835358 0.367371 0.716278 0.836975 0.367371 0.750183 0.838593 0.367371 0.781036 0.840240 0.367371 0.808929 0.841766 0.367371 0.834167 0.843384 0.367371 0.857147 0.844910 0.367371 0.877930 0.846436 0.367371 0.896851 0.847931 0.367371 0.914062 0.849426 0.367371 0.929779 0.850891 0.367371 0.943970 0.852325 0.367371 0.956818 0.853729 0.367371 0.968414 0.855133 0.367371 0.978821 0.856537 0.367371 0.987976 0.857819 0.367371 0.100464 0.834198 0.377655 0.125793 0.835907 0.376740 0.152405 0.837646 0.375854 0.180420 0.839264 0.374969 0.210114 0.840912 0.374054 0.241638 0.842621 0.373230 0.275177 0.844208 0.372437 0.310944 0.845825 0.371613 0.348846 0.847473 0.370789 0.388519 0.849060 0.370056 0.429962 0.850647 0.369293 0.472717 0.852173 0.368561 0.516724 0.853760 0.367859 0.561005 0.855286 0.367371 0.604065 0.856781 0.367371 0.645294 0.858307 0.367371 0.684265 0.859802 0.367371 0.720551 0.861237 0.367371 0.753998 0.862701 0.367371 0.784515 0.864136 0.367371 0.812042 0.865570 0.367371 0.837006 0.866943 0.367371 0.859650 0.868347 0.367371 0.880188 0.869659 0.367371 0.898926 0.871002 0.367371 0.915955 0.872314 0.367371 0.931396 0.873596 0.367371 0.945465 0.874908 0.367371 0.958130 0.876160 0.367371 0.969574 0.877350 0.367371 0.979858 0.878601 0.367371 0.988861 0.879791 0.367371 0.103577 0.858856 0.375885 0.129089 0.860443 0.374969 0.155853 0.861938 0.374115 0.184082 0.863434 0.373322 0.213989 0.864929 0.372437 0.245728 0.866425 0.371613 0.279572 0.867859 0.370850 0.315613 0.869324 0.370056 0.353668 0.870758 0.369354 0.393585 0.872223 0.368561 0.435181 0.873627 0.367859 0.478088 0.875031 0.367371 0.522156 0.876404 0.367371 0.566406 0.877808 0.367371 0.609161 0.879120 0.367371 0.650116 0.880524 0.367371 0.688782 0.881836 0.367371 0.724701 0.883118 0.367371 0.757782 0.884399 0.367371 0.787903 0.885742 0.367371 0.815063 0.886963 0.367371 0.839691 0.888184 0.367371 0.862061 0.889374 0.367371 0.882416 0.890625 0.367371 0.900879 0.891815 0.367371 0.917725 0.892975 0.367371 0.933014 0.894135 0.367371 0.946869 0.895264 0.367371 0.959412 0.896362 0.367371 0.970734 0.897461 0.367371 0.980835 0.898560 0.367371 0.989716 0.899567 0.367371 0.106750 0.881104 0.374176 0.132355 0.882477 0.373352 0.159332 0.883850 0.372467 0.187775 0.885193 0.371674 0.217865 0.886566 0.370850 0.249878 0.887909 0.370087 0.283966 0.889221 0.369354 0.320251 0.890503 0.368561 0.358521 0.891785 0.367920 0.398621 0.893097 0.367371 0.440430 0.894409 0.367371 0.483459 0.895630 0.367371 0.527527 0.896851 0.367371 0.571625 0.898132 0.367371 0.614227 0.899292 0.367371 0.654877 0.900513 0.367371 0.693176 0.901703 0.367371 0.728760 0.902863 0.367371 0.761444 0.904022 0.367371 0.791138 0.905151 0.367371 0.817993 0.906250 0.367371 0.842377 0.907410 0.367371 0.864471 0.908417 0.367371 0.884552 0.909546 0.367371 0.902832 0.910583 0.367371 0.919434 0.911621 0.367371 0.934540 0.912628 0.367371 0.948273 0.913635 0.367371 0.960632 0.914612 0.367371 0.971802 0.915619 0.367371 0.981781 0.916534 0.367371 0.990540 0.917450 0.367371 0.109924 0.901184 0.372498 0.135681 0.902405 0.371674 0.162842 0.903656 0.370880 0.191437 0.904877 0.370117 0.221771 0.906097 0.369354 0.253967 0.907257 0.368652 0.288330 0.908447 0.367920 0.324860 0.909637 0.367371 0.363342 0.910797 0.367371 0.403687 0.911926 0.367371 0.445618 0.913086 0.367371 0.488708 0.914215 0.367371 0.532867 0.915344 0.367371 0.576813 0.916443 0.367371 0.619110 0.917511 0.367371 0.659485 0.918579 0.367371 0.697449 0.919647 0.367371 0.732635 0.920685 0.367371 0.765015 0.921722 0.367371 0.794312 0.922729 0.367371 0.820831 0.923706 0.367371 0.844910 0.924713 0.367371 0.866760 0.925629 0.367371 0.886627 0.926575 0.367371 0.904694 0.927521 0.367371 0.921082 0.928406 0.367371 0.936035 0.929321 0.367371 0.949615 0.930206 0.367371 0.961853 0.931061 0.367371 0.972870 0.931915 0.367371 0.982635 0.932739 0.367371 0.991333 0.933563 0.367371 0.113098 0.919250 0.370941 0.139008 0.920410 0.370117 0.166321 0.921539 0.369385 0.195129 0.922638 0.368683 0.225708 0.923706 0.367920 0.258118 0.924774 0.367371 0.292725 0.925842 0.367371 0.329498 0.926880 0.367371 0.368164 0.927948 0.367371 0.408691 0.928955 0.367371 0.450684 0.929993 0.367371 0.493988 0.930969 0.367371 0.538177 0.931976 0.367371 0.581909 0.932983 0.367371 0.623932 0.933899 0.367371 0.664001 0.934875 0.367371 0.701599 0.935760 0.367371 0.736450 0.936737 0.367371 0.768433 0.937653 0.367371 0.797363 0.938538 0.367371 0.823608 0.939423 0.367371 0.847412 0.940277 0.367371 0.868958 0.941132 0.367371 0.888611 0.941986 0.367371 0.906464 0.942810 0.367371 0.922699 0.943573 0.367371 0.937469 0.944366 0.367371 0.950836 0.945129 0.367371 0.962952 0.945892 0.367371 0.973816 0.946655 0.367371 0.983490 0.947357 0.367371 0.992035 0.948059 0.367371 0.116272 0.935638 0.369415 0.142365 0.936676 0.368683 0.169769 0.937622 0.367950 0.198822 0.938629 0.367371 0.229584 0.939606 0.367371 0.262207 0.940552 0.367371 0.297089 0.941498 0.367371 0.334045 0.942444 0.367371 0.372955 0.943359 0.367371 0.413635 0.944275 0.367371 0.455811 0.945190 0.367371 0.499115 0.946075 0.367371 0.543365 0.946960 0.367371 0.586823 0.947845 0.367371 0.628632 0.948669 0.367371 0.668365 0.949524 0.367371 0.705627 0.950348 0.367371 0.740173 0.951172 0.367371 0.771790 0.951996 0.367371 0.800293 0.952759 0.367371 0.826233 0.953552 0.367371 0.849762 0.954285 0.367371 0.871094 0.955048 0.367371 0.890503 0.955780 0.367371 0.908142 0.956512 0.367371 0.924194 0.957184 0.367371 0.938812 0.957886 0.367371 0.952057 0.958527 0.367371 0.964020 0.959198 0.367371 0.974762 0.959869 0.367371 0.984344 0.960449 0.367371 0.992737 0.961090 0.367371 0.119415 0.950348 0.367981 0.145660 0.951233 0.367371 0.173279 0.952118 0.367371 0.202484 0.953033 0.367371 0.233429 0.953857 0.367371 0.266327 0.954712 0.367371 0.301422 0.955566 0.367371 0.338623 0.956421 0.367371 0.377686 0.957245 0.367371 0.418549 0.958038 0.367371 0.460785 0.958832 0.367371 0.504211 0.959625 0.367371 0.548370 0.960419 0.367371 0.591644 0.961151 0.367371 0.633240 0.961914 0.367371 0.672668 0.962677 0.367371 0.709534 0.963379 0.367371 0.743744 0.964111 0.367371 0.774933 0.964813 0.367371 0.803192 0.965485 0.367371 0.828796 0.966156 0.367371 0.852020 0.966827 0.367371 0.873108 0.967468 0.367371 0.892334 0.968109 0.367371 0.909790 0.968719 0.367371 0.925690 0.969330 0.367371 0.940125 0.969940 0.367371 0.953186 0.970520 0.367371 0.965027 0.971069 0.367371 0.975647 0.971649 0.367371 0.985107 0.972168 0.367371 0.993408 0.972687 0.367371 0.122589 0.963531 0.367371 0.148987 0.964325 0.367371 0.176727 0.965088 0.367371 0.206085 0.965881 0.367371 0.237274 0.966675 0.367371 0.270386 0.967377 0.367371 0.305725 0.968140 0.367371 0.343109 0.968903 0.367371 0.382355 0.969574 0.367371 0.423279 0.970306 0.367371 0.465668 0.971008 0.367371 0.509186 0.971710 0.367371 0.553314 0.972382 0.367371 0.596344 0.973022 0.367371 0.637604 0.973724 0.367371 0.676758 0.974335 0.367371 0.713348 0.974976 0.367371 0.747131 0.975586 0.367371 0.778015 0.976196 0.367371 0.805939 0.976776 0.367371 0.831238 0.977356 0.367371 0.854187 0.977966 0.367371 0.875061 0.978516 0.367371 0.894073 0.979034 0.367371 0.911316 0.979584 0.367371 0.927063 0.980103 0.367371 0.941315 0.980621 0.367371 0.954285 0.981079 0.367371 0.965973 0.981598 0.367371 0.976501 0.982056 0.367371 0.985840 0.982513 0.367371 0.994019 0.982971 0.367371 0.041931 0.003204 0.457275 0.063782 0.003906 0.456787 0.086578 0.004730 0.456299 0.110504 0.005493 0.455780 0.135559 0.006348 0.455231 0.161957 0.007233 0.454590 0.189850 0.008118 0.454010 0.219330 0.009003 0.453369 0.250702 0.009979 0.452667 0.284149 0.010956 0.451965 0.319672 0.011932 0.451263 0.357300 0.012970 0.450531 0.396698 0.014038 0.449707 0.437744 0.015045 0.448975 0.480164 0.016174 0.448120 0.523529 0.017273 0.447296 0.567291 0.018402 0.446442 0.609650 0.019592 0.445496 0.650116 0.020752 0.444672 0.688416 0.021973 0.443726 0.724152 0.023224 0.442810 0.757111 0.024445 0.441895 0.787109 0.025696 0.440918 0.814331 0.027039 0.439972 0.838989 0.028290 0.438965 0.861420 0.029633 0.438019 0.881805 0.030975 0.437012 0.900391 0.032349 0.436005 0.917328 0.033722 0.434967 0.932709 0.035095 0.434052 0.946686 0.036530 0.432983 0.959351 0.037964 0.431946 0.043335 0.024353 0.456299 0.065369 0.025146 0.455780 0.088318 0.026031 0.455231 0.112366 0.026917 0.454620 0.137573 0.027863 0.454041 0.164185 0.028809 0.453369 0.192261 0.029755 0.452698 0.221985 0.030792 0.452026 0.253601 0.031830 0.451294 0.287262 0.032898 0.450531 0.323059 0.033966 0.449738 0.360901 0.035065 0.449005 0.400574 0.036194 0.448120 0.441742 0.037384 0.447296 0.484375 0.038544 0.446442 0.527924 0.039734 0.445587 0.571625 0.040985 0.444672 0.613922 0.042267 0.443726 0.654205 0.043488 0.442841 0.692352 0.044800 0.441925 0.727905 0.046143 0.440979 0.760498 0.047424 0.440002 0.790283 0.048828 0.438995 0.817230 0.050201 0.438019 0.841644 0.051575 0.437073 0.863861 0.053009 0.436005 0.884033 0.054413 0.435028 0.902435 0.055847 0.434052 0.919189 0.057343 0.432983 0.934418 0.058838 0.431976 0.948273 0.060333 0.430908 0.960754 0.061859 0.429932 0.044983 0.046478 0.455231 0.067078 0.047363 0.454620 0.090179 0.048340 0.454041 0.114349 0.049347 0.453430 0.139740 0.050323 0.452698 0.166504 0.051361 0.452087 0.194763 0.052490 0.451294 0.224701 0.053558 0.450562 0.256561 0.054718 0.449799 0.290527 0.055847 0.449005 0.326569 0.057007 0.448181 0.364624 0.058258 0.447327 0.404541 0.059479 0.446472 0.446014 0.060730 0.445618 0.488770 0.062012 0.444733 0.532532 0.063263 0.443817 0.576172 0.064606 0.442902 0.618347 0.065979 0.441925 0.658478 0.067322 0.440979 0.696381 0.068726 0.440002 0.731628 0.070160 0.438995 0.763977 0.071564 0.438080 0.793488 0.073029 0.437073 0.820099 0.074463 0.436035 0.844330 0.075958 0.435028 0.866302 0.077484 0.434082 0.886292 0.079010 0.433014 0.904541 0.080566 0.432007 0.921082 0.082123 0.430969 0.936157 0.083679 0.429962 0.949860 0.085297 0.428925 0.962219 0.086914 0.427856 0.046661 0.069672 0.454071 0.068878 0.070679 0.453461 0.092133 0.071747 0.452759 0.116455 0.072815 0.452087 0.142029 0.073944 0.451324 0.168945 0.075073 0.450562 0.197449 0.076324 0.449799 0.227570 0.077484 0.449036 0.259644 0.078705 0.448242 0.293945 0.079987 0.447327 0.330231 0.081238 0.446503 0.368561 0.082550 0.445618 0.408661 0.083832 0.444763 0.450378 0.085205 0.443848 0.493317 0.086609 0.442902 0.537201 0.087982 0.441956 0.580811 0.089447 0.441010 0.622833 0.090881 0.440033 0.662781 0.092346 0.439117 0.700500 0.093842 0.438110 0.735443 0.095367 0.437103 0.767517 0.096893 0.436127 0.796661 0.098450 0.435059 0.823029 0.100006 0.434113 0.847015 0.101624 0.433075 0.868774 0.103241 0.432007 0.888550 0.104858 0.431000 0.906586 0.106506 0.429962 0.923004 0.108215 0.428925 0.937897 0.109833 0.427948 0.951447 0.111542 0.426910 0.963623 0.113281 0.425873 0.048462 0.094055 0.452759 0.070831 0.095215 0.452118 0.094208 0.096344 0.451324 0.118683 0.097534 0.450592 0.144409 0.098785 0.449860 0.171539 0.100006 0.449036 0.200226 0.101318 0.448242 0.230591 0.102600 0.447388 0.262970 0.103912 0.446503 0.297424 0.105286 0.445648 0.334045 0.106689 0.444763 0.372650 0.108124 0.443848 0.412994 0.109558 0.442932 0.454834 0.111023 0.442047 0.498047 0.112549 0.441010 0.541992 0.114014 0.440094 0.585541 0.115570 0.439117 0.627411 0.117126 0.438110 0.667175 0.118683 0.437134 0.704620 0.120300 0.436127 0.739258 0.121918 0.435150 0.771057 0.123566 0.434113 0.799927 0.125275 0.433136 0.825989 0.126923 0.432037 0.849731 0.128662 0.431091 0.871277 0.130371 0.430023 0.890839 0.132111 0.428986 0.908691 0.133881 0.427948 0.924896 0.135681 0.426910 0.939636 0.137421 0.425903 0.953033 0.139252 0.424866 0.965057 0.141052 0.423889 0.050385 0.119751 0.451355 0.072845 0.121002 0.450653 0.096375 0.122284 0.449860 0.121002 0.123596 0.449066 0.146942 0.124939 0.448273 0.174255 0.126282 0.447388 0.203125 0.127716 0.446503 0.233765 0.129120 0.445740 0.266357 0.130585 0.444824 0.301086 0.132050 0.443878 0.338013 0.133606 0.442993 0.376892 0.135101 0.442047 0.417419 0.136658 0.441071 0.459564 0.138245 0.440094 0.502838 0.139893 0.439148 0.546997 0.141479 0.438141 0.590393 0.143158 0.437134 0.632080 0.144867 0.436157 0.671661 0.146545 0.435150 0.708801 0.148254 0.434143 0.743164 0.149994 0.433167 0.774628 0.151764 0.432129 0.803192 0.153595 0.431091 0.828979 0.155365 0.430084 0.852417 0.157227 0.429016 0.873749 0.159119 0.427979 0.893127 0.160919 0.426971 0.910736 0.162842 0.425964 0.926788 0.164734 0.424927 0.941376 0.166626 0.423920 0.954559 0.168579 0.422882 0.966492 0.170502 0.421906 0.052429 0.146942 0.449890 0.074982 0.148254 0.449158 0.098663 0.149719 0.448303 0.123505 0.151154 0.447418 0.149536 0.152557 0.446533 0.177063 0.154083 0.445740 0.206146 0.155609 0.444855 0.237030 0.157166 0.443970 0.269928 0.158752 0.442993 0.304932 0.160339 0.442078 0.342102 0.161987 0.441132 0.381226 0.163696 0.440155 0.421997 0.165344 0.439209 0.464325 0.167084 0.438202 0.507812 0.168854 0.437195 0.551941 0.170563 0.436188 0.595276 0.172363 0.435181 0.636841 0.174225 0.434143 0.676117 0.176025 0.433167 0.713013 0.177917 0.432129 0.747040 0.179749 0.431122 0.778229 0.181671 0.430084 0.806396 0.183624 0.429016 0.831940 0.185547 0.428009 0.855164 0.187531 0.426971 0.876251 0.189545 0.425964 0.895386 0.191498 0.424957 0.912811 0.193573 0.423920 0.928680 0.195557 0.422913 0.943085 0.197632 0.421906 0.956146 0.199707 0.420898 0.967896 0.201752 0.419891 0.054504 0.175720 0.448303 0.077240 0.177216 0.447479 0.101044 0.178741 0.446625 0.126038 0.180328 0.445740 0.152283 0.181946 0.444855 0.179993 0.183594 0.443970 0.209290 0.185211 0.443024 0.240448 0.186920 0.442078 0.273621 0.188660 0.441162 0.308899 0.190399 0.440216 0.346313 0.192230 0.439209 0.385681 0.194031 0.438202 0.426697 0.195831 0.437256 0.469269 0.197693 0.436218 0.512909 0.199615 0.435181 0.557068 0.201477 0.434235 0.600250 0.203461 0.433197 0.641510 0.205414 0.432159 0.680634 0.207397 0.431152 0.717255 0.209442 0.430115 0.750977 0.211426 0.429077 0.781799 0.213531 0.428009 0.809692 0.215607 0.427063 0.834930 0.217651 0.425995 0.857849 0.219818 0.424957 0.878693 0.221985 0.423981 0.897644 0.224060 0.422913 0.914886 0.226257 0.421936 0.930542 0.228455 0.420959 0.944794 0.230652 0.419891 0.957703 0.232880 0.418945 0.969299 0.235077 0.417999 0.056702 0.206360 0.446625 0.079559 0.207977 0.445801 0.103546 0.209717 0.444916 0.128693 0.211395 0.444000 0.155090 0.213196 0.443054 0.183044 0.214966 0.442108 0.212555 0.216736 0.441162 0.243958 0.218628 0.440216 0.277374 0.220551 0.439270 0.312958 0.222412 0.438232 0.350708 0.224396 0.437256 0.390320 0.226379 0.436218 0.431549 0.228302 0.435242 0.474274 0.230347 0.434265 0.518036 0.232391 0.433258 0.562256 0.234497 0.432190 0.605225 0.236603 0.431152 0.646332 0.238708 0.430176 0.685211 0.240906 0.429138 0.721497 0.243073 0.428040 0.754913 0.245239 0.427094 0.785339 0.247467 0.426056 0.812958 0.249756 0.424988 0.837891 0.251984 0.424011 0.860565 0.254303 0.422943 0.881195 0.256622 0.421936 0.899902 0.258911 0.420959 0.916962 0.261230 0.419922 0.932465 0.263580 0.418976 0.946503 0.265991 0.417999 0.959229 0.268402 0.417023 0.970673 0.270782 0.416107 0.058990 0.239075 0.444916 0.082001 0.240875 0.444031 0.106110 0.242737 0.443054 0.131409 0.244568 0.442139 0.158020 0.246521 0.441193 0.186157 0.248535 0.440247 0.215942 0.250458 0.439301 0.247589 0.252533 0.438293 0.281311 0.254608 0.437286 0.317200 0.256653 0.436310 0.355194 0.258789 0.435272 0.395050 0.260986 0.434296 0.436462 0.263092 0.433258 0.479370 0.265320 0.432251 0.523346 0.267578 0.431213 0.567535 0.269836 0.430237 0.610382 0.272156 0.429169 0.651184 0.274384 0.428131 0.689789 0.276794 0.427094 0.725769 0.279144 0.426056 0.758881 0.281464 0.425018 0.788910 0.283905 0.424011 0.816193 0.286346 0.423035 0.840820 0.288757 0.421997 0.863281 0.291229 0.421021 0.883606 0.293671 0.420013 0.902130 0.296265 0.419006 0.918976 0.298798 0.418030 0.934296 0.301239 0.417114 0.948212 0.303833 0.416107 0.960754 0.306396 0.415192 0.972015 0.308990 0.414276 0.061310 0.274048 0.443115 0.084503 0.276031 0.442230 0.108795 0.278137 0.441193 0.134247 0.280243 0.440277 0.161072 0.282349 0.439301 0.189423 0.284515 0.438293 0.219391 0.286621 0.437317 0.251282 0.288910 0.436340 0.285370 0.291138 0.435333 0.321503 0.293396 0.434326 0.359772 0.295746 0.433289 0.399780 0.298065 0.432312 0.441559 0.300415 0.431274 0.484650 0.302887 0.430237 0.528717 0.305206 0.429199 0.572815 0.307678 0.428162 0.615417 0.310181 0.427124 0.656036 0.312653 0.426086 0.694397 0.315186 0.425110 0.730072 0.317719 0.424042 0.762756 0.320282 0.423065 0.792511 0.322876 0.422028 0.819427 0.325531 0.421021 0.843750 0.328094 0.420044 0.865936 0.330750 0.419006 0.886017 0.333405 0.418060 0.904358 0.336090 0.417114 0.920990 0.338776 0.416138 0.936127 0.341400 0.415222 0.949860 0.344147 0.414307 0.962250 0.346924 0.413361 0.973389 0.349579 0.412476 0.063782 0.311615 0.441254 0.087097 0.313812 0.440277 0.111511 0.316101 0.439362 0.137177 0.318298 0.438385 0.164215 0.320648 0.437347 0.192780 0.323029 0.436340 0.222961 0.325348 0.435394 0.255127 0.327759 0.434326 0.289459 0.330231 0.433289 0.325928 0.332642 0.432312 0.364410 0.335205 0.431274 0.404755 0.337646 0.430267 0.446655 0.340210 0.429199 0.489960 0.342834 0.428162 0.534088 0.345367 0.427216 0.578125 0.347992 0.426117 0.620575 0.350708 0.425110 0.660980 0.353302 0.424103 0.699005 0.356018 0.423065 0.734314 0.358765 0.422028 0.766632 0.361481 0.421051 0.796021 0.364197 0.420044 0.822571 0.366943 0.419098 0.846710 0.369720 0.418060 0.868591 0.372589 0.417145 0.888428 0.375336 0.416138 0.906555 0.378204 0.415222 0.923004 0.381042 0.414307 0.937927 0.383850 0.413391 0.951508 0.386719 0.412476 0.963715 0.389618 0.411591 0.974670 0.392395 0.410736 0.066284 0.351562 0.439392 0.089752 0.354004 0.438385 0.114349 0.356415 0.437347 0.140167 0.358887 0.436401 0.167389 0.361389 0.435394 0.196167 0.363861 0.434387 0.226654 0.366425 0.433350 0.259094 0.369019 0.432343 0.293640 0.371582 0.431366 0.330444 0.374207 0.430298 0.369202 0.376923 0.429291 0.409760 0.379578 0.428192 0.451935 0.382324 0.427216 0.495331 0.385071 0.426178 0.539612 0.387817 0.425140 0.583466 0.390564 0.424103 0.625732 0.393433 0.423096 0.665863 0.396210 0.422058 0.703522 0.399048 0.421082 0.738525 0.401947 0.420135 0.770508 0.404785 0.419128 0.799530 0.407715 0.418121 0.825714 0.410553 0.417206 0.849579 0.413483 0.416168 0.871185 0.416443 0.415253 0.890839 0.419342 0.414337 0.908691 0.422333 0.413391 0.924988 0.425293 0.412537 0.939697 0.428192 0.411621 0.953094 0.431213 0.410736 0.965179 0.434235 0.409912 0.975983 0.437134 0.409027 0.068878 0.393829 0.437439 0.092499 0.396393 0.436432 0.117279 0.398987 0.435425 0.143250 0.401611 0.434448 0.170685 0.404236 0.433380 0.199677 0.406982 0.432343 0.230347 0.409607 0.431366 0.263092 0.412384 0.430298 0.297974 0.415070 0.429321 0.335052 0.417938 0.428253 0.374054 0.420776 0.427246 0.414856 0.423553 0.426239 0.457153 0.426422 0.425171 0.500793 0.429352 0.424164 0.545166 0.432190 0.423126 0.588837 0.435150 0.422150 0.630890 0.438110 0.421082 0.670685 0.441010 0.420166 0.708099 0.444031 0.419128 0.742676 0.446960 0.418152 0.774353 0.450012 0.417206 0.803009 0.453033 0.416260 0.828888 0.455963 0.415344 0.852417 0.459076 0.414337 0.873810 0.462128 0.413452 0.893219 0.465057 0.412567 0.910858 0.468170 0.411652 0.926910 0.471252 0.410767 0.941467 0.474243 0.409973 0.954681 0.477325 0.409088 0.966614 0.480347 0.408295 0.977234 0.483429 0.407532 0.071564 0.437958 0.435486 0.095337 0.440704 0.434448 0.120270 0.443420 0.433441 0.146423 0.446198 0.432373 0.174072 0.449036 0.431396 0.203217 0.451782 0.430328 0.234253 0.454620 0.429321 0.267273 0.457581 0.428314 0.302429 0.460419 0.427277 0.339752 0.463409 0.426239 0.379059 0.466370 0.425171 0.420013 0.469269 0.424194 0.462555 0.472321 0.423126 0.506287 0.475311 0.422180 0.550690 0.478241 0.421173 0.594238 0.481354 0.420166 0.636017 0.484375 0.419159 0.675598 0.487427 0.418152 0.712646 0.490509 0.417236 0.746826 0.493561 0.416290 0.778137 0.496674 0.415344 0.806396 0.499786 0.414398 0.832001 0.502838 0.413483 0.855225 0.506012 0.412567 0.876373 0.509155 0.411652 0.895538 0.512177 0.410858 0.912933 0.515350 0.409973 0.928802 0.518494 0.409088 0.943207 0.521515 0.408295 0.956268 0.524719 0.407532 0.967987 0.527740 0.406799 0.978485 0.530853 0.406006 0.074280 0.483734 0.433472 0.098236 0.486633 0.432404 0.123322 0.489502 0.431396 0.149628 0.492371 0.430420 0.177490 0.495331 0.429352 0.206909 0.498199 0.428345 0.238159 0.501190 0.427307 0.271423 0.504211 0.426270 0.306885 0.507172 0.425201 0.344513 0.510223 0.424255 0.384033 0.513306 0.423218 0.425201 0.516327 0.422211 0.467987 0.519409 0.421173 0.511841 0.522552 0.420197 0.556274 0.525574 0.419189 0.599579 0.528748 0.418243 0.641113 0.531799 0.417267 0.680420 0.534973 0.416290 0.717133 0.538177 0.415375 0.750977 0.541168 0.414459 0.781860 0.544373 0.413483 0.809814 0.547485 0.412628 0.835083 0.550568 0.411682 0.858032 0.553711 0.410858 0.878906 0.556824 0.410004 0.897797 0.559875 0.409149 0.915070 0.562988 0.408356 0.930664 0.566010 0.407562 0.944916 0.569031 0.406799 0.957794 0.572144 0.406036 0.969360 0.575134 0.405334 0.979706 0.578125 0.405304 0.077057 0.530853 0.431427 0.101166 0.533783 0.430420 0.126404 0.536804 0.429382 0.152954 0.539795 0.428345 0.181000 0.542786 0.427307 0.210632 0.545685 0.426331 0.242157 0.548798 0.425293 0.275726 0.551849 0.424255 0.311432 0.554810 0.423248 0.349274 0.557861 0.422211 0.389130 0.560883 0.421234 0.430511 0.563934 0.420258 0.473480 0.567017 0.419189 0.517487 0.570099 0.418243 0.561829 0.573090 0.417267 0.604950 0.576172 0.416351 0.646301 0.579254 0.415375 0.685211 0.582275 0.414490 0.721588 0.585297 0.413513 0.755066 0.588257 0.412659 0.785553 0.591339 0.411774 0.813141 0.594391 0.410889 0.838104 0.597290 0.410034 0.860779 0.600311 0.409180 0.881348 0.603302 0.408356 0.900055 0.606201 0.407562 0.917084 0.609161 0.406799 0.932556 0.612122 0.406036 0.946594 0.614990 0.405334 0.959259 0.617889 0.405304 0.970673 0.620667 0.405304 0.980896 0.623596 0.405304 0.079926 0.577850 0.429443 0.104156 0.580750 0.428436 0.129608 0.583710 0.427399 0.156311 0.586548 0.426331 0.184570 0.589478 0.425293 0.214447 0.592377 0.424286 0.246185 0.595398 0.423248 0.280090 0.598358 0.422272 0.316101 0.601196 0.421265 0.354218 0.604187 0.420258 0.394287 0.607147 0.419281 0.435852 0.610046 0.418304 0.478973 0.612976 0.417328 0.523071 0.615936 0.416351 0.567352 0.618866 0.415405 0.610321 0.621796 0.414490 0.651276 0.624695 0.413574 0.689941 0.627594 0.412659 0.725983 0.630493 0.411774 0.759125 0.633362 0.410919 0.789185 0.636261 0.410034 0.816406 0.639099 0.409180 0.841064 0.641907 0.408417 0.863434 0.644775 0.407623 0.883789 0.647552 0.406830 0.902252 0.650299 0.406067 0.919067 0.653137 0.405334 0.934326 0.655762 0.405304 0.948212 0.658508 0.405304 0.960724 0.661255 0.405304 0.971985 0.663910 0.405304 0.982025 0.666534 0.405304 0.082794 0.623138 0.427429 0.107208 0.625977 0.426361 0.132782 0.628723 0.425323 0.159729 0.631561 0.424347 0.188232 0.634369 0.423279 0.218292 0.637177 0.422333 0.250336 0.639984 0.421265 0.284454 0.642822 0.420288 0.320770 0.645569 0.419312 0.359222 0.648438 0.418304 0.399475 0.651215 0.417328 0.441254 0.653961 0.416382 0.484497 0.656799 0.415436 0.528717 0.659515 0.414520 0.572906 0.662323 0.413574 0.615631 0.665039 0.412720 0.656311 0.667786 0.411804 0.694702 0.670532 0.410919 0.730316 0.673248 0.410126 0.763062 0.675934 0.409271 0.792755 0.678680 0.408417 0.819641 0.681274 0.407623 0.843964 0.683929 0.406891 0.866058 0.686554 0.406067 0.886169 0.689148 0.405365 0.904419 0.691711 0.405304 0.921021 0.694244 0.405304 0.936127 0.696777 0.405304 0.949799 0.699249 0.405304 0.962158 0.701813 0.405304 0.973236 0.704193 0.405304 0.983154 0.706635 0.405304 0.085785 0.666168 0.425385 0.110321 0.668823 0.424347 0.136017 0.671417 0.423309 0.163208 0.674103 0.422333 0.191864 0.676819 0.421326 0.222229 0.679413 0.420349 0.254517 0.682098 0.419342 0.288971 0.684784 0.418396 0.325531 0.687347 0.417389 0.364166 0.690033 0.416443 0.404633 0.692627 0.415436 0.446655 0.695221 0.414581 0.490051 0.697876 0.413635 0.534332 0.700378 0.412781 0.578369 0.702972 0.411804 0.620880 0.705566 0.410950 0.661285 0.708008 0.410156 0.699310 0.710602 0.409271 0.734619 0.713074 0.408447 0.766937 0.715576 0.407684 0.796234 0.718048 0.406891 0.822815 0.720520 0.406097 0.846832 0.722870 0.405365 0.868683 0.725311 0.405304 0.888489 0.727661 0.405304 0.906555 0.730042 0.405304 0.922943 0.732361 0.405304 0.937836 0.734619 0.405304 0.951355 0.736938 0.405304 0.963531 0.739166 0.405304 0.974487 0.741364 0.405304 0.984222 0.743561 0.405304 0.088776 0.706421 0.423401 0.113464 0.708923 0.422363 0.139374 0.711365 0.421356 0.166687 0.713867 0.420349 0.195587 0.716370 0.419342 0.226166 0.718781 0.418427 0.258728 0.721252 0.417419 0.293427 0.723755 0.416443 0.330322 0.726135 0.415497 0.369202 0.728546 0.414581 0.409851 0.730927 0.413666 0.452118 0.733337 0.412781 0.495605 0.735748 0.411896 0.539978 0.738098 0.410950 0.583862 0.740448 0.410156 0.626068 0.742798 0.409302 0.666199 0.745056 0.408508 0.703888 0.747406 0.407684 0.738800 0.749695 0.406952 0.770752 0.751953 0.406189 0.799683 0.754150 0.405457 0.825897 0.756409 0.405304 0.849640 0.758545 0.405304 0.871185 0.760681 0.405304 0.890778 0.762817 0.405304 0.908569 0.764954 0.405304 0.924805 0.767029 0.405304 0.939514 0.769073 0.405304 0.952850 0.771118 0.405304 0.964844 0.773102 0.405304 0.975647 0.775024 0.405304 0.985229 0.777039 0.405304 0.091797 0.743500 0.421356 0.116638 0.745850 0.420410 0.142731 0.748108 0.419403 0.170288 0.750336 0.418427 0.199402 0.752655 0.417419 0.230164 0.754883 0.416504 0.263000 0.757141 0.415558 0.298004 0.759399 0.414612 0.335114 0.761536 0.413666 0.374237 0.763794 0.412811 0.415070 0.765930 0.411926 0.457520 0.768127 0.411041 0.501160 0.770294 0.410156 0.545532 0.772400 0.409332 0.589233 0.774506 0.408508 0.631256 0.776611 0.407715 0.671051 0.778687 0.406952 0.708405 0.780731 0.406189 0.742889 0.782837 0.405457 0.774445 0.784760 0.405304 0.803040 0.786804 0.405304 0.828888 0.788727 0.405304 0.852356 0.790680 0.405304 0.873657 0.792633 0.405304 0.892975 0.794495 0.405304 0.910583 0.796356 0.405304 0.926605 0.798248 0.405304 0.941132 0.800049 0.405304 0.954315 0.801849 0.405304 0.966156 0.803619 0.405304 0.976807 0.805359 0.405304 0.986267 0.807068 0.405304 0.094818 0.777252 0.419464 0.119843 0.779327 0.418457 0.146088 0.781372 0.417480 0.173889 0.783447 0.416534 0.203186 0.785492 0.415558 0.234222 0.787506 0.414673 0.267334 0.789520 0.413696 0.302521 0.791504 0.412842 0.339966 0.793518 0.411926 0.379333 0.795532 0.411072 0.420410 0.797424 0.410187 0.462952 0.799408 0.409332 0.506744 0.801361 0.408539 0.551117 0.803223 0.407776 0.594635 0.805115 0.406982 0.636292 0.807007 0.406189 0.675812 0.808838 0.405487 0.712830 0.810699 0.405304 0.746948 0.812500 0.405304 0.778137 0.814270 0.405304 0.806305 0.816071 0.405304 0.831848 0.817780 0.405304 0.855011 0.819519 0.405304 0.876038 0.821259 0.405304 0.895142 0.822906 0.405304 0.912537 0.824585 0.405304 0.928345 0.826233 0.405304 0.942719 0.827820 0.405304 0.955719 0.829437 0.405304 0.967438 0.831024 0.405304 0.977905 0.832520 0.405304 0.987213 0.834045 0.405304 0.097961 0.807587 0.417511 0.123138 0.809479 0.416534 0.149536 0.811279 0.415588 0.177460 0.813171 0.414673 0.207001 0.815002 0.413696 0.238312 0.816833 0.412842 0.271667 0.818665 0.411957 0.307159 0.820404 0.411072 0.344849 0.822235 0.410217 0.384399 0.823975 0.409393 0.425629 0.825714 0.408539 0.468414 0.827484 0.407776 0.512268 0.829224 0.406982 0.556580 0.830933 0.406219 0.599854 0.832611 0.405487 0.641266 0.834290 0.405304 0.680450 0.835907 0.405304 0.717102 0.837585 0.405304 0.750854 0.839203 0.405304 0.781677 0.840790 0.405304 0.809509 0.842377 0.405304 0.834717 0.843933 0.405304 0.857605 0.845459 0.405304 0.878387 0.847015 0.405304 0.897247 0.848480 0.405304 0.914459 0.849945 0.405304 0.930084 0.851410 0.405304 0.944214 0.852814 0.405304 0.957092 0.854248 0.405304 0.968628 0.855621 0.405304 0.978973 0.856995 0.405304 0.988159 0.858337 0.405304 0.101044 0.834869 0.415619 0.126404 0.836578 0.414703 0.153015 0.838226 0.413727 0.181122 0.839905 0.412903 0.210876 0.841583 0.411957 0.242401 0.843201 0.411102 0.276001 0.844818 0.410217 0.311798 0.846436 0.409454 0.349731 0.848053 0.408600 0.389496 0.849670 0.407776 0.430908 0.851166 0.407013 0.473755 0.852783 0.406250 0.517761 0.854340 0.405518 0.562042 0.855804 0.405304 0.605042 0.857361 0.405304 0.646179 0.858826 0.405304 0.685059 0.860321 0.405304 0.721313 0.861786 0.405304 0.754700 0.863220 0.405304 0.785095 0.864624 0.405304 0.812622 0.866058 0.405304 0.837524 0.867432 0.405304 0.860107 0.868835 0.405304 0.880646 0.870178 0.405304 0.899292 0.871490 0.405304 0.916290 0.872803 0.405304 0.931702 0.874115 0.405304 0.945740 0.875336 0.405304 0.958405 0.876617 0.405304 0.969818 0.877838 0.405304 0.980011 0.879028 0.405304 0.989014 0.880219 0.405304 0.104187 0.859436 0.413818 0.129700 0.860992 0.412903 0.156464 0.862457 0.412018 0.184814 0.863983 0.411102 0.214722 0.865448 0.410278 0.246521 0.866943 0.409454 0.280396 0.868439 0.408600 0.316406 0.869843 0.407806 0.354553 0.871338 0.407043 0.394592 0.872742 0.406250 0.436157 0.874146 0.405518 0.479156 0.875519 0.405304 0.523132 0.876953 0.405304 0.567322 0.878296 0.405304 0.610168 0.879669 0.405304 0.650970 0.880981 0.405304 0.689575 0.882324 0.405304 0.725494 0.883636 0.405304 0.758484 0.884888 0.405304 0.788452 0.886139 0.405304 0.815643 0.887421 0.405304 0.840240 0.888641 0.405304 0.862549 0.889862 0.405304 0.882843 0.891083 0.405304 0.901276 0.892242 0.405304 0.918060 0.893433 0.405304 0.933289 0.894531 0.405304 0.947144 0.895691 0.405304 0.959686 0.896759 0.405304 0.970947 0.897858 0.405304 0.980988 0.898926 0.405304 0.989899 0.899963 0.405304 0.107361 0.881622 0.412048 0.132996 0.883026 0.411133 0.159973 0.884338 0.410339 0.188477 0.885742 0.409454 0.218597 0.887024 0.408661 0.250641 0.888367 0.407867 0.284790 0.889709 0.407043 0.321075 0.890991 0.406311 0.359406 0.892303 0.405548 0.399628 0.893585 0.405304 0.441376 0.894836 0.405304 0.484497 0.896088 0.405304 0.528595 0.897369 0.405304 0.572601 0.898560 0.405304 0.615173 0.899750 0.405304 0.655670 0.900909 0.405304 0.693939 0.902130 0.405304 0.729523 0.903290 0.405304 0.762085 0.904419 0.405304 0.791718 0.905548 0.405304 0.818573 0.906708 0.405304 0.842804 0.907776 0.405304 0.864899 0.908875 0.405304 0.884979 0.909943 0.405304 0.903168 0.910980 0.405304 0.919739 0.911987 0.405304 0.934814 0.912964 0.405304 0.948517 0.913971 0.405304 0.960876 0.914978 0.405304 0.971985 0.915924 0.405304 0.981934 0.916901 0.405304 0.990723 0.917786 0.405304 0.110535 0.901642 0.410339 0.136292 0.902863 0.409546 0.163452 0.904053 0.408691 0.192139 0.905334 0.407867 0.222504 0.906525 0.407135 0.254761 0.907715 0.406311 0.289185 0.908875 0.405548 0.325684 0.910095 0.405304 0.364227 0.911224 0.405304 0.404633 0.912384 0.405304 0.446503 0.913483 0.405304 0.489746 0.914642 0.405304 0.533844 0.915741 0.405304 0.577759 0.916840 0.405304 0.620087 0.917877 0.405304 0.660309 0.918945 0.405304 0.698212 0.920013 0.405304 0.733368 0.921082 0.405304 0.765656 0.922089 0.405304 0.794922 0.923096 0.405304 0.821411 0.924072 0.405304 0.845367 0.925049 0.405304 0.867188 0.925995 0.405304 0.886993 0.926941 0.405304 0.904999 0.927887 0.405304 0.921417 0.928772 0.405304 0.936310 0.929688 0.405304 0.949860 0.930511 0.405304 0.962067 0.931366 0.405304 0.973022 0.932220 0.405304 0.982819 0.933044 0.405304 0.991486 0.933868 0.405304 0.113708 0.919708 0.408691 0.139618 0.920807 0.407898 0.166931 0.921936 0.407135 0.195831 0.923004 0.406372 0.226379 0.924072 0.405640 0.258911 0.925171 0.405304 0.293579 0.926239 0.405304 0.330322 0.927277 0.405304 0.369049 0.928314 0.405304 0.409607 0.929352 0.405304 0.451630 0.930328 0.405304 0.494995 0.931366 0.405304 0.539124 0.932343 0.405304 0.582764 0.933289 0.405304 0.624847 0.934296 0.405304 0.664795 0.935211 0.405304 0.702362 0.936157 0.405304 0.737183 0.937073 0.405304 0.769043 0.937988 0.405304 0.797943 0.938873 0.405304 0.824097 0.939758 0.405304 0.847839 0.940582 0.405304 0.869354 0.941437 0.405304 0.888947 0.942230 0.405304 0.906769 0.943085 0.405304 0.923004 0.943878 0.405304 0.937744 0.944672 0.405304 0.951080 0.945435 0.405304 0.963165 0.946167 0.405304 0.974030 0.946869 0.405304 0.983673 0.947632 0.405304 0.992188 0.948334 0.405304 0.116852 0.936005 0.407166 0.142944 0.936981 0.406372 0.170471 0.937988 0.405670 0.199524 0.938995 0.405304 0.230225 0.939972 0.405304 0.263000 0.940918 0.405304 0.297913 0.941864 0.405304 0.334869 0.942780 0.405304 0.373840 0.943726 0.405304 0.414490 0.944611 0.405304 0.456726 0.945496 0.405304 0.500061 0.946442 0.405304 0.544250 0.947296 0.405304 0.587708 0.948151 0.405304 0.629547 0.949005 0.405304 0.669159 0.949860 0.405304 0.706421 0.950684 0.405304 0.740875 0.951477 0.405304 0.772308 0.952240 0.405304 0.800903 0.953033 0.405304 0.826752 0.953827 0.405304 0.850189 0.954529 0.405304 0.871490 0.955292 0.405304 0.890839 0.956024 0.405304 0.908417 0.956726 0.405304 0.924469 0.957428 0.405304 0.939056 0.958099 0.405304 0.952240 0.958771 0.405304 0.964233 0.959442 0.405304 0.974945 0.960052 0.405304 0.984467 0.960663 0.405304 0.992859 0.961273 0.405304 0.120026 0.950684 0.405670 0.146240 0.951538 0.405304 0.173950 0.952454 0.405304 0.203156 0.953308 0.405304 0.234131 0.954193 0.405304 0.267090 0.955078 0.405304 0.302246 0.955872 0.405304 0.339417 0.956696 0.405304 0.378571 0.957520 0.405304 0.419342 0.958313 0.405304 0.461670 0.959137 0.405304 0.505127 0.959930 0.405304 0.549286 0.960663 0.405304 0.592529 0.961456 0.405304 0.634064 0.962219 0.405304 0.673370 0.962921 0.405304 0.710297 0.963623 0.405304 0.744415 0.964355 0.405304 0.775513 0.965027 0.405304 0.803711 0.965729 0.405304 0.829254 0.966400 0.405304 0.852417 0.967041 0.405304 0.873505 0.967712 0.405304 0.892639 0.968353 0.405304 0.910095 0.968964 0.405304 0.925934 0.969543 0.405304 0.940308 0.970123 0.405304 0.953400 0.970734 0.405304 0.965210 0.971283 0.405304 0.975800 0.971802 0.405304 0.985229 0.972321 0.405304 0.993500 0.972870 0.405304 0.123199 0.963806 0.405304 0.149536 0.964600 0.405304 0.177399 0.965393 0.405304 0.206848 0.966156 0.405304 0.237976 0.966919 0.405304 0.271179 0.967682 0.405304 0.306519 0.968414 0.405304 0.343903 0.969147 0.405304 0.383240 0.969879 0.405304 0.424194 0.970581 0.405304 0.466583 0.971252 0.405304 0.510101 0.971954 0.405304 0.554199 0.972626 0.405304 0.597198 0.973297 0.405304 0.638458 0.973969 0.405304 0.677460 0.974579 0.405304 0.714050 0.975189 0.405304 0.747803 0.975800 0.405304 0.778534 0.976410 0.405304 0.806427 0.977020 0.405304 0.831635 0.977600 0.405304 0.854584 0.978149 0.405304 0.875427 0.978729 0.405304 0.894379 0.979279 0.405304 0.911591 0.979797 0.405304 0.927338 0.980316 0.405304 0.941559 0.980804 0.405304 0.954498 0.981293 0.405304 0.966156 0.981781 0.405304 0.976624 0.982208 0.405304 0.985931 0.982666 0.405304 0.994110 0.983093 0.405304 0.042145 0.003418 0.497894 0.064026 0.004181 0.497406 0.086884 0.005005 0.496857 0.110809 0.005829 0.496307 0.135925 0.006653 0.495697 0.162384 0.007538 0.495148 0.190277 0.008453 0.494476 0.219849 0.009369 0.493835 0.251251 0.010345 0.493103 0.284698 0.011292 0.492371 0.320312 0.012299 0.491638 0.357880 0.013306 0.490845 0.397369 0.014404 0.490051 0.438477 0.015503 0.489227 0.480835 0.016571 0.488403 0.524384 0.017700 0.487488 0.568115 0.018829 0.486603 0.610413 0.020020 0.485718 0.650879 0.021240 0.484802 0.689148 0.022430 0.483856 0.724854 0.023651 0.482910 0.757751 0.024933 0.481934 0.787659 0.026184 0.480957 0.814850 0.027466 0.479950 0.839478 0.028809 0.478973 0.861877 0.030151 0.477936 0.882233 0.031494 0.476898 0.900787 0.032867 0.475861 0.917664 0.034210 0.474823 0.933044 0.035614 0.473785 0.946960 0.037048 0.472717 0.959595 0.038452 0.471710 0.043671 0.024628 0.496887 0.065674 0.025482 0.496307 0.088654 0.026367 0.495789 0.112671 0.027252 0.495148 0.137970 0.028168 0.494476 0.164612 0.029144 0.493835 0.192719 0.030151 0.493134 0.222504 0.031158 0.492401 0.254120 0.032196 0.491699 0.287872 0.033264 0.490906 0.323669 0.034393 0.490051 0.361542 0.035492 0.489258 0.401276 0.036621 0.488403 0.442535 0.037781 0.487518 0.485107 0.038971 0.486633 0.528839 0.040222 0.485718 0.572540 0.041443 0.484833 0.614655 0.042694 0.483887 0.655090 0.043976 0.482910 0.693085 0.045319 0.481934 0.728546 0.046600 0.480957 0.761169 0.047974 0.479950 0.790833 0.049316 0.479004 0.817719 0.050690 0.477966 0.842133 0.052094 0.476959 0.864288 0.053528 0.475891 0.884460 0.054962 0.474884 0.902863 0.056427 0.473785 0.919525 0.057861 0.472778 0.934753 0.059418 0.471710 0.948547 0.060913 0.470642 0.961029 0.062378 0.469604 0.045288 0.046783 0.495789 0.067383 0.047760 0.495178 0.090515 0.048706 0.494507 0.114716 0.049744 0.493866 0.140137 0.050720 0.493134 0.166931 0.051819 0.492401 0.195221 0.052856 0.491699 0.225220 0.053955 0.490906 0.257111 0.055145 0.490112 0.291107 0.056274 0.489258 0.327240 0.057465 0.488434 0.365356 0.058655 0.487610 0.405304 0.059937 0.486725 0.446808 0.061188 0.485809 0.489563 0.062469 0.484833 0.533417 0.063812 0.483887 0.577057 0.065125 0.482910 0.619110 0.066437 0.481995 0.659302 0.067841 0.480988 0.697113 0.069214 0.480042 0.732330 0.070648 0.479004 0.764679 0.072113 0.477966 0.794006 0.073578 0.476990 0.820679 0.075012 0.475983 0.844818 0.076538 0.474884 0.866760 0.078033 0.473846 0.886749 0.079590 0.472809 0.904907 0.081146 0.471741 0.921448 0.082703 0.470673 0.936493 0.084259 0.469666 0.950134 0.085876 0.468597 0.962463 0.087463 0.467529 0.046997 0.070038 0.494507 0.069244 0.071075 0.493866 0.092499 0.072144 0.493134 0.116852 0.073212 0.492493 0.142487 0.074371 0.491699 0.169403 0.075500 0.490936 0.197937 0.076691 0.490143 0.228149 0.077942 0.489319 0.260284 0.079132 0.488464 0.294525 0.080414 0.487610 0.330933 0.081726 0.486725 0.369293 0.083008 0.485840 0.409485 0.084381 0.484863 0.451202 0.085785 0.483948 0.494232 0.087097 0.483032 0.538147 0.088531 0.482025 0.581726 0.089966 0.481079 0.623657 0.091400 0.480072 0.663635 0.092896 0.479034 0.701233 0.094360 0.478058 0.736176 0.095917 0.477020 0.768188 0.097504 0.475983 0.797272 0.099030 0.474945 0.823608 0.100616 0.473907 0.847534 0.102203 0.472809 0.869202 0.103821 0.471832 0.889008 0.105499 0.470734 0.907013 0.107117 0.469666 0.923340 0.108795 0.468628 0.938232 0.110504 0.467560 0.951691 0.112183 0.466492 0.963898 0.113892 0.465454 0.048828 0.094452 0.493225 0.071228 0.095612 0.492493 0.094635 0.096802 0.491730 0.119141 0.097961 0.490936 0.144897 0.099274 0.490143 0.172028 0.100464 0.489349 0.200775 0.101746 0.488464 0.231201 0.103088 0.487640 0.263580 0.104431 0.486755 0.298126 0.105804 0.485840 0.334747 0.107208 0.484924 0.373413 0.108612 0.484009 0.413818 0.110107 0.483032 0.455780 0.111572 0.482025 0.498871 0.113068 0.481110 0.542938 0.114594 0.480072 0.586426 0.116119 0.479126 0.628265 0.117676 0.478058 0.668030 0.119324 0.477020 0.705322 0.120880 0.476013 0.740021 0.122528 0.474976 0.771729 0.124237 0.473907 0.800476 0.125885 0.472870 0.826538 0.127563 0.471832 0.850250 0.129303 0.470734 0.871704 0.130981 0.469696 0.891235 0.132751 0.468628 0.909027 0.134491 0.467621 0.925262 0.136322 0.466553 0.939972 0.138123 0.465485 0.953278 0.139923 0.464447 0.965332 0.141724 0.463409 0.050720 0.120178 0.491760 0.073242 0.121490 0.490997 0.096832 0.122803 0.490143 0.121490 0.124115 0.489349 0.147400 0.125427 0.488556 0.174744 0.126831 0.487640 0.203674 0.128235 0.486755 0.234344 0.129669 0.485870 0.266998 0.131104 0.484924 0.301849 0.132599 0.484009 0.338776 0.134155 0.483063 0.377655 0.135651 0.482086 0.418274 0.137238 0.481110 0.460388 0.138824 0.480164 0.503784 0.140472 0.479126 0.547943 0.142120 0.478088 0.591278 0.143738 0.477081 0.632904 0.145447 0.476044 0.672485 0.147156 0.474976 0.709503 0.148895 0.473938 0.743866 0.150635 0.472900 0.775330 0.152466 0.471863 0.803741 0.154236 0.470825 0.829529 0.156067 0.469757 0.852966 0.157898 0.468719 0.874207 0.159729 0.467682 0.893555 0.161652 0.466553 0.911133 0.163483 0.465515 0.927155 0.165405 0.464447 0.941711 0.167358 0.463409 0.954834 0.169250 0.462341 0.966736 0.171265 0.461334 0.052734 0.147369 0.490173 0.075439 0.148804 0.489349 0.099091 0.150208 0.488556 0.123962 0.151642 0.487671 0.150085 0.153168 0.486786 0.177582 0.154663 0.485962 0.206757 0.156189 0.484985 0.237701 0.157745 0.484039 0.270599 0.159302 0.483063 0.305664 0.160950 0.482117 0.342926 0.162598 0.481140 0.382019 0.164246 0.480194 0.422913 0.165985 0.479156 0.465210 0.167694 0.478180 0.508728 0.169434 0.477112 0.552948 0.171265 0.476044 0.596130 0.173004 0.475006 0.637665 0.174866 0.473999 0.676971 0.176727 0.472900 0.713776 0.178558 0.471893 0.747803 0.180481 0.470825 0.778931 0.182404 0.469757 0.807007 0.184326 0.468750 0.832489 0.186249 0.467682 0.855621 0.188263 0.466644 0.876678 0.190247 0.465576 0.895813 0.192291 0.464508 0.913177 0.194244 0.463501 0.929016 0.196320 0.462402 0.943420 0.198395 0.461334 0.956421 0.200439 0.460327 0.968170 0.202576 0.459290 0.054871 0.176239 0.488586 0.077667 0.177795 0.487671 0.101501 0.179291 0.486847 0.126495 0.180939 0.485962 0.152802 0.182556 0.484985 0.180542 0.184143 0.484070 0.209930 0.185852 0.483124 0.241119 0.187592 0.482117 0.274292 0.189301 0.481140 0.309662 0.191071 0.480194 0.347168 0.192871 0.479156 0.386536 0.194672 0.478180 0.427643 0.196533 0.477112 0.470154 0.198364 0.476135 0.513855 0.200287 0.475037 0.558075 0.202271 0.474060 0.601166 0.204132 0.472961 0.642456 0.206146 0.471924 0.681549 0.208160 0.470886 0.717987 0.210144 0.469788 0.751740 0.212219 0.468750 0.782471 0.214294 0.467712 0.810272 0.216339 0.466644 0.835480 0.218445 0.465576 0.858337 0.220581 0.464569 0.879120 0.222748 0.463501 0.898071 0.224884 0.462402 0.915253 0.227081 0.461365 0.930908 0.229309 0.460388 0.945129 0.231476 0.459381 0.957947 0.233704 0.458344 0.969543 0.235962 0.457306 0.057098 0.206940 0.486847 0.080048 0.208649 0.485992 0.103973 0.210297 0.485016 0.129181 0.212036 0.484070 0.155670 0.213837 0.483185 0.183594 0.215607 0.482178 0.213226 0.217499 0.481232 0.244659 0.219330 0.480225 0.278107 0.221222 0.479187 0.313782 0.223145 0.478210 0.351501 0.225067 0.477173 0.391113 0.227112 0.476166 0.432495 0.229126 0.475037 0.475159 0.231110 0.474091 0.519043 0.233185 0.473022 0.563293 0.235321 0.471924 0.606201 0.237366 0.470947 0.647278 0.239532 0.469849 0.686066 0.241760 0.468781 0.722290 0.243866 0.467773 0.755707 0.246094 0.466675 0.786011 0.248322 0.465607 0.813507 0.250549 0.464569 0.838409 0.252838 0.463531 0.861053 0.255096 0.462463 0.881622 0.257446 0.461426 0.900330 0.259735 0.460388 0.917328 0.262115 0.459412 0.932800 0.264496 0.458374 0.946808 0.266876 0.457336 0.959503 0.269226 0.456390 0.970947 0.271667 0.455383 0.059448 0.239716 0.485046 0.082458 0.241547 0.484161 0.106598 0.243408 0.483215 0.131927 0.245300 0.482239 0.158630 0.247284 0.481262 0.186768 0.249237 0.480316 0.216553 0.251251 0.479248 0.248322 0.253326 0.478210 0.282013 0.255341 0.477203 0.317993 0.257477 0.476166 0.355957 0.259552 0.475128 0.395905 0.261749 0.474091 0.437439 0.263947 0.473022 0.480347 0.266113 0.472015 0.524323 0.268402 0.470947 0.568481 0.270660 0.469849 0.611267 0.272949 0.468811 0.652130 0.275299 0.467773 0.690674 0.277618 0.466675 0.726562 0.279999 0.465668 0.759613 0.282410 0.464600 0.789581 0.284729 0.463593 0.816772 0.287231 0.462494 0.841431 0.289673 0.461426 0.863739 0.292084 0.460419 0.884094 0.294678 0.459412 0.902527 0.297180 0.458374 0.919342 0.299683 0.457428 0.934631 0.302246 0.456421 0.948486 0.304810 0.455414 0.961029 0.307343 0.454468 0.972290 0.309937 0.453491 0.061768 0.274811 0.483215 0.084991 0.276855 0.482239 0.109283 0.278870 0.481293 0.134796 0.281006 0.480316 0.161682 0.283142 0.479279 0.190002 0.285278 0.478241 0.220093 0.287506 0.477203 0.252014 0.289673 0.476196 0.286041 0.291962 0.475159 0.322327 0.294250 0.474152 0.360565 0.296570 0.473114 0.400757 0.298889 0.472046 0.442505 0.301331 0.470978 0.485565 0.303711 0.469971 0.529755 0.306122 0.468903 0.573822 0.308655 0.467834 0.616394 0.311096 0.466736 0.656982 0.313599 0.465668 0.695251 0.316132 0.464600 0.730804 0.318634 0.463593 0.763519 0.321259 0.462494 0.793152 0.323792 0.461517 0.819977 0.326416 0.460449 0.844360 0.329071 0.459442 0.866394 0.331635 0.458466 0.886505 0.334351 0.457428 0.904785 0.337067 0.456421 0.921387 0.339752 0.455414 0.936493 0.342438 0.454468 0.950134 0.345093 0.453583 0.962494 0.347839 0.452606 0.973633 0.350616 0.451660 0.064240 0.312439 0.481293 0.087616 0.314667 0.480347 0.112061 0.316925 0.479340 0.137726 0.319183 0.478302 0.164825 0.321564 0.477264 0.193359 0.323853 0.476227 0.223694 0.326233 0.475189 0.255859 0.328644 0.474213 0.290253 0.331116 0.473114 0.326782 0.333557 0.472046 0.365265 0.336090 0.471039 0.405670 0.338623 0.469971 0.447662 0.341187 0.468903 0.490906 0.343750 0.467865 0.535187 0.346313 0.466766 0.579163 0.348999 0.465698 0.621521 0.351654 0.464691 0.661896 0.354340 0.463654 0.699829 0.356995 0.462616 0.735077 0.359741 0.461517 0.767365 0.362457 0.460541 0.796661 0.365173 0.459503 0.823181 0.367981 0.458496 0.847260 0.370789 0.457458 0.869049 0.373566 0.456543 0.888916 0.376373 0.455505 0.906982 0.379303 0.454529 0.923340 0.382019 0.453583 0.938263 0.384888 0.452637 0.951752 0.387695 0.451721 0.963989 0.390564 0.450775 0.974945 0.393494 0.449890 0.066772 0.352509 0.479340 0.090332 0.354919 0.478302 0.114868 0.357300 0.477325 0.140747 0.359772 0.476318 0.167999 0.362244 0.475250 0.196808 0.364777 0.474213 0.227356 0.367371 0.473175 0.259827 0.369934 0.472076 0.294495 0.372589 0.471100 0.331329 0.375275 0.470001 0.370087 0.377869 0.468933 0.410736 0.380585 0.467865 0.452911 0.383331 0.466766 0.496307 0.386017 0.465759 0.540680 0.388885 0.464691 0.584442 0.391602 0.463684 0.626678 0.394440 0.462616 0.666748 0.397308 0.461578 0.704346 0.400146 0.460571 0.739288 0.402954 0.459503 0.771240 0.405853 0.458496 0.800140 0.408722 0.457520 0.826355 0.411652 0.456543 0.850128 0.414612 0.455536 0.871704 0.417511 0.454559 0.891266 0.420471 0.453613 0.909180 0.423431 0.452637 0.925323 0.426331 0.451721 0.940063 0.429352 0.450775 0.953369 0.432251 0.449951 0.965454 0.435242 0.449066 0.976227 0.438232 0.448242 0.069366 0.394775 0.477325 0.093048 0.397339 0.476318 0.117798 0.399933 0.475250 0.143890 0.402557 0.474243 0.171295 0.405182 0.473236 0.200317 0.407898 0.472137 0.231140 0.410645 0.471100 0.263885 0.413361 0.470032 0.298828 0.416138 0.468964 0.335938 0.418976 0.467926 0.374969 0.421753 0.466858 0.415802 0.424622 0.465790 0.458221 0.427521 0.464722 0.501770 0.430328 0.463684 0.546204 0.433289 0.462646 0.589783 0.436188 0.461609 0.631775 0.439148 0.460571 0.671661 0.442108 0.459564 0.708984 0.445099 0.458527 0.743469 0.448120 0.457520 0.775024 0.451111 0.456573 0.803619 0.454071 0.455597 0.829529 0.457123 0.454559 0.852966 0.460175 0.453613 0.874268 0.463165 0.452667 0.893646 0.466248 0.451782 0.911255 0.469269 0.450836 0.927277 0.472351 0.449951 0.941833 0.475433 0.449066 0.954987 0.478394 0.448273 0.966858 0.481506 0.447388 0.977478 0.484619 0.446533 0.072083 0.438995 0.475311 0.095856 0.441650 0.474274 0.120789 0.444427 0.473236 0.147034 0.447266 0.472137 0.174683 0.450012 0.471130 0.203949 0.452881 0.470032 0.234955 0.455780 0.468964 0.267975 0.458618 0.467957 0.303284 0.461517 0.466888 0.340607 0.464508 0.465790 0.379883 0.467377 0.464813 0.421021 0.470367 0.463715 0.463531 0.473328 0.462708 0.507294 0.476349 0.461609 0.551758 0.479431 0.460602 0.595184 0.482391 0.459595 0.636993 0.485443 0.458618 0.676514 0.488586 0.457581 0.713470 0.491608 0.456573 0.747650 0.494751 0.455597 0.778870 0.497864 0.454590 0.807037 0.500854 0.453674 0.832611 0.503998 0.452698 0.855804 0.507172 0.451782 0.876801 0.510223 0.450897 0.895966 0.513367 0.450012 0.913330 0.516449 0.449158 0.929169 0.519562 0.448273 0.943542 0.522766 0.447418 0.956543 0.525787 0.446625 0.968262 0.528900 0.445892 0.978729 0.532074 0.445099 0.074829 0.484833 0.473267 0.098755 0.487640 0.472229 0.123871 0.490540 0.471161 0.150299 0.493439 0.470123 0.178101 0.496368 0.469086 0.207642 0.499359 0.467957 0.238922 0.502319 0.466888 0.272217 0.505280 0.465820 0.307770 0.508331 0.464813 0.345428 0.511414 0.463715 0.384949 0.514374 0.462708 0.426270 0.517487 0.461670 0.468964 0.520569 0.460632 0.512848 0.523651 0.459656 0.557312 0.526794 0.458618 0.600586 0.529877 0.457611 0.642090 0.532990 0.456604 0.681305 0.536163 0.455658 0.717957 0.539276 0.454620 0.751801 0.542419 0.453705 0.782593 0.545532 0.452698 0.810394 0.548645 0.451813 0.835632 0.551758 0.450897 0.858551 0.554810 0.450043 0.879333 0.557953 0.449188 0.898254 0.561005 0.448303 0.915436 0.564087 0.447479 0.931030 0.567169 0.446655 0.945221 0.570190 0.445892 0.958038 0.573181 0.445099 0.969574 0.576233 0.444611 0.979919 0.579254 0.444611 0.077606 0.531952 0.471161 0.101685 0.534882 0.470154 0.127014 0.537872 0.469086 0.153595 0.540863 0.467987 0.181641 0.543793 0.466980 0.211365 0.546875 0.465881 0.242950 0.549866 0.464844 0.276520 0.552917 0.463837 0.312347 0.555908 0.462769 0.350281 0.558990 0.461670 0.390045 0.562042 0.460632 0.431580 0.565125 0.459656 0.474426 0.568115 0.458649 0.518494 0.571228 0.457611 0.562897 0.574219 0.456696 0.605927 0.577240 0.455688 0.647217 0.580353 0.454620 0.686127 0.583344 0.453705 0.722382 0.586365 0.452759 0.755859 0.589417 0.451874 0.786285 0.592438 0.450958 0.813721 0.595428 0.450043 0.838684 0.598450 0.449188 0.861267 0.601349 0.448364 0.881805 0.604340 0.447479 0.900482 0.607330 0.446655 0.917450 0.610229 0.445923 0.932892 0.613129 0.445129 0.946869 0.616058 0.444611 0.959534 0.618896 0.444611 0.970947 0.621765 0.444611 0.981079 0.624573 0.444611 0.080475 0.578949 0.469116 0.104706 0.581787 0.468048 0.130157 0.584747 0.466980 0.156982 0.587677 0.465881 0.185211 0.590576 0.464874 0.215179 0.593506 0.463837 0.247009 0.596466 0.462769 0.280884 0.599304 0.461731 0.316986 0.602356 0.460724 0.355194 0.605316 0.459686 0.395203 0.608185 0.458679 0.436920 0.611145 0.457672 0.479950 0.614014 0.456726 0.524170 0.617035 0.455688 0.568420 0.619965 0.454712 0.611267 0.622833 0.453735 0.652283 0.625732 0.452820 0.690887 0.628723 0.451874 0.726776 0.631531 0.450989 0.759827 0.634430 0.450104 0.789886 0.637268 0.449219 0.817017 0.640106 0.448364 0.841644 0.643005 0.447510 0.863953 0.645721 0.446747 0.884247 0.648529 0.445923 0.902679 0.651337 0.445129 0.919434 0.654022 0.444611 0.934692 0.656799 0.444611 0.948486 0.659546 0.444611 0.960999 0.662231 0.444611 0.972229 0.664856 0.444611 0.982239 0.667511 0.444611 0.083374 0.624207 0.467010 0.107758 0.626953 0.465942 0.133423 0.629761 0.464905 0.160400 0.632629 0.463867 0.188843 0.635376 0.462860 0.219055 0.638184 0.461792 0.251129 0.641052 0.460724 0.285278 0.643799 0.459747 0.321686 0.646667 0.458679 0.360077 0.649384 0.457733 0.400391 0.652252 0.456726 0.442291 0.655060 0.455750 0.485443 0.657806 0.454742 0.529755 0.660583 0.453827 0.573975 0.663361 0.452820 0.616547 0.666077 0.451935 0.657288 0.668823 0.450989 0.695557 0.671570 0.450104 0.731079 0.674194 0.449219 0.763794 0.676910 0.448364 0.793457 0.679596 0.447510 0.820221 0.682251 0.446747 0.844543 0.684906 0.445953 0.866547 0.687469 0.445190 0.886627 0.690094 0.444611 0.904846 0.692719 0.444611 0.921387 0.695190 0.444611 0.936432 0.697723 0.444611 0.950073 0.700226 0.444611 0.962402 0.702637 0.444611 0.973480 0.705109 0.444611 0.983337 0.707581 0.444611 0.086304 0.667175 0.464905 0.110901 0.669769 0.463898 0.136688 0.672485 0.462860 0.163879 0.675171 0.461792 0.192535 0.677734 0.460754 0.222961 0.680420 0.459747 0.255341 0.683105 0.458710 0.289764 0.685699 0.457733 0.326416 0.688354 0.456757 0.365051 0.690918 0.455780 0.405640 0.693573 0.454742 0.447693 0.696198 0.453827 0.491058 0.698730 0.452881 0.535400 0.701355 0.451965 0.579437 0.703949 0.450989 0.621796 0.706451 0.450165 0.662262 0.709015 0.449249 0.700195 0.711548 0.448395 0.735382 0.713989 0.447571 0.767639 0.716492 0.446777 0.796875 0.718903 0.445953 0.823364 0.721313 0.445190 0.847382 0.723816 0.444611 0.869110 0.726166 0.444611 0.888916 0.728546 0.444611 0.906952 0.730896 0.444611 0.923279 0.733154 0.444611 0.938141 0.735474 0.444611 0.951630 0.737762 0.444611 0.963776 0.739990 0.444611 0.974701 0.742188 0.444611 0.984406 0.744354 0.444611 0.089325 0.707336 0.462921 0.114044 0.709808 0.461884 0.139984 0.712311 0.460785 0.167389 0.714783 0.459808 0.196259 0.717194 0.458801 0.226929 0.719696 0.457764 0.259521 0.722137 0.456787 0.294281 0.724579 0.455780 0.331238 0.727081 0.454803 0.370087 0.729401 0.453857 0.410858 0.731842 0.452911 0.453125 0.734283 0.451965 0.496582 0.736572 0.451111 0.541016 0.738983 0.450195 0.584900 0.741364 0.449249 0.626984 0.743622 0.448456 0.667114 0.745972 0.447571 0.704803 0.748260 0.446777 0.739563 0.750488 0.446014 0.771454 0.752747 0.445221 0.800262 0.754944 0.444611 0.826447 0.757141 0.444611 0.850159 0.759369 0.444611 0.871643 0.761444 0.444611 0.891174 0.763641 0.444611 0.908997 0.765747 0.444611 0.925140 0.767792 0.444611 0.939819 0.769806 0.444611 0.953125 0.771851 0.444611 0.965118 0.773834 0.444611 0.975891 0.775787 0.444611 0.985443 0.777710 0.444611 0.092377 0.744385 0.460846 0.117218 0.746613 0.459839 0.143402 0.748932 0.458832 0.170959 0.751221 0.457764 0.200043 0.753448 0.456787 0.230957 0.755737 0.455811 0.263763 0.757935 0.454834 0.298828 0.760162 0.453888 0.336090 0.762390 0.452911 0.375153 0.764557 0.452026 0.416107 0.766754 0.451111 0.458618 0.768921 0.450195 0.502167 0.771057 0.449341 0.546600 0.773193 0.448456 0.590302 0.775299 0.447632 0.632111 0.777344 0.446808 0.671967 0.779449 0.446014 0.709229 0.781464 0.445282 0.743652 0.783508 0.444611 0.775146 0.785522 0.444611 0.803650 0.787445 0.444611 0.829468 0.789459 0.444611 0.852844 0.791412 0.444611 0.874084 0.793304 0.444611 0.893433 0.795197 0.444611 0.910980 0.797089 0.444611 0.926941 0.798889 0.444611 0.941437 0.800720 0.444611 0.954529 0.802490 0.444611 0.966431 0.804260 0.444611 0.977020 0.806000 0.444611 0.986420 0.807678 0.444611 0.095428 0.778076 0.458832 0.120453 0.780060 0.457825 0.146790 0.782166 0.456879 0.174530 0.784149 0.455902 0.203888 0.786224 0.454834 0.235016 0.788300 0.453888 0.268097 0.790253 0.452972 0.303436 0.792236 0.452087 0.340881 0.794281 0.451111 0.380249 0.796204 0.450226 0.421356 0.798187 0.449371 0.464020 0.800110 0.448486 0.507721 0.802032 0.447662 0.552155 0.803925 0.446808 0.595490 0.805786 0.446075 0.637207 0.807678 0.445282 0.676666 0.809540 0.444611 0.713562 0.811310 0.444611 0.747711 0.813141 0.444611 0.778778 0.814911 0.444611 0.806915 0.816711 0.444611 0.832397 0.818420 0.444611 0.855499 0.820190 0.444611 0.876465 0.821838 0.444611 0.895569 0.823547 0.444611 0.912903 0.825226 0.444611 0.928680 0.826782 0.444611 0.942993 0.828430 0.444611 0.955963 0.829987 0.444611 0.967651 0.831573 0.444611 0.978149 0.833130 0.444611 0.987396 0.834595 0.444611 0.098511 0.808289 0.456879 0.123718 0.810120 0.455902 0.150238 0.812012 0.454895 0.178131 0.813812 0.453949 0.207733 0.815674 0.453033 0.239075 0.817505 0.452087 0.272430 0.819305 0.451141 0.308044 0.821106 0.450317 0.345764 0.822906 0.449371 0.385315 0.824615 0.448547 0.426666 0.826385 0.447662 0.469391 0.828156 0.446899 0.513275 0.829834 0.446106 0.557617 0.831543 0.445282 0.600769 0.833221 0.444611 0.642212 0.834900 0.444611 0.681396 0.836548 0.444611 0.717865 0.838165 0.444611 0.751648 0.839752 0.444611 0.782318 0.841400 0.444611 0.810059 0.842926 0.444611 0.835236 0.844513 0.444611 0.858093 0.846069 0.444611 0.878784 0.847534 0.444611 0.897675 0.849060 0.444611 0.914795 0.850494 0.444611 0.930359 0.851929 0.444611 0.944519 0.853363 0.444611 0.957306 0.854767 0.444611 0.968872 0.856171 0.444611 0.979187 0.857513 0.444611 0.988342 0.858795 0.444611 0.101624 0.835449 0.454956 0.127014 0.837158 0.454010 0.153687 0.838837 0.453033 0.181763 0.840485 0.452118 0.211548 0.842133 0.451202 0.243195 0.843781 0.450317 0.276825 0.845398 0.449402 0.312683 0.847046 0.448547 0.350616 0.848663 0.447662 0.390411 0.850220 0.446930 0.431946 0.851776 0.446106 0.474731 0.853333 0.445312 0.518768 0.854858 0.444611 0.563019 0.856415 0.444611 0.605957 0.857880 0.444611 0.647095 0.859406 0.444611 0.685974 0.860870 0.444611 0.722107 0.862274 0.444611 0.755432 0.863770 0.444611 0.785767 0.865173 0.444611 0.813171 0.866577 0.444611 0.838043 0.867950 0.444611 0.860596 0.869324 0.444611 0.881073 0.870636 0.444611 0.899658 0.871979 0.444611 0.916626 0.873260 0.444611 0.932007 0.874542 0.444611 0.945984 0.875824 0.444611 0.958618 0.877045 0.444611 0.970032 0.878265 0.444611 0.980225 0.879486 0.444611 0.989197 0.880646 0.444611 0.104767 0.859985 0.453064 0.130310 0.861511 0.452148 0.157135 0.863037 0.451202 0.185455 0.864502 0.450348 0.215424 0.865997 0.449432 0.247314 0.867523 0.448547 0.281189 0.868927 0.447693 0.317291 0.870392 0.446930 0.355499 0.871857 0.446106 0.395508 0.873260 0.445343 0.437134 0.874664 0.444611 0.480164 0.876038 0.444611 0.524170 0.877411 0.444611 0.568329 0.878815 0.444611 0.611084 0.880127 0.444611 0.651917 0.881470 0.444611 0.690399 0.882812 0.444611 0.726227 0.884094 0.444611 0.759186 0.885376 0.444611 0.789124 0.886658 0.444611 0.816162 0.887848 0.444611 0.840698 0.889099 0.444611 0.862976 0.890289 0.444611 0.883209 0.891510 0.444611 0.901642 0.892700 0.444611 0.918335 0.893829 0.444611 0.933594 0.894958 0.444611 0.947418 0.896088 0.444611 0.959900 0.897156 0.444611 0.971130 0.898254 0.444611 0.981171 0.899292 0.444611 0.990021 0.900330 0.444611 0.107941 0.882080 0.451263 0.133606 0.883514 0.450348 0.160645 0.884888 0.449432 0.189148 0.886200 0.448578 0.219299 0.887543 0.447784 0.251434 0.888885 0.446960 0.285583 0.890167 0.446167 0.321960 0.891479 0.445343 0.360321 0.892761 0.444672 0.400513 0.894043 0.444611 0.442322 0.895325 0.444611 0.485413 0.896545 0.444611 0.529572 0.897797 0.444611 0.573608 0.899017 0.444611 0.616058 0.900208 0.444611 0.656555 0.901398 0.444611 0.694763 0.902557 0.444611 0.730194 0.903717 0.444611 0.762787 0.904877 0.444611 0.792328 0.905975 0.444611 0.819092 0.907074 0.444611 0.843353 0.908173 0.444611 0.865295 0.909271 0.444611 0.885315 0.910278 0.444611 0.903534 0.911346 0.444611 0.920074 0.912354 0.444611 0.935120 0.913361 0.444611 0.948792 0.914368 0.444611 0.961090 0.915314 0.444611 0.972229 0.916260 0.444611 0.982117 0.917236 0.444611 0.990845 0.918091 0.444611 0.111053 0.902069 0.449493 0.136932 0.903320 0.448669 0.164124 0.904541 0.447784 0.192810 0.905731 0.446960 0.223206 0.906982 0.446198 0.255554 0.908142 0.445343 0.289948 0.909363 0.444672 0.326569 0.910522 0.444611 0.365143 0.911652 0.444611 0.405518 0.912750 0.444611 0.447479 0.913910 0.444611 0.490692 0.915070 0.444611 0.534882 0.916168 0.444611 0.578705 0.917267 0.444611 0.620972 0.918274 0.444611 0.661163 0.919373 0.444611 0.699036 0.920410 0.444611 0.734070 0.921448 0.444611 0.766266 0.922455 0.444611 0.795471 0.923431 0.444611 0.821899 0.924408 0.444611 0.845825 0.925385 0.444611 0.867584 0.926331 0.444611 0.887360 0.927277 0.444611 0.905365 0.928192 0.444611 0.921692 0.929077 0.444611 0.936584 0.929962 0.444611 0.950043 0.930847 0.444611 0.962250 0.931671 0.444611 0.973206 0.932556 0.444611 0.983002 0.933319 0.444611 0.991608 0.934143 0.444611 0.114288 0.920074 0.447815 0.140228 0.921234 0.447052 0.167633 0.922333 0.446198 0.196503 0.923401 0.445404 0.227142 0.924500 0.444672 0.259674 0.925568 0.444611 0.294342 0.926605 0.444611 0.331207 0.927673 0.444611 0.369904 0.928680 0.444611 0.410492 0.929718 0.444611 0.452637 0.930725 0.444611 0.495911 0.931702 0.444611 0.540131 0.932739 0.444611 0.583740 0.933685 0.444611 0.625702 0.934601 0.444611 0.665649 0.935577 0.444611 0.703156 0.936493 0.444611 0.737885 0.937378 0.444611 0.769684 0.938293 0.444611 0.798462 0.939178 0.444611 0.824585 0.940063 0.444611 0.848297 0.940918 0.444611 0.869751 0.941742 0.444611 0.889313 0.942566 0.444611 0.907104 0.943359 0.444611 0.923248 0.944153 0.444611 0.937988 0.944946 0.444611 0.951294 0.945740 0.444611 0.963379 0.946442 0.444611 0.974182 0.947174 0.444611 0.983826 0.947876 0.444611 0.992310 0.948547 0.444611 0.117432 0.936371 0.446259 0.143585 0.937378 0.445465 0.171112 0.938354 0.444733 0.200134 0.939331 0.444611 0.231018 0.940308 0.444611 0.263763 0.941254 0.444611 0.298676 0.942169 0.444611 0.335754 0.943146 0.444611 0.374725 0.944031 0.444611 0.415436 0.944946 0.444611 0.457672 0.945862 0.444611 0.501007 0.946716 0.444611 0.545227 0.947601 0.444611 0.588654 0.948456 0.444611 0.630402 0.949280 0.444611 0.669952 0.950134 0.444611 0.707123 0.950928 0.444611 0.741486 0.951721 0.444611 0.772949 0.952545 0.444611 0.801392 0.953308 0.444611 0.827179 0.954071 0.444611 0.850616 0.954834 0.444611 0.871857 0.955566 0.444611 0.891174 0.956299 0.444611 0.908752 0.957001 0.444611 0.924774 0.957672 0.444611 0.939301 0.958374 0.444611 0.952484 0.959015 0.444611 0.964386 0.959686 0.444611 0.975098 0.960327 0.444611 0.984619 0.960907 0.444611 0.992981 0.961517 0.444611 0.120575 0.951019 0.444763 0.146912 0.951904 0.444611 0.174622 0.952789 0.444611 0.203857 0.953674 0.444611 0.234863 0.954498 0.444611 0.267822 0.955322 0.444611 0.303040 0.956207 0.444611 0.340271 0.957001 0.444611 0.379425 0.957825 0.444611 0.420288 0.958588 0.444611 0.462646 0.959412 0.444611 0.506104 0.960205 0.444611 0.550232 0.960968 0.444611 0.593475 0.961731 0.444611 0.634888 0.962433 0.444611 0.674164 0.963196 0.444611 0.710999 0.963898 0.444611 0.744995 0.964600 0.444611 0.776093 0.965302 0.444611 0.804230 0.965973 0.444611 0.829742 0.966675 0.444611 0.852844 0.967285 0.444611 0.873840 0.967926 0.444611 0.892975 0.968536 0.444611 0.910370 0.969177 0.444611 0.926178 0.969757 0.444611 0.940582 0.970367 0.444611 0.953613 0.970917 0.444611 0.965393 0.971466 0.444611 0.975983 0.972015 0.444611 0.985382 0.972534 0.444611 0.993622 0.973053 0.444611 0.123749 0.964111 0.444611 0.150208 0.964874 0.444611 0.178009 0.965668 0.444611 0.207458 0.966431 0.444611 0.238708 0.967194 0.444611 0.271912 0.967926 0.444611 0.307312 0.968689 0.444611 0.344788 0.969421 0.444611 0.384064 0.970093 0.444611 0.425110 0.970795 0.444611 0.467529 0.971527 0.444611 0.510986 0.972198 0.444611 0.555115 0.972870 0.444611 0.598083 0.973511 0.444611 0.639282 0.974152 0.444611 0.678253 0.974823 0.444611 0.714691 0.975433 0.444611 0.748383 0.976044 0.444611 0.779114 0.976654 0.444611 0.806915 0.977203 0.444611 0.832123 0.977783 0.444611 0.855011 0.978363 0.444611 0.875763 0.978912 0.444611 0.894684 0.979431 0.444611 0.911865 0.979950 0.444611 0.927521 0.980469 0.444611 0.941803 0.980957 0.444611 0.954651 0.981445 0.444611 0.966339 0.981934 0.444611 0.976776 0.982391 0.444611 0.986053 0.982819 0.444611 0.994202 0.983276 0.444611 0.042450 0.003723 0.539276 0.064362 0.004517 0.538757 0.087219 0.005280 0.538269 0.111145 0.006134 0.537689 0.136322 0.007019 0.537048 0.162750 0.007874 0.536407 0.190704 0.008789 0.535767 0.220306 0.009705 0.535065 0.251740 0.010651 0.534363 0.285339 0.011688 0.533569 0.320892 0.012695 0.532837 0.358582 0.013702 0.531982 0.398102 0.014801 0.531189 0.439209 0.015869 0.530334 0.481720 0.016968 0.529510 0.525208 0.018127 0.528595 0.568878 0.019287 0.527679 0.611237 0.020447 0.526764 0.651611 0.021637 0.525787 0.689880 0.022858 0.524872 0.725525 0.024139 0.523834 0.758362 0.025330 0.522888 0.788300 0.026642 0.521912 0.815430 0.027954 0.520874 0.839966 0.029266 0.519836 0.862305 0.030609 0.518799 0.882660 0.031982 0.517761 0.901184 0.033325 0.516724 0.917999 0.034729 0.515564 0.933319 0.036133 0.514557 0.947266 0.037567 0.513458 0.959869 0.039001 0.512390 0.043976 0.024933 0.538269 0.066010 0.025787 0.537689 0.088989 0.026672 0.537048 0.113098 0.027618 0.536469 0.138367 0.028564 0.535797 0.165039 0.029510 0.535126 0.193146 0.030518 0.534363 0.222961 0.031525 0.533569 0.254639 0.032593 0.532837 0.288452 0.033691 0.532074 0.324310 0.034790 0.531250 0.362244 0.035919 0.530365 0.401978 0.037048 0.529510 0.443268 0.038208 0.528595 0.486023 0.039429 0.527679 0.529663 0.040619 0.526794 0.573334 0.041931 0.525818 0.615540 0.043152 0.524902 0.655853 0.044434 0.523895 0.693878 0.045776 0.522888 0.729279 0.047119 0.521912 0.761810 0.048462 0.520905 0.791443 0.049835 0.519836 0.818268 0.051208 0.518799 0.842621 0.052612 0.517792 0.864777 0.054047 0.516724 0.884918 0.055511 0.515656 0.903229 0.056976 0.514618 0.919891 0.058441 0.513519 0.935059 0.059906 0.512451 0.948853 0.061462 0.511383 0.961304 0.062958 0.510254 0.045593 0.047119 0.537140 0.067749 0.048096 0.536469 0.090881 0.049103 0.535797 0.115112 0.050079 0.535126 0.140594 0.051147 0.534393 0.167389 0.052155 0.533661 0.195740 0.053284 0.532837 0.225769 0.054382 0.532104 0.257721 0.055573 0.531250 0.291748 0.056732 0.530365 0.327911 0.057892 0.529572 0.366089 0.059113 0.528625 0.406067 0.060364 0.527740 0.447571 0.061646 0.526794 0.490448 0.062958 0.525818 0.534241 0.064270 0.524933 0.577911 0.065613 0.523956 0.619965 0.066986 0.522919 0.660095 0.068359 0.521942 0.697906 0.069763 0.520935 0.733032 0.071228 0.519897 0.765320 0.072632 0.518860 0.794647 0.074097 0.517792 0.821228 0.075592 0.516754 0.845306 0.077057 0.515686 0.867218 0.078613 0.514618 0.887146 0.080139 0.513580 0.905273 0.081696 0.512451 0.921814 0.083282 0.511383 0.936798 0.084839 0.510345 0.950409 0.086487 0.509216 0.962769 0.088104 0.508118 0.047333 0.070435 0.535797 0.069580 0.071442 0.535187 0.092865 0.072540 0.534393 0.117279 0.073639 0.533661 0.142883 0.074799 0.532867 0.169891 0.075928 0.532104 0.198456 0.077179 0.531250 0.228668 0.078369 0.530457 0.260895 0.079620 0.529572 0.295227 0.080872 0.528717 0.331604 0.082184 0.527802 0.370087 0.083527 0.526855 0.410278 0.084839 0.525879 0.452026 0.086212 0.524933 0.495117 0.087646 0.523956 0.539032 0.089020 0.522980 0.582550 0.090485 0.521973 0.624542 0.091980 0.520935 0.664429 0.093414 0.519928 0.701965 0.094940 0.518921 0.736908 0.096527 0.517822 0.768829 0.098022 0.516785 0.797852 0.099609 0.515686 0.824158 0.101196 0.514648 0.848022 0.102814 0.513611 0.869720 0.104462 0.512482 0.889374 0.106018 0.511444 0.907349 0.107727 0.510376 0.923706 0.109436 0.509308 0.938538 0.111053 0.508179 0.951996 0.112793 0.507080 0.964203 0.114532 0.506042 0.049164 0.094879 0.534485 0.071564 0.096039 0.533691 0.095001 0.097229 0.532867 0.119537 0.098419 0.532104 0.145325 0.099701 0.531281 0.172516 0.100952 0.530457 0.201294 0.102264 0.529602 0.231750 0.103577 0.528717 0.264221 0.104950 0.527802 0.298828 0.106354 0.526855 0.335510 0.107727 0.525940 0.374207 0.109161 0.524933 0.414612 0.110596 0.523987 0.456604 0.112122 0.522980 0.499847 0.113647 0.521973 0.543823 0.115143 0.520996 0.587372 0.116699 0.519928 0.629150 0.118286 0.518921 0.668823 0.119843 0.517883 0.706146 0.121521 0.516785 0.740784 0.123169 0.515747 0.772400 0.124786 0.514709 0.801117 0.126495 0.513611 0.827118 0.128174 0.512573 0.850739 0.129913 0.511444 0.872192 0.131653 0.510376 0.891663 0.133392 0.509338 0.909454 0.135162 0.508240 0.925629 0.136993 0.507141 0.940277 0.138763 0.506104 0.953583 0.140625 0.505005 0.965576 0.142487 0.503906 0.051147 0.120667 0.532959 0.073639 0.121918 0.532166 0.097229 0.123260 0.531372 0.121948 0.124603 0.530487 0.147888 0.125916 0.529663 0.175293 0.127319 0.528748 0.204254 0.128754 0.527832 0.234955 0.130188 0.526917 0.267700 0.131653 0.525940 0.302521 0.133148 0.524963 0.339508 0.134674 0.524048 0.378448 0.136261 0.523041 0.419128 0.137787 0.522034 0.461304 0.139404 0.521057 0.504700 0.141083 0.519958 0.548859 0.142700 0.518951 0.592163 0.144379 0.517883 0.633820 0.146088 0.516876 0.673309 0.147797 0.515778 0.710327 0.149536 0.514709 0.744659 0.151306 0.513672 0.775970 0.153107 0.512573 0.804352 0.154907 0.511536 0.830109 0.156708 0.510406 0.853424 0.158569 0.509338 0.874664 0.160461 0.508240 0.893921 0.162292 0.507172 0.911530 0.164215 0.506104 0.927521 0.166138 0.505005 0.942017 0.168060 0.503937 0.955170 0.170013 0.502838 0.967041 0.171997 0.501831 0.053162 0.147949 0.531372 0.075836 0.149292 0.530548 0.099548 0.150757 0.529663 0.124451 0.152222 0.528748 0.150543 0.153687 0.527832 0.178131 0.155182 0.526978 0.207336 0.156769 0.525970 0.238281 0.158325 0.525055 0.271271 0.159943 0.524048 0.306396 0.161560 0.523071 0.343658 0.163208 0.522095 0.382904 0.164917 0.521057 0.423737 0.166595 0.520050 0.466125 0.168365 0.518982 0.509705 0.170166 0.517944 0.553833 0.171906 0.516907 0.597076 0.173737 0.515778 0.638580 0.175568 0.514771 0.677795 0.177399 0.513702 0.714569 0.179260 0.512604 0.748505 0.181152 0.511566 0.779541 0.183105 0.510468 0.807617 0.185059 0.509369 0.833069 0.186981 0.508270 0.856171 0.188965 0.507172 0.877167 0.191010 0.506165 0.896210 0.192993 0.505035 0.913574 0.195038 0.503937 0.929413 0.197113 0.502930 0.943726 0.199158 0.501862 0.956726 0.201233 0.500793 0.968414 0.203278 0.499786 0.055298 0.176819 0.529663 0.078094 0.178345 0.528778 0.101959 0.179932 0.527893 0.127045 0.181519 0.526978 0.153320 0.183136 0.526031 0.181122 0.184814 0.525085 0.210480 0.186462 0.524078 0.241760 0.188171 0.523071 0.274994 0.189941 0.522095 0.310425 0.191711 0.521088 0.347961 0.193542 0.520050 0.387421 0.195374 0.518982 0.428497 0.197205 0.517975 0.471130 0.199066 0.516907 0.514862 0.201050 0.515808 0.558990 0.202942 0.514801 0.602112 0.204895 0.513702 0.643372 0.206909 0.512634 0.682343 0.208893 0.511566 0.718811 0.210907 0.510468 0.752441 0.212921 0.509430 0.783112 0.214996 0.508331 0.810913 0.217133 0.507202 0.836029 0.219208 0.506226 0.858826 0.221375 0.505096 0.879639 0.223541 0.503998 0.898468 0.225677 0.502960 0.915680 0.227905 0.501923 0.931305 0.230103 0.500824 0.945435 0.232300 0.499786 0.958252 0.234528 0.498749 0.969788 0.236755 0.497742 0.057556 0.207550 0.527924 0.080475 0.209229 0.527008 0.104523 0.210968 0.526031 0.129700 0.212738 0.525085 0.156189 0.214508 0.524170 0.184174 0.216309 0.523102 0.213776 0.218109 0.522156 0.245270 0.220032 0.521118 0.278839 0.221985 0.520081 0.314484 0.223846 0.519043 0.352325 0.225830 0.518036 0.392029 0.227783 0.516968 0.433380 0.229828 0.515900 0.476166 0.231903 0.514862 0.520050 0.234009 0.513733 0.564209 0.236023 0.512726 0.607147 0.238159 0.511597 0.648163 0.240326 0.510529 0.686920 0.242493 0.509430 0.723114 0.244690 0.508362 0.756348 0.246857 0.507294 0.786682 0.249146 0.506226 0.814178 0.251434 0.505096 0.838989 0.253662 0.504028 0.861572 0.255981 0.503021 0.882080 0.258331 0.501923 0.900696 0.260620 0.500854 0.917725 0.262970 0.499847 0.933075 0.265320 0.498779 0.947144 0.267761 0.497772 0.959808 0.270142 0.496735 0.971191 0.272491 0.495789 0.059845 0.240387 0.526062 0.082916 0.242188 0.525116 0.107086 0.244110 0.524170 0.132477 0.246033 0.523102 0.159180 0.247986 0.522186 0.187378 0.249969 0.521118 0.217224 0.251984 0.520142 0.248962 0.254028 0.519073 0.282776 0.256134 0.518036 0.318787 0.258240 0.516998 0.356873 0.260376 0.515930 0.396851 0.262573 0.514862 0.438324 0.264740 0.513794 0.481354 0.266937 0.512726 0.525269 0.269196 0.511658 0.569519 0.271454 0.510590 0.612213 0.273773 0.509491 0.653015 0.276123 0.508392 0.691528 0.278473 0.507324 0.727356 0.280884 0.506256 0.760284 0.283234 0.505188 0.790283 0.285675 0.504089 0.817383 0.288147 0.503021 0.841919 0.290558 0.501984 0.864227 0.293091 0.500946 0.884521 0.295593 0.499847 0.902985 0.298065 0.498810 0.919708 0.300568 0.497772 0.934967 0.303162 0.496826 0.948822 0.305725 0.495789 0.961304 0.308289 0.494781 0.972504 0.310852 0.493866 0.062225 0.275574 0.524200 0.085449 0.277588 0.523132 0.109802 0.279663 0.522186 0.135315 0.281738 0.521149 0.162262 0.283905 0.520142 0.190643 0.286072 0.519135 0.220734 0.288269 0.518066 0.252747 0.290527 0.517059 0.286835 0.292816 0.515930 0.323151 0.295074 0.514893 0.361511 0.297455 0.513855 0.401672 0.299835 0.512756 0.443420 0.302155 0.511658 0.486603 0.304596 0.510590 0.530701 0.306976 0.509521 0.574768 0.309540 0.508392 0.617371 0.312042 0.507324 0.657898 0.314453 0.506287 0.696106 0.317017 0.505188 0.731628 0.319611 0.504089 0.764191 0.322174 0.503052 0.793793 0.324799 0.502014 0.820618 0.327393 0.500946 0.844849 0.329987 0.499878 0.866913 0.332672 0.498810 0.886932 0.335297 0.497864 0.905182 0.338013 0.496826 0.921722 0.340729 0.495819 0.936798 0.343414 0.494873 0.950470 0.346130 0.493927 0.962799 0.348877 0.492920 0.973846 0.351562 0.491943 0.064697 0.313293 0.522217 0.088074 0.315491 0.521240 0.112579 0.317749 0.520172 0.138275 0.320038 0.519165 0.165375 0.322327 0.518158 0.194031 0.324738 0.517059 0.224335 0.327087 0.515961 0.256622 0.329529 0.514984 0.291046 0.332062 0.513855 0.327576 0.334473 0.512787 0.366211 0.337006 0.511719 0.406647 0.339600 0.510620 0.448578 0.342102 0.509552 0.491913 0.344696 0.508484 0.536163 0.347321 0.507385 0.580139 0.349976 0.506287 0.622498 0.352631 0.505219 0.662781 0.355286 0.504120 0.700714 0.358002 0.503113 0.735840 0.360748 0.502014 0.768097 0.363495 0.500977 0.797333 0.366241 0.499939 0.823792 0.369049 0.498871 0.847778 0.371796 0.497894 0.869568 0.374603 0.496857 0.889343 0.377380 0.495911 0.907349 0.380249 0.494904 0.923706 0.383118 0.493927 0.938629 0.385864 0.492950 0.952087 0.388794 0.492035 0.964264 0.391693 0.491089 0.975189 0.394501 0.490173 0.067261 0.353333 0.520233 0.090790 0.355743 0.519165 0.115448 0.358215 0.518158 0.141327 0.360657 0.517120 0.168610 0.363220 0.516022 0.197479 0.365784 0.514984 0.228027 0.368317 0.513885 0.260559 0.370941 0.512787 0.295288 0.373596 0.511780 0.332153 0.376221 0.510651 0.371033 0.378906 0.509552 0.411621 0.381592 0.508514 0.453857 0.384308 0.507416 0.497375 0.387085 0.506378 0.541687 0.389832 0.505280 0.585480 0.392609 0.504211 0.627655 0.395508 0.503113 0.667633 0.398254 0.502045 0.705261 0.401184 0.501007 0.740143 0.404083 0.499969 0.771942 0.406952 0.498932 0.800812 0.409851 0.497894 0.826904 0.412720 0.496887 0.850647 0.415619 0.495941 0.872162 0.418610 0.494904 0.891724 0.421509 0.493988 0.909546 0.424469 0.493042 0.925720 0.427460 0.492035 0.940369 0.430420 0.491150 0.953705 0.433380 0.490173 0.965729 0.436401 0.489319 0.976471 0.439301 0.488464 0.069855 0.395691 0.518188 0.093536 0.398254 0.517151 0.118378 0.400909 0.516022 0.144409 0.403503 0.515015 0.171936 0.406219 0.513916 0.201050 0.408905 0.512848 0.231812 0.411621 0.511810 0.264648 0.414398 0.510742 0.299683 0.417206 0.509583 0.336731 0.419922 0.508514 0.375916 0.422852 0.507477 0.416779 0.425629 0.506409 0.459167 0.428558 0.505280 0.502808 0.431427 0.504211 0.547211 0.434326 0.503174 0.590881 0.437286 0.502136 0.632812 0.440277 0.501007 0.672516 0.443207 0.500000 0.709808 0.446198 0.498962 0.744324 0.449219 0.497925 0.775726 0.452148 0.496979 0.804291 0.455231 0.495941 0.830078 0.458191 0.494995 0.853485 0.461243 0.494019 0.874756 0.464325 0.493042 0.894073 0.467316 0.492065 0.911652 0.470367 0.491150 0.927643 0.473480 0.490265 0.942139 0.476501 0.489349 0.955261 0.479553 0.488464 0.967133 0.482666 0.487640 0.977692 0.485687 0.486847 0.072540 0.439941 0.516083 0.096405 0.442688 0.515045 0.121399 0.445465 0.513916 0.147644 0.448242 0.512909 0.175323 0.451111 0.511810 0.204651 0.453949 0.510742 0.235687 0.456757 0.509674 0.268829 0.459686 0.508575 0.304047 0.462555 0.507538 0.341461 0.465515 0.506439 0.380890 0.468567 0.505310 0.421936 0.471436 0.504272 0.464569 0.474426 0.503204 0.508362 0.477539 0.502136 0.552734 0.480530 0.501038 0.596252 0.483582 0.500000 0.637939 0.486633 0.498962 0.677368 0.489655 0.498016 0.714355 0.492798 0.496979 0.748383 0.495819 0.495972 0.779510 0.498932 0.494995 0.807678 0.502045 0.494019 0.833160 0.505127 0.493073 0.856293 0.508270 0.492096 0.877319 0.511414 0.491180 0.896393 0.514465 0.490295 0.913727 0.517639 0.489349 0.929565 0.520752 0.488556 0.943878 0.523834 0.487671 0.956818 0.526978 0.486847 0.968475 0.529968 0.486053 0.978912 0.533142 0.485260 0.075317 0.485840 0.513947 0.099335 0.488708 0.512909 0.124481 0.491638 0.511841 0.150909 0.494476 0.510773 0.178772 0.497467 0.509674 0.208344 0.500458 0.508575 0.239685 0.503418 0.507538 0.273041 0.506439 0.506439 0.308624 0.509430 0.505402 0.346252 0.512451 0.504272 0.385956 0.515533 0.503204 0.427246 0.518616 0.502167 0.470001 0.521667 0.501129 0.513916 0.524872 0.500061 0.558289 0.527893 0.499054 0.601593 0.531036 0.498016 0.643066 0.534210 0.497009 0.682251 0.537292 0.496063 0.718811 0.540405 0.494995 0.752502 0.543518 0.494080 0.783234 0.546631 0.493073 0.811066 0.549774 0.492096 0.836182 0.552856 0.491241 0.859039 0.555969 0.490295 0.879822 0.559082 0.489380 0.898651 0.562103 0.488586 0.915802 0.565216 0.487671 0.931396 0.568298 0.486908 0.945557 0.571289 0.486115 0.958313 0.574310 0.485291 0.969818 0.577332 0.485107 0.980133 0.580261 0.485107 0.078125 0.532990 0.511932 0.102264 0.535980 0.510803 0.127594 0.539032 0.509705 0.154205 0.541931 0.508667 0.182312 0.544983 0.507568 0.212128 0.547974 0.506500 0.243652 0.550995 0.505402 0.277344 0.554047 0.504364 0.313171 0.557037 0.503235 0.351166 0.560089 0.502228 0.390991 0.563141 0.501129 0.432526 0.566132 0.500122 0.475464 0.569244 0.499084 0.519531 0.572296 0.498047 0.563904 0.575317 0.497009 0.606964 0.578400 0.496063 0.648193 0.581512 0.495026 0.686981 0.584442 0.494110 0.723236 0.587524 0.493103 0.756592 0.590485 0.492126 0.786896 0.593506 0.491241 0.814362 0.596558 0.490356 0.839203 0.599457 0.489471 0.861786 0.602478 0.488586 0.882263 0.605499 0.487762 0.900879 0.608368 0.486908 0.917847 0.611298 0.486115 0.933228 0.614227 0.485291 0.947205 0.617096 0.485107 0.959808 0.619965 0.485107 0.971161 0.622803 0.485107 0.981323 0.625610 0.485107 0.080963 0.579987 0.509766 0.105286 0.582886 0.508667 0.130798 0.585876 0.507568 0.157593 0.588684 0.506531 0.185913 0.591675 0.505432 0.215942 0.594635 0.504364 0.247742 0.597534 0.503326 0.281677 0.600464 0.502289 0.317810 0.603333 0.501190 0.356049 0.606354 0.500122 0.396210 0.609314 0.499084 0.437897 0.612183 0.498077 0.480988 0.615173 0.497101 0.525146 0.618134 0.496094 0.569427 0.621033 0.495117 0.612305 0.623932 0.494110 0.653259 0.626831 0.493103 0.691711 0.629700 0.492218 0.727631 0.632629 0.491302 0.760529 0.635437 0.490417 0.790527 0.638336 0.489471 0.817627 0.641174 0.488617 0.842133 0.643982 0.487793 0.864441 0.646790 0.486938 0.884674 0.649597 0.486115 0.903076 0.652374 0.485382 0.919800 0.655121 0.485107 0.935028 0.657837 0.485107 0.948822 0.660492 0.485107 0.961273 0.663208 0.485107 0.972443 0.665833 0.485107 0.982452 0.668427 0.485107 0.083893 0.625214 0.507629 0.108337 0.628021 0.506531 0.134033 0.630829 0.505463 0.161011 0.633575 0.504395 0.189575 0.636414 0.503357 0.219757 0.639221 0.502319 0.251862 0.642029 0.501190 0.286133 0.644897 0.500153 0.322540 0.647614 0.499115 0.361023 0.650482 0.498077 0.401367 0.653290 0.497131 0.443237 0.656006 0.496124 0.486572 0.658813 0.495148 0.530853 0.661591 0.494141 0.574921 0.664307 0.493134 0.617554 0.667053 0.492218 0.658173 0.669769 0.491333 0.696381 0.672516 0.490417 0.731964 0.675262 0.489502 0.764496 0.677887 0.488617 0.794037 0.680573 0.487793 0.820801 0.683289 0.486938 0.845032 0.685822 0.486176 0.867065 0.688446 0.485382 0.887054 0.691040 0.485107 0.905182 0.693573 0.485107 0.921722 0.696136 0.485107 0.936768 0.698608 0.485107 0.950378 0.701141 0.485107 0.962677 0.703613 0.485107 0.973724 0.705994 0.485107 0.983521 0.708405 0.485107 0.086853 0.668091 0.505554 0.111481 0.670776 0.504425 0.137329 0.673492 0.503357 0.164490 0.676056 0.502319 0.193268 0.678772 0.501251 0.223694 0.681396 0.500244 0.256073 0.683990 0.499207 0.290649 0.686676 0.498169 0.327271 0.689270 0.497162 0.366028 0.691925 0.496124 0.406586 0.694580 0.495148 0.448700 0.697113 0.494141 0.492096 0.699738 0.493225 0.536499 0.702332 0.492249 0.580414 0.704834 0.491333 0.622833 0.707397 0.490417 0.663116 0.709869 0.489563 0.701019 0.712433 0.488678 0.736176 0.714935 0.487793 0.768341 0.717346 0.487000 0.797516 0.719818 0.486206 0.823975 0.722290 0.485413 0.847870 0.724609 0.485107 0.869629 0.727081 0.485107 0.889374 0.729431 0.485107 0.907318 0.731689 0.485107 0.923615 0.734039 0.485107 0.938446 0.736267 0.485107 0.951904 0.738525 0.485107 0.964050 0.740814 0.485107 0.974945 0.742950 0.485107 0.984619 0.745148 0.485107 0.089874 0.708221 0.503418 0.114655 0.710754 0.502380 0.140656 0.713165 0.501312 0.168030 0.715637 0.500244 0.197021 0.718170 0.499207 0.227631 0.720551 0.498199 0.260315 0.723053 0.497162 0.295166 0.725494 0.496185 0.332123 0.727905 0.495178 0.371063 0.730316 0.494232 0.411896 0.732758 0.493225 0.454163 0.735107 0.492340 0.497620 0.737488 0.491333 0.542053 0.739838 0.490448 0.585876 0.742188 0.489563 0.628021 0.744537 0.488678 0.667999 0.746765 0.487823 0.705566 0.749084 0.487030 0.740356 0.751343 0.486206 0.772125 0.753540 0.485413 0.800964 0.755798 0.485107 0.827026 0.757996 0.485107 0.850647 0.760101 0.485107 0.872131 0.762268 0.485107 0.891571 0.764343 0.485107 0.909363 0.766449 0.485107 0.925476 0.768555 0.485107 0.940125 0.770569 0.485107 0.953369 0.772583 0.485107 0.965393 0.774597 0.485107 0.976105 0.776520 0.485107 0.985626 0.778442 0.485107 0.092926 0.745209 0.501312 0.117828 0.747528 0.500275 0.144012 0.749756 0.499237 0.171600 0.752045 0.498199 0.200806 0.754303 0.497253 0.231689 0.756500 0.496216 0.264618 0.758759 0.495178 0.299713 0.761017 0.494263 0.336914 0.763153 0.493256 0.376160 0.765381 0.492340 0.417114 0.767578 0.491364 0.459564 0.769684 0.490509 0.503235 0.771851 0.489594 0.547638 0.773956 0.488708 0.591278 0.776031 0.487915 0.633148 0.778168 0.487030 0.672821 0.780182 0.486237 0.710022 0.782196 0.485443 0.744446 0.784241 0.485107 0.775818 0.786255 0.485107 0.804260 0.788208 0.485107 0.830017 0.790222 0.485107 0.853333 0.792084 0.485107 0.874542 0.794006 0.485107 0.893799 0.795837 0.485107 0.911346 0.797729 0.485107 0.927277 0.799561 0.485107 0.941742 0.801361 0.485107 0.954803 0.803162 0.485107 0.966675 0.804901 0.485107 0.977234 0.806580 0.485107 0.986603 0.808289 0.485107 0.096008 0.778778 0.499268 0.121063 0.780853 0.498291 0.147369 0.782898 0.497284 0.175201 0.784943 0.496216 0.204590 0.786987 0.495239 0.235718 0.788971 0.494293 0.268921 0.790985 0.493286 0.304321 0.793030 0.492371 0.341766 0.794983 0.491455 0.381226 0.796967 0.490509 0.422333 0.798859 0.489655 0.464996 0.800781 0.488770 0.508759 0.802734 0.487915 0.553162 0.804596 0.487091 0.596588 0.806519 0.486237 0.638153 0.808350 0.485443 0.677582 0.810181 0.485107 0.714417 0.812012 0.485107 0.748444 0.813812 0.485107 0.779449 0.815582 0.485107 0.807526 0.817352 0.485107 0.832947 0.819092 0.485107 0.855988 0.820770 0.485107 0.876923 0.822479 0.485107 0.895935 0.824127 0.485107 0.913239 0.825775 0.485107 0.929016 0.827423 0.485107 0.943268 0.829010 0.485107 0.956238 0.830597 0.485107 0.967896 0.832153 0.485107 0.978333 0.833618 0.485107 0.987579 0.835175 0.485107 0.099121 0.808960 0.497284 0.124359 0.810852 0.496277 0.150848 0.812653 0.495300 0.178833 0.814484 0.494293 0.208435 0.816376 0.493286 0.239838 0.818146 0.492371 0.273315 0.819946 0.491455 0.308929 0.821777 0.490540 0.346649 0.823517 0.489655 0.386322 0.825287 0.488770 0.427612 0.826996 0.487946 0.470367 0.828766 0.487091 0.514313 0.830475 0.486298 0.558624 0.832153 0.485535 0.601776 0.833832 0.485107 0.643097 0.835510 0.485107 0.682251 0.837128 0.485107 0.718719 0.838776 0.485107 0.752350 0.840393 0.485107 0.782928 0.841919 0.485107 0.810669 0.843536 0.485107 0.835754 0.845032 0.485107 0.858551 0.846588 0.485107 0.879211 0.848083 0.485107 0.898010 0.849548 0.485107 0.915161 0.850983 0.485107 0.930695 0.852478 0.485107 0.944794 0.853851 0.485107 0.957581 0.855255 0.485107 0.969086 0.856628 0.485107 0.979401 0.857971 0.485107 0.988495 0.859314 0.485107 0.102203 0.836090 0.495331 0.127625 0.837799 0.494293 0.154297 0.839447 0.493317 0.182495 0.841095 0.492401 0.212311 0.842773 0.491486 0.243927 0.844391 0.490570 0.277649 0.846039 0.489655 0.313538 0.847626 0.488800 0.351501 0.849213 0.487946 0.391357 0.850800 0.487152 0.432892 0.852325 0.486298 0.475769 0.853912 0.485565 0.519806 0.855438 0.485107 0.563965 0.856934 0.485107 0.606964 0.858459 0.485107 0.648010 0.859955 0.485107 0.686737 0.861389 0.485107 0.722900 0.862854 0.485107 0.756195 0.864288 0.485107 0.786377 0.865692 0.485107 0.813721 0.867096 0.485107 0.838531 0.868439 0.485107 0.861023 0.869812 0.485107 0.881470 0.871155 0.485107 0.900055 0.872437 0.485107 0.916962 0.873749 0.485107 0.932312 0.875031 0.485107 0.946259 0.876282 0.485107 0.958862 0.877502 0.485107 0.970245 0.878723 0.485107 0.980377 0.879913 0.485107 0.989349 0.881104 0.485107 0.105377 0.860565 0.493408 0.130920 0.862061 0.492493 0.157745 0.863586 0.491547 0.186127 0.865082 0.490570 0.216217 0.866577 0.489716 0.248047 0.868042 0.488800 0.282013 0.869476 0.487976 0.318115 0.870911 0.487152 0.356384 0.872375 0.486328 0.396484 0.873779 0.485565 0.438080 0.875183 0.485107 0.481140 0.876556 0.485107 0.525146 0.877930 0.485107 0.569305 0.879272 0.485107 0.612000 0.880646 0.485107 0.652802 0.881958 0.485107 0.691223 0.883240 0.485107 0.726959 0.884552 0.485107 0.759827 0.885803 0.485107 0.789703 0.887085 0.485107 0.816772 0.888336 0.485107 0.841187 0.889526 0.485107 0.863434 0.890747 0.485107 0.883636 0.891937 0.485107 0.901978 0.893097 0.485107 0.918701 0.894257 0.485107 0.933899 0.895416 0.485107 0.947662 0.896484 0.485107 0.960144 0.897583 0.485107 0.971313 0.898651 0.485107 0.981354 0.899658 0.485107 0.990204 0.900696 0.485107 0.108521 0.882599 0.491547 0.134247 0.884003 0.490662 0.161255 0.885315 0.489746 0.189819 0.886688 0.488861 0.220032 0.888000 0.488037 0.252197 0.889343 0.487213 0.286407 0.890656 0.486328 0.322784 0.891907 0.485657 0.361237 0.893250 0.485107 0.401489 0.894501 0.485107 0.443237 0.895721 0.485107 0.486450 0.897003 0.485107 0.530609 0.898254 0.485107 0.574493 0.899445 0.485107 0.616974 0.900635 0.485107 0.657440 0.901825 0.485107 0.695557 0.902985 0.485107 0.730957 0.904144 0.485107 0.763428 0.905273 0.485107 0.792938 0.906403 0.485107 0.819641 0.907501 0.485107 0.843781 0.908569 0.485107 0.865753 0.909637 0.485107 0.885742 0.910706 0.485107 0.903839 0.911713 0.485107 0.920380 0.912750 0.485107 0.935425 0.913727 0.485107 0.949005 0.914703 0.485107 0.961334 0.915680 0.485107 0.972382 0.916626 0.485107 0.982300 0.917542 0.485107 0.990997 0.918427 0.485107 0.111694 0.902527 0.489746 0.137543 0.903778 0.488861 0.164764 0.904999 0.488037 0.193542 0.906189 0.487213 0.223938 0.907410 0.486420 0.256317 0.908569 0.485657 0.290802 0.909790 0.485107 0.327393 0.910919 0.485107 0.366089 0.912048 0.485107 0.406464 0.913208 0.485107 0.448456 0.914337 0.485107 0.491699 0.915436 0.485107 0.535919 0.916565 0.485107 0.579651 0.917633 0.485107 0.621887 0.918701 0.485107 0.662018 0.919708 0.485107 0.699768 0.920807 0.485107 0.734833 0.921814 0.485107 0.766937 0.922821 0.485107 0.796021 0.923798 0.485107 0.822418 0.924805 0.485107 0.846283 0.925751 0.485107 0.868011 0.926697 0.485107 0.887756 0.927612 0.485107 0.905640 0.928497 0.485107 0.922028 0.929443 0.485107 0.936829 0.930267 0.485107 0.950317 0.931152 0.485107 0.962463 0.932007 0.485107 0.973419 0.932831 0.485107 0.983154 0.933624 0.485107 0.991760 0.934418 0.485107 0.114868 0.920532 0.488098 0.140839 0.921631 0.487244 0.168243 0.922729 0.486450 0.197205 0.923798 0.485657 0.227783 0.924896 0.485107 0.260437 0.925934 0.485107 0.295197 0.927032 0.485107 0.332001 0.928040 0.485107 0.370850 0.929077 0.485107 0.411469 0.930115 0.485107 0.453583 0.931091 0.485107 0.496857 0.932098 0.485107 0.541016 0.933044 0.485107 0.584625 0.934021 0.485107 0.626587 0.934967 0.485107 0.666412 0.935883 0.485107 0.703888 0.936829 0.485107 0.738556 0.937744 0.485107 0.770264 0.938629 0.485107 0.799042 0.939514 0.485107 0.825073 0.940369 0.485107 0.848694 0.941193 0.485107 0.870148 0.942047 0.485107 0.889679 0.942871 0.485107 0.907410 0.943665 0.485107 0.923523 0.944458 0.485107 0.938232 0.945190 0.485107 0.951538 0.945953 0.485107 0.963562 0.946716 0.485107 0.974365 0.947418 0.485107 0.983978 0.948151 0.485107 0.992462 0.948822 0.485107 0.118073 0.936768 0.486450 0.144196 0.937744 0.485687 0.171722 0.938721 0.485107 0.200867 0.939697 0.485107 0.231720 0.940643 0.485107 0.264526 0.941589 0.485107 0.299500 0.942535 0.485107 0.336578 0.943451 0.485107 0.375641 0.944397 0.485107 0.416382 0.945282 0.485107 0.458618 0.946167 0.485107 0.502014 0.947052 0.485107 0.546173 0.947906 0.485107 0.589478 0.948792 0.485107 0.631256 0.949615 0.485107 0.670746 0.950409 0.485107 0.707855 0.951233 0.485107 0.742188 0.952057 0.485107 0.773560 0.952820 0.485107 0.801971 0.953613 0.485107 0.827698 0.954376 0.485107 0.850983 0.955139 0.485107 0.872253 0.955841 0.485107 0.891510 0.956543 0.485107 0.909058 0.957245 0.485107 0.925049 0.957947 0.485107 0.939545 0.958557 0.485107 0.952698 0.959259 0.485107 0.964600 0.959930 0.485107 0.975281 0.960510 0.485107 0.984772 0.961151 0.485107 0.993134 0.961731 0.485107 0.121216 0.951355 0.485107 0.147461 0.952209 0.485107 0.175232 0.953094 0.485107 0.204529 0.953949 0.485107 0.235535 0.954803 0.485107 0.268646 0.955658 0.485107 0.303833 0.956512 0.485107 0.341095 0.957306 0.485107 0.380310 0.958099 0.485107 0.421173 0.958923 0.485107 0.463531 0.959717 0.485107 0.507050 0.960480 0.485107 0.551147 0.961243 0.485107 0.594269 0.961975 0.485107 0.635773 0.962738 0.485107 0.674957 0.963470 0.485107 0.711700 0.964172 0.485107 0.745636 0.964844 0.485107 0.776611 0.965546 0.485107 0.804749 0.966248 0.485107 0.830200 0.966888 0.485107 0.853271 0.967529 0.485107 0.874237 0.968170 0.485107 0.893280 0.968781 0.485107 0.910645 0.969391 0.485107 0.926422 0.970001 0.485107 0.940796 0.970551 0.485107 0.953796 0.971130 0.485107 0.965546 0.971710 0.485107 0.976105 0.972229 0.485107 0.985474 0.972748 0.485107 0.993774 0.973236 0.485107 0.124359 0.964386 0.485107 0.150787 0.965179 0.485107 0.178680 0.965973 0.485107 0.208160 0.966736 0.485107 0.239410 0.967468 0.485107 0.272675 0.968231 0.485107 0.308075 0.968964 0.485107 0.345581 0.969635 0.485107 0.384949 0.970398 0.485107 0.425964 0.971069 0.485107 0.468414 0.971771 0.485107 0.511963 0.972443 0.485107 0.555969 0.973114 0.485107 0.598938 0.973755 0.485107 0.640076 0.974426 0.485107 0.679016 0.975037 0.485107 0.715424 0.975647 0.485107 0.749054 0.976257 0.485107 0.779633 0.976837 0.485107 0.807404 0.977448 0.485107 0.832520 0.977997 0.485107 0.855377 0.978577 0.485107 0.876129 0.979095 0.485107 0.894958 0.979645 0.485107 0.912140 0.980133 0.485107 0.927795 0.980652 0.485107 0.942017 0.981140 0.485107 0.954865 0.981628 0.485107 0.966522 0.982117 0.485107 0.976929 0.982544 0.485107 0.986176 0.983002 0.485107 0.994354 0.983398 0.485107 0.042694 0.003998 0.580231 0.064606 0.004791 0.579712 0.087524 0.005585 0.579224 0.111511 0.006409 0.578674 0.136658 0.007294 0.578064 0.163177 0.008209 0.577393 0.191132 0.009094 0.576721 0.220795 0.010101 0.576080 0.252350 0.011047 0.575348 0.285858 0.012024 0.574615 0.321564 0.013062 0.573853 0.359283 0.014130 0.573059 0.398804 0.015198 0.572266 0.439972 0.016327 0.571442 0.482422 0.017395 0.570557 0.525970 0.018555 0.569672 0.569733 0.019714 0.568787 0.611969 0.020905 0.567871 0.652435 0.022095 0.566895 0.690613 0.023346 0.566010 0.726196 0.024567 0.565002 0.759064 0.025848 0.564026 0.788910 0.027161 0.563019 0.815918 0.028412 0.562073 0.840485 0.029755 0.561005 0.862762 0.031097 0.559998 0.883057 0.032471 0.558960 0.901550 0.033875 0.557892 0.918335 0.035248 0.556915 0.933655 0.036652 0.555756 0.947571 0.038116 0.554688 0.960144 0.039520 0.553619 0.044250 0.025238 0.579254 0.066284 0.026093 0.578674 0.089325 0.027039 0.578094 0.113434 0.027954 0.577484 0.138794 0.028900 0.576813 0.165466 0.029877 0.576080 0.193634 0.030884 0.575378 0.223450 0.031921 0.574646 0.255219 0.033020 0.573883 0.289062 0.034058 0.573090 0.325012 0.035217 0.572266 0.362976 0.036285 0.571442 0.402740 0.037506 0.570618 0.444153 0.038696 0.569733 0.486755 0.039886 0.568848 0.530487 0.041107 0.567932 0.574188 0.042389 0.566956 0.616333 0.043640 0.566040 0.656616 0.044952 0.565063 0.694611 0.046295 0.564087 0.729950 0.047607 0.563110 0.762512 0.048950 0.562073 0.792053 0.050323 0.561005 0.818817 0.051758 0.560059 0.843140 0.053162 0.558990 0.865204 0.054565 0.557953 0.885315 0.056000 0.556915 0.903595 0.057495 0.555847 0.920258 0.058990 0.554718 0.935425 0.060455 0.553619 0.949158 0.062012 0.552612 0.961548 0.063507 0.551544 0.045898 0.047455 0.578094 0.068054 0.048462 0.577484 0.091278 0.049438 0.576813 0.115509 0.050446 0.576141 0.140991 0.051483 0.575378 0.167877 0.052582 0.574646 0.196228 0.053680 0.573975 0.226318 0.054779 0.573090 0.258331 0.056000 0.572296 0.292358 0.057159 0.571472 0.328613 0.058350 0.570618 0.366760 0.059570 0.569794 0.406830 0.060852 0.568848 0.448456 0.062134 0.567932 0.491302 0.063385 0.567017 0.535187 0.064728 0.566040 0.578766 0.066132 0.565063 0.620758 0.067474 0.564117 0.660950 0.068878 0.563110 0.698669 0.070282 0.562103 0.733734 0.071716 0.561035 0.765991 0.073181 0.560059 0.795227 0.074646 0.559052 0.821777 0.076111 0.557953 0.845825 0.077637 0.556946 0.867676 0.079163 0.555878 0.887573 0.080719 0.554810 0.905670 0.082275 0.553711 0.922150 0.083832 0.552673 0.937134 0.085449 0.551575 0.950745 0.087067 0.550476 0.963013 0.088684 0.549377 0.047699 0.070801 0.576843 0.069946 0.071869 0.576141 0.093292 0.072968 0.575470 0.117676 0.074036 0.574738 0.143311 0.075195 0.573975 0.170410 0.076385 0.573151 0.198944 0.077606 0.572296 0.229309 0.078827 0.571472 0.261475 0.080078 0.570679 0.295868 0.081329 0.569794 0.332397 0.082703 0.568878 0.370789 0.084015 0.567963 0.411072 0.085358 0.567017 0.452881 0.086761 0.566101 0.495941 0.088135 0.565125 0.539948 0.089569 0.564117 0.583466 0.091034 0.563141 0.625336 0.092468 0.562195 0.665192 0.094025 0.561127 0.702759 0.095520 0.560089 0.737549 0.097046 0.559052 0.769501 0.098602 0.558014 0.798462 0.100159 0.556976 0.824707 0.101746 0.555878 0.848511 0.103424 0.554810 0.870148 0.105011 0.553741 0.889862 0.106689 0.552673 0.907776 0.108368 0.551575 0.924072 0.110016 0.550537 0.938873 0.111725 0.549438 0.952301 0.113464 0.548340 0.964417 0.115173 0.547302 0.049530 0.095306 0.575470 0.071960 0.096497 0.574738 0.095398 0.097656 0.573975 0.119965 0.098877 0.573181 0.145813 0.100159 0.572388 0.173035 0.101471 0.571564 0.201813 0.102753 0.570709 0.232361 0.104065 0.569824 0.264832 0.105438 0.568939 0.299500 0.106842 0.567993 0.336304 0.108246 0.567047 0.374939 0.109680 0.566132 0.415436 0.111145 0.565186 0.457520 0.112671 0.564178 0.500671 0.114197 0.563202 0.544800 0.115723 0.562195 0.588257 0.117279 0.561127 0.629913 0.118866 0.560150 0.669708 0.120483 0.559082 0.706909 0.122101 0.558075 0.741455 0.123749 0.556976 0.773041 0.125427 0.555908 0.801697 0.127106 0.554932 0.827667 0.128815 0.553772 0.851227 0.130585 0.552704 0.872620 0.132263 0.551636 0.892120 0.134064 0.550568 0.909851 0.135864 0.549438 0.925934 0.137604 0.548370 0.940613 0.139435 0.547302 0.953857 0.141235 0.546234 0.965851 0.143097 0.545166 0.051483 0.121094 0.574005 0.074036 0.122406 0.573181 0.097656 0.123749 0.572388 0.122406 0.125061 0.571594 0.148376 0.126434 0.570709 0.175781 0.127838 0.569824 0.204803 0.129272 0.568939 0.235596 0.130737 0.567993 0.268280 0.132202 0.567139 0.303284 0.133728 0.566132 0.340332 0.135254 0.565186 0.379303 0.136810 0.564209 0.420013 0.138428 0.563202 0.462219 0.140015 0.562225 0.505585 0.141632 0.561157 0.549774 0.143280 0.560150 0.593109 0.145050 0.559082 0.634674 0.146698 0.558105 0.674164 0.148438 0.557037 0.711090 0.150177 0.555969 0.745361 0.151978 0.554932 0.776611 0.153748 0.553772 0.804962 0.155548 0.552734 0.830627 0.157410 0.551697 0.853943 0.159271 0.550568 0.875122 0.161102 0.549500 0.894409 0.163025 0.548462 0.911926 0.164948 0.547333 0.927856 0.166809 0.546326 0.942291 0.168762 0.545227 0.955444 0.170685 0.544189 0.967285 0.172699 0.543060 0.053558 0.148407 0.572418 0.076263 0.149841 0.571594 0.099976 0.151306 0.570709 0.124878 0.152710 0.569885 0.151093 0.154236 0.569000 0.178650 0.155762 0.568085 0.207886 0.157349 0.567139 0.238922 0.158905 0.566162 0.271942 0.160522 0.565216 0.307159 0.162201 0.564209 0.344513 0.163849 0.563232 0.383667 0.165497 0.562256 0.424652 0.167267 0.561249 0.467072 0.169006 0.560211 0.510620 0.170746 0.559143 0.554840 0.172546 0.558105 0.597992 0.174347 0.557068 0.639465 0.176208 0.555969 0.678711 0.178101 0.554962 0.715332 0.179962 0.553833 0.749268 0.181854 0.552734 0.780243 0.183838 0.551727 0.808228 0.185730 0.550598 0.833588 0.187744 0.549500 0.856659 0.189728 0.548462 0.877594 0.191711 0.547363 0.896667 0.193756 0.546326 0.913940 0.195770 0.545288 0.929749 0.197845 0.544189 0.944031 0.199921 0.543091 0.957001 0.201965 0.542053 0.968689 0.204102 0.541016 0.055695 0.177368 0.570770 0.078552 0.178925 0.569885 0.102417 0.180481 0.569000 0.127502 0.182098 0.568115 0.153870 0.183777 0.567169 0.181671 0.185394 0.566254 0.211121 0.187073 0.565247 0.242432 0.188843 0.564270 0.275665 0.190582 0.563293 0.311218 0.192383 0.562256 0.348785 0.194183 0.561279 0.388214 0.196014 0.560242 0.429443 0.197906 0.559174 0.472015 0.199738 0.558167 0.515778 0.201691 0.557068 0.559998 0.203674 0.556030 0.603027 0.205627 0.554993 0.644257 0.207642 0.553894 0.683289 0.209625 0.552826 0.719635 0.211639 0.551758 0.753174 0.213715 0.550690 0.783783 0.215820 0.549561 0.811462 0.217834 0.548492 0.836609 0.220032 0.547455 0.859406 0.222168 0.546356 0.880066 0.224335 0.545288 0.898926 0.226532 0.544220 0.916046 0.228638 0.543152 0.931580 0.230865 0.542114 0.945740 0.233154 0.541016 0.958527 0.235352 0.540009 0.970062 0.237640 0.538971 0.057953 0.208160 0.569031 0.080902 0.209900 0.568115 0.104950 0.211548 0.567169 0.130188 0.213379 0.566254 0.156769 0.215149 0.565247 0.184753 0.216980 0.564331 0.214478 0.218872 0.563293 0.245972 0.220734 0.562317 0.279541 0.222626 0.561310 0.315338 0.224579 0.560272 0.353210 0.226593 0.559174 0.392914 0.228546 0.558228 0.434326 0.230591 0.557129 0.477081 0.232605 0.556091 0.520996 0.234650 0.554993 0.565216 0.236816 0.553894 0.608032 0.238922 0.552856 0.649048 0.241119 0.551758 0.687805 0.243317 0.550690 0.723846 0.245453 0.549622 0.757141 0.247681 0.548553 0.787354 0.249969 0.547455 0.814728 0.252228 0.546387 0.839569 0.254517 0.545319 0.862061 0.256805 0.544250 0.882507 0.259125 0.543152 0.901184 0.261505 0.542114 0.918060 0.263794 0.541107 0.933472 0.266235 0.540009 0.947449 0.268646 0.539032 0.960052 0.271027 0.538025 0.971436 0.273468 0.536987 0.060303 0.241028 0.567200 0.083405 0.242950 0.566284 0.107574 0.244781 0.565338 0.132965 0.246765 0.564331 0.159729 0.248688 0.563354 0.187958 0.250671 0.562347 0.217834 0.252747 0.561310 0.249695 0.254822 0.560272 0.283508 0.256866 0.559265 0.319611 0.259033 0.558228 0.357697 0.261139 0.557190 0.397705 0.263336 0.556122 0.439362 0.265564 0.555084 0.482269 0.267792 0.553986 0.526337 0.270050 0.552917 0.570465 0.272369 0.551849 0.613129 0.274628 0.550720 0.653961 0.276978 0.549622 0.692383 0.279388 0.548553 0.728119 0.281677 0.547485 0.761047 0.284149 0.546387 0.790924 0.286591 0.545319 0.817963 0.289001 0.544342 0.842529 0.291504 0.543182 0.864746 0.293976 0.542175 0.884979 0.296478 0.541107 0.903381 0.299042 0.540070 0.920074 0.301483 0.539062 0.935333 0.304077 0.538025 0.949158 0.306671 0.537018 0.961548 0.309204 0.535980 0.972778 0.311829 0.535065 0.062683 0.276276 0.565369 0.085968 0.278381 0.564392 0.110291 0.280396 0.563385 0.135895 0.282532 0.562347 0.162842 0.284698 0.561401 0.191223 0.286896 0.560364 0.221405 0.289154 0.559296 0.253448 0.291412 0.558258 0.287598 0.293640 0.557220 0.324005 0.295990 0.556122 0.362335 0.298248 0.555115 0.402557 0.300659 0.553986 0.444427 0.303070 0.552917 0.487518 0.305450 0.551880 0.531769 0.307953 0.550751 0.575775 0.310425 0.549652 0.618317 0.312897 0.548645 0.658813 0.315460 0.547516 0.696991 0.317993 0.546448 0.732391 0.320526 0.545380 0.764954 0.323151 0.544342 0.794434 0.325714 0.543243 0.821198 0.328369 0.542206 0.845428 0.330994 0.541138 0.867401 0.333618 0.540131 0.887421 0.336334 0.539062 0.905579 0.339020 0.538086 0.922119 0.341644 0.537048 0.937134 0.344421 0.536072 0.950775 0.347168 0.535065 0.963074 0.349915 0.534088 0.974091 0.352631 0.533142 0.065186 0.314056 0.563446 0.088593 0.316315 0.562408 0.113098 0.318573 0.561432 0.138885 0.320862 0.560394 0.166016 0.323303 0.559326 0.194641 0.325592 0.558289 0.225037 0.328033 0.557220 0.257324 0.330475 0.556152 0.291779 0.332886 0.555115 0.328430 0.335449 0.554047 0.367035 0.337921 0.552948 0.407532 0.340424 0.551880 0.449585 0.343109 0.550751 0.492920 0.345642 0.549713 0.537201 0.348328 0.548645 0.581146 0.350983 0.547516 0.623444 0.353638 0.546478 0.663696 0.356323 0.545380 0.701599 0.359039 0.544373 0.736603 0.361725 0.543304 0.768829 0.364502 0.542206 0.797943 0.367249 0.541168 0.824371 0.370056 0.540131 0.848328 0.372833 0.539124 0.870026 0.375641 0.538147 0.889801 0.378448 0.537140 0.907776 0.381287 0.536072 0.924072 0.384125 0.535126 0.938934 0.386993 0.534180 0.952393 0.389862 0.533173 0.964539 0.392700 0.532257 0.975403 0.395599 0.531372 0.067749 0.354218 0.561432 0.091339 0.356659 0.560394 0.115967 0.359131 0.559387 0.141876 0.361633 0.558289 0.169250 0.364166 0.557281 0.198090 0.366669 0.556244 0.228760 0.369293 0.555145 0.261261 0.371857 0.554108 0.296082 0.374481 0.553009 0.333038 0.377167 0.551910 0.371887 0.379852 0.550842 0.412628 0.382568 0.549713 0.454895 0.385315 0.548706 0.498352 0.388062 0.547577 0.542725 0.390869 0.546478 0.586517 0.393738 0.545471 0.628571 0.396515 0.544403 0.668610 0.399384 0.543304 0.706085 0.402191 0.542267 0.740875 0.405060 0.541168 0.772675 0.407990 0.540192 0.801422 0.410858 0.539154 0.827545 0.413818 0.538147 0.851166 0.416779 0.537140 0.872650 0.419647 0.536102 0.892181 0.422668 0.535187 0.909943 0.425629 0.534180 0.926056 0.428497 0.533264 0.940735 0.431488 0.532318 0.953979 0.434448 0.531403 0.965973 0.437439 0.530487 0.976685 0.440430 0.529602 0.070374 0.396667 0.559387 0.094086 0.399261 0.558380 0.118927 0.401825 0.557312 0.145050 0.404541 0.556244 0.172577 0.407227 0.555145 0.201660 0.409912 0.554108 0.232574 0.412659 0.553009 0.265411 0.415375 0.551941 0.300446 0.418152 0.550873 0.337646 0.421051 0.549774 0.376801 0.423828 0.548767 0.417786 0.426697 0.547638 0.460236 0.429626 0.546570 0.503815 0.432495 0.545502 0.548309 0.435425 0.544403 0.591858 0.438385 0.543365 0.633728 0.441284 0.542328 0.673492 0.444336 0.541260 0.710632 0.447266 0.540222 0.745026 0.450317 0.539154 0.776489 0.453308 0.538177 0.804901 0.456299 0.537170 0.830658 0.459381 0.536163 0.854034 0.462402 0.535187 0.875214 0.465454 0.534210 0.894501 0.468475 0.533264 0.912048 0.471558 0.532318 0.927979 0.474579 0.531403 0.942444 0.477692 0.530487 0.955566 0.480652 0.529663 0.967377 0.483734 0.528778 0.977966 0.486786 0.527924 0.073090 0.440979 0.557312 0.096954 0.443726 0.556274 0.121948 0.446472 0.555267 0.148224 0.449249 0.554138 0.175934 0.452087 0.553101 0.205292 0.454956 0.552032 0.236481 0.457855 0.550873 0.269531 0.460724 0.549805 0.304901 0.463684 0.548767 0.342407 0.466644 0.547638 0.381805 0.469543 0.546600 0.422943 0.472595 0.545502 0.465607 0.475616 0.544464 0.509369 0.478577 0.543396 0.553833 0.481628 0.542328 0.597198 0.484650 0.541290 0.638855 0.487762 0.540253 0.678314 0.490845 0.539185 0.715118 0.493866 0.538208 0.749207 0.496979 0.537170 0.780243 0.500061 0.536163 0.808289 0.503174 0.535217 0.833740 0.506287 0.534241 0.856812 0.509430 0.533264 0.877747 0.512482 0.532379 0.896790 0.515656 0.531433 0.914124 0.518768 0.530548 0.929871 0.521820 0.529724 0.944153 0.524963 0.528839 0.957092 0.528046 0.527954 0.968781 0.531189 0.527191 0.979187 0.534332 0.526550 0.075867 0.486908 0.555267 0.099854 0.489807 0.554138 0.125031 0.492676 0.553101 0.151489 0.495636 0.552032 0.179413 0.498505 0.550995 0.209015 0.501495 0.549866 0.240417 0.504547 0.548798 0.273773 0.507477 0.547760 0.309448 0.510590 0.546631 0.347198 0.513611 0.545532 0.386871 0.516632 0.544495 0.428192 0.519745 0.543396 0.471100 0.522858 0.542358 0.514984 0.525940 0.541290 0.559387 0.529022 0.540253 0.602539 0.532166 0.539276 0.643982 0.535339 0.538208 0.683136 0.538452 0.537201 0.719635 0.541534 0.536224 0.753296 0.544708 0.535278 0.783966 0.547821 0.534241 0.811646 0.550873 0.533356 0.836792 0.554047 0.532410 0.859589 0.557190 0.531433 0.880249 0.560211 0.530609 0.899078 0.563293 0.529724 0.916199 0.566284 0.528839 0.931732 0.569397 0.528046 0.945862 0.572418 0.527252 0.958588 0.575378 0.526550 0.970093 0.578400 0.526550 0.980377 0.581390 0.526550 0.078644 0.534088 0.553162 0.102844 0.537140 0.552063 0.128174 0.540070 0.550995 0.154877 0.543060 0.549866 0.182983 0.545990 0.548859 0.212769 0.549103 0.547760 0.244446 0.552124 0.546631 0.278137 0.555115 0.545563 0.314056 0.558167 0.544495 0.352081 0.561279 0.543457 0.391968 0.564209 0.542419 0.433502 0.567322 0.541382 0.476532 0.570404 0.540344 0.520599 0.573425 0.539307 0.564972 0.576477 0.538269 0.607880 0.579468 0.537292 0.649048 0.582550 0.536255 0.687897 0.585632 0.535278 0.723999 0.588593 0.534332 0.757324 0.591644 0.533356 0.787598 0.594666 0.532410 0.814941 0.597565 0.531525 0.839752 0.600616 0.530609 0.862274 0.603577 0.529755 0.882690 0.606506 0.528900 0.901306 0.609467 0.528046 0.918152 0.612335 0.527252 0.933563 0.615234 0.526550 0.947510 0.618164 0.526550 0.960083 0.620972 0.526550 0.971405 0.623840 0.526550 0.981506 0.626678 0.526550 0.081543 0.581024 0.551025 0.105865 0.584015 0.549927 0.131378 0.586853 0.548859 0.158234 0.589783 0.547791 0.186554 0.592682 0.546722 0.216614 0.595642 0.545563 0.248535 0.598663 0.544586 0.282501 0.601501 0.543518 0.318756 0.604462 0.542419 0.356995 0.607452 0.541382 0.397125 0.610382 0.540375 0.438904 0.613342 0.539307 0.482086 0.616272 0.538269 0.526184 0.619110 0.537323 0.570465 0.622101 0.536255 0.613251 0.624969 0.535339 0.654144 0.627869 0.534363 0.692627 0.630768 0.533356 0.728394 0.633606 0.532471 0.761322 0.636536 0.531555 0.791199 0.639435 0.530640 0.818176 0.642181 0.529755 0.842682 0.645050 0.528900 0.864929 0.647858 0.528076 0.885101 0.650635 0.527283 0.903473 0.653381 0.526550 0.920166 0.656036 0.526550 0.935333 0.658813 0.526550 0.949097 0.661499 0.526550 0.961517 0.664154 0.526550 0.972687 0.666748 0.526550 0.982635 0.669403 0.526550 0.084473 0.626221 0.548889 0.108917 0.628998 0.547821 0.134613 0.631836 0.546753 0.161682 0.634705 0.545654 0.190216 0.637451 0.544617 0.220490 0.640259 0.543518 0.252716 0.643097 0.542480 0.286957 0.645874 0.541412 0.323425 0.648712 0.540375 0.361969 0.651489 0.539307 0.402344 0.654266 0.538300 0.444336 0.657074 0.537323 0.487518 0.659760 0.536316 0.531860 0.662598 0.535370 0.575958 0.665375 0.534363 0.618530 0.668030 0.533417 0.659119 0.670807 0.532532 0.697296 0.673553 0.531555 0.732727 0.676147 0.530640 0.765259 0.678894 0.529785 0.794739 0.681580 0.528961 0.821411 0.684174 0.528076 0.845581 0.686829 0.527283 0.867523 0.689362 0.526550 0.887482 0.691956 0.526550 0.905609 0.694519 0.526550 0.922089 0.697052 0.526550 0.937073 0.699554 0.526550 0.950684 0.702057 0.526550 0.962921 0.704468 0.526550 0.973938 0.706909 0.526550 0.983765 0.709320 0.526550 0.087433 0.669037 0.546753 0.112061 0.671722 0.545685 0.137909 0.674438 0.544617 0.165192 0.677094 0.543549 0.193909 0.679688 0.542511 0.224487 0.682343 0.541443 0.256866 0.685028 0.540405 0.291443 0.687592 0.539368 0.328217 0.690247 0.538361 0.367004 0.692902 0.537323 0.407562 0.695465 0.536377 0.449707 0.698120 0.535370 0.493103 0.700653 0.534393 0.537537 0.703217 0.533447 0.581512 0.705780 0.532532 0.623749 0.708313 0.531586 0.664062 0.710846 0.530701 0.701904 0.713379 0.529785 0.736969 0.715820 0.528992 0.769073 0.718292 0.528137 0.798218 0.720764 0.527283 0.824493 0.723145 0.526550 0.848389 0.725525 0.526550 0.870056 0.727905 0.526550 0.889771 0.730255 0.526550 0.907684 0.732574 0.526550 0.923981 0.734833 0.526550 0.938782 0.737152 0.526550 0.952209 0.739410 0.526550 0.964294 0.741577 0.526550 0.975128 0.743774 0.526550 0.984802 0.745972 0.526550 0.090424 0.709167 0.544647 0.115204 0.711609 0.543579 0.141266 0.714142 0.542603 0.168701 0.716583 0.541443 0.197662 0.719025 0.540497 0.228455 0.721497 0.539398 0.261139 0.723969 0.538361 0.295990 0.726349 0.537384 0.333038 0.728821 0.536377 0.371948 0.731201 0.535400 0.412811 0.733582 0.534485 0.455139 0.736023 0.533447 0.498688 0.738312 0.532562 0.543091 0.740662 0.531586 0.586914 0.743042 0.530701 0.628937 0.745331 0.529877 0.668945 0.747620 0.528992 0.706451 0.749939 0.528137 0.741089 0.752167 0.527344 0.772827 0.754364 0.526550 0.801514 0.756592 0.526550 0.827576 0.758759 0.526550 0.851135 0.760925 0.526550 0.872559 0.763031 0.526550 0.891998 0.765137 0.526550 0.909729 0.767242 0.526550 0.925812 0.769257 0.526550 0.940399 0.771332 0.526550 0.953674 0.773315 0.526550 0.965576 0.775238 0.526550 0.976318 0.777252 0.526550 0.985840 0.779114 0.526550 0.093475 0.746094 0.542603 0.118408 0.748291 0.541534 0.144623 0.750549 0.540497 0.172272 0.752899 0.539459 0.201447 0.755096 0.538391 0.232483 0.757355 0.537415 0.265442 0.759613 0.536407 0.300507 0.761780 0.535400 0.337799 0.763977 0.534485 0.377075 0.766144 0.533508 0.418060 0.768341 0.532593 0.460571 0.770508 0.531677 0.504242 0.772583 0.530762 0.548706 0.774719 0.529907 0.592255 0.776825 0.528992 0.634064 0.778900 0.528168 0.673706 0.780975 0.527374 0.710907 0.782990 0.526611 0.745178 0.784973 0.526550 0.776550 0.786987 0.526550 0.804871 0.788910 0.526550 0.830566 0.790863 0.526550 0.853851 0.792816 0.526550 0.874969 0.794678 0.526550 0.894226 0.796570 0.526550 0.911682 0.798431 0.526550 0.927612 0.800201 0.526550 0.942047 0.802032 0.526550 0.955139 0.803802 0.526550 0.966888 0.805542 0.526550 0.977448 0.807251 0.526550 0.986786 0.808929 0.526550 0.096588 0.779541 0.540527 0.121674 0.781616 0.539520 0.148071 0.783630 0.538452 0.175873 0.785736 0.537415 0.205292 0.787689 0.536469 0.236542 0.789764 0.535492 0.269714 0.791687 0.534515 0.305145 0.793701 0.533539 0.342682 0.795685 0.532593 0.382111 0.797607 0.531708 0.423309 0.799591 0.530792 0.465973 0.801514 0.529907 0.509766 0.803406 0.529022 0.554199 0.805328 0.528168 0.597565 0.807190 0.527374 0.639069 0.809021 0.526642 0.678497 0.810883 0.526550 0.715271 0.812714 0.526550 0.749176 0.814453 0.526550 0.780090 0.816254 0.526550 0.808075 0.817963 0.526550 0.833466 0.819702 0.526550 0.856476 0.821411 0.526550 0.877350 0.823090 0.526550 0.896332 0.824768 0.526550 0.913605 0.826416 0.526550 0.929321 0.827972 0.526550 0.943573 0.829590 0.526550 0.956482 0.831146 0.526550 0.968109 0.832703 0.526550 0.978546 0.834198 0.526550 0.987732 0.835663 0.526550 0.099701 0.809662 0.538452 0.124939 0.811493 0.537537 0.151489 0.813354 0.536469 0.179535 0.815216 0.535522 0.209106 0.817017 0.534515 0.240601 0.818848 0.533539 0.274078 0.820618 0.532654 0.309753 0.822388 0.531708 0.347565 0.824188 0.530792 0.387238 0.825897 0.529938 0.428619 0.827667 0.529114 0.471405 0.829407 0.528229 0.515289 0.831085 0.527435 0.559662 0.832764 0.526642 0.602783 0.834473 0.526550 0.644012 0.836090 0.526550 0.683105 0.837738 0.526550 0.719452 0.839355 0.526550 0.753052 0.840912 0.526550 0.783630 0.842529 0.526550 0.811218 0.844055 0.526550 0.836273 0.845612 0.526550 0.859039 0.847137 0.526550 0.879639 0.848633 0.526550 0.898407 0.850128 0.526550 0.915497 0.851562 0.526550 0.930969 0.852966 0.526550 0.945068 0.854401 0.526550 0.957825 0.855743 0.526550 0.969299 0.857147 0.526550 0.979584 0.858490 0.526550 0.988678 0.859741 0.526550 0.102844 0.836731 0.536499 0.128235 0.838379 0.535553 0.154968 0.840057 0.534607 0.183136 0.841705 0.533569 0.213013 0.843353 0.532654 0.244720 0.845001 0.531769 0.278442 0.846619 0.530853 0.314392 0.848206 0.529938 0.352448 0.849792 0.529114 0.392273 0.851349 0.528290 0.433899 0.852936 0.527435 0.476807 0.854492 0.526642 0.520752 0.856018 0.526550 0.565002 0.857513 0.526550 0.607880 0.858978 0.526550 0.648895 0.860474 0.526550 0.687592 0.861938 0.526550 0.723663 0.863373 0.526550 0.756866 0.864777 0.526550 0.787018 0.866211 0.526550 0.814301 0.867584 0.526550 0.839020 0.868958 0.526550 0.861481 0.870331 0.526550 0.881866 0.871613 0.526550 0.900421 0.872925 0.526550 0.917297 0.874237 0.526550 0.932617 0.875488 0.526550 0.946533 0.876770 0.526550 0.959106 0.877930 0.526550 0.970459 0.879120 0.526550 0.980560 0.880341 0.526550 0.989502 0.881500 0.526550 0.105988 0.861145 0.534607 0.131500 0.862640 0.533661 0.158447 0.864136 0.532684 0.186798 0.865601 0.531799 0.216919 0.867096 0.530853 0.248840 0.868591 0.529968 0.282776 0.869995 0.529144 0.319031 0.871460 0.528290 0.357300 0.872864 0.527496 0.397339 0.874268 0.526703 0.439117 0.875671 0.526550 0.482178 0.877106 0.526550 0.526184 0.878418 0.526550 0.570312 0.879791 0.526550 0.612946 0.881104 0.526550 0.653656 0.882446 0.526550 0.692047 0.883728 0.526550 0.727692 0.885010 0.526550 0.760498 0.886322 0.526550 0.790344 0.887573 0.526550 0.817291 0.888763 0.526550 0.841705 0.890015 0.526550 0.863892 0.891174 0.526550 0.884003 0.892365 0.526550 0.902344 0.893555 0.526550 0.919006 0.894653 0.526550 0.934174 0.895782 0.526550 0.947937 0.896851 0.526550 0.960358 0.897980 0.526550 0.971558 0.899017 0.526550 0.981506 0.900085 0.526550 0.990356 0.901062 0.526550 0.109100 0.883087 0.532745 0.134857 0.884491 0.531799 0.161926 0.885834 0.530884 0.190491 0.887177 0.530029 0.220764 0.888519 0.529144 0.252991 0.889832 0.528320 0.287231 0.891083 0.527527 0.323669 0.892426 0.526764 0.362122 0.893738 0.526550 0.402374 0.894958 0.526550 0.444244 0.896240 0.526550 0.487396 0.897430 0.526550 0.531555 0.898651 0.526550 0.575500 0.899902 0.526550 0.617889 0.901062 0.526550 0.658295 0.902252 0.526550 0.696381 0.903412 0.526550 0.731659 0.904541 0.526550 0.764099 0.905670 0.526550 0.793518 0.906830 0.526550 0.820099 0.907898 0.526550 0.844299 0.908966 0.526550 0.866211 0.910034 0.526550 0.886078 0.911072 0.526550 0.904205 0.912109 0.526550 0.920685 0.913086 0.526550 0.935669 0.914062 0.526550 0.949249 0.915070 0.526550 0.961548 0.916016 0.526550 0.972595 0.916992 0.526550 0.982452 0.917847 0.526550 0.991119 0.918732 0.526550 0.112274 0.902985 0.530975 0.138184 0.904236 0.530029 0.165436 0.905457 0.529175 0.194183 0.906647 0.528320 0.224670 0.907837 0.527527 0.257111 0.909027 0.526764 0.291626 0.910187 0.526550 0.328308 0.911346 0.526550 0.366943 0.912476 0.526550 0.407379 0.913605 0.526550 0.449402 0.914764 0.526550 0.492645 0.915863 0.526550 0.536865 0.916962 0.526550 0.580597 0.917999 0.526550 0.622742 0.919067 0.526550 0.662872 0.920105 0.526550 0.700562 0.921173 0.526550 0.735535 0.922180 0.526550 0.767578 0.923157 0.526550 0.796631 0.924164 0.526550 0.822906 0.925140 0.526550 0.846802 0.926086 0.526550 0.868408 0.927032 0.526550 0.888062 0.927948 0.526550 0.905975 0.928864 0.526550 0.922302 0.929749 0.526550 0.937103 0.930603 0.526550 0.950562 0.931458 0.526550 0.962677 0.932312 0.526550 0.973572 0.933105 0.526550 0.983307 0.933929 0.526550 0.991882 0.934692 0.526550 0.115448 0.920898 0.529266 0.141510 0.922028 0.528381 0.168945 0.923126 0.527527 0.197876 0.924194 0.526794 0.228577 0.925262 0.526550 0.261200 0.926331 0.526550 0.295929 0.927399 0.526550 0.332886 0.928406 0.526550 0.371704 0.929443 0.526550 0.412384 0.930420 0.526550 0.454529 0.931427 0.526550 0.497772 0.932465 0.526550 0.541992 0.933411 0.526550 0.585632 0.934357 0.526550 0.627441 0.935333 0.526550 0.667267 0.936218 0.526550 0.704681 0.937164 0.526550 0.739227 0.938049 0.526550 0.770905 0.938965 0.526550 0.799591 0.939819 0.526550 0.825562 0.940674 0.526550 0.849152 0.941498 0.526550 0.870544 0.942322 0.526550 0.890045 0.943146 0.526550 0.907745 0.943970 0.526550 0.923798 0.944733 0.526550 0.938477 0.945496 0.526550 0.951752 0.946259 0.526550 0.963745 0.946960 0.526550 0.974548 0.947662 0.526550 0.984131 0.948364 0.526550 0.992554 0.949066 0.526550 0.118622 0.937103 0.527557 0.144806 0.938080 0.526794 0.172394 0.939087 0.526550 0.201538 0.940063 0.526550 0.232483 0.941010 0.526550 0.265320 0.941956 0.526550 0.300323 0.942871 0.526550 0.337433 0.943787 0.526550 0.376465 0.944702 0.526550 0.417236 0.945618 0.526550 0.459564 0.946533 0.526550 0.502930 0.947357 0.526550 0.547119 0.948242 0.526550 0.590485 0.949097 0.526550 0.632019 0.949921 0.526550 0.671570 0.950745 0.526550 0.708588 0.951538 0.526550 0.742798 0.952332 0.526550 0.774139 0.953125 0.526550 0.802460 0.953857 0.526550 0.828156 0.954620 0.526550 0.851440 0.955383 0.526550 0.872589 0.956085 0.526550 0.891846 0.956818 0.526550 0.909393 0.957520 0.526550 0.925293 0.958160 0.526550 0.939789 0.958832 0.526550 0.952942 0.959503 0.526550 0.964752 0.960144 0.526550 0.975433 0.960754 0.526550 0.984894 0.961365 0.526550 0.993256 0.961945 0.526550 0.121765 0.951630 0.526550 0.148132 0.952545 0.526550 0.175873 0.953400 0.526550 0.205200 0.954285 0.526550 0.236328 0.955139 0.526550 0.269348 0.955933 0.526550 0.304596 0.956787 0.526550 0.341980 0.957611 0.526550 0.381165 0.958405 0.526550 0.422058 0.959198 0.526550 0.464447 0.959991 0.526550 0.507935 0.960754 0.526550 0.552063 0.961517 0.526550 0.595184 0.962280 0.526550 0.636536 0.963013 0.526550 0.675751 0.963715 0.526550 0.712433 0.964417 0.526550 0.746307 0.965118 0.526550 0.777252 0.965820 0.526550 0.805237 0.966461 0.526550 0.830597 0.967133 0.526550 0.853638 0.967773 0.526550 0.874573 0.968414 0.526550 0.893616 0.968994 0.526550 0.910950 0.969604 0.526550 0.926697 0.970184 0.526550 0.941040 0.970764 0.526550 0.954010 0.971344 0.526550 0.965729 0.971863 0.526550 0.976288 0.972412 0.526550 0.985626 0.972931 0.526550 0.993866 0.973450 0.526550 0.124939 0.964691 0.526550 0.151398 0.965485 0.526550 0.179352 0.966248 0.526550 0.208801 0.967010 0.526550 0.240112 0.967773 0.526550 0.273438 0.968475 0.526550 0.308899 0.969208 0.526550 0.346436 0.969940 0.526550 0.385773 0.970642 0.526550 0.426849 0.971344 0.526550 0.469330 0.972015 0.526550 0.512787 0.972687 0.526550 0.556915 0.973389 0.526550 0.599762 0.974030 0.526550 0.640869 0.974640 0.526550 0.679688 0.975281 0.526550 0.716034 0.975891 0.526550 0.749603 0.976501 0.526550 0.780212 0.977081 0.526550 0.807861 0.977661 0.526550 0.832977 0.978241 0.526550 0.855774 0.978760 0.526550 0.876434 0.979309 0.526550 0.895294 0.979858 0.526550 0.912415 0.980347 0.526550 0.928009 0.980835 0.526550 0.942169 0.981354 0.526550 0.955078 0.981812 0.526550 0.966675 0.982300 0.526550 0.977081 0.982727 0.526550 0.986328 0.983154 0.526550 0.994415 0.983582 0.526550 0.042999 0.004303 0.619812 0.064941 0.005066 0.619263 0.087891 0.005890 0.618774 0.111877 0.006744 0.618195 0.137085 0.007660 0.617645 0.163605 0.008545 0.617035 0.191589 0.009460 0.616394 0.221313 0.010437 0.615723 0.252838 0.011383 0.615021 0.286438 0.012421 0.614258 0.322174 0.013458 0.613556 0.359955 0.014496 0.612793 0.399567 0.015594 0.612000 0.440704 0.016663 0.611237 0.483276 0.017822 0.610382 0.526855 0.018982 0.609497 0.570496 0.020142 0.608612 0.612793 0.021332 0.607697 0.653259 0.022583 0.606812 0.691376 0.023743 0.605927 0.726929 0.025055 0.604950 0.759644 0.026306 0.604004 0.789429 0.027618 0.603058 0.816437 0.028931 0.602051 0.840942 0.030243 0.601135 0.863251 0.031616 0.600128 0.883514 0.033020 0.599060 0.901917 0.034363 0.598083 0.918701 0.035767 0.597046 0.933990 0.037201 0.596008 0.947845 0.038605 0.594971 0.960419 0.040100 0.593964 0.044525 0.025543 0.618805 0.066620 0.026459 0.618225 0.089661 0.027344 0.617645 0.113831 0.028290 0.617035 0.139191 0.029266 0.616394 0.165894 0.030243 0.615723 0.194092 0.031250 0.615021 0.223999 0.032318 0.614288 0.255768 0.033386 0.613556 0.289673 0.034485 0.612793 0.325653 0.035583 0.612000 0.363647 0.036743 0.611237 0.403503 0.037933 0.610382 0.444916 0.039093 0.609497 0.487640 0.040344 0.608643 0.531403 0.041565 0.607727 0.575012 0.042816 0.606842 0.617157 0.044098 0.605927 0.657410 0.045380 0.605011 0.695374 0.046722 0.604065 0.730682 0.048096 0.603058 0.763123 0.049438 0.602112 0.792633 0.050842 0.601135 0.819397 0.052246 0.600128 0.843597 0.053650 0.599091 0.865662 0.055115 0.598114 0.885742 0.056580 0.597046 0.903961 0.058044 0.596039 0.920593 0.059509 0.594971 0.935730 0.061005 0.593994 0.949432 0.062561 0.592926 0.961853 0.064087 0.591858 0.046265 0.047852 0.617676 0.068451 0.048828 0.617096 0.091614 0.049805 0.616425 0.115906 0.050842 0.615753 0.141449 0.051941 0.615051 0.168304 0.052979 0.614380 0.196747 0.054077 0.613617 0.226837 0.055206 0.612885 0.258850 0.056396 0.612030 0.293060 0.057617 0.611237 0.329285 0.058807 0.610413 0.367554 0.060089 0.609589 0.407623 0.061310 0.608643 0.449219 0.062592 0.607819 0.492126 0.063934 0.606934 0.536072 0.065247 0.605957 0.579651 0.066589 0.605042 0.621643 0.067993 0.604065 0.661682 0.069366 0.603119 0.699402 0.070801 0.602142 0.734467 0.072266 0.601166 0.766602 0.073669 0.600159 0.795837 0.075165 0.599152 0.822327 0.076691 0.598114 0.846313 0.078156 0.597076 0.868164 0.079742 0.596069 0.888000 0.081299 0.595032 0.906036 0.082855 0.594025 0.922546 0.084473 0.592957 0.937439 0.086029 0.591919 0.951019 0.087646 0.590881 0.963287 0.089294 0.589783 0.048004 0.071198 0.616425 0.070343 0.072266 0.615753 0.093658 0.073364 0.615051 0.118134 0.074493 0.614380 0.143799 0.075623 0.613647 0.170898 0.076813 0.612885 0.199493 0.078064 0.612030 0.229828 0.079285 0.611267 0.262115 0.080566 0.610474 0.296570 0.081848 0.609589 0.333069 0.083160 0.608734 0.371582 0.084503 0.607819 0.411926 0.085876 0.606934 0.453705 0.087250 0.605988 0.496826 0.088684 0.605042 0.540741 0.090088 0.604095 0.584320 0.091553 0.603149 0.626190 0.093048 0.602142 0.666016 0.094543 0.601196 0.703491 0.096100 0.600220 0.738312 0.097626 0.599152 0.770142 0.099182 0.598175 0.799042 0.100769 0.597168 0.825256 0.102386 0.596069 0.849030 0.103973 0.595093 0.870605 0.105652 0.594025 0.890228 0.107269 0.593018 0.908142 0.108978 0.591949 0.924408 0.110657 0.590912 0.939178 0.112335 0.589844 0.952606 0.114075 0.588837 0.964691 0.115845 0.587799 0.049896 0.095734 0.615112 0.072357 0.096924 0.614410 0.095795 0.098114 0.613647 0.120422 0.099335 0.612915 0.146240 0.100616 0.612122 0.173553 0.101898 0.611298 0.202393 0.103241 0.610474 0.232910 0.104584 0.609619 0.265472 0.105957 0.608765 0.300201 0.107361 0.607849 0.336945 0.108765 0.606964 0.375793 0.110229 0.605988 0.416351 0.111725 0.605042 0.458344 0.113190 0.604156 0.501617 0.114746 0.603149 0.545685 0.116272 0.602173 0.589142 0.117859 0.601196 0.630890 0.119446 0.600220 0.670471 0.121033 0.599213 0.707703 0.122711 0.598206 0.742218 0.124390 0.597168 0.773712 0.126038 0.596130 0.802338 0.127747 0.595093 0.828247 0.129456 0.594086 0.851715 0.131165 0.593018 0.873108 0.132904 0.591949 0.892517 0.134674 0.590942 0.910217 0.136505 0.589905 0.926300 0.138306 0.588837 0.940948 0.140076 0.587830 0.954193 0.141968 0.586792 0.966125 0.143799 0.585693 0.051880 0.121613 0.613647 0.074463 0.122864 0.612915 0.098083 0.124237 0.612152 0.122864 0.125580 0.611298 0.148895 0.126953 0.610504 0.176331 0.128357 0.609650 0.205414 0.129822 0.608765 0.236176 0.131256 0.607880 0.269012 0.132751 0.606964 0.304016 0.134308 0.606079 0.341064 0.135834 0.605164 0.380066 0.137390 0.604156 0.420807 0.138977 0.603210 0.463104 0.140625 0.602234 0.506531 0.142303 0.601257 0.550690 0.143921 0.600250 0.593994 0.145630 0.599243 0.635559 0.147339 0.598206 0.674988 0.149078 0.597198 0.711914 0.150848 0.596191 0.746124 0.152618 0.595123 0.777283 0.154388 0.594116 0.805603 0.156250 0.593079 0.831207 0.158112 0.592041 0.854462 0.159943 0.590942 0.875580 0.161835 0.589935 0.894775 0.163696 0.588867 0.912292 0.165619 0.587830 0.928192 0.167542 0.586792 0.942657 0.169434 0.585754 0.955750 0.171448 0.584747 0.967529 0.173431 0.583679 0.053955 0.148956 0.612152 0.076660 0.150360 0.611359 0.100433 0.151794 0.610504 0.125397 0.153290 0.609650 0.151550 0.154816 0.608795 0.179230 0.156311 0.607880 0.208496 0.157898 0.606995 0.239532 0.159485 0.606110 0.272644 0.161102 0.605164 0.307953 0.162811 0.604187 0.345245 0.164429 0.603271 0.384521 0.166138 0.602234 0.425537 0.167877 0.601318 0.467987 0.169647 0.600311 0.511597 0.171448 0.599243 0.555756 0.173218 0.598328 0.598969 0.175079 0.597229 0.640350 0.176910 0.596191 0.679504 0.178741 0.595184 0.716156 0.180664 0.594116 0.750031 0.182617 0.593079 0.780853 0.184509 0.592072 0.808838 0.186462 0.591003 0.834167 0.188446 0.589996 0.857178 0.190460 0.588959 0.878052 0.192474 0.587860 0.897034 0.194489 0.586853 0.914368 0.196533 0.585785 0.930115 0.198639 0.584778 0.944336 0.200653 0.583740 0.957306 0.202789 0.582703 0.968964 0.204926 0.581696 0.056152 0.177948 0.610535 0.078979 0.179474 0.609711 0.102875 0.181091 0.608795 0.127991 0.182709 0.607941 0.154388 0.184357 0.607056 0.182251 0.186035 0.606110 0.211761 0.187775 0.605194 0.243042 0.189453 0.604248 0.276428 0.191223 0.603271 0.311951 0.192993 0.602264 0.349579 0.194885 0.601318 0.389130 0.196747 0.600311 0.430298 0.198578 0.599304 0.472961 0.200470 0.598328 0.516754 0.202454 0.597290 0.560883 0.204346 0.596252 0.603973 0.206360 0.595245 0.645172 0.208374 0.594177 0.684021 0.210358 0.593109 0.720398 0.212402 0.592102 0.753937 0.214508 0.591064 0.784454 0.216522 0.589996 0.812103 0.218689 0.588959 0.837128 0.220764 0.587952 0.859863 0.222931 0.586853 0.880554 0.225128 0.585876 0.899292 0.227264 0.584839 0.916443 0.229492 0.583740 0.931976 0.231720 0.582733 0.946075 0.233948 0.581726 0.958832 0.236176 0.580719 0.970337 0.238434 0.579712 0.058380 0.208771 0.608826 0.081360 0.210480 0.608002 0.105469 0.212250 0.607056 0.130737 0.213989 0.606171 0.157288 0.215820 0.605194 0.185364 0.217651 0.604248 0.215057 0.219543 0.603302 0.246613 0.221405 0.602356 0.280304 0.223358 0.601349 0.316101 0.225250 0.600372 0.354004 0.227264 0.599304 0.393829 0.229309 0.598358 0.435181 0.231323 0.597351 0.478058 0.233398 0.596283 0.522034 0.235474 0.595245 0.566132 0.237549 0.594238 0.609009 0.239777 0.593201 0.650055 0.241913 0.592102 0.688599 0.244080 0.591095 0.724670 0.246277 0.590027 0.757812 0.248505 0.588989 0.788025 0.250763 0.587982 0.815369 0.253052 0.586914 0.840088 0.255341 0.585907 0.862579 0.257660 0.584839 0.883026 0.259979 0.583832 0.901550 0.262329 0.582764 0.918457 0.264740 0.581757 0.933838 0.267120 0.580750 0.947754 0.269470 0.579803 0.960358 0.271912 0.578766 0.971710 0.274323 0.577850 0.060760 0.241791 0.607086 0.083862 0.243591 0.606201 0.108093 0.245514 0.605225 0.133575 0.247467 0.604279 0.160309 0.249420 0.603333 0.188568 0.251465 0.602356 0.218475 0.253448 0.601379 0.250336 0.255554 0.600403 0.284332 0.257660 0.599396 0.320343 0.259735 0.598389 0.358582 0.261963 0.597351 0.398621 0.264191 0.596344 0.440247 0.266357 0.595276 0.483276 0.268646 0.594238 0.527374 0.270905 0.593201 0.571442 0.273193 0.592163 0.614136 0.275513 0.591095 0.654907 0.277893 0.590027 0.693237 0.280243 0.589020 0.728943 0.282623 0.587982 0.761749 0.285004 0.586945 0.791565 0.287506 0.585907 0.818573 0.289948 0.584900 0.843048 0.292358 0.583862 0.865234 0.294922 0.582764 0.885468 0.297455 0.581757 0.903778 0.299927 0.580811 0.920471 0.302490 0.579803 0.935669 0.305023 0.578796 0.949432 0.307617 0.577850 0.961853 0.310211 0.576843 0.973022 0.312714 0.575928 0.063202 0.277039 0.605225 0.086426 0.279083 0.604340 0.110840 0.281189 0.603333 0.136475 0.283356 0.602386 0.163391 0.285492 0.601410 0.191925 0.287720 0.600403 0.222076 0.289886 0.599426 0.254181 0.292206 0.598389 0.288422 0.294495 0.597382 0.324799 0.296814 0.596405 0.363220 0.299133 0.595306 0.403534 0.301575 0.594269 0.445343 0.303894 0.593262 0.488586 0.306366 0.592224 0.532776 0.308899 0.591156 0.576721 0.311340 0.590118 0.619263 0.313843 0.589020 0.659668 0.316345 0.588013 0.697815 0.318909 0.586945 0.733185 0.321503 0.585938 0.765656 0.324066 0.584930 0.795105 0.326721 0.583862 0.821808 0.329315 0.582855 0.845978 0.331970 0.581787 0.867920 0.334656 0.580811 0.887848 0.337311 0.579834 0.905975 0.339996 0.578888 0.922516 0.342682 0.577911 0.937469 0.345398 0.576904 0.951080 0.348145 0.575928 0.963379 0.350861 0.575012 0.974335 0.353638 0.574127 0.065674 0.314880 0.603394 0.089050 0.317108 0.602417 0.113647 0.319427 0.601410 0.139404 0.321716 0.600433 0.166565 0.324066 0.599426 0.195282 0.326477 0.598450 0.225708 0.328857 0.597412 0.258087 0.331360 0.596405 0.292603 0.333832 0.595306 0.329285 0.336334 0.594360 0.367981 0.338898 0.593262 0.408508 0.341431 0.592224 0.450562 0.343994 0.591187 0.493988 0.346649 0.590149 0.538208 0.349213 0.589142 0.582123 0.351898 0.588074 0.624390 0.354614 0.587036 0.664581 0.357239 0.585999 0.702362 0.359985 0.584930 0.737457 0.362793 0.583893 0.769501 0.365448 0.582886 0.798615 0.368286 0.581879 0.824982 0.371063 0.580841 0.848877 0.373810 0.579865 0.870544 0.376709 0.578888 0.890228 0.379547 0.577911 0.908142 0.382324 0.576935 0.924469 0.385223 0.575958 0.939270 0.388000 0.575073 0.952698 0.390869 0.574127 0.964813 0.393768 0.573242 0.975616 0.396637 0.572388 0.068237 0.355164 0.601501 0.091797 0.357544 0.600464 0.116516 0.360016 0.599457 0.142487 0.362488 0.598511 0.169830 0.365051 0.597412 0.198792 0.367615 0.596436 0.229431 0.370148 0.595398 0.262115 0.372833 0.594391 0.296906 0.375519 0.593323 0.333832 0.378174 0.592255 0.372833 0.380859 0.591187 0.413574 0.383636 0.590179 0.455811 0.386322 0.589142 0.499390 0.389130 0.588074 0.543701 0.391876 0.587067 0.587433 0.394745 0.585999 0.629578 0.397552 0.584991 0.669464 0.400391 0.583923 0.706940 0.403229 0.582886 0.741638 0.406189 0.581879 0.773346 0.408997 0.580902 0.802124 0.411957 0.579865 0.828156 0.414886 0.578918 0.851685 0.417816 0.577942 0.873138 0.420776 0.576935 0.892609 0.423706 0.576050 0.910309 0.426666 0.575134 0.926422 0.429626 0.574188 0.941040 0.432526 0.573303 0.954285 0.435577 0.572388 0.966248 0.438599 0.571564 0.976929 0.441498 0.570679 0.070862 0.397522 0.599518 0.094604 0.400177 0.598511 0.119476 0.402832 0.597504 0.145599 0.405457 0.596466 0.173187 0.408142 0.595428 0.202362 0.410919 0.594391 0.233246 0.413635 0.593384 0.266144 0.416443 0.592316 0.301300 0.419281 0.591278 0.338531 0.422028 0.590271 0.377716 0.424927 0.589172 0.418732 0.427765 0.588104 0.461212 0.430664 0.587097 0.504913 0.433563 0.586060 0.549286 0.436462 0.585052 0.592834 0.439423 0.583923 0.634735 0.442444 0.582916 0.674347 0.445343 0.581909 0.711456 0.448395 0.580963 0.745850 0.451447 0.579956 0.777130 0.454376 0.578949 0.805542 0.457428 0.578003 0.831268 0.460449 0.576965 0.854553 0.463501 0.576050 0.875702 0.466553 0.575134 0.894928 0.469543 0.574219 0.912415 0.472626 0.573303 0.928314 0.475708 0.572418 0.942780 0.478729 0.571564 0.955841 0.481781 0.570709 0.967651 0.484863 0.569885 0.978180 0.487915 0.569092 0.073608 0.441925 0.597534 0.097473 0.444733 0.596466 0.122528 0.447510 0.595459 0.148834 0.450317 0.594421 0.176605 0.453186 0.593384 0.205994 0.455994 0.592316 0.237152 0.458862 0.591309 0.270355 0.461823 0.590271 0.305817 0.464813 0.589172 0.343292 0.467712 0.588196 0.382751 0.470673 0.587097 0.423920 0.473602 0.586090 0.466583 0.476685 0.585052 0.510406 0.479736 0.584015 0.554840 0.482697 0.582947 0.598236 0.485840 0.581970 0.639832 0.488861 0.580963 0.679199 0.491913 0.579987 0.716003 0.495026 0.578949 0.750000 0.498169 0.578003 0.780914 0.501190 0.577057 0.808960 0.504364 0.576080 0.834290 0.507385 0.575165 0.857330 0.510590 0.574219 0.878235 0.513702 0.573303 0.897217 0.516754 0.572449 0.914520 0.519897 0.571594 0.930206 0.523041 0.570709 0.944489 0.526062 0.569916 0.957367 0.529266 0.569092 0.969025 0.532379 0.568298 0.979401 0.535370 0.567963 0.076355 0.487946 0.595490 0.100403 0.490845 0.594482 0.125641 0.493744 0.593414 0.152130 0.496674 0.592346 0.180084 0.499664 0.591339 0.209717 0.502655 0.590302 0.241119 0.505585 0.589233 0.274628 0.508606 0.588196 0.310303 0.511719 0.587158 0.348053 0.514709 0.586090 0.387817 0.517792 0.585083 0.429169 0.520874 0.584045 0.472046 0.523987 0.583038 0.516022 0.527130 0.582001 0.560394 0.530151 0.580994 0.603577 0.533295 0.579987 0.645020 0.536469 0.579010 0.683960 0.539551 0.578064 0.720459 0.542725 0.577057 0.754028 0.545837 0.576080 0.784607 0.548981 0.575195 0.812286 0.552063 0.574280 0.837311 0.555145 0.573334 0.860077 0.558258 0.572449 0.880737 0.561401 0.571594 0.899475 0.564392 0.570770 0.916565 0.567474 0.569916 0.932098 0.570496 0.569153 0.946167 0.573486 0.568329 0.958893 0.576508 0.567963 0.970367 0.579529 0.567963 0.980560 0.582458 0.567963 0.079163 0.535187 0.593475 0.103394 0.538177 0.592377 0.128784 0.541138 0.591339 0.155426 0.544098 0.590332 0.183655 0.547150 0.589264 0.213501 0.550232 0.588226 0.245148 0.553223 0.587219 0.278961 0.556244 0.586151 0.314911 0.559326 0.585083 0.352936 0.562317 0.584076 0.392914 0.565399 0.583038 0.434509 0.568420 0.582062 0.477539 0.571472 0.581024 0.521637 0.574585 0.580048 0.565948 0.577545 0.579071 0.608948 0.580597 0.578094 0.650085 0.583710 0.577087 0.688751 0.586670 0.576141 0.724884 0.589722 0.575195 0.758118 0.592804 0.574280 0.788239 0.595673 0.573425 0.815582 0.598724 0.572540 0.840302 0.601654 0.571625 0.862793 0.604614 0.570831 0.883148 0.607605 0.569977 0.901703 0.610504 0.569183 0.918579 0.613403 0.568420 0.933899 0.616333 0.567963 0.947784 0.619171 0.567963 0.960358 0.622040 0.567963 0.971680 0.624939 0.567963 0.981750 0.627655 0.567963 0.082062 0.582062 0.591431 0.106445 0.585052 0.590332 0.131989 0.587982 0.589264 0.158844 0.590881 0.588257 0.187256 0.593781 0.587219 0.217346 0.596771 0.586212 0.249268 0.599670 0.585175 0.283356 0.602631 0.584076 0.319580 0.605560 0.583069 0.357880 0.608459 0.582062 0.398102 0.611450 0.581024 0.439850 0.614380 0.580109 0.483063 0.617310 0.579071 0.527283 0.620270 0.578094 0.571472 0.623138 0.577118 0.614258 0.626068 0.576172 0.655090 0.628998 0.575287 0.693451 0.631836 0.574310 0.729248 0.634735 0.573425 0.762054 0.637604 0.572540 0.791809 0.640411 0.571655 0.818848 0.643250 0.570831 0.843231 0.645996 0.569977 0.865417 0.648834 0.569183 0.885559 0.651611 0.568420 0.903870 0.654358 0.567963 0.920532 0.657074 0.567963 0.935669 0.659821 0.567963 0.949371 0.662506 0.567963 0.961792 0.665131 0.567963 0.972931 0.667786 0.567963 0.982849 0.670349 0.567963 0.084991 0.627228 0.589325 0.109497 0.630035 0.588318 0.135223 0.632904 0.587250 0.162292 0.635651 0.586243 0.190918 0.638458 0.585175 0.221252 0.641357 0.584106 0.253418 0.644073 0.583130 0.287811 0.646942 0.582123 0.324280 0.649689 0.581116 0.362854 0.652466 0.580109 0.403320 0.655304 0.579102 0.445282 0.658081 0.578125 0.488617 0.660858 0.577118 0.532959 0.663635 0.576172 0.576935 0.666351 0.575287 0.619537 0.669037 0.574310 0.660095 0.671844 0.573456 0.698151 0.674500 0.572571 0.733551 0.677185 0.571655 0.765930 0.679840 0.570862 0.795380 0.682526 0.570007 0.821991 0.685181 0.569183 0.846130 0.687714 0.568451 0.868011 0.690338 0.567963 0.887909 0.692932 0.567963 0.905975 0.695435 0.567963 0.922455 0.697998 0.567963 0.937378 0.700500 0.567963 0.950928 0.702942 0.567963 0.963196 0.705383 0.567963 0.974152 0.707733 0.567963 0.983917 0.710144 0.567963 0.087952 0.670044 0.587311 0.112640 0.672729 0.586243 0.138580 0.675446 0.585205 0.165833 0.678009 0.584198 0.194641 0.680695 0.583130 0.225159 0.683319 0.582153 0.257629 0.685974 0.581146 0.292328 0.688599 0.580139 0.329071 0.691193 0.579163 0.367920 0.693817 0.578186 0.408539 0.696472 0.577209 0.450684 0.699005 0.576233 0.494232 0.701599 0.575317 0.538605 0.704193 0.574341 0.582458 0.706696 0.573486 0.624756 0.709259 0.572571 0.665009 0.711761 0.571655 0.702698 0.714264 0.570862 0.737762 0.716736 0.570007 0.769745 0.719147 0.569244 0.798828 0.721619 0.568451 0.825073 0.724030 0.567963 0.848907 0.726379 0.567963 0.870544 0.728790 0.567963 0.890228 0.731110 0.567963 0.908051 0.733368 0.567963 0.924347 0.735687 0.567963 0.939117 0.737976 0.567963 0.952454 0.740204 0.567963 0.964539 0.742401 0.567963 0.975372 0.744568 0.567963 0.984955 0.746704 0.567963 0.090973 0.710022 0.585266 0.115845 0.712555 0.584198 0.141907 0.715057 0.583160 0.169342 0.717468 0.582153 0.198395 0.719971 0.581146 0.229156 0.722351 0.580200 0.261902 0.724854 0.579224 0.296844 0.727295 0.578186 0.333862 0.729675 0.577240 0.372986 0.732117 0.576294 0.413818 0.734497 0.575348 0.456116 0.736877 0.574402 0.499756 0.739227 0.573486 0.544220 0.741577 0.572601 0.587860 0.743835 0.571716 0.629883 0.746185 0.570892 0.669830 0.748413 0.570038 0.707275 0.750702 0.569305 0.741882 0.752960 0.568481 0.773499 0.755157 0.567963 0.802185 0.757416 0.567963 0.828156 0.759552 0.567963 0.851624 0.761688 0.567963 0.873016 0.763855 0.567963 0.892456 0.765961 0.567963 0.910095 0.767975 0.567963 0.926147 0.770050 0.567963 0.940735 0.772034 0.567963 0.953918 0.774048 0.567963 0.965851 0.776001 0.567963 0.976501 0.777924 0.567963 0.985992 0.779785 0.567963 0.094025 0.746887 0.583221 0.119049 0.749176 0.582184 0.145294 0.751434 0.581207 0.172943 0.753693 0.580200 0.202240 0.755981 0.579224 0.233185 0.758148 0.578217 0.266235 0.760345 0.577240 0.301422 0.762634 0.576294 0.338745 0.764771 0.575348 0.378021 0.766968 0.574402 0.419098 0.769196 0.573486 0.461517 0.771240 0.572662 0.505280 0.773407 0.571777 0.549652 0.775482 0.570984 0.593231 0.777557 0.570099 0.635010 0.779633 0.569305 0.674622 0.781677 0.568481 0.711639 0.783691 0.567963 0.745972 0.785736 0.567963 0.777161 0.787659 0.567963 0.805481 0.789673 0.567963 0.831146 0.791626 0.567963 0.854340 0.793488 0.567963 0.875427 0.795380 0.567963 0.894623 0.797272 0.567963 0.912048 0.799042 0.567963 0.927948 0.800903 0.567963 0.942291 0.802643 0.567963 0.955353 0.804413 0.567963 0.967133 0.806152 0.567963 0.977661 0.807861 0.567963 0.987000 0.809540 0.567963 0.097137 0.780273 0.581268 0.122314 0.782349 0.580231 0.148682 0.784393 0.579254 0.176544 0.786407 0.578278 0.205994 0.788452 0.577332 0.237244 0.790466 0.576324 0.270569 0.792480 0.575378 0.306061 0.794464 0.574463 0.343567 0.796417 0.573608 0.383118 0.798370 0.572662 0.424347 0.800293 0.571777 0.466980 0.802216 0.570984 0.510803 0.804138 0.570099 0.555237 0.806000 0.569336 0.598541 0.807861 0.568512 0.640015 0.809723 0.567963 0.679260 0.811554 0.567963 0.716003 0.813324 0.567963 0.749939 0.815125 0.567963 0.780731 0.816864 0.567963 0.808716 0.818634 0.567963 0.833984 0.820343 0.567963 0.856934 0.822021 0.567963 0.877777 0.823730 0.567963 0.896698 0.825348 0.567963 0.913940 0.826965 0.567963 0.929657 0.828583 0.567963 0.943878 0.830170 0.567963 0.956726 0.831696 0.567963 0.968353 0.833282 0.567963 0.978729 0.834747 0.567963 0.987915 0.836243 0.567963 0.100250 0.810272 0.579254 0.125580 0.812164 0.578278 0.152130 0.814026 0.577362 0.180176 0.815857 0.576355 0.209900 0.817688 0.575378 0.241364 0.819458 0.574493 0.274902 0.821289 0.573608 0.310669 0.823059 0.572723 0.348419 0.824829 0.571838 0.388184 0.826538 0.571014 0.429626 0.828308 0.570099 0.472382 0.829987 0.569336 0.516327 0.831726 0.568512 0.560608 0.833374 0.567963 0.603729 0.835052 0.567963 0.645020 0.836731 0.567963 0.683929 0.838318 0.567963 0.720306 0.839966 0.567963 0.753754 0.841553 0.567963 0.784241 0.843109 0.567963 0.811829 0.844635 0.567963 0.836853 0.846191 0.567963 0.859467 0.847687 0.567963 0.880066 0.849182 0.567963 0.898773 0.850616 0.567963 0.915833 0.852081 0.567963 0.931305 0.853516 0.567963 0.945343 0.854889 0.567963 0.958038 0.856262 0.567963 0.969513 0.857635 0.567963 0.979767 0.858948 0.567963 0.988831 0.860260 0.567963 0.103394 0.837311 0.577362 0.128845 0.839020 0.576355 0.155609 0.840637 0.575470 0.183868 0.842316 0.574493 0.213715 0.843964 0.573608 0.245453 0.845551 0.572754 0.279266 0.847198 0.571869 0.315308 0.848816 0.571014 0.353302 0.850372 0.570160 0.393250 0.851959 0.569397 0.434814 0.853485 0.568604 0.477783 0.855042 0.567963 0.521790 0.856567 0.567963 0.566010 0.858032 0.567963 0.608826 0.859558 0.567963 0.649811 0.861023 0.567963 0.688446 0.862457 0.567963 0.724426 0.863922 0.567963 0.757568 0.865326 0.567963 0.787628 0.866730 0.567963 0.814880 0.868103 0.567963 0.839539 0.869415 0.567963 0.861938 0.870789 0.567963 0.882294 0.872131 0.567963 0.900757 0.873383 0.567963 0.917603 0.874664 0.567963 0.932922 0.875946 0.567963 0.946777 0.877167 0.567963 0.959351 0.878387 0.567963 0.970673 0.879578 0.567963 0.980743 0.880737 0.567963 0.989685 0.881897 0.567963 0.106537 0.861664 0.575500 0.132172 0.863190 0.574585 0.159088 0.864655 0.573639 0.187531 0.866180 0.572754 0.217621 0.867645 0.571869 0.249573 0.869080 0.571075 0.283691 0.870544 0.570190 0.319977 0.871979 0.569397 0.358185 0.873383 0.568604 0.398285 0.874817 0.567963 0.440002 0.876190 0.567963 0.483124 0.877594 0.567963 0.527191 0.878967 0.567963 0.571259 0.880249 0.567963 0.613892 0.881622 0.567963 0.654572 0.882935 0.567963 0.692871 0.884216 0.567963 0.728455 0.885468 0.567963 0.761200 0.886810 0.567963 0.790894 0.888000 0.567963 0.817810 0.889221 0.567963 0.842163 0.890411 0.567963 0.864319 0.891602 0.567963 0.884399 0.892792 0.567963 0.902679 0.893921 0.567963 0.919342 0.895050 0.567963 0.934448 0.896179 0.567963 0.948181 0.897278 0.567963 0.960571 0.898346 0.567963 0.971771 0.899414 0.567963 0.981689 0.900421 0.567963 0.990479 0.901459 0.567963 0.109711 0.883636 0.573700 0.135468 0.885010 0.572754 0.162537 0.886322 0.571930 0.191193 0.887695 0.571075 0.221527 0.889008 0.570190 0.253693 0.890289 0.569427 0.288055 0.891602 0.568634 0.324493 0.892883 0.567963 0.363037 0.894165 0.567963 0.403351 0.895447 0.567963 0.445190 0.896667 0.567963 0.488434 0.897888 0.567963 0.532562 0.899139 0.567963 0.576447 0.900330 0.567963 0.618805 0.901520 0.567963 0.659210 0.902679 0.567963 0.697144 0.903809 0.567963 0.732391 0.904999 0.567963 0.764771 0.906097 0.567963 0.794067 0.907196 0.567963 0.820679 0.908295 0.567963 0.844727 0.909363 0.567963 0.866608 0.910400 0.567963 0.886475 0.911469 0.567963 0.904541 0.912476 0.567963 0.920990 0.913452 0.567963 0.935944 0.914459 0.567963 0.949493 0.915436 0.567963 0.961761 0.916351 0.567963 0.972778 0.917267 0.567963 0.982605 0.918182 0.567963 0.991272 0.919067 0.567963 0.112885 0.903442 0.571930 0.138824 0.904694 0.571106 0.166077 0.905853 0.570251 0.194916 0.907074 0.569427 0.225403 0.908264 0.568634 0.257843 0.909454 0.567963 0.292450 0.910614 0.567963 0.329102 0.911743 0.567963 0.367859 0.912903 0.567963 0.408356 0.914032 0.567963 0.450348 0.915161 0.567963 0.493683 0.916260 0.567963 0.537842 0.917358 0.567963 0.581543 0.918396 0.567963 0.623657 0.919434 0.567963 0.663696 0.920532 0.567963 0.701324 0.921539 0.567963 0.736237 0.922546 0.567963 0.768158 0.923523 0.567963 0.797180 0.924530 0.567963 0.823425 0.925507 0.567963 0.847229 0.926422 0.567963 0.868835 0.927399 0.567963 0.888458 0.928284 0.567963 0.906311 0.929169 0.567963 0.922607 0.930054 0.567963 0.937378 0.930939 0.567963 0.950775 0.931763 0.567963 0.962891 0.932648 0.567963 0.973755 0.933411 0.567963 0.983459 0.934235 0.567963 0.992004 0.934998 0.567963 0.116058 0.921356 0.570251 0.142151 0.922455 0.569519 0.169525 0.923492 0.568726 0.198578 0.924622 0.567963 0.229248 0.925659 0.567963 0.261963 0.926697 0.567963 0.296814 0.927795 0.567963 0.333710 0.928772 0.567963 0.372620 0.929810 0.567963 0.413300 0.930847 0.567963 0.455414 0.931793 0.567963 0.498779 0.932831 0.567963 0.542999 0.933777 0.567963 0.586456 0.934692 0.567963 0.628357 0.935669 0.567963 0.668030 0.936584 0.567963 0.705383 0.937469 0.567963 0.739929 0.938385 0.567963 0.771484 0.939240 0.567963 0.800140 0.940125 0.567963 0.826080 0.941010 0.567963 0.849609 0.941833 0.567963 0.870972 0.942657 0.567963 0.890381 0.943451 0.567963 0.908020 0.944214 0.567963 0.924103 0.945007 0.567963 0.938721 0.945801 0.567963 0.951996 0.946533 0.567963 0.963928 0.947235 0.567963 0.974670 0.947937 0.567963 0.984283 0.948639 0.567963 0.992706 0.949310 0.567963 0.119263 0.937469 0.568726 0.145447 0.938446 0.567963 0.173035 0.939423 0.567963 0.202271 0.940399 0.567963 0.233154 0.941315 0.567963 0.266052 0.942261 0.567963 0.301117 0.943207 0.567963 0.338287 0.944122 0.567963 0.377380 0.945007 0.567963 0.418152 0.945953 0.567963 0.460419 0.946777 0.567963 0.503845 0.947662 0.567963 0.548035 0.948547 0.567963 0.591339 0.949371 0.567963 0.632904 0.950226 0.567963 0.672302 0.951019 0.567963 0.709320 0.951813 0.567963 0.743469 0.952606 0.567963 0.774719 0.953400 0.567963 0.803009 0.954193 0.567963 0.828644 0.954926 0.567963 0.851868 0.955627 0.567963 0.872986 0.956390 0.567963 0.892212 0.957092 0.567963 0.909668 0.957733 0.567963 0.925568 0.958435 0.567963 0.940033 0.959106 0.567963 0.953125 0.959747 0.567963 0.964966 0.960388 0.567963 0.975586 0.960968 0.567963 0.985046 0.961548 0.567963 0.993378 0.962158 0.567963 0.122406 0.951996 0.567963 0.148743 0.952881 0.567963 0.176514 0.953735 0.567963 0.205872 0.954590 0.567963 0.236969 0.955414 0.567963 0.270111 0.956299 0.567963 0.305420 0.957092 0.567963 0.342773 0.957886 0.567963 0.382019 0.958679 0.567963 0.423035 0.959503 0.567963 0.465363 0.960266 0.567963 0.508881 0.961029 0.567963 0.552917 0.961792 0.567963 0.596039 0.962524 0.567963 0.637329 0.963287 0.567963 0.676422 0.963989 0.567963 0.713074 0.964691 0.567963 0.746948 0.965393 0.567963 0.777771 0.966034 0.567963 0.805725 0.966736 0.567963 0.831085 0.967377 0.567963 0.854034 0.967987 0.567963 0.874908 0.968597 0.567963 0.893921 0.969238 0.567963 0.911224 0.969818 0.567963 0.926971 0.970428 0.567963 0.941254 0.970947 0.567963 0.954224 0.971558 0.567963 0.965942 0.972076 0.567963 0.976410 0.972595 0.567963 0.985779 0.973114 0.567963 0.993958 0.973602 0.567963 0.125519 0.964966 0.567963 0.152008 0.965729 0.567963 0.179962 0.966522 0.567963 0.209534 0.967285 0.567963 0.240845 0.967987 0.567963 0.274170 0.968781 0.567963 0.309692 0.969482 0.567963 0.347198 0.970184 0.567963 0.386688 0.970886 0.567963 0.427765 0.971588 0.567963 0.470184 0.972260 0.567963 0.513733 0.972931 0.567963 0.557709 0.973572 0.567963 0.600586 0.974243 0.567963 0.641663 0.974884 0.567963 0.680420 0.975494 0.567963 0.716736 0.976105 0.567963 0.750244 0.976715 0.567963 0.780731 0.977264 0.567963 0.808350 0.977875 0.567963 0.833435 0.978424 0.567963 0.856140 0.978943 0.567963 0.876801 0.979492 0.567963 0.895569 0.980011 0.567963 0.912659 0.980530 0.567963 0.928253 0.981018 0.567963 0.942383 0.981506 0.567963 0.955231 0.981995 0.567963 0.966827 0.982452 0.567963 0.977203 0.982880 0.567963 0.986420 0.983307 0.567963 0.994537 0.983734 0.567963 0.043274 0.004578 0.657593 0.065247 0.005402 0.657104 0.088196 0.006195 0.656555 0.112213 0.007050 0.656036 0.137421 0.007935 0.655457 0.164032 0.008881 0.654907 0.192047 0.009796 0.654266 0.221771 0.010773 0.653656 0.253387 0.011780 0.652924 0.287018 0.012787 0.652283 0.322845 0.013824 0.651520 0.360657 0.014893 0.650787 0.400269 0.015961 0.650085 0.441498 0.017090 0.649231 0.484039 0.018219 0.648468 0.527649 0.019379 0.647614 0.571411 0.020569 0.646790 0.613556 0.021759 0.645966 0.653961 0.023010 0.645081 0.692078 0.024261 0.644196 0.727570 0.025482 0.643280 0.760284 0.026794 0.642365 0.790039 0.028107 0.641449 0.816986 0.029388 0.640564 0.841492 0.030762 0.639587 0.863678 0.032104 0.638611 0.883881 0.033478 0.637665 0.902283 0.034851 0.636688 0.919037 0.036255 0.635712 0.934296 0.037720 0.634735 0.948151 0.039124 0.633728 0.960663 0.040588 0.632721 0.044861 0.025879 0.656555 0.066956 0.026794 0.656036 0.090027 0.027710 0.655487 0.114227 0.028625 0.654938 0.139587 0.029602 0.654266 0.166351 0.030640 0.653656 0.194580 0.031647 0.652985 0.224548 0.032684 0.652313 0.256348 0.033813 0.651520 0.290253 0.034851 0.650848 0.326355 0.036011 0.650085 0.364410 0.037170 0.649231 0.404236 0.038361 0.648499 0.445740 0.039520 0.647675 0.488434 0.040741 0.646820 0.532227 0.042023 0.645966 0.575897 0.043304 0.645111 0.617981 0.044556 0.644257 0.658173 0.045898 0.643372 0.696106 0.047241 0.642365 0.731384 0.048584 0.641479 0.763794 0.049957 0.640594 0.793243 0.051361 0.639587 0.819885 0.052734 0.638672 0.844147 0.054199 0.637665 0.866119 0.055634 0.636719 0.886139 0.057068 0.635773 0.904388 0.058563 0.634735 0.920959 0.060089 0.633789 0.936035 0.061554 0.632751 0.949738 0.063141 0.631744 0.962097 0.064606 0.630768 0.046570 0.048187 0.655487 0.068756 0.049164 0.654938 0.092010 0.050171 0.654327 0.116333 0.051208 0.653687 0.141846 0.052307 0.653015 0.168762 0.053375 0.652313 0.197266 0.054504 0.651550 0.227386 0.055634 0.650879 0.259460 0.056854 0.650116 0.293640 0.058044 0.649323 0.329987 0.059265 0.648529 0.368286 0.060486 0.647705 0.408356 0.061768 0.646881 0.450104 0.063110 0.645996 0.492950 0.064392 0.645172 0.536896 0.065735 0.644257 0.580536 0.067139 0.643372 0.622498 0.068481 0.642456 0.662537 0.069885 0.641510 0.700195 0.071350 0.640594 0.735199 0.072754 0.639648 0.767303 0.074249 0.638672 0.796448 0.075745 0.637726 0.822876 0.077209 0.636749 0.846832 0.078766 0.635773 0.868591 0.080292 0.634796 0.888428 0.081848 0.633789 0.906464 0.083435 0.632751 0.922882 0.084991 0.631775 0.937805 0.086639 0.630768 0.951294 0.088287 0.629761 0.963531 0.089905 0.628784 0.048340 0.071564 0.654358 0.070679 0.072662 0.653687 0.094055 0.073792 0.653015 0.118530 0.074890 0.652374 0.144226 0.076080 0.651611 0.171417 0.077271 0.650879 0.200012 0.078491 0.650146 0.230347 0.079742 0.649323 0.262756 0.081024 0.648529 0.297211 0.082306 0.647705 0.333801 0.083649 0.646881 0.372314 0.084961 0.646088 0.412720 0.086365 0.645172 0.454559 0.087799 0.644287 0.497620 0.089172 0.643402 0.541718 0.090637 0.642487 0.585205 0.092133 0.641510 0.627045 0.093567 0.640656 0.666901 0.095123 0.639679 0.704315 0.096649 0.638702 0.739014 0.098206 0.637756 0.770844 0.099792 0.636841 0.799652 0.101318 0.635803 0.825775 0.102966 0.634857 0.849548 0.104614 0.633820 0.871063 0.106201 0.632874 0.890686 0.107910 0.631836 0.908508 0.109589 0.630829 0.924774 0.111237 0.629822 0.939514 0.112976 0.628815 0.952911 0.114716 0.627808 0.964966 0.116425 0.626801 0.050232 0.096161 0.653076 0.072723 0.097351 0.652374 0.096222 0.098572 0.651611 0.120850 0.099792 0.650940 0.146759 0.101105 0.650146 0.174072 0.102417 0.649323 0.202942 0.103729 0.648621 0.233551 0.105072 0.647766 0.266113 0.106476 0.646942 0.300873 0.107880 0.646088 0.337738 0.109344 0.645203 0.376556 0.110779 0.644318 0.417145 0.112274 0.643433 0.459259 0.113800 0.642487 0.502533 0.115295 0.641602 0.546631 0.116852 0.640656 0.590027 0.118469 0.639679 0.631683 0.119995 0.638733 0.671326 0.121674 0.637787 0.708527 0.123352 0.636841 0.742859 0.124969 0.635834 0.774414 0.126709 0.634857 0.802917 0.128357 0.633850 0.828796 0.130096 0.632874 0.852234 0.131836 0.631836 0.873535 0.133575 0.630890 0.892944 0.135345 0.629852 0.910614 0.137177 0.628815 0.926636 0.138947 0.627869 0.941254 0.140778 0.626831 0.954498 0.142639 0.625854 0.966400 0.144440 0.624847 0.052246 0.122070 0.651672 0.074890 0.123383 0.650940 0.098511 0.124725 0.650146 0.123322 0.126068 0.649384 0.149353 0.127472 0.648621 0.176880 0.128906 0.647766 0.205933 0.130341 0.646973 0.236816 0.131805 0.646118 0.269684 0.133301 0.645264 0.304688 0.134827 0.644318 0.341827 0.136414 0.643433 0.380890 0.137970 0.642548 0.421692 0.139587 0.641632 0.464020 0.141235 0.640686 0.507477 0.142853 0.639771 0.551697 0.144531 0.638824 0.594910 0.146240 0.637787 0.636414 0.147980 0.636871 0.675842 0.149750 0.635895 0.712646 0.151459 0.634888 0.746796 0.153259 0.633911 0.777985 0.155090 0.632904 0.806152 0.156891 0.631866 0.831757 0.158752 0.630890 0.854980 0.160645 0.629852 0.876038 0.162476 0.628906 0.895233 0.164398 0.627869 0.912659 0.166351 0.626831 0.928528 0.168243 0.625885 0.942993 0.170227 0.624847 0.956024 0.172150 0.623932 0.967804 0.174133 0.622894 0.054352 0.149414 0.650208 0.077087 0.150909 0.649445 0.100891 0.152374 0.648651 0.125854 0.153809 0.647797 0.152100 0.155365 0.646973 0.179779 0.156921 0.646118 0.209076 0.158478 0.645264 0.240204 0.160095 0.644348 0.273315 0.161713 0.643463 0.308655 0.163361 0.642578 0.346069 0.165100 0.641632 0.385315 0.166748 0.640717 0.426422 0.168549 0.639771 0.468933 0.170319 0.638824 0.512482 0.172058 0.637817 0.556793 0.173920 0.636902 0.599884 0.175720 0.635895 0.641205 0.177551 0.634918 0.680359 0.179474 0.633911 0.716919 0.181335 0.632965 0.750702 0.183289 0.631927 0.781586 0.185242 0.630920 0.809418 0.187195 0.629883 0.834747 0.189209 0.628937 0.857666 0.191193 0.627899 0.878510 0.193176 0.626923 0.897522 0.195221 0.625946 0.914764 0.197327 0.624939 0.930420 0.199341 0.623932 0.944702 0.201416 0.622986 0.957550 0.203522 0.621979 0.969208 0.205688 0.621033 0.056519 0.178497 0.648682 0.079407 0.180084 0.647797 0.103394 0.181671 0.647034 0.128510 0.183289 0.646149 0.154938 0.184967 0.645294 0.182800 0.186646 0.644440 0.212341 0.188385 0.643524 0.243744 0.190125 0.642578 0.277100 0.191864 0.641663 0.312714 0.193695 0.640778 0.350433 0.195557 0.639801 0.389954 0.197388 0.638855 0.431274 0.199280 0.637909 0.473938 0.201202 0.636902 0.517670 0.203125 0.635925 0.561920 0.205109 0.634918 0.604828 0.207062 0.633942 0.645996 0.209076 0.632965 0.684967 0.211121 0.631927 0.721161 0.213165 0.630981 0.754669 0.215240 0.629913 0.785126 0.217346 0.628937 0.812683 0.219452 0.627991 0.837708 0.221558 0.626953 0.860413 0.223755 0.625946 0.881012 0.225922 0.624969 0.899750 0.228088 0.623962 0.916809 0.230255 0.623016 0.932312 0.232513 0.622040 0.946411 0.234772 0.621063 0.959106 0.236938 0.620087 0.970581 0.239258 0.619110 0.058807 0.209381 0.647064 0.081818 0.211151 0.646179 0.105957 0.212891 0.645294 0.131226 0.214691 0.644440 0.157837 0.216492 0.643524 0.185944 0.218323 0.642609 0.215698 0.220184 0.641724 0.247345 0.222137 0.640778 0.281006 0.224030 0.639832 0.316925 0.226013 0.638885 0.354889 0.228027 0.637909 0.394653 0.230042 0.636932 0.436157 0.232056 0.635986 0.479126 0.234192 0.634979 0.522980 0.236237 0.634003 0.567169 0.238373 0.632996 0.609924 0.240540 0.632019 0.650879 0.242706 0.631012 0.689514 0.244934 0.630005 0.725464 0.247070 0.628998 0.758606 0.249390 0.627991 0.788696 0.251617 0.626953 0.815948 0.253876 0.625977 0.840637 0.256226 0.625000 0.863098 0.258545 0.623962 0.883453 0.260834 0.623016 0.902008 0.263214 0.622040 0.918823 0.265564 0.621124 0.934174 0.267944 0.620117 0.948090 0.270386 0.619110 0.960632 0.272797 0.618195 0.971924 0.275269 0.617279 0.061127 0.242432 0.645355 0.084351 0.244354 0.644470 0.108582 0.246185 0.643585 0.134064 0.248199 0.642670 0.160889 0.250183 0.641724 0.189178 0.252197 0.640839 0.219177 0.254242 0.639832 0.251068 0.256348 0.638885 0.285065 0.258423 0.637939 0.321198 0.260559 0.636993 0.359467 0.262787 0.635986 0.399536 0.264923 0.635010 0.441193 0.267212 0.634003 0.484222 0.269409 0.633026 0.528320 0.271698 0.632019 0.572449 0.274048 0.631012 0.615051 0.276337 0.630035 0.655731 0.278717 0.629028 0.694092 0.281128 0.628021 0.729706 0.283478 0.627045 0.762512 0.285950 0.626007 0.792236 0.288422 0.625000 0.819153 0.290802 0.623993 0.843597 0.293335 0.623047 0.865753 0.295868 0.622101 0.885864 0.298309 0.621124 0.904205 0.300873 0.620117 0.920868 0.303375 0.619171 0.936005 0.306000 0.618225 0.949738 0.308563 0.617310 0.962158 0.311127 0.616394 0.973297 0.313751 0.615479 0.063629 0.277802 0.643646 0.086945 0.279907 0.642731 0.111328 0.281921 0.641754 0.136993 0.284119 0.640869 0.164001 0.286316 0.639923 0.192505 0.288483 0.638916 0.222748 0.290771 0.637970 0.254883 0.293060 0.636993 0.289185 0.295288 0.636017 0.325653 0.297699 0.635040 0.364105 0.300018 0.634064 0.404419 0.302429 0.633026 0.446320 0.304840 0.632080 0.489502 0.307220 0.631042 0.533752 0.309753 0.630035 0.577789 0.312225 0.629028 0.620239 0.314697 0.628052 0.660645 0.317291 0.627045 0.698669 0.319855 0.626007 0.733948 0.322418 0.625061 0.766388 0.325043 0.624084 0.795776 0.327698 0.623047 0.822388 0.330322 0.622131 0.846497 0.332947 0.621124 0.868378 0.335571 0.620178 0.888306 0.338287 0.619232 0.906433 0.341003 0.618225 0.922852 0.343658 0.617371 0.937836 0.346436 0.616425 0.951385 0.349182 0.615479 0.963593 0.351868 0.614624 0.974579 0.354645 0.613739 0.066132 0.315704 0.641815 0.089600 0.317963 0.640869 0.114166 0.320251 0.639954 0.139954 0.322601 0.639008 0.167206 0.325012 0.637970 0.195923 0.327332 0.637024 0.226410 0.329773 0.636078 0.258820 0.332275 0.635040 0.293365 0.334717 0.634094 0.330139 0.337280 0.633087 0.368835 0.339783 0.632111 0.409454 0.342346 0.631134 0.451538 0.344940 0.630127 0.494904 0.347565 0.629059 0.539276 0.350250 0.628082 0.583130 0.352905 0.627075 0.625336 0.355530 0.626068 0.665527 0.358246 0.625092 0.703278 0.361053 0.624084 0.738190 0.363770 0.623077 0.770264 0.366516 0.622131 0.799316 0.369354 0.621155 0.825531 0.372070 0.620239 0.849396 0.374908 0.619232 0.871002 0.377686 0.618317 0.890686 0.380524 0.617371 0.908569 0.383392 0.616425 0.924835 0.386200 0.615540 0.939606 0.389099 0.614624 0.953033 0.391968 0.613739 0.965057 0.394806 0.612915 0.975891 0.397705 0.612030 0.068726 0.356018 0.639954 0.092346 0.358521 0.639008 0.117065 0.360931 0.638031 0.143066 0.363495 0.637054 0.170502 0.366028 0.636078 0.199432 0.368561 0.635071 0.230164 0.371155 0.634125 0.262909 0.373840 0.633148 0.297699 0.376465 0.632111 0.334717 0.379181 0.631134 0.373749 0.381836 0.630157 0.414520 0.384583 0.629150 0.456879 0.387421 0.628082 0.500397 0.390076 0.627136 0.544800 0.392914 0.626129 0.588531 0.395782 0.625092 0.630493 0.398590 0.624115 0.670380 0.401459 0.623138 0.707825 0.404388 0.622162 0.742432 0.407196 0.621185 0.774078 0.410156 0.620239 0.802734 0.412994 0.619263 0.828674 0.415924 0.618347 0.852234 0.418945 0.617401 0.873566 0.421783 0.616486 0.893036 0.424774 0.615601 0.910706 0.427795 0.614655 0.926758 0.430664 0.613800 0.941376 0.433655 0.612946 0.954590 0.436707 0.612122 0.966492 0.439636 0.611298 0.977142 0.442596 0.610474 0.071381 0.398529 0.638092 0.095154 0.401184 0.637115 0.119995 0.403809 0.636139 0.146210 0.406433 0.635162 0.173859 0.409180 0.634125 0.203033 0.411926 0.633179 0.234039 0.414673 0.632141 0.266907 0.417419 0.631165 0.302124 0.420258 0.630188 0.339417 0.423096 0.629181 0.378632 0.425964 0.628174 0.419678 0.428833 0.627136 0.462219 0.431793 0.626129 0.505890 0.434631 0.625214 0.550323 0.437592 0.624176 0.593872 0.440582 0.623169 0.635651 0.443481 0.622223 0.675293 0.446472 0.621246 0.712402 0.449493 0.620270 0.746582 0.452484 0.619354 0.777893 0.455536 0.618347 0.806152 0.458527 0.617462 0.831818 0.461578 0.616516 0.855072 0.464661 0.615601 0.876190 0.467621 0.614655 0.895386 0.470734 0.613831 0.912842 0.473785 0.612946 0.928680 0.476807 0.612152 0.943115 0.479889 0.611298 0.956146 0.482971 0.610504 0.967896 0.485992 0.609711 0.978394 0.488983 0.608948 0.074097 0.442993 0.636139 0.098022 0.445770 0.635162 0.123077 0.448486 0.634155 0.149445 0.451324 0.633179 0.177277 0.454224 0.632141 0.206665 0.457092 0.631195 0.237915 0.459991 0.630188 0.271149 0.462860 0.629211 0.306580 0.465790 0.628204 0.344177 0.468811 0.627167 0.383667 0.471741 0.626190 0.424927 0.474792 0.625214 0.467621 0.477814 0.624207 0.511444 0.480804 0.623230 0.555878 0.483856 0.622223 0.599243 0.486938 0.621246 0.640778 0.489960 0.620300 0.680084 0.493073 0.619354 0.716827 0.496124 0.618378 0.750702 0.499237 0.617462 0.781647 0.502380 0.616516 0.809570 0.505432 0.615631 0.834869 0.508575 0.614746 0.857819 0.511719 0.613831 0.878662 0.514801 0.612976 0.897675 0.517944 0.612152 0.914917 0.521088 0.611298 0.930573 0.524170 0.610535 0.944794 0.527252 0.609741 0.957672 0.530304 0.608978 0.969238 0.533447 0.608215 0.979614 0.536591 0.608154 0.076874 0.488983 0.634247 0.100952 0.491913 0.633240 0.126160 0.494781 0.632233 0.152740 0.497742 0.631195 0.180725 0.500671 0.630249 0.210388 0.503723 0.629211 0.241913 0.506744 0.628204 0.275391 0.509705 0.627228 0.311157 0.512756 0.626190 0.348999 0.515808 0.625244 0.388733 0.518921 0.624237 0.430237 0.521973 0.623230 0.473114 0.525116 0.622253 0.517059 0.528168 0.621307 0.561462 0.531372 0.620300 0.604553 0.534485 0.619385 0.645874 0.537567 0.618408 0.684906 0.540741 0.617493 0.721252 0.543793 0.616547 0.754822 0.546997 0.615662 0.785309 0.550140 0.614777 0.812897 0.553162 0.613892 0.837921 0.556274 0.613068 0.860596 0.559387 0.612152 0.881165 0.562439 0.611359 0.899933 0.565521 0.610535 0.916992 0.568604 0.609741 0.932434 0.571594 0.608978 0.946472 0.574615 0.608215 0.959167 0.577606 0.608154 0.970612 0.580566 0.608154 0.980804 0.583588 0.608154 0.079742 0.536316 0.632263 0.103943 0.539307 0.631256 0.129364 0.542267 0.630280 0.156097 0.545288 0.629303 0.184357 0.548309 0.628265 0.214203 0.551270 0.627228 0.245941 0.554352 0.626221 0.279724 0.557312 0.625305 0.315765 0.560394 0.624237 0.353912 0.563507 0.623260 0.393860 0.566498 0.622314 0.435547 0.569550 0.621338 0.478577 0.572601 0.620392 0.522644 0.575653 0.619415 0.567017 0.578705 0.618408 0.609955 0.581757 0.617493 0.650970 0.584778 0.616608 0.689667 0.587830 0.615662 0.725647 0.590790 0.614777 0.758850 0.593842 0.613922 0.788940 0.596832 0.613068 0.816162 0.599762 0.612183 0.840851 0.602783 0.611389 0.863281 0.605774 0.610535 0.883606 0.608643 0.609802 0.902100 0.611603 0.609009 0.918945 0.614532 0.608246 0.934235 0.617371 0.608154 0.948120 0.620270 0.608154 0.960602 0.623047 0.608154 0.971893 0.625885 0.608154 0.981964 0.628723 0.608154 0.082611 0.583160 0.630280 0.106995 0.586151 0.629303 0.132568 0.588989 0.628296 0.159485 0.591949 0.627289 0.187927 0.594849 0.626312 0.218048 0.597809 0.625305 0.250092 0.600769 0.624329 0.284149 0.603699 0.623322 0.320465 0.606628 0.622314 0.358887 0.609619 0.621338 0.399017 0.612488 0.620422 0.440918 0.615417 0.619415 0.484161 0.618378 0.618500 0.528290 0.621307 0.617554 0.572540 0.624207 0.616608 0.615204 0.627075 0.615723 0.656006 0.630005 0.614838 0.694366 0.632904 0.613922 0.730042 0.635773 0.613098 0.762787 0.638611 0.612213 0.792542 0.641479 0.611389 0.819427 0.644257 0.610596 0.843781 0.647095 0.609802 0.865906 0.649902 0.609009 0.885986 0.652618 0.608307 0.904266 0.655396 0.608154 0.920898 0.658142 0.608154 0.935974 0.660767 0.608154 0.949677 0.663452 0.608154 0.962067 0.666077 0.608154 0.973175 0.668701 0.608154 0.983063 0.671295 0.608154 0.085571 0.628296 0.628357 0.110138 0.631134 0.627319 0.135834 0.633911 0.626343 0.162994 0.636719 0.625336 0.191559 0.639496 0.624359 0.221985 0.642303 0.623322 0.254242 0.645172 0.622375 0.288605 0.647888 0.621368 0.325226 0.650757 0.620422 0.363831 0.653534 0.619476 0.404266 0.656311 0.618530 0.446320 0.659119 0.617615 0.489716 0.661896 0.616669 0.533936 0.664581 0.615753 0.578064 0.667389 0.614838 0.620453 0.670044 0.613983 0.660980 0.672791 0.613098 0.699036 0.675507 0.612213 0.734283 0.678192 0.611450 0.766693 0.680878 0.610657 0.796021 0.683502 0.609863 0.822540 0.686066 0.609070 0.846649 0.688721 0.608307 0.868500 0.691284 0.608154 0.888336 0.693878 0.608154 0.906403 0.696381 0.608154 0.922821 0.698883 0.608154 0.937744 0.701385 0.608154 0.951233 0.703827 0.608154 0.963440 0.706268 0.608154 0.974396 0.708649 0.608154 0.984131 0.711060 0.608154 0.088562 0.671051 0.626343 0.113190 0.673645 0.625397 0.139160 0.676331 0.624359 0.166473 0.679047 0.623352 0.195312 0.681671 0.622406 0.225922 0.684296 0.621399 0.258453 0.686981 0.620453 0.293121 0.689545 0.619537 0.329987 0.692200 0.618530 0.368896 0.694794 0.617615 0.409485 0.697388 0.616699 0.451721 0.700012 0.615753 0.495178 0.702515 0.614868 0.539612 0.705078 0.613983 0.583466 0.707672 0.613129 0.625702 0.710114 0.612305 0.665894 0.712646 0.611450 0.703613 0.715179 0.610657 0.738495 0.717621 0.609894 0.770508 0.720062 0.609070 0.799469 0.722534 0.608307 0.825653 0.724884 0.608154 0.849457 0.727295 0.608154 0.871033 0.729675 0.608154 0.890625 0.731964 0.608154 0.908447 0.734283 0.608154 0.924652 0.736511 0.608154 0.939392 0.738770 0.608154 0.952728 0.741028 0.608154 0.964752 0.743195 0.608154 0.975586 0.745361 0.608154 0.985199 0.747528 0.608154 0.091583 0.710999 0.624390 0.116425 0.713409 0.623444 0.142548 0.715942 0.622406 0.170013 0.718384 0.621399 0.199066 0.720825 0.620483 0.229950 0.723297 0.619537 0.262756 0.725769 0.618591 0.297699 0.728119 0.617645 0.334839 0.730560 0.616699 0.373932 0.733002 0.615814 0.414764 0.735352 0.614899 0.457153 0.737762 0.614014 0.500732 0.740051 0.613159 0.545227 0.742401 0.612335 0.588867 0.744751 0.611481 0.630829 0.746979 0.610687 0.670746 0.749329 0.609894 0.708099 0.751587 0.609100 0.742615 0.753754 0.608368 0.774200 0.756012 0.608154 0.802795 0.758209 0.608154 0.828674 0.760315 0.608154 0.852173 0.762512 0.608154 0.873444 0.764587 0.608154 0.892853 0.766693 0.608154 0.910461 0.768738 0.608154 0.926453 0.770752 0.608154 0.941040 0.772797 0.608154 0.954224 0.774780 0.608154 0.966064 0.776642 0.608154 0.976746 0.778625 0.608154 0.986176 0.780518 0.608154 0.094666 0.747742 0.622467 0.119598 0.749969 0.621521 0.145905 0.752258 0.620544 0.173615 0.754517 0.619568 0.202911 0.756775 0.618622 0.234009 0.759003 0.617676 0.267059 0.761200 0.616730 0.302246 0.763397 0.615875 0.339661 0.765625 0.614899 0.378967 0.767731 0.614105 0.420044 0.769928 0.613159 0.462616 0.772064 0.612335 0.506287 0.774139 0.611542 0.550720 0.776276 0.610687 0.594238 0.778351 0.609924 0.635925 0.780334 0.609161 0.675507 0.782440 0.608368 0.712555 0.784485 0.608154 0.746674 0.786407 0.608154 0.777893 0.788452 0.608154 0.806091 0.790405 0.608154 0.831635 0.792267 0.608154 0.854828 0.794220 0.608154 0.875885 0.796021 0.608154 0.895020 0.797913 0.608154 0.912415 0.799744 0.608154 0.928223 0.801514 0.608154 0.942627 0.803314 0.608154 0.955627 0.805084 0.608154 0.967346 0.806793 0.608154 0.977844 0.808472 0.608154 0.987183 0.810150 0.608154 0.097748 0.781067 0.620544 0.122864 0.783081 0.619629 0.149323 0.785126 0.618622 0.177246 0.787201 0.617676 0.206757 0.789185 0.616791 0.238037 0.791199 0.615875 0.271362 0.793213 0.614990 0.306885 0.795166 0.614105 0.344543 0.797119 0.613251 0.384033 0.799042 0.612366 0.425293 0.801025 0.611542 0.467987 0.802917 0.610718 0.511810 0.804749 0.609924 0.556244 0.806671 0.609161 0.599518 0.808533 0.608429 0.640930 0.810364 0.608154 0.680176 0.812195 0.608154 0.716858 0.814026 0.608154 0.750610 0.815765 0.608154 0.781433 0.817505 0.608154 0.809235 0.819244 0.608154 0.834534 0.820953 0.608154 0.857422 0.822693 0.608154 0.878204 0.824280 0.608154 0.897125 0.825928 0.608154 0.914337 0.827606 0.608154 0.929932 0.829132 0.608154 0.944122 0.830780 0.608154 0.957001 0.832306 0.608154 0.968536 0.833801 0.608154 0.978912 0.835297 0.608154 0.988068 0.836761 0.608154 0.100861 0.811005 0.618683 0.126129 0.812866 0.617737 0.152771 0.814697 0.616791 0.180908 0.816528 0.615906 0.210571 0.818359 0.615021 0.242126 0.820160 0.614136 0.275665 0.821899 0.613281 0.311523 0.823700 0.612396 0.349396 0.825470 0.611603 0.389099 0.827179 0.610779 0.430603 0.828918 0.609955 0.473419 0.830658 0.609161 0.517303 0.832306 0.608459 0.561676 0.833984 0.608154 0.604736 0.835663 0.608154 0.645844 0.837280 0.608154 0.684784 0.838928 0.608154 0.721069 0.840546 0.608154 0.754486 0.842102 0.608154 0.784912 0.843689 0.608154 0.812378 0.845215 0.608154 0.837311 0.846741 0.608154 0.859955 0.848236 0.608154 0.880493 0.849701 0.608154 0.899139 0.851135 0.608154 0.916199 0.852631 0.608154 0.931580 0.854004 0.608154 0.945648 0.855408 0.608154 0.958313 0.856781 0.608154 0.969727 0.858124 0.608154 0.979950 0.859436 0.608154 0.988953 0.860687 0.608154 0.103973 0.837952 0.616821 0.129456 0.839600 0.615936 0.156281 0.841278 0.615021 0.184540 0.842926 0.614136 0.214478 0.844543 0.613281 0.246216 0.846191 0.612396 0.280060 0.847748 0.611633 0.316132 0.849365 0.610779 0.354279 0.850952 0.609955 0.394196 0.852509 0.609222 0.435822 0.854034 0.608459 0.478760 0.855591 0.608154 0.522797 0.857086 0.608154 0.566956 0.858612 0.608154 0.609863 0.860077 0.608154 0.650665 0.861511 0.608154 0.689270 0.863007 0.608154 0.725189 0.864410 0.608154 0.758209 0.865814 0.608154 0.788239 0.867218 0.608154 0.815430 0.868591 0.608154 0.840027 0.869965 0.608154 0.862396 0.871307 0.608154 0.882660 0.872559 0.608154 0.901154 0.873901 0.608154 0.917938 0.875183 0.608154 0.933167 0.876373 0.608154 0.947052 0.877625 0.608154 0.959564 0.878845 0.608154 0.970856 0.880035 0.608154 0.980957 0.881195 0.608154 0.989838 0.882324 0.608154 0.107147 0.862244 0.615051 0.132751 0.863708 0.614166 0.159729 0.865204 0.613342 0.188263 0.866760 0.612396 0.218353 0.868195 0.611633 0.250366 0.869659 0.610779 0.284454 0.871063 0.610046 0.320770 0.872467 0.609222 0.359131 0.873932 0.608459 0.399261 0.875305 0.608154 0.441010 0.876709 0.608154 0.484161 0.878082 0.608154 0.528168 0.879425 0.608154 0.572266 0.880737 0.608154 0.614777 0.882050 0.608154 0.655396 0.883392 0.608154 0.693695 0.884674 0.608154 0.729218 0.885925 0.608154 0.761871 0.887177 0.608154 0.791534 0.888458 0.608154 0.818359 0.889648 0.608154 0.842682 0.890869 0.608154 0.864746 0.892029 0.608154 0.884796 0.893250 0.608154 0.903046 0.894379 0.608154 0.919647 0.895508 0.608154 0.934723 0.896576 0.608154 0.948425 0.897705 0.608154 0.960785 0.898743 0.608154 0.971924 0.899780 0.608154 0.981873 0.900787 0.608154 0.990631 0.901794 0.608154 0.110321 0.884155 0.613342 0.136047 0.885468 0.612488 0.163239 0.886841 0.611633 0.191864 0.888153 0.610809 0.222260 0.889465 0.610046 0.254517 0.890808 0.609253 0.288879 0.892059 0.608490 0.325378 0.893372 0.608154 0.363922 0.894623 0.608154 0.404266 0.895905 0.608154 0.446198 0.897125 0.608154 0.489380 0.898376 0.608154 0.533508 0.899567 0.608154 0.577393 0.900757 0.608154 0.619690 0.901917 0.608154 0.660004 0.903107 0.608154 0.697968 0.904236 0.608154 0.733124 0.905365 0.608154 0.765381 0.906525 0.608154 0.794678 0.907593 0.608154 0.821198 0.908691 0.608154 0.845215 0.909760 0.608154 0.867035 0.910828 0.608154 0.886841 0.911835 0.608154 0.904907 0.912842 0.608154 0.921265 0.913818 0.608154 0.936218 0.914825 0.608154 0.949738 0.915802 0.608154 0.961975 0.916718 0.608154 0.972992 0.917633 0.608154 0.982788 0.918518 0.608154 0.991425 0.919403 0.608154 0.113495 0.903900 0.611664 0.139404 0.905090 0.610870 0.166718 0.906311 0.610077 0.195557 0.907501 0.609314 0.226105 0.908691 0.608582 0.258667 0.909912 0.608154 0.293243 0.911041 0.608154 0.329987 0.912170 0.608154 0.368744 0.913300 0.608154 0.409271 0.914459 0.608154 0.451324 0.915588 0.608154 0.494629 0.916687 0.608154 0.538757 0.917725 0.608154 0.582458 0.918793 0.608154 0.624512 0.919830 0.608154 0.664490 0.920898 0.608154 0.702118 0.921906 0.608154 0.736938 0.922913 0.608154 0.768829 0.923920 0.608154 0.797760 0.924896 0.608154 0.823914 0.925842 0.608154 0.847687 0.926788 0.608154 0.869232 0.927734 0.608154 0.888824 0.928589 0.608154 0.906677 0.929504 0.608154 0.922882 0.930359 0.608154 0.937622 0.931244 0.608154 0.951019 0.932098 0.608154 0.963074 0.932922 0.608154 0.973969 0.933716 0.608154 0.983612 0.934509 0.608154 0.992126 0.935272 0.608154 0.116608 0.921722 0.610107 0.142731 0.922821 0.609314 0.170258 0.923920 0.608582 0.199219 0.924988 0.608154 0.230011 0.926056 0.608154 0.262756 0.927124 0.608154 0.297546 0.928131 0.608154 0.334564 0.929169 0.608154 0.373566 0.930206 0.608154 0.414185 0.931183 0.608154 0.456390 0.932190 0.608154 0.499695 0.933136 0.608154 0.543915 0.934113 0.608154 0.587433 0.935059 0.608154 0.629181 0.935974 0.608154 0.668854 0.936890 0.608154 0.706146 0.937836 0.608154 0.740570 0.938721 0.608154 0.772156 0.939606 0.608154 0.800720 0.940430 0.608154 0.826538 0.941284 0.608154 0.850037 0.942139 0.608154 0.871338 0.942932 0.608154 0.890717 0.943756 0.608154 0.908325 0.944519 0.608154 0.924377 0.945282 0.608154 0.938995 0.946045 0.608154 0.952209 0.946777 0.608154 0.964172 0.947510 0.608154 0.974884 0.948212 0.608154 0.984406 0.948914 0.608154 0.992828 0.949554 0.608154 0.119781 0.937836 0.608612 0.146057 0.938812 0.608154 0.173737 0.939789 0.608154 0.202911 0.940765 0.608154 0.233917 0.941711 0.608154 0.266846 0.942627 0.608154 0.301910 0.943542 0.608154 0.339142 0.944489 0.608154 0.378265 0.945374 0.608154 0.419098 0.946259 0.608154 0.461365 0.947144 0.608154 0.504822 0.947998 0.608154 0.548981 0.948853 0.608154 0.592255 0.949707 0.608154 0.633728 0.950500 0.608154 0.673126 0.951324 0.608154 0.710022 0.952148 0.608154 0.744080 0.952942 0.608154 0.775299 0.953705 0.608154 0.803528 0.954437 0.608154 0.829102 0.955200 0.608154 0.852264 0.955902 0.608154 0.873352 0.956604 0.608154 0.892517 0.957306 0.608154 0.910004 0.958008 0.608154 0.925842 0.958649 0.608154 0.940247 0.959320 0.608154 0.953339 0.959961 0.608154 0.965118 0.960571 0.608154 0.975739 0.961182 0.608154 0.985199 0.961792 0.608154 0.993469 0.962341 0.608154 0.122955 0.952271 0.608154 0.149323 0.953186 0.608154 0.177185 0.954041 0.608154 0.206573 0.954895 0.608154 0.237732 0.955750 0.608154 0.270905 0.956573 0.608154 0.306244 0.957367 0.608154 0.343628 0.958191 0.608154 0.382904 0.958984 0.608154 0.423889 0.959808 0.608154 0.466278 0.960541 0.608154 0.509766 0.961304 0.608154 0.553833 0.962067 0.608154 0.596924 0.962830 0.608154 0.638123 0.963531 0.608154 0.677185 0.964233 0.608154 0.713806 0.964935 0.608154 0.747559 0.965637 0.608154 0.778351 0.966309 0.608154 0.806213 0.966949 0.608154 0.831512 0.967590 0.608154 0.854462 0.968262 0.608154 0.875275 0.968872 0.608154 0.894257 0.969452 0.608154 0.911499 0.970062 0.608154 0.927216 0.970612 0.608154 0.941467 0.971191 0.608154 0.954437 0.971741 0.608154 0.966064 0.972260 0.608154 0.976562 0.972778 0.608154 0.985901 0.973297 0.608154 0.994080 0.973785 0.608154 0.126099 0.965271 0.608154 0.152618 0.966034 0.608154 0.180634 0.966797 0.608154 0.210144 0.967529 0.608154 0.241547 0.968292 0.608154 0.274933 0.969025 0.608154 0.310455 0.969727 0.608154 0.348022 0.970459 0.608154 0.387482 0.971130 0.608154 0.428619 0.971802 0.608154 0.471130 0.972504 0.608154 0.514618 0.973175 0.608154 0.558655 0.973816 0.608154 0.601501 0.974487 0.608154 0.642365 0.975067 0.608154 0.681152 0.975708 0.608154 0.717438 0.976318 0.608154 0.750793 0.976929 0.608154 0.781281 0.977509 0.608154 0.808807 0.978058 0.608154 0.833832 0.978638 0.608154 0.856537 0.979187 0.608154 0.877167 0.979706 0.608154 0.895905 0.980225 0.608154 0.912933 0.980713 0.608154 0.928497 0.981201 0.608154 0.942627 0.981689 0.608154 0.955414 0.982147 0.608154 0.966980 0.982574 0.608154 0.977356 0.983032 0.608154 0.986542 0.983429 0.608154 0.994629 0.983856 0.608154 0.043579 0.004852 0.693298 0.065552 0.005676 0.692871 0.088501 0.006531 0.692352 0.112579 0.007385 0.691833 0.137848 0.008301 0.691254 0.164429 0.009186 0.690704 0.192535 0.010162 0.690125 0.222321 0.011139 0.689514 0.253906 0.012115 0.688873 0.287628 0.013184 0.688202 0.323425 0.014221 0.687531 0.361359 0.015289 0.686859 0.401031 0.016388 0.686066 0.442261 0.017487 0.685364 0.484863 0.018677 0.684631 0.528564 0.019836 0.683807 0.572174 0.021027 0.683044 0.614410 0.022217 0.682251 0.654785 0.023468 0.681396 0.692810 0.024719 0.680573 0.728302 0.025970 0.679688 0.760956 0.027283 0.678833 0.790619 0.028595 0.677979 0.817535 0.029907 0.677032 0.841919 0.031250 0.676147 0.864136 0.032593 0.675293 0.884338 0.033997 0.674347 0.902679 0.035370 0.673401 0.919434 0.036804 0.672485 0.934631 0.038239 0.671570 0.948425 0.039673 0.670593 0.960938 0.041107 0.669647 0.045166 0.026215 0.692352 0.067322 0.027130 0.691833 0.090393 0.028046 0.691284 0.114594 0.028992 0.690735 0.139984 0.029999 0.690125 0.166779 0.031006 0.689545 0.195068 0.032043 0.688904 0.225067 0.033112 0.688232 0.256927 0.034180 0.687531 0.290863 0.035309 0.686859 0.326996 0.036407 0.686127 0.365082 0.037598 0.685364 0.404999 0.038818 0.684631 0.446472 0.040009 0.683838 0.489319 0.041229 0.683044 0.533112 0.042511 0.682251 0.576691 0.043762 0.681427 0.618805 0.045105 0.680573 0.659027 0.046417 0.679688 0.696869 0.047729 0.678864 0.732117 0.049133 0.678009 0.764404 0.050476 0.677094 0.793823 0.051880 0.676147 0.820465 0.053284 0.675293 0.844635 0.054718 0.674377 0.866608 0.056183 0.673492 0.886597 0.057648 0.672516 0.904755 0.059082 0.671600 0.921326 0.060638 0.670624 0.936371 0.062134 0.669708 0.950012 0.063690 0.668762 0.962372 0.065216 0.667816 0.046875 0.048553 0.691376 0.069122 0.049561 0.690735 0.092346 0.050568 0.690186 0.116699 0.051636 0.689545 0.142334 0.052704 0.688904 0.169250 0.053802 0.688232 0.197723 0.054932 0.687531 0.227936 0.056061 0.686890 0.260040 0.057251 0.686157 0.294342 0.058472 0.685394 0.330688 0.059662 0.684662 0.369049 0.060974 0.683868 0.409180 0.062256 0.683105 0.450836 0.063568 0.682281 0.493866 0.064880 0.681458 0.537842 0.066254 0.680603 0.581360 0.067596 0.679749 0.623322 0.069031 0.678894 0.663361 0.070435 0.678009 0.700928 0.071838 0.677124 0.735901 0.073303 0.676239 0.767914 0.074768 0.675323 0.797058 0.076294 0.674438 0.823395 0.077789 0.673492 0.847321 0.079315 0.672546 0.869049 0.080872 0.671600 0.888855 0.082458 0.670624 0.906860 0.084015 0.669739 0.923218 0.085632 0.668762 0.938080 0.087250 0.667816 0.951599 0.088837 0.666901 0.963806 0.090485 0.665924 0.048706 0.071991 0.690186 0.071075 0.073090 0.689575 0.094452 0.074188 0.688934 0.118958 0.075348 0.688263 0.144714 0.076538 0.687592 0.171844 0.077698 0.686890 0.200531 0.078949 0.686157 0.230957 0.080200 0.685486 0.263336 0.081482 0.684692 0.297913 0.082825 0.683868 0.334473 0.084137 0.683136 0.373169 0.085480 0.682312 0.413513 0.086884 0.681458 0.455383 0.088318 0.680634 0.498596 0.089722 0.679779 0.542664 0.091217 0.678894 0.586090 0.092651 0.678040 0.627991 0.094147 0.677124 0.667664 0.095673 0.676270 0.705048 0.097198 0.675415 0.739777 0.098785 0.674438 0.771454 0.100311 0.673523 0.800262 0.101929 0.672546 0.826385 0.103577 0.671661 0.850037 0.105164 0.670685 0.871552 0.106873 0.669739 0.891083 0.108521 0.668823 0.908875 0.110168 0.667847 0.925110 0.111908 0.666901 0.939819 0.113617 0.665985 0.953186 0.115356 0.665009 0.965240 0.117065 0.664062 0.050629 0.096588 0.688934 0.073151 0.097809 0.688263 0.096649 0.099030 0.687592 0.121307 0.100250 0.686920 0.147186 0.101562 0.686188 0.174591 0.102875 0.685486 0.203491 0.104218 0.684692 0.234131 0.105560 0.683929 0.266754 0.106964 0.683136 0.301605 0.108398 0.682312 0.338501 0.109833 0.681488 0.377380 0.111328 0.680634 0.417999 0.112823 0.679779 0.460052 0.114319 0.678955 0.503479 0.115906 0.678070 0.547516 0.117432 0.677155 0.590912 0.119019 0.676270 0.632629 0.120636 0.675415 0.672150 0.122253 0.674469 0.709290 0.123932 0.673553 0.743622 0.125610 0.672607 0.775024 0.127289 0.671692 0.803497 0.128998 0.670746 0.829315 0.130737 0.669769 0.852722 0.132446 0.668854 0.874023 0.134247 0.667908 0.893433 0.136017 0.666931 0.911011 0.137787 0.665985 0.927032 0.139648 0.665009 0.941559 0.141418 0.664093 0.954742 0.143250 0.663177 0.966675 0.145172 0.662231 0.052643 0.122559 0.687653 0.075287 0.123871 0.686920 0.098938 0.125214 0.686188 0.123779 0.126617 0.685516 0.149872 0.127991 0.684723 0.177399 0.129395 0.683960 0.206543 0.130859 0.683167 0.237427 0.132324 0.682343 0.270355 0.133881 0.681549 0.305420 0.135406 0.680695 0.342590 0.136963 0.679840 0.381775 0.138580 0.679016 0.422577 0.140167 0.678070 0.464874 0.141785 0.677185 0.508392 0.143494 0.676300 0.552582 0.145142 0.675446 0.595856 0.146881 0.674500 0.637329 0.148651 0.673553 0.676636 0.150360 0.672668 0.713501 0.152161 0.671692 0.747589 0.153961 0.670776 0.778625 0.155762 0.669830 0.806824 0.157593 0.668854 0.832336 0.159454 0.667908 0.855438 0.161316 0.666962 0.876495 0.163208 0.666016 0.895630 0.165100 0.665100 0.913055 0.166992 0.664154 0.928894 0.168976 0.663177 0.943268 0.170929 0.662262 0.956329 0.172882 0.661316 0.968048 0.174866 0.660370 0.054749 0.149994 0.686249 0.077515 0.151367 0.685547 0.101349 0.152893 0.684723 0.126312 0.154388 0.683960 0.152588 0.155914 0.683197 0.180328 0.157501 0.682404 0.209717 0.159119 0.681549 0.240875 0.160675 0.680725 0.274048 0.162323 0.679871 0.309418 0.164032 0.679016 0.346832 0.165710 0.678162 0.386200 0.167419 0.677185 0.427277 0.169159 0.676331 0.469788 0.170959 0.675476 0.513519 0.172760 0.674500 0.557678 0.174561 0.673584 0.600830 0.176392 0.672699 0.642120 0.178253 0.671722 0.681152 0.180145 0.670807 0.717712 0.182068 0.669861 0.751495 0.184021 0.668884 0.782196 0.185944 0.667938 0.810059 0.187958 0.667023 0.835297 0.189941 0.666077 0.858185 0.191925 0.665100 0.878998 0.193939 0.664185 0.897888 0.195953 0.663208 0.915161 0.198029 0.662323 0.930786 0.200134 0.661316 0.944977 0.202209 0.660400 0.957886 0.204315 0.659485 0.969452 0.206482 0.658508 0.056976 0.179077 0.684784 0.079865 0.180634 0.683990 0.103821 0.182251 0.683197 0.129028 0.183929 0.682404 0.155426 0.185547 0.681580 0.183380 0.187286 0.680725 0.212952 0.189056 0.679871 0.244385 0.190735 0.679047 0.277863 0.192566 0.678192 0.313538 0.194427 0.677246 0.351196 0.196198 0.676331 0.390869 0.198090 0.675476 0.432129 0.199951 0.674591 0.474884 0.201874 0.673645 0.518707 0.203888 0.672699 0.562866 0.205811 0.671783 0.605896 0.207825 0.670807 0.646973 0.209869 0.669861 0.685730 0.211823 0.668945 0.722046 0.213928 0.667999 0.755402 0.216034 0.667023 0.785797 0.218109 0.666107 0.813324 0.220245 0.665131 0.838226 0.222351 0.664246 0.860870 0.224548 0.663239 0.881439 0.226746 0.662323 0.900146 0.228882 0.661346 0.917175 0.231110 0.660431 0.932678 0.233368 0.659515 0.946716 0.235535 0.658569 0.959412 0.237823 0.657715 0.970825 0.240112 0.656738 0.059265 0.210052 0.683289 0.082275 0.211731 0.682465 0.106445 0.213531 0.681671 0.131775 0.215332 0.680756 0.158417 0.217133 0.679901 0.186523 0.219025 0.679077 0.216370 0.220886 0.678192 0.248016 0.222809 0.677307 0.281799 0.224762 0.676392 0.317688 0.226746 0.675507 0.355713 0.228760 0.674622 0.395599 0.230774 0.673645 0.437073 0.232819 0.672729 0.480042 0.234894 0.671783 0.523987 0.237030 0.670868 0.568115 0.239166 0.669922 0.610901 0.241333 0.668945 0.651794 0.243530 0.667999 0.690338 0.245667 0.667053 0.726257 0.247955 0.666107 0.759369 0.250244 0.665131 0.789368 0.252472 0.664246 0.816528 0.254730 0.663239 0.841156 0.257019 0.662354 0.863586 0.259369 0.661438 0.883881 0.261749 0.660431 0.902374 0.264099 0.659546 0.919220 0.266479 0.658630 0.934509 0.268890 0.657715 0.948364 0.271240 0.656799 0.960938 0.273682 0.655914 0.972198 0.276154 0.655060 0.061615 0.243103 0.681671 0.084808 0.244995 0.680786 0.109100 0.246918 0.679932 0.134613 0.248932 0.679077 0.161438 0.250916 0.678223 0.189789 0.252960 0.677338 0.219849 0.255035 0.676392 0.251740 0.257111 0.675568 0.285797 0.259247 0.674622 0.321991 0.261353 0.673706 0.360321 0.263580 0.672791 0.400452 0.265778 0.671844 0.442108 0.267944 0.670898 0.485229 0.270294 0.669952 0.529419 0.272614 0.668976 0.573425 0.274872 0.668091 0.616058 0.277222 0.667114 0.656677 0.279633 0.666168 0.694946 0.281982 0.665161 0.730560 0.284393 0.664276 0.763184 0.286774 0.663269 0.792938 0.289246 0.662384 0.819794 0.291748 0.661438 0.844116 0.294220 0.660553 0.866241 0.296692 0.659546 0.886322 0.299286 0.658630 0.904602 0.301819 0.657745 0.921234 0.304352 0.656830 0.936340 0.306946 0.655914 0.950012 0.309448 0.655090 0.962402 0.312103 0.654175 0.973511 0.314636 0.653351 0.064056 0.278564 0.679932 0.087402 0.280579 0.679108 0.111877 0.282745 0.678253 0.137543 0.284943 0.677338 0.164551 0.287079 0.676422 0.193115 0.289307 0.675568 0.223419 0.291626 0.674652 0.255646 0.293854 0.673706 0.289948 0.296204 0.672791 0.326416 0.298492 0.671875 0.364990 0.300873 0.670898 0.405365 0.303314 0.670013 0.447296 0.305725 0.669006 0.490540 0.308197 0.668091 0.534821 0.310699 0.667114 0.578705 0.313141 0.666199 0.621185 0.315704 0.665192 0.661591 0.318268 0.664276 0.699493 0.320770 0.663361 0.734772 0.323395 0.662384 0.767090 0.325958 0.661469 0.796417 0.328613 0.660553 0.822968 0.331268 0.659576 0.847046 0.333862 0.658691 0.868896 0.336578 0.657806 0.888763 0.339294 0.656830 0.906799 0.341980 0.655975 0.923218 0.344696 0.655090 0.938171 0.347443 0.654205 0.951660 0.350128 0.653381 0.963867 0.352905 0.652557 0.974854 0.355652 0.651703 0.066620 0.316559 0.678253 0.090088 0.318787 0.677368 0.114716 0.321106 0.676483 0.140594 0.323456 0.675598 0.167786 0.325836 0.674713 0.196594 0.328247 0.673767 0.227112 0.330658 0.672821 0.259552 0.333191 0.671936 0.294220 0.335693 0.670929 0.330933 0.338165 0.670044 0.369781 0.340759 0.669037 0.410400 0.343353 0.668121 0.452484 0.345947 0.667175 0.495972 0.348572 0.666199 0.540344 0.351227 0.665283 0.584076 0.353882 0.664307 0.626343 0.356598 0.663391 0.666412 0.359253 0.662415 0.704102 0.361969 0.661499 0.739014 0.364777 0.660583 0.770935 0.367493 0.659637 0.799957 0.370300 0.658722 0.826141 0.373169 0.657806 0.849915 0.375885 0.656891 0.871490 0.378754 0.656006 0.891113 0.381622 0.655121 0.908966 0.384399 0.654266 0.925201 0.387268 0.653381 0.939941 0.390076 0.652588 0.953278 0.392975 0.651703 0.965363 0.395874 0.650940 0.976105 0.398712 0.650116 0.069214 0.356964 0.676514 0.092834 0.359375 0.675629 0.117615 0.361847 0.674744 0.143677 0.364410 0.673767 0.171082 0.366913 0.672852 0.200104 0.369568 0.671936 0.230835 0.372101 0.670959 0.263611 0.374756 0.670044 0.298523 0.377472 0.669037 0.335541 0.380127 0.668152 0.374634 0.382843 0.667206 0.415497 0.385620 0.666229 0.457825 0.388367 0.665314 0.501434 0.391144 0.664337 0.545837 0.394012 0.663391 0.589447 0.396790 0.662506 0.631500 0.399628 0.661499 0.671234 0.402496 0.660645 0.708649 0.405365 0.659637 0.743225 0.408264 0.658752 0.774780 0.411133 0.657837 0.803406 0.414124 0.656921 0.829315 0.417053 0.656036 0.852753 0.419922 0.655151 0.874084 0.422913 0.654266 0.893494 0.425903 0.653442 0.911102 0.428833 0.652588 0.927155 0.431824 0.651703 0.941711 0.434692 0.650970 0.954865 0.437744 0.650146 0.966766 0.440735 0.649323 0.977386 0.443665 0.648651 0.071899 0.399536 0.674744 0.095673 0.402100 0.673828 0.120605 0.404785 0.672852 0.146790 0.407410 0.671967 0.174469 0.410187 0.670959 0.203735 0.412933 0.670074 0.234650 0.415619 0.669128 0.267761 0.418549 0.668152 0.302979 0.421326 0.667206 0.340271 0.424103 0.666260 0.379578 0.427063 0.665314 0.420654 0.429932 0.664337 0.463165 0.432770 0.663422 0.506927 0.435730 0.662506 0.551361 0.438629 0.661591 0.594849 0.441650 0.660645 0.636658 0.444611 0.659668 0.676117 0.447510 0.658813 0.713165 0.450562 0.657898 0.747406 0.453674 0.656921 0.778595 0.456604 0.656036 0.806854 0.459656 0.655151 0.832397 0.462708 0.654327 0.855560 0.465698 0.653473 0.876648 0.468781 0.652618 0.895782 0.471832 0.651733 0.913208 0.474884 0.650970 0.929047 0.477966 0.650146 0.943420 0.480957 0.649384 0.956451 0.484039 0.648651 0.968170 0.487091 0.647858 0.978638 0.490112 0.647217 0.074646 0.444031 0.672882 0.098541 0.446777 0.671997 0.123657 0.449554 0.671051 0.150055 0.452332 0.670105 0.177887 0.455231 0.669159 0.207367 0.458099 0.668182 0.238647 0.461029 0.667267 0.271942 0.463959 0.666351 0.307465 0.466919 0.665375 0.345062 0.469849 0.664429 0.384613 0.472870 0.663452 0.425964 0.475891 0.662537 0.468597 0.478882 0.661591 0.512482 0.481934 0.660675 0.556915 0.484924 0.659729 0.600220 0.488037 0.658813 0.641754 0.491150 0.657898 0.680969 0.494232 0.656982 0.717682 0.497314 0.656128 0.751526 0.500427 0.655212 0.782288 0.503479 0.654358 0.810181 0.506622 0.653473 0.835449 0.509766 0.652618 0.858337 0.512787 0.651794 0.879150 0.515961 0.650970 0.898071 0.519043 0.650208 0.915283 0.522186 0.649445 0.930939 0.525330 0.648651 0.945099 0.528381 0.647888 0.957947 0.531525 0.647217 0.969513 0.534637 0.646667 0.979858 0.537598 0.646667 0.077393 0.490051 0.671082 0.101501 0.492950 0.670105 0.126831 0.495941 0.669159 0.153351 0.498779 0.668274 0.181427 0.501831 0.667297 0.211121 0.504852 0.666351 0.242645 0.507782 0.665405 0.276215 0.510895 0.664459 0.312042 0.513916 0.663452 0.349915 0.516968 0.662567 0.389709 0.520050 0.661621 0.431152 0.523071 0.660736 0.474091 0.526215 0.659760 0.518066 0.529419 0.658844 0.562439 0.532471 0.657928 0.605591 0.535583 0.657043 0.646881 0.538757 0.656128 0.685730 0.541840 0.655243 0.722107 0.545013 0.654358 0.755554 0.548157 0.653503 0.785980 0.551239 0.652649 0.813538 0.554352 0.651794 0.838440 0.557465 0.651001 0.861084 0.560455 0.650238 0.881653 0.563599 0.649445 0.900299 0.566650 0.648682 0.917358 0.569672 0.647888 0.932770 0.572723 0.647217 0.946747 0.575684 0.646667 0.959442 0.578705 0.646667 0.970856 0.581696 0.646667 0.980988 0.584595 0.646667 0.080292 0.537415 0.669189 0.104523 0.540375 0.668304 0.129974 0.543365 0.667328 0.156708 0.546356 0.666382 0.184998 0.549377 0.665405 0.214935 0.552429 0.664490 0.246704 0.555450 0.663513 0.280548 0.558472 0.662598 0.316650 0.561554 0.661621 0.354797 0.564575 0.660736 0.394867 0.567596 0.659760 0.436584 0.570709 0.658844 0.479553 0.573700 0.657959 0.523743 0.576813 0.657043 0.567993 0.579803 0.656158 0.610901 0.582855 0.655243 0.651947 0.585907 0.654419 0.690491 0.588867 0.653534 0.726471 0.591919 0.652710 0.759613 0.594910 0.651825 0.789612 0.597931 0.651031 0.816833 0.600922 0.650238 0.841461 0.603912 0.649445 0.863770 0.606812 0.648712 0.884094 0.609741 0.647980 0.902496 0.612610 0.647247 0.919281 0.615540 0.646667 0.934570 0.618408 0.646667 0.948364 0.621246 0.646667 0.960907 0.624115 0.646667 0.972168 0.626953 0.646667 0.982147 0.629669 0.646667 0.083160 0.584198 0.667389 0.107544 0.587158 0.666412 0.133209 0.590118 0.665436 0.160126 0.592957 0.664520 0.188629 0.595917 0.663544 0.218811 0.598938 0.662598 0.250824 0.601807 0.661682 0.285004 0.604767 0.660767 0.321381 0.607727 0.659821 0.359772 0.610657 0.658905 0.400085 0.613617 0.657959 0.441895 0.616516 0.657074 0.485107 0.619476 0.656189 0.529419 0.622406 0.655304 0.573547 0.625244 0.654480 0.616241 0.628204 0.653534 0.656921 0.631134 0.652710 0.695221 0.633911 0.651917 0.730804 0.636841 0.651031 0.763550 0.639679 0.650238 0.793182 0.642487 0.649475 0.820007 0.645294 0.648712 0.844299 0.648041 0.648010 0.866364 0.650879 0.647278 0.886444 0.653656 0.646667 0.904663 0.656342 0.646667 0.921265 0.659058 0.646667 0.936310 0.661774 0.646667 0.949951 0.664429 0.646667 0.962311 0.667053 0.646667 0.973419 0.669708 0.646667 0.983276 0.672211 0.646667 0.086090 0.629303 0.665527 0.110687 0.632111 0.664520 0.136505 0.634979 0.663544 0.163635 0.637726 0.662659 0.192322 0.640564 0.661713 0.222748 0.643402 0.660767 0.255005 0.646149 0.659851 0.289459 0.648987 0.658966 0.326141 0.651794 0.657990 0.364716 0.654572 0.657104 0.405273 0.657349 0.656219 0.447296 0.660095 0.655334 0.490692 0.662872 0.654480 0.535065 0.665649 0.653625 0.579010 0.668335 0.652740 0.621460 0.671082 0.651917 0.661896 0.673828 0.651123 0.699860 0.676422 0.650299 0.735107 0.679169 0.649536 0.767395 0.681854 0.648712 0.796661 0.684448 0.648010 0.823181 0.687073 0.647278 0.847168 0.689606 0.646667 0.868958 0.692230 0.646667 0.888794 0.694794 0.646667 0.906769 0.697296 0.646667 0.923157 0.699829 0.646667 0.938049 0.702301 0.646667 0.951508 0.704712 0.646667 0.963715 0.707153 0.646667 0.974609 0.709534 0.646667 0.984344 0.711853 0.646667 0.089050 0.671997 0.663635 0.113831 0.674713 0.662689 0.139801 0.677338 0.661713 0.167114 0.679932 0.660858 0.196014 0.682617 0.659851 0.226685 0.685303 0.658966 0.259216 0.687897 0.658081 0.293976 0.690552 0.657104 0.330841 0.693085 0.656219 0.369781 0.695740 0.655334 0.410492 0.698334 0.654510 0.452698 0.700897 0.653656 0.496277 0.703461 0.652740 0.540680 0.706085 0.651947 0.584473 0.708557 0.651154 0.626678 0.711090 0.650330 0.666779 0.713623 0.649536 0.704437 0.716034 0.648773 0.739288 0.718567 0.648041 0.771210 0.721008 0.647339 0.800079 0.723358 0.646667 0.826233 0.725800 0.646667 0.849915 0.728119 0.646667 0.871490 0.730499 0.646667 0.891052 0.732819 0.646667 0.908813 0.735107 0.646667 0.925018 0.737366 0.646667 0.939697 0.739624 0.646667 0.953033 0.741821 0.646667 0.965027 0.743988 0.646667 0.975800 0.746124 0.646667 0.985382 0.748260 0.646667 0.092133 0.711853 0.661774 0.117035 0.714355 0.660858 0.143158 0.716858 0.659882 0.170685 0.719269 0.658997 0.199799 0.721741 0.658081 0.230713 0.724182 0.657166 0.263489 0.726624 0.656281 0.298523 0.729034 0.655396 0.335693 0.731415 0.654572 0.374817 0.733856 0.653656 0.415771 0.736237 0.652802 0.458099 0.738556 0.651978 0.501831 0.740967 0.651154 0.546234 0.743286 0.650330 0.589844 0.745544 0.649567 0.631775 0.747894 0.648804 0.671661 0.750153 0.648041 0.708923 0.752350 0.647339 0.743408 0.754578 0.646667 0.774902 0.756805 0.646667 0.803406 0.759003 0.646667 0.829254 0.761139 0.646667 0.852661 0.763214 0.646667 0.873932 0.765350 0.646667 0.893280 0.767487 0.646667 0.910828 0.769470 0.646667 0.926788 0.771515 0.646667 0.941315 0.773560 0.646667 0.954468 0.775482 0.646667 0.966339 0.777374 0.646667 0.976929 0.779266 0.646667 0.986389 0.781189 0.646667 0.095215 0.748505 0.659912 0.120239 0.750824 0.659027 0.146576 0.753113 0.658112 0.174255 0.755310 0.657196 0.203613 0.757568 0.656281 0.234650 0.759766 0.655426 0.267822 0.761993 0.654572 0.303162 0.764191 0.653687 0.340546 0.766357 0.652832 0.379883 0.768555 0.651978 0.421051 0.770691 0.651184 0.463593 0.772797 0.650391 0.507385 0.774933 0.649597 0.551849 0.777039 0.648804 0.595184 0.779053 0.648132 0.636902 0.781158 0.647369 0.676392 0.783203 0.646667 0.713287 0.785187 0.646667 0.747437 0.787170 0.646667 0.778503 0.789124 0.646667 0.806671 0.791046 0.646667 0.832214 0.793030 0.646667 0.855286 0.794861 0.646667 0.876312 0.796753 0.646667 0.895447 0.798584 0.646667 0.912750 0.800385 0.646667 0.928558 0.802216 0.646667 0.942902 0.803986 0.646667 0.955872 0.805664 0.646667 0.967590 0.807404 0.646667 0.978058 0.809082 0.646667 0.987335 0.810730 0.646667 0.098328 0.781799 0.658142 0.123535 0.783875 0.657196 0.150024 0.785919 0.656311 0.177887 0.787933 0.655426 0.207428 0.789948 0.654572 0.238800 0.791901 0.653717 0.272186 0.793945 0.652832 0.307770 0.795929 0.652069 0.345398 0.797791 0.651215 0.384979 0.799774 0.650421 0.426331 0.801727 0.649597 0.469025 0.803589 0.648834 0.512909 0.805481 0.648132 0.557281 0.807373 0.647369 0.600433 0.809174 0.646698 0.641907 0.811066 0.646667 0.681030 0.812836 0.646667 0.717621 0.814667 0.646667 0.751373 0.816406 0.646667 0.782074 0.818146 0.646667 0.809845 0.819885 0.646667 0.835052 0.821625 0.646667 0.857880 0.823273 0.646667 0.878632 0.824921 0.646667 0.897522 0.826538 0.646667 0.914673 0.828156 0.646667 0.930267 0.829742 0.646667 0.944397 0.831268 0.646667 0.957245 0.832825 0.646667 0.968781 0.834351 0.646667 0.979095 0.835815 0.646667 0.988251 0.837280 0.646667 0.101440 0.811676 0.656342 0.126831 0.813538 0.655457 0.153412 0.815369 0.654633 0.181549 0.817200 0.653717 0.211304 0.819031 0.652893 0.242889 0.820770 0.652100 0.276550 0.822571 0.651215 0.312408 0.824371 0.650421 0.350281 0.826080 0.649689 0.390076 0.827820 0.648834 0.431580 0.829559 0.648163 0.474396 0.831238 0.647400 0.518372 0.832977 0.646698 0.562592 0.834595 0.646667 0.605621 0.836273 0.646667 0.646790 0.837921 0.646667 0.685577 0.839508 0.646667 0.721802 0.841095 0.646667 0.755188 0.842682 0.646667 0.785492 0.844238 0.646667 0.812988 0.845764 0.646667 0.837860 0.847290 0.646667 0.860413 0.848785 0.646667 0.880890 0.850281 0.646667 0.899567 0.851715 0.646667 0.916504 0.853149 0.646667 0.931915 0.854553 0.646667 0.945892 0.855896 0.646667 0.958527 0.857269 0.646667 0.969971 0.858612 0.646667 0.980133 0.859894 0.646667 0.989136 0.861206 0.646667 0.104584 0.838562 0.654633 0.130096 0.840240 0.653717 0.156891 0.841858 0.652924 0.185181 0.843506 0.652100 0.215179 0.845154 0.651215 0.246979 0.846771 0.650482 0.280914 0.848358 0.649689 0.317017 0.849945 0.648895 0.355164 0.851501 0.648193 0.395172 0.853088 0.647400 0.436829 0.854645 0.646698 0.479767 0.856171 0.646667 0.523834 0.857666 0.646667 0.567963 0.859131 0.646667 0.610718 0.860596 0.646667 0.651550 0.862061 0.646667 0.690094 0.863495 0.646667 0.725952 0.864929 0.646667 0.758942 0.866364 0.646667 0.788879 0.867737 0.646667 0.815979 0.869080 0.646667 0.840576 0.870453 0.646667 0.862823 0.871735 0.646667 0.883087 0.873077 0.646667 0.901489 0.874329 0.646667 0.918243 0.875610 0.646667 0.933502 0.876862 0.646667 0.947327 0.878052 0.646667 0.959808 0.879272 0.646667 0.971069 0.880463 0.646667 0.981079 0.881622 0.646667 0.989960 0.882751 0.646667 0.107727 0.862793 0.652924 0.133423 0.864288 0.652100 0.160370 0.865723 0.651276 0.188904 0.867218 0.650482 0.219086 0.868744 0.649719 0.251129 0.870148 0.648956 0.285339 0.871582 0.648193 0.321686 0.873047 0.647430 0.359985 0.874420 0.646729 0.400208 0.875824 0.646667 0.441956 0.877197 0.646667 0.485046 0.878571 0.646667 0.529175 0.879944 0.646667 0.573181 0.881226 0.646667 0.615723 0.882568 0.646667 0.656281 0.883881 0.646667 0.694427 0.885132 0.646667 0.729950 0.886414 0.646667 0.762573 0.887695 0.646667 0.792114 0.888885 0.646667 0.818909 0.890137 0.646667 0.843170 0.891296 0.646667 0.865173 0.892487 0.646667 0.885193 0.893646 0.646667 0.903381 0.894745 0.646667 0.919952 0.895905 0.646667 0.934998 0.897003 0.646667 0.948669 0.898071 0.646667 0.961029 0.899139 0.646667 0.972137 0.900177 0.646667 0.982025 0.901184 0.646667 0.990784 0.902191 0.646667 0.110901 0.884583 0.651306 0.136719 0.885956 0.650513 0.163879 0.887268 0.649719 0.192566 0.888641 0.648956 0.222961 0.889984 0.648193 0.255219 0.891235 0.647522 0.289673 0.892578 0.646729 0.326233 0.893829 0.646667 0.364807 0.895050 0.646667 0.405182 0.896332 0.646667 0.447113 0.897552 0.646667 0.490356 0.898804 0.646667 0.534607 0.900024 0.646667 0.578308 0.901184 0.646667 0.620605 0.902374 0.646667 0.660919 0.903534 0.646667 0.698700 0.904663 0.646667 0.733856 0.905792 0.646667 0.766113 0.906921 0.646667 0.795258 0.907990 0.646667 0.821716 0.909088 0.646667 0.845642 0.910126 0.646667 0.867432 0.911163 0.646667 0.887207 0.912201 0.646667 0.905212 0.913177 0.646667 0.921600 0.914185 0.646667 0.936493 0.915161 0.646667 0.949951 0.916107 0.646667 0.962189 0.917084 0.646667 0.973175 0.917969 0.646667 0.982941 0.918823 0.646667 0.991547 0.919708 0.646667 0.114075 0.904358 0.649750 0.140015 0.905548 0.648987 0.167358 0.906769 0.648254 0.196259 0.907959 0.647522 0.226868 0.909180 0.646790 0.259369 0.910278 0.646667 0.294067 0.911469 0.646667 0.330780 0.912567 0.646667 0.369629 0.913727 0.646667 0.410187 0.914886 0.646667 0.452271 0.915985 0.646667 0.495605 0.917084 0.646667 0.539795 0.918121 0.646667 0.583344 0.919159 0.646667 0.625397 0.920227 0.646667 0.665375 0.921265 0.646667 0.702850 0.922272 0.646667 0.737579 0.923279 0.646667 0.769470 0.924255 0.646667 0.798279 0.925232 0.646667 0.824402 0.926178 0.646667 0.848114 0.927124 0.646667 0.869629 0.928040 0.646667 0.889191 0.928955 0.646667 0.906982 0.929840 0.646667 0.923157 0.930695 0.646667 0.937897 0.931549 0.646667 0.951233 0.932373 0.646667 0.963287 0.933197 0.646667 0.974121 0.934021 0.646667 0.983765 0.934784 0.646667 0.992310 0.935577 0.646667 0.117218 0.922150 0.648254 0.143341 0.923248 0.647522 0.170837 0.924316 0.646820 0.199921 0.925385 0.646667 0.230743 0.926422 0.646667 0.263489 0.927490 0.646667 0.298401 0.928528 0.646667 0.335388 0.929565 0.646667 0.374390 0.930542 0.646667 0.415161 0.931549 0.646667 0.457275 0.932556 0.646667 0.500671 0.933502 0.646667 0.544922 0.934479 0.646667 0.588318 0.935425 0.646667 0.630035 0.936310 0.646667 0.669708 0.937286 0.646667 0.706879 0.938141 0.646667 0.741272 0.939056 0.646667 0.772705 0.939880 0.646667 0.801239 0.940765 0.646667 0.827057 0.941620 0.646667 0.850433 0.942413 0.646667 0.871735 0.943237 0.646667 0.891083 0.944031 0.646667 0.908630 0.944794 0.646667 0.924652 0.945557 0.646667 0.939240 0.946350 0.646667 0.952423 0.947052 0.646667 0.964325 0.947754 0.646667 0.975037 0.948425 0.646667 0.984558 0.949158 0.646667 0.992950 0.949799 0.646667 0.120392 0.938171 0.646820 0.146698 0.939178 0.646667 0.174316 0.940125 0.646667 0.203613 0.941101 0.646667 0.234558 0.942047 0.646667 0.267609 0.942993 0.646667 0.302734 0.943909 0.646667 0.339966 0.944794 0.646667 0.379120 0.945709 0.646667 0.420013 0.946594 0.646667 0.462280 0.947449 0.646667 0.505737 0.948303 0.646667 0.549866 0.949188 0.646667 0.593079 0.949982 0.646667 0.634613 0.950806 0.646667 0.673859 0.951630 0.646667 0.710754 0.952423 0.646667 0.744781 0.953186 0.646667 0.775848 0.953918 0.646667 0.804047 0.954712 0.646667 0.829559 0.955444 0.646667 0.852692 0.956177 0.646667 0.873718 0.956879 0.646667 0.892883 0.957581 0.646667 0.910248 0.958221 0.646667 0.926086 0.958923 0.646667 0.940491 0.959564 0.646667 0.953552 0.960205 0.646667 0.965332 0.960815 0.646667 0.975922 0.961395 0.646667 0.985321 0.961975 0.646667 0.993591 0.962585 0.646667 0.123566 0.952606 0.646667 0.149994 0.953491 0.646667 0.177795 0.954376 0.646667 0.207245 0.955200 0.646667 0.238403 0.956024 0.646667 0.271637 0.956848 0.646667 0.307037 0.957703 0.646667 0.344421 0.958466 0.646667 0.383789 0.959259 0.646667 0.424774 0.960052 0.646667 0.467163 0.960846 0.646667 0.510742 0.961609 0.646667 0.554810 0.962341 0.646667 0.597778 0.963074 0.646667 0.639008 0.963806 0.646667 0.677979 0.964508 0.646667 0.714447 0.965179 0.646667 0.748169 0.965881 0.646667 0.778900 0.966522 0.646667 0.806763 0.967194 0.646667 0.831940 0.967804 0.646667 0.854828 0.968475 0.646667 0.875641 0.969055 0.646667 0.894592 0.969666 0.646667 0.911743 0.970245 0.646667 0.927460 0.970825 0.646667 0.941711 0.971375 0.646667 0.954590 0.971924 0.646667 0.966278 0.972443 0.646667 0.976715 0.972992 0.646667 0.985992 0.973480 0.646667 0.994202 0.973969 0.646667 0.126709 0.965546 0.646667 0.153259 0.966339 0.646667 0.181244 0.967072 0.646667 0.210876 0.967804 0.646667 0.242218 0.968536 0.646667 0.275665 0.969299 0.646667 0.311310 0.970032 0.646667 0.348877 0.970703 0.646667 0.388367 0.971375 0.646667 0.429504 0.972107 0.646667 0.471924 0.972778 0.646667 0.515533 0.973450 0.646667 0.559479 0.974060 0.646667 0.602234 0.974701 0.646667 0.643219 0.975342 0.646667 0.681915 0.975952 0.646667 0.718109 0.976532 0.646667 0.751404 0.977142 0.646667 0.781799 0.977692 0.646667 0.809296 0.978302 0.646667 0.834259 0.978821 0.646667 0.856873 0.979370 0.646667 0.877441 0.979889 0.646667 0.896179 0.980408 0.646667 0.913208 0.980896 0.646667 0.928741 0.981384 0.646667 0.942810 0.981873 0.646667 0.955597 0.982330 0.646667 0.967163 0.982758 0.646667 0.977478 0.983185 0.646667 0.986694 0.983612 0.646667 0.994720 0.984009 0.646667 0.043854 0.005157 0.726715 0.065857 0.005981 0.726257 0.088867 0.006836 0.725800 0.112946 0.007721 0.725311 0.138245 0.008606 0.724792 0.164886 0.009552 0.724243 0.192963 0.010498 0.723694 0.222809 0.011505 0.723114 0.254486 0.012543 0.722534 0.288208 0.013519 0.721924 0.324097 0.014618 0.721222 0.362030 0.015686 0.720551 0.401733 0.016785 0.719879 0.443024 0.017914 0.719208 0.485718 0.019073 0.718475 0.529358 0.020264 0.717773 0.573059 0.021454 0.717010 0.615204 0.022644 0.716248 0.655487 0.023895 0.715454 0.693604 0.025146 0.714691 0.728973 0.026428 0.713898 0.761597 0.027771 0.713043 0.791229 0.029053 0.712250 0.818085 0.030365 0.711395 0.842468 0.031738 0.710602 0.864594 0.033142 0.709717 0.884735 0.034485 0.708893 0.903107 0.035919 0.707977 0.919739 0.037323 0.707153 0.934937 0.038757 0.706268 0.948730 0.040222 0.705322 0.961182 0.041656 0.704498 0.045502 0.026550 0.725800 0.067596 0.027435 0.725342 0.090759 0.028381 0.724792 0.114990 0.029358 0.724243 0.140442 0.030334 0.723694 0.167236 0.031372 0.723114 0.195526 0.032410 0.722534 0.225616 0.033478 0.721924 0.257507 0.034607 0.721252 0.291504 0.035706 0.720612 0.327667 0.036865 0.719910 0.365845 0.038055 0.719238 0.405731 0.039215 0.718506 0.447296 0.040466 0.717773 0.490143 0.041718 0.717041 0.533936 0.042938 0.716278 0.577606 0.044250 0.715485 0.619659 0.045532 0.714691 0.659821 0.046875 0.713898 0.697632 0.048248 0.713074 0.732758 0.049591 0.712311 0.765076 0.050995 0.711426 0.794434 0.052429 0.710602 0.820984 0.053802 0.709778 0.845154 0.055237 0.708893 0.867065 0.056732 0.707977 0.886993 0.058197 0.707153 0.905151 0.059662 0.706299 0.921661 0.061127 0.705383 0.936707 0.062714 0.704498 0.950317 0.064270 0.703613 0.962616 0.065765 0.702698 0.047211 0.048920 0.724854 0.069427 0.049927 0.724274 0.092743 0.050934 0.723755 0.117096 0.052002 0.723145 0.142731 0.053101 0.722565 0.169739 0.054199 0.721954 0.198212 0.055359 0.721283 0.228516 0.056519 0.720642 0.260681 0.057709 0.719910 0.294952 0.058929 0.719269 0.331421 0.060181 0.718567 0.369843 0.061462 0.717804 0.410004 0.062744 0.717041 0.451721 0.064026 0.716278 0.494720 0.065369 0.715546 0.538635 0.066742 0.714752 0.582275 0.068115 0.713959 0.624176 0.069489 0.713135 0.664154 0.070923 0.712311 0.701721 0.072388 0.711426 0.736572 0.073853 0.710663 0.768616 0.075348 0.709778 0.797668 0.076843 0.708923 0.823944 0.078339 0.708038 0.847839 0.079895 0.707184 0.869507 0.081421 0.706329 0.889252 0.083008 0.705414 0.907227 0.084625 0.704529 0.923553 0.086182 0.703674 0.938416 0.087860 0.702759 0.951904 0.089478 0.701874 0.964081 0.091095 0.700989 0.049072 0.072357 0.723755 0.071442 0.073486 0.723145 0.094849 0.074615 0.722565 0.119385 0.075745 0.721985 0.145172 0.076965 0.721283 0.172363 0.078156 0.720642 0.201080 0.079376 0.719971 0.231567 0.080688 0.719269 0.263977 0.082001 0.718567 0.298523 0.083282 0.717834 0.335266 0.084656 0.717072 0.373932 0.086029 0.716339 0.414337 0.087402 0.715546 0.456299 0.088837 0.714752 0.499481 0.090271 0.713989 0.543518 0.091736 0.713135 0.587036 0.093231 0.712372 0.628784 0.094696 0.711456 0.668549 0.096222 0.710663 0.705872 0.097778 0.709808 0.740448 0.099335 0.708984 0.772156 0.100922 0.708038 0.800934 0.102539 0.707214 0.826904 0.104126 0.706329 0.850555 0.105804 0.705414 0.871979 0.107422 0.704590 0.891541 0.109131 0.703674 0.909332 0.110840 0.702759 0.925446 0.112518 0.701904 0.940155 0.114288 0.701019 0.953491 0.115997 0.700104 0.965515 0.117706 0.699219 0.050964 0.097015 0.722595 0.073517 0.098267 0.721985 0.097046 0.099487 0.721283 0.121735 0.100739 0.720673 0.147736 0.102051 0.720001 0.175110 0.103394 0.719299 0.204010 0.104706 0.718597 0.234772 0.106079 0.717834 0.267487 0.107513 0.717102 0.302277 0.108948 0.716370 0.339233 0.110382 0.715576 0.378174 0.111847 0.714783 0.418823 0.113373 0.713989 0.461029 0.114899 0.713165 0.504364 0.116425 0.712372 0.548492 0.118011 0.711548 0.591858 0.119598 0.710693 0.633453 0.121216 0.709839 0.673004 0.122864 0.708984 0.710083 0.124573 0.708099 0.744385 0.126160 0.707275 0.775726 0.127930 0.706390 0.804169 0.129639 0.705475 0.829895 0.131348 0.704620 0.853271 0.133087 0.703705 0.874481 0.134857 0.702820 0.893799 0.136658 0.701904 0.911377 0.138489 0.701019 0.927368 0.140289 0.700165 0.941895 0.142151 0.699219 0.955078 0.144012 0.698364 0.966919 0.145813 0.697540 0.053009 0.122986 0.721313 0.075684 0.124359 0.720673 0.099365 0.125732 0.720001 0.124268 0.127106 0.719360 0.150360 0.128510 0.718597 0.177948 0.129974 0.717865 0.207092 0.131409 0.717102 0.238068 0.132904 0.716370 0.271057 0.134430 0.715576 0.306152 0.135956 0.714813 0.343414 0.137543 0.714020 0.382538 0.139130 0.713196 0.423431 0.140778 0.712402 0.465790 0.142456 0.711548 0.509338 0.144104 0.710754 0.553528 0.145782 0.709839 0.596802 0.147552 0.709015 0.638184 0.149231 0.708160 0.677521 0.151031 0.707275 0.714294 0.152802 0.706390 0.748260 0.154572 0.705505 0.779297 0.156403 0.704620 0.807373 0.158264 0.703766 0.832855 0.160126 0.702850 0.855988 0.162018 0.701935 0.876953 0.163879 0.701050 0.896057 0.165833 0.700195 0.913422 0.167755 0.699249 0.929230 0.169678 0.698395 0.943604 0.171631 0.697540 0.956604 0.173615 0.696625 0.968323 0.175568 0.695770 0.055176 0.150482 0.720032 0.077942 0.151947 0.719360 0.101807 0.153442 0.718628 0.126831 0.154938 0.717926 0.153137 0.156464 0.717133 0.180939 0.158081 0.716400 0.210297 0.159637 0.715607 0.241516 0.161316 0.714844 0.274689 0.162933 0.714050 0.310181 0.164612 0.713196 0.347656 0.166351 0.712433 0.387054 0.168060 0.711578 0.428192 0.169830 0.710754 0.470795 0.171600 0.709869 0.514465 0.173401 0.709045 0.558655 0.175262 0.708160 0.601776 0.177124 0.707306 0.643005 0.178955 0.706451 0.682068 0.180847 0.705566 0.718567 0.182800 0.704681 0.752197 0.184692 0.703766 0.782898 0.186707 0.702850 0.810638 0.188629 0.701965 0.835846 0.190643 0.701080 0.858673 0.192657 0.700195 0.879456 0.194672 0.699310 0.898315 0.196747 0.698395 0.915527 0.198853 0.697571 0.931122 0.200897 0.696716 0.945312 0.203003 0.695801 0.958130 0.205139 0.694946 0.969696 0.207184 0.694061 0.057373 0.179626 0.718658 0.080322 0.181244 0.717926 0.104340 0.182861 0.717133 0.129486 0.184509 0.716431 0.156006 0.186188 0.715637 0.183990 0.187958 0.714844 0.213593 0.189667 0.714050 0.245056 0.191437 0.713226 0.278534 0.193176 0.712463 0.314270 0.195038 0.711609 0.352081 0.196899 0.710785 0.391693 0.198792 0.709930 0.433075 0.200684 0.709076 0.475861 0.202637 0.708191 0.519653 0.204559 0.707336 0.563904 0.206573 0.706451 0.606812 0.208557 0.705566 0.647797 0.210571 0.704712 0.686646 0.212616 0.703796 0.722748 0.214691 0.702942 0.756104 0.216736 0.702057 0.786469 0.218933 0.701141 0.813904 0.220978 0.700226 0.838776 0.223145 0.699371 0.861389 0.225342 0.698425 0.881897 0.227478 0.697601 0.900604 0.229736 0.696716 0.917572 0.231964 0.695801 0.932983 0.234161 0.694977 0.947021 0.236420 0.694092 0.959686 0.238647 0.693268 0.971100 0.240936 0.692383 0.059662 0.210663 0.717194 0.082764 0.212402 0.716431 0.106903 0.214233 0.715637 0.132263 0.216003 0.714905 0.158966 0.217804 0.714142 0.187103 0.219696 0.713287 0.217010 0.221588 0.712463 0.248688 0.223541 0.711609 0.282501 0.225464 0.710815 0.318542 0.227448 0.709930 0.356567 0.229492 0.709076 0.396484 0.231476 0.708221 0.438080 0.233643 0.707336 0.480988 0.235687 0.706482 0.524963 0.237793 0.705597 0.569153 0.239960 0.704712 0.611908 0.242157 0.703796 0.652710 0.244354 0.702942 0.691223 0.246521 0.702057 0.727081 0.248779 0.701172 0.760040 0.251007 0.700256 0.790039 0.253326 0.699371 0.817108 0.255554 0.698486 0.841736 0.257904 0.697601 0.864075 0.260284 0.696747 0.884369 0.262604 0.695862 0.902832 0.264923 0.694977 0.919586 0.267365 0.694092 0.934845 0.269745 0.693268 0.948700 0.272186 0.692444 0.961182 0.274567 0.691589 0.972412 0.276978 0.690735 0.062073 0.243774 0.715729 0.085297 0.245697 0.714905 0.109619 0.247650 0.714142 0.135101 0.249664 0.713287 0.162018 0.251617 0.712524 0.190399 0.253662 0.711639 0.220490 0.255768 0.710815 0.252502 0.257904 0.709961 0.286560 0.259979 0.709106 0.322845 0.262177 0.708221 0.361206 0.264404 0.707367 0.401306 0.266602 0.706543 0.443115 0.268860 0.705627 0.486237 0.271149 0.704773 0.530334 0.273438 0.703827 0.574402 0.275726 0.702972 0.616974 0.278076 0.702087 0.657593 0.280426 0.701172 0.695801 0.282867 0.700256 0.731293 0.285278 0.699402 0.763947 0.287720 0.698517 0.793579 0.290161 0.697632 0.820343 0.292633 0.696777 0.844666 0.295166 0.695923 0.866760 0.297699 0.695038 0.886810 0.300171 0.694122 0.905029 0.302734 0.693298 0.921600 0.305237 0.692474 0.936707 0.307861 0.691620 0.950348 0.310455 0.690765 0.962677 0.312988 0.690033 0.973785 0.315674 0.689148 0.064545 0.279297 0.714172 0.087921 0.281433 0.713348 0.112366 0.283508 0.712555 0.138092 0.285675 0.711700 0.165192 0.287933 0.710846 0.193756 0.290100 0.709991 0.224091 0.292419 0.709167 0.256348 0.294739 0.708252 0.290710 0.297028 0.707397 0.327271 0.299377 0.706543 0.365875 0.301819 0.705627 0.406250 0.304138 0.704803 0.448273 0.306641 0.703888 0.491547 0.309052 0.703003 0.535797 0.311584 0.702118 0.579803 0.314087 0.701233 0.622131 0.316589 0.700317 0.662506 0.319153 0.699432 0.700378 0.321747 0.698517 0.735565 0.324310 0.697693 0.767792 0.326965 0.696777 0.797119 0.329620 0.695923 0.823547 0.332214 0.695068 0.847595 0.334900 0.694183 0.869385 0.337585 0.693298 0.889191 0.340240 0.692474 0.907227 0.342987 0.691620 0.923584 0.345642 0.690857 0.938477 0.348389 0.690033 0.951996 0.351196 0.689209 0.964172 0.353882 0.688416 0.975067 0.356628 0.687653 0.067108 0.317352 0.712555 0.090607 0.319641 0.711700 0.115234 0.321930 0.710907 0.141113 0.324310 0.710022 0.168427 0.326752 0.709167 0.197205 0.329102 0.708313 0.227753 0.331573 0.707428 0.260315 0.334076 0.706573 0.294983 0.336578 0.705658 0.331818 0.339142 0.704834 0.370697 0.341736 0.703949 0.411285 0.344269 0.703003 0.453491 0.346924 0.702118 0.496887 0.349457 0.701263 0.541290 0.352142 0.700348 0.585114 0.354889 0.699432 0.627289 0.357513 0.698578 0.667328 0.360321 0.697693 0.704987 0.363037 0.696808 0.739807 0.365784 0.695953 0.771698 0.368561 0.695068 0.800598 0.371338 0.694183 0.826721 0.374115 0.693359 0.850464 0.376953 0.692535 0.871979 0.379761 0.691681 0.891571 0.382599 0.690857 0.909393 0.385468 0.690033 0.925537 0.388306 0.689240 0.940247 0.391144 0.688446 0.953613 0.394073 0.687653 0.965576 0.396881 0.686920 0.976379 0.399780 0.686157 0.069702 0.357788 0.710907 0.093384 0.360321 0.710022 0.118164 0.362762 0.709229 0.144226 0.365295 0.708374 0.171722 0.367920 0.707428 0.200745 0.370453 0.706604 0.231567 0.373108 0.705719 0.264404 0.375793 0.704834 0.299347 0.378418 0.703979 0.336456 0.381104 0.703033 0.375519 0.383850 0.702148 0.416443 0.386597 0.701324 0.458832 0.389404 0.700378 0.502441 0.392151 0.699493 0.546875 0.395020 0.698608 0.590485 0.397858 0.697723 0.632416 0.400665 0.696869 0.672211 0.403595 0.695984 0.709503 0.406433 0.695099 0.743958 0.409302 0.694214 0.775513 0.412231 0.693390 0.804047 0.415222 0.692535 0.829865 0.418060 0.691711 0.853333 0.421051 0.690887 0.874542 0.423981 0.690094 0.893921 0.426941 0.689240 0.911499 0.429932 0.688446 0.927490 0.432892 0.687683 0.942017 0.435852 0.686920 0.955200 0.438843 0.686157 0.967010 0.441772 0.685486 0.977661 0.444824 0.684784 0.072357 0.400452 0.709259 0.096222 0.403107 0.708374 0.121124 0.405701 0.707489 0.147400 0.408447 0.706604 0.175140 0.411224 0.705750 0.204346 0.413879 0.704865 0.235443 0.416748 0.703979 0.268524 0.419556 0.703033 0.303741 0.422333 0.702179 0.341187 0.425171 0.701324 0.380493 0.428009 0.700439 0.421600 0.430969 0.699524 0.464203 0.433929 0.698608 0.507935 0.436768 0.697784 0.552429 0.439789 0.696899 0.595856 0.442749 0.695984 0.637573 0.445648 0.695129 0.677032 0.448700 0.694244 0.714020 0.451721 0.693390 0.748138 0.454712 0.692566 0.779266 0.457764 0.691711 0.807404 0.460724 0.690918 0.832977 0.463837 0.690094 0.856140 0.466888 0.689270 0.877136 0.469849 0.688507 0.896240 0.472900 0.687714 0.913574 0.476044 0.686920 0.929413 0.479034 0.686188 0.943756 0.482117 0.685516 0.956726 0.485138 0.684784 0.968414 0.488190 0.684113 0.978882 0.491302 0.683441 0.075104 0.445007 0.707520 0.099121 0.447815 0.706635 0.124268 0.450562 0.705780 0.150696 0.453461 0.704895 0.178558 0.456390 0.704010 0.208069 0.459167 0.703125 0.239410 0.462128 0.702179 0.272766 0.465057 0.701355 0.308258 0.467987 0.700439 0.345978 0.470978 0.699524 0.385529 0.473938 0.698669 0.426849 0.476990 0.697815 0.469666 0.480042 0.696899 0.513519 0.483032 0.696045 0.557953 0.486115 0.695129 0.601257 0.489227 0.694305 0.642670 0.492218 0.693420 0.681915 0.495331 0.692596 0.718506 0.498474 0.691742 0.752258 0.501495 0.690918 0.782990 0.504669 0.690094 0.810760 0.507721 0.689331 0.835999 0.510895 0.688538 0.858856 0.513947 0.687714 0.879608 0.517120 0.686981 0.898499 0.520172 0.686188 0.915680 0.523346 0.685516 0.931244 0.526367 0.684814 0.945435 0.529572 0.684113 0.958221 0.532654 0.683441 0.969757 0.535706 0.683167 0.980042 0.538757 0.683167 0.077942 0.491150 0.705780 0.102081 0.494080 0.704895 0.127350 0.496979 0.704041 0.153992 0.499939 0.703156 0.182098 0.502930 0.702209 0.211792 0.505890 0.701385 0.243408 0.508911 0.700500 0.276978 0.511932 0.699585 0.312866 0.515015 0.698700 0.350830 0.518066 0.697815 0.390625 0.521118 0.696930 0.432159 0.524292 0.696075 0.475128 0.527374 0.695190 0.519135 0.530487 0.694305 0.563538 0.533661 0.693451 0.606628 0.536804 0.692596 0.647766 0.539856 0.691772 0.686676 0.542999 0.690948 0.722900 0.546112 0.690125 0.756317 0.549255 0.689331 0.786652 0.552429 0.688538 0.814148 0.555450 0.687744 0.838989 0.558533 0.687012 0.861603 0.561676 0.686249 0.882080 0.564667 0.685547 0.900726 0.567749 0.684814 0.917725 0.570831 0.684143 0.933075 0.573822 0.683472 0.947052 0.576813 0.683167 0.959717 0.579803 0.683167 0.971069 0.582733 0.683167 0.981232 0.585693 0.683167 0.080811 0.538452 0.704102 0.105072 0.541443 0.703156 0.130554 0.544403 0.702301 0.157379 0.547455 0.701385 0.185669 0.550537 0.700500 0.215607 0.553497 0.699585 0.247437 0.556580 0.698700 0.281372 0.559540 0.697876 0.317505 0.562622 0.696991 0.355743 0.565704 0.696106 0.395782 0.568726 0.695221 0.437561 0.571777 0.694366 0.480652 0.574890 0.693451 0.524750 0.577911 0.692627 0.569031 0.580963 0.691772 0.611969 0.584015 0.690948 0.652832 0.586945 0.690186 0.691437 0.590027 0.689362 0.727356 0.593079 0.688568 0.760284 0.596008 0.687805 0.790283 0.599060 0.687012 0.817383 0.601959 0.686310 0.841949 0.604950 0.685547 0.864258 0.607880 0.684845 0.884491 0.610779 0.684143 0.902954 0.613739 0.683472 0.919647 0.616669 0.683167 0.934875 0.619476 0.683167 0.948700 0.622375 0.683167 0.961182 0.625214 0.683167 0.972351 0.627899 0.683167 0.982391 0.630737 0.683167 0.083710 0.585297 0.702332 0.108154 0.588257 0.701416 0.133789 0.591156 0.700531 0.160797 0.594086 0.699677 0.189331 0.597046 0.698730 0.219513 0.599976 0.697906 0.251587 0.602936 0.696991 0.285797 0.605804 0.696136 0.322205 0.608795 0.695221 0.360687 0.611755 0.694366 0.401031 0.614624 0.693542 0.442932 0.617615 0.692719 0.486206 0.620544 0.691833 0.530365 0.623444 0.691010 0.574585 0.626343 0.690216 0.617249 0.629303 0.689362 0.657898 0.632111 0.688599 0.696106 0.635010 0.687805 0.731598 0.637817 0.687073 0.764221 0.640686 0.686310 0.793823 0.643524 0.685577 0.820557 0.646301 0.684845 0.844849 0.649109 0.684174 0.866852 0.651917 0.683502 0.886871 0.654633 0.683167 0.905060 0.657410 0.683167 0.921631 0.660095 0.683167 0.936646 0.662720 0.683167 0.950256 0.665405 0.683167 0.962555 0.667999 0.683167 0.973633 0.670593 0.683167 0.983459 0.673218 0.683167 0.086670 0.630402 0.700562 0.111267 0.633179 0.699677 0.137085 0.635925 0.698761 0.164246 0.638824 0.697906 0.192963 0.641510 0.697052 0.223419 0.644348 0.696136 0.255829 0.647217 0.695251 0.290283 0.649963 0.694427 0.326996 0.652802 0.693573 0.365723 0.655609 0.692719 0.406189 0.658295 0.691895 0.448303 0.661133 0.691040 0.491730 0.663940 0.690216 0.536072 0.666565 0.689392 0.580109 0.669312 0.688599 0.622406 0.672028 0.687866 0.662842 0.674774 0.687103 0.700745 0.677460 0.686340 0.735840 0.680084 0.685638 0.768097 0.682800 0.684906 0.797333 0.685486 0.684174 0.823730 0.687988 0.683563 0.847717 0.690582 0.683167 0.869446 0.693176 0.683167 0.889191 0.695709 0.683167 0.907166 0.698212 0.683167 0.923492 0.700745 0.683167 0.938354 0.703156 0.683167 0.951813 0.705627 0.683167 0.963928 0.707977 0.683167 0.974854 0.710419 0.683167 0.984528 0.712738 0.683167 0.089661 0.673004 0.698853 0.114410 0.675690 0.697937 0.140411 0.678314 0.697083 0.167816 0.680939 0.696198 0.196716 0.683563 0.695282 0.227386 0.686188 0.694427 0.260040 0.688873 0.693573 0.294830 0.691467 0.692749 0.331787 0.694092 0.691895 0.370758 0.696747 0.691040 0.411438 0.699249 0.690247 0.453735 0.701874 0.689423 0.497314 0.704468 0.688599 0.541687 0.706970 0.687866 0.585510 0.709503 0.687103 0.627594 0.711945 0.686371 0.667664 0.714478 0.685638 0.705261 0.717010 0.684906 0.740051 0.719421 0.684204 0.771851 0.721863 0.683563 0.800720 0.724274 0.683167 0.826782 0.726624 0.683167 0.850464 0.729004 0.683167 0.871979 0.731384 0.683167 0.891418 0.733673 0.683167 0.909241 0.735931 0.683167 0.925354 0.738159 0.683167 0.940033 0.740417 0.683167 0.953308 0.742615 0.683167 0.965271 0.744781 0.683167 0.976044 0.746918 0.683167 0.985565 0.749054 0.683167 0.092712 0.712830 0.697083 0.117615 0.715302 0.696198 0.143799 0.717712 0.695374 0.171356 0.720215 0.694458 0.200470 0.722595 0.693604 0.231415 0.725067 0.692780 0.264343 0.727509 0.691925 0.299377 0.729919 0.691101 0.336609 0.732330 0.690247 0.375854 0.734741 0.689423 0.416748 0.737091 0.688721 0.459229 0.739441 0.687897 0.502838 0.741821 0.687164 0.547272 0.744080 0.686371 0.590912 0.746399 0.685669 0.632721 0.748657 0.684967 0.672516 0.750916 0.684204 0.709778 0.753235 0.683563 0.744141 0.755371 0.683167 0.775604 0.757629 0.683167 0.804077 0.759827 0.683167 0.829803 0.761902 0.683167 0.853180 0.764008 0.683167 0.874390 0.766144 0.683167 0.893646 0.768188 0.683167 0.911194 0.770233 0.683167 0.927155 0.772217 0.683167 0.941650 0.774200 0.683167 0.954712 0.776215 0.683167 0.966553 0.778137 0.683167 0.977142 0.779999 0.683167 0.986542 0.781891 0.683167 0.095795 0.749420 0.695374 0.120819 0.751648 0.694519 0.147156 0.753906 0.693634 0.174988 0.756195 0.692780 0.204315 0.758362 0.691956 0.235474 0.760590 0.691132 0.268677 0.762848 0.690277 0.303925 0.765015 0.689514 0.341431 0.767212 0.688721 0.380890 0.769379 0.687897 0.421997 0.771454 0.687195 0.464661 0.773621 0.686401 0.508331 0.775696 0.685669 0.552826 0.777771 0.684967 0.596252 0.779846 0.684265 0.637787 0.781891 0.683624 0.677246 0.783936 0.683167 0.714172 0.785919 0.683167 0.748138 0.787903 0.683167 0.779205 0.789856 0.683167 0.807312 0.791779 0.683167 0.832703 0.793671 0.683167 0.855804 0.795563 0.683167 0.876770 0.797394 0.683167 0.895813 0.799255 0.683167 0.913116 0.801086 0.683167 0.928864 0.802795 0.683167 0.943176 0.804596 0.683167 0.956146 0.806335 0.683167 0.967804 0.808014 0.683167 0.978271 0.809723 0.683167 0.987518 0.811371 0.683167 0.098877 0.782562 0.693634 0.124115 0.784576 0.692810 0.150604 0.786621 0.691956 0.178589 0.788666 0.691132 0.208130 0.790649 0.690338 0.239532 0.792664 0.689514 0.273010 0.794647 0.688721 0.308624 0.796600 0.687927 0.346283 0.798553 0.687195 0.385986 0.800507 0.686401 0.427277 0.802399 0.685699 0.470032 0.804291 0.684998 0.513855 0.806152 0.684296 0.558258 0.808044 0.683655 0.601410 0.809875 0.683167 0.642761 0.811707 0.683167 0.681946 0.813507 0.683167 0.718414 0.815338 0.683167 0.752075 0.817047 0.683167 0.782715 0.818817 0.683167 0.810486 0.820526 0.683167 0.835571 0.822174 0.683167 0.858398 0.823883 0.683167 0.879059 0.825470 0.683167 0.897888 0.827148 0.683167 0.915039 0.828766 0.683167 0.930573 0.830322 0.683167 0.944702 0.831848 0.683167 0.957489 0.833405 0.683167 0.968994 0.834900 0.683167 0.979340 0.836395 0.683167 0.988434 0.837860 0.683167 0.102020 0.812378 0.692017 0.127380 0.814209 0.691193 0.154083 0.816010 0.690338 0.182251 0.817902 0.689545 0.212006 0.819641 0.688751 0.243652 0.821442 0.687988 0.277374 0.823273 0.687195 0.313263 0.824982 0.686462 0.351196 0.826752 0.685699 0.390991 0.828461 0.685028 0.432526 0.830170 0.684296 0.475433 0.831879 0.683655 0.519348 0.833527 0.683167 0.563660 0.835236 0.683167 0.606628 0.836914 0.683167 0.647614 0.838470 0.683167 0.686462 0.840118 0.683167 0.722656 0.841705 0.683167 0.755920 0.843262 0.683167 0.786133 0.844788 0.683167 0.813538 0.846313 0.683167 0.838318 0.847839 0.683167 0.860870 0.849335 0.683167 0.881287 0.850769 0.683167 0.899902 0.852203 0.683167 0.916840 0.853638 0.683167 0.932190 0.855042 0.683167 0.946167 0.856415 0.683167 0.958801 0.857788 0.683167 0.970154 0.859070 0.683167 0.980316 0.860413 0.683167 0.989288 0.861633 0.683167 0.105164 0.839203 0.690369 0.130676 0.840820 0.689575 0.157562 0.842499 0.688782 0.185913 0.844147 0.687988 0.215912 0.845703 0.687225 0.247803 0.847351 0.686462 0.281738 0.848969 0.685730 0.317841 0.850525 0.685028 0.356049 0.852112 0.684357 0.396057 0.853607 0.683685 0.437775 0.855194 0.683167 0.480804 0.856689 0.683167 0.524780 0.858185 0.683167 0.569000 0.859680 0.683167 0.611725 0.861176 0.683167 0.652435 0.862610 0.683167 0.690918 0.864044 0.683167 0.726746 0.865479 0.683167 0.759613 0.866852 0.683167 0.789490 0.868256 0.683167 0.816498 0.869568 0.683167 0.841034 0.870941 0.683167 0.863281 0.872253 0.683167 0.883484 0.873535 0.683167 0.901855 0.874817 0.683167 0.918579 0.876068 0.683167 0.933777 0.877289 0.683167 0.947571 0.878510 0.683167 0.960052 0.879730 0.683167 0.971252 0.880890 0.683167 0.981293 0.881989 0.683167 0.990143 0.883148 0.683167 0.108307 0.863342 0.688782 0.134003 0.864807 0.688019 0.161011 0.866302 0.687256 0.189606 0.867798 0.686523 0.219788 0.869202 0.685791 0.251862 0.870697 0.685059 0.286072 0.872101 0.684357 0.322449 0.873535 0.683685 0.360931 0.874939 0.683167 0.401093 0.876312 0.683167 0.442932 0.877716 0.683167 0.486115 0.879089 0.683167 0.530182 0.880402 0.683167 0.574188 0.881744 0.683167 0.616699 0.883057 0.683167 0.657104 0.884338 0.683167 0.695251 0.885620 0.683167 0.730713 0.886902 0.683167 0.763184 0.888092 0.683167 0.792725 0.889374 0.683167 0.819427 0.890533 0.683167 0.843628 0.891754 0.683167 0.865631 0.892914 0.683167 0.885559 0.894073 0.683167 0.903748 0.895203 0.683167 0.920258 0.896301 0.683167 0.935303 0.897369 0.683167 0.948914 0.898468 0.683167 0.961243 0.899475 0.683167 0.972321 0.900543 0.683167 0.982208 0.901550 0.683167 0.990936 0.902527 0.683167 0.111511 0.885132 0.687256 0.137329 0.886444 0.686554 0.164520 0.887817 0.685791 0.193268 0.889160 0.685059 0.223694 0.890411 0.684387 0.256042 0.891754 0.683716 0.290497 0.893005 0.683167 0.327087 0.894287 0.683167 0.365784 0.895569 0.683167 0.406097 0.896759 0.683167 0.448120 0.898010 0.683167 0.491364 0.899261 0.683167 0.535522 0.900421 0.683167 0.579285 0.901611 0.683167 0.621582 0.902832 0.683167 0.661682 0.903900 0.683167 0.699524 0.905090 0.683167 0.734528 0.906189 0.683167 0.766693 0.907318 0.683167 0.795837 0.908417 0.683167 0.822235 0.909454 0.683167 0.846161 0.910522 0.683167 0.867859 0.911560 0.683167 0.887604 0.912537 0.683167 0.905548 0.913544 0.683167 0.921906 0.914581 0.683167 0.936737 0.915527 0.683167 0.950226 0.916473 0.683167 0.962372 0.917389 0.683167 0.973358 0.918274 0.683167 0.983093 0.919159 0.683167 0.991699 0.920013 0.683167 0.114655 0.904816 0.685822 0.140656 0.905975 0.685120 0.168030 0.907196 0.684387 0.196899 0.908356 0.683716 0.227570 0.909546 0.683167 0.260162 0.910736 0.683167 0.294891 0.911865 0.683167 0.331696 0.913025 0.683167 0.370514 0.914154 0.683167 0.411102 0.915253 0.683167 0.453217 0.916351 0.683167 0.496552 0.917450 0.683167 0.540710 0.918518 0.683167 0.584320 0.919556 0.683167 0.626221 0.920593 0.683167 0.666168 0.921631 0.683167 0.703644 0.922668 0.683167 0.738281 0.923615 0.683167 0.770050 0.924622 0.683167 0.798889 0.925598 0.683167 0.824890 0.926514 0.683167 0.848541 0.927460 0.683167 0.870026 0.928375 0.683167 0.889526 0.929260 0.683167 0.907318 0.930176 0.683167 0.923431 0.931030 0.683167 0.938110 0.931824 0.683167 0.951447 0.932739 0.683167 0.963470 0.933502 0.683167 0.974304 0.934296 0.683167 0.983917 0.935059 0.683167 0.992401 0.935791 0.683167 0.117828 0.922577 0.684387 0.143982 0.923615 0.683777 0.171509 0.924713 0.683167 0.200562 0.925781 0.683167 0.231445 0.926819 0.683167 0.264252 0.927887 0.683167 0.299164 0.928864 0.683167 0.336304 0.929901 0.683167 0.375305 0.930939 0.683167 0.416016 0.931915 0.683167 0.458221 0.932922 0.683167 0.501648 0.933868 0.683167 0.545807 0.934784 0.683167 0.589233 0.935730 0.683167 0.630890 0.936676 0.683167 0.670471 0.937592 0.683167 0.707611 0.938477 0.683167 0.741943 0.939331 0.683167 0.773315 0.940216 0.683167 0.801788 0.941071 0.683167 0.827515 0.941925 0.683167 0.850891 0.942719 0.683167 0.872101 0.943512 0.683167 0.891388 0.944305 0.683167 0.908966 0.945068 0.683167 0.924927 0.945831 0.683167 0.939453 0.946594 0.683167 0.952606 0.947327 0.683167 0.964508 0.947998 0.683167 0.975189 0.948700 0.683167 0.984711 0.949371 0.683167 0.993073 0.950012 0.683167 0.120972 0.938538 0.683167 0.147247 0.939514 0.683167 0.175018 0.940491 0.683167 0.204254 0.941406 0.683167 0.235321 0.942352 0.683167 0.268372 0.943298 0.683167 0.303497 0.944214 0.683167 0.340790 0.945129 0.683167 0.380035 0.946045 0.683167 0.420868 0.946869 0.683167 0.463165 0.947784 0.683167 0.506622 0.948608 0.683167 0.550751 0.949463 0.683167 0.593994 0.950317 0.683167 0.635376 0.951111 0.683167 0.674713 0.951935 0.683167 0.711426 0.952698 0.683167 0.745392 0.953491 0.683167 0.776459 0.954254 0.683167 0.804565 0.955017 0.683167 0.829987 0.955719 0.683167 0.853119 0.956451 0.683167 0.874084 0.957153 0.683167 0.893188 0.957825 0.683167 0.910553 0.958496 0.683167 0.926331 0.959137 0.683167 0.940735 0.959808 0.683167 0.953766 0.960449 0.683167 0.965515 0.961029 0.683167 0.976044 0.961639 0.683167 0.985443 0.962219 0.683167 0.993683 0.962769 0.683167 0.124146 0.952972 0.683167 0.150574 0.953796 0.683167 0.178467 0.954651 0.683167 0.207886 0.955505 0.683167 0.239197 0.956360 0.683167 0.272400 0.957184 0.683167 0.307800 0.957977 0.683167 0.345245 0.958771 0.683167 0.384674 0.959595 0.683167 0.425629 0.960358 0.683167 0.468109 0.961121 0.683167 0.511566 0.961853 0.683167 0.555695 0.962585 0.683167 0.598663 0.963348 0.683167 0.639771 0.964050 0.683167 0.678741 0.964752 0.683167 0.715179 0.965454 0.683167 0.748779 0.966095 0.683167 0.779449 0.966766 0.683167 0.807220 0.967438 0.683167 0.832397 0.968048 0.683167 0.855194 0.968689 0.683167 0.875977 0.969299 0.683167 0.894867 0.969879 0.683167 0.912048 0.970490 0.683167 0.927704 0.971039 0.683167 0.941925 0.971588 0.683167 0.954803 0.972137 0.683167 0.966431 0.972656 0.683167 0.976868 0.973175 0.683167 0.986145 0.973633 0.683167 0.994293 0.974121 0.683167 0.127289 0.965820 0.683167 0.153809 0.966614 0.683167 0.181885 0.967346 0.683167 0.211487 0.968079 0.683167 0.242981 0.968842 0.683167 0.276459 0.969543 0.683167 0.312042 0.970245 0.683167 0.349731 0.970947 0.683167 0.389160 0.971649 0.683167 0.430328 0.972321 0.683167 0.472870 0.972992 0.683167 0.516388 0.973633 0.683167 0.560394 0.974304 0.683167 0.603119 0.974945 0.683167 0.643982 0.975555 0.683167 0.682617 0.976135 0.683167 0.718750 0.976746 0.683167 0.752014 0.977356 0.683167 0.782318 0.977905 0.683167 0.809814 0.978485 0.683167 0.834686 0.979004 0.683167 0.857269 0.979553 0.683167 0.877777 0.980042 0.683167 0.896484 0.980560 0.683167 0.913483 0.981079 0.683167 0.928955 0.981537 0.683167 0.943054 0.982025 0.683167 0.955780 0.982513 0.683167 0.967285 0.982910 0.683167 0.977631 0.983337 0.683167 0.986786 0.983765 0.683167 0.994843 0.984161 0.683167 0.044128 0.005463 0.757568 0.066193 0.006317 0.757141 0.089172 0.007141 0.756775 0.113312 0.008057 0.756287 0.138672 0.009003 0.755798 0.165283 0.009888 0.755249 0.193451 0.010864 0.754761 0.223267 0.011902 0.754181 0.255005 0.012878 0.753662 0.288879 0.013916 0.753082 0.324799 0.015015 0.752472 0.362671 0.016113 0.751862 0.402496 0.017242 0.751221 0.443817 0.018341 0.750549 0.486481 0.019501 0.749939 0.530182 0.020691 0.749237 0.573853 0.021881 0.748505 0.616058 0.023132 0.747864 0.656342 0.024353 0.747101 0.694305 0.025635 0.746368 0.729706 0.026917 0.745605 0.762238 0.028198 0.744904 0.791779 0.029541 0.744080 0.818634 0.030914 0.743347 0.842926 0.032257 0.742584 0.865051 0.033630 0.741791 0.885162 0.035004 0.740997 0.903442 0.036407 0.740204 0.920105 0.037842 0.739380 0.935303 0.039307 0.738525 0.949036 0.040710 0.737762 0.961487 0.042236 0.736938 0.045776 0.026825 0.756775 0.067963 0.027832 0.756287 0.091095 0.028748 0.755829 0.115387 0.029694 0.755310 0.140839 0.030731 0.754761 0.167694 0.031738 0.754242 0.196045 0.032837 0.753662 0.226105 0.033905 0.753082 0.258057 0.035004 0.752502 0.292175 0.036133 0.751892 0.328369 0.037292 0.751251 0.366577 0.038452 0.750610 0.406555 0.039673 0.749939 0.448120 0.040894 0.749268 0.490997 0.042145 0.748566 0.534882 0.043427 0.747894 0.578400 0.044678 0.747131 0.620483 0.046021 0.746399 0.660645 0.047363 0.745636 0.698334 0.048706 0.744934 0.733521 0.050110 0.744141 0.765808 0.051514 0.743378 0.795044 0.052887 0.742584 0.821594 0.054352 0.741821 0.845612 0.055756 0.741028 0.867523 0.057220 0.740204 0.887421 0.058746 0.739380 0.905518 0.060211 0.738556 0.922028 0.061737 0.737762 0.937012 0.063263 0.736938 0.950623 0.064789 0.736145 0.962921 0.066376 0.735321 0.047546 0.049286 0.755829 0.069824 0.050293 0.755310 0.093109 0.051331 0.754822 0.117523 0.052429 0.754242 0.143188 0.053528 0.753693 0.170227 0.054596 0.753113 0.198792 0.055786 0.752502 0.229065 0.056976 0.751892 0.261230 0.058167 0.751251 0.295624 0.059418 0.750610 0.332123 0.060638 0.749969 0.370514 0.061920 0.749268 0.410767 0.063232 0.748566 0.452515 0.064514 0.747894 0.495636 0.065887 0.747162 0.539612 0.067291 0.746429 0.583069 0.068634 0.745697 0.625061 0.070038 0.744934 0.664978 0.071503 0.744141 0.702454 0.072906 0.743408 0.737335 0.074402 0.742615 0.769226 0.075897 0.741852 0.798248 0.077393 0.741028 0.824493 0.078918 0.740234 0.848328 0.080444 0.739410 0.869995 0.082031 0.738617 0.889709 0.083618 0.737793 0.907593 0.085175 0.736969 0.923920 0.086823 0.736145 0.938782 0.088409 0.735321 0.952209 0.090057 0.734497 0.964325 0.091736 0.733673 0.049377 0.072754 0.754822 0.071838 0.073883 0.754272 0.095245 0.075012 0.753723 0.119812 0.076202 0.753143 0.145660 0.077423 0.752533 0.172852 0.078613 0.751953 0.201630 0.079895 0.751282 0.232208 0.081177 0.750641 0.264618 0.082458 0.750000 0.299286 0.083801 0.749329 0.335938 0.085114 0.748596 0.374725 0.086517 0.747925 0.415192 0.087921 0.747162 0.457123 0.089325 0.746460 0.500397 0.090790 0.745697 0.544464 0.092255 0.744965 0.587860 0.093750 0.744171 0.629669 0.095276 0.743408 0.669373 0.096832 0.742615 0.706635 0.098358 0.741882 0.741211 0.099945 0.741058 0.772797 0.101501 0.740265 0.801453 0.103119 0.739441 0.827484 0.104767 0.738617 0.851013 0.106384 0.737823 0.872467 0.108063 0.737000 0.891937 0.109741 0.736176 0.909698 0.111420 0.735382 0.925842 0.113129 0.734528 0.940491 0.114868 0.733704 0.953766 0.116608 0.732910 0.965759 0.118378 0.732056 0.051331 0.097504 0.753723 0.073914 0.098694 0.753143 0.097504 0.099945 0.752563 0.122223 0.101196 0.751984 0.148224 0.102539 0.751282 0.175598 0.103851 0.750671 0.204620 0.105225 0.750000 0.235352 0.106598 0.749359 0.268097 0.108032 0.748627 0.303040 0.109467 0.747925 0.339996 0.110931 0.747192 0.378967 0.112427 0.746460 0.419678 0.113953 0.745728 0.461884 0.115448 0.744995 0.505280 0.117035 0.744202 0.549438 0.118622 0.743439 0.592712 0.120178 0.742645 0.634369 0.121826 0.741882 0.673828 0.123474 0.741089 0.710846 0.125153 0.740265 0.745117 0.126831 0.739471 0.776367 0.128540 0.738647 0.804749 0.130249 0.737885 0.830444 0.132019 0.737061 0.853760 0.133759 0.736206 0.874939 0.135529 0.735382 0.894257 0.137360 0.734528 0.911743 0.139130 0.733734 0.927734 0.140961 0.732910 0.942169 0.142761 0.732117 0.955322 0.144623 0.731262 0.967194 0.146545 0.730469 0.053406 0.123535 0.752563 0.076111 0.124847 0.751984 0.099823 0.126160 0.751343 0.124725 0.127625 0.750671 0.150909 0.129059 0.750031 0.178467 0.130463 0.749359 0.207703 0.131958 0.748627 0.238678 0.133453 0.747955 0.271698 0.135010 0.747284 0.306915 0.136597 0.746521 0.344177 0.138123 0.745789 0.383392 0.139740 0.744995 0.424347 0.141418 0.744202 0.466736 0.143036 0.743469 0.510345 0.144714 0.742676 0.554565 0.146454 0.741943 0.597656 0.148163 0.741119 0.639099 0.149933 0.740295 0.678345 0.151611 0.739532 0.715057 0.153442 0.738678 0.749023 0.155273 0.737885 0.779938 0.157074 0.737091 0.808014 0.158936 0.736237 0.833435 0.160828 0.735413 0.856476 0.162659 0.734558 0.877441 0.164581 0.733795 0.896484 0.166534 0.732941 0.913818 0.168457 0.732147 0.929626 0.170410 0.731293 0.943939 0.172333 0.730499 0.956909 0.174316 0.729675 0.968597 0.176331 0.728821 0.055573 0.151031 0.751343 0.078400 0.152496 0.750671 0.102264 0.153992 0.750061 0.127319 0.155487 0.749390 0.153656 0.157043 0.748657 0.181488 0.158630 0.747986 0.210907 0.160248 0.747284 0.242126 0.161865 0.746552 0.275421 0.163574 0.745789 0.310913 0.165253 0.745026 0.348419 0.166931 0.744324 0.387939 0.168671 0.743500 0.429138 0.170502 0.742676 0.471710 0.172241 0.741974 0.515442 0.174072 0.741119 0.559570 0.175873 0.740356 0.602692 0.177734 0.739532 0.643951 0.179657 0.738678 0.682861 0.181549 0.737915 0.719360 0.183502 0.737091 0.752930 0.185455 0.736237 0.783539 0.187378 0.735443 0.811249 0.189392 0.734619 0.836426 0.191406 0.733795 0.859192 0.193390 0.732971 0.879944 0.195465 0.732147 0.898743 0.197479 0.731354 0.915894 0.199554 0.730499 0.931488 0.201660 0.729675 0.945648 0.203766 0.728912 0.958435 0.205872 0.728058 0.969971 0.208008 0.727295 0.057800 0.180237 0.750061 0.080780 0.181824 0.749390 0.104797 0.183441 0.748718 0.130035 0.185120 0.747986 0.156494 0.186798 0.747314 0.184570 0.188538 0.746552 0.214233 0.190338 0.745819 0.245697 0.192078 0.745056 0.279297 0.193878 0.744324 0.315063 0.195740 0.743500 0.352875 0.197571 0.742737 0.392578 0.199493 0.741974 0.434052 0.201385 0.741180 0.476776 0.203308 0.740356 0.520721 0.205292 0.739563 0.564819 0.207245 0.738708 0.607697 0.209290 0.737946 0.648773 0.211304 0.737122 0.687408 0.213379 0.736267 0.723602 0.215424 0.735443 0.756897 0.217560 0.734619 0.787109 0.219635 0.733826 0.814514 0.221771 0.732971 0.839386 0.223969 0.732178 0.861877 0.226105 0.731354 0.882385 0.228302 0.730530 0.900970 0.230499 0.729706 0.917938 0.232727 0.728912 0.933350 0.234955 0.728088 0.947327 0.237213 0.727325 0.959961 0.239502 0.726471 0.971344 0.241821 0.725708 0.060120 0.211304 0.748718 0.083191 0.213043 0.748016 0.107391 0.214844 0.747345 0.132812 0.216675 0.746582 0.159515 0.218475 0.745850 0.187775 0.220367 0.745056 0.217651 0.222351 0.744354 0.249390 0.224274 0.743561 0.283264 0.226227 0.742767 0.319336 0.228241 0.742004 0.357391 0.230194 0.741211 0.397369 0.232300 0.740387 0.438904 0.234314 0.739594 0.481934 0.236481 0.738770 0.525970 0.238586 0.737946 0.570038 0.240723 0.737152 0.612793 0.242950 0.736298 0.653656 0.245117 0.735474 0.692017 0.247314 0.734680 0.727875 0.249603 0.733856 0.760803 0.251831 0.733002 0.790680 0.254120 0.732208 0.817749 0.256439 0.731384 0.842316 0.258789 0.730560 0.864563 0.261078 0.729736 0.884827 0.263458 0.728943 0.903229 0.265778 0.728119 0.919983 0.268188 0.727325 0.935211 0.270630 0.726562 0.949005 0.273041 0.725769 0.961487 0.275482 0.725006 0.972687 0.277924 0.724182 0.062531 0.244507 0.747345 0.085785 0.246368 0.746613 0.110138 0.248383 0.745880 0.135712 0.250366 0.745117 0.162567 0.252411 0.744385 0.191040 0.254456 0.743591 0.221161 0.256592 0.742767 0.253143 0.258667 0.742035 0.287323 0.260803 0.741211 0.323669 0.263000 0.740417 0.362030 0.265167 0.739594 0.402222 0.267456 0.738800 0.444031 0.269623 0.737976 0.487213 0.271942 0.737152 0.531403 0.274292 0.736298 0.575348 0.276581 0.735535 0.617981 0.278961 0.734680 0.658478 0.281342 0.733856 0.696625 0.283722 0.733032 0.732147 0.286194 0.732208 0.764709 0.288666 0.731415 0.794220 0.291077 0.730591 0.820953 0.293579 0.729736 0.845215 0.296051 0.728973 0.867218 0.298553 0.728119 0.887238 0.301117 0.727356 0.905426 0.303619 0.726593 0.921997 0.306244 0.725769 0.937012 0.308868 0.725006 0.950684 0.311371 0.724243 0.962982 0.314026 0.723511 0.974030 0.316620 0.722717 0.065033 0.280090 0.745880 0.088379 0.282196 0.745148 0.112915 0.284363 0.744385 0.138672 0.286530 0.743591 0.165771 0.288727 0.742828 0.194458 0.290985 0.742035 0.224792 0.293304 0.741241 0.257050 0.295563 0.740448 0.291504 0.297943 0.739624 0.328094 0.300232 0.738861 0.366730 0.302673 0.738037 0.407227 0.305084 0.737183 0.449219 0.307465 0.736359 0.492554 0.309998 0.735565 0.536865 0.312500 0.734711 0.580719 0.314941 0.733887 0.623077 0.317566 0.733093 0.663391 0.320190 0.732269 0.701233 0.322662 0.731445 0.736359 0.325317 0.730591 0.768585 0.327942 0.729797 0.797729 0.330566 0.728973 0.824158 0.333252 0.728180 0.848114 0.335876 0.727386 0.869843 0.338562 0.726593 0.889618 0.341248 0.725800 0.907593 0.343964 0.725037 0.923981 0.346680 0.724274 0.938812 0.349426 0.723511 0.952271 0.352142 0.722748 0.964417 0.354919 0.722076 0.975342 0.357697 0.721283 0.067566 0.318237 0.744415 0.091095 0.320496 0.743622 0.115784 0.322845 0.742828 0.141693 0.325226 0.742065 0.169006 0.327576 0.741272 0.197876 0.330078 0.740448 0.228516 0.332489 0.739624 0.261078 0.335022 0.738861 0.295837 0.337524 0.738037 0.332672 0.340027 0.737213 0.371582 0.342621 0.736389 0.412262 0.345245 0.735565 0.454468 0.347809 0.734741 0.498016 0.350494 0.733917 0.542358 0.353149 0.733093 0.586090 0.355835 0.732300 0.628265 0.358582 0.731445 0.668304 0.361359 0.730652 0.705780 0.364014 0.729828 0.740570 0.366760 0.728973 0.772400 0.369568 0.728210 0.801239 0.372314 0.727386 0.827332 0.375183 0.726624 0.850952 0.377991 0.725830 0.872467 0.380798 0.725067 0.891998 0.383667 0.724274 0.909790 0.386475 0.723541 0.925934 0.389343 0.722809 0.940613 0.392242 0.722076 0.953857 0.395111 0.721313 0.965881 0.397949 0.720642 0.976593 0.400818 0.719971 0.070251 0.358765 0.742859 0.093872 0.361206 0.742096 0.118713 0.363739 0.741272 0.144867 0.366333 0.740479 0.172302 0.368835 0.739655 0.201416 0.371429 0.738892 0.232269 0.374023 0.738068 0.265137 0.376740 0.737213 0.300171 0.379456 0.736420 0.337311 0.382111 0.735596 0.376465 0.384888 0.734741 0.417419 0.387665 0.733917 0.459808 0.390411 0.733124 0.503479 0.393188 0.732300 0.547913 0.396057 0.731476 0.591492 0.398834 0.730682 0.633392 0.401733 0.729828 0.673157 0.404633 0.729004 0.710327 0.407501 0.728241 0.744781 0.410400 0.727417 0.776215 0.413300 0.726654 0.804688 0.416260 0.725830 0.830475 0.419189 0.725067 0.853790 0.422058 0.724304 0.875061 0.425110 0.723602 0.894379 0.428040 0.722809 0.911865 0.430969 0.722107 0.927887 0.434052 0.721405 0.942352 0.437012 0.720642 0.955444 0.439941 0.719971 0.967285 0.442902 0.719299 0.977844 0.445892 0.718658 0.072876 0.401459 0.741333 0.096741 0.404053 0.740509 0.121735 0.406738 0.739685 0.148041 0.409485 0.738892 0.175720 0.412201 0.738098 0.205048 0.414978 0.737274 0.236115 0.417694 0.736450 0.269287 0.420502 0.735626 0.304596 0.423401 0.734772 0.342072 0.426239 0.734009 0.381439 0.429138 0.733154 0.422577 0.432037 0.732330 0.465179 0.434906 0.731506 0.509033 0.437927 0.730682 0.553467 0.440887 0.729889 0.596832 0.443817 0.729034 0.638550 0.446808 0.728241 0.677979 0.449738 0.727478 0.714844 0.452759 0.726654 0.748932 0.455811 0.725861 0.779938 0.458832 0.725098 0.808075 0.461884 0.724304 0.833527 0.464905 0.723602 0.856598 0.467957 0.722839 0.877594 0.471039 0.722107 0.896667 0.474091 0.721405 0.913971 0.477112 0.720673 0.929779 0.480194 0.720001 0.944031 0.483215 0.719360 0.957001 0.486237 0.718658 0.968658 0.489349 0.718048 0.979065 0.492340 0.717438 0.075653 0.446075 0.739777 0.099640 0.448822 0.738922 0.124817 0.451630 0.738129 0.151276 0.454468 0.737305 0.179169 0.457336 0.736450 0.208771 0.460266 0.735626 0.240082 0.463135 0.734833 0.273529 0.466095 0.734009 0.309174 0.469116 0.733154 0.346832 0.472046 0.732361 0.386536 0.475037 0.731506 0.427856 0.478088 0.730713 0.470642 0.481110 0.729919 0.514618 0.484161 0.729126 0.558960 0.487213 0.728271 0.602173 0.490295 0.727478 0.643677 0.493408 0.726715 0.682770 0.496399 0.725922 0.719360 0.499542 0.725159 0.753052 0.502747 0.724365 0.783661 0.505737 0.723633 0.811432 0.508881 0.722870 0.836609 0.512085 0.722137 0.859375 0.515106 0.721436 0.880096 0.518219 0.720703 0.898926 0.521362 0.720001 0.916077 0.524445 0.719360 0.931610 0.527557 0.718719 0.945740 0.530640 0.718109 0.958496 0.533752 0.717438 0.970032 0.536865 0.717377 0.980286 0.539856 0.717377 0.078491 0.492218 0.738129 0.102600 0.495117 0.737335 0.127991 0.498047 0.736511 0.154572 0.500977 0.735657 0.182739 0.503998 0.734863 0.212524 0.507050 0.734039 0.244110 0.510010 0.733185 0.277863 0.513123 0.732391 0.313782 0.516144 0.731567 0.351715 0.519165 0.730743 0.391602 0.522339 0.729919 0.433197 0.525421 0.729126 0.476166 0.528473 0.728302 0.520172 0.531677 0.727509 0.564545 0.534760 0.726746 0.607574 0.537933 0.725922 0.648773 0.541046 0.725159 0.687500 0.544189 0.724396 0.723755 0.547302 0.723633 0.757080 0.550446 0.722870 0.787323 0.553497 0.722168 0.814728 0.556641 0.721436 0.839569 0.559723 0.720703 0.862061 0.562744 0.720032 0.882538 0.565857 0.719391 0.901154 0.568848 0.718719 0.918060 0.571869 0.718109 0.933441 0.574982 0.717438 0.947388 0.577911 0.717377 0.959991 0.580902 0.717377 0.971313 0.583862 0.717377 0.981445 0.586792 0.717377 0.081329 0.539612 0.736511 0.105652 0.542603 0.735687 0.131165 0.545532 0.734863 0.157959 0.548553 0.734070 0.186310 0.551575 0.733215 0.216370 0.554657 0.732391 0.248260 0.557617 0.731598 0.282227 0.560638 0.730743 0.318420 0.563782 0.729950 0.356628 0.566742 0.729156 0.396790 0.569885 0.728302 0.438599 0.572937 0.727509 0.481628 0.575928 0.726746 0.525818 0.579010 0.725952 0.570038 0.582001 0.725189 0.612915 0.585083 0.724396 0.653778 0.588104 0.723663 0.692261 0.591095 0.722900 0.728119 0.594116 0.722168 0.761078 0.597168 0.721466 0.790924 0.600128 0.720764 0.817993 0.603058 0.720062 0.842529 0.606079 0.719391 0.864746 0.608948 0.718750 0.884979 0.611908 0.718140 0.903320 0.614838 0.717468 0.920013 0.617645 0.717377 0.935242 0.620544 0.717377 0.948975 0.623322 0.717377 0.961426 0.626160 0.717377 0.972595 0.628998 0.717377 0.982544 0.631683 0.717377 0.084259 0.586426 0.734894 0.108704 0.589325 0.734070 0.134399 0.592255 0.733215 0.161438 0.595123 0.732422 0.189972 0.598114 0.731598 0.220245 0.601044 0.730774 0.252380 0.603973 0.729980 0.286621 0.606964 0.729187 0.323151 0.609894 0.728333 0.361603 0.612793 0.727539 0.401947 0.615753 0.726776 0.443970 0.618744 0.725952 0.487213 0.621582 0.725220 0.531525 0.624542 0.724426 0.575562 0.627350 0.723694 0.618164 0.630280 0.722992 0.658813 0.633179 0.722198 0.696930 0.636017 0.721497 0.732422 0.638885 0.720795 0.764984 0.641754 0.720062 0.794464 0.644501 0.719421 0.821198 0.647369 0.718750 0.845398 0.650146 0.718140 0.867340 0.652893 0.717529 0.887299 0.655640 0.717377 0.905457 0.658295 0.717377 0.921967 0.661072 0.717377 0.936951 0.663757 0.717377 0.950562 0.666351 0.717377 0.962860 0.668945 0.717377 0.973877 0.671600 0.717377 0.983673 0.674103 0.717377 0.087219 0.631348 0.733307 0.111847 0.634155 0.732483 0.137695 0.637024 0.731628 0.164917 0.639771 0.730804 0.193695 0.642609 0.730042 0.224182 0.645416 0.729187 0.256592 0.648193 0.728394 0.291138 0.651001 0.727570 0.327911 0.653809 0.726776 0.366608 0.656555 0.725983 0.407196 0.659363 0.725220 0.449341 0.662140 0.724457 0.492798 0.664856 0.723694 0.537170 0.667633 0.722992 0.581024 0.670349 0.722260 0.623444 0.673065 0.721497 0.663757 0.675812 0.720795 0.701569 0.678436 0.720154 0.736664 0.681122 0.719421 0.768829 0.683777 0.718781 0.797943 0.686340 0.718170 0.824310 0.688995 0.717529 0.848236 0.691589 0.717377 0.869904 0.694092 0.717377 0.889618 0.696625 0.717377 0.907532 0.699097 0.717377 0.923828 0.701660 0.717377 0.938690 0.704102 0.717377 0.952087 0.706482 0.717377 0.964203 0.708923 0.717377 0.975067 0.711273 0.717377 0.984741 0.713562 0.717377 0.090240 0.673920 0.731659 0.114990 0.676605 0.730865 0.141052 0.679260 0.730042 0.168457 0.681915 0.729218 0.197449 0.684540 0.728394 0.228180 0.687225 0.727570 0.260803 0.689789 0.726807 0.295715 0.692444 0.726044 0.332672 0.695099 0.725281 0.371674 0.697632 0.724457 0.412476 0.700226 0.723755 0.454712 0.702759 0.723022 0.498322 0.705322 0.722260 0.542786 0.707886 0.721558 0.586456 0.710419 0.720825 0.628632 0.712921 0.720154 0.668640 0.715424 0.719452 0.706085 0.717834 0.718781 0.740845 0.720337 0.718170 0.772614 0.722748 0.717529 0.801331 0.725159 0.717377 0.827362 0.727509 0.717377 0.850952 0.729828 0.717377 0.872406 0.732208 0.717377 0.891876 0.734497 0.717377 0.909576 0.736755 0.717377 0.925720 0.738983 0.717377 0.940308 0.741241 0.717377 0.953583 0.743408 0.717377 0.965515 0.745575 0.717377 0.976227 0.747742 0.717377 0.985748 0.749786 0.717377 0.093292 0.713654 0.730072 0.118225 0.716156 0.729248 0.144409 0.718658 0.728424 0.172028 0.721069 0.727661 0.201233 0.723541 0.726868 0.232239 0.725983 0.726044 0.265076 0.728333 0.725311 0.300232 0.730804 0.724518 0.337494 0.733154 0.723785 0.376740 0.735596 0.723053 0.417694 0.737976 0.722290 0.460175 0.740265 0.721558 0.503845 0.742615 0.720825 0.548340 0.744965 0.720184 0.591858 0.747192 0.719513 0.633728 0.749542 0.718811 0.673401 0.751831 0.718170 0.710602 0.753967 0.717560 0.744934 0.756226 0.717377 0.776306 0.758423 0.717377 0.804657 0.760529 0.717377 0.830383 0.762726 0.717377 0.853638 0.764771 0.717377 0.874817 0.766907 0.717377 0.894073 0.768951 0.717377 0.911560 0.770935 0.717377 0.927490 0.772980 0.717377 0.941925 0.774933 0.717377 0.955017 0.776855 0.717377 0.966766 0.778809 0.717377 0.977356 0.780701 0.717377 0.986725 0.782562 0.717377 0.096344 0.750214 0.728455 0.121460 0.752502 0.727661 0.147858 0.754730 0.726868 0.175598 0.756958 0.726105 0.205017 0.759216 0.725311 0.236237 0.761414 0.724518 0.269440 0.763641 0.723785 0.304840 0.765839 0.723053 0.342316 0.767944 0.722321 0.381805 0.770111 0.721588 0.423035 0.772278 0.720886 0.465576 0.774353 0.720215 0.509430 0.776489 0.719513 0.553833 0.778595 0.718811 0.597168 0.780579 0.718201 0.638733 0.782654 0.717560 0.678192 0.784698 0.717377 0.714935 0.786621 0.717377 0.748871 0.788635 0.717377 0.779816 0.790527 0.717377 0.807861 0.792480 0.717377 0.833313 0.794403 0.717377 0.856262 0.796204 0.717377 0.877197 0.798096 0.717377 0.896210 0.799957 0.717377 0.913452 0.801727 0.717377 0.929199 0.803467 0.717377 0.943481 0.805267 0.717377 0.956390 0.806976 0.717377 0.968018 0.808624 0.717377 0.978455 0.810272 0.717377 0.987701 0.811951 0.717377 0.099457 0.783264 0.726898 0.124725 0.785339 0.726135 0.151306 0.787384 0.725342 0.179230 0.789368 0.724548 0.208893 0.791412 0.723816 0.240326 0.793365 0.723083 0.273743 0.795349 0.722321 0.309448 0.797333 0.721619 0.347168 0.799255 0.720917 0.386902 0.801208 0.720215 0.428253 0.803162 0.719543 0.471039 0.804962 0.718872 0.514984 0.806885 0.718262 0.559296 0.808746 0.717621 0.602386 0.810547 0.717377 0.643707 0.812378 0.717377 0.682800 0.814209 0.717377 0.719208 0.815948 0.717377 0.752808 0.817719 0.717377 0.783356 0.819427 0.717377 0.811066 0.821136 0.717377 0.836090 0.822845 0.717377 0.858826 0.824432 0.717377 0.879486 0.826111 0.717377 0.898285 0.827759 0.717377 0.915344 0.829315 0.717377 0.930878 0.830902 0.717377 0.944977 0.832458 0.717377 0.957733 0.833954 0.717377 0.969208 0.835449 0.717377 0.979492 0.836914 0.717377 0.988586 0.838348 0.717377 0.102570 0.813049 0.725403 0.127991 0.814880 0.724579 0.154755 0.816742 0.723816 0.182892 0.818512 0.723083 0.212769 0.820312 0.722351 0.244415 0.822083 0.721619 0.278168 0.823883 0.720917 0.314087 0.825623 0.720215 0.352081 0.827362 0.719543 0.391968 0.829102 0.718903 0.433502 0.830841 0.718262 0.476379 0.832489 0.717651 0.520386 0.834167 0.717377 0.564667 0.835846 0.717377 0.607574 0.837463 0.717377 0.648621 0.839111 0.717377 0.687256 0.840668 0.717377 0.723358 0.842255 0.717377 0.756622 0.843842 0.717377 0.786774 0.845367 0.717377 0.814087 0.846893 0.717377 0.838867 0.848389 0.717377 0.861298 0.849854 0.717377 0.881714 0.851318 0.717377 0.900269 0.852753 0.717377 0.917175 0.854156 0.717377 0.932526 0.855560 0.717377 0.946442 0.856873 0.717377 0.959015 0.858246 0.717377 0.970367 0.859589 0.717377 0.980469 0.860840 0.717377 0.989441 0.862122 0.717377 0.105743 0.839752 0.723846 0.131317 0.841461 0.723114 0.158234 0.843109 0.722351 0.186554 0.844696 0.721649 0.216644 0.846344 0.720947 0.248535 0.847900 0.720245 0.282532 0.849518 0.719604 0.318756 0.851105 0.718903 0.356964 0.852661 0.718292 0.397003 0.854187 0.717651 0.438782 0.855743 0.717377 0.481750 0.857239 0.717377 0.525818 0.858765 0.717377 0.569916 0.860229 0.717377 0.612610 0.861694 0.717377 0.653351 0.863159 0.717377 0.691711 0.864563 0.717377 0.727417 0.865967 0.717377 0.760284 0.867371 0.717377 0.790100 0.868744 0.717377 0.817078 0.870087 0.717377 0.841553 0.871429 0.717377 0.863678 0.872711 0.717377 0.883881 0.873993 0.717377 0.902222 0.875305 0.717377 0.918884 0.876495 0.717377 0.934082 0.877747 0.717377 0.947845 0.878967 0.717377 0.960297 0.880157 0.717377 0.971466 0.881317 0.717377 0.981476 0.882446 0.717377 0.990295 0.883545 0.717377 0.108917 0.863861 0.722382 0.134644 0.865387 0.721649 0.161682 0.866852 0.721008 0.190247 0.868347 0.720306 0.220551 0.869781 0.719604 0.252655 0.871185 0.718933 0.286957 0.872620 0.718292 0.323395 0.874084 0.717651 0.361755 0.875427 0.717377 0.402039 0.876831 0.717377 0.443970 0.878235 0.717377 0.487030 0.879547 0.717377 0.531189 0.880890 0.717377 0.575134 0.882202 0.717377 0.617554 0.883545 0.717377 0.657990 0.884827 0.717377 0.696075 0.886078 0.717377 0.731415 0.887329 0.717377 0.763885 0.888580 0.717377 0.793304 0.889771 0.717377 0.819946 0.890991 0.717377 0.844116 0.892181 0.717377 0.866028 0.893341 0.717377 0.885956 0.894501 0.717377 0.904053 0.895569 0.717377 0.920563 0.896698 0.717377 0.935577 0.897797 0.717377 0.949158 0.898834 0.717377 0.961456 0.899872 0.717377 0.972504 0.900879 0.717377 0.982391 0.901886 0.717377 0.991089 0.902893 0.717377 0.112091 0.885620 0.721008 0.137939 0.886993 0.720306 0.165161 0.888275 0.719635 0.193909 0.889587 0.718933 0.224426 0.890900 0.718323 0.256744 0.892212 0.717682 0.291321 0.893494 0.717377 0.328033 0.894775 0.717377 0.366608 0.895996 0.717377 0.407043 0.897247 0.717377 0.449066 0.898499 0.717377 0.492340 0.899658 0.717377 0.536499 0.900879 0.717377 0.580231 0.902008 0.717377 0.622406 0.903229 0.717377 0.662567 0.904388 0.717377 0.700256 0.905487 0.717377 0.735260 0.906616 0.717377 0.767334 0.907715 0.717377 0.796356 0.908752 0.717377 0.822723 0.909882 0.717377 0.846649 0.910919 0.717377 0.868286 0.911926 0.717377 0.887939 0.912933 0.717377 0.905884 0.913910 0.717377 0.922180 0.914917 0.717377 0.937012 0.915894 0.717377 0.950439 0.916809 0.717377 0.962585 0.917725 0.717377 0.973511 0.918610 0.717377 0.983246 0.919464 0.717377 0.991821 0.920349 0.717377 0.115234 0.905212 0.719666 0.141296 0.906433 0.718964 0.168640 0.907623 0.718353 0.197632 0.908783 0.717712 0.228302 0.910004 0.717377 0.260925 0.911163 0.717377 0.295654 0.912292 0.717377 0.332611 0.913422 0.717377 0.371368 0.914581 0.717377 0.412048 0.915680 0.717377 0.454163 0.916748 0.717377 0.497467 0.917847 0.717377 0.541718 0.918884 0.717377 0.585205 0.919952 0.717377 0.627136 0.920990 0.717377 0.666962 0.922028 0.717377 0.704346 0.923004 0.717377 0.738983 0.923981 0.717377 0.770691 0.924988 0.717377 0.799408 0.925934 0.717377 0.825409 0.926880 0.717377 0.848999 0.927795 0.717377 0.870392 0.928680 0.717377 0.889893 0.929626 0.717377 0.907593 0.930450 0.717377 0.923706 0.931305 0.717377 0.938385 0.932190 0.717377 0.951660 0.932983 0.717377 0.963684 0.933807 0.717377 0.974487 0.934601 0.717377 0.984070 0.935333 0.717377 0.992523 0.936127 0.717377 0.118408 0.922943 0.718353 0.144592 0.924042 0.717712 0.172150 0.925110 0.717377 0.201294 0.926147 0.717377 0.232239 0.927246 0.717377 0.265015 0.928223 0.717377 0.300018 0.929291 0.717377 0.337158 0.930298 0.717377 0.376160 0.931305 0.717377 0.416962 0.932281 0.717377 0.459167 0.933228 0.717377 0.502594 0.934235 0.717377 0.546783 0.935150 0.717377 0.590118 0.936096 0.717377 0.631744 0.937012 0.717377 0.671234 0.937927 0.717377 0.708313 0.938812 0.717377 0.742584 0.939697 0.717377 0.773956 0.940552 0.717377 0.802277 0.941376 0.717377 0.828003 0.942200 0.717377 0.851288 0.942993 0.717377 0.872467 0.943817 0.717377 0.891754 0.944580 0.717377 0.909271 0.945374 0.717377 0.925201 0.946106 0.717377 0.939697 0.946838 0.717377 0.952850 0.947571 0.717377 0.964691 0.948273 0.717377 0.975372 0.948975 0.717377 0.984863 0.949615 0.717377 0.993195 0.950256 0.717377 0.121582 0.938904 0.717377 0.147919 0.939880 0.717377 0.175598 0.940826 0.717377 0.204956 0.941803 0.717377 0.236053 0.942719 0.717377 0.269073 0.943634 0.717377 0.304321 0.944580 0.717377 0.341614 0.945465 0.717377 0.380859 0.946350 0.717377 0.421783 0.947235 0.717377 0.464111 0.948090 0.717377 0.507568 0.948944 0.717377 0.551758 0.949799 0.717377 0.594849 0.950592 0.717377 0.636261 0.951447 0.717377 0.675476 0.952209 0.717377 0.712128 0.953003 0.717377 0.746094 0.953766 0.717377 0.777039 0.954498 0.717377 0.805054 0.955231 0.717377 0.830475 0.955994 0.717377 0.853516 0.956665 0.717377 0.874451 0.957367 0.717377 0.893524 0.958038 0.717377 0.910828 0.958710 0.717377 0.926605 0.959381 0.717377 0.940948 0.960022 0.717377 0.953918 0.960632 0.717377 0.965698 0.961243 0.717377 0.976196 0.961853 0.717377 0.985565 0.962402 0.717377 0.993835 0.962982 0.717377 0.124725 0.953247 0.717377 0.151215 0.954132 0.717377 0.179077 0.954987 0.717377 0.208557 0.955841 0.717377 0.239899 0.956635 0.717377 0.273163 0.957458 0.717377 0.308624 0.958282 0.717377 0.346069 0.959076 0.717377 0.385468 0.959869 0.717377 0.426544 0.960632 0.717377 0.468964 0.961395 0.717377 0.512482 0.962158 0.717377 0.556580 0.962891 0.717377 0.599426 0.963593 0.717377 0.640594 0.964325 0.717377 0.679504 0.965027 0.717377 0.715820 0.965698 0.717377 0.749420 0.966370 0.717377 0.779968 0.967010 0.717377 0.807709 0.967651 0.717377 0.832825 0.968323 0.717377 0.855591 0.968933 0.717377 0.876343 0.969513 0.717377 0.895203 0.970093 0.717377 0.912292 0.970673 0.717377 0.927948 0.971252 0.717377 0.942139 0.971771 0.717377 0.954987 0.972290 0.717377 0.966614 0.972839 0.717377 0.977020 0.973358 0.717377 0.986267 0.973816 0.717377 0.994415 0.974304 0.717377 0.127869 0.966095 0.717377 0.154480 0.966888 0.717377 0.182526 0.967621 0.717377 0.212189 0.968353 0.717377 0.243622 0.969086 0.717377 0.277130 0.969818 0.717377 0.312805 0.970520 0.717377 0.350494 0.971191 0.717377 0.390045 0.971893 0.717377 0.431274 0.972595 0.717377 0.473694 0.973236 0.717377 0.517334 0.973907 0.717377 0.561279 0.974548 0.717377 0.603912 0.975159 0.717377 0.644775 0.975769 0.717377 0.683319 0.976379 0.717377 0.719391 0.976959 0.717377 0.752594 0.977539 0.717377 0.782867 0.978119 0.717377 0.810242 0.978668 0.717377 0.835083 0.979248 0.717377 0.857635 0.979736 0.717377 0.878113 0.980255 0.717377 0.896759 0.980774 0.717377 0.913727 0.981262 0.717377 0.929199 0.981720 0.717377 0.943237 0.982208 0.717377 0.955963 0.982635 0.717377 0.967468 0.983063 0.717377 0.977753 0.983490 0.717377 0.986938 0.983887 0.717377 0.994934 0.984314 0.717377 0.044434 0.005768 0.785828 0.066467 0.006592 0.785431 0.089539 0.007477 0.785034 0.113708 0.008423 0.784607 0.139008 0.009277 0.784149 0.165771 0.010284 0.783691 0.193909 0.011230 0.783203 0.223785 0.012207 0.782715 0.255554 0.013275 0.782196 0.289398 0.014313 0.781677 0.325409 0.015381 0.781097 0.363495 0.016541 0.780518 0.403198 0.017609 0.779968 0.444611 0.018799 0.779388 0.487366 0.019928 0.778748 0.531036 0.021118 0.778168 0.574738 0.022339 0.777435 0.616882 0.023560 0.776825 0.657104 0.024841 0.776184 0.695099 0.026093 0.775513 0.730347 0.027405 0.774841 0.762878 0.028687 0.774139 0.792450 0.030060 0.773438 0.819153 0.031342 0.772736 0.843475 0.032745 0.772003 0.865540 0.034149 0.771240 0.885559 0.035492 0.770569 0.903839 0.036957 0.769806 0.920471 0.038391 0.769073 0.935608 0.039825 0.768341 0.949310 0.041290 0.767578 0.961731 0.042725 0.766815 0.046112 0.027252 0.785034 0.068298 0.028137 0.784607 0.091461 0.029083 0.784180 0.115784 0.030121 0.783691 0.141266 0.031097 0.783234 0.168152 0.032135 0.782745 0.196533 0.033203 0.782196 0.226654 0.034271 0.781708 0.258698 0.035400 0.781128 0.292755 0.036560 0.780548 0.329041 0.037720 0.779968 0.367310 0.038940 0.779388 0.407318 0.040161 0.778778 0.448975 0.041321 0.778168 0.491882 0.042633 0.777496 0.535706 0.043915 0.776855 0.579285 0.045197 0.776215 0.621368 0.046539 0.775543 0.661438 0.047852 0.774872 0.699158 0.049225 0.774139 0.734161 0.050598 0.773468 0.766388 0.052002 0.772766 0.795624 0.053436 0.772003 0.822083 0.054810 0.771301 0.846161 0.056305 0.770599 0.867981 0.057800 0.769806 0.887848 0.059265 0.769104 0.905914 0.060791 0.768341 0.922394 0.062317 0.767578 0.937317 0.063812 0.766846 0.950897 0.065399 0.766113 0.963165 0.066925 0.765350 0.047913 0.049683 0.784180 0.070221 0.050690 0.783722 0.093506 0.051758 0.783234 0.117981 0.052795 0.782745 0.143646 0.053894 0.782196 0.170685 0.055054 0.781708 0.199280 0.056213 0.781158 0.229675 0.057404 0.780548 0.261902 0.058594 0.779999 0.296295 0.059814 0.779419 0.332825 0.061096 0.778778 0.371338 0.062378 0.778198 0.411591 0.063721 0.777527 0.453430 0.065063 0.776855 0.496490 0.066376 0.776215 0.540497 0.067749 0.775574 0.584015 0.069153 0.774872 0.625885 0.070526 0.774170 0.665741 0.072021 0.773468 0.703278 0.073486 0.772766 0.738037 0.074921 0.772034 0.769928 0.076416 0.771332 0.798889 0.077972 0.770599 0.825043 0.079437 0.769836 0.848846 0.081024 0.769104 0.870453 0.082611 0.768372 0.890106 0.084167 0.767609 0.907990 0.085785 0.766846 0.924255 0.087372 0.766113 0.939056 0.089020 0.765350 0.952515 0.090698 0.764587 0.964600 0.092285 0.763885 0.049805 0.073181 0.783264 0.072205 0.074310 0.782776 0.095673 0.075439 0.782227 0.120239 0.076599 0.781738 0.146088 0.077820 0.781158 0.173370 0.079071 0.780579 0.202179 0.080353 0.780029 0.232727 0.081635 0.779419 0.265228 0.082947 0.778809 0.299927 0.084259 0.778198 0.336700 0.085663 0.777527 0.375519 0.087006 0.776886 0.415955 0.088409 0.776245 0.458038 0.089874 0.775574 0.501251 0.091339 0.774902 0.545349 0.092773 0.774170 0.588776 0.094299 0.773499 0.630493 0.095795 0.772797 0.670227 0.097382 0.772064 0.707397 0.098938 0.771332 0.741882 0.100494 0.770630 0.773468 0.102081 0.769867 0.802124 0.103760 0.769135 0.828003 0.105347 0.768402 0.851532 0.106995 0.767639 0.872955 0.108704 0.766907 0.892365 0.110382 0.766144 0.910095 0.112091 0.765381 0.926147 0.113800 0.764618 0.940796 0.115509 0.763885 0.954071 0.117279 0.763123 0.966034 0.119019 0.762360 0.051758 0.097931 0.782227 0.074310 0.099152 0.781738 0.097931 0.100403 0.781158 0.122681 0.101685 0.780609 0.148712 0.102997 0.780029 0.176147 0.104370 0.779449 0.205170 0.105713 0.778870 0.235962 0.107117 0.778229 0.268799 0.108551 0.777557 0.303711 0.109985 0.776917 0.340790 0.111481 0.776276 0.379791 0.112976 0.775604 0.420502 0.114441 0.774933 0.462799 0.116028 0.774200 0.506226 0.117554 0.773560 0.550354 0.119202 0.772797 0.593689 0.120789 0.772064 0.635223 0.122406 0.771362 0.674713 0.124115 0.770660 0.711639 0.125793 0.769867 0.745819 0.127441 0.769196 0.777069 0.129181 0.768402 0.805389 0.130890 0.767639 0.831024 0.132629 0.766937 0.854279 0.134399 0.766144 0.875397 0.136139 0.765442 0.894653 0.137970 0.764679 0.912170 0.139832 0.763916 0.928040 0.141602 0.763153 0.942535 0.143494 0.762390 0.955627 0.145355 0.761597 0.967438 0.147156 0.760895 0.053833 0.124023 0.781189 0.076508 0.125366 0.780609 0.100250 0.126740 0.780029 0.125183 0.128113 0.779480 0.151367 0.129547 0.778870 0.179047 0.131042 0.778229 0.208252 0.132477 0.777588 0.239319 0.134033 0.776917 0.272400 0.135559 0.776276 0.307617 0.137115 0.775635 0.344940 0.138733 0.774933 0.384216 0.140350 0.774231 0.425171 0.141998 0.773560 0.467682 0.143677 0.772797 0.511200 0.145325 0.772156 0.555450 0.147034 0.771393 0.598663 0.148804 0.770660 0.639984 0.150513 0.769958 0.679199 0.152344 0.769226 0.715881 0.154144 0.768433 0.749756 0.155945 0.767731 0.780609 0.157776 0.766968 0.808624 0.159637 0.766174 0.833954 0.161499 0.765442 0.856995 0.163391 0.764679 0.877869 0.165283 0.763947 0.896881 0.167206 0.763153 0.914246 0.169159 0.762390 0.929962 0.171112 0.761688 0.944244 0.173065 0.760895 0.957184 0.175110 0.760162 0.968842 0.177063 0.759430 0.055969 0.151520 0.780060 0.078827 0.153046 0.779480 0.102753 0.154541 0.778900 0.127808 0.156067 0.778229 0.154205 0.157654 0.777588 0.182068 0.159241 0.776978 0.211487 0.160828 0.776306 0.242828 0.162476 0.775635 0.276184 0.164185 0.774933 0.311646 0.165863 0.774292 0.349274 0.167633 0.773590 0.388763 0.169312 0.772827 0.429962 0.171112 0.772156 0.472626 0.172943 0.771423 0.516327 0.174744 0.770691 0.560577 0.176605 0.769958 0.603699 0.178467 0.769226 0.644806 0.180328 0.768463 0.683777 0.182251 0.767731 0.720154 0.184204 0.766968 0.753662 0.186127 0.766205 0.784210 0.188141 0.765472 0.811859 0.190094 0.764709 0.836945 0.192108 0.763947 0.859711 0.194153 0.763184 0.880341 0.196167 0.762451 0.899170 0.198212 0.761688 0.916290 0.200348 0.760925 0.931824 0.202423 0.760193 0.945953 0.204559 0.759460 0.958710 0.206665 0.758728 0.970245 0.208771 0.757996 0.058228 0.180786 0.778931 0.081238 0.182404 0.778259 0.105286 0.184082 0.777618 0.130524 0.185699 0.777008 0.157104 0.187439 0.776337 0.185150 0.189209 0.775665 0.214844 0.190948 0.774963 0.246429 0.192749 0.774292 0.280060 0.194580 0.773590 0.315826 0.196381 0.772858 0.353729 0.198242 0.772186 0.393433 0.200134 0.771454 0.434906 0.202118 0.770691 0.477783 0.204041 0.769989 0.521637 0.205994 0.769226 0.565796 0.207977 0.768463 0.608734 0.210052 0.767761 0.649597 0.212036 0.766998 0.688324 0.214172 0.766205 0.724396 0.216248 0.765472 0.757568 0.218323 0.764740 0.787811 0.220459 0.763947 0.815094 0.222565 0.763214 0.839905 0.224731 0.762451 0.862396 0.226929 0.761719 0.882812 0.229126 0.760956 0.901428 0.231323 0.760193 0.918335 0.233612 0.759460 0.933716 0.235748 0.758759 0.947632 0.238037 0.757996 0.960266 0.240356 0.757294 0.971588 0.242615 0.756592 0.060547 0.211945 0.777649 0.083679 0.213684 0.777008 0.107941 0.215546 0.776337 0.133331 0.217346 0.775696 0.160095 0.219208 0.774963 0.188385 0.221100 0.774323 0.218292 0.222992 0.773621 0.250122 0.224945 0.772858 0.283997 0.226929 0.772217 0.320099 0.228912 0.771454 0.358246 0.231018 0.770752 0.398254 0.233063 0.770020 0.439941 0.235107 0.769257 0.482971 0.237244 0.768494 0.526978 0.239380 0.767792 0.571106 0.241547 0.767029 0.613800 0.243744 0.766235 0.654510 0.245911 0.765503 0.692932 0.248169 0.764740 0.728638 0.250366 0.763977 0.761505 0.252716 0.763214 0.791351 0.255005 0.762512 0.818359 0.257233 0.761749 0.842804 0.259613 0.760956 0.865082 0.261993 0.760223 0.885254 0.264282 0.759491 0.903625 0.266693 0.758759 0.920349 0.269135 0.758026 0.935547 0.271454 0.757294 0.949310 0.273956 0.756592 0.961731 0.276337 0.755920 0.972931 0.278809 0.755157 0.062958 0.245148 0.776367 0.086243 0.247101 0.775696 0.110657 0.249146 0.774994 0.136230 0.251068 0.774353 0.163177 0.253143 0.773651 0.191650 0.255219 0.772919 0.221802 0.257263 0.772217 0.253906 0.259430 0.771484 0.288116 0.261536 0.770782 0.324493 0.263763 0.770020 0.362946 0.266022 0.769257 0.403137 0.268188 0.768555 0.445038 0.270538 0.767792 0.488220 0.272827 0.767029 0.532410 0.275116 0.766266 0.576447 0.277466 0.765533 0.618958 0.279846 0.764771 0.659363 0.282227 0.764008 0.697540 0.284637 0.763275 0.732910 0.287018 0.762543 0.765381 0.289490 0.761749 0.794922 0.291992 0.761017 0.821594 0.294464 0.760254 0.845764 0.296997 0.759521 0.867737 0.299561 0.758789 0.887695 0.302063 0.758057 0.905823 0.304596 0.757324 0.922363 0.307190 0.756622 0.937378 0.309753 0.755951 0.950958 0.312347 0.755188 0.963226 0.314911 0.754517 0.974274 0.317566 0.753815 0.065491 0.280823 0.775024 0.088898 0.282959 0.774353 0.113464 0.285156 0.773651 0.139191 0.287323 0.772949 0.166382 0.289520 0.772247 0.195038 0.291779 0.771515 0.225433 0.294098 0.770782 0.257843 0.296448 0.770050 0.292267 0.298737 0.769318 0.328979 0.301117 0.768585 0.367676 0.303589 0.767792 0.408112 0.306000 0.767059 0.450226 0.308441 0.766327 0.493591 0.310944 0.765533 0.537872 0.313385 0.764801 0.581757 0.315948 0.764008 0.623993 0.318420 0.763306 0.664276 0.321014 0.762543 0.702087 0.323639 0.761780 0.737122 0.326202 0.761047 0.769257 0.328888 0.760284 0.798431 0.331512 0.759521 0.824738 0.334198 0.758850 0.848663 0.336823 0.758057 0.870361 0.339600 0.757355 0.890076 0.342224 0.756653 0.908020 0.344940 0.755951 0.924316 0.347656 0.755219 0.939148 0.350433 0.754517 0.952576 0.353149 0.753815 0.964691 0.355865 0.753174 0.975586 0.358673 0.752533 0.068024 0.319031 0.773682 0.091644 0.321350 0.772949 0.116364 0.323700 0.772247 0.142273 0.326050 0.771576 0.169647 0.328491 0.770813 0.198486 0.330902 0.770081 0.229218 0.333435 0.769318 0.261810 0.335938 0.768585 0.296600 0.338440 0.767822 0.333527 0.340973 0.767090 0.372498 0.343628 0.766327 0.413208 0.346191 0.765625 0.455505 0.348846 0.764832 0.499054 0.351501 0.764038 0.543365 0.354126 0.763336 0.587097 0.356873 0.762573 0.629181 0.359497 0.761810 0.669128 0.362274 0.761047 0.706635 0.365051 0.760284 0.741364 0.367767 0.759552 0.773102 0.370575 0.758850 0.801910 0.373413 0.758118 0.827881 0.376221 0.757416 0.851501 0.379059 0.756653 0.872955 0.381866 0.755951 0.892456 0.384705 0.755219 0.910187 0.387604 0.754547 0.926270 0.390350 0.753876 0.940948 0.393250 0.753235 0.954193 0.396210 0.752533 0.966125 0.398987 0.751953 0.976837 0.401917 0.751251 0.070679 0.359589 0.772278 0.094421 0.362091 0.771576 0.119293 0.364594 0.770844 0.145416 0.367188 0.770081 0.172974 0.369843 0.769379 0.202118 0.372406 0.768616 0.233032 0.375000 0.767822 0.265930 0.377716 0.767120 0.300964 0.380371 0.766357 0.338226 0.383118 0.765625 0.377441 0.385864 0.764832 0.418396 0.388611 0.764099 0.460846 0.391449 0.763336 0.504425 0.394226 0.762604 0.548981 0.397064 0.761810 0.592499 0.399933 0.761078 0.634308 0.402740 0.760315 0.674042 0.405670 0.759613 0.711212 0.408600 0.758881 0.745514 0.411438 0.758148 0.776886 0.414398 0.757416 0.805328 0.417328 0.756683 0.831024 0.420258 0.755981 0.854370 0.423218 0.755249 0.875519 0.426178 0.754547 0.894775 0.429138 0.753906 0.912292 0.432129 0.753235 0.928192 0.435028 0.752563 0.942657 0.438080 0.751953 0.955750 0.441010 0.751282 0.967529 0.444000 0.750671 0.978088 0.446960 0.750122 0.073395 0.402374 0.770844 0.097290 0.405060 0.770111 0.122314 0.407715 0.769409 0.148621 0.410461 0.768646 0.176361 0.413208 0.767853 0.205719 0.415924 0.767181 0.236877 0.418793 0.766388 0.270081 0.421600 0.765656 0.305420 0.424408 0.764862 0.342957 0.427307 0.764130 0.382416 0.430237 0.763367 0.423553 0.433136 0.762604 0.466248 0.436035 0.761871 0.510010 0.438904 0.761108 0.554443 0.441925 0.760345 0.597839 0.444977 0.759644 0.639496 0.447876 0.758911 0.678864 0.450897 0.758148 0.715729 0.453949 0.757446 0.749664 0.456909 0.756714 0.780640 0.459961 0.756012 0.808746 0.463074 0.755249 0.834106 0.465973 0.754578 0.857147 0.469086 0.753906 0.878052 0.472076 0.753265 0.897064 0.475159 0.752594 0.914398 0.478241 0.751984 0.930115 0.481293 0.751343 0.944366 0.484344 0.750702 0.957306 0.487427 0.750122 0.968933 0.490417 0.749573 0.979340 0.493439 0.749207 0.076172 0.447052 0.769409 0.100220 0.449860 0.768646 0.125397 0.452637 0.767914 0.151917 0.455536 0.767181 0.179871 0.458466 0.766388 0.209442 0.461304 0.765686 0.240875 0.464264 0.764893 0.274353 0.467224 0.764130 0.309998 0.470154 0.763397 0.347778 0.473175 0.762634 0.387451 0.476166 0.761902 0.428833 0.479187 0.761108 0.471710 0.482269 0.760345 0.515564 0.485260 0.759674 0.560059 0.488342 0.758911 0.603271 0.491455 0.758179 0.644531 0.494476 0.757477 0.683685 0.497589 0.756714 0.720184 0.500732 0.756012 0.753754 0.503815 0.755310 0.784393 0.506927 0.754608 0.812073 0.510071 0.753937 0.837128 0.513153 0.753265 0.859894 0.516296 0.752594 0.880554 0.519348 0.752014 0.899323 0.522491 0.751343 0.916443 0.525635 0.750702 0.931946 0.528717 0.750153 0.946045 0.531799 0.749573 0.958801 0.534912 0.749207 0.970245 0.537994 0.749207 0.980469 0.541016 0.749207 0.079010 0.493256 0.767944 0.103180 0.496216 0.767212 0.128540 0.499084 0.766418 0.155212 0.502136 0.765686 0.183411 0.505127 0.764893 0.213226 0.508087 0.764160 0.244934 0.511139 0.763397 0.278687 0.514221 0.762634 0.314606 0.517273 0.761932 0.352631 0.520386 0.761139 0.392517 0.523407 0.760376 0.434143 0.526550 0.759674 0.477173 0.529724 0.758942 0.521240 0.532745 0.758209 0.565582 0.535919 0.757477 0.608612 0.539062 0.756775 0.649689 0.542175 0.756042 0.688446 0.545319 0.755341 0.724579 0.548492 0.754608 0.757782 0.551544 0.753967 0.788025 0.554657 0.753296 0.815338 0.557709 0.752655 0.840118 0.560822 0.752014 0.862610 0.563934 0.751373 0.882996 0.566895 0.750763 0.901550 0.569977 0.750153 0.918427 0.573059 0.749573 0.933777 0.575958 0.749207 0.947662 0.579010 0.749207 0.960297 0.582001 0.749207 0.971558 0.584930 0.749207 0.981659 0.587860 0.749207 0.081879 0.540680 0.766449 0.106232 0.543671 0.765717 0.131744 0.546631 0.764984 0.158630 0.549652 0.764191 0.187012 0.552704 0.763428 0.217072 0.555725 0.762726 0.248993 0.558807 0.761932 0.283081 0.561859 0.761169 0.319305 0.564850 0.760437 0.357544 0.567932 0.759705 0.397705 0.570984 0.758972 0.439545 0.574036 0.758209 0.482697 0.577087 0.757507 0.526917 0.580109 0.756805 0.571136 0.583130 0.756073 0.613922 0.586243 0.755341 0.654755 0.589172 0.754669 0.693176 0.592224 0.753967 0.728943 0.595276 0.753296 0.761780 0.598206 0.752686 0.791626 0.601196 0.752045 0.818573 0.604095 0.751404 0.843048 0.607086 0.750763 0.865234 0.610077 0.750183 0.885406 0.612915 0.749603 0.903717 0.615875 0.749207 0.920410 0.618744 0.749207 0.935547 0.621582 0.749207 0.949280 0.624390 0.749207 0.961731 0.627228 0.749207 0.972839 0.629913 0.749207 0.982788 0.632721 0.749207 0.084808 0.587433 0.764984 0.109314 0.590393 0.764191 0.135010 0.593262 0.763489 0.162109 0.596252 0.762726 0.190674 0.599213 0.761963 0.220917 0.602112 0.761200 0.253143 0.605042 0.760437 0.287537 0.608032 0.759705 0.324005 0.610901 0.759003 0.362579 0.613892 0.758270 0.402924 0.616791 0.757538 0.444977 0.619720 0.756836 0.488281 0.622681 0.756073 0.532532 0.625580 0.755371 0.576630 0.628479 0.754700 0.619171 0.631378 0.753998 0.659668 0.634247 0.753326 0.697876 0.637115 0.752686 0.733215 0.639984 0.752045 0.765686 0.642761 0.751404 0.795166 0.645599 0.750793 0.821777 0.648376 0.750214 0.845947 0.651154 0.749603 0.867828 0.653900 0.749207 0.887756 0.656616 0.749207 0.905853 0.659332 0.749207 0.922333 0.662048 0.749207 0.937286 0.664642 0.749207 0.950836 0.667328 0.749207 0.963104 0.669952 0.749207 0.974060 0.672485 0.749207 0.983887 0.675079 0.749207 0.087799 0.632416 0.763489 0.112457 0.635223 0.762756 0.138306 0.637970 0.761993 0.165619 0.640869 0.761200 0.194427 0.643677 0.760468 0.224854 0.646454 0.759735 0.257324 0.649231 0.759003 0.291962 0.651978 0.758301 0.328735 0.654816 0.757538 0.367584 0.657623 0.756836 0.408112 0.660370 0.756104 0.450348 0.663116 0.755402 0.493835 0.665894 0.754700 0.538177 0.668610 0.754028 0.582123 0.671326 0.753387 0.624390 0.674072 0.752716 0.664612 0.676758 0.752075 0.702454 0.679413 0.751404 0.737488 0.682098 0.750793 0.769501 0.684692 0.750214 0.798584 0.687347 0.749634 0.824860 0.689880 0.749207 0.848724 0.692474 0.749207 0.870392 0.695068 0.749207 0.890045 0.697571 0.749207 0.907928 0.700073 0.749207 0.924194 0.702515 0.749207 0.938995 0.704926 0.749207 0.952362 0.707367 0.749207 0.964417 0.709717 0.749207 0.975281 0.712097 0.749207 0.984924 0.714447 0.749207 0.090790 0.674957 0.761993 0.115631 0.677612 0.761230 0.141632 0.680206 0.760498 0.169128 0.682922 0.759766 0.198151 0.685547 0.759064 0.228882 0.688171 0.758301 0.261627 0.690765 0.757568 0.296539 0.693359 0.756866 0.333557 0.696045 0.756134 0.372650 0.698608 0.755402 0.413391 0.701141 0.754730 0.455780 0.703766 0.754028 0.499390 0.706329 0.753387 0.543762 0.708801 0.752716 0.587524 0.711304 0.752075 0.629578 0.713867 0.751434 0.669464 0.716278 0.750824 0.706970 0.718781 0.750214 0.741577 0.721161 0.749664 0.773254 0.723633 0.749207 0.801971 0.726044 0.749207 0.827911 0.728333 0.749207 0.851471 0.730713 0.749207 0.872864 0.733032 0.749207 0.892273 0.735352 0.749207 0.909973 0.737579 0.749207 0.926025 0.739868 0.749207 0.940613 0.742035 0.749207 0.953827 0.744202 0.749207 0.965759 0.746338 0.749207 0.976440 0.748444 0.749207 0.985931 0.750549 0.749207 0.093842 0.714600 0.760498 0.118835 0.717102 0.759766 0.145050 0.719543 0.759094 0.172699 0.721985 0.758331 0.201904 0.724396 0.757629 0.232910 0.726868 0.756866 0.265961 0.729279 0.756134 0.301056 0.731659 0.755432 0.338379 0.734070 0.754761 0.377686 0.736450 0.754028 0.418732 0.738800 0.753418 0.461212 0.741180 0.752747 0.504974 0.743500 0.752106 0.549347 0.745789 0.751495 0.592865 0.748108 0.750854 0.634613 0.750305 0.750244 0.674255 0.752563 0.749664 0.711365 0.754822 0.749207 0.745605 0.756989 0.749207 0.776917 0.759216 0.749207 0.805298 0.761353 0.749207 0.830902 0.763428 0.749207 0.854156 0.765594 0.749207 0.875305 0.767639 0.749207 0.894470 0.769684 0.749207 0.911926 0.771698 0.749207 0.927795 0.773773 0.749207 0.942169 0.775665 0.749207 0.955261 0.777588 0.749207 0.967041 0.779480 0.749207 0.977570 0.781372 0.749207 0.986938 0.783234 0.749207 0.096954 0.751038 0.759094 0.122101 0.753326 0.758362 0.148438 0.755524 0.757629 0.176300 0.757812 0.756897 0.205750 0.759979 0.756195 0.236969 0.762207 0.755463 0.270294 0.764465 0.754761 0.305664 0.766571 0.754120 0.343292 0.768738 0.753448 0.382751 0.770935 0.752747 0.423981 0.773010 0.752167 0.466644 0.775146 0.751495 0.510468 0.777283 0.750854 0.554840 0.779297 0.750275 0.598206 0.781372 0.749695 0.639679 0.783356 0.749207 0.679047 0.785370 0.749207 0.715790 0.787354 0.749207 0.749603 0.789337 0.749207 0.780518 0.791229 0.749207 0.808502 0.793213 0.749207 0.833771 0.795074 0.749207 0.856750 0.796967 0.749207 0.877655 0.798798 0.749207 0.896576 0.800568 0.749207 0.913849 0.802399 0.749207 0.929504 0.804108 0.749207 0.943787 0.805878 0.749207 0.956635 0.807587 0.749207 0.968262 0.809204 0.749207 0.978668 0.810913 0.749207 0.987854 0.812561 0.749207 0.100037 0.784058 0.757660 0.125336 0.786072 0.756927 0.151917 0.788116 0.756226 0.179962 0.790161 0.755463 0.209564 0.792114 0.754822 0.241058 0.794098 0.754120 0.274628 0.796082 0.753448 0.310272 0.798004 0.752808 0.348145 0.800018 0.752167 0.387848 0.801910 0.751526 0.429199 0.803802 0.750885 0.472046 0.805664 0.750275 0.515900 0.807526 0.749695 0.560272 0.809387 0.749207 0.603394 0.811218 0.749207 0.644531 0.813019 0.749207 0.683655 0.814819 0.749207 0.720001 0.816589 0.749207 0.753479 0.818329 0.749207 0.784027 0.820038 0.749207 0.811646 0.821777 0.749207 0.836639 0.823425 0.749207 0.859314 0.825073 0.749207 0.879944 0.826721 0.749207 0.898651 0.828308 0.749207 0.915710 0.829926 0.749207 0.931183 0.831451 0.749207 0.945251 0.833008 0.749207 0.957977 0.834534 0.749207 0.969452 0.835968 0.749207 0.979706 0.837463 0.749207 0.988770 0.838898 0.749207 0.103180 0.813690 0.756226 0.128632 0.815552 0.755524 0.155365 0.817352 0.754852 0.183624 0.819183 0.754120 0.213470 0.820953 0.753479 0.245209 0.822754 0.752838 0.278992 0.824524 0.752197 0.314911 0.826233 0.751526 0.352966 0.828003 0.750885 0.392914 0.829742 0.750305 0.434479 0.831421 0.749756 0.477417 0.833130 0.749207 0.521362 0.834778 0.749207 0.565674 0.836456 0.749207 0.608490 0.838074 0.749207 0.649445 0.839661 0.749207 0.688171 0.841278 0.749207 0.724152 0.842834 0.749207 0.757294 0.844391 0.749207 0.787384 0.845947 0.749207 0.814667 0.847473 0.749207 0.839355 0.848907 0.749207 0.861786 0.850403 0.749207 0.882080 0.851807 0.749207 0.900635 0.853271 0.749207 0.917511 0.854675 0.749207 0.932800 0.856018 0.749207 0.946686 0.857422 0.749207 0.959259 0.858765 0.749207 0.970581 0.860016 0.749207 0.980682 0.861328 0.749207 0.989624 0.862640 0.749207 0.106354 0.840424 0.754852 0.131897 0.842010 0.754150 0.158844 0.843689 0.753510 0.187286 0.845337 0.752838 0.217346 0.846893 0.752197 0.249298 0.848511 0.751587 0.283417 0.850128 0.750916 0.319580 0.851654 0.750305 0.357849 0.853241 0.749756 0.397919 0.854767 0.749207 0.439667 0.856293 0.749207 0.482758 0.857788 0.749207 0.526794 0.859283 0.749207 0.570892 0.860779 0.749207 0.613556 0.862213 0.749207 0.654175 0.863647 0.749207 0.692566 0.865082 0.749207 0.728210 0.866486 0.749207 0.760925 0.867859 0.749207 0.790680 0.869202 0.749207 0.817657 0.870575 0.749207 0.842010 0.871887 0.749207 0.864136 0.873199 0.749207 0.884247 0.874451 0.749207 0.902557 0.875732 0.749207 0.919220 0.877014 0.749207 0.934326 0.878174 0.749207 0.948090 0.879395 0.749207 0.960480 0.880585 0.749207 0.971680 0.881714 0.749207 0.981628 0.882843 0.749207 0.990448 0.883972 0.749207 0.109497 0.864441 0.753510 0.135223 0.865906 0.752869 0.162323 0.867401 0.752228 0.190979 0.868866 0.751587 0.221222 0.870300 0.750977 0.253418 0.871735 0.750336 0.287781 0.873169 0.749756 0.324219 0.874573 0.749207 0.362671 0.875946 0.749207 0.402954 0.877350 0.749207 0.444855 0.878693 0.749207 0.488098 0.880066 0.749207 0.532166 0.881348 0.749207 0.576141 0.882690 0.749207 0.618500 0.884003 0.749207 0.658844 0.885284 0.749207 0.696869 0.886536 0.749207 0.732178 0.887817 0.749207 0.764526 0.889038 0.749207 0.793915 0.890228 0.749207 0.820465 0.891418 0.749207 0.844574 0.892609 0.749207 0.866455 0.893738 0.749207 0.886322 0.894867 0.749207 0.904419 0.895996 0.749207 0.920898 0.897095 0.749207 0.935822 0.898163 0.749207 0.949402 0.899231 0.749207 0.961700 0.900269 0.749207 0.972717 0.901276 0.749207 0.982544 0.902283 0.749207 0.991211 0.903229 0.749207 0.112671 0.886108 0.752228 0.138550 0.887451 0.751617 0.165863 0.888763 0.750977 0.194672 0.890106 0.750336 0.225128 0.891388 0.749786 0.257538 0.892700 0.749207 0.292053 0.893921 0.749207 0.328796 0.895203 0.749207 0.367554 0.896484 0.749207 0.407990 0.897705 0.749207 0.450012 0.898926 0.749207 0.493286 0.900116 0.749207 0.537415 0.901306 0.749207 0.581207 0.902496 0.749207 0.623322 0.903656 0.749207 0.663361 0.904785 0.749207 0.701050 0.905914 0.749207 0.735992 0.907043 0.749207 0.767944 0.908112 0.749207 0.796997 0.909210 0.749207 0.823242 0.910217 0.749207 0.847046 0.911285 0.749207 0.868713 0.912292 0.749207 0.888336 0.913269 0.749207 0.906189 0.914307 0.749207 0.922516 0.915283 0.749207 0.937286 0.916199 0.749207 0.950714 0.917145 0.749207 0.962830 0.918060 0.749207 0.973724 0.918945 0.749207 0.983398 0.919800 0.749207 0.991943 0.920624 0.749207 0.115875 0.905670 0.750977 0.141846 0.906891 0.750397 0.169312 0.908081 0.749817 0.198334 0.909271 0.749237 0.229034 0.910400 0.749207 0.261719 0.911560 0.749207 0.296478 0.912689 0.749207 0.333435 0.913849 0.749207 0.372314 0.914978 0.749207 0.412933 0.916077 0.749207 0.455109 0.917175 0.749207 0.498474 0.918213 0.749207 0.542633 0.919250 0.749207 0.586212 0.920349 0.749207 0.628052 0.921387 0.749207 0.667786 0.922394 0.749207 0.705078 0.923370 0.749207 0.739624 0.924347 0.749207 0.771301 0.925323 0.749207 0.799988 0.926270 0.749207 0.825897 0.927216 0.749207 0.849457 0.928131 0.749207 0.870819 0.929047 0.749207 0.890228 0.929901 0.749207 0.907928 0.930756 0.749207 0.924011 0.931641 0.749207 0.938629 0.932465 0.749207 0.951904 0.933289 0.749207 0.963867 0.934082 0.749207 0.974640 0.934845 0.749207 0.984222 0.935638 0.749207 0.992645 0.936371 0.749207 0.119049 0.923340 0.749817 0.145203 0.924408 0.749268 0.172821 0.925507 0.749207 0.201935 0.926514 0.749207 0.232880 0.927612 0.749207 0.265778 0.928619 0.749207 0.300781 0.929657 0.749207 0.337952 0.930634 0.749207 0.377075 0.931641 0.749207 0.417816 0.932648 0.749207 0.460052 0.933624 0.749207 0.503571 0.934570 0.749207 0.547668 0.935516 0.749207 0.591003 0.936432 0.749207 0.632599 0.937317 0.749207 0.672028 0.938232 0.749207 0.709045 0.939117 0.749207 0.743225 0.940002 0.749207 0.774475 0.940857 0.749207 0.802795 0.941711 0.749207 0.828461 0.942505 0.749207 0.851715 0.943298 0.749207 0.872864 0.944092 0.749207 0.892029 0.944885 0.749207 0.909546 0.945648 0.749207 0.925476 0.946411 0.749207 0.939972 0.947113 0.749207 0.953064 0.947845 0.749207 0.964874 0.948486 0.749207 0.975525 0.949219 0.749207 0.984985 0.949860 0.749207 0.993317 0.950500 0.749207 0.122192 0.939270 0.749207 0.148529 0.940216 0.749207 0.176270 0.941193 0.749207 0.205627 0.942139 0.749207 0.236755 0.943085 0.749207 0.269867 0.944000 0.749207 0.305084 0.944885 0.749207 0.342468 0.945801 0.749207 0.381775 0.946686 0.749207 0.422668 0.947571 0.749207 0.465027 0.948364 0.749207 0.508575 0.949249 0.749207 0.552612 0.950073 0.749207 0.595673 0.950897 0.749207 0.637024 0.951691 0.749207 0.676147 0.952515 0.749207 0.712860 0.953278 0.749207 0.746674 0.954010 0.749207 0.777557 0.954773 0.749207 0.805573 0.955505 0.749207 0.830902 0.956238 0.749207 0.853912 0.956940 0.749207 0.874817 0.957642 0.749207 0.893829 0.958313 0.749207 0.911102 0.958984 0.749207 0.926849 0.959625 0.749207 0.941193 0.960266 0.749207 0.954163 0.960876 0.749207 0.965851 0.961456 0.749207 0.976379 0.962067 0.749207 0.985718 0.962616 0.749207 0.993927 0.963165 0.749207 0.125336 0.953613 0.749207 0.151764 0.954437 0.749207 0.179718 0.955292 0.749207 0.209259 0.956116 0.749207 0.240570 0.956940 0.749207 0.273895 0.957794 0.749207 0.309387 0.958557 0.749207 0.346924 0.959351 0.749207 0.386353 0.960144 0.749207 0.427429 0.960907 0.749207 0.469849 0.961670 0.749207 0.513458 0.962402 0.749207 0.557434 0.963135 0.749207 0.600311 0.963867 0.749207 0.641357 0.964569 0.749207 0.680176 0.965271 0.749207 0.716522 0.965942 0.749207 0.750000 0.966614 0.749207 0.780518 0.967255 0.749207 0.808228 0.967896 0.749207 0.833252 0.968506 0.749207 0.856018 0.969116 0.749207 0.876678 0.969727 0.749207 0.895477 0.970306 0.749207 0.912567 0.970856 0.749207 0.928131 0.971436 0.749207 0.942322 0.971985 0.749207 0.955200 0.972504 0.749207 0.966736 0.973022 0.749207 0.977142 0.973511 0.749207 0.986389 0.974030 0.749207 0.994476 0.974487 0.749207 0.128418 0.966370 0.749207 0.155060 0.967163 0.749207 0.183167 0.967896 0.749207 0.212830 0.968597 0.749207 0.244385 0.969391 0.749207 0.277924 0.970062 0.749207 0.313568 0.970764 0.749207 0.351349 0.971466 0.749207 0.390900 0.972168 0.749207 0.432037 0.972839 0.749207 0.474670 0.973511 0.749207 0.518188 0.974121 0.749207 0.562103 0.974762 0.749207 0.604767 0.975372 0.749207 0.645447 0.976013 0.749207 0.684021 0.976593 0.749207 0.720032 0.977173 0.749207 0.753143 0.977753 0.749207 0.783386 0.978333 0.749207 0.810730 0.978882 0.749207 0.835480 0.979401 0.749207 0.858002 0.979919 0.749207 0.878418 0.980438 0.749207 0.897034 0.980957 0.749207 0.913971 0.981415 0.749207 0.929443 0.981903 0.749207 0.943420 0.982391 0.749207 0.956146 0.982819 0.749207 0.967590 0.983246 0.749207 0.977875 0.983673 0.749207 0.987000 0.984039 0.749207 0.995026 0.984436 0.749207 0.044708 0.006073 0.811584 0.066833 0.006958 0.811188 0.089935 0.007843 0.810822 0.114075 0.008698 0.810425 0.139465 0.009674 0.809998 0.166138 0.010590 0.809601 0.194427 0.011627 0.809143 0.224365 0.012604 0.808716 0.256134 0.013672 0.808228 0.290039 0.014709 0.807709 0.326080 0.015808 0.807190 0.364105 0.016876 0.806671 0.404022 0.018036 0.806122 0.445404 0.019196 0.805603 0.488129 0.020355 0.805054 0.531921 0.021545 0.804443 0.575531 0.022797 0.803894 0.617676 0.024048 0.803284 0.657928 0.025269 0.802673 0.695801 0.026581 0.802063 0.731079 0.027893 0.801422 0.763550 0.029175 0.800781 0.793030 0.030518 0.800140 0.819733 0.031891 0.799500 0.843964 0.033264 0.798859 0.865967 0.034607 0.798218 0.885986 0.036041 0.797485 0.904236 0.037476 0.796844 0.920807 0.038910 0.796173 0.935913 0.040375 0.795502 0.949615 0.041809 0.794800 0.962006 0.043304 0.794098 0.046448 0.027527 0.810852 0.068665 0.028503 0.810425 0.091827 0.029449 0.810028 0.116180 0.030457 0.809601 0.141693 0.031494 0.809143 0.168579 0.032501 0.808716 0.197052 0.033630 0.808228 0.227234 0.034698 0.807739 0.259247 0.035828 0.807220 0.293396 0.036987 0.806671 0.329742 0.038177 0.806152 0.367981 0.039337 0.805634 0.408112 0.040588 0.805054 0.449738 0.041809 0.804443 0.492676 0.043091 0.803894 0.536621 0.044403 0.803284 0.580200 0.045685 0.802704 0.622162 0.047028 0.802063 0.662262 0.048370 0.801422 0.699921 0.049744 0.800812 0.734894 0.051147 0.800171 0.767059 0.052551 0.799530 0.796204 0.053925 0.798889 0.822693 0.055389 0.798218 0.846649 0.056885 0.797516 0.868439 0.058319 0.796875 0.888275 0.059814 0.796204 0.906281 0.061310 0.795532 0.922729 0.062836 0.794830 0.937653 0.064423 0.794159 0.951202 0.065948 0.793488 0.963440 0.067535 0.792755 0.048218 0.050018 0.810028 0.070526 0.051086 0.809631 0.093903 0.052094 0.809174 0.118378 0.053162 0.808746 0.144104 0.054352 0.808228 0.171173 0.055450 0.807739 0.199799 0.056610 0.807220 0.230194 0.057861 0.806702 0.262512 0.059052 0.806183 0.296936 0.060303 0.805634 0.333527 0.061584 0.805054 0.372070 0.062836 0.804474 0.412415 0.064178 0.803925 0.454224 0.065521 0.803345 0.497375 0.066864 0.802704 0.541412 0.068268 0.802063 0.584900 0.069641 0.801453 0.626770 0.071075 0.800812 0.666565 0.072540 0.800171 0.704010 0.074005 0.799561 0.738770 0.075470 0.798920 0.770630 0.077026 0.798248 0.799438 0.078491 0.797546 0.825592 0.080048 0.796875 0.849335 0.081604 0.796204 0.870911 0.083191 0.795532 0.890533 0.084747 0.794830 0.908356 0.086334 0.794189 0.924622 0.087952 0.793488 0.939392 0.089630 0.792786 0.952789 0.091278 0.792114 0.964844 0.092926 0.791412 0.050110 0.073608 0.809174 0.072601 0.074738 0.808746 0.096100 0.075897 0.808258 0.120697 0.077057 0.807770 0.146606 0.078308 0.807251 0.173889 0.079498 0.806763 0.202728 0.080841 0.806183 0.233337 0.082123 0.805634 0.265930 0.083405 0.805115 0.300659 0.084778 0.804474 0.337433 0.086121 0.803955 0.376251 0.087524 0.803345 0.416901 0.088989 0.802734 0.458862 0.090393 0.802124 0.502228 0.091858 0.801483 0.546356 0.093384 0.800842 0.589630 0.094818 0.800201 0.631409 0.096375 0.799591 0.671051 0.097961 0.798920 0.708191 0.099487 0.798248 0.742645 0.101105 0.797577 0.774170 0.102722 0.796936 0.802704 0.104309 0.796234 0.828583 0.105957 0.795563 0.852051 0.107605 0.794861 0.873383 0.109314 0.794189 0.892792 0.110992 0.793488 0.910461 0.112671 0.792816 0.926514 0.114410 0.792114 0.941132 0.116180 0.791412 0.954376 0.117889 0.790741 0.966309 0.119659 0.790100 0.052094 0.098389 0.808289 0.074738 0.099609 0.807770 0.098358 0.100861 0.807281 0.123138 0.102173 0.806763 0.149200 0.103516 0.806183 0.176666 0.104858 0.805664 0.205750 0.106232 0.805115 0.236603 0.107666 0.804504 0.269440 0.109070 0.803955 0.304413 0.110565 0.803345 0.341553 0.112000 0.802734 0.380615 0.113525 0.802155 0.421387 0.115051 0.801483 0.463654 0.116608 0.800903 0.507141 0.118195 0.800232 0.551361 0.119781 0.799591 0.594574 0.121368 0.798920 0.636108 0.123047 0.798279 0.675568 0.124725 0.797577 0.712433 0.126343 0.796967 0.746552 0.128082 0.796234 0.777710 0.129791 0.795593 0.805969 0.131500 0.794922 0.831573 0.133301 0.794220 0.854767 0.135010 0.793549 0.875885 0.136841 0.792847 0.895050 0.138672 0.792145 0.912506 0.140472 0.791443 0.928406 0.142334 0.790741 0.942871 0.144196 0.790100 0.955902 0.146027 0.789398 0.967712 0.147919 0.788727 0.054199 0.124481 0.807281 0.076965 0.125885 0.806793 0.100708 0.127228 0.806213 0.125671 0.128662 0.805664 0.151947 0.130096 0.805115 0.179565 0.131531 0.804565 0.208893 0.133057 0.803986 0.239960 0.134552 0.803375 0.273071 0.136108 0.802765 0.308380 0.137726 0.802155 0.345764 0.139282 0.801514 0.385071 0.140930 0.800934 0.426086 0.142609 0.800262 0.468567 0.144226 0.799591 0.512177 0.145966 0.798950 0.556427 0.147705 0.798279 0.599518 0.149414 0.797607 0.640900 0.151215 0.796967 0.680054 0.153015 0.796265 0.716644 0.154785 0.795593 0.750458 0.156616 0.794922 0.781311 0.158447 0.794250 0.809174 0.160309 0.793549 0.834564 0.162231 0.792847 0.857483 0.164062 0.792175 0.878357 0.166016 0.791473 0.897369 0.167969 0.790741 0.914612 0.169861 0.790131 0.930298 0.171814 0.789429 0.944580 0.173859 0.788727 0.957458 0.175781 0.788086 0.969116 0.177826 0.787354 0.056396 0.152100 0.806274 0.079285 0.153595 0.805695 0.103180 0.155090 0.805145 0.128326 0.156647 0.804565 0.154755 0.158234 0.803986 0.182617 0.159821 0.803406 0.212158 0.161469 0.802765 0.243469 0.163086 0.802185 0.276855 0.164764 0.801544 0.312439 0.166504 0.800934 0.350098 0.168213 0.800262 0.389679 0.169983 0.799652 0.430908 0.171783 0.798950 0.473572 0.173584 0.798309 0.517334 0.175415 0.797668 0.561646 0.177307 0.796997 0.604584 0.179138 0.796295 0.645691 0.181061 0.795624 0.684540 0.182922 0.794983 0.720917 0.184906 0.794250 0.754395 0.186890 0.793579 0.784851 0.188843 0.792908 0.812469 0.190857 0.792175 0.837524 0.192871 0.791473 0.860199 0.194916 0.790771 0.880829 0.196991 0.790161 0.899567 0.199036 0.789429 0.916656 0.201111 0.788757 0.932190 0.203186 0.788086 0.946259 0.205261 0.787384 0.959015 0.207397 0.786774 0.970490 0.209564 0.786072 0.058624 0.181427 0.805176 0.081696 0.183044 0.804596 0.105774 0.184662 0.804016 0.131042 0.186371 0.803406 0.157654 0.188049 0.802795 0.185730 0.189819 0.802216 0.215515 0.191589 0.801544 0.247040 0.193390 0.800964 0.280762 0.195221 0.800262 0.316620 0.197113 0.799652 0.354523 0.198944 0.798981 0.394379 0.200867 0.798340 0.435852 0.202820 0.797668 0.478699 0.204742 0.797028 0.522644 0.206757 0.796295 0.566711 0.208710 0.795654 0.609619 0.210754 0.794983 0.650574 0.212830 0.794281 0.689148 0.214874 0.793610 0.725189 0.217010 0.792938 0.758362 0.219116 0.792206 0.788452 0.221222 0.791534 0.815735 0.223358 0.790833 0.840454 0.225555 0.790161 0.862885 0.227692 0.789459 0.883270 0.229950 0.788818 0.901825 0.232208 0.788116 0.918701 0.234344 0.787415 0.934052 0.236633 0.786774 0.947937 0.238861 0.786102 0.960510 0.241150 0.785461 0.971832 0.243500 0.784760 0.061005 0.212585 0.804047 0.084198 0.214417 0.803406 0.108398 0.216187 0.802856 0.133881 0.218048 0.802216 0.160645 0.219879 0.801575 0.188965 0.221771 0.800995 0.218964 0.223755 0.800293 0.250763 0.225677 0.799683 0.284790 0.227661 0.799011 0.320923 0.229736 0.798340 0.359131 0.231720 0.797699 0.399170 0.233795 0.797058 0.440887 0.235931 0.796326 0.483887 0.238007 0.795685 0.527954 0.240204 0.795013 0.572021 0.242340 0.794312 0.614746 0.244507 0.793610 0.655426 0.246765 0.792938 0.693726 0.248962 0.792236 0.729431 0.251221 0.791534 0.762238 0.253571 0.790833 0.791992 0.255798 0.790192 0.818970 0.258118 0.789490 0.843414 0.260498 0.788818 0.865570 0.262817 0.788147 0.885742 0.265167 0.787415 0.904053 0.267578 0.786804 0.920715 0.269989 0.786133 0.935883 0.272400 0.785461 0.949615 0.274811 0.784821 0.962036 0.277252 0.784180 0.973206 0.279724 0.783539 0.063446 0.245911 0.802856 0.086731 0.247833 0.802246 0.111115 0.249817 0.801636 0.136780 0.251831 0.800995 0.163757 0.253876 0.800323 0.192291 0.255981 0.799713 0.222534 0.258118 0.799011 0.254608 0.260223 0.798370 0.288910 0.262390 0.797729 0.325348 0.264618 0.797058 0.363770 0.266815 0.796356 0.404083 0.269073 0.795685 0.445953 0.271301 0.795044 0.489166 0.273651 0.794342 0.533447 0.275970 0.793640 0.577362 0.278320 0.792969 0.619873 0.280640 0.792267 0.660309 0.283142 0.791565 0.698334 0.285492 0.790863 0.733704 0.287964 0.790222 0.766113 0.290436 0.789490 0.795532 0.292877 0.788849 0.822144 0.295441 0.788147 0.846313 0.297943 0.787445 0.868225 0.300446 0.786835 0.888153 0.302979 0.786133 0.906219 0.305481 0.785492 0.922729 0.308075 0.784821 0.937714 0.310730 0.784180 0.951263 0.313293 0.783569 0.963531 0.315887 0.782928 0.974518 0.318542 0.782318 0.065979 0.281616 0.801636 0.089386 0.283722 0.801025 0.113983 0.285950 0.800323 0.139801 0.288177 0.799713 0.166931 0.290344 0.799042 0.195709 0.292633 0.798431 0.226196 0.294983 0.797729 0.258545 0.297272 0.797089 0.293121 0.299622 0.796356 0.329803 0.302063 0.795715 0.368530 0.304382 0.795044 0.409088 0.306885 0.794342 0.451141 0.309326 0.793671 0.494598 0.311829 0.792999 0.538910 0.314331 0.792267 0.582703 0.316864 0.791626 0.625000 0.319427 0.790894 0.665161 0.321991 0.790222 0.702881 0.324554 0.789520 0.737946 0.327240 0.788879 0.770020 0.329865 0.788177 0.799011 0.332458 0.787506 0.825348 0.335205 0.786835 0.849152 0.337799 0.786163 0.870850 0.340546 0.785522 0.890533 0.343292 0.784851 0.908417 0.345978 0.784210 0.924713 0.348724 0.783600 0.939514 0.351471 0.782928 0.952881 0.354156 0.782349 0.964966 0.356934 0.781769 0.975800 0.359741 0.781128 0.068542 0.319946 0.800385 0.092133 0.322174 0.799744 0.116852 0.324554 0.799072 0.142853 0.326996 0.798431 0.170227 0.329376 0.797791 0.199188 0.331818 0.797119 0.229950 0.334351 0.796417 0.262573 0.336792 0.795746 0.297455 0.339386 0.795074 0.334412 0.341949 0.794373 0.373413 0.344543 0.793671 0.414185 0.347168 0.793030 0.456451 0.349762 0.792297 0.500000 0.352417 0.791626 0.544464 0.355164 0.790894 0.588074 0.357788 0.790253 0.630188 0.360565 0.789581 0.670074 0.363342 0.788879 0.707428 0.366028 0.788208 0.742157 0.368835 0.787537 0.773865 0.371674 0.786835 0.802521 0.374390 0.786224 0.828491 0.377258 0.785522 0.852020 0.380035 0.784912 0.873444 0.382904 0.784241 0.892883 0.385773 0.783600 0.910553 0.388580 0.782959 0.926636 0.391449 0.782379 0.941254 0.394379 0.781769 0.954468 0.397217 0.781158 0.966400 0.400085 0.780579 0.977081 0.402954 0.779999 0.071228 0.360565 0.799072 0.094910 0.363007 0.798462 0.119843 0.365601 0.797791 0.146027 0.368164 0.797119 0.173584 0.370697 0.796448 0.202789 0.373383 0.795746 0.233765 0.376068 0.795074 0.266663 0.378693 0.794403 0.301849 0.381409 0.793701 0.339081 0.384125 0.793030 0.378326 0.386902 0.792328 0.419342 0.389679 0.791656 0.461792 0.392395 0.790955 0.505554 0.395294 0.790283 0.549957 0.398102 0.789612 0.593475 0.400940 0.788910 0.635345 0.403870 0.788208 0.674957 0.406799 0.787537 0.712036 0.409607 0.786865 0.746338 0.412567 0.786224 0.777588 0.415405 0.785553 0.805939 0.418396 0.784912 0.831604 0.421356 0.784241 0.854858 0.424255 0.783630 0.876007 0.427246 0.782990 0.895233 0.430267 0.782379 0.912659 0.433167 0.781799 0.928558 0.436157 0.781189 0.942993 0.439148 0.780579 0.956024 0.442078 0.780029 0.967804 0.445099 0.779480 0.978333 0.448029 0.778931 0.073914 0.403381 0.797791 0.097809 0.406006 0.797119 0.122864 0.408722 0.796478 0.149231 0.411469 0.795776 0.177032 0.414185 0.795074 0.206451 0.417023 0.794434 0.237671 0.419830 0.793732 0.270874 0.422577 0.793030 0.306305 0.425476 0.792328 0.343811 0.428314 0.791656 0.383331 0.431274 0.790955 0.424591 0.434235 0.790283 0.467224 0.437073 0.789642 0.511078 0.440033 0.788910 0.555511 0.443024 0.788239 0.598816 0.446014 0.787567 0.640442 0.449005 0.786865 0.679779 0.452026 0.786255 0.716522 0.454987 0.785583 0.750458 0.458038 0.784943 0.781342 0.461060 0.784271 0.809296 0.464111 0.783661 0.834686 0.467163 0.782990 0.857666 0.470184 0.782410 0.878510 0.473267 0.781799 0.897522 0.476349 0.781189 0.914764 0.479340 0.780609 0.930420 0.482422 0.780060 0.944702 0.485443 0.779510 0.957550 0.488464 0.778961 0.969177 0.491608 0.778442 0.979523 0.494507 0.778320 0.076691 0.448090 0.796478 0.100739 0.450836 0.795807 0.125977 0.453735 0.795105 0.152527 0.456696 0.794434 0.180511 0.459442 0.793762 0.210144 0.462402 0.793060 0.241577 0.465302 0.792389 0.275146 0.468292 0.791687 0.310883 0.471252 0.790985 0.348694 0.474243 0.790344 0.388397 0.477264 0.789642 0.429871 0.480347 0.788940 0.472656 0.483307 0.788300 0.516724 0.486420 0.787598 0.561127 0.489502 0.786896 0.604187 0.492523 0.786285 0.645569 0.495636 0.785583 0.684540 0.498688 0.784973 0.721008 0.501831 0.784302 0.754547 0.504974 0.783661 0.785034 0.507996 0.783020 0.812683 0.511139 0.782410 0.837738 0.514313 0.781830 0.860413 0.517365 0.781250 0.881042 0.520569 0.780609 0.899750 0.523651 0.780060 0.916809 0.526764 0.779541 0.932312 0.529877 0.778961 0.946350 0.532867 0.778473 0.959045 0.535980 0.778320 0.970520 0.539124 0.778320 0.980713 0.542114 0.778320 0.079529 0.494324 0.795105 0.103729 0.497284 0.794464 0.129150 0.500244 0.793762 0.155884 0.503235 0.793060 0.184052 0.506226 0.792419 0.213928 0.509308 0.791687 0.245636 0.512177 0.791016 0.279449 0.515350 0.790344 0.315491 0.518463 0.789673 0.353516 0.521423 0.788971 0.393555 0.524597 0.788300 0.435181 0.527740 0.787598 0.478180 0.530792 0.786926 0.522308 0.533936 0.786285 0.566650 0.537140 0.785614 0.609589 0.540222 0.784973 0.650665 0.543365 0.784302 0.689270 0.546387 0.783691 0.725403 0.549561 0.783081 0.758575 0.552704 0.782440 0.788666 0.555756 0.781860 0.815979 0.558838 0.781281 0.840668 0.561981 0.780640 0.863068 0.564972 0.780090 0.883453 0.568085 0.779541 0.901978 0.571136 0.778992 0.918793 0.574097 0.778473 0.934113 0.577087 0.778320 0.947968 0.580109 0.778320 0.960510 0.583038 0.778320 0.971802 0.585999 0.778320 0.981873 0.588867 0.778320 0.082428 0.541779 0.793793 0.106781 0.544769 0.793091 0.132355 0.547791 0.792419 0.159271 0.550842 0.791718 0.187714 0.553772 0.791016 0.217773 0.556915 0.790375 0.249756 0.559875 0.789703 0.283875 0.562958 0.788971 0.320190 0.566010 0.788330 0.358521 0.569000 0.787628 0.398682 0.572052 0.786926 0.440552 0.575165 0.786316 0.483704 0.578186 0.785645 0.527924 0.581268 0.785004 0.572174 0.584290 0.784332 0.614868 0.587311 0.783691 0.655640 0.590332 0.783081 0.694031 0.593323 0.782471 0.729736 0.596344 0.781860 0.762543 0.599304 0.781281 0.792236 0.602234 0.780701 0.819183 0.605225 0.780090 0.843597 0.608215 0.779541 0.865692 0.611115 0.778992 0.885834 0.614014 0.778473 0.904144 0.616913 0.778320 0.920776 0.619720 0.778320 0.935852 0.622650 0.778320 0.949554 0.625397 0.778320 0.961945 0.628204 0.778320 0.973083 0.631012 0.778320 0.982971 0.633667 0.778320 0.085388 0.588562 0.792450 0.109863 0.591461 0.791748 0.135620 0.594421 0.791046 0.162720 0.597351 0.790375 0.191315 0.600250 0.789703 0.221710 0.603210 0.789001 0.253906 0.606110 0.788361 0.288330 0.609070 0.787659 0.324921 0.612030 0.786987 0.363495 0.614899 0.786346 0.403900 0.617920 0.785645 0.445953 0.620880 0.785004 0.489258 0.623718 0.784393 0.533569 0.626587 0.783722 0.577637 0.629517 0.783112 0.620117 0.632416 0.782471 0.660675 0.635254 0.781891 0.698669 0.638123 0.781311 0.734009 0.640991 0.780701 0.766418 0.643799 0.780121 0.795746 0.646606 0.779572 0.822357 0.649384 0.779022 0.846466 0.652191 0.778503 0.868347 0.654907 0.778320 0.888184 0.657654 0.778320 0.906250 0.660370 0.778320 0.922668 0.662994 0.778320 0.937592 0.665680 0.778320 0.951111 0.668274 0.778320 0.963379 0.670868 0.778320 0.974335 0.673492 0.778320 0.984039 0.675964 0.778320 0.088379 0.633453 0.791107 0.113007 0.636169 0.790405 0.138977 0.639069 0.789734 0.166199 0.641815 0.789062 0.195068 0.644653 0.788361 0.225677 0.647522 0.787659 0.258148 0.650238 0.787018 0.292847 0.653076 0.786346 0.329712 0.655884 0.785706 0.368500 0.658630 0.785034 0.409149 0.661438 0.784393 0.451355 0.664185 0.783752 0.494873 0.666901 0.783142 0.539185 0.669647 0.782501 0.583069 0.672302 0.781921 0.625397 0.675049 0.781311 0.665588 0.677734 0.780731 0.703278 0.680389 0.780121 0.738251 0.683044 0.779602 0.770233 0.685699 0.779022 0.799225 0.688263 0.778534 0.825470 0.690887 0.778320 0.849274 0.693420 0.778320 0.870850 0.695953 0.778320 0.890472 0.698486 0.778320 0.908295 0.700928 0.778320 0.924530 0.703430 0.778320 0.939270 0.705872 0.778320 0.952606 0.708221 0.778320 0.964691 0.710632 0.778320 0.975525 0.712982 0.778320 0.985107 0.715271 0.778320 0.091400 0.675934 0.789734 0.116211 0.678558 0.789062 0.142334 0.681244 0.788391 0.169769 0.683838 0.787689 0.198853 0.686523 0.787048 0.229706 0.689148 0.786377 0.262390 0.691711 0.785736 0.297363 0.694366 0.785065 0.334473 0.696991 0.784424 0.373566 0.699524 0.783752 0.414459 0.702118 0.783142 0.456879 0.704712 0.782501 0.500397 0.707214 0.781921 0.544861 0.709778 0.781342 0.588531 0.712219 0.780731 0.630493 0.714752 0.780182 0.670410 0.717255 0.779602 0.707733 0.719666 0.779053 0.742371 0.722107 0.778534 0.773987 0.724518 0.778320 0.802551 0.726868 0.778320 0.828491 0.729248 0.778320 0.851990 0.731598 0.778320 0.873291 0.733887 0.778320 0.892700 0.736176 0.778320 0.910309 0.738373 0.778320 0.926331 0.740631 0.778320 0.940948 0.742828 0.778320 0.954102 0.744995 0.778320 0.966003 0.747131 0.778320 0.976654 0.749268 0.778320 0.986115 0.751282 0.778320 0.094391 0.715485 0.788422 0.119385 0.717957 0.787720 0.145691 0.720459 0.787048 0.173340 0.722870 0.786377 0.202637 0.725342 0.785736 0.233734 0.727783 0.785065 0.266693 0.730133 0.784454 0.301971 0.732574 0.783783 0.339355 0.735016 0.783173 0.378632 0.737305 0.782562 0.419678 0.739655 0.781921 0.462189 0.742004 0.781372 0.505951 0.744354 0.780762 0.550354 0.746674 0.780182 0.593842 0.748871 0.779633 0.635620 0.751129 0.779053 0.675232 0.753448 0.778534 0.712189 0.755585 0.778320 0.746399 0.757812 0.778320 0.777618 0.760010 0.778320 0.805878 0.762085 0.778320 0.831451 0.764221 0.778320 0.854645 0.766266 0.778320 0.875702 0.768402 0.778320 0.894867 0.770447 0.778320 0.912262 0.772430 0.778320 0.928131 0.774414 0.778320 0.942505 0.776398 0.778320 0.955505 0.778259 0.778320 0.967255 0.780212 0.778320 0.977783 0.782104 0.778320 0.987091 0.783905 0.778320 0.097504 0.751862 0.787079 0.122681 0.754120 0.786377 0.149139 0.756409 0.785767 0.176941 0.758606 0.785095 0.206482 0.760834 0.784454 0.237762 0.763062 0.783783 0.271057 0.765228 0.783203 0.306580 0.767395 0.782593 0.344208 0.769562 0.781952 0.383698 0.771667 0.781372 0.424957 0.773865 0.780762 0.467621 0.775909 0.780212 0.511444 0.777985 0.779633 0.555878 0.780060 0.779114 0.599091 0.782104 0.778595 0.640656 0.784119 0.778320 0.679871 0.786133 0.778320 0.716522 0.788086 0.778320 0.750336 0.790039 0.778320 0.781189 0.791992 0.778320 0.809052 0.793854 0.778320 0.834351 0.795746 0.778320 0.857239 0.797577 0.778320 0.878052 0.799438 0.778320 0.896973 0.801270 0.778320 0.914185 0.803009 0.778320 0.929840 0.804749 0.778320 0.944031 0.806519 0.778320 0.956909 0.808197 0.778320 0.968475 0.809845 0.778320 0.978851 0.811554 0.778320 0.988037 0.813141 0.778320 0.100647 0.784760 0.785797 0.125916 0.786835 0.785126 0.152527 0.788910 0.784485 0.180603 0.790833 0.783813 0.210327 0.792847 0.783203 0.241882 0.794861 0.782593 0.275391 0.796783 0.781982 0.311218 0.798767 0.781403 0.348999 0.800690 0.780792 0.388763 0.802551 0.780243 0.430237 0.804474 0.779663 0.473022 0.806335 0.779144 0.516968 0.808228 0.778625 0.561310 0.810059 0.778320 0.604340 0.811890 0.778320 0.645538 0.813660 0.778320 0.684479 0.815521 0.778320 0.720764 0.817230 0.778320 0.754242 0.819000 0.778320 0.784668 0.820648 0.778320 0.812164 0.822357 0.778320 0.837158 0.824036 0.778320 0.859741 0.825653 0.778320 0.880310 0.827301 0.778320 0.899017 0.828918 0.778320 0.916046 0.830475 0.778320 0.931488 0.832062 0.778320 0.945526 0.833557 0.778320 0.958221 0.835022 0.778320 0.969635 0.836548 0.778320 0.979889 0.837952 0.778320 0.988922 0.839417 0.778320 0.103760 0.814392 0.784515 0.129242 0.816223 0.783875 0.156036 0.818054 0.783234 0.184296 0.819855 0.782623 0.214233 0.821655 0.781982 0.245972 0.823425 0.781403 0.279785 0.825165 0.780823 0.315857 0.826904 0.780243 0.353882 0.828613 0.779663 0.393860 0.830383 0.779144 0.435486 0.832062 0.778625 0.478394 0.833710 0.778320 0.522461 0.835388 0.778320 0.566681 0.837067 0.778320 0.609467 0.838654 0.778320 0.650391 0.840271 0.778320 0.688995 0.841858 0.778320 0.724915 0.843414 0.778320 0.757996 0.844971 0.778320 0.788025 0.846466 0.778320 0.815247 0.847992 0.778320 0.839874 0.849487 0.778320 0.862183 0.850891 0.778320 0.882507 0.852356 0.778320 0.901031 0.853790 0.778320 0.917816 0.855164 0.778320 0.933075 0.856567 0.778320 0.946960 0.857880 0.778320 0.959473 0.859222 0.778320 0.970764 0.860535 0.778320 0.980865 0.861786 0.778320 0.989777 0.863037 0.778320 0.106903 0.840973 0.783234 0.132538 0.842651 0.782623 0.159515 0.844299 0.782043 0.187958 0.845917 0.781433 0.218079 0.847534 0.780823 0.250031 0.849091 0.780273 0.284149 0.850708 0.779694 0.320465 0.852234 0.779144 0.358765 0.853790 0.778656 0.398895 0.855316 0.778320 0.440704 0.856842 0.778320 0.483734 0.858337 0.778320 0.527832 0.859833 0.778320 0.571930 0.861298 0.778320 0.614441 0.862762 0.778320 0.655090 0.864197 0.778320 0.693390 0.865631 0.778320 0.728943 0.867004 0.778320 0.761658 0.868378 0.778320 0.791260 0.869720 0.778320 0.818146 0.871063 0.778320 0.842529 0.872375 0.778320 0.864563 0.873657 0.778320 0.884644 0.874908 0.778320 0.902954 0.876221 0.778320 0.919525 0.877411 0.778320 0.934631 0.878601 0.778320 0.948334 0.879852 0.778320 0.960693 0.881012 0.778320 0.971863 0.882141 0.778320 0.981812 0.883240 0.778320 0.990570 0.884369 0.778320 0.110077 0.864960 0.782074 0.135864 0.866455 0.781433 0.163025 0.867950 0.780823 0.191620 0.869385 0.780273 0.222015 0.870850 0.779694 0.254181 0.872253 0.779175 0.288544 0.873688 0.778656 0.325073 0.875092 0.778320 0.363586 0.876434 0.778320 0.403992 0.877838 0.778320 0.445892 0.879181 0.778320 0.488983 0.880554 0.778320 0.533142 0.881866 0.778320 0.577087 0.883179 0.778320 0.619385 0.884460 0.778320 0.659729 0.885742 0.778320 0.697632 0.886993 0.778320 0.732880 0.888214 0.778320 0.765167 0.889465 0.778320 0.794464 0.890656 0.778320 0.820953 0.891846 0.778320 0.845032 0.893036 0.778320 0.866852 0.894165 0.778320 0.886719 0.895325 0.778320 0.904785 0.896393 0.778320 0.921173 0.897522 0.778320 0.936127 0.898560 0.778320 0.949646 0.899567 0.778320 0.961884 0.900635 0.778320 0.972900 0.901642 0.778320 0.982727 0.902649 0.778320 0.991364 0.903595 0.778320 0.113251 0.886597 0.780853 0.139191 0.887939 0.780304 0.166473 0.889221 0.779724 0.195282 0.890564 0.779205 0.225891 0.891846 0.778687 0.258331 0.893127 0.778320 0.292908 0.894409 0.778320 0.329712 0.895691 0.778320 0.368408 0.896881 0.778320 0.408905 0.898163 0.778320 0.450989 0.899384 0.778320 0.494263 0.900574 0.778320 0.538391 0.901733 0.778320 0.582123 0.902924 0.778320 0.624176 0.904053 0.778320 0.664246 0.905182 0.778320 0.701813 0.906281 0.778320 0.736664 0.907410 0.778320 0.768616 0.908508 0.778320 0.797485 0.909546 0.778320 0.823761 0.910614 0.778320 0.847534 0.911652 0.778320 0.869049 0.912659 0.778320 0.888702 0.913666 0.778320 0.906555 0.914673 0.778320 0.922791 0.915619 0.778320 0.937531 0.916565 0.778320 0.950897 0.917480 0.778320 0.963013 0.918365 0.778320 0.973877 0.919250 0.778320 0.983551 0.920105 0.778320 0.992096 0.920959 0.778320 0.116425 0.906097 0.779755 0.142548 0.907318 0.779205 0.169952 0.908478 0.778687 0.198975 0.909668 0.778320 0.229797 0.910858 0.778320 0.262421 0.911957 0.778320 0.297272 0.913116 0.778320 0.334259 0.914276 0.778320 0.373199 0.915375 0.778320 0.413849 0.916473 0.778320 0.456085 0.917572 0.778320 0.499390 0.918610 0.778320 0.543579 0.919647 0.778320 0.587067 0.920715 0.778320 0.628906 0.921722 0.778320 0.668610 0.922760 0.778320 0.705811 0.923706 0.778320 0.740356 0.924713 0.778320 0.771912 0.925720 0.778320 0.800476 0.926605 0.778320 0.826385 0.927551 0.778320 0.849884 0.928467 0.778320 0.871185 0.929352 0.778320 0.890564 0.930237 0.778320 0.908234 0.931091 0.778320 0.924255 0.931946 0.778320 0.938904 0.932800 0.778320 0.952118 0.933563 0.778320 0.964081 0.934326 0.778320 0.974823 0.935150 0.778320 0.984375 0.935883 0.778320 0.992798 0.936646 0.778320 0.119568 0.923706 0.778717 0.145844 0.924835 0.778320 0.173431 0.925873 0.778320 0.202667 0.926941 0.778320 0.233673 0.927979 0.778320 0.266541 0.928986 0.778320 0.301636 0.930023 0.778320 0.338806 0.931030 0.778320 0.377899 0.932007 0.778320 0.418762 0.932983 0.778320 0.461029 0.933960 0.778320 0.504425 0.934875 0.778320 0.548645 0.935852 0.778320 0.591858 0.936768 0.778320 0.633453 0.937653 0.778320 0.672852 0.938568 0.778320 0.709778 0.939423 0.778320 0.743866 0.940308 0.778320 0.775085 0.941162 0.778320 0.803345 0.942017 0.778320 0.828918 0.942810 0.778320 0.852142 0.943604 0.778320 0.873230 0.944397 0.778320 0.892426 0.945160 0.778320 0.909851 0.945892 0.778320 0.925751 0.946655 0.778320 0.940186 0.947388 0.778320 0.953247 0.948090 0.778320 0.965088 0.948792 0.778320 0.975708 0.949432 0.778320 0.985138 0.950073 0.778320 0.993408 0.950745 0.778320 0.122772 0.939606 0.778320 0.149170 0.940582 0.778320 0.176910 0.941528 0.778320 0.206299 0.942474 0.778320 0.237457 0.943420 0.778320 0.270599 0.944305 0.778320 0.305939 0.945221 0.778320 0.343353 0.946106 0.778320 0.382568 0.946991 0.778320 0.423584 0.947876 0.778320 0.465881 0.948700 0.778320 0.509430 0.949554 0.778320 0.553528 0.950378 0.778320 0.596588 0.951202 0.778320 0.637817 0.951996 0.778320 0.676941 0.952789 0.778320 0.713531 0.953583 0.778320 0.747345 0.954346 0.778320 0.778198 0.955078 0.778320 0.806061 0.955780 0.778320 0.831329 0.956512 0.778320 0.854309 0.957184 0.778320 0.875183 0.957886 0.778320 0.894135 0.958557 0.778320 0.911377 0.959198 0.778320 0.927124 0.959869 0.778320 0.941376 0.960480 0.778320 0.954346 0.961090 0.778320 0.966034 0.961700 0.778320 0.976532 0.962280 0.778320 0.985840 0.962860 0.778320 0.994019 0.963379 0.778320 0.125885 0.953888 0.778320 0.152435 0.954742 0.778320 0.180328 0.955597 0.778320 0.209961 0.956451 0.778320 0.241333 0.957275 0.778320 0.274658 0.958038 0.778320 0.310211 0.958862 0.778320 0.347717 0.959625 0.778320 0.387146 0.960449 0.778320 0.428314 0.961182 0.778320 0.470734 0.961914 0.778320 0.514313 0.962677 0.778320 0.558380 0.963409 0.778320 0.601135 0.964142 0.778320 0.642120 0.964813 0.778320 0.680939 0.965515 0.778320 0.717133 0.966156 0.778320 0.750610 0.966858 0.778320 0.781097 0.967499 0.778320 0.808685 0.968109 0.778320 0.833649 0.968781 0.778320 0.856384 0.969360 0.778320 0.877014 0.969940 0.778320 0.895782 0.970520 0.778320 0.912842 0.971100 0.778320 0.928406 0.971649 0.778320 0.942566 0.972198 0.778320 0.955353 0.972687 0.778320 0.966919 0.973206 0.778320 0.977295 0.973724 0.778320 0.986511 0.974152 0.778320 0.994598 0.974640 0.778320 0.129028 0.966675 0.778320 0.155701 0.967407 0.778320 0.183777 0.968170 0.778320 0.213531 0.968903 0.778320 0.245087 0.969635 0.778320 0.278625 0.970337 0.778320 0.314392 0.971039 0.778320 0.352112 0.971710 0.778320 0.391724 0.972382 0.778320 0.432983 0.973083 0.778320 0.475464 0.973724 0.778320 0.519073 0.974365 0.778320 0.562988 0.975006 0.778320 0.605560 0.975616 0.778320 0.646301 0.976227 0.778320 0.684784 0.976837 0.778320 0.720642 0.977386 0.778320 0.753754 0.977966 0.778320 0.783875 0.978516 0.778320 0.811157 0.979065 0.778320 0.835876 0.979614 0.778320 0.858337 0.980133 0.778320 0.878754 0.980621 0.778320 0.897369 0.981110 0.778320 0.914276 0.981598 0.778320 0.929688 0.982056 0.778320 0.943634 0.982513 0.778320 0.956299 0.982971 0.778320 0.967773 0.983368 0.778320 0.978027 0.983795 0.778320 0.987122 0.984192 0.778320 0.995117 0.984589 0.778320 0.045105 0.006378 0.835022 0.067139 0.007233 0.834717 0.090271 0.008118 0.834351 0.114441 0.009064 0.833954 0.139862 0.009979 0.833588 0.166626 0.010986 0.833221 0.194916 0.011993 0.832764 0.224823 0.012970 0.832367 0.256683 0.014069 0.831909 0.290680 0.015106 0.831451 0.326752 0.016205 0.831024 0.364807 0.017334 0.830536 0.404694 0.018433 0.830017 0.446198 0.019623 0.829529 0.488983 0.020844 0.829010 0.532745 0.022003 0.828461 0.576447 0.023224 0.827911 0.618591 0.024506 0.827393 0.658722 0.025726 0.826813 0.696594 0.027039 0.826294 0.731812 0.028381 0.825684 0.764160 0.029663 0.825104 0.793610 0.031036 0.824524 0.820251 0.032379 0.823944 0.844452 0.033752 0.823334 0.866425 0.035187 0.822723 0.886414 0.036560 0.822113 0.904633 0.037994 0.821503 0.921173 0.039459 0.820862 0.936218 0.040894 0.820282 0.949921 0.042389 0.819641 0.962280 0.043884 0.819031 0.046753 0.027924 0.834351 0.069000 0.028809 0.833984 0.092224 0.029785 0.833588 0.116577 0.030823 0.833221 0.142151 0.031860 0.832794 0.169098 0.032928 0.832367 0.197571 0.034027 0.831909 0.227722 0.035126 0.831482 0.259857 0.036224 0.831024 0.294067 0.037384 0.830536 0.330444 0.038574 0.830017 0.368805 0.039795 0.829529 0.408875 0.041016 0.829041 0.450562 0.042297 0.828461 0.493561 0.043579 0.827942 0.537476 0.044830 0.827423 0.581024 0.046173 0.826843 0.623047 0.047516 0.826294 0.662994 0.048859 0.825684 0.700714 0.050232 0.825104 0.735596 0.051636 0.824554 0.767670 0.053040 0.823975 0.796814 0.054504 0.823334 0.823181 0.055908 0.822754 0.847137 0.057404 0.822113 0.868927 0.058868 0.821564 0.888702 0.060333 0.820892 0.906708 0.061920 0.820282 0.923096 0.063416 0.819672 0.937988 0.064972 0.819031 0.951508 0.066528 0.818390 0.963715 0.068054 0.817780 0.048584 0.050415 0.833588 0.070923 0.051392 0.833252 0.094299 0.052521 0.832825 0.118805 0.053619 0.832397 0.144531 0.054718 0.831940 0.171661 0.055878 0.831482 0.200348 0.057068 0.831024 0.230743 0.058289 0.830566 0.263092 0.059509 0.830078 0.297577 0.060760 0.829559 0.334259 0.062042 0.829041 0.372864 0.063354 0.828491 0.413208 0.064606 0.827972 0.455109 0.066040 0.827423 0.498322 0.067383 0.826843 0.542267 0.068756 0.826324 0.585785 0.070221 0.825714 0.627655 0.071625 0.825165 0.667450 0.073059 0.824554 0.704834 0.074554 0.823975 0.739441 0.075989 0.823364 0.771240 0.077545 0.822784 0.800079 0.079071 0.822144 0.826111 0.080627 0.821594 0.849854 0.082184 0.820923 0.871368 0.083771 0.820312 0.890930 0.085327 0.819702 0.908752 0.086975 0.819061 0.924988 0.088593 0.818420 0.939697 0.090240 0.817780 0.953094 0.091888 0.817200 0.965118 0.093506 0.816528 0.050476 0.074005 0.832825 0.072968 0.075104 0.832397 0.096497 0.076355 0.831940 0.121155 0.077545 0.831512 0.147034 0.078735 0.831055 0.174377 0.079987 0.830566 0.203247 0.081268 0.830109 0.233948 0.082581 0.829559 0.266571 0.083923 0.829041 0.301300 0.085266 0.828522 0.338226 0.086639 0.828003 0.377106 0.088074 0.827454 0.417664 0.089478 0.826874 0.459808 0.090912 0.826324 0.503113 0.092438 0.825714 0.547211 0.093872 0.825195 0.590607 0.095398 0.824585 0.632263 0.096924 0.823975 0.671875 0.098480 0.823395 0.709015 0.100098 0.822784 0.743347 0.101654 0.822174 0.774841 0.103302 0.821594 0.803314 0.104919 0.820923 0.829102 0.106537 0.820312 0.852570 0.108246 0.819702 0.873871 0.109924 0.819061 0.893250 0.111572 0.818451 0.910858 0.113312 0.817810 0.926880 0.115021 0.817230 0.941437 0.116791 0.816559 0.954651 0.118591 0.815948 0.966553 0.120300 0.815338 0.052521 0.098846 0.831970 0.075073 0.100037 0.831512 0.098785 0.101349 0.831055 0.123627 0.102692 0.830597 0.149658 0.103973 0.830109 0.177216 0.105377 0.829590 0.206268 0.106750 0.829102 0.237213 0.108154 0.828522 0.270111 0.109589 0.828003 0.305145 0.111053 0.827484 0.342316 0.112549 0.826904 0.381439 0.114105 0.826324 0.422272 0.115601 0.825745 0.464600 0.117157 0.825195 0.508118 0.118774 0.824585 0.552277 0.120361 0.824005 0.595490 0.122009 0.823395 0.636993 0.123627 0.822815 0.676331 0.125336 0.822235 0.713196 0.127014 0.821625 0.747284 0.128693 0.820953 0.778381 0.130432 0.820343 0.806580 0.132202 0.819733 0.832092 0.133911 0.819122 0.855255 0.135712 0.818481 0.876373 0.137512 0.817810 0.895508 0.139313 0.817230 0.912933 0.141144 0.816589 0.928772 0.142975 0.815979 0.943176 0.144867 0.815369 0.956207 0.146729 0.814697 0.967957 0.148590 0.814087 0.054596 0.125000 0.831085 0.077362 0.126312 0.830597 0.101166 0.127777 0.830139 0.126129 0.129181 0.829620 0.152435 0.130646 0.829102 0.180145 0.132111 0.828552 0.209473 0.133606 0.828033 0.240601 0.135132 0.827484 0.273773 0.136719 0.826904 0.309113 0.138306 0.826355 0.346588 0.139923 0.825775 0.385956 0.141571 0.825226 0.426941 0.143188 0.824615 0.469513 0.144928 0.824005 0.513123 0.146576 0.823425 0.557373 0.148285 0.822845 0.600464 0.150085 0.822235 0.641754 0.151794 0.821625 0.680908 0.153625 0.820953 0.717468 0.155457 0.820343 0.751190 0.157257 0.819763 0.781982 0.159149 0.819122 0.809845 0.161011 0.818481 0.835083 0.162872 0.817902 0.858002 0.164764 0.817261 0.878815 0.166656 0.816620 0.897766 0.168610 0.815979 0.915009 0.170593 0.815369 0.930634 0.172516 0.814728 0.944916 0.174530 0.814148 0.957764 0.176544 0.813507 0.969360 0.178497 0.812897 0.056824 0.152618 0.830139 0.079712 0.154114 0.829620 0.103668 0.155670 0.829102 0.128784 0.157196 0.828583 0.155243 0.158813 0.828033 0.183197 0.160431 0.827515 0.212738 0.162079 0.826965 0.244141 0.163727 0.826385 0.277588 0.165436 0.825775 0.313171 0.167114 0.825256 0.350922 0.168884 0.824615 0.390533 0.170654 0.824036 0.431824 0.172424 0.823456 0.474548 0.174255 0.822845 0.518311 0.176086 0.822266 0.562561 0.177948 0.821655 0.605560 0.179871 0.820984 0.646606 0.181732 0.820374 0.685486 0.183685 0.819763 0.721741 0.185638 0.819153 0.755127 0.187592 0.818512 0.785553 0.189606 0.817902 0.813141 0.191589 0.817261 0.838043 0.193604 0.816620 0.860687 0.195679 0.815979 0.881256 0.197662 0.815399 0.899994 0.199738 0.814758 0.917084 0.201874 0.814148 0.932526 0.203949 0.813538 0.946594 0.206055 0.812927 0.959290 0.208221 0.812286 0.970734 0.210327 0.811707 0.059052 0.181976 0.829102 0.082123 0.183624 0.828583 0.106262 0.185333 0.828064 0.131531 0.186951 0.827545 0.158203 0.188690 0.826965 0.186310 0.190491 0.826385 0.216125 0.192261 0.825836 0.247803 0.194061 0.825256 0.281525 0.195923 0.824615 0.317413 0.197784 0.824066 0.355438 0.199677 0.823456 0.395233 0.201569 0.822876 0.436768 0.203491 0.822266 0.479645 0.205505 0.821655 0.523560 0.207428 0.821014 0.567749 0.209473 0.820404 0.610596 0.211517 0.819794 0.651459 0.213562 0.819183 0.690063 0.215668 0.818542 0.725983 0.217743 0.817932 0.759064 0.219849 0.817291 0.789124 0.222046 0.816650 0.816345 0.224182 0.816010 0.840973 0.226349 0.815430 0.863434 0.228546 0.814758 0.883728 0.230713 0.814209 0.902252 0.232971 0.813538 0.919067 0.235199 0.812927 0.934357 0.237427 0.812317 0.948273 0.239746 0.811737 0.960815 0.242035 0.811127 0.972076 0.244263 0.810547 0.061462 0.213226 0.828094 0.084656 0.214996 0.827545 0.108948 0.216827 0.826965 0.134369 0.218719 0.826416 0.161224 0.220612 0.825867 0.189606 0.222534 0.825256 0.219574 0.224426 0.824646 0.251526 0.226410 0.824066 0.285553 0.228455 0.823486 0.321716 0.230438 0.822906 0.359985 0.232513 0.822266 0.400085 0.234528 0.821686 0.441772 0.236664 0.821014 0.484863 0.238831 0.820404 0.528961 0.240936 0.819824 0.573059 0.243164 0.819183 0.615723 0.245331 0.818542 0.656311 0.247559 0.817932 0.694641 0.249817 0.817291 0.730255 0.252106 0.816650 0.762939 0.254364 0.816040 0.792664 0.256683 0.815430 0.819519 0.258942 0.814819 0.843933 0.261322 0.814209 0.866058 0.263702 0.813568 0.886139 0.266052 0.812958 0.904449 0.268463 0.812347 0.921082 0.270905 0.811737 0.936218 0.273254 0.811157 0.949921 0.275696 0.810547 0.962311 0.278198 0.809937 0.973450 0.280579 0.809418 0.063904 0.246582 0.826996 0.087250 0.248566 0.826447 0.111664 0.250610 0.825867 0.137329 0.252563 0.825287 0.164368 0.254639 0.824707 0.192932 0.256744 0.824097 0.223145 0.258850 0.823517 0.255402 0.261047 0.822906 0.289612 0.263153 0.822296 0.326141 0.265411 0.821716 0.364685 0.267670 0.821075 0.404968 0.269867 0.820465 0.446960 0.272186 0.819855 0.490173 0.274506 0.819214 0.534393 0.276825 0.818573 0.578369 0.279175 0.817963 0.620880 0.281586 0.817291 0.661194 0.283966 0.816711 0.699188 0.286407 0.816071 0.734528 0.288910 0.815460 0.766846 0.291321 0.814819 0.796204 0.293823 0.814240 0.822754 0.296326 0.813568 0.846832 0.298828 0.812988 0.868744 0.301361 0.812347 0.888580 0.303894 0.811798 0.906677 0.306519 0.811157 0.923126 0.309113 0.810577 0.938049 0.311646 0.809967 0.951569 0.314270 0.809418 0.963806 0.316925 0.808838 0.974762 0.319489 0.808289 0.066406 0.282410 0.825897 0.089935 0.284546 0.825287 0.114502 0.286774 0.824707 0.140350 0.288940 0.824127 0.167603 0.291199 0.823547 0.196350 0.293549 0.822906 0.226837 0.295807 0.822327 0.259308 0.298187 0.821716 0.293854 0.300476 0.821106 0.330688 0.302917 0.820465 0.369476 0.305359 0.819855 0.410004 0.307709 0.819244 0.452148 0.310242 0.818604 0.495636 0.312744 0.817963 0.539948 0.315247 0.817352 0.583740 0.317810 0.816742 0.626007 0.320435 0.816071 0.666077 0.322968 0.815491 0.703796 0.325592 0.814850 0.738678 0.328125 0.814240 0.770691 0.330780 0.813568 0.799713 0.333496 0.812988 0.825897 0.336121 0.812378 0.849731 0.338806 0.811829 0.871338 0.341553 0.811157 0.890961 0.344208 0.810608 0.908813 0.346954 0.809998 0.925079 0.349731 0.809448 0.939819 0.352417 0.808868 0.953186 0.355194 0.808289 0.965210 0.357880 0.807770 0.976044 0.360687 0.807220 0.069031 0.320709 0.824768 0.092651 0.323059 0.824158 0.117432 0.325500 0.823547 0.143433 0.327850 0.822937 0.170898 0.330322 0.822357 0.199799 0.332703 0.821747 0.230591 0.335236 0.821136 0.263336 0.337769 0.820496 0.298218 0.340271 0.819885 0.335297 0.342865 0.819244 0.374359 0.345551 0.818604 0.415070 0.348053 0.817993 0.457458 0.350769 0.817352 0.501038 0.353485 0.816742 0.545471 0.356079 0.816101 0.589142 0.358887 0.815491 0.631165 0.361603 0.814850 0.670929 0.364288 0.814240 0.708374 0.367096 0.813599 0.742859 0.369843 0.813049 0.774506 0.372650 0.812408 0.803192 0.375488 0.811829 0.829071 0.378235 0.811188 0.852570 0.381073 0.810608 0.873932 0.384003 0.810028 0.893341 0.386749 0.809448 0.910980 0.389648 0.808868 0.927032 0.392548 0.808319 0.941559 0.395386 0.807800 0.954773 0.398254 0.807251 0.966675 0.401093 0.806763 0.977295 0.404022 0.806183 0.071686 0.361420 0.823578 0.095459 0.363983 0.822968 0.120422 0.366577 0.822357 0.146606 0.369049 0.821777 0.174225 0.371704 0.821136 0.203430 0.374268 0.820526 0.234436 0.377014 0.819885 0.267487 0.379700 0.819275 0.302643 0.382385 0.818634 0.339996 0.385162 0.818024 0.379303 0.387939 0.817383 0.420288 0.390686 0.816772 0.462860 0.393494 0.816132 0.506592 0.396332 0.815521 0.550995 0.399139 0.814880 0.594543 0.401978 0.814270 0.636261 0.404877 0.813629 0.675842 0.407806 0.813049 0.712891 0.410706 0.812408 0.747040 0.413574 0.811829 0.778320 0.416534 0.811218 0.806580 0.419495 0.810638 0.832184 0.422394 0.810059 0.855408 0.425385 0.809479 0.876465 0.428345 0.808929 0.895630 0.431305 0.808350 0.913055 0.434296 0.807800 0.928894 0.437195 0.807281 0.943298 0.440216 0.806763 0.956329 0.443207 0.806213 0.968048 0.446167 0.805725 0.978577 0.449158 0.805237 0.074432 0.404327 0.822388 0.098389 0.407013 0.821808 0.123444 0.409729 0.821167 0.149841 0.412476 0.820526 0.177643 0.415222 0.819885 0.207092 0.417999 0.819305 0.238373 0.420807 0.818665 0.271667 0.423706 0.818024 0.307129 0.426514 0.817413 0.344757 0.429382 0.816803 0.384308 0.432343 0.816132 0.425537 0.435242 0.815552 0.468201 0.438202 0.814880 0.512115 0.441132 0.814301 0.556549 0.444092 0.813660 0.599854 0.447113 0.813080 0.641357 0.450043 0.812439 0.680634 0.453064 0.811859 0.717346 0.456116 0.811218 0.751190 0.459137 0.810669 0.782074 0.462189 0.810059 0.809967 0.465210 0.809509 0.835236 0.468201 0.808960 0.858185 0.471313 0.808350 0.878998 0.474426 0.807831 0.897919 0.477417 0.807281 0.915161 0.480530 0.806763 0.930756 0.483490 0.806274 0.944977 0.486603 0.805725 0.957855 0.489655 0.805267 0.969421 0.492645 0.804840 0.979767 0.495667 0.804840 0.077209 0.449066 0.821198 0.101288 0.451935 0.820526 0.126526 0.454742 0.819946 0.153137 0.457672 0.819336 0.181183 0.460571 0.818695 0.210846 0.463440 0.818054 0.242371 0.466431 0.817413 0.275940 0.469391 0.816803 0.311676 0.472351 0.816162 0.349579 0.475342 0.815552 0.389404 0.478394 0.814880 0.430817 0.481415 0.814301 0.473694 0.484497 0.813660 0.517670 0.487488 0.813110 0.562103 0.490570 0.812469 0.605225 0.493713 0.811859 0.646484 0.496735 0.811249 0.685486 0.499878 0.810669 0.721802 0.503021 0.810059 0.755249 0.506042 0.809509 0.785767 0.509216 0.808960 0.813293 0.512329 0.808350 0.838257 0.515381 0.807831 0.860901 0.518555 0.807281 0.881439 0.521637 0.806793 0.900146 0.524780 0.806274 0.917175 0.527893 0.805725 0.932648 0.530975 0.805298 0.946655 0.534058 0.804840 0.959351 0.537170 0.804840 0.970734 0.540192 0.804840 0.980927 0.543243 0.804840 0.080078 0.495392 0.819946 0.104309 0.498352 0.819336 0.129730 0.501251 0.818726 0.156464 0.504272 0.818085 0.184753 0.507324 0.817444 0.214630 0.510345 0.816864 0.246429 0.513428 0.816193 0.280304 0.516479 0.815552 0.316315 0.519501 0.814911 0.354492 0.522644 0.814331 0.394440 0.525665 0.813690 0.436157 0.528839 0.813110 0.479248 0.531982 0.812469 0.523346 0.535065 0.811890 0.567688 0.538208 0.811279 0.610596 0.541382 0.810699 0.651520 0.544464 0.810089 0.690216 0.547577 0.809540 0.726227 0.550720 0.808960 0.759277 0.553772 0.808411 0.789368 0.556946 0.807861 0.816559 0.560059 0.807312 0.841217 0.563019 0.806824 0.863586 0.566132 0.806305 0.883881 0.569153 0.805786 0.902374 0.572174 0.805298 0.919159 0.575287 0.804840 0.934418 0.578186 0.804840 0.948273 0.581207 0.804840 0.960815 0.584106 0.804840 0.972046 0.587067 0.804840 0.982086 0.589935 0.804840 0.082947 0.542877 0.818726 0.107361 0.545837 0.818085 0.132904 0.548859 0.817474 0.159912 0.551880 0.816864 0.188385 0.554962 0.816193 0.218475 0.557953 0.815582 0.250549 0.561005 0.814941 0.284698 0.564087 0.814331 0.321014 0.567047 0.813721 0.359406 0.570160 0.813141 0.399719 0.573242 0.812500 0.441559 0.576233 0.811920 0.484802 0.579346 0.811279 0.528961 0.582306 0.810730 0.573151 0.585358 0.810120 0.615875 0.588409 0.809540 0.656555 0.591431 0.808990 0.694916 0.594421 0.808411 0.730560 0.597412 0.807861 0.763214 0.600403 0.807343 0.792969 0.603394 0.806824 0.819824 0.606354 0.806305 0.844116 0.609222 0.805817 0.866211 0.612183 0.805298 0.886261 0.615021 0.804840 0.904541 0.617981 0.804840 0.921112 0.620819 0.804840 0.936218 0.623627 0.804840 0.949890 0.626434 0.804840 0.962250 0.629303 0.804840 0.973297 0.631958 0.804840 0.983185 0.634735 0.804840 0.085907 0.589600 0.817505 0.110504 0.592529 0.816864 0.136230 0.595428 0.816223 0.163361 0.598389 0.815613 0.192078 0.601379 0.814941 0.222412 0.604248 0.814362 0.254730 0.607239 0.813721 0.289215 0.610229 0.813141 0.325775 0.613098 0.812531 0.364410 0.616058 0.811920 0.404816 0.618896 0.811310 0.446960 0.621918 0.810730 0.490356 0.624817 0.810120 0.534637 0.627655 0.809570 0.578674 0.630615 0.808990 0.621155 0.633514 0.808411 0.661530 0.636292 0.807861 0.699554 0.639191 0.807343 0.734833 0.642029 0.806854 0.767120 0.644806 0.806305 0.796448 0.647614 0.805817 0.822937 0.650482 0.805328 0.846985 0.653168 0.804840 0.868805 0.655914 0.804840 0.888611 0.658569 0.804840 0.906647 0.661316 0.804840 0.923035 0.664001 0.804840 0.937927 0.666565 0.804840 0.951447 0.669189 0.804840 0.963593 0.671875 0.804840 0.974548 0.674377 0.804840 0.984283 0.676910 0.804840 0.088898 0.634460 0.816254 0.113647 0.637268 0.815613 0.139557 0.640076 0.814972 0.166870 0.642883 0.814392 0.195801 0.645691 0.813751 0.226379 0.648499 0.813141 0.258942 0.651306 0.812531 0.293671 0.654144 0.811951 0.330566 0.656830 0.811340 0.369476 0.659637 0.810730 0.410126 0.662384 0.810150 0.452332 0.665131 0.809601 0.495911 0.667908 0.809021 0.540253 0.670593 0.808441 0.584076 0.673340 0.807892 0.626343 0.676056 0.807373 0.666443 0.678711 0.806885 0.704132 0.681396 0.806305 0.739014 0.684021 0.805847 0.770905 0.686646 0.805359 0.799866 0.689240 0.804871 0.826019 0.691742 0.804840 0.849762 0.694366 0.804840 0.871338 0.696899 0.804840 0.890900 0.699371 0.804840 0.908691 0.701874 0.804840 0.924896 0.704315 0.804840 0.939606 0.706726 0.804840 0.952942 0.709106 0.804840 0.964935 0.711548 0.804840 0.975708 0.713806 0.804840 0.985321 0.716095 0.804840 0.091949 0.676849 0.815002 0.116791 0.679535 0.814423 0.142914 0.682129 0.813782 0.170471 0.684814 0.813171 0.199585 0.687469 0.812561 0.230347 0.690094 0.811981 0.263214 0.692749 0.811340 0.298218 0.695251 0.810760 0.335388 0.697906 0.810181 0.374542 0.700531 0.809601 0.415375 0.703003 0.809021 0.457825 0.705627 0.808472 0.501465 0.708191 0.807892 0.545837 0.710663 0.807404 0.589478 0.713165 0.806885 0.631500 0.715729 0.806335 0.671295 0.718140 0.805847 0.708588 0.720551 0.805359 0.743164 0.723022 0.804871 0.774658 0.725403 0.804840 0.803223 0.727783 0.804840 0.829041 0.730072 0.804840 0.852478 0.732422 0.804840 0.873779 0.734711 0.804840 0.893097 0.736969 0.804840 0.910706 0.739227 0.804840 0.926697 0.741455 0.804840 0.941193 0.743622 0.804840 0.954376 0.745819 0.804840 0.966248 0.747955 0.804840 0.976868 0.750000 0.804840 0.986328 0.752075 0.804840 0.095001 0.716400 0.813782 0.120026 0.718903 0.813171 0.146301 0.721283 0.812592 0.174042 0.723785 0.811981 0.203339 0.726227 0.811371 0.234436 0.728638 0.810760 0.267578 0.731049 0.810181 0.302765 0.733398 0.809631 0.340210 0.735809 0.809052 0.379578 0.738190 0.808472 0.420624 0.740509 0.807953 0.463257 0.742859 0.807404 0.506989 0.745209 0.806885 0.551392 0.747498 0.806366 0.594849 0.749756 0.805878 0.636566 0.752045 0.805389 0.676056 0.754242 0.804901 0.713013 0.756439 0.804840 0.747131 0.758606 0.804840 0.778259 0.760742 0.804840 0.806458 0.762909 0.804840 0.831970 0.765015 0.804840 0.855164 0.767090 0.804840 0.876190 0.769196 0.804840 0.895264 0.771149 0.804840 0.912659 0.773132 0.804840 0.928436 0.775146 0.804840 0.942810 0.777069 0.804840 0.955780 0.778992 0.804840 0.967468 0.780853 0.804840 0.977966 0.782715 0.804840 0.987274 0.784546 0.804840 0.098083 0.752716 0.812592 0.123291 0.754974 0.812012 0.149750 0.757172 0.811401 0.177643 0.759430 0.810822 0.207153 0.761597 0.810211 0.238525 0.763855 0.809662 0.271881 0.766022 0.809082 0.307404 0.768158 0.808502 0.345093 0.770325 0.807983 0.384674 0.772491 0.807404 0.425903 0.774597 0.806915 0.468628 0.776642 0.806366 0.512573 0.778778 0.805878 0.556915 0.780792 0.805389 0.600128 0.782867 0.804901 0.641479 0.784821 0.804840 0.680725 0.786835 0.804840 0.717346 0.788849 0.804840 0.751068 0.790710 0.804840 0.781830 0.792664 0.804840 0.809692 0.794586 0.804840 0.834839 0.796417 0.804840 0.857727 0.798279 0.804840 0.878510 0.800110 0.804840 0.897369 0.801910 0.804840 0.914551 0.803680 0.804840 0.930176 0.805420 0.804840 0.944305 0.807098 0.804840 0.957184 0.808807 0.804840 0.968689 0.810455 0.804840 0.979034 0.812073 0.804840 0.988220 0.813690 0.804840 0.101196 0.785553 0.811401 0.126587 0.787598 0.810822 0.153198 0.789612 0.810242 0.181305 0.791626 0.809662 0.210999 0.793579 0.809082 0.242615 0.795563 0.808533 0.276245 0.797516 0.807983 0.312042 0.799438 0.807404 0.349945 0.801392 0.806946 0.389771 0.803314 0.806366 0.431152 0.805176 0.805908 0.474060 0.807037 0.805420 0.518036 0.808960 0.804932 0.562256 0.810730 0.804840 0.605347 0.812561 0.804840 0.646454 0.814331 0.804840 0.685333 0.816101 0.804840 0.721558 0.817902 0.804840 0.754913 0.819580 0.804840 0.785278 0.821320 0.804840 0.812775 0.822998 0.804840 0.837646 0.824615 0.804840 0.860229 0.826294 0.804840 0.880737 0.827881 0.804840 0.899384 0.829498 0.804840 0.916382 0.831055 0.804840 0.931763 0.832550 0.804840 0.945801 0.834106 0.804840 0.958466 0.835602 0.804840 0.969879 0.837067 0.804840 0.980042 0.838470 0.804840 0.989075 0.839935 0.804840 0.104370 0.815063 0.810242 0.129883 0.816895 0.809692 0.156647 0.818695 0.809113 0.184967 0.820496 0.808533 0.214905 0.822266 0.808014 0.246735 0.824036 0.807465 0.280609 0.825836 0.806946 0.316620 0.827545 0.806396 0.354858 0.829285 0.805908 0.394806 0.831024 0.805420 0.436432 0.832672 0.804962 0.479431 0.834351 0.804840 0.523376 0.835968 0.804840 0.567596 0.837616 0.804840 0.610413 0.839264 0.804840 0.651215 0.840820 0.804840 0.689789 0.842438 0.804840 0.725677 0.843964 0.804840 0.758636 0.845490 0.804840 0.788666 0.847046 0.804840 0.815796 0.848541 0.804840 0.840363 0.850006 0.804840 0.862640 0.851471 0.804840 0.882965 0.852905 0.804840 0.901367 0.854279 0.804840 0.918152 0.855652 0.804840 0.933350 0.857025 0.804840 0.947235 0.858368 0.804840 0.959747 0.859711 0.804840 0.970978 0.860992 0.804840 0.981049 0.862244 0.804840 0.989929 0.863495 0.804840 0.107513 0.841644 0.809113 0.133148 0.843231 0.808563 0.160156 0.844849 0.808014 0.188629 0.846497 0.807465 0.218781 0.848083 0.806976 0.250885 0.849701 0.806427 0.285065 0.851257 0.805939 0.321289 0.852814 0.805420 0.359650 0.854370 0.804962 0.399902 0.855896 0.804840 0.441650 0.857422 0.804840 0.484772 0.858887 0.804840 0.528778 0.860382 0.804840 0.572845 0.861847 0.804840 0.615417 0.863281 0.804840 0.655914 0.864685 0.804840 0.694183 0.866089 0.804840 0.729706 0.867523 0.804840 0.762268 0.868835 0.804840 0.791901 0.870209 0.804840 0.818726 0.871552 0.804840 0.842957 0.872833 0.804840 0.865021 0.874146 0.804840 0.885040 0.875397 0.804840 0.903259 0.876617 0.804840 0.919830 0.877869 0.804840 0.934875 0.879059 0.804840 0.948578 0.880249 0.804840 0.960938 0.881409 0.804840 0.972076 0.882538 0.804840 0.981995 0.883667 0.804840 0.990753 0.884766 0.804840 0.110687 0.865540 0.808044 0.136475 0.866974 0.807495 0.163666 0.868439 0.806976 0.192352 0.869934 0.806427 0.222687 0.871338 0.805969 0.254944 0.872803 0.805420 0.289398 0.874237 0.804962 0.325928 0.875549 0.804840 0.364502 0.876984 0.804840 0.404877 0.878357 0.804840 0.446777 0.879669 0.804840 0.489990 0.881042 0.804840 0.534180 0.882324 0.804840 0.578064 0.883636 0.804840 0.620300 0.884949 0.804840 0.660553 0.886200 0.804840 0.698425 0.887482 0.804840 0.733643 0.888702 0.804840 0.765839 0.889923 0.804840 0.795074 0.891083 0.804840 0.821564 0.892303 0.804840 0.845490 0.893463 0.804840 0.867279 0.894592 0.804840 0.887085 0.895721 0.804840 0.905090 0.896790 0.804840 0.921509 0.897888 0.804840 0.936371 0.898926 0.804840 0.949890 0.899994 0.804840 0.962128 0.901031 0.804840 0.973083 0.902008 0.804840 0.982880 0.902985 0.804840 0.991516 0.903931 0.804840 0.113861 0.887085 0.806976 0.139801 0.888397 0.806458 0.167145 0.889709 0.805969 0.196014 0.891052 0.805450 0.226593 0.892334 0.804962 0.259094 0.893616 0.804840 0.293793 0.894897 0.804840 0.330505 0.896149 0.804840 0.369354 0.897369 0.804840 0.409821 0.898590 0.804840 0.451935 0.899780 0.804840 0.495239 0.901001 0.804840 0.539368 0.902161 0.804840 0.583038 0.903320 0.804840 0.625092 0.904510 0.804840 0.665009 0.905579 0.804840 0.702545 0.906738 0.804840 0.737366 0.907837 0.804840 0.769226 0.908875 0.804840 0.798096 0.909973 0.804840 0.824188 0.911011 0.804840 0.847931 0.912018 0.804840 0.869476 0.913025 0.804840 0.889069 0.914001 0.804840 0.906860 0.915009 0.804840 0.923065 0.915985 0.804840 0.937805 0.916901 0.804840 0.951141 0.917786 0.804840 0.963196 0.918701 0.804840 0.974060 0.919556 0.804840 0.983734 0.920441 0.804840 0.992218 0.921265 0.804840 0.117035 0.906586 0.806000 0.143127 0.907745 0.805481 0.170624 0.908936 0.804962 0.199707 0.910126 0.804840 0.230469 0.911285 0.804840 0.263214 0.912415 0.804840 0.298126 0.913544 0.804840 0.335114 0.914673 0.804840 0.374054 0.915802 0.804840 0.414764 0.916870 0.804840 0.456970 0.917938 0.804840 0.500397 0.919006 0.804840 0.544495 0.920044 0.804840 0.587982 0.921082 0.804840 0.629761 0.922119 0.804840 0.669312 0.923126 0.804840 0.706604 0.924103 0.804840 0.741058 0.925079 0.804840 0.772522 0.925995 0.804840 0.801056 0.926971 0.804840 0.826843 0.927887 0.804840 0.850311 0.928772 0.804840 0.871582 0.929718 0.804840 0.890900 0.930542 0.804840 0.908539 0.931427 0.804840 0.924561 0.932251 0.804840 0.939117 0.933044 0.804840 0.952332 0.933868 0.804840 0.964294 0.934662 0.804840 0.974976 0.935425 0.804840 0.984528 0.936157 0.804840 0.992889 0.936859 0.804840 0.120178 0.924133 0.804993 0.146423 0.925201 0.804840 0.174103 0.926270 0.804840 0.203339 0.927338 0.804840 0.234314 0.928314 0.804840 0.267334 0.929413 0.804840 0.302429 0.930359 0.804840 0.339661 0.931366 0.804840 0.378815 0.932373 0.804840 0.419647 0.933319 0.804840 0.461945 0.934296 0.804840 0.505402 0.935272 0.804840 0.549500 0.936157 0.804840 0.592804 0.937103 0.804840 0.634277 0.938019 0.804840 0.673584 0.938904 0.804840 0.710510 0.939758 0.804840 0.744568 0.940643 0.804840 0.775665 0.941437 0.804840 0.803864 0.942261 0.804840 0.829346 0.943115 0.804840 0.852570 0.943909 0.804840 0.873566 0.944702 0.804840 0.892731 0.945435 0.804840 0.910156 0.946198 0.804840 0.925995 0.946930 0.804840 0.940399 0.947632 0.804840 0.953491 0.948334 0.804840 0.965271 0.949005 0.804840 0.975861 0.949677 0.804840 0.985260 0.950317 0.804840 0.993561 0.950958 0.804840 0.123383 0.940002 0.804840 0.149750 0.940948 0.804840 0.177551 0.941895 0.804840 0.207001 0.942810 0.804840 0.238159 0.943726 0.804840 0.271393 0.944672 0.804840 0.306702 0.945557 0.804840 0.344147 0.946442 0.804840 0.383484 0.947327 0.804840 0.424438 0.948181 0.804840 0.466858 0.949036 0.804840 0.510376 0.949890 0.804840 0.554443 0.950684 0.804840 0.597412 0.951508 0.804840 0.638702 0.952271 0.804840 0.677704 0.953094 0.804840 0.714233 0.953827 0.804840 0.747925 0.954559 0.804840 0.778717 0.955322 0.804840 0.806549 0.956055 0.804840 0.831787 0.956726 0.804840 0.854706 0.957428 0.804840 0.875519 0.958130 0.804840 0.894440 0.958801 0.804840 0.911652 0.959442 0.804840 0.927368 0.960114 0.804840 0.941620 0.960693 0.804840 0.954529 0.961304 0.804840 0.966187 0.961884 0.804840 0.976654 0.962463 0.804840 0.985962 0.963043 0.804840 0.994141 0.963562 0.804840 0.126465 0.954224 0.804840 0.153015 0.955078 0.804840 0.181030 0.955902 0.804840 0.210571 0.956726 0.804840 0.242004 0.957550 0.804840 0.275391 0.958374 0.804840 0.310944 0.959137 0.804840 0.348572 0.959930 0.804840 0.388062 0.960693 0.804840 0.429169 0.961456 0.804840 0.471680 0.962250 0.804840 0.515259 0.962952 0.804840 0.559174 0.963654 0.804840 0.601959 0.964355 0.804840 0.642883 0.965057 0.804840 0.681671 0.965759 0.804840 0.717834 0.966431 0.804840 0.751190 0.967102 0.804840 0.781616 0.967712 0.804840 0.809143 0.968353 0.804840 0.834076 0.968994 0.804840 0.856720 0.969543 0.804840 0.877350 0.970154 0.804840 0.896057 0.970734 0.804840 0.913116 0.971283 0.804840 0.928650 0.971832 0.804840 0.942749 0.972321 0.804840 0.955536 0.972900 0.804840 0.967102 0.973389 0.804840 0.977448 0.973877 0.804840 0.986633 0.974335 0.804840 0.994720 0.974823 0.804840 0.129608 0.966949 0.804840 0.156281 0.967712 0.804840 0.184418 0.968445 0.804840 0.214172 0.969147 0.804840 0.245728 0.969879 0.804840 0.279388 0.970612 0.804840 0.315125 0.971283 0.804840 0.352936 0.971985 0.804840 0.392548 0.972656 0.804840 0.433777 0.973297 0.804840 0.476349 0.973969 0.804840 0.519958 0.974579 0.804840 0.563782 0.975220 0.804840 0.606384 0.975830 0.804840 0.647034 0.976440 0.804840 0.685394 0.977020 0.804840 0.721283 0.977600 0.804840 0.754303 0.978149 0.804840 0.784393 0.978760 0.804840 0.811615 0.979279 0.804840 0.836273 0.979797 0.804840 0.858704 0.980316 0.804840 0.879089 0.980835 0.804840 0.897614 0.981293 0.804840 0.914520 0.981781 0.804840 0.929840 0.982239 0.804840 0.943848 0.982666 0.804840 0.956512 0.983124 0.804840 0.967896 0.983521 0.804840 0.978149 0.983917 0.804840 0.987213 0.984344 0.804840 0.995239 0.984711 0.804840 0.045349 0.006683 0.856476 0.067505 0.007568 0.856171 0.090637 0.008484 0.855804 0.114807 0.009399 0.855469 0.140289 0.010345 0.855133 0.167023 0.011322 0.854797 0.195374 0.012329 0.854401 0.225372 0.013397 0.853973 0.257233 0.014435 0.853577 0.291260 0.015533 0.853180 0.327454 0.016632 0.852722 0.365540 0.017731 0.852264 0.405487 0.018890 0.851807 0.447083 0.020081 0.851349 0.489807 0.021240 0.850891 0.533661 0.022491 0.850403 0.577332 0.023712 0.849915 0.619385 0.024963 0.849426 0.659515 0.026245 0.848907 0.697296 0.027496 0.848389 0.732513 0.028809 0.847870 0.764832 0.030151 0.847321 0.794189 0.031494 0.846802 0.820801 0.032898 0.846252 0.844971 0.034271 0.845673 0.866852 0.035645 0.845154 0.886841 0.037079 0.844574 0.905029 0.038544 0.843994 0.921539 0.039978 0.843475 0.936584 0.041412 0.842865 0.950226 0.042908 0.842316 0.962524 0.044403 0.841736 0.047119 0.028198 0.855835 0.069336 0.029175 0.855499 0.092621 0.030182 0.855133 0.116974 0.031189 0.854797 0.142578 0.032257 0.854401 0.169525 0.033295 0.854004 0.198059 0.034424 0.853607 0.228302 0.035522 0.853180 0.260437 0.036652 0.852753 0.294739 0.037811 0.852295 0.331146 0.039032 0.851837 0.369537 0.040253 0.851349 0.409729 0.041473 0.850891 0.451447 0.042755 0.850403 0.494415 0.044006 0.849915 0.538361 0.045319 0.849426 0.581879 0.046661 0.848938 0.623901 0.048004 0.848389 0.663818 0.049347 0.847870 0.701416 0.050720 0.847351 0.736359 0.052124 0.846802 0.768372 0.053558 0.846283 0.797394 0.054993 0.845703 0.823761 0.056488 0.845154 0.847656 0.057953 0.844604 0.869354 0.059448 0.844025 0.889099 0.060913 0.843475 0.907074 0.062408 0.842896 0.923431 0.063965 0.842316 0.938324 0.065552 0.841736 0.951782 0.067108 0.841187 0.963989 0.068665 0.840607 0.048920 0.050751 0.855164 0.071320 0.051819 0.854797 0.094696 0.052887 0.854401 0.119263 0.054016 0.854004 0.145020 0.055176 0.853607 0.172150 0.056305 0.853180 0.200897 0.057526 0.852753 0.231354 0.058746 0.852295 0.263733 0.059967 0.851868 0.298279 0.061218 0.851379 0.335022 0.062531 0.850891 0.373627 0.063812 0.850433 0.414032 0.065155 0.849945 0.455933 0.066467 0.849457 0.499115 0.067902 0.848938 0.543182 0.069305 0.848419 0.586670 0.070679 0.847870 0.628479 0.072144 0.847382 0.668274 0.073639 0.846832 0.705566 0.075073 0.846283 0.740204 0.076569 0.845703 0.771942 0.078094 0.845184 0.800659 0.079620 0.844635 0.826721 0.081207 0.844055 0.850372 0.082764 0.843506 0.871857 0.084320 0.842926 0.891388 0.085938 0.842346 0.909180 0.087524 0.841766 0.925354 0.089172 0.841187 0.940063 0.090851 0.840607 0.953369 0.092468 0.840057 0.965424 0.094147 0.839478 0.050842 0.074432 0.854431 0.073364 0.075562 0.854034 0.096893 0.076752 0.853607 0.121613 0.077972 0.853210 0.147552 0.079224 0.852783 0.174896 0.080444 0.852325 0.203857 0.081757 0.851868 0.234528 0.083099 0.851410 0.267151 0.084412 0.850922 0.302063 0.085785 0.850464 0.338989 0.087189 0.849945 0.377869 0.088562 0.849487 0.418579 0.090027 0.848969 0.460602 0.091431 0.848450 0.503998 0.092926 0.847900 0.548187 0.094452 0.847382 0.591492 0.095978 0.846863 0.633179 0.097504 0.846283 0.672729 0.099121 0.845734 0.709778 0.100677 0.845215 0.744080 0.102264 0.844635 0.775513 0.103912 0.844055 0.803925 0.105530 0.843506 0.829712 0.107178 0.842926 0.853058 0.108826 0.842377 0.874329 0.110565 0.841797 0.893646 0.112244 0.841217 0.911224 0.113953 0.840668 0.927246 0.115692 0.840088 0.941803 0.117462 0.839508 0.954956 0.119202 0.838959 0.966797 0.120972 0.838348 0.052887 0.099304 0.853607 0.075500 0.100555 0.853210 0.099243 0.101776 0.852783 0.124084 0.103119 0.852356 0.150208 0.104523 0.851898 0.177704 0.105835 0.851410 0.206909 0.107269 0.850952 0.237823 0.108704 0.850464 0.270782 0.110138 0.849976 0.305878 0.111603 0.849487 0.343109 0.113098 0.848999 0.382233 0.114624 0.848450 0.423126 0.116211 0.847931 0.465485 0.117737 0.847412 0.509033 0.119385 0.846863 0.553223 0.120972 0.846313 0.596436 0.122589 0.845764 0.637909 0.124268 0.845215 0.677185 0.125946 0.844635 0.713989 0.127625 0.844086 0.748016 0.129364 0.843536 0.779053 0.131073 0.842957 0.807159 0.132812 0.842377 0.832672 0.134583 0.841797 0.855774 0.136353 0.841248 0.876801 0.138153 0.840668 0.895905 0.139984 0.840088 0.913300 0.141785 0.839539 0.929138 0.143677 0.838959 0.943512 0.145538 0.838379 0.956512 0.147369 0.837830 0.968231 0.149261 0.837250 0.054993 0.125488 0.852814 0.077789 0.126862 0.852356 0.101624 0.128265 0.851898 0.126678 0.129700 0.851440 0.152954 0.131195 0.850952 0.180695 0.132629 0.850494 0.210083 0.134186 0.850006 0.241302 0.135742 0.849518 0.274445 0.137299 0.848999 0.309875 0.138916 0.848480 0.347351 0.140503 0.847961 0.386749 0.142181 0.847443 0.427856 0.143829 0.846893 0.470367 0.145477 0.846344 0.514069 0.147217 0.845764 0.558380 0.148987 0.845215 0.601379 0.150726 0.844666 0.642670 0.152496 0.844116 0.681793 0.154327 0.843536 0.718262 0.156128 0.842987 0.751953 0.157928 0.842407 0.782623 0.159760 0.841858 0.810425 0.161682 0.841248 0.835632 0.163605 0.840698 0.858490 0.165466 0.840118 0.879272 0.167419 0.839569 0.898163 0.169342 0.838989 0.915375 0.171295 0.838409 0.931030 0.173279 0.837830 0.945190 0.175293 0.837250 0.958038 0.177246 0.836731 0.969604 0.179260 0.836151 0.057190 0.153198 0.851929 0.080170 0.154724 0.851440 0.104126 0.156219 0.850983 0.129333 0.157776 0.850525 0.155823 0.159393 0.850006 0.183777 0.160980 0.849518 0.213379 0.162659 0.849030 0.244812 0.164368 0.848480 0.278320 0.166046 0.847961 0.314026 0.167786 0.847443 0.351715 0.169495 0.846893 0.391418 0.171295 0.846375 0.432739 0.173096 0.845795 0.475464 0.174896 0.845245 0.519257 0.176758 0.844666 0.563538 0.178650 0.844147 0.606445 0.180542 0.843567 0.647522 0.182465 0.842987 0.686340 0.184418 0.842438 0.722504 0.186310 0.841858 0.755859 0.188354 0.841278 0.786224 0.190277 0.840698 0.813660 0.192352 0.840149 0.838593 0.194366 0.839569 0.861206 0.196350 0.838989 0.881744 0.198456 0.838409 0.900421 0.200531 0.837860 0.917450 0.202637 0.837280 0.932892 0.204742 0.836731 0.946899 0.206909 0.836151 0.959564 0.208984 0.835632 0.970978 0.211151 0.835083 0.059509 0.182587 0.850983 0.082611 0.184235 0.850525 0.106750 0.185913 0.850037 0.132080 0.187622 0.849518 0.158783 0.189362 0.849030 0.186920 0.191101 0.848480 0.216736 0.192932 0.847992 0.248474 0.194733 0.847473 0.282227 0.196594 0.846893 0.318237 0.198456 0.846375 0.356232 0.200348 0.845825 0.396118 0.202301 0.845276 0.437744 0.204254 0.844696 0.480621 0.206177 0.844177 0.524628 0.208191 0.843597 0.568787 0.210266 0.843018 0.611542 0.212250 0.842468 0.652374 0.214355 0.841888 0.690857 0.216400 0.841309 0.726776 0.218506 0.840698 0.759827 0.220673 0.840149 0.789764 0.222778 0.839569 0.816925 0.224915 0.839020 0.841583 0.227173 0.838409 0.863892 0.229340 0.837891 0.884216 0.231567 0.837311 0.902679 0.233795 0.836761 0.919434 0.236023 0.836182 0.934723 0.238312 0.835632 0.948547 0.240540 0.835083 0.961090 0.242828 0.834564 0.972321 0.245117 0.833984 0.061920 0.213867 0.850067 0.085114 0.215698 0.849548 0.109436 0.217529 0.849060 0.134949 0.219391 0.848511 0.161835 0.221313 0.847992 0.190186 0.223175 0.847473 0.220276 0.225159 0.846924 0.252228 0.227142 0.846405 0.286285 0.229156 0.845825 0.322540 0.231201 0.845276 0.360840 0.233246 0.844727 0.401031 0.235352 0.844177 0.442810 0.237457 0.843597 0.485870 0.239563 0.843048 0.529968 0.241791 0.842468 0.574097 0.243958 0.841888 0.616669 0.246124 0.841339 0.657288 0.248383 0.840729 0.695435 0.250610 0.840179 0.731018 0.252930 0.839600 0.763733 0.255219 0.839020 0.793304 0.257477 0.838440 0.820160 0.259857 0.837891 0.844513 0.262207 0.837311 0.866547 0.264526 0.836792 0.886658 0.266907 0.836212 0.904907 0.269348 0.835632 0.921448 0.271759 0.835114 0.936584 0.274170 0.834595 0.950226 0.276581 0.834015 0.962585 0.279083 0.833496 0.973694 0.281555 0.833008 0.064392 0.247345 0.849060 0.087769 0.249359 0.848511 0.112213 0.251282 0.848022 0.137878 0.253357 0.847473 0.164948 0.255432 0.846954 0.193542 0.257507 0.846436 0.223846 0.259644 0.845825 0.256042 0.261780 0.845306 0.290436 0.263977 0.844727 0.327026 0.266266 0.844177 0.365540 0.268433 0.843597 0.405914 0.270752 0.843048 0.447937 0.273071 0.842499 0.491180 0.275330 0.841888 0.535492 0.277679 0.841339 0.579346 0.280060 0.840759 0.621765 0.282471 0.840210 0.662140 0.284882 0.839600 0.700043 0.287292 0.839050 0.735321 0.289764 0.838440 0.767578 0.292236 0.837921 0.796814 0.294708 0.837311 0.823334 0.297241 0.836792 0.847412 0.299774 0.836212 0.869171 0.302277 0.835663 0.889069 0.304840 0.835144 0.907043 0.307404 0.834595 0.923431 0.309998 0.834045 0.938354 0.312622 0.833496 0.951874 0.315186 0.833038 0.964081 0.317810 0.832489 0.975006 0.320465 0.831970 0.066895 0.283203 0.848053 0.090424 0.285400 0.847504 0.115021 0.287537 0.846954 0.140930 0.289795 0.846436 0.168152 0.291992 0.845886 0.197021 0.294342 0.845337 0.227509 0.296661 0.844757 0.259979 0.298950 0.844208 0.294708 0.301361 0.843628 0.331512 0.303772 0.843079 0.370300 0.306244 0.842529 0.410950 0.308716 0.841919 0.453186 0.311218 0.841370 0.496552 0.313629 0.840759 0.540955 0.316254 0.840210 0.584747 0.318665 0.839661 0.626923 0.321289 0.839081 0.667023 0.323944 0.838470 0.704620 0.326477 0.837952 0.739532 0.329163 0.837341 0.771423 0.331818 0.836823 0.800293 0.334442 0.836243 0.826538 0.337158 0.835663 0.850281 0.339844 0.835144 0.871796 0.342499 0.834595 0.891418 0.345245 0.834076 0.909241 0.347900 0.833527 0.925446 0.350708 0.833038 0.940155 0.353485 0.832489 0.953491 0.356140 0.832001 0.965515 0.358948 0.831512 0.976288 0.361725 0.831024 0.069519 0.321625 0.846985 0.093170 0.323883 0.846436 0.117950 0.326324 0.845917 0.144043 0.328735 0.845337 0.171448 0.331146 0.844788 0.200500 0.333679 0.844208 0.231323 0.336243 0.843658 0.264099 0.338715 0.843109 0.299072 0.341217 0.842529 0.336151 0.343842 0.841919 0.375183 0.346436 0.841400 0.416107 0.349091 0.840790 0.458466 0.351715 0.840240 0.502045 0.354370 0.839661 0.546478 0.357147 0.839081 0.590118 0.359802 0.838531 0.632080 0.362579 0.837952 0.671936 0.365356 0.837341 0.709167 0.368042 0.836853 0.743713 0.370850 0.836273 0.775238 0.373657 0.835693 0.803802 0.376465 0.835175 0.829681 0.379333 0.834625 0.853149 0.382172 0.834076 0.874390 0.384979 0.833557 0.893738 0.387848 0.833038 0.911346 0.390686 0.832520 0.927368 0.393585 0.832001 0.941925 0.396484 0.831512 0.955078 0.399292 0.831055 0.966919 0.402191 0.830566 0.977539 0.405121 0.830109 0.072205 0.362396 0.845917 0.096008 0.364868 0.845367 0.120972 0.367462 0.844788 0.147186 0.370056 0.844238 0.174835 0.372650 0.843689 0.204102 0.375305 0.843140 0.235168 0.378021 0.842529 0.268188 0.380676 0.841949 0.303467 0.383423 0.841431 0.340881 0.386200 0.840820 0.380157 0.388916 0.840240 0.421265 0.391724 0.839661 0.463837 0.394501 0.839111 0.507568 0.397339 0.838562 0.552063 0.400269 0.837952 0.595459 0.403015 0.837372 0.637207 0.405914 0.836853 0.676758 0.408875 0.836273 0.713684 0.411682 0.835724 0.747894 0.414673 0.835205 0.779022 0.417664 0.834656 0.807190 0.420502 0.834106 0.832733 0.423523 0.833557 0.855896 0.426422 0.833069 0.876953 0.429382 0.832520 0.896088 0.432373 0.832062 0.913422 0.435333 0.831543 0.929260 0.438324 0.831055 0.943634 0.441376 0.830597 0.956604 0.444244 0.830139 0.968323 0.447266 0.829681 0.978790 0.450317 0.829224 0.074951 0.405334 0.844788 0.098877 0.407990 0.844269 0.124054 0.410736 0.843689 0.150452 0.413483 0.843140 0.178314 0.416168 0.842560 0.207825 0.419098 0.841980 0.239166 0.421906 0.841431 0.272430 0.424744 0.840851 0.307983 0.427612 0.840271 0.345612 0.430450 0.839691 0.385223 0.433380 0.839142 0.426514 0.436340 0.838562 0.469238 0.439270 0.837982 0.513153 0.442230 0.837402 0.557617 0.445221 0.836884 0.600830 0.448181 0.836273 0.642334 0.451202 0.835754 0.681580 0.454224 0.835205 0.718201 0.457214 0.834656 0.752014 0.460266 0.834106 0.782776 0.463379 0.833588 0.810577 0.466370 0.833099 0.835815 0.469391 0.832550 0.858673 0.472382 0.832062 0.879486 0.475464 0.831543 0.898346 0.478546 0.831085 0.915527 0.481598 0.830597 0.931122 0.484650 0.830170 0.945312 0.487762 0.829681 0.958130 0.490753 0.829224 0.969666 0.493835 0.829010 0.979980 0.496826 0.829010 0.077728 0.450165 0.843719 0.101837 0.452911 0.843140 0.127167 0.455811 0.842560 0.153748 0.458710 0.841980 0.181824 0.461578 0.841461 0.211548 0.464569 0.840851 0.243164 0.467560 0.840271 0.276764 0.470490 0.839691 0.312592 0.473480 0.839142 0.350464 0.476440 0.838562 0.390320 0.479462 0.838013 0.431824 0.482544 0.837402 0.474731 0.485565 0.836914 0.518799 0.488678 0.836304 0.563202 0.491760 0.835754 0.606201 0.494781 0.835236 0.647430 0.497894 0.834686 0.686371 0.501007 0.834137 0.722595 0.504089 0.833588 0.756042 0.507202 0.833099 0.786377 0.510345 0.832581 0.813934 0.513458 0.832062 0.838806 0.516602 0.831573 0.861389 0.519653 0.831085 0.881927 0.522797 0.830597 0.900604 0.525940 0.830170 0.917542 0.528992 0.829712 0.932983 0.532104 0.829254 0.946960 0.535217 0.829010 0.959625 0.538269 0.829010 0.971008 0.541290 0.829010 0.981140 0.544342 0.829010 0.080627 0.496490 0.842590 0.104889 0.499390 0.842041 0.130341 0.502441 0.841492 0.157135 0.505432 0.840851 0.185394 0.508392 0.840302 0.215363 0.511444 0.839722 0.247131 0.514465 0.839203 0.281067 0.517517 0.838593 0.317230 0.520721 0.838013 0.355377 0.523743 0.837494 0.395477 0.526855 0.836914 0.437195 0.529968 0.836304 0.480225 0.533112 0.835785 0.524384 0.536255 0.835236 0.568726 0.539398 0.834686 0.611542 0.542480 0.834167 0.652557 0.545654 0.833588 0.691132 0.548798 0.833130 0.727020 0.551880 0.832581 0.760040 0.554993 0.832092 0.790009 0.558014 0.831604 0.817200 0.561127 0.831116 0.841766 0.564209 0.830597 0.864075 0.567200 0.830170 0.884338 0.570251 0.829712 0.902802 0.573334 0.829254 0.919525 0.576324 0.829010 0.934784 0.579285 0.829010 0.948578 0.582306 0.829010 0.961090 0.585205 0.829010 0.972290 0.588196 0.829010 0.982300 0.591003 0.829010 0.083527 0.543945 0.841492 0.107941 0.546997 0.840881 0.133606 0.549957 0.840332 0.160614 0.553009 0.839722 0.189056 0.556030 0.839203 0.219238 0.559082 0.838593 0.251312 0.562195 0.838043 0.285492 0.565186 0.837494 0.321930 0.568268 0.836914 0.360352 0.571259 0.836334 0.400635 0.574310 0.835815 0.442535 0.577393 0.835236 0.485809 0.580414 0.834717 0.530029 0.583466 0.834167 0.574219 0.586517 0.833618 0.616821 0.589478 0.833130 0.657562 0.592529 0.832611 0.695801 0.595551 0.832092 0.731354 0.598541 0.831604 0.763977 0.601501 0.831116 0.793579 0.604431 0.830627 0.820374 0.607391 0.830170 0.844666 0.610382 0.829742 0.866699 0.613251 0.829285 0.886719 0.616119 0.829010 0.904938 0.619049 0.829010 0.921478 0.621887 0.829010 0.936523 0.624695 0.829010 0.950165 0.627533 0.829010 0.962463 0.630249 0.829010 0.973541 0.632996 0.829010 0.983368 0.635712 0.829010 0.086487 0.590698 0.840363 0.111023 0.593597 0.839752 0.136871 0.596588 0.839203 0.164062 0.599518 0.838623 0.192749 0.602386 0.838074 0.223175 0.605408 0.837524 0.255493 0.608246 0.836945 0.290009 0.611267 0.836395 0.326721 0.614227 0.835815 0.365295 0.617096 0.835266 0.405853 0.620026 0.834747 0.447968 0.622986 0.834167 0.491333 0.625854 0.833649 0.535706 0.628754 0.833130 0.579712 0.631653 0.832611 0.622101 0.634521 0.832123 0.662537 0.637390 0.831635 0.700439 0.640259 0.831146 0.735596 0.643036 0.830658 0.767822 0.645874 0.830200 0.797089 0.648651 0.829742 0.823517 0.651398 0.829285 0.847534 0.654175 0.829010 0.869232 0.656891 0.829010 0.889069 0.659576 0.829010 0.907043 0.662354 0.829010 0.923340 0.664917 0.829010 0.938232 0.667603 0.829010 0.951691 0.670197 0.829010 0.963837 0.672791 0.829010 0.974762 0.675323 0.829010 0.984436 0.677795 0.829010 0.089508 0.635529 0.839203 0.114227 0.638306 0.838654 0.140167 0.641113 0.838074 0.167603 0.643951 0.837524 0.196472 0.646698 0.836945 0.227173 0.649536 0.836426 0.259705 0.652313 0.835846 0.294495 0.655121 0.835297 0.331451 0.657928 0.834778 0.370331 0.660645 0.834198 0.411102 0.663422 0.833649 0.453430 0.666199 0.833160 0.496857 0.668854 0.832642 0.541290 0.671661 0.832123 0.585175 0.674377 0.831635 0.627289 0.676971 0.831177 0.667389 0.679688 0.830658 0.704926 0.682312 0.830231 0.739807 0.684998 0.829742 0.771637 0.687592 0.829315 0.800446 0.690125 0.829010 0.826599 0.692749 0.829010 0.850281 0.695282 0.829010 0.871735 0.697815 0.829010 0.891296 0.700317 0.829010 0.909088 0.702759 0.829010 0.925232 0.705139 0.829010 0.939911 0.707611 0.829010 0.953186 0.709961 0.829010 0.965179 0.712372 0.829010 0.975952 0.714691 0.829010 0.985474 0.716919 0.829010 0.092499 0.677917 0.838104 0.117371 0.680450 0.837524 0.143555 0.683167 0.836975 0.171112 0.685730 0.836456 0.200256 0.688416 0.835846 0.231171 0.691040 0.835297 0.263977 0.693634 0.834778 0.299072 0.696259 0.834198 0.336304 0.698883 0.833679 0.375427 0.701416 0.833191 0.416382 0.704010 0.832672 0.458832 0.706573 0.832153 0.502472 0.709076 0.831635 0.546906 0.711609 0.831177 0.590485 0.714050 0.830688 0.632416 0.716553 0.830231 0.672211 0.719025 0.829742 0.709381 0.721436 0.829315 0.743866 0.723846 0.829010 0.775360 0.726257 0.829010 0.803802 0.728607 0.829010 0.829620 0.730927 0.829010 0.852997 0.733307 0.829010 0.874237 0.735565 0.829010 0.893524 0.737823 0.829010 0.911072 0.740082 0.829010 0.927032 0.742249 0.829010 0.941498 0.744446 0.829010 0.954620 0.746552 0.829010 0.966492 0.748657 0.829010 0.977081 0.750793 0.829010 0.986481 0.752808 0.829010 0.095612 0.717346 0.837006 0.120605 0.719788 0.836456 0.146973 0.722260 0.835846 0.174683 0.724609 0.835327 0.204071 0.727112 0.834808 0.235199 0.729553 0.834229 0.268280 0.731873 0.833710 0.303650 0.734344 0.833191 0.341125 0.736755 0.832672 0.380493 0.739014 0.832184 0.421631 0.741394 0.831635 0.464264 0.743744 0.831177 0.507965 0.746002 0.830750 0.552460 0.748291 0.830231 0.595795 0.750519 0.829773 0.637482 0.752838 0.829315 0.676941 0.755066 0.829010 0.713806 0.757202 0.829010 0.747894 0.759430 0.829010 0.778961 0.761566 0.829010 0.807068 0.763702 0.829010 0.832520 0.765808 0.829010 0.855652 0.767853 0.829010 0.876587 0.769867 0.829010 0.895691 0.771912 0.829010 0.912964 0.773895 0.829010 0.928772 0.775848 0.829010 0.943085 0.777802 0.829010 0.956024 0.779663 0.829010 0.967712 0.781586 0.829010 0.978180 0.783417 0.829010 0.987457 0.785217 0.829010 0.098663 0.753510 0.835876 0.123901 0.755798 0.835358 0.150391 0.758026 0.834808 0.178314 0.760223 0.834259 0.207886 0.762451 0.833710 0.239288 0.764679 0.833221 0.272675 0.766815 0.832703 0.308258 0.768982 0.832184 0.346008 0.771149 0.831665 0.385590 0.773224 0.831207 0.426941 0.775360 0.830750 0.469604 0.777374 0.830261 0.513519 0.779510 0.829773 0.557892 0.781586 0.829315 0.601044 0.783569 0.829010 0.642456 0.785583 0.829010 0.681671 0.787567 0.829010 0.718140 0.789490 0.829010 0.751831 0.791443 0.829010 0.782501 0.793427 0.829010 0.810242 0.795258 0.829010 0.835388 0.797119 0.829010 0.858215 0.798950 0.829010 0.878906 0.800751 0.829010 0.897766 0.802551 0.829010 0.914886 0.804291 0.829010 0.930450 0.806061 0.829010 0.944580 0.807770 0.829010 0.957367 0.809418 0.829010 0.968933 0.811096 0.829010 0.979279 0.812714 0.829010 0.988373 0.814270 0.829010 0.101746 0.786285 0.834839 0.127167 0.788330 0.834259 0.153870 0.790344 0.833740 0.181976 0.792297 0.833252 0.211761 0.794312 0.832703 0.243408 0.796265 0.832214 0.277039 0.798248 0.831696 0.312897 0.800171 0.831207 0.350861 0.802124 0.830750 0.390625 0.803986 0.830292 0.432190 0.805878 0.829803 0.475006 0.807709 0.829346 0.518982 0.809570 0.829010 0.563293 0.811401 0.829010 0.606232 0.813171 0.829010 0.647339 0.814972 0.829010 0.686157 0.816803 0.829010 0.722321 0.818481 0.829010 0.755615 0.820221 0.829010 0.785950 0.821930 0.829010 0.813324 0.823578 0.829010 0.838165 0.825256 0.829010 0.860687 0.826843 0.829010 0.881165 0.828461 0.829010 0.899780 0.830078 0.829010 0.916718 0.831604 0.829010 0.932098 0.833160 0.829010 0.946075 0.834656 0.829010 0.958679 0.836090 0.829010 0.970062 0.837585 0.829010 0.980255 0.839020 0.829010 0.989258 0.840424 0.829010 0.104919 0.815704 0.833771 0.130463 0.817535 0.833252 0.157349 0.819397 0.832703 0.185638 0.821136 0.832245 0.215637 0.822906 0.831696 0.247498 0.824707 0.831207 0.281433 0.826447 0.830780 0.317566 0.828186 0.830292 0.355682 0.829865 0.829834 0.395752 0.831604 0.829407 0.437439 0.833313 0.829010 0.480377 0.834961 0.829010 0.524445 0.836609 0.829010 0.568634 0.838226 0.829010 0.611298 0.839813 0.829010 0.652130 0.841461 0.829010 0.690613 0.843018 0.829010 0.726410 0.844543 0.829010 0.759369 0.846100 0.829010 0.789276 0.847626 0.829010 0.816315 0.849060 0.829010 0.840851 0.850555 0.829010 0.863098 0.851959 0.829010 0.883331 0.853424 0.829010 0.901733 0.854797 0.829010 0.918427 0.856171 0.829010 0.933685 0.857544 0.829010 0.947510 0.858856 0.829010 0.959961 0.860168 0.829010 0.971191 0.861450 0.829010 0.981232 0.862732 0.829010 0.990082 0.863953 0.829010 0.108093 0.842194 0.832733 0.133789 0.843842 0.832245 0.160797 0.845459 0.831726 0.189331 0.847046 0.831238 0.219543 0.848694 0.830811 0.251617 0.850281 0.830292 0.285767 0.851807 0.829834 0.322174 0.853394 0.829407 0.360535 0.854919 0.829010 0.400818 0.856445 0.829010 0.442657 0.857971 0.829010 0.485718 0.859436 0.829010 0.529877 0.860931 0.829010 0.573883 0.862366 0.829010 0.616272 0.863800 0.829010 0.656799 0.865204 0.829010 0.695038 0.866638 0.829010 0.730438 0.867981 0.829010 0.763000 0.869354 0.829010 0.792480 0.870697 0.829010 0.819244 0.872009 0.829010 0.843475 0.873352 0.829010 0.865417 0.874603 0.829010 0.885468 0.875885 0.829010 0.903595 0.877136 0.829010 0.920135 0.878296 0.829010 0.935211 0.879486 0.829010 0.948853 0.880707 0.829010 0.961151 0.881805 0.829010 0.972260 0.882965 0.829010 0.982147 0.884064 0.829010 0.990906 0.885162 0.829010 0.111237 0.866058 0.831757 0.137115 0.867554 0.831268 0.164307 0.869019 0.830811 0.192993 0.870422 0.830322 0.223419 0.871887 0.829865 0.255737 0.873291 0.829437 0.290161 0.874695 0.829010 0.326813 0.876129 0.829010 0.365356 0.877441 0.829010 0.405792 0.878845 0.829010 0.447784 0.880188 0.829010 0.490936 0.881500 0.829010 0.535187 0.882843 0.829010 0.579010 0.884155 0.829010 0.621185 0.885406 0.829010 0.661438 0.886658 0.829010 0.699219 0.887939 0.829010 0.734314 0.889160 0.829010 0.766449 0.890350 0.829010 0.795624 0.891541 0.829010 0.822052 0.892731 0.829010 0.846008 0.893860 0.829010 0.867706 0.894958 0.829010 0.887482 0.896118 0.829010 0.905457 0.897186 0.829010 0.921783 0.898254 0.829010 0.936676 0.899323 0.829010 0.950134 0.900391 0.829010 0.962311 0.901398 0.829010 0.973297 0.902374 0.829010 0.983032 0.903320 0.829010 0.991638 0.904297 0.829010 0.114410 0.887573 0.830811 0.140442 0.888916 0.830353 0.167816 0.890228 0.829865 0.196716 0.891510 0.829437 0.227325 0.892792 0.829010 0.259857 0.894073 0.829010 0.294525 0.895355 0.829010 0.331421 0.896576 0.829010 0.370148 0.897797 0.829010 0.410767 0.899017 0.829010 0.452881 0.900269 0.829010 0.496185 0.901428 0.829010 0.540375 0.902618 0.829010 0.584015 0.903778 0.829010 0.625946 0.904907 0.829010 0.665863 0.906006 0.829010 0.703308 0.907104 0.829010 0.738068 0.908234 0.829010 0.769836 0.909302 0.829010 0.798615 0.910339 0.829010 0.824738 0.911377 0.829010 0.848389 0.912384 0.829010 0.869873 0.913391 0.829010 0.889374 0.914398 0.829010 0.907196 0.915375 0.829010 0.923340 0.916321 0.829010 0.938049 0.917267 0.829010 0.951385 0.918121 0.829010 0.963409 0.919006 0.829010 0.974243 0.919891 0.829010 0.983856 0.920715 0.829010 0.992371 0.921570 0.829010 0.117584 0.907013 0.829895 0.143768 0.908203 0.829468 0.171295 0.909393 0.829010 0.200348 0.910522 0.829010 0.231201 0.911682 0.829010 0.263947 0.912811 0.829010 0.298889 0.913940 0.829010 0.335968 0.915100 0.829010 0.374939 0.916199 0.829010 0.415710 0.917267 0.829010 0.457886 0.918335 0.829010 0.501251 0.919373 0.829010 0.545502 0.920441 0.829010 0.588837 0.921448 0.829010 0.630615 0.922485 0.829010 0.670197 0.923462 0.829010 0.707306 0.924438 0.829010 0.741669 0.925446 0.829010 0.773102 0.926361 0.829010 0.801544 0.927307 0.829010 0.827332 0.928223 0.829010 0.850739 0.929138 0.829010 0.871979 0.929993 0.829010 0.891266 0.930878 0.829010 0.908844 0.931732 0.829010 0.924835 0.932556 0.829010 0.939362 0.933350 0.829010 0.952545 0.934174 0.829010 0.964447 0.934937 0.829010 0.975128 0.935699 0.829010 0.984650 0.936432 0.829010 0.993011 0.937164 0.829010 0.120758 0.924530 0.829041 0.147034 0.925629 0.829010 0.174744 0.926605 0.829010 0.204010 0.927704 0.829010 0.235046 0.928741 0.829010 0.268066 0.929749 0.829010 0.303223 0.930756 0.829010 0.340515 0.931732 0.829010 0.379669 0.932739 0.829010 0.420502 0.933716 0.829010 0.462921 0.934662 0.829010 0.506378 0.935608 0.829010 0.550476 0.936523 0.829010 0.593658 0.937408 0.829010 0.635071 0.938324 0.829010 0.674377 0.939209 0.829010 0.711182 0.940063 0.829010 0.745178 0.940948 0.829010 0.776276 0.941803 0.829010 0.804321 0.942596 0.829010 0.829834 0.943390 0.829010 0.852966 0.944183 0.829010 0.873932 0.944946 0.829010 0.893066 0.945740 0.829010 0.910431 0.946442 0.829010 0.926239 0.947205 0.829010 0.940643 0.947906 0.829010 0.953674 0.948578 0.829010 0.965454 0.949249 0.829010 0.976013 0.949921 0.829010 0.985413 0.950562 0.829010 0.993683 0.951202 0.829010 0.123932 0.940308 0.829010 0.150360 0.941284 0.829010 0.178162 0.942200 0.829010 0.207672 0.943146 0.829010 0.238922 0.944092 0.829010 0.272125 0.944977 0.829010 0.307526 0.945862 0.829010 0.345001 0.946747 0.829010 0.384308 0.947632 0.829010 0.425323 0.948486 0.829010 0.467834 0.949341 0.829010 0.511261 0.950165 0.829010 0.555328 0.950989 0.829010 0.598328 0.951752 0.829010 0.639465 0.952576 0.829010 0.678497 0.953339 0.829010 0.714905 0.954102 0.829010 0.748566 0.954834 0.829010 0.779266 0.955597 0.829010 0.807037 0.956299 0.829010 0.832245 0.957001 0.829010 0.855103 0.957703 0.829010 0.875885 0.958374 0.829010 0.894745 0.959045 0.829010 0.911926 0.959686 0.829010 0.927612 0.960327 0.829010 0.941833 0.960938 0.829010 0.954712 0.961548 0.829010 0.966370 0.962128 0.829010 0.976837 0.962677 0.829010 0.986084 0.963226 0.829010 0.994263 0.963776 0.829010 0.127075 0.954498 0.829010 0.153656 0.955383 0.829010 0.181641 0.956207 0.829010 0.211273 0.957031 0.829010 0.242706 0.957855 0.829010 0.276154 0.958649 0.829010 0.311768 0.959442 0.829010 0.349396 0.960236 0.829010 0.388916 0.960999 0.829010 0.430023 0.961731 0.829010 0.472504 0.962463 0.829010 0.516083 0.963196 0.829010 0.560089 0.963928 0.829010 0.602783 0.964630 0.829010 0.643707 0.965332 0.829010 0.682343 0.966003 0.829010 0.718475 0.966675 0.829010 0.751831 0.967316 0.829010 0.782166 0.967957 0.829010 0.809601 0.968567 0.829010 0.834534 0.969208 0.829010 0.857117 0.969788 0.829010 0.877686 0.970367 0.829010 0.896393 0.970947 0.829010 0.913361 0.971497 0.829010 0.928864 0.972015 0.829010 0.942963 0.972565 0.829010 0.955719 0.973053 0.829010 0.967255 0.973541 0.829010 0.977600 0.974060 0.829010 0.986755 0.974518 0.829010 0.994812 0.974976 0.829010 0.130157 0.967224 0.829010 0.156891 0.967987 0.829010 0.185028 0.968689 0.829010 0.214844 0.969421 0.829010 0.246490 0.970154 0.829010 0.280121 0.970856 0.829010 0.315948 0.971558 0.829010 0.353760 0.972229 0.829010 0.393402 0.972900 0.829010 0.434631 0.973541 0.829010 0.477173 0.974182 0.829010 0.520782 0.974854 0.829010 0.564667 0.975464 0.829010 0.607147 0.976044 0.829010 0.647766 0.976654 0.829010 0.686127 0.977264 0.829010 0.721924 0.977814 0.829010 0.754883 0.978394 0.829010 0.784912 0.978912 0.829010 0.812042 0.979462 0.829010 0.836700 0.979980 0.829010 0.859039 0.980469 0.829010 0.879395 0.980988 0.829010 0.897888 0.981476 0.829010 0.914764 0.981934 0.829010 0.930084 0.982422 0.829010 0.944031 0.982849 0.829010 0.956635 0.983276 0.829010 0.968048 0.983673 0.829010 0.978302 0.984100 0.829010 0.987366 0.984467 0.829010 0.995331 0.984863 0.829010 0.045715 0.007019 0.876038 0.067810 0.007904 0.875793 0.090973 0.008789 0.875458 0.115234 0.009735 0.875153 0.140686 0.010712 0.874817 0.167511 0.011688 0.874481 0.195862 0.012756 0.874115 0.225922 0.013733 0.873779 0.257874 0.014801 0.873383 0.291931 0.015900 0.872986 0.328094 0.017029 0.872589 0.366333 0.018158 0.872192 0.406250 0.019318 0.871765 0.447815 0.020508 0.871338 0.490692 0.021667 0.870911 0.534515 0.022919 0.870453 0.578125 0.024139 0.869995 0.620239 0.025421 0.869568 0.660309 0.026672 0.869080 0.698120 0.028015 0.868591 0.733215 0.029358 0.868103 0.765503 0.030670 0.867645 0.794800 0.032013 0.867157 0.821411 0.033417 0.866608 0.845459 0.034790 0.866119 0.867340 0.036163 0.865631 0.887238 0.037598 0.865112 0.905396 0.039062 0.864594 0.921906 0.040527 0.864075 0.936859 0.041962 0.863556 0.950500 0.043427 0.863037 0.962830 0.044983 0.862518 0.047394 0.028595 0.875488 0.069702 0.029541 0.875183 0.092957 0.030548 0.874817 0.117401 0.031586 0.874481 0.143005 0.032623 0.874146 0.170013 0.033722 0.873779 0.198639 0.034821 0.873383 0.228851 0.035950 0.873016 0.261078 0.037109 0.872589 0.295441 0.038300 0.872192 0.331818 0.039490 0.871765 0.370270 0.040710 0.871338 0.410461 0.041931 0.870941 0.452271 0.043213 0.870483 0.495331 0.044495 0.870026 0.539185 0.045776 0.869568 0.582764 0.047119 0.869080 0.624756 0.048492 0.868622 0.664612 0.049866 0.868134 0.702179 0.051270 0.867645 0.737091 0.052704 0.867157 0.769043 0.054047 0.866638 0.798035 0.055573 0.866150 0.824280 0.056976 0.865662 0.848145 0.058441 0.865143 0.869812 0.059998 0.864594 0.889526 0.061462 0.864075 0.907471 0.063019 0.863586 0.923798 0.064575 0.863037 0.938629 0.066101 0.862549 0.952087 0.067688 0.862030 0.964264 0.069275 0.861481 0.049286 0.051147 0.874817 0.071686 0.052185 0.874512 0.095123 0.053314 0.874176 0.119659 0.054443 0.873779 0.145447 0.055603 0.873413 0.172668 0.056763 0.873016 0.201416 0.057983 0.872620 0.231934 0.059174 0.872223 0.264435 0.060425 0.871796 0.298950 0.061676 0.871368 0.335724 0.062988 0.870972 0.374420 0.064331 0.870483 0.414856 0.065643 0.870026 0.456879 0.067017 0.869568 0.500061 0.068420 0.869080 0.544098 0.069794 0.868652 0.587585 0.071259 0.868164 0.629364 0.072693 0.867645 0.669006 0.074127 0.867157 0.706390 0.075623 0.866669 0.740967 0.077148 0.866180 0.772583 0.078644 0.865662 0.801300 0.080200 0.865143 0.827240 0.081726 0.864624 0.850861 0.083344 0.864105 0.872314 0.084930 0.863586 0.891754 0.086517 0.863068 0.909546 0.088165 0.862549 0.925720 0.089783 0.862030 0.940369 0.091400 0.861481 0.953674 0.093109 0.860992 0.965668 0.094757 0.860443 0.051208 0.074860 0.874176 0.073761 0.075958 0.873810 0.097351 0.077209 0.873444 0.122070 0.078430 0.873047 0.148041 0.079651 0.872650 0.175415 0.080902 0.872253 0.204407 0.082245 0.871796 0.235107 0.083557 0.871368 0.267853 0.084930 0.870972 0.302734 0.086243 0.870514 0.339752 0.087677 0.870056 0.378693 0.089081 0.869568 0.419342 0.090515 0.869110 0.461517 0.092041 0.868652 0.504974 0.093506 0.868164 0.549103 0.095001 0.867676 0.592438 0.096558 0.867188 0.634064 0.098114 0.866699 0.673523 0.099670 0.866211 0.710602 0.101227 0.865662 0.744812 0.102844 0.865173 0.776123 0.104492 0.864624 0.804504 0.106110 0.864105 0.830231 0.107788 0.863617 0.853577 0.109467 0.863098 0.874817 0.111145 0.862579 0.894073 0.112854 0.862030 0.911621 0.114594 0.861511 0.927612 0.116364 0.860992 0.942078 0.118103 0.860504 0.955231 0.119843 0.859955 0.967072 0.121613 0.859436 0.053284 0.099762 0.873444 0.075928 0.100983 0.873077 0.099670 0.102295 0.872650 0.124573 0.103668 0.872253 0.150696 0.104980 0.871826 0.178314 0.106384 0.871399 0.207458 0.107788 0.870972 0.238434 0.109222 0.870514 0.271454 0.110687 0.870056 0.306641 0.112183 0.869598 0.343842 0.113678 0.869110 0.383118 0.115234 0.868683 0.424011 0.116730 0.868195 0.466400 0.118347 0.867706 0.509949 0.119934 0.867188 0.554108 0.121552 0.866730 0.597382 0.123199 0.866211 0.638824 0.124878 0.865662 0.678040 0.126526 0.865173 0.714813 0.128265 0.864624 0.748718 0.129974 0.864136 0.779694 0.131683 0.863617 0.807800 0.133484 0.863098 0.833221 0.135193 0.862610 0.856293 0.137024 0.862061 0.877289 0.138885 0.861511 0.896332 0.140656 0.861023 0.913666 0.142517 0.860504 0.929504 0.144348 0.859955 0.943787 0.146179 0.859436 0.956787 0.148102 0.858917 0.968475 0.149963 0.858429 0.055420 0.125977 0.872650 0.078186 0.127350 0.872284 0.102081 0.128784 0.871857 0.127167 0.130249 0.871399 0.153473 0.131683 0.871002 0.181274 0.133240 0.870514 0.210663 0.134705 0.870087 0.241913 0.136292 0.869629 0.275208 0.137878 0.869141 0.310638 0.139465 0.868713 0.348175 0.141113 0.868195 0.387634 0.142761 0.867706 0.428741 0.144409 0.867218 0.471344 0.146118 0.866730 0.515106 0.147888 0.866211 0.559265 0.149567 0.865692 0.602356 0.151367 0.865173 0.643585 0.153137 0.864685 0.682587 0.154938 0.864166 0.719086 0.156799 0.863647 0.752655 0.158630 0.863129 0.783295 0.160492 0.862610 0.811066 0.162384 0.862061 0.836151 0.164215 0.861542 0.859009 0.166168 0.861023 0.879730 0.168152 0.860535 0.898590 0.170044 0.859985 0.915802 0.172028 0.859467 0.931366 0.173981 0.858948 0.945526 0.175995 0.858429 0.958313 0.178009 0.857910 0.969879 0.179993 0.857422 0.057648 0.153717 0.871857 0.080627 0.155243 0.871429 0.104614 0.156799 0.871002 0.129822 0.158356 0.870544 0.156311 0.159973 0.870087 0.184357 0.161621 0.869659 0.213959 0.163239 0.869171 0.245453 0.164978 0.868713 0.279022 0.166687 0.868225 0.314728 0.168427 0.867737 0.352600 0.170197 0.867218 0.392273 0.171997 0.866760 0.433624 0.173767 0.866241 0.476440 0.175598 0.865692 0.520294 0.177429 0.865204 0.564453 0.179352 0.864685 0.607422 0.181244 0.864166 0.648438 0.183136 0.863678 0.687164 0.185089 0.863159 0.723297 0.187073 0.862640 0.756592 0.189056 0.862091 0.786865 0.191040 0.861572 0.814301 0.193085 0.861053 0.839142 0.195099 0.860535 0.861694 0.197174 0.859985 0.882233 0.199249 0.859467 0.900818 0.201294 0.858978 0.917816 0.203369 0.858429 0.933197 0.205505 0.857941 0.947235 0.207672 0.857422 0.959869 0.209808 0.856903 0.971252 0.211914 0.856445 0.059998 0.183197 0.871002 0.083038 0.184845 0.870575 0.107239 0.186523 0.870117 0.132599 0.188263 0.869659 0.159302 0.189972 0.869171 0.187561 0.191803 0.868744 0.217377 0.193573 0.868256 0.249176 0.195435 0.867767 0.282990 0.197327 0.867218 0.318970 0.199158 0.866760 0.357117 0.201080 0.866241 0.397064 0.203033 0.865723 0.438629 0.204956 0.865204 0.481598 0.206970 0.864716 0.525574 0.208923 0.864197 0.569733 0.210968 0.863678 0.612488 0.213043 0.863190 0.653259 0.215057 0.862640 0.691711 0.217224 0.862091 0.727570 0.219299 0.861572 0.760468 0.221436 0.861084 0.790436 0.223572 0.860535 0.817535 0.225769 0.859985 0.842102 0.227936 0.859528 0.864380 0.230133 0.858978 0.884613 0.232330 0.858459 0.903076 0.234558 0.857941 0.919830 0.236847 0.857452 0.935059 0.239105 0.856964 0.948914 0.241425 0.856445 0.961395 0.243683 0.855957 0.972595 0.245972 0.855469 0.062347 0.214539 0.870117 0.085602 0.216370 0.869659 0.109955 0.218201 0.869171 0.135468 0.220062 0.868744 0.162384 0.222015 0.868256 0.190796 0.223938 0.867767 0.220886 0.225891 0.867249 0.252960 0.227905 0.866760 0.287079 0.229950 0.866272 0.323364 0.231934 0.865753 0.361725 0.234039 0.865234 0.401855 0.236084 0.864746 0.443695 0.238251 0.864227 0.486847 0.240417 0.863678 0.531006 0.242523 0.863190 0.575012 0.244751 0.862640 0.617645 0.246979 0.862122 0.658142 0.249207 0.861603 0.696289 0.251465 0.861084 0.731842 0.253754 0.860565 0.764374 0.256012 0.860046 0.793976 0.258392 0.859528 0.820770 0.260742 0.859009 0.845001 0.263031 0.858490 0.867065 0.265442 0.857971 0.887054 0.267792 0.857483 0.905273 0.270233 0.856964 0.921844 0.272644 0.856476 0.936859 0.275055 0.855988 0.950562 0.277496 0.855469 0.962891 0.279999 0.855011 0.973938 0.282440 0.854553 0.064819 0.248047 0.869202 0.088226 0.250031 0.868744 0.112701 0.252106 0.868286 0.138428 0.254120 0.867798 0.165527 0.256226 0.867249 0.194183 0.258331 0.866791 0.224548 0.260437 0.866272 0.256805 0.262634 0.865753 0.291229 0.264832 0.865265 0.327850 0.266998 0.864746 0.366425 0.269318 0.864227 0.406830 0.271576 0.863708 0.448883 0.273865 0.863190 0.492218 0.276215 0.862640 0.536469 0.278534 0.862152 0.580383 0.280975 0.861633 0.622803 0.283356 0.861084 0.663055 0.285706 0.860596 0.700928 0.288208 0.860046 0.736084 0.290680 0.859558 0.768280 0.293121 0.859039 0.797485 0.295654 0.858490 0.823914 0.298126 0.858002 0.847900 0.300690 0.857483 0.869690 0.303284 0.856995 0.889465 0.305756 0.856506 0.907471 0.308380 0.856018 0.923828 0.311005 0.855499 0.938690 0.313538 0.855042 0.952148 0.316162 0.854553 0.964325 0.318817 0.854065 0.975220 0.321381 0.853607 0.067352 0.283966 0.868317 0.090912 0.286133 0.867798 0.115601 0.288361 0.867279 0.141479 0.290588 0.866821 0.168762 0.292877 0.866272 0.197662 0.295227 0.865784 0.228210 0.297485 0.865265 0.260803 0.299866 0.864777 0.295563 0.302277 0.864227 0.332397 0.304657 0.863739 0.371246 0.307129 0.863220 0.411926 0.309570 0.862671 0.454163 0.312073 0.862152 0.497620 0.314606 0.861633 0.541962 0.317108 0.861115 0.585754 0.319672 0.860596 0.627899 0.322296 0.860077 0.667908 0.324829 0.859589 0.705475 0.327484 0.859039 0.740295 0.330139 0.858521 0.772156 0.332764 0.858032 0.800995 0.335449 0.857513 0.827087 0.338104 0.857025 0.850800 0.340790 0.856506 0.872314 0.343536 0.856018 0.891846 0.346222 0.855530 0.909637 0.348969 0.855042 0.925812 0.351715 0.854553 0.940460 0.354431 0.854095 0.953796 0.357208 0.853607 0.965790 0.359985 0.853180 0.976501 0.362671 0.852753 0.070007 0.322418 0.867310 0.093689 0.324799 0.866821 0.118530 0.327240 0.866302 0.144592 0.329620 0.865814 0.172119 0.332123 0.865265 0.201202 0.334595 0.864777 0.232025 0.337067 0.864258 0.264862 0.339661 0.863739 0.299835 0.342194 0.863251 0.337006 0.344788 0.862701 0.376160 0.347443 0.862183 0.417023 0.350006 0.861633 0.459442 0.352722 0.861145 0.503113 0.355438 0.860596 0.547485 0.358063 0.860077 0.591095 0.360840 0.859589 0.633087 0.363586 0.859039 0.672791 0.366333 0.858551 0.710022 0.369110 0.858032 0.744446 0.371857 0.857544 0.775940 0.374725 0.857025 0.804413 0.377533 0.856537 0.830231 0.380310 0.856018 0.853607 0.383148 0.855530 0.874878 0.386017 0.855042 0.894196 0.388885 0.854584 0.911743 0.391724 0.854095 0.927734 0.394623 0.853638 0.942200 0.397491 0.853210 0.955322 0.400391 0.852753 0.967194 0.403198 0.852325 0.977783 0.406097 0.851929 0.072693 0.363281 0.866333 0.096558 0.365845 0.865814 0.121552 0.368469 0.865295 0.147797 0.371002 0.864807 0.175537 0.373627 0.864288 0.204834 0.376343 0.863770 0.235901 0.378967 0.863251 0.269012 0.381683 0.862701 0.304291 0.384399 0.862183 0.341766 0.387146 0.861664 0.381104 0.389954 0.861145 0.422211 0.392700 0.860626 0.464844 0.395538 0.860077 0.508606 0.398438 0.859589 0.553070 0.401276 0.859070 0.596466 0.404175 0.858582 0.638184 0.407043 0.858032 0.677673 0.409912 0.857544 0.714569 0.412842 0.857025 0.748596 0.415741 0.856567 0.779694 0.418732 0.856018 0.807861 0.421631 0.855560 0.833344 0.424591 0.855072 0.856415 0.427582 0.854584 0.877411 0.430511 0.854126 0.896484 0.433441 0.853668 0.913849 0.436432 0.853210 0.929657 0.439423 0.852783 0.943970 0.442383 0.852356 0.956909 0.445343 0.851929 0.968536 0.448303 0.851501 0.979004 0.451294 0.851105 0.075439 0.406250 0.865326 0.099426 0.408997 0.864807 0.124634 0.411774 0.864288 0.151062 0.414490 0.863800 0.178986 0.417267 0.863281 0.208466 0.420044 0.862762 0.239838 0.422882 0.862213 0.273254 0.425812 0.861694 0.308807 0.428650 0.861176 0.346497 0.431549 0.860657 0.386169 0.434479 0.860107 0.427460 0.437347 0.859619 0.470276 0.440369 0.859070 0.514221 0.443359 0.858582 0.558624 0.446289 0.858063 0.601868 0.449341 0.857574 0.643250 0.452271 0.857056 0.682465 0.455292 0.856567 0.719025 0.458344 0.856049 0.752716 0.461334 0.855560 0.783447 0.464417 0.855072 0.811218 0.467438 0.854614 0.836334 0.470490 0.854126 0.859192 0.473572 0.853668 0.879944 0.476654 0.853241 0.898773 0.479614 0.852814 0.915924 0.482697 0.852356 0.931458 0.485718 0.851959 0.945648 0.488800 0.851532 0.958405 0.491882 0.851135 0.969910 0.494873 0.851044 0.980194 0.497894 0.851044 0.078247 0.451141 0.864319 0.102417 0.454041 0.863800 0.127777 0.456940 0.863281 0.154358 0.459808 0.862762 0.182526 0.462708 0.862213 0.212250 0.465607 0.861725 0.243866 0.468597 0.861206 0.277527 0.471588 0.860657 0.313385 0.474548 0.860138 0.351410 0.477570 0.859619 0.391266 0.480652 0.859100 0.432770 0.483673 0.858582 0.475769 0.486725 0.858063 0.519836 0.489807 0.857574 0.564178 0.492889 0.857056 0.607239 0.495972 0.856567 0.648376 0.498962 0.856079 0.687225 0.502167 0.855560 0.723480 0.505280 0.855103 0.756805 0.508331 0.854645 0.787079 0.511536 0.854156 0.814514 0.514648 0.853668 0.839355 0.517670 0.853271 0.861908 0.520874 0.852814 0.882385 0.523987 0.852356 0.901001 0.527039 0.851959 0.917908 0.530151 0.851532 0.933289 0.533173 0.851135 0.947296 0.536316 0.851044 0.959900 0.539398 0.851044 0.971252 0.542419 0.851044 0.981354 0.545471 0.851044 0.081146 0.497559 0.863281 0.105469 0.500549 0.862793 0.130890 0.503479 0.862244 0.157745 0.506500 0.861725 0.186096 0.509552 0.861206 0.216095 0.512573 0.860687 0.247955 0.515656 0.860168 0.281921 0.518768 0.859650 0.318054 0.521790 0.859131 0.356323 0.524902 0.858612 0.396423 0.528046 0.858093 0.438141 0.531097 0.857574 0.481293 0.534241 0.857086 0.525421 0.537384 0.856598 0.569733 0.540527 0.856110 0.612579 0.543671 0.855591 0.653442 0.546753 0.855133 0.691956 0.549866 0.854645 0.727875 0.553009 0.854187 0.760742 0.556091 0.853699 0.790680 0.559174 0.853271 0.817780 0.562317 0.852814 0.842316 0.565338 0.852386 0.864563 0.568420 0.851959 0.884766 0.571381 0.851562 0.903168 0.574402 0.851135 0.919891 0.577484 0.851044 0.935089 0.580383 0.851044 0.948883 0.583313 0.851044 0.961365 0.586334 0.851044 0.972504 0.589172 0.851044 0.982513 0.592072 0.851044 0.084045 0.545074 0.862274 0.108521 0.548096 0.861755 0.134216 0.551147 0.861237 0.161163 0.554108 0.860687 0.189758 0.557190 0.860168 0.219971 0.560211 0.859680 0.252106 0.563232 0.859131 0.286346 0.566376 0.858612 0.322784 0.569336 0.858124 0.361267 0.572418 0.857605 0.401642 0.575500 0.857086 0.443542 0.578491 0.856598 0.486847 0.581543 0.856110 0.531036 0.584503 0.855621 0.575195 0.587585 0.855133 0.617859 0.590607 0.854645 0.658417 0.593597 0.854187 0.696625 0.596619 0.853729 0.732178 0.599609 0.853302 0.764709 0.602539 0.852814 0.794250 0.605560 0.852386 0.820953 0.608490 0.851959 0.845215 0.611389 0.851562 0.867188 0.614288 0.851135 0.887177 0.617249 0.851044 0.905334 0.620026 0.851044 0.921844 0.622894 0.851044 0.936829 0.625671 0.851044 0.950439 0.628479 0.851044 0.962769 0.631317 0.851044 0.973785 0.633942 0.851044 0.983582 0.636719 0.851044 0.087006 0.591736 0.861237 0.111633 0.594696 0.860687 0.137451 0.597565 0.860199 0.164673 0.600555 0.859680 0.193420 0.603546 0.859161 0.223907 0.606445 0.858643 0.256287 0.609344 0.858124 0.290833 0.612335 0.857605 0.327515 0.615234 0.857117 0.366333 0.618195 0.856598 0.406891 0.621155 0.856140 0.449005 0.623962 0.855621 0.492401 0.626953 0.855133 0.536713 0.629761 0.854675 0.580719 0.632690 0.854187 0.623077 0.635620 0.853729 0.663361 0.638367 0.853333 0.701263 0.641235 0.852844 0.736389 0.644135 0.852386 0.768555 0.646881 0.851990 0.797729 0.649689 0.851593 0.824097 0.652466 0.851166 0.848022 0.655151 0.851044 0.869720 0.657928 0.851044 0.889435 0.660583 0.851044 0.907410 0.663239 0.851044 0.923706 0.665924 0.851044 0.938538 0.668488 0.851044 0.951996 0.671112 0.851044 0.964142 0.673706 0.851044 0.974976 0.676239 0.851044 0.984650 0.678772 0.851044 0.090027 0.636536 0.860229 0.114777 0.639374 0.859680 0.140778 0.642120 0.859192 0.168213 0.644928 0.858673 0.197205 0.647766 0.858154 0.227875 0.650513 0.857635 0.260529 0.653351 0.857147 0.295380 0.656158 0.856598 0.332367 0.658905 0.856171 0.371338 0.661682 0.855652 0.412170 0.664459 0.855164 0.454376 0.667175 0.854675 0.497925 0.669922 0.854187 0.542328 0.672607 0.853760 0.586151 0.675323 0.853333 0.628265 0.678040 0.852844 0.668274 0.680634 0.852417 0.705780 0.683319 0.852020 0.740570 0.685974 0.851593 0.772308 0.688538 0.851166 0.801117 0.691132 0.851044 0.827179 0.693726 0.851044 0.850800 0.696228 0.851044 0.872253 0.698730 0.851044 0.891724 0.701172 0.851044 0.909454 0.703674 0.851044 0.925568 0.706116 0.851044 0.940186 0.708496 0.851044 0.953491 0.710846 0.851044 0.965454 0.713196 0.851044 0.976135 0.715485 0.851044 0.985687 0.717804 0.851044 0.093048 0.678833 0.859192 0.118011 0.681488 0.858673 0.144196 0.684113 0.858185 0.171753 0.686737 0.857666 0.200958 0.689392 0.857147 0.231903 0.691956 0.856628 0.264832 0.694611 0.856171 0.299957 0.697266 0.855652 0.337158 0.699768 0.855194 0.376373 0.702393 0.854706 0.417328 0.704895 0.854218 0.459839 0.707428 0.853790 0.503510 0.709991 0.853333 0.547913 0.712524 0.852875 0.591492 0.714966 0.852448 0.633392 0.717468 0.852020 0.673065 0.719879 0.851593 0.710297 0.722321 0.851196 0.744659 0.724762 0.851044 0.776001 0.727142 0.851044 0.804413 0.729492 0.851044 0.830170 0.731781 0.851044 0.853485 0.734100 0.851044 0.874664 0.736389 0.851044 0.893921 0.738617 0.851044 0.911438 0.740875 0.851044 0.927368 0.743073 0.851044 0.941803 0.745178 0.851044 0.954895 0.747375 0.851044 0.966736 0.749481 0.851044 0.977264 0.751526 0.851044 0.986694 0.753540 0.851044 0.096161 0.718262 0.858185 0.121246 0.720703 0.857666 0.147583 0.723114 0.857178 0.175385 0.725555 0.856659 0.204803 0.728027 0.856171 0.235962 0.730438 0.855652 0.269165 0.732819 0.855194 0.304565 0.735229 0.854706 0.342010 0.737549 0.854248 0.381470 0.739929 0.853790 0.422577 0.742218 0.853333 0.465302 0.744568 0.852875 0.509064 0.746887 0.852448 0.553406 0.749115 0.852051 0.596802 0.751404 0.851593 0.638428 0.753662 0.851196 0.677856 0.755829 0.851044 0.714661 0.758026 0.851044 0.748627 0.760223 0.851044 0.779602 0.762299 0.851044 0.807678 0.764465 0.851044 0.833099 0.766479 0.851044 0.856110 0.768616 0.851044 0.877045 0.770660 0.851044 0.896057 0.772614 0.851044 0.913361 0.774628 0.851044 0.929077 0.776581 0.851044 0.943359 0.778473 0.851044 0.956299 0.780334 0.851044 0.967957 0.782227 0.851044 0.978394 0.784058 0.851044 0.987640 0.785889 0.851044 0.099274 0.754333 0.857178 0.124512 0.756653 0.856659 0.151031 0.758850 0.856201 0.179016 0.761047 0.855682 0.208649 0.763275 0.855194 0.240051 0.765442 0.854736 0.273499 0.767609 0.854248 0.309143 0.769745 0.853790 0.346863 0.771912 0.853363 0.386566 0.774048 0.852905 0.427856 0.776093 0.852478 0.470673 0.778229 0.852051 0.514557 0.780273 0.851624 0.558899 0.782288 0.851227 0.602051 0.784302 0.851044 0.643402 0.786346 0.851044 0.682465 0.788300 0.851044 0.718933 0.790253 0.851044 0.752563 0.792175 0.851044 0.783142 0.794037 0.851044 0.810852 0.795959 0.851044 0.835876 0.797791 0.851044 0.858673 0.799591 0.851044 0.879333 0.801422 0.851044 0.898132 0.803192 0.851044 0.915253 0.804962 0.851044 0.930756 0.806671 0.851044 0.944885 0.808350 0.851044 0.957642 0.810028 0.851044 0.969147 0.811646 0.851044 0.979431 0.813263 0.851044 0.988556 0.814880 0.851044 0.102386 0.787048 0.856201 0.127808 0.789093 0.855682 0.154480 0.791016 0.855194 0.182678 0.793060 0.854767 0.212494 0.795074 0.854279 0.244141 0.796997 0.853821 0.277893 0.798950 0.853363 0.313782 0.800842 0.852936 0.351746 0.802765 0.852478 0.391663 0.804688 0.852081 0.433136 0.806519 0.851624 0.476044 0.808411 0.851227 0.520050 0.810272 0.851044 0.564270 0.812042 0.851044 0.607239 0.813904 0.851044 0.648285 0.815674 0.851044 0.686981 0.817383 0.851044 0.723114 0.819153 0.851044 0.756317 0.820801 0.851044 0.786560 0.822510 0.851044 0.813934 0.824188 0.851044 0.838654 0.825836 0.851044 0.861145 0.827484 0.851044 0.881592 0.829071 0.851044 0.900146 0.830597 0.851044 0.917053 0.832184 0.851044 0.932404 0.833710 0.851044 0.946350 0.835205 0.851044 0.958923 0.836700 0.851044 0.970276 0.838104 0.851044 0.980438 0.839539 0.851044 0.989410 0.840912 0.851044 0.105530 0.816406 0.855225 0.131104 0.818207 0.854767 0.157928 0.820007 0.854309 0.186310 0.821838 0.853821 0.216339 0.823578 0.853394 0.248291 0.825317 0.852936 0.282257 0.827087 0.852509 0.318390 0.828796 0.852081 0.356628 0.830536 0.851654 0.396698 0.832245 0.851257 0.438324 0.833893 0.851044 0.481415 0.835571 0.851044 0.525482 0.837189 0.851044 0.569580 0.838806 0.851044 0.612305 0.840454 0.851044 0.652985 0.841980 0.851044 0.691437 0.843567 0.851044 0.727203 0.845123 0.851044 0.760010 0.846649 0.851044 0.789856 0.848145 0.851044 0.816895 0.849640 0.851044 0.841339 0.851044 0.851044 0.863556 0.852509 0.851044 0.883728 0.853943 0.851044 0.902069 0.855286 0.851044 0.918793 0.856659 0.851044 0.933960 0.858032 0.851044 0.947723 0.859344 0.851044 0.960205 0.860657 0.851044 0.971375 0.861908 0.851044 0.981415 0.863190 0.851044 0.990234 0.864410 0.851044 0.108704 0.842773 0.854309 0.134399 0.844482 0.853821 0.161469 0.846069 0.853424 0.190002 0.847687 0.852966 0.220245 0.849243 0.852539 0.252411 0.850830 0.852112 0.286621 0.852417 0.851654 0.323029 0.853943 0.851288 0.361481 0.855469 0.851044 0.401733 0.857025 0.851044 0.443542 0.858490 0.851044 0.486725 0.859985 0.851044 0.530853 0.861450 0.851044 0.574768 0.862885 0.851044 0.617279 0.864349 0.851044 0.657654 0.865692 0.851044 0.695770 0.867157 0.851044 0.731201 0.868500 0.851044 0.763641 0.869812 0.851044 0.793060 0.871185 0.851044 0.819794 0.872498 0.851044 0.843933 0.873779 0.851044 0.865875 0.875061 0.851044 0.885834 0.876343 0.851044 0.903931 0.877533 0.851044 0.920441 0.878754 0.851044 0.935486 0.879944 0.851044 0.949097 0.881104 0.851044 0.961395 0.882263 0.851044 0.972443 0.883362 0.851044 0.982330 0.884460 0.851044 0.991028 0.885559 0.851044 0.111877 0.866608 0.853424 0.137695 0.868042 0.852966 0.164948 0.869537 0.852539 0.193695 0.871002 0.852112 0.224121 0.872406 0.851685 0.256531 0.873840 0.851288 0.291046 0.875214 0.851044 0.327606 0.876587 0.851044 0.366333 0.877991 0.851044 0.406738 0.879333 0.851044 0.448700 0.880676 0.851044 0.491943 0.881989 0.851044 0.536102 0.883270 0.851044 0.579865 0.884583 0.851044 0.622131 0.885864 0.851044 0.662231 0.887115 0.851044 0.700012 0.888367 0.851044 0.735046 0.889557 0.851044 0.767090 0.890778 0.851044 0.796204 0.891937 0.851044 0.822540 0.893158 0.851044 0.846436 0.894287 0.851044 0.868134 0.895416 0.851044 0.887848 0.896545 0.851044 0.905762 0.897614 0.851044 0.922089 0.898651 0.851044 0.936890 0.899689 0.851044 0.950378 0.900726 0.851044 0.962524 0.901733 0.851044 0.973450 0.902740 0.851044 0.983215 0.903687 0.851044 0.991791 0.904663 0.851044 0.115021 0.888031 0.852570 0.141022 0.889374 0.852112 0.168457 0.890686 0.851685 0.197418 0.891998 0.851288 0.227997 0.893280 0.851044 0.260651 0.894562 0.851044 0.295380 0.895813 0.851044 0.332214 0.897034 0.851044 0.371063 0.898254 0.851044 0.411682 0.899475 0.851044 0.453827 0.900696 0.851044 0.497162 0.901855 0.851044 0.541290 0.903015 0.851044 0.584930 0.904144 0.851044 0.626831 0.905334 0.851044 0.666626 0.906433 0.851044 0.704102 0.907532 0.851044 0.738770 0.908600 0.851044 0.770447 0.909668 0.851044 0.799225 0.910736 0.851044 0.825256 0.911743 0.851044 0.848846 0.912750 0.851044 0.870270 0.913757 0.851044 0.889709 0.914764 0.851044 0.907501 0.915710 0.851044 0.923615 0.916656 0.851044 0.938293 0.917572 0.851044 0.951569 0.918457 0.851044 0.963623 0.919342 0.851044 0.974426 0.920166 0.851044 0.984009 0.921051 0.851044 0.992493 0.921906 0.851044 0.118225 0.907471 0.851715 0.144318 0.908600 0.851318 0.171936 0.909821 0.851044 0.201080 0.910980 0.851044 0.231903 0.912109 0.851044 0.264771 0.913239 0.851044 0.299744 0.914398 0.851044 0.336792 0.915497 0.851044 0.375854 0.916595 0.851044 0.416595 0.917664 0.851044 0.458832 0.918701 0.851044 0.502289 0.919769 0.851044 0.546387 0.920807 0.851044 0.589783 0.921844 0.851044 0.631500 0.922882 0.851044 0.670929 0.923798 0.851044 0.708038 0.924835 0.851044 0.742371 0.925812 0.851044 0.773682 0.926697 0.851044 0.802124 0.927673 0.851044 0.827820 0.928558 0.851044 0.851135 0.929474 0.851044 0.872375 0.930298 0.851044 0.891571 0.931183 0.851044 0.909180 0.932037 0.851044 0.925110 0.932861 0.851044 0.939606 0.933655 0.851044 0.952789 0.934418 0.851044 0.964661 0.935242 0.851044 0.975311 0.935974 0.851044 0.984802 0.936707 0.851044 0.993164 0.937408 0.851044 0.121368 0.924927 0.851044 0.147675 0.925964 0.851044 0.175415 0.927063 0.851044 0.204712 0.928040 0.851044 0.235748 0.929077 0.851044 0.268829 0.930115 0.851044 0.304077 0.931122 0.851044 0.341278 0.932098 0.851044 0.380524 0.933075 0.851044 0.421387 0.934021 0.851044 0.463745 0.934998 0.851044 0.507294 0.935944 0.851044 0.551392 0.936829 0.851044 0.594543 0.937775 0.851044 0.635925 0.938660 0.851044 0.675140 0.939514 0.851044 0.711884 0.940399 0.851044 0.745850 0.941254 0.851044 0.776794 0.942078 0.851044 0.804901 0.942902 0.851044 0.830292 0.943695 0.851044 0.853363 0.944458 0.851044 0.874329 0.945221 0.851044 0.893372 0.945984 0.851044 0.910736 0.946747 0.851044 0.926514 0.947449 0.851044 0.940857 0.948151 0.851044 0.953857 0.948853 0.851044 0.965637 0.949524 0.851044 0.976135 0.950134 0.851044 0.985535 0.950806 0.851044 0.993774 0.951416 0.851044 0.124542 0.940704 0.851044 0.150970 0.941650 0.851044 0.178864 0.942566 0.851044 0.208374 0.943512 0.851044 0.239594 0.944397 0.851044 0.272888 0.945312 0.851044 0.308258 0.946198 0.851044 0.345795 0.947052 0.851044 0.385223 0.947937 0.851044 0.426178 0.948792 0.851044 0.468628 0.949646 0.851044 0.512177 0.950470 0.851044 0.556244 0.951294 0.851044 0.599152 0.952087 0.851044 0.640289 0.952881 0.851044 0.679169 0.953644 0.851044 0.715576 0.954407 0.851044 0.749207 0.955139 0.851044 0.779785 0.955841 0.851044 0.807526 0.956573 0.851044 0.832672 0.957275 0.851044 0.855469 0.957947 0.851044 0.876221 0.958618 0.851044 0.895050 0.959259 0.851044 0.912231 0.959930 0.851044 0.927887 0.960541 0.851044 0.942047 0.961151 0.851044 0.954926 0.961731 0.851044 0.966553 0.962311 0.851044 0.976959 0.962891 0.851044 0.986237 0.963440 0.851044 0.994354 0.963928 0.851044 0.127655 0.954834 0.851044 0.154236 0.955688 0.851044 0.182281 0.956543 0.851044 0.211975 0.957336 0.851044 0.243408 0.958130 0.851044 0.276917 0.958923 0.851044 0.312500 0.959717 0.851044 0.350189 0.960480 0.851044 0.389771 0.961273 0.851044 0.430847 0.962006 0.851044 0.473419 0.962769 0.851044 0.516998 0.963470 0.851044 0.560883 0.964203 0.851044 0.603638 0.964874 0.851044 0.644470 0.965576 0.851044 0.683105 0.966248 0.851044 0.719147 0.966919 0.851044 0.752350 0.967560 0.851044 0.782654 0.968201 0.851044 0.810089 0.968811 0.851044 0.834930 0.969391 0.851044 0.857483 0.970001 0.851044 0.878021 0.970612 0.851044 0.896667 0.971130 0.851044 0.913666 0.971710 0.851044 0.929108 0.972229 0.851044 0.943146 0.972748 0.851044 0.955902 0.973267 0.851044 0.967377 0.973724 0.851044 0.977692 0.974213 0.851044 0.986877 0.974670 0.851044 0.994904 0.975098 0.851044 0.130768 0.967499 0.851044 0.157501 0.968262 0.851044 0.185669 0.968994 0.851044 0.215515 0.969666 0.851044 0.247131 0.970398 0.851044 0.280884 0.971130 0.851044 0.316650 0.971771 0.851044 0.354523 0.972473 0.851044 0.394287 0.973145 0.851044 0.435486 0.973785 0.851044 0.478058 0.974426 0.851044 0.521667 0.975067 0.851044 0.565521 0.975647 0.851044 0.607941 0.976288 0.851044 0.648499 0.976868 0.851044 0.686829 0.977448 0.851044 0.722565 0.978027 0.851044 0.755402 0.978577 0.851044 0.785370 0.979126 0.851044 0.812500 0.979675 0.851044 0.837067 0.980164 0.851044 0.859406 0.980652 0.851044 0.879700 0.981171 0.851044 0.898163 0.981628 0.851044 0.915009 0.982117 0.851044 0.930298 0.982544 0.851044 0.944214 0.983002 0.851044 0.956818 0.983398 0.851044 0.968201 0.983826 0.851044 0.978394 0.984253 0.851044 0.987457 0.984619 0.851044 0.995392 0.984985 0.851044 0.045990 0.007324 0.893982 0.068176 0.008240 0.893738 0.091339 0.009155 0.893433 0.115601 0.010101 0.893127 0.141113 0.011047 0.892853 0.167999 0.012115 0.892517 0.196350 0.013092 0.892212 0.226501 0.014130 0.891846 0.258423 0.015198 0.891510 0.292572 0.016357 0.891144 0.328796 0.017456 0.890778 0.367004 0.018585 0.890411 0.407043 0.019745 0.890045 0.448669 0.020966 0.889587 0.491547 0.022125 0.889221 0.535400 0.023376 0.888794 0.579010 0.024658 0.888367 0.621033 0.025879 0.887939 0.661163 0.027222 0.887543 0.698853 0.028473 0.887085 0.733917 0.029785 0.886658 0.766144 0.031158 0.886200 0.795380 0.032501 0.885742 0.821899 0.033905 0.885284 0.846008 0.035278 0.884857 0.867798 0.036682 0.884369 0.887695 0.038177 0.883881 0.905792 0.039581 0.883423 0.922241 0.041046 0.882965 0.937195 0.042511 0.882477 0.950806 0.043976 0.881989 0.963074 0.045502 0.881500 0.047760 0.028931 0.893463 0.070068 0.029938 0.893158 0.093384 0.030914 0.892853 0.117798 0.031952 0.892548 0.143463 0.033051 0.892212 0.170532 0.034119 0.891846 0.199127 0.035217 0.891541 0.229431 0.036377 0.891144 0.261627 0.037506 0.890808 0.296051 0.038727 0.890411 0.332550 0.039948 0.890045 0.371033 0.041107 0.889618 0.411285 0.042419 0.889221 0.453125 0.043732 0.888794 0.496185 0.044983 0.888397 0.540192 0.046326 0.887970 0.583710 0.047668 0.887573 0.625580 0.049011 0.887085 0.665527 0.050385 0.886658 0.702942 0.051758 0.886230 0.737793 0.053162 0.885773 0.769684 0.054626 0.885284 0.798615 0.056061 0.884888 0.824829 0.057556 0.884399 0.848694 0.059021 0.883881 0.870270 0.060516 0.883453 0.889954 0.062042 0.882965 0.907867 0.063599 0.882477 0.924133 0.065094 0.881989 0.938965 0.066711 0.881531 0.952362 0.068237 0.881073 0.964508 0.069824 0.880554 0.049652 0.051514 0.892883 0.072052 0.052643 0.892578 0.095520 0.053772 0.892212 0.120087 0.054810 0.891876 0.145935 0.056000 0.891541 0.173187 0.057190 0.891174 0.201965 0.058380 0.890808 0.232544 0.059662 0.890411 0.264984 0.060883 0.890076 0.299683 0.062134 0.889648 0.336517 0.063477 0.889252 0.375153 0.064789 0.888855 0.415710 0.066162 0.888428 0.457733 0.067535 0.888000 0.500946 0.068909 0.887573 0.545074 0.070312 0.887115 0.588470 0.071716 0.886688 0.630188 0.073181 0.886230 0.669922 0.074707 0.885773 0.707153 0.076172 0.885315 0.741638 0.077698 0.884888 0.773254 0.079254 0.884399 0.801880 0.080780 0.883911 0.827820 0.082336 0.883453 0.851379 0.083923 0.882965 0.872772 0.085480 0.882477 0.892212 0.087128 0.881989 0.909912 0.088745 0.881561 0.926056 0.090393 0.881104 0.940704 0.092072 0.880585 0.953918 0.093689 0.880127 0.965942 0.095367 0.879639 0.051605 0.075226 0.892212 0.074158 0.076416 0.891876 0.097778 0.077637 0.891541 0.122498 0.078888 0.891174 0.148529 0.080139 0.890808 0.175903 0.081390 0.890411 0.204956 0.082733 0.890076 0.235748 0.084045 0.889648 0.268494 0.085419 0.889252 0.303467 0.086823 0.888855 0.340546 0.088226 0.888428 0.379517 0.089630 0.888031 0.420258 0.091095 0.887573 0.462463 0.092560 0.887146 0.505859 0.094025 0.886688 0.550018 0.095581 0.886230 0.593323 0.097076 0.885803 0.634918 0.098663 0.885315 0.674377 0.100250 0.884888 0.711304 0.101807 0.884399 0.745544 0.103455 0.883942 0.776825 0.105072 0.883484 0.805115 0.106720 0.882996 0.830811 0.108398 0.882507 0.854095 0.110107 0.882019 0.875214 0.111755 0.881561 0.894501 0.113495 0.881104 0.911987 0.115204 0.880615 0.927948 0.116974 0.880127 0.942413 0.118744 0.879639 0.955505 0.120483 0.879150 0.967346 0.122314 0.878693 0.053650 0.100189 0.891571 0.076355 0.101501 0.891174 0.100098 0.102783 0.890839 0.125031 0.104095 0.890442 0.151245 0.105530 0.890076 0.178833 0.106903 0.889679 0.208069 0.108307 0.889282 0.239105 0.109741 0.888885 0.272156 0.111176 0.888428 0.307373 0.112701 0.888031 0.344696 0.114258 0.887604 0.383881 0.115784 0.887177 0.424927 0.117340 0.886719 0.467255 0.118896 0.886261 0.510895 0.120544 0.885803 0.555115 0.122192 0.885315 0.598236 0.123779 0.884918 0.639679 0.125458 0.884399 0.678894 0.127197 0.883942 0.715576 0.128876 0.883514 0.749481 0.130615 0.883026 0.780365 0.132355 0.882507 0.808380 0.134125 0.882050 0.833771 0.135895 0.881592 0.856812 0.137695 0.881104 0.877716 0.139496 0.880615 0.896759 0.141357 0.880157 0.914032 0.143158 0.879669 0.929840 0.145050 0.879181 0.944122 0.146912 0.878723 0.957092 0.148773 0.878235 0.968781 0.150696 0.877777 0.055817 0.126465 0.890839 0.078644 0.127930 0.890442 0.102539 0.129303 0.890076 0.127655 0.130798 0.889709 0.154022 0.132233 0.889282 0.181793 0.133759 0.888885 0.211273 0.135284 0.888458 0.242615 0.136902 0.888031 0.275879 0.138458 0.887634 0.311401 0.140045 0.887177 0.348999 0.141724 0.886719 0.388489 0.143341 0.886292 0.429657 0.145081 0.885834 0.472229 0.146759 0.885376 0.516022 0.148499 0.884918 0.560272 0.150269 0.884430 0.603271 0.152008 0.883972 0.644470 0.153778 0.883545 0.683472 0.155670 0.883026 0.719818 0.157471 0.882538 0.753418 0.159302 0.882050 0.783997 0.161194 0.881592 0.811646 0.163055 0.881134 0.836761 0.165009 0.880646 0.859497 0.166870 0.880157 0.880188 0.168793 0.879669 0.899017 0.170807 0.879181 0.916168 0.172729 0.878754 0.931702 0.174744 0.878235 0.945862 0.176727 0.877777 0.958588 0.178711 0.877350 0.970123 0.180756 0.876862 0.058044 0.154266 0.890106 0.081055 0.155853 0.889709 0.105072 0.157379 0.889282 0.130341 0.158966 0.888885 0.156921 0.160614 0.888458 0.184937 0.162231 0.888031 0.214630 0.163910 0.887634 0.246155 0.165619 0.887177 0.279724 0.167297 0.886749 0.315582 0.169067 0.886292 0.353424 0.170807 0.885834 0.393158 0.172577 0.885376 0.434601 0.174469 0.884949 0.477325 0.176270 0.884460 0.521271 0.178131 0.883972 0.565491 0.180054 0.883545 0.608307 0.181946 0.883057 0.649292 0.183899 0.882568 0.688019 0.185852 0.882080 0.724060 0.187805 0.881622 0.757324 0.189789 0.881134 0.787567 0.191803 0.880646 0.814880 0.193787 0.880157 0.839661 0.195862 0.879700 0.862183 0.197906 0.879211 0.882660 0.199982 0.878754 0.901276 0.202118 0.878265 0.918152 0.204163 0.877808 0.933563 0.206268 0.877350 0.947571 0.208435 0.876862 0.960144 0.210571 0.876434 0.971497 0.212738 0.875946 0.060364 0.183807 0.889313 0.083527 0.185486 0.888916 0.107727 0.187164 0.888489 0.133148 0.188904 0.888031 0.159912 0.190674 0.887665 0.188110 0.192444 0.887177 0.218079 0.194244 0.886780 0.249847 0.196106 0.886322 0.283722 0.197937 0.885834 0.319824 0.199829 0.885406 0.357880 0.201721 0.884949 0.397919 0.203735 0.884460 0.439575 0.205719 0.883972 0.482513 0.207672 0.883545 0.526611 0.209656 0.883057 0.570770 0.211731 0.882568 0.613403 0.213745 0.882080 0.654175 0.215912 0.881622 0.692627 0.218018 0.881134 0.728333 0.220062 0.880676 0.761230 0.222260 0.880188 0.791046 0.224365 0.879730 0.818146 0.226562 0.879211 0.842651 0.228790 0.878754 0.864868 0.230927 0.878296 0.885101 0.233185 0.877838 0.903503 0.235443 0.877350 0.920197 0.237671 0.876862 0.935425 0.239960 0.876434 0.949219 0.242310 0.875977 0.961639 0.244507 0.875519 0.972870 0.246826 0.875092 0.062805 0.215240 0.888519 0.086090 0.217072 0.888062 0.110443 0.218903 0.887665 0.136017 0.220764 0.887177 0.162994 0.222748 0.886780 0.191406 0.224640 0.886322 0.221588 0.226624 0.885864 0.253632 0.228607 0.885437 0.287872 0.230621 0.884949 0.324219 0.232727 0.884491 0.362579 0.234772 0.884033 0.402832 0.236877 0.883545 0.444733 0.239014 0.883057 0.487823 0.241180 0.882568 0.532074 0.243378 0.882080 0.576080 0.245575 0.881622 0.618530 0.247803 0.881165 0.659058 0.250031 0.880676 0.697235 0.252350 0.880188 0.732605 0.254578 0.879730 0.765137 0.256927 0.879242 0.794617 0.259216 0.878784 0.821350 0.261536 0.878326 0.845551 0.263947 0.877838 0.867554 0.266296 0.877350 0.887543 0.268707 0.876892 0.905701 0.271149 0.876434 0.922211 0.273499 0.876007 0.937225 0.275970 0.875519 0.950836 0.278442 0.875092 0.963135 0.280884 0.874664 0.974182 0.283356 0.874237 0.065308 0.248810 0.887665 0.088745 0.250763 0.887207 0.113220 0.252808 0.886810 0.139008 0.254883 0.886322 0.166138 0.256989 0.885864 0.194855 0.259064 0.885468 0.225220 0.261230 0.884979 0.257507 0.263367 0.884491 0.291992 0.265625 0.884033 0.328674 0.267853 0.883545 0.367310 0.270081 0.883087 0.407806 0.272400 0.882599 0.449890 0.274719 0.882111 0.493225 0.277039 0.881653 0.537537 0.279419 0.881195 0.581421 0.281830 0.880707 0.623718 0.284241 0.880219 0.663971 0.286621 0.879730 0.701752 0.289093 0.879272 0.736877 0.291534 0.878784 0.769043 0.294098 0.878326 0.798126 0.296570 0.877838 0.824524 0.299103 0.877350 0.848480 0.301636 0.876892 0.870178 0.304138 0.876465 0.889954 0.306763 0.876007 0.907898 0.309357 0.875519 0.924194 0.311920 0.875122 0.939056 0.314484 0.874664 0.952454 0.317108 0.874268 0.964600 0.319733 0.873840 0.975494 0.322388 0.873413 0.067871 0.284790 0.886810 0.091431 0.286987 0.886322 0.116119 0.289185 0.885895 0.142090 0.291443 0.885468 0.169373 0.293671 0.884979 0.198303 0.296051 0.884491 0.228943 0.298370 0.884064 0.261505 0.300720 0.883575 0.296326 0.303162 0.883118 0.333252 0.305603 0.882629 0.372162 0.308014 0.882141 0.412903 0.310486 0.881653 0.455139 0.312988 0.881195 0.498596 0.315521 0.880737 0.542999 0.318054 0.880219 0.586700 0.320587 0.879761 0.628815 0.323181 0.879272 0.668854 0.325836 0.878815 0.706329 0.328430 0.878326 0.741058 0.331085 0.877869 0.772827 0.333740 0.877380 0.801636 0.336365 0.876953 0.827698 0.339142 0.876465 0.851349 0.341827 0.876038 0.872772 0.344513 0.875549 0.892273 0.347198 0.875122 0.910034 0.350006 0.874664 0.926147 0.352692 0.874268 0.940826 0.355469 0.873840 0.954041 0.358185 0.873444 0.966034 0.360992 0.873016 0.976746 0.363770 0.872620 0.070465 0.323334 0.885925 0.094238 0.325714 0.885468 0.119080 0.328094 0.885010 0.145203 0.330566 0.884521 0.172729 0.332947 0.884094 0.201843 0.335480 0.883606 0.232758 0.338043 0.883118 0.265594 0.340546 0.882660 0.300690 0.343140 0.882172 0.337921 0.345795 0.881683 0.377075 0.348358 0.881226 0.418030 0.351013 0.880737 0.460449 0.353729 0.880249 0.504089 0.356384 0.879791 0.548553 0.359131 0.879303 0.592072 0.361786 0.878845 0.634003 0.364563 0.878357 0.673706 0.367371 0.877869 0.710846 0.370087 0.877411 0.745239 0.372955 0.876953 0.776642 0.375732 0.876465 0.805084 0.378571 0.876038 0.830841 0.381409 0.875580 0.854187 0.384247 0.875153 0.875336 0.387085 0.874695 0.894623 0.389954 0.874268 0.912109 0.392731 0.873871 0.928040 0.395691 0.873444 0.942566 0.398529 0.873016 0.955627 0.401398 0.872620 0.967468 0.404327 0.872253 0.978027 0.407196 0.871887 0.073181 0.364197 0.885010 0.097046 0.366730 0.884552 0.122101 0.369354 0.884094 0.148376 0.371948 0.883606 0.176117 0.374573 0.883148 0.205475 0.377289 0.882660 0.236633 0.380005 0.882172 0.269775 0.382660 0.881714 0.305145 0.385437 0.881226 0.342651 0.388214 0.880737 0.382019 0.390930 0.880280 0.423218 0.393829 0.879791 0.465790 0.396576 0.879333 0.509674 0.399414 0.878845 0.554108 0.402344 0.878357 0.597504 0.405151 0.877930 0.639099 0.408081 0.877411 0.678558 0.411041 0.876984 0.715393 0.413849 0.876495 0.749420 0.416840 0.876038 0.780426 0.419769 0.875580 0.808441 0.422699 0.875183 0.833893 0.425690 0.874725 0.856964 0.428650 0.874268 0.877899 0.431580 0.873871 0.896912 0.434601 0.873444 0.914215 0.437469 0.873047 0.929962 0.440521 0.872650 0.944244 0.443481 0.872284 0.957184 0.446442 0.871887 0.968842 0.449402 0.871490 0.979279 0.452454 0.871216 0.075958 0.407318 0.884125 0.099976 0.409973 0.883636 0.125183 0.412781 0.883148 0.151672 0.415497 0.882660 0.179596 0.418274 0.882202 0.209198 0.421082 0.881714 0.240631 0.423981 0.881226 0.274048 0.426788 0.880737 0.309662 0.429657 0.880280 0.347473 0.432617 0.879822 0.387085 0.435547 0.879333 0.428497 0.438477 0.878876 0.471252 0.441406 0.878387 0.515259 0.444427 0.877930 0.559692 0.447388 0.877441 0.602814 0.450378 0.877014 0.644257 0.453430 0.876495 0.683380 0.456451 0.876068 0.719849 0.459412 0.875610 0.753510 0.462494 0.875183 0.784149 0.465576 0.874725 0.811829 0.468567 0.874298 0.836945 0.471680 0.873901 0.859680 0.474670 0.873474 0.880402 0.477722 0.873077 0.899200 0.480804 0.872650 0.916290 0.483826 0.872284 0.931824 0.486908 0.871887 0.945923 0.489960 0.871521 0.958649 0.492950 0.871216 0.970154 0.496063 0.871216 0.980438 0.499054 0.871216 0.078827 0.452240 0.883148 0.102966 0.454987 0.882690 0.128326 0.457947 0.882233 0.154999 0.460846 0.881744 0.183136 0.463715 0.881256 0.212952 0.466736 0.880768 0.244659 0.469696 0.880310 0.278351 0.472626 0.879852 0.314301 0.475647 0.879333 0.352264 0.478668 0.878906 0.392181 0.481750 0.878418 0.433807 0.484802 0.877930 0.476807 0.487793 0.877441 0.520874 0.490906 0.877014 0.565216 0.494019 0.876526 0.608185 0.497101 0.876099 0.649323 0.500153 0.875641 0.688171 0.503326 0.875183 0.724243 0.506409 0.874756 0.757538 0.509521 0.874329 0.787811 0.512634 0.873901 0.815125 0.515747 0.873474 0.839935 0.518921 0.873077 0.862396 0.521942 0.872681 0.882843 0.525085 0.872284 0.901428 0.528168 0.871887 0.918274 0.531250 0.871552 0.933655 0.534363 0.871216 0.947601 0.537476 0.871216 0.960144 0.540497 0.871216 0.971497 0.543549 0.871216 0.981598 0.546600 0.871216 0.081696 0.498657 0.882233 0.105988 0.501587 0.881775 0.131500 0.504608 0.881256 0.158417 0.507629 0.880768 0.186768 0.510620 0.880310 0.216797 0.513702 0.879852 0.248779 0.516785 0.879364 0.282715 0.519836 0.878906 0.318970 0.522919 0.878418 0.357208 0.525970 0.877960 0.397369 0.529144 0.877441 0.439209 0.532318 0.877014 0.482269 0.535370 0.876556 0.526489 0.538483 0.876099 0.570770 0.541718 0.875641 0.613525 0.544769 0.875214 0.654419 0.547943 0.874786 0.692871 0.551117 0.874329 0.728638 0.554108 0.873901 0.761505 0.557220 0.873505 0.791290 0.560272 0.873108 0.818359 0.563385 0.872711 0.842834 0.566437 0.872284 0.865051 0.569427 0.871918 0.885223 0.572540 0.871552 0.903595 0.575531 0.871216 0.920258 0.578491 0.871216 0.935425 0.581512 0.871216 0.949188 0.584442 0.871216 0.961609 0.587372 0.871216 0.972778 0.590302 0.871216 0.982697 0.593079 0.871216 0.084625 0.546204 0.881287 0.109070 0.549133 0.880798 0.134796 0.552216 0.880341 0.161865 0.555267 0.879883 0.190430 0.558258 0.879395 0.220703 0.561310 0.878906 0.252930 0.564392 0.878418 0.287170 0.567413 0.877960 0.323669 0.570465 0.877472 0.362122 0.573486 0.877045 0.402557 0.576538 0.876556 0.444580 0.579651 0.876129 0.487823 0.582581 0.875641 0.532166 0.585663 0.875214 0.576294 0.588745 0.874786 0.618774 0.591675 0.874329 0.659363 0.594727 0.873932 0.697571 0.597778 0.873505 0.732941 0.600677 0.873108 0.765442 0.603699 0.872711 0.794922 0.606659 0.872314 0.821594 0.609589 0.871948 0.845734 0.612488 0.871552 0.867645 0.615356 0.871216 0.887604 0.618225 0.871216 0.905731 0.621124 0.871216 0.922180 0.623901 0.871216 0.937164 0.626709 0.871216 0.950745 0.629547 0.871216 0.963013 0.632263 0.871216 0.974030 0.635010 0.871216 0.983826 0.637756 0.871216 0.087585 0.592834 0.880341 0.112213 0.595673 0.879883 0.138092 0.598694 0.879395 0.165344 0.601654 0.878937 0.194122 0.604553 0.878448 0.224640 0.607513 0.877960 0.257111 0.610504 0.877502 0.291687 0.613373 0.877045 0.328461 0.616333 0.876587 0.367188 0.619232 0.876160 0.407806 0.622162 0.875671 0.450012 0.625092 0.875214 0.493408 0.627991 0.874817 0.537842 0.630890 0.874359 0.581726 0.633789 0.873932 0.623993 0.636658 0.873535 0.664307 0.639496 0.873108 0.702118 0.642334 0.872711 0.737152 0.645111 0.872345 0.769257 0.647888 0.871948 0.798309 0.650665 0.871582 0.824646 0.653442 0.871216 0.848541 0.656189 0.871216 0.870209 0.658844 0.871216 0.889893 0.661591 0.871216 0.907806 0.664276 0.871216 0.924072 0.666840 0.871216 0.938873 0.669495 0.871216 0.952240 0.672119 0.871216 0.964325 0.674652 0.871216 0.975189 0.677155 0.871216 0.984833 0.679596 0.871216 0.090607 0.637573 0.879425 0.115387 0.640350 0.878967 0.141449 0.643158 0.878448 0.168884 0.645996 0.877991 0.197876 0.648773 0.877533 0.228638 0.651550 0.877075 0.261261 0.654327 0.876617 0.296204 0.657104 0.876160 0.333252 0.659912 0.875671 0.372253 0.662659 0.875244 0.413086 0.665405 0.874817 0.455414 0.668182 0.874359 0.498932 0.670868 0.873932 0.543396 0.673584 0.873535 0.587158 0.676300 0.873108 0.629211 0.679016 0.872711 0.669159 0.681671 0.872345 0.706635 0.684296 0.871948 0.741333 0.686890 0.871582 0.773010 0.689514 0.871216 0.801727 0.692017 0.871216 0.827728 0.694611 0.871216 0.851288 0.697205 0.871216 0.872681 0.699585 0.871216 0.892120 0.702118 0.871216 0.909821 0.704590 0.871216 0.925873 0.706970 0.871216 0.940491 0.709351 0.871216 0.953735 0.711731 0.871216 0.965668 0.714050 0.871216 0.976379 0.716370 0.871216 0.985870 0.718597 0.871216 0.093658 0.679840 0.878479 0.118591 0.682465 0.878021 0.144806 0.685120 0.877533 0.172455 0.687714 0.877075 0.201660 0.690338 0.876617 0.232666 0.692963 0.876190 0.265594 0.695557 0.875702 0.300751 0.698181 0.875244 0.338104 0.700775 0.874817 0.377319 0.703308 0.874390 0.418396 0.705872 0.873932 0.460846 0.708435 0.873535 0.504517 0.710907 0.873138 0.549011 0.713409 0.872742 0.592529 0.715942 0.872375 0.634277 0.718353 0.871979 0.673981 0.720795 0.871582 0.711060 0.723206 0.871246 0.745361 0.725616 0.871216 0.776703 0.728027 0.871216 0.804993 0.730316 0.871216 0.830750 0.732635 0.871216 0.853973 0.734924 0.871216 0.875092 0.737183 0.871216 0.894318 0.739441 0.871216 0.911804 0.741669 0.871216 0.927673 0.743835 0.871216 0.942108 0.746002 0.871216 0.955170 0.748108 0.871216 0.966949 0.750214 0.871216 0.977509 0.752289 0.871216 0.986877 0.754272 0.871216 0.096741 0.719147 0.877563 0.121826 0.721588 0.877106 0.148224 0.723999 0.876617 0.176086 0.726471 0.876190 0.205475 0.728882 0.875732 0.236694 0.731293 0.875275 0.269928 0.733673 0.874817 0.305389 0.736053 0.874420 0.342957 0.738403 0.873962 0.382385 0.740784 0.873535 0.423676 0.743134 0.873169 0.466278 0.745422 0.872742 0.510071 0.747711 0.872375 0.554504 0.750000 0.871979 0.597778 0.752197 0.871613 0.639374 0.754456 0.871246 0.678711 0.756683 0.871216 0.715424 0.758850 0.871216 0.749390 0.760956 0.871216 0.780304 0.763123 0.871216 0.808258 0.765228 0.871216 0.833588 0.767303 0.871216 0.856598 0.769379 0.871216 0.877441 0.771362 0.871216 0.896454 0.773346 0.871216 0.913696 0.775360 0.871216 0.929413 0.777283 0.871216 0.943665 0.779205 0.871216 0.956543 0.781036 0.871216 0.968170 0.782898 0.871216 0.978577 0.784760 0.871216 0.987793 0.786499 0.871216 0.099854 0.755188 0.876617 0.125122 0.757446 0.876190 0.151672 0.759674 0.875732 0.179657 0.761810 0.875305 0.209320 0.764038 0.874817 0.240845 0.766235 0.874420 0.274323 0.768372 0.873993 0.309998 0.770569 0.873535 0.347809 0.772736 0.873169 0.387482 0.774780 0.872772 0.428894 0.776886 0.872375 0.471710 0.778961 0.871979 0.515533 0.781006 0.871613 0.559967 0.783020 0.871246 0.603027 0.785034 0.871216 0.644257 0.787018 0.871216 0.683350 0.789001 0.871216 0.719696 0.790894 0.871216 0.753235 0.792847 0.871216 0.783783 0.794769 0.871216 0.811401 0.796600 0.871216 0.836456 0.798462 0.871216 0.859161 0.800262 0.871216 0.879730 0.802063 0.871216 0.898499 0.803864 0.871216 0.915588 0.805573 0.871216 0.931061 0.807281 0.871216 0.945129 0.808990 0.871216 0.957886 0.810608 0.871216 0.969391 0.812256 0.871216 0.979614 0.813904 0.871216 0.988708 0.815460 0.871216 0.102997 0.787811 0.875763 0.128387 0.789795 0.875305 0.155121 0.791779 0.874847 0.183319 0.793762 0.874420 0.213226 0.795746 0.873993 0.244934 0.797729 0.873566 0.278687 0.799652 0.873169 0.314636 0.801544 0.872803 0.352692 0.803467 0.872375 0.392548 0.805359 0.872009 0.434113 0.807251 0.871643 0.477081 0.809113 0.871277 0.521057 0.810913 0.871216 0.565338 0.812744 0.871216 0.608154 0.814484 0.871216 0.649109 0.816284 0.871216 0.687866 0.818054 0.871216 0.723846 0.819763 0.871216 0.757050 0.821472 0.871216 0.787170 0.823181 0.871216 0.814453 0.824799 0.871216 0.839203 0.826447 0.871216 0.861633 0.828064 0.871216 0.881958 0.829651 0.871216 0.900513 0.831207 0.871216 0.917358 0.832703 0.871216 0.932709 0.834229 0.871216 0.946594 0.835754 0.871216 0.959167 0.837158 0.871216 0.970520 0.838623 0.871216 0.980621 0.840057 0.871216 0.989532 0.841431 0.871216 0.106079 0.817047 0.874878 0.131683 0.818878 0.874451 0.158630 0.820709 0.874023 0.186981 0.822449 0.873596 0.217102 0.824188 0.873199 0.249084 0.825989 0.872803 0.283020 0.827698 0.872406 0.319305 0.829468 0.872009 0.357544 0.831177 0.871643 0.397583 0.832825 0.871307 0.439362 0.834534 0.871216 0.482391 0.836121 0.871216 0.526459 0.837799 0.871216 0.570557 0.839417 0.871216 0.613159 0.840973 0.871216 0.653900 0.842560 0.871216 0.692261 0.844177 0.871216 0.727966 0.845642 0.871216 0.760681 0.847198 0.871216 0.790497 0.848694 0.871216 0.817413 0.850159 0.871216 0.841827 0.851593 0.871216 0.863983 0.852997 0.871216 0.884125 0.854431 0.871216 0.902435 0.855804 0.871216 0.919067 0.857178 0.871216 0.934235 0.858521 0.871216 0.947998 0.859833 0.871216 0.960419 0.861115 0.871216 0.971588 0.862366 0.871216 0.981567 0.863617 0.871216 0.990387 0.864838 0.871216 0.109283 0.843414 0.874054 0.135010 0.845032 0.873596 0.162140 0.846680 0.873199 0.190674 0.848236 0.872803 0.220947 0.849854 0.872406 0.253143 0.851410 0.872040 0.287445 0.852966 0.871674 0.323883 0.854553 0.871307 0.362396 0.856079 0.871216 0.402649 0.857574 0.871216 0.444580 0.859039 0.871216 0.487671 0.860535 0.871216 0.531799 0.862000 0.871216 0.575775 0.863434 0.871216 0.618134 0.864838 0.871216 0.658508 0.866272 0.871216 0.696594 0.867645 0.871216 0.731842 0.868988 0.871216 0.764252 0.870361 0.871216 0.793701 0.871704 0.871216 0.820282 0.872955 0.871216 0.844421 0.874268 0.871216 0.866272 0.875488 0.871216 0.886200 0.876770 0.871216 0.904297 0.878021 0.871216 0.920776 0.879181 0.871216 0.935730 0.880371 0.871216 0.949310 0.881531 0.871216 0.961609 0.882660 0.871216 0.972656 0.883759 0.871216 0.982513 0.884888 0.871216 0.991180 0.885925 0.871216 0.112457 0.867157 0.873230 0.138306 0.868622 0.872803 0.165649 0.870056 0.872437 0.194366 0.871490 0.872040 0.224854 0.872925 0.871674 0.257263 0.874329 0.871307 0.291779 0.875732 0.871216 0.328491 0.877136 0.871216 0.367188 0.878448 0.871216 0.407684 0.879852 0.871216 0.449707 0.881165 0.871216 0.492920 0.882477 0.871216 0.537140 0.883759 0.871216 0.580841 0.885071 0.871216 0.622986 0.886322 0.871216 0.663086 0.887604 0.871216 0.700775 0.888824 0.871216 0.735687 0.890045 0.871216 0.767761 0.891235 0.871216 0.796753 0.892395 0.871216 0.823029 0.893555 0.871216 0.846893 0.894714 0.871216 0.868530 0.895813 0.871216 0.888184 0.896912 0.871216 0.906097 0.898010 0.871216 0.922363 0.899048 0.871216 0.937164 0.900116 0.871216 0.950623 0.901123 0.871216 0.962738 0.902100 0.871216 0.973633 0.903107 0.871216 0.983337 0.904022 0.871216 0.991943 0.904999 0.871216 0.115601 0.888519 0.872437 0.141632 0.889862 0.872070 0.169098 0.891174 0.871704 0.198029 0.892456 0.871338 0.228790 0.893738 0.871216 0.261444 0.895020 0.871216 0.296204 0.896271 0.871216 0.333130 0.897522 0.871216 0.371948 0.898682 0.871216 0.412628 0.899933 0.871216 0.454742 0.901123 0.871216 0.498047 0.902283 0.871216 0.542328 0.903442 0.871216 0.585876 0.904602 0.871216 0.627686 0.905701 0.871216 0.667480 0.906860 0.871216 0.704865 0.907928 0.871216 0.739410 0.909027 0.871216 0.771088 0.910095 0.871216 0.799744 0.911102 0.871216 0.825684 0.912109 0.871216 0.849304 0.913116 0.871216 0.870636 0.914124 0.871216 0.890137 0.915100 0.871216 0.907806 0.916077 0.871216 0.923920 0.916992 0.871216 0.938538 0.917877 0.871216 0.951813 0.918793 0.871216 0.963806 0.919647 0.871216 0.974579 0.920532 0.871216 0.984161 0.921356 0.871216 0.992615 0.922180 0.871216 0.118774 0.907867 0.871704 0.145020 0.909058 0.871338 0.172577 0.910248 0.871216 0.201691 0.911377 0.871216 0.232635 0.912537 0.871216 0.265472 0.913635 0.871216 0.300507 0.914795 0.871216 0.337646 0.915894 0.871216 0.376709 0.916992 0.871216 0.417511 0.918060 0.871216 0.459808 0.919098 0.871216 0.503174 0.920166 0.871216 0.547333 0.921173 0.871216 0.590698 0.922241 0.871216 0.632263 0.923218 0.871216 0.671783 0.924194 0.871216 0.708801 0.925171 0.871216 0.742981 0.926117 0.871216 0.774292 0.927063 0.871216 0.802612 0.927979 0.871216 0.828278 0.928864 0.871216 0.851562 0.929779 0.871216 0.872711 0.930634 0.871216 0.891937 0.931488 0.871216 0.909454 0.932343 0.871216 0.925385 0.933136 0.871216 0.939880 0.933960 0.871216 0.953003 0.934723 0.871216 0.964813 0.935516 0.871216 0.975464 0.936218 0.871216 0.984924 0.936920 0.871216 0.993256 0.937683 0.871216 0.121948 0.925323 0.871216 0.148285 0.926361 0.871216 0.176056 0.927429 0.871216 0.205383 0.928436 0.871216 0.236511 0.929504 0.871216 0.269531 0.930481 0.871216 0.304840 0.931458 0.871216 0.342194 0.932495 0.871216 0.381409 0.933441 0.871216 0.422363 0.934387 0.871216 0.464722 0.935364 0.871216 0.508179 0.936249 0.871216 0.552307 0.937195 0.871216 0.595428 0.938080 0.871216 0.636749 0.938995 0.871216 0.675934 0.939880 0.871216 0.712585 0.940704 0.871216 0.746429 0.941559 0.871216 0.777344 0.942352 0.871216 0.805389 0.943176 0.871216 0.830780 0.943970 0.871216 0.853790 0.944763 0.871216 0.874664 0.945496 0.871216 0.893707 0.946259 0.871216 0.911011 0.946991 0.871216 0.926758 0.947693 0.871216 0.941101 0.948364 0.871216 0.954041 0.949097 0.871216 0.965790 0.949738 0.871216 0.976318 0.950409 0.871216 0.985657 0.951019 0.871216 0.993896 0.951630 0.871216 0.125092 0.941040 0.871216 0.151581 0.942017 0.871216 0.179474 0.942902 0.871216 0.209015 0.943817 0.871216 0.240356 0.944763 0.871216 0.273621 0.945648 0.871216 0.309113 0.946533 0.871216 0.346649 0.947418 0.871216 0.386017 0.948273 0.871216 0.427094 0.949127 0.871216 0.469543 0.949951 0.871216 0.513031 0.950775 0.871216 0.557129 0.951569 0.871216 0.599976 0.952332 0.871216 0.641052 0.953125 0.871216 0.679901 0.953918 0.871216 0.716248 0.954651 0.871216 0.749786 0.955414 0.871216 0.780334 0.956116 0.871216 0.808014 0.956818 0.871216 0.833130 0.957520 0.871216 0.855865 0.958221 0.871216 0.876526 0.958862 0.871216 0.895386 0.959534 0.871216 0.912476 0.960175 0.871216 0.928070 0.960754 0.871216 0.942261 0.961365 0.871216 0.955109 0.961945 0.871216 0.966705 0.962494 0.871216 0.977081 0.963074 0.871216 0.986359 0.963623 0.871216 0.994446 0.964172 0.871216 0.128235 0.955170 0.871216 0.154877 0.955994 0.871216 0.182892 0.956818 0.871216 0.212585 0.957611 0.871216 0.244141 0.958435 0.871216 0.277618 0.959229 0.871216 0.313324 0.960022 0.871216 0.351044 0.960785 0.871216 0.390533 0.961548 0.871216 0.431793 0.962280 0.871216 0.474365 0.963043 0.871216 0.517883 0.963715 0.871216 0.561829 0.964447 0.871216 0.604431 0.965118 0.871216 0.645264 0.965820 0.871216 0.683807 0.966522 0.871216 0.719788 0.967163 0.871216 0.752960 0.967773 0.871216 0.783203 0.968414 0.871216 0.810516 0.969025 0.871216 0.835327 0.969635 0.871216 0.857849 0.970245 0.871216 0.878326 0.970764 0.871216 0.896942 0.971344 0.871216 0.913879 0.971863 0.871216 0.929321 0.972412 0.871216 0.943359 0.972961 0.871216 0.956085 0.973450 0.871216 0.967560 0.973938 0.871216 0.977844 0.974396 0.871216 0.987000 0.974854 0.871216 0.994965 0.975281 0.871216 0.131317 0.967773 0.871216 0.158112 0.968506 0.871216 0.186279 0.969208 0.871216 0.216187 0.969971 0.871216 0.247864 0.970673 0.871216 0.281586 0.971344 0.871216 0.317474 0.972046 0.871216 0.355377 0.972717 0.871216 0.395050 0.973389 0.871216 0.436340 0.974030 0.871216 0.478882 0.974640 0.871216 0.522552 0.975281 0.871216 0.566376 0.975922 0.871216 0.608734 0.976501 0.871216 0.649231 0.977081 0.871216 0.687469 0.977661 0.871216 0.723145 0.978241 0.871216 0.756012 0.978790 0.871216 0.785889 0.979340 0.871216 0.812958 0.979858 0.871216 0.837494 0.980377 0.871216 0.859741 0.980865 0.871216 0.880005 0.981354 0.871216 0.898438 0.981842 0.871216 0.915253 0.982300 0.871216 0.930481 0.982727 0.871216 0.944397 0.983154 0.871216 0.956970 0.983582 0.871216 0.968353 0.983978 0.871216 0.978516 0.984406 0.871216 0.987549 0.984772 0.871216 0.995483 0.985138 0.871216 0.046326 0.007690 0.910400 0.068512 0.008575 0.910156 0.091736 0.009491 0.909912 0.116028 0.010468 0.909637 0.141541 0.011414 0.909363 0.168457 0.012451 0.909027 0.196869 0.013489 0.908722 0.226959 0.014526 0.908417 0.259033 0.015625 0.908112 0.293243 0.016754 0.907776 0.329468 0.017853 0.907440 0.367767 0.018982 0.907074 0.407867 0.020172 0.906738 0.449432 0.021362 0.906372 0.492371 0.022614 0.905975 0.536255 0.023804 0.905609 0.579834 0.025055 0.905212 0.621918 0.026367 0.904846 0.661896 0.027649 0.904419 0.699585 0.028961 0.904022 0.734680 0.030334 0.903595 0.766785 0.031677 0.903229 0.795990 0.033051 0.902802 0.822479 0.034424 0.902374 0.846436 0.035797 0.901947 0.868286 0.037231 0.901520 0.888092 0.038635 0.901093 0.906128 0.040161 0.900665 0.922638 0.041565 0.900238 0.937531 0.043060 0.899780 0.951111 0.044525 0.899353 0.963379 0.046051 0.898926 0.048096 0.029297 0.909912 0.070435 0.030273 0.909637 0.093781 0.031281 0.909363 0.118225 0.032379 0.909027 0.143921 0.033417 0.908752 0.171021 0.034515 0.908417 0.199646 0.035645 0.908112 0.229980 0.036774 0.907776 0.262299 0.037964 0.907471 0.296692 0.039124 0.907074 0.333252 0.040375 0.906738 0.371796 0.041595 0.906372 0.412109 0.042847 0.905975 0.453949 0.044128 0.905640 0.497101 0.045471 0.905243 0.541016 0.046753 0.904877 0.584503 0.048096 0.904449 0.626434 0.049500 0.904053 0.666260 0.050873 0.903625 0.703766 0.052277 0.903229 0.738495 0.053741 0.902832 0.770325 0.055176 0.902374 0.799255 0.056610 0.901978 0.825439 0.058105 0.901550 0.849152 0.059570 0.901123 0.870758 0.061066 0.900696 0.890381 0.062592 0.900238 0.908234 0.064117 0.899780 0.924500 0.065704 0.899384 0.939270 0.067261 0.898926 0.952667 0.068817 0.898499 0.964752 0.070465 0.898041 0.049988 0.051941 0.909363 0.072449 0.053009 0.909058 0.095917 0.054108 0.908752 0.120544 0.055267 0.908417 0.146393 0.056427 0.908112 0.173706 0.057648 0.907806 0.202515 0.058868 0.907471 0.233124 0.060120 0.907104 0.265686 0.061371 0.906769 0.300415 0.062653 0.906403 0.337189 0.063934 0.906006 0.376007 0.065277 0.905640 0.416504 0.066650 0.905273 0.458618 0.067993 0.904877 0.501862 0.069397 0.904449 0.545959 0.070862 0.904053 0.589355 0.072296 0.903656 0.631134 0.073761 0.903229 0.670685 0.075195 0.902832 0.707886 0.076752 0.902374 0.742401 0.078247 0.901978 0.773926 0.079773 0.901550 0.802490 0.081329 0.901123 0.828369 0.082886 0.900696 0.851868 0.084503 0.900269 0.873230 0.086090 0.899811 0.892639 0.087708 0.899384 0.910309 0.089355 0.898956 0.926422 0.091003 0.898499 0.941010 0.092651 0.898071 0.954285 0.094299 0.897644 0.966187 0.096039 0.897186 0.051971 0.075684 0.908752 0.074554 0.076843 0.908447 0.098206 0.078064 0.908142 0.122986 0.079315 0.907806 0.149017 0.080597 0.907471 0.176453 0.081879 0.907135 0.205536 0.083221 0.906769 0.236359 0.084534 0.906433 0.269196 0.085907 0.906006 0.304138 0.087280 0.905640 0.341248 0.088715 0.905273 0.380310 0.090179 0.904877 0.421051 0.091614 0.904480 0.463379 0.093079 0.904053 0.506805 0.094635 0.903687 0.550964 0.096130 0.903259 0.594269 0.097656 0.902863 0.635834 0.099274 0.902374 0.675232 0.100830 0.902008 0.712128 0.102448 0.901581 0.746307 0.104034 0.901154 0.777435 0.105682 0.900696 0.805725 0.107361 0.900269 0.831299 0.108978 0.899841 0.854584 0.110718 0.899384 0.875732 0.112427 0.898956 0.894897 0.114136 0.898529 0.912384 0.115875 0.898071 0.928284 0.117615 0.897644 0.942719 0.119385 0.897186 0.955841 0.121155 0.896759 0.967621 0.122955 0.896332 0.054047 0.100677 0.908142 0.076782 0.101929 0.907806 0.100555 0.103271 0.907471 0.125519 0.104645 0.907135 0.151703 0.105988 0.906769 0.179382 0.107391 0.906433 0.208679 0.108856 0.906006 0.239746 0.110291 0.905640 0.272827 0.111755 0.905273 0.308044 0.113220 0.904907 0.345459 0.114746 0.904510 0.384796 0.116364 0.904053 0.425781 0.117889 0.903687 0.468201 0.119476 0.903290 0.511841 0.121124 0.902863 0.556030 0.122742 0.902405 0.599213 0.124420 0.902008 0.640594 0.126129 0.901581 0.679688 0.127808 0.901184 0.716370 0.129517 0.900696 0.750183 0.131226 0.900269 0.781067 0.132965 0.899872 0.809021 0.134766 0.899414 0.834290 0.136536 0.898987 0.857300 0.138367 0.898529 0.878204 0.140167 0.898102 0.897156 0.141998 0.897675 0.914459 0.143860 0.897217 0.930206 0.145721 0.896759 0.944458 0.147583 0.896362 0.957367 0.149475 0.895905 0.968994 0.151337 0.895538 0.056244 0.127014 0.907501 0.079071 0.128418 0.907135 0.102997 0.129852 0.906799 0.128143 0.131348 0.906433 0.154510 0.132782 0.906036 0.182404 0.134338 0.905640 0.211945 0.135895 0.905273 0.243225 0.137421 0.904907 0.276611 0.139038 0.904510 0.312164 0.140656 0.904083 0.349792 0.142334 0.903687 0.389343 0.144012 0.903290 0.430511 0.145660 0.902863 0.473236 0.147369 0.902435 0.517059 0.149170 0.902008 0.561157 0.150909 0.901581 0.604248 0.152649 0.901184 0.645416 0.154480 0.900696 0.684265 0.156281 0.900299 0.720642 0.158173 0.899872 0.754089 0.159973 0.899445 0.784668 0.161865 0.898987 0.812256 0.163788 0.898560 0.837280 0.165680 0.898132 0.859985 0.167633 0.897705 0.880676 0.169556 0.897217 0.899445 0.171478 0.896790 0.916534 0.173492 0.896393 0.932068 0.175507 0.895935 0.946167 0.177429 0.895538 0.958923 0.179474 0.895050 0.970398 0.181488 0.894684 0.058502 0.154877 0.906799 0.081482 0.156342 0.906433 0.105591 0.157928 0.906036 0.130859 0.159546 0.905670 0.157471 0.161163 0.905304 0.185516 0.162842 0.904907 0.215240 0.164490 0.904541 0.246826 0.166168 0.904114 0.280487 0.167969 0.903717 0.316315 0.169678 0.903290 0.354279 0.171478 0.902893 0.394073 0.173309 0.902435 0.435486 0.175110 0.902008 0.478363 0.176941 0.901611 0.522308 0.178864 0.901184 0.566437 0.180725 0.900757 0.609314 0.182648 0.900330 0.650208 0.184570 0.899872 0.688873 0.186523 0.899445 0.724915 0.188538 0.899017 0.758026 0.190491 0.898560 0.788208 0.192535 0.898132 0.815552 0.194580 0.897705 0.840240 0.196594 0.897247 0.862701 0.198700 0.896820 0.883118 0.200775 0.896393 0.901672 0.202820 0.895966 0.918549 0.204956 0.895538 0.933899 0.207031 0.895081 0.947845 0.209198 0.894684 0.960449 0.211365 0.894257 0.971771 0.213501 0.893860 0.060852 0.184418 0.906067 0.083984 0.186066 0.905701 0.108246 0.187805 0.905334 0.133698 0.189575 0.904938 0.160461 0.191254 0.904541 0.188751 0.193085 0.904114 0.218719 0.194916 0.903717 0.250549 0.196777 0.903320 0.284515 0.198700 0.902893 0.320618 0.200500 0.902466 0.358795 0.202484 0.902039 0.398834 0.204437 0.901611 0.440521 0.206390 0.901215 0.483582 0.208405 0.900757 0.527649 0.210449 0.900330 0.571655 0.212463 0.899902 0.614410 0.214569 0.899475 0.655090 0.216614 0.899017 0.693420 0.218750 0.898590 0.729187 0.220856 0.898163 0.761963 0.222961 0.897705 0.791748 0.225159 0.897278 0.818756 0.227386 0.896820 0.843170 0.229523 0.896393 0.865387 0.231781 0.895966 0.885559 0.234070 0.895538 0.903870 0.236237 0.895111 0.920593 0.238525 0.894684 0.935730 0.240753 0.894287 0.949524 0.243073 0.893860 0.961945 0.245392 0.893463 0.973083 0.247620 0.893066 0.063293 0.215912 0.905334 0.086548 0.217682 0.904968 0.110962 0.219574 0.904541 0.136597 0.221466 0.904144 0.163574 0.223389 0.903717 0.192078 0.225372 0.903320 0.222260 0.227325 0.902924 0.254364 0.229370 0.902496 0.288605 0.231415 0.902039 0.325012 0.233429 0.901642 0.363495 0.235535 0.901215 0.403809 0.237701 0.900787 0.445618 0.239807 0.900330 0.488800 0.242004 0.899902 0.532990 0.244141 0.899475 0.576965 0.246368 0.899017 0.619568 0.248627 0.898590 0.659912 0.250824 0.898163 0.698059 0.253113 0.897705 0.733398 0.255463 0.897278 0.765869 0.257751 0.896851 0.795319 0.260101 0.896393 0.821960 0.262421 0.895996 0.846130 0.264801 0.895569 0.868042 0.267212 0.895111 0.887939 0.269531 0.894714 0.906097 0.271973 0.894287 0.922607 0.274414 0.893860 0.937561 0.276855 0.893463 0.951172 0.279297 0.893066 0.963409 0.281799 0.892670 0.974426 0.284241 0.892273 0.065765 0.249512 0.904541 0.089203 0.251495 0.904144 0.113800 0.253601 0.903748 0.139557 0.255646 0.903320 0.166718 0.257751 0.902954 0.195465 0.259888 0.902496 0.225891 0.262054 0.902069 0.258270 0.264221 0.901642 0.292847 0.266479 0.901245 0.329498 0.268677 0.900787 0.368195 0.270966 0.900360 0.408783 0.273315 0.899933 0.450775 0.275604 0.899475 0.494263 0.277924 0.899048 0.538483 0.280304 0.898621 0.582367 0.282684 0.898163 0.624695 0.285156 0.897736 0.664825 0.287537 0.897278 0.702606 0.290009 0.896851 0.737671 0.292511 0.896393 0.769714 0.294952 0.895996 0.798828 0.297485 0.895569 0.825165 0.300018 0.895142 0.848999 0.302521 0.894714 0.870667 0.305145 0.894318 0.890350 0.307648 0.893890 0.908264 0.310242 0.893494 0.924561 0.312897 0.893097 0.939331 0.315460 0.892700 0.952789 0.318054 0.892273 0.964844 0.320709 0.891907 0.975708 0.323334 0.891541 0.068359 0.285553 0.903778 0.091949 0.287781 0.903351 0.116669 0.290009 0.902954 0.142609 0.292236 0.902496 0.170013 0.294617 0.902100 0.198975 0.296906 0.901642 0.229675 0.299194 0.901245 0.262299 0.301636 0.900787 0.297180 0.304047 0.900360 0.334076 0.306488 0.899963 0.373047 0.308929 0.899475 0.413727 0.311371 0.899078 0.456116 0.313904 0.898651 0.499695 0.316498 0.898163 0.543976 0.318970 0.897766 0.587708 0.321625 0.897308 0.629822 0.324219 0.896851 0.669739 0.326752 0.896454 0.707184 0.329437 0.895996 0.741882 0.332123 0.895569 0.773560 0.334686 0.895172 0.802277 0.337402 0.894745 0.828278 0.340088 0.894318 0.851837 0.342804 0.893921 0.873260 0.345551 0.893494 0.892731 0.348206 0.893097 0.910431 0.350983 0.892700 0.926514 0.353729 0.892303 0.941132 0.356445 0.891907 0.954376 0.359253 0.891541 0.966309 0.361969 0.891174 0.976990 0.364716 0.890808 0.070984 0.324158 0.902985 0.094757 0.326569 0.902527 0.119629 0.328979 0.902100 0.145782 0.331421 0.901703 0.173370 0.333893 0.901276 0.202545 0.336456 0.900787 0.233490 0.338959 0.900421 0.266388 0.341553 0.899963 0.301575 0.344147 0.899506 0.338776 0.346680 0.899078 0.378021 0.349365 0.898651 0.418945 0.351990 0.898193 0.461426 0.354645 0.897766 0.505188 0.357391 0.897339 0.549500 0.360077 0.896881 0.593109 0.362823 0.896454 0.634979 0.365631 0.896027 0.674622 0.368347 0.895599 0.711731 0.371155 0.895172 0.746094 0.373993 0.894745 0.777313 0.376740 0.894348 0.805695 0.379578 0.893921 0.831390 0.382385 0.893524 0.854675 0.385254 0.893097 0.875854 0.388153 0.892700 0.895050 0.390930 0.892334 0.912537 0.393860 0.891907 0.928436 0.396759 0.891571 0.942871 0.399567 0.891174 0.955933 0.402496 0.890808 0.967712 0.405365 0.890442 0.978241 0.408234 0.890137 0.073700 0.365143 0.902130 0.097595 0.367737 0.901703 0.122681 0.370300 0.901276 0.149017 0.372955 0.900818 0.176788 0.375549 0.900421 0.206177 0.378265 0.899963 0.237366 0.380920 0.899536 0.270599 0.383698 0.899109 0.306000 0.386383 0.898651 0.343536 0.389160 0.898224 0.382965 0.391998 0.897797 0.424164 0.394775 0.897369 0.466888 0.397583 0.896881 0.510742 0.400513 0.896484 0.555115 0.403351 0.896057 0.598511 0.406250 0.895630 0.640106 0.409149 0.895203 0.679413 0.412048 0.894775 0.716217 0.415009 0.894348 0.750183 0.417938 0.893921 0.781097 0.420807 0.893524 0.809113 0.423828 0.893127 0.834473 0.426697 0.892731 0.857452 0.429718 0.892334 0.878357 0.432739 0.891907 0.897339 0.435638 0.891571 0.914642 0.438629 0.891174 0.930298 0.441650 0.890808 0.944580 0.444580 0.890472 0.957458 0.447510 0.890137 0.969086 0.450562 0.889801 0.979431 0.453461 0.889679 0.076477 0.408264 0.901276 0.100555 0.410950 0.900818 0.125793 0.413727 0.900421 0.152283 0.416504 0.899963 0.180267 0.419342 0.899536 0.209930 0.422180 0.899109 0.241333 0.424988 0.898651 0.274872 0.427856 0.898224 0.310486 0.430695 0.897797 0.348328 0.433655 0.897369 0.388062 0.436615 0.896912 0.429443 0.439545 0.896484 0.472351 0.442505 0.896057 0.516296 0.445496 0.895630 0.560638 0.448456 0.895203 0.603882 0.451477 0.894775 0.645264 0.454529 0.894379 0.684204 0.457520 0.893921 0.720673 0.460571 0.893555 0.754242 0.463593 0.893127 0.784790 0.466644 0.892761 0.812469 0.469696 0.892334 0.837494 0.472717 0.891937 0.860229 0.475830 0.891571 0.880859 0.478882 0.891174 0.899567 0.481873 0.890839 0.916687 0.484985 0.890503 0.932190 0.488037 0.890137 0.946228 0.491058 0.889801 0.958954 0.494110 0.889679 0.970428 0.497101 0.889679 0.980652 0.500122 0.889679 0.079315 0.453217 0.900421 0.103516 0.456116 0.899994 0.128937 0.459015 0.899567 0.155640 0.461884 0.899109 0.183838 0.464844 0.898651 0.213654 0.467773 0.898254 0.245392 0.470795 0.897797 0.279175 0.473785 0.897369 0.315125 0.476776 0.896942 0.353210 0.479797 0.896484 0.393188 0.482880 0.896057 0.434784 0.485870 0.895630 0.477814 0.488953 0.895203 0.521942 0.492065 0.894775 0.566254 0.495117 0.894409 0.609222 0.498291 0.893921 0.650330 0.501343 0.893555 0.688995 0.504395 0.893127 0.725098 0.507568 0.892761 0.758301 0.510620 0.892365 0.788452 0.513733 0.891937 0.815765 0.516907 0.891571 0.840454 0.519958 0.891205 0.862885 0.523071 0.890869 0.883270 0.526215 0.890503 0.901825 0.529297 0.890167 0.918640 0.532410 0.889832 0.933990 0.535522 0.889679 0.947876 0.538574 0.889679 0.960449 0.541595 0.889679 0.971710 0.544617 0.889679 0.981781 0.547638 0.889679 0.082214 0.499695 0.899567 0.106567 0.502747 0.899139 0.132172 0.505737 0.898682 0.159027 0.508728 0.898254 0.187439 0.511780 0.897827 0.217529 0.514801 0.897400 0.249481 0.517883 0.896942 0.283539 0.520996 0.896515 0.319824 0.524048 0.896088 0.358185 0.527191 0.895660 0.398315 0.530334 0.895233 0.440155 0.533417 0.894806 0.483368 0.536591 0.894409 0.527557 0.539703 0.893951 0.571716 0.542816 0.893585 0.614471 0.545959 0.893158 0.655304 0.549042 0.892761 0.693726 0.552155 0.892365 0.729431 0.555298 0.891937 0.762238 0.558289 0.891602 0.792023 0.561432 0.891235 0.819000 0.564545 0.890869 0.843384 0.567535 0.890503 0.865570 0.570618 0.890167 0.885712 0.573639 0.889832 0.903961 0.576630 0.889679 0.920624 0.579559 0.889679 0.935730 0.582520 0.889679 0.949463 0.585510 0.889679 0.961853 0.588470 0.889679 0.972992 0.591309 0.889679 0.982910 0.594177 0.889679 0.085114 0.547272 0.898712 0.109650 0.550293 0.898254 0.135406 0.553345 0.897827 0.162476 0.556305 0.897400 0.191101 0.559387 0.896942 0.221405 0.562408 0.896545 0.253662 0.565491 0.896118 0.288055 0.568512 0.895660 0.324524 0.571564 0.895233 0.363159 0.574615 0.894806 0.403595 0.577728 0.894409 0.445587 0.580719 0.893982 0.488922 0.583740 0.893585 0.533264 0.586823 0.893158 0.577240 0.589783 0.892761 0.619812 0.592834 0.892365 0.660370 0.595856 0.891968 0.698364 0.598816 0.891602 0.733734 0.601807 0.891235 0.766113 0.604736 0.890900 0.795532 0.607697 0.890503 0.822144 0.610657 0.890198 0.846252 0.613525 0.889862 0.868164 0.616425 0.889679 0.888031 0.619354 0.889679 0.906097 0.622131 0.889679 0.922577 0.624969 0.889679 0.937500 0.627808 0.889679 0.951019 0.630493 0.889679 0.963257 0.633331 0.889679 0.974213 0.635986 0.889679 0.983978 0.638672 0.889679 0.088135 0.593872 0.897858 0.112793 0.596832 0.897430 0.138733 0.599823 0.896942 0.165985 0.602692 0.896545 0.194855 0.605713 0.896118 0.225372 0.608582 0.895691 0.257874 0.611542 0.895233 0.292511 0.614471 0.894836 0.329315 0.617371 0.894409 0.368164 0.620300 0.894012 0.408813 0.623260 0.893585 0.450989 0.626129 0.893188 0.494446 0.629028 0.892792 0.538879 0.631958 0.892395 0.582733 0.634796 0.891998 0.625000 0.637665 0.891602 0.665161 0.640503 0.891235 0.702972 0.643372 0.890900 0.737946 0.646149 0.890503 0.769958 0.648895 0.890198 0.798981 0.651703 0.889862 0.825256 0.654510 0.889679 0.849060 0.657166 0.889679 0.870667 0.659882 0.889679 0.890320 0.662598 0.889679 0.908173 0.665161 0.889679 0.924408 0.667847 0.889679 0.939148 0.670410 0.889679 0.952545 0.673004 0.889679 0.964600 0.675598 0.889679 0.975403 0.678040 0.889679 0.985046 0.680573 0.889679 0.091156 0.638580 0.896973 0.115997 0.641388 0.896545 0.142059 0.644165 0.896149 0.169525 0.647034 0.895721 0.198639 0.649872 0.895264 0.229370 0.652588 0.894867 0.262146 0.655396 0.894409 0.297089 0.658173 0.894012 0.334167 0.660950 0.893585 0.373230 0.663696 0.893219 0.414124 0.666443 0.892792 0.456421 0.669159 0.892426 0.500000 0.671936 0.891998 0.544403 0.674591 0.891632 0.588196 0.677246 0.891235 0.630188 0.679932 0.890900 0.670044 0.682587 0.890533 0.707428 0.685242 0.890228 0.742096 0.687866 0.889862 0.773712 0.690399 0.889679 0.802368 0.692963 0.889679 0.828308 0.695557 0.889679 0.851776 0.698059 0.889679 0.873169 0.700562 0.889679 0.892578 0.703033 0.889679 0.910187 0.705414 0.889679 0.926239 0.707855 0.889679 0.940796 0.710205 0.889679 0.954010 0.712585 0.889679 0.965912 0.714905 0.889679 0.976562 0.717133 0.889679 0.986053 0.719452 0.889679 0.094208 0.680756 0.896149 0.119232 0.683441 0.895721 0.145416 0.686035 0.895294 0.173096 0.688721 0.894867 0.202393 0.691376 0.894440 0.233398 0.693909 0.894043 0.266418 0.696533 0.893616 0.301666 0.699158 0.893219 0.338959 0.701691 0.892792 0.378265 0.704254 0.892426 0.419342 0.706818 0.892029 0.461823 0.709320 0.891663 0.505585 0.711853 0.891266 0.549957 0.714294 0.890900 0.593506 0.716827 0.890564 0.635254 0.719269 0.890228 0.674896 0.721649 0.889893 0.711884 0.724060 0.889679 0.746155 0.726471 0.889679 0.777344 0.728821 0.889679 0.805634 0.731232 0.889679 0.831268 0.733521 0.889679 0.854462 0.735779 0.889679 0.875549 0.738068 0.889679 0.894714 0.740234 0.889679 0.912140 0.742462 0.889679 0.928009 0.744659 0.889679 0.942352 0.746765 0.889679 0.955414 0.748871 0.889679 0.967194 0.750977 0.889679 0.977692 0.753021 0.889679 0.987030 0.755035 0.889679 0.097290 0.720001 0.895294 0.122467 0.722504 0.894867 0.148865 0.724884 0.894470 0.176727 0.727356 0.894043 0.206207 0.729797 0.893646 0.237457 0.732178 0.893250 0.270782 0.734558 0.892822 0.306305 0.736969 0.892426 0.343811 0.739288 0.892029 0.383392 0.741608 0.891663 0.424591 0.743927 0.891266 0.467255 0.746246 0.890900 0.511108 0.748505 0.890564 0.555481 0.750763 0.890228 0.598755 0.753052 0.889893 0.640289 0.755249 0.889679 0.679535 0.757446 0.889679 0.716248 0.759644 0.889679 0.750122 0.761780 0.889679 0.780945 0.763916 0.889679 0.808868 0.765991 0.889679 0.834167 0.768097 0.889679 0.857056 0.770081 0.889679 0.877930 0.772156 0.889679 0.896820 0.774078 0.889679 0.914032 0.776062 0.889679 0.929749 0.778015 0.889679 0.943939 0.779846 0.889679 0.956818 0.781769 0.889679 0.968414 0.783600 0.889679 0.978790 0.785370 0.889679 0.987976 0.787170 0.889679 0.100403 0.756012 0.894470 0.125732 0.758270 0.894073 0.152313 0.760437 0.893646 0.180389 0.762665 0.893280 0.210083 0.764862 0.892822 0.241547 0.767029 0.892456 0.275146 0.769226 0.892029 0.310913 0.771362 0.891663 0.348724 0.773468 0.891266 0.388428 0.775574 0.890930 0.429810 0.777588 0.890564 0.472656 0.779694 0.890228 0.516602 0.781769 0.889893 0.560852 0.783752 0.889679 0.604004 0.785797 0.889679 0.645203 0.787781 0.889679 0.684143 0.789703 0.889679 0.720490 0.791656 0.889679 0.753967 0.793579 0.889679 0.784424 0.795471 0.889679 0.812012 0.797333 0.889679 0.836945 0.799103 0.889679 0.859619 0.800964 0.889679 0.880188 0.802734 0.889679 0.898865 0.804443 0.889679 0.915924 0.806183 0.889679 0.931366 0.807892 0.889679 0.945435 0.809570 0.889679 0.958130 0.811218 0.889679 0.969574 0.812897 0.889679 0.979828 0.814453 0.889679 0.988861 0.816010 0.889679 0.103546 0.788483 0.893646 0.129028 0.790558 0.893280 0.155792 0.792511 0.892853 0.184021 0.794495 0.892456 0.213928 0.796509 0.892029 0.245636 0.798431 0.891693 0.279480 0.800323 0.891296 0.315491 0.802246 0.890961 0.353577 0.804169 0.890564 0.393555 0.806091 0.890228 0.435028 0.807861 0.889923 0.478058 0.809784 0.889679 0.522095 0.811615 0.889679 0.566254 0.813354 0.889679 0.609100 0.815186 0.889679 0.650085 0.816956 0.889679 0.688690 0.818665 0.889679 0.724609 0.820374 0.889679 0.757751 0.822083 0.889679 0.787811 0.823761 0.889679 0.815002 0.825409 0.889679 0.839661 0.826996 0.889679 0.862061 0.828644 0.889679 0.882385 0.830231 0.889679 0.900848 0.831757 0.889679 0.917694 0.833313 0.889679 0.932983 0.834808 0.889679 0.946838 0.836273 0.889679 0.959412 0.837738 0.889679 0.970734 0.839203 0.889679 0.980804 0.840576 0.889679 0.989716 0.841919 0.889679 0.106720 0.817719 0.892883 0.132324 0.819550 0.892487 0.159241 0.821350 0.892059 0.187744 0.823120 0.891693 0.217804 0.824890 0.891296 0.249786 0.826599 0.890961 0.283875 0.828369 0.890594 0.320099 0.830078 0.890259 0.358429 0.831757 0.889923 0.398590 0.833466 0.889679 0.440277 0.835114 0.889679 0.483429 0.836761 0.889679 0.527496 0.838409 0.889679 0.571564 0.839996 0.889679 0.614166 0.841614 0.889679 0.654816 0.843170 0.889679 0.693054 0.844666 0.889679 0.728668 0.846252 0.889679 0.761353 0.847717 0.889679 0.791046 0.849213 0.889679 0.817963 0.850708 0.889679 0.842316 0.852112 0.889679 0.864441 0.853546 0.889679 0.884521 0.854950 0.889679 0.902802 0.856293 0.889679 0.919434 0.857666 0.889679 0.934540 0.859009 0.889679 0.948242 0.860291 0.889679 0.960632 0.861572 0.889679 0.971771 0.862823 0.889679 0.981750 0.864075 0.889679 0.990540 0.865265 0.889679 0.109863 0.843994 0.892090 0.135651 0.845612 0.891724 0.162720 0.847260 0.891327 0.191376 0.848877 0.890961 0.221680 0.850403 0.890625 0.253906 0.851959 0.890259 0.288269 0.853577 0.889954 0.324738 0.855042 0.889679 0.363281 0.856598 0.889679 0.403656 0.858124 0.889679 0.445465 0.859589 0.889679 0.488678 0.861084 0.889679 0.532837 0.862518 0.889679 0.576691 0.863953 0.889679 0.619080 0.865356 0.889679 0.659363 0.866760 0.889679 0.697357 0.868134 0.889679 0.732605 0.869507 0.889679 0.764893 0.870850 0.889679 0.794281 0.872131 0.889679 0.820801 0.873444 0.889679 0.844849 0.874695 0.889679 0.866730 0.875977 0.889679 0.886597 0.877258 0.889679 0.904633 0.878418 0.889679 0.921082 0.879639 0.889679 0.936035 0.880798 0.889679 0.949554 0.881958 0.889679 0.961823 0.883057 0.889679 0.972839 0.884186 0.889679 0.982635 0.885284 0.889679 0.991333 0.886322 0.889679 0.113037 0.867676 0.891327 0.139008 0.869141 0.890991 0.166199 0.870605 0.890625 0.195068 0.872040 0.890259 0.225616 0.873444 0.889954 0.258057 0.874817 0.889679 0.292633 0.876282 0.889679 0.329376 0.877594 0.889679 0.368103 0.878967 0.889679 0.408600 0.880310 0.889679 0.450592 0.881653 0.889679 0.493927 0.882965 0.889679 0.538147 0.884277 0.889679 0.581757 0.885529 0.889679 0.623901 0.886810 0.889679 0.663910 0.888031 0.889679 0.701538 0.889252 0.889679 0.736420 0.890472 0.889679 0.768341 0.891663 0.889679 0.797333 0.892822 0.889679 0.823578 0.893982 0.889679 0.847321 0.895081 0.889679 0.868927 0.896240 0.889679 0.888580 0.897339 0.889679 0.906433 0.898376 0.889679 0.922668 0.899445 0.889679 0.937408 0.900452 0.889679 0.950806 0.901489 0.889679 0.962952 0.902466 0.889679 0.973816 0.903442 0.889679 0.983490 0.904388 0.889679 0.992035 0.905334 0.889679 0.116241 0.889069 0.890656 0.142334 0.890381 0.890289 0.169739 0.891632 0.889954 0.198761 0.892914 0.889679 0.229462 0.894226 0.889679 0.262177 0.895477 0.889679 0.296997 0.896698 0.889679 0.333893 0.897919 0.889679 0.372864 0.899139 0.889679 0.413513 0.900391 0.889679 0.455688 0.901550 0.889679 0.499054 0.902710 0.889679 0.543182 0.903839 0.889679 0.586700 0.904999 0.889679 0.628571 0.906097 0.889679 0.668274 0.907227 0.889679 0.705597 0.908295 0.889679 0.740143 0.909424 0.889679 0.771667 0.910431 0.889679 0.800262 0.911469 0.889679 0.826202 0.912506 0.889679 0.849701 0.913483 0.889679 0.871063 0.914520 0.889679 0.890472 0.915466 0.889679 0.908112 0.916412 0.889679 0.924194 0.917358 0.889679 0.938782 0.918213 0.889679 0.952057 0.919098 0.889679 0.964020 0.919983 0.889679 0.974762 0.920807 0.889679 0.984344 0.921661 0.889679 0.992737 0.922485 0.889679 0.119385 0.908295 0.889984 0.145569 0.909454 0.889679 0.173248 0.910645 0.889679 0.202423 0.911804 0.889679 0.233337 0.912933 0.889679 0.266296 0.914032 0.889679 0.301331 0.915222 0.889679 0.338501 0.916290 0.889679 0.377625 0.917389 0.889679 0.418457 0.918427 0.889679 0.460632 0.919495 0.889679 0.504120 0.920532 0.889679 0.548218 0.921539 0.889679 0.591583 0.922607 0.889679 0.633148 0.923553 0.889679 0.672516 0.924530 0.889679 0.709503 0.925537 0.889679 0.743652 0.926483 0.889679 0.774872 0.927399 0.889679 0.803192 0.928314 0.889679 0.828766 0.929230 0.889679 0.851959 0.930115 0.889679 0.873108 0.930969 0.889679 0.892242 0.931793 0.889679 0.909760 0.932648 0.889679 0.925659 0.933441 0.889679 0.940063 0.934235 0.889679 0.953186 0.934998 0.889679 0.965027 0.935760 0.889679 0.975616 0.936493 0.889679 0.985077 0.937225 0.889679 0.993378 0.937927 0.889679 0.122559 0.925720 0.889679 0.148895 0.926727 0.889679 0.176697 0.927795 0.889679 0.206055 0.928833 0.889679 0.237183 0.929840 0.889679 0.270355 0.930847 0.889679 0.305634 0.931824 0.889679 0.342987 0.932831 0.889679 0.382324 0.933807 0.889679 0.423248 0.934753 0.889679 0.465607 0.935669 0.889679 0.509155 0.936646 0.889679 0.553223 0.937531 0.889679 0.596283 0.938416 0.889679 0.637573 0.939301 0.889679 0.676636 0.940155 0.889679 0.713287 0.941040 0.889679 0.747101 0.941864 0.889679 0.777954 0.942657 0.889679 0.805908 0.943481 0.889679 0.831207 0.944275 0.889679 0.854156 0.945007 0.889679 0.875031 0.945801 0.889679 0.894012 0.946533 0.889679 0.911285 0.947266 0.889679 0.927063 0.947968 0.889679 0.941284 0.948639 0.889679 0.954285 0.949310 0.889679 0.965973 0.949982 0.889679 0.976471 0.950623 0.889679 0.985809 0.951233 0.889679 0.993988 0.951874 0.889679 0.125702 0.941376 0.889679 0.152191 0.942291 0.889679 0.180115 0.943237 0.889679 0.209717 0.944153 0.889679 0.241028 0.945068 0.889679 0.274384 0.945953 0.889679 0.309937 0.946838 0.889679 0.347443 0.947693 0.889679 0.386902 0.948578 0.889679 0.427948 0.949402 0.889679 0.470428 0.950226 0.889679 0.513947 0.951080 0.889679 0.557953 0.951843 0.889679 0.600830 0.952667 0.889679 0.641846 0.953430 0.889679 0.680634 0.954193 0.889679 0.716919 0.954956 0.889679 0.750397 0.955688 0.889679 0.780853 0.956390 0.889679 0.808472 0.957092 0.889679 0.833496 0.957794 0.889679 0.856262 0.958435 0.889679 0.876862 0.959106 0.889679 0.895660 0.959747 0.889679 0.912750 0.960388 0.889679 0.928314 0.960999 0.889679 0.942444 0.961578 0.889679 0.955292 0.962158 0.889679 0.966858 0.962738 0.889679 0.977234 0.963287 0.889679 0.986481 0.963806 0.889679 0.994537 0.964325 0.889679 0.128815 0.955444 0.889679 0.155426 0.956299 0.889679 0.183563 0.957123 0.889679 0.213318 0.957947 0.889679 0.244781 0.958710 0.889679 0.278381 0.959534 0.889679 0.314087 0.960327 0.889679 0.351868 0.961090 0.889679 0.391418 0.961823 0.889679 0.432587 0.962555 0.889679 0.475159 0.963287 0.889679 0.518799 0.964020 0.889679 0.562622 0.964691 0.889679 0.605225 0.965393 0.889679 0.645996 0.966064 0.889679 0.684479 0.966736 0.889679 0.720459 0.967377 0.889679 0.753540 0.968018 0.889679 0.783691 0.968628 0.889679 0.810974 0.969238 0.889679 0.835724 0.969818 0.889679 0.858215 0.970428 0.889679 0.878632 0.971008 0.889679 0.897217 0.971558 0.889679 0.914154 0.972076 0.889679 0.929596 0.972595 0.889679 0.943542 0.973114 0.889679 0.956268 0.973633 0.889679 0.967712 0.974091 0.889679 0.977966 0.974548 0.889679 0.987091 0.975006 0.889679 0.995056 0.975464 0.889679 0.131897 0.968048 0.889679 0.158661 0.968781 0.889679 0.186920 0.969513 0.889679 0.216827 0.970245 0.889679 0.248566 0.970917 0.889679 0.282349 0.971619 0.889679 0.318176 0.972290 0.889679 0.356140 0.972961 0.889679 0.395874 0.973633 0.889679 0.437134 0.974243 0.889679 0.479767 0.974915 0.889679 0.523407 0.975525 0.889679 0.567139 0.976105 0.889679 0.609497 0.976715 0.889679 0.649963 0.977295 0.889679 0.688171 0.977875 0.889679 0.723785 0.978424 0.889679 0.756592 0.978973 0.889679 0.786377 0.979523 0.889679 0.813354 0.980042 0.889679 0.837860 0.980530 0.889679 0.860077 0.981018 0.889679 0.880310 0.981506 0.889679 0.898712 0.981995 0.889679 0.915497 0.982452 0.889679 0.930725 0.982910 0.889679 0.944580 0.983307 0.889679 0.957153 0.983734 0.889679 0.968475 0.984131 0.889679 0.978668 0.984528 0.889679 0.987640 0.984894 0.889679 0.995544 0.985260 0.889679 0.046631 0.007965 0.925446 0.068848 0.008881 0.925171 0.092102 0.009857 0.924957 0.116425 0.010803 0.924713 0.141998 0.011810 0.924438 0.168945 0.012817 0.924164 0.197388 0.013855 0.923889 0.227509 0.014923 0.923584 0.259613 0.016022 0.923279 0.293854 0.017120 0.923004 0.330170 0.018280 0.922668 0.368500 0.019440 0.922363 0.408600 0.020599 0.922028 0.450348 0.021851 0.921692 0.493225 0.023010 0.921356 0.537170 0.024292 0.920990 0.580750 0.025543 0.920624 0.622681 0.026825 0.920258 0.662720 0.028137 0.919922 0.700378 0.029480 0.919525 0.735382 0.030823 0.919159 0.767487 0.032166 0.918793 0.796600 0.033508 0.918396 0.822998 0.034912 0.918030 0.846985 0.036346 0.917633 0.868744 0.037750 0.917267 0.888519 0.039154 0.916870 0.906586 0.040649 0.916443 0.922943 0.042114 0.916077 0.937897 0.043610 0.915680 0.951416 0.045105 0.915253 0.963593 0.046600 0.914886 0.048431 0.029633 0.924988 0.070801 0.030670 0.924713 0.094177 0.031708 0.924438 0.118652 0.032715 0.924164 0.144379 0.033844 0.923889 0.171509 0.034943 0.923584 0.200134 0.036041 0.923279 0.230560 0.037201 0.923004 0.262909 0.038391 0.922699 0.297363 0.039581 0.922363 0.334015 0.040833 0.922028 0.372589 0.042053 0.921722 0.412933 0.043304 0.921356 0.454803 0.044647 0.920990 0.497894 0.045929 0.920654 0.541962 0.047302 0.920288 0.585480 0.048676 0.919922 0.627289 0.050018 0.919556 0.667114 0.051361 0.919159 0.704529 0.052826 0.918793 0.739227 0.054230 0.918427 0.771027 0.055664 0.918030 0.799805 0.057129 0.917664 0.825958 0.058594 0.917267 0.849670 0.060120 0.916870 0.871185 0.061615 0.916473 0.890808 0.063202 0.916077 0.908630 0.064697 0.915680 0.924866 0.066254 0.915283 0.939606 0.067841 0.914886 0.953003 0.069397 0.914459 0.965027 0.070984 0.914032 0.050323 0.052338 0.924438 0.072815 0.053406 0.924164 0.096344 0.054565 0.923889 0.120972 0.055664 0.923615 0.146912 0.056885 0.923309 0.174225 0.058075 0.923004 0.203064 0.059296 0.922729 0.233734 0.060577 0.922394 0.266296 0.061798 0.922058 0.301056 0.063141 0.921722 0.337952 0.064453 0.921387 0.376740 0.065765 0.921021 0.417389 0.067139 0.920654 0.459442 0.068542 0.920288 0.502777 0.069916 0.919952 0.546906 0.071381 0.919556 0.590302 0.072815 0.919159 0.631927 0.074310 0.918823 0.671570 0.075806 0.918427 0.708679 0.077271 0.918060 0.743134 0.078827 0.917694 0.774597 0.080383 0.917267 0.803070 0.081879 0.916901 0.828918 0.083496 0.916504 0.852386 0.085083 0.916077 0.873688 0.086670 0.915710 0.893097 0.088348 0.915283 0.910706 0.089966 0.914886 0.926758 0.091583 0.914490 0.941315 0.093292 0.914032 0.954529 0.094910 0.913666 0.966431 0.096619 0.913269 0.052368 0.076111 0.923920 0.074982 0.077301 0.923615 0.098633 0.078552 0.923340 0.123444 0.079773 0.923004 0.149506 0.081055 0.922729 0.176971 0.082336 0.922424 0.206055 0.083679 0.922089 0.236969 0.085052 0.921722 0.269836 0.086395 0.921387 0.304901 0.087830 0.921021 0.342072 0.089233 0.920685 0.381104 0.090698 0.920319 0.421936 0.092163 0.919952 0.464264 0.093658 0.919586 0.507721 0.095154 0.919189 0.551910 0.096710 0.918823 0.595184 0.098267 0.918427 0.636719 0.099792 0.918060 0.676056 0.101410 0.917694 0.712891 0.102997 0.917297 0.747009 0.104645 0.916901 0.778198 0.106293 0.916504 0.806335 0.107971 0.916107 0.831879 0.109619 0.915710 0.855103 0.111328 0.915314 0.876190 0.113037 0.914917 0.895355 0.114746 0.914520 0.912781 0.116516 0.914062 0.928619 0.118256 0.913666 0.943085 0.120026 0.913269 0.956116 0.121765 0.912872 0.967834 0.123596 0.912476 0.054474 0.101135 0.923340 0.077209 0.102448 0.923035 0.101013 0.103760 0.922729 0.125977 0.105103 0.922424 0.152252 0.106506 0.922089 0.179932 0.107941 0.921722 0.209259 0.109375 0.921387 0.240387 0.110840 0.921051 0.273499 0.112305 0.920715 0.308868 0.113831 0.920349 0.346283 0.115387 0.919952 0.385620 0.116913 0.919586 0.426666 0.118500 0.919220 0.469177 0.120087 0.918823 0.512787 0.121704 0.918457 0.557037 0.123383 0.918060 0.600128 0.125031 0.917694 0.641449 0.126740 0.917328 0.680603 0.128448 0.916931 0.717102 0.130127 0.916534 0.750916 0.131866 0.916138 0.781738 0.133667 0.915710 0.809601 0.135376 0.915314 0.834869 0.137207 0.914917 0.857819 0.139008 0.914520 0.878632 0.140808 0.914093 0.897614 0.142670 0.913666 0.914886 0.144501 0.913300 0.930511 0.146393 0.912903 0.944763 0.148254 0.912476 0.957642 0.150177 0.912109 0.969269 0.152069 0.911743 0.056641 0.127502 0.922729 0.079529 0.128937 0.922424 0.103455 0.130371 0.922089 0.128662 0.131836 0.921722 0.155060 0.133392 0.921417 0.182983 0.134888 0.921051 0.212524 0.136475 0.920715 0.243927 0.138031 0.920349 0.277283 0.139618 0.919983 0.312927 0.141266 0.919586 0.350677 0.142944 0.919220 0.390198 0.144592 0.918854 0.431488 0.146301 0.918457 0.474152 0.148010 0.918060 0.517975 0.149780 0.917725 0.562225 0.151550 0.917328 0.605164 0.153320 0.916931 0.646301 0.155121 0.916534 0.685181 0.156982 0.916138 0.721405 0.158813 0.915741 0.754852 0.160675 0.915344 0.785309 0.162567 0.914948 0.812866 0.164459 0.914520 0.837860 0.166382 0.914124 0.860535 0.168365 0.913696 0.881134 0.170258 0.913300 0.899872 0.172241 0.912903 0.916901 0.174164 0.912506 0.932404 0.176178 0.912109 0.946472 0.178192 0.911743 0.959167 0.180176 0.911346 0.970642 0.182220 0.910980 0.058929 0.155396 0.922089 0.081970 0.156952 0.921753 0.106049 0.158508 0.921448 0.131378 0.160156 0.921082 0.157990 0.161804 0.920715 0.186096 0.163422 0.920349 0.215912 0.165131 0.919983 0.247498 0.166840 0.919617 0.281250 0.168549 0.919250 0.317169 0.170380 0.918854 0.355103 0.172150 0.918488 0.394928 0.173950 0.918091 0.436432 0.175781 0.917725 0.479279 0.177612 0.917358 0.523224 0.179535 0.916931 0.567413 0.181458 0.916534 0.610229 0.183319 0.916168 0.651154 0.185272 0.915741 0.689758 0.187286 0.915344 0.725677 0.189240 0.914948 0.758789 0.191223 0.914551 0.788910 0.193298 0.914124 0.816101 0.195282 0.913727 0.840790 0.197388 0.913300 0.863190 0.199432 0.912933 0.883575 0.201477 0.912537 0.902100 0.203644 0.912140 0.918945 0.205719 0.911743 0.934265 0.207855 0.911377 0.948181 0.210022 0.910980 0.960693 0.212128 0.910583 0.971985 0.214325 0.910217 0.061279 0.184998 0.921448 0.084473 0.186737 0.921082 0.108704 0.188416 0.920715 0.134216 0.190186 0.920380 0.161041 0.191986 0.919983 0.189331 0.193756 0.919617 0.219330 0.195587 0.919250 0.251251 0.197479 0.918884 0.285248 0.199310 0.918518 0.321472 0.201263 0.918091 0.359619 0.203156 0.917755 0.399750 0.205170 0.917358 0.441498 0.207123 0.916962 0.484497 0.209106 0.916565 0.528595 0.211182 0.916168 0.572723 0.213257 0.915771 0.615326 0.215302 0.915344 0.656006 0.217407 0.914948 0.694305 0.219543 0.914581 0.729950 0.221649 0.914154 0.762726 0.223816 0.913727 0.792450 0.226013 0.913330 0.819336 0.228149 0.912933 0.843750 0.230347 0.912537 0.865845 0.232574 0.912170 0.885986 0.234833 0.911743 0.904327 0.237091 0.911377 0.920959 0.239319 0.911011 0.936096 0.241608 0.910614 0.949860 0.243927 0.910217 0.962219 0.246185 0.909882 0.973358 0.248535 0.909515 0.063751 0.216522 0.920715 0.087067 0.218384 0.920380 0.111481 0.220245 0.920013 0.137146 0.222168 0.919617 0.164154 0.224121 0.919250 0.192657 0.226074 0.918884 0.222931 0.228058 0.918518 0.255096 0.230133 0.918121 0.289368 0.232147 0.917755 0.325836 0.234222 0.917358 0.364349 0.236328 0.916992 0.404633 0.238434 0.916565 0.446625 0.240601 0.916168 0.489807 0.242737 0.915802 0.534058 0.244995 0.915375 0.578064 0.247162 0.914978 0.620453 0.249420 0.914581 0.660919 0.251648 0.914154 0.698914 0.253967 0.913727 0.734161 0.256287 0.913361 0.766602 0.258636 0.912933 0.795959 0.260925 0.912567 0.822510 0.263306 0.912170 0.846649 0.265686 0.911743 0.868530 0.268066 0.911377 0.888428 0.270477 0.911011 0.906555 0.272919 0.910614 0.922943 0.275299 0.910278 0.937927 0.277771 0.909912 0.951477 0.280273 0.909515 0.963684 0.282623 0.909180 0.974670 0.285156 0.908783 0.066254 0.250244 0.920013 0.089722 0.252289 0.919647 0.114288 0.254303 0.919281 0.140106 0.256409 0.918915 0.167358 0.258545 0.918518 0.196075 0.260651 0.918152 0.226593 0.262878 0.917786 0.259064 0.265045 0.917358 0.293610 0.267273 0.916992 0.330414 0.269501 0.916595 0.369110 0.271820 0.916199 0.409668 0.274109 0.915802 0.451813 0.276459 0.915375 0.495178 0.278748 0.914978 0.539551 0.281189 0.914581 0.583344 0.283569 0.914154 0.625610 0.285980 0.913757 0.665741 0.288452 0.913361 0.703491 0.290955 0.912933 0.738403 0.293365 0.912567 0.770477 0.295898 0.912170 0.799438 0.298370 0.911774 0.825684 0.300934 0.911407 0.849548 0.303497 0.911011 0.871155 0.306061 0.910645 0.890808 0.308655 0.910278 0.908691 0.311279 0.909912 0.924927 0.313812 0.909546 0.939697 0.316406 0.909180 0.953094 0.319092 0.908783 0.965118 0.321655 0.908417 0.975983 0.324310 0.908112 0.068848 0.286346 0.919281 0.092468 0.288605 0.918915 0.117188 0.290802 0.918518 0.143219 0.293121 0.918152 0.170654 0.295441 0.917786 0.199615 0.297729 0.917389 0.230316 0.300140 0.916992 0.263031 0.302490 0.916626 0.297943 0.304901 0.916199 0.335022 0.307373 0.915802 0.373932 0.309814 0.915405 0.414764 0.312317 0.915009 0.457123 0.314850 0.914612 0.500641 0.317352 0.914185 0.545074 0.319977 0.913757 0.588776 0.322540 0.913361 0.630737 0.325134 0.912964 0.670624 0.327728 0.912567 0.708008 0.330353 0.912201 0.742615 0.333038 0.911804 0.774292 0.335724 0.911407 0.802917 0.338348 0.911041 0.828888 0.341064 0.910645 0.852386 0.343781 0.910278 0.873718 0.346466 0.909912 0.893158 0.349213 0.909546 0.910828 0.351990 0.909180 0.926880 0.354706 0.908783 0.941437 0.357483 0.908447 0.954620 0.360199 0.908112 0.966583 0.362976 0.907806 0.977234 0.365784 0.907471 0.071503 0.325043 0.918549 0.095276 0.327454 0.918152 0.120178 0.329865 0.917786 0.146393 0.332367 0.917389 0.174011 0.334869 0.916992 0.203186 0.337311 0.916626 0.234192 0.339935 0.916199 0.267120 0.342438 0.915802 0.302338 0.345062 0.915405 0.339722 0.347687 0.915009 0.378906 0.350281 0.914612 0.419922 0.352966 0.914185 0.462494 0.355713 0.913757 0.506226 0.358368 0.913391 0.550598 0.361115 0.912994 0.594177 0.363861 0.912567 0.635925 0.366608 0.912201 0.675507 0.369415 0.911804 0.712555 0.372162 0.911438 0.746796 0.374969 0.911041 0.778107 0.377838 0.910645 0.806305 0.380585 0.910278 0.831940 0.383484 0.909912 0.855194 0.386353 0.909546 0.876282 0.389130 0.909210 0.895508 0.392029 0.908813 0.912933 0.394958 0.908447 0.928772 0.397736 0.908142 0.943176 0.400665 0.907806 0.956207 0.403503 0.907471 0.967957 0.406403 0.907166 0.978485 0.409302 0.906860 0.074249 0.366089 0.917786 0.098175 0.368713 0.917419 0.123230 0.371246 0.917023 0.149597 0.373901 0.916626 0.177399 0.376526 0.916260 0.206879 0.379272 0.915802 0.238129 0.381989 0.915436 0.271301 0.384674 0.915039 0.306824 0.387451 0.914612 0.344421 0.390228 0.914185 0.383942 0.393005 0.913788 0.425171 0.395874 0.913391 0.467926 0.398712 0.912994 0.511719 0.401550 0.912598 0.556152 0.404419 0.912201 0.599426 0.407227 0.911835 0.641052 0.410187 0.911469 0.680359 0.413116 0.911041 0.717041 0.416016 0.910675 0.750916 0.418976 0.910278 0.781830 0.421936 0.909912 0.809723 0.424866 0.909546 0.835022 0.427826 0.909210 0.858002 0.430817 0.908813 0.878815 0.433777 0.908478 0.897797 0.436768 0.908142 0.915009 0.439667 0.907806 0.930664 0.442688 0.907501 0.944916 0.445740 0.907166 0.957733 0.448578 0.906860 0.969330 0.451630 0.906555 0.979706 0.454559 0.906555 0.077026 0.409271 0.917023 0.101135 0.412048 0.916626 0.126312 0.414764 0.916260 0.152924 0.417572 0.915833 0.180939 0.420349 0.915436 0.210602 0.423218 0.915070 0.242096 0.426086 0.914642 0.275635 0.428925 0.914246 0.311401 0.431824 0.913818 0.349243 0.434784 0.913391 0.388977 0.437714 0.913025 0.430450 0.440613 0.912628 0.473389 0.443665 0.912231 0.517334 0.446533 0.911835 0.561768 0.449585 0.911469 0.604797 0.452515 0.911072 0.646149 0.455597 0.910706 0.685181 0.458679 0.910309 0.721466 0.461609 0.909943 0.754974 0.464691 0.909576 0.785492 0.467834 0.909210 0.813080 0.470795 0.908844 0.838043 0.473846 0.908508 0.860718 0.476959 0.908142 0.881287 0.479950 0.907806 0.900024 0.483063 0.907501 0.917053 0.486053 0.907196 0.932526 0.489105 0.906891 0.946564 0.492126 0.906586 0.959229 0.495178 0.906555 0.970673 0.498199 0.906555 0.980865 0.501251 0.906555 0.079895 0.454346 0.916260 0.104065 0.457123 0.915863 0.129517 0.460022 0.915436 0.156281 0.462982 0.915070 0.184479 0.465881 0.914642 0.214417 0.468903 0.914246 0.246155 0.471893 0.913818 0.279999 0.474823 0.913422 0.316010 0.477875 0.913025 0.354156 0.480957 0.912628 0.394135 0.483948 0.912231 0.435822 0.487030 0.911835 0.478760 0.490051 0.911469 0.522919 0.493134 0.911102 0.567291 0.496277 0.910706 0.610168 0.499359 0.910339 0.651215 0.502472 0.909973 0.689911 0.505585 0.909576 0.725861 0.508667 0.909241 0.759064 0.511810 0.908875 0.789154 0.514984 0.908508 0.816345 0.517975 0.908142 0.841003 0.521118 0.907837 0.863434 0.524292 0.907501 0.883728 0.527344 0.907196 0.902222 0.530487 0.906891 0.919006 0.533508 0.906586 0.934296 0.536621 0.906555 0.948212 0.539703 0.906555 0.960663 0.542725 0.906555 0.971985 0.545746 0.906555 0.981995 0.548798 0.906555 0.082764 0.500824 0.915466 0.107117 0.503784 0.915070 0.132721 0.506775 0.914673 0.159668 0.509857 0.914276 0.188110 0.512848 0.913849 0.218231 0.515930 0.913422 0.250275 0.519043 0.913025 0.284393 0.522095 0.912659 0.320709 0.525208 0.912231 0.359131 0.528320 0.911865 0.399323 0.531433 0.911469 0.441193 0.534607 0.911102 0.484344 0.537689 0.910706 0.528595 0.540802 0.910339 0.572815 0.543976 0.909973 0.615479 0.547058 0.909607 0.656219 0.550171 0.909241 0.694611 0.553314 0.908875 0.730194 0.556396 0.908508 0.763000 0.559479 0.908173 0.792694 0.562592 0.907837 0.819550 0.565582 0.907501 0.843933 0.568726 0.907196 0.866028 0.571655 0.906891 0.886108 0.574738 0.906586 0.904388 0.577759 0.906555 0.920990 0.580627 0.906555 0.936096 0.583679 0.906555 0.949799 0.586639 0.906555 0.962128 0.589447 0.906555 0.973236 0.592346 0.906555 0.983124 0.595245 0.906555 0.085754 0.548370 0.914673 0.110229 0.551392 0.914276 0.135986 0.554413 0.913849 0.163147 0.557465 0.913422 0.191772 0.560455 0.913055 0.222168 0.563538 0.912659 0.254486 0.566650 0.912262 0.288879 0.569641 0.911865 0.325500 0.572723 0.911469 0.364105 0.575775 0.911102 0.404541 0.578766 0.910736 0.446533 0.581787 0.910370 0.489899 0.584839 0.910004 0.534241 0.587860 0.909637 0.578308 0.590942 0.909241 0.620728 0.593872 0.908875 0.661255 0.596924 0.908539 0.699219 0.599884 0.908173 0.734497 0.602905 0.907867 0.766907 0.605804 0.907532 0.796204 0.608795 0.907196 0.822723 0.611664 0.906891 0.846802 0.614594 0.906586 0.868591 0.617462 0.906555 0.888428 0.620300 0.906555 0.906525 0.623169 0.906555 0.922913 0.625946 0.906555 0.937836 0.628754 0.906555 0.951294 0.631561 0.906555 0.963501 0.634247 0.906555 0.974457 0.636993 0.906555 0.984192 0.639679 0.906555 0.088715 0.594971 0.913849 0.113373 0.597839 0.913452 0.139313 0.600891 0.913055 0.166656 0.603851 0.912659 0.195496 0.606720 0.912292 0.226105 0.609711 0.911896 0.258698 0.612671 0.911499 0.293335 0.615540 0.911133 0.330292 0.618500 0.910736 0.369171 0.621399 0.910370 0.409760 0.624329 0.910004 0.452026 0.627228 0.909637 0.495483 0.630127 0.909271 0.539856 0.632996 0.908875 0.583740 0.635895 0.908539 0.625946 0.638672 0.908203 0.666168 0.641510 0.907867 0.703827 0.644348 0.907532 0.738678 0.647156 0.907227 0.770660 0.649963 0.906891 0.799652 0.652740 0.906616 0.825836 0.655426 0.906555 0.849609 0.658173 0.906555 0.871124 0.660858 0.906555 0.890747 0.663513 0.906555 0.908569 0.666199 0.906555 0.924774 0.668762 0.906555 0.939484 0.671387 0.906555 0.952820 0.673981 0.906555 0.964844 0.676422 0.906555 0.975616 0.679016 0.906555 0.985229 0.681488 0.906555 0.091766 0.639648 0.913086 0.116577 0.642365 0.912689 0.142670 0.645203 0.912292 0.170227 0.648041 0.911896 0.199280 0.650848 0.911530 0.230133 0.653656 0.911133 0.262970 0.656464 0.910736 0.297913 0.659180 0.910370 0.335052 0.661957 0.910004 0.374115 0.664642 0.909637 0.415039 0.667450 0.909271 0.457458 0.670227 0.908875 0.501007 0.672852 0.908569 0.545471 0.675598 0.908234 0.589172 0.678314 0.907867 0.631134 0.680908 0.907532 0.670959 0.683624 0.907227 0.708313 0.686188 0.906921 0.742828 0.688782 0.906616 0.774414 0.691406 0.906555 0.802979 0.693909 0.906555 0.828857 0.696472 0.906555 0.852295 0.699005 0.906555 0.873566 0.701416 0.906555 0.892944 0.703949 0.906555 0.910583 0.706390 0.906555 0.926544 0.708710 0.906555 0.941132 0.711090 0.906555 0.954285 0.713470 0.906555 0.966125 0.715759 0.906555 0.976807 0.718048 0.906555 0.986237 0.720245 0.906555 0.094788 0.681793 0.912292 0.119781 0.684357 0.911926 0.146088 0.687012 0.911530 0.173828 0.689667 0.911163 0.203094 0.692261 0.910767 0.234192 0.694916 0.910400 0.267303 0.697540 0.910004 0.302490 0.700073 0.909637 0.339935 0.702637 0.909271 0.379181 0.705109 0.908905 0.420288 0.707733 0.908569 0.462921 0.710297 0.908234 0.506592 0.712738 0.907898 0.551025 0.715271 0.907562 0.594543 0.717712 0.907227 0.636169 0.720154 0.906952 0.675781 0.722595 0.906616 0.712738 0.725037 0.906555 0.746887 0.727356 0.906555 0.778076 0.729706 0.906555 0.806213 0.732025 0.906555 0.831787 0.734344 0.906555 0.854980 0.736603 0.906555 0.875977 0.738861 0.906555 0.895111 0.741089 0.906555 0.912506 0.743286 0.906555 0.928314 0.745392 0.906555 0.942688 0.747589 0.906555 0.955688 0.749664 0.906555 0.967407 0.751709 0.906555 0.977905 0.753754 0.906555 0.987213 0.755768 0.906555 0.097900 0.720947 0.911560 0.123047 0.723328 0.911163 0.149506 0.725800 0.910767 0.177429 0.728241 0.910400 0.206909 0.730652 0.910034 0.238251 0.733032 0.909637 0.271576 0.735413 0.909302 0.307129 0.737793 0.908905 0.344757 0.740173 0.908569 0.384308 0.742462 0.908234 0.425598 0.744781 0.907898 0.468292 0.747101 0.907562 0.512115 0.749359 0.907257 0.556549 0.751648 0.906952 0.599762 0.753876 0.906616 0.641174 0.756073 0.906555 0.680420 0.758270 0.906555 0.717072 0.760437 0.906555 0.750824 0.762573 0.906555 0.781647 0.764709 0.906555 0.809448 0.766724 0.906555 0.834686 0.768829 0.906555 0.857574 0.770844 0.906555 0.878326 0.772797 0.906555 0.897217 0.774841 0.906555 0.914429 0.776764 0.906555 0.930023 0.778687 0.906555 0.944214 0.780548 0.906555 0.957062 0.782410 0.906555 0.968597 0.784241 0.906555 0.978973 0.786041 0.906555 0.988129 0.787811 0.906555 0.101013 0.756866 0.910797 0.126312 0.759064 0.910400 0.152985 0.761292 0.910034 0.181091 0.763519 0.909668 0.210754 0.765656 0.909332 0.242371 0.767822 0.908936 0.275909 0.769958 0.908600 0.311768 0.772125 0.908234 0.349609 0.774231 0.907928 0.389343 0.776306 0.907593 0.430817 0.778412 0.907257 0.473694 0.780457 0.906952 0.517578 0.782471 0.906647 0.561920 0.784515 0.906555 0.605011 0.786530 0.906555 0.646118 0.788452 0.906555 0.685028 0.790436 0.906555 0.721222 0.792328 0.906555 0.754669 0.794250 0.906555 0.785065 0.796112 0.906555 0.812531 0.797943 0.906555 0.837494 0.799805 0.906555 0.860077 0.801636 0.906555 0.880585 0.803375 0.906555 0.899261 0.805145 0.906555 0.916260 0.806885 0.906555 0.931671 0.808502 0.906555 0.945709 0.810211 0.906555 0.958374 0.811829 0.906555 0.969788 0.813446 0.906555 0.980011 0.815002 0.906555 0.989014 0.816528 0.906555 0.104156 0.789276 0.910065 0.129608 0.791229 0.909668 0.156403 0.793274 0.909332 0.184692 0.795227 0.908966 0.214691 0.797211 0.908600 0.246460 0.799164 0.908234 0.280304 0.801056 0.907928 0.316345 0.802979 0.907593 0.354492 0.804901 0.907257 0.394440 0.806763 0.906952 0.436127 0.808594 0.906647 0.479126 0.810455 0.906555 0.523041 0.812256 0.906555 0.567291 0.814056 0.906555 0.610046 0.815796 0.906555 0.650940 0.817535 0.906555 0.689514 0.819336 0.906555 0.725403 0.820953 0.906555 0.758423 0.822693 0.906555 0.788452 0.824371 0.906555 0.815552 0.825989 0.906555 0.840179 0.827606 0.906555 0.862518 0.829224 0.906555 0.882812 0.830811 0.906555 0.901245 0.832336 0.906555 0.918030 0.833862 0.906555 0.933258 0.835327 0.906555 0.947144 0.836853 0.906555 0.959625 0.838257 0.906555 0.970917 0.839661 0.906555 0.980988 0.841064 0.906555 0.989868 0.842407 0.906555 0.107300 0.818420 0.909363 0.132904 0.820190 0.908966 0.159943 0.821991 0.908600 0.188385 0.823761 0.908264 0.218506 0.825500 0.907928 0.250549 0.827240 0.907593 0.284668 0.828979 0.907288 0.320984 0.830688 0.906982 0.359375 0.832397 0.906677 0.399536 0.834045 0.906555 0.441284 0.835724 0.906555 0.484375 0.837341 0.906555 0.528442 0.838989 0.906555 0.572540 0.840607 0.906555 0.615051 0.842133 0.906555 0.655640 0.843719 0.906555 0.693909 0.845276 0.906555 0.729401 0.846802 0.906555 0.762054 0.848297 0.906555 0.791687 0.849762 0.906555 0.818481 0.851166 0.906555 0.842773 0.852661 0.906555 0.864868 0.854065 0.906555 0.884918 0.855438 0.906555 0.903137 0.856812 0.906555 0.919708 0.858154 0.906555 0.934784 0.859467 0.906555 0.948486 0.860779 0.906555 0.960846 0.862030 0.906555 0.971985 0.863281 0.906555 0.981934 0.864532 0.906555 0.990662 0.865692 0.906555 0.110443 0.844574 0.908630 0.136261 0.846222 0.908264 0.163422 0.847839 0.907959 0.192047 0.849426 0.907593 0.222443 0.850983 0.907318 0.254700 0.852570 0.906982 0.289062 0.854095 0.906677 0.325653 0.855652 0.906555 0.364197 0.857178 0.906555 0.404541 0.858643 0.906555 0.446472 0.860138 0.906555 0.489594 0.861572 0.906555 0.533783 0.863037 0.906555 0.577728 0.864471 0.906555 0.619904 0.865845 0.906555 0.660217 0.867249 0.906555 0.698181 0.868652 0.906555 0.733307 0.869965 0.906555 0.765594 0.871338 0.906555 0.794861 0.872650 0.906555 0.821350 0.873901 0.906555 0.845367 0.875183 0.906555 0.867157 0.876434 0.906555 0.886963 0.877686 0.906555 0.904999 0.878906 0.906555 0.921387 0.880066 0.906555 0.936279 0.881226 0.906555 0.949829 0.882385 0.906555 0.962036 0.883484 0.906555 0.973022 0.884583 0.906555 0.982819 0.885651 0.906555 0.991455 0.886688 0.906555 0.113617 0.868195 0.907959 0.139587 0.869659 0.907623 0.166901 0.871124 0.907318 0.195740 0.872528 0.907013 0.226349 0.873932 0.906677 0.258820 0.875366 0.906555 0.293427 0.876740 0.906555 0.330231 0.878113 0.906555 0.369019 0.879486 0.906555 0.409485 0.880798 0.906555 0.451538 0.882111 0.906555 0.494873 0.883423 0.906555 0.539062 0.884735 0.906555 0.582733 0.885986 0.906555 0.624725 0.887238 0.906555 0.664703 0.888489 0.906555 0.702332 0.889709 0.906555 0.737122 0.890900 0.906555 0.768982 0.892090 0.906555 0.797913 0.893280 0.906555 0.824036 0.894409 0.906555 0.847778 0.895538 0.906555 0.869324 0.896606 0.906555 0.888916 0.897705 0.906555 0.906769 0.898804 0.906555 0.922943 0.899811 0.906555 0.937714 0.900818 0.906555 0.951080 0.901855 0.906555 0.963135 0.902832 0.906555 0.973999 0.903778 0.906555 0.983673 0.904724 0.906555 0.992188 0.905640 0.906555 0.116791 0.889496 0.907318 0.142914 0.890808 0.907013 0.170410 0.892120 0.906677 0.199432 0.893402 0.906555 0.230194 0.894684 0.906555 0.262970 0.895935 0.906555 0.297821 0.897125 0.906555 0.334839 0.898376 0.906555 0.373749 0.899567 0.906555 0.414459 0.900787 0.906555 0.456696 0.901978 0.906555 0.499969 0.903137 0.906555 0.544189 0.904266 0.906555 0.587677 0.905457 0.906555 0.629395 0.906555 0.906555 0.669037 0.907654 0.906555 0.706329 0.908722 0.906555 0.740784 0.909821 0.906555 0.772278 0.910828 0.906555 0.800842 0.911865 0.906555 0.826691 0.912842 0.906555 0.850159 0.913849 0.906555 0.871429 0.914856 0.906555 0.890808 0.915802 0.906555 0.908417 0.916748 0.906555 0.924438 0.917664 0.906555 0.939056 0.918549 0.906555 0.952240 0.919434 0.906555 0.964203 0.920258 0.906555 0.974945 0.921143 0.906555 0.984436 0.921967 0.906555 0.992859 0.922760 0.906555 0.119934 0.908722 0.906708 0.146179 0.909912 0.906555 0.173889 0.911102 0.906555 0.203094 0.912201 0.906555 0.234100 0.913361 0.906555 0.267059 0.914520 0.906555 0.302124 0.915619 0.906555 0.339355 0.916718 0.906555 0.378448 0.917786 0.906555 0.419312 0.918823 0.906555 0.461609 0.919891 0.906555 0.505035 0.920898 0.906555 0.549194 0.921967 0.906555 0.592499 0.922943 0.906555 0.633942 0.923920 0.906555 0.673340 0.924896 0.906555 0.710266 0.925873 0.906555 0.744324 0.926788 0.906555 0.775482 0.927734 0.906555 0.803650 0.928619 0.906555 0.829193 0.929565 0.906555 0.852386 0.930389 0.906555 0.873444 0.931274 0.906555 0.892609 0.932098 0.906555 0.910065 0.932953 0.906555 0.925873 0.933746 0.906555 0.940308 0.934509 0.906555 0.953400 0.935333 0.906555 0.965179 0.936035 0.906555 0.975800 0.936798 0.906555 0.985229 0.937469 0.906555 0.993500 0.938171 0.906555 0.123108 0.926056 0.906555 0.149506 0.927155 0.906555 0.177338 0.928192 0.906555 0.206757 0.929199 0.906555 0.237946 0.930206 0.906555 0.271088 0.931213 0.906555 0.306396 0.932190 0.906555 0.343811 0.933167 0.906555 0.383118 0.934143 0.906555 0.424103 0.935089 0.906555 0.466553 0.936035 0.906555 0.510010 0.936920 0.906555 0.554108 0.937866 0.906555 0.597168 0.938751 0.906555 0.638336 0.939606 0.906555 0.677429 0.940491 0.906555 0.714020 0.941315 0.906555 0.747742 0.942139 0.906555 0.778503 0.942993 0.906555 0.806335 0.943787 0.906555 0.831635 0.944550 0.906555 0.854553 0.945312 0.906555 0.875366 0.946045 0.906555 0.894348 0.946777 0.906555 0.911560 0.947540 0.906555 0.927277 0.948212 0.906555 0.941528 0.948914 0.906555 0.954498 0.949585 0.906555 0.966125 0.950226 0.906555 0.976624 0.950836 0.906555 0.985931 0.951477 0.906555 0.994110 0.952087 0.906555 0.126221 0.941742 0.906555 0.152771 0.942657 0.906555 0.180786 0.943604 0.906555 0.210358 0.944489 0.906555 0.241760 0.945404 0.906555 0.275116 0.946289 0.906555 0.310669 0.947174 0.906555 0.348328 0.948029 0.906555 0.387695 0.948883 0.906555 0.428833 0.949707 0.906555 0.471344 0.950562 0.906555 0.514862 0.951355 0.906555 0.558899 0.952148 0.906555 0.601654 0.952972 0.906555 0.642609 0.953735 0.906555 0.681396 0.954468 0.906555 0.717560 0.955200 0.906555 0.750977 0.955933 0.906555 0.781433 0.956635 0.906555 0.808960 0.957336 0.906555 0.833954 0.958008 0.906555 0.856598 0.958679 0.906555 0.877228 0.959351 0.906555 0.895966 0.959961 0.906555 0.913025 0.960571 0.906555 0.928558 0.961182 0.906555 0.942688 0.961823 0.906555 0.955475 0.962372 0.906555 0.967041 0.962952 0.906555 0.977386 0.963470 0.906555 0.986572 0.963989 0.906555 0.994659 0.964508 0.906555 0.129395 0.955780 0.906555 0.156067 0.956604 0.906555 0.184204 0.957428 0.906555 0.213928 0.958221 0.906555 0.245544 0.959015 0.906555 0.279114 0.959808 0.906555 0.314850 0.960571 0.906555 0.352692 0.961365 0.906555 0.392242 0.962097 0.906555 0.433472 0.962860 0.906555 0.476044 0.963562 0.906555 0.519653 0.964264 0.906555 0.563538 0.964935 0.906555 0.605988 0.965637 0.906555 0.646729 0.966309 0.906555 0.685211 0.966980 0.906555 0.721039 0.967621 0.906555 0.754089 0.968262 0.906555 0.784210 0.968872 0.906555 0.811432 0.969452 0.906555 0.836121 0.970062 0.906555 0.858582 0.970642 0.906555 0.878967 0.971191 0.906555 0.897522 0.971771 0.906555 0.914429 0.972290 0.906555 0.929810 0.972809 0.906555 0.943787 0.973297 0.906555 0.956421 0.973816 0.906555 0.967834 0.974274 0.906555 0.978088 0.974731 0.906555 0.987213 0.975189 0.906555 0.995178 0.975616 0.906555 0.132446 0.968323 0.906555 0.159271 0.969025 0.906555 0.187561 0.969757 0.906555 0.217499 0.970490 0.906555 0.249268 0.971191 0.906555 0.283020 0.971832 0.906555 0.318970 0.972534 0.906555 0.356964 0.973206 0.906555 0.396667 0.973846 0.906555 0.438019 0.974487 0.906555 0.480652 0.975098 0.906555 0.524231 0.975708 0.906555 0.567993 0.976349 0.906555 0.610260 0.976929 0.906555 0.650696 0.977509 0.906555 0.688843 0.978088 0.906555 0.724365 0.978638 0.906555 0.757080 0.979187 0.906555 0.786835 0.979706 0.906555 0.813782 0.980225 0.906555 0.838226 0.980743 0.906555 0.860443 0.981232 0.906555 0.880615 0.981689 0.906555 0.898987 0.982178 0.906555 0.915710 0.982605 0.906555 0.930939 0.983063 0.906555 0.944763 0.983459 0.906555 0.957306 0.983887 0.906555 0.968597 0.984283 0.906555 0.978760 0.984680 0.906555 0.987762 0.985016 0.906555 0.995667 0.985382 0.906555 0.046967 0.008331 0.939148 0.069214 0.009247 0.938934 0.092468 0.010193 0.938721 0.116821 0.011200 0.938477 0.142456 0.012177 0.938232 0.169373 0.013214 0.937988 0.197906 0.014252 0.937744 0.228058 0.015320 0.937469 0.260254 0.016449 0.937195 0.294495 0.017548 0.936890 0.330841 0.018707 0.936646 0.369263 0.019867 0.936310 0.409454 0.021088 0.936035 0.451111 0.022247 0.935730 0.494110 0.023468 0.935425 0.538086 0.024780 0.935059 0.581573 0.026001 0.934753 0.623596 0.027313 0.934418 0.663513 0.028595 0.934082 0.701141 0.029938 0.933777 0.736084 0.031281 0.933380 0.768097 0.032654 0.933044 0.797211 0.034027 0.932739 0.823578 0.035431 0.932373 0.847473 0.036835 0.932007 0.869171 0.038300 0.931641 0.888947 0.039734 0.931274 0.906952 0.041168 0.930908 0.923309 0.042664 0.930542 0.938171 0.044128 0.930176 0.951691 0.045654 0.929810 0.963867 0.047150 0.929474 0.048798 0.030029 0.938721 0.071198 0.031036 0.938477 0.094574 0.032074 0.938263 0.119110 0.033142 0.937988 0.144806 0.034210 0.937744 0.171997 0.035339 0.937469 0.200684 0.036499 0.937195 0.231140 0.037628 0.936920 0.263550 0.038849 0.936646 0.298096 0.040070 0.936310 0.334686 0.041260 0.936035 0.373383 0.042511 0.935730 0.413727 0.043823 0.935425 0.455658 0.045105 0.935089 0.498810 0.046448 0.934753 0.542877 0.047760 0.934418 0.586334 0.049133 0.934082 0.628204 0.050507 0.933777 0.667908 0.051910 0.933441 0.705292 0.053314 0.933044 0.739990 0.054749 0.932739 0.771667 0.056213 0.932373 0.800446 0.057678 0.932007 0.826538 0.059174 0.931641 0.850189 0.060699 0.931305 0.871704 0.062164 0.930908 0.891205 0.063721 0.930573 0.909027 0.065247 0.930206 0.925232 0.066864 0.929840 0.939941 0.068390 0.929504 0.953247 0.070007 0.929077 0.965332 0.071594 0.928711 0.050720 0.052734 0.938263 0.073212 0.053833 0.938019 0.096771 0.054962 0.937775 0.121429 0.056152 0.937469 0.147339 0.057281 0.937195 0.174713 0.058502 0.936920 0.203644 0.059753 0.936646 0.234283 0.061005 0.936340 0.266937 0.062286 0.936035 0.301819 0.063629 0.935730 0.338715 0.064941 0.935425 0.377625 0.066284 0.935089 0.418243 0.067688 0.934784 0.460327 0.069061 0.934418 0.503723 0.070465 0.934082 0.547791 0.071899 0.933777 0.591187 0.073364 0.933441 0.632874 0.074860 0.933075 0.672394 0.076355 0.932739 0.709473 0.077820 0.932373 0.743835 0.079376 0.932007 0.775208 0.080872 0.931641 0.803711 0.082489 0.931305 0.829529 0.084076 0.930939 0.852875 0.085693 0.930573 0.874176 0.087280 0.930206 0.893494 0.088898 0.929840 0.911102 0.090546 0.929504 0.927124 0.092224 0.929077 0.941650 0.093842 0.928741 0.954834 0.095551 0.928345 0.966736 0.097260 0.928009 0.052734 0.076569 0.937775 0.075378 0.077728 0.937500 0.099060 0.078979 0.937225 0.123932 0.080261 0.936920 0.150024 0.081512 0.936676 0.177551 0.082855 0.936371 0.206726 0.084198 0.936035 0.237549 0.085541 0.935730 0.270538 0.086945 0.935455 0.305634 0.088379 0.935120 0.342834 0.089752 0.934784 0.381989 0.091248 0.934448 0.422791 0.092682 0.934143 0.465088 0.094177 0.933807 0.508667 0.095703 0.933441 0.552826 0.097229 0.933075 0.596069 0.098816 0.932739 0.637573 0.100403 0.932373 0.676849 0.101990 0.932037 0.713684 0.103607 0.931641 0.747772 0.105255 0.931305 0.778809 0.106903 0.930939 0.806976 0.108551 0.930573 0.832489 0.110260 0.930206 0.855591 0.111969 0.929840 0.876617 0.113708 0.929504 0.895752 0.115387 0.929108 0.913147 0.117126 0.928741 0.929016 0.118927 0.928375 0.943359 0.120667 0.928009 0.956390 0.122467 0.927673 0.968140 0.124268 0.927307 0.054840 0.101624 0.937225 0.077637 0.102905 0.936920 0.101471 0.104248 0.936676 0.126465 0.105652 0.936371 0.152710 0.106995 0.936066 0.180511 0.108459 0.935730 0.209900 0.109924 0.935455 0.240997 0.111359 0.935150 0.274261 0.112854 0.934784 0.309631 0.114380 0.934448 0.347046 0.115906 0.934143 0.386475 0.117493 0.933807 0.427521 0.119080 0.933441 0.470123 0.120667 0.933075 0.513733 0.122345 0.932770 0.557953 0.123962 0.932404 0.601044 0.125641 0.932037 0.642365 0.127350 0.931671 0.681427 0.129028 0.931305 0.717957 0.130798 0.930939 0.751678 0.132538 0.930573 0.782379 0.134308 0.930206 0.810211 0.136047 0.929840 0.835388 0.137848 0.929504 0.858307 0.139679 0.929138 0.879120 0.141541 0.928741 0.898010 0.143311 0.928406 0.915253 0.145203 0.928009 0.930908 0.147095 0.927673 0.945068 0.148956 0.927338 0.957947 0.150879 0.926971 0.969543 0.152771 0.926575 0.057068 0.128021 0.936676 0.079987 0.129456 0.936371 0.103943 0.130920 0.936066 0.129150 0.132416 0.935760 0.155609 0.133911 0.935486 0.183563 0.135468 0.935150 0.213165 0.137054 0.934784 0.244537 0.138611 0.934479 0.278076 0.140228 0.934174 0.313660 0.141846 0.933807 0.351471 0.143524 0.933441 0.391083 0.145233 0.933075 0.432373 0.146912 0.932770 0.475128 0.148682 0.932434 0.518982 0.150421 0.932037 0.563141 0.152191 0.931702 0.606110 0.153992 0.931335 0.647217 0.155853 0.930969 0.685974 0.157654 0.930603 0.722198 0.159485 0.930237 0.755585 0.161407 0.929871 0.785980 0.163239 0.929504 0.813477 0.165192 0.929138 0.838379 0.167084 0.928772 0.861023 0.169006 0.928406 0.881592 0.171021 0.928040 0.900269 0.172943 0.927704 0.917297 0.174927 0.927338 0.932770 0.176941 0.926971 0.946777 0.178925 0.926605 0.959473 0.180969 0.926239 0.970917 0.183014 0.925873 0.059387 0.156006 0.936096 0.082428 0.157532 0.935760 0.106567 0.159149 0.935486 0.131897 0.160736 0.935150 0.158539 0.162354 0.934784 0.186737 0.164062 0.934479 0.216522 0.165802 0.934174 0.248199 0.167450 0.933807 0.281982 0.169220 0.933472 0.317902 0.170990 0.933105 0.355927 0.172791 0.932800 0.395844 0.174652 0.932434 0.437317 0.176422 0.932068 0.480316 0.178345 0.931702 0.524292 0.180237 0.931335 0.568420 0.182129 0.930969 0.611237 0.184082 0.930603 0.652100 0.186035 0.930237 0.690552 0.187988 0.929901 0.726471 0.189972 0.929535 0.759491 0.191986 0.929138 0.789520 0.193970 0.928772 0.816742 0.196045 0.928406 0.841339 0.198090 0.928040 0.863708 0.200195 0.927704 0.884033 0.202332 0.927338 0.902496 0.204376 0.926971 0.919312 0.206543 0.926605 0.934601 0.208679 0.926239 0.948456 0.210754 0.925903 0.960999 0.212921 0.925568 0.972260 0.215057 0.925232 0.061737 0.185638 0.935486 0.084961 0.187317 0.935150 0.109253 0.189087 0.934814 0.134766 0.190857 0.934479 0.161591 0.192596 0.934174 0.189941 0.194458 0.933807 0.220001 0.196259 0.933502 0.251953 0.198120 0.933136 0.286011 0.200043 0.932800 0.322205 0.201935 0.932465 0.360535 0.203918 0.932068 0.400665 0.205872 0.931702 0.442383 0.207855 0.931366 0.485535 0.209930 0.930969 0.529663 0.211945 0.930634 0.573700 0.213959 0.930267 0.616333 0.216125 0.929901 0.656921 0.218201 0.929535 0.695129 0.220276 0.929138 0.730743 0.222443 0.928772 0.763397 0.224579 0.928406 0.793060 0.226776 0.928040 0.819946 0.229004 0.927704 0.844269 0.231171 0.927338 0.866364 0.233398 0.926971 0.886475 0.235657 0.926605 0.904724 0.237915 0.926270 0.921356 0.240204 0.925903 0.936432 0.242493 0.925568 0.950134 0.244720 0.925262 0.962494 0.247070 0.924896 0.973572 0.249359 0.924530 0.064209 0.217255 0.934814 0.087524 0.219055 0.934509 0.112030 0.220947 0.934174 0.137695 0.222900 0.933838 0.164703 0.224792 0.933502 0.193329 0.226837 0.933136 0.223572 0.228790 0.932831 0.255829 0.230835 0.932465 0.290131 0.232910 0.932098 0.326691 0.234955 0.931732 0.365234 0.237122 0.931366 0.405640 0.239258 0.931000 0.447510 0.241364 0.930634 0.490845 0.243591 0.930267 0.535126 0.245789 0.929901 0.579010 0.248016 0.929565 0.621399 0.250275 0.929169 0.661774 0.252502 0.928802 0.699738 0.254822 0.928436 0.735016 0.257141 0.928040 0.767273 0.259430 0.927734 0.796600 0.261780 0.927368 0.823151 0.264191 0.927002 0.847198 0.266541 0.926605 0.869019 0.268921 0.926270 0.888885 0.271362 0.925934 0.906921 0.273743 0.925598 0.923340 0.276215 0.925262 0.938232 0.278625 0.924896 0.951721 0.281128 0.924561 0.963959 0.283569 0.924255 0.974915 0.286041 0.923920 0.066742 0.251007 0.934174 0.090240 0.252991 0.933868 0.114838 0.255066 0.933502 0.140686 0.257141 0.933167 0.167938 0.259308 0.932831 0.196777 0.261475 0.932465 0.227264 0.263611 0.932098 0.259735 0.265839 0.931732 0.294434 0.268097 0.931366 0.331207 0.270325 0.931030 0.369965 0.272644 0.930634 0.410645 0.274963 0.930267 0.452759 0.277252 0.929932 0.496216 0.279663 0.929596 0.540558 0.282013 0.929199 0.584320 0.284454 0.928802 0.626556 0.286957 0.928436 0.666626 0.289307 0.928070 0.704315 0.291779 0.927734 0.739227 0.294342 0.927368 0.771149 0.296814 0.927032 0.800110 0.299347 0.926636 0.826324 0.301910 0.926270 0.850067 0.304382 0.925934 0.871643 0.306976 0.925629 0.891235 0.309631 0.925262 0.909088 0.312164 0.924927 0.925323 0.314728 0.924561 0.940033 0.317352 0.924255 0.953369 0.320007 0.923920 0.965454 0.322632 0.923615 0.976166 0.325287 0.923279 0.069336 0.287231 0.933502 0.092957 0.289398 0.933167 0.117767 0.291687 0.932831 0.143799 0.293945 0.932465 0.171265 0.296295 0.932098 0.200287 0.298615 0.931732 0.231049 0.300964 0.931396 0.263794 0.303375 0.931030 0.298798 0.305847 0.930664 0.335785 0.308228 0.930298 0.374908 0.310730 0.929932 0.415771 0.313293 0.929596 0.458069 0.315765 0.929199 0.501740 0.318298 0.928833 0.546051 0.320862 0.928467 0.589752 0.323456 0.928101 0.631744 0.326080 0.927734 0.671478 0.328674 0.927399 0.708893 0.331329 0.927032 0.743439 0.334015 0.926636 0.774933 0.336639 0.926300 0.803528 0.339386 0.925964 0.829468 0.342102 0.925629 0.852905 0.344788 0.925262 0.874237 0.347534 0.924927 0.893585 0.350189 0.924591 0.911194 0.352966 0.924255 0.927246 0.355743 0.923950 0.941772 0.358429 0.923615 0.954987 0.361237 0.923309 0.966827 0.364014 0.923004 0.977448 0.366730 0.922729 0.072021 0.325897 0.932831 0.095795 0.328308 0.932495 0.120758 0.330750 0.932098 0.146973 0.333221 0.931763 0.174652 0.335724 0.931396 0.203918 0.338318 0.931030 0.234894 0.340790 0.930664 0.267914 0.343414 0.930298 0.303192 0.346039 0.929932 0.340515 0.348602 0.929596 0.379852 0.351288 0.929230 0.420868 0.353912 0.928864 0.463501 0.356628 0.928467 0.507202 0.359375 0.928101 0.551636 0.362061 0.927765 0.595123 0.364807 0.927399 0.636902 0.367615 0.927063 0.676392 0.370331 0.926666 0.713409 0.373199 0.926331 0.747620 0.376007 0.925964 0.778748 0.378815 0.925629 0.806976 0.381653 0.925262 0.832550 0.384521 0.924957 0.855713 0.387329 0.924622 0.876770 0.390228 0.924255 0.895905 0.393066 0.923950 0.913300 0.395966 0.923615 0.929138 0.398834 0.923309 0.943512 0.401672 0.923004 0.956512 0.404602 0.922729 0.968231 0.407501 0.922455 0.978699 0.410339 0.922180 0.074768 0.367004 0.932129 0.098694 0.369598 0.931763 0.123840 0.372253 0.931427 0.150208 0.374817 0.931030 0.178070 0.377533 0.930664 0.207611 0.380249 0.930298 0.238831 0.382935 0.929962 0.272186 0.385681 0.929596 0.307678 0.388489 0.929230 0.345276 0.391235 0.928864 0.384888 0.394073 0.928467 0.426117 0.396851 0.928131 0.468903 0.399750 0.927795 0.512787 0.402588 0.927399 0.557190 0.405457 0.927063 0.600464 0.408356 0.926697 0.642029 0.411285 0.926331 0.681213 0.414154 0.925964 0.717865 0.417114 0.925629 0.751709 0.420135 0.925293 0.782471 0.422943 0.924988 0.810364 0.425995 0.924622 0.835571 0.428894 0.924286 0.858490 0.431854 0.923981 0.879303 0.434845 0.923615 0.898163 0.437866 0.923340 0.915375 0.440826 0.923004 0.931030 0.443817 0.922729 0.945190 0.446747 0.922455 0.958038 0.449738 0.922180 0.969574 0.452698 0.921997 0.979919 0.455658 0.921997 0.077545 0.410217 0.931427 0.101654 0.412994 0.931061 0.126953 0.415771 0.930695 0.153503 0.418579 0.930328 0.181610 0.421387 0.929962 0.211304 0.424255 0.929626 0.242828 0.427094 0.929230 0.276459 0.430023 0.928864 0.312256 0.432922 0.928497 0.350128 0.435822 0.928131 0.389984 0.438782 0.927795 0.431427 0.441711 0.927429 0.474365 0.444733 0.927063 0.518372 0.447693 0.926697 0.562744 0.450653 0.926331 0.605896 0.453705 0.925995 0.647156 0.456757 0.925629 0.686005 0.459747 0.925323 0.722321 0.462799 0.924988 0.755798 0.465820 0.924622 0.786163 0.468903 0.924286 0.813660 0.471924 0.923981 0.838593 0.474945 0.923615 0.861237 0.477997 0.923340 0.881805 0.481110 0.923035 0.900421 0.484070 0.922729 0.917450 0.487213 0.922455 0.932861 0.490265 0.922180 0.946838 0.493256 0.921997 0.959534 0.496307 0.921997 0.970917 0.499359 0.921997 0.981079 0.502319 0.921997 0.080414 0.455292 0.930695 0.104675 0.458221 0.930328 0.130127 0.461151 0.929962 0.156891 0.464050 0.929657 0.185150 0.467010 0.929230 0.215088 0.470001 0.928864 0.246887 0.472961 0.928497 0.280792 0.476013 0.928131 0.316864 0.478973 0.927795 0.355072 0.482025 0.927429 0.395172 0.485046 0.927063 0.436768 0.488129 0.926697 0.479889 0.491241 0.926331 0.524048 0.494324 0.925995 0.568298 0.497375 0.925659 0.611237 0.500458 0.925323 0.652191 0.503662 0.924988 0.690735 0.506683 0.924652 0.726746 0.509796 0.924316 0.759735 0.512909 0.923981 0.789795 0.516022 0.923645 0.816956 0.519165 0.923340 0.841553 0.522217 0.923065 0.863922 0.525360 0.922760 0.884216 0.528473 0.922455 0.902649 0.531555 0.922180 0.919403 0.534729 0.921997 0.934662 0.537781 0.921997 0.948456 0.540741 0.921997 0.960968 0.543823 0.921997 0.972198 0.546783 0.921997 0.982208 0.549805 0.921997 0.083313 0.501862 0.929993 0.107727 0.504913 0.929657 0.133392 0.507935 0.929260 0.160309 0.510925 0.928864 0.188812 0.513947 0.928528 0.219025 0.517120 0.928131 0.251007 0.520142 0.927795 0.285248 0.523224 0.927460 0.321564 0.526337 0.927094 0.359985 0.529449 0.926697 0.400299 0.532593 0.926331 0.442139 0.535706 0.925995 0.485413 0.538879 0.925690 0.529724 0.541992 0.925323 0.573822 0.545135 0.924988 0.616486 0.548218 0.924652 0.657196 0.551392 0.924316 0.695435 0.554443 0.923981 0.731049 0.557587 0.923645 0.763702 0.560577 0.923340 0.793335 0.563690 0.923065 0.820190 0.566742 0.922760 0.844452 0.569794 0.922485 0.866516 0.572815 0.922180 0.886566 0.575806 0.921997 0.904785 0.578796 0.921997 0.921356 0.581757 0.921997 0.936401 0.584747 0.921997 0.950043 0.587616 0.921997 0.962372 0.590576 0.921997 0.973450 0.593414 0.921997 0.983307 0.596252 0.921997 0.086243 0.549438 0.929291 0.110840 0.552521 0.928894 0.136658 0.555573 0.928528 0.163788 0.558533 0.928162 0.192505 0.561646 0.927826 0.222900 0.564697 0.927460 0.255219 0.567719 0.927094 0.289673 0.570831 0.926697 0.326324 0.573822 0.926361 0.364990 0.576843 0.926025 0.405518 0.579956 0.925690 0.447571 0.582916 0.925354 0.490997 0.585999 0.924988 0.535370 0.589020 0.924652 0.579285 0.592041 0.924347 0.621765 0.595032 0.923981 0.662170 0.598083 0.923676 0.700073 0.600983 0.923340 0.735352 0.603973 0.923065 0.767548 0.606842 0.922791 0.796844 0.609863 0.922485 0.823334 0.612762 0.922180 0.847290 0.615631 0.921997 0.869080 0.618530 0.921997 0.888885 0.621368 0.921997 0.906891 0.624176 0.921997 0.923248 0.626984 0.921997 0.938110 0.629822 0.921997 0.951569 0.632507 0.921997 0.963776 0.635254 0.921997 0.974670 0.637939 0.921997 0.984406 0.640656 0.921997 0.089233 0.596039 0.928528 0.113983 0.598999 0.928162 0.139954 0.601959 0.927826 0.167297 0.604828 0.927460 0.196228 0.607819 0.927124 0.226837 0.610718 0.926758 0.259430 0.613678 0.926392 0.294220 0.616669 0.926025 0.331116 0.619537 0.925720 0.370056 0.622467 0.925354 0.410767 0.625427 0.925018 0.452972 0.628265 0.924652 0.496490 0.631165 0.924347 0.540955 0.634094 0.924011 0.584747 0.636902 0.923706 0.626953 0.639771 0.923370 0.667053 0.642609 0.923065 0.704681 0.645386 0.922791 0.739532 0.648254 0.922516 0.771362 0.650940 0.922211 0.800232 0.653687 0.921997 0.826416 0.656464 0.921997 0.850098 0.659180 0.921997 0.871613 0.661865 0.921997 0.891174 0.664520 0.921997 0.908905 0.667114 0.921997 0.925110 0.669739 0.921997 0.939789 0.672333 0.921997 0.953094 0.674896 0.921997 0.965088 0.677429 0.921997 0.975861 0.679871 0.921997 0.985443 0.682343 0.921997 0.092285 0.640656 0.927856 0.117157 0.643433 0.927490 0.143311 0.646301 0.927124 0.170898 0.649017 0.926758 0.199982 0.651825 0.926392 0.230835 0.654633 0.926056 0.263733 0.657440 0.925720 0.298798 0.660217 0.925354 0.335938 0.662933 0.925049 0.375122 0.665710 0.924683 0.416016 0.668457 0.924347 0.458466 0.671143 0.924042 0.502045 0.673889 0.923706 0.546570 0.676605 0.923370 0.590149 0.679230 0.923096 0.632080 0.681946 0.922821 0.671844 0.684509 0.922546 0.709106 0.687164 0.922241 0.743622 0.689758 0.921997 0.775024 0.692291 0.921997 0.803589 0.694885 0.921997 0.829437 0.697418 0.921997 0.852783 0.699860 0.921997 0.874054 0.702362 0.921997 0.893402 0.704834 0.921997 0.910919 0.707214 0.921997 0.926910 0.709595 0.921997 0.941376 0.711914 0.921997 0.954529 0.714264 0.921997 0.966400 0.716583 0.921997 0.977020 0.718811 0.921997 0.986420 0.721069 0.921997 0.095337 0.682678 0.927155 0.120422 0.685364 0.926758 0.146759 0.688019 0.926422 0.174469 0.690582 0.926056 0.203827 0.693237 0.925720 0.234894 0.695801 0.925385 0.268066 0.698395 0.925049 0.303375 0.701019 0.924713 0.340759 0.703522 0.924347 0.380157 0.706116 0.924042 0.421326 0.708679 0.923706 0.463867 0.711182 0.923401 0.507629 0.713654 0.923096 0.552032 0.716095 0.922821 0.595459 0.718597 0.922546 0.637177 0.721069 0.922241 0.676605 0.723419 0.921997 0.713531 0.725830 0.921997 0.747650 0.728241 0.921997 0.778717 0.730560 0.921997 0.806885 0.732910 0.921997 0.832367 0.735199 0.921997 0.855438 0.737427 0.921997 0.876434 0.739655 0.921997 0.895538 0.741943 0.921997 0.912842 0.744049 0.921997 0.928650 0.746216 0.921997 0.942993 0.748291 0.921997 0.955933 0.750427 0.921997 0.967651 0.752502 0.921997 0.978119 0.754486 0.921997 0.987396 0.756500 0.921997 0.098419 0.721802 0.926422 0.123657 0.724274 0.926056 0.150146 0.726654 0.925751 0.178070 0.729156 0.925385 0.207672 0.731567 0.925049 0.238983 0.733887 0.924713 0.272369 0.736298 0.924347 0.307983 0.738678 0.924042 0.345642 0.740997 0.923706 0.385254 0.743347 0.923401 0.426544 0.745636 0.923126 0.469269 0.747925 0.922821 0.513153 0.750214 0.922546 0.557465 0.752441 0.922241 0.600739 0.754669 0.921997 0.642120 0.756897 0.921997 0.681244 0.759064 0.921997 0.717834 0.761169 0.921997 0.751587 0.763336 0.921997 0.782227 0.765442 0.921997 0.810028 0.767517 0.921997 0.835236 0.769562 0.921997 0.858032 0.771576 0.921997 0.878754 0.773590 0.921997 0.897614 0.775513 0.921997 0.914764 0.777435 0.921997 0.930328 0.779388 0.921997 0.944489 0.781250 0.921997 0.957306 0.783112 0.921997 0.968872 0.784943 0.921997 0.979187 0.786682 0.921997 0.988312 0.788452 0.921997 0.101593 0.757660 0.925751 0.126953 0.759857 0.925385 0.153595 0.762054 0.925049 0.181732 0.764252 0.924713 0.211517 0.766449 0.924377 0.243073 0.768616 0.924072 0.276794 0.770782 0.923706 0.312622 0.772919 0.923431 0.350494 0.774963 0.923126 0.390320 0.777100 0.922821 0.431824 0.779175 0.922546 0.474701 0.781189 0.922241 0.518646 0.783264 0.921997 0.562897 0.785217 0.921997 0.605927 0.787262 0.921997 0.647034 0.789215 0.921997 0.685822 0.791138 0.921997 0.722076 0.793030 0.921997 0.755371 0.794983 0.921997 0.785706 0.796783 0.921997 0.813141 0.798676 0.921997 0.837982 0.800476 0.921997 0.860535 0.802246 0.921997 0.881042 0.804016 0.921997 0.899597 0.805725 0.921997 0.916595 0.807465 0.921997 0.931976 0.809143 0.921997 0.945953 0.810760 0.921997 0.958588 0.812439 0.921997 0.970032 0.814026 0.921997 0.980194 0.815582 0.921997 0.989197 0.817108 0.921997 0.104736 0.789978 0.925079 0.130249 0.791992 0.924713 0.157074 0.793945 0.924408 0.185394 0.795959 0.924072 0.215393 0.797913 0.923737 0.247162 0.799835 0.923431 0.281158 0.801788 0.923126 0.317261 0.803680 0.922821 0.355377 0.805542 0.922546 0.395416 0.807404 0.922241 0.437012 0.809204 0.921997 0.480042 0.811127 0.921997 0.524078 0.812927 0.921997 0.568207 0.814667 0.921997 0.611023 0.816437 0.921997 0.651794 0.818207 0.921997 0.690277 0.819916 0.921997 0.726166 0.821655 0.921997 0.759155 0.823334 0.921997 0.789001 0.824951 0.921997 0.816132 0.826599 0.921997 0.840637 0.828217 0.921997 0.862946 0.829773 0.921997 0.883179 0.831390 0.921997 0.901581 0.832886 0.921997 0.918335 0.834381 0.921997 0.933563 0.835876 0.921997 0.947388 0.837311 0.921997 0.959869 0.838776 0.921997 0.971130 0.840210 0.921997 0.981171 0.841583 0.921997 0.990021 0.842926 0.921997 0.107910 0.819061 0.924408 0.133606 0.820862 0.924072 0.160583 0.822601 0.923737 0.189087 0.824402 0.923431 0.219269 0.826141 0.923126 0.251312 0.827850 0.922852 0.285553 0.829620 0.922546 0.321899 0.831329 0.922272 0.360199 0.833008 0.921997 0.400482 0.834686 0.921997 0.442230 0.836273 0.921997 0.485382 0.837952 0.921997 0.529510 0.839569 0.921997 0.573456 0.841125 0.921997 0.615967 0.842712 0.921997 0.656525 0.844330 0.921997 0.694702 0.845825 0.921997 0.730164 0.847351 0.921997 0.762756 0.848877 0.921997 0.792267 0.850281 0.921997 0.819031 0.851746 0.921997 0.843292 0.853180 0.921997 0.865265 0.854584 0.921997 0.885284 0.855988 0.921997 0.903473 0.857300 0.921997 0.920013 0.858643 0.921997 0.935089 0.859985 0.921997 0.948730 0.861237 0.921997 0.961090 0.862518 0.921997 0.972198 0.863770 0.921997 0.982086 0.864960 0.921997 0.990845 0.866150 0.921997 0.111053 0.845215 0.923767 0.136902 0.846832 0.923431 0.164062 0.848389 0.923157 0.192780 0.850006 0.922852 0.223175 0.851593 0.922577 0.255463 0.853149 0.922272 0.289886 0.854675 0.921997 0.326416 0.856171 0.921997 0.365051 0.857697 0.921997 0.405487 0.859192 0.921997 0.447388 0.860657 0.921997 0.490570 0.862122 0.921997 0.534821 0.863586 0.921997 0.578644 0.864990 0.921997 0.620880 0.866364 0.921997 0.661133 0.867798 0.921997 0.698914 0.869110 0.921997 0.734039 0.870483 0.921997 0.766235 0.871826 0.921997 0.795441 0.873108 0.921997 0.821838 0.874390 0.921997 0.845795 0.875641 0.921997 0.867554 0.876892 0.921997 0.887329 0.878113 0.921997 0.905304 0.879303 0.921997 0.921661 0.880493 0.921997 0.936584 0.881653 0.921997 0.950012 0.882782 0.921997 0.962250 0.883881 0.921997 0.973206 0.884979 0.921997 0.982971 0.886017 0.921997 0.991608 0.887085 0.921997 0.114258 0.868744 0.923157 0.140198 0.870209 0.922882 0.167542 0.871643 0.922577 0.196442 0.873077 0.922272 0.227112 0.874481 0.921997 0.259583 0.875885 0.921997 0.294281 0.877258 0.921997 0.331085 0.878601 0.921997 0.369873 0.879974 0.921997 0.410461 0.881287 0.921997 0.452484 0.882568 0.921997 0.495819 0.883881 0.921997 0.540009 0.885193 0.921997 0.583618 0.886444 0.921997 0.625671 0.887726 0.921997 0.665588 0.888947 0.921997 0.703033 0.890137 0.921997 0.737823 0.891327 0.921997 0.769562 0.892517 0.921997 0.798462 0.893677 0.921997 0.824554 0.894806 0.921997 0.848236 0.895905 0.921997 0.869720 0.897034 0.921997 0.889282 0.898102 0.921997 0.907043 0.899139 0.921997 0.923248 0.900208 0.921997 0.937958 0.901245 0.921997 0.951294 0.902191 0.921997 0.963379 0.903168 0.921997 0.974152 0.904114 0.921997 0.983826 0.905060 0.921997 0.992310 0.905975 0.921997 0.117401 0.890015 0.922607 0.143555 0.891296 0.922302 0.171051 0.892609 0.922028 0.200104 0.893860 0.921997 0.230927 0.895111 0.921997 0.263702 0.896393 0.921997 0.298615 0.897614 0.921997 0.335602 0.898834 0.921997 0.374603 0.900055 0.921997 0.415375 0.901245 0.921997 0.457581 0.902374 0.921997 0.500946 0.903564 0.921997 0.545166 0.904724 0.921997 0.588562 0.905823 0.921997 0.630280 0.906952 0.921997 0.669861 0.908020 0.921997 0.707092 0.909119 0.921997 0.741455 0.910187 0.921997 0.772827 0.911194 0.921997 0.801392 0.912201 0.921997 0.827179 0.913239 0.921997 0.850555 0.914215 0.921997 0.871826 0.915222 0.921997 0.891144 0.916168 0.921997 0.908722 0.917084 0.921997 0.924744 0.917969 0.921997 0.939270 0.918884 0.921997 0.952454 0.919708 0.921997 0.964386 0.920593 0.921997 0.975067 0.921448 0.921997 0.984619 0.922241 0.921997 0.992981 0.923065 0.921997 0.120544 0.909180 0.922028 0.146851 0.910370 0.921997 0.174530 0.911469 0.921997 0.203796 0.912659 0.921997 0.234772 0.913727 0.921997 0.267792 0.914886 0.921997 0.302979 0.916016 0.921997 0.340149 0.917084 0.921997 0.379364 0.918152 0.921997 0.420258 0.919220 0.921997 0.462494 0.920258 0.921997 0.506012 0.921295 0.921997 0.550171 0.922333 0.921997 0.593323 0.923279 0.921997 0.634857 0.924286 0.921997 0.674072 0.925262 0.921997 0.710938 0.926208 0.921997 0.744965 0.927155 0.921997 0.776031 0.928040 0.921997 0.804169 0.928955 0.921997 0.829712 0.929871 0.921997 0.852814 0.930695 0.921997 0.873840 0.931549 0.921997 0.892944 0.932465 0.921997 0.910339 0.933228 0.921997 0.926147 0.934021 0.921997 0.940552 0.934784 0.921997 0.953613 0.935577 0.921997 0.965393 0.936310 0.921997 0.975952 0.937012 0.921997 0.985352 0.937744 0.921997 0.993622 0.938446 0.921997 0.123718 0.926483 0.921997 0.150116 0.927521 0.921997 0.177979 0.928528 0.921997 0.207397 0.929596 0.921997 0.238647 0.930573 0.921997 0.271881 0.931549 0.921997 0.307220 0.932587 0.921997 0.344635 0.933533 0.921997 0.384003 0.934479 0.921997 0.425018 0.935455 0.921997 0.467407 0.936371 0.921997 0.510956 0.937286 0.921997 0.554993 0.938171 0.921997 0.597961 0.939056 0.921997 0.639221 0.939972 0.921997 0.678192 0.940796 0.921997 0.714661 0.941650 0.921997 0.748352 0.942444 0.921997 0.779022 0.943237 0.921997 0.806885 0.944031 0.921997 0.832092 0.944855 0.921997 0.854950 0.945587 0.921997 0.875732 0.946350 0.921997 0.894653 0.947052 0.921997 0.911835 0.947784 0.921997 0.927521 0.948456 0.921997 0.941742 0.949158 0.921997 0.954651 0.949829 0.921997 0.966309 0.950470 0.921997 0.976746 0.951080 0.921997 0.986053 0.951691 0.921997 0.994202 0.952271 0.921997 0.126862 0.942078 0.921997 0.153381 0.942993 0.921997 0.181427 0.943939 0.921997 0.211029 0.944855 0.921997 0.242432 0.945740 0.921997 0.275879 0.946625 0.921997 0.311523 0.947510 0.921997 0.349091 0.948334 0.921997 0.388580 0.949219 0.921997 0.429718 0.950012 0.921997 0.472198 0.950836 0.921997 0.515778 0.951630 0.921997 0.559723 0.952423 0.921997 0.602478 0.953217 0.921997 0.643433 0.953979 0.921997 0.682068 0.954712 0.921997 0.718292 0.955475 0.921997 0.751617 0.956207 0.921997 0.781921 0.956909 0.921997 0.809448 0.957611 0.921997 0.834381 0.958282 0.921997 0.856995 0.958923 0.921997 0.877563 0.959595 0.921997 0.896271 0.960236 0.921997 0.913269 0.960815 0.921997 0.928802 0.961456 0.921997 0.942902 0.962006 0.921997 0.955658 0.962585 0.921997 0.967194 0.963135 0.921997 0.977539 0.963654 0.921997 0.986694 0.964203 0.921997 0.994751 0.964691 0.921997 0.129974 0.956085 0.921997 0.156647 0.956909 0.921997 0.184814 0.957703 0.921997 0.214630 0.958527 0.921997 0.246185 0.959290 0.921997 0.279846 0.960114 0.921997 0.315674 0.960846 0.921997 0.353455 0.961609 0.921997 0.393127 0.962372 0.921997 0.434296 0.963074 0.921997 0.476898 0.963806 0.921997 0.520569 0.964508 0.921997 0.564331 0.965210 0.921997 0.606842 0.965912 0.921997 0.647522 0.966583 0.921997 0.685822 0.967224 0.921997 0.721710 0.967834 0.921997 0.754700 0.968475 0.921997 0.784698 0.969086 0.921997 0.811920 0.969696 0.921997 0.836578 0.970276 0.921997 0.858917 0.970856 0.921997 0.879272 0.971375 0.921997 0.897797 0.971924 0.921997 0.914673 0.972473 0.921997 0.930023 0.972992 0.921997 0.943970 0.973480 0.921997 0.956604 0.973969 0.921997 0.967987 0.974426 0.921997 0.978241 0.974915 0.921997 0.987305 0.975342 0.921997 0.995300 0.975739 0.921997 0.133026 0.968597 0.921997 0.159882 0.969299 0.921997 0.188171 0.970032 0.921997 0.218140 0.970734 0.921997 0.249939 0.971436 0.921997 0.283783 0.972107 0.921997 0.319794 0.972778 0.921997 0.357727 0.973450 0.921997 0.397522 0.974060 0.921997 0.438812 0.974701 0.921997 0.481445 0.975342 0.921997 0.525085 0.975983 0.921997 0.568787 0.976562 0.921997 0.611084 0.977142 0.921997 0.651459 0.977722 0.921997 0.689423 0.978302 0.921997 0.725006 0.978821 0.921997 0.757660 0.979401 0.921997 0.787292 0.979919 0.921997 0.814240 0.980408 0.921997 0.838593 0.980896 0.921997 0.860748 0.981415 0.921997 0.880920 0.981873 0.921997 0.899231 0.982330 0.921997 0.915955 0.982788 0.921997 0.931122 0.983215 0.921997 0.944946 0.983612 0.921997 0.957428 0.984009 0.921997 0.968781 0.984406 0.921997 0.978882 0.984802 0.921997 0.987854 0.985168 0.921997 0.995728 0.985504 0.921997 0.047302 0.008667 0.951691 0.069550 0.009583 0.951508 0.092834 0.010559 0.951294 0.117218 0.011536 0.951080 0.142853 0.012573 0.950836 0.169861 0.013611 0.950623 0.198364 0.014648 0.950378 0.228638 0.015717 0.950134 0.260834 0.016846 0.949890 0.295166 0.017944 0.949615 0.331573 0.019104 0.949341 0.369934 0.020294 0.949097 0.410187 0.021484 0.948822 0.451965 0.022736 0.948517 0.494934 0.023956 0.948242 0.538910 0.025208 0.947937 0.582520 0.026489 0.947632 0.624390 0.027802 0.947327 0.664337 0.029083 0.947052 0.701935 0.030426 0.946716 0.736786 0.031769 0.946411 0.768768 0.033173 0.946075 0.797791 0.034576 0.945740 0.824097 0.035950 0.945435 0.847992 0.037384 0.945099 0.869659 0.038788 0.944794 0.889374 0.040253 0.944458 0.907349 0.041748 0.944122 0.923615 0.043182 0.943787 0.938507 0.044678 0.943451 0.951996 0.046234 0.943115 0.964172 0.047729 0.942810 0.049133 0.030365 0.951294 0.071564 0.031403 0.951080 0.094971 0.032471 0.950836 0.119476 0.033539 0.950653 0.145294 0.034607 0.950378 0.172485 0.035767 0.950134 0.201233 0.036896 0.949890 0.231720 0.038086 0.949615 0.264191 0.039276 0.949341 0.298737 0.040497 0.949097 0.335480 0.041748 0.948822 0.374054 0.042969 0.948547 0.414581 0.044312 0.948242 0.456573 0.045593 0.947937 0.499695 0.046906 0.947662 0.543793 0.048279 0.947357 0.587311 0.049683 0.947052 0.629028 0.051025 0.946747 0.668762 0.052460 0.946442 0.706085 0.053864 0.946075 0.740631 0.055298 0.945801 0.772339 0.056763 0.945465 0.801056 0.058228 0.945129 0.827057 0.059692 0.944794 0.850708 0.061218 0.944458 0.872131 0.062744 0.944122 0.891663 0.064301 0.943787 0.909454 0.065857 0.943481 0.925568 0.067383 0.943146 0.940247 0.069000 0.942810 0.953583 0.070587 0.942444 0.965546 0.072174 0.942139 0.051086 0.053131 0.950836 0.073639 0.054260 0.950653 0.097198 0.055389 0.950409 0.121887 0.056549 0.950134 0.147858 0.057739 0.949921 0.175262 0.058990 0.949646 0.204163 0.060211 0.949371 0.234894 0.061493 0.949097 0.267639 0.062775 0.948822 0.302490 0.064056 0.948547 0.339478 0.065430 0.948273 0.378387 0.066772 0.947937 0.419098 0.068146 0.947662 0.461243 0.069580 0.947357 0.504608 0.070953 0.947052 0.548767 0.072449 0.946747 0.592102 0.073914 0.946442 0.633728 0.075378 0.946106 0.673248 0.076874 0.945801 0.710297 0.078430 0.945465 0.744568 0.079956 0.945129 0.775909 0.081512 0.944824 0.804291 0.083038 0.944489 0.830017 0.084656 0.944122 0.853424 0.086243 0.943787 0.874603 0.087891 0.943481 0.893921 0.089508 0.943146 0.911469 0.091187 0.942810 0.927460 0.092804 0.942474 0.942017 0.094513 0.942139 0.955139 0.096222 0.941803 0.966980 0.097870 0.941467 0.053131 0.076996 0.950409 0.075806 0.078186 0.950165 0.099518 0.079437 0.949921 0.124359 0.080719 0.949646 0.150513 0.082031 0.949371 0.178101 0.083374 0.949127 0.207275 0.084686 0.948822 0.238251 0.086060 0.948547 0.271179 0.087433 0.948273 0.306335 0.088867 0.947968 0.343628 0.090332 0.947662 0.382751 0.091766 0.947388 0.423706 0.093262 0.947052 0.466095 0.094757 0.946747 0.509552 0.096252 0.946442 0.553772 0.097839 0.946106 0.597046 0.099396 0.945801 0.638428 0.100952 0.945465 0.677734 0.102600 0.945129 0.714447 0.104187 0.944855 0.748444 0.105835 0.944489 0.779510 0.107513 0.944153 0.807556 0.109161 0.943817 0.833038 0.110901 0.943481 0.856140 0.112579 0.943146 0.877106 0.114288 0.942810 0.896179 0.116028 0.942474 0.913544 0.117798 0.942139 0.929352 0.119537 0.941833 0.943695 0.121338 0.941467 0.956665 0.123108 0.941162 0.968414 0.124908 0.940826 0.055237 0.102081 0.949921 0.078064 0.103424 0.949646 0.101929 0.104797 0.949371 0.126953 0.106110 0.949158 0.153290 0.107544 0.948853 0.181091 0.108978 0.948547 0.210449 0.110443 0.948273 0.241699 0.111938 0.947968 0.274902 0.113403 0.947662 0.310303 0.114929 0.947388 0.347839 0.116516 0.947052 0.387299 0.118073 0.946747 0.428467 0.119659 0.946442 0.471039 0.121277 0.946136 0.514709 0.122894 0.945801 0.558960 0.124603 0.945465 0.602051 0.126251 0.945129 0.643250 0.127960 0.944855 0.682312 0.129700 0.944489 0.718719 0.131409 0.944153 0.752380 0.133179 0.943848 0.783081 0.134949 0.943512 0.810822 0.136719 0.943176 0.835968 0.138550 0.942841 0.858826 0.140381 0.942505 0.879578 0.142181 0.942169 0.898438 0.144043 0.941833 0.915619 0.145935 0.941467 0.931244 0.147766 0.941193 0.945404 0.149658 0.940826 0.958221 0.151520 0.940491 0.969788 0.153473 0.940186 0.057465 0.128571 0.949402 0.080444 0.130005 0.949158 0.104492 0.131500 0.948853 0.129639 0.132935 0.948578 0.156158 0.134491 0.948273 0.184113 0.135986 0.947998 0.213745 0.137604 0.947662 0.245239 0.139221 0.947418 0.278748 0.140808 0.947052 0.314453 0.142517 0.946747 0.352264 0.144196 0.946442 0.391907 0.145844 0.946167 0.433350 0.147583 0.945801 0.476135 0.149323 0.945465 0.519928 0.151062 0.945160 0.564117 0.152832 0.944855 0.606995 0.154663 0.944489 0.648132 0.156464 0.944153 0.686859 0.158356 0.943848 0.723022 0.160156 0.943512 0.756317 0.162079 0.943176 0.786652 0.163971 0.942841 0.814056 0.165863 0.942505 0.838959 0.167816 0.942169 0.861511 0.169769 0.941833 0.881989 0.171692 0.941498 0.900696 0.173706 0.941193 0.917664 0.175629 0.940857 0.933075 0.177643 0.940491 0.947113 0.179688 0.940186 0.959747 0.181671 0.939880 0.971161 0.183716 0.939575 0.059784 0.156494 0.948853 0.082916 0.158142 0.948578 0.107056 0.159729 0.948273 0.132416 0.161346 0.947998 0.159149 0.162994 0.947693 0.187286 0.164642 0.947418 0.217194 0.166382 0.947083 0.248901 0.168121 0.946777 0.282684 0.169861 0.946472 0.318756 0.171661 0.946167 0.356812 0.173492 0.945831 0.396698 0.175293 0.945496 0.438293 0.177155 0.945190 0.481293 0.179047 0.944855 0.525208 0.180939 0.944519 0.569397 0.182831 0.944183 0.612122 0.184753 0.943878 0.652924 0.186737 0.943512 0.691437 0.188751 0.943176 0.727264 0.190674 0.942871 0.760223 0.192749 0.942505 0.790222 0.194794 0.942169 0.817291 0.196808 0.941864 0.841888 0.198883 0.941498 0.864227 0.200958 0.941193 0.884460 0.203033 0.940857 0.902954 0.205170 0.940521 0.919678 0.207275 0.940216 0.934937 0.209442 0.939880 0.948792 0.211578 0.939575 0.961273 0.213684 0.939240 0.972504 0.215942 0.938934 0.062164 0.186218 0.948303 0.085419 0.187988 0.947998 0.109711 0.189697 0.947723 0.135284 0.191467 0.947418 0.162201 0.193298 0.947083 0.190552 0.195099 0.946777 0.220703 0.196991 0.946472 0.252716 0.198853 0.946167 0.286774 0.200745 0.945862 0.323059 0.202698 0.945496 0.361420 0.204651 0.945190 0.401550 0.206604 0.944855 0.443359 0.208618 0.944519 0.486450 0.210602 0.944214 0.530640 0.212646 0.943878 0.574738 0.214783 0.943512 0.617249 0.216797 0.943207 0.657837 0.218964 0.942871 0.696045 0.221069 0.942535 0.731506 0.223206 0.942169 0.764130 0.225372 0.941864 0.793762 0.227600 0.941528 0.820526 0.229797 0.941193 0.844788 0.231995 0.940857 0.866852 0.234192 0.940552 0.886902 0.236481 0.940216 0.905151 0.238739 0.939880 0.921692 0.240997 0.939575 0.936768 0.243317 0.939240 0.950409 0.245605 0.938965 0.962769 0.247894 0.938660 0.973846 0.250244 0.938354 0.064636 0.217865 0.947723 0.088043 0.219788 0.947418 0.112518 0.221649 0.947113 0.138245 0.223633 0.946777 0.165344 0.225616 0.946503 0.193909 0.227509 0.946167 0.224304 0.229584 0.945862 0.256592 0.231598 0.945526 0.290894 0.233673 0.945190 0.327515 0.235748 0.944885 0.366180 0.237915 0.944519 0.406464 0.240021 0.944214 0.448547 0.242188 0.943878 0.491760 0.244385 0.943542 0.536102 0.246582 0.943207 0.580048 0.248871 0.942871 0.622375 0.251068 0.942535 0.662689 0.253357 0.942169 0.700592 0.255707 0.941895 0.735779 0.257965 0.941559 0.768005 0.260315 0.941193 0.797302 0.262695 0.940887 0.823730 0.265015 0.940552 0.847717 0.267456 0.940216 0.869507 0.269775 0.939911 0.889313 0.272217 0.939606 0.907349 0.274658 0.939270 0.923676 0.277069 0.938965 0.938568 0.279541 0.938660 0.952087 0.282013 0.938354 0.964233 0.284454 0.938049 0.975128 0.286987 0.937775 0.067230 0.251709 0.947144 0.090759 0.253754 0.946777 0.115387 0.255829 0.946533 0.141296 0.257935 0.946167 0.168549 0.260132 0.945862 0.197418 0.262268 0.945557 0.227997 0.264465 0.945190 0.260529 0.266693 0.944885 0.295227 0.268890 0.944550 0.332123 0.271210 0.944214 0.370880 0.273468 0.943909 0.411591 0.275848 0.943542 0.453827 0.278168 0.943207 0.497253 0.280518 0.942902 0.541595 0.282928 0.942566 0.585388 0.285400 0.942200 0.627533 0.287781 0.941895 0.667603 0.290253 0.941559 0.705139 0.292755 0.941223 0.740021 0.295227 0.940887 0.771851 0.297760 0.940582 0.800751 0.300262 0.940216 0.826874 0.302795 0.939941 0.850616 0.305389 0.939606 0.872101 0.307953 0.939270 0.891663 0.310516 0.938995 0.909485 0.313141 0.938660 0.925659 0.315735 0.938354 0.940369 0.318329 0.938049 0.953674 0.320984 0.937775 0.965668 0.323578 0.937469 0.976440 0.326202 0.937195 0.069824 0.287994 0.946533 0.093506 0.290253 0.946198 0.118317 0.292480 0.945862 0.144379 0.294830 0.945557 0.171906 0.297180 0.945221 0.200928 0.299469 0.944916 0.231781 0.301880 0.944580 0.264618 0.304291 0.944214 0.299561 0.306702 0.943909 0.336700 0.309174 0.943542 0.375793 0.311615 0.943237 0.416687 0.314148 0.942902 0.459137 0.316742 0.942566 0.502747 0.319244 0.942230 0.547150 0.321869 0.941895 0.590759 0.324463 0.941559 0.632690 0.327026 0.941254 0.672485 0.329651 0.940918 0.709717 0.332367 0.940582 0.744171 0.334930 0.940247 0.775696 0.337677 0.939941 0.804199 0.340332 0.939606 0.830017 0.343048 0.939270 0.853455 0.345795 0.938995 0.874664 0.348511 0.938690 0.894043 0.351227 0.938354 0.911621 0.354004 0.938049 0.927612 0.356750 0.937805 0.942108 0.359497 0.937469 0.955231 0.362274 0.937195 0.967102 0.364990 0.936920 0.977692 0.367828 0.936676 0.072510 0.326813 0.945892 0.096344 0.329254 0.945557 0.121307 0.331635 0.945221 0.147583 0.334167 0.944916 0.175293 0.336700 0.944580 0.204559 0.339203 0.944244 0.235626 0.341766 0.943939 0.268707 0.344330 0.943604 0.304016 0.346954 0.943237 0.341431 0.349609 0.942902 0.380737 0.352234 0.942566 0.421906 0.354980 0.942230 0.464508 0.357666 0.941925 0.508240 0.360352 0.941559 0.552704 0.363129 0.941254 0.596130 0.365875 0.940918 0.637787 0.368652 0.940582 0.677307 0.371429 0.940247 0.714264 0.374237 0.939972 0.748352 0.377075 0.939606 0.779480 0.379883 0.939301 0.807617 0.382660 0.938995 0.833130 0.385529 0.938690 0.856262 0.388428 0.938385 0.877258 0.391235 0.938080 0.896362 0.394135 0.937805 0.913696 0.397003 0.937500 0.929504 0.399902 0.937195 0.943817 0.402771 0.936920 0.956787 0.405670 0.936676 0.968475 0.408508 0.936401 0.978912 0.411377 0.936157 0.075256 0.367950 0.945221 0.099274 0.370575 0.944916 0.124390 0.373199 0.944580 0.150848 0.375854 0.944244 0.178741 0.378571 0.943939 0.208221 0.381226 0.943604 0.239563 0.384003 0.943237 0.272919 0.386688 0.942932 0.308533 0.389496 0.942596 0.346222 0.392273 0.942230 0.385803 0.395050 0.941925 0.427124 0.397919 0.941559 0.469971 0.400818 0.941254 0.513794 0.403656 0.940948 0.558258 0.406555 0.940582 0.601532 0.409485 0.940247 0.642914 0.412354 0.939972 0.682129 0.415253 0.939636 0.718719 0.418152 0.939301 0.752472 0.421143 0.938995 0.783203 0.424103 0.938690 0.810944 0.427063 0.938385 0.836151 0.430023 0.938080 0.859039 0.433014 0.937805 0.879730 0.435944 0.937500 0.898621 0.438904 0.937225 0.915802 0.441925 0.936920 0.931366 0.444855 0.936707 0.945496 0.447876 0.936401 0.958282 0.450745 0.936157 0.969818 0.453735 0.936096 0.980133 0.456757 0.936096 0.078064 0.411255 0.944580 0.102203 0.414032 0.944244 0.127533 0.416779 0.943970 0.154144 0.419647 0.943604 0.182220 0.422394 0.943237 0.212006 0.425293 0.942932 0.243591 0.428162 0.942596 0.277222 0.431000 0.942261 0.313110 0.433960 0.941956 0.351044 0.436920 0.941589 0.390900 0.439819 0.941254 0.432404 0.442841 0.940948 0.475433 0.445801 0.940613 0.519379 0.448822 0.940277 0.563782 0.451813 0.939972 0.606812 0.454742 0.939636 0.648041 0.457825 0.939301 0.686920 0.460846 0.938995 0.723114 0.463867 0.938721 0.756500 0.466919 0.938385 0.786835 0.470032 0.938080 0.814270 0.473022 0.937836 0.839172 0.476135 0.937531 0.861755 0.479187 0.937225 0.882202 0.482178 0.936920 0.900848 0.485260 0.936707 0.917786 0.488342 0.936432 0.933167 0.491333 0.936157 0.947174 0.494415 0.936096 0.959808 0.497375 0.936096 0.971161 0.500427 0.936096 0.981293 0.503479 0.936096 0.080933 0.456421 0.943970 0.105255 0.459290 0.943604 0.130707 0.462189 0.943268 0.157562 0.465088 0.942932 0.185791 0.468048 0.942627 0.215820 0.471100 0.942261 0.247650 0.474091 0.941956 0.281586 0.477020 0.941620 0.317749 0.480164 0.941254 0.355957 0.483185 0.940948 0.396057 0.486176 0.940643 0.437866 0.489258 0.940308 0.480957 0.492371 0.939972 0.525055 0.495453 0.939667 0.569336 0.498566 0.939331 0.612152 0.501587 0.939056 0.653137 0.504761 0.938721 0.691681 0.507874 0.938416 0.727509 0.510956 0.938080 0.760498 0.514069 0.937836 0.790466 0.517273 0.937531 0.817505 0.520294 0.937256 0.842102 0.523407 0.936951 0.864410 0.526611 0.936707 0.884583 0.529663 0.936432 0.903046 0.532745 0.936188 0.919739 0.535767 0.936096 0.934967 0.538879 0.936096 0.948792 0.541962 0.936096 0.961212 0.544922 0.936096 0.972412 0.547943 0.936096 0.982452 0.550995 0.936096 0.083862 0.503021 0.943268 0.108276 0.506012 0.942963 0.133942 0.509033 0.942627 0.160950 0.512115 0.942261 0.189453 0.515106 0.941956 0.219696 0.518188 0.941620 0.251801 0.521271 0.941284 0.286011 0.524323 0.940948 0.322449 0.527496 0.940643 0.360992 0.530640 0.940308 0.401276 0.533691 0.940002 0.443207 0.536865 0.939667 0.486420 0.539978 0.939331 0.530701 0.543091 0.939056 0.574890 0.546234 0.938721 0.617462 0.549347 0.938416 0.658112 0.552460 0.938110 0.696350 0.555573 0.937836 0.731812 0.558655 0.937531 0.764465 0.561768 0.937256 0.794006 0.564819 0.936951 0.820740 0.567871 0.936737 0.845001 0.570892 0.936432 0.867004 0.573975 0.936188 0.886993 0.576904 0.936096 0.905182 0.579956 0.936096 0.921692 0.582855 0.936096 0.936737 0.585785 0.936096 0.950348 0.588745 0.936096 0.962646 0.591583 0.936096 0.973694 0.594482 0.936096 0.983521 0.597351 0.936096 0.086853 0.550568 0.942627 0.111450 0.553619 0.942261 0.137238 0.556641 0.941986 0.164459 0.559692 0.941650 0.193146 0.562714 0.941284 0.223633 0.565796 0.940979 0.256012 0.568848 0.940643 0.290527 0.571869 0.940308 0.327240 0.574982 0.940002 0.365997 0.578064 0.939667 0.406433 0.580994 0.939331 0.448578 0.584045 0.939056 0.492035 0.587158 0.938721 0.536377 0.590118 0.938416 0.580383 0.593109 0.938110 0.622681 0.596069 0.937836 0.663055 0.599091 0.937561 0.700989 0.602112 0.937286 0.736084 0.605011 0.936981 0.768311 0.608002 0.936737 0.797485 0.610901 0.936462 0.823883 0.613800 0.936218 0.847839 0.616699 0.936096 0.869568 0.619629 0.936096 0.889282 0.622406 0.936096 0.907288 0.625244 0.936096 0.923553 0.628021 0.936096 0.938416 0.630768 0.936096 0.951904 0.633545 0.936096 0.963989 0.636261 0.936096 0.974915 0.638916 0.936096 0.984589 0.641632 0.936096 0.089813 0.597168 0.941986 0.114563 0.600006 0.941650 0.140594 0.603027 0.941315 0.167999 0.605957 0.940979 0.196899 0.608826 0.940674 0.227600 0.611847 0.940308 0.260284 0.614777 0.940002 0.295013 0.617676 0.939697 0.332001 0.620605 0.939362 0.371033 0.623596 0.939056 0.411682 0.626434 0.938751 0.454041 0.629364 0.938416 0.497559 0.632141 0.938141 0.541962 0.635071 0.937836 0.585785 0.637970 0.937561 0.627869 0.640778 0.937286 0.667938 0.643646 0.936981 0.705505 0.646454 0.936737 0.740234 0.649170 0.936462 0.772064 0.651978 0.936218 0.800903 0.654785 0.936096 0.826965 0.657440 0.936096 0.850616 0.660156 0.936096 0.872070 0.662872 0.936096 0.891571 0.665436 0.936096 0.909332 0.668121 0.936096 0.925446 0.670685 0.936096 0.940094 0.673248 0.936096 0.953369 0.675842 0.936096 0.965332 0.678314 0.936096 0.976074 0.680786 0.936096 0.985596 0.683319 0.936096 0.092865 0.641663 0.941315 0.117767 0.644440 0.941010 0.143951 0.647278 0.940674 0.171539 0.650116 0.940308 0.200684 0.652832 0.940033 0.231628 0.655640 0.939697 0.264557 0.658447 0.939362 0.299591 0.661194 0.939056 0.336823 0.663971 0.938751 0.376068 0.666748 0.938446 0.417023 0.669403 0.938141 0.459503 0.672180 0.937866 0.503113 0.674896 0.937561 0.547516 0.677582 0.937286 0.591156 0.680206 0.937012 0.632996 0.682831 0.936737 0.672791 0.685516 0.936493 0.709961 0.688080 0.936218 0.744354 0.690674 0.936096 0.775757 0.693268 0.936096 0.804230 0.695801 0.936096 0.829956 0.698273 0.936096 0.853333 0.700836 0.936096 0.874481 0.703217 0.936096 0.893768 0.705658 0.936096 0.911285 0.708099 0.936096 0.927246 0.710480 0.936096 0.941711 0.712830 0.936096 0.954803 0.715118 0.936096 0.966614 0.717377 0.936096 0.977203 0.719666 0.936096 0.986603 0.721924 0.936096 0.095978 0.683685 0.940674 0.121002 0.686310 0.940338 0.147339 0.688934 0.940063 0.175171 0.691589 0.939697 0.204468 0.694122 0.939362 0.235657 0.696808 0.939056 0.268860 0.699402 0.938782 0.304169 0.701904 0.938446 0.341736 0.704529 0.938171 0.381073 0.707062 0.937897 0.422272 0.709534 0.937561 0.464874 0.712097 0.937286 0.508606 0.714508 0.937012 0.553070 0.717041 0.936768 0.596466 0.719543 0.936493 0.638031 0.721924 0.936218 0.677521 0.724304 0.936096 0.714386 0.726746 0.936096 0.748352 0.729034 0.936096 0.779388 0.731445 0.936096 0.807465 0.733795 0.936096 0.832886 0.736023 0.936096 0.855957 0.738281 0.936096 0.876862 0.740448 0.936096 0.895905 0.742676 0.936096 0.913208 0.744904 0.936096 0.928955 0.746979 0.936096 0.943237 0.749115 0.936096 0.956207 0.751190 0.936096 0.967834 0.753174 0.936096 0.978333 0.755219 0.936096 0.987549 0.757263 0.936096 0.099060 0.722717 0.940063 0.124268 0.725159 0.939697 0.150818 0.727570 0.939392 0.178772 0.730042 0.939087 0.208344 0.732391 0.938782 0.239777 0.734772 0.938446 0.273224 0.737183 0.938171 0.308807 0.739532 0.937897 0.346588 0.741882 0.937592 0.386169 0.744141 0.937317 0.427582 0.746460 0.937012 0.470276 0.748779 0.936768 0.514160 0.751007 0.936493 0.558533 0.753265 0.936218 0.601746 0.755463 0.936096 0.643036 0.757660 0.936096 0.682129 0.759827 0.936096 0.718658 0.761993 0.936096 0.752258 0.764099 0.936096 0.782898 0.766174 0.936096 0.810608 0.768219 0.936096 0.835724 0.770294 0.936096 0.858521 0.772308 0.936096 0.879150 0.774292 0.936096 0.898010 0.776245 0.936096 0.915131 0.778198 0.936096 0.930634 0.780029 0.936096 0.944763 0.781921 0.936096 0.957550 0.783783 0.936096 0.969025 0.785553 0.936096 0.979370 0.787323 0.936096 0.988495 0.789093 0.936096 0.102173 0.758514 0.939392 0.127563 0.760651 0.939117 0.154266 0.762878 0.938782 0.182465 0.765106 0.938477 0.212219 0.767242 0.938171 0.243896 0.769409 0.937897 0.277527 0.771515 0.937592 0.313446 0.773682 0.937317 0.351471 0.775787 0.937012 0.391235 0.777863 0.936768 0.432770 0.779907 0.936493 0.475708 0.781982 0.936218 0.519653 0.783966 0.936096 0.563934 0.785980 0.936096 0.606934 0.787994 0.936096 0.647888 0.789886 0.936096 0.686707 0.791809 0.936096 0.722839 0.793762 0.936096 0.756073 0.795624 0.936096 0.786346 0.797485 0.936096 0.813660 0.799316 0.936096 0.838470 0.801178 0.936096 0.860992 0.802917 0.936096 0.881409 0.804657 0.936096 0.900024 0.806366 0.936096 0.916931 0.808075 0.936096 0.932281 0.809753 0.936096 0.946228 0.811401 0.936096 0.958862 0.813049 0.936096 0.970215 0.814606 0.936096 0.980377 0.816162 0.936096 0.989349 0.817688 0.936096 0.105347 0.790741 0.938812 0.130829 0.792725 0.938477 0.157745 0.794708 0.938171 0.186096 0.796692 0.937897 0.216125 0.798615 0.937592 0.248016 0.800537 0.937317 0.281891 0.802460 0.937012 0.318085 0.804321 0.936768 0.356293 0.806274 0.936493 0.396332 0.808075 0.936218 0.438019 0.809937 0.936096 0.481079 0.811829 0.936096 0.525085 0.813568 0.936096 0.569244 0.815369 0.936096 0.611969 0.817108 0.936096 0.652649 0.818848 0.936096 0.691132 0.820526 0.936096 0.726898 0.822266 0.936096 0.759766 0.823914 0.936096 0.789673 0.825562 0.936096 0.816650 0.827179 0.936096 0.841156 0.828796 0.936096 0.863434 0.830383 0.936096 0.883575 0.831879 0.936096 0.901947 0.833466 0.936096 0.918640 0.834991 0.936096 0.933868 0.836456 0.936096 0.947632 0.837891 0.936096 0.960114 0.839294 0.936096 0.971313 0.840698 0.936096 0.981354 0.842072 0.936096 0.990173 0.843414 0.936096 0.108490 0.819733 0.938171 0.134186 0.821503 0.937927 0.161194 0.823303 0.937622 0.189728 0.825012 0.937317 0.220001 0.826752 0.937042 0.252136 0.828522 0.936798 0.286285 0.830231 0.936523 0.322693 0.831909 0.936218 0.361176 0.833588 0.936096 0.401367 0.835266 0.936096 0.443207 0.836914 0.936096 0.486328 0.838562 0.936096 0.530457 0.840149 0.936096 0.574463 0.841736 0.936096 0.616882 0.843323 0.936096 0.657349 0.844849 0.936096 0.695526 0.846405 0.936096 0.730865 0.847870 0.936096 0.763367 0.849365 0.936096 0.792908 0.850830 0.936096 0.819550 0.852234 0.936096 0.843750 0.853668 0.936096 0.865723 0.855072 0.936096 0.885681 0.856445 0.936096 0.903809 0.857788 0.936096 0.920349 0.859161 0.936096 0.935364 0.860443 0.936096 0.949005 0.861725 0.936096 0.961304 0.862946 0.936096 0.972351 0.864197 0.936096 0.982269 0.865417 0.936096 0.990967 0.866577 0.936096 0.111664 0.845825 0.937622 0.137482 0.847412 0.937347 0.164703 0.849030 0.937042 0.193420 0.850555 0.936798 0.223907 0.852142 0.936523 0.256256 0.853699 0.936249 0.290680 0.855194 0.936096 0.327332 0.856720 0.936096 0.365997 0.858276 0.936096 0.406372 0.859741 0.936096 0.448364 0.861237 0.936096 0.491638 0.862640 0.936096 0.535767 0.864075 0.936096 0.579559 0.865509 0.936096 0.621765 0.866852 0.936096 0.661957 0.868286 0.936096 0.699738 0.869659 0.936096 0.734711 0.870972 0.936096 0.766846 0.872284 0.936096 0.795990 0.873566 0.936096 0.822357 0.874817 0.936096 0.846283 0.876129 0.936096 0.867981 0.877350 0.936096 0.887695 0.878540 0.936096 0.905640 0.879730 0.936096 0.921967 0.880890 0.936096 0.936798 0.882050 0.936096 0.950287 0.883179 0.936096 0.962433 0.884277 0.936096 0.973389 0.885345 0.936096 0.983154 0.886414 0.936096 0.991730 0.887451 0.936096 0.114807 0.869293 0.937073 0.140808 0.870758 0.936798 0.168213 0.872162 0.936523 0.197113 0.873535 0.936279 0.227722 0.874969 0.936096 0.260376 0.876373 0.936096 0.295044 0.877747 0.936096 0.331970 0.879089 0.936096 0.370789 0.880493 0.936096 0.411316 0.881805 0.936096 0.453461 0.883087 0.936096 0.496826 0.884399 0.936096 0.540955 0.885651 0.936096 0.584595 0.886932 0.936096 0.626495 0.888153 0.936096 0.666382 0.889374 0.936096 0.703827 0.890594 0.936096 0.738464 0.891754 0.936096 0.770233 0.892944 0.936096 0.799011 0.894104 0.936096 0.825043 0.895233 0.936096 0.848694 0.896332 0.936096 0.870117 0.897430 0.936096 0.889618 0.898499 0.936096 0.907379 0.899567 0.936096 0.923492 0.900574 0.936096 0.938202 0.901581 0.936096 0.951508 0.902557 0.936096 0.963531 0.903503 0.936096 0.974335 0.904480 0.936096 0.983948 0.905426 0.936096 0.992462 0.906281 0.936096 0.117981 0.890442 0.936554 0.144135 0.891754 0.936279 0.171692 0.893097 0.936096 0.200775 0.894318 0.936096 0.231628 0.895599 0.936096 0.264496 0.896851 0.936096 0.299438 0.898071 0.936096 0.336517 0.899292 0.936096 0.375519 0.900513 0.936096 0.416260 0.901642 0.936096 0.458496 0.902832 0.936096 0.501862 0.903961 0.936096 0.546051 0.905121 0.936096 0.589447 0.906250 0.936096 0.631134 0.907349 0.936096 0.670685 0.908417 0.936096 0.707825 0.909515 0.936096 0.742096 0.910553 0.936096 0.773499 0.911560 0.936096 0.801910 0.912598 0.936096 0.827637 0.913574 0.936096 0.850983 0.914612 0.936096 0.872192 0.915527 0.936096 0.891479 0.916504 0.936096 0.909027 0.917450 0.936096 0.924988 0.918274 0.936096 0.939514 0.919189 0.936096 0.952698 0.920074 0.936096 0.964569 0.920898 0.936096 0.975250 0.921722 0.936096 0.984772 0.922577 0.936096 0.993103 0.923309 0.936096 0.121124 0.909607 0.936096 0.147430 0.910767 0.936096 0.175201 0.911926 0.936096 0.204437 0.913025 0.936096 0.235504 0.914185 0.936096 0.268616 0.915314 0.936096 0.303741 0.916412 0.936096 0.341003 0.917511 0.936096 0.380249 0.918549 0.936096 0.421082 0.919586 0.936096 0.463501 0.920654 0.936096 0.506897 0.921661 0.936096 0.551117 0.922699 0.936096 0.594238 0.923676 0.936096 0.635620 0.924652 0.936096 0.674896 0.925629 0.936096 0.711639 0.926544 0.936096 0.745575 0.927490 0.936096 0.776581 0.928406 0.936096 0.804718 0.929321 0.936096 0.830139 0.930176 0.936096 0.853241 0.931030 0.936096 0.874207 0.931885 0.936096 0.893280 0.932739 0.936096 0.910645 0.933533 0.936096 0.926422 0.934296 0.936096 0.940796 0.935089 0.936096 0.953796 0.935852 0.936096 0.965546 0.936584 0.936096 0.976105 0.937317 0.936096 0.985474 0.938019 0.936096 0.993744 0.938690 0.936096 0.124298 0.926849 0.936096 0.150757 0.927917 0.936096 0.178619 0.928955 0.936096 0.208099 0.929932 0.936096 0.239380 0.930939 0.936096 0.272644 0.931946 0.936096 0.308014 0.932922 0.936096 0.345551 0.933899 0.936096 0.384857 0.934814 0.936096 0.425903 0.935760 0.936096 0.468323 0.936707 0.936096 0.511810 0.937592 0.936096 0.555878 0.938507 0.936096 0.598877 0.939392 0.936096 0.639954 0.940247 0.936096 0.678955 0.941101 0.936096 0.715393 0.941956 0.936096 0.748932 0.942749 0.936096 0.779602 0.943542 0.936096 0.807343 0.944305 0.936096 0.832489 0.945099 0.936096 0.855316 0.945862 0.936096 0.876068 0.946594 0.936096 0.894958 0.947327 0.936096 0.912109 0.948029 0.936096 0.927765 0.948730 0.936096 0.941986 0.949402 0.936096 0.954834 0.950043 0.936096 0.966492 0.950714 0.936096 0.976929 0.951294 0.936096 0.986176 0.951904 0.936096 0.994324 0.952515 0.936096 0.127411 0.942383 0.936096 0.154022 0.943329 0.936096 0.182068 0.944244 0.936096 0.211700 0.945129 0.936096 0.243164 0.946045 0.936096 0.276672 0.946960 0.936096 0.312225 0.947784 0.936096 0.349945 0.948669 0.936096 0.389404 0.949493 0.936096 0.430603 0.950317 0.936096 0.473114 0.951141 0.936096 0.516632 0.951935 0.936096 0.560608 0.952728 0.936096 0.603333 0.953522 0.936096 0.644165 0.954285 0.936096 0.682831 0.955017 0.936096 0.718903 0.955750 0.936096 0.752167 0.956482 0.936096 0.782471 0.957184 0.936096 0.809875 0.957825 0.936096 0.834808 0.958496 0.936096 0.857361 0.959167 0.936096 0.877869 0.959808 0.936096 0.896545 0.960449 0.936096 0.913544 0.961060 0.936096 0.929016 0.961639 0.936096 0.943115 0.962250 0.936096 0.955841 0.962799 0.936096 0.967316 0.963348 0.936096 0.977661 0.963867 0.936096 0.986816 0.964355 0.936096 0.994873 0.964844 0.936096 0.130524 0.956390 0.936096 0.157257 0.957184 0.936096 0.185486 0.958008 0.936096 0.215271 0.958801 0.936096 0.246887 0.959595 0.936096 0.280548 0.960388 0.936096 0.316376 0.961151 0.936096 0.354279 0.961884 0.936096 0.393921 0.962616 0.936096 0.435181 0.963379 0.936096 0.477783 0.964081 0.936096 0.521332 0.964752 0.936096 0.565216 0.965454 0.936096 0.607666 0.966125 0.936096 0.648254 0.966766 0.936096 0.686554 0.967468 0.936096 0.722321 0.968079 0.936096 0.755219 0.968719 0.936096 0.785217 0.969299 0.936096 0.812317 0.969910 0.936096 0.836945 0.970520 0.936096 0.859283 0.971039 0.936096 0.879578 0.971588 0.936096 0.898071 0.972168 0.936096 0.914917 0.972687 0.936096 0.930206 0.973175 0.936096 0.944122 0.973663 0.936096 0.956726 0.974121 0.936096 0.968170 0.974579 0.936096 0.978363 0.975067 0.936096 0.987427 0.975494 0.936096 0.995361 0.975922 0.936096 0.133606 0.968872 0.936096 0.160461 0.969543 0.936096 0.188843 0.970306 0.936096 0.218781 0.970978 0.936096 0.250641 0.971710 0.936096 0.284454 0.972321 0.936096 0.320526 0.973022 0.936096 0.358551 0.973694 0.936096 0.398285 0.974335 0.936096 0.439667 0.974945 0.936096 0.482300 0.975586 0.936096 0.525940 0.976135 0.936096 0.569641 0.976776 0.936096 0.611877 0.977356 0.936096 0.652130 0.977936 0.936096 0.690125 0.978485 0.936096 0.725555 0.979004 0.936096 0.758179 0.979584 0.936096 0.787811 0.980072 0.936096 0.814636 0.980560 0.936096 0.838989 0.981079 0.936096 0.861084 0.981567 0.936096 0.881195 0.982025 0.936096 0.899475 0.982513 0.936096 0.916199 0.982941 0.936096 0.931335 0.983337 0.936096 0.945099 0.983765 0.936096 0.957611 0.984192 0.936096 0.968903 0.984558 0.936096 0.979004 0.984924 0.936096 0.987976 0.985291 0.936096 0.995789 0.985657 0.936096 ================================================ FILE: packages/sdk/public/resource/luts/Chemical 168.CUBE ================================================ #Created by: Adobe Photoshop Export Color Lookup Plugin #Copyright: (C) Copyright 2017 RocketStock TITLE "Untitled" #LUT size LUT_3D_SIZE 32 #data domain DOMAIN_MIN 0.0 0.0 0.0 DOMAIN_MAX 1.0 1.0 1.0 #LUT data points 0.030975 0.000000 0.042267 0.046356 0.000519 0.042511 0.062866 0.001007 0.042755 0.080841 0.001587 0.043030 0.100555 0.002167 0.043304 0.122345 0.002777 0.043579 0.146667 0.003418 0.043854 0.173859 0.004028 0.044220 0.204193 0.004761 0.044525 0.237457 0.005463 0.044861 0.273529 0.006195 0.045227 0.312256 0.006989 0.045563 0.353241 0.007782 0.045959 0.396088 0.008575 0.046326 0.440552 0.009430 0.046722 0.485718 0.010254 0.047119 0.529175 0.011139 0.047546 0.569794 0.012054 0.048004 0.607635 0.012970 0.048431 0.642609 0.013916 0.048828 0.675140 0.014893 0.049347 0.705536 0.015869 0.049774 0.734161 0.016876 0.050232 0.761292 0.017914 0.050751 0.787201 0.018921 0.051239 0.812164 0.020020 0.051758 0.836487 0.021118 0.052246 0.860352 0.022217 0.052734 0.884186 0.023315 0.053314 0.908325 0.024475 0.053833 0.933258 0.025635 0.054382 0.959961 0.026825 0.054932 0.031555 0.015991 0.040802 0.047028 0.016602 0.041077 0.063599 0.017151 0.041351 0.081665 0.017792 0.041626 0.101440 0.018402 0.041931 0.123413 0.019073 0.042236 0.147797 0.019775 0.042572 0.175110 0.020508 0.042877 0.205536 0.021240 0.043243 0.238953 0.022003 0.043579 0.275146 0.022797 0.043976 0.313904 0.023651 0.044342 0.354950 0.024506 0.044769 0.397827 0.025360 0.045135 0.442291 0.026245 0.045563 0.487335 0.027130 0.046021 0.530670 0.028107 0.046417 0.571136 0.029053 0.046844 0.608795 0.030029 0.047333 0.643616 0.031036 0.047791 0.676056 0.032104 0.048248 0.706329 0.033142 0.048737 0.734833 0.034180 0.049255 0.761902 0.035309 0.049774 0.787659 0.036377 0.050232 0.812592 0.037567 0.050751 0.836792 0.038727 0.051300 0.860687 0.039886 0.051819 0.884369 0.041077 0.052368 0.908417 0.042267 0.052856 0.933319 0.043488 0.053467 0.959961 0.044769 0.053986 0.032318 0.032898 0.039307 0.047791 0.033569 0.039581 0.064423 0.034180 0.039856 0.082581 0.034882 0.040161 0.102448 0.035583 0.040527 0.124512 0.036346 0.040802 0.149017 0.037109 0.041168 0.176483 0.037872 0.041504 0.207031 0.038727 0.041901 0.240570 0.039581 0.042297 0.276917 0.040436 0.042664 0.315704 0.041321 0.043060 0.356750 0.042267 0.043457 0.399689 0.043182 0.043884 0.444092 0.044159 0.044312 0.489075 0.045135 0.044769 0.532257 0.046173 0.045197 0.572540 0.047211 0.045685 0.610016 0.048279 0.046112 0.644745 0.049347 0.046600 0.677002 0.050446 0.047119 0.707123 0.051605 0.047577 0.735535 0.052734 0.048126 0.762482 0.053955 0.048615 0.788239 0.055115 0.049103 0.813049 0.056335 0.049652 0.837158 0.057587 0.050201 0.860931 0.058838 0.050720 0.884644 0.060120 0.051270 0.908600 0.061432 0.051819 0.933441 0.062744 0.052368 0.959961 0.064117 0.052948 0.033081 0.051056 0.037659 0.048615 0.051788 0.037964 0.065338 0.052490 0.038300 0.083557 0.053253 0.038605 0.103546 0.054077 0.038971 0.125671 0.054871 0.039276 0.150360 0.055756 0.039673 0.177948 0.056610 0.040039 0.208649 0.057526 0.040405 0.242279 0.058411 0.040833 0.278656 0.059418 0.041199 0.317566 0.060364 0.041626 0.358673 0.061401 0.042084 0.401611 0.062408 0.042480 0.446014 0.063507 0.042938 0.490875 0.064575 0.043396 0.533813 0.065674 0.043823 0.573975 0.066833 0.044312 0.611267 0.067993 0.044800 0.645813 0.069153 0.045319 0.677948 0.070404 0.045776 0.707916 0.071625 0.046295 0.736267 0.072876 0.046814 0.763062 0.074158 0.047333 0.788727 0.075439 0.047852 0.813446 0.076782 0.048340 0.837524 0.078094 0.048920 0.861237 0.079468 0.049469 0.884888 0.080872 0.050018 0.908783 0.082275 0.050568 0.933502 0.083710 0.051117 0.959961 0.085175 0.051666 0.033875 0.070770 0.035919 0.049469 0.071625 0.036194 0.066254 0.072418 0.036591 0.084564 0.073303 0.036896 0.104706 0.074188 0.037231 0.126953 0.075104 0.037628 0.151794 0.076050 0.037964 0.179504 0.077026 0.038391 0.210358 0.078033 0.038788 0.244080 0.079071 0.039185 0.280518 0.080139 0.039612 0.319519 0.081207 0.040009 0.360657 0.082336 0.040497 0.403595 0.083496 0.040924 0.447968 0.084656 0.041351 0.492737 0.085846 0.041840 0.535522 0.087097 0.042297 0.575470 0.088379 0.042816 0.612579 0.089600 0.043243 0.646973 0.090912 0.043762 0.678894 0.092255 0.044250 0.708771 0.093567 0.044800 0.736969 0.094971 0.045288 0.763672 0.096344 0.045776 0.789276 0.097778 0.046326 0.813965 0.099243 0.046875 0.837891 0.100677 0.047394 0.861542 0.102203 0.047943 0.885040 0.103760 0.048492 0.908936 0.105225 0.049042 0.933594 0.106812 0.049622 0.959961 0.108459 0.050201 0.034760 0.092529 0.033936 0.050415 0.093445 0.034241 0.067322 0.094391 0.034607 0.085693 0.095367 0.034973 0.105927 0.096375 0.035339 0.128296 0.097412 0.035736 0.153259 0.098511 0.036102 0.181122 0.099579 0.036530 0.212097 0.100708 0.036896 0.245972 0.101898 0.037323 0.282501 0.103058 0.037750 0.321533 0.104279 0.038208 0.362640 0.105499 0.038635 0.405701 0.106750 0.039093 0.450043 0.108093 0.039581 0.494629 0.109406 0.040039 0.537231 0.110779 0.040497 0.576965 0.112152 0.041016 0.613892 0.113556 0.041473 0.648132 0.115021 0.041962 0.679932 0.116486 0.042480 0.709625 0.117981 0.042969 0.737732 0.119507 0.043457 0.764343 0.121033 0.043976 0.789795 0.122589 0.044495 0.814392 0.124207 0.045074 0.838287 0.125793 0.045624 0.861847 0.127441 0.046143 0.885284 0.129150 0.046692 0.909088 0.130798 0.047272 0.933655 0.132538 0.047821 0.959961 0.134277 0.048401 0.035706 0.116760 0.031708 0.051453 0.117767 0.032043 0.068390 0.118866 0.032410 0.086884 0.119965 0.032776 0.107208 0.121124 0.033142 0.129730 0.122314 0.033539 0.154785 0.123535 0.033936 0.182831 0.124756 0.034332 0.213928 0.126007 0.034760 0.247894 0.127319 0.035187 0.284515 0.128632 0.035614 0.323639 0.130005 0.036072 0.364807 0.131348 0.036499 0.407837 0.132782 0.036987 0.452087 0.134277 0.037445 0.496582 0.135742 0.037872 0.538971 0.137238 0.038391 0.578522 0.138794 0.038849 0.615234 0.140350 0.039337 0.649292 0.141968 0.039825 0.680878 0.143555 0.040314 0.710541 0.145233 0.040833 0.738495 0.146973 0.041321 0.764984 0.148621 0.041840 0.790375 0.150391 0.042389 0.814819 0.152161 0.042908 0.838684 0.153900 0.043457 0.862122 0.155731 0.044006 0.885529 0.157562 0.044556 0.909210 0.159424 0.045044 0.933746 0.161316 0.045624 0.959961 0.163208 0.046204 0.036713 0.143982 0.029114 0.052490 0.145142 0.029480 0.069550 0.146393 0.029846 0.088135 0.147644 0.030243 0.108551 0.148895 0.030609 0.131195 0.150269 0.030975 0.156403 0.151642 0.031433 0.184631 0.153015 0.031860 0.215851 0.154480 0.032257 0.249878 0.155914 0.032654 0.286682 0.157410 0.033081 0.325806 0.158936 0.033600 0.367035 0.160492 0.033966 0.410004 0.162079 0.034454 0.454254 0.163727 0.034912 0.498627 0.165344 0.035400 0.540802 0.167053 0.035858 0.580109 0.168823 0.036285 0.616608 0.170502 0.036804 0.650452 0.172302 0.037323 0.681946 0.174103 0.037781 0.711456 0.175964 0.038300 0.739288 0.177795 0.038788 0.765656 0.179657 0.039276 0.790924 0.181610 0.039825 0.815338 0.183563 0.040375 0.839050 0.185516 0.040863 0.862457 0.187531 0.041412 0.885742 0.189575 0.041931 0.909393 0.191589 0.042480 0.933838 0.193665 0.043030 0.959961 0.195709 0.043549 0.037750 0.174744 0.026154 0.053650 0.176086 0.026520 0.070740 0.177490 0.026886 0.089478 0.178955 0.027252 0.109985 0.180389 0.027649 0.132751 0.181915 0.028076 0.158112 0.183411 0.028412 0.186493 0.185028 0.028870 0.217834 0.186615 0.029297 0.252045 0.188232 0.029724 0.288849 0.189911 0.030151 0.328033 0.191650 0.030609 0.369293 0.193390 0.031036 0.412292 0.195190 0.031494 0.456451 0.196960 0.031982 0.500702 0.198792 0.032410 0.542633 0.200684 0.032867 0.581726 0.202576 0.033356 0.618011 0.204468 0.033813 0.651672 0.206451 0.034302 0.683014 0.208374 0.034821 0.712341 0.210419 0.035278 0.740082 0.212463 0.035828 0.766357 0.214508 0.036316 0.791473 0.216583 0.036804 0.815796 0.218719 0.037323 0.839447 0.220795 0.037811 0.862762 0.222961 0.038391 0.885956 0.225159 0.038940 0.909576 0.227325 0.039429 0.933960 0.229553 0.039948 0.959961 0.231750 0.040497 0.038879 0.209534 0.022705 0.054810 0.210999 0.023071 0.072052 0.212585 0.023468 0.090820 0.214172 0.023834 0.111481 0.215790 0.024231 0.134369 0.217468 0.024628 0.159882 0.219177 0.025055 0.188416 0.220917 0.025482 0.219910 0.222687 0.025848 0.254211 0.224457 0.026306 0.291077 0.226288 0.026733 0.330383 0.228180 0.027191 0.371643 0.230072 0.027649 0.414581 0.232025 0.028076 0.458771 0.233978 0.028534 0.502808 0.235962 0.028961 0.544495 0.237946 0.029449 0.583313 0.239960 0.029907 0.619446 0.242096 0.030396 0.652924 0.244202 0.030914 0.684052 0.246277 0.031403 0.713287 0.248413 0.031891 0.740814 0.250610 0.032379 0.767029 0.252808 0.032837 0.792053 0.255005 0.033386 0.816254 0.257263 0.033905 0.839844 0.259491 0.034424 0.863068 0.261810 0.034912 0.886261 0.264038 0.035461 0.909729 0.266357 0.035980 0.933990 0.268738 0.036469 0.959961 0.271027 0.037018 0.040009 0.248047 0.018829 0.056000 0.249756 0.019226 0.073364 0.251465 0.019592 0.092255 0.253143 0.019989 0.113007 0.254913 0.020386 0.136078 0.256744 0.020813 0.161743 0.258575 0.021179 0.190399 0.260437 0.021606 0.222076 0.262390 0.022034 0.256439 0.264252 0.022461 0.293427 0.266235 0.022919 0.332764 0.268280 0.023315 0.373993 0.270264 0.023773 0.416962 0.272339 0.024231 0.461060 0.274384 0.024658 0.504944 0.276520 0.025146 0.546326 0.278656 0.025604 0.584991 0.280762 0.026093 0.620880 0.282990 0.026581 0.654175 0.285217 0.027069 0.685150 0.287415 0.027557 0.714233 0.289673 0.028046 0.741638 0.291992 0.028534 0.767700 0.294220 0.029083 0.792633 0.296570 0.029572 0.816772 0.298920 0.030090 0.840240 0.301178 0.030609 0.863403 0.303558 0.031128 0.886475 0.305908 0.031616 0.909851 0.308319 0.032135 0.934082 0.310760 0.032684 0.959961 0.313141 0.033173 0.041290 0.290131 0.014526 0.057312 0.291870 0.014923 0.074768 0.293732 0.015320 0.093750 0.295563 0.015717 0.114624 0.297424 0.016113 0.137817 0.299377 0.016541 0.163605 0.301331 0.016968 0.192474 0.303284 0.017395 0.224243 0.305328 0.017822 0.258728 0.307343 0.018219 0.295807 0.309418 0.018677 0.335205 0.311523 0.019135 0.376495 0.313599 0.019562 0.419373 0.315765 0.020050 0.463348 0.317902 0.020477 0.507080 0.320129 0.020966 0.548248 0.322357 0.021454 0.586670 0.324554 0.021942 0.622345 0.326843 0.022430 0.655426 0.329163 0.022919 0.686218 0.331360 0.023407 0.715149 0.333740 0.023926 0.742432 0.336090 0.024445 0.768372 0.338379 0.024902 0.793274 0.340790 0.025452 0.817230 0.343079 0.025940 0.840668 0.345551 0.026459 0.863739 0.347961 0.026978 0.886719 0.350281 0.027527 0.910004 0.352753 0.028046 0.934174 0.355225 0.028564 0.959961 0.357605 0.029083 0.042511 0.335266 0.009888 0.058655 0.337097 0.010284 0.076172 0.338989 0.010681 0.095245 0.340942 0.011108 0.116302 0.342926 0.011536 0.139648 0.344940 0.011963 0.165649 0.346954 0.012360 0.194611 0.348999 0.012787 0.226532 0.351074 0.013275 0.261139 0.353149 0.013672 0.298248 0.355316 0.014130 0.337677 0.357452 0.014587 0.378937 0.359619 0.015045 0.421844 0.361816 0.015533 0.465729 0.364014 0.015991 0.509247 0.366272 0.016479 0.550171 0.368591 0.016968 0.588348 0.370819 0.017456 0.623810 0.373138 0.017944 0.656708 0.375458 0.018494 0.687317 0.377747 0.018982 0.716095 0.380127 0.019440 0.743256 0.382507 0.019989 0.769073 0.384827 0.020508 0.793823 0.387238 0.021027 0.817719 0.389557 0.021515 0.841064 0.391998 0.022095 0.864044 0.394440 0.022583 0.886963 0.396790 0.023132 0.910217 0.399231 0.023651 0.934296 0.401672 0.024200 0.959961 0.404022 0.024750 0.043793 0.382996 0.004944 0.060028 0.384918 0.005371 0.077637 0.386871 0.005798 0.096832 0.388855 0.006226 0.118042 0.390869 0.006653 0.141510 0.392944 0.007080 0.167664 0.394958 0.007507 0.196838 0.397064 0.007965 0.228851 0.399200 0.008392 0.263550 0.401276 0.008881 0.300781 0.403442 0.009338 0.340179 0.405609 0.009796 0.381500 0.407806 0.010284 0.424377 0.410034 0.010773 0.468201 0.412231 0.011292 0.511444 0.414520 0.011749 0.552094 0.416809 0.012268 0.590088 0.419037 0.012756 0.625275 0.421356 0.013306 0.657990 0.423645 0.013794 0.688416 0.425934 0.014313 0.717010 0.428284 0.014832 0.744049 0.430664 0.015289 0.769775 0.432953 0.015869 0.794403 0.435333 0.016418 0.818237 0.437683 0.016937 0.841461 0.440033 0.017487 0.864380 0.442444 0.018036 0.887207 0.444763 0.018585 0.910400 0.447144 0.019135 0.934357 0.449585 0.019684 0.959961 0.451874 0.020233 0.045166 0.432770 0.000000 0.061493 0.434723 0.000244 0.079193 0.436737 0.000671 0.098450 0.438690 0.001099 0.119781 0.440735 0.001526 0.143402 0.442780 0.002014 0.169769 0.444824 0.002472 0.199066 0.446899 0.002930 0.231171 0.448975 0.003387 0.266022 0.451111 0.003876 0.303284 0.453308 0.004395 0.342773 0.455414 0.004883 0.384064 0.457581 0.005371 0.426941 0.459808 0.005859 0.470612 0.462006 0.006378 0.513641 0.464233 0.006866 0.554077 0.466400 0.007416 0.591766 0.468658 0.007904 0.626770 0.470886 0.008453 0.659241 0.473175 0.008972 0.689545 0.475403 0.009491 0.717987 0.477661 0.010040 0.744843 0.479889 0.010620 0.770477 0.482178 0.011139 0.795013 0.484436 0.011688 0.818726 0.486664 0.012238 0.841858 0.488953 0.012787 0.864655 0.491272 0.013367 0.887451 0.493469 0.013916 0.910553 0.495728 0.014496 0.934448 0.498016 0.015076 0.959961 0.500183 0.015625 0.046539 0.483826 0.000000 0.062958 0.485779 0.000000 0.080780 0.487732 0.000000 0.100159 0.489624 0.000000 0.121582 0.491608 0.000000 0.145355 0.493622 0.000000 0.171906 0.495605 0.000000 0.201355 0.497650 0.000000 0.233643 0.499664 0.000000 0.268555 0.501678 0.000000 0.305908 0.503784 0.000000 0.345337 0.505829 0.000000 0.386688 0.507874 0.000336 0.429443 0.509979 0.000916 0.473053 0.512024 0.001465 0.515839 0.514099 0.001984 0.556030 0.516144 0.002533 0.593445 0.518188 0.003113 0.628235 0.520294 0.003662 0.660492 0.522339 0.004211 0.690674 0.524445 0.004791 0.718903 0.526520 0.005371 0.745697 0.528534 0.005951 0.771149 0.530579 0.006500 0.795593 0.532684 0.007111 0.819214 0.534698 0.007690 0.842285 0.536743 0.008301 0.865021 0.538757 0.008881 0.887726 0.540741 0.009491 0.910675 0.542786 0.010101 0.934509 0.544739 0.010681 0.959961 0.546753 0.011292 0.047974 0.534241 0.000000 0.064484 0.535980 0.000000 0.082336 0.537811 0.000000 0.101929 0.539490 0.000000 0.123474 0.541290 0.000000 0.147430 0.543060 0.000000 0.174072 0.544861 0.000000 0.203705 0.546661 0.000000 0.236084 0.548462 0.000000 0.271088 0.550262 0.000000 0.308502 0.552124 0.000000 0.347992 0.553894 0.000000 0.389313 0.555756 0.000000 0.432068 0.557587 0.000000 0.475555 0.559387 0.000000 0.518097 0.561249 0.000000 0.558014 0.563141 0.000000 0.595184 0.564880 0.000000 0.629730 0.566772 0.000000 0.661804 0.568604 0.000000 0.691742 0.570312 0.000488 0.719879 0.572174 0.001068 0.746521 0.573944 0.001678 0.771820 0.575775 0.002350 0.796143 0.577606 0.002991 0.819702 0.579315 0.003571 0.842651 0.581146 0.004211 0.865295 0.582886 0.004852 0.887939 0.584656 0.005463 0.910889 0.586395 0.006134 0.934601 0.588135 0.006744 0.959961 0.589844 0.007416 0.049469 0.581024 0.000000 0.066040 0.582611 0.000000 0.083984 0.584198 0.000000 0.103699 0.585724 0.000000 0.125427 0.587250 0.000000 0.149536 0.588867 0.000000 0.176331 0.590393 0.000000 0.206055 0.592041 0.000000 0.238617 0.593567 0.000000 0.273712 0.595215 0.000000 0.311188 0.596802 0.000000 0.350708 0.598358 0.000000 0.391968 0.599976 0.000000 0.434692 0.601593 0.000000 0.478058 0.603149 0.000000 0.520294 0.604767 0.000000 0.559998 0.606415 0.000000 0.596924 0.607941 0.000000 0.631195 0.609558 0.000000 0.663086 0.611145 0.000000 0.692841 0.612671 0.000000 0.720825 0.614258 0.000000 0.747345 0.615784 0.000000 0.772552 0.617371 0.000000 0.796783 0.618927 0.000000 0.820190 0.620483 0.000000 0.843079 0.622009 0.000610 0.865631 0.623566 0.001282 0.888153 0.625031 0.001923 0.911011 0.626587 0.002594 0.934723 0.628021 0.003235 0.959961 0.629486 0.003937 0.050964 0.624176 0.000000 0.067657 0.625519 0.000000 0.085724 0.626862 0.000000 0.105499 0.628235 0.000000 0.127350 0.629608 0.000000 0.151611 0.630951 0.000000 0.178619 0.632355 0.000000 0.208557 0.633728 0.000000 0.241150 0.635040 0.000000 0.276367 0.636475 0.000000 0.313873 0.637878 0.000000 0.353394 0.639221 0.000000 0.394653 0.640625 0.000000 0.437286 0.641998 0.000000 0.480530 0.643372 0.000000 0.522552 0.644745 0.000000 0.561981 0.646118 0.000000 0.598633 0.647430 0.000000 0.632721 0.648834 0.000000 0.664337 0.650146 0.000000 0.693970 0.651550 0.000000 0.721771 0.652924 0.000000 0.748138 0.654205 0.000000 0.773224 0.655579 0.000000 0.797333 0.656891 0.000000 0.820648 0.658203 0.000000 0.843445 0.659546 0.000000 0.865936 0.660858 0.000000 0.888428 0.662109 0.000000 0.911194 0.663361 0.000000 0.934814 0.664642 0.000183 0.959961 0.665894 0.000885 0.052490 0.663635 0.000000 0.069244 0.664795 0.000000 0.087463 0.665955 0.000000 0.107361 0.667114 0.000000 0.129364 0.668365 0.000000 0.153778 0.669495 0.000000 0.180969 0.670685 0.000000 0.211029 0.671875 0.000000 0.243713 0.673035 0.000000 0.279083 0.674225 0.000000 0.316620 0.675446 0.000000 0.356110 0.676605 0.000000 0.397369 0.677795 0.000000 0.439941 0.678955 0.000000 0.483063 0.680115 0.000000 0.524780 0.681335 0.000000 0.563843 0.682495 0.000000 0.600342 0.683685 0.000000 0.634155 0.684814 0.000000 0.665588 0.685974 0.000000 0.695038 0.687134 0.000000 0.722717 0.688324 0.000000 0.748901 0.689453 0.000000 0.773895 0.690582 0.000000 0.797882 0.691742 0.000000 0.821136 0.692841 0.000000 0.843872 0.693939 0.000000 0.866241 0.695038 0.000000 0.888672 0.696167 0.000000 0.911346 0.697266 0.000000 0.934875 0.698334 0.000000 0.959961 0.699402 0.000000 0.054077 0.699860 0.000000 0.070923 0.700836 0.000000 0.089203 0.701843 0.000000 0.109283 0.702850 0.000000 0.131378 0.703888 0.000000 0.155975 0.704865 0.000000 0.183289 0.705933 0.000000 0.213501 0.706970 0.000000 0.246338 0.707947 0.000000 0.281738 0.708984 0.000000 0.319336 0.709991 0.000000 0.358887 0.710999 0.000000 0.400085 0.712006 0.000000 0.442596 0.713013 0.000000 0.485565 0.714050 0.000000 0.527008 0.715057 0.000000 0.565826 0.716003 0.000000 0.602051 0.717041 0.000000 0.635620 0.718048 0.000000 0.666870 0.719025 0.000000 0.696106 0.720001 0.000000 0.723663 0.721008 0.000000 0.749695 0.721985 0.000000 0.774597 0.722931 0.000000 0.798492 0.723907 0.000000 0.821625 0.724854 0.000000 0.844208 0.725800 0.000000 0.866577 0.726746 0.000000 0.888855 0.727722 0.000000 0.911530 0.728607 0.000000 0.934967 0.729492 0.000000 0.959961 0.730438 0.000000 0.055725 0.733307 0.000000 0.072632 0.734192 0.000000 0.091003 0.735016 0.000000 0.111206 0.735901 0.000000 0.133484 0.736786 0.000000 0.158203 0.737610 0.000000 0.185730 0.738495 0.000000 0.216095 0.739349 0.000000 0.249054 0.740234 0.000000 0.284424 0.741119 0.000000 0.322083 0.742004 0.000000 0.361603 0.742859 0.000000 0.402802 0.743744 0.000000 0.445221 0.744568 0.000000 0.488098 0.745483 0.000000 0.529236 0.746338 0.000000 0.567780 0.747162 0.000000 0.603699 0.748016 0.000000 0.637085 0.748901 0.000000 0.668121 0.749725 0.000000 0.697205 0.750580 0.000000 0.724548 0.751404 0.000000 0.750488 0.752228 0.000000 0.775238 0.753052 0.000000 0.799042 0.753876 0.000000 0.822083 0.754700 0.000000 0.844635 0.755524 0.000000 0.866821 0.756287 0.000000 0.889099 0.757080 0.000000 0.911713 0.757874 0.000000 0.935089 0.758667 0.000000 0.959961 0.759399 0.000000 0.057312 0.764465 0.000000 0.074310 0.765198 0.000000 0.092834 0.765900 0.000000 0.113159 0.766663 0.000000 0.135590 0.767426 0.000000 0.160492 0.768188 0.000000 0.188171 0.768921 0.000000 0.218597 0.769684 0.000000 0.251648 0.770386 0.000000 0.287170 0.771149 0.000000 0.324829 0.771881 0.000000 0.364410 0.772614 0.000000 0.405518 0.773376 0.000000 0.447845 0.774109 0.000000 0.490540 0.774841 0.000000 0.531372 0.775574 0.000000 0.569641 0.776276 0.000000 0.605377 0.777039 0.000000 0.638519 0.777740 0.000000 0.669373 0.778473 0.000000 0.698242 0.779175 0.000000 0.725464 0.779907 0.000000 0.751282 0.780609 0.000000 0.775940 0.781281 0.000000 0.799591 0.781952 0.000000 0.822540 0.782654 0.000000 0.845001 0.783356 0.000000 0.867157 0.783997 0.000000 0.889313 0.784698 0.000000 0.911835 0.785370 0.000000 0.935150 0.785980 0.000000 0.959961 0.786621 0.000000 0.058960 0.793701 0.000000 0.076080 0.794342 0.000000 0.094727 0.794952 0.000000 0.115143 0.795563 0.000000 0.137726 0.796234 0.000000 0.162781 0.796844 0.000000 0.190613 0.797485 0.000000 0.221222 0.798126 0.000000 0.254364 0.798767 0.000000 0.289917 0.799377 0.000000 0.327606 0.799988 0.000000 0.367157 0.800659 0.000000 0.408295 0.801239 0.000000 0.450470 0.801880 0.000000 0.492981 0.802551 0.000000 0.533539 0.803131 0.000000 0.571594 0.803741 0.000000 0.607025 0.804352 0.000000 0.639923 0.804993 0.000000 0.670593 0.805542 0.000000 0.699310 0.806152 0.000000 0.726379 0.806763 0.000000 0.752075 0.807373 0.000000 0.776581 0.807922 0.000000 0.800140 0.808533 0.000000 0.822968 0.809113 0.000000 0.845367 0.809692 0.000000 0.867432 0.810242 0.000000 0.889557 0.810791 0.000000 0.911987 0.811371 0.000000 0.935211 0.811920 0.000000 0.959961 0.812439 0.000000 0.060638 0.821381 0.000000 0.077881 0.821899 0.000000 0.096588 0.822418 0.000000 0.117188 0.822998 0.000000 0.139893 0.823517 0.000000 0.165100 0.824036 0.000000 0.193146 0.824615 0.000000 0.223816 0.825104 0.000000 0.257050 0.825653 0.000000 0.292694 0.826141 0.000000 0.330353 0.826721 0.000000 0.369904 0.827209 0.000000 0.410950 0.827759 0.000000 0.453125 0.828308 0.000000 0.495422 0.828827 0.000000 0.535675 0.829315 0.000000 0.573456 0.829834 0.000000 0.608612 0.830353 0.000000 0.641357 0.830872 0.000000 0.671814 0.831329 0.000000 0.700317 0.831879 0.000000 0.727264 0.832367 0.000000 0.752808 0.832825 0.000000 0.777222 0.833344 0.000000 0.800720 0.833832 0.000000 0.823456 0.834320 0.000000 0.845734 0.834778 0.000000 0.867767 0.835236 0.000000 0.889771 0.835724 0.000000 0.912109 0.836182 0.000000 0.935303 0.836639 0.000000 0.959961 0.837067 0.000000 0.062408 0.847839 0.000000 0.079651 0.848267 0.000000 0.098480 0.848724 0.000000 0.119202 0.849152 0.000000 0.142090 0.849640 0.000000 0.167419 0.850037 0.000000 0.195618 0.850494 0.000000 0.226410 0.850922 0.000000 0.259766 0.851379 0.000000 0.295410 0.851837 0.000000 0.333160 0.852234 0.000000 0.372711 0.852692 0.000000 0.413696 0.853149 0.000000 0.455688 0.853577 0.000000 0.497833 0.854004 0.000000 0.537811 0.854431 0.000000 0.575348 0.854858 0.000000 0.610229 0.855286 0.000000 0.642731 0.855713 0.000000 0.672974 0.856110 0.000000 0.701355 0.856537 0.000000 0.728119 0.856934 0.000000 0.753571 0.857300 0.000000 0.777832 0.857758 0.000000 0.801208 0.858124 0.000000 0.823883 0.858521 0.000000 0.846100 0.858917 0.000000 0.868042 0.859283 0.000000 0.889954 0.859650 0.000000 0.912262 0.860046 0.000000 0.935364 0.860382 0.000000 0.959961 0.860779 0.000000 0.064087 0.873352 0.000000 0.081512 0.873718 0.000000 0.100433 0.874084 0.000000 0.121246 0.874451 0.000000 0.144287 0.874817 0.000000 0.169830 0.875153 0.000000 0.198090 0.875549 0.000000 0.229034 0.875916 0.000000 0.262421 0.876251 0.000000 0.298187 0.876617 0.000000 0.335907 0.876953 0.000000 0.375397 0.877319 0.000000 0.416382 0.877655 0.000000 0.458282 0.878021 0.000000 0.500183 0.878387 0.000000 0.539886 0.878723 0.000000 0.577118 0.879059 0.000000 0.611877 0.879395 0.000000 0.644073 0.879730 0.000000 0.674133 0.880066 0.000000 0.702362 0.880432 0.000000 0.729004 0.880707 0.000000 0.754272 0.881073 0.000000 0.778473 0.881378 0.000000 0.801727 0.881683 0.000000 0.824310 0.882050 0.000000 0.846405 0.882355 0.000000 0.868286 0.882629 0.000000 0.890137 0.882935 0.000000 0.912384 0.883240 0.000000 0.935425 0.883545 0.000000 0.959961 0.883850 0.000000 0.065826 0.898254 0.000000 0.083344 0.898560 0.000000 0.102356 0.898834 0.000000 0.123322 0.899109 0.000000 0.146484 0.899414 0.000000 0.172150 0.899689 0.000000 0.200653 0.899963 0.000000 0.231598 0.900299 0.000000 0.265198 0.900543 0.000000 0.300934 0.900879 0.000000 0.338623 0.901093 0.000000 0.378113 0.901367 0.000000 0.419006 0.901672 0.000000 0.460846 0.901947 0.000000 0.502472 0.902222 0.000000 0.541901 0.902496 0.000000 0.578918 0.902771 0.000000 0.613373 0.903015 0.000000 0.645386 0.903290 0.000000 0.675293 0.903564 0.000000 0.703339 0.903839 0.000000 0.729828 0.904083 0.000000 0.754974 0.904358 0.000000 0.779053 0.904602 0.000000 0.802246 0.904846 0.000000 0.824738 0.905121 0.000000 0.846771 0.905304 0.000000 0.868561 0.905579 0.000000 0.890350 0.905792 0.000000 0.912537 0.906036 0.000000 0.935486 0.906250 0.000000 0.959961 0.906494 0.000000 0.067596 0.922882 0.000000 0.085175 0.923096 0.000000 0.104340 0.923340 0.000000 0.125427 0.923523 0.000000 0.148712 0.923737 0.000000 0.174561 0.923981 0.000000 0.203125 0.924194 0.000000 0.234283 0.924408 0.000000 0.267853 0.924591 0.000000 0.303650 0.924866 0.000000 0.341370 0.925018 0.000000 0.380859 0.925262 0.000000 0.421692 0.925476 0.000000 0.463348 0.925690 0.000000 0.504791 0.925873 0.000000 0.543976 0.926056 0.000000 0.580658 0.926270 0.000000 0.614868 0.926483 0.000000 0.646667 0.926666 0.000000 0.676422 0.926880 0.000000 0.704285 0.927063 0.000000 0.730621 0.927216 0.000000 0.755676 0.927460 0.000000 0.779602 0.927643 0.000000 0.802704 0.927795 0.000000 0.825104 0.928009 0.000000 0.847076 0.928162 0.000000 0.868835 0.928345 0.000000 0.890564 0.928528 0.000000 0.912628 0.928711 0.000000 0.935547 0.928833 0.000000 0.959961 0.929016 0.000000 0.069336 0.947632 0.000000 0.087006 0.947815 0.000000 0.106293 0.947906 0.000000 0.127502 0.948090 0.000000 0.150940 0.948242 0.000000 0.176941 0.948395 0.000000 0.205627 0.948517 0.000000 0.236877 0.948669 0.000000 0.270508 0.948792 0.000000 0.306335 0.948975 0.000000 0.344086 0.949066 0.000000 0.383514 0.949219 0.000000 0.424194 0.949371 0.000000 0.465790 0.949554 0.000000 0.507019 0.949707 0.000000 0.545898 0.949829 0.000000 0.582367 0.949982 0.000000 0.616364 0.950073 0.000000 0.647949 0.950195 0.000000 0.677490 0.950348 0.000000 0.705231 0.950470 0.000000 0.731415 0.950592 0.000000 0.756348 0.950684 0.000000 0.780212 0.950867 0.000000 0.803192 0.950958 0.000000 0.825531 0.951111 0.000000 0.847412 0.951202 0.000000 0.869049 0.951355 0.000000 0.890778 0.951477 0.000000 0.912781 0.951569 0.000000 0.935577 0.951691 0.000000 0.959961 0.951782 0.000000 0.071106 0.973083 0.000000 0.088867 0.973145 0.000000 0.108246 0.973236 0.000000 0.129608 0.973297 0.000000 0.153168 0.973358 0.000000 0.179321 0.973450 0.000000 0.208160 0.973511 0.000000 0.239502 0.973633 0.000000 0.273224 0.973663 0.000000 0.309052 0.973785 0.000000 0.346771 0.973846 0.000000 0.386108 0.973938 0.000000 0.426819 0.973999 0.000000 0.468231 0.974091 0.000000 0.509247 0.974152 0.000000 0.547791 0.974182 0.000000 0.584076 0.974304 0.000000 0.617798 0.974335 0.000000 0.649200 0.974396 0.000000 0.678528 0.974457 0.000000 0.706146 0.974548 0.000000 0.732208 0.974609 0.000000 0.756989 0.974670 0.000000 0.780792 0.974731 0.000000 0.803680 0.974823 0.000000 0.825897 0.974854 0.000000 0.847717 0.974915 0.000000 0.869324 0.974976 0.000000 0.890930 0.975037 0.000000 0.912903 0.975067 0.000000 0.935699 0.975128 0.000000 0.959961 0.975189 0.000000 0.072876 1.000000 0.000000 0.090729 1.000000 0.000000 0.110229 1.000000 0.000000 0.131683 1.000000 0.000000 0.155426 1.000000 0.000000 0.181732 1.000000 0.000000 0.210663 1.000000 0.000000 0.242035 1.000000 0.000000 0.275818 1.000000 0.000000 0.311646 1.000000 0.000000 0.349365 1.000000 0.000000 0.388733 1.000000 0.000000 0.429230 1.000000 0.000000 0.470642 1.000000 0.000000 0.511353 1.000000 0.000000 0.549683 1.000000 0.000000 0.585693 1.000000 0.000000 0.619263 1.000000 0.000000 0.650391 1.000000 0.000000 0.679565 1.000000 0.000000 0.707001 1.000000 0.000000 0.732941 1.000000 0.000000 0.757660 1.000000 0.000000 0.781311 1.000000 0.000000 0.804108 1.000000 0.000000 0.826324 1.000000 0.000000 0.848022 1.000000 0.000000 0.869537 1.000000 0.000000 0.891083 1.000000 0.000000 0.913025 1.000000 0.000000 0.935730 1.000000 0.000000 0.959961 1.000000 0.000000 0.031067 0.000183 0.058380 0.046448 0.000702 0.058655 0.062988 0.001221 0.058929 0.080963 0.001801 0.059174 0.100708 0.002380 0.059479 0.122559 0.002991 0.059784 0.146820 0.003632 0.060150 0.174072 0.004333 0.060455 0.204468 0.005035 0.060822 0.237762 0.005737 0.061157 0.273895 0.006500 0.061523 0.312561 0.007263 0.061920 0.353546 0.008057 0.062347 0.396423 0.008881 0.062744 0.440826 0.009705 0.063171 0.485962 0.010590 0.063568 0.529449 0.011444 0.064026 0.570038 0.012360 0.064484 0.607819 0.013275 0.064972 0.642792 0.014252 0.065430 0.675293 0.015259 0.065918 0.705688 0.016235 0.066406 0.734283 0.017273 0.066895 0.761353 0.018280 0.067444 0.787292 0.019348 0.067963 0.812256 0.020416 0.068481 0.836548 0.021515 0.069000 0.860413 0.022644 0.069611 0.884247 0.023743 0.070160 0.908356 0.024902 0.070709 0.933289 0.026062 0.071320 0.959961 0.027252 0.071869 0.031708 0.016205 0.056946 0.047150 0.016815 0.057220 0.063751 0.017395 0.057526 0.081818 0.017975 0.057800 0.101654 0.018646 0.058167 0.123596 0.019348 0.058502 0.148041 0.020050 0.058838 0.175354 0.020752 0.059204 0.205841 0.021545 0.059540 0.239288 0.022308 0.059906 0.275482 0.023132 0.060364 0.314270 0.023926 0.060760 0.355286 0.024811 0.061157 0.398193 0.025696 0.061615 0.442627 0.026581 0.062042 0.487640 0.027527 0.062500 0.530975 0.028442 0.062988 0.571411 0.029419 0.063446 0.609009 0.030457 0.063904 0.643860 0.031433 0.064392 0.676239 0.032471 0.064911 0.706451 0.033539 0.065430 0.734985 0.034607 0.065979 0.762024 0.035706 0.066467 0.787781 0.036865 0.067017 0.812683 0.037933 0.067566 0.836884 0.039124 0.068115 0.860718 0.040314 0.068695 0.884399 0.041534 0.069275 0.908478 0.042725 0.069824 0.933319 0.043976 0.070465 0.959961 0.045258 0.071014 0.032410 0.033142 0.055481 0.047913 0.033783 0.055756 0.064636 0.034454 0.056091 0.082733 0.035126 0.056427 0.102661 0.035858 0.056763 0.124725 0.036621 0.057129 0.149261 0.037384 0.057495 0.176758 0.038208 0.057831 0.207336 0.039032 0.058258 0.240906 0.039886 0.058655 0.277191 0.040741 0.059113 0.316040 0.041626 0.059509 0.357147 0.042572 0.059967 0.400085 0.043549 0.060394 0.444458 0.044495 0.060852 0.489410 0.045502 0.061340 0.532532 0.046539 0.061829 0.572784 0.047577 0.062286 0.610260 0.048676 0.062775 0.644958 0.049805 0.063293 0.677155 0.050873 0.063812 0.707275 0.052032 0.064331 0.735687 0.053162 0.064880 0.762604 0.054382 0.065430 0.788330 0.055573 0.065979 0.813141 0.056793 0.066498 0.837280 0.058044 0.067108 0.860962 0.059326 0.067657 0.884674 0.060577 0.068237 0.908630 0.061890 0.068848 0.933441 0.063263 0.069427 0.959961 0.064575 0.070038 0.033203 0.051331 0.053894 0.048737 0.052032 0.054230 0.065521 0.052795 0.054565 0.083740 0.053558 0.054901 0.103760 0.054382 0.055298 0.125946 0.055206 0.055634 0.150574 0.056061 0.056030 0.178253 0.056946 0.056458 0.208954 0.057861 0.056885 0.242584 0.058777 0.057251 0.279022 0.059753 0.057709 0.317902 0.060730 0.058167 0.359009 0.061768 0.058563 0.401978 0.062805 0.059082 0.446350 0.063904 0.059509 0.491241 0.065002 0.059998 0.534119 0.066101 0.060516 0.574219 0.067261 0.061035 0.611511 0.068420 0.061523 0.646027 0.069641 0.062042 0.678101 0.070801 0.062561 0.708099 0.072083 0.063080 0.736389 0.073334 0.063629 0.763184 0.074615 0.064178 0.788849 0.075928 0.064758 0.813538 0.077240 0.065308 0.837616 0.078613 0.065887 0.861298 0.079987 0.066498 0.884888 0.081360 0.067047 0.908813 0.082794 0.067657 0.933533 0.084259 0.068268 0.959961 0.085693 0.068848 0.034027 0.071075 0.052155 0.049652 0.071899 0.052521 0.066498 0.072723 0.052856 0.084808 0.073578 0.053253 0.104950 0.074524 0.053619 0.127197 0.075470 0.054047 0.152039 0.076385 0.054443 0.179779 0.077393 0.054840 0.210632 0.078369 0.055267 0.244415 0.079437 0.055725 0.280884 0.080536 0.056122 0.319885 0.081635 0.056580 0.361053 0.082764 0.057068 0.404053 0.083893 0.057526 0.448364 0.085083 0.057983 0.493134 0.086304 0.058533 0.535828 0.087524 0.059021 0.575714 0.088776 0.059509 0.612823 0.090088 0.060059 0.647156 0.091339 0.060547 0.679108 0.092743 0.061096 0.708954 0.094055 0.061646 0.737122 0.095459 0.062225 0.763824 0.096893 0.062744 0.789368 0.098328 0.063324 0.813995 0.099762 0.063873 0.838013 0.101257 0.064453 0.861572 0.102783 0.065033 0.885071 0.104279 0.065613 0.908966 0.105804 0.066254 0.933624 0.107361 0.066833 0.959961 0.108978 0.067413 0.034882 0.092865 0.050232 0.050598 0.093811 0.050598 0.067505 0.094727 0.050964 0.085938 0.095703 0.051392 0.106140 0.096771 0.051758 0.128571 0.097809 0.052155 0.153503 0.098877 0.052582 0.181427 0.100006 0.053009 0.212433 0.101135 0.053436 0.246246 0.102264 0.053894 0.282867 0.103516 0.054352 0.321930 0.104706 0.054779 0.363129 0.105957 0.055267 0.406067 0.107269 0.055756 0.450378 0.108551 0.056244 0.495056 0.109894 0.056732 0.537537 0.111267 0.057251 0.577240 0.112671 0.057739 0.614136 0.114105 0.058289 0.648315 0.115540 0.058807 0.680084 0.117004 0.059387 0.709808 0.118530 0.059906 0.737885 0.120026 0.060455 0.764435 0.121582 0.061035 0.789917 0.123169 0.061584 0.814453 0.124756 0.062164 0.838348 0.126404 0.062714 0.861877 0.128082 0.063354 0.885345 0.129730 0.063904 0.909119 0.131439 0.064484 0.933685 0.133118 0.065063 0.959961 0.134918 0.065704 0.035889 0.117126 0.048065 0.051636 0.118195 0.048431 0.068634 0.119293 0.048828 0.087097 0.120422 0.049194 0.107483 0.121552 0.049622 0.129944 0.122711 0.050018 0.155121 0.123932 0.050476 0.183136 0.125214 0.050873 0.214233 0.126465 0.051331 0.248291 0.127808 0.051788 0.284973 0.129150 0.052216 0.324005 0.130493 0.052734 0.365295 0.131897 0.053192 0.408203 0.133362 0.053680 0.452484 0.134766 0.054169 0.497009 0.136292 0.054657 0.539307 0.137817 0.055176 0.578796 0.139374 0.055725 0.615570 0.140961 0.056244 0.649506 0.142548 0.056732 0.681122 0.144226 0.057281 0.710724 0.145844 0.057861 0.738617 0.147522 0.058380 0.765106 0.149261 0.058960 0.790497 0.151001 0.059509 0.814941 0.152740 0.060089 0.838745 0.154602 0.060669 0.862183 0.156342 0.061249 0.885559 0.158234 0.061829 0.909271 0.160126 0.062408 0.933746 0.161987 0.062988 0.959961 0.163940 0.063599 0.036896 0.144409 0.045532 0.052704 0.145599 0.045898 0.069794 0.146881 0.046326 0.088379 0.148102 0.046722 0.108856 0.149414 0.047119 0.131470 0.150726 0.047546 0.156769 0.152161 0.047974 0.184998 0.153534 0.048431 0.216217 0.154999 0.048859 0.250305 0.156464 0.049316 0.287079 0.157990 0.049805 0.326233 0.159485 0.050232 0.367462 0.161102 0.050751 0.410431 0.162689 0.051239 0.454651 0.164307 0.051758 0.499023 0.165985 0.052246 0.541107 0.167633 0.052765 0.580414 0.169403 0.053253 0.616882 0.171204 0.053772 0.650696 0.172943 0.054321 0.682159 0.174744 0.054810 0.711609 0.176605 0.055359 0.739410 0.178497 0.055908 0.765747 0.180420 0.056458 0.791016 0.182373 0.057037 0.815430 0.184296 0.057587 0.839142 0.186249 0.058136 0.862488 0.188232 0.058685 0.885803 0.190277 0.059296 0.909424 0.192352 0.059845 0.933868 0.194397 0.060455 0.959961 0.196503 0.061035 0.037933 0.175262 0.042603 0.053864 0.176605 0.042999 0.070984 0.178009 0.043365 0.089691 0.179474 0.043793 0.110260 0.180939 0.044220 0.133057 0.182434 0.044647 0.158417 0.184021 0.045074 0.186859 0.185638 0.045532 0.218201 0.187225 0.045959 0.252411 0.188873 0.046417 0.289337 0.190582 0.046906 0.328461 0.192261 0.047363 0.369781 0.194031 0.047852 0.412689 0.195801 0.048340 0.456909 0.197632 0.048828 0.501099 0.199493 0.049316 0.542969 0.201324 0.049805 0.582001 0.203278 0.050354 0.618317 0.205200 0.050873 0.651917 0.207153 0.051361 0.683197 0.209137 0.051910 0.712524 0.211182 0.052460 0.740173 0.213196 0.052979 0.766449 0.215302 0.053528 0.791595 0.217346 0.054077 0.815857 0.219452 0.054596 0.839539 0.221619 0.055206 0.862854 0.223755 0.055756 0.886017 0.225952 0.056305 0.909576 0.228149 0.056915 0.933960 0.230347 0.057465 0.959961 0.232605 0.058044 0.039093 0.210052 0.039215 0.055054 0.211609 0.039612 0.072235 0.213165 0.040039 0.091064 0.214752 0.040436 0.111755 0.216431 0.040863 0.134705 0.218079 0.041290 0.160248 0.219818 0.041687 0.188812 0.221588 0.042175 0.220276 0.223328 0.042633 0.254639 0.225159 0.043060 0.291565 0.227051 0.043549 0.330811 0.228851 0.044006 0.372101 0.230774 0.044525 0.415039 0.232666 0.044983 0.459167 0.234680 0.045441 0.503174 0.236694 0.045990 0.544800 0.238708 0.046448 0.583618 0.240753 0.046997 0.619751 0.242859 0.047485 0.653107 0.244934 0.048065 0.684265 0.247101 0.048523 0.713470 0.249268 0.049072 0.740967 0.251404 0.049652 0.767151 0.253601 0.050171 0.792175 0.255829 0.050659 0.816345 0.258087 0.051270 0.839935 0.260315 0.051819 0.863098 0.262573 0.052368 0.886292 0.264893 0.052948 0.909760 0.267242 0.053528 0.934021 0.269531 0.054077 0.959961 0.271912 0.054657 0.040253 0.248688 0.035400 0.056274 0.250336 0.035797 0.073578 0.252045 0.036163 0.092529 0.253815 0.036621 0.113342 0.255615 0.037048 0.136383 0.257385 0.037476 0.162109 0.259277 0.037964 0.190826 0.261139 0.038361 0.222443 0.263062 0.038849 0.256866 0.265015 0.039276 0.293854 0.266968 0.039764 0.333191 0.268951 0.040222 0.374481 0.271027 0.040741 0.417419 0.273071 0.041229 0.461426 0.275177 0.041687 0.505280 0.277313 0.042236 0.546661 0.279449 0.042755 0.585297 0.281616 0.043243 0.621185 0.283844 0.043762 0.654419 0.286011 0.044281 0.685303 0.288239 0.044830 0.714417 0.290466 0.045349 0.741760 0.292755 0.045868 0.767822 0.295074 0.046448 0.792755 0.297394 0.046967 0.816833 0.299683 0.047546 0.840332 0.302063 0.048065 0.863434 0.304413 0.048645 0.886505 0.306793 0.049225 0.909882 0.309235 0.049774 0.934113 0.311615 0.050354 0.959961 0.314026 0.050934 0.041473 0.290771 0.031128 0.057556 0.292572 0.031555 0.074982 0.294373 0.031982 0.093994 0.296234 0.032410 0.114960 0.298157 0.032867 0.138123 0.300079 0.033295 0.164032 0.302032 0.033783 0.192871 0.304047 0.034210 0.224640 0.306061 0.034668 0.259186 0.308075 0.035156 0.296295 0.310120 0.035614 0.335602 0.312256 0.036102 0.376953 0.314423 0.036591 0.419861 0.316528 0.037079 0.463837 0.318756 0.037567 0.507446 0.320953 0.038116 0.548584 0.323151 0.038635 0.587006 0.325378 0.039124 0.622620 0.327667 0.039673 0.655670 0.329956 0.040192 0.686462 0.332245 0.040710 0.715271 0.334595 0.041260 0.742554 0.336945 0.041779 0.768524 0.339264 0.042358 0.793365 0.341614 0.042938 0.817352 0.343994 0.043457 0.840729 0.346436 0.044067 0.863770 0.348816 0.044586 0.886749 0.351257 0.045135 0.910095 0.353668 0.045746 0.934174 0.356110 0.046295 0.959961 0.358551 0.046906 0.042755 0.335907 0.026581 0.058899 0.337799 0.026978 0.076447 0.339691 0.027405 0.095551 0.341675 0.027893 0.116638 0.343658 0.028320 0.139954 0.345612 0.028778 0.165985 0.347748 0.029266 0.195007 0.349762 0.029694 0.226929 0.351837 0.030182 0.261566 0.353973 0.030640 0.298706 0.356018 0.031158 0.338135 0.358246 0.031647 0.379456 0.360474 0.032135 0.422302 0.362610 0.032684 0.466278 0.364868 0.033173 0.509644 0.367126 0.033722 0.550598 0.369385 0.034180 0.588684 0.371643 0.034729 0.624084 0.373993 0.035278 0.656891 0.376282 0.035828 0.687531 0.378662 0.036346 0.716248 0.380951 0.036926 0.743408 0.383362 0.037445 0.769196 0.385712 0.037994 0.793945 0.388123 0.038574 0.817841 0.390442 0.039154 0.841095 0.392914 0.039734 0.864075 0.395233 0.040314 0.887024 0.397644 0.040894 0.910248 0.400085 0.041443 0.934296 0.402557 0.042053 0.959961 0.404968 0.042603 0.044067 0.383698 0.021698 0.060303 0.385651 0.022156 0.077911 0.387573 0.022583 0.097168 0.389587 0.023041 0.118347 0.391632 0.023529 0.141815 0.393646 0.023987 0.168030 0.395752 0.024445 0.197174 0.397827 0.024933 0.229309 0.399933 0.025421 0.264008 0.402069 0.025970 0.301208 0.404205 0.026459 0.340668 0.406372 0.026947 0.381958 0.408630 0.027466 0.424774 0.410828 0.027985 0.468628 0.413055 0.028503 0.511810 0.415405 0.029053 0.552490 0.417603 0.029602 0.590363 0.419891 0.030121 0.625549 0.422150 0.030670 0.658173 0.424530 0.031219 0.688660 0.426819 0.031769 0.717224 0.429138 0.032349 0.744202 0.431519 0.032898 0.769897 0.433838 0.033539 0.794495 0.436188 0.034058 0.818298 0.438538 0.034698 0.841553 0.440948 0.035217 0.864441 0.443268 0.035828 0.887238 0.445648 0.036407 0.910431 0.447998 0.037018 0.934357 0.450348 0.037598 0.959961 0.452759 0.038239 0.045441 0.433502 0.016602 0.061798 0.435455 0.017059 0.079437 0.437439 0.017517 0.098816 0.439453 0.018005 0.120148 0.441467 0.018494 0.143768 0.443512 0.018951 0.170135 0.445587 0.019470 0.199463 0.447632 0.019958 0.231598 0.449768 0.020508 0.266510 0.451904 0.021027 0.303772 0.454041 0.021545 0.343231 0.456238 0.022034 0.384583 0.458405 0.022614 0.427368 0.460571 0.023132 0.471069 0.462799 0.023682 0.514008 0.464966 0.024231 0.554474 0.467224 0.024780 0.592102 0.469452 0.025360 0.627045 0.471710 0.025940 0.659485 0.473969 0.026520 0.689758 0.476257 0.027069 0.718140 0.478485 0.027679 0.745026 0.480743 0.028259 0.770630 0.483032 0.028870 0.795135 0.485229 0.029449 0.818817 0.487549 0.030060 0.841919 0.489807 0.030640 0.864746 0.492065 0.031281 0.887482 0.494324 0.031891 0.910583 0.496552 0.032471 0.934479 0.498840 0.033081 0.959961 0.501068 0.033722 0.046844 0.484558 0.011414 0.063263 0.486481 0.011902 0.081024 0.488373 0.012360 0.100525 0.490387 0.012878 0.121948 0.492340 0.013397 0.145782 0.494324 0.013885 0.172302 0.496338 0.014435 0.201752 0.498383 0.014954 0.234070 0.500397 0.015472 0.269012 0.502441 0.016052 0.306335 0.504486 0.016571 0.345886 0.506592 0.017120 0.387207 0.508636 0.017700 0.429932 0.510712 0.018280 0.473572 0.512756 0.018860 0.516266 0.514862 0.019440 0.556427 0.516937 0.020050 0.593811 0.518982 0.020630 0.628510 0.521057 0.021210 0.660767 0.523163 0.021851 0.690887 0.525238 0.022461 0.719086 0.527252 0.023071 0.745850 0.529297 0.023682 0.771301 0.531403 0.024353 0.795685 0.533447 0.024963 0.819275 0.535461 0.025604 0.842346 0.537476 0.026245 0.865051 0.539490 0.026855 0.887756 0.541534 0.027527 0.910706 0.543488 0.028168 0.934540 0.545471 0.028839 0.959961 0.547455 0.029480 0.048248 0.534882 0.006317 0.064758 0.536682 0.006836 0.082642 0.538391 0.007385 0.102234 0.540161 0.007935 0.123840 0.541931 0.008484 0.147797 0.543732 0.009033 0.174500 0.545532 0.009583 0.204132 0.547333 0.010162 0.236572 0.549133 0.010742 0.271576 0.550995 0.011353 0.308990 0.552765 0.011932 0.348541 0.554626 0.012573 0.389832 0.556488 0.013153 0.432495 0.558258 0.013794 0.476013 0.560089 0.014404 0.518494 0.561890 0.015015 0.558380 0.563751 0.015656 0.595490 0.565613 0.016296 0.630035 0.567352 0.016937 0.662018 0.569214 0.017578 0.691956 0.571014 0.018280 0.720062 0.572815 0.018921 0.746643 0.574615 0.019592 0.771973 0.576477 0.020264 0.796265 0.578186 0.020905 0.819824 0.580017 0.021576 0.842712 0.581726 0.022278 0.865356 0.583527 0.022949 0.887970 0.585266 0.023651 0.910889 0.586945 0.024323 0.934662 0.588745 0.024994 0.959961 0.590424 0.025696 0.049744 0.581573 0.001740 0.066315 0.583160 0.002319 0.084351 0.584747 0.002899 0.104065 0.586273 0.003510 0.125763 0.587799 0.004059 0.149872 0.589417 0.004669 0.176758 0.591034 0.005310 0.206543 0.592590 0.005920 0.239044 0.594208 0.006531 0.274231 0.595764 0.007172 0.311676 0.597382 0.007812 0.351227 0.598999 0.008484 0.392517 0.600555 0.009125 0.435150 0.602173 0.009766 0.478546 0.603760 0.010406 0.520721 0.605347 0.011108 0.560333 0.606964 0.011810 0.597260 0.608551 0.012451 0.631470 0.610107 0.013123 0.663300 0.611694 0.013855 0.693085 0.613281 0.014526 0.721008 0.614838 0.015198 0.747467 0.616394 0.015961 0.772675 0.617981 0.016663 0.796875 0.619507 0.017334 0.820282 0.621033 0.018066 0.843140 0.622559 0.018738 0.865692 0.624023 0.019501 0.888214 0.625580 0.020203 0.911041 0.627075 0.020874 0.934723 0.628571 0.021637 0.959961 0.630035 0.022339 0.051270 0.624664 0.000000 0.067902 0.626007 0.000000 0.086029 0.627380 0.000000 0.105865 0.628723 0.000000 0.127686 0.630066 0.000183 0.152008 0.631470 0.000824 0.179047 0.632843 0.001526 0.208984 0.634216 0.002167 0.241669 0.635590 0.002838 0.276886 0.636993 0.003510 0.314362 0.638367 0.004181 0.353912 0.639709 0.004883 0.395111 0.641113 0.005524 0.437805 0.642487 0.006287 0.481079 0.643860 0.006989 0.522919 0.645264 0.007690 0.562286 0.646606 0.008362 0.598938 0.647980 0.009094 0.632996 0.649323 0.009796 0.664612 0.650665 0.010559 0.694153 0.652069 0.011292 0.721954 0.653351 0.011993 0.748260 0.654724 0.012726 0.773346 0.656006 0.013489 0.797424 0.657349 0.014221 0.820740 0.658691 0.014984 0.843536 0.659973 0.015686 0.865997 0.661255 0.016418 0.888489 0.662598 0.017181 0.911224 0.663849 0.017914 0.934814 0.665100 0.018646 0.959961 0.666382 0.019379 0.052826 0.664062 0.000000 0.069550 0.665222 0.000000 0.087769 0.666412 0.000000 0.107758 0.667603 0.000000 0.129761 0.668732 0.000000 0.154175 0.669922 0.000000 0.181427 0.671143 0.000000 0.211456 0.672302 0.000000 0.244263 0.673492 0.000000 0.279541 0.674683 0.000336 0.317078 0.675842 0.001007 0.356659 0.677032 0.001770 0.397827 0.678192 0.002472 0.440430 0.679413 0.003204 0.483582 0.680573 0.003906 0.525177 0.681732 0.004700 0.564240 0.682922 0.005402 0.600647 0.684113 0.006165 0.634460 0.685272 0.006927 0.665863 0.686401 0.007690 0.695251 0.687592 0.008453 0.722870 0.688721 0.009216 0.749054 0.689850 0.009979 0.774017 0.690979 0.010681 0.798004 0.692139 0.011505 0.821259 0.693237 0.012238 0.843903 0.694366 0.013000 0.866302 0.695465 0.013763 0.888702 0.696564 0.014526 0.911377 0.697601 0.015289 0.934875 0.698700 0.016052 0.959961 0.699829 0.016876 0.054413 0.700226 0.000000 0.071259 0.701202 0.000000 0.089569 0.702209 0.000000 0.109650 0.703278 0.000000 0.131744 0.704254 0.000000 0.156372 0.705261 0.000000 0.183777 0.706299 0.000000 0.213989 0.707275 0.000000 0.246918 0.708313 0.000000 0.282166 0.709320 0.000000 0.319855 0.710358 0.000000 0.359406 0.711365 0.000000 0.400604 0.712341 0.000000 0.443054 0.713409 0.000549 0.486084 0.714417 0.001282 0.527374 0.715393 0.002045 0.566193 0.716400 0.002838 0.602325 0.717407 0.003662 0.635895 0.718384 0.004425 0.667114 0.719360 0.005188 0.696320 0.720367 0.005981 0.723846 0.721344 0.006744 0.749878 0.722321 0.007568 0.774750 0.723297 0.008301 0.798615 0.724243 0.009125 0.821716 0.725189 0.009888 0.844299 0.726135 0.010651 0.866608 0.727081 0.011444 0.888916 0.728058 0.012207 0.911560 0.728943 0.013031 0.934967 0.729858 0.013794 0.959961 0.730774 0.014587 0.055969 0.733612 0.000000 0.072906 0.734467 0.000000 0.091370 0.735352 0.000000 0.111572 0.736206 0.000000 0.133881 0.737061 0.000000 0.158630 0.737946 0.000000 0.186188 0.738831 0.000000 0.216522 0.739685 0.000000 0.249542 0.740570 0.000000 0.284943 0.741425 0.000000 0.322571 0.742310 0.000000 0.362122 0.743195 0.000000 0.403290 0.744080 0.000000 0.445709 0.744904 0.000000 0.488525 0.745789 0.000000 0.529602 0.746613 0.000000 0.568115 0.747498 0.000641 0.604004 0.748352 0.001434 0.637329 0.749176 0.002197 0.668365 0.750031 0.002991 0.697418 0.750854 0.003784 0.724731 0.751709 0.004608 0.750641 0.752533 0.005402 0.775360 0.753326 0.006195 0.799133 0.754181 0.006989 0.822205 0.754974 0.007782 0.844666 0.755768 0.008545 0.866882 0.756592 0.009399 0.889130 0.757385 0.010193 0.911743 0.758148 0.010956 0.935089 0.758911 0.011780 0.959961 0.759644 0.012543 0.057648 0.764740 0.000000 0.074646 0.765442 0.000000 0.093201 0.766205 0.000000 0.113556 0.766968 0.000000 0.135956 0.767700 0.000000 0.160889 0.768433 0.000000 0.188599 0.769165 0.000000 0.219086 0.769897 0.000000 0.252167 0.770691 0.000000 0.287659 0.771423 0.000000 0.325348 0.772156 0.000000 0.364899 0.772919 0.000000 0.406036 0.773621 0.000000 0.448364 0.774384 0.000000 0.491028 0.775116 0.000000 0.531738 0.775818 0.000000 0.570038 0.776581 0.000000 0.605682 0.777283 0.000000 0.638824 0.778015 0.000244 0.669586 0.778717 0.001068 0.698425 0.779419 0.001862 0.725647 0.780121 0.002686 0.751434 0.780853 0.003540 0.776031 0.781525 0.004303 0.799683 0.782196 0.005127 0.822662 0.782928 0.005981 0.845062 0.783569 0.006744 0.867218 0.784241 0.007538 0.889343 0.784943 0.008362 0.911865 0.785583 0.009155 0.935150 0.786255 0.009949 0.959961 0.786865 0.010712 0.059296 0.793945 0.000000 0.076447 0.794556 0.000000 0.095062 0.795166 0.000000 0.115540 0.795868 0.000000 0.138123 0.796448 0.000000 0.163208 0.797089 0.000000 0.191040 0.797699 0.000000 0.221680 0.798340 0.000000 0.254883 0.799011 0.000000 0.290436 0.799591 0.000000 0.328156 0.800232 0.000000 0.367676 0.800873 0.000000 0.408722 0.801483 0.000000 0.450989 0.802124 0.000000 0.493439 0.802765 0.000000 0.533936 0.803345 0.000000 0.571869 0.803955 0.000000 0.607300 0.804596 0.000000 0.640228 0.805206 0.000000 0.670776 0.805817 0.000000 0.699493 0.806366 0.000122 0.726532 0.807007 0.000946 0.752197 0.807587 0.001801 0.776672 0.808136 0.002625 0.800262 0.808777 0.003448 0.823059 0.809326 0.004272 0.845428 0.809906 0.005096 0.867493 0.810425 0.005890 0.889587 0.811005 0.006683 0.912018 0.811554 0.007477 0.935211 0.812103 0.008270 0.959961 0.812592 0.009094 0.061035 0.821564 0.000000 0.078156 0.822083 0.000000 0.096954 0.822632 0.000000 0.117523 0.823181 0.000000 0.140289 0.823700 0.000000 0.165558 0.824219 0.000000 0.193542 0.824799 0.000000 0.224274 0.825287 0.000000 0.257599 0.825836 0.000000 0.293152 0.826385 0.000000 0.330872 0.826904 0.000000 0.370453 0.827423 0.000000 0.411499 0.827942 0.000000 0.453644 0.828491 0.000000 0.495880 0.828979 0.000000 0.536072 0.829498 0.000000 0.573792 0.830017 0.000000 0.608948 0.830536 0.000000 0.641602 0.831055 0.000000 0.672028 0.831573 0.000000 0.700562 0.832062 0.000000 0.727448 0.832550 0.000000 0.752930 0.833008 0.000275 0.777344 0.833527 0.001099 0.800812 0.834015 0.001923 0.823517 0.834473 0.002716 0.845795 0.834961 0.003540 0.867798 0.835419 0.004333 0.889801 0.835876 0.005157 0.912109 0.836304 0.005981 0.935303 0.836792 0.006775 0.959961 0.837219 0.007538 0.062683 0.848022 0.000000 0.080017 0.848419 0.000000 0.098877 0.848877 0.000000 0.119598 0.849335 0.000000 0.142456 0.849792 0.000000 0.167877 0.850220 0.000000 0.196045 0.850647 0.000000 0.226898 0.851105 0.000000 0.260284 0.851532 0.000000 0.295929 0.851990 0.000000 0.333679 0.852386 0.000000 0.373169 0.852875 0.000000 0.414154 0.853271 0.000000 0.456207 0.853729 0.000000 0.498199 0.854156 0.000000 0.538177 0.854553 0.000000 0.575653 0.855011 0.000000 0.610535 0.855438 0.000000 0.642975 0.855865 0.000000 0.673187 0.856293 0.000000 0.701538 0.856659 0.000000 0.728333 0.857086 0.000000 0.753723 0.857452 0.000000 0.777954 0.857880 0.000000 0.801300 0.858276 0.000488 0.823975 0.858673 0.001282 0.846130 0.859039 0.002106 0.868073 0.859436 0.002930 0.890015 0.859802 0.003723 0.912292 0.860199 0.004547 0.935394 0.860535 0.005310 0.959961 0.860931 0.006073 0.064423 0.873474 0.000000 0.081818 0.873840 0.000000 0.100769 0.874207 0.000000 0.121613 0.874542 0.000000 0.144653 0.874939 0.000000 0.170258 0.875275 0.000000 0.198578 0.875671 0.000000 0.229523 0.876007 0.000000 0.262970 0.876373 0.000000 0.298645 0.876740 0.000000 0.336395 0.877075 0.000000 0.375916 0.877441 0.000000 0.416809 0.877808 0.000000 0.458771 0.878143 0.000000 0.500641 0.878479 0.000000 0.540314 0.878845 0.000000 0.577454 0.879181 0.000000 0.612091 0.879517 0.000000 0.644348 0.879883 0.000000 0.674347 0.880188 0.000000 0.702545 0.880554 0.000000 0.729126 0.880859 0.000000 0.754395 0.881195 0.000000 0.778564 0.881500 0.000000 0.801819 0.881836 0.000000 0.824402 0.882141 0.000000 0.846497 0.882446 0.000732 0.868347 0.882782 0.001556 0.890228 0.883057 0.002350 0.912415 0.883362 0.003143 0.935425 0.883636 0.003906 0.959961 0.883942 0.004669 0.066162 0.898346 0.000000 0.083649 0.898651 0.000000 0.102753 0.898926 0.000000 0.123688 0.899261 0.000000 0.146881 0.899506 0.000000 0.172638 0.899811 0.000000 0.201080 0.900085 0.000000 0.232178 0.900391 0.000000 0.265686 0.900665 0.000000 0.301392 0.900940 0.000000 0.339172 0.901215 0.000000 0.378632 0.901489 0.000000 0.419464 0.901764 0.000000 0.461334 0.902069 0.000000 0.502930 0.902313 0.000000 0.542297 0.902618 0.000000 0.579254 0.902832 0.000000 0.613617 0.903168 0.000000 0.645691 0.903412 0.000000 0.675537 0.903656 0.000000 0.703522 0.903931 0.000000 0.729980 0.904175 0.000000 0.755096 0.904449 0.000000 0.779175 0.904694 0.000000 0.802338 0.904968 0.000000 0.824799 0.905182 0.000000 0.846832 0.905396 0.000000 0.868622 0.905670 0.000214 0.890411 0.905884 0.001007 0.912537 0.906128 0.001801 0.935486 0.906342 0.002563 0.959961 0.906555 0.003326 0.067871 0.922943 0.000000 0.085510 0.923187 0.000000 0.104736 0.923431 0.000000 0.125824 0.923645 0.000000 0.149109 0.923828 0.000000 0.175049 0.924042 0.000000 0.203613 0.924255 0.000000 0.234741 0.924469 0.000000 0.268311 0.924713 0.000000 0.304138 0.924896 0.000000 0.341888 0.925079 0.000000 0.381287 0.925293 0.000000 0.422119 0.925568 0.000000 0.463837 0.925751 0.000000 0.505219 0.925934 0.000000 0.544312 0.926117 0.000000 0.580994 0.926361 0.000000 0.615173 0.926575 0.000000 0.646973 0.926758 0.000000 0.676575 0.926971 0.000000 0.704437 0.927124 0.000000 0.730804 0.927338 0.000000 0.755829 0.927490 0.000000 0.779724 0.927704 0.000000 0.802795 0.927917 0.000000 0.825195 0.928040 0.000000 0.847137 0.928223 0.000000 0.868866 0.928436 0.000000 0.890625 0.928589 0.000000 0.912659 0.928741 0.000397 0.935547 0.928894 0.001129 0.959961 0.929077 0.001862 0.069641 0.947693 0.000000 0.087372 0.947845 0.000000 0.106659 0.947968 0.000000 0.127869 0.948151 0.000000 0.151337 0.948303 0.000000 0.177429 0.948456 0.000000 0.206085 0.948578 0.000000 0.237366 0.948730 0.000000 0.270996 0.948883 0.000000 0.306824 0.949005 0.000000 0.344574 0.949158 0.000000 0.384003 0.949280 0.000000 0.424744 0.949432 0.000000 0.466309 0.949615 0.000000 0.507416 0.949768 0.000000 0.546265 0.949860 0.000000 0.582703 0.950012 0.000000 0.616608 0.950134 0.000000 0.648224 0.950287 0.000000 0.677704 0.950378 0.000000 0.705383 0.950470 0.000000 0.731567 0.950623 0.000000 0.756470 0.950745 0.000000 0.780304 0.950867 0.000000 0.803284 0.951019 0.000000 0.825623 0.951141 0.000000 0.847473 0.951233 0.000000 0.869080 0.951355 0.000000 0.890808 0.951477 0.000000 0.912781 0.951599 0.000000 0.935638 0.951721 0.000000 0.959961 0.951782 0.000336 0.071442 0.973083 0.000000 0.089203 0.973145 0.000000 0.108643 0.973267 0.000000 0.129944 0.973328 0.000000 0.153625 0.973419 0.000000 0.179779 0.973480 0.000000 0.208649 0.973541 0.000000 0.239990 0.973663 0.000000 0.273651 0.973694 0.000000 0.309540 0.973816 0.000000 0.347229 0.973877 0.000000 0.386627 0.973969 0.000000 0.427216 0.974030 0.000000 0.468750 0.974091 0.000000 0.509613 0.974182 0.000000 0.548218 0.974213 0.000000 0.584381 0.974304 0.000000 0.618042 0.974365 0.000000 0.649414 0.974426 0.000000 0.678741 0.974518 0.000000 0.706299 0.974548 0.000000 0.732361 0.974609 0.000000 0.757111 0.974701 0.000000 0.780914 0.974731 0.000000 0.803741 0.974823 0.000000 0.825958 0.974854 0.000000 0.847778 0.974976 0.000000 0.869385 0.975006 0.000000 0.890930 0.975067 0.000000 0.912933 0.975098 0.000000 0.935699 0.975189 0.000000 0.959961 0.975220 0.000000 0.073181 1.000000 0.000000 0.091095 1.000000 0.000000 0.110626 1.000000 0.000000 0.132080 1.000000 0.000000 0.155823 1.000000 0.000000 0.182159 1.000000 0.000000 0.211121 1.000000 0.000000 0.242554 1.000000 0.000000 0.276276 1.000000 0.000000 0.312164 1.000000 0.000000 0.349915 1.000000 0.000000 0.389160 1.000000 0.000000 0.429810 1.000000 0.000000 0.471130 1.000000 0.000000 0.511780 1.000000 0.000000 0.550049 1.000000 0.000000 0.585968 1.000000 0.000000 0.619446 1.000000 0.000000 0.650665 1.000000 0.000000 0.679749 1.000000 0.000000 0.707153 1.000000 0.000000 0.733063 1.000000 0.000000 0.757751 1.000000 0.000000 0.781403 1.000000 0.000000 0.804199 1.000000 0.000000 0.826385 1.000000 0.000000 0.848083 1.000000 0.000000 0.869568 1.000000 0.000000 0.891113 1.000000 0.000000 0.913055 1.000000 0.000000 0.935730 1.000000 0.000000 0.959961 1.000000 0.000000 0.031189 0.000366 0.075806 0.046570 0.000885 0.076080 0.063141 0.001434 0.076385 0.081146 0.002014 0.076691 0.100891 0.002594 0.076996 0.122711 0.003235 0.077332 0.147064 0.003876 0.077698 0.174347 0.004547 0.078064 0.204651 0.005249 0.078430 0.238068 0.006012 0.078796 0.274139 0.006744 0.079193 0.312866 0.007568 0.079620 0.353851 0.008362 0.080017 0.396729 0.009155 0.080505 0.441162 0.010040 0.080933 0.486298 0.010925 0.081421 0.529724 0.011780 0.081879 0.570312 0.012726 0.082367 0.608063 0.013672 0.082855 0.643005 0.014618 0.083374 0.675476 0.015594 0.083893 0.705811 0.016602 0.084412 0.734406 0.017609 0.084961 0.761475 0.018646 0.085571 0.787384 0.019745 0.086090 0.812317 0.020813 0.086639 0.836639 0.021942 0.087280 0.860504 0.023010 0.087830 0.884247 0.024170 0.088470 0.908356 0.025360 0.089050 0.933289 0.026489 0.089661 0.959961 0.027679 0.090332 0.031830 0.016418 0.074432 0.047272 0.016998 0.074768 0.063904 0.017609 0.075043 0.082001 0.018250 0.075378 0.101837 0.018890 0.075745 0.123810 0.019592 0.076080 0.148254 0.020325 0.076447 0.175629 0.021027 0.076843 0.206085 0.021790 0.077240 0.239594 0.022583 0.077667 0.275787 0.023407 0.078064 0.314545 0.024261 0.078552 0.355621 0.025116 0.078949 0.398529 0.026001 0.079407 0.442963 0.026917 0.079895 0.488007 0.027863 0.080383 0.531250 0.028809 0.080872 0.571686 0.029785 0.081360 0.609253 0.030792 0.081909 0.644073 0.031799 0.082428 0.676392 0.032867 0.082947 0.706604 0.033905 0.083527 0.735077 0.035004 0.084076 0.762085 0.036133 0.084656 0.787872 0.037231 0.085236 0.812775 0.038391 0.085846 0.836945 0.039581 0.086456 0.860779 0.040741 0.087036 0.884460 0.041962 0.087616 0.908508 0.043182 0.088257 0.933380 0.044434 0.088898 0.959961 0.045715 0.089569 0.032562 0.033386 0.072998 0.048065 0.034027 0.073334 0.064758 0.034698 0.073669 0.082947 0.035431 0.074005 0.102844 0.036163 0.074371 0.124939 0.036896 0.074768 0.149567 0.037689 0.075195 0.177032 0.038452 0.075562 0.207642 0.039337 0.076019 0.241180 0.040222 0.076447 0.277557 0.041046 0.076843 0.316345 0.041992 0.077332 0.357452 0.042969 0.077820 0.400391 0.043884 0.078247 0.444794 0.044891 0.078796 0.489777 0.045898 0.079285 0.532867 0.046936 0.079773 0.573059 0.048004 0.080322 0.610504 0.049042 0.080841 0.645111 0.050171 0.081390 0.677338 0.051331 0.081970 0.707428 0.052429 0.082520 0.735779 0.053619 0.083099 0.762695 0.054810 0.083679 0.788391 0.056000 0.084259 0.813202 0.057251 0.084869 0.837341 0.058502 0.085480 0.861023 0.059753 0.086121 0.884705 0.061066 0.086700 0.908661 0.062347 0.087372 0.933441 0.063751 0.088013 0.959961 0.065125 0.088654 0.033325 0.051605 0.071442 0.048920 0.052307 0.071808 0.065674 0.053070 0.072174 0.083923 0.053864 0.072540 0.103973 0.054657 0.072937 0.126160 0.055511 0.073334 0.150879 0.056396 0.073761 0.178497 0.057281 0.074188 0.209290 0.058167 0.074585 0.242950 0.059143 0.075073 0.279358 0.060089 0.075531 0.318237 0.061127 0.076019 0.359406 0.062164 0.076508 0.402313 0.063171 0.076996 0.446686 0.064301 0.077515 0.491547 0.065399 0.078033 0.534485 0.066498 0.078583 0.574524 0.067688 0.079102 0.611786 0.068817 0.079651 0.646271 0.070068 0.080200 0.678284 0.071259 0.080780 0.708252 0.072510 0.081329 0.736481 0.073822 0.081909 0.763336 0.075104 0.082520 0.788940 0.076385 0.083130 0.813629 0.077759 0.083740 0.837677 0.079132 0.084351 0.861359 0.080475 0.084961 0.884949 0.081909 0.085602 0.908844 0.083282 0.086273 0.933533 0.084778 0.086884 0.959961 0.086243 0.087585 0.034210 0.071381 0.069763 0.049835 0.072205 0.070160 0.066650 0.073059 0.070526 0.085022 0.073944 0.070892 0.105103 0.074860 0.071320 0.127441 0.075806 0.071747 0.152283 0.076782 0.072174 0.180115 0.077759 0.072632 0.210938 0.078796 0.073120 0.244751 0.079895 0.073547 0.281281 0.080933 0.074036 0.320221 0.082062 0.074554 0.361420 0.083191 0.075043 0.404358 0.084351 0.075531 0.448700 0.085541 0.076080 0.493439 0.086731 0.076599 0.536133 0.087982 0.077148 0.576019 0.089264 0.077667 0.613037 0.090546 0.078247 0.647339 0.091858 0.078796 0.679291 0.093231 0.079376 0.709106 0.094574 0.079956 0.737213 0.096008 0.080536 0.763977 0.097412 0.081146 0.789459 0.098816 0.081757 0.814117 0.100281 0.082397 0.838074 0.101776 0.082977 0.861633 0.103333 0.083618 0.885132 0.104828 0.084290 0.908966 0.106354 0.084900 0.933624 0.108002 0.085571 0.959961 0.109589 0.086212 0.035095 0.093231 0.067902 0.050781 0.094116 0.068268 0.067688 0.095123 0.068695 0.086151 0.096100 0.069092 0.106415 0.097137 0.069550 0.128845 0.098206 0.069977 0.153839 0.099304 0.070404 0.181763 0.100372 0.070862 0.212738 0.101562 0.071350 0.246674 0.102753 0.071838 0.283264 0.103943 0.072327 0.322296 0.105164 0.072784 0.363495 0.106415 0.073303 0.406433 0.107758 0.073822 0.450836 0.109070 0.074402 0.495361 0.110413 0.074890 0.537903 0.111786 0.075470 0.577545 0.113220 0.075989 0.614380 0.114624 0.076599 0.648560 0.116089 0.077179 0.680267 0.117554 0.077728 0.709991 0.119049 0.078308 0.738007 0.120605 0.078918 0.764587 0.122162 0.079529 0.790009 0.123749 0.080109 0.814575 0.125366 0.080750 0.838440 0.126984 0.081360 0.861938 0.128662 0.082001 0.885376 0.130371 0.082642 0.909119 0.132050 0.083252 0.933685 0.133789 0.083923 0.959961 0.135590 0.084564 0.036102 0.117523 0.065765 0.051819 0.118561 0.066132 0.068848 0.119690 0.066589 0.087372 0.120850 0.067017 0.107697 0.121979 0.067444 0.130280 0.123169 0.067871 0.155396 0.124390 0.068390 0.183502 0.125641 0.068817 0.214630 0.126984 0.069305 0.248657 0.128296 0.069794 0.285339 0.129639 0.070282 0.324432 0.131042 0.070770 0.365631 0.132416 0.071289 0.408630 0.133881 0.071838 0.452911 0.135345 0.072388 0.497375 0.136841 0.072906 0.539612 0.138397 0.073486 0.579132 0.139923 0.074036 0.615723 0.141541 0.074585 0.649750 0.143127 0.075165 0.681305 0.144806 0.075745 0.710846 0.146484 0.076355 0.738770 0.148163 0.076935 0.765228 0.149872 0.077515 0.790588 0.151642 0.078156 0.815002 0.153442 0.078796 0.838837 0.155243 0.079376 0.862274 0.157074 0.079956 0.885651 0.158936 0.080627 0.909302 0.160767 0.081268 0.933807 0.162689 0.081909 0.959961 0.164642 0.082550 0.037079 0.144836 0.063293 0.052917 0.146027 0.063721 0.070007 0.147278 0.064117 0.088623 0.148621 0.064545 0.109070 0.149902 0.065033 0.131744 0.151245 0.065460 0.157043 0.152649 0.065948 0.185303 0.154053 0.066406 0.216583 0.155518 0.066925 0.250671 0.156982 0.067413 0.287476 0.158539 0.067871 0.326691 0.160126 0.068420 0.367889 0.161652 0.068909 0.410828 0.163300 0.069458 0.455078 0.164948 0.070007 0.499420 0.166565 0.070557 0.541443 0.168335 0.071075 0.580688 0.170044 0.071655 0.617157 0.171814 0.072235 0.650909 0.173645 0.072815 0.682312 0.175476 0.073364 0.711761 0.177307 0.073914 0.739532 0.179199 0.074554 0.765900 0.181061 0.075134 0.791138 0.183044 0.075745 0.815491 0.185028 0.076355 0.839203 0.186981 0.076935 0.862549 0.188995 0.077576 0.885834 0.191040 0.078217 0.909454 0.193085 0.078827 0.933868 0.195221 0.079437 0.959961 0.197296 0.080048 0.038208 0.175751 0.060425 0.054077 0.177155 0.060822 0.071228 0.178558 0.061279 0.089935 0.180023 0.061737 0.110565 0.181488 0.062195 0.133331 0.183044 0.062653 0.158783 0.184601 0.063110 0.187164 0.186157 0.063629 0.218567 0.187805 0.064087 0.252808 0.189484 0.064575 0.289673 0.191193 0.065063 0.328888 0.192932 0.065582 0.370178 0.194672 0.066071 0.413086 0.196472 0.066650 0.457306 0.198303 0.067169 0.501495 0.200134 0.067688 0.543304 0.202057 0.068268 0.582306 0.203979 0.068848 0.618591 0.205902 0.069366 0.652191 0.207886 0.069916 0.683380 0.209839 0.070526 0.712677 0.211914 0.071106 0.740326 0.213959 0.071686 0.766571 0.215973 0.072266 0.791718 0.218140 0.072906 0.815979 0.220245 0.073456 0.839600 0.222382 0.074097 0.862885 0.224579 0.074707 0.886108 0.226776 0.075317 0.909607 0.228943 0.075928 0.933990 0.231171 0.076538 0.959961 0.233429 0.077209 0.039276 0.210602 0.057098 0.055267 0.212158 0.057526 0.072510 0.213745 0.057953 0.091339 0.215393 0.058411 0.112030 0.217010 0.058868 0.135010 0.218719 0.059357 0.160583 0.220428 0.059845 0.189117 0.222198 0.060303 0.220673 0.223999 0.060791 0.255005 0.225800 0.061279 0.291962 0.227692 0.061768 0.331238 0.229584 0.062317 0.372528 0.231476 0.062836 0.415497 0.233459 0.063324 0.459595 0.235443 0.063904 0.503601 0.237427 0.064453 0.545166 0.239502 0.065002 0.583984 0.241547 0.065552 0.619995 0.243561 0.066101 0.653351 0.245728 0.066681 0.684479 0.247864 0.067261 0.713623 0.250031 0.067810 0.741089 0.252228 0.068451 0.767242 0.254395 0.069000 0.792267 0.256653 0.069611 0.816467 0.258911 0.070221 0.839996 0.261139 0.070801 0.863220 0.263458 0.071442 0.886383 0.265778 0.072021 0.909760 0.268066 0.072662 0.934021 0.270416 0.073303 0.959961 0.272766 0.073883 0.040497 0.249298 0.053314 0.056519 0.250977 0.053772 0.073883 0.252686 0.054230 0.092804 0.254486 0.054688 0.113617 0.256256 0.055115 0.136719 0.258118 0.055603 0.162445 0.259949 0.056091 0.191193 0.261841 0.056580 0.222870 0.263794 0.057068 0.257294 0.265717 0.057587 0.294342 0.267731 0.058105 0.333618 0.269714 0.058624 0.374908 0.271759 0.059113 0.417847 0.273834 0.059692 0.461914 0.275970 0.060242 0.505707 0.278076 0.060791 0.547028 0.280243 0.061340 0.585602 0.282379 0.061859 0.621460 0.284607 0.062469 0.654633 0.286835 0.063019 0.685577 0.289062 0.063599 0.714539 0.291351 0.064178 0.741943 0.293640 0.064789 0.767914 0.295929 0.065369 0.792847 0.298218 0.065979 0.816925 0.300598 0.066559 0.840393 0.302917 0.067169 0.863525 0.305328 0.067810 0.886536 0.307678 0.068420 0.909912 0.310028 0.069061 0.934113 0.312500 0.069672 0.959961 0.314880 0.070251 0.041718 0.291412 0.049194 0.057831 0.293243 0.049591 0.075226 0.295074 0.050079 0.094299 0.296967 0.050568 0.115234 0.298828 0.050995 0.138519 0.300781 0.051514 0.164398 0.302734 0.052002 0.193268 0.304749 0.052490 0.225067 0.306793 0.052979 0.259613 0.308838 0.053497 0.296722 0.310944 0.054016 0.336121 0.313110 0.054535 0.377380 0.315186 0.055115 0.420349 0.317352 0.055634 0.464264 0.319489 0.056213 0.507904 0.321716 0.056763 0.548981 0.323975 0.057281 0.587311 0.326202 0.057861 0.622894 0.328491 0.058472 0.655945 0.330811 0.059052 0.686646 0.333099 0.059601 0.715485 0.335419 0.060181 0.742706 0.337769 0.060791 0.768646 0.340118 0.061371 0.793488 0.342499 0.061981 0.817444 0.344940 0.062622 0.840820 0.347321 0.063232 0.863831 0.349701 0.063873 0.886810 0.352081 0.064484 0.910126 0.354523 0.065063 0.934235 0.357025 0.065735 0.959961 0.359375 0.066376 0.042999 0.336609 0.044678 0.059143 0.338470 0.045105 0.076721 0.340454 0.045593 0.095856 0.342377 0.046051 0.116913 0.344391 0.046539 0.140320 0.346405 0.047089 0.166412 0.348419 0.047546 0.195435 0.350494 0.048035 0.227386 0.352631 0.048584 0.262024 0.354706 0.049133 0.299194 0.356842 0.049652 0.338562 0.359100 0.050201 0.379913 0.361237 0.050781 0.422791 0.363434 0.051331 0.466644 0.365692 0.051849 0.510071 0.367981 0.052399 0.550934 0.370270 0.052979 0.589020 0.372498 0.053589 0.624359 0.374817 0.054169 0.657166 0.377167 0.054779 0.687744 0.379486 0.055328 0.716461 0.381805 0.055939 0.743561 0.384216 0.056580 0.769318 0.386566 0.057159 0.794067 0.388977 0.057800 0.817932 0.391327 0.058411 0.841187 0.393768 0.059021 0.864166 0.396210 0.059631 0.887054 0.398529 0.060272 0.910278 0.400970 0.060913 0.934296 0.403442 0.061554 0.959961 0.405853 0.062195 0.044312 0.384399 0.039886 0.060577 0.386322 0.040344 0.078186 0.388397 0.040802 0.097473 0.390350 0.041321 0.118713 0.392365 0.041840 0.142212 0.394440 0.042328 0.168427 0.396484 0.042877 0.197632 0.398560 0.043427 0.229706 0.400726 0.043976 0.264465 0.402863 0.044464 0.301727 0.405060 0.045044 0.341187 0.407257 0.045593 0.382446 0.409424 0.046112 0.425293 0.411682 0.046722 0.469055 0.413879 0.047302 0.512268 0.416168 0.047882 0.552856 0.418457 0.048462 0.590698 0.420715 0.049042 0.625854 0.423004 0.049683 0.658447 0.425385 0.050262 0.688843 0.427673 0.050873 0.717407 0.430054 0.051514 0.744354 0.432373 0.052124 0.770020 0.434662 0.052734 0.794647 0.437042 0.053375 0.818390 0.439392 0.054016 0.841644 0.441803 0.054657 0.864471 0.444153 0.055298 0.887268 0.446503 0.055939 0.910461 0.448883 0.056580 0.934387 0.451233 0.057281 0.959961 0.453613 0.057861 0.045685 0.434174 0.034821 0.062012 0.436188 0.035339 0.079742 0.438171 0.035858 0.099152 0.440125 0.036377 0.120483 0.442200 0.036896 0.144165 0.444244 0.037445 0.170532 0.446320 0.037964 0.199921 0.448456 0.038513 0.232117 0.450623 0.039093 0.266937 0.452667 0.039642 0.304230 0.454865 0.040222 0.343689 0.456970 0.040802 0.385040 0.459198 0.041382 0.427887 0.461426 0.041962 0.471527 0.463593 0.042572 0.514465 0.465851 0.043152 0.554810 0.468079 0.043793 0.592407 0.470276 0.044434 0.627350 0.472565 0.045013 0.659698 0.474823 0.045654 0.689941 0.477020 0.046295 0.718323 0.479309 0.046906 0.745148 0.481567 0.047546 0.770721 0.483826 0.048218 0.795227 0.486115 0.048859 0.818909 0.488342 0.049500 0.842010 0.490631 0.050171 0.864838 0.492920 0.050842 0.887543 0.495117 0.051514 0.910583 0.497406 0.052155 0.934479 0.499695 0.052795 0.959961 0.501892 0.053497 0.047089 0.485229 0.029724 0.063507 0.487213 0.030212 0.081360 0.489136 0.030762 0.100800 0.491028 0.031342 0.122345 0.493103 0.031891 0.146179 0.495087 0.032471 0.172729 0.497070 0.032990 0.202209 0.499146 0.033600 0.234558 0.501160 0.034180 0.269501 0.503204 0.034760 0.306854 0.505280 0.035400 0.346344 0.507324 0.035980 0.387665 0.509399 0.036591 0.430450 0.511475 0.037201 0.473969 0.513519 0.037842 0.516663 0.515594 0.038513 0.556793 0.517700 0.039124 0.594116 0.519745 0.039764 0.628815 0.521820 0.040436 0.661041 0.523895 0.041077 0.691071 0.525970 0.041748 0.719269 0.528046 0.042450 0.745972 0.530060 0.043121 0.771423 0.532104 0.043793 0.795807 0.534149 0.044495 0.819397 0.536194 0.045135 0.842438 0.538208 0.045837 0.865112 0.540283 0.046570 0.887817 0.542236 0.047241 0.910767 0.544281 0.047974 0.934570 0.546234 0.048676 0.959961 0.548218 0.049377 0.048523 0.535492 0.024689 0.065063 0.537262 0.025299 0.082977 0.539062 0.025909 0.102570 0.540802 0.026459 0.124176 0.542603 0.027069 0.148193 0.544434 0.027679 0.174927 0.546204 0.028259 0.204559 0.548004 0.028931 0.237061 0.549835 0.029572 0.272064 0.551605 0.030182 0.309540 0.553467 0.030853 0.348999 0.555267 0.031494 0.390320 0.557098 0.032135 0.432983 0.558960 0.032837 0.476471 0.560760 0.033478 0.518921 0.562592 0.034180 0.558746 0.564392 0.034882 0.595825 0.566254 0.035553 0.630310 0.568054 0.036255 0.662292 0.569916 0.036957 0.692169 0.571655 0.037689 0.720276 0.573547 0.038391 0.746796 0.575256 0.039124 0.772095 0.577087 0.039825 0.796356 0.578857 0.040527 0.819855 0.580627 0.041260 0.842834 0.582397 0.041992 0.865387 0.584198 0.042755 0.888000 0.585876 0.043488 0.910919 0.587646 0.044220 0.934692 0.589386 0.044983 0.959961 0.591095 0.045685 0.050049 0.582184 0.020264 0.066620 0.583710 0.020905 0.084656 0.585297 0.021515 0.104340 0.586853 0.022125 0.126129 0.588409 0.022797 0.150269 0.590057 0.023438 0.177185 0.591583 0.024078 0.206970 0.593170 0.024750 0.239594 0.594757 0.025452 0.274719 0.596344 0.026154 0.312195 0.597931 0.026825 0.351715 0.599548 0.027496 0.393005 0.601135 0.028229 0.435638 0.602753 0.028931 0.479004 0.604309 0.029663 0.521179 0.605927 0.030396 0.560730 0.607544 0.031128 0.597565 0.609100 0.031830 0.631805 0.610718 0.032593 0.663544 0.612274 0.033325 0.693268 0.613831 0.034088 0.721161 0.615448 0.034790 0.747620 0.616974 0.035553 0.772827 0.618561 0.036316 0.796997 0.620087 0.037079 0.820343 0.621582 0.037842 0.843231 0.623108 0.038605 0.865753 0.624664 0.039398 0.888245 0.626129 0.040161 0.911072 0.627655 0.040924 0.934723 0.629120 0.041687 0.959961 0.630585 0.042450 0.051575 0.625183 0.016296 0.068237 0.626556 0.016937 0.086365 0.627899 0.017670 0.106201 0.629242 0.018311 0.128143 0.630615 0.018982 0.152435 0.631989 0.019714 0.179504 0.633362 0.020386 0.209473 0.634735 0.021149 0.242126 0.636108 0.021820 0.277344 0.637482 0.022552 0.314911 0.638885 0.023315 0.354431 0.640228 0.024017 0.395660 0.641632 0.024780 0.438293 0.643005 0.025543 0.481537 0.644348 0.026306 0.523376 0.645752 0.027069 0.562653 0.647125 0.027832 0.599243 0.648468 0.028564 0.633270 0.649841 0.029358 0.664795 0.651184 0.030121 0.694366 0.652496 0.030914 0.722137 0.653870 0.031708 0.748413 0.655212 0.032440 0.773499 0.656525 0.033264 0.797546 0.657867 0.034088 0.820831 0.659180 0.034882 0.843628 0.660461 0.035675 0.866058 0.661774 0.036438 0.888519 0.662994 0.037231 0.911255 0.664307 0.038055 0.934845 0.665558 0.038849 0.959961 0.666809 0.039642 0.053101 0.664490 0.012848 0.069885 0.665649 0.013580 0.088135 0.666840 0.014252 0.108032 0.667999 0.014984 0.130127 0.669189 0.015717 0.154633 0.670380 0.016479 0.181854 0.671570 0.017181 0.211945 0.672729 0.017975 0.244720 0.673920 0.018677 0.280029 0.675079 0.019470 0.317596 0.676300 0.020264 0.357147 0.677460 0.021027 0.398407 0.678680 0.021820 0.440948 0.679840 0.022614 0.484009 0.681000 0.023407 0.525574 0.682220 0.024139 0.564606 0.683380 0.024994 0.600952 0.684509 0.025757 0.634735 0.685669 0.026581 0.666077 0.686829 0.027405 0.695465 0.687988 0.028168 0.723083 0.689148 0.029022 0.749237 0.690277 0.029816 0.774139 0.691437 0.030640 0.798126 0.692535 0.031494 0.821320 0.693634 0.032257 0.843994 0.694763 0.033081 0.866364 0.695892 0.033905 0.888763 0.696930 0.034760 0.911407 0.698059 0.035553 0.934937 0.699097 0.036407 0.959961 0.700165 0.037170 0.054688 0.700592 0.009857 0.071564 0.701599 0.010590 0.089874 0.702637 0.011383 0.109985 0.703583 0.012146 0.132172 0.704620 0.012878 0.156799 0.705627 0.013672 0.184204 0.706635 0.014404 0.214478 0.707672 0.015198 0.247345 0.708649 0.016022 0.282745 0.709686 0.016815 0.320374 0.710724 0.017578 0.359894 0.711731 0.018402 0.401123 0.712738 0.019226 0.443604 0.713745 0.020020 0.486511 0.714783 0.020844 0.527832 0.715790 0.021667 0.566528 0.716766 0.022491 0.602692 0.717773 0.023346 0.636200 0.718781 0.024170 0.667328 0.719757 0.024994 0.696503 0.720764 0.025818 0.723999 0.721680 0.026733 0.750000 0.722656 0.027496 0.774841 0.723633 0.028320 0.798706 0.724640 0.029205 0.821777 0.725555 0.030029 0.844391 0.726532 0.030884 0.866669 0.727386 0.031677 0.888947 0.728363 0.032532 0.911591 0.729279 0.033386 0.934998 0.730194 0.034180 0.959961 0.731079 0.035034 0.056305 0.733917 0.007233 0.073273 0.734802 0.008057 0.091736 0.735687 0.008820 0.111938 0.736511 0.009613 0.134277 0.737396 0.010406 0.159058 0.738251 0.011200 0.186646 0.739136 0.012054 0.217010 0.740021 0.012817 0.249939 0.740845 0.013641 0.285461 0.741760 0.014496 0.323090 0.742645 0.015320 0.362610 0.743500 0.016113 0.403839 0.744354 0.016998 0.446228 0.745209 0.017822 0.489014 0.746094 0.018677 0.530029 0.746918 0.019531 0.568451 0.747772 0.020355 0.604340 0.748657 0.021210 0.637604 0.749481 0.022095 0.668579 0.750366 0.022919 0.697601 0.751160 0.023773 0.724884 0.752045 0.024628 0.750793 0.752838 0.025482 0.775513 0.753662 0.026337 0.799255 0.754486 0.027222 0.822266 0.755280 0.028076 0.844727 0.756073 0.028900 0.867004 0.756866 0.029755 0.889191 0.757660 0.030609 0.911743 0.758423 0.031433 0.935089 0.759186 0.032257 0.959961 0.759949 0.033142 0.057922 0.765015 0.004944 0.075012 0.765747 0.005768 0.093536 0.766479 0.006592 0.113892 0.767212 0.007416 0.136383 0.767944 0.008301 0.161346 0.768707 0.009094 0.189087 0.769440 0.009888 0.219604 0.770233 0.010773 0.252686 0.770966 0.011597 0.288208 0.771667 0.012451 0.325897 0.772461 0.013306 0.365448 0.773163 0.014160 0.406494 0.773895 0.015015 0.448853 0.774658 0.015869 0.491486 0.775360 0.016754 0.532227 0.776093 0.017639 0.570343 0.776825 0.018494 0.605988 0.777557 0.019379 0.639099 0.778290 0.020233 0.669800 0.778992 0.021118 0.698669 0.779694 0.022003 0.725800 0.780396 0.022858 0.751587 0.781097 0.023712 0.776154 0.781769 0.024597 0.799805 0.782501 0.025421 0.822723 0.783173 0.026337 0.845154 0.783813 0.027191 0.867310 0.784485 0.027985 0.889435 0.785187 0.028870 0.911896 0.785828 0.029755 0.935181 0.786469 0.030579 0.959961 0.787109 0.031372 0.059631 0.794159 0.002960 0.076782 0.794769 0.003784 0.095398 0.795380 0.004669 0.115875 0.796082 0.005493 0.138550 0.796692 0.006348 0.163605 0.797302 0.007202 0.191528 0.797913 0.008087 0.222198 0.798584 0.008942 0.255402 0.799225 0.009766 0.290924 0.799866 0.010681 0.328674 0.800476 0.011566 0.368195 0.801086 0.012421 0.409302 0.801727 0.013306 0.451477 0.802368 0.014191 0.493896 0.802979 0.015106 0.534363 0.803589 0.015961 0.572235 0.804169 0.016815 0.607666 0.804840 0.017731 0.640503 0.805420 0.018616 0.671051 0.806000 0.019501 0.699707 0.806580 0.020386 0.726715 0.807220 0.021240 0.752350 0.807770 0.022125 0.776794 0.808380 0.023041 0.800354 0.808960 0.023895 0.823181 0.809509 0.024750 0.845459 0.810120 0.025604 0.867554 0.810638 0.026459 0.889618 0.811218 0.027313 0.912048 0.811768 0.028168 0.935242 0.812286 0.029022 0.959961 0.812805 0.029846 0.061310 0.821777 0.001190 0.078552 0.822296 0.002045 0.097321 0.822845 0.002899 0.117920 0.823364 0.003784 0.140747 0.823914 0.004669 0.165955 0.824402 0.005524 0.194031 0.824982 0.006409 0.224823 0.825500 0.007324 0.258057 0.826019 0.008179 0.293701 0.826569 0.009064 0.331390 0.827087 0.009979 0.370972 0.827637 0.010864 0.411957 0.828156 0.011780 0.454071 0.828674 0.012665 0.496338 0.829193 0.013550 0.536469 0.829681 0.014465 0.574097 0.830231 0.015350 0.609222 0.830719 0.016235 0.641876 0.831238 0.017151 0.672241 0.831757 0.018005 0.700714 0.832214 0.018951 0.727600 0.832703 0.019836 0.753082 0.833191 0.020721 0.777435 0.833710 0.021576 0.800903 0.834167 0.022430 0.823608 0.834625 0.023315 0.845856 0.835144 0.024200 0.867859 0.835602 0.025055 0.889862 0.836029 0.025909 0.912140 0.836517 0.026733 0.935333 0.836945 0.027588 0.959961 0.837402 0.028412 0.063019 0.848145 0.000000 0.080322 0.848602 0.000488 0.099213 0.849030 0.001373 0.119965 0.849487 0.002258 0.142883 0.849915 0.003174 0.168335 0.850372 0.004028 0.196503 0.850830 0.004944 0.227417 0.851288 0.005859 0.260773 0.851685 0.006744 0.296448 0.852142 0.007660 0.334167 0.852570 0.008545 0.373657 0.853027 0.009491 0.414703 0.853424 0.010376 0.456665 0.853882 0.011261 0.498688 0.854309 0.012177 0.538605 0.854736 0.013123 0.575989 0.855133 0.014008 0.610840 0.855560 0.014893 0.643250 0.855988 0.015808 0.673431 0.856415 0.016724 0.701721 0.856812 0.017609 0.728455 0.857208 0.018463 0.753845 0.857635 0.019379 0.778076 0.858032 0.020233 0.801422 0.858398 0.021179 0.824036 0.858826 0.022034 0.846191 0.859192 0.022858 0.868134 0.859558 0.023712 0.890045 0.859955 0.024567 0.912323 0.860321 0.025421 0.935394 0.860657 0.026245 0.959961 0.861023 0.027039 0.064758 0.873627 0.000000 0.082184 0.873993 0.000000 0.101135 0.874329 0.000000 0.122040 0.874725 0.000854 0.145111 0.875061 0.001801 0.170685 0.875427 0.002655 0.199036 0.875793 0.003632 0.230011 0.876160 0.004486 0.263458 0.876526 0.005463 0.299194 0.876862 0.006348 0.336914 0.877228 0.007263 0.376434 0.877563 0.008179 0.417389 0.877960 0.009064 0.459198 0.878265 0.010010 0.501038 0.878632 0.010925 0.540649 0.878967 0.011841 0.577759 0.879303 0.012787 0.612396 0.879639 0.013672 0.644592 0.880005 0.014587 0.674561 0.880310 0.015442 0.702728 0.880646 0.016327 0.729279 0.880951 0.017273 0.754547 0.881287 0.018158 0.778687 0.881622 0.019043 0.801941 0.881958 0.019836 0.824493 0.882233 0.020721 0.846558 0.882568 0.021606 0.868378 0.882874 0.022430 0.890259 0.883209 0.023285 0.912415 0.883453 0.024139 0.935455 0.883759 0.024933 0.959961 0.884033 0.025787 0.066498 0.898468 0.000000 0.083984 0.898773 0.000000 0.103088 0.899048 0.000000 0.124084 0.899353 0.000000 0.147308 0.899597 0.000488 0.173065 0.899902 0.001404 0.201569 0.900208 0.002319 0.232635 0.900482 0.003235 0.266174 0.900787 0.004150 0.301910 0.901062 0.005127 0.339691 0.901306 0.006012 0.379120 0.901611 0.006958 0.420013 0.901886 0.007874 0.461761 0.902161 0.008759 0.503357 0.902405 0.009705 0.542694 0.902710 0.010651 0.579559 0.902954 0.011536 0.613922 0.903259 0.012451 0.645844 0.903503 0.013367 0.675690 0.903778 0.014282 0.703705 0.904022 0.015167 0.730103 0.904266 0.016022 0.755249 0.904541 0.016907 0.779297 0.904755 0.017792 0.802399 0.905029 0.018646 0.824890 0.905273 0.019501 0.846893 0.905518 0.020355 0.868652 0.905731 0.021179 0.890472 0.905975 0.022003 0.912567 0.906219 0.022858 0.935486 0.906433 0.023651 0.959961 0.906647 0.024445 0.068237 0.923065 0.000000 0.085846 0.923248 0.000000 0.105042 0.923492 0.000000 0.126221 0.923706 0.000000 0.149567 0.923889 0.000000 0.175476 0.924164 0.000122 0.204071 0.924347 0.001099 0.235260 0.924561 0.002014 0.268860 0.924774 0.002960 0.304657 0.924988 0.003876 0.342377 0.925201 0.004791 0.381775 0.925385 0.005737 0.422607 0.925629 0.006683 0.464264 0.925842 0.007599 0.505585 0.926025 0.008514 0.544678 0.926208 0.009430 0.581329 0.926422 0.010376 0.615479 0.926636 0.011261 0.647156 0.926849 0.012146 0.676788 0.927002 0.013092 0.704651 0.927216 0.013947 0.730957 0.927399 0.014801 0.755951 0.927612 0.015686 0.779846 0.927765 0.016541 0.802887 0.927948 0.017426 0.825256 0.928101 0.018250 0.847229 0.928284 0.019104 0.868896 0.928467 0.019958 0.890656 0.928619 0.020782 0.912689 0.928802 0.021545 0.935577 0.928986 0.022339 0.959961 0.929138 0.023132 0.070007 0.947754 0.000000 0.087677 0.947906 0.000000 0.107025 0.948059 0.000000 0.128265 0.948212 0.000000 0.151794 0.948364 0.000000 0.177826 0.948486 0.000000 0.206604 0.948639 0.000000 0.237854 0.948761 0.000763 0.271515 0.948914 0.001709 0.307343 0.949066 0.002655 0.345062 0.949188 0.003540 0.384491 0.949371 0.004486 0.425232 0.949524 0.005463 0.466736 0.949646 0.006348 0.507904 0.949799 0.007294 0.546631 0.949921 0.008179 0.583008 0.950073 0.009094 0.616882 0.950165 0.010040 0.648438 0.950287 0.010925 0.677887 0.950439 0.011780 0.705566 0.950562 0.012665 0.731689 0.950684 0.013550 0.756592 0.950836 0.014404 0.780426 0.950928 0.015259 0.803375 0.951080 0.016113 0.825684 0.951172 0.016998 0.847534 0.951294 0.017761 0.869141 0.951447 0.018585 0.890808 0.951538 0.019379 0.912811 0.951660 0.020172 0.935638 0.951752 0.020874 0.959961 0.951843 0.021698 0.071777 0.973145 0.000000 0.089539 0.973206 0.000000 0.108978 0.973267 0.000000 0.130402 0.973358 0.000000 0.154022 0.973450 0.000000 0.180206 0.973480 0.000000 0.209106 0.973572 0.000000 0.240417 0.973663 0.000000 0.274170 0.973724 0.000336 0.310059 0.973846 0.001312 0.347717 0.973938 0.002228 0.387054 0.973969 0.003174 0.427673 0.974091 0.004089 0.469177 0.974121 0.005035 0.510010 0.974182 0.005981 0.548523 0.974243 0.006866 0.584686 0.974335 0.007751 0.618317 0.974396 0.008667 0.649658 0.974457 0.009552 0.678925 0.974518 0.010437 0.706451 0.974579 0.011322 0.732483 0.974670 0.012177 0.757233 0.974731 0.013031 0.781006 0.974762 0.013885 0.803802 0.974854 0.014679 0.826050 0.974884 0.015503 0.847839 0.974976 0.016327 0.869415 0.975037 0.017090 0.890961 0.975067 0.017853 0.912933 0.975128 0.018646 0.935699 0.975189 0.019379 0.959961 0.975220 0.020142 0.073547 1.000000 0.000000 0.091400 1.000000 0.000000 0.110962 1.000000 0.000000 0.132477 1.000000 0.000000 0.156219 1.000000 0.000000 0.182587 1.000000 0.000000 0.211578 1.000000 0.000000 0.243042 1.000000 0.000000 0.276794 1.000000 0.000000 0.312653 1.000000 0.000000 0.350342 1.000000 0.000732 0.389648 1.000000 0.001617 0.430206 1.000000 0.002563 0.471527 1.000000 0.003479 0.512146 1.000000 0.004425 0.550415 1.000000 0.005310 0.586273 1.000000 0.006195 0.619751 1.000000 0.007111 0.650848 1.000000 0.007996 0.679962 1.000000 0.008850 0.707306 1.000000 0.009705 0.733215 1.000000 0.010559 0.757904 1.000000 0.011414 0.781494 1.000000 0.012207 0.804291 1.000000 0.013031 0.826416 1.000000 0.013824 0.848114 1.000000 0.014587 0.869598 1.000000 0.015381 0.891144 1.000000 0.016113 0.913055 1.000000 0.016907 0.935730 1.000000 0.017548 0.959961 1.000000 0.018280 0.031311 0.000549 0.094818 0.046722 0.001068 0.095062 0.063293 0.001617 0.095428 0.081299 0.002258 0.095764 0.101074 0.002838 0.096100 0.122925 0.003479 0.096466 0.147278 0.004120 0.096802 0.174530 0.004822 0.097198 0.204956 0.005554 0.097626 0.238281 0.006256 0.098022 0.274445 0.007050 0.098480 0.313202 0.007843 0.098969 0.354156 0.008636 0.099426 0.397034 0.009491 0.099884 0.441528 0.010315 0.100342 0.486633 0.011230 0.100861 0.529999 0.012115 0.101379 0.570496 0.013062 0.101898 0.608307 0.014008 0.102448 0.643219 0.014984 0.102997 0.675659 0.015961 0.103546 0.705963 0.016968 0.104126 0.734558 0.018005 0.104706 0.761566 0.019043 0.105316 0.787476 0.020142 0.105927 0.812408 0.021240 0.106567 0.836670 0.022308 0.107208 0.860535 0.023438 0.107849 0.884277 0.024567 0.108490 0.908386 0.025757 0.109131 0.933319 0.026947 0.109833 0.959961 0.028107 0.110504 0.031982 0.016632 0.093445 0.047424 0.017212 0.093811 0.064056 0.017853 0.094147 0.082153 0.018463 0.094482 0.102020 0.019135 0.094879 0.124023 0.019836 0.095276 0.148499 0.020569 0.095642 0.175903 0.021332 0.096069 0.206421 0.022095 0.096527 0.239838 0.022888 0.096954 0.276154 0.023712 0.097443 0.314941 0.024567 0.097900 0.355957 0.025452 0.098389 0.398895 0.026337 0.098877 0.443237 0.027252 0.099396 0.488312 0.028168 0.099945 0.531555 0.029175 0.100464 0.571869 0.030121 0.101013 0.609497 0.031158 0.101562 0.644257 0.032166 0.102142 0.676544 0.033234 0.102722 0.706757 0.034332 0.103333 0.735199 0.035431 0.103943 0.762207 0.036530 0.104553 0.787994 0.037689 0.105194 0.812836 0.038818 0.105804 0.837006 0.039978 0.106476 0.860809 0.041199 0.107147 0.884491 0.042419 0.107758 0.908539 0.043640 0.108459 0.933411 0.044922 0.109192 0.959961 0.046173 0.109833 0.032684 0.033661 0.092072 0.048218 0.034271 0.092438 0.064941 0.034973 0.092804 0.083069 0.035675 0.093201 0.103058 0.036407 0.093597 0.125183 0.037201 0.093994 0.149750 0.037964 0.094421 0.177338 0.038818 0.094879 0.207977 0.039673 0.095337 0.241516 0.040527 0.095795 0.277863 0.041443 0.096283 0.316742 0.042358 0.096771 0.357788 0.043304 0.097321 0.400757 0.044250 0.097839 0.445190 0.045258 0.098328 0.490051 0.046295 0.098877 0.533112 0.047333 0.099457 0.573334 0.048401 0.100006 0.610687 0.049469 0.100555 0.645325 0.050568 0.101196 0.677490 0.051727 0.101807 0.707581 0.052856 0.102417 0.735931 0.054077 0.103027 0.762787 0.055237 0.103668 0.788483 0.056488 0.104309 0.813263 0.057709 0.104919 0.837402 0.058960 0.105621 0.861084 0.060242 0.106293 0.884766 0.061523 0.106964 0.908691 0.062866 0.107635 0.933472 0.064270 0.108307 0.959961 0.065582 0.109009 0.033478 0.051819 0.090576 0.049072 0.052582 0.091003 0.065857 0.053345 0.091400 0.084137 0.054169 0.091766 0.104218 0.054962 0.092224 0.126404 0.055847 0.092621 0.151093 0.056702 0.093109 0.178802 0.057617 0.093567 0.209595 0.058533 0.094055 0.243286 0.059479 0.094513 0.279724 0.060486 0.095093 0.318634 0.061493 0.095520 0.359741 0.062531 0.096069 0.402740 0.063629 0.096588 0.447083 0.064667 0.097168 0.491943 0.065796 0.097717 0.534760 0.066956 0.098297 0.574768 0.068115 0.098907 0.612000 0.069275 0.099457 0.646423 0.070496 0.100098 0.678436 0.071716 0.100708 0.708405 0.073029 0.101349 0.736633 0.074280 0.101959 0.763428 0.075592 0.102600 0.789062 0.076904 0.103271 0.813721 0.078217 0.103912 0.837738 0.079620 0.104584 0.861389 0.081024 0.105255 0.884979 0.082428 0.105927 0.908875 0.083862 0.106628 0.933533 0.085297 0.107361 0.959961 0.086792 0.108063 0.034363 0.071686 0.088989 0.049988 0.072510 0.089386 0.066895 0.073395 0.089813 0.085205 0.074280 0.090240 0.105347 0.075195 0.090668 0.127686 0.076141 0.091156 0.152557 0.077148 0.091614 0.180359 0.078156 0.092072 0.211304 0.079193 0.092621 0.245117 0.080231 0.093109 0.281647 0.081329 0.093597 0.320648 0.082458 0.094116 0.361786 0.083588 0.094666 0.404755 0.084778 0.095215 0.449127 0.085968 0.095795 0.493805 0.087219 0.096405 0.536469 0.088470 0.096954 0.576294 0.089722 0.097565 0.613312 0.091064 0.098175 0.647614 0.092377 0.098785 0.679413 0.093719 0.099396 0.709290 0.095123 0.100037 0.737396 0.096497 0.100677 0.764069 0.097900 0.101349 0.789551 0.099365 0.101990 0.814178 0.100830 0.102661 0.838135 0.102356 0.103333 0.861664 0.103912 0.104034 0.885162 0.105408 0.104706 0.909027 0.106964 0.105408 0.933655 0.108582 0.106110 0.959961 0.110168 0.106812 0.035278 0.093536 0.087158 0.050995 0.094513 0.087616 0.067902 0.095490 0.088043 0.086365 0.096466 0.088470 0.106628 0.097534 0.088928 0.129089 0.098633 0.089417 0.154083 0.099701 0.089935 0.182068 0.100830 0.090424 0.213104 0.101959 0.090912 0.247009 0.103180 0.091400 0.283661 0.104401 0.091980 0.322662 0.105621 0.092468 0.363892 0.106873 0.093048 0.406891 0.108246 0.093628 0.451172 0.109528 0.094238 0.495758 0.110901 0.094788 0.538239 0.112305 0.095398 0.577820 0.113708 0.095978 0.614685 0.115173 0.096588 0.648743 0.116638 0.097229 0.680450 0.118103 0.097839 0.710144 0.119629 0.098511 0.738129 0.121155 0.099121 0.764709 0.122711 0.099792 0.790131 0.124359 0.100464 0.814636 0.125916 0.101105 0.838501 0.127594 0.101807 0.862000 0.129303 0.102509 0.885437 0.130981 0.103149 0.909149 0.132690 0.103851 0.933716 0.134399 0.104584 0.959961 0.136200 0.105255 0.036224 0.117889 0.085083 0.052063 0.118988 0.085571 0.069061 0.120087 0.085999 0.087555 0.121216 0.086456 0.107941 0.122406 0.086945 0.130554 0.123657 0.087433 0.155670 0.124878 0.087921 0.183807 0.126129 0.088409 0.214966 0.127441 0.088959 0.249054 0.128754 0.089447 0.285706 0.130157 0.089996 0.324829 0.131500 0.090576 0.366058 0.132935 0.091156 0.409058 0.134399 0.091705 0.453278 0.135895 0.092285 0.497742 0.137421 0.092865 0.539948 0.138947 0.093475 0.579407 0.140533 0.094055 0.616058 0.142120 0.094696 0.649933 0.143738 0.095306 0.681519 0.145416 0.095947 0.711029 0.147064 0.096619 0.738892 0.148773 0.097229 0.765381 0.150543 0.097870 0.790680 0.152313 0.098572 0.815094 0.154053 0.099213 0.838898 0.155914 0.099854 0.862305 0.157776 0.100586 0.885681 0.159607 0.101288 0.909332 0.161499 0.101959 0.933807 0.163391 0.102661 0.959961 0.165344 0.103363 0.037262 0.145294 0.082703 0.053131 0.146545 0.083130 0.070221 0.147797 0.083618 0.088867 0.149048 0.084106 0.109375 0.150391 0.084595 0.132080 0.151764 0.085083 0.157379 0.153137 0.085602 0.185638 0.154602 0.086090 0.216949 0.156067 0.086609 0.251099 0.157562 0.087189 0.287903 0.159119 0.087738 0.327026 0.160645 0.088257 0.368286 0.162262 0.088806 0.411285 0.163910 0.089417 0.455505 0.165497 0.089996 0.499786 0.167236 0.090576 0.541809 0.168976 0.091217 0.580994 0.170654 0.091797 0.617432 0.172485 0.092407 0.651154 0.174286 0.093018 0.682556 0.176117 0.093628 0.711945 0.178009 0.094299 0.739685 0.179871 0.094910 0.765991 0.181824 0.095581 0.791260 0.183777 0.096222 0.815582 0.185730 0.096954 0.839294 0.187714 0.097595 0.862640 0.189789 0.098267 0.885864 0.191742 0.098938 0.909454 0.193878 0.099640 0.933868 0.195923 0.100281 0.959961 0.198029 0.100952 0.038391 0.176239 0.079895 0.054291 0.177643 0.080353 0.071472 0.179108 0.080841 0.090210 0.180511 0.081329 0.110840 0.182068 0.081818 0.133636 0.183594 0.082306 0.159119 0.185150 0.082825 0.187592 0.186798 0.083374 0.218964 0.188446 0.083893 0.253235 0.190094 0.084412 0.290100 0.191833 0.084991 0.329315 0.193542 0.085541 0.370605 0.195343 0.086090 0.413574 0.197144 0.086670 0.457733 0.198975 0.087219 0.501862 0.200867 0.087830 0.543640 0.202728 0.088409 0.582611 0.204651 0.089050 0.618835 0.206665 0.089661 0.652344 0.208557 0.090271 0.683624 0.210602 0.090942 0.712891 0.212646 0.091553 0.740479 0.214661 0.092194 0.766693 0.216797 0.092865 0.791840 0.218933 0.093475 0.816040 0.221008 0.094147 0.839691 0.223175 0.094818 0.862946 0.225342 0.095490 0.886139 0.227539 0.096191 0.909668 0.229797 0.096832 0.933990 0.231964 0.097534 0.959961 0.234253 0.098206 0.039490 0.211182 0.076630 0.055511 0.212769 0.077087 0.072784 0.214325 0.077606 0.091614 0.215973 0.078094 0.112335 0.217682 0.078613 0.135315 0.219360 0.079071 0.160889 0.221069 0.079620 0.189545 0.222839 0.080170 0.221100 0.224640 0.080658 0.255463 0.226532 0.081238 0.292419 0.228394 0.081787 0.331726 0.230286 0.082367 0.372986 0.232208 0.082916 0.415894 0.234161 0.083496 0.460022 0.236176 0.084045 0.503967 0.238159 0.084686 0.545471 0.240204 0.085266 0.584259 0.242249 0.085907 0.620270 0.244415 0.086548 0.653625 0.246521 0.087097 0.684692 0.248627 0.087769 0.713776 0.250885 0.088409 0.741272 0.253021 0.089020 0.767395 0.255219 0.089691 0.792419 0.257507 0.090332 0.816559 0.259735 0.091003 0.840088 0.261993 0.091644 0.863251 0.264252 0.092316 0.886383 0.266602 0.092987 0.909821 0.268921 0.093658 0.934082 0.271240 0.094391 0.959961 0.273621 0.095062 0.040710 0.249878 0.072968 0.056763 0.251617 0.073425 0.074127 0.253326 0.073914 0.093048 0.255127 0.074432 0.113922 0.256927 0.074951 0.137054 0.258759 0.075470 0.162811 0.260620 0.075989 0.191559 0.262573 0.076508 0.223267 0.264496 0.077057 0.257751 0.266449 0.077637 0.294769 0.268494 0.078186 0.334076 0.270477 0.078735 0.375397 0.272583 0.079315 0.418274 0.274567 0.079895 0.462402 0.276733 0.080505 0.506104 0.278900 0.081116 0.547424 0.281006 0.081726 0.585907 0.283173 0.082306 0.621704 0.285461 0.082947 0.654907 0.287659 0.083588 0.685760 0.289886 0.084198 0.714722 0.292175 0.084869 0.742096 0.294434 0.085510 0.768066 0.296814 0.086151 0.792969 0.299072 0.086761 0.817017 0.301453 0.087463 0.840485 0.303833 0.088135 0.863556 0.306152 0.088806 0.886627 0.308563 0.089478 0.909943 0.310974 0.090179 0.934143 0.313385 0.090820 0.959961 0.315765 0.091553 0.041931 0.292053 0.068878 0.058075 0.293884 0.069366 0.075531 0.295715 0.069855 0.094604 0.297607 0.070374 0.115570 0.299530 0.070892 0.138763 0.301483 0.071442 0.164764 0.303497 0.071960 0.193665 0.305511 0.072540 0.225494 0.307556 0.073090 0.260071 0.309631 0.073639 0.297180 0.311676 0.074219 0.336578 0.313812 0.074768 0.377869 0.316010 0.075378 0.420715 0.318115 0.075989 0.464752 0.320312 0.076599 0.508270 0.322540 0.077179 0.549286 0.324799 0.077789 0.587616 0.327026 0.078430 0.623169 0.329346 0.079041 0.656097 0.331604 0.079681 0.686829 0.333923 0.080353 0.715698 0.336273 0.080994 0.742889 0.338593 0.081635 0.768768 0.341003 0.082336 0.793549 0.343384 0.082977 0.817505 0.345764 0.083649 0.840881 0.348175 0.084290 0.863892 0.350555 0.084991 0.886871 0.353027 0.085663 0.910126 0.355438 0.086365 0.934235 0.357880 0.087036 0.959961 0.360321 0.087738 0.043243 0.337280 0.064484 0.059448 0.339233 0.064941 0.076965 0.341125 0.065460 0.096161 0.343079 0.066010 0.117279 0.345123 0.066528 0.140686 0.347137 0.067078 0.166779 0.349182 0.067657 0.195801 0.351288 0.068207 0.227783 0.353363 0.068756 0.262482 0.355530 0.069366 0.299622 0.357635 0.069946 0.339050 0.359833 0.070557 0.380371 0.362061 0.071136 0.423248 0.364227 0.071716 0.467133 0.366516 0.072327 0.510468 0.368805 0.072998 0.551270 0.371033 0.073578 0.589325 0.373413 0.074219 0.624603 0.375702 0.074890 0.657410 0.377991 0.075500 0.687958 0.380371 0.076172 0.716614 0.382660 0.076813 0.743713 0.385040 0.077515 0.769470 0.387451 0.078217 0.794159 0.389801 0.078827 0.817993 0.392242 0.079559 0.841248 0.394653 0.080200 0.864258 0.397064 0.080933 0.887085 0.399475 0.081604 0.910339 0.401917 0.082306 0.934296 0.404266 0.082977 0.959961 0.406708 0.083710 0.044556 0.385162 0.059723 0.060883 0.387085 0.060272 0.078491 0.389008 0.060791 0.097748 0.391052 0.061340 0.119019 0.393127 0.061920 0.142548 0.395142 0.062469 0.168854 0.397278 0.063019 0.197998 0.399353 0.063599 0.230133 0.401489 0.064209 0.264954 0.403687 0.064850 0.302155 0.405853 0.065430 0.341614 0.408051 0.065979 0.382965 0.410278 0.066650 0.425751 0.412476 0.067291 0.469543 0.414734 0.067902 0.512634 0.417023 0.068542 0.553223 0.419281 0.069214 0.591003 0.421600 0.069855 0.626099 0.423920 0.070496 0.658691 0.426178 0.071167 0.689056 0.428558 0.071838 0.717560 0.430908 0.072510 0.744507 0.433228 0.073151 0.770142 0.435516 0.073883 0.794739 0.437897 0.074554 0.818481 0.440277 0.075287 0.841705 0.442657 0.075989 0.864502 0.445007 0.076630 0.887329 0.447388 0.077362 0.910492 0.449799 0.078094 0.934387 0.452118 0.078796 0.959961 0.454529 0.079529 0.045929 0.434906 0.054810 0.062317 0.436890 0.055389 0.080048 0.438873 0.055908 0.099457 0.440948 0.056488 0.120819 0.442993 0.057098 0.144501 0.445007 0.057678 0.170929 0.447113 0.058258 0.200317 0.449188 0.058868 0.232544 0.451263 0.059479 0.267426 0.453491 0.060089 0.304718 0.455597 0.060730 0.344238 0.457794 0.061371 0.385559 0.460052 0.061981 0.428314 0.462219 0.062653 0.471954 0.464417 0.063324 0.514923 0.466644 0.063965 0.555145 0.468842 0.064636 0.592712 0.471130 0.065308 0.627594 0.473358 0.065948 0.659973 0.475586 0.066681 0.690155 0.477905 0.067352 0.718506 0.480072 0.068085 0.745331 0.482422 0.068756 0.770844 0.484680 0.069489 0.795349 0.486877 0.070190 0.819000 0.489166 0.070892 0.842102 0.491486 0.071594 0.864868 0.493713 0.072327 0.887573 0.495972 0.073059 0.910614 0.498169 0.073792 0.934509 0.500458 0.074524 0.959961 0.502716 0.075256 0.047333 0.485962 0.049805 0.063782 0.487885 0.050385 0.081604 0.489807 0.050964 0.101135 0.491791 0.051575 0.122650 0.493744 0.052155 0.146545 0.495819 0.052795 0.173126 0.497833 0.053436 0.202667 0.499817 0.054016 0.235016 0.501892 0.054688 0.269989 0.503967 0.055328 0.307343 0.506012 0.055969 0.346863 0.508057 0.056671 0.388184 0.510132 0.057343 0.430908 0.512207 0.058014 0.474487 0.514313 0.058716 0.517120 0.516357 0.059357 0.557159 0.518433 0.060120 0.594482 0.520569 0.060791 0.629089 0.522583 0.061493 0.661224 0.524628 0.062256 0.691254 0.526672 0.062958 0.719452 0.528748 0.063721 0.746155 0.530823 0.064453 0.771545 0.532867 0.065186 0.795898 0.534912 0.065887 0.819489 0.536957 0.066681 0.842499 0.539032 0.067444 0.865173 0.540985 0.068237 0.887878 0.542969 0.069000 0.910767 0.544922 0.069763 0.934570 0.546936 0.070496 0.959961 0.548889 0.071289 0.048798 0.536133 0.044922 0.065369 0.537964 0.045532 0.083252 0.539642 0.046173 0.102905 0.541473 0.046814 0.124573 0.543243 0.047516 0.148590 0.545074 0.048126 0.175323 0.546844 0.048828 0.205048 0.548615 0.049469 0.237488 0.550476 0.050201 0.272583 0.552307 0.050873 0.309998 0.554108 0.051575 0.349518 0.555969 0.052307 0.390839 0.557739 0.053040 0.433533 0.559570 0.053711 0.476959 0.561462 0.054474 0.519348 0.563293 0.055267 0.559082 0.565063 0.055939 0.596161 0.566956 0.056702 0.630554 0.568726 0.057465 0.662506 0.570557 0.058258 0.692352 0.572327 0.059021 0.720428 0.574188 0.059753 0.746948 0.575958 0.060577 0.772217 0.577789 0.061371 0.796478 0.579529 0.062134 0.819977 0.581299 0.062958 0.842896 0.583069 0.063751 0.865509 0.584808 0.064545 0.888031 0.586578 0.065338 0.910950 0.588257 0.066101 0.934692 0.589996 0.066925 0.959961 0.591705 0.067719 0.050293 0.582733 0.040588 0.066956 0.584290 0.041229 0.084961 0.585846 0.041962 0.104736 0.587433 0.042603 0.126465 0.588989 0.043304 0.150665 0.590576 0.044006 0.177612 0.592224 0.044708 0.207428 0.593719 0.045441 0.240051 0.595398 0.046204 0.275177 0.596954 0.046936 0.312622 0.598511 0.047699 0.352234 0.600128 0.048431 0.393494 0.601746 0.049255 0.436157 0.603302 0.049988 0.479431 0.604919 0.050751 0.521545 0.606537 0.051544 0.561066 0.608093 0.052338 0.597870 0.609711 0.053101 0.632019 0.611267 0.053925 0.663788 0.612854 0.054718 0.693451 0.614441 0.055542 0.721344 0.615967 0.056335 0.747772 0.617554 0.057190 0.772949 0.619110 0.058014 0.797089 0.620605 0.058838 0.820465 0.622162 0.059662 0.843262 0.623718 0.060486 0.865814 0.625214 0.061279 0.888306 0.626678 0.062134 0.911133 0.628143 0.062927 0.934723 0.629639 0.063782 0.959961 0.631104 0.064636 0.051849 0.625671 0.036743 0.068542 0.627045 0.037445 0.086700 0.628357 0.038177 0.106537 0.629730 0.038910 0.128448 0.631104 0.039612 0.152832 0.632446 0.040405 0.179962 0.633881 0.041199 0.209900 0.635223 0.041901 0.242584 0.636597 0.042725 0.277863 0.638000 0.043518 0.315369 0.639343 0.044312 0.354919 0.640747 0.045105 0.396179 0.642181 0.045898 0.438782 0.643494 0.046722 0.481964 0.644867 0.047516 0.523804 0.646210 0.048340 0.562988 0.647614 0.049194 0.599609 0.648956 0.050018 0.633514 0.650330 0.050812 0.665070 0.651703 0.051666 0.694580 0.653046 0.052521 0.722290 0.654358 0.053345 0.748566 0.655701 0.054230 0.773651 0.657043 0.055115 0.797638 0.658325 0.055939 0.820892 0.659668 0.056763 0.843689 0.660919 0.057617 0.866089 0.662201 0.058502 0.888550 0.663513 0.059357 0.911285 0.664734 0.060242 0.934845 0.666016 0.061035 0.959961 0.667267 0.061951 0.053406 0.664948 0.033386 0.070190 0.666077 0.034149 0.088440 0.667267 0.034912 0.108429 0.668457 0.035706 0.130524 0.669586 0.036499 0.154968 0.670807 0.037262 0.182281 0.671967 0.038086 0.212402 0.673187 0.038879 0.245239 0.674347 0.039734 0.280579 0.675568 0.040558 0.318085 0.676727 0.041382 0.357666 0.677917 0.042206 0.398895 0.679077 0.043030 0.441406 0.680267 0.043884 0.484467 0.681458 0.044769 0.526001 0.682587 0.045593 0.564972 0.683777 0.046448 0.601288 0.684967 0.047333 0.634979 0.686127 0.048157 0.666321 0.687256 0.049072 0.695648 0.688416 0.049957 0.723206 0.689545 0.050812 0.749390 0.690735 0.051666 0.774292 0.691833 0.052582 0.798248 0.692963 0.053467 0.821411 0.694061 0.054321 0.844025 0.695129 0.055237 0.866394 0.696289 0.056122 0.888763 0.697388 0.056946 0.911469 0.698425 0.057861 0.934937 0.699493 0.058716 0.959961 0.700531 0.059631 0.054993 0.700928 0.030518 0.071869 0.701935 0.031311 0.090210 0.702942 0.032104 0.110352 0.703979 0.032959 0.132538 0.704956 0.033813 0.157227 0.706024 0.034576 0.184692 0.707062 0.035461 0.214935 0.708038 0.036285 0.247833 0.709076 0.037140 0.283264 0.710114 0.038025 0.320831 0.711090 0.038879 0.360413 0.712128 0.039703 0.401550 0.713104 0.040588 0.444061 0.714142 0.041473 0.487000 0.715149 0.042328 0.528168 0.716125 0.043213 0.566895 0.717133 0.044098 0.602966 0.718140 0.045013 0.636414 0.719116 0.045898 0.667603 0.720093 0.046814 0.696716 0.721100 0.047729 0.724152 0.722076 0.048615 0.750153 0.723022 0.049530 0.774963 0.723999 0.050415 0.798798 0.724945 0.051331 0.821869 0.725922 0.052216 0.844452 0.726837 0.053101 0.866699 0.727814 0.053986 0.889008 0.728699 0.054901 0.911621 0.729584 0.055786 0.935028 0.730530 0.056702 0.959961 0.731384 0.057587 0.056610 0.734253 0.028046 0.073547 0.735077 0.028870 0.092041 0.735962 0.029755 0.112305 0.736847 0.030579 0.134644 0.737701 0.031403 0.159454 0.738586 0.032288 0.187073 0.739441 0.033173 0.217468 0.740326 0.034027 0.250519 0.741211 0.034912 0.285919 0.742065 0.035767 0.323608 0.742950 0.036682 0.363251 0.743805 0.037598 0.404327 0.744659 0.038483 0.446686 0.745544 0.039368 0.489441 0.746399 0.040283 0.530396 0.747253 0.041199 0.568878 0.748108 0.042145 0.604645 0.748962 0.043030 0.637878 0.749786 0.043976 0.668823 0.750641 0.044861 0.697784 0.751495 0.045807 0.725098 0.752319 0.046692 0.750946 0.753143 0.047638 0.775604 0.753967 0.048523 0.799347 0.754761 0.049438 0.822327 0.755585 0.050354 0.844788 0.756348 0.051270 0.867035 0.757172 0.052185 0.889252 0.757935 0.053070 0.911774 0.758728 0.053986 0.935120 0.759491 0.054901 0.959961 0.760254 0.055786 0.058258 0.765289 0.025909 0.075317 0.765991 0.026733 0.093933 0.766754 0.027618 0.114258 0.767487 0.028534 0.136749 0.768250 0.029388 0.161774 0.768982 0.030273 0.189545 0.769745 0.031189 0.220062 0.770477 0.032074 0.253204 0.771210 0.032990 0.288666 0.771912 0.033905 0.326385 0.772705 0.034821 0.365967 0.773438 0.035736 0.407043 0.774200 0.036621 0.449341 0.774902 0.037567 0.491943 0.775635 0.038544 0.532593 0.776367 0.039429 0.570770 0.777100 0.040375 0.606293 0.777802 0.041321 0.639282 0.778564 0.042206 0.670044 0.779236 0.043182 0.698853 0.779938 0.044098 0.725983 0.780670 0.045013 0.751740 0.781342 0.045959 0.776276 0.782043 0.046906 0.799927 0.782745 0.047821 0.822815 0.783417 0.048767 0.845215 0.784088 0.049622 0.867340 0.784760 0.050568 0.889465 0.785400 0.051483 0.911957 0.786041 0.052399 0.935181 0.786682 0.053284 0.959961 0.787354 0.054169 0.059937 0.794403 0.024017 0.077087 0.795013 0.024872 0.095764 0.795654 0.025818 0.116302 0.796295 0.026703 0.138916 0.796906 0.027588 0.164093 0.797546 0.028534 0.192047 0.798218 0.029449 0.222656 0.798828 0.030396 0.255859 0.799438 0.031311 0.291473 0.800079 0.032227 0.329163 0.800720 0.033173 0.368713 0.801331 0.034119 0.409729 0.801941 0.035065 0.451996 0.802612 0.036011 0.494354 0.803192 0.036957 0.534729 0.803802 0.037872 0.572632 0.804382 0.038849 0.607941 0.805054 0.039795 0.640747 0.805634 0.040710 0.671265 0.806213 0.041687 0.699860 0.806824 0.042603 0.726898 0.807434 0.043579 0.752472 0.807983 0.044495 0.776917 0.808594 0.045441 0.800476 0.809174 0.046326 0.823303 0.809753 0.047333 0.845551 0.810303 0.048187 0.867584 0.810822 0.049133 0.889648 0.811432 0.050079 0.912048 0.811951 0.050934 0.935242 0.812469 0.051849 0.959961 0.813019 0.052734 0.061646 0.821960 0.022369 0.078857 0.822479 0.023254 0.097656 0.823059 0.024170 0.118317 0.823578 0.025116 0.141083 0.824097 0.026031 0.166443 0.824646 0.027008 0.194458 0.825165 0.027924 0.225250 0.825684 0.028870 0.258575 0.826202 0.029846 0.294189 0.826782 0.030731 0.331879 0.827271 0.031708 0.371460 0.827820 0.032684 0.412445 0.828339 0.033630 0.454559 0.828888 0.034576 0.496735 0.829346 0.035553 0.536896 0.829895 0.036530 0.574463 0.830414 0.037506 0.609528 0.830902 0.038452 0.642090 0.831390 0.039398 0.672455 0.831940 0.040344 0.700928 0.832397 0.041260 0.727722 0.832886 0.042236 0.753235 0.833405 0.043182 0.777557 0.833893 0.044128 0.800995 0.834351 0.045044 0.823669 0.834839 0.045990 0.845917 0.835297 0.046906 0.867889 0.835785 0.047821 0.889893 0.836182 0.048737 0.912201 0.836670 0.049652 0.935333 0.837097 0.050537 0.959961 0.837524 0.051422 0.063324 0.848328 0.020905 0.080658 0.848785 0.021820 0.099609 0.849182 0.022766 0.120361 0.849670 0.023743 0.143280 0.850067 0.024658 0.168762 0.850555 0.025604 0.196960 0.850983 0.026550 0.227905 0.851440 0.027496 0.261292 0.851868 0.028473 0.296967 0.852295 0.029449 0.334686 0.852753 0.030426 0.374237 0.853180 0.031403 0.415161 0.853607 0.032349 0.457184 0.854065 0.033356 0.499176 0.854462 0.034332 0.538971 0.854889 0.035309 0.576324 0.855316 0.036255 0.611115 0.855743 0.037201 0.643494 0.856140 0.038147 0.673615 0.856567 0.039124 0.701904 0.856964 0.040070 0.728607 0.857361 0.041046 0.753967 0.857788 0.041962 0.778137 0.858185 0.042938 0.801544 0.858582 0.043884 0.824158 0.858978 0.044769 0.846252 0.859314 0.045715 0.868195 0.859711 0.046631 0.890076 0.860107 0.047516 0.912323 0.860443 0.048431 0.935394 0.860840 0.049316 0.959961 0.861176 0.050171 0.065094 0.873718 0.019531 0.082489 0.874115 0.020508 0.101501 0.874451 0.021454 0.122406 0.874847 0.022430 0.145508 0.875183 0.023376 0.171143 0.875549 0.024353 0.199493 0.875916 0.025330 0.230499 0.876282 0.026337 0.263977 0.876648 0.027313 0.299652 0.876984 0.028290 0.337433 0.877350 0.029266 0.376953 0.877686 0.030273 0.417816 0.878082 0.031219 0.459747 0.878387 0.032227 0.501495 0.878754 0.033142 0.541016 0.879089 0.034149 0.578156 0.879425 0.035095 0.612732 0.879761 0.036102 0.644806 0.880096 0.037018 0.674774 0.880463 0.038055 0.702911 0.880768 0.038910 0.729462 0.881104 0.039948 0.754700 0.881409 0.040863 0.778809 0.881714 0.041748 0.802032 0.882080 0.042725 0.824554 0.882355 0.043640 0.846649 0.882690 0.044556 0.868439 0.882965 0.045471 0.890289 0.883301 0.046356 0.912476 0.883575 0.047272 0.935455 0.883881 0.048096 0.959961 0.884155 0.048950 0.066833 0.898590 0.018311 0.084351 0.898865 0.019257 0.103485 0.899139 0.020233 0.124481 0.899445 0.021210 0.147705 0.899689 0.022217 0.173523 0.900024 0.023193 0.202026 0.900330 0.024170 0.233124 0.900574 0.025177 0.266693 0.900909 0.026154 0.302429 0.901123 0.027191 0.340179 0.901398 0.028168 0.379639 0.901703 0.029144 0.420441 0.901978 0.030090 0.462280 0.902252 0.031097 0.503754 0.902527 0.032074 0.543091 0.902802 0.033081 0.579865 0.903046 0.034027 0.614227 0.903320 0.035004 0.646118 0.903625 0.035950 0.675873 0.903900 0.036957 0.703888 0.904114 0.037872 0.730286 0.904419 0.038818 0.755371 0.904633 0.039764 0.779419 0.904846 0.040680 0.802521 0.905121 0.041626 0.824951 0.905334 0.042542 0.846924 0.905609 0.043427 0.868744 0.905823 0.044342 0.890503 0.906067 0.045197 0.912598 0.906281 0.046082 0.935516 0.906525 0.046906 0.959961 0.906708 0.047729 0.068542 0.923126 0.017090 0.086182 0.923340 0.018066 0.105438 0.923553 0.019073 0.126587 0.923767 0.020050 0.149933 0.923981 0.021088 0.175903 0.924225 0.022064 0.204498 0.924438 0.023071 0.235718 0.924622 0.024109 0.269348 0.924866 0.025085 0.305115 0.925049 0.026062 0.342896 0.925262 0.027039 0.382294 0.925476 0.028046 0.423126 0.925690 0.029022 0.464783 0.925903 0.030029 0.506073 0.926086 0.030975 0.545074 0.926300 0.032013 0.581635 0.926483 0.032959 0.615692 0.926697 0.033936 0.647400 0.926910 0.034882 0.677032 0.927063 0.035828 0.704834 0.927246 0.036804 0.731079 0.927490 0.037750 0.756073 0.927673 0.038666 0.779968 0.927826 0.039581 0.802979 0.928009 0.040466 0.825348 0.928162 0.041382 0.847290 0.928345 0.042267 0.868958 0.928528 0.043152 0.890656 0.928711 0.043976 0.912750 0.928864 0.044830 0.935577 0.929047 0.045685 0.959961 0.929230 0.046478 0.070343 0.947815 0.015869 0.088043 0.947937 0.016907 0.107391 0.948120 0.017914 0.128662 0.948242 0.018890 0.152191 0.948395 0.019928 0.178314 0.948578 0.020966 0.207031 0.948669 0.021912 0.238312 0.948853 0.022949 0.272034 0.948975 0.023956 0.307800 0.949066 0.024963 0.345581 0.949249 0.025940 0.384918 0.949402 0.026917 0.425629 0.949554 0.027924 0.467163 0.949707 0.028931 0.508240 0.949829 0.029877 0.546967 0.949982 0.030884 0.583313 0.950104 0.031830 0.617157 0.950195 0.032776 0.648651 0.950348 0.033752 0.678101 0.950470 0.034729 0.705688 0.950592 0.035645 0.731873 0.950714 0.036591 0.756714 0.950867 0.037476 0.780548 0.950989 0.038391 0.803467 0.951111 0.039276 0.825745 0.951233 0.040161 0.847595 0.951355 0.041046 0.869232 0.951477 0.041901 0.890839 0.951569 0.042725 0.912842 0.951691 0.043579 0.935638 0.951782 0.044403 0.959961 0.951874 0.045197 0.072083 0.973145 0.014587 0.089905 0.973236 0.015625 0.109375 0.973297 0.016693 0.130737 0.973358 0.017670 0.154449 0.973480 0.018707 0.180664 0.973511 0.019745 0.209534 0.973633 0.020691 0.240997 0.973694 0.021729 0.274628 0.973785 0.022705 0.310486 0.973846 0.023712 0.348236 0.973938 0.024719 0.387543 0.973999 0.025757 0.428192 0.974091 0.026703 0.469574 0.974152 0.027710 0.510376 0.974213 0.028687 0.548889 0.974304 0.029633 0.584991 0.974365 0.030609 0.618591 0.974396 0.031586 0.649872 0.974457 0.032501 0.679138 0.974548 0.033447 0.706604 0.974609 0.034393 0.732635 0.974670 0.035309 0.757355 0.974731 0.036194 0.781067 0.974823 0.037048 0.803925 0.974854 0.037964 0.826080 0.974915 0.038818 0.847900 0.974976 0.039703 0.869446 0.975037 0.040527 0.890991 0.975067 0.041351 0.912933 0.975128 0.042145 0.935699 0.975189 0.042908 0.959961 0.975250 0.043671 0.073883 1.000000 0.013153 0.091797 1.000000 0.014221 0.111359 1.000000 0.015228 0.132843 1.000000 0.016235 0.156677 1.000000 0.017242 0.183044 1.000000 0.018280 0.212036 1.000000 0.019257 0.243500 1.000000 0.020294 0.277283 1.000000 0.021271 0.313110 1.000000 0.022339 0.350861 1.000000 0.023285 0.390106 1.000000 0.024292 0.430664 1.000000 0.025299 0.471954 1.000000 0.026276 0.512543 1.000000 0.027252 0.550781 1.000000 0.028229 0.586578 1.000000 0.029175 0.619995 1.000000 0.030121 0.651031 1.000000 0.031067 0.680115 1.000000 0.031952 0.707489 1.000000 0.032867 0.733368 1.000000 0.033783 0.758026 1.000000 0.034668 0.781586 1.000000 0.035522 0.804352 1.000000 0.036407 0.826477 1.000000 0.037201 0.848175 1.000000 0.038086 0.869629 1.000000 0.038879 0.891174 1.000000 0.039673 0.913086 1.000000 0.040436 0.935791 1.000000 0.041199 0.959961 1.000000 0.041931 0.031433 0.000732 0.115662 0.046844 0.001282 0.115997 0.063385 0.001862 0.116333 0.081451 0.002441 0.116730 0.101257 0.003052 0.117096 0.123108 0.003723 0.117493 0.147491 0.004395 0.117859 0.174805 0.005096 0.118317 0.205200 0.005798 0.118774 0.238586 0.006561 0.119232 0.274750 0.007324 0.119720 0.313477 0.008148 0.120178 0.354492 0.008972 0.120697 0.397369 0.009796 0.121185 0.441864 0.010651 0.121765 0.486938 0.011566 0.122284 0.530273 0.012451 0.122864 0.570801 0.013397 0.123413 0.608490 0.014374 0.124054 0.643402 0.015320 0.124634 0.675781 0.016327 0.125275 0.706146 0.017334 0.125885 0.734650 0.018372 0.126495 0.761688 0.019470 0.127136 0.787598 0.020508 0.127808 0.812500 0.021606 0.128479 0.836731 0.022736 0.129181 0.860596 0.023834 0.129883 0.884338 0.025024 0.130554 0.908386 0.026184 0.131317 0.933319 0.027374 0.132019 0.959961 0.028564 0.132782 0.032074 0.016846 0.114380 0.047577 0.017456 0.114746 0.064178 0.018066 0.115112 0.082336 0.018707 0.115509 0.102203 0.019409 0.115906 0.124176 0.020111 0.116333 0.148743 0.020813 0.116791 0.176147 0.021606 0.117279 0.206696 0.022400 0.117737 0.240173 0.023193 0.118195 0.276398 0.024017 0.118713 0.315247 0.024902 0.119232 0.356262 0.025757 0.119751 0.399170 0.026672 0.120300 0.443634 0.027588 0.120880 0.488617 0.028534 0.121460 0.531799 0.029510 0.122009 0.572174 0.030518 0.122620 0.609741 0.031555 0.123260 0.644470 0.032562 0.123840 0.676697 0.033661 0.124512 0.706909 0.034698 0.125122 0.735321 0.035797 0.125824 0.762299 0.036957 0.126465 0.788086 0.038086 0.127136 0.812927 0.039246 0.127838 0.837097 0.040466 0.128540 0.860840 0.041626 0.129242 0.884583 0.042877 0.130005 0.908539 0.044128 0.130737 0.933411 0.045349 0.131470 0.959961 0.046631 0.132233 0.032806 0.033844 0.113068 0.048340 0.034546 0.113464 0.065094 0.035217 0.113861 0.083282 0.035919 0.114258 0.103271 0.036713 0.114746 0.125397 0.037476 0.115173 0.150024 0.038269 0.115631 0.177582 0.039093 0.116150 0.208221 0.039948 0.116608 0.241821 0.040833 0.117126 0.278168 0.041718 0.117645 0.317078 0.042664 0.118195 0.358185 0.043640 0.118744 0.401154 0.044586 0.119324 0.445526 0.045624 0.119934 0.490479 0.046661 0.120483 0.533417 0.047668 0.121124 0.573608 0.048798 0.121704 0.610992 0.049896 0.122375 0.645538 0.050995 0.123016 0.677704 0.052124 0.123688 0.707733 0.053284 0.124298 0.736053 0.054474 0.124969 0.762909 0.055695 0.125671 0.788605 0.056915 0.126373 0.813354 0.058136 0.127075 0.837463 0.059448 0.127808 0.861115 0.060730 0.128540 0.884766 0.062042 0.129272 0.908691 0.063416 0.130035 0.933472 0.064728 0.130798 0.959961 0.066101 0.131561 0.033661 0.052124 0.111664 0.049286 0.052856 0.112061 0.066040 0.053619 0.112518 0.084320 0.054443 0.112946 0.104401 0.055298 0.113434 0.126617 0.056152 0.113892 0.151398 0.057037 0.114380 0.179077 0.057953 0.114868 0.209900 0.058868 0.115417 0.243591 0.059875 0.115936 0.280029 0.060852 0.116486 0.319000 0.061890 0.117065 0.360168 0.062897 0.117645 0.403076 0.063995 0.118225 0.447479 0.065125 0.118835 0.492249 0.066223 0.119446 0.535065 0.067383 0.120056 0.575073 0.068542 0.120697 0.612244 0.069733 0.121338 0.646637 0.070953 0.122009 0.678650 0.072174 0.122681 0.708557 0.073456 0.123322 0.736786 0.074768 0.124023 0.763519 0.076080 0.124695 0.789124 0.077362 0.125458 0.813812 0.078766 0.126190 0.837799 0.080139 0.126892 0.861450 0.081543 0.127625 0.885010 0.082947 0.128387 0.908875 0.084351 0.129120 0.933533 0.085846 0.129913 0.959961 0.087311 0.130646 0.034515 0.071991 0.110107 0.050140 0.072815 0.110535 0.067047 0.073700 0.110992 0.085419 0.074615 0.111450 0.105652 0.075562 0.111938 0.127960 0.076477 0.112457 0.152863 0.077515 0.113007 0.180695 0.078491 0.113495 0.211609 0.079559 0.114044 0.245483 0.080627 0.114624 0.282013 0.081757 0.115143 0.321014 0.082886 0.115753 0.362213 0.084015 0.116364 0.405121 0.085205 0.116943 0.449493 0.086426 0.117554 0.494171 0.087646 0.118195 0.536774 0.088898 0.118835 0.576569 0.090240 0.119476 0.613556 0.091492 0.120178 0.647797 0.092865 0.120819 0.679657 0.094238 0.121490 0.709412 0.095612 0.122162 0.737549 0.097046 0.122864 0.764221 0.098480 0.123596 0.789673 0.099884 0.124268 0.814240 0.101410 0.125000 0.838165 0.102936 0.125763 0.861755 0.104401 0.126526 0.885223 0.105988 0.127258 0.909058 0.107544 0.127991 0.933655 0.109131 0.128784 0.959961 0.110779 0.129578 0.035492 0.093872 0.108337 0.051208 0.094849 0.108826 0.068115 0.095825 0.109283 0.086609 0.096863 0.109802 0.106873 0.097900 0.110321 0.129333 0.098969 0.110840 0.154358 0.100098 0.111359 0.182373 0.101227 0.111877 0.213470 0.102386 0.112457 0.247406 0.103607 0.113037 0.284027 0.104797 0.113617 0.323059 0.106079 0.114227 0.364319 0.107391 0.114838 0.407257 0.108704 0.115417 0.451569 0.110046 0.116058 0.496155 0.111389 0.116669 0.538574 0.112793 0.117371 0.578156 0.114258 0.118011 0.614899 0.115662 0.118652 0.648987 0.117157 0.119324 0.680695 0.118683 0.120026 0.710297 0.120178 0.120728 0.738281 0.121735 0.121429 0.764862 0.123322 0.122131 0.790222 0.124939 0.122864 0.814728 0.126587 0.123596 0.838593 0.128204 0.124298 0.862061 0.129883 0.125061 0.885468 0.131653 0.125824 0.909180 0.133331 0.126587 0.933746 0.135101 0.127350 0.959961 0.136871 0.128113 0.036407 0.118286 0.106384 0.052246 0.119415 0.106842 0.069244 0.120514 0.107361 0.087830 0.121674 0.107849 0.108185 0.122833 0.108368 0.130798 0.124084 0.108887 0.156006 0.125366 0.109436 0.184143 0.126617 0.110016 0.215363 0.127930 0.110596 0.249420 0.129272 0.111176 0.286102 0.130646 0.111755 0.325226 0.132050 0.112366 0.366486 0.133514 0.112976 0.409424 0.134949 0.113617 0.453705 0.136444 0.114258 0.498138 0.137970 0.114868 0.540344 0.139526 0.115509 0.579712 0.141113 0.116211 0.616272 0.142731 0.116852 0.650177 0.144348 0.117554 0.681702 0.146027 0.118256 0.711182 0.147675 0.118896 0.739044 0.149445 0.119659 0.765503 0.151215 0.120361 0.790771 0.152924 0.121094 0.815186 0.154785 0.121796 0.838959 0.156525 0.122528 0.862335 0.158417 0.123322 0.885681 0.160339 0.124054 0.909363 0.162170 0.124786 0.933838 0.164124 0.125580 0.959961 0.166077 0.126312 0.037506 0.145721 0.104065 0.053345 0.146973 0.104553 0.070465 0.148254 0.105042 0.089081 0.149536 0.105591 0.109619 0.150848 0.106110 0.132355 0.152283 0.106659 0.157684 0.153687 0.107239 0.186005 0.155121 0.107788 0.217346 0.156586 0.108368 0.251465 0.158173 0.108948 0.288300 0.159668 0.109558 0.327454 0.161255 0.110168 0.368713 0.162842 0.110779 0.411682 0.164490 0.111389 0.455902 0.166138 0.112030 0.500183 0.167847 0.112701 0.542145 0.169556 0.113342 0.581329 0.171356 0.114014 0.617676 0.173096 0.114685 0.651428 0.174957 0.115356 0.682739 0.176849 0.116058 0.712128 0.178680 0.116760 0.739838 0.180573 0.117462 0.766174 0.182465 0.118134 0.791321 0.184479 0.118896 0.815674 0.186462 0.119629 0.839355 0.188446 0.120331 0.862671 0.190491 0.121094 0.885925 0.192596 0.121857 0.909546 0.194611 0.122589 0.933899 0.196716 0.123352 0.959961 0.198883 0.124146 0.038574 0.176758 0.101349 0.054504 0.178131 0.101837 0.071716 0.179596 0.102356 0.090454 0.181122 0.102875 0.111084 0.182617 0.103455 0.133972 0.184143 0.104004 0.159454 0.185791 0.104523 0.187897 0.187347 0.105103 0.219391 0.189026 0.105743 0.253632 0.190735 0.106293 0.290558 0.192444 0.106903 0.329773 0.194244 0.107513 0.371033 0.195984 0.108154 0.414001 0.197784 0.108765 0.458191 0.199677 0.109406 0.502289 0.201508 0.110046 0.544006 0.203430 0.110718 0.582916 0.205414 0.111389 0.619080 0.207336 0.112061 0.652588 0.209381 0.112732 0.683777 0.211365 0.113434 0.713043 0.213379 0.114136 0.740631 0.215485 0.114868 0.766846 0.217529 0.115540 0.791931 0.219666 0.116241 0.816162 0.221863 0.116974 0.839752 0.223969 0.117737 0.863007 0.226135 0.118469 0.886200 0.228394 0.119202 0.909668 0.230560 0.119934 0.933990 0.232819 0.120667 0.959961 0.235107 0.121460 0.039734 0.211761 0.098145 0.055725 0.213257 0.098663 0.072998 0.214905 0.099213 0.091858 0.216583 0.099762 0.112640 0.218262 0.100311 0.135651 0.220001 0.100861 0.161316 0.221771 0.101440 0.189880 0.223541 0.102051 0.221466 0.225342 0.102631 0.255829 0.227173 0.103180 0.292877 0.229034 0.103821 0.332153 0.230988 0.104431 0.373413 0.232910 0.105042 0.416382 0.234894 0.105682 0.460480 0.236908 0.106384 0.504395 0.238922 0.106995 0.545868 0.240967 0.107635 0.584625 0.243042 0.108368 0.620514 0.245148 0.109009 0.653839 0.247284 0.109711 0.684875 0.249420 0.110413 0.713959 0.251617 0.111084 0.741455 0.253815 0.111786 0.767487 0.256042 0.112488 0.792511 0.258301 0.113281 0.816650 0.260529 0.113953 0.840149 0.262787 0.114685 0.863342 0.265137 0.115417 0.886414 0.267456 0.116150 0.909851 0.269775 0.116913 0.934082 0.272156 0.117645 0.959961 0.274445 0.118378 0.040924 0.250519 0.094574 0.056976 0.252228 0.095093 0.074341 0.253967 0.095642 0.093323 0.255798 0.096191 0.114197 0.257568 0.096771 0.137360 0.259460 0.097351 0.163177 0.261353 0.097931 0.191956 0.263245 0.098480 0.223663 0.265198 0.099121 0.258148 0.267151 0.099701 0.295227 0.269165 0.100281 0.334564 0.271240 0.100983 0.375793 0.273285 0.101593 0.418793 0.275360 0.102234 0.462830 0.277527 0.102875 0.506500 0.279633 0.103546 0.547729 0.281830 0.104218 0.586273 0.284058 0.104889 0.622009 0.286224 0.105621 0.655121 0.288483 0.106262 0.685944 0.290741 0.106964 0.714905 0.293030 0.107666 0.742218 0.295319 0.108429 0.768188 0.297577 0.109100 0.793060 0.299957 0.109802 0.817108 0.302307 0.110535 0.840546 0.304657 0.111237 0.863647 0.307037 0.112030 0.886658 0.309509 0.112762 0.909973 0.311798 0.113495 0.934174 0.314270 0.114258 0.959961 0.316681 0.114990 0.042175 0.292725 0.090576 0.058319 0.294556 0.091095 0.075775 0.296417 0.091675 0.094849 0.298370 0.092255 0.115875 0.300293 0.092834 0.139160 0.302216 0.093414 0.165100 0.304199 0.093994 0.194061 0.306244 0.094635 0.225922 0.308319 0.095215 0.260498 0.310364 0.095825 0.297607 0.312469 0.096466 0.337006 0.314606 0.097107 0.378357 0.316742 0.097748 0.421234 0.318970 0.098389 0.465179 0.321167 0.099091 0.508698 0.323364 0.099762 0.549683 0.325623 0.100464 0.587952 0.327942 0.101105 0.623444 0.330139 0.101807 0.656372 0.332520 0.102509 0.687073 0.334778 0.103241 0.715851 0.337128 0.103912 0.743042 0.339508 0.104645 0.768890 0.341888 0.105347 0.793671 0.344238 0.106079 0.817657 0.346710 0.106842 0.840942 0.349060 0.107544 0.863922 0.351471 0.108307 0.886902 0.353851 0.109070 0.910156 0.356293 0.109833 0.934265 0.358795 0.110596 0.959961 0.361206 0.111359 0.043518 0.338043 0.086273 0.059692 0.339905 0.086792 0.077209 0.341888 0.087402 0.096436 0.343872 0.087982 0.117554 0.345795 0.088562 0.141022 0.347900 0.089172 0.167145 0.349915 0.089783 0.196228 0.352020 0.090393 0.228210 0.354187 0.091034 0.262939 0.356293 0.091675 0.300110 0.358490 0.092316 0.339539 0.360687 0.092957 0.380859 0.362854 0.093628 0.423706 0.365112 0.094299 0.467590 0.367401 0.095001 0.510895 0.369598 0.095673 0.551605 0.371918 0.096375 0.589600 0.374207 0.097015 0.624939 0.376526 0.097809 0.657623 0.378876 0.098480 0.688141 0.381226 0.099213 0.716766 0.383575 0.099945 0.743835 0.385986 0.100647 0.769592 0.388336 0.101410 0.794250 0.390747 0.102142 0.818085 0.393188 0.102905 0.841339 0.395508 0.103668 0.864288 0.397949 0.104370 0.887146 0.400330 0.105133 0.910370 0.402771 0.105927 0.934326 0.405243 0.106689 0.959961 0.407562 0.107452 0.044830 0.385834 0.081665 0.061127 0.387787 0.082275 0.078766 0.389801 0.082855 0.098053 0.391754 0.083435 0.119324 0.393860 0.084045 0.142944 0.395966 0.084656 0.169220 0.397980 0.085297 0.198456 0.400177 0.085938 0.230621 0.402313 0.086578 0.265381 0.404449 0.087250 0.302643 0.406616 0.087891 0.342133 0.408875 0.088593 0.383453 0.411072 0.089264 0.426270 0.413300 0.089996 0.469971 0.415527 0.090637 0.513092 0.417847 0.091339 0.553558 0.420105 0.092102 0.591339 0.422424 0.092773 0.626373 0.424744 0.093506 0.658875 0.427063 0.094238 0.689240 0.429382 0.094971 0.717743 0.431763 0.095734 0.744629 0.434143 0.096466 0.770294 0.436401 0.097229 0.794861 0.438812 0.097992 0.818604 0.441132 0.098785 0.841736 0.443512 0.099518 0.864563 0.445892 0.100281 0.887390 0.448242 0.101044 0.910492 0.450623 0.101837 0.934387 0.453003 0.102631 0.959961 0.455383 0.103394 0.046204 0.435638 0.076874 0.062561 0.437622 0.077454 0.080322 0.439636 0.078094 0.099762 0.441650 0.078674 0.121124 0.443726 0.079346 0.144867 0.445831 0.080017 0.171356 0.447876 0.080627 0.200775 0.450012 0.081299 0.233032 0.452179 0.082001 0.267883 0.454254 0.082672 0.305237 0.456451 0.083344 0.344727 0.458618 0.084076 0.385986 0.460815 0.084717 0.428833 0.463013 0.085449 0.472443 0.465179 0.086182 0.515289 0.467468 0.086884 0.555542 0.469696 0.087646 0.593048 0.471924 0.088348 0.627899 0.474213 0.089111 0.660217 0.476471 0.089905 0.690338 0.478729 0.090637 0.718689 0.480988 0.091400 0.745483 0.483246 0.092194 0.770966 0.485504 0.092957 0.795471 0.487762 0.093750 0.819092 0.490021 0.094513 0.842163 0.492310 0.095337 0.864929 0.494568 0.096100 0.887665 0.496796 0.096893 0.910675 0.499023 0.097687 0.934509 0.501312 0.098480 0.959961 0.503479 0.099274 0.047638 0.486633 0.071930 0.064056 0.488586 0.072601 0.081940 0.490570 0.073212 0.101440 0.492523 0.073883 0.123016 0.494507 0.074524 0.146881 0.496552 0.075226 0.173523 0.498566 0.075897 0.203094 0.500580 0.076599 0.235504 0.502686 0.077362 0.270416 0.504700 0.078033 0.307861 0.506805 0.078735 0.347290 0.508820 0.079468 0.388702 0.510925 0.080261 0.431366 0.512970 0.080963 0.474945 0.515045 0.081726 0.517517 0.517151 0.082489 0.557465 0.519226 0.083221 0.594757 0.521301 0.084015 0.629395 0.523346 0.084808 0.661499 0.525421 0.085602 0.691437 0.527435 0.086395 0.719635 0.529541 0.087189 0.746307 0.531616 0.088013 0.771667 0.533630 0.088837 0.795990 0.535645 0.089661 0.819580 0.537659 0.090485 0.842529 0.539703 0.091309 0.865204 0.541748 0.092102 0.887878 0.543671 0.092926 0.910797 0.545685 0.093781 0.934601 0.547638 0.094635 0.959961 0.549622 0.095459 0.049103 0.536835 0.067169 0.065613 0.538544 0.067871 0.083618 0.540344 0.068573 0.103241 0.542114 0.069275 0.124908 0.543915 0.069977 0.148956 0.545715 0.070709 0.175751 0.547485 0.071472 0.205475 0.549347 0.072205 0.238007 0.551147 0.072906 0.273071 0.552979 0.073730 0.310486 0.554810 0.074524 0.350037 0.556641 0.075256 0.391327 0.558441 0.076050 0.434021 0.560272 0.076813 0.477417 0.562073 0.077637 0.519775 0.563934 0.078461 0.559479 0.565765 0.079254 0.596466 0.567535 0.080078 0.630829 0.569397 0.080933 0.662750 0.571167 0.081757 0.692535 0.572998 0.082581 0.720581 0.574768 0.083466 0.747131 0.576630 0.084320 0.772369 0.578369 0.085144 0.796600 0.580170 0.086029 0.820068 0.581940 0.086853 0.842957 0.583710 0.087738 0.865540 0.585480 0.088562 0.888092 0.587128 0.089447 0.910980 0.588928 0.090332 0.934692 0.590607 0.091217 0.959961 0.592285 0.092072 0.050568 0.583282 0.062988 0.067230 0.584900 0.063721 0.085266 0.586426 0.064423 0.105011 0.587982 0.065247 0.126862 0.589600 0.065979 0.151093 0.591156 0.066742 0.178070 0.592773 0.067505 0.207916 0.594360 0.068298 0.240540 0.595947 0.069153 0.275665 0.597534 0.069885 0.313141 0.599182 0.070740 0.352692 0.600677 0.071533 0.394012 0.602356 0.072357 0.436646 0.603943 0.073242 0.479919 0.605499 0.074066 0.522003 0.607056 0.074890 0.561462 0.608704 0.075775 0.598175 0.610260 0.076660 0.632324 0.611847 0.077515 0.664032 0.613434 0.078400 0.693634 0.614990 0.079285 0.721527 0.616547 0.080170 0.747955 0.618134 0.081055 0.773041 0.619659 0.081909 0.797180 0.621216 0.082825 0.820557 0.622711 0.083710 0.843323 0.624207 0.084595 0.865875 0.625763 0.085510 0.888336 0.627228 0.086426 0.911163 0.628693 0.087280 0.934784 0.630219 0.088196 0.959961 0.631653 0.089111 0.052124 0.626129 0.059265 0.068848 0.627502 0.060059 0.087006 0.628876 0.060852 0.106873 0.630219 0.061615 0.128845 0.631592 0.062439 0.153259 0.632996 0.063293 0.180359 0.634338 0.064087 0.210388 0.635712 0.064880 0.243134 0.637115 0.065765 0.278320 0.638489 0.066620 0.315857 0.639862 0.067474 0.355438 0.641266 0.068359 0.396667 0.642609 0.069214 0.439270 0.644012 0.070099 0.482452 0.645355 0.070984 0.524231 0.646759 0.071869 0.563385 0.648163 0.072754 0.599915 0.649475 0.073669 0.633850 0.650848 0.074585 0.665344 0.652161 0.075500 0.694733 0.653503 0.076385 0.722473 0.654877 0.077301 0.748718 0.656189 0.078217 0.773743 0.657471 0.079163 0.797791 0.658844 0.080109 0.821045 0.660095 0.081024 0.843750 0.661438 0.081940 0.866150 0.662689 0.082886 0.888611 0.663940 0.083740 0.911316 0.665222 0.084747 0.934845 0.666473 0.085632 0.959961 0.667694 0.086517 0.053711 0.665314 0.056030 0.070526 0.666504 0.056885 0.088776 0.667694 0.057739 0.108765 0.668884 0.058563 0.130890 0.670074 0.059418 0.155457 0.671265 0.060242 0.182709 0.672424 0.061157 0.212891 0.673615 0.062042 0.245667 0.674774 0.062897 0.281006 0.675995 0.063812 0.318634 0.677155 0.064697 0.358185 0.678345 0.065582 0.399414 0.679535 0.066528 0.441925 0.680695 0.067444 0.484924 0.681885 0.068329 0.526428 0.683075 0.069275 0.565338 0.684235 0.070190 0.601593 0.685394 0.071136 0.635254 0.686523 0.072083 0.666565 0.687714 0.072998 0.695831 0.688812 0.073944 0.723389 0.690002 0.074890 0.749512 0.691071 0.075867 0.774445 0.692261 0.076813 0.798370 0.693359 0.077759 0.821472 0.694458 0.078705 0.844086 0.695587 0.079651 0.866516 0.696655 0.080627 0.888824 0.697723 0.081512 0.911499 0.698822 0.082489 0.934967 0.699921 0.083405 0.959961 0.700928 0.084381 0.055298 0.701294 0.053314 0.072174 0.702301 0.054199 0.090576 0.703369 0.055054 0.110718 0.704376 0.055908 0.132935 0.705383 0.056854 0.157654 0.706390 0.057739 0.185120 0.707367 0.058624 0.215393 0.708435 0.059570 0.248383 0.709412 0.060486 0.283722 0.710449 0.061371 0.321381 0.711456 0.062347 0.360931 0.712494 0.063293 0.402069 0.713501 0.064178 0.444580 0.714508 0.065155 0.487427 0.715485 0.066101 0.528625 0.716492 0.067078 0.567291 0.717499 0.068024 0.603271 0.718506 0.068939 0.636719 0.719513 0.069946 0.667786 0.720428 0.070923 0.696930 0.721436 0.071899 0.724335 0.722443 0.072845 0.750305 0.723389 0.073761 0.775116 0.724365 0.074799 0.798889 0.725311 0.075745 0.821991 0.726288 0.076752 0.844513 0.727173 0.077698 0.866760 0.728149 0.078644 0.889038 0.729034 0.079590 0.911621 0.729950 0.080566 0.935028 0.730835 0.081543 0.959961 0.731750 0.082458 0.056885 0.734558 0.050995 0.073914 0.735443 0.051849 0.092377 0.736298 0.052795 0.112671 0.737152 0.053680 0.135040 0.738007 0.054626 0.159882 0.738892 0.055511 0.187561 0.739777 0.056519 0.217987 0.740631 0.057434 0.250977 0.741516 0.058380 0.286469 0.742371 0.059357 0.324127 0.743286 0.060303 0.363678 0.744141 0.061249 0.404877 0.744995 0.062225 0.447235 0.745880 0.063263 0.489899 0.746704 0.064209 0.530823 0.747559 0.065155 0.569214 0.748444 0.066162 0.604950 0.749268 0.067108 0.638153 0.750122 0.068115 0.669037 0.750946 0.069061 0.697968 0.751770 0.070038 0.725281 0.752625 0.071106 0.751068 0.753448 0.072021 0.775757 0.754272 0.073090 0.799438 0.755066 0.074036 0.822449 0.755859 0.074982 0.844879 0.756653 0.075989 0.867096 0.757477 0.076965 0.889282 0.758209 0.077911 0.911804 0.759003 0.078888 0.935120 0.759735 0.079865 0.959961 0.760498 0.080780 0.058563 0.765533 0.048950 0.075653 0.766296 0.049896 0.094269 0.767029 0.050842 0.114624 0.767761 0.051727 0.137177 0.768524 0.052734 0.162170 0.769226 0.053650 0.189972 0.769989 0.054657 0.220581 0.770752 0.055664 0.253662 0.771454 0.056580 0.289246 0.772247 0.057556 0.326904 0.772980 0.058563 0.366425 0.773682 0.059570 0.407562 0.774445 0.060577 0.449860 0.775177 0.061554 0.492371 0.775879 0.062561 0.533020 0.776672 0.063538 0.571075 0.777344 0.064514 0.606628 0.778076 0.065521 0.639587 0.778809 0.066498 0.670258 0.779510 0.067535 0.699066 0.780212 0.068542 0.726166 0.780914 0.069550 0.751862 0.781616 0.070526 0.776428 0.782288 0.071533 0.800049 0.783020 0.072510 0.822876 0.783661 0.073547 0.845276 0.784302 0.074524 0.867401 0.785004 0.075439 0.889496 0.785645 0.076447 0.911957 0.786285 0.077423 0.935181 0.786957 0.078369 0.959961 0.787567 0.079346 0.060242 0.794617 0.047180 0.077393 0.795258 0.048126 0.096100 0.795898 0.049133 0.116669 0.796509 0.050079 0.139343 0.797150 0.051086 0.164490 0.797760 0.052094 0.192444 0.798431 0.053040 0.223145 0.799042 0.054047 0.256378 0.799652 0.055054 0.291962 0.800323 0.056091 0.329681 0.800964 0.057068 0.369171 0.801575 0.058044 0.410248 0.802155 0.059113 0.452454 0.802826 0.060089 0.494781 0.803406 0.061127 0.535126 0.804016 0.062103 0.572998 0.804657 0.063080 0.608276 0.805267 0.064178 0.641022 0.805878 0.065186 0.671478 0.806427 0.066193 0.700073 0.807068 0.067200 0.727051 0.807648 0.068207 0.752594 0.808228 0.069183 0.777039 0.808838 0.070251 0.800568 0.809387 0.071167 0.823364 0.809937 0.072174 0.845612 0.810486 0.073212 0.867706 0.811035 0.074158 0.889740 0.811615 0.075134 0.912079 0.812134 0.076141 0.935303 0.812653 0.077057 0.959961 0.813263 0.078033 0.061951 0.822144 0.045715 0.079224 0.822662 0.046692 0.097992 0.823242 0.047668 0.118713 0.823730 0.048676 0.141510 0.824280 0.049652 0.166840 0.824829 0.050659 0.194977 0.825348 0.051666 0.225739 0.825897 0.052734 0.259033 0.826416 0.053741 0.294708 0.826965 0.054718 0.332458 0.827484 0.055786 0.371948 0.828003 0.056763 0.412994 0.828522 0.057831 0.455017 0.829041 0.058838 0.497192 0.829559 0.059845 0.537262 0.830078 0.060913 0.574829 0.830566 0.061920 0.609833 0.831085 0.062958 0.642365 0.831604 0.063995 0.672668 0.832123 0.064941 0.701111 0.832581 0.066040 0.727905 0.833069 0.067047 0.753357 0.833588 0.067993 0.777679 0.834076 0.069031 0.801056 0.834503 0.070038 0.823761 0.834991 0.071045 0.846008 0.835480 0.071991 0.867950 0.835938 0.072937 0.889923 0.836365 0.073975 0.912231 0.836853 0.074921 0.935333 0.837280 0.075867 0.959961 0.837708 0.076843 0.063660 0.848480 0.044373 0.080994 0.848938 0.045410 0.099915 0.849365 0.046356 0.120728 0.849823 0.047394 0.143738 0.850250 0.048401 0.169189 0.850708 0.049408 0.197479 0.851135 0.050507 0.228394 0.851562 0.051514 0.261780 0.852020 0.052551 0.297455 0.852448 0.053589 0.335205 0.852905 0.054596 0.374725 0.853333 0.055634 0.415680 0.853790 0.056671 0.457642 0.854218 0.057709 0.499573 0.854614 0.058777 0.539337 0.855042 0.059814 0.576630 0.855469 0.060822 0.611450 0.855896 0.061829 0.643768 0.856323 0.062897 0.673828 0.856720 0.063934 0.702057 0.857117 0.064941 0.728790 0.857544 0.065948 0.754089 0.857910 0.066986 0.778290 0.858307 0.067993 0.801575 0.858704 0.068909 0.824219 0.859100 0.069946 0.846313 0.859467 0.070953 0.868225 0.859863 0.071869 0.890076 0.860229 0.072876 0.912354 0.860565 0.073822 0.935394 0.860962 0.074738 0.959961 0.861298 0.075684 0.065399 0.873901 0.043152 0.082855 0.874268 0.044189 0.101868 0.874573 0.045227 0.122803 0.874969 0.046265 0.145966 0.875336 0.047333 0.171570 0.875702 0.048309 0.199982 0.876038 0.049408 0.230988 0.876434 0.050415 0.264465 0.876770 0.051453 0.300232 0.877136 0.052521 0.337921 0.877472 0.053528 0.377441 0.877808 0.054626 0.418304 0.878204 0.055695 0.460175 0.878510 0.056702 0.501923 0.878876 0.057770 0.541443 0.879211 0.058807 0.578461 0.879578 0.059875 0.612976 0.879883 0.060852 0.645050 0.880249 0.061920 0.674988 0.880554 0.062927 0.703094 0.880890 0.063965 0.729614 0.881226 0.064941 0.754791 0.881531 0.065918 0.778931 0.881866 0.066956 0.802124 0.882172 0.067902 0.824646 0.882477 0.068909 0.846680 0.882782 0.069916 0.868469 0.883087 0.070892 0.890320 0.883392 0.071777 0.912506 0.883667 0.072784 0.935486 0.883972 0.073669 0.959961 0.884247 0.074615 0.067139 0.898712 0.042053 0.084686 0.898956 0.043121 0.103821 0.899261 0.044189 0.124847 0.899536 0.045227 0.148163 0.899872 0.046265 0.173981 0.900116 0.047302 0.202515 0.900421 0.048370 0.233612 0.900665 0.049408 0.267151 0.900970 0.050446 0.302948 0.901215 0.051544 0.340668 0.901489 0.052612 0.380096 0.901794 0.053650 0.420990 0.902100 0.054718 0.462769 0.902344 0.055756 0.504211 0.902649 0.056824 0.543457 0.902893 0.057831 0.580200 0.903168 0.058868 0.614532 0.903442 0.059937 0.646393 0.903717 0.060974 0.676147 0.903961 0.061951 0.704071 0.904205 0.062988 0.730438 0.904480 0.063995 0.755493 0.904694 0.064972 0.779510 0.904999 0.065979 0.802612 0.905212 0.066956 0.825012 0.905457 0.067932 0.846985 0.905701 0.068848 0.868805 0.905914 0.069824 0.890533 0.906128 0.070801 0.912628 0.906342 0.071747 0.935516 0.906586 0.072571 0.959961 0.906799 0.073456 0.068878 0.923218 0.041046 0.086548 0.923431 0.042084 0.105774 0.923645 0.043152 0.126953 0.923859 0.044189 0.150360 0.924072 0.045258 0.176331 0.924286 0.046295 0.205017 0.924500 0.047363 0.236237 0.924744 0.048431 0.269806 0.924927 0.049561 0.305664 0.925110 0.050568 0.343414 0.925323 0.051636 0.382782 0.925568 0.052704 0.423584 0.925781 0.053802 0.465179 0.925964 0.054779 0.506470 0.926147 0.055847 0.545441 0.926392 0.056915 0.581940 0.926575 0.057922 0.615997 0.926758 0.058960 0.647644 0.926971 0.059998 0.677185 0.927155 0.061005 0.704987 0.927368 0.062012 0.731232 0.927521 0.062988 0.756195 0.927704 0.064026 0.780060 0.927917 0.065002 0.803070 0.928070 0.065918 0.825439 0.928253 0.066895 0.847321 0.928436 0.067871 0.868988 0.928589 0.068787 0.890747 0.928772 0.069672 0.912781 0.928955 0.070557 0.935577 0.929108 0.071442 0.959961 0.929291 0.072296 0.070618 0.947845 0.039948 0.088409 0.948029 0.041046 0.107758 0.948151 0.042114 0.129059 0.948334 0.043152 0.152588 0.948456 0.044220 0.178711 0.948608 0.045319 0.207520 0.948730 0.046417 0.238831 0.948883 0.047424 0.272522 0.949005 0.048523 0.308319 0.949158 0.049591 0.346039 0.949341 0.050659 0.385437 0.949493 0.051697 0.426178 0.949615 0.052765 0.467651 0.949768 0.053833 0.508667 0.949860 0.054871 0.547394 0.950012 0.055939 0.583618 0.950134 0.056946 0.617462 0.950287 0.057983 0.648865 0.950378 0.058960 0.678253 0.950531 0.059998 0.705902 0.950653 0.061005 0.732025 0.950745 0.061981 0.756866 0.950897 0.062927 0.780670 0.951019 0.063904 0.803558 0.951141 0.064850 0.825806 0.951233 0.065796 0.847656 0.951385 0.066711 0.869263 0.951508 0.067596 0.890869 0.951599 0.068512 0.912872 0.951721 0.069366 0.935669 0.951813 0.070251 0.959961 0.951935 0.071075 0.072418 0.973206 0.038818 0.090271 0.973267 0.039917 0.109711 0.973328 0.040985 0.131165 0.973419 0.042053 0.154816 0.973480 0.043121 0.181122 0.973541 0.044189 0.210022 0.973663 0.045288 0.241394 0.973724 0.046387 0.275146 0.973816 0.047424 0.311005 0.973877 0.048492 0.348724 0.973969 0.049561 0.388092 0.974030 0.050659 0.428711 0.974121 0.051666 0.470062 0.974182 0.052734 0.510803 0.974243 0.053802 0.549225 0.974304 0.054779 0.585236 0.974365 0.055847 0.618866 0.974426 0.056854 0.650116 0.974518 0.057831 0.679321 0.974579 0.058807 0.706757 0.974609 0.059814 0.732788 0.974701 0.060822 0.757477 0.974731 0.061798 0.781158 0.974854 0.062714 0.803986 0.974884 0.063629 0.826172 0.974976 0.064545 0.847961 0.975006 0.065399 0.869476 0.975067 0.066315 0.891052 0.975098 0.067200 0.912994 0.975189 0.068024 0.935699 0.975220 0.068817 0.959961 0.975281 0.069672 0.074188 1.000000 0.037476 0.092133 1.000000 0.038605 0.111694 1.000000 0.039673 0.133240 1.000000 0.040741 0.157043 1.000000 0.041840 0.183502 1.000000 0.042908 0.212524 1.000000 0.044006 0.243958 1.000000 0.045074 0.277740 1.000000 0.046173 0.313629 1.000000 0.047272 0.351349 1.000000 0.048279 0.390625 1.000000 0.049347 0.431183 1.000000 0.050415 0.472382 1.000000 0.051422 0.512939 1.000000 0.052490 0.551117 1.000000 0.053467 0.586884 1.000000 0.054504 0.620239 1.000000 0.055511 0.651276 1.000000 0.056458 0.680298 1.000000 0.057465 0.707642 1.000000 0.058441 0.733490 1.000000 0.059387 0.758118 1.000000 0.060333 0.781708 1.000000 0.061279 0.804474 1.000000 0.062134 0.826538 1.000000 0.063049 0.848236 1.000000 0.063904 0.869690 1.000000 0.064758 0.891235 1.000000 0.065582 0.913086 1.000000 0.066406 0.935791 1.000000 0.067200 0.959961 1.000000 0.067993 0.031555 0.000946 0.138763 0.046967 0.001495 0.139130 0.063568 0.002075 0.139496 0.081604 0.002655 0.139923 0.101410 0.003296 0.140320 0.123322 0.003937 0.140747 0.147705 0.004608 0.141205 0.175049 0.005341 0.141693 0.205475 0.006073 0.142181 0.238892 0.006836 0.142670 0.275024 0.007629 0.143219 0.313843 0.008453 0.143707 0.354797 0.009247 0.144318 0.397705 0.010101 0.144867 0.442169 0.010986 0.145447 0.487213 0.011871 0.145996 0.530579 0.012787 0.146637 0.571075 0.013763 0.147247 0.608734 0.014709 0.147888 0.643555 0.015717 0.148560 0.675964 0.016693 0.149231 0.706268 0.017731 0.149963 0.734802 0.018768 0.150635 0.761841 0.019806 0.151337 0.787659 0.020935 0.152069 0.812531 0.022034 0.152802 0.836761 0.023132 0.153534 0.860657 0.024292 0.154327 0.884338 0.025452 0.155121 0.908417 0.026611 0.155884 0.933319 0.027832 0.156677 0.959961 0.029022 0.157440 0.032227 0.017059 0.137543 0.047760 0.017639 0.137939 0.064392 0.018311 0.138336 0.082520 0.018982 0.138794 0.102386 0.019684 0.139221 0.124451 0.020386 0.139709 0.148956 0.021118 0.140167 0.176392 0.021881 0.140686 0.206940 0.022705 0.141235 0.240448 0.023499 0.141724 0.276733 0.024353 0.142303 0.315582 0.025208 0.142883 0.356628 0.026093 0.143463 0.399597 0.027008 0.144012 0.444000 0.027954 0.144653 0.488953 0.028900 0.145264 0.532135 0.029907 0.145905 0.572418 0.030884 0.146576 0.609924 0.031921 0.147217 0.644684 0.032959 0.147949 0.676910 0.033997 0.148590 0.707062 0.035126 0.149323 0.735504 0.036255 0.150085 0.762421 0.037354 0.150818 0.788208 0.038513 0.151489 0.813019 0.039703 0.152283 0.837158 0.040863 0.153046 0.860901 0.042084 0.153839 0.884613 0.043304 0.154633 0.908569 0.044525 0.155426 0.933441 0.045837 0.156250 0.959961 0.047089 0.157074 0.033020 0.034088 0.136292 0.048523 0.034760 0.136719 0.065277 0.035492 0.137146 0.083496 0.036194 0.137634 0.103485 0.036957 0.138123 0.125610 0.037750 0.138611 0.150238 0.038574 0.139130 0.177826 0.039398 0.139648 0.208557 0.040314 0.140198 0.242157 0.041168 0.140778 0.278534 0.042084 0.141357 0.317444 0.043060 0.141937 0.358551 0.043976 0.142548 0.401459 0.045013 0.143127 0.445862 0.045990 0.143768 0.490753 0.047028 0.144440 0.533752 0.048096 0.145081 0.573914 0.049164 0.145813 0.611206 0.050262 0.146454 0.645752 0.051422 0.147156 0.677887 0.052521 0.147888 0.707886 0.053741 0.148621 0.736206 0.054932 0.149353 0.763031 0.056152 0.150085 0.788696 0.057404 0.150879 0.813416 0.058624 0.151642 0.837494 0.059875 0.152435 0.861237 0.061218 0.153229 0.884857 0.062500 0.154022 0.908752 0.063873 0.154846 0.933502 0.065247 0.155670 0.959961 0.066589 0.156494 0.033813 0.052368 0.134949 0.049408 0.053131 0.135406 0.066223 0.053955 0.135864 0.084503 0.054749 0.136353 0.104584 0.055603 0.136902 0.126862 0.056458 0.137421 0.151642 0.057343 0.137970 0.179382 0.058289 0.138519 0.210236 0.059235 0.139130 0.243958 0.060211 0.139648 0.280426 0.061218 0.140289 0.319397 0.062256 0.140869 0.360504 0.063293 0.141541 0.403473 0.064392 0.142181 0.447845 0.065491 0.142792 0.492676 0.066620 0.143494 0.535370 0.067810 0.144135 0.575378 0.068939 0.144867 0.612488 0.070160 0.145569 0.646912 0.071411 0.146301 0.678833 0.072632 0.147034 0.708740 0.073944 0.147736 0.736938 0.075226 0.148560 0.763641 0.076508 0.149292 0.789215 0.077911 0.150055 0.813904 0.079224 0.150848 0.837891 0.080627 0.151642 0.861511 0.082062 0.152466 0.885040 0.083466 0.153259 0.908936 0.084930 0.154114 0.933594 0.086426 0.154877 0.959961 0.087891 0.155762 0.034698 0.072266 0.133453 0.050323 0.073151 0.133972 0.067261 0.074036 0.134491 0.085632 0.074921 0.134979 0.105835 0.075897 0.135529 0.128235 0.076874 0.136108 0.153137 0.077881 0.136688 0.181030 0.078918 0.137207 0.211945 0.079987 0.137848 0.245819 0.081024 0.138397 0.282379 0.082153 0.139038 0.321381 0.083282 0.139679 0.362549 0.084442 0.140320 0.405518 0.085663 0.140991 0.449860 0.086884 0.141632 0.494537 0.088104 0.142334 0.537140 0.089386 0.143066 0.576843 0.090668 0.143738 0.613831 0.092010 0.144470 0.648010 0.093384 0.145233 0.679810 0.094727 0.145966 0.709595 0.096130 0.146729 0.737671 0.097565 0.147491 0.764282 0.098969 0.148285 0.789764 0.100464 0.149017 0.814331 0.101929 0.149811 0.838257 0.103455 0.150635 0.861816 0.104980 0.151459 0.885254 0.106506 0.152283 0.909088 0.108154 0.153107 0.933655 0.109741 0.153961 0.959961 0.111328 0.154785 0.035614 0.094238 0.131866 0.051392 0.095215 0.132355 0.068329 0.096191 0.132904 0.086792 0.097229 0.133392 0.107147 0.098328 0.134003 0.129639 0.099396 0.134521 0.154694 0.100525 0.135101 0.182709 0.101654 0.135681 0.213776 0.102875 0.136353 0.247742 0.104065 0.136963 0.284393 0.105316 0.137573 0.323486 0.106537 0.138275 0.364716 0.107880 0.138885 0.407684 0.109192 0.139557 0.451904 0.110535 0.140289 0.496490 0.111938 0.140991 0.538849 0.113342 0.141693 0.578400 0.114716 0.142426 0.615173 0.116241 0.143127 0.649200 0.117706 0.143890 0.680817 0.119232 0.144653 0.710480 0.120758 0.145416 0.738434 0.122314 0.146149 0.764954 0.123932 0.146942 0.790344 0.125519 0.147736 0.814789 0.127167 0.148529 0.838654 0.128815 0.149323 0.862091 0.130554 0.150177 0.885529 0.132202 0.150970 0.909210 0.133972 0.151825 0.933746 0.135773 0.152618 0.959961 0.137482 0.153503 0.036621 0.118683 0.129944 0.052399 0.119812 0.130463 0.069458 0.120941 0.131042 0.088043 0.122101 0.131561 0.108490 0.123291 0.132141 0.131134 0.124542 0.132721 0.156311 0.125763 0.133331 0.184509 0.127075 0.133942 0.215668 0.128418 0.134521 0.249786 0.129761 0.135223 0.286530 0.131165 0.135864 0.325653 0.132568 0.136505 0.366913 0.134033 0.137207 0.409882 0.135498 0.137878 0.454132 0.136993 0.138550 0.498505 0.138550 0.139282 0.540649 0.140137 0.140015 0.579956 0.141693 0.140747 0.616547 0.143311 0.141510 0.650391 0.144958 0.142242 0.681885 0.146637 0.142975 0.711395 0.148346 0.143738 0.739197 0.150055 0.144470 0.765625 0.151855 0.145325 0.790894 0.153595 0.146088 0.815308 0.155426 0.146881 0.839050 0.157257 0.147705 0.862427 0.159149 0.148529 0.885742 0.160980 0.149292 0.909363 0.162903 0.150177 0.933838 0.164825 0.151031 0.959961 0.166748 0.151825 0.037689 0.146179 0.127716 0.053558 0.147430 0.128265 0.070679 0.148743 0.128815 0.089355 0.150024 0.129364 0.109894 0.151398 0.129974 0.132660 0.152802 0.130585 0.158020 0.154205 0.131195 0.186371 0.155701 0.131836 0.217682 0.157135 0.132446 0.251892 0.158661 0.133087 0.288696 0.160248 0.133789 0.327881 0.161835 0.134430 0.369141 0.163452 0.135071 0.412140 0.165100 0.135803 0.456268 0.166748 0.136505 0.500610 0.168488 0.137238 0.542511 0.170227 0.138000 0.581573 0.171997 0.138672 0.617950 0.173828 0.139404 0.651581 0.175629 0.140167 0.682922 0.177460 0.140930 0.712280 0.179382 0.141724 0.739990 0.181305 0.142426 0.766327 0.183228 0.143219 0.791443 0.185242 0.144043 0.815765 0.187195 0.144806 0.839447 0.189209 0.145630 0.862762 0.191254 0.146454 0.885956 0.193268 0.147247 0.909576 0.195404 0.148071 0.933960 0.197449 0.148895 0.959961 0.199585 0.149750 0.038788 0.177277 0.125092 0.054718 0.178680 0.125671 0.071960 0.180206 0.126221 0.090729 0.181641 0.126801 0.111389 0.183197 0.127380 0.134247 0.184753 0.128052 0.159790 0.186340 0.128632 0.188293 0.187988 0.129272 0.219757 0.189667 0.129913 0.254059 0.191376 0.130585 0.290924 0.193115 0.131226 0.330200 0.194855 0.131897 0.371460 0.196655 0.132599 0.414490 0.198486 0.133270 0.458588 0.200317 0.134003 0.502655 0.202240 0.134705 0.544342 0.204193 0.135468 0.583221 0.206116 0.136169 0.619385 0.208069 0.136932 0.652832 0.210052 0.137665 0.683990 0.212097 0.138397 0.713226 0.214172 0.139160 0.740784 0.216217 0.139984 0.766998 0.218323 0.140778 0.792053 0.220520 0.141510 0.816193 0.222595 0.142365 0.839844 0.224792 0.143127 0.863037 0.226990 0.143982 0.886230 0.229156 0.144775 0.909698 0.231415 0.145569 0.933990 0.233612 0.146362 0.959961 0.235901 0.147217 0.039948 0.212280 0.122009 0.055969 0.213898 0.122620 0.073273 0.215546 0.123199 0.092133 0.217194 0.123810 0.112915 0.218903 0.124359 0.135925 0.220581 0.124969 0.161621 0.222382 0.125671 0.190277 0.224213 0.126282 0.221893 0.225983 0.126923 0.256287 0.227844 0.127594 0.293274 0.229797 0.128296 0.332550 0.231659 0.128937 0.373871 0.233612 0.129669 0.416809 0.235596 0.130371 0.460846 0.237610 0.131073 0.504791 0.239685 0.131775 0.546234 0.241699 0.132507 0.584900 0.243805 0.133240 0.620819 0.245972 0.133972 0.654083 0.248047 0.134735 0.685089 0.250214 0.135529 0.714142 0.252411 0.136292 0.741577 0.254639 0.137024 0.767639 0.256897 0.137878 0.792633 0.259155 0.138641 0.816711 0.261383 0.139465 0.840240 0.263702 0.140259 0.863373 0.265961 0.141022 0.886444 0.268311 0.141846 0.909851 0.270630 0.142670 0.934082 0.272980 0.143494 0.959961 0.275330 0.144318 0.041168 0.251129 0.118500 0.057220 0.252869 0.119141 0.074646 0.254700 0.119690 0.093628 0.256439 0.120300 0.114532 0.258301 0.120972 0.137695 0.260101 0.121582 0.163544 0.262024 0.122223 0.192322 0.263947 0.122894 0.224091 0.265930 0.123535 0.258606 0.267914 0.124207 0.295685 0.269958 0.124878 0.334991 0.272003 0.125610 0.376312 0.274078 0.126312 0.419159 0.276154 0.127014 0.463226 0.278259 0.127747 0.506927 0.280457 0.128448 0.548096 0.282593 0.129181 0.586578 0.284821 0.129944 0.622284 0.287079 0.130707 0.655304 0.289307 0.131470 0.686157 0.291565 0.132202 0.715088 0.293884 0.133026 0.742340 0.296143 0.133789 0.768341 0.298492 0.134613 0.793182 0.300812 0.135376 0.817230 0.303162 0.136169 0.840637 0.305573 0.136963 0.863678 0.307892 0.137817 0.886719 0.310333 0.138580 0.910004 0.312744 0.139435 0.934174 0.315125 0.140289 0.959961 0.317535 0.141113 0.042419 0.293427 0.114624 0.058563 0.295288 0.115204 0.076050 0.297119 0.115845 0.095154 0.299042 0.116486 0.116211 0.300964 0.117126 0.139496 0.302917 0.117798 0.165497 0.304932 0.118439 0.194458 0.307007 0.119110 0.226318 0.309021 0.119781 0.260925 0.311157 0.120514 0.298126 0.313293 0.121185 0.337463 0.315369 0.121887 0.378784 0.317535 0.122620 0.421692 0.319733 0.123291 0.465576 0.321930 0.124054 0.509094 0.324188 0.124786 0.550049 0.326447 0.125549 0.588257 0.328735 0.126312 0.623749 0.331055 0.127045 0.656616 0.333313 0.127838 0.687256 0.335663 0.128601 0.716034 0.338043 0.129425 0.743195 0.340363 0.130157 0.769012 0.342743 0.130981 0.793793 0.345093 0.131775 0.817688 0.347504 0.132599 0.841034 0.349945 0.133423 0.864014 0.352325 0.134247 0.886932 0.354797 0.135101 0.910217 0.357208 0.135925 0.934265 0.359650 0.136719 0.959961 0.362091 0.137573 0.043701 0.338715 0.110413 0.059967 0.340637 0.111053 0.077515 0.342590 0.111664 0.096741 0.344604 0.112335 0.117889 0.346588 0.113007 0.141327 0.348633 0.113647 0.167542 0.350739 0.114349 0.196655 0.352844 0.115051 0.228668 0.354919 0.115723 0.263397 0.357086 0.116425 0.300629 0.359283 0.117157 0.339996 0.361481 0.117889 0.381348 0.363708 0.118591 0.424164 0.365906 0.119324 0.468018 0.368164 0.120087 0.511261 0.370483 0.120850 0.552002 0.372711 0.121582 0.589996 0.375061 0.122406 0.625214 0.377411 0.123169 0.657898 0.379669 0.123932 0.688324 0.382080 0.124725 0.716980 0.384430 0.125549 0.743988 0.386810 0.126343 0.769714 0.389191 0.127167 0.794342 0.391602 0.127960 0.818207 0.394012 0.128815 0.841431 0.396393 0.129669 0.864349 0.398743 0.130463 0.887177 0.401215 0.131287 0.910400 0.403687 0.132141 0.934357 0.406097 0.132996 0.959961 0.408508 0.133789 0.045074 0.386566 0.105957 0.061401 0.388550 0.106598 0.079071 0.390503 0.107239 0.098389 0.392548 0.107910 0.119659 0.394653 0.108612 0.143250 0.396667 0.109283 0.169586 0.398804 0.110016 0.198914 0.400909 0.110718 0.230988 0.403076 0.111420 0.265900 0.405273 0.112152 0.303101 0.407410 0.112885 0.342560 0.409637 0.113617 0.383881 0.411865 0.114380 0.426697 0.414062 0.115143 0.470490 0.416382 0.115906 0.513489 0.418701 0.116699 0.553925 0.420959 0.117462 0.591644 0.423248 0.118256 0.626678 0.425629 0.119049 0.659180 0.427887 0.119873 0.689484 0.430237 0.120667 0.717896 0.432556 0.121460 0.744781 0.434906 0.122314 0.770447 0.437286 0.123169 0.794983 0.439636 0.123962 0.818695 0.441986 0.124817 0.841827 0.444397 0.125671 0.864655 0.446747 0.126495 0.887451 0.449158 0.127350 0.910522 0.451508 0.128174 0.934448 0.453857 0.129028 0.959961 0.456238 0.129913 0.046448 0.436371 0.101288 0.062866 0.438354 0.101929 0.080627 0.440338 0.102631 0.100067 0.442444 0.103302 0.121490 0.444489 0.104034 0.145233 0.446503 0.104736 0.171722 0.448669 0.105438 0.201202 0.450775 0.106232 0.233459 0.452911 0.106934 0.268402 0.455078 0.107697 0.305725 0.457214 0.108459 0.345184 0.459442 0.109253 0.386505 0.461670 0.109985 0.429230 0.463837 0.110809 0.472961 0.466064 0.111572 0.515717 0.468262 0.112366 0.555847 0.470520 0.113159 0.593353 0.472778 0.114014 0.628143 0.475006 0.114807 0.660400 0.477203 0.115631 0.690521 0.479523 0.116486 0.718872 0.481750 0.117310 0.745667 0.484070 0.118164 0.771088 0.486359 0.119019 0.795563 0.488586 0.119873 0.819153 0.490845 0.120728 0.842255 0.493134 0.121613 0.864990 0.495361 0.122467 0.887695 0.497650 0.123291 0.910675 0.499908 0.124207 0.934509 0.502106 0.125061 0.959961 0.504333 0.125946 0.047913 0.487396 0.096497 0.064362 0.489349 0.097198 0.082245 0.491302 0.097931 0.101776 0.493286 0.098663 0.123383 0.495270 0.099396 0.147247 0.497253 0.100128 0.173981 0.499329 0.100891 0.203522 0.501312 0.101624 0.235901 0.503418 0.102417 0.270966 0.505463 0.103241 0.308319 0.507507 0.103973 0.347839 0.509552 0.104797 0.389130 0.511688 0.105621 0.431885 0.513702 0.106415 0.475403 0.515808 0.107269 0.517944 0.517883 0.108154 0.557892 0.519897 0.108948 0.595123 0.522003 0.109772 0.629639 0.524139 0.110657 0.661713 0.526154 0.111511 0.691681 0.528229 0.112396 0.719788 0.530243 0.113251 0.746460 0.532349 0.114136 0.771790 0.534363 0.115051 0.796112 0.536407 0.115936 0.819672 0.538391 0.116852 0.842621 0.540466 0.117737 0.865234 0.542419 0.118591 0.887909 0.544434 0.119537 0.910858 0.546387 0.120453 0.934601 0.548370 0.121368 0.959961 0.550293 0.122253 0.049377 0.537476 0.091919 0.065948 0.539246 0.092651 0.083893 0.540985 0.093414 0.103577 0.542786 0.094177 0.125305 0.544586 0.094971 0.149353 0.546356 0.095795 0.176178 0.548218 0.096558 0.205963 0.549988 0.097412 0.238434 0.551819 0.098206 0.273529 0.553619 0.099060 0.311005 0.555450 0.099884 0.350494 0.557281 0.100708 0.391815 0.559143 0.101593 0.434479 0.560944 0.102509 0.477905 0.562744 0.103363 0.520172 0.564606 0.104248 0.559814 0.566437 0.105103 0.596802 0.568207 0.106018 0.631104 0.570068 0.106934 0.662994 0.571838 0.107819 0.692749 0.573700 0.108734 0.720764 0.575439 0.109650 0.747284 0.577301 0.110596 0.772522 0.579041 0.111542 0.796722 0.580811 0.112457 0.820160 0.582581 0.113373 0.843048 0.584381 0.114319 0.865601 0.586060 0.115265 0.888153 0.587799 0.116180 0.911011 0.589569 0.117126 0.934692 0.591248 0.118073 0.959961 0.592957 0.118988 0.050842 0.583893 0.087799 0.067535 0.585480 0.088593 0.085602 0.586945 0.089447 0.105377 0.588562 0.090271 0.127258 0.590149 0.091064 0.151459 0.591736 0.091949 0.178467 0.593323 0.092804 0.208313 0.594910 0.093658 0.241028 0.596527 0.094513 0.276215 0.598083 0.095398 0.313660 0.599701 0.096283 0.353241 0.601318 0.097229 0.394501 0.602905 0.098114 0.437164 0.604492 0.098969 0.480408 0.606110 0.099945 0.522461 0.607697 0.100861 0.561798 0.609283 0.101776 0.598480 0.610901 0.102753 0.632599 0.612366 0.103668 0.664276 0.613983 0.104645 0.693878 0.615570 0.105591 0.721710 0.617126 0.106537 0.748077 0.618683 0.107483 0.773163 0.620239 0.108429 0.797272 0.621735 0.109406 0.820618 0.623230 0.110413 0.843414 0.624786 0.111359 0.865906 0.626282 0.112335 0.888367 0.627808 0.113281 0.911194 0.629242 0.114227 0.934814 0.630707 0.115204 0.959961 0.632172 0.116150 0.052399 0.626648 0.084259 0.069153 0.628021 0.085114 0.087341 0.629364 0.085907 0.107239 0.630737 0.086853 0.129211 0.632111 0.087738 0.153625 0.633484 0.088623 0.180786 0.634888 0.089508 0.210846 0.636200 0.090363 0.243591 0.637634 0.091309 0.278839 0.639008 0.092285 0.316345 0.640381 0.093201 0.355957 0.641785 0.094147 0.397186 0.643127 0.095123 0.439758 0.644501 0.096039 0.482910 0.645874 0.096985 0.524658 0.647278 0.097992 0.563721 0.648590 0.098938 0.600281 0.649994 0.099945 0.634064 0.651306 0.100891 0.665497 0.652649 0.101837 0.694946 0.653992 0.102875 0.722626 0.655334 0.103851 0.748871 0.656677 0.104828 0.773865 0.657990 0.105835 0.797882 0.659271 0.106812 0.821106 0.660583 0.107880 0.843842 0.661896 0.108795 0.866241 0.663177 0.109802 0.888611 0.664429 0.110779 0.911346 0.665680 0.111755 0.934875 0.666931 0.112823 0.959961 0.668182 0.113739 0.053986 0.665802 0.081146 0.070801 0.666992 0.082092 0.089081 0.668152 0.082977 0.109131 0.669312 0.083923 0.131256 0.670471 0.084839 0.155792 0.671661 0.085754 0.183136 0.672882 0.086731 0.213318 0.674042 0.087677 0.246216 0.675262 0.088593 0.281555 0.676392 0.089569 0.319122 0.677582 0.090576 0.358704 0.678772 0.091522 0.399902 0.679932 0.092529 0.442383 0.681152 0.093475 0.485443 0.682343 0.094513 0.526825 0.683472 0.095520 0.565704 0.684662 0.096527 0.601929 0.685822 0.097504 0.635529 0.686951 0.098511 0.666809 0.688080 0.099579 0.696045 0.689270 0.100555 0.723572 0.690369 0.101562 0.749664 0.691559 0.102600 0.774567 0.692657 0.103638 0.798462 0.693756 0.104614 0.821594 0.694885 0.105682 0.844177 0.695953 0.106628 0.866547 0.697083 0.107635 0.888855 0.698151 0.108734 0.911530 0.699188 0.109650 0.934967 0.700287 0.110687 0.959961 0.701294 0.111725 0.055603 0.701691 0.078644 0.072510 0.702728 0.079559 0.090881 0.703705 0.080505 0.111084 0.704712 0.081451 0.133331 0.705719 0.082428 0.158051 0.706726 0.083405 0.185577 0.707764 0.084351 0.215881 0.708801 0.085327 0.248840 0.709778 0.086365 0.284271 0.710846 0.087372 0.321869 0.711823 0.088318 0.361450 0.712830 0.089355 0.402618 0.713837 0.090393 0.445038 0.714874 0.091400 0.487885 0.715881 0.092407 0.529053 0.716858 0.093445 0.567596 0.717865 0.094482 0.603577 0.718872 0.095520 0.636963 0.719849 0.096497 0.668060 0.720856 0.097595 0.697113 0.721832 0.098633 0.724518 0.722778 0.099670 0.750427 0.723724 0.100708 0.775208 0.724731 0.101776 0.799011 0.725647 0.102753 0.822083 0.726624 0.103790 0.844604 0.727539 0.104828 0.866821 0.728455 0.105865 0.889069 0.729370 0.106903 0.911682 0.730286 0.107880 0.935089 0.731171 0.108917 0.959961 0.732056 0.109955 0.057220 0.734894 0.076416 0.074249 0.735748 0.077393 0.092712 0.736603 0.078400 0.113007 0.737488 0.079346 0.135437 0.738342 0.080353 0.160309 0.739227 0.081360 0.188049 0.740112 0.082397 0.218414 0.740936 0.083405 0.251495 0.741852 0.084412 0.286987 0.742737 0.085480 0.324615 0.743591 0.086456 0.364258 0.744446 0.087555 0.405365 0.745270 0.088531 0.447693 0.746185 0.089600 0.490417 0.747040 0.090668 0.531189 0.747864 0.091675 0.569580 0.748749 0.092712 0.605286 0.749573 0.093842 0.638397 0.750427 0.094849 0.669281 0.751251 0.095947 0.698181 0.752106 0.096985 0.725433 0.752899 0.098083 0.751251 0.753754 0.099091 0.775879 0.754547 0.100128 0.799530 0.755371 0.101166 0.822510 0.756165 0.102203 0.844940 0.756958 0.103241 0.867126 0.757751 0.104279 0.889313 0.758514 0.105347 0.911835 0.759277 0.106354 0.935120 0.760040 0.107391 0.959961 0.760803 0.108398 0.058899 0.765778 0.074585 0.075958 0.766541 0.075531 0.094604 0.767273 0.076538 0.115051 0.768036 0.077606 0.137543 0.768768 0.078613 0.162628 0.769531 0.079651 0.190460 0.770264 0.080688 0.221008 0.770996 0.081757 0.254211 0.771759 0.082794 0.289764 0.772522 0.083832 0.327393 0.773224 0.084869 0.366974 0.773987 0.085968 0.408051 0.774719 0.087036 0.450287 0.775452 0.088074 0.492798 0.776154 0.089142 0.533386 0.776886 0.090240 0.571442 0.777618 0.091278 0.606934 0.778351 0.092377 0.639832 0.779083 0.093414 0.670502 0.779755 0.094513 0.699219 0.780518 0.095581 0.726318 0.781158 0.096649 0.752014 0.781860 0.097687 0.776550 0.782562 0.098724 0.800079 0.783234 0.099823 0.822937 0.783905 0.100891 0.845337 0.784576 0.101898 0.867432 0.785248 0.102936 0.889557 0.785889 0.104004 0.911987 0.786499 0.105011 0.935211 0.787170 0.106018 0.959961 0.787811 0.107056 0.060547 0.794830 0.072937 0.077759 0.795441 0.074005 0.096466 0.796112 0.075043 0.117035 0.796753 0.076080 0.139709 0.797394 0.077087 0.164948 0.797974 0.078217 0.192963 0.798645 0.079254 0.223633 0.799255 0.080322 0.256866 0.799896 0.081390 0.292450 0.800537 0.082458 0.330200 0.801147 0.083557 0.369781 0.801788 0.084656 0.410767 0.802429 0.085693 0.452942 0.803040 0.086792 0.495270 0.803650 0.087891 0.535522 0.804230 0.088959 0.573334 0.804871 0.090057 0.608521 0.805481 0.091156 0.641266 0.806061 0.092194 0.671753 0.806641 0.093292 0.700256 0.807281 0.094360 0.727203 0.807831 0.095428 0.752747 0.808441 0.096497 0.777161 0.809021 0.097565 0.800690 0.809570 0.098602 0.823456 0.810150 0.099670 0.845673 0.810699 0.100708 0.867737 0.811279 0.101776 0.889771 0.811829 0.102783 0.912109 0.812347 0.103821 0.935303 0.812866 0.104797 0.959961 0.813446 0.105804 0.062256 0.822357 0.071594 0.079529 0.822876 0.072662 0.098389 0.823425 0.073700 0.119049 0.823944 0.074799 0.141907 0.824463 0.075836 0.167297 0.825043 0.076965 0.195435 0.825562 0.078003 0.226227 0.826080 0.079102 0.259583 0.826630 0.080231 0.295227 0.827148 0.081299 0.332977 0.827667 0.082367 0.372528 0.828217 0.083466 0.413483 0.828735 0.084564 0.455536 0.829224 0.085693 0.497650 0.829742 0.086792 0.537659 0.830261 0.087860 0.575226 0.830780 0.088959 0.610138 0.831299 0.090057 0.642609 0.831787 0.091125 0.672852 0.832275 0.092224 0.701294 0.832764 0.093323 0.728058 0.833221 0.094391 0.753510 0.833771 0.095428 0.777802 0.834229 0.096497 0.801147 0.834686 0.097565 0.823853 0.835175 0.098633 0.846069 0.835632 0.099670 0.868011 0.836090 0.100708 0.889954 0.836548 0.101746 0.912231 0.837006 0.102692 0.935364 0.837433 0.103729 0.959961 0.837860 0.104706 0.064026 0.848633 0.070404 0.081360 0.849060 0.071442 0.100281 0.849548 0.072540 0.121094 0.849976 0.073700 0.144104 0.850403 0.074768 0.169617 0.850861 0.075836 0.197906 0.851318 0.076965 0.228851 0.851746 0.078064 0.262299 0.852203 0.079193 0.297974 0.852600 0.080231 0.335693 0.853058 0.081360 0.375214 0.853485 0.082520 0.416138 0.853882 0.083618 0.458099 0.854370 0.084717 0.500061 0.854767 0.085815 0.539734 0.855164 0.086884 0.576996 0.855621 0.088013 0.611755 0.856018 0.089111 0.643982 0.856476 0.090210 0.674072 0.856842 0.091278 0.702271 0.857239 0.092346 0.728943 0.857666 0.093445 0.754242 0.858063 0.094482 0.778381 0.858429 0.095551 0.801697 0.858856 0.096619 0.824280 0.859222 0.097687 0.846375 0.859619 0.098663 0.868286 0.859985 0.099701 0.890137 0.860352 0.100708 0.912384 0.860718 0.101715 0.935425 0.861084 0.102692 0.959961 0.861420 0.103638 0.065704 0.874054 0.069336 0.083160 0.874359 0.070465 0.102234 0.874756 0.071594 0.123230 0.875122 0.072662 0.146332 0.875458 0.073792 0.172028 0.875824 0.074921 0.200409 0.876160 0.076019 0.231476 0.876556 0.077118 0.264984 0.876892 0.078278 0.300720 0.877258 0.079315 0.338470 0.877594 0.080505 0.377899 0.877991 0.081604 0.418823 0.878296 0.082703 0.460663 0.878632 0.083832 0.502350 0.878998 0.084961 0.541779 0.879333 0.086029 0.578796 0.879700 0.087128 0.613281 0.880035 0.088226 0.645264 0.880371 0.089325 0.675201 0.880707 0.090424 0.703278 0.881012 0.091461 0.729767 0.881348 0.092529 0.754944 0.881653 0.093597 0.778992 0.881958 0.094666 0.802216 0.882263 0.095703 0.824707 0.882599 0.096741 0.846771 0.882904 0.097717 0.868530 0.883209 0.098724 0.890350 0.883484 0.099762 0.912537 0.883759 0.100739 0.935486 0.884094 0.101685 0.959961 0.884338 0.102631 0.067474 0.898804 0.068390 0.085022 0.899078 0.069519 0.104218 0.899353 0.070648 0.125275 0.899628 0.071777 0.148560 0.899933 0.072906 0.174408 0.900269 0.074005 0.202942 0.900482 0.075165 0.234100 0.900818 0.076233 0.267700 0.901093 0.077423 0.303406 0.901337 0.078522 0.341217 0.901611 0.079651 0.380676 0.901917 0.080750 0.421448 0.902191 0.081848 0.463165 0.902435 0.082977 0.504578 0.902740 0.084076 0.543823 0.902985 0.085205 0.580566 0.903259 0.086334 0.614777 0.903534 0.087372 0.646606 0.903778 0.088501 0.676331 0.904053 0.089539 0.704224 0.904297 0.090607 0.730591 0.904572 0.091675 0.755646 0.904816 0.092743 0.779602 0.905060 0.093750 0.802704 0.905273 0.094818 0.825104 0.905548 0.095795 0.847046 0.905762 0.096802 0.868835 0.906006 0.097809 0.890564 0.906250 0.098755 0.912628 0.906433 0.099731 0.935547 0.906677 0.100677 0.959961 0.906860 0.101593 0.069214 0.923279 0.067535 0.086884 0.923523 0.068604 0.106171 0.923737 0.069794 0.127350 0.923920 0.070892 0.150787 0.924164 0.072083 0.176758 0.924347 0.073151 0.205444 0.924561 0.074310 0.236694 0.924805 0.075409 0.270355 0.924988 0.076569 0.306152 0.925201 0.077667 0.343903 0.925385 0.078827 0.383331 0.925629 0.079987 0.424011 0.925842 0.081085 0.465668 0.926025 0.082184 0.506866 0.926208 0.083282 0.545746 0.926422 0.084351 0.582275 0.926666 0.085480 0.616272 0.926849 0.086517 0.647888 0.927032 0.087646 0.677399 0.927216 0.088715 0.705139 0.927429 0.089752 0.731354 0.927612 0.090759 0.756287 0.927795 0.091858 0.780151 0.927979 0.092865 0.803162 0.928131 0.093872 0.825500 0.928284 0.094849 0.847412 0.928497 0.095856 0.869049 0.928680 0.096832 0.890778 0.928833 0.097748 0.912781 0.928986 0.098694 0.935577 0.929138 0.099670 0.959961 0.929321 0.100555 0.070984 0.947906 0.066589 0.088745 0.948090 0.067719 0.108124 0.948242 0.068878 0.129425 0.948364 0.070038 0.153046 0.948486 0.071167 0.179199 0.948669 0.072266 0.208008 0.948761 0.073456 0.239319 0.948944 0.074524 0.273041 0.949066 0.075745 0.308807 0.949188 0.076843 0.346558 0.949371 0.077972 0.385925 0.949554 0.079071 0.426605 0.949646 0.080200 0.468079 0.949799 0.081299 0.509064 0.949921 0.082367 0.547699 0.950073 0.083496 0.583954 0.950165 0.084595 0.617706 0.950317 0.085663 0.649109 0.950439 0.086731 0.678467 0.950592 0.087769 0.706055 0.950684 0.088806 0.732147 0.950836 0.089844 0.756958 0.950958 0.090881 0.780731 0.951080 0.091858 0.803650 0.951202 0.092896 0.825867 0.951324 0.093811 0.847687 0.951447 0.094788 0.869293 0.951538 0.095764 0.890900 0.951660 0.096649 0.912903 0.951752 0.097595 0.935669 0.951843 0.098511 0.959961 0.951965 0.099304 0.072754 0.973236 0.065582 0.090607 0.973267 0.066742 0.110107 0.973358 0.067902 0.131531 0.973450 0.069000 0.155304 0.973511 0.070221 0.181580 0.973572 0.071289 0.210449 0.973663 0.072479 0.241882 0.973785 0.073639 0.275635 0.973846 0.074768 0.311493 0.973938 0.075867 0.349243 0.973969 0.077026 0.388550 0.974091 0.078094 0.429138 0.974121 0.079224 0.470490 0.974182 0.080353 0.511200 0.974304 0.081421 0.549591 0.974335 0.082520 0.585571 0.974396 0.083588 0.619110 0.974457 0.084625 0.650330 0.974518 0.085663 0.679474 0.974579 0.086700 0.706940 0.974670 0.087769 0.732910 0.974731 0.088806 0.757629 0.974762 0.089752 0.781281 0.974854 0.090729 0.804077 0.974915 0.091705 0.826263 0.974976 0.092712 0.847992 0.975037 0.093597 0.869537 0.975067 0.094513 0.891083 0.975128 0.095398 0.913025 0.975189 0.096313 0.935730 0.975220 0.097137 0.959961 0.975281 0.097961 0.074493 1.000000 0.064392 0.092468 1.000000 0.065552 0.112091 1.000000 0.066742 0.133636 1.000000 0.067841 0.157501 1.000000 0.069031 0.183960 1.000000 0.070190 0.212952 1.000000 0.071350 0.244446 1.000000 0.072449 0.278198 1.000000 0.073547 0.314087 1.000000 0.074738 0.351776 1.000000 0.075867 0.391083 1.000000 0.076935 0.431610 1.000000 0.078033 0.472839 1.000000 0.079163 0.513275 1.000000 0.080200 0.551392 1.000000 0.081299 0.587189 1.000000 0.082367 0.620483 1.000000 0.083374 0.651520 1.000000 0.084442 0.680542 1.000000 0.085480 0.707794 1.000000 0.086487 0.733612 1.000000 0.087463 0.758240 1.000000 0.088409 0.781769 1.000000 0.089386 0.804504 1.000000 0.090332 0.826599 1.000000 0.091248 0.848297 1.000000 0.092163 0.869751 1.000000 0.093048 0.891266 1.000000 0.093903 0.913116 1.000000 0.094757 0.935822 1.000000 0.095581 0.959961 1.000000 0.096375 0.031647 0.001129 0.164459 0.047089 0.001709 0.164886 0.063690 0.002289 0.165283 0.081757 0.002899 0.165741 0.101562 0.003540 0.166168 0.123505 0.004211 0.166656 0.147980 0.004913 0.167175 0.175293 0.005646 0.167694 0.205750 0.006348 0.168213 0.239136 0.007141 0.168793 0.275391 0.007935 0.169342 0.314117 0.008728 0.169952 0.355164 0.009583 0.170532 0.398102 0.010406 0.171173 0.442474 0.011322 0.171783 0.487549 0.012238 0.172485 0.530823 0.013123 0.173096 0.571320 0.014099 0.173828 0.608948 0.015076 0.174530 0.643799 0.016052 0.175262 0.676178 0.017059 0.175934 0.706421 0.018097 0.176727 0.734924 0.019165 0.177490 0.761963 0.020233 0.178253 0.787750 0.021332 0.179047 0.812653 0.022430 0.179901 0.836853 0.023590 0.180695 0.860687 0.024689 0.181519 0.884399 0.025879 0.182373 0.908478 0.027069 0.183228 0.933319 0.028229 0.184052 0.959961 0.029480 0.184967 0.032410 0.017273 0.163330 0.047882 0.017883 0.163757 0.064575 0.018555 0.164185 0.082672 0.019226 0.164673 0.102600 0.019928 0.165161 0.124634 0.020630 0.165741 0.149200 0.021393 0.166260 0.176697 0.022186 0.166840 0.207275 0.022980 0.167358 0.240784 0.023804 0.167999 0.277100 0.024658 0.168579 0.315948 0.025543 0.169159 0.356995 0.026428 0.169830 0.399902 0.027344 0.170502 0.444366 0.028290 0.171112 0.489288 0.029266 0.171814 0.532410 0.030243 0.172516 0.572693 0.031250 0.173248 0.610199 0.032288 0.173950 0.644836 0.033356 0.174713 0.677094 0.034454 0.175476 0.707184 0.035522 0.176239 0.735626 0.036621 0.177002 0.762543 0.037750 0.177826 0.788269 0.038910 0.178619 0.813110 0.040100 0.179443 0.837250 0.041321 0.180328 0.860931 0.042511 0.181183 0.884674 0.043762 0.182007 0.908630 0.045044 0.182892 0.933441 0.046295 0.183777 0.959961 0.047577 0.184662 0.033142 0.034363 0.162140 0.048676 0.035034 0.162628 0.065460 0.035736 0.163086 0.083679 0.036499 0.163666 0.103699 0.037262 0.164154 0.125824 0.038055 0.164734 0.150482 0.038910 0.165253 0.178162 0.039764 0.165924 0.208862 0.040619 0.166443 0.242523 0.041534 0.167084 0.278839 0.042419 0.167664 0.317810 0.043365 0.168335 0.358887 0.044342 0.169006 0.401825 0.045349 0.169708 0.446228 0.046356 0.170410 0.491150 0.047424 0.171112 0.534058 0.048462 0.171814 0.574127 0.049591 0.172577 0.611450 0.050720 0.173370 0.645966 0.051819 0.174072 0.678040 0.052979 0.174866 0.708008 0.054169 0.175629 0.736359 0.055359 0.176453 0.763153 0.056610 0.177277 0.788788 0.057831 0.178131 0.813507 0.059082 0.179016 0.837585 0.060364 0.179840 0.861267 0.061676 0.180725 0.884888 0.062988 0.181580 0.908813 0.064392 0.182404 0.933502 0.065704 0.183319 0.959961 0.067108 0.184265 0.033997 0.052643 0.160889 0.049591 0.053436 0.161438 0.066406 0.054230 0.161926 0.084747 0.055054 0.162506 0.104858 0.055908 0.163055 0.127106 0.056793 0.163666 0.151917 0.057709 0.164215 0.179688 0.058624 0.164825 0.210541 0.059601 0.165436 0.244293 0.060577 0.166107 0.280731 0.061584 0.166748 0.319733 0.062622 0.167419 0.360931 0.063751 0.168152 0.403839 0.064789 0.168823 0.448212 0.065918 0.169495 0.492981 0.067078 0.170288 0.535675 0.068207 0.171021 0.575592 0.069397 0.171783 0.612762 0.070648 0.172546 0.647095 0.071838 0.173309 0.679016 0.073120 0.174164 0.708893 0.074402 0.174927 0.737061 0.075714 0.175781 0.763763 0.077057 0.176605 0.789307 0.078369 0.177460 0.813995 0.079773 0.178314 0.837982 0.081146 0.179199 0.861542 0.082550 0.180054 0.885071 0.084015 0.180939 0.908966 0.085449 0.181854 0.933594 0.086914 0.182709 0.959961 0.088470 0.183655 0.034851 0.072571 0.159546 0.050537 0.073486 0.160095 0.067444 0.074371 0.160553 0.085846 0.075287 0.161224 0.106079 0.076233 0.161835 0.128448 0.077240 0.162384 0.153412 0.078247 0.162994 0.181305 0.079254 0.163635 0.212280 0.080322 0.164276 0.246185 0.081421 0.164978 0.282745 0.082550 0.165649 0.321808 0.083710 0.166351 0.362976 0.084930 0.167053 0.405914 0.086090 0.167786 0.450256 0.087311 0.168488 0.494934 0.088593 0.169250 0.537415 0.089874 0.170013 0.577148 0.091156 0.170807 0.614075 0.092499 0.171600 0.648254 0.093842 0.172424 0.680023 0.095215 0.173248 0.709747 0.096649 0.174011 0.737823 0.098053 0.174896 0.764404 0.099548 0.175720 0.789886 0.101013 0.176544 0.814423 0.102509 0.177429 0.838318 0.104034 0.178314 0.861847 0.105560 0.179199 0.885284 0.107117 0.180054 0.909119 0.108704 0.180969 0.933685 0.110352 0.181854 0.959961 0.111969 0.182800 0.035828 0.094574 0.157928 0.051575 0.095581 0.158539 0.068512 0.096558 0.159149 0.087036 0.097656 0.159698 0.107391 0.098724 0.160309 0.129883 0.099792 0.160950 0.154968 0.100922 0.161591 0.183044 0.102051 0.162262 0.214111 0.103302 0.162872 0.248138 0.104523 0.163605 0.284821 0.105743 0.164276 0.323883 0.107025 0.165009 0.365143 0.108368 0.165771 0.408051 0.109650 0.166473 0.452423 0.111053 0.167236 0.496857 0.112457 0.167999 0.539154 0.113831 0.168793 0.578674 0.115326 0.169586 0.615448 0.116760 0.170380 0.649414 0.118286 0.171173 0.681030 0.119812 0.172028 0.710632 0.121307 0.172821 0.738586 0.122925 0.173706 0.765045 0.124542 0.174530 0.790436 0.126129 0.175354 0.814880 0.127808 0.176270 0.838745 0.129456 0.177155 0.862152 0.131134 0.178009 0.885559 0.132874 0.178894 0.909271 0.134583 0.179779 0.933746 0.136383 0.180695 0.959961 0.138153 0.181641 0.036835 0.119080 0.156189 0.052643 0.120209 0.156769 0.069702 0.121338 0.157349 0.088257 0.122528 0.157990 0.108734 0.123718 0.158569 0.131378 0.124969 0.159241 0.156647 0.126282 0.159912 0.184814 0.127563 0.160583 0.216095 0.128906 0.161255 0.250153 0.130280 0.161987 0.286926 0.131683 0.162689 0.326080 0.133087 0.163422 0.367310 0.134552 0.164154 0.410248 0.136047 0.164917 0.454529 0.137573 0.165680 0.498901 0.139099 0.166443 0.540985 0.140686 0.167236 0.580292 0.142273 0.167999 0.616791 0.143890 0.168854 0.650635 0.145569 0.169647 0.682068 0.147247 0.170532 0.711548 0.148926 0.171295 0.739349 0.150696 0.172150 0.765717 0.152496 0.173035 0.790985 0.154266 0.173859 0.815399 0.156067 0.174744 0.839111 0.157959 0.175629 0.862488 0.159790 0.176483 0.885773 0.161713 0.177368 0.909424 0.163574 0.178284 0.933868 0.165558 0.179169 0.959961 0.167480 0.180115 0.037872 0.146637 0.154022 0.053772 0.147888 0.154694 0.070892 0.149170 0.155273 0.089630 0.150543 0.155914 0.110107 0.151886 0.156555 0.132935 0.153320 0.157227 0.158356 0.154785 0.157898 0.186707 0.156189 0.158569 0.218079 0.157715 0.159271 0.252258 0.159271 0.159973 0.289093 0.160797 0.160736 0.328339 0.162445 0.161499 0.369598 0.164062 0.162231 0.412567 0.165680 0.162964 0.456757 0.167389 0.163757 0.500916 0.169098 0.164490 0.542816 0.170868 0.165344 0.581940 0.172668 0.166107 0.618225 0.174438 0.166931 0.651794 0.176270 0.167725 0.683136 0.178162 0.168549 0.712433 0.180054 0.169403 0.740112 0.181976 0.170258 0.766418 0.183990 0.171112 0.791595 0.185913 0.171967 0.815857 0.187927 0.172791 0.839508 0.189911 0.173676 0.862823 0.191986 0.174561 0.886017 0.194092 0.175446 0.909576 0.196136 0.176331 0.933960 0.198242 0.177246 0.959961 0.200409 0.178162 0.039032 0.177795 0.151520 0.054962 0.179199 0.152130 0.072174 0.180664 0.152771 0.090973 0.182220 0.153473 0.111603 0.183746 0.154083 0.134552 0.185303 0.154755 0.160126 0.186981 0.155426 0.188629 0.188568 0.156128 0.220123 0.190277 0.156860 0.254486 0.192017 0.157623 0.291382 0.193726 0.158325 0.330627 0.195496 0.159088 0.371887 0.197296 0.159821 0.414856 0.199158 0.160553 0.459015 0.201050 0.161346 0.503021 0.202911 0.162140 0.544678 0.204865 0.162933 0.583527 0.206848 0.163757 0.619629 0.208801 0.164520 0.653046 0.210815 0.165405 0.684204 0.212860 0.166229 0.713379 0.214905 0.167023 0.740906 0.217010 0.167908 0.767090 0.219177 0.168732 0.792145 0.221252 0.169556 0.816315 0.223419 0.170441 0.839905 0.225555 0.171295 0.863098 0.227783 0.172211 0.886261 0.230011 0.173096 0.909729 0.232239 0.173950 0.933990 0.234497 0.174866 0.959961 0.236816 0.175751 0.040161 0.212921 0.148590 0.056152 0.214508 0.149231 0.073517 0.216125 0.149841 0.092438 0.217834 0.150513 0.113190 0.219513 0.151184 0.136261 0.221283 0.151886 0.161987 0.223022 0.152557 0.190643 0.224823 0.153259 0.222290 0.226685 0.153992 0.256714 0.228577 0.154755 0.293701 0.230438 0.155457 0.333038 0.232391 0.156219 0.374329 0.234314 0.157013 0.417267 0.236359 0.157776 0.461334 0.238403 0.158539 0.505219 0.240417 0.159332 0.546570 0.242493 0.160156 0.585205 0.244568 0.160980 0.621063 0.246674 0.161743 0.654327 0.248871 0.162598 0.685242 0.251099 0.163422 0.714355 0.253265 0.164246 0.741699 0.255463 0.165100 0.767792 0.257660 0.165955 0.792725 0.259949 0.166809 0.816833 0.262238 0.167694 0.840302 0.264496 0.168518 0.863434 0.266815 0.169403 0.886505 0.269165 0.170319 0.909882 0.271484 0.171204 0.934113 0.273834 0.172119 0.959961 0.276276 0.173004 0.041382 0.251770 0.145203 0.057465 0.253510 0.145844 0.074890 0.255310 0.146484 0.093933 0.257111 0.147186 0.114807 0.258911 0.147888 0.138031 0.260803 0.148560 0.163849 0.262756 0.149292 0.192749 0.264679 0.150024 0.224487 0.266663 0.150726 0.259003 0.268646 0.151459 0.296143 0.270691 0.152252 0.335449 0.272766 0.153015 0.376770 0.274811 0.153748 0.419708 0.276917 0.154541 0.463684 0.279083 0.155365 0.507355 0.281219 0.156158 0.548462 0.283417 0.156952 0.586884 0.285675 0.157776 0.622528 0.287872 0.158600 0.655579 0.290131 0.159424 0.686401 0.292419 0.160248 0.715210 0.294678 0.161133 0.742523 0.297058 0.161957 0.768463 0.299316 0.162811 0.793304 0.301697 0.163666 0.817291 0.304047 0.164551 0.840698 0.306427 0.165405 0.863739 0.308807 0.166321 0.886749 0.311218 0.167206 0.910065 0.313599 0.168060 0.934174 0.316040 0.168976 0.959961 0.318512 0.169830 0.042694 0.294098 0.141449 0.058838 0.295929 0.142120 0.076324 0.297821 0.142792 0.095490 0.299744 0.143463 0.116486 0.301697 0.144196 0.139832 0.303680 0.144928 0.165863 0.305725 0.145630 0.194885 0.307739 0.146362 0.226776 0.309814 0.147095 0.261414 0.311890 0.147888 0.298523 0.314056 0.148651 0.337982 0.316193 0.149414 0.379272 0.318329 0.150177 0.422150 0.320557 0.151031 0.466064 0.322815 0.151825 0.509460 0.325043 0.152618 0.550446 0.327301 0.153442 0.588562 0.329590 0.154266 0.623993 0.331879 0.155090 0.656830 0.334198 0.155945 0.687439 0.336456 0.156769 0.716187 0.338867 0.157623 0.743347 0.341278 0.158508 0.769165 0.343597 0.159363 0.793884 0.346008 0.160217 0.817810 0.348450 0.161133 0.841064 0.350830 0.161987 0.864075 0.353241 0.162903 0.886993 0.355713 0.163788 0.910248 0.358063 0.164673 0.934296 0.360596 0.165558 0.959961 0.362976 0.166473 0.043976 0.339417 0.137360 0.060211 0.341339 0.138062 0.077820 0.343323 0.138763 0.097046 0.345306 0.139465 0.118225 0.347351 0.140198 0.141724 0.349396 0.140930 0.167877 0.351471 0.141663 0.197083 0.353577 0.142395 0.229126 0.355743 0.143250 0.263794 0.357880 0.143982 0.301056 0.360077 0.144745 0.340515 0.362244 0.145569 0.381775 0.364502 0.146362 0.424652 0.366730 0.147125 0.468475 0.369049 0.147980 0.511688 0.371277 0.148773 0.552368 0.373627 0.149628 0.590240 0.375977 0.150513 0.625458 0.378235 0.151306 0.658112 0.380585 0.152191 0.688568 0.382874 0.153046 0.717163 0.385315 0.153900 0.744141 0.387665 0.154785 0.769836 0.390076 0.155670 0.794495 0.392487 0.156555 0.818268 0.394867 0.157440 0.841492 0.397278 0.158325 0.864410 0.399750 0.159241 0.887238 0.402100 0.160156 0.910400 0.404541 0.161011 0.934357 0.406982 0.161926 0.959961 0.409393 0.162811 0.045349 0.387299 0.133026 0.061676 0.389252 0.133728 0.079376 0.391296 0.134460 0.098694 0.393341 0.135193 0.119995 0.395386 0.135925 0.143646 0.397461 0.136688 0.170044 0.399597 0.137482 0.199341 0.401733 0.138245 0.231506 0.403931 0.139008 0.266327 0.406036 0.139801 0.303589 0.408295 0.140625 0.343048 0.410522 0.141449 0.384399 0.412689 0.142303 0.427185 0.414978 0.143097 0.470917 0.417267 0.143921 0.513916 0.419525 0.144806 0.554321 0.421814 0.145630 0.592010 0.424103 0.146484 0.626953 0.426483 0.147400 0.659424 0.428802 0.148224 0.689667 0.431091 0.149078 0.718109 0.433472 0.149963 0.744965 0.435852 0.150879 0.770569 0.438141 0.151764 0.795074 0.440521 0.152649 0.818817 0.442932 0.153595 0.841888 0.445251 0.154449 0.864716 0.447632 0.155426 0.887482 0.449982 0.156250 0.910583 0.452362 0.157227 0.934479 0.454742 0.158142 0.959961 0.457092 0.159027 0.046722 0.437103 0.128479 0.063141 0.439087 0.129181 0.080933 0.441101 0.129974 0.100403 0.443207 0.130737 0.121826 0.445190 0.131500 0.145630 0.447327 0.132294 0.172150 0.449371 0.133057 0.201630 0.451538 0.133850 0.233917 0.453735 0.134735 0.268860 0.455811 0.135529 0.306213 0.458038 0.136383 0.345703 0.460236 0.137177 0.386963 0.462402 0.138062 0.429810 0.464630 0.138916 0.473358 0.466797 0.139709 0.516144 0.469055 0.140625 0.556305 0.471344 0.141510 0.593689 0.473572 0.142334 0.628448 0.475800 0.143280 0.660706 0.478088 0.144135 0.690796 0.480316 0.145050 0.719025 0.482635 0.145935 0.745789 0.484924 0.146851 0.771240 0.487152 0.147827 0.795685 0.489410 0.148712 0.819244 0.491730 0.149658 0.842316 0.493927 0.150543 0.865021 0.496216 0.151520 0.887726 0.498413 0.152405 0.910706 0.500702 0.153320 0.934540 0.502991 0.154297 0.959961 0.505157 0.155182 0.048187 0.488129 0.123840 0.064667 0.490051 0.124573 0.082550 0.492004 0.125397 0.102081 0.493988 0.126190 0.123718 0.495972 0.127014 0.147644 0.498016 0.127808 0.174347 0.500000 0.128662 0.203979 0.502106 0.129486 0.236389 0.504211 0.130310 0.271393 0.506195 0.131165 0.308838 0.508331 0.132050 0.348358 0.510376 0.132935 0.389618 0.512451 0.133759 0.432373 0.514496 0.134674 0.475861 0.516571 0.135559 0.518372 0.518646 0.136505 0.558228 0.520721 0.137421 0.595398 0.522766 0.138306 0.629944 0.524811 0.139252 0.661957 0.526947 0.140137 0.691833 0.528961 0.141113 0.720001 0.531067 0.142090 0.746613 0.533112 0.143005 0.771942 0.535095 0.143951 0.796234 0.537109 0.144897 0.819733 0.539124 0.145874 0.842682 0.541168 0.146851 0.865326 0.543182 0.147766 0.887939 0.545166 0.148743 0.910889 0.547119 0.149689 0.934662 0.549103 0.150665 0.959961 0.551025 0.151642 0.049652 0.538147 0.119385 0.066223 0.539825 0.120209 0.084229 0.541626 0.121063 0.103912 0.543396 0.121857 0.125610 0.545227 0.122742 0.149719 0.547089 0.123627 0.176575 0.548859 0.124481 0.206390 0.550659 0.125366 0.238922 0.552490 0.126282 0.274017 0.554321 0.127167 0.311493 0.556183 0.128082 0.351044 0.557953 0.128998 0.392273 0.559814 0.129913 0.434998 0.561615 0.130890 0.478333 0.563416 0.131805 0.520599 0.565308 0.132782 0.560211 0.567108 0.133728 0.597107 0.568909 0.134674 0.631378 0.570740 0.135651 0.663239 0.572510 0.136627 0.692993 0.574341 0.137604 0.720947 0.576111 0.138580 0.747437 0.577911 0.139557 0.772614 0.579681 0.140564 0.796814 0.581482 0.141571 0.820251 0.583252 0.142548 0.843109 0.584961 0.143524 0.865662 0.586731 0.144531 0.888184 0.588409 0.145538 0.911041 0.590149 0.146515 0.934723 0.591888 0.147552 0.959961 0.593536 0.148529 0.051178 0.584473 0.115448 0.067810 0.586029 0.116302 0.085938 0.587616 0.117188 0.105713 0.589142 0.118103 0.127594 0.590729 0.119019 0.151855 0.592316 0.119934 0.178894 0.593903 0.120819 0.208832 0.595520 0.121765 0.241486 0.597107 0.122742 0.276672 0.598694 0.123688 0.314209 0.600311 0.124634 0.353729 0.601929 0.125610 0.394989 0.603485 0.126587 0.437653 0.605103 0.127594 0.480865 0.606628 0.128540 0.522797 0.608276 0.129517 0.562164 0.609863 0.130524 0.598816 0.611389 0.131561 0.632874 0.613007 0.132538 0.664520 0.614624 0.133545 0.694061 0.616119 0.134583 0.721893 0.617706 0.135590 0.748230 0.619263 0.136597 0.773285 0.620758 0.137634 0.797394 0.622345 0.138641 0.820709 0.623810 0.139679 0.843475 0.625366 0.140686 0.865967 0.626831 0.141724 0.888458 0.628326 0.142731 0.911194 0.629791 0.143799 0.934814 0.631256 0.144775 0.959961 0.632660 0.145813 0.052673 0.627106 0.112030 0.069458 0.628510 0.112946 0.087646 0.629852 0.113892 0.107605 0.631226 0.114807 0.129608 0.632599 0.115784 0.154022 0.633972 0.116730 0.181213 0.635376 0.117706 0.211304 0.636749 0.118683 0.244080 0.638123 0.119690 0.279358 0.639496 0.120667 0.316895 0.640900 0.121674 0.356445 0.642242 0.122711 0.397675 0.643616 0.123718 0.440247 0.645020 0.124725 0.483398 0.646362 0.125702 0.525024 0.647766 0.126801 0.564117 0.649109 0.127808 0.600525 0.650452 0.128815 0.634369 0.651825 0.129913 0.665771 0.653198 0.130951 0.695160 0.654480 0.131989 0.722809 0.655853 0.133026 0.748993 0.657135 0.134094 0.773987 0.658508 0.135132 0.797974 0.659790 0.136200 0.821228 0.661041 0.137207 0.843903 0.662354 0.138275 0.866272 0.663635 0.139374 0.888672 0.664917 0.140350 0.911346 0.666138 0.141418 0.934875 0.667389 0.142487 0.959961 0.668610 0.143494 0.054291 0.666199 0.109131 0.071106 0.667358 0.110107 0.089447 0.668579 0.111084 0.109497 0.669739 0.112030 0.131653 0.670929 0.113068 0.156219 0.672119 0.114044 0.183594 0.673309 0.115051 0.213806 0.674469 0.116089 0.246704 0.675690 0.117126 0.282043 0.676849 0.118164 0.319641 0.678040 0.119202 0.359222 0.679169 0.120239 0.400421 0.680359 0.121246 0.442932 0.681549 0.122375 0.485901 0.682709 0.123383 0.527252 0.683899 0.124420 0.566040 0.685059 0.125549 0.602203 0.686218 0.126556 0.635803 0.687347 0.127686 0.667053 0.688568 0.128754 0.696228 0.689697 0.129822 0.723755 0.690826 0.130890 0.749817 0.691895 0.131958 0.774689 0.693085 0.132996 0.798584 0.694183 0.134125 0.821686 0.695282 0.135162 0.844269 0.696381 0.136261 0.866608 0.697479 0.137329 0.888885 0.698517 0.138367 0.911530 0.699615 0.139435 0.934967 0.700684 0.140533 0.959961 0.701691 0.141541 0.055878 0.702026 0.106659 0.072815 0.703033 0.107697 0.091248 0.704071 0.108704 0.111450 0.705078 0.109741 0.133728 0.706146 0.110779 0.158478 0.707153 0.111816 0.186005 0.708130 0.112854 0.216339 0.709167 0.113922 0.249329 0.710175 0.114960 0.284790 0.711182 0.116058 0.322388 0.712219 0.117096 0.361969 0.713226 0.118195 0.403107 0.714233 0.119263 0.445557 0.715240 0.120331 0.488342 0.716248 0.121429 0.529449 0.717255 0.122498 0.568024 0.718262 0.123627 0.603912 0.719208 0.124725 0.637268 0.720215 0.125854 0.668304 0.721191 0.126923 0.697327 0.722168 0.127991 0.724670 0.723145 0.129059 0.750580 0.724091 0.130157 0.775330 0.725037 0.131256 0.799103 0.726013 0.132385 0.822144 0.726929 0.133423 0.844666 0.727875 0.134491 0.866882 0.728821 0.135620 0.889099 0.729706 0.136688 0.911743 0.730621 0.137726 0.935089 0.731537 0.138824 0.959961 0.732391 0.139862 0.057495 0.735168 0.104614 0.074524 0.736053 0.105682 0.093079 0.736938 0.106750 0.113403 0.737793 0.107788 0.135864 0.738678 0.108856 0.160736 0.739563 0.109924 0.188416 0.740417 0.111023 0.218933 0.741302 0.112091 0.251984 0.742157 0.113159 0.287476 0.743042 0.114288 0.325165 0.743896 0.115387 0.364716 0.744751 0.116486 0.405853 0.745636 0.117584 0.448181 0.746490 0.118683 0.490845 0.747345 0.119781 0.531616 0.748199 0.120941 0.569916 0.749054 0.122040 0.605560 0.749878 0.123169 0.638672 0.750732 0.124268 0.669525 0.751556 0.125336 0.698395 0.752380 0.126434 0.725555 0.753235 0.127563 0.751373 0.754028 0.128662 0.776001 0.754822 0.129761 0.799652 0.755676 0.130859 0.822601 0.756439 0.131958 0.845062 0.757233 0.133057 0.867218 0.758026 0.134155 0.889343 0.758820 0.135193 0.911835 0.759552 0.136292 0.935150 0.760315 0.137329 0.959961 0.761078 0.138397 0.059143 0.766052 0.102905 0.076294 0.766815 0.103973 0.094940 0.767578 0.105072 0.115356 0.768341 0.106140 0.137970 0.769073 0.107269 0.163055 0.769806 0.108368 0.190918 0.770538 0.109467 0.221497 0.771301 0.110565 0.254669 0.772003 0.111694 0.290222 0.772766 0.112793 0.327942 0.773529 0.113922 0.367462 0.774261 0.115051 0.408600 0.774994 0.116180 0.450867 0.775696 0.117340 0.493256 0.776459 0.118408 0.533783 0.777191 0.119568 0.571808 0.777893 0.120667 0.607178 0.778625 0.121796 0.640106 0.779327 0.122925 0.670685 0.780029 0.124023 0.699402 0.780731 0.125153 0.726501 0.781403 0.126282 0.752167 0.782104 0.127380 0.776672 0.782806 0.128479 0.800232 0.783508 0.129608 0.823059 0.784149 0.130707 0.845428 0.784821 0.131805 0.867462 0.785461 0.132874 0.889557 0.786133 0.133972 0.912018 0.786743 0.135040 0.935211 0.787415 0.136108 0.959961 0.788025 0.137146 0.060883 0.795074 0.101410 0.078064 0.795715 0.102539 0.096832 0.796356 0.103699 0.117432 0.796967 0.104767 0.140106 0.797607 0.105896 0.165344 0.798248 0.107056 0.193420 0.798889 0.108185 0.224152 0.799500 0.109314 0.257385 0.800110 0.110443 0.293030 0.800781 0.111542 0.330719 0.801392 0.112701 0.370209 0.802002 0.113861 0.411285 0.802643 0.114990 0.453430 0.803253 0.116150 0.495697 0.803864 0.117279 0.535950 0.804443 0.118408 0.573669 0.805084 0.119537 0.608826 0.805695 0.120697 0.641510 0.806305 0.121796 0.671936 0.806915 0.122925 0.700439 0.807495 0.124054 0.727386 0.808044 0.125183 0.752869 0.808624 0.126282 0.777283 0.809235 0.127441 0.800781 0.809814 0.128540 0.823517 0.810364 0.129608 0.845764 0.810883 0.130737 0.867798 0.811493 0.131744 0.889801 0.812012 0.132843 0.912109 0.812531 0.133972 0.935303 0.813080 0.134949 0.959961 0.813599 0.136017 0.062561 0.822540 0.100189 0.079895 0.823090 0.101379 0.098755 0.823608 0.102509 0.119446 0.824158 0.103607 0.142334 0.824707 0.104797 0.167694 0.825226 0.105896 0.195862 0.825745 0.107086 0.226746 0.826263 0.108215 0.260071 0.826813 0.109375 0.295715 0.827332 0.110535 0.333466 0.827850 0.111694 0.372986 0.828400 0.112793 0.413971 0.828918 0.113983 0.456055 0.829407 0.115112 0.498108 0.829926 0.116272 0.538086 0.830444 0.117462 0.575470 0.830933 0.118591 0.610474 0.831451 0.119690 0.642853 0.831970 0.120850 0.673096 0.832428 0.121979 0.701477 0.832947 0.123077 0.728241 0.833466 0.124268 0.753662 0.833923 0.125336 0.777924 0.834412 0.126465 0.801270 0.834900 0.127594 0.823944 0.835358 0.128632 0.846130 0.835815 0.129761 0.868042 0.836243 0.130798 0.889984 0.836700 0.131866 0.912262 0.837158 0.132935 0.935364 0.837585 0.133942 0.959961 0.838013 0.134949 0.064270 0.848785 0.099152 0.081696 0.849243 0.100342 0.100616 0.849701 0.101471 0.121490 0.850128 0.102631 0.144501 0.850616 0.103821 0.170105 0.851013 0.104950 0.198395 0.851471 0.106110 0.229370 0.851929 0.107269 0.262787 0.852325 0.108490 0.298492 0.852814 0.109589 0.336212 0.853210 0.110809 0.375732 0.853638 0.111938 0.416656 0.854095 0.113098 0.458588 0.854523 0.114227 0.500458 0.854919 0.115387 0.540161 0.855347 0.116608 0.577301 0.855774 0.117706 0.612000 0.856171 0.118866 0.644257 0.856628 0.119995 0.674255 0.856995 0.121124 0.702454 0.857391 0.122253 0.729126 0.857819 0.123413 0.754364 0.858215 0.124481 0.778534 0.858612 0.125580 0.801788 0.859009 0.126678 0.824371 0.859344 0.127777 0.846466 0.859772 0.128845 0.868317 0.860138 0.129852 0.890198 0.860474 0.130951 0.912415 0.860870 0.131989 0.935425 0.861176 0.132996 0.959961 0.861542 0.133972 0.066040 0.874146 0.098267 0.083557 0.874512 0.099426 0.102600 0.874878 0.100586 0.123566 0.875244 0.101776 0.146729 0.875610 0.102966 0.172424 0.875977 0.104126 0.200928 0.876312 0.105316 0.231995 0.876678 0.106506 0.265472 0.877014 0.107635 0.301239 0.877411 0.108826 0.339020 0.877747 0.109985 0.378448 0.878082 0.111145 0.419342 0.878418 0.112335 0.461151 0.878815 0.113495 0.502747 0.879120 0.114624 0.542175 0.879486 0.115784 0.579132 0.879791 0.116943 0.613556 0.880127 0.118073 0.645569 0.880493 0.119232 0.675415 0.880798 0.120361 0.703491 0.881134 0.121460 0.729919 0.881439 0.122589 0.755035 0.881805 0.123688 0.779144 0.882111 0.124786 0.802277 0.882385 0.125854 0.824768 0.882721 0.126923 0.846802 0.882996 0.127991 0.868591 0.883331 0.128998 0.890381 0.883606 0.130035 0.912537 0.883911 0.131042 0.935486 0.884186 0.132050 0.959961 0.884430 0.133057 0.067749 0.898895 0.097412 0.085358 0.899170 0.098633 0.104553 0.899445 0.099823 0.125641 0.899750 0.101013 0.148987 0.900055 0.102173 0.174835 0.900360 0.103333 0.203461 0.900604 0.104523 0.234589 0.900909 0.105713 0.268158 0.901184 0.106903 0.304016 0.901459 0.108063 0.341644 0.901733 0.109253 0.381165 0.902008 0.110443 0.421936 0.902283 0.111603 0.463623 0.902527 0.112762 0.505066 0.902832 0.113922 0.544159 0.903107 0.115051 0.580872 0.903381 0.116211 0.615051 0.903625 0.117340 0.646851 0.903900 0.118469 0.676514 0.904144 0.119598 0.704376 0.904419 0.120697 0.730743 0.904633 0.121796 0.755768 0.904877 0.122894 0.779694 0.905151 0.123993 0.802795 0.905365 0.125061 0.825165 0.905640 0.126068 0.847107 0.905823 0.127136 0.868866 0.906097 0.128143 0.890594 0.906311 0.129150 0.912659 0.906555 0.130157 0.935547 0.906738 0.131134 0.959961 0.906952 0.132080 0.069550 0.923370 0.096649 0.087219 0.923615 0.097870 0.106476 0.923798 0.099030 0.127716 0.924011 0.100220 0.151215 0.924255 0.101410 0.177216 0.924469 0.102570 0.205963 0.924683 0.103821 0.237213 0.924896 0.105011 0.270813 0.925079 0.106201 0.306671 0.925293 0.107361 0.344391 0.925507 0.108551 0.383789 0.925751 0.109741 0.424530 0.925934 0.110870 0.466125 0.926117 0.112030 0.507294 0.926331 0.113190 0.546173 0.926544 0.114349 0.582581 0.926727 0.115479 0.616547 0.926910 0.116608 0.648132 0.927094 0.117706 0.677643 0.927277 0.118835 0.705322 0.927490 0.119934 0.731506 0.927673 0.121002 0.756439 0.927826 0.122070 0.780243 0.928009 0.123138 0.803253 0.928192 0.124176 0.825592 0.928406 0.125214 0.847443 0.928528 0.126221 0.869049 0.928741 0.127228 0.890778 0.928864 0.128235 0.912781 0.929077 0.129181 0.935638 0.929260 0.130096 0.959961 0.929382 0.131073 0.071350 0.947968 0.095886 0.089081 0.948120 0.097076 0.108521 0.948242 0.098267 0.129822 0.948425 0.099487 0.153442 0.948578 0.100677 0.179626 0.948700 0.101868 0.208466 0.948853 0.103058 0.239777 0.948975 0.104248 0.273499 0.949127 0.105469 0.309326 0.949249 0.106659 0.347076 0.949432 0.107758 0.386444 0.949585 0.109009 0.427094 0.949738 0.110138 0.468597 0.949860 0.111237 0.509460 0.949982 0.112427 0.548065 0.950104 0.113556 0.584259 0.950256 0.114685 0.617950 0.950378 0.115784 0.649353 0.950470 0.116943 0.678680 0.950592 0.118011 0.706238 0.950714 0.119080 0.732300 0.950867 0.120117 0.757080 0.950989 0.121185 0.780853 0.951141 0.122253 0.803741 0.951233 0.123260 0.825928 0.951355 0.124268 0.847748 0.951477 0.125275 0.869354 0.951569 0.126221 0.890930 0.951691 0.127197 0.912903 0.951782 0.128113 0.935699 0.951874 0.129028 0.959961 0.951996 0.129913 0.073059 0.973267 0.094971 0.090942 0.973297 0.096222 0.110474 0.973358 0.097382 0.131958 0.973480 0.098602 0.155701 0.973541 0.099823 0.181976 0.973633 0.101013 0.210938 0.973694 0.102234 0.242371 0.973785 0.103394 0.276093 0.973846 0.104584 0.312042 0.973969 0.105774 0.349701 0.973999 0.106934 0.389008 0.974091 0.108093 0.429626 0.974152 0.109222 0.470917 0.974213 0.110382 0.511597 0.974304 0.111511 0.549896 0.974365 0.112640 0.585846 0.974396 0.113739 0.619385 0.974518 0.114838 0.650543 0.974548 0.115936 0.679688 0.974609 0.116974 0.707092 0.974701 0.118073 0.733032 0.974731 0.119110 0.757721 0.974823 0.120148 0.781342 0.974854 0.121216 0.804169 0.974915 0.122162 0.826324 0.974976 0.123169 0.848053 0.975037 0.124115 0.869568 0.975067 0.125061 0.891083 0.975128 0.125977 0.913055 0.975189 0.126892 0.935730 0.975250 0.127747 0.959961 0.975281 0.128632 0.074890 1.000000 0.093903 0.092834 1.000000 0.095123 0.112427 1.000000 0.096313 0.134033 1.000000 0.097565 0.157898 1.000000 0.098724 0.184357 1.000000 0.099945 0.213440 1.000000 0.101166 0.244904 1.000000 0.102325 0.278687 1.000000 0.103485 0.314575 1.000000 0.104706 0.352264 1.000000 0.105804 0.391510 1.000000 0.107025 0.432068 1.000000 0.108124 0.473267 1.000000 0.109253 0.513672 1.000000 0.110413 0.551727 1.000000 0.111481 0.587494 1.000000 0.112610 0.620758 1.000000 0.113678 0.651672 1.000000 0.114746 0.680695 1.000000 0.115784 0.707947 1.000000 0.116852 0.733795 1.000000 0.117859 0.758331 1.000000 0.118866 0.781860 1.000000 0.119904 0.804596 1.000000 0.120850 0.826660 1.000000 0.121796 0.848358 1.000000 0.122742 0.869781 1.000000 0.123627 0.891296 1.000000 0.124512 0.913147 1.000000 0.125397 0.935822 1.000000 0.126221 0.959961 1.000000 0.127045 0.031830 0.001343 0.193146 0.047211 0.001892 0.193604 0.063843 0.002502 0.194061 0.081909 0.003143 0.194550 0.101746 0.003784 0.195038 0.123718 0.004456 0.195557 0.148193 0.005188 0.196106 0.175537 0.005859 0.196686 0.205994 0.006653 0.197266 0.239471 0.007385 0.197876 0.275665 0.008209 0.198486 0.314484 0.009033 0.199158 0.355469 0.009857 0.199799 0.398407 0.010742 0.200470 0.442841 0.011658 0.201141 0.487854 0.012543 0.201904 0.531128 0.013519 0.202606 0.571594 0.014465 0.203308 0.609161 0.015442 0.204102 0.643982 0.016449 0.204865 0.676331 0.017456 0.205658 0.706543 0.018494 0.206482 0.735046 0.019562 0.207306 0.762054 0.020599 0.208130 0.787811 0.021698 0.208984 0.812744 0.022858 0.209869 0.836914 0.023987 0.210693 0.860748 0.025146 0.211609 0.884460 0.026306 0.212524 0.908508 0.027496 0.213409 0.933380 0.028717 0.214355 0.959961 0.029938 0.215302 0.032532 0.017517 0.192108 0.048004 0.018127 0.192566 0.064728 0.018799 0.193054 0.082886 0.019501 0.193604 0.102783 0.020172 0.194153 0.124847 0.020935 0.194733 0.149445 0.021667 0.195312 0.176941 0.022491 0.195862 0.207520 0.023285 0.196503 0.241089 0.024078 0.197144 0.277435 0.024963 0.197845 0.316254 0.025879 0.198486 0.357361 0.026764 0.199158 0.400299 0.027679 0.199890 0.444641 0.028656 0.200653 0.489624 0.029602 0.201324 0.532715 0.030609 0.202148 0.572998 0.031647 0.202881 0.610443 0.032684 0.203674 0.645020 0.033752 0.204498 0.677216 0.034821 0.205261 0.707367 0.035919 0.206116 0.735748 0.037048 0.206970 0.762665 0.038208 0.207794 0.788391 0.039368 0.208679 0.813171 0.040558 0.209564 0.837311 0.041748 0.210480 0.860992 0.042999 0.211365 0.884705 0.044250 0.212341 0.908661 0.045471 0.213257 0.933441 0.046783 0.214172 0.959961 0.048035 0.215118 0.033295 0.034607 0.191010 0.048859 0.035278 0.191528 0.065613 0.036011 0.192078 0.083832 0.036804 0.192627 0.103912 0.037567 0.193176 0.126068 0.038361 0.193817 0.150787 0.039154 0.194397 0.178436 0.040039 0.195068 0.209137 0.040924 0.195740 0.242828 0.041809 0.196381 0.279236 0.042786 0.197083 0.318115 0.043732 0.197815 0.359253 0.044708 0.198486 0.402191 0.045715 0.199188 0.446594 0.046753 0.200012 0.491394 0.047791 0.200745 0.534363 0.048889 0.201538 0.574402 0.049988 0.202301 0.611694 0.051086 0.203125 0.646179 0.052246 0.204010 0.678223 0.053406 0.204773 0.708191 0.054596 0.205688 0.736450 0.055817 0.206512 0.763275 0.057037 0.207367 0.788879 0.058289 0.208282 0.813599 0.059570 0.209167 0.837646 0.060883 0.210114 0.861328 0.062164 0.211060 0.884918 0.063507 0.211945 0.908844 0.064850 0.212891 0.933533 0.066223 0.213837 0.959961 0.067627 0.214783 0.034149 0.052948 0.189880 0.049744 0.053711 0.190399 0.066589 0.054535 0.190979 0.084930 0.055359 0.191589 0.105072 0.056244 0.192200 0.127350 0.057159 0.192810 0.152191 0.058044 0.193481 0.179993 0.058990 0.194122 0.210846 0.059967 0.194824 0.244629 0.060944 0.195496 0.281158 0.061981 0.196228 0.320129 0.063019 0.196960 0.361267 0.064117 0.197693 0.404236 0.065216 0.198425 0.448547 0.066315 0.199219 0.493286 0.067474 0.200012 0.536041 0.068665 0.200836 0.575867 0.069855 0.201660 0.612976 0.071045 0.202454 0.647278 0.072327 0.203339 0.679199 0.073578 0.204163 0.709045 0.074890 0.205048 0.737183 0.076202 0.205933 0.763916 0.077515 0.206818 0.789429 0.078888 0.207733 0.814056 0.080261 0.208649 0.838074 0.081696 0.209534 0.861603 0.083099 0.210480 0.885132 0.084503 0.211395 0.908966 0.085999 0.212372 0.933624 0.087494 0.213348 0.959961 0.088959 0.214294 0.035034 0.072937 0.188568 0.050751 0.073792 0.189178 0.067657 0.074707 0.189758 0.086060 0.075653 0.190369 0.106293 0.076599 0.191040 0.128754 0.077606 0.191711 0.153717 0.078613 0.192352 0.181641 0.079681 0.193054 0.212616 0.080750 0.193756 0.246521 0.081879 0.194458 0.283112 0.082977 0.195221 0.322174 0.084167 0.195984 0.363312 0.085297 0.196747 0.406311 0.086548 0.197510 0.450623 0.087799 0.198242 0.495209 0.089050 0.199097 0.537750 0.090363 0.199890 0.577423 0.091644 0.200745 0.614288 0.092987 0.201599 0.648468 0.094391 0.202484 0.680176 0.095734 0.203369 0.709930 0.097168 0.204224 0.737946 0.098633 0.205109 0.764526 0.100037 0.206024 0.789978 0.101562 0.206940 0.814514 0.103027 0.207886 0.838409 0.104553 0.208801 0.861938 0.106140 0.209747 0.885376 0.107727 0.210663 0.909119 0.109314 0.211670 0.933685 0.110931 0.212646 0.959961 0.112518 0.213562 0.036011 0.094940 0.187134 0.051758 0.095947 0.187714 0.068756 0.096954 0.188385 0.087280 0.097992 0.189026 0.107635 0.099091 0.189667 0.130157 0.100189 0.190369 0.155304 0.101379 0.191071 0.183350 0.102539 0.191772 0.214539 0.103760 0.192474 0.248474 0.104950 0.193237 0.285187 0.106201 0.194000 0.324280 0.107544 0.194763 0.365479 0.108856 0.195496 0.408478 0.110199 0.196320 0.452789 0.111511 0.197144 0.497253 0.112946 0.197968 0.539520 0.114380 0.198822 0.579010 0.115845 0.199615 0.615692 0.117310 0.200531 0.649628 0.118835 0.201385 0.681213 0.120361 0.202271 0.710815 0.121918 0.203186 0.738708 0.123535 0.204071 0.765167 0.125092 0.204987 0.790558 0.126740 0.205933 0.814972 0.128387 0.206848 0.838776 0.130066 0.207733 0.862274 0.131805 0.208679 0.885620 0.133484 0.209625 0.909271 0.135223 0.210571 0.933746 0.137024 0.211578 0.959961 0.138794 0.212494 0.036987 0.119476 0.185394 0.052856 0.120636 0.186066 0.069916 0.121765 0.186707 0.088531 0.122955 0.187378 0.108978 0.124207 0.188049 0.131683 0.125488 0.188782 0.156952 0.126709 0.189484 0.185181 0.128052 0.190216 0.216431 0.129425 0.190948 0.250549 0.130768 0.191681 0.287323 0.132172 0.192444 0.326477 0.133606 0.193237 0.367737 0.135101 0.194061 0.410736 0.136627 0.194885 0.454956 0.138092 0.195679 0.499237 0.139679 0.196503 0.541351 0.141296 0.197357 0.580597 0.142853 0.198212 0.617065 0.144501 0.199097 0.650848 0.146210 0.200012 0.682281 0.147858 0.200867 0.711700 0.149597 0.201721 0.739471 0.151306 0.202667 0.765839 0.153107 0.203583 0.791107 0.154968 0.204468 0.815460 0.156708 0.205383 0.839172 0.158630 0.206360 0.862549 0.160522 0.207306 0.885834 0.162354 0.208221 0.909454 0.164307 0.209167 0.933868 0.166290 0.210114 0.959961 0.168213 0.211090 0.038086 0.147064 0.183380 0.053986 0.148376 0.184052 0.071167 0.149689 0.184692 0.089813 0.151001 0.185425 0.110474 0.152435 0.186096 0.133240 0.153839 0.186829 0.158630 0.155273 0.187561 0.187042 0.156738 0.188324 0.218475 0.158295 0.189026 0.252686 0.159821 0.189819 0.289551 0.161407 0.190613 0.328766 0.162994 0.191376 0.369965 0.164642 0.192200 0.412994 0.166321 0.193024 0.457184 0.168030 0.193848 0.501373 0.169769 0.194702 0.543213 0.171539 0.195557 0.582214 0.173279 0.196411 0.618469 0.175140 0.197296 0.652069 0.177002 0.198151 0.683319 0.178864 0.199036 0.712616 0.180786 0.199951 0.740265 0.182678 0.200836 0.766541 0.184631 0.201721 0.791687 0.186707 0.202667 0.815918 0.188660 0.203552 0.839569 0.190704 0.204498 0.862854 0.192780 0.205444 0.886047 0.194824 0.206360 0.909607 0.196930 0.207367 0.933990 0.199066 0.208313 0.959961 0.201202 0.209229 0.039185 0.178314 0.180939 0.055206 0.179749 0.181641 0.072449 0.181274 0.182312 0.091248 0.182739 0.183044 0.111969 0.184326 0.183777 0.134949 0.185913 0.184479 0.160492 0.187561 0.185242 0.189026 0.189209 0.185974 0.220551 0.190857 0.186737 0.254883 0.192627 0.187500 0.291809 0.194397 0.188354 0.331085 0.196136 0.189117 0.372375 0.197998 0.189911 0.415314 0.199829 0.190796 0.459473 0.201721 0.191589 0.503448 0.203644 0.192413 0.545074 0.205627 0.193298 0.583801 0.207520 0.194153 0.619934 0.209564 0.195007 0.653290 0.211609 0.195892 0.684418 0.213593 0.196747 0.713562 0.215668 0.197662 0.741028 0.217804 0.198547 0.767212 0.219879 0.199493 0.792236 0.222046 0.200409 0.816437 0.224152 0.201294 0.839966 0.226410 0.202240 0.863159 0.228607 0.203217 0.886322 0.230774 0.204102 0.909760 0.233063 0.205048 0.934021 0.235260 0.205994 0.959961 0.237579 0.206940 0.040405 0.213440 0.178131 0.056427 0.215118 0.178772 0.073792 0.216766 0.179504 0.092651 0.218445 0.180176 0.113525 0.220154 0.180969 0.136597 0.221924 0.181702 0.162323 0.223694 0.182434 0.191040 0.225525 0.183228 0.222687 0.227325 0.184021 0.257172 0.229248 0.184784 0.294189 0.231171 0.185577 0.333466 0.233093 0.186401 0.374786 0.235107 0.187256 0.417725 0.237091 0.188049 0.461731 0.239105 0.188873 0.505554 0.241211 0.189728 0.546936 0.243286 0.190613 0.585480 0.245361 0.191467 0.621368 0.247528 0.192322 0.654510 0.249634 0.193237 0.685486 0.251831 0.194092 0.714478 0.254028 0.195038 0.741852 0.256256 0.195892 0.767883 0.258545 0.196838 0.792816 0.260803 0.197754 0.816925 0.263062 0.198639 0.840363 0.265411 0.199554 0.863495 0.267731 0.200562 0.886536 0.269989 0.201447 0.909912 0.272400 0.202393 0.934113 0.274689 0.203339 0.959961 0.277069 0.204285 0.041626 0.252380 0.174866 0.057739 0.254150 0.175537 0.075165 0.255951 0.176300 0.094147 0.257782 0.177002 0.115143 0.259644 0.177734 0.138367 0.261505 0.178497 0.164276 0.263458 0.179291 0.193176 0.265442 0.180084 0.224915 0.267365 0.180817 0.259460 0.269379 0.181702 0.296600 0.271454 0.182495 0.335907 0.273499 0.183289 0.377228 0.275604 0.184143 0.420166 0.277740 0.184967 0.464081 0.279846 0.185822 0.507751 0.282074 0.186676 0.548859 0.284271 0.187531 0.587189 0.286438 0.188416 0.622833 0.288727 0.189270 0.655823 0.290924 0.190155 0.686584 0.293274 0.191071 0.715393 0.295563 0.191986 0.742645 0.297821 0.192871 0.768616 0.300201 0.193787 0.793457 0.302582 0.194702 0.817383 0.304901 0.195618 0.840790 0.307312 0.196533 0.863831 0.309723 0.197510 0.886780 0.312042 0.198425 0.910126 0.314514 0.199371 0.934174 0.316895 0.200317 0.959961 0.319336 0.201263 0.042877 0.294708 0.171234 0.059082 0.296661 0.171906 0.076599 0.298553 0.172668 0.095734 0.300446 0.173401 0.116821 0.302429 0.174164 0.140167 0.304413 0.174957 0.166229 0.306458 0.175751 0.195251 0.308533 0.176575 0.227203 0.310608 0.177338 0.261871 0.312714 0.178162 0.299042 0.314819 0.178986 0.338409 0.316986 0.179810 0.379791 0.319183 0.180695 0.422607 0.321381 0.181519 0.466492 0.323578 0.182404 0.509949 0.325836 0.183258 0.550781 0.328094 0.184113 0.588867 0.330414 0.184998 0.624298 0.332764 0.185913 0.657074 0.335052 0.186798 0.687653 0.337402 0.187714 0.716370 0.339783 0.188629 0.743500 0.342072 0.189545 0.769287 0.344513 0.190460 0.794006 0.346924 0.191345 0.817871 0.349243 0.192352 0.841156 0.351746 0.193268 0.864136 0.354095 0.194153 0.887054 0.356567 0.195099 0.910278 0.359070 0.196075 0.934296 0.361481 0.197021 0.959961 0.363892 0.197968 0.044250 0.340118 0.167206 0.060455 0.342072 0.167999 0.078094 0.344055 0.168732 0.097351 0.346039 0.169495 0.118591 0.348114 0.170288 0.142059 0.350128 0.171082 0.168304 0.352234 0.171906 0.197510 0.354401 0.172699 0.229523 0.356506 0.173523 0.264282 0.358704 0.174377 0.301544 0.360901 0.175232 0.340973 0.363068 0.176056 0.382294 0.365326 0.176910 0.425110 0.367523 0.177795 0.468903 0.369781 0.178680 0.512115 0.372162 0.179535 0.552734 0.374390 0.180420 0.590576 0.376770 0.181335 0.625763 0.379089 0.182281 0.658325 0.381409 0.183136 0.688751 0.383820 0.184082 0.717346 0.386230 0.184998 0.744293 0.388550 0.185913 0.769989 0.390961 0.186890 0.794586 0.393402 0.187836 0.818390 0.395752 0.188721 0.841583 0.398193 0.189667 0.864471 0.400574 0.190613 0.887268 0.403015 0.191589 0.910461 0.405487 0.192535 0.934387 0.407806 0.193451 0.959961 0.410278 0.194427 0.045593 0.388000 0.162994 0.061951 0.390045 0.163757 0.079620 0.391998 0.164551 0.098999 0.394073 0.165344 0.120361 0.396179 0.166199 0.143982 0.398224 0.166992 0.170380 0.400391 0.167816 0.199738 0.402557 0.168671 0.231903 0.404694 0.169464 0.266785 0.406860 0.170319 0.304077 0.409119 0.171204 0.343536 0.411285 0.172058 0.384827 0.413513 0.172974 0.427673 0.415802 0.173828 0.471375 0.418030 0.174713 0.514313 0.420319 0.175629 0.554657 0.422607 0.176514 0.592285 0.424957 0.177460 0.627228 0.427307 0.178406 0.659607 0.429596 0.179321 0.689880 0.432007 0.180237 0.718262 0.434357 0.181183 0.745087 0.436615 0.182159 0.770691 0.439026 0.183105 0.795166 0.441345 0.184021 0.818878 0.443756 0.184998 0.841980 0.446136 0.185913 0.864807 0.448486 0.186890 0.887512 0.450867 0.187836 0.910583 0.453247 0.188843 0.934479 0.455597 0.189758 0.959961 0.457947 0.190704 0.046967 0.437775 0.158569 0.063416 0.439819 0.159393 0.081238 0.441833 0.160187 0.100708 0.443909 0.161041 0.122223 0.446014 0.161865 0.145996 0.448059 0.162689 0.172546 0.450165 0.163513 0.202087 0.452362 0.164398 0.234375 0.454468 0.165283 0.269318 0.456635 0.166168 0.306671 0.458801 0.166992 0.346191 0.461060 0.167938 0.387512 0.463257 0.168823 0.430206 0.465454 0.169708 0.473846 0.467651 0.170685 0.516571 0.469940 0.171600 0.556610 0.472076 0.172516 0.593994 0.474396 0.173431 0.628723 0.476654 0.174377 0.660919 0.478912 0.175354 0.691010 0.481171 0.176331 0.719208 0.483490 0.177246 0.745941 0.485748 0.178192 0.771393 0.488007 0.179199 0.795746 0.490234 0.180145 0.819366 0.492523 0.181152 0.842407 0.494781 0.182098 0.865082 0.496979 0.183075 0.887787 0.499237 0.184052 0.910736 0.501526 0.185059 0.934540 0.503754 0.186035 0.959961 0.505981 0.186981 0.048431 0.488800 0.154053 0.064972 0.490784 0.154907 0.082855 0.492706 0.155701 0.102448 0.494751 0.156555 0.124084 0.496765 0.157471 0.148041 0.498749 0.158325 0.174774 0.500854 0.159210 0.204468 0.502869 0.160126 0.236847 0.504913 0.160980 0.271851 0.506989 0.161926 0.309326 0.509003 0.162842 0.348816 0.511139 0.163757 0.390106 0.513214 0.164734 0.432831 0.515228 0.165649 0.476318 0.517303 0.166595 0.518829 0.519440 0.167572 0.558624 0.521484 0.168549 0.595703 0.523529 0.169556 0.630219 0.525635 0.170532 0.662201 0.527649 0.171448 0.692078 0.529724 0.172424 0.720184 0.531738 0.173462 0.746735 0.533813 0.174469 0.772034 0.535858 0.175476 0.796356 0.537872 0.176453 0.819855 0.539886 0.177460 0.842804 0.541931 0.178497 0.865387 0.543915 0.179504 0.888000 0.545868 0.180481 0.910919 0.547882 0.181519 0.934662 0.549805 0.182465 0.959961 0.551758 0.183533 0.049927 0.538727 0.149689 0.066498 0.540527 0.150604 0.084503 0.542297 0.151489 0.104279 0.544098 0.152374 0.126007 0.545898 0.153351 0.150116 0.547668 0.154236 0.177032 0.549530 0.155151 0.206848 0.551361 0.156097 0.239380 0.553162 0.157074 0.274536 0.554962 0.158051 0.311951 0.556763 0.158997 0.351501 0.558594 0.160004 0.392792 0.560455 0.160980 0.435455 0.562286 0.161957 0.478821 0.564087 0.162964 0.520996 0.565948 0.164001 0.560547 0.567749 0.164978 0.597443 0.569550 0.165985 0.631683 0.571411 0.166992 0.663422 0.573212 0.168030 0.693207 0.575012 0.169098 0.721100 0.576813 0.170105 0.747559 0.578522 0.171143 0.772766 0.580383 0.172180 0.796936 0.582092 0.173187 0.820312 0.583893 0.174255 0.843201 0.585632 0.175323 0.865723 0.587372 0.176331 0.888245 0.589081 0.177368 0.911072 0.590759 0.178436 0.934723 0.592499 0.179443 0.959961 0.594147 0.180481 0.051483 0.585022 0.145905 0.068115 0.586609 0.146820 0.086212 0.588165 0.147766 0.106110 0.589783 0.148743 0.127991 0.591309 0.149719 0.152283 0.592926 0.150696 0.179321 0.594513 0.151672 0.209320 0.596100 0.152679 0.241943 0.597687 0.153625 0.277191 0.599335 0.154663 0.314667 0.600861 0.155701 0.354279 0.602478 0.156708 0.395477 0.604065 0.157745 0.438080 0.605682 0.158752 0.481354 0.607239 0.159821 0.523254 0.608856 0.160858 0.562531 0.610413 0.161926 0.599121 0.612030 0.162933 0.633179 0.613617 0.164001 0.664734 0.615173 0.165070 0.694305 0.616730 0.166138 0.722046 0.618286 0.167175 0.748383 0.619781 0.168274 0.773438 0.621338 0.169373 0.797516 0.622833 0.170410 0.820801 0.624390 0.171478 0.843597 0.625916 0.172546 0.866028 0.627380 0.173645 0.888519 0.628845 0.174713 0.911224 0.630310 0.175751 0.934845 0.631775 0.176788 0.959961 0.633209 0.177856 0.053040 0.627655 0.142609 0.069763 0.628998 0.143616 0.087982 0.630341 0.144623 0.107941 0.631775 0.145599 0.129974 0.633118 0.146606 0.154449 0.634491 0.147614 0.181702 0.635895 0.148651 0.211761 0.637238 0.149658 0.244537 0.638611 0.150757 0.279846 0.640015 0.151764 0.317413 0.641357 0.152863 0.356964 0.642761 0.153900 0.398193 0.644165 0.154968 0.440735 0.645538 0.156036 0.483826 0.646881 0.157135 0.525452 0.648285 0.158203 0.564484 0.649628 0.159271 0.600861 0.650970 0.160370 0.634644 0.652344 0.161499 0.666016 0.653656 0.162537 0.695404 0.654968 0.163666 0.722992 0.656311 0.164764 0.749176 0.657623 0.165833 0.774078 0.658936 0.166962 0.798065 0.660278 0.168030 0.821289 0.661530 0.169159 0.843994 0.662842 0.170227 0.866333 0.664093 0.171295 0.888733 0.665344 0.172424 0.911407 0.666626 0.173492 0.934937 0.667847 0.174561 0.959961 0.669037 0.175659 0.054596 0.666626 0.139862 0.071442 0.667847 0.140930 0.089722 0.668976 0.141907 0.109863 0.670166 0.142975 0.132080 0.671387 0.144012 0.156647 0.672546 0.145050 0.184021 0.673737 0.146149 0.214264 0.674896 0.147217 0.247162 0.676086 0.148315 0.282562 0.677307 0.149384 0.320129 0.678436 0.150482 0.359711 0.679657 0.151550 0.400970 0.680847 0.152679 0.443390 0.681976 0.153809 0.486328 0.683167 0.154877 0.527679 0.684357 0.156036 0.566437 0.685486 0.157135 0.602539 0.686676 0.158264 0.636108 0.687805 0.159363 0.667267 0.688934 0.160492 0.696442 0.690094 0.161591 0.723938 0.691223 0.162689 0.749939 0.692352 0.163818 0.774811 0.693481 0.164978 0.798645 0.694580 0.166046 0.821747 0.695679 0.167175 0.844360 0.696777 0.168335 0.866669 0.697876 0.169403 0.888947 0.698944 0.170471 0.911560 0.699982 0.171570 0.934998 0.701050 0.172699 0.959961 0.702087 0.173767 0.056152 0.702423 0.137543 0.073151 0.703461 0.138611 0.091583 0.704468 0.139648 0.111786 0.705475 0.140747 0.134094 0.706482 0.141815 0.158875 0.707520 0.142944 0.186493 0.708527 0.144073 0.216827 0.709534 0.145111 0.249817 0.710541 0.146271 0.285309 0.711548 0.147400 0.322937 0.712585 0.148499 0.362457 0.713593 0.149658 0.403656 0.714600 0.150757 0.446014 0.715607 0.151886 0.488831 0.716614 0.153046 0.529846 0.717590 0.154175 0.568329 0.718597 0.155304 0.604218 0.719604 0.156464 0.637512 0.720551 0.157593 0.668518 0.721527 0.158691 0.697540 0.722504 0.159882 0.724823 0.723480 0.161011 0.750732 0.724457 0.162140 0.775452 0.725403 0.163300 0.799225 0.726349 0.164429 0.822235 0.727264 0.165558 0.844727 0.728210 0.166687 0.866974 0.729126 0.167755 0.889130 0.730072 0.168884 0.911743 0.730927 0.169952 0.935089 0.731812 0.171051 0.959961 0.732758 0.172119 0.057831 0.735535 0.135620 0.074890 0.736389 0.136719 0.093414 0.737244 0.137787 0.113770 0.738098 0.138947 0.136200 0.738983 0.140045 0.161194 0.739868 0.141144 0.188904 0.740723 0.142303 0.219391 0.741608 0.143463 0.252502 0.742493 0.144562 0.287994 0.743378 0.145721 0.325653 0.744232 0.146881 0.365295 0.745056 0.148041 0.406433 0.745972 0.149200 0.448669 0.746796 0.150330 0.491333 0.747650 0.151489 0.532013 0.748505 0.152649 0.570282 0.749359 0.153809 0.605865 0.750244 0.154968 0.638947 0.751038 0.156128 0.669739 0.751862 0.157257 0.698608 0.752716 0.158447 0.725739 0.753510 0.159546 0.751556 0.754333 0.160767 0.776123 0.755127 0.161896 0.799744 0.755920 0.163025 0.822693 0.756744 0.164124 0.845093 0.757538 0.165253 0.867279 0.758301 0.166382 0.889374 0.759064 0.167480 0.911865 0.759827 0.168579 0.935181 0.760559 0.169678 0.959961 0.761353 0.170776 0.059509 0.766388 0.133942 0.076630 0.767090 0.135132 0.095276 0.767853 0.136261 0.115784 0.768585 0.137421 0.138367 0.769318 0.138519 0.163452 0.770081 0.139740 0.191406 0.770844 0.140839 0.221985 0.771545 0.141998 0.255219 0.772308 0.143219 0.290771 0.773071 0.144379 0.328430 0.773773 0.145538 0.368011 0.774536 0.146698 0.409058 0.775238 0.147888 0.451294 0.775970 0.149048 0.493744 0.776733 0.150238 0.534210 0.777435 0.151367 0.572144 0.778137 0.152557 0.607544 0.778870 0.153717 0.640350 0.779572 0.154907 0.670959 0.780273 0.156036 0.699646 0.780975 0.157257 0.726654 0.781677 0.158356 0.752289 0.782349 0.159515 0.776764 0.783081 0.160675 0.800293 0.783722 0.161835 0.823120 0.784393 0.162964 0.845459 0.785065 0.164093 0.867554 0.785706 0.165192 0.889618 0.786346 0.166321 0.912048 0.786987 0.167419 0.935211 0.787659 0.168488 0.959961 0.788269 0.169556 0.061188 0.795319 0.132660 0.078430 0.795959 0.133759 0.097168 0.796600 0.134949 0.117798 0.797211 0.136169 0.140533 0.797821 0.137299 0.165771 0.798492 0.138489 0.193878 0.799133 0.139709 0.224609 0.799744 0.140808 0.257904 0.800354 0.142059 0.293518 0.801025 0.143219 0.331207 0.801636 0.144409 0.370789 0.802216 0.145630 0.411804 0.802856 0.146790 0.453949 0.803467 0.147949 0.496185 0.804077 0.149170 0.536316 0.804718 0.150299 0.574005 0.805298 0.151520 0.609161 0.805939 0.152679 0.641785 0.806488 0.153900 0.672119 0.807129 0.155029 0.700653 0.807709 0.156189 0.727539 0.808289 0.157349 0.753021 0.808868 0.158478 0.777405 0.809418 0.159668 0.800842 0.809998 0.160828 0.823578 0.810547 0.161926 0.845856 0.811096 0.163025 0.867828 0.811676 0.164154 0.889862 0.812195 0.165253 0.912140 0.812714 0.166351 0.935303 0.813263 0.167419 0.959961 0.813812 0.168488 0.062897 0.822723 0.131531 0.080200 0.823303 0.132721 0.099121 0.823792 0.133911 0.119843 0.824341 0.135101 0.142700 0.824890 0.136261 0.168182 0.825409 0.137451 0.196411 0.825928 0.138702 0.227203 0.826477 0.139832 0.260590 0.826996 0.141052 0.296234 0.827515 0.142273 0.333984 0.828094 0.143494 0.373505 0.828583 0.144684 0.414490 0.829102 0.145844 0.456451 0.829590 0.147064 0.498566 0.830139 0.148254 0.538452 0.830627 0.149445 0.575836 0.831146 0.150665 0.610718 0.831665 0.151825 0.643127 0.832153 0.152954 0.673340 0.832611 0.154144 0.701660 0.833130 0.155334 0.728394 0.833649 0.156464 0.753784 0.834106 0.157623 0.778015 0.834564 0.158752 0.801392 0.835052 0.159882 0.824036 0.835510 0.161011 0.846191 0.835968 0.162109 0.868103 0.836395 0.163208 0.890045 0.836884 0.164307 0.912292 0.837311 0.165375 0.935394 0.837738 0.166473 0.959961 0.838165 0.167542 0.064667 0.848969 0.130585 0.082001 0.849426 0.131775 0.101013 0.849854 0.132996 0.121887 0.850281 0.134186 0.144928 0.850739 0.135376 0.170532 0.851196 0.136597 0.198883 0.851593 0.137848 0.229828 0.852081 0.139069 0.263275 0.852509 0.140259 0.298981 0.852966 0.141449 0.336761 0.853394 0.142670 0.376282 0.853790 0.143860 0.417145 0.854248 0.145081 0.459106 0.854675 0.146301 0.500854 0.855072 0.147522 0.540527 0.855530 0.148682 0.577667 0.855927 0.149811 0.612335 0.856384 0.151031 0.644470 0.856750 0.152222 0.674500 0.857147 0.153381 0.702637 0.857574 0.154541 0.729218 0.857941 0.155701 0.754486 0.858368 0.156860 0.778625 0.858734 0.157928 0.801910 0.859131 0.159058 0.824463 0.859497 0.160187 0.846527 0.859894 0.161285 0.868378 0.860260 0.162384 0.890259 0.860626 0.163422 0.912415 0.860992 0.164551 0.935455 0.861359 0.165558 0.959961 0.861664 0.166534 0.066345 0.874298 0.129791 0.083832 0.874664 0.130951 0.102966 0.875000 0.132202 0.123993 0.875366 0.133392 0.147156 0.875763 0.134644 0.172913 0.876099 0.135864 0.201385 0.876465 0.137115 0.232452 0.876801 0.138306 0.265961 0.877136 0.139557 0.301727 0.877533 0.140717 0.339447 0.877838 0.141998 0.378906 0.878235 0.143188 0.419769 0.878540 0.144379 0.461639 0.878906 0.145599 0.503174 0.879242 0.146790 0.542542 0.879608 0.147919 0.579468 0.879913 0.149170 0.613861 0.880280 0.150360 0.645782 0.880585 0.151520 0.675629 0.880920 0.152679 0.703613 0.881256 0.153809 0.730042 0.881561 0.154968 0.755188 0.881897 0.156097 0.779236 0.882202 0.157196 0.802368 0.882538 0.158325 0.824860 0.882812 0.159424 0.846863 0.883148 0.160461 0.868622 0.883423 0.161560 0.890472 0.883728 0.162598 0.912567 0.884003 0.163635 0.935486 0.884277 0.164673 0.959961 0.884583 0.165649 0.068115 0.898987 0.129059 0.085693 0.899292 0.130310 0.104950 0.899536 0.131500 0.126068 0.899872 0.132751 0.149384 0.900146 0.134003 0.175293 0.900452 0.135254 0.203888 0.900726 0.136475 0.235077 0.901001 0.137665 0.268707 0.901276 0.138885 0.304443 0.901550 0.140106 0.342194 0.901825 0.141327 0.381622 0.902130 0.142578 0.422424 0.902374 0.143707 0.464142 0.902649 0.144897 0.505463 0.902924 0.146179 0.544525 0.903198 0.147339 0.581207 0.903473 0.148529 0.615326 0.903717 0.149628 0.647095 0.903992 0.150818 0.676697 0.904236 0.151978 0.704559 0.904510 0.153076 0.730896 0.904724 0.154236 0.755920 0.905029 0.155365 0.779816 0.905212 0.156464 0.802856 0.905487 0.157532 0.825226 0.905701 0.158630 0.847198 0.905914 0.159668 0.868866 0.906158 0.160706 0.890625 0.906372 0.161743 0.912689 0.906616 0.162750 0.935577 0.906830 0.163788 0.959961 0.907043 0.164734 0.069885 0.923431 0.128357 0.087524 0.923676 0.129608 0.106873 0.923889 0.130890 0.128174 0.924072 0.132111 0.151611 0.924316 0.133362 0.177673 0.924530 0.134552 0.206421 0.924744 0.135773 0.237671 0.924957 0.137054 0.271301 0.925140 0.138275 0.307159 0.925354 0.139465 0.344910 0.925568 0.140686 0.384308 0.925812 0.141876 0.425018 0.925995 0.143097 0.466614 0.926178 0.144287 0.507721 0.926392 0.145477 0.546478 0.926605 0.146637 0.582886 0.926819 0.147797 0.616791 0.926971 0.148956 0.648346 0.927155 0.150116 0.677856 0.927399 0.151245 0.705505 0.927551 0.152405 0.731659 0.927734 0.153503 0.756561 0.927917 0.154602 0.780365 0.928101 0.155701 0.803375 0.928253 0.156738 0.825684 0.928436 0.157806 0.847504 0.928619 0.158844 0.869110 0.928772 0.159882 0.890808 0.928955 0.160828 0.912811 0.929108 0.161804 0.935638 0.929291 0.162842 0.959961 0.929443 0.163727 0.071655 0.948029 0.127686 0.089417 0.948181 0.128937 0.108887 0.948334 0.130219 0.130219 0.948456 0.131378 0.153870 0.948608 0.132690 0.180084 0.948761 0.133911 0.208893 0.948883 0.135162 0.240295 0.949005 0.136383 0.274017 0.949188 0.137543 0.309814 0.949341 0.138794 0.347565 0.949524 0.140015 0.386932 0.949646 0.141205 0.427551 0.949768 0.142426 0.469025 0.949890 0.143585 0.509888 0.950043 0.144775 0.548401 0.950165 0.145935 0.584534 0.950287 0.147125 0.618225 0.950409 0.148224 0.649567 0.950531 0.149414 0.678864 0.950653 0.150482 0.706390 0.950806 0.151550 0.732422 0.950897 0.152710 0.757202 0.951019 0.153778 0.780945 0.951141 0.154816 0.803772 0.951294 0.155884 0.826019 0.951385 0.156860 0.847839 0.951508 0.157898 0.869385 0.951599 0.158875 0.890961 0.951721 0.159851 0.912933 0.951813 0.160828 0.935699 0.951935 0.161774 0.959961 0.952026 0.162628 0.073425 0.973267 0.126923 0.091309 0.973328 0.128174 0.110840 0.973419 0.129395 0.132324 0.973480 0.130646 0.156128 0.973572 0.131866 0.182434 0.973663 0.133148 0.211395 0.973724 0.134338 0.242859 0.973846 0.135529 0.276642 0.973877 0.136810 0.312469 0.973969 0.138000 0.350189 0.974030 0.139252 0.389557 0.974121 0.140411 0.430084 0.974182 0.141602 0.471375 0.974243 0.142792 0.511963 0.974304 0.143890 0.550293 0.974396 0.145081 0.586182 0.974426 0.146240 0.619629 0.974518 0.147339 0.650757 0.974579 0.148438 0.679901 0.974609 0.149567 0.707245 0.974701 0.150635 0.733154 0.974762 0.151672 0.757843 0.974854 0.152771 0.781464 0.974884 0.153809 0.804230 0.974976 0.154846 0.826416 0.975006 0.155792 0.848083 0.975067 0.156769 0.869598 0.975098 0.157776 0.891113 0.975189 0.158691 0.913055 0.975220 0.159607 0.935730 0.975281 0.160492 0.959961 0.975311 0.161377 0.075165 1.000000 0.125916 0.093170 1.000000 0.127167 0.112823 1.000000 0.128418 0.134399 1.000000 0.129639 0.158356 1.000000 0.130890 0.184784 1.000000 0.132111 0.213867 1.000000 0.133331 0.245422 1.000000 0.134552 0.279205 1.000000 0.135834 0.315033 1.000000 0.136963 0.352783 1.000000 0.138184 0.391998 1.000000 0.139343 0.432495 1.000000 0.140533 0.473724 1.000000 0.141724 0.514038 1.000000 0.142883 0.552063 1.000000 0.144012 0.587738 1.000000 0.145111 0.620941 1.000000 0.146240 0.651917 1.000000 0.147308 0.680847 1.000000 0.148407 0.708069 1.000000 0.149475 0.733917 1.000000 0.150513 0.758423 1.000000 0.151520 0.781921 1.000000 0.152527 0.804657 1.000000 0.153534 0.826721 1.000000 0.154480 0.848389 1.000000 0.155426 0.869812 1.000000 0.156342 0.891327 1.000000 0.157257 0.913147 1.000000 0.158142 0.935822 1.000000 0.158997 0.959961 1.000000 0.159790 0.031921 0.001556 0.224823 0.047394 0.002106 0.225372 0.064026 0.002747 0.225861 0.082123 0.003357 0.226379 0.101929 0.004028 0.226929 0.123932 0.004700 0.227478 0.148407 0.005432 0.228088 0.175812 0.006134 0.228668 0.206268 0.006927 0.229279 0.239777 0.007721 0.229919 0.275970 0.008545 0.230621 0.314758 0.009338 0.231293 0.355835 0.010193 0.231995 0.398773 0.011108 0.232727 0.443176 0.011963 0.233429 0.488190 0.012909 0.234192 0.531403 0.013824 0.234955 0.571808 0.014801 0.235779 0.609375 0.015808 0.236603 0.644165 0.016815 0.237396 0.676483 0.017822 0.238220 0.706696 0.018890 0.239105 0.735138 0.019928 0.239960 0.762146 0.021027 0.240845 0.787933 0.022125 0.241760 0.812805 0.023224 0.242615 0.836975 0.024414 0.243591 0.860809 0.025543 0.244507 0.884491 0.026733 0.245453 0.908539 0.027954 0.246429 0.933380 0.029144 0.247375 0.959961 0.030365 0.248383 0.032623 0.017731 0.223907 0.048187 0.018372 0.224396 0.064880 0.019012 0.224915 0.083038 0.019745 0.225494 0.102966 0.020477 0.226105 0.125092 0.021210 0.226685 0.149658 0.021973 0.227295 0.177216 0.022766 0.227966 0.207825 0.023590 0.228607 0.241425 0.024445 0.229279 0.277740 0.025299 0.230011 0.316620 0.026184 0.230743 0.357666 0.027100 0.231476 0.400604 0.028046 0.232208 0.445038 0.028992 0.233002 0.489960 0.029999 0.233795 0.533020 0.030975 0.234558 0.573212 0.032013 0.235413 0.610626 0.033081 0.236206 0.645233 0.034119 0.237061 0.677429 0.035217 0.237946 0.707520 0.036346 0.238831 0.735870 0.037476 0.239685 0.762787 0.038635 0.240631 0.788452 0.039825 0.241577 0.813232 0.040985 0.242462 0.837372 0.042236 0.243408 0.861053 0.043396 0.244354 0.884735 0.044647 0.245331 0.908691 0.045990 0.246307 0.933441 0.047241 0.247314 0.959961 0.048523 0.248291 0.033417 0.034851 0.222870 0.049011 0.035583 0.223450 0.065796 0.036285 0.224030 0.084015 0.037048 0.224579 0.104126 0.037842 0.225250 0.126312 0.038635 0.225891 0.151062 0.039490 0.226532 0.178711 0.040405 0.227203 0.209442 0.041260 0.227844 0.243164 0.042206 0.228577 0.279572 0.043152 0.229340 0.318512 0.044098 0.230103 0.359619 0.045105 0.230865 0.402527 0.046112 0.231689 0.446991 0.047150 0.232422 0.491760 0.048218 0.233276 0.534607 0.049286 0.234100 0.574707 0.050354 0.234955 0.611938 0.051544 0.235809 0.646393 0.052643 0.236664 0.678375 0.053864 0.237518 0.708344 0.055054 0.238434 0.736572 0.056244 0.239349 0.763397 0.057526 0.240295 0.789001 0.058746 0.241211 0.813690 0.060028 0.242188 0.837738 0.061340 0.243134 0.861359 0.062622 0.244080 0.884979 0.064026 0.245117 0.908875 0.065399 0.246094 0.933533 0.066742 0.247070 0.959961 0.068146 0.248077 0.034302 0.053223 0.221802 0.049957 0.054016 0.222382 0.066772 0.054810 0.222992 0.085144 0.055695 0.223633 0.105286 0.056580 0.224274 0.127594 0.057465 0.224945 0.152496 0.058350 0.225647 0.180298 0.059326 0.226379 0.211182 0.060303 0.227051 0.244965 0.061340 0.227844 0.281494 0.062347 0.228607 0.320496 0.063416 0.229370 0.361694 0.064514 0.230133 0.404572 0.065582 0.230988 0.449005 0.066742 0.231781 0.493713 0.067932 0.232605 0.536316 0.069061 0.233459 0.576202 0.070312 0.234375 0.613251 0.071533 0.235229 0.647491 0.072754 0.236084 0.679352 0.074036 0.237000 0.709229 0.075348 0.237946 0.737335 0.076691 0.238892 0.764038 0.078033 0.239838 0.789520 0.079376 0.240753 0.814148 0.080780 0.241699 0.838135 0.082153 0.242706 0.861633 0.083588 0.243683 0.885132 0.085052 0.244690 0.909027 0.086548 0.245667 0.933655 0.087982 0.246674 0.959961 0.089569 0.247681 0.035217 0.073242 0.220581 0.050903 0.074127 0.221252 0.067810 0.075043 0.221863 0.086273 0.075989 0.222534 0.106537 0.076965 0.223175 0.128998 0.077972 0.223907 0.154022 0.079010 0.224640 0.181976 0.080078 0.225342 0.212982 0.081116 0.226135 0.246918 0.082306 0.226898 0.283508 0.083405 0.227661 0.322540 0.084595 0.228455 0.363770 0.085785 0.229309 0.406677 0.087006 0.230103 0.451050 0.088257 0.230927 0.495636 0.089539 0.231812 0.538116 0.090790 0.232666 0.577698 0.092163 0.233551 0.614594 0.093475 0.234467 0.648682 0.094849 0.235352 0.680389 0.096252 0.236267 0.710083 0.097687 0.237183 0.738098 0.099121 0.238159 0.764679 0.100616 0.239136 0.790100 0.102051 0.240082 0.814606 0.103607 0.241028 0.838501 0.105164 0.242004 0.861969 0.106689 0.242981 0.885437 0.108307 0.243958 0.909149 0.109894 0.244995 0.933716 0.111481 0.245972 0.959961 0.113190 0.247009 0.036194 0.095337 0.219208 0.052002 0.096313 0.219849 0.068939 0.097351 0.220520 0.087494 0.098419 0.221222 0.107880 0.099548 0.221924 0.130463 0.100616 0.222656 0.155579 0.101807 0.223389 0.183716 0.102936 0.224182 0.214844 0.104156 0.224915 0.248901 0.105438 0.225708 0.285553 0.106689 0.226532 0.324707 0.108002 0.227325 0.365967 0.109344 0.228210 0.408875 0.110687 0.229004 0.453156 0.112061 0.229858 0.497650 0.113495 0.230743 0.539825 0.114899 0.231628 0.579285 0.116364 0.232513 0.615936 0.117889 0.233429 0.649872 0.119385 0.234344 0.681427 0.120941 0.235260 0.710968 0.122467 0.236206 0.738861 0.124084 0.237183 0.765320 0.125702 0.238129 0.790619 0.127350 0.239075 0.815033 0.128998 0.240051 0.838867 0.130707 0.241028 0.862274 0.132385 0.242004 0.885681 0.134155 0.243011 0.909332 0.135956 0.244019 0.933807 0.137665 0.244995 0.959961 0.139526 0.246002 0.037231 0.119934 0.217590 0.053040 0.121063 0.218292 0.070160 0.122192 0.218964 0.088776 0.123413 0.219666 0.109283 0.124664 0.220398 0.131958 0.125916 0.221161 0.157257 0.127228 0.221924 0.185486 0.128571 0.222687 0.216827 0.129883 0.223511 0.250946 0.131287 0.224304 0.287689 0.132690 0.225098 0.326904 0.134186 0.225952 0.368195 0.135651 0.226807 0.411102 0.137146 0.227631 0.455383 0.138702 0.228516 0.499634 0.140289 0.229401 0.541656 0.141846 0.230286 0.580872 0.143463 0.231171 0.617279 0.145111 0.232086 0.651093 0.146820 0.233002 0.682495 0.148529 0.233978 0.711884 0.150238 0.234894 0.739624 0.152039 0.235870 0.765961 0.153778 0.236816 0.791199 0.155579 0.237762 0.815552 0.157440 0.238739 0.839264 0.159332 0.239685 0.862610 0.161194 0.240662 0.885834 0.163116 0.241699 0.909454 0.165009 0.242645 0.933868 0.166962 0.243652 0.959961 0.168945 0.244690 0.038300 0.147552 0.215668 0.054230 0.148865 0.216339 0.071350 0.150177 0.217041 0.090118 0.151520 0.217834 0.110718 0.152893 0.218536 0.133545 0.154388 0.219299 0.159027 0.155823 0.220123 0.187408 0.157318 0.220825 0.218872 0.158844 0.221649 0.253113 0.160400 0.222504 0.289948 0.161987 0.223328 0.329193 0.163605 0.224182 0.370514 0.165253 0.225067 0.413422 0.166931 0.225891 0.457581 0.168671 0.226776 0.501709 0.170380 0.227661 0.543518 0.172150 0.228546 0.582489 0.173981 0.229492 0.618744 0.175812 0.230408 0.652283 0.177673 0.231262 0.683563 0.179565 0.232269 0.712830 0.181458 0.233124 0.740417 0.183441 0.234100 0.766663 0.185394 0.235077 0.791809 0.187408 0.235962 0.816010 0.189453 0.236969 0.839661 0.191467 0.237976 0.862946 0.193512 0.238892 0.886108 0.195618 0.239899 0.909637 0.197662 0.240875 0.933990 0.199799 0.241913 0.959961 0.201996 0.242859 0.039429 0.178833 0.213318 0.055420 0.180328 0.214050 0.072693 0.181763 0.214783 0.091522 0.183350 0.215546 0.112213 0.184875 0.216248 0.135162 0.186493 0.217010 0.160767 0.188141 0.217834 0.189362 0.189819 0.218628 0.220947 0.191498 0.219482 0.255310 0.193268 0.220276 0.292236 0.195007 0.221100 0.331512 0.196838 0.221954 0.372833 0.198700 0.222809 0.415771 0.200500 0.223724 0.459869 0.202454 0.224579 0.503784 0.204346 0.225433 0.545410 0.206268 0.226379 0.584198 0.208282 0.227264 0.620178 0.210266 0.228180 0.653564 0.212280 0.229095 0.684601 0.214386 0.230042 0.713745 0.216431 0.230957 0.741211 0.218536 0.231903 0.767334 0.220703 0.232880 0.792358 0.222809 0.233826 0.816528 0.224976 0.234833 0.840057 0.227173 0.235779 0.863251 0.229401 0.236725 0.886383 0.231628 0.237732 0.909821 0.233856 0.238678 0.934082 0.236176 0.239655 0.959961 0.238434 0.240662 0.040619 0.214081 0.210571 0.056702 0.215698 0.211273 0.074036 0.217346 0.212036 0.092957 0.219086 0.212769 0.113770 0.220764 0.213531 0.136932 0.222565 0.214355 0.162689 0.224365 0.215149 0.191437 0.226196 0.215973 0.223114 0.228058 0.216797 0.257599 0.229980 0.217651 0.294586 0.231873 0.218445 0.333954 0.233826 0.219360 0.375214 0.235840 0.220184 0.418152 0.237793 0.221069 0.462189 0.239868 0.221985 0.505981 0.241913 0.222839 0.547272 0.244019 0.223755 0.585815 0.246155 0.224670 0.621582 0.248260 0.225586 0.654785 0.250458 0.226532 0.685699 0.252655 0.227417 0.714630 0.254852 0.228394 0.742035 0.257111 0.229340 0.768005 0.259369 0.230286 0.792908 0.261597 0.231293 0.816986 0.263916 0.232208 0.840454 0.266205 0.233154 0.863525 0.268524 0.234131 0.886566 0.270874 0.235107 0.909943 0.273193 0.236053 0.934143 0.275574 0.237091 0.959961 0.277985 0.238037 0.041870 0.253082 0.207367 0.057953 0.254761 0.208130 0.075409 0.256622 0.208862 0.094482 0.258484 0.209656 0.115448 0.260284 0.210419 0.138672 0.262238 0.211273 0.164642 0.264191 0.212097 0.193512 0.266113 0.212860 0.225372 0.268127 0.213745 0.259918 0.270142 0.214630 0.297028 0.272186 0.215454 0.336395 0.274261 0.216309 0.377716 0.276367 0.217194 0.420593 0.278503 0.218079 0.464569 0.280670 0.218994 0.508118 0.282776 0.219879 0.549194 0.285065 0.220795 0.587524 0.287292 0.221710 0.623047 0.289490 0.222595 0.656036 0.291809 0.223541 0.686768 0.294098 0.224487 0.715576 0.296326 0.225433 0.742828 0.298706 0.226410 0.768738 0.301025 0.227356 0.793518 0.303406 0.228333 0.817474 0.305786 0.229248 0.840851 0.308136 0.230255 0.863861 0.310547 0.231201 0.886841 0.312988 0.232239 0.910126 0.315369 0.233154 0.934235 0.317810 0.234131 0.959961 0.320282 0.235138 0.043152 0.295441 0.203827 0.059326 0.297302 0.204590 0.076874 0.299225 0.205353 0.096039 0.301178 0.206177 0.117157 0.303131 0.206940 0.140533 0.305145 0.207764 0.166656 0.307190 0.208649 0.195679 0.309235 0.209473 0.227631 0.311371 0.210327 0.262329 0.313477 0.211212 0.299469 0.315613 0.212097 0.338898 0.317810 0.212891 0.380188 0.319977 0.213806 0.423096 0.322174 0.214691 0.466980 0.324432 0.215637 0.510345 0.326691 0.216553 0.551147 0.328979 0.217468 0.589203 0.331299 0.218384 0.624512 0.333557 0.219299 0.657318 0.335907 0.220245 0.687866 0.338287 0.221222 0.716553 0.340576 0.222168 0.743683 0.343018 0.223145 0.769409 0.345337 0.224060 0.794098 0.347778 0.225067 0.817993 0.350220 0.226013 0.841217 0.352600 0.226990 0.864227 0.355072 0.227966 0.887085 0.357483 0.228943 0.910278 0.359924 0.229950 0.934296 0.362335 0.230927 0.959961 0.364838 0.231903 0.044464 0.340851 0.199921 0.060730 0.342743 0.200714 0.078430 0.344788 0.201508 0.097656 0.346832 0.202362 0.118896 0.348846 0.203125 0.142426 0.350952 0.204010 0.168701 0.353058 0.204865 0.197906 0.355133 0.205719 0.230011 0.357300 0.206604 0.264709 0.359436 0.207458 0.301971 0.361664 0.208374 0.341461 0.363922 0.209229 0.382751 0.366119 0.210144 0.425598 0.368378 0.211060 0.469360 0.370697 0.212006 0.512512 0.372925 0.212952 0.553070 0.375305 0.213867 0.590912 0.377625 0.214783 0.626007 0.379944 0.215759 0.658630 0.382324 0.216705 0.688965 0.384644 0.217651 0.717468 0.387054 0.218628 0.744476 0.389435 0.219604 0.770081 0.391846 0.220551 0.794708 0.394287 0.221558 0.818420 0.396637 0.222534 0.841644 0.399048 0.223480 0.864502 0.401489 0.224457 0.887329 0.403931 0.225464 0.910492 0.406311 0.226471 0.934387 0.408752 0.227448 0.959961 0.411133 0.228424 0.045837 0.388733 0.195801 0.062195 0.390747 0.196564 0.079926 0.392761 0.197418 0.099335 0.394836 0.198303 0.120667 0.396912 0.199127 0.144379 0.399048 0.199982 0.170837 0.401154 0.200897 0.200134 0.403320 0.201721 0.232391 0.405518 0.202637 0.267242 0.407654 0.203522 0.304565 0.409882 0.204437 0.344055 0.412109 0.205353 0.385315 0.414368 0.206238 0.428162 0.416626 0.207245 0.471863 0.418945 0.208160 0.514740 0.421204 0.209076 0.554993 0.423462 0.210052 0.592621 0.425842 0.211029 0.627472 0.428101 0.211975 0.659821 0.430511 0.212952 0.690063 0.432831 0.213898 0.718445 0.435181 0.214874 0.745270 0.437531 0.215912 0.770813 0.439850 0.216827 0.795319 0.442230 0.217865 0.818970 0.444641 0.218872 0.842072 0.446960 0.219849 0.864838 0.449371 0.220825 0.887543 0.451782 0.221832 0.910614 0.454102 0.222809 0.934509 0.456451 0.223785 0.959961 0.458801 0.224762 0.047241 0.438538 0.191467 0.063690 0.440582 0.192291 0.081543 0.442627 0.193146 0.101044 0.444702 0.194000 0.122528 0.446747 0.194916 0.146393 0.448883 0.195801 0.173004 0.450928 0.196716 0.202515 0.453125 0.197601 0.234833 0.455261 0.198517 0.269745 0.457458 0.199432 0.307190 0.459595 0.200378 0.346680 0.461853 0.201294 0.387970 0.464020 0.202209 0.430695 0.466309 0.203217 0.474304 0.468506 0.204193 0.516937 0.470734 0.205170 0.557007 0.472961 0.206116 0.594360 0.475281 0.207092 0.628967 0.477478 0.208069 0.661133 0.479767 0.209045 0.691162 0.481964 0.210114 0.719391 0.484222 0.211060 0.746094 0.486603 0.212067 0.771515 0.488800 0.213074 0.795868 0.491058 0.214050 0.819458 0.493347 0.215088 0.842468 0.495605 0.216064 0.865143 0.497833 0.217102 0.887848 0.500092 0.218079 0.910767 0.502289 0.219116 0.934570 0.504578 0.220154 0.959961 0.506775 0.221130 0.048706 0.489532 0.187042 0.065277 0.491486 0.187897 0.083160 0.493469 0.188782 0.102783 0.495514 0.189667 0.124420 0.497467 0.190613 0.148438 0.499512 0.191528 0.175171 0.501526 0.192444 0.204865 0.503601 0.193420 0.237335 0.505676 0.194366 0.272400 0.507690 0.195282 0.309814 0.509827 0.196259 0.349365 0.511871 0.197266 0.390625 0.513947 0.198242 0.433319 0.516022 0.199219 0.476807 0.518127 0.200226 0.519165 0.520142 0.201202 0.558960 0.522278 0.202240 0.596008 0.524292 0.203247 0.630463 0.526337 0.204285 0.662445 0.528442 0.205292 0.692291 0.530487 0.206268 0.720367 0.532532 0.207367 0.746887 0.534576 0.208374 0.772156 0.536591 0.209381 0.796417 0.538635 0.210449 0.819946 0.540680 0.211487 0.842865 0.542664 0.212494 0.865479 0.544617 0.213593 0.888031 0.546600 0.214600 0.910950 0.548584 0.215637 0.934692 0.550507 0.216705 0.959961 0.552429 0.217712 0.050201 0.539398 0.182800 0.066833 0.541168 0.183716 0.084869 0.542969 0.184662 0.104584 0.544800 0.185608 0.126373 0.546539 0.186554 0.150513 0.548370 0.187531 0.177429 0.550140 0.188538 0.207306 0.551971 0.189514 0.239868 0.553802 0.190521 0.274994 0.555634 0.191498 0.312469 0.557434 0.192566 0.352051 0.559326 0.193573 0.393280 0.561096 0.194580 0.435974 0.562958 0.195648 0.479340 0.564789 0.196655 0.521393 0.566589 0.197723 0.560974 0.568420 0.198792 0.597748 0.570221 0.199768 0.631927 0.572021 0.200836 0.663727 0.573883 0.201935 0.693359 0.575653 0.202972 0.721283 0.577454 0.204041 0.747711 0.579224 0.205139 0.772888 0.580963 0.206177 0.797058 0.582764 0.207245 0.820435 0.584564 0.208374 0.843262 0.586243 0.209442 0.865784 0.587982 0.210510 0.888275 0.589752 0.211517 0.911072 0.591431 0.212646 0.934723 0.593109 0.213745 0.959961 0.594757 0.214752 0.051727 0.585602 0.179108 0.068420 0.587128 0.180054 0.086548 0.588745 0.181030 0.106445 0.590332 0.182098 0.128326 0.591919 0.183075 0.152679 0.593445 0.184113 0.179749 0.595062 0.185089 0.209717 0.596680 0.186188 0.242432 0.598236 0.187195 0.277649 0.599854 0.188263 0.315216 0.601471 0.189301 0.354736 0.603058 0.190399 0.395966 0.604645 0.191437 0.438629 0.606262 0.192505 0.481812 0.607819 0.193634 0.523621 0.609436 0.194641 0.562897 0.611053 0.195740 0.599457 0.612549 0.196869 0.633423 0.614166 0.197968 0.665009 0.615723 0.199066 0.694489 0.617249 0.200134 0.722229 0.618835 0.201263 0.748505 0.620392 0.202332 0.773590 0.621887 0.203430 0.797607 0.623413 0.204590 0.820892 0.624969 0.205658 0.843658 0.626465 0.206757 0.866089 0.627930 0.207886 0.888519 0.629395 0.208954 0.911255 0.630859 0.210052 0.934845 0.632355 0.211151 0.959961 0.633728 0.212219 0.053284 0.628143 0.175934 0.070099 0.629486 0.176971 0.088287 0.630859 0.178009 0.108307 0.632233 0.178986 0.130371 0.633636 0.180023 0.154846 0.634979 0.181183 0.182098 0.636353 0.182220 0.212219 0.637756 0.183289 0.245056 0.639160 0.184387 0.280334 0.640503 0.185455 0.317932 0.641907 0.186554 0.357513 0.643280 0.187653 0.398743 0.644653 0.188751 0.441284 0.646057 0.189850 0.484283 0.647369 0.190979 0.525818 0.648773 0.192139 0.564850 0.650085 0.193237 0.601166 0.651459 0.194366 0.634918 0.652832 0.195496 0.666229 0.654175 0.196655 0.695557 0.655457 0.197723 0.723145 0.656799 0.198883 0.749329 0.658142 0.200043 0.774231 0.659424 0.201111 0.798187 0.660706 0.202271 0.821381 0.662018 0.203339 0.843994 0.663269 0.204498 0.866394 0.664581 0.205658 0.888763 0.665802 0.206757 0.911469 0.667053 0.207855 0.934937 0.668335 0.208984 0.959961 0.669495 0.210052 0.054901 0.667084 0.173248 0.071777 0.668243 0.174286 0.090118 0.669403 0.175354 0.110168 0.670624 0.176453 0.132416 0.671753 0.177582 0.157043 0.672974 0.178680 0.184509 0.674133 0.179749 0.214752 0.675354 0.180908 0.247681 0.676575 0.181976 0.283051 0.677734 0.183136 0.320709 0.678894 0.184296 0.360291 0.680084 0.185455 0.401428 0.681244 0.186554 0.443878 0.682434 0.187744 0.486816 0.683594 0.188843 0.528076 0.684753 0.190002 0.566742 0.685944 0.191162 0.602875 0.687073 0.192291 0.636322 0.688263 0.193451 0.667542 0.689392 0.194641 0.696625 0.690521 0.195740 0.724091 0.691650 0.196899 0.750122 0.692780 0.198090 0.774933 0.693878 0.199188 0.798767 0.694977 0.200348 0.821869 0.696045 0.201477 0.844421 0.697174 0.202637 0.866669 0.698242 0.203735 0.888977 0.699280 0.204865 0.911621 0.700378 0.205994 0.934998 0.701447 0.207123 0.959961 0.702454 0.208191 0.056519 0.702789 0.170990 0.073456 0.703827 0.172119 0.091888 0.704803 0.173248 0.112152 0.705811 0.174377 0.134521 0.706818 0.175507 0.159302 0.707855 0.176636 0.186920 0.708862 0.177765 0.217316 0.709930 0.178955 0.250336 0.710968 0.180115 0.285767 0.711945 0.181213 0.323456 0.712952 0.182404 0.363007 0.713959 0.183533 0.404175 0.714996 0.184723 0.446533 0.715973 0.185913 0.489227 0.716949 0.187042 0.530273 0.717957 0.188232 0.568726 0.718964 0.189392 0.604523 0.719940 0.190613 0.637787 0.720947 0.191772 0.668732 0.721924 0.192902 0.697693 0.722870 0.194061 0.725037 0.723816 0.195251 0.750885 0.724823 0.196411 0.775574 0.725739 0.197571 0.799316 0.726715 0.198761 0.822327 0.727600 0.199890 0.844788 0.728546 0.201050 0.867004 0.729462 0.202179 0.889221 0.730377 0.203308 0.911774 0.731262 0.204468 0.935089 0.732147 0.205566 0.959961 0.733032 0.206635 0.058136 0.735809 0.169128 0.075195 0.736694 0.170349 0.093811 0.737579 0.171478 0.114105 0.738434 0.172607 0.136627 0.739288 0.173798 0.161621 0.740204 0.174957 0.189331 0.741058 0.176147 0.219879 0.741943 0.177277 0.253052 0.742828 0.178497 0.288544 0.743683 0.179657 0.326233 0.744537 0.180817 0.365723 0.745361 0.182068 0.406860 0.746277 0.183197 0.449188 0.747131 0.184418 0.491730 0.747955 0.185577 0.532440 0.748840 0.186798 0.570618 0.749664 0.188019 0.606201 0.750519 0.189148 0.639191 0.751343 0.190338 0.669983 0.752167 0.191589 0.698792 0.752991 0.192719 0.725922 0.753815 0.193939 0.751678 0.754639 0.195068 0.776215 0.755463 0.196259 0.799866 0.756226 0.197449 0.822784 0.757019 0.198578 0.845184 0.757843 0.199677 0.867310 0.758575 0.200867 0.889465 0.759369 0.201965 0.911896 0.760101 0.203125 0.935181 0.760864 0.204224 0.959961 0.761597 0.205292 0.059784 0.766632 0.167633 0.076965 0.767365 0.168823 0.095642 0.768127 0.170013 0.116150 0.768860 0.171173 0.138733 0.769623 0.172363 0.163879 0.770355 0.173553 0.191803 0.771088 0.174713 0.222473 0.771820 0.175964 0.255676 0.772583 0.177155 0.291260 0.773315 0.178375 0.328979 0.774078 0.179596 0.368500 0.774780 0.180786 0.409637 0.775513 0.181946 0.451813 0.776215 0.183197 0.494171 0.776978 0.184387 0.534576 0.777710 0.185577 0.572510 0.778442 0.186829 0.607819 0.779144 0.187988 0.640594 0.779846 0.189178 0.671204 0.780548 0.190430 0.699829 0.781219 0.191620 0.726837 0.781921 0.192780 0.752411 0.782623 0.193909 0.776855 0.783295 0.195099 0.800446 0.783966 0.196259 0.823242 0.784637 0.197418 0.845520 0.785309 0.198578 0.867584 0.785950 0.199707 0.889648 0.786560 0.200836 0.912048 0.787262 0.201904 0.935242 0.787872 0.203064 0.959961 0.788483 0.204163 0.061493 0.795532 0.166351 0.078735 0.796173 0.167572 0.097534 0.796814 0.168823 0.118164 0.797424 0.169952 0.140961 0.798096 0.171204 0.166260 0.798737 0.172485 0.194275 0.799316 0.173645 0.225098 0.799957 0.174866 0.258392 0.800598 0.176086 0.294037 0.801239 0.177307 0.331757 0.801849 0.178528 0.371277 0.802490 0.179749 0.412292 0.803070 0.180969 0.454407 0.803711 0.182190 0.496552 0.804291 0.183411 0.536743 0.804932 0.184601 0.574371 0.805511 0.185822 0.609406 0.806152 0.187012 0.642029 0.806732 0.188263 0.672363 0.807312 0.189392 0.700867 0.807892 0.190613 0.727661 0.808502 0.191803 0.753174 0.809052 0.192963 0.777496 0.809631 0.194153 0.800934 0.810211 0.195282 0.823669 0.810730 0.196442 0.845917 0.811340 0.197601 0.867889 0.811890 0.198730 0.889862 0.812378 0.199860 0.912201 0.812958 0.200958 0.935333 0.813477 0.202026 0.959961 0.813965 0.203125 0.063232 0.822937 0.165375 0.080536 0.823486 0.166565 0.099457 0.824005 0.167816 0.120209 0.824524 0.169037 0.143127 0.825073 0.170258 0.168610 0.825592 0.171448 0.196838 0.826111 0.172699 0.227722 0.826691 0.173981 0.261108 0.827209 0.175140 0.296753 0.827728 0.176453 0.334503 0.828278 0.177643 0.373993 0.828766 0.178864 0.415009 0.829285 0.180115 0.457001 0.829803 0.181335 0.498993 0.830322 0.182556 0.538849 0.830841 0.183777 0.576202 0.831329 0.185028 0.611053 0.831848 0.186188 0.643372 0.832336 0.187439 0.673553 0.832794 0.188629 0.701843 0.833313 0.189728 0.728546 0.833801 0.190979 0.753937 0.834290 0.192108 0.778137 0.834717 0.193268 0.801514 0.835205 0.194427 0.824097 0.835693 0.195557 0.846222 0.836151 0.196716 0.868134 0.836609 0.197815 0.890076 0.837036 0.198914 0.912323 0.837494 0.200043 0.935394 0.837891 0.201050 0.959961 0.838348 0.202118 0.064941 0.849121 0.164459 0.082367 0.849609 0.165741 0.101379 0.850037 0.166962 0.122284 0.850494 0.168182 0.145355 0.850891 0.169464 0.170929 0.851349 0.170685 0.199341 0.851776 0.171936 0.230316 0.852203 0.173218 0.263763 0.852661 0.174438 0.299500 0.853088 0.175659 0.337250 0.853546 0.176910 0.376709 0.853943 0.178162 0.417633 0.854401 0.179413 0.459595 0.854828 0.180664 0.501373 0.855255 0.181824 0.540924 0.855682 0.183075 0.578003 0.856049 0.184265 0.612579 0.856506 0.185486 0.644745 0.856903 0.186676 0.674683 0.857269 0.187836 0.702820 0.857727 0.189056 0.729401 0.858093 0.190247 0.754639 0.858521 0.191345 0.778778 0.858887 0.192566 0.801971 0.859283 0.193665 0.824524 0.859650 0.194794 0.846619 0.860016 0.195923 0.868408 0.860382 0.196991 0.890259 0.860779 0.198090 0.912476 0.861115 0.199127 0.935455 0.861450 0.200195 0.959961 0.861816 0.201294 0.066681 0.874420 0.163727 0.084229 0.874786 0.164978 0.103363 0.875122 0.166260 0.124329 0.875519 0.167511 0.147583 0.875885 0.168762 0.173309 0.876221 0.170044 0.201874 0.876587 0.171265 0.233002 0.876953 0.172546 0.266479 0.877289 0.173798 0.302216 0.877655 0.175049 0.339996 0.878021 0.176270 0.379395 0.878357 0.177521 0.420349 0.878662 0.178741 0.462097 0.879059 0.179962 0.503632 0.879364 0.181183 0.542969 0.879730 0.182434 0.579803 0.880035 0.183624 0.614105 0.880402 0.184814 0.646027 0.880707 0.186035 0.675812 0.881042 0.187164 0.703827 0.881378 0.188385 0.730225 0.881683 0.189545 0.755341 0.881989 0.190674 0.779358 0.882324 0.191833 0.802490 0.882629 0.192963 0.824921 0.882935 0.194031 0.846924 0.883240 0.195129 0.868713 0.883514 0.196198 0.890472 0.883820 0.197235 0.912598 0.884125 0.198334 0.935516 0.884369 0.199371 0.959961 0.884674 0.200348 0.068420 0.899078 0.163147 0.086090 0.899384 0.164398 0.105255 0.899658 0.165588 0.126404 0.899963 0.166931 0.149811 0.900299 0.168152 0.175720 0.900543 0.169403 0.204407 0.900848 0.170715 0.235565 0.901093 0.171967 0.269135 0.901337 0.173187 0.304962 0.901642 0.174469 0.342743 0.901917 0.175720 0.382080 0.902222 0.176910 0.422943 0.902466 0.178162 0.464569 0.902740 0.179413 0.505890 0.902985 0.180573 0.544922 0.903290 0.181854 0.581482 0.903564 0.182983 0.615631 0.903809 0.184174 0.647308 0.904083 0.185394 0.676941 0.904327 0.186523 0.704773 0.904602 0.187683 0.731018 0.904816 0.188843 0.756042 0.905090 0.190002 0.779907 0.905304 0.191101 0.802948 0.905579 0.192200 0.825348 0.905792 0.193268 0.847260 0.906036 0.194305 0.868927 0.906250 0.195435 0.890656 0.906433 0.196472 0.912750 0.906708 0.197479 0.935577 0.906891 0.198425 0.959961 0.907104 0.199432 0.070221 0.923523 0.162476 0.087952 0.923737 0.163788 0.107239 0.923950 0.165039 0.128510 0.924164 0.166321 0.152069 0.924408 0.167603 0.178131 0.924591 0.168823 0.206879 0.924835 0.170135 0.238159 0.925018 0.171356 0.271820 0.925232 0.172577 0.307678 0.925415 0.173828 0.345398 0.925659 0.175079 0.384766 0.925873 0.176331 0.425476 0.926056 0.177582 0.467010 0.926208 0.178772 0.508118 0.926453 0.179993 0.546906 0.926666 0.181213 0.583221 0.926880 0.182343 0.617096 0.927063 0.183533 0.648590 0.927216 0.184723 0.678009 0.927429 0.185883 0.705658 0.927612 0.187042 0.731812 0.927795 0.188141 0.756683 0.928009 0.189240 0.780487 0.928131 0.190369 0.803436 0.928314 0.191376 0.825684 0.928528 0.192505 0.847595 0.928680 0.193542 0.869202 0.928833 0.194580 0.890839 0.929016 0.195557 0.912842 0.929169 0.196533 0.935638 0.929352 0.197510 0.959961 0.929474 0.198486 0.071991 0.948090 0.161835 0.089783 0.948242 0.163147 0.109222 0.948364 0.164398 0.130615 0.948517 0.165710 0.154297 0.948669 0.166992 0.180481 0.948792 0.168243 0.209381 0.948944 0.169464 0.240784 0.949066 0.170776 0.274475 0.949219 0.171997 0.310333 0.949371 0.173248 0.348053 0.949554 0.174438 0.387421 0.949707 0.175690 0.428040 0.949829 0.176941 0.469391 0.949982 0.178101 0.510284 0.950073 0.179321 0.548767 0.950195 0.180542 0.584900 0.950348 0.181671 0.618530 0.950439 0.182861 0.649811 0.950592 0.183990 0.679047 0.950684 0.185120 0.706543 0.950836 0.186218 0.732574 0.950958 0.187317 0.757294 0.951080 0.188385 0.781067 0.951202 0.189514 0.803864 0.951324 0.190552 0.826080 0.951477 0.191620 0.847870 0.951569 0.192596 0.869446 0.951691 0.193604 0.890991 0.951782 0.194580 0.912933 0.951874 0.195557 0.935699 0.951996 0.196472 0.959961 0.952057 0.197357 0.073730 0.973297 0.161133 0.091675 0.973358 0.162445 0.111206 0.973450 0.163696 0.132751 0.973511 0.164978 0.156525 0.973572 0.166199 0.182861 0.973663 0.167480 0.211853 0.973785 0.168762 0.243317 0.973846 0.169952 0.277100 0.973938 0.171234 0.312958 0.973999 0.172516 0.350677 0.974091 0.173706 0.389923 0.974152 0.174927 0.430542 0.974182 0.176178 0.471802 0.974304 0.177307 0.512390 0.974335 0.178528 0.550629 0.974396 0.179688 0.586456 0.974457 0.180878 0.619904 0.974518 0.181976 0.650970 0.974609 0.183105 0.680084 0.974670 0.184204 0.707428 0.974731 0.185333 0.733307 0.974762 0.186371 0.757965 0.974854 0.187439 0.781555 0.974915 0.188507 0.804352 0.974976 0.189545 0.826447 0.975037 0.190552 0.848145 0.975067 0.191528 0.869629 0.975128 0.192474 0.891174 0.975189 0.193420 0.913055 0.975250 0.194336 0.935791 0.975281 0.195190 0.959961 0.975311 0.196136 0.075531 1.000000 0.160217 0.093506 1.000000 0.161499 0.113159 1.000000 0.162750 0.134827 1.000000 0.164032 0.158752 1.000000 0.165314 0.185272 1.000000 0.166565 0.214325 1.000000 0.167816 0.245850 1.000000 0.169067 0.279694 1.000000 0.170319 0.315582 1.000000 0.171570 0.353241 1.000000 0.172729 0.392517 1.000000 0.173950 0.432953 1.000000 0.175110 0.474121 1.000000 0.176331 0.514465 1.000000 0.177521 0.552429 1.000000 0.178680 0.588013 1.000000 0.179779 0.621216 1.000000 0.180908 0.652130 1.000000 0.181946 0.681030 1.000000 0.183075 0.708252 1.000000 0.184174 0.734039 1.000000 0.185181 0.758545 1.000000 0.186218 0.782043 1.000000 0.187256 0.804749 1.000000 0.188232 0.826813 1.000000 0.189178 0.848450 1.000000 0.190186 0.869843 1.000000 0.191101 0.891357 1.000000 0.191986 0.913147 1.000000 0.192841 0.935822 1.000000 0.193695 0.959961 1.000000 0.194550 0.032043 0.001770 0.259491 0.047516 0.002319 0.259979 0.064148 0.002960 0.260498 0.082275 0.003601 0.261078 0.102112 0.004272 0.261627 0.124115 0.004974 0.262238 0.148651 0.005676 0.262878 0.176025 0.006439 0.263519 0.206573 0.007202 0.264160 0.240051 0.007996 0.264862 0.276337 0.008820 0.265503 0.315125 0.009674 0.266266 0.356140 0.010529 0.266968 0.399109 0.011383 0.267731 0.443573 0.012299 0.268524 0.488464 0.013214 0.269318 0.531708 0.014191 0.270111 0.572052 0.015198 0.270935 0.609589 0.016174 0.271729 0.644409 0.017181 0.272614 0.676636 0.018219 0.273499 0.706848 0.019257 0.274384 0.735291 0.020355 0.275269 0.762238 0.021393 0.276245 0.788055 0.022552 0.277161 0.812897 0.023682 0.278076 0.837067 0.024811 0.279022 0.860840 0.025970 0.279999 0.884521 0.027161 0.280975 0.908539 0.028381 0.281982 0.933411 0.029572 0.283020 0.959961 0.030853 0.284058 0.032776 0.017975 0.258545 0.048309 0.018616 0.259125 0.065033 0.019287 0.259644 0.083221 0.019989 0.260284 0.103210 0.020721 0.260864 0.125336 0.021454 0.261505 0.149902 0.022247 0.262207 0.177429 0.023071 0.262878 0.208130 0.023926 0.263519 0.241730 0.024750 0.264252 0.278046 0.025635 0.265015 0.316925 0.026520 0.265747 0.358002 0.027435 0.266510 0.401001 0.028381 0.267303 0.445404 0.029388 0.268097 0.490326 0.030334 0.268951 0.533325 0.031372 0.269745 0.573517 0.032410 0.270630 0.610840 0.033447 0.271484 0.645477 0.034576 0.272400 0.677582 0.035645 0.273254 0.707672 0.036774 0.274200 0.736023 0.037872 0.275146 0.762878 0.039062 0.276062 0.788574 0.040222 0.277008 0.813293 0.041473 0.277924 0.837402 0.042633 0.278961 0.861084 0.043884 0.279968 0.884766 0.045197 0.280975 0.908691 0.046417 0.281921 0.933472 0.047699 0.282990 0.959961 0.048981 0.284027 0.033600 0.035095 0.257599 0.049225 0.035797 0.258209 0.065979 0.036560 0.258789 0.084290 0.037354 0.259430 0.104309 0.038147 0.260071 0.126556 0.038971 0.260742 0.151276 0.039856 0.261444 0.178955 0.040680 0.262146 0.209778 0.041595 0.262909 0.243439 0.042511 0.263641 0.279907 0.043488 0.264374 0.318848 0.044464 0.265167 0.359985 0.045441 0.265961 0.402954 0.046448 0.266846 0.447388 0.047546 0.267639 0.492126 0.048584 0.268494 0.534973 0.049713 0.269318 0.575012 0.050812 0.270264 0.612183 0.051941 0.271149 0.646576 0.053101 0.272034 0.678619 0.054291 0.272919 0.708496 0.055511 0.273865 0.736725 0.056732 0.274872 0.763519 0.057983 0.275757 0.789093 0.059235 0.276764 0.813812 0.060516 0.277740 0.837769 0.061798 0.278717 0.861450 0.063171 0.279724 0.884979 0.064514 0.280762 0.908875 0.065857 0.281769 0.933533 0.067261 0.282837 0.959961 0.068634 0.283813 0.034454 0.053528 0.256561 0.050079 0.054321 0.257202 0.066956 0.055145 0.257843 0.085327 0.056000 0.258545 0.105499 0.056885 0.259216 0.127838 0.057800 0.259918 0.152740 0.058685 0.260651 0.180573 0.059692 0.261353 0.211517 0.060699 0.262146 0.245361 0.061707 0.262878 0.281860 0.062744 0.263702 0.320862 0.063843 0.264557 0.362000 0.064880 0.265350 0.404999 0.066040 0.266174 0.449341 0.067169 0.267029 0.494049 0.068329 0.267944 0.536652 0.069519 0.268799 0.576477 0.070770 0.269745 0.613464 0.071991 0.270630 0.647736 0.073273 0.271515 0.679565 0.074524 0.272461 0.709351 0.075836 0.273376 0.737488 0.077179 0.274445 0.764160 0.078491 0.275391 0.789642 0.079895 0.276306 0.814240 0.081299 0.277374 0.838135 0.082703 0.278320 0.861755 0.084167 0.279358 0.885193 0.085632 0.280396 0.909058 0.087097 0.281403 0.933655 0.088593 0.282440 0.959961 0.090088 0.283508 0.035431 0.073578 0.255432 0.051117 0.074432 0.256104 0.068024 0.075348 0.256744 0.086548 0.076355 0.257477 0.106781 0.077332 0.258179 0.129211 0.078339 0.258911 0.154266 0.079376 0.259674 0.182281 0.080444 0.260468 0.213318 0.081543 0.261230 0.247223 0.082672 0.262054 0.283875 0.083832 0.262848 0.322968 0.085022 0.263672 0.364136 0.086212 0.264526 0.407135 0.087433 0.265411 0.451447 0.088715 0.266266 0.496002 0.089996 0.267181 0.538452 0.091309 0.268066 0.578003 0.092621 0.268982 0.614807 0.093964 0.269928 0.648865 0.095367 0.270844 0.680603 0.096771 0.271790 0.710236 0.098206 0.272797 0.738251 0.099701 0.273743 0.764801 0.101166 0.274719 0.790192 0.102631 0.275726 0.814697 0.104156 0.276733 0.838562 0.105682 0.277740 0.862030 0.107269 0.278717 0.885468 0.108856 0.279755 0.909149 0.110504 0.280823 0.933716 0.112122 0.281860 0.959961 0.113739 0.282898 0.036346 0.095703 0.254120 0.052185 0.096680 0.254822 0.069183 0.097748 0.255524 0.087677 0.098816 0.256195 0.108124 0.099884 0.256989 0.130707 0.101044 0.257751 0.155853 0.102203 0.258514 0.184021 0.103424 0.259338 0.215240 0.104645 0.260162 0.249268 0.105865 0.260925 0.285980 0.107178 0.261749 0.325104 0.108490 0.262634 0.366302 0.109802 0.263519 0.409302 0.111176 0.264374 0.453522 0.112518 0.265289 0.497986 0.114014 0.266174 0.540192 0.115448 0.267120 0.579590 0.116882 0.268005 0.616211 0.118439 0.268951 0.650116 0.119934 0.269958 0.681641 0.121490 0.270844 0.711121 0.123077 0.271881 0.738983 0.124695 0.272827 0.765472 0.126282 0.273834 0.790741 0.127960 0.274780 0.815155 0.129639 0.275787 0.838928 0.131317 0.276825 0.862335 0.133026 0.277863 0.885681 0.134766 0.278809 0.909363 0.136566 0.279877 0.933807 0.138367 0.280945 0.959961 0.140137 0.281982 0.037415 0.120331 0.252563 0.053253 0.121460 0.253265 0.070374 0.122650 0.253998 0.089020 0.123840 0.254761 0.109528 0.125122 0.255493 0.132263 0.126373 0.256317 0.157593 0.127686 0.257080 0.185913 0.129028 0.257904 0.217194 0.130432 0.258728 0.251343 0.131805 0.259583 0.288147 0.133240 0.260437 0.327332 0.134705 0.261322 0.368561 0.136200 0.262146 0.411560 0.137726 0.263031 0.455719 0.139252 0.263916 0.500061 0.140808 0.264862 0.541992 0.142456 0.265839 0.581207 0.144104 0.266754 0.617584 0.145752 0.267700 0.651276 0.147430 0.268677 0.682678 0.149109 0.269623 0.712067 0.150879 0.270569 0.739807 0.152679 0.271545 0.766113 0.154449 0.272552 0.791321 0.156281 0.273560 0.815613 0.158112 0.274506 0.839325 0.160004 0.275513 0.862640 0.161896 0.276550 0.885895 0.163788 0.277557 0.909485 0.165710 0.278595 0.933899 0.167694 0.279663 0.959961 0.169678 0.280670 0.038483 0.148010 0.250641 0.054443 0.149323 0.251373 0.071625 0.150665 0.252197 0.090363 0.152069 0.252960 0.110992 0.153442 0.253693 0.133881 0.154907 0.254547 0.159302 0.156311 0.255310 0.187775 0.157867 0.256165 0.219238 0.159424 0.256958 0.253510 0.160980 0.257843 0.290344 0.162598 0.258698 0.329620 0.164185 0.259552 0.370850 0.165863 0.260437 0.413818 0.167572 0.261322 0.458008 0.169312 0.262268 0.502136 0.171082 0.263214 0.543854 0.172852 0.264130 0.582825 0.174622 0.265076 0.619019 0.176483 0.266052 0.652527 0.178406 0.266968 0.683716 0.180267 0.267944 0.713013 0.182220 0.268890 0.740570 0.184143 0.269867 0.766785 0.186096 0.270874 0.791901 0.188110 0.271820 0.816101 0.190125 0.272827 0.839722 0.192200 0.273834 0.862976 0.194305 0.274872 0.886169 0.196350 0.275879 0.909668 0.198456 0.276886 0.933990 0.200592 0.277924 0.959961 0.202728 0.278900 0.039642 0.179321 0.248413 0.055664 0.180817 0.249146 0.072906 0.182373 0.249939 0.091797 0.183899 0.250671 0.112518 0.185516 0.251495 0.135529 0.187103 0.252319 0.161163 0.188751 0.253143 0.189758 0.190430 0.254028 0.221344 0.192169 0.254852 0.255707 0.193909 0.255676 0.292694 0.195709 0.256561 0.331909 0.197449 0.257416 0.373291 0.199341 0.258331 0.416168 0.201263 0.259247 0.460297 0.203125 0.260132 0.504211 0.205078 0.261078 0.545746 0.207031 0.262024 0.584442 0.209015 0.262939 0.620453 0.210999 0.263916 0.653778 0.213074 0.264832 0.684814 0.215118 0.265808 0.713898 0.217255 0.266785 0.741394 0.219330 0.267761 0.767456 0.221466 0.268738 0.792450 0.223602 0.269745 0.816620 0.225769 0.270691 0.840118 0.227997 0.271729 0.863312 0.230225 0.272766 0.886414 0.232422 0.273712 0.909851 0.234711 0.274750 0.934082 0.237000 0.275757 0.959961 0.239227 0.276764 0.040802 0.214630 0.245728 0.056885 0.216339 0.246460 0.074280 0.218018 0.247253 0.093262 0.219666 0.248047 0.114105 0.221466 0.248840 0.137238 0.223236 0.249695 0.163025 0.225006 0.250519 0.191803 0.226898 0.251343 0.223511 0.228729 0.252228 0.257996 0.230652 0.253052 0.295105 0.232605 0.253998 0.334381 0.234558 0.254883 0.375702 0.236542 0.255737 0.418640 0.238586 0.256744 0.462646 0.240601 0.257599 0.506348 0.242706 0.258514 0.547668 0.244812 0.259460 0.586090 0.246887 0.260376 0.621887 0.249054 0.261383 0.655029 0.251312 0.262329 0.685883 0.253479 0.263245 0.714813 0.255737 0.264252 0.742157 0.257874 0.265198 0.768127 0.260193 0.266205 0.793030 0.262451 0.267212 0.817078 0.264740 0.268188 0.840515 0.267059 0.269165 0.863617 0.269409 0.270172 0.886658 0.271698 0.271210 0.909943 0.274078 0.272186 0.934143 0.276520 0.273193 0.959961 0.278870 0.274170 0.042084 0.253662 0.242554 0.058228 0.255493 0.243378 0.075714 0.257294 0.244202 0.094757 0.259125 0.244934 0.115753 0.261047 0.245789 0.139038 0.262939 0.246674 0.165009 0.264862 0.247528 0.193939 0.266846 0.248352 0.225739 0.268829 0.249237 0.260345 0.270874 0.250122 0.297455 0.272980 0.251007 0.336884 0.275024 0.251862 0.378143 0.277161 0.252838 0.421082 0.279327 0.253723 0.464996 0.281464 0.254639 0.508514 0.283691 0.255615 0.549561 0.285889 0.256561 0.587799 0.288086 0.257507 0.623352 0.290375 0.258423 0.656281 0.292603 0.259399 0.686981 0.294922 0.260376 0.715790 0.297272 0.261353 0.742981 0.299530 0.262329 0.768860 0.301910 0.263336 0.793640 0.304291 0.264313 0.817566 0.306641 0.265289 0.840942 0.309021 0.266327 0.863922 0.311462 0.267273 0.886902 0.313843 0.268250 0.910156 0.316254 0.269318 0.934265 0.318665 0.270264 0.959961 0.321136 0.271271 0.043396 0.296112 0.239075 0.059601 0.298035 0.239899 0.077148 0.299957 0.240723 0.096313 0.301880 0.241516 0.117432 0.303894 0.242401 0.140900 0.305878 0.243195 0.166992 0.307922 0.244110 0.196106 0.310028 0.245026 0.228058 0.312073 0.245850 0.262787 0.314270 0.246735 0.299957 0.316437 0.247711 0.339325 0.318573 0.248596 0.380676 0.320801 0.249542 0.423553 0.323029 0.250458 0.467346 0.325287 0.251373 0.510712 0.327515 0.252350 0.551483 0.329834 0.253296 0.589478 0.332062 0.254242 0.624847 0.334442 0.255219 0.657532 0.336700 0.256195 0.688080 0.339081 0.257141 0.716705 0.341492 0.258118 0.743774 0.343842 0.259155 0.769531 0.346283 0.260101 0.794250 0.348663 0.261139 0.818085 0.351044 0.262115 0.841339 0.353485 0.263092 0.864288 0.355957 0.264130 0.887146 0.358337 0.265106 0.910339 0.360840 0.266083 0.934326 0.363251 0.267090 0.959961 0.365692 0.268097 0.044708 0.341522 0.235260 0.061035 0.343536 0.236115 0.078674 0.345551 0.236938 0.097961 0.347534 0.237793 0.119232 0.349609 0.238708 0.142792 0.351685 0.239532 0.169067 0.353821 0.240387 0.198334 0.355957 0.241333 0.230377 0.358063 0.242218 0.265228 0.360321 0.243103 0.302521 0.362518 0.244080 0.341919 0.364685 0.244965 0.383240 0.366943 0.245911 0.426117 0.369232 0.246918 0.469818 0.371490 0.247833 0.512939 0.373840 0.248810 0.553436 0.376099 0.249725 0.591187 0.378448 0.250702 0.626312 0.380859 0.251678 0.658813 0.383148 0.252655 0.689178 0.385498 0.253632 0.717682 0.387939 0.254700 0.744568 0.390289 0.255646 0.770233 0.392700 0.256683 0.794800 0.395142 0.257629 0.818542 0.397461 0.258606 0.841736 0.399933 0.259674 0.864563 0.402344 0.260681 0.887329 0.404785 0.261658 0.910492 0.407227 0.262695 0.934387 0.409607 0.263672 0.959961 0.412079 0.264648 0.046112 0.389435 0.231232 0.062531 0.391479 0.232056 0.080231 0.393524 0.232941 0.099609 0.395630 0.233795 0.121033 0.397644 0.234711 0.144714 0.399780 0.235565 0.171204 0.401947 0.236511 0.200592 0.404144 0.237396 0.232849 0.406281 0.238312 0.267731 0.408508 0.239258 0.305084 0.410706 0.240234 0.344513 0.412933 0.241119 0.385864 0.415192 0.242096 0.428619 0.417450 0.243042 0.472290 0.419769 0.244019 0.515198 0.422058 0.245026 0.555359 0.424347 0.246002 0.592926 0.426727 0.246979 0.627747 0.429016 0.247955 0.660095 0.431335 0.248932 0.690277 0.433685 0.249969 0.718628 0.436096 0.250977 0.745422 0.438354 0.251953 0.770905 0.440765 0.252960 0.795410 0.443115 0.254028 0.819061 0.445496 0.255005 0.842133 0.447876 0.256042 0.864899 0.450256 0.257019 0.887604 0.452606 0.258057 0.910645 0.455017 0.259064 0.934509 0.457306 0.260071 0.959961 0.459717 0.261078 0.047546 0.439301 0.226929 0.064026 0.441315 0.227814 0.081818 0.443329 0.228699 0.101349 0.445465 0.229584 0.122894 0.447540 0.230560 0.146729 0.449615 0.231415 0.173401 0.451782 0.232361 0.202942 0.453949 0.233337 0.235291 0.456085 0.234253 0.270294 0.458252 0.235229 0.307678 0.460449 0.236176 0.347168 0.462616 0.237152 0.388489 0.464874 0.238129 0.431213 0.467072 0.239075 0.474762 0.469299 0.240112 0.517365 0.471588 0.241089 0.557312 0.473785 0.242126 0.594666 0.476074 0.243103 0.629242 0.478333 0.244171 0.661377 0.480560 0.245148 0.691376 0.482819 0.246155 0.719574 0.485077 0.247192 0.746216 0.487366 0.248199 0.771606 0.489655 0.249237 0.795990 0.491852 0.250275 0.819550 0.494110 0.251282 0.842529 0.496399 0.252350 0.865204 0.498627 0.253326 0.887878 0.500916 0.254395 0.910797 0.503174 0.255432 0.934570 0.505402 0.256409 0.959961 0.507599 0.257446 0.048981 0.490234 0.222565 0.065521 0.492218 0.223511 0.083466 0.494171 0.224426 0.103119 0.496216 0.225342 0.124756 0.498230 0.226349 0.148834 0.500275 0.227234 0.175598 0.502289 0.228210 0.205292 0.504364 0.229187 0.237793 0.506439 0.230194 0.272888 0.508484 0.231201 0.310333 0.510590 0.232208 0.349823 0.512634 0.233154 0.391113 0.514740 0.234161 0.433777 0.516724 0.235138 0.477234 0.518799 0.236237 0.519623 0.520935 0.237244 0.559357 0.523010 0.238281 0.596375 0.525055 0.239349 0.630768 0.527130 0.240387 0.662659 0.529205 0.241394 0.692505 0.531250 0.242493 0.720551 0.533295 0.243530 0.747040 0.535309 0.244598 0.772308 0.537354 0.245636 0.796570 0.539368 0.246674 0.820038 0.541382 0.247742 0.842926 0.543396 0.248810 0.865509 0.545349 0.249878 0.888062 0.547333 0.250946 0.910980 0.549316 0.251984 0.934692 0.551239 0.253052 0.959961 0.553162 0.254120 0.050476 0.540039 0.218445 0.067139 0.541809 0.219391 0.085175 0.543579 0.220367 0.104950 0.545410 0.221344 0.126770 0.547241 0.222351 0.150909 0.548981 0.223358 0.177887 0.550842 0.224396 0.207764 0.552673 0.225433 0.240326 0.554474 0.226410 0.275482 0.556335 0.227417 0.312988 0.558167 0.228455 0.352509 0.559967 0.229523 0.393829 0.561798 0.230591 0.436432 0.563568 0.231628 0.479767 0.565460 0.232697 0.521851 0.567291 0.233856 0.561310 0.569092 0.234894 0.598083 0.570892 0.235931 0.632263 0.572723 0.237061 0.663971 0.574493 0.238098 0.693573 0.576294 0.239197 0.721466 0.578125 0.240295 0.747894 0.579865 0.241394 0.773010 0.581665 0.242493 0.797150 0.583374 0.243561 0.820496 0.585144 0.244659 0.843292 0.586884 0.245728 0.865845 0.588593 0.246826 0.888336 0.590332 0.247955 0.911133 0.592041 0.249023 0.934784 0.593689 0.250061 0.959961 0.595428 0.251190 0.052032 0.586182 0.214783 0.068756 0.587738 0.215851 0.086884 0.589294 0.216858 0.106781 0.590912 0.217896 0.128754 0.592499 0.218903 0.153076 0.594086 0.219971 0.180206 0.595673 0.221039 0.210236 0.597290 0.222076 0.242950 0.598877 0.223145 0.278168 0.600464 0.224213 0.315704 0.602020 0.225311 0.355286 0.603638 0.226410 0.396484 0.605286 0.227509 0.439117 0.606781 0.228638 0.482300 0.608429 0.229736 0.524048 0.610016 0.230804 0.563232 0.611542 0.231934 0.599762 0.613159 0.233063 0.633698 0.614777 0.234192 0.665253 0.616302 0.235291 0.694702 0.617889 0.236420 0.722412 0.619415 0.237549 0.748657 0.620941 0.238647 0.773682 0.622467 0.239807 0.797729 0.623962 0.240875 0.821014 0.625519 0.242035 0.843719 0.627014 0.243103 0.866119 0.628479 0.244202 0.888580 0.629944 0.245361 0.911316 0.631439 0.246490 0.934845 0.632843 0.247559 0.959961 0.634277 0.248688 0.053589 0.628632 0.211700 0.070404 0.630005 0.212769 0.088623 0.631348 0.213837 0.108673 0.632782 0.214905 0.130737 0.634155 0.216003 0.155273 0.635498 0.217041 0.182556 0.636841 0.218201 0.212708 0.638306 0.219269 0.245544 0.639618 0.220428 0.280853 0.641022 0.221527 0.318451 0.642365 0.222656 0.357971 0.643768 0.223785 0.399231 0.645172 0.224915 0.441711 0.646484 0.226044 0.484772 0.647858 0.227203 0.526306 0.649261 0.228333 0.565216 0.650574 0.229462 0.601501 0.651947 0.230591 0.635193 0.653290 0.231750 0.666473 0.654602 0.232880 0.695770 0.655975 0.234039 0.723328 0.657227 0.235199 0.749481 0.658600 0.236328 0.774353 0.659882 0.237518 0.798309 0.661163 0.238647 0.821472 0.662445 0.239777 0.844086 0.663788 0.240936 0.866486 0.665009 0.242035 0.888794 0.666260 0.243164 0.911499 0.667542 0.244293 0.934967 0.668732 0.245392 0.959961 0.669952 0.246521 0.055206 0.667511 0.209106 0.072083 0.668671 0.210236 0.090424 0.669861 0.211334 0.110596 0.671082 0.212433 0.132812 0.672211 0.213562 0.157471 0.673401 0.214630 0.184967 0.674622 0.215820 0.215240 0.675781 0.216919 0.248199 0.676941 0.218140 0.283569 0.678162 0.219330 0.321198 0.679321 0.220428 0.360718 0.680511 0.221588 0.401947 0.681702 0.222748 0.444366 0.682861 0.223907 0.487274 0.684021 0.225098 0.528473 0.685242 0.226257 0.567108 0.686340 0.227417 0.603180 0.687531 0.228577 0.636658 0.688660 0.229797 0.667725 0.689789 0.230927 0.696869 0.690918 0.232086 0.724274 0.692047 0.233276 0.750275 0.693176 0.234467 0.775055 0.694305 0.235626 0.798859 0.695404 0.236694 0.821930 0.696503 0.237946 0.844513 0.697571 0.239105 0.866730 0.698608 0.240234 0.889008 0.699738 0.241333 0.911621 0.700775 0.242523 0.935028 0.701813 0.243591 0.959961 0.702820 0.244720 0.056793 0.703186 0.206909 0.073792 0.704193 0.208069 0.092255 0.705200 0.209198 0.112518 0.706238 0.210358 0.134949 0.707245 0.211548 0.159729 0.708252 0.212708 0.187408 0.709259 0.213837 0.217743 0.710297 0.215057 0.250793 0.711304 0.216217 0.286285 0.712311 0.217407 0.323944 0.713318 0.218567 0.363495 0.714325 0.219788 0.404663 0.715363 0.220978 0.447021 0.716339 0.222168 0.489777 0.717346 0.223358 0.530731 0.718353 0.224548 0.569061 0.719299 0.225769 0.604797 0.720306 0.226929 0.638031 0.721283 0.228088 0.668976 0.722260 0.229309 0.697906 0.723267 0.230499 0.725189 0.724182 0.231628 0.751038 0.725128 0.232819 0.775696 0.726105 0.234070 0.799408 0.727020 0.235168 0.822418 0.727966 0.236328 0.844849 0.728912 0.237488 0.867065 0.729797 0.238617 0.889252 0.730713 0.239807 0.911804 0.731598 0.240875 0.935120 0.732483 0.242065 0.959961 0.733368 0.243164 0.058441 0.736145 0.205139 0.075562 0.737030 0.206329 0.094086 0.737885 0.207489 0.114502 0.738770 0.208710 0.137085 0.739655 0.209869 0.162048 0.740479 0.211090 0.189819 0.741394 0.212311 0.220367 0.742218 0.213470 0.253510 0.743134 0.214661 0.289062 0.744019 0.215912 0.326691 0.744843 0.217072 0.366241 0.745728 0.218323 0.407379 0.746582 0.219513 0.449646 0.747437 0.220734 0.492218 0.748291 0.221924 0.532898 0.749146 0.223145 0.570953 0.749969 0.224365 0.606537 0.750824 0.225586 0.639465 0.751648 0.226776 0.670197 0.752472 0.227905 0.699005 0.753265 0.229156 0.726074 0.754120 0.230316 0.751801 0.754913 0.231476 0.776398 0.755737 0.232697 0.799988 0.756531 0.233856 0.822845 0.757324 0.235016 0.845245 0.758087 0.236267 0.867371 0.758850 0.237335 0.889465 0.759613 0.238464 0.911957 0.760376 0.239624 0.935181 0.761139 0.240692 0.959961 0.761871 0.241852 0.060120 0.766907 0.203674 0.077271 0.767639 0.204926 0.096008 0.768372 0.206116 0.116516 0.769135 0.207306 0.139160 0.769836 0.208557 0.164368 0.770630 0.209747 0.192291 0.771362 0.210968 0.222961 0.772095 0.212189 0.256226 0.772858 0.213440 0.291809 0.773560 0.214661 0.329498 0.774323 0.215851 0.369019 0.775055 0.217072 0.410095 0.775787 0.218292 0.452271 0.776520 0.219543 0.494629 0.777252 0.220764 0.534973 0.777954 0.221985 0.572876 0.778687 0.223236 0.608124 0.779388 0.224426 0.640869 0.780060 0.225616 0.671387 0.780792 0.226807 0.700012 0.781494 0.228027 0.726959 0.782166 0.229218 0.752533 0.782898 0.230377 0.777008 0.783539 0.231598 0.800507 0.784210 0.232758 0.823334 0.784912 0.233917 0.845581 0.785522 0.235077 0.867645 0.786194 0.236206 0.889709 0.786835 0.237335 0.912048 0.787445 0.238525 0.935303 0.788116 0.239594 0.959961 0.788696 0.240692 0.061829 0.795776 0.202515 0.079102 0.796417 0.203705 0.097870 0.797028 0.204987 0.118561 0.797668 0.206207 0.141327 0.798340 0.207397 0.166718 0.798950 0.208679 0.194794 0.799561 0.209930 0.225555 0.800171 0.211090 0.258881 0.800842 0.212402 0.294495 0.801453 0.213623 0.332245 0.802063 0.214844 0.371796 0.802704 0.216125 0.412842 0.803314 0.217346 0.454865 0.803925 0.218567 0.497101 0.804535 0.219818 0.537140 0.805145 0.221008 0.574738 0.805756 0.222229 0.609772 0.806366 0.223480 0.642242 0.806976 0.224670 0.672607 0.807526 0.225891 0.701050 0.808105 0.227081 0.727844 0.808716 0.228271 0.753296 0.809265 0.229492 0.777649 0.809875 0.230652 0.801056 0.810394 0.231812 0.823730 0.810974 0.232941 0.845978 0.811523 0.234070 0.867920 0.812073 0.235260 0.889923 0.812561 0.236389 0.912231 0.813141 0.237427 0.935333 0.813660 0.238556 0.959961 0.814148 0.239685 0.063538 0.823120 0.201538 0.080872 0.823669 0.202728 0.099823 0.824188 0.204010 0.120575 0.824768 0.205292 0.143555 0.825256 0.206512 0.169037 0.825806 0.207764 0.197296 0.826355 0.209015 0.228180 0.826874 0.210297 0.261627 0.827393 0.211548 0.297302 0.827911 0.212769 0.334991 0.828461 0.214020 0.374542 0.828949 0.215271 0.415497 0.829437 0.216553 0.457458 0.829987 0.217743 0.499420 0.830505 0.218994 0.539154 0.830994 0.220215 0.576508 0.831543 0.221436 0.611328 0.832031 0.222656 0.643616 0.832489 0.223877 0.673767 0.833008 0.225067 0.702026 0.833496 0.226318 0.728729 0.833984 0.227448 0.754028 0.834473 0.228638 0.778229 0.834930 0.229828 0.801544 0.835388 0.230988 0.824188 0.835846 0.232117 0.846283 0.836273 0.233276 0.868195 0.836761 0.234375 0.890076 0.837189 0.235474 0.912323 0.837646 0.236542 0.935394 0.838074 0.237640 0.959961 0.838501 0.238708 0.065277 0.849304 0.200684 0.082703 0.849731 0.201996 0.101746 0.850189 0.203217 0.122681 0.850647 0.204529 0.145782 0.851074 0.205780 0.171448 0.851501 0.207062 0.199829 0.851959 0.208313 0.230835 0.852356 0.209564 0.264282 0.852844 0.210846 0.300049 0.853241 0.212128 0.337738 0.853699 0.213318 0.377228 0.854126 0.214569 0.418091 0.854523 0.215820 0.459991 0.854950 0.217041 0.501740 0.855408 0.218262 0.541260 0.855804 0.219513 0.578369 0.856262 0.220764 0.612854 0.856628 0.221985 0.644989 0.857056 0.223145 0.674896 0.857422 0.224365 0.703033 0.857880 0.225555 0.729553 0.858246 0.226715 0.754761 0.858673 0.227875 0.778870 0.859039 0.229065 0.802094 0.859406 0.230194 0.824615 0.859772 0.231354 0.846649 0.860138 0.232452 0.868469 0.860535 0.233551 0.890320 0.860931 0.234650 0.912476 0.861237 0.235687 0.935486 0.861572 0.236755 0.959961 0.861969 0.237823 0.067047 0.874542 0.200012 0.084534 0.874908 0.201263 0.103729 0.875275 0.202576 0.124756 0.875641 0.203827 0.148010 0.876007 0.205139 0.173767 0.876343 0.206390 0.202332 0.876740 0.207703 0.233398 0.877045 0.208923 0.266968 0.877411 0.210205 0.302734 0.877777 0.211456 0.340515 0.878113 0.212708 0.379974 0.878479 0.213989 0.420776 0.878815 0.215210 0.462555 0.879181 0.216461 0.504089 0.879517 0.217682 0.543274 0.879852 0.218903 0.580078 0.880157 0.220123 0.614380 0.880524 0.221313 0.646301 0.880829 0.222534 0.676056 0.881165 0.223724 0.704010 0.881500 0.224884 0.730377 0.881805 0.226044 0.755463 0.882111 0.227264 0.779449 0.882416 0.228363 0.802551 0.882751 0.229462 0.824982 0.883057 0.230591 0.846954 0.883362 0.231659 0.868774 0.883606 0.232758 0.890533 0.883942 0.233856 0.912628 0.884186 0.234863 0.935516 0.884460 0.235931 0.959961 0.884766 0.236877 0.068787 0.899231 0.199432 0.086395 0.899475 0.200684 0.105682 0.899811 0.201996 0.126831 0.900085 0.203278 0.150208 0.900391 0.204559 0.176178 0.900635 0.205841 0.204834 0.900940 0.207123 0.236023 0.901184 0.208405 0.269623 0.901489 0.209625 0.305450 0.901764 0.210907 0.343201 0.902008 0.212158 0.382599 0.902313 0.213440 0.423370 0.902588 0.214661 0.465027 0.902832 0.215881 0.506317 0.903137 0.217102 0.545288 0.903381 0.218323 0.581848 0.903656 0.219543 0.615875 0.903931 0.220764 0.647583 0.904175 0.221893 0.677155 0.904449 0.223114 0.704956 0.904663 0.224213 0.731171 0.904938 0.225403 0.756134 0.905151 0.226562 0.780029 0.905396 0.227631 0.803040 0.905640 0.228790 0.825409 0.905853 0.229858 0.847290 0.906097 0.230896 0.868958 0.906342 0.231995 0.890686 0.906555 0.233063 0.912781 0.906769 0.234039 0.935577 0.906952 0.235046 0.959961 0.907166 0.236023 0.070557 0.923645 0.198883 0.088226 0.923828 0.200134 0.107635 0.924042 0.201385 0.128937 0.924255 0.202698 0.152466 0.924469 0.204010 0.178558 0.924713 0.205261 0.207336 0.924896 0.206573 0.238647 0.925079 0.207825 0.272369 0.925293 0.209106 0.308136 0.925537 0.210327 0.345886 0.925751 0.211609 0.385284 0.925934 0.212830 0.425964 0.926117 0.214050 0.467499 0.926331 0.215302 0.508514 0.926575 0.216553 0.547211 0.926727 0.217712 0.583496 0.926941 0.218903 0.617340 0.927124 0.220123 0.648804 0.927338 0.221222 0.678223 0.927490 0.222443 0.705841 0.927704 0.223572 0.731964 0.927887 0.224670 0.756805 0.928040 0.225800 0.780609 0.928223 0.226898 0.803528 0.928436 0.227997 0.825806 0.928558 0.229065 0.847626 0.928741 0.230103 0.869232 0.928894 0.231140 0.890839 0.929077 0.232117 0.912842 0.929260 0.233124 0.935669 0.929382 0.234100 0.959961 0.929535 0.235016 0.072296 0.948151 0.198273 0.090118 0.948303 0.199554 0.109619 0.948456 0.200836 0.131042 0.948578 0.202148 0.154724 0.948700 0.203400 0.180969 0.948883 0.204712 0.209839 0.948975 0.205963 0.241241 0.949127 0.207275 0.274963 0.949280 0.208496 0.310791 0.949432 0.209747 0.348572 0.949585 0.210999 0.387939 0.949768 0.212219 0.428497 0.949860 0.213409 0.469910 0.950012 0.214661 0.510712 0.950134 0.215851 0.549103 0.950256 0.217041 0.585175 0.950378 0.218231 0.618774 0.950470 0.219421 0.650055 0.950623 0.220581 0.679260 0.950745 0.221710 0.706696 0.950867 0.222809 0.732727 0.951019 0.223907 0.757446 0.951141 0.225006 0.781097 0.951233 0.226074 0.803986 0.951355 0.227142 0.826141 0.951477 0.228180 0.847931 0.951569 0.229156 0.869476 0.951691 0.230164 0.891022 0.951782 0.231110 0.912994 0.951874 0.232086 0.935699 0.951996 0.233002 0.959961 0.952118 0.233887 0.074097 0.973328 0.197601 0.091980 0.973358 0.198883 0.111572 0.973480 0.200165 0.133118 0.973541 0.201447 0.156952 0.973663 0.202728 0.183289 0.973694 0.204041 0.212311 0.973816 0.205261 0.243805 0.973846 0.206512 0.277588 0.973969 0.207764 0.313446 0.974030 0.209045 0.351166 0.974091 0.210236 0.390411 0.974182 0.211517 0.431000 0.974213 0.212708 0.472260 0.974304 0.213898 0.512756 0.974365 0.215057 0.550964 0.974396 0.216278 0.586792 0.974518 0.217407 0.620087 0.974548 0.218506 0.651184 0.974609 0.219696 0.680237 0.974701 0.220795 0.707581 0.974731 0.221924 0.733459 0.974823 0.222961 0.758087 0.974854 0.224030 0.781647 0.974915 0.225067 0.804413 0.975006 0.226044 0.826538 0.975067 0.227112 0.848236 0.975098 0.228058 0.869629 0.975189 0.229065 0.891235 0.975189 0.229950 0.913086 0.975250 0.230865 0.935791 0.975281 0.231750 0.959961 0.975342 0.232605 0.075867 1.000000 0.196716 0.093842 1.000000 0.197968 0.113556 1.000000 0.199280 0.135162 1.000000 0.200562 0.159149 1.000000 0.201843 0.185699 1.000000 0.203125 0.214752 1.000000 0.204346 0.246338 1.000000 0.205627 0.280182 1.000000 0.206879 0.316010 1.000000 0.208069 0.353729 1.000000 0.209290 0.393005 1.000000 0.210541 0.433441 1.000000 0.211670 0.474518 1.000000 0.212860 0.514801 1.000000 0.214050 0.552734 1.000000 0.215210 0.588318 1.000000 0.216370 0.621460 1.000000 0.217468 0.652313 1.000000 0.218567 0.681213 1.000000 0.219635 0.708374 1.000000 0.220734 0.734161 1.000000 0.221802 0.758667 1.000000 0.222809 0.782135 1.000000 0.223816 0.804810 1.000000 0.224823 0.826874 1.000000 0.225769 0.848480 1.000000 0.226715 0.869904 1.000000 0.227631 0.891357 1.000000 0.228516 0.913208 1.000000 0.229370 0.935822 1.000000 0.230255 0.959961 1.000000 0.231079 0.032166 0.001984 0.296814 0.047668 0.002563 0.297333 0.064331 0.003204 0.297913 0.082428 0.003845 0.298462 0.102295 0.004517 0.299042 0.124329 0.005219 0.299683 0.148865 0.005951 0.300293 0.176300 0.006714 0.300964 0.206818 0.007477 0.301636 0.240356 0.008301 0.302368 0.276642 0.009125 0.303070 0.315460 0.009949 0.303833 0.356506 0.010834 0.304565 0.399445 0.011749 0.305359 0.443848 0.012665 0.306122 0.488861 0.013580 0.306976 0.532013 0.014557 0.307800 0.572357 0.015533 0.308655 0.609863 0.016541 0.309540 0.644592 0.017548 0.310364 0.676819 0.018585 0.311279 0.707001 0.019684 0.312195 0.735443 0.020752 0.313141 0.762390 0.021820 0.314056 0.788177 0.022949 0.315002 0.812988 0.024078 0.316010 0.837128 0.025238 0.316956 0.860870 0.026428 0.317963 0.884583 0.027618 0.318939 0.908569 0.028809 0.319946 0.933411 0.030029 0.320953 0.959961 0.031311 0.322021 0.032959 0.018188 0.295898 0.048462 0.018860 0.296509 0.065247 0.019562 0.297089 0.083405 0.020264 0.297699 0.103455 0.020996 0.298340 0.125488 0.021759 0.298950 0.150177 0.022552 0.299683 0.177734 0.023346 0.300385 0.208405 0.024170 0.301056 0.242035 0.025055 0.301819 0.278412 0.025940 0.302582 0.317291 0.026825 0.303375 0.358398 0.027802 0.304169 0.401337 0.028748 0.304993 0.445740 0.029694 0.305817 0.490601 0.030701 0.306641 0.533600 0.031738 0.307495 0.573761 0.032776 0.308380 0.611115 0.033875 0.309296 0.645691 0.034943 0.310150 0.677795 0.036041 0.311096 0.707855 0.037170 0.312073 0.736145 0.038300 0.312988 0.762970 0.039459 0.313934 0.788666 0.040680 0.314941 0.813385 0.041870 0.315918 0.837494 0.043121 0.316895 0.861176 0.044342 0.317902 0.884796 0.045593 0.318909 0.908752 0.046906 0.319946 0.933502 0.048187 0.321014 0.959961 0.049530 0.322052 0.033722 0.035370 0.294983 0.049377 0.036102 0.295624 0.066162 0.036865 0.296234 0.084473 0.037659 0.296906 0.104553 0.038452 0.297607 0.126770 0.039246 0.298279 0.151550 0.040131 0.298981 0.179321 0.041016 0.299744 0.210083 0.041931 0.300476 0.243805 0.042877 0.301239 0.280304 0.043823 0.302032 0.319244 0.044800 0.302856 0.360352 0.045837 0.303711 0.403290 0.046844 0.304535 0.447693 0.047913 0.305389 0.492462 0.048981 0.306274 0.535248 0.050079 0.307129 0.575256 0.051208 0.308014 0.612396 0.052368 0.308929 0.646790 0.053528 0.309875 0.678772 0.054718 0.310791 0.708679 0.055969 0.311768 0.736877 0.057159 0.312744 0.763580 0.058411 0.313690 0.789185 0.059692 0.314728 0.813873 0.060974 0.315674 0.837860 0.062317 0.316742 0.861511 0.063629 0.317749 0.885010 0.065002 0.318756 0.908905 0.066376 0.319885 0.933594 0.067749 0.320923 0.959961 0.069153 0.321899 0.034637 0.053802 0.293976 0.050262 0.054596 0.294678 0.067169 0.055420 0.295349 0.085571 0.056335 0.295990 0.105743 0.057220 0.296722 0.128143 0.058105 0.297455 0.153046 0.059052 0.298248 0.180939 0.060059 0.298981 0.211823 0.061066 0.299774 0.245667 0.062073 0.300598 0.282227 0.063141 0.301422 0.321289 0.064209 0.302277 0.362427 0.065308 0.303101 0.405396 0.066406 0.303925 0.449707 0.067627 0.304810 0.494415 0.068787 0.305725 0.536987 0.069977 0.306610 0.576782 0.071167 0.307587 0.613708 0.072449 0.308502 0.647919 0.073700 0.309418 0.679749 0.075012 0.310425 0.709534 0.076355 0.311340 0.737610 0.077637 0.312378 0.764252 0.079041 0.313324 0.789734 0.080353 0.314331 0.814301 0.081787 0.315338 0.838226 0.083252 0.316376 0.861786 0.084656 0.317413 0.885254 0.086121 0.318451 0.909088 0.087646 0.319489 0.933655 0.089142 0.320557 0.959961 0.090668 0.321594 0.035553 0.073883 0.292969 0.051300 0.074799 0.293610 0.068237 0.075745 0.294312 0.086731 0.076691 0.295013 0.107025 0.077728 0.295776 0.129517 0.078705 0.296539 0.154602 0.079773 0.297302 0.182587 0.080872 0.298157 0.213654 0.081970 0.298920 0.247650 0.083099 0.299744 0.284271 0.084259 0.300568 0.323303 0.085419 0.301453 0.364594 0.086670 0.302307 0.407532 0.087891 0.303162 0.451813 0.089203 0.304077 0.496368 0.090485 0.305023 0.538757 0.091766 0.305908 0.578339 0.093109 0.306885 0.615051 0.094543 0.307861 0.649109 0.095886 0.308746 0.680786 0.097321 0.309753 0.710419 0.098755 0.310760 0.738373 0.100189 0.311768 0.764923 0.101715 0.312744 0.790314 0.103180 0.313751 0.814789 0.104736 0.314789 0.838654 0.106323 0.315765 0.862091 0.107880 0.316803 0.885498 0.109497 0.317841 0.909210 0.111084 0.318909 0.933746 0.112701 0.319977 0.959961 0.114410 0.321014 0.036560 0.096039 0.291656 0.052338 0.097076 0.292358 0.069366 0.098083 0.293091 0.087982 0.099213 0.293854 0.108398 0.100342 0.294647 0.130981 0.101471 0.295410 0.156189 0.102631 0.296204 0.184418 0.103882 0.297028 0.215546 0.105103 0.297852 0.249664 0.106323 0.298676 0.286407 0.107666 0.299561 0.325470 0.108948 0.300415 0.366760 0.110321 0.301331 0.409698 0.111694 0.302246 0.454010 0.113068 0.303162 0.498383 0.114532 0.304108 0.540527 0.115967 0.304993 0.579865 0.117462 0.305908 0.616455 0.118988 0.306946 0.650299 0.120483 0.307831 0.681824 0.122070 0.308838 0.711334 0.123657 0.309814 0.739136 0.125275 0.310852 0.765564 0.126923 0.311890 0.790833 0.128571 0.312836 0.815247 0.130249 0.313873 0.839020 0.131989 0.314880 0.862396 0.133636 0.315948 0.885712 0.135406 0.317017 0.909363 0.137207 0.318054 0.933838 0.138977 0.319092 0.959961 0.140808 0.320129 0.037598 0.120728 0.290100 0.053467 0.121918 0.290894 0.070587 0.123077 0.291626 0.089264 0.124298 0.292419 0.109802 0.125580 0.293243 0.132538 0.126862 0.294006 0.157898 0.128204 0.294800 0.186218 0.129547 0.295685 0.217560 0.130890 0.296478 0.251740 0.132324 0.297363 0.288574 0.133728 0.298218 0.327728 0.135223 0.299133 0.369019 0.136780 0.300049 0.411957 0.138275 0.300934 0.456207 0.139801 0.301880 0.500458 0.141449 0.302795 0.542328 0.143005 0.303741 0.581482 0.144684 0.304688 0.617859 0.146393 0.305664 0.651550 0.148041 0.306610 0.682861 0.149780 0.307678 0.712219 0.151489 0.308594 0.739960 0.153290 0.309601 0.766266 0.155121 0.310638 0.791382 0.156921 0.311615 0.815735 0.158783 0.312622 0.839417 0.160706 0.313690 0.862762 0.162567 0.314636 0.885925 0.164520 0.315735 0.909546 0.166473 0.316742 0.933899 0.168427 0.317810 0.959961 0.170410 0.318848 0.038727 0.148499 0.288300 0.054657 0.149841 0.289062 0.071869 0.151154 0.289856 0.090607 0.152557 0.290649 0.111267 0.153961 0.291473 0.134155 0.155426 0.292267 0.159668 0.156921 0.293091 0.188141 0.158417 0.293945 0.219635 0.159943 0.294800 0.253937 0.161591 0.295685 0.290802 0.163177 0.296570 0.330078 0.164825 0.297485 0.371338 0.166504 0.298370 0.414276 0.168182 0.299255 0.458435 0.169952 0.300232 0.502533 0.171722 0.301147 0.544159 0.173492 0.302124 0.583160 0.175354 0.303070 0.619293 0.177216 0.304016 0.652740 0.179047 0.305023 0.683929 0.180969 0.305969 0.713135 0.182892 0.306946 0.740723 0.184845 0.307953 0.766937 0.186859 0.308960 0.792023 0.188873 0.309937 0.816193 0.190887 0.310944 0.839813 0.192993 0.312012 0.863007 0.195007 0.312988 0.886230 0.197144 0.314026 0.909698 0.199219 0.315063 0.933990 0.201385 0.316071 0.959961 0.203583 0.317139 0.039886 0.179932 0.286102 0.055878 0.181396 0.286896 0.073151 0.182892 0.287689 0.092041 0.184509 0.288483 0.112823 0.186096 0.289276 0.135834 0.187683 0.290070 0.161499 0.189423 0.290955 0.190094 0.191040 0.291779 0.221741 0.192780 0.292694 0.256134 0.194580 0.293579 0.293121 0.196350 0.294464 0.332428 0.198151 0.295380 0.373688 0.200043 0.296326 0.416656 0.201904 0.297150 0.460724 0.203827 0.298157 0.504639 0.205811 0.299072 0.546143 0.207733 0.299988 0.584747 0.209747 0.300964 0.620728 0.211700 0.301941 0.654022 0.213806 0.302887 0.684998 0.215912 0.303864 0.714050 0.217987 0.304871 0.741547 0.220093 0.305847 0.767578 0.222260 0.306854 0.792572 0.224426 0.307831 0.816681 0.226593 0.308868 0.840210 0.228821 0.309875 0.863342 0.231049 0.310883 0.886444 0.233276 0.311890 0.909851 0.235535 0.312927 0.934082 0.237793 0.313904 0.959961 0.240112 0.314941 0.041077 0.215240 0.283417 0.057159 0.216919 0.284241 0.074493 0.218628 0.285034 0.093506 0.220337 0.285797 0.114410 0.222046 0.286652 0.137543 0.223877 0.287476 0.163391 0.225708 0.288361 0.192169 0.227539 0.289246 0.223938 0.229431 0.290100 0.258453 0.231384 0.290985 0.295502 0.233307 0.291870 0.334839 0.235260 0.292816 0.376190 0.237305 0.293732 0.419067 0.239288 0.294617 0.463104 0.241394 0.295624 0.506744 0.243439 0.296539 0.547974 0.245544 0.297485 0.586456 0.247742 0.298492 0.622131 0.249847 0.299438 0.655212 0.252075 0.300385 0.686066 0.254303 0.301392 0.714996 0.256470 0.302338 0.742310 0.258759 0.303375 0.768311 0.261047 0.304352 0.793152 0.263306 0.305298 0.817169 0.265625 0.306366 0.840607 0.267975 0.307343 0.863678 0.270233 0.308350 0.886688 0.272614 0.309357 0.910004 0.274902 0.310394 0.934174 0.277344 0.311432 0.959961 0.279755 0.312378 0.042358 0.254333 0.280365 0.058502 0.256165 0.281158 0.075958 0.257965 0.281952 0.095062 0.259827 0.282806 0.116058 0.261719 0.283661 0.139374 0.263641 0.284515 0.165344 0.265625 0.285370 0.194275 0.267578 0.286255 0.226166 0.269562 0.287170 0.260803 0.271637 0.288055 0.297943 0.273682 0.288971 0.337311 0.275787 0.289856 0.378632 0.277954 0.290833 0.421509 0.280090 0.291779 0.465454 0.282257 0.292694 0.508911 0.284454 0.293610 0.549866 0.286652 0.294617 0.588135 0.288971 0.295563 0.623627 0.291168 0.296539 0.656525 0.293488 0.297485 0.687195 0.295807 0.298523 0.715942 0.298065 0.299469 0.743134 0.300446 0.300476 0.768982 0.302826 0.301483 0.793732 0.305145 0.302490 0.817657 0.307556 0.303497 0.841003 0.309875 0.304474 0.863983 0.312286 0.305481 0.886932 0.314758 0.306488 0.910187 0.317139 0.307465 0.934265 0.319550 0.308533 0.959961 0.322052 0.309540 0.043610 0.296844 0.276917 0.059845 0.298706 0.277679 0.077423 0.300629 0.278534 0.096649 0.302673 0.279419 0.117767 0.304626 0.280273 0.141205 0.306641 0.281158 0.167358 0.308716 0.282043 0.196472 0.310791 0.282898 0.228485 0.312927 0.283844 0.263214 0.315063 0.284729 0.300385 0.317200 0.285675 0.339874 0.319397 0.286621 0.381165 0.321564 0.287537 0.424011 0.323822 0.288483 0.467896 0.326080 0.289429 0.511078 0.328369 0.290405 0.551880 0.330658 0.291382 0.589844 0.332977 0.292358 0.625122 0.335266 0.293304 0.657806 0.337616 0.294312 0.688263 0.339996 0.295319 0.716888 0.342346 0.296326 0.743927 0.344757 0.297302 0.769653 0.347168 0.298309 0.794312 0.349518 0.299255 0.818146 0.351990 0.300293 0.841400 0.354370 0.301300 0.864349 0.356812 0.302307 0.887146 0.359253 0.303345 0.910370 0.361694 0.304321 0.934326 0.364136 0.305328 0.959961 0.366577 0.306366 0.045013 0.342316 0.273102 0.061279 0.344208 0.273956 0.078949 0.346283 0.274780 0.098297 0.348328 0.275726 0.119568 0.350342 0.276581 0.143127 0.352478 0.277496 0.169434 0.354614 0.278442 0.198700 0.356720 0.279297 0.230865 0.358917 0.280212 0.265686 0.361145 0.281158 0.302948 0.363312 0.282104 0.342407 0.365540 0.283051 0.383759 0.367798 0.283997 0.426575 0.370117 0.284943 0.470276 0.372375 0.285889 0.513306 0.374695 0.286865 0.553802 0.376953 0.287903 0.591553 0.379333 0.288879 0.626556 0.381653 0.289825 0.659027 0.384064 0.290833 0.689392 0.386444 0.291840 0.717834 0.388794 0.292816 0.744720 0.391174 0.293823 0.770386 0.393585 0.294861 0.794952 0.396027 0.295898 0.818665 0.398407 0.296875 0.841797 0.400818 0.297852 0.864624 0.403290 0.298889 0.887421 0.405670 0.299896 0.910522 0.408081 0.300934 0.934448 0.410522 0.301971 0.959961 0.412964 0.302917 0.046387 0.390228 0.269073 0.062775 0.392212 0.269958 0.080505 0.394318 0.270844 0.099945 0.396362 0.271729 0.121338 0.398468 0.272644 0.145111 0.400574 0.273560 0.171600 0.402771 0.274506 0.200989 0.404938 0.275452 0.233276 0.407104 0.276337 0.268158 0.409302 0.277283 0.305481 0.411499 0.278290 0.345001 0.413757 0.279236 0.386261 0.416016 0.280182 0.429077 0.418274 0.281189 0.472778 0.420593 0.282166 0.515533 0.422882 0.283142 0.555756 0.425201 0.284088 0.593292 0.427551 0.285126 0.628052 0.429840 0.286194 0.660339 0.432190 0.287140 0.690460 0.434601 0.288177 0.718842 0.436859 0.289185 0.745605 0.439270 0.290222 0.771057 0.441620 0.291168 0.795532 0.443970 0.292206 0.819122 0.446381 0.293274 0.842194 0.448730 0.294250 0.864960 0.451111 0.295319 0.887695 0.453491 0.296326 0.910675 0.455811 0.297302 0.934509 0.458221 0.298370 0.959961 0.460571 0.299377 0.047821 0.440033 0.264862 0.064270 0.442078 0.265778 0.082123 0.444122 0.266693 0.101685 0.446228 0.267578 0.123230 0.448273 0.268524 0.147125 0.450409 0.269470 0.173767 0.452606 0.270416 0.203369 0.454681 0.271393 0.235748 0.456909 0.272278 0.270721 0.459076 0.273285 0.308136 0.461243 0.274292 0.347687 0.463440 0.275269 0.388977 0.465668 0.276215 0.431732 0.467926 0.277283 0.475250 0.470154 0.278259 0.517761 0.472351 0.279297 0.557709 0.474640 0.280304 0.594971 0.476898 0.281311 0.629547 0.479126 0.282318 0.661652 0.481415 0.283325 0.691559 0.483643 0.284363 0.719727 0.485931 0.285431 0.746399 0.488190 0.286469 0.771729 0.490417 0.287476 0.796082 0.492767 0.288513 0.819611 0.494965 0.289551 0.842590 0.497223 0.290558 0.865234 0.499512 0.291595 0.887878 0.501770 0.292664 0.910858 0.503967 0.293671 0.934601 0.506195 0.294708 0.959961 0.508362 0.295685 0.049286 0.490997 0.260590 0.065796 0.492950 0.261475 0.083771 0.494934 0.262451 0.103455 0.496979 0.263397 0.125122 0.498993 0.264343 0.149231 0.501038 0.265350 0.175995 0.503021 0.266266 0.205780 0.505096 0.267273 0.238251 0.507202 0.268280 0.273346 0.509247 0.269287 0.310791 0.511322 0.270264 0.350311 0.513428 0.271301 0.391632 0.515411 0.272308 0.434296 0.517487 0.273376 0.477722 0.519653 0.274414 0.520020 0.521698 0.275421 0.559692 0.523773 0.276489 0.596680 0.525848 0.277496 0.631012 0.527832 0.278625 0.662903 0.529999 0.279663 0.692657 0.531952 0.280701 0.720703 0.533997 0.281769 0.747223 0.536041 0.282867 0.772461 0.538025 0.283875 0.796661 0.540131 0.284943 0.820129 0.542145 0.286041 0.843018 0.544098 0.287079 0.865601 0.546082 0.288177 0.888153 0.548065 0.289246 0.910980 0.549988 0.290253 0.934692 0.551941 0.291321 0.959961 0.553802 0.292419 0.050781 0.540710 0.256470 0.067413 0.542450 0.257416 0.085480 0.544281 0.258453 0.105255 0.546082 0.259430 0.127075 0.547882 0.260376 0.151306 0.549683 0.261475 0.178345 0.551544 0.262543 0.208191 0.553314 0.263519 0.240845 0.555176 0.264557 0.275970 0.557007 0.265594 0.313477 0.558807 0.266663 0.353058 0.560699 0.267731 0.394287 0.562439 0.268768 0.436981 0.564270 0.269836 0.480255 0.566162 0.270966 0.522278 0.567902 0.272003 0.561646 0.569733 0.273132 0.598389 0.571594 0.274200 0.632507 0.573395 0.275299 0.664154 0.575195 0.276428 0.693817 0.576935 0.277527 0.721649 0.578766 0.278595 0.748016 0.580536 0.279694 0.773102 0.582275 0.280792 0.797241 0.584076 0.281891 0.820587 0.585815 0.282990 0.843384 0.587524 0.284027 0.865906 0.589264 0.285156 0.888367 0.590973 0.286255 0.911194 0.592651 0.287323 0.934784 0.594360 0.288391 0.959961 0.595947 0.289459 0.052307 0.586761 0.252930 0.069031 0.588287 0.253845 0.087189 0.589935 0.254883 0.107147 0.591492 0.256012 0.129089 0.593079 0.257050 0.153473 0.594696 0.258118 0.180603 0.596252 0.259125 0.210663 0.597870 0.260254 0.243408 0.599457 0.261383 0.278625 0.601044 0.262451 0.316193 0.602661 0.263550 0.355774 0.604248 0.264648 0.396942 0.605835 0.265747 0.439575 0.607422 0.266846 0.482727 0.609039 0.267975 0.524475 0.610596 0.269104 0.563599 0.612152 0.270203 0.600159 0.613770 0.271362 0.633972 0.615265 0.272430 0.665466 0.616852 0.273590 0.694855 0.618378 0.274689 0.722565 0.619965 0.275787 0.748840 0.621521 0.277008 0.773804 0.622986 0.278137 0.797821 0.624542 0.279205 0.821075 0.626038 0.280365 0.843811 0.627533 0.281433 0.866211 0.628998 0.282532 0.888611 0.630493 0.283661 0.911346 0.631927 0.284760 0.934845 0.633392 0.285858 0.959961 0.634766 0.286926 0.053894 0.629181 0.249786 0.070679 0.630493 0.250885 0.088959 0.631897 0.251984 0.109009 0.633270 0.253113 0.131134 0.634613 0.254120 0.155670 0.636047 0.255280 0.182983 0.637390 0.256317 0.213165 0.638794 0.257477 0.246033 0.640167 0.258636 0.281342 0.641510 0.259735 0.318939 0.642883 0.260895 0.358551 0.644318 0.262024 0.399719 0.645660 0.263184 0.442230 0.647003 0.264343 0.485229 0.648376 0.265503 0.526642 0.649750 0.266602 0.565552 0.651123 0.267761 0.601776 0.652435 0.268860 0.635437 0.653778 0.270050 0.666748 0.655151 0.271210 0.695953 0.656433 0.272339 0.723511 0.657745 0.273529 0.749603 0.659119 0.274658 0.774506 0.660370 0.275787 0.798431 0.661682 0.276947 0.821564 0.662933 0.278137 0.844147 0.664185 0.279236 0.866516 0.665497 0.280396 0.888855 0.666748 0.281433 0.911530 0.667938 0.282623 0.934967 0.669189 0.283752 0.959961 0.670380 0.284821 0.055481 0.667938 0.247284 0.072357 0.669067 0.248352 0.090759 0.670319 0.249481 0.110901 0.671478 0.250580 0.133179 0.672668 0.251709 0.157898 0.673828 0.252899 0.185425 0.675018 0.253998 0.215668 0.676178 0.255188 0.248657 0.677399 0.256378 0.284088 0.678589 0.257507 0.321716 0.679749 0.258728 0.361298 0.680939 0.259888 0.402405 0.682129 0.261017 0.444885 0.683289 0.262207 0.487701 0.684448 0.263397 0.528839 0.685577 0.264557 0.567474 0.686768 0.265747 0.603485 0.687897 0.266907 0.636902 0.689087 0.268097 0.667938 0.690216 0.269257 0.697021 0.691345 0.270416 0.724457 0.692444 0.271606 0.750366 0.693573 0.272797 0.775177 0.694672 0.273895 0.798950 0.695770 0.275085 0.822052 0.696899 0.276276 0.844574 0.697968 0.277374 0.866791 0.699036 0.278564 0.889038 0.700073 0.279633 0.911682 0.701141 0.280792 0.935028 0.702179 0.281952 0.959961 0.703217 0.283020 0.057129 0.703552 0.245148 0.074097 0.704559 0.246246 0.092590 0.705597 0.247406 0.112854 0.706573 0.248596 0.135284 0.707611 0.249756 0.160187 0.708618 0.250946 0.187805 0.709625 0.252106 0.218262 0.710632 0.253326 0.251343 0.711670 0.254517 0.286774 0.712677 0.255646 0.324463 0.713684 0.256927 0.364014 0.714691 0.258118 0.405151 0.715698 0.259277 0.447540 0.716736 0.260498 0.490204 0.717712 0.261658 0.531067 0.718719 0.262878 0.569397 0.719696 0.264069 0.605103 0.720642 0.265289 0.638336 0.721619 0.266449 0.669189 0.722595 0.267700 0.698090 0.723572 0.268799 0.725372 0.724548 0.269989 0.751190 0.725494 0.271179 0.775848 0.726440 0.272339 0.799500 0.727356 0.273529 0.822479 0.728302 0.274658 0.844910 0.729218 0.275848 0.867126 0.730164 0.277008 0.889313 0.731018 0.278107 0.911835 0.731903 0.279266 0.935120 0.732819 0.280365 0.959961 0.733643 0.281494 0.058777 0.736450 0.243347 0.075867 0.737335 0.244568 0.094452 0.738190 0.245758 0.114868 0.739075 0.246918 0.137390 0.739960 0.248138 0.162476 0.740814 0.249359 0.190247 0.741699 0.250519 0.220856 0.742584 0.251770 0.253998 0.743439 0.253021 0.289520 0.744293 0.254181 0.327240 0.745148 0.255432 0.366760 0.746033 0.256592 0.407867 0.746887 0.257843 0.450165 0.747742 0.259064 0.492676 0.748566 0.260254 0.533234 0.749420 0.261475 0.571320 0.750305 0.262726 0.606812 0.751099 0.263916 0.639771 0.751984 0.265137 0.670441 0.752777 0.266327 0.699158 0.753601 0.267517 0.726257 0.754425 0.268707 0.751953 0.755249 0.269897 0.776489 0.756012 0.271027 0.800079 0.756836 0.272217 0.822906 0.757599 0.273376 0.845306 0.758362 0.274536 0.867401 0.759155 0.275665 0.889526 0.759888 0.276825 0.911987 0.760651 0.277893 0.935181 0.761414 0.279022 0.959961 0.762146 0.280090 0.060394 0.767181 0.241913 0.077606 0.767883 0.243164 0.096344 0.768677 0.244385 0.116852 0.769409 0.245605 0.139587 0.770172 0.246826 0.164825 0.770905 0.248047 0.192749 0.771606 0.249268 0.223480 0.772400 0.250519 0.256714 0.773102 0.251770 0.292297 0.773834 0.252960 0.329987 0.774628 0.254181 0.369537 0.775299 0.255432 0.410583 0.776031 0.256653 0.452789 0.776825 0.257904 0.495056 0.777496 0.259094 0.535370 0.778198 0.260345 0.573212 0.778961 0.261597 0.608398 0.779633 0.262756 0.641144 0.780334 0.263977 0.671631 0.781067 0.265167 0.700195 0.781708 0.266388 0.727142 0.782471 0.267578 0.752686 0.783112 0.268738 0.777100 0.783783 0.269928 0.800629 0.784454 0.271057 0.823425 0.785156 0.272247 0.845673 0.785797 0.273407 0.867706 0.786407 0.274536 0.889771 0.787079 0.275665 0.912079 0.787689 0.276794 0.935303 0.788330 0.277924 0.959961 0.788910 0.278931 0.062134 0.796021 0.240784 0.079407 0.796661 0.242004 0.098267 0.797272 0.243286 0.118896 0.797882 0.244476 0.141724 0.798553 0.245697 0.167145 0.799194 0.247009 0.195221 0.799805 0.248230 0.226044 0.800446 0.249481 0.259369 0.801056 0.250702 0.295044 0.801697 0.251984 0.332764 0.802338 0.253235 0.372284 0.802917 0.254486 0.413300 0.803528 0.255676 0.455414 0.804138 0.256989 0.497437 0.804779 0.258118 0.537476 0.805359 0.259338 0.575073 0.805969 0.260620 0.610046 0.806549 0.261780 0.642517 0.807190 0.263062 0.672791 0.807739 0.264252 0.701233 0.808350 0.265472 0.727997 0.808929 0.266663 0.753448 0.809479 0.267792 0.777740 0.810059 0.268982 0.801147 0.810577 0.270142 0.823822 0.811157 0.271271 0.846039 0.811707 0.272430 0.867981 0.812256 0.273560 0.889954 0.812775 0.274689 0.912231 0.813324 0.275757 0.935364 0.813843 0.276855 0.959961 0.814331 0.277924 0.063843 0.823334 0.239807 0.081238 0.823853 0.241058 0.100159 0.824371 0.242340 0.120972 0.824951 0.243591 0.143951 0.825470 0.244873 0.169464 0.825989 0.246124 0.197754 0.826538 0.247345 0.228699 0.827057 0.248596 0.262085 0.827576 0.249847 0.297791 0.828125 0.251160 0.335510 0.828644 0.252350 0.375000 0.829132 0.253632 0.415955 0.829651 0.254852 0.457916 0.830200 0.256134 0.499817 0.830658 0.257355 0.539612 0.831177 0.258606 0.576904 0.831726 0.259827 0.611572 0.832184 0.261017 0.643890 0.832672 0.262268 0.673981 0.833160 0.263397 0.702209 0.833679 0.264618 0.728882 0.834167 0.265808 0.754181 0.834595 0.266998 0.778320 0.835114 0.268158 0.801666 0.835571 0.269257 0.824249 0.836029 0.270386 0.846375 0.836426 0.271515 0.868286 0.836914 0.272675 0.890106 0.837341 0.273743 0.912354 0.837799 0.274811 0.935394 0.838196 0.275909 0.959961 0.838654 0.276978 0.065582 0.849457 0.239044 0.083069 0.849884 0.240326 0.102081 0.850342 0.241577 0.123077 0.850769 0.242828 0.146179 0.851227 0.244080 0.171875 0.851654 0.245361 0.200226 0.852112 0.246613 0.231293 0.852539 0.247955 0.264740 0.852997 0.249176 0.300568 0.853424 0.250427 0.338348 0.853851 0.251709 0.377747 0.854279 0.252930 0.418671 0.854675 0.254211 0.460510 0.855133 0.255463 0.502228 0.855530 0.256683 0.541656 0.855957 0.257904 0.578674 0.856384 0.259094 0.613129 0.856781 0.260345 0.645203 0.857178 0.261536 0.675140 0.857635 0.262726 0.703217 0.858002 0.263885 0.729706 0.858398 0.265106 0.754883 0.858795 0.266205 0.778992 0.859161 0.267365 0.802185 0.859528 0.268524 0.824677 0.859924 0.269623 0.846741 0.860291 0.270782 0.868500 0.860657 0.271820 0.890350 0.861023 0.272858 0.912537 0.861389 0.273956 0.935486 0.861694 0.275024 0.959961 0.862061 0.276031 0.067322 0.874695 0.238373 0.084930 0.875031 0.239685 0.104126 0.875366 0.240936 0.125122 0.875763 0.242218 0.148407 0.876129 0.243500 0.174225 0.876495 0.244781 0.202759 0.876831 0.246033 0.233917 0.877228 0.247314 0.267426 0.877563 0.248535 0.303284 0.877899 0.249817 0.341064 0.878235 0.251099 0.380463 0.878601 0.252319 0.421265 0.878937 0.253601 0.463043 0.879272 0.254883 0.504486 0.879639 0.256042 0.543701 0.879974 0.257263 0.580414 0.880310 0.258453 0.614685 0.880615 0.259644 0.646515 0.880951 0.260895 0.676270 0.881287 0.262024 0.704163 0.881592 0.263214 0.730560 0.881927 0.264404 0.755585 0.882202 0.265472 0.779572 0.882538 0.266663 0.802673 0.882843 0.267822 0.825073 0.883179 0.268860 0.847015 0.883453 0.269958 0.868805 0.883728 0.270996 0.890564 0.884033 0.272125 0.912628 0.884308 0.273132 0.935547 0.884613 0.274109 0.959961 0.884857 0.275146 0.069122 0.899323 0.237762 0.086761 0.899597 0.239044 0.106049 0.899902 0.240387 0.127228 0.900177 0.241669 0.150635 0.900482 0.242950 0.176636 0.900726 0.244232 0.205261 0.901031 0.245453 0.236542 0.901306 0.246765 0.270142 0.901581 0.248016 0.306000 0.901855 0.249298 0.343719 0.902130 0.250519 0.383087 0.902374 0.251740 0.423859 0.902679 0.253021 0.465515 0.902954 0.254242 0.506683 0.903229 0.255463 0.545624 0.903473 0.256653 0.582153 0.903748 0.257904 0.616150 0.903992 0.259094 0.647797 0.904236 0.260223 0.677338 0.904510 0.261383 0.705078 0.904755 0.262543 0.731323 0.905029 0.263702 0.756256 0.905243 0.264832 0.780121 0.905487 0.265961 0.803162 0.905731 0.267029 0.825500 0.905914 0.268066 0.847382 0.906189 0.269165 0.869019 0.906403 0.270172 0.890778 0.906647 0.271210 0.912781 0.906860 0.272247 0.935577 0.907074 0.273193 0.959961 0.907257 0.274231 0.070862 0.923676 0.237213 0.088623 0.923889 0.238556 0.107971 0.924133 0.239807 0.129303 0.924316 0.241089 0.152893 0.924561 0.242401 0.178986 0.924774 0.243652 0.207825 0.924988 0.244934 0.239136 0.925201 0.246216 0.272797 0.925385 0.247467 0.308655 0.925598 0.248718 0.346436 0.925842 0.250000 0.385742 0.926025 0.251221 0.426422 0.926178 0.252411 0.467896 0.926392 0.253632 0.508911 0.926636 0.254852 0.547577 0.926819 0.256073 0.583801 0.927002 0.257233 0.617615 0.927185 0.258423 0.649048 0.927399 0.259583 0.678375 0.927551 0.260742 0.706024 0.927765 0.261841 0.732117 0.927948 0.263031 0.756927 0.928101 0.264099 0.780701 0.928253 0.265167 0.803589 0.928467 0.266235 0.825836 0.928619 0.267303 0.847687 0.928802 0.268341 0.869293 0.928955 0.269318 0.890900 0.929108 0.270355 0.912872 0.929291 0.271301 0.935669 0.929443 0.272217 0.959961 0.929565 0.273193 0.072662 0.948181 0.236664 0.090454 0.948364 0.237976 0.109955 0.948456 0.239166 0.131378 0.948639 0.240509 0.155151 0.948761 0.241791 0.181396 0.948914 0.243011 0.210327 0.949036 0.244354 0.241730 0.949188 0.245605 0.275482 0.949371 0.246857 0.311340 0.949524 0.248108 0.349091 0.949646 0.249359 0.388336 0.949768 0.250580 0.428986 0.949890 0.251831 0.470276 0.950043 0.253021 0.511078 0.950165 0.254150 0.549469 0.950287 0.255402 0.585449 0.950409 0.256561 0.619019 0.950562 0.257690 0.650238 0.950684 0.258881 0.679413 0.950806 0.259979 0.706879 0.950928 0.261078 0.732849 0.951019 0.262177 0.757599 0.951172 0.263275 0.781219 0.951294 0.264313 0.804047 0.951385 0.265320 0.826233 0.951538 0.266388 0.847992 0.951660 0.267426 0.869507 0.951752 0.268341 0.891083 0.951843 0.269318 0.913025 0.951965 0.270233 0.935699 0.952026 0.271088 0.959961 0.952148 0.272095 0.074402 0.973358 0.235901 0.092346 0.973419 0.237274 0.111938 0.973480 0.238525 0.133514 0.973572 0.239807 0.157379 0.973663 0.241119 0.183777 0.973724 0.242371 0.212799 0.973846 0.243652 0.244293 0.973877 0.244904 0.278046 0.973969 0.246124 0.313904 0.974091 0.247406 0.351593 0.974121 0.248566 0.390930 0.974182 0.249847 0.431396 0.974243 0.251038 0.472656 0.974335 0.252197 0.513153 0.974396 0.253387 0.551300 0.974426 0.254608 0.587036 0.974518 0.255707 0.620361 0.974579 0.256836 0.651459 0.974609 0.257996 0.680420 0.974731 0.259064 0.707733 0.974762 0.260132 0.733551 0.974854 0.261261 0.758179 0.974884 0.262268 0.781738 0.974976 0.263336 0.804474 0.975006 0.264252 0.826569 0.975067 0.265320 0.848267 0.975098 0.266266 0.869720 0.975189 0.267212 0.891266 0.975220 0.268066 0.913116 0.975281 0.269012 0.935822 0.975311 0.269867 0.959961 0.975403 0.270752 0.076172 1.000000 0.235046 0.094177 1.000000 0.236359 0.113892 1.000000 0.237640 0.135590 1.000000 0.238922 0.159576 1.000000 0.240234 0.186127 1.000000 0.241486 0.215271 1.000000 0.242737 0.246826 1.000000 0.243988 0.280609 1.000000 0.245178 0.316528 1.000000 0.246460 0.354156 1.000000 0.247620 0.393433 1.000000 0.248840 0.433899 1.000000 0.250031 0.474945 1.000000 0.251221 0.515228 1.000000 0.252411 0.553070 1.000000 0.253510 0.588562 1.000000 0.254608 0.621704 1.000000 0.255737 0.652557 1.000000 0.256866 0.681396 1.000000 0.257904 0.708557 1.000000 0.258972 0.734283 1.000000 0.260010 0.758759 1.000000 0.261017 0.782227 1.000000 0.262024 0.804901 1.000000 0.262939 0.826904 1.000000 0.263977 0.848541 1.000000 0.264832 0.869965 1.000000 0.265778 0.891388 1.000000 0.266663 0.913239 1.000000 0.267517 0.935822 1.000000 0.268341 0.959961 1.000000 0.269165 0.032318 0.002167 0.336578 0.047821 0.002777 0.337128 0.064484 0.003418 0.337677 0.082611 0.004089 0.338318 0.102509 0.004761 0.338898 0.124542 0.005493 0.339569 0.149109 0.006256 0.340179 0.176575 0.006989 0.340881 0.207153 0.007782 0.341583 0.240692 0.008606 0.342285 0.276978 0.009430 0.343018 0.315796 0.010284 0.343750 0.356842 0.011169 0.344513 0.399841 0.012085 0.345367 0.444214 0.013000 0.346191 0.489136 0.013916 0.346924 0.532349 0.014923 0.347809 0.572632 0.015900 0.348663 0.610077 0.016876 0.349548 0.644775 0.017944 0.350433 0.677032 0.018982 0.351379 0.707153 0.020050 0.352295 0.735596 0.021149 0.353210 0.762512 0.022247 0.354156 0.788269 0.023346 0.355103 0.813080 0.024506 0.356110 0.837219 0.025665 0.357086 0.860931 0.026855 0.358093 0.884644 0.028076 0.359131 0.908600 0.029236 0.360107 0.933441 0.030518 0.361145 0.959961 0.031738 0.362152 0.033112 0.018433 0.335754 0.048615 0.019073 0.336334 0.065399 0.019806 0.336914 0.083618 0.020508 0.337616 0.103577 0.021271 0.338196 0.125763 0.022034 0.338837 0.150421 0.022858 0.339600 0.178040 0.023682 0.340302 0.208740 0.024506 0.341034 0.242371 0.025421 0.341766 0.278748 0.026276 0.342560 0.317627 0.027191 0.343323 0.358734 0.028107 0.344177 0.401703 0.029083 0.344940 0.446106 0.030090 0.345856 0.490997 0.031097 0.346680 0.533936 0.032135 0.347565 0.574036 0.033203 0.348450 0.611328 0.034241 0.349365 0.645844 0.035339 0.350281 0.677979 0.036438 0.351166 0.707977 0.037598 0.352142 0.736298 0.038757 0.353088 0.763092 0.039917 0.354034 0.788757 0.041107 0.355011 0.813477 0.042358 0.356049 0.837555 0.043549 0.356995 0.861267 0.044800 0.358063 0.884888 0.046112 0.359100 0.908783 0.047333 0.360107 0.933502 0.048676 0.361176 0.959961 0.050018 0.362213 0.033905 0.035645 0.334839 0.049530 0.036346 0.335480 0.066315 0.037140 0.336121 0.084656 0.037933 0.336792 0.104767 0.038727 0.337463 0.126984 0.039612 0.338165 0.151855 0.040497 0.338928 0.179565 0.041351 0.339661 0.210388 0.042267 0.340424 0.244141 0.043213 0.341217 0.280609 0.044189 0.342041 0.319580 0.045197 0.342834 0.360718 0.046204 0.343658 0.403687 0.047241 0.344574 0.448090 0.048309 0.345398 0.492798 0.049377 0.346252 0.535583 0.050507 0.347198 0.575531 0.051666 0.348083 0.612640 0.052795 0.348999 0.647034 0.053986 0.350006 0.678955 0.055176 0.350891 0.708832 0.056396 0.351868 0.737030 0.057617 0.352875 0.763702 0.058868 0.353851 0.789276 0.060150 0.354828 0.813995 0.061462 0.355835 0.837952 0.062744 0.356873 0.861542 0.064148 0.357880 0.885040 0.065491 0.358948 0.908936 0.066864 0.359985 0.933594 0.068268 0.361023 0.959961 0.069733 0.362061 0.034790 0.054108 0.333923 0.050476 0.054901 0.334534 0.067383 0.055786 0.335266 0.085754 0.056671 0.335968 0.105988 0.057556 0.336700 0.128387 0.058472 0.337433 0.153290 0.059448 0.338196 0.181213 0.060394 0.338989 0.212189 0.061432 0.339783 0.246033 0.062439 0.340546 0.282623 0.063568 0.341400 0.321625 0.064636 0.342255 0.362793 0.065704 0.343109 0.405762 0.066864 0.343964 0.450104 0.068054 0.344849 0.494751 0.069183 0.345764 0.537323 0.070435 0.346649 0.577026 0.071686 0.347656 0.613953 0.072906 0.348572 0.648193 0.074188 0.349548 0.679962 0.075470 0.350525 0.709686 0.076813 0.351501 0.737762 0.078186 0.352448 0.764374 0.079498 0.353485 0.789856 0.080933 0.354462 0.814392 0.082336 0.355530 0.838287 0.083740 0.356537 0.861847 0.085205 0.357544 0.885284 0.086700 0.358612 0.909088 0.088165 0.359650 0.933655 0.089722 0.360718 0.959961 0.091187 0.361786 0.035736 0.074219 0.332825 0.051514 0.075134 0.333496 0.068451 0.076080 0.334229 0.086945 0.077087 0.334961 0.107269 0.078064 0.335724 0.129791 0.079132 0.336517 0.154846 0.080139 0.337280 0.182922 0.081238 0.338074 0.214020 0.082397 0.338898 0.247986 0.083527 0.339783 0.284607 0.084686 0.340607 0.323730 0.085907 0.341461 0.364929 0.087128 0.342346 0.407898 0.088379 0.343262 0.452209 0.089691 0.344147 0.496704 0.090942 0.345123 0.539093 0.092285 0.346008 0.578583 0.093628 0.346985 0.615326 0.094971 0.347931 0.649323 0.096375 0.348907 0.680939 0.097839 0.349884 0.710602 0.099274 0.350861 0.738525 0.100769 0.351837 0.765015 0.102234 0.352844 0.790405 0.103760 0.353851 0.814850 0.105316 0.354919 0.838684 0.106873 0.355896 0.862152 0.108459 0.356934 0.885559 0.110077 0.358063 0.909271 0.111694 0.359070 0.933746 0.113373 0.360107 0.959961 0.115021 0.361145 0.036774 0.096405 0.331573 0.052551 0.097443 0.332275 0.069611 0.098541 0.333008 0.088196 0.099640 0.333862 0.108643 0.100739 0.334595 0.131317 0.101898 0.335388 0.156494 0.103088 0.336182 0.184723 0.104279 0.337006 0.215942 0.105560 0.337891 0.250000 0.106812 0.338715 0.286774 0.108124 0.339569 0.325928 0.109497 0.340485 0.367157 0.110809 0.341339 0.410126 0.112183 0.342285 0.454407 0.113617 0.343231 0.498749 0.115082 0.344147 0.540863 0.116516 0.345062 0.580170 0.118011 0.346069 0.616699 0.119537 0.346985 0.650543 0.121094 0.347992 0.682007 0.122620 0.348938 0.711517 0.124237 0.349976 0.739319 0.125885 0.350952 0.765686 0.127472 0.351990 0.790955 0.129181 0.352966 0.815369 0.130859 0.354034 0.839081 0.132599 0.355042 0.862457 0.134308 0.356079 0.885742 0.136047 0.357147 0.909393 0.137848 0.358185 0.933868 0.139679 0.359253 0.959961 0.141479 0.360229 0.037811 0.121155 0.330048 0.053711 0.122314 0.330811 0.070831 0.123535 0.331573 0.089539 0.124786 0.332367 0.110046 0.126007 0.333221 0.132843 0.127350 0.334015 0.158203 0.128662 0.334808 0.186584 0.130035 0.335663 0.217957 0.131439 0.336548 0.252106 0.132843 0.337402 0.288971 0.134308 0.338287 0.328186 0.135803 0.339172 0.369415 0.137268 0.340088 0.412384 0.138824 0.341034 0.456543 0.140411 0.341919 0.500824 0.141998 0.342896 0.542694 0.143677 0.343842 0.581757 0.145294 0.344818 0.618073 0.146973 0.345734 0.651733 0.148682 0.346771 0.683014 0.150391 0.347748 0.712372 0.152191 0.348694 0.740082 0.153961 0.349731 0.766388 0.155792 0.350739 0.791504 0.157593 0.351776 0.815826 0.159485 0.352783 0.839478 0.161377 0.353790 0.862793 0.163300 0.354828 0.885986 0.165192 0.355865 0.909576 0.167175 0.356873 0.933960 0.169128 0.357941 0.959961 0.171143 0.359009 0.038940 0.148987 0.328278 0.054871 0.150330 0.329010 0.072083 0.151703 0.329803 0.090851 0.153046 0.330627 0.111572 0.154510 0.331421 0.134460 0.155975 0.332275 0.159943 0.157440 0.333099 0.188507 0.158997 0.333954 0.220001 0.160553 0.334869 0.254272 0.162140 0.335724 0.291229 0.163788 0.336639 0.330475 0.165436 0.337585 0.371796 0.167084 0.338440 0.414734 0.168854 0.339386 0.458832 0.170532 0.340271 0.502899 0.172363 0.341248 0.544586 0.174194 0.342224 0.583405 0.175995 0.343170 0.619507 0.177856 0.344116 0.653015 0.179779 0.345093 0.684113 0.181671 0.346069 0.713318 0.183624 0.347076 0.740845 0.185638 0.348083 0.767059 0.187592 0.349091 0.792084 0.189667 0.350098 0.816284 0.191650 0.351074 0.839874 0.193726 0.352081 0.863068 0.195862 0.353119 0.886261 0.197876 0.354126 0.909729 0.200043 0.355194 0.933990 0.202209 0.356201 0.959961 0.204376 0.357208 0.040070 0.180450 0.326050 0.056061 0.181946 0.326843 0.073425 0.183502 0.327637 0.092316 0.185028 0.328491 0.113098 0.186676 0.329315 0.136169 0.188324 0.330139 0.161835 0.189941 0.330994 0.190491 0.191681 0.331818 0.222137 0.193451 0.332764 0.256531 0.195221 0.333588 0.293549 0.196991 0.334564 0.332916 0.198883 0.335449 0.374146 0.200714 0.336304 0.417114 0.202637 0.337280 0.461151 0.204529 0.338196 0.505035 0.206482 0.339172 0.546448 0.208466 0.340149 0.585052 0.210480 0.341034 0.620972 0.212524 0.342010 0.654236 0.214600 0.343079 0.685181 0.216644 0.344025 0.714294 0.218781 0.345001 0.741669 0.220917 0.346008 0.767731 0.223022 0.346924 0.792694 0.225220 0.347961 0.816803 0.227386 0.348938 0.840271 0.229614 0.350006 0.863434 0.231873 0.351013 0.886475 0.234070 0.352020 0.909851 0.236359 0.352997 0.934082 0.238678 0.354034 0.959961 0.240936 0.355042 0.041351 0.215851 0.323364 0.057404 0.217529 0.324219 0.074829 0.219238 0.325012 0.093811 0.220947 0.325836 0.114716 0.222717 0.326691 0.137909 0.224548 0.327545 0.163727 0.226379 0.328461 0.192566 0.228210 0.329315 0.224365 0.230164 0.330170 0.258850 0.232056 0.331085 0.295959 0.234039 0.331970 0.335266 0.235992 0.332916 0.376617 0.238007 0.333832 0.419525 0.240082 0.334747 0.463501 0.242126 0.335693 0.507172 0.244232 0.336639 0.548370 0.246368 0.337616 0.586792 0.248474 0.338531 0.622406 0.250671 0.339539 0.655487 0.252930 0.340576 0.686279 0.255066 0.341492 0.715179 0.257324 0.342468 0.742462 0.259583 0.343445 0.768402 0.261841 0.344482 0.793274 0.264130 0.345490 0.817261 0.266449 0.346497 0.840698 0.268768 0.347443 0.863739 0.271149 0.348480 0.886749 0.273438 0.349487 0.910065 0.275818 0.350464 0.934174 0.278229 0.351501 0.959961 0.280579 0.352509 0.042572 0.254974 0.320343 0.058746 0.256805 0.321167 0.076233 0.258698 0.322021 0.095337 0.260468 0.322815 0.116364 0.262421 0.323700 0.139740 0.264374 0.324585 0.165710 0.266296 0.325470 0.194702 0.268341 0.326355 0.226624 0.270386 0.327209 0.261261 0.272430 0.328186 0.298370 0.274506 0.329041 0.337738 0.276581 0.329987 0.379120 0.278748 0.330872 0.421997 0.280884 0.331879 0.465851 0.283020 0.332764 0.509338 0.285278 0.333771 0.550293 0.287537 0.334717 0.588470 0.289734 0.335693 0.623901 0.292023 0.336639 0.656738 0.294342 0.337616 0.687378 0.296600 0.338654 0.716125 0.298950 0.339630 0.743286 0.301300 0.340546 0.769104 0.303650 0.341583 0.793854 0.306061 0.342560 0.817749 0.308411 0.343536 0.841064 0.310791 0.344574 0.864044 0.313263 0.345581 0.886993 0.315613 0.346558 0.910217 0.318054 0.347565 0.934296 0.320526 0.348633 0.959961 0.322937 0.349548 0.043884 0.297516 0.316895 0.060120 0.299438 0.317780 0.077728 0.301422 0.318634 0.096954 0.303314 0.319489 0.118134 0.305389 0.320312 0.141571 0.307434 0.321228 0.167755 0.309479 0.322113 0.196899 0.311584 0.323029 0.228943 0.313629 0.323883 0.263672 0.315826 0.324860 0.300903 0.317993 0.325775 0.340302 0.320160 0.326691 0.381622 0.322388 0.327637 0.424500 0.324677 0.328613 0.468292 0.326874 0.329590 0.511536 0.329193 0.330566 0.552216 0.331482 0.331482 0.590149 0.333801 0.332428 0.625366 0.336121 0.333435 0.658020 0.338440 0.334442 0.688446 0.340851 0.335388 0.717072 0.343231 0.336395 0.744110 0.345581 0.337402 0.769806 0.348022 0.338409 0.794434 0.350433 0.339417 0.818237 0.352844 0.340393 0.841492 0.355286 0.341400 0.864380 0.357758 0.342377 0.887207 0.360138 0.343384 0.910400 0.362610 0.344391 0.934357 0.365021 0.345367 0.959961 0.367493 0.346405 0.045258 0.342987 0.313171 0.061584 0.344971 0.314026 0.079254 0.347046 0.314880 0.098572 0.349060 0.315765 0.119904 0.351166 0.316620 0.143524 0.353302 0.317535 0.169861 0.355347 0.318481 0.199158 0.357513 0.319366 0.231293 0.359711 0.320251 0.266113 0.361908 0.321198 0.303436 0.364136 0.322205 0.342865 0.366333 0.323120 0.384186 0.368622 0.324127 0.427002 0.370941 0.325073 0.470764 0.373169 0.326019 0.513763 0.375519 0.326996 0.554230 0.377869 0.328003 0.591858 0.380157 0.329010 0.626862 0.382538 0.329956 0.659302 0.384888 0.330963 0.689606 0.387299 0.331940 0.718048 0.389709 0.332947 0.744904 0.392059 0.333954 0.770508 0.394501 0.334930 0.795044 0.396912 0.335968 0.818756 0.399292 0.336945 0.841858 0.401733 0.337921 0.864655 0.404175 0.338959 0.887451 0.406555 0.339966 0.910553 0.409027 0.340942 0.934448 0.411377 0.341949 0.959961 0.413788 0.342926 0.046631 0.390900 0.309143 0.063049 0.392975 0.310059 0.080841 0.395081 0.310913 0.100250 0.397125 0.311829 0.121704 0.399231 0.312744 0.145447 0.401367 0.313629 0.172028 0.403564 0.314545 0.201477 0.405762 0.315491 0.233765 0.407837 0.316437 0.268707 0.410126 0.317444 0.306030 0.412354 0.318359 0.345520 0.414581 0.319336 0.386780 0.416840 0.320312 0.429596 0.419128 0.321289 0.473206 0.421417 0.322296 0.515991 0.423737 0.323273 0.556152 0.426056 0.324280 0.593597 0.428345 0.325256 0.628296 0.430725 0.326263 0.660553 0.433044 0.327240 0.690735 0.435425 0.328278 0.718964 0.437775 0.329315 0.745728 0.440094 0.330292 0.771179 0.442474 0.331268 0.795654 0.444885 0.332336 0.819244 0.447235 0.333344 0.842285 0.449615 0.334290 0.865021 0.452026 0.335358 0.887726 0.454346 0.336334 0.910706 0.456665 0.337341 0.934509 0.459076 0.338318 0.959961 0.461426 0.339355 0.048065 0.440765 0.304932 0.064575 0.442810 0.305847 0.082428 0.444916 0.306732 0.101990 0.446930 0.307678 0.123566 0.449127 0.308624 0.147491 0.451172 0.309540 0.174194 0.453339 0.310547 0.203796 0.455505 0.311493 0.236237 0.457642 0.312439 0.271240 0.459839 0.313446 0.308655 0.462097 0.314423 0.348114 0.464264 0.315399 0.389526 0.466492 0.316376 0.432220 0.468781 0.317383 0.475677 0.470917 0.318390 0.518188 0.473206 0.319397 0.558075 0.475433 0.320435 0.595276 0.477722 0.321442 0.629791 0.479980 0.322418 0.661835 0.482208 0.323456 0.691803 0.484467 0.324463 0.719910 0.486786 0.325470 0.746552 0.488983 0.326538 0.771881 0.491302 0.327545 0.796173 0.493622 0.328552 0.819702 0.495819 0.329620 0.842651 0.498077 0.330658 0.865295 0.500305 0.331604 0.887939 0.502563 0.332672 0.910889 0.504822 0.333710 0.934662 0.506989 0.334686 0.959961 0.509216 0.335693 0.049561 0.491638 0.300659 0.066132 0.493683 0.301605 0.084076 0.495636 0.302551 0.103790 0.497650 0.303497 0.125488 0.499756 0.304474 0.149597 0.501709 0.305420 0.176453 0.503815 0.306427 0.206207 0.505890 0.307434 0.238739 0.507904 0.308380 0.273865 0.510010 0.309357 0.311340 0.512085 0.310425 0.350830 0.514130 0.311462 0.392120 0.516205 0.312469 0.434784 0.518219 0.313477 0.478180 0.520355 0.314484 0.520447 0.522430 0.315582 0.560059 0.524475 0.316589 0.596985 0.526550 0.317627 0.631287 0.528625 0.318695 0.663177 0.530640 0.319733 0.692932 0.532745 0.320801 0.720886 0.534790 0.321869 0.747375 0.536774 0.322845 0.772614 0.538849 0.323944 0.796783 0.540894 0.325043 0.820221 0.542847 0.326050 0.843079 0.544830 0.327118 0.865662 0.546783 0.328186 0.888184 0.548767 0.329224 0.911011 0.550690 0.330261 0.934723 0.552643 0.331299 0.959961 0.554596 0.332397 0.051056 0.541351 0.296539 0.067688 0.543152 0.297546 0.085815 0.544952 0.298584 0.105621 0.546753 0.299561 0.127472 0.548553 0.300537 0.151733 0.550354 0.301575 0.178741 0.552155 0.302612 0.208649 0.554047 0.303619 0.241272 0.555786 0.304688 0.276489 0.557617 0.305756 0.314026 0.559509 0.306824 0.353546 0.561310 0.307831 0.394806 0.563171 0.308929 0.437439 0.564941 0.310028 0.480682 0.566772 0.311066 0.522675 0.568634 0.312134 0.562012 0.570374 0.313202 0.598755 0.572205 0.314301 0.632782 0.574066 0.315430 0.664429 0.575806 0.316498 0.694000 0.577637 0.317535 0.721832 0.579468 0.318665 0.748138 0.581177 0.319733 0.773224 0.582916 0.320831 0.797363 0.584747 0.321899 0.820648 0.586426 0.322937 0.843445 0.588165 0.324127 0.865967 0.589905 0.325134 0.888428 0.591583 0.326202 0.911194 0.593292 0.327332 0.934814 0.594940 0.328369 0.959961 0.596588 0.329437 0.052582 0.587311 0.292969 0.069336 0.588928 0.294037 0.087494 0.590424 0.295074 0.107483 0.592041 0.296143 0.129486 0.593628 0.297241 0.153900 0.595245 0.298248 0.181091 0.596863 0.299316 0.211151 0.598419 0.300415 0.243866 0.600037 0.301514 0.279144 0.601624 0.302551 0.316742 0.603241 0.303711 0.356262 0.604797 0.304810 0.397491 0.606445 0.305878 0.440063 0.607971 0.306976 0.483215 0.609589 0.308136 0.524933 0.611176 0.309204 0.563934 0.612732 0.310303 0.600403 0.614319 0.311432 0.634216 0.615845 0.312531 0.665680 0.617401 0.313660 0.695099 0.618988 0.314758 0.722748 0.620544 0.315918 0.748932 0.622070 0.316925 0.773926 0.623596 0.318115 0.797913 0.625061 0.319244 0.821198 0.626617 0.320343 0.843872 0.628082 0.321472 0.866241 0.629486 0.322540 0.888672 0.631042 0.323639 0.911346 0.632446 0.324707 0.934875 0.633881 0.325836 0.959961 0.635284 0.326904 0.054169 0.629639 0.289948 0.070984 0.631042 0.290985 0.089294 0.632385 0.292114 0.109375 0.633759 0.293213 0.131500 0.635162 0.294312 0.156097 0.636505 0.295441 0.183472 0.637909 0.296509 0.213654 0.639313 0.297638 0.246490 0.640656 0.298737 0.281860 0.642029 0.299927 0.319489 0.643433 0.301025 0.359009 0.644775 0.302155 0.400238 0.646149 0.303314 0.442749 0.647461 0.304443 0.485718 0.648865 0.305603 0.527130 0.650269 0.306702 0.565948 0.651581 0.307861 0.602112 0.652924 0.308990 0.635681 0.654266 0.310150 0.666931 0.655640 0.311340 0.696167 0.656921 0.312408 0.723694 0.658264 0.313568 0.749756 0.659576 0.314728 0.774628 0.660858 0.315826 0.798523 0.662109 0.316925 0.821625 0.663422 0.318085 0.844269 0.664673 0.319214 0.866608 0.665924 0.320343 0.888885 0.667206 0.321411 0.911530 0.668427 0.322571 0.934967 0.669617 0.323608 0.959961 0.670837 0.324707 0.055786 0.668365 0.287384 0.072723 0.669556 0.288544 0.091095 0.670715 0.289642 0.111298 0.671906 0.290741 0.133575 0.673065 0.291901 0.158356 0.674286 0.293030 0.185883 0.675476 0.294220 0.216217 0.676666 0.295380 0.249146 0.677826 0.296509 0.284546 0.678986 0.297699 0.322174 0.680145 0.298798 0.361755 0.681366 0.299988 0.402954 0.682526 0.301178 0.445374 0.683716 0.302338 0.488190 0.684845 0.303467 0.529327 0.686066 0.304688 0.567871 0.687164 0.305817 0.603790 0.688354 0.306976 0.637177 0.689514 0.308136 0.668182 0.690613 0.309357 0.697266 0.691742 0.310486 0.724609 0.692932 0.311646 0.750519 0.694000 0.312775 0.775269 0.695099 0.313934 0.799042 0.696198 0.315094 0.822113 0.697296 0.316162 0.844635 0.698364 0.317352 0.866852 0.699402 0.318481 0.889099 0.700470 0.319580 0.911713 0.701569 0.320709 0.935089 0.702545 0.321777 0.959961 0.703583 0.322906 0.057404 0.703918 0.285248 0.074432 0.704895 0.286438 0.092957 0.705933 0.287628 0.113281 0.706970 0.288757 0.135712 0.707977 0.289978 0.160583 0.709015 0.291138 0.188293 0.710022 0.292267 0.218750 0.711060 0.293488 0.251801 0.712036 0.294678 0.287323 0.713043 0.295837 0.324921 0.714081 0.296997 0.364532 0.715088 0.298248 0.405701 0.716064 0.299377 0.447968 0.717041 0.300537 0.490662 0.718048 0.301819 0.531525 0.719055 0.302979 0.569763 0.720032 0.304138 0.605469 0.721039 0.305328 0.638580 0.722046 0.306549 0.669434 0.722961 0.307709 0.698303 0.723938 0.308868 0.725494 0.724884 0.310028 0.751312 0.725830 0.311218 0.775940 0.726776 0.312347 0.799622 0.727722 0.313507 0.822571 0.728638 0.314667 0.845032 0.729553 0.315765 0.867218 0.730469 0.316864 0.889343 0.731354 0.317963 0.911835 0.732269 0.319122 0.935150 0.733124 0.320221 0.959961 0.734009 0.321320 0.059052 0.736786 0.283539 0.076202 0.737640 0.284790 0.094788 0.738525 0.285889 0.115234 0.739380 0.287109 0.137848 0.740265 0.288269 0.162903 0.741150 0.289490 0.190765 0.742004 0.290710 0.221313 0.742889 0.291931 0.254517 0.743744 0.293121 0.290070 0.744629 0.294342 0.327728 0.745483 0.295532 0.367310 0.746338 0.296722 0.408417 0.747223 0.297943 0.450623 0.748047 0.299164 0.493134 0.748901 0.300354 0.533691 0.749756 0.301575 0.571686 0.750610 0.302704 0.607086 0.751434 0.303925 0.640015 0.752258 0.305145 0.670624 0.753082 0.306335 0.699341 0.753906 0.307465 0.726410 0.754730 0.308655 0.752106 0.755524 0.309814 0.776642 0.756317 0.311035 0.800171 0.757111 0.312164 0.822998 0.757874 0.313293 0.845398 0.758698 0.314423 0.867462 0.759430 0.315521 0.889557 0.760193 0.316711 0.912018 0.760956 0.317780 0.935211 0.761658 0.318909 0.959961 0.762421 0.319946 0.060760 0.767426 0.282135 0.077942 0.768219 0.283325 0.096680 0.768951 0.284515 0.117279 0.769684 0.285767 0.140015 0.770447 0.286987 0.165222 0.771149 0.288239 0.193237 0.771881 0.289459 0.223938 0.772644 0.290680 0.257172 0.773376 0.291901 0.292786 0.774170 0.293091 0.330475 0.774841 0.294281 0.370026 0.775604 0.295563 0.411102 0.776337 0.296753 0.453278 0.777039 0.298004 0.495544 0.777740 0.299194 0.535797 0.778503 0.300415 0.573517 0.779175 0.301636 0.608734 0.779907 0.302826 0.641418 0.780609 0.303986 0.671875 0.781281 0.305145 0.700378 0.781982 0.306396 0.727325 0.782684 0.307526 0.752808 0.783386 0.308685 0.777252 0.784027 0.309845 0.800720 0.784698 0.310974 0.823486 0.785370 0.312134 0.845734 0.786011 0.313324 0.867767 0.786621 0.314423 0.889771 0.787323 0.315491 0.912109 0.787903 0.316620 0.935303 0.788544 0.317657 0.959961 0.789185 0.318726 0.062500 0.796265 0.280914 0.079773 0.796875 0.282227 0.098602 0.797485 0.283447 0.119324 0.798157 0.284729 0.142151 0.798767 0.285828 0.167542 0.799408 0.287140 0.195709 0.800049 0.288422 0.226532 0.800659 0.289581 0.259888 0.801270 0.290863 0.295563 0.801910 0.292084 0.333282 0.802551 0.293304 0.372833 0.803162 0.294525 0.413818 0.803772 0.295776 0.455841 0.804352 0.296997 0.497955 0.805023 0.298218 0.537903 0.805573 0.299377 0.575409 0.806183 0.300598 0.610352 0.806793 0.301819 0.642792 0.807373 0.302979 0.673035 0.807953 0.304199 0.701416 0.808563 0.305420 0.728180 0.809113 0.306549 0.753601 0.809692 0.307739 0.777863 0.810272 0.308868 0.801208 0.810791 0.310059 0.823883 0.811401 0.311157 0.846100 0.811920 0.312256 0.868042 0.812439 0.313324 0.889984 0.813019 0.314484 0.912262 0.813507 0.315552 0.935364 0.814026 0.316620 0.959961 0.814545 0.317627 0.064178 0.823517 0.279999 0.081573 0.824066 0.281311 0.100525 0.824615 0.282440 0.121338 0.825134 0.283722 0.144379 0.825653 0.285004 0.169922 0.826172 0.286224 0.198212 0.826752 0.287476 0.229156 0.827240 0.288727 0.262573 0.827789 0.289948 0.298309 0.828308 0.291229 0.336029 0.828827 0.292511 0.375519 0.829315 0.293671 0.416504 0.829865 0.294952 0.458405 0.830353 0.296143 0.500336 0.830872 0.297394 0.539948 0.831360 0.298584 0.577209 0.831909 0.299774 0.611938 0.832367 0.300995 0.644135 0.832855 0.302185 0.674194 0.833374 0.303345 0.702393 0.833862 0.304535 0.729034 0.834320 0.305664 0.754333 0.834808 0.306854 0.778503 0.835266 0.308014 0.801758 0.835724 0.309143 0.824341 0.836182 0.310242 0.846466 0.836639 0.311279 0.868317 0.837097 0.312439 0.890198 0.837524 0.313507 0.912384 0.837921 0.314575 0.935425 0.838379 0.315643 0.959961 0.838806 0.316681 0.065948 0.849640 0.279205 0.083405 0.850037 0.280457 0.102448 0.850525 0.281738 0.123413 0.850952 0.282990 0.146606 0.851379 0.284271 0.172302 0.851837 0.285553 0.200775 0.852264 0.286743 0.231750 0.852692 0.287994 0.265289 0.853149 0.289276 0.301056 0.853577 0.290527 0.338745 0.854034 0.291779 0.378265 0.854431 0.293030 0.419098 0.854858 0.294220 0.460938 0.855286 0.295471 0.502594 0.855743 0.296661 0.541992 0.856110 0.297852 0.579010 0.856537 0.299133 0.613464 0.856964 0.300262 0.645477 0.857330 0.301422 0.675323 0.857758 0.302612 0.703430 0.858154 0.303802 0.729858 0.858551 0.304962 0.755005 0.858948 0.306061 0.779114 0.859283 0.307220 0.802277 0.859650 0.308289 0.824738 0.860077 0.309479 0.846802 0.860413 0.310516 0.868561 0.860809 0.311584 0.890381 0.861145 0.312683 0.912537 0.861511 0.313690 0.935486 0.861847 0.314697 0.959961 0.862183 0.315704 0.067688 0.874817 0.278534 0.085236 0.875153 0.279785 0.104431 0.875549 0.281036 0.125488 0.875916 0.282318 0.148834 0.876251 0.283600 0.174652 0.876617 0.284851 0.203217 0.876984 0.286163 0.234406 0.877319 0.287323 0.268005 0.877655 0.288635 0.303772 0.878052 0.289917 0.341492 0.878387 0.291168 0.380981 0.878754 0.292328 0.421783 0.879059 0.293549 0.463501 0.879395 0.294800 0.504944 0.879730 0.296021 0.544006 0.880066 0.297180 0.580719 0.880432 0.298401 0.614990 0.880737 0.299622 0.646759 0.881104 0.300751 0.676422 0.881378 0.301910 0.704315 0.881714 0.303070 0.730682 0.882050 0.304230 0.755737 0.882355 0.305328 0.779633 0.882660 0.306396 0.802734 0.882965 0.307587 0.825134 0.883270 0.308655 0.847076 0.883545 0.309662 0.868866 0.883881 0.310699 0.890564 0.884155 0.311768 0.912659 0.884399 0.312744 0.935547 0.884705 0.313812 0.959961 0.884979 0.314758 0.069427 0.899445 0.277893 0.087067 0.899689 0.279205 0.106415 0.899994 0.280487 0.127625 0.900299 0.281738 0.151062 0.900574 0.283051 0.177094 0.900879 0.284271 0.205780 0.901123 0.285553 0.237000 0.901398 0.286804 0.270660 0.901703 0.288086 0.306458 0.901947 0.289215 0.344238 0.902222 0.290527 0.383636 0.902496 0.291809 0.424377 0.902771 0.292999 0.465942 0.903015 0.294189 0.507172 0.903320 0.295349 0.546021 0.903595 0.296570 0.582458 0.903839 0.297760 0.616455 0.904083 0.298950 0.648010 0.904358 0.300110 0.677521 0.904602 0.301239 0.705261 0.904846 0.302368 0.731476 0.905121 0.303497 0.756378 0.905304 0.304596 0.780243 0.905579 0.305664 0.803223 0.905823 0.306763 0.825562 0.906067 0.307800 0.847443 0.906250 0.308868 0.869049 0.906494 0.309875 0.890778 0.906708 0.310883 0.912781 0.906921 0.311859 0.935577 0.907135 0.312836 0.959961 0.907318 0.313751 0.071228 0.923767 0.277313 0.088928 0.923981 0.278656 0.108368 0.924194 0.279907 0.129730 0.924408 0.281189 0.153290 0.924622 0.282471 0.179504 0.924866 0.283752 0.208282 0.925049 0.284973 0.239624 0.925262 0.286194 0.273315 0.925476 0.287476 0.309143 0.925690 0.288666 0.346924 0.925903 0.289948 0.386230 0.926086 0.291138 0.426941 0.926270 0.292358 0.468353 0.926483 0.293549 0.509338 0.926697 0.294800 0.547913 0.926880 0.295959 0.584167 0.927063 0.297150 0.617889 0.927246 0.298309 0.649261 0.927460 0.299377 0.678619 0.927643 0.300537 0.706177 0.927795 0.301636 0.732269 0.928009 0.302704 0.757019 0.928162 0.303833 0.780823 0.928345 0.304871 0.803711 0.928528 0.305908 0.825928 0.928711 0.306946 0.847748 0.928833 0.307953 0.869324 0.929016 0.308929 0.890930 0.929230 0.309875 0.912903 0.929382 0.310852 0.935699 0.929474 0.311798 0.959961 0.929626 0.312683 0.072968 0.948242 0.276733 0.090820 0.948395 0.278046 0.110352 0.948578 0.279297 0.131805 0.948669 0.280609 0.155518 0.948792 0.281860 0.181854 0.948975 0.283081 0.210815 0.949066 0.284393 0.242188 0.949219 0.285583 0.275940 0.949402 0.286835 0.311798 0.949554 0.288055 0.349518 0.949707 0.289246 0.388885 0.949829 0.290497 0.429413 0.949982 0.291687 0.470795 0.950073 0.292877 0.511444 0.950195 0.294067 0.549805 0.950348 0.295227 0.585754 0.950470 0.296387 0.619324 0.950592 0.297546 0.650421 0.950684 0.298645 0.679626 0.950867 0.299713 0.707031 0.950989 0.300842 0.733002 0.951111 0.301910 0.757660 0.951233 0.302979 0.781311 0.951355 0.303986 0.804138 0.951477 0.305023 0.826324 0.951569 0.306000 0.848022 0.951691 0.306976 0.869568 0.951782 0.307892 0.891083 0.951874 0.308868 0.913025 0.951996 0.309753 0.935730 0.952087 0.310669 0.959961 0.952148 0.311523 0.074768 0.973358 0.276031 0.092651 0.973450 0.277374 0.112305 0.973511 0.278625 0.133942 0.973633 0.279846 0.157745 0.973663 0.281097 0.184204 0.973785 0.282410 0.213257 0.973846 0.283630 0.244751 0.973938 0.284821 0.278534 0.973999 0.286102 0.314392 0.974091 0.287262 0.352142 0.974152 0.288544 0.391388 0.974213 0.289734 0.431885 0.974304 0.290894 0.473114 0.974335 0.292114 0.513519 0.974396 0.293243 0.551605 0.974457 0.294403 0.587341 0.974548 0.295471 0.620605 0.974609 0.296570 0.651611 0.974670 0.297699 0.680634 0.974731 0.298798 0.707886 0.974823 0.299866 0.733704 0.974854 0.300934 0.758331 0.974915 0.301941 0.781799 0.974976 0.302917 0.804565 0.975037 0.303894 0.826660 0.975067 0.304871 0.848328 0.975128 0.305817 0.869781 0.975189 0.306732 0.891266 0.975250 0.307556 0.913147 0.975281 0.308472 0.935822 0.975311 0.309357 0.959961 0.975403 0.310150 0.076508 1.000000 0.275146 0.094543 1.000000 0.276398 0.114258 1.000000 0.277649 0.135986 1.000000 0.278931 0.159943 1.000000 0.280151 0.186554 1.000000 0.281433 0.215668 1.000000 0.282623 0.247253 1.000000 0.283875 0.281158 1.000000 0.285126 0.316956 1.000000 0.286346 0.354645 1.000000 0.287506 0.393951 1.000000 0.288696 0.434265 1.000000 0.289886 0.475403 1.000000 0.291046 0.515564 1.000000 0.292175 0.553406 1.000000 0.293274 0.588867 1.000000 0.294403 0.621918 1.000000 0.295471 0.652740 1.000000 0.296539 0.681580 1.000000 0.297577 0.708710 1.000000 0.298584 0.734406 1.000000 0.299652 0.758881 1.000000 0.300659 0.782349 1.000000 0.301575 0.804993 1.000000 0.302582 0.826996 1.000000 0.303497 0.848602 1.000000 0.304352 0.869965 1.000000 0.305267 0.891418 1.000000 0.306122 0.913269 1.000000 0.306946 0.935852 1.000000 0.307739 0.959961 1.000000 0.308533 0.032471 0.002411 0.378571 0.047943 0.003021 0.379120 0.064667 0.003662 0.379669 0.082794 0.004333 0.380310 0.102722 0.005035 0.380890 0.124756 0.005768 0.381561 0.149353 0.006500 0.382172 0.176849 0.007294 0.382904 0.207397 0.008057 0.383606 0.240997 0.008911 0.384247 0.277313 0.009766 0.385040 0.316132 0.010590 0.385803 0.357208 0.011505 0.386627 0.400146 0.012421 0.387360 0.444550 0.013306 0.388214 0.489471 0.014282 0.389008 0.532623 0.015289 0.389893 0.572876 0.016235 0.390686 0.610291 0.017273 0.391602 0.644989 0.018311 0.392487 0.677155 0.019379 0.393433 0.707306 0.020477 0.394287 0.735687 0.021545 0.395172 0.762634 0.022644 0.396179 0.788361 0.023773 0.397125 0.813141 0.024933 0.398041 0.837280 0.026123 0.399109 0.860962 0.027313 0.400116 0.884674 0.028473 0.401093 0.908630 0.029724 0.402100 0.933441 0.030945 0.403107 0.959961 0.032166 0.404144 0.033234 0.018646 0.377716 0.048767 0.019379 0.378357 0.065552 0.020081 0.378937 0.083771 0.020782 0.379608 0.103821 0.021545 0.380219 0.125977 0.022339 0.380951 0.150665 0.023132 0.381592 0.178314 0.023987 0.382294 0.209015 0.024811 0.383057 0.242676 0.025696 0.383820 0.279144 0.026611 0.384613 0.318024 0.027527 0.385376 0.359131 0.028473 0.386200 0.402069 0.029480 0.387054 0.446472 0.030457 0.387878 0.491333 0.031494 0.388702 0.534271 0.032532 0.389587 0.574280 0.033569 0.390472 0.611572 0.034637 0.391357 0.646057 0.035736 0.392273 0.678162 0.036865 0.393188 0.708130 0.038025 0.394135 0.736420 0.039154 0.395081 0.763245 0.040375 0.396027 0.788879 0.041595 0.397064 0.813568 0.042786 0.398041 0.837646 0.044037 0.399078 0.861298 0.045319 0.400024 0.884918 0.046539 0.401062 0.908813 0.047852 0.402069 0.933533 0.049103 0.403076 0.959961 0.050446 0.404144 0.034058 0.035858 0.376801 0.049713 0.036621 0.377472 0.066528 0.037415 0.378174 0.084869 0.038208 0.378845 0.104980 0.039062 0.379517 0.127289 0.039886 0.380188 0.152100 0.040771 0.380951 0.179901 0.041687 0.381744 0.210724 0.042603 0.382477 0.244507 0.043579 0.383301 0.281006 0.044556 0.384094 0.319977 0.045532 0.384857 0.361084 0.046570 0.385712 0.404114 0.047638 0.386566 0.448425 0.048706 0.387451 0.493195 0.049835 0.388275 0.535919 0.050903 0.389191 0.575775 0.052063 0.390106 0.612915 0.053223 0.391022 0.647186 0.054413 0.391968 0.679169 0.055603 0.392944 0.708984 0.056885 0.393860 0.737152 0.058075 0.394836 0.763855 0.059326 0.395874 0.789398 0.060638 0.396881 0.814026 0.061951 0.397827 0.838043 0.063263 0.398865 0.861572 0.064667 0.399902 0.885101 0.066010 0.400879 0.908966 0.067413 0.401917 0.933624 0.068787 0.402924 0.959961 0.070221 0.404022 0.034973 0.054413 0.375916 0.050690 0.055237 0.376587 0.067596 0.056122 0.377258 0.085968 0.056976 0.377960 0.106262 0.057892 0.378754 0.128601 0.058807 0.379456 0.153595 0.059784 0.380249 0.181549 0.060791 0.380981 0.212494 0.061798 0.381775 0.246368 0.062836 0.382629 0.283020 0.063934 0.383453 0.322021 0.065033 0.384247 0.363251 0.066132 0.385101 0.406189 0.067291 0.386017 0.450470 0.068451 0.386902 0.495148 0.069672 0.387817 0.537628 0.070862 0.388672 0.577301 0.072113 0.389618 0.614227 0.073395 0.390625 0.648407 0.074646 0.391510 0.680115 0.075958 0.392487 0.709839 0.077332 0.393524 0.737885 0.078644 0.394470 0.764496 0.080048 0.395447 0.789917 0.081421 0.396484 0.814484 0.082825 0.397430 0.838379 0.084290 0.398468 0.861877 0.085754 0.399445 0.885345 0.087219 0.400513 0.909119 0.088745 0.401520 0.933685 0.090240 0.402588 0.959961 0.091797 0.403625 0.035919 0.074554 0.374817 0.051697 0.075500 0.375549 0.068665 0.076416 0.376312 0.087189 0.077423 0.376984 0.107544 0.078461 0.377747 0.130035 0.079468 0.378540 0.155182 0.080566 0.379333 0.183258 0.081696 0.380127 0.214325 0.082794 0.380951 0.248413 0.083923 0.381805 0.285065 0.085114 0.382629 0.324127 0.086334 0.383484 0.365387 0.087555 0.384399 0.408325 0.088806 0.385284 0.452637 0.090149 0.386139 0.497131 0.091431 0.387115 0.539398 0.092743 0.388031 0.578857 0.094116 0.388916 0.615631 0.095520 0.389923 0.649536 0.096924 0.390839 0.681152 0.098358 0.391876 0.710754 0.099854 0.392883 0.738647 0.101288 0.393799 0.765137 0.102783 0.394867 0.790527 0.104340 0.395844 0.814941 0.105835 0.396820 0.838745 0.107483 0.397858 0.862244 0.109039 0.398865 0.885620 0.110687 0.399902 0.909271 0.112305 0.400940 0.933746 0.113922 0.401978 0.959961 0.115631 0.403015 0.036926 0.096771 0.373596 0.052765 0.097839 0.374359 0.069824 0.098907 0.375061 0.088440 0.100037 0.375854 0.108887 0.101196 0.376587 0.131531 0.102325 0.377380 0.156830 0.103516 0.378235 0.185059 0.104767 0.379059 0.216309 0.105988 0.379883 0.250397 0.107269 0.380737 0.287201 0.108612 0.381653 0.326355 0.109924 0.382507 0.367554 0.111328 0.383392 0.410553 0.112671 0.384308 0.454742 0.114136 0.385223 0.499176 0.115601 0.386139 0.541168 0.117035 0.387054 0.580505 0.118530 0.388062 0.617004 0.120087 0.388977 0.650757 0.121613 0.389984 0.682190 0.123230 0.390961 0.711639 0.124878 0.391968 0.739410 0.126465 0.392914 0.765778 0.128143 0.393921 0.791046 0.129761 0.394897 0.815430 0.131470 0.395874 0.839142 0.133209 0.396942 0.862488 0.134949 0.397980 0.885803 0.136719 0.399017 0.909424 0.138550 0.399994 0.933868 0.140320 0.401001 0.959961 0.142151 0.402069 0.038025 0.121582 0.372131 0.053894 0.122772 0.372833 0.071045 0.123993 0.373627 0.089752 0.125244 0.374390 0.110352 0.126526 0.375214 0.133118 0.127808 0.375977 0.158539 0.129181 0.376831 0.186951 0.130585 0.377686 0.218292 0.131958 0.378540 0.252533 0.133392 0.379425 0.289368 0.134827 0.380310 0.328613 0.136353 0.381226 0.369873 0.137878 0.382111 0.412842 0.139404 0.383026 0.457001 0.140961 0.383942 0.501221 0.142639 0.384888 0.543030 0.144257 0.385803 0.582092 0.145905 0.386810 0.618408 0.147614 0.387756 0.651947 0.149292 0.388702 0.683258 0.151031 0.389679 0.712555 0.152863 0.390656 0.740204 0.154633 0.391602 0.766479 0.156464 0.392609 0.791626 0.158295 0.393585 0.815887 0.160187 0.394623 0.839539 0.162079 0.395691 0.862854 0.163971 0.396637 0.886047 0.165894 0.397675 0.909607 0.167908 0.398682 0.933960 0.169861 0.399689 0.959961 0.171875 0.400787 0.039124 0.149445 0.370300 0.055145 0.150787 0.371033 0.072327 0.152191 0.371826 0.091125 0.153564 0.372589 0.111847 0.155029 0.373474 0.134766 0.156494 0.374268 0.160309 0.158020 0.375122 0.188904 0.159576 0.376038 0.220398 0.161133 0.376801 0.254730 0.162750 0.377686 0.291656 0.164337 0.378601 0.330933 0.166016 0.379517 0.372192 0.167725 0.380432 0.415161 0.169464 0.381348 0.459229 0.171265 0.382263 0.503326 0.173004 0.383209 0.544891 0.174805 0.384155 0.583740 0.176666 0.385101 0.619812 0.178589 0.386108 0.653168 0.180420 0.387054 0.684326 0.182404 0.388000 0.713501 0.184326 0.388977 0.740967 0.186310 0.389923 0.767181 0.188324 0.390961 0.792206 0.190338 0.391907 0.816376 0.192413 0.392914 0.839935 0.194519 0.393921 0.863129 0.196564 0.394897 0.886292 0.198730 0.395935 0.909760 0.200836 0.396912 0.934021 0.202972 0.397919 0.959961 0.205139 0.398956 0.040314 0.180969 0.368103 0.056335 0.182556 0.368835 0.073669 0.184052 0.369690 0.092560 0.185669 0.370453 0.113403 0.187286 0.371338 0.136444 0.188934 0.372101 0.162170 0.190613 0.372955 0.190857 0.192322 0.373810 0.222534 0.194092 0.374695 0.257019 0.195892 0.375549 0.293976 0.197662 0.376526 0.333313 0.199524 0.377411 0.374634 0.201447 0.378357 0.417480 0.203308 0.379242 0.461548 0.205231 0.380188 0.505432 0.207245 0.381104 0.546783 0.209229 0.382019 0.585419 0.211212 0.382996 0.621246 0.213257 0.383942 0.654480 0.215332 0.384888 0.685425 0.217438 0.385834 0.714447 0.219513 0.386871 0.741821 0.221680 0.387848 0.767883 0.223877 0.388794 0.792786 0.225983 0.389771 0.816864 0.228210 0.390778 0.840332 0.230438 0.391754 0.863464 0.232666 0.392700 0.886536 0.234955 0.393738 0.909912 0.237244 0.394775 0.934113 0.239502 0.395721 0.959961 0.241791 0.396698 0.041534 0.216461 0.365417 0.057648 0.218170 0.366211 0.075043 0.219849 0.367065 0.094055 0.221619 0.367859 0.115051 0.223419 0.368683 0.138245 0.225189 0.369507 0.164124 0.227081 0.370422 0.192993 0.228912 0.371246 0.224792 0.230835 0.372131 0.259338 0.232788 0.373047 0.296387 0.234772 0.373962 0.335754 0.236755 0.374847 0.377075 0.238831 0.375732 0.419983 0.240784 0.376678 0.463928 0.242889 0.377625 0.507599 0.245026 0.378571 0.548706 0.247101 0.379486 0.587067 0.249298 0.380463 0.622681 0.251465 0.381378 0.655731 0.253662 0.382416 0.686523 0.255920 0.383362 0.715332 0.258118 0.384308 0.742584 0.260376 0.385284 0.768585 0.262695 0.386292 0.793396 0.264984 0.387207 0.817383 0.267303 0.388184 0.840759 0.269653 0.389221 0.863800 0.272003 0.390137 0.886780 0.274353 0.391144 0.910095 0.276703 0.392120 0.934174 0.279083 0.393127 0.959961 0.281494 0.394135 0.042816 0.255676 0.362366 0.058960 0.257477 0.363129 0.076477 0.259308 0.363953 0.095642 0.261230 0.364807 0.116699 0.263092 0.365662 0.140076 0.265045 0.366486 0.166077 0.267059 0.367371 0.195129 0.269043 0.368256 0.227051 0.271088 0.369202 0.261719 0.273163 0.370117 0.298889 0.275208 0.370972 0.338257 0.277374 0.371887 0.379608 0.279541 0.372833 0.422424 0.281677 0.373779 0.466339 0.283905 0.374695 0.509735 0.286041 0.375610 0.550629 0.288330 0.376556 0.588745 0.290619 0.377533 0.624207 0.292877 0.378510 0.656982 0.295166 0.379425 0.687592 0.297455 0.380402 0.716309 0.299805 0.381348 0.743439 0.302155 0.382355 0.769226 0.304535 0.383331 0.793976 0.306885 0.384277 0.817841 0.309265 0.385315 0.841125 0.311737 0.386292 0.864105 0.314117 0.387207 0.887024 0.316528 0.388214 0.910278 0.318909 0.389252 0.934296 0.321381 0.390167 0.959961 0.323853 0.391174 0.044159 0.298187 0.358887 0.060364 0.300171 0.359711 0.077972 0.302063 0.360565 0.097229 0.304108 0.361420 0.118408 0.306091 0.362244 0.141937 0.308136 0.363190 0.168182 0.310242 0.364105 0.197296 0.312347 0.364960 0.229370 0.314453 0.365845 0.264130 0.316681 0.366791 0.301331 0.318787 0.367706 0.340790 0.321014 0.368591 0.382080 0.323273 0.369507 0.424927 0.325470 0.370483 0.468750 0.327759 0.371429 0.511932 0.329987 0.372345 0.552551 0.332336 0.373352 0.590424 0.334686 0.374298 0.625671 0.336975 0.375244 0.658234 0.339325 0.376221 0.688690 0.341705 0.377167 0.717255 0.344086 0.378174 0.744232 0.346466 0.379120 0.769928 0.348907 0.380127 0.794525 0.351288 0.381104 0.818359 0.353760 0.382050 0.841553 0.356140 0.383026 0.864441 0.358612 0.384003 0.887238 0.361023 0.384979 0.910431 0.363434 0.385925 0.934387 0.365936 0.386993 0.959961 0.368378 0.387909 0.045532 0.343719 0.355133 0.061829 0.345734 0.355988 0.079498 0.347778 0.356842 0.098907 0.349823 0.357727 0.120239 0.351929 0.358582 0.143860 0.354034 0.359528 0.170258 0.356171 0.360413 0.199585 0.358307 0.361267 0.231750 0.360504 0.362244 0.266632 0.362762 0.363159 0.303894 0.364929 0.364075 0.343414 0.367218 0.364990 0.384644 0.369507 0.365936 0.427460 0.371765 0.366913 0.471191 0.374023 0.367889 0.514160 0.376373 0.368805 0.554535 0.378723 0.369781 0.592163 0.381104 0.370758 0.627136 0.383392 0.371704 0.659546 0.385742 0.372681 0.689819 0.388184 0.373688 0.718170 0.390533 0.374634 0.745026 0.392944 0.375702 0.770660 0.395386 0.376617 0.795135 0.397736 0.377563 0.818848 0.400177 0.378571 0.841919 0.402588 0.379547 0.864777 0.405060 0.380524 0.887512 0.407440 0.381500 0.910583 0.409882 0.382477 0.934479 0.412323 0.383453 0.959961 0.414734 0.384460 0.046906 0.391693 0.351105 0.063293 0.393677 0.351990 0.081116 0.395782 0.352875 0.100616 0.397888 0.353821 0.122040 0.400024 0.354645 0.145905 0.402191 0.355560 0.172394 0.404388 0.356506 0.201904 0.406464 0.357422 0.234222 0.408752 0.358307 0.269165 0.410980 0.359283 0.306519 0.413177 0.360229 0.346008 0.415436 0.361206 0.387299 0.417694 0.362122 0.430084 0.419952 0.363159 0.473694 0.422302 0.364105 0.516388 0.424561 0.364990 0.556458 0.426910 0.365997 0.593903 0.429230 0.366974 0.628601 0.431549 0.367981 0.660828 0.433929 0.368988 0.690918 0.436310 0.369965 0.719147 0.438629 0.370911 0.745911 0.440979 0.371918 0.771332 0.443329 0.372925 0.795746 0.445740 0.373901 0.819305 0.448090 0.374908 0.842377 0.450470 0.375885 0.865082 0.452820 0.376831 0.887787 0.455231 0.377838 0.910736 0.457520 0.378845 0.934540 0.459930 0.379822 0.959961 0.462341 0.380798 0.048340 0.441528 0.346924 0.064819 0.443573 0.347778 0.082733 0.445618 0.348694 0.102325 0.447754 0.349609 0.123932 0.449799 0.350525 0.147888 0.451996 0.351501 0.174622 0.454163 0.352417 0.204285 0.456299 0.353333 0.236694 0.458435 0.354309 0.271729 0.460693 0.355286 0.309143 0.462891 0.356232 0.348663 0.465088 0.357239 0.389893 0.467255 0.358154 0.432678 0.469543 0.359161 0.476166 0.471802 0.360168 0.518646 0.473999 0.361145 0.558472 0.476288 0.362152 0.595581 0.478546 0.363159 0.630096 0.480774 0.364166 0.662109 0.483063 0.365143 0.692017 0.485352 0.366150 0.720093 0.487579 0.367096 0.746674 0.489868 0.368134 0.771973 0.492096 0.369141 0.796295 0.494354 0.370148 0.819855 0.496643 0.371124 0.842743 0.498871 0.372101 0.865356 0.501160 0.373138 0.887970 0.503418 0.374146 0.910889 0.505585 0.375122 0.934662 0.507782 0.376129 0.959961 0.510010 0.377106 0.049835 0.492432 0.342590 0.066376 0.494354 0.343506 0.084412 0.496399 0.344421 0.104126 0.498444 0.345428 0.125824 0.500458 0.346313 0.149994 0.502472 0.347290 0.176880 0.504578 0.348328 0.206696 0.506622 0.349274 0.239197 0.508667 0.350281 0.274323 0.510773 0.351227 0.311798 0.512787 0.352234 0.351349 0.514923 0.353210 0.392548 0.516968 0.354218 0.435303 0.519043 0.355225 0.478668 0.521149 0.356293 0.520844 0.523193 0.357269 0.560425 0.525269 0.358337 0.597351 0.527374 0.359344 0.631561 0.529388 0.360352 0.663361 0.531464 0.361389 0.693115 0.533478 0.362427 0.721069 0.535492 0.363464 0.747498 0.537537 0.364502 0.772705 0.539551 0.365448 0.796906 0.541565 0.366516 0.820312 0.543579 0.367584 0.843170 0.545532 0.368591 0.865692 0.547485 0.369659 0.888245 0.549530 0.370697 0.911072 0.551422 0.371643 0.934723 0.553314 0.372650 0.959961 0.555237 0.373718 0.051361 0.541992 0.338501 0.067993 0.543762 0.339508 0.086121 0.545563 0.340424 0.105957 0.547424 0.341400 0.127808 0.549194 0.342438 0.152100 0.551025 0.343445 0.179199 0.552856 0.344482 0.209106 0.554657 0.345520 0.241760 0.556519 0.346527 0.276978 0.558289 0.347565 0.314484 0.560150 0.348572 0.354065 0.561981 0.349609 0.395325 0.563751 0.350708 0.437897 0.565643 0.351746 0.481201 0.567474 0.352814 0.523041 0.569244 0.353790 0.562378 0.571075 0.354950 0.598999 0.572876 0.355988 0.633057 0.574677 0.356995 0.664673 0.576508 0.358063 0.694214 0.578278 0.359131 0.721985 0.580048 0.360168 0.748322 0.581818 0.361298 0.773376 0.583588 0.362335 0.797455 0.585297 0.363434 0.820770 0.587067 0.364471 0.843536 0.588776 0.365479 0.865997 0.590454 0.366577 0.888489 0.592224 0.367584 0.911224 0.593872 0.368622 0.934845 0.595551 0.369659 0.959961 0.597198 0.370697 0.052887 0.587921 0.334930 0.069641 0.589478 0.335907 0.087860 0.591095 0.336914 0.107819 0.592651 0.338043 0.129822 0.594238 0.339081 0.154297 0.595825 0.340088 0.181549 0.597443 0.341187 0.211609 0.599030 0.342255 0.244385 0.600616 0.343323 0.279663 0.602203 0.344330 0.317200 0.603790 0.345428 0.356750 0.605438 0.346497 0.397980 0.606964 0.347656 0.440582 0.608612 0.348694 0.483704 0.610199 0.349792 0.525269 0.611725 0.350830 0.564362 0.613312 0.351959 0.600769 0.614899 0.353088 0.634521 0.616455 0.354126 0.665924 0.618042 0.355225 0.695282 0.619537 0.356293 0.722931 0.621094 0.357422 0.749115 0.622620 0.358521 0.774048 0.624115 0.359619 0.798035 0.625610 0.360626 0.821289 0.627167 0.361786 0.843933 0.628571 0.362823 0.866302 0.630066 0.363922 0.888702 0.631561 0.364990 0.911377 0.632996 0.366028 0.934937 0.634399 0.367096 0.959961 0.635803 0.368134 0.054504 0.630127 0.331848 0.071350 0.631500 0.332886 0.089630 0.632874 0.334015 0.109741 0.634277 0.335083 0.131897 0.635651 0.336151 0.156494 0.637024 0.337219 0.183929 0.638428 0.338348 0.214081 0.639740 0.339417 0.246979 0.641174 0.340546 0.282349 0.642517 0.341644 0.319977 0.643921 0.342773 0.359558 0.645294 0.343903 0.400726 0.646637 0.345032 0.443207 0.648010 0.346130 0.486206 0.649414 0.347260 0.527527 0.650757 0.348358 0.566315 0.652100 0.349487 0.602448 0.653412 0.350586 0.635956 0.654755 0.351715 0.667175 0.656067 0.352814 0.696350 0.657379 0.353973 0.723877 0.658722 0.355042 0.749908 0.660034 0.356171 0.774750 0.661316 0.357300 0.798615 0.662628 0.358398 0.821716 0.663879 0.359528 0.844330 0.665161 0.360535 0.866638 0.666412 0.361664 0.888947 0.667633 0.362793 0.911560 0.668823 0.363770 0.934998 0.670105 0.364868 0.959961 0.671295 0.365936 0.056061 0.668793 0.329315 0.072998 0.669952 0.330383 0.091461 0.671204 0.331512 0.111633 0.672363 0.332611 0.134003 0.673523 0.333740 0.158752 0.674713 0.334869 0.186310 0.675873 0.335968 0.216644 0.677063 0.337128 0.249664 0.678284 0.338257 0.285065 0.679443 0.339417 0.322693 0.680603 0.340576 0.362305 0.681793 0.341675 0.403442 0.682953 0.342804 0.445862 0.684143 0.343964 0.488678 0.685333 0.345154 0.529694 0.686432 0.346283 0.568207 0.687622 0.347412 0.604065 0.688751 0.348541 0.637421 0.689911 0.349701 0.668427 0.691040 0.350830 0.697449 0.692169 0.351929 0.724762 0.693268 0.353058 0.750702 0.694397 0.354218 0.775391 0.695496 0.355316 0.799164 0.696594 0.356415 0.822235 0.697662 0.357544 0.844696 0.698700 0.358612 0.866943 0.699829 0.359772 0.889130 0.700836 0.360809 0.911743 0.701904 0.361877 0.935089 0.702942 0.363007 0.959961 0.703949 0.364014 0.057739 0.704315 0.327179 0.074768 0.705292 0.328278 0.093292 0.706329 0.329468 0.113647 0.707336 0.330597 0.136078 0.708344 0.331726 0.161011 0.709351 0.332886 0.188751 0.710388 0.334076 0.219208 0.711395 0.335205 0.252319 0.712433 0.336426 0.287811 0.713409 0.337555 0.325470 0.714417 0.338715 0.365051 0.715454 0.339905 0.406189 0.716431 0.341003 0.448456 0.717438 0.342194 0.491180 0.718475 0.343323 0.531891 0.719391 0.344513 0.570129 0.720398 0.345703 0.605774 0.721375 0.346832 0.638885 0.722351 0.348022 0.669647 0.723358 0.349121 0.698486 0.724274 0.350281 0.725677 0.725250 0.351410 0.751495 0.726196 0.352570 0.776062 0.727112 0.353638 0.799713 0.728058 0.354797 0.822693 0.729004 0.355927 0.845062 0.729889 0.357056 0.867249 0.730804 0.358124 0.889374 0.731659 0.359222 0.911865 0.732574 0.360260 0.935181 0.733459 0.361298 0.959961 0.734283 0.362396 0.059418 0.737122 0.325439 0.076508 0.737946 0.326569 0.095154 0.738831 0.327789 0.115631 0.739716 0.328888 0.138245 0.740570 0.330048 0.163330 0.741486 0.331268 0.191223 0.742310 0.332458 0.221832 0.743225 0.333618 0.255005 0.744110 0.334808 0.290588 0.744904 0.335999 0.328247 0.745819 0.337189 0.367798 0.746674 0.338348 0.408875 0.747498 0.339539 0.451111 0.748352 0.340759 0.493530 0.749207 0.341888 0.534058 0.750031 0.343079 0.571991 0.750885 0.344269 0.607422 0.751709 0.345398 0.640289 0.752563 0.346588 0.670898 0.753357 0.347748 0.699524 0.754211 0.348907 0.726624 0.755005 0.350037 0.752228 0.755798 0.351166 0.776703 0.756592 0.352264 0.800293 0.757416 0.353394 0.823090 0.758148 0.354492 0.845459 0.758942 0.355621 0.867523 0.759705 0.356750 0.889587 0.760437 0.357788 0.912048 0.761230 0.358826 0.935211 0.761932 0.359955 0.959961 0.762665 0.360931 0.061096 0.767731 0.323944 0.078278 0.768463 0.325104 0.097046 0.769196 0.326324 0.117615 0.769928 0.327545 0.140381 0.770691 0.328735 0.165680 0.771423 0.329926 0.193665 0.772186 0.331085 0.224426 0.772919 0.332336 0.257721 0.773651 0.333527 0.293335 0.774384 0.334686 0.331085 0.775146 0.335907 0.370575 0.775848 0.337128 0.411621 0.776611 0.338287 0.453735 0.777313 0.339539 0.495941 0.778015 0.340668 0.536194 0.778748 0.341858 0.573914 0.779480 0.343018 0.609009 0.780151 0.344208 0.641663 0.780853 0.345367 0.672058 0.781586 0.346558 0.700592 0.782227 0.347687 0.727509 0.782959 0.348816 0.752991 0.783630 0.349976 0.777374 0.784271 0.351105 0.800812 0.784973 0.352203 0.823517 0.785583 0.353302 0.845825 0.786255 0.354401 0.867798 0.786926 0.355499 0.889832 0.787537 0.356506 0.912109 0.788147 0.357635 0.935303 0.788788 0.358704 0.959961 0.789368 0.359711 0.062775 0.796478 0.322723 0.080109 0.797089 0.323944 0.098969 0.797729 0.325195 0.119659 0.798370 0.326385 0.142578 0.799011 0.327576 0.167969 0.799622 0.328827 0.196198 0.800232 0.329987 0.227051 0.800903 0.331207 0.260437 0.801514 0.332458 0.296082 0.802124 0.333679 0.333832 0.802795 0.334839 0.373291 0.803345 0.336060 0.414276 0.803986 0.337250 0.456360 0.804626 0.338470 0.498383 0.805206 0.339630 0.538300 0.805817 0.340820 0.575714 0.806396 0.342010 0.610626 0.807037 0.343201 0.643036 0.807587 0.344330 0.673279 0.808197 0.345490 0.701569 0.808777 0.346649 0.728394 0.809326 0.347809 0.753754 0.809937 0.348969 0.777985 0.810455 0.350067 0.801300 0.811035 0.351166 0.824005 0.811584 0.352234 0.846161 0.812134 0.353333 0.868103 0.812622 0.354401 0.890015 0.813202 0.355469 0.912292 0.813690 0.356537 0.935394 0.814209 0.357544 0.959961 0.814697 0.358521 0.064484 0.823730 0.321747 0.081879 0.824249 0.322998 0.100891 0.824829 0.324219 0.121735 0.825317 0.325439 0.144745 0.825867 0.326660 0.170349 0.826385 0.327911 0.198669 0.826935 0.329102 0.229645 0.827423 0.330292 0.263092 0.827972 0.331573 0.298828 0.828522 0.332794 0.336578 0.829010 0.333984 0.376038 0.829498 0.335205 0.416962 0.830017 0.336395 0.458923 0.830566 0.337616 0.500702 0.831055 0.338776 0.540344 0.831573 0.339996 0.577545 0.832092 0.341125 0.612183 0.832550 0.342285 0.644409 0.833008 0.343445 0.674408 0.833557 0.344604 0.702576 0.834015 0.345703 0.729156 0.834473 0.346863 0.754425 0.834961 0.347992 0.778595 0.835419 0.349121 0.801849 0.835907 0.350189 0.824432 0.836304 0.351318 0.846497 0.836823 0.352356 0.868378 0.837250 0.353485 0.890228 0.837677 0.354462 0.912415 0.838135 0.355469 0.935455 0.838562 0.356445 0.959961 0.838959 0.357422 0.066223 0.849792 0.320892 0.083740 0.850220 0.322113 0.102814 0.850677 0.323395 0.123810 0.851105 0.324615 0.146973 0.851562 0.325867 0.172791 0.851990 0.327087 0.201202 0.852417 0.328308 0.232300 0.852875 0.329559 0.265808 0.853302 0.330780 0.301575 0.853729 0.331970 0.339294 0.854187 0.333221 0.378754 0.854584 0.334381 0.419617 0.855011 0.335602 0.461426 0.855438 0.336792 0.503021 0.855865 0.337982 0.542419 0.856293 0.339142 0.579346 0.856689 0.340363 0.613708 0.857086 0.341492 0.645691 0.857513 0.342651 0.675568 0.857880 0.343811 0.703552 0.858276 0.344910 0.730011 0.858673 0.346039 0.755127 0.859070 0.347137 0.779205 0.859436 0.348206 0.802338 0.859833 0.349396 0.824829 0.860199 0.350403 0.846863 0.860535 0.351440 0.868622 0.860931 0.352478 0.890411 0.861267 0.353455 0.912537 0.861633 0.354492 0.935486 0.862000 0.355499 0.959961 0.862305 0.356415 0.067963 0.874939 0.320190 0.085602 0.875275 0.321472 0.104797 0.875702 0.322723 0.125885 0.876007 0.323944 0.149231 0.876373 0.325195 0.175140 0.876740 0.326416 0.203735 0.877106 0.327606 0.234894 0.877472 0.328857 0.268463 0.877808 0.330078 0.304291 0.878174 0.331299 0.342041 0.878479 0.332550 0.381470 0.878876 0.333740 0.422241 0.879211 0.334930 0.463928 0.879547 0.336121 0.505280 0.879883 0.337250 0.544403 0.880188 0.338440 0.581085 0.880554 0.339630 0.615234 0.880859 0.340790 0.647034 0.881195 0.341919 0.676636 0.881531 0.343018 0.704498 0.881836 0.344116 0.730835 0.882141 0.345276 0.755859 0.882446 0.346313 0.779755 0.882782 0.347443 0.802826 0.883087 0.348480 0.825226 0.883362 0.349518 0.847198 0.883667 0.350555 0.868866 0.883972 0.351562 0.890625 0.884247 0.352539 0.912659 0.884491 0.353546 0.935547 0.884796 0.354492 0.959961 0.885040 0.355408 0.069733 0.899506 0.319550 0.087433 0.899841 0.320801 0.106781 0.900116 0.322083 0.127991 0.900391 0.323303 0.151459 0.900665 0.324524 0.177490 0.900970 0.325745 0.206238 0.901215 0.327026 0.237488 0.901489 0.328247 0.271118 0.901764 0.329468 0.306946 0.902069 0.330688 0.344727 0.902344 0.331940 0.384125 0.902618 0.333069 0.424866 0.902863 0.334259 0.466431 0.903168 0.335449 0.507568 0.903412 0.336609 0.546387 0.903687 0.337830 0.582764 0.903961 0.338959 0.616699 0.904205 0.340057 0.648285 0.904480 0.341187 0.677734 0.904694 0.342316 0.705444 0.904968 0.343384 0.731628 0.905212 0.344513 0.756531 0.905457 0.345520 0.780334 0.905670 0.346588 0.803314 0.905884 0.347626 0.825653 0.906128 0.348663 0.847473 0.906342 0.349670 0.869110 0.906555 0.350616 0.890808 0.906799 0.351624 0.912781 0.907013 0.352570 0.935638 0.907196 0.353455 0.959961 0.907410 0.354340 0.071503 0.923859 0.318878 0.089294 0.924042 0.320190 0.108734 0.924255 0.321442 0.130066 0.924469 0.322693 0.153717 0.924744 0.323944 0.179901 0.924927 0.325134 0.208771 0.925110 0.326447 0.240143 0.925323 0.327606 0.273804 0.925568 0.328796 0.309631 0.925781 0.330048 0.347412 0.925964 0.331238 0.386719 0.926117 0.332367 0.427368 0.926361 0.333557 0.468811 0.926575 0.334808 0.509705 0.926758 0.335938 0.548279 0.926971 0.337067 0.584442 0.927124 0.338196 0.618134 0.927338 0.339325 0.649506 0.927521 0.340424 0.678802 0.927704 0.341522 0.706360 0.927917 0.342621 0.732391 0.928070 0.343689 0.757141 0.928223 0.344635 0.780914 0.928436 0.345734 0.803772 0.928589 0.346741 0.825989 0.928741 0.347656 0.847809 0.928955 0.348633 0.869385 0.929108 0.349640 0.890930 0.929291 0.350586 0.912933 0.929413 0.351471 0.935699 0.929535 0.352386 0.959961 0.929657 0.353210 0.073303 0.948334 0.318207 0.091156 0.948456 0.319550 0.110718 0.948578 0.320770 0.132172 0.948730 0.322021 0.155975 0.948883 0.323273 0.182281 0.949005 0.324493 0.211243 0.949158 0.325714 0.242676 0.949280 0.326965 0.276398 0.949432 0.328156 0.312286 0.949615 0.329315 0.350037 0.949768 0.330536 0.389313 0.949860 0.331696 0.429901 0.950012 0.332916 0.471191 0.950134 0.334015 0.511810 0.950287 0.335144 0.550140 0.950378 0.336334 0.586060 0.950531 0.337402 0.619507 0.950623 0.338531 0.650696 0.950745 0.339630 0.679810 0.950897 0.340637 0.707153 0.951019 0.341675 0.733124 0.951141 0.342773 0.757782 0.951233 0.343719 0.781433 0.951355 0.344727 0.804199 0.951508 0.345703 0.826385 0.951599 0.346680 0.848083 0.951721 0.347565 0.869568 0.951813 0.348541 0.891113 0.951935 0.349457 0.913055 0.951996 0.350311 0.935730 0.952118 0.351166 0.959961 0.952240 0.351990 0.075043 0.973419 0.317505 0.093048 0.973480 0.318756 0.112671 0.973541 0.319977 0.134277 0.973663 0.321259 0.158173 0.973694 0.322510 0.184631 0.973816 0.323669 0.213715 0.973877 0.324890 0.245270 0.973969 0.326141 0.279022 0.974030 0.327301 0.314911 0.974091 0.328522 0.352600 0.974182 0.329712 0.391846 0.974213 0.330902 0.432312 0.974304 0.332001 0.473541 0.974365 0.333130 0.513947 0.974426 0.334259 0.551941 0.974518 0.335358 0.587616 0.974579 0.336426 0.620880 0.974609 0.337524 0.651825 0.974701 0.338593 0.680817 0.974731 0.339661 0.708038 0.974854 0.340637 0.733887 0.974884 0.341644 0.758392 0.974976 0.342651 0.781921 0.975006 0.343628 0.804626 0.975067 0.344513 0.826691 0.975098 0.345428 0.848389 0.975189 0.346436 0.869812 0.975220 0.347260 0.891296 0.975250 0.348145 0.913147 0.975281 0.348907 0.935822 0.975342 0.349762 0.959961 0.975403 0.350525 0.076843 1.000000 0.316528 0.094879 1.000000 0.317841 0.114624 1.000000 0.319031 0.136353 1.000000 0.320251 0.160400 1.000000 0.321503 0.186951 1.000000 0.322723 0.216156 1.000000 0.323914 0.247772 1.000000 0.325134 0.281586 1.000000 0.326294 0.317444 1.000000 0.327484 0.355164 1.000000 0.328552 0.394318 1.000000 0.329803 0.434753 1.000000 0.330933 0.475769 1.000000 0.332001 0.515961 1.000000 0.333099 0.553711 1.000000 0.334229 0.589172 1.000000 0.335266 0.622223 1.000000 0.336334 0.652985 1.000000 0.337341 0.681763 1.000000 0.338348 0.708862 1.000000 0.339355 0.734558 1.000000 0.340332 0.758972 1.000000 0.341278 0.782410 1.000000 0.342194 0.805023 1.000000 0.343140 0.827057 1.000000 0.343964 0.848633 1.000000 0.344849 0.870026 1.000000 0.345673 0.891449 1.000000 0.346558 0.913269 1.000000 0.347321 0.935852 1.000000 0.348083 0.959961 1.000000 0.348846 0.032562 0.002625 0.422394 0.048096 0.003265 0.422974 0.064819 0.003876 0.423553 0.083008 0.004578 0.424164 0.102905 0.005310 0.424744 0.125000 0.006042 0.425323 0.149597 0.006805 0.426025 0.177094 0.007568 0.426697 0.207733 0.008392 0.427368 0.241302 0.009216 0.428101 0.277618 0.010040 0.428802 0.316498 0.010925 0.429626 0.357544 0.011841 0.430359 0.400482 0.012756 0.431122 0.444885 0.013702 0.431915 0.489807 0.014618 0.432739 0.532928 0.015625 0.433594 0.573151 0.016632 0.434418 0.610596 0.017639 0.435303 0.645172 0.018677 0.436218 0.677368 0.019775 0.437073 0.707458 0.020813 0.437958 0.735809 0.021942 0.438873 0.762726 0.023071 0.439819 0.788422 0.024200 0.440765 0.813232 0.025360 0.441681 0.837372 0.026520 0.442657 0.861053 0.027740 0.443634 0.884705 0.028961 0.444611 0.908661 0.030151 0.445587 0.933441 0.031403 0.446564 0.959961 0.032684 0.447601 0.033386 0.018921 0.421539 0.048950 0.019653 0.422119 0.065704 0.020325 0.422729 0.083984 0.021088 0.423370 0.104034 0.021820 0.424042 0.126221 0.022644 0.424744 0.150970 0.023438 0.425385 0.178589 0.024261 0.426147 0.209351 0.025146 0.426849 0.243042 0.026062 0.427643 0.279449 0.026917 0.428314 0.318359 0.027863 0.429138 0.359497 0.028839 0.429932 0.402435 0.029846 0.430756 0.446838 0.030823 0.431519 0.491638 0.031830 0.432434 0.534546 0.032867 0.433258 0.574585 0.033966 0.434113 0.611847 0.035034 0.435059 0.646332 0.036163 0.435913 0.678314 0.037323 0.436829 0.708282 0.038422 0.437775 0.736511 0.039612 0.438721 0.763336 0.040802 0.439667 0.788971 0.041992 0.440582 0.813660 0.043243 0.441528 0.837677 0.044464 0.442505 0.861359 0.045715 0.443542 0.884949 0.047028 0.444550 0.908844 0.048309 0.445496 0.933533 0.049652 0.446533 0.959961 0.050995 0.447571 0.034241 0.036194 0.420685 0.049866 0.036926 0.421265 0.066711 0.037720 0.421967 0.085052 0.038513 0.422607 0.105194 0.039337 0.423309 0.127502 0.040222 0.424011 0.152374 0.041107 0.424744 0.180176 0.042023 0.425507 0.211060 0.042969 0.426239 0.244843 0.043945 0.427032 0.281372 0.044922 0.427826 0.320374 0.045929 0.428650 0.361511 0.046967 0.429382 0.404480 0.048004 0.430328 0.448853 0.049103 0.431152 0.493530 0.050201 0.431976 0.536224 0.051331 0.432892 0.576111 0.052460 0.433807 0.613098 0.053650 0.434692 0.647430 0.054840 0.435638 0.679321 0.056061 0.436493 0.709167 0.057281 0.437469 0.737274 0.058533 0.438416 0.764008 0.059784 0.439362 0.789490 0.061096 0.440338 0.814117 0.062439 0.441284 0.838074 0.063751 0.442261 0.861633 0.065125 0.443298 0.885132 0.066498 0.444336 0.908966 0.067902 0.445282 0.933624 0.069305 0.446320 0.959961 0.070740 0.447357 0.035156 0.054688 0.419708 0.050842 0.055511 0.420410 0.067749 0.056427 0.421082 0.086212 0.057312 0.421783 0.106445 0.058197 0.422485 0.128906 0.059174 0.423248 0.153931 0.060150 0.423981 0.181854 0.061157 0.424744 0.212830 0.062195 0.425507 0.246796 0.063263 0.426392 0.283356 0.064331 0.427124 0.322418 0.065430 0.428009 0.363586 0.066528 0.428864 0.406586 0.067719 0.429718 0.450897 0.068909 0.430603 0.495483 0.070068 0.431488 0.537994 0.071320 0.432343 0.577606 0.072571 0.433319 0.614502 0.073822 0.434174 0.648590 0.075165 0.435120 0.680298 0.076477 0.436096 0.710052 0.077789 0.436981 0.738037 0.079163 0.437958 0.764618 0.080505 0.438904 0.790039 0.081970 0.439880 0.814606 0.083405 0.440918 0.838470 0.084808 0.441864 0.861938 0.086304 0.442902 0.885406 0.087799 0.443848 0.909149 0.089264 0.444855 0.933685 0.090820 0.445862 0.959961 0.092377 0.446930 0.036163 0.074890 0.418610 0.051880 0.075836 0.419342 0.068878 0.076813 0.420074 0.087433 0.077820 0.420837 0.107788 0.078827 0.421539 0.130371 0.079895 0.422302 0.155487 0.080963 0.423065 0.183563 0.082062 0.423889 0.214752 0.083221 0.424652 0.248749 0.084351 0.425507 0.285461 0.085541 0.426331 0.324524 0.086823 0.427185 0.365753 0.088013 0.428040 0.408691 0.089294 0.428925 0.453033 0.090607 0.429840 0.497437 0.091919 0.430695 0.539734 0.093262 0.431641 0.579163 0.094635 0.432526 0.615814 0.096008 0.433472 0.649780 0.097473 0.434418 0.681335 0.098877 0.435364 0.710907 0.100342 0.436310 0.738800 0.101868 0.437256 0.765259 0.103363 0.438202 0.790588 0.104889 0.439270 0.815033 0.106476 0.440216 0.838837 0.108032 0.441193 0.862274 0.109650 0.442200 0.885651 0.111237 0.443237 0.909302 0.112885 0.444214 0.933807 0.114563 0.445190 0.959961 0.116241 0.446198 0.037170 0.097168 0.417419 0.052979 0.098236 0.418152 0.070068 0.099304 0.418854 0.088715 0.100433 0.419617 0.109161 0.101593 0.420349 0.131866 0.102783 0.421173 0.157135 0.104004 0.421936 0.185425 0.105194 0.422729 0.216675 0.106476 0.423615 0.250793 0.107758 0.424408 0.287598 0.109100 0.425293 0.326721 0.110474 0.426147 0.368011 0.111816 0.427002 0.410950 0.113251 0.427917 0.455231 0.114655 0.428833 0.499512 0.116119 0.429688 0.541595 0.117615 0.430603 0.580811 0.119110 0.431549 0.617218 0.120667 0.432465 0.650970 0.122223 0.433411 0.682373 0.123779 0.434387 0.711823 0.125427 0.435333 0.739594 0.127075 0.436310 0.765900 0.128693 0.437286 0.791168 0.130432 0.438263 0.815521 0.132141 0.439240 0.839233 0.133820 0.440186 0.862579 0.135590 0.441193 0.885834 0.137390 0.442200 0.909454 0.139160 0.443207 0.933868 0.140991 0.444214 0.959961 0.142853 0.445190 0.038269 0.122040 0.415863 0.054138 0.123199 0.416565 0.071320 0.124451 0.417328 0.090027 0.125732 0.418182 0.110626 0.126984 0.418945 0.133423 0.128326 0.419739 0.158844 0.129669 0.420563 0.187317 0.131073 0.421326 0.218719 0.132507 0.422241 0.252930 0.133911 0.423096 0.289795 0.135376 0.423920 0.329010 0.136902 0.424805 0.370270 0.138428 0.425659 0.413269 0.139984 0.426575 0.457458 0.141602 0.427460 0.501556 0.143188 0.428375 0.543427 0.144836 0.429291 0.582367 0.146576 0.430237 0.618622 0.148224 0.431152 0.652252 0.149963 0.432129 0.683472 0.151703 0.433044 0.712769 0.153473 0.434021 0.740387 0.155304 0.435028 0.766602 0.157135 0.435944 0.791748 0.158997 0.436920 0.816010 0.160889 0.437897 0.839630 0.162750 0.438843 0.862915 0.164703 0.439850 0.886108 0.166595 0.440796 0.909637 0.168610 0.441803 0.933990 0.170593 0.442810 0.959961 0.172577 0.443817 0.039368 0.149963 0.414032 0.055298 0.151276 0.414764 0.072601 0.152710 0.415527 0.091400 0.154144 0.416351 0.112152 0.155579 0.417175 0.135071 0.157074 0.417938 0.160645 0.158569 0.418762 0.189240 0.160126 0.419647 0.220795 0.161743 0.420502 0.255127 0.163330 0.421295 0.292084 0.165009 0.422180 0.331360 0.166687 0.423096 0.372650 0.168365 0.423950 0.415588 0.170105 0.424835 0.459747 0.171906 0.425751 0.503662 0.173676 0.426666 0.545288 0.175507 0.427612 0.584015 0.177368 0.428497 0.620056 0.179260 0.429443 0.653412 0.181213 0.430420 0.684509 0.183075 0.431305 0.713684 0.185059 0.432281 0.741180 0.187073 0.433228 0.767273 0.189026 0.434235 0.792328 0.191132 0.435150 0.816498 0.193207 0.436157 0.840027 0.195221 0.437042 0.863251 0.197357 0.438080 0.886383 0.199463 0.438995 0.909760 0.201599 0.439972 0.934021 0.203796 0.440948 0.959961 0.205933 0.441925 0.040588 0.181580 0.411774 0.056580 0.183075 0.412537 0.073944 0.184631 0.413391 0.092834 0.186218 0.414124 0.113708 0.187897 0.414948 0.136810 0.189545 0.415771 0.162567 0.191223 0.416534 0.191284 0.192993 0.417450 0.222961 0.194763 0.418304 0.257416 0.196533 0.419189 0.294464 0.198334 0.420074 0.333771 0.200226 0.420929 0.375000 0.202087 0.421814 0.417999 0.204010 0.422699 0.462006 0.205933 0.423584 0.505829 0.207916 0.424500 0.547150 0.209961 0.425446 0.585693 0.211975 0.426331 0.621521 0.214020 0.427277 0.654694 0.216125 0.428223 0.685608 0.218170 0.429138 0.714569 0.220337 0.430084 0.741974 0.222473 0.431061 0.767944 0.224609 0.431976 0.792877 0.226807 0.432953 0.816956 0.229034 0.433868 0.840424 0.231232 0.434845 0.863525 0.233490 0.435791 0.886566 0.235718 0.436737 0.909943 0.238007 0.437714 0.934113 0.240356 0.438690 0.959961 0.242645 0.439606 0.041779 0.217102 0.409088 0.057892 0.218781 0.409851 0.075317 0.220520 0.410645 0.094360 0.222229 0.411469 0.115295 0.224060 0.412262 0.138580 0.225891 0.413147 0.164459 0.227722 0.414001 0.193420 0.229614 0.414825 0.225220 0.231567 0.415680 0.259735 0.233490 0.416565 0.296844 0.235474 0.417450 0.336212 0.237549 0.418304 0.377533 0.239532 0.419220 0.420410 0.241577 0.420135 0.464355 0.243652 0.420990 0.508026 0.245789 0.421936 0.549072 0.247986 0.422852 0.587372 0.250061 0.423767 0.622955 0.252289 0.424683 0.655975 0.254547 0.425598 0.686676 0.256683 0.426514 0.715515 0.258972 0.427521 0.742767 0.261261 0.428436 0.768677 0.263519 0.429352 0.793488 0.265869 0.430298 0.817444 0.268127 0.431244 0.840851 0.270447 0.432220 0.863831 0.272888 0.433136 0.886810 0.275146 0.434052 0.910126 0.277588 0.435028 0.934235 0.279968 0.435974 0.959961 0.282318 0.436890 0.043030 0.256287 0.405975 0.059235 0.258148 0.406799 0.076782 0.260040 0.407562 0.095917 0.261871 0.408417 0.117035 0.263824 0.409241 0.140411 0.265808 0.410126 0.166473 0.267761 0.410950 0.195557 0.269806 0.411835 0.227478 0.271851 0.412689 0.262146 0.273895 0.413544 0.299316 0.276031 0.414429 0.338715 0.278107 0.415253 0.380005 0.280273 0.416229 0.422943 0.282471 0.417114 0.466766 0.284668 0.418030 0.510193 0.286896 0.418976 0.551056 0.289154 0.419861 0.589081 0.291382 0.420776 0.624481 0.293701 0.421692 0.657257 0.296021 0.422638 0.687775 0.298340 0.423584 0.716492 0.300659 0.424500 0.743622 0.303040 0.425476 0.769348 0.305389 0.426361 0.794098 0.307770 0.427277 0.817963 0.310120 0.428223 0.841217 0.312561 0.429199 0.864166 0.315002 0.430084 0.887054 0.317383 0.431061 0.910278 0.319824 0.431976 0.934296 0.322327 0.432953 0.959961 0.324707 0.433899 0.044403 0.298920 0.402496 0.060638 0.300812 0.403320 0.078278 0.302856 0.404144 0.097534 0.304810 0.404938 0.118774 0.306854 0.405792 0.142303 0.308899 0.406647 0.168549 0.310974 0.407501 0.197754 0.313141 0.408447 0.229828 0.315277 0.409302 0.264557 0.317383 0.410156 0.301819 0.319611 0.411102 0.341248 0.321808 0.411957 0.382568 0.324036 0.412842 0.425476 0.326324 0.413788 0.469208 0.328552 0.414703 0.512390 0.330841 0.415588 0.552917 0.333221 0.416534 0.590820 0.335510 0.417480 0.625946 0.337891 0.418396 0.658508 0.340271 0.419281 0.688904 0.342590 0.420227 0.717407 0.344971 0.421234 0.744415 0.347351 0.422119 0.770050 0.349792 0.423035 0.794678 0.352234 0.424011 0.818420 0.354614 0.424896 0.841644 0.357056 0.425903 0.864471 0.359528 0.426788 0.887299 0.361938 0.427704 0.910461 0.364410 0.428680 0.934387 0.366852 0.429565 0.959961 0.369263 0.430511 0.045715 0.344421 0.398651 0.062103 0.346466 0.399506 0.079834 0.348541 0.400391 0.099182 0.350555 0.401215 0.120544 0.352661 0.402069 0.144257 0.354858 0.402954 0.170685 0.356934 0.403809 0.200043 0.359131 0.404724 0.232239 0.361328 0.405609 0.267090 0.363556 0.406525 0.304413 0.365753 0.407379 0.343811 0.368011 0.408356 0.385162 0.370300 0.409210 0.427979 0.372589 0.410156 0.471649 0.374908 0.411072 0.514587 0.377228 0.412018 0.554871 0.379608 0.412933 0.592468 0.381927 0.413849 0.627411 0.384277 0.414825 0.659760 0.386719 0.415771 0.690002 0.389008 0.416626 0.718384 0.391449 0.417633 0.745209 0.393799 0.418549 0.770782 0.396240 0.419464 0.795258 0.398682 0.420410 0.818909 0.401001 0.421326 0.842010 0.403473 0.422302 0.864838 0.405975 0.423218 0.887543 0.408325 0.424133 0.910614 0.410767 0.425140 0.934479 0.413208 0.426025 0.959961 0.415649 0.426941 0.047150 0.392395 0.394623 0.063568 0.394501 0.395508 0.081421 0.396576 0.396362 0.100891 0.398651 0.397217 0.122406 0.400818 0.398071 0.146271 0.403015 0.399017 0.172821 0.405121 0.399872 0.202332 0.407288 0.400787 0.234650 0.409454 0.401672 0.269623 0.411743 0.402618 0.307007 0.414001 0.403534 0.346436 0.416229 0.404388 0.387787 0.418488 0.405365 0.430573 0.420898 0.406281 0.474121 0.423126 0.407257 0.516815 0.425446 0.408173 0.556915 0.427826 0.409119 0.594208 0.430084 0.410065 0.628906 0.432465 0.410950 0.661072 0.434784 0.411896 0.691101 0.437103 0.412903 0.719330 0.439484 0.413849 0.746033 0.441833 0.414795 0.771484 0.444214 0.415680 0.795837 0.446625 0.416656 0.819427 0.448975 0.417572 0.842438 0.451355 0.418518 0.865112 0.453735 0.419464 0.887817 0.456085 0.420441 0.910767 0.458405 0.421356 0.934570 0.460724 0.422302 0.959961 0.463135 0.423218 0.048615 0.442230 0.390411 0.065155 0.444336 0.391266 0.083069 0.446411 0.392151 0.102661 0.448486 0.392975 0.124268 0.450653 0.393890 0.148285 0.452728 0.394806 0.175049 0.454895 0.395782 0.204681 0.457153 0.396667 0.237152 0.459229 0.397583 0.272217 0.461456 0.398468 0.309631 0.463715 0.399475 0.349152 0.465881 0.400391 0.390411 0.468109 0.401428 0.433136 0.470398 0.402283 0.476624 0.472595 0.403259 0.519073 0.474854 0.404205 0.558868 0.477142 0.405151 0.595947 0.479370 0.406097 0.630371 0.481689 0.407074 0.662354 0.483856 0.408020 0.692200 0.486145 0.408936 0.720306 0.488403 0.409943 0.746826 0.490692 0.410919 0.772125 0.492950 0.411835 0.796417 0.495239 0.412811 0.819885 0.497467 0.413757 0.842834 0.499756 0.414703 0.865448 0.501984 0.415710 0.888031 0.504211 0.416595 0.910950 0.506439 0.417511 0.934692 0.508606 0.418488 0.959961 0.510803 0.419434 0.050079 0.493134 0.386047 0.066711 0.495117 0.386932 0.084747 0.497131 0.387848 0.104462 0.499176 0.388794 0.126221 0.501190 0.389709 0.150360 0.503235 0.390656 0.177338 0.505310 0.391571 0.207123 0.507416 0.392487 0.239655 0.509430 0.393433 0.274811 0.511536 0.394470 0.312317 0.513580 0.395416 0.351837 0.515625 0.396332 0.393097 0.517731 0.397369 0.435760 0.519836 0.398376 0.479156 0.521851 0.399292 0.521271 0.523987 0.400238 0.560822 0.526031 0.401215 0.597626 0.528076 0.402283 0.631836 0.530151 0.403198 0.663635 0.532166 0.404175 0.693298 0.534241 0.405182 0.721222 0.536285 0.406219 0.747650 0.538269 0.407104 0.772827 0.540314 0.408142 0.796997 0.542328 0.409119 0.820374 0.544312 0.410065 0.843231 0.546265 0.411102 0.865784 0.548248 0.412048 0.888245 0.550171 0.412994 0.911072 0.552124 0.414032 0.934723 0.554047 0.414917 0.959961 0.555969 0.415955 0.051636 0.542664 0.381866 0.068298 0.544464 0.382843 0.086456 0.546265 0.383789 0.106293 0.548065 0.384735 0.128235 0.549866 0.385773 0.152496 0.551636 0.386719 0.179626 0.553497 0.387695 0.209595 0.555359 0.388702 0.242249 0.557159 0.389709 0.277496 0.558990 0.390686 0.315002 0.560883 0.391663 0.354553 0.562622 0.392670 0.395813 0.564514 0.393738 0.438385 0.566315 0.394714 0.481628 0.568085 0.395721 0.523529 0.569946 0.396729 0.562775 0.571747 0.397797 0.599396 0.573578 0.398804 0.633331 0.575378 0.399811 0.664886 0.577148 0.400787 0.694427 0.578949 0.401825 0.722168 0.580688 0.402863 0.748444 0.582458 0.403870 0.773529 0.584229 0.404907 0.797607 0.585999 0.405945 0.820831 0.587708 0.406891 0.843628 0.589417 0.407867 0.866058 0.591156 0.408936 0.888519 0.592834 0.409882 0.911255 0.594513 0.410919 0.934845 0.596100 0.411865 0.959961 0.597748 0.412842 0.053192 0.588440 0.378265 0.069946 0.590088 0.379303 0.088165 0.591644 0.380310 0.108154 0.593231 0.381287 0.130219 0.594788 0.382324 0.154724 0.596375 0.383362 0.181946 0.597992 0.384399 0.212067 0.599609 0.385376 0.244843 0.601196 0.386383 0.280151 0.602814 0.387451 0.317749 0.604401 0.388489 0.357300 0.605988 0.389526 0.398529 0.607574 0.390594 0.441101 0.609161 0.391602 0.484131 0.610718 0.392670 0.525696 0.612305 0.393707 0.564697 0.613892 0.394775 0.601074 0.615448 0.395813 0.634766 0.617035 0.396851 0.666138 0.618561 0.397888 0.695496 0.620117 0.398956 0.723114 0.621674 0.399994 0.749298 0.623138 0.401031 0.774200 0.624695 0.402069 0.798157 0.626221 0.403107 0.821350 0.627686 0.404114 0.843994 0.629181 0.405121 0.866394 0.630615 0.406128 0.888763 0.632080 0.407166 0.911407 0.633545 0.408203 0.934937 0.634918 0.409149 0.959961 0.636322 0.410156 0.054779 0.630646 0.375183 0.071625 0.632050 0.376190 0.089966 0.633392 0.377258 0.110077 0.634766 0.378265 0.132294 0.636139 0.379395 0.156921 0.637512 0.380402 0.184326 0.638885 0.381470 0.214600 0.640320 0.382568 0.247498 0.641663 0.383606 0.282867 0.643036 0.384674 0.320496 0.644409 0.385742 0.360046 0.645782 0.386841 0.401276 0.647156 0.387939 0.443726 0.648499 0.388977 0.486664 0.649872 0.390045 0.527924 0.651276 0.391113 0.566681 0.652527 0.392212 0.602753 0.653900 0.393219 0.636230 0.655304 0.394379 0.667389 0.656555 0.395416 0.696564 0.657867 0.396484 0.724030 0.659241 0.397552 0.750031 0.660522 0.398560 0.774902 0.661774 0.399628 0.798737 0.663055 0.400696 0.821808 0.664337 0.401733 0.844421 0.665619 0.402802 0.866669 0.666840 0.403778 0.888947 0.668121 0.404816 0.911591 0.669312 0.405853 0.934998 0.670471 0.406830 0.959961 0.671692 0.407837 0.056396 0.669189 0.372589 0.073364 0.670410 0.373627 0.091797 0.671600 0.374725 0.112000 0.672760 0.375793 0.134338 0.673981 0.376923 0.159149 0.675171 0.377930 0.186768 0.676331 0.379089 0.217133 0.677521 0.380188 0.250092 0.678711 0.381256 0.285614 0.679871 0.382324 0.323212 0.681091 0.383453 0.362762 0.682251 0.384552 0.403961 0.683411 0.385681 0.446350 0.684540 0.386780 0.489136 0.685699 0.387848 0.530090 0.686920 0.388916 0.568573 0.687988 0.390015 0.604431 0.689178 0.391113 0.637665 0.690338 0.392242 0.668640 0.691437 0.393311 0.697662 0.692566 0.394379 0.724976 0.693695 0.395508 0.750824 0.694824 0.396545 0.775543 0.695923 0.397614 0.799255 0.696960 0.398621 0.822296 0.698059 0.399719 0.844757 0.699127 0.400787 0.867004 0.700165 0.401764 0.889191 0.701233 0.402832 0.911743 0.702271 0.403870 0.935089 0.703339 0.404846 0.959961 0.704346 0.405853 0.058014 0.704651 0.370361 0.075073 0.705688 0.371490 0.093628 0.706665 0.372528 0.114014 0.707703 0.373718 0.136475 0.708740 0.374847 0.161438 0.709717 0.375885 0.189178 0.710724 0.377075 0.219727 0.711761 0.378204 0.252808 0.712769 0.379272 0.288330 0.713776 0.380402 0.325958 0.714783 0.381531 0.365540 0.715790 0.382629 0.406677 0.716827 0.383789 0.449005 0.717804 0.384857 0.491547 0.718811 0.386017 0.532349 0.719818 0.387085 0.570465 0.720764 0.388214 0.606049 0.721741 0.389313 0.639130 0.722748 0.390442 0.669891 0.723663 0.391510 0.698730 0.724640 0.392578 0.725861 0.725586 0.393738 0.751648 0.726532 0.394775 0.776184 0.727448 0.395844 0.799835 0.728394 0.396942 0.822754 0.729309 0.397980 0.845154 0.730255 0.399017 0.867310 0.731110 0.399994 0.889435 0.731995 0.401123 0.911896 0.732910 0.402161 0.935181 0.733734 0.403107 0.959961 0.734619 0.404114 0.059692 0.737427 0.368561 0.076874 0.738312 0.369690 0.095490 0.739136 0.370789 0.115997 0.740051 0.371948 0.138641 0.740906 0.373077 0.163727 0.741760 0.374207 0.191681 0.742676 0.375366 0.222321 0.743530 0.376556 0.255524 0.744385 0.377686 0.291046 0.745239 0.378754 0.328766 0.746124 0.379913 0.368347 0.746979 0.381073 0.409424 0.747833 0.382172 0.451599 0.748657 0.383331 0.494049 0.749512 0.384430 0.534485 0.750397 0.385590 0.572357 0.751190 0.386658 0.607697 0.752075 0.387817 0.640564 0.752869 0.388916 0.671112 0.753693 0.389984 0.699768 0.754517 0.391113 0.726776 0.755310 0.392151 0.752380 0.756104 0.393280 0.776855 0.756927 0.394379 0.800385 0.757690 0.395416 0.823212 0.758453 0.396454 0.845490 0.759247 0.397522 0.867584 0.759979 0.398529 0.889648 0.760742 0.399567 0.912048 0.761475 0.400604 0.935242 0.762177 0.401550 0.959961 0.762909 0.402588 0.061401 0.767975 0.367035 0.078644 0.768738 0.368195 0.097412 0.769470 0.369324 0.118042 0.770264 0.370514 0.140839 0.770966 0.371674 0.166077 0.771698 0.372803 0.194153 0.772461 0.373993 0.224884 0.773163 0.375061 0.258148 0.773926 0.376312 0.293823 0.774689 0.377441 0.331512 0.775391 0.378540 0.371094 0.776093 0.379730 0.412109 0.776855 0.380890 0.454224 0.777557 0.381989 0.496429 0.778290 0.383118 0.536591 0.779022 0.384247 0.574219 0.779694 0.385406 0.609314 0.780426 0.386505 0.641937 0.781128 0.387665 0.672302 0.781799 0.388702 0.700806 0.782532 0.389862 0.727631 0.783173 0.390869 0.753143 0.783844 0.391937 0.777496 0.784515 0.393036 0.800903 0.785187 0.394104 0.823639 0.785828 0.395172 0.845886 0.786499 0.396240 0.867859 0.787140 0.397186 0.889862 0.787750 0.398224 0.912140 0.788391 0.399261 0.935333 0.788971 0.400208 0.959961 0.789612 0.401184 0.063110 0.796722 0.365753 0.080414 0.797363 0.366943 0.099304 0.797943 0.368103 0.120056 0.798615 0.369293 0.143005 0.799225 0.370422 0.168427 0.799866 0.371582 0.196655 0.800507 0.372772 0.227509 0.801117 0.373901 0.260895 0.801727 0.375092 0.296600 0.802399 0.376312 0.334259 0.802979 0.377441 0.373840 0.803619 0.378601 0.414825 0.804199 0.379700 0.456818 0.804840 0.380859 0.498810 0.805420 0.382019 0.538696 0.806030 0.383148 0.576050 0.806580 0.384216 0.610962 0.807251 0.385376 0.643280 0.807800 0.386475 0.673492 0.808380 0.387573 0.701782 0.808990 0.388672 0.728485 0.809509 0.389740 0.753876 0.810120 0.390808 0.778107 0.810638 0.391846 0.801453 0.811218 0.392914 0.824066 0.811768 0.393951 0.846222 0.812317 0.395020 0.868134 0.812805 0.396057 0.890076 0.813385 0.397003 0.912323 0.813904 0.398010 0.935394 0.814392 0.398926 0.959961 0.814911 0.399933 0.064819 0.823914 0.364685 0.082275 0.824432 0.365875 0.101288 0.825012 0.367065 0.122131 0.825500 0.368256 0.145203 0.826050 0.369415 0.170807 0.826569 0.370575 0.199158 0.827118 0.371765 0.230133 0.827637 0.372925 0.263580 0.828186 0.374146 0.299316 0.828705 0.375305 0.337067 0.829193 0.376434 0.376556 0.829681 0.377594 0.417480 0.830231 0.378784 0.459351 0.830719 0.379852 0.501160 0.831238 0.381012 0.540802 0.831757 0.382172 0.577850 0.832214 0.383301 0.612488 0.832733 0.384399 0.644653 0.833221 0.385498 0.674622 0.833710 0.386536 0.702789 0.834198 0.387634 0.729309 0.834656 0.388702 0.754578 0.835144 0.389801 0.778717 0.835602 0.390839 0.801941 0.836060 0.391876 0.824493 0.836517 0.392883 0.846588 0.836975 0.393951 0.868408 0.837402 0.394958 0.890259 0.837830 0.395874 0.912415 0.838257 0.396851 0.935455 0.838684 0.397827 0.959961 0.839111 0.398712 0.066559 0.849945 0.363800 0.084106 0.850372 0.364990 0.103210 0.850830 0.366150 0.124207 0.851288 0.367340 0.147400 0.851685 0.368500 0.173187 0.852142 0.369720 0.201660 0.852570 0.370941 0.232788 0.853027 0.372131 0.266327 0.853455 0.373291 0.302063 0.853882 0.374451 0.339813 0.854340 0.375549 0.379272 0.854736 0.376740 0.420166 0.855133 0.377899 0.461914 0.855591 0.379028 0.503479 0.855988 0.380157 0.542786 0.856445 0.381256 0.579651 0.856812 0.382385 0.613983 0.857239 0.383484 0.645935 0.857635 0.384552 0.675751 0.858032 0.385620 0.703766 0.858429 0.386749 0.730133 0.858826 0.387787 0.755280 0.859192 0.388855 0.779327 0.859589 0.389893 0.802429 0.859955 0.390900 0.824890 0.860321 0.391876 0.846893 0.860687 0.392883 0.868652 0.861053 0.393829 0.890472 0.861389 0.394867 0.912567 0.861725 0.395721 0.935486 0.862122 0.396667 0.959961 0.862427 0.397552 0.068298 0.875092 0.362976 0.085968 0.875458 0.364197 0.105133 0.875824 0.365356 0.126282 0.876160 0.366577 0.149628 0.876526 0.367767 0.175568 0.876862 0.368927 0.204224 0.877258 0.370117 0.235382 0.877563 0.371246 0.268982 0.877960 0.372437 0.304779 0.878296 0.373657 0.342529 0.878632 0.374817 0.381927 0.878998 0.375946 0.422760 0.879303 0.377106 0.464417 0.879669 0.378235 0.505737 0.880005 0.379333 0.544769 0.880341 0.380402 0.581360 0.880676 0.381561 0.615570 0.881012 0.382629 0.647186 0.881317 0.383698 0.676849 0.881622 0.384827 0.704712 0.881958 0.385834 0.730988 0.882263 0.386902 0.755981 0.882599 0.387939 0.779877 0.882874 0.388947 0.802917 0.883209 0.389923 0.825287 0.883484 0.390930 0.847229 0.883759 0.391846 0.868927 0.884064 0.392822 0.890656 0.884338 0.393738 0.912689 0.884613 0.394623 0.935577 0.884888 0.395538 0.959961 0.885132 0.396393 0.070099 0.899628 0.362244 0.087769 0.899933 0.363434 0.107147 0.900208 0.364655 0.128387 0.900482 0.365845 0.151855 0.900787 0.367004 0.177948 0.901062 0.368195 0.206726 0.901337 0.369415 0.238007 0.901611 0.370544 0.271606 0.901886 0.371765 0.307495 0.902161 0.372925 0.345215 0.902435 0.374054 0.384583 0.902710 0.375183 0.425293 0.902954 0.376312 0.466888 0.903259 0.377441 0.507965 0.903503 0.378540 0.546722 0.903778 0.379669 0.583099 0.904022 0.380737 0.617004 0.904266 0.381775 0.648499 0.904541 0.382874 0.677948 0.904785 0.383942 0.705597 0.905029 0.385010 0.731750 0.905273 0.385986 0.756622 0.905518 0.386963 0.780457 0.905731 0.387970 0.803375 0.905975 0.388947 0.825684 0.906219 0.389893 0.847565 0.906433 0.390808 0.869202 0.906647 0.391754 0.890839 0.906860 0.392609 0.912811 0.907074 0.393494 0.935638 0.907288 0.394379 0.959961 0.907471 0.395233 0.071869 0.923920 0.361542 0.089630 0.924164 0.362671 0.109100 0.924347 0.363922 0.130524 0.924561 0.365112 0.154114 0.924805 0.366272 0.180359 0.924988 0.367462 0.209198 0.925201 0.368622 0.240570 0.925385 0.369843 0.274292 0.925629 0.370972 0.310181 0.925842 0.372192 0.347839 0.926025 0.373322 0.387207 0.926208 0.374390 0.427887 0.926422 0.375519 0.469330 0.926636 0.376617 0.510162 0.926849 0.377747 0.548584 0.927002 0.378815 0.584747 0.927216 0.379883 0.618408 0.927399 0.380981 0.649689 0.927612 0.381958 0.678986 0.927765 0.383057 0.706482 0.927948 0.384064 0.732513 0.928101 0.385040 0.757263 0.928284 0.386017 0.781006 0.928497 0.386932 0.803833 0.928619 0.387939 0.826080 0.928833 0.388824 0.847839 0.928986 0.389709 0.869415 0.929138 0.390656 0.890991 0.929321 0.391510 0.912933 0.929474 0.392273 0.935699 0.929596 0.393127 0.959961 0.929749 0.393982 0.073608 0.948364 0.360779 0.091522 0.948486 0.361969 0.111084 0.948669 0.363159 0.132568 0.948761 0.364349 0.156342 0.948914 0.365509 0.182709 0.949066 0.366760 0.211731 0.949188 0.367889 0.243164 0.949371 0.369019 0.276947 0.949524 0.370209 0.312775 0.949646 0.371307 0.350494 0.949799 0.372467 0.389771 0.949921 0.373535 0.430328 0.950073 0.374664 0.471649 0.950165 0.375763 0.512268 0.950317 0.376862 0.550476 0.950439 0.377899 0.586334 0.950562 0.378967 0.619812 0.950684 0.380005 0.650879 0.950836 0.381012 0.680023 0.950928 0.381989 0.707367 0.951080 0.383057 0.733246 0.951172 0.384003 0.757935 0.951324 0.384918 0.781525 0.951447 0.385864 0.804291 0.951538 0.386780 0.826447 0.951660 0.387665 0.848145 0.951752 0.388519 0.869598 0.951843 0.389374 0.891144 0.951965 0.390198 0.913055 0.952057 0.391052 0.935791 0.952148 0.391785 0.959961 0.952271 0.392578 0.075409 0.973450 0.359924 0.093353 0.973480 0.361115 0.113037 0.973572 0.362305 0.134705 0.973663 0.363495 0.158569 0.973724 0.364685 0.185059 0.973846 0.365845 0.214172 0.973938 0.366974 0.245667 0.973969 0.368103 0.279510 0.974091 0.369293 0.315369 0.974121 0.370361 0.353058 0.974182 0.371490 0.392303 0.974243 0.372650 0.432800 0.974335 0.373627 0.473938 0.974396 0.374756 0.514313 0.974457 0.375854 0.552246 0.974518 0.376862 0.587921 0.974579 0.377899 0.621124 0.974670 0.378906 0.652069 0.974731 0.379944 0.680969 0.974762 0.380890 0.708160 0.974854 0.381836 0.733978 0.974884 0.382782 0.758514 0.974976 0.383728 0.781982 0.975037 0.384583 0.804718 0.975067 0.385437 0.826782 0.975128 0.386322 0.848419 0.975189 0.387177 0.869843 0.975220 0.388031 0.891357 0.975281 0.388763 0.913147 0.975311 0.389526 0.935822 0.975403 0.390289 0.959961 0.975403 0.391022 0.077148 1.000000 0.358856 0.095245 1.000000 0.360016 0.115021 1.000000 0.361176 0.136749 1.000000 0.362427 0.160767 1.000000 0.363556 0.187408 1.000000 0.364716 0.216614 1.000000 0.365814 0.248230 1.000000 0.367004 0.282043 1.000000 0.368103 0.317902 1.000000 0.369202 0.355621 1.000000 0.370300 0.394775 1.000000 0.371429 0.435181 1.000000 0.372467 0.476227 1.000000 0.373566 0.516327 1.000000 0.374603 0.554047 1.000000 0.375580 0.589386 1.000000 0.376587 0.622406 1.000000 0.377594 0.653137 1.000000 0.378571 0.681946 1.000000 0.379517 0.708984 1.000000 0.380402 0.734650 1.000000 0.381348 0.759094 1.000000 0.382202 0.782532 1.000000 0.383057 0.805115 1.000000 0.383881 0.827118 1.000000 0.384766 0.848694 1.000000 0.385529 0.870056 1.000000 0.386322 0.891510 1.000000 0.387085 0.913269 1.000000 0.387817 0.935852 1.000000 0.388519 0.959961 1.000000 0.389160 0.032715 0.002869 0.467682 0.048248 0.003510 0.468231 0.064972 0.004181 0.468750 0.083160 0.004852 0.469360 0.103119 0.005585 0.469971 0.125244 0.006317 0.470612 0.149811 0.007050 0.471161 0.177399 0.007874 0.471832 0.208038 0.008698 0.472534 0.241608 0.009491 0.473236 0.277924 0.010376 0.473938 0.316803 0.011261 0.474640 0.357880 0.012146 0.475403 0.400879 0.013092 0.476166 0.445251 0.014038 0.476929 0.490173 0.015015 0.477722 0.533203 0.015991 0.478516 0.573425 0.016968 0.479370 0.610779 0.018036 0.480133 0.645386 0.019073 0.481018 0.677521 0.020172 0.481812 0.707642 0.021271 0.482727 0.735962 0.022369 0.483582 0.762817 0.023499 0.484497 0.788513 0.024597 0.485382 0.813263 0.025787 0.486267 0.837402 0.026978 0.487183 0.861084 0.028168 0.488098 0.884766 0.029388 0.489044 0.908691 0.030609 0.489960 0.933472 0.031891 0.490936 0.959961 0.033142 0.491882 0.033539 0.019165 0.466766 0.049133 0.019867 0.467407 0.065918 0.020599 0.467957 0.084167 0.021332 0.468567 0.104279 0.022125 0.469208 0.126434 0.022919 0.469879 0.151184 0.023743 0.470520 0.178894 0.024597 0.471252 0.209625 0.025452 0.471954 0.243347 0.026367 0.472687 0.279816 0.027283 0.473419 0.318695 0.028198 0.474121 0.359833 0.029175 0.474945 0.402802 0.030182 0.475769 0.447235 0.031158 0.476501 0.492004 0.032196 0.477356 0.534851 0.033295 0.478119 0.574890 0.034363 0.478943 0.612061 0.035461 0.479828 0.646515 0.036560 0.480682 0.678497 0.037689 0.481567 0.708435 0.038879 0.482422 0.736664 0.040009 0.483337 0.763458 0.041229 0.484222 0.789093 0.042450 0.485168 0.813751 0.043671 0.486053 0.837738 0.044922 0.486969 0.861420 0.046265 0.487915 0.884979 0.047485 0.488800 0.908875 0.048798 0.489777 0.933533 0.050140 0.490753 0.959961 0.051453 0.491730 0.034393 0.036438 0.465912 0.050049 0.037201 0.466522 0.066956 0.038025 0.467133 0.085236 0.038818 0.467773 0.105438 0.039673 0.468445 0.127747 0.040558 0.469177 0.152618 0.041473 0.469849 0.180450 0.042358 0.470581 0.211365 0.043304 0.471283 0.245209 0.044281 0.472046 0.281738 0.045319 0.472839 0.320740 0.046295 0.473602 0.361847 0.047333 0.474396 0.404907 0.048431 0.475189 0.449219 0.049500 0.475983 0.493927 0.050629 0.476837 0.536591 0.051758 0.477692 0.576355 0.052887 0.478516 0.613373 0.054108 0.479431 0.647644 0.055267 0.480255 0.679474 0.056519 0.481110 0.709320 0.057770 0.482025 0.737427 0.058990 0.482971 0.764130 0.060272 0.483795 0.789581 0.061615 0.484802 0.814209 0.062897 0.485687 0.838135 0.064301 0.486603 0.861725 0.065643 0.487610 0.885162 0.066986 0.488525 0.909058 0.068420 0.489502 0.933655 0.069855 0.490448 0.959961 0.071228 0.491425 0.035339 0.054993 0.464905 0.051025 0.055847 0.465546 0.067963 0.056732 0.466217 0.086426 0.057617 0.466919 0.106689 0.058563 0.467621 0.129150 0.059509 0.468353 0.154144 0.060516 0.469025 0.182159 0.061523 0.469757 0.213226 0.062531 0.470551 0.247101 0.063660 0.471283 0.283783 0.064758 0.472107 0.322784 0.065857 0.472870 0.364014 0.066956 0.473724 0.407013 0.068176 0.474548 0.451263 0.069305 0.475342 0.495880 0.070526 0.476196 0.538300 0.071808 0.477051 0.577881 0.073029 0.477905 0.614746 0.074341 0.478821 0.648804 0.075623 0.479675 0.680542 0.076965 0.480560 0.710175 0.078308 0.481476 0.738190 0.079651 0.482361 0.764771 0.081055 0.483337 0.790131 0.082489 0.484222 0.814667 0.083893 0.485138 0.838531 0.085358 0.486053 0.862000 0.086853 0.487091 0.885468 0.088348 0.487946 0.909149 0.089844 0.488922 0.933716 0.091339 0.489838 0.959961 0.092926 0.490875 0.036285 0.075226 0.463806 0.052094 0.076202 0.464478 0.069122 0.077179 0.465210 0.087616 0.078186 0.465851 0.108002 0.079224 0.466583 0.130615 0.080261 0.467285 0.155762 0.081360 0.468079 0.183929 0.082520 0.468842 0.215057 0.083618 0.469574 0.249146 0.084808 0.470398 0.285797 0.086029 0.471191 0.324921 0.087219 0.471954 0.366180 0.088470 0.472839 0.409149 0.089783 0.473694 0.453400 0.091064 0.474518 0.497894 0.092407 0.475403 0.540070 0.093750 0.476196 0.579468 0.095123 0.477142 0.616119 0.096527 0.477997 0.650024 0.097931 0.478882 0.681549 0.099426 0.479797 0.711090 0.100891 0.480743 0.738953 0.102386 0.481567 0.765411 0.103943 0.482544 0.790710 0.105499 0.483429 0.815094 0.106995 0.484375 0.838898 0.108612 0.485291 0.862335 0.110199 0.486237 0.885681 0.111847 0.487183 0.909332 0.113525 0.488129 0.933807 0.115173 0.489044 0.959961 0.116882 0.490051 0.037354 0.097534 0.462494 0.053192 0.098633 0.463196 0.070282 0.099731 0.463928 0.088928 0.100861 0.464630 0.109436 0.102051 0.465393 0.132141 0.103210 0.466125 0.157440 0.104401 0.466858 0.185760 0.105682 0.467651 0.217010 0.106934 0.468445 0.251221 0.108276 0.469208 0.287994 0.109619 0.470062 0.327179 0.110931 0.470886 0.368439 0.112335 0.471741 0.411407 0.113739 0.472595 0.455627 0.115204 0.473419 0.499908 0.116669 0.474243 0.541901 0.118134 0.475128 0.581085 0.119690 0.476044 0.617493 0.121216 0.476929 0.651215 0.122772 0.477783 0.682617 0.124390 0.478729 0.712006 0.126007 0.479614 0.739746 0.127655 0.480530 0.766052 0.129333 0.481476 0.791290 0.131073 0.482361 0.815613 0.132751 0.483307 0.839294 0.134491 0.484222 0.862640 0.136230 0.485138 0.885895 0.138031 0.486084 0.909485 0.139832 0.487000 0.933868 0.141632 0.487946 0.959961 0.143494 0.488861 0.038422 0.122437 0.460938 0.054352 0.123657 0.461609 0.071533 0.124908 0.462311 0.090271 0.126160 0.463104 0.110870 0.127472 0.463837 0.133728 0.128815 0.464661 0.159180 0.130188 0.465424 0.187653 0.131592 0.466156 0.219086 0.132996 0.466949 0.253357 0.134460 0.467773 0.290192 0.135956 0.468658 0.329437 0.137451 0.469421 0.370758 0.138977 0.470306 0.413696 0.140564 0.471130 0.457855 0.142181 0.472015 0.502014 0.143829 0.472900 0.543762 0.145447 0.473694 0.582703 0.147125 0.474609 0.618896 0.148865 0.475464 0.652435 0.150574 0.476379 0.683655 0.152374 0.477264 0.712952 0.154175 0.478210 0.740540 0.155945 0.479095 0.766754 0.157776 0.480042 0.791840 0.159668 0.480896 0.816071 0.161591 0.481812 0.839691 0.163483 0.482727 0.862946 0.165375 0.483612 0.886139 0.167358 0.484528 0.909668 0.169342 0.485474 0.933990 0.171326 0.486359 0.959961 0.173401 0.487305 0.039551 0.150452 0.458984 0.055573 0.151855 0.459778 0.072815 0.153168 0.460480 0.091705 0.154633 0.461243 0.112396 0.156097 0.462036 0.135376 0.157593 0.462738 0.160980 0.159149 0.463531 0.189606 0.160736 0.464355 0.221191 0.162292 0.465149 0.255554 0.163971 0.465973 0.292542 0.165619 0.466827 0.331787 0.167267 0.467651 0.373077 0.169006 0.468475 0.416016 0.170715 0.469299 0.460114 0.172546 0.470184 0.504089 0.174347 0.471069 0.545593 0.176178 0.471893 0.584320 0.178040 0.472809 0.620331 0.179993 0.473663 0.653687 0.181854 0.474548 0.684753 0.183838 0.475464 0.713837 0.185822 0.476318 0.741333 0.187775 0.477234 0.767426 0.189819 0.478149 0.792419 0.191833 0.479034 0.816589 0.193909 0.479919 0.840088 0.196045 0.480804 0.863281 0.198120 0.481689 0.886414 0.200256 0.482605 0.909851 0.202393 0.483490 0.934082 0.204590 0.484344 0.959961 0.206726 0.485229 0.040771 0.182098 0.456665 0.056824 0.183655 0.457397 0.074188 0.185242 0.458160 0.093170 0.186829 0.458954 0.114014 0.188507 0.459717 0.137146 0.190155 0.460510 0.162903 0.191895 0.461273 0.191681 0.193665 0.462097 0.223358 0.195404 0.462921 0.257874 0.197205 0.463745 0.294861 0.199005 0.464539 0.334198 0.200897 0.465393 0.375519 0.202820 0.466217 0.418427 0.204681 0.467102 0.462463 0.206665 0.467896 0.506256 0.208679 0.468781 0.547485 0.210663 0.469604 0.585999 0.212738 0.470520 0.621765 0.214783 0.471344 0.654938 0.216858 0.472229 0.685822 0.218994 0.473175 0.714752 0.221069 0.473999 0.742126 0.223236 0.474884 0.768066 0.225433 0.475800 0.792999 0.227631 0.476624 0.817047 0.229858 0.477539 0.840485 0.232117 0.478394 0.863586 0.234314 0.479279 0.886658 0.236603 0.480194 0.909943 0.238922 0.481018 0.934143 0.241150 0.481934 0.959961 0.243500 0.482788 0.042023 0.217712 0.453918 0.058136 0.219421 0.454681 0.075592 0.221130 0.455444 0.094696 0.222900 0.456207 0.115662 0.224762 0.457001 0.138885 0.226532 0.457794 0.164856 0.228424 0.458557 0.193787 0.230347 0.459381 0.225616 0.232269 0.460205 0.260193 0.234192 0.460999 0.297302 0.236206 0.461853 0.336700 0.238251 0.462677 0.377991 0.240295 0.463531 0.420868 0.242340 0.464386 0.464813 0.244446 0.465240 0.508362 0.246613 0.466095 0.549377 0.248718 0.466888 0.587708 0.250916 0.467804 0.623260 0.253143 0.468658 0.656158 0.255310 0.469513 0.686920 0.257538 0.470428 0.715729 0.259796 0.471252 0.742920 0.262085 0.472168 0.768799 0.264374 0.472992 0.793579 0.266663 0.473846 0.817535 0.269012 0.474701 0.840912 0.271362 0.475616 0.863922 0.273682 0.476471 0.886871 0.276093 0.477356 0.910156 0.278442 0.478180 0.934235 0.280823 0.479065 0.959961 0.283203 0.479919 0.043304 0.256989 0.450745 0.059509 0.258850 0.451447 0.077057 0.260651 0.452301 0.096222 0.262604 0.453094 0.117371 0.264557 0.453827 0.140778 0.266510 0.454651 0.166870 0.268524 0.455444 0.195892 0.270538 0.456268 0.227905 0.272614 0.457092 0.262573 0.274689 0.457947 0.299744 0.276764 0.458710 0.339172 0.278931 0.459595 0.380493 0.281128 0.460419 0.423370 0.283234 0.461243 0.467194 0.285522 0.462128 0.510529 0.287750 0.462982 0.551361 0.289978 0.463837 0.589386 0.292267 0.464691 0.624725 0.294556 0.465546 0.657440 0.296844 0.466400 0.688019 0.299194 0.467316 0.716675 0.301544 0.468109 0.743744 0.303894 0.468994 0.769501 0.306305 0.469818 0.794189 0.308655 0.470703 0.818024 0.311005 0.471588 0.841278 0.313477 0.472412 0.864258 0.315887 0.473297 0.887146 0.318298 0.474091 0.910339 0.320709 0.474976 0.934296 0.323181 0.475861 0.959961 0.325623 0.476654 0.044617 0.299622 0.447205 0.060944 0.301605 0.447968 0.078583 0.303528 0.448730 0.097839 0.305603 0.449554 0.119110 0.307678 0.450317 0.142670 0.309692 0.451172 0.168945 0.311768 0.451996 0.198151 0.313843 0.452759 0.230255 0.316040 0.453613 0.265076 0.318207 0.454407 0.302307 0.320404 0.455261 0.341736 0.322632 0.456116 0.383057 0.324860 0.456970 0.425873 0.327148 0.457825 0.469666 0.329437 0.458679 0.512756 0.331757 0.459564 0.553314 0.334045 0.460388 0.591095 0.336395 0.461243 0.626190 0.338654 0.462097 0.658752 0.341034 0.462982 0.689087 0.343506 0.463837 0.717590 0.345795 0.464630 0.744537 0.348206 0.465546 0.770203 0.350708 0.466339 0.794769 0.353058 0.467224 0.818512 0.355530 0.468109 0.841705 0.358002 0.468933 0.864532 0.360413 0.469788 0.887329 0.362854 0.470612 0.910492 0.365234 0.471497 0.934387 0.367767 0.472290 0.959961 0.370239 0.473145 0.046021 0.345184 0.443329 0.062408 0.347290 0.444061 0.080109 0.349243 0.444885 0.099518 0.351379 0.445709 0.120880 0.353394 0.446533 0.144592 0.355591 0.447357 0.171021 0.357758 0.448120 0.200439 0.359924 0.448944 0.232666 0.362152 0.449829 0.267578 0.364380 0.450653 0.304840 0.366547 0.451538 0.344330 0.368835 0.452362 0.385681 0.371124 0.453247 0.428436 0.373444 0.454071 0.472107 0.375763 0.454956 0.514984 0.378021 0.455750 0.555267 0.380402 0.456635 0.592834 0.382782 0.457520 0.627655 0.385162 0.458344 0.660034 0.387512 0.459198 0.690216 0.389954 0.460114 0.718567 0.392273 0.460907 0.745361 0.394684 0.461731 0.770874 0.397156 0.462708 0.795349 0.399567 0.463470 0.819031 0.401978 0.464355 0.842102 0.404419 0.465179 0.864899 0.406830 0.466064 0.887573 0.409271 0.466858 0.910645 0.411591 0.467682 0.934509 0.414062 0.468536 0.959961 0.416534 0.469330 0.047424 0.393188 0.439178 0.063904 0.395294 0.439972 0.081696 0.397308 0.440765 0.101257 0.399475 0.441589 0.122711 0.401611 0.442413 0.146637 0.403717 0.443268 0.173218 0.405975 0.444061 0.202759 0.408081 0.444916 0.235138 0.410370 0.445770 0.270111 0.412567 0.446594 0.307465 0.414764 0.447479 0.347015 0.417084 0.448395 0.388306 0.419373 0.449249 0.431030 0.421631 0.450104 0.474640 0.423981 0.450989 0.517181 0.426239 0.451843 0.557220 0.428589 0.452698 0.594543 0.430969 0.453552 0.629150 0.433258 0.454376 0.661285 0.435638 0.455292 0.691315 0.438019 0.456116 0.719513 0.440338 0.457031 0.746155 0.442749 0.457886 0.771576 0.445099 0.458771 0.795929 0.447479 0.459564 0.819519 0.449860 0.460358 0.842529 0.452179 0.461273 0.865173 0.454590 0.462097 0.887878 0.456970 0.462952 0.910767 0.459320 0.463745 0.934570 0.461670 0.464569 0.959961 0.464020 0.465363 0.048859 0.443024 0.434784 0.065430 0.445038 0.435638 0.083374 0.447144 0.436432 0.102966 0.449280 0.437286 0.124634 0.451385 0.438141 0.148682 0.453552 0.438965 0.175476 0.455750 0.439819 0.205139 0.457886 0.440674 0.237640 0.460083 0.441589 0.272736 0.462341 0.442413 0.310120 0.464478 0.443298 0.349640 0.466736 0.444214 0.390930 0.468933 0.445068 0.433655 0.471161 0.445953 0.477081 0.473419 0.446838 0.519440 0.475677 0.447693 0.559235 0.477936 0.448578 0.596222 0.480255 0.449463 0.630615 0.482452 0.450317 0.662567 0.484711 0.451202 0.692413 0.487000 0.452087 0.720459 0.489258 0.452911 0.747009 0.491547 0.453827 0.772278 0.493835 0.454651 0.796509 0.496033 0.455475 0.820007 0.498291 0.456360 0.842926 0.500519 0.457275 0.865509 0.502808 0.458038 0.888062 0.505005 0.458893 0.910980 0.507202 0.459717 0.934692 0.509399 0.460571 0.959961 0.511627 0.461395 0.050385 0.493896 0.430359 0.066986 0.495850 0.431213 0.085052 0.497864 0.432098 0.104797 0.499939 0.432922 0.126617 0.501984 0.433807 0.150787 0.503998 0.434692 0.177734 0.506073 0.435577 0.207550 0.508087 0.436462 0.240173 0.510223 0.437347 0.275360 0.512268 0.438202 0.312805 0.514343 0.439178 0.352325 0.516449 0.440063 0.393585 0.518494 0.440887 0.436279 0.520599 0.441803 0.479614 0.522644 0.442749 0.521667 0.524658 0.443665 0.561157 0.526733 0.444519 0.597992 0.528900 0.445435 0.632141 0.530853 0.446320 0.663879 0.532898 0.447235 0.693512 0.535034 0.448090 0.721405 0.537018 0.448975 0.747833 0.539062 0.449890 0.772980 0.541016 0.450775 0.797119 0.543030 0.451660 0.820465 0.545013 0.452545 0.843292 0.546967 0.453400 0.865814 0.548920 0.454315 0.888306 0.550903 0.455109 0.911133 0.552795 0.455994 0.934784 0.554749 0.456879 0.959961 0.556671 0.457764 0.051910 0.543304 0.426147 0.068604 0.545105 0.427032 0.086761 0.546936 0.427948 0.106628 0.548767 0.428833 0.128571 0.550507 0.429779 0.152924 0.552338 0.430664 0.180084 0.554199 0.431610 0.210022 0.555969 0.432495 0.242737 0.557861 0.433441 0.277985 0.559692 0.434418 0.315552 0.561493 0.435272 0.355072 0.563354 0.436218 0.396301 0.565125 0.437195 0.438904 0.566986 0.438080 0.482117 0.568787 0.439026 0.523865 0.570587 0.440002 0.563110 0.572388 0.440887 0.599670 0.574249 0.441803 0.633575 0.575989 0.442749 0.665131 0.577789 0.443695 0.694611 0.579620 0.444580 0.722351 0.581360 0.445496 0.748627 0.583099 0.446411 0.773651 0.584869 0.447357 0.797668 0.586609 0.448212 0.820923 0.588318 0.449127 0.843689 0.590057 0.450012 0.866119 0.591736 0.450958 0.888580 0.593414 0.451843 0.911285 0.595123 0.452698 0.934845 0.596771 0.453552 0.959961 0.598419 0.454437 0.053467 0.589081 0.422424 0.070282 0.590607 0.423370 0.088531 0.592224 0.424255 0.108551 0.593811 0.425293 0.130615 0.595428 0.426239 0.155151 0.597015 0.427124 0.182404 0.598602 0.428101 0.212524 0.600159 0.429077 0.245392 0.601807 0.430054 0.280640 0.603424 0.431030 0.318207 0.604950 0.431915 0.357788 0.606598 0.432892 0.399048 0.608124 0.433868 0.441559 0.609741 0.434814 0.484619 0.611328 0.435791 0.526123 0.612885 0.436768 0.565094 0.614471 0.437683 0.601379 0.616028 0.438690 0.635071 0.617584 0.439636 0.666382 0.619141 0.440582 0.695709 0.620728 0.441528 0.723267 0.622192 0.442444 0.749420 0.623749 0.443390 0.774292 0.625244 0.444305 0.798279 0.626709 0.445221 0.821442 0.628235 0.446167 0.844055 0.629669 0.447113 0.866455 0.631134 0.448029 0.888794 0.632599 0.448914 0.911469 0.634003 0.449768 0.934967 0.635468 0.450623 0.959961 0.636841 0.451538 0.055084 0.631134 0.419220 0.071930 0.632477 0.420197 0.090302 0.633911 0.421143 0.110474 0.635284 0.422150 0.132660 0.636658 0.423126 0.157349 0.638031 0.424133 0.184784 0.639435 0.425079 0.215057 0.640778 0.426117 0.247986 0.642212 0.427094 0.283356 0.643524 0.428070 0.320953 0.644897 0.429016 0.360535 0.646271 0.430054 0.401733 0.647644 0.431061 0.444214 0.649017 0.432007 0.487091 0.650391 0.432983 0.528320 0.651703 0.433990 0.566986 0.653076 0.434998 0.603088 0.654419 0.435944 0.636475 0.655731 0.436890 0.667664 0.657074 0.437866 0.696777 0.658386 0.438843 0.724213 0.659698 0.439758 0.750214 0.660980 0.440765 0.774994 0.662262 0.441711 0.798828 0.663513 0.442627 0.821899 0.664795 0.443573 0.844482 0.666046 0.444458 0.866699 0.667297 0.445435 0.889008 0.668579 0.446320 0.911621 0.669739 0.447235 0.935028 0.670959 0.448059 0.959961 0.672150 0.448975 0.056702 0.669647 0.416504 0.073669 0.670837 0.417511 0.092133 0.672028 0.418549 0.112396 0.673248 0.419556 0.134766 0.674408 0.420502 0.159607 0.675598 0.421539 0.187225 0.676758 0.422577 0.217621 0.677979 0.423615 0.250641 0.679138 0.424591 0.286102 0.680298 0.425598 0.323730 0.681488 0.426575 0.363312 0.682648 0.427643 0.404449 0.683838 0.428619 0.446838 0.684998 0.429626 0.489594 0.686188 0.430634 0.530548 0.687286 0.431641 0.568909 0.688446 0.432648 0.604736 0.689606 0.433655 0.637970 0.690765 0.434601 0.668884 0.691864 0.435577 0.697815 0.692993 0.436554 0.725128 0.694092 0.437500 0.750977 0.695190 0.438477 0.775635 0.696320 0.439423 0.799347 0.697388 0.440399 0.822357 0.698456 0.441315 0.844818 0.699524 0.442261 0.867035 0.700592 0.443146 0.889252 0.701660 0.444092 0.911774 0.702667 0.444946 0.935120 0.703705 0.445862 0.959961 0.704681 0.446747 0.058350 0.705017 0.414185 0.075409 0.706055 0.415222 0.093994 0.707062 0.416229 0.114380 0.708069 0.417267 0.136902 0.709106 0.418304 0.161896 0.710144 0.419403 0.189636 0.711121 0.420380 0.220184 0.712128 0.421448 0.253326 0.713165 0.422455 0.288818 0.714172 0.423431 0.326508 0.715179 0.424469 0.366119 0.716156 0.425568 0.407227 0.717133 0.426575 0.449493 0.718140 0.427582 0.492065 0.719147 0.428589 0.532715 0.720123 0.429657 0.570831 0.721130 0.430634 0.606415 0.722107 0.431641 0.639374 0.723083 0.432617 0.670105 0.724060 0.433563 0.698914 0.724976 0.434601 0.726013 0.725952 0.435547 0.751770 0.726898 0.436493 0.776337 0.727814 0.437469 0.799957 0.728760 0.438385 0.822815 0.729645 0.439392 0.845215 0.730560 0.440247 0.867371 0.731415 0.441223 0.889465 0.732361 0.442108 0.911957 0.733215 0.442963 0.935181 0.734100 0.443939 0.959961 0.734894 0.444733 0.060028 0.737732 0.412231 0.077179 0.738617 0.413269 0.095886 0.739502 0.414337 0.116364 0.740356 0.415375 0.139008 0.741241 0.416443 0.164246 0.742096 0.417480 0.192108 0.742981 0.418549 0.222809 0.743835 0.419586 0.256012 0.744720 0.420624 0.291565 0.745575 0.421722 0.329285 0.746429 0.422760 0.368835 0.747284 0.423798 0.409912 0.748138 0.424774 0.452087 0.748993 0.425873 0.494446 0.749847 0.426910 0.534851 0.750671 0.427887 0.572723 0.751495 0.428864 0.608032 0.752319 0.429871 0.640808 0.753174 0.430908 0.671326 0.753998 0.431915 0.699921 0.754761 0.432831 0.726929 0.755615 0.433807 0.752533 0.756409 0.434814 0.776947 0.757172 0.435730 0.800507 0.757965 0.436676 0.823303 0.758789 0.437653 0.845581 0.759521 0.438507 0.867615 0.760254 0.439453 0.889648 0.761017 0.440399 0.912048 0.761749 0.441254 0.935242 0.762482 0.442200 0.959961 0.763184 0.443024 0.061737 0.768280 0.410583 0.078949 0.769012 0.411621 0.097748 0.769775 0.412689 0.118378 0.770477 0.413757 0.141174 0.771240 0.414856 0.166534 0.771973 0.415863 0.194580 0.772705 0.416931 0.225403 0.773468 0.418030 0.258698 0.774231 0.419098 0.294342 0.774933 0.420105 0.332062 0.775635 0.421173 0.371582 0.776398 0.422241 0.412598 0.777130 0.423248 0.454712 0.777832 0.424316 0.496826 0.778564 0.425293 0.536957 0.779266 0.426361 0.574585 0.779999 0.427338 0.609589 0.780670 0.428345 0.642151 0.781372 0.429352 0.672546 0.782074 0.430328 0.700989 0.782745 0.431366 0.727783 0.783447 0.432281 0.753265 0.784119 0.433258 0.777588 0.784760 0.434204 0.801025 0.785431 0.435150 0.823700 0.786102 0.436066 0.845947 0.786713 0.437042 0.867920 0.787384 0.437897 0.889893 0.787994 0.438812 0.912201 0.788605 0.439697 0.935333 0.789246 0.440552 0.959961 0.789825 0.441406 0.063416 0.796967 0.409149 0.080811 0.797577 0.410187 0.099701 0.798218 0.411316 0.120453 0.798828 0.412354 0.143372 0.799438 0.413452 0.168915 0.800110 0.414520 0.197113 0.800751 0.415619 0.228027 0.801331 0.416687 0.261444 0.801971 0.417755 0.297119 0.802612 0.418793 0.334839 0.803223 0.419830 0.374359 0.803833 0.420929 0.415314 0.804413 0.421875 0.457306 0.805054 0.422974 0.499237 0.805634 0.423981 0.539062 0.806244 0.425018 0.576416 0.806885 0.426025 0.611206 0.807434 0.426971 0.643524 0.808014 0.427979 0.673676 0.808594 0.428986 0.701965 0.809174 0.429962 0.728668 0.809753 0.430939 0.753998 0.810333 0.431854 0.778168 0.810852 0.432831 0.801544 0.811462 0.433807 0.824158 0.811951 0.434662 0.846252 0.812500 0.435577 0.868195 0.813049 0.436523 0.890076 0.813568 0.437347 0.912323 0.814087 0.438202 0.935394 0.814545 0.439056 0.959961 0.815094 0.439880 0.065155 0.824097 0.407898 0.082581 0.824646 0.408966 0.101593 0.825195 0.410065 0.122498 0.825684 0.411163 0.145630 0.826233 0.412262 0.171295 0.826782 0.413330 0.199646 0.827301 0.414368 0.230652 0.827850 0.415497 0.264130 0.828369 0.416534 0.299835 0.828888 0.417572 0.337616 0.829346 0.418640 0.377045 0.829895 0.419678 0.417938 0.830414 0.420715 0.459869 0.830902 0.421753 0.501556 0.831421 0.422760 0.541138 0.831970 0.423767 0.578247 0.832397 0.424774 0.612793 0.832886 0.425781 0.644867 0.833435 0.426819 0.674835 0.833893 0.427795 0.702942 0.834351 0.428711 0.729492 0.834839 0.429718 0.754730 0.835327 0.430634 0.778839 0.835785 0.431580 0.802063 0.836212 0.432495 0.824585 0.836670 0.433411 0.846649 0.837128 0.434265 0.868469 0.837555 0.435150 0.890289 0.838013 0.435974 0.912476 0.838409 0.436859 0.935455 0.838837 0.437714 0.959961 0.839233 0.438477 0.066895 0.850098 0.406799 0.084442 0.850555 0.407867 0.103577 0.850983 0.408997 0.124603 0.851440 0.410065 0.147827 0.851898 0.411163 0.173645 0.852325 0.412323 0.202148 0.852783 0.413361 0.233246 0.853210 0.414429 0.266785 0.853638 0.415466 0.302551 0.854065 0.416504 0.340332 0.854492 0.417542 0.379791 0.854889 0.418610 0.420593 0.855316 0.419617 0.462433 0.855743 0.420654 0.503876 0.856140 0.421661 0.543182 0.856567 0.422699 0.579956 0.856995 0.423737 0.614288 0.857361 0.424683 0.646240 0.857788 0.425659 0.675964 0.858185 0.426666 0.703918 0.858582 0.427582 0.730347 0.858978 0.428497 0.755463 0.859314 0.429474 0.779419 0.859711 0.430328 0.802551 0.860107 0.431244 0.824982 0.860443 0.432159 0.846954 0.860840 0.433014 0.868744 0.861176 0.433868 0.890503 0.861542 0.434723 0.912598 0.861877 0.435516 0.935516 0.862213 0.436371 0.959961 0.862549 0.437103 0.068665 0.875214 0.405823 0.086273 0.875580 0.406921 0.105530 0.875946 0.407990 0.126709 0.876282 0.409119 0.150055 0.876648 0.410187 0.176025 0.876984 0.411316 0.204651 0.877380 0.412354 0.235870 0.877716 0.413391 0.269470 0.878082 0.414459 0.305267 0.878418 0.415527 0.343018 0.878784 0.416565 0.382416 0.879089 0.417603 0.423248 0.879486 0.418610 0.464844 0.879791 0.419678 0.506134 0.880096 0.420624 0.545135 0.880463 0.421631 0.581726 0.880768 0.422638 0.615753 0.881134 0.423584 0.647461 0.881409 0.424591 0.677094 0.881775 0.425507 0.704895 0.882080 0.426453 0.731140 0.882355 0.427368 0.756104 0.882690 0.428253 0.779999 0.882996 0.429199 0.803009 0.883301 0.430084 0.825378 0.883575 0.430939 0.847290 0.883881 0.431793 0.868958 0.884186 0.432617 0.890686 0.884430 0.433472 0.912750 0.884705 0.434235 0.935577 0.885010 0.434998 0.959961 0.885254 0.435730 0.070435 0.899750 0.404877 0.088135 0.900024 0.406006 0.107513 0.900330 0.407104 0.128784 0.900574 0.408173 0.152313 0.900909 0.409271 0.178436 0.901154 0.410370 0.207184 0.901428 0.411438 0.238464 0.901703 0.412445 0.272125 0.901978 0.413483 0.307983 0.902252 0.414551 0.345703 0.902527 0.415619 0.385071 0.902802 0.416626 0.425812 0.903046 0.417633 0.467316 0.903381 0.418610 0.508331 0.903625 0.419647 0.547089 0.903900 0.420593 0.583405 0.904114 0.421631 0.617218 0.904419 0.422516 0.648712 0.904633 0.423523 0.678131 0.904846 0.424438 0.705750 0.905121 0.425354 0.731934 0.905334 0.426300 0.756775 0.905609 0.427124 0.780579 0.905823 0.428040 0.803497 0.906097 0.428925 0.825745 0.906281 0.429718 0.847595 0.906525 0.430542 0.869232 0.906708 0.431335 0.890839 0.906952 0.432129 0.912842 0.907166 0.432892 0.935669 0.907349 0.433685 0.959961 0.907593 0.434357 0.072144 0.924011 0.403992 0.089996 0.924225 0.405060 0.109497 0.924438 0.406219 0.130859 0.924622 0.407288 0.154541 0.924896 0.408325 0.180786 0.925079 0.409393 0.209625 0.925293 0.410461 0.241089 0.925507 0.411530 0.274750 0.925690 0.412537 0.310608 0.925903 0.413544 0.348419 0.926086 0.414642 0.387695 0.926300 0.415619 0.428314 0.926544 0.416626 0.469757 0.926697 0.417633 0.510498 0.926910 0.418640 0.548981 0.927063 0.419556 0.585052 0.927277 0.420563 0.618622 0.927490 0.421478 0.649933 0.927673 0.422394 0.679199 0.927826 0.423279 0.706635 0.928009 0.424194 0.732666 0.928192 0.425110 0.757385 0.928345 0.425964 0.781097 0.928528 0.426758 0.803955 0.928741 0.427643 0.826111 0.928864 0.428436 0.847900 0.929047 0.429260 0.869476 0.929230 0.429993 0.891022 0.929382 0.430847 0.912994 0.929504 0.431519 0.935699 0.929657 0.432251 0.959961 0.929779 0.432953 0.073975 0.948425 0.403015 0.091858 0.948578 0.404083 0.111450 0.948700 0.405151 0.132965 0.948853 0.406250 0.156799 0.948975 0.407318 0.183136 0.949127 0.408386 0.212158 0.949249 0.409454 0.243622 0.949402 0.410492 0.277405 0.949554 0.411560 0.313293 0.949707 0.412567 0.351013 0.949860 0.413574 0.390289 0.949982 0.414581 0.430786 0.950104 0.415527 0.472107 0.950256 0.416504 0.512604 0.950348 0.417480 0.550873 0.950470 0.418488 0.586670 0.950592 0.419373 0.620026 0.950714 0.420288 0.651123 0.950867 0.421173 0.680145 0.950989 0.422058 0.707520 0.951141 0.422974 0.733398 0.951233 0.423828 0.758057 0.951355 0.424683 0.781616 0.951477 0.425507 0.804352 0.951569 0.426270 0.826477 0.951691 0.427063 0.848206 0.951782 0.427856 0.869629 0.951874 0.428589 0.891174 0.951996 0.429321 0.913086 0.952087 0.430054 0.935791 0.952209 0.430725 0.959961 0.952301 0.431427 0.075714 0.973480 0.401917 0.093750 0.973511 0.403015 0.113403 0.973633 0.404114 0.135040 0.973694 0.405182 0.159027 0.973785 0.406281 0.185486 0.973846 0.407257 0.214600 0.973969 0.408356 0.246185 0.973999 0.409363 0.279938 0.974091 0.410370 0.315826 0.974152 0.411407 0.353577 0.974213 0.412415 0.392761 0.974304 0.413330 0.433197 0.974365 0.414337 0.474396 0.974396 0.415314 0.514679 0.974457 0.416290 0.552673 0.974548 0.417175 0.588196 0.974609 0.418060 0.621399 0.974670 0.418945 0.652283 0.974731 0.419922 0.681152 0.974823 0.420715 0.708344 0.974854 0.421600 0.734131 0.974915 0.422424 0.758606 0.974976 0.423218 0.782104 0.975037 0.424011 0.804810 0.975067 0.424835 0.826843 0.975128 0.425568 0.848480 0.975189 0.426331 0.869904 0.975250 0.427002 0.891357 0.975281 0.427734 0.913208 0.975311 0.428436 0.935822 0.975403 0.429016 0.959961 0.975433 0.429688 0.077484 1.000000 0.400635 0.095581 1.000000 0.401733 0.115326 1.000000 0.402802 0.137146 1.000000 0.403870 0.161255 1.000000 0.404907 0.187836 1.000000 0.405945 0.217041 1.000000 0.406982 0.248688 1.000000 0.408051 0.282501 1.000000 0.409027 0.318359 1.000000 0.410004 0.356079 1.000000 0.411011 0.395203 1.000000 0.411926 0.435638 1.000000 0.412903 0.476624 1.000000 0.413849 0.516663 1.000000 0.414764 0.554352 1.000000 0.415649 0.589661 1.000000 0.416595 0.622681 1.000000 0.417419 0.653351 1.000000 0.418335 0.682098 1.000000 0.419098 0.709137 1.000000 0.419952 0.734772 1.000000 0.420746 0.759155 1.000000 0.421539 0.782593 1.000000 0.422272 0.805206 1.000000 0.423065 0.827148 1.000000 0.423737 0.848755 1.000000 0.424530 0.870087 1.000000 0.425201 0.891541 1.000000 0.425812 0.913300 1.000000 0.426483 0.935883 1.000000 0.427124 0.959961 1.000000 0.427704 0.032898 0.003082 0.513428 0.048431 0.003723 0.513916 0.065155 0.004395 0.514435 0.083344 0.005127 0.514954 0.103363 0.005829 0.515533 0.125488 0.006592 0.516113 0.150055 0.007385 0.516724 0.177612 0.008148 0.517242 0.208282 0.008972 0.517883 0.241943 0.009827 0.518524 0.278290 0.010681 0.519226 0.317169 0.011597 0.519836 0.358246 0.012512 0.520538 0.401215 0.013428 0.521210 0.445648 0.014374 0.521912 0.490540 0.015381 0.522614 0.533508 0.016357 0.523285 0.573700 0.017395 0.524078 0.611023 0.018402 0.524811 0.645599 0.019501 0.525543 0.677734 0.020538 0.526367 0.707764 0.021637 0.527100 0.736084 0.022766 0.527863 0.762939 0.023926 0.528656 0.788635 0.025024 0.529419 0.813354 0.026215 0.530273 0.837463 0.027435 0.531097 0.861145 0.028595 0.531891 0.884796 0.029846 0.532715 0.908752 0.031036 0.533508 0.933472 0.032349 0.534363 0.959961 0.033630 0.535217 0.033691 0.019440 0.512482 0.049316 0.020142 0.512970 0.066071 0.020844 0.513550 0.084381 0.021637 0.514130 0.104431 0.022400 0.514679 0.126709 0.023224 0.515289 0.151459 0.024048 0.515930 0.179138 0.024902 0.516510 0.209961 0.025787 0.517212 0.243683 0.026733 0.517853 0.280151 0.027649 0.518524 0.319122 0.028564 0.519226 0.360260 0.029572 0.519928 0.403229 0.030579 0.520630 0.447571 0.031586 0.521332 0.492371 0.032593 0.522064 0.535126 0.033661 0.522827 0.575195 0.034760 0.523560 0.612335 0.035828 0.524323 0.646698 0.036987 0.525085 0.678711 0.038147 0.525818 0.708618 0.039276 0.526642 0.736816 0.040497 0.527435 0.763550 0.041687 0.528259 0.789124 0.042908 0.528992 0.813843 0.044159 0.529846 0.837830 0.045410 0.530670 0.861481 0.046692 0.531464 0.885010 0.047974 0.532318 0.908905 0.049286 0.533142 0.933533 0.050598 0.533966 0.959961 0.052002 0.534821 0.034576 0.036713 0.511444 0.050201 0.037506 0.512054 0.067108 0.038300 0.512573 0.085480 0.039154 0.513214 0.105682 0.039978 0.513794 0.128021 0.040863 0.514435 0.152924 0.041779 0.515137 0.180756 0.042694 0.515747 0.211731 0.043671 0.516388 0.245544 0.044647 0.517120 0.282074 0.045624 0.517792 0.321075 0.046692 0.518463 0.362274 0.047729 0.519226 0.405243 0.048798 0.519928 0.449554 0.049927 0.520660 0.494263 0.050995 0.521423 0.536896 0.052155 0.522156 0.576630 0.053345 0.522949 0.613617 0.054504 0.523682 0.647888 0.055725 0.524445 0.679688 0.056976 0.525269 0.709473 0.058167 0.526062 0.737579 0.059479 0.526825 0.764221 0.060791 0.527679 0.789703 0.062073 0.528473 0.814270 0.063416 0.529266 0.838196 0.064758 0.530060 0.861755 0.066132 0.530914 0.885223 0.067535 0.531769 0.909088 0.068909 0.532593 0.933655 0.070374 0.533417 0.959961 0.071808 0.534241 0.035492 0.055298 0.510376 0.051208 0.056152 0.510925 0.068176 0.057068 0.511566 0.086670 0.057983 0.512207 0.106934 0.058929 0.512817 0.129395 0.059875 0.513519 0.154510 0.060883 0.514160 0.182495 0.061890 0.514832 0.213501 0.062958 0.515503 0.247498 0.064026 0.516174 0.284119 0.065125 0.516937 0.323181 0.066223 0.517670 0.364410 0.067413 0.518341 0.407379 0.068573 0.519104 0.451691 0.069763 0.519867 0.496246 0.070953 0.520630 0.538635 0.072235 0.521332 0.578247 0.073517 0.522125 0.614990 0.074799 0.522888 0.649017 0.076111 0.523743 0.680725 0.077423 0.524475 0.710358 0.078766 0.525269 0.738312 0.080170 0.526123 0.764862 0.081573 0.526917 0.790253 0.082977 0.527679 0.814728 0.084442 0.528534 0.838623 0.085876 0.529358 0.862061 0.087372 0.530182 0.885468 0.088898 0.530975 0.909180 0.090393 0.531769 0.933746 0.091949 0.532654 0.959961 0.093506 0.533417 0.036499 0.075592 0.509125 0.052307 0.076508 0.509766 0.069275 0.077515 0.510376 0.087891 0.078552 0.511047 0.108276 0.079590 0.511658 0.130890 0.080688 0.512390 0.156128 0.081787 0.513062 0.184235 0.082916 0.513702 0.215485 0.084045 0.514404 0.249542 0.085266 0.515106 0.286224 0.086456 0.515869 0.325348 0.087677 0.516632 0.366577 0.088928 0.517365 0.409546 0.090240 0.518036 0.453857 0.091583 0.518799 0.498199 0.092896 0.519592 0.540405 0.094238 0.520355 0.579803 0.095673 0.521179 0.616333 0.097076 0.521912 0.650238 0.098511 0.522675 0.681763 0.100006 0.523468 0.711243 0.101440 0.524292 0.739075 0.102966 0.525085 0.765503 0.104431 0.525879 0.790802 0.106018 0.526703 0.815186 0.107635 0.527496 0.838989 0.109192 0.528259 0.862366 0.110840 0.529083 0.885712 0.112457 0.529907 0.909363 0.114105 0.530701 0.933838 0.115784 0.531555 0.959961 0.117523 0.532379 0.037567 0.097931 0.507721 0.053406 0.099030 0.508362 0.070526 0.100128 0.509003 0.089172 0.101288 0.509644 0.109711 0.102417 0.510315 0.132446 0.103638 0.510986 0.157776 0.104889 0.511719 0.186127 0.106140 0.512360 0.217468 0.107452 0.513153 0.251587 0.108734 0.513763 0.288422 0.110107 0.514496 0.327606 0.111450 0.515289 0.368835 0.112823 0.515991 0.411835 0.114288 0.516785 0.456055 0.115753 0.517517 0.500275 0.117218 0.518280 0.542236 0.118713 0.519073 0.581360 0.120270 0.519836 0.617737 0.121765 0.520630 0.651459 0.123383 0.521362 0.682800 0.125000 0.522156 0.712158 0.126617 0.522949 0.739899 0.128296 0.523804 0.766205 0.129913 0.524567 0.791351 0.131683 0.525360 0.815704 0.133423 0.526093 0.839386 0.135132 0.526917 0.862732 0.136902 0.527710 0.885925 0.138733 0.528534 0.909546 0.140533 0.529266 0.933899 0.142365 0.530121 0.959961 0.144257 0.530914 0.038635 0.122925 0.505981 0.054565 0.124115 0.506653 0.071777 0.125366 0.507263 0.090515 0.126648 0.507996 0.111176 0.127960 0.508636 0.134033 0.129303 0.509369 0.159515 0.130707 0.510071 0.188049 0.132080 0.510742 0.219482 0.133545 0.511475 0.253754 0.134979 0.512207 0.290649 0.136505 0.512909 0.329895 0.138031 0.513702 0.371185 0.139557 0.514404 0.414093 0.141174 0.515137 0.458252 0.142822 0.515930 0.502350 0.144409 0.516663 0.544067 0.146088 0.517426 0.583008 0.147797 0.518188 0.619141 0.149475 0.518951 0.652649 0.151215 0.519745 0.683807 0.152985 0.520538 0.713074 0.154816 0.521271 0.740662 0.156647 0.522064 0.766876 0.158478 0.522827 0.791992 0.160370 0.523590 0.816193 0.162262 0.524414 0.839783 0.164185 0.525177 0.863007 0.166107 0.525940 0.886200 0.168091 0.526764 0.909668 0.170044 0.527527 0.933990 0.172119 0.528290 0.959961 0.174103 0.529083 0.039825 0.150940 0.503967 0.055786 0.152313 0.504639 0.073059 0.153748 0.505280 0.091949 0.155212 0.505951 0.112701 0.156647 0.506622 0.135712 0.158203 0.507355 0.161346 0.159698 0.508026 0.189972 0.161285 0.508728 0.221619 0.162903 0.509491 0.255951 0.164520 0.510193 0.292969 0.166168 0.510956 0.332245 0.167938 0.511658 0.373535 0.169647 0.512390 0.416473 0.171417 0.513092 0.460602 0.173187 0.513916 0.504486 0.174988 0.514557 0.545990 0.176910 0.515381 0.584686 0.178772 0.516144 0.620575 0.180634 0.516876 0.653900 0.182617 0.517670 0.684937 0.184540 0.518402 0.713989 0.186523 0.519165 0.741486 0.188568 0.519928 0.767517 0.190521 0.520721 0.792542 0.192627 0.521484 0.816681 0.194702 0.522186 0.840179 0.196777 0.523010 0.863342 0.198914 0.523773 0.886444 0.201080 0.524506 0.909851 0.203186 0.525238 0.934082 0.205383 0.526031 0.959961 0.207520 0.526764 0.040985 0.182678 0.501526 0.057037 0.184174 0.502167 0.074432 0.185822 0.502838 0.093414 0.187469 0.503479 0.114288 0.189056 0.504181 0.137421 0.190765 0.504883 0.163239 0.192474 0.505554 0.192078 0.194275 0.506256 0.223785 0.196045 0.507050 0.258270 0.197845 0.507751 0.295349 0.199707 0.508423 0.334686 0.201599 0.509186 0.375946 0.203522 0.509888 0.418884 0.205444 0.510620 0.462891 0.207428 0.511353 0.506653 0.209381 0.512115 0.547882 0.211426 0.512848 0.586304 0.213440 0.513580 0.622070 0.215515 0.514343 0.655182 0.217651 0.515076 0.685974 0.219696 0.515869 0.714935 0.221893 0.516602 0.742279 0.224060 0.517365 0.768250 0.226227 0.518066 0.793091 0.228424 0.518860 0.817139 0.230682 0.519623 0.840576 0.232910 0.520294 0.863647 0.235168 0.521088 0.886658 0.237396 0.521851 0.909973 0.239716 0.522552 0.934174 0.242065 0.523315 0.959961 0.244293 0.524017 0.042267 0.218323 0.498596 0.058380 0.220032 0.499237 0.075867 0.221802 0.499939 0.094940 0.223572 0.500580 0.115967 0.225372 0.501282 0.139252 0.227264 0.501984 0.165222 0.229095 0.502655 0.194183 0.231049 0.503418 0.226044 0.233002 0.504059 0.260620 0.234894 0.504822 0.297760 0.236969 0.505493 0.337158 0.239014 0.506226 0.378510 0.240997 0.506958 0.421326 0.243103 0.507690 0.465271 0.245209 0.508423 0.508820 0.247314 0.509155 0.549774 0.249512 0.509918 0.587982 0.251678 0.510620 0.623505 0.253876 0.511383 0.656464 0.256165 0.512115 0.687103 0.258331 0.512848 0.715912 0.260620 0.513580 0.743103 0.262939 0.514374 0.768951 0.265198 0.515076 0.793701 0.267548 0.515747 0.817657 0.269867 0.516541 0.840973 0.272247 0.517273 0.863953 0.274567 0.518005 0.886902 0.276917 0.518738 0.910187 0.279327 0.519470 0.934265 0.281708 0.520172 0.959961 0.284119 0.520844 0.043549 0.257660 0.495178 0.059753 0.259491 0.495880 0.077332 0.261414 0.496582 0.096527 0.263306 0.497253 0.117645 0.265289 0.497925 0.141083 0.267273 0.498596 0.167206 0.269226 0.499298 0.196381 0.271301 0.500061 0.228363 0.273376 0.500793 0.263031 0.275452 0.501465 0.300293 0.277588 0.502167 0.339691 0.279755 0.502930 0.380981 0.281860 0.503662 0.423859 0.284119 0.504364 0.467712 0.286285 0.505066 0.511017 0.288574 0.505829 0.551727 0.290802 0.506561 0.589661 0.293091 0.507294 0.625000 0.295410 0.507996 0.657715 0.297699 0.508759 0.688171 0.300018 0.509491 0.716827 0.302399 0.510193 0.743866 0.304779 0.510925 0.769592 0.307098 0.511688 0.794281 0.309540 0.512390 0.818115 0.311890 0.513123 0.841370 0.314362 0.513824 0.864319 0.316772 0.514557 0.887146 0.319183 0.515289 0.910370 0.321655 0.515961 0.934326 0.324097 0.516724 0.959961 0.326508 0.517395 0.044891 0.300354 0.491516 0.061188 0.302246 0.492188 0.078857 0.304291 0.492859 0.098145 0.306305 0.493530 0.119415 0.308380 0.494232 0.143036 0.310486 0.494904 0.169312 0.312561 0.495636 0.198608 0.314667 0.496368 0.230743 0.316864 0.497040 0.265503 0.319000 0.497803 0.302795 0.321198 0.498474 0.342224 0.323456 0.499237 0.383575 0.325653 0.499939 0.426361 0.327972 0.500641 0.470123 0.330200 0.501404 0.513184 0.332550 0.502167 0.553680 0.334900 0.502869 0.591400 0.337189 0.503571 0.626465 0.339539 0.504333 0.658936 0.342010 0.505035 0.689301 0.344269 0.505737 0.717804 0.346741 0.506500 0.744690 0.349182 0.507233 0.770325 0.351532 0.507904 0.794922 0.353973 0.508667 0.818634 0.356415 0.509369 0.841766 0.358826 0.510071 0.864594 0.361328 0.510773 0.887390 0.363708 0.511505 0.910522 0.366211 0.512238 0.934387 0.368683 0.512909 0.959961 0.371094 0.513611 0.046295 0.345856 0.487427 0.062653 0.347992 0.488098 0.080414 0.350037 0.488770 0.099854 0.352112 0.489441 0.121216 0.354218 0.490173 0.144958 0.356415 0.490875 0.171478 0.358551 0.491608 0.200897 0.360748 0.492371 0.233124 0.362976 0.493042 0.268036 0.365173 0.493805 0.305359 0.367462 0.494446 0.344818 0.369629 0.495209 0.386139 0.372009 0.495972 0.428986 0.374268 0.496674 0.472595 0.376587 0.497375 0.515411 0.378937 0.498108 0.555634 0.381287 0.498840 0.593140 0.383606 0.499542 0.627960 0.386017 0.500305 0.660278 0.388458 0.501099 0.690369 0.390778 0.501770 0.718781 0.393219 0.502441 0.745514 0.395569 0.503204 0.770996 0.397980 0.503937 0.795502 0.400452 0.504669 0.819122 0.402832 0.505371 0.842194 0.405273 0.506104 0.864929 0.407715 0.506775 0.887665 0.410126 0.507507 0.910675 0.412506 0.508209 0.934509 0.415009 0.508942 0.959961 0.417358 0.509613 0.047699 0.393890 0.483063 0.064148 0.396027 0.483765 0.082001 0.398132 0.484497 0.101532 0.400208 0.485138 0.123077 0.402344 0.485901 0.146973 0.404541 0.486664 0.173645 0.406708 0.487305 0.203186 0.408905 0.488068 0.235596 0.411133 0.488770 0.270569 0.413330 0.489502 0.307983 0.415680 0.490265 0.347473 0.417908 0.490936 0.388824 0.420227 0.491699 0.431519 0.422516 0.492462 0.475006 0.424774 0.493164 0.517670 0.427155 0.493896 0.557587 0.429474 0.494598 0.594849 0.431793 0.495331 0.629456 0.434174 0.496094 0.661560 0.436554 0.496826 0.691498 0.438873 0.497589 0.719666 0.441254 0.498322 0.746338 0.443573 0.499023 0.771698 0.445953 0.499695 0.796021 0.448364 0.500458 0.819611 0.450714 0.501160 0.842560 0.453033 0.501923 0.865234 0.455444 0.502625 0.887878 0.457764 0.503296 0.910797 0.460144 0.503998 0.934601 0.462524 0.504700 0.959961 0.464844 0.505402 0.049164 0.443756 0.478485 0.065704 0.445862 0.479156 0.083710 0.447998 0.479919 0.103363 0.450043 0.480652 0.125031 0.452209 0.481384 0.149078 0.454407 0.482086 0.175873 0.456512 0.482849 0.205597 0.458649 0.483612 0.238129 0.460846 0.484314 0.273193 0.463104 0.485046 0.310608 0.465271 0.485840 0.350098 0.467499 0.486511 0.391449 0.469757 0.487335 0.434143 0.472015 0.488037 0.477539 0.474243 0.488770 0.519867 0.476532 0.489532 0.559540 0.478821 0.490295 0.596619 0.481018 0.491028 0.630890 0.483276 0.491791 0.662811 0.485565 0.492432 0.692596 0.487823 0.493225 0.720642 0.490112 0.493958 0.747162 0.492340 0.494720 0.772400 0.494598 0.495453 0.796631 0.496887 0.496185 0.820068 0.499146 0.496918 0.842987 0.501343 0.497589 0.865570 0.503632 0.498352 0.888092 0.505829 0.499054 0.910980 0.508026 0.499786 0.934692 0.510193 0.500458 0.959961 0.512360 0.501129 0.050690 0.494568 0.473877 0.067322 0.496613 0.474579 0.085327 0.498627 0.475311 0.105103 0.500671 0.476044 0.126953 0.502716 0.476807 0.151184 0.504822 0.477570 0.178162 0.506836 0.478302 0.208069 0.508911 0.479095 0.240631 0.510956 0.479828 0.275787 0.513000 0.480621 0.313324 0.515167 0.481354 0.352875 0.517212 0.482147 0.394104 0.519287 0.482910 0.436798 0.521362 0.483673 0.480072 0.523407 0.484406 0.522095 0.525452 0.485229 0.561554 0.527588 0.486053 0.598236 0.529572 0.486725 0.632446 0.531647 0.487518 0.664062 0.533661 0.488281 0.693695 0.535736 0.489014 0.721588 0.537811 0.489807 0.747955 0.539764 0.490601 0.773071 0.541779 0.491272 0.797180 0.543793 0.492096 0.820587 0.545715 0.492828 0.843353 0.547699 0.493591 0.865875 0.549683 0.494354 0.888336 0.551605 0.495056 0.911163 0.553528 0.495789 0.934784 0.555420 0.496521 0.959961 0.557343 0.497253 0.052216 0.543945 0.469391 0.068939 0.545746 0.470184 0.087067 0.547607 0.470978 0.106964 0.549377 0.471710 0.128967 0.551239 0.472534 0.153320 0.553040 0.473328 0.180450 0.554840 0.474152 0.210480 0.556671 0.474884 0.243256 0.558472 0.475708 0.278473 0.560333 0.476471 0.316040 0.562134 0.477295 0.355591 0.563995 0.478119 0.396790 0.565826 0.478912 0.439362 0.567657 0.479675 0.482544 0.569427 0.480530 0.524323 0.571289 0.481293 0.563446 0.573090 0.482117 0.599976 0.574860 0.482880 0.633911 0.576660 0.483704 0.665375 0.578430 0.484497 0.694794 0.580200 0.485291 0.722534 0.582031 0.486053 0.748779 0.583740 0.486877 0.773773 0.585541 0.487640 0.797821 0.587219 0.488403 0.821075 0.588959 0.489166 0.843750 0.590637 0.489960 0.866180 0.592438 0.490723 0.888611 0.594055 0.491486 0.911316 0.595703 0.492218 0.934845 0.597351 0.492981 0.959961 0.599030 0.493713 0.053772 0.589630 0.465424 0.070587 0.591217 0.466248 0.088898 0.592834 0.467102 0.108887 0.594391 0.467896 0.130981 0.596008 0.468689 0.155548 0.597626 0.469543 0.182831 0.599213 0.470398 0.213013 0.600800 0.471222 0.245819 0.602386 0.472015 0.281189 0.603973 0.472839 0.318726 0.605591 0.473694 0.358307 0.607147 0.474487 0.399567 0.608765 0.475372 0.442108 0.610352 0.476196 0.485046 0.611877 0.477051 0.526550 0.613464 0.477814 0.565460 0.615051 0.478668 0.601685 0.616577 0.479492 0.635345 0.618164 0.480347 0.666626 0.619690 0.481140 0.695892 0.621246 0.481934 0.723450 0.622772 0.482758 0.749542 0.624268 0.483521 0.774475 0.625793 0.484375 0.798401 0.627289 0.485199 0.821533 0.628723 0.485962 0.844116 0.630249 0.486786 0.866516 0.631744 0.487518 0.888824 0.633087 0.488281 0.911499 0.634583 0.489044 0.934967 0.635956 0.489777 0.959961 0.637390 0.490601 0.055389 0.631653 0.462036 0.072266 0.633026 0.462860 0.090668 0.634399 0.463715 0.110809 0.635742 0.464539 0.133087 0.637207 0.465454 0.157715 0.638519 0.466248 0.185272 0.639923 0.467072 0.215546 0.641327 0.468018 0.248444 0.642609 0.468842 0.283875 0.644043 0.469666 0.321533 0.645447 0.470581 0.361084 0.646790 0.471405 0.402222 0.648193 0.472290 0.444702 0.649536 0.473145 0.487549 0.650848 0.473969 0.528717 0.652191 0.474823 0.567383 0.653564 0.475708 0.603363 0.654907 0.476532 0.636780 0.656250 0.477386 0.667847 0.657501 0.478180 0.696960 0.658875 0.479034 0.724396 0.660156 0.479889 0.750336 0.661469 0.480743 0.775146 0.662720 0.481476 0.798920 0.664032 0.482361 0.822021 0.665253 0.483124 0.844543 0.666504 0.483917 0.866791 0.667755 0.484711 0.889038 0.668976 0.485504 0.911682 0.670197 0.486328 0.935028 0.671387 0.487061 0.959961 0.672607 0.487823 0.056976 0.670105 0.459015 0.074005 0.671295 0.459930 0.092499 0.672485 0.460815 0.112762 0.673645 0.461639 0.135162 0.674866 0.462555 0.160004 0.675995 0.463470 0.187653 0.677216 0.464294 0.218109 0.678375 0.465210 0.251129 0.679565 0.466095 0.286591 0.680786 0.467010 0.324280 0.681915 0.467926 0.363800 0.683105 0.468719 0.404999 0.684265 0.469604 0.447388 0.685425 0.470520 0.490021 0.686523 0.471375 0.530975 0.687744 0.472260 0.569305 0.688843 0.473053 0.605011 0.690002 0.473938 0.638245 0.691132 0.474823 0.669098 0.692261 0.475708 0.698029 0.693359 0.476532 0.725311 0.694519 0.477356 0.751129 0.695618 0.478149 0.775787 0.696716 0.479034 0.799469 0.697815 0.479828 0.822479 0.698883 0.480652 0.844879 0.699951 0.481476 0.867096 0.700928 0.482300 0.889313 0.701996 0.483063 0.911804 0.703033 0.483826 0.935120 0.704041 0.484619 0.959961 0.705048 0.485352 0.058624 0.705383 0.456482 0.075745 0.706421 0.457336 0.094299 0.707428 0.458252 0.114746 0.708435 0.459229 0.137268 0.709442 0.460114 0.162292 0.710480 0.460999 0.190094 0.711487 0.461945 0.220673 0.712524 0.462799 0.253784 0.713501 0.463684 0.289368 0.714539 0.464600 0.327026 0.715576 0.465546 0.366577 0.716522 0.466431 0.407684 0.717529 0.467316 0.449921 0.718536 0.468170 0.492462 0.719543 0.469086 0.533112 0.720520 0.469940 0.571198 0.721466 0.470825 0.606689 0.722443 0.471741 0.639679 0.723419 0.472565 0.670319 0.724396 0.473450 0.699127 0.725342 0.474274 0.726196 0.726318 0.475128 0.751892 0.727203 0.475952 0.776459 0.728149 0.476837 0.800079 0.729065 0.477600 0.822906 0.730011 0.478455 0.845306 0.730896 0.479279 0.867401 0.731750 0.480072 0.889496 0.732635 0.480896 0.911957 0.733521 0.481659 0.935181 0.734375 0.482422 0.959961 0.735199 0.483185 0.060303 0.738037 0.454285 0.077515 0.738922 0.455261 0.096191 0.739807 0.456116 0.116730 0.740662 0.457031 0.139435 0.741547 0.458008 0.164642 0.742401 0.458862 0.192566 0.743286 0.459839 0.223297 0.744202 0.460754 0.256500 0.744995 0.461670 0.292114 0.745911 0.462555 0.329803 0.746765 0.463531 0.369354 0.747589 0.464386 0.410431 0.748444 0.465271 0.452576 0.749298 0.466187 0.494934 0.750122 0.467072 0.535248 0.750977 0.468048 0.573059 0.751801 0.468842 0.608337 0.752625 0.469757 0.641083 0.753479 0.470612 0.671570 0.754272 0.471466 0.700104 0.755066 0.472321 0.727081 0.755890 0.473175 0.752625 0.756683 0.474030 0.777069 0.757477 0.474884 0.800598 0.758240 0.475708 0.823395 0.759033 0.476532 0.845612 0.759766 0.477295 0.867706 0.760498 0.478119 0.889740 0.761292 0.478912 0.912079 0.762024 0.479706 0.935303 0.762756 0.480469 0.959961 0.763458 0.481232 0.062012 0.768524 0.452332 0.079315 0.769287 0.453308 0.098114 0.770020 0.454285 0.118774 0.770782 0.455170 0.141602 0.771515 0.456116 0.166931 0.772247 0.457031 0.195099 0.773010 0.458008 0.225891 0.773712 0.458954 0.259186 0.774475 0.459869 0.294861 0.775177 0.460785 0.332550 0.775909 0.461670 0.372101 0.776672 0.462616 0.413086 0.777374 0.463531 0.455200 0.778107 0.464386 0.497314 0.778809 0.465302 0.537415 0.779541 0.466248 0.574921 0.780212 0.467072 0.609924 0.780945 0.467987 0.642426 0.781647 0.468842 0.672729 0.782288 0.469727 0.701172 0.783020 0.470551 0.727936 0.783691 0.471466 0.753387 0.784332 0.472321 0.777710 0.785034 0.473083 0.801086 0.785675 0.473907 0.823792 0.786285 0.474731 0.846008 0.786987 0.475555 0.867981 0.787598 0.476349 0.889923 0.788208 0.477112 0.912231 0.788818 0.477905 0.935364 0.789459 0.478638 0.959961 0.790039 0.479401 0.063721 0.797150 0.450653 0.081116 0.797791 0.451660 0.100006 0.798431 0.452606 0.120850 0.799072 0.453552 0.143799 0.799683 0.454468 0.169342 0.800354 0.455414 0.197601 0.800964 0.456390 0.228546 0.801605 0.457336 0.261932 0.802185 0.458221 0.297577 0.802826 0.459198 0.335358 0.803436 0.460052 0.374817 0.804047 0.461029 0.415802 0.804688 0.461945 0.457764 0.805267 0.462799 0.499725 0.805878 0.463715 0.539490 0.806458 0.464661 0.576782 0.807068 0.465485 0.611511 0.807648 0.466400 0.643829 0.808258 0.467285 0.673889 0.808838 0.468170 0.702118 0.809387 0.468994 0.728821 0.809967 0.469818 0.754120 0.810516 0.470673 0.778320 0.811066 0.471497 0.801636 0.811646 0.472290 0.824249 0.812164 0.473083 0.846344 0.812683 0.473938 0.868256 0.813263 0.474701 0.890106 0.813751 0.475464 0.912354 0.814270 0.476227 0.935394 0.814758 0.476929 0.959961 0.815277 0.477692 0.065491 0.824310 0.449188 0.082977 0.824860 0.450134 0.101959 0.825378 0.451080 0.122925 0.825897 0.452087 0.146027 0.826447 0.453064 0.171661 0.826996 0.453949 0.200104 0.827484 0.454926 0.231110 0.828003 0.455872 0.264587 0.828552 0.456787 0.300354 0.829071 0.457733 0.338104 0.829559 0.458679 0.377563 0.830078 0.459564 0.418457 0.830627 0.460510 0.460327 0.831085 0.461426 0.502075 0.831635 0.462280 0.541504 0.832123 0.463196 0.578522 0.832581 0.464081 0.613037 0.833069 0.464996 0.645142 0.833618 0.465820 0.675049 0.834076 0.466675 0.703125 0.834534 0.467529 0.729645 0.835022 0.468353 0.754822 0.835480 0.469177 0.778961 0.835938 0.469940 0.802155 0.836365 0.470734 0.824646 0.836853 0.471619 0.846710 0.837311 0.472382 0.868500 0.837738 0.473145 0.890350 0.838165 0.473877 0.912506 0.838593 0.474640 0.935486 0.838989 0.475403 0.959961 0.839386 0.476074 0.067230 0.850250 0.447815 0.084808 0.850739 0.448822 0.103943 0.851135 0.449799 0.125000 0.851562 0.450775 0.148254 0.852051 0.451691 0.174072 0.852448 0.452667 0.202637 0.852936 0.453583 0.233765 0.853333 0.454559 0.267303 0.853790 0.455475 0.303101 0.854218 0.456390 0.340790 0.854614 0.457367 0.380310 0.855042 0.458221 0.421112 0.855499 0.459167 0.462830 0.855896 0.460052 0.504364 0.856354 0.460938 0.543579 0.856720 0.461853 0.580353 0.857147 0.462738 0.614594 0.857544 0.463562 0.646423 0.857910 0.464447 0.676178 0.858307 0.465302 0.704102 0.858734 0.466125 0.730499 0.859100 0.466949 0.755524 0.859497 0.467743 0.779541 0.859863 0.468536 0.802612 0.860229 0.469360 0.825043 0.860565 0.470154 0.847015 0.860962 0.470917 0.868805 0.861328 0.471649 0.890564 0.861633 0.472382 0.912628 0.862030 0.473083 0.935516 0.862335 0.473816 0.959961 0.862671 0.474518 0.068970 0.875336 0.446655 0.086639 0.875732 0.447571 0.105896 0.876068 0.448517 0.127075 0.876434 0.449524 0.150421 0.876770 0.450439 0.176483 0.877136 0.451477 0.205139 0.877502 0.452393 0.236359 0.877808 0.453308 0.269989 0.878204 0.454254 0.305786 0.878540 0.455170 0.343536 0.878906 0.456085 0.382965 0.879211 0.456970 0.423706 0.879578 0.457916 0.465302 0.879883 0.458801 0.506622 0.880280 0.459747 0.545471 0.880554 0.460541 0.582062 0.880890 0.461456 0.616089 0.881256 0.462311 0.647705 0.881531 0.463135 0.677246 0.881866 0.463959 0.705017 0.882172 0.464752 0.731293 0.882477 0.465576 0.756195 0.882782 0.466370 0.780090 0.883118 0.467194 0.803101 0.883392 0.467957 0.825470 0.883698 0.468750 0.847351 0.884003 0.469482 0.868988 0.884277 0.470215 0.890747 0.884583 0.470917 0.912781 0.884827 0.471619 0.935577 0.885071 0.472260 0.959961 0.885345 0.472961 0.070740 0.899872 0.445435 0.088531 0.900116 0.446442 0.107849 0.900421 0.447388 0.129150 0.900696 0.448364 0.152679 0.901001 0.449280 0.178833 0.901245 0.450256 0.207672 0.901550 0.451141 0.238922 0.901794 0.452118 0.272644 0.902100 0.453064 0.308472 0.902374 0.453949 0.346222 0.902649 0.454865 0.385590 0.902893 0.455780 0.426300 0.903168 0.456726 0.467743 0.903442 0.457581 0.508820 0.903717 0.458435 0.547424 0.903992 0.459351 0.583679 0.904236 0.460205 0.617523 0.904510 0.460968 0.648956 0.904694 0.461823 0.678314 0.904999 0.462646 0.705963 0.905212 0.463440 0.732056 0.905487 0.464233 0.756897 0.905701 0.465027 0.780701 0.905914 0.465759 0.803589 0.906158 0.466553 0.825836 0.906372 0.467285 0.847656 0.906586 0.468048 0.869263 0.906830 0.468781 0.890869 0.907043 0.469421 0.912872 0.907227 0.470093 0.935669 0.907440 0.470734 0.959961 0.907623 0.471405 0.072510 0.924072 0.444244 0.090332 0.924286 0.445251 0.109833 0.924500 0.446198 0.131287 0.924744 0.447174 0.154938 0.924927 0.448090 0.181213 0.925140 0.449066 0.210144 0.925354 0.450043 0.241516 0.925568 0.450928 0.275269 0.925812 0.451874 0.311157 0.925964 0.452789 0.348846 0.926147 0.453644 0.388184 0.926392 0.454559 0.428772 0.926575 0.455414 0.470154 0.926758 0.456299 0.510956 0.926971 0.457214 0.549286 0.927155 0.458008 0.585388 0.927368 0.458862 0.618927 0.927521 0.459686 0.650177 0.927704 0.460510 0.679352 0.927917 0.461334 0.706818 0.928070 0.462128 0.732788 0.928253 0.462860 0.757507 0.928436 0.463654 0.781189 0.928589 0.464417 0.804016 0.928772 0.465118 0.826202 0.928955 0.465790 0.847961 0.929108 0.466522 0.869476 0.929291 0.467224 0.891052 0.929413 0.467865 0.912994 0.929565 0.468567 0.935699 0.929688 0.469208 0.959961 0.929840 0.469818 0.074280 0.948456 0.443054 0.092194 0.948608 0.444031 0.111786 0.948730 0.444977 0.133331 0.948883 0.445984 0.157166 0.949005 0.446838 0.183594 0.949188 0.447815 0.212616 0.949341 0.448730 0.244080 0.949493 0.449677 0.277863 0.949615 0.450592 0.313751 0.949768 0.451508 0.351471 0.949860 0.452362 0.390778 0.950012 0.453278 0.431244 0.950165 0.454102 0.472504 0.950287 0.455017 0.513031 0.950378 0.455872 0.551208 0.950531 0.456696 0.586945 0.950653 0.457489 0.620300 0.950745 0.458344 0.651337 0.950897 0.459106 0.680359 0.951019 0.459869 0.707703 0.951141 0.460693 0.733521 0.951233 0.461426 0.758148 0.951385 0.462189 0.781708 0.951508 0.462830 0.804474 0.951599 0.463593 0.826538 0.951721 0.464294 0.848236 0.951813 0.464935 0.869690 0.951935 0.465637 0.891266 0.952026 0.466278 0.913116 0.952118 0.466888 0.935791 0.952240 0.467468 0.959961 0.952332 0.468079 0.076050 0.973480 0.441742 0.094025 0.973541 0.442688 0.113770 0.973663 0.443634 0.135468 0.973724 0.444611 0.159393 0.973816 0.445496 0.185974 0.973877 0.446472 0.215088 0.973969 0.447418 0.246643 0.974030 0.448273 0.280457 0.974121 0.449219 0.316315 0.974182 0.450104 0.354034 0.974243 0.450989 0.393250 0.974304 0.451813 0.433685 0.974365 0.452667 0.474792 0.974426 0.453583 0.515076 0.974518 0.454376 0.552917 0.974579 0.455170 0.588501 0.974609 0.456024 0.621613 0.974701 0.456818 0.652466 0.974762 0.457581 0.681335 0.974854 0.458313 0.708496 0.974884 0.459137 0.734253 0.974976 0.459808 0.758759 0.975006 0.460480 0.782166 0.975067 0.461243 0.804871 0.975098 0.461914 0.826904 0.975189 0.462616 0.848511 0.975220 0.463226 0.869934 0.975281 0.463867 0.891388 0.975281 0.464478 0.913239 0.975342 0.465057 0.935822 0.975403 0.465637 0.959961 0.975433 0.466248 0.077820 1.000000 0.440186 0.095886 1.000000 0.441132 0.115723 1.000000 0.442108 0.137512 1.000000 0.443085 0.161621 1.000000 0.444000 0.188293 1.000000 0.444885 0.217529 1.000000 0.445831 0.249146 1.000000 0.446716 0.283020 1.000000 0.447601 0.318848 1.000000 0.448425 0.356537 1.000000 0.449341 0.395691 1.000000 0.450195 0.436066 1.000000 0.451019 0.477020 1.000000 0.451843 0.516998 1.000000 0.452698 0.554657 1.000000 0.453491 0.590027 1.000000 0.454254 0.622894 1.000000 0.455048 0.653595 1.000000 0.455841 0.682251 1.000000 0.456512 0.709290 1.000000 0.457214 0.734894 1.000000 0.457916 0.759277 1.000000 0.458649 0.782684 1.000000 0.459351 0.805237 1.000000 0.460022 0.827179 1.000000 0.460571 0.848785 1.000000 0.461243 0.870117 1.000000 0.461853 0.891541 1.000000 0.462433 0.913361 1.000000 0.463013 0.935883 1.000000 0.463501 0.959961 1.000000 0.464050 0.033051 0.003357 0.557159 0.048584 0.003967 0.557617 0.065338 0.004669 0.558044 0.083557 0.005341 0.558502 0.103546 0.006104 0.559021 0.125671 0.006897 0.559540 0.150330 0.007660 0.560028 0.177917 0.008484 0.560516 0.208649 0.009308 0.561066 0.242218 0.010132 0.561646 0.278625 0.011017 0.562225 0.317535 0.011932 0.562775 0.358612 0.012817 0.563354 0.401550 0.013794 0.563934 0.445984 0.014709 0.564545 0.490845 0.015717 0.565155 0.533813 0.016754 0.565796 0.573944 0.017761 0.566406 0.611267 0.018829 0.567017 0.645782 0.019867 0.567688 0.677917 0.020935 0.568359 0.707916 0.022034 0.569000 0.736237 0.023193 0.569702 0.763062 0.024323 0.570404 0.788727 0.025482 0.571075 0.813446 0.026672 0.571747 0.837524 0.027863 0.572449 0.861237 0.029053 0.573151 0.884857 0.030273 0.573853 0.908783 0.031555 0.574585 0.933502 0.032837 0.575287 0.959961 0.034058 0.576050 0.033844 0.019684 0.556091 0.049469 0.020416 0.556549 0.066254 0.021149 0.557068 0.084534 0.021912 0.557556 0.104675 0.022736 0.558014 0.126953 0.023529 0.558563 0.151733 0.024353 0.559082 0.179504 0.025208 0.559692 0.210327 0.026154 0.560181 0.244019 0.027039 0.560760 0.280518 0.027985 0.561310 0.319489 0.028931 0.561920 0.360565 0.029938 0.562561 0.403564 0.030945 0.563171 0.447937 0.031952 0.563751 0.492737 0.032990 0.564453 0.535431 0.034088 0.565033 0.575439 0.035126 0.565704 0.612549 0.036255 0.566376 0.646942 0.037415 0.567017 0.678864 0.038544 0.567688 0.708771 0.039734 0.568390 0.736969 0.040924 0.569061 0.763672 0.042114 0.569733 0.789246 0.043365 0.570435 0.813965 0.044556 0.571106 0.837891 0.045868 0.571838 0.861511 0.047150 0.572540 0.885040 0.048431 0.573242 0.908936 0.049805 0.573944 0.933594 0.051117 0.574646 0.959961 0.052429 0.575409 0.034760 0.037018 0.554901 0.050415 0.037750 0.555481 0.067322 0.038605 0.555969 0.085693 0.039429 0.556458 0.105896 0.040314 0.557007 0.128265 0.041199 0.557556 0.153229 0.042114 0.558075 0.181091 0.043060 0.558655 0.212067 0.044037 0.559235 0.245911 0.045013 0.559814 0.282471 0.046051 0.560455 0.321472 0.047058 0.561035 0.362610 0.048126 0.561615 0.405640 0.049194 0.562286 0.450012 0.050323 0.562897 0.494629 0.051453 0.563568 0.537231 0.052612 0.564178 0.576935 0.053772 0.564850 0.613892 0.054962 0.565521 0.648041 0.056183 0.566254 0.679901 0.057434 0.566895 0.709625 0.058685 0.567566 0.737701 0.059937 0.568207 0.764343 0.061249 0.568939 0.789795 0.062561 0.569672 0.814392 0.063904 0.570282 0.838287 0.065277 0.571014 0.861847 0.066681 0.571716 0.885284 0.068054 0.572388 0.909088 0.069458 0.573151 0.933655 0.070892 0.573853 0.959961 0.072327 0.574554 0.035645 0.055603 0.553711 0.051422 0.056519 0.554230 0.068390 0.057434 0.554718 0.086853 0.058289 0.555298 0.107178 0.059265 0.555847 0.129730 0.060242 0.556427 0.154755 0.061249 0.556946 0.182800 0.062286 0.557587 0.213898 0.063324 0.558136 0.247833 0.064453 0.558746 0.284515 0.065552 0.559357 0.323608 0.066681 0.559967 0.364807 0.067841 0.560608 0.407776 0.069000 0.561249 0.452057 0.070221 0.561829 0.496582 0.071472 0.562500 0.538971 0.072693 0.563232 0.578491 0.073944 0.563904 0.615234 0.075256 0.564514 0.649261 0.076599 0.565186 0.680878 0.077942 0.565857 0.710541 0.079315 0.566528 0.738464 0.080658 0.567230 0.764984 0.082062 0.567932 0.790344 0.083527 0.568665 0.814819 0.084961 0.569305 0.838654 0.086456 0.570007 0.862122 0.087952 0.570770 0.885529 0.089417 0.571411 0.909210 0.090973 0.572113 0.933746 0.092529 0.572845 0.959961 0.094055 0.573547 0.036682 0.075928 0.552307 0.052490 0.076904 0.552887 0.069550 0.077911 0.553406 0.088135 0.078949 0.553955 0.108551 0.079987 0.554504 0.131165 0.081085 0.555115 0.156372 0.082153 0.555695 0.184601 0.083344 0.556274 0.215790 0.084503 0.556854 0.249878 0.085693 0.557495 0.286621 0.086914 0.558105 0.325745 0.088135 0.558685 0.367004 0.089417 0.559326 0.410004 0.090729 0.559998 0.454224 0.092041 0.560638 0.498627 0.093384 0.561310 0.540802 0.094757 0.561981 0.580048 0.096161 0.562622 0.616608 0.097626 0.563293 0.650421 0.099030 0.563965 0.681946 0.100494 0.564636 0.711456 0.102020 0.565338 0.739258 0.103516 0.566010 0.765656 0.105042 0.566711 0.790924 0.106598 0.567352 0.815308 0.108185 0.568054 0.839050 0.109802 0.568756 0.862427 0.111420 0.569458 0.885742 0.113068 0.570129 0.909393 0.114716 0.570862 0.933838 0.116394 0.571503 0.959961 0.118134 0.572174 0.037720 0.098328 0.550751 0.053619 0.099457 0.551300 0.070740 0.100586 0.551819 0.089417 0.101685 0.552399 0.109985 0.102936 0.552948 0.132751 0.104065 0.553528 0.158081 0.105347 0.554169 0.186462 0.106598 0.554779 0.217804 0.107910 0.555359 0.251984 0.109253 0.555939 0.288818 0.110596 0.556580 0.328003 0.111969 0.557190 0.369263 0.113403 0.557800 0.412292 0.114807 0.558502 0.456421 0.116272 0.559143 0.500671 0.117737 0.559814 0.542542 0.119293 0.560455 0.581665 0.120819 0.561127 0.618011 0.122375 0.561768 0.651642 0.123962 0.562408 0.682983 0.125580 0.563080 0.712311 0.127258 0.563782 0.740051 0.128876 0.564453 0.766357 0.130615 0.565094 0.791473 0.132294 0.565826 0.815765 0.134033 0.566498 0.839447 0.135803 0.567169 0.862762 0.137604 0.567841 0.885956 0.139343 0.568512 0.909576 0.141174 0.569183 0.933960 0.143005 0.569824 0.959961 0.144867 0.570496 0.038879 0.123322 0.548828 0.054779 0.124573 0.549438 0.072021 0.125854 0.549957 0.090790 0.127136 0.550537 0.111450 0.128479 0.551117 0.134308 0.129791 0.551758 0.159882 0.131195 0.552338 0.188385 0.132660 0.552856 0.219849 0.134064 0.553467 0.254211 0.135529 0.554138 0.291077 0.137054 0.554749 0.330322 0.138580 0.555389 0.371582 0.140137 0.556030 0.414520 0.141754 0.556641 0.458649 0.143341 0.557312 0.502747 0.145020 0.557953 0.544434 0.146698 0.558594 0.583313 0.148407 0.559204 0.619446 0.150146 0.559875 0.652893 0.151886 0.560516 0.684052 0.153656 0.561188 0.713257 0.155487 0.561859 0.740814 0.157318 0.562469 0.767029 0.159180 0.563202 0.792053 0.161072 0.563843 0.816223 0.162933 0.564484 0.839844 0.164917 0.565155 0.863068 0.166809 0.565765 0.886261 0.168823 0.566437 0.909698 0.170837 0.567139 0.933990 0.172791 0.567749 0.959961 0.174835 0.568420 0.039978 0.151428 0.546631 0.056000 0.152832 0.547180 0.073334 0.154266 0.547699 0.092224 0.155731 0.548279 0.113007 0.157227 0.548859 0.136017 0.158722 0.549438 0.161743 0.160309 0.550079 0.190369 0.161896 0.550659 0.221985 0.163483 0.551270 0.256439 0.165161 0.551910 0.293427 0.166840 0.552551 0.332672 0.168518 0.553131 0.373993 0.170258 0.553741 0.416931 0.172058 0.554413 0.461029 0.173889 0.555054 0.504913 0.175720 0.555634 0.546295 0.177551 0.556274 0.584961 0.179443 0.556915 0.620880 0.181366 0.557587 0.654144 0.183289 0.558228 0.685120 0.185242 0.558838 0.714233 0.187256 0.559540 0.741608 0.189270 0.560150 0.767670 0.191284 0.560791 0.792633 0.193390 0.561432 0.816772 0.195435 0.562042 0.840240 0.197540 0.562714 0.863403 0.199677 0.563324 0.886444 0.201843 0.563965 0.909851 0.203979 0.564636 0.934082 0.206177 0.565216 0.959961 0.208374 0.565887 0.041260 0.183228 0.543945 0.057312 0.184814 0.544495 0.074707 0.186340 0.545044 0.093719 0.188019 0.545654 0.114594 0.189728 0.546265 0.137787 0.191406 0.546783 0.163574 0.193146 0.547394 0.192444 0.194916 0.548035 0.224213 0.196716 0.548645 0.258698 0.198547 0.549225 0.295807 0.200409 0.549835 0.335114 0.202271 0.550476 0.376434 0.204224 0.551086 0.419342 0.206146 0.551697 0.463318 0.208160 0.552277 0.507019 0.210144 0.552917 0.548218 0.212158 0.553528 0.586670 0.214203 0.554169 0.622314 0.216339 0.554779 0.655365 0.218384 0.555450 0.686218 0.220551 0.556061 0.715118 0.222687 0.556671 0.742401 0.224854 0.557251 0.768372 0.227081 0.557922 0.793243 0.229248 0.558533 0.817230 0.231506 0.559204 0.840668 0.233734 0.559784 0.863739 0.235992 0.560455 0.886719 0.238281 0.561035 0.910004 0.240570 0.561676 0.934174 0.242859 0.562256 0.959961 0.245209 0.562866 0.042480 0.218933 0.540802 0.058655 0.220703 0.541382 0.076141 0.222412 0.541931 0.095245 0.224243 0.542542 0.116272 0.226074 0.543121 0.139587 0.227905 0.543732 0.165619 0.229828 0.544281 0.194580 0.231750 0.544861 0.226440 0.233704 0.545441 0.261108 0.235687 0.546051 0.298187 0.237701 0.546631 0.337616 0.239746 0.547302 0.378906 0.241791 0.547913 0.421814 0.243866 0.548492 0.465729 0.246002 0.549072 0.509247 0.248169 0.549774 0.550140 0.250275 0.550354 0.588348 0.252502 0.550934 0.623810 0.254730 0.551636 0.656677 0.256927 0.552216 0.687317 0.259186 0.552795 0.716064 0.261505 0.553436 0.743256 0.263763 0.554016 0.769073 0.266083 0.554688 0.793823 0.268341 0.555267 0.817719 0.270721 0.555878 0.841064 0.273071 0.556488 0.864044 0.275421 0.557129 0.886963 0.277802 0.557709 0.910217 0.280212 0.558289 0.934296 0.282562 0.558899 0.959961 0.284973 0.559509 0.043793 0.258331 0.537262 0.060028 0.260193 0.537842 0.077606 0.262085 0.538422 0.096832 0.264038 0.538971 0.118011 0.266022 0.539581 0.141449 0.267975 0.540100 0.167603 0.269989 0.540710 0.196777 0.272064 0.541321 0.228760 0.274109 0.541901 0.263519 0.276245 0.542480 0.300720 0.278351 0.543121 0.340149 0.280518 0.543732 0.381470 0.282715 0.544312 0.424286 0.284882 0.544952 0.468109 0.287140 0.545532 0.511414 0.289368 0.546143 0.552063 0.291626 0.546783 0.590057 0.293915 0.547394 0.625275 0.296265 0.547943 0.657959 0.298553 0.548584 0.688385 0.300903 0.549194 0.717010 0.303223 0.549744 0.744049 0.305634 0.550385 0.769745 0.308014 0.551025 0.794373 0.310394 0.551605 0.818207 0.312805 0.552216 0.841461 0.315247 0.552826 0.864380 0.317657 0.553375 0.887207 0.320068 0.553986 0.910400 0.322540 0.554626 0.934357 0.324921 0.555176 0.959961 0.327423 0.555695 0.045135 0.301025 0.533295 0.061462 0.303040 0.533905 0.079163 0.304993 0.534485 0.098450 0.307037 0.535034 0.119751 0.309143 0.535614 0.143341 0.311188 0.536224 0.169708 0.313324 0.536774 0.199036 0.315491 0.537384 0.231140 0.317657 0.537964 0.265961 0.319824 0.538605 0.303284 0.322021 0.539154 0.342743 0.324280 0.539795 0.384033 0.326538 0.540405 0.426849 0.328827 0.540985 0.470581 0.331116 0.541626 0.513641 0.333405 0.542236 0.554047 0.335693 0.542786 0.591766 0.338074 0.543396 0.626770 0.340454 0.544037 0.659210 0.342834 0.544617 0.689545 0.345215 0.545258 0.717957 0.347595 0.545807 0.744843 0.350037 0.546448 0.770477 0.352478 0.547058 0.794983 0.354858 0.547607 0.818726 0.357300 0.548218 0.841827 0.359802 0.548828 0.864655 0.362183 0.549438 0.887451 0.364624 0.550018 0.910553 0.367126 0.550568 0.934448 0.369537 0.551178 0.959961 0.372040 0.551727 0.046509 0.346649 0.529053 0.062958 0.348724 0.529602 0.080719 0.350800 0.530182 0.100128 0.352875 0.530762 0.121582 0.355072 0.531372 0.145325 0.357178 0.531921 0.171844 0.359344 0.532562 0.201263 0.361542 0.533112 0.233551 0.363770 0.533722 0.268494 0.365997 0.534363 0.305817 0.368195 0.534912 0.345337 0.370514 0.535553 0.386658 0.372864 0.536194 0.429413 0.375092 0.536774 0.473022 0.377472 0.537354 0.515839 0.379822 0.537964 0.556000 0.382172 0.538574 0.593445 0.384491 0.539185 0.628204 0.386871 0.539795 0.660461 0.389252 0.540375 0.690582 0.391693 0.541016 0.718903 0.394043 0.541626 0.745697 0.396484 0.542206 0.771118 0.398926 0.542786 0.795593 0.401276 0.543396 0.819183 0.403809 0.543945 0.842285 0.406158 0.544586 0.864990 0.408539 0.545135 0.887726 0.411011 0.545807 0.910675 0.413422 0.546295 0.934509 0.415833 0.546875 0.959961 0.418274 0.547485 0.047974 0.394684 0.524445 0.064453 0.396790 0.525055 0.082306 0.398834 0.525665 0.101898 0.400970 0.526184 0.123444 0.403168 0.526825 0.147400 0.405304 0.527435 0.174042 0.407532 0.528046 0.203644 0.409729 0.528595 0.236023 0.411957 0.529236 0.271088 0.414246 0.529816 0.308411 0.416473 0.530457 0.347961 0.418793 0.531067 0.389282 0.421082 0.531677 0.432007 0.423370 0.532227 0.475525 0.425659 0.532928 0.518036 0.428009 0.533508 0.557922 0.430298 0.534119 0.595184 0.432678 0.534729 0.629700 0.434998 0.535309 0.661804 0.437408 0.535950 0.691742 0.439758 0.536499 0.719849 0.442078 0.537170 0.746490 0.444458 0.537750 0.771820 0.446869 0.538330 0.796143 0.449188 0.538940 0.819702 0.451599 0.539520 0.842651 0.453949 0.540131 0.865265 0.456329 0.540741 0.887939 0.458649 0.541321 0.910889 0.460999 0.541870 0.934601 0.463348 0.542480 0.959961 0.465729 0.543091 0.049469 0.444519 0.519684 0.066010 0.446655 0.520264 0.083954 0.448730 0.520844 0.103668 0.450867 0.521484 0.125397 0.452972 0.522064 0.149475 0.455170 0.522705 0.176300 0.457306 0.523315 0.205994 0.459503 0.523895 0.238586 0.461700 0.524567 0.273682 0.463959 0.525177 0.311127 0.466125 0.525757 0.350677 0.468353 0.526398 0.391968 0.470581 0.527039 0.434601 0.472809 0.527649 0.478058 0.475098 0.528290 0.520264 0.477325 0.528900 0.559937 0.479614 0.529480 0.596863 0.481903 0.530151 0.631165 0.484131 0.530731 0.663086 0.486389 0.531342 0.692841 0.488678 0.532013 0.720795 0.490906 0.532593 0.747314 0.493164 0.533234 0.772552 0.495453 0.533813 0.796753 0.497681 0.534424 0.820190 0.499969 0.535034 0.843048 0.502197 0.535614 0.865631 0.504364 0.536224 0.888153 0.506653 0.536835 0.911011 0.508789 0.537415 0.934723 0.510986 0.537994 0.959961 0.513214 0.538635 0.050934 0.495331 0.514801 0.067627 0.497375 0.515411 0.085663 0.499359 0.516022 0.105499 0.501465 0.516632 0.127350 0.503448 0.517273 0.151550 0.505493 0.517944 0.178589 0.507599 0.518616 0.208466 0.509613 0.519226 0.241119 0.511719 0.519836 0.276337 0.513824 0.520447 0.313782 0.515869 0.521118 0.353363 0.518005 0.521759 0.394653 0.520050 0.522430 0.437195 0.522125 0.523071 0.480530 0.524170 0.523682 0.522522 0.526184 0.524414 0.561859 0.528290 0.524994 0.598633 0.530365 0.525635 0.632690 0.532379 0.526306 0.664337 0.534424 0.526917 0.693939 0.536469 0.527588 0.721771 0.538452 0.528198 0.748108 0.540527 0.528870 0.773224 0.542511 0.529510 0.797302 0.544464 0.530121 0.820648 0.546509 0.530701 0.843445 0.548431 0.531372 0.865936 0.550385 0.532013 0.888428 0.552307 0.532623 0.911194 0.554199 0.533203 0.934814 0.556183 0.533844 0.959961 0.558014 0.534424 0.052490 0.544647 0.510132 0.069214 0.546478 0.510773 0.087433 0.548248 0.511475 0.107330 0.550018 0.512115 0.129303 0.551880 0.512756 0.153748 0.553680 0.513458 0.180939 0.555511 0.514130 0.210938 0.557343 0.514740 0.243683 0.559174 0.515442 0.279022 0.561035 0.516113 0.316528 0.562836 0.516846 0.356079 0.564667 0.517487 0.397308 0.566498 0.518158 0.439911 0.568329 0.518829 0.483063 0.570099 0.519531 0.524750 0.571869 0.520172 0.563843 0.573761 0.520905 0.600342 0.575531 0.521545 0.634125 0.577332 0.522217 0.665588 0.579102 0.522858 0.695007 0.580872 0.523590 0.722687 0.582611 0.524200 0.748871 0.584442 0.524933 0.773865 0.586121 0.525513 0.797882 0.587891 0.526245 0.821136 0.589600 0.526886 0.843842 0.591278 0.527496 0.866241 0.592987 0.528168 0.888672 0.594696 0.528778 0.911346 0.596283 0.529419 0.934875 0.597992 0.530060 0.959961 0.599609 0.530731 0.054077 0.590179 0.505951 0.070892 0.591797 0.506683 0.089172 0.593384 0.507385 0.109253 0.594971 0.508026 0.131348 0.596558 0.508759 0.155975 0.598145 0.509430 0.183289 0.599792 0.510162 0.213470 0.601349 0.510864 0.246307 0.602966 0.511597 0.281708 0.604584 0.512238 0.319275 0.606171 0.512970 0.358826 0.607727 0.513702 0.400085 0.609344 0.514404 0.442535 0.610901 0.515076 0.485565 0.612488 0.515839 0.526947 0.614044 0.516510 0.565826 0.615601 0.517212 0.601990 0.617188 0.517883 0.635590 0.618713 0.518646 0.666870 0.620270 0.519287 0.696106 0.621826 0.520050 0.723633 0.623322 0.520660 0.749695 0.624817 0.521393 0.774597 0.626373 0.522095 0.798492 0.627838 0.522736 0.821625 0.629333 0.523407 0.844208 0.630737 0.524078 0.866577 0.632233 0.524689 0.888855 0.633667 0.525421 0.911530 0.635040 0.526062 0.934967 0.636505 0.526733 0.959961 0.637909 0.527344 0.055695 0.632172 0.502289 0.072601 0.633484 0.502991 0.090973 0.634918 0.503723 0.111176 0.636292 0.504456 0.133423 0.637634 0.505219 0.158173 0.639038 0.505951 0.185699 0.640442 0.506714 0.216003 0.641785 0.507385 0.248993 0.643188 0.508179 0.284393 0.644592 0.508911 0.322021 0.645905 0.509644 0.361572 0.647308 0.510345 0.402771 0.648651 0.511047 0.445190 0.650024 0.511780 0.488037 0.651367 0.512573 0.529175 0.652679 0.513245 0.567749 0.654083 0.513977 0.603668 0.655396 0.514740 0.637054 0.656738 0.515442 0.668091 0.658020 0.516144 0.697205 0.659363 0.516907 0.724548 0.660614 0.517609 0.750458 0.661926 0.518280 0.775238 0.663208 0.518951 0.799042 0.664459 0.519684 0.822083 0.665741 0.520355 0.844604 0.666992 0.520996 0.866821 0.668213 0.521729 0.889069 0.669464 0.522400 0.911713 0.670654 0.523041 0.935089 0.671844 0.523773 0.959961 0.673004 0.524414 0.057312 0.670502 0.499084 0.074310 0.671692 0.499817 0.092834 0.672913 0.500580 0.113129 0.674072 0.501373 0.135529 0.675262 0.502136 0.160461 0.676453 0.502869 0.188141 0.677612 0.503632 0.218567 0.678802 0.504425 0.251617 0.679962 0.505127 0.287170 0.681183 0.505920 0.324768 0.682343 0.506683 0.364349 0.683502 0.507446 0.405457 0.684662 0.508179 0.447815 0.685822 0.508942 0.490540 0.687012 0.509705 0.531342 0.688110 0.510406 0.569611 0.689301 0.511139 0.605377 0.690460 0.511902 0.638458 0.691589 0.512665 0.669342 0.692688 0.513367 0.698242 0.693817 0.514130 0.725464 0.694916 0.514832 0.751282 0.696014 0.515533 0.775909 0.697083 0.516235 0.799561 0.698181 0.516968 0.822540 0.699249 0.517700 0.844940 0.700317 0.518341 0.867157 0.701355 0.519043 0.889313 0.702393 0.519745 0.911835 0.703400 0.520386 0.935150 0.704437 0.521057 0.959961 0.705414 0.521729 0.058960 0.705780 0.496307 0.076050 0.706757 0.497070 0.094696 0.707794 0.497894 0.115143 0.708832 0.498627 0.137695 0.709808 0.499420 0.162750 0.710846 0.500244 0.190613 0.711884 0.500946 0.221161 0.712860 0.501770 0.254333 0.713867 0.502563 0.289825 0.714905 0.503326 0.327576 0.715912 0.504089 0.367157 0.716919 0.504883 0.408173 0.717896 0.505676 0.450470 0.718903 0.506409 0.492950 0.719910 0.507172 0.533508 0.720886 0.507904 0.571594 0.721863 0.508728 0.606964 0.722839 0.509460 0.639893 0.723755 0.510223 0.670563 0.724731 0.510956 0.699280 0.725677 0.511658 0.726349 0.726624 0.512360 0.752045 0.727570 0.513123 0.776581 0.728485 0.513885 0.800140 0.729401 0.514587 0.822968 0.730347 0.515259 0.845337 0.731171 0.515961 0.867432 0.732086 0.516632 0.889557 0.733002 0.517303 0.911987 0.733826 0.518005 0.935211 0.734680 0.518646 0.959961 0.735535 0.519318 0.060638 0.738403 0.493896 0.077850 0.739227 0.494629 0.096558 0.740143 0.495453 0.117157 0.741028 0.496307 0.139832 0.741852 0.497040 0.165039 0.742767 0.497833 0.193085 0.743622 0.498688 0.223755 0.744476 0.499420 0.257019 0.745331 0.500244 0.292603 0.746185 0.501007 0.330322 0.747070 0.501831 0.369873 0.747925 0.502594 0.410858 0.748779 0.503387 0.453094 0.749603 0.504181 0.495361 0.750488 0.505005 0.535614 0.751282 0.505737 0.573425 0.752106 0.506470 0.608612 0.752960 0.507263 0.641327 0.753754 0.507996 0.671814 0.754578 0.508759 0.700317 0.755402 0.509460 0.727264 0.756165 0.510223 0.752808 0.756989 0.510956 0.777191 0.757751 0.511658 0.800720 0.758514 0.512421 0.823456 0.759308 0.513092 0.845673 0.760040 0.513763 0.867767 0.760803 0.514465 0.889771 0.761566 0.515167 0.912109 0.762238 0.515839 0.935303 0.763000 0.516510 0.959961 0.763672 0.517151 0.062347 0.768829 0.491730 0.079620 0.769562 0.492523 0.098450 0.770294 0.493347 0.119171 0.771057 0.494141 0.141998 0.771790 0.494995 0.167389 0.772552 0.495758 0.195557 0.773254 0.496582 0.226379 0.773987 0.497406 0.259705 0.774750 0.498260 0.295349 0.775452 0.498993 0.333130 0.776154 0.499817 0.372650 0.776917 0.500580 0.413666 0.777649 0.501373 0.455658 0.778381 0.502167 0.497803 0.779114 0.502960 0.537750 0.779785 0.503754 0.575287 0.780518 0.504486 0.610229 0.781219 0.505249 0.642700 0.781860 0.506012 0.672943 0.782593 0.506775 0.701324 0.783264 0.507477 0.728119 0.783905 0.508270 0.753540 0.784607 0.509003 0.777832 0.785248 0.509705 0.801178 0.785889 0.510406 0.823883 0.786530 0.511139 0.846100 0.787201 0.511810 0.868042 0.787811 0.512482 0.889954 0.788452 0.513153 0.912231 0.789032 0.513855 0.935364 0.789703 0.514465 0.959961 0.790253 0.515137 0.064056 0.797424 0.489777 0.081451 0.798004 0.490631 0.100403 0.798676 0.491486 0.121216 0.799286 0.492249 0.144226 0.799896 0.493134 0.169800 0.800568 0.493927 0.197998 0.801178 0.494751 0.228973 0.801819 0.495544 0.262390 0.802460 0.496399 0.298126 0.803040 0.497162 0.335876 0.803680 0.498016 0.375366 0.804260 0.498810 0.416290 0.804901 0.499573 0.458252 0.805481 0.500336 0.500122 0.806091 0.501129 0.539825 0.806671 0.501892 0.577057 0.807281 0.502686 0.611786 0.807861 0.503448 0.644073 0.808441 0.504150 0.674133 0.809052 0.504944 0.702332 0.809601 0.505707 0.729004 0.810150 0.506439 0.754272 0.810730 0.507172 0.778412 0.811279 0.507874 0.801727 0.811829 0.508545 0.824280 0.812347 0.509308 0.846405 0.812866 0.509949 0.868286 0.813446 0.510651 0.890137 0.813934 0.511292 0.912384 0.814423 0.511993 0.935425 0.814972 0.512573 0.959961 0.815460 0.513214 0.065796 0.824493 0.488068 0.083252 0.825043 0.488892 0.102325 0.825562 0.489716 0.123291 0.826111 0.490570 0.146454 0.826630 0.491394 0.172150 0.827179 0.492249 0.200562 0.827667 0.493042 0.231567 0.828247 0.493866 0.265167 0.828735 0.494720 0.300873 0.829224 0.495483 0.338562 0.829742 0.496307 0.378082 0.830261 0.497101 0.418915 0.830780 0.497864 0.460815 0.831299 0.498688 0.502441 0.831787 0.499481 0.541901 0.832275 0.500244 0.578857 0.832794 0.501007 0.613342 0.833282 0.501770 0.645386 0.833771 0.502563 0.675262 0.834259 0.503296 0.703308 0.834686 0.503967 0.729828 0.835175 0.504700 0.754974 0.835663 0.505432 0.779053 0.836090 0.506195 0.802246 0.836578 0.506897 0.824738 0.837006 0.507599 0.846771 0.837463 0.508240 0.868561 0.837891 0.508881 0.890350 0.838318 0.509521 0.912537 0.838745 0.510193 0.935486 0.839142 0.510803 0.959961 0.839539 0.511444 0.067596 0.850433 0.486511 0.085114 0.850891 0.487335 0.104309 0.851318 0.488190 0.125397 0.851746 0.488983 0.148682 0.852203 0.489838 0.174530 0.852631 0.490692 0.203033 0.853058 0.491486 0.234253 0.853516 0.492310 0.267822 0.853912 0.493164 0.303558 0.854370 0.493958 0.341339 0.854797 0.494751 0.380798 0.855194 0.495544 0.421570 0.855652 0.496368 0.463318 0.856049 0.497162 0.504761 0.856476 0.497894 0.543915 0.856873 0.498688 0.580627 0.857239 0.499451 0.614838 0.857697 0.500183 0.646667 0.858063 0.500916 0.676392 0.858459 0.501678 0.704254 0.858887 0.502411 0.730621 0.859253 0.503113 0.755676 0.859619 0.503845 0.779602 0.859985 0.504547 0.802704 0.860382 0.505219 0.825104 0.860718 0.505859 0.847046 0.861084 0.506531 0.868835 0.861450 0.507233 0.890564 0.861816 0.507812 0.912628 0.862152 0.508453 0.935547 0.862457 0.509064 0.959961 0.862823 0.509674 0.069275 0.875488 0.484985 0.086975 0.875854 0.485809 0.106293 0.876190 0.486694 0.127441 0.876587 0.487518 0.150909 0.876892 0.488403 0.176910 0.877258 0.489197 0.205566 0.877625 0.490021 0.236847 0.877991 0.490845 0.270477 0.878326 0.491669 0.306244 0.878632 0.492493 0.344055 0.879028 0.493317 0.383453 0.879333 0.494110 0.424164 0.879700 0.494843 0.465759 0.880035 0.495667 0.506989 0.880371 0.496399 0.545898 0.880707 0.497162 0.582336 0.881042 0.497894 0.616333 0.881348 0.498688 0.647919 0.881653 0.499420 0.677460 0.881989 0.500153 0.705200 0.882294 0.500854 0.731415 0.882629 0.501587 0.756348 0.882935 0.502289 0.780212 0.883209 0.502930 0.803192 0.883514 0.503632 0.825531 0.883820 0.504272 0.847412 0.884094 0.504913 0.869049 0.884369 0.505554 0.890778 0.884644 0.506165 0.912781 0.884918 0.506805 0.935577 0.885162 0.507416 0.959961 0.885437 0.507965 0.071075 0.899963 0.483582 0.088837 0.900269 0.484406 0.108215 0.900513 0.485291 0.129578 0.900818 0.486084 0.153137 0.901093 0.486969 0.179321 0.901337 0.487823 0.208130 0.901642 0.488617 0.239471 0.901917 0.489441 0.273193 0.902191 0.490295 0.308960 0.902466 0.491058 0.346741 0.902740 0.491852 0.386078 0.902985 0.492615 0.426727 0.903259 0.493408 0.468231 0.903534 0.494202 0.509155 0.903778 0.494934 0.547760 0.904053 0.495667 0.584015 0.904297 0.496460 0.617767 0.904572 0.497192 0.649200 0.904816 0.497925 0.678528 0.905060 0.498657 0.706116 0.905304 0.499329 0.732208 0.905548 0.500031 0.756989 0.905762 0.500702 0.780762 0.906006 0.501404 0.803680 0.906250 0.502014 0.825897 0.906433 0.502655 0.847717 0.906677 0.503296 0.869324 0.906891 0.503906 0.890900 0.907104 0.504517 0.912903 0.907318 0.505096 0.935699 0.907532 0.505707 0.959961 0.907684 0.506226 0.072815 0.924164 0.482178 0.090698 0.924347 0.483032 0.110199 0.924561 0.483887 0.131653 0.924805 0.484680 0.155396 0.925018 0.485565 0.181702 0.925232 0.486389 0.210602 0.925415 0.487213 0.242004 0.925629 0.488068 0.275757 0.925842 0.488831 0.311646 0.926025 0.489624 0.349365 0.926208 0.490417 0.388702 0.926453 0.491180 0.429230 0.926666 0.491943 0.470612 0.926880 0.492706 0.511322 0.927032 0.493500 0.549683 0.927216 0.494232 0.585663 0.927429 0.494995 0.619202 0.927612 0.495697 0.650360 0.927795 0.496399 0.679565 0.927979 0.497101 0.706970 0.928131 0.497803 0.732941 0.928314 0.498444 0.757660 0.928497 0.499115 0.781311 0.928680 0.499786 0.804108 0.928833 0.500427 0.826263 0.928986 0.501038 0.848022 0.929169 0.501648 0.869537 0.929352 0.502258 0.891083 0.929474 0.502838 0.913025 0.929596 0.503387 0.935730 0.929779 0.503937 0.959961 0.929901 0.504517 0.074615 0.948486 0.480743 0.092529 0.948669 0.481567 0.112213 0.948761 0.482452 0.133728 0.948944 0.483276 0.157623 0.949066 0.484100 0.184021 0.949219 0.484924 0.213074 0.949371 0.485748 0.244568 0.949554 0.486542 0.278381 0.949646 0.487335 0.314270 0.949799 0.488129 0.351929 0.949921 0.488892 0.391144 0.950073 0.489655 0.431732 0.950165 0.490417 0.472961 0.950317 0.491211 0.513428 0.950439 0.491974 0.551483 0.950592 0.492706 0.587219 0.950684 0.493378 0.620544 0.950836 0.494080 0.651550 0.950958 0.494812 0.680573 0.951080 0.495453 0.707855 0.951202 0.496155 0.733643 0.951324 0.496765 0.758270 0.951447 0.497467 0.781799 0.951569 0.498077 0.804535 0.951691 0.498718 0.826630 0.951752 0.499298 0.848297 0.951843 0.499847 0.869751 0.951965 0.500427 0.891266 0.952057 0.501038 0.913116 0.952148 0.501587 0.935822 0.952271 0.502106 0.959961 0.952362 0.502594 0.076385 0.973511 0.479187 0.094421 0.973572 0.480042 0.114136 0.973663 0.480896 0.135834 0.973785 0.481689 0.159851 0.973846 0.482544 0.186401 0.973938 0.483337 0.215485 0.973969 0.484131 0.247070 0.974091 0.484955 0.280884 0.974121 0.485718 0.316803 0.974182 0.486511 0.354492 0.974304 0.487274 0.393707 0.974335 0.488068 0.434143 0.974396 0.488831 0.475250 0.974457 0.489563 0.515411 0.974518 0.490234 0.553253 0.974609 0.490997 0.588745 0.974670 0.491730 0.621857 0.974731 0.492401 0.652649 0.974762 0.493042 0.681519 0.974854 0.493683 0.708618 0.974915 0.494354 0.734375 0.974976 0.495056 0.758820 0.975037 0.495667 0.782318 0.975067 0.496216 0.804962 0.975128 0.496826 0.826965 0.975189 0.497437 0.848572 0.975220 0.497986 0.869965 0.975281 0.498566 0.891418 0.975311 0.499084 0.913239 0.975403 0.499603 0.935852 0.975403 0.500122 0.959961 0.975464 0.500549 0.078125 1.000000 0.477417 0.096252 1.000000 0.478271 0.116119 1.000000 0.479126 0.137909 1.000000 0.479950 0.162079 1.000000 0.480743 0.188721 1.000000 0.481537 0.217987 1.000000 0.482361 0.249603 1.000000 0.483154 0.283478 1.000000 0.483917 0.319366 1.000000 0.484711 0.356995 1.000000 0.485504 0.396149 1.000000 0.486176 0.436462 1.000000 0.486938 0.477448 1.000000 0.487671 0.517456 1.000000 0.488403 0.554993 1.000000 0.489105 0.590240 1.000000 0.489777 0.623108 1.000000 0.490417 0.653778 1.000000 0.491089 0.682465 1.000000 0.491730 0.709412 1.000000 0.492371 0.735016 1.000000 0.492981 0.759399 1.000000 0.493561 0.782806 1.000000 0.494141 0.805328 1.000000 0.494781 0.827301 1.000000 0.495331 0.848816 1.000000 0.495880 0.870148 1.000000 0.496368 0.891541 1.000000 0.496887 0.913361 1.000000 0.497375 0.935883 1.000000 0.497833 0.959961 1.000000 0.498291 0.033203 0.003540 0.598145 0.048737 0.004242 0.598511 0.065491 0.004913 0.598907 0.083740 0.005646 0.599304 0.103760 0.006378 0.599701 0.125885 0.007141 0.600159 0.150574 0.007935 0.600586 0.178223 0.008759 0.601044 0.208923 0.009613 0.601471 0.242554 0.010468 0.601929 0.278992 0.011353 0.602478 0.317902 0.012268 0.602966 0.358978 0.013184 0.603424 0.401947 0.014130 0.603912 0.446350 0.015106 0.604462 0.491211 0.016113 0.604950 0.534119 0.017090 0.605499 0.574219 0.018158 0.606079 0.611511 0.019196 0.606598 0.645996 0.020264 0.607178 0.678101 0.021362 0.607666 0.708069 0.022461 0.608276 0.736389 0.023621 0.608856 0.763184 0.024750 0.609436 0.788818 0.025879 0.609985 0.813538 0.027100 0.610626 0.837616 0.028290 0.611206 0.861267 0.029510 0.611755 0.884888 0.030731 0.612366 0.908813 0.032013 0.613007 0.933502 0.033295 0.613586 0.959961 0.034576 0.614227 0.034027 0.019928 0.596954 0.049652 0.020691 0.597351 0.066437 0.021393 0.597748 0.084778 0.022217 0.598175 0.104919 0.023010 0.598602 0.127197 0.023834 0.599091 0.152008 0.024689 0.599518 0.179749 0.025543 0.599976 0.210602 0.026459 0.600433 0.244385 0.027405 0.600922 0.280853 0.028320 0.601410 0.319855 0.029297 0.601929 0.360992 0.030273 0.602478 0.403961 0.031311 0.602966 0.448273 0.032349 0.603485 0.493073 0.033386 0.604034 0.535797 0.034454 0.604584 0.575684 0.035583 0.605133 0.612793 0.036682 0.605652 0.647125 0.037811 0.606262 0.679047 0.039001 0.606812 0.708923 0.040131 0.607391 0.737122 0.041382 0.607971 0.763794 0.042572 0.608551 0.789337 0.043793 0.609161 0.813995 0.045074 0.609741 0.838013 0.046356 0.610352 0.861572 0.047607 0.610931 0.885071 0.048920 0.611542 0.908966 0.050262 0.612152 0.933594 0.051605 0.612762 0.959961 0.052979 0.613373 0.034882 0.037292 0.595673 0.050598 0.038086 0.596130 0.067505 0.038910 0.596527 0.085907 0.039795 0.596985 0.106140 0.040649 0.597412 0.128540 0.041534 0.597870 0.153503 0.042480 0.598358 0.181396 0.043396 0.598846 0.212402 0.044373 0.599335 0.246246 0.045380 0.599823 0.282837 0.046387 0.600372 0.321869 0.047455 0.600830 0.363098 0.048523 0.601379 0.405975 0.049622 0.601898 0.450348 0.050720 0.602448 0.494995 0.051880 0.602997 0.537476 0.053009 0.603516 0.577240 0.054230 0.604126 0.614105 0.055389 0.604645 0.648315 0.056641 0.605255 0.680084 0.057892 0.605804 0.709778 0.059143 0.606354 0.737854 0.060425 0.606964 0.764435 0.061707 0.607544 0.789917 0.063049 0.608154 0.814453 0.064392 0.608734 0.838348 0.065765 0.609344 0.861877 0.067139 0.609894 0.885345 0.068573 0.610504 0.909119 0.069977 0.611053 0.933685 0.071411 0.611664 0.959961 0.072876 0.612305 0.035858 0.055939 0.594269 0.051636 0.056854 0.594757 0.068604 0.057739 0.595184 0.087067 0.058685 0.595642 0.107422 0.059601 0.596069 0.129944 0.060608 0.596558 0.155090 0.061615 0.597107 0.183105 0.062653 0.597565 0.214233 0.063751 0.598114 0.248260 0.064850 0.598572 0.284943 0.065948 0.599060 0.323975 0.067108 0.599609 0.365204 0.068268 0.600159 0.408173 0.069427 0.600708 0.452484 0.070648 0.601227 0.496979 0.071899 0.601807 0.539276 0.073151 0.602356 0.578796 0.074463 0.602875 0.615509 0.075745 0.603455 0.649475 0.077087 0.604034 0.681061 0.078430 0.604614 0.710693 0.079803 0.605164 0.738617 0.081207 0.605774 0.765076 0.082642 0.606354 0.790466 0.084015 0.606903 0.814911 0.085510 0.607513 0.838745 0.086975 0.608093 0.862183 0.088470 0.608643 0.885559 0.089996 0.609253 0.909271 0.091522 0.609833 0.933746 0.093079 0.610443 0.959961 0.094666 0.611023 0.036896 0.076294 0.592743 0.052673 0.077271 0.593231 0.069733 0.078278 0.593658 0.088348 0.079315 0.594116 0.108795 0.080353 0.594635 0.131439 0.081482 0.595093 0.156738 0.082611 0.595612 0.184937 0.083740 0.596100 0.216187 0.084930 0.596619 0.250305 0.086151 0.597137 0.287048 0.087341 0.597656 0.326172 0.088623 0.598206 0.367432 0.089905 0.598694 0.410431 0.091187 0.599304 0.454620 0.092529 0.599823 0.498993 0.093872 0.600311 0.541077 0.095276 0.600922 0.580383 0.096710 0.601410 0.616852 0.098083 0.602051 0.650696 0.099579 0.602600 0.682129 0.101044 0.603180 0.711578 0.102539 0.603729 0.739410 0.104065 0.604279 0.765747 0.105652 0.604858 0.791016 0.107178 0.605469 0.815430 0.108795 0.606018 0.839142 0.110382 0.606567 0.862488 0.112030 0.607147 0.885773 0.113678 0.607758 0.909424 0.115326 0.608246 0.933868 0.117035 0.608887 0.959961 0.118774 0.609467 0.037933 0.098724 0.590973 0.053802 0.099823 0.591431 0.070984 0.100983 0.591919 0.089661 0.102142 0.592407 0.110229 0.103333 0.592834 0.133026 0.104553 0.593384 0.158417 0.105804 0.593872 0.186798 0.107056 0.594391 0.218201 0.108429 0.594940 0.252411 0.109741 0.595398 0.289246 0.111084 0.595917 0.328461 0.112488 0.596466 0.369751 0.113892 0.597015 0.412689 0.115326 0.597534 0.456848 0.116821 0.598083 0.501007 0.118286 0.598633 0.542969 0.119843 0.599152 0.582001 0.121399 0.599731 0.618286 0.122955 0.600281 0.651886 0.124573 0.600861 0.683197 0.126190 0.601410 0.712494 0.127808 0.601959 0.740143 0.129517 0.602539 0.766449 0.131226 0.603088 0.791595 0.132904 0.603607 0.815857 0.134674 0.604218 0.839539 0.136414 0.604736 0.862823 0.138214 0.605286 0.886017 0.140015 0.605835 0.909576 0.141846 0.606384 0.933960 0.143707 0.606995 0.959961 0.145599 0.607574 0.039062 0.123779 0.588959 0.055023 0.125000 0.589386 0.072235 0.126282 0.589874 0.091064 0.127625 0.590332 0.111725 0.128967 0.590851 0.134674 0.130310 0.591339 0.160217 0.131714 0.591797 0.188751 0.133118 0.592316 0.220245 0.134583 0.592865 0.254578 0.136108 0.593414 0.291504 0.137604 0.593872 0.330750 0.139160 0.594421 0.372040 0.140717 0.594910 0.415009 0.142334 0.595459 0.459137 0.143982 0.596008 0.503143 0.145599 0.596527 0.544769 0.147278 0.597107 0.583618 0.149048 0.597656 0.619720 0.150757 0.598175 0.653107 0.152557 0.598755 0.684265 0.154358 0.599243 0.713440 0.156128 0.599823 0.740936 0.157990 0.600372 0.767151 0.159821 0.600922 0.792175 0.161774 0.601440 0.816345 0.163666 0.601929 0.839935 0.165588 0.602478 0.863098 0.167542 0.603058 0.886292 0.169556 0.603577 0.909760 0.171539 0.604126 0.934021 0.173615 0.604675 0.959961 0.175629 0.605255 0.040222 0.151978 0.586517 0.056244 0.153320 0.586975 0.073578 0.154816 0.587463 0.092499 0.156281 0.587982 0.113312 0.157745 0.588409 0.136353 0.159302 0.588928 0.162079 0.160919 0.589386 0.190765 0.162476 0.589966 0.222412 0.164124 0.590424 0.256836 0.165741 0.590973 0.293823 0.167419 0.591431 0.333160 0.169220 0.591949 0.374451 0.170929 0.592499 0.417389 0.172699 0.593018 0.461426 0.174530 0.593536 0.505249 0.176361 0.594055 0.546661 0.178253 0.594604 0.585297 0.180176 0.595093 0.621124 0.182068 0.595642 0.654388 0.184021 0.596191 0.685303 0.186005 0.596710 0.714386 0.187958 0.597198 0.741760 0.190002 0.597717 0.767822 0.192047 0.598236 0.792755 0.194153 0.598785 0.816833 0.196228 0.599304 0.840332 0.198303 0.599823 0.863434 0.200439 0.600372 0.886505 0.202637 0.600922 0.909882 0.204773 0.601410 0.934113 0.206970 0.601868 0.959961 0.209229 0.602448 0.041443 0.183807 0.583710 0.057556 0.185364 0.584137 0.074982 0.187012 0.584595 0.093994 0.188690 0.585083 0.114899 0.190308 0.585541 0.138123 0.192047 0.586090 0.164001 0.193848 0.586548 0.192810 0.195587 0.587067 0.224640 0.197418 0.587555 0.259155 0.199219 0.588043 0.296234 0.201111 0.588531 0.335571 0.203033 0.589081 0.376831 0.204895 0.589569 0.419769 0.206879 0.590118 0.463837 0.208923 0.590576 0.507416 0.210907 0.591034 0.548553 0.212952 0.591614 0.586945 0.215027 0.592102 0.622589 0.217041 0.592590 0.655670 0.219208 0.593140 0.686432 0.221313 0.593628 0.715271 0.223480 0.594147 0.742554 0.225677 0.594666 0.768524 0.227814 0.595154 0.793365 0.230072 0.595703 0.817322 0.232330 0.596191 0.840729 0.234558 0.596741 0.863770 0.236847 0.597198 0.886749 0.239105 0.597687 0.910065 0.241394 0.598206 0.934174 0.243713 0.598694 0.959961 0.246033 0.599182 0.042725 0.219604 0.580353 0.058899 0.221313 0.580841 0.076416 0.223053 0.581299 0.095551 0.224915 0.581818 0.116608 0.226746 0.582245 0.139923 0.228607 0.582672 0.165955 0.230469 0.583160 0.195007 0.232422 0.583710 0.226898 0.234436 0.584198 0.261566 0.236389 0.584686 0.298706 0.238434 0.585205 0.338104 0.240509 0.585663 0.379364 0.242554 0.586151 0.422302 0.244659 0.586670 0.466187 0.246826 0.587219 0.509613 0.248932 0.587677 0.550568 0.251129 0.588165 0.588623 0.253387 0.588684 0.624054 0.255524 0.589172 0.656891 0.257782 0.589661 0.687469 0.260010 0.590149 0.716248 0.262299 0.590698 0.743378 0.264587 0.591187 0.769165 0.266907 0.591644 0.793915 0.269226 0.592194 0.817841 0.271606 0.592682 0.841095 0.273926 0.593140 0.864075 0.276306 0.593658 0.887024 0.278687 0.594116 0.910248 0.281036 0.594635 0.934296 0.283539 0.595093 0.959961 0.285858 0.595612 0.044067 0.259033 0.576599 0.060303 0.260895 0.577087 0.077881 0.262787 0.577576 0.097137 0.264740 0.577972 0.118286 0.266693 0.578461 0.141785 0.268738 0.578979 0.167969 0.270721 0.579468 0.197174 0.272858 0.579956 0.229248 0.274902 0.580414 0.263947 0.277008 0.580872 0.301147 0.279175 0.581390 0.340637 0.281342 0.581879 0.381927 0.283478 0.582428 0.424744 0.285736 0.582855 0.468628 0.287964 0.583374 0.511810 0.290222 0.583862 0.552429 0.292480 0.584351 0.590302 0.294708 0.584839 0.625519 0.297089 0.585358 0.658142 0.299438 0.585846 0.688629 0.301727 0.586334 0.717194 0.304138 0.586823 0.744171 0.306549 0.587280 0.769867 0.308868 0.587799 0.794495 0.311279 0.588257 0.818298 0.313721 0.588745 0.841522 0.316101 0.589233 0.864441 0.318542 0.589722 0.887238 0.320953 0.590210 0.910400 0.323425 0.590668 0.934357 0.325867 0.591156 0.959961 0.328308 0.591644 0.045410 0.301788 0.572479 0.061768 0.303711 0.572876 0.079407 0.305786 0.573395 0.098785 0.307770 0.573853 0.120087 0.309875 0.574371 0.143768 0.311981 0.574860 0.170105 0.314117 0.575256 0.199432 0.316254 0.575775 0.231598 0.318481 0.576263 0.266418 0.320618 0.576721 0.303741 0.322845 0.577240 0.343201 0.325165 0.577728 0.384491 0.327362 0.578247 0.427338 0.329651 0.578735 0.471039 0.331909 0.579193 0.514008 0.334259 0.579681 0.554382 0.336578 0.580170 0.592072 0.338928 0.580688 0.627045 0.341339 0.581177 0.659485 0.343719 0.581635 0.689728 0.346100 0.582153 0.718140 0.348511 0.582642 0.744995 0.350952 0.583099 0.770599 0.353333 0.583557 0.795135 0.355743 0.584076 0.818817 0.358215 0.584564 0.841888 0.360626 0.585052 0.864746 0.363098 0.585510 0.887482 0.365509 0.585968 0.910583 0.367981 0.586426 0.934479 0.370483 0.586884 0.959961 0.372864 0.587372 0.046814 0.347443 0.567932 0.063232 0.349487 0.568420 0.080994 0.351532 0.568939 0.100464 0.353607 0.569397 0.121918 0.355774 0.569855 0.145782 0.357971 0.570312 0.172272 0.360138 0.570801 0.201721 0.362335 0.571320 0.234039 0.364594 0.571808 0.268921 0.366791 0.572296 0.306335 0.369080 0.572784 0.345825 0.371399 0.573273 0.387146 0.373657 0.573792 0.429901 0.376007 0.574249 0.473511 0.378265 0.574707 0.516266 0.380676 0.575256 0.556366 0.383026 0.575714 0.593781 0.385345 0.576202 0.628510 0.387787 0.576721 0.660767 0.390228 0.577209 0.690857 0.392517 0.577667 0.719086 0.394958 0.578156 0.745850 0.397369 0.578644 0.771271 0.399780 0.579163 0.795685 0.402222 0.579620 0.819275 0.404572 0.580078 0.842346 0.407074 0.580536 0.865051 0.409454 0.581024 0.887756 0.411865 0.581482 0.910706 0.414307 0.581940 0.934540 0.416779 0.582428 0.959961 0.419128 0.582916 0.048248 0.395447 0.563171 0.064758 0.397552 0.563629 0.082611 0.399658 0.564117 0.102203 0.401764 0.564606 0.123810 0.403961 0.565125 0.147766 0.406158 0.565582 0.174469 0.408325 0.566101 0.204102 0.410553 0.566589 0.236542 0.412781 0.567108 0.271515 0.415009 0.567596 0.308960 0.417328 0.568054 0.348450 0.419556 0.568512 0.389740 0.421875 0.569061 0.432495 0.424225 0.569550 0.475983 0.426514 0.570038 0.518433 0.428833 0.570557 0.558289 0.431213 0.571045 0.595459 0.433502 0.571564 0.630005 0.435883 0.572021 0.661987 0.438263 0.572510 0.691925 0.440582 0.572998 0.720032 0.442963 0.573517 0.746643 0.445343 0.574036 0.771942 0.447723 0.574432 0.796265 0.450104 0.574951 0.819763 0.452393 0.575439 0.842712 0.454803 0.575867 0.865356 0.457214 0.576355 0.887939 0.459534 0.576843 0.910889 0.461884 0.577301 0.934662 0.464264 0.577789 0.959961 0.466522 0.578217 0.049713 0.445282 0.558167 0.066254 0.447357 0.558685 0.084290 0.449524 0.559174 0.104004 0.451599 0.559662 0.125732 0.453766 0.560181 0.149841 0.455933 0.560699 0.176697 0.458099 0.561157 0.206512 0.460327 0.561707 0.239044 0.462555 0.562164 0.274139 0.464691 0.562653 0.311646 0.466949 0.563171 0.351105 0.469147 0.563660 0.392426 0.471436 0.564209 0.435089 0.473663 0.564697 0.478455 0.475891 0.565216 0.520691 0.478149 0.565735 0.560303 0.480438 0.566223 0.597198 0.482666 0.566711 0.631439 0.484955 0.567230 0.663269 0.487244 0.567749 0.693054 0.489502 0.568268 0.721008 0.491760 0.568695 0.747467 0.493988 0.569244 0.772675 0.496277 0.569702 0.796844 0.498566 0.570190 0.820282 0.500732 0.570679 0.843140 0.503021 0.571167 0.865692 0.505249 0.571686 0.888214 0.507416 0.572113 0.911041 0.509613 0.572632 0.934723 0.511841 0.573090 0.959961 0.513947 0.573578 0.051208 0.496033 0.553070 0.067871 0.498077 0.553619 0.085999 0.500122 0.554138 0.105804 0.502197 0.554657 0.127686 0.504242 0.555115 0.151978 0.506348 0.555695 0.178986 0.508362 0.556152 0.208954 0.510406 0.556702 0.241638 0.512512 0.557251 0.276825 0.514526 0.557770 0.314301 0.516632 0.558289 0.353821 0.518707 0.558807 0.395111 0.520752 0.559387 0.437805 0.522919 0.559906 0.480988 0.524902 0.560394 0.522919 0.526978 0.560944 0.562286 0.529083 0.561462 0.598877 0.531128 0.561981 0.632965 0.533142 0.562531 0.664581 0.535187 0.563049 0.694153 0.537170 0.563599 0.721954 0.539246 0.564117 0.748260 0.541229 0.564636 0.773315 0.543213 0.565125 0.797424 0.545227 0.565704 0.820740 0.547150 0.566193 0.843536 0.549133 0.566681 0.865997 0.551117 0.567200 0.888458 0.553009 0.567688 0.911224 0.554962 0.568237 0.934814 0.556854 0.568726 0.959961 0.558685 0.569214 0.052765 0.545288 0.548248 0.069550 0.547089 0.548737 0.087738 0.548920 0.549286 0.107666 0.550690 0.549835 0.129730 0.552521 0.550385 0.154144 0.554413 0.550964 0.181366 0.556213 0.551544 0.211426 0.558014 0.552094 0.244232 0.559875 0.552673 0.279449 0.561646 0.553253 0.317047 0.563507 0.553741 0.356567 0.565338 0.554382 0.397797 0.567139 0.554871 0.440399 0.569031 0.555450 0.483551 0.570770 0.556000 0.525177 0.572540 0.556580 0.564209 0.574402 0.557159 0.600616 0.576141 0.557678 0.634430 0.577972 0.558289 0.665833 0.579803 0.558807 0.695221 0.581512 0.559357 0.722870 0.583282 0.559937 0.749023 0.585022 0.560486 0.774017 0.586761 0.561035 0.798004 0.588470 0.561554 0.821259 0.590179 0.562042 0.843903 0.591919 0.562622 0.866302 0.593597 0.563171 0.888702 0.595276 0.563721 0.911377 0.596924 0.564240 0.934875 0.598602 0.564728 0.959961 0.600159 0.565277 0.054382 0.590759 0.543854 0.071228 0.592377 0.544434 0.089539 0.593964 0.545013 0.109589 0.595551 0.545593 0.131744 0.597168 0.546173 0.156372 0.598755 0.546814 0.183746 0.600342 0.547394 0.213928 0.601959 0.547943 0.246826 0.603516 0.548492 0.282135 0.605133 0.549133 0.319794 0.606720 0.549744 0.359344 0.608307 0.550323 0.400574 0.609894 0.550903 0.443024 0.611481 0.551514 0.485992 0.613037 0.552124 0.527344 0.614655 0.552643 0.566193 0.616211 0.553253 0.602295 0.617767 0.553833 0.635864 0.619293 0.554443 0.667114 0.620819 0.555023 0.696289 0.622375 0.555603 0.723816 0.623871 0.556213 0.749847 0.625397 0.556732 0.774719 0.626862 0.557281 0.798615 0.628418 0.557861 0.821686 0.629822 0.558411 0.844299 0.631287 0.558990 0.866608 0.632782 0.559570 0.888916 0.634186 0.560089 0.911560 0.635590 0.560669 0.934967 0.637024 0.561188 0.959961 0.638367 0.561737 0.055969 0.632629 0.539978 0.072876 0.634003 0.540588 0.091339 0.635437 0.541229 0.111542 0.636780 0.541840 0.133850 0.638153 0.542450 0.158600 0.639557 0.543060 0.186127 0.640930 0.543640 0.216522 0.642303 0.544281 0.249451 0.643646 0.544922 0.284943 0.645081 0.545502 0.322540 0.646423 0.546112 0.362091 0.647797 0.546783 0.403259 0.649109 0.547394 0.445709 0.650513 0.547974 0.488464 0.651855 0.548615 0.529541 0.653229 0.549225 0.568085 0.654510 0.549805 0.604004 0.655884 0.550415 0.637329 0.657166 0.551086 0.668335 0.658539 0.551666 0.697388 0.659821 0.552246 0.724731 0.661133 0.552795 0.750641 0.662354 0.553436 0.775360 0.663666 0.554016 0.799133 0.664948 0.554626 0.822174 0.666199 0.555176 0.844666 0.667480 0.555756 0.866882 0.668671 0.556335 0.889130 0.669891 0.556854 0.911743 0.671112 0.557465 0.935089 0.672211 0.558014 0.959961 0.673462 0.558594 0.057587 0.670959 0.536560 0.074646 0.672150 0.537201 0.093201 0.673340 0.537872 0.113495 0.674500 0.538452 0.135925 0.675720 0.539093 0.160828 0.676880 0.539764 0.188568 0.678070 0.540405 0.219055 0.679260 0.541046 0.252106 0.680389 0.541656 0.287628 0.681610 0.542328 0.325287 0.682770 0.543030 0.364838 0.683929 0.543610 0.405975 0.685120 0.544281 0.448364 0.686279 0.544861 0.490936 0.687439 0.545502 0.531738 0.688599 0.546143 0.570007 0.689728 0.546783 0.605652 0.690857 0.547394 0.638733 0.691986 0.548065 0.669556 0.693085 0.548615 0.698425 0.694183 0.549286 0.725616 0.695312 0.549896 0.751434 0.696411 0.550476 0.776001 0.697510 0.551086 0.799652 0.698578 0.551697 0.822662 0.699646 0.552246 0.845062 0.700714 0.552856 0.867218 0.701752 0.553467 0.889343 0.702759 0.554016 0.911865 0.703796 0.554565 0.935150 0.704773 0.555115 0.959961 0.705780 0.555695 0.059235 0.706177 0.533600 0.076385 0.707184 0.534180 0.095032 0.708221 0.534882 0.115479 0.709198 0.535553 0.138092 0.710236 0.536224 0.163147 0.711212 0.536865 0.191040 0.712219 0.537537 0.221649 0.713287 0.538177 0.254822 0.714264 0.538879 0.290344 0.715271 0.539520 0.328125 0.716278 0.540192 0.367615 0.717255 0.540802 0.408691 0.718262 0.541504 0.450989 0.719238 0.542145 0.493408 0.720215 0.542786 0.533936 0.721222 0.543427 0.571838 0.722198 0.544098 0.607300 0.723175 0.544708 0.640198 0.724121 0.545380 0.670746 0.725067 0.545990 0.699463 0.726044 0.546600 0.726532 0.726959 0.547241 0.752167 0.727905 0.547821 0.776672 0.728851 0.548462 0.800262 0.729767 0.549042 0.823059 0.730652 0.549683 0.845428 0.731537 0.550293 0.867493 0.732422 0.550812 0.889587 0.733307 0.551422 0.912018 0.734161 0.551971 0.935211 0.734985 0.552551 0.959961 0.735840 0.553101 0.060974 0.738708 0.530884 0.078156 0.739594 0.531586 0.096954 0.740448 0.532288 0.117493 0.741333 0.532928 0.140259 0.742188 0.533600 0.165497 0.743073 0.534271 0.193512 0.743927 0.534973 0.224274 0.744781 0.535675 0.257538 0.745667 0.536316 0.293121 0.746521 0.537018 0.330841 0.747375 0.537689 0.370392 0.748230 0.538361 0.411438 0.749084 0.539032 0.453522 0.749908 0.539673 0.495789 0.750763 0.540375 0.536041 0.751587 0.540985 0.573761 0.752411 0.541687 0.608917 0.753235 0.542328 0.641602 0.754059 0.542969 0.671997 0.754852 0.543579 0.700531 0.755707 0.544220 0.727448 0.756470 0.544830 0.752930 0.757263 0.545441 0.777344 0.758026 0.546112 0.800812 0.758850 0.546692 0.823517 0.759552 0.547272 0.845795 0.760345 0.547882 0.867798 0.761078 0.548462 0.889801 0.761810 0.549042 0.912109 0.762573 0.549591 0.935303 0.763245 0.550201 0.959961 0.763947 0.550751 0.062653 0.769073 0.528534 0.079956 0.769806 0.529236 0.098816 0.770569 0.529877 0.119568 0.771332 0.530609 0.142426 0.772064 0.531311 0.167816 0.772797 0.532013 0.196014 0.773529 0.532654 0.226837 0.774292 0.533386 0.260193 0.774994 0.534088 0.295898 0.775726 0.534790 0.333618 0.776489 0.535431 0.373077 0.777191 0.536102 0.414093 0.777893 0.536774 0.456207 0.778656 0.537445 0.498199 0.779327 0.538116 0.538177 0.780060 0.538818 0.575592 0.780762 0.539459 0.610535 0.781433 0.540131 0.642975 0.782135 0.540741 0.673157 0.782837 0.541351 0.701538 0.783539 0.542023 0.728333 0.784180 0.542725 0.753693 0.784851 0.543304 0.777924 0.785492 0.543884 0.801300 0.786133 0.544495 0.823975 0.786774 0.545105 0.846130 0.787445 0.545715 0.868073 0.788055 0.546295 0.890015 0.788666 0.546844 0.912292 0.789276 0.547455 0.935394 0.789886 0.547974 0.959961 0.790466 0.548584 0.064392 0.797638 0.526367 0.081787 0.798279 0.527069 0.100739 0.798920 0.527802 0.121582 0.799500 0.528503 0.144623 0.800140 0.529205 0.170197 0.800812 0.529907 0.198547 0.801392 0.530640 0.229492 0.802032 0.531342 0.262878 0.802673 0.532013 0.298615 0.803253 0.532715 0.336395 0.803894 0.533417 0.375824 0.804504 0.534088 0.416779 0.805115 0.534760 0.458740 0.805695 0.535461 0.500610 0.806305 0.536102 0.540222 0.806946 0.536774 0.577423 0.807495 0.537415 0.612091 0.808075 0.538086 0.644318 0.808655 0.538727 0.674316 0.809235 0.539398 0.702515 0.809814 0.540039 0.729126 0.810364 0.540649 0.754395 0.810944 0.541290 0.778564 0.811493 0.541870 0.801819 0.812012 0.542480 0.824402 0.812561 0.543060 0.846497 0.813110 0.543671 0.868347 0.813629 0.544250 0.890228 0.814117 0.544800 0.912415 0.814606 0.545380 0.935425 0.815125 0.545959 0.959961 0.815643 0.546478 0.066132 0.824707 0.524414 0.083649 0.825256 0.525177 0.102692 0.825745 0.525848 0.123657 0.826324 0.526550 0.146851 0.826843 0.527283 0.172546 0.827362 0.528015 0.201019 0.827881 0.528748 0.232117 0.828430 0.529419 0.265625 0.828949 0.530121 0.301361 0.829407 0.530823 0.339111 0.829956 0.531525 0.378632 0.830444 0.532257 0.419464 0.830963 0.532898 0.461304 0.831482 0.533539 0.502899 0.831970 0.534241 0.542267 0.832458 0.534882 0.579163 0.832947 0.535553 0.613617 0.833466 0.536194 0.645630 0.833954 0.536865 0.675476 0.834412 0.537506 0.703522 0.834900 0.538147 0.729950 0.835358 0.538757 0.755066 0.835815 0.539398 0.779175 0.836273 0.539978 0.802307 0.836700 0.540588 0.824799 0.837158 0.541138 0.846832 0.837616 0.541748 0.868591 0.838043 0.542297 0.890411 0.838470 0.542877 0.912537 0.838867 0.543457 0.935486 0.839264 0.543976 0.959961 0.839691 0.544495 0.067871 0.850616 0.522583 0.085480 0.851044 0.523346 0.104645 0.851471 0.524048 0.125763 0.851929 0.524811 0.149078 0.852356 0.525482 0.174957 0.852814 0.526215 0.203583 0.853210 0.526947 0.234711 0.853668 0.527679 0.268280 0.854095 0.528351 0.304077 0.854523 0.529022 0.341858 0.854919 0.529724 0.381287 0.855377 0.530457 0.422058 0.855804 0.531128 0.463776 0.856171 0.531769 0.505219 0.856628 0.532471 0.544281 0.857025 0.533142 0.580963 0.857391 0.533813 0.615112 0.857849 0.534424 0.646942 0.858246 0.535095 0.676544 0.858612 0.535736 0.704437 0.859009 0.536346 0.730774 0.859375 0.536957 0.755829 0.859772 0.537537 0.779724 0.860138 0.538147 0.802795 0.860474 0.538757 0.825195 0.860901 0.539337 0.847137 0.861206 0.539948 0.868866 0.861572 0.540466 0.890594 0.861938 0.541046 0.912659 0.862274 0.541565 0.935547 0.862579 0.542084 0.959961 0.862915 0.542572 0.069641 0.875610 0.520905 0.087341 0.875977 0.521667 0.106628 0.876312 0.522339 0.127838 0.876709 0.523132 0.151306 0.877045 0.523834 0.177368 0.877411 0.524567 0.206055 0.877747 0.525269 0.237335 0.878082 0.525940 0.270966 0.878448 0.526642 0.306824 0.878815 0.527374 0.344513 0.879150 0.528046 0.383911 0.879486 0.528748 0.424683 0.879822 0.529419 0.466278 0.880127 0.530090 0.507385 0.880493 0.530792 0.546265 0.880829 0.531433 0.582672 0.881134 0.532043 0.616608 0.881470 0.532684 0.648193 0.881805 0.533386 0.677673 0.882111 0.533966 0.705383 0.882385 0.534607 0.731567 0.882721 0.535187 0.756470 0.883057 0.535767 0.780273 0.883362 0.536377 0.803284 0.883606 0.536987 0.825623 0.883911 0.537537 0.847473 0.884186 0.538147 0.869080 0.884430 0.538635 0.890808 0.884735 0.539215 0.912781 0.885010 0.539703 0.935638 0.885254 0.540222 0.959961 0.885529 0.540710 0.071411 0.900055 0.519257 0.089172 0.900360 0.520020 0.108612 0.900604 0.520752 0.129944 0.900909 0.521484 0.153534 0.901184 0.522186 0.179718 0.901459 0.522888 0.208618 0.901764 0.523621 0.239929 0.902008 0.524292 0.273621 0.902283 0.525055 0.309479 0.902588 0.525726 0.347168 0.902832 0.526398 0.386597 0.903107 0.527100 0.427216 0.903381 0.527771 0.468628 0.903625 0.528442 0.509583 0.903900 0.529083 0.548157 0.904144 0.529755 0.584320 0.904419 0.530396 0.618011 0.904663 0.531036 0.649384 0.904877 0.531647 0.678711 0.905151 0.532288 0.706299 0.905365 0.532867 0.732330 0.905640 0.533447 0.757111 0.905823 0.534058 0.780884 0.906097 0.534668 0.803741 0.906311 0.535217 0.825958 0.906555 0.535767 0.847778 0.906738 0.536316 0.869385 0.906952 0.536804 0.890930 0.907166 0.537354 0.912933 0.907349 0.537842 0.935699 0.907593 0.538361 0.959961 0.907806 0.538849 0.073181 0.924255 0.517670 0.091034 0.924469 0.518402 0.110596 0.924683 0.519104 0.132080 0.924896 0.519836 0.155762 0.925079 0.520569 0.182129 0.925293 0.521271 0.211090 0.925507 0.522003 0.242523 0.925751 0.522644 0.276245 0.925934 0.523376 0.312134 0.926117 0.524078 0.349823 0.926331 0.524811 0.389130 0.926575 0.525421 0.429718 0.926727 0.526093 0.471039 0.926910 0.526764 0.511719 0.927094 0.527405 0.550018 0.927277 0.528076 0.585938 0.927490 0.528717 0.619446 0.927704 0.529327 0.650635 0.927826 0.529907 0.679749 0.928009 0.530518 0.707153 0.928223 0.531128 0.733063 0.928406 0.531738 0.757751 0.928558 0.532288 0.781403 0.928741 0.532837 0.804199 0.928864 0.533356 0.826355 0.929077 0.533936 0.848083 0.929260 0.534485 0.869568 0.929382 0.535004 0.891113 0.929535 0.535492 0.913055 0.929657 0.535980 0.935730 0.929810 0.536438 0.959961 0.929932 0.536896 0.074982 0.948578 0.515991 0.092926 0.948700 0.516724 0.112549 0.948853 0.517456 0.134155 0.948975 0.518158 0.158020 0.949127 0.518921 0.184479 0.949249 0.519592 0.213531 0.949432 0.520294 0.245056 0.949585 0.521027 0.278839 0.949738 0.521729 0.314728 0.949860 0.522400 0.352417 0.949982 0.523041 0.391693 0.950104 0.523743 0.432220 0.950256 0.524414 0.473358 0.950378 0.525024 0.513794 0.950470 0.525665 0.551849 0.950623 0.526306 0.587555 0.950714 0.526947 0.620819 0.950867 0.527557 0.651733 0.950989 0.528137 0.680756 0.951141 0.528778 0.707977 0.951233 0.529358 0.733826 0.951355 0.529846 0.758362 0.951477 0.530426 0.781891 0.951569 0.530945 0.804596 0.951691 0.531555 0.826691 0.951782 0.532074 0.848358 0.951874 0.532593 0.869812 0.951996 0.533081 0.891296 0.952087 0.533508 0.913147 0.952209 0.533966 0.935822 0.952301 0.534454 0.959961 0.952393 0.534943 0.076721 0.973541 0.514252 0.094757 0.973633 0.514923 0.114502 0.973694 0.515717 0.136230 0.973816 0.516357 0.160217 0.973846 0.517059 0.186859 0.973969 0.517853 0.216003 0.974030 0.518585 0.247559 0.974091 0.519226 0.281403 0.974182 0.519897 0.317291 0.974213 0.520599 0.354950 0.974304 0.521240 0.394135 0.974365 0.521912 0.434540 0.974396 0.522522 0.475616 0.974518 0.523193 0.515778 0.974548 0.523804 0.553558 0.974609 0.524445 0.589050 0.974701 0.525055 0.622101 0.974731 0.525635 0.652863 0.974823 0.526245 0.681702 0.974854 0.526794 0.708801 0.974915 0.527374 0.734497 0.974976 0.527924 0.758942 0.975037 0.528503 0.782379 0.975067 0.529022 0.805023 0.975128 0.529541 0.827057 0.975189 0.530029 0.848633 0.975250 0.530487 0.869995 0.975281 0.530975 0.891449 0.975342 0.531464 0.913269 0.975403 0.531921 0.935852 0.975433 0.532349 0.959961 0.975494 0.532745 0.078491 1.000000 0.512299 0.096619 1.000000 0.512939 0.116455 1.000000 0.513672 0.138336 1.000000 0.514435 0.162445 1.000000 0.515137 0.189148 1.000000 0.515869 0.218414 1.000000 0.516510 0.250031 1.000000 0.517212 0.283936 1.000000 0.517914 0.319855 1.000000 0.518585 0.357452 1.000000 0.519196 0.396637 1.000000 0.519867 0.436951 1.000000 0.520477 0.477875 1.000000 0.521149 0.517761 1.000000 0.521729 0.555298 1.000000 0.522308 0.590546 1.000000 0.522980 0.623352 1.000000 0.523529 0.653931 1.000000 0.524078 0.682617 1.000000 0.524628 0.709564 1.000000 0.525238 0.735107 1.000000 0.525787 0.759491 1.000000 0.526306 0.782867 1.000000 0.526794 0.805420 1.000000 0.527252 0.827332 1.000000 0.527771 0.848877 1.000000 0.528229 0.870209 1.000000 0.528717 0.891571 1.000000 0.529144 0.913391 1.000000 0.529541 0.935944 1.000000 0.529938 0.959961 1.000000 0.530334 0.033295 0.003815 0.636353 0.048889 0.004486 0.636688 0.065643 0.005188 0.636993 0.083893 0.005890 0.637329 0.103943 0.006653 0.637695 0.126160 0.007446 0.638031 0.150848 0.008240 0.638428 0.178467 0.009064 0.638763 0.209259 0.009918 0.639160 0.242889 0.010803 0.639587 0.279297 0.011688 0.639923 0.318237 0.012604 0.640381 0.359375 0.013519 0.640778 0.402313 0.014496 0.641205 0.446655 0.015472 0.641632 0.491516 0.016479 0.642090 0.534454 0.017487 0.642517 0.574463 0.018524 0.642975 0.611755 0.019592 0.643433 0.646271 0.020691 0.643921 0.678253 0.021759 0.644348 0.708221 0.022888 0.644867 0.736481 0.024017 0.645325 0.763306 0.025177 0.645782 0.788910 0.026337 0.646301 0.813629 0.027557 0.646790 0.837646 0.028717 0.647278 0.861359 0.029968 0.647736 0.884949 0.031189 0.648254 0.908844 0.032440 0.648773 0.933533 0.033752 0.649231 0.959961 0.035004 0.649750 0.034180 0.020233 0.635040 0.049805 0.020935 0.635376 0.066620 0.021698 0.635742 0.084991 0.022491 0.636078 0.105103 0.023315 0.636444 0.127441 0.024139 0.636810 0.152283 0.024963 0.637207 0.180084 0.025879 0.637573 0.210938 0.026794 0.637970 0.244720 0.027710 0.638397 0.281281 0.028656 0.638794 0.320190 0.029663 0.639252 0.361389 0.030640 0.639648 0.404327 0.031647 0.640106 0.448700 0.032715 0.640533 0.493439 0.033783 0.640961 0.536102 0.034882 0.641418 0.575989 0.035919 0.641907 0.613037 0.037079 0.642365 0.647339 0.038239 0.642822 0.679260 0.039398 0.643311 0.709106 0.040588 0.643768 0.737213 0.041809 0.644287 0.763977 0.043030 0.644745 0.789459 0.044281 0.645233 0.814087 0.045502 0.645691 0.838074 0.046783 0.646240 0.861633 0.048126 0.646729 0.885132 0.049408 0.647217 0.908966 0.050720 0.647675 0.933624 0.052124 0.648163 0.959961 0.053467 0.648712 0.035065 0.037598 0.633667 0.050781 0.038391 0.633972 0.067688 0.039215 0.634369 0.086121 0.040039 0.634735 0.106384 0.040955 0.635101 0.128815 0.041901 0.635498 0.153778 0.042786 0.635864 0.181732 0.043762 0.636292 0.212738 0.044739 0.636719 0.246643 0.045746 0.637085 0.283234 0.046783 0.637543 0.322266 0.047821 0.637970 0.363434 0.048920 0.638397 0.406433 0.050018 0.638855 0.450745 0.051117 0.639282 0.495361 0.052246 0.639801 0.537842 0.053467 0.640198 0.577515 0.054596 0.640686 0.614349 0.055847 0.641113 0.648529 0.057098 0.641602 0.680237 0.058319 0.642120 0.709991 0.059601 0.642548 0.737976 0.060913 0.643066 0.764557 0.062195 0.643494 0.790009 0.063568 0.643951 0.814545 0.064880 0.644501 0.838440 0.066254 0.644989 0.861938 0.067688 0.645447 0.885376 0.069031 0.645935 0.909119 0.070496 0.646484 0.933685 0.071960 0.646973 0.959961 0.073395 0.647430 0.036072 0.056244 0.632141 0.051819 0.057159 0.632507 0.068817 0.058075 0.632874 0.087341 0.058990 0.633240 0.107666 0.059967 0.633636 0.130249 0.061005 0.634033 0.155365 0.061981 0.634430 0.183472 0.063080 0.634857 0.214600 0.064148 0.635284 0.248596 0.065247 0.635681 0.285309 0.066376 0.636139 0.324402 0.067535 0.636566 0.365601 0.068695 0.636993 0.408600 0.069916 0.637390 0.452850 0.071075 0.637909 0.497314 0.072357 0.638367 0.539612 0.073639 0.638824 0.579102 0.074890 0.639221 0.615723 0.076233 0.639801 0.649689 0.077576 0.640228 0.681274 0.078949 0.640686 0.710846 0.080322 0.641144 0.738739 0.081696 0.641602 0.765228 0.083099 0.642120 0.790558 0.084595 0.642609 0.815002 0.086029 0.643066 0.838806 0.087494 0.643555 0.862274 0.089050 0.644073 0.885651 0.090546 0.644531 0.909302 0.092102 0.644989 0.933807 0.093658 0.645447 0.959961 0.095215 0.645966 0.037048 0.076630 0.630432 0.052887 0.077606 0.630829 0.069977 0.078674 0.631195 0.088593 0.079681 0.631592 0.109070 0.080780 0.631989 0.131744 0.081909 0.632355 0.156982 0.083008 0.632782 0.185272 0.084198 0.633240 0.216553 0.085388 0.633667 0.250641 0.086578 0.634094 0.287445 0.087830 0.634491 0.326599 0.089081 0.634918 0.367798 0.090393 0.635376 0.410797 0.091705 0.635864 0.455017 0.093018 0.636261 0.499359 0.094391 0.636688 0.541443 0.095795 0.637177 0.580658 0.097198 0.637634 0.617126 0.098663 0.638123 0.650909 0.100128 0.638550 0.682281 0.101593 0.639008 0.711761 0.103119 0.639496 0.739502 0.104614 0.639984 0.765869 0.106171 0.640411 0.791138 0.107758 0.640900 0.815460 0.109344 0.641388 0.839203 0.110962 0.641846 0.862549 0.112640 0.642303 0.885834 0.114288 0.642792 0.909454 0.115967 0.643219 0.933868 0.117676 0.643707 0.959961 0.119385 0.644196 0.038147 0.099121 0.628510 0.054077 0.100250 0.628906 0.071228 0.101410 0.629272 0.089905 0.102570 0.629669 0.110535 0.103760 0.630035 0.133331 0.105011 0.630524 0.158722 0.106262 0.630920 0.187164 0.107574 0.631317 0.218567 0.108856 0.631744 0.252808 0.110229 0.632141 0.289673 0.111633 0.632599 0.328888 0.113007 0.633026 0.370117 0.114441 0.633484 0.413086 0.115906 0.633911 0.457275 0.117371 0.634308 0.501434 0.118866 0.634827 0.543274 0.120453 0.635254 0.582275 0.121948 0.635712 0.618561 0.123566 0.636108 0.652130 0.125153 0.636597 0.683380 0.126770 0.637024 0.712677 0.128448 0.637512 0.740295 0.130096 0.637970 0.766571 0.131836 0.638428 0.791718 0.133575 0.638916 0.815948 0.135284 0.639313 0.839600 0.137085 0.639801 0.862885 0.138885 0.640259 0.886108 0.140686 0.640656 0.909607 0.142548 0.641174 0.933990 0.144348 0.641602 0.959961 0.146240 0.642029 0.039276 0.124207 0.626312 0.055237 0.125519 0.626678 0.072510 0.126770 0.627045 0.091309 0.128082 0.627472 0.112000 0.129425 0.627869 0.134979 0.130859 0.628296 0.160553 0.132233 0.628662 0.189117 0.133667 0.629089 0.220642 0.135132 0.629547 0.255005 0.136627 0.629944 0.291962 0.138184 0.630371 0.331207 0.139709 0.630768 0.372528 0.141327 0.631226 0.415436 0.142944 0.631683 0.459564 0.144531 0.632080 0.503540 0.146240 0.632538 0.545135 0.147949 0.632935 0.583923 0.149658 0.633423 0.619995 0.151428 0.633850 0.653351 0.153168 0.634277 0.684479 0.154999 0.634674 0.713623 0.156799 0.635193 0.741058 0.158630 0.635620 0.767212 0.160553 0.636047 0.792267 0.162476 0.636444 0.816437 0.164368 0.636902 0.839996 0.166321 0.637329 0.863220 0.168335 0.637817 0.886322 0.170227 0.638245 0.909760 0.172302 0.638641 0.934021 0.174286 0.639069 0.959961 0.176361 0.639465 0.040497 0.152496 0.623688 0.056519 0.153870 0.624084 0.073853 0.155365 0.624512 0.092773 0.156769 0.624908 0.113586 0.158325 0.625275 0.136688 0.159851 0.625671 0.162415 0.161438 0.626068 0.191162 0.163116 0.626495 0.222809 0.164673 0.626892 0.257263 0.166351 0.627289 0.294312 0.168091 0.627716 0.333588 0.169800 0.628082 0.374908 0.171600 0.628571 0.417816 0.173431 0.628998 0.461884 0.175201 0.629364 0.505646 0.177094 0.629822 0.546967 0.178894 0.630249 0.585571 0.180817 0.630646 0.621429 0.182800 0.631073 0.654602 0.184723 0.631500 0.685547 0.186737 0.631927 0.714508 0.188751 0.632355 0.741913 0.190735 0.632751 0.767914 0.192841 0.633148 0.792816 0.194916 0.633606 0.816925 0.196991 0.634033 0.840393 0.199127 0.634460 0.863495 0.201263 0.634827 0.886536 0.203400 0.635254 0.909912 0.205627 0.635651 0.934113 0.207764 0.636047 0.959961 0.209991 0.636475 0.041687 0.184387 0.620697 0.057800 0.185974 0.621094 0.075226 0.187653 0.621460 0.094269 0.189270 0.621796 0.115234 0.190948 0.622223 0.138489 0.192688 0.622620 0.164368 0.194458 0.623016 0.193237 0.196228 0.623413 0.225037 0.198029 0.623810 0.259583 0.199921 0.624176 0.296692 0.201813 0.624634 0.336029 0.203705 0.625031 0.377380 0.205658 0.625427 0.420258 0.207642 0.625854 0.464233 0.209595 0.626190 0.507904 0.211639 0.626648 0.548889 0.213654 0.627045 0.587250 0.215759 0.627441 0.622894 0.217865 0.627899 0.655884 0.219971 0.628265 0.686646 0.222137 0.628662 0.715454 0.224274 0.629059 0.742706 0.226440 0.629456 0.768616 0.228699 0.629913 0.793488 0.230896 0.630310 0.817413 0.233124 0.630676 0.840820 0.235413 0.631042 0.863831 0.237671 0.631439 0.886810 0.239929 0.631866 0.910126 0.242249 0.632294 0.934235 0.244537 0.632660 0.959961 0.246887 0.633026 0.042938 0.220184 0.617218 0.059143 0.221985 0.617554 0.076691 0.223724 0.617950 0.095825 0.225586 0.618347 0.116882 0.227448 0.618713 0.140289 0.229309 0.619080 0.166351 0.231232 0.619476 0.195404 0.233185 0.619873 0.227325 0.235138 0.620270 0.261993 0.237122 0.620667 0.299164 0.239197 0.621033 0.338531 0.241211 0.621399 0.379852 0.243347 0.621796 0.422699 0.245422 0.622223 0.466614 0.247559 0.622589 0.510010 0.249786 0.623016 0.550873 0.251892 0.623444 0.588959 0.254120 0.623810 0.624359 0.256378 0.624207 0.657135 0.258606 0.624573 0.687714 0.260834 0.625000 0.716431 0.263184 0.625397 0.743561 0.265442 0.625793 0.769318 0.267761 0.626160 0.794037 0.270111 0.626526 0.817902 0.272461 0.626923 0.841187 0.274811 0.627289 0.864136 0.277161 0.627716 0.887054 0.279541 0.628082 0.910278 0.281982 0.628448 0.934296 0.284332 0.628845 0.959961 0.286774 0.629181 0.044312 0.259735 0.613281 0.060547 0.261597 0.613647 0.078156 0.263489 0.614044 0.097443 0.265472 0.614380 0.118683 0.267456 0.614777 0.142151 0.269409 0.615112 0.168396 0.271515 0.615509 0.197601 0.273590 0.615936 0.229645 0.275635 0.616272 0.264435 0.277802 0.616638 0.301697 0.279968 0.617035 0.341095 0.282104 0.617432 0.382416 0.284332 0.617828 0.425232 0.286499 0.618225 0.469055 0.288818 0.618561 0.512268 0.291046 0.618988 0.552795 0.293304 0.619385 0.590698 0.295654 0.619751 0.625824 0.297943 0.620178 0.658417 0.300293 0.620544 0.688812 0.302673 0.620911 0.717377 0.304993 0.621307 0.744354 0.307343 0.621674 0.770020 0.309784 0.622070 0.794617 0.312134 0.622437 0.818390 0.314545 0.622803 0.841614 0.317017 0.623230 0.864471 0.319397 0.623566 0.887268 0.321838 0.623962 0.910461 0.324371 0.624298 0.934387 0.326752 0.624664 0.959961 0.329224 0.625061 0.045685 0.302460 0.608948 0.062012 0.304504 0.609283 0.079681 0.306488 0.609680 0.099121 0.308594 0.610016 0.120453 0.310669 0.610443 0.144104 0.312744 0.610809 0.170502 0.314911 0.611176 0.199890 0.317108 0.611511 0.232056 0.319244 0.611908 0.266907 0.321503 0.612335 0.304199 0.323608 0.612701 0.343658 0.325928 0.613068 0.385040 0.328217 0.613434 0.427765 0.330444 0.613861 0.471497 0.332825 0.614197 0.514404 0.335175 0.614594 0.554779 0.337463 0.615021 0.592377 0.339844 0.615417 0.627319 0.342194 0.615784 0.659668 0.344543 0.616180 0.689941 0.347015 0.616516 0.718323 0.349396 0.616913 0.745148 0.351776 0.617279 0.770721 0.354218 0.617645 0.795227 0.356598 0.618011 0.818909 0.359100 0.618408 0.842010 0.361572 0.618774 0.864807 0.363953 0.619141 0.887543 0.366425 0.619476 0.910583 0.368896 0.619873 0.934479 0.371307 0.620239 0.959961 0.373779 0.620544 0.047058 0.348145 0.604218 0.063477 0.350250 0.604584 0.081299 0.352325 0.605011 0.100769 0.354431 0.605408 0.122314 0.356598 0.605713 0.146118 0.358765 0.606079 0.172668 0.360962 0.606476 0.202179 0.363220 0.606812 0.234497 0.365387 0.607239 0.269470 0.367645 0.607635 0.306824 0.369904 0.608002 0.346313 0.372192 0.608429 0.387665 0.374542 0.608795 0.430328 0.376801 0.609161 0.473969 0.379181 0.609558 0.516663 0.381531 0.609955 0.556732 0.383881 0.610291 0.594116 0.386261 0.610718 0.628815 0.388641 0.611084 0.661011 0.391022 0.611481 0.691071 0.393463 0.611816 0.719269 0.395813 0.612213 0.745972 0.398224 0.612579 0.771423 0.400665 0.612976 0.795776 0.403076 0.613342 0.819397 0.405518 0.613739 0.842438 0.407959 0.614105 0.865112 0.410370 0.614441 0.887817 0.412781 0.614807 0.910767 0.415253 0.615173 0.934570 0.417633 0.615570 0.959961 0.420074 0.615875 0.048523 0.396240 0.599213 0.065033 0.398346 0.599640 0.082947 0.400452 0.600037 0.102539 0.402588 0.600403 0.124146 0.404785 0.600769 0.148163 0.406921 0.601135 0.174896 0.409149 0.601562 0.204498 0.411316 0.601929 0.236969 0.413574 0.602325 0.272034 0.415894 0.602722 0.309448 0.418121 0.603058 0.348999 0.420441 0.603516 0.390289 0.422729 0.603912 0.432953 0.425018 0.604248 0.476440 0.427368 0.604614 0.518890 0.429688 0.605042 0.558685 0.432037 0.605408 0.595825 0.434387 0.605774 0.630280 0.436768 0.606201 0.662292 0.439117 0.606537 0.692139 0.441498 0.606964 0.720245 0.443787 0.607330 0.746765 0.446167 0.607727 0.772095 0.448608 0.608124 0.796356 0.450928 0.608490 0.819855 0.453308 0.608887 0.842834 0.455688 0.609253 0.865387 0.458038 0.609558 0.888000 0.460358 0.610016 0.910919 0.462799 0.610291 0.934692 0.465057 0.610718 0.959961 0.467407 0.611053 0.049988 0.446045 0.594086 0.066589 0.448151 0.594452 0.084564 0.450287 0.594849 0.104340 0.452393 0.595215 0.126099 0.454620 0.595642 0.150238 0.456757 0.596039 0.177155 0.458923 0.596405 0.206909 0.461090 0.596863 0.239532 0.463287 0.597168 0.274689 0.465515 0.597595 0.312134 0.467773 0.598022 0.351593 0.470001 0.598419 0.392944 0.472290 0.598785 0.435608 0.474518 0.599213 0.478943 0.476746 0.599609 0.521149 0.479034 0.599976 0.560699 0.481262 0.600403 0.597534 0.483551 0.600769 0.631775 0.485779 0.601196 0.663483 0.488037 0.601593 0.693268 0.490326 0.601959 0.721130 0.492554 0.602386 0.747589 0.494812 0.602753 0.772827 0.497101 0.603119 0.796967 0.499329 0.603546 0.820343 0.501617 0.603882 0.843231 0.503815 0.604309 0.865753 0.506042 0.604675 0.888245 0.508240 0.605072 0.911072 0.510376 0.605438 0.934723 0.512604 0.605804 0.959961 0.514740 0.606171 0.051544 0.496796 0.588776 0.068207 0.498840 0.589172 0.086304 0.500854 0.589600 0.106171 0.502930 0.590027 0.128052 0.504944 0.590393 0.152374 0.507019 0.590820 0.179474 0.509125 0.591217 0.209412 0.511169 0.591614 0.242096 0.513245 0.592072 0.277313 0.515350 0.592499 0.314819 0.517365 0.592896 0.354401 0.519501 0.593353 0.395660 0.521545 0.593750 0.438232 0.523560 0.594177 0.481445 0.525696 0.594604 0.523346 0.527740 0.595001 0.562592 0.529755 0.595398 0.599213 0.531830 0.595917 0.633270 0.533875 0.596283 0.664764 0.535919 0.596741 0.694336 0.537964 0.597137 0.722107 0.539917 0.597534 0.748383 0.541962 0.597961 0.773468 0.543976 0.598389 0.797546 0.545929 0.598785 0.820801 0.547913 0.599213 0.843628 0.549927 0.599670 0.866028 0.551788 0.600037 0.888519 0.553711 0.600464 0.911255 0.555634 0.600830 0.934845 0.557495 0.601227 0.959961 0.559387 0.601654 0.053070 0.545929 0.583710 0.069855 0.547760 0.584198 0.088074 0.549591 0.584595 0.108002 0.551392 0.585052 0.130096 0.553223 0.585449 0.154572 0.554993 0.585938 0.181824 0.556854 0.586395 0.211884 0.558655 0.586823 0.244690 0.560516 0.587250 0.279999 0.562347 0.587799 0.317535 0.564178 0.588196 0.357147 0.565979 0.588623 0.398376 0.567841 0.589111 0.440826 0.569580 0.589539 0.483978 0.571442 0.589996 0.525574 0.573273 0.590485 0.564575 0.575043 0.590942 0.600952 0.576843 0.591400 0.634705 0.578583 0.591858 0.666077 0.580414 0.592285 0.695465 0.582214 0.592743 0.723053 0.583923 0.593170 0.749237 0.585724 0.593597 0.774139 0.587433 0.594055 0.798096 0.589111 0.594513 0.821320 0.590820 0.594940 0.843994 0.592590 0.595398 0.866364 0.594238 0.595795 0.888733 0.595856 0.596252 0.911407 0.597473 0.596680 0.934937 0.599213 0.597107 0.959961 0.600800 0.597534 0.054657 0.591400 0.579132 0.071533 0.592987 0.579590 0.089813 0.594574 0.580048 0.109955 0.596191 0.580566 0.132141 0.597717 0.581055 0.156799 0.599365 0.581543 0.184174 0.600952 0.582001 0.214417 0.602539 0.582489 0.247314 0.604126 0.583008 0.282715 0.605743 0.583466 0.320282 0.607300 0.583954 0.359833 0.608887 0.584442 0.401123 0.610504 0.584900 0.443573 0.612061 0.585419 0.486481 0.613647 0.585876 0.527802 0.615204 0.586365 0.566498 0.616760 0.586853 0.602661 0.618347 0.587311 0.636169 0.619873 0.587830 0.667328 0.621368 0.588257 0.696503 0.622925 0.588745 0.723999 0.624420 0.589233 0.750000 0.625946 0.589691 0.774841 0.627441 0.590179 0.798676 0.628876 0.590637 0.821777 0.630341 0.591095 0.844391 0.631866 0.591553 0.866669 0.633270 0.591980 0.888947 0.634735 0.592468 0.911591 0.636108 0.592926 0.934998 0.637482 0.593353 0.959961 0.638885 0.593811 0.056244 0.633118 0.575043 0.073242 0.634583 0.575562 0.091675 0.635925 0.576080 0.111908 0.637299 0.576599 0.134186 0.638641 0.577087 0.159027 0.640106 0.577576 0.186615 0.641418 0.578125 0.216949 0.642792 0.578613 0.249939 0.644196 0.579102 0.285400 0.645599 0.579651 0.323029 0.646942 0.580139 0.362579 0.648285 0.580719 0.403809 0.649689 0.581207 0.446167 0.651001 0.581696 0.488953 0.652374 0.582214 0.529968 0.653687 0.582703 0.568451 0.655029 0.583252 0.604279 0.656372 0.583710 0.637573 0.657654 0.584198 0.668579 0.658997 0.584717 0.697601 0.660309 0.585236 0.724854 0.661560 0.585693 0.750793 0.662872 0.586212 0.775482 0.664124 0.586700 0.799255 0.665375 0.587158 0.822266 0.666656 0.587646 0.844727 0.667877 0.588135 0.866974 0.669067 0.588593 0.889191 0.670319 0.589050 0.911743 0.671539 0.589539 0.935089 0.672699 0.589996 0.959961 0.673889 0.590485 0.057922 0.671387 0.571472 0.074982 0.672546 0.572021 0.093506 0.673767 0.572510 0.113861 0.674957 0.573029 0.136322 0.676117 0.573578 0.161316 0.677338 0.574127 0.189056 0.678558 0.574646 0.219543 0.679688 0.575195 0.252655 0.680878 0.575714 0.288177 0.682068 0.576263 0.325806 0.683197 0.576813 0.365387 0.684387 0.577332 0.406464 0.685516 0.577881 0.448792 0.686707 0.578400 0.491394 0.687866 0.578918 0.532166 0.688965 0.579468 0.570343 0.690125 0.579987 0.605988 0.691284 0.580536 0.639038 0.692383 0.581024 0.669800 0.693512 0.581543 0.698639 0.694641 0.582031 0.725800 0.695709 0.582550 0.751587 0.696808 0.583069 0.776154 0.697937 0.583557 0.799774 0.698975 0.584076 0.822723 0.700043 0.584595 0.845123 0.701080 0.585052 0.867279 0.702118 0.585541 0.889435 0.703186 0.586029 0.911896 0.704163 0.586517 0.935181 0.705170 0.587006 0.959961 0.706177 0.587433 0.059601 0.706512 0.568237 0.076721 0.707520 0.568787 0.095398 0.708527 0.569397 0.115875 0.709564 0.569916 0.138489 0.710571 0.570465 0.163574 0.711578 0.571045 0.191498 0.712616 0.571564 0.222107 0.713623 0.572113 0.255371 0.714630 0.572723 0.290894 0.715668 0.573273 0.328613 0.716644 0.573822 0.368195 0.717651 0.574371 0.409180 0.718628 0.574921 0.451447 0.719635 0.575439 0.493835 0.720612 0.575989 0.534302 0.721558 0.576538 0.572205 0.722534 0.577087 0.607635 0.723541 0.577637 0.640411 0.724487 0.578156 0.671021 0.725433 0.578705 0.699707 0.726410 0.579193 0.726715 0.727295 0.579712 0.752350 0.728241 0.580231 0.776794 0.729156 0.580780 0.800323 0.730103 0.581268 0.823181 0.730957 0.581787 0.845459 0.731842 0.582275 0.867554 0.732758 0.582733 0.889618 0.733612 0.583313 0.912048 0.734467 0.583710 0.935242 0.735321 0.584198 0.959961 0.736145 0.584686 0.061279 0.739014 0.565369 0.078522 0.739899 0.565948 0.097290 0.740753 0.566498 0.117889 0.741638 0.567139 0.140656 0.742523 0.567657 0.165924 0.743378 0.568237 0.194000 0.744263 0.568848 0.224762 0.745087 0.569427 0.258026 0.745972 0.570007 0.293640 0.746826 0.570587 0.331360 0.747681 0.571136 0.370911 0.748535 0.571686 0.411926 0.749359 0.572235 0.454010 0.750244 0.572784 0.496277 0.751068 0.573364 0.536438 0.751892 0.573914 0.574097 0.752716 0.574432 0.609222 0.753571 0.575043 0.641846 0.754364 0.575562 0.672211 0.755188 0.576080 0.700684 0.755981 0.576630 0.727570 0.756775 0.577179 0.753082 0.757568 0.577698 0.777435 0.758301 0.578217 0.800873 0.759094 0.578735 0.823608 0.759857 0.579224 0.845856 0.760559 0.579773 0.867859 0.761383 0.580231 0.889862 0.762085 0.580719 0.912140 0.762817 0.581177 0.935333 0.763519 0.581665 0.959961 0.764221 0.582123 0.062988 0.769348 0.562805 0.080292 0.770111 0.563385 0.099182 0.770844 0.563965 0.119965 0.771576 0.564545 0.142822 0.772339 0.565186 0.168304 0.773071 0.565735 0.196472 0.773804 0.566406 0.227356 0.774567 0.566925 0.260742 0.775269 0.567505 0.296387 0.775970 0.568085 0.334106 0.776764 0.568665 0.373657 0.777466 0.569244 0.414581 0.778168 0.569824 0.456635 0.778900 0.570404 0.498688 0.779602 0.570923 0.538574 0.780304 0.571533 0.575958 0.781006 0.572083 0.610809 0.781677 0.572601 0.643219 0.782379 0.573151 0.673401 0.783081 0.573730 0.701691 0.783752 0.574249 0.728455 0.784393 0.574829 0.753815 0.785095 0.575348 0.778046 0.785736 0.575836 0.801422 0.786377 0.576355 0.824036 0.787018 0.576843 0.846191 0.787659 0.577393 0.868134 0.788269 0.577850 0.890045 0.788879 0.578400 0.912292 0.789520 0.578857 0.935394 0.790100 0.579315 0.959961 0.790649 0.579773 0.064758 0.797852 0.560425 0.082123 0.798492 0.561035 0.101135 0.799133 0.561676 0.121979 0.799774 0.562256 0.145020 0.800385 0.562866 0.170685 0.801025 0.563507 0.198975 0.801636 0.564056 0.229980 0.802277 0.564636 0.263428 0.802887 0.565247 0.299133 0.803497 0.565826 0.336914 0.804108 0.566467 0.376434 0.804749 0.567047 0.417267 0.805328 0.567596 0.459198 0.805939 0.568146 0.501007 0.806519 0.568756 0.540619 0.807129 0.569305 0.577759 0.807709 0.569855 0.612396 0.808319 0.570465 0.644531 0.808868 0.570953 0.674561 0.809448 0.571533 0.702698 0.809998 0.572083 0.729248 0.810577 0.572601 0.754547 0.811127 0.573151 0.778687 0.811707 0.573578 0.801941 0.812225 0.574158 0.824493 0.812744 0.574677 0.846558 0.813293 0.575195 0.868378 0.813812 0.575653 0.890259 0.814331 0.576141 0.912415 0.814789 0.576599 0.935455 0.815338 0.577118 0.959961 0.815796 0.577545 0.066467 0.824890 0.558319 0.083923 0.825439 0.558899 0.103058 0.825958 0.559540 0.124084 0.826508 0.560150 0.147247 0.826996 0.560760 0.173035 0.827545 0.561340 0.201477 0.828094 0.561981 0.232574 0.828613 0.562531 0.266113 0.829102 0.563141 0.301849 0.829590 0.563782 0.339661 0.830139 0.564331 0.379120 0.830658 0.564941 0.419922 0.831146 0.565552 0.461731 0.831696 0.566071 0.503326 0.832153 0.566650 0.542664 0.832642 0.567230 0.579559 0.833130 0.567810 0.613892 0.833649 0.568359 0.645844 0.834106 0.568939 0.675690 0.834564 0.569458 0.703674 0.835052 0.569977 0.730072 0.835541 0.570496 0.755219 0.835999 0.571075 0.779266 0.836426 0.571564 0.802399 0.836884 0.572113 0.824890 0.837341 0.572601 0.846893 0.837769 0.573059 0.868652 0.838196 0.573578 0.890472 0.838593 0.574036 0.912567 0.839020 0.574493 0.935486 0.839417 0.574951 0.959961 0.839844 0.575409 0.068207 0.850769 0.556305 0.085815 0.851196 0.556915 0.105011 0.851624 0.557526 0.126190 0.852112 0.558105 0.149536 0.852509 0.558777 0.175385 0.852966 0.559387 0.204010 0.853394 0.559967 0.235229 0.853821 0.560608 0.268799 0.854279 0.561188 0.304626 0.854675 0.561798 0.342316 0.855072 0.562408 0.381714 0.855530 0.562988 0.422577 0.855927 0.563538 0.464233 0.856384 0.564117 0.505554 0.856750 0.564728 0.544647 0.857147 0.565308 0.581329 0.857605 0.565857 0.615387 0.857971 0.566376 0.647156 0.858368 0.566956 0.676788 0.858765 0.567474 0.704651 0.859131 0.568024 0.730927 0.859497 0.568573 0.755920 0.859924 0.569092 0.779816 0.860291 0.569611 0.802887 0.860626 0.570099 0.825256 0.861023 0.570587 0.847198 0.861359 0.571075 0.868896 0.861664 0.571564 0.890656 0.862030 0.571991 0.912689 0.862366 0.572479 0.935577 0.862701 0.572906 0.959961 0.863037 0.573364 0.069977 0.875763 0.554413 0.087646 0.876099 0.554993 0.106995 0.876465 0.555634 0.128235 0.876831 0.556244 0.151764 0.877197 0.556885 0.177826 0.877533 0.557526 0.206543 0.877869 0.558105 0.237823 0.878235 0.558685 0.271454 0.878571 0.559357 0.307312 0.878906 0.559906 0.345032 0.879272 0.560516 0.384491 0.879639 0.561096 0.425110 0.879944 0.561707 0.466675 0.880310 0.562256 0.507782 0.880585 0.562836 0.546600 0.880920 0.563416 0.582977 0.881287 0.563934 0.616852 0.881561 0.564484 0.648438 0.881897 0.565063 0.677887 0.882202 0.565552 0.705536 0.882538 0.566071 0.731689 0.882812 0.566650 0.756592 0.883148 0.567108 0.780396 0.883453 0.567657 0.803375 0.883728 0.568146 0.825684 0.884033 0.568634 0.847534 0.884277 0.569122 0.869141 0.884613 0.569580 0.890808 0.884857 0.570038 0.912811 0.885101 0.570496 0.935638 0.885376 0.570953 0.959961 0.885620 0.571350 0.071747 0.900146 0.552551 0.089539 0.900452 0.553162 0.108978 0.900726 0.553802 0.130371 0.901001 0.554443 0.153992 0.901276 0.555023 0.180176 0.901581 0.555664 0.209015 0.901855 0.556274 0.240387 0.902130 0.556885 0.274139 0.902374 0.557495 0.309937 0.902649 0.558075 0.347687 0.902924 0.558655 0.387054 0.903198 0.559296 0.427673 0.903473 0.559875 0.469116 0.903748 0.560425 0.509979 0.903992 0.560974 0.548462 0.904236 0.561523 0.584656 0.904510 0.562073 0.618286 0.904724 0.562592 0.649628 0.905029 0.563141 0.678925 0.905212 0.563721 0.706421 0.905487 0.564209 0.732483 0.905731 0.564728 0.757202 0.905914 0.565247 0.780975 0.906189 0.565735 0.803802 0.906372 0.566223 0.826019 0.906616 0.566681 0.847839 0.906830 0.567169 0.869415 0.907074 0.567627 0.890961 0.907227 0.568085 0.912933 0.907440 0.568512 0.935699 0.907654 0.568939 0.959961 0.907867 0.569305 0.073517 0.924316 0.550690 0.091400 0.924530 0.551331 0.110931 0.924744 0.551971 0.132416 0.924957 0.552582 0.156219 0.925140 0.553223 0.182556 0.925385 0.553864 0.211548 0.925568 0.554443 0.243011 0.925812 0.555084 0.276733 0.925995 0.555634 0.312592 0.926178 0.556274 0.350311 0.926392 0.556885 0.389618 0.926605 0.557434 0.430145 0.926819 0.557983 0.471497 0.926971 0.558563 0.512115 0.927185 0.559113 0.550385 0.927399 0.559662 0.586273 0.927551 0.560181 0.619720 0.927734 0.560760 0.650818 0.927917 0.561279 0.679962 0.928101 0.561829 0.707306 0.928253 0.562317 0.733185 0.928467 0.562805 0.757874 0.928619 0.563324 0.781494 0.928772 0.563812 0.804260 0.928955 0.564270 0.826416 0.929108 0.564758 0.848114 0.929291 0.565216 0.869598 0.929443 0.565613 0.891144 0.929565 0.566071 0.913055 0.929688 0.566467 0.935730 0.929871 0.566864 0.959961 0.930023 0.567261 0.075226 0.948608 0.548859 0.093292 0.948761 0.549500 0.112915 0.948883 0.550140 0.134521 0.949036 0.550751 0.158417 0.949188 0.551361 0.184937 0.949341 0.552002 0.213989 0.949524 0.552582 0.245544 0.949646 0.553223 0.279358 0.949768 0.553802 0.315216 0.949890 0.554382 0.352905 0.950043 0.554962 0.392151 0.950165 0.555511 0.432678 0.950287 0.556122 0.473816 0.950409 0.556641 0.514160 0.950531 0.557220 0.552185 0.950653 0.557770 0.587799 0.950806 0.558289 0.621033 0.950928 0.558838 0.651947 0.951019 0.559357 0.680908 0.951172 0.559875 0.708130 0.951294 0.560364 0.733948 0.951385 0.560852 0.758453 0.951508 0.561279 0.781952 0.951599 0.561798 0.804688 0.951752 0.562256 0.826752 0.951813 0.562683 0.848389 0.951935 0.563171 0.869812 0.952026 0.563538 0.891327 0.952148 0.563995 0.913147 0.952240 0.564362 0.935822 0.952332 0.564789 0.959961 0.952423 0.565125 0.077026 0.973572 0.546875 0.095093 0.973663 0.547546 0.114868 0.973724 0.548187 0.136597 0.973846 0.548767 0.160645 0.973877 0.549377 0.187317 0.973969 0.550018 0.216431 0.974030 0.550629 0.248077 0.974121 0.551239 0.281860 0.974182 0.551819 0.317749 0.974243 0.552399 0.355438 0.974304 0.552979 0.394623 0.974396 0.553528 0.435028 0.974426 0.554077 0.476074 0.974518 0.554657 0.516174 0.974579 0.555176 0.553925 0.974609 0.555756 0.589355 0.974731 0.556274 0.622314 0.974762 0.556763 0.653046 0.974854 0.557281 0.681854 0.974884 0.557770 0.708954 0.974976 0.558258 0.734619 0.975006 0.558746 0.759033 0.975067 0.559235 0.782501 0.975098 0.559662 0.805084 0.975189 0.560120 0.827087 0.975220 0.560516 0.848663 0.975281 0.560944 0.870056 0.975311 0.561371 0.891449 0.975342 0.561768 0.913269 0.975403 0.562164 0.935852 0.975464 0.562500 0.959961 0.975494 0.562866 0.078766 1.000000 0.544739 0.096954 1.000000 0.545380 0.116821 1.000000 0.545990 0.138672 1.000000 0.546600 0.162842 1.000000 0.547241 0.189575 1.000000 0.547852 0.218872 1.000000 0.548431 0.250519 1.000000 0.549011 0.284363 1.000000 0.549622 0.320282 1.000000 0.550171 0.357941 1.000000 0.550751 0.397003 1.000000 0.551331 0.437347 1.000000 0.551880 0.478271 1.000000 0.552460 0.518097 1.000000 0.552948 0.555634 1.000000 0.553497 0.590820 1.000000 0.554016 0.623566 1.000000 0.554504 0.654144 1.000000 0.554993 0.682770 1.000000 0.555481 0.709717 1.000000 0.555939 0.735229 1.000000 0.556427 0.759583 1.000000 0.556885 0.782959 1.000000 0.557312 0.805481 1.000000 0.557739 0.827393 1.000000 0.558136 0.848907 1.000000 0.558563 0.870270 1.000000 0.558929 0.891602 1.000000 0.559326 0.913391 1.000000 0.559692 0.935944 1.000000 0.560059 0.959961 1.000000 0.560394 0.033478 0.004028 0.671875 0.049072 0.004730 0.672119 0.065826 0.005432 0.672363 0.084106 0.006165 0.672668 0.104187 0.006958 0.672913 0.126373 0.007751 0.673187 0.151093 0.008545 0.673553 0.178802 0.009369 0.673828 0.209534 0.010223 0.674164 0.243286 0.011108 0.674500 0.279663 0.012024 0.674805 0.318604 0.012939 0.675171 0.359741 0.013885 0.675537 0.402679 0.014832 0.675873 0.447083 0.015839 0.676239 0.491943 0.016846 0.676575 0.534729 0.017853 0.676941 0.574738 0.018890 0.677307 0.612000 0.019989 0.677673 0.646423 0.021057 0.678070 0.678436 0.022156 0.678467 0.708405 0.023315 0.678864 0.736633 0.024445 0.679230 0.763428 0.025604 0.679626 0.789032 0.026794 0.679993 0.813721 0.027985 0.680389 0.837738 0.029175 0.680817 0.861389 0.030396 0.681244 0.884979 0.031647 0.681580 0.908875 0.032928 0.682037 0.933533 0.034180 0.682495 0.959961 0.035492 0.682861 0.034363 0.020477 0.670380 0.049988 0.021240 0.670715 0.066864 0.022003 0.670959 0.085205 0.022797 0.671234 0.105347 0.023621 0.671570 0.127686 0.024445 0.671844 0.152557 0.025330 0.672211 0.180359 0.026215 0.672485 0.211243 0.027130 0.672852 0.245087 0.028107 0.673187 0.281586 0.029022 0.673523 0.320557 0.029999 0.673859 0.361755 0.031036 0.674225 0.404724 0.032043 0.674591 0.449066 0.033112 0.674896 0.493805 0.034180 0.675323 0.536438 0.035248 0.675659 0.576263 0.036346 0.676086 0.613312 0.037506 0.676453 0.647583 0.038635 0.676819 0.679413 0.039856 0.677216 0.709259 0.041016 0.677582 0.737396 0.042267 0.677979 0.764069 0.043488 0.678375 0.789551 0.044708 0.678772 0.814178 0.045990 0.679169 0.838135 0.047272 0.679565 0.861664 0.048584 0.679962 0.885162 0.049927 0.680420 0.909027 0.051270 0.680817 0.933655 0.052582 0.681183 0.959961 0.053986 0.681610 0.035278 0.037842 0.668915 0.050964 0.038696 0.669159 0.067871 0.039520 0.669495 0.086334 0.040405 0.669769 0.106628 0.041321 0.670105 0.129059 0.042236 0.670410 0.154083 0.043152 0.670715 0.182068 0.044128 0.671051 0.213074 0.045135 0.671417 0.246979 0.046173 0.671753 0.283600 0.047150 0.672119 0.322662 0.048218 0.672485 0.363831 0.049316 0.672791 0.406799 0.050385 0.673187 0.451172 0.051575 0.673523 0.495697 0.052704 0.673950 0.538177 0.053894 0.674316 0.577759 0.055084 0.674683 0.614624 0.056335 0.675049 0.648712 0.057556 0.675415 0.680450 0.058807 0.675812 0.710114 0.060059 0.676178 0.738129 0.061371 0.676575 0.764709 0.062714 0.677002 0.790131 0.064026 0.677368 0.814636 0.065399 0.677795 0.838501 0.066803 0.678223 0.861969 0.068176 0.678589 0.885437 0.069611 0.678955 0.909149 0.071045 0.679382 0.933716 0.072479 0.679779 0.959961 0.073944 0.680176 0.036224 0.056610 0.667267 0.052032 0.057495 0.667542 0.069031 0.058380 0.667908 0.087524 0.059357 0.668152 0.107910 0.060333 0.668488 0.130524 0.061340 0.668823 0.155670 0.062408 0.669159 0.183777 0.063446 0.669495 0.214966 0.064545 0.669800 0.248993 0.065674 0.670166 0.285675 0.066772 0.670502 0.324768 0.067963 0.670898 0.366028 0.069122 0.671265 0.408966 0.070312 0.671661 0.453278 0.071594 0.671997 0.497742 0.072815 0.672333 0.539917 0.074066 0.672729 0.579407 0.075378 0.673096 0.615997 0.076691 0.673492 0.649902 0.078064 0.673859 0.681519 0.079437 0.674225 0.710999 0.080841 0.674622 0.738892 0.082214 0.674988 0.765350 0.083679 0.675385 0.790649 0.085114 0.675781 0.815063 0.086578 0.676208 0.838898 0.088074 0.676544 0.862305 0.089569 0.676971 0.885681 0.091125 0.677338 0.909332 0.092651 0.677734 0.933807 0.094238 0.678101 0.959961 0.095825 0.678497 0.037262 0.076996 0.665436 0.053101 0.078003 0.665741 0.070190 0.079041 0.666046 0.088837 0.080109 0.666351 0.109344 0.081177 0.666718 0.132050 0.082306 0.667053 0.157349 0.083466 0.667358 0.185608 0.084625 0.667725 0.216919 0.085815 0.668030 0.251068 0.087036 0.668427 0.287842 0.088287 0.668732 0.327026 0.089569 0.669067 0.368286 0.090851 0.669434 0.411194 0.092194 0.669800 0.455475 0.093536 0.670197 0.499756 0.094879 0.670532 0.541779 0.096283 0.670898 0.580963 0.097748 0.671265 0.617371 0.099182 0.671631 0.651123 0.100677 0.672058 0.682526 0.102142 0.672363 0.711914 0.103638 0.672791 0.739685 0.105194 0.673126 0.765991 0.106781 0.673492 0.791229 0.108337 0.673889 0.815582 0.109955 0.674286 0.839294 0.111603 0.674652 0.862610 0.113220 0.675018 0.885864 0.114899 0.675415 0.909454 0.116547 0.675781 0.933868 0.118286 0.676147 0.959961 0.120026 0.676544 0.038361 0.099548 0.663361 0.054260 0.100677 0.663696 0.071442 0.101807 0.664032 0.090210 0.103027 0.664368 0.110779 0.104187 0.664642 0.133606 0.105499 0.664978 0.159088 0.106720 0.665314 0.187531 0.108063 0.665649 0.218964 0.109344 0.666016 0.253235 0.110718 0.666321 0.290070 0.112122 0.666656 0.329315 0.113525 0.667023 0.370575 0.114990 0.667419 0.413544 0.116425 0.667725 0.457733 0.117920 0.668091 0.501831 0.119415 0.668457 0.543610 0.121002 0.668793 0.582581 0.122559 0.669128 0.618805 0.124146 0.669525 0.652344 0.125763 0.669891 0.683594 0.127441 0.670258 0.712860 0.129028 0.670593 0.740479 0.130737 0.670990 0.766693 0.132507 0.671356 0.791809 0.134216 0.671722 0.816040 0.135986 0.672058 0.839691 0.137726 0.672424 0.862946 0.139557 0.672760 0.886139 0.141388 0.673126 0.909668 0.143158 0.673523 0.933990 0.145050 0.673859 0.959961 0.146973 0.674164 0.039490 0.124695 0.661041 0.055481 0.125916 0.661316 0.072723 0.127258 0.661621 0.091583 0.128571 0.661987 0.112305 0.129913 0.662262 0.135284 0.131317 0.662628 0.160889 0.132751 0.662903 0.189484 0.134216 0.663239 0.221069 0.135712 0.663574 0.255432 0.137207 0.663940 0.292328 0.138733 0.664307 0.331665 0.140350 0.664612 0.372925 0.141846 0.664948 0.415894 0.143524 0.665283 0.459991 0.145203 0.665619 0.503937 0.146851 0.665955 0.545471 0.148560 0.666321 0.584259 0.150330 0.666687 0.620239 0.152069 0.667023 0.653625 0.153839 0.667328 0.684662 0.155701 0.667694 0.713776 0.157471 0.668091 0.741272 0.159363 0.668427 0.767365 0.161255 0.668762 0.792389 0.163147 0.669098 0.816559 0.165100 0.669434 0.840088 0.166992 0.669769 0.863251 0.169006 0.670166 0.886383 0.171082 0.670441 0.909821 0.173004 0.670807 0.934082 0.175049 0.671112 0.959961 0.177155 0.671448 0.040680 0.152985 0.658295 0.056702 0.154388 0.658600 0.074097 0.155884 0.658905 0.093048 0.157349 0.659210 0.113861 0.158844 0.659515 0.137024 0.160461 0.659821 0.162781 0.162048 0.660156 0.191498 0.163635 0.660492 0.223236 0.165314 0.660797 0.257721 0.166992 0.661133 0.294708 0.168732 0.661469 0.334045 0.170441 0.661804 0.375366 0.172211 0.662109 0.418243 0.174072 0.662415 0.462311 0.175903 0.662750 0.506073 0.177704 0.663116 0.547394 0.179626 0.663452 0.585907 0.181519 0.663727 0.621674 0.183472 0.664062 0.654877 0.185486 0.664459 0.685760 0.187500 0.664764 0.714691 0.189484 0.665100 0.742065 0.191498 0.665405 0.768036 0.193542 0.665710 0.792938 0.195648 0.666046 0.817017 0.197754 0.666351 0.840485 0.199890 0.666687 0.863556 0.202057 0.666992 0.886627 0.204224 0.667328 0.909943 0.206390 0.667633 0.934143 0.208557 0.667938 0.959961 0.210876 0.668274 0.041931 0.184967 0.655090 0.058014 0.186523 0.655365 0.075500 0.188171 0.655670 0.094574 0.189880 0.655975 0.115509 0.191589 0.656311 0.138763 0.193329 0.656586 0.164734 0.195129 0.656952 0.193634 0.196899 0.657196 0.225464 0.198761 0.657532 0.260040 0.200562 0.657837 0.297150 0.202484 0.658142 0.336517 0.204407 0.658478 0.377838 0.206360 0.658783 0.420715 0.208344 0.659088 0.464691 0.210388 0.659424 0.508209 0.212372 0.659698 0.549286 0.214417 0.660034 0.587616 0.216522 0.660339 0.623108 0.218628 0.660706 0.656097 0.220764 0.660950 0.686829 0.222931 0.661316 0.715668 0.225037 0.661621 0.742859 0.227264 0.661926 0.768738 0.229431 0.662231 0.793549 0.231689 0.662537 0.817505 0.233978 0.662842 0.840881 0.236206 0.663147 0.863892 0.238495 0.663452 0.886871 0.240814 0.663757 0.910126 0.243073 0.664032 0.934235 0.245422 0.664337 0.959961 0.247772 0.664642 0.043213 0.220886 0.651428 0.059418 0.222595 0.651703 0.076965 0.224426 0.652039 0.096130 0.226257 0.652313 0.117249 0.228088 0.652618 0.140656 0.230011 0.652893 0.166718 0.231934 0.653229 0.195770 0.233917 0.653503 0.227753 0.235901 0.653809 0.262390 0.237885 0.654114 0.299591 0.239929 0.654388 0.339020 0.242004 0.654724 0.380341 0.244080 0.654999 0.423218 0.246216 0.655273 0.467133 0.248383 0.655609 0.510376 0.250519 0.655914 0.551239 0.252716 0.656189 0.589325 0.254974 0.656525 0.624573 0.257141 0.656860 0.657379 0.259460 0.657135 0.687927 0.261688 0.657410 0.716614 0.263977 0.657745 0.743713 0.266296 0.658051 0.769440 0.268616 0.658325 0.794159 0.270935 0.658630 0.817993 0.273315 0.658905 0.841248 0.275635 0.659210 0.864258 0.278046 0.659515 0.887085 0.280457 0.659760 0.910278 0.282776 0.660095 0.934296 0.285278 0.660339 0.959961 0.287598 0.660645 0.044525 0.260376 0.647339 0.060822 0.262268 0.647614 0.078491 0.264221 0.647919 0.097717 0.266205 0.648193 0.118958 0.268188 0.648499 0.142548 0.270172 0.648773 0.168793 0.272308 0.649048 0.197968 0.274353 0.649323 0.230103 0.276459 0.649628 0.264862 0.278534 0.649963 0.302094 0.280731 0.650238 0.341553 0.282898 0.650513 0.382874 0.285095 0.650848 0.425720 0.287323 0.651123 0.469513 0.289612 0.651398 0.512604 0.291870 0.651703 0.553192 0.294159 0.652008 0.590973 0.296478 0.652313 0.626068 0.298798 0.652588 0.658691 0.301147 0.652863 0.689026 0.303436 0.653168 0.717529 0.305878 0.653473 0.744476 0.308258 0.653748 0.770142 0.310638 0.654022 0.794708 0.313049 0.654327 0.818451 0.315491 0.654602 0.841675 0.317871 0.654877 0.864502 0.320312 0.655182 0.887329 0.322815 0.655457 0.910492 0.325226 0.655731 0.934387 0.327667 0.655975 0.959961 0.330048 0.656250 0.045929 0.303223 0.642822 0.062286 0.305237 0.643097 0.080017 0.307312 0.643402 0.099426 0.309387 0.643677 0.120758 0.311432 0.643982 0.144501 0.313538 0.644257 0.170868 0.315674 0.644501 0.200256 0.317841 0.644836 0.232483 0.320068 0.645142 0.267365 0.322235 0.645386 0.304688 0.324524 0.645691 0.344208 0.326752 0.645966 0.385437 0.329010 0.646271 0.428284 0.331329 0.646545 0.471954 0.333679 0.646881 0.514832 0.335938 0.647156 0.555115 0.338318 0.647430 0.592651 0.340668 0.647736 0.627594 0.343048 0.647980 0.659943 0.345459 0.648315 0.690125 0.347839 0.648590 0.718475 0.350250 0.648865 0.745300 0.352692 0.649170 0.770813 0.355103 0.649445 0.795349 0.357544 0.649719 0.819000 0.359985 0.650024 0.842072 0.362366 0.650299 0.864868 0.364868 0.650574 0.887573 0.367310 0.650818 0.910614 0.369751 0.651093 0.934509 0.372253 0.651398 0.959961 0.374695 0.651642 0.047333 0.348907 0.637970 0.063751 0.350983 0.638245 0.081604 0.353119 0.638519 0.101135 0.355286 0.638824 0.122620 0.357361 0.639099 0.146515 0.359589 0.639404 0.173065 0.361725 0.639679 0.202637 0.363953 0.639954 0.234985 0.366211 0.640259 0.269897 0.368439 0.640533 0.307312 0.370728 0.640839 0.346802 0.373077 0.641113 0.388092 0.375336 0.641449 0.430878 0.377655 0.641724 0.474426 0.380035 0.642029 0.517059 0.382355 0.642273 0.557129 0.384766 0.642548 0.594452 0.387085 0.642883 0.629089 0.389526 0.643158 0.661194 0.391907 0.643463 0.691223 0.394318 0.643738 0.719452 0.396759 0.644012 0.746124 0.399200 0.644318 0.771545 0.401520 0.644592 0.795898 0.403992 0.644897 0.819458 0.406433 0.645142 0.842468 0.408813 0.645416 0.865173 0.411255 0.645691 0.887848 0.413605 0.646027 0.910767 0.416077 0.646240 0.934570 0.418488 0.646484 0.959961 0.420929 0.646759 0.048798 0.397034 0.632812 0.065338 0.399078 0.633118 0.083252 0.401215 0.633362 0.102844 0.403351 0.633698 0.124542 0.405548 0.633972 0.148560 0.407776 0.634247 0.175293 0.409912 0.634552 0.205017 0.412201 0.634857 0.237457 0.414429 0.635132 0.272522 0.416656 0.635437 0.309937 0.418976 0.635773 0.349487 0.421265 0.636047 0.390778 0.423584 0.636322 0.433472 0.425873 0.636597 0.476898 0.428192 0.636902 0.519257 0.430542 0.637238 0.559052 0.432922 0.637451 0.596100 0.435242 0.637817 0.630524 0.437622 0.638092 0.662506 0.439972 0.638367 0.692352 0.442261 0.638672 0.720398 0.444733 0.638947 0.746948 0.447083 0.639252 0.772217 0.449402 0.639526 0.796448 0.451843 0.639801 0.819946 0.454163 0.640076 0.842896 0.456543 0.640411 0.865479 0.458923 0.640686 0.888031 0.461243 0.640930 0.910950 0.463593 0.641205 0.934692 0.466003 0.641449 0.959961 0.468231 0.641724 0.050262 0.446869 0.627441 0.066895 0.448914 0.627747 0.084930 0.451050 0.628052 0.104675 0.453156 0.628326 0.126434 0.455383 0.628632 0.150635 0.457520 0.628967 0.177582 0.459717 0.629211 0.207397 0.461884 0.629547 0.240021 0.464142 0.629852 0.275116 0.466339 0.630157 0.312622 0.468567 0.630493 0.352173 0.470856 0.630737 0.393433 0.473083 0.631073 0.436127 0.475311 0.631378 0.479401 0.477509 0.631683 0.521484 0.479797 0.631989 0.561035 0.482147 0.632294 0.597839 0.484344 0.632599 0.632019 0.486633 0.632874 0.663788 0.488922 0.633209 0.693420 0.491150 0.633514 0.721344 0.493439 0.633820 0.747772 0.495697 0.634094 0.772919 0.497925 0.634399 0.797089 0.500153 0.634735 0.820465 0.502411 0.635010 0.843262 0.504639 0.635254 0.865814 0.506836 0.635590 0.888275 0.509003 0.635864 0.911133 0.511230 0.636139 0.934723 0.513367 0.636444 0.959961 0.515533 0.636749 0.051819 0.497498 0.621979 0.068481 0.499542 0.622284 0.086670 0.501648 0.622620 0.106476 0.503723 0.622925 0.128418 0.505737 0.623260 0.152802 0.507843 0.623566 0.179901 0.509857 0.623871 0.209869 0.511902 0.624237 0.242554 0.514008 0.624542 0.277771 0.516083 0.624878 0.315338 0.518158 0.625183 0.354858 0.520203 0.625519 0.396088 0.522308 0.625824 0.438721 0.524353 0.626190 0.481934 0.526428 0.626526 0.523712 0.528503 0.626862 0.562988 0.530548 0.627167 0.599579 0.532562 0.627472 0.633514 0.534668 0.627838 0.665070 0.536713 0.628174 0.694550 0.538696 0.628479 0.722290 0.540710 0.628815 0.748566 0.542725 0.629150 0.773621 0.544678 0.629486 0.797638 0.546661 0.629791 0.820892 0.548615 0.630127 0.843689 0.550537 0.630432 0.866089 0.552521 0.630737 0.888550 0.554443 0.631042 0.911285 0.556335 0.631378 0.934845 0.558197 0.631744 0.959961 0.560059 0.631989 0.053375 0.546631 0.616791 0.070160 0.548431 0.617096 0.088409 0.550201 0.617462 0.108398 0.552063 0.617798 0.130493 0.553894 0.618164 0.154938 0.555695 0.618500 0.182220 0.557495 0.618866 0.212372 0.559357 0.619202 0.245209 0.561218 0.619568 0.280487 0.562988 0.619965 0.318054 0.564850 0.620300 0.357635 0.566681 0.620667 0.398865 0.568481 0.621063 0.441376 0.570282 0.621429 0.484436 0.572113 0.621735 0.525970 0.573914 0.622101 0.564911 0.575745 0.622498 0.601227 0.577484 0.622864 0.634979 0.579285 0.623199 0.666290 0.581024 0.623566 0.695618 0.582825 0.623901 0.723206 0.584625 0.624298 0.749359 0.586304 0.624634 0.774261 0.588043 0.624969 0.798248 0.589813 0.625336 0.821411 0.591461 0.625671 0.844025 0.593140 0.626038 0.866394 0.594879 0.626373 0.888763 0.596466 0.626709 0.911469 0.598145 0.627045 0.934937 0.599792 0.627411 0.959961 0.601349 0.627747 0.054962 0.591949 0.612000 0.071838 0.593536 0.612396 0.090210 0.595154 0.612762 0.110291 0.596741 0.613129 0.132507 0.598328 0.613586 0.157196 0.599976 0.613922 0.184631 0.601501 0.614319 0.214905 0.603088 0.614716 0.247803 0.604736 0.615082 0.283203 0.606262 0.615540 0.320831 0.607849 0.615906 0.360352 0.609467 0.616302 0.401550 0.611084 0.616638 0.444031 0.612640 0.617065 0.486938 0.614197 0.617432 0.528168 0.615753 0.617859 0.566895 0.617340 0.618256 0.602936 0.618866 0.618622 0.636414 0.620422 0.619019 0.667603 0.621979 0.619385 0.696686 0.623444 0.619781 0.724152 0.625000 0.620178 0.750153 0.626495 0.620544 0.774963 0.627960 0.620911 0.798798 0.629456 0.621277 0.821869 0.630920 0.621674 0.844452 0.632385 0.622070 0.866699 0.633789 0.622437 0.888977 0.635223 0.622772 0.911621 0.636658 0.623138 0.935028 0.638000 0.623535 0.959961 0.639404 0.623901 0.056580 0.633667 0.607758 0.073547 0.635010 0.608154 0.092010 0.636475 0.608551 0.112274 0.637787 0.609009 0.134613 0.639191 0.609406 0.159454 0.640533 0.609863 0.187042 0.641937 0.610229 0.217468 0.643341 0.610657 0.250488 0.644714 0.611115 0.285889 0.646088 0.611511 0.323578 0.647400 0.611938 0.363129 0.648773 0.612335 0.404297 0.650116 0.612762 0.446655 0.651520 0.613220 0.489410 0.652863 0.613586 0.530365 0.654175 0.614044 0.568848 0.655548 0.614441 0.604614 0.656830 0.614838 0.637848 0.658173 0.615265 0.668823 0.659515 0.615631 0.697754 0.660736 0.616058 0.725067 0.662079 0.616486 0.750916 0.663300 0.616852 0.775604 0.664612 0.617279 0.799347 0.665863 0.617676 0.822327 0.667084 0.618073 0.844788 0.668365 0.618469 0.867035 0.669556 0.618835 0.889221 0.670746 0.619232 0.911774 0.671936 0.619659 0.935089 0.673187 0.620026 0.959961 0.674286 0.620361 0.058197 0.671783 0.603973 0.075287 0.673004 0.604401 0.093903 0.674194 0.604858 0.114227 0.675385 0.605316 0.136719 0.676605 0.605713 0.161743 0.677765 0.606171 0.189484 0.678894 0.606659 0.220001 0.680115 0.607086 0.253113 0.681305 0.607483 0.288635 0.682465 0.607941 0.326355 0.683655 0.608368 0.365906 0.684784 0.608887 0.407043 0.685974 0.609283 0.449310 0.687134 0.609741 0.491882 0.688263 0.610199 0.532593 0.689423 0.610596 0.570709 0.690552 0.611023 0.606262 0.691681 0.611450 0.639252 0.692810 0.611877 0.670044 0.693909 0.612335 0.698853 0.695007 0.612732 0.725983 0.696106 0.613159 0.751740 0.697205 0.613617 0.776245 0.698273 0.613983 0.799866 0.699341 0.614441 0.822784 0.700409 0.614807 0.845215 0.701447 0.615265 0.867340 0.702484 0.615662 0.889465 0.703491 0.616058 0.911957 0.704529 0.616455 0.935181 0.705505 0.616791 0.959961 0.706512 0.617218 0.059906 0.706909 0.600555 0.077057 0.707916 0.601074 0.095734 0.708954 0.601501 0.116211 0.709930 0.601990 0.138885 0.710999 0.602478 0.164062 0.712006 0.602936 0.191956 0.712982 0.603363 0.222626 0.714020 0.603821 0.255798 0.715027 0.604309 0.291412 0.716003 0.604736 0.329132 0.717010 0.605225 0.368622 0.717987 0.605682 0.409729 0.718994 0.606140 0.451904 0.720001 0.606628 0.494293 0.720978 0.607086 0.534729 0.721954 0.607483 0.572632 0.722931 0.607971 0.607910 0.723846 0.608398 0.640656 0.724823 0.608856 0.671234 0.725769 0.609283 0.699860 0.726715 0.609741 0.726868 0.727692 0.610168 0.752441 0.728546 0.610596 0.776917 0.729492 0.611023 0.800446 0.730408 0.611450 0.823273 0.731262 0.611847 0.845551 0.732178 0.612335 0.867584 0.733093 0.612732 0.889648 0.733917 0.613098 0.912048 0.734772 0.613556 0.935242 0.735626 0.613892 0.959961 0.736420 0.614319 0.061584 0.739319 0.597534 0.078827 0.740204 0.598022 0.097656 0.741119 0.598511 0.118225 0.741943 0.598999 0.141083 0.742859 0.599457 0.166351 0.743683 0.599945 0.194427 0.744568 0.600433 0.225250 0.745422 0.600891 0.258484 0.746277 0.601410 0.294189 0.747131 0.601898 0.331879 0.748016 0.602356 0.371368 0.748871 0.602844 0.412384 0.749695 0.603302 0.454529 0.750580 0.603790 0.496704 0.751373 0.604248 0.536804 0.752197 0.604736 0.574463 0.753021 0.605164 0.609497 0.753845 0.605652 0.642090 0.754669 0.606110 0.672424 0.755463 0.606537 0.700897 0.756256 0.606995 0.727722 0.757080 0.607452 0.753235 0.757843 0.607910 0.777557 0.758606 0.608276 0.800964 0.759399 0.608734 0.823669 0.760132 0.609192 0.845917 0.760895 0.609589 0.867889 0.761627 0.610046 0.889862 0.762329 0.610413 0.912201 0.763062 0.610809 0.935333 0.763763 0.611206 0.959961 0.764496 0.611633 0.063293 0.769623 0.594757 0.080658 0.770386 0.595306 0.099579 0.771118 0.595795 0.120361 0.771851 0.596283 0.143250 0.772614 0.596802 0.168701 0.773315 0.597260 0.196930 0.774109 0.597778 0.227875 0.774811 0.598267 0.261230 0.775543 0.598755 0.296875 0.776276 0.599243 0.334686 0.777008 0.599762 0.374146 0.777710 0.600220 0.415161 0.778442 0.600708 0.457153 0.779144 0.601196 0.499054 0.779846 0.601654 0.538940 0.780579 0.602142 0.576294 0.781250 0.602600 0.611115 0.781952 0.603088 0.643433 0.782654 0.603546 0.673584 0.783325 0.604004 0.701904 0.783997 0.604462 0.728607 0.784698 0.604889 0.753937 0.785339 0.605347 0.778137 0.785980 0.605774 0.801514 0.786591 0.606232 0.824158 0.787262 0.606659 0.846222 0.787872 0.607086 0.868195 0.788513 0.607513 0.890076 0.789093 0.607941 0.912323 0.789734 0.608368 0.935394 0.790314 0.608704 0.959961 0.790894 0.609100 0.065033 0.798096 0.592255 0.082458 0.798737 0.592804 0.101440 0.799347 0.593292 0.122375 0.799988 0.593781 0.145447 0.800629 0.594299 0.171051 0.801239 0.594849 0.199463 0.801880 0.595306 0.230469 0.802521 0.595825 0.263885 0.803101 0.596344 0.299622 0.803711 0.596802 0.337402 0.804321 0.597351 0.376831 0.804962 0.597839 0.417816 0.805542 0.598328 0.459717 0.806152 0.598785 0.501434 0.806763 0.599243 0.540985 0.807343 0.599762 0.578094 0.807922 0.600250 0.612640 0.808502 0.600708 0.644806 0.809082 0.601227 0.674744 0.809662 0.601624 0.702850 0.810211 0.602112 0.729431 0.810791 0.602539 0.754669 0.811340 0.602997 0.778809 0.811890 0.603485 0.802002 0.812408 0.603882 0.824554 0.812958 0.604279 0.846619 0.813477 0.604736 0.868439 0.813995 0.605164 0.890289 0.814484 0.605591 0.912476 0.815002 0.605957 0.935455 0.815491 0.606354 0.959961 0.815979 0.606750 0.066772 0.825104 0.589905 0.084320 0.825623 0.590424 0.103455 0.826141 0.590973 0.124451 0.826691 0.591522 0.147675 0.827209 0.592010 0.173431 0.827728 0.592529 0.201996 0.828308 0.593048 0.233093 0.828796 0.593567 0.266632 0.829285 0.594086 0.302399 0.829803 0.594574 0.340149 0.830322 0.595062 0.379608 0.830841 0.595581 0.420441 0.831329 0.596069 0.462189 0.831848 0.596558 0.503693 0.832336 0.597076 0.543030 0.832825 0.597534 0.579865 0.833344 0.598022 0.614197 0.833832 0.598450 0.646088 0.834320 0.598969 0.675873 0.834717 0.599396 0.703857 0.835236 0.599884 0.730286 0.835693 0.600372 0.755371 0.836151 0.600769 0.779388 0.836609 0.601196 0.802521 0.837067 0.601654 0.824951 0.837494 0.602081 0.846924 0.837891 0.602509 0.868713 0.838348 0.602905 0.890503 0.838776 0.603333 0.912598 0.839203 0.603699 0.935516 0.839569 0.604126 0.959961 0.839996 0.604492 0.068512 0.850891 0.587738 0.086151 0.851349 0.588318 0.105377 0.851807 0.588806 0.126556 0.852234 0.589355 0.149902 0.852661 0.589874 0.175842 0.853119 0.590363 0.204498 0.853546 0.590881 0.235687 0.854004 0.591431 0.269287 0.854431 0.591919 0.305115 0.854828 0.592468 0.342834 0.855255 0.592926 0.382294 0.855682 0.593445 0.423096 0.856079 0.593994 0.464691 0.856537 0.594452 0.506012 0.856903 0.594971 0.545013 0.857300 0.595398 0.581573 0.857727 0.595917 0.615692 0.858124 0.596375 0.647400 0.858521 0.596863 0.677002 0.858887 0.597321 0.704834 0.859283 0.597748 0.731079 0.859650 0.598206 0.756073 0.860046 0.598663 0.779938 0.860382 0.599091 0.802948 0.860779 0.599548 0.825348 0.861115 0.599945 0.847290 0.861481 0.600372 0.868958 0.861816 0.600769 0.890656 0.862183 0.601166 0.912750 0.862488 0.601562 0.935577 0.862823 0.601990 0.959961 0.863159 0.602325 0.070312 0.875885 0.585663 0.088013 0.876221 0.586212 0.107361 0.876587 0.586731 0.128632 0.876953 0.587280 0.152161 0.877319 0.587799 0.178253 0.877655 0.588318 0.207001 0.878021 0.588837 0.238281 0.878357 0.589386 0.271942 0.878723 0.589874 0.307800 0.879059 0.590424 0.345520 0.879364 0.590912 0.384857 0.879730 0.591431 0.425598 0.880066 0.591919 0.467163 0.880402 0.592377 0.508209 0.880707 0.592896 0.546936 0.881073 0.593353 0.583282 0.881378 0.593872 0.617157 0.881683 0.594330 0.648651 0.882019 0.594788 0.678070 0.882324 0.595245 0.705688 0.882629 0.595734 0.731873 0.882935 0.596100 0.756714 0.883240 0.596588 0.780518 0.883545 0.597046 0.803467 0.883850 0.597412 0.825714 0.884125 0.597839 0.847595 0.884399 0.598267 0.869232 0.884674 0.598663 0.890839 0.884949 0.599091 0.912842 0.885193 0.599457 0.935638 0.885468 0.599823 0.959961 0.885712 0.600189 0.072083 0.900299 0.583649 0.089874 0.900543 0.584167 0.109344 0.900848 0.584717 0.130737 0.901093 0.585236 0.154388 0.901367 0.585815 0.180603 0.901672 0.586304 0.209534 0.901917 0.586823 0.240906 0.902222 0.587372 0.274597 0.902496 0.587921 0.310486 0.902740 0.588409 0.348206 0.903015 0.588928 0.387512 0.903290 0.589417 0.428192 0.903564 0.589905 0.469543 0.903809 0.590393 0.510376 0.904083 0.590881 0.548859 0.904327 0.591370 0.584961 0.904602 0.591827 0.618591 0.904846 0.592316 0.649872 0.905090 0.592773 0.679108 0.905304 0.593201 0.706604 0.905579 0.593689 0.732605 0.905792 0.594116 0.757324 0.906036 0.594543 0.781067 0.906250 0.594971 0.803894 0.906433 0.595367 0.826080 0.906708 0.595795 0.847870 0.906891 0.596222 0.869446 0.907104 0.596588 0.890991 0.907318 0.596954 0.912933 0.907532 0.597382 0.935699 0.907715 0.597717 0.959961 0.907928 0.598053 0.073822 0.924408 0.581665 0.091736 0.924591 0.582184 0.111298 0.924835 0.582733 0.132812 0.925018 0.583282 0.156647 0.925232 0.583801 0.182983 0.925415 0.584320 0.211975 0.925659 0.584839 0.243439 0.925873 0.585358 0.277252 0.926056 0.585938 0.313110 0.926270 0.586395 0.350800 0.926453 0.586914 0.390076 0.926666 0.587402 0.430664 0.926880 0.587921 0.471924 0.927063 0.588379 0.512512 0.927216 0.588898 0.550720 0.927460 0.589355 0.586548 0.927643 0.589844 0.619965 0.927795 0.590271 0.651031 0.928009 0.590729 0.680084 0.928162 0.591217 0.707458 0.928314 0.591644 0.733337 0.928528 0.592041 0.757996 0.928711 0.592468 0.781586 0.928833 0.592896 0.804352 0.929016 0.593292 0.826477 0.929169 0.593689 0.848175 0.929352 0.594116 0.869629 0.929474 0.594482 0.891174 0.929626 0.594879 0.913086 0.929779 0.595184 0.935791 0.929932 0.595551 0.959961 0.930084 0.595917 0.075623 0.948669 0.579590 0.093597 0.948792 0.580170 0.113281 0.948944 0.580688 0.134949 0.949066 0.581268 0.158844 0.949219 0.581757 0.185364 0.949371 0.582306 0.214478 0.949554 0.582886 0.246002 0.949707 0.583313 0.279816 0.949829 0.583893 0.315704 0.949982 0.584381 0.353363 0.950073 0.584869 0.392639 0.950195 0.585388 0.433105 0.950348 0.585876 0.474213 0.950470 0.586334 0.514526 0.950592 0.586823 0.552490 0.950684 0.587280 0.588104 0.950867 0.587769 0.621277 0.950958 0.588226 0.652222 0.951111 0.588654 0.681061 0.951202 0.589111 0.708282 0.951324 0.589539 0.734070 0.951477 0.589966 0.758575 0.951569 0.590363 0.782074 0.951691 0.590790 0.804779 0.951782 0.591156 0.826813 0.951874 0.591583 0.848450 0.951996 0.591949 0.869873 0.952057 0.592285 0.891357 0.952148 0.592682 0.913208 0.952301 0.592987 0.935822 0.952362 0.593323 0.959961 0.952423 0.593658 0.077362 0.973633 0.577484 0.095490 0.973663 0.578064 0.115234 0.973785 0.578583 0.137024 0.973846 0.579132 0.161041 0.973938 0.579681 0.187683 0.973999 0.580170 0.216919 0.974091 0.580688 0.248474 0.974152 0.581207 0.282349 0.974182 0.581757 0.318207 0.974304 0.582214 0.355896 0.974335 0.582733 0.395081 0.974396 0.583221 0.435455 0.974457 0.583740 0.476471 0.974518 0.584167 0.516571 0.974609 0.584656 0.554260 0.974670 0.585114 0.589600 0.974731 0.585602 0.622559 0.974762 0.586029 0.653259 0.974854 0.586456 0.682037 0.974915 0.586914 0.709106 0.974976 0.587341 0.734741 0.975037 0.587708 0.759125 0.975067 0.588135 0.782562 0.975128 0.588531 0.805176 0.975189 0.588928 0.827148 0.975250 0.589264 0.848724 0.975281 0.589630 0.870056 0.975311 0.589996 0.891510 0.975403 0.590332 0.913269 0.975403 0.590668 0.935883 0.975464 0.590973 0.959961 0.975494 0.591278 0.079163 1.000000 0.575165 0.097351 1.000000 0.575714 0.117188 1.000000 0.576263 0.139069 1.000000 0.576782 0.163239 1.000000 0.577332 0.190002 1.000000 0.577820 0.219299 1.000000 0.578369 0.250946 1.000000 0.578888 0.284851 1.000000 0.579376 0.320740 1.000000 0.579895 0.358368 1.000000 0.580383 0.397491 1.000000 0.580841 0.437805 1.000000 0.581329 0.478638 1.000000 0.581818 0.518433 1.000000 0.582275 0.555908 1.000000 0.582733 0.591064 1.000000 0.583191 0.623810 1.000000 0.583618 0.654358 1.000000 0.584015 0.682953 1.000000 0.584473 0.709839 1.000000 0.584900 0.735352 1.000000 0.585297 0.759705 1.000000 0.585693 0.783020 1.000000 0.586060 0.805542 1.000000 0.586426 0.827454 1.000000 0.586792 0.848969 1.000000 0.587097 0.870270 1.000000 0.587463 0.891632 1.000000 0.587799 0.913391 1.000000 0.588104 0.935944 1.000000 0.588409 0.959961 1.000000 0.588715 0.033630 0.004303 0.704895 0.049225 0.005005 0.705109 0.066040 0.005707 0.705383 0.084320 0.006470 0.705566 0.104370 0.007233 0.705780 0.126617 0.008026 0.706055 0.151337 0.008850 0.706299 0.179047 0.009674 0.706543 0.209869 0.010559 0.706787 0.243561 0.011414 0.707031 0.280029 0.012360 0.707336 0.319000 0.013275 0.707611 0.360077 0.014221 0.707886 0.403076 0.015198 0.708191 0.447449 0.016205 0.708466 0.492218 0.017212 0.708771 0.535065 0.018250 0.709045 0.575043 0.019287 0.709351 0.612213 0.020355 0.709625 0.646637 0.021454 0.709961 0.678650 0.022552 0.710297 0.708557 0.023712 0.710571 0.736755 0.024872 0.710938 0.763519 0.026001 0.711212 0.789124 0.027191 0.711578 0.813812 0.028442 0.711884 0.837799 0.029602 0.712189 0.861450 0.030884 0.712524 0.884979 0.032104 0.712830 0.908875 0.033386 0.713196 0.933533 0.034698 0.713501 0.959961 0.035950 0.713867 0.034485 0.020752 0.703430 0.050140 0.021515 0.703583 0.067047 0.022308 0.703796 0.085388 0.023102 0.704102 0.105591 0.023926 0.704315 0.127930 0.024780 0.704559 0.152832 0.025635 0.704803 0.180664 0.026550 0.705078 0.211609 0.027496 0.705383 0.245453 0.028412 0.705627 0.281982 0.029419 0.705902 0.320953 0.030396 0.706238 0.362122 0.031403 0.706451 0.405121 0.032440 0.706787 0.449493 0.033508 0.707031 0.494141 0.034576 0.707367 0.536743 0.035675 0.707642 0.576508 0.036804 0.707947 0.613525 0.037933 0.708313 0.647766 0.039093 0.708588 0.679626 0.040253 0.708923 0.709412 0.041473 0.709198 0.737549 0.042694 0.709534 0.764191 0.043915 0.709869 0.789673 0.045197 0.710175 0.814240 0.046478 0.710480 0.838165 0.047729 0.710815 0.861755 0.049042 0.711121 0.885193 0.050354 0.711456 0.909058 0.051727 0.711823 0.933655 0.053131 0.712097 0.959961 0.054474 0.712463 0.035461 0.038208 0.701721 0.051147 0.039001 0.701996 0.068115 0.039856 0.702240 0.086548 0.040710 0.702484 0.106842 0.041626 0.702728 0.129303 0.042542 0.703003 0.154327 0.043488 0.703278 0.182343 0.044464 0.703522 0.213440 0.045471 0.703796 0.247345 0.046478 0.704102 0.283997 0.047577 0.704376 0.323059 0.048645 0.704681 0.364258 0.049744 0.704926 0.407257 0.050842 0.705231 0.451538 0.051971 0.705536 0.496094 0.053131 0.705811 0.538513 0.054352 0.706116 0.578094 0.055511 0.706421 0.614868 0.056763 0.706757 0.648956 0.058014 0.707031 0.680664 0.059265 0.707397 0.710297 0.060516 0.707642 0.738281 0.061890 0.707977 0.764832 0.063171 0.708282 0.790222 0.064545 0.708588 0.814728 0.065887 0.708923 0.838562 0.067291 0.709259 0.862061 0.068726 0.709595 0.885468 0.070129 0.709900 0.909180 0.071564 0.710205 0.933746 0.073029 0.710510 0.959961 0.074493 0.710846 0.036407 0.056946 0.700043 0.052246 0.057831 0.700256 0.069214 0.058777 0.700500 0.087799 0.059692 0.700745 0.108154 0.060730 0.701050 0.130768 0.061737 0.701263 0.155975 0.062744 0.701538 0.184082 0.063843 0.701843 0.215332 0.064972 0.702057 0.249359 0.066040 0.702393 0.286102 0.067230 0.702637 0.325226 0.068390 0.702942 0.366425 0.069550 0.703217 0.409424 0.070770 0.703522 0.453674 0.072021 0.703796 0.498108 0.073303 0.704102 0.540344 0.074615 0.704407 0.579651 0.075867 0.704681 0.616272 0.077209 0.705017 0.650146 0.078583 0.705322 0.681671 0.079956 0.705627 0.711182 0.081329 0.705933 0.739044 0.082794 0.706238 0.765503 0.084167 0.706543 0.790741 0.085663 0.706818 0.815186 0.087128 0.707184 0.838959 0.088623 0.707458 0.862335 0.090149 0.707794 0.885681 0.091675 0.708099 0.909363 0.093262 0.708405 0.933838 0.094818 0.708679 0.959961 0.096375 0.708984 0.037476 0.077332 0.698059 0.053314 0.078369 0.698303 0.070465 0.079407 0.698608 0.089081 0.080475 0.698792 0.109589 0.081604 0.699097 0.132324 0.082733 0.699371 0.157654 0.083862 0.699615 0.185974 0.085052 0.699921 0.217316 0.086273 0.700165 0.251434 0.087494 0.700439 0.288269 0.088745 0.700714 0.327393 0.090027 0.700989 0.368683 0.091339 0.701263 0.411652 0.092682 0.701569 0.455841 0.094025 0.701874 0.500122 0.095428 0.702148 0.542114 0.096832 0.702484 0.581268 0.098236 0.702728 0.617676 0.099701 0.703033 0.651398 0.101227 0.703308 0.682709 0.102692 0.703613 0.712097 0.104218 0.703918 0.739838 0.105774 0.704224 0.766174 0.107330 0.704529 0.791321 0.108948 0.704803 0.815643 0.110535 0.705139 0.839355 0.112152 0.705414 0.862671 0.113831 0.705719 0.885925 0.115479 0.706024 0.909485 0.117218 0.706268 0.933899 0.118927 0.706604 0.959961 0.120636 0.706879 0.038544 0.099945 0.695892 0.054504 0.101074 0.696136 0.071716 0.102234 0.696411 0.090393 0.103424 0.696686 0.111053 0.104675 0.696930 0.133942 0.105927 0.697205 0.159393 0.107208 0.697418 0.187866 0.108551 0.697693 0.219330 0.109863 0.697937 0.253601 0.111237 0.698242 0.290497 0.112640 0.698517 0.329742 0.114044 0.698792 0.371002 0.115479 0.699097 0.413971 0.117004 0.699341 0.458099 0.118439 0.699646 0.502258 0.119995 0.699890 0.544006 0.121552 0.700195 0.582886 0.123108 0.700470 0.619080 0.124725 0.700745 0.652588 0.126373 0.701019 0.683746 0.127991 0.701294 0.713013 0.129700 0.701630 0.740601 0.131348 0.701874 0.766846 0.133087 0.702209 0.791931 0.134857 0.702454 0.816132 0.136597 0.702698 0.839752 0.138397 0.703003 0.863007 0.140228 0.703247 0.886169 0.141998 0.703583 0.909668 0.143890 0.703827 0.933990 0.145752 0.704102 0.959961 0.147644 0.704376 0.039734 0.125153 0.693390 0.055725 0.126434 0.693665 0.072998 0.127777 0.693878 0.091827 0.129059 0.694183 0.112610 0.130463 0.694397 0.135620 0.131897 0.694641 0.161255 0.133301 0.694916 0.189850 0.134766 0.695160 0.221405 0.136200 0.695404 0.255829 0.137787 0.695709 0.292786 0.139313 0.695984 0.332062 0.140869 0.696198 0.373383 0.142487 0.696533 0.416321 0.144165 0.696747 0.460419 0.145752 0.697021 0.504364 0.147461 0.697266 0.545868 0.149200 0.697540 0.584503 0.150909 0.697815 0.620514 0.152710 0.698090 0.653839 0.154541 0.698364 0.684875 0.156311 0.698639 0.713959 0.158203 0.698853 0.741425 0.160034 0.699158 0.767487 0.161957 0.699402 0.792480 0.163879 0.699707 0.816620 0.165771 0.699921 0.840149 0.167725 0.700226 0.863342 0.169769 0.700439 0.886414 0.171722 0.700714 0.909851 0.173798 0.700958 0.934082 0.175842 0.701233 0.959961 0.177856 0.701477 0.040894 0.153473 0.690521 0.056946 0.154938 0.690826 0.074341 0.156433 0.691010 0.093292 0.157898 0.691254 0.114166 0.159485 0.691467 0.137329 0.161041 0.691742 0.163116 0.162628 0.691986 0.191925 0.164276 0.692230 0.223633 0.165894 0.692505 0.258118 0.167603 0.692749 0.295227 0.169373 0.692993 0.334503 0.171112 0.693237 0.375793 0.172882 0.693481 0.418793 0.174713 0.693726 0.462769 0.176514 0.694000 0.506500 0.178467 0.694214 0.547729 0.180359 0.694458 0.586243 0.182251 0.694763 0.621979 0.184235 0.694977 0.655090 0.186157 0.695221 0.685944 0.188171 0.695496 0.714874 0.190247 0.695679 0.742218 0.192261 0.695984 0.768158 0.194366 0.696198 0.793060 0.196472 0.696472 0.817108 0.198547 0.696686 0.840546 0.200684 0.696930 0.863617 0.202850 0.697205 0.886658 0.204987 0.697418 0.909973 0.207214 0.697662 0.934174 0.209381 0.697845 0.959961 0.211609 0.698090 0.042145 0.185547 0.687195 0.058289 0.187195 0.687439 0.075775 0.188812 0.687653 0.094849 0.190491 0.687897 0.115845 0.192230 0.688141 0.139130 0.193939 0.688354 0.165070 0.195740 0.688629 0.194031 0.197540 0.688812 0.225830 0.199402 0.689056 0.260468 0.201294 0.689270 0.297577 0.203247 0.689514 0.336975 0.205109 0.689758 0.378296 0.207062 0.690002 0.421143 0.209106 0.690247 0.465057 0.211090 0.690491 0.508667 0.213104 0.690704 0.549683 0.215210 0.690948 0.587860 0.217285 0.691132 0.623444 0.219421 0.691406 0.656342 0.221497 0.691620 0.687042 0.223694 0.691895 0.715851 0.225891 0.692108 0.743011 0.228058 0.692322 0.768890 0.230286 0.692566 0.793671 0.232544 0.692780 0.817596 0.234802 0.693024 0.840942 0.237061 0.693237 0.863922 0.239380 0.693451 0.886902 0.241638 0.693665 0.910156 0.243958 0.693878 0.934265 0.246246 0.694092 0.959961 0.248596 0.694336 0.043457 0.221466 0.683411 0.059662 0.223267 0.683624 0.077209 0.225098 0.683838 0.096405 0.226929 0.684052 0.117554 0.228821 0.684296 0.140961 0.230682 0.684509 0.167145 0.232635 0.684753 0.196228 0.234650 0.684937 0.228180 0.236603 0.685150 0.262878 0.238647 0.685394 0.300110 0.240723 0.685608 0.339447 0.242798 0.685852 0.380798 0.244873 0.686066 0.423676 0.247009 0.686310 0.467499 0.249146 0.686523 0.510864 0.251343 0.686707 0.551575 0.253510 0.686951 0.589600 0.255768 0.687134 0.624908 0.257996 0.687408 0.657593 0.260193 0.687622 0.688141 0.262543 0.687866 0.716766 0.264862 0.688049 0.743805 0.267120 0.688263 0.769592 0.269470 0.688477 0.794250 0.271820 0.688690 0.818085 0.274139 0.688904 0.841339 0.276550 0.689117 0.864288 0.278900 0.689331 0.887146 0.281281 0.689545 0.910370 0.283752 0.689728 0.934326 0.286072 0.689911 0.959961 0.288574 0.690125 0.044800 0.261078 0.679169 0.061096 0.263000 0.679382 0.078735 0.264893 0.679626 0.098022 0.266907 0.679779 0.119324 0.268921 0.680023 0.142883 0.270905 0.680206 0.169189 0.273010 0.680420 0.198425 0.275116 0.680634 0.230530 0.277191 0.680847 0.265350 0.279358 0.681091 0.302612 0.281555 0.681305 0.342041 0.283722 0.681488 0.383362 0.285980 0.681732 0.426178 0.288177 0.681915 0.469971 0.290405 0.682159 0.513031 0.292664 0.682343 0.553528 0.295013 0.682556 0.591309 0.297302 0.682770 0.626373 0.299652 0.683044 0.658875 0.301941 0.683228 0.689240 0.304352 0.683441 0.717712 0.306763 0.683624 0.744629 0.309113 0.683838 0.770294 0.311523 0.684052 0.794861 0.313965 0.684235 0.818604 0.316315 0.684448 0.841736 0.318787 0.684631 0.864563 0.321167 0.684845 0.887390 0.323608 0.685059 0.910492 0.326141 0.685242 0.934387 0.328552 0.685455 0.959961 0.331055 0.685608 0.046204 0.303955 0.674469 0.062561 0.305969 0.674713 0.080292 0.307983 0.674896 0.099731 0.310089 0.675110 0.121094 0.312195 0.675323 0.144806 0.314301 0.675537 0.171326 0.316467 0.675751 0.200745 0.318665 0.675964 0.232971 0.320862 0.676147 0.267883 0.323120 0.676392 0.305176 0.325348 0.676575 0.344696 0.327606 0.676788 0.385956 0.329895 0.677032 0.428741 0.332153 0.677185 0.472382 0.334473 0.677429 0.515289 0.336853 0.677612 0.555511 0.339172 0.677856 0.593018 0.341553 0.678040 0.627899 0.343964 0.678253 0.660187 0.346313 0.678467 0.690338 0.348724 0.678650 0.718689 0.351166 0.678894 0.745483 0.353546 0.679047 0.770966 0.355988 0.679291 0.795441 0.358398 0.679504 0.819061 0.360870 0.679688 0.842133 0.363373 0.679840 0.864929 0.365753 0.680054 0.887604 0.368195 0.680267 0.910675 0.370697 0.680420 0.934509 0.373138 0.680634 0.959961 0.375580 0.680817 0.047607 0.349670 0.669495 0.064056 0.351776 0.669678 0.081879 0.353912 0.669891 0.101410 0.355988 0.670105 0.122986 0.358154 0.670319 0.146820 0.360352 0.670502 0.173492 0.362579 0.670746 0.203033 0.364807 0.670929 0.235413 0.367035 0.671173 0.270386 0.369354 0.671326 0.307770 0.371552 0.671600 0.347290 0.373871 0.671783 0.388611 0.376251 0.672028 0.431335 0.378540 0.672180 0.474884 0.380890 0.672424 0.517517 0.383270 0.672638 0.557434 0.385620 0.672821 0.594727 0.388000 0.673035 0.629395 0.390411 0.673218 0.661438 0.392761 0.673462 0.691437 0.395203 0.673645 0.719604 0.397614 0.673859 0.746277 0.400024 0.674042 0.771637 0.402466 0.674286 0.795990 0.404907 0.674438 0.819580 0.407257 0.674683 0.842529 0.409729 0.674866 0.865204 0.412109 0.675049 0.887878 0.414551 0.675262 0.910797 0.416992 0.675415 0.934601 0.419373 0.675629 0.959961 0.421814 0.675812 0.049072 0.397705 0.664185 0.065613 0.399902 0.664398 0.083557 0.401978 0.664612 0.103210 0.404175 0.664825 0.124878 0.406342 0.665039 0.148895 0.408539 0.665222 0.175720 0.410767 0.665466 0.205444 0.413025 0.665649 0.237946 0.415253 0.665894 0.273041 0.417572 0.666077 0.310425 0.419800 0.666321 0.349945 0.422119 0.666504 0.391235 0.424500 0.666748 0.433929 0.426758 0.666962 0.477417 0.429108 0.667175 0.519714 0.431427 0.667389 0.559387 0.433746 0.667572 0.596466 0.436127 0.667816 0.630829 0.438507 0.668030 0.662720 0.440857 0.668213 0.692535 0.443207 0.668457 0.720551 0.445526 0.668671 0.747101 0.447906 0.668854 0.772339 0.450317 0.669037 0.796570 0.452667 0.669250 0.820068 0.455048 0.669434 0.842957 0.457458 0.669647 0.865540 0.459778 0.669830 0.888092 0.462128 0.670074 0.910980 0.464478 0.670258 0.934692 0.466766 0.670441 0.959961 0.469147 0.670624 0.050537 0.447601 0.658661 0.067200 0.449738 0.658905 0.085236 0.451843 0.659119 0.105011 0.454010 0.659332 0.126831 0.456177 0.659576 0.151031 0.458282 0.659760 0.178040 0.460541 0.660004 0.207886 0.462738 0.660217 0.240448 0.464905 0.660431 0.275635 0.467163 0.660645 0.313110 0.469391 0.660889 0.352631 0.471680 0.661102 0.393982 0.473938 0.661346 0.436523 0.476105 0.661560 0.479889 0.478363 0.661774 0.521973 0.480682 0.662018 0.561401 0.482910 0.662231 0.598145 0.485199 0.662445 0.632324 0.487457 0.662659 0.664001 0.489746 0.662903 0.693634 0.492004 0.663086 0.721497 0.494202 0.663361 0.747925 0.496490 0.663574 0.773010 0.498779 0.663757 0.797180 0.500946 0.664001 0.820526 0.503235 0.664185 0.843323 0.505463 0.664459 0.865875 0.507660 0.664612 0.888336 0.509857 0.664825 0.911163 0.512024 0.665070 0.934784 0.514160 0.665253 0.959961 0.516296 0.665497 0.052124 0.498260 0.653046 0.068817 0.500366 0.653290 0.086945 0.502350 0.653534 0.106873 0.504456 0.653748 0.128845 0.506531 0.654022 0.153198 0.508545 0.654236 0.180328 0.510651 0.654510 0.210327 0.512665 0.654724 0.243103 0.514771 0.654999 0.278290 0.516876 0.655212 0.315796 0.518921 0.655457 0.355408 0.520996 0.655731 0.396637 0.523071 0.655945 0.439209 0.525116 0.656219 0.482452 0.527222 0.656433 0.524200 0.529266 0.656708 0.563354 0.531281 0.656982 0.599884 0.533325 0.657227 0.633728 0.535370 0.657440 0.665314 0.537384 0.657715 0.694733 0.539429 0.657959 0.722473 0.541443 0.658203 0.748718 0.543427 0.658447 0.773743 0.545410 0.658691 0.797760 0.547363 0.658966 0.821014 0.549347 0.659210 0.843719 0.551300 0.659454 0.866150 0.553192 0.659698 0.888611 0.555145 0.659912 0.911316 0.557007 0.660156 0.934845 0.558929 0.660431 0.959961 0.560760 0.660645 0.053680 0.547302 0.647705 0.070496 0.549103 0.647919 0.088715 0.550873 0.648224 0.108734 0.552704 0.648499 0.130859 0.554596 0.648804 0.155365 0.556366 0.649017 0.182678 0.558197 0.649323 0.212799 0.559998 0.649597 0.245667 0.561829 0.649872 0.280945 0.563721 0.650177 0.318573 0.565491 0.650421 0.358154 0.567322 0.650726 0.399353 0.569183 0.651001 0.441864 0.570923 0.651276 0.484924 0.572784 0.651550 0.526428 0.574585 0.651886 0.565277 0.576385 0.652100 0.601593 0.578156 0.652405 0.635254 0.579956 0.652710 0.666534 0.581696 0.652954 0.695831 0.583435 0.653259 0.723389 0.585205 0.653473 0.749512 0.586914 0.653839 0.774384 0.588715 0.654053 0.798340 0.590363 0.654327 0.821472 0.592072 0.654633 0.844086 0.593781 0.654877 0.866516 0.595459 0.655182 0.888824 0.597076 0.655457 0.911499 0.598755 0.655701 0.934967 0.600342 0.655945 0.959961 0.601959 0.656250 0.055267 0.592560 0.642792 0.072144 0.594147 0.643066 0.090485 0.595703 0.643433 0.110687 0.597351 0.643707 0.132935 0.598938 0.644043 0.157623 0.600494 0.644318 0.185059 0.602142 0.644623 0.215363 0.603668 0.644958 0.248352 0.605316 0.645233 0.283722 0.606873 0.645569 0.321320 0.608490 0.645844 0.360840 0.610077 0.646179 0.402069 0.611664 0.646515 0.444489 0.613190 0.646820 0.487427 0.614807 0.647095 0.528625 0.616364 0.647400 0.567261 0.617920 0.647736 0.603271 0.619476 0.648041 0.636688 0.620941 0.648346 0.667786 0.622528 0.648651 0.696930 0.624023 0.648987 0.724304 0.625519 0.649292 0.750305 0.627045 0.649567 0.775085 0.628540 0.649872 0.798889 0.629974 0.650177 0.821991 0.631470 0.650452 0.844513 0.632904 0.650787 0.866760 0.634308 0.651062 0.889038 0.635712 0.651337 0.911621 0.637085 0.651672 0.935028 0.638519 0.651917 0.959961 0.639862 0.652252 0.056885 0.634186 0.638397 0.073883 0.635559 0.638733 0.092346 0.636871 0.639069 0.112640 0.638336 0.639374 0.135010 0.639679 0.639740 0.159851 0.641052 0.640076 0.187531 0.642456 0.640411 0.217896 0.643799 0.640747 0.250946 0.645233 0.641083 0.286438 0.646606 0.641418 0.324066 0.647919 0.641754 0.363647 0.649292 0.642120 0.404816 0.650635 0.642456 0.447205 0.652008 0.642731 0.489868 0.653320 0.643127 0.530762 0.654663 0.643433 0.569183 0.656006 0.643768 0.604950 0.657318 0.644104 0.638123 0.658630 0.644470 0.669037 0.659943 0.644775 0.697968 0.661224 0.645111 0.725250 0.662476 0.645416 0.751068 0.663818 0.645752 0.775726 0.665070 0.646088 0.799438 0.666321 0.646423 0.822418 0.667572 0.646729 0.844879 0.668793 0.647064 0.867096 0.669983 0.647369 0.889282 0.671234 0.647644 0.911804 0.672394 0.647980 0.935120 0.673553 0.648285 0.959961 0.674713 0.648560 0.058533 0.672241 0.634491 0.075653 0.673462 0.634827 0.094177 0.674652 0.635193 0.114594 0.675812 0.635559 0.137146 0.676971 0.635895 0.162140 0.678162 0.636292 0.189941 0.679382 0.636658 0.220490 0.680511 0.636993 0.253632 0.681702 0.637390 0.289185 0.682892 0.637756 0.326813 0.684052 0.638092 0.366394 0.685242 0.638428 0.407532 0.686371 0.638824 0.449799 0.687531 0.639160 0.492310 0.688690 0.639526 0.532959 0.689819 0.639862 0.571075 0.690948 0.640259 0.606598 0.692139 0.640594 0.639557 0.693207 0.640930 0.670258 0.694336 0.641266 0.699036 0.695435 0.641632 0.726135 0.696503 0.641998 0.751831 0.697601 0.642365 0.776428 0.698669 0.642670 0.800018 0.699768 0.643005 0.822876 0.700806 0.643341 0.845276 0.701813 0.643677 0.867401 0.702850 0.644043 0.889496 0.703888 0.644318 0.911957 0.704865 0.644653 0.935181 0.705902 0.644958 0.959961 0.706909 0.645264 0.060211 0.707275 0.630920 0.077393 0.708313 0.631317 0.096069 0.709290 0.631653 0.116638 0.710327 0.632111 0.139282 0.711304 0.632477 0.164459 0.712341 0.632843 0.192413 0.713379 0.633240 0.223083 0.714355 0.633636 0.256317 0.715363 0.633972 0.291931 0.716370 0.634369 0.329620 0.717377 0.634766 0.369141 0.718384 0.635162 0.410217 0.719330 0.635559 0.452423 0.720337 0.635864 0.494781 0.721313 0.636261 0.535095 0.722290 0.636658 0.572968 0.723267 0.637024 0.608246 0.724243 0.637390 0.640961 0.725159 0.637756 0.671448 0.726135 0.638153 0.700043 0.727051 0.638519 0.727020 0.727997 0.638855 0.752594 0.728912 0.639221 0.777039 0.729828 0.639587 0.800537 0.730743 0.639893 0.823364 0.731628 0.640259 0.845581 0.732513 0.640594 0.867645 0.733368 0.640930 0.889709 0.734253 0.641266 0.912048 0.735077 0.641632 0.935303 0.735931 0.641937 0.959961 0.736755 0.642242 0.061920 0.739685 0.627716 0.079193 0.740509 0.628113 0.097961 0.741394 0.628540 0.118683 0.742279 0.628937 0.141449 0.743134 0.629303 0.166809 0.744049 0.629761 0.194946 0.744873 0.630157 0.225708 0.745758 0.630524 0.259003 0.746613 0.630951 0.294647 0.747467 0.631348 0.332428 0.748291 0.631744 0.371948 0.749146 0.632141 0.412903 0.750000 0.632538 0.454987 0.750824 0.632935 0.497162 0.751678 0.633331 0.537231 0.752502 0.633667 0.574768 0.753296 0.634094 0.609833 0.754150 0.634460 0.642303 0.754944 0.634857 0.672668 0.755737 0.635254 0.701111 0.756561 0.635590 0.727875 0.757355 0.635986 0.753357 0.758118 0.636322 0.777679 0.758881 0.636719 0.801056 0.759644 0.637054 0.823761 0.760406 0.637421 0.846008 0.761169 0.637726 0.867950 0.761871 0.638092 0.889923 0.762634 0.638428 0.912231 0.763336 0.638763 0.935333 0.764038 0.639130 0.959961 0.764740 0.639435 0.063629 0.769897 0.624817 0.080963 0.770660 0.625244 0.099884 0.771393 0.625641 0.120697 0.772156 0.626099 0.143646 0.772858 0.626495 0.169159 0.773590 0.626892 0.197449 0.774353 0.627350 0.228333 0.775085 0.627716 0.261780 0.775787 0.628143 0.297424 0.776550 0.628571 0.335144 0.777283 0.628967 0.374664 0.777985 0.629395 0.415619 0.778687 0.629791 0.457581 0.779419 0.630157 0.499573 0.780090 0.630585 0.539307 0.780792 0.630981 0.576630 0.781525 0.631409 0.611359 0.782196 0.631775 0.643646 0.782898 0.632141 0.673798 0.783569 0.632568 0.702057 0.784210 0.632935 0.728760 0.784912 0.633301 0.754059 0.785553 0.633698 0.778259 0.786224 0.634033 0.801575 0.786835 0.634399 0.824219 0.787506 0.634766 0.846313 0.788116 0.635132 0.868225 0.788727 0.635468 0.890076 0.789337 0.635834 0.912323 0.789948 0.636169 0.935394 0.790527 0.636505 0.959961 0.791077 0.636841 0.065369 0.798340 0.622131 0.082794 0.798981 0.622589 0.101837 0.799561 0.623016 0.122772 0.800201 0.623413 0.145905 0.800842 0.623901 0.171539 0.801483 0.624298 0.199951 0.802094 0.624725 0.230927 0.802734 0.625153 0.264435 0.803314 0.625580 0.300140 0.803925 0.625977 0.337891 0.804565 0.626404 0.377380 0.805176 0.626801 0.418243 0.805756 0.627228 0.460114 0.806366 0.627655 0.501862 0.807007 0.628082 0.541351 0.807556 0.628479 0.578400 0.808136 0.628876 0.612946 0.808746 0.629272 0.645020 0.809296 0.629669 0.674988 0.809875 0.630066 0.703064 0.810394 0.630432 0.729584 0.811005 0.630798 0.754791 0.811554 0.631165 0.778900 0.812073 0.631561 0.802124 0.812592 0.631927 0.824646 0.813171 0.632263 0.846680 0.813690 0.632660 0.868469 0.814178 0.632996 0.890320 0.814667 0.633362 0.912506 0.815186 0.633698 0.935486 0.815674 0.634003 0.959961 0.816132 0.634369 0.067139 0.825287 0.619659 0.084625 0.825806 0.620056 0.103790 0.826355 0.620544 0.124817 0.826904 0.621002 0.148102 0.827423 0.621399 0.173920 0.827911 0.621826 0.202484 0.828491 0.622284 0.233551 0.828979 0.622742 0.267120 0.829468 0.623169 0.302856 0.830017 0.623535 0.340637 0.830505 0.623993 0.380096 0.831024 0.624451 0.420929 0.831543 0.624878 0.462677 0.832031 0.625275 0.504181 0.832520 0.625702 0.543427 0.833008 0.626099 0.580200 0.833496 0.626526 0.614502 0.834015 0.626862 0.646362 0.834473 0.627289 0.676117 0.834961 0.627655 0.704041 0.835388 0.628082 0.730438 0.835846 0.628479 0.755493 0.836304 0.628845 0.779480 0.836761 0.629211 0.802582 0.837219 0.629578 0.825012 0.837646 0.629944 0.846985 0.838074 0.630280 0.868774 0.838501 0.630646 0.890533 0.838928 0.631012 0.912628 0.839325 0.631317 0.935516 0.839722 0.631653 0.959961 0.840118 0.631989 0.068878 0.851105 0.617340 0.086517 0.851501 0.617767 0.105774 0.851959 0.618225 0.126953 0.852386 0.618652 0.150330 0.852844 0.619110 0.176300 0.853271 0.619568 0.204956 0.853699 0.619995 0.236176 0.854156 0.620422 0.269775 0.854553 0.620880 0.305573 0.854980 0.621307 0.343323 0.855408 0.621765 0.382751 0.855835 0.622192 0.423462 0.856262 0.622589 0.465179 0.856659 0.623016 0.506470 0.857056 0.623413 0.545410 0.857452 0.623840 0.581940 0.857880 0.624268 0.615967 0.858246 0.624634 0.647644 0.858673 0.625000 0.677185 0.859039 0.625458 0.704987 0.859406 0.625793 0.731232 0.859802 0.626190 0.756165 0.860168 0.626587 0.780029 0.860535 0.626953 0.803070 0.860931 0.627319 0.825439 0.861267 0.627686 0.847321 0.861603 0.628021 0.868988 0.861969 0.628357 0.890686 0.862274 0.628693 0.912781 0.862610 0.629059 0.935577 0.862946 0.629364 0.959961 0.863281 0.629700 0.070618 0.876007 0.615082 0.088348 0.876343 0.615509 0.107727 0.876740 0.615997 0.129028 0.877075 0.616455 0.152557 0.877441 0.616913 0.178680 0.877777 0.617340 0.207458 0.878143 0.617798 0.238800 0.878479 0.618225 0.272491 0.878845 0.618713 0.308289 0.879181 0.619110 0.346008 0.879517 0.619537 0.385406 0.879852 0.619995 0.426117 0.880157 0.620392 0.467590 0.880524 0.620789 0.508667 0.880859 0.621246 0.547272 0.881165 0.621643 0.583588 0.881500 0.622040 0.617432 0.881805 0.622467 0.648834 0.882111 0.622864 0.678253 0.882446 0.623230 0.705872 0.882751 0.623627 0.732025 0.883057 0.624023 0.756866 0.883362 0.624359 0.780640 0.883636 0.624756 0.803558 0.883942 0.625122 0.825806 0.884216 0.625488 0.847656 0.884491 0.625824 0.869232 0.884766 0.626160 0.890869 0.885010 0.626495 0.912842 0.885284 0.626831 0.935669 0.885559 0.627136 0.959961 0.885773 0.627472 0.072388 0.900391 0.612915 0.090210 0.900635 0.613373 0.109711 0.900940 0.613831 0.131134 0.901184 0.614288 0.154785 0.901489 0.614716 0.181091 0.901764 0.615204 0.209961 0.902008 0.615662 0.241394 0.902313 0.616119 0.275116 0.902618 0.616516 0.310913 0.902832 0.617004 0.348694 0.903168 0.617401 0.388031 0.903412 0.617828 0.428589 0.903656 0.618256 0.470032 0.903931 0.618683 0.510742 0.904175 0.619080 0.549194 0.904449 0.619507 0.585236 0.904694 0.619934 0.618835 0.904938 0.620300 0.650085 0.905182 0.620728 0.679321 0.905396 0.621124 0.706757 0.905640 0.621490 0.732758 0.905853 0.621887 0.757477 0.906097 0.622253 0.781158 0.906342 0.622589 0.803986 0.906555 0.622955 0.826172 0.906769 0.623322 0.847961 0.906952 0.623627 0.869476 0.907166 0.623962 0.891052 0.907379 0.624298 0.912994 0.907593 0.624634 0.935699 0.907806 0.624939 0.959961 0.907990 0.625244 0.074158 0.924469 0.610748 0.092102 0.924713 0.611176 0.111633 0.924896 0.611694 0.133209 0.925079 0.612152 0.157013 0.925293 0.612640 0.183472 0.925537 0.613068 0.212463 0.925751 0.613495 0.243958 0.925934 0.613983 0.277710 0.926117 0.614410 0.313538 0.926331 0.614838 0.351288 0.926575 0.615265 0.390564 0.926758 0.615723 0.431152 0.926941 0.616119 0.472351 0.927124 0.616547 0.512848 0.927338 0.616943 0.551086 0.927490 0.617371 0.586853 0.927704 0.617798 0.620209 0.927887 0.618164 0.651245 0.928040 0.618530 0.680267 0.928223 0.618958 0.707611 0.928436 0.619324 0.733490 0.928558 0.619690 0.758118 0.928741 0.620026 0.781677 0.928894 0.620422 0.804413 0.929077 0.620758 0.826538 0.929260 0.621094 0.848236 0.929382 0.621429 0.869690 0.929535 0.621765 0.891235 0.929657 0.622070 0.913086 0.929810 0.622406 0.935791 0.929962 0.622681 0.959961 0.930115 0.622955 0.075897 0.948730 0.608551 0.093933 0.948883 0.609070 0.113678 0.948975 0.609558 0.135284 0.949158 0.609985 0.159241 0.949280 0.610443 0.185852 0.949432 0.610901 0.214905 0.949585 0.611359 0.246460 0.949768 0.611786 0.280304 0.949860 0.612244 0.316162 0.950012 0.612671 0.353851 0.950134 0.613068 0.393066 0.950256 0.613525 0.433533 0.950378 0.613922 0.474670 0.950470 0.614380 0.514923 0.950623 0.614777 0.552795 0.950745 0.615204 0.588409 0.950867 0.615570 0.621521 0.951019 0.615967 0.652374 0.951141 0.616364 0.681274 0.951233 0.616730 0.708435 0.951355 0.617096 0.734192 0.951477 0.617493 0.758698 0.951599 0.617828 0.782135 0.951721 0.618134 0.804840 0.951782 0.618500 0.826904 0.951874 0.618866 0.848480 0.951996 0.619171 0.869934 0.952118 0.619476 0.891357 0.952209 0.619781 0.913208 0.952332 0.620087 0.935822 0.952393 0.620392 0.959961 0.952515 0.620636 0.077698 0.973663 0.606323 0.095795 0.973694 0.606781 0.115631 0.973816 0.607239 0.137360 0.973846 0.607727 0.161469 0.973969 0.608154 0.188141 0.974030 0.608612 0.217346 0.974091 0.609070 0.248993 0.974182 0.609528 0.282837 0.974213 0.609955 0.318695 0.974304 0.610382 0.356354 0.974365 0.610809 0.395538 0.974396 0.611237 0.435913 0.974518 0.611664 0.476898 0.974548 0.612061 0.516907 0.974609 0.612457 0.554565 0.974701 0.612854 0.589874 0.974731 0.613281 0.622833 0.974823 0.613647 0.653442 0.974854 0.614014 0.682220 0.974976 0.614441 0.709259 0.975006 0.614746 0.734863 0.975067 0.615112 0.759247 0.975098 0.615448 0.782654 0.975189 0.615845 0.805206 0.975220 0.616150 0.827179 0.975250 0.616455 0.848785 0.975281 0.616760 0.870117 0.975342 0.617065 0.891541 0.975403 0.617401 0.913300 0.975433 0.617645 0.935883 0.975494 0.617920 0.959961 0.975494 0.618164 0.079437 1.000000 0.603821 0.097656 1.000000 0.604309 0.117554 1.000000 0.604767 0.139435 1.000000 0.605225 0.163635 1.000000 0.605682 0.190430 1.000000 0.606140 0.219757 1.000000 0.606567 0.251373 1.000000 0.607056 0.285309 1.000000 0.607483 0.321198 1.000000 0.607880 0.358826 1.000000 0.608307 0.397919 1.000000 0.608734 0.438232 1.000000 0.609161 0.479034 1.000000 0.609558 0.518829 1.000000 0.609985 0.556274 1.000000 0.610352 0.591339 1.000000 0.610748 0.624023 1.000000 0.611145 0.654510 1.000000 0.611511 0.683075 1.000000 0.611877 0.710022 1.000000 0.612213 0.735535 1.000000 0.612549 0.759827 1.000000 0.612915 0.783112 1.000000 0.613251 0.805634 1.000000 0.613556 0.827515 1.000000 0.613861 0.849030 1.000000 0.614197 0.870300 1.000000 0.614441 0.891632 1.000000 0.614716 0.913422 1.000000 0.614990 0.935944 1.000000 0.615234 0.959961 1.000000 0.615479 0.033783 0.004517 0.735901 0.049377 0.005249 0.736115 0.066223 0.005981 0.736267 0.084503 0.006744 0.736420 0.104584 0.007538 0.736633 0.126862 0.008301 0.736816 0.151642 0.009125 0.737000 0.179382 0.010010 0.737213 0.210175 0.010864 0.737427 0.243927 0.011780 0.737640 0.280365 0.012695 0.737885 0.319366 0.013611 0.738098 0.360474 0.014587 0.738312 0.403442 0.015533 0.738525 0.447815 0.016571 0.738739 0.492584 0.017609 0.739014 0.535339 0.018616 0.739258 0.575348 0.019684 0.739471 0.612457 0.020782 0.739716 0.646851 0.021881 0.739990 0.678802 0.022980 0.740204 0.708710 0.024139 0.740448 0.736908 0.025299 0.740723 0.763641 0.026489 0.740936 0.789215 0.027649 0.741211 0.813904 0.028839 0.741455 0.837891 0.030090 0.741760 0.861511 0.031311 0.742004 0.885040 0.032593 0.742249 0.908905 0.033875 0.742523 0.933594 0.035126 0.742798 0.959961 0.036438 0.743042 0.034698 0.021027 0.734314 0.050323 0.021790 0.734467 0.067230 0.022552 0.734650 0.085632 0.023407 0.734833 0.105804 0.024231 0.735046 0.128204 0.025085 0.735260 0.153107 0.025970 0.735443 0.181030 0.026917 0.735657 0.211914 0.027802 0.735901 0.245789 0.028778 0.736115 0.282318 0.029755 0.736298 0.321350 0.030731 0.736542 0.362518 0.031769 0.736786 0.405457 0.032837 0.737000 0.449860 0.033875 0.737244 0.494537 0.034973 0.737488 0.537109 0.036072 0.737701 0.576843 0.037201 0.737976 0.613800 0.038361 0.738220 0.647980 0.039520 0.738464 0.679810 0.040710 0.738739 0.709564 0.041931 0.738953 0.737640 0.043152 0.739166 0.764282 0.044403 0.739441 0.789734 0.045624 0.739716 0.814331 0.046936 0.739960 0.838257 0.048248 0.740234 0.861816 0.049561 0.740479 0.885254 0.050903 0.740723 0.909088 0.052246 0.740997 0.933655 0.053619 0.741241 0.959961 0.054993 0.741486 0.035583 0.038452 0.732574 0.051361 0.039307 0.732788 0.068298 0.040131 0.732941 0.086761 0.041046 0.733154 0.107117 0.041962 0.733368 0.129578 0.042908 0.733551 0.154694 0.043854 0.733795 0.182678 0.044861 0.734009 0.213745 0.045837 0.734222 0.247742 0.046875 0.734467 0.284363 0.047943 0.734650 0.323456 0.049011 0.734894 0.364685 0.050140 0.735138 0.407593 0.051270 0.735352 0.451904 0.052368 0.735565 0.496490 0.053589 0.735840 0.538849 0.054749 0.736053 0.578400 0.055969 0.736298 0.615112 0.057251 0.736572 0.649139 0.058411 0.736786 0.680817 0.059753 0.737030 0.710449 0.061005 0.737244 0.738403 0.062347 0.737549 0.764954 0.063690 0.737793 0.790344 0.065033 0.738007 0.814789 0.066406 0.738251 0.838654 0.067810 0.738495 0.862091 0.069183 0.738770 0.885498 0.070648 0.738983 0.909210 0.072113 0.739258 0.933746 0.073547 0.739502 0.959961 0.075043 0.739746 0.036621 0.057251 0.730713 0.052399 0.058136 0.730957 0.069458 0.059113 0.731110 0.088013 0.060089 0.731323 0.108459 0.061066 0.731506 0.131104 0.062103 0.731750 0.156281 0.063171 0.731964 0.184479 0.064270 0.732147 0.215637 0.065369 0.732361 0.249786 0.066467 0.732635 0.286469 0.067627 0.732819 0.325592 0.068817 0.733063 0.366913 0.070038 0.733276 0.409821 0.071228 0.733521 0.454071 0.072479 0.733765 0.498505 0.073761 0.733978 0.540619 0.075043 0.734253 0.579956 0.076385 0.734436 0.616516 0.077728 0.734680 0.650360 0.079071 0.734894 0.681885 0.080444 0.735168 0.711365 0.081848 0.735413 0.739166 0.083282 0.735657 0.765625 0.084747 0.735870 0.790863 0.086151 0.736115 0.815277 0.087646 0.736359 0.839050 0.089203 0.736572 0.862427 0.090698 0.736816 0.885742 0.092255 0.737061 0.909363 0.093842 0.737305 0.933838 0.095398 0.737518 0.959961 0.097015 0.737793 0.037689 0.077759 0.728699 0.053558 0.078766 0.728882 0.070618 0.079803 0.729065 0.089325 0.080902 0.729309 0.109894 0.082031 0.729492 0.132599 0.083099 0.729706 0.157990 0.084320 0.729889 0.186310 0.085480 0.730133 0.217682 0.086700 0.730347 0.251831 0.087952 0.730560 0.288666 0.089203 0.730743 0.327850 0.090515 0.731018 0.369110 0.091827 0.731232 0.412109 0.093170 0.731445 0.456268 0.094543 0.731720 0.500549 0.095947 0.731903 0.542450 0.097351 0.732117 0.581573 0.098816 0.732330 0.617920 0.100220 0.732574 0.651581 0.101715 0.732819 0.682922 0.103271 0.733032 0.712280 0.104797 0.733246 0.739990 0.106323 0.733459 0.766296 0.107941 0.733734 0.791412 0.109497 0.733917 0.815765 0.111145 0.734161 0.839447 0.112793 0.734375 0.862762 0.114441 0.734589 0.885956 0.116119 0.734833 0.909576 0.117798 0.735077 0.933899 0.119537 0.735260 0.959961 0.121307 0.735504 0.038788 0.100372 0.726410 0.054718 0.101532 0.726624 0.071930 0.102692 0.726807 0.090698 0.103912 0.726990 0.111389 0.105133 0.727203 0.134216 0.106384 0.727417 0.159760 0.107727 0.727631 0.188263 0.108978 0.727814 0.219727 0.110382 0.727997 0.254059 0.111755 0.728241 0.290894 0.113129 0.728455 0.330200 0.114563 0.728638 0.371460 0.116028 0.728851 0.414368 0.117523 0.729065 0.458527 0.119019 0.729279 0.502594 0.120575 0.729492 0.544312 0.122131 0.729706 0.583221 0.123718 0.729919 0.619354 0.125336 0.730164 0.652802 0.126953 0.730377 0.683990 0.128601 0.730591 0.713196 0.130280 0.730804 0.740753 0.132019 0.730988 0.766968 0.133728 0.731201 0.792023 0.135468 0.731384 0.816193 0.137238 0.731628 0.839844 0.139069 0.731812 0.863037 0.140839 0.732086 0.886230 0.142731 0.732239 0.909698 0.144531 0.732452 0.933990 0.146454 0.732666 0.959961 0.148346 0.732849 0.039917 0.125610 0.723816 0.055939 0.126923 0.723999 0.073242 0.128204 0.724152 0.092102 0.129608 0.724365 0.112885 0.130951 0.724579 0.135925 0.132385 0.724762 0.161591 0.133820 0.724945 0.190216 0.135254 0.725159 0.221863 0.136780 0.725372 0.256287 0.138336 0.725555 0.293243 0.139862 0.725769 0.332550 0.141479 0.725952 0.373840 0.143097 0.726135 0.416748 0.144714 0.726318 0.460846 0.146423 0.726562 0.504761 0.148071 0.726776 0.546204 0.149811 0.726929 0.584900 0.151611 0.727173 0.620789 0.153320 0.727325 0.654053 0.155182 0.727539 0.685059 0.157013 0.727753 0.714111 0.158844 0.727936 0.741547 0.160736 0.728119 0.767639 0.162689 0.728333 0.792603 0.164551 0.728516 0.816711 0.166504 0.728699 0.840240 0.168488 0.728882 0.863373 0.170441 0.729065 0.886444 0.172516 0.729248 0.909851 0.174530 0.729431 0.934082 0.176544 0.729614 0.959961 0.178680 0.729797 0.041168 0.153992 0.720825 0.057220 0.155487 0.721008 0.074615 0.156952 0.721191 0.093597 0.158478 0.721375 0.114502 0.160034 0.721527 0.137665 0.161621 0.721741 0.163513 0.163239 0.721924 0.192261 0.164825 0.722107 0.224030 0.166534 0.722260 0.258575 0.168274 0.722473 0.295593 0.169983 0.722656 0.334930 0.171753 0.722809 0.376312 0.173615 0.723022 0.419128 0.175415 0.723175 0.463165 0.177246 0.723389 0.506866 0.179108 0.723572 0.548065 0.181030 0.723755 0.586548 0.182983 0.723907 0.622253 0.184906 0.724091 0.655273 0.186951 0.724243 0.686157 0.188965 0.724457 0.715057 0.190948 0.724609 0.742340 0.193024 0.724792 0.768311 0.195160 0.724976 0.793182 0.197174 0.725128 0.817230 0.199341 0.725311 0.840637 0.201477 0.725494 0.863678 0.203644 0.725616 0.886719 0.205841 0.725800 0.910004 0.208008 0.725952 0.934174 0.210205 0.726074 0.959961 0.212463 0.726288 0.042419 0.186127 0.717377 0.058533 0.187744 0.717560 0.076050 0.189453 0.717712 0.095123 0.191162 0.717865 0.116180 0.192871 0.718048 0.139465 0.194641 0.718231 0.165466 0.196442 0.718384 0.194427 0.198212 0.718536 0.226318 0.200104 0.718689 0.260925 0.201996 0.718872 0.298096 0.203888 0.719055 0.337433 0.205841 0.719238 0.378723 0.207794 0.719391 0.421631 0.209778 0.719543 0.465546 0.211853 0.719696 0.509064 0.213837 0.719879 0.550018 0.215973 0.720062 0.588257 0.218079 0.720215 0.623718 0.220154 0.720367 0.656586 0.222351 0.720551 0.687256 0.224487 0.720703 0.716003 0.226685 0.720856 0.743195 0.228882 0.721008 0.769012 0.231140 0.721161 0.793762 0.233337 0.721313 0.817688 0.235596 0.721466 0.841034 0.237885 0.721619 0.864014 0.240204 0.721771 0.886932 0.242523 0.721893 0.910187 0.244781 0.722046 0.934265 0.247101 0.722198 0.959961 0.249481 0.722321 0.043671 0.222168 0.713440 0.059906 0.223907 0.713623 0.077515 0.225739 0.713776 0.096741 0.227661 0.713928 0.117828 0.229462 0.714050 0.141327 0.231415 0.714233 0.167511 0.233368 0.714386 0.196594 0.235352 0.714508 0.228638 0.237366 0.714722 0.263367 0.239410 0.714874 0.300568 0.241425 0.714996 0.339966 0.243561 0.715149 0.381287 0.245636 0.715332 0.424133 0.247833 0.715454 0.467926 0.249969 0.715607 0.511230 0.252106 0.715759 0.551941 0.254333 0.715942 0.589935 0.256592 0.716064 0.625214 0.258820 0.716187 0.657867 0.261078 0.716400 0.688324 0.263397 0.716522 0.716949 0.265656 0.716644 0.743988 0.268005 0.716797 0.769684 0.270294 0.716980 0.794342 0.272705 0.717072 0.818176 0.275055 0.717224 0.841431 0.277374 0.717316 0.864349 0.279816 0.717499 0.887177 0.282227 0.717651 0.910400 0.284607 0.717773 0.934357 0.287018 0.717896 0.959961 0.289459 0.718048 0.045044 0.261810 0.709076 0.061371 0.263702 0.709229 0.079041 0.265656 0.709351 0.098358 0.267670 0.709503 0.119629 0.269653 0.709625 0.143219 0.271698 0.709808 0.169556 0.273804 0.709961 0.198853 0.275879 0.710114 0.230957 0.278046 0.710266 0.265808 0.280121 0.710388 0.303070 0.282318 0.710510 0.342529 0.284576 0.710693 0.383820 0.286743 0.710815 0.426666 0.289001 0.710968 0.470428 0.291260 0.711090 0.513458 0.293549 0.711243 0.553925 0.295837 0.711395 0.591644 0.298187 0.711578 0.626617 0.300476 0.711670 0.659149 0.302887 0.711823 0.689423 0.305267 0.711945 0.717896 0.307617 0.712128 0.744781 0.309998 0.712250 0.770416 0.312408 0.712341 0.794983 0.314789 0.712463 0.818695 0.317261 0.712646 0.841797 0.319641 0.712769 0.864655 0.322083 0.712891 0.887451 0.324615 0.713013 0.910522 0.326965 0.713135 0.934448 0.329468 0.713257 0.959961 0.331970 0.713348 0.046448 0.304688 0.704285 0.062836 0.306702 0.704407 0.080597 0.308807 0.704559 0.100006 0.310852 0.704681 0.121460 0.312958 0.704865 0.145203 0.315125 0.704987 0.171722 0.317322 0.705109 0.201141 0.319458 0.705261 0.233398 0.321686 0.705414 0.268311 0.323883 0.705566 0.305664 0.326141 0.705688 0.345184 0.328461 0.705841 0.386444 0.330688 0.705994 0.429199 0.333069 0.706085 0.472870 0.335388 0.706268 0.515656 0.337708 0.706421 0.555847 0.340088 0.706543 0.593353 0.342468 0.706635 0.628113 0.344788 0.706818 0.660400 0.347229 0.706940 0.690521 0.349579 0.707062 0.718872 0.352020 0.707184 0.745636 0.354492 0.707275 0.771088 0.356842 0.707458 0.795563 0.359344 0.707611 0.819153 0.361786 0.707703 0.842224 0.364227 0.707825 0.864990 0.366699 0.707977 0.887695 0.369171 0.708069 0.910675 0.371552 0.708221 0.934509 0.374023 0.708344 0.959961 0.376495 0.708466 0.047913 0.350464 0.699127 0.064331 0.352539 0.699280 0.082214 0.354645 0.699432 0.101746 0.356812 0.699554 0.123322 0.358948 0.699707 0.147247 0.361206 0.699860 0.173889 0.363373 0.699951 0.203491 0.365601 0.700134 0.235901 0.367889 0.700256 0.270874 0.370148 0.700409 0.308289 0.372437 0.700531 0.347809 0.374756 0.700684 0.389069 0.377075 0.700806 0.431854 0.379456 0.700958 0.475342 0.381775 0.701080 0.517883 0.384094 0.701202 0.557831 0.386505 0.701355 0.595093 0.388885 0.701538 0.629608 0.391296 0.701630 0.661713 0.393646 0.701782 0.691650 0.396057 0.701874 0.719788 0.398499 0.702026 0.746429 0.400909 0.702179 0.771759 0.403320 0.702301 0.796112 0.405792 0.702423 0.819672 0.408203 0.702576 0.842621 0.410583 0.702698 0.865234 0.413025 0.702789 0.887909 0.415497 0.702972 0.910858 0.417877 0.703064 0.934601 0.420288 0.703186 0.959961 0.422638 0.703278 0.049377 0.398529 0.693726 0.065887 0.400635 0.693848 0.083862 0.402832 0.694000 0.103577 0.405029 0.694122 0.125244 0.407135 0.694275 0.149323 0.409393 0.694427 0.176117 0.411560 0.694550 0.205933 0.413788 0.694702 0.238373 0.416107 0.694855 0.273468 0.418365 0.694977 0.310974 0.420685 0.695129 0.350494 0.422974 0.695312 0.391754 0.425232 0.695404 0.434479 0.427612 0.695557 0.477875 0.429962 0.695709 0.520111 0.432281 0.695862 0.559814 0.434631 0.695984 0.596771 0.436951 0.696136 0.631073 0.439362 0.696228 0.662964 0.441711 0.696411 0.692719 0.444061 0.696564 0.720734 0.446411 0.696686 0.747253 0.448853 0.696808 0.772491 0.451172 0.696991 0.796692 0.453552 0.697083 0.820160 0.455933 0.697235 0.843048 0.458252 0.697357 0.865601 0.460602 0.697510 0.888153 0.462952 0.697632 0.911011 0.465271 0.697723 0.934692 0.467651 0.697876 0.959961 0.469940 0.697998 0.050842 0.448395 0.688080 0.067505 0.450470 0.688232 0.085571 0.452637 0.688385 0.105347 0.454742 0.688507 0.127197 0.456940 0.688660 0.151428 0.459167 0.688812 0.178436 0.461304 0.688995 0.208313 0.463562 0.689117 0.240997 0.465759 0.689270 0.276154 0.467957 0.689423 0.313629 0.470215 0.689575 0.353180 0.472504 0.689728 0.394409 0.474670 0.689880 0.437103 0.476990 0.690063 0.480347 0.479187 0.690186 0.522339 0.481476 0.690338 0.561768 0.483795 0.690460 0.598450 0.485962 0.690643 0.632538 0.488312 0.690796 0.664215 0.490570 0.690948 0.693878 0.492798 0.691101 0.721710 0.495087 0.691254 0.748047 0.497375 0.691376 0.773163 0.499542 0.691528 0.797272 0.501831 0.691681 0.820618 0.504059 0.691833 0.843384 0.506226 0.692017 0.865906 0.508453 0.692108 0.888367 0.510620 0.692261 0.911194 0.512787 0.692444 0.934784 0.514984 0.692566 0.959961 0.517059 0.692688 0.052368 0.499084 0.682312 0.069122 0.501068 0.682465 0.087311 0.503174 0.682617 0.107208 0.505157 0.682800 0.129181 0.507263 0.683014 0.153595 0.509338 0.683136 0.180725 0.511353 0.683319 0.210815 0.513489 0.683533 0.243561 0.515564 0.683685 0.278778 0.517578 0.683838 0.316315 0.519714 0.684021 0.355896 0.521759 0.684235 0.397095 0.523804 0.684387 0.439728 0.525879 0.684570 0.482849 0.527893 0.684692 0.524597 0.530029 0.684906 0.563721 0.532043 0.685120 0.600189 0.534027 0.685272 0.634003 0.536133 0.685425 0.665497 0.538177 0.685669 0.694916 0.540161 0.685791 0.722626 0.542175 0.686005 0.748840 0.544250 0.686157 0.773834 0.546112 0.686371 0.797882 0.548157 0.686523 0.821106 0.550018 0.686707 0.843811 0.551971 0.686890 0.866211 0.553925 0.687042 0.888611 0.555786 0.687256 0.911346 0.557709 0.687378 0.934845 0.559631 0.687561 0.959961 0.561432 0.687775 0.053986 0.547943 0.676819 0.070770 0.549744 0.677002 0.089081 0.551575 0.677216 0.109100 0.553345 0.677399 0.131226 0.555237 0.677612 0.155762 0.557068 0.677856 0.183105 0.558838 0.678040 0.213287 0.560730 0.678253 0.246185 0.562531 0.678436 0.281494 0.564331 0.678680 0.319092 0.566193 0.678864 0.358673 0.568024 0.679047 0.399872 0.569794 0.679260 0.442352 0.571625 0.679504 0.485382 0.573395 0.679718 0.526794 0.575226 0.679932 0.565674 0.577026 0.680115 0.601898 0.578796 0.680359 0.635498 0.580566 0.680542 0.666809 0.582367 0.680756 0.696014 0.584106 0.680969 0.723572 0.585846 0.681183 0.749634 0.587616 0.681396 0.774536 0.589294 0.681580 0.798462 0.591034 0.681793 0.821594 0.592773 0.682007 0.844177 0.594360 0.682220 0.866547 0.596039 0.682404 0.888855 0.597687 0.682617 0.911530 0.599365 0.682831 0.934967 0.600952 0.683014 0.959961 0.602539 0.683228 0.055573 0.593140 0.671844 0.072479 0.594696 0.672028 0.090851 0.596283 0.672272 0.110992 0.597870 0.672485 0.133270 0.599487 0.672760 0.158020 0.601105 0.672974 0.185486 0.602692 0.673218 0.215851 0.604279 0.673462 0.248810 0.605896 0.673676 0.284241 0.607483 0.673950 0.321838 0.609070 0.674164 0.361420 0.610687 0.674408 0.402527 0.612213 0.674652 0.445038 0.613800 0.674896 0.487762 0.615387 0.675110 0.529022 0.616913 0.675385 0.567596 0.618439 0.675598 0.603546 0.619995 0.675842 0.636932 0.621552 0.676086 0.668030 0.623077 0.676331 0.697083 0.624573 0.676575 0.724518 0.626068 0.676788 0.750397 0.627625 0.677032 0.775208 0.629028 0.677277 0.798981 0.630524 0.677490 0.822052 0.631958 0.677704 0.844574 0.633423 0.677948 0.866821 0.634827 0.678192 0.889069 0.636200 0.678436 0.911682 0.637634 0.678650 0.935089 0.639038 0.678864 0.959961 0.640381 0.679077 0.057190 0.634644 0.667267 0.074188 0.636078 0.667542 0.092682 0.637451 0.667816 0.112976 0.638824 0.668060 0.135406 0.640198 0.668304 0.160278 0.641571 0.668610 0.187958 0.642944 0.668854 0.218414 0.644348 0.669128 0.251434 0.645691 0.669403 0.286957 0.647034 0.669678 0.324585 0.648438 0.669922 0.364136 0.649780 0.670227 0.405273 0.651154 0.670471 0.447662 0.652496 0.670746 0.490326 0.653809 0.670990 0.531158 0.655182 0.671265 0.569550 0.656494 0.671539 0.605255 0.657776 0.671814 0.638397 0.659149 0.672089 0.669250 0.660431 0.672302 0.698151 0.661713 0.672577 0.725433 0.662994 0.672852 0.751251 0.664276 0.673126 0.775879 0.665527 0.673370 0.799530 0.666779 0.673615 0.822510 0.667999 0.673889 0.844940 0.669220 0.674133 0.867126 0.670441 0.674408 0.889313 0.671631 0.674622 0.911835 0.672791 0.674866 0.935120 0.674011 0.675110 0.959961 0.675171 0.675323 0.058838 0.672699 0.663208 0.075958 0.673889 0.663483 0.094574 0.675049 0.663788 0.114990 0.676208 0.664062 0.137512 0.677429 0.664368 0.162598 0.678650 0.664673 0.190369 0.679779 0.664948 0.220978 0.680969 0.665253 0.254150 0.682190 0.665558 0.289673 0.683319 0.665833 0.327362 0.684479 0.666107 0.366913 0.685608 0.666443 0.407990 0.686798 0.666687 0.450287 0.687958 0.666992 0.492798 0.689117 0.667267 0.533386 0.690247 0.667572 0.571442 0.691406 0.667877 0.606873 0.692474 0.668152 0.639832 0.693604 0.668427 0.670502 0.694733 0.668701 0.699219 0.695801 0.669006 0.726288 0.696899 0.669250 0.751984 0.697998 0.669525 0.776520 0.699066 0.669800 0.800079 0.700134 0.670105 0.822937 0.701172 0.670380 0.845337 0.702209 0.670624 0.867432 0.703278 0.670898 0.889526 0.704285 0.671204 0.911987 0.705261 0.671417 0.935181 0.706268 0.671692 0.959961 0.707214 0.671906 0.060516 0.707611 0.659515 0.077698 0.708649 0.659851 0.096436 0.709686 0.660187 0.116974 0.710663 0.660461 0.139679 0.711700 0.660797 0.164917 0.712708 0.661133 0.192871 0.713715 0.661407 0.223602 0.714722 0.661743 0.256805 0.715729 0.662018 0.292419 0.716736 0.662384 0.330170 0.717743 0.662659 0.369690 0.718719 0.662964 0.410736 0.719727 0.663300 0.452911 0.720703 0.663635 0.495178 0.721649 0.663940 0.535431 0.722626 0.664215 0.573273 0.723633 0.664520 0.608490 0.724579 0.664825 0.641205 0.725525 0.665131 0.671722 0.726501 0.665405 0.700256 0.727386 0.665710 0.727203 0.728333 0.665985 0.752716 0.729248 0.666290 0.777130 0.730194 0.666595 0.800659 0.731049 0.666901 0.823456 0.731934 0.667145 0.845673 0.732849 0.667450 0.867737 0.733704 0.667694 0.889771 0.734558 0.667999 0.912109 0.735413 0.668243 0.935303 0.736237 0.668549 0.959961 0.737030 0.668823 0.062225 0.739990 0.656219 0.079498 0.740845 0.656555 0.098358 0.741730 0.656891 0.119019 0.742615 0.657196 0.141876 0.743469 0.657562 0.167236 0.744324 0.657898 0.195374 0.745178 0.658203 0.226166 0.746063 0.658569 0.259491 0.746918 0.658844 0.295227 0.747772 0.659180 0.332947 0.748627 0.659546 0.372406 0.749451 0.659851 0.413452 0.750336 0.660187 0.455505 0.751160 0.660492 0.497589 0.752014 0.660797 0.537628 0.752808 0.661133 0.575195 0.753632 0.661499 0.610107 0.754456 0.661743 0.642609 0.755280 0.662079 0.672852 0.756042 0.662354 0.701294 0.756836 0.662720 0.728058 0.757660 0.663025 0.753479 0.758392 0.663300 0.777771 0.759186 0.663574 0.801147 0.759918 0.663940 0.823853 0.760681 0.664215 0.846069 0.761444 0.664490 0.868011 0.762177 0.664764 0.889954 0.762909 0.665039 0.912231 0.763611 0.665375 0.935364 0.764282 0.665619 0.959961 0.764984 0.665894 0.063934 0.770203 0.653168 0.081329 0.770935 0.653534 0.100250 0.771667 0.653900 0.121094 0.772400 0.654236 0.144073 0.773132 0.654572 0.169556 0.773865 0.654907 0.197906 0.774628 0.655243 0.228851 0.775330 0.655579 0.262207 0.776062 0.655945 0.297943 0.776825 0.656281 0.335693 0.777527 0.656647 0.375153 0.778198 0.656952 0.416107 0.778961 0.657318 0.458069 0.779663 0.657654 0.499939 0.780365 0.657990 0.539734 0.781067 0.658295 0.576996 0.781769 0.658630 0.611725 0.782471 0.658936 0.643951 0.783142 0.659302 0.674042 0.783783 0.659607 0.702271 0.784485 0.659912 0.728943 0.785156 0.660187 0.754211 0.785797 0.660553 0.778351 0.786438 0.660858 0.801697 0.787109 0.661163 0.824280 0.787689 0.661438 0.846375 0.788330 0.661743 0.868286 0.788940 0.662079 0.890137 0.789581 0.662354 0.912384 0.790161 0.662628 0.935425 0.790710 0.662903 0.959961 0.791290 0.663147 0.065674 0.798553 0.650360 0.083160 0.799194 0.650757 0.102203 0.799835 0.651062 0.123138 0.800446 0.651459 0.146301 0.801086 0.651825 0.171936 0.801697 0.652161 0.200378 0.802338 0.652527 0.231445 0.802948 0.652893 0.264923 0.803558 0.653229 0.300690 0.804138 0.653595 0.338409 0.804810 0.653931 0.377899 0.805389 0.654266 0.418823 0.806000 0.654663 0.460602 0.806580 0.654968 0.502289 0.807190 0.655334 0.541779 0.807770 0.655640 0.578766 0.808380 0.656006 0.613251 0.808929 0.656342 0.645264 0.809479 0.656647 0.675201 0.810059 0.656952 0.703247 0.810608 0.657318 0.729767 0.811188 0.657623 0.754913 0.811737 0.657928 0.778992 0.812286 0.658234 0.802216 0.812775 0.658569 0.824707 0.813354 0.658875 0.846741 0.813873 0.659149 0.868530 0.814331 0.659454 0.890350 0.814850 0.659729 0.912537 0.815399 0.660004 0.935486 0.815857 0.660339 0.959961 0.816315 0.660583 0.067413 0.825470 0.647736 0.085022 0.826019 0.648102 0.104187 0.826569 0.648468 0.125244 0.827057 0.648834 0.148529 0.827606 0.649231 0.174347 0.828125 0.649597 0.202911 0.828674 0.649963 0.234070 0.829163 0.650299 0.267609 0.829651 0.650696 0.303375 0.830200 0.651062 0.341187 0.830688 0.651428 0.380615 0.831207 0.651733 0.421417 0.831757 0.652100 0.463135 0.832214 0.652435 0.504578 0.832672 0.652832 0.543793 0.833191 0.653168 0.580536 0.833679 0.653503 0.614777 0.834167 0.653839 0.646576 0.834625 0.654205 0.676331 0.835114 0.654510 0.704224 0.835602 0.654846 0.730591 0.836029 0.655121 0.755615 0.836456 0.655457 0.779602 0.836945 0.655823 0.802704 0.837372 0.656097 0.825073 0.837799 0.656403 0.847046 0.838226 0.656708 0.868805 0.838654 0.656982 0.890564 0.839050 0.657288 0.912628 0.839508 0.657562 0.935547 0.839874 0.657837 0.959961 0.840271 0.658112 0.069183 0.851257 0.645233 0.086853 0.851685 0.645630 0.106110 0.852112 0.645996 0.127350 0.852570 0.646393 0.150757 0.853027 0.646820 0.176727 0.853424 0.647156 0.205414 0.853851 0.647522 0.236694 0.854309 0.647888 0.270294 0.854706 0.648285 0.306122 0.855133 0.648651 0.343872 0.855560 0.649017 0.383240 0.855988 0.649323 0.424011 0.856415 0.649719 0.465576 0.856781 0.650116 0.506866 0.857208 0.650421 0.545746 0.857635 0.650787 0.582245 0.858002 0.651123 0.616272 0.858398 0.651459 0.647888 0.858826 0.651794 0.677399 0.859161 0.652100 0.705139 0.859558 0.652466 0.731354 0.859924 0.652802 0.756287 0.860291 0.653107 0.780151 0.860657 0.653442 0.803162 0.861023 0.653687 0.825500 0.861389 0.653992 0.847412 0.861725 0.654327 0.869019 0.862091 0.654602 0.890778 0.862427 0.654907 0.912781 0.862732 0.655182 0.935577 0.863068 0.655457 0.959961 0.863373 0.655731 0.070953 0.876160 0.642883 0.088715 0.876495 0.643311 0.108063 0.876831 0.643677 0.129395 0.877228 0.644043 0.153015 0.877563 0.644440 0.179108 0.877899 0.644836 0.207977 0.878265 0.645203 0.239288 0.878601 0.645569 0.272949 0.878937 0.645935 0.308807 0.879303 0.646301 0.346527 0.879639 0.646698 0.385895 0.879974 0.647064 0.426575 0.880310 0.647400 0.468048 0.880646 0.647766 0.509064 0.880951 0.648163 0.547668 0.881287 0.648468 0.583923 0.881592 0.648834 0.617676 0.881958 0.649139 0.649078 0.882233 0.649475 0.678436 0.882568 0.649872 0.706055 0.882874 0.650146 0.732147 0.883179 0.650482 0.756958 0.883453 0.650787 0.780731 0.883759 0.651093 0.803619 0.884033 0.651459 0.825867 0.884308 0.651703 0.847687 0.884613 0.652008 0.869293 0.884857 0.652283 0.890900 0.885101 0.652588 0.912903 0.885406 0.652863 0.935669 0.885620 0.653168 0.959961 0.885895 0.653412 0.072723 0.900482 0.640625 0.090576 0.900726 0.640991 0.110046 0.901031 0.641357 0.131500 0.901306 0.641785 0.155243 0.901611 0.642181 0.181488 0.901886 0.642517 0.210419 0.902130 0.642944 0.241852 0.902405 0.643280 0.275574 0.902679 0.643677 0.311432 0.902954 0.644073 0.349152 0.903229 0.644409 0.388489 0.903473 0.644806 0.429077 0.903778 0.645172 0.470428 0.904022 0.645477 0.511200 0.904266 0.645844 0.549561 0.904541 0.646179 0.585541 0.904755 0.646545 0.619080 0.905029 0.646912 0.650299 0.905243 0.647247 0.679443 0.905487 0.647583 0.706909 0.905731 0.647888 0.732880 0.905975 0.648163 0.757629 0.906189 0.648529 0.781250 0.906403 0.648834 0.804077 0.906647 0.649139 0.826263 0.906860 0.649414 0.847992 0.907074 0.649689 0.869537 0.907257 0.650024 0.891083 0.907471 0.650299 0.913025 0.907684 0.650543 0.935730 0.907867 0.650818 0.959961 0.908081 0.651093 0.074493 0.924561 0.638306 0.092438 0.924774 0.638733 0.112030 0.924988 0.639099 0.133606 0.925201 0.639465 0.157471 0.925385 0.639893 0.183868 0.925598 0.640289 0.212921 0.925842 0.640686 0.244415 0.926025 0.641083 0.278168 0.926208 0.641418 0.314087 0.926392 0.641815 0.351746 0.926636 0.642181 0.391083 0.926819 0.642517 0.431580 0.927002 0.642914 0.472809 0.927185 0.643250 0.513275 0.927399 0.643585 0.551361 0.927612 0.643982 0.587097 0.927765 0.644287 0.620453 0.927948 0.644684 0.651520 0.928101 0.644989 0.680481 0.928253 0.645264 0.707794 0.928467 0.645630 0.733582 0.928619 0.645935 0.758209 0.928802 0.646240 0.781769 0.928986 0.646515 0.804504 0.929108 0.646851 0.826599 0.929321 0.647156 0.848267 0.929474 0.647430 0.869751 0.929565 0.647705 0.891266 0.929749 0.647980 0.913116 0.929871 0.648224 0.935822 0.930023 0.648468 0.959961 0.930176 0.648712 0.076263 0.948761 0.636017 0.094299 0.948914 0.636383 0.114014 0.949036 0.636810 0.135712 0.949188 0.637207 0.159668 0.949371 0.637604 0.186218 0.949524 0.638000 0.215363 0.949646 0.638367 0.246948 0.949768 0.638763 0.280731 0.949921 0.639130 0.316650 0.950073 0.639496 0.354309 0.950165 0.639862 0.393494 0.950287 0.640228 0.434021 0.950409 0.640594 0.475067 0.950562 0.640961 0.515289 0.950684 0.641327 0.553192 0.950836 0.641663 0.588623 0.950928 0.641998 0.621765 0.951080 0.642303 0.652588 0.951172 0.642700 0.681427 0.951294 0.642975 0.708588 0.951447 0.643311 0.734314 0.951538 0.643585 0.758789 0.951660 0.643921 0.782288 0.951752 0.644196 0.804932 0.951843 0.644501 0.826935 0.951965 0.644775 0.848541 0.952026 0.645050 0.869965 0.952148 0.645355 0.891418 0.952271 0.645569 0.913239 0.952332 0.645844 0.935822 0.952423 0.646057 0.959961 0.952545 0.646301 0.078003 0.973663 0.633575 0.096161 0.973724 0.634003 0.115967 0.973846 0.634399 0.137756 0.973877 0.634827 0.161926 0.973969 0.635193 0.188568 0.974091 0.635590 0.217804 0.974121 0.635986 0.249420 0.974182 0.636383 0.283325 0.974243 0.636749 0.319153 0.974335 0.637085 0.356842 0.974396 0.637482 0.395966 0.974426 0.637878 0.436401 0.974518 0.638214 0.477325 0.974579 0.638580 0.517303 0.974609 0.638916 0.554871 0.974731 0.639252 0.590149 0.974762 0.639587 0.623016 0.974854 0.639893 0.653687 0.974884 0.640259 0.682373 0.974976 0.640564 0.709381 0.975006 0.640839 0.734985 0.975067 0.641174 0.759369 0.975098 0.641479 0.782745 0.975189 0.641754 0.805298 0.975220 0.642029 0.827271 0.975281 0.642334 0.848816 0.975311 0.642578 0.870148 0.975403 0.642853 0.891541 0.975403 0.643097 0.913361 0.975464 0.643311 0.935883 0.975494 0.643555 0.959961 0.975555 0.643799 0.079773 1.000000 0.630981 0.097961 1.000000 0.631409 0.117889 1.000000 0.631805 0.139832 1.000000 0.632202 0.164062 1.000000 0.632599 0.190857 1.000000 0.632996 0.220184 1.000000 0.633392 0.251892 1.000000 0.633728 0.285736 1.000000 0.634125 0.321686 1.000000 0.634552 0.359253 1.000000 0.634888 0.398407 1.000000 0.635254 0.438629 1.000000 0.635590 0.479431 1.000000 0.635925 0.519165 1.000000 0.636322 0.556519 1.000000 0.636627 0.591614 1.000000 0.636963 0.624298 1.000000 0.637299 0.654694 1.000000 0.637604 0.683258 1.000000 0.637909 0.710144 1.000000 0.638245 0.735657 1.000000 0.638519 0.759888 1.000000 0.638824 0.783234 1.000000 0.639099 0.805664 1.000000 0.639343 0.827576 1.000000 0.639618 0.849030 1.000000 0.639893 0.870331 1.000000 0.640137 0.891663 1.000000 0.640381 0.913422 1.000000 0.640625 0.935944 1.000000 0.640839 0.959961 1.000000 0.641083 0.033997 0.004791 0.765198 0.049561 0.005524 0.765289 0.066376 0.006256 0.765472 0.084717 0.007019 0.765594 0.104828 0.007812 0.765778 0.127075 0.008636 0.765900 0.151886 0.009460 0.766052 0.179657 0.010284 0.766205 0.210480 0.011200 0.766388 0.244232 0.012085 0.766571 0.280701 0.013031 0.766724 0.319733 0.013947 0.766907 0.360809 0.014923 0.767059 0.403839 0.015930 0.767242 0.448212 0.016937 0.767426 0.492950 0.017944 0.767609 0.535675 0.019012 0.767792 0.575592 0.020111 0.767975 0.612732 0.021179 0.768188 0.647064 0.022308 0.768341 0.678986 0.023407 0.768524 0.708893 0.024567 0.768677 0.737061 0.025726 0.768951 0.763763 0.026886 0.769135 0.789307 0.028107 0.769318 0.813995 0.029327 0.769501 0.837982 0.030548 0.769684 0.861542 0.031769 0.769958 0.885071 0.033051 0.770111 0.908936 0.034332 0.770325 0.933594 0.035645 0.770508 0.959961 0.036926 0.770721 0.034851 0.021301 0.763519 0.050507 0.022034 0.763641 0.067413 0.022858 0.763824 0.085846 0.023712 0.763947 0.106049 0.024567 0.764069 0.128418 0.025421 0.764252 0.153351 0.026306 0.764404 0.181305 0.027191 0.764587 0.212250 0.028168 0.764740 0.246155 0.029114 0.764923 0.282715 0.030121 0.765106 0.321747 0.031128 0.765259 0.362885 0.032135 0.765442 0.405853 0.033234 0.765594 0.450256 0.034302 0.765808 0.494904 0.035400 0.765961 0.537415 0.036499 0.766174 0.577118 0.037659 0.766357 0.614014 0.038788 0.766510 0.648224 0.039978 0.766693 0.680023 0.041138 0.766937 0.709747 0.042358 0.767120 0.737793 0.043610 0.767303 0.764404 0.044830 0.767487 0.789886 0.046143 0.767670 0.814423 0.047424 0.767883 0.838318 0.048706 0.768097 0.861847 0.050049 0.768250 0.885284 0.051392 0.768463 0.909119 0.052704 0.768646 0.933685 0.054138 0.768829 0.959961 0.055481 0.769012 0.035828 0.038788 0.761719 0.051575 0.039612 0.761871 0.068512 0.040497 0.762024 0.087006 0.041382 0.762177 0.107330 0.042328 0.762329 0.129852 0.043243 0.762512 0.154938 0.044220 0.762634 0.183014 0.045227 0.762817 0.214081 0.046265 0.763000 0.248108 0.047272 0.763153 0.284790 0.048340 0.763306 0.323853 0.049469 0.763458 0.365051 0.050507 0.763702 0.408051 0.051697 0.763855 0.452332 0.052856 0.764038 0.496826 0.054016 0.764191 0.539154 0.055237 0.764374 0.578674 0.056427 0.764557 0.615387 0.057678 0.764771 0.649384 0.058929 0.764954 0.681000 0.060181 0.765137 0.710632 0.061493 0.765289 0.738556 0.062805 0.765503 0.765045 0.064178 0.765717 0.790436 0.065521 0.765869 0.814880 0.066925 0.766052 0.838715 0.068329 0.766266 0.862152 0.069763 0.766418 0.885559 0.071136 0.766602 0.909271 0.072632 0.766785 0.933746 0.074097 0.767029 0.959961 0.075592 0.767181 0.036804 0.057587 0.759766 0.052612 0.058502 0.759918 0.069672 0.059479 0.760101 0.088226 0.060425 0.760254 0.108704 0.061432 0.760406 0.131348 0.062500 0.760559 0.156586 0.063568 0.760712 0.184784 0.064667 0.760895 0.216034 0.065765 0.761047 0.250092 0.066864 0.761200 0.286865 0.068085 0.761414 0.326019 0.069275 0.761566 0.367249 0.070465 0.761749 0.410217 0.071716 0.761902 0.454468 0.072937 0.762054 0.498840 0.074219 0.762238 0.540985 0.075531 0.762451 0.580231 0.076874 0.762634 0.616760 0.078186 0.762787 0.650635 0.079559 0.762939 0.682068 0.080933 0.763123 0.711548 0.082367 0.763336 0.739349 0.083832 0.763489 0.765686 0.085236 0.763641 0.790955 0.086731 0.763855 0.815399 0.088257 0.764008 0.839111 0.089752 0.764191 0.862488 0.091278 0.764374 0.885773 0.092804 0.764557 0.909393 0.094391 0.764709 0.933868 0.096008 0.764862 0.959961 0.097595 0.765076 0.037842 0.078094 0.757690 0.053741 0.079132 0.757812 0.070892 0.080200 0.757965 0.089600 0.081268 0.758118 0.110107 0.082428 0.758270 0.132935 0.083588 0.758392 0.158325 0.084717 0.758575 0.186676 0.085938 0.758698 0.218079 0.087158 0.758911 0.252228 0.088409 0.759064 0.289093 0.089691 0.759216 0.328308 0.091003 0.759399 0.369537 0.092316 0.759521 0.412476 0.093658 0.759705 0.456665 0.095032 0.759888 0.500854 0.096436 0.760071 0.542816 0.097900 0.760193 0.581909 0.099304 0.760376 0.618195 0.100800 0.760529 0.651794 0.102295 0.760712 0.683075 0.103790 0.760864 0.712433 0.105347 0.761047 0.740112 0.106934 0.761230 0.766418 0.108521 0.761353 0.791565 0.110138 0.761505 0.815857 0.111725 0.761658 0.839508 0.113403 0.761871 0.862823 0.115082 0.762024 0.885986 0.116730 0.762177 0.909576 0.118439 0.762360 0.933960 0.120178 0.762512 0.959961 0.121918 0.762665 0.039001 0.100769 0.755280 0.054962 0.101929 0.755402 0.072144 0.103149 0.755585 0.090942 0.104309 0.755707 0.111603 0.105591 0.755859 0.134552 0.106873 0.755981 0.160065 0.108154 0.756195 0.188629 0.109497 0.756317 0.220123 0.110870 0.756470 0.254395 0.112244 0.756592 0.291351 0.113678 0.756744 0.330597 0.115082 0.756897 0.371857 0.116547 0.757080 0.414856 0.118103 0.757233 0.458954 0.119537 0.757385 0.503021 0.121124 0.757507 0.544647 0.122711 0.757660 0.583496 0.124298 0.757843 0.619598 0.125916 0.757996 0.653046 0.127594 0.758148 0.684174 0.129211 0.758301 0.713379 0.130920 0.758453 0.740906 0.132660 0.758575 0.767090 0.134369 0.758698 0.792114 0.136139 0.758942 0.816284 0.137909 0.759033 0.839905 0.139709 0.759155 0.863068 0.141602 0.759338 0.886261 0.143372 0.759460 0.909729 0.145264 0.759644 0.933990 0.147156 0.759766 0.959961 0.149017 0.759888 0.040131 0.126068 0.752563 0.056152 0.127411 0.752686 0.073517 0.128723 0.752838 0.092377 0.130066 0.752960 0.113190 0.131470 0.753143 0.136230 0.132904 0.753265 0.161957 0.134338 0.753387 0.190613 0.135864 0.753540 0.222260 0.137360 0.753662 0.256683 0.138885 0.753815 0.293701 0.140503 0.753967 0.332977 0.142029 0.754120 0.374268 0.143677 0.754272 0.417236 0.145355 0.754364 0.461304 0.147003 0.754486 0.505127 0.148743 0.754639 0.546570 0.150482 0.754822 0.585175 0.152252 0.754944 0.621063 0.154022 0.755066 0.654327 0.155853 0.755219 0.685211 0.157654 0.755310 0.714325 0.159546 0.755432 0.741699 0.161407 0.755615 0.767761 0.163330 0.755737 0.792725 0.165283 0.755859 0.816833 0.167206 0.755981 0.840302 0.169220 0.756104 0.863434 0.171265 0.756226 0.886475 0.173187 0.756348 0.909882 0.175293 0.756470 0.934113 0.177368 0.756561 0.959961 0.179382 0.756714 0.041351 0.154572 0.749481 0.057465 0.156006 0.749573 0.074890 0.157532 0.749756 0.093872 0.159027 0.749847 0.114777 0.160614 0.749969 0.138000 0.162231 0.750122 0.163818 0.163818 0.750214 0.192719 0.165466 0.750366 0.224457 0.167175 0.750488 0.259003 0.168915 0.750610 0.296082 0.170624 0.750732 0.335419 0.172394 0.750824 0.376709 0.174225 0.750916 0.419617 0.176056 0.751099 0.463593 0.177917 0.751221 0.507294 0.179810 0.751373 0.548431 0.181732 0.751495 0.586853 0.183685 0.751556 0.622498 0.185669 0.751678 0.655548 0.187683 0.751770 0.686371 0.189667 0.751923 0.715210 0.191711 0.752045 0.742493 0.193756 0.752106 0.768463 0.195892 0.752258 0.793304 0.197998 0.752350 0.817291 0.200104 0.752472 0.840698 0.202240 0.752563 0.863739 0.204437 0.752655 0.886749 0.206604 0.752777 0.910065 0.208801 0.752869 0.934174 0.211060 0.752960 0.959961 0.213226 0.753082 0.042633 0.186737 0.745941 0.058807 0.188385 0.746033 0.076324 0.190033 0.746155 0.095428 0.191711 0.746246 0.116455 0.193512 0.746338 0.139801 0.195282 0.746460 0.165802 0.197021 0.746582 0.194855 0.198944 0.746704 0.226746 0.200745 0.746826 0.261383 0.202667 0.746887 0.298523 0.204620 0.746979 0.337891 0.206543 0.747101 0.379181 0.208527 0.747253 0.422119 0.210571 0.747345 0.466003 0.212555 0.747437 0.509460 0.214630 0.747559 0.550415 0.216766 0.747620 0.588531 0.218811 0.747711 0.623962 0.220978 0.747864 0.656799 0.223053 0.747955 0.687408 0.225311 0.748016 0.716187 0.227509 0.748138 0.743317 0.229675 0.748230 0.769135 0.231903 0.748322 0.793884 0.234192 0.748413 0.817780 0.236420 0.748505 0.841064 0.238739 0.748596 0.864075 0.241058 0.748657 0.886993 0.243286 0.748749 0.910248 0.245667 0.748840 0.934296 0.247986 0.748932 0.959961 0.250305 0.748993 0.043945 0.222778 0.741882 0.060181 0.224609 0.741974 0.077820 0.226440 0.742035 0.096985 0.228271 0.742157 0.118164 0.230194 0.742279 0.141693 0.232178 0.742401 0.167847 0.234070 0.742462 0.197021 0.236084 0.742554 0.229034 0.238068 0.742645 0.263794 0.240143 0.742737 0.301025 0.242218 0.742859 0.340424 0.244293 0.742950 0.381714 0.246429 0.743042 0.424652 0.248596 0.743103 0.468445 0.250763 0.743195 0.511688 0.252960 0.743256 0.552338 0.255188 0.743408 0.590210 0.257385 0.743500 0.625458 0.259674 0.743561 0.658081 0.261871 0.743652 0.688538 0.264191 0.743744 0.717133 0.266541 0.743835 0.744141 0.268829 0.743896 0.769806 0.271179 0.743958 0.794464 0.273590 0.744080 0.818268 0.275879 0.744141 0.841492 0.278259 0.744202 0.864410 0.280701 0.744263 0.887238 0.283051 0.744324 0.910400 0.285522 0.744385 0.934357 0.287872 0.744446 0.959961 0.290314 0.744507 0.045319 0.262451 0.737366 0.061646 0.264404 0.737457 0.079346 0.266388 0.737549 0.098663 0.268372 0.737671 0.119965 0.270416 0.737732 0.143585 0.272461 0.737793 0.170013 0.274536 0.737885 0.199280 0.276672 0.737976 0.231445 0.278778 0.738098 0.266266 0.280914 0.738159 0.303558 0.283142 0.738251 0.342987 0.285339 0.738342 0.384369 0.287567 0.738373 0.427155 0.289825 0.738464 0.470886 0.292053 0.738586 0.513885 0.294403 0.738647 0.554260 0.296692 0.738739 0.591919 0.299042 0.738800 0.626923 0.301392 0.738861 0.659393 0.303680 0.738983 0.689667 0.306091 0.739044 0.718079 0.308533 0.739105 0.744934 0.310852 0.739197 0.770538 0.313293 0.739258 0.795074 0.315735 0.739319 0.818787 0.318115 0.739410 0.841858 0.320557 0.739471 0.864716 0.322998 0.739502 0.887451 0.325470 0.739563 0.910583 0.327942 0.739624 0.934448 0.330292 0.739716 0.959961 0.332825 0.739777 0.046722 0.305450 0.732483 0.063110 0.307526 0.732574 0.080872 0.309570 0.732635 0.100342 0.311615 0.732727 0.121826 0.313782 0.732788 0.145569 0.315887 0.732880 0.172119 0.318054 0.732971 0.201569 0.320282 0.733063 0.233856 0.322479 0.733154 0.268799 0.324707 0.733185 0.306152 0.326996 0.733246 0.345642 0.329224 0.733337 0.386932 0.331543 0.733459 0.429718 0.333893 0.733521 0.473358 0.336212 0.733612 0.516113 0.338562 0.733673 0.556183 0.340881 0.733734 0.593658 0.343323 0.733826 0.628387 0.345703 0.733887 0.660645 0.348053 0.733948 0.690765 0.350494 0.734039 0.719025 0.352905 0.734100 0.745758 0.355347 0.734161 0.771210 0.357788 0.734222 0.795685 0.360260 0.734314 0.819244 0.362640 0.734375 0.842285 0.365173 0.734406 0.865021 0.367584 0.734467 0.887726 0.370026 0.734558 0.910706 0.372498 0.734619 0.934540 0.374939 0.734650 0.959961 0.377380 0.734711 0.048126 0.351227 0.727203 0.064667 0.353333 0.727264 0.082520 0.355438 0.727356 0.102081 0.357605 0.727448 0.123688 0.359802 0.727539 0.147583 0.361969 0.727631 0.174316 0.364166 0.727692 0.203949 0.366455 0.727753 0.236359 0.368683 0.727844 0.271362 0.371002 0.727905 0.308807 0.373322 0.728027 0.348267 0.375580 0.728088 0.389618 0.377930 0.728180 0.432281 0.380249 0.728241 0.475800 0.382629 0.728333 0.518311 0.385010 0.728394 0.558197 0.387329 0.728485 0.595337 0.389740 0.728516 0.629913 0.392212 0.728607 0.661896 0.394531 0.728668 0.691833 0.396942 0.728760 0.719971 0.399445 0.728821 0.746613 0.401794 0.728882 0.771912 0.404205 0.728943 0.796204 0.406677 0.729004 0.819733 0.409058 0.729065 0.842682 0.411499 0.729187 0.865326 0.413879 0.729248 0.887939 0.416351 0.729279 0.910889 0.418793 0.729340 0.934662 0.421173 0.729370 0.959961 0.423584 0.729431 0.049652 0.399323 0.721649 0.066223 0.401459 0.721710 0.084167 0.403595 0.721832 0.103882 0.405792 0.721924 0.125610 0.408020 0.721985 0.149658 0.410156 0.722046 0.176575 0.412384 0.722137 0.206360 0.414703 0.722229 0.238892 0.416901 0.722351 0.274017 0.419189 0.722412 0.311493 0.421539 0.722504 0.350952 0.423828 0.722565 0.392273 0.426117 0.722626 0.434906 0.428436 0.722748 0.478302 0.430786 0.722809 0.520599 0.433136 0.722900 0.560150 0.435455 0.722992 0.597076 0.437866 0.723022 0.631348 0.440247 0.723083 0.663208 0.442596 0.723175 0.692993 0.444977 0.723267 0.720917 0.447357 0.723328 0.747406 0.449646 0.723389 0.772614 0.452057 0.723450 0.796814 0.454407 0.723572 0.820221 0.456787 0.723633 0.843109 0.459167 0.723694 0.865662 0.461456 0.723755 0.888184 0.463837 0.723816 0.911041 0.466217 0.723877 0.934723 0.468475 0.723969 0.959961 0.470764 0.724030 0.051117 0.449158 0.715912 0.067780 0.451233 0.716034 0.085876 0.453369 0.716064 0.105713 0.455536 0.716156 0.127594 0.457764 0.716248 0.151825 0.459930 0.716370 0.178864 0.462128 0.716461 0.208801 0.464325 0.716553 0.241425 0.466522 0.716614 0.276642 0.468811 0.716736 0.314117 0.471008 0.716766 0.353638 0.473236 0.716919 0.394928 0.475494 0.716980 0.437531 0.477753 0.717102 0.480835 0.480042 0.717163 0.522797 0.482330 0.717255 0.562134 0.484558 0.717346 0.598816 0.486847 0.717438 0.632874 0.489136 0.717499 0.664490 0.491394 0.717590 0.694031 0.493683 0.717651 0.721893 0.495941 0.717743 0.748199 0.498138 0.717896 0.773285 0.500397 0.717957 0.797394 0.502655 0.718048 0.820709 0.504852 0.718109 0.843445 0.507111 0.718201 0.865967 0.509247 0.718292 0.888458 0.511475 0.718384 0.911194 0.513580 0.718475 0.934814 0.515717 0.718536 0.959961 0.517853 0.718628 0.052673 0.499786 0.710052 0.069427 0.501831 0.710144 0.087585 0.503876 0.710236 0.107574 0.505981 0.710358 0.129578 0.508026 0.710480 0.153992 0.510040 0.710571 0.181213 0.512146 0.710693 0.211273 0.514282 0.710785 0.244019 0.516296 0.710907 0.279297 0.518341 0.711029 0.316833 0.520447 0.711121 0.356415 0.522491 0.711273 0.397675 0.524597 0.711365 0.440155 0.526611 0.711487 0.483307 0.528656 0.711578 0.524994 0.530762 0.711731 0.564087 0.532776 0.711853 0.600494 0.534851 0.711945 0.634369 0.536865 0.712036 0.665741 0.538910 0.712128 0.695160 0.540924 0.712311 0.722809 0.542877 0.712433 0.748993 0.544861 0.712524 0.773956 0.546906 0.712646 0.797943 0.548798 0.712738 0.821198 0.550720 0.712860 0.843872 0.552704 0.713013 0.866272 0.554626 0.713135 0.888672 0.556549 0.713226 0.911346 0.558441 0.713318 0.934875 0.560272 0.713470 0.959961 0.562103 0.713562 0.054260 0.548584 0.704407 0.071075 0.550446 0.704559 0.089386 0.552216 0.704742 0.109467 0.554077 0.704865 0.131622 0.555847 0.705017 0.156189 0.557678 0.705170 0.183563 0.559540 0.705292 0.213776 0.561432 0.705444 0.246643 0.563202 0.705566 0.282013 0.565033 0.705719 0.319550 0.566833 0.705872 0.359161 0.568665 0.706024 0.400391 0.570496 0.706146 0.442841 0.572266 0.706299 0.485809 0.574097 0.706451 0.527191 0.575928 0.706604 0.566010 0.577667 0.706726 0.602173 0.579468 0.706879 0.635773 0.581238 0.707062 0.667023 0.583008 0.707214 0.696228 0.584778 0.707336 0.723724 0.586456 0.707489 0.749786 0.588226 0.707642 0.774689 0.589966 0.707764 0.798553 0.591614 0.707947 0.821655 0.593323 0.708099 0.844269 0.595032 0.708221 0.866608 0.596619 0.708374 0.888885 0.598328 0.708527 0.911530 0.599976 0.708649 0.934967 0.601501 0.708832 0.959961 0.603088 0.708954 0.055847 0.593689 0.699310 0.072815 0.595306 0.699493 0.091187 0.596893 0.699677 0.111420 0.598480 0.699829 0.133698 0.600128 0.700012 0.158417 0.601654 0.700165 0.185974 0.603271 0.700348 0.216309 0.604889 0.700562 0.249268 0.606506 0.700714 0.284729 0.608032 0.700867 0.322296 0.609619 0.701019 0.361938 0.611267 0.701233 0.403076 0.612823 0.701416 0.445496 0.614380 0.701569 0.488312 0.615906 0.701752 0.529449 0.617493 0.701935 0.567932 0.619019 0.702118 0.603912 0.620575 0.702332 0.637238 0.622131 0.702484 0.668243 0.623627 0.702667 0.697327 0.625183 0.702820 0.724640 0.626617 0.702972 0.750580 0.628113 0.703186 0.775330 0.629608 0.703369 0.799072 0.631042 0.703522 0.822144 0.632477 0.703674 0.844666 0.633942 0.703888 0.866852 0.635315 0.704010 0.889099 0.636749 0.704254 0.911713 0.638153 0.704407 0.935089 0.639496 0.704559 0.959961 0.640869 0.704712 0.057465 0.635193 0.694702 0.074493 0.636566 0.694885 0.093048 0.637939 0.695068 0.113373 0.639313 0.695282 0.135803 0.640717 0.695465 0.160675 0.642059 0.695679 0.188416 0.643463 0.695892 0.218872 0.644836 0.696106 0.251953 0.646179 0.696289 0.287445 0.647552 0.696503 0.325104 0.648895 0.696686 0.364685 0.650299 0.696899 0.405792 0.651611 0.697113 0.448120 0.652985 0.697327 0.490784 0.654297 0.697540 0.531555 0.655701 0.697723 0.569824 0.656952 0.697937 0.605530 0.658295 0.698120 0.638641 0.659607 0.698334 0.669495 0.660889 0.698517 0.698395 0.662170 0.698761 0.725555 0.663452 0.698975 0.751373 0.664703 0.699127 0.776001 0.665955 0.699341 0.799652 0.667206 0.699554 0.822601 0.668457 0.699707 0.845032 0.669647 0.699951 0.867218 0.670898 0.700134 0.889343 0.672058 0.700348 0.911835 0.673248 0.700500 0.935150 0.674408 0.700684 0.959961 0.675568 0.700867 0.059143 0.673126 0.690460 0.076263 0.674316 0.690735 0.094879 0.675507 0.690948 0.115326 0.676697 0.691193 0.137939 0.677887 0.691406 0.162994 0.679016 0.691620 0.190857 0.680237 0.691864 0.221436 0.681396 0.692108 0.254669 0.682556 0.692322 0.290192 0.683746 0.692535 0.327850 0.684875 0.692749 0.367432 0.686096 0.692993 0.408569 0.687225 0.693268 0.450745 0.688385 0.693481 0.493195 0.689514 0.693695 0.533783 0.690674 0.693909 0.571777 0.691772 0.694153 0.607178 0.692932 0.694366 0.640076 0.694031 0.694580 0.670685 0.695129 0.694855 0.699402 0.696228 0.695038 0.726471 0.697327 0.695251 0.752167 0.698395 0.695496 0.776672 0.699463 0.695679 0.800201 0.700500 0.695953 0.823029 0.701599 0.696136 0.845398 0.702576 0.696350 0.867462 0.703613 0.696533 0.889557 0.704620 0.696747 0.912018 0.705627 0.696960 0.935211 0.706604 0.697144 0.959961 0.707581 0.697388 0.060883 0.708008 0.686737 0.078033 0.709045 0.686981 0.096802 0.710083 0.687225 0.117401 0.711090 0.687469 0.140106 0.712067 0.687683 0.165314 0.713074 0.687958 0.193390 0.714111 0.688232 0.224091 0.715118 0.688446 0.257324 0.716095 0.688690 0.292969 0.717102 0.688965 0.330627 0.718079 0.689240 0.370178 0.719086 0.689484 0.411255 0.720093 0.689728 0.453400 0.721069 0.689941 0.495697 0.722046 0.690186 0.535919 0.722992 0.690430 0.573669 0.723938 0.690704 0.608826 0.724915 0.690979 0.641449 0.725830 0.691162 0.671936 0.726807 0.691437 0.700439 0.727783 0.691681 0.727356 0.728638 0.691864 0.752869 0.729584 0.692108 0.777283 0.730499 0.692383 0.800751 0.731354 0.692596 0.823517 0.732300 0.692810 0.845764 0.733185 0.693054 0.867798 0.734009 0.693237 0.889801 0.734863 0.693451 0.912109 0.735687 0.693726 0.935303 0.736511 0.693939 0.959961 0.737335 0.694153 0.062561 0.740295 0.683258 0.079865 0.741180 0.683563 0.098694 0.742035 0.683807 0.119415 0.742920 0.684082 0.142273 0.743774 0.684326 0.167664 0.744629 0.684601 0.195831 0.745544 0.684875 0.226654 0.746368 0.685150 0.260040 0.747223 0.685455 0.295685 0.748077 0.685699 0.333405 0.748932 0.685974 0.372925 0.749756 0.686218 0.413971 0.750610 0.686462 0.455994 0.751434 0.686737 0.498016 0.752289 0.687012 0.538025 0.753113 0.687286 0.575470 0.753937 0.687500 0.610443 0.754730 0.687805 0.642822 0.755554 0.688019 0.673096 0.756348 0.688263 0.701447 0.757141 0.688538 0.728210 0.757904 0.688782 0.753662 0.758728 0.689026 0.777924 0.759460 0.689270 0.801239 0.760193 0.689514 0.823914 0.760986 0.689728 0.846100 0.761688 0.689972 0.868042 0.762421 0.690247 0.889984 0.763153 0.690460 0.912262 0.763824 0.690674 0.935364 0.764587 0.690918 0.959961 0.765259 0.691132 0.064270 0.770447 0.680084 0.081635 0.771179 0.680389 0.100616 0.771912 0.680695 0.121460 0.772675 0.680939 0.144501 0.773407 0.681213 0.170074 0.774170 0.681519 0.198395 0.774902 0.681854 0.229309 0.775604 0.682098 0.262726 0.776337 0.682373 0.298462 0.777100 0.682678 0.336182 0.777771 0.682922 0.375702 0.778534 0.683228 0.416626 0.779205 0.683502 0.458527 0.779938 0.683807 0.500427 0.780640 0.684052 0.540100 0.781311 0.684326 0.577301 0.782013 0.684601 0.612000 0.782715 0.684845 0.644226 0.783386 0.685120 0.674255 0.784058 0.685394 0.702454 0.784729 0.685638 0.729095 0.785370 0.685883 0.754364 0.786041 0.686157 0.778534 0.786682 0.686401 0.801758 0.787323 0.686615 0.824341 0.787964 0.686920 0.846466 0.788574 0.687164 0.868317 0.789185 0.687378 0.890198 0.789795 0.687622 0.912384 0.790375 0.687836 0.935425 0.790955 0.688080 0.959961 0.791534 0.688263 0.066010 0.798798 0.677155 0.083496 0.799408 0.677460 0.102600 0.800049 0.677765 0.123535 0.800720 0.678070 0.146698 0.801300 0.678406 0.172394 0.801910 0.678680 0.200897 0.802582 0.678955 0.231903 0.803162 0.679260 0.265442 0.803772 0.679535 0.301147 0.804352 0.679840 0.338928 0.805023 0.680145 0.378448 0.805603 0.680450 0.419250 0.806183 0.680695 0.461090 0.806824 0.681000 0.502747 0.807404 0.681305 0.542145 0.807953 0.681549 0.579102 0.808563 0.681824 0.613525 0.809143 0.682129 0.645538 0.809723 0.682404 0.675385 0.810272 0.682648 0.703461 0.810822 0.682922 0.729889 0.811401 0.683197 0.755035 0.811920 0.683411 0.779114 0.812439 0.683716 0.802277 0.813019 0.683990 0.824768 0.813538 0.684235 0.846802 0.814056 0.684448 0.868591 0.814545 0.684692 0.890381 0.815033 0.684937 0.912537 0.815552 0.685150 0.935486 0.816040 0.685394 0.959961 0.816498 0.685669 0.067749 0.825684 0.674438 0.085297 0.826202 0.674744 0.104523 0.826752 0.675018 0.125610 0.827271 0.675385 0.148926 0.827789 0.675690 0.174805 0.828339 0.675995 0.203430 0.828857 0.676270 0.234497 0.829346 0.676544 0.268158 0.829865 0.676910 0.303894 0.830383 0.677216 0.341614 0.830872 0.677490 0.381134 0.831390 0.677826 0.421875 0.831909 0.678070 0.463593 0.832367 0.678345 0.505035 0.832886 0.678650 0.544128 0.833405 0.678955 0.580841 0.833893 0.679230 0.615051 0.834351 0.679504 0.646820 0.834808 0.679779 0.676483 0.835297 0.680084 0.704376 0.835754 0.680328 0.730713 0.836182 0.680634 0.755768 0.836670 0.680878 0.779663 0.837097 0.681122 0.802765 0.837524 0.681396 0.825165 0.837952 0.681671 0.847107 0.838379 0.681885 0.868866 0.838806 0.682129 0.890594 0.839233 0.682373 0.912659 0.839630 0.682648 0.935547 0.840027 0.682861 0.959961 0.840424 0.683075 0.069519 0.851410 0.671814 0.087189 0.851837 0.672180 0.106476 0.852264 0.672485 0.127686 0.852753 0.672791 0.151154 0.853149 0.673096 0.177216 0.853607 0.673401 0.205963 0.854034 0.673767 0.237152 0.854431 0.674103 0.270813 0.854889 0.674347 0.306580 0.855316 0.674683 0.344330 0.855743 0.674988 0.383759 0.856140 0.675262 0.424438 0.856537 0.675568 0.466125 0.856964 0.675903 0.507233 0.857361 0.676178 0.546143 0.857788 0.676453 0.582520 0.858154 0.676758 0.616516 0.858551 0.677063 0.648041 0.858948 0.677277 0.677582 0.859314 0.677643 0.705292 0.859680 0.677887 0.731506 0.860077 0.678162 0.756439 0.860413 0.678406 0.780243 0.860809 0.678650 0.803253 0.861176 0.678925 0.825592 0.861511 0.679169 0.847443 0.861847 0.679382 0.869049 0.862183 0.679718 0.890778 0.862518 0.679932 0.912781 0.862854 0.680176 0.935638 0.863190 0.680359 0.959961 0.863464 0.680573 0.071320 0.876282 0.669373 0.089050 0.876617 0.669678 0.108490 0.876984 0.670013 0.129822 0.877350 0.670319 0.153381 0.877686 0.670654 0.179565 0.878052 0.670990 0.208405 0.878387 0.671295 0.239746 0.878754 0.671631 0.273468 0.879089 0.671936 0.309265 0.879395 0.672241 0.347046 0.879761 0.672546 0.386383 0.880096 0.672852 0.427002 0.880463 0.673157 0.468506 0.880768 0.673431 0.509430 0.881104 0.673737 0.548035 0.881409 0.674072 0.584259 0.881714 0.674316 0.617950 0.882050 0.674652 0.649323 0.882355 0.674927 0.678650 0.882660 0.675201 0.706207 0.882965 0.675476 0.732300 0.883270 0.675751 0.757050 0.883575 0.676025 0.780853 0.883881 0.676270 0.803741 0.884155 0.676483 0.825928 0.884430 0.676819 0.847748 0.884705 0.677032 0.869354 0.884979 0.677277 0.890930 0.885223 0.677490 0.912903 0.885498 0.677704 0.935699 0.885712 0.677948 0.959961 0.885986 0.678162 0.073059 0.900574 0.666931 0.090912 0.900879 0.667236 0.110443 0.901123 0.667603 0.131927 0.901398 0.667969 0.155609 0.901703 0.668243 0.181946 0.901978 0.668579 0.210876 0.902222 0.668915 0.242310 0.902527 0.669220 0.276093 0.902771 0.669556 0.311920 0.903015 0.669891 0.349640 0.903320 0.670166 0.389008 0.903595 0.670471 0.429565 0.903839 0.670776 0.470886 0.904083 0.671112 0.511566 0.904358 0.671356 0.549866 0.904602 0.671722 0.585815 0.904846 0.671997 0.619354 0.905121 0.672272 0.650482 0.905334 0.672546 0.679688 0.905609 0.672821 0.707092 0.905823 0.673096 0.733032 0.906067 0.673370 0.757690 0.906281 0.673615 0.781342 0.906494 0.673920 0.804169 0.906708 0.674164 0.826324 0.906921 0.674408 0.848053 0.907135 0.674622 0.869568 0.907318 0.674866 0.891083 0.907562 0.675110 0.913055 0.907745 0.675354 0.935730 0.907959 0.675568 0.959961 0.908112 0.675812 0.074860 0.924622 0.664551 0.092773 0.924866 0.664886 0.112396 0.925049 0.665222 0.134003 0.925262 0.665558 0.157867 0.925476 0.665863 0.184326 0.925690 0.666199 0.213348 0.925903 0.666504 0.244843 0.926086 0.666870 0.278656 0.926300 0.667206 0.314514 0.926483 0.667511 0.352264 0.926697 0.667786 0.391510 0.926880 0.668152 0.432037 0.927063 0.668396 0.473206 0.927246 0.668793 0.513641 0.927460 0.669067 0.551697 0.927643 0.669342 0.587433 0.927826 0.669617 0.620728 0.928009 0.669891 0.651672 0.928162 0.670197 0.680695 0.928345 0.670471 0.707916 0.928528 0.670715 0.733765 0.928711 0.671021 0.758331 0.928864 0.671295 0.781830 0.929047 0.671509 0.804596 0.929230 0.671753 0.826660 0.929382 0.672028 0.848328 0.929474 0.672272 0.869781 0.929626 0.672516 0.891296 0.929779 0.672699 0.913147 0.929932 0.672974 0.935822 0.930084 0.673187 0.959961 0.930206 0.673370 0.076599 0.948853 0.662140 0.094666 0.948975 0.662445 0.114349 0.949066 0.662811 0.136078 0.949219 0.663116 0.160065 0.949402 0.663452 0.186707 0.949554 0.663818 0.215820 0.949707 0.664124 0.247406 0.949829 0.664459 0.281281 0.949982 0.664764 0.317078 0.950073 0.665100 0.354797 0.950195 0.665405 0.394012 0.950348 0.665741 0.434418 0.950470 0.666046 0.475494 0.950592 0.666351 0.515656 0.950714 0.666656 0.553497 0.950867 0.666931 0.588959 0.950989 0.667236 0.622009 0.951111 0.667511 0.652802 0.951233 0.667755 0.681641 0.951355 0.668060 0.708740 0.951477 0.668335 0.734436 0.951569 0.668579 0.758911 0.951691 0.668854 0.782379 0.951782 0.669067 0.804993 0.951874 0.669342 0.826996 0.951996 0.669556 0.848602 0.952087 0.669800 0.869995 0.952148 0.670074 0.891449 0.952301 0.670288 0.913269 0.952362 0.670502 0.935852 0.952484 0.670715 0.959961 0.952545 0.670898 0.078369 0.973694 0.659607 0.096497 0.973785 0.659943 0.116333 0.973846 0.660278 0.138153 0.973938 0.660645 0.162292 0.973999 0.660980 0.189026 0.974091 0.661285 0.218231 0.974152 0.661621 0.249878 0.974213 0.661987 0.283783 0.974304 0.662231 0.319641 0.974335 0.662628 0.357300 0.974396 0.662933 0.396423 0.974457 0.663239 0.436798 0.974548 0.663513 0.477722 0.974609 0.663818 0.517670 0.974670 0.664124 0.555145 0.974731 0.664459 0.590393 0.974823 0.664673 0.623291 0.974854 0.665009 0.653870 0.974915 0.665283 0.682556 0.974976 0.665558 0.709503 0.975037 0.665802 0.735077 0.975067 0.666046 0.759460 0.975128 0.666321 0.782837 0.975189 0.666565 0.805389 0.975250 0.666779 0.827301 0.975281 0.667053 0.848846 0.975311 0.667267 0.870209 0.975403 0.667511 0.891571 0.975433 0.667725 0.913391 0.975464 0.667908 0.935944 0.975494 0.668091 0.959961 0.975555 0.668304 0.080078 1.000000 0.656860 0.098297 1.000000 0.657227 0.118256 1.000000 0.657562 0.140198 1.000000 0.657898 0.164459 1.000000 0.658234 0.191315 1.000000 0.658600 0.220612 1.000000 0.658905 0.252350 1.000000 0.659271 0.286255 1.000000 0.659607 0.322113 1.000000 0.659912 0.359711 1.000000 0.660217 0.398804 1.000000 0.660522 0.439056 1.000000 0.660828 0.479889 1.000000 0.661133 0.519501 1.000000 0.661407 0.556824 1.000000 0.661743 0.591858 1.000000 0.662018 0.624481 1.000000 0.662292 0.654938 1.000000 0.662567 0.683441 1.000000 0.662811 0.710266 1.000000 0.663086 0.735748 1.000000 0.663330 0.760010 1.000000 0.663544 0.783264 1.000000 0.663849 0.805756 1.000000 0.664062 0.827637 1.000000 0.664276 0.849091 1.000000 0.664520 0.870361 1.000000 0.664703 0.891693 1.000000 0.664917 0.913452 1.000000 0.665131 0.935944 1.000000 0.665314 0.959961 1.000000 0.665497 0.034088 0.005066 0.793030 0.049744 0.005798 0.793121 0.066589 0.006561 0.793213 0.084930 0.007324 0.793365 0.105042 0.008118 0.793427 0.127350 0.008942 0.793549 0.152161 0.009766 0.793671 0.179993 0.010620 0.793793 0.210846 0.011536 0.793884 0.244568 0.012451 0.794037 0.281128 0.013367 0.794189 0.320068 0.014313 0.794312 0.361267 0.015289 0.794434 0.404205 0.016296 0.794586 0.448517 0.017303 0.794708 0.493286 0.018311 0.794830 0.535950 0.019409 0.794952 0.575836 0.020477 0.795105 0.612976 0.021576 0.795258 0.647217 0.022675 0.795380 0.679199 0.023834 0.795532 0.709045 0.024963 0.795715 0.737152 0.026154 0.795837 0.763885 0.027344 0.795959 0.789429 0.028534 0.796112 0.814056 0.029755 0.796234 0.838043 0.031006 0.796387 0.861603 0.032227 0.796570 0.885101 0.033508 0.796661 0.908966 0.034821 0.796814 0.933624 0.036102 0.796967 0.959961 0.037415 0.797119 0.035004 0.021576 0.791260 0.050720 0.022369 0.791412 0.067627 0.023163 0.791473 0.086060 0.023987 0.791595 0.106293 0.024872 0.791718 0.128693 0.025726 0.791840 0.153687 0.026672 0.791901 0.181641 0.027588 0.792084 0.212585 0.028503 0.792236 0.246490 0.029510 0.792328 0.283112 0.030518 0.792450 0.322113 0.031494 0.792603 0.363312 0.032532 0.792725 0.406281 0.033569 0.792847 0.450623 0.034698 0.792938 0.495209 0.035797 0.793091 0.537720 0.036896 0.793213 0.577393 0.038055 0.793396 0.614288 0.039215 0.793518 0.648468 0.040405 0.793671 0.680176 0.041595 0.793823 0.709930 0.042847 0.793915 0.737915 0.044037 0.794098 0.764526 0.045319 0.794220 0.789978 0.046600 0.794373 0.814514 0.047852 0.794525 0.838409 0.049194 0.794647 0.861908 0.050507 0.794769 0.885376 0.051880 0.794922 0.909119 0.053253 0.795013 0.933685 0.054596 0.795227 0.959961 0.056030 0.795349 0.036011 0.039093 0.789429 0.051727 0.039948 0.789520 0.068756 0.040802 0.789612 0.087250 0.041687 0.789764 0.107605 0.042664 0.789825 0.130127 0.043579 0.790009 0.155273 0.044556 0.790100 0.183319 0.045563 0.790222 0.214447 0.046600 0.790344 0.248474 0.047668 0.790497 0.285187 0.048767 0.790588 0.324249 0.049835 0.790741 0.365479 0.050964 0.790833 0.408417 0.052063 0.790955 0.452698 0.053253 0.791077 0.497192 0.054474 0.791260 0.539490 0.055634 0.791351 0.578949 0.056885 0.791534 0.615662 0.058136 0.791656 0.649597 0.059387 0.791748 0.681213 0.060699 0.791931 0.710815 0.062012 0.792023 0.738678 0.063324 0.792145 0.765167 0.064667 0.792328 0.790558 0.066040 0.792450 0.814941 0.067444 0.792572 0.838776 0.068848 0.792725 0.862274 0.070251 0.792816 0.885620 0.071716 0.792969 0.909271 0.073181 0.793121 0.933746 0.074646 0.793213 0.959961 0.076111 0.793365 0.036987 0.057922 0.787384 0.052826 0.058868 0.787506 0.069885 0.059814 0.787598 0.088531 0.060822 0.787720 0.108978 0.061829 0.787872 0.131622 0.062866 0.787964 0.156921 0.063965 0.788086 0.185181 0.065094 0.788208 0.216400 0.066162 0.788330 0.250519 0.067352 0.788422 0.287292 0.068451 0.788574 0.326477 0.069672 0.788666 0.367676 0.070892 0.788788 0.410706 0.072144 0.788971 0.454865 0.073425 0.789062 0.499237 0.074707 0.789185 0.541260 0.076019 0.789307 0.580566 0.077332 0.789429 0.617065 0.078705 0.789551 0.650818 0.080078 0.789673 0.682251 0.081482 0.789795 0.711700 0.082916 0.789948 0.739471 0.084351 0.790070 0.765839 0.085785 0.790161 0.791077 0.087250 0.790314 0.815460 0.088776 0.790405 0.839172 0.090332 0.790558 0.862518 0.091827 0.790680 0.885803 0.093414 0.790771 0.909454 0.094971 0.790924 0.933868 0.096558 0.791016 0.959961 0.098206 0.791138 0.038086 0.078461 0.785187 0.053986 0.079529 0.785309 0.071106 0.080597 0.785431 0.089813 0.081696 0.785522 0.110413 0.082825 0.785614 0.133209 0.083984 0.785767 0.158630 0.085175 0.785828 0.187042 0.086395 0.785950 0.218414 0.087616 0.786072 0.252655 0.088867 0.786163 0.289490 0.090149 0.786255 0.328705 0.091492 0.786438 0.369965 0.092804 0.786530 0.412933 0.094147 0.786652 0.457153 0.095551 0.786774 0.501282 0.096985 0.786835 0.543182 0.098389 0.786987 0.582214 0.099884 0.787109 0.618469 0.101410 0.787201 0.652008 0.102844 0.787354 0.683319 0.104370 0.787476 0.712585 0.105896 0.787537 0.740265 0.107513 0.787659 0.766541 0.109100 0.787750 0.791656 0.110687 0.787903 0.815918 0.112335 0.788025 0.839569 0.114044 0.788116 0.862854 0.115662 0.788208 0.886047 0.117371 0.788300 0.909607 0.119080 0.788422 0.933990 0.120819 0.788483 0.959961 0.122559 0.788605 0.039185 0.101227 0.782715 0.055206 0.102386 0.782806 0.072388 0.103577 0.782898 0.091217 0.104797 0.783051 0.111938 0.106079 0.783142 0.134888 0.107330 0.783203 0.160461 0.108673 0.783295 0.188965 0.109985 0.783417 0.220551 0.111328 0.783508 0.254852 0.112762 0.783661 0.291779 0.114166 0.783722 0.331085 0.115631 0.783875 0.372345 0.117126 0.783966 0.415222 0.118591 0.784027 0.459381 0.120117 0.784149 0.503418 0.121704 0.784241 0.544952 0.123260 0.784332 0.583801 0.124908 0.784454 0.619904 0.126526 0.784576 0.653259 0.128174 0.784607 0.684418 0.129852 0.784760 0.713531 0.131531 0.784821 0.741028 0.133270 0.784912 0.767212 0.135040 0.785065 0.792206 0.136780 0.785126 0.816437 0.138611 0.785217 0.839966 0.140411 0.785278 0.863159 0.142212 0.785400 0.886322 0.144104 0.785461 0.909760 0.145966 0.785583 0.934021 0.147827 0.785645 0.959961 0.149750 0.785736 0.040405 0.126556 0.779907 0.056427 0.127899 0.780029 0.073730 0.129211 0.780121 0.092651 0.130615 0.780182 0.113495 0.132050 0.780273 0.136536 0.133453 0.780365 0.162292 0.134918 0.780457 0.191010 0.136383 0.780609 0.222656 0.137909 0.780640 0.257141 0.139496 0.780762 0.294159 0.141022 0.780853 0.333435 0.142670 0.780914 0.374756 0.144318 0.781006 0.417633 0.145966 0.781097 0.461731 0.147644 0.781189 0.505524 0.149384 0.781281 0.546906 0.151093 0.781372 0.585480 0.152893 0.781403 0.621338 0.154663 0.781525 0.654510 0.156494 0.781586 0.685486 0.158386 0.781647 0.714478 0.160217 0.781769 0.741852 0.162109 0.781830 0.767883 0.164062 0.781921 0.792816 0.165955 0.781982 0.816895 0.167969 0.782043 0.840363 0.169952 0.782104 0.863495 0.171936 0.782166 0.886536 0.173981 0.782257 0.909912 0.176025 0.782288 0.934113 0.178070 0.782349 0.959961 0.180206 0.782410 0.041595 0.155090 0.776733 0.057709 0.156555 0.776825 0.075134 0.158081 0.776886 0.094147 0.159637 0.776947 0.115112 0.161194 0.777008 0.138336 0.162781 0.777130 0.164246 0.164459 0.777191 0.193085 0.166077 0.777283 0.224884 0.167816 0.777344 0.259430 0.169556 0.777405 0.296509 0.171295 0.777496 0.335876 0.173065 0.777557 0.377197 0.174896 0.777649 0.420105 0.176727 0.777710 0.464050 0.178650 0.777771 0.507721 0.180481 0.777832 0.548767 0.182434 0.777924 0.587158 0.184418 0.777954 0.622803 0.186340 0.777985 0.655792 0.188416 0.778107 0.686584 0.190430 0.778168 0.715393 0.192444 0.778198 0.742645 0.194550 0.778259 0.768616 0.196686 0.778290 0.793427 0.198761 0.778320 0.817383 0.200897 0.778412 0.840790 0.203094 0.778473 0.863831 0.205200 0.778503 0.886780 0.207428 0.778534 0.910095 0.209595 0.778564 0.934174 0.211823 0.778595 0.959961 0.214081 0.778625 0.042847 0.187317 0.773102 0.059052 0.188995 0.773132 0.076569 0.190643 0.773193 0.095703 0.192383 0.773285 0.116760 0.194153 0.773346 0.140137 0.195923 0.773407 0.166199 0.197723 0.773438 0.195221 0.199554 0.773529 0.227173 0.201477 0.773560 0.261841 0.203400 0.773590 0.298981 0.205322 0.773682 0.338409 0.207306 0.773743 0.379730 0.209320 0.773773 0.422577 0.211243 0.773804 0.466461 0.213348 0.773895 0.509888 0.215393 0.773926 0.550720 0.217499 0.773926 0.588837 0.219635 0.774048 0.624268 0.221710 0.774048 0.657043 0.223907 0.774109 0.687653 0.226074 0.774139 0.716370 0.228241 0.774200 0.743500 0.230499 0.774200 0.769287 0.232788 0.774200 0.794006 0.234985 0.774323 0.817871 0.237274 0.774323 0.841156 0.239563 0.774323 0.864136 0.241882 0.774384 0.887054 0.244202 0.774414 0.910278 0.246460 0.774414 0.934296 0.248871 0.774445 0.959961 0.251221 0.774475 0.044220 0.223480 0.768921 0.060425 0.225220 0.769012 0.078033 0.227142 0.769043 0.097351 0.229004 0.769073 0.118530 0.230896 0.769135 0.142029 0.232880 0.769165 0.168274 0.234863 0.769196 0.197449 0.236816 0.769257 0.229523 0.238861 0.769318 0.264282 0.240906 0.769379 0.301483 0.242981 0.769409 0.340912 0.245117 0.769409 0.382263 0.247162 0.769470 0.425079 0.249359 0.769501 0.468842 0.251556 0.769501 0.512085 0.253723 0.769592 0.552704 0.255951 0.769623 0.590576 0.258270 0.769623 0.625732 0.260437 0.769684 0.658325 0.262756 0.769684 0.688751 0.265106 0.769714 0.717316 0.267365 0.769714 0.744293 0.269684 0.769775 0.769958 0.272125 0.769775 0.794556 0.274384 0.769806 0.818359 0.276825 0.769836 0.841583 0.279144 0.769836 0.864441 0.281555 0.769836 0.887268 0.283997 0.769867 0.910431 0.286346 0.769897 0.934387 0.288818 0.769897 0.959961 0.291229 0.769897 0.045593 0.263214 0.764374 0.061890 0.265137 0.764404 0.079590 0.267120 0.764404 0.098999 0.269104 0.764465 0.120361 0.271149 0.764496 0.143951 0.273224 0.764496 0.170349 0.275330 0.764557 0.199677 0.277435 0.764587 0.231903 0.279602 0.764618 0.266754 0.281799 0.764648 0.304047 0.283966 0.764679 0.343536 0.286163 0.764709 0.384796 0.288361 0.764709 0.427673 0.290649 0.764801 0.471344 0.292969 0.764771 0.514282 0.295197 0.764832 0.554657 0.297546 0.764862 0.592285 0.299927 0.764862 0.627197 0.302185 0.764893 0.659607 0.304596 0.764862 0.689880 0.307007 0.764923 0.718231 0.309387 0.764923 0.745087 0.311768 0.764954 0.770691 0.314148 0.764954 0.795166 0.316559 0.764984 0.818878 0.319031 0.764954 0.841949 0.321411 0.764984 0.864777 0.323883 0.765015 0.887512 0.326385 0.765015 0.910583 0.328766 0.765015 0.934479 0.331238 0.764984 0.959961 0.333740 0.765045 0.046967 0.306213 0.759338 0.063385 0.308228 0.759369 0.081207 0.310333 0.759369 0.100647 0.312439 0.759399 0.122131 0.314514 0.759460 0.145966 0.316711 0.759491 0.172516 0.318909 0.759521 0.202026 0.321045 0.759552 0.234375 0.323303 0.759583 0.269226 0.325500 0.759613 0.306610 0.327789 0.759583 0.346161 0.330109 0.759674 0.387421 0.332397 0.759644 0.430206 0.334747 0.759644 0.473816 0.337097 0.759674 0.516479 0.339386 0.759735 0.556610 0.341797 0.759705 0.593994 0.344208 0.759705 0.628693 0.346558 0.759796 0.660889 0.348969 0.759766 0.690979 0.351410 0.759766 0.719208 0.353821 0.759796 0.745941 0.356262 0.759827 0.771362 0.358673 0.759766 0.795746 0.361145 0.759827 0.819336 0.363586 0.759857 0.842377 0.365997 0.759827 0.865082 0.368469 0.759857 0.887787 0.370972 0.759827 0.910736 0.373413 0.759888 0.934540 0.375854 0.759827 0.959961 0.378296 0.759888 0.048431 0.351990 0.753967 0.064911 0.354065 0.753998 0.082825 0.356232 0.754059 0.102417 0.358429 0.754089 0.124023 0.360596 0.754089 0.148010 0.362793 0.754120 0.174713 0.365021 0.754120 0.204407 0.367279 0.754150 0.236786 0.369537 0.754150 0.271820 0.371796 0.754242 0.309265 0.374146 0.754242 0.348816 0.376465 0.754242 0.390045 0.378754 0.754272 0.432800 0.381134 0.754272 0.476318 0.383545 0.754303 0.518707 0.385834 0.754303 0.558563 0.388275 0.754364 0.595703 0.390625 0.754364 0.630188 0.393036 0.754364 0.662170 0.395447 0.754395 0.692047 0.397827 0.754395 0.720184 0.400299 0.754364 0.746704 0.402740 0.754425 0.772034 0.405090 0.754456 0.796326 0.407532 0.754456 0.819855 0.409973 0.754456 0.842804 0.412354 0.754425 0.865387 0.414795 0.754486 0.887970 0.417267 0.754456 0.910919 0.419586 0.754486 0.934662 0.422058 0.754486 0.959961 0.424408 0.754486 0.049927 0.400085 0.748322 0.066498 0.402222 0.748352 0.084503 0.404419 0.748383 0.104248 0.406586 0.748413 0.125977 0.408783 0.748444 0.150085 0.411011 0.748474 0.177002 0.413269 0.748474 0.206787 0.415497 0.748566 0.239349 0.417755 0.748566 0.274445 0.420044 0.748566 0.311920 0.422333 0.748596 0.351471 0.424683 0.748627 0.392761 0.426971 0.748627 0.435394 0.429291 0.748627 0.478821 0.431641 0.748718 0.520966 0.433990 0.748718 0.560547 0.436371 0.748718 0.597412 0.438721 0.748749 0.631653 0.441071 0.748779 0.663422 0.443481 0.748779 0.693176 0.445770 0.748779 0.721069 0.448151 0.748871 0.747528 0.450531 0.748871 0.772766 0.452911 0.748840 0.796936 0.455261 0.748840 0.820312 0.457672 0.748901 0.843201 0.459991 0.748871 0.865723 0.462372 0.748932 0.888245 0.464722 0.748932 0.911072 0.466980 0.748962 0.934723 0.469391 0.748962 0.959961 0.471588 0.748962 0.051453 0.449982 0.742462 0.068085 0.452026 0.742493 0.086212 0.454193 0.742523 0.106079 0.456390 0.742584 0.127930 0.458527 0.742584 0.152252 0.460724 0.742645 0.179291 0.462952 0.742706 0.209259 0.465149 0.742676 0.241882 0.467407 0.742737 0.277130 0.469635 0.742737 0.314636 0.471832 0.742798 0.354187 0.474091 0.742798 0.395447 0.476349 0.742920 0.438049 0.478638 0.742889 0.481262 0.480896 0.742920 0.523193 0.483124 0.742981 0.562500 0.485382 0.743011 0.599091 0.487610 0.743042 0.633148 0.489960 0.743042 0.664734 0.492218 0.743134 0.694275 0.494476 0.743134 0.722046 0.496704 0.743164 0.748352 0.498993 0.743164 0.773407 0.501190 0.743225 0.797485 0.503448 0.743225 0.820801 0.505737 0.743317 0.843567 0.507843 0.743317 0.866028 0.510040 0.743347 0.888489 0.512207 0.743408 0.911224 0.514343 0.743408 0.934845 0.516479 0.743439 0.959961 0.518585 0.743439 0.052979 0.500549 0.736511 0.069733 0.502563 0.736542 0.087982 0.504639 0.736572 0.107910 0.506744 0.736664 0.129913 0.508789 0.736725 0.154388 0.510864 0.736755 0.181641 0.512909 0.736786 0.211731 0.514984 0.736847 0.244507 0.517059 0.736908 0.279816 0.519073 0.736938 0.317383 0.521210 0.737061 0.356903 0.523315 0.737091 0.398132 0.525330 0.737152 0.440735 0.527405 0.737183 0.483826 0.529449 0.737274 0.525421 0.531494 0.737335 0.564453 0.533600 0.737366 0.600800 0.535583 0.737488 0.634583 0.537628 0.737518 0.665985 0.539612 0.737579 0.695374 0.541595 0.737610 0.722992 0.543610 0.737701 0.749146 0.545654 0.737762 0.774078 0.547516 0.737854 0.798065 0.549591 0.737885 0.821289 0.551544 0.737946 0.843964 0.553406 0.738037 0.866333 0.555298 0.738098 0.888733 0.557190 0.738159 0.911377 0.559082 0.738190 0.934937 0.560974 0.738251 0.959961 0.562744 0.738373 0.054565 0.549316 0.730774 0.071411 0.551086 0.730927 0.089722 0.552948 0.730988 0.109833 0.554749 0.731049 0.131989 0.556549 0.731110 0.156616 0.558411 0.731201 0.183990 0.560181 0.731293 0.214233 0.562012 0.731354 0.247101 0.563904 0.731506 0.282501 0.565674 0.731567 0.320129 0.567505 0.731659 0.359680 0.569366 0.731750 0.400879 0.571106 0.731842 0.443359 0.572968 0.731903 0.486328 0.574738 0.731995 0.527618 0.576569 0.732147 0.566376 0.578308 0.732239 0.602539 0.580078 0.732300 0.636078 0.581909 0.732361 0.667236 0.583679 0.732513 0.696411 0.585419 0.732544 0.723938 0.587097 0.732697 0.749939 0.588867 0.732788 0.774780 0.590546 0.732880 0.798645 0.592285 0.732971 0.821747 0.593933 0.733063 0.844360 0.595612 0.733124 0.866638 0.597290 0.733215 0.888947 0.598907 0.733337 0.911560 0.600494 0.733459 0.934998 0.602142 0.733521 0.959961 0.603668 0.733643 0.056152 0.594299 0.725616 0.073090 0.595856 0.725677 0.091553 0.597473 0.725800 0.111755 0.599091 0.725922 0.134094 0.600647 0.726044 0.158844 0.602295 0.726135 0.186432 0.603821 0.726288 0.216766 0.605469 0.726410 0.249786 0.607025 0.726532 0.285217 0.608643 0.726654 0.322906 0.610229 0.726746 0.362427 0.611816 0.726868 0.403564 0.613342 0.726990 0.445984 0.614929 0.727173 0.488770 0.616486 0.727234 0.529816 0.618073 0.727356 0.568329 0.619629 0.727478 0.604156 0.621094 0.727631 0.637512 0.622620 0.727722 0.668488 0.624176 0.727875 0.697510 0.625671 0.727997 0.724792 0.627197 0.728088 0.750732 0.628662 0.728241 0.775421 0.630127 0.728333 0.799225 0.631592 0.728455 0.822235 0.633057 0.728577 0.844727 0.634430 0.728699 0.866974 0.635895 0.728882 0.889130 0.637268 0.728943 0.911743 0.638641 0.729065 0.935089 0.640015 0.729187 0.959961 0.641357 0.729248 0.057831 0.635712 0.720825 0.074860 0.637054 0.720978 0.093384 0.638489 0.721130 0.113708 0.639801 0.721252 0.136169 0.641235 0.721436 0.161163 0.642578 0.721588 0.188873 0.643921 0.721680 0.219330 0.645325 0.721832 0.252472 0.646729 0.722015 0.287933 0.648041 0.722168 0.325653 0.649445 0.722260 0.365204 0.650818 0.722473 0.406311 0.652100 0.722626 0.448639 0.653473 0.722778 0.491241 0.654785 0.722870 0.532013 0.656158 0.723053 0.570282 0.657471 0.723206 0.605835 0.658783 0.723358 0.638947 0.660065 0.723511 0.669708 0.661407 0.723633 0.698578 0.662659 0.723816 0.725739 0.663910 0.723938 0.751526 0.665222 0.724091 0.776093 0.666443 0.724243 0.799744 0.667694 0.724365 0.822693 0.668884 0.724548 0.845093 0.670105 0.724670 0.867279 0.671326 0.724823 0.889374 0.672485 0.724945 0.911865 0.673676 0.725067 0.935181 0.674805 0.725220 0.959961 0.675934 0.725403 0.059509 0.673584 0.716522 0.076599 0.674744 0.716705 0.095245 0.675934 0.716919 0.115723 0.677124 0.717072 0.138336 0.678314 0.717224 0.163422 0.679504 0.717407 0.191345 0.680634 0.717590 0.221954 0.681824 0.717743 0.255157 0.683044 0.717896 0.290710 0.684174 0.718140 0.328430 0.685364 0.718292 0.368011 0.686493 0.718445 0.408997 0.687653 0.718597 0.451263 0.688782 0.718811 0.493683 0.689941 0.718994 0.534210 0.691040 0.719177 0.572083 0.692230 0.719330 0.607513 0.693298 0.719452 0.640350 0.694427 0.719696 0.670959 0.695557 0.719818 0.699615 0.696625 0.719971 0.726654 0.697693 0.720184 0.752289 0.698761 0.720337 0.776733 0.699860 0.720520 0.800293 0.700897 0.720673 0.823120 0.701904 0.720856 0.845459 0.702942 0.720978 0.867523 0.703979 0.721130 0.889618 0.704956 0.721283 0.912048 0.705994 0.721497 0.935211 0.707001 0.721649 0.959961 0.707916 0.721771 0.061157 0.708374 0.712677 0.078430 0.709381 0.712891 0.097168 0.710419 0.713043 0.117737 0.711395 0.713226 0.140533 0.712463 0.713440 0.165741 0.713470 0.713623 0.193817 0.714447 0.713806 0.224579 0.715454 0.714050 0.257874 0.716461 0.714233 0.293427 0.717468 0.714417 0.331146 0.718506 0.714600 0.370697 0.719482 0.714813 0.411774 0.720398 0.715027 0.453888 0.721405 0.715210 0.496094 0.722382 0.715424 0.536285 0.723358 0.715546 0.574005 0.724365 0.715790 0.609131 0.725281 0.715942 0.641754 0.726257 0.716125 0.672119 0.727142 0.716309 0.700623 0.728088 0.716492 0.727539 0.729004 0.716736 0.753021 0.729919 0.716888 0.777405 0.730804 0.717072 0.800842 0.731720 0.717255 0.823547 0.732574 0.717407 0.845856 0.733459 0.717560 0.867828 0.734344 0.717834 0.889832 0.735138 0.717987 0.912140 0.735992 0.718140 0.935303 0.736847 0.718292 0.959961 0.737640 0.718475 0.062866 0.740601 0.709106 0.080170 0.741486 0.709320 0.099091 0.742371 0.709534 0.119781 0.743225 0.709778 0.142700 0.744141 0.709930 0.168121 0.744965 0.710205 0.196350 0.745819 0.710419 0.227173 0.746704 0.710632 0.260529 0.747559 0.710815 0.296204 0.748383 0.711060 0.333954 0.749237 0.711243 0.373444 0.750061 0.711487 0.414429 0.750916 0.711670 0.456451 0.751770 0.711853 0.498505 0.752594 0.712097 0.538422 0.753387 0.712311 0.575836 0.754242 0.712494 0.610687 0.755005 0.712708 0.643097 0.755829 0.712891 0.673340 0.756653 0.713135 0.701630 0.757416 0.713318 0.728394 0.758209 0.713501 0.753754 0.758972 0.713684 0.778015 0.759705 0.713898 0.801361 0.760498 0.714050 0.824005 0.761230 0.714294 0.846191 0.761963 0.714508 0.868103 0.762726 0.714661 0.890045 0.763397 0.714844 0.912292 0.764099 0.714996 0.935394 0.764801 0.715179 0.959961 0.765472 0.715332 0.064606 0.770721 0.705841 0.082001 0.771454 0.706085 0.100983 0.772217 0.706268 0.121826 0.772949 0.706573 0.144897 0.773651 0.706787 0.170502 0.774445 0.707001 0.198822 0.775146 0.707245 0.229797 0.775879 0.707458 0.263214 0.776611 0.707703 0.298981 0.777313 0.707916 0.336700 0.778046 0.708160 0.376190 0.778748 0.708344 0.417114 0.779480 0.708618 0.459015 0.780182 0.708832 0.500824 0.780884 0.709015 0.540466 0.781586 0.709259 0.577667 0.782257 0.709473 0.612274 0.782959 0.709717 0.644470 0.783630 0.709930 0.674438 0.784271 0.710083 0.702637 0.784973 0.710297 0.729218 0.785645 0.710510 0.754486 0.786285 0.710693 0.778625 0.786926 0.710968 0.801880 0.787567 0.711151 0.824432 0.788147 0.711334 0.846527 0.788788 0.711517 0.868378 0.789429 0.711700 0.890259 0.789978 0.711914 0.912415 0.790588 0.712067 0.935455 0.791138 0.712280 0.959961 0.791748 0.712463 0.066315 0.799011 0.702789 0.083801 0.799652 0.703094 0.102936 0.800323 0.703339 0.123932 0.800903 0.703552 0.147095 0.801544 0.703796 0.172882 0.802155 0.704041 0.201324 0.802795 0.704285 0.232422 0.803375 0.704529 0.265930 0.803986 0.704742 0.301697 0.804626 0.704987 0.339447 0.805237 0.705231 0.378876 0.805847 0.705475 0.419739 0.806396 0.705688 0.461548 0.807068 0.705902 0.503143 0.807617 0.706146 0.542542 0.808197 0.706390 0.579437 0.808807 0.706635 0.613831 0.809357 0.706818 0.645782 0.809937 0.707062 0.675629 0.810455 0.707275 0.703613 0.811035 0.707458 0.730042 0.811615 0.707764 0.755157 0.812134 0.707977 0.779236 0.812653 0.708130 0.802368 0.813232 0.708344 0.824860 0.813721 0.708557 0.846863 0.814240 0.708771 0.868622 0.814728 0.708954 0.890472 0.815247 0.709137 0.912567 0.815735 0.709351 0.935486 0.816193 0.709534 0.959961 0.816650 0.709717 0.068054 0.825867 0.699982 0.085693 0.826416 0.700226 0.104919 0.826965 0.700470 0.126007 0.827454 0.700714 0.149353 0.827972 0.700989 0.175232 0.828522 0.701263 0.203857 0.829041 0.701508 0.235046 0.829529 0.701752 0.268616 0.830048 0.701996 0.304413 0.830566 0.702240 0.342163 0.831085 0.702484 0.381561 0.831604 0.702728 0.422363 0.832092 0.702972 0.464081 0.832581 0.703247 0.505432 0.833038 0.703491 0.544525 0.833557 0.703674 0.581207 0.834045 0.703918 0.615326 0.834503 0.704132 0.647064 0.834991 0.704346 0.676666 0.835449 0.704620 0.704529 0.835907 0.704834 0.730896 0.836334 0.705078 0.755890 0.836823 0.705231 0.779816 0.837280 0.705505 0.802856 0.837708 0.705688 0.825226 0.838135 0.705902 0.847198 0.838562 0.706085 0.868866 0.838989 0.706329 0.890625 0.839386 0.706543 0.912689 0.839783 0.706726 0.935577 0.840149 0.706879 0.959961 0.840546 0.707092 0.069824 0.851562 0.697266 0.087524 0.852020 0.697540 0.106873 0.852448 0.697815 0.128113 0.852905 0.698059 0.151581 0.853333 0.698334 0.177612 0.853760 0.698578 0.206390 0.854187 0.698883 0.237640 0.854614 0.699127 0.271240 0.855042 0.699341 0.307068 0.855469 0.699615 0.344879 0.855896 0.699860 0.384277 0.856293 0.700165 0.424927 0.856689 0.700409 0.466553 0.857117 0.700623 0.507629 0.857513 0.700836 0.546448 0.857880 0.701111 0.582855 0.858276 0.701294 0.616760 0.858673 0.701599 0.648315 0.859070 0.701843 0.677795 0.859467 0.702057 0.705475 0.859833 0.702271 0.731659 0.860199 0.702484 0.756561 0.860535 0.702728 0.780365 0.860931 0.702942 0.803345 0.861298 0.703125 0.825653 0.861633 0.703369 0.847504 0.862000 0.703583 0.869110 0.862305 0.703766 0.890808 0.862640 0.703979 0.912781 0.862976 0.704163 0.935638 0.863281 0.704346 0.959961 0.863586 0.704559 0.071625 0.876434 0.694672 0.089386 0.876740 0.694977 0.108826 0.877106 0.695221 0.130188 0.877472 0.695496 0.153839 0.877808 0.695770 0.180023 0.878174 0.696045 0.208862 0.878510 0.696289 0.240265 0.878876 0.696564 0.273926 0.879211 0.696838 0.309784 0.879578 0.697113 0.347534 0.879883 0.697357 0.386871 0.880188 0.697601 0.427521 0.880554 0.697845 0.468903 0.880859 0.698090 0.509857 0.881226 0.698334 0.548370 0.881531 0.698608 0.584503 0.881836 0.698883 0.618225 0.882172 0.699097 0.649567 0.882477 0.699310 0.678833 0.882782 0.699554 0.706390 0.883087 0.699799 0.732422 0.883392 0.699982 0.757202 0.883667 0.700226 0.780945 0.883972 0.700470 0.803772 0.884247 0.700684 0.825989 0.884521 0.700867 0.847809 0.884796 0.701080 0.869385 0.885071 0.701263 0.890961 0.885345 0.701477 0.912933 0.885590 0.701660 0.935699 0.885803 0.701874 0.959961 0.886047 0.702057 0.073364 0.900665 0.692169 0.091248 0.900970 0.692413 0.110809 0.901215 0.692719 0.132294 0.901489 0.692993 0.156097 0.901794 0.693268 0.182373 0.902069 0.693542 0.211365 0.902344 0.693848 0.242828 0.902649 0.694092 0.276550 0.902863 0.694366 0.312439 0.903168 0.694611 0.350128 0.903442 0.694885 0.389435 0.903687 0.695129 0.430054 0.903961 0.695374 0.471313 0.904205 0.695679 0.511963 0.904480 0.695923 0.550293 0.904694 0.696198 0.586151 0.904968 0.696381 0.619598 0.905212 0.696625 0.650757 0.905457 0.696838 0.679871 0.905670 0.697083 0.707245 0.905884 0.697357 0.733154 0.906128 0.697601 0.757843 0.906342 0.697815 0.781464 0.906586 0.698029 0.804230 0.906799 0.698242 0.826416 0.907013 0.698425 0.848083 0.907196 0.698639 0.869598 0.907410 0.698822 0.891113 0.907623 0.699036 0.913055 0.907806 0.699219 0.935730 0.908020 0.699371 0.959961 0.908203 0.699585 0.075134 0.924744 0.689636 0.093140 0.924927 0.689972 0.112762 0.925110 0.690216 0.134369 0.925323 0.690491 0.158325 0.925568 0.690826 0.184753 0.925781 0.691071 0.213806 0.925964 0.691345 0.245392 0.926147 0.691620 0.279144 0.926361 0.691864 0.315033 0.926575 0.692139 0.352753 0.926758 0.692413 0.391968 0.926971 0.692719 0.432465 0.927124 0.692963 0.473602 0.927368 0.693207 0.514008 0.927521 0.693420 0.552063 0.927704 0.693695 0.587708 0.927917 0.693939 0.620941 0.928070 0.694183 0.651886 0.928253 0.694427 0.680817 0.928436 0.694672 0.708069 0.928589 0.694916 0.733917 0.928772 0.695129 0.758423 0.928955 0.695312 0.781921 0.929108 0.695557 0.804626 0.929291 0.695740 0.826721 0.929413 0.695953 0.848389 0.929565 0.696198 0.869812 0.929657 0.696381 0.891327 0.929840 0.696564 0.913147 0.929962 0.696747 0.935822 0.930115 0.696899 0.959961 0.930237 0.697083 0.076935 0.948883 0.687134 0.094971 0.949005 0.687408 0.114746 0.949158 0.687714 0.136444 0.949341 0.688019 0.160522 0.949493 0.688293 0.187103 0.949615 0.688568 0.216278 0.949768 0.688843 0.247894 0.949860 0.689117 0.281708 0.950012 0.689392 0.317566 0.950134 0.689667 0.355286 0.950287 0.689972 0.394501 0.950378 0.690216 0.434875 0.950531 0.690460 0.475891 0.950623 0.690704 0.516022 0.950745 0.690979 0.553802 0.950897 0.691193 0.589233 0.951019 0.691467 0.622284 0.951141 0.691711 0.653015 0.951233 0.691956 0.681793 0.951355 0.692169 0.708893 0.951508 0.692383 0.734589 0.951599 0.692627 0.759003 0.951721 0.692810 0.782471 0.951813 0.693024 0.805054 0.951935 0.693268 0.827057 0.951996 0.693451 0.848633 0.952118 0.693665 0.870026 0.952240 0.693817 0.891449 0.952332 0.694031 0.913269 0.952393 0.694214 0.935852 0.952515 0.694366 0.959961 0.952576 0.694550 0.078674 0.973694 0.684540 0.096832 0.973816 0.684814 0.116699 0.973877 0.685120 0.138580 0.973969 0.685425 0.162720 0.974030 0.685699 0.189392 0.974091 0.685944 0.218689 0.974182 0.686249 0.250336 0.974213 0.686554 0.284241 0.974304 0.686798 0.320129 0.974365 0.687103 0.357697 0.974426 0.687347 0.396912 0.974518 0.687592 0.437195 0.974579 0.687836 0.478088 0.974609 0.688110 0.517975 0.974701 0.688416 0.555511 0.974731 0.688660 0.590698 0.974854 0.688873 0.623505 0.974884 0.689117 0.654083 0.974976 0.689362 0.682709 0.975006 0.689545 0.709656 0.975067 0.689789 0.735199 0.975098 0.690002 0.759552 0.975189 0.690247 0.782928 0.975220 0.690430 0.805420 0.975281 0.690643 0.827362 0.975281 0.690826 0.848877 0.975342 0.691010 0.870239 0.975403 0.691223 0.891602 0.975433 0.691376 0.913391 0.975494 0.691559 0.935944 0.975494 0.691742 0.959961 0.975586 0.691895 0.080414 1.000000 0.681702 0.098663 1.000000 0.682007 0.118622 1.000000 0.682281 0.140594 1.000000 0.682587 0.164886 1.000000 0.682861 0.191711 1.000000 0.683197 0.221100 1.000000 0.683472 0.252808 1.000000 0.683746 0.286682 1.000000 0.684021 0.322540 1.000000 0.684265 0.360199 1.000000 0.684540 0.399231 1.000000 0.684814 0.439453 1.000000 0.685089 0.480255 1.000000 0.685333 0.519867 1.000000 0.685608 0.557159 1.000000 0.685852 0.592102 1.000000 0.686066 0.624725 1.000000 0.686310 0.655121 1.000000 0.686523 0.683594 1.000000 0.686768 0.710419 1.000000 0.687012 0.735840 1.000000 0.687225 0.760071 1.000000 0.687439 0.783356 1.000000 0.687622 0.805786 1.000000 0.687805 0.827667 1.000000 0.687988 0.849152 1.000000 0.688171 0.870392 1.000000 0.688385 0.891754 1.000000 0.688568 0.913483 1.000000 0.688721 0.935974 1.000000 0.688873 0.959961 1.000000 0.689087 0.034302 0.005310 0.819672 0.049927 0.006073 0.819733 0.066772 0.006836 0.819824 0.085114 0.007599 0.819946 0.105255 0.008392 0.820007 0.127594 0.009216 0.820099 0.152466 0.010101 0.820160 0.180267 0.010956 0.820221 0.211151 0.011841 0.820343 0.244965 0.012787 0.820404 0.281494 0.013702 0.820496 0.320435 0.014679 0.820587 0.361572 0.015656 0.820648 0.404572 0.016663 0.820770 0.448914 0.017700 0.820862 0.493622 0.018738 0.820923 0.536316 0.019806 0.821045 0.576202 0.020874 0.821136 0.613220 0.021973 0.821228 0.647491 0.023132 0.821350 0.679352 0.024261 0.821472 0.709198 0.025421 0.821533 0.737335 0.026581 0.821625 0.764008 0.027771 0.821716 0.789490 0.028961 0.821838 0.814148 0.030212 0.821899 0.838104 0.031433 0.822021 0.861633 0.032715 0.822113 0.885132 0.033997 0.822205 0.909027 0.035278 0.822327 0.933655 0.036591 0.822418 0.959961 0.037933 0.822510 0.035187 0.021881 0.817871 0.050873 0.022644 0.817993 0.067810 0.023468 0.818054 0.086273 0.024323 0.818115 0.106476 0.025177 0.818207 0.128967 0.026062 0.818268 0.153992 0.027008 0.818329 0.181915 0.027924 0.818420 0.212952 0.028870 0.818512 0.246857 0.029846 0.818573 0.283478 0.030884 0.818665 0.322479 0.031891 0.818787 0.363708 0.032898 0.818878 0.406647 0.033997 0.818939 0.451050 0.035095 0.819061 0.495605 0.036194 0.819122 0.538086 0.037323 0.819214 0.577698 0.038452 0.819305 0.614563 0.039642 0.819427 0.648651 0.040833 0.819519 0.680359 0.042023 0.819580 0.710083 0.043274 0.819702 0.738098 0.044525 0.819794 0.764648 0.045776 0.819885 0.790100 0.047058 0.819977 0.814606 0.048401 0.820068 0.838470 0.049683 0.820190 0.861969 0.051025 0.820282 0.885437 0.052368 0.820343 0.909149 0.053741 0.820435 0.933716 0.055145 0.820496 0.959961 0.056519 0.820587 0.036194 0.039398 0.815979 0.051941 0.040222 0.816071 0.068939 0.041138 0.816132 0.087463 0.042084 0.816193 0.107849 0.042999 0.816254 0.130432 0.043945 0.816345 0.155548 0.044983 0.816406 0.183685 0.045990 0.816467 0.214813 0.047028 0.816559 0.248840 0.048035 0.816681 0.285522 0.049103 0.816772 0.324646 0.050262 0.816833 0.365875 0.051361 0.816895 0.408813 0.052521 0.816986 0.453125 0.053711 0.817078 0.497559 0.054871 0.817169 0.539825 0.056122 0.817291 0.579285 0.057343 0.817383 0.615875 0.058563 0.817444 0.649841 0.059875 0.817535 0.681396 0.061157 0.817627 0.710938 0.062469 0.817719 0.738861 0.063843 0.817780 0.765320 0.065186 0.817902 0.790619 0.066559 0.817993 0.815033 0.067993 0.818054 0.838867 0.069336 0.818146 0.862274 0.070770 0.818237 0.885681 0.072266 0.818268 0.909302 0.073700 0.818359 0.933807 0.075195 0.818481 0.959961 0.076691 0.818573 0.037201 0.058228 0.813873 0.053040 0.059204 0.813934 0.070129 0.060150 0.814026 0.088745 0.061218 0.814087 0.109253 0.062195 0.814148 0.131958 0.063263 0.814240 0.157227 0.064362 0.814301 0.185486 0.065460 0.814392 0.216766 0.066589 0.814484 0.250916 0.067749 0.814575 0.287659 0.068909 0.814636 0.326874 0.070129 0.814728 0.368134 0.071350 0.814789 0.411041 0.072601 0.814880 0.455353 0.073883 0.815002 0.499603 0.075165 0.815063 0.541656 0.076477 0.815125 0.580841 0.077850 0.815186 0.617279 0.079193 0.815277 0.651031 0.080597 0.815338 0.682465 0.081970 0.815430 0.711853 0.083405 0.815521 0.739624 0.084900 0.815582 0.765930 0.086334 0.815674 0.791199 0.087830 0.815735 0.815552 0.089325 0.815826 0.839264 0.090851 0.815857 0.862610 0.092407 0.815948 0.885834 0.093964 0.816040 0.909454 0.095551 0.816101 0.933868 0.097168 0.816132 0.959961 0.098785 0.816223 0.038300 0.078857 0.811584 0.054199 0.079926 0.811646 0.071350 0.081024 0.811707 0.090118 0.082123 0.811768 0.110718 0.083252 0.811859 0.133545 0.084442 0.811951 0.158966 0.085602 0.812012 0.187408 0.086823 0.812042 0.218811 0.088074 0.812134 0.253052 0.089325 0.812225 0.289917 0.090637 0.812286 0.329163 0.091949 0.812347 0.370392 0.093292 0.812408 0.413422 0.094666 0.812500 0.457550 0.096100 0.812561 0.501678 0.097504 0.812622 0.543488 0.098907 0.812683 0.582458 0.100372 0.812775 0.618744 0.101898 0.812805 0.652283 0.103424 0.812927 0.683502 0.104950 0.812958 0.712799 0.106506 0.813049 0.740417 0.108093 0.813080 0.766632 0.109650 0.813141 0.791809 0.111298 0.813171 0.816010 0.112976 0.813232 0.839630 0.114624 0.813324 0.862915 0.116272 0.813416 0.886108 0.118011 0.813446 0.909637 0.119720 0.813477 0.933990 0.121490 0.813507 0.959961 0.123199 0.813568 0.039398 0.101654 0.809021 0.055389 0.102783 0.809082 0.072662 0.104004 0.809113 0.091492 0.105225 0.809204 0.112213 0.106506 0.809296 0.135162 0.107849 0.809326 0.160736 0.109131 0.809418 0.189331 0.110504 0.809448 0.220917 0.111877 0.809509 0.255249 0.113281 0.809570 0.292236 0.114716 0.809631 0.331482 0.116180 0.809723 0.372803 0.117645 0.809753 0.415710 0.119171 0.809814 0.459839 0.120697 0.809845 0.503784 0.122284 0.809906 0.545349 0.123871 0.809967 0.584137 0.125488 0.810059 0.620087 0.127106 0.810059 0.653534 0.128815 0.810120 0.684570 0.130463 0.810181 0.713745 0.132172 0.810211 0.741211 0.133942 0.810242 0.767303 0.135651 0.810303 0.792358 0.137451 0.810364 0.816528 0.139221 0.810394 0.840027 0.141052 0.810425 0.863251 0.142914 0.810486 0.886383 0.144714 0.810486 0.909821 0.146637 0.810516 0.934021 0.148560 0.810547 0.959961 0.150421 0.810577 0.040619 0.127045 0.806122 0.056641 0.128387 0.806213 0.074036 0.129730 0.806274 0.092926 0.131073 0.806305 0.113770 0.132507 0.806335 0.136932 0.133972 0.806396 0.162628 0.135406 0.806458 0.191406 0.136932 0.806488 0.223083 0.138489 0.806549 0.257538 0.140045 0.806610 0.294556 0.141632 0.806641 0.333923 0.143250 0.806641 0.375153 0.144897 0.806702 0.418091 0.146606 0.806732 0.462128 0.148285 0.806793 0.505951 0.149994 0.806854 0.547241 0.151794 0.806854 0.585785 0.153534 0.806915 0.621582 0.155365 0.806946 0.654785 0.157196 0.806976 0.685669 0.159027 0.806976 0.714630 0.160950 0.807007 0.742035 0.162872 0.807068 0.768005 0.164734 0.807098 0.792908 0.166748 0.807068 0.816986 0.168671 0.807098 0.840454 0.170624 0.807098 0.863525 0.172699 0.807129 0.886566 0.174713 0.807129 0.909943 0.176758 0.807159 0.934143 0.178864 0.807159 0.959961 0.180908 0.807159 0.041840 0.155609 0.802887 0.057953 0.157135 0.802917 0.075409 0.158630 0.802948 0.094421 0.160187 0.802979 0.115417 0.161804 0.803009 0.138672 0.163391 0.803040 0.164581 0.165039 0.803070 0.193481 0.166748 0.803101 0.225311 0.168457 0.803162 0.259888 0.170166 0.803162 0.296997 0.171936 0.803192 0.336304 0.173737 0.803223 0.377655 0.175568 0.803223 0.420532 0.177429 0.803284 0.464478 0.179321 0.803284 0.508087 0.181244 0.803314 0.549133 0.183167 0.803314 0.587494 0.185089 0.803314 0.623016 0.187103 0.803345 0.656036 0.189178 0.803314 0.686737 0.191162 0.803345 0.715576 0.193207 0.803406 0.742798 0.195374 0.803345 0.768707 0.197418 0.803375 0.793518 0.199554 0.803345 0.817474 0.201691 0.803345 0.840851 0.203827 0.803375 0.863861 0.206024 0.803345 0.886841 0.208221 0.803345 0.910126 0.210449 0.803314 0.934235 0.212708 0.803314 0.959961 0.214874 0.803284 0.043121 0.187897 0.799133 0.059296 0.189636 0.799133 0.076874 0.191284 0.799164 0.096008 0.192993 0.799194 0.117126 0.194763 0.799194 0.140533 0.196625 0.799225 0.166565 0.198395 0.799255 0.195648 0.200287 0.799255 0.227600 0.202179 0.799255 0.262268 0.204071 0.799255 0.299438 0.206085 0.799255 0.338867 0.208008 0.799316 0.380157 0.210022 0.799286 0.423096 0.212067 0.799255 0.466919 0.214081 0.799286 0.510284 0.216156 0.799286 0.551117 0.218292 0.799286 0.589172 0.220367 0.799255 0.624481 0.222504 0.799286 0.657318 0.224701 0.799286 0.687836 0.226898 0.799255 0.716553 0.229126 0.799255 0.743652 0.231323 0.799194 0.769379 0.233582 0.799194 0.794098 0.235840 0.799164 0.817963 0.238098 0.799164 0.841217 0.240417 0.799164 0.864227 0.242737 0.799133 0.887085 0.245026 0.799072 0.910278 0.247375 0.799042 0.934296 0.249756 0.799042 0.959961 0.252045 0.799011 0.044464 0.224091 0.794891 0.060730 0.225952 0.794891 0.078369 0.227814 0.794891 0.097626 0.229675 0.794952 0.118866 0.231628 0.794922 0.142395 0.233582 0.794922 0.168640 0.235565 0.794891 0.197906 0.237579 0.794891 0.229950 0.239563 0.794891 0.264709 0.241669 0.794861 0.301941 0.243774 0.794891 0.341370 0.245850 0.794891 0.382721 0.248016 0.794861 0.425568 0.250183 0.794861 0.469360 0.252319 0.794861 0.512451 0.254578 0.794830 0.553040 0.256805 0.794830 0.590881 0.259033 0.794830 0.625977 0.261292 0.794800 0.658600 0.263641 0.794739 0.688934 0.265900 0.794678 0.717468 0.268280 0.794678 0.744446 0.270538 0.794678 0.770081 0.272919 0.794617 0.794708 0.275299 0.794617 0.818420 0.277618 0.794586 0.841644 0.280060 0.794525 0.864502 0.282440 0.794495 0.887299 0.284821 0.794464 0.910492 0.287262 0.794434 0.934387 0.289673 0.794403 0.959961 0.292114 0.794342 0.045807 0.263885 0.790222 0.062164 0.265869 0.790222 0.079926 0.267883 0.790222 0.099274 0.269836 0.790222 0.120636 0.271942 0.790161 0.144379 0.273987 0.790161 0.170776 0.276093 0.790131 0.200104 0.278229 0.790131 0.232300 0.280365 0.790161 0.267212 0.282532 0.790131 0.304535 0.284760 0.790070 0.343964 0.286957 0.790070 0.385315 0.289215 0.790039 0.428162 0.291504 0.790009 0.471802 0.293762 0.790009 0.514679 0.296082 0.789978 0.554993 0.298431 0.789978 0.592590 0.300720 0.789917 0.627472 0.303070 0.789856 0.659790 0.305450 0.789825 0.690063 0.307861 0.789825 0.718414 0.310242 0.789795 0.745239 0.312622 0.789734 0.770813 0.315033 0.789703 0.795319 0.317505 0.789673 0.818939 0.319885 0.789642 0.842010 0.322357 0.789581 0.864838 0.324829 0.789581 0.887543 0.327209 0.789520 0.910614 0.329712 0.789459 0.934509 0.332123 0.789398 0.959961 0.334625 0.789337 0.047211 0.306915 0.785126 0.063660 0.308990 0.785126 0.081543 0.311096 0.785065 0.100983 0.313171 0.785065 0.122498 0.315338 0.785034 0.146362 0.317474 0.785034 0.172974 0.319641 0.785034 0.202484 0.321869 0.784973 0.234741 0.324097 0.784973 0.269745 0.326385 0.784943 0.307159 0.328705 0.784912 0.346558 0.330872 0.784882 0.387970 0.333252 0.784882 0.430695 0.335602 0.784851 0.474243 0.337921 0.784821 0.516937 0.340302 0.784760 0.556976 0.342682 0.784729 0.594330 0.345032 0.784698 0.628967 0.347473 0.784668 0.661102 0.349823 0.784607 0.691162 0.352295 0.784607 0.719391 0.354706 0.784546 0.746063 0.357147 0.784485 0.771515 0.359589 0.784485 0.795868 0.362061 0.784424 0.819458 0.364471 0.784424 0.842468 0.366913 0.784332 0.865143 0.369415 0.784302 0.887848 0.371857 0.784241 0.910767 0.374329 0.784180 0.934570 0.376678 0.784149 0.959961 0.379211 0.784119 0.048676 0.352692 0.779663 0.065247 0.354889 0.779633 0.083130 0.357056 0.779602 0.102753 0.359192 0.779572 0.124390 0.361420 0.779602 0.148407 0.363586 0.779572 0.175140 0.365814 0.779541 0.204834 0.368103 0.779510 0.237244 0.370331 0.779510 0.272369 0.372681 0.779449 0.309784 0.375000 0.779449 0.349274 0.377319 0.779419 0.390564 0.379639 0.779388 0.433289 0.382019 0.779327 0.476715 0.384308 0.779266 0.519135 0.386749 0.779266 0.558929 0.389069 0.779266 0.596008 0.391479 0.779205 0.630463 0.393921 0.779144 0.662415 0.396301 0.779144 0.692261 0.398712 0.779083 0.720337 0.401154 0.779053 0.746857 0.403564 0.778992 0.772156 0.406006 0.779022 0.796417 0.408478 0.778961 0.819916 0.410828 0.778900 0.842865 0.413269 0.778839 0.865479 0.415680 0.778809 0.888031 0.418091 0.778778 0.910950 0.420532 0.778748 0.934692 0.422882 0.778717 0.959961 0.425354 0.778656 0.050140 0.400848 0.773895 0.066772 0.403046 0.773895 0.084839 0.405212 0.773895 0.104553 0.407379 0.773865 0.126343 0.409607 0.773865 0.150452 0.411804 0.773804 0.177429 0.414032 0.773804 0.207275 0.416351 0.773773 0.239807 0.418579 0.773773 0.274963 0.420929 0.773773 0.312439 0.423218 0.773743 0.351929 0.425476 0.773682 0.393250 0.427856 0.773621 0.435852 0.430115 0.773590 0.479218 0.432495 0.773560 0.521393 0.434875 0.773560 0.560852 0.437225 0.773529 0.597687 0.439606 0.773499 0.631927 0.441956 0.773468 0.663696 0.444336 0.773438 0.693359 0.446655 0.773407 0.721283 0.449036 0.773407 0.747711 0.451385 0.773346 0.772888 0.453796 0.773315 0.797028 0.456177 0.773285 0.820404 0.458435 0.773254 0.843262 0.460907 0.773163 0.865784 0.463165 0.773193 0.888275 0.465515 0.773163 0.911072 0.467926 0.773132 0.934723 0.470154 0.773071 0.959961 0.472504 0.773041 0.051727 0.450714 0.768005 0.068390 0.452881 0.767975 0.086548 0.454926 0.767944 0.106415 0.457184 0.767914 0.128296 0.459381 0.767914 0.152588 0.461487 0.767914 0.179718 0.463745 0.767883 0.209717 0.466034 0.767883 0.242401 0.468201 0.767853 0.277618 0.470428 0.767853 0.315155 0.472748 0.767792 0.354645 0.474915 0.767792 0.395905 0.477173 0.767761 0.438538 0.479401 0.767761 0.481750 0.481720 0.767761 0.523621 0.483978 0.767731 0.562836 0.486206 0.767731 0.599457 0.488464 0.767700 0.633392 0.490814 0.767670 0.664948 0.493073 0.767670 0.694458 0.495270 0.767639 0.722229 0.497559 0.767609 0.748474 0.499786 0.767609 0.773560 0.502045 0.767578 0.797607 0.504242 0.767548 0.820892 0.506470 0.767548 0.843628 0.508667 0.767548 0.866089 0.510864 0.767548 0.888519 0.512970 0.767517 0.911255 0.515198 0.767487 0.934845 0.517273 0.767456 0.959961 0.519379 0.767487 0.053284 0.501282 0.761932 0.070068 0.503357 0.761932 0.088257 0.505402 0.761932 0.108246 0.507477 0.761932 0.130371 0.509521 0.761932 0.154785 0.511627 0.761963 0.182068 0.513641 0.761963 0.212189 0.515747 0.761963 0.244965 0.517822 0.761932 0.280304 0.519867 0.761932 0.317871 0.521912 0.761963 0.357422 0.524017 0.761963 0.398651 0.526123 0.761963 0.441162 0.528137 0.761963 0.484253 0.530212 0.761993 0.525757 0.532318 0.761963 0.564819 0.534271 0.761993 0.601135 0.536316 0.762054 0.634857 0.538361 0.762054 0.666199 0.540344 0.762024 0.695557 0.542358 0.762054 0.723145 0.544403 0.762085 0.749298 0.546295 0.762085 0.774231 0.548340 0.762115 0.798187 0.550201 0.762146 0.821350 0.552155 0.762177 0.843994 0.554108 0.762177 0.866394 0.555969 0.762207 0.888763 0.557892 0.762177 0.911407 0.559814 0.762207 0.934937 0.561584 0.762238 0.959961 0.563477 0.762238 0.054871 0.549927 0.756134 0.071716 0.551788 0.756165 0.090057 0.553528 0.756195 0.110138 0.555420 0.756256 0.132385 0.557220 0.756287 0.156982 0.559021 0.756348 0.184479 0.560913 0.756348 0.214752 0.562714 0.756348 0.247650 0.564514 0.756378 0.283020 0.566376 0.756470 0.320679 0.568176 0.756500 0.360199 0.569977 0.756531 0.401367 0.571777 0.756622 0.443848 0.573608 0.756622 0.486816 0.575409 0.756653 0.527985 0.577240 0.756714 0.566711 0.578979 0.756775 0.602814 0.580719 0.756775 0.636322 0.582550 0.756836 0.667480 0.584259 0.756866 0.696625 0.586029 0.756897 0.724091 0.587769 0.756989 0.750092 0.589478 0.757019 0.774933 0.591217 0.757080 0.798767 0.592896 0.757111 0.821838 0.594574 0.757141 0.844421 0.596222 0.757172 0.866669 0.597870 0.757263 0.888977 0.599487 0.757324 0.911621 0.601105 0.757355 0.934998 0.602692 0.757416 0.959961 0.604279 0.757446 0.056488 0.594879 0.750824 0.073425 0.596466 0.750885 0.091858 0.598022 0.750977 0.112152 0.599670 0.751038 0.134460 0.601288 0.751099 0.159241 0.602814 0.751129 0.186890 0.604431 0.751221 0.217285 0.606079 0.751312 0.250244 0.607605 0.751373 0.285736 0.609222 0.751434 0.323364 0.610779 0.751526 0.362976 0.612335 0.751556 0.404114 0.613953 0.751648 0.446472 0.615540 0.751740 0.489197 0.617096 0.751831 0.530212 0.618622 0.751862 0.568665 0.620148 0.751953 0.604492 0.621704 0.752014 0.637787 0.623199 0.752075 0.668701 0.624725 0.752167 0.697693 0.626251 0.752258 0.725006 0.627716 0.752319 0.750854 0.629211 0.752380 0.775574 0.630676 0.752472 0.799286 0.632111 0.752533 0.822327 0.633545 0.752625 0.844788 0.634979 0.752716 0.867004 0.636353 0.752777 0.889221 0.637787 0.752838 0.911743 0.639160 0.752930 0.935089 0.640503 0.752991 0.959961 0.641846 0.753021 0.058105 0.636169 0.746002 0.075165 0.637604 0.746094 0.093750 0.638916 0.746185 0.114075 0.640350 0.746246 0.136597 0.641754 0.746368 0.161560 0.643097 0.746490 0.189301 0.644440 0.746552 0.219849 0.645844 0.746674 0.252960 0.647186 0.746796 0.288483 0.648560 0.746857 0.326141 0.649933 0.746948 0.365723 0.651306 0.747101 0.406860 0.652618 0.747192 0.449127 0.653931 0.747284 0.491699 0.655334 0.747345 0.532410 0.656616 0.747437 0.570557 0.657898 0.747559 0.606201 0.659271 0.747681 0.639191 0.660553 0.747803 0.669952 0.661835 0.747894 0.698761 0.663147 0.747986 0.725891 0.664398 0.748047 0.751678 0.665649 0.748138 0.776215 0.666931 0.748291 0.799866 0.668152 0.748383 0.822784 0.669342 0.748444 0.845184 0.670563 0.748566 0.867310 0.671722 0.748657 0.889465 0.672943 0.748779 0.911896 0.674103 0.748840 0.935181 0.675262 0.748962 0.959961 0.676361 0.749023 0.059753 0.674011 0.741608 0.076935 0.675232 0.741699 0.095612 0.676361 0.741821 0.116119 0.677551 0.742004 0.138702 0.678741 0.742096 0.163818 0.679901 0.742218 0.191772 0.681122 0.742371 0.222412 0.682281 0.742462 0.255646 0.683441 0.742584 0.291229 0.684601 0.742737 0.328888 0.685760 0.742859 0.368469 0.686951 0.742981 0.409546 0.688049 0.743103 0.451721 0.689209 0.743225 0.494171 0.690369 0.743347 0.534546 0.691498 0.743469 0.572479 0.692566 0.743591 0.607758 0.693695 0.743744 0.640594 0.694855 0.743866 0.671143 0.695923 0.743958 0.699829 0.697052 0.744049 0.726807 0.698090 0.744232 0.752411 0.699158 0.744354 0.776855 0.700256 0.744446 0.800415 0.701263 0.744568 0.823242 0.702301 0.744690 0.845520 0.703369 0.744812 0.867584 0.704376 0.744904 0.889648 0.705353 0.745056 0.912048 0.706360 0.745148 0.935242 0.707306 0.745270 0.959961 0.708282 0.745392 0.061462 0.708771 0.737610 0.078705 0.709778 0.737793 0.097504 0.710754 0.737946 0.118164 0.711792 0.738098 0.140930 0.712799 0.738220 0.166168 0.713806 0.738373 0.194275 0.714844 0.738525 0.225037 0.715820 0.738678 0.258301 0.716827 0.738831 0.293976 0.717834 0.738983 0.331665 0.718842 0.739075 0.371246 0.719818 0.739227 0.412292 0.720825 0.739380 0.454346 0.721802 0.739532 0.496552 0.722748 0.739685 0.536682 0.723724 0.739838 0.574280 0.724670 0.739990 0.609406 0.725616 0.740112 0.641998 0.726562 0.740234 0.672363 0.727509 0.740417 0.700836 0.728424 0.740540 0.727661 0.729309 0.740662 0.753174 0.730255 0.740784 0.777496 0.731140 0.740936 0.800934 0.732025 0.741089 0.823669 0.732941 0.741180 0.845886 0.733795 0.741364 0.867889 0.734619 0.741455 0.889862 0.735504 0.741608 0.912201 0.736298 0.741699 0.935333 0.737122 0.741852 0.959961 0.737915 0.741974 0.063202 0.740936 0.734009 0.080505 0.741821 0.734192 0.099426 0.742706 0.734344 0.120178 0.743561 0.734497 0.143066 0.744385 0.734650 0.168579 0.745270 0.734863 0.196777 0.746155 0.735016 0.227631 0.747009 0.735168 0.261017 0.747864 0.735291 0.296722 0.748749 0.735474 0.334473 0.749542 0.735626 0.373962 0.750427 0.735809 0.414978 0.751221 0.735992 0.456940 0.752075 0.736145 0.498932 0.752899 0.736328 0.538788 0.753693 0.736450 0.576202 0.754517 0.736572 0.611023 0.755341 0.736755 0.643341 0.756104 0.736938 0.673523 0.756927 0.737091 0.701843 0.757721 0.737213 0.728516 0.758484 0.737366 0.753906 0.759247 0.737549 0.778137 0.760010 0.737640 0.801483 0.760742 0.737823 0.824097 0.761505 0.737976 0.846222 0.762207 0.738098 0.868134 0.762939 0.738251 0.890076 0.763641 0.738403 0.912323 0.764374 0.738525 0.935394 0.765076 0.738678 0.959961 0.765747 0.738800 0.064911 0.770996 0.730682 0.082336 0.771729 0.730865 0.101349 0.772491 0.730988 0.122253 0.773224 0.731201 0.145264 0.773926 0.731384 0.170898 0.774719 0.731567 0.199341 0.775421 0.731720 0.230255 0.776093 0.731903 0.263733 0.776886 0.732086 0.299469 0.777618 0.732208 0.337189 0.778320 0.732422 0.376678 0.779053 0.732605 0.417633 0.779755 0.732788 0.459503 0.780426 0.732971 0.501282 0.781158 0.733093 0.540863 0.781830 0.733337 0.578003 0.782532 0.733521 0.612579 0.783203 0.733673 0.644714 0.783844 0.733826 0.674683 0.784546 0.733978 0.702789 0.785217 0.734161 0.729370 0.785858 0.734283 0.754639 0.786499 0.734497 0.778748 0.787170 0.734650 0.801971 0.787750 0.734772 0.824524 0.788391 0.734955 0.846588 0.789001 0.735107 0.868408 0.789642 0.735229 0.890259 0.790222 0.735413 0.912415 0.790771 0.735535 0.935455 0.791321 0.735687 0.959961 0.791962 0.735809 0.066650 0.799255 0.727509 0.084198 0.799896 0.727753 0.103302 0.800507 0.727936 0.124298 0.801147 0.728088 0.147491 0.801758 0.728302 0.173279 0.802399 0.728485 0.201782 0.803040 0.728668 0.232941 0.803619 0.728851 0.266418 0.804230 0.729065 0.302185 0.804840 0.729279 0.339905 0.805450 0.729462 0.379395 0.806061 0.729614 0.420227 0.806610 0.729797 0.462067 0.807251 0.729980 0.503601 0.807831 0.730194 0.542938 0.808411 0.730377 0.579773 0.809021 0.730530 0.614105 0.809540 0.730743 0.645996 0.810150 0.730896 0.675781 0.810669 0.731079 0.703796 0.811249 0.731262 0.730225 0.811798 0.731445 0.755310 0.812347 0.731598 0.779358 0.812836 0.731781 0.802460 0.813416 0.731903 0.824921 0.813904 0.732086 0.846924 0.814392 0.732239 0.868713 0.814911 0.732422 0.890472 0.815460 0.732544 0.912598 0.815887 0.732727 0.935516 0.816376 0.732880 0.959961 0.816833 0.733032 0.068390 0.826080 0.724609 0.085999 0.826599 0.724792 0.105255 0.827118 0.724976 0.126404 0.827637 0.725189 0.149750 0.828186 0.725403 0.175720 0.828735 0.725586 0.204346 0.829193 0.725830 0.235535 0.829712 0.726044 0.269135 0.830231 0.726257 0.304932 0.830750 0.726410 0.342682 0.831268 0.726593 0.382080 0.831787 0.726807 0.422852 0.832245 0.727020 0.464569 0.832733 0.727234 0.505890 0.833221 0.727386 0.544830 0.833740 0.727570 0.581482 0.834229 0.727783 0.615631 0.834656 0.727936 0.647278 0.835175 0.728119 0.676941 0.835602 0.728363 0.704773 0.836090 0.728516 0.731018 0.836517 0.728668 0.756012 0.836975 0.728851 0.779907 0.837402 0.729004 0.802948 0.837860 0.729187 0.825348 0.838287 0.729370 0.847260 0.838684 0.729523 0.868927 0.839111 0.729706 0.890656 0.839508 0.729858 0.912689 0.839905 0.729980 0.935577 0.840302 0.730164 0.959961 0.840668 0.730316 0.070190 0.851746 0.721771 0.087891 0.852173 0.721985 0.107239 0.852570 0.722198 0.128479 0.853058 0.722412 0.152008 0.853455 0.722656 0.178101 0.853882 0.722870 0.206848 0.854340 0.723114 0.238129 0.854736 0.723297 0.271759 0.855164 0.723480 0.307617 0.855621 0.723694 0.345337 0.855988 0.723938 0.384766 0.856445 0.724121 0.425476 0.856842 0.724304 0.467010 0.857239 0.724518 0.508087 0.857666 0.724731 0.546844 0.858032 0.724884 0.583191 0.858429 0.725128 0.617065 0.858856 0.725311 0.648560 0.859192 0.725494 0.678009 0.859589 0.725677 0.705658 0.859985 0.725861 0.731781 0.860352 0.726013 0.756653 0.860718 0.726227 0.780487 0.861053 0.726379 0.803436 0.861420 0.726562 0.825684 0.861786 0.726746 0.847565 0.862122 0.726898 0.869202 0.862427 0.727081 0.890839 0.862793 0.727234 0.912811 0.863068 0.727417 0.935638 0.863434 0.727539 0.959961 0.863678 0.727692 0.071930 0.876556 0.719086 0.089722 0.876892 0.719330 0.109192 0.877258 0.719543 0.130615 0.877594 0.719788 0.154205 0.877960 0.720001 0.180450 0.878296 0.720245 0.209381 0.878632 0.720459 0.240723 0.878998 0.720673 0.274445 0.879303 0.720886 0.310242 0.879669 0.721100 0.347992 0.880005 0.721313 0.387421 0.880341 0.721497 0.427979 0.880676 0.721710 0.469360 0.881012 0.721893 0.510223 0.881317 0.722137 0.548737 0.881653 0.722351 0.584839 0.881958 0.722534 0.618469 0.882263 0.722717 0.649780 0.882599 0.722900 0.679016 0.882904 0.723083 0.706512 0.883209 0.723297 0.732574 0.883484 0.723480 0.757294 0.883759 0.723663 0.781036 0.884064 0.723816 0.803864 0.884338 0.723999 0.826080 0.884644 0.724182 0.847870 0.884888 0.724335 0.869446 0.885132 0.724548 0.890991 0.885437 0.724701 0.912933 0.885651 0.724854 0.935699 0.885925 0.725037 0.959961 0.886139 0.725159 0.073730 0.900787 0.716492 0.091614 0.901062 0.716736 0.111176 0.901337 0.716980 0.132721 0.901611 0.717224 0.156464 0.901917 0.717377 0.182831 0.902161 0.717621 0.211823 0.902435 0.717865 0.243286 0.902740 0.718109 0.277100 0.902985 0.718323 0.312866 0.903259 0.718536 0.350616 0.903534 0.718750 0.389893 0.903778 0.718933 0.430511 0.904053 0.719147 0.471741 0.904297 0.719360 0.512390 0.904541 0.719604 0.550598 0.904785 0.719788 0.586456 0.905060 0.719971 0.619904 0.905273 0.720184 0.650940 0.905518 0.720398 0.680054 0.905762 0.720581 0.707397 0.905975 0.720764 0.733276 0.906219 0.720947 0.757965 0.906433 0.721130 0.781525 0.906677 0.721313 0.804321 0.906860 0.721466 0.826447 0.907074 0.721680 0.848145 0.907288 0.721832 0.869629 0.907471 0.722015 0.891174 0.907684 0.722168 0.913055 0.907898 0.722321 0.935791 0.908081 0.722473 0.959961 0.908234 0.722626 0.075500 0.924805 0.713898 0.093445 0.924988 0.714142 0.113129 0.925201 0.714355 0.134796 0.925385 0.714630 0.158691 0.925629 0.714874 0.185211 0.925842 0.715088 0.214264 0.926025 0.715332 0.245819 0.926208 0.715515 0.279663 0.926422 0.715759 0.315491 0.926666 0.715942 0.353180 0.926849 0.716187 0.392456 0.927032 0.716431 0.432922 0.927216 0.716644 0.474091 0.927399 0.716858 0.514404 0.927612 0.717041 0.552368 0.927795 0.717224 0.587982 0.927979 0.717499 0.621216 0.928101 0.717651 0.652100 0.928284 0.717865 0.681000 0.928497 0.718048 0.708221 0.928619 0.718262 0.734009 0.928833 0.718445 0.758545 0.928986 0.718597 0.782013 0.929138 0.718781 0.804749 0.929321 0.718964 0.826782 0.929474 0.719147 0.848419 0.929596 0.719330 0.869843 0.929749 0.719482 0.891357 0.929901 0.719604 0.913147 0.930054 0.719788 0.935822 0.930176 0.719910 0.959961 0.930328 0.720062 0.077209 0.948944 0.711273 0.095337 0.949066 0.711517 0.115143 0.949188 0.711761 0.136902 0.949371 0.712006 0.160889 0.949554 0.712250 0.187592 0.949646 0.712463 0.216705 0.949799 0.712708 0.248383 0.949921 0.712921 0.282166 0.950073 0.713165 0.318054 0.950165 0.713409 0.355743 0.950317 0.713623 0.394897 0.950439 0.713867 0.435303 0.950592 0.714050 0.476318 0.950684 0.714264 0.516418 0.950836 0.714508 0.554138 0.950928 0.714691 0.589478 0.951080 0.714874 0.622498 0.951172 0.715088 0.653168 0.951324 0.715271 0.681976 0.951447 0.715485 0.709045 0.951538 0.715668 0.734680 0.951660 0.715851 0.759125 0.951752 0.716034 0.782532 0.951843 0.716248 0.805145 0.951965 0.716400 0.827118 0.952057 0.716583 0.848694 0.952148 0.716736 0.870056 0.952271 0.716888 0.891510 0.952332 0.717041 0.913269 0.952423 0.717163 0.935883 0.952545 0.717346 0.959961 0.952606 0.717499 0.079010 0.973785 0.708588 0.097168 0.973846 0.708832 0.117035 0.973938 0.709076 0.138916 0.973969 0.709320 0.163086 0.974091 0.709534 0.189850 0.974121 0.709747 0.219116 0.974182 0.710022 0.250793 0.974243 0.710297 0.284698 0.974335 0.710510 0.320557 0.974396 0.710724 0.358185 0.974457 0.710968 0.397308 0.974518 0.711151 0.437653 0.974579 0.711365 0.478485 0.974670 0.711609 0.518311 0.974731 0.711823 0.555786 0.974762 0.712006 0.590942 0.974854 0.712219 0.623749 0.974884 0.712433 0.654266 0.974976 0.712646 0.682892 0.975037 0.712799 0.709778 0.975067 0.713013 0.735321 0.975128 0.713226 0.759644 0.975189 0.713409 0.783020 0.975220 0.713531 0.805511 0.975281 0.713715 0.827454 0.975311 0.713898 0.848938 0.975403 0.714050 0.870270 0.975403 0.714203 0.891632 0.975464 0.714355 0.913391 0.975494 0.714478 0.935944 0.975555 0.714661 0.959961 0.975586 0.714783 0.080780 1.000000 0.705688 0.099030 1.000000 0.705933 0.118988 1.000000 0.706177 0.140961 1.000000 0.706390 0.165253 1.000000 0.706665 0.192139 1.000000 0.706909 0.221497 1.000000 0.707153 0.253235 1.000000 0.707397 0.287170 1.000000 0.707642 0.322998 1.000000 0.707855 0.360565 1.000000 0.708069 0.399689 1.000000 0.708313 0.439911 1.000000 0.708527 0.480652 1.000000 0.708740 0.520172 1.000000 0.708954 0.557404 1.000000 0.709167 0.592377 1.000000 0.709351 0.624939 1.000000 0.709564 0.655273 1.000000 0.709778 0.683746 1.000000 0.709991 0.710541 1.000000 0.710144 0.735962 1.000000 0.710327 0.760193 1.000000 0.710510 0.783417 1.000000 0.710663 0.805908 1.000000 0.710846 0.827728 1.000000 0.710999 0.849182 1.000000 0.711182 0.870422 1.000000 0.711304 0.891754 1.000000 0.711487 0.913483 1.000000 0.711609 0.935974 1.000000 0.711731 0.959961 1.000000 0.711884 0.034424 0.005585 0.845459 0.050079 0.006348 0.845459 0.066956 0.007111 0.845520 0.085297 0.007874 0.845581 0.105499 0.008728 0.845642 0.127808 0.009552 0.845673 0.152679 0.010376 0.845734 0.180542 0.011292 0.845764 0.211456 0.012207 0.845825 0.245300 0.013123 0.845856 0.281830 0.014069 0.845947 0.320831 0.015045 0.846008 0.362000 0.016022 0.846069 0.404999 0.017059 0.846100 0.449310 0.018066 0.846161 0.494049 0.019135 0.846222 0.536652 0.020203 0.846283 0.576447 0.021301 0.846283 0.613464 0.022400 0.846405 0.647705 0.023499 0.846436 0.679565 0.024658 0.846497 0.709351 0.025848 0.846527 0.737488 0.027008 0.846588 0.764160 0.028198 0.846649 0.789612 0.029449 0.846741 0.814240 0.030640 0.846771 0.838135 0.031921 0.846802 0.861755 0.033234 0.846893 0.885193 0.034454 0.846924 0.909058 0.035767 0.846954 0.933655 0.037048 0.847046 0.959961 0.038391 0.847107 0.035400 0.022125 0.843567 0.051086 0.022949 0.843628 0.068024 0.023773 0.843689 0.086487 0.024597 0.843719 0.106781 0.025513 0.843750 0.129181 0.026398 0.843811 0.154236 0.027344 0.843872 0.182251 0.028259 0.843903 0.213287 0.029205 0.843994 0.247192 0.030212 0.844025 0.283844 0.031219 0.844086 0.322937 0.032257 0.844116 0.364105 0.033325 0.844177 0.407074 0.034424 0.844208 0.451385 0.035492 0.844269 0.495941 0.036621 0.844299 0.538422 0.037720 0.844360 0.578003 0.038910 0.844421 0.614807 0.040070 0.844482 0.648865 0.041260 0.844513 0.680603 0.042480 0.844574 0.710236 0.043732 0.844635 0.738220 0.044983 0.844727 0.764801 0.046265 0.844727 0.790161 0.047546 0.844788 0.814697 0.048828 0.844818 0.838562 0.050201 0.844879 0.862030 0.051514 0.844910 0.885468 0.052856 0.845001 0.909149 0.054260 0.845032 0.933716 0.055634 0.845062 0.959961 0.057068 0.845093 0.036316 0.039703 0.841614 0.052185 0.040588 0.841644 0.069153 0.041473 0.841675 0.087677 0.042419 0.841705 0.108093 0.043365 0.841736 0.130646 0.044281 0.841827 0.155853 0.045319 0.841888 0.183990 0.046356 0.841949 0.215149 0.047363 0.841949 0.249237 0.048462 0.842010 0.285919 0.049561 0.842041 0.325043 0.050629 0.842133 0.366241 0.051788 0.842163 0.409271 0.052917 0.842163 0.453522 0.054138 0.842255 0.497955 0.055328 0.842316 0.540161 0.056519 0.842316 0.579559 0.057800 0.842377 0.616211 0.059052 0.842407 0.650085 0.060303 0.842438 0.681580 0.061615 0.842529 0.711121 0.062988 0.842560 0.738953 0.064331 0.842590 0.765442 0.065674 0.842621 0.790741 0.067078 0.842682 0.815125 0.068451 0.842712 0.838928 0.069916 0.842743 0.862335 0.071289 0.842834 0.885681 0.072754 0.842804 0.909363 0.074280 0.842865 0.933807 0.075745 0.842957 0.959961 0.077240 0.842926 0.037415 0.058594 0.839478 0.053253 0.059570 0.839478 0.070343 0.060516 0.839508 0.088989 0.061554 0.839569 0.109497 0.062622 0.839600 0.132202 0.063660 0.839691 0.157562 0.064758 0.839691 0.185883 0.065887 0.839752 0.217133 0.066986 0.839783 0.251343 0.068176 0.839813 0.288147 0.069366 0.839874 0.327301 0.070587 0.839874 0.368561 0.071808 0.839935 0.411499 0.073090 0.839966 0.455688 0.074341 0.840027 0.500000 0.075684 0.840057 0.541962 0.076996 0.840057 0.581146 0.078339 0.840118 0.617584 0.079742 0.840179 0.651245 0.081085 0.840210 0.682648 0.082520 0.840240 0.712036 0.083954 0.840271 0.739777 0.085388 0.840302 0.766113 0.086884 0.840302 0.791321 0.088379 0.840363 0.815613 0.089874 0.840393 0.839325 0.091461 0.840393 0.862640 0.092957 0.840424 0.885895 0.094543 0.840485 0.909485 0.096161 0.840485 0.933899 0.097748 0.840515 0.959961 0.099365 0.840515 0.038452 0.079254 0.837097 0.054443 0.080322 0.837128 0.071625 0.081390 0.837189 0.090332 0.082550 0.837250 0.110962 0.083679 0.837250 0.133820 0.084839 0.837280 0.159271 0.086060 0.837311 0.187744 0.087311 0.837311 0.219177 0.088531 0.837372 0.253479 0.089813 0.837372 0.290314 0.091125 0.837402 0.329590 0.092438 0.837463 0.370850 0.093811 0.837494 0.413788 0.095184 0.837524 0.457916 0.096588 0.837524 0.502106 0.098022 0.837555 0.543823 0.099457 0.837616 0.582764 0.100952 0.837616 0.618958 0.102448 0.837616 0.652496 0.103943 0.837646 0.683716 0.105499 0.837677 0.712982 0.107086 0.837646 0.740540 0.108673 0.837708 0.766785 0.110291 0.837738 0.791870 0.111877 0.837738 0.816101 0.113556 0.837738 0.839722 0.115234 0.837799 0.862976 0.116913 0.837769 0.886169 0.118622 0.837799 0.909668 0.120392 0.837799 0.933990 0.122101 0.837769 0.959961 0.123901 0.837799 0.039642 0.102051 0.834503 0.055664 0.103271 0.834534 0.072876 0.104431 0.834564 0.091766 0.105682 0.834564 0.112488 0.106995 0.834595 0.135498 0.108307 0.834595 0.161133 0.109650 0.834595 0.189758 0.111023 0.834595 0.221313 0.112396 0.834656 0.255707 0.113800 0.834686 0.292603 0.115234 0.834717 0.331879 0.116699 0.834717 0.373230 0.118225 0.834686 0.416138 0.119690 0.834717 0.460297 0.121277 0.834747 0.504211 0.122864 0.834778 0.545654 0.124451 0.834747 0.584442 0.126068 0.834747 0.620392 0.127777 0.834778 0.653748 0.129364 0.834747 0.684784 0.131073 0.834808 0.713867 0.132782 0.834808 0.741364 0.134552 0.834747 0.767426 0.136322 0.834778 0.792450 0.138062 0.834808 0.816589 0.139893 0.834808 0.840118 0.141754 0.834778 0.863281 0.143555 0.834778 0.886414 0.145447 0.834747 0.909851 0.147339 0.834717 0.934082 0.149200 0.834717 0.959961 0.151154 0.834717 0.040802 0.127502 0.831543 0.056885 0.128876 0.831543 0.074249 0.130249 0.831543 0.093201 0.131653 0.831573 0.114075 0.133057 0.831573 0.137177 0.134491 0.831573 0.162994 0.135986 0.831573 0.191772 0.137512 0.831604 0.223511 0.139038 0.831573 0.257996 0.140625 0.831604 0.295013 0.142212 0.831573 0.334351 0.143890 0.831573 0.375671 0.145538 0.831604 0.418579 0.147156 0.831604 0.462616 0.148895 0.831573 0.506317 0.150635 0.831573 0.547577 0.152435 0.831543 0.586090 0.154205 0.831543 0.621857 0.156036 0.831543 0.654999 0.157837 0.831543 0.685883 0.159729 0.831482 0.714813 0.161621 0.831482 0.742157 0.163544 0.831512 0.768127 0.165466 0.831482 0.793030 0.167389 0.831451 0.817047 0.169403 0.831421 0.840515 0.171448 0.831360 0.863586 0.173431 0.831329 0.886658 0.175476 0.831299 0.909943 0.177582 0.831268 0.934143 0.179596 0.831238 0.959961 0.181732 0.831177 0.042084 0.156158 0.828156 0.058197 0.157654 0.828186 0.075684 0.159210 0.828156 0.094757 0.160767 0.828156 0.115723 0.162384 0.828156 0.138977 0.163971 0.828125 0.164978 0.165680 0.828125 0.193878 0.167328 0.828125 0.225708 0.169067 0.828064 0.260315 0.170837 0.828064 0.297424 0.172577 0.828094 0.336823 0.174377 0.828064 0.378113 0.176270 0.828003 0.420990 0.178070 0.828003 0.464966 0.180023 0.827972 0.508514 0.181946 0.827942 0.549530 0.183868 0.827911 0.587799 0.185883 0.827881 0.623322 0.187805 0.827850 0.656250 0.189880 0.827820 0.686981 0.191925 0.827759 0.715790 0.193970 0.827759 0.742981 0.196106 0.827698 0.768829 0.198181 0.827667 0.793610 0.200287 0.827637 0.817566 0.202484 0.827545 0.840942 0.204651 0.827515 0.863922 0.206818 0.827454 0.886902 0.209045 0.827362 0.910156 0.211182 0.827332 0.934235 0.213440 0.827301 0.959961 0.215759 0.827240 0.043396 0.188538 0.824371 0.059601 0.190247 0.824310 0.077118 0.191925 0.824310 0.096283 0.193665 0.824280 0.117432 0.195465 0.824249 0.140839 0.197235 0.824249 0.166962 0.199127 0.824188 0.196045 0.200928 0.824158 0.228027 0.202850 0.824158 0.262726 0.204834 0.824097 0.299927 0.206726 0.824036 0.339294 0.208740 0.824005 0.380646 0.210785 0.823975 0.423462 0.212769 0.823914 0.467346 0.214844 0.823914 0.510712 0.216949 0.823853 0.551422 0.219055 0.823792 0.589478 0.221161 0.823730 0.624786 0.223328 0.823700 0.657532 0.225525 0.823669 0.688080 0.227692 0.823578 0.716705 0.229889 0.823547 0.743774 0.232178 0.823486 0.769531 0.234436 0.823395 0.794220 0.236664 0.823334 0.818054 0.238953 0.823273 0.841339 0.241272 0.823181 0.864258 0.243561 0.823120 0.887146 0.245880 0.823090 0.910339 0.248199 0.822968 0.934326 0.250580 0.822937 0.959961 0.252960 0.822845 0.044678 0.224792 0.819977 0.061035 0.226624 0.819977 0.078644 0.228455 0.819977 0.097931 0.230408 0.819916 0.119171 0.232330 0.819855 0.142761 0.234283 0.819824 0.169037 0.236298 0.819794 0.198273 0.238281 0.819733 0.230377 0.240356 0.819672 0.265228 0.242432 0.819611 0.302429 0.244507 0.819580 0.341888 0.246643 0.819519 0.383209 0.248840 0.819458 0.426025 0.250977 0.819427 0.469788 0.253174 0.819336 0.512878 0.255341 0.819275 0.553436 0.257568 0.819244 0.591156 0.259888 0.819183 0.626251 0.262115 0.819092 0.658813 0.264435 0.819061 0.689148 0.266785 0.819000 0.717651 0.269043 0.818878 0.744568 0.271454 0.818817 0.770233 0.273804 0.818756 0.794800 0.276123 0.818665 0.818542 0.278534 0.818604 0.841736 0.280853 0.818512 0.864532 0.283295 0.818390 0.887329 0.285736 0.818359 0.910492 0.288116 0.818298 0.934387 0.290558 0.818146 0.959961 0.293030 0.818085 0.046082 0.264587 0.815277 0.062500 0.266602 0.815186 0.080170 0.268585 0.815155 0.099609 0.270599 0.815094 0.120972 0.272705 0.815063 0.144684 0.274750 0.815002 0.171173 0.276886 0.814941 0.200562 0.279022 0.814850 0.232819 0.281158 0.814789 0.267700 0.283386 0.814758 0.304993 0.285553 0.814697 0.344513 0.287811 0.814636 0.385834 0.290100 0.814514 0.428589 0.292297 0.814484 0.472260 0.294647 0.814392 0.515076 0.296936 0.814362 0.555359 0.299286 0.814270 0.592896 0.301636 0.814209 0.627716 0.303955 0.814117 0.660095 0.306335 0.814026 0.690277 0.308746 0.813965 0.718597 0.311096 0.813904 0.745422 0.313538 0.813812 0.770905 0.316010 0.813690 0.795410 0.318359 0.813629 0.819061 0.320831 0.813538 0.842133 0.323212 0.813446 0.864899 0.325653 0.813385 0.887604 0.328186 0.813263 0.910645 0.330566 0.813202 0.934509 0.333069 0.813110 0.959961 0.335541 0.813019 0.047516 0.307709 0.810059 0.063934 0.309723 0.810028 0.081787 0.311829 0.809998 0.101349 0.313965 0.809906 0.122833 0.316101 0.809845 0.146698 0.318298 0.809753 0.173340 0.320526 0.809692 0.202881 0.322693 0.809631 0.235260 0.324951 0.809570 0.270264 0.327209 0.809479 0.307617 0.329468 0.809418 0.347168 0.331787 0.809326 0.388367 0.334076 0.809265 0.431183 0.336426 0.809235 0.474701 0.338806 0.809143 0.517334 0.341125 0.809052 0.557312 0.343536 0.808990 0.594604 0.345978 0.808899 0.629211 0.348328 0.808838 0.661346 0.350739 0.808716 0.691376 0.353180 0.808655 0.719574 0.355591 0.808563 0.746216 0.358032 0.808472 0.771606 0.360504 0.808380 0.795959 0.362946 0.808289 0.819550 0.365387 0.808228 0.842529 0.367798 0.808136 0.865204 0.370270 0.808044 0.887878 0.372772 0.807953 0.910767 0.375183 0.807861 0.934570 0.377625 0.807770 0.959961 0.380066 0.807648 0.048950 0.353546 0.804565 0.065491 0.355621 0.804474 0.083435 0.357849 0.804413 0.103088 0.359985 0.804352 0.124725 0.362183 0.804291 0.148804 0.364410 0.804199 0.175568 0.366699 0.804138 0.205231 0.368927 0.804077 0.237762 0.371216 0.803986 0.272827 0.373566 0.803894 0.310272 0.375793 0.803864 0.349792 0.378174 0.803802 0.391083 0.380524 0.803680 0.433777 0.382843 0.803650 0.477203 0.385254 0.803558 0.519562 0.387573 0.803436 0.559296 0.389984 0.803406 0.596375 0.392395 0.803314 0.630737 0.394745 0.803253 0.662628 0.397247 0.803131 0.692474 0.399628 0.803070 0.720520 0.402008 0.802948 0.747040 0.404510 0.802887 0.772278 0.406860 0.802826 0.796570 0.409302 0.802734 0.820038 0.411743 0.802643 0.842926 0.414124 0.802582 0.865509 0.416595 0.802490 0.888062 0.419006 0.802368 0.910980 0.421417 0.802277 0.934692 0.423828 0.802185 0.959961 0.426208 0.802094 0.050446 0.401672 0.798706 0.067078 0.403839 0.798645 0.085144 0.406006 0.798584 0.104919 0.408203 0.798523 0.126709 0.410400 0.798431 0.150879 0.412598 0.798401 0.177856 0.414917 0.798309 0.207703 0.417114 0.798248 0.240295 0.419403 0.798187 0.275482 0.421692 0.798126 0.312897 0.424042 0.798035 0.352478 0.426361 0.797974 0.393738 0.428711 0.797882 0.436432 0.431030 0.797821 0.479736 0.433380 0.797791 0.521759 0.435699 0.797699 0.561310 0.438080 0.797638 0.598053 0.440491 0.797485 0.632202 0.442810 0.797424 0.663940 0.445190 0.797333 0.693573 0.447601 0.797302 0.721436 0.449890 0.797241 0.747864 0.452332 0.797150 0.773010 0.454620 0.797058 0.797150 0.457031 0.797028 0.820496 0.459381 0.796906 0.843292 0.461700 0.796814 0.865845 0.464081 0.796753 0.888336 0.466400 0.796661 0.911133 0.468689 0.796570 0.934784 0.471008 0.796539 0.959961 0.473358 0.796417 0.052002 0.451508 0.792664 0.068695 0.453613 0.792603 0.086853 0.455780 0.792542 0.106750 0.457947 0.792480 0.128693 0.460144 0.792450 0.153046 0.462372 0.792358 0.180176 0.464600 0.792297 0.210144 0.466766 0.792267 0.242889 0.469025 0.792206 0.278076 0.471283 0.792114 0.315674 0.473480 0.792084 0.355225 0.475739 0.791992 0.396423 0.477966 0.791992 0.439056 0.480286 0.791901 0.482239 0.482544 0.791809 0.524017 0.484772 0.791748 0.563202 0.487061 0.791687 0.599731 0.489380 0.791595 0.633667 0.491577 0.791565 0.665222 0.493896 0.791504 0.694672 0.496094 0.791473 0.722412 0.498383 0.791382 0.748657 0.500671 0.791321 0.773682 0.502838 0.791260 0.797729 0.505096 0.791168 0.820953 0.507324 0.791138 0.843719 0.509430 0.791077 0.866119 0.511658 0.790985 0.888580 0.513824 0.790955 0.911285 0.515930 0.790863 0.934845 0.518066 0.790833 0.959961 0.520081 0.790802 0.053558 0.502075 0.786530 0.070374 0.504059 0.786499 0.088623 0.506165 0.786469 0.108643 0.508240 0.786377 0.130676 0.510284 0.786346 0.155243 0.512360 0.786346 0.182526 0.514404 0.786285 0.212616 0.516479 0.786255 0.245514 0.518585 0.786224 0.280762 0.520630 0.786163 0.318359 0.522675 0.786133 0.357971 0.524780 0.786133 0.399139 0.526825 0.786072 0.441650 0.528931 0.786011 0.484741 0.530975 0.785980 0.526276 0.533020 0.785889 0.565186 0.535065 0.785919 0.601501 0.537079 0.785889 0.635132 0.539093 0.785889 0.666473 0.541107 0.785797 0.695740 0.543060 0.785828 0.723328 0.545074 0.785767 0.749481 0.547089 0.785736 0.774323 0.549042 0.785675 0.798309 0.550995 0.785675 0.821472 0.552948 0.785645 0.844086 0.554810 0.785645 0.866486 0.556732 0.785583 0.888794 0.558594 0.785583 0.911499 0.560455 0.785553 0.934967 0.562286 0.785522 0.959961 0.564087 0.785492 0.055176 0.550629 0.780701 0.072052 0.552399 0.780640 0.090393 0.554291 0.780640 0.110596 0.556091 0.780640 0.132782 0.557861 0.780640 0.157440 0.559723 0.780640 0.184937 0.561584 0.780640 0.215179 0.563385 0.780609 0.248138 0.565186 0.780640 0.283508 0.567017 0.780640 0.321167 0.568878 0.780609 0.360687 0.570648 0.780579 0.401917 0.572449 0.780579 0.444366 0.574280 0.780548 0.487213 0.576080 0.780579 0.528442 0.577820 0.780609 0.567078 0.579651 0.780579 0.603180 0.581421 0.780548 0.636627 0.583160 0.780609 0.667694 0.584930 0.780609 0.696838 0.586639 0.780579 0.724243 0.588379 0.780579 0.750244 0.590118 0.780548 0.775055 0.591766 0.780548 0.798859 0.593445 0.780609 0.821930 0.595215 0.780579 0.844482 0.596802 0.780579 0.866730 0.598419 0.780609 0.889008 0.600067 0.780609 0.911621 0.601654 0.780609 0.935028 0.603271 0.780609 0.959961 0.604797 0.780609 0.056763 0.595490 0.775269 0.073761 0.597046 0.775330 0.092255 0.598663 0.775330 0.112488 0.600250 0.775360 0.134888 0.601837 0.775391 0.159698 0.603455 0.775421 0.187347 0.605042 0.775452 0.217712 0.606598 0.775482 0.250763 0.608215 0.775452 0.286224 0.609802 0.775482 0.323883 0.611389 0.775513 0.363434 0.612976 0.775513 0.404572 0.614532 0.775574 0.446991 0.616058 0.775604 0.489716 0.617645 0.775635 0.530640 0.619171 0.775665 0.569061 0.620758 0.775726 0.604797 0.622314 0.775696 0.638031 0.623779 0.775757 0.668945 0.625336 0.775787 0.697876 0.626770 0.775787 0.725189 0.628296 0.775818 0.751038 0.629730 0.775879 0.775696 0.631195 0.775909 0.799377 0.632629 0.775940 0.822388 0.634125 0.775940 0.844849 0.635498 0.776001 0.867065 0.636871 0.776031 0.889252 0.638306 0.776062 0.911804 0.639618 0.776093 0.935120 0.641022 0.776123 0.959961 0.642334 0.776154 0.058441 0.636719 0.770386 0.075500 0.638031 0.770447 0.094055 0.639465 0.770477 0.114502 0.640869 0.770538 0.136993 0.642242 0.770630 0.162018 0.643555 0.770660 0.189758 0.644928 0.770691 0.220337 0.646332 0.770721 0.253479 0.647705 0.770782 0.288971 0.649048 0.770844 0.326691 0.650421 0.770905 0.366211 0.651794 0.770966 0.407349 0.653107 0.771027 0.449615 0.654449 0.771088 0.492188 0.655792 0.771149 0.532776 0.657104 0.771179 0.570923 0.658417 0.771271 0.606476 0.659729 0.771301 0.639435 0.661011 0.771362 0.670166 0.662323 0.771393 0.698975 0.663544 0.771484 0.726074 0.664856 0.771515 0.751801 0.666107 0.771576 0.776367 0.667328 0.771637 0.799988 0.668610 0.771698 0.822845 0.669830 0.771759 0.845245 0.670990 0.771820 0.867371 0.672180 0.771851 0.889465 0.673340 0.771912 0.911957 0.674500 0.771973 0.935181 0.675690 0.772034 0.959961 0.676758 0.772095 0.060120 0.674438 0.765961 0.077209 0.675629 0.766022 0.095978 0.676788 0.766113 0.116455 0.677979 0.766205 0.139130 0.679138 0.766266 0.164337 0.680328 0.766327 0.192230 0.681488 0.766388 0.222931 0.682709 0.766449 0.256134 0.683899 0.766541 0.291718 0.685028 0.766663 0.329437 0.686218 0.766724 0.368958 0.687317 0.766785 0.410065 0.688477 0.766907 0.452271 0.689636 0.766968 0.494568 0.690765 0.767029 0.534912 0.691895 0.767120 0.572845 0.693054 0.767181 0.608093 0.694122 0.767242 0.640869 0.695221 0.767365 0.671387 0.696350 0.767426 0.699982 0.697418 0.767487 0.726959 0.698486 0.767578 0.752533 0.699585 0.767670 0.776978 0.700623 0.767731 0.800507 0.701691 0.767853 0.823303 0.702728 0.767883 0.845581 0.703735 0.767975 0.867645 0.704712 0.768066 0.889709 0.705719 0.768097 0.912048 0.706665 0.768188 0.935303 0.707672 0.768280 0.959961 0.708588 0.768341 0.061829 0.709137 0.761902 0.079071 0.710175 0.761993 0.097870 0.711182 0.762054 0.118500 0.712158 0.762177 0.141296 0.713165 0.762268 0.166687 0.714203 0.762360 0.194733 0.715210 0.762482 0.225555 0.716217 0.762604 0.258850 0.717224 0.762665 0.294495 0.718170 0.762756 0.332184 0.719177 0.762909 0.371735 0.720184 0.763000 0.412720 0.721161 0.763092 0.454834 0.722137 0.763214 0.496979 0.723114 0.763245 0.537109 0.724060 0.763336 0.574707 0.725006 0.763489 0.609741 0.725983 0.763580 0.642212 0.726898 0.763641 0.672607 0.727875 0.763763 0.701019 0.728760 0.763855 0.727814 0.729645 0.763977 0.753296 0.730591 0.764069 0.777618 0.731445 0.764130 0.801056 0.732361 0.764221 0.823730 0.733246 0.764313 0.845978 0.734100 0.764435 0.867920 0.734955 0.764526 0.889893 0.735779 0.764618 0.912231 0.736603 0.764709 0.935333 0.737427 0.764801 0.959961 0.738190 0.764893 0.063477 0.741272 0.758148 0.080841 0.742126 0.758301 0.099792 0.743011 0.758392 0.120544 0.743866 0.758514 0.143524 0.744720 0.758606 0.169006 0.745605 0.758759 0.197266 0.746460 0.758881 0.228180 0.747314 0.758972 0.261566 0.748169 0.759125 0.297241 0.748993 0.759247 0.334930 0.749847 0.759369 0.374451 0.750702 0.759460 0.415436 0.751526 0.759583 0.457458 0.752380 0.759674 0.499359 0.753174 0.759796 0.539154 0.754028 0.759949 0.576508 0.754822 0.760010 0.611298 0.755646 0.760132 0.643585 0.756409 0.760284 0.673737 0.757233 0.760376 0.702026 0.757965 0.760498 0.728699 0.758789 0.760590 0.754028 0.759552 0.760681 0.778229 0.760284 0.760803 0.801544 0.761047 0.760925 0.824188 0.761749 0.761017 0.846283 0.762512 0.761139 0.868195 0.763214 0.761261 0.890076 0.763885 0.761322 0.912323 0.764618 0.761475 0.935394 0.765289 0.761566 0.959961 0.765961 0.761658 0.065277 0.771271 0.754700 0.082672 0.771973 0.754822 0.101715 0.772766 0.754974 0.122620 0.773468 0.755127 0.145752 0.774261 0.755280 0.171417 0.774963 0.755371 0.199738 0.775665 0.755554 0.230804 0.776428 0.755707 0.264252 0.777161 0.755798 0.299957 0.777863 0.755920 0.337708 0.778595 0.756042 0.377167 0.779266 0.756165 0.418060 0.779999 0.756317 0.459991 0.780731 0.756439 0.501678 0.781372 0.756561 0.541229 0.782104 0.756683 0.578369 0.782776 0.756866 0.612823 0.783478 0.756989 0.644958 0.784119 0.757111 0.674896 0.784821 0.757202 0.703003 0.785431 0.757324 0.729523 0.786102 0.757446 0.754730 0.786713 0.757599 0.778870 0.787415 0.757690 0.802094 0.788025 0.757812 0.824615 0.788605 0.757935 0.846649 0.789276 0.758026 0.868469 0.789856 0.758179 0.890320 0.790405 0.758270 0.912476 0.791016 0.758392 0.935455 0.791595 0.758514 0.959961 0.792114 0.758606 0.066956 0.799469 0.751495 0.084503 0.800110 0.751678 0.103668 0.800781 0.751801 0.124695 0.801361 0.751923 0.147980 0.801971 0.752136 0.173767 0.802643 0.752289 0.202301 0.803223 0.752380 0.233368 0.803864 0.752563 0.266907 0.804413 0.752655 0.302704 0.805054 0.752838 0.340454 0.805664 0.752991 0.379913 0.806244 0.753143 0.420715 0.806885 0.753235 0.462494 0.807465 0.753387 0.503967 0.808014 0.753571 0.543274 0.808594 0.753693 0.580078 0.809204 0.753845 0.614349 0.809784 0.753967 0.646301 0.810333 0.754089 0.676056 0.810883 0.754242 0.703979 0.811462 0.754364 0.730377 0.811981 0.754486 0.755463 0.812500 0.754608 0.779449 0.813080 0.754761 0.802551 0.813599 0.754852 0.824982 0.814087 0.755035 0.846954 0.814575 0.755127 0.868774 0.815094 0.755249 0.890533 0.815613 0.755371 0.912628 0.816101 0.755493 0.935516 0.816528 0.755585 0.959961 0.817017 0.755737 0.068756 0.826263 0.748474 0.086395 0.826782 0.748627 0.105652 0.827332 0.748840 0.126770 0.827850 0.748993 0.150177 0.828400 0.749115 0.176147 0.828918 0.749298 0.204742 0.829376 0.749420 0.235992 0.829926 0.749603 0.269623 0.830444 0.749786 0.305450 0.830933 0.749939 0.343170 0.831451 0.750031 0.382538 0.831970 0.750183 0.423309 0.832428 0.750397 0.464996 0.832916 0.750519 0.506287 0.833435 0.750671 0.545288 0.833893 0.750824 0.581818 0.834412 0.750946 0.615845 0.834869 0.751099 0.647522 0.835327 0.751282 0.677124 0.835815 0.751404 0.704926 0.836243 0.751526 0.731171 0.836700 0.751678 0.756134 0.837128 0.751801 0.780029 0.837585 0.751984 0.803040 0.838013 0.752075 0.825409 0.838409 0.752228 0.847290 0.838837 0.752350 0.868958 0.839264 0.752472 0.890686 0.839661 0.752563 0.912781 0.840057 0.752716 0.935577 0.840454 0.752869 0.959961 0.840790 0.752991 0.070526 0.851898 0.745605 0.088226 0.852325 0.745819 0.107605 0.852814 0.745941 0.128876 0.853210 0.746124 0.152435 0.853638 0.746277 0.178497 0.854065 0.746429 0.207336 0.854492 0.746643 0.238617 0.854889 0.746826 0.272308 0.855316 0.746948 0.308105 0.855743 0.747101 0.345825 0.856171 0.747314 0.385223 0.856598 0.747437 0.425964 0.856995 0.747620 0.467468 0.857391 0.747772 0.508453 0.857788 0.747894 0.547150 0.858215 0.748047 0.583496 0.858612 0.748260 0.617279 0.858978 0.748383 0.648773 0.859344 0.748535 0.678192 0.859711 0.748688 0.705811 0.860138 0.748810 0.731964 0.860474 0.749023 0.756805 0.860840 0.749115 0.780609 0.861176 0.749268 0.803528 0.861542 0.749390 0.825775 0.861908 0.749542 0.847626 0.862244 0.749634 0.869232 0.862579 0.749786 0.890839 0.862915 0.749939 0.912842 0.863220 0.750061 0.935669 0.863525 0.750153 0.959961 0.863831 0.750275 0.072235 0.876678 0.742828 0.090118 0.877014 0.743011 0.109558 0.877380 0.743195 0.130981 0.877716 0.743347 0.154694 0.878082 0.743591 0.180908 0.878418 0.743713 0.209778 0.878784 0.743896 0.241180 0.879120 0.744049 0.274872 0.879486 0.744232 0.310730 0.879791 0.744415 0.348541 0.880127 0.744598 0.387817 0.880463 0.744781 0.428436 0.880798 0.744904 0.469910 0.881134 0.745087 0.510620 0.881439 0.745239 0.549072 0.881775 0.745392 0.585083 0.882080 0.745575 0.618744 0.882355 0.745758 0.650024 0.882690 0.745880 0.679230 0.882996 0.746033 0.706696 0.883331 0.746216 0.732727 0.883606 0.746338 0.757416 0.883881 0.746490 0.781097 0.884186 0.746643 0.803955 0.884430 0.746765 0.826141 0.884705 0.746918 0.847931 0.885010 0.747070 0.869476 0.885254 0.747192 0.891022 0.885529 0.747284 0.912994 0.885742 0.747406 0.935699 0.886017 0.747559 0.959961 0.886230 0.747711 0.074066 0.900909 0.740143 0.091949 0.901154 0.740326 0.111572 0.901428 0.740570 0.133087 0.901733 0.740692 0.156921 0.902008 0.740875 0.183258 0.902252 0.741058 0.212280 0.902527 0.741241 0.243774 0.902802 0.741425 0.277557 0.903107 0.741577 0.313416 0.903381 0.741791 0.351105 0.903625 0.741943 0.390381 0.903900 0.742096 0.430939 0.904114 0.742279 0.472229 0.904419 0.742462 0.512695 0.904633 0.742645 0.550934 0.904877 0.742798 0.586731 0.905121 0.742981 0.620087 0.905365 0.743134 0.651184 0.905640 0.743317 0.680206 0.905823 0.743439 0.707581 0.906097 0.743622 0.733429 0.906311 0.743744 0.758087 0.906525 0.743896 0.781647 0.906738 0.744049 0.804382 0.906952 0.744202 0.826508 0.907166 0.744354 0.848206 0.907349 0.744446 0.869629 0.907593 0.744568 0.891235 0.907745 0.744751 0.913086 0.907959 0.744904 0.935791 0.908142 0.744965 0.959961 0.908325 0.745087 0.075775 0.924896 0.737488 0.093842 0.925079 0.737671 0.113525 0.925293 0.737854 0.135162 0.925507 0.738037 0.159119 0.925751 0.738220 0.185608 0.925934 0.738403 0.214752 0.926086 0.738617 0.246307 0.926300 0.738800 0.280121 0.926544 0.738953 0.315979 0.926727 0.739136 0.353699 0.926910 0.739319 0.392914 0.927063 0.739502 0.433411 0.927277 0.739716 0.474487 0.927490 0.739868 0.514801 0.927673 0.740021 0.552734 0.927826 0.740204 0.588287 0.928009 0.740387 0.621460 0.928192 0.740540 0.652313 0.928406 0.740692 0.681213 0.928528 0.740845 0.708374 0.928741 0.740997 0.734161 0.928864 0.741180 0.758636 0.929047 0.741333 0.782135 0.929230 0.741455 0.804810 0.929382 0.741608 0.826874 0.929504 0.741730 0.848480 0.929657 0.741882 0.869904 0.929779 0.742035 0.891357 0.929932 0.742126 0.913208 0.930115 0.742249 0.935822 0.930206 0.742401 0.959961 0.930359 0.742493 0.077576 0.948975 0.734772 0.095703 0.949127 0.734985 0.115448 0.949249 0.735138 0.137238 0.949402 0.735352 0.161346 0.949585 0.735565 0.187958 0.949738 0.735748 0.217163 0.949860 0.735901 0.248810 0.949982 0.736115 0.282654 0.950104 0.736298 0.318573 0.950256 0.736511 0.356171 0.950378 0.736694 0.395355 0.950470 0.736877 0.435760 0.950592 0.737030 0.476715 0.950714 0.737244 0.516754 0.950867 0.737427 0.554474 0.950989 0.737579 0.589783 0.951141 0.737732 0.622711 0.951233 0.737915 0.653412 0.951355 0.738068 0.682129 0.951477 0.738251 0.709198 0.951569 0.738403 0.734833 0.951691 0.738556 0.759216 0.951782 0.738647 0.782623 0.951874 0.738831 0.805206 0.951996 0.738953 0.827148 0.952087 0.739136 0.848755 0.952209 0.739227 0.870087 0.952301 0.739380 0.891541 0.952393 0.739532 0.913300 0.952484 0.739624 0.935883 0.952545 0.739746 0.959961 0.952637 0.739868 0.079346 0.973785 0.731964 0.097534 0.973846 0.732178 0.117432 0.973969 0.732391 0.139343 0.973999 0.732605 0.163544 0.974091 0.732758 0.190277 0.974152 0.732971 0.219604 0.974213 0.733154 0.251282 0.974304 0.733368 0.285156 0.974365 0.733582 0.321014 0.974396 0.733734 0.358673 0.974457 0.733948 0.397766 0.974548 0.734100 0.438080 0.974609 0.734344 0.478882 0.974670 0.734497 0.518677 0.974731 0.734680 0.556122 0.974823 0.734833 0.591187 0.974854 0.734985 0.623962 0.974915 0.735199 0.654480 0.974976 0.735382 0.683014 0.975037 0.735504 0.709961 0.975067 0.735626 0.735474 0.975128 0.735779 0.759766 0.975189 0.735962 0.783081 0.975250 0.736115 0.805603 0.975281 0.736237 0.827515 0.975342 0.736389 0.848999 0.975403 0.736511 0.870300 0.975433 0.736664 0.891632 0.975464 0.736755 0.913422 0.975494 0.736847 0.935944 0.975586 0.736969 0.959961 0.975616 0.737152 0.081055 1.000000 0.729004 0.099365 1.000000 0.729187 0.119324 1.000000 0.729401 0.141327 1.000000 0.729614 0.165680 1.000000 0.729797 0.192535 1.000000 0.730042 0.221954 1.000000 0.730255 0.253662 1.000000 0.730408 0.287598 1.000000 0.730621 0.323456 1.000000 0.730804 0.361053 1.000000 0.731018 0.400116 1.000000 0.731171 0.440277 1.000000 0.731384 0.481018 1.000000 0.731537 0.520538 1.000000 0.731720 0.557739 1.000000 0.731934 0.592590 1.000000 0.732086 0.625183 1.000000 0.732269 0.655487 1.000000 0.732391 0.683899 1.000000 0.732544 0.710693 1.000000 0.732727 0.736084 1.000000 0.732910 0.760284 1.000000 0.733032 0.783508 1.000000 0.733185 0.805939 1.000000 0.733307 0.827759 1.000000 0.733429 0.849213 1.000000 0.733582 0.870453 1.000000 0.733673 0.891785 1.000000 0.733795 0.913483 1.000000 0.733948 0.935974 1.000000 0.734070 0.959961 1.000000 0.734161 0.034637 0.005829 0.870544 0.050232 0.006622 0.870575 0.067139 0.007385 0.870605 0.085541 0.008209 0.870605 0.105713 0.008972 0.870636 0.128113 0.009857 0.870667 0.153015 0.010742 0.870667 0.180878 0.011627 0.870728 0.211792 0.012543 0.870728 0.245636 0.013458 0.870758 0.282166 0.014435 0.870758 0.321228 0.015411 0.870758 0.362366 0.016388 0.870819 0.405365 0.017395 0.870850 0.449707 0.018463 0.870850 0.494354 0.019501 0.870880 0.536957 0.020569 0.870880 0.576752 0.021698 0.870911 0.613708 0.022797 0.870941 0.647919 0.023956 0.870941 0.679749 0.025116 0.870972 0.709503 0.026245 0.870972 0.737610 0.027466 0.870972 0.764252 0.028656 0.871033 0.789703 0.029877 0.871033 0.814301 0.031128 0.871063 0.838226 0.032349 0.871063 0.861786 0.033661 0.871094 0.885254 0.034943 0.871094 0.909088 0.036255 0.871124 0.933655 0.037567 0.871124 0.959961 0.038910 0.871094 0.035522 0.022461 0.868622 0.051270 0.023224 0.868652 0.068237 0.024078 0.868683 0.086700 0.024933 0.868683 0.106995 0.025818 0.868713 0.129486 0.026733 0.868744 0.154572 0.027679 0.868744 0.182556 0.028595 0.868774 0.213593 0.029572 0.868774 0.247620 0.030609 0.868805 0.284241 0.031616 0.868835 0.323303 0.032654 0.868866 0.364471 0.033691 0.868896 0.407501 0.034790 0.868896 0.451813 0.035889 0.868896 0.496338 0.037018 0.868896 0.538757 0.038177 0.868958 0.578339 0.039337 0.868958 0.615051 0.040527 0.868958 0.649078 0.041718 0.868958 0.680786 0.042969 0.868958 0.710388 0.044189 0.868988 0.738342 0.045441 0.869019 0.764893 0.046692 0.869019 0.790283 0.048004 0.869049 0.814758 0.049347 0.869049 0.838623 0.050629 0.869080 0.862091 0.052002 0.869080 0.885498 0.053406 0.869080 0.909180 0.054749 0.869049 0.933746 0.056152 0.869049 0.959961 0.057587 0.869080 0.036560 0.040009 0.866608 0.052307 0.040894 0.866608 0.069366 0.041809 0.866608 0.087952 0.042755 0.866669 0.108337 0.043671 0.866669 0.130951 0.044647 0.866699 0.156189 0.045715 0.866669 0.184326 0.046692 0.866699 0.215546 0.047760 0.866730 0.249603 0.048828 0.866730 0.286316 0.049927 0.866760 0.325470 0.051086 0.866760 0.366730 0.052155 0.866791 0.409698 0.053375 0.866791 0.453949 0.054565 0.866821 0.498291 0.055786 0.866821 0.540466 0.057007 0.866791 0.579865 0.058228 0.866821 0.616425 0.059509 0.866821 0.650269 0.060822 0.866821 0.681793 0.062134 0.866852 0.711273 0.063477 0.866821 0.739136 0.064819 0.866852 0.765564 0.066162 0.866821 0.790833 0.067596 0.866821 0.815247 0.068970 0.866852 0.839020 0.070404 0.866821 0.862396 0.071838 0.866821 0.885712 0.073334 0.866821 0.909363 0.074799 0.866852 0.933838 0.076294 0.866821 0.959961 0.077820 0.866821 0.037598 0.058960 0.864380 0.053467 0.059906 0.864410 0.070587 0.060913 0.864441 0.089233 0.061951 0.864410 0.109741 0.062988 0.864441 0.132507 0.064087 0.864441 0.157867 0.065186 0.864471 0.186188 0.066284 0.864471 0.217529 0.067474 0.864471 0.251678 0.068604 0.864471 0.288544 0.069824 0.864471 0.327728 0.071045 0.864502 0.368927 0.072266 0.864502 0.411926 0.073547 0.864502 0.456146 0.074860 0.864471 0.500427 0.076111 0.864471 0.542297 0.077484 0.864471 0.581451 0.078857 0.864471 0.617798 0.080200 0.864471 0.651520 0.081635 0.864471 0.682831 0.083008 0.864471 0.712219 0.084473 0.864441 0.739929 0.085968 0.864441 0.766235 0.087402 0.864441 0.791382 0.088928 0.864441 0.815735 0.090485 0.864410 0.839417 0.091980 0.864380 0.862732 0.093567 0.864410 0.885925 0.095154 0.864380 0.909546 0.096710 0.864319 0.933899 0.098358 0.864288 0.959961 0.099976 0.864319 0.038696 0.079651 0.862000 0.054626 0.080719 0.861969 0.071838 0.081818 0.862000 0.090607 0.082947 0.861969 0.111237 0.084106 0.862000 0.134125 0.085297 0.862000 0.159607 0.086487 0.862000 0.188110 0.087738 0.862000 0.219604 0.088989 0.861969 0.253845 0.090302 0.861969 0.290771 0.091614 0.862000 0.329987 0.092957 0.861969 0.371277 0.094269 0.861969 0.414246 0.095703 0.861938 0.458405 0.097137 0.861938 0.502472 0.098541 0.861938 0.544159 0.100006 0.861877 0.583099 0.101532 0.861877 0.619263 0.102997 0.861877 0.652710 0.104553 0.861847 0.683899 0.106079 0.861847 0.713135 0.107666 0.861816 0.740692 0.109253 0.861786 0.766907 0.110870 0.861755 0.792023 0.112488 0.861694 0.816193 0.114197 0.861694 0.839783 0.115845 0.861694 0.863007 0.117523 0.861633 0.886230 0.119293 0.861572 0.909698 0.121033 0.861542 0.933990 0.122742 0.861542 0.959961 0.124512 0.861481 0.039886 0.102509 0.859314 0.055817 0.103699 0.859283 0.073151 0.104919 0.859283 0.092041 0.106171 0.859283 0.112793 0.107483 0.859283 0.135803 0.108795 0.859253 0.161438 0.110138 0.859222 0.190094 0.111481 0.859222 0.221710 0.112915 0.859222 0.256104 0.114319 0.859192 0.293091 0.115784 0.859131 0.332397 0.117279 0.859131 0.373657 0.118774 0.859100 0.416626 0.120300 0.859100 0.460663 0.121887 0.859039 0.504578 0.123413 0.859039 0.546112 0.125031 0.859009 0.584717 0.126648 0.858978 0.620697 0.128326 0.858948 0.653961 0.130035 0.858917 0.684967 0.131683 0.858887 0.714050 0.133453 0.858826 0.741547 0.135193 0.858765 0.767578 0.136932 0.858734 0.792572 0.138763 0.858704 0.816681 0.140594 0.858643 0.840179 0.142426 0.858582 0.863342 0.144287 0.858521 0.886444 0.146118 0.858490 0.909851 0.148010 0.858429 0.934082 0.149963 0.858337 0.959961 0.151855 0.858307 0.041077 0.128021 0.856293 0.057129 0.129333 0.856293 0.074493 0.130707 0.856262 0.093445 0.132111 0.856232 0.114380 0.133575 0.856201 0.137512 0.135071 0.856140 0.163361 0.136536 0.856110 0.192139 0.138062 0.856110 0.223877 0.139648 0.856049 0.258392 0.141174 0.856018 0.295441 0.142853 0.855957 0.334747 0.144470 0.855957 0.376068 0.146118 0.855896 0.419006 0.147827 0.855865 0.463013 0.149536 0.855804 0.506683 0.151276 0.855713 0.547943 0.153076 0.855713 0.586426 0.154846 0.855652 0.622131 0.156677 0.855621 0.655212 0.158569 0.855560 0.686035 0.160400 0.855469 0.714996 0.162323 0.855438 0.742279 0.164246 0.855377 0.768280 0.166138 0.855316 0.793121 0.168152 0.855225 0.817169 0.170166 0.855164 0.840576 0.172150 0.855072 0.863678 0.174194 0.855042 0.886688 0.176208 0.854919 0.910004 0.178314 0.854858 0.934174 0.180389 0.854797 0.959961 0.182465 0.854675 0.042328 0.156708 0.852844 0.058441 0.158203 0.852814 0.075928 0.159760 0.852783 0.095001 0.161346 0.852722 0.116058 0.162933 0.852692 0.139343 0.164612 0.852661 0.165283 0.166260 0.852570 0.194275 0.167999 0.852539 0.226166 0.169739 0.852478 0.260773 0.171448 0.852448 0.297913 0.173248 0.852386 0.337250 0.175079 0.852325 0.378632 0.176941 0.852234 0.421509 0.178802 0.852142 0.465363 0.180695 0.852112 0.508911 0.182617 0.852051 0.549866 0.184601 0.851959 0.588074 0.186554 0.851898 0.623627 0.188568 0.851807 0.656525 0.190643 0.851776 0.687164 0.192688 0.851685 0.715942 0.194763 0.851562 0.743134 0.196869 0.851501 0.768951 0.198975 0.851410 0.793732 0.201141 0.851318 0.817657 0.203278 0.851227 0.841003 0.205444 0.851135 0.863983 0.207672 0.851044 0.886932 0.209808 0.850952 0.910187 0.212067 0.850830 0.934265 0.214325 0.850739 0.959961 0.216522 0.850647 0.043579 0.189148 0.848938 0.059845 0.190826 0.848907 0.077393 0.192596 0.848816 0.096588 0.194305 0.848785 0.117767 0.196106 0.848694 0.141174 0.197937 0.848633 0.167328 0.199768 0.848572 0.196442 0.201691 0.848541 0.228455 0.203613 0.848419 0.263123 0.205536 0.848328 0.300385 0.207489 0.848267 0.339783 0.209473 0.848145 0.381134 0.211487 0.848114 0.423981 0.213562 0.848022 0.467773 0.215576 0.847961 0.511078 0.217712 0.847839 0.551849 0.219849 0.847748 0.589813 0.221954 0.847656 0.625092 0.224121 0.847595 0.657806 0.226349 0.847473 0.688232 0.228485 0.847382 0.716888 0.230713 0.847290 0.743927 0.233002 0.847168 0.769653 0.235199 0.847076 0.794281 0.237549 0.846954 0.818146 0.239777 0.846893 0.841400 0.242096 0.846771 0.864349 0.244415 0.846649 0.887146 0.246735 0.846527 0.910370 0.249054 0.846436 0.934326 0.251465 0.846313 0.959961 0.253784 0.846191 0.044952 0.225433 0.844574 0.061279 0.227295 0.844513 0.078918 0.229187 0.844421 0.098236 0.231079 0.844330 0.119537 0.233063 0.844238 0.143127 0.235016 0.844208 0.169403 0.237000 0.844086 0.198669 0.239075 0.843964 0.230865 0.241119 0.843903 0.265656 0.243195 0.843781 0.302917 0.245331 0.843719 0.342316 0.247406 0.843628 0.383667 0.249603 0.843536 0.426544 0.251770 0.843414 0.470245 0.253937 0.843323 0.513275 0.256195 0.843231 0.553802 0.258484 0.843140 0.591522 0.260651 0.843018 0.626556 0.263000 0.842896 0.658997 0.265320 0.842804 0.689362 0.267578 0.842682 0.717834 0.269958 0.842560 0.744720 0.272278 0.842438 0.770386 0.274597 0.842346 0.794952 0.277039 0.842224 0.818665 0.279388 0.842102 0.841797 0.281799 0.841980 0.864624 0.284210 0.841858 0.887421 0.286591 0.841705 0.910522 0.289032 0.841614 0.934448 0.291473 0.841431 0.959961 0.293854 0.841339 0.046356 0.265320 0.839691 0.062714 0.267303 0.839600 0.080505 0.269348 0.839539 0.099884 0.271362 0.839447 0.121307 0.273438 0.839355 0.145081 0.275513 0.839233 0.171570 0.277649 0.839142 0.200989 0.279816 0.839020 0.233246 0.281982 0.838959 0.268158 0.284180 0.838867 0.305481 0.286377 0.838745 0.344971 0.288605 0.838654 0.386261 0.290894 0.838531 0.429077 0.293182 0.838409 0.472717 0.295441 0.838318 0.515503 0.297760 0.838165 0.555756 0.300171 0.838043 0.593201 0.302429 0.837982 0.628021 0.304810 0.837830 0.660339 0.307251 0.837708 0.690430 0.309631 0.837585 0.718811 0.311981 0.837463 0.745575 0.314392 0.837372 0.771057 0.316864 0.837219 0.795532 0.319305 0.837067 0.819122 0.321686 0.837006 0.842194 0.324127 0.836853 0.864960 0.326630 0.836731 0.887695 0.329010 0.836578 0.910675 0.331482 0.836456 0.934509 0.334015 0.836304 0.959961 0.336395 0.836182 0.047791 0.308441 0.834412 0.064240 0.310516 0.834351 0.082123 0.312622 0.834259 0.101624 0.314758 0.834137 0.123230 0.316895 0.834045 0.147095 0.319122 0.833923 0.173737 0.321259 0.833832 0.203339 0.323486 0.833740 0.235687 0.325745 0.833618 0.270691 0.328064 0.833496 0.308105 0.330353 0.833405 0.347595 0.332642 0.833282 0.388885 0.334930 0.833191 0.431641 0.337280 0.833038 0.475159 0.339630 0.832916 0.517761 0.342041 0.832825 0.557709 0.344421 0.832672 0.594940 0.346802 0.832550 0.629517 0.349213 0.832458 0.661621 0.351593 0.832336 0.691559 0.354065 0.832184 0.719727 0.356506 0.832092 0.746368 0.358917 0.831909 0.771729 0.361420 0.831818 0.796082 0.363831 0.831696 0.819611 0.366241 0.831543 0.842560 0.368713 0.831421 0.865234 0.371216 0.831299 0.887878 0.373627 0.831177 0.910858 0.376099 0.831024 0.934601 0.378479 0.830872 0.959961 0.380981 0.830811 0.049255 0.354279 0.828827 0.065796 0.356445 0.828705 0.083771 0.358673 0.828583 0.103455 0.360779 0.828522 0.125092 0.363007 0.828400 0.149200 0.365295 0.828308 0.175964 0.367493 0.828186 0.205750 0.369751 0.828064 0.238159 0.372040 0.827972 0.273315 0.374359 0.827881 0.310730 0.376678 0.827759 0.350250 0.378967 0.827606 0.391602 0.381378 0.827484 0.434265 0.383759 0.827423 0.477692 0.386078 0.827271 0.520020 0.388489 0.827148 0.559692 0.390900 0.827026 0.596680 0.393280 0.826904 0.631012 0.395691 0.826782 0.662872 0.398010 0.826660 0.692657 0.400513 0.826508 0.720673 0.402924 0.826416 0.747192 0.405304 0.826263 0.772430 0.407776 0.826172 0.796661 0.410217 0.826019 0.820099 0.412598 0.825897 0.843018 0.415070 0.825775 0.865570 0.417480 0.825653 0.888153 0.419830 0.825500 0.910980 0.422302 0.825409 0.934692 0.424652 0.825287 0.959961 0.427063 0.825134 0.050751 0.402374 0.822906 0.067413 0.404663 0.822815 0.085449 0.406830 0.822723 0.105225 0.408936 0.822662 0.127045 0.411255 0.822510 0.151245 0.413452 0.822388 0.178284 0.415710 0.822296 0.208160 0.417999 0.822174 0.240784 0.420258 0.822083 0.275940 0.422546 0.821960 0.313446 0.424927 0.821838 0.352966 0.427185 0.821747 0.394257 0.429565 0.821625 0.436951 0.431885 0.821503 0.480164 0.434204 0.821381 0.522186 0.436584 0.821289 0.561584 0.438904 0.821167 0.598358 0.441315 0.821045 0.632507 0.443726 0.820923 0.664124 0.446014 0.820831 0.693756 0.448395 0.820679 0.721649 0.450775 0.820587 0.747986 0.453156 0.820435 0.773102 0.455505 0.820312 0.797241 0.457916 0.820221 0.820587 0.460236 0.820099 0.843384 0.462585 0.819946 0.865906 0.464905 0.819855 0.888336 0.467224 0.819733 0.911163 0.469543 0.819611 0.934784 0.471832 0.819489 0.959961 0.474182 0.819366 0.052307 0.452240 0.816803 0.069031 0.454437 0.816742 0.087189 0.456573 0.816620 0.107086 0.458771 0.816498 0.129059 0.460999 0.816406 0.153412 0.463135 0.816315 0.180573 0.465363 0.816193 0.210632 0.467621 0.816101 0.243347 0.469849 0.815979 0.278625 0.472046 0.815918 0.316162 0.474365 0.815796 0.355682 0.476593 0.815704 0.396942 0.478882 0.815582 0.439545 0.481140 0.815491 0.482697 0.483368 0.815399 0.524414 0.485626 0.815277 0.563568 0.487854 0.815155 0.600128 0.490143 0.815094 0.633972 0.492432 0.814941 0.665436 0.494659 0.814850 0.694855 0.496918 0.814758 0.722565 0.499207 0.814636 0.748810 0.501465 0.814545 0.773804 0.503723 0.814423 0.797821 0.505890 0.814331 0.821075 0.508057 0.814270 0.843781 0.510284 0.814148 0.866211 0.512451 0.814026 0.888611 0.514587 0.813934 0.911346 0.516724 0.813843 0.934845 0.518799 0.813751 0.959961 0.520905 0.813660 0.053864 0.502808 0.810608 0.070648 0.504852 0.810516 0.088928 0.506927 0.810455 0.108978 0.508972 0.810364 0.131134 0.511078 0.810272 0.155609 0.513092 0.810181 0.182953 0.515198 0.810089 0.213135 0.517273 0.810028 0.245972 0.519348 0.809967 0.281342 0.521423 0.809875 0.318909 0.523499 0.809784 0.358459 0.525513 0.809723 0.399689 0.527618 0.809631 0.442169 0.529633 0.809570 0.485199 0.531677 0.809448 0.526642 0.533752 0.809387 0.565521 0.535767 0.809326 0.601776 0.537842 0.809235 0.635437 0.539825 0.809174 0.666718 0.541809 0.809113 0.695953 0.543884 0.809021 0.723511 0.545837 0.808960 0.749603 0.547760 0.808899 0.774475 0.549744 0.808838 0.798431 0.551636 0.808777 0.821533 0.553558 0.808685 0.844147 0.555511 0.808624 0.866516 0.557373 0.808563 0.888855 0.559296 0.808502 0.911530 0.561157 0.808441 0.934967 0.562958 0.808380 0.959961 0.564758 0.808289 0.055450 0.551270 0.804657 0.072327 0.553131 0.804626 0.090759 0.554932 0.804565 0.110901 0.556732 0.804535 0.133179 0.558563 0.804443 0.157837 0.560394 0.804443 0.185394 0.562164 0.804382 0.215668 0.564056 0.804291 0.248596 0.565857 0.804291 0.284027 0.567688 0.804260 0.321686 0.569519 0.804169 0.361206 0.571320 0.804138 0.402344 0.573120 0.804077 0.444794 0.574921 0.804047 0.487671 0.576752 0.803986 0.528839 0.578491 0.803955 0.567444 0.580322 0.803894 0.603455 0.582062 0.803894 0.636871 0.583862 0.803833 0.667908 0.585571 0.803802 0.697021 0.587250 0.803772 0.724457 0.589050 0.803680 0.750366 0.590698 0.803680 0.775177 0.592438 0.803650 0.798950 0.594147 0.803589 0.822052 0.595734 0.803589 0.844543 0.597412 0.803528 0.866791 0.599060 0.803497 0.889038 0.600677 0.803467 0.911682 0.602295 0.803436 0.935028 0.603821 0.803406 0.959961 0.605438 0.803375 0.057068 0.596039 0.799225 0.074097 0.597656 0.799194 0.092560 0.599243 0.799164 0.112854 0.600830 0.799164 0.135254 0.602478 0.799164 0.160095 0.604004 0.799103 0.187775 0.605621 0.799072 0.218231 0.607208 0.799133 0.251282 0.608795 0.799072 0.286743 0.610382 0.799042 0.324432 0.612000 0.799011 0.364014 0.613525 0.799042 0.405121 0.615112 0.799011 0.447449 0.616608 0.799011 0.490173 0.618195 0.798981 0.531036 0.619751 0.798981 0.569366 0.621277 0.798950 0.605103 0.622803 0.798950 0.638336 0.624359 0.798950 0.669159 0.625824 0.798889 0.698090 0.627319 0.798920 0.725372 0.628815 0.798920 0.751190 0.630249 0.798920 0.775818 0.631744 0.798889 0.799469 0.633118 0.798889 0.822479 0.634613 0.798859 0.844910 0.636047 0.798859 0.867096 0.637421 0.798859 0.889313 0.638794 0.798859 0.911835 0.640167 0.798859 0.935120 0.641449 0.798859 0.959961 0.642822 0.798859 0.058716 0.637238 0.794220 0.075806 0.638580 0.794250 0.094421 0.639954 0.794250 0.114838 0.641357 0.794250 0.137360 0.642731 0.794281 0.162415 0.644073 0.794312 0.190216 0.645477 0.794312 0.220795 0.646851 0.794312 0.253937 0.648224 0.794281 0.289490 0.649536 0.794373 0.327209 0.650940 0.794373 0.366760 0.652222 0.794342 0.407837 0.653625 0.794373 0.450073 0.654907 0.794434 0.492676 0.656281 0.794403 0.533203 0.657593 0.794434 0.571289 0.658875 0.794464 0.606781 0.660156 0.794434 0.639740 0.661499 0.794495 0.670410 0.662750 0.794464 0.699127 0.664062 0.794495 0.726227 0.665314 0.794495 0.751923 0.666534 0.794556 0.776489 0.667816 0.794556 0.800079 0.669006 0.794586 0.822906 0.670227 0.794617 0.845306 0.671478 0.794617 0.867401 0.672607 0.794617 0.889526 0.673798 0.794647 0.911987 0.674957 0.794678 0.935181 0.676056 0.794739 0.959961 0.677216 0.794739 0.060364 0.674866 0.789734 0.077606 0.676056 0.789764 0.096283 0.677246 0.789795 0.116852 0.678406 0.789856 0.139557 0.679596 0.789886 0.164764 0.680786 0.789917 0.192719 0.681946 0.789917 0.223450 0.683136 0.790009 0.256653 0.684265 0.790039 0.292236 0.685455 0.790039 0.329926 0.686584 0.790070 0.369507 0.687775 0.790161 0.410583 0.688934 0.790161 0.452698 0.690033 0.790192 0.495056 0.691162 0.790253 0.535339 0.692322 0.790253 0.573151 0.693390 0.790344 0.608398 0.694550 0.790344 0.641144 0.695648 0.790375 0.671631 0.696747 0.790436 0.700165 0.697845 0.790497 0.727112 0.698914 0.790497 0.752686 0.699951 0.790558 0.777100 0.701019 0.790588 0.800629 0.702026 0.790619 0.823425 0.703064 0.790680 0.845642 0.704071 0.790710 0.867706 0.705078 0.790741 0.889771 0.706116 0.790833 0.912079 0.707092 0.790833 0.935303 0.708008 0.790863 0.959961 0.708984 0.790924 0.062103 0.709473 0.785553 0.079376 0.710510 0.785675 0.098206 0.711517 0.785706 0.118896 0.712555 0.785767 0.141724 0.713562 0.785797 0.167114 0.714539 0.785858 0.195190 0.715576 0.785980 0.226013 0.716614 0.785980 0.259338 0.717560 0.786041 0.295013 0.718597 0.786163 0.332672 0.719574 0.786163 0.372253 0.720551 0.786224 0.413269 0.721497 0.786285 0.455353 0.722473 0.786316 0.497437 0.723450 0.786438 0.537476 0.724426 0.786469 0.575012 0.725372 0.786530 0.610016 0.726349 0.786591 0.642517 0.727234 0.786682 0.672791 0.728180 0.786713 0.701233 0.729095 0.786774 0.727997 0.730011 0.786804 0.753448 0.730896 0.786865 0.777740 0.731812 0.786926 0.801117 0.732666 0.787018 0.823822 0.733551 0.787048 0.846039 0.734436 0.787140 0.867981 0.735260 0.787170 0.889954 0.736084 0.787201 0.912231 0.736938 0.787292 0.935364 0.737701 0.787354 0.959961 0.738525 0.787415 0.063843 0.741577 0.781799 0.081207 0.742432 0.781860 0.100128 0.743317 0.781921 0.120941 0.744202 0.782013 0.143951 0.745056 0.782104 0.169403 0.745911 0.782166 0.197723 0.746796 0.782257 0.228638 0.747620 0.782318 0.262054 0.748474 0.782410 0.297760 0.749329 0.782501 0.335449 0.750153 0.782562 0.374969 0.751007 0.782623 0.415924 0.751831 0.782715 0.457886 0.752655 0.782806 0.499817 0.753510 0.782867 0.539581 0.754333 0.782959 0.576843 0.755096 0.783020 0.611572 0.755920 0.783112 0.643890 0.756714 0.783173 0.673981 0.757507 0.783234 0.702209 0.758270 0.783325 0.728851 0.759033 0.783417 0.754150 0.759796 0.783447 0.778320 0.760529 0.783539 0.801636 0.761322 0.783600 0.824249 0.762054 0.783691 0.846375 0.762787 0.783752 0.868256 0.763458 0.783813 0.890106 0.764160 0.783936 0.912354 0.764862 0.783966 0.935394 0.765533 0.784027 0.959961 0.766235 0.784088 0.065552 0.771515 0.778259 0.083038 0.772308 0.778351 0.102081 0.773010 0.778473 0.123016 0.773743 0.778564 0.146179 0.774506 0.778656 0.171814 0.775208 0.778748 0.200195 0.775940 0.778870 0.231262 0.776703 0.778900 0.264709 0.777405 0.779022 0.300507 0.778137 0.779083 0.338226 0.778839 0.779205 0.377747 0.779572 0.779297 0.418640 0.780243 0.779358 0.460480 0.780945 0.779449 0.502136 0.781647 0.779572 0.541656 0.782349 0.779663 0.578613 0.783051 0.779724 0.613098 0.783722 0.779816 0.645172 0.784363 0.779938 0.675110 0.785065 0.780029 0.703186 0.785706 0.780090 0.729706 0.786316 0.780151 0.754852 0.786987 0.780273 0.778992 0.787628 0.780365 0.802155 0.788208 0.780426 0.824677 0.788818 0.780518 0.846741 0.789490 0.780609 0.868500 0.790039 0.780701 0.890350 0.790619 0.780762 0.912506 0.791199 0.780853 0.935486 0.791779 0.780914 0.959961 0.792358 0.781006 0.067322 0.799713 0.774994 0.084900 0.800354 0.775116 0.104034 0.800995 0.775177 0.125092 0.801605 0.775299 0.148346 0.802185 0.775452 0.174194 0.802826 0.775513 0.202728 0.803467 0.775604 0.233856 0.804047 0.775726 0.267426 0.804718 0.775848 0.303253 0.805298 0.775970 0.340973 0.805908 0.776031 0.380432 0.806488 0.776154 0.421265 0.807098 0.776276 0.462982 0.807678 0.776398 0.504425 0.808258 0.776459 0.543640 0.808838 0.776581 0.580414 0.809418 0.776672 0.614685 0.809967 0.776764 0.646484 0.810516 0.776855 0.676239 0.811096 0.776947 0.704163 0.811676 0.777069 0.730530 0.812164 0.777130 0.755585 0.812714 0.777252 0.779572 0.813263 0.777344 0.802673 0.813782 0.777466 0.825073 0.814270 0.777527 0.847015 0.814758 0.777618 0.868805 0.815308 0.777710 0.890564 0.815796 0.777802 0.912628 0.816254 0.777893 0.935547 0.816711 0.777954 0.959961 0.817200 0.778046 0.069092 0.826477 0.771881 0.086731 0.826996 0.772003 0.105988 0.827515 0.772156 0.127197 0.828064 0.772247 0.150574 0.828552 0.772369 0.176575 0.829102 0.772430 0.205231 0.829559 0.772614 0.236511 0.830109 0.772736 0.270111 0.830627 0.772827 0.305969 0.831116 0.772949 0.343658 0.831635 0.773102 0.383057 0.832123 0.773193 0.423859 0.832611 0.773285 0.465454 0.833099 0.773376 0.506683 0.833618 0.773529 0.545593 0.834106 0.773621 0.582123 0.834564 0.773743 0.616150 0.835022 0.773834 0.647766 0.835510 0.773956 0.677307 0.835968 0.774048 0.705078 0.836395 0.774170 0.731323 0.836884 0.774261 0.756226 0.837311 0.774384 0.780121 0.837738 0.774506 0.803131 0.838165 0.774597 0.825500 0.838593 0.774689 0.847382 0.839020 0.774780 0.869019 0.839386 0.774872 0.890747 0.839813 0.774963 0.912781 0.840210 0.775055 0.935577 0.840576 0.775146 0.959961 0.840912 0.775208 0.070831 0.852081 0.768982 0.088562 0.852478 0.769073 0.107941 0.852936 0.769196 0.129242 0.853363 0.769287 0.152832 0.853790 0.769440 0.178955 0.854248 0.769592 0.207794 0.854645 0.769714 0.239044 0.855042 0.769836 0.272797 0.855499 0.769989 0.308624 0.855896 0.770111 0.346344 0.856354 0.770172 0.385712 0.856750 0.770325 0.426361 0.857147 0.770477 0.467896 0.857574 0.770569 0.508911 0.857941 0.770691 0.547546 0.858337 0.770813 0.583771 0.858734 0.770905 0.617615 0.859131 0.771057 0.649017 0.859497 0.771149 0.678375 0.859894 0.771271 0.705994 0.860260 0.771423 0.732086 0.860596 0.771515 0.756927 0.860992 0.771637 0.780701 0.861328 0.771729 0.803589 0.861633 0.771820 0.825836 0.862030 0.771912 0.847687 0.862335 0.772034 0.869293 0.862671 0.772125 0.890900 0.863007 0.772217 0.912872 0.863312 0.772308 0.935669 0.863617 0.772430 0.959961 0.863953 0.772491 0.072632 0.876801 0.766083 0.090424 0.877136 0.766205 0.109924 0.877502 0.766357 0.131378 0.877838 0.766510 0.155090 0.878204 0.766632 0.181366 0.878540 0.766754 0.210297 0.878906 0.766907 0.241669 0.879211 0.767059 0.275421 0.879608 0.767151 0.311310 0.879913 0.767303 0.348999 0.880280 0.767487 0.388336 0.880585 0.767578 0.428894 0.880890 0.767700 0.470276 0.881256 0.767822 0.511078 0.881531 0.767944 0.549377 0.881897 0.768097 0.585419 0.882202 0.768188 0.619019 0.882538 0.768341 0.650208 0.882812 0.768463 0.679413 0.883118 0.768585 0.706879 0.883423 0.768707 0.732819 0.883698 0.768799 0.757599 0.884003 0.768921 0.781219 0.884277 0.769043 0.804047 0.884583 0.769135 0.826233 0.884827 0.769257 0.847992 0.885071 0.769318 0.869507 0.885376 0.769440 0.891052 0.885620 0.769592 0.912994 0.885864 0.769653 0.935699 0.886108 0.769775 0.959961 0.886322 0.769867 0.074371 0.901001 0.763306 0.092285 0.901245 0.763458 0.111908 0.901550 0.763611 0.133484 0.901825 0.763733 0.157318 0.902100 0.763916 0.183746 0.902374 0.764038 0.212769 0.902649 0.764160 0.244232 0.902893 0.764313 0.278015 0.903198 0.764496 0.313873 0.903473 0.764618 0.351562 0.903717 0.764740 0.390900 0.903992 0.764893 0.431366 0.904236 0.765015 0.472626 0.904510 0.765137 0.513153 0.904724 0.765259 0.551270 0.904999 0.765381 0.587036 0.905212 0.765533 0.620361 0.905487 0.765686 0.651428 0.905701 0.765778 0.680420 0.905914 0.765900 0.707733 0.906158 0.766022 0.733551 0.906372 0.766144 0.758179 0.906586 0.766296 0.781738 0.906830 0.766418 0.804474 0.907043 0.766479 0.826569 0.907227 0.766602 0.848236 0.907440 0.766754 0.869720 0.907654 0.766815 0.891266 0.907837 0.766937 0.913116 0.908020 0.766998 0.935822 0.908203 0.767120 0.959961 0.908386 0.767212 0.076141 0.924957 0.760559 0.094147 0.925140 0.760712 0.113861 0.925354 0.760895 0.135559 0.925568 0.761047 0.159485 0.925812 0.761169 0.186127 0.925995 0.761322 0.215240 0.926178 0.761475 0.246765 0.926392 0.761627 0.280609 0.926605 0.761749 0.316437 0.926758 0.761902 0.354156 0.926971 0.762054 0.393341 0.927155 0.762207 0.433807 0.927368 0.762329 0.474884 0.927551 0.762451 0.515198 0.927734 0.762634 0.553009 0.927917 0.762756 0.588562 0.928101 0.762878 0.621674 0.928253 0.763000 0.652527 0.928436 0.763153 0.681366 0.928619 0.763275 0.708527 0.928772 0.763397 0.734253 0.928955 0.763519 0.758759 0.929108 0.763611 0.782196 0.929291 0.763733 0.804871 0.929413 0.763885 0.826904 0.929565 0.763977 0.848511 0.929688 0.764099 0.869934 0.929840 0.764191 0.891388 0.930023 0.764282 0.913239 0.930145 0.764343 0.935822 0.930298 0.764465 0.959961 0.930420 0.764587 0.077911 0.949005 0.757812 0.096008 0.949188 0.757965 0.115845 0.949341 0.758118 0.137634 0.949493 0.758240 0.161743 0.949615 0.758423 0.188416 0.949768 0.758606 0.217651 0.949890 0.758728 0.249237 0.950043 0.758881 0.283112 0.950165 0.759033 0.319000 0.950287 0.759216 0.356659 0.950378 0.759338 0.395844 0.950531 0.759491 0.436218 0.950653 0.759644 0.477142 0.950806 0.759766 0.517151 0.950897 0.759918 0.554779 0.951019 0.760040 0.590088 0.951141 0.760193 0.622955 0.951294 0.760315 0.653625 0.951385 0.760468 0.682281 0.951508 0.760590 0.709320 0.951599 0.760681 0.734955 0.951721 0.760803 0.759338 0.951813 0.760956 0.782715 0.951935 0.761078 0.805267 0.952026 0.761169 0.827209 0.952148 0.761292 0.848785 0.952240 0.761383 0.870148 0.952332 0.761475 0.891541 0.952423 0.761566 0.913361 0.952515 0.761719 0.935883 0.952576 0.761810 0.959961 0.952637 0.761902 0.079651 0.973846 0.754883 0.097839 0.973877 0.755066 0.117798 0.973969 0.755280 0.139709 0.974030 0.755463 0.163879 0.974121 0.755585 0.190735 0.974182 0.755737 0.220001 0.974243 0.755890 0.251678 0.974304 0.756073 0.285614 0.974396 0.756226 0.321472 0.974426 0.756378 0.359131 0.974518 0.756531 0.398193 0.974579 0.756683 0.438507 0.974609 0.756836 0.479340 0.974701 0.756989 0.519073 0.974762 0.757111 0.556427 0.974854 0.757263 0.591522 0.974884 0.757416 0.624207 0.974976 0.757538 0.654633 0.975006 0.757629 0.683197 0.975067 0.757782 0.710083 0.975098 0.757935 0.735596 0.975189 0.758057 0.759857 0.975220 0.758148 0.783173 0.975281 0.758270 0.805634 0.975311 0.758392 0.827545 0.975342 0.758484 0.849030 0.975403 0.758606 0.870331 0.975464 0.758728 0.891663 0.975494 0.758820 0.913422 0.975494 0.758911 0.935944 0.975586 0.759003 0.959961 0.975616 0.759064 0.081421 1.000000 0.751892 0.099701 1.000000 0.752045 0.119690 1.000000 0.752228 0.141693 1.000000 0.752380 0.166077 1.000000 0.752533 0.193024 1.000000 0.752747 0.222351 1.000000 0.752899 0.254120 1.000000 0.753052 0.288055 1.000000 0.753235 0.323883 1.000000 0.753357 0.361511 1.000000 0.753540 0.400574 1.000000 0.753693 0.440735 1.000000 0.753815 0.481415 1.000000 0.753998 0.520874 1.000000 0.754150 0.558014 1.000000 0.754272 0.592865 1.000000 0.754395 0.625366 1.000000 0.754547 0.655670 1.000000 0.754700 0.684052 1.000000 0.754822 0.710815 1.000000 0.754944 0.736206 1.000000 0.755066 0.760376 1.000000 0.755188 0.783600 1.000000 0.755280 0.806000 1.000000 0.755371 0.827850 1.000000 0.755554 0.849274 1.000000 0.755646 0.870483 1.000000 0.755737 0.891815 1.000000 0.755798 0.913513 1.000000 0.755890 0.936005 1.000000 0.756012 0.959961 1.000000 0.756104 0.034790 0.006134 0.895325 0.050446 0.006897 0.895325 0.067352 0.007690 0.895294 0.085754 0.008484 0.895325 0.105957 0.009338 0.895294 0.128357 0.010193 0.895294 0.153290 0.011047 0.895294 0.181183 0.011963 0.895264 0.212128 0.012878 0.895233 0.246002 0.013794 0.895203 0.282593 0.014801 0.895264 0.321564 0.015747 0.895233 0.362762 0.016754 0.895233 0.405701 0.017822 0.895203 0.450073 0.018829 0.895233 0.494751 0.019928 0.895203 0.537292 0.020996 0.895172 0.576996 0.022095 0.895172 0.613953 0.023224 0.895172 0.648163 0.024353 0.895142 0.679962 0.025513 0.895111 0.709686 0.026733 0.895111 0.737732 0.027863 0.895111 0.764374 0.029083 0.895050 0.789825 0.030334 0.895050 0.814392 0.031555 0.895020 0.838287 0.032837 0.895020 0.861847 0.034119 0.894989 0.885284 0.035400 0.894928 0.909088 0.036713 0.894928 0.933655 0.038025 0.894928 0.959961 0.039368 0.894867 0.035736 0.022736 0.893341 0.051483 0.023560 0.893372 0.068420 0.024414 0.893341 0.086914 0.025269 0.893311 0.107239 0.026154 0.893311 0.129791 0.027069 0.893311 0.154846 0.028015 0.893280 0.182892 0.028961 0.893250 0.213989 0.029938 0.893311 0.247955 0.030975 0.893250 0.284607 0.032013 0.893250 0.323700 0.033020 0.893219 0.364899 0.034088 0.893250 0.407898 0.035187 0.893219 0.452148 0.036316 0.893158 0.496704 0.037445 0.893158 0.539062 0.038605 0.893188 0.578552 0.039795 0.893158 0.615326 0.040955 0.893127 0.649292 0.042175 0.893097 0.680939 0.043365 0.893097 0.710571 0.044647 0.893036 0.738495 0.045898 0.893005 0.765015 0.047211 0.892975 0.790405 0.048492 0.892975 0.814850 0.049835 0.892944 0.838684 0.051178 0.892883 0.862152 0.052521 0.892853 0.885559 0.053894 0.892883 0.909271 0.055267 0.892822 0.933746 0.056671 0.892761 0.959961 0.058075 0.892761 0.036743 0.040344 0.891266 0.052551 0.041229 0.891266 0.069611 0.042175 0.891235 0.088165 0.043091 0.891205 0.108643 0.044067 0.891174 0.131256 0.045044 0.891144 0.156464 0.046082 0.891205 0.184692 0.047119 0.891144 0.215881 0.048157 0.891144 0.249939 0.049255 0.891113 0.286743 0.050354 0.891144 0.325897 0.051483 0.891083 0.367157 0.052612 0.891052 0.410095 0.053833 0.891022 0.454346 0.054993 0.890991 0.498718 0.056244 0.891022 0.540833 0.057434 0.890991 0.580170 0.058685 0.890930 0.616699 0.059998 0.890930 0.650482 0.061279 0.890869 0.682007 0.062622 0.890808 0.711487 0.063965 0.890808 0.739319 0.065308 0.890778 0.765686 0.066681 0.890747 0.790955 0.068115 0.890686 0.815338 0.069489 0.890656 0.839081 0.070923 0.890656 0.862457 0.072357 0.890564 0.885742 0.073853 0.890533 0.909393 0.075348 0.890503 0.933838 0.076843 0.890472 0.959961 0.078369 0.890381 0.037781 0.059296 0.889008 0.053680 0.060272 0.888947 0.070801 0.061279 0.888947 0.089508 0.062317 0.888916 0.110046 0.063416 0.888947 0.132812 0.064484 0.888916 0.158203 0.065582 0.888885 0.186554 0.066711 0.888855 0.217896 0.067871 0.888794 0.252075 0.069031 0.888794 0.288910 0.070282 0.888763 0.328156 0.071503 0.888733 0.369415 0.072723 0.888672 0.412354 0.074036 0.888702 0.456512 0.075287 0.888672 0.500824 0.076630 0.888611 0.542664 0.077972 0.888580 0.581757 0.079346 0.888519 0.618073 0.080750 0.888458 0.651703 0.082123 0.888397 0.683014 0.083588 0.888397 0.712372 0.085022 0.888367 0.740082 0.086487 0.888306 0.766388 0.087982 0.888275 0.791504 0.089508 0.888245 0.815796 0.091003 0.888153 0.839478 0.092590 0.888092 0.862793 0.094116 0.888062 0.885986 0.095703 0.888000 0.909576 0.097351 0.887939 0.933960 0.098907 0.887878 0.959961 0.100586 0.887848 0.038910 0.080017 0.886475 0.054871 0.081116 0.886475 0.072083 0.082214 0.886475 0.090851 0.083374 0.886444 0.111542 0.084534 0.886414 0.134399 0.085724 0.886353 0.159912 0.086975 0.886322 0.188477 0.088226 0.886322 0.219940 0.089447 0.886261 0.254272 0.090759 0.886230 0.291229 0.092133 0.886169 0.330414 0.093445 0.886139 0.371735 0.094818 0.886078 0.414703 0.096191 0.886078 0.458801 0.097656 0.886017 0.502899 0.099060 0.885956 0.544525 0.100555 0.885895 0.583405 0.102051 0.885834 0.619507 0.103577 0.885803 0.652985 0.105103 0.885742 0.684113 0.106659 0.885681 0.713318 0.108276 0.885620 0.740814 0.109833 0.885590 0.767029 0.111481 0.885498 0.792084 0.113129 0.885437 0.816254 0.114746 0.885406 0.839844 0.116486 0.885284 0.863068 0.118134 0.885223 0.886261 0.119904 0.885162 0.909729 0.121643 0.885101 0.933990 0.123383 0.885010 0.959961 0.125183 0.884888 0.040039 0.102936 0.883789 0.056061 0.104156 0.883759 0.073395 0.105347 0.883698 0.092285 0.106628 0.883636 0.113068 0.107971 0.883575 0.136108 0.109253 0.883575 0.161804 0.110626 0.883514 0.190491 0.112030 0.883453 0.222076 0.113434 0.883392 0.256531 0.114868 0.883362 0.293549 0.116333 0.883301 0.332825 0.117798 0.883240 0.374146 0.119354 0.883209 0.417023 0.120850 0.883148 0.461151 0.122406 0.883057 0.505035 0.124023 0.882965 0.546387 0.125610 0.882935 0.585052 0.127289 0.882843 0.620941 0.128967 0.882782 0.654205 0.130646 0.882690 0.685181 0.132355 0.882660 0.714264 0.134125 0.882538 0.741669 0.135834 0.882477 0.767731 0.137634 0.882416 0.792664 0.139404 0.882324 0.816772 0.141235 0.882233 0.840240 0.143097 0.882141 0.863403 0.144928 0.882080 0.886475 0.146851 0.881927 0.909851 0.148743 0.881836 0.934082 0.150635 0.881744 0.959961 0.152588 0.881653 0.041321 0.128510 0.880676 0.057404 0.129852 0.880615 0.074799 0.131226 0.880585 0.093811 0.132660 0.880524 0.114685 0.134155 0.880463 0.137878 0.135590 0.880402 0.163696 0.137085 0.880341 0.192535 0.138641 0.880280 0.224274 0.140198 0.880188 0.258820 0.141785 0.880127 0.295898 0.143402 0.880096 0.335236 0.145081 0.880005 0.376556 0.146790 0.879883 0.419464 0.148438 0.879791 0.463470 0.150177 0.879761 0.507172 0.151978 0.879639 0.548309 0.153717 0.879578 0.586731 0.155548 0.879456 0.622406 0.157379 0.879395 0.655487 0.159241 0.879272 0.686279 0.161133 0.879181 0.715179 0.163055 0.879120 0.742432 0.164948 0.878998 0.768402 0.166901 0.878906 0.793274 0.168884 0.878754 0.817261 0.170868 0.878693 0.840698 0.172913 0.878540 0.863739 0.174896 0.878448 0.886749 0.176971 0.878326 0.910065 0.179077 0.878204 0.934174 0.181152 0.878082 0.959961 0.183258 0.877960 0.042542 0.157257 0.877197 0.058716 0.158813 0.877136 0.076202 0.160339 0.877075 0.095337 0.161926 0.876984 0.116364 0.163544 0.876892 0.139679 0.165192 0.876831 0.165680 0.166870 0.876740 0.194702 0.168640 0.876617 0.226562 0.170349 0.876587 0.261230 0.172150 0.876465 0.298340 0.173889 0.876343 0.337708 0.175751 0.876251 0.379059 0.177612 0.876190 0.421936 0.179504 0.876068 0.465851 0.181427 0.875946 0.509308 0.183380 0.875854 0.550262 0.185303 0.875763 0.588440 0.187317 0.875641 0.623840 0.189392 0.875519 0.656738 0.191376 0.875458 0.687378 0.193451 0.875305 0.716095 0.195496 0.875153 0.743256 0.197632 0.875031 0.769104 0.199738 0.874939 0.793854 0.201874 0.874786 0.817749 0.204041 0.874664 0.841064 0.206238 0.874512 0.864044 0.208435 0.874390 0.886963 0.210632 0.874268 0.910217 0.212921 0.874115 0.934296 0.215118 0.873962 0.959961 0.217377 0.873840 0.043854 0.189758 0.873199 0.060120 0.191467 0.873108 0.077698 0.193207 0.873016 0.096924 0.194977 0.872925 0.118103 0.196777 0.872864 0.141541 0.198608 0.872742 0.167725 0.200470 0.872620 0.196869 0.202332 0.872559 0.228882 0.204285 0.872406 0.263611 0.206207 0.872284 0.300842 0.208191 0.872223 0.340240 0.210205 0.872070 0.381561 0.212250 0.871948 0.424408 0.214294 0.871826 0.468231 0.216400 0.871735 0.511505 0.218506 0.871582 0.552185 0.220581 0.871460 0.590088 0.222778 0.871368 0.625366 0.224945 0.871216 0.658020 0.227112 0.871033 0.688446 0.229309 0.870911 0.717010 0.231537 0.870819 0.744080 0.233795 0.870636 0.769806 0.236084 0.870483 0.794434 0.238312 0.870331 0.818237 0.240631 0.870178 0.841492 0.242981 0.870056 0.864380 0.245239 0.869904 0.887207 0.247589 0.869751 0.910400 0.250000 0.869598 0.934357 0.252289 0.869446 0.959961 0.254700 0.869293 0.045227 0.226105 0.868744 0.061554 0.228027 0.868652 0.079224 0.229858 0.868561 0.098541 0.231781 0.868439 0.119873 0.233795 0.868286 0.143463 0.235718 0.868225 0.169861 0.237762 0.868042 0.199127 0.239777 0.867950 0.231262 0.241882 0.867859 0.266083 0.243988 0.867706 0.303375 0.246094 0.867554 0.342834 0.248199 0.867432 0.384155 0.250427 0.867279 0.426941 0.252533 0.867157 0.470703 0.254761 0.867035 0.513702 0.257050 0.866913 0.554138 0.259277 0.866730 0.591827 0.261566 0.866577 0.626831 0.263794 0.866425 0.659271 0.266174 0.866302 0.689606 0.268494 0.866119 0.718018 0.270752 0.865967 0.744904 0.273163 0.865784 0.770508 0.275513 0.865631 0.795013 0.277893 0.865509 0.818756 0.280273 0.865356 0.841858 0.282684 0.865204 0.864655 0.285065 0.865051 0.887451 0.287476 0.864899 0.910553 0.289886 0.864685 0.934448 0.292328 0.864532 0.959961 0.294739 0.864380 0.046600 0.266083 0.863861 0.063019 0.268066 0.863708 0.080811 0.270081 0.863586 0.100220 0.272156 0.863464 0.121674 0.274139 0.863312 0.145416 0.276306 0.863190 0.171936 0.278412 0.863098 0.201416 0.280548 0.862915 0.233704 0.282745 0.862793 0.268646 0.284973 0.862640 0.305969 0.287170 0.862518 0.345490 0.289459 0.862366 0.386749 0.291748 0.862213 0.429565 0.294006 0.862091 0.473175 0.296295 0.861908 0.515961 0.298584 0.861755 0.556091 0.300934 0.861603 0.593567 0.303314 0.861481 0.628265 0.305664 0.861298 0.660522 0.308044 0.861115 0.690704 0.310516 0.860931 0.718933 0.312866 0.860779 0.745728 0.315277 0.860657 0.771179 0.317749 0.860504 0.795624 0.320160 0.860321 0.819214 0.322601 0.860168 0.842285 0.325104 0.859955 0.865021 0.327515 0.859802 0.887726 0.329956 0.859650 0.910706 0.332397 0.859467 0.934509 0.334869 0.859314 0.959961 0.337280 0.859161 0.048035 0.309204 0.858490 0.064575 0.311340 0.858368 0.082397 0.313416 0.858215 0.101959 0.315552 0.858093 0.123505 0.317688 0.858002 0.147461 0.319885 0.857819 0.174164 0.322144 0.857666 0.203766 0.324371 0.857483 0.236176 0.326599 0.857391 0.271210 0.328888 0.857239 0.308624 0.331177 0.857086 0.348083 0.333527 0.856964 0.389435 0.335846 0.856781 0.432098 0.338165 0.856628 0.475677 0.340546 0.856445 0.518158 0.342896 0.856323 0.558075 0.345276 0.856171 0.595245 0.347748 0.855957 0.629761 0.350098 0.855804 0.661835 0.352539 0.855652 0.691803 0.354950 0.855499 0.719910 0.357330 0.855347 0.746552 0.359833 0.855164 0.771881 0.362305 0.854950 0.796173 0.364685 0.854828 0.819702 0.367188 0.854645 0.842651 0.369598 0.854492 0.865295 0.372070 0.854309 0.887939 0.374542 0.854156 0.910889 0.376953 0.853973 0.934601 0.379456 0.853821 0.959961 0.381866 0.853668 0.049530 0.355103 0.852814 0.066071 0.357208 0.852692 0.084045 0.359375 0.852570 0.103760 0.361633 0.852386 0.125488 0.363800 0.852264 0.149597 0.366089 0.852081 0.176422 0.368347 0.851959 0.206146 0.370605 0.851807 0.238678 0.372894 0.851654 0.273804 0.375275 0.851532 0.311218 0.377502 0.851349 0.350800 0.379883 0.851196 0.392029 0.382202 0.851013 0.434753 0.384583 0.850891 0.478149 0.386963 0.850739 0.520416 0.389313 0.850555 0.560028 0.391754 0.850403 0.596954 0.394165 0.850220 0.631256 0.396545 0.850067 0.663147 0.398987 0.849915 0.692902 0.401398 0.849762 0.720856 0.403839 0.849548 0.747375 0.406281 0.849426 0.772583 0.408661 0.849274 0.796783 0.411072 0.849091 0.820221 0.413513 0.848938 0.843079 0.415924 0.848755 0.865662 0.418304 0.848602 0.888184 0.420776 0.848450 0.911011 0.423157 0.848297 0.934723 0.425598 0.848114 0.959961 0.427979 0.847961 0.051025 0.403198 0.846863 0.067688 0.405396 0.846710 0.085754 0.407562 0.846527 0.105591 0.409851 0.846405 0.127411 0.412048 0.846283 0.151703 0.414276 0.846130 0.178711 0.416595 0.845978 0.208618 0.418823 0.845856 0.241241 0.421173 0.845673 0.276489 0.423431 0.845520 0.313934 0.425690 0.845367 0.353455 0.428070 0.845245 0.394745 0.430328 0.845123 0.437347 0.432739 0.844910 0.480652 0.435120 0.844757 0.522644 0.437439 0.844574 0.562012 0.439819 0.844452 0.598694 0.442200 0.844299 0.632751 0.444519 0.844147 0.664429 0.446930 0.843964 0.694000 0.449280 0.843842 0.721802 0.451630 0.843689 0.748138 0.454041 0.843536 0.773224 0.456360 0.843384 0.797363 0.458710 0.843201 0.820648 0.461151 0.843018 0.843445 0.463379 0.842926 0.865936 0.465759 0.842743 0.888428 0.468109 0.842590 0.911194 0.470398 0.842438 0.934814 0.472748 0.842255 0.959961 0.475006 0.842102 0.052582 0.453033 0.840637 0.069275 0.455200 0.840515 0.087494 0.457428 0.840363 0.107452 0.459564 0.840240 0.129395 0.461731 0.840118 0.153870 0.463989 0.839996 0.181030 0.466217 0.839844 0.211090 0.468414 0.839661 0.243835 0.470642 0.839539 0.279114 0.472870 0.839417 0.316650 0.475159 0.839294 0.356232 0.477386 0.839111 0.397430 0.479675 0.838959 0.440033 0.481934 0.838806 0.483154 0.484192 0.838684 0.524872 0.486450 0.838562 0.563904 0.488739 0.838409 0.600372 0.491028 0.838226 0.634186 0.493256 0.838104 0.665680 0.495514 0.837952 0.695068 0.497803 0.837799 0.722748 0.500000 0.837708 0.748932 0.502258 0.837524 0.773895 0.504456 0.837402 0.797913 0.506744 0.837219 0.821167 0.508911 0.837128 0.843872 0.511078 0.837006 0.866241 0.513245 0.836884 0.888672 0.515381 0.836731 0.911346 0.517456 0.836609 0.934875 0.519623 0.836456 0.959961 0.521698 0.836334 0.054169 0.503571 0.834381 0.070984 0.505585 0.834259 0.089264 0.507660 0.834137 0.109375 0.509766 0.833984 0.131439 0.511810 0.833923 0.156067 0.513855 0.833771 0.183441 0.515991 0.833649 0.213562 0.518036 0.833557 0.246460 0.520081 0.833435 0.281799 0.522156 0.833282 0.319397 0.524261 0.833160 0.358978 0.526306 0.833038 0.400146 0.528320 0.832947 0.442688 0.530396 0.832855 0.485718 0.532501 0.832733 0.527069 0.534485 0.832581 0.565918 0.536560 0.832458 0.602081 0.538574 0.832367 0.635651 0.540558 0.832245 0.666931 0.542572 0.832184 0.696136 0.544525 0.832062 0.723663 0.546539 0.831909 0.749725 0.548523 0.831787 0.774628 0.550385 0.831757 0.798523 0.552399 0.831635 0.821625 0.554321 0.831543 0.844269 0.556213 0.831421 0.866577 0.558044 0.831329 0.888885 0.559967 0.831238 0.911530 0.561798 0.831116 0.934967 0.563660 0.831024 0.959961 0.565430 0.830994 0.055786 0.551941 0.828400 0.072693 0.553711 0.828278 0.091095 0.555573 0.828217 0.111267 0.557404 0.828125 0.133545 0.559204 0.828033 0.158295 0.561066 0.827972 0.185852 0.562897 0.827850 0.216125 0.564728 0.827759 0.249146 0.566528 0.827667 0.284454 0.568329 0.827576 0.322144 0.570129 0.827545 0.361725 0.571960 0.827454 0.402863 0.573792 0.827332 0.445282 0.575592 0.827240 0.488190 0.577423 0.827148 0.529297 0.579132 0.827087 0.567810 0.580902 0.827026 0.603760 0.582733 0.826965 0.637146 0.584442 0.826874 0.668152 0.586182 0.826752 0.697266 0.587952 0.826691 0.724579 0.589630 0.826660 0.750519 0.591400 0.826569 0.775269 0.593048 0.826477 0.799042 0.594727 0.826416 0.822113 0.596375 0.826324 0.844635 0.598022 0.826294 0.866852 0.599609 0.826202 0.889099 0.601288 0.826141 0.911713 0.602875 0.826050 0.935089 0.604431 0.826019 0.959961 0.605988 0.825928 0.057404 0.596619 0.822906 0.074371 0.598175 0.822784 0.092926 0.599823 0.822723 0.113251 0.601440 0.822693 0.135681 0.602966 0.822662 0.160553 0.604614 0.822571 0.188263 0.606201 0.822510 0.218689 0.607758 0.822449 0.251770 0.609406 0.822418 0.287231 0.610962 0.822357 0.324890 0.612518 0.822296 0.364471 0.614136 0.822235 0.405609 0.615631 0.822205 0.447937 0.617218 0.822144 0.490601 0.618774 0.822083 0.531403 0.620300 0.822083 0.569763 0.621857 0.821960 0.605438 0.623383 0.821930 0.638550 0.624908 0.821869 0.669434 0.626404 0.821869 0.698273 0.627869 0.821838 0.725494 0.629364 0.821747 0.751312 0.630829 0.821716 0.775940 0.632263 0.821655 0.799622 0.633698 0.821655 0.822571 0.635162 0.821594 0.845001 0.636536 0.821564 0.867218 0.637909 0.821503 0.889343 0.639313 0.821472 0.911835 0.640656 0.821411 0.935150 0.641998 0.821381 0.959961 0.643280 0.821381 0.059021 0.637726 0.817810 0.076141 0.639069 0.817810 0.094757 0.640472 0.817780 0.115234 0.641846 0.817719 0.137787 0.643219 0.817688 0.162872 0.644623 0.817657 0.190674 0.645935 0.817657 0.221283 0.647339 0.817627 0.254486 0.648743 0.817596 0.289978 0.650024 0.817566 0.327698 0.651428 0.817566 0.367249 0.652740 0.817535 0.408325 0.654114 0.817474 0.450592 0.655426 0.817505 0.493073 0.656769 0.817444 0.533600 0.658051 0.817413 0.571655 0.659393 0.817413 0.607086 0.660675 0.817383 0.639954 0.661987 0.817413 0.670593 0.663269 0.817352 0.699310 0.664490 0.817322 0.726410 0.665771 0.817291 0.752106 0.667023 0.817322 0.776611 0.668243 0.817291 0.800171 0.669464 0.817291 0.822998 0.670715 0.817230 0.845367 0.671875 0.817261 0.867462 0.673035 0.817230 0.889557 0.674194 0.817200 0.911987 0.675354 0.817169 0.935211 0.676483 0.817200 0.959961 0.677582 0.817169 0.060730 0.675323 0.813263 0.077911 0.676483 0.813232 0.096680 0.677673 0.813202 0.117279 0.678864 0.813202 0.139954 0.680023 0.813232 0.165192 0.681213 0.813232 0.193207 0.682373 0.813232 0.223877 0.683533 0.813232 0.257172 0.684723 0.813232 0.292725 0.685883 0.813232 0.330444 0.687042 0.813202 0.369965 0.688202 0.813232 0.411011 0.689301 0.813202 0.453186 0.690491 0.813202 0.495483 0.691620 0.813171 0.535706 0.692749 0.813232 0.573517 0.693848 0.813263 0.608673 0.694946 0.813232 0.641388 0.696014 0.813232 0.671875 0.697144 0.813232 0.700348 0.698181 0.813263 0.727295 0.699249 0.813263 0.752808 0.700348 0.813263 0.777222 0.701385 0.813263 0.800720 0.702423 0.813263 0.823486 0.703461 0.813263 0.845734 0.704468 0.813263 0.867767 0.705444 0.813263 0.889771 0.706421 0.813263 0.912109 0.707428 0.813263 0.935303 0.708374 0.813263 0.959961 0.709290 0.813263 0.062439 0.709869 0.809021 0.079712 0.710876 0.809052 0.098572 0.711884 0.809082 0.119293 0.712952 0.809113 0.142151 0.713898 0.809143 0.167542 0.714966 0.809143 0.195679 0.715912 0.809143 0.226501 0.716949 0.809174 0.259857 0.717957 0.809174 0.295502 0.718933 0.809235 0.333252 0.719910 0.809235 0.372803 0.720917 0.809265 0.413757 0.721893 0.809265 0.455811 0.722839 0.809326 0.497894 0.723785 0.809387 0.537903 0.724762 0.809326 0.575378 0.725708 0.809357 0.610291 0.726654 0.809387 0.642761 0.727600 0.809418 0.673004 0.728516 0.809448 0.701385 0.729401 0.809479 0.728149 0.730347 0.809509 0.753601 0.731232 0.809540 0.777863 0.732086 0.809509 0.801208 0.733032 0.809540 0.823883 0.733856 0.809570 0.846100 0.734711 0.809601 0.868042 0.735565 0.809601 0.889954 0.736359 0.809631 0.912262 0.737213 0.809631 0.935364 0.738007 0.809692 0.959961 0.738800 0.809723 0.064148 0.741913 0.805176 0.081543 0.742767 0.805237 0.100525 0.743652 0.805267 0.121307 0.744476 0.805298 0.144348 0.745361 0.805328 0.169891 0.746246 0.805359 0.198181 0.747070 0.805389 0.229156 0.747955 0.805481 0.262543 0.748810 0.805481 0.298218 0.749634 0.805511 0.335999 0.750519 0.805542 0.375519 0.751312 0.805603 0.416412 0.752136 0.805634 0.458405 0.752960 0.805664 0.500214 0.753784 0.805725 0.539917 0.754608 0.805756 0.577209 0.755432 0.805817 0.611908 0.756195 0.805878 0.644135 0.757019 0.805878 0.674164 0.757812 0.805939 0.702393 0.758545 0.806000 0.729034 0.759338 0.805969 0.754303 0.760101 0.806030 0.778473 0.760834 0.806061 0.801727 0.761566 0.806122 0.824310 0.762268 0.806152 0.846405 0.763000 0.806183 0.868286 0.763702 0.806213 0.890198 0.764435 0.806274 0.912384 0.765137 0.806305 0.935425 0.765778 0.806335 0.959961 0.766479 0.806335 0.065887 0.771820 0.801575 0.083374 0.772583 0.801636 0.102448 0.773285 0.801697 0.123413 0.774048 0.801758 0.146545 0.774750 0.801819 0.172302 0.775482 0.801880 0.200714 0.776184 0.801941 0.231720 0.776947 0.801941 0.265228 0.777679 0.802002 0.300995 0.778412 0.802094 0.338745 0.779114 0.802124 0.378265 0.779816 0.802185 0.419067 0.780548 0.802246 0.460938 0.781219 0.802307 0.502563 0.781891 0.802368 0.541962 0.782623 0.802399 0.578949 0.783295 0.802460 0.613434 0.783936 0.802521 0.645477 0.784607 0.802612 0.675323 0.785278 0.802612 0.703369 0.785919 0.802643 0.729858 0.786560 0.802704 0.755005 0.787231 0.802795 0.779083 0.787842 0.802826 0.802277 0.788483 0.802856 0.824738 0.789062 0.802917 0.846802 0.789703 0.802979 0.868561 0.790283 0.803040 0.890381 0.790833 0.803040 0.912537 0.791412 0.803101 0.935486 0.791992 0.803162 0.959961 0.792542 0.803192 0.067627 0.799927 0.798248 0.085205 0.800598 0.798309 0.104401 0.801208 0.798370 0.125488 0.801819 0.798431 0.148804 0.802460 0.798523 0.174652 0.803070 0.798553 0.203156 0.803711 0.798615 0.234406 0.804291 0.798737 0.267975 0.804932 0.798767 0.303680 0.805481 0.798859 0.341461 0.806122 0.798920 0.380890 0.806671 0.799011 0.421722 0.807312 0.799072 0.463470 0.807892 0.799133 0.504822 0.808472 0.799194 0.544006 0.809052 0.799255 0.580688 0.809601 0.799347 0.614899 0.810181 0.799377 0.646759 0.810730 0.799438 0.676422 0.811310 0.799469 0.704315 0.811859 0.799591 0.730652 0.812378 0.799652 0.755707 0.812866 0.799683 0.779633 0.813477 0.799744 0.802734 0.813965 0.799835 0.825134 0.814453 0.799896 0.847076 0.814972 0.799896 0.868866 0.815460 0.799957 0.890564 0.815948 0.800049 0.912659 0.816406 0.800079 0.935547 0.816895 0.800140 0.959961 0.817352 0.800171 0.069366 0.826660 0.795044 0.087067 0.827179 0.795166 0.106384 0.827698 0.795227 0.127563 0.828247 0.795288 0.151031 0.828766 0.795380 0.177032 0.829254 0.795471 0.205750 0.829803 0.795532 0.236969 0.830292 0.795624 0.270630 0.830811 0.795715 0.306427 0.831299 0.795807 0.344208 0.831848 0.795898 0.383575 0.832306 0.795959 0.424286 0.832794 0.796051 0.465912 0.833313 0.796082 0.507080 0.833771 0.796173 0.545990 0.834259 0.796234 0.582428 0.834717 0.796295 0.616425 0.835205 0.796356 0.647980 0.835663 0.796478 0.677521 0.836121 0.796539 0.705231 0.836578 0.796631 0.731445 0.837036 0.796692 0.756378 0.837463 0.796753 0.780243 0.837891 0.796814 0.803192 0.838318 0.796875 0.825531 0.838745 0.796936 0.847443 0.839172 0.796997 0.869049 0.839569 0.797089 0.890778 0.839935 0.797150 0.912781 0.840332 0.797211 0.935577 0.840698 0.797241 0.959961 0.841095 0.797302 0.071167 0.852203 0.792053 0.088928 0.852631 0.792084 0.108337 0.853088 0.792175 0.129669 0.853516 0.792297 0.153290 0.853943 0.792419 0.179443 0.854401 0.792511 0.208221 0.854797 0.792603 0.239624 0.855194 0.792694 0.273254 0.855652 0.792755 0.309082 0.856049 0.792877 0.346863 0.856506 0.792938 0.386200 0.856873 0.793030 0.426910 0.857269 0.793121 0.468353 0.857727 0.793213 0.509277 0.858063 0.793274 0.547913 0.858521 0.793335 0.584137 0.858887 0.793488 0.617859 0.859253 0.793518 0.649261 0.859650 0.793610 0.678619 0.860016 0.793671 0.706146 0.860382 0.793762 0.732239 0.860779 0.793854 0.757019 0.861115 0.793915 0.780792 0.861450 0.794006 0.803680 0.861816 0.794067 0.825928 0.862152 0.794159 0.847717 0.862457 0.794220 0.869324 0.862823 0.794281 0.890930 0.863129 0.794342 0.912903 0.863434 0.794403 0.935699 0.863708 0.794495 0.959961 0.864044 0.794556 0.072906 0.876923 0.789093 0.090790 0.877289 0.789215 0.110291 0.877655 0.789337 0.131744 0.877991 0.789429 0.155487 0.878357 0.789551 0.181824 0.878662 0.789642 0.210724 0.879028 0.789734 0.242157 0.879364 0.789825 0.275879 0.879700 0.789917 0.311768 0.880035 0.790039 0.349487 0.880402 0.790131 0.388824 0.880707 0.790222 0.429413 0.881042 0.790283 0.470764 0.881378 0.790375 0.511414 0.881683 0.790527 0.549774 0.881989 0.790558 0.585754 0.882294 0.790649 0.619293 0.882629 0.790741 0.650421 0.882935 0.790833 0.679596 0.883209 0.790924 0.707031 0.883514 0.791016 0.732971 0.883820 0.791077 0.757660 0.884094 0.791168 0.781311 0.884369 0.791260 0.804138 0.884674 0.791351 0.826324 0.884918 0.791412 0.848022 0.885162 0.791473 0.869568 0.885437 0.791565 0.891083 0.885681 0.791656 0.913025 0.885956 0.791687 0.935730 0.886169 0.791748 0.959961 0.886414 0.791809 0.074707 0.901093 0.786255 0.092651 0.901337 0.786407 0.112305 0.901642 0.786530 0.133850 0.901917 0.786591 0.157715 0.902222 0.786713 0.184143 0.902466 0.786804 0.213226 0.902740 0.786926 0.244720 0.902985 0.787018 0.278473 0.903259 0.787170 0.314362 0.903564 0.787231 0.352112 0.903809 0.787323 0.391327 0.904083 0.787415 0.431854 0.904327 0.787567 0.473053 0.904602 0.787628 0.513489 0.904816 0.787720 0.551605 0.905090 0.787811 0.587341 0.905304 0.787933 0.620575 0.905548 0.788025 0.651581 0.905792 0.788116 0.680634 0.906006 0.788177 0.707886 0.906250 0.788300 0.733704 0.906433 0.788391 0.758301 0.906677 0.788483 0.781799 0.906891 0.788544 0.804565 0.907104 0.788605 0.826630 0.907318 0.788696 0.848328 0.907532 0.788818 0.869781 0.907684 0.788879 0.891266 0.907928 0.788940 0.913147 0.908112 0.789001 0.935822 0.908264 0.789093 0.959961 0.908447 0.789185 0.076447 0.925018 0.783478 0.094543 0.925232 0.783569 0.114227 0.925415 0.783691 0.135925 0.925659 0.783783 0.159912 0.925873 0.783905 0.186523 0.926025 0.784027 0.215637 0.926208 0.784180 0.247223 0.926453 0.784271 0.281036 0.926666 0.784332 0.316925 0.926880 0.784454 0.354614 0.927032 0.784637 0.393829 0.927216 0.784698 0.434265 0.927429 0.784790 0.475342 0.927612 0.784882 0.515503 0.927795 0.785004 0.553406 0.927979 0.785126 0.588837 0.928131 0.785187 0.621918 0.928314 0.785278 0.652710 0.928497 0.785400 0.681549 0.928680 0.785492 0.708679 0.928833 0.785614 0.734406 0.929016 0.785675 0.758850 0.929169 0.785736 0.782349 0.929352 0.785858 0.804993 0.929474 0.785950 0.826996 0.929596 0.786041 0.848572 0.929779 0.786102 0.869965 0.929901 0.786163 0.891418 0.930084 0.786285 0.913269 0.930206 0.786346 0.935852 0.930328 0.786407 0.959961 0.930420 0.786469 0.078217 0.949066 0.780640 0.096344 0.949219 0.780731 0.116211 0.949371 0.780853 0.138000 0.949554 0.780975 0.162140 0.949646 0.781128 0.188843 0.949799 0.781250 0.218109 0.949921 0.781311 0.249756 0.950073 0.781433 0.283569 0.950195 0.781616 0.319489 0.950317 0.781677 0.357147 0.950439 0.781799 0.396240 0.950592 0.781891 0.436646 0.950684 0.782043 0.477539 0.950836 0.782135 0.517517 0.950958 0.782227 0.555084 0.951080 0.782318 0.590271 0.951202 0.782471 0.623169 0.951324 0.782532 0.653809 0.951447 0.782684 0.682495 0.951569 0.782745 0.709442 0.951691 0.782837 0.735046 0.951782 0.782928 0.759399 0.951874 0.783051 0.782806 0.951965 0.783112 0.805359 0.952057 0.783203 0.827301 0.952148 0.783295 0.848846 0.952271 0.783386 0.870148 0.952362 0.783447 0.891541 0.952423 0.783508 0.913361 0.952545 0.783600 0.935883 0.952606 0.783691 0.959961 0.952667 0.783722 0.079987 0.973846 0.777679 0.098206 0.973938 0.777802 0.118164 0.973969 0.777954 0.140106 0.974091 0.778076 0.164337 0.974152 0.778168 0.191162 0.974182 0.778320 0.220490 0.974304 0.778442 0.252167 0.974335 0.778564 0.286041 0.974396 0.778687 0.321960 0.974457 0.778809 0.359589 0.974518 0.778931 0.398651 0.974609 0.779053 0.438904 0.974670 0.779144 0.479675 0.974731 0.779266 0.519409 0.974762 0.779358 0.556732 0.974854 0.779480 0.591766 0.974915 0.779602 0.624390 0.974976 0.779724 0.654877 0.975037 0.779785 0.683350 0.975067 0.779907 0.710236 0.975128 0.779999 0.735718 0.975189 0.780121 0.759979 0.975220 0.780182 0.783264 0.975281 0.780273 0.805725 0.975311 0.780396 0.827606 0.975403 0.780457 0.849091 0.975403 0.780548 0.870361 0.975464 0.780609 0.891693 0.975494 0.780670 0.913452 0.975555 0.780762 0.935944 0.975586 0.780884 0.959961 0.975647 0.780914 0.081696 1.000000 0.774567 0.100006 1.000000 0.774719 0.120056 1.000000 0.774811 0.142120 1.000000 0.774963 0.166504 1.000000 0.775116 0.193420 1.000000 0.775238 0.222809 1.000000 0.775330 0.254578 1.000000 0.775482 0.288483 1.000000 0.775604 0.324371 1.000000 0.775757 0.361938 1.000000 0.775848 0.400970 1.000000 0.775970 0.441132 1.000000 0.776093 0.481812 1.000000 0.776215 0.521240 1.000000 0.776337 0.558289 1.000000 0.776459 0.593140 1.000000 0.776550 0.625549 1.000000 0.776672 0.655853 1.000000 0.776764 0.684204 1.000000 0.776855 0.710907 1.000000 0.776978 0.736328 1.000000 0.777069 0.760468 1.000000 0.777191 0.783661 1.000000 0.777252 0.806061 1.000000 0.777344 0.827881 1.000000 0.777435 0.849304 1.000000 0.777496 0.870514 1.000000 0.777588 0.891846 1.000000 0.777710 0.913513 1.000000 0.777740 0.936005 1.000000 0.777802 0.959961 1.000000 0.777924 0.034943 0.006409 0.920044 0.050659 0.007172 0.920013 0.067566 0.007965 0.919983 0.085968 0.008820 0.919922 0.106201 0.009644 0.919891 0.128601 0.010498 0.919861 0.153595 0.011383 0.919861 0.181458 0.012299 0.919800 0.212494 0.013184 0.919800 0.246368 0.014191 0.919739 0.282898 0.015137 0.919708 0.321991 0.016144 0.919678 0.363159 0.017151 0.919647 0.406158 0.018158 0.919586 0.450470 0.019226 0.919525 0.495056 0.020294 0.919495 0.537567 0.021362 0.919434 0.577301 0.022522 0.919403 0.614197 0.023651 0.919342 0.648346 0.024780 0.919342 0.680115 0.025940 0.919281 0.709839 0.027130 0.919220 0.737885 0.028351 0.919128 0.764496 0.029541 0.919067 0.789917 0.030792 0.919067 0.814484 0.032043 0.919006 0.838379 0.033295 0.918915 0.861877 0.034576 0.918915 0.885345 0.035858 0.918823 0.909119 0.037201 0.918793 0.933685 0.038513 0.918701 0.959961 0.039886 0.918610 0.035919 0.023041 0.918030 0.051636 0.023834 0.917999 0.068665 0.024689 0.917938 0.087158 0.025574 0.917908 0.107483 0.026489 0.917847 0.130005 0.027435 0.917816 0.155151 0.028381 0.917816 0.183228 0.029327 0.917755 0.214325 0.030304 0.917725 0.248383 0.031342 0.917725 0.285004 0.032349 0.917664 0.324097 0.033417 0.917603 0.365326 0.034515 0.917542 0.408295 0.035583 0.917480 0.452576 0.036713 0.917450 0.497101 0.037842 0.917419 0.539398 0.039032 0.917358 0.578857 0.040222 0.917328 0.615570 0.041382 0.917267 0.649536 0.042603 0.917206 0.681152 0.043854 0.917114 0.710724 0.045105 0.917053 0.738617 0.046387 0.917053 0.765106 0.047668 0.916962 0.790497 0.048950 0.916901 0.814941 0.050323 0.916840 0.838745 0.051636 0.916748 0.862244 0.052979 0.916748 0.885559 0.054413 0.916626 0.909271 0.055786 0.916565 0.933746 0.057190 0.916504 0.959961 0.058594 0.916443 0.036926 0.040680 0.915863 0.052765 0.041565 0.915833 0.069824 0.042480 0.915771 0.088440 0.043427 0.915741 0.108887 0.044403 0.915741 0.131531 0.045410 0.915680 0.156799 0.046417 0.915619 0.185028 0.047485 0.915619 0.216278 0.048553 0.915527 0.250366 0.049652 0.915497 0.287170 0.050751 0.915436 0.326294 0.051910 0.915344 0.367523 0.053070 0.915314 0.410492 0.054260 0.915283 0.454742 0.055450 0.915222 0.499054 0.056671 0.915192 0.541168 0.057922 0.915100 0.580444 0.059204 0.915009 0.616943 0.060425 0.914948 0.650757 0.061768 0.914886 0.682190 0.063110 0.914856 0.711639 0.064484 0.914795 0.739410 0.065826 0.914703 0.765778 0.067169 0.914642 0.791046 0.068604 0.914551 0.815430 0.070038 0.914520 0.839142 0.071472 0.914429 0.862488 0.072937 0.914337 0.885803 0.074432 0.914246 0.909424 0.075867 0.914185 0.933868 0.077393 0.914124 0.959961 0.078949 0.914001 0.038025 0.059662 0.913544 0.053864 0.060608 0.913513 0.071014 0.061646 0.913513 0.089722 0.062714 0.913422 0.110291 0.063751 0.913391 0.133118 0.064880 0.913361 0.158508 0.066010 0.913269 0.186920 0.067108 0.913208 0.218292 0.068298 0.913147 0.252502 0.069489 0.913055 0.289368 0.070679 0.913025 0.328522 0.071930 0.912994 0.369812 0.073181 0.912933 0.412750 0.074493 0.912872 0.457001 0.075806 0.912781 0.501160 0.077118 0.912689 0.543030 0.078461 0.912598 0.582092 0.079895 0.912537 0.618378 0.081238 0.912506 0.651947 0.082672 0.912415 0.683228 0.084137 0.912323 0.712524 0.085541 0.912262 0.740204 0.087036 0.912170 0.766479 0.088501 0.912048 0.791626 0.090027 0.912018 0.815887 0.091614 0.911896 0.839539 0.093109 0.911804 0.862854 0.094727 0.911743 0.886017 0.096313 0.911652 0.909607 0.097900 0.911530 0.933960 0.099548 0.911407 0.959961 0.101227 0.911316 0.039124 0.080444 0.911072 0.055084 0.081512 0.910980 0.072296 0.082642 0.910919 0.091095 0.083801 0.910889 0.111786 0.084961 0.910797 0.134735 0.086151 0.910736 0.160278 0.087402 0.910645 0.188843 0.088654 0.910583 0.220367 0.089935 0.910522 0.254700 0.091248 0.910492 0.291626 0.092590 0.910370 0.330872 0.093964 0.910278 0.372131 0.095337 0.910217 0.415161 0.096741 0.910126 0.459229 0.098175 0.910034 0.503265 0.099609 0.909943 0.544891 0.101105 0.909882 0.583679 0.102600 0.909821 0.619781 0.104126 0.909729 0.653168 0.105652 0.909637 0.684296 0.107208 0.909546 0.713470 0.108826 0.909424 0.740967 0.110443 0.909363 0.767151 0.112061 0.909241 0.792206 0.113739 0.909119 0.816376 0.115417 0.909058 0.839935 0.117065 0.908966 0.863129 0.118835 0.908813 0.886292 0.120544 0.908691 0.909760 0.122284 0.908600 0.934021 0.124054 0.908447 0.959961 0.125824 0.908386 0.040314 0.103394 0.908234 0.056335 0.104584 0.908203 0.073639 0.105804 0.908112 0.092560 0.107117 0.908020 0.113373 0.108459 0.907898 0.136444 0.109772 0.907837 0.162140 0.111145 0.907776 0.190857 0.112518 0.907684 0.222504 0.113953 0.907593 0.256958 0.115356 0.907501 0.293945 0.116882 0.907440 0.333282 0.118378 0.907318 0.374603 0.119873 0.907227 0.417480 0.121460 0.907104 0.461548 0.123047 0.907013 0.505371 0.124573 0.906952 0.546753 0.126251 0.906830 0.585388 0.127930 0.906769 0.621216 0.129547 0.906647 0.654449 0.131256 0.906494 0.685364 0.132965 0.906403 0.714447 0.134705 0.906311 0.741791 0.136505 0.906158 0.767853 0.138275 0.906067 0.792786 0.140076 0.905975 0.816864 0.141907 0.905823 0.840332 0.143738 0.905670 0.863464 0.145630 0.905548 0.886536 0.147522 0.905396 0.909882 0.149414 0.905304 0.934113 0.151337 0.905182 0.959961 0.153259 0.905029 0.041504 0.128998 0.905090 0.057617 0.130341 0.904999 0.075043 0.131775 0.904877 0.094055 0.133209 0.904785 0.114990 0.134613 0.904724 0.138214 0.136139 0.904633 0.164093 0.137665 0.904510 0.192932 0.139191 0.904419 0.224762 0.140778 0.904327 0.259277 0.142395 0.904205 0.296356 0.144043 0.904083 0.335754 0.145691 0.903961 0.376984 0.147339 0.903870 0.419922 0.149078 0.903778 0.463898 0.150818 0.903625 0.507568 0.152618 0.903534 0.548706 0.154388 0.903412 0.587036 0.156189 0.903259 0.622681 0.158051 0.903137 0.655731 0.159912 0.903015 0.686493 0.161804 0.902863 0.715332 0.163727 0.902740 0.742584 0.165680 0.902618 0.768555 0.167603 0.902496 0.793396 0.169586 0.902313 0.817352 0.171661 0.902161 0.840759 0.173645 0.902008 0.863800 0.175690 0.901886 0.886749 0.177704 0.901764 0.910095 0.179810 0.901581 0.934174 0.181946 0.901428 0.959961 0.184021 0.901245 0.042786 0.157806 0.901489 0.058960 0.159363 0.901398 0.076477 0.160950 0.901276 0.095612 0.162537 0.901184 0.116699 0.164154 0.901062 0.140045 0.165833 0.900940 0.166046 0.167480 0.900848 0.195099 0.169250 0.900726 0.226990 0.171051 0.900574 0.261658 0.172760 0.900452 0.298828 0.174591 0.900330 0.338226 0.176453 0.900208 0.379517 0.178314 0.900055 0.422363 0.180206 0.899933 0.466339 0.182159 0.899811 0.509705 0.184082 0.899658 0.550598 0.186066 0.899506 0.588715 0.188019 0.899353 0.624115 0.190033 0.899200 0.656982 0.192139 0.899048 0.687561 0.194214 0.898895 0.716309 0.196289 0.898773 0.743439 0.198395 0.898590 0.769226 0.200500 0.898438 0.793945 0.202698 0.898224 0.817841 0.204895 0.898102 0.841125 0.207031 0.897949 0.864105 0.209290 0.897736 0.887024 0.211426 0.897552 0.910248 0.213684 0.897400 0.934296 0.215973 0.897217 0.959961 0.218170 0.897034 0.044159 0.190399 0.897461 0.060364 0.192108 0.897339 0.077942 0.193878 0.897217 0.097198 0.195618 0.897064 0.118378 0.197449 0.896973 0.141907 0.199310 0.896820 0.168091 0.201141 0.896667 0.197296 0.203064 0.896515 0.229370 0.204987 0.896393 0.264038 0.206940 0.896240 0.301331 0.208923 0.896088 0.340729 0.210968 0.895935 0.382050 0.213013 0.895782 0.424896 0.215057 0.895630 0.468658 0.217133 0.895477 0.511932 0.219238 0.895294 0.552551 0.221436 0.895142 0.590393 0.223541 0.894989 0.625610 0.225708 0.894806 0.658203 0.227936 0.894653 0.688660 0.230133 0.894470 0.717255 0.232361 0.894287 0.744232 0.234650 0.894073 0.769897 0.236908 0.893951 0.794525 0.239197 0.893768 0.818329 0.241425 0.893555 0.841553 0.243805 0.893341 0.864441 0.246155 0.893158 0.887238 0.248413 0.893005 0.910431 0.250793 0.892822 0.934387 0.253174 0.892609 0.959961 0.255524 0.892395 0.045471 0.226807 0.892944 0.061829 0.228699 0.892792 0.079498 0.230560 0.892670 0.098846 0.232513 0.892487 0.120209 0.234467 0.892334 0.143829 0.236511 0.892151 0.170197 0.238495 0.892029 0.199524 0.240540 0.891876 0.231720 0.242676 0.891693 0.266571 0.244720 0.891541 0.303894 0.246857 0.891357 0.343323 0.249023 0.891205 0.384613 0.251190 0.891052 0.427460 0.253418 0.890839 0.471161 0.255615 0.890686 0.514130 0.257843 0.890533 0.554504 0.260101 0.890350 0.592133 0.262329 0.890167 0.627106 0.264679 0.889984 0.659546 0.266998 0.889801 0.689789 0.269318 0.889587 0.718170 0.271667 0.889435 0.745026 0.274048 0.889221 0.770630 0.276398 0.889038 0.795135 0.278778 0.888824 0.818817 0.281128 0.888641 0.841919 0.283569 0.888428 0.864777 0.285980 0.888214 0.887482 0.288361 0.888062 0.910583 0.290802 0.887817 0.934479 0.293274 0.887665 0.959961 0.295654 0.887451 0.046875 0.266754 0.887970 0.063293 0.268799 0.887787 0.081085 0.270844 0.887604 0.100555 0.272888 0.887451 0.122009 0.274963 0.887299 0.145874 0.277130 0.887146 0.172333 0.279205 0.886963 0.201874 0.281372 0.886780 0.234192 0.283600 0.886597 0.269073 0.285767 0.886414 0.306458 0.288055 0.886261 0.345917 0.290253 0.886078 0.387268 0.292511 0.885895 0.430054 0.294861 0.885712 0.473602 0.297150 0.885529 0.516327 0.299469 0.885315 0.556458 0.301880 0.885132 0.593842 0.304169 0.884949 0.628571 0.306580 0.884735 0.660828 0.308990 0.884583 0.690887 0.311371 0.884369 0.719116 0.313782 0.884186 0.745880 0.316223 0.883942 0.771301 0.318634 0.883728 0.795715 0.321045 0.883575 0.819305 0.323456 0.883331 0.842346 0.325928 0.883179 0.865051 0.328400 0.882935 0.887756 0.330811 0.882782 0.910736 0.333313 0.882538 0.934540 0.335754 0.882324 0.959961 0.338196 0.882111 0.048309 0.309937 0.882538 0.064819 0.312042 0.882355 0.082703 0.314209 0.882172 0.102264 0.316315 0.882050 0.123901 0.318512 0.881836 0.147858 0.320740 0.881683 0.174561 0.322937 0.881500 0.204224 0.325195 0.881287 0.236694 0.327484 0.881134 0.271667 0.329712 0.880951 0.309082 0.332031 0.880768 0.348602 0.334320 0.880554 0.389893 0.336670 0.880402 0.432617 0.339050 0.880188 0.476074 0.341400 0.879974 0.518555 0.343750 0.879822 0.558441 0.346191 0.879608 0.595551 0.348572 0.879425 0.630066 0.350983 0.879211 0.662079 0.353455 0.879028 0.691986 0.355804 0.878815 0.720093 0.358307 0.878571 0.746674 0.360687 0.878418 0.771973 0.363129 0.878204 0.796295 0.365662 0.878021 0.819824 0.368042 0.877808 0.842712 0.370514 0.877625 0.865356 0.372955 0.877411 0.887970 0.375427 0.877167 0.910889 0.377869 0.876953 0.934662 0.380371 0.876740 0.959961 0.382751 0.876556 0.049774 0.355804 0.876770 0.066376 0.358032 0.876587 0.084412 0.360199 0.876434 0.104126 0.362366 0.876282 0.125824 0.364624 0.876068 0.149963 0.366913 0.875854 0.176788 0.369171 0.875702 0.206635 0.371429 0.875519 0.239136 0.373688 0.875366 0.274292 0.376038 0.875153 0.311768 0.378418 0.874969 0.351288 0.380707 0.874786 0.392548 0.383087 0.874573 0.435211 0.385468 0.874390 0.478607 0.387817 0.874176 0.520844 0.390259 0.874023 0.560425 0.392670 0.873810 0.597290 0.394989 0.873596 0.631531 0.397430 0.873413 0.663330 0.399902 0.873169 0.693115 0.402252 0.873016 0.721039 0.404755 0.872772 0.747498 0.407104 0.872589 0.772705 0.409576 0.872406 0.796906 0.411957 0.872253 0.820282 0.414368 0.872009 0.843140 0.416840 0.871796 0.865692 0.419220 0.871582 0.888214 0.421631 0.871368 0.911041 0.424042 0.871185 0.934723 0.426483 0.871002 0.959961 0.428833 0.870789 0.051300 0.403992 0.870758 0.067963 0.406189 0.870575 0.086090 0.408386 0.870392 0.105927 0.410583 0.870209 0.127777 0.412842 0.870026 0.152069 0.415161 0.869843 0.179108 0.417358 0.869690 0.209076 0.419647 0.869476 0.241730 0.421906 0.869263 0.276947 0.424286 0.869110 0.314484 0.426605 0.868896 0.353973 0.428955 0.868744 0.395264 0.431244 0.868561 0.437897 0.433594 0.868378 0.481079 0.435913 0.868195 0.523010 0.438324 0.867950 0.562347 0.440735 0.867767 0.598969 0.443024 0.867554 0.633026 0.445465 0.867371 0.664642 0.447754 0.867188 0.694183 0.450134 0.867004 0.721954 0.452545 0.866791 0.748291 0.454865 0.866669 0.773376 0.457275 0.866455 0.797455 0.459595 0.866241 0.820770 0.461945 0.866028 0.843536 0.464294 0.865814 0.865997 0.466644 0.865662 0.888489 0.468933 0.865479 0.911224 0.471283 0.865265 0.934845 0.473511 0.865112 0.959961 0.475800 0.864929 0.052856 0.453796 0.864502 0.069641 0.456024 0.864288 0.087830 0.458221 0.864136 0.107788 0.460358 0.863953 0.129822 0.462585 0.863800 0.154236 0.464783 0.863617 0.181458 0.466980 0.863434 0.211578 0.469269 0.863281 0.244354 0.471466 0.863068 0.279602 0.473724 0.862915 0.317169 0.476013 0.862732 0.356720 0.478241 0.862579 0.397949 0.480530 0.862396 0.440552 0.482788 0.862183 0.483612 0.484985 0.862030 0.525238 0.487274 0.861816 0.564362 0.489563 0.861633 0.600708 0.491791 0.861481 0.634491 0.494080 0.861298 0.665863 0.496307 0.861115 0.695282 0.498596 0.860992 0.722931 0.500885 0.860779 0.749084 0.503052 0.860596 0.774048 0.505280 0.860413 0.798004 0.507507 0.860199 0.821289 0.509644 0.860016 0.843933 0.511871 0.859894 0.866302 0.514008 0.859711 0.888702 0.516113 0.859558 0.911377 0.518219 0.859375 0.934937 0.520355 0.859222 0.959961 0.522430 0.859100 0.054474 0.504303 0.858154 0.071320 0.506378 0.857971 0.089630 0.508453 0.857849 0.109711 0.510468 0.857666 0.131866 0.512604 0.857483 0.156433 0.514648 0.857391 0.183838 0.516693 0.857208 0.214050 0.518799 0.857056 0.246948 0.520844 0.856903 0.282318 0.522949 0.856750 0.319916 0.524994 0.856628 0.359467 0.527039 0.856445 0.400665 0.529144 0.856262 0.443176 0.531219 0.856110 0.486115 0.533173 0.855988 0.527466 0.535217 0.855804 0.566284 0.537231 0.855713 0.602417 0.539307 0.855530 0.635925 0.541290 0.855438 0.667145 0.543243 0.855286 0.696350 0.545288 0.855103 0.723877 0.547302 0.854950 0.749878 0.549194 0.854797 0.774750 0.551147 0.854614 0.798615 0.553131 0.854553 0.821716 0.554993 0.854401 0.844330 0.556885 0.854279 0.866638 0.558746 0.854126 0.888916 0.560638 0.854004 0.911560 0.562469 0.853882 0.934967 0.564270 0.853729 0.959961 0.566101 0.853607 0.056000 0.552582 0.852081 0.072998 0.554443 0.851959 0.091431 0.556305 0.851807 0.111603 0.558044 0.851715 0.133942 0.559906 0.851593 0.158661 0.561737 0.851471 0.186249 0.563538 0.851379 0.216614 0.565430 0.851257 0.249603 0.567200 0.851105 0.285034 0.569031 0.850983 0.322662 0.570831 0.850861 0.362244 0.572601 0.850708 0.403442 0.574432 0.850616 0.445831 0.576263 0.850464 0.488617 0.578003 0.850403 0.529694 0.579834 0.850250 0.568207 0.581573 0.850220 0.604065 0.583344 0.850067 0.637421 0.585083 0.849945 0.668396 0.586792 0.849823 0.697449 0.588562 0.849670 0.724731 0.590302 0.849548 0.750671 0.591949 0.849487 0.775391 0.593628 0.849396 0.799164 0.595398 0.849274 0.822205 0.596954 0.849152 0.844696 0.598663 0.849060 0.866943 0.600250 0.848938 0.889130 0.601837 0.848846 0.911743 0.603455 0.848755 0.935089 0.604950 0.848633 0.959961 0.606567 0.848572 0.057678 0.597198 0.846497 0.074768 0.598816 0.846405 0.093292 0.600403 0.846344 0.113586 0.601990 0.846252 0.136047 0.603607 0.846161 0.160950 0.605194 0.846069 0.188690 0.606750 0.845978 0.219177 0.608368 0.845886 0.252228 0.609955 0.845764 0.287811 0.611511 0.845642 0.325409 0.613098 0.845612 0.365021 0.614685 0.845490 0.406158 0.616241 0.845428 0.448456 0.617828 0.845337 0.491058 0.619354 0.845245 0.531860 0.620880 0.845215 0.570099 0.622406 0.845093 0.605713 0.623932 0.845001 0.638855 0.625427 0.844879 0.669617 0.626892 0.844788 0.698486 0.628448 0.844727 0.725677 0.629883 0.844666 0.751465 0.631317 0.844604 0.776031 0.632812 0.844513 0.799713 0.634216 0.844452 0.822662 0.635651 0.844360 0.845062 0.637054 0.844269 0.867249 0.638397 0.844177 0.889343 0.639801 0.844116 0.911865 0.641144 0.844055 0.935150 0.642456 0.843994 0.959961 0.643768 0.843903 0.059326 0.638184 0.841431 0.076477 0.639587 0.841370 0.095093 0.640930 0.841278 0.115601 0.642334 0.841248 0.138214 0.643738 0.841156 0.163269 0.645111 0.841095 0.191162 0.646454 0.841034 0.221802 0.647858 0.840942 0.254974 0.649170 0.840912 0.290558 0.650543 0.840820 0.328217 0.651917 0.840729 0.367737 0.653259 0.840729 0.408813 0.654541 0.840668 0.451080 0.655914 0.840637 0.493530 0.657196 0.840576 0.534027 0.658569 0.840485 0.571960 0.659851 0.840424 0.607422 0.661163 0.840332 0.640259 0.662415 0.840332 0.670837 0.663727 0.840240 0.699524 0.664978 0.840240 0.726624 0.666229 0.840179 0.752228 0.667480 0.840118 0.776703 0.668701 0.840057 0.800293 0.669922 0.839996 0.823059 0.671143 0.839935 0.845459 0.672302 0.839905 0.867523 0.673492 0.839874 0.889587 0.674652 0.839813 0.912048 0.675781 0.839752 0.935211 0.676910 0.839722 0.959961 0.678040 0.839661 0.061066 0.675751 0.836761 0.078278 0.676941 0.836700 0.096985 0.678101 0.836700 0.117584 0.679291 0.836670 0.140350 0.680481 0.836609 0.165619 0.681641 0.836548 0.193634 0.682831 0.836517 0.224396 0.683990 0.836487 0.257629 0.685150 0.836426 0.293274 0.686310 0.836426 0.330994 0.687500 0.836395 0.370544 0.688599 0.836365 0.411560 0.689758 0.836334 0.453674 0.690887 0.836304 0.495941 0.692017 0.836243 0.536133 0.693146 0.836182 0.573822 0.694214 0.836182 0.609009 0.695374 0.836121 0.641663 0.696472 0.836121 0.672058 0.697510 0.836090 0.700592 0.698578 0.836090 0.727478 0.699738 0.836029 0.752960 0.700714 0.835999 0.777374 0.701782 0.835938 0.800812 0.702789 0.835938 0.823517 0.703827 0.835938 0.845825 0.704803 0.835876 0.867798 0.705811 0.835846 0.889832 0.706787 0.835846 0.912109 0.707764 0.835815 0.935303 0.708679 0.835754 0.959961 0.709656 0.835754 0.062775 0.710266 0.832520 0.080078 0.711273 0.832520 0.098938 0.712250 0.832489 0.119629 0.713287 0.832428 0.142548 0.714325 0.832428 0.167938 0.715302 0.832428 0.196167 0.716309 0.832367 0.226990 0.717316 0.832397 0.260345 0.718292 0.832397 0.296051 0.719269 0.832397 0.333710 0.720245 0.832397 0.373230 0.721252 0.832336 0.414276 0.722229 0.832306 0.456238 0.723206 0.832275 0.498291 0.724152 0.832306 0.538269 0.725098 0.832275 0.575684 0.726044 0.832275 0.610596 0.726990 0.832275 0.643036 0.727966 0.832275 0.673218 0.728851 0.832245 0.701569 0.729767 0.832214 0.728363 0.730682 0.832184 0.753723 0.731567 0.832184 0.777954 0.732452 0.832214 0.801300 0.733307 0.832184 0.823975 0.734192 0.832153 0.846161 0.735016 0.832184 0.868073 0.735870 0.832153 0.890015 0.736664 0.832123 0.912292 0.737518 0.832123 0.935394 0.738312 0.832123 0.959961 0.739075 0.832092 0.064484 0.742218 0.828583 0.081879 0.743103 0.828552 0.100861 0.743988 0.828583 0.121704 0.744812 0.828583 0.144745 0.745697 0.828552 0.170288 0.746552 0.828613 0.198639 0.747406 0.828613 0.229614 0.748260 0.828613 0.263031 0.749084 0.828644 0.298767 0.749939 0.828613 0.336456 0.750763 0.828613 0.376007 0.751617 0.828583 0.416931 0.752441 0.828644 0.458832 0.753265 0.828613 0.500671 0.754089 0.828644 0.540344 0.754883 0.828613 0.577515 0.755707 0.828674 0.612183 0.756500 0.828644 0.644379 0.757294 0.828644 0.674377 0.758057 0.828644 0.702576 0.758850 0.828644 0.729126 0.759583 0.828674 0.754425 0.760345 0.828674 0.778595 0.761108 0.828674 0.801849 0.761841 0.828705 0.824402 0.762573 0.828644 0.846497 0.763275 0.828674 0.868347 0.763977 0.828705 0.890228 0.764679 0.828705 0.912415 0.765381 0.828705 0.935425 0.766022 0.828705 0.959961 0.766693 0.828674 0.066223 0.772095 0.824921 0.083740 0.772827 0.824951 0.102783 0.773529 0.824951 0.123810 0.774292 0.825012 0.146973 0.775055 0.825012 0.172729 0.775726 0.825073 0.201172 0.776520 0.825043 0.232239 0.777222 0.825073 0.265747 0.777924 0.825073 0.301544 0.778687 0.825073 0.339203 0.779358 0.825104 0.378723 0.780060 0.825134 0.419617 0.780762 0.825165 0.461365 0.781464 0.825165 0.503021 0.782135 0.825165 0.542419 0.782867 0.825226 0.579315 0.783539 0.825226 0.613708 0.784210 0.825226 0.645691 0.784882 0.825287 0.675537 0.785522 0.825317 0.703552 0.786163 0.825317 0.729980 0.786804 0.825317 0.755127 0.787445 0.825348 0.779205 0.788086 0.825348 0.802338 0.788666 0.825348 0.824829 0.789307 0.825409 0.846863 0.789917 0.825409 0.868622 0.790466 0.825439 0.890411 0.791077 0.825439 0.912537 0.791656 0.825439 0.935486 0.792175 0.825531 0.959961 0.792725 0.825500 0.067932 0.800140 0.821503 0.085571 0.800812 0.821564 0.104767 0.801422 0.821594 0.125854 0.802063 0.821625 0.149231 0.802704 0.821655 0.175110 0.803284 0.821686 0.203705 0.803925 0.821686 0.234833 0.804504 0.821716 0.268433 0.805115 0.821747 0.304230 0.805725 0.821808 0.341980 0.806335 0.821838 0.381409 0.806946 0.821869 0.422211 0.807526 0.821869 0.463898 0.808105 0.821930 0.505249 0.808716 0.821960 0.544403 0.809265 0.821991 0.581055 0.809845 0.822021 0.615204 0.810364 0.822083 0.646973 0.810944 0.822113 0.676605 0.811493 0.822113 0.704498 0.812042 0.822144 0.730835 0.812561 0.822174 0.755859 0.813141 0.822174 0.779755 0.813660 0.822235 0.802795 0.814117 0.822266 0.825226 0.814636 0.822296 0.847198 0.815155 0.822327 0.868866 0.815674 0.822296 0.890625 0.816101 0.822357 0.912659 0.816559 0.822418 0.935547 0.817047 0.822418 0.959961 0.817505 0.822449 0.069733 0.826843 0.818268 0.087433 0.827393 0.818359 0.106720 0.827881 0.818390 0.127960 0.828430 0.818420 0.151428 0.828949 0.818451 0.177429 0.829437 0.818481 0.206207 0.829987 0.818542 0.237457 0.830475 0.818542 0.271088 0.830994 0.818634 0.306946 0.831543 0.818665 0.344696 0.832001 0.818695 0.384064 0.832489 0.818756 0.424774 0.832977 0.818817 0.466400 0.833466 0.818817 0.507477 0.833954 0.818909 0.546326 0.834442 0.818909 0.582733 0.834930 0.819000 0.616699 0.835388 0.819031 0.648254 0.835815 0.819061 0.677734 0.836273 0.819092 0.705414 0.836731 0.819122 0.731598 0.837189 0.819183 0.756500 0.837616 0.819214 0.780334 0.838074 0.819244 0.803314 0.838470 0.819244 0.825653 0.838898 0.819305 0.847473 0.839294 0.819336 0.869110 0.839691 0.819397 0.890808 0.840088 0.819427 0.912781 0.840485 0.819458 0.935638 0.840851 0.819489 0.959961 0.841217 0.819519 0.071503 0.852356 0.815186 0.089264 0.852814 0.815216 0.108673 0.853241 0.815277 0.130035 0.853668 0.815338 0.153687 0.854095 0.815399 0.179840 0.854523 0.815430 0.208740 0.854950 0.815521 0.240051 0.855377 0.815582 0.273773 0.855804 0.815613 0.309601 0.856201 0.815674 0.347290 0.856628 0.815704 0.386688 0.857025 0.815765 0.427368 0.857422 0.815826 0.468781 0.857849 0.815857 0.509705 0.858246 0.815918 0.548248 0.858643 0.815979 0.584412 0.859039 0.816040 0.618073 0.859406 0.816071 0.649475 0.859772 0.816132 0.678772 0.860138 0.816193 0.706329 0.860504 0.816254 0.732361 0.860901 0.816284 0.757141 0.861237 0.816315 0.780914 0.861572 0.816345 0.803772 0.861938 0.816406 0.825958 0.862274 0.816467 0.847809 0.862579 0.816498 0.869385 0.862915 0.816528 0.890930 0.863251 0.816589 0.912933 0.863525 0.816620 0.935699 0.863861 0.816650 0.959961 0.864136 0.816711 0.073273 0.877045 0.812164 0.091125 0.877411 0.812256 0.110687 0.877747 0.812317 0.132141 0.878113 0.812378 0.155884 0.878448 0.812469 0.182220 0.878815 0.812531 0.211212 0.879150 0.812561 0.242584 0.879486 0.812653 0.276398 0.879852 0.812683 0.312286 0.880127 0.812744 0.349945 0.880493 0.812836 0.389282 0.880829 0.812866 0.429840 0.881134 0.812958 0.471161 0.881470 0.812988 0.511810 0.881805 0.813080 0.550110 0.882111 0.813141 0.585999 0.882416 0.813171 0.619507 0.882751 0.813263 0.650665 0.883057 0.813324 0.679779 0.883362 0.813354 0.707153 0.883606 0.813385 0.733093 0.883911 0.813446 0.757782 0.884186 0.813507 0.781403 0.884460 0.813599 0.804199 0.884735 0.813629 0.826385 0.885010 0.813660 0.848083 0.885254 0.813721 0.869568 0.885529 0.813751 0.891113 0.885773 0.813782 0.913055 0.886047 0.813873 0.935730 0.886261 0.813904 0.959961 0.886475 0.813965 0.075043 0.901184 0.809296 0.092987 0.901459 0.809326 0.112640 0.901764 0.809448 0.134247 0.902008 0.809509 0.158112 0.902283 0.809570 0.184601 0.902588 0.809662 0.213684 0.902832 0.809723 0.245209 0.903137 0.809753 0.278992 0.903381 0.809845 0.314911 0.903625 0.809906 0.352570 0.903900 0.809998 0.391815 0.904144 0.810059 0.432281 0.904419 0.810150 0.473511 0.904663 0.810211 0.513916 0.904938 0.810272 0.551910 0.905151 0.810364 0.587616 0.905365 0.810425 0.620880 0.905640 0.810455 0.651794 0.905853 0.810516 0.680786 0.906097 0.810577 0.708008 0.906342 0.810638 0.733856 0.906555 0.810699 0.758392 0.906769 0.810760 0.781921 0.906952 0.810822 0.804596 0.907166 0.810883 0.826691 0.907379 0.810913 0.848389 0.907593 0.810944 0.869812 0.907806 0.811035 0.891296 0.907990 0.811096 0.913147 0.908173 0.811157 0.935822 0.908356 0.811188 0.959961 0.908508 0.811249 0.076813 0.925079 0.806427 0.094849 0.925293 0.806488 0.114594 0.925537 0.806549 0.136322 0.925751 0.806641 0.160309 0.925934 0.806702 0.186951 0.926117 0.806763 0.216125 0.926331 0.806885 0.247681 0.926575 0.806915 0.281555 0.926727 0.807037 0.317413 0.926941 0.807098 0.355103 0.927094 0.807190 0.394287 0.927338 0.807251 0.434692 0.927490 0.807343 0.475769 0.927704 0.807434 0.515869 0.927887 0.807495 0.553680 0.928040 0.807526 0.589111 0.928223 0.807587 0.622223 0.928406 0.807678 0.652924 0.928558 0.807739 0.681732 0.928741 0.807800 0.708832 0.928894 0.807892 0.734528 0.929077 0.807953 0.758972 0.929260 0.808014 0.782410 0.929382 0.808075 0.805023 0.929535 0.808105 0.827057 0.929657 0.808197 0.848633 0.929810 0.808258 0.870026 0.929932 0.808319 0.891449 0.930115 0.808350 0.913269 0.930237 0.808441 0.935852 0.930359 0.808472 0.959961 0.930481 0.808533 0.078583 0.949127 0.803497 0.096680 0.949249 0.803589 0.116577 0.949432 0.803650 0.138428 0.949585 0.803741 0.162567 0.949738 0.803833 0.189270 0.949860 0.803894 0.218536 0.949982 0.804016 0.250153 0.950104 0.804077 0.284088 0.950256 0.804199 0.319916 0.950378 0.804260 0.357574 0.950470 0.804352 0.396729 0.950623 0.804443 0.437042 0.950714 0.804535 0.477936 0.950867 0.804565 0.517822 0.951019 0.804626 0.555359 0.951141 0.804718 0.590607 0.951233 0.804810 0.623444 0.951355 0.804871 0.654022 0.951477 0.804962 0.682678 0.951569 0.805023 0.709595 0.951691 0.805115 0.735138 0.951782 0.805145 0.759521 0.951874 0.805206 0.782898 0.951996 0.805298 0.805420 0.952087 0.805359 0.827362 0.952209 0.805420 0.848877 0.952301 0.805481 0.870209 0.952393 0.805573 0.891571 0.952484 0.805603 0.913391 0.952545 0.805664 0.935944 0.952637 0.805725 0.959961 0.952698 0.805725 0.080322 0.973846 0.800476 0.098511 0.973969 0.800568 0.118500 0.974030 0.800690 0.140472 0.974091 0.800751 0.164734 0.974182 0.800873 0.191559 0.974213 0.800964 0.220917 0.974304 0.801056 0.252625 0.974365 0.801147 0.286530 0.974396 0.801239 0.322388 0.974518 0.801331 0.360016 0.974548 0.801422 0.399109 0.974609 0.801483 0.439331 0.974701 0.801575 0.480103 0.974731 0.801666 0.519775 0.974823 0.801727 0.557007 0.974854 0.801819 0.592041 0.974915 0.801910 0.624603 0.974976 0.802002 0.655060 0.975037 0.802063 0.683533 0.975098 0.802124 0.710358 0.975128 0.802185 0.735779 0.975189 0.802307 0.760071 0.975250 0.802338 0.783295 0.975281 0.802429 0.805786 0.975342 0.802460 0.827667 0.975403 0.802582 0.849121 0.975433 0.802643 0.870392 0.975494 0.802673 0.891754 0.975494 0.802704 0.913452 0.975586 0.802765 0.935944 0.975616 0.802826 0.959961 0.975647 0.802856 0.082031 1.000000 0.797302 0.100372 1.000000 0.797363 0.120422 1.000000 0.797516 0.142487 1.000000 0.797607 0.166901 1.000000 0.797729 0.193848 1.000000 0.797821 0.223236 1.000000 0.797913 0.255005 1.000000 0.798035 0.288910 1.000000 0.798126 0.324768 1.000000 0.798187 0.362366 1.000000 0.798279 0.401367 1.000000 0.798370 0.441559 1.000000 0.798462 0.482147 1.000000 0.798553 0.521545 1.000000 0.798645 0.558624 1.000000 0.798706 0.593353 1.000000 0.798828 0.625793 1.000000 0.798889 0.656006 1.000000 0.798950 0.684357 1.000000 0.799072 0.711060 1.000000 0.799133 0.736420 1.000000 0.799194 0.760590 1.000000 0.799255 0.783722 1.000000 0.799377 0.806122 1.000000 0.799438 0.827911 1.000000 0.799500 0.849335 1.000000 0.799530 0.870544 1.000000 0.799591 0.891876 1.000000 0.799652 0.913544 1.000000 0.799683 0.936005 1.000000 0.799744 0.959961 1.000000 0.799774 0.035126 0.006683 0.945160 0.050842 0.007446 0.945068 0.067749 0.008270 0.945068 0.086151 0.009094 0.944977 0.106445 0.009918 0.944946 0.128876 0.010803 0.944855 0.153870 0.011688 0.944794 0.181854 0.012634 0.944733 0.212830 0.013580 0.944672 0.246704 0.014496 0.944580 0.283356 0.015503 0.944550 0.322296 0.016479 0.944458 0.363556 0.017548 0.944397 0.406494 0.018585 0.944366 0.450867 0.019623 0.944244 0.495453 0.020691 0.944183 0.537994 0.021820 0.944122 0.577576 0.022888 0.944061 0.614471 0.024048 0.943970 0.648590 0.025208 0.943878 0.680267 0.026367 0.943817 0.710052 0.027588 0.943726 0.738007 0.028778 0.943634 0.764618 0.029999 0.943512 0.790039 0.031250 0.943451 0.814575 0.032501 0.943359 0.838470 0.033752 0.943237 0.861938 0.035065 0.943146 0.885406 0.036346 0.943054 0.909149 0.037689 0.942963 0.933685 0.039032 0.942841 0.959961 0.040375 0.942780 0.036102 0.023315 0.943115 0.051880 0.024170 0.943024 0.068878 0.025024 0.942963 0.087402 0.025909 0.942902 0.107758 0.026825 0.942841 0.130341 0.027771 0.942780 0.155457 0.028717 0.942719 0.183563 0.029694 0.942627 0.214661 0.030670 0.942535 0.248688 0.031708 0.942474 0.285400 0.032776 0.942444 0.324493 0.033813 0.942383 0.365723 0.034912 0.942261 0.408691 0.036011 0.942200 0.452972 0.037140 0.942139 0.497437 0.038269 0.942047 0.539734 0.039459 0.941956 0.579132 0.040619 0.941864 0.615814 0.041809 0.941803 0.649780 0.043091 0.941711 0.681335 0.044281 0.941620 0.710876 0.045563 0.941467 0.738800 0.046814 0.941437 0.765259 0.048126 0.941315 0.790588 0.049469 0.941193 0.815033 0.050781 0.941101 0.838837 0.052124 0.941010 0.862274 0.053528 0.940887 0.885651 0.054871 0.940765 0.909302 0.056305 0.940704 0.933807 0.057739 0.940582 0.959961 0.059143 0.940491 0.037109 0.040985 0.940918 0.052948 0.041901 0.940826 0.070068 0.042877 0.940765 0.088654 0.043762 0.940704 0.109131 0.044800 0.940613 0.131836 0.045807 0.940521 0.157074 0.046814 0.940460 0.185394 0.047852 0.940369 0.216644 0.048920 0.940338 0.250763 0.050049 0.940277 0.287537 0.051178 0.940155 0.326691 0.052307 0.940063 0.367950 0.053497 0.940002 0.410919 0.054688 0.939911 0.455200 0.055878 0.939819 0.499451 0.057159 0.939728 0.541504 0.058350 0.939636 0.580719 0.059631 0.939545 0.617188 0.060944 0.939453 0.650940 0.062256 0.939301 0.682373 0.063599 0.939240 0.711792 0.064972 0.939117 0.739563 0.066315 0.939026 0.765900 0.067719 0.938904 0.791168 0.069122 0.938812 0.815491 0.070526 0.938690 0.839233 0.071991 0.938568 0.862579 0.073486 0.938477 0.885834 0.074921 0.938354 0.909454 0.076416 0.938263 0.933868 0.077942 0.938110 0.959961 0.079468 0.938019 0.038208 0.059998 0.938538 0.054108 0.061005 0.938446 0.071320 0.062073 0.938385 0.089996 0.063080 0.938293 0.110596 0.064209 0.938202 0.133392 0.065277 0.938110 0.158844 0.066376 0.938080 0.187286 0.067566 0.937988 0.218658 0.068726 0.937897 0.252899 0.069946 0.937775 0.289795 0.071136 0.937714 0.328949 0.072357 0.937592 0.370270 0.073669 0.937500 0.413177 0.074982 0.937408 0.457397 0.076263 0.937286 0.501556 0.077606 0.937225 0.543335 0.078979 0.937103 0.582336 0.080353 0.936951 0.618622 0.081787 0.936890 0.652191 0.083160 0.936768 0.683441 0.084625 0.936646 0.712708 0.086090 0.936523 0.740356 0.087555 0.936401 0.766571 0.089081 0.936279 0.791748 0.090637 0.936127 0.815979 0.092133 0.936066 0.839630 0.093719 0.935913 0.862915 0.095337 0.935791 0.886108 0.096893 0.935669 0.909637 0.098541 0.935547 0.933990 0.100128 0.935394 0.959961 0.101807 0.935242 0.039337 0.080841 0.935944 0.055298 0.081940 0.935822 0.072601 0.083069 0.935730 0.091400 0.084229 0.935669 0.112122 0.085419 0.935577 0.135040 0.086609 0.935516 0.160614 0.087891 0.935394 0.189209 0.089142 0.935303 0.220764 0.090393 0.935211 0.255127 0.091736 0.935089 0.292084 0.093079 0.934998 0.331299 0.094421 0.934845 0.372650 0.095856 0.934753 0.415588 0.097260 0.934662 0.459717 0.098724 0.934540 0.503662 0.100159 0.934387 0.545227 0.101624 0.934296 0.584015 0.103180 0.934174 0.620056 0.104706 0.934021 0.653381 0.106201 0.933899 0.684509 0.107819 0.933777 0.713654 0.109436 0.933624 0.741150 0.111023 0.933472 0.767273 0.112671 0.933380 0.792297 0.114349 0.933228 0.816467 0.116028 0.933075 0.839996 0.117706 0.932953 0.863220 0.119415 0.932831 0.886383 0.121155 0.932648 0.909760 0.122955 0.932495 0.934021 0.124695 0.932373 0.959961 0.126495 0.932220 0.040558 0.103790 0.933044 0.056580 0.105042 0.932953 0.073914 0.106293 0.932892 0.092834 0.107605 0.932770 0.113708 0.108948 0.932648 0.136749 0.110260 0.932556 0.162537 0.111633 0.932465 0.191254 0.113068 0.932312 0.222931 0.114471 0.932220 0.257385 0.115936 0.932068 0.294434 0.117432 0.931946 0.333710 0.118896 0.931854 0.375000 0.120483 0.931671 0.417938 0.122009 0.931549 0.462006 0.123596 0.931458 0.505829 0.125214 0.931305 0.547089 0.126801 0.931122 0.585693 0.128510 0.931000 0.621490 0.130219 0.930878 0.654663 0.131897 0.930725 0.685608 0.133606 0.930542 0.714569 0.135376 0.930450 0.741974 0.137146 0.930267 0.767944 0.138916 0.930115 0.792877 0.140778 0.929962 0.816956 0.142609 0.929810 0.840424 0.144470 0.929626 0.863525 0.146301 0.929443 0.886566 0.148224 0.929321 0.909943 0.150146 0.929138 0.934113 0.152069 0.928955 0.959961 0.153992 0.928772 0.041748 0.129486 0.929871 0.057861 0.130859 0.929749 0.075287 0.132263 0.929626 0.094330 0.133698 0.929504 0.115265 0.135193 0.929413 0.138550 0.136688 0.929230 0.164429 0.138245 0.929138 0.193390 0.139771 0.928955 0.225159 0.141388 0.928833 0.259705 0.143005 0.928711 0.296814 0.144623 0.928528 0.336182 0.146301 0.928375 0.377472 0.148010 0.928284 0.420349 0.149719 0.928101 0.464355 0.151428 0.927948 0.507965 0.153259 0.927795 0.549042 0.155029 0.927643 0.587341 0.156860 0.927460 0.622955 0.158752 0.927277 0.655945 0.160583 0.927124 0.686676 0.162537 0.926971 0.715515 0.164459 0.926788 0.742737 0.166351 0.926636 0.768677 0.168365 0.926453 0.793488 0.170319 0.926270 0.817444 0.172333 0.926086 0.840851 0.174377 0.925934 0.863831 0.176422 0.925720 0.886810 0.178528 0.925507 0.910126 0.180634 0.925293 0.934235 0.182678 0.925140 0.959961 0.184814 0.924927 0.043030 0.158386 0.926239 0.059235 0.159912 0.926086 0.076782 0.161469 0.925995 0.095886 0.163116 0.925812 0.117004 0.164764 0.925690 0.140350 0.166412 0.925507 0.166443 0.168152 0.925354 0.195526 0.169891 0.925201 0.227448 0.171661 0.925018 0.262115 0.173462 0.924866 0.299255 0.175262 0.924744 0.338654 0.177124 0.924530 0.379974 0.179016 0.924347 0.422852 0.180878 0.924194 0.466736 0.182831 0.924042 0.510162 0.184814 0.923828 0.550964 0.186798 0.923645 0.589081 0.188782 0.923462 0.624420 0.190857 0.923309 0.657196 0.192902 0.923096 0.687775 0.194977 0.922913 0.716492 0.197083 0.922729 0.743591 0.199188 0.922516 0.769348 0.201324 0.922302 0.794067 0.203491 0.922150 0.817932 0.205658 0.921936 0.841217 0.207855 0.921692 0.864166 0.210052 0.921478 0.887054 0.212280 0.921295 0.910278 0.214569 0.921051 0.934296 0.216766 0.920807 0.959961 0.219055 0.920624 0.044373 0.190979 0.922150 0.060638 0.192780 0.921967 0.078247 0.194489 0.921814 0.097534 0.196289 0.921631 0.118744 0.198120 0.921478 0.142273 0.199951 0.921295 0.168518 0.201874 0.921112 0.197723 0.203796 0.920929 0.229797 0.205719 0.920776 0.264526 0.207703 0.920563 0.301788 0.209625 0.920380 0.341217 0.211670 0.920197 0.382538 0.213745 0.920013 0.425354 0.215790 0.919800 0.469177 0.217896 0.919617 0.512329 0.220062 0.919373 0.552887 0.222168 0.919220 0.590790 0.224335 0.919006 0.625916 0.226532 0.918823 0.658478 0.228729 0.918640 0.688873 0.230957 0.918396 0.717407 0.233154 0.918182 0.744385 0.235443 0.917999 0.770020 0.237732 0.917725 0.794647 0.239990 0.917511 0.818420 0.242340 0.917297 0.841644 0.244659 0.917084 0.864471 0.246948 0.916840 0.887299 0.249329 0.916595 0.910461 0.251709 0.916382 0.934387 0.253998 0.916168 0.959961 0.256409 0.915924 0.045715 0.227478 0.917542 0.062073 0.229401 0.917328 0.079773 0.231262 0.917175 0.099182 0.233215 0.916962 0.120514 0.235229 0.916779 0.144196 0.237213 0.916565 0.170624 0.239258 0.916412 0.200012 0.241333 0.916199 0.232208 0.243408 0.915985 0.267059 0.245514 0.915802 0.304321 0.247620 0.915619 0.343781 0.249817 0.915375 0.385162 0.251984 0.915192 0.427917 0.254150 0.914948 0.471619 0.256439 0.914795 0.514526 0.258728 0.914551 0.554840 0.260925 0.914368 0.592468 0.263214 0.914154 0.627411 0.265564 0.913910 0.659729 0.267853 0.913666 0.690002 0.270172 0.913422 0.718353 0.272491 0.913208 0.745209 0.274872 0.912964 0.770752 0.277283 0.912750 0.795258 0.279633 0.912537 0.818909 0.282013 0.912292 0.842010 0.284454 0.912018 0.864838 0.286835 0.911804 0.887543 0.289276 0.911591 0.910614 0.291718 0.911316 0.934479 0.294098 0.911133 0.959961 0.296570 0.910889 0.047150 0.267517 0.912445 0.063568 0.269531 0.912262 0.081390 0.271545 0.912048 0.100891 0.273651 0.911835 0.122375 0.275757 0.911652 0.146210 0.277832 0.911469 0.172791 0.279999 0.911224 0.202301 0.282135 0.911041 0.234619 0.284363 0.910858 0.269592 0.286621 0.910583 0.306946 0.288849 0.910400 0.346436 0.291107 0.910156 0.387787 0.293427 0.909973 0.430511 0.295685 0.909760 0.474091 0.298035 0.909546 0.516754 0.300415 0.909302 0.556824 0.302704 0.909058 0.594208 0.305084 0.908844 0.628876 0.307434 0.908600 0.661072 0.309845 0.908356 0.691071 0.312256 0.908112 0.719299 0.314606 0.907898 0.746002 0.317108 0.907654 0.771454 0.319519 0.907410 0.795807 0.321930 0.907166 0.819397 0.324402 0.906921 0.842438 0.326874 0.906708 0.865112 0.329285 0.906464 0.887817 0.331757 0.906250 0.910767 0.334198 0.905975 0.934570 0.336609 0.905792 0.959961 0.339111 0.905518 0.048584 0.310699 0.906982 0.065125 0.312866 0.906738 0.083008 0.314941 0.906586 0.102631 0.317139 0.906342 0.124237 0.319336 0.906128 0.148254 0.321533 0.905945 0.175018 0.323761 0.905701 0.204651 0.325958 0.905487 0.237122 0.328278 0.905273 0.272217 0.330566 0.905029 0.309570 0.332855 0.904846 0.349121 0.335236 0.904602 0.390381 0.337585 0.904388 0.433105 0.339874 0.904175 0.476593 0.342316 0.903900 0.519043 0.344666 0.903687 0.558777 0.347046 0.903442 0.595917 0.349487 0.903229 0.630341 0.351837 0.902985 0.662323 0.354340 0.902740 0.692200 0.356720 0.902527 0.720306 0.359131 0.902283 0.746796 0.361633 0.902008 0.772125 0.364105 0.901764 0.796387 0.366516 0.901550 0.819885 0.368958 0.901306 0.842834 0.371429 0.901093 0.865448 0.373871 0.900818 0.888031 0.376373 0.900604 0.910919 0.378754 0.900360 0.934692 0.381226 0.900146 0.959961 0.383636 0.899902 0.050079 0.356659 0.901154 0.066681 0.358887 0.900940 0.084686 0.360992 0.900726 0.104431 0.363251 0.900513 0.126190 0.365417 0.900299 0.150330 0.367676 0.900055 0.177246 0.369995 0.899841 0.207031 0.372284 0.899628 0.239624 0.374573 0.899445 0.274750 0.376923 0.899200 0.312256 0.379242 0.898987 0.351776 0.381592 0.898743 0.393066 0.383972 0.898499 0.435699 0.386322 0.898285 0.479095 0.388702 0.898041 0.521240 0.391113 0.897797 0.560760 0.393494 0.897552 0.597595 0.395935 0.897339 0.631805 0.398346 0.897125 0.663605 0.400696 0.896881 0.693268 0.403198 0.896606 0.721191 0.405609 0.896393 0.747650 0.408051 0.896149 0.772827 0.410492 0.895905 0.796997 0.412842 0.895660 0.820374 0.415283 0.895447 0.843231 0.417694 0.895233 0.865753 0.420105 0.894989 0.888245 0.422516 0.894775 0.911072 0.424866 0.894562 0.934723 0.427338 0.894287 0.959961 0.429688 0.894043 0.051605 0.404816 0.895020 0.068298 0.407074 0.894806 0.086395 0.409271 0.894592 0.106293 0.411469 0.894379 0.128174 0.413666 0.894165 0.152496 0.415924 0.893951 0.179565 0.418213 0.893768 0.209534 0.420502 0.893494 0.242218 0.422791 0.893341 0.277466 0.425140 0.893097 0.314972 0.427429 0.892853 0.354492 0.429810 0.892639 0.395813 0.432159 0.892395 0.438354 0.434418 0.892181 0.481598 0.436829 0.891937 0.523468 0.439148 0.891724 0.562714 0.441528 0.891510 0.599365 0.443939 0.891266 0.633301 0.446289 0.891022 0.664825 0.448639 0.890808 0.694397 0.451019 0.890564 0.722137 0.453369 0.890320 0.748444 0.455750 0.890076 0.773529 0.458160 0.889862 0.797577 0.460449 0.889679 0.820831 0.462860 0.889435 0.843628 0.465149 0.889221 0.866058 0.467468 0.889008 0.888519 0.469788 0.888794 0.911255 0.472046 0.888550 0.934845 0.474396 0.888306 0.959961 0.476654 0.888092 0.053131 0.454651 0.888702 0.069916 0.456787 0.888489 0.088165 0.458954 0.888306 0.108154 0.461212 0.888062 0.130157 0.463348 0.887909 0.154694 0.465576 0.887665 0.181915 0.467865 0.887451 0.211975 0.470032 0.887268 0.244812 0.472321 0.887024 0.280151 0.474579 0.886810 0.317627 0.476837 0.886597 0.357269 0.479095 0.886383 0.398438 0.481323 0.886139 0.440979 0.483582 0.885956 0.484100 0.485870 0.885742 0.525604 0.488129 0.885529 0.564667 0.490387 0.885284 0.601013 0.492676 0.885071 0.634735 0.494873 0.884857 0.666138 0.497131 0.884613 0.695496 0.499420 0.884399 0.723083 0.501648 0.884216 0.749268 0.503937 0.884033 0.774170 0.506165 0.883820 0.798126 0.508331 0.883636 0.821320 0.510498 0.883423 0.843994 0.512634 0.883179 0.866364 0.514771 0.882996 0.888763 0.516968 0.882782 0.911407 0.518982 0.882599 0.934937 0.521149 0.882385 0.959961 0.523224 0.882202 0.054749 0.505066 0.882294 0.071625 0.507111 0.882111 0.089935 0.509155 0.881927 0.110046 0.511261 0.881714 0.132233 0.513275 0.881561 0.156891 0.515381 0.881378 0.184296 0.517456 0.881165 0.214569 0.519531 0.880981 0.247467 0.521576 0.880768 0.282837 0.523712 0.880585 0.320435 0.525757 0.880371 0.360016 0.527802 0.880219 0.401184 0.529846 0.880035 0.443726 0.531921 0.879822 0.486633 0.533966 0.879608 0.527863 0.535950 0.879425 0.566589 0.537994 0.879242 0.602722 0.540039 0.879059 0.636200 0.541992 0.878876 0.667358 0.544067 0.878693 0.696564 0.546051 0.878571 0.723999 0.547943 0.878387 0.750031 0.549927 0.878235 0.774872 0.551880 0.878052 0.798706 0.553741 0.877838 0.821808 0.555695 0.877686 0.844421 0.557556 0.877502 0.866669 0.559509 0.877350 0.888947 0.561310 0.877167 0.911591 0.563141 0.876984 0.934998 0.564941 0.876831 0.959961 0.566772 0.876678 0.056335 0.553284 0.876190 0.073303 0.555115 0.876007 0.091766 0.556885 0.875885 0.112000 0.558746 0.875732 0.134308 0.560547 0.875549 0.159149 0.562408 0.875397 0.186737 0.564240 0.875244 0.217041 0.566101 0.875092 0.250061 0.567871 0.874908 0.285553 0.569733 0.874756 0.323181 0.571472 0.874634 0.362762 0.573334 0.874420 0.403931 0.575104 0.874268 0.446289 0.576904 0.874115 0.489075 0.578705 0.873962 0.530060 0.580475 0.873779 0.568542 0.582245 0.873657 0.604401 0.584015 0.873505 0.637634 0.585754 0.873413 0.668640 0.587463 0.873260 0.697662 0.589233 0.873108 0.724945 0.590912 0.872955 0.750824 0.592621 0.872803 0.775513 0.594269 0.872681 0.799255 0.595917 0.872528 0.822296 0.597595 0.872406 0.844757 0.599243 0.872253 0.867004 0.600830 0.872101 0.889191 0.602478 0.871948 0.911743 0.604004 0.871826 0.935089 0.605591 0.871704 0.959961 0.607147 0.871552 0.058014 0.597839 0.870575 0.075043 0.599396 0.870453 0.093597 0.601013 0.870300 0.113953 0.602631 0.870178 0.136444 0.604156 0.870056 0.161407 0.605774 0.869934 0.189148 0.607361 0.869781 0.219666 0.608917 0.869629 0.252808 0.610535 0.869507 0.288300 0.612122 0.869385 0.325928 0.613678 0.869263 0.365479 0.615265 0.869110 0.406616 0.616791 0.869019 0.448914 0.618378 0.868866 0.491547 0.619934 0.868774 0.532257 0.621460 0.868652 0.570435 0.622955 0.868591 0.606049 0.624512 0.868439 0.639130 0.625977 0.868347 0.669891 0.627502 0.868195 0.698700 0.628967 0.868073 0.725830 0.630432 0.867981 0.751617 0.631897 0.867859 0.776184 0.633301 0.867767 0.799805 0.634735 0.867645 0.822754 0.636169 0.867493 0.845154 0.637573 0.867371 0.867310 0.638916 0.867310 0.889435 0.640320 0.867188 0.911896 0.641632 0.867065 0.935181 0.642944 0.866974 0.959961 0.644257 0.866882 0.059662 0.638702 0.865417 0.076813 0.640137 0.865326 0.095490 0.641449 0.865173 0.115967 0.642853 0.865112 0.138580 0.644226 0.864990 0.163696 0.645630 0.864868 0.191650 0.647003 0.864746 0.222260 0.648346 0.864685 0.255463 0.649719 0.864594 0.291016 0.651031 0.864471 0.328705 0.652405 0.864380 0.368286 0.653778 0.864288 0.409363 0.655060 0.864197 0.451569 0.656433 0.864105 0.493988 0.657715 0.864075 0.534393 0.659027 0.863953 0.572357 0.660339 0.863892 0.607666 0.661621 0.863770 0.640533 0.662903 0.863678 0.671082 0.664154 0.863586 0.699738 0.665466 0.863495 0.726746 0.666718 0.863403 0.752380 0.667908 0.863312 0.776825 0.669098 0.863220 0.800385 0.670349 0.863129 0.823212 0.671570 0.863068 0.845490 0.672729 0.862976 0.867584 0.673920 0.862885 0.889648 0.675049 0.862793 0.912048 0.676178 0.862732 0.935242 0.677338 0.862640 0.959961 0.678406 0.862579 0.061371 0.676178 0.860657 0.078613 0.677368 0.860596 0.097382 0.678589 0.860535 0.118011 0.679749 0.860443 0.140778 0.680908 0.860352 0.166046 0.682098 0.860291 0.194122 0.683289 0.860229 0.224884 0.684418 0.860138 0.258148 0.685577 0.860077 0.293732 0.686737 0.859985 0.331482 0.687866 0.859924 0.371033 0.689026 0.859894 0.412048 0.690186 0.859863 0.454163 0.691315 0.859772 0.496399 0.692413 0.859680 0.536560 0.693542 0.859619 0.574188 0.694672 0.859528 0.609314 0.695740 0.859497 0.641907 0.696838 0.859406 0.672272 0.697937 0.859344 0.700775 0.699005 0.859283 0.727631 0.700043 0.859222 0.753113 0.701111 0.859131 0.777466 0.702148 0.859100 0.800903 0.703217 0.859009 0.823608 0.704193 0.858948 0.845856 0.705200 0.858887 0.867859 0.706207 0.858826 0.889862 0.707184 0.858765 0.912140 0.708099 0.858704 0.935333 0.709076 0.858643 0.959961 0.709991 0.858612 0.063080 0.710602 0.856384 0.080383 0.711639 0.856293 0.099274 0.712646 0.856232 0.120026 0.713654 0.856201 0.142944 0.714630 0.856171 0.168396 0.715698 0.856079 0.196594 0.716675 0.856049 0.227478 0.717682 0.855988 0.260864 0.718689 0.855927 0.296509 0.719666 0.855896 0.334229 0.720642 0.855835 0.373749 0.721588 0.855835 0.414734 0.722565 0.855774 0.456757 0.723541 0.855743 0.498810 0.724548 0.855652 0.538635 0.725464 0.855621 0.576050 0.726440 0.855560 0.610870 0.727325 0.855530 0.643280 0.728271 0.855469 0.673492 0.729187 0.855438 0.701752 0.730103 0.855377 0.728455 0.730988 0.855347 0.753876 0.731873 0.855286 0.778107 0.732788 0.855225 0.801453 0.733643 0.855194 0.824066 0.734497 0.855164 0.846222 0.735352 0.855072 0.868134 0.736176 0.855072 0.890076 0.736969 0.854980 0.912323 0.737793 0.855011 0.935394 0.738617 0.854919 0.959961 0.739349 0.854919 0.064819 0.742554 0.852356 0.082214 0.743408 0.852325 0.101257 0.744263 0.852295 0.122101 0.745148 0.852264 0.145172 0.746002 0.852234 0.170776 0.746857 0.852173 0.199097 0.747711 0.852142 0.230103 0.748566 0.852142 0.263550 0.749420 0.852081 0.299255 0.750275 0.852112 0.337006 0.751099 0.852051 0.376526 0.751953 0.852051 0.417419 0.752747 0.851990 0.459351 0.753571 0.851990 0.501160 0.754395 0.851929 0.540741 0.755219 0.851898 0.577850 0.755981 0.851898 0.612427 0.756775 0.851837 0.644623 0.757599 0.851807 0.674622 0.758362 0.851776 0.702759 0.759125 0.851746 0.729309 0.759888 0.851715 0.754578 0.760651 0.851685 0.778717 0.761383 0.851685 0.801941 0.762115 0.851593 0.824493 0.762848 0.851593 0.846558 0.763550 0.851532 0.868408 0.764252 0.851562 0.890259 0.764923 0.851501 0.912415 0.765625 0.851532 0.935455 0.766296 0.851501 0.959961 0.766937 0.851471 0.066559 0.772369 0.848663 0.084015 0.773071 0.848633 0.103180 0.773804 0.848633 0.124146 0.774567 0.848572 0.147400 0.775269 0.848541 0.173157 0.776031 0.848572 0.201630 0.776764 0.848541 0.232727 0.777466 0.848572 0.266266 0.778198 0.848541 0.301971 0.778931 0.848541 0.339783 0.779602 0.848511 0.379272 0.780334 0.848511 0.420074 0.781036 0.848450 0.461884 0.781708 0.848450 0.503418 0.782379 0.848450 0.542755 0.783081 0.848419 0.579620 0.783752 0.848389 0.613953 0.784424 0.848389 0.645935 0.785126 0.848389 0.675720 0.785767 0.848328 0.703735 0.786377 0.848328 0.730133 0.787048 0.848328 0.755280 0.787659 0.848297 0.779297 0.788300 0.848297 0.802429 0.788879 0.848267 0.824890 0.789551 0.848297 0.846893 0.790100 0.848236 0.868652 0.790680 0.848267 0.890472 0.791260 0.848236 0.912567 0.791840 0.848236 0.935486 0.792419 0.848206 0.959961 0.792938 0.848206 0.068298 0.800415 0.845154 0.085907 0.801025 0.845154 0.105103 0.801666 0.845123 0.126221 0.802277 0.845184 0.149628 0.802917 0.845154 0.175537 0.803528 0.845184 0.204132 0.804138 0.845184 0.235352 0.804779 0.845184 0.268921 0.805359 0.845154 0.304718 0.805939 0.845154 0.342499 0.806549 0.845123 0.381927 0.807159 0.845154 0.422699 0.807709 0.845154 0.464355 0.808319 0.845154 0.505707 0.808899 0.845093 0.544739 0.809479 0.845154 0.581360 0.810059 0.845123 0.615509 0.810577 0.845093 0.647186 0.811157 0.845123 0.676849 0.811707 0.845123 0.704681 0.812225 0.845093 0.730988 0.812775 0.845123 0.755981 0.813324 0.845062 0.779846 0.813843 0.845123 0.802917 0.814331 0.845093 0.825287 0.814789 0.845093 0.847229 0.815369 0.845123 0.868896 0.815826 0.845123 0.890656 0.816284 0.845123 0.912689 0.816742 0.845123 0.935577 0.817200 0.845093 0.959961 0.817657 0.845123 0.070068 0.827026 0.841827 0.087738 0.827576 0.841888 0.107117 0.828094 0.841888 0.128326 0.828613 0.841919 0.151855 0.829132 0.841919 0.177917 0.829620 0.841949 0.206696 0.830170 0.841949 0.237976 0.830658 0.841949 0.271606 0.831177 0.841949 0.307404 0.831696 0.841949 0.345184 0.832184 0.841980 0.384521 0.832642 0.841949 0.425262 0.833160 0.841949 0.466858 0.833679 0.842010 0.507935 0.834137 0.842010 0.546722 0.834564 0.841980 0.583038 0.835083 0.842010 0.616943 0.835541 0.842010 0.648499 0.836029 0.842010 0.677948 0.836426 0.842041 0.705597 0.836884 0.842010 0.731720 0.837341 0.842072 0.756622 0.837769 0.842041 0.780457 0.838196 0.842072 0.803375 0.838623 0.842102 0.825684 0.839020 0.842102 0.847565 0.839447 0.842102 0.869141 0.839874 0.842102 0.890839 0.840240 0.842102 0.912811 0.840637 0.842133 0.935638 0.841003 0.842133 0.959961 0.841370 0.842163 0.071808 0.852539 0.838715 0.089630 0.852966 0.838776 0.109070 0.853424 0.838776 0.130463 0.853821 0.838806 0.154083 0.854279 0.838806 0.180298 0.854675 0.838837 0.209167 0.855103 0.838837 0.240540 0.855530 0.838867 0.274261 0.855957 0.838898 0.310089 0.856384 0.838867 0.347839 0.856781 0.838898 0.387177 0.857178 0.838959 0.427795 0.857605 0.838959 0.469238 0.858002 0.838928 0.510132 0.858368 0.838989 0.548584 0.858765 0.838989 0.584717 0.859131 0.839020 0.618378 0.859528 0.839050 0.649689 0.859924 0.839020 0.678955 0.860291 0.839111 0.706451 0.860626 0.839081 0.732513 0.861023 0.839081 0.757233 0.861359 0.839142 0.781006 0.861694 0.839172 0.803833 0.862061 0.839172 0.826050 0.862366 0.839203 0.847839 0.862701 0.839172 0.869415 0.863068 0.839233 0.890961 0.863342 0.839233 0.912933 0.863647 0.839264 0.935699 0.863953 0.839264 0.959961 0.864258 0.839294 0.073547 0.877197 0.835693 0.091492 0.877563 0.835724 0.111023 0.877869 0.835754 0.132538 0.878235 0.835754 0.156311 0.878571 0.835785 0.182678 0.878937 0.835815 0.211670 0.879272 0.835876 0.243134 0.879639 0.835846 0.276886 0.879944 0.835876 0.312714 0.880310 0.835938 0.350464 0.880615 0.835968 0.389740 0.880951 0.835968 0.430298 0.881287 0.835999 0.471619 0.881592 0.836029 0.512238 0.881927 0.836060 0.550476 0.882202 0.836090 0.586334 0.882538 0.836090 0.619781 0.882843 0.836151 0.650879 0.883179 0.836151 0.679993 0.883453 0.836182 0.707336 0.883728 0.836243 0.733246 0.884033 0.836273 0.757904 0.884277 0.836304 0.781525 0.884613 0.836273 0.804291 0.884857 0.836304 0.826447 0.885101 0.836365 0.848145 0.885406 0.836365 0.869598 0.885620 0.836426 0.891144 0.885895 0.836426 0.913055 0.886108 0.836456 0.935791 0.886353 0.836456 0.959961 0.886536 0.836517 0.075348 0.901276 0.832703 0.093323 0.901581 0.832733 0.113007 0.901855 0.832764 0.134644 0.902130 0.832825 0.158539 0.902374 0.832855 0.185059 0.902679 0.832855 0.214081 0.902924 0.832886 0.245636 0.903229 0.832977 0.279449 0.903473 0.832977 0.315338 0.903748 0.833008 0.353027 0.903992 0.833069 0.392273 0.904236 0.833099 0.432739 0.904510 0.833099 0.473938 0.904755 0.833160 0.514221 0.905029 0.833160 0.552246 0.905212 0.833221 0.587921 0.905487 0.833252 0.621094 0.905731 0.833282 0.652008 0.905914 0.833344 0.680939 0.906189 0.833374 0.708160 0.906403 0.833405 0.733978 0.906616 0.833405 0.758484 0.906830 0.833466 0.781982 0.907074 0.833496 0.804718 0.907257 0.833527 0.826752 0.907471 0.833588 0.848419 0.907654 0.833588 0.869843 0.907867 0.833618 0.891327 0.908051 0.833618 0.913147 0.908203 0.833710 0.935822 0.908417 0.833710 0.959961 0.908569 0.833710 0.077118 0.925201 0.829712 0.095215 0.925385 0.829803 0.114990 0.925598 0.829834 0.136719 0.925812 0.829865 0.160736 0.925995 0.829895 0.187378 0.926178 0.829956 0.216553 0.926392 0.829987 0.248199 0.926636 0.830017 0.282013 0.926819 0.830078 0.317902 0.927002 0.830139 0.355591 0.927185 0.830170 0.394745 0.927399 0.830200 0.435150 0.927551 0.830231 0.476166 0.927765 0.830292 0.516296 0.927917 0.830353 0.554016 0.928101 0.830383 0.589386 0.928253 0.830444 0.622375 0.928467 0.830475 0.653107 0.928619 0.830536 0.681915 0.928802 0.830536 0.708984 0.928955 0.830566 0.734650 0.929108 0.830658 0.759064 0.929291 0.830658 0.782501 0.929443 0.830719 0.805115 0.929565 0.830750 0.827087 0.929688 0.830780 0.848663 0.929871 0.830780 0.870056 0.930023 0.830872 0.891510 0.930145 0.830872 0.913269 0.930298 0.830902 0.935852 0.930420 0.830933 0.959961 0.930511 0.830933 0.078857 0.949188 0.826752 0.097046 0.949341 0.826813 0.116913 0.949524 0.826843 0.138733 0.949646 0.826904 0.162964 0.949768 0.826965 0.189697 0.949890 0.826996 0.219025 0.950043 0.827057 0.250641 0.950165 0.827118 0.284454 0.950287 0.827179 0.320404 0.950409 0.827209 0.358032 0.950562 0.827240 0.397125 0.950684 0.827332 0.437500 0.950806 0.827362 0.478333 0.950928 0.827423 0.518188 0.951019 0.827454 0.555695 0.951172 0.827545 0.590851 0.951294 0.827576 0.623688 0.951385 0.827606 0.654205 0.951508 0.827637 0.682831 0.951660 0.827728 0.709747 0.951752 0.827728 0.735291 0.951843 0.827820 0.759613 0.951935 0.827850 0.782990 0.952026 0.827881 0.805481 0.952148 0.827911 0.827423 0.952240 0.827911 0.848907 0.952332 0.828003 0.870270 0.952423 0.828003 0.891602 0.952515 0.828064 0.913391 0.952576 0.828064 0.935944 0.952667 0.828094 0.959961 0.952759 0.828125 0.080627 0.973877 0.823669 0.098907 0.973969 0.823761 0.118866 0.974030 0.823822 0.140839 0.974121 0.823853 0.165131 0.974182 0.823914 0.191986 0.974243 0.824005 0.221344 0.974335 0.824036 0.253082 0.974396 0.824097 0.286987 0.974426 0.824158 0.322815 0.974518 0.824219 0.360474 0.974579 0.824280 0.399506 0.974609 0.824341 0.439758 0.974731 0.824402 0.480469 0.974762 0.824463 0.520050 0.974854 0.824524 0.557281 0.974884 0.824554 0.592285 0.974976 0.824615 0.624878 0.975006 0.824677 0.655212 0.975067 0.824707 0.683685 0.975098 0.824799 0.710510 0.975189 0.824829 0.735901 0.975220 0.824860 0.760162 0.975281 0.824890 0.783417 0.975311 0.824921 0.805847 0.975342 0.825012 0.827728 0.975403 0.825043 0.849182 0.975464 0.825073 0.870392 0.975494 0.825073 0.891754 0.975555 0.825134 0.913483 0.975586 0.825165 0.935974 0.975647 0.825226 0.959961 0.975708 0.825226 0.082336 1.000000 0.820435 0.100677 1.000000 0.820496 0.120758 1.000000 0.820557 0.142853 1.000000 0.820648 0.167267 1.000000 0.820709 0.194244 1.000000 0.820770 0.223694 1.000000 0.820831 0.255463 1.000000 0.820923 0.289368 1.000000 0.820984 0.325226 1.000000 0.821045 0.362793 1.000000 0.821106 0.401794 1.000000 0.821198 0.441925 1.000000 0.821259 0.482544 1.000000 0.821289 0.521851 1.000000 0.821350 0.558899 1.000000 0.821442 0.593628 1.000000 0.821472 0.625977 1.000000 0.821564 0.656219 1.000000 0.821594 0.684479 1.000000 0.821625 0.711182 1.000000 0.821686 0.736481 1.000000 0.821716 0.760651 1.000000 0.821808 0.783813 1.000000 0.821838 0.806183 1.000000 0.821869 0.827972 1.000000 0.821899 0.849396 1.000000 0.821960 0.870575 1.000000 0.821991 0.891876 1.000000 0.822052 0.913544 1.000000 0.822083 0.936005 1.000000 0.822113 0.959961 1.000000 0.822144 0.035339 0.006989 0.971130 0.051025 0.007782 0.971069 0.067932 0.008575 0.971008 0.086395 0.009430 0.970947 0.106659 0.010254 0.970825 0.129150 0.011139 0.970764 0.154114 0.012054 0.970673 0.182129 0.012970 0.970581 0.213165 0.013916 0.970459 0.247070 0.014893 0.970428 0.283691 0.015869 0.970306 0.322754 0.016876 0.970184 0.364014 0.017914 0.970093 0.406952 0.018921 0.969971 0.451263 0.020020 0.969879 0.495880 0.021118 0.969788 0.538269 0.022217 0.969666 0.577881 0.023315 0.969574 0.614716 0.024475 0.969452 0.648773 0.025635 0.969330 0.680542 0.026825 0.969208 0.710175 0.028015 0.969116 0.738190 0.029205 0.968994 0.764740 0.030487 0.968842 0.790131 0.031708 0.968719 0.814667 0.032959 0.968628 0.838501 0.034271 0.968475 0.862000 0.035522 0.968353 0.885468 0.036865 0.968201 0.909149 0.038177 0.968109 0.933716 0.039520 0.967957 0.959961 0.040863 0.967834 0.036255 0.023651 0.969025 0.052094 0.024506 0.968994 0.069092 0.025360 0.968872 0.087616 0.026245 0.968781 0.107971 0.027130 0.968719 0.130585 0.028107 0.968597 0.155762 0.029053 0.968475 0.183868 0.030029 0.968445 0.215027 0.031036 0.968353 0.249115 0.032104 0.968201 0.285767 0.033142 0.968109 0.324890 0.034180 0.968018 0.366150 0.035309 0.967896 0.409119 0.036377 0.967804 0.453400 0.037567 0.967682 0.497833 0.038696 0.967560 0.540070 0.039886 0.967438 0.579468 0.041077 0.967316 0.616089 0.042267 0.967194 0.649963 0.043488 0.967102 0.681549 0.044769 0.966949 0.711060 0.046051 0.966827 0.738953 0.047333 0.966705 0.765411 0.048645 0.966583 0.790680 0.049927 0.966461 0.815094 0.051300 0.966309 0.838898 0.052612 0.966156 0.862305 0.054016 0.966034 0.885681 0.055420 0.965881 0.909332 0.056793 0.965729 0.933807 0.058228 0.965576 0.959961 0.059662 0.965454 0.037323 0.041321 0.966797 0.053162 0.042267 0.966705 0.070282 0.043182 0.966614 0.088898 0.044159 0.966522 0.109375 0.045135 0.966400 0.132111 0.046173 0.966339 0.157410 0.047211 0.966248 0.185699 0.048279 0.966125 0.217010 0.049347 0.966003 0.251190 0.050446 0.965881 0.287933 0.051605 0.965759 0.327148 0.052734 0.965698 0.368408 0.053955 0.965546 0.411316 0.055115 0.965424 0.455566 0.056335 0.965302 0.499878 0.057587 0.965179 0.541840 0.058838 0.965057 0.581085 0.060120 0.964935 0.617462 0.061432 0.964813 0.651184 0.062744 0.964661 0.682587 0.064117 0.964478 0.711975 0.065460 0.964386 0.739716 0.066833 0.964264 0.766022 0.068268 0.964081 0.791260 0.069641 0.963959 0.815613 0.071075 0.963837 0.839294 0.072510 0.963654 0.862640 0.073975 0.963501 0.885895 0.075500 0.963348 0.909454 0.076996 0.963196 0.933868 0.078491 0.963074 0.959961 0.080078 0.962860 0.038422 0.060364 0.964386 0.054352 0.061371 0.964294 0.071503 0.062408 0.964142 0.090271 0.063507 0.964111 0.110840 0.064575 0.963989 0.133728 0.065674 0.963837 0.159149 0.066833 0.963745 0.187622 0.067993 0.963623 0.219055 0.069153 0.963501 0.253326 0.070404 0.963379 0.290131 0.071625 0.963257 0.329407 0.072876 0.963135 0.370636 0.074127 0.963013 0.413696 0.075439 0.962860 0.457794 0.076782 0.962708 0.501923 0.078094 0.962616 0.543701 0.079468 0.962463 0.582672 0.080872 0.962311 0.618866 0.082275 0.962128 0.652374 0.083710 0.962036 0.683655 0.085175 0.961853 0.712921 0.086639 0.961700 0.740509 0.088104 0.961548 0.766724 0.089691 0.961395 0.791840 0.091156 0.961243 0.816071 0.092743 0.961060 0.839691 0.094238 0.960907 0.862946 0.095886 0.960754 0.886139 0.097504 0.960602 0.909668 0.099091 0.960388 0.933990 0.100769 0.960236 0.959961 0.102417 0.960052 0.039551 0.081207 0.961700 0.055542 0.082336 0.961639 0.072815 0.083496 0.961548 0.091675 0.084656 0.961395 0.112366 0.085846 0.961273 0.135345 0.087097 0.961121 0.160950 0.088379 0.960999 0.189575 0.089600 0.960907 0.221161 0.090912 0.960754 0.255554 0.092255 0.960602 0.292480 0.093567 0.960449 0.331787 0.094971 0.960327 0.373016 0.096344 0.960175 0.415955 0.097778 0.959991 0.460114 0.099243 0.959900 0.504028 0.100677 0.959747 0.545563 0.102203 0.959534 0.584320 0.103760 0.959412 0.620300 0.105225 0.959259 0.653687 0.106812 0.959076 0.684723 0.108459 0.958893 0.713806 0.110016 0.958771 0.741302 0.111633 0.958588 0.767395 0.113281 0.958405 0.792419 0.114960 0.958221 0.816589 0.116638 0.958069 0.840088 0.118317 0.957886 0.863281 0.120087 0.957672 0.886414 0.121826 0.957520 0.909821 0.123566 0.957306 0.934082 0.125366 0.957062 0.959961 0.127197 0.956940 0.040741 0.104279 0.958832 0.056763 0.105499 0.958679 0.074158 0.106750 0.958557 0.093140 0.108093 0.958405 0.113953 0.109406 0.958252 0.137146 0.110779 0.958160 0.162872 0.112152 0.958008 0.191650 0.113556 0.957855 0.223328 0.115021 0.957642 0.257843 0.116425 0.957520 0.294800 0.117981 0.957367 0.334167 0.119507 0.957153 0.375488 0.121033 0.957062 0.418396 0.122589 0.956879 0.462433 0.124207 0.956665 0.506165 0.125793 0.956573 0.547455 0.127441 0.956390 0.585968 0.129150 0.956177 0.621735 0.130798 0.955994 0.654938 0.132538 0.955841 0.685822 0.134277 0.955658 0.714752 0.135986 0.955444 0.742126 0.137817 0.955231 0.768066 0.139587 0.955078 0.792999 0.141418 0.954895 0.817017 0.143250 0.954651 0.840485 0.145142 0.954468 0.863586 0.147003 0.954254 0.886627 0.148895 0.954010 0.909943 0.150787 0.953857 0.934143 0.152771 0.953644 0.959961 0.154755 0.953400 0.041992 0.130005 0.955536 0.058105 0.131348 0.955383 0.075562 0.132782 0.955231 0.094666 0.134277 0.955109 0.115631 0.135742 0.954926 0.138885 0.137238 0.954773 0.164856 0.138794 0.954559 0.193726 0.140350 0.954437 0.225586 0.141968 0.954254 0.260132 0.143555 0.954041 0.297272 0.145233 0.953918 0.336670 0.146973 0.953705 0.377899 0.148621 0.953491 0.420868 0.150391 0.953369 0.464813 0.152161 0.953156 0.508331 0.153900 0.952972 0.549377 0.155731 0.952759 0.587708 0.157562 0.952576 0.623199 0.159424 0.952362 0.656158 0.161316 0.952148 0.686859 0.163208 0.951935 0.715698 0.165161 0.951752 0.742920 0.167145 0.951569 0.768768 0.169067 0.951294 0.793579 0.171082 0.951080 0.817505 0.173096 0.950867 0.840912 0.175110 0.950623 0.863892 0.177216 0.950439 0.886871 0.179291 0.950195 0.910126 0.181335 0.949951 0.934235 0.183472 0.949707 0.959961 0.185577 0.949524 0.043304 0.158936 0.951843 0.059509 0.160492 0.951630 0.077026 0.162079 0.951508 0.096191 0.163727 0.951324 0.117310 0.165344 0.951111 0.140747 0.167053 0.950958 0.166809 0.168762 0.950775 0.195862 0.170502 0.950531 0.227905 0.172302 0.950409 0.262543 0.174103 0.950195 0.299683 0.175964 0.949951 0.339142 0.177795 0.949799 0.380463 0.179657 0.949585 0.423309 0.181610 0.949341 0.467163 0.183563 0.949158 0.510498 0.185516 0.948944 0.551331 0.187531 0.948730 0.589355 0.189575 0.948486 0.624695 0.191589 0.948273 0.657410 0.193665 0.948059 0.687988 0.195709 0.947845 0.716675 0.197845 0.947571 0.743744 0.199982 0.947327 0.769470 0.202087 0.947113 0.794189 0.204285 0.946838 0.818024 0.206482 0.946625 0.841278 0.208618 0.946381 0.864258 0.210907 0.946106 0.887146 0.213104 0.945862 0.910339 0.215332 0.945679 0.934296 0.217590 0.945404 0.959961 0.219818 0.945129 0.044617 0.191650 0.947662 0.060883 0.193390 0.947479 0.078552 0.195190 0.947235 0.097809 0.196960 0.947083 0.119049 0.198792 0.946869 0.142639 0.200684 0.946625 0.168884 0.202545 0.946472 0.198120 0.204468 0.946259 0.230225 0.206451 0.945984 0.264984 0.208374 0.945831 0.302277 0.210419 0.945587 0.341705 0.212463 0.945343 0.383026 0.214508 0.945129 0.425842 0.216583 0.944916 0.469666 0.218719 0.944672 0.512695 0.220795 0.944427 0.553314 0.222961 0.944183 0.591064 0.225098 0.943970 0.626190 0.227325 0.943756 0.658752 0.229553 0.943451 0.689087 0.231750 0.943207 0.717590 0.234009 0.942963 0.744537 0.236298 0.942657 0.770172 0.238556 0.942474 0.794739 0.240845 0.942200 0.818512 0.243195 0.941925 0.841705 0.245483 0.941650 0.864502 0.247864 0.941437 0.887329 0.250153 0.941162 0.910492 0.252502 0.940887 0.934387 0.254883 0.940613 0.959961 0.257233 0.940369 0.045990 0.228180 0.942963 0.062347 0.230072 0.942749 0.080109 0.232025 0.942566 0.099457 0.233948 0.942291 0.120880 0.235962 0.942139 0.144562 0.237946 0.941895 0.170959 0.239960 0.941650 0.200409 0.242096 0.941467 0.232635 0.244202 0.941223 0.267487 0.246277 0.940948 0.304810 0.248413 0.940735 0.344299 0.250610 0.940491 0.385590 0.252808 0.940247 0.428406 0.255005 0.940002 0.472076 0.257233 0.939728 0.514954 0.259491 0.939514 0.555206 0.261810 0.939270 0.592773 0.264038 0.938965 0.627655 0.266357 0.938690 0.660004 0.268738 0.938446 0.690186 0.271027 0.938171 0.718536 0.273376 0.937958 0.745361 0.275757 0.937653 0.770874 0.278107 0.937378 0.795349 0.280518 0.937103 0.819031 0.282928 0.936890 0.842102 0.285309 0.936615 0.864868 0.287750 0.936310 0.887573 0.290131 0.936035 0.910645 0.292572 0.935791 0.934509 0.295044 0.935516 0.959961 0.297424 0.935211 0.047394 0.268280 0.937836 0.063843 0.270264 0.937592 0.081696 0.272339 0.937378 0.101196 0.274384 0.937164 0.122681 0.276520 0.936890 0.146606 0.278656 0.936707 0.173187 0.280762 0.936462 0.202728 0.282990 0.936188 0.235138 0.285217 0.935944 0.270081 0.287415 0.935730 0.307465 0.289673 0.935455 0.346954 0.291992 0.935181 0.388245 0.294220 0.934937 0.431000 0.296570 0.934692 0.474518 0.298828 0.934418 0.517181 0.301178 0.934143 0.557220 0.303558 0.933868 0.594482 0.305908 0.933624 0.629150 0.308319 0.933319 0.661255 0.310760 0.933075 0.691284 0.313141 0.932800 0.719482 0.315552 0.932526 0.746155 0.317993 0.932251 0.771545 0.320404 0.931946 0.795929 0.322845 0.931732 0.819489 0.325287 0.931458 0.842499 0.327698 0.931152 0.865173 0.330200 0.930908 0.887878 0.332642 0.930634 0.910767 0.335144 0.930328 0.934570 0.337585 0.930084 0.959961 0.339996 0.929810 0.048859 0.311493 0.932281 0.065399 0.313599 0.932068 0.083344 0.315765 0.931793 0.102936 0.317902 0.931610 0.124603 0.320129 0.931366 0.148651 0.322357 0.931061 0.175385 0.324554 0.930847 0.205139 0.326843 0.930603 0.237610 0.329163 0.930328 0.272644 0.331360 0.930084 0.310089 0.333740 0.929810 0.349548 0.335999 0.929565 0.390900 0.338379 0.929291 0.433594 0.340790 0.929016 0.477020 0.343079 0.928741 0.519409 0.345551 0.928467 0.559204 0.347961 0.928162 0.596191 0.350281 0.927948 0.630615 0.352753 0.927673 0.662567 0.355225 0.927368 0.692383 0.357605 0.927094 0.720459 0.360077 0.926819 0.746979 0.362518 0.926575 0.772247 0.364929 0.926270 0.796478 0.367462 0.925995 0.819977 0.369873 0.925751 0.842896 0.372345 0.925476 0.865509 0.374817 0.925171 0.888031 0.377197 0.924957 0.910950 0.379669 0.924652 0.934692 0.382172 0.924347 0.959961 0.384552 0.924072 0.050323 0.357452 0.926392 0.066956 0.359619 0.926178 0.085022 0.361816 0.925934 0.104767 0.364014 0.925659 0.126587 0.366272 0.925415 0.150757 0.368591 0.925171 0.177643 0.370819 0.924927 0.207520 0.373138 0.924652 0.240143 0.375458 0.924377 0.275269 0.377747 0.924133 0.312775 0.380127 0.923859 0.352264 0.382477 0.923584 0.393555 0.384827 0.923309 0.436249 0.387238 0.923065 0.479553 0.389557 0.922760 0.521637 0.391998 0.922546 0.561157 0.394440 0.922241 0.597931 0.396790 0.921936 0.632141 0.399231 0.921692 0.663879 0.401672 0.921387 0.693481 0.404022 0.921173 0.721375 0.406464 0.920868 0.747803 0.408875 0.920624 0.772980 0.411316 0.920349 0.797119 0.413757 0.920105 0.820465 0.416168 0.919800 0.843262 0.418579 0.919586 0.865814 0.421021 0.919281 0.888306 0.423401 0.918976 0.911133 0.425781 0.918732 0.934784 0.428192 0.918488 0.959961 0.430542 0.918213 0.051910 0.405609 0.920258 0.068604 0.407806 0.919952 0.086731 0.410034 0.919739 0.106598 0.412231 0.919525 0.128540 0.414520 0.919220 0.152893 0.416809 0.918976 0.180023 0.419037 0.918732 0.210022 0.421356 0.918488 0.242706 0.423645 0.918213 0.277893 0.425934 0.917938 0.315491 0.428284 0.917664 0.354980 0.430664 0.917419 0.396240 0.432953 0.917114 0.438873 0.435333 0.916901 0.482086 0.437683 0.916626 0.523865 0.440033 0.916321 0.563080 0.442444 0.916077 0.599640 0.444763 0.915802 0.633575 0.447144 0.915588 0.665131 0.449585 0.915283 0.694580 0.451874 0.915039 0.722351 0.454315 0.914764 0.748596 0.456573 0.914551 0.773651 0.458954 0.914246 0.797668 0.461304 0.914032 0.820923 0.463623 0.913757 0.843689 0.466034 0.913452 0.866119 0.468353 0.913208 0.888550 0.470642 0.912964 0.911285 0.472961 0.912689 0.934845 0.475250 0.912415 0.959961 0.477478 0.912170 0.053467 0.455414 0.913849 0.070251 0.457581 0.913635 0.088531 0.459808 0.913330 0.108521 0.462006 0.913116 0.130585 0.464233 0.912842 0.155121 0.466400 0.912628 0.182312 0.468658 0.912354 0.212494 0.470886 0.912109 0.245300 0.473114 0.911835 0.280609 0.475403 0.911591 0.318176 0.477661 0.911316 0.357697 0.479889 0.911133 0.399017 0.482178 0.910858 0.441559 0.484436 0.910553 0.484528 0.486664 0.910339 0.526123 0.488953 0.910065 0.565033 0.491272 0.909851 0.601318 0.493469 0.909576 0.635040 0.495728 0.909332 0.666351 0.497986 0.909119 0.695679 0.500183 0.908875 0.723267 0.502472 0.908569 0.749390 0.504669 0.908386 0.774292 0.506927 0.908142 0.798248 0.509125 0.907837 0.821442 0.511261 0.907623 0.844055 0.513489 0.907410 0.866455 0.515594 0.907166 0.888794 0.517700 0.906921 0.911469 0.519806 0.906677 0.934967 0.521820 0.906433 0.959961 0.523895 0.906189 0.055054 0.505829 0.907349 0.071930 0.507874 0.907135 0.090302 0.509979 0.906921 0.110413 0.512024 0.906708 0.132629 0.514099 0.906464 0.157318 0.516144 0.906219 0.184753 0.518188 0.906006 0.215027 0.520294 0.905762 0.247925 0.522339 0.905518 0.283325 0.524445 0.905304 0.320923 0.526520 0.905090 0.360474 0.528534 0.904846 0.401703 0.530579 0.904633 0.444183 0.532684 0.904388 0.487061 0.534698 0.904205 0.528259 0.536743 0.903961 0.566956 0.538757 0.903748 0.602997 0.540741 0.903564 0.636475 0.542786 0.903351 0.667633 0.544739 0.903107 0.696747 0.546753 0.902924 0.724182 0.548737 0.902710 0.750183 0.550629 0.902466 0.774994 0.552582 0.902252 0.798798 0.554565 0.902069 0.821869 0.556366 0.901855 0.844452 0.558258 0.901642 0.866699 0.560150 0.901428 0.889008 0.561981 0.901215 0.911621 0.563812 0.901001 0.935028 0.565613 0.900848 0.959961 0.567383 0.900635 0.056671 0.553894 0.901215 0.073608 0.555756 0.901031 0.092102 0.557587 0.900818 0.112335 0.559387 0.900604 0.134735 0.561249 0.900391 0.159576 0.563141 0.900177 0.187134 0.564880 0.899994 0.217560 0.566772 0.899811 0.250610 0.568512 0.899628 0.286041 0.570312 0.899414 0.323730 0.572174 0.899231 0.363281 0.573944 0.899017 0.404388 0.575775 0.898895 0.446808 0.577606 0.898651 0.489563 0.579315 0.898468 0.530518 0.581146 0.898315 0.568909 0.582886 0.898132 0.604675 0.584656 0.897919 0.637909 0.586395 0.897766 0.668884 0.588074 0.897583 0.697815 0.589844 0.897369 0.725128 0.591553 0.897186 0.750946 0.593170 0.897034 0.775635 0.594910 0.896851 0.799347 0.596558 0.896667 0.822357 0.598145 0.896484 0.844818 0.599792 0.896301 0.867035 0.601440 0.896118 0.889252 0.602966 0.895996 0.911774 0.604584 0.895813 0.935120 0.606110 0.895630 0.959961 0.607635 0.895477 0.058289 0.598358 0.895508 0.075378 0.599976 0.895355 0.093964 0.601593 0.895172 0.114319 0.603149 0.894989 0.136871 0.604767 0.894806 0.161835 0.606384 0.894653 0.189575 0.607941 0.894531 0.220123 0.609558 0.894318 0.253235 0.611145 0.894165 0.288757 0.612671 0.893982 0.326508 0.614258 0.893890 0.366028 0.615784 0.893677 0.407166 0.617371 0.893524 0.449463 0.618927 0.893402 0.491974 0.620483 0.893250 0.532684 0.622009 0.893066 0.570801 0.623566 0.892883 0.606354 0.625031 0.892792 0.639343 0.626587 0.892578 0.670074 0.628021 0.892456 0.698883 0.629486 0.892334 0.726013 0.630981 0.892181 0.751740 0.632416 0.891998 0.776337 0.633820 0.891846 0.799927 0.635254 0.891693 0.822815 0.636688 0.891541 0.845215 0.638031 0.891449 0.867340 0.639435 0.891296 0.889465 0.640778 0.891144 0.911957 0.642151 0.890991 0.935181 0.643433 0.890869 0.959961 0.644745 0.890717 0.059967 0.639221 0.890259 0.077148 0.640625 0.890137 0.095856 0.641998 0.889984 0.116333 0.643372 0.889862 0.138977 0.644745 0.889740 0.164154 0.646118 0.889557 0.192078 0.647430 0.889465 0.222778 0.648834 0.889313 0.255951 0.650146 0.889221 0.291534 0.651550 0.889038 0.329254 0.652924 0.888916 0.368744 0.654205 0.888824 0.409882 0.655579 0.888702 0.452057 0.656891 0.888519 0.494415 0.658203 0.888397 0.534790 0.659546 0.888306 0.572662 0.660828 0.888153 0.608002 0.662109 0.888031 0.640778 0.663361 0.887939 0.671295 0.664642 0.887756 0.699921 0.665894 0.887665 0.726929 0.667175 0.887543 0.752502 0.668365 0.887390 0.776947 0.669586 0.887268 0.800507 0.670807 0.887177 0.823303 0.671967 0.887054 0.845581 0.673187 0.886932 0.867615 0.674316 0.886810 0.889648 0.675476 0.886688 0.912048 0.676636 0.886566 0.935242 0.677734 0.886505 0.959961 0.678802 0.886383 0.061707 0.676605 0.885468 0.078918 0.677795 0.885376 0.097717 0.678955 0.885284 0.118347 0.680115 0.885132 0.141174 0.681335 0.885040 0.166473 0.682495 0.884918 0.194580 0.683685 0.884857 0.225372 0.684814 0.884705 0.258636 0.685974 0.884583 0.294312 0.687134 0.884552 0.332001 0.688324 0.884430 0.371552 0.689453 0.884308 0.412598 0.690582 0.884186 0.454651 0.691711 0.884125 0.496826 0.692841 0.883972 0.536957 0.693939 0.883911 0.574554 0.695038 0.883820 0.609589 0.696167 0.883667 0.642151 0.697266 0.883575 0.672485 0.698334 0.883484 0.700958 0.699402 0.883362 0.727783 0.700439 0.883270 0.753265 0.701477 0.883209 0.777588 0.702515 0.883087 0.800995 0.703552 0.882996 0.823700 0.704559 0.882874 0.845947 0.705566 0.882782 0.867889 0.706512 0.882690 0.889893 0.707520 0.882629 0.912201 0.708466 0.882507 0.935333 0.709381 0.882446 0.959961 0.710327 0.882355 0.063385 0.710999 0.881134 0.080750 0.712006 0.881012 0.099609 0.713013 0.880920 0.120422 0.714050 0.880829 0.143341 0.715057 0.880798 0.168793 0.716003 0.880676 0.197083 0.717041 0.880554 0.227997 0.718048 0.880524 0.261383 0.719025 0.880432 0.297089 0.720001 0.880341 0.334747 0.721008 0.880219 0.374268 0.721985 0.880188 0.415222 0.722931 0.880066 0.457214 0.723877 0.880005 0.499207 0.724854 0.879944 0.539062 0.725800 0.879822 0.576355 0.726746 0.879761 0.611206 0.727722 0.879669 0.643524 0.728607 0.879578 0.673645 0.729492 0.879486 0.701935 0.730438 0.879425 0.728638 0.731323 0.879333 0.753998 0.732178 0.879272 0.778168 0.733093 0.879181 0.801544 0.733917 0.879089 0.824158 0.734802 0.879028 0.846252 0.735657 0.878967 0.868195 0.736450 0.878876 0.890076 0.737274 0.878815 0.912323 0.738068 0.878754 0.935394 0.738861 0.878632 0.959961 0.739685 0.878601 0.065125 0.742859 0.877045 0.082581 0.743744 0.876984 0.101562 0.744568 0.876953 0.122498 0.745483 0.876831 0.145599 0.746338 0.876770 0.171204 0.747162 0.876740 0.199585 0.748016 0.876648 0.230621 0.748901 0.876587 0.264038 0.749725 0.876495 0.299774 0.750580 0.876495 0.337585 0.751404 0.876373 0.376984 0.752228 0.876343 0.417938 0.753052 0.876282 0.459839 0.753876 0.876190 0.501556 0.754700 0.876129 0.541107 0.755524 0.876038 0.578186 0.756287 0.875977 0.612793 0.757080 0.875916 0.644867 0.757874 0.875854 0.674805 0.758667 0.875793 0.702942 0.759399 0.875732 0.729492 0.760162 0.875671 0.754730 0.760925 0.875580 0.778839 0.761658 0.875519 0.802032 0.762390 0.875488 0.824585 0.763092 0.875397 0.846649 0.763794 0.875366 0.868439 0.764526 0.875305 0.890289 0.765198 0.875214 0.912476 0.765839 0.875214 0.935455 0.766510 0.875153 0.959961 0.767181 0.875092 0.066895 0.772614 0.873291 0.084412 0.773376 0.873230 0.103546 0.774109 0.873138 0.124542 0.774841 0.873138 0.147797 0.775574 0.873077 0.173584 0.776276 0.873016 0.202118 0.777039 0.872955 0.233185 0.777740 0.872955 0.266693 0.778473 0.872864 0.302521 0.779175 0.872833 0.340240 0.779877 0.872803 0.379730 0.780609 0.872711 0.420532 0.781281 0.872681 0.462311 0.781952 0.872620 0.503815 0.782654 0.872559 0.543182 0.783356 0.872498 0.579926 0.783997 0.872467 0.614258 0.784698 0.872406 0.646179 0.785370 0.872345 0.675934 0.785980 0.872314 0.703918 0.786621 0.872223 0.730316 0.787292 0.872192 0.755432 0.787903 0.872192 0.779419 0.788544 0.872101 0.802521 0.789154 0.872070 0.824982 0.789734 0.872040 0.846924 0.790344 0.871948 0.868744 0.790894 0.871948 0.890503 0.791504 0.871887 0.912598 0.792053 0.871857 0.935516 0.792603 0.871826 0.959961 0.793121 0.871796 0.068634 0.800659 0.869690 0.086243 0.801239 0.869720 0.105499 0.801880 0.869659 0.126648 0.802551 0.869598 0.150024 0.803131 0.869568 0.175964 0.803741 0.869537 0.204620 0.804352 0.869507 0.235840 0.804993 0.869476 0.269440 0.805542 0.869476 0.305237 0.806152 0.869385 0.342957 0.806763 0.869354 0.382416 0.807373 0.869324 0.423218 0.807922 0.869263 0.464813 0.808533 0.869232 0.506104 0.809113 0.869202 0.545135 0.809692 0.869171 0.581665 0.810242 0.869141 0.615723 0.810791 0.869080 0.647461 0.811371 0.869019 0.677063 0.811920 0.868988 0.704865 0.812439 0.868988 0.731110 0.812958 0.868927 0.756104 0.813507 0.868927 0.779968 0.814026 0.868896 0.802979 0.814514 0.868805 0.825378 0.815002 0.868805 0.847290 0.815521 0.868774 0.868958 0.815979 0.868744 0.890686 0.816467 0.868713 0.912750 0.816956 0.868713 0.935577 0.817383 0.868683 0.959961 0.817841 0.868622 0.070404 0.827209 0.866364 0.088135 0.827759 0.866333 0.107452 0.828308 0.866302 0.128784 0.828827 0.866302 0.152283 0.829315 0.866241 0.178375 0.829834 0.866211 0.207153 0.830353 0.866241 0.238373 0.830872 0.866180 0.272064 0.831329 0.866180 0.307953 0.831879 0.866150 0.345673 0.832367 0.866058 0.385071 0.832825 0.866058 0.425751 0.833344 0.866058 0.467285 0.833832 0.866028 0.508331 0.834320 0.865997 0.547089 0.834778 0.865967 0.583374 0.835236 0.865906 0.617218 0.835724 0.865906 0.648712 0.836182 0.865906 0.678101 0.836639 0.865845 0.705719 0.837067 0.865845 0.731903 0.837524 0.865814 0.756744 0.837921 0.865784 0.780548 0.838379 0.865784 0.803497 0.838806 0.865753 0.825745 0.839203 0.865723 0.847595 0.839600 0.865723 0.869232 0.839996 0.865723 0.890839 0.840393 0.865692 0.912842 0.840759 0.865662 0.935669 0.841156 0.865631 0.959961 0.841492 0.865631 0.072144 0.852692 0.863129 0.089966 0.853149 0.863129 0.109406 0.853577 0.863098 0.130829 0.854004 0.863068 0.154541 0.854431 0.863129 0.180725 0.854858 0.863068 0.209625 0.855286 0.863037 0.241028 0.855713 0.863037 0.274750 0.856110 0.862976 0.310577 0.856537 0.863007 0.348328 0.856934 0.863007 0.387665 0.857300 0.862976 0.428284 0.857758 0.862946 0.469696 0.858124 0.862946 0.510468 0.858521 0.862885 0.548950 0.858917 0.862885 0.585022 0.859283 0.862915 0.618622 0.859650 0.862854 0.649902 0.860046 0.862885 0.679169 0.860382 0.862854 0.706635 0.860779 0.862823 0.732666 0.861145 0.862823 0.757385 0.861481 0.862823 0.781097 0.861847 0.862793 0.803925 0.862183 0.862793 0.826111 0.862488 0.862793 0.847900 0.862854 0.862793 0.869476 0.863159 0.862732 0.891022 0.863464 0.862732 0.912933 0.863739 0.862732 0.935699 0.864075 0.862732 0.959961 0.864349 0.862701 0.073914 0.877319 0.860016 0.091827 0.877655 0.860016 0.111420 0.878021 0.860046 0.132935 0.878387 0.860016 0.156738 0.878723 0.859985 0.183105 0.879059 0.860016 0.212128 0.879395 0.859955 0.243561 0.879730 0.859985 0.277344 0.880066 0.859985 0.313263 0.880432 0.859985 0.350891 0.880707 0.859985 0.390198 0.881073 0.859955 0.430786 0.881378 0.859924 0.472046 0.881683 0.859955 0.512573 0.882050 0.859955 0.550812 0.882324 0.859924 0.586609 0.882629 0.859955 0.620026 0.882935 0.859924 0.651093 0.883240 0.859894 0.680145 0.883545 0.859924 0.707520 0.883850 0.859894 0.733368 0.884125 0.859894 0.758026 0.884399 0.859894 0.781616 0.884705 0.859924 0.804352 0.884949 0.859924 0.826477 0.885193 0.859894 0.848206 0.885468 0.859863 0.869629 0.885712 0.859863 0.891174 0.885956 0.859894 0.913086 0.886200 0.859863 0.935791 0.886444 0.859863 0.959961 0.886658 0.859863 0.075714 0.901367 0.857025 0.093719 0.901672 0.856964 0.113373 0.901947 0.856964 0.135010 0.902222 0.856995 0.158966 0.902496 0.856964 0.185486 0.902771 0.856995 0.214600 0.903015 0.857025 0.246124 0.903290 0.856995 0.279907 0.903564 0.856995 0.315796 0.903839 0.856995 0.353455 0.904083 0.856964 0.392731 0.904358 0.856995 0.433197 0.904602 0.857025 0.474335 0.904846 0.856995 0.514648 0.905121 0.857025 0.552551 0.905304 0.857025 0.588196 0.905579 0.856995 0.621368 0.905792 0.857025 0.652252 0.906036 0.857025 0.681152 0.906250 0.857025 0.708313 0.906494 0.857025 0.734100 0.906708 0.857056 0.758606 0.906921 0.857056 0.782104 0.907135 0.857025 0.804810 0.907318 0.857025 0.826843 0.907562 0.857025 0.848480 0.907715 0.857086 0.869873 0.907959 0.857056 0.891357 0.908112 0.857056 0.913208 0.908325 0.857056 0.935822 0.908447 0.857056 0.959961 0.908630 0.857056 0.077454 0.925262 0.853943 0.095551 0.925415 0.853973 0.115295 0.925690 0.853943 0.137146 0.925873 0.853973 0.161194 0.926056 0.854034 0.187805 0.926270 0.854004 0.217010 0.926483 0.854034 0.248627 0.926666 0.854034 0.282471 0.926880 0.854004 0.318359 0.927063 0.854034 0.355988 0.927216 0.854095 0.395203 0.927460 0.854065 0.435608 0.927643 0.854065 0.476593 0.927795 0.854095 0.516632 0.928009 0.854065 0.554321 0.928162 0.854126 0.589661 0.928345 0.854126 0.622620 0.928528 0.854126 0.653320 0.928711 0.854126 0.682068 0.928833 0.854187 0.709137 0.929016 0.854187 0.734772 0.929169 0.854156 0.759155 0.929352 0.854187 0.782593 0.929474 0.854187 0.805206 0.929626 0.854248 0.827148 0.929779 0.854218 0.848724 0.929932 0.854218 0.870087 0.930084 0.854248 0.891541 0.930206 0.854218 0.913300 0.930328 0.854248 0.935883 0.930450 0.854218 0.959961 0.930603 0.854218 0.079224 0.949219 0.850891 0.097382 0.949371 0.850891 0.117279 0.949554 0.850983 0.139160 0.949707 0.850952 0.163361 0.949829 0.851013 0.190125 0.949982 0.851013 0.219421 0.950073 0.850983 0.251099 0.950195 0.851044 0.285004 0.950348 0.851074 0.320831 0.950470 0.851074 0.358490 0.950592 0.851074 0.397583 0.950684 0.851135 0.437897 0.950867 0.851105 0.478790 0.950958 0.851166 0.518555 0.951111 0.851166 0.556000 0.951202 0.851196 0.591125 0.951355 0.851166 0.623901 0.951477 0.851257 0.654419 0.951569 0.851257 0.682983 0.951691 0.851257 0.709930 0.951782 0.851257 0.735382 0.951874 0.851288 0.759735 0.951996 0.851318 0.783051 0.952087 0.851318 0.805573 0.952148 0.851349 0.827484 0.952301 0.851349 0.848969 0.952362 0.851349 0.870270 0.952423 0.851349 0.891632 0.952545 0.851349 0.913391 0.952637 0.851379 0.935944 0.952698 0.851379 0.959961 0.952759 0.851440 0.080963 0.973938 0.847809 0.099213 0.973999 0.847809 0.119202 0.974091 0.847839 0.141205 0.974152 0.847870 0.165527 0.974182 0.847870 0.192383 0.974304 0.847900 0.221832 0.974335 0.847961 0.253510 0.974396 0.847961 0.287445 0.974457 0.847992 0.323273 0.974518 0.847992 0.360931 0.974609 0.848022 0.399933 0.974670 0.848083 0.440094 0.974731 0.848114 0.480865 0.974823 0.848114 0.520447 0.974854 0.848114 0.557617 0.974915 0.848145 0.592499 0.974976 0.848236 0.625092 0.975037 0.848206 0.655396 0.975067 0.848236 0.683807 0.975128 0.848267 0.710632 0.975189 0.848328 0.736023 0.975250 0.848297 0.760254 0.975281 0.848328 0.783478 0.975311 0.848358 0.805939 0.975403 0.848358 0.827759 0.975433 0.848389 0.849213 0.975464 0.848358 0.870453 0.975494 0.848389 0.891785 0.975555 0.848419 0.913483 0.975616 0.848419 0.935974 0.975647 0.848480 0.959961 0.975708 0.848450 0.082672 1.000000 0.844482 0.101013 1.000000 0.844513 0.121094 1.000000 0.844513 0.143219 1.000000 0.844574 0.167664 1.000000 0.844635 0.194702 1.000000 0.844635 0.224152 1.000000 0.844666 0.255859 1.000000 0.844696 0.289825 1.000000 0.844727 0.325653 1.000000 0.844788 0.363281 1.000000 0.844818 0.402222 1.000000 0.844849 0.442291 1.000000 0.844849 0.482910 1.000000 0.844879 0.522186 1.000000 0.844971 0.559204 1.000000 0.844971 0.593842 1.000000 0.845001 0.626221 1.000000 0.845032 0.656372 1.000000 0.845093 0.684662 1.000000 0.845093 0.711334 1.000000 0.845123 0.736603 1.000000 0.845154 0.760712 1.000000 0.845154 0.783875 1.000000 0.845184 0.806244 1.000000 0.845184 0.828033 1.000000 0.845215 0.849426 1.000000 0.845245 0.870605 1.000000 0.845245 0.891907 1.000000 0.845306 0.913574 1.000000 0.845306 0.936035 1.000000 0.845337 0.959961 1.000000 0.845337 0.035492 0.007263 0.999054 0.051208 0.008057 0.998962 0.068176 0.008881 0.998840 0.086639 0.009705 0.998749 0.106903 0.010590 0.998627 0.129364 0.011444 0.998505 0.154449 0.012360 0.998383 0.182434 0.013275 0.998291 0.213501 0.014252 0.998138 0.247467 0.015259 0.998016 0.284119 0.016235 0.997894 0.323120 0.017212 0.997772 0.364349 0.018280 0.997620 0.407349 0.019348 0.997498 0.451599 0.020416 0.997345 0.496246 0.021515 0.997192 0.538605 0.022644 0.997070 0.578186 0.023743 0.996918 0.614990 0.024902 0.996765 0.649017 0.026062 0.996613 0.680695 0.027252 0.996460 0.710358 0.028442 0.996307 0.738312 0.029694 0.996155 0.764862 0.030914 0.995972 0.790253 0.032135 0.995819 0.814728 0.033386 0.995667 0.838593 0.034698 0.995483 0.862061 0.036011 0.995331 0.885468 0.037323 0.995148 0.909180 0.038635 0.994995 0.933746 0.040009 0.994812 0.959961 0.041382 0.994629 0.036469 0.023926 0.996887 0.052277 0.024811 0.996765 0.069275 0.025696 0.996674 0.087830 0.026581 0.996552 0.108246 0.027527 0.996429 0.130859 0.028442 0.996307 0.156067 0.029419 0.996185 0.184235 0.030457 0.996033 0.215454 0.031433 0.995911 0.249481 0.032471 0.995789 0.286224 0.033539 0.995636 0.325287 0.034607 0.995514 0.366516 0.035706 0.995361 0.409515 0.036865 0.995209 0.453827 0.037933 0.995087 0.498199 0.039124 0.994904 0.540405 0.040314 0.994751 0.579773 0.041534 0.994598 0.616333 0.042725 0.994446 0.650208 0.043976 0.994293 0.681732 0.045258 0.994110 0.711243 0.046509 0.993958 0.739075 0.047760 0.993805 0.765503 0.049103 0.993622 0.790771 0.050446 0.993439 0.815186 0.051788 0.993286 0.838989 0.053131 0.993103 0.862366 0.054535 0.992920 0.885712 0.055908 0.992737 0.909363 0.057343 0.992554 0.933838 0.058777 0.992371 0.959961 0.060150 0.992188 0.037537 0.041626 0.994598 0.053375 0.042572 0.994476 0.070526 0.043549 0.994354 0.089142 0.044495 0.994232 0.109680 0.045502 0.994080 0.132416 0.046539 0.993958 0.157715 0.047577 0.993835 0.186096 0.048676 0.993683 0.217438 0.049805 0.993530 0.251526 0.050873 0.993378 0.288391 0.052032 0.993256 0.327515 0.053162 0.993103 0.368774 0.054382 0.992950 0.411804 0.055573 0.992767 0.455994 0.056793 0.992615 0.500214 0.058044 0.992462 0.542175 0.059326 0.992310 0.581329 0.060577 0.992126 0.617737 0.061890 0.991974 0.651459 0.063263 0.991791 0.682770 0.064575 0.991608 0.712158 0.065948 0.991425 0.739868 0.067352 0.991241 0.766205 0.068726 0.991089 0.791351 0.070190 0.990875 0.815674 0.071625 0.990692 0.839355 0.073090 0.990509 0.862732 0.074585 0.990326 0.885925 0.076019 0.990112 0.909546 0.077545 0.989929 0.933899 0.079102 0.989716 0.959961 0.080597 0.989532 0.038605 0.060730 0.992126 0.054535 0.061768 0.991974 0.071777 0.062805 0.991852 0.090454 0.063904 0.991699 0.111145 0.065002 0.991547 0.134033 0.066101 0.991425 0.159454 0.067261 0.991272 0.188019 0.068420 0.991119 0.219421 0.069611 0.990967 0.253693 0.070801 0.990814 0.290619 0.072083 0.990631 0.329834 0.073334 0.990479 0.371124 0.074615 0.990295 0.414093 0.075928 0.990143 0.458221 0.077240 0.989960 0.502289 0.078613 0.989777 0.544067 0.079987 0.989624 0.582977 0.081360 0.989441 0.619141 0.082794 0.989258 0.652618 0.084229 0.989075 0.683807 0.085693 0.988861 0.713074 0.087219 0.988678 0.740631 0.088654 0.988495 0.766876 0.090210 0.988281 0.791962 0.091736 0.988098 0.816162 0.093292 0.987885 0.839783 0.094879 0.987671 0.863007 0.096497 0.987457 0.886200 0.098053 0.987274 0.909668 0.099701 0.987061 0.933990 0.101349 0.986847 0.959961 0.103027 0.986633 0.039795 0.081635 0.989410 0.055786 0.082764 0.989258 0.073059 0.083893 0.989105 0.091888 0.085083 0.988953 0.112671 0.086304 0.988800 0.135712 0.087524 0.988617 0.161346 0.088776 0.988464 0.189941 0.090088 0.988312 0.221527 0.091339 0.988129 0.255951 0.092743 0.987946 0.292938 0.094055 0.987793 0.332184 0.095459 0.987610 0.373505 0.096893 0.987427 0.416473 0.098328 0.987244 0.460571 0.099762 0.987030 0.504425 0.101257 0.986847 0.545959 0.102783 0.986664 0.584656 0.104279 0.986450 0.620575 0.105804 0.986267 0.653870 0.107361 0.986053 0.684906 0.108978 0.985840 0.713989 0.110626 0.985626 0.741486 0.112213 0.985413 0.767517 0.113892 0.985199 0.792542 0.115570 0.984985 0.816681 0.117279 0.984772 0.840179 0.118958 0.984558 0.863342 0.120697 0.984314 0.886414 0.122467 0.984100 0.909851 0.124237 0.983856 0.934082 0.125977 0.983643 0.959961 0.127808 0.983398 0.040955 0.104706 0.986389 0.057037 0.105957 0.986237 0.074402 0.107269 0.986053 0.093353 0.108551 0.985901 0.114258 0.109894 0.985718 0.137390 0.111237 0.985565 0.163208 0.112671 0.985352 0.192047 0.114105 0.985168 0.223724 0.115540 0.984985 0.258240 0.117004 0.984802 0.295288 0.118530 0.984619 0.334625 0.120026 0.984406 0.375916 0.121582 0.984222 0.418854 0.123169 0.984009 0.462860 0.124756 0.983795 0.506622 0.126404 0.983582 0.547791 0.128052 0.983368 0.586304 0.129730 0.983154 0.622040 0.131439 0.982941 0.655151 0.133118 0.982697 0.685974 0.134918 0.982483 0.714935 0.136658 0.982239 0.742249 0.138458 0.982025 0.768250 0.140289 0.981781 0.793091 0.142090 0.981537 0.817139 0.143951 0.981293 0.840576 0.145813 0.981049 0.863647 0.147675 0.980804 0.886658 0.149597 0.980560 0.909973 0.151581 0.980316 0.934174 0.153442 0.980072 0.959961 0.155457 0.979797 0.042206 0.130493 0.983063 0.058350 0.131897 0.982880 0.075836 0.133362 0.982666 0.094910 0.134766 0.982483 0.115936 0.136292 0.982300 0.139221 0.137817 0.982086 0.165192 0.139374 0.981903 0.194153 0.140961 0.981689 0.225983 0.142548 0.981476 0.260620 0.144226 0.981262 0.297699 0.145844 0.981049 0.337067 0.147522 0.980835 0.378448 0.149261 0.980621 0.421295 0.151001 0.980377 0.465210 0.152740 0.980164 0.508789 0.154602 0.979919 0.549744 0.156342 0.979706 0.587982 0.158234 0.979462 0.623505 0.160126 0.979218 0.656403 0.161987 0.978973 0.687103 0.163940 0.978699 0.715912 0.165894 0.978455 0.743073 0.167816 0.978210 0.768921 0.169800 0.977936 0.793701 0.171844 0.977692 0.817657 0.173859 0.977417 0.840973 0.175903 0.977142 0.863953 0.177917 0.976898 0.886902 0.180023 0.976624 0.910187 0.182159 0.976349 0.934265 0.184235 0.976074 0.959961 0.186340 0.975800 0.043549 0.159485 0.979279 0.059753 0.161102 0.979065 0.077271 0.162689 0.978882 0.096497 0.164307 0.978668 0.117615 0.165985 0.978455 0.141083 0.167633 0.978241 0.167206 0.169403 0.977997 0.196350 0.171204 0.977753 0.228271 0.172943 0.977539 0.263000 0.174744 0.977295 0.300232 0.176605 0.977051 0.339661 0.178497 0.976807 0.380920 0.180420 0.976562 0.423798 0.182312 0.976318 0.467651 0.184296 0.976074 0.511017 0.186249 0.975800 0.551666 0.188232 0.975555 0.589661 0.190277 0.975281 0.624969 0.192352 0.975006 0.657684 0.194397 0.974762 0.688171 0.196503 0.974487 0.716827 0.198639 0.974213 0.743866 0.200745 0.973938 0.769592 0.202911 0.973633 0.794281 0.205078 0.973358 0.818115 0.207275 0.973083 0.841370 0.209503 0.972778 0.864319 0.211639 0.972504 0.887146 0.213898 0.972229 0.910370 0.216187 0.971924 0.934326 0.218384 0.971649 0.959961 0.220703 0.971344 0.044861 0.192261 0.975037 0.061188 0.194031 0.974792 0.078796 0.195801 0.974579 0.098114 0.197632 0.974335 0.119415 0.199493 0.974091 0.142975 0.201324 0.973846 0.169312 0.203278 0.973602 0.198578 0.205200 0.973358 0.230682 0.207153 0.973083 0.265472 0.209137 0.972839 0.302734 0.211182 0.972565 0.342163 0.213196 0.972321 0.383514 0.215302 0.972046 0.426300 0.217346 0.971771 0.470062 0.219452 0.971497 0.513153 0.221619 0.971222 0.553650 0.223755 0.970947 0.591400 0.225952 0.970642 0.626465 0.228149 0.970367 0.658936 0.230347 0.970093 0.689270 0.232605 0.969788 0.717773 0.234894 0.969482 0.744659 0.237091 0.969208 0.770325 0.239410 0.968903 0.794922 0.241699 0.968597 0.818634 0.244019 0.968292 0.841766 0.246368 0.967987 0.864594 0.248688 0.967712 0.887390 0.251068 0.967377 0.910522 0.253448 0.967072 0.934387 0.255768 0.966766 0.959961 0.258118 0.966461 0.046265 0.228851 0.970276 0.062622 0.230774 0.970032 0.080353 0.232666 0.969788 0.099823 0.234680 0.969513 0.121216 0.236694 0.969269 0.144928 0.238708 0.968994 0.171448 0.240753 0.968719 0.200867 0.242859 0.968445 0.233093 0.244934 0.968201 0.268005 0.247101 0.967896 0.305328 0.249176 0.967651 0.344818 0.251404 0.967346 0.386108 0.253601 0.967072 0.428864 0.255829 0.966766 0.472504 0.258087 0.966492 0.515381 0.260315 0.966187 0.555603 0.262573 0.965881 0.593140 0.264893 0.965607 0.627960 0.267242 0.965302 0.660248 0.269531 0.964996 0.690369 0.271912 0.964691 0.718750 0.274261 0.964386 0.745514 0.276611 0.964081 0.770996 0.279022 0.963745 0.795471 0.281372 0.963440 0.819092 0.283813 0.963135 0.842163 0.286224 0.962830 0.864929 0.288605 0.962524 0.887665 0.291046 0.962189 0.910675 0.293488 0.961884 0.934509 0.295868 0.961578 0.959961 0.298340 0.961243 0.047668 0.268951 0.965057 0.064117 0.271027 0.964813 0.081970 0.273071 0.964539 0.101501 0.275177 0.964264 0.123077 0.277313 0.963989 0.146942 0.279449 0.963715 0.173615 0.281616 0.963409 0.203156 0.283844 0.963135 0.235565 0.286011 0.962860 0.270538 0.288239 0.962555 0.307892 0.290466 0.962280 0.347443 0.292755 0.961975 0.388763 0.295074 0.961670 0.431488 0.297394 0.961365 0.475006 0.299683 0.961090 0.517639 0.302063 0.960754 0.557556 0.304413 0.960449 0.594849 0.306793 0.960144 0.629456 0.309235 0.959839 0.661530 0.311615 0.959534 0.691498 0.314026 0.959229 0.719635 0.316406 0.958893 0.746307 0.318878 0.958588 0.771698 0.321289 0.958282 0.796021 0.323700 0.957947 0.819611 0.326172 0.957642 0.842529 0.328705 0.957306 0.865234 0.331085 0.957001 0.887878 0.333557 0.956665 0.910797 0.336029 0.956360 0.934601 0.338440 0.956055 0.959961 0.340942 0.955719 0.049133 0.312256 0.959442 0.065674 0.314423 0.959167 0.083649 0.316528 0.958893 0.103302 0.318756 0.958588 0.125000 0.320953 0.958313 0.149017 0.323151 0.958038 0.175842 0.325378 0.957733 0.205536 0.327637 0.957458 0.238098 0.329956 0.957153 0.273132 0.332245 0.956848 0.310547 0.334595 0.956543 0.350098 0.336945 0.956238 0.391388 0.339264 0.955933 0.434082 0.341614 0.955627 0.477478 0.343994 0.955322 0.519867 0.346436 0.955017 0.559509 0.348816 0.954681 0.596588 0.351257 0.954376 0.630890 0.353668 0.954071 0.662811 0.356110 0.953735 0.692566 0.358551 0.953430 0.720612 0.360901 0.953125 0.747131 0.363403 0.952789 0.772400 0.365906 0.952484 0.796600 0.368317 0.952148 0.820068 0.370789 0.951843 0.842957 0.373260 0.951508 0.865540 0.375610 0.951202 0.888092 0.378143 0.950897 0.910980 0.380585 0.950562 0.934692 0.382996 0.950256 0.959961 0.385406 0.949951 0.050629 0.358246 0.953461 0.067291 0.360474 0.953186 0.085297 0.362610 0.952911 0.105103 0.364868 0.952606 0.126953 0.367126 0.952332 0.151123 0.369385 0.952026 0.178162 0.371643 0.951721 0.208008 0.373962 0.951416 0.240601 0.376282 0.951141 0.275787 0.378662 0.950806 0.313263 0.380951 0.950531 0.352814 0.383362 0.950195 0.394073 0.385712 0.949890 0.436676 0.388123 0.949585 0.479980 0.390442 0.949280 0.522095 0.392914 0.948975 0.561493 0.395233 0.948669 0.598206 0.397644 0.948364 0.632416 0.400085 0.948029 0.664062 0.402557 0.947723 0.693695 0.404968 0.947388 0.721558 0.407379 0.947083 0.747955 0.409760 0.946777 0.773041 0.412231 0.946472 0.797180 0.414612 0.946136 0.820557 0.417084 0.945831 0.843323 0.419525 0.945526 0.865875 0.421875 0.945221 0.888336 0.424286 0.944885 0.911163 0.426636 0.944580 0.934784 0.429047 0.944275 0.959961 0.431458 0.943970 0.052185 0.406372 0.947205 0.068909 0.408630 0.946930 0.087036 0.410828 0.946655 0.106964 0.413055 0.946350 0.128937 0.415375 0.946045 0.153290 0.417603 0.945770 0.180420 0.419891 0.945465 0.210419 0.422150 0.945160 0.243195 0.424530 0.944855 0.278412 0.426819 0.944550 0.315979 0.429138 0.944275 0.355499 0.431519 0.943939 0.396790 0.433838 0.943665 0.439362 0.436188 0.943359 0.482544 0.438538 0.943054 0.524261 0.440887 0.942749 0.563416 0.443268 0.942413 0.599976 0.445648 0.942108 0.633850 0.447998 0.941803 0.665344 0.450348 0.941498 0.694763 0.452759 0.941193 0.722504 0.455078 0.940887 0.748749 0.457489 0.940582 0.773743 0.459839 0.940277 0.797791 0.462219 0.939972 0.821045 0.464508 0.939667 0.843750 0.466919 0.939362 0.866180 0.469177 0.939056 0.888611 0.471527 0.938751 0.911316 0.473785 0.938477 0.934845 0.476074 0.938171 0.959961 0.478333 0.937866 0.053741 0.456238 0.940735 0.070587 0.458405 0.940460 0.088806 0.460571 0.940186 0.108856 0.462799 0.939880 0.130951 0.464966 0.939606 0.155487 0.467224 0.939301 0.182800 0.469452 0.939026 0.212952 0.471710 0.938721 0.245789 0.473969 0.938446 0.281158 0.476257 0.938141 0.318695 0.478485 0.937866 0.358246 0.480743 0.937561 0.399506 0.483032 0.937256 0.441986 0.485229 0.936981 0.485046 0.487549 0.936676 0.526489 0.489777 0.936401 0.565369 0.492065 0.936096 0.601685 0.494324 0.935791 0.635284 0.496552 0.935516 0.666595 0.498840 0.935211 0.695892 0.501068 0.934906 0.723419 0.503296 0.934631 0.749542 0.505493 0.934357 0.774475 0.507751 0.934052 0.798370 0.509888 0.933777 0.821503 0.512085 0.933502 0.844116 0.514221 0.933197 0.866516 0.516357 0.932922 0.888824 0.518494 0.932648 0.911499 0.520569 0.932373 0.934967 0.522614 0.932129 0.959961 0.524658 0.931854 0.055359 0.506592 0.934204 0.072205 0.508606 0.933929 0.090607 0.510712 0.933655 0.110779 0.512756 0.933411 0.133026 0.514862 0.933136 0.157684 0.516937 0.932861 0.185211 0.518982 0.932587 0.215485 0.521057 0.932312 0.248413 0.523163 0.932037 0.283844 0.525238 0.931793 0.321472 0.527252 0.931519 0.361053 0.529297 0.931244 0.402191 0.531342 0.931000 0.444611 0.533447 0.930725 0.487518 0.535461 0.930450 0.528656 0.537476 0.930206 0.567322 0.539490 0.929932 0.603333 0.541534 0.929657 0.636749 0.543488 0.929413 0.667847 0.545471 0.929138 0.696960 0.547455 0.928894 0.724365 0.549377 0.928650 0.750336 0.551392 0.928375 0.775146 0.553284 0.928131 0.798889 0.555176 0.927887 0.822021 0.557068 0.927643 0.844513 0.558929 0.927399 0.866760 0.560791 0.927155 0.889038 0.562683 0.926910 0.911621 0.564453 0.926697 0.935028 0.566284 0.926453 0.959961 0.568054 0.926208 0.056946 0.554626 0.927979 0.073975 0.556488 0.927734 0.092438 0.558258 0.927490 0.112732 0.560089 0.927246 0.135071 0.561890 0.927032 0.159943 0.563751 0.926788 0.187622 0.565613 0.926544 0.218048 0.567352 0.926300 0.251099 0.569214 0.926056 0.286560 0.571014 0.925842 0.324219 0.572815 0.925598 0.363800 0.574615 0.925354 0.404938 0.576477 0.925140 0.447266 0.578186 0.924896 0.489960 0.580017 0.924652 0.530853 0.581726 0.924438 0.569244 0.583527 0.924225 0.605011 0.585266 0.923981 0.638184 0.586945 0.923767 0.669098 0.588745 0.923523 0.697998 0.590424 0.923309 0.725311 0.592102 0.923096 0.751129 0.593811 0.922882 0.775787 0.595520 0.922638 0.799438 0.597107 0.922455 0.822449 0.598816 0.922211 0.844879 0.600372 0.922028 0.867096 0.601990 0.921814 0.889313 0.603607 0.921600 0.911804 0.605133 0.921417 0.935120 0.606720 0.921204 0.959961 0.608276 0.920990 0.058624 0.598999 0.922211 0.075714 0.600525 0.921997 0.094299 0.602173 0.921783 0.114716 0.603760 0.921570 0.137238 0.605347 0.921387 0.162262 0.606964 0.921173 0.190063 0.608551 0.920959 0.220612 0.610107 0.920746 0.253784 0.611694 0.920563 0.289368 0.613281 0.920349 0.326996 0.614838 0.920135 0.366516 0.616394 0.919952 0.407654 0.617950 0.919739 0.449890 0.619507 0.919525 0.492432 0.621033 0.919342 0.533020 0.622559 0.919128 0.571136 0.624023 0.918945 0.606659 0.625580 0.918762 0.639648 0.627075 0.918549 0.670319 0.628571 0.918365 0.699097 0.630035 0.918182 0.726196 0.631500 0.917969 0.751892 0.632965 0.917786 0.776459 0.634369 0.917603 0.800049 0.635742 0.917419 0.822876 0.637207 0.917236 0.845306 0.638550 0.917053 0.867401 0.639923 0.916870 0.889496 0.641296 0.916718 0.911957 0.642578 0.916534 0.935181 0.643921 0.916351 0.959961 0.645233 0.916199 0.060303 0.639709 0.916901 0.077484 0.641113 0.916718 0.096191 0.642487 0.916565 0.116699 0.643860 0.916382 0.139374 0.645264 0.916199 0.164581 0.646606 0.916016 0.192535 0.647980 0.915833 0.223236 0.649323 0.915649 0.256439 0.650665 0.915497 0.292084 0.652069 0.915314 0.329773 0.653351 0.915131 0.369293 0.654724 0.914948 0.410339 0.656006 0.914795 0.452545 0.657349 0.914612 0.494904 0.658691 0.914459 0.535187 0.659973 0.914276 0.573029 0.661255 0.914124 0.608337 0.662598 0.913940 0.641052 0.663849 0.913788 0.671509 0.665100 0.913605 0.700104 0.666382 0.913452 0.727081 0.667603 0.913300 0.752625 0.668793 0.913147 0.777069 0.670044 0.912964 0.800568 0.671265 0.912811 0.823395 0.672424 0.912659 0.845612 0.673584 0.912506 0.867706 0.674744 0.912354 0.889740 0.675903 0.912201 0.912079 0.677002 0.912079 0.935303 0.678131 0.911926 0.959961 0.679199 0.911774 0.062012 0.677032 0.912079 0.079285 0.678192 0.911926 0.098083 0.679413 0.911743 0.118744 0.680573 0.911591 0.141541 0.681732 0.911469 0.166931 0.682922 0.911285 0.195038 0.684113 0.911133 0.225830 0.685272 0.910980 0.259155 0.686401 0.910858 0.294769 0.687561 0.910706 0.332550 0.688721 0.910553 0.372070 0.689850 0.910400 0.413055 0.690979 0.910248 0.455200 0.692139 0.910095 0.497284 0.693237 0.909973 0.537323 0.694366 0.909821 0.574921 0.695465 0.909668 0.609863 0.696564 0.909515 0.642395 0.697601 0.909393 0.672729 0.698700 0.909241 0.701172 0.699829 0.909119 0.727936 0.700806 0.908966 0.753387 0.701874 0.908844 0.777710 0.702881 0.908722 0.801086 0.703918 0.908569 0.823792 0.704895 0.908447 0.846008 0.705933 0.908325 0.867981 0.706909 0.908173 0.889923 0.707855 0.908051 0.912231 0.708801 0.907928 0.935364 0.709747 0.907806 0.959961 0.710663 0.907684 0.063721 0.711365 0.907593 0.081055 0.712341 0.907471 0.099976 0.713409 0.907349 0.120819 0.714417 0.907196 0.143768 0.715393 0.907074 0.169312 0.716400 0.906952 0.197571 0.717407 0.906830 0.228455 0.718384 0.906708 0.261871 0.719360 0.906555 0.297546 0.720337 0.906433 0.335266 0.721344 0.906311 0.374817 0.722321 0.906189 0.415771 0.723297 0.906067 0.457733 0.724243 0.905945 0.499634 0.725189 0.905823 0.539429 0.726135 0.905701 0.576752 0.727081 0.905579 0.611481 0.728058 0.905426 0.643799 0.728943 0.905334 0.673859 0.729858 0.905212 0.702087 0.730743 0.905090 0.728821 0.731659 0.904968 0.754120 0.732544 0.904846 0.778290 0.733398 0.904755 0.801605 0.734283 0.904633 0.824249 0.735107 0.904510 0.846344 0.735931 0.904419 0.868256 0.736786 0.904297 0.890106 0.737579 0.904205 0.912354 0.738373 0.904083 0.935394 0.739166 0.903992 0.959961 0.739929 0.903900 0.065460 0.743195 0.903473 0.082886 0.744080 0.903351 0.101929 0.744904 0.903259 0.122894 0.745789 0.903137 0.145966 0.746613 0.903015 0.171631 0.747498 0.902924 0.200043 0.748322 0.902802 0.231079 0.749176 0.902710 0.264557 0.750031 0.902588 0.300293 0.750854 0.902466 0.338074 0.751709 0.902374 0.377563 0.752533 0.902252 0.418396 0.753326 0.902161 0.460297 0.754181 0.902039 0.502014 0.754974 0.901947 0.541473 0.755768 0.901825 0.578522 0.756592 0.901733 0.613037 0.757385 0.901642 0.645111 0.758148 0.901520 0.675049 0.758911 0.901428 0.703125 0.759644 0.901337 0.729645 0.760437 0.901245 0.754822 0.761200 0.901123 0.778931 0.761902 0.901031 0.802155 0.762665 0.900940 0.824646 0.763367 0.900848 0.846680 0.764038 0.900757 0.868500 0.764771 0.900665 0.890350 0.765442 0.900574 0.912506 0.766113 0.900482 0.935486 0.766785 0.900421 0.959961 0.767395 0.900330 0.067200 0.772919 0.899597 0.084747 0.773621 0.899506 0.103912 0.774384 0.899414 0.124969 0.775116 0.899323 0.148193 0.775818 0.899231 0.174042 0.776581 0.899139 0.202545 0.777283 0.899048 0.233704 0.778015 0.898956 0.267273 0.778717 0.898865 0.303040 0.779419 0.898773 0.340790 0.780121 0.898682 0.380219 0.780853 0.898590 0.421082 0.781525 0.898499 0.462830 0.782196 0.898407 0.504303 0.782928 0.898315 0.543488 0.783569 0.898224 0.580292 0.784241 0.898132 0.614563 0.784943 0.898041 0.646423 0.785583 0.897980 0.676178 0.786255 0.897888 0.704071 0.786865 0.897797 0.730469 0.787506 0.897705 0.755524 0.788116 0.897644 0.779510 0.788727 0.897552 0.802612 0.789368 0.897461 0.825043 0.789948 0.897400 0.847015 0.790527 0.897339 0.868805 0.791107 0.897247 0.890533 0.791718 0.897156 0.912628 0.792236 0.897095 0.935516 0.792786 0.897034 0.959961 0.793304 0.896973 0.068939 0.800873 0.895966 0.086609 0.801483 0.895905 0.105865 0.802124 0.895813 0.126984 0.802734 0.895752 0.150421 0.803345 0.895660 0.176422 0.803955 0.895569 0.205078 0.804596 0.895508 0.236298 0.805206 0.895416 0.269958 0.805817 0.895325 0.305725 0.806366 0.895264 0.343536 0.807007 0.895172 0.382874 0.807587 0.895111 0.423645 0.808136 0.895050 0.465271 0.808777 0.894958 0.506500 0.809296 0.894897 0.545471 0.809906 0.894806 0.582001 0.810425 0.894745 0.616058 0.811005 0.894653 0.647705 0.811554 0.894592 0.677216 0.812103 0.894531 0.705017 0.812592 0.894470 0.731262 0.813202 0.894379 0.756195 0.813690 0.894318 0.780060 0.814178 0.894257 0.803101 0.814697 0.894196 0.825470 0.815216 0.894104 0.847351 0.815674 0.894043 0.868988 0.816162 0.893982 0.890747 0.816620 0.893921 0.912781 0.817108 0.893860 0.935577 0.817566 0.893799 0.959961 0.817963 0.893768 0.070709 0.827423 0.892517 0.088440 0.827942 0.892456 0.107819 0.828491 0.892395 0.129150 0.828979 0.892334 0.152679 0.829498 0.892273 0.178833 0.830017 0.892181 0.207581 0.830536 0.892120 0.238922 0.831055 0.892059 0.272614 0.831573 0.891998 0.308411 0.832062 0.891937 0.346191 0.832550 0.891876 0.385559 0.833008 0.891815 0.426208 0.833527 0.891754 0.467743 0.834015 0.891663 0.508789 0.834473 0.891602 0.547424 0.834961 0.891541 0.583649 0.835419 0.891479 0.617493 0.835876 0.891449 0.648926 0.836304 0.891388 0.678314 0.836792 0.891327 0.705933 0.837219 0.891266 0.732056 0.837677 0.891205 0.756897 0.838104 0.891144 0.780670 0.838531 0.891083 0.803589 0.838928 0.891052 0.825836 0.839325 0.890991 0.847656 0.839752 0.890930 0.869263 0.840118 0.890869 0.890869 0.840515 0.890839 0.912872 0.840881 0.890778 0.935669 0.841278 0.890747 0.959961 0.841614 0.890686 0.072479 0.852875 0.889221 0.090302 0.853271 0.889160 0.109802 0.853729 0.889130 0.131226 0.854156 0.889069 0.154938 0.854553 0.889008 0.181213 0.855011 0.888947 0.210083 0.855438 0.888885 0.241516 0.855865 0.888824 0.275208 0.856293 0.888794 0.311066 0.856659 0.888733 0.348816 0.857086 0.888672 0.388184 0.857452 0.888641 0.428741 0.857880 0.888580 0.470154 0.858276 0.888519 0.510895 0.858673 0.888458 0.549286 0.859039 0.888428 0.585327 0.859436 0.888367 0.618896 0.859802 0.888336 0.650146 0.860199 0.888275 0.679352 0.860535 0.888245 0.706787 0.860931 0.888184 0.732788 0.861267 0.888123 0.757507 0.861603 0.888092 0.781189 0.861969 0.888031 0.803986 0.862274 0.888000 0.826202 0.862640 0.887970 0.847961 0.862946 0.887909 0.869476 0.863281 0.887878 0.891052 0.863556 0.887848 0.912994 0.863892 0.887787 0.935699 0.864166 0.887756 0.959961 0.864471 0.887726 0.074249 0.877441 0.886047 0.092163 0.877808 0.885986 0.111755 0.878143 0.885956 0.133301 0.878479 0.885895 0.157135 0.878845 0.885864 0.183563 0.879181 0.885803 0.212585 0.879517 0.885773 0.244049 0.879883 0.885712 0.277863 0.880188 0.885681 0.313721 0.880554 0.885620 0.351440 0.880859 0.885590 0.390656 0.881195 0.885559 0.431213 0.881500 0.885498 0.472473 0.881836 0.885468 0.512970 0.882141 0.885437 0.551147 0.882446 0.885376 0.586914 0.882782 0.885345 0.620270 0.883057 0.885315 0.651337 0.883362 0.885254 0.680359 0.883636 0.885223 0.707672 0.883942 0.885193 0.733521 0.884216 0.885162 0.758118 0.884491 0.885132 0.781708 0.884796 0.885071 0.804474 0.885040 0.885040 0.826538 0.885284 0.885010 0.848236 0.885559 0.884979 0.869690 0.885803 0.884949 0.891266 0.886047 0.884918 0.913116 0.886292 0.884888 0.935791 0.886505 0.884857 0.959961 0.886749 0.884827 0.075989 0.901489 0.882904 0.094025 0.901764 0.882874 0.113739 0.902069 0.882843 0.135376 0.902313 0.882812 0.159363 0.902618 0.882751 0.185944 0.902832 0.882751 0.215027 0.903168 0.882690 0.246613 0.903412 0.882660 0.280426 0.903656 0.882629 0.316284 0.903931 0.882599 0.353973 0.904175 0.882568 0.393219 0.904449 0.882538 0.433655 0.904694 0.882507 0.474762 0.904968 0.882446 0.515045 0.905182 0.882446 0.552917 0.905396 0.882416 0.588470 0.905670 0.882355 0.621582 0.905884 0.882355 0.652466 0.906128 0.882324 0.681335 0.906342 0.882294 0.708466 0.906555 0.882263 0.734253 0.906769 0.882233 0.758728 0.907013 0.882202 0.782166 0.907196 0.882172 0.804840 0.907410 0.882141 0.826904 0.907593 0.882111 0.848511 0.907806 0.882080 0.869934 0.907990 0.882080 0.891388 0.908173 0.882050 0.913239 0.908356 0.882019 0.935822 0.908539 0.881989 0.959961 0.908691 0.881989 0.077789 0.925293 0.879822 0.095886 0.925568 0.879791 0.115723 0.925751 0.879761 0.137482 0.925934 0.879730 0.161591 0.926117 0.879700 0.188263 0.926361 0.879669 0.217468 0.926575 0.879639 0.249115 0.926758 0.879639 0.282898 0.926941 0.879608 0.318817 0.927124 0.879578 0.356506 0.927338 0.879547 0.395660 0.927490 0.879547 0.436066 0.927704 0.879517 0.476990 0.927917 0.879486 0.516968 0.928040 0.879456 0.554657 0.928223 0.879425 0.589996 0.928436 0.879425 0.622894 0.928589 0.879395 0.653564 0.928741 0.879364 0.682251 0.928894 0.879364 0.709290 0.929077 0.879333 0.734894 0.929291 0.879303 0.759277 0.929413 0.879272 0.782684 0.929535 0.879272 0.805237 0.929657 0.879242 0.827179 0.929810 0.879242 0.848785 0.929962 0.879211 0.870117 0.930115 0.879181 0.891541 0.930237 0.879181 0.913300 0.930389 0.879150 0.935883 0.930511 0.879150 0.959961 0.930634 0.879120 0.079498 0.949280 0.876709 0.097717 0.949432 0.876678 0.117645 0.949615 0.876648 0.139526 0.949768 0.876648 0.163757 0.949860 0.876617 0.190552 0.950012 0.876617 0.219849 0.950134 0.876587 0.251526 0.950287 0.876587 0.285400 0.950378 0.876556 0.321320 0.950470 0.876556 0.358948 0.950623 0.876526 0.398010 0.950745 0.876526 0.438293 0.950867 0.876495 0.479187 0.951019 0.876465 0.518890 0.951141 0.876465 0.556335 0.951233 0.876465 0.591400 0.951355 0.876434 0.624084 0.951477 0.876434 0.654572 0.951599 0.876404 0.683136 0.951721 0.876373 0.710052 0.951782 0.876373 0.735565 0.951874 0.876373 0.759857 0.951996 0.876343 0.783142 0.952118 0.876343 0.805634 0.952209 0.876312 0.827515 0.952332 0.876312 0.849030 0.952393 0.876312 0.870331 0.952515 0.876282 0.891632 0.952576 0.876282 0.913422 0.952637 0.876282 0.935944 0.952759 0.876251 0.959961 0.952789 0.876251 0.081268 0.973969 0.873505 0.099579 0.974030 0.873505 0.119598 0.974091 0.873474 0.141571 0.974182 0.873474 0.165924 0.974213 0.873474 0.192810 0.974304 0.873444 0.222229 0.974365 0.873444 0.253967 0.974426 0.873444 0.287872 0.974518 0.873413 0.323730 0.974548 0.873413 0.361328 0.974609 0.873413 0.400391 0.974701 0.873413 0.440582 0.974731 0.873413 0.481262 0.974823 0.873383 0.520721 0.974854 0.873383 0.557892 0.974976 0.873383 0.592773 0.975006 0.873352 0.625275 0.975067 0.873352 0.655609 0.975098 0.873352 0.683990 0.975189 0.873352 0.710785 0.975220 0.873322 0.736145 0.975250 0.873322 0.760315 0.975281 0.873322 0.783539 0.975342 0.873322 0.805969 0.975403 0.873322 0.827820 0.975433 0.873322 0.849243 0.975494 0.873291 0.870483 0.975494 0.873291 0.891785 0.975586 0.873291 0.913483 0.975616 0.873291 0.935974 0.975647 0.873291 0.959961 0.975708 0.873260 0.083008 1.000000 0.870117 0.101349 1.000000 0.870117 0.121490 1.000000 0.870117 0.143585 1.000000 0.870117 0.168060 1.000000 0.870117 0.195099 1.000000 0.870117 0.224548 1.000000 0.870117 0.256317 1.000000 0.870117 0.290222 1.000000 0.870117 0.326080 1.000000 0.870117 0.363678 1.000000 0.870117 0.402618 1.000000 0.870117 0.442780 1.000000 0.870117 0.483276 1.000000 0.870117 0.522522 1.000000 0.870117 0.559418 1.000000 0.870117 0.594086 1.000000 0.870117 0.626404 1.000000 0.870117 0.656555 1.000000 0.870117 0.684814 1.000000 0.870117 0.711487 1.000000 0.870117 0.736725 1.000000 0.870117 0.760803 1.000000 0.870117 0.783966 1.000000 0.870117 0.806305 1.000000 0.870117 0.828064 1.000000 0.870117 0.849457 1.000000 0.870117 0.870636 1.000000 0.870117 0.891907 1.000000 0.870117 0.913574 1.000000 0.870117 0.936035 1.000000 0.870117 0.959961 1.000000 0.870117 ================================================ FILE: packages/sdk/public/resource/luts/Clayton 33.CUBE ================================================ #Created by: Adobe Photoshop Export Color Lookup Plugin #Copyright: (C) Copyright 2017 RocketStock TITLE "Black and White" #LUT size LUT_3D_SIZE 32 #data domain DOMAIN_MIN 0.0 0.0 0.0 DOMAIN_MAX 1.0 1.0 1.0 #LUT data points 0.039612 0.039612 0.039612 0.045746 0.045746 0.045746 0.051208 0.051208 0.051208 0.057251 0.057251 0.057251 0.061523 0.061523 0.061523 0.065521 0.065521 0.065521 0.069702 0.069702 0.069702 0.073975 0.073975 0.073975 0.078613 0.078613 0.078613 0.083466 0.083466 0.083466 0.088379 0.088379 0.088379 0.093750 0.093750 0.093750 0.099365 0.099365 0.099365 0.105133 0.105133 0.105133 0.111328 0.111328 0.111328 0.117859 0.117859 0.117859 0.124634 0.124634 0.124634 0.131927 0.131927 0.131927 0.139435 0.139435 0.139435 0.147614 0.147614 0.147614 0.156281 0.156281 0.156281 0.165222 0.165222 0.165222 0.174805 0.174805 0.174805 0.184753 0.184753 0.184753 0.194763 0.194763 0.194763 0.205109 0.205109 0.205109 0.215546 0.215546 0.215546 0.225647 0.225647 0.225647 0.235840 0.235840 0.235840 0.245636 0.245636 0.245636 0.255463 0.255463 0.255463 0.265106 0.265106 0.265106 0.051086 0.051086 0.051086 0.057098 0.057098 0.057098 0.061371 0.061371 0.061371 0.065430 0.065430 0.065430 0.069580 0.069580 0.069580 0.073883 0.073883 0.073883 0.078491 0.078491 0.078491 0.083191 0.083191 0.083191 0.088257 0.088257 0.088257 0.093597 0.093597 0.093597 0.099060 0.099060 0.099060 0.104950 0.104950 0.104950 0.111145 0.111145 0.111145 0.117523 0.117523 0.117523 0.124420 0.124420 0.124420 0.131531 0.131531 0.131531 0.139221 0.139221 0.139221 0.147400 0.147400 0.147400 0.155792 0.155792 0.155792 0.164978 0.164978 0.164978 0.174591 0.174591 0.174591 0.184265 0.184265 0.184265 0.194489 0.194489 0.194489 0.204865 0.204865 0.204865 0.215027 0.215027 0.215027 0.225372 0.225372 0.225372 0.235596 0.235596 0.235596 0.245361 0.245361 0.245361 0.255219 0.255219 0.255219 0.264618 0.264618 0.264618 0.274109 0.274109 0.274109 0.283417 0.283417 0.283417 0.061249 0.061249 0.061249 0.065308 0.065308 0.065308 0.069366 0.069366 0.069366 0.073761 0.073761 0.073761 0.078247 0.078247 0.078247 0.083069 0.083069 0.083069 0.088165 0.088165 0.088165 0.093353 0.093353 0.093353 0.098907 0.098907 0.098907 0.104797 0.104797 0.104797 0.110870 0.110870 0.110870 0.117340 0.117340 0.117340 0.124268 0.124268 0.124268 0.131348 0.131348 0.131348 0.139038 0.139038 0.139038 0.146973 0.146973 0.146973 0.155609 0.155609 0.155609 0.164734 0.164734 0.164734 0.174072 0.174072 0.174072 0.184021 0.184021 0.184021 0.194244 0.194244 0.194244 0.204346 0.204346 0.204346 0.214752 0.214752 0.214752 0.225128 0.225128 0.225128 0.235077 0.235077 0.235077 0.245117 0.245117 0.245117 0.254730 0.254730 0.254730 0.264404 0.264404 0.264404 0.273895 0.273895 0.273895 0.282990 0.282990 0.282990 0.292114 0.292114 0.292114 0.301056 0.301056 0.301056 0.069275 0.069275 0.069275 0.073639 0.073639 0.073639 0.078094 0.078094 0.078094 0.082947 0.082947 0.082947 0.087891 0.087891 0.087891 0.093231 0.093231 0.093231 0.098785 0.098785 0.098785 0.104492 0.104492 0.104492 0.110687 0.110687 0.110687 0.117218 0.117218 0.117218 0.123901 0.123901 0.123901 0.131134 0.131134 0.131134 0.138824 0.138824 0.138824 0.146759 0.146759 0.146759 0.155396 0.155396 0.155396 0.164246 0.164246 0.164246 0.173828 0.173828 0.173828 0.183777 0.183777 0.183777 0.193695 0.193695 0.193695 0.204102 0.204102 0.204102 0.214508 0.214508 0.214508 0.224609 0.224609 0.224609 0.234833 0.234833 0.234833 0.244843 0.244843 0.244843 0.254456 0.254456 0.254456 0.264160 0.264160 0.264160 0.273407 0.273407 0.273407 0.282745 0.282745 0.282745 0.291870 0.291870 0.291870 0.300598 0.300598 0.300598 0.309357 0.309357 0.309357 0.317932 0.317932 0.317932 0.078003 0.078003 0.078003 0.082703 0.082703 0.082703 0.087769 0.087769 0.087769 0.093079 0.093079 0.093079 0.098480 0.098480 0.098480 0.104370 0.104370 0.104370 0.110504 0.110504 0.110504 0.116852 0.116852 0.116852 0.123718 0.123718 0.123718 0.130981 0.130981 0.130981 0.138458 0.138458 0.138458 0.146576 0.146576 0.146576 0.154907 0.154907 0.154907 0.164001 0.164001 0.164001 0.173584 0.173584 0.173584 0.183289 0.183289 0.183289 0.193451 0.193451 0.193451 0.203827 0.203827 0.203827 0.213989 0.213989 0.213989 0.224335 0.224335 0.224335 0.234558 0.234558 0.234558 0.244354 0.244354 0.244354 0.254211 0.254211 0.254211 0.263672 0.263672 0.263672 0.273193 0.273193 0.273193 0.282501 0.282501 0.282501 0.291412 0.291412 0.291412 0.300385 0.300385 0.300385 0.309143 0.309143 0.309143 0.317535 0.317535 0.317535 0.325958 0.325958 0.325958 0.334167 0.334167 0.334167 0.087646 0.087646 0.087646 0.092804 0.092804 0.092804 0.098358 0.098358 0.098358 0.104218 0.104218 0.104218 0.110229 0.110229 0.110229 0.116699 0.116699 0.116699 0.123535 0.123535 0.123535 0.130615 0.130615 0.130615 0.138245 0.138245 0.138245 0.146332 0.146332 0.146332 0.154694 0.154694 0.154694 0.163788 0.163788 0.163788 0.173096 0.173096 0.173096 0.182983 0.182983 0.182983 0.193207 0.193207 0.193207 0.203308 0.203308 0.203308 0.213745 0.213745 0.213745 0.224091 0.224091 0.224091 0.234070 0.234070 0.234070 0.244110 0.244110 0.244110 0.253967 0.253967 0.253967 0.263428 0.263428 0.263428 0.272949 0.272949 0.272949 0.282043 0.282043 0.282043 0.291199 0.291199 0.291199 0.300140 0.300140 0.300140 0.308716 0.308716 0.308716 0.317291 0.317291 0.317291 0.325745 0.325745 0.325745 0.333801 0.333801 0.333801 0.341858 0.341858 0.341858 0.349823 0.349823 0.349823 0.098206 0.098206 0.098206 0.103882 0.103882 0.103882 0.110077 0.110077 0.110077 0.116516 0.116516 0.116516 0.123199 0.123199 0.123199 0.130432 0.130432 0.130432 0.138062 0.138062 0.138062 0.145935 0.145935 0.145935 0.154510 0.154510 0.154510 0.163330 0.163330 0.163330 0.172852 0.172852 0.172852 0.182739 0.182739 0.182739 0.192657 0.192657 0.192657 0.203033 0.203033 0.203033 0.213470 0.213470 0.213470 0.223572 0.223572 0.223572 0.233826 0.233826 0.233826 0.243866 0.243866 0.243866 0.253479 0.253479 0.253479 0.263184 0.263184 0.263184 0.272491 0.272491 0.272491 0.281830 0.281830 0.281830 0.290985 0.290985 0.290985 0.299713 0.299713 0.299713 0.308502 0.308502 0.308502 0.317108 0.317108 0.317108 0.325317 0.325317 0.325317 0.333588 0.333588 0.333588 0.341675 0.341675 0.341675 0.349396 0.349396 0.349396 0.357208 0.357208 0.357208 0.364655 0.364655 0.364655 0.109894 0.109894 0.109894 0.116211 0.116211 0.116211 0.123016 0.123016 0.123016 0.130219 0.130219 0.130219 0.137665 0.137665 0.137665 0.145721 0.145721 0.145721 0.154266 0.154266 0.154266 0.163116 0.163116 0.163116 0.172638 0.172638 0.172638 0.182251 0.182251 0.182251 0.192413 0.192413 0.192413 0.202789 0.202789 0.202789 0.212952 0.212952 0.212952 0.223328 0.223328 0.223328 0.233551 0.233551 0.233551 0.243378 0.243378 0.243378 0.253265 0.253265 0.253265 0.262970 0.262970 0.262970 0.272247 0.272247 0.272247 0.281586 0.281586 0.281586 0.290527 0.290527 0.290527 0.299500 0.299500 0.299500 0.308289 0.308289 0.308289 0.316681 0.316681 0.316681 0.325104 0.325104 0.325104 0.333374 0.333374 0.333374 0.341278 0.341278 0.341278 0.349213 0.349213 0.349213 0.356995 0.356995 0.356995 0.364471 0.364471 0.364471 0.371979 0.371979 0.371979 0.379181 0.379181 0.379181 0.122833 0.122833 0.122833 0.129852 0.129852 0.129852 0.137451 0.137451 0.137451 0.145538 0.145538 0.145538 0.153839 0.153839 0.153839 0.162872 0.162872 0.162872 0.172150 0.172150 0.172150 0.182007 0.182007 0.182007 0.192169 0.192169 0.192169 0.202271 0.202271 0.202271 0.212646 0.212646 0.212646 0.223053 0.223053 0.223053 0.233032 0.233032 0.233032 0.243103 0.243103 0.243103 0.253021 0.253021 0.253021 0.262482 0.262482 0.262482 0.272003 0.272003 0.272003 0.281342 0.281342 0.281342 0.290283 0.290283 0.290283 0.299255 0.299255 0.299255 0.307861 0.307861 0.307861 0.316467 0.316467 0.316467 0.324890 0.324890 0.324890 0.332977 0.332977 0.332977 0.341064 0.341064 0.341064 0.349030 0.349030 0.349030 0.356598 0.356598 0.356598 0.364258 0.364258 0.364258 0.371796 0.371796 0.371796 0.378967 0.378967 0.378967 0.386261 0.386261 0.386261 0.393250 0.393250 0.393250 0.137268 0.137268 0.137268 0.145111 0.145111 0.145111 0.153595 0.153595 0.153595 0.162628 0.162628 0.162628 0.171906 0.171906 0.171906 0.181732 0.181732 0.181732 0.191650 0.191650 0.191650 0.202026 0.202026 0.202026 0.212402 0.212402 0.212402 0.222534 0.222534 0.222534 0.232788 0.232788 0.232788 0.242828 0.242828 0.242828 0.252502 0.252502 0.252502 0.262238 0.262238 0.262238 0.271759 0.271759 0.271759 0.280884 0.280884 0.280884 0.290039 0.290039 0.290039 0.298828 0.298828 0.298828 0.307617 0.307617 0.307617 0.316254 0.316254 0.316254 0.324493 0.324493 0.324493 0.332764 0.332764 0.332764 0.340881 0.340881 0.340881 0.348633 0.348633 0.348633 0.356445 0.356445 0.356445 0.364105 0.364105 0.364105 0.371399 0.371399 0.371399 0.378815 0.378815 0.378815 0.385925 0.385925 0.385925 0.393097 0.393097 0.393097 0.400146 0.400146 0.400146 0.406982 0.406982 0.406982 0.153381 0.153381 0.153381 0.162170 0.162170 0.162170 0.171631 0.171631 0.171631 0.181244 0.181244 0.181244 0.191376 0.191376 0.191376 0.201721 0.201721 0.201721 0.211884 0.211884 0.211884 0.222260 0.222260 0.222260 0.232513 0.232513 0.232513 0.242371 0.242371 0.242371 0.252258 0.252258 0.252258 0.261993 0.261993 0.261993 0.271301 0.271301 0.271301 0.280670 0.280670 0.280670 0.289612 0.289612 0.289612 0.298584 0.298584 0.298584 0.307434 0.307434 0.307434 0.315826 0.315826 0.315826 0.324280 0.324280 0.324280 0.332581 0.332581 0.332581 0.340485 0.340485 0.340485 0.348419 0.348419 0.348419 0.356232 0.356232 0.356232 0.363708 0.363708 0.363708 0.371246 0.371246 0.371246 0.378601 0.378601 0.378601 0.385742 0.385742 0.385742 0.392883 0.392883 0.392883 0.399811 0.399811 0.399811 0.406799 0.406799 0.406799 0.413727 0.413727 0.413727 0.420410 0.420410 0.420410 0.171417 0.171417 0.171417 0.181000 0.181000 0.181000 0.191132 0.191132 0.191132 0.201233 0.201233 0.201233 0.211639 0.211639 0.211639 0.222015 0.222015 0.222015 0.232025 0.232025 0.232025 0.242126 0.242126 0.242126 0.252014 0.252014 0.252014 0.261505 0.261505 0.261505 0.271057 0.271057 0.271057 0.280426 0.280426 0.280426 0.289368 0.289368 0.289368 0.298370 0.298370 0.298370 0.306976 0.306976 0.306976 0.315613 0.315613 0.315613 0.324066 0.324066 0.324066 0.332153 0.332153 0.332153 0.340271 0.340271 0.340271 0.348236 0.348236 0.348236 0.355835 0.355835 0.355835 0.363495 0.363495 0.363495 0.371033 0.371033 0.371033 0.378265 0.378265 0.378265 0.385559 0.385559 0.385559 0.392548 0.392548 0.392548 0.399628 0.399628 0.399628 0.406616 0.406616 0.406616 0.413361 0.413361 0.413361 0.420227 0.420227 0.420227 0.427063 0.427063 0.427063 0.433685 0.433685 0.433685 0.190643 0.190643 0.190643 0.200958 0.200958 0.200958 0.211365 0.211365 0.211365 0.221527 0.221527 0.221527 0.231750 0.231750 0.231750 0.241882 0.241882 0.241882 0.251526 0.251526 0.251526 0.261261 0.261261 0.261261 0.270813 0.270813 0.270813 0.279968 0.279968 0.279968 0.289124 0.289124 0.289124 0.297943 0.297943 0.297943 0.306763 0.306763 0.306763 0.315399 0.315399 0.315399 0.323639 0.323639 0.323639 0.331940 0.331940 0.331940 0.340088 0.340088 0.340088 0.347870 0.347870 0.347870 0.355682 0.355682 0.355682 0.363312 0.363312 0.363312 0.370667 0.370667 0.370667 0.378082 0.378082 0.378082 0.385376 0.385376 0.385376 0.392365 0.392365 0.392365 0.399445 0.399445 0.399445 0.406281 0.406281 0.406281 0.413208 0.413208 0.413208 0.420074 0.420074 0.420074 0.426727 0.426727 0.426727 0.433502 0.433502 0.433502 0.440277 0.440277 0.440277 0.446838 0.446838 0.446838 0.210846 0.210846 0.210846 0.221252 0.221252 0.221252 0.231476 0.231476 0.231476 0.241364 0.241364 0.241364 0.251282 0.251282 0.251282 0.261047 0.261047 0.261047 0.270355 0.270355 0.270355 0.279724 0.279724 0.279724 0.288910 0.288910 0.288910 0.297699 0.297699 0.297699 0.306519 0.306519 0.306519 0.314972 0.314972 0.314972 0.323425 0.323425 0.323425 0.331757 0.331757 0.331757 0.339691 0.339691 0.339691 0.347656 0.347656 0.347656 0.355469 0.355469 0.355469 0.362946 0.362946 0.362946 0.370514 0.370514 0.370514 0.377899 0.377899 0.377899 0.385010 0.385010 0.385010 0.392181 0.392181 0.392181 0.399078 0.399078 0.399078 0.406097 0.406097 0.406097 0.413055 0.413055 0.413055 0.419708 0.419708 0.419708 0.426544 0.426544 0.426544 0.433319 0.433319 0.433319 0.439941 0.439941 0.439941 0.446686 0.446686 0.446686 0.453430 0.453430 0.453430 0.460022 0.460022 0.460022 0.231018 0.231018 0.231018 0.241119 0.241119 0.241119 0.251038 0.251038 0.251038 0.260559 0.260559 0.260559 0.270142 0.270142 0.270142 0.279510 0.279510 0.279510 0.288483 0.288483 0.288483 0.297485 0.297485 0.297485 0.306122 0.306122 0.306122 0.314728 0.314728 0.314728 0.323242 0.323242 0.323242 0.331329 0.331329 0.331329 0.339478 0.339478 0.339478 0.347443 0.347443 0.347443 0.355072 0.355072 0.355072 0.362762 0.362762 0.362762 0.370300 0.370300 0.370300 0.377502 0.377502 0.377502 0.384827 0.384827 0.384827 0.392029 0.392029 0.392029 0.398926 0.398926 0.398926 0.405914 0.405914 0.405914 0.412689 0.412689 0.412689 0.419556 0.419556 0.419556 0.426392 0.426392 0.426392 0.432983 0.432983 0.432983 0.439758 0.439758 0.439758 0.446503 0.446503 0.446503 0.453064 0.453064 0.453064 0.459869 0.459869 0.459869 0.466614 0.466614 0.466614 0.473297 0.473297 0.473297 0.250549 0.250549 0.250549 0.260315 0.260315 0.260315 0.269867 0.269867 0.269867 0.279053 0.279053 0.279053 0.288239 0.288239 0.288239 0.297272 0.297272 0.297272 0.305878 0.305878 0.305878 0.314545 0.314545 0.314545 0.322815 0.322815 0.322815 0.331116 0.331116 0.331116 0.339264 0.339264 0.339264 0.347046 0.347046 0.347046 0.354889 0.354889 0.354889 0.362579 0.362579 0.362579 0.369904 0.369904 0.369904 0.377350 0.377350 0.377350 0.384644 0.384644 0.384644 0.391663 0.391663 0.391663 0.398773 0.398773 0.398773 0.405579 0.405579 0.405579 0.412537 0.412537 0.412537 0.419403 0.419403 0.419403 0.426056 0.426056 0.426056 0.432831 0.432831 0.432831 0.439606 0.439606 0.439606 0.446167 0.446167 0.446167 0.452911 0.452911 0.452911 0.459656 0.459656 0.459656 0.466278 0.466278 0.466278 0.473114 0.473114 0.473114 0.479797 0.479797 0.479797 0.486694 0.486694 0.486694 0.269379 0.269379 0.269379 0.278809 0.278809 0.278809 0.288025 0.288025 0.288025 0.296783 0.296783 0.296783 0.305664 0.305664 0.305664 0.314331 0.314331 0.314331 0.322601 0.322601 0.322601 0.330902 0.330902 0.330902 0.338837 0.338837 0.338837 0.346863 0.346863 0.346863 0.354675 0.354675 0.354675 0.362183 0.362183 0.362183 0.369751 0.369751 0.369751 0.377136 0.377136 0.377136 0.384277 0.384277 0.384277 0.391449 0.391449 0.391449 0.398590 0.398590 0.398590 0.405426 0.405426 0.405426 0.412354 0.412354 0.412354 0.419220 0.419220 0.419220 0.425873 0.425873 0.425873 0.432648 0.432648 0.432648 0.439270 0.439270 0.439270 0.446014 0.446014 0.446014 0.452728 0.452728 0.452728 0.459320 0.459320 0.459320 0.466125 0.466125 0.466125 0.472931 0.472931 0.472931 0.479614 0.479614 0.479614 0.486542 0.486542 0.486542 0.493530 0.493530 0.493530 0.500427 0.500427 0.500427 0.287567 0.287567 0.287567 0.296600 0.296600 0.296600 0.305450 0.305450 0.305450 0.313904 0.313904 0.313904 0.322388 0.322388 0.322388 0.330719 0.330719 0.330719 0.338684 0.338684 0.338684 0.346649 0.346649 0.346649 0.354279 0.354279 0.354279 0.362000 0.362000 0.362000 0.369568 0.369568 0.369568 0.376770 0.376770 0.376770 0.384094 0.384094 0.384094 0.391296 0.391296 0.391296 0.398224 0.398224 0.398224 0.405243 0.405243 0.405243 0.412170 0.412170 0.412170 0.418884 0.418884 0.418884 0.425690 0.425690 0.425690 0.432312 0.432312 0.432312 0.439087 0.439087 0.439087 0.445831 0.445831 0.445831 0.452393 0.452393 0.452393 0.459167 0.459167 0.459167 0.465942 0.465942 0.465942 0.472595 0.472595 0.472595 0.479462 0.479462 0.479462 0.486359 0.486359 0.486359 0.493195 0.493195 0.493195 0.500244 0.500244 0.500244 0.507202 0.507202 0.507202 0.514465 0.514465 0.514465 0.304993 0.304993 0.304993 0.313690 0.313690 0.313690 0.322205 0.322205 0.322205 0.330322 0.330322 0.330322 0.338470 0.338470 0.338470 0.346252 0.346252 0.346252 0.354095 0.354095 0.354095 0.361816 0.361816 0.361816 0.369171 0.369171 0.369171 0.376587 0.376587 0.376587 0.383911 0.383911 0.383911 0.390961 0.390961 0.390961 0.398010 0.398010 0.398010 0.405060 0.405060 0.405060 0.411804 0.411804 0.411804 0.418732 0.418732 0.418732 0.425537 0.425537 0.425537 0.432159 0.432159 0.432159 0.438904 0.438904 0.438904 0.445496 0.445496 0.445496 0.452271 0.452271 0.452271 0.459015 0.459015 0.459015 0.465607 0.465607 0.465607 0.472412 0.472412 0.472412 0.479279 0.479279 0.479279 0.486023 0.486023 0.486023 0.493011 0.493011 0.493011 0.500061 0.500061 0.500061 0.507050 0.507050 0.507050 0.514282 0.514282 0.514282 0.521423 0.521423 0.521423 0.528870 0.528870 0.528870 0.321747 0.321747 0.321747 0.330109 0.330109 0.330109 0.338257 0.338257 0.338257 0.346069 0.346069 0.346069 0.353912 0.353912 0.353912 0.361420 0.361420 0.361420 0.368988 0.368988 0.368988 0.376434 0.376434 0.376434 0.383545 0.383545 0.383545 0.390747 0.390747 0.390747 0.397858 0.397858 0.397858 0.404724 0.404724 0.404724 0.411652 0.411652 0.411652 0.418549 0.418549 0.418549 0.425171 0.425171 0.425171 0.431976 0.431976 0.431976 0.438568 0.438568 0.438568 0.445343 0.445343 0.445343 0.452087 0.452087 0.452087 0.458649 0.458649 0.458649 0.465454 0.465454 0.465454 0.472260 0.472260 0.472260 0.478943 0.478943 0.478943 0.485870 0.485870 0.485870 0.492828 0.492828 0.492828 0.499695 0.499695 0.499695 0.506836 0.506836 0.506836 0.513885 0.513885 0.513885 0.521240 0.521240 0.521240 0.528687 0.528687 0.528687 0.536072 0.536072 0.536072 0.543762 0.543762 0.543762 0.337860 0.337860 0.337860 0.345886 0.345886 0.345886 0.353516 0.353516 0.353516 0.361267 0.361267 0.361267 0.368805 0.368805 0.368805 0.376068 0.376068 0.376068 0.383362 0.383362 0.383362 0.390594 0.390594 0.390594 0.397522 0.397522 0.397522 0.404510 0.404510 0.404510 0.411469 0.411469 0.411469 0.418182 0.418182 0.418182 0.425018 0.425018 0.425018 0.431641 0.431641 0.431641 0.438385 0.438385 0.438385 0.445160 0.445160 0.445160 0.451752 0.451752 0.451752 0.458496 0.458496 0.458496 0.465271 0.465271 0.465271 0.471893 0.471893 0.471893 0.478760 0.478760 0.478760 0.485687 0.485687 0.485687 0.492493 0.492493 0.492493 0.499512 0.499512 0.499512 0.506683 0.506683 0.506683 0.513702 0.513702 0.513702 0.521057 0.521057 0.521057 0.528320 0.528320 0.528320 0.535858 0.535858 0.535858 0.543579 0.543579 0.543579 0.551178 0.551178 0.551178 0.559113 0.559113 0.559113 0.353363 0.353363 0.353363 0.361053 0.361053 0.361053 0.368408 0.368408 0.368408 0.375854 0.375854 0.375854 0.383179 0.383179 0.383179 0.390228 0.390228 0.390228 0.397339 0.397339 0.397339 0.404358 0.404358 0.404358 0.411133 0.411133 0.411133 0.417999 0.417999 0.417999 0.424866 0.424866 0.424866 0.431488 0.431488 0.431488 0.438263 0.438263 0.438263 0.444824 0.444824 0.444824 0.451569 0.451569 0.451569 0.458313 0.458313 0.458313 0.464935 0.464935 0.464935 0.471741 0.471741 0.471741 0.478607 0.478607 0.478607 0.485321 0.485321 0.485321 0.492310 0.492310 0.492310 0.499329 0.499329 0.499329 0.506317 0.506317 0.506317 0.513519 0.513519 0.513519 0.520660 0.520660 0.520660 0.528137 0.528137 0.528137 0.535706 0.535706 0.535706 0.543182 0.543182 0.543182 0.550995 0.550995 0.550995 0.558929 0.558929 0.558929 0.566803 0.566803 0.566803 0.575012 0.575012 0.575012 0.368225 0.368225 0.368225 0.375702 0.375702 0.375702 0.382843 0.382843 0.382843 0.390045 0.390045 0.390045 0.397186 0.397186 0.397186 0.403992 0.403992 0.403992 0.410980 0.410980 0.410980 0.417847 0.417847 0.417847 0.424500 0.424500 0.424500 0.431305 0.431305 0.431305 0.437897 0.437897 0.437897 0.444641 0.444641 0.444641 0.451416 0.451416 0.451416 0.457977 0.457977 0.457977 0.464752 0.464752 0.464752 0.471588 0.471588 0.471588 0.478241 0.478241 0.478241 0.485138 0.485138 0.485138 0.492126 0.492126 0.492126 0.498993 0.498993 0.498993 0.506134 0.506134 0.506134 0.513367 0.513367 0.513367 0.520508 0.520508 0.520508 0.527954 0.527954 0.527954 0.535339 0.535339 0.535339 0.542999 0.542999 0.542999 0.550781 0.550781 0.550781 0.558563 0.558563 0.558563 0.566589 0.566589 0.566589 0.574799 0.574799 0.574799 0.582947 0.582947 0.582947 0.591400 0.591400 0.591400 0.382660 0.382660 0.382660 0.389862 0.389862 0.389862 0.396820 0.396820 0.396820 0.403839 0.403839 0.403839 0.410797 0.410797 0.410797 0.417480 0.417480 0.417480 0.424347 0.424347 0.424347 0.431122 0.431122 0.431122 0.437744 0.437744 0.437744 0.444489 0.444489 0.444489 0.451080 0.451080 0.451080 0.457825 0.457825 0.457825 0.464600 0.464600 0.464600 0.471222 0.471222 0.471222 0.478088 0.478088 0.478088 0.484985 0.484985 0.484985 0.491760 0.491760 0.491760 0.498840 0.498840 0.498840 0.505951 0.505951 0.505951 0.513000 0.513000 0.513000 0.520325 0.520325 0.520325 0.527557 0.527557 0.527557 0.535126 0.535126 0.535126 0.542786 0.542786 0.542786 0.550385 0.550385 0.550385 0.558319 0.558319 0.558319 0.566376 0.566376 0.566376 0.574402 0.574402 0.574402 0.582703 0.582703 0.582703 0.591187 0.591187 0.591187 0.599518 0.599518 0.599518 0.608154 0.608154 0.608154 0.396637 0.396637 0.396637 0.403656 0.403656 0.403656 0.410461 0.410461 0.410461 0.417328 0.417328 0.417328 0.424164 0.424164 0.424164 0.430817 0.430817 0.430817 0.437592 0.437592 0.437592 0.444336 0.444336 0.444336 0.450897 0.450897 0.450897 0.457642 0.457642 0.457642 0.464233 0.464233 0.464233 0.471069 0.471069 0.471069 0.477936 0.477936 0.477936 0.484650 0.484650 0.484650 0.491608 0.491608 0.491608 0.498627 0.498627 0.498627 0.505615 0.505615 0.505615 0.512817 0.512817 0.512817 0.520142 0.520142 0.520142 0.527374 0.527374 0.527374 0.534943 0.534943 0.534943 0.542389 0.542389 0.542389 0.550201 0.550201 0.550201 0.558136 0.558136 0.558136 0.565979 0.565979 0.565979 0.574188 0.574188 0.574188 0.582520 0.582520 0.582520 0.590759 0.590759 0.590759 0.599304 0.599304 0.599304 0.607941 0.607941 0.607941 0.616394 0.616394 0.616394 0.625153 0.625153 0.625153 0.410278 0.410278 0.410278 0.417175 0.417175 0.417175 0.423828 0.423828 0.423828 0.430603 0.430603 0.430603 0.437378 0.437378 0.437378 0.443970 0.443970 0.443970 0.450714 0.450714 0.450714 0.457306 0.457306 0.457306 0.464081 0.464081 0.464081 0.470886 0.470886 0.470886 0.477570 0.477570 0.477570 0.484467 0.484467 0.484467 0.491425 0.491425 0.491425 0.498291 0.498291 0.498291 0.505432 0.505432 0.505432 0.512634 0.512634 0.512634 0.519775 0.519775 0.519775 0.527191 0.527191 0.527191 0.534546 0.534546 0.534546 0.542206 0.542206 0.542206 0.550018 0.550018 0.550018 0.557709 0.557709 0.557709 0.565765 0.565765 0.565765 0.573975 0.573975 0.573975 0.582092 0.582092 0.582092 0.590546 0.590546 0.590546 0.599091 0.599091 0.599091 0.607513 0.607513 0.607513 0.616211 0.616211 0.616211 0.624695 0.624695 0.624695 0.633453 0.633453 0.633453 0.642181 0.642181 0.642181 0.423676 0.423676 0.423676 0.430450 0.430450 0.430450 0.437073 0.437073 0.437073 0.443817 0.443817 0.443817 0.450562 0.450562 0.450562 0.457123 0.457123 0.457123 0.463928 0.463928 0.463928 0.470551 0.470551 0.470551 0.477386 0.477386 0.477386 0.484283 0.484283 0.484283 0.491089 0.491089 0.491089 0.498077 0.498077 0.498077 0.505219 0.505219 0.505219 0.512268 0.512268 0.512268 0.519592 0.519592 0.519592 0.527008 0.527008 0.527008 0.534363 0.534363 0.534363 0.542023 0.542023 0.542023 0.549622 0.549622 0.549622 0.557526 0.557526 0.557526 0.565582 0.565582 0.565582 0.573578 0.573578 0.573578 0.581909 0.581909 0.581909 0.590332 0.590332 0.590332 0.598663 0.598663 0.598663 0.607269 0.607269 0.607269 0.615967 0.615967 0.615967 0.624481 0.624481 0.624481 0.633240 0.633240 0.633240 0.641785 0.641785 0.641785 0.650513 0.650513 0.650513 0.659210 0.659210 0.659210 0.436890 0.436890 0.436890 0.443665 0.443665 0.443665 0.450226 0.450226 0.450226 0.456970 0.456970 0.456970 0.463562 0.463562 0.463562 0.470367 0.470367 0.470367 0.477203 0.477203 0.477203 0.483948 0.483948 0.483948 0.490906 0.490906 0.490906 0.497955 0.497955 0.497955 0.504883 0.504883 0.504883 0.512085 0.512085 0.512085 0.519379 0.519379 0.519379 0.526642 0.526642 0.526642 0.534180 0.534180 0.534180 0.541656 0.541656 0.541656 0.549408 0.549408 0.549408 0.557343 0.557343 0.557343 0.565186 0.565186 0.565186 0.573364 0.573364 0.573364 0.581696 0.581696 0.581696 0.589905 0.589905 0.589905 0.598450 0.598450 0.598450 0.607056 0.607056 0.607056 0.615540 0.615540 0.615540 0.624237 0.624237 0.624237 0.632812 0.632812 0.632812 0.641541 0.641541 0.641541 0.650299 0.650299 0.650299 0.658783 0.658783 0.658783 0.667450 0.667450 0.667450 0.676025 0.676025 0.676025 0.450073 0.450073 0.450073 0.456818 0.456818 0.456818 0.463409 0.463409 0.463409 0.470184 0.470184 0.470184 0.476868 0.476868 0.476868 0.483734 0.483734 0.483734 0.490692 0.490692 0.490692 0.497589 0.497589 0.497589 0.504700 0.504700 0.504700 0.511902 0.511902 0.511902 0.519043 0.519043 0.519043 0.526428 0.526428 0.526428 0.533966 0.533966 0.533966 0.541443 0.541443 0.541443 0.549225 0.549225 0.549225 0.556946 0.556946 0.556946 0.564972 0.564972 0.564972 0.573151 0.573151 0.573151 0.581268 0.581268 0.581268 0.589691 0.589691 0.589691 0.598236 0.598236 0.598236 0.606628 0.606628 0.606628 0.615295 0.615295 0.615295 0.624023 0.624023 0.624023 0.632568 0.632568 0.632568 0.641296 0.641296 0.641296 0.649841 0.649841 0.649841 0.658569 0.658569 0.658569 0.667206 0.667206 0.667206 0.675629 0.675629 0.675629 0.684143 0.684143 0.684143 0.692566 0.692566 0.692566 0.463226 0.463226 0.463226 0.469879 0.469879 0.469879 0.476685 0.476685 0.476685 0.483612 0.483612 0.483612 0.490387 0.490387 0.490387 0.497406 0.497406 0.497406 0.504517 0.504517 0.504517 0.511536 0.511536 0.511536 0.518860 0.518860 0.518860 0.526245 0.526245 0.526245 0.533600 0.533600 0.533600 0.541260 0.541260 0.541260 0.548828 0.548828 0.548828 0.556732 0.556732 0.556732 0.564758 0.564758 0.564758 0.572754 0.572754 0.572754 0.581024 0.581024 0.581024 0.589478 0.589478 0.589478 0.597809 0.597809 0.597809 0.606445 0.606445 0.606445 0.615112 0.615112 0.615112 0.623596 0.623596 0.623596 0.632355 0.632355 0.632355 0.640869 0.640869 0.640869 0.649628 0.649628 0.649628 0.658356 0.658356 0.658356 0.666779 0.666779 0.666779 0.675385 0.675385 0.675385 0.683960 0.683960 0.683960 0.692139 0.692139 0.692139 0.700470 0.700470 0.700470 0.708679 0.708679 0.708679 0.476532 0.476532 0.476532 0.483246 0.483246 0.483246 0.490173 0.490173 0.490173 0.497223 0.497223 0.497223 0.504181 0.504181 0.504181 0.511353 0.511353 0.511353 0.518677 0.518677 0.518677 0.525879 0.525879 0.525879 0.533417 0.533417 0.533417 0.541046 0.541046 0.541046 0.548645 0.548645 0.548645 0.556519 0.556519 0.556519 0.564362 0.564362 0.564362 0.572540 0.572540 0.572540 0.580841 0.580841 0.580841 0.589081 0.589081 0.589081 0.597595 0.597595 0.597595 0.606201 0.606201 0.606201 0.614655 0.614655 0.614655 0.623383 0.623383 0.623383 0.632141 0.632141 0.632141 0.640656 0.640656 0.640656 0.649414 0.649414 0.649414 0.657898 0.657898 0.657898 0.666565 0.666565 0.666565 0.675201 0.675201 0.675201 0.683502 0.683502 0.683502 0.691956 0.691956 0.691956 0.700287 0.700287 0.700287 0.708282 0.708282 0.708282 0.716339 0.716339 0.716339 0.724304 0.724304 0.724304 0.490051 0.490051 0.490051 0.496887 0.496887 0.496887 0.503967 0.503967 0.503967 0.511200 0.511200 0.511200 0.518280 0.518280 0.518280 0.525696 0.525696 0.525696 0.533234 0.533234 0.533234 0.540680 0.540680 0.540680 0.548431 0.548431 0.548431 0.556152 0.556152 0.556152 0.564178 0.564178 0.564178 0.572327 0.572327 0.572327 0.580414 0.580414 0.580414 0.588837 0.588837 0.588837 0.597382 0.597382 0.597382 0.605774 0.605774 0.605774 0.614441 0.614441 0.614441 0.623169 0.623169 0.623169 0.631683 0.631683 0.631683 0.640472 0.640472 0.640472 0.649170 0.649170 0.649170 0.657684 0.657684 0.657684 0.666351 0.666351 0.666351 0.674744 0.674744 0.674744 0.683319 0.683319 0.683319 0.691742 0.691742 0.691742 0.699890 0.699890 0.699890 0.708069 0.708069 0.708069 0.716156 0.716156 0.716156 0.723907 0.723907 0.723907 0.731659 0.731659 0.731659 0.739258 0.739258 0.739258 0.041809 0.041809 0.041809 0.047821 0.047821 0.047821 0.053406 0.053406 0.053406 0.059113 0.059113 0.059113 0.062958 0.062958 0.062958 0.067017 0.067017 0.067017 0.071228 0.071228 0.071228 0.075684 0.075684 0.075684 0.080414 0.080414 0.080414 0.085205 0.085205 0.085205 0.090393 0.090393 0.090393 0.095795 0.095795 0.095795 0.101379 0.101379 0.101379 0.107391 0.107391 0.107391 0.113586 0.113586 0.113586 0.120239 0.120239 0.120239 0.127289 0.127289 0.127289 0.134583 0.134583 0.134583 0.142426 0.142426 0.142426 0.150787 0.150787 0.150787 0.159454 0.159454 0.159454 0.168762 0.168762 0.168762 0.178528 0.178528 0.178528 0.188324 0.188324 0.188324 0.198639 0.198639 0.198639 0.208771 0.208771 0.208771 0.219177 0.219177 0.219177 0.229462 0.229462 0.229462 0.239349 0.239349 0.239349 0.249329 0.249329 0.249329 0.259094 0.259094 0.259094 0.268463 0.268463 0.268463 0.053070 0.053070 0.053070 0.059021 0.059021 0.059021 0.062836 0.062836 0.062836 0.066833 0.066833 0.066833 0.071106 0.071106 0.071106 0.075562 0.075562 0.075562 0.080170 0.080170 0.080170 0.085083 0.085083 0.085083 0.090271 0.090271 0.090271 0.095520 0.095520 0.095520 0.101227 0.101227 0.101227 0.107117 0.107117 0.107117 0.113403 0.113403 0.113403 0.120056 0.120056 0.120056 0.126923 0.126923 0.126923 0.134369 0.134369 0.134369 0.142242 0.142242 0.142242 0.150360 0.150360 0.150360 0.159180 0.159180 0.159180 0.168518 0.168518 0.168518 0.178009 0.178009 0.178009 0.188080 0.188080 0.188080 0.198364 0.198364 0.198364 0.208527 0.208527 0.208527 0.218933 0.218933 0.218933 0.228973 0.228973 0.228973 0.239136 0.239136 0.239136 0.249084 0.249084 0.249084 0.258606 0.258606 0.258606 0.268219 0.268219 0.268219 0.277618 0.277618 0.277618 0.286652 0.286652 0.286652 0.062622 0.062622 0.062622 0.066711 0.066711 0.066711 0.071014 0.071014 0.071014 0.075378 0.075378 0.075378 0.080048 0.080048 0.080048 0.084961 0.084961 0.084961 0.089996 0.089996 0.089996 0.095367 0.095367 0.095367 0.101105 0.101105 0.101105 0.106964 0.106964 0.106964 0.113251 0.113251 0.113251 0.119720 0.119720 0.119720 0.126740 0.126740 0.126740 0.134186 0.134186 0.134186 0.141846 0.141846 0.141846 0.150146 0.150146 0.150146 0.158966 0.158966 0.158966 0.168060 0.168060 0.168060 0.177734 0.177734 0.177734 0.187805 0.187805 0.187805 0.197845 0.197845 0.197845 0.208252 0.208252 0.208252 0.218414 0.218414 0.218414 0.228699 0.228699 0.228699 0.238892 0.238892 0.238892 0.248596 0.248596 0.248596 0.258362 0.258362 0.258362 0.267975 0.267975 0.267975 0.277161 0.277161 0.277161 0.286407 0.286407 0.286407 0.295471 0.295471 0.295471 0.304138 0.304138 0.304138 0.070801 0.070801 0.070801 0.075256 0.075256 0.075256 0.079956 0.079956 0.079956 0.084717 0.084717 0.084717 0.089874 0.089874 0.089874 0.095245 0.095245 0.095245 0.100800 0.100800 0.100800 0.106812 0.106812 0.106812 0.112946 0.112946 0.112946 0.119568 0.119568 0.119568 0.126587 0.126587 0.126587 0.133789 0.133789 0.133789 0.141632 0.141632 0.141632 0.149963 0.149963 0.149963 0.158508 0.158508 0.158508 0.167816 0.167816 0.167816 0.177490 0.177490 0.177490 0.187317 0.187317 0.187317 0.197601 0.197601 0.197601 0.208008 0.208008 0.208008 0.218140 0.218140 0.218140 0.228455 0.228455 0.228455 0.238373 0.238373 0.238373 0.248352 0.248352 0.248352 0.258118 0.258118 0.258118 0.267517 0.267517 0.267517 0.276917 0.276917 0.276917 0.286194 0.286194 0.286194 0.295013 0.295013 0.295013 0.303925 0.303925 0.303925 0.312622 0.312622 0.312622 0.320923 0.320923 0.320923 0.079681 0.079681 0.079681 0.084595 0.084595 0.084595 0.089722 0.089722 0.089722 0.094971 0.094971 0.094971 0.100647 0.100647 0.100647 0.106628 0.106628 0.106628 0.112762 0.112762 0.112762 0.119415 0.119415 0.119415 0.126221 0.126221 0.126221 0.133606 0.133606 0.133606 0.141449 0.141449 0.141449 0.149506 0.149506 0.149506 0.158264 0.158264 0.158264 0.167572 0.167572 0.167572 0.177032 0.177032 0.177032 0.187073 0.187073 0.187073 0.197357 0.197357 0.197357 0.207458 0.207458 0.207458 0.217896 0.217896 0.217896 0.227966 0.227966 0.227966 0.238098 0.238098 0.238098 0.248108 0.248108 0.248108 0.257629 0.257629 0.257629 0.267273 0.267273 0.267273 0.276703 0.276703 0.276703 0.285736 0.285736 0.285736 0.294830 0.294830 0.294830 0.303680 0.303680 0.303680 0.312195 0.312195 0.312195 0.320709 0.320709 0.320709 0.328827 0.328827 0.328827 0.337036 0.337036 0.337036 0.089447 0.089447 0.089447 0.094818 0.094818 0.094818 0.100525 0.100525 0.100525 0.106323 0.106323 0.106323 0.112610 0.112610 0.112610 0.119080 0.119080 0.119080 0.126068 0.126068 0.126068 0.133423 0.133423 0.133423 0.141052 0.141052 0.141052 0.149323 0.149323 0.149323 0.158081 0.158081 0.158081 0.167114 0.167114 0.167114 0.176788 0.176788 0.176788 0.186829 0.186829 0.186829 0.196808 0.196808 0.196808 0.207214 0.207214 0.207214 0.217621 0.217621 0.217621 0.227692 0.227692 0.227692 0.237854 0.237854 0.237854 0.247589 0.247589 0.247589 0.257385 0.257385 0.257385 0.267059 0.267059 0.267059 0.276245 0.276245 0.276245 0.285492 0.285492 0.285492 0.294586 0.294586 0.294586 0.303253 0.303253 0.303253 0.311981 0.311981 0.311981 0.320496 0.320496 0.320496 0.328674 0.328674 0.328674 0.336853 0.336853 0.336853 0.344666 0.344666 0.344666 0.352539 0.352539 0.352539 0.100220 0.100220 0.100220 0.106171 0.106171 0.106171 0.112427 0.112427 0.112427 0.118896 0.118896 0.118896 0.125854 0.125854 0.125854 0.133057 0.133057 0.133057 0.140839 0.140839 0.140839 0.149078 0.149078 0.149078 0.157623 0.157623 0.157623 0.166840 0.166840 0.166840 0.176544 0.176544 0.176544 0.186310 0.186310 0.186310 0.196564 0.196564 0.196564 0.206940 0.206940 0.206940 0.217102 0.217102 0.217102 0.227448 0.227448 0.227448 0.237335 0.237335 0.237335 0.247314 0.247314 0.247314 0.257172 0.257172 0.257172 0.266541 0.266541 0.266541 0.276001 0.276001 0.276001 0.285248 0.285248 0.285248 0.294128 0.294128 0.294128 0.303009 0.303009 0.303009 0.311737 0.311737 0.311737 0.320099 0.320099 0.320099 0.328461 0.328461 0.328461 0.336426 0.336426 0.336426 0.344482 0.344482 0.344482 0.352325 0.352325 0.352325 0.359894 0.359894 0.359894 0.367462 0.367462 0.367462 0.112122 0.112122 0.112122 0.118713 0.118713 0.118713 0.125671 0.125671 0.125671 0.132843 0.132843 0.132843 0.140625 0.140625 0.140625 0.148682 0.148682 0.148682 0.157410 0.157410 0.157410 0.166595 0.166595 0.166595 0.176056 0.176056 0.176056 0.186035 0.186035 0.186035 0.196289 0.196289 0.196289 0.206421 0.206421 0.206421 0.216827 0.216827 0.216827 0.226929 0.226929 0.226929 0.237091 0.237091 0.237091 0.247070 0.247070 0.247070 0.256653 0.256653 0.256653 0.266296 0.266296 0.266296 0.275757 0.275757 0.275757 0.284821 0.284821 0.284821 0.293915 0.293915 0.293915 0.302795 0.302795 0.302795 0.311310 0.311310 0.311310 0.319855 0.319855 0.319855 0.328247 0.328247 0.328247 0.336243 0.336243 0.336243 0.344269 0.344269 0.344269 0.351959 0.351959 0.351959 0.359711 0.359711 0.359711 0.367310 0.367310 0.367310 0.374573 0.374573 0.374573 0.381927 0.381927 0.381927 0.125305 0.125305 0.125305 0.132660 0.132660 0.132660 0.140228 0.140228 0.140228 0.148438 0.148438 0.148438 0.157166 0.157166 0.157166 0.166138 0.166138 0.166138 0.175781 0.175781 0.175781 0.185791 0.185791 0.185791 0.195801 0.195801 0.195801 0.206177 0.206177 0.206177 0.216583 0.216583 0.216583 0.226685 0.226685 0.226685 0.236847 0.236847 0.236847 0.246582 0.246582 0.246582 0.256409 0.256409 0.256409 0.266052 0.266052 0.266052 0.275299 0.275299 0.275299 0.284576 0.284576 0.284576 0.293671 0.293671 0.293671 0.302368 0.302368 0.302368 0.311066 0.311066 0.311066 0.319641 0.319641 0.319641 0.327789 0.327789 0.327789 0.336029 0.336029 0.336029 0.343872 0.343872 0.343872 0.351776 0.351776 0.351776 0.359497 0.359497 0.359497 0.366943 0.366943 0.366943 0.374390 0.374390 0.374390 0.381744 0.381744 0.381744 0.388794 0.388794 0.388794 0.395935 0.395935 0.395935 0.140045 0.140045 0.140045 0.148285 0.148285 0.148285 0.156708 0.156708 0.156708 0.165894 0.165894 0.165894 0.175537 0.175537 0.175537 0.185272 0.185272 0.185272 0.195526 0.195526 0.195526 0.205902 0.205902 0.205902 0.216064 0.216064 0.216064 0.226410 0.226410 0.226410 0.236572 0.236572 0.236572 0.246338 0.246338 0.246338 0.256165 0.256165 0.256165 0.265594 0.265594 0.265594 0.275085 0.275085 0.275085 0.284332 0.284332 0.284332 0.293213 0.293213 0.293213 0.302155 0.302155 0.302155 0.310913 0.310913 0.310913 0.319214 0.319214 0.319214 0.327637 0.327637 0.327637 0.335846 0.335846 0.335846 0.343689 0.343689 0.343689 0.351562 0.351562 0.351562 0.359131 0.359131 0.359131 0.366730 0.366730 0.366730 0.374207 0.374207 0.374207 0.381378 0.381378 0.381378 0.388611 0.388611 0.388611 0.395752 0.395752 0.395752 0.402618 0.402618 0.402618 0.409576 0.409576 0.409576 0.156494 0.156494 0.156494 0.165680 0.165680 0.165680 0.175049 0.175049 0.175049 0.185028 0.185028 0.185028 0.195251 0.195251 0.195251 0.205383 0.205383 0.205383 0.215790 0.215790 0.215790 0.226166 0.226166 0.226166 0.236053 0.236053 0.236053 0.246094 0.246094 0.246094 0.255707 0.255707 0.255707 0.265350 0.265350 0.265350 0.274841 0.274841 0.274841 0.283905 0.283905 0.283905 0.292999 0.292999 0.292999 0.301941 0.301941 0.301941 0.310455 0.310455 0.310455 0.319000 0.319000 0.319000 0.327393 0.327393 0.327393 0.335419 0.335419 0.335419 0.343506 0.343506 0.343506 0.351166 0.351166 0.351166 0.358948 0.358948 0.358948 0.366547 0.366547 0.366547 0.373840 0.373840 0.373840 0.381195 0.381195 0.381195 0.388428 0.388428 0.388428 0.395416 0.395416 0.395416 0.402435 0.402435 0.402435 0.409424 0.409424 0.409424 0.416138 0.416138 0.416138 0.422974 0.422974 0.422974 0.174805 0.174805 0.174805 0.184753 0.184753 0.184753 0.194763 0.194763 0.194763 0.205109 0.205109 0.205109 0.215546 0.215546 0.215546 0.225647 0.225647 0.225647 0.235840 0.235840 0.235840 0.245880 0.245880 0.245880 0.255463 0.255463 0.255463 0.265106 0.265106 0.265106 0.274323 0.274323 0.274323 0.283661 0.283661 0.283661 0.292786 0.292786 0.292786 0.301483 0.301483 0.301483 0.310242 0.310242 0.310242 0.318817 0.318817 0.318817 0.326996 0.326996 0.326996 0.335205 0.335205 0.335205 0.343262 0.343262 0.343262 0.350983 0.350983 0.350983 0.358734 0.358734 0.358734 0.366180 0.366180 0.366180 0.373657 0.373657 0.373657 0.381012 0.381012 0.381012 0.388062 0.388062 0.388062 0.395203 0.395203 0.395203 0.402252 0.402252 0.402252 0.409058 0.409058 0.409058 0.415955 0.415955 0.415955 0.422791 0.422791 0.422791 0.429443 0.429443 0.429443 0.436218 0.436218 0.436218 0.194489 0.194489 0.194489 0.204865 0.204865 0.204865 0.215027 0.215027 0.215027 0.225372 0.225372 0.225372 0.235596 0.235596 0.235596 0.245361 0.245361 0.245361 0.255219 0.255219 0.255219 0.264618 0.264618 0.264618 0.274109 0.274109 0.274109 0.283417 0.283417 0.283417 0.292328 0.292328 0.292328 0.301270 0.301270 0.301270 0.310028 0.310028 0.310028 0.318390 0.318390 0.318390 0.326782 0.326782 0.326782 0.335022 0.335022 0.335022 0.342865 0.342865 0.342865 0.350800 0.350800 0.350800 0.358551 0.358551 0.358551 0.365967 0.365967 0.365967 0.373474 0.373474 0.373474 0.380615 0.380615 0.380615 0.387878 0.387878 0.387878 0.395020 0.395020 0.395020 0.401917 0.401917 0.401917 0.408905 0.408905 0.408905 0.415802 0.415802 0.415802 0.422455 0.422455 0.422455 0.429260 0.429260 0.429260 0.435883 0.435883 0.435883 0.442627 0.442627 0.442627 0.449371 0.449371 0.449371 0.214752 0.214752 0.214752 0.225128 0.225128 0.225128 0.235077 0.235077 0.235077 0.245117 0.245117 0.245117 0.254974 0.254974 0.254974 0.264404 0.264404 0.264404 0.273895 0.273895 0.273895 0.282990 0.282990 0.282990 0.292114 0.292114 0.292114 0.301056 0.301056 0.301056 0.309601 0.309601 0.309601 0.318176 0.318176 0.318176 0.326599 0.326599 0.326599 0.334625 0.334625 0.334625 0.342682 0.342682 0.342682 0.350616 0.350616 0.350616 0.358154 0.358154 0.358154 0.365784 0.365784 0.365784 0.373077 0.373077 0.373077 0.380463 0.380463 0.380463 0.387695 0.387695 0.387695 0.394684 0.394684 0.394684 0.401764 0.401764 0.401764 0.408722 0.408722 0.408722 0.415436 0.415436 0.415436 0.422272 0.422272 0.422272 0.429108 0.429108 0.429108 0.435699 0.435699 0.435699 0.442444 0.442444 0.442444 0.449036 0.449036 0.449036 0.455780 0.455780 0.455780 0.462555 0.462555 0.462555 0.234833 0.234833 0.234833 0.244843 0.244843 0.244843 0.254456 0.254456 0.254456 0.264160 0.264160 0.264160 0.273407 0.273407 0.273407 0.282745 0.282745 0.282745 0.291870 0.291870 0.291870 0.300598 0.300598 0.300598 0.309357 0.309357 0.309357 0.317932 0.317932 0.317932 0.326172 0.326172 0.326172 0.334412 0.334412 0.334412 0.342468 0.342468 0.342468 0.350189 0.350189 0.350189 0.357971 0.357971 0.357971 0.365417 0.365417 0.365417 0.372894 0.372894 0.372894 0.380280 0.380280 0.380280 0.387360 0.387360 0.387360 0.394501 0.394501 0.394501 0.401550 0.401550 0.401550 0.408386 0.408386 0.408386 0.415283 0.415283 0.415283 0.422119 0.422119 0.422119 0.428772 0.428772 0.428772 0.435516 0.435516 0.435516 0.442291 0.442291 0.442291 0.448883 0.448883 0.448883 0.455627 0.455627 0.455627 0.462219 0.462219 0.462219 0.469025 0.469025 0.469025 0.475861 0.475861 0.475861 0.254211 0.254211 0.254211 0.263916 0.263916 0.263916 0.273193 0.273193 0.273193 0.282501 0.282501 0.282501 0.291412 0.291412 0.291412 0.300385 0.300385 0.300385 0.309143 0.309143 0.309143 0.317535 0.317535 0.317535 0.325958 0.325958 0.325958 0.334167 0.334167 0.334167 0.342072 0.342072 0.342072 0.349976 0.349976 0.349976 0.357788 0.357788 0.357788 0.365204 0.365204 0.365204 0.372711 0.372711 0.372711 0.379883 0.379883 0.379883 0.387177 0.387177 0.387177 0.394318 0.394318 0.394318 0.401215 0.401215 0.401215 0.408203 0.408203 0.408203 0.415100 0.415100 0.415100 0.421753 0.421753 0.421753 0.428589 0.428589 0.428589 0.435364 0.435364 0.435364 0.441956 0.441956 0.441956 0.448700 0.448700 0.448700 0.455292 0.455292 0.455292 0.462036 0.462036 0.462036 0.468842 0.468842 0.468842 0.475494 0.475494 0.475494 0.482391 0.482391 0.482391 0.489349 0.489349 0.489349 0.272949 0.272949 0.272949 0.282257 0.282257 0.282257 0.291199 0.291199 0.291199 0.300140 0.300140 0.300140 0.308716 0.308716 0.308716 0.317291 0.317291 0.317291 0.325745 0.325745 0.325745 0.333801 0.333801 0.333801 0.341858 0.341858 0.341858 0.349823 0.349823 0.349823 0.357391 0.357391 0.357391 0.365051 0.365051 0.365051 0.372528 0.372528 0.372528 0.379700 0.379700 0.379700 0.386993 0.386993 0.386993 0.393982 0.393982 0.393982 0.401031 0.401031 0.401031 0.408020 0.408020 0.408020 0.414764 0.414764 0.414764 0.421631 0.421631 0.421631 0.428406 0.428406 0.428406 0.435028 0.435028 0.435028 0.441772 0.441772 0.441772 0.448517 0.448517 0.448517 0.455109 0.455109 0.455109 0.461884 0.461884 0.461884 0.468506 0.468506 0.468506 0.475342 0.475342 0.475342 0.482208 0.482208 0.482208 0.488983 0.488983 0.488983 0.496002 0.496002 0.496002 0.503082 0.503082 0.503082 0.290985 0.290985 0.290985 0.299896 0.299896 0.299896 0.308502 0.308502 0.308502 0.317108 0.317108 0.317108 0.325317 0.325317 0.325317 0.333588 0.333588 0.333588 0.341675 0.341675 0.341675 0.349396 0.349396 0.349396 0.357208 0.357208 0.357208 0.364838 0.364838 0.364838 0.372192 0.372192 0.372192 0.379547 0.379547 0.379547 0.386810 0.386810 0.386810 0.393768 0.393768 0.393768 0.400848 0.400848 0.400848 0.407684 0.407684 0.407684 0.414612 0.414612 0.414612 0.421448 0.421448 0.421448 0.428101 0.428101 0.428101 0.434875 0.434875 0.434875 0.441620 0.441620 0.441620 0.448212 0.448212 0.448212 0.454956 0.454956 0.454956 0.461700 0.461700 0.461700 0.468323 0.468323 0.468323 0.475159 0.475159 0.475159 0.481873 0.481873 0.481873 0.488831 0.488831 0.488831 0.495819 0.495819 0.495819 0.502747 0.502747 0.502747 0.509888 0.509888 0.509888 0.517212 0.517212 0.517212 0.308289 0.308289 0.308289 0.316681 0.316681 0.316681 0.325104 0.325104 0.325104 0.333374 0.333374 0.333374 0.341278 0.341278 0.341278 0.349213 0.349213 0.349213 0.356995 0.356995 0.356995 0.364471 0.364471 0.364471 0.371979 0.371979 0.371979 0.379333 0.379333 0.379333 0.386444 0.386444 0.386444 0.393616 0.393616 0.393616 0.400482 0.400482 0.400482 0.407501 0.407501 0.407501 0.414429 0.414429 0.414429 0.421112 0.421112 0.421112 0.427887 0.427887 0.427887 0.434692 0.434692 0.434692 0.441284 0.441284 0.441284 0.448029 0.448029 0.448029 0.454773 0.454773 0.454773 0.461365 0.461365 0.461365 0.468140 0.468140 0.468140 0.474823 0.474823 0.474823 0.481689 0.481689 0.481689 0.488617 0.488617 0.488617 0.495483 0.495483 0.495483 0.502533 0.502533 0.502533 0.509735 0.509735 0.509735 0.516815 0.516815 0.516815 0.524200 0.524200 0.524200 0.531708 0.531708 0.531708 0.324890 0.324890 0.324890 0.332977 0.332977 0.332977 0.341064 0.341064 0.341064 0.349030 0.349030 0.349030 0.356598 0.356598 0.356598 0.364258 0.364258 0.364258 0.371796 0.371796 0.371796 0.378967 0.378967 0.378967 0.386261 0.386261 0.386261 0.393463 0.393463 0.393463 0.400360 0.400360 0.400360 0.407318 0.407318 0.407318 0.414062 0.414062 0.414062 0.420929 0.420929 0.420929 0.427734 0.427734 0.427734 0.434357 0.434357 0.434357 0.441101 0.441101 0.441101 0.447845 0.447845 0.447845 0.454437 0.454437 0.454437 0.461212 0.461212 0.461212 0.467987 0.467987 0.467987 0.474640 0.474640 0.474640 0.481506 0.481506 0.481506 0.488281 0.488281 0.488281 0.495270 0.495270 0.495270 0.502380 0.502380 0.502380 0.509369 0.509369 0.509369 0.516663 0.516663 0.516663 0.524017 0.524017 0.524017 0.531342 0.531342 0.531342 0.538940 0.538940 0.538940 0.546661 0.546661 0.546661 0.340881 0.340881 0.340881 0.348633 0.348633 0.348633 0.356445 0.356445 0.356445 0.364105 0.364105 0.364105 0.371399 0.371399 0.371399 0.378815 0.378815 0.378815 0.386078 0.386078 0.386078 0.393097 0.393097 0.393097 0.400146 0.400146 0.400146 0.406982 0.406982 0.406982 0.413879 0.413879 0.413879 0.420776 0.420776 0.420776 0.427399 0.427399 0.427399 0.434204 0.434204 0.434204 0.440948 0.440948 0.440948 0.447510 0.447510 0.447510 0.454254 0.454254 0.454254 0.461029 0.461029 0.461029 0.467651 0.467651 0.467651 0.474457 0.474457 0.474457 0.481354 0.481354 0.481354 0.488098 0.488098 0.488098 0.495087 0.495087 0.495087 0.502014 0.502014 0.502014 0.509186 0.509186 0.509186 0.516449 0.516449 0.516449 0.523651 0.523651 0.523651 0.531158 0.531158 0.531158 0.538727 0.538727 0.538727 0.546295 0.546295 0.546295 0.554169 0.554169 0.554169 0.562134 0.562134 0.562134 0.356232 0.356232 0.356232 0.363708 0.363708 0.363708 0.371246 0.371246 0.371246 0.378601 0.378601 0.378601 0.385742 0.385742 0.385742 0.392883 0.392883 0.392883 0.399963 0.399963 0.399963 0.406799 0.406799 0.406799 0.413727 0.413727 0.413727 0.420410 0.420410 0.420410 0.427246 0.427246 0.427246 0.433990 0.433990 0.433990 0.440582 0.440582 0.440582 0.447357 0.447357 0.447357 0.454102 0.454102 0.454102 0.460693 0.460693 0.460693 0.467468 0.467468 0.467468 0.474304 0.474304 0.474304 0.481018 0.481018 0.481018 0.487915 0.487915 0.487915 0.494781 0.494781 0.494781 0.501862 0.501862 0.501862 0.509003 0.509003 0.509003 0.516113 0.516113 0.516113 0.523468 0.523468 0.523468 0.530945 0.530945 0.530945 0.538361 0.538361 0.538361 0.546112 0.546112 0.546112 0.553955 0.553955 0.553955 0.561737 0.561737 0.561737 0.569885 0.569885 0.569885 0.577911 0.577911 0.577911 0.371033 0.371033 0.371033 0.378265 0.378265 0.378265 0.385559 0.385559 0.385559 0.392731 0.392731 0.392731 0.399628 0.399628 0.399628 0.406616 0.406616 0.406616 0.413361 0.413361 0.413361 0.420227 0.420227 0.420227 0.427063 0.427063 0.427063 0.433685 0.433685 0.433685 0.440430 0.440430 0.440430 0.447205 0.447205 0.447205 0.453766 0.453766 0.453766 0.460541 0.460541 0.460541 0.467316 0.467316 0.467316 0.473938 0.473938 0.473938 0.480835 0.480835 0.480835 0.487762 0.487762 0.487762 0.494568 0.494568 0.494568 0.501678 0.501678 0.501678 0.508636 0.508636 0.508636 0.515900 0.515900 0.515900 0.523285 0.523285 0.523285 0.530579 0.530579 0.530579 0.538177 0.538177 0.538177 0.545898 0.545898 0.545898 0.553558 0.553558 0.553558 0.561554 0.561554 0.561554 0.569672 0.569672 0.569672 0.577698 0.577698 0.577698 0.586090 0.586090 0.586090 0.594391 0.594391 0.594391 0.385376 0.385376 0.385376 0.392365 0.392365 0.392365 0.399445 0.399445 0.399445 0.406464 0.406464 0.406464 0.413208 0.413208 0.413208 0.420074 0.420074 0.420074 0.426727 0.426727 0.426727 0.433502 0.433502 0.433502 0.440277 0.440277 0.440277 0.446838 0.446838 0.446838 0.453613 0.453613 0.453613 0.460358 0.460358 0.460358 0.466949 0.466949 0.466949 0.473785 0.473785 0.473785 0.480682 0.480682 0.480682 0.487427 0.487427 0.487427 0.494415 0.494415 0.494415 0.501312 0.501312 0.501312 0.508453 0.508453 0.508453 0.515747 0.515747 0.515747 0.522888 0.522888 0.522888 0.530396 0.530396 0.530396 0.537964 0.537964 0.537964 0.545502 0.545502 0.545502 0.553375 0.553375 0.553375 0.561340 0.561340 0.561340 0.569244 0.569244 0.569244 0.577515 0.577515 0.577515 0.585663 0.585663 0.585663 0.594147 0.594147 0.594147 0.602722 0.602722 0.602722 0.611176 0.611176 0.611176 0.399292 0.399292 0.399292 0.406097 0.406097 0.406097 0.413055 0.413055 0.413055 0.419708 0.419708 0.419708 0.426544 0.426544 0.426544 0.433319 0.433319 0.433319 0.439941 0.439941 0.439941 0.446686 0.446686 0.446686 0.453430 0.453430 0.453430 0.460022 0.460022 0.460022 0.466797 0.466797 0.466797 0.473633 0.473633 0.473633 0.480316 0.480316 0.480316 0.487244 0.487244 0.487244 0.494049 0.494049 0.494049 0.501129 0.501129 0.501129 0.508301 0.508301 0.508301 0.515381 0.515381 0.515381 0.522736 0.522736 0.522736 0.530212 0.530212 0.530212 0.537598 0.537598 0.537598 0.545319 0.545319 0.545319 0.553162 0.553162 0.553162 0.560944 0.560944 0.560944 0.569061 0.569061 0.569061 0.577301 0.577301 0.577301 0.585449 0.585449 0.585449 0.593964 0.593964 0.593964 0.602325 0.602325 0.602325 0.610992 0.610992 0.610992 0.619690 0.619690 0.619690 0.628174 0.628174 0.628174 0.412872 0.412872 0.412872 0.419556 0.419556 0.419556 0.426392 0.426392 0.426392 0.432983 0.432983 0.432983 0.439758 0.439758 0.439758 0.446503 0.446503 0.446503 0.453064 0.453064 0.453064 0.459869 0.459869 0.459869 0.466614 0.466614 0.466614 0.473297 0.473297 0.473297 0.480164 0.480164 0.480164 0.487061 0.487061 0.487061 0.493896 0.493896 0.493896 0.500946 0.500946 0.500946 0.507935 0.507935 0.507935 0.515198 0.515198 0.515198 0.522552 0.522552 0.522552 0.529816 0.529816 0.529816 0.537415 0.537415 0.537415 0.545135 0.545135 0.545135 0.552734 0.552734 0.552734 0.560760 0.560760 0.560760 0.568817 0.568817 0.568817 0.576874 0.576874 0.576874 0.585266 0.585266 0.585266 0.593536 0.593536 0.593536 0.602081 0.602081 0.602081 0.610748 0.610748 0.610748 0.619232 0.619232 0.619232 0.627960 0.627960 0.627960 0.636719 0.636719 0.636719 0.645264 0.645264 0.645264 0.426056 0.426056 0.426056 0.432831 0.432831 0.432831 0.439606 0.439606 0.439606 0.446167 0.446167 0.446167 0.452911 0.452911 0.452911 0.459656 0.459656 0.459656 0.466278 0.466278 0.466278 0.473114 0.473114 0.473114 0.479950 0.479950 0.479950 0.486694 0.486694 0.486694 0.493683 0.493683 0.493683 0.500610 0.500610 0.500610 0.507751 0.507751 0.507751 0.514984 0.514984 0.514984 0.522186 0.522186 0.522186 0.529633 0.529633 0.529633 0.537201 0.537201 0.537201 0.544739 0.544739 0.544739 0.552582 0.552582 0.552582 0.560516 0.560516 0.560516 0.568451 0.568451 0.568451 0.576691 0.576691 0.576691 0.585052 0.585052 0.585052 0.593323 0.593323 0.593323 0.601898 0.601898 0.601898 0.610321 0.610321 0.610321 0.619049 0.619049 0.619049 0.627747 0.627747 0.627747 0.636322 0.636322 0.636322 0.645050 0.645050 0.645050 0.653778 0.653778 0.653778 0.662262 0.662262 0.662262 0.439270 0.439270 0.439270 0.446014 0.446014 0.446014 0.452728 0.452728 0.452728 0.459320 0.459320 0.459320 0.466125 0.466125 0.466125 0.472931 0.472931 0.472931 0.479614 0.479614 0.479614 0.486542 0.486542 0.486542 0.493530 0.493530 0.493530 0.500427 0.500427 0.500427 0.507568 0.507568 0.507568 0.514618 0.514618 0.514618 0.521973 0.521973 0.521973 0.529449 0.529449 0.529449 0.536835 0.536835 0.536835 0.544525 0.544525 0.544525 0.552368 0.552368 0.552368 0.560120 0.560120 0.560120 0.568237 0.568237 0.568237 0.576477 0.576477 0.576477 0.584656 0.584656 0.584656 0.593079 0.593079 0.593079 0.601440 0.601440 0.601440 0.610107 0.610107 0.610107 0.618805 0.618805 0.618805 0.627319 0.627319 0.627319 0.636078 0.636078 0.636078 0.644836 0.644836 0.644836 0.653320 0.653320 0.653320 0.662018 0.662018 0.662018 0.670685 0.670685 0.670685 0.679047 0.679047 0.679047 0.452393 0.452393 0.452393 0.459167 0.459167 0.459167 0.465942 0.465942 0.465942 0.472595 0.472595 0.472595 0.479462 0.479462 0.479462 0.486359 0.486359 0.486359 0.493195 0.493195 0.493195 0.500244 0.500244 0.500244 0.507202 0.507202 0.507202 0.514465 0.514465 0.514465 0.521820 0.521820 0.521820 0.529083 0.529083 0.529083 0.536621 0.536621 0.536621 0.544342 0.544342 0.544342 0.551971 0.551971 0.551971 0.559937 0.559937 0.559937 0.568024 0.568024 0.568024 0.576080 0.576080 0.576080 0.584412 0.584412 0.584412 0.592865 0.592865 0.592865 0.601257 0.601257 0.601257 0.609894 0.609894 0.609894 0.618378 0.618378 0.618378 0.627106 0.627106 0.627106 0.635864 0.635864 0.635864 0.644379 0.644379 0.644379 0.653137 0.653137 0.653137 0.661804 0.661804 0.661804 0.670227 0.670227 0.670227 0.678833 0.678833 0.678833 0.687317 0.687317 0.687317 0.695496 0.695496 0.695496 0.465607 0.465607 0.465607 0.472412 0.472412 0.472412 0.479279 0.479279 0.479279 0.486023 0.486023 0.486023 0.493011 0.493011 0.493011 0.500061 0.500061 0.500061 0.507050 0.507050 0.507050 0.514282 0.514282 0.514282 0.521423 0.521423 0.521423 0.528870 0.528870 0.528870 0.536438 0.536438 0.536438 0.543945 0.543945 0.543945 0.551788 0.551788 0.551788 0.559753 0.559753 0.559753 0.567627 0.567627 0.567627 0.575867 0.575867 0.575867 0.584198 0.584198 0.584198 0.592438 0.592438 0.592438 0.601013 0.601013 0.601013 0.609467 0.609467 0.609467 0.618134 0.618134 0.618134 0.626862 0.626862 0.626862 0.635406 0.635406 0.635406 0.644196 0.644196 0.644196 0.652924 0.652924 0.652924 0.661377 0.661377 0.661377 0.670044 0.670044 0.670044 0.678650 0.678650 0.678650 0.686920 0.686920 0.686920 0.695282 0.695282 0.695282 0.703400 0.703400 0.703400 0.711548 0.711548 0.711548 0.478943 0.478943 0.478943 0.485870 0.485870 0.485870 0.492828 0.492828 0.492828 0.499695 0.499695 0.499695 0.506836 0.506836 0.506836 0.514099 0.514099 0.514099 0.521240 0.521240 0.521240 0.528687 0.528687 0.528687 0.536072 0.536072 0.536072 0.543762 0.543762 0.543762 0.551575 0.551575 0.551575 0.559326 0.559326 0.559326 0.567383 0.567383 0.567383 0.575653 0.575653 0.575653 0.583771 0.583771 0.583771 0.592255 0.592255 0.592255 0.600800 0.600800 0.600800 0.609253 0.609253 0.609253 0.617950 0.617950 0.617950 0.626465 0.626465 0.626465 0.635193 0.635193 0.635193 0.643982 0.643982 0.643982 0.652466 0.652466 0.652466 0.661194 0.661194 0.661194 0.669800 0.669800 0.669800 0.678162 0.678162 0.678162 0.686676 0.686676 0.686676 0.695099 0.695099 0.695099 0.703156 0.703156 0.703156 0.711334 0.711334 0.711334 0.719147 0.719147 0.719147 0.727020 0.727020 0.727020 0.492493 0.492493 0.492493 0.499512 0.499512 0.499512 0.506683 0.506683 0.506683 0.513702 0.513702 0.513702 0.521057 0.521057 0.521057 0.528320 0.528320 0.528320 0.535858 0.535858 0.535858 0.543579 0.543579 0.543579 0.551178 0.551178 0.551178 0.559113 0.559113 0.559113 0.567200 0.567200 0.567200 0.575195 0.575195 0.575195 0.583557 0.583557 0.583557 0.592041 0.592041 0.592041 0.600372 0.600372 0.600372 0.609009 0.609009 0.609009 0.617493 0.617493 0.617493 0.626221 0.626221 0.626221 0.635010 0.635010 0.635010 0.643524 0.643524 0.643524 0.652252 0.652252 0.652252 0.660980 0.660980 0.660980 0.669403 0.669403 0.669403 0.677979 0.677979 0.677979 0.686493 0.686493 0.686493 0.694672 0.694672 0.694672 0.702972 0.702972 0.702972 0.710938 0.710938 0.710938 0.718964 0.718964 0.718964 0.726807 0.726807 0.726807 0.734344 0.734344 0.734344 0.741882 0.741882 0.741882 0.043915 0.043915 0.043915 0.049835 0.049835 0.049835 0.055511 0.055511 0.055511 0.060486 0.060486 0.060486 0.064514 0.064514 0.064514 0.068512 0.068512 0.068512 0.072845 0.072845 0.072845 0.077454 0.077454 0.077454 0.082092 0.082092 0.082092 0.087097 0.087097 0.087097 0.092255 0.092255 0.092255 0.097778 0.097778 0.097778 0.103638 0.103638 0.103638 0.109589 0.109589 0.109589 0.116058 0.116058 0.116058 0.122833 0.122833 0.122833 0.129852 0.129852 0.129852 0.137451 0.137451 0.137451 0.145538 0.145538 0.145538 0.153839 0.153839 0.153839 0.162872 0.162872 0.162872 0.172150 0.172150 0.172150 0.182007 0.182007 0.182007 0.192169 0.192169 0.192169 0.202271 0.202271 0.202271 0.212646 0.212646 0.212646 0.223053 0.223053 0.223053 0.233032 0.233032 0.233032 0.243103 0.243103 0.243103 0.253021 0.253021 0.253021 0.262482 0.262482 0.262482 0.272003 0.272003 0.272003 0.055359 0.055359 0.055359 0.060394 0.060394 0.060394 0.064270 0.064270 0.064270 0.068390 0.068390 0.068390 0.072693 0.072693 0.072693 0.077179 0.077179 0.077179 0.081970 0.081970 0.081970 0.086853 0.086853 0.086853 0.092133 0.092133 0.092133 0.097656 0.097656 0.097656 0.103333 0.103333 0.103333 0.109436 0.109436 0.109436 0.115875 0.115875 0.115875 0.122498 0.122498 0.122498 0.129700 0.129700 0.129700 0.137268 0.137268 0.137268 0.145111 0.145111 0.145111 0.153595 0.153595 0.153595 0.162628 0.162628 0.162628 0.171906 0.171906 0.171906 0.181732 0.181732 0.181732 0.191650 0.191650 0.191650 0.202026 0.202026 0.202026 0.212402 0.212402 0.212402 0.222534 0.222534 0.222534 0.232788 0.232788 0.232788 0.242828 0.242828 0.242828 0.252502 0.252502 0.252502 0.262238 0.262238 0.262238 0.271545 0.271545 0.271545 0.280884 0.280884 0.280884 0.290039 0.290039 0.290039 0.064178 0.064178 0.064178 0.068268 0.068268 0.068268 0.072510 0.072510 0.072510 0.077057 0.077057 0.077057 0.081848 0.081848 0.081848 0.086731 0.086731 0.086731 0.091980 0.091980 0.091980 0.097351 0.097351 0.097351 0.103149 0.103149 0.103149 0.109283 0.109283 0.109283 0.115540 0.115540 0.115540 0.122314 0.122314 0.122314 0.129486 0.129486 0.129486 0.136871 0.136871 0.136871 0.144897 0.144897 0.144897 0.153381 0.153381 0.153381 0.162170 0.162170 0.162170 0.171631 0.171631 0.171631 0.181244 0.181244 0.181244 0.191376 0.191376 0.191376 0.201721 0.201721 0.201721 0.211884 0.211884 0.211884 0.222260 0.222260 0.222260 0.232513 0.232513 0.232513 0.242371 0.242371 0.242371 0.252258 0.252258 0.252258 0.261993 0.261993 0.261993 0.271301 0.271301 0.271301 0.280670 0.280670 0.280670 0.289612 0.289612 0.289612 0.298584 0.298584 0.298584 0.307434 0.307434 0.307434 0.072388 0.072388 0.072388 0.076965 0.076965 0.076965 0.081604 0.081604 0.081604 0.086609 0.086609 0.086609 0.091705 0.091705 0.091705 0.097229 0.097229 0.097229 0.102997 0.102997 0.102997 0.108948 0.108948 0.108948 0.115387 0.115387 0.115387 0.122162 0.122162 0.122162 0.129120 0.129120 0.129120 0.136688 0.136688 0.136688 0.144684 0.144684 0.144684 0.152954 0.152954 0.152954 0.161926 0.161926 0.161926 0.171173 0.171173 0.171173 0.181000 0.181000 0.181000 0.191132 0.191132 0.191132 0.201233 0.201233 0.201233 0.211639 0.211639 0.211639 0.222015 0.222015 0.222015 0.232025 0.232025 0.232025 0.242126 0.242126 0.242126 0.252014 0.252014 0.252014 0.261505 0.261505 0.261505 0.271057 0.271057 0.271057 0.280426 0.280426 0.280426 0.289368 0.289368 0.289368 0.298370 0.298370 0.298370 0.306976 0.306976 0.306976 0.315613 0.315613 0.315613 0.324066 0.324066 0.324066 0.081482 0.081482 0.081482 0.086487 0.086487 0.086487 0.091583 0.091583 0.091583 0.097076 0.097076 0.097076 0.102692 0.102692 0.102692 0.108795 0.108795 0.108795 0.115204 0.115204 0.115204 0.121796 0.121796 0.121796 0.128937 0.128937 0.128937 0.136475 0.136475 0.136475 0.144257 0.144257 0.144257 0.152740 0.152740 0.152740 0.161713 0.161713 0.161713 0.170929 0.170929 0.170929 0.180725 0.180725 0.180725 0.190643 0.190643 0.190643 0.200958 0.200958 0.200958 0.211365 0.211365 0.211365 0.221527 0.221527 0.221527 0.231750 0.231750 0.231750 0.241882 0.241882 0.241882 0.251526 0.251526 0.251526 0.261261 0.261261 0.261261 0.270813 0.270813 0.270813 0.279968 0.279968 0.279968 0.289124 0.289124 0.289124 0.297943 0.297943 0.297943 0.306763 0.306763 0.306763 0.315399 0.315399 0.315399 0.323639 0.323639 0.323639 0.331940 0.331940 0.331940 0.340088 0.340088 0.340088 0.091431 0.091431 0.091431 0.096802 0.096802 0.096802 0.102570 0.102570 0.102570 0.108612 0.108612 0.108612 0.114868 0.114868 0.114868 0.121643 0.121643 0.121643 0.128784 0.128784 0.128784 0.136108 0.136108 0.136108 0.144073 0.144073 0.144073 0.152557 0.152557 0.152557 0.161255 0.161255 0.161255 0.170685 0.170685 0.170685 0.180237 0.180237 0.180237 0.190399 0.190399 0.190399 0.200714 0.200714 0.200714 0.210846 0.210846 0.210846 0.221252 0.221252 0.221252 0.231476 0.231476 0.231476 0.241364 0.241364 0.241364 0.251282 0.251282 0.251282 0.261047 0.261047 0.261047 0.270355 0.270355 0.270355 0.279724 0.279724 0.279724 0.288910 0.288910 0.288910 0.297699 0.297699 0.297699 0.306519 0.306519 0.306519 0.314972 0.314972 0.314972 0.323425 0.323425 0.323425 0.331757 0.331757 0.331757 0.339691 0.339691 0.339691 0.347656 0.347656 0.347656 0.355469 0.355469 0.355469 0.102417 0.102417 0.102417 0.108307 0.108307 0.108307 0.114716 0.114716 0.114716 0.121460 0.121460 0.121460 0.128387 0.128387 0.128387 0.135895 0.135895 0.135895 0.143860 0.143860 0.143860 0.152100 0.152100 0.152100 0.161011 0.161011 0.161011 0.170441 0.170441 0.170441 0.179993 0.179993 0.179993 0.190094 0.190094 0.190094 0.200165 0.200165 0.200165 0.210602 0.210602 0.210602 0.220978 0.220978 0.220978 0.231018 0.231018 0.231018 0.241119 0.241119 0.241119 0.251038 0.251038 0.251038 0.260559 0.260559 0.260559 0.270142 0.270142 0.270142 0.279510 0.279510 0.279510 0.288483 0.288483 0.288483 0.297485 0.297485 0.297485 0.306122 0.306122 0.306122 0.314728 0.314728 0.314728 0.323242 0.323242 0.323242 0.331329 0.331329 0.331329 0.339478 0.339478 0.339478 0.347443 0.347443 0.347443 0.355072 0.355072 0.355072 0.362762 0.362762 0.362762 0.370300 0.370300 0.370300 0.114532 0.114532 0.114532 0.121094 0.121094 0.121094 0.128204 0.128204 0.128204 0.135712 0.135712 0.135712 0.143463 0.143463 0.143463 0.151886 0.151886 0.151886 0.160767 0.160767 0.160767 0.169952 0.169952 0.169952 0.179749 0.179749 0.179749 0.189606 0.189606 0.189606 0.199921 0.199921 0.199921 0.210327 0.210327 0.210327 0.220459 0.220459 0.220459 0.230774 0.230774 0.230774 0.240875 0.240875 0.240875 0.250549 0.250549 0.250549 0.260315 0.260315 0.260315 0.269867 0.269867 0.269867 0.279053 0.279053 0.279053 0.288239 0.288239 0.288239 0.297272 0.297272 0.297272 0.305878 0.305878 0.305878 0.314545 0.314545 0.314545 0.322815 0.322815 0.322815 0.331116 0.331116 0.331116 0.339264 0.339264 0.339264 0.347046 0.347046 0.347046 0.354889 0.354889 0.354889 0.362579 0.362579 0.362579 0.369904 0.369904 0.369904 0.377350 0.377350 0.377350 0.384644 0.384644 0.384644 0.128021 0.128021 0.128021 0.135315 0.135315 0.135315 0.143250 0.143250 0.143250 0.151642 0.151642 0.151642 0.160339 0.160339 0.160339 0.169708 0.169708 0.169708 0.179504 0.179504 0.179504 0.189301 0.189301 0.189301 0.199677 0.199677 0.199677 0.209808 0.209808 0.209808 0.220215 0.220215 0.220215 0.230530 0.230530 0.230530 0.240356 0.240356 0.240356 0.250305 0.250305 0.250305 0.260040 0.260040 0.260040 0.269379 0.269379 0.269379 0.278809 0.278809 0.278809 0.288025 0.288025 0.288025 0.296783 0.296783 0.296783 0.305664 0.305664 0.305664 0.314117 0.314117 0.314117 0.322601 0.322601 0.322601 0.330902 0.330902 0.330902 0.338837 0.338837 0.338837 0.346863 0.346863 0.346863 0.354675 0.354675 0.354675 0.362183 0.362183 0.362183 0.369751 0.369751 0.369751 0.377136 0.377136 0.377136 0.384277 0.384277 0.384277 0.391449 0.391449 0.391449 0.398407 0.398407 0.398407 0.143066 0.143066 0.143066 0.151215 0.151215 0.151215 0.160095 0.160095 0.160095 0.169464 0.169464 0.169464 0.179016 0.179016 0.179016 0.189056 0.189056 0.189056 0.199158 0.199158 0.199158 0.209564 0.209564 0.209564 0.219940 0.219940 0.219940 0.230011 0.230011 0.230011 0.240112 0.240112 0.240112 0.250031 0.250031 0.250031 0.259583 0.259583 0.259583 0.269135 0.269135 0.269135 0.278564 0.278564 0.278564 0.287567 0.287567 0.287567 0.296600 0.296600 0.296600 0.305450 0.305450 0.305450 0.313904 0.313904 0.313904 0.322388 0.322388 0.322388 0.330505 0.330505 0.330505 0.338684 0.338684 0.338684 0.346649 0.346649 0.346649 0.354279 0.354279 0.354279 0.362000 0.362000 0.362000 0.369568 0.369568 0.369568 0.376770 0.376770 0.376770 0.384094 0.384094 0.384094 0.391296 0.391296 0.391296 0.398224 0.398224 0.398224 0.405243 0.405243 0.405243 0.412018 0.412018 0.412018 0.159882 0.159882 0.159882 0.169006 0.169006 0.169006 0.178772 0.178772 0.178772 0.188812 0.188812 0.188812 0.198914 0.198914 0.198914 0.209290 0.209290 0.209290 0.219452 0.219452 0.219452 0.229736 0.229736 0.229736 0.239868 0.239868 0.239868 0.249542 0.249542 0.249542 0.259338 0.259338 0.259338 0.268921 0.268921 0.268921 0.278107 0.278107 0.278107 0.287323 0.287323 0.287323 0.296387 0.296387 0.296387 0.304993 0.304993 0.304993 0.313690 0.313690 0.313690 0.321960 0.321960 0.321960 0.330322 0.330322 0.330322 0.338470 0.338470 0.338470 0.346252 0.346252 0.346252 0.354095 0.354095 0.354095 0.361816 0.361816 0.361816 0.369171 0.369171 0.369171 0.376587 0.376587 0.376587 0.383911 0.383911 0.383911 0.390961 0.390961 0.390961 0.398010 0.398010 0.398010 0.404907 0.404907 0.404907 0.411804 0.411804 0.411804 0.418732 0.418732 0.418732 0.425385 0.425385 0.425385 0.178528 0.178528 0.178528 0.188324 0.188324 0.188324 0.198639 0.198639 0.198639 0.209045 0.209045 0.209045 0.219177 0.219177 0.219177 0.229462 0.229462 0.229462 0.239349 0.239349 0.239349 0.249329 0.249329 0.249329 0.259094 0.259094 0.259094 0.268463 0.268463 0.268463 0.277863 0.277863 0.277863 0.287109 0.287109 0.287109 0.295898 0.295898 0.295898 0.304810 0.304810 0.304810 0.313263 0.313263 0.313263 0.321747 0.321747 0.321747 0.330109 0.330109 0.330109 0.338043 0.338043 0.338043 0.346069 0.346069 0.346069 0.353912 0.353912 0.353912 0.361420 0.361420 0.361420 0.368988 0.368988 0.368988 0.376434 0.376434 0.376434 0.383545 0.383545 0.383545 0.390747 0.390747 0.390747 0.397858 0.397858 0.397858 0.404724 0.404724 0.404724 0.411652 0.411652 0.411652 0.418365 0.418365 0.418365 0.425171 0.425171 0.425171 0.431976 0.431976 0.431976 0.438568 0.438568 0.438568 0.198364 0.198364 0.198364 0.208527 0.208527 0.208527 0.218933 0.218933 0.218933 0.228973 0.228973 0.228973 0.239136 0.239136 0.239136 0.249084 0.249084 0.249084 0.258606 0.258606 0.258606 0.268219 0.268219 0.268219 0.277618 0.277618 0.277618 0.286652 0.286652 0.286652 0.295715 0.295715 0.295715 0.304565 0.304565 0.304565 0.313049 0.313049 0.313049 0.321564 0.321564 0.321564 0.329712 0.329712 0.329712 0.337860 0.337860 0.337860 0.345886 0.345886 0.345886 0.353516 0.353516 0.353516 0.361267 0.361267 0.361267 0.368805 0.368805 0.368805 0.376068 0.376068 0.376068 0.383362 0.383362 0.383362 0.390594 0.390594 0.390594 0.397522 0.397522 0.397522 0.404510 0.404510 0.404510 0.411316 0.411316 0.411316 0.418182 0.418182 0.418182 0.425018 0.425018 0.425018 0.431641 0.431641 0.431641 0.438385 0.438385 0.438385 0.445160 0.445160 0.445160 0.451752 0.451752 0.451752 0.218628 0.218628 0.218628 0.228699 0.228699 0.228699 0.238892 0.238892 0.238892 0.248596 0.248596 0.248596 0.258362 0.258362 0.258362 0.267975 0.267975 0.267975 0.277161 0.277161 0.277161 0.286407 0.286407 0.286407 0.295471 0.295471 0.295471 0.304138 0.304138 0.304138 0.312836 0.312836 0.312836 0.321320 0.321320 0.321320 0.329468 0.329468 0.329468 0.337677 0.337677 0.337677 0.345459 0.345459 0.345459 0.353363 0.353363 0.353363 0.361053 0.361053 0.361053 0.368408 0.368408 0.368408 0.375854 0.375854 0.375854 0.383179 0.383179 0.383179 0.390228 0.390228 0.390228 0.397339 0.397339 0.397339 0.404358 0.404358 0.404358 0.411133 0.411133 0.411133 0.417999 0.417999 0.417999 0.424683 0.424683 0.424683 0.431488 0.431488 0.431488 0.438263 0.438263 0.438263 0.444824 0.444824 0.444824 0.451569 0.451569 0.451569 0.458313 0.458313 0.458313 0.464935 0.464935 0.464935 0.238373 0.238373 0.238373 0.248352 0.248352 0.248352 0.258118 0.258118 0.258118 0.267517 0.267517 0.267517 0.276917 0.276917 0.276917 0.286194 0.286194 0.286194 0.295013 0.295013 0.295013 0.303925 0.303925 0.303925 0.312622 0.312622 0.312622 0.320923 0.320923 0.320923 0.329285 0.329285 0.329285 0.337250 0.337250 0.337250 0.345306 0.345306 0.345306 0.353149 0.353149 0.353149 0.360657 0.360657 0.360657 0.368225 0.368225 0.368225 0.375702 0.375702 0.375702 0.382843 0.382843 0.382843 0.390045 0.390045 0.390045 0.397186 0.397186 0.397186 0.403992 0.403992 0.403992 0.410980 0.410980 0.410980 0.417664 0.417664 0.417664 0.424500 0.424500 0.424500 0.431305 0.431305 0.431305 0.437897 0.437897 0.437897 0.444641 0.444641 0.444641 0.451416 0.451416 0.451416 0.457977 0.457977 0.457977 0.464752 0.464752 0.464752 0.471588 0.471588 0.471588 0.478241 0.478241 0.478241 0.257629 0.257629 0.257629 0.267273 0.267273 0.267273 0.276703 0.276703 0.276703 0.285736 0.285736 0.285736 0.294830 0.294830 0.294830 0.303680 0.303680 0.303680 0.312195 0.312195 0.312195 0.320709 0.320709 0.320709 0.329071 0.329071 0.329071 0.337036 0.337036 0.337036 0.345062 0.345062 0.345062 0.352722 0.352722 0.352722 0.360474 0.360474 0.360474 0.368042 0.368042 0.368042 0.375336 0.375336 0.375336 0.382660 0.382660 0.382660 0.389862 0.389862 0.389862 0.396820 0.396820 0.396820 0.403839 0.403839 0.403839 0.410797 0.410797 0.410797 0.417480 0.417480 0.417480 0.424347 0.424347 0.424347 0.430969 0.430969 0.430969 0.437744 0.437744 0.437744 0.444489 0.444489 0.444489 0.451080 0.451080 0.451080 0.457825 0.457825 0.457825 0.464600 0.464600 0.464600 0.471222 0.471222 0.471222 0.478088 0.478088 0.478088 0.484985 0.484985 0.484985 0.491760 0.491760 0.491760 0.276245 0.276245 0.276245 0.285492 0.285492 0.285492 0.294586 0.294586 0.294586 0.303253 0.303253 0.303253 0.311981 0.311981 0.311981 0.320496 0.320496 0.320496 0.328674 0.328674 0.328674 0.336853 0.336853 0.336853 0.344879 0.344879 0.344879 0.352539 0.352539 0.352539 0.360260 0.360260 0.360260 0.367676 0.367676 0.367676 0.375122 0.375122 0.375122 0.382446 0.382446 0.382446 0.389526 0.389526 0.389526 0.396637 0.396637 0.396637 0.403656 0.403656 0.403656 0.410461 0.410461 0.410461 0.417328 0.417328 0.417328 0.424164 0.424164 0.424164 0.430817 0.430817 0.430817 0.437592 0.437592 0.437592 0.444153 0.444153 0.444153 0.450897 0.450897 0.450897 0.457642 0.457642 0.457642 0.464233 0.464233 0.464233 0.471069 0.471069 0.471069 0.477936 0.477936 0.477936 0.484650 0.484650 0.484650 0.491608 0.491608 0.491608 0.498627 0.498627 0.498627 0.505615 0.505615 0.505615 0.294128 0.294128 0.294128 0.303009 0.303009 0.303009 0.311737 0.311737 0.311737 0.320099 0.320099 0.320099 0.328461 0.328461 0.328461 0.336639 0.336639 0.336639 0.344482 0.344482 0.344482 0.352325 0.352325 0.352325 0.359894 0.359894 0.359894 0.367462 0.367462 0.367462 0.374969 0.374969 0.374969 0.382080 0.382080 0.382080 0.389313 0.389313 0.389313 0.396454 0.396454 0.396454 0.403320 0.403320 0.403320 0.410278 0.410278 0.410278 0.417175 0.417175 0.417175 0.423828 0.423828 0.423828 0.430603 0.430603 0.430603 0.437378 0.437378 0.437378 0.443970 0.443970 0.443970 0.450714 0.450714 0.450714 0.457306 0.457306 0.457306 0.464081 0.464081 0.464081 0.470886 0.470886 0.470886 0.477570 0.477570 0.477570 0.484467 0.484467 0.484467 0.491425 0.491425 0.491425 0.498291 0.498291 0.498291 0.505432 0.505432 0.505432 0.512634 0.512634 0.512634 0.519775 0.519775 0.519775 0.311310 0.311310 0.311310 0.319855 0.319855 0.319855 0.328247 0.328247 0.328247 0.336243 0.336243 0.336243 0.344269 0.344269 0.344269 0.352173 0.352173 0.352173 0.359711 0.359711 0.359711 0.367310 0.367310 0.367310 0.374573 0.374573 0.374573 0.381927 0.381927 0.381927 0.389160 0.389160 0.389160 0.396088 0.396088 0.396088 0.403168 0.403168 0.403168 0.410095 0.410095 0.410095 0.416840 0.416840 0.416840 0.423676 0.423676 0.423676 0.430450 0.430450 0.430450 0.437073 0.437073 0.437073 0.443817 0.443817 0.443817 0.450378 0.450378 0.450378 0.457123 0.457123 0.457123 0.463928 0.463928 0.463928 0.470551 0.470551 0.470551 0.477386 0.477386 0.477386 0.484283 0.484283 0.484283 0.491089 0.491089 0.491089 0.498077 0.498077 0.498077 0.505219 0.505219 0.505219 0.512268 0.512268 0.512268 0.519592 0.519592 0.519592 0.526825 0.526825 0.526825 0.534363 0.534363 0.534363 0.327789 0.327789 0.327789 0.336029 0.336029 0.336029 0.344086 0.344086 0.344086 0.351776 0.351776 0.351776 0.359497 0.359497 0.359497 0.367126 0.367126 0.367126 0.374390 0.374390 0.374390 0.381744 0.381744 0.381744 0.388794 0.388794 0.388794 0.395935 0.395935 0.395935 0.402954 0.402954 0.402954 0.409760 0.409760 0.409760 0.416656 0.416656 0.416656 0.423462 0.423462 0.423462 0.430115 0.430115 0.430115 0.436890 0.436890 0.436890 0.443665 0.443665 0.443665 0.450226 0.450226 0.450226 0.456970 0.456970 0.456970 0.463562 0.463562 0.463562 0.470367 0.470367 0.470367 0.477203 0.477203 0.477203 0.483948 0.483948 0.483948 0.490906 0.490906 0.490906 0.497955 0.497955 0.497955 0.504883 0.504883 0.504883 0.512085 0.512085 0.512085 0.519379 0.519379 0.519379 0.526642 0.526642 0.526642 0.534180 0.534180 0.534180 0.541656 0.541656 0.541656 0.549408 0.549408 0.549408 0.343689 0.343689 0.343689 0.351562 0.351562 0.351562 0.359314 0.359314 0.359314 0.366730 0.366730 0.366730 0.374207 0.374207 0.374207 0.381378 0.381378 0.381378 0.388611 0.388611 0.388611 0.395752 0.395752 0.395752 0.402618 0.402618 0.402618 0.409576 0.409576 0.409576 0.416473 0.416473 0.416473 0.423126 0.423126 0.423126 0.429932 0.429932 0.429932 0.436707 0.436707 0.436707 0.443298 0.443298 0.443298 0.450073 0.450073 0.450073 0.456635 0.456635 0.456635 0.463409 0.463409 0.463409 0.470184 0.470184 0.470184 0.476868 0.476868 0.476868 0.483734 0.483734 0.483734 0.490692 0.490692 0.490692 0.497589 0.497589 0.497589 0.504700 0.504700 0.504700 0.511902 0.511902 0.511902 0.519043 0.519043 0.519043 0.526428 0.526428 0.526428 0.533783 0.533783 0.533783 0.541443 0.541443 0.541443 0.549225 0.549225 0.549225 0.556946 0.556946 0.556946 0.564972 0.564972 0.564972 0.358948 0.358948 0.358948 0.366547 0.366547 0.366547 0.373993 0.373993 0.373993 0.381195 0.381195 0.381195 0.388428 0.388428 0.388428 0.395416 0.395416 0.395416 0.402435 0.402435 0.402435 0.409424 0.409424 0.409424 0.416138 0.416138 0.416138 0.422974 0.422974 0.422974 0.429779 0.429779 0.429779 0.436371 0.436371 0.436371 0.443146 0.443146 0.443146 0.449890 0.449890 0.449890 0.456451 0.456451 0.456451 0.463226 0.463226 0.463226 0.469879 0.469879 0.469879 0.476685 0.476685 0.476685 0.483612 0.483612 0.483612 0.490387 0.490387 0.490387 0.497406 0.497406 0.497406 0.504517 0.504517 0.504517 0.511536 0.511536 0.511536 0.518860 0.518860 0.518860 0.526245 0.526245 0.526245 0.533600 0.533600 0.533600 0.541260 0.541260 0.541260 0.548828 0.548828 0.548828 0.556732 0.556732 0.556732 0.564758 0.564758 0.564758 0.572754 0.572754 0.572754 0.581024 0.581024 0.581024 0.373657 0.373657 0.373657 0.381012 0.381012 0.381012 0.388062 0.388062 0.388062 0.395203 0.395203 0.395203 0.402252 0.402252 0.402252 0.409058 0.409058 0.409058 0.415955 0.415955 0.415955 0.422791 0.422791 0.422791 0.429443 0.429443 0.429443 0.436218 0.436218 0.436218 0.442963 0.442963 0.442963 0.449554 0.449554 0.449554 0.456299 0.456299 0.456299 0.462921 0.462921 0.462921 0.469696 0.469696 0.469696 0.476532 0.476532 0.476532 0.483246 0.483246 0.483246 0.490173 0.490173 0.490173 0.497223 0.497223 0.497223 0.504181 0.504181 0.504181 0.511353 0.511353 0.511353 0.518677 0.518677 0.518677 0.525879 0.525879 0.525879 0.533417 0.533417 0.533417 0.540863 0.540863 0.540863 0.548645 0.548645 0.548645 0.556519 0.556519 0.556519 0.564362 0.564362 0.564362 0.572540 0.572540 0.572540 0.580841 0.580841 0.580841 0.589081 0.589081 0.589081 0.597595 0.597595 0.597595 0.387878 0.387878 0.387878 0.395020 0.395020 0.395020 0.401917 0.401917 0.401917 0.408905 0.408905 0.408905 0.415802 0.415802 0.415802 0.422455 0.422455 0.422455 0.429260 0.429260 0.429260 0.436035 0.436035 0.436035 0.442627 0.442627 0.442627 0.449371 0.449371 0.449371 0.456146 0.456146 0.456146 0.462708 0.462708 0.462708 0.469543 0.469543 0.469543 0.476196 0.476196 0.476196 0.483063 0.483063 0.483063 0.490051 0.490051 0.490051 0.496887 0.496887 0.496887 0.503967 0.503967 0.503967 0.511200 0.511200 0.511200 0.518280 0.518280 0.518280 0.525696 0.525696 0.525696 0.533234 0.533234 0.533234 0.540680 0.540680 0.540680 0.548431 0.548431 0.548431 0.556152 0.556152 0.556152 0.564178 0.564178 0.564178 0.572327 0.572327 0.572327 0.580414 0.580414 0.580414 0.588837 0.588837 0.588837 0.597382 0.597382 0.597382 0.605774 0.605774 0.605774 0.614441 0.614441 0.614441 0.401764 0.401764 0.401764 0.408722 0.408722 0.408722 0.415436 0.415436 0.415436 0.422272 0.422272 0.422272 0.429108 0.429108 0.429108 0.435699 0.435699 0.435699 0.442444 0.442444 0.442444 0.449188 0.449188 0.449188 0.455780 0.455780 0.455780 0.462555 0.462555 0.462555 0.469177 0.469177 0.469177 0.476013 0.476013 0.476013 0.482910 0.482910 0.482910 0.489685 0.489685 0.489685 0.496704 0.496704 0.496704 0.503784 0.503784 0.503784 0.510803 0.510803 0.510803 0.518127 0.518127 0.518127 0.525513 0.525513 0.525513 0.532867 0.532867 0.532867 0.540466 0.540466 0.540466 0.548248 0.548248 0.548248 0.555939 0.555939 0.555939 0.563995 0.563995 0.563995 0.571899 0.571899 0.571899 0.580231 0.580231 0.580231 0.588623 0.588623 0.588623 0.596954 0.596954 0.596954 0.605560 0.605560 0.605560 0.614258 0.614258 0.614258 0.622742 0.622742 0.622742 0.631500 0.631500 0.631500 0.415283 0.415283 0.415283 0.422119 0.422119 0.422119 0.428772 0.428772 0.428772 0.435516 0.435516 0.435516 0.442291 0.442291 0.442291 0.448883 0.448883 0.448883 0.455627 0.455627 0.455627 0.462402 0.462402 0.462402 0.469025 0.469025 0.469025 0.475861 0.475861 0.475861 0.482544 0.482544 0.482544 0.489502 0.489502 0.489502 0.496521 0.496521 0.496521 0.503418 0.503418 0.503418 0.510651 0.510651 0.510651 0.517944 0.517944 0.517944 0.525146 0.525146 0.525146 0.532654 0.532654 0.532654 0.540283 0.540283 0.540283 0.547821 0.547821 0.547821 0.555725 0.555725 0.555725 0.563538 0.563538 0.563538 0.571686 0.571686 0.571686 0.580017 0.580017 0.580017 0.588196 0.588196 0.588196 0.596741 0.596741 0.596741 0.605347 0.605347 0.605347 0.613770 0.613770 0.613770 0.622528 0.622528 0.622528 0.631256 0.631256 0.631256 0.639801 0.639801 0.639801 0.648529 0.648529 0.648529 0.428589 0.428589 0.428589 0.435364 0.435364 0.435364 0.441956 0.441956 0.441956 0.448700 0.448700 0.448700 0.455444 0.455444 0.455444 0.462036 0.462036 0.462036 0.468842 0.468842 0.468842 0.475494 0.475494 0.475494 0.482391 0.482391 0.482391 0.489349 0.489349 0.489349 0.496155 0.496155 0.496155 0.503265 0.503265 0.503265 0.510437 0.510437 0.510437 0.517548 0.517548 0.517548 0.524963 0.524963 0.524963 0.532471 0.532471 0.532471 0.539886 0.539886 0.539886 0.547668 0.547668 0.547668 0.555542 0.555542 0.555542 0.563354 0.563354 0.563354 0.571503 0.571503 0.571503 0.579590 0.579590 0.579590 0.588013 0.588013 0.588013 0.596527 0.596527 0.596527 0.604919 0.604919 0.604919 0.613586 0.613586 0.613586 0.622284 0.622284 0.622284 0.630829 0.630829 0.630829 0.639557 0.639557 0.639557 0.648315 0.648315 0.648315 0.656830 0.656830 0.656830 0.665497 0.665497 0.665497 0.441772 0.441772 0.441772 0.448517 0.448517 0.448517 0.455109 0.455109 0.455109 0.461884 0.461884 0.461884 0.468658 0.468658 0.468658 0.475342 0.475342 0.475342 0.482208 0.482208 0.482208 0.488983 0.488983 0.488983 0.496002 0.496002 0.496002 0.503082 0.503082 0.503082 0.510101 0.510101 0.510101 0.517395 0.517395 0.517395 0.524780 0.524780 0.524780 0.532104 0.532104 0.532104 0.539734 0.539734 0.539734 0.547455 0.547455 0.547455 0.555115 0.555115 0.555115 0.563141 0.563141 0.563141 0.571106 0.571106 0.571106 0.579376 0.579376 0.579376 0.587799 0.587799 0.587799 0.596100 0.596100 0.596100 0.604675 0.604675 0.604675 0.613342 0.613342 0.613342 0.621857 0.621857 0.621857 0.630615 0.630615 0.630615 0.639374 0.639374 0.639374 0.647888 0.647888 0.647888 0.656616 0.656616 0.656616 0.665039 0.665039 0.665039 0.673706 0.673706 0.673706 0.682251 0.682251 0.682251 0.454956 0.454956 0.454956 0.461700 0.461700 0.461700 0.468323 0.468323 0.468323 0.475159 0.475159 0.475159 0.481873 0.481873 0.481873 0.488831 0.488831 0.488831 0.495819 0.495819 0.495819 0.502747 0.502747 0.502747 0.509888 0.509888 0.509888 0.517212 0.517212 0.517212 0.524414 0.524414 0.524414 0.531891 0.531891 0.531891 0.539520 0.539520 0.539520 0.547058 0.547058 0.547058 0.554932 0.554932 0.554932 0.562775 0.562775 0.562775 0.570892 0.570892 0.570892 0.579193 0.579193 0.579193 0.587372 0.587372 0.587372 0.595856 0.595856 0.595856 0.604462 0.604462 0.604462 0.612946 0.612946 0.612946 0.621643 0.621643 0.621643 0.630371 0.630371 0.630371 0.638916 0.638916 0.638916 0.647675 0.647675 0.647675 0.656403 0.656403 0.656403 0.664856 0.664856 0.664856 0.673462 0.673462 0.673462 0.681793 0.681793 0.681793 0.690277 0.690277 0.690277 0.698608 0.698608 0.698608 0.468140 0.468140 0.468140 0.474976 0.474976 0.474976 0.481689 0.481689 0.481689 0.488617 0.488617 0.488617 0.495483 0.495483 0.495483 0.502533 0.502533 0.502533 0.509735 0.509735 0.509735 0.516815 0.516815 0.516815 0.524200 0.524200 0.524200 0.531708 0.531708 0.531708 0.539093 0.539093 0.539093 0.546875 0.546875 0.546875 0.554749 0.554749 0.554749 0.562561 0.562561 0.562561 0.570679 0.570679 0.570679 0.578766 0.578766 0.578766 0.587128 0.587128 0.587128 0.595673 0.595673 0.595673 0.604034 0.604034 0.604034 0.612701 0.612701 0.612701 0.621399 0.621399 0.621399 0.629944 0.629944 0.629944 0.638702 0.638702 0.638702 0.647430 0.647430 0.647430 0.655914 0.655914 0.655914 0.664612 0.664612 0.664612 0.673065 0.673065 0.673065 0.681610 0.681610 0.681610 0.690063 0.690063 0.690063 0.698212 0.698212 0.698212 0.706451 0.706451 0.706451 0.714569 0.714569 0.714569 0.481506 0.481506 0.481506 0.488281 0.488281 0.488281 0.495270 0.495270 0.495270 0.502380 0.502380 0.502380 0.509369 0.509369 0.509369 0.516663 0.516663 0.516663 0.524017 0.524017 0.524017 0.531342 0.531342 0.531342 0.538940 0.538940 0.538940 0.546661 0.546661 0.546661 0.554352 0.554352 0.554352 0.562347 0.562347 0.562347 0.570282 0.570282 0.570282 0.578552 0.578552 0.578552 0.586945 0.586945 0.586945 0.595215 0.595215 0.595215 0.603821 0.603821 0.603821 0.612488 0.612488 0.612488 0.621002 0.621002 0.621002 0.629730 0.629730 0.629730 0.638489 0.638489 0.638489 0.647003 0.647003 0.647003 0.655731 0.655731 0.655731 0.664459 0.664459 0.664459 0.672821 0.672821 0.672821 0.681366 0.681366 0.681366 0.689667 0.689667 0.689667 0.697998 0.697998 0.697998 0.706238 0.706238 0.706238 0.714142 0.714142 0.714142 0.722107 0.722107 0.722107 0.729919 0.729919 0.729919 0.495087 0.495087 0.495087 0.502014 0.502014 0.502014 0.509186 0.509186 0.509186 0.516449 0.516449 0.516449 0.523651 0.523651 0.523651 0.531158 0.531158 0.531158 0.538727 0.538727 0.538727 0.546295 0.546295 0.546295 0.554169 0.554169 0.554169 0.562134 0.562134 0.562134 0.570068 0.570068 0.570068 0.578308 0.578308 0.578308 0.586517 0.586517 0.586517 0.595032 0.595032 0.595032 0.603607 0.603607 0.603607 0.612061 0.612061 0.612061 0.620758 0.620758 0.620758 0.629517 0.629517 0.629517 0.638031 0.638031 0.638031 0.646790 0.646790 0.646790 0.655518 0.655518 0.655518 0.664001 0.664001 0.664001 0.672607 0.672607 0.672607 0.680969 0.680969 0.680969 0.689423 0.689423 0.689423 0.697784 0.697784 0.697784 0.705841 0.705841 0.705841 0.713959 0.713959 0.713959 0.721924 0.721924 0.721924 0.729553 0.729553 0.729553 0.737213 0.737213 0.737213 0.744690 0.744690 0.744690 0.046448 0.046448 0.046448 0.051758 0.051758 0.051758 0.057892 0.057892 0.057892 0.061920 0.061920 0.061920 0.065918 0.065918 0.065918 0.070160 0.070160 0.070160 0.074432 0.074432 0.074432 0.079041 0.079041 0.079041 0.083954 0.083954 0.083954 0.088928 0.088928 0.088928 0.094299 0.094299 0.094299 0.099915 0.099915 0.099915 0.105713 0.105713 0.105713 0.111938 0.111938 0.111938 0.118378 0.118378 0.118378 0.125305 0.125305 0.125305 0.132660 0.132660 0.132660 0.140228 0.140228 0.140228 0.148438 0.148438 0.148438 0.157166 0.157166 0.157166 0.166138 0.166138 0.166138 0.175781 0.175781 0.175781 0.185791 0.185791 0.185791 0.195801 0.195801 0.195801 0.206177 0.206177 0.206177 0.216583 0.216583 0.216583 0.226685 0.226685 0.226685 0.236847 0.236847 0.236847 0.246582 0.246582 0.246582 0.256409 0.256409 0.256409 0.266052 0.266052 0.266052 0.275299 0.275299 0.275299 0.057709 0.057709 0.057709 0.061737 0.061737 0.061737 0.065796 0.065796 0.065796 0.069916 0.069916 0.069916 0.074310 0.074310 0.074310 0.078949 0.078949 0.078949 0.083710 0.083710 0.083710 0.088806 0.088806 0.088806 0.094147 0.094147 0.094147 0.099640 0.099640 0.099640 0.105560 0.105560 0.105560 0.111786 0.111786 0.111786 0.118225 0.118225 0.118225 0.125153 0.125153 0.125153 0.132294 0.132294 0.132294 0.140045 0.140045 0.140045 0.148285 0.148285 0.148285 0.156708 0.156708 0.156708 0.165894 0.165894 0.165894 0.175537 0.175537 0.175537 0.185272 0.185272 0.185272 0.195526 0.195526 0.195526 0.205902 0.205902 0.205902 0.216064 0.216064 0.216064 0.226410 0.226410 0.226410 0.236328 0.236328 0.236328 0.246338 0.246338 0.246338 0.256165 0.256165 0.256165 0.265594 0.265594 0.265594 0.275085 0.275085 0.275085 0.284332 0.284332 0.284332 0.293213 0.293213 0.293213 0.065704 0.065704 0.065704 0.069824 0.069824 0.069824 0.074219 0.074219 0.074219 0.078705 0.078705 0.078705 0.083588 0.083588 0.083588 0.088684 0.088684 0.088684 0.093903 0.093903 0.093903 0.099518 0.099518 0.099518 0.105377 0.105377 0.105377 0.111481 0.111481 0.111481 0.118042 0.118042 0.118042 0.124969 0.124969 0.124969 0.132111 0.132111 0.132111 0.139832 0.139832 0.139832 0.147827 0.147827 0.147827 0.156494 0.156494 0.156494 0.165680 0.165680 0.165680 0.175049 0.175049 0.175049 0.185028 0.185028 0.185028 0.195251 0.195251 0.195251 0.205383 0.205383 0.205383 0.215790 0.215790 0.215790 0.226166 0.226166 0.226166 0.236053 0.236053 0.236053 0.246094 0.246094 0.246094 0.255707 0.255707 0.255707 0.265350 0.265350 0.265350 0.274841 0.274841 0.274841 0.283905 0.283905 0.283905 0.292999 0.292999 0.292999 0.301941 0.301941 0.301941 0.310455 0.310455 0.310455 0.073975 0.073975 0.073975 0.078613 0.078613 0.078613 0.083466 0.083466 0.083466 0.088379 0.088379 0.088379 0.093750 0.093750 0.093750 0.099365 0.099365 0.099365 0.105133 0.105133 0.105133 0.111328 0.111328 0.111328 0.117859 0.117859 0.117859 0.124634 0.124634 0.124634 0.131927 0.131927 0.131927 0.139435 0.139435 0.139435 0.147614 0.147614 0.147614 0.156281 0.156281 0.156281 0.165222 0.165222 0.165222 0.174805 0.174805 0.174805 0.184753 0.184753 0.184753 0.194763 0.194763 0.194763 0.205109 0.205109 0.205109 0.215546 0.215546 0.215546 0.225647 0.225647 0.225647 0.235840 0.235840 0.235840 0.245636 0.245636 0.245636 0.255463 0.255463 0.255463 0.265106 0.265106 0.265106 0.274323 0.274323 0.274323 0.283661 0.283661 0.283661 0.292786 0.292786 0.292786 0.301483 0.301483 0.301483 0.310242 0.310242 0.310242 0.318817 0.318817 0.318817 0.326996 0.326996 0.326996 0.083191 0.083191 0.083191 0.088257 0.088257 0.088257 0.093597 0.093597 0.093597 0.099060 0.099060 0.099060 0.104950 0.104950 0.104950 0.111145 0.111145 0.111145 0.117523 0.117523 0.117523 0.124420 0.124420 0.124420 0.131714 0.131714 0.131714 0.139221 0.139221 0.139221 0.147400 0.147400 0.147400 0.155792 0.155792 0.155792 0.164978 0.164978 0.164978 0.174591 0.174591 0.174591 0.184265 0.184265 0.184265 0.194489 0.194489 0.194489 0.204865 0.204865 0.204865 0.215027 0.215027 0.215027 0.225372 0.225372 0.225372 0.235596 0.235596 0.235596 0.245361 0.245361 0.245361 0.255219 0.255219 0.255219 0.264618 0.264618 0.264618 0.274109 0.274109 0.274109 0.283417 0.283417 0.283417 0.292328 0.292328 0.292328 0.301270 0.301270 0.301270 0.310028 0.310028 0.310028 0.318390 0.318390 0.318390 0.326782 0.326782 0.326782 0.335022 0.335022 0.335022 0.342865 0.342865 0.342865 0.093353 0.093353 0.093353 0.098907 0.098907 0.098907 0.104797 0.104797 0.104797 0.110870 0.110870 0.110870 0.117340 0.117340 0.117340 0.124268 0.124268 0.124268 0.131348 0.131348 0.131348 0.139038 0.139038 0.139038 0.146973 0.146973 0.146973 0.155609 0.155609 0.155609 0.164734 0.164734 0.164734 0.174072 0.174072 0.174072 0.184021 0.184021 0.184021 0.194244 0.194244 0.194244 0.204346 0.204346 0.204346 0.214752 0.214752 0.214752 0.225128 0.225128 0.225128 0.235077 0.235077 0.235077 0.245117 0.245117 0.245117 0.254974 0.254974 0.254974 0.264404 0.264404 0.264404 0.273895 0.273895 0.273895 0.282990 0.282990 0.282990 0.292114 0.292114 0.292114 0.301056 0.301056 0.301056 0.309601 0.309601 0.309601 0.318176 0.318176 0.318176 0.326599 0.326599 0.326599 0.334625 0.334625 0.334625 0.342682 0.342682 0.342682 0.350372 0.350372 0.350372 0.358154 0.358154 0.358154 0.104492 0.104492 0.104492 0.110687 0.110687 0.110687 0.117218 0.117218 0.117218 0.123901 0.123901 0.123901 0.131134 0.131134 0.131134 0.138824 0.138824 0.138824 0.146759 0.146759 0.146759 0.155396 0.155396 0.155396 0.164246 0.164246 0.164246 0.173828 0.173828 0.173828 0.183777 0.183777 0.183777 0.193695 0.193695 0.193695 0.204102 0.204102 0.204102 0.214508 0.214508 0.214508 0.224609 0.224609 0.224609 0.234833 0.234833 0.234833 0.244843 0.244843 0.244843 0.254456 0.254456 0.254456 0.264160 0.264160 0.264160 0.273407 0.273407 0.273407 0.282745 0.282745 0.282745 0.291870 0.291870 0.291870 0.300598 0.300598 0.300598 0.309357 0.309357 0.309357 0.317932 0.317932 0.317932 0.326172 0.326172 0.326172 0.334412 0.334412 0.334412 0.342468 0.342468 0.342468 0.350189 0.350189 0.350189 0.357971 0.357971 0.357971 0.365417 0.365417 0.365417 0.372894 0.372894 0.372894 0.116852 0.116852 0.116852 0.123718 0.123718 0.123718 0.130981 0.130981 0.130981 0.138458 0.138458 0.138458 0.146576 0.146576 0.146576 0.154907 0.154907 0.154907 0.164001 0.164001 0.164001 0.173584 0.173584 0.173584 0.183289 0.183289 0.183289 0.193451 0.193451 0.193451 0.203827 0.203827 0.203827 0.213989 0.213989 0.213989 0.224335 0.224335 0.224335 0.234558 0.234558 0.234558 0.244354 0.244354 0.244354 0.254211 0.254211 0.254211 0.263916 0.263916 0.263916 0.273193 0.273193 0.273193 0.282501 0.282501 0.282501 0.291412 0.291412 0.291412 0.300385 0.300385 0.300385 0.309143 0.309143 0.309143 0.317535 0.317535 0.317535 0.325958 0.325958 0.325958 0.334167 0.334167 0.334167 0.342072 0.342072 0.342072 0.349976 0.349976 0.349976 0.357788 0.357788 0.357788 0.365204 0.365204 0.365204 0.372711 0.372711 0.372711 0.379883 0.379883 0.379883 0.387177 0.387177 0.387177 0.130615 0.130615 0.130615 0.138245 0.138245 0.138245 0.146332 0.146332 0.146332 0.154694 0.154694 0.154694 0.163788 0.163788 0.163788 0.173096 0.173096 0.173096 0.182983 0.182983 0.182983 0.193207 0.193207 0.193207 0.203308 0.203308 0.203308 0.213745 0.213745 0.213745 0.224091 0.224091 0.224091 0.234070 0.234070 0.234070 0.244110 0.244110 0.244110 0.253967 0.253967 0.253967 0.263428 0.263428 0.263428 0.272949 0.272949 0.272949 0.282043 0.282043 0.282043 0.291199 0.291199 0.291199 0.300140 0.300140 0.300140 0.308716 0.308716 0.308716 0.317291 0.317291 0.317291 0.325745 0.325745 0.325745 0.333801 0.333801 0.333801 0.341858 0.341858 0.341858 0.349823 0.349823 0.349823 0.357391 0.357391 0.357391 0.365051 0.365051 0.365051 0.372314 0.372314 0.372314 0.379700 0.379700 0.379700 0.386993 0.386993 0.386993 0.393982 0.393982 0.393982 0.401031 0.401031 0.401031 0.145935 0.145935 0.145935 0.154510 0.154510 0.154510 0.163330 0.163330 0.163330 0.172852 0.172852 0.172852 0.182739 0.182739 0.182739 0.192657 0.192657 0.192657 0.203033 0.203033 0.203033 0.213470 0.213470 0.213470 0.223572 0.223572 0.223572 0.233826 0.233826 0.233826 0.243866 0.243866 0.243866 0.253479 0.253479 0.253479 0.263184 0.263184 0.263184 0.272491 0.272491 0.272491 0.281830 0.281830 0.281830 0.290985 0.290985 0.290985 0.299713 0.299713 0.299713 0.308502 0.308502 0.308502 0.317108 0.317108 0.317108 0.325317 0.325317 0.325317 0.333588 0.333588 0.333588 0.341675 0.341675 0.341675 0.349396 0.349396 0.349396 0.357208 0.357208 0.357208 0.364838 0.364838 0.364838 0.372192 0.372192 0.372192 0.379547 0.379547 0.379547 0.386597 0.386597 0.386597 0.393768 0.393768 0.393768 0.400848 0.400848 0.400848 0.407684 0.407684 0.407684 0.414612 0.414612 0.414612 0.163116 0.163116 0.163116 0.172638 0.172638 0.172638 0.182251 0.182251 0.182251 0.192413 0.192413 0.192413 0.202789 0.202789 0.202789 0.212952 0.212952 0.212952 0.223328 0.223328 0.223328 0.233551 0.233551 0.233551 0.243378 0.243378 0.243378 0.253265 0.253265 0.253265 0.262970 0.262970 0.262970 0.272247 0.272247 0.272247 0.281586 0.281586 0.281586 0.290527 0.290527 0.290527 0.299500 0.299500 0.299500 0.308289 0.308289 0.308289 0.316681 0.316681 0.316681 0.325104 0.325104 0.325104 0.333374 0.333374 0.333374 0.341278 0.341278 0.341278 0.349213 0.349213 0.349213 0.356995 0.356995 0.356995 0.364471 0.364471 0.364471 0.371979 0.371979 0.371979 0.379181 0.379181 0.379181 0.386444 0.386444 0.386444 0.393616 0.393616 0.393616 0.400482 0.400482 0.400482 0.407501 0.407501 0.407501 0.414429 0.414429 0.414429 0.421112 0.421112 0.421112 0.427887 0.427887 0.427887 0.182007 0.182007 0.182007 0.192169 0.192169 0.192169 0.202271 0.202271 0.202271 0.212646 0.212646 0.212646 0.223053 0.223053 0.223053 0.233032 0.233032 0.233032 0.243103 0.243103 0.243103 0.253021 0.253021 0.253021 0.262482 0.262482 0.262482 0.272003 0.272003 0.272003 0.281097 0.281097 0.281097 0.290283 0.290283 0.290283 0.299255 0.299255 0.299255 0.307861 0.307861 0.307861 0.316467 0.316467 0.316467 0.324890 0.324890 0.324890 0.332977 0.332977 0.332977 0.341064 0.341064 0.341064 0.349030 0.349030 0.349030 0.356598 0.356598 0.356598 0.364258 0.364258 0.364258 0.371796 0.371796 0.371796 0.378967 0.378967 0.378967 0.386261 0.386261 0.386261 0.393250 0.393250 0.393250 0.400360 0.400360 0.400360 0.407318 0.407318 0.407318 0.414062 0.414062 0.414062 0.420929 0.420929 0.420929 0.427734 0.427734 0.427734 0.434357 0.434357 0.434357 0.441101 0.441101 0.441101 0.202026 0.202026 0.202026 0.212402 0.212402 0.212402 0.222534 0.222534 0.222534 0.232788 0.232788 0.232788 0.242828 0.242828 0.242828 0.252502 0.252502 0.252502 0.262238 0.262238 0.262238 0.271759 0.271759 0.271759 0.280884 0.280884 0.280884 0.290039 0.290039 0.290039 0.298828 0.298828 0.298828 0.307617 0.307617 0.307617 0.316254 0.316254 0.316254 0.324493 0.324493 0.324493 0.332764 0.332764 0.332764 0.340881 0.340881 0.340881 0.348633 0.348633 0.348633 0.356445 0.356445 0.356445 0.364105 0.364105 0.364105 0.371399 0.371399 0.371399 0.378815 0.378815 0.378815 0.385925 0.385925 0.385925 0.393097 0.393097 0.393097 0.400146 0.400146 0.400146 0.406982 0.406982 0.406982 0.413879 0.413879 0.413879 0.420776 0.420776 0.420776 0.427399 0.427399 0.427399 0.434204 0.434204 0.434204 0.440948 0.440948 0.440948 0.447510 0.447510 0.447510 0.454254 0.454254 0.454254 0.222260 0.222260 0.222260 0.232513 0.232513 0.232513 0.242371 0.242371 0.242371 0.252258 0.252258 0.252258 0.261993 0.261993 0.261993 0.271301 0.271301 0.271301 0.280670 0.280670 0.280670 0.289612 0.289612 0.289612 0.298584 0.298584 0.298584 0.307434 0.307434 0.307434 0.315826 0.315826 0.315826 0.324280 0.324280 0.324280 0.332581 0.332581 0.332581 0.340485 0.340485 0.340485 0.348419 0.348419 0.348419 0.356232 0.356232 0.356232 0.363708 0.363708 0.363708 0.371246 0.371246 0.371246 0.378601 0.378601 0.378601 0.385742 0.385742 0.385742 0.392883 0.392883 0.392883 0.399811 0.399811 0.399811 0.406799 0.406799 0.406799 0.413727 0.413727 0.413727 0.420410 0.420410 0.420410 0.427246 0.427246 0.427246 0.433990 0.433990 0.433990 0.440582 0.440582 0.440582 0.447357 0.447357 0.447357 0.454102 0.454102 0.454102 0.460693 0.460693 0.460693 0.467468 0.467468 0.467468 0.242126 0.242126 0.242126 0.252014 0.252014 0.252014 0.261505 0.261505 0.261505 0.271057 0.271057 0.271057 0.280426 0.280426 0.280426 0.289368 0.289368 0.289368 0.298370 0.298370 0.298370 0.306976 0.306976 0.306976 0.315613 0.315613 0.315613 0.324066 0.324066 0.324066 0.332153 0.332153 0.332153 0.340271 0.340271 0.340271 0.348236 0.348236 0.348236 0.355835 0.355835 0.355835 0.363495 0.363495 0.363495 0.371033 0.371033 0.371033 0.378265 0.378265 0.378265 0.385559 0.385559 0.385559 0.392548 0.392548 0.392548 0.399628 0.399628 0.399628 0.406616 0.406616 0.406616 0.413361 0.413361 0.413361 0.420227 0.420227 0.420227 0.427063 0.427063 0.427063 0.433685 0.433685 0.433685 0.440430 0.440430 0.440430 0.447205 0.447205 0.447205 0.453766 0.453766 0.453766 0.460541 0.460541 0.460541 0.467133 0.467133 0.467133 0.473938 0.473938 0.473938 0.480835 0.480835 0.480835 0.261261 0.261261 0.261261 0.270813 0.270813 0.270813 0.279968 0.279968 0.279968 0.289124 0.289124 0.289124 0.297943 0.297943 0.297943 0.306763 0.306763 0.306763 0.315399 0.315399 0.315399 0.323639 0.323639 0.323639 0.331940 0.331940 0.331940 0.340088 0.340088 0.340088 0.347870 0.347870 0.347870 0.355682 0.355682 0.355682 0.363312 0.363312 0.363312 0.370667 0.370667 0.370667 0.378082 0.378082 0.378082 0.385162 0.385162 0.385162 0.392365 0.392365 0.392365 0.399445 0.399445 0.399445 0.406281 0.406281 0.406281 0.413208 0.413208 0.413208 0.420074 0.420074 0.420074 0.426727 0.426727 0.426727 0.433502 0.433502 0.433502 0.440277 0.440277 0.440277 0.446838 0.446838 0.446838 0.453613 0.453613 0.453613 0.460358 0.460358 0.460358 0.466949 0.466949 0.466949 0.473785 0.473785 0.473785 0.480499 0.480499 0.480499 0.487427 0.487427 0.487427 0.494415 0.494415 0.494415 0.279724 0.279724 0.279724 0.288910 0.288910 0.288910 0.297699 0.297699 0.297699 0.306519 0.306519 0.306519 0.315186 0.315186 0.315186 0.323425 0.323425 0.323425 0.331757 0.331757 0.331757 0.339691 0.339691 0.339691 0.347656 0.347656 0.347656 0.355469 0.355469 0.355469 0.362946 0.362946 0.362946 0.370514 0.370514 0.370514 0.377899 0.377899 0.377899 0.385010 0.385010 0.385010 0.392181 0.392181 0.392181 0.399292 0.399292 0.399292 0.406097 0.406097 0.406097 0.413055 0.413055 0.413055 0.419708 0.419708 0.419708 0.426544 0.426544 0.426544 0.433319 0.433319 0.433319 0.439941 0.439941 0.439941 0.446686 0.446686 0.446686 0.453430 0.453430 0.453430 0.460022 0.460022 0.460022 0.466797 0.466797 0.466797 0.473633 0.473633 0.473633 0.480316 0.480316 0.480316 0.487244 0.487244 0.487244 0.494049 0.494049 0.494049 0.501129 0.501129 0.501129 0.508301 0.508301 0.508301 0.297485 0.297485 0.297485 0.306335 0.306335 0.306335 0.314728 0.314728 0.314728 0.323242 0.323242 0.323242 0.331329 0.331329 0.331329 0.339478 0.339478 0.339478 0.347443 0.347443 0.347443 0.355072 0.355072 0.355072 0.362762 0.362762 0.362762 0.370300 0.370300 0.370300 0.377502 0.377502 0.377502 0.384827 0.384827 0.384827 0.392029 0.392029 0.392029 0.398926 0.398926 0.398926 0.405914 0.405914 0.405914 0.412689 0.412689 0.412689 0.419556 0.419556 0.419556 0.426392 0.426392 0.426392 0.432983 0.432983 0.432983 0.439758 0.439758 0.439758 0.446503 0.446503 0.446503 0.453064 0.453064 0.453064 0.459869 0.459869 0.459869 0.466614 0.466614 0.466614 0.473297 0.473297 0.473297 0.480164 0.480164 0.480164 0.487061 0.487061 0.487061 0.493896 0.493896 0.493896 0.500946 0.500946 0.500946 0.507935 0.507935 0.507935 0.515198 0.515198 0.515198 0.522552 0.522552 0.522552 0.314545 0.314545 0.314545 0.322998 0.322998 0.322998 0.331116 0.331116 0.331116 0.339264 0.339264 0.339264 0.347046 0.347046 0.347046 0.354889 0.354889 0.354889 0.362579 0.362579 0.362579 0.369904 0.369904 0.369904 0.377350 0.377350 0.377350 0.384644 0.384644 0.384644 0.391663 0.391663 0.391663 0.398773 0.398773 0.398773 0.405762 0.405762 0.405762 0.412537 0.412537 0.412537 0.419403 0.419403 0.419403 0.426056 0.426056 0.426056 0.432831 0.432831 0.432831 0.439606 0.439606 0.439606 0.446167 0.446167 0.446167 0.452911 0.452911 0.452911 0.459656 0.459656 0.459656 0.466278 0.466278 0.466278 0.473114 0.473114 0.473114 0.479950 0.479950 0.479950 0.486694 0.486694 0.486694 0.493683 0.493683 0.493683 0.500610 0.500610 0.500610 0.507751 0.507751 0.507751 0.514984 0.514984 0.514984 0.522186 0.522186 0.522186 0.529633 0.529633 0.529633 0.537201 0.537201 0.537201 0.330902 0.330902 0.330902 0.338837 0.338837 0.338837 0.346863 0.346863 0.346863 0.354675 0.354675 0.354675 0.362183 0.362183 0.362183 0.369751 0.369751 0.369751 0.377136 0.377136 0.377136 0.384277 0.384277 0.384277 0.391449 0.391449 0.391449 0.398590 0.398590 0.398590 0.405426 0.405426 0.405426 0.412354 0.412354 0.412354 0.419037 0.419037 0.419037 0.425873 0.425873 0.425873 0.432648 0.432648 0.432648 0.439270 0.439270 0.439270 0.446014 0.446014 0.446014 0.452728 0.452728 0.452728 0.459320 0.459320 0.459320 0.466125 0.466125 0.466125 0.472931 0.472931 0.472931 0.479614 0.479614 0.479614 0.486542 0.486542 0.486542 0.493530 0.493530 0.493530 0.500427 0.500427 0.500427 0.507568 0.507568 0.507568 0.514618 0.514618 0.514618 0.521973 0.521973 0.521973 0.529449 0.529449 0.529449 0.536835 0.536835 0.536835 0.544525 0.544525 0.544525 0.552368 0.552368 0.552368 0.346649 0.346649 0.346649 0.354279 0.354279 0.354279 0.362000 0.362000 0.362000 0.369568 0.369568 0.369568 0.376770 0.376770 0.376770 0.384094 0.384094 0.384094 0.391296 0.391296 0.391296 0.398224 0.398224 0.398224 0.405243 0.405243 0.405243 0.412170 0.412170 0.412170 0.418884 0.418884 0.418884 0.425690 0.425690 0.425690 0.432312 0.432312 0.432312 0.439087 0.439087 0.439087 0.445831 0.445831 0.445831 0.452393 0.452393 0.452393 0.459167 0.459167 0.459167 0.465942 0.465942 0.465942 0.472595 0.472595 0.472595 0.479462 0.479462 0.479462 0.486359 0.486359 0.486359 0.493195 0.493195 0.493195 0.500244 0.500244 0.500244 0.507202 0.507202 0.507202 0.514465 0.514465 0.514465 0.521820 0.521820 0.521820 0.529083 0.529083 0.529083 0.536621 0.536621 0.536621 0.544342 0.544342 0.544342 0.551971 0.551971 0.551971 0.559937 0.559937 0.559937 0.568024 0.568024 0.568024 0.361816 0.361816 0.361816 0.369171 0.369171 0.369171 0.376587 0.376587 0.376587 0.383911 0.383911 0.383911 0.390961 0.390961 0.390961 0.398010 0.398010 0.398010 0.405060 0.405060 0.405060 0.411804 0.411804 0.411804 0.418732 0.418732 0.418732 0.425385 0.425385 0.425385 0.432159 0.432159 0.432159 0.438904 0.438904 0.438904 0.445496 0.445496 0.445496 0.452271 0.452271 0.452271 0.459015 0.459015 0.459015 0.465607 0.465607 0.465607 0.472412 0.472412 0.472412 0.479279 0.479279 0.479279 0.486023 0.486023 0.486023 0.493011 0.493011 0.493011 0.500061 0.500061 0.500061 0.507050 0.507050 0.507050 0.514282 0.514282 0.514282 0.521423 0.521423 0.521423 0.528870 0.528870 0.528870 0.536438 0.536438 0.536438 0.543945 0.543945 0.543945 0.551788 0.551788 0.551788 0.559753 0.559753 0.559753 0.567627 0.567627 0.567627 0.575867 0.575867 0.575867 0.584198 0.584198 0.584198 0.376434 0.376434 0.376434 0.383545 0.383545 0.383545 0.390747 0.390747 0.390747 0.397858 0.397858 0.397858 0.404724 0.404724 0.404724 0.411652 0.411652 0.411652 0.418549 0.418549 0.418549 0.425171 0.425171 0.425171 0.431976 0.431976 0.431976 0.438568 0.438568 0.438568 0.445343 0.445343 0.445343 0.452087 0.452087 0.452087 0.458649 0.458649 0.458649 0.465454 0.465454 0.465454 0.472260 0.472260 0.472260 0.478943 0.478943 0.478943 0.485870 0.485870 0.485870 0.492828 0.492828 0.492828 0.499695 0.499695 0.499695 0.506836 0.506836 0.506836 0.513885 0.513885 0.513885 0.521240 0.521240 0.521240 0.528687 0.528687 0.528687 0.536072 0.536072 0.536072 0.543762 0.543762 0.543762 0.551575 0.551575 0.551575 0.559326 0.559326 0.559326 0.567383 0.567383 0.567383 0.575653 0.575653 0.575653 0.583771 0.583771 0.583771 0.592255 0.592255 0.592255 0.600616 0.600616 0.600616 0.390594 0.390594 0.390594 0.397522 0.397522 0.397522 0.404510 0.404510 0.404510 0.411469 0.411469 0.411469 0.418182 0.418182 0.418182 0.425018 0.425018 0.425018 0.431793 0.431793 0.431793 0.438385 0.438385 0.438385 0.445160 0.445160 0.445160 0.451752 0.451752 0.451752 0.458496 0.458496 0.458496 0.465271 0.465271 0.465271 0.471893 0.471893 0.471893 0.478760 0.478760 0.478760 0.485687 0.485687 0.485687 0.492493 0.492493 0.492493 0.499512 0.499512 0.499512 0.506683 0.506683 0.506683 0.513702 0.513702 0.513702 0.521057 0.521057 0.521057 0.528320 0.528320 0.528320 0.535858 0.535858 0.535858 0.543579 0.543579 0.543579 0.551178 0.551178 0.551178 0.559113 0.559113 0.559113 0.567200 0.567200 0.567200 0.575195 0.575195 0.575195 0.583557 0.583557 0.583557 0.592041 0.592041 0.592041 0.600372 0.600372 0.600372 0.609009 0.609009 0.609009 0.617493 0.617493 0.617493 0.404358 0.404358 0.404358 0.411133 0.411133 0.411133 0.417999 0.417999 0.417999 0.424866 0.424866 0.424866 0.431488 0.431488 0.431488 0.438263 0.438263 0.438263 0.444824 0.444824 0.444824 0.451569 0.451569 0.451569 0.458313 0.458313 0.458313 0.464935 0.464935 0.464935 0.471741 0.471741 0.471741 0.478607 0.478607 0.478607 0.485321 0.485321 0.485321 0.492310 0.492310 0.492310 0.499329 0.499329 0.499329 0.506317 0.506317 0.506317 0.513519 0.513519 0.513519 0.520660 0.520660 0.520660 0.528137 0.528137 0.528137 0.535706 0.535706 0.535706 0.543182 0.543182 0.543182 0.550995 0.550995 0.550995 0.558929 0.558929 0.558929 0.566803 0.566803 0.566803 0.575012 0.575012 0.575012 0.583374 0.583374 0.583374 0.591614 0.591614 0.591614 0.600159 0.600159 0.600159 0.608582 0.608582 0.608582 0.617279 0.617279 0.617279 0.626038 0.626038 0.626038 0.634521 0.634521 0.634521 0.417847 0.417847 0.417847 0.424500 0.424500 0.424500 0.431305 0.431305 0.431305 0.438049 0.438049 0.438049 0.444641 0.444641 0.444641 0.451416 0.451416 0.451416 0.457977 0.457977 0.457977 0.464752 0.464752 0.464752 0.471588 0.471588 0.471588 0.478241 0.478241 0.478241 0.485138 0.485138 0.485138 0.492126 0.492126 0.492126 0.498993 0.498993 0.498993 0.506134 0.506134 0.506134 0.513367 0.513367 0.513367 0.520508 0.520508 0.520508 0.527954 0.527954 0.527954 0.535339 0.535339 0.535339 0.542999 0.542999 0.542999 0.550781 0.550781 0.550781 0.558563 0.558563 0.558563 0.566589 0.566589 0.566589 0.574799 0.574799 0.574799 0.582947 0.582947 0.582947 0.591400 0.591400 0.591400 0.599945 0.599945 0.599945 0.608368 0.608368 0.608368 0.617065 0.617065 0.617065 0.625580 0.625580 0.625580 0.634308 0.634308 0.634308 0.643066 0.643066 0.643066 0.651611 0.651611 0.651611 0.431122 0.431122 0.431122 0.437744 0.437744 0.437744 0.444489 0.444489 0.444489 0.451080 0.451080 0.451080 0.457825 0.457825 0.457825 0.464600 0.464600 0.464600 0.471222 0.471222 0.471222 0.478088 0.478088 0.478088 0.484985 0.484985 0.484985 0.491760 0.491760 0.491760 0.498840 0.498840 0.498840 0.505951 0.505951 0.505951 0.513000 0.513000 0.513000 0.520325 0.520325 0.520325 0.527557 0.527557 0.527557 0.535126 0.535126 0.535126 0.542786 0.542786 0.542786 0.550385 0.550385 0.550385 0.558319 0.558319 0.558319 0.566376 0.566376 0.566376 0.574402 0.574402 0.574402 0.582703 0.582703 0.582703 0.591187 0.591187 0.591187 0.599518 0.599518 0.599518 0.608154 0.608154 0.608154 0.616638 0.616638 0.616638 0.625336 0.625336 0.625336 0.634125 0.634125 0.634125 0.642670 0.642670 0.642670 0.651367 0.651367 0.651367 0.660095 0.660095 0.660095 0.668518 0.668518 0.668518 0.444336 0.444336 0.444336 0.450897 0.450897 0.450897 0.457642 0.457642 0.457642 0.464233 0.464233 0.464233 0.471069 0.471069 0.471069 0.477936 0.477936 0.477936 0.484650 0.484650 0.484650 0.491608 0.491608 0.491608 0.498627 0.498627 0.498627 0.505615 0.505615 0.505615 0.512817 0.512817 0.512817 0.520142 0.520142 0.520142 0.527374 0.527374 0.527374 0.534943 0.534943 0.534943 0.542389 0.542389 0.542389 0.550201 0.550201 0.550201 0.558136 0.558136 0.558136 0.565979 0.565979 0.565979 0.574188 0.574188 0.574188 0.582520 0.582520 0.582520 0.590759 0.590759 0.590759 0.599304 0.599304 0.599304 0.607941 0.607941 0.607941 0.616394 0.616394 0.616394 0.625153 0.625153 0.625153 0.633667 0.633667 0.633667 0.642426 0.642426 0.642426 0.651154 0.651154 0.651154 0.659637 0.659637 0.659637 0.668304 0.668304 0.668304 0.676880 0.676880 0.676880 0.685211 0.685211 0.685211 0.457306 0.457306 0.457306 0.464081 0.464081 0.464081 0.470886 0.470886 0.470886 0.477570 0.477570 0.477570 0.484467 0.484467 0.484467 0.491425 0.491425 0.491425 0.498291 0.498291 0.498291 0.505432 0.505432 0.505432 0.512634 0.512634 0.512634 0.519775 0.519775 0.519775 0.527191 0.527191 0.527191 0.534546 0.534546 0.534546 0.542206 0.542206 0.542206 0.550018 0.550018 0.550018 0.557709 0.557709 0.557709 0.565765 0.565765 0.565765 0.573975 0.573975 0.573975 0.582092 0.582092 0.582092 0.590546 0.590546 0.590546 0.599091 0.599091 0.599091 0.607513 0.607513 0.607513 0.616211 0.616211 0.616211 0.624908 0.624908 0.624908 0.633453 0.633453 0.633453 0.642181 0.642181 0.642181 0.650726 0.650726 0.650726 0.659424 0.659424 0.659424 0.668091 0.668091 0.668091 0.676483 0.676483 0.676483 0.684998 0.684998 0.684998 0.693420 0.693420 0.693420 0.701508 0.701508 0.701508 0.470551 0.470551 0.470551 0.477386 0.477386 0.477386 0.484283 0.484283 0.484283 0.491089 0.491089 0.491089 0.498077 0.498077 0.498077 0.505219 0.505219 0.505219 0.512268 0.512268 0.512268 0.519592 0.519592 0.519592 0.527008 0.527008 0.527008 0.534363 0.534363 0.534363 0.542023 0.542023 0.542023 0.549622 0.549622 0.549622 0.557526 0.557526 0.557526 0.565582 0.565582 0.565582 0.573578 0.573578 0.573578 0.581909 0.581909 0.581909 0.590332 0.590332 0.590332 0.598663 0.598663 0.598663 0.607269 0.607269 0.607269 0.615967 0.615967 0.615967 0.624481 0.624481 0.624481 0.633240 0.633240 0.633240 0.641785 0.641785 0.641785 0.650513 0.650513 0.650513 0.659210 0.659210 0.659210 0.667664 0.667664 0.667664 0.676300 0.676300 0.676300 0.684753 0.684753 0.684753 0.693024 0.693024 0.693024 0.701324 0.701324 0.701324 0.709503 0.709503 0.709503 0.717377 0.717377 0.717377 0.483948 0.483948 0.483948 0.490906 0.490906 0.490906 0.497955 0.497955 0.497955 0.504883 0.504883 0.504883 0.512085 0.512085 0.512085 0.519379 0.519379 0.519379 0.526642 0.526642 0.526642 0.534180 0.534180 0.534180 0.541656 0.541656 0.541656 0.549408 0.549408 0.549408 0.557343 0.557343 0.557343 0.565186 0.565186 0.565186 0.573364 0.573364 0.573364 0.581696 0.581696 0.581696 0.589905 0.589905 0.589905 0.598450 0.598450 0.598450 0.607056 0.607056 0.607056 0.615540 0.615540 0.615540 0.624237 0.624237 0.624237 0.632996 0.632996 0.632996 0.641541 0.641541 0.641541 0.650299 0.650299 0.650299 0.658783 0.658783 0.658783 0.667450 0.667450 0.667450 0.676025 0.676025 0.676025 0.684357 0.684357 0.684357 0.692810 0.692810 0.692810 0.701111 0.701111 0.701111 0.709076 0.709076 0.709076 0.717163 0.717163 0.717163 0.725067 0.725067 0.725067 0.732605 0.732605 0.732605 0.497589 0.497589 0.497589 0.504700 0.504700 0.504700 0.511902 0.511902 0.511902 0.519043 0.519043 0.519043 0.526428 0.526428 0.526428 0.533966 0.533966 0.533966 0.541443 0.541443 0.541443 0.549225 0.549225 0.549225 0.556946 0.556946 0.556946 0.564972 0.564972 0.564972 0.573151 0.573151 0.573151 0.581268 0.581268 0.581268 0.589691 0.589691 0.589691 0.598236 0.598236 0.598236 0.606628 0.606628 0.606628 0.615295 0.615295 0.615295 0.624023 0.624023 0.624023 0.632568 0.632568 0.632568 0.641296 0.641296 0.641296 0.649841 0.649841 0.649841 0.658569 0.658569 0.658569 0.667206 0.667206 0.667206 0.675629 0.675629 0.675629 0.684143 0.684143 0.684143 0.692566 0.692566 0.692566 0.700684 0.700684 0.700684 0.708862 0.708862 0.708862 0.716949 0.716949 0.716949 0.724670 0.724670 0.724670 0.732422 0.732422 0.732422 0.739807 0.739807 0.739807 0.747223 0.747223 0.747223 0.048370 0.048370 0.048370 0.053986 0.053986 0.053986 0.059479 0.059479 0.059479 0.063354 0.063354 0.063354 0.067444 0.067444 0.067444 0.071625 0.071625 0.071625 0.076172 0.076172 0.076172 0.080872 0.080872 0.080872 0.085724 0.085724 0.085724 0.090912 0.090912 0.090912 0.096222 0.096222 0.096222 0.101990 0.101990 0.101990 0.108002 0.108002 0.108002 0.114227 0.114227 0.114227 0.120941 0.120941 0.120941 0.128021 0.128021 0.128021 0.135315 0.135315 0.135315 0.143250 0.143250 0.143250 0.151642 0.151642 0.151642 0.160339 0.160339 0.160339 0.169708 0.169708 0.169708 0.179504 0.179504 0.179504 0.189301 0.189301 0.189301 0.199677 0.199677 0.199677 0.209808 0.209808 0.209808 0.220215 0.220215 0.220215 0.230530 0.230530 0.230530 0.240356 0.240356 0.240356 0.250305 0.250305 0.250305 0.260040 0.260040 0.260040 0.269379 0.269379 0.269379 0.278809 0.278809 0.278809 0.059387 0.059387 0.059387 0.063263 0.063263 0.063263 0.067230 0.067230 0.067230 0.071533 0.071533 0.071533 0.076050 0.076050 0.076050 0.080658 0.080658 0.080658 0.085602 0.085602 0.085602 0.090790 0.090790 0.090790 0.096100 0.096100 0.096100 0.101837 0.101837 0.101837 0.107727 0.107727 0.107727 0.114044 0.114044 0.114044 0.120758 0.120758 0.120758 0.127686 0.127686 0.127686 0.135162 0.135162 0.135162 0.143066 0.143066 0.143066 0.151215 0.151215 0.151215 0.160095 0.160095 0.160095 0.169464 0.169464 0.169464 0.179016 0.179016 0.179016 0.189056 0.189056 0.189056 0.199158 0.199158 0.199158 0.209564 0.209564 0.209564 0.219940 0.219940 0.219940 0.230011 0.230011 0.230011 0.240112 0.240112 0.240112 0.250031 0.250031 0.250031 0.259583 0.259583 0.259583 0.269135 0.269135 0.269135 0.278564 0.278564 0.278564 0.287567 0.287567 0.287567 0.296600 0.296600 0.296600 0.067139 0.067139 0.067139 0.071442 0.071442 0.071442 0.075836 0.075836 0.075836 0.080505 0.080505 0.080505 0.085480 0.085480 0.085480 0.090515 0.090515 0.090515 0.095978 0.095978 0.095978 0.101501 0.101501 0.101501 0.107544 0.107544 0.107544 0.113892 0.113892 0.113892 0.120422 0.120422 0.120422 0.127502 0.127502 0.127502 0.134949 0.134949 0.134949 0.142639 0.142639 0.142639 0.151001 0.151001 0.151001 0.159882 0.159882 0.159882 0.169006 0.169006 0.169006 0.178772 0.178772 0.178772 0.188812 0.188812 0.188812 0.198914 0.198914 0.198914 0.209290 0.209290 0.209290 0.219452 0.219452 0.219452 0.229736 0.229736 0.229736 0.239868 0.239868 0.239868 0.249542 0.249542 0.249542 0.259338 0.259338 0.259338 0.268921 0.268921 0.268921 0.278107 0.278107 0.278107 0.287323 0.287323 0.287323 0.296387 0.296387 0.296387 0.304993 0.304993 0.304993 0.313690 0.313690 0.313690 0.075684 0.075684 0.075684 0.080414 0.080414 0.080414 0.085205 0.085205 0.085205 0.090393 0.090393 0.090393 0.095795 0.095795 0.095795 0.101379 0.101379 0.101379 0.107391 0.107391 0.107391 0.113586 0.113586 0.113586 0.120239 0.120239 0.120239 0.127289 0.127289 0.127289 0.134583 0.134583 0.134583 0.142426 0.142426 0.142426 0.150787 0.150787 0.150787 0.159454 0.159454 0.159454 0.168762 0.168762 0.168762 0.178528 0.178528 0.178528 0.188324 0.188324 0.188324 0.198639 0.198639 0.198639 0.208771 0.208771 0.208771 0.219177 0.219177 0.219177 0.229462 0.229462 0.229462 0.239349 0.239349 0.239349 0.249329 0.249329 0.249329 0.259094 0.259094 0.259094 0.268463 0.268463 0.268463 0.277863 0.277863 0.277863 0.287109 0.287109 0.287109 0.295898 0.295898 0.295898 0.304810 0.304810 0.304810 0.313263 0.313263 0.313263 0.321747 0.321747 0.321747 0.330109 0.330109 0.330109 0.085083 0.085083 0.085083 0.090271 0.090271 0.090271 0.095520 0.095520 0.095520 0.101227 0.101227 0.101227 0.107239 0.107239 0.107239 0.113403 0.113403 0.113403 0.120056 0.120056 0.120056 0.126923 0.126923 0.126923 0.134369 0.134369 0.134369 0.142242 0.142242 0.142242 0.150360 0.150360 0.150360 0.159180 0.159180 0.159180 0.168518 0.168518 0.168518 0.178009 0.178009 0.178009 0.188080 0.188080 0.188080 0.198120 0.198120 0.198120 0.208527 0.208527 0.208527 0.218933 0.218933 0.218933 0.228973 0.228973 0.228973 0.239136 0.239136 0.239136 0.249084 0.249084 0.249084 0.258606 0.258606 0.258606 0.268219 0.268219 0.268219 0.277618 0.277618 0.277618 0.286652 0.286652 0.286652 0.295715 0.295715 0.295715 0.304565 0.304565 0.304565 0.313049 0.313049 0.313049 0.321564 0.321564 0.321564 0.329712 0.329712 0.329712 0.337860 0.337860 0.337860 0.345886 0.345886 0.345886 0.095367 0.095367 0.095367 0.101105 0.101105 0.101105 0.106964 0.106964 0.106964 0.113251 0.113251 0.113251 0.119720 0.119720 0.119720 0.126740 0.126740 0.126740 0.134186 0.134186 0.134186 0.141846 0.141846 0.141846 0.150146 0.150146 0.150146 0.158966 0.158966 0.158966 0.168060 0.168060 0.168060 0.177734 0.177734 0.177734 0.187805 0.187805 0.187805 0.197845 0.197845 0.197845 0.208252 0.208252 0.208252 0.218414 0.218414 0.218414 0.228699 0.228699 0.228699 0.238892 0.238892 0.238892 0.248596 0.248596 0.248596 0.258362 0.258362 0.258362 0.267975 0.267975 0.267975 0.277161 0.277161 0.277161 0.286407 0.286407 0.286407 0.295471 0.295471 0.295471 0.304138 0.304138 0.304138 0.312836 0.312836 0.312836 0.321167 0.321167 0.321167 0.329468 0.329468 0.329468 0.337677 0.337677 0.337677 0.345459 0.345459 0.345459 0.353363 0.353363 0.353363 0.361053 0.361053 0.361053 0.106812 0.106812 0.106812 0.113098 0.113098 0.113098 0.119568 0.119568 0.119568 0.126587 0.126587 0.126587 0.133789 0.133789 0.133789 0.141632 0.141632 0.141632 0.149963 0.149963 0.149963 0.158508 0.158508 0.158508 0.167816 0.167816 0.167816 0.177490 0.177490 0.177490 0.187317 0.187317 0.187317 0.197601 0.197601 0.197601 0.208008 0.208008 0.208008 0.218140 0.218140 0.218140 0.228455 0.228455 0.228455 0.238373 0.238373 0.238373 0.248352 0.248352 0.248352 0.258118 0.258118 0.258118 0.267517 0.267517 0.267517 0.276917 0.276917 0.276917 0.286194 0.286194 0.286194 0.295013 0.295013 0.295013 0.303925 0.303925 0.303925 0.312622 0.312622 0.312622 0.320923 0.320923 0.320923 0.329285 0.329285 0.329285 0.337250 0.337250 0.337250 0.345306 0.345306 0.345306 0.353149 0.353149 0.353149 0.360657 0.360657 0.360657 0.368225 0.368225 0.368225 0.375702 0.375702 0.375702 0.119415 0.119415 0.119415 0.126221 0.126221 0.126221 0.133606 0.133606 0.133606 0.141449 0.141449 0.141449 0.149506 0.149506 0.149506 0.158264 0.158264 0.158264 0.167572 0.167572 0.167572 0.177032 0.177032 0.177032 0.187073 0.187073 0.187073 0.197357 0.197357 0.197357 0.207458 0.207458 0.207458 0.217896 0.217896 0.217896 0.227966 0.227966 0.227966 0.238098 0.238098 0.238098 0.248108 0.248108 0.248108 0.257629 0.257629 0.257629 0.267273 0.267273 0.267273 0.276703 0.276703 0.276703 0.285736 0.285736 0.285736 0.294830 0.294830 0.294830 0.303680 0.303680 0.303680 0.312195 0.312195 0.312195 0.320709 0.320709 0.320709 0.328827 0.328827 0.328827 0.337036 0.337036 0.337036 0.345062 0.345062 0.345062 0.352722 0.352722 0.352722 0.360474 0.360474 0.360474 0.368042 0.368042 0.368042 0.375336 0.375336 0.375336 0.382660 0.382660 0.382660 0.389862 0.389862 0.389862 0.133423 0.133423 0.133423 0.141052 0.141052 0.141052 0.149323 0.149323 0.149323 0.158081 0.158081 0.158081 0.167114 0.167114 0.167114 0.176788 0.176788 0.176788 0.186829 0.186829 0.186829 0.196808 0.196808 0.196808 0.207214 0.207214 0.207214 0.217621 0.217621 0.217621 0.227692 0.227692 0.227692 0.237854 0.237854 0.237854 0.247589 0.247589 0.247589 0.257385 0.257385 0.257385 0.267059 0.267059 0.267059 0.276245 0.276245 0.276245 0.285492 0.285492 0.285492 0.294586 0.294586 0.294586 0.303253 0.303253 0.303253 0.311981 0.311981 0.311981 0.320496 0.320496 0.320496 0.328674 0.328674 0.328674 0.336853 0.336853 0.336853 0.344666 0.344666 0.344666 0.352539 0.352539 0.352539 0.360260 0.360260 0.360260 0.367676 0.367676 0.367676 0.375122 0.375122 0.375122 0.382446 0.382446 0.382446 0.389526 0.389526 0.389526 0.396637 0.396637 0.396637 0.403656 0.403656 0.403656 0.149078 0.149078 0.149078 0.157623 0.157623 0.157623 0.166840 0.166840 0.166840 0.176544 0.176544 0.176544 0.186310 0.186310 0.186310 0.196564 0.196564 0.196564 0.206940 0.206940 0.206940 0.217102 0.217102 0.217102 0.227448 0.227448 0.227448 0.237335 0.237335 0.237335 0.247314 0.247314 0.247314 0.257172 0.257172 0.257172 0.266541 0.266541 0.266541 0.276001 0.276001 0.276001 0.285248 0.285248 0.285248 0.294128 0.294128 0.294128 0.303009 0.303009 0.303009 0.311737 0.311737 0.311737 0.320099 0.320099 0.320099 0.328461 0.328461 0.328461 0.336426 0.336426 0.336426 0.344482 0.344482 0.344482 0.352325 0.352325 0.352325 0.359894 0.359894 0.359894 0.367462 0.367462 0.367462 0.374969 0.374969 0.374969 0.382080 0.382080 0.382080 0.389313 0.389313 0.389313 0.396454 0.396454 0.396454 0.403320 0.403320 0.403320 0.410278 0.410278 0.410278 0.416962 0.416962 0.416962 0.166595 0.166595 0.166595 0.176056 0.176056 0.176056 0.186035 0.186035 0.186035 0.196289 0.196289 0.196289 0.206421 0.206421 0.206421 0.216827 0.216827 0.216827 0.227173 0.227173 0.227173 0.237091 0.237091 0.237091 0.247070 0.247070 0.247070 0.256653 0.256653 0.256653 0.266296 0.266296 0.266296 0.275757 0.275757 0.275757 0.284821 0.284821 0.284821 0.293915 0.293915 0.293915 0.302795 0.302795 0.302795 0.311310 0.311310 0.311310 0.319855 0.319855 0.319855 0.328247 0.328247 0.328247 0.336243 0.336243 0.336243 0.344269 0.344269 0.344269 0.351959 0.351959 0.351959 0.359711 0.359711 0.359711 0.367310 0.367310 0.367310 0.374573 0.374573 0.374573 0.381927 0.381927 0.381927 0.389160 0.389160 0.389160 0.396088 0.396088 0.396088 0.403168 0.403168 0.403168 0.410095 0.410095 0.410095 0.416840 0.416840 0.416840 0.423676 0.423676 0.423676 0.430298 0.430298 0.430298 0.185791 0.185791 0.185791 0.195801 0.195801 0.195801 0.206177 0.206177 0.206177 0.216583 0.216583 0.216583 0.226685 0.226685 0.226685 0.236847 0.236847 0.236847 0.246582 0.246582 0.246582 0.256409 0.256409 0.256409 0.266052 0.266052 0.266052 0.275299 0.275299 0.275299 0.284576 0.284576 0.284576 0.293671 0.293671 0.293671 0.302368 0.302368 0.302368 0.311066 0.311066 0.311066 0.319641 0.319641 0.319641 0.327789 0.327789 0.327789 0.336029 0.336029 0.336029 0.344086 0.344086 0.344086 0.351776 0.351776 0.351776 0.359497 0.359497 0.359497 0.366943 0.366943 0.366943 0.374390 0.374390 0.374390 0.381744 0.381744 0.381744 0.388794 0.388794 0.388794 0.395935 0.395935 0.395935 0.402954 0.402954 0.402954 0.409760 0.409760 0.409760 0.416656 0.416656 0.416656 0.423340 0.423340 0.423340 0.430115 0.430115 0.430115 0.436890 0.436890 0.436890 0.443451 0.443451 0.443451 0.205902 0.205902 0.205902 0.216064 0.216064 0.216064 0.226410 0.226410 0.226410 0.236572 0.236572 0.236572 0.246338 0.246338 0.246338 0.256165 0.256165 0.256165 0.265594 0.265594 0.265594 0.275085 0.275085 0.275085 0.284332 0.284332 0.284332 0.293213 0.293213 0.293213 0.302155 0.302155 0.302155 0.310913 0.310913 0.310913 0.319214 0.319214 0.319214 0.327637 0.327637 0.327637 0.335846 0.335846 0.335846 0.343689 0.343689 0.343689 0.351562 0.351562 0.351562 0.359131 0.359131 0.359131 0.366730 0.366730 0.366730 0.374207 0.374207 0.374207 0.381378 0.381378 0.381378 0.388611 0.388611 0.388611 0.395752 0.395752 0.395752 0.402618 0.402618 0.402618 0.409576 0.409576 0.409576 0.416473 0.416473 0.416473 0.423126 0.423126 0.423126 0.429932 0.429932 0.429932 0.436554 0.436554 0.436554 0.443298 0.443298 0.443298 0.450073 0.450073 0.450073 0.456635 0.456635 0.456635 0.226166 0.226166 0.226166 0.236053 0.236053 0.236053 0.246094 0.246094 0.246094 0.255707 0.255707 0.255707 0.265350 0.265350 0.265350 0.274841 0.274841 0.274841 0.283905 0.283905 0.283905 0.292999 0.292999 0.292999 0.301941 0.301941 0.301941 0.310455 0.310455 0.310455 0.319000 0.319000 0.319000 0.327393 0.327393 0.327393 0.335419 0.335419 0.335419 0.343506 0.343506 0.343506 0.351166 0.351166 0.351166 0.358948 0.358948 0.358948 0.366547 0.366547 0.366547 0.373840 0.373840 0.373840 0.381195 0.381195 0.381195 0.388428 0.388428 0.388428 0.395416 0.395416 0.395416 0.402435 0.402435 0.402435 0.409424 0.409424 0.409424 0.416138 0.416138 0.416138 0.422974 0.422974 0.422974 0.429779 0.429779 0.429779 0.436371 0.436371 0.436371 0.443146 0.443146 0.443146 0.449707 0.449707 0.449707 0.456451 0.456451 0.456451 0.463226 0.463226 0.463226 0.469879 0.469879 0.469879 0.245880 0.245880 0.245880 0.255463 0.255463 0.255463 0.265106 0.265106 0.265106 0.274323 0.274323 0.274323 0.283661 0.283661 0.283661 0.292786 0.292786 0.292786 0.301483 0.301483 0.301483 0.310242 0.310242 0.310242 0.318817 0.318817 0.318817 0.326996 0.326996 0.326996 0.335205 0.335205 0.335205 0.343262 0.343262 0.343262 0.350983 0.350983 0.350983 0.358734 0.358734 0.358734 0.366180 0.366180 0.366180 0.373657 0.373657 0.373657 0.381012 0.381012 0.381012 0.388062 0.388062 0.388062 0.395203 0.395203 0.395203 0.402252 0.402252 0.402252 0.409058 0.409058 0.409058 0.415955 0.415955 0.415955 0.422791 0.422791 0.422791 0.429443 0.429443 0.429443 0.436218 0.436218 0.436218 0.442780 0.442780 0.442780 0.449554 0.449554 0.449554 0.456299 0.456299 0.456299 0.462921 0.462921 0.462921 0.469696 0.469696 0.469696 0.476532 0.476532 0.476532 0.483246 0.483246 0.483246 0.264618 0.264618 0.264618 0.274109 0.274109 0.274109 0.283417 0.283417 0.283417 0.292328 0.292328 0.292328 0.301270 0.301270 0.301270 0.310028 0.310028 0.310028 0.318390 0.318390 0.318390 0.326782 0.326782 0.326782 0.335022 0.335022 0.335022 0.342865 0.342865 0.342865 0.350800 0.350800 0.350800 0.358368 0.358368 0.358368 0.365967 0.365967 0.365967 0.373474 0.373474 0.373474 0.380615 0.380615 0.380615 0.387878 0.387878 0.387878 0.395020 0.395020 0.395020 0.401917 0.401917 0.401917 0.408905 0.408905 0.408905 0.415802 0.415802 0.415802 0.422455 0.422455 0.422455 0.429260 0.429260 0.429260 0.436035 0.436035 0.436035 0.442627 0.442627 0.442627 0.449371 0.449371 0.449371 0.455963 0.455963 0.455963 0.462708 0.462708 0.462708 0.469543 0.469543 0.469543 0.476196 0.476196 0.476196 0.483063 0.483063 0.483063 0.490051 0.490051 0.490051 0.496887 0.496887 0.496887 0.283203 0.283203 0.283203 0.292114 0.292114 0.292114 0.301056 0.301056 0.301056 0.309601 0.309601 0.309601 0.318176 0.318176 0.318176 0.326599 0.326599 0.326599 0.334625 0.334625 0.334625 0.342682 0.342682 0.342682 0.350616 0.350616 0.350616 0.358154 0.358154 0.358154 0.365784 0.365784 0.365784 0.373291 0.373291 0.373291 0.380463 0.380463 0.380463 0.387695 0.387695 0.387695 0.394684 0.394684 0.394684 0.401764 0.401764 0.401764 0.408722 0.408722 0.408722 0.415436 0.415436 0.415436 0.422272 0.422272 0.422272 0.429108 0.429108 0.429108 0.435699 0.435699 0.435699 0.442444 0.442444 0.442444 0.449188 0.449188 0.449188 0.455780 0.455780 0.455780 0.462555 0.462555 0.462555 0.469177 0.469177 0.469177 0.476013 0.476013 0.476013 0.482910 0.482910 0.482910 0.489685 0.489685 0.489685 0.496704 0.496704 0.496704 0.503784 0.503784 0.503784 0.510803 0.510803 0.510803 0.300598 0.300598 0.300598 0.309357 0.309357 0.309357 0.317932 0.317932 0.317932 0.326172 0.326172 0.326172 0.334412 0.334412 0.334412 0.342468 0.342468 0.342468 0.350189 0.350189 0.350189 0.357971 0.357971 0.357971 0.365601 0.365601 0.365601 0.372894 0.372894 0.372894 0.380280 0.380280 0.380280 0.387360 0.387360 0.387360 0.394501 0.394501 0.394501 0.401550 0.401550 0.401550 0.408386 0.408386 0.408386 0.415283 0.415283 0.415283 0.422119 0.422119 0.422119 0.428772 0.428772 0.428772 0.435516 0.435516 0.435516 0.442291 0.442291 0.442291 0.448883 0.448883 0.448883 0.455627 0.455627 0.455627 0.462402 0.462402 0.462402 0.469025 0.469025 0.469025 0.475861 0.475861 0.475861 0.482544 0.482544 0.482544 0.489502 0.489502 0.489502 0.496521 0.496521 0.496521 0.503418 0.503418 0.503418 0.510651 0.510651 0.510651 0.517944 0.517944 0.517944 0.525146 0.525146 0.525146 0.317535 0.317535 0.317535 0.325958 0.325958 0.325958 0.334167 0.334167 0.334167 0.342072 0.342072 0.342072 0.349976 0.349976 0.349976 0.357788 0.357788 0.357788 0.365204 0.365204 0.365204 0.372711 0.372711 0.372711 0.380096 0.380096 0.380096 0.387177 0.387177 0.387177 0.394318 0.394318 0.394318 0.401215 0.401215 0.401215 0.408203 0.408203 0.408203 0.415100 0.415100 0.415100 0.421753 0.421753 0.421753 0.428589 0.428589 0.428589 0.435364 0.435364 0.435364 0.441956 0.441956 0.441956 0.448700 0.448700 0.448700 0.455444 0.455444 0.455444 0.462036 0.462036 0.462036 0.468842 0.468842 0.468842 0.475494 0.475494 0.475494 0.482391 0.482391 0.482391 0.489349 0.489349 0.489349 0.496155 0.496155 0.496155 0.503265 0.503265 0.503265 0.510437 0.510437 0.510437 0.517548 0.517548 0.517548 0.524963 0.524963 0.524963 0.532471 0.532471 0.532471 0.539886 0.539886 0.539886 0.333801 0.333801 0.333801 0.341858 0.341858 0.341858 0.349823 0.349823 0.349823 0.357391 0.357391 0.357391 0.365051 0.365051 0.365051 0.372528 0.372528 0.372528 0.379700 0.379700 0.379700 0.386993 0.386993 0.386993 0.393982 0.393982 0.393982 0.401031 0.401031 0.401031 0.408020 0.408020 0.408020 0.414764 0.414764 0.414764 0.421631 0.421631 0.421631 0.428406 0.428406 0.428406 0.435028 0.435028 0.435028 0.441772 0.441772 0.441772 0.448517 0.448517 0.448517 0.455109 0.455109 0.455109 0.461884 0.461884 0.461884 0.468658 0.468658 0.468658 0.475342 0.475342 0.475342 0.482208 0.482208 0.482208 0.488983 0.488983 0.488983 0.496002 0.496002 0.496002 0.503082 0.503082 0.503082 0.510101 0.510101 0.510101 0.517395 0.517395 0.517395 0.524780 0.524780 0.524780 0.532104 0.532104 0.532104 0.539734 0.539734 0.539734 0.547455 0.547455 0.547455 0.555115 0.555115 0.555115 0.349396 0.349396 0.349396 0.357208 0.357208 0.357208 0.364838 0.364838 0.364838 0.372192 0.372192 0.372192 0.379547 0.379547 0.379547 0.386810 0.386810 0.386810 0.393768 0.393768 0.393768 0.400848 0.400848 0.400848 0.407684 0.407684 0.407684 0.414612 0.414612 0.414612 0.421448 0.421448 0.421448 0.428101 0.428101 0.428101 0.434875 0.434875 0.434875 0.441620 0.441620 0.441620 0.448212 0.448212 0.448212 0.454956 0.454956 0.454956 0.461700 0.461700 0.461700 0.468323 0.468323 0.468323 0.475159 0.475159 0.475159 0.481873 0.481873 0.481873 0.488831 0.488831 0.488831 0.495819 0.495819 0.495819 0.502747 0.502747 0.502747 0.509888 0.509888 0.509888 0.517212 0.517212 0.517212 0.524414 0.524414 0.524414 0.531891 0.531891 0.531891 0.539520 0.539520 0.539520 0.547058 0.547058 0.547058 0.554932 0.554932 0.554932 0.562775 0.562775 0.562775 0.570892 0.570892 0.570892 0.364471 0.364471 0.364471 0.371979 0.371979 0.371979 0.379333 0.379333 0.379333 0.386444 0.386444 0.386444 0.393616 0.393616 0.393616 0.400482 0.400482 0.400482 0.407501 0.407501 0.407501 0.414429 0.414429 0.414429 0.421112 0.421112 0.421112 0.427887 0.427887 0.427887 0.434692 0.434692 0.434692 0.441284 0.441284 0.441284 0.448029 0.448029 0.448029 0.454773 0.454773 0.454773 0.461365 0.461365 0.461365 0.468140 0.468140 0.468140 0.474976 0.474976 0.474976 0.481689 0.481689 0.481689 0.488617 0.488617 0.488617 0.495483 0.495483 0.495483 0.502533 0.502533 0.502533 0.509735 0.509735 0.509735 0.516815 0.516815 0.516815 0.524200 0.524200 0.524200 0.531708 0.531708 0.531708 0.539093 0.539093 0.539093 0.546875 0.546875 0.546875 0.554749 0.554749 0.554749 0.562561 0.562561 0.562561 0.570679 0.570679 0.570679 0.578766 0.578766 0.578766 0.587128 0.587128 0.587128 0.378967 0.378967 0.378967 0.386261 0.386261 0.386261 0.393463 0.393463 0.393463 0.400360 0.400360 0.400360 0.407318 0.407318 0.407318 0.414062 0.414062 0.414062 0.420929 0.420929 0.420929 0.427734 0.427734 0.427734 0.434357 0.434357 0.434357 0.441101 0.441101 0.441101 0.447845 0.447845 0.447845 0.454437 0.454437 0.454437 0.461212 0.461212 0.461212 0.467987 0.467987 0.467987 0.474640 0.474640 0.474640 0.481506 0.481506 0.481506 0.488281 0.488281 0.488281 0.495270 0.495270 0.495270 0.502380 0.502380 0.502380 0.509369 0.509369 0.509369 0.516663 0.516663 0.516663 0.524017 0.524017 0.524017 0.531342 0.531342 0.531342 0.538940 0.538940 0.538940 0.546661 0.546661 0.546661 0.554352 0.554352 0.554352 0.562347 0.562347 0.562347 0.570282 0.570282 0.570282 0.578552 0.578552 0.578552 0.586945 0.586945 0.586945 0.595215 0.595215 0.595215 0.603821 0.603821 0.603821 0.393097 0.393097 0.393097 0.400146 0.400146 0.400146 0.406982 0.406982 0.406982 0.413879 0.413879 0.413879 0.420776 0.420776 0.420776 0.427399 0.427399 0.427399 0.434204 0.434204 0.434204 0.440948 0.440948 0.440948 0.447510 0.447510 0.447510 0.454254 0.454254 0.454254 0.461029 0.461029 0.461029 0.467651 0.467651 0.467651 0.474457 0.474457 0.474457 0.481201 0.481201 0.481201 0.488098 0.488098 0.488098 0.495087 0.495087 0.495087 0.502014 0.502014 0.502014 0.509186 0.509186 0.509186 0.516449 0.516449 0.516449 0.523651 0.523651 0.523651 0.531158 0.531158 0.531158 0.538727 0.538727 0.538727 0.546295 0.546295 0.546295 0.554169 0.554169 0.554169 0.562134 0.562134 0.562134 0.570068 0.570068 0.570068 0.578308 0.578308 0.578308 0.586517 0.586517 0.586517 0.595032 0.595032 0.595032 0.603607 0.603607 0.603607 0.612061 0.612061 0.612061 0.620758 0.620758 0.620758 0.406799 0.406799 0.406799 0.413727 0.413727 0.413727 0.420410 0.420410 0.420410 0.427246 0.427246 0.427246 0.433990 0.433990 0.433990 0.440582 0.440582 0.440582 0.447357 0.447357 0.447357 0.454102 0.454102 0.454102 0.460693 0.460693 0.460693 0.467468 0.467468 0.467468 0.474304 0.474304 0.474304 0.481018 0.481018 0.481018 0.487915 0.487915 0.487915 0.494781 0.494781 0.494781 0.501862 0.501862 0.501862 0.509003 0.509003 0.509003 0.516113 0.516113 0.516113 0.523468 0.523468 0.523468 0.530945 0.530945 0.530945 0.538361 0.538361 0.538361 0.546112 0.546112 0.546112 0.553955 0.553955 0.553955 0.561737 0.561737 0.561737 0.569885 0.569885 0.569885 0.577911 0.577911 0.577911 0.586304 0.586304 0.586304 0.594818 0.594818 0.594818 0.603180 0.603180 0.603180 0.611847 0.611847 0.611847 0.620544 0.620544 0.620544 0.629059 0.629059 0.629059 0.637817 0.637817 0.637817 0.420227 0.420227 0.420227 0.427063 0.427063 0.427063 0.433685 0.433685 0.433685 0.440430 0.440430 0.440430 0.447205 0.447205 0.447205 0.453766 0.453766 0.453766 0.460541 0.460541 0.460541 0.467316 0.467316 0.467316 0.473938 0.473938 0.473938 0.480835 0.480835 0.480835 0.487579 0.487579 0.487579 0.494568 0.494568 0.494568 0.501678 0.501678 0.501678 0.508636 0.508636 0.508636 0.515900 0.515900 0.515900 0.523285 0.523285 0.523285 0.530579 0.530579 0.530579 0.538177 0.538177 0.538177 0.545898 0.545898 0.545898 0.553558 0.553558 0.553558 0.561554 0.561554 0.561554 0.569672 0.569672 0.569672 0.577698 0.577698 0.577698 0.586090 0.586090 0.586090 0.594391 0.594391 0.594391 0.602966 0.602966 0.602966 0.611603 0.611603 0.611603 0.620117 0.620117 0.620117 0.628845 0.628845 0.628845 0.637604 0.637604 0.637604 0.646149 0.646149 0.646149 0.654877 0.654877 0.654877 0.433502 0.433502 0.433502 0.440277 0.440277 0.440277 0.446838 0.446838 0.446838 0.453613 0.453613 0.453613 0.460358 0.460358 0.460358 0.466949 0.466949 0.466949 0.473785 0.473785 0.473785 0.480682 0.480682 0.480682 0.487427 0.487427 0.487427 0.494415 0.494415 0.494415 0.501312 0.501312 0.501312 0.508453 0.508453 0.508453 0.515747 0.515747 0.515747 0.522888 0.522888 0.522888 0.530396 0.530396 0.530396 0.537964 0.537964 0.537964 0.545502 0.545502 0.545502 0.553375 0.553375 0.553375 0.561340 0.561340 0.561340 0.569244 0.569244 0.569244 0.577515 0.577515 0.577515 0.585663 0.585663 0.585663 0.594147 0.594147 0.594147 0.602722 0.602722 0.602722 0.611176 0.611176 0.611176 0.619873 0.619873 0.619873 0.628632 0.628632 0.628632 0.637146 0.637146 0.637146 0.645905 0.645905 0.645905 0.654633 0.654633 0.654633 0.663116 0.663116 0.663116 0.671753 0.671753 0.671753 0.446686 0.446686 0.446686 0.453430 0.453430 0.453430 0.460022 0.460022 0.460022 0.466797 0.466797 0.466797 0.473633 0.473633 0.473633 0.480316 0.480316 0.480316 0.487244 0.487244 0.487244 0.494049 0.494049 0.494049 0.501129 0.501129 0.501129 0.508301 0.508301 0.508301 0.515381 0.515381 0.515381 0.522736 0.522736 0.522736 0.530212 0.530212 0.530212 0.537598 0.537598 0.537598 0.545319 0.545319 0.545319 0.553162 0.553162 0.553162 0.560944 0.560944 0.560944 0.569061 0.569061 0.569061 0.577301 0.577301 0.577301 0.585449 0.585449 0.585449 0.593964 0.593964 0.593964 0.602325 0.602325 0.602325 0.610992 0.610992 0.610992 0.619690 0.619690 0.619690 0.628174 0.628174 0.628174 0.636963 0.636963 0.636963 0.645691 0.645691 0.645691 0.654236 0.654236 0.654236 0.662933 0.662933 0.662933 0.671539 0.671539 0.671539 0.679901 0.679901 0.679901 0.688354 0.688354 0.688354 0.459869 0.459869 0.459869 0.466614 0.466614 0.466614 0.473297 0.473297 0.473297 0.480164 0.480164 0.480164 0.487061 0.487061 0.487061 0.493896 0.493896 0.493896 0.500946 0.500946 0.500946 0.507935 0.507935 0.507935 0.515198 0.515198 0.515198 0.522552 0.522552 0.522552 0.529816 0.529816 0.529816 0.537415 0.537415 0.537415 0.545135 0.545135 0.545135 0.552734 0.552734 0.552734 0.560760 0.560760 0.560760 0.568817 0.568817 0.568817 0.576874 0.576874 0.576874 0.585266 0.585266 0.585266 0.593536 0.593536 0.593536 0.602081 0.602081 0.602081 0.610748 0.610748 0.610748 0.619232 0.619232 0.619232 0.627960 0.627960 0.627960 0.636719 0.636719 0.636719 0.645264 0.645264 0.645264 0.653992 0.653992 0.653992 0.662689 0.662689 0.662689 0.671112 0.671112 0.671112 0.679657 0.679657 0.679657 0.687958 0.687958 0.687958 0.696350 0.696350 0.696350 0.704590 0.704590 0.704590 0.473114 0.473114 0.473114 0.479950 0.479950 0.479950 0.486694 0.486694 0.486694 0.493683 0.493683 0.493683 0.500763 0.500763 0.500763 0.507751 0.507751 0.507751 0.514984 0.514984 0.514984 0.522186 0.522186 0.522186 0.529633 0.529633 0.529633 0.537201 0.537201 0.537201 0.544739 0.544739 0.544739 0.552582 0.552582 0.552582 0.560516 0.560516 0.560516 0.568451 0.568451 0.568451 0.576691 0.576691 0.576691 0.585052 0.585052 0.585052 0.593323 0.593323 0.593323 0.601898 0.601898 0.601898 0.610321 0.610321 0.610321 0.619049 0.619049 0.619049 0.627747 0.627747 0.627747 0.636322 0.636322 0.636322 0.645050 0.645050 0.645050 0.653778 0.653778 0.653778 0.662262 0.662262 0.662262 0.670898 0.670898 0.670898 0.679474 0.679474 0.679474 0.687714 0.687714 0.687714 0.696167 0.696167 0.696167 0.704193 0.704193 0.704193 0.712341 0.712341 0.712341 0.720337 0.720337 0.720337 0.486542 0.486542 0.486542 0.493530 0.493530 0.493530 0.500427 0.500427 0.500427 0.507568 0.507568 0.507568 0.514618 0.514618 0.514618 0.521973 0.521973 0.521973 0.529449 0.529449 0.529449 0.536835 0.536835 0.536835 0.544525 0.544525 0.544525 0.552368 0.552368 0.552368 0.560120 0.560120 0.560120 0.568237 0.568237 0.568237 0.576477 0.576477 0.576477 0.584656 0.584656 0.584656 0.593079 0.593079 0.593079 0.601440 0.601440 0.601440 0.610107 0.610107 0.610107 0.618805 0.618805 0.618805 0.627319 0.627319 0.627319 0.636078 0.636078 0.636078 0.644836 0.644836 0.644836 0.653320 0.653320 0.653320 0.662018 0.662018 0.662018 0.670685 0.670685 0.670685 0.679047 0.679047 0.679047 0.687531 0.687531 0.687531 0.695709 0.695709 0.695709 0.703979 0.703979 0.703979 0.712128 0.712128 0.712128 0.719940 0.719940 0.719940 0.727783 0.727783 0.727783 0.735504 0.735504 0.735504 0.500244 0.500244 0.500244 0.507416 0.507416 0.507416 0.514465 0.514465 0.514465 0.521820 0.521820 0.521820 0.529083 0.529083 0.529083 0.536621 0.536621 0.536621 0.544342 0.544342 0.544342 0.551971 0.551971 0.551971 0.559937 0.559937 0.559937 0.568024 0.568024 0.568024 0.576080 0.576080 0.576080 0.584412 0.584412 0.584412 0.592865 0.592865 0.592865 0.601257 0.601257 0.601257 0.609894 0.609894 0.609894 0.618378 0.618378 0.618378 0.627106 0.627106 0.627106 0.635864 0.635864 0.635864 0.644379 0.644379 0.644379 0.653137 0.653137 0.653137 0.661804 0.661804 0.661804 0.670227 0.670227 0.670227 0.678833 0.678833 0.678833 0.687317 0.687317 0.687317 0.695496 0.695496 0.695496 0.703796 0.703796 0.703796 0.711731 0.711731 0.711731 0.719788 0.719788 0.719788 0.727600 0.727600 0.727600 0.735107 0.735107 0.735107 0.742615 0.742615 0.742615 0.749969 0.749969 0.749969 0.050354 0.050354 0.050354 0.056122 0.056122 0.056122 0.060852 0.060852 0.060852 0.064941 0.064941 0.064941 0.068939 0.068939 0.068939 0.073303 0.073303 0.073303 0.077759 0.077759 0.077759 0.082581 0.082581 0.082581 0.087646 0.087646 0.087646 0.092804 0.092804 0.092804 0.098358 0.098358 0.098358 0.104218 0.104218 0.104218 0.110229 0.110229 0.110229 0.116699 0.116699 0.116699 0.123535 0.123535 0.123535 0.130615 0.130615 0.130615 0.138245 0.138245 0.138245 0.146332 0.146332 0.146332 0.154694 0.154694 0.154694 0.163788 0.163788 0.163788 0.173096 0.173096 0.173096 0.182983 0.182983 0.182983 0.193207 0.193207 0.193207 0.203308 0.203308 0.203308 0.213745 0.213745 0.213745 0.224091 0.224091 0.224091 0.234070 0.234070 0.234070 0.244110 0.244110 0.244110 0.253967 0.253967 0.253967 0.263428 0.263428 0.263428 0.272949 0.272949 0.272949 0.282043 0.282043 0.282043 0.060791 0.060791 0.060791 0.064728 0.064728 0.064728 0.068817 0.068817 0.068817 0.073212 0.073212 0.073212 0.077637 0.077637 0.077637 0.082458 0.082458 0.082458 0.087372 0.087372 0.087372 0.092682 0.092682 0.092682 0.098206 0.098206 0.098206 0.103882 0.103882 0.103882 0.110077 0.110077 0.110077 0.116516 0.116516 0.116516 0.123199 0.123199 0.123199 0.130432 0.130432 0.130432 0.138062 0.138062 0.138062 0.145935 0.145935 0.145935 0.154510 0.154510 0.154510 0.163330 0.163330 0.163330 0.172852 0.172852 0.172852 0.182739 0.182739 0.182739 0.192657 0.192657 0.192657 0.203033 0.203033 0.203033 0.213470 0.213470 0.213470 0.223572 0.223572 0.223572 0.233826 0.233826 0.233826 0.243866 0.243866 0.243866 0.253479 0.253479 0.253479 0.263184 0.263184 0.263184 0.272491 0.272491 0.272491 0.281830 0.281830 0.281830 0.290985 0.290985 0.290985 0.299713 0.299713 0.299713 0.068695 0.068695 0.068695 0.072968 0.072968 0.072968 0.077515 0.077515 0.077515 0.082184 0.082184 0.082184 0.087219 0.087219 0.087219 0.092529 0.092529 0.092529 0.097931 0.097931 0.097931 0.103760 0.103760 0.103760 0.109894 0.109894 0.109894 0.116211 0.116211 0.116211 0.123016 0.123016 0.123016 0.130219 0.130219 0.130219 0.137665 0.137665 0.137665 0.145721 0.145721 0.145721 0.154022 0.154022 0.154022 0.163116 0.163116 0.163116 0.172638 0.172638 0.172638 0.182251 0.182251 0.182251 0.192413 0.192413 0.192413 0.202789 0.202789 0.202789 0.212952 0.212952 0.212952 0.223328 0.223328 0.223328 0.233551 0.233551 0.233551 0.243378 0.243378 0.243378 0.253265 0.253265 0.253265 0.262970 0.262970 0.262970 0.272247 0.272247 0.272247 0.281586 0.281586 0.281586 0.290527 0.290527 0.290527 0.299500 0.299500 0.299500 0.308289 0.308289 0.308289 0.316681 0.316681 0.316681 0.077454 0.077454 0.077454 0.082092 0.082092 0.082092 0.087097 0.087097 0.087097 0.092255 0.092255 0.092255 0.097778 0.097778 0.097778 0.103638 0.103638 0.103638 0.109589 0.109589 0.109589 0.116058 0.116058 0.116058 0.122833 0.122833 0.122833 0.129852 0.129852 0.129852 0.137451 0.137451 0.137451 0.145538 0.145538 0.145538 0.153839 0.153839 0.153839 0.162872 0.162872 0.162872 0.172150 0.172150 0.172150 0.182007 0.182007 0.182007 0.192169 0.192169 0.192169 0.202271 0.202271 0.202271 0.212646 0.212646 0.212646 0.223053 0.223053 0.223053 0.233032 0.233032 0.233032 0.243103 0.243103 0.243103 0.253021 0.253021 0.253021 0.262482 0.262482 0.262482 0.272003 0.272003 0.272003 0.281097 0.281097 0.281097 0.290283 0.290283 0.290283 0.299255 0.299255 0.299255 0.307861 0.307861 0.307861 0.316467 0.316467 0.316467 0.324890 0.324890 0.324890 0.332977 0.332977 0.332977 0.086853 0.086853 0.086853 0.092133 0.092133 0.092133 0.097656 0.097656 0.097656 0.103333 0.103333 0.103333 0.109436 0.109436 0.109436 0.115875 0.115875 0.115875 0.122498 0.122498 0.122498 0.129700 0.129700 0.129700 0.137268 0.137268 0.137268 0.145111 0.145111 0.145111 0.153595 0.153595 0.153595 0.162415 0.162415 0.162415 0.171906 0.171906 0.171906 0.181732 0.181732 0.181732 0.191650 0.191650 0.191650 0.202026 0.202026 0.202026 0.212402 0.212402 0.212402 0.222534 0.222534 0.222534 0.232788 0.232788 0.232788 0.242828 0.242828 0.242828 0.252502 0.252502 0.252502 0.262238 0.262238 0.262238 0.271759 0.271759 0.271759 0.280884 0.280884 0.280884 0.290039 0.290039 0.290039 0.298828 0.298828 0.298828 0.307617 0.307617 0.307617 0.316254 0.316254 0.316254 0.324493 0.324493 0.324493 0.332764 0.332764 0.332764 0.340881 0.340881 0.340881 0.348633 0.348633 0.348633 0.097351 0.097351 0.097351 0.103149 0.103149 0.103149 0.109283 0.109283 0.109283 0.115540 0.115540 0.115540 0.122314 0.122314 0.122314 0.129486 0.129486 0.129486 0.136871 0.136871 0.136871 0.144897 0.144897 0.144897 0.153381 0.153381 0.153381 0.162170 0.162170 0.162170 0.171631 0.171631 0.171631 0.181244 0.181244 0.181244 0.191376 0.191376 0.191376 0.201721 0.201721 0.201721 0.211884 0.211884 0.211884 0.222260 0.222260 0.222260 0.232513 0.232513 0.232513 0.242371 0.242371 0.242371 0.252258 0.252258 0.252258 0.261993 0.261993 0.261993 0.271301 0.271301 0.271301 0.280670 0.280670 0.280670 0.289612 0.289612 0.289612 0.298584 0.298584 0.298584 0.307434 0.307434 0.307434 0.315826 0.315826 0.315826 0.324280 0.324280 0.324280 0.332581 0.332581 0.332581 0.340485 0.340485 0.340485 0.348419 0.348419 0.348419 0.356232 0.356232 0.356232 0.363708 0.363708 0.363708 0.108948 0.108948 0.108948 0.115387 0.115387 0.115387 0.122162 0.122162 0.122162 0.129120 0.129120 0.129120 0.136688 0.136688 0.136688 0.144684 0.144684 0.144684 0.152954 0.152954 0.152954 0.161926 0.161926 0.161926 0.171173 0.171173 0.171173 0.181000 0.181000 0.181000 0.191132 0.191132 0.191132 0.201233 0.201233 0.201233 0.211639 0.211639 0.211639 0.222015 0.222015 0.222015 0.232025 0.232025 0.232025 0.242126 0.242126 0.242126 0.252014 0.252014 0.252014 0.261505 0.261505 0.261505 0.271057 0.271057 0.271057 0.280426 0.280426 0.280426 0.289368 0.289368 0.289368 0.298370 0.298370 0.298370 0.306976 0.306976 0.306976 0.315613 0.315613 0.315613 0.324066 0.324066 0.324066 0.332153 0.332153 0.332153 0.340271 0.340271 0.340271 0.348236 0.348236 0.348236 0.355835 0.355835 0.355835 0.363495 0.363495 0.363495 0.371033 0.371033 0.371033 0.378265 0.378265 0.378265 0.121796 0.121796 0.121796 0.128937 0.128937 0.128937 0.136475 0.136475 0.136475 0.144257 0.144257 0.144257 0.152740 0.152740 0.152740 0.161713 0.161713 0.161713 0.170929 0.170929 0.170929 0.180725 0.180725 0.180725 0.190643 0.190643 0.190643 0.200958 0.200958 0.200958 0.211365 0.211365 0.211365 0.221527 0.221527 0.221527 0.231750 0.231750 0.231750 0.241882 0.241882 0.241882 0.251526 0.251526 0.251526 0.261261 0.261261 0.261261 0.270813 0.270813 0.270813 0.279968 0.279968 0.279968 0.289124 0.289124 0.289124 0.297943 0.297943 0.297943 0.306763 0.306763 0.306763 0.315399 0.315399 0.315399 0.323639 0.323639 0.323639 0.331940 0.331940 0.331940 0.340088 0.340088 0.340088 0.347870 0.347870 0.347870 0.355682 0.355682 0.355682 0.363312 0.363312 0.363312 0.370667 0.370667 0.370667 0.378082 0.378082 0.378082 0.385162 0.385162 0.385162 0.392365 0.392365 0.392365 0.136108 0.136108 0.136108 0.144073 0.144073 0.144073 0.152557 0.152557 0.152557 0.161255 0.161255 0.161255 0.170685 0.170685 0.170685 0.180237 0.180237 0.180237 0.190399 0.190399 0.190399 0.200714 0.200714 0.200714 0.210846 0.210846 0.210846 0.221252 0.221252 0.221252 0.231476 0.231476 0.231476 0.241364 0.241364 0.241364 0.251282 0.251282 0.251282 0.261047 0.261047 0.261047 0.270355 0.270355 0.270355 0.279724 0.279724 0.279724 0.288910 0.288910 0.288910 0.297699 0.297699 0.297699 0.306519 0.306519 0.306519 0.314972 0.314972 0.314972 0.323425 0.323425 0.323425 0.331757 0.331757 0.331757 0.339691 0.339691 0.339691 0.347656 0.347656 0.347656 0.355469 0.355469 0.355469 0.362946 0.362946 0.362946 0.370514 0.370514 0.370514 0.377899 0.377899 0.377899 0.385010 0.385010 0.385010 0.392181 0.392181 0.392181 0.399078 0.399078 0.399078 0.406097 0.406097 0.406097 0.152100 0.152100 0.152100 0.161011 0.161011 0.161011 0.170441 0.170441 0.170441 0.179993 0.179993 0.179993 0.190094 0.190094 0.190094 0.200165 0.200165 0.200165 0.210602 0.210602 0.210602 0.220978 0.220978 0.220978 0.231018 0.231018 0.231018 0.241119 0.241119 0.241119 0.251038 0.251038 0.251038 0.260559 0.260559 0.260559 0.270142 0.270142 0.270142 0.279510 0.279510 0.279510 0.288483 0.288483 0.288483 0.297485 0.297485 0.297485 0.306122 0.306122 0.306122 0.314728 0.314728 0.314728 0.323242 0.323242 0.323242 0.331329 0.331329 0.331329 0.339478 0.339478 0.339478 0.347443 0.347443 0.347443 0.355072 0.355072 0.355072 0.362762 0.362762 0.362762 0.370300 0.370300 0.370300 0.377502 0.377502 0.377502 0.384827 0.384827 0.384827 0.391846 0.391846 0.391846 0.398926 0.398926 0.398926 0.405914 0.405914 0.405914 0.412689 0.412689 0.412689 0.419556 0.419556 0.419556 0.169952 0.169952 0.169952 0.179749 0.179749 0.179749 0.189850 0.189850 0.189850 0.199921 0.199921 0.199921 0.210327 0.210327 0.210327 0.220459 0.220459 0.220459 0.230774 0.230774 0.230774 0.240875 0.240875 0.240875 0.250549 0.250549 0.250549 0.260315 0.260315 0.260315 0.269867 0.269867 0.269867 0.279053 0.279053 0.279053 0.288239 0.288239 0.288239 0.297028 0.297028 0.297028 0.305878 0.305878 0.305878 0.314545 0.314545 0.314545 0.322815 0.322815 0.322815 0.331116 0.331116 0.331116 0.339264 0.339264 0.339264 0.347046 0.347046 0.347046 0.354889 0.354889 0.354889 0.362579 0.362579 0.362579 0.369904 0.369904 0.369904 0.377350 0.377350 0.377350 0.384644 0.384644 0.384644 0.391663 0.391663 0.391663 0.398773 0.398773 0.398773 0.405579 0.405579 0.405579 0.412537 0.412537 0.412537 0.419403 0.419403 0.419403 0.426056 0.426056 0.426056 0.432831 0.432831 0.432831 0.189301 0.189301 0.189301 0.199677 0.199677 0.199677 0.209808 0.209808 0.209808 0.220215 0.220215 0.220215 0.230530 0.230530 0.230530 0.240356 0.240356 0.240356 0.250305 0.250305 0.250305 0.260040 0.260040 0.260040 0.269379 0.269379 0.269379 0.278809 0.278809 0.278809 0.288025 0.288025 0.288025 0.296783 0.296783 0.296783 0.305664 0.305664 0.305664 0.314117 0.314117 0.314117 0.322601 0.322601 0.322601 0.330902 0.330902 0.330902 0.338837 0.338837 0.338837 0.346863 0.346863 0.346863 0.354675 0.354675 0.354675 0.362183 0.362183 0.362183 0.369751 0.369751 0.369751 0.377136 0.377136 0.377136 0.384277 0.384277 0.384277 0.391449 0.391449 0.391449 0.398407 0.398407 0.398407 0.405426 0.405426 0.405426 0.412354 0.412354 0.412354 0.419037 0.419037 0.419037 0.425873 0.425873 0.425873 0.432648 0.432648 0.432648 0.439270 0.439270 0.439270 0.446014 0.446014 0.446014 0.209564 0.209564 0.209564 0.219940 0.219940 0.219940 0.230011 0.230011 0.230011 0.240112 0.240112 0.240112 0.250031 0.250031 0.250031 0.259583 0.259583 0.259583 0.269135 0.269135 0.269135 0.278564 0.278564 0.278564 0.287567 0.287567 0.287567 0.296600 0.296600 0.296600 0.305450 0.305450 0.305450 0.313904 0.313904 0.313904 0.322388 0.322388 0.322388 0.330505 0.330505 0.330505 0.338684 0.338684 0.338684 0.346649 0.346649 0.346649 0.354279 0.354279 0.354279 0.362000 0.362000 0.362000 0.369568 0.369568 0.369568 0.376770 0.376770 0.376770 0.384094 0.384094 0.384094 0.391296 0.391296 0.391296 0.398224 0.398224 0.398224 0.405243 0.405243 0.405243 0.412018 0.412018 0.412018 0.418884 0.418884 0.418884 0.425690 0.425690 0.425690 0.432312 0.432312 0.432312 0.439087 0.439087 0.439087 0.445831 0.445831 0.445831 0.452393 0.452393 0.452393 0.459167 0.459167 0.459167 0.229736 0.229736 0.229736 0.239868 0.239868 0.239868 0.249542 0.249542 0.249542 0.259338 0.259338 0.259338 0.268921 0.268921 0.268921 0.278107 0.278107 0.278107 0.287323 0.287323 0.287323 0.296387 0.296387 0.296387 0.304993 0.304993 0.304993 0.313690 0.313690 0.313690 0.321960 0.321960 0.321960 0.330322 0.330322 0.330322 0.338470 0.338470 0.338470 0.346252 0.346252 0.346252 0.354095 0.354095 0.354095 0.361816 0.361816 0.361816 0.369171 0.369171 0.369171 0.376587 0.376587 0.376587 0.383911 0.383911 0.383911 0.390961 0.390961 0.390961 0.398010 0.398010 0.398010 0.404907 0.404907 0.404907 0.411804 0.411804 0.411804 0.418732 0.418732 0.418732 0.425385 0.425385 0.425385 0.432159 0.432159 0.432159 0.438904 0.438904 0.438904 0.445496 0.445496 0.445496 0.452271 0.452271 0.452271 0.459015 0.459015 0.459015 0.465607 0.465607 0.465607 0.472412 0.472412 0.472412 0.249329 0.249329 0.249329 0.259094 0.259094 0.259094 0.268463 0.268463 0.268463 0.277863 0.277863 0.277863 0.287109 0.287109 0.287109 0.295898 0.295898 0.295898 0.304810 0.304810 0.304810 0.313446 0.313446 0.313446 0.321747 0.321747 0.321747 0.330109 0.330109 0.330109 0.338043 0.338043 0.338043 0.346069 0.346069 0.346069 0.353912 0.353912 0.353912 0.361420 0.361420 0.361420 0.368988 0.368988 0.368988 0.376434 0.376434 0.376434 0.383545 0.383545 0.383545 0.390747 0.390747 0.390747 0.397858 0.397858 0.397858 0.404724 0.404724 0.404724 0.411652 0.411652 0.411652 0.418365 0.418365 0.418365 0.425171 0.425171 0.425171 0.431976 0.431976 0.431976 0.438568 0.438568 0.438568 0.445343 0.445343 0.445343 0.452087 0.452087 0.452087 0.458649 0.458649 0.458649 0.465454 0.465454 0.465454 0.472260 0.472260 0.472260 0.478943 0.478943 0.478943 0.485870 0.485870 0.485870 0.268219 0.268219 0.268219 0.277618 0.277618 0.277618 0.286652 0.286652 0.286652 0.295715 0.295715 0.295715 0.304565 0.304565 0.304565 0.313049 0.313049 0.313049 0.321564 0.321564 0.321564 0.329712 0.329712 0.329712 0.337860 0.337860 0.337860 0.345886 0.345886 0.345886 0.353516 0.353516 0.353516 0.361267 0.361267 0.361267 0.368805 0.368805 0.368805 0.376068 0.376068 0.376068 0.383362 0.383362 0.383362 0.390594 0.390594 0.390594 0.397522 0.397522 0.397522 0.404510 0.404510 0.404510 0.411469 0.411469 0.411469 0.418182 0.418182 0.418182 0.425018 0.425018 0.425018 0.431641 0.431641 0.431641 0.438385 0.438385 0.438385 0.445160 0.445160 0.445160 0.451752 0.451752 0.451752 0.458496 0.458496 0.458496 0.465271 0.465271 0.465271 0.471893 0.471893 0.471893 0.478760 0.478760 0.478760 0.485504 0.485504 0.485504 0.492493 0.492493 0.492493 0.499512 0.499512 0.499512 0.286407 0.286407 0.286407 0.295471 0.295471 0.295471 0.304138 0.304138 0.304138 0.312836 0.312836 0.312836 0.321320 0.321320 0.321320 0.329468 0.329468 0.329468 0.337677 0.337677 0.337677 0.345673 0.345673 0.345673 0.353363 0.353363 0.353363 0.361053 0.361053 0.361053 0.368408 0.368408 0.368408 0.375854 0.375854 0.375854 0.383179 0.383179 0.383179 0.390228 0.390228 0.390228 0.397339 0.397339 0.397339 0.404358 0.404358 0.404358 0.411133 0.411133 0.411133 0.417999 0.417999 0.417999 0.424866 0.424866 0.424866 0.431488 0.431488 0.431488 0.438263 0.438263 0.438263 0.444824 0.444824 0.444824 0.451569 0.451569 0.451569 0.458313 0.458313 0.458313 0.464935 0.464935 0.464935 0.471741 0.471741 0.471741 0.478607 0.478607 0.478607 0.485321 0.485321 0.485321 0.492310 0.492310 0.492310 0.499329 0.499329 0.499329 0.506317 0.506317 0.506317 0.513519 0.513519 0.513519 0.303925 0.303925 0.303925 0.312622 0.312622 0.312622 0.320923 0.320923 0.320923 0.329285 0.329285 0.329285 0.337463 0.337463 0.337463 0.345306 0.345306 0.345306 0.353149 0.353149 0.353149 0.360657 0.360657 0.360657 0.368225 0.368225 0.368225 0.375702 0.375702 0.375702 0.382843 0.382843 0.382843 0.390045 0.390045 0.390045 0.397186 0.397186 0.397186 0.403992 0.403992 0.403992 0.410980 0.410980 0.410980 0.417847 0.417847 0.417847 0.424500 0.424500 0.424500 0.431305 0.431305 0.431305 0.437897 0.437897 0.437897 0.444641 0.444641 0.444641 0.451416 0.451416 0.451416 0.457977 0.457977 0.457977 0.464752 0.464752 0.464752 0.471588 0.471588 0.471588 0.478241 0.478241 0.478241 0.485138 0.485138 0.485138 0.492126 0.492126 0.492126 0.498993 0.498993 0.498993 0.506134 0.506134 0.506134 0.513184 0.513184 0.513184 0.520508 0.520508 0.520508 0.527954 0.527954 0.527954 0.320709 0.320709 0.320709 0.329071 0.329071 0.329071 0.337036 0.337036 0.337036 0.345062 0.345062 0.345062 0.352936 0.352936 0.352936 0.360474 0.360474 0.360474 0.368042 0.368042 0.368042 0.375336 0.375336 0.375336 0.382660 0.382660 0.382660 0.389862 0.389862 0.389862 0.396820 0.396820 0.396820 0.403839 0.403839 0.403839 0.410797 0.410797 0.410797 0.417480 0.417480 0.417480 0.424347 0.424347 0.424347 0.431122 0.431122 0.431122 0.437744 0.437744 0.437744 0.444489 0.444489 0.444489 0.451080 0.451080 0.451080 0.457825 0.457825 0.457825 0.464600 0.464600 0.464600 0.471222 0.471222 0.471222 0.478088 0.478088 0.478088 0.484985 0.484985 0.484985 0.491760 0.491760 0.491760 0.498840 0.498840 0.498840 0.505951 0.505951 0.505951 0.513000 0.513000 0.513000 0.520325 0.520325 0.520325 0.527557 0.527557 0.527557 0.535126 0.535126 0.535126 0.542786 0.542786 0.542786 0.336853 0.336853 0.336853 0.344879 0.344879 0.344879 0.352539 0.352539 0.352539 0.360260 0.360260 0.360260 0.367676 0.367676 0.367676 0.375122 0.375122 0.375122 0.382446 0.382446 0.382446 0.389526 0.389526 0.389526 0.396637 0.396637 0.396637 0.403656 0.403656 0.403656 0.410461 0.410461 0.410461 0.417328 0.417328 0.417328 0.424164 0.424164 0.424164 0.430817 0.430817 0.430817 0.437592 0.437592 0.437592 0.444153 0.444153 0.444153 0.450897 0.450897 0.450897 0.457642 0.457642 0.457642 0.464233 0.464233 0.464233 0.471069 0.471069 0.471069 0.477936 0.477936 0.477936 0.484650 0.484650 0.484650 0.491608 0.491608 0.491608 0.498627 0.498627 0.498627 0.505615 0.505615 0.505615 0.512817 0.512817 0.512817 0.519958 0.519958 0.519958 0.527374 0.527374 0.527374 0.534943 0.534943 0.534943 0.542389 0.542389 0.542389 0.550201 0.550201 0.550201 0.558136 0.558136 0.558136 0.352325 0.352325 0.352325 0.360077 0.360077 0.360077 0.367462 0.367462 0.367462 0.374969 0.374969 0.374969 0.382080 0.382080 0.382080 0.389313 0.389313 0.389313 0.396454 0.396454 0.396454 0.403320 0.403320 0.403320 0.410278 0.410278 0.410278 0.417175 0.417175 0.417175 0.423828 0.423828 0.423828 0.430603 0.430603 0.430603 0.437378 0.437378 0.437378 0.443970 0.443970 0.443970 0.450714 0.450714 0.450714 0.457306 0.457306 0.457306 0.464081 0.464081 0.464081 0.470886 0.470886 0.470886 0.477570 0.477570 0.477570 0.484467 0.484467 0.484467 0.491425 0.491425 0.491425 0.498291 0.498291 0.498291 0.505432 0.505432 0.505432 0.512634 0.512634 0.512634 0.519775 0.519775 0.519775 0.527191 0.527191 0.527191 0.534546 0.534546 0.534546 0.542206 0.542206 0.542206 0.550018 0.550018 0.550018 0.557709 0.557709 0.557709 0.565765 0.565765 0.565765 0.573975 0.573975 0.573975 0.367310 0.367310 0.367310 0.374573 0.374573 0.374573 0.381927 0.381927 0.381927 0.389160 0.389160 0.389160 0.396088 0.396088 0.396088 0.403168 0.403168 0.403168 0.410095 0.410095 0.410095 0.416840 0.416840 0.416840 0.423676 0.423676 0.423676 0.430450 0.430450 0.430450 0.437073 0.437073 0.437073 0.443817 0.443817 0.443817 0.450378 0.450378 0.450378 0.457123 0.457123 0.457123 0.463928 0.463928 0.463928 0.470551 0.470551 0.470551 0.477386 0.477386 0.477386 0.484283 0.484283 0.484283 0.491089 0.491089 0.491089 0.498077 0.498077 0.498077 0.505219 0.505219 0.505219 0.512268 0.512268 0.512268 0.519592 0.519592 0.519592 0.526825 0.526825 0.526825 0.534363 0.534363 0.534363 0.542023 0.542023 0.542023 0.549622 0.549622 0.549622 0.557526 0.557526 0.557526 0.565582 0.565582 0.565582 0.573578 0.573578 0.573578 0.581909 0.581909 0.581909 0.590332 0.590332 0.590332 0.381744 0.381744 0.381744 0.388794 0.388794 0.388794 0.395935 0.395935 0.395935 0.402954 0.402954 0.402954 0.409760 0.409760 0.409760 0.416656 0.416656 0.416656 0.423462 0.423462 0.423462 0.430115 0.430115 0.430115 0.436890 0.436890 0.436890 0.443665 0.443665 0.443665 0.450226 0.450226 0.450226 0.456970 0.456970 0.456970 0.463562 0.463562 0.463562 0.470367 0.470367 0.470367 0.477203 0.477203 0.477203 0.483948 0.483948 0.483948 0.490906 0.490906 0.490906 0.497955 0.497955 0.497955 0.504883 0.504883 0.504883 0.512085 0.512085 0.512085 0.519379 0.519379 0.519379 0.526642 0.526642 0.526642 0.534180 0.534180 0.534180 0.541656 0.541656 0.541656 0.549408 0.549408 0.549408 0.557343 0.557343 0.557343 0.565186 0.565186 0.565186 0.573364 0.573364 0.573364 0.581696 0.581696 0.581696 0.589905 0.589905 0.589905 0.598450 0.598450 0.598450 0.607056 0.607056 0.607056 0.395752 0.395752 0.395752 0.402618 0.402618 0.402618 0.409576 0.409576 0.409576 0.416473 0.416473 0.416473 0.423126 0.423126 0.423126 0.429932 0.429932 0.429932 0.436707 0.436707 0.436707 0.443298 0.443298 0.443298 0.450073 0.450073 0.450073 0.456635 0.456635 0.456635 0.463409 0.463409 0.463409 0.470184 0.470184 0.470184 0.476868 0.476868 0.476868 0.483734 0.483734 0.483734 0.490692 0.490692 0.490692 0.497589 0.497589 0.497589 0.504700 0.504700 0.504700 0.511902 0.511902 0.511902 0.519043 0.519043 0.519043 0.526428 0.526428 0.526428 0.533966 0.533966 0.533966 0.541443 0.541443 0.541443 0.549225 0.549225 0.549225 0.556946 0.556946 0.556946 0.564972 0.564972 0.564972 0.573151 0.573151 0.573151 0.581268 0.581268 0.581268 0.589691 0.589691 0.589691 0.598236 0.598236 0.598236 0.606628 0.606628 0.606628 0.615295 0.615295 0.615295 0.624023 0.624023 0.624023 0.409424 0.409424 0.409424 0.416138 0.416138 0.416138 0.422974 0.422974 0.422974 0.429779 0.429779 0.429779 0.436371 0.436371 0.436371 0.443146 0.443146 0.443146 0.449890 0.449890 0.449890 0.456451 0.456451 0.456451 0.463226 0.463226 0.463226 0.469879 0.469879 0.469879 0.476685 0.476685 0.476685 0.483612 0.483612 0.483612 0.490387 0.490387 0.490387 0.497406 0.497406 0.497406 0.504517 0.504517 0.504517 0.511536 0.511536 0.511536 0.518860 0.518860 0.518860 0.526245 0.526245 0.526245 0.533600 0.533600 0.533600 0.541260 0.541260 0.541260 0.548828 0.548828 0.548828 0.556732 0.556732 0.556732 0.564758 0.564758 0.564758 0.572754 0.572754 0.572754 0.581024 0.581024 0.581024 0.589478 0.589478 0.589478 0.597809 0.597809 0.597809 0.606445 0.606445 0.606445 0.615112 0.615112 0.615112 0.623596 0.623596 0.623596 0.632355 0.632355 0.632355 0.640869 0.640869 0.640869 0.422791 0.422791 0.422791 0.429443 0.429443 0.429443 0.436218 0.436218 0.436218 0.442963 0.442963 0.442963 0.449554 0.449554 0.449554 0.456299 0.456299 0.456299 0.462921 0.462921 0.462921 0.469696 0.469696 0.469696 0.476532 0.476532 0.476532 0.483246 0.483246 0.483246 0.490173 0.490173 0.490173 0.497223 0.497223 0.497223 0.504181 0.504181 0.504181 0.511353 0.511353 0.511353 0.518677 0.518677 0.518677 0.525879 0.525879 0.525879 0.533417 0.533417 0.533417 0.541046 0.541046 0.541046 0.548645 0.548645 0.548645 0.556519 0.556519 0.556519 0.564362 0.564362 0.564362 0.572540 0.572540 0.572540 0.580841 0.580841 0.580841 0.589081 0.589081 0.589081 0.597595 0.597595 0.597595 0.606201 0.606201 0.606201 0.614655 0.614655 0.614655 0.623383 0.623383 0.623383 0.632141 0.632141 0.632141 0.640656 0.640656 0.640656 0.649414 0.649414 0.649414 0.657898 0.657898 0.657898 0.436035 0.436035 0.436035 0.442627 0.442627 0.442627 0.449371 0.449371 0.449371 0.456146 0.456146 0.456146 0.462708 0.462708 0.462708 0.469543 0.469543 0.469543 0.476196 0.476196 0.476196 0.483063 0.483063 0.483063 0.490051 0.490051 0.490051 0.496887 0.496887 0.496887 0.503967 0.503967 0.503967 0.511200 0.511200 0.511200 0.518280 0.518280 0.518280 0.525696 0.525696 0.525696 0.533234 0.533234 0.533234 0.540680 0.540680 0.540680 0.548431 0.548431 0.548431 0.556152 0.556152 0.556152 0.564178 0.564178 0.564178 0.572327 0.572327 0.572327 0.580414 0.580414 0.580414 0.588837 0.588837 0.588837 0.597382 0.597382 0.597382 0.605774 0.605774 0.605774 0.614441 0.614441 0.614441 0.623169 0.623169 0.623169 0.631683 0.631683 0.631683 0.640472 0.640472 0.640472 0.648987 0.648987 0.648987 0.657684 0.657684 0.657684 0.666351 0.666351 0.666351 0.674744 0.674744 0.674744 0.449188 0.449188 0.449188 0.455780 0.455780 0.455780 0.462555 0.462555 0.462555 0.469177 0.469177 0.469177 0.476013 0.476013 0.476013 0.482910 0.482910 0.482910 0.489685 0.489685 0.489685 0.496704 0.496704 0.496704 0.503784 0.503784 0.503784 0.510803 0.510803 0.510803 0.518127 0.518127 0.518127 0.525513 0.525513 0.525513 0.532867 0.532867 0.532867 0.540466 0.540466 0.540466 0.548065 0.548065 0.548065 0.555939 0.555939 0.555939 0.563995 0.563995 0.563995 0.571899 0.571899 0.571899 0.580231 0.580231 0.580231 0.588623 0.588623 0.588623 0.596954 0.596954 0.596954 0.605560 0.605560 0.605560 0.614258 0.614258 0.614258 0.622742 0.622742 0.622742 0.631500 0.631500 0.631500 0.640228 0.640228 0.640228 0.648773 0.648773 0.648773 0.657471 0.657471 0.657471 0.665924 0.665924 0.665924 0.674561 0.674561 0.674561 0.683075 0.683075 0.683075 0.691315 0.691315 0.691315 0.462402 0.462402 0.462402 0.469025 0.469025 0.469025 0.475861 0.475861 0.475861 0.482544 0.482544 0.482544 0.489502 0.489502 0.489502 0.496521 0.496521 0.496521 0.503418 0.503418 0.503418 0.510651 0.510651 0.510651 0.517944 0.517944 0.517944 0.525146 0.525146 0.525146 0.532654 0.532654 0.532654 0.540283 0.540283 0.540283 0.547821 0.547821 0.547821 0.555725 0.555725 0.555725 0.563538 0.563538 0.563538 0.571686 0.571686 0.571686 0.580017 0.580017 0.580017 0.588196 0.588196 0.588196 0.596741 0.596741 0.596741 0.605347 0.605347 0.605347 0.613770 0.613770 0.613770 0.622528 0.622528 0.622528 0.631256 0.631256 0.631256 0.639801 0.639801 0.639801 0.648529 0.648529 0.648529 0.657074 0.657074 0.657074 0.665680 0.665680 0.665680 0.674347 0.674347 0.674347 0.682648 0.682648 0.682648 0.691101 0.691101 0.691101 0.699432 0.699432 0.699432 0.707458 0.707458 0.707458 0.475494 0.475494 0.475494 0.482391 0.482391 0.482391 0.489349 0.489349 0.489349 0.496155 0.496155 0.496155 0.503265 0.503265 0.503265 0.510437 0.510437 0.510437 0.517548 0.517548 0.517548 0.524963 0.524963 0.524963 0.532471 0.532471 0.532471 0.539886 0.539886 0.539886 0.547668 0.547668 0.547668 0.555328 0.555328 0.555328 0.563354 0.563354 0.563354 0.571503 0.571503 0.571503 0.579590 0.579590 0.579590 0.588013 0.588013 0.588013 0.596527 0.596527 0.596527 0.604919 0.604919 0.604919 0.613586 0.613586 0.613586 0.622284 0.622284 0.622284 0.630829 0.630829 0.630829 0.639557 0.639557 0.639557 0.648315 0.648315 0.648315 0.656830 0.656830 0.656830 0.665497 0.665497 0.665497 0.673889 0.673889 0.673889 0.682465 0.682465 0.682465 0.690887 0.690887 0.690887 0.699036 0.699036 0.699036 0.707275 0.707275 0.707275 0.715363 0.715363 0.715363 0.723145 0.723145 0.723145 0.488983 0.488983 0.488983 0.496002 0.496002 0.496002 0.503082 0.503082 0.503082 0.510101 0.510101 0.510101 0.517395 0.517395 0.517395 0.524780 0.524780 0.524780 0.532104 0.532104 0.532104 0.539734 0.539734 0.539734 0.547455 0.547455 0.547455 0.555115 0.555115 0.555115 0.563141 0.563141 0.563141 0.571106 0.571106 0.571106 0.579376 0.579376 0.579376 0.587799 0.587799 0.587799 0.596100 0.596100 0.596100 0.604675 0.604675 0.604675 0.613342 0.613342 0.613342 0.621857 0.621857 0.621857 0.630615 0.630615 0.630615 0.639374 0.639374 0.639374 0.647888 0.647888 0.647888 0.656616 0.656616 0.656616 0.665039 0.665039 0.665039 0.673706 0.673706 0.673706 0.682251 0.682251 0.682251 0.690491 0.690491 0.690491 0.698822 0.698822 0.698822 0.707062 0.707062 0.707062 0.714966 0.714966 0.714966 0.722931 0.722931 0.722931 0.730682 0.730682 0.730682 0.738129 0.738129 0.738129 0.502747 0.502747 0.502747 0.509888 0.509888 0.509888 0.517212 0.517212 0.517212 0.524414 0.524414 0.524414 0.531891 0.531891 0.531891 0.539520 0.539520 0.539520 0.547058 0.547058 0.547058 0.554932 0.554932 0.554932 0.562775 0.562775 0.562775 0.570892 0.570892 0.570892 0.579193 0.579193 0.579193 0.587372 0.587372 0.587372 0.595856 0.595856 0.595856 0.604462 0.604462 0.604462 0.612946 0.612946 0.612946 0.621643 0.621643 0.621643 0.630371 0.630371 0.630371 0.638916 0.638916 0.638916 0.647675 0.647675 0.647675 0.656403 0.656403 0.656403 0.664856 0.664856 0.664856 0.673462 0.673462 0.673462 0.681793 0.681793 0.681793 0.690277 0.690277 0.690277 0.698608 0.698608 0.698608 0.706665 0.706665 0.706665 0.714783 0.714783 0.714783 0.722717 0.722717 0.722717 0.730316 0.730316 0.730316 0.737946 0.737946 0.737946 0.745392 0.745392 0.745392 0.752472 0.752472 0.752472 0.052338 0.052338 0.052338 0.058594 0.058594 0.058594 0.062256 0.062256 0.062256 0.066284 0.066284 0.066284 0.070618 0.070618 0.070618 0.074890 0.074890 0.074890 0.079559 0.079559 0.079559 0.084473 0.084473 0.084473 0.089447 0.089447 0.089447 0.094818 0.094818 0.094818 0.100525 0.100525 0.100525 0.106323 0.106323 0.106323 0.112610 0.112610 0.112610 0.119080 0.119080 0.119080 0.126068 0.126068 0.126068 0.133423 0.133423 0.133423 0.141052 0.141052 0.141052 0.149323 0.149323 0.149323 0.158081 0.158081 0.158081 0.167114 0.167114 0.167114 0.176788 0.176788 0.176788 0.186829 0.186829 0.186829 0.196808 0.196808 0.196808 0.207214 0.207214 0.207214 0.217346 0.217346 0.217346 0.227692 0.227692 0.227692 0.237854 0.237854 0.237854 0.247589 0.247589 0.247589 0.257385 0.257385 0.257385 0.267059 0.267059 0.267059 0.276245 0.276245 0.276245 0.285492 0.285492 0.285492 0.062134 0.062134 0.062134 0.066223 0.066223 0.066223 0.070374 0.070374 0.070374 0.074768 0.074768 0.074768 0.079468 0.079468 0.079468 0.084229 0.084229 0.084229 0.089325 0.089325 0.089325 0.094696 0.094696 0.094696 0.100220 0.100220 0.100220 0.106171 0.106171 0.106171 0.112427 0.112427 0.112427 0.118896 0.118896 0.118896 0.125854 0.125854 0.125854 0.133057 0.133057 0.133057 0.140839 0.140839 0.140839 0.149078 0.149078 0.149078 0.157623 0.157623 0.157623 0.166840 0.166840 0.166840 0.176544 0.176544 0.176544 0.186310 0.186310 0.186310 0.196564 0.196564 0.196564 0.206940 0.206940 0.206940 0.217102 0.217102 0.217102 0.227448 0.227448 0.227448 0.237335 0.237335 0.237335 0.247314 0.247314 0.247314 0.257172 0.257172 0.257172 0.266541 0.266541 0.266541 0.276001 0.276001 0.276001 0.285248 0.285248 0.285248 0.294128 0.294128 0.294128 0.303009 0.303009 0.303009 0.070251 0.070251 0.070251 0.074646 0.074646 0.074646 0.079193 0.079193 0.079193 0.084106 0.084106 0.084106 0.089203 0.089203 0.089203 0.094421 0.094421 0.094421 0.100098 0.100098 0.100098 0.106018 0.106018 0.106018 0.112122 0.112122 0.112122 0.118713 0.118713 0.118713 0.125488 0.125488 0.125488 0.132843 0.132843 0.132843 0.140625 0.140625 0.140625 0.148682 0.148682 0.148682 0.157410 0.157410 0.157410 0.166595 0.166595 0.166595 0.176056 0.176056 0.176056 0.186035 0.186035 0.186035 0.196289 0.196289 0.196289 0.206421 0.206421 0.206421 0.216827 0.216827 0.216827 0.226929 0.226929 0.226929 0.237091 0.237091 0.237091 0.247070 0.247070 0.247070 0.256653 0.256653 0.256653 0.266296 0.266296 0.266296 0.275757 0.275757 0.275757 0.284821 0.284821 0.284821 0.293915 0.293915 0.293915 0.302795 0.302795 0.302795 0.311310 0.311310 0.311310 0.319855 0.319855 0.319855 0.079041 0.079041 0.079041 0.083954 0.083954 0.083954 0.088928 0.088928 0.088928 0.094299 0.094299 0.094299 0.099915 0.099915 0.099915 0.105713 0.105713 0.105713 0.111938 0.111938 0.111938 0.118530 0.118530 0.118530 0.125305 0.125305 0.125305 0.132660 0.132660 0.132660 0.140228 0.140228 0.140228 0.148438 0.148438 0.148438 0.157166 0.157166 0.157166 0.166138 0.166138 0.166138 0.175781 0.175781 0.175781 0.185791 0.185791 0.185791 0.195801 0.195801 0.195801 0.206177 0.206177 0.206177 0.216583 0.216583 0.216583 0.226685 0.226685 0.226685 0.236847 0.236847 0.236847 0.246582 0.246582 0.246582 0.256409 0.256409 0.256409 0.266052 0.266052 0.266052 0.275299 0.275299 0.275299 0.284576 0.284576 0.284576 0.293671 0.293671 0.293671 0.302368 0.302368 0.302368 0.311066 0.311066 0.311066 0.319641 0.319641 0.319641 0.327789 0.327789 0.327789 0.336029 0.336029 0.336029 0.088806 0.088806 0.088806 0.094147 0.094147 0.094147 0.099640 0.099640 0.099640 0.105560 0.105560 0.105560 0.111786 0.111786 0.111786 0.118225 0.118225 0.118225 0.125153 0.125153 0.125153 0.132294 0.132294 0.132294 0.140045 0.140045 0.140045 0.148285 0.148285 0.148285 0.156708 0.156708 0.156708 0.165894 0.165894 0.165894 0.175537 0.175537 0.175537 0.185272 0.185272 0.185272 0.195526 0.195526 0.195526 0.205902 0.205902 0.205902 0.216064 0.216064 0.216064 0.226410 0.226410 0.226410 0.236572 0.236572 0.236572 0.246338 0.246338 0.246338 0.256165 0.256165 0.256165 0.265594 0.265594 0.265594 0.275085 0.275085 0.275085 0.284332 0.284332 0.284332 0.293213 0.293213 0.293213 0.302155 0.302155 0.302155 0.310913 0.310913 0.310913 0.319214 0.319214 0.319214 0.327637 0.327637 0.327637 0.335632 0.335632 0.335632 0.343689 0.343689 0.343689 0.351562 0.351562 0.351562 0.099518 0.099518 0.099518 0.105377 0.105377 0.105377 0.111481 0.111481 0.111481 0.118042 0.118042 0.118042 0.124969 0.124969 0.124969 0.132111 0.132111 0.132111 0.139832 0.139832 0.139832 0.147827 0.147827 0.147827 0.156494 0.156494 0.156494 0.165680 0.165680 0.165680 0.175049 0.175049 0.175049 0.185028 0.185028 0.185028 0.195251 0.195251 0.195251 0.205383 0.205383 0.205383 0.215790 0.215790 0.215790 0.226166 0.226166 0.226166 0.236053 0.236053 0.236053 0.246094 0.246094 0.246094 0.255707 0.255707 0.255707 0.265350 0.265350 0.265350 0.274841 0.274841 0.274841 0.283905 0.283905 0.283905 0.292999 0.292999 0.292999 0.301941 0.301941 0.301941 0.310455 0.310455 0.310455 0.319000 0.319000 0.319000 0.327393 0.327393 0.327393 0.335419 0.335419 0.335419 0.343506 0.343506 0.343506 0.351166 0.351166 0.351166 0.358948 0.358948 0.358948 0.366547 0.366547 0.366547 0.111328 0.111328 0.111328 0.117859 0.117859 0.117859 0.124634 0.124634 0.124634 0.131927 0.131927 0.131927 0.139435 0.139435 0.139435 0.147614 0.147614 0.147614 0.156281 0.156281 0.156281 0.165222 0.165222 0.165222 0.174805 0.174805 0.174805 0.184753 0.184753 0.184753 0.194763 0.194763 0.194763 0.205109 0.205109 0.205109 0.215546 0.215546 0.215546 0.225647 0.225647 0.225647 0.235840 0.235840 0.235840 0.245636 0.245636 0.245636 0.255463 0.255463 0.255463 0.265106 0.265106 0.265106 0.274323 0.274323 0.274323 0.283661 0.283661 0.283661 0.292786 0.292786 0.292786 0.301483 0.301483 0.301483 0.310242 0.310242 0.310242 0.318817 0.318817 0.318817 0.326996 0.326996 0.326996 0.335205 0.335205 0.335205 0.343262 0.343262 0.343262 0.350983 0.350983 0.350983 0.358734 0.358734 0.358734 0.366180 0.366180 0.366180 0.373657 0.373657 0.373657 0.381012 0.381012 0.381012 0.124420 0.124420 0.124420 0.131714 0.131714 0.131714 0.139221 0.139221 0.139221 0.147400 0.147400 0.147400 0.155792 0.155792 0.155792 0.164978 0.164978 0.164978 0.174591 0.174591 0.174591 0.184265 0.184265 0.184265 0.194489 0.194489 0.194489 0.204865 0.204865 0.204865 0.215027 0.215027 0.215027 0.225372 0.225372 0.225372 0.235596 0.235596 0.235596 0.245361 0.245361 0.245361 0.255219 0.255219 0.255219 0.264618 0.264618 0.264618 0.274109 0.274109 0.274109 0.283417 0.283417 0.283417 0.292328 0.292328 0.292328 0.301270 0.301270 0.301270 0.310028 0.310028 0.310028 0.318390 0.318390 0.318390 0.326782 0.326782 0.326782 0.335022 0.335022 0.335022 0.342865 0.342865 0.342865 0.350800 0.350800 0.350800 0.358368 0.358368 0.358368 0.365967 0.365967 0.365967 0.373474 0.373474 0.373474 0.380615 0.380615 0.380615 0.387878 0.387878 0.387878 0.395020 0.395020 0.395020 0.139038 0.139038 0.139038 0.146973 0.146973 0.146973 0.155609 0.155609 0.155609 0.164734 0.164734 0.164734 0.174072 0.174072 0.174072 0.184021 0.184021 0.184021 0.194244 0.194244 0.194244 0.204346 0.204346 0.204346 0.214752 0.214752 0.214752 0.225128 0.225128 0.225128 0.235077 0.235077 0.235077 0.245117 0.245117 0.245117 0.254730 0.254730 0.254730 0.264404 0.264404 0.264404 0.273895 0.273895 0.273895 0.282990 0.282990 0.282990 0.292114 0.292114 0.292114 0.301056 0.301056 0.301056 0.309601 0.309601 0.309601 0.318176 0.318176 0.318176 0.326599 0.326599 0.326599 0.334625 0.334625 0.334625 0.342682 0.342682 0.342682 0.350616 0.350616 0.350616 0.358154 0.358154 0.358154 0.365784 0.365784 0.365784 0.373077 0.373077 0.373077 0.380463 0.380463 0.380463 0.387695 0.387695 0.387695 0.394684 0.394684 0.394684 0.401764 0.401764 0.401764 0.408722 0.408722 0.408722 0.155396 0.155396 0.155396 0.164246 0.164246 0.164246 0.173828 0.173828 0.173828 0.183777 0.183777 0.183777 0.193695 0.193695 0.193695 0.204102 0.204102 0.204102 0.214508 0.214508 0.214508 0.224609 0.224609 0.224609 0.234833 0.234833 0.234833 0.244843 0.244843 0.244843 0.254456 0.254456 0.254456 0.264160 0.264160 0.264160 0.273407 0.273407 0.273407 0.282745 0.282745 0.282745 0.291870 0.291870 0.291870 0.300598 0.300598 0.300598 0.309357 0.309357 0.309357 0.317932 0.317932 0.317932 0.326172 0.326172 0.326172 0.334412 0.334412 0.334412 0.342468 0.342468 0.342468 0.350189 0.350189 0.350189 0.357971 0.357971 0.357971 0.365417 0.365417 0.365417 0.372894 0.372894 0.372894 0.380280 0.380280 0.380280 0.387360 0.387360 0.387360 0.394501 0.394501 0.394501 0.401550 0.401550 0.401550 0.408386 0.408386 0.408386 0.415283 0.415283 0.415283 0.422119 0.422119 0.422119 0.173584 0.173584 0.173584 0.183289 0.183289 0.183289 0.193451 0.193451 0.193451 0.203827 0.203827 0.203827 0.213989 0.213989 0.213989 0.224335 0.224335 0.224335 0.234558 0.234558 0.234558 0.244354 0.244354 0.244354 0.254211 0.254211 0.254211 0.263672 0.263672 0.263672 0.273193 0.273193 0.273193 0.282501 0.282501 0.282501 0.291412 0.291412 0.291412 0.300385 0.300385 0.300385 0.309143 0.309143 0.309143 0.317535 0.317535 0.317535 0.325958 0.325958 0.325958 0.334167 0.334167 0.334167 0.342072 0.342072 0.342072 0.349976 0.349976 0.349976 0.357788 0.357788 0.357788 0.365204 0.365204 0.365204 0.372711 0.372711 0.372711 0.379883 0.379883 0.379883 0.387177 0.387177 0.387177 0.394318 0.394318 0.394318 0.401215 0.401215 0.401215 0.408203 0.408203 0.408203 0.415100 0.415100 0.415100 0.421753 0.421753 0.421753 0.428589 0.428589 0.428589 0.435364 0.435364 0.435364 0.193207 0.193207 0.193207 0.203308 0.203308 0.203308 0.213745 0.213745 0.213745 0.224091 0.224091 0.224091 0.234070 0.234070 0.234070 0.244110 0.244110 0.244110 0.253967 0.253967 0.253967 0.263428 0.263428 0.263428 0.272949 0.272949 0.272949 0.282043 0.282043 0.282043 0.291199 0.291199 0.291199 0.300140 0.300140 0.300140 0.308716 0.308716 0.308716 0.317291 0.317291 0.317291 0.325745 0.325745 0.325745 0.333801 0.333801 0.333801 0.341858 0.341858 0.341858 0.349823 0.349823 0.349823 0.357391 0.357391 0.357391 0.365051 0.365051 0.365051 0.372314 0.372314 0.372314 0.379700 0.379700 0.379700 0.386993 0.386993 0.386993 0.393982 0.393982 0.393982 0.401031 0.401031 0.401031 0.408020 0.408020 0.408020 0.414764 0.414764 0.414764 0.421631 0.421631 0.421631 0.428406 0.428406 0.428406 0.435028 0.435028 0.435028 0.441772 0.441772 0.441772 0.448364 0.448364 0.448364 0.213470 0.213470 0.213470 0.223572 0.223572 0.223572 0.233826 0.233826 0.233826 0.243866 0.243866 0.243866 0.253479 0.253479 0.253479 0.263184 0.263184 0.263184 0.272491 0.272491 0.272491 0.281830 0.281830 0.281830 0.290985 0.290985 0.290985 0.299713 0.299713 0.299713 0.308502 0.308502 0.308502 0.317108 0.317108 0.317108 0.325317 0.325317 0.325317 0.333588 0.333588 0.333588 0.341675 0.341675 0.341675 0.349396 0.349396 0.349396 0.357208 0.357208 0.357208 0.364838 0.364838 0.364838 0.372192 0.372192 0.372192 0.379547 0.379547 0.379547 0.386597 0.386597 0.386597 0.393768 0.393768 0.393768 0.400848 0.400848 0.400848 0.407684 0.407684 0.407684 0.414612 0.414612 0.414612 0.421448 0.421448 0.421448 0.428101 0.428101 0.428101 0.434875 0.434875 0.434875 0.441620 0.441620 0.441620 0.448212 0.448212 0.448212 0.454956 0.454956 0.454956 0.461548 0.461548 0.461548 0.233551 0.233551 0.233551 0.243378 0.243378 0.243378 0.253265 0.253265 0.253265 0.262970 0.262970 0.262970 0.272247 0.272247 0.272247 0.281586 0.281586 0.281586 0.290527 0.290527 0.290527 0.299500 0.299500 0.299500 0.308289 0.308289 0.308289 0.316681 0.316681 0.316681 0.325104 0.325104 0.325104 0.333374 0.333374 0.333374 0.341278 0.341278 0.341278 0.349213 0.349213 0.349213 0.356995 0.356995 0.356995 0.364471 0.364471 0.364471 0.371979 0.371979 0.371979 0.379181 0.379181 0.379181 0.386444 0.386444 0.386444 0.393616 0.393616 0.393616 0.400482 0.400482 0.400482 0.407501 0.407501 0.407501 0.414429 0.414429 0.414429 0.421112 0.421112 0.421112 0.427887 0.427887 0.427887 0.434692 0.434692 0.434692 0.441284 0.441284 0.441284 0.448029 0.448029 0.448029 0.454590 0.454590 0.454590 0.461365 0.461365 0.461365 0.468140 0.468140 0.468140 0.474823 0.474823 0.474823 0.253021 0.253021 0.253021 0.262482 0.262482 0.262482 0.272003 0.272003 0.272003 0.281342 0.281342 0.281342 0.290283 0.290283 0.290283 0.299255 0.299255 0.299255 0.307861 0.307861 0.307861 0.316467 0.316467 0.316467 0.324890 0.324890 0.324890 0.332977 0.332977 0.332977 0.341064 0.341064 0.341064 0.349030 0.349030 0.349030 0.356598 0.356598 0.356598 0.364258 0.364258 0.364258 0.371613 0.371613 0.371613 0.378967 0.378967 0.378967 0.386261 0.386261 0.386261 0.393250 0.393250 0.393250 0.400360 0.400360 0.400360 0.407318 0.407318 0.407318 0.414062 0.414062 0.414062 0.420929 0.420929 0.420929 0.427734 0.427734 0.427734 0.434357 0.434357 0.434357 0.441101 0.441101 0.441101 0.447845 0.447845 0.447845 0.454437 0.454437 0.454437 0.461212 0.461212 0.461212 0.467834 0.467834 0.467834 0.474640 0.474640 0.474640 0.481506 0.481506 0.481506 0.488281 0.488281 0.488281 0.271759 0.271759 0.271759 0.280884 0.280884 0.280884 0.290039 0.290039 0.290039 0.298828 0.298828 0.298828 0.307617 0.307617 0.307617 0.316254 0.316254 0.316254 0.324493 0.324493 0.324493 0.332764 0.332764 0.332764 0.340881 0.340881 0.340881 0.348633 0.348633 0.348633 0.356445 0.356445 0.356445 0.364105 0.364105 0.364105 0.371399 0.371399 0.371399 0.378815 0.378815 0.378815 0.385925 0.385925 0.385925 0.393097 0.393097 0.393097 0.400146 0.400146 0.400146 0.406982 0.406982 0.406982 0.413879 0.413879 0.413879 0.420776 0.420776 0.420776 0.427399 0.427399 0.427399 0.434204 0.434204 0.434204 0.440948 0.440948 0.440948 0.447510 0.447510 0.447510 0.454254 0.454254 0.454254 0.460846 0.460846 0.460846 0.467651 0.467651 0.467651 0.474457 0.474457 0.474457 0.481201 0.481201 0.481201 0.488098 0.488098 0.488098 0.495087 0.495087 0.495087 0.502014 0.502014 0.502014 0.289825 0.289825 0.289825 0.298584 0.298584 0.298584 0.307434 0.307434 0.307434 0.315826 0.315826 0.315826 0.324280 0.324280 0.324280 0.332581 0.332581 0.332581 0.340485 0.340485 0.340485 0.348419 0.348419 0.348419 0.356232 0.356232 0.356232 0.363708 0.363708 0.363708 0.371246 0.371246 0.371246 0.378601 0.378601 0.378601 0.385742 0.385742 0.385742 0.392883 0.392883 0.392883 0.399811 0.399811 0.399811 0.406799 0.406799 0.406799 0.413727 0.413727 0.413727 0.420410 0.420410 0.420410 0.427246 0.427246 0.427246 0.433990 0.433990 0.433990 0.440582 0.440582 0.440582 0.447357 0.447357 0.447357 0.454102 0.454102 0.454102 0.460693 0.460693 0.460693 0.467468 0.467468 0.467468 0.474304 0.474304 0.474304 0.481018 0.481018 0.481018 0.487915 0.487915 0.487915 0.494781 0.494781 0.494781 0.501862 0.501862 0.501862 0.509003 0.509003 0.509003 0.516113 0.516113 0.516113 0.307190 0.307190 0.307190 0.315613 0.315613 0.315613 0.324066 0.324066 0.324066 0.332153 0.332153 0.332153 0.340271 0.340271 0.340271 0.348236 0.348236 0.348236 0.355835 0.355835 0.355835 0.363495 0.363495 0.363495 0.371033 0.371033 0.371033 0.378265 0.378265 0.378265 0.385559 0.385559 0.385559 0.392731 0.392731 0.392731 0.399628 0.399628 0.399628 0.406616 0.406616 0.406616 0.413361 0.413361 0.413361 0.420227 0.420227 0.420227 0.427063 0.427063 0.427063 0.433685 0.433685 0.433685 0.440430 0.440430 0.440430 0.447205 0.447205 0.447205 0.453766 0.453766 0.453766 0.460541 0.460541 0.460541 0.467316 0.467316 0.467316 0.473938 0.473938 0.473938 0.480835 0.480835 0.480835 0.487579 0.487579 0.487579 0.494568 0.494568 0.494568 0.501678 0.501678 0.501678 0.508636 0.508636 0.508636 0.515900 0.515900 0.515900 0.523285 0.523285 0.523285 0.530579 0.530579 0.530579 0.323639 0.323639 0.323639 0.331940 0.331940 0.331940 0.340088 0.340088 0.340088 0.347870 0.347870 0.347870 0.355682 0.355682 0.355682 0.363312 0.363312 0.363312 0.370667 0.370667 0.370667 0.378082 0.378082 0.378082 0.385376 0.385376 0.385376 0.392365 0.392365 0.392365 0.399445 0.399445 0.399445 0.406281 0.406281 0.406281 0.413208 0.413208 0.413208 0.420074 0.420074 0.420074 0.426727 0.426727 0.426727 0.433502 0.433502 0.433502 0.440277 0.440277 0.440277 0.446838 0.446838 0.446838 0.453613 0.453613 0.453613 0.460358 0.460358 0.460358 0.466949 0.466949 0.466949 0.473785 0.473785 0.473785 0.480682 0.480682 0.480682 0.487427 0.487427 0.487427 0.494415 0.494415 0.494415 0.501312 0.501312 0.501312 0.508453 0.508453 0.508453 0.515747 0.515747 0.515747 0.522888 0.522888 0.522888 0.530396 0.530396 0.530396 0.537964 0.537964 0.537964 0.545502 0.545502 0.545502 0.339691 0.339691 0.339691 0.347656 0.347656 0.347656 0.355469 0.355469 0.355469 0.362946 0.362946 0.362946 0.370514 0.370514 0.370514 0.377899 0.377899 0.377899 0.385010 0.385010 0.385010 0.392181 0.392181 0.392181 0.399292 0.399292 0.399292 0.406097 0.406097 0.406097 0.413055 0.413055 0.413055 0.419708 0.419708 0.419708 0.426544 0.426544 0.426544 0.433319 0.433319 0.433319 0.439941 0.439941 0.439941 0.446686 0.446686 0.446686 0.453430 0.453430 0.453430 0.460022 0.460022 0.460022 0.466797 0.466797 0.466797 0.473633 0.473633 0.473633 0.480316 0.480316 0.480316 0.487244 0.487244 0.487244 0.494049 0.494049 0.494049 0.501129 0.501129 0.501129 0.508301 0.508301 0.508301 0.515381 0.515381 0.515381 0.522736 0.522736 0.522736 0.530212 0.530212 0.530212 0.537598 0.537598 0.537598 0.545319 0.545319 0.545319 0.553162 0.553162 0.553162 0.560944 0.560944 0.560944 0.355072 0.355072 0.355072 0.362762 0.362762 0.362762 0.370300 0.370300 0.370300 0.377502 0.377502 0.377502 0.384827 0.384827 0.384827 0.392029 0.392029 0.392029 0.398926 0.398926 0.398926 0.405914 0.405914 0.405914 0.412689 0.412689 0.412689 0.419556 0.419556 0.419556 0.426392 0.426392 0.426392 0.432983 0.432983 0.432983 0.439758 0.439758 0.439758 0.446503 0.446503 0.446503 0.453064 0.453064 0.453064 0.459869 0.459869 0.459869 0.466614 0.466614 0.466614 0.473297 0.473297 0.473297 0.480164 0.480164 0.480164 0.487061 0.487061 0.487061 0.493896 0.493896 0.493896 0.500946 0.500946 0.500946 0.507935 0.507935 0.507935 0.515198 0.515198 0.515198 0.522552 0.522552 0.522552 0.529816 0.529816 0.529816 0.537415 0.537415 0.537415 0.545135 0.545135 0.545135 0.552734 0.552734 0.552734 0.560760 0.560760 0.560760 0.568817 0.568817 0.568817 0.576874 0.576874 0.576874 0.369904 0.369904 0.369904 0.377350 0.377350 0.377350 0.384644 0.384644 0.384644 0.391663 0.391663 0.391663 0.398773 0.398773 0.398773 0.405762 0.405762 0.405762 0.412537 0.412537 0.412537 0.419403 0.419403 0.419403 0.426056 0.426056 0.426056 0.432831 0.432831 0.432831 0.439606 0.439606 0.439606 0.446167 0.446167 0.446167 0.452911 0.452911 0.452911 0.459656 0.459656 0.459656 0.466278 0.466278 0.466278 0.473114 0.473114 0.473114 0.479950 0.479950 0.479950 0.486694 0.486694 0.486694 0.493683 0.493683 0.493683 0.500610 0.500610 0.500610 0.507751 0.507751 0.507751 0.514984 0.514984 0.514984 0.522186 0.522186 0.522186 0.529633 0.529633 0.529633 0.537201 0.537201 0.537201 0.544739 0.544739 0.544739 0.552582 0.552582 0.552582 0.560516 0.560516 0.560516 0.568451 0.568451 0.568451 0.576691 0.576691 0.576691 0.584839 0.584839 0.584839 0.593323 0.593323 0.593323 0.384277 0.384277 0.384277 0.391449 0.391449 0.391449 0.398590 0.398590 0.398590 0.405426 0.405426 0.405426 0.412354 0.412354 0.412354 0.419220 0.419220 0.419220 0.425873 0.425873 0.425873 0.432648 0.432648 0.432648 0.439270 0.439270 0.439270 0.446014 0.446014 0.446014 0.452728 0.452728 0.452728 0.459320 0.459320 0.459320 0.466125 0.466125 0.466125 0.472931 0.472931 0.472931 0.479614 0.479614 0.479614 0.486542 0.486542 0.486542 0.493530 0.493530 0.493530 0.500427 0.500427 0.500427 0.507568 0.507568 0.507568 0.514618 0.514618 0.514618 0.521973 0.521973 0.521973 0.529449 0.529449 0.529449 0.536835 0.536835 0.536835 0.544525 0.544525 0.544525 0.552368 0.552368 0.552368 0.560120 0.560120 0.560120 0.568237 0.568237 0.568237 0.576477 0.576477 0.576477 0.584656 0.584656 0.584656 0.593079 0.593079 0.593079 0.601440 0.601440 0.601440 0.610107 0.610107 0.610107 0.398224 0.398224 0.398224 0.405243 0.405243 0.405243 0.412170 0.412170 0.412170 0.418884 0.418884 0.418884 0.425690 0.425690 0.425690 0.432312 0.432312 0.432312 0.439087 0.439087 0.439087 0.445831 0.445831 0.445831 0.452393 0.452393 0.452393 0.459167 0.459167 0.459167 0.465942 0.465942 0.465942 0.472595 0.472595 0.472595 0.479462 0.479462 0.479462 0.486359 0.486359 0.486359 0.493195 0.493195 0.493195 0.500244 0.500244 0.500244 0.507202 0.507202 0.507202 0.514465 0.514465 0.514465 0.521820 0.521820 0.521820 0.529083 0.529083 0.529083 0.536621 0.536621 0.536621 0.544342 0.544342 0.544342 0.551971 0.551971 0.551971 0.559937 0.559937 0.559937 0.568024 0.568024 0.568024 0.576080 0.576080 0.576080 0.584412 0.584412 0.584412 0.592682 0.592682 0.592682 0.601257 0.601257 0.601257 0.609894 0.609894 0.609894 0.618378 0.618378 0.618378 0.627106 0.627106 0.627106 0.411804 0.411804 0.411804 0.418732 0.418732 0.418732 0.425537 0.425537 0.425537 0.432159 0.432159 0.432159 0.438904 0.438904 0.438904 0.445496 0.445496 0.445496 0.452271 0.452271 0.452271 0.459015 0.459015 0.459015 0.465607 0.465607 0.465607 0.472412 0.472412 0.472412 0.479279 0.479279 0.479279 0.486023 0.486023 0.486023 0.493011 0.493011 0.493011 0.500061 0.500061 0.500061 0.507050 0.507050 0.507050 0.514282 0.514282 0.514282 0.521423 0.521423 0.521423 0.528870 0.528870 0.528870 0.536438 0.536438 0.536438 0.543945 0.543945 0.543945 0.551788 0.551788 0.551788 0.559753 0.559753 0.559753 0.567627 0.567627 0.567627 0.575867 0.575867 0.575867 0.584198 0.584198 0.584198 0.592438 0.592438 0.592438 0.601013 0.601013 0.601013 0.609467 0.609467 0.609467 0.618134 0.618134 0.618134 0.626862 0.626862 0.626862 0.635406 0.635406 0.635406 0.644196 0.644196 0.644196 0.425171 0.425171 0.425171 0.431976 0.431976 0.431976 0.438568 0.438568 0.438568 0.445343 0.445343 0.445343 0.452087 0.452087 0.452087 0.458649 0.458649 0.458649 0.465454 0.465454 0.465454 0.472260 0.472260 0.472260 0.478943 0.478943 0.478943 0.485870 0.485870 0.485870 0.492828 0.492828 0.492828 0.499695 0.499695 0.499695 0.506836 0.506836 0.506836 0.513885 0.513885 0.513885 0.521240 0.521240 0.521240 0.528687 0.528687 0.528687 0.536072 0.536072 0.536072 0.543762 0.543762 0.543762 0.551575 0.551575 0.551575 0.559326 0.559326 0.559326 0.567383 0.567383 0.567383 0.575653 0.575653 0.575653 0.583771 0.583771 0.583771 0.592255 0.592255 0.592255 0.600616 0.600616 0.600616 0.609253 0.609253 0.609253 0.617950 0.617950 0.617950 0.626465 0.626465 0.626465 0.635193 0.635193 0.635193 0.643982 0.643982 0.643982 0.652466 0.652466 0.652466 0.661194 0.661194 0.661194 0.438385 0.438385 0.438385 0.445160 0.445160 0.445160 0.451752 0.451752 0.451752 0.458496 0.458496 0.458496 0.465271 0.465271 0.465271 0.471893 0.471893 0.471893 0.478760 0.478760 0.478760 0.485687 0.485687 0.485687 0.492493 0.492493 0.492493 0.499512 0.499512 0.499512 0.506683 0.506683 0.506683 0.513702 0.513702 0.513702 0.521057 0.521057 0.521057 0.528320 0.528320 0.528320 0.535858 0.535858 0.535858 0.543579 0.543579 0.543579 0.551178 0.551178 0.551178 0.559113 0.559113 0.559113 0.567200 0.567200 0.567200 0.575195 0.575195 0.575195 0.583557 0.583557 0.583557 0.592041 0.592041 0.592041 0.600372 0.600372 0.600372 0.609009 0.609009 0.609009 0.617493 0.617493 0.617493 0.626221 0.626221 0.626221 0.635010 0.635010 0.635010 0.643524 0.643524 0.643524 0.652252 0.652252 0.652252 0.660980 0.660980 0.660980 0.669403 0.669403 0.669403 0.677979 0.677979 0.677979 0.451569 0.451569 0.451569 0.458313 0.458313 0.458313 0.464935 0.464935 0.464935 0.471741 0.471741 0.471741 0.478607 0.478607 0.478607 0.485321 0.485321 0.485321 0.492310 0.492310 0.492310 0.499329 0.499329 0.499329 0.506317 0.506317 0.506317 0.513519 0.513519 0.513519 0.520660 0.520660 0.520660 0.528137 0.528137 0.528137 0.535706 0.535706 0.535706 0.543182 0.543182 0.543182 0.550995 0.550995 0.550995 0.558929 0.558929 0.558929 0.566803 0.566803 0.566803 0.575012 0.575012 0.575012 0.583374 0.583374 0.583374 0.591614 0.591614 0.591614 0.600159 0.600159 0.600159 0.608795 0.608795 0.608795 0.617279 0.617279 0.617279 0.626038 0.626038 0.626038 0.634521 0.634521 0.634521 0.643311 0.643311 0.643311 0.652039 0.652039 0.652039 0.660522 0.660522 0.660522 0.669159 0.669159 0.669159 0.677734 0.677734 0.677734 0.686035 0.686035 0.686035 0.694458 0.694458 0.694458 0.464752 0.464752 0.464752 0.471588 0.471588 0.471588 0.478241 0.478241 0.478241 0.485138 0.485138 0.485138 0.492126 0.492126 0.492126 0.498993 0.498993 0.498993 0.506134 0.506134 0.506134 0.513367 0.513367 0.513367 0.520508 0.520508 0.520508 0.527954 0.527954 0.527954 0.535339 0.535339 0.535339 0.542999 0.542999 0.542999 0.550781 0.550781 0.550781 0.558563 0.558563 0.558563 0.566589 0.566589 0.566589 0.574799 0.574799 0.574799 0.582947 0.582947 0.582947 0.591400 0.591400 0.591400 0.599945 0.599945 0.599945 0.608368 0.608368 0.608368 0.617065 0.617065 0.617065 0.625580 0.625580 0.625580 0.634308 0.634308 0.634308 0.643066 0.643066 0.643066 0.651611 0.651611 0.651611 0.660309 0.660309 0.660309 0.668945 0.668945 0.668945 0.677338 0.677338 0.677338 0.685822 0.685822 0.685822 0.694244 0.694244 0.694244 0.702362 0.702362 0.702362 0.710510 0.710510 0.710510 0.478088 0.478088 0.478088 0.484985 0.484985 0.484985 0.491760 0.491760 0.491760 0.498840 0.498840 0.498840 0.505951 0.505951 0.505951 0.513000 0.513000 0.513000 0.520325 0.520325 0.520325 0.527557 0.527557 0.527557 0.535126 0.535126 0.535126 0.542786 0.542786 0.542786 0.550385 0.550385 0.550385 0.558319 0.558319 0.558319 0.566376 0.566376 0.566376 0.574402 0.574402 0.574402 0.582703 0.582703 0.582703 0.591187 0.591187 0.591187 0.599518 0.599518 0.599518 0.608154 0.608154 0.608154 0.616852 0.616852 0.616852 0.625336 0.625336 0.625336 0.634125 0.634125 0.634125 0.642670 0.642670 0.642670 0.651367 0.651367 0.651367 0.660095 0.660095 0.660095 0.668518 0.668518 0.668518 0.677094 0.677094 0.677094 0.685638 0.685638 0.685638 0.693817 0.693817 0.693817 0.702118 0.702118 0.702118 0.710297 0.710297 0.710297 0.718140 0.718140 0.718140 0.726044 0.726044 0.726044 0.491608 0.491608 0.491608 0.498627 0.498627 0.498627 0.505615 0.505615 0.505615 0.512817 0.512817 0.512817 0.520142 0.520142 0.520142 0.527374 0.527374 0.527374 0.534943 0.534943 0.534943 0.542389 0.542389 0.542389 0.550201 0.550201 0.550201 0.558136 0.558136 0.558136 0.565979 0.565979 0.565979 0.574188 0.574188 0.574188 0.582520 0.582520 0.582520 0.590759 0.590759 0.590759 0.599304 0.599304 0.599304 0.607941 0.607941 0.607941 0.616394 0.616394 0.616394 0.625153 0.625153 0.625153 0.633667 0.633667 0.633667 0.642426 0.642426 0.642426 0.651154 0.651154 0.651154 0.659637 0.659637 0.659637 0.668304 0.668304 0.668304 0.676880 0.676880 0.676880 0.685211 0.685211 0.685211 0.693634 0.693634 0.693634 0.701904 0.701904 0.701904 0.709900 0.709900 0.709900 0.717957 0.717957 0.717957 0.725677 0.725677 0.725677 0.733398 0.733398 0.733398 0.740967 0.740967 0.740967 0.505432 0.505432 0.505432 0.512634 0.512634 0.512634 0.519775 0.519775 0.519775 0.527191 0.527191 0.527191 0.534546 0.534546 0.534546 0.542206 0.542206 0.542206 0.550018 0.550018 0.550018 0.557709 0.557709 0.557709 0.565765 0.565765 0.565765 0.573975 0.573975 0.573975 0.582092 0.582092 0.582092 0.590546 0.590546 0.590546 0.599091 0.599091 0.599091 0.607513 0.607513 0.607513 0.616211 0.616211 0.616211 0.624695 0.624695 0.624695 0.633453 0.633453 0.633453 0.642181 0.642181 0.642181 0.650726 0.650726 0.650726 0.659424 0.659424 0.659424 0.668091 0.668091 0.668091 0.676483 0.676483 0.676483 0.684998 0.684998 0.684998 0.693420 0.693420 0.693420 0.701508 0.701508 0.701508 0.709686 0.709686 0.709686 0.717743 0.717743 0.717743 0.725464 0.725464 0.725464 0.733215 0.733215 0.733215 0.740570 0.740570 0.740570 0.747955 0.747955 0.747955 0.755127 0.755127 0.755127 0.054565 0.054565 0.054565 0.059814 0.059814 0.059814 0.063751 0.063751 0.063751 0.067841 0.067841 0.067841 0.072083 0.072083 0.072083 0.076630 0.076630 0.076630 0.081360 0.081360 0.081360 0.086212 0.086212 0.086212 0.091431 0.091431 0.091431 0.096802 0.096802 0.096802 0.102570 0.102570 0.102570 0.108612 0.108612 0.108612 0.114868 0.114868 0.114868 0.121643 0.121643 0.121643 0.128784 0.128784 0.128784 0.136108 0.136108 0.136108 0.144073 0.144073 0.144073 0.152557 0.152557 0.152557 0.161255 0.161255 0.161255 0.170685 0.170685 0.170685 0.180237 0.180237 0.180237 0.190399 0.190399 0.190399 0.200714 0.200714 0.200714 0.210846 0.210846 0.210846 0.221252 0.221252 0.221252 0.231476 0.231476 0.231476 0.241364 0.241364 0.241364 0.251282 0.251282 0.251282 0.261047 0.261047 0.261047 0.270355 0.270355 0.270355 0.279724 0.279724 0.279724 0.288696 0.288696 0.288696 0.063629 0.063629 0.063629 0.067657 0.067657 0.067657 0.071960 0.071960 0.071960 0.076508 0.076508 0.076508 0.081146 0.081146 0.081146 0.086090 0.086090 0.086090 0.091187 0.091187 0.091187 0.096649 0.096649 0.096649 0.102417 0.102417 0.102417 0.108307 0.108307 0.108307 0.114716 0.114716 0.114716 0.121460 0.121460 0.121460 0.128387 0.128387 0.128387 0.135895 0.135895 0.135895 0.143860 0.143860 0.143860 0.152100 0.152100 0.152100 0.161011 0.161011 0.161011 0.170441 0.170441 0.170441 0.179993 0.179993 0.179993 0.190094 0.190094 0.190094 0.200165 0.200165 0.200165 0.210602 0.210602 0.210602 0.220978 0.220978 0.220978 0.231018 0.231018 0.231018 0.241119 0.241119 0.241119 0.251038 0.251038 0.251038 0.260559 0.260559 0.260559 0.270142 0.270142 0.270142 0.279510 0.279510 0.279510 0.288483 0.288483 0.288483 0.297485 0.297485 0.297485 0.306122 0.306122 0.306122 0.071869 0.071869 0.071869 0.076263 0.076263 0.076263 0.080963 0.080963 0.080963 0.085968 0.085968 0.085968 0.091034 0.091034 0.091034 0.096527 0.096527 0.096527 0.102112 0.102112 0.102112 0.108185 0.108185 0.108185 0.114532 0.114532 0.114532 0.121094 0.121094 0.121094 0.128204 0.128204 0.128204 0.135712 0.135712 0.135712 0.143463 0.143463 0.143463 0.151886 0.151886 0.151886 0.160767 0.160767 0.160767 0.169952 0.169952 0.169952 0.179749 0.179749 0.179749 0.189606 0.189606 0.189606 0.199921 0.199921 0.199921 0.210327 0.210327 0.210327 0.220459 0.220459 0.220459 0.230774 0.230774 0.230774 0.240875 0.240875 0.240875 0.250549 0.250549 0.250549 0.260315 0.260315 0.260315 0.269867 0.269867 0.269867 0.279053 0.279053 0.279053 0.288239 0.288239 0.288239 0.297028 0.297028 0.297028 0.305878 0.305878 0.305878 0.314545 0.314545 0.314545 0.322815 0.322815 0.322815 0.080872 0.080872 0.080872 0.085724 0.085724 0.085724 0.090912 0.090912 0.090912 0.096375 0.096375 0.096375 0.101990 0.101990 0.101990 0.108002 0.108002 0.108002 0.114227 0.114227 0.114227 0.120941 0.120941 0.120941 0.128021 0.128021 0.128021 0.135315 0.135315 0.135315 0.143250 0.143250 0.143250 0.151642 0.151642 0.151642 0.160339 0.160339 0.160339 0.169708 0.169708 0.169708 0.179260 0.179260 0.179260 0.189301 0.189301 0.189301 0.199677 0.199677 0.199677 0.209808 0.209808 0.209808 0.220215 0.220215 0.220215 0.230530 0.230530 0.230530 0.240356 0.240356 0.240356 0.250305 0.250305 0.250305 0.260040 0.260040 0.260040 0.269379 0.269379 0.269379 0.278809 0.278809 0.278809 0.288025 0.288025 0.288025 0.296783 0.296783 0.296783 0.305664 0.305664 0.305664 0.314117 0.314117 0.314117 0.322601 0.322601 0.322601 0.330902 0.330902 0.330902 0.338837 0.338837 0.338837 0.090790 0.090790 0.090790 0.096100 0.096100 0.096100 0.101837 0.101837 0.101837 0.107727 0.107727 0.107727 0.114044 0.114044 0.114044 0.120758 0.120758 0.120758 0.127686 0.127686 0.127686 0.135162 0.135162 0.135162 0.143066 0.143066 0.143066 0.151215 0.151215 0.151215 0.160095 0.160095 0.160095 0.169464 0.169464 0.169464 0.179016 0.179016 0.179016 0.189056 0.189056 0.189056 0.199158 0.199158 0.199158 0.209564 0.209564 0.209564 0.219940 0.219940 0.219940 0.230011 0.230011 0.230011 0.240112 0.240112 0.240112 0.250031 0.250031 0.250031 0.259583 0.259583 0.259583 0.269135 0.269135 0.269135 0.278564 0.278564 0.278564 0.287567 0.287567 0.287567 0.296600 0.296600 0.296600 0.305206 0.305206 0.305206 0.313904 0.313904 0.313904 0.322388 0.322388 0.322388 0.330505 0.330505 0.330505 0.338684 0.338684 0.338684 0.346649 0.346649 0.346649 0.354279 0.354279 0.354279 0.101685 0.101685 0.101685 0.107544 0.107544 0.107544 0.113892 0.113892 0.113892 0.120422 0.120422 0.120422 0.127502 0.127502 0.127502 0.134949 0.134949 0.134949 0.142639 0.142639 0.142639 0.151001 0.151001 0.151001 0.159882 0.159882 0.159882 0.169006 0.169006 0.169006 0.178772 0.178772 0.178772 0.188812 0.188812 0.188812 0.198914 0.198914 0.198914 0.209290 0.209290 0.209290 0.219452 0.219452 0.219452 0.229736 0.229736 0.229736 0.239868 0.239868 0.239868 0.249542 0.249542 0.249542 0.259338 0.259338 0.259338 0.268921 0.268921 0.268921 0.278107 0.278107 0.278107 0.287323 0.287323 0.287323 0.296387 0.296387 0.296387 0.304993 0.304993 0.304993 0.313690 0.313690 0.313690 0.321960 0.321960 0.321960 0.330322 0.330322 0.330322 0.338470 0.338470 0.338470 0.346252 0.346252 0.346252 0.354095 0.354095 0.354095 0.361816 0.361816 0.361816 0.369171 0.369171 0.369171 0.113586 0.113586 0.113586 0.120239 0.120239 0.120239 0.127289 0.127289 0.127289 0.134583 0.134583 0.134583 0.142426 0.142426 0.142426 0.150787 0.150787 0.150787 0.159454 0.159454 0.159454 0.168762 0.168762 0.168762 0.178528 0.178528 0.178528 0.188324 0.188324 0.188324 0.198639 0.198639 0.198639 0.208771 0.208771 0.208771 0.219177 0.219177 0.219177 0.229462 0.229462 0.229462 0.239349 0.239349 0.239349 0.249329 0.249329 0.249329 0.259094 0.259094 0.259094 0.268463 0.268463 0.268463 0.277863 0.277863 0.277863 0.287109 0.287109 0.287109 0.295898 0.295898 0.295898 0.304810 0.304810 0.304810 0.313263 0.313263 0.313263 0.321747 0.321747 0.321747 0.330109 0.330109 0.330109 0.338043 0.338043 0.338043 0.346069 0.346069 0.346069 0.353912 0.353912 0.353912 0.361420 0.361420 0.361420 0.368988 0.368988 0.368988 0.376434 0.376434 0.376434 0.383545 0.383545 0.383545 0.126923 0.126923 0.126923 0.134369 0.134369 0.134369 0.142242 0.142242 0.142242 0.150360 0.150360 0.150360 0.159180 0.159180 0.159180 0.168518 0.168518 0.168518 0.178009 0.178009 0.178009 0.188080 0.188080 0.188080 0.198364 0.198364 0.198364 0.208527 0.208527 0.208527 0.218933 0.218933 0.218933 0.228973 0.228973 0.228973 0.239136 0.239136 0.239136 0.249084 0.249084 0.249084 0.258606 0.258606 0.258606 0.268219 0.268219 0.268219 0.277618 0.277618 0.277618 0.286652 0.286652 0.286652 0.295715 0.295715 0.295715 0.304565 0.304565 0.304565 0.313049 0.313049 0.313049 0.321564 0.321564 0.321564 0.329712 0.329712 0.329712 0.337860 0.337860 0.337860 0.345886 0.345886 0.345886 0.353516 0.353516 0.353516 0.361267 0.361267 0.361267 0.368805 0.368805 0.368805 0.376068 0.376068 0.376068 0.383362 0.383362 0.383362 0.390594 0.390594 0.390594 0.397522 0.397522 0.397522 0.141846 0.141846 0.141846 0.150146 0.150146 0.150146 0.158966 0.158966 0.158966 0.168060 0.168060 0.168060 0.177734 0.177734 0.177734 0.187805 0.187805 0.187805 0.197845 0.197845 0.197845 0.208252 0.208252 0.208252 0.218414 0.218414 0.218414 0.228699 0.228699 0.228699 0.238892 0.238892 0.238892 0.248596 0.248596 0.248596 0.258362 0.258362 0.258362 0.267975 0.267975 0.267975 0.277161 0.277161 0.277161 0.286407 0.286407 0.286407 0.295471 0.295471 0.295471 0.304138 0.304138 0.304138 0.312836 0.312836 0.312836 0.321320 0.321320 0.321320 0.329468 0.329468 0.329468 0.337677 0.337677 0.337677 0.345459 0.345459 0.345459 0.353363 0.353363 0.353363 0.361053 0.361053 0.361053 0.368408 0.368408 0.368408 0.375854 0.375854 0.375854 0.383179 0.383179 0.383179 0.390228 0.390228 0.390228 0.397339 0.397339 0.397339 0.404175 0.404175 0.404175 0.411133 0.411133 0.411133 0.158508 0.158508 0.158508 0.167816 0.167816 0.167816 0.177490 0.177490 0.177490 0.187317 0.187317 0.187317 0.197601 0.197601 0.197601 0.208008 0.208008 0.208008 0.218140 0.218140 0.218140 0.228455 0.228455 0.228455 0.238373 0.238373 0.238373 0.248352 0.248352 0.248352 0.258118 0.258118 0.258118 0.267517 0.267517 0.267517 0.276917 0.276917 0.276917 0.286194 0.286194 0.286194 0.295013 0.295013 0.295013 0.303925 0.303925 0.303925 0.312622 0.312622 0.312622 0.320923 0.320923 0.320923 0.329285 0.329285 0.329285 0.337250 0.337250 0.337250 0.345306 0.345306 0.345306 0.353149 0.353149 0.353149 0.360657 0.360657 0.360657 0.368225 0.368225 0.368225 0.375702 0.375702 0.375702 0.382843 0.382843 0.382843 0.390045 0.390045 0.390045 0.397186 0.397186 0.397186 0.403992 0.403992 0.403992 0.410980 0.410980 0.410980 0.417664 0.417664 0.417664 0.424500 0.424500 0.424500 0.177032 0.177032 0.177032 0.187073 0.187073 0.187073 0.197357 0.197357 0.197357 0.207458 0.207458 0.207458 0.217896 0.217896 0.217896 0.227966 0.227966 0.227966 0.238098 0.238098 0.238098 0.248108 0.248108 0.248108 0.257629 0.257629 0.257629 0.267273 0.267273 0.267273 0.276703 0.276703 0.276703 0.285736 0.285736 0.285736 0.294830 0.294830 0.294830 0.303680 0.303680 0.303680 0.312195 0.312195 0.312195 0.320709 0.320709 0.320709 0.329071 0.329071 0.329071 0.337036 0.337036 0.337036 0.345062 0.345062 0.345062 0.352722 0.352722 0.352722 0.360474 0.360474 0.360474 0.368042 0.368042 0.368042 0.375336 0.375336 0.375336 0.382660 0.382660 0.382660 0.389862 0.389862 0.389862 0.396820 0.396820 0.396820 0.403839 0.403839 0.403839 0.410797 0.410797 0.410797 0.417480 0.417480 0.417480 0.424347 0.424347 0.424347 0.430969 0.430969 0.430969 0.437744 0.437744 0.437744 0.196808 0.196808 0.196808 0.207214 0.207214 0.207214 0.217621 0.217621 0.217621 0.227692 0.227692 0.227692 0.237854 0.237854 0.237854 0.247589 0.247589 0.247589 0.257385 0.257385 0.257385 0.267059 0.267059 0.267059 0.276245 0.276245 0.276245 0.285492 0.285492 0.285492 0.294586 0.294586 0.294586 0.303253 0.303253 0.303253 0.311981 0.311981 0.311981 0.320496 0.320496 0.320496 0.328674 0.328674 0.328674 0.336853 0.336853 0.336853 0.344666 0.344666 0.344666 0.352539 0.352539 0.352539 0.360260 0.360260 0.360260 0.367676 0.367676 0.367676 0.375122 0.375122 0.375122 0.382446 0.382446 0.382446 0.389526 0.389526 0.389526 0.396637 0.396637 0.396637 0.403656 0.403656 0.403656 0.410461 0.410461 0.410461 0.417328 0.417328 0.417328 0.424011 0.424011 0.424011 0.430817 0.430817 0.430817 0.437592 0.437592 0.437592 0.444153 0.444153 0.444153 0.450897 0.450897 0.450897 0.217102 0.217102 0.217102 0.227448 0.227448 0.227448 0.237335 0.237335 0.237335 0.247314 0.247314 0.247314 0.257172 0.257172 0.257172 0.266541 0.266541 0.266541 0.276001 0.276001 0.276001 0.285248 0.285248 0.285248 0.294128 0.294128 0.294128 0.303009 0.303009 0.303009 0.311737 0.311737 0.311737 0.320099 0.320099 0.320099 0.328461 0.328461 0.328461 0.336426 0.336426 0.336426 0.344482 0.344482 0.344482 0.352325 0.352325 0.352325 0.359894 0.359894 0.359894 0.367462 0.367462 0.367462 0.374969 0.374969 0.374969 0.382080 0.382080 0.382080 0.389313 0.389313 0.389313 0.396454 0.396454 0.396454 0.403320 0.403320 0.403320 0.410278 0.410278 0.410278 0.417175 0.417175 0.417175 0.423828 0.423828 0.423828 0.430603 0.430603 0.430603 0.437225 0.437225 0.437225 0.443970 0.443970 0.443970 0.450714 0.450714 0.450714 0.457306 0.457306 0.457306 0.464081 0.464081 0.464081 0.237091 0.237091 0.237091 0.247070 0.247070 0.247070 0.256653 0.256653 0.256653 0.266296 0.266296 0.266296 0.275757 0.275757 0.275757 0.284821 0.284821 0.284821 0.293915 0.293915 0.293915 0.302795 0.302795 0.302795 0.311310 0.311310 0.311310 0.319855 0.319855 0.319855 0.328247 0.328247 0.328247 0.336243 0.336243 0.336243 0.344269 0.344269 0.344269 0.351959 0.351959 0.351959 0.359711 0.359711 0.359711 0.367310 0.367310 0.367310 0.374573 0.374573 0.374573 0.381927 0.381927 0.381927 0.389160 0.389160 0.389160 0.396088 0.396088 0.396088 0.403168 0.403168 0.403168 0.410095 0.410095 0.410095 0.416840 0.416840 0.416840 0.423676 0.423676 0.423676 0.430298 0.430298 0.430298 0.437073 0.437073 0.437073 0.443817 0.443817 0.443817 0.450378 0.450378 0.450378 0.457123 0.457123 0.457123 0.463928 0.463928 0.463928 0.470551 0.470551 0.470551 0.477386 0.477386 0.477386 0.256409 0.256409 0.256409 0.266052 0.266052 0.266052 0.275299 0.275299 0.275299 0.284576 0.284576 0.284576 0.293671 0.293671 0.293671 0.302368 0.302368 0.302368 0.311066 0.311066 0.311066 0.319641 0.319641 0.319641 0.327789 0.327789 0.327789 0.336029 0.336029 0.336029 0.343872 0.343872 0.343872 0.351776 0.351776 0.351776 0.359497 0.359497 0.359497 0.366943 0.366943 0.366943 0.374390 0.374390 0.374390 0.381744 0.381744 0.381744 0.388794 0.388794 0.388794 0.395935 0.395935 0.395935 0.402954 0.402954 0.402954 0.409760 0.409760 0.409760 0.416656 0.416656 0.416656 0.423462 0.423462 0.423462 0.430115 0.430115 0.430115 0.436890 0.436890 0.436890 0.443451 0.443451 0.443451 0.450226 0.450226 0.450226 0.456970 0.456970 0.456970 0.463562 0.463562 0.463562 0.470367 0.470367 0.470367 0.477203 0.477203 0.477203 0.483948 0.483948 0.483948 0.490906 0.490906 0.490906 0.275085 0.275085 0.275085 0.284332 0.284332 0.284332 0.293213 0.293213 0.293213 0.302155 0.302155 0.302155 0.310913 0.310913 0.310913 0.319214 0.319214 0.319214 0.327637 0.327637 0.327637 0.335846 0.335846 0.335846 0.343689 0.343689 0.343689 0.351562 0.351562 0.351562 0.359131 0.359131 0.359131 0.366730 0.366730 0.366730 0.374207 0.374207 0.374207 0.381378 0.381378 0.381378 0.388611 0.388611 0.388611 0.395752 0.395752 0.395752 0.402618 0.402618 0.402618 0.409576 0.409576 0.409576 0.416473 0.416473 0.416473 0.423126 0.423126 0.423126 0.429932 0.429932 0.429932 0.436554 0.436554 0.436554 0.443298 0.443298 0.443298 0.450073 0.450073 0.450073 0.456635 0.456635 0.456635 0.463409 0.463409 0.463409 0.470184 0.470184 0.470184 0.476868 0.476868 0.476868 0.483734 0.483734 0.483734 0.490692 0.490692 0.490692 0.497589 0.497589 0.497589 0.504700 0.504700 0.504700 0.292999 0.292999 0.292999 0.301941 0.301941 0.301941 0.310455 0.310455 0.310455 0.319000 0.319000 0.319000 0.327393 0.327393 0.327393 0.335419 0.335419 0.335419 0.343506 0.343506 0.343506 0.351379 0.351379 0.351379 0.358948 0.358948 0.358948 0.366547 0.366547 0.366547 0.373840 0.373840 0.373840 0.381195 0.381195 0.381195 0.388428 0.388428 0.388428 0.395416 0.395416 0.395416 0.402435 0.402435 0.402435 0.409424 0.409424 0.409424 0.416138 0.416138 0.416138 0.422974 0.422974 0.422974 0.429779 0.429779 0.429779 0.436371 0.436371 0.436371 0.443146 0.443146 0.443146 0.449890 0.449890 0.449890 0.456451 0.456451 0.456451 0.463226 0.463226 0.463226 0.469879 0.469879 0.469879 0.476685 0.476685 0.476685 0.483612 0.483612 0.483612 0.490387 0.490387 0.490387 0.497406 0.497406 0.497406 0.504517 0.504517 0.504517 0.511536 0.511536 0.511536 0.518860 0.518860 0.518860 0.310242 0.310242 0.310242 0.318817 0.318817 0.318817 0.326996 0.326996 0.326996 0.335205 0.335205 0.335205 0.343262 0.343262 0.343262 0.350983 0.350983 0.350983 0.358734 0.358734 0.358734 0.366364 0.366364 0.366364 0.373657 0.373657 0.373657 0.381012 0.381012 0.381012 0.388062 0.388062 0.388062 0.395203 0.395203 0.395203 0.402252 0.402252 0.402252 0.409058 0.409058 0.409058 0.415955 0.415955 0.415955 0.422791 0.422791 0.422791 0.429443 0.429443 0.429443 0.436218 0.436218 0.436218 0.442963 0.442963 0.442963 0.449554 0.449554 0.449554 0.456299 0.456299 0.456299 0.462921 0.462921 0.462921 0.469696 0.469696 0.469696 0.476532 0.476532 0.476532 0.483246 0.483246 0.483246 0.490173 0.490173 0.490173 0.497223 0.497223 0.497223 0.504181 0.504181 0.504181 0.511353 0.511353 0.511353 0.518677 0.518677 0.518677 0.525879 0.525879 0.525879 0.533417 0.533417 0.533417 0.326782 0.326782 0.326782 0.335022 0.335022 0.335022 0.342865 0.342865 0.342865 0.350800 0.350800 0.350800 0.358551 0.358551 0.358551 0.365967 0.365967 0.365967 0.373474 0.373474 0.373474 0.380615 0.380615 0.380615 0.387878 0.387878 0.387878 0.395020 0.395020 0.395020 0.401917 0.401917 0.401917 0.408905 0.408905 0.408905 0.415802 0.415802 0.415802 0.422455 0.422455 0.422455 0.429260 0.429260 0.429260 0.436035 0.436035 0.436035 0.442627 0.442627 0.442627 0.449371 0.449371 0.449371 0.456146 0.456146 0.456146 0.462708 0.462708 0.462708 0.469543 0.469543 0.469543 0.476196 0.476196 0.476196 0.483063 0.483063 0.483063 0.490051 0.490051 0.490051 0.496887 0.496887 0.496887 0.503967 0.503967 0.503967 0.511200 0.511200 0.511200 0.518280 0.518280 0.518280 0.525696 0.525696 0.525696 0.533234 0.533234 0.533234 0.540680 0.540680 0.540680 0.548431 0.548431 0.548431 0.342682 0.342682 0.342682 0.350616 0.350616 0.350616 0.358154 0.358154 0.358154 0.365784 0.365784 0.365784 0.373291 0.373291 0.373291 0.380463 0.380463 0.380463 0.387695 0.387695 0.387695 0.394684 0.394684 0.394684 0.401764 0.401764 0.401764 0.408722 0.408722 0.408722 0.415436 0.415436 0.415436 0.422272 0.422272 0.422272 0.429108 0.429108 0.429108 0.435699 0.435699 0.435699 0.442444 0.442444 0.442444 0.449188 0.449188 0.449188 0.455780 0.455780 0.455780 0.462555 0.462555 0.462555 0.469177 0.469177 0.469177 0.476013 0.476013 0.476013 0.482910 0.482910 0.482910 0.489685 0.489685 0.489685 0.496704 0.496704 0.496704 0.503784 0.503784 0.503784 0.510803 0.510803 0.510803 0.518127 0.518127 0.518127 0.525513 0.525513 0.525513 0.532867 0.532867 0.532867 0.540466 0.540466 0.540466 0.548065 0.548065 0.548065 0.555939 0.555939 0.555939 0.563995 0.563995 0.563995 0.357971 0.357971 0.357971 0.365601 0.365601 0.365601 0.372894 0.372894 0.372894 0.380280 0.380280 0.380280 0.387360 0.387360 0.387360 0.394501 0.394501 0.394501 0.401550 0.401550 0.401550 0.408386 0.408386 0.408386 0.415283 0.415283 0.415283 0.422119 0.422119 0.422119 0.428772 0.428772 0.428772 0.435516 0.435516 0.435516 0.442291 0.442291 0.442291 0.448883 0.448883 0.448883 0.455627 0.455627 0.455627 0.462219 0.462219 0.462219 0.469025 0.469025 0.469025 0.475861 0.475861 0.475861 0.482544 0.482544 0.482544 0.489502 0.489502 0.489502 0.496521 0.496521 0.496521 0.503418 0.503418 0.503418 0.510651 0.510651 0.510651 0.517944 0.517944 0.517944 0.525146 0.525146 0.525146 0.532654 0.532654 0.532654 0.540283 0.540283 0.540283 0.547821 0.547821 0.547821 0.555725 0.555725 0.555725 0.563538 0.563538 0.563538 0.571686 0.571686 0.571686 0.580017 0.580017 0.580017 0.372711 0.372711 0.372711 0.380096 0.380096 0.380096 0.387177 0.387177 0.387177 0.394318 0.394318 0.394318 0.401215 0.401215 0.401215 0.408203 0.408203 0.408203 0.415100 0.415100 0.415100 0.421753 0.421753 0.421753 0.428589 0.428589 0.428589 0.435364 0.435364 0.435364 0.441956 0.441956 0.441956 0.448700 0.448700 0.448700 0.455444 0.455444 0.455444 0.462036 0.462036 0.462036 0.468842 0.468842 0.468842 0.475494 0.475494 0.475494 0.482391 0.482391 0.482391 0.489349 0.489349 0.489349 0.496155 0.496155 0.496155 0.503265 0.503265 0.503265 0.510437 0.510437 0.510437 0.517548 0.517548 0.517548 0.524963 0.524963 0.524963 0.532471 0.532471 0.532471 0.539886 0.539886 0.539886 0.547668 0.547668 0.547668 0.555328 0.555328 0.555328 0.563354 0.563354 0.563354 0.571503 0.571503 0.571503 0.579590 0.579590 0.579590 0.588013 0.588013 0.588013 0.596527 0.596527 0.596527 0.386993 0.386993 0.386993 0.393982 0.393982 0.393982 0.401031 0.401031 0.401031 0.408020 0.408020 0.408020 0.414764 0.414764 0.414764 0.421631 0.421631 0.421631 0.428406 0.428406 0.428406 0.435028 0.435028 0.435028 0.441772 0.441772 0.441772 0.448517 0.448517 0.448517 0.455109 0.455109 0.455109 0.461884 0.461884 0.461884 0.468506 0.468506 0.468506 0.475342 0.475342 0.475342 0.482208 0.482208 0.482208 0.488983 0.488983 0.488983 0.496002 0.496002 0.496002 0.503082 0.503082 0.503082 0.510101 0.510101 0.510101 0.517395 0.517395 0.517395 0.524780 0.524780 0.524780 0.532104 0.532104 0.532104 0.539734 0.539734 0.539734 0.547455 0.547455 0.547455 0.555115 0.555115 0.555115 0.563141 0.563141 0.563141 0.571106 0.571106 0.571106 0.579376 0.579376 0.579376 0.587799 0.587799 0.587799 0.596100 0.596100 0.596100 0.604675 0.604675 0.604675 0.613342 0.613342 0.613342 0.400848 0.400848 0.400848 0.407684 0.407684 0.407684 0.414612 0.414612 0.414612 0.421448 0.421448 0.421448 0.428101 0.428101 0.428101 0.434875 0.434875 0.434875 0.441620 0.441620 0.441620 0.448212 0.448212 0.448212 0.454956 0.454956 0.454956 0.461700 0.461700 0.461700 0.468323 0.468323 0.468323 0.475159 0.475159 0.475159 0.481873 0.481873 0.481873 0.488831 0.488831 0.488831 0.495819 0.495819 0.495819 0.502747 0.502747 0.502747 0.509888 0.509888 0.509888 0.517212 0.517212 0.517212 0.524414 0.524414 0.524414 0.531891 0.531891 0.531891 0.539520 0.539520 0.539520 0.547058 0.547058 0.547058 0.554932 0.554932 0.554932 0.562775 0.562775 0.562775 0.570892 0.570892 0.570892 0.579193 0.579193 0.579193 0.587372 0.587372 0.587372 0.595856 0.595856 0.595856 0.604462 0.604462 0.604462 0.612946 0.612946 0.612946 0.621643 0.621643 0.621643 0.630371 0.630371 0.630371 0.414429 0.414429 0.414429 0.421112 0.421112 0.421112 0.427887 0.427887 0.427887 0.434692 0.434692 0.434692 0.441284 0.441284 0.441284 0.448029 0.448029 0.448029 0.454773 0.454773 0.454773 0.461365 0.461365 0.461365 0.468140 0.468140 0.468140 0.474823 0.474823 0.474823 0.481689 0.481689 0.481689 0.488617 0.488617 0.488617 0.495483 0.495483 0.495483 0.502533 0.502533 0.502533 0.509735 0.509735 0.509735 0.516815 0.516815 0.516815 0.524200 0.524200 0.524200 0.531708 0.531708 0.531708 0.539093 0.539093 0.539093 0.546875 0.546875 0.546875 0.554749 0.554749 0.554749 0.562561 0.562561 0.562561 0.570679 0.570679 0.570679 0.578766 0.578766 0.578766 0.587128 0.587128 0.587128 0.595673 0.595673 0.595673 0.604034 0.604034 0.604034 0.612701 0.612701 0.612701 0.621399 0.621399 0.621399 0.629944 0.629944 0.629944 0.638702 0.638702 0.638702 0.647430 0.647430 0.647430 0.427734 0.427734 0.427734 0.434357 0.434357 0.434357 0.441101 0.441101 0.441101 0.447845 0.447845 0.447845 0.454437 0.454437 0.454437 0.461212 0.461212 0.461212 0.467987 0.467987 0.467987 0.474640 0.474640 0.474640 0.481506 0.481506 0.481506 0.488281 0.488281 0.488281 0.495270 0.495270 0.495270 0.502380 0.502380 0.502380 0.509369 0.509369 0.509369 0.516663 0.516663 0.516663 0.524017 0.524017 0.524017 0.531342 0.531342 0.531342 0.538940 0.538940 0.538940 0.546661 0.546661 0.546661 0.554352 0.554352 0.554352 0.562347 0.562347 0.562347 0.570282 0.570282 0.570282 0.578552 0.578552 0.578552 0.586945 0.586945 0.586945 0.595215 0.595215 0.595215 0.603821 0.603821 0.603821 0.612488 0.612488 0.612488 0.621002 0.621002 0.621002 0.629730 0.629730 0.629730 0.638489 0.638489 0.638489 0.647003 0.647003 0.647003 0.655731 0.655731 0.655731 0.664215 0.664215 0.664215 0.440948 0.440948 0.440948 0.447510 0.447510 0.447510 0.454254 0.454254 0.454254 0.461029 0.461029 0.461029 0.467651 0.467651 0.467651 0.474457 0.474457 0.474457 0.481354 0.481354 0.481354 0.488098 0.488098 0.488098 0.495087 0.495087 0.495087 0.502014 0.502014 0.502014 0.509186 0.509186 0.509186 0.516449 0.516449 0.516449 0.523651 0.523651 0.523651 0.531158 0.531158 0.531158 0.538727 0.538727 0.538727 0.546295 0.546295 0.546295 0.554169 0.554169 0.554169 0.562134 0.562134 0.562134 0.570068 0.570068 0.570068 0.578308 0.578308 0.578308 0.586517 0.586517 0.586517 0.595032 0.595032 0.595032 0.603607 0.603607 0.603607 0.612061 0.612061 0.612061 0.620758 0.620758 0.620758 0.629517 0.629517 0.629517 0.638031 0.638031 0.638031 0.646790 0.646790 0.646790 0.655518 0.655518 0.655518 0.664001 0.664001 0.664001 0.672607 0.672607 0.672607 0.680969 0.680969 0.680969 0.454102 0.454102 0.454102 0.460693 0.460693 0.460693 0.467468 0.467468 0.467468 0.474304 0.474304 0.474304 0.481018 0.481018 0.481018 0.487915 0.487915 0.487915 0.494781 0.494781 0.494781 0.501862 0.501862 0.501862 0.509003 0.509003 0.509003 0.516113 0.516113 0.516113 0.523468 0.523468 0.523468 0.530945 0.530945 0.530945 0.538361 0.538361 0.538361 0.546112 0.546112 0.546112 0.553955 0.553955 0.553955 0.561737 0.561737 0.561737 0.569885 0.569885 0.569885 0.577911 0.577911 0.577911 0.586304 0.586304 0.586304 0.594818 0.594818 0.594818 0.603180 0.603180 0.603180 0.611847 0.611847 0.611847 0.620544 0.620544 0.620544 0.629059 0.629059 0.629059 0.637817 0.637817 0.637817 0.646576 0.646576 0.646576 0.655090 0.655090 0.655090 0.663788 0.663788 0.663788 0.672150 0.672150 0.672150 0.680756 0.680756 0.680756 0.689209 0.689209 0.689209 0.697388 0.697388 0.697388 0.467316 0.467316 0.467316 0.473938 0.473938 0.473938 0.480835 0.480835 0.480835 0.487762 0.487762 0.487762 0.494568 0.494568 0.494568 0.501678 0.501678 0.501678 0.508636 0.508636 0.508636 0.515900 0.515900 0.515900 0.523285 0.523285 0.523285 0.530579 0.530579 0.530579 0.538177 0.538177 0.538177 0.545898 0.545898 0.545898 0.553558 0.553558 0.553558 0.561554 0.561554 0.561554 0.569672 0.569672 0.569672 0.577698 0.577698 0.577698 0.586090 0.586090 0.586090 0.594391 0.594391 0.594391 0.602966 0.602966 0.602966 0.611603 0.611603 0.611603 0.620117 0.620117 0.620117 0.628845 0.628845 0.628845 0.637604 0.637604 0.637604 0.646149 0.646149 0.646149 0.654877 0.654877 0.654877 0.663574 0.663574 0.663574 0.671936 0.671936 0.671936 0.680511 0.680511 0.680511 0.688812 0.688812 0.688812 0.697205 0.697205 0.697205 0.705414 0.705414 0.705414 0.713348 0.713348 0.713348 0.480682 0.480682 0.480682 0.487427 0.487427 0.487427 0.494415 0.494415 0.494415 0.501312 0.501312 0.501312 0.508453 0.508453 0.508453 0.515747 0.515747 0.515747 0.522888 0.522888 0.522888 0.530396 0.530396 0.530396 0.537964 0.537964 0.537964 0.545502 0.545502 0.545502 0.553375 0.553375 0.553375 0.561340 0.561340 0.561340 0.569244 0.569244 0.569244 0.577515 0.577515 0.577515 0.585663 0.585663 0.585663 0.594147 0.594147 0.594147 0.602722 0.602722 0.602722 0.611176 0.611176 0.611176 0.619873 0.619873 0.619873 0.628632 0.628632 0.628632 0.637146 0.637146 0.637146 0.645905 0.645905 0.645905 0.654633 0.654633 0.654633 0.663116 0.663116 0.663116 0.671753 0.671753 0.671753 0.680084 0.680084 0.680084 0.688568 0.688568 0.688568 0.696991 0.696991 0.696991 0.705017 0.705017 0.705017 0.713165 0.713165 0.713165 0.721130 0.721130 0.721130 0.728760 0.728760 0.728760 0.494232 0.494232 0.494232 0.501129 0.501129 0.501129 0.508301 0.508301 0.508301 0.515381 0.515381 0.515381 0.522736 0.522736 0.522736 0.530212 0.530212 0.530212 0.537598 0.537598 0.537598 0.545319 0.545319 0.545319 0.553162 0.553162 0.553162 0.560944 0.560944 0.560944 0.569061 0.569061 0.569061 0.577301 0.577301 0.577301 0.585449 0.585449 0.585449 0.593964 0.593964 0.593964 0.602325 0.602325 0.602325 0.610992 0.610992 0.610992 0.619690 0.619690 0.619690 0.628174 0.628174 0.628174 0.636963 0.636963 0.636963 0.645691 0.645691 0.645691 0.654236 0.654236 0.654236 0.662933 0.662933 0.662933 0.671539 0.671539 0.671539 0.679901 0.679901 0.679901 0.688354 0.688354 0.688354 0.696533 0.696533 0.696533 0.704803 0.704803 0.704803 0.712952 0.712952 0.712952 0.720703 0.720703 0.720703 0.728607 0.728607 0.728607 0.736237 0.736237 0.736237 0.743530 0.743530 0.743530 0.507935 0.507935 0.507935 0.515198 0.515198 0.515198 0.522552 0.522552 0.522552 0.529816 0.529816 0.529816 0.537415 0.537415 0.537415 0.545135 0.545135 0.545135 0.552734 0.552734 0.552734 0.560760 0.560760 0.560760 0.568817 0.568817 0.568817 0.576874 0.576874 0.576874 0.585266 0.585266 0.585266 0.593536 0.593536 0.593536 0.602081 0.602081 0.602081 0.610748 0.610748 0.610748 0.619232 0.619232 0.619232 0.627960 0.627960 0.627960 0.636719 0.636719 0.636719 0.645264 0.645264 0.645264 0.653992 0.653992 0.653992 0.662689 0.662689 0.662689 0.671112 0.671112 0.671112 0.679657 0.679657 0.679657 0.687958 0.687958 0.687958 0.696350 0.696350 0.696350 0.704590 0.704590 0.704590 0.712524 0.712524 0.712524 0.720551 0.720551 0.720551 0.728363 0.728363 0.728363 0.735870 0.735870 0.735870 0.743378 0.743378 0.743378 0.750671 0.750671 0.750671 0.757599 0.757599 0.757599 0.056793 0.056793 0.056793 0.061249 0.061249 0.061249 0.065308 0.065308 0.065308 0.069366 0.069366 0.069366 0.073761 0.073761 0.073761 0.078247 0.078247 0.078247 0.083069 0.083069 0.083069 0.088165 0.088165 0.088165 0.093353 0.093353 0.093353 0.098907 0.098907 0.098907 0.104797 0.104797 0.104797 0.110870 0.110870 0.110870 0.117340 0.117340 0.117340 0.124268 0.124268 0.124268 0.131348 0.131348 0.131348 0.139038 0.139038 0.139038 0.146973 0.146973 0.146973 0.155609 0.155609 0.155609 0.164734 0.164734 0.164734 0.174072 0.174072 0.174072 0.184021 0.184021 0.184021 0.194244 0.194244 0.194244 0.204346 0.204346 0.204346 0.214752 0.214752 0.214752 0.225128 0.225128 0.225128 0.235077 0.235077 0.235077 0.245117 0.245117 0.245117 0.254730 0.254730 0.254730 0.264404 0.264404 0.264404 0.273895 0.273895 0.273895 0.282990 0.282990 0.282990 0.292114 0.292114 0.292114 0.065125 0.065125 0.065125 0.069275 0.069275 0.069275 0.073517 0.073517 0.073517 0.078094 0.078094 0.078094 0.082947 0.082947 0.082947 0.087891 0.087891 0.087891 0.093231 0.093231 0.093231 0.098785 0.098785 0.098785 0.104492 0.104492 0.104492 0.110687 0.110687 0.110687 0.117218 0.117218 0.117218 0.123901 0.123901 0.123901 0.131134 0.131134 0.131134 0.138641 0.138641 0.138641 0.146759 0.146759 0.146759 0.155396 0.155396 0.155396 0.164246 0.164246 0.164246 0.173828 0.173828 0.173828 0.183777 0.183777 0.183777 0.193695 0.193695 0.193695 0.204102 0.204102 0.204102 0.214508 0.214508 0.214508 0.224609 0.224609 0.224609 0.234833 0.234833 0.234833 0.244843 0.244843 0.244843 0.254456 0.254456 0.254456 0.264160 0.264160 0.264160 0.273407 0.273407 0.273407 0.282745 0.282745 0.282745 0.291870 0.291870 0.291870 0.300598 0.300598 0.300598 0.309357 0.309357 0.309357 0.073395 0.073395 0.073395 0.078003 0.078003 0.078003 0.082703 0.082703 0.082703 0.087769 0.087769 0.087769 0.093079 0.093079 0.093079 0.098480 0.098480 0.098480 0.104370 0.104370 0.104370 0.110504 0.110504 0.110504 0.116852 0.116852 0.116852 0.123718 0.123718 0.123718 0.130981 0.130981 0.130981 0.138458 0.138458 0.138458 0.146576 0.146576 0.146576 0.154907 0.154907 0.154907 0.164001 0.164001 0.164001 0.173584 0.173584 0.173584 0.183289 0.183289 0.183289 0.193451 0.193451 0.193451 0.203827 0.203827 0.203827 0.213989 0.213989 0.213989 0.224335 0.224335 0.224335 0.234558 0.234558 0.234558 0.244354 0.244354 0.244354 0.254211 0.254211 0.254211 0.263672 0.263672 0.263672 0.273193 0.273193 0.273193 0.282501 0.282501 0.282501 0.291412 0.291412 0.291412 0.300385 0.300385 0.300385 0.309143 0.309143 0.309143 0.317535 0.317535 0.317535 0.325958 0.325958 0.325958 0.082581 0.082581 0.082581 0.087646 0.087646 0.087646 0.092804 0.092804 0.092804 0.098358 0.098358 0.098358 0.104218 0.104218 0.104218 0.110229 0.110229 0.110229 0.116699 0.116699 0.116699 0.123535 0.123535 0.123535 0.130615 0.130615 0.130615 0.138245 0.138245 0.138245 0.146149 0.146149 0.146149 0.154694 0.154694 0.154694 0.163788 0.163788 0.163788 0.173096 0.173096 0.173096 0.182983 0.182983 0.182983 0.193207 0.193207 0.193207 0.203308 0.203308 0.203308 0.213745 0.213745 0.213745 0.224091 0.224091 0.224091 0.234070 0.234070 0.234070 0.244110 0.244110 0.244110 0.253967 0.253967 0.253967 0.263428 0.263428 0.263428 0.272949 0.272949 0.272949 0.282043 0.282043 0.282043 0.291199 0.291199 0.291199 0.300140 0.300140 0.300140 0.308716 0.308716 0.308716 0.317291 0.317291 0.317291 0.325745 0.325745 0.325745 0.333801 0.333801 0.333801 0.341858 0.341858 0.341858 0.092682 0.092682 0.092682 0.098206 0.098206 0.098206 0.103882 0.103882 0.103882 0.110077 0.110077 0.110077 0.116516 0.116516 0.116516 0.123199 0.123199 0.123199 0.130432 0.130432 0.130432 0.138062 0.138062 0.138062 0.145935 0.145935 0.145935 0.154510 0.154510 0.154510 0.163330 0.163330 0.163330 0.172852 0.172852 0.172852 0.182739 0.182739 0.182739 0.192657 0.192657 0.192657 0.203033 0.203033 0.203033 0.213470 0.213470 0.213470 0.223572 0.223572 0.223572 0.233826 0.233826 0.233826 0.243866 0.243866 0.243866 0.253479 0.253479 0.253479 0.263184 0.263184 0.263184 0.272491 0.272491 0.272491 0.281830 0.281830 0.281830 0.290985 0.290985 0.290985 0.299713 0.299713 0.299713 0.308502 0.308502 0.308502 0.317108 0.317108 0.317108 0.325317 0.325317 0.325317 0.333588 0.333588 0.333588 0.341675 0.341675 0.341675 0.349396 0.349396 0.349396 0.357208 0.357208 0.357208 0.103760 0.103760 0.103760 0.109894 0.109894 0.109894 0.116211 0.116211 0.116211 0.123016 0.123016 0.123016 0.130219 0.130219 0.130219 0.137665 0.137665 0.137665 0.145721 0.145721 0.145721 0.154022 0.154022 0.154022 0.163116 0.163116 0.163116 0.172638 0.172638 0.172638 0.182251 0.182251 0.182251 0.192413 0.192413 0.192413 0.202789 0.202789 0.202789 0.212952 0.212952 0.212952 0.223328 0.223328 0.223328 0.233551 0.233551 0.233551 0.243378 0.243378 0.243378 0.253265 0.253265 0.253265 0.262970 0.262970 0.262970 0.272247 0.272247 0.272247 0.281586 0.281586 0.281586 0.290527 0.290527 0.290527 0.299500 0.299500 0.299500 0.308289 0.308289 0.308289 0.316681 0.316681 0.316681 0.325104 0.325104 0.325104 0.333374 0.333374 0.333374 0.341278 0.341278 0.341278 0.349213 0.349213 0.349213 0.356995 0.356995 0.356995 0.364471 0.364471 0.364471 0.371979 0.371979 0.371979 0.116058 0.116058 0.116058 0.122833 0.122833 0.122833 0.129852 0.129852 0.129852 0.137451 0.137451 0.137451 0.145538 0.145538 0.145538 0.153839 0.153839 0.153839 0.162872 0.162872 0.162872 0.172150 0.172150 0.172150 0.182007 0.182007 0.182007 0.192169 0.192169 0.192169 0.202271 0.202271 0.202271 0.212646 0.212646 0.212646 0.223053 0.223053 0.223053 0.233032 0.233032 0.233032 0.243103 0.243103 0.243103 0.253021 0.253021 0.253021 0.262482 0.262482 0.262482 0.272003 0.272003 0.272003 0.281097 0.281097 0.281097 0.290283 0.290283 0.290283 0.299255 0.299255 0.299255 0.307861 0.307861 0.307861 0.316467 0.316467 0.316467 0.324890 0.324890 0.324890 0.332977 0.332977 0.332977 0.341064 0.341064 0.341064 0.349030 0.349030 0.349030 0.356598 0.356598 0.356598 0.364258 0.364258 0.364258 0.371613 0.371613 0.371613 0.378967 0.378967 0.378967 0.386261 0.386261 0.386261 0.129700 0.129700 0.129700 0.137268 0.137268 0.137268 0.145111 0.145111 0.145111 0.153595 0.153595 0.153595 0.162415 0.162415 0.162415 0.171906 0.171906 0.171906 0.181732 0.181732 0.181732 0.191650 0.191650 0.191650 0.202026 0.202026 0.202026 0.212402 0.212402 0.212402 0.222534 0.222534 0.222534 0.232788 0.232788 0.232788 0.242828 0.242828 0.242828 0.252502 0.252502 0.252502 0.262238 0.262238 0.262238 0.271545 0.271545 0.271545 0.280884 0.280884 0.280884 0.290039 0.290039 0.290039 0.298828 0.298828 0.298828 0.307617 0.307617 0.307617 0.316254 0.316254 0.316254 0.324493 0.324493 0.324493 0.332764 0.332764 0.332764 0.340881 0.340881 0.340881 0.348633 0.348633 0.348633 0.356445 0.356445 0.356445 0.364105 0.364105 0.364105 0.371399 0.371399 0.371399 0.378815 0.378815 0.378815 0.385925 0.385925 0.385925 0.393097 0.393097 0.393097 0.400146 0.400146 0.400146 0.144897 0.144897 0.144897 0.153381 0.153381 0.153381 0.162170 0.162170 0.162170 0.171631 0.171631 0.171631 0.181244 0.181244 0.181244 0.191376 0.191376 0.191376 0.201721 0.201721 0.201721 0.211884 0.211884 0.211884 0.222260 0.222260 0.222260 0.232513 0.232513 0.232513 0.242371 0.242371 0.242371 0.252258 0.252258 0.252258 0.261993 0.261993 0.261993 0.271301 0.271301 0.271301 0.280670 0.280670 0.280670 0.289612 0.289612 0.289612 0.298584 0.298584 0.298584 0.307434 0.307434 0.307434 0.315826 0.315826 0.315826 0.324280 0.324280 0.324280 0.332581 0.332581 0.332581 0.340485 0.340485 0.340485 0.348419 0.348419 0.348419 0.356232 0.356232 0.356232 0.363708 0.363708 0.363708 0.371246 0.371246 0.371246 0.378448 0.378448 0.378448 0.385742 0.385742 0.385742 0.392883 0.392883 0.392883 0.399811 0.399811 0.399811 0.406799 0.406799 0.406799 0.413727 0.413727 0.413727 0.161926 0.161926 0.161926 0.171417 0.171417 0.171417 0.181000 0.181000 0.181000 0.191132 0.191132 0.191132 0.201233 0.201233 0.201233 0.211639 0.211639 0.211639 0.222015 0.222015 0.222015 0.232025 0.232025 0.232025 0.242126 0.242126 0.242126 0.252014 0.252014 0.252014 0.261505 0.261505 0.261505 0.271057 0.271057 0.271057 0.280426 0.280426 0.280426 0.289368 0.289368 0.289368 0.298370 0.298370 0.298370 0.306976 0.306976 0.306976 0.315613 0.315613 0.315613 0.324066 0.324066 0.324066 0.332153 0.332153 0.332153 0.340271 0.340271 0.340271 0.348236 0.348236 0.348236 0.355835 0.355835 0.355835 0.363495 0.363495 0.363495 0.371033 0.371033 0.371033 0.378265 0.378265 0.378265 0.385559 0.385559 0.385559 0.392548 0.392548 0.392548 0.399628 0.399628 0.399628 0.406616 0.406616 0.406616 0.413361 0.413361 0.413361 0.420227 0.420227 0.420227 0.427063 0.427063 0.427063 0.180725 0.180725 0.180725 0.190643 0.190643 0.190643 0.200958 0.200958 0.200958 0.211365 0.211365 0.211365 0.221527 0.221527 0.221527 0.231750 0.231750 0.231750 0.241882 0.241882 0.241882 0.251526 0.251526 0.251526 0.261261 0.261261 0.261261 0.270813 0.270813 0.270813 0.279968 0.279968 0.279968 0.289124 0.289124 0.289124 0.297943 0.297943 0.297943 0.306763 0.306763 0.306763 0.315399 0.315399 0.315399 0.323639 0.323639 0.323639 0.331940 0.331940 0.331940 0.340088 0.340088 0.340088 0.347870 0.347870 0.347870 0.355682 0.355682 0.355682 0.363312 0.363312 0.363312 0.370667 0.370667 0.370667 0.378082 0.378082 0.378082 0.385162 0.385162 0.385162 0.392365 0.392365 0.392365 0.399445 0.399445 0.399445 0.406281 0.406281 0.406281 0.413208 0.413208 0.413208 0.420074 0.420074 0.420074 0.426727 0.426727 0.426727 0.433502 0.433502 0.433502 0.440277 0.440277 0.440277 0.200714 0.200714 0.200714 0.210846 0.210846 0.210846 0.221252 0.221252 0.221252 0.231476 0.231476 0.231476 0.241364 0.241364 0.241364 0.251282 0.251282 0.251282 0.261047 0.261047 0.261047 0.270355 0.270355 0.270355 0.279724 0.279724 0.279724 0.288910 0.288910 0.288910 0.297699 0.297699 0.297699 0.306519 0.306519 0.306519 0.314972 0.314972 0.314972 0.323425 0.323425 0.323425 0.331757 0.331757 0.331757 0.339691 0.339691 0.339691 0.347656 0.347656 0.347656 0.355469 0.355469 0.355469 0.362946 0.362946 0.362946 0.370514 0.370514 0.370514 0.377899 0.377899 0.377899 0.385010 0.385010 0.385010 0.392181 0.392181 0.392181 0.399078 0.399078 0.399078 0.406097 0.406097 0.406097 0.413055 0.413055 0.413055 0.419708 0.419708 0.419708 0.426544 0.426544 0.426544 0.433319 0.433319 0.433319 0.439941 0.439941 0.439941 0.446686 0.446686 0.446686 0.453430 0.453430 0.453430 0.220978 0.220978 0.220978 0.231018 0.231018 0.231018 0.241119 0.241119 0.241119 0.251038 0.251038 0.251038 0.260559 0.260559 0.260559 0.270142 0.270142 0.270142 0.279510 0.279510 0.279510 0.288483 0.288483 0.288483 0.297485 0.297485 0.297485 0.306122 0.306122 0.306122 0.314728 0.314728 0.314728 0.323242 0.323242 0.323242 0.331329 0.331329 0.331329 0.339478 0.339478 0.339478 0.347443 0.347443 0.347443 0.355072 0.355072 0.355072 0.362762 0.362762 0.362762 0.370300 0.370300 0.370300 0.377502 0.377502 0.377502 0.384827 0.384827 0.384827 0.391846 0.391846 0.391846 0.398926 0.398926 0.398926 0.405914 0.405914 0.405914 0.412689 0.412689 0.412689 0.419556 0.419556 0.419556 0.426392 0.426392 0.426392 0.432983 0.432983 0.432983 0.439758 0.439758 0.439758 0.446503 0.446503 0.446503 0.453064 0.453064 0.453064 0.459869 0.459869 0.459869 0.466461 0.466461 0.466461 0.240875 0.240875 0.240875 0.250549 0.250549 0.250549 0.260315 0.260315 0.260315 0.269867 0.269867 0.269867 0.279053 0.279053 0.279053 0.288239 0.288239 0.288239 0.297272 0.297272 0.297272 0.305878 0.305878 0.305878 0.314545 0.314545 0.314545 0.322815 0.322815 0.322815 0.331116 0.331116 0.331116 0.339264 0.339264 0.339264 0.347046 0.347046 0.347046 0.354889 0.354889 0.354889 0.362579 0.362579 0.362579 0.369904 0.369904 0.369904 0.377350 0.377350 0.377350 0.384644 0.384644 0.384644 0.391663 0.391663 0.391663 0.398773 0.398773 0.398773 0.405579 0.405579 0.405579 0.412537 0.412537 0.412537 0.419403 0.419403 0.419403 0.426056 0.426056 0.426056 0.432831 0.432831 0.432831 0.439606 0.439606 0.439606 0.446167 0.446167 0.446167 0.452911 0.452911 0.452911 0.459656 0.459656 0.459656 0.466278 0.466278 0.466278 0.473114 0.473114 0.473114 0.479797 0.479797 0.479797 0.260040 0.260040 0.260040 0.269379 0.269379 0.269379 0.278809 0.278809 0.278809 0.288025 0.288025 0.288025 0.296783 0.296783 0.296783 0.305664 0.305664 0.305664 0.314117 0.314117 0.314117 0.322601 0.322601 0.322601 0.330902 0.330902 0.330902 0.338837 0.338837 0.338837 0.346863 0.346863 0.346863 0.354675 0.354675 0.354675 0.362183 0.362183 0.362183 0.369751 0.369751 0.369751 0.377136 0.377136 0.377136 0.384277 0.384277 0.384277 0.391449 0.391449 0.391449 0.398590 0.398590 0.398590 0.405426 0.405426 0.405426 0.412354 0.412354 0.412354 0.419037 0.419037 0.419037 0.425873 0.425873 0.425873 0.432648 0.432648 0.432648 0.439270 0.439270 0.439270 0.446014 0.446014 0.446014 0.452728 0.452728 0.452728 0.459320 0.459320 0.459320 0.466125 0.466125 0.466125 0.472778 0.472778 0.472778 0.479614 0.479614 0.479614 0.486542 0.486542 0.486542 0.493378 0.493378 0.493378 0.278564 0.278564 0.278564 0.287567 0.287567 0.287567 0.296600 0.296600 0.296600 0.305450 0.305450 0.305450 0.313904 0.313904 0.313904 0.322388 0.322388 0.322388 0.330505 0.330505 0.330505 0.338684 0.338684 0.338684 0.346649 0.346649 0.346649 0.354279 0.354279 0.354279 0.362000 0.362000 0.362000 0.369568 0.369568 0.369568 0.376770 0.376770 0.376770 0.384094 0.384094 0.384094 0.391296 0.391296 0.391296 0.398224 0.398224 0.398224 0.405243 0.405243 0.405243 0.412018 0.412018 0.412018 0.418884 0.418884 0.418884 0.425690 0.425690 0.425690 0.432312 0.432312 0.432312 0.439087 0.439087 0.439087 0.445831 0.445831 0.445831 0.452393 0.452393 0.452393 0.459167 0.459167 0.459167 0.465942 0.465942 0.465942 0.472595 0.472595 0.472595 0.479462 0.479462 0.479462 0.486176 0.486176 0.486176 0.493195 0.493195 0.493195 0.500244 0.500244 0.500244 0.507202 0.507202 0.507202 0.296387 0.296387 0.296387 0.304993 0.304993 0.304993 0.313690 0.313690 0.313690 0.322205 0.322205 0.322205 0.330322 0.330322 0.330322 0.338470 0.338470 0.338470 0.346252 0.346252 0.346252 0.354095 0.354095 0.354095 0.361816 0.361816 0.361816 0.369171 0.369171 0.369171 0.376587 0.376587 0.376587 0.383911 0.383911 0.383911 0.390961 0.390961 0.390961 0.398010 0.398010 0.398010 0.405060 0.405060 0.405060 0.411804 0.411804 0.411804 0.418732 0.418732 0.418732 0.425385 0.425385 0.425385 0.432159 0.432159 0.432159 0.438904 0.438904 0.438904 0.445496 0.445496 0.445496 0.452271 0.452271 0.452271 0.459015 0.459015 0.459015 0.465607 0.465607 0.465607 0.472412 0.472412 0.472412 0.479279 0.479279 0.479279 0.486023 0.486023 0.486023 0.493011 0.493011 0.493011 0.499878 0.499878 0.499878 0.507050 0.507050 0.507050 0.514282 0.514282 0.514282 0.521423 0.521423 0.521423 0.313446 0.313446 0.313446 0.321747 0.321747 0.321747 0.330109 0.330109 0.330109 0.338257 0.338257 0.338257 0.346069 0.346069 0.346069 0.353912 0.353912 0.353912 0.361420 0.361420 0.361420 0.368988 0.368988 0.368988 0.376434 0.376434 0.376434 0.383545 0.383545 0.383545 0.390747 0.390747 0.390747 0.397858 0.397858 0.397858 0.404724 0.404724 0.404724 0.411652 0.411652 0.411652 0.418549 0.418549 0.418549 0.425171 0.425171 0.425171 0.431976 0.431976 0.431976 0.438568 0.438568 0.438568 0.445343 0.445343 0.445343 0.452087 0.452087 0.452087 0.458649 0.458649 0.458649 0.465454 0.465454 0.465454 0.472260 0.472260 0.472260 0.478943 0.478943 0.478943 0.485870 0.485870 0.485870 0.492828 0.492828 0.492828 0.499695 0.499695 0.499695 0.506836 0.506836 0.506836 0.513885 0.513885 0.513885 0.521240 0.521240 0.521240 0.528687 0.528687 0.528687 0.536072 0.536072 0.536072 0.329895 0.329895 0.329895 0.337860 0.337860 0.337860 0.345886 0.345886 0.345886 0.353516 0.353516 0.353516 0.361267 0.361267 0.361267 0.368805 0.368805 0.368805 0.376068 0.376068 0.376068 0.383362 0.383362 0.383362 0.390594 0.390594 0.390594 0.397522 0.397522 0.397522 0.404510 0.404510 0.404510 0.411469 0.411469 0.411469 0.418182 0.418182 0.418182 0.425018 0.425018 0.425018 0.431641 0.431641 0.431641 0.438385 0.438385 0.438385 0.445160 0.445160 0.445160 0.451752 0.451752 0.451752 0.458496 0.458496 0.458496 0.465271 0.465271 0.465271 0.471893 0.471893 0.471893 0.478760 0.478760 0.478760 0.485687 0.485687 0.485687 0.492493 0.492493 0.492493 0.499512 0.499512 0.499512 0.506500 0.506500 0.506500 0.513702 0.513702 0.513702 0.521057 0.521057 0.521057 0.528320 0.528320 0.528320 0.535858 0.535858 0.535858 0.543579 0.543579 0.543579 0.551178 0.551178 0.551178 0.345673 0.345673 0.345673 0.353363 0.353363 0.353363 0.361053 0.361053 0.361053 0.368408 0.368408 0.368408 0.375854 0.375854 0.375854 0.383179 0.383179 0.383179 0.390228 0.390228 0.390228 0.397339 0.397339 0.397339 0.404358 0.404358 0.404358 0.411133 0.411133 0.411133 0.417999 0.417999 0.417999 0.424866 0.424866 0.424866 0.431488 0.431488 0.431488 0.438263 0.438263 0.438263 0.444824 0.444824 0.444824 0.451569 0.451569 0.451569 0.458313 0.458313 0.458313 0.464935 0.464935 0.464935 0.471741 0.471741 0.471741 0.478607 0.478607 0.478607 0.485321 0.485321 0.485321 0.492310 0.492310 0.492310 0.499329 0.499329 0.499329 0.506317 0.506317 0.506317 0.513519 0.513519 0.513519 0.520660 0.520660 0.520660 0.528137 0.528137 0.528137 0.535706 0.535706 0.535706 0.543182 0.543182 0.543182 0.550995 0.550995 0.550995 0.558929 0.558929 0.558929 0.566803 0.566803 0.566803 0.360657 0.360657 0.360657 0.368225 0.368225 0.368225 0.375702 0.375702 0.375702 0.382843 0.382843 0.382843 0.390045 0.390045 0.390045 0.397186 0.397186 0.397186 0.403992 0.403992 0.403992 0.410980 0.410980 0.410980 0.417847 0.417847 0.417847 0.424500 0.424500 0.424500 0.431305 0.431305 0.431305 0.437897 0.437897 0.437897 0.444641 0.444641 0.444641 0.451416 0.451416 0.451416 0.457977 0.457977 0.457977 0.464752 0.464752 0.464752 0.471588 0.471588 0.471588 0.478241 0.478241 0.478241 0.485138 0.485138 0.485138 0.492126 0.492126 0.492126 0.498993 0.498993 0.498993 0.506134 0.506134 0.506134 0.513367 0.513367 0.513367 0.520508 0.520508 0.520508 0.527954 0.527954 0.527954 0.535339 0.535339 0.535339 0.542999 0.542999 0.542999 0.550781 0.550781 0.550781 0.558563 0.558563 0.558563 0.566589 0.566589 0.566589 0.574799 0.574799 0.574799 0.582947 0.582947 0.582947 0.375336 0.375336 0.375336 0.382660 0.382660 0.382660 0.389862 0.389862 0.389862 0.396820 0.396820 0.396820 0.403839 0.403839 0.403839 0.410797 0.410797 0.410797 0.417480 0.417480 0.417480 0.424347 0.424347 0.424347 0.431122 0.431122 0.431122 0.437744 0.437744 0.437744 0.444489 0.444489 0.444489 0.451080 0.451080 0.451080 0.457825 0.457825 0.457825 0.464600 0.464600 0.464600 0.471222 0.471222 0.471222 0.478088 0.478088 0.478088 0.484985 0.484985 0.484985 0.491760 0.491760 0.491760 0.498840 0.498840 0.498840 0.505951 0.505951 0.505951 0.513000 0.513000 0.513000 0.520325 0.520325 0.520325 0.527557 0.527557 0.527557 0.535126 0.535126 0.535126 0.542786 0.542786 0.542786 0.550385 0.550385 0.550385 0.558319 0.558319 0.558319 0.566376 0.566376 0.566376 0.574402 0.574402 0.574402 0.582703 0.582703 0.582703 0.591187 0.591187 0.591187 0.599518 0.599518 0.599518 0.389526 0.389526 0.389526 0.396637 0.396637 0.396637 0.403656 0.403656 0.403656 0.410461 0.410461 0.410461 0.417328 0.417328 0.417328 0.424164 0.424164 0.424164 0.430817 0.430817 0.430817 0.437592 0.437592 0.437592 0.444153 0.444153 0.444153 0.450897 0.450897 0.450897 0.457642 0.457642 0.457642 0.464233 0.464233 0.464233 0.471069 0.471069 0.471069 0.477936 0.477936 0.477936 0.484650 0.484650 0.484650 0.491608 0.491608 0.491608 0.498627 0.498627 0.498627 0.505615 0.505615 0.505615 0.512817 0.512817 0.512817 0.520142 0.520142 0.520142 0.527374 0.527374 0.527374 0.534943 0.534943 0.534943 0.542389 0.542389 0.542389 0.550201 0.550201 0.550201 0.558136 0.558136 0.558136 0.565979 0.565979 0.565979 0.574188 0.574188 0.574188 0.582520 0.582520 0.582520 0.590759 0.590759 0.590759 0.599304 0.599304 0.599304 0.607941 0.607941 0.607941 0.616394 0.616394 0.616394 0.403320 0.403320 0.403320 0.410278 0.410278 0.410278 0.417175 0.417175 0.417175 0.423828 0.423828 0.423828 0.430603 0.430603 0.430603 0.437378 0.437378 0.437378 0.443970 0.443970 0.443970 0.450714 0.450714 0.450714 0.457306 0.457306 0.457306 0.464081 0.464081 0.464081 0.470886 0.470886 0.470886 0.477570 0.477570 0.477570 0.484467 0.484467 0.484467 0.491425 0.491425 0.491425 0.498291 0.498291 0.498291 0.505432 0.505432 0.505432 0.512634 0.512634 0.512634 0.519775 0.519775 0.519775 0.527191 0.527191 0.527191 0.534546 0.534546 0.534546 0.542206 0.542206 0.542206 0.550018 0.550018 0.550018 0.557709 0.557709 0.557709 0.565765 0.565765 0.565765 0.573975 0.573975 0.573975 0.582092 0.582092 0.582092 0.590546 0.590546 0.590546 0.599091 0.599091 0.599091 0.607513 0.607513 0.607513 0.616211 0.616211 0.616211 0.624695 0.624695 0.624695 0.633453 0.633453 0.633453 0.416840 0.416840 0.416840 0.423676 0.423676 0.423676 0.430450 0.430450 0.430450 0.437073 0.437073 0.437073 0.443817 0.443817 0.443817 0.450378 0.450378 0.450378 0.457123 0.457123 0.457123 0.463928 0.463928 0.463928 0.470551 0.470551 0.470551 0.477386 0.477386 0.477386 0.484283 0.484283 0.484283 0.491089 0.491089 0.491089 0.498077 0.498077 0.498077 0.505219 0.505219 0.505219 0.512268 0.512268 0.512268 0.519592 0.519592 0.519592 0.527008 0.527008 0.527008 0.534363 0.534363 0.534363 0.542023 0.542023 0.542023 0.549622 0.549622 0.549622 0.557526 0.557526 0.557526 0.565582 0.565582 0.565582 0.573578 0.573578 0.573578 0.581909 0.581909 0.581909 0.590332 0.590332 0.590332 0.598663 0.598663 0.598663 0.607269 0.607269 0.607269 0.615967 0.615967 0.615967 0.624481 0.624481 0.624481 0.633240 0.633240 0.633240 0.641785 0.641785 0.641785 0.650513 0.650513 0.650513 0.430115 0.430115 0.430115 0.436890 0.436890 0.436890 0.443665 0.443665 0.443665 0.450226 0.450226 0.450226 0.456970 0.456970 0.456970 0.463562 0.463562 0.463562 0.470367 0.470367 0.470367 0.477203 0.477203 0.477203 0.483948 0.483948 0.483948 0.490906 0.490906 0.490906 0.497955 0.497955 0.497955 0.504883 0.504883 0.504883 0.512085 0.512085 0.512085 0.519379 0.519379 0.519379 0.526642 0.526642 0.526642 0.534180 0.534180 0.534180 0.541656 0.541656 0.541656 0.549408 0.549408 0.549408 0.557343 0.557343 0.557343 0.565186 0.565186 0.565186 0.573364 0.573364 0.573364 0.581696 0.581696 0.581696 0.589905 0.589905 0.589905 0.598450 0.598450 0.598450 0.607056 0.607056 0.607056 0.615540 0.615540 0.615540 0.624237 0.624237 0.624237 0.632812 0.632812 0.632812 0.641541 0.641541 0.641541 0.650299 0.650299 0.650299 0.658783 0.658783 0.658783 0.667450 0.667450 0.667450 0.443298 0.443298 0.443298 0.450073 0.450073 0.450073 0.456635 0.456635 0.456635 0.463409 0.463409 0.463409 0.470184 0.470184 0.470184 0.476868 0.476868 0.476868 0.483734 0.483734 0.483734 0.490692 0.490692 0.490692 0.497589 0.497589 0.497589 0.504700 0.504700 0.504700 0.511902 0.511902 0.511902 0.519043 0.519043 0.519043 0.526428 0.526428 0.526428 0.533783 0.533783 0.533783 0.541443 0.541443 0.541443 0.549225 0.549225 0.549225 0.556946 0.556946 0.556946 0.564972 0.564972 0.564972 0.573151 0.573151 0.573151 0.581268 0.581268 0.581268 0.589691 0.589691 0.589691 0.598236 0.598236 0.598236 0.606628 0.606628 0.606628 0.615295 0.615295 0.615295 0.624023 0.624023 0.624023 0.632568 0.632568 0.632568 0.641296 0.641296 0.641296 0.649841 0.649841 0.649841 0.658569 0.658569 0.658569 0.667206 0.667206 0.667206 0.675629 0.675629 0.675629 0.684143 0.684143 0.684143 0.456451 0.456451 0.456451 0.463226 0.463226 0.463226 0.469879 0.469879 0.469879 0.476685 0.476685 0.476685 0.483612 0.483612 0.483612 0.490387 0.490387 0.490387 0.497406 0.497406 0.497406 0.504517 0.504517 0.504517 0.511536 0.511536 0.511536 0.518860 0.518860 0.518860 0.526245 0.526245 0.526245 0.533600 0.533600 0.533600 0.541260 0.541260 0.541260 0.548828 0.548828 0.548828 0.556732 0.556732 0.556732 0.564758 0.564758 0.564758 0.572754 0.572754 0.572754 0.581024 0.581024 0.581024 0.589478 0.589478 0.589478 0.597809 0.597809 0.597809 0.606445 0.606445 0.606445 0.615112 0.615112 0.615112 0.623596 0.623596 0.623596 0.632355 0.632355 0.632355 0.640869 0.640869 0.640869 0.649628 0.649628 0.649628 0.658356 0.658356 0.658356 0.666779 0.666779 0.666779 0.675385 0.675385 0.675385 0.683960 0.683960 0.683960 0.692139 0.692139 0.692139 0.700470 0.700470 0.700470 0.469696 0.469696 0.469696 0.476532 0.476532 0.476532 0.483246 0.483246 0.483246 0.490173 0.490173 0.490173 0.497223 0.497223 0.497223 0.504181 0.504181 0.504181 0.511353 0.511353 0.511353 0.518677 0.518677 0.518677 0.525879 0.525879 0.525879 0.533417 0.533417 0.533417 0.540863 0.540863 0.540863 0.548645 0.548645 0.548645 0.556519 0.556519 0.556519 0.564362 0.564362 0.564362 0.572540 0.572540 0.572540 0.580841 0.580841 0.580841 0.589081 0.589081 0.589081 0.597595 0.597595 0.597595 0.606201 0.606201 0.606201 0.614655 0.614655 0.614655 0.623383 0.623383 0.623383 0.632141 0.632141 0.632141 0.640656 0.640656 0.640656 0.649414 0.649414 0.649414 0.657898 0.657898 0.657898 0.666565 0.666565 0.666565 0.675201 0.675201 0.675201 0.683502 0.683502 0.683502 0.691956 0.691956 0.691956 0.700287 0.700287 0.700287 0.708282 0.708282 0.708282 0.716339 0.716339 0.716339 0.483063 0.483063 0.483063 0.490051 0.490051 0.490051 0.496887 0.496887 0.496887 0.503967 0.503967 0.503967 0.511200 0.511200 0.511200 0.518280 0.518280 0.518280 0.525696 0.525696 0.525696 0.533234 0.533234 0.533234 0.540680 0.540680 0.540680 0.548431 0.548431 0.548431 0.556152 0.556152 0.556152 0.564178 0.564178 0.564178 0.572327 0.572327 0.572327 0.580414 0.580414 0.580414 0.588837 0.588837 0.588837 0.597382 0.597382 0.597382 0.605774 0.605774 0.605774 0.614441 0.614441 0.614441 0.623169 0.623169 0.623169 0.631683 0.631683 0.631683 0.640472 0.640472 0.640472 0.648987 0.648987 0.648987 0.657684 0.657684 0.657684 0.666351 0.666351 0.666351 0.674744 0.674744 0.674744 0.683319 0.683319 0.683319 0.691742 0.691742 0.691742 0.699890 0.699890 0.699890 0.708069 0.708069 0.708069 0.716156 0.716156 0.716156 0.723907 0.723907 0.723907 0.731659 0.731659 0.731659 0.496704 0.496704 0.496704 0.503784 0.503784 0.503784 0.510803 0.510803 0.510803 0.518127 0.518127 0.518127 0.525513 0.525513 0.525513 0.532867 0.532867 0.532867 0.540466 0.540466 0.540466 0.548065 0.548065 0.548065 0.555939 0.555939 0.555939 0.563995 0.563995 0.563995 0.571899 0.571899 0.571899 0.580231 0.580231 0.580231 0.588623 0.588623 0.588623 0.596954 0.596954 0.596954 0.605560 0.605560 0.605560 0.614258 0.614258 0.614258 0.622742 0.622742 0.622742 0.631500 0.631500 0.631500 0.640228 0.640228 0.640228 0.648773 0.648773 0.648773 0.657471 0.657471 0.657471 0.665924 0.665924 0.665924 0.674561 0.674561 0.674561 0.683075 0.683075 0.683075 0.691315 0.691315 0.691315 0.699677 0.699677 0.699677 0.707855 0.707855 0.707855 0.715759 0.715759 0.715759 0.723694 0.723694 0.723694 0.731445 0.731445 0.731445 0.738892 0.738892 0.738892 0.746307 0.746307 0.746307 0.510651 0.510651 0.510651 0.517944 0.517944 0.517944 0.525146 0.525146 0.525146 0.532654 0.532654 0.532654 0.540283 0.540283 0.540283 0.547821 0.547821 0.547821 0.555725 0.555725 0.555725 0.563538 0.563538 0.563538 0.571686 0.571686 0.571686 0.580017 0.580017 0.580017 0.588196 0.588196 0.588196 0.596741 0.596741 0.596741 0.605347 0.605347 0.605347 0.613770 0.613770 0.613770 0.622528 0.622528 0.622528 0.631256 0.631256 0.631256 0.639801 0.639801 0.639801 0.648529 0.648529 0.648529 0.657074 0.657074 0.657074 0.665680 0.665680 0.665680 0.674347 0.674347 0.674347 0.682648 0.682648 0.682648 0.691101 0.691101 0.691101 0.699432 0.699432 0.699432 0.707458 0.707458 0.707458 0.715576 0.715576 0.715576 0.723511 0.723511 0.723511 0.731079 0.731079 0.731079 0.738708 0.738708 0.738708 0.745941 0.745941 0.745941 0.753174 0.753174 0.753174 0.760193 0.760193 0.760193 0.058929 0.058929 0.058929 0.062622 0.062622 0.062622 0.066711 0.066711 0.066711 0.071014 0.071014 0.071014 0.075378 0.075378 0.075378 0.080048 0.080048 0.080048 0.084961 0.084961 0.084961 0.089996 0.089996 0.089996 0.095367 0.095367 0.095367 0.101105 0.101105 0.101105 0.106964 0.106964 0.106964 0.113251 0.113251 0.113251 0.119720 0.119720 0.119720 0.126740 0.126740 0.126740 0.134186 0.134186 0.134186 0.141846 0.141846 0.141846 0.150146 0.150146 0.150146 0.158966 0.158966 0.158966 0.168060 0.168060 0.168060 0.177734 0.177734 0.177734 0.187805 0.187805 0.187805 0.197845 0.197845 0.197845 0.208252 0.208252 0.208252 0.218414 0.218414 0.218414 0.228699 0.228699 0.228699 0.238892 0.238892 0.238892 0.248596 0.248596 0.248596 0.258362 0.258362 0.258362 0.267975 0.267975 0.267975 0.277161 0.277161 0.277161 0.286407 0.286407 0.286407 0.295471 0.295471 0.295471 0.066589 0.066589 0.066589 0.070801 0.070801 0.070801 0.075256 0.075256 0.075256 0.079956 0.079956 0.079956 0.084717 0.084717 0.084717 0.089874 0.089874 0.089874 0.095245 0.095245 0.095245 0.100800 0.100800 0.100800 0.106812 0.106812 0.106812 0.112946 0.112946 0.112946 0.119568 0.119568 0.119568 0.126587 0.126587 0.126587 0.133789 0.133789 0.133789 0.141632 0.141632 0.141632 0.149963 0.149963 0.149963 0.158508 0.158508 0.158508 0.167816 0.167816 0.167816 0.177490 0.177490 0.177490 0.187317 0.187317 0.187317 0.197601 0.197601 0.197601 0.207733 0.207733 0.207733 0.218140 0.218140 0.218140 0.228455 0.228455 0.228455 0.238373 0.238373 0.238373 0.248352 0.248352 0.248352 0.258118 0.258118 0.258118 0.267517 0.267517 0.267517 0.276917 0.276917 0.276917 0.286194 0.286194 0.286194 0.295013 0.295013 0.295013 0.303925 0.303925 0.303925 0.312378 0.312378 0.312378 0.075134 0.075134 0.075134 0.079681 0.079681 0.079681 0.084595 0.084595 0.084595 0.089722 0.089722 0.089722 0.094971 0.094971 0.094971 0.100647 0.100647 0.100647 0.106628 0.106628 0.106628 0.112762 0.112762 0.112762 0.119415 0.119415 0.119415 0.126221 0.126221 0.126221 0.133606 0.133606 0.133606 0.141449 0.141449 0.141449 0.149506 0.149506 0.149506 0.158264 0.158264 0.158264 0.167572 0.167572 0.167572 0.177032 0.177032 0.177032 0.187073 0.187073 0.187073 0.197357 0.197357 0.197357 0.207458 0.207458 0.207458 0.217896 0.217896 0.217896 0.227966 0.227966 0.227966 0.238098 0.238098 0.238098 0.248108 0.248108 0.248108 0.257629 0.257629 0.257629 0.267273 0.267273 0.267273 0.276703 0.276703 0.276703 0.285736 0.285736 0.285736 0.294830 0.294830 0.294830 0.303680 0.303680 0.303680 0.312195 0.312195 0.312195 0.320709 0.320709 0.320709 0.328827 0.328827 0.328827 0.084473 0.084473 0.084473 0.089447 0.089447 0.089447 0.094818 0.094818 0.094818 0.100525 0.100525 0.100525 0.106323 0.106323 0.106323 0.112610 0.112610 0.112610 0.119080 0.119080 0.119080 0.126068 0.126068 0.126068 0.133423 0.133423 0.133423 0.141052 0.141052 0.141052 0.149323 0.149323 0.149323 0.158081 0.158081 0.158081 0.167114 0.167114 0.167114 0.176788 0.176788 0.176788 0.186829 0.186829 0.186829 0.196808 0.196808 0.196808 0.207214 0.207214 0.207214 0.217621 0.217621 0.217621 0.227692 0.227692 0.227692 0.237854 0.237854 0.237854 0.247589 0.247589 0.247589 0.257385 0.257385 0.257385 0.267059 0.267059 0.267059 0.276245 0.276245 0.276245 0.285492 0.285492 0.285492 0.294586 0.294586 0.294586 0.303253 0.303253 0.303253 0.311981 0.311981 0.311981 0.320496 0.320496 0.320496 0.328674 0.328674 0.328674 0.336853 0.336853 0.336853 0.344666 0.344666 0.344666 0.094696 0.094696 0.094696 0.100220 0.100220 0.100220 0.106171 0.106171 0.106171 0.112427 0.112427 0.112427 0.118896 0.118896 0.118896 0.125854 0.125854 0.125854 0.133057 0.133057 0.133057 0.140839 0.140839 0.140839 0.149078 0.149078 0.149078 0.157623 0.157623 0.157623 0.166840 0.166840 0.166840 0.176544 0.176544 0.176544 0.186310 0.186310 0.186310 0.196564 0.196564 0.196564 0.206940 0.206940 0.206940 0.217102 0.217102 0.217102 0.227448 0.227448 0.227448 0.237335 0.237335 0.237335 0.247314 0.247314 0.247314 0.257172 0.257172 0.257172 0.266541 0.266541 0.266541 0.276001 0.276001 0.276001 0.285248 0.285248 0.285248 0.294128 0.294128 0.294128 0.303009 0.303009 0.303009 0.311737 0.311737 0.311737 0.320099 0.320099 0.320099 0.328461 0.328461 0.328461 0.336426 0.336426 0.336426 0.344482 0.344482 0.344482 0.352325 0.352325 0.352325 0.359894 0.359894 0.359894 0.106018 0.106018 0.106018 0.112122 0.112122 0.112122 0.118713 0.118713 0.118713 0.125488 0.125488 0.125488 0.132843 0.132843 0.132843 0.140625 0.140625 0.140625 0.148682 0.148682 0.148682 0.157410 0.157410 0.157410 0.166595 0.166595 0.166595 0.176056 0.176056 0.176056 0.186035 0.186035 0.186035 0.196289 0.196289 0.196289 0.206421 0.206421 0.206421 0.216827 0.216827 0.216827 0.226929 0.226929 0.226929 0.237091 0.237091 0.237091 0.247070 0.247070 0.247070 0.256653 0.256653 0.256653 0.266296 0.266296 0.266296 0.275757 0.275757 0.275757 0.284821 0.284821 0.284821 0.293915 0.293915 0.293915 0.302795 0.302795 0.302795 0.311310 0.311310 0.311310 0.319855 0.319855 0.319855 0.328247 0.328247 0.328247 0.336243 0.336243 0.336243 0.344269 0.344269 0.344269 0.351959 0.351959 0.351959 0.359711 0.359711 0.359711 0.367310 0.367310 0.367310 0.374573 0.374573 0.374573 0.118530 0.118530 0.118530 0.125305 0.125305 0.125305 0.132660 0.132660 0.132660 0.140228 0.140228 0.140228 0.148438 0.148438 0.148438 0.157166 0.157166 0.157166 0.166138 0.166138 0.166138 0.175781 0.175781 0.175781 0.185791 0.185791 0.185791 0.195801 0.195801 0.195801 0.206177 0.206177 0.206177 0.216583 0.216583 0.216583 0.226685 0.226685 0.226685 0.236847 0.236847 0.236847 0.246582 0.246582 0.246582 0.256409 0.256409 0.256409 0.266052 0.266052 0.266052 0.275299 0.275299 0.275299 0.284576 0.284576 0.284576 0.293671 0.293671 0.293671 0.302368 0.302368 0.302368 0.311066 0.311066 0.311066 0.319641 0.319641 0.319641 0.327789 0.327789 0.327789 0.336029 0.336029 0.336029 0.343872 0.343872 0.343872 0.351776 0.351776 0.351776 0.359497 0.359497 0.359497 0.366943 0.366943 0.366943 0.374390 0.374390 0.374390 0.381744 0.381744 0.381744 0.388794 0.388794 0.388794 0.132294 0.132294 0.132294 0.140045 0.140045 0.140045 0.148285 0.148285 0.148285 0.156708 0.156708 0.156708 0.165894 0.165894 0.165894 0.175537 0.175537 0.175537 0.185272 0.185272 0.185272 0.195526 0.195526 0.195526 0.205902 0.205902 0.205902 0.216064 0.216064 0.216064 0.226410 0.226410 0.226410 0.236328 0.236328 0.236328 0.246338 0.246338 0.246338 0.256165 0.256165 0.256165 0.265594 0.265594 0.265594 0.275085 0.275085 0.275085 0.284332 0.284332 0.284332 0.293213 0.293213 0.293213 0.302155 0.302155 0.302155 0.310913 0.310913 0.310913 0.319214 0.319214 0.319214 0.327637 0.327637 0.327637 0.335846 0.335846 0.335846 0.343689 0.343689 0.343689 0.351562 0.351562 0.351562 0.359131 0.359131 0.359131 0.366730 0.366730 0.366730 0.374207 0.374207 0.374207 0.381378 0.381378 0.381378 0.388611 0.388611 0.388611 0.395752 0.395752 0.395752 0.402618 0.402618 0.402618 0.147827 0.147827 0.147827 0.156494 0.156494 0.156494 0.165680 0.165680 0.165680 0.175049 0.175049 0.175049 0.185028 0.185028 0.185028 0.195251 0.195251 0.195251 0.205383 0.205383 0.205383 0.215790 0.215790 0.215790 0.226166 0.226166 0.226166 0.236053 0.236053 0.236053 0.246094 0.246094 0.246094 0.255707 0.255707 0.255707 0.265350 0.265350 0.265350 0.274841 0.274841 0.274841 0.283905 0.283905 0.283905 0.292999 0.292999 0.292999 0.301941 0.301941 0.301941 0.310455 0.310455 0.310455 0.319000 0.319000 0.319000 0.327393 0.327393 0.327393 0.335419 0.335419 0.335419 0.343506 0.343506 0.343506 0.351166 0.351166 0.351166 0.358948 0.358948 0.358948 0.366547 0.366547 0.366547 0.373840 0.373840 0.373840 0.381195 0.381195 0.381195 0.388428 0.388428 0.388428 0.395416 0.395416 0.395416 0.402435 0.402435 0.402435 0.409424 0.409424 0.409424 0.416138 0.416138 0.416138 0.165222 0.165222 0.165222 0.174805 0.174805 0.174805 0.184753 0.184753 0.184753 0.194763 0.194763 0.194763 0.205109 0.205109 0.205109 0.215546 0.215546 0.215546 0.225647 0.225647 0.225647 0.235840 0.235840 0.235840 0.245636 0.245636 0.245636 0.255463 0.255463 0.255463 0.265106 0.265106 0.265106 0.274323 0.274323 0.274323 0.283661 0.283661 0.283661 0.292786 0.292786 0.292786 0.301483 0.301483 0.301483 0.310242 0.310242 0.310242 0.318817 0.318817 0.318817 0.326996 0.326996 0.326996 0.335205 0.335205 0.335205 0.343262 0.343262 0.343262 0.350983 0.350983 0.350983 0.358734 0.358734 0.358734 0.366180 0.366180 0.366180 0.373657 0.373657 0.373657 0.381012 0.381012 0.381012 0.388062 0.388062 0.388062 0.395203 0.395203 0.395203 0.402252 0.402252 0.402252 0.409058 0.409058 0.409058 0.415955 0.415955 0.415955 0.422791 0.422791 0.422791 0.429443 0.429443 0.429443 0.184265 0.184265 0.184265 0.194489 0.194489 0.194489 0.204865 0.204865 0.204865 0.215027 0.215027 0.215027 0.225372 0.225372 0.225372 0.235596 0.235596 0.235596 0.245361 0.245361 0.245361 0.255219 0.255219 0.255219 0.264618 0.264618 0.264618 0.274109 0.274109 0.274109 0.283417 0.283417 0.283417 0.292328 0.292328 0.292328 0.301270 0.301270 0.301270 0.310028 0.310028 0.310028 0.318390 0.318390 0.318390 0.326782 0.326782 0.326782 0.335022 0.335022 0.335022 0.342865 0.342865 0.342865 0.350800 0.350800 0.350800 0.358368 0.358368 0.358368 0.365967 0.365967 0.365967 0.373474 0.373474 0.373474 0.380615 0.380615 0.380615 0.387878 0.387878 0.387878 0.395020 0.395020 0.395020 0.401917 0.401917 0.401917 0.408905 0.408905 0.408905 0.415802 0.415802 0.415802 0.422455 0.422455 0.422455 0.429260 0.429260 0.429260 0.435883 0.435883 0.435883 0.442627 0.442627 0.442627 0.204346 0.204346 0.204346 0.214752 0.214752 0.214752 0.225128 0.225128 0.225128 0.235077 0.235077 0.235077 0.245117 0.245117 0.245117 0.254730 0.254730 0.254730 0.264404 0.264404 0.264404 0.273895 0.273895 0.273895 0.282990 0.282990 0.282990 0.292114 0.292114 0.292114 0.301056 0.301056 0.301056 0.309601 0.309601 0.309601 0.318176 0.318176 0.318176 0.326599 0.326599 0.326599 0.334625 0.334625 0.334625 0.342682 0.342682 0.342682 0.350616 0.350616 0.350616 0.358154 0.358154 0.358154 0.365784 0.365784 0.365784 0.373077 0.373077 0.373077 0.380463 0.380463 0.380463 0.387695 0.387695 0.387695 0.394684 0.394684 0.394684 0.401764 0.401764 0.401764 0.408722 0.408722 0.408722 0.415436 0.415436 0.415436 0.422272 0.422272 0.422272 0.429108 0.429108 0.429108 0.435699 0.435699 0.435699 0.442444 0.442444 0.442444 0.449036 0.449036 0.449036 0.455780 0.455780 0.455780 0.224609 0.224609 0.224609 0.234833 0.234833 0.234833 0.244843 0.244843 0.244843 0.254456 0.254456 0.254456 0.264160 0.264160 0.264160 0.273407 0.273407 0.273407 0.282745 0.282745 0.282745 0.291870 0.291870 0.291870 0.300598 0.300598 0.300598 0.309357 0.309357 0.309357 0.317932 0.317932 0.317932 0.326172 0.326172 0.326172 0.334412 0.334412 0.334412 0.342468 0.342468 0.342468 0.350189 0.350189 0.350189 0.357971 0.357971 0.357971 0.365417 0.365417 0.365417 0.372894 0.372894 0.372894 0.380280 0.380280 0.380280 0.387360 0.387360 0.387360 0.394501 0.394501 0.394501 0.401550 0.401550 0.401550 0.408386 0.408386 0.408386 0.415283 0.415283 0.415283 0.422119 0.422119 0.422119 0.428772 0.428772 0.428772 0.435516 0.435516 0.435516 0.442108 0.442108 0.442108 0.448883 0.448883 0.448883 0.455627 0.455627 0.455627 0.462219 0.462219 0.462219 0.469025 0.469025 0.469025 0.244354 0.244354 0.244354 0.254211 0.254211 0.254211 0.263916 0.263916 0.263916 0.273193 0.273193 0.273193 0.282501 0.282501 0.282501 0.291412 0.291412 0.291412 0.300385 0.300385 0.300385 0.309143 0.309143 0.309143 0.317535 0.317535 0.317535 0.325958 0.325958 0.325958 0.334167 0.334167 0.334167 0.342072 0.342072 0.342072 0.349976 0.349976 0.349976 0.357574 0.357574 0.357574 0.365204 0.365204 0.365204 0.372711 0.372711 0.372711 0.379883 0.379883 0.379883 0.387177 0.387177 0.387177 0.394318 0.394318 0.394318 0.401215 0.401215 0.401215 0.408203 0.408203 0.408203 0.415100 0.415100 0.415100 0.421753 0.421753 0.421753 0.428589 0.428589 0.428589 0.435364 0.435364 0.435364 0.441956 0.441956 0.441956 0.448700 0.448700 0.448700 0.455292 0.455292 0.455292 0.462036 0.462036 0.462036 0.468842 0.468842 0.468842 0.475494 0.475494 0.475494 0.482391 0.482391 0.482391 0.263428 0.263428 0.263428 0.272949 0.272949 0.272949 0.282043 0.282043 0.282043 0.291199 0.291199 0.291199 0.300140 0.300140 0.300140 0.308716 0.308716 0.308716 0.317291 0.317291 0.317291 0.325745 0.325745 0.325745 0.333801 0.333801 0.333801 0.341858 0.341858 0.341858 0.349823 0.349823 0.349823 0.357391 0.357391 0.357391 0.365051 0.365051 0.365051 0.372314 0.372314 0.372314 0.379700 0.379700 0.379700 0.386993 0.386993 0.386993 0.393982 0.393982 0.393982 0.401031 0.401031 0.401031 0.408020 0.408020 0.408020 0.414764 0.414764 0.414764 0.421631 0.421631 0.421631 0.428406 0.428406 0.428406 0.435028 0.435028 0.435028 0.441772 0.441772 0.441772 0.448364 0.448364 0.448364 0.455109 0.455109 0.455109 0.461884 0.461884 0.461884 0.468506 0.468506 0.468506 0.475342 0.475342 0.475342 0.482208 0.482208 0.482208 0.488983 0.488983 0.488983 0.496002 0.496002 0.496002 0.281830 0.281830 0.281830 0.290985 0.290985 0.290985 0.299713 0.299713 0.299713 0.308502 0.308502 0.308502 0.317108 0.317108 0.317108 0.325317 0.325317 0.325317 0.333588 0.333588 0.333588 0.341675 0.341675 0.341675 0.349396 0.349396 0.349396 0.357208 0.357208 0.357208 0.364838 0.364838 0.364838 0.372192 0.372192 0.372192 0.379547 0.379547 0.379547 0.386597 0.386597 0.386597 0.393768 0.393768 0.393768 0.400848 0.400848 0.400848 0.407684 0.407684 0.407684 0.414612 0.414612 0.414612 0.421448 0.421448 0.421448 0.428101 0.428101 0.428101 0.434875 0.434875 0.434875 0.441620 0.441620 0.441620 0.448212 0.448212 0.448212 0.454956 0.454956 0.454956 0.461548 0.461548 0.461548 0.468323 0.468323 0.468323 0.475159 0.475159 0.475159 0.481873 0.481873 0.481873 0.488831 0.488831 0.488831 0.495819 0.495819 0.495819 0.502747 0.502747 0.502747 0.509888 0.509888 0.509888 0.299500 0.299500 0.299500 0.308289 0.308289 0.308289 0.316681 0.316681 0.316681 0.325104 0.325104 0.325104 0.333374 0.333374 0.333374 0.341278 0.341278 0.341278 0.349213 0.349213 0.349213 0.356995 0.356995 0.356995 0.364471 0.364471 0.364471 0.371979 0.371979 0.371979 0.379333 0.379333 0.379333 0.386444 0.386444 0.386444 0.393616 0.393616 0.393616 0.400482 0.400482 0.400482 0.407501 0.407501 0.407501 0.414429 0.414429 0.414429 0.421112 0.421112 0.421112 0.427887 0.427887 0.427887 0.434692 0.434692 0.434692 0.441284 0.441284 0.441284 0.448029 0.448029 0.448029 0.454773 0.454773 0.454773 0.461365 0.461365 0.461365 0.468140 0.468140 0.468140 0.474823 0.474823 0.474823 0.481689 0.481689 0.481689 0.488617 0.488617 0.488617 0.495483 0.495483 0.495483 0.502533 0.502533 0.502533 0.509735 0.509735 0.509735 0.516815 0.516815 0.516815 0.524200 0.524200 0.524200 0.316467 0.316467 0.316467 0.324890 0.324890 0.324890 0.332977 0.332977 0.332977 0.341064 0.341064 0.341064 0.349030 0.349030 0.349030 0.356598 0.356598 0.356598 0.364258 0.364258 0.364258 0.371796 0.371796 0.371796 0.378967 0.378967 0.378967 0.386261 0.386261 0.386261 0.393250 0.393250 0.393250 0.400360 0.400360 0.400360 0.407318 0.407318 0.407318 0.414062 0.414062 0.414062 0.420929 0.420929 0.420929 0.427734 0.427734 0.427734 0.434357 0.434357 0.434357 0.441101 0.441101 0.441101 0.447845 0.447845 0.447845 0.454437 0.454437 0.454437 0.461212 0.461212 0.461212 0.467987 0.467987 0.467987 0.474640 0.474640 0.474640 0.481506 0.481506 0.481506 0.488281 0.488281 0.488281 0.495270 0.495270 0.495270 0.502380 0.502380 0.502380 0.509369 0.509369 0.509369 0.516663 0.516663 0.516663 0.524017 0.524017 0.524017 0.531342 0.531342 0.531342 0.538940 0.538940 0.538940 0.332764 0.332764 0.332764 0.340881 0.340881 0.340881 0.348633 0.348633 0.348633 0.356445 0.356445 0.356445 0.364105 0.364105 0.364105 0.371399 0.371399 0.371399 0.378815 0.378815 0.378815 0.386078 0.386078 0.386078 0.393097 0.393097 0.393097 0.400146 0.400146 0.400146 0.406982 0.406982 0.406982 0.413879 0.413879 0.413879 0.420776 0.420776 0.420776 0.427399 0.427399 0.427399 0.434204 0.434204 0.434204 0.440948 0.440948 0.440948 0.447510 0.447510 0.447510 0.454254 0.454254 0.454254 0.461029 0.461029 0.461029 0.467651 0.467651 0.467651 0.474457 0.474457 0.474457 0.481201 0.481201 0.481201 0.488098 0.488098 0.488098 0.495087 0.495087 0.495087 0.502014 0.502014 0.502014 0.509186 0.509186 0.509186 0.516449 0.516449 0.516449 0.523651 0.523651 0.523651 0.531158 0.531158 0.531158 0.538727 0.538727 0.538727 0.546295 0.546295 0.546295 0.554169 0.554169 0.554169 0.348419 0.348419 0.348419 0.356232 0.356232 0.356232 0.363708 0.363708 0.363708 0.371246 0.371246 0.371246 0.378601 0.378601 0.378601 0.385742 0.385742 0.385742 0.392883 0.392883 0.392883 0.399811 0.399811 0.399811 0.406799 0.406799 0.406799 0.413727 0.413727 0.413727 0.420410 0.420410 0.420410 0.427246 0.427246 0.427246 0.433990 0.433990 0.433990 0.440582 0.440582 0.440582 0.447357 0.447357 0.447357 0.454102 0.454102 0.454102 0.460693 0.460693 0.460693 0.467468 0.467468 0.467468 0.474304 0.474304 0.474304 0.481018 0.481018 0.481018 0.487915 0.487915 0.487915 0.494781 0.494781 0.494781 0.501862 0.501862 0.501862 0.509003 0.509003 0.509003 0.516113 0.516113 0.516113 0.523468 0.523468 0.523468 0.530945 0.530945 0.530945 0.538361 0.538361 0.538361 0.546112 0.546112 0.546112 0.553955 0.553955 0.553955 0.561737 0.561737 0.561737 0.569885 0.569885 0.569885 0.363495 0.363495 0.363495 0.371033 0.371033 0.371033 0.378265 0.378265 0.378265 0.385559 0.385559 0.385559 0.392731 0.392731 0.392731 0.399628 0.399628 0.399628 0.406616 0.406616 0.406616 0.413361 0.413361 0.413361 0.420227 0.420227 0.420227 0.427063 0.427063 0.427063 0.433685 0.433685 0.433685 0.440430 0.440430 0.440430 0.447205 0.447205 0.447205 0.453766 0.453766 0.453766 0.460541 0.460541 0.460541 0.467316 0.467316 0.467316 0.473938 0.473938 0.473938 0.480835 0.480835 0.480835 0.487579 0.487579 0.487579 0.494568 0.494568 0.494568 0.501678 0.501678 0.501678 0.508636 0.508636 0.508636 0.515900 0.515900 0.515900 0.523285 0.523285 0.523285 0.530579 0.530579 0.530579 0.538177 0.538177 0.538177 0.545898 0.545898 0.545898 0.553558 0.553558 0.553558 0.561554 0.561554 0.561554 0.569458 0.569458 0.569458 0.577698 0.577698 0.577698 0.586090 0.586090 0.586090 0.378082 0.378082 0.378082 0.385376 0.385376 0.385376 0.392365 0.392365 0.392365 0.399445 0.399445 0.399445 0.406464 0.406464 0.406464 0.413208 0.413208 0.413208 0.420074 0.420074 0.420074 0.426727 0.426727 0.426727 0.433502 0.433502 0.433502 0.440277 0.440277 0.440277 0.446838 0.446838 0.446838 0.453613 0.453613 0.453613 0.460358 0.460358 0.460358 0.466949 0.466949 0.466949 0.473785 0.473785 0.473785 0.480682 0.480682 0.480682 0.487427 0.487427 0.487427 0.494415 0.494415 0.494415 0.501312 0.501312 0.501312 0.508453 0.508453 0.508453 0.515747 0.515747 0.515747 0.522888 0.522888 0.522888 0.530396 0.530396 0.530396 0.537964 0.537964 0.537964 0.545502 0.545502 0.545502 0.553375 0.553375 0.553375 0.561340 0.561340 0.561340 0.569244 0.569244 0.569244 0.577515 0.577515 0.577515 0.585663 0.585663 0.585663 0.594147 0.594147 0.594147 0.602722 0.602722 0.602722 0.392181 0.392181 0.392181 0.399292 0.399292 0.399292 0.406097 0.406097 0.406097 0.413055 0.413055 0.413055 0.419708 0.419708 0.419708 0.426544 0.426544 0.426544 0.433319 0.433319 0.433319 0.439941 0.439941 0.439941 0.446686 0.446686 0.446686 0.453430 0.453430 0.453430 0.460022 0.460022 0.460022 0.466797 0.466797 0.466797 0.473633 0.473633 0.473633 0.480316 0.480316 0.480316 0.487244 0.487244 0.487244 0.494049 0.494049 0.494049 0.501129 0.501129 0.501129 0.508301 0.508301 0.508301 0.515381 0.515381 0.515381 0.522736 0.522736 0.522736 0.530212 0.530212 0.530212 0.537598 0.537598 0.537598 0.545319 0.545319 0.545319 0.553162 0.553162 0.553162 0.560944 0.560944 0.560944 0.569061 0.569061 0.569061 0.577118 0.577118 0.577118 0.585449 0.585449 0.585449 0.593964 0.593964 0.593964 0.602325 0.602325 0.602325 0.610992 0.610992 0.610992 0.619690 0.619690 0.619690 0.405914 0.405914 0.405914 0.412872 0.412872 0.412872 0.419556 0.419556 0.419556 0.426392 0.426392 0.426392 0.432983 0.432983 0.432983 0.439758 0.439758 0.439758 0.446503 0.446503 0.446503 0.453064 0.453064 0.453064 0.459869 0.459869 0.459869 0.466614 0.466614 0.466614 0.473297 0.473297 0.473297 0.480164 0.480164 0.480164 0.487061 0.487061 0.487061 0.493896 0.493896 0.493896 0.500946 0.500946 0.500946 0.507935 0.507935 0.507935 0.515198 0.515198 0.515198 0.522552 0.522552 0.522552 0.529816 0.529816 0.529816 0.537415 0.537415 0.537415 0.545135 0.545135 0.545135 0.552734 0.552734 0.552734 0.560760 0.560760 0.560760 0.568817 0.568817 0.568817 0.576874 0.576874 0.576874 0.585266 0.585266 0.585266 0.593536 0.593536 0.593536 0.602081 0.602081 0.602081 0.610748 0.610748 0.610748 0.619232 0.619232 0.619232 0.627960 0.627960 0.627960 0.636719 0.636719 0.636719 0.419403 0.419403 0.419403 0.426056 0.426056 0.426056 0.432831 0.432831 0.432831 0.439606 0.439606 0.439606 0.446167 0.446167 0.446167 0.452911 0.452911 0.452911 0.459656 0.459656 0.459656 0.466278 0.466278 0.466278 0.473114 0.473114 0.473114 0.479950 0.479950 0.479950 0.486694 0.486694 0.486694 0.493683 0.493683 0.493683 0.500610 0.500610 0.500610 0.507751 0.507751 0.507751 0.514984 0.514984 0.514984 0.522186 0.522186 0.522186 0.529633 0.529633 0.529633 0.537201 0.537201 0.537201 0.544739 0.544739 0.544739 0.552582 0.552582 0.552582 0.560516 0.560516 0.560516 0.568451 0.568451 0.568451 0.576691 0.576691 0.576691 0.584839 0.584839 0.584839 0.593323 0.593323 0.593323 0.601898 0.601898 0.601898 0.610321 0.610321 0.610321 0.619049 0.619049 0.619049 0.627747 0.627747 0.627747 0.636322 0.636322 0.636322 0.645050 0.645050 0.645050 0.653778 0.653778 0.653778 0.432648 0.432648 0.432648 0.439270 0.439270 0.439270 0.446014 0.446014 0.446014 0.452728 0.452728 0.452728 0.459320 0.459320 0.459320 0.466125 0.466125 0.466125 0.472931 0.472931 0.472931 0.479614 0.479614 0.479614 0.486542 0.486542 0.486542 0.493530 0.493530 0.493530 0.500427 0.500427 0.500427 0.507568 0.507568 0.507568 0.514618 0.514618 0.514618 0.521973 0.521973 0.521973 0.529449 0.529449 0.529449 0.536835 0.536835 0.536835 0.544525 0.544525 0.544525 0.552368 0.552368 0.552368 0.560120 0.560120 0.560120 0.568237 0.568237 0.568237 0.576477 0.576477 0.576477 0.584656 0.584656 0.584656 0.593079 0.593079 0.593079 0.601440 0.601440 0.601440 0.610107 0.610107 0.610107 0.618805 0.618805 0.618805 0.627319 0.627319 0.627319 0.636078 0.636078 0.636078 0.644836 0.644836 0.644836 0.653320 0.653320 0.653320 0.662018 0.662018 0.662018 0.670685 0.670685 0.670685 0.445831 0.445831 0.445831 0.452393 0.452393 0.452393 0.459167 0.459167 0.459167 0.465942 0.465942 0.465942 0.472595 0.472595 0.472595 0.479462 0.479462 0.479462 0.486359 0.486359 0.486359 0.493195 0.493195 0.493195 0.500244 0.500244 0.500244 0.507202 0.507202 0.507202 0.514465 0.514465 0.514465 0.521820 0.521820 0.521820 0.529083 0.529083 0.529083 0.536621 0.536621 0.536621 0.544342 0.544342 0.544342 0.551971 0.551971 0.551971 0.559937 0.559937 0.559937 0.568024 0.568024 0.568024 0.576080 0.576080 0.576080 0.584412 0.584412 0.584412 0.592865 0.592865 0.592865 0.601257 0.601257 0.601257 0.609894 0.609894 0.609894 0.618378 0.618378 0.618378 0.627106 0.627106 0.627106 0.635864 0.635864 0.635864 0.644379 0.644379 0.644379 0.653137 0.653137 0.653137 0.661804 0.661804 0.661804 0.670227 0.670227 0.670227 0.678833 0.678833 0.678833 0.687103 0.687103 0.687103 0.459015 0.459015 0.459015 0.465607 0.465607 0.465607 0.472412 0.472412 0.472412 0.479279 0.479279 0.479279 0.486023 0.486023 0.486023 0.493011 0.493011 0.493011 0.500061 0.500061 0.500061 0.507050 0.507050 0.507050 0.514282 0.514282 0.514282 0.521423 0.521423 0.521423 0.528870 0.528870 0.528870 0.536438 0.536438 0.536438 0.543945 0.543945 0.543945 0.551788 0.551788 0.551788 0.559753 0.559753 0.559753 0.567627 0.567627 0.567627 0.575867 0.575867 0.575867 0.584198 0.584198 0.584198 0.592438 0.592438 0.592438 0.601013 0.601013 0.601013 0.609467 0.609467 0.609467 0.618134 0.618134 0.618134 0.626862 0.626862 0.626862 0.635406 0.635406 0.635406 0.644196 0.644196 0.644196 0.652924 0.652924 0.652924 0.661377 0.661377 0.661377 0.670044 0.670044 0.670044 0.678650 0.678650 0.678650 0.686920 0.686920 0.686920 0.695282 0.695282 0.695282 0.703400 0.703400 0.703400 0.472260 0.472260 0.472260 0.478943 0.478943 0.478943 0.485870 0.485870 0.485870 0.492828 0.492828 0.492828 0.499695 0.499695 0.499695 0.506836 0.506836 0.506836 0.513885 0.513885 0.513885 0.521240 0.521240 0.521240 0.528687 0.528687 0.528687 0.536072 0.536072 0.536072 0.543762 0.543762 0.543762 0.551575 0.551575 0.551575 0.559326 0.559326 0.559326 0.567383 0.567383 0.567383 0.575653 0.575653 0.575653 0.583771 0.583771 0.583771 0.592255 0.592255 0.592255 0.600800 0.600800 0.600800 0.609253 0.609253 0.609253 0.617950 0.617950 0.617950 0.626465 0.626465 0.626465 0.635193 0.635193 0.635193 0.643982 0.643982 0.643982 0.652466 0.652466 0.652466 0.661194 0.661194 0.661194 0.669800 0.669800 0.669800 0.678162 0.678162 0.678162 0.686676 0.686676 0.686676 0.695099 0.695099 0.695099 0.703156 0.703156 0.703156 0.711334 0.711334 0.711334 0.719147 0.719147 0.719147 0.485687 0.485687 0.485687 0.492493 0.492493 0.492493 0.499512 0.499512 0.499512 0.506683 0.506683 0.506683 0.513702 0.513702 0.513702 0.521057 0.521057 0.521057 0.528320 0.528320 0.528320 0.535858 0.535858 0.535858 0.543579 0.543579 0.543579 0.551178 0.551178 0.551178 0.559113 0.559113 0.559113 0.567200 0.567200 0.567200 0.575195 0.575195 0.575195 0.583557 0.583557 0.583557 0.592041 0.592041 0.592041 0.600372 0.600372 0.600372 0.609009 0.609009 0.609009 0.617493 0.617493 0.617493 0.626221 0.626221 0.626221 0.635010 0.635010 0.635010 0.643524 0.643524 0.643524 0.652252 0.652252 0.652252 0.660980 0.660980 0.660980 0.669403 0.669403 0.669403 0.677979 0.677979 0.677979 0.686493 0.686493 0.686493 0.694672 0.694672 0.694672 0.702972 0.702972 0.702972 0.710938 0.710938 0.710938 0.718964 0.718964 0.718964 0.726807 0.726807 0.726807 0.734344 0.734344 0.734344 0.499329 0.499329 0.499329 0.506317 0.506317 0.506317 0.513519 0.513519 0.513519 0.520660 0.520660 0.520660 0.528137 0.528137 0.528137 0.535706 0.535706 0.535706 0.543182 0.543182 0.543182 0.550995 0.550995 0.550995 0.558929 0.558929 0.558929 0.566803 0.566803 0.566803 0.575012 0.575012 0.575012 0.583374 0.583374 0.583374 0.591614 0.591614 0.591614 0.600159 0.600159 0.600159 0.608582 0.608582 0.608582 0.617279 0.617279 0.617279 0.626038 0.626038 0.626038 0.634521 0.634521 0.634521 0.643311 0.643311 0.643311 0.652039 0.652039 0.652039 0.660522 0.660522 0.660522 0.669159 0.669159 0.669159 0.677734 0.677734 0.677734 0.686035 0.686035 0.686035 0.694458 0.694458 0.694458 0.702759 0.702759 0.702759 0.710724 0.710724 0.710724 0.718750 0.718750 0.718750 0.726440 0.726440 0.726440 0.734192 0.734192 0.734192 0.741699 0.741699 0.741699 0.748840 0.748840 0.748840 0.513367 0.513367 0.513367 0.520508 0.520508 0.520508 0.527954 0.527954 0.527954 0.535339 0.535339 0.535339 0.542999 0.542999 0.542999 0.550781 0.550781 0.550781 0.558563 0.558563 0.558563 0.566589 0.566589 0.566589 0.574799 0.574799 0.574799 0.582947 0.582947 0.582947 0.591400 0.591400 0.591400 0.599945 0.599945 0.599945 0.608368 0.608368 0.608368 0.617065 0.617065 0.617065 0.625580 0.625580 0.625580 0.634308 0.634308 0.634308 0.643066 0.643066 0.643066 0.651611 0.651611 0.651611 0.660309 0.660309 0.660309 0.668945 0.668945 0.668945 0.677338 0.677338 0.677338 0.685822 0.685822 0.685822 0.694244 0.694244 0.694244 0.702362 0.702362 0.702362 0.710510 0.710510 0.710510 0.718353 0.718353 0.718353 0.726257 0.726257 0.726257 0.733978 0.733978 0.733978 0.741333 0.741333 0.741333 0.748688 0.748688 0.748688 0.755859 0.755859 0.755859 0.762604 0.762604 0.762604 0.060211 0.060211 0.060211 0.064178 0.064178 0.064178 0.068268 0.068268 0.068268 0.072510 0.072510 0.072510 0.077057 0.077057 0.077057 0.081726 0.081726 0.081726 0.086731 0.086731 0.086731 0.091980 0.091980 0.091980 0.097351 0.097351 0.097351 0.103149 0.103149 0.103149 0.109283 0.109283 0.109283 0.115540 0.115540 0.115540 0.122314 0.122314 0.122314 0.129486 0.129486 0.129486 0.136871 0.136871 0.136871 0.144897 0.144897 0.144897 0.153381 0.153381 0.153381 0.162170 0.162170 0.162170 0.171631 0.171631 0.171631 0.181244 0.181244 0.181244 0.191376 0.191376 0.191376 0.201721 0.201721 0.201721 0.211884 0.211884 0.211884 0.222260 0.222260 0.222260 0.232513 0.232513 0.232513 0.242371 0.242371 0.242371 0.252258 0.252258 0.252258 0.261993 0.261993 0.261993 0.271301 0.271301 0.271301 0.280670 0.280670 0.280670 0.289612 0.289612 0.289612 0.298584 0.298584 0.298584 0.068085 0.068085 0.068085 0.072388 0.072388 0.072388 0.076965 0.076965 0.076965 0.081604 0.081604 0.081604 0.086609 0.086609 0.086609 0.091705 0.091705 0.091705 0.097229 0.097229 0.097229 0.102997 0.102997 0.102997 0.108948 0.108948 0.108948 0.115387 0.115387 0.115387 0.122162 0.122162 0.122162 0.129120 0.129120 0.129120 0.136688 0.136688 0.136688 0.144684 0.144684 0.144684 0.152954 0.152954 0.152954 0.161926 0.161926 0.161926 0.171173 0.171173 0.171173 0.181000 0.181000 0.181000 0.191132 0.191132 0.191132 0.201233 0.201233 0.201233 0.211639 0.211639 0.211639 0.222015 0.222015 0.222015 0.232025 0.232025 0.232025 0.242126 0.242126 0.242126 0.252014 0.252014 0.252014 0.261505 0.261505 0.261505 0.271057 0.271057 0.271057 0.280182 0.280182 0.280182 0.289368 0.289368 0.289368 0.298370 0.298370 0.298370 0.306976 0.306976 0.306976 0.315613 0.315613 0.315613 0.076721 0.076721 0.076721 0.081482 0.081482 0.081482 0.086487 0.086487 0.086487 0.091583 0.091583 0.091583 0.097076 0.097076 0.097076 0.102692 0.102692 0.102692 0.108795 0.108795 0.108795 0.115204 0.115204 0.115204 0.121796 0.121796 0.121796 0.128937 0.128937 0.128937 0.136475 0.136475 0.136475 0.144257 0.144257 0.144257 0.152740 0.152740 0.152740 0.161499 0.161499 0.161499 0.170929 0.170929 0.170929 0.180725 0.180725 0.180725 0.190643 0.190643 0.190643 0.200958 0.200958 0.200958 0.211365 0.211365 0.211365 0.221527 0.221527 0.221527 0.231750 0.231750 0.231750 0.241882 0.241882 0.241882 0.251526 0.251526 0.251526 0.261261 0.261261 0.261261 0.270813 0.270813 0.270813 0.279968 0.279968 0.279968 0.289124 0.289124 0.289124 0.297943 0.297943 0.297943 0.306763 0.306763 0.306763 0.315399 0.315399 0.315399 0.323639 0.323639 0.323639 0.331940 0.331940 0.331940 0.086212 0.086212 0.086212 0.091431 0.091431 0.091431 0.096802 0.096802 0.096802 0.102570 0.102570 0.102570 0.108612 0.108612 0.108612 0.114868 0.114868 0.114868 0.121643 0.121643 0.121643 0.128784 0.128784 0.128784 0.136108 0.136108 0.136108 0.144073 0.144073 0.144073 0.152557 0.152557 0.152557 0.161255 0.161255 0.161255 0.170685 0.170685 0.170685 0.180237 0.180237 0.180237 0.190399 0.190399 0.190399 0.200714 0.200714 0.200714 0.210846 0.210846 0.210846 0.221252 0.221252 0.221252 0.231476 0.231476 0.231476 0.241364 0.241364 0.241364 0.251282 0.251282 0.251282 0.261047 0.261047 0.261047 0.270355 0.270355 0.270355 0.279724 0.279724 0.279724 0.288696 0.288696 0.288696 0.297699 0.297699 0.297699 0.306519 0.306519 0.306519 0.314972 0.314972 0.314972 0.323425 0.323425 0.323425 0.331757 0.331757 0.331757 0.339691 0.339691 0.339691 0.347656 0.347656 0.347656 0.096649 0.096649 0.096649 0.102417 0.102417 0.102417 0.108307 0.108307 0.108307 0.114716 0.114716 0.114716 0.121460 0.121460 0.121460 0.128387 0.128387 0.128387 0.135895 0.135895 0.135895 0.143860 0.143860 0.143860 0.152100 0.152100 0.152100 0.161011 0.161011 0.161011 0.170441 0.170441 0.170441 0.179993 0.179993 0.179993 0.190094 0.190094 0.190094 0.200165 0.200165 0.200165 0.210602 0.210602 0.210602 0.220978 0.220978 0.220978 0.231018 0.231018 0.231018 0.241119 0.241119 0.241119 0.251038 0.251038 0.251038 0.260559 0.260559 0.260559 0.270142 0.270142 0.270142 0.279510 0.279510 0.279510 0.288483 0.288483 0.288483 0.297485 0.297485 0.297485 0.306122 0.306122 0.306122 0.314728 0.314728 0.314728 0.323242 0.323242 0.323242 0.331329 0.331329 0.331329 0.339478 0.339478 0.339478 0.347443 0.347443 0.347443 0.355072 0.355072 0.355072 0.362762 0.362762 0.362762 0.108185 0.108185 0.108185 0.114532 0.114532 0.114532 0.121094 0.121094 0.121094 0.128204 0.128204 0.128204 0.135712 0.135712 0.135712 0.143463 0.143463 0.143463 0.151886 0.151886 0.151886 0.160767 0.160767 0.160767 0.169952 0.169952 0.169952 0.179749 0.179749 0.179749 0.189606 0.189606 0.189606 0.199921 0.199921 0.199921 0.210327 0.210327 0.210327 0.220459 0.220459 0.220459 0.230774 0.230774 0.230774 0.240875 0.240875 0.240875 0.250549 0.250549 0.250549 0.260315 0.260315 0.260315 0.269867 0.269867 0.269867 0.279053 0.279053 0.279053 0.288239 0.288239 0.288239 0.297028 0.297028 0.297028 0.305878 0.305878 0.305878 0.314545 0.314545 0.314545 0.322815 0.322815 0.322815 0.331116 0.331116 0.331116 0.339264 0.339264 0.339264 0.347046 0.347046 0.347046 0.354889 0.354889 0.354889 0.362579 0.362579 0.362579 0.369904 0.369904 0.369904 0.377350 0.377350 0.377350 0.120941 0.120941 0.120941 0.128021 0.128021 0.128021 0.135315 0.135315 0.135315 0.143250 0.143250 0.143250 0.151642 0.151642 0.151642 0.160339 0.160339 0.160339 0.169708 0.169708 0.169708 0.179504 0.179504 0.179504 0.189301 0.189301 0.189301 0.199677 0.199677 0.199677 0.209808 0.209808 0.209808 0.220215 0.220215 0.220215 0.230530 0.230530 0.230530 0.240356 0.240356 0.240356 0.250305 0.250305 0.250305 0.260040 0.260040 0.260040 0.269379 0.269379 0.269379 0.278809 0.278809 0.278809 0.288025 0.288025 0.288025 0.296783 0.296783 0.296783 0.305664 0.305664 0.305664 0.314117 0.314117 0.314117 0.322601 0.322601 0.322601 0.330902 0.330902 0.330902 0.338837 0.338837 0.338837 0.346863 0.346863 0.346863 0.354675 0.354675 0.354675 0.362183 0.362183 0.362183 0.369751 0.369751 0.369751 0.377136 0.377136 0.377136 0.384277 0.384277 0.384277 0.391449 0.391449 0.391449 0.135162 0.135162 0.135162 0.143066 0.143066 0.143066 0.151215 0.151215 0.151215 0.160095 0.160095 0.160095 0.169464 0.169464 0.169464 0.179016 0.179016 0.179016 0.189056 0.189056 0.189056 0.199158 0.199158 0.199158 0.209564 0.209564 0.209564 0.219940 0.219940 0.219940 0.230011 0.230011 0.230011 0.240112 0.240112 0.240112 0.250031 0.250031 0.250031 0.259583 0.259583 0.259583 0.269135 0.269135 0.269135 0.278564 0.278564 0.278564 0.287567 0.287567 0.287567 0.296600 0.296600 0.296600 0.305450 0.305450 0.305450 0.313904 0.313904 0.313904 0.322388 0.322388 0.322388 0.330505 0.330505 0.330505 0.338684 0.338684 0.338684 0.346649 0.346649 0.346649 0.354279 0.354279 0.354279 0.362000 0.362000 0.362000 0.369568 0.369568 0.369568 0.376770 0.376770 0.376770 0.384094 0.384094 0.384094 0.391113 0.391113 0.391113 0.398224 0.398224 0.398224 0.405243 0.405243 0.405243 0.151001 0.151001 0.151001 0.159882 0.159882 0.159882 0.169006 0.169006 0.169006 0.178772 0.178772 0.178772 0.188812 0.188812 0.188812 0.198914 0.198914 0.198914 0.209290 0.209290 0.209290 0.219452 0.219452 0.219452 0.229736 0.229736 0.229736 0.239868 0.239868 0.239868 0.249542 0.249542 0.249542 0.259338 0.259338 0.259338 0.268921 0.268921 0.268921 0.278107 0.278107 0.278107 0.287323 0.287323 0.287323 0.296387 0.296387 0.296387 0.304993 0.304993 0.304993 0.313690 0.313690 0.313690 0.321960 0.321960 0.321960 0.330322 0.330322 0.330322 0.338470 0.338470 0.338470 0.346252 0.346252 0.346252 0.354095 0.354095 0.354095 0.361816 0.361816 0.361816 0.369171 0.369171 0.369171 0.376587 0.376587 0.376587 0.383911 0.383911 0.383911 0.390961 0.390961 0.390961 0.398010 0.398010 0.398010 0.404907 0.404907 0.404907 0.411804 0.411804 0.411804 0.418732 0.418732 0.418732 0.168762 0.168762 0.168762 0.178528 0.178528 0.178528 0.188324 0.188324 0.188324 0.198639 0.198639 0.198639 0.208771 0.208771 0.208771 0.219177 0.219177 0.219177 0.229462 0.229462 0.229462 0.239349 0.239349 0.239349 0.249329 0.249329 0.249329 0.259094 0.259094 0.259094 0.268463 0.268463 0.268463 0.277863 0.277863 0.277863 0.287109 0.287109 0.287109 0.295898 0.295898 0.295898 0.304810 0.304810 0.304810 0.313263 0.313263 0.313263 0.321747 0.321747 0.321747 0.330109 0.330109 0.330109 0.338043 0.338043 0.338043 0.346069 0.346069 0.346069 0.353912 0.353912 0.353912 0.361420 0.361420 0.361420 0.368988 0.368988 0.368988 0.376434 0.376434 0.376434 0.383545 0.383545 0.383545 0.390747 0.390747 0.390747 0.397858 0.397858 0.397858 0.404724 0.404724 0.404724 0.411652 0.411652 0.411652 0.418365 0.418365 0.418365 0.425171 0.425171 0.425171 0.431976 0.431976 0.431976 0.188080 0.188080 0.188080 0.198364 0.198364 0.198364 0.208527 0.208527 0.208527 0.218933 0.218933 0.218933 0.228973 0.228973 0.228973 0.239136 0.239136 0.239136 0.249084 0.249084 0.249084 0.258606 0.258606 0.258606 0.268219 0.268219 0.268219 0.277618 0.277618 0.277618 0.286652 0.286652 0.286652 0.295715 0.295715 0.295715 0.304565 0.304565 0.304565 0.313049 0.313049 0.313049 0.321564 0.321564 0.321564 0.329712 0.329712 0.329712 0.337860 0.337860 0.337860 0.345886 0.345886 0.345886 0.353516 0.353516 0.353516 0.361267 0.361267 0.361267 0.368805 0.368805 0.368805 0.376068 0.376068 0.376068 0.383362 0.383362 0.383362 0.390594 0.390594 0.390594 0.397522 0.397522 0.397522 0.404510 0.404510 0.404510 0.411316 0.411316 0.411316 0.418182 0.418182 0.418182 0.425018 0.425018 0.425018 0.431641 0.431641 0.431641 0.438385 0.438385 0.438385 0.445160 0.445160 0.445160 0.208252 0.208252 0.208252 0.218414 0.218414 0.218414 0.228699 0.228699 0.228699 0.238892 0.238892 0.238892 0.248596 0.248596 0.248596 0.258362 0.258362 0.258362 0.267975 0.267975 0.267975 0.277161 0.277161 0.277161 0.286407 0.286407 0.286407 0.295471 0.295471 0.295471 0.304138 0.304138 0.304138 0.312836 0.312836 0.312836 0.321167 0.321167 0.321167 0.329468 0.329468 0.329468 0.337677 0.337677 0.337677 0.345459 0.345459 0.345459 0.353363 0.353363 0.353363 0.361053 0.361053 0.361053 0.368408 0.368408 0.368408 0.375854 0.375854 0.375854 0.383179 0.383179 0.383179 0.390228 0.390228 0.390228 0.397339 0.397339 0.397339 0.404358 0.404358 0.404358 0.411133 0.411133 0.411133 0.417999 0.417999 0.417999 0.424683 0.424683 0.424683 0.431488 0.431488 0.431488 0.438263 0.438263 0.438263 0.444824 0.444824 0.444824 0.451569 0.451569 0.451569 0.458313 0.458313 0.458313 0.228455 0.228455 0.228455 0.238373 0.238373 0.238373 0.248352 0.248352 0.248352 0.258118 0.258118 0.258118 0.267517 0.267517 0.267517 0.276917 0.276917 0.276917 0.286194 0.286194 0.286194 0.295013 0.295013 0.295013 0.303925 0.303925 0.303925 0.312622 0.312622 0.312622 0.320923 0.320923 0.320923 0.329285 0.329285 0.329285 0.337250 0.337250 0.337250 0.345306 0.345306 0.345306 0.353149 0.353149 0.353149 0.360657 0.360657 0.360657 0.368225 0.368225 0.368225 0.375702 0.375702 0.375702 0.382843 0.382843 0.382843 0.390045 0.390045 0.390045 0.397186 0.397186 0.397186 0.403992 0.403992 0.403992 0.410980 0.410980 0.410980 0.417664 0.417664 0.417664 0.424500 0.424500 0.424500 0.431305 0.431305 0.431305 0.437897 0.437897 0.437897 0.444641 0.444641 0.444641 0.451416 0.451416 0.451416 0.457977 0.457977 0.457977 0.464752 0.464752 0.464752 0.471588 0.471588 0.471588 0.248108 0.248108 0.248108 0.257629 0.257629 0.257629 0.267273 0.267273 0.267273 0.276703 0.276703 0.276703 0.285736 0.285736 0.285736 0.294830 0.294830 0.294830 0.303680 0.303680 0.303680 0.312195 0.312195 0.312195 0.320709 0.320709 0.320709 0.328827 0.328827 0.328827 0.337036 0.337036 0.337036 0.345062 0.345062 0.345062 0.352722 0.352722 0.352722 0.360474 0.360474 0.360474 0.368042 0.368042 0.368042 0.375336 0.375336 0.375336 0.382660 0.382660 0.382660 0.389862 0.389862 0.389862 0.396820 0.396820 0.396820 0.403839 0.403839 0.403839 0.410797 0.410797 0.410797 0.417480 0.417480 0.417480 0.424347 0.424347 0.424347 0.430969 0.430969 0.430969 0.437744 0.437744 0.437744 0.444489 0.444489 0.444489 0.451080 0.451080 0.451080 0.457825 0.457825 0.457825 0.464600 0.464600 0.464600 0.471222 0.471222 0.471222 0.478088 0.478088 0.478088 0.484985 0.484985 0.484985 0.267059 0.267059 0.267059 0.276245 0.276245 0.276245 0.285492 0.285492 0.285492 0.294586 0.294586 0.294586 0.303253 0.303253 0.303253 0.311981 0.311981 0.311981 0.320496 0.320496 0.320496 0.328674 0.328674 0.328674 0.336853 0.336853 0.336853 0.344666 0.344666 0.344666 0.352539 0.352539 0.352539 0.360260 0.360260 0.360260 0.367676 0.367676 0.367676 0.375122 0.375122 0.375122 0.382446 0.382446 0.382446 0.389526 0.389526 0.389526 0.396637 0.396637 0.396637 0.403656 0.403656 0.403656 0.410461 0.410461 0.410461 0.417328 0.417328 0.417328 0.424011 0.424011 0.424011 0.430817 0.430817 0.430817 0.437592 0.437592 0.437592 0.444153 0.444153 0.444153 0.450897 0.450897 0.450897 0.457642 0.457642 0.457642 0.464233 0.464233 0.464233 0.471069 0.471069 0.471069 0.477936 0.477936 0.477936 0.484650 0.484650 0.484650 0.491608 0.491608 0.491608 0.498474 0.498474 0.498474 0.285248 0.285248 0.285248 0.294128 0.294128 0.294128 0.303009 0.303009 0.303009 0.311737 0.311737 0.311737 0.320099 0.320099 0.320099 0.328461 0.328461 0.328461 0.336426 0.336426 0.336426 0.344482 0.344482 0.344482 0.352325 0.352325 0.352325 0.359894 0.359894 0.359894 0.367462 0.367462 0.367462 0.374969 0.374969 0.374969 0.382080 0.382080 0.382080 0.389313 0.389313 0.389313 0.396454 0.396454 0.396454 0.403320 0.403320 0.403320 0.410278 0.410278 0.410278 0.417175 0.417175 0.417175 0.423828 0.423828 0.423828 0.430603 0.430603 0.430603 0.437225 0.437225 0.437225 0.443970 0.443970 0.443970 0.450714 0.450714 0.450714 0.457306 0.457306 0.457306 0.464081 0.464081 0.464081 0.470886 0.470886 0.470886 0.477570 0.477570 0.477570 0.484467 0.484467 0.484467 0.491425 0.491425 0.491425 0.498291 0.498291 0.498291 0.505432 0.505432 0.505432 0.512451 0.512451 0.512451 0.302795 0.302795 0.302795 0.311310 0.311310 0.311310 0.319855 0.319855 0.319855 0.328247 0.328247 0.328247 0.336243 0.336243 0.336243 0.344269 0.344269 0.344269 0.352173 0.352173 0.352173 0.359711 0.359711 0.359711 0.367310 0.367310 0.367310 0.374573 0.374573 0.374573 0.381927 0.381927 0.381927 0.389160 0.389160 0.389160 0.396088 0.396088 0.396088 0.403168 0.403168 0.403168 0.410095 0.410095 0.410095 0.416840 0.416840 0.416840 0.423676 0.423676 0.423676 0.430450 0.430450 0.430450 0.437073 0.437073 0.437073 0.443817 0.443817 0.443817 0.450378 0.450378 0.450378 0.457123 0.457123 0.457123 0.463928 0.463928 0.463928 0.470551 0.470551 0.470551 0.477386 0.477386 0.477386 0.484283 0.484283 0.484283 0.491089 0.491089 0.491089 0.498077 0.498077 0.498077 0.505219 0.505219 0.505219 0.512268 0.512268 0.512268 0.519592 0.519592 0.519592 0.526825 0.526825 0.526825 0.319641 0.319641 0.319641 0.327789 0.327789 0.327789 0.336029 0.336029 0.336029 0.344086 0.344086 0.344086 0.351776 0.351776 0.351776 0.359497 0.359497 0.359497 0.366943 0.366943 0.366943 0.374390 0.374390 0.374390 0.381744 0.381744 0.381744 0.388794 0.388794 0.388794 0.395935 0.395935 0.395935 0.402954 0.402954 0.402954 0.409760 0.409760 0.409760 0.416656 0.416656 0.416656 0.423462 0.423462 0.423462 0.430115 0.430115 0.430115 0.436890 0.436890 0.436890 0.443665 0.443665 0.443665 0.450226 0.450226 0.450226 0.456970 0.456970 0.456970 0.463562 0.463562 0.463562 0.470367 0.470367 0.470367 0.477203 0.477203 0.477203 0.483948 0.483948 0.483948 0.490906 0.490906 0.490906 0.497955 0.497955 0.497955 0.504883 0.504883 0.504883 0.512085 0.512085 0.512085 0.519379 0.519379 0.519379 0.526642 0.526642 0.526642 0.534180 0.534180 0.534180 0.541656 0.541656 0.541656 0.335846 0.335846 0.335846 0.343689 0.343689 0.343689 0.351562 0.351562 0.351562 0.359314 0.359314 0.359314 0.366730 0.366730 0.366730 0.374207 0.374207 0.374207 0.381378 0.381378 0.381378 0.388611 0.388611 0.388611 0.395752 0.395752 0.395752 0.402618 0.402618 0.402618 0.409576 0.409576 0.409576 0.416473 0.416473 0.416473 0.423126 0.423126 0.423126 0.429932 0.429932 0.429932 0.436707 0.436707 0.436707 0.443298 0.443298 0.443298 0.450073 0.450073 0.450073 0.456635 0.456635 0.456635 0.463409 0.463409 0.463409 0.470184 0.470184 0.470184 0.476868 0.476868 0.476868 0.483734 0.483734 0.483734 0.490692 0.490692 0.490692 0.497589 0.497589 0.497589 0.504700 0.504700 0.504700 0.511902 0.511902 0.511902 0.519043 0.519043 0.519043 0.526428 0.526428 0.526428 0.533783 0.533783 0.533783 0.541443 0.541443 0.541443 0.549225 0.549225 0.549225 0.556946 0.556946 0.556946 0.351379 0.351379 0.351379 0.358948 0.358948 0.358948 0.366547 0.366547 0.366547 0.373840 0.373840 0.373840 0.381195 0.381195 0.381195 0.388428 0.388428 0.388428 0.395416 0.395416 0.395416 0.402435 0.402435 0.402435 0.409424 0.409424 0.409424 0.416138 0.416138 0.416138 0.422974 0.422974 0.422974 0.429779 0.429779 0.429779 0.436371 0.436371 0.436371 0.443146 0.443146 0.443146 0.449707 0.449707 0.449707 0.456451 0.456451 0.456451 0.463226 0.463226 0.463226 0.469879 0.469879 0.469879 0.476685 0.476685 0.476685 0.483612 0.483612 0.483612 0.490387 0.490387 0.490387 0.497406 0.497406 0.497406 0.504517 0.504517 0.504517 0.511536 0.511536 0.511536 0.518860 0.518860 0.518860 0.526245 0.526245 0.526245 0.533600 0.533600 0.533600 0.541260 0.541260 0.541260 0.548828 0.548828 0.548828 0.556732 0.556732 0.556732 0.564758 0.564758 0.564758 0.572754 0.572754 0.572754 0.366364 0.366364 0.366364 0.373657 0.373657 0.373657 0.381012 0.381012 0.381012 0.388062 0.388062 0.388062 0.395203 0.395203 0.395203 0.402252 0.402252 0.402252 0.409058 0.409058 0.409058 0.415955 0.415955 0.415955 0.422791 0.422791 0.422791 0.429443 0.429443 0.429443 0.436218 0.436218 0.436218 0.442963 0.442963 0.442963 0.449554 0.449554 0.449554 0.456299 0.456299 0.456299 0.462921 0.462921 0.462921 0.469696 0.469696 0.469696 0.476532 0.476532 0.476532 0.483246 0.483246 0.483246 0.490173 0.490173 0.490173 0.497223 0.497223 0.497223 0.504181 0.504181 0.504181 0.511353 0.511353 0.511353 0.518677 0.518677 0.518677 0.525879 0.525879 0.525879 0.533417 0.533417 0.533417 0.540863 0.540863 0.540863 0.548645 0.548645 0.548645 0.556519 0.556519 0.556519 0.564362 0.564362 0.564362 0.572540 0.572540 0.572540 0.580841 0.580841 0.580841 0.589081 0.589081 0.589081 0.380615 0.380615 0.380615 0.387878 0.387878 0.387878 0.395020 0.395020 0.395020 0.401917 0.401917 0.401917 0.408905 0.408905 0.408905 0.415802 0.415802 0.415802 0.422455 0.422455 0.422455 0.429260 0.429260 0.429260 0.436035 0.436035 0.436035 0.442627 0.442627 0.442627 0.449371 0.449371 0.449371 0.455963 0.455963 0.455963 0.462708 0.462708 0.462708 0.469543 0.469543 0.469543 0.476196 0.476196 0.476196 0.483063 0.483063 0.483063 0.490051 0.490051 0.490051 0.496887 0.496887 0.496887 0.503967 0.503967 0.503967 0.511200 0.511200 0.511200 0.518280 0.518280 0.518280 0.525696 0.525696 0.525696 0.533234 0.533234 0.533234 0.540680 0.540680 0.540680 0.548431 0.548431 0.548431 0.556152 0.556152 0.556152 0.564178 0.564178 0.564178 0.572327 0.572327 0.572327 0.580414 0.580414 0.580414 0.588837 0.588837 0.588837 0.597382 0.597382 0.597382 0.605774 0.605774 0.605774 0.394684 0.394684 0.394684 0.401764 0.401764 0.401764 0.408722 0.408722 0.408722 0.415436 0.415436 0.415436 0.422272 0.422272 0.422272 0.429108 0.429108 0.429108 0.435699 0.435699 0.435699 0.442444 0.442444 0.442444 0.449188 0.449188 0.449188 0.455780 0.455780 0.455780 0.462555 0.462555 0.462555 0.469177 0.469177 0.469177 0.476013 0.476013 0.476013 0.482910 0.482910 0.482910 0.489685 0.489685 0.489685 0.496704 0.496704 0.496704 0.503784 0.503784 0.503784 0.510803 0.510803 0.510803 0.518127 0.518127 0.518127 0.525513 0.525513 0.525513 0.532867 0.532867 0.532867 0.540466 0.540466 0.540466 0.548065 0.548065 0.548065 0.555939 0.555939 0.555939 0.563995 0.563995 0.563995 0.571899 0.571899 0.571899 0.580231 0.580231 0.580231 0.588623 0.588623 0.588623 0.596954 0.596954 0.596954 0.605560 0.605560 0.605560 0.614258 0.614258 0.614258 0.622742 0.622742 0.622742 0.408386 0.408386 0.408386 0.415283 0.415283 0.415283 0.422119 0.422119 0.422119 0.428772 0.428772 0.428772 0.435516 0.435516 0.435516 0.442291 0.442291 0.442291 0.448883 0.448883 0.448883 0.455627 0.455627 0.455627 0.462219 0.462219 0.462219 0.469025 0.469025 0.469025 0.475861 0.475861 0.475861 0.482544 0.482544 0.482544 0.489502 0.489502 0.489502 0.496521 0.496521 0.496521 0.503418 0.503418 0.503418 0.510651 0.510651 0.510651 0.517944 0.517944 0.517944 0.525146 0.525146 0.525146 0.532654 0.532654 0.532654 0.540283 0.540283 0.540283 0.547821 0.547821 0.547821 0.555725 0.555725 0.555725 0.563538 0.563538 0.563538 0.571686 0.571686 0.571686 0.580017 0.580017 0.580017 0.588196 0.588196 0.588196 0.596741 0.596741 0.596741 0.605347 0.605347 0.605347 0.613770 0.613770 0.613770 0.622528 0.622528 0.622528 0.631256 0.631256 0.631256 0.639801 0.639801 0.639801 0.421753 0.421753 0.421753 0.428589 0.428589 0.428589 0.435364 0.435364 0.435364 0.441956 0.441956 0.441956 0.448700 0.448700 0.448700 0.455444 0.455444 0.455444 0.462036 0.462036 0.462036 0.468842 0.468842 0.468842 0.475494 0.475494 0.475494 0.482391 0.482391 0.482391 0.489349 0.489349 0.489349 0.496155 0.496155 0.496155 0.503265 0.503265 0.503265 0.510437 0.510437 0.510437 0.517548 0.517548 0.517548 0.524963 0.524963 0.524963 0.532471 0.532471 0.532471 0.539886 0.539886 0.539886 0.547668 0.547668 0.547668 0.555328 0.555328 0.555328 0.563354 0.563354 0.563354 0.571503 0.571503 0.571503 0.579590 0.579590 0.579590 0.588013 0.588013 0.588013 0.596527 0.596527 0.596527 0.604919 0.604919 0.604919 0.613586 0.613586 0.613586 0.622284 0.622284 0.622284 0.630829 0.630829 0.630829 0.639557 0.639557 0.639557 0.648132 0.648132 0.648132 0.656830 0.656830 0.656830 0.435028 0.435028 0.435028 0.441772 0.441772 0.441772 0.448517 0.448517 0.448517 0.455109 0.455109 0.455109 0.461884 0.461884 0.461884 0.468658 0.468658 0.468658 0.475342 0.475342 0.475342 0.482208 0.482208 0.482208 0.488983 0.488983 0.488983 0.496002 0.496002 0.496002 0.503082 0.503082 0.503082 0.510101 0.510101 0.510101 0.517395 0.517395 0.517395 0.524780 0.524780 0.524780 0.532104 0.532104 0.532104 0.539734 0.539734 0.539734 0.547455 0.547455 0.547455 0.555115 0.555115 0.555115 0.563141 0.563141 0.563141 0.571106 0.571106 0.571106 0.579376 0.579376 0.579376 0.587799 0.587799 0.587799 0.596100 0.596100 0.596100 0.604675 0.604675 0.604675 0.613342 0.613342 0.613342 0.621857 0.621857 0.621857 0.630615 0.630615 0.630615 0.639374 0.639374 0.639374 0.647888 0.647888 0.647888 0.656616 0.656616 0.656616 0.665039 0.665039 0.665039 0.673706 0.673706 0.673706 0.448212 0.448212 0.448212 0.454956 0.454956 0.454956 0.461700 0.461700 0.461700 0.468323 0.468323 0.468323 0.475159 0.475159 0.475159 0.481873 0.481873 0.481873 0.488831 0.488831 0.488831 0.495819 0.495819 0.495819 0.502747 0.502747 0.502747 0.509888 0.509888 0.509888 0.517212 0.517212 0.517212 0.524414 0.524414 0.524414 0.531891 0.531891 0.531891 0.539520 0.539520 0.539520 0.547058 0.547058 0.547058 0.554932 0.554932 0.554932 0.562775 0.562775 0.562775 0.570892 0.570892 0.570892 0.579193 0.579193 0.579193 0.587372 0.587372 0.587372 0.595856 0.595856 0.595856 0.604462 0.604462 0.604462 0.612946 0.612946 0.612946 0.621643 0.621643 0.621643 0.630371 0.630371 0.630371 0.638916 0.638916 0.638916 0.647675 0.647675 0.647675 0.656158 0.656158 0.656158 0.664856 0.664856 0.664856 0.673462 0.673462 0.673462 0.681793 0.681793 0.681793 0.690277 0.690277 0.690277 0.461365 0.461365 0.461365 0.468140 0.468140 0.468140 0.474976 0.474976 0.474976 0.481689 0.481689 0.481689 0.488617 0.488617 0.488617 0.495483 0.495483 0.495483 0.502533 0.502533 0.502533 0.509735 0.509735 0.509735 0.516815 0.516815 0.516815 0.524200 0.524200 0.524200 0.531708 0.531708 0.531708 0.539093 0.539093 0.539093 0.546875 0.546875 0.546875 0.554749 0.554749 0.554749 0.562561 0.562561 0.562561 0.570679 0.570679 0.570679 0.578766 0.578766 0.578766 0.587128 0.587128 0.587128 0.595673 0.595673 0.595673 0.604034 0.604034 0.604034 0.612701 0.612701 0.612701 0.621399 0.621399 0.621399 0.629944 0.629944 0.629944 0.638702 0.638702 0.638702 0.647430 0.647430 0.647430 0.655914 0.655914 0.655914 0.664612 0.664612 0.664612 0.673065 0.673065 0.673065 0.681610 0.681610 0.681610 0.690063 0.690063 0.690063 0.698212 0.698212 0.698212 0.706451 0.706451 0.706451 0.474640 0.474640 0.474640 0.481506 0.481506 0.481506 0.488281 0.488281 0.488281 0.495270 0.495270 0.495270 0.502380 0.502380 0.502380 0.509369 0.509369 0.509369 0.516663 0.516663 0.516663 0.524017 0.524017 0.524017 0.531342 0.531342 0.531342 0.538940 0.538940 0.538940 0.546661 0.546661 0.546661 0.554352 0.554352 0.554352 0.562347 0.562347 0.562347 0.570282 0.570282 0.570282 0.578552 0.578552 0.578552 0.586945 0.586945 0.586945 0.595215 0.595215 0.595215 0.603821 0.603821 0.603821 0.612488 0.612488 0.612488 0.621002 0.621002 0.621002 0.629730 0.629730 0.629730 0.638489 0.638489 0.638489 0.647003 0.647003 0.647003 0.655731 0.655731 0.655731 0.664215 0.664215 0.664215 0.672821 0.672821 0.672821 0.681366 0.681366 0.681366 0.689667 0.689667 0.689667 0.697998 0.697998 0.697998 0.706238 0.706238 0.706238 0.714142 0.714142 0.714142 0.722107 0.722107 0.722107 0.488098 0.488098 0.488098 0.495087 0.495087 0.495087 0.502014 0.502014 0.502014 0.509186 0.509186 0.509186 0.516449 0.516449 0.516449 0.523651 0.523651 0.523651 0.531158 0.531158 0.531158 0.538727 0.538727 0.538727 0.546295 0.546295 0.546295 0.554169 0.554169 0.554169 0.562134 0.562134 0.562134 0.570068 0.570068 0.570068 0.578308 0.578308 0.578308 0.586517 0.586517 0.586517 0.595032 0.595032 0.595032 0.603607 0.603607 0.603607 0.612061 0.612061 0.612061 0.620758 0.620758 0.620758 0.629517 0.629517 0.629517 0.638031 0.638031 0.638031 0.646790 0.646790 0.646790 0.655518 0.655518 0.655518 0.664001 0.664001 0.664001 0.672607 0.672607 0.672607 0.680969 0.680969 0.680969 0.689423 0.689423 0.689423 0.697784 0.697784 0.697784 0.705841 0.705841 0.705841 0.713959 0.713959 0.713959 0.721924 0.721924 0.721924 0.729553 0.729553 0.729553 0.737213 0.737213 0.737213 0.501862 0.501862 0.501862 0.509003 0.509003 0.509003 0.516113 0.516113 0.516113 0.523468 0.523468 0.523468 0.530945 0.530945 0.530945 0.538361 0.538361 0.538361 0.546112 0.546112 0.546112 0.553955 0.553955 0.553955 0.561737 0.561737 0.561737 0.569885 0.569885 0.569885 0.577911 0.577911 0.577911 0.586304 0.586304 0.586304 0.594818 0.594818 0.594818 0.603180 0.603180 0.603180 0.611847 0.611847 0.611847 0.620544 0.620544 0.620544 0.629059 0.629059 0.629059 0.637817 0.637817 0.637817 0.646576 0.646576 0.646576 0.655090 0.655090 0.655090 0.663788 0.663788 0.663788 0.672394 0.672394 0.672394 0.680756 0.680756 0.680756 0.689209 0.689209 0.689209 0.697388 0.697388 0.697388 0.705627 0.705627 0.705627 0.713776 0.713776 0.713776 0.721527 0.721527 0.721527 0.729370 0.729370 0.729370 0.737000 0.737000 0.737000 0.744293 0.744293 0.744293 0.751556 0.751556 0.751556 0.515900 0.515900 0.515900 0.523285 0.523285 0.523285 0.530579 0.530579 0.530579 0.538177 0.538177 0.538177 0.545898 0.545898 0.545898 0.553558 0.553558 0.553558 0.561554 0.561554 0.561554 0.569672 0.569672 0.569672 0.577698 0.577698 0.577698 0.586090 0.586090 0.586090 0.594391 0.594391 0.594391 0.602966 0.602966 0.602966 0.611603 0.611603 0.611603 0.620117 0.620117 0.620117 0.628845 0.628845 0.628845 0.637604 0.637604 0.637604 0.646149 0.646149 0.646149 0.654877 0.654877 0.654877 0.663574 0.663574 0.663574 0.671936 0.671936 0.671936 0.680511 0.680511 0.680511 0.688812 0.688812 0.688812 0.697205 0.697205 0.697205 0.705414 0.705414 0.705414 0.713348 0.713348 0.713348 0.721344 0.721344 0.721344 0.729126 0.729126 0.729126 0.736633 0.736633 0.736633 0.744110 0.744110 0.744110 0.751373 0.751373 0.751373 0.758301 0.758301 0.758301 0.765167 0.765167 0.765167 0.061615 0.061615 0.061615 0.065613 0.065613 0.065613 0.069824 0.069824 0.069824 0.074219 0.074219 0.074219 0.078705 0.078705 0.078705 0.083588 0.083588 0.083588 0.088684 0.088684 0.088684 0.093903 0.093903 0.093903 0.099518 0.099518 0.099518 0.105377 0.105377 0.105377 0.111481 0.111481 0.111481 0.118042 0.118042 0.118042 0.124786 0.124786 0.124786 0.132111 0.132111 0.132111 0.139832 0.139832 0.139832 0.147827 0.147827 0.147827 0.156494 0.156494 0.156494 0.165680 0.165680 0.165680 0.175049 0.175049 0.175049 0.185028 0.185028 0.185028 0.195251 0.195251 0.195251 0.205383 0.205383 0.205383 0.215790 0.215790 0.215790 0.226166 0.226166 0.226166 0.236053 0.236053 0.236053 0.246094 0.246094 0.246094 0.255707 0.255707 0.255707 0.265350 0.265350 0.265350 0.274841 0.274841 0.274841 0.283905 0.283905 0.283905 0.292999 0.292999 0.292999 0.301941 0.301941 0.301941 0.069702 0.069702 0.069702 0.073975 0.073975 0.073975 0.078613 0.078613 0.078613 0.083466 0.083466 0.083466 0.088379 0.088379 0.088379 0.093750 0.093750 0.093750 0.099365 0.099365 0.099365 0.105133 0.105133 0.105133 0.111328 0.111328 0.111328 0.117859 0.117859 0.117859 0.124634 0.124634 0.124634 0.131927 0.131927 0.131927 0.139435 0.139435 0.139435 0.147614 0.147614 0.147614 0.156281 0.156281 0.156281 0.165222 0.165222 0.165222 0.174805 0.174805 0.174805 0.184753 0.184753 0.184753 0.194763 0.194763 0.194763 0.205109 0.205109 0.205109 0.215546 0.215546 0.215546 0.225647 0.225647 0.225647 0.235840 0.235840 0.235840 0.245636 0.245636 0.245636 0.255463 0.255463 0.255463 0.265106 0.265106 0.265106 0.274323 0.274323 0.274323 0.283661 0.283661 0.283661 0.292786 0.292786 0.292786 0.301483 0.301483 0.301483 0.310242 0.310242 0.310242 0.318817 0.318817 0.318817 0.078491 0.078491 0.078491 0.083191 0.083191 0.083191 0.088257 0.088257 0.088257 0.093597 0.093597 0.093597 0.099060 0.099060 0.099060 0.104950 0.104950 0.104950 0.111145 0.111145 0.111145 0.117523 0.117523 0.117523 0.124420 0.124420 0.124420 0.131531 0.131531 0.131531 0.139221 0.139221 0.139221 0.147400 0.147400 0.147400 0.155792 0.155792 0.155792 0.164978 0.164978 0.164978 0.174591 0.174591 0.174591 0.184265 0.184265 0.184265 0.194489 0.194489 0.194489 0.204865 0.204865 0.204865 0.215027 0.215027 0.215027 0.225372 0.225372 0.225372 0.235596 0.235596 0.235596 0.245361 0.245361 0.245361 0.255219 0.255219 0.255219 0.264618 0.264618 0.264618 0.274109 0.274109 0.274109 0.283417 0.283417 0.283417 0.292328 0.292328 0.292328 0.301270 0.301270 0.301270 0.310028 0.310028 0.310028 0.318390 0.318390 0.318390 0.326782 0.326782 0.326782 0.335022 0.335022 0.335022 0.088165 0.088165 0.088165 0.093353 0.093353 0.093353 0.098907 0.098907 0.098907 0.104797 0.104797 0.104797 0.110870 0.110870 0.110870 0.117340 0.117340 0.117340 0.124268 0.124268 0.124268 0.131348 0.131348 0.131348 0.139038 0.139038 0.139038 0.146973 0.146973 0.146973 0.155609 0.155609 0.155609 0.164734 0.164734 0.164734 0.174072 0.174072 0.174072 0.184021 0.184021 0.184021 0.194244 0.194244 0.194244 0.204346 0.204346 0.204346 0.214752 0.214752 0.214752 0.225128 0.225128 0.225128 0.235077 0.235077 0.235077 0.245117 0.245117 0.245117 0.254730 0.254730 0.254730 0.264404 0.264404 0.264404 0.273895 0.273895 0.273895 0.282990 0.282990 0.282990 0.292114 0.292114 0.292114 0.301056 0.301056 0.301056 0.309601 0.309601 0.309601 0.318176 0.318176 0.318176 0.326599 0.326599 0.326599 0.334625 0.334625 0.334625 0.342682 0.342682 0.342682 0.350372 0.350372 0.350372 0.098785 0.098785 0.098785 0.104492 0.104492 0.104492 0.110687 0.110687 0.110687 0.117218 0.117218 0.117218 0.123901 0.123901 0.123901 0.131134 0.131134 0.131134 0.138641 0.138641 0.138641 0.146759 0.146759 0.146759 0.155396 0.155396 0.155396 0.164246 0.164246 0.164246 0.173828 0.173828 0.173828 0.183777 0.183777 0.183777 0.193695 0.193695 0.193695 0.204102 0.204102 0.204102 0.214508 0.214508 0.214508 0.224609 0.224609 0.224609 0.234833 0.234833 0.234833 0.244843 0.244843 0.244843 0.254456 0.254456 0.254456 0.264160 0.264160 0.264160 0.273407 0.273407 0.273407 0.282745 0.282745 0.282745 0.291870 0.291870 0.291870 0.300598 0.300598 0.300598 0.309357 0.309357 0.309357 0.317932 0.317932 0.317932 0.326172 0.326172 0.326172 0.334412 0.334412 0.334412 0.342468 0.342468 0.342468 0.350189 0.350189 0.350189 0.357971 0.357971 0.357971 0.365417 0.365417 0.365417 0.110504 0.110504 0.110504 0.116852 0.116852 0.116852 0.123718 0.123718 0.123718 0.130981 0.130981 0.130981 0.138458 0.138458 0.138458 0.146576 0.146576 0.146576 0.154907 0.154907 0.154907 0.164001 0.164001 0.164001 0.173584 0.173584 0.173584 0.183289 0.183289 0.183289 0.193451 0.193451 0.193451 0.203827 0.203827 0.203827 0.213989 0.213989 0.213989 0.224335 0.224335 0.224335 0.234558 0.234558 0.234558 0.244354 0.244354 0.244354 0.254211 0.254211 0.254211 0.263672 0.263672 0.263672 0.273193 0.273193 0.273193 0.282501 0.282501 0.282501 0.291412 0.291412 0.291412 0.300385 0.300385 0.300385 0.309143 0.309143 0.309143 0.317535 0.317535 0.317535 0.325958 0.325958 0.325958 0.334167 0.334167 0.334167 0.342072 0.342072 0.342072 0.349976 0.349976 0.349976 0.357574 0.357574 0.357574 0.365204 0.365204 0.365204 0.372711 0.372711 0.372711 0.379883 0.379883 0.379883 0.123535 0.123535 0.123535 0.130615 0.130615 0.130615 0.138245 0.138245 0.138245 0.146332 0.146332 0.146332 0.154694 0.154694 0.154694 0.163788 0.163788 0.163788 0.173096 0.173096 0.173096 0.182983 0.182983 0.182983 0.193207 0.193207 0.193207 0.203308 0.203308 0.203308 0.213745 0.213745 0.213745 0.224091 0.224091 0.224091 0.234070 0.234070 0.234070 0.244110 0.244110 0.244110 0.253723 0.253723 0.253723 0.263428 0.263428 0.263428 0.272949 0.272949 0.272949 0.282043 0.282043 0.282043 0.291199 0.291199 0.291199 0.300140 0.300140 0.300140 0.308716 0.308716 0.308716 0.317291 0.317291 0.317291 0.325745 0.325745 0.325745 0.333801 0.333801 0.333801 0.341858 0.341858 0.341858 0.349823 0.349823 0.349823 0.357391 0.357391 0.357391 0.365051 0.365051 0.365051 0.372314 0.372314 0.372314 0.379700 0.379700 0.379700 0.386993 0.386993 0.386993 0.393982 0.393982 0.393982 0.138062 0.138062 0.138062 0.145935 0.145935 0.145935 0.154510 0.154510 0.154510 0.163330 0.163330 0.163330 0.172852 0.172852 0.172852 0.182739 0.182739 0.182739 0.192657 0.192657 0.192657 0.203033 0.203033 0.203033 0.213470 0.213470 0.213470 0.223572 0.223572 0.223572 0.233826 0.233826 0.233826 0.243866 0.243866 0.243866 0.253479 0.253479 0.253479 0.263184 0.263184 0.263184 0.272491 0.272491 0.272491 0.281830 0.281830 0.281830 0.290985 0.290985 0.290985 0.299713 0.299713 0.299713 0.308502 0.308502 0.308502 0.317108 0.317108 0.317108 0.325317 0.325317 0.325317 0.333588 0.333588 0.333588 0.341675 0.341675 0.341675 0.349396 0.349396 0.349396 0.357208 0.357208 0.357208 0.364655 0.364655 0.364655 0.372192 0.372192 0.372192 0.379547 0.379547 0.379547 0.386597 0.386597 0.386597 0.393768 0.393768 0.393768 0.400848 0.400848 0.400848 0.407684 0.407684 0.407684 0.154266 0.154266 0.154266 0.163116 0.163116 0.163116 0.172638 0.172638 0.172638 0.182251 0.182251 0.182251 0.192413 0.192413 0.192413 0.202789 0.202789 0.202789 0.212952 0.212952 0.212952 0.223328 0.223328 0.223328 0.233551 0.233551 0.233551 0.243378 0.243378 0.243378 0.253265 0.253265 0.253265 0.262970 0.262970 0.262970 0.272247 0.272247 0.272247 0.281586 0.281586 0.281586 0.290527 0.290527 0.290527 0.299500 0.299500 0.299500 0.308289 0.308289 0.308289 0.316681 0.316681 0.316681 0.325104 0.325104 0.325104 0.333374 0.333374 0.333374 0.341278 0.341278 0.341278 0.349213 0.349213 0.349213 0.356995 0.356995 0.356995 0.364471 0.364471 0.364471 0.371979 0.371979 0.371979 0.379181 0.379181 0.379181 0.386444 0.386444 0.386444 0.393616 0.393616 0.393616 0.400482 0.400482 0.400482 0.407501 0.407501 0.407501 0.414429 0.414429 0.414429 0.421112 0.421112 0.421112 0.172150 0.172150 0.172150 0.182007 0.182007 0.182007 0.192169 0.192169 0.192169 0.202271 0.202271 0.202271 0.212646 0.212646 0.212646 0.223053 0.223053 0.223053 0.233032 0.233032 0.233032 0.243103 0.243103 0.243103 0.253021 0.253021 0.253021 0.262482 0.262482 0.262482 0.272003 0.272003 0.272003 0.281097 0.281097 0.281097 0.290283 0.290283 0.290283 0.299255 0.299255 0.299255 0.307861 0.307861 0.307861 0.316467 0.316467 0.316467 0.324890 0.324890 0.324890 0.332977 0.332977 0.332977 0.341064 0.341064 0.341064 0.349030 0.349030 0.349030 0.356598 0.356598 0.356598 0.364258 0.364258 0.364258 0.371613 0.371613 0.371613 0.378967 0.378967 0.378967 0.386261 0.386261 0.386261 0.393250 0.393250 0.393250 0.400360 0.400360 0.400360 0.407318 0.407318 0.407318 0.414062 0.414062 0.414062 0.420929 0.420929 0.420929 0.427734 0.427734 0.427734 0.434357 0.434357 0.434357 0.191650 0.191650 0.191650 0.202026 0.202026 0.202026 0.212402 0.212402 0.212402 0.222534 0.222534 0.222534 0.232788 0.232788 0.232788 0.242828 0.242828 0.242828 0.252502 0.252502 0.252502 0.262238 0.262238 0.262238 0.271759 0.271759 0.271759 0.280884 0.280884 0.280884 0.290039 0.290039 0.290039 0.298828 0.298828 0.298828 0.307617 0.307617 0.307617 0.316254 0.316254 0.316254 0.324493 0.324493 0.324493 0.332764 0.332764 0.332764 0.340881 0.340881 0.340881 0.348633 0.348633 0.348633 0.356445 0.356445 0.356445 0.364105 0.364105 0.364105 0.371399 0.371399 0.371399 0.378815 0.378815 0.378815 0.385925 0.385925 0.385925 0.393097 0.393097 0.393097 0.400146 0.400146 0.400146 0.406982 0.406982 0.406982 0.413879 0.413879 0.413879 0.420776 0.420776 0.420776 0.427399 0.427399 0.427399 0.434204 0.434204 0.434204 0.440948 0.440948 0.440948 0.447510 0.447510 0.447510 0.211884 0.211884 0.211884 0.222260 0.222260 0.222260 0.232513 0.232513 0.232513 0.242371 0.242371 0.242371 0.252258 0.252258 0.252258 0.261993 0.261993 0.261993 0.271301 0.271301 0.271301 0.280670 0.280670 0.280670 0.289612 0.289612 0.289612 0.298584 0.298584 0.298584 0.307434 0.307434 0.307434 0.315826 0.315826 0.315826 0.324280 0.324280 0.324280 0.332581 0.332581 0.332581 0.340485 0.340485 0.340485 0.348419 0.348419 0.348419 0.356232 0.356232 0.356232 0.363708 0.363708 0.363708 0.371246 0.371246 0.371246 0.378448 0.378448 0.378448 0.385742 0.385742 0.385742 0.392883 0.392883 0.392883 0.399811 0.399811 0.399811 0.406799 0.406799 0.406799 0.413727 0.413727 0.413727 0.420410 0.420410 0.420410 0.427246 0.427246 0.427246 0.433990 0.433990 0.433990 0.440582 0.440582 0.440582 0.447357 0.447357 0.447357 0.453949 0.453949 0.453949 0.460693 0.460693 0.460693 0.232025 0.232025 0.232025 0.242126 0.242126 0.242126 0.252014 0.252014 0.252014 0.261505 0.261505 0.261505 0.271057 0.271057 0.271057 0.280426 0.280426 0.280426 0.289368 0.289368 0.289368 0.298370 0.298370 0.298370 0.306976 0.306976 0.306976 0.315613 0.315613 0.315613 0.324066 0.324066 0.324066 0.332153 0.332153 0.332153 0.340271 0.340271 0.340271 0.348236 0.348236 0.348236 0.355835 0.355835 0.355835 0.363495 0.363495 0.363495 0.371033 0.371033 0.371033 0.378265 0.378265 0.378265 0.385559 0.385559 0.385559 0.392548 0.392548 0.392548 0.399628 0.399628 0.399628 0.406616 0.406616 0.406616 0.413361 0.413361 0.413361 0.420227 0.420227 0.420227 0.427063 0.427063 0.427063 0.433685 0.433685 0.433685 0.440430 0.440430 0.440430 0.447205 0.447205 0.447205 0.453766 0.453766 0.453766 0.460541 0.460541 0.460541 0.467133 0.467133 0.467133 0.473938 0.473938 0.473938 0.251526 0.251526 0.251526 0.261261 0.261261 0.261261 0.270813 0.270813 0.270813 0.279968 0.279968 0.279968 0.289124 0.289124 0.289124 0.297943 0.297943 0.297943 0.306763 0.306763 0.306763 0.315399 0.315399 0.315399 0.323639 0.323639 0.323639 0.331940 0.331940 0.331940 0.340088 0.340088 0.340088 0.347870 0.347870 0.347870 0.355682 0.355682 0.355682 0.363312 0.363312 0.363312 0.370667 0.370667 0.370667 0.378082 0.378082 0.378082 0.385376 0.385376 0.385376 0.392365 0.392365 0.392365 0.399445 0.399445 0.399445 0.406281 0.406281 0.406281 0.413208 0.413208 0.413208 0.420074 0.420074 0.420074 0.426727 0.426727 0.426727 0.433502 0.433502 0.433502 0.440277 0.440277 0.440277 0.446838 0.446838 0.446838 0.453613 0.453613 0.453613 0.460358 0.460358 0.460358 0.466949 0.466949 0.466949 0.473785 0.473785 0.473785 0.480499 0.480499 0.480499 0.487427 0.487427 0.487427 0.270355 0.270355 0.270355 0.279724 0.279724 0.279724 0.288910 0.288910 0.288910 0.297699 0.297699 0.297699 0.306519 0.306519 0.306519 0.314972 0.314972 0.314972 0.323425 0.323425 0.323425 0.331757 0.331757 0.331757 0.339691 0.339691 0.339691 0.347656 0.347656 0.347656 0.355469 0.355469 0.355469 0.362946 0.362946 0.362946 0.370514 0.370514 0.370514 0.377899 0.377899 0.377899 0.385010 0.385010 0.385010 0.392181 0.392181 0.392181 0.399078 0.399078 0.399078 0.406097 0.406097 0.406097 0.413055 0.413055 0.413055 0.419708 0.419708 0.419708 0.426544 0.426544 0.426544 0.433319 0.433319 0.433319 0.439941 0.439941 0.439941 0.446686 0.446686 0.446686 0.453430 0.453430 0.453430 0.460022 0.460022 0.460022 0.466797 0.466797 0.466797 0.473450 0.473450 0.473450 0.480316 0.480316 0.480316 0.487244 0.487244 0.487244 0.494049 0.494049 0.494049 0.501129 0.501129 0.501129 0.288483 0.288483 0.288483 0.297485 0.297485 0.297485 0.306122 0.306122 0.306122 0.314728 0.314728 0.314728 0.323242 0.323242 0.323242 0.331329 0.331329 0.331329 0.339478 0.339478 0.339478 0.347443 0.347443 0.347443 0.355072 0.355072 0.355072 0.362762 0.362762 0.362762 0.370300 0.370300 0.370300 0.377502 0.377502 0.377502 0.384827 0.384827 0.384827 0.391846 0.391846 0.391846 0.398926 0.398926 0.398926 0.405914 0.405914 0.405914 0.412689 0.412689 0.412689 0.419556 0.419556 0.419556 0.426392 0.426392 0.426392 0.432983 0.432983 0.432983 0.439758 0.439758 0.439758 0.446503 0.446503 0.446503 0.453064 0.453064 0.453064 0.459869 0.459869 0.459869 0.466614 0.466614 0.466614 0.473297 0.473297 0.473297 0.480164 0.480164 0.480164 0.486908 0.486908 0.486908 0.493896 0.493896 0.493896 0.500946 0.500946 0.500946 0.507935 0.507935 0.507935 0.515198 0.515198 0.515198 0.305878 0.305878 0.305878 0.314545 0.314545 0.314545 0.322998 0.322998 0.322998 0.331116 0.331116 0.331116 0.339264 0.339264 0.339264 0.347046 0.347046 0.347046 0.354889 0.354889 0.354889 0.362579 0.362579 0.362579 0.369904 0.369904 0.369904 0.377350 0.377350 0.377350 0.384644 0.384644 0.384644 0.391663 0.391663 0.391663 0.398773 0.398773 0.398773 0.405762 0.405762 0.405762 0.412537 0.412537 0.412537 0.419403 0.419403 0.419403 0.426056 0.426056 0.426056 0.432831 0.432831 0.432831 0.439606 0.439606 0.439606 0.446167 0.446167 0.446167 0.452911 0.452911 0.452911 0.459656 0.459656 0.459656 0.466278 0.466278 0.466278 0.473114 0.473114 0.473114 0.479950 0.479950 0.479950 0.486694 0.486694 0.486694 0.493683 0.493683 0.493683 0.500610 0.500610 0.500610 0.507751 0.507751 0.507751 0.514984 0.514984 0.514984 0.522186 0.522186 0.522186 0.529633 0.529633 0.529633 0.322601 0.322601 0.322601 0.330902 0.330902 0.330902 0.338837 0.338837 0.338837 0.346863 0.346863 0.346863 0.354675 0.354675 0.354675 0.362183 0.362183 0.362183 0.369751 0.369751 0.369751 0.377136 0.377136 0.377136 0.384277 0.384277 0.384277 0.391449 0.391449 0.391449 0.398590 0.398590 0.398590 0.405426 0.405426 0.405426 0.412354 0.412354 0.412354 0.419037 0.419037 0.419037 0.425873 0.425873 0.425873 0.432648 0.432648 0.432648 0.439270 0.439270 0.439270 0.446014 0.446014 0.446014 0.452728 0.452728 0.452728 0.459320 0.459320 0.459320 0.466125 0.466125 0.466125 0.472931 0.472931 0.472931 0.479614 0.479614 0.479614 0.486542 0.486542 0.486542 0.493378 0.493378 0.493378 0.500427 0.500427 0.500427 0.507568 0.507568 0.507568 0.514618 0.514618 0.514618 0.521973 0.521973 0.521973 0.529449 0.529449 0.529449 0.536835 0.536835 0.536835 0.544525 0.544525 0.544525 0.338684 0.338684 0.338684 0.346649 0.346649 0.346649 0.354279 0.354279 0.354279 0.362000 0.362000 0.362000 0.369568 0.369568 0.369568 0.376770 0.376770 0.376770 0.384094 0.384094 0.384094 0.391296 0.391296 0.391296 0.398224 0.398224 0.398224 0.405243 0.405243 0.405243 0.412170 0.412170 0.412170 0.418884 0.418884 0.418884 0.425690 0.425690 0.425690 0.432312 0.432312 0.432312 0.439087 0.439087 0.439087 0.445831 0.445831 0.445831 0.452393 0.452393 0.452393 0.459167 0.459167 0.459167 0.465942 0.465942 0.465942 0.472595 0.472595 0.472595 0.479462 0.479462 0.479462 0.486359 0.486359 0.486359 0.493195 0.493195 0.493195 0.500244 0.500244 0.500244 0.507202 0.507202 0.507202 0.514465 0.514465 0.514465 0.521820 0.521820 0.521820 0.529083 0.529083 0.529083 0.536621 0.536621 0.536621 0.544342 0.544342 0.544342 0.551971 0.551971 0.551971 0.559937 0.559937 0.559937 0.354095 0.354095 0.354095 0.361816 0.361816 0.361816 0.369171 0.369171 0.369171 0.376587 0.376587 0.376587 0.383911 0.383911 0.383911 0.390961 0.390961 0.390961 0.398010 0.398010 0.398010 0.405060 0.405060 0.405060 0.411804 0.411804 0.411804 0.418732 0.418732 0.418732 0.425385 0.425385 0.425385 0.432159 0.432159 0.432159 0.438904 0.438904 0.438904 0.445496 0.445496 0.445496 0.452271 0.452271 0.452271 0.459015 0.459015 0.459015 0.465607 0.465607 0.465607 0.472412 0.472412 0.472412 0.479279 0.479279 0.479279 0.486023 0.486023 0.486023 0.493011 0.493011 0.493011 0.500061 0.500061 0.500061 0.507050 0.507050 0.507050 0.514282 0.514282 0.514282 0.521423 0.521423 0.521423 0.528870 0.528870 0.528870 0.536438 0.536438 0.536438 0.543945 0.543945 0.543945 0.551788 0.551788 0.551788 0.559753 0.559753 0.559753 0.567627 0.567627 0.567627 0.575867 0.575867 0.575867 0.368988 0.368988 0.368988 0.376434 0.376434 0.376434 0.383545 0.383545 0.383545 0.390747 0.390747 0.390747 0.397858 0.397858 0.397858 0.404724 0.404724 0.404724 0.411652 0.411652 0.411652 0.418549 0.418549 0.418549 0.425171 0.425171 0.425171 0.431976 0.431976 0.431976 0.438568 0.438568 0.438568 0.445343 0.445343 0.445343 0.452087 0.452087 0.452087 0.458649 0.458649 0.458649 0.465454 0.465454 0.465454 0.472260 0.472260 0.472260 0.478943 0.478943 0.478943 0.485870 0.485870 0.485870 0.492828 0.492828 0.492828 0.499695 0.499695 0.499695 0.506836 0.506836 0.506836 0.513885 0.513885 0.513885 0.521240 0.521240 0.521240 0.528687 0.528687 0.528687 0.536072 0.536072 0.536072 0.543762 0.543762 0.543762 0.551575 0.551575 0.551575 0.559326 0.559326 0.559326 0.567383 0.567383 0.567383 0.575653 0.575653 0.575653 0.583771 0.583771 0.583771 0.592255 0.592255 0.592255 0.383362 0.383362 0.383362 0.390594 0.390594 0.390594 0.397522 0.397522 0.397522 0.404510 0.404510 0.404510 0.411469 0.411469 0.411469 0.418182 0.418182 0.418182 0.425018 0.425018 0.425018 0.431641 0.431641 0.431641 0.438385 0.438385 0.438385 0.445160 0.445160 0.445160 0.451752 0.451752 0.451752 0.458496 0.458496 0.458496 0.465271 0.465271 0.465271 0.471893 0.471893 0.471893 0.478760 0.478760 0.478760 0.485687 0.485687 0.485687 0.492493 0.492493 0.492493 0.499512 0.499512 0.499512 0.506683 0.506683 0.506683 0.513702 0.513702 0.513702 0.521057 0.521057 0.521057 0.528320 0.528320 0.528320 0.535858 0.535858 0.535858 0.543579 0.543579 0.543579 0.551178 0.551178 0.551178 0.559113 0.559113 0.559113 0.567200 0.567200 0.567200 0.575195 0.575195 0.575195 0.583557 0.583557 0.583557 0.592041 0.592041 0.592041 0.600372 0.600372 0.600372 0.609009 0.609009 0.609009 0.397339 0.397339 0.397339 0.404358 0.404358 0.404358 0.411133 0.411133 0.411133 0.417999 0.417999 0.417999 0.424866 0.424866 0.424866 0.431488 0.431488 0.431488 0.438263 0.438263 0.438263 0.444824 0.444824 0.444824 0.451569 0.451569 0.451569 0.458313 0.458313 0.458313 0.464935 0.464935 0.464935 0.471741 0.471741 0.471741 0.478607 0.478607 0.478607 0.485321 0.485321 0.485321 0.492310 0.492310 0.492310 0.499329 0.499329 0.499329 0.506317 0.506317 0.506317 0.513519 0.513519 0.513519 0.520660 0.520660 0.520660 0.528137 0.528137 0.528137 0.535706 0.535706 0.535706 0.543182 0.543182 0.543182 0.550995 0.550995 0.550995 0.558929 0.558929 0.558929 0.566803 0.566803 0.566803 0.575012 0.575012 0.575012 0.583374 0.583374 0.583374 0.591614 0.591614 0.591614 0.600159 0.600159 0.600159 0.608582 0.608582 0.608582 0.617279 0.617279 0.617279 0.626038 0.626038 0.626038 0.410980 0.410980 0.410980 0.417847 0.417847 0.417847 0.424500 0.424500 0.424500 0.431305 0.431305 0.431305 0.437897 0.437897 0.437897 0.444641 0.444641 0.444641 0.451416 0.451416 0.451416 0.457977 0.457977 0.457977 0.464752 0.464752 0.464752 0.471588 0.471588 0.471588 0.478241 0.478241 0.478241 0.485138 0.485138 0.485138 0.492126 0.492126 0.492126 0.498993 0.498993 0.498993 0.506134 0.506134 0.506134 0.513184 0.513184 0.513184 0.520508 0.520508 0.520508 0.527954 0.527954 0.527954 0.535339 0.535339 0.535339 0.542999 0.542999 0.542999 0.550781 0.550781 0.550781 0.558563 0.558563 0.558563 0.566589 0.566589 0.566589 0.574799 0.574799 0.574799 0.582947 0.582947 0.582947 0.591400 0.591400 0.591400 0.599945 0.599945 0.599945 0.608368 0.608368 0.608368 0.617065 0.617065 0.617065 0.625580 0.625580 0.625580 0.634308 0.634308 0.634308 0.643066 0.643066 0.643066 0.424347 0.424347 0.424347 0.431122 0.431122 0.431122 0.437744 0.437744 0.437744 0.444489 0.444489 0.444489 0.451080 0.451080 0.451080 0.457825 0.457825 0.457825 0.464600 0.464600 0.464600 0.471222 0.471222 0.471222 0.478088 0.478088 0.478088 0.484985 0.484985 0.484985 0.491760 0.491760 0.491760 0.498840 0.498840 0.498840 0.505951 0.505951 0.505951 0.513000 0.513000 0.513000 0.520325 0.520325 0.520325 0.527557 0.527557 0.527557 0.535126 0.535126 0.535126 0.542786 0.542786 0.542786 0.550385 0.550385 0.550385 0.558319 0.558319 0.558319 0.566376 0.566376 0.566376 0.574402 0.574402 0.574402 0.582703 0.582703 0.582703 0.591187 0.591187 0.591187 0.599518 0.599518 0.599518 0.608154 0.608154 0.608154 0.616638 0.616638 0.616638 0.625336 0.625336 0.625336 0.634125 0.634125 0.634125 0.642670 0.642670 0.642670 0.651367 0.651367 0.651367 0.660095 0.660095 0.660095 0.437592 0.437592 0.437592 0.444153 0.444153 0.444153 0.450897 0.450897 0.450897 0.457642 0.457642 0.457642 0.464233 0.464233 0.464233 0.471069 0.471069 0.471069 0.477936 0.477936 0.477936 0.484650 0.484650 0.484650 0.491608 0.491608 0.491608 0.498627 0.498627 0.498627 0.505615 0.505615 0.505615 0.512817 0.512817 0.512817 0.519958 0.519958 0.519958 0.527374 0.527374 0.527374 0.534943 0.534943 0.534943 0.542389 0.542389 0.542389 0.550201 0.550201 0.550201 0.558136 0.558136 0.558136 0.565979 0.565979 0.565979 0.574188 0.574188 0.574188 0.582520 0.582520 0.582520 0.590759 0.590759 0.590759 0.599304 0.599304 0.599304 0.607941 0.607941 0.607941 0.616394 0.616394 0.616394 0.625153 0.625153 0.625153 0.633667 0.633667 0.633667 0.642426 0.642426 0.642426 0.651154 0.651154 0.651154 0.659637 0.659637 0.659637 0.668304 0.668304 0.668304 0.676880 0.676880 0.676880 0.450714 0.450714 0.450714 0.457306 0.457306 0.457306 0.464081 0.464081 0.464081 0.470886 0.470886 0.470886 0.477570 0.477570 0.477570 0.484467 0.484467 0.484467 0.491425 0.491425 0.491425 0.498291 0.498291 0.498291 0.505432 0.505432 0.505432 0.512634 0.512634 0.512634 0.519775 0.519775 0.519775 0.527191 0.527191 0.527191 0.534546 0.534546 0.534546 0.542206 0.542206 0.542206 0.550018 0.550018 0.550018 0.557709 0.557709 0.557709 0.565765 0.565765 0.565765 0.573975 0.573975 0.573975 0.582092 0.582092 0.582092 0.590546 0.590546 0.590546 0.599091 0.599091 0.599091 0.607513 0.607513 0.607513 0.616211 0.616211 0.616211 0.624695 0.624695 0.624695 0.633453 0.633453 0.633453 0.642181 0.642181 0.642181 0.650726 0.650726 0.650726 0.659424 0.659424 0.659424 0.668091 0.668091 0.668091 0.676483 0.676483 0.676483 0.684998 0.684998 0.684998 0.693420 0.693420 0.693420 0.463928 0.463928 0.463928 0.470551 0.470551 0.470551 0.477386 0.477386 0.477386 0.484283 0.484283 0.484283 0.491089 0.491089 0.491089 0.498077 0.498077 0.498077 0.505219 0.505219 0.505219 0.512268 0.512268 0.512268 0.519592 0.519592 0.519592 0.526825 0.526825 0.526825 0.534363 0.534363 0.534363 0.542023 0.542023 0.542023 0.549622 0.549622 0.549622 0.557526 0.557526 0.557526 0.565582 0.565582 0.565582 0.573578 0.573578 0.573578 0.581909 0.581909 0.581909 0.590332 0.590332 0.590332 0.598663 0.598663 0.598663 0.607269 0.607269 0.607269 0.615967 0.615967 0.615967 0.624481 0.624481 0.624481 0.633240 0.633240 0.633240 0.641785 0.641785 0.641785 0.650513 0.650513 0.650513 0.659210 0.659210 0.659210 0.667664 0.667664 0.667664 0.676300 0.676300 0.676300 0.684753 0.684753 0.684753 0.693024 0.693024 0.693024 0.701324 0.701324 0.701324 0.709503 0.709503 0.709503 0.477203 0.477203 0.477203 0.483948 0.483948 0.483948 0.490906 0.490906 0.490906 0.497955 0.497955 0.497955 0.504883 0.504883 0.504883 0.512085 0.512085 0.512085 0.519379 0.519379 0.519379 0.526642 0.526642 0.526642 0.534180 0.534180 0.534180 0.541656 0.541656 0.541656 0.549408 0.549408 0.549408 0.557343 0.557343 0.557343 0.565186 0.565186 0.565186 0.573364 0.573364 0.573364 0.581696 0.581696 0.581696 0.589905 0.589905 0.589905 0.598450 0.598450 0.598450 0.607056 0.607056 0.607056 0.615540 0.615540 0.615540 0.624237 0.624237 0.624237 0.632812 0.632812 0.632812 0.641541 0.641541 0.641541 0.650299 0.650299 0.650299 0.658783 0.658783 0.658783 0.667450 0.667450 0.667450 0.676025 0.676025 0.676025 0.684357 0.684357 0.684357 0.692810 0.692810 0.692810 0.701111 0.701111 0.701111 0.709076 0.709076 0.709076 0.717163 0.717163 0.717163 0.724854 0.724854 0.724854 0.490692 0.490692 0.490692 0.497589 0.497589 0.497589 0.504700 0.504700 0.504700 0.511902 0.511902 0.511902 0.519043 0.519043 0.519043 0.526428 0.526428 0.526428 0.533966 0.533966 0.533966 0.541443 0.541443 0.541443 0.549225 0.549225 0.549225 0.556946 0.556946 0.556946 0.564972 0.564972 0.564972 0.573151 0.573151 0.573151 0.581268 0.581268 0.581268 0.589691 0.589691 0.589691 0.598236 0.598236 0.598236 0.606628 0.606628 0.606628 0.615295 0.615295 0.615295 0.624023 0.624023 0.624023 0.632568 0.632568 0.632568 0.641296 0.641296 0.641296 0.649841 0.649841 0.649841 0.658569 0.658569 0.658569 0.667206 0.667206 0.667206 0.675629 0.675629 0.675629 0.684143 0.684143 0.684143 0.692566 0.692566 0.692566 0.700684 0.700684 0.700684 0.708862 0.708862 0.708862 0.716949 0.716949 0.716949 0.724670 0.724670 0.724670 0.732422 0.732422 0.732422 0.739807 0.739807 0.739807 0.504517 0.504517 0.504517 0.511536 0.511536 0.511536 0.518860 0.518860 0.518860 0.526245 0.526245 0.526245 0.533600 0.533600 0.533600 0.541260 0.541260 0.541260 0.548828 0.548828 0.548828 0.556732 0.556732 0.556732 0.564758 0.564758 0.564758 0.572754 0.572754 0.572754 0.581024 0.581024 0.581024 0.589478 0.589478 0.589478 0.597809 0.597809 0.597809 0.606445 0.606445 0.606445 0.615112 0.615112 0.615112 0.623596 0.623596 0.623596 0.632355 0.632355 0.632355 0.640869 0.640869 0.640869 0.649628 0.649628 0.649628 0.658356 0.658356 0.658356 0.666779 0.666779 0.666779 0.675385 0.675385 0.675385 0.683960 0.683960 0.683960 0.692139 0.692139 0.692139 0.700470 0.700470 0.700470 0.708679 0.708679 0.708679 0.716553 0.716553 0.716553 0.724457 0.724457 0.724457 0.732056 0.732056 0.732056 0.739624 0.739624 0.739624 0.747040 0.747040 0.747040 0.754059 0.754059 0.754059 0.518677 0.518677 0.518677 0.525879 0.525879 0.525879 0.533417 0.533417 0.533417 0.541046 0.541046 0.541046 0.548645 0.548645 0.548645 0.556519 0.556519 0.556519 0.564362 0.564362 0.564362 0.572540 0.572540 0.572540 0.580841 0.580841 0.580841 0.589081 0.589081 0.589081 0.597595 0.597595 0.597595 0.606201 0.606201 0.606201 0.614655 0.614655 0.614655 0.623383 0.623383 0.623383 0.632141 0.632141 0.632141 0.640656 0.640656 0.640656 0.649414 0.649414 0.649414 0.657898 0.657898 0.657898 0.666565 0.666565 0.666565 0.675201 0.675201 0.675201 0.683502 0.683502 0.683502 0.691956 0.691956 0.691956 0.700287 0.700287 0.700287 0.708282 0.708282 0.708282 0.716339 0.716339 0.716339 0.724304 0.724304 0.724304 0.731842 0.731842 0.731842 0.739471 0.739471 0.739471 0.746674 0.746674 0.746674 0.753906 0.753906 0.753906 0.760895 0.760895 0.760895 0.767548 0.767548 0.767548 0.063049 0.063049 0.063049 0.067139 0.067139 0.067139 0.071442 0.071442 0.071442 0.075836 0.075836 0.075836 0.080505 0.080505 0.080505 0.085480 0.085480 0.085480 0.090515 0.090515 0.090515 0.095978 0.095978 0.095978 0.101501 0.101501 0.101501 0.107544 0.107544 0.107544 0.113892 0.113892 0.113892 0.120422 0.120422 0.120422 0.127502 0.127502 0.127502 0.134949 0.134949 0.134949 0.142639 0.142639 0.142639 0.151001 0.151001 0.151001 0.159882 0.159882 0.159882 0.169006 0.169006 0.169006 0.178772 0.178772 0.178772 0.188812 0.188812 0.188812 0.198914 0.198914 0.198914 0.209290 0.209290 0.209290 0.219452 0.219452 0.219452 0.229736 0.229736 0.229736 0.239868 0.239868 0.239868 0.249542 0.249542 0.249542 0.259338 0.259338 0.259338 0.268921 0.268921 0.268921 0.278107 0.278107 0.278107 0.287323 0.287323 0.287323 0.296112 0.296112 0.296112 0.304993 0.304993 0.304993 0.071228 0.071228 0.071228 0.075684 0.075684 0.075684 0.080414 0.080414 0.080414 0.085205 0.085205 0.085205 0.090393 0.090393 0.090393 0.095795 0.095795 0.095795 0.101379 0.101379 0.101379 0.107391 0.107391 0.107391 0.113586 0.113586 0.113586 0.120239 0.120239 0.120239 0.127289 0.127289 0.127289 0.134583 0.134583 0.134583 0.142426 0.142426 0.142426 0.150787 0.150787 0.150787 0.159454 0.159454 0.159454 0.168762 0.168762 0.168762 0.178528 0.178528 0.178528 0.188324 0.188324 0.188324 0.198639 0.198639 0.198639 0.208771 0.208771 0.208771 0.219177 0.219177 0.219177 0.229462 0.229462 0.229462 0.239349 0.239349 0.239349 0.249329 0.249329 0.249329 0.259094 0.259094 0.259094 0.268463 0.268463 0.268463 0.277863 0.277863 0.277863 0.287109 0.287109 0.287109 0.295898 0.295898 0.295898 0.304810 0.304810 0.304810 0.313263 0.313263 0.313263 0.321747 0.321747 0.321747 0.080170 0.080170 0.080170 0.085083 0.085083 0.085083 0.090271 0.090271 0.090271 0.095520 0.095520 0.095520 0.101227 0.101227 0.101227 0.107117 0.107117 0.107117 0.113403 0.113403 0.113403 0.120056 0.120056 0.120056 0.126923 0.126923 0.126923 0.134369 0.134369 0.134369 0.142242 0.142242 0.142242 0.150360 0.150360 0.150360 0.159180 0.159180 0.159180 0.168518 0.168518 0.168518 0.178009 0.178009 0.178009 0.188080 0.188080 0.188080 0.198364 0.198364 0.198364 0.208527 0.208527 0.208527 0.218933 0.218933 0.218933 0.228973 0.228973 0.228973 0.239136 0.239136 0.239136 0.249084 0.249084 0.249084 0.258606 0.258606 0.258606 0.268219 0.268219 0.268219 0.277618 0.277618 0.277618 0.286652 0.286652 0.286652 0.295715 0.295715 0.295715 0.304565 0.304565 0.304565 0.313049 0.313049 0.313049 0.321564 0.321564 0.321564 0.329712 0.329712 0.329712 0.337860 0.337860 0.337860 0.089996 0.089996 0.089996 0.095367 0.095367 0.095367 0.101105 0.101105 0.101105 0.106964 0.106964 0.106964 0.113251 0.113251 0.113251 0.119720 0.119720 0.119720 0.126740 0.126740 0.126740 0.134186 0.134186 0.134186 0.141846 0.141846 0.141846 0.150146 0.150146 0.150146 0.158966 0.158966 0.158966 0.168060 0.168060 0.168060 0.177734 0.177734 0.177734 0.187805 0.187805 0.187805 0.197845 0.197845 0.197845 0.208252 0.208252 0.208252 0.218414 0.218414 0.218414 0.228699 0.228699 0.228699 0.238892 0.238892 0.238892 0.248596 0.248596 0.248596 0.258362 0.258362 0.258362 0.267975 0.267975 0.267975 0.277161 0.277161 0.277161 0.286407 0.286407 0.286407 0.295471 0.295471 0.295471 0.304138 0.304138 0.304138 0.312836 0.312836 0.312836 0.321167 0.321167 0.321167 0.329468 0.329468 0.329468 0.337677 0.337677 0.337677 0.345459 0.345459 0.345459 0.353363 0.353363 0.353363 0.100800 0.100800 0.100800 0.106812 0.106812 0.106812 0.112946 0.112946 0.112946 0.119568 0.119568 0.119568 0.126587 0.126587 0.126587 0.133789 0.133789 0.133789 0.141632 0.141632 0.141632 0.149963 0.149963 0.149963 0.158508 0.158508 0.158508 0.167816 0.167816 0.167816 0.177490 0.177490 0.177490 0.187317 0.187317 0.187317 0.197601 0.197601 0.197601 0.207733 0.207733 0.207733 0.218140 0.218140 0.218140 0.228455 0.228455 0.228455 0.238373 0.238373 0.238373 0.248352 0.248352 0.248352 0.258118 0.258118 0.258118 0.267517 0.267517 0.267517 0.276917 0.276917 0.276917 0.286194 0.286194 0.286194 0.295013 0.295013 0.295013 0.303925 0.303925 0.303925 0.312622 0.312622 0.312622 0.320923 0.320923 0.320923 0.329285 0.329285 0.329285 0.337250 0.337250 0.337250 0.345306 0.345306 0.345306 0.353149 0.353149 0.353149 0.360657 0.360657 0.360657 0.368225 0.368225 0.368225 0.112762 0.112762 0.112762 0.119415 0.119415 0.119415 0.126221 0.126221 0.126221 0.133606 0.133606 0.133606 0.141449 0.141449 0.141449 0.149506 0.149506 0.149506 0.158264 0.158264 0.158264 0.167572 0.167572 0.167572 0.177032 0.177032 0.177032 0.187073 0.187073 0.187073 0.197357 0.197357 0.197357 0.207458 0.207458 0.207458 0.217896 0.217896 0.217896 0.227966 0.227966 0.227966 0.238098 0.238098 0.238098 0.248108 0.248108 0.248108 0.257629 0.257629 0.257629 0.267273 0.267273 0.267273 0.276703 0.276703 0.276703 0.285736 0.285736 0.285736 0.294830 0.294830 0.294830 0.303680 0.303680 0.303680 0.312195 0.312195 0.312195 0.320709 0.320709 0.320709 0.328827 0.328827 0.328827 0.337036 0.337036 0.337036 0.345062 0.345062 0.345062 0.352722 0.352722 0.352722 0.360474 0.360474 0.360474 0.368042 0.368042 0.368042 0.375336 0.375336 0.375336 0.382660 0.382660 0.382660 0.126068 0.126068 0.126068 0.133423 0.133423 0.133423 0.141052 0.141052 0.141052 0.149323 0.149323 0.149323 0.158081 0.158081 0.158081 0.167114 0.167114 0.167114 0.176788 0.176788 0.176788 0.186829 0.186829 0.186829 0.196808 0.196808 0.196808 0.207214 0.207214 0.207214 0.217346 0.217346 0.217346 0.227692 0.227692 0.227692 0.237854 0.237854 0.237854 0.247589 0.247589 0.247589 0.257385 0.257385 0.257385 0.267059 0.267059 0.267059 0.276245 0.276245 0.276245 0.285492 0.285492 0.285492 0.294586 0.294586 0.294586 0.303253 0.303253 0.303253 0.311981 0.311981 0.311981 0.320496 0.320496 0.320496 0.328674 0.328674 0.328674 0.336853 0.336853 0.336853 0.344666 0.344666 0.344666 0.352539 0.352539 0.352539 0.360260 0.360260 0.360260 0.367676 0.367676 0.367676 0.375122 0.375122 0.375122 0.382446 0.382446 0.382446 0.389526 0.389526 0.389526 0.396637 0.396637 0.396637 0.140839 0.140839 0.140839 0.149078 0.149078 0.149078 0.157623 0.157623 0.157623 0.166840 0.166840 0.166840 0.176544 0.176544 0.176544 0.186310 0.186310 0.186310 0.196564 0.196564 0.196564 0.206940 0.206940 0.206940 0.217102 0.217102 0.217102 0.227448 0.227448 0.227448 0.237335 0.237335 0.237335 0.247314 0.247314 0.247314 0.257172 0.257172 0.257172 0.266541 0.266541 0.266541 0.276001 0.276001 0.276001 0.285248 0.285248 0.285248 0.294128 0.294128 0.294128 0.303009 0.303009 0.303009 0.311737 0.311737 0.311737 0.320099 0.320099 0.320099 0.328461 0.328461 0.328461 0.336426 0.336426 0.336426 0.344482 0.344482 0.344482 0.352325 0.352325 0.352325 0.359894 0.359894 0.359894 0.367462 0.367462 0.367462 0.374969 0.374969 0.374969 0.382080 0.382080 0.382080 0.389313 0.389313 0.389313 0.396454 0.396454 0.396454 0.403320 0.403320 0.403320 0.410278 0.410278 0.410278 0.157410 0.157410 0.157410 0.166595 0.166595 0.166595 0.176056 0.176056 0.176056 0.186035 0.186035 0.186035 0.196289 0.196289 0.196289 0.206421 0.206421 0.206421 0.216827 0.216827 0.216827 0.226929 0.226929 0.226929 0.237091 0.237091 0.237091 0.247070 0.247070 0.247070 0.256653 0.256653 0.256653 0.266296 0.266296 0.266296 0.275757 0.275757 0.275757 0.284821 0.284821 0.284821 0.293915 0.293915 0.293915 0.302795 0.302795 0.302795 0.311310 0.311310 0.311310 0.319855 0.319855 0.319855 0.328247 0.328247 0.328247 0.336243 0.336243 0.336243 0.344269 0.344269 0.344269 0.351959 0.351959 0.351959 0.359711 0.359711 0.359711 0.367310 0.367310 0.367310 0.374573 0.374573 0.374573 0.381927 0.381927 0.381927 0.389160 0.389160 0.389160 0.396088 0.396088 0.396088 0.403168 0.403168 0.403168 0.410095 0.410095 0.410095 0.416840 0.416840 0.416840 0.423676 0.423676 0.423676 0.175781 0.175781 0.175781 0.185791 0.185791 0.185791 0.195801 0.195801 0.195801 0.206177 0.206177 0.206177 0.216583 0.216583 0.216583 0.226685 0.226685 0.226685 0.236847 0.236847 0.236847 0.246582 0.246582 0.246582 0.256409 0.256409 0.256409 0.266052 0.266052 0.266052 0.275299 0.275299 0.275299 0.284576 0.284576 0.284576 0.293671 0.293671 0.293671 0.302368 0.302368 0.302368 0.311066 0.311066 0.311066 0.319641 0.319641 0.319641 0.327789 0.327789 0.327789 0.336029 0.336029 0.336029 0.343872 0.343872 0.343872 0.351776 0.351776 0.351776 0.359497 0.359497 0.359497 0.366943 0.366943 0.366943 0.374390 0.374390 0.374390 0.381744 0.381744 0.381744 0.388794 0.388794 0.388794 0.395935 0.395935 0.395935 0.402954 0.402954 0.402954 0.409760 0.409760 0.409760 0.416656 0.416656 0.416656 0.423340 0.423340 0.423340 0.430115 0.430115 0.430115 0.436890 0.436890 0.436890 0.195526 0.195526 0.195526 0.205902 0.205902 0.205902 0.216064 0.216064 0.216064 0.226410 0.226410 0.226410 0.236328 0.236328 0.236328 0.246338 0.246338 0.246338 0.256165 0.256165 0.256165 0.265594 0.265594 0.265594 0.275085 0.275085 0.275085 0.284332 0.284332 0.284332 0.293213 0.293213 0.293213 0.302155 0.302155 0.302155 0.310913 0.310913 0.310913 0.319214 0.319214 0.319214 0.327637 0.327637 0.327637 0.335632 0.335632 0.335632 0.343689 0.343689 0.343689 0.351562 0.351562 0.351562 0.359131 0.359131 0.359131 0.366730 0.366730 0.366730 0.374207 0.374207 0.374207 0.381378 0.381378 0.381378 0.388611 0.388611 0.388611 0.395752 0.395752 0.395752 0.402618 0.402618 0.402618 0.409576 0.409576 0.409576 0.416473 0.416473 0.416473 0.423126 0.423126 0.423126 0.429932 0.429932 0.429932 0.436554 0.436554 0.436554 0.443298 0.443298 0.443298 0.450073 0.450073 0.450073 0.215790 0.215790 0.215790 0.226166 0.226166 0.226166 0.236053 0.236053 0.236053 0.246094 0.246094 0.246094 0.255707 0.255707 0.255707 0.265350 0.265350 0.265350 0.274841 0.274841 0.274841 0.283905 0.283905 0.283905 0.292999 0.292999 0.292999 0.301941 0.301941 0.301941 0.310455 0.310455 0.310455 0.319000 0.319000 0.319000 0.327393 0.327393 0.327393 0.335419 0.335419 0.335419 0.343506 0.343506 0.343506 0.351166 0.351166 0.351166 0.358948 0.358948 0.358948 0.366547 0.366547 0.366547 0.373840 0.373840 0.373840 0.381195 0.381195 0.381195 0.388428 0.388428 0.388428 0.395416 0.395416 0.395416 0.402435 0.402435 0.402435 0.409424 0.409424 0.409424 0.416138 0.416138 0.416138 0.422974 0.422974 0.422974 0.429596 0.429596 0.429596 0.436371 0.436371 0.436371 0.443146 0.443146 0.443146 0.449707 0.449707 0.449707 0.456451 0.456451 0.456451 0.463226 0.463226 0.463226 0.235840 0.235840 0.235840 0.245880 0.245880 0.245880 0.255463 0.255463 0.255463 0.265106 0.265106 0.265106 0.274323 0.274323 0.274323 0.283661 0.283661 0.283661 0.292786 0.292786 0.292786 0.301483 0.301483 0.301483 0.310242 0.310242 0.310242 0.318817 0.318817 0.318817 0.326996 0.326996 0.326996 0.335205 0.335205 0.335205 0.343262 0.343262 0.343262 0.350983 0.350983 0.350983 0.358734 0.358734 0.358734 0.366180 0.366180 0.366180 0.373657 0.373657 0.373657 0.381012 0.381012 0.381012 0.388062 0.388062 0.388062 0.395203 0.395203 0.395203 0.402252 0.402252 0.402252 0.409058 0.409058 0.409058 0.415955 0.415955 0.415955 0.422791 0.422791 0.422791 0.429443 0.429443 0.429443 0.436218 0.436218 0.436218 0.442780 0.442780 0.442780 0.449554 0.449554 0.449554 0.456299 0.456299 0.456299 0.462921 0.462921 0.462921 0.469696 0.469696 0.469696 0.476532 0.476532 0.476532 0.255219 0.255219 0.255219 0.264618 0.264618 0.264618 0.274109 0.274109 0.274109 0.283417 0.283417 0.283417 0.292328 0.292328 0.292328 0.301270 0.301270 0.301270 0.310028 0.310028 0.310028 0.318390 0.318390 0.318390 0.326782 0.326782 0.326782 0.335022 0.335022 0.335022 0.342865 0.342865 0.342865 0.350800 0.350800 0.350800 0.358368 0.358368 0.358368 0.365967 0.365967 0.365967 0.373474 0.373474 0.373474 0.380615 0.380615 0.380615 0.387878 0.387878 0.387878 0.395020 0.395020 0.395020 0.401917 0.401917 0.401917 0.408905 0.408905 0.408905 0.415802 0.415802 0.415802 0.422455 0.422455 0.422455 0.429260 0.429260 0.429260 0.435883 0.435883 0.435883 0.442627 0.442627 0.442627 0.449371 0.449371 0.449371 0.455963 0.455963 0.455963 0.462708 0.462708 0.462708 0.469543 0.469543 0.469543 0.476196 0.476196 0.476196 0.483063 0.483063 0.483063 0.490051 0.490051 0.490051 0.273895 0.273895 0.273895 0.282990 0.282990 0.282990 0.292114 0.292114 0.292114 0.301056 0.301056 0.301056 0.309601 0.309601 0.309601 0.318176 0.318176 0.318176 0.326599 0.326599 0.326599 0.334625 0.334625 0.334625 0.342682 0.342682 0.342682 0.350616 0.350616 0.350616 0.358154 0.358154 0.358154 0.365784 0.365784 0.365784 0.373077 0.373077 0.373077 0.380463 0.380463 0.380463 0.387695 0.387695 0.387695 0.394684 0.394684 0.394684 0.401764 0.401764 0.401764 0.408722 0.408722 0.408722 0.415436 0.415436 0.415436 0.422272 0.422272 0.422272 0.429108 0.429108 0.429108 0.435699 0.435699 0.435699 0.442444 0.442444 0.442444 0.449036 0.449036 0.449036 0.455780 0.455780 0.455780 0.462555 0.462555 0.462555 0.469177 0.469177 0.469177 0.476013 0.476013 0.476013 0.482910 0.482910 0.482910 0.489685 0.489685 0.489685 0.496704 0.496704 0.496704 0.503784 0.503784 0.503784 0.291870 0.291870 0.291870 0.300598 0.300598 0.300598 0.309357 0.309357 0.309357 0.317932 0.317932 0.317932 0.326172 0.326172 0.326172 0.334412 0.334412 0.334412 0.342468 0.342468 0.342468 0.350189 0.350189 0.350189 0.357971 0.357971 0.357971 0.365417 0.365417 0.365417 0.372894 0.372894 0.372894 0.380280 0.380280 0.380280 0.387360 0.387360 0.387360 0.394501 0.394501 0.394501 0.401550 0.401550 0.401550 0.408386 0.408386 0.408386 0.415283 0.415283 0.415283 0.422119 0.422119 0.422119 0.428772 0.428772 0.428772 0.435516 0.435516 0.435516 0.442108 0.442108 0.442108 0.448883 0.448883 0.448883 0.455627 0.455627 0.455627 0.462219 0.462219 0.462219 0.469025 0.469025 0.469025 0.475861 0.475861 0.475861 0.482544 0.482544 0.482544 0.489502 0.489502 0.489502 0.496521 0.496521 0.496521 0.503418 0.503418 0.503418 0.510651 0.510651 0.510651 0.517731 0.517731 0.517731 0.309143 0.309143 0.309143 0.317535 0.317535 0.317535 0.325958 0.325958 0.325958 0.334167 0.334167 0.334167 0.342072 0.342072 0.342072 0.349976 0.349976 0.349976 0.357788 0.357788 0.357788 0.365204 0.365204 0.365204 0.372711 0.372711 0.372711 0.379883 0.379883 0.379883 0.387177 0.387177 0.387177 0.394318 0.394318 0.394318 0.401215 0.401215 0.401215 0.408203 0.408203 0.408203 0.415100 0.415100 0.415100 0.421753 0.421753 0.421753 0.428589 0.428589 0.428589 0.435364 0.435364 0.435364 0.441956 0.441956 0.441956 0.448700 0.448700 0.448700 0.455444 0.455444 0.455444 0.462036 0.462036 0.462036 0.468842 0.468842 0.468842 0.475494 0.475494 0.475494 0.482391 0.482391 0.482391 0.489349 0.489349 0.489349 0.496155 0.496155 0.496155 0.503265 0.503265 0.503265 0.510437 0.510437 0.510437 0.517548 0.517548 0.517548 0.524963 0.524963 0.524963 0.532471 0.532471 0.532471 0.325745 0.325745 0.325745 0.333801 0.333801 0.333801 0.341858 0.341858 0.341858 0.349823 0.349823 0.349823 0.357391 0.357391 0.357391 0.365051 0.365051 0.365051 0.372528 0.372528 0.372528 0.379700 0.379700 0.379700 0.386993 0.386993 0.386993 0.393982 0.393982 0.393982 0.401031 0.401031 0.401031 0.408020 0.408020 0.408020 0.414764 0.414764 0.414764 0.421631 0.421631 0.421631 0.428406 0.428406 0.428406 0.435028 0.435028 0.435028 0.441772 0.441772 0.441772 0.448517 0.448517 0.448517 0.455109 0.455109 0.455109 0.461884 0.461884 0.461884 0.468506 0.468506 0.468506 0.475342 0.475342 0.475342 0.482208 0.482208 0.482208 0.488983 0.488983 0.488983 0.496002 0.496002 0.496002 0.503082 0.503082 0.503082 0.510101 0.510101 0.510101 0.517395 0.517395 0.517395 0.524780 0.524780 0.524780 0.532104 0.532104 0.532104 0.539734 0.539734 0.539734 0.547272 0.547272 0.547272 0.341675 0.341675 0.341675 0.349396 0.349396 0.349396 0.357208 0.357208 0.357208 0.364838 0.364838 0.364838 0.372192 0.372192 0.372192 0.379547 0.379547 0.379547 0.386810 0.386810 0.386810 0.393768 0.393768 0.393768 0.400848 0.400848 0.400848 0.407684 0.407684 0.407684 0.414612 0.414612 0.414612 0.421448 0.421448 0.421448 0.428101 0.428101 0.428101 0.434875 0.434875 0.434875 0.441620 0.441620 0.441620 0.448212 0.448212 0.448212 0.454956 0.454956 0.454956 0.461700 0.461700 0.461700 0.468323 0.468323 0.468323 0.475159 0.475159 0.475159 0.481873 0.481873 0.481873 0.488831 0.488831 0.488831 0.495819 0.495819 0.495819 0.502747 0.502747 0.502747 0.509888 0.509888 0.509888 0.517212 0.517212 0.517212 0.524414 0.524414 0.524414 0.531891 0.531891 0.531891 0.539520 0.539520 0.539520 0.547058 0.547058 0.547058 0.554932 0.554932 0.554932 0.562775 0.562775 0.562775 0.356995 0.356995 0.356995 0.364471 0.364471 0.364471 0.371979 0.371979 0.371979 0.379333 0.379333 0.379333 0.386444 0.386444 0.386444 0.393616 0.393616 0.393616 0.400482 0.400482 0.400482 0.407501 0.407501 0.407501 0.414429 0.414429 0.414429 0.421112 0.421112 0.421112 0.427887 0.427887 0.427887 0.434692 0.434692 0.434692 0.441284 0.441284 0.441284 0.448029 0.448029 0.448029 0.454773 0.454773 0.454773 0.461365 0.461365 0.461365 0.468140 0.468140 0.468140 0.474823 0.474823 0.474823 0.481689 0.481689 0.481689 0.488617 0.488617 0.488617 0.495483 0.495483 0.495483 0.502533 0.502533 0.502533 0.509735 0.509735 0.509735 0.516815 0.516815 0.516815 0.524200 0.524200 0.524200 0.531708 0.531708 0.531708 0.539093 0.539093 0.539093 0.546875 0.546875 0.546875 0.554535 0.554535 0.554535 0.562561 0.562561 0.562561 0.570679 0.570679 0.570679 0.578766 0.578766 0.578766 0.371796 0.371796 0.371796 0.378967 0.378967 0.378967 0.386261 0.386261 0.386261 0.393463 0.393463 0.393463 0.400360 0.400360 0.400360 0.407318 0.407318 0.407318 0.414062 0.414062 0.414062 0.420929 0.420929 0.420929 0.427734 0.427734 0.427734 0.434357 0.434357 0.434357 0.441101 0.441101 0.441101 0.447845 0.447845 0.447845 0.454437 0.454437 0.454437 0.461212 0.461212 0.461212 0.467987 0.467987 0.467987 0.474640 0.474640 0.474640 0.481506 0.481506 0.481506 0.488281 0.488281 0.488281 0.495270 0.495270 0.495270 0.502380 0.502380 0.502380 0.509369 0.509369 0.509369 0.516663 0.516663 0.516663 0.524017 0.524017 0.524017 0.531342 0.531342 0.531342 0.538940 0.538940 0.538940 0.546661 0.546661 0.546661 0.554352 0.554352 0.554352 0.562347 0.562347 0.562347 0.570282 0.570282 0.570282 0.578552 0.578552 0.578552 0.586945 0.586945 0.586945 0.595215 0.595215 0.595215 0.386078 0.386078 0.386078 0.393097 0.393097 0.393097 0.400146 0.400146 0.400146 0.406982 0.406982 0.406982 0.413879 0.413879 0.413879 0.420776 0.420776 0.420776 0.427399 0.427399 0.427399 0.434204 0.434204 0.434204 0.440948 0.440948 0.440948 0.447510 0.447510 0.447510 0.454254 0.454254 0.454254 0.461029 0.461029 0.461029 0.467651 0.467651 0.467651 0.474457 0.474457 0.474457 0.481201 0.481201 0.481201 0.488098 0.488098 0.488098 0.495087 0.495087 0.495087 0.502014 0.502014 0.502014 0.509186 0.509186 0.509186 0.516449 0.516449 0.516449 0.523651 0.523651 0.523651 0.531158 0.531158 0.531158 0.538727 0.538727 0.538727 0.546295 0.546295 0.546295 0.554169 0.554169 0.554169 0.561951 0.561951 0.561951 0.570068 0.570068 0.570068 0.578308 0.578308 0.578308 0.586517 0.586517 0.586517 0.595032 0.595032 0.595032 0.603607 0.603607 0.603607 0.612061 0.612061 0.612061 0.399963 0.399963 0.399963 0.406799 0.406799 0.406799 0.413727 0.413727 0.413727 0.420410 0.420410 0.420410 0.427246 0.427246 0.427246 0.433990 0.433990 0.433990 0.440582 0.440582 0.440582 0.447357 0.447357 0.447357 0.454102 0.454102 0.454102 0.460693 0.460693 0.460693 0.467468 0.467468 0.467468 0.474304 0.474304 0.474304 0.481018 0.481018 0.481018 0.487915 0.487915 0.487915 0.494781 0.494781 0.494781 0.501862 0.501862 0.501862 0.509003 0.509003 0.509003 0.516113 0.516113 0.516113 0.523468 0.523468 0.523468 0.530945 0.530945 0.530945 0.538361 0.538361 0.538361 0.546112 0.546112 0.546112 0.553955 0.553955 0.553955 0.561737 0.561737 0.561737 0.569885 0.569885 0.569885 0.577911 0.577911 0.577911 0.586304 0.586304 0.586304 0.594818 0.594818 0.594818 0.603180 0.603180 0.603180 0.611847 0.611847 0.611847 0.620544 0.620544 0.620544 0.629059 0.629059 0.629059 0.413361 0.413361 0.413361 0.420227 0.420227 0.420227 0.427063 0.427063 0.427063 0.433685 0.433685 0.433685 0.440430 0.440430 0.440430 0.447205 0.447205 0.447205 0.453766 0.453766 0.453766 0.460541 0.460541 0.460541 0.467316 0.467316 0.467316 0.473938 0.473938 0.473938 0.480835 0.480835 0.480835 0.487579 0.487579 0.487579 0.494568 0.494568 0.494568 0.501678 0.501678 0.501678 0.508636 0.508636 0.508636 0.515900 0.515900 0.515900 0.523285 0.523285 0.523285 0.530579 0.530579 0.530579 0.538177 0.538177 0.538177 0.545898 0.545898 0.545898 0.553558 0.553558 0.553558 0.561554 0.561554 0.561554 0.569672 0.569672 0.569672 0.577698 0.577698 0.577698 0.586090 0.586090 0.586090 0.594391 0.594391 0.594391 0.602966 0.602966 0.602966 0.611603 0.611603 0.611603 0.620117 0.620117 0.620117 0.628845 0.628845 0.628845 0.637604 0.637604 0.637604 0.646149 0.646149 0.646149 0.426727 0.426727 0.426727 0.433502 0.433502 0.433502 0.440277 0.440277 0.440277 0.446838 0.446838 0.446838 0.453613 0.453613 0.453613 0.460358 0.460358 0.460358 0.466949 0.466949 0.466949 0.473785 0.473785 0.473785 0.480682 0.480682 0.480682 0.487427 0.487427 0.487427 0.494415 0.494415 0.494415 0.501312 0.501312 0.501312 0.508453 0.508453 0.508453 0.515747 0.515747 0.515747 0.522888 0.522888 0.522888 0.530396 0.530396 0.530396 0.537964 0.537964 0.537964 0.545502 0.545502 0.545502 0.553375 0.553375 0.553375 0.561340 0.561340 0.561340 0.569244 0.569244 0.569244 0.577515 0.577515 0.577515 0.585663 0.585663 0.585663 0.594147 0.594147 0.594147 0.602722 0.602722 0.602722 0.611176 0.611176 0.611176 0.619873 0.619873 0.619873 0.628632 0.628632 0.628632 0.637146 0.637146 0.637146 0.645905 0.645905 0.645905 0.654633 0.654633 0.654633 0.663116 0.663116 0.663116 0.439941 0.439941 0.439941 0.446686 0.446686 0.446686 0.453430 0.453430 0.453430 0.460022 0.460022 0.460022 0.466797 0.466797 0.466797 0.473633 0.473633 0.473633 0.480316 0.480316 0.480316 0.487244 0.487244 0.487244 0.494049 0.494049 0.494049 0.501129 0.501129 0.501129 0.508301 0.508301 0.508301 0.515381 0.515381 0.515381 0.522736 0.522736 0.522736 0.530212 0.530212 0.530212 0.537598 0.537598 0.537598 0.545319 0.545319 0.545319 0.553162 0.553162 0.553162 0.560944 0.560944 0.560944 0.569061 0.569061 0.569061 0.577301 0.577301 0.577301 0.585449 0.585449 0.585449 0.593964 0.593964 0.593964 0.602325 0.602325 0.602325 0.610992 0.610992 0.610992 0.619690 0.619690 0.619690 0.628174 0.628174 0.628174 0.636963 0.636963 0.636963 0.645691 0.645691 0.645691 0.654236 0.654236 0.654236 0.662933 0.662933 0.662933 0.671539 0.671539 0.671539 0.679901 0.679901 0.679901 0.453064 0.453064 0.453064 0.459869 0.459869 0.459869 0.466614 0.466614 0.466614 0.473297 0.473297 0.473297 0.480164 0.480164 0.480164 0.487061 0.487061 0.487061 0.493896 0.493896 0.493896 0.500946 0.500946 0.500946 0.507935 0.507935 0.507935 0.515198 0.515198 0.515198 0.522552 0.522552 0.522552 0.529816 0.529816 0.529816 0.537415 0.537415 0.537415 0.545135 0.545135 0.545135 0.552734 0.552734 0.552734 0.560760 0.560760 0.560760 0.568817 0.568817 0.568817 0.576874 0.576874 0.576874 0.585266 0.585266 0.585266 0.593536 0.593536 0.593536 0.602081 0.602081 0.602081 0.610748 0.610748 0.610748 0.619232 0.619232 0.619232 0.627960 0.627960 0.627960 0.636719 0.636719 0.636719 0.645264 0.645264 0.645264 0.653992 0.653992 0.653992 0.662689 0.662689 0.662689 0.671112 0.671112 0.671112 0.679657 0.679657 0.679657 0.687958 0.687958 0.687958 0.696350 0.696350 0.696350 0.466278 0.466278 0.466278 0.473114 0.473114 0.473114 0.479950 0.479950 0.479950 0.486694 0.486694 0.486694 0.493683 0.493683 0.493683 0.500610 0.500610 0.500610 0.507751 0.507751 0.507751 0.514984 0.514984 0.514984 0.522186 0.522186 0.522186 0.529633 0.529633 0.529633 0.537201 0.537201 0.537201 0.544739 0.544739 0.544739 0.552582 0.552582 0.552582 0.560516 0.560516 0.560516 0.568451 0.568451 0.568451 0.576691 0.576691 0.576691 0.585052 0.585052 0.585052 0.593323 0.593323 0.593323 0.601898 0.601898 0.601898 0.610321 0.610321 0.610321 0.619049 0.619049 0.619049 0.627747 0.627747 0.627747 0.636322 0.636322 0.636322 0.645050 0.645050 0.645050 0.653778 0.653778 0.653778 0.662262 0.662262 0.662262 0.670898 0.670898 0.670898 0.679474 0.679474 0.679474 0.687714 0.687714 0.687714 0.696167 0.696167 0.696167 0.704193 0.704193 0.704193 0.712341 0.712341 0.712341 0.479614 0.479614 0.479614 0.486542 0.486542 0.486542 0.493530 0.493530 0.493530 0.500427 0.500427 0.500427 0.507568 0.507568 0.507568 0.514618 0.514618 0.514618 0.521973 0.521973 0.521973 0.529449 0.529449 0.529449 0.536835 0.536835 0.536835 0.544525 0.544525 0.544525 0.552368 0.552368 0.552368 0.560120 0.560120 0.560120 0.568237 0.568237 0.568237 0.576477 0.576477 0.576477 0.584656 0.584656 0.584656 0.593079 0.593079 0.593079 0.601440 0.601440 0.601440 0.610107 0.610107 0.610107 0.618805 0.618805 0.618805 0.627319 0.627319 0.627319 0.636078 0.636078 0.636078 0.644836 0.644836 0.644836 0.653320 0.653320 0.653320 0.662018 0.662018 0.662018 0.670685 0.670685 0.670685 0.679047 0.679047 0.679047 0.687531 0.687531 0.687531 0.695709 0.695709 0.695709 0.703979 0.703979 0.703979 0.712128 0.712128 0.712128 0.719940 0.719940 0.719940 0.727783 0.727783 0.727783 0.493195 0.493195 0.493195 0.500244 0.500244 0.500244 0.507202 0.507202 0.507202 0.514465 0.514465 0.514465 0.521820 0.521820 0.521820 0.529083 0.529083 0.529083 0.536621 0.536621 0.536621 0.544342 0.544342 0.544342 0.551971 0.551971 0.551971 0.559937 0.559937 0.559937 0.568024 0.568024 0.568024 0.576080 0.576080 0.576080 0.584412 0.584412 0.584412 0.592682 0.592682 0.592682 0.601257 0.601257 0.601257 0.609894 0.609894 0.609894 0.618378 0.618378 0.618378 0.627106 0.627106 0.627106 0.635864 0.635864 0.635864 0.644379 0.644379 0.644379 0.653137 0.653137 0.653137 0.661804 0.661804 0.661804 0.670227 0.670227 0.670227 0.678833 0.678833 0.678833 0.687317 0.687317 0.687317 0.695496 0.695496 0.695496 0.703796 0.703796 0.703796 0.711731 0.711731 0.711731 0.719788 0.719788 0.719788 0.727600 0.727600 0.727600 0.735107 0.735107 0.735107 0.742615 0.742615 0.742615 0.507050 0.507050 0.507050 0.514282 0.514282 0.514282 0.521423 0.521423 0.521423 0.528870 0.528870 0.528870 0.536438 0.536438 0.536438 0.543945 0.543945 0.543945 0.551788 0.551788 0.551788 0.559753 0.559753 0.559753 0.567627 0.567627 0.567627 0.575867 0.575867 0.575867 0.584198 0.584198 0.584198 0.592438 0.592438 0.592438 0.601013 0.601013 0.601013 0.609467 0.609467 0.609467 0.618134 0.618134 0.618134 0.626862 0.626862 0.626862 0.635406 0.635406 0.635406 0.644196 0.644196 0.644196 0.652924 0.652924 0.652924 0.661377 0.661377 0.661377 0.670044 0.670044 0.670044 0.678650 0.678650 0.678650 0.686920 0.686920 0.686920 0.695282 0.695282 0.695282 0.703400 0.703400 0.703400 0.711548 0.711548 0.711548 0.719543 0.719543 0.719543 0.727203 0.727203 0.727203 0.734924 0.734924 0.734924 0.742462 0.742462 0.742462 0.749603 0.749603 0.749603 0.756714 0.756714 0.756714 0.521240 0.521240 0.521240 0.528687 0.528687 0.528687 0.536072 0.536072 0.536072 0.543762 0.543762 0.543762 0.551575 0.551575 0.551575 0.559326 0.559326 0.559326 0.567383 0.567383 0.567383 0.575653 0.575653 0.575653 0.583771 0.583771 0.583771 0.592255 0.592255 0.592255 0.600616 0.600616 0.600616 0.609253 0.609253 0.609253 0.617950 0.617950 0.617950 0.626465 0.626465 0.626465 0.635193 0.635193 0.635193 0.643982 0.643982 0.643982 0.652466 0.652466 0.652466 0.661194 0.661194 0.661194 0.669800 0.669800 0.669800 0.678162 0.678162 0.678162 0.686676 0.686676 0.686676 0.695099 0.695099 0.695099 0.703156 0.703156 0.703156 0.711334 0.711334 0.711334 0.719147 0.719147 0.719147 0.727020 0.727020 0.727020 0.734711 0.734711 0.734711 0.742065 0.742065 0.742065 0.749420 0.749420 0.749420 0.756561 0.756561 0.756561 0.763306 0.763306 0.763306 0.770020 0.770020 0.770020 0.064606 0.064606 0.064606 0.068695 0.068695 0.068695 0.072968 0.072968 0.072968 0.077515 0.077515 0.077515 0.082184 0.082184 0.082184 0.087219 0.087219 0.087219 0.092529 0.092529 0.092529 0.097931 0.097931 0.097931 0.103760 0.103760 0.103760 0.109894 0.109894 0.109894 0.116211 0.116211 0.116211 0.123016 0.123016 0.123016 0.130219 0.130219 0.130219 0.137665 0.137665 0.137665 0.145721 0.145721 0.145721 0.154022 0.154022 0.154022 0.163116 0.163116 0.163116 0.172638 0.172638 0.172638 0.182251 0.182251 0.182251 0.192413 0.192413 0.192413 0.202789 0.202789 0.202789 0.212952 0.212952 0.212952 0.223328 0.223328 0.223328 0.233551 0.233551 0.233551 0.243378 0.243378 0.243378 0.253265 0.253265 0.253265 0.262726 0.262726 0.262726 0.272247 0.272247 0.272247 0.281586 0.281586 0.281586 0.290527 0.290527 0.290527 0.299500 0.299500 0.299500 0.308289 0.308289 0.308289 0.072845 0.072845 0.072845 0.077454 0.077454 0.077454 0.082092 0.082092 0.082092 0.087097 0.087097 0.087097 0.092255 0.092255 0.092255 0.097778 0.097778 0.097778 0.103638 0.103638 0.103638 0.109589 0.109589 0.109589 0.116058 0.116058 0.116058 0.122833 0.122833 0.122833 0.129852 0.129852 0.129852 0.137451 0.137451 0.137451 0.145538 0.145538 0.145538 0.153839 0.153839 0.153839 0.162872 0.162872 0.162872 0.172150 0.172150 0.172150 0.182007 0.182007 0.182007 0.192169 0.192169 0.192169 0.202271 0.202271 0.202271 0.212646 0.212646 0.212646 0.223053 0.223053 0.223053 0.233032 0.233032 0.233032 0.243103 0.243103 0.243103 0.253021 0.253021 0.253021 0.262482 0.262482 0.262482 0.272003 0.272003 0.272003 0.281097 0.281097 0.281097 0.290283 0.290283 0.290283 0.299255 0.299255 0.299255 0.307861 0.307861 0.307861 0.316467 0.316467 0.316467 0.324890 0.324890 0.324890 0.081970 0.081970 0.081970 0.086853 0.086853 0.086853 0.092133 0.092133 0.092133 0.097656 0.097656 0.097656 0.103333 0.103333 0.103333 0.109436 0.109436 0.109436 0.115875 0.115875 0.115875 0.122498 0.122498 0.122498 0.129700 0.129700 0.129700 0.137268 0.137268 0.137268 0.145111 0.145111 0.145111 0.153595 0.153595 0.153595 0.162415 0.162415 0.162415 0.171906 0.171906 0.171906 0.181732 0.181732 0.181732 0.191650 0.191650 0.191650 0.202026 0.202026 0.202026 0.212402 0.212402 0.212402 0.222534 0.222534 0.222534 0.232788 0.232788 0.232788 0.242828 0.242828 0.242828 0.252502 0.252502 0.252502 0.262238 0.262238 0.262238 0.271545 0.271545 0.271545 0.280884 0.280884 0.280884 0.290039 0.290039 0.290039 0.298828 0.298828 0.298828 0.307617 0.307617 0.307617 0.316254 0.316254 0.316254 0.324493 0.324493 0.324493 0.332764 0.332764 0.332764 0.340881 0.340881 0.340881 0.091980 0.091980 0.091980 0.097351 0.097351 0.097351 0.103149 0.103149 0.103149 0.109283 0.109283 0.109283 0.115540 0.115540 0.115540 0.122314 0.122314 0.122314 0.129486 0.129486 0.129486 0.136871 0.136871 0.136871 0.144897 0.144897 0.144897 0.153381 0.153381 0.153381 0.162170 0.162170 0.162170 0.171631 0.171631 0.171631 0.181244 0.181244 0.181244 0.191376 0.191376 0.191376 0.201721 0.201721 0.201721 0.211884 0.211884 0.211884 0.222260 0.222260 0.222260 0.232513 0.232513 0.232513 0.242371 0.242371 0.242371 0.252258 0.252258 0.252258 0.261993 0.261993 0.261993 0.271301 0.271301 0.271301 0.280670 0.280670 0.280670 0.289612 0.289612 0.289612 0.298584 0.298584 0.298584 0.307434 0.307434 0.307434 0.315826 0.315826 0.315826 0.324280 0.324280 0.324280 0.332581 0.332581 0.332581 0.340485 0.340485 0.340485 0.348419 0.348419 0.348419 0.356232 0.356232 0.356232 0.102997 0.102997 0.102997 0.108948 0.108948 0.108948 0.115387 0.115387 0.115387 0.122162 0.122162 0.122162 0.129120 0.129120 0.129120 0.136688 0.136688 0.136688 0.144684 0.144684 0.144684 0.152954 0.152954 0.152954 0.161926 0.161926 0.161926 0.171173 0.171173 0.171173 0.181000 0.181000 0.181000 0.191132 0.191132 0.191132 0.201233 0.201233 0.201233 0.211639 0.211639 0.211639 0.222015 0.222015 0.222015 0.232025 0.232025 0.232025 0.242126 0.242126 0.242126 0.252014 0.252014 0.252014 0.261505 0.261505 0.261505 0.271057 0.271057 0.271057 0.280182 0.280182 0.280182 0.289368 0.289368 0.289368 0.298370 0.298370 0.298370 0.306976 0.306976 0.306976 0.315613 0.315613 0.315613 0.324066 0.324066 0.324066 0.332153 0.332153 0.332153 0.340271 0.340271 0.340271 0.348236 0.348236 0.348236 0.355835 0.355835 0.355835 0.363495 0.363495 0.363495 0.370880 0.370880 0.370880 0.115204 0.115204 0.115204 0.121796 0.121796 0.121796 0.128937 0.128937 0.128937 0.136475 0.136475 0.136475 0.144257 0.144257 0.144257 0.152740 0.152740 0.152740 0.161713 0.161713 0.161713 0.170929 0.170929 0.170929 0.180725 0.180725 0.180725 0.190643 0.190643 0.190643 0.200958 0.200958 0.200958 0.211365 0.211365 0.211365 0.221527 0.221527 0.221527 0.231750 0.231750 0.231750 0.241882 0.241882 0.241882 0.251526 0.251526 0.251526 0.261261 0.261261 0.261261 0.270813 0.270813 0.270813 0.279968 0.279968 0.279968 0.289124 0.289124 0.289124 0.297943 0.297943 0.297943 0.306763 0.306763 0.306763 0.315399 0.315399 0.315399 0.323639 0.323639 0.323639 0.331940 0.331940 0.331940 0.340088 0.340088 0.340088 0.347870 0.347870 0.347870 0.355682 0.355682 0.355682 0.363312 0.363312 0.363312 0.370667 0.370667 0.370667 0.378082 0.378082 0.378082 0.385162 0.385162 0.385162 0.128784 0.128784 0.128784 0.136108 0.136108 0.136108 0.144073 0.144073 0.144073 0.152557 0.152557 0.152557 0.161255 0.161255 0.161255 0.170685 0.170685 0.170685 0.180237 0.180237 0.180237 0.190399 0.190399 0.190399 0.200714 0.200714 0.200714 0.210846 0.210846 0.210846 0.221252 0.221252 0.221252 0.231476 0.231476 0.231476 0.241364 0.241364 0.241364 0.251282 0.251282 0.251282 0.261047 0.261047 0.261047 0.270355 0.270355 0.270355 0.279724 0.279724 0.279724 0.288910 0.288910 0.288910 0.297699 0.297699 0.297699 0.306519 0.306519 0.306519 0.314972 0.314972 0.314972 0.323425 0.323425 0.323425 0.331757 0.331757 0.331757 0.339691 0.339691 0.339691 0.347656 0.347656 0.347656 0.355469 0.355469 0.355469 0.362946 0.362946 0.362946 0.370514 0.370514 0.370514 0.377716 0.377716 0.377716 0.385010 0.385010 0.385010 0.392181 0.392181 0.392181 0.399078 0.399078 0.399078 0.143860 0.143860 0.143860 0.152100 0.152100 0.152100 0.161011 0.161011 0.161011 0.170441 0.170441 0.170441 0.179993 0.179993 0.179993 0.190094 0.190094 0.190094 0.200165 0.200165 0.200165 0.210602 0.210602 0.210602 0.220978 0.220978 0.220978 0.231018 0.231018 0.231018 0.241119 0.241119 0.241119 0.251038 0.251038 0.251038 0.260559 0.260559 0.260559 0.270142 0.270142 0.270142 0.279510 0.279510 0.279510 0.288483 0.288483 0.288483 0.297485 0.297485 0.297485 0.306122 0.306122 0.306122 0.314728 0.314728 0.314728 0.323242 0.323242 0.323242 0.331329 0.331329 0.331329 0.339478 0.339478 0.339478 0.347443 0.347443 0.347443 0.355072 0.355072 0.355072 0.362762 0.362762 0.362762 0.370300 0.370300 0.370300 0.377502 0.377502 0.377502 0.384827 0.384827 0.384827 0.391846 0.391846 0.391846 0.398926 0.398926 0.398926 0.405914 0.405914 0.405914 0.412689 0.412689 0.412689 0.160767 0.160767 0.160767 0.169952 0.169952 0.169952 0.179749 0.179749 0.179749 0.189606 0.189606 0.189606 0.199921 0.199921 0.199921 0.210327 0.210327 0.210327 0.220459 0.220459 0.220459 0.230774 0.230774 0.230774 0.240875 0.240875 0.240875 0.250549 0.250549 0.250549 0.260315 0.260315 0.260315 0.269867 0.269867 0.269867 0.279053 0.279053 0.279053 0.288239 0.288239 0.288239 0.297028 0.297028 0.297028 0.305878 0.305878 0.305878 0.314545 0.314545 0.314545 0.322815 0.322815 0.322815 0.331116 0.331116 0.331116 0.339264 0.339264 0.339264 0.347046 0.347046 0.347046 0.354889 0.354889 0.354889 0.362579 0.362579 0.362579 0.369904 0.369904 0.369904 0.377350 0.377350 0.377350 0.384644 0.384644 0.384644 0.391663 0.391663 0.391663 0.398773 0.398773 0.398773 0.405579 0.405579 0.405579 0.412537 0.412537 0.412537 0.419403 0.419403 0.419403 0.426056 0.426056 0.426056 0.179504 0.179504 0.179504 0.189301 0.189301 0.189301 0.199677 0.199677 0.199677 0.209808 0.209808 0.209808 0.220215 0.220215 0.220215 0.230530 0.230530 0.230530 0.240356 0.240356 0.240356 0.250305 0.250305 0.250305 0.260040 0.260040 0.260040 0.269379 0.269379 0.269379 0.278809 0.278809 0.278809 0.288025 0.288025 0.288025 0.296783 0.296783 0.296783 0.305664 0.305664 0.305664 0.314117 0.314117 0.314117 0.322601 0.322601 0.322601 0.330902 0.330902 0.330902 0.338837 0.338837 0.338837 0.346863 0.346863 0.346863 0.354675 0.354675 0.354675 0.362183 0.362183 0.362183 0.369751 0.369751 0.369751 0.377136 0.377136 0.377136 0.384277 0.384277 0.384277 0.391449 0.391449 0.391449 0.398407 0.398407 0.398407 0.405426 0.405426 0.405426 0.412354 0.412354 0.412354 0.419037 0.419037 0.419037 0.425873 0.425873 0.425873 0.432648 0.432648 0.432648 0.439270 0.439270 0.439270 0.199158 0.199158 0.199158 0.209564 0.209564 0.209564 0.219940 0.219940 0.219940 0.230011 0.230011 0.230011 0.240112 0.240112 0.240112 0.250031 0.250031 0.250031 0.259583 0.259583 0.259583 0.269135 0.269135 0.269135 0.278564 0.278564 0.278564 0.287567 0.287567 0.287567 0.296600 0.296600 0.296600 0.305206 0.305206 0.305206 0.313904 0.313904 0.313904 0.322388 0.322388 0.322388 0.330505 0.330505 0.330505 0.338684 0.338684 0.338684 0.346649 0.346649 0.346649 0.354279 0.354279 0.354279 0.362000 0.362000 0.362000 0.369568 0.369568 0.369568 0.376770 0.376770 0.376770 0.384094 0.384094 0.384094 0.391296 0.391296 0.391296 0.398224 0.398224 0.398224 0.405243 0.405243 0.405243 0.412018 0.412018 0.412018 0.418884 0.418884 0.418884 0.425690 0.425690 0.425690 0.432312 0.432312 0.432312 0.439087 0.439087 0.439087 0.445831 0.445831 0.445831 0.452393 0.452393 0.452393 0.219452 0.219452 0.219452 0.229736 0.229736 0.229736 0.239868 0.239868 0.239868 0.249542 0.249542 0.249542 0.259338 0.259338 0.259338 0.268921 0.268921 0.268921 0.278107 0.278107 0.278107 0.287323 0.287323 0.287323 0.296387 0.296387 0.296387 0.304993 0.304993 0.304993 0.313690 0.313690 0.313690 0.321960 0.321960 0.321960 0.330322 0.330322 0.330322 0.338470 0.338470 0.338470 0.346252 0.346252 0.346252 0.354095 0.354095 0.354095 0.361816 0.361816 0.361816 0.369171 0.369171 0.369171 0.376587 0.376587 0.376587 0.383911 0.383911 0.383911 0.390961 0.390961 0.390961 0.398010 0.398010 0.398010 0.404907 0.404907 0.404907 0.411804 0.411804 0.411804 0.418732 0.418732 0.418732 0.425385 0.425385 0.425385 0.432159 0.432159 0.432159 0.438904 0.438904 0.438904 0.445496 0.445496 0.445496 0.452271 0.452271 0.452271 0.459015 0.459015 0.459015 0.465607 0.465607 0.465607 0.239349 0.239349 0.239349 0.249329 0.249329 0.249329 0.259094 0.259094 0.259094 0.268463 0.268463 0.268463 0.277863 0.277863 0.277863 0.287109 0.287109 0.287109 0.295898 0.295898 0.295898 0.304810 0.304810 0.304810 0.313263 0.313263 0.313263 0.321747 0.321747 0.321747 0.330109 0.330109 0.330109 0.338043 0.338043 0.338043 0.346069 0.346069 0.346069 0.353912 0.353912 0.353912 0.361420 0.361420 0.361420 0.368988 0.368988 0.368988 0.376434 0.376434 0.376434 0.383545 0.383545 0.383545 0.390747 0.390747 0.390747 0.397858 0.397858 0.397858 0.404724 0.404724 0.404724 0.411652 0.411652 0.411652 0.418365 0.418365 0.418365 0.425171 0.425171 0.425171 0.431976 0.431976 0.431976 0.438568 0.438568 0.438568 0.445343 0.445343 0.445343 0.452087 0.452087 0.452087 0.458649 0.458649 0.458649 0.465454 0.465454 0.465454 0.472260 0.472260 0.472260 0.478943 0.478943 0.478943 0.258606 0.258606 0.258606 0.268219 0.268219 0.268219 0.277618 0.277618 0.277618 0.286652 0.286652 0.286652 0.295715 0.295715 0.295715 0.304565 0.304565 0.304565 0.313049 0.313049 0.313049 0.321564 0.321564 0.321564 0.329712 0.329712 0.329712 0.337860 0.337860 0.337860 0.345886 0.345886 0.345886 0.353516 0.353516 0.353516 0.361267 0.361267 0.361267 0.368805 0.368805 0.368805 0.376068 0.376068 0.376068 0.383362 0.383362 0.383362 0.390594 0.390594 0.390594 0.397522 0.397522 0.397522 0.404510 0.404510 0.404510 0.411316 0.411316 0.411316 0.418182 0.418182 0.418182 0.425018 0.425018 0.425018 0.431641 0.431641 0.431641 0.438385 0.438385 0.438385 0.445160 0.445160 0.445160 0.451752 0.451752 0.451752 0.458496 0.458496 0.458496 0.465271 0.465271 0.465271 0.471893 0.471893 0.471893 0.478760 0.478760 0.478760 0.485504 0.485504 0.485504 0.492493 0.492493 0.492493 0.277161 0.277161 0.277161 0.286407 0.286407 0.286407 0.295471 0.295471 0.295471 0.304138 0.304138 0.304138 0.312836 0.312836 0.312836 0.321167 0.321167 0.321167 0.329468 0.329468 0.329468 0.337677 0.337677 0.337677 0.345459 0.345459 0.345459 0.353363 0.353363 0.353363 0.361053 0.361053 0.361053 0.368408 0.368408 0.368408 0.375854 0.375854 0.375854 0.383179 0.383179 0.383179 0.390228 0.390228 0.390228 0.397339 0.397339 0.397339 0.404358 0.404358 0.404358 0.411133 0.411133 0.411133 0.417999 0.417999 0.417999 0.424683 0.424683 0.424683 0.431488 0.431488 0.431488 0.438263 0.438263 0.438263 0.444824 0.444824 0.444824 0.451569 0.451569 0.451569 0.458313 0.458313 0.458313 0.464935 0.464935 0.464935 0.471741 0.471741 0.471741 0.478607 0.478607 0.478607 0.485321 0.485321 0.485321 0.492310 0.492310 0.492310 0.499176 0.499176 0.499176 0.506317 0.506317 0.506317 0.295013 0.295013 0.295013 0.303925 0.303925 0.303925 0.312622 0.312622 0.312622 0.320923 0.320923 0.320923 0.329285 0.329285 0.329285 0.337250 0.337250 0.337250 0.345306 0.345306 0.345306 0.353149 0.353149 0.353149 0.360657 0.360657 0.360657 0.368225 0.368225 0.368225 0.375702 0.375702 0.375702 0.382843 0.382843 0.382843 0.390045 0.390045 0.390045 0.397186 0.397186 0.397186 0.403992 0.403992 0.403992 0.410980 0.410980 0.410980 0.417664 0.417664 0.417664 0.424500 0.424500 0.424500 0.431305 0.431305 0.431305 0.437897 0.437897 0.437897 0.444641 0.444641 0.444641 0.451416 0.451416 0.451416 0.457977 0.457977 0.457977 0.464752 0.464752 0.464752 0.471588 0.471588 0.471588 0.478241 0.478241 0.478241 0.485138 0.485138 0.485138 0.491974 0.491974 0.491974 0.498993 0.498993 0.498993 0.506134 0.506134 0.506134 0.513184 0.513184 0.513184 0.520508 0.520508 0.520508 0.312195 0.312195 0.312195 0.320709 0.320709 0.320709 0.329071 0.329071 0.329071 0.337036 0.337036 0.337036 0.345062 0.345062 0.345062 0.352722 0.352722 0.352722 0.360474 0.360474 0.360474 0.368042 0.368042 0.368042 0.375336 0.375336 0.375336 0.382660 0.382660 0.382660 0.389862 0.389862 0.389862 0.396820 0.396820 0.396820 0.403839 0.403839 0.403839 0.410797 0.410797 0.410797 0.417480 0.417480 0.417480 0.424347 0.424347 0.424347 0.431122 0.431122 0.431122 0.437744 0.437744 0.437744 0.444489 0.444489 0.444489 0.451080 0.451080 0.451080 0.457825 0.457825 0.457825 0.464600 0.464600 0.464600 0.471222 0.471222 0.471222 0.478088 0.478088 0.478088 0.484985 0.484985 0.484985 0.491760 0.491760 0.491760 0.498840 0.498840 0.498840 0.505951 0.505951 0.505951 0.513000 0.513000 0.513000 0.520325 0.520325 0.520325 0.527557 0.527557 0.527557 0.535126 0.535126 0.535126 0.328674 0.328674 0.328674 0.336853 0.336853 0.336853 0.344879 0.344879 0.344879 0.352539 0.352539 0.352539 0.360260 0.360260 0.360260 0.367676 0.367676 0.367676 0.375122 0.375122 0.375122 0.382446 0.382446 0.382446 0.389526 0.389526 0.389526 0.396637 0.396637 0.396637 0.403656 0.403656 0.403656 0.410461 0.410461 0.410461 0.417328 0.417328 0.417328 0.424164 0.424164 0.424164 0.430817 0.430817 0.430817 0.437592 0.437592 0.437592 0.444153 0.444153 0.444153 0.450897 0.450897 0.450897 0.457642 0.457642 0.457642 0.464233 0.464233 0.464233 0.471069 0.471069 0.471069 0.477936 0.477936 0.477936 0.484650 0.484650 0.484650 0.491608 0.491608 0.491608 0.498627 0.498627 0.498627 0.505615 0.505615 0.505615 0.512817 0.512817 0.512817 0.519958 0.519958 0.519958 0.527374 0.527374 0.527374 0.534943 0.534943 0.534943 0.542389 0.542389 0.542389 0.550201 0.550201 0.550201 0.344482 0.344482 0.344482 0.352325 0.352325 0.352325 0.359894 0.359894 0.359894 0.367462 0.367462 0.367462 0.374969 0.374969 0.374969 0.382080 0.382080 0.382080 0.389313 0.389313 0.389313 0.396454 0.396454 0.396454 0.403320 0.403320 0.403320 0.410278 0.410278 0.410278 0.417175 0.417175 0.417175 0.423828 0.423828 0.423828 0.430603 0.430603 0.430603 0.437225 0.437225 0.437225 0.443970 0.443970 0.443970 0.450714 0.450714 0.450714 0.457306 0.457306 0.457306 0.464081 0.464081 0.464081 0.470886 0.470886 0.470886 0.477570 0.477570 0.477570 0.484467 0.484467 0.484467 0.491425 0.491425 0.491425 0.498291 0.498291 0.498291 0.505432 0.505432 0.505432 0.512634 0.512634 0.512634 0.519775 0.519775 0.519775 0.527191 0.527191 0.527191 0.534546 0.534546 0.534546 0.542206 0.542206 0.542206 0.550018 0.550018 0.550018 0.557709 0.557709 0.557709 0.565765 0.565765 0.565765 0.359711 0.359711 0.359711 0.367310 0.367310 0.367310 0.374573 0.374573 0.374573 0.381927 0.381927 0.381927 0.389160 0.389160 0.389160 0.396088 0.396088 0.396088 0.403168 0.403168 0.403168 0.410095 0.410095 0.410095 0.416840 0.416840 0.416840 0.423676 0.423676 0.423676 0.430450 0.430450 0.430450 0.437073 0.437073 0.437073 0.443817 0.443817 0.443817 0.450378 0.450378 0.450378 0.457123 0.457123 0.457123 0.463928 0.463928 0.463928 0.470551 0.470551 0.470551 0.477386 0.477386 0.477386 0.484283 0.484283 0.484283 0.491089 0.491089 0.491089 0.498077 0.498077 0.498077 0.505219 0.505219 0.505219 0.512268 0.512268 0.512268 0.519592 0.519592 0.519592 0.526825 0.526825 0.526825 0.534363 0.534363 0.534363 0.542023 0.542023 0.542023 0.549622 0.549622 0.549622 0.557526 0.557526 0.557526 0.565582 0.565582 0.565582 0.573578 0.573578 0.573578 0.581909 0.581909 0.581909 0.374390 0.374390 0.374390 0.381744 0.381744 0.381744 0.388794 0.388794 0.388794 0.395935 0.395935 0.395935 0.402954 0.402954 0.402954 0.409760 0.409760 0.409760 0.416656 0.416656 0.416656 0.423462 0.423462 0.423462 0.430115 0.430115 0.430115 0.436890 0.436890 0.436890 0.443451 0.443451 0.443451 0.450226 0.450226 0.450226 0.456970 0.456970 0.456970 0.463562 0.463562 0.463562 0.470367 0.470367 0.470367 0.477203 0.477203 0.477203 0.483948 0.483948 0.483948 0.490906 0.490906 0.490906 0.497955 0.497955 0.497955 0.504883 0.504883 0.504883 0.512085 0.512085 0.512085 0.519379 0.519379 0.519379 0.526642 0.526642 0.526642 0.534180 0.534180 0.534180 0.541656 0.541656 0.541656 0.549408 0.549408 0.549408 0.557343 0.557343 0.557343 0.565186 0.565186 0.565186 0.573364 0.573364 0.573364 0.581696 0.581696 0.581696 0.589905 0.589905 0.589905 0.598450 0.598450 0.598450 0.388611 0.388611 0.388611 0.395752 0.395752 0.395752 0.402618 0.402618 0.402618 0.409576 0.409576 0.409576 0.416473 0.416473 0.416473 0.423126 0.423126 0.423126 0.429932 0.429932 0.429932 0.436707 0.436707 0.436707 0.443298 0.443298 0.443298 0.450073 0.450073 0.450073 0.456635 0.456635 0.456635 0.463409 0.463409 0.463409 0.470184 0.470184 0.470184 0.476868 0.476868 0.476868 0.483734 0.483734 0.483734 0.490692 0.490692 0.490692 0.497589 0.497589 0.497589 0.504700 0.504700 0.504700 0.511902 0.511902 0.511902 0.519043 0.519043 0.519043 0.526428 0.526428 0.526428 0.533783 0.533783 0.533783 0.541443 0.541443 0.541443 0.549225 0.549225 0.549225 0.556946 0.556946 0.556946 0.564972 0.564972 0.564972 0.573151 0.573151 0.573151 0.581268 0.581268 0.581268 0.589691 0.589691 0.589691 0.598236 0.598236 0.598236 0.606628 0.606628 0.606628 0.615295 0.615295 0.615295 0.402435 0.402435 0.402435 0.409424 0.409424 0.409424 0.416138 0.416138 0.416138 0.422974 0.422974 0.422974 0.429779 0.429779 0.429779 0.436371 0.436371 0.436371 0.443146 0.443146 0.443146 0.449707 0.449707 0.449707 0.456451 0.456451 0.456451 0.463226 0.463226 0.463226 0.469879 0.469879 0.469879 0.476685 0.476685 0.476685 0.483612 0.483612 0.483612 0.490387 0.490387 0.490387 0.497406 0.497406 0.497406 0.504517 0.504517 0.504517 0.511536 0.511536 0.511536 0.518860 0.518860 0.518860 0.526245 0.526245 0.526245 0.533600 0.533600 0.533600 0.541260 0.541260 0.541260 0.548828 0.548828 0.548828 0.556732 0.556732 0.556732 0.564758 0.564758 0.564758 0.572754 0.572754 0.572754 0.581024 0.581024 0.581024 0.589478 0.589478 0.589478 0.597809 0.597809 0.597809 0.606445 0.606445 0.606445 0.615112 0.615112 0.615112 0.623596 0.623596 0.623596 0.632355 0.632355 0.632355 0.415955 0.415955 0.415955 0.422791 0.422791 0.422791 0.429443 0.429443 0.429443 0.436218 0.436218 0.436218 0.442963 0.442963 0.442963 0.449554 0.449554 0.449554 0.456299 0.456299 0.456299 0.462921 0.462921 0.462921 0.469696 0.469696 0.469696 0.476532 0.476532 0.476532 0.483246 0.483246 0.483246 0.490173 0.490173 0.490173 0.497223 0.497223 0.497223 0.504181 0.504181 0.504181 0.511353 0.511353 0.511353 0.518677 0.518677 0.518677 0.525879 0.525879 0.525879 0.533417 0.533417 0.533417 0.540863 0.540863 0.540863 0.548645 0.548645 0.548645 0.556519 0.556519 0.556519 0.564362 0.564362 0.564362 0.572540 0.572540 0.572540 0.580841 0.580841 0.580841 0.589081 0.589081 0.589081 0.597595 0.597595 0.597595 0.606201 0.606201 0.606201 0.614655 0.614655 0.614655 0.623383 0.623383 0.623383 0.631897 0.631897 0.631897 0.640656 0.640656 0.640656 0.649414 0.649414 0.649414 0.429260 0.429260 0.429260 0.436035 0.436035 0.436035 0.442627 0.442627 0.442627 0.449371 0.449371 0.449371 0.456146 0.456146 0.456146 0.462708 0.462708 0.462708 0.469543 0.469543 0.469543 0.476196 0.476196 0.476196 0.483063 0.483063 0.483063 0.490051 0.490051 0.490051 0.496887 0.496887 0.496887 0.503967 0.503967 0.503967 0.511200 0.511200 0.511200 0.518280 0.518280 0.518280 0.525696 0.525696 0.525696 0.533234 0.533234 0.533234 0.540680 0.540680 0.540680 0.548431 0.548431 0.548431 0.556152 0.556152 0.556152 0.564178 0.564178 0.564178 0.572327 0.572327 0.572327 0.580414 0.580414 0.580414 0.588837 0.588837 0.588837 0.597382 0.597382 0.597382 0.605774 0.605774 0.605774 0.614441 0.614441 0.614441 0.623169 0.623169 0.623169 0.631683 0.631683 0.631683 0.640472 0.640472 0.640472 0.648987 0.648987 0.648987 0.657684 0.657684 0.657684 0.666351 0.666351 0.666351 0.442444 0.442444 0.442444 0.449188 0.449188 0.449188 0.455780 0.455780 0.455780 0.462555 0.462555 0.462555 0.469177 0.469177 0.469177 0.476013 0.476013 0.476013 0.482910 0.482910 0.482910 0.489685 0.489685 0.489685 0.496704 0.496704 0.496704 0.503784 0.503784 0.503784 0.510803 0.510803 0.510803 0.518127 0.518127 0.518127 0.525513 0.525513 0.525513 0.532867 0.532867 0.532867 0.540466 0.540466 0.540466 0.548065 0.548065 0.548065 0.555939 0.555939 0.555939 0.563995 0.563995 0.563995 0.571899 0.571899 0.571899 0.580231 0.580231 0.580231 0.588623 0.588623 0.588623 0.596954 0.596954 0.596954 0.605560 0.605560 0.605560 0.614258 0.614258 0.614258 0.622742 0.622742 0.622742 0.631500 0.631500 0.631500 0.639984 0.639984 0.639984 0.648773 0.648773 0.648773 0.657471 0.657471 0.657471 0.665924 0.665924 0.665924 0.674561 0.674561 0.674561 0.683075 0.683075 0.683075 0.455627 0.455627 0.455627 0.462402 0.462402 0.462402 0.469025 0.469025 0.469025 0.475861 0.475861 0.475861 0.482544 0.482544 0.482544 0.489502 0.489502 0.489502 0.496521 0.496521 0.496521 0.503418 0.503418 0.503418 0.510651 0.510651 0.510651 0.517944 0.517944 0.517944 0.525146 0.525146 0.525146 0.532654 0.532654 0.532654 0.540283 0.540283 0.540283 0.547821 0.547821 0.547821 0.555725 0.555725 0.555725 0.563538 0.563538 0.563538 0.571686 0.571686 0.571686 0.580017 0.580017 0.580017 0.588196 0.588196 0.588196 0.596741 0.596741 0.596741 0.605347 0.605347 0.605347 0.613770 0.613770 0.613770 0.622528 0.622528 0.622528 0.631256 0.631256 0.631256 0.639801 0.639801 0.639801 0.648529 0.648529 0.648529 0.657074 0.657074 0.657074 0.665680 0.665680 0.665680 0.674347 0.674347 0.674347 0.682648 0.682648 0.682648 0.691101 0.691101 0.691101 0.699432 0.699432 0.699432 0.468842 0.468842 0.468842 0.475494 0.475494 0.475494 0.482391 0.482391 0.482391 0.489349 0.489349 0.489349 0.496155 0.496155 0.496155 0.503265 0.503265 0.503265 0.510437 0.510437 0.510437 0.517548 0.517548 0.517548 0.524963 0.524963 0.524963 0.532471 0.532471 0.532471 0.539886 0.539886 0.539886 0.547668 0.547668 0.547668 0.555328 0.555328 0.555328 0.563354 0.563354 0.563354 0.571503 0.571503 0.571503 0.579590 0.579590 0.579590 0.588013 0.588013 0.588013 0.596527 0.596527 0.596527 0.604919 0.604919 0.604919 0.613586 0.613586 0.613586 0.622284 0.622284 0.622284 0.630829 0.630829 0.630829 0.639557 0.639557 0.639557 0.648132 0.648132 0.648132 0.656830 0.656830 0.656830 0.665497 0.665497 0.665497 0.673889 0.673889 0.673889 0.682465 0.682465 0.682465 0.690887 0.690887 0.690887 0.699036 0.699036 0.699036 0.707275 0.707275 0.707275 0.715363 0.715363 0.715363 0.482208 0.482208 0.482208 0.488983 0.488983 0.488983 0.496002 0.496002 0.496002 0.503082 0.503082 0.503082 0.510101 0.510101 0.510101 0.517395 0.517395 0.517395 0.524780 0.524780 0.524780 0.532104 0.532104 0.532104 0.539734 0.539734 0.539734 0.547455 0.547455 0.547455 0.555115 0.555115 0.555115 0.563141 0.563141 0.563141 0.571106 0.571106 0.571106 0.579376 0.579376 0.579376 0.587799 0.587799 0.587799 0.596100 0.596100 0.596100 0.604675 0.604675 0.604675 0.613342 0.613342 0.613342 0.621857 0.621857 0.621857 0.630615 0.630615 0.630615 0.639374 0.639374 0.639374 0.647888 0.647888 0.647888 0.656616 0.656616 0.656616 0.665039 0.665039 0.665039 0.673706 0.673706 0.673706 0.682251 0.682251 0.682251 0.690491 0.690491 0.690491 0.698822 0.698822 0.698822 0.707062 0.707062 0.707062 0.714966 0.714966 0.714966 0.722931 0.722931 0.722931 0.730682 0.730682 0.730682 0.495819 0.495819 0.495819 0.502747 0.502747 0.502747 0.509888 0.509888 0.509888 0.517212 0.517212 0.517212 0.524414 0.524414 0.524414 0.531891 0.531891 0.531891 0.539520 0.539520 0.539520 0.547058 0.547058 0.547058 0.554932 0.554932 0.554932 0.562775 0.562775 0.562775 0.570892 0.570892 0.570892 0.579193 0.579193 0.579193 0.587372 0.587372 0.587372 0.595856 0.595856 0.595856 0.604462 0.604462 0.604462 0.612946 0.612946 0.612946 0.621643 0.621643 0.621643 0.630371 0.630371 0.630371 0.638916 0.638916 0.638916 0.647675 0.647675 0.647675 0.656403 0.656403 0.656403 0.664856 0.664856 0.664856 0.673462 0.673462 0.673462 0.681793 0.681793 0.681793 0.690277 0.690277 0.690277 0.698608 0.698608 0.698608 0.706665 0.706665 0.706665 0.714783 0.714783 0.714783 0.722717 0.722717 0.722717 0.730316 0.730316 0.730316 0.737946 0.737946 0.737946 0.745209 0.745209 0.745209 0.509735 0.509735 0.509735 0.516815 0.516815 0.516815 0.524200 0.524200 0.524200 0.531708 0.531708 0.531708 0.539093 0.539093 0.539093 0.546875 0.546875 0.546875 0.554749 0.554749 0.554749 0.562561 0.562561 0.562561 0.570679 0.570679 0.570679 0.578766 0.578766 0.578766 0.587128 0.587128 0.587128 0.595673 0.595673 0.595673 0.604034 0.604034 0.604034 0.612701 0.612701 0.612701 0.621399 0.621399 0.621399 0.629944 0.629944 0.629944 0.638702 0.638702 0.638702 0.647430 0.647430 0.647430 0.655914 0.655914 0.655914 0.664612 0.664612 0.664612 0.673065 0.673065 0.673065 0.681610 0.681610 0.681610 0.690063 0.690063 0.690063 0.698212 0.698212 0.698212 0.706451 0.706451 0.706451 0.714569 0.714569 0.714569 0.722351 0.722351 0.722351 0.730164 0.730164 0.730164 0.737793 0.737793 0.737793 0.745026 0.745026 0.745026 0.752289 0.752289 0.752289 0.759155 0.759155 0.759155 0.524017 0.524017 0.524017 0.531342 0.531342 0.531342 0.538940 0.538940 0.538940 0.546661 0.546661 0.546661 0.554352 0.554352 0.554352 0.562347 0.562347 0.562347 0.570282 0.570282 0.570282 0.578552 0.578552 0.578552 0.586945 0.586945 0.586945 0.595215 0.595215 0.595215 0.603821 0.603821 0.603821 0.612488 0.612488 0.612488 0.621002 0.621002 0.621002 0.629730 0.629730 0.629730 0.638489 0.638489 0.638489 0.647003 0.647003 0.647003 0.655731 0.655731 0.655731 0.664459 0.664459 0.664459 0.672821 0.672821 0.672821 0.681366 0.681366 0.681366 0.689667 0.689667 0.689667 0.697998 0.697998 0.697998 0.706238 0.706238 0.706238 0.714142 0.714142 0.714142 0.722107 0.722107 0.722107 0.729919 0.729919 0.729919 0.737396 0.737396 0.737396 0.744843 0.744843 0.744843 0.752106 0.752106 0.752106 0.758972 0.758972 0.758972 0.765839 0.765839 0.765839 0.772339 0.772339 0.772339 0.066010 0.066010 0.066010 0.070251 0.070251 0.070251 0.074646 0.074646 0.074646 0.079193 0.079193 0.079193 0.084106 0.084106 0.084106 0.089203 0.089203 0.089203 0.094421 0.094421 0.094421 0.100098 0.100098 0.100098 0.106018 0.106018 0.106018 0.112122 0.112122 0.112122 0.118713 0.118713 0.118713 0.125488 0.125488 0.125488 0.132843 0.132843 0.132843 0.140625 0.140625 0.140625 0.148682 0.148682 0.148682 0.157410 0.157410 0.157410 0.166595 0.166595 0.166595 0.176056 0.176056 0.176056 0.186035 0.186035 0.186035 0.196289 0.196289 0.196289 0.206421 0.206421 0.206421 0.216827 0.216827 0.216827 0.226929 0.226929 0.226929 0.237091 0.237091 0.237091 0.247070 0.247070 0.247070 0.256653 0.256653 0.256653 0.266296 0.266296 0.266296 0.275757 0.275757 0.275757 0.284821 0.284821 0.284821 0.293915 0.293915 0.293915 0.302795 0.302795 0.302795 0.311310 0.311310 0.311310 0.074432 0.074432 0.074432 0.079041 0.079041 0.079041 0.083954 0.083954 0.083954 0.088928 0.088928 0.088928 0.094299 0.094299 0.094299 0.099915 0.099915 0.099915 0.105713 0.105713 0.105713 0.111938 0.111938 0.111938 0.118378 0.118378 0.118378 0.125305 0.125305 0.125305 0.132660 0.132660 0.132660 0.140228 0.140228 0.140228 0.148438 0.148438 0.148438 0.157166 0.157166 0.157166 0.166138 0.166138 0.166138 0.175781 0.175781 0.175781 0.185791 0.185791 0.185791 0.195801 0.195801 0.195801 0.206177 0.206177 0.206177 0.216583 0.216583 0.216583 0.226685 0.226685 0.226685 0.236847 0.236847 0.236847 0.246582 0.246582 0.246582 0.256409 0.256409 0.256409 0.266052 0.266052 0.266052 0.275299 0.275299 0.275299 0.284576 0.284576 0.284576 0.293671 0.293671 0.293671 0.302368 0.302368 0.302368 0.311066 0.311066 0.311066 0.319641 0.319641 0.319641 0.327789 0.327789 0.327789 0.083710 0.083710 0.083710 0.088806 0.088806 0.088806 0.094147 0.094147 0.094147 0.099640 0.099640 0.099640 0.105560 0.105560 0.105560 0.111786 0.111786 0.111786 0.118225 0.118225 0.118225 0.125153 0.125153 0.125153 0.132294 0.132294 0.132294 0.140045 0.140045 0.140045 0.148285 0.148285 0.148285 0.156708 0.156708 0.156708 0.165894 0.165894 0.165894 0.175537 0.175537 0.175537 0.185272 0.185272 0.185272 0.195526 0.195526 0.195526 0.205902 0.205902 0.205902 0.216064 0.216064 0.216064 0.226410 0.226410 0.226410 0.236328 0.236328 0.236328 0.246338 0.246338 0.246338 0.256165 0.256165 0.256165 0.265594 0.265594 0.265594 0.275085 0.275085 0.275085 0.284332 0.284332 0.284332 0.293213 0.293213 0.293213 0.302155 0.302155 0.302155 0.310913 0.310913 0.310913 0.319214 0.319214 0.319214 0.327637 0.327637 0.327637 0.335632 0.335632 0.335632 0.343689 0.343689 0.343689 0.093903 0.093903 0.093903 0.099518 0.099518 0.099518 0.105377 0.105377 0.105377 0.111481 0.111481 0.111481 0.118042 0.118042 0.118042 0.124786 0.124786 0.124786 0.132111 0.132111 0.132111 0.139832 0.139832 0.139832 0.147827 0.147827 0.147827 0.156494 0.156494 0.156494 0.165680 0.165680 0.165680 0.175049 0.175049 0.175049 0.185028 0.185028 0.185028 0.195251 0.195251 0.195251 0.205383 0.205383 0.205383 0.215790 0.215790 0.215790 0.226166 0.226166 0.226166 0.236053 0.236053 0.236053 0.246094 0.246094 0.246094 0.255707 0.255707 0.255707 0.265350 0.265350 0.265350 0.274841 0.274841 0.274841 0.283905 0.283905 0.283905 0.292999 0.292999 0.292999 0.301941 0.301941 0.301941 0.310455 0.310455 0.310455 0.319000 0.319000 0.319000 0.327393 0.327393 0.327393 0.335419 0.335419 0.335419 0.343506 0.343506 0.343506 0.351166 0.351166 0.351166 0.358948 0.358948 0.358948 0.105133 0.105133 0.105133 0.111328 0.111328 0.111328 0.117859 0.117859 0.117859 0.124634 0.124634 0.124634 0.131927 0.131927 0.131927 0.139435 0.139435 0.139435 0.147614 0.147614 0.147614 0.156281 0.156281 0.156281 0.165222 0.165222 0.165222 0.174805 0.174805 0.174805 0.184753 0.184753 0.184753 0.194763 0.194763 0.194763 0.205109 0.205109 0.205109 0.215546 0.215546 0.215546 0.225647 0.225647 0.225647 0.235840 0.235840 0.235840 0.245636 0.245636 0.245636 0.255463 0.255463 0.255463 0.265106 0.265106 0.265106 0.274323 0.274323 0.274323 0.283661 0.283661 0.283661 0.292786 0.292786 0.292786 0.301483 0.301483 0.301483 0.310242 0.310242 0.310242 0.318817 0.318817 0.318817 0.326996 0.326996 0.326996 0.335205 0.335205 0.335205 0.343109 0.343109 0.343109 0.350983 0.350983 0.350983 0.358734 0.358734 0.358734 0.366180 0.366180 0.366180 0.373657 0.373657 0.373657 0.117523 0.117523 0.117523 0.124420 0.124420 0.124420 0.131714 0.131714 0.131714 0.139221 0.139221 0.139221 0.147400 0.147400 0.147400 0.155792 0.155792 0.155792 0.164978 0.164978 0.164978 0.174591 0.174591 0.174591 0.184265 0.184265 0.184265 0.194489 0.194489 0.194489 0.204865 0.204865 0.204865 0.215027 0.215027 0.215027 0.225372 0.225372 0.225372 0.235321 0.235321 0.235321 0.245361 0.245361 0.245361 0.255219 0.255219 0.255219 0.264618 0.264618 0.264618 0.274109 0.274109 0.274109 0.283417 0.283417 0.283417 0.292328 0.292328 0.292328 0.301270 0.301270 0.301270 0.310028 0.310028 0.310028 0.318390 0.318390 0.318390 0.326782 0.326782 0.326782 0.335022 0.335022 0.335022 0.342865 0.342865 0.342865 0.350800 0.350800 0.350800 0.358368 0.358368 0.358368 0.365967 0.365967 0.365967 0.373474 0.373474 0.373474 0.380615 0.380615 0.380615 0.387878 0.387878 0.387878 0.131348 0.131348 0.131348 0.139038 0.139038 0.139038 0.146973 0.146973 0.146973 0.155609 0.155609 0.155609 0.164734 0.164734 0.164734 0.174072 0.174072 0.174072 0.184021 0.184021 0.184021 0.194244 0.194244 0.194244 0.204346 0.204346 0.204346 0.214752 0.214752 0.214752 0.225128 0.225128 0.225128 0.235077 0.235077 0.235077 0.245117 0.245117 0.245117 0.254730 0.254730 0.254730 0.264404 0.264404 0.264404 0.273895 0.273895 0.273895 0.282990 0.282990 0.282990 0.292114 0.292114 0.292114 0.301056 0.301056 0.301056 0.309601 0.309601 0.309601 0.318176 0.318176 0.318176 0.326599 0.326599 0.326599 0.334625 0.334625 0.334625 0.342682 0.342682 0.342682 0.350372 0.350372 0.350372 0.358154 0.358154 0.358154 0.365784 0.365784 0.365784 0.373077 0.373077 0.373077 0.380463 0.380463 0.380463 0.387695 0.387695 0.387695 0.394684 0.394684 0.394684 0.401764 0.401764 0.401764 0.146759 0.146759 0.146759 0.155396 0.155396 0.155396 0.164246 0.164246 0.164246 0.173828 0.173828 0.173828 0.183777 0.183777 0.183777 0.193695 0.193695 0.193695 0.204102 0.204102 0.204102 0.214508 0.214508 0.214508 0.224609 0.224609 0.224609 0.234833 0.234833 0.234833 0.244843 0.244843 0.244843 0.254456 0.254456 0.254456 0.264160 0.264160 0.264160 0.273407 0.273407 0.273407 0.282745 0.282745 0.282745 0.291870 0.291870 0.291870 0.300598 0.300598 0.300598 0.309357 0.309357 0.309357 0.317932 0.317932 0.317932 0.326172 0.326172 0.326172 0.334412 0.334412 0.334412 0.342468 0.342468 0.342468 0.350189 0.350189 0.350189 0.357971 0.357971 0.357971 0.365417 0.365417 0.365417 0.372894 0.372894 0.372894 0.380280 0.380280 0.380280 0.387360 0.387360 0.387360 0.394501 0.394501 0.394501 0.401550 0.401550 0.401550 0.408386 0.408386 0.408386 0.415283 0.415283 0.415283 0.164001 0.164001 0.164001 0.173584 0.173584 0.173584 0.183289 0.183289 0.183289 0.193451 0.193451 0.193451 0.203827 0.203827 0.203827 0.213989 0.213989 0.213989 0.224335 0.224335 0.224335 0.234558 0.234558 0.234558 0.244354 0.244354 0.244354 0.254211 0.254211 0.254211 0.263672 0.263672 0.263672 0.273193 0.273193 0.273193 0.282501 0.282501 0.282501 0.291412 0.291412 0.291412 0.300385 0.300385 0.300385 0.309143 0.309143 0.309143 0.317535 0.317535 0.317535 0.325958 0.325958 0.325958 0.334167 0.334167 0.334167 0.342072 0.342072 0.342072 0.349976 0.349976 0.349976 0.357574 0.357574 0.357574 0.365204 0.365204 0.365204 0.372711 0.372711 0.372711 0.379883 0.379883 0.379883 0.387177 0.387177 0.387177 0.394318 0.394318 0.394318 0.401215 0.401215 0.401215 0.408203 0.408203 0.408203 0.415100 0.415100 0.415100 0.421753 0.421753 0.421753 0.428589 0.428589 0.428589 0.182983 0.182983 0.182983 0.193207 0.193207 0.193207 0.203308 0.203308 0.203308 0.213745 0.213745 0.213745 0.224091 0.224091 0.224091 0.234070 0.234070 0.234070 0.244110 0.244110 0.244110 0.253967 0.253967 0.253967 0.263428 0.263428 0.263428 0.272949 0.272949 0.272949 0.282043 0.282043 0.282043 0.291199 0.291199 0.291199 0.300140 0.300140 0.300140 0.308716 0.308716 0.308716 0.317291 0.317291 0.317291 0.325745 0.325745 0.325745 0.333801 0.333801 0.333801 0.341858 0.341858 0.341858 0.349823 0.349823 0.349823 0.357391 0.357391 0.357391 0.365051 0.365051 0.365051 0.372314 0.372314 0.372314 0.379700 0.379700 0.379700 0.386993 0.386993 0.386993 0.393982 0.393982 0.393982 0.401031 0.401031 0.401031 0.408020 0.408020 0.408020 0.414764 0.414764 0.414764 0.421631 0.421631 0.421631 0.428406 0.428406 0.428406 0.435028 0.435028 0.435028 0.441772 0.441772 0.441772 0.203033 0.203033 0.203033 0.213470 0.213470 0.213470 0.223572 0.223572 0.223572 0.233826 0.233826 0.233826 0.243866 0.243866 0.243866 0.253479 0.253479 0.253479 0.263184 0.263184 0.263184 0.272491 0.272491 0.272491 0.281830 0.281830 0.281830 0.290985 0.290985 0.290985 0.299713 0.299713 0.299713 0.308502 0.308502 0.308502 0.317108 0.317108 0.317108 0.325317 0.325317 0.325317 0.333588 0.333588 0.333588 0.341675 0.341675 0.341675 0.349396 0.349396 0.349396 0.357208 0.357208 0.357208 0.364838 0.364838 0.364838 0.372192 0.372192 0.372192 0.379547 0.379547 0.379547 0.386597 0.386597 0.386597 0.393768 0.393768 0.393768 0.400848 0.400848 0.400848 0.407684 0.407684 0.407684 0.414612 0.414612 0.414612 0.421448 0.421448 0.421448 0.428101 0.428101 0.428101 0.434875 0.434875 0.434875 0.441437 0.441437 0.441437 0.448212 0.448212 0.448212 0.454956 0.454956 0.454956 0.223328 0.223328 0.223328 0.233551 0.233551 0.233551 0.243378 0.243378 0.243378 0.253265 0.253265 0.253265 0.262970 0.262970 0.262970 0.272247 0.272247 0.272247 0.281586 0.281586 0.281586 0.290527 0.290527 0.290527 0.299500 0.299500 0.299500 0.308289 0.308289 0.308289 0.316681 0.316681 0.316681 0.325104 0.325104 0.325104 0.333374 0.333374 0.333374 0.341278 0.341278 0.341278 0.349213 0.349213 0.349213 0.356995 0.356995 0.356995 0.364471 0.364471 0.364471 0.371979 0.371979 0.371979 0.379181 0.379181 0.379181 0.386444 0.386444 0.386444 0.393616 0.393616 0.393616 0.400482 0.400482 0.400482 0.407501 0.407501 0.407501 0.414429 0.414429 0.414429 0.421112 0.421112 0.421112 0.427887 0.427887 0.427887 0.434692 0.434692 0.434692 0.441284 0.441284 0.441284 0.448029 0.448029 0.448029 0.454590 0.454590 0.454590 0.461365 0.461365 0.461365 0.468140 0.468140 0.468140 0.243103 0.243103 0.243103 0.253021 0.253021 0.253021 0.262482 0.262482 0.262482 0.272003 0.272003 0.272003 0.281097 0.281097 0.281097 0.290283 0.290283 0.290283 0.299255 0.299255 0.299255 0.307861 0.307861 0.307861 0.316467 0.316467 0.316467 0.324890 0.324890 0.324890 0.332977 0.332977 0.332977 0.341064 0.341064 0.341064 0.349030 0.349030 0.349030 0.356598 0.356598 0.356598 0.364258 0.364258 0.364258 0.371613 0.371613 0.371613 0.378967 0.378967 0.378967 0.386261 0.386261 0.386261 0.393250 0.393250 0.393250 0.400360 0.400360 0.400360 0.407318 0.407318 0.407318 0.414062 0.414062 0.414062 0.420929 0.420929 0.420929 0.427734 0.427734 0.427734 0.434357 0.434357 0.434357 0.441101 0.441101 0.441101 0.447845 0.447845 0.447845 0.454437 0.454437 0.454437 0.461212 0.461212 0.461212 0.467834 0.467834 0.467834 0.474640 0.474640 0.474640 0.481506 0.481506 0.481506 0.262238 0.262238 0.262238 0.271759 0.271759 0.271759 0.280884 0.280884 0.280884 0.290039 0.290039 0.290039 0.298828 0.298828 0.298828 0.307617 0.307617 0.307617 0.316254 0.316254 0.316254 0.324493 0.324493 0.324493 0.332764 0.332764 0.332764 0.340881 0.340881 0.340881 0.348633 0.348633 0.348633 0.356445 0.356445 0.356445 0.364105 0.364105 0.364105 0.371399 0.371399 0.371399 0.378815 0.378815 0.378815 0.385925 0.385925 0.385925 0.393097 0.393097 0.393097 0.400146 0.400146 0.400146 0.406982 0.406982 0.406982 0.413879 0.413879 0.413879 0.420776 0.420776 0.420776 0.427399 0.427399 0.427399 0.434204 0.434204 0.434204 0.440948 0.440948 0.440948 0.447510 0.447510 0.447510 0.454254 0.454254 0.454254 0.460846 0.460846 0.460846 0.467651 0.467651 0.467651 0.474457 0.474457 0.474457 0.481201 0.481201 0.481201 0.488098 0.488098 0.488098 0.495087 0.495087 0.495087 0.280670 0.280670 0.280670 0.289612 0.289612 0.289612 0.298584 0.298584 0.298584 0.307434 0.307434 0.307434 0.315826 0.315826 0.315826 0.324280 0.324280 0.324280 0.332581 0.332581 0.332581 0.340485 0.340485 0.340485 0.348419 0.348419 0.348419 0.356232 0.356232 0.356232 0.363708 0.363708 0.363708 0.371246 0.371246 0.371246 0.378448 0.378448 0.378448 0.385742 0.385742 0.385742 0.392883 0.392883 0.392883 0.399811 0.399811 0.399811 0.406799 0.406799 0.406799 0.413727 0.413727 0.413727 0.420410 0.420410 0.420410 0.427246 0.427246 0.427246 0.433990 0.433990 0.433990 0.440582 0.440582 0.440582 0.447357 0.447357 0.447357 0.454102 0.454102 0.454102 0.460693 0.460693 0.460693 0.467468 0.467468 0.467468 0.474121 0.474121 0.474121 0.481018 0.481018 0.481018 0.487915 0.487915 0.487915 0.494781 0.494781 0.494781 0.501862 0.501862 0.501862 0.509003 0.509003 0.509003 0.298370 0.298370 0.298370 0.306976 0.306976 0.306976 0.315613 0.315613 0.315613 0.324066 0.324066 0.324066 0.332153 0.332153 0.332153 0.340271 0.340271 0.340271 0.348236 0.348236 0.348236 0.355835 0.355835 0.355835 0.363495 0.363495 0.363495 0.371033 0.371033 0.371033 0.378265 0.378265 0.378265 0.385559 0.385559 0.385559 0.392548 0.392548 0.392548 0.399628 0.399628 0.399628 0.406616 0.406616 0.406616 0.413361 0.413361 0.413361 0.420227 0.420227 0.420227 0.427063 0.427063 0.427063 0.433685 0.433685 0.433685 0.440430 0.440430 0.440430 0.447205 0.447205 0.447205 0.453766 0.453766 0.453766 0.460541 0.460541 0.460541 0.467133 0.467133 0.467133 0.473938 0.473938 0.473938 0.480835 0.480835 0.480835 0.487579 0.487579 0.487579 0.494568 0.494568 0.494568 0.501678 0.501678 0.501678 0.508636 0.508636 0.508636 0.515900 0.515900 0.515900 0.523285 0.523285 0.523285 0.315399 0.315399 0.315399 0.323639 0.323639 0.323639 0.331940 0.331940 0.331940 0.340088 0.340088 0.340088 0.347870 0.347870 0.347870 0.355682 0.355682 0.355682 0.363312 0.363312 0.363312 0.370667 0.370667 0.370667 0.378082 0.378082 0.378082 0.385376 0.385376 0.385376 0.392365 0.392365 0.392365 0.399445 0.399445 0.399445 0.406281 0.406281 0.406281 0.413208 0.413208 0.413208 0.420074 0.420074 0.420074 0.426727 0.426727 0.426727 0.433502 0.433502 0.433502 0.440277 0.440277 0.440277 0.446838 0.446838 0.446838 0.453613 0.453613 0.453613 0.460358 0.460358 0.460358 0.466949 0.466949 0.466949 0.473785 0.473785 0.473785 0.480499 0.480499 0.480499 0.487427 0.487427 0.487427 0.494415 0.494415 0.494415 0.501312 0.501312 0.501312 0.508453 0.508453 0.508453 0.515747 0.515747 0.515747 0.522888 0.522888 0.522888 0.530396 0.530396 0.530396 0.537964 0.537964 0.537964 0.331757 0.331757 0.331757 0.339691 0.339691 0.339691 0.347656 0.347656 0.347656 0.355469 0.355469 0.355469 0.362946 0.362946 0.362946 0.370514 0.370514 0.370514 0.377899 0.377899 0.377899 0.385010 0.385010 0.385010 0.392181 0.392181 0.392181 0.399292 0.399292 0.399292 0.406097 0.406097 0.406097 0.413055 0.413055 0.413055 0.419708 0.419708 0.419708 0.426544 0.426544 0.426544 0.433319 0.433319 0.433319 0.439941 0.439941 0.439941 0.446686 0.446686 0.446686 0.453430 0.453430 0.453430 0.460022 0.460022 0.460022 0.466797 0.466797 0.466797 0.473633 0.473633 0.473633 0.480316 0.480316 0.480316 0.487244 0.487244 0.487244 0.494049 0.494049 0.494049 0.501129 0.501129 0.501129 0.508301 0.508301 0.508301 0.515381 0.515381 0.515381 0.522736 0.522736 0.522736 0.530212 0.530212 0.530212 0.537598 0.537598 0.537598 0.545319 0.545319 0.545319 0.553162 0.553162 0.553162 0.347443 0.347443 0.347443 0.355072 0.355072 0.355072 0.362762 0.362762 0.362762 0.370300 0.370300 0.370300 0.377502 0.377502 0.377502 0.384827 0.384827 0.384827 0.392029 0.392029 0.392029 0.398926 0.398926 0.398926 0.405914 0.405914 0.405914 0.412689 0.412689 0.412689 0.419556 0.419556 0.419556 0.426392 0.426392 0.426392 0.432983 0.432983 0.432983 0.439758 0.439758 0.439758 0.446503 0.446503 0.446503 0.453064 0.453064 0.453064 0.459869 0.459869 0.459869 0.466614 0.466614 0.466614 0.473297 0.473297 0.473297 0.480164 0.480164 0.480164 0.487061 0.487061 0.487061 0.493896 0.493896 0.493896 0.500946 0.500946 0.500946 0.507935 0.507935 0.507935 0.515198 0.515198 0.515198 0.522552 0.522552 0.522552 0.529816 0.529816 0.529816 0.537415 0.537415 0.537415 0.545135 0.545135 0.545135 0.552734 0.552734 0.552734 0.560760 0.560760 0.560760 0.568817 0.568817 0.568817 0.362579 0.362579 0.362579 0.369904 0.369904 0.369904 0.377350 0.377350 0.377350 0.384644 0.384644 0.384644 0.391663 0.391663 0.391663 0.398773 0.398773 0.398773 0.405762 0.405762 0.405762 0.412537 0.412537 0.412537 0.419403 0.419403 0.419403 0.426056 0.426056 0.426056 0.432831 0.432831 0.432831 0.439606 0.439606 0.439606 0.446167 0.446167 0.446167 0.452911 0.452911 0.452911 0.459656 0.459656 0.459656 0.466278 0.466278 0.466278 0.473114 0.473114 0.473114 0.479950 0.479950 0.479950 0.486694 0.486694 0.486694 0.493683 0.493683 0.493683 0.500610 0.500610 0.500610 0.507751 0.507751 0.507751 0.514984 0.514984 0.514984 0.522186 0.522186 0.522186 0.529633 0.529633 0.529633 0.537201 0.537201 0.537201 0.544739 0.544739 0.544739 0.552582 0.552582 0.552582 0.560516 0.560516 0.560516 0.568451 0.568451 0.568451 0.576691 0.576691 0.576691 0.584839 0.584839 0.584839 0.377136 0.377136 0.377136 0.384277 0.384277 0.384277 0.391449 0.391449 0.391449 0.398590 0.398590 0.398590 0.405426 0.405426 0.405426 0.412354 0.412354 0.412354 0.419037 0.419037 0.419037 0.425873 0.425873 0.425873 0.432648 0.432648 0.432648 0.439270 0.439270 0.439270 0.446014 0.446014 0.446014 0.452728 0.452728 0.452728 0.459320 0.459320 0.459320 0.466125 0.466125 0.466125 0.472931 0.472931 0.472931 0.479614 0.479614 0.479614 0.486542 0.486542 0.486542 0.493530 0.493530 0.493530 0.500427 0.500427 0.500427 0.507568 0.507568 0.507568 0.514618 0.514618 0.514618 0.521973 0.521973 0.521973 0.529449 0.529449 0.529449 0.536835 0.536835 0.536835 0.544525 0.544525 0.544525 0.552368 0.552368 0.552368 0.560120 0.560120 0.560120 0.568237 0.568237 0.568237 0.576477 0.576477 0.576477 0.584656 0.584656 0.584656 0.593079 0.593079 0.593079 0.601440 0.601440 0.601440 0.391296 0.391296 0.391296 0.398224 0.398224 0.398224 0.405243 0.405243 0.405243 0.412170 0.412170 0.412170 0.418884 0.418884 0.418884 0.425690 0.425690 0.425690 0.432312 0.432312 0.432312 0.439087 0.439087 0.439087 0.445831 0.445831 0.445831 0.452393 0.452393 0.452393 0.459167 0.459167 0.459167 0.465942 0.465942 0.465942 0.472595 0.472595 0.472595 0.479462 0.479462 0.479462 0.486359 0.486359 0.486359 0.493195 0.493195 0.493195 0.500244 0.500244 0.500244 0.507202 0.507202 0.507202 0.514465 0.514465 0.514465 0.521820 0.521820 0.521820 0.529083 0.529083 0.529083 0.536621 0.536621 0.536621 0.544342 0.544342 0.544342 0.551971 0.551971 0.551971 0.559937 0.559937 0.559937 0.568024 0.568024 0.568024 0.576080 0.576080 0.576080 0.584412 0.584412 0.584412 0.592682 0.592682 0.592682 0.601257 0.601257 0.601257 0.609894 0.609894 0.609894 0.618378 0.618378 0.618378 0.405060 0.405060 0.405060 0.411804 0.411804 0.411804 0.418732 0.418732 0.418732 0.425385 0.425385 0.425385 0.432159 0.432159 0.432159 0.438904 0.438904 0.438904 0.445496 0.445496 0.445496 0.452271 0.452271 0.452271 0.459015 0.459015 0.459015 0.465607 0.465607 0.465607 0.472412 0.472412 0.472412 0.479279 0.479279 0.479279 0.486023 0.486023 0.486023 0.493011 0.493011 0.493011 0.499878 0.499878 0.499878 0.507050 0.507050 0.507050 0.514282 0.514282 0.514282 0.521423 0.521423 0.521423 0.528870 0.528870 0.528870 0.536438 0.536438 0.536438 0.543945 0.543945 0.543945 0.551788 0.551788 0.551788 0.559753 0.559753 0.559753 0.567627 0.567627 0.567627 0.575867 0.575867 0.575867 0.584198 0.584198 0.584198 0.592438 0.592438 0.592438 0.601013 0.601013 0.601013 0.609467 0.609467 0.609467 0.618134 0.618134 0.618134 0.626862 0.626862 0.626862 0.635406 0.635406 0.635406 0.418549 0.418549 0.418549 0.425171 0.425171 0.425171 0.431976 0.431976 0.431976 0.438568 0.438568 0.438568 0.445343 0.445343 0.445343 0.452087 0.452087 0.452087 0.458649 0.458649 0.458649 0.465454 0.465454 0.465454 0.472260 0.472260 0.472260 0.478943 0.478943 0.478943 0.485870 0.485870 0.485870 0.492828 0.492828 0.492828 0.499695 0.499695 0.499695 0.506836 0.506836 0.506836 0.513885 0.513885 0.513885 0.521240 0.521240 0.521240 0.528687 0.528687 0.528687 0.536072 0.536072 0.536072 0.543762 0.543762 0.543762 0.551575 0.551575 0.551575 0.559326 0.559326 0.559326 0.567383 0.567383 0.567383 0.575653 0.575653 0.575653 0.583771 0.583771 0.583771 0.592255 0.592255 0.592255 0.600616 0.600616 0.600616 0.609253 0.609253 0.609253 0.617950 0.617950 0.617950 0.626465 0.626465 0.626465 0.635193 0.635193 0.635193 0.643982 0.643982 0.643982 0.652466 0.652466 0.652466 0.431641 0.431641 0.431641 0.438385 0.438385 0.438385 0.445160 0.445160 0.445160 0.451752 0.451752 0.451752 0.458496 0.458496 0.458496 0.465271 0.465271 0.465271 0.471893 0.471893 0.471893 0.478760 0.478760 0.478760 0.485687 0.485687 0.485687 0.492493 0.492493 0.492493 0.499512 0.499512 0.499512 0.506500 0.506500 0.506500 0.513702 0.513702 0.513702 0.521057 0.521057 0.521057 0.528320 0.528320 0.528320 0.535858 0.535858 0.535858 0.543579 0.543579 0.543579 0.551178 0.551178 0.551178 0.559113 0.559113 0.559113 0.567200 0.567200 0.567200 0.575195 0.575195 0.575195 0.583557 0.583557 0.583557 0.592041 0.592041 0.592041 0.600372 0.600372 0.600372 0.609009 0.609009 0.609009 0.617493 0.617493 0.617493 0.626221 0.626221 0.626221 0.635010 0.635010 0.635010 0.643524 0.643524 0.643524 0.652252 0.652252 0.652252 0.660980 0.660980 0.660980 0.669403 0.669403 0.669403 0.444824 0.444824 0.444824 0.451569 0.451569 0.451569 0.458313 0.458313 0.458313 0.464935 0.464935 0.464935 0.471741 0.471741 0.471741 0.478607 0.478607 0.478607 0.485321 0.485321 0.485321 0.492310 0.492310 0.492310 0.499329 0.499329 0.499329 0.506317 0.506317 0.506317 0.513519 0.513519 0.513519 0.520660 0.520660 0.520660 0.528137 0.528137 0.528137 0.535706 0.535706 0.535706 0.543182 0.543182 0.543182 0.550995 0.550995 0.550995 0.558929 0.558929 0.558929 0.566803 0.566803 0.566803 0.575012 0.575012 0.575012 0.583374 0.583374 0.583374 0.591614 0.591614 0.591614 0.600159 0.600159 0.600159 0.608582 0.608582 0.608582 0.617279 0.617279 0.617279 0.626038 0.626038 0.626038 0.634521 0.634521 0.634521 0.643311 0.643311 0.643311 0.652039 0.652039 0.652039 0.660522 0.660522 0.660522 0.669159 0.669159 0.669159 0.677734 0.677734 0.677734 0.686035 0.686035 0.686035 0.457977 0.457977 0.457977 0.464752 0.464752 0.464752 0.471588 0.471588 0.471588 0.478241 0.478241 0.478241 0.485138 0.485138 0.485138 0.492126 0.492126 0.492126 0.498993 0.498993 0.498993 0.506134 0.506134 0.506134 0.513184 0.513184 0.513184 0.520508 0.520508 0.520508 0.527954 0.527954 0.527954 0.535339 0.535339 0.535339 0.542999 0.542999 0.542999 0.550781 0.550781 0.550781 0.558563 0.558563 0.558563 0.566589 0.566589 0.566589 0.574799 0.574799 0.574799 0.582947 0.582947 0.582947 0.591400 0.591400 0.591400 0.599945 0.599945 0.599945 0.608368 0.608368 0.608368 0.617065 0.617065 0.617065 0.625580 0.625580 0.625580 0.634308 0.634308 0.634308 0.643066 0.643066 0.643066 0.651611 0.651611 0.651611 0.660309 0.660309 0.660309 0.668945 0.668945 0.668945 0.677338 0.677338 0.677338 0.685822 0.685822 0.685822 0.694244 0.694244 0.694244 0.702362 0.702362 0.702362 0.471222 0.471222 0.471222 0.478088 0.478088 0.478088 0.484985 0.484985 0.484985 0.491760 0.491760 0.491760 0.498840 0.498840 0.498840 0.505951 0.505951 0.505951 0.513000 0.513000 0.513000 0.520325 0.520325 0.520325 0.527557 0.527557 0.527557 0.535126 0.535126 0.535126 0.542786 0.542786 0.542786 0.550385 0.550385 0.550385 0.558319 0.558319 0.558319 0.566376 0.566376 0.566376 0.574402 0.574402 0.574402 0.582703 0.582703 0.582703 0.591187 0.591187 0.591187 0.599518 0.599518 0.599518 0.608154 0.608154 0.608154 0.616638 0.616638 0.616638 0.625336 0.625336 0.625336 0.634125 0.634125 0.634125 0.642670 0.642670 0.642670 0.651367 0.651367 0.651367 0.660095 0.660095 0.660095 0.668518 0.668518 0.668518 0.677094 0.677094 0.677094 0.685638 0.685638 0.685638 0.693817 0.693817 0.693817 0.702118 0.702118 0.702118 0.710114 0.710114 0.710114 0.718140 0.718140 0.718140 0.484650 0.484650 0.484650 0.491608 0.491608 0.491608 0.498627 0.498627 0.498627 0.505615 0.505615 0.505615 0.512817 0.512817 0.512817 0.520142 0.520142 0.520142 0.527374 0.527374 0.527374 0.534943 0.534943 0.534943 0.542389 0.542389 0.542389 0.550201 0.550201 0.550201 0.558136 0.558136 0.558136 0.565979 0.565979 0.565979 0.574188 0.574188 0.574188 0.582520 0.582520 0.582520 0.590759 0.590759 0.590759 0.599304 0.599304 0.599304 0.607941 0.607941 0.607941 0.616394 0.616394 0.616394 0.625153 0.625153 0.625153 0.633667 0.633667 0.633667 0.642426 0.642426 0.642426 0.651154 0.651154 0.651154 0.659637 0.659637 0.659637 0.668304 0.668304 0.668304 0.676880 0.676880 0.676880 0.685211 0.685211 0.685211 0.693634 0.693634 0.693634 0.701904 0.701904 0.701904 0.709900 0.709900 0.709900 0.717957 0.717957 0.717957 0.725677 0.725677 0.725677 0.733398 0.733398 0.733398 0.498291 0.498291 0.498291 0.505432 0.505432 0.505432 0.512634 0.512634 0.512634 0.519775 0.519775 0.519775 0.527191 0.527191 0.527191 0.534546 0.534546 0.534546 0.542206 0.542206 0.542206 0.550018 0.550018 0.550018 0.557709 0.557709 0.557709 0.565765 0.565765 0.565765 0.573975 0.573975 0.573975 0.582092 0.582092 0.582092 0.590546 0.590546 0.590546 0.599091 0.599091 0.599091 0.607513 0.607513 0.607513 0.616211 0.616211 0.616211 0.624695 0.624695 0.624695 0.633453 0.633453 0.633453 0.642181 0.642181 0.642181 0.650726 0.650726 0.650726 0.659424 0.659424 0.659424 0.668091 0.668091 0.668091 0.676483 0.676483 0.676483 0.684998 0.684998 0.684998 0.693420 0.693420 0.693420 0.701508 0.701508 0.701508 0.709686 0.709686 0.709686 0.717560 0.717560 0.717560 0.725464 0.725464 0.725464 0.733215 0.733215 0.733215 0.740570 0.740570 0.740570 0.747955 0.747955 0.747955 0.512268 0.512268 0.512268 0.519592 0.519592 0.519592 0.527008 0.527008 0.527008 0.534363 0.534363 0.534363 0.542023 0.542023 0.542023 0.549622 0.549622 0.549622 0.557526 0.557526 0.557526 0.565582 0.565582 0.565582 0.573578 0.573578 0.573578 0.581909 0.581909 0.581909 0.590332 0.590332 0.590332 0.598663 0.598663 0.598663 0.607269 0.607269 0.607269 0.615967 0.615967 0.615967 0.624481 0.624481 0.624481 0.633240 0.633240 0.633240 0.641785 0.641785 0.641785 0.650513 0.650513 0.650513 0.659210 0.659210 0.659210 0.667664 0.667664 0.667664 0.676300 0.676300 0.676300 0.684753 0.684753 0.684753 0.693024 0.693024 0.693024 0.701324 0.701324 0.701324 0.709503 0.709503 0.709503 0.717377 0.717377 0.717377 0.725250 0.725250 0.725250 0.732819 0.732819 0.732819 0.740387 0.740387 0.740387 0.747742 0.747742 0.747742 0.754791 0.754791 0.754791 0.761749 0.761749 0.761749 0.526642 0.526642 0.526642 0.534180 0.534180 0.534180 0.541656 0.541656 0.541656 0.549408 0.549408 0.549408 0.557343 0.557343 0.557343 0.565186 0.565186 0.565186 0.573364 0.573364 0.573364 0.581696 0.581696 0.581696 0.589905 0.589905 0.589905 0.598450 0.598450 0.598450 0.607056 0.607056 0.607056 0.615540 0.615540 0.615540 0.624237 0.624237 0.624237 0.632812 0.632812 0.632812 0.641541 0.641541 0.641541 0.650299 0.650299 0.650299 0.658783 0.658783 0.658783 0.667450 0.667450 0.667450 0.676025 0.676025 0.676025 0.684357 0.684357 0.684357 0.692810 0.692810 0.692810 0.701111 0.701111 0.701111 0.709076 0.709076 0.709076 0.717163 0.717163 0.717163 0.724854 0.724854 0.724854 0.732605 0.732605 0.732605 0.740173 0.740173 0.740173 0.747406 0.747406 0.747406 0.754608 0.754608 0.754608 0.761566 0.761566 0.761566 0.768188 0.768188 0.768188 0.774719 0.774719 0.774719 0.067535 0.067535 0.067535 0.071869 0.071869 0.071869 0.076263 0.076263 0.076263 0.080963 0.080963 0.080963 0.085968 0.085968 0.085968 0.091034 0.091034 0.091034 0.096527 0.096527 0.096527 0.102112 0.102112 0.102112 0.108185 0.108185 0.108185 0.114532 0.114532 0.114532 0.121094 0.121094 0.121094 0.128204 0.128204 0.128204 0.135712 0.135712 0.135712 0.143463 0.143463 0.143463 0.151886 0.151886 0.151886 0.160767 0.160767 0.160767 0.169952 0.169952 0.169952 0.179749 0.179749 0.179749 0.189606 0.189606 0.189606 0.199921 0.199921 0.199921 0.210327 0.210327 0.210327 0.220459 0.220459 0.220459 0.230774 0.230774 0.230774 0.240875 0.240875 0.240875 0.250549 0.250549 0.250549 0.260315 0.260315 0.260315 0.269867 0.269867 0.269867 0.279053 0.279053 0.279053 0.288239 0.288239 0.288239 0.297028 0.297028 0.297028 0.305878 0.305878 0.305878 0.314545 0.314545 0.314545 0.076172 0.076172 0.076172 0.080872 0.080872 0.080872 0.085724 0.085724 0.085724 0.090912 0.090912 0.090912 0.096222 0.096222 0.096222 0.101990 0.101990 0.101990 0.108002 0.108002 0.108002 0.114227 0.114227 0.114227 0.120941 0.120941 0.120941 0.128021 0.128021 0.128021 0.135315 0.135315 0.135315 0.143250 0.143250 0.143250 0.151642 0.151642 0.151642 0.160339 0.160339 0.160339 0.169708 0.169708 0.169708 0.179260 0.179260 0.179260 0.189301 0.189301 0.189301 0.199677 0.199677 0.199677 0.209808 0.209808 0.209808 0.220215 0.220215 0.220215 0.230530 0.230530 0.230530 0.240356 0.240356 0.240356 0.250305 0.250305 0.250305 0.260040 0.260040 0.260040 0.269379 0.269379 0.269379 0.278809 0.278809 0.278809 0.288025 0.288025 0.288025 0.296783 0.296783 0.296783 0.305664 0.305664 0.305664 0.314117 0.314117 0.314117 0.322601 0.322601 0.322601 0.330902 0.330902 0.330902 0.085602 0.085602 0.085602 0.090790 0.090790 0.090790 0.096100 0.096100 0.096100 0.101837 0.101837 0.101837 0.107727 0.107727 0.107727 0.114044 0.114044 0.114044 0.120758 0.120758 0.120758 0.127686 0.127686 0.127686 0.135162 0.135162 0.135162 0.143066 0.143066 0.143066 0.151215 0.151215 0.151215 0.160095 0.160095 0.160095 0.169464 0.169464 0.169464 0.179016 0.179016 0.179016 0.189056 0.189056 0.189056 0.199158 0.199158 0.199158 0.209564 0.209564 0.209564 0.219940 0.219940 0.219940 0.230011 0.230011 0.230011 0.240112 0.240112 0.240112 0.250031 0.250031 0.250031 0.259583 0.259583 0.259583 0.269135 0.269135 0.269135 0.278564 0.278564 0.278564 0.287567 0.287567 0.287567 0.296600 0.296600 0.296600 0.305206 0.305206 0.305206 0.313904 0.313904 0.313904 0.322388 0.322388 0.322388 0.330505 0.330505 0.330505 0.338684 0.338684 0.338684 0.346649 0.346649 0.346649 0.095978 0.095978 0.095978 0.101501 0.101501 0.101501 0.107544 0.107544 0.107544 0.113892 0.113892 0.113892 0.120422 0.120422 0.120422 0.127502 0.127502 0.127502 0.134949 0.134949 0.134949 0.142639 0.142639 0.142639 0.151001 0.151001 0.151001 0.159882 0.159882 0.159882 0.169006 0.169006 0.169006 0.178772 0.178772 0.178772 0.188568 0.188568 0.188568 0.198914 0.198914 0.198914 0.209290 0.209290 0.209290 0.219452 0.219452 0.219452 0.229736 0.229736 0.229736 0.239868 0.239868 0.239868 0.249542 0.249542 0.249542 0.259338 0.259338 0.259338 0.268921 0.268921 0.268921 0.278107 0.278107 0.278107 0.287323 0.287323 0.287323 0.296387 0.296387 0.296387 0.304993 0.304993 0.304993 0.313690 0.313690 0.313690 0.321960 0.321960 0.321960 0.330322 0.330322 0.330322 0.338470 0.338470 0.338470 0.346252 0.346252 0.346252 0.354095 0.354095 0.354095 0.361816 0.361816 0.361816 0.107391 0.107391 0.107391 0.113586 0.113586 0.113586 0.120239 0.120239 0.120239 0.127289 0.127289 0.127289 0.134583 0.134583 0.134583 0.142426 0.142426 0.142426 0.150787 0.150787 0.150787 0.159454 0.159454 0.159454 0.168762 0.168762 0.168762 0.178528 0.178528 0.178528 0.188324 0.188324 0.188324 0.198639 0.198639 0.198639 0.208771 0.208771 0.208771 0.219177 0.219177 0.219177 0.229462 0.229462 0.229462 0.239349 0.239349 0.239349 0.249329 0.249329 0.249329 0.259094 0.259094 0.259094 0.268463 0.268463 0.268463 0.277863 0.277863 0.277863 0.287109 0.287109 0.287109 0.295898 0.295898 0.295898 0.304810 0.304810 0.304810 0.313263 0.313263 0.313263 0.321747 0.321747 0.321747 0.330109 0.330109 0.330109 0.338043 0.338043 0.338043 0.346069 0.346069 0.346069 0.353912 0.353912 0.353912 0.361420 0.361420 0.361420 0.368988 0.368988 0.368988 0.376434 0.376434 0.376434 0.120056 0.120056 0.120056 0.126923 0.126923 0.126923 0.134369 0.134369 0.134369 0.142242 0.142242 0.142242 0.150360 0.150360 0.150360 0.159180 0.159180 0.159180 0.168518 0.168518 0.168518 0.178009 0.178009 0.178009 0.188080 0.188080 0.188080 0.198120 0.198120 0.198120 0.208527 0.208527 0.208527 0.218933 0.218933 0.218933 0.228973 0.228973 0.228973 0.239136 0.239136 0.239136 0.249084 0.249084 0.249084 0.258606 0.258606 0.258606 0.268219 0.268219 0.268219 0.277618 0.277618 0.277618 0.286652 0.286652 0.286652 0.295715 0.295715 0.295715 0.304565 0.304565 0.304565 0.313049 0.313049 0.313049 0.321564 0.321564 0.321564 0.329712 0.329712 0.329712 0.337860 0.337860 0.337860 0.345886 0.345886 0.345886 0.353516 0.353516 0.353516 0.361267 0.361267 0.361267 0.368805 0.368805 0.368805 0.376068 0.376068 0.376068 0.383362 0.383362 0.383362 0.390594 0.390594 0.390594 0.134186 0.134186 0.134186 0.141846 0.141846 0.141846 0.150146 0.150146 0.150146 0.158966 0.158966 0.158966 0.168060 0.168060 0.168060 0.177734 0.177734 0.177734 0.187805 0.187805 0.187805 0.197845 0.197845 0.197845 0.208252 0.208252 0.208252 0.218414 0.218414 0.218414 0.228699 0.228699 0.228699 0.238892 0.238892 0.238892 0.248596 0.248596 0.248596 0.258362 0.258362 0.258362 0.267975 0.267975 0.267975 0.277161 0.277161 0.277161 0.286407 0.286407 0.286407 0.295471 0.295471 0.295471 0.304138 0.304138 0.304138 0.312836 0.312836 0.312836 0.321167 0.321167 0.321167 0.329468 0.329468 0.329468 0.337677 0.337677 0.337677 0.345459 0.345459 0.345459 0.353363 0.353363 0.353363 0.361053 0.361053 0.361053 0.368408 0.368408 0.368408 0.375854 0.375854 0.375854 0.383179 0.383179 0.383179 0.390228 0.390228 0.390228 0.397339 0.397339 0.397339 0.404175 0.404175 0.404175 0.149963 0.149963 0.149963 0.158508 0.158508 0.158508 0.167816 0.167816 0.167816 0.177490 0.177490 0.177490 0.187317 0.187317 0.187317 0.197601 0.197601 0.197601 0.207733 0.207733 0.207733 0.218140 0.218140 0.218140 0.228455 0.228455 0.228455 0.238373 0.238373 0.238373 0.248352 0.248352 0.248352 0.258118 0.258118 0.258118 0.267517 0.267517 0.267517 0.276917 0.276917 0.276917 0.286194 0.286194 0.286194 0.295013 0.295013 0.295013 0.303925 0.303925 0.303925 0.312622 0.312622 0.312622 0.320923 0.320923 0.320923 0.329285 0.329285 0.329285 0.337250 0.337250 0.337250 0.345306 0.345306 0.345306 0.353149 0.353149 0.353149 0.360657 0.360657 0.360657 0.368225 0.368225 0.368225 0.375702 0.375702 0.375702 0.382843 0.382843 0.382843 0.390045 0.390045 0.390045 0.397186 0.397186 0.397186 0.403992 0.403992 0.403992 0.410980 0.410980 0.410980 0.417664 0.417664 0.417664 0.167572 0.167572 0.167572 0.177032 0.177032 0.177032 0.187073 0.187073 0.187073 0.197357 0.197357 0.197357 0.207458 0.207458 0.207458 0.217896 0.217896 0.217896 0.227966 0.227966 0.227966 0.238098 0.238098 0.238098 0.248108 0.248108 0.248108 0.257629 0.257629 0.257629 0.267273 0.267273 0.267273 0.276703 0.276703 0.276703 0.285736 0.285736 0.285736 0.294830 0.294830 0.294830 0.303680 0.303680 0.303680 0.312195 0.312195 0.312195 0.320709 0.320709 0.320709 0.328827 0.328827 0.328827 0.337036 0.337036 0.337036 0.345062 0.345062 0.345062 0.352722 0.352722 0.352722 0.360474 0.360474 0.360474 0.368042 0.368042 0.368042 0.375336 0.375336 0.375336 0.382660 0.382660 0.382660 0.389862 0.389862 0.389862 0.396820 0.396820 0.396820 0.403839 0.403839 0.403839 0.410614 0.410614 0.410614 0.417480 0.417480 0.417480 0.424347 0.424347 0.424347 0.430969 0.430969 0.430969 0.186829 0.186829 0.186829 0.196808 0.196808 0.196808 0.207214 0.207214 0.207214 0.217621 0.217621 0.217621 0.227692 0.227692 0.227692 0.237854 0.237854 0.237854 0.247589 0.247589 0.247589 0.257385 0.257385 0.257385 0.267059 0.267059 0.267059 0.276245 0.276245 0.276245 0.285492 0.285492 0.285492 0.294586 0.294586 0.294586 0.303253 0.303253 0.303253 0.311981 0.311981 0.311981 0.320251 0.320251 0.320251 0.328674 0.328674 0.328674 0.336853 0.336853 0.336853 0.344666 0.344666 0.344666 0.352539 0.352539 0.352539 0.360260 0.360260 0.360260 0.367676 0.367676 0.367676 0.375122 0.375122 0.375122 0.382446 0.382446 0.382446 0.389526 0.389526 0.389526 0.396637 0.396637 0.396637 0.403656 0.403656 0.403656 0.410461 0.410461 0.410461 0.417328 0.417328 0.417328 0.424011 0.424011 0.424011 0.430817 0.430817 0.430817 0.437592 0.437592 0.437592 0.444153 0.444153 0.444153 0.206940 0.206940 0.206940 0.217102 0.217102 0.217102 0.227448 0.227448 0.227448 0.237335 0.237335 0.237335 0.247314 0.247314 0.247314 0.257172 0.257172 0.257172 0.266541 0.266541 0.266541 0.276001 0.276001 0.276001 0.285248 0.285248 0.285248 0.294128 0.294128 0.294128 0.303009 0.303009 0.303009 0.311737 0.311737 0.311737 0.320099 0.320099 0.320099 0.328461 0.328461 0.328461 0.336426 0.336426 0.336426 0.344482 0.344482 0.344482 0.352325 0.352325 0.352325 0.359894 0.359894 0.359894 0.367462 0.367462 0.367462 0.374969 0.374969 0.374969 0.382080 0.382080 0.382080 0.389313 0.389313 0.389313 0.396454 0.396454 0.396454 0.403320 0.403320 0.403320 0.410278 0.410278 0.410278 0.416962 0.416962 0.416962 0.423828 0.423828 0.423828 0.430603 0.430603 0.430603 0.437225 0.437225 0.437225 0.443970 0.443970 0.443970 0.450714 0.450714 0.450714 0.457306 0.457306 0.457306 0.227173 0.227173 0.227173 0.237091 0.237091 0.237091 0.247070 0.247070 0.247070 0.256653 0.256653 0.256653 0.266296 0.266296 0.266296 0.275757 0.275757 0.275757 0.284821 0.284821 0.284821 0.293915 0.293915 0.293915 0.302795 0.302795 0.302795 0.311310 0.311310 0.311310 0.319855 0.319855 0.319855 0.328247 0.328247 0.328247 0.336243 0.336243 0.336243 0.344269 0.344269 0.344269 0.351959 0.351959 0.351959 0.359711 0.359711 0.359711 0.367310 0.367310 0.367310 0.374573 0.374573 0.374573 0.381927 0.381927 0.381927 0.389160 0.389160 0.389160 0.396088 0.396088 0.396088 0.403168 0.403168 0.403168 0.410095 0.410095 0.410095 0.416840 0.416840 0.416840 0.423676 0.423676 0.423676 0.430298 0.430298 0.430298 0.437073 0.437073 0.437073 0.443817 0.443817 0.443817 0.450378 0.450378 0.450378 0.457123 0.457123 0.457123 0.463928 0.463928 0.463928 0.470551 0.470551 0.470551 0.246582 0.246582 0.246582 0.256409 0.256409 0.256409 0.266052 0.266052 0.266052 0.275299 0.275299 0.275299 0.284576 0.284576 0.284576 0.293671 0.293671 0.293671 0.302368 0.302368 0.302368 0.311066 0.311066 0.311066 0.319641 0.319641 0.319641 0.327789 0.327789 0.327789 0.336029 0.336029 0.336029 0.343872 0.343872 0.343872 0.351776 0.351776 0.351776 0.359497 0.359497 0.359497 0.366943 0.366943 0.366943 0.374390 0.374390 0.374390 0.381744 0.381744 0.381744 0.388794 0.388794 0.388794 0.395935 0.395935 0.395935 0.402954 0.402954 0.402954 0.409760 0.409760 0.409760 0.416656 0.416656 0.416656 0.423340 0.423340 0.423340 0.430115 0.430115 0.430115 0.436890 0.436890 0.436890 0.443451 0.443451 0.443451 0.450226 0.450226 0.450226 0.456970 0.456970 0.456970 0.463562 0.463562 0.463562 0.470367 0.470367 0.470367 0.477203 0.477203 0.477203 0.483948 0.483948 0.483948 0.265594 0.265594 0.265594 0.275085 0.275085 0.275085 0.284332 0.284332 0.284332 0.293213 0.293213 0.293213 0.302155 0.302155 0.302155 0.310913 0.310913 0.310913 0.319214 0.319214 0.319214 0.327637 0.327637 0.327637 0.335846 0.335846 0.335846 0.343689 0.343689 0.343689 0.351562 0.351562 0.351562 0.359131 0.359131 0.359131 0.366730 0.366730 0.366730 0.374207 0.374207 0.374207 0.381378 0.381378 0.381378 0.388611 0.388611 0.388611 0.395752 0.395752 0.395752 0.402618 0.402618 0.402618 0.409576 0.409576 0.409576 0.416473 0.416473 0.416473 0.423126 0.423126 0.423126 0.429932 0.429932 0.429932 0.436554 0.436554 0.436554 0.443298 0.443298 0.443298 0.450073 0.450073 0.450073 0.456635 0.456635 0.456635 0.463409 0.463409 0.463409 0.470184 0.470184 0.470184 0.476868 0.476868 0.476868 0.483734 0.483734 0.483734 0.490692 0.490692 0.490692 0.497589 0.497589 0.497589 0.283905 0.283905 0.283905 0.292999 0.292999 0.292999 0.301941 0.301941 0.301941 0.310455 0.310455 0.310455 0.319000 0.319000 0.319000 0.327393 0.327393 0.327393 0.335419 0.335419 0.335419 0.343506 0.343506 0.343506 0.351166 0.351166 0.351166 0.358948 0.358948 0.358948 0.366547 0.366547 0.366547 0.373840 0.373840 0.373840 0.381195 0.381195 0.381195 0.388428 0.388428 0.388428 0.395416 0.395416 0.395416 0.402435 0.402435 0.402435 0.409424 0.409424 0.409424 0.416138 0.416138 0.416138 0.422974 0.422974 0.422974 0.429596 0.429596 0.429596 0.436371 0.436371 0.436371 0.443146 0.443146 0.443146 0.449707 0.449707 0.449707 0.456451 0.456451 0.456451 0.463226 0.463226 0.463226 0.469879 0.469879 0.469879 0.476685 0.476685 0.476685 0.483612 0.483612 0.483612 0.490387 0.490387 0.490387 0.497406 0.497406 0.497406 0.504333 0.504333 0.504333 0.511536 0.511536 0.511536 0.301483 0.301483 0.301483 0.310242 0.310242 0.310242 0.318817 0.318817 0.318817 0.326996 0.326996 0.326996 0.335205 0.335205 0.335205 0.343262 0.343262 0.343262 0.350983 0.350983 0.350983 0.358734 0.358734 0.358734 0.366180 0.366180 0.366180 0.373657 0.373657 0.373657 0.381012 0.381012 0.381012 0.388062 0.388062 0.388062 0.395203 0.395203 0.395203 0.402252 0.402252 0.402252 0.409058 0.409058 0.409058 0.415955 0.415955 0.415955 0.422791 0.422791 0.422791 0.429443 0.429443 0.429443 0.436218 0.436218 0.436218 0.442780 0.442780 0.442780 0.449554 0.449554 0.449554 0.456299 0.456299 0.456299 0.462921 0.462921 0.462921 0.469696 0.469696 0.469696 0.476532 0.476532 0.476532 0.483246 0.483246 0.483246 0.490173 0.490173 0.490173 0.497223 0.497223 0.497223 0.504181 0.504181 0.504181 0.511353 0.511353 0.511353 0.518463 0.518463 0.518463 0.525879 0.525879 0.525879 0.318390 0.318390 0.318390 0.326782 0.326782 0.326782 0.335022 0.335022 0.335022 0.342865 0.342865 0.342865 0.350800 0.350800 0.350800 0.358551 0.358551 0.358551 0.365967 0.365967 0.365967 0.373474 0.373474 0.373474 0.380615 0.380615 0.380615 0.387878 0.387878 0.387878 0.395020 0.395020 0.395020 0.401917 0.401917 0.401917 0.408905 0.408905 0.408905 0.415802 0.415802 0.415802 0.422455 0.422455 0.422455 0.429260 0.429260 0.429260 0.436035 0.436035 0.436035 0.442627 0.442627 0.442627 0.449371 0.449371 0.449371 0.455963 0.455963 0.455963 0.462708 0.462708 0.462708 0.469543 0.469543 0.469543 0.476196 0.476196 0.476196 0.483063 0.483063 0.483063 0.490051 0.490051 0.490051 0.496887 0.496887 0.496887 0.503967 0.503967 0.503967 0.511200 0.511200 0.511200 0.518280 0.518280 0.518280 0.525696 0.525696 0.525696 0.533020 0.533020 0.533020 0.540680 0.540680 0.540680 0.334625 0.334625 0.334625 0.342682 0.342682 0.342682 0.350616 0.350616 0.350616 0.358154 0.358154 0.358154 0.365784 0.365784 0.365784 0.373291 0.373291 0.373291 0.380463 0.380463 0.380463 0.387695 0.387695 0.387695 0.394684 0.394684 0.394684 0.401764 0.401764 0.401764 0.408722 0.408722 0.408722 0.415436 0.415436 0.415436 0.422272 0.422272 0.422272 0.429108 0.429108 0.429108 0.435699 0.435699 0.435699 0.442444 0.442444 0.442444 0.449188 0.449188 0.449188 0.455780 0.455780 0.455780 0.462555 0.462555 0.462555 0.469177 0.469177 0.469177 0.476013 0.476013 0.476013 0.482910 0.482910 0.482910 0.489685 0.489685 0.489685 0.496704 0.496704 0.496704 0.503784 0.503784 0.503784 0.510803 0.510803 0.510803 0.518127 0.518127 0.518127 0.525513 0.525513 0.525513 0.532867 0.532867 0.532867 0.540466 0.540466 0.540466 0.548065 0.548065 0.548065 0.555939 0.555939 0.555939 0.350189 0.350189 0.350189 0.357971 0.357971 0.357971 0.365601 0.365601 0.365601 0.372894 0.372894 0.372894 0.380280 0.380280 0.380280 0.387360 0.387360 0.387360 0.394501 0.394501 0.394501 0.401550 0.401550 0.401550 0.408386 0.408386 0.408386 0.415283 0.415283 0.415283 0.422119 0.422119 0.422119 0.428772 0.428772 0.428772 0.435516 0.435516 0.435516 0.442291 0.442291 0.442291 0.448883 0.448883 0.448883 0.455627 0.455627 0.455627 0.462219 0.462219 0.462219 0.469025 0.469025 0.469025 0.475861 0.475861 0.475861 0.482544 0.482544 0.482544 0.489502 0.489502 0.489502 0.496521 0.496521 0.496521 0.503418 0.503418 0.503418 0.510651 0.510651 0.510651 0.517944 0.517944 0.517944 0.525146 0.525146 0.525146 0.532654 0.532654 0.532654 0.540100 0.540100 0.540100 0.547821 0.547821 0.547821 0.555725 0.555725 0.555725 0.563538 0.563538 0.563538 0.571686 0.571686 0.571686 0.365204 0.365204 0.365204 0.372711 0.372711 0.372711 0.380096 0.380096 0.380096 0.387177 0.387177 0.387177 0.394318 0.394318 0.394318 0.401215 0.401215 0.401215 0.408203 0.408203 0.408203 0.415100 0.415100 0.415100 0.421753 0.421753 0.421753 0.428589 0.428589 0.428589 0.435364 0.435364 0.435364 0.441956 0.441956 0.441956 0.448700 0.448700 0.448700 0.455444 0.455444 0.455444 0.462036 0.462036 0.462036 0.468842 0.468842 0.468842 0.475494 0.475494 0.475494 0.482391 0.482391 0.482391 0.489349 0.489349 0.489349 0.496155 0.496155 0.496155 0.503265 0.503265 0.503265 0.510437 0.510437 0.510437 0.517548 0.517548 0.517548 0.524963 0.524963 0.524963 0.532471 0.532471 0.532471 0.539886 0.539886 0.539886 0.547668 0.547668 0.547668 0.555328 0.555328 0.555328 0.563354 0.563354 0.563354 0.571503 0.571503 0.571503 0.579590 0.579590 0.579590 0.588013 0.588013 0.588013 0.379700 0.379700 0.379700 0.386993 0.386993 0.386993 0.393982 0.393982 0.393982 0.401031 0.401031 0.401031 0.408020 0.408020 0.408020 0.414764 0.414764 0.414764 0.421631 0.421631 0.421631 0.428406 0.428406 0.428406 0.435028 0.435028 0.435028 0.441772 0.441772 0.441772 0.448517 0.448517 0.448517 0.455109 0.455109 0.455109 0.461884 0.461884 0.461884 0.468506 0.468506 0.468506 0.475342 0.475342 0.475342 0.482208 0.482208 0.482208 0.488983 0.488983 0.488983 0.496002 0.496002 0.496002 0.503082 0.503082 0.503082 0.510101 0.510101 0.510101 0.517395 0.517395 0.517395 0.524780 0.524780 0.524780 0.532104 0.532104 0.532104 0.539734 0.539734 0.539734 0.547272 0.547272 0.547272 0.555115 0.555115 0.555115 0.563141 0.563141 0.563141 0.571106 0.571106 0.571106 0.579376 0.579376 0.579376 0.587799 0.587799 0.587799 0.596100 0.596100 0.596100 0.604675 0.604675 0.604675 0.393768 0.393768 0.393768 0.400848 0.400848 0.400848 0.407684 0.407684 0.407684 0.414612 0.414612 0.414612 0.421448 0.421448 0.421448 0.428101 0.428101 0.428101 0.434875 0.434875 0.434875 0.441620 0.441620 0.441620 0.448212 0.448212 0.448212 0.454956 0.454956 0.454956 0.461700 0.461700 0.461700 0.468323 0.468323 0.468323 0.475159 0.475159 0.475159 0.481873 0.481873 0.481873 0.488831 0.488831 0.488831 0.495819 0.495819 0.495819 0.502747 0.502747 0.502747 0.509888 0.509888 0.509888 0.517212 0.517212 0.517212 0.524414 0.524414 0.524414 0.531891 0.531891 0.531891 0.539520 0.539520 0.539520 0.547058 0.547058 0.547058 0.554932 0.554932 0.554932 0.562775 0.562775 0.562775 0.570892 0.570892 0.570892 0.579193 0.579193 0.579193 0.587372 0.587372 0.587372 0.595856 0.595856 0.595856 0.604462 0.604462 0.604462 0.612946 0.612946 0.612946 0.621643 0.621643 0.621643 0.407501 0.407501 0.407501 0.414429 0.414429 0.414429 0.421112 0.421112 0.421112 0.427887 0.427887 0.427887 0.434692 0.434692 0.434692 0.441284 0.441284 0.441284 0.448029 0.448029 0.448029 0.454773 0.454773 0.454773 0.461365 0.461365 0.461365 0.468140 0.468140 0.468140 0.474823 0.474823 0.474823 0.481689 0.481689 0.481689 0.488617 0.488617 0.488617 0.495483 0.495483 0.495483 0.502533 0.502533 0.502533 0.509735 0.509735 0.509735 0.516815 0.516815 0.516815 0.524200 0.524200 0.524200 0.531708 0.531708 0.531708 0.539093 0.539093 0.539093 0.546875 0.546875 0.546875 0.554749 0.554749 0.554749 0.562561 0.562561 0.562561 0.570679 0.570679 0.570679 0.578766 0.578766 0.578766 0.587128 0.587128 0.587128 0.595673 0.595673 0.595673 0.604034 0.604034 0.604034 0.612701 0.612701 0.612701 0.621399 0.621399 0.621399 0.629944 0.629944 0.629944 0.638702 0.638702 0.638702 0.420929 0.420929 0.420929 0.427734 0.427734 0.427734 0.434357 0.434357 0.434357 0.441101 0.441101 0.441101 0.447845 0.447845 0.447845 0.454437 0.454437 0.454437 0.461212 0.461212 0.461212 0.467987 0.467987 0.467987 0.474640 0.474640 0.474640 0.481506 0.481506 0.481506 0.488281 0.488281 0.488281 0.495270 0.495270 0.495270 0.502380 0.502380 0.502380 0.509369 0.509369 0.509369 0.516663 0.516663 0.516663 0.524017 0.524017 0.524017 0.531342 0.531342 0.531342 0.538940 0.538940 0.538940 0.546661 0.546661 0.546661 0.554352 0.554352 0.554352 0.562347 0.562347 0.562347 0.570282 0.570282 0.570282 0.578552 0.578552 0.578552 0.586945 0.586945 0.586945 0.595215 0.595215 0.595215 0.603821 0.603821 0.603821 0.612488 0.612488 0.612488 0.621002 0.621002 0.621002 0.629730 0.629730 0.629730 0.638489 0.638489 0.638489 0.647003 0.647003 0.647003 0.655731 0.655731 0.655731 0.434204 0.434204 0.434204 0.440948 0.440948 0.440948 0.447510 0.447510 0.447510 0.454254 0.454254 0.454254 0.461029 0.461029 0.461029 0.467651 0.467651 0.467651 0.474457 0.474457 0.474457 0.481201 0.481201 0.481201 0.488098 0.488098 0.488098 0.495087 0.495087 0.495087 0.502014 0.502014 0.502014 0.509186 0.509186 0.509186 0.516449 0.516449 0.516449 0.523651 0.523651 0.523651 0.531158 0.531158 0.531158 0.538727 0.538727 0.538727 0.546295 0.546295 0.546295 0.554169 0.554169 0.554169 0.562134 0.562134 0.562134 0.570068 0.570068 0.570068 0.578308 0.578308 0.578308 0.586517 0.586517 0.586517 0.595032 0.595032 0.595032 0.603607 0.603607 0.603607 0.612061 0.612061 0.612061 0.620758 0.620758 0.620758 0.629517 0.629517 0.629517 0.638031 0.638031 0.638031 0.646790 0.646790 0.646790 0.655518 0.655518 0.655518 0.664001 0.664001 0.664001 0.672607 0.672607 0.672607 0.447357 0.447357 0.447357 0.454102 0.454102 0.454102 0.460693 0.460693 0.460693 0.467468 0.467468 0.467468 0.474304 0.474304 0.474304 0.481018 0.481018 0.481018 0.487915 0.487915 0.487915 0.494781 0.494781 0.494781 0.501862 0.501862 0.501862 0.509003 0.509003 0.509003 0.516113 0.516113 0.516113 0.523468 0.523468 0.523468 0.530945 0.530945 0.530945 0.538361 0.538361 0.538361 0.546112 0.546112 0.546112 0.553955 0.553955 0.553955 0.561737 0.561737 0.561737 0.569885 0.569885 0.569885 0.577911 0.577911 0.577911 0.586304 0.586304 0.586304 0.594818 0.594818 0.594818 0.603180 0.603180 0.603180 0.611847 0.611847 0.611847 0.620544 0.620544 0.620544 0.629059 0.629059 0.629059 0.637817 0.637817 0.637817 0.646576 0.646576 0.646576 0.655090 0.655090 0.655090 0.663788 0.663788 0.663788 0.672150 0.672150 0.672150 0.680756 0.680756 0.680756 0.689209 0.689209 0.689209 0.460541 0.460541 0.460541 0.467316 0.467316 0.467316 0.473938 0.473938 0.473938 0.480835 0.480835 0.480835 0.487579 0.487579 0.487579 0.494568 0.494568 0.494568 0.501678 0.501678 0.501678 0.508636 0.508636 0.508636 0.515900 0.515900 0.515900 0.523285 0.523285 0.523285 0.530579 0.530579 0.530579 0.538177 0.538177 0.538177 0.545898 0.545898 0.545898 0.553558 0.553558 0.553558 0.561554 0.561554 0.561554 0.569458 0.569458 0.569458 0.577698 0.577698 0.577698 0.586090 0.586090 0.586090 0.594391 0.594391 0.594391 0.602966 0.602966 0.602966 0.611603 0.611603 0.611603 0.620117 0.620117 0.620117 0.628845 0.628845 0.628845 0.637604 0.637604 0.637604 0.646149 0.646149 0.646149 0.654877 0.654877 0.654877 0.663574 0.663574 0.663574 0.671936 0.671936 0.671936 0.680511 0.680511 0.680511 0.688812 0.688812 0.688812 0.697205 0.697205 0.697205 0.705414 0.705414 0.705414 0.473785 0.473785 0.473785 0.480682 0.480682 0.480682 0.487427 0.487427 0.487427 0.494415 0.494415 0.494415 0.501312 0.501312 0.501312 0.508453 0.508453 0.508453 0.515747 0.515747 0.515747 0.522888 0.522888 0.522888 0.530396 0.530396 0.530396 0.537964 0.537964 0.537964 0.545502 0.545502 0.545502 0.553375 0.553375 0.553375 0.561340 0.561340 0.561340 0.569244 0.569244 0.569244 0.577515 0.577515 0.577515 0.585663 0.585663 0.585663 0.594147 0.594147 0.594147 0.602722 0.602722 0.602722 0.611176 0.611176 0.611176 0.619873 0.619873 0.619873 0.628632 0.628632 0.628632 0.637146 0.637146 0.637146 0.645905 0.645905 0.645905 0.654633 0.654633 0.654633 0.663116 0.663116 0.663116 0.671753 0.671753 0.671753 0.680084 0.680084 0.680084 0.688568 0.688568 0.688568 0.696991 0.696991 0.696991 0.705017 0.705017 0.705017 0.713165 0.713165 0.713165 0.721130 0.721130 0.721130 0.487244 0.487244 0.487244 0.494049 0.494049 0.494049 0.501129 0.501129 0.501129 0.508301 0.508301 0.508301 0.515381 0.515381 0.515381 0.522736 0.522736 0.522736 0.530212 0.530212 0.530212 0.537598 0.537598 0.537598 0.545319 0.545319 0.545319 0.553162 0.553162 0.553162 0.560944 0.560944 0.560944 0.569061 0.569061 0.569061 0.577118 0.577118 0.577118 0.585449 0.585449 0.585449 0.593964 0.593964 0.593964 0.602325 0.602325 0.602325 0.610992 0.610992 0.610992 0.619690 0.619690 0.619690 0.628174 0.628174 0.628174 0.636963 0.636963 0.636963 0.645691 0.645691 0.645691 0.654236 0.654236 0.654236 0.662933 0.662933 0.662933 0.671539 0.671539 0.671539 0.679901 0.679901 0.679901 0.688354 0.688354 0.688354 0.696533 0.696533 0.696533 0.704803 0.704803 0.704803 0.712952 0.712952 0.712952 0.720703 0.720703 0.720703 0.728607 0.728607 0.728607 0.736237 0.736237 0.736237 0.500946 0.500946 0.500946 0.507935 0.507935 0.507935 0.515198 0.515198 0.515198 0.522552 0.522552 0.522552 0.529816 0.529816 0.529816 0.537415 0.537415 0.537415 0.545135 0.545135 0.545135 0.552734 0.552734 0.552734 0.560760 0.560760 0.560760 0.568817 0.568817 0.568817 0.576874 0.576874 0.576874 0.585266 0.585266 0.585266 0.593536 0.593536 0.593536 0.602081 0.602081 0.602081 0.610748 0.610748 0.610748 0.619232 0.619232 0.619232 0.627960 0.627960 0.627960 0.636719 0.636719 0.636719 0.645264 0.645264 0.645264 0.653992 0.653992 0.653992 0.662689 0.662689 0.662689 0.671112 0.671112 0.671112 0.679657 0.679657 0.679657 0.687958 0.687958 0.687958 0.696350 0.696350 0.696350 0.704590 0.704590 0.704590 0.712524 0.712524 0.712524 0.720551 0.720551 0.720551 0.728363 0.728363 0.728363 0.735870 0.735870 0.735870 0.743378 0.743378 0.743378 0.750671 0.750671 0.750671 0.514984 0.514984 0.514984 0.522186 0.522186 0.522186 0.529633 0.529633 0.529633 0.537201 0.537201 0.537201 0.544739 0.544739 0.544739 0.552582 0.552582 0.552582 0.560516 0.560516 0.560516 0.568451 0.568451 0.568451 0.576691 0.576691 0.576691 0.584839 0.584839 0.584839 0.593323 0.593323 0.593323 0.601898 0.601898 0.601898 0.610321 0.610321 0.610321 0.619049 0.619049 0.619049 0.627747 0.627747 0.627747 0.636322 0.636322 0.636322 0.645050 0.645050 0.645050 0.653778 0.653778 0.653778 0.662262 0.662262 0.662262 0.670898 0.670898 0.670898 0.679474 0.679474 0.679474 0.687714 0.687714 0.687714 0.696167 0.696167 0.696167 0.704193 0.704193 0.704193 0.712341 0.712341 0.712341 0.720337 0.720337 0.720337 0.727997 0.727997 0.727997 0.735687 0.735687 0.735687 0.743195 0.743195 0.743195 0.750305 0.750305 0.750305 0.757416 0.757416 0.757416 0.764313 0.764313 0.764313 0.529449 0.529449 0.529449 0.536835 0.536835 0.536835 0.544525 0.544525 0.544525 0.552368 0.552368 0.552368 0.560120 0.560120 0.560120 0.568237 0.568237 0.568237 0.576477 0.576477 0.576477 0.584656 0.584656 0.584656 0.593079 0.593079 0.593079 0.601440 0.601440 0.601440 0.610107 0.610107 0.610107 0.618805 0.618805 0.618805 0.627319 0.627319 0.627319 0.636078 0.636078 0.636078 0.644836 0.644836 0.644836 0.653320 0.653320 0.653320 0.662018 0.662018 0.662018 0.670685 0.670685 0.670685 0.679047 0.679047 0.679047 0.687531 0.687531 0.687531 0.695709 0.695709 0.695709 0.703979 0.703979 0.703979 0.712128 0.712128 0.712128 0.719940 0.719940 0.719940 0.727783 0.727783 0.727783 0.735504 0.735504 0.735504 0.742798 0.742798 0.742798 0.750153 0.750153 0.750153 0.757263 0.757263 0.757263 0.764008 0.764008 0.764008 0.770660 0.770660 0.770660 0.776978 0.776978 0.776978 0.069153 0.069153 0.069153 0.073395 0.073395 0.073395 0.078003 0.078003 0.078003 0.082703 0.082703 0.082703 0.087769 0.087769 0.087769 0.093079 0.093079 0.093079 0.098480 0.098480 0.098480 0.104370 0.104370 0.104370 0.110504 0.110504 0.110504 0.116852 0.116852 0.116852 0.123718 0.123718 0.123718 0.130981 0.130981 0.130981 0.138458 0.138458 0.138458 0.146576 0.146576 0.146576 0.154907 0.154907 0.154907 0.164001 0.164001 0.164001 0.173584 0.173584 0.173584 0.183289 0.183289 0.183289 0.193451 0.193451 0.193451 0.203827 0.203827 0.203827 0.213989 0.213989 0.213989 0.224335 0.224335 0.224335 0.234558 0.234558 0.234558 0.244354 0.244354 0.244354 0.254211 0.254211 0.254211 0.263672 0.263672 0.263672 0.273193 0.273193 0.273193 0.282501 0.282501 0.282501 0.291412 0.291412 0.291412 0.300385 0.300385 0.300385 0.309143 0.309143 0.309143 0.317535 0.317535 0.317535 0.077759 0.077759 0.077759 0.082581 0.082581 0.082581 0.087646 0.087646 0.087646 0.092804 0.092804 0.092804 0.098358 0.098358 0.098358 0.104218 0.104218 0.104218 0.110229 0.110229 0.110229 0.116699 0.116699 0.116699 0.123535 0.123535 0.123535 0.130615 0.130615 0.130615 0.138245 0.138245 0.138245 0.146149 0.146149 0.146149 0.154694 0.154694 0.154694 0.163788 0.163788 0.163788 0.173096 0.173096 0.173096 0.182983 0.182983 0.182983 0.193207 0.193207 0.193207 0.203308 0.203308 0.203308 0.213745 0.213745 0.213745 0.224091 0.224091 0.224091 0.234070 0.234070 0.234070 0.244110 0.244110 0.244110 0.253967 0.253967 0.253967 0.263428 0.263428 0.263428 0.272949 0.272949 0.272949 0.282043 0.282043 0.282043 0.291199 0.291199 0.291199 0.300140 0.300140 0.300140 0.308716 0.308716 0.308716 0.317291 0.317291 0.317291 0.325745 0.325745 0.325745 0.333801 0.333801 0.333801 0.087372 0.087372 0.087372 0.092682 0.092682 0.092682 0.098206 0.098206 0.098206 0.103882 0.103882 0.103882 0.110077 0.110077 0.110077 0.116516 0.116516 0.116516 0.123199 0.123199 0.123199 0.130432 0.130432 0.130432 0.138062 0.138062 0.138062 0.145935 0.145935 0.145935 0.154510 0.154510 0.154510 0.163330 0.163330 0.163330 0.172852 0.172852 0.172852 0.182739 0.182739 0.182739 0.192657 0.192657 0.192657 0.203033 0.203033 0.203033 0.213470 0.213470 0.213470 0.223572 0.223572 0.223572 0.233826 0.233826 0.233826 0.243866 0.243866 0.243866 0.253479 0.253479 0.253479 0.263184 0.263184 0.263184 0.272491 0.272491 0.272491 0.281830 0.281830 0.281830 0.290985 0.290985 0.290985 0.299713 0.299713 0.299713 0.308502 0.308502 0.308502 0.317108 0.317108 0.317108 0.325317 0.325317 0.325317 0.333588 0.333588 0.333588 0.341675 0.341675 0.341675 0.349396 0.349396 0.349396 0.097931 0.097931 0.097931 0.103760 0.103760 0.103760 0.109894 0.109894 0.109894 0.116211 0.116211 0.116211 0.123016 0.123016 0.123016 0.130219 0.130219 0.130219 0.137665 0.137665 0.137665 0.145721 0.145721 0.145721 0.154022 0.154022 0.154022 0.163116 0.163116 0.163116 0.172638 0.172638 0.172638 0.182251 0.182251 0.182251 0.192413 0.192413 0.192413 0.202789 0.202789 0.202789 0.212952 0.212952 0.212952 0.223328 0.223328 0.223328 0.233551 0.233551 0.233551 0.243378 0.243378 0.243378 0.253265 0.253265 0.253265 0.262970 0.262970 0.262970 0.272247 0.272247 0.272247 0.281586 0.281586 0.281586 0.290527 0.290527 0.290527 0.299500 0.299500 0.299500 0.308289 0.308289 0.308289 0.316681 0.316681 0.316681 0.325104 0.325104 0.325104 0.333374 0.333374 0.333374 0.341278 0.341278 0.341278 0.349213 0.349213 0.349213 0.356995 0.356995 0.356995 0.364471 0.364471 0.364471 0.109589 0.109589 0.109589 0.116058 0.116058 0.116058 0.122833 0.122833 0.122833 0.129852 0.129852 0.129852 0.137451 0.137451 0.137451 0.145538 0.145538 0.145538 0.153839 0.153839 0.153839 0.162872 0.162872 0.162872 0.172150 0.172150 0.172150 0.182007 0.182007 0.182007 0.192169 0.192169 0.192169 0.202271 0.202271 0.202271 0.212646 0.212646 0.212646 0.223053 0.223053 0.223053 0.233032 0.233032 0.233032 0.243103 0.243103 0.243103 0.253021 0.253021 0.253021 0.262482 0.262482 0.262482 0.272003 0.272003 0.272003 0.281097 0.281097 0.281097 0.290283 0.290283 0.290283 0.299255 0.299255 0.299255 0.307861 0.307861 0.307861 0.316467 0.316467 0.316467 0.324890 0.324890 0.324890 0.332977 0.332977 0.332977 0.341064 0.341064 0.341064 0.349030 0.349030 0.349030 0.356598 0.356598 0.356598 0.364258 0.364258 0.364258 0.371613 0.371613 0.371613 0.378967 0.378967 0.378967 0.122498 0.122498 0.122498 0.129700 0.129700 0.129700 0.137268 0.137268 0.137268 0.145111 0.145111 0.145111 0.153595 0.153595 0.153595 0.162415 0.162415 0.162415 0.171906 0.171906 0.171906 0.181732 0.181732 0.181732 0.191650 0.191650 0.191650 0.202026 0.202026 0.202026 0.212402 0.212402 0.212402 0.222534 0.222534 0.222534 0.232788 0.232788 0.232788 0.242828 0.242828 0.242828 0.252502 0.252502 0.252502 0.262238 0.262238 0.262238 0.271759 0.271759 0.271759 0.280884 0.280884 0.280884 0.290039 0.290039 0.290039 0.298828 0.298828 0.298828 0.307617 0.307617 0.307617 0.316254 0.316254 0.316254 0.324493 0.324493 0.324493 0.332764 0.332764 0.332764 0.340881 0.340881 0.340881 0.348633 0.348633 0.348633 0.356445 0.356445 0.356445 0.364105 0.364105 0.364105 0.371399 0.371399 0.371399 0.378815 0.378815 0.378815 0.385925 0.385925 0.385925 0.393097 0.393097 0.393097 0.136871 0.136871 0.136871 0.144897 0.144897 0.144897 0.153381 0.153381 0.153381 0.162170 0.162170 0.162170 0.171631 0.171631 0.171631 0.181244 0.181244 0.181244 0.191376 0.191376 0.191376 0.201721 0.201721 0.201721 0.211884 0.211884 0.211884 0.222260 0.222260 0.222260 0.232513 0.232513 0.232513 0.242371 0.242371 0.242371 0.252258 0.252258 0.252258 0.261993 0.261993 0.261993 0.271301 0.271301 0.271301 0.280670 0.280670 0.280670 0.289612 0.289612 0.289612 0.298584 0.298584 0.298584 0.307434 0.307434 0.307434 0.315826 0.315826 0.315826 0.324280 0.324280 0.324280 0.332581 0.332581 0.332581 0.340485 0.340485 0.340485 0.348419 0.348419 0.348419 0.356232 0.356232 0.356232 0.363708 0.363708 0.363708 0.371246 0.371246 0.371246 0.378448 0.378448 0.378448 0.385742 0.385742 0.385742 0.392883 0.392883 0.392883 0.399811 0.399811 0.399811 0.406799 0.406799 0.406799 0.152954 0.152954 0.152954 0.161926 0.161926 0.161926 0.171173 0.171173 0.171173 0.181000 0.181000 0.181000 0.191132 0.191132 0.191132 0.201233 0.201233 0.201233 0.211639 0.211639 0.211639 0.222015 0.222015 0.222015 0.232025 0.232025 0.232025 0.242126 0.242126 0.242126 0.252014 0.252014 0.252014 0.261505 0.261505 0.261505 0.271057 0.271057 0.271057 0.280182 0.280182 0.280182 0.289368 0.289368 0.289368 0.298370 0.298370 0.298370 0.306976 0.306976 0.306976 0.315613 0.315613 0.315613 0.324066 0.324066 0.324066 0.332153 0.332153 0.332153 0.340271 0.340271 0.340271 0.348236 0.348236 0.348236 0.355835 0.355835 0.355835 0.363495 0.363495 0.363495 0.371033 0.371033 0.371033 0.378265 0.378265 0.378265 0.385559 0.385559 0.385559 0.392548 0.392548 0.392548 0.399628 0.399628 0.399628 0.406616 0.406616 0.406616 0.413361 0.413361 0.413361 0.420227 0.420227 0.420227 0.170929 0.170929 0.170929 0.180725 0.180725 0.180725 0.190643 0.190643 0.190643 0.200958 0.200958 0.200958 0.211365 0.211365 0.211365 0.221527 0.221527 0.221527 0.231750 0.231750 0.231750 0.241882 0.241882 0.241882 0.251526 0.251526 0.251526 0.261261 0.261261 0.261261 0.270813 0.270813 0.270813 0.279968 0.279968 0.279968 0.289124 0.289124 0.289124 0.297943 0.297943 0.297943 0.306763 0.306763 0.306763 0.315399 0.315399 0.315399 0.323639 0.323639 0.323639 0.331940 0.331940 0.331940 0.340088 0.340088 0.340088 0.347870 0.347870 0.347870 0.355682 0.355682 0.355682 0.363312 0.363312 0.363312 0.370667 0.370667 0.370667 0.378082 0.378082 0.378082 0.385162 0.385162 0.385162 0.392365 0.392365 0.392365 0.399445 0.399445 0.399445 0.406281 0.406281 0.406281 0.413208 0.413208 0.413208 0.420074 0.420074 0.420074 0.426727 0.426727 0.426727 0.433502 0.433502 0.433502 0.190399 0.190399 0.190399 0.200714 0.200714 0.200714 0.210846 0.210846 0.210846 0.221252 0.221252 0.221252 0.231476 0.231476 0.231476 0.241364 0.241364 0.241364 0.251282 0.251282 0.251282 0.261047 0.261047 0.261047 0.270355 0.270355 0.270355 0.279724 0.279724 0.279724 0.288696 0.288696 0.288696 0.297699 0.297699 0.297699 0.306519 0.306519 0.306519 0.314972 0.314972 0.314972 0.323425 0.323425 0.323425 0.331757 0.331757 0.331757 0.339691 0.339691 0.339691 0.347656 0.347656 0.347656 0.355469 0.355469 0.355469 0.362946 0.362946 0.362946 0.370514 0.370514 0.370514 0.377899 0.377899 0.377899 0.385010 0.385010 0.385010 0.392181 0.392181 0.392181 0.399078 0.399078 0.399078 0.406097 0.406097 0.406097 0.413055 0.413055 0.413055 0.419708 0.419708 0.419708 0.426544 0.426544 0.426544 0.433319 0.433319 0.433319 0.439941 0.439941 0.439941 0.446686 0.446686 0.446686 0.210602 0.210602 0.210602 0.220978 0.220978 0.220978 0.231018 0.231018 0.231018 0.241119 0.241119 0.241119 0.251038 0.251038 0.251038 0.260559 0.260559 0.260559 0.270142 0.270142 0.270142 0.279510 0.279510 0.279510 0.288483 0.288483 0.288483 0.297485 0.297485 0.297485 0.306122 0.306122 0.306122 0.314728 0.314728 0.314728 0.323242 0.323242 0.323242 0.331329 0.331329 0.331329 0.339478 0.339478 0.339478 0.347443 0.347443 0.347443 0.355072 0.355072 0.355072 0.362762 0.362762 0.362762 0.370300 0.370300 0.370300 0.377502 0.377502 0.377502 0.384827 0.384827 0.384827 0.391846 0.391846 0.391846 0.398926 0.398926 0.398926 0.405914 0.405914 0.405914 0.412689 0.412689 0.412689 0.419556 0.419556 0.419556 0.426392 0.426392 0.426392 0.432983 0.432983 0.432983 0.439758 0.439758 0.439758 0.446503 0.446503 0.446503 0.453064 0.453064 0.453064 0.459869 0.459869 0.459869 0.230774 0.230774 0.230774 0.240875 0.240875 0.240875 0.250549 0.250549 0.250549 0.260315 0.260315 0.260315 0.269867 0.269867 0.269867 0.279053 0.279053 0.279053 0.288239 0.288239 0.288239 0.297272 0.297272 0.297272 0.305878 0.305878 0.305878 0.314545 0.314545 0.314545 0.322815 0.322815 0.322815 0.331116 0.331116 0.331116 0.339264 0.339264 0.339264 0.347046 0.347046 0.347046 0.354889 0.354889 0.354889 0.362579 0.362579 0.362579 0.369904 0.369904 0.369904 0.377350 0.377350 0.377350 0.384644 0.384644 0.384644 0.391663 0.391663 0.391663 0.398773 0.398773 0.398773 0.405579 0.405579 0.405579 0.412537 0.412537 0.412537 0.419403 0.419403 0.419403 0.426056 0.426056 0.426056 0.432831 0.432831 0.432831 0.439606 0.439606 0.439606 0.446167 0.446167 0.446167 0.452911 0.452911 0.452911 0.459656 0.459656 0.459656 0.466278 0.466278 0.466278 0.473114 0.473114 0.473114 0.250305 0.250305 0.250305 0.260040 0.260040 0.260040 0.269379 0.269379 0.269379 0.278809 0.278809 0.278809 0.288025 0.288025 0.288025 0.296783 0.296783 0.296783 0.305664 0.305664 0.305664 0.314117 0.314117 0.314117 0.322601 0.322601 0.322601 0.330902 0.330902 0.330902 0.338837 0.338837 0.338837 0.346863 0.346863 0.346863 0.354675 0.354675 0.354675 0.362183 0.362183 0.362183 0.369751 0.369751 0.369751 0.377136 0.377136 0.377136 0.384277 0.384277 0.384277 0.391449 0.391449 0.391449 0.398407 0.398407 0.398407 0.405426 0.405426 0.405426 0.412354 0.412354 0.412354 0.419037 0.419037 0.419037 0.425873 0.425873 0.425873 0.432648 0.432648 0.432648 0.439270 0.439270 0.439270 0.446014 0.446014 0.446014 0.452728 0.452728 0.452728 0.459320 0.459320 0.459320 0.466125 0.466125 0.466125 0.472778 0.472778 0.472778 0.479614 0.479614 0.479614 0.486542 0.486542 0.486542 0.269135 0.269135 0.269135 0.278564 0.278564 0.278564 0.287567 0.287567 0.287567 0.296600 0.296600 0.296600 0.305450 0.305450 0.305450 0.313904 0.313904 0.313904 0.322388 0.322388 0.322388 0.330505 0.330505 0.330505 0.338684 0.338684 0.338684 0.346649 0.346649 0.346649 0.354279 0.354279 0.354279 0.362000 0.362000 0.362000 0.369568 0.369568 0.369568 0.376770 0.376770 0.376770 0.384094 0.384094 0.384094 0.391296 0.391296 0.391296 0.398224 0.398224 0.398224 0.405243 0.405243 0.405243 0.412018 0.412018 0.412018 0.418884 0.418884 0.418884 0.425690 0.425690 0.425690 0.432312 0.432312 0.432312 0.439087 0.439087 0.439087 0.445831 0.445831 0.445831 0.452393 0.452393 0.452393 0.459167 0.459167 0.459167 0.465942 0.465942 0.465942 0.472595 0.472595 0.472595 0.479462 0.479462 0.479462 0.486176 0.486176 0.486176 0.493195 0.493195 0.493195 0.500244 0.500244 0.500244 0.287323 0.287323 0.287323 0.296387 0.296387 0.296387 0.304993 0.304993 0.304993 0.313690 0.313690 0.313690 0.321960 0.321960 0.321960 0.330322 0.330322 0.330322 0.338470 0.338470 0.338470 0.346252 0.346252 0.346252 0.354095 0.354095 0.354095 0.361816 0.361816 0.361816 0.369171 0.369171 0.369171 0.376587 0.376587 0.376587 0.383911 0.383911 0.383911 0.390961 0.390961 0.390961 0.398010 0.398010 0.398010 0.404907 0.404907 0.404907 0.411804 0.411804 0.411804 0.418732 0.418732 0.418732 0.425385 0.425385 0.425385 0.432159 0.432159 0.432159 0.438904 0.438904 0.438904 0.445496 0.445496 0.445496 0.452271 0.452271 0.452271 0.459015 0.459015 0.459015 0.465607 0.465607 0.465607 0.472412 0.472412 0.472412 0.479095 0.479095 0.479095 0.486023 0.486023 0.486023 0.493011 0.493011 0.493011 0.499878 0.499878 0.499878 0.507050 0.507050 0.507050 0.514282 0.514282 0.514282 0.304810 0.304810 0.304810 0.313446 0.313446 0.313446 0.321747 0.321747 0.321747 0.330109 0.330109 0.330109 0.338043 0.338043 0.338043 0.346069 0.346069 0.346069 0.353912 0.353912 0.353912 0.361420 0.361420 0.361420 0.368988 0.368988 0.368988 0.376434 0.376434 0.376434 0.383545 0.383545 0.383545 0.390747 0.390747 0.390747 0.397858 0.397858 0.397858 0.404724 0.404724 0.404724 0.411652 0.411652 0.411652 0.418365 0.418365 0.418365 0.425171 0.425171 0.425171 0.431976 0.431976 0.431976 0.438568 0.438568 0.438568 0.445343 0.445343 0.445343 0.452087 0.452087 0.452087 0.458649 0.458649 0.458649 0.465454 0.465454 0.465454 0.472260 0.472260 0.472260 0.478943 0.478943 0.478943 0.485870 0.485870 0.485870 0.492645 0.492645 0.492645 0.499695 0.499695 0.499695 0.506836 0.506836 0.506836 0.513885 0.513885 0.513885 0.521240 0.521240 0.521240 0.528687 0.528687 0.528687 0.321564 0.321564 0.321564 0.329895 0.329895 0.329895 0.337860 0.337860 0.337860 0.345886 0.345886 0.345886 0.353516 0.353516 0.353516 0.361267 0.361267 0.361267 0.368805 0.368805 0.368805 0.376068 0.376068 0.376068 0.383362 0.383362 0.383362 0.390594 0.390594 0.390594 0.397522 0.397522 0.397522 0.404510 0.404510 0.404510 0.411469 0.411469 0.411469 0.418182 0.418182 0.418182 0.425018 0.425018 0.425018 0.431641 0.431641 0.431641 0.438385 0.438385 0.438385 0.445160 0.445160 0.445160 0.451752 0.451752 0.451752 0.458496 0.458496 0.458496 0.465271 0.465271 0.465271 0.471893 0.471893 0.471893 0.478760 0.478760 0.478760 0.485687 0.485687 0.485687 0.492493 0.492493 0.492493 0.499512 0.499512 0.499512 0.506500 0.506500 0.506500 0.513702 0.513702 0.513702 0.521057 0.521057 0.521057 0.528320 0.528320 0.528320 0.535858 0.535858 0.535858 0.543579 0.543579 0.543579 0.337677 0.337677 0.337677 0.345673 0.345673 0.345673 0.353363 0.353363 0.353363 0.361053 0.361053 0.361053 0.368408 0.368408 0.368408 0.375854 0.375854 0.375854 0.383179 0.383179 0.383179 0.390228 0.390228 0.390228 0.397339 0.397339 0.397339 0.404358 0.404358 0.404358 0.411133 0.411133 0.411133 0.417999 0.417999 0.417999 0.424866 0.424866 0.424866 0.431488 0.431488 0.431488 0.438263 0.438263 0.438263 0.444824 0.444824 0.444824 0.451569 0.451569 0.451569 0.458313 0.458313 0.458313 0.464935 0.464935 0.464935 0.471741 0.471741 0.471741 0.478607 0.478607 0.478607 0.485321 0.485321 0.485321 0.492310 0.492310 0.492310 0.499329 0.499329 0.499329 0.506317 0.506317 0.506317 0.513519 0.513519 0.513519 0.520660 0.520660 0.520660 0.528137 0.528137 0.528137 0.535706 0.535706 0.535706 0.543182 0.543182 0.543182 0.550995 0.550995 0.550995 0.558929 0.558929 0.558929 0.353149 0.353149 0.353149 0.360657 0.360657 0.360657 0.368225 0.368225 0.368225 0.375702 0.375702 0.375702 0.382843 0.382843 0.382843 0.390045 0.390045 0.390045 0.397186 0.397186 0.397186 0.403992 0.403992 0.403992 0.410980 0.410980 0.410980 0.417847 0.417847 0.417847 0.424500 0.424500 0.424500 0.431305 0.431305 0.431305 0.437897 0.437897 0.437897 0.444641 0.444641 0.444641 0.451416 0.451416 0.451416 0.457977 0.457977 0.457977 0.464752 0.464752 0.464752 0.471588 0.471588 0.471588 0.478241 0.478241 0.478241 0.485138 0.485138 0.485138 0.492126 0.492126 0.492126 0.498993 0.498993 0.498993 0.506134 0.506134 0.506134 0.513184 0.513184 0.513184 0.520508 0.520508 0.520508 0.527954 0.527954 0.527954 0.535339 0.535339 0.535339 0.542999 0.542999 0.542999 0.550781 0.550781 0.550781 0.558563 0.558563 0.558563 0.566589 0.566589 0.566589 0.574799 0.574799 0.574799 0.368042 0.368042 0.368042 0.375336 0.375336 0.375336 0.382660 0.382660 0.382660 0.389862 0.389862 0.389862 0.396820 0.396820 0.396820 0.403839 0.403839 0.403839 0.410797 0.410797 0.410797 0.417480 0.417480 0.417480 0.424347 0.424347 0.424347 0.431122 0.431122 0.431122 0.437744 0.437744 0.437744 0.444489 0.444489 0.444489 0.451080 0.451080 0.451080 0.457825 0.457825 0.457825 0.464600 0.464600 0.464600 0.471222 0.471222 0.471222 0.478088 0.478088 0.478088 0.484985 0.484985 0.484985 0.491760 0.491760 0.491760 0.498840 0.498840 0.498840 0.505951 0.505951 0.505951 0.513000 0.513000 0.513000 0.520325 0.520325 0.520325 0.527557 0.527557 0.527557 0.535126 0.535126 0.535126 0.542786 0.542786 0.542786 0.550385 0.550385 0.550385 0.558319 0.558319 0.558319 0.566376 0.566376 0.566376 0.574402 0.574402 0.574402 0.582703 0.582703 0.582703 0.591187 0.591187 0.591187 0.382446 0.382446 0.382446 0.389526 0.389526 0.389526 0.396637 0.396637 0.396637 0.403656 0.403656 0.403656 0.410461 0.410461 0.410461 0.417328 0.417328 0.417328 0.424164 0.424164 0.424164 0.430817 0.430817 0.430817 0.437592 0.437592 0.437592 0.444153 0.444153 0.444153 0.450897 0.450897 0.450897 0.457642 0.457642 0.457642 0.464233 0.464233 0.464233 0.471069 0.471069 0.471069 0.477936 0.477936 0.477936 0.484650 0.484650 0.484650 0.491608 0.491608 0.491608 0.498627 0.498627 0.498627 0.505615 0.505615 0.505615 0.512817 0.512817 0.512817 0.519958 0.519958 0.519958 0.527374 0.527374 0.527374 0.534943 0.534943 0.534943 0.542389 0.542389 0.542389 0.550201 0.550201 0.550201 0.558136 0.558136 0.558136 0.565979 0.565979 0.565979 0.574188 0.574188 0.574188 0.582520 0.582520 0.582520 0.590759 0.590759 0.590759 0.599304 0.599304 0.599304 0.607727 0.607727 0.607727 0.396454 0.396454 0.396454 0.403320 0.403320 0.403320 0.410278 0.410278 0.410278 0.417175 0.417175 0.417175 0.423828 0.423828 0.423828 0.430603 0.430603 0.430603 0.437378 0.437378 0.437378 0.443970 0.443970 0.443970 0.450714 0.450714 0.450714 0.457306 0.457306 0.457306 0.464081 0.464081 0.464081 0.470886 0.470886 0.470886 0.477570 0.477570 0.477570 0.484467 0.484467 0.484467 0.491425 0.491425 0.491425 0.498291 0.498291 0.498291 0.505432 0.505432 0.505432 0.512634 0.512634 0.512634 0.519775 0.519775 0.519775 0.527191 0.527191 0.527191 0.534546 0.534546 0.534546 0.542206 0.542206 0.542206 0.550018 0.550018 0.550018 0.557709 0.557709 0.557709 0.565765 0.565765 0.565765 0.573975 0.573975 0.573975 0.582092 0.582092 0.582092 0.590546 0.590546 0.590546 0.599091 0.599091 0.599091 0.607513 0.607513 0.607513 0.616211 0.616211 0.616211 0.624695 0.624695 0.624695 0.410095 0.410095 0.410095 0.416840 0.416840 0.416840 0.423676 0.423676 0.423676 0.430450 0.430450 0.430450 0.437073 0.437073 0.437073 0.443817 0.443817 0.443817 0.450378 0.450378 0.450378 0.457123 0.457123 0.457123 0.463928 0.463928 0.463928 0.470551 0.470551 0.470551 0.477386 0.477386 0.477386 0.484283 0.484283 0.484283 0.491089 0.491089 0.491089 0.498077 0.498077 0.498077 0.505219 0.505219 0.505219 0.512268 0.512268 0.512268 0.519592 0.519592 0.519592 0.527008 0.527008 0.527008 0.534363 0.534363 0.534363 0.542023 0.542023 0.542023 0.549622 0.549622 0.549622 0.557526 0.557526 0.557526 0.565582 0.565582 0.565582 0.573578 0.573578 0.573578 0.581909 0.581909 0.581909 0.590332 0.590332 0.590332 0.598663 0.598663 0.598663 0.607269 0.607269 0.607269 0.615784 0.615784 0.615784 0.624481 0.624481 0.624481 0.633240 0.633240 0.633240 0.641785 0.641785 0.641785 0.423462 0.423462 0.423462 0.430115 0.430115 0.430115 0.436890 0.436890 0.436890 0.443665 0.443665 0.443665 0.450226 0.450226 0.450226 0.456970 0.456970 0.456970 0.463562 0.463562 0.463562 0.470367 0.470367 0.470367 0.477203 0.477203 0.477203 0.483948 0.483948 0.483948 0.490906 0.490906 0.490906 0.497955 0.497955 0.497955 0.504883 0.504883 0.504883 0.512085 0.512085 0.512085 0.519379 0.519379 0.519379 0.526642 0.526642 0.526642 0.534180 0.534180 0.534180 0.541656 0.541656 0.541656 0.549408 0.549408 0.549408 0.557343 0.557343 0.557343 0.565186 0.565186 0.565186 0.573364 0.573364 0.573364 0.581696 0.581696 0.581696 0.589905 0.589905 0.589905 0.598450 0.598450 0.598450 0.607056 0.607056 0.607056 0.615540 0.615540 0.615540 0.624237 0.624237 0.624237 0.632812 0.632812 0.632812 0.641541 0.641541 0.641541 0.650299 0.650299 0.650299 0.658783 0.658783 0.658783 0.436707 0.436707 0.436707 0.443298 0.443298 0.443298 0.450073 0.450073 0.450073 0.456635 0.456635 0.456635 0.463409 0.463409 0.463409 0.470184 0.470184 0.470184 0.476868 0.476868 0.476868 0.483734 0.483734 0.483734 0.490692 0.490692 0.490692 0.497589 0.497589 0.497589 0.504700 0.504700 0.504700 0.511902 0.511902 0.511902 0.519043 0.519043 0.519043 0.526428 0.526428 0.526428 0.533783 0.533783 0.533783 0.541443 0.541443 0.541443 0.549225 0.549225 0.549225 0.556946 0.556946 0.556946 0.564972 0.564972 0.564972 0.573151 0.573151 0.573151 0.581268 0.581268 0.581268 0.589691 0.589691 0.589691 0.598236 0.598236 0.598236 0.606628 0.606628 0.606628 0.615295 0.615295 0.615295 0.624023 0.624023 0.624023 0.632568 0.632568 0.632568 0.641296 0.641296 0.641296 0.649841 0.649841 0.649841 0.658569 0.658569 0.658569 0.667206 0.667206 0.667206 0.675629 0.675629 0.675629 0.449890 0.449890 0.449890 0.456451 0.456451 0.456451 0.463226 0.463226 0.463226 0.469879 0.469879 0.469879 0.476685 0.476685 0.476685 0.483612 0.483612 0.483612 0.490387 0.490387 0.490387 0.497406 0.497406 0.497406 0.504517 0.504517 0.504517 0.511536 0.511536 0.511536 0.518860 0.518860 0.518860 0.526245 0.526245 0.526245 0.533600 0.533600 0.533600 0.541260 0.541260 0.541260 0.548828 0.548828 0.548828 0.556732 0.556732 0.556732 0.564758 0.564758 0.564758 0.572754 0.572754 0.572754 0.581024 0.581024 0.581024 0.589478 0.589478 0.589478 0.597809 0.597809 0.597809 0.606445 0.606445 0.606445 0.615112 0.615112 0.615112 0.623596 0.623596 0.623596 0.632355 0.632355 0.632355 0.640869 0.640869 0.640869 0.649628 0.649628 0.649628 0.658356 0.658356 0.658356 0.666779 0.666779 0.666779 0.675385 0.675385 0.675385 0.683960 0.683960 0.683960 0.692139 0.692139 0.692139 0.462921 0.462921 0.462921 0.469696 0.469696 0.469696 0.476532 0.476532 0.476532 0.483246 0.483246 0.483246 0.490173 0.490173 0.490173 0.497223 0.497223 0.497223 0.504181 0.504181 0.504181 0.511353 0.511353 0.511353 0.518677 0.518677 0.518677 0.525879 0.525879 0.525879 0.533417 0.533417 0.533417 0.540863 0.540863 0.540863 0.548645 0.548645 0.548645 0.556519 0.556519 0.556519 0.564362 0.564362 0.564362 0.572540 0.572540 0.572540 0.580841 0.580841 0.580841 0.589081 0.589081 0.589081 0.597595 0.597595 0.597595 0.606201 0.606201 0.606201 0.614655 0.614655 0.614655 0.623383 0.623383 0.623383 0.632141 0.632141 0.632141 0.640656 0.640656 0.640656 0.649414 0.649414 0.649414 0.657898 0.657898 0.657898 0.666565 0.666565 0.666565 0.675201 0.675201 0.675201 0.683502 0.683502 0.683502 0.691956 0.691956 0.691956 0.700287 0.700287 0.700287 0.708282 0.708282 0.708282 0.476196 0.476196 0.476196 0.483063 0.483063 0.483063 0.490051 0.490051 0.490051 0.496887 0.496887 0.496887 0.503967 0.503967 0.503967 0.511200 0.511200 0.511200 0.518280 0.518280 0.518280 0.525696 0.525696 0.525696 0.533234 0.533234 0.533234 0.540680 0.540680 0.540680 0.548431 0.548431 0.548431 0.556152 0.556152 0.556152 0.564178 0.564178 0.564178 0.572327 0.572327 0.572327 0.580414 0.580414 0.580414 0.588837 0.588837 0.588837 0.597382 0.597382 0.597382 0.605774 0.605774 0.605774 0.614441 0.614441 0.614441 0.623169 0.623169 0.623169 0.631683 0.631683 0.631683 0.640472 0.640472 0.640472 0.648987 0.648987 0.648987 0.657684 0.657684 0.657684 0.666351 0.666351 0.666351 0.674744 0.674744 0.674744 0.683319 0.683319 0.683319 0.691742 0.691742 0.691742 0.699890 0.699890 0.699890 0.708069 0.708069 0.708069 0.716156 0.716156 0.716156 0.723907 0.723907 0.723907 0.489685 0.489685 0.489685 0.496704 0.496704 0.496704 0.503784 0.503784 0.503784 0.510803 0.510803 0.510803 0.518127 0.518127 0.518127 0.525513 0.525513 0.525513 0.532867 0.532867 0.532867 0.540466 0.540466 0.540466 0.548065 0.548065 0.548065 0.555939 0.555939 0.555939 0.563995 0.563995 0.563995 0.571899 0.571899 0.571899 0.580231 0.580231 0.580231 0.588623 0.588623 0.588623 0.596954 0.596954 0.596954 0.605560 0.605560 0.605560 0.614258 0.614258 0.614258 0.622742 0.622742 0.622742 0.631500 0.631500 0.631500 0.640228 0.640228 0.640228 0.648773 0.648773 0.648773 0.657471 0.657471 0.657471 0.665924 0.665924 0.665924 0.674561 0.674561 0.674561 0.683075 0.683075 0.683075 0.691315 0.691315 0.691315 0.699677 0.699677 0.699677 0.707855 0.707855 0.707855 0.715759 0.715759 0.715759 0.723694 0.723694 0.723694 0.731445 0.731445 0.731445 0.738892 0.738892 0.738892 0.503418 0.503418 0.503418 0.510651 0.510651 0.510651 0.517944 0.517944 0.517944 0.525146 0.525146 0.525146 0.532654 0.532654 0.532654 0.540283 0.540283 0.540283 0.547821 0.547821 0.547821 0.555725 0.555725 0.555725 0.563538 0.563538 0.563538 0.571686 0.571686 0.571686 0.580017 0.580017 0.580017 0.588196 0.588196 0.588196 0.596741 0.596741 0.596741 0.605347 0.605347 0.605347 0.613770 0.613770 0.613770 0.622528 0.622528 0.622528 0.631256 0.631256 0.631256 0.639801 0.639801 0.639801 0.648529 0.648529 0.648529 0.657074 0.657074 0.657074 0.665680 0.665680 0.665680 0.674347 0.674347 0.674347 0.682648 0.682648 0.682648 0.691101 0.691101 0.691101 0.699432 0.699432 0.699432 0.707458 0.707458 0.707458 0.715576 0.715576 0.715576 0.723511 0.723511 0.723511 0.731079 0.731079 0.731079 0.738708 0.738708 0.738708 0.745941 0.745941 0.745941 0.753174 0.753174 0.753174 0.517548 0.517548 0.517548 0.524963 0.524963 0.524963 0.532471 0.532471 0.532471 0.539886 0.539886 0.539886 0.547668 0.547668 0.547668 0.555328 0.555328 0.555328 0.563354 0.563354 0.563354 0.571503 0.571503 0.571503 0.579590 0.579590 0.579590 0.588013 0.588013 0.588013 0.596527 0.596527 0.596527 0.604919 0.604919 0.604919 0.613586 0.613586 0.613586 0.622284 0.622284 0.622284 0.630829 0.630829 0.630829 0.639557 0.639557 0.639557 0.648315 0.648315 0.648315 0.656830 0.656830 0.656830 0.665497 0.665497 0.665497 0.673889 0.673889 0.673889 0.682465 0.682465 0.682465 0.690887 0.690887 0.690887 0.699036 0.699036 0.699036 0.707275 0.707275 0.707275 0.715363 0.715363 0.715363 0.723145 0.723145 0.723145 0.730927 0.730927 0.730927 0.738495 0.738495 0.738495 0.745758 0.745758 0.745758 0.752991 0.752991 0.752991 0.759888 0.759888 0.759888 0.766693 0.766693 0.766693 0.532104 0.532104 0.532104 0.539734 0.539734 0.539734 0.547455 0.547455 0.547455 0.555115 0.555115 0.555115 0.563141 0.563141 0.563141 0.571106 0.571106 0.571106 0.579376 0.579376 0.579376 0.587799 0.587799 0.587799 0.596100 0.596100 0.596100 0.604675 0.604675 0.604675 0.613342 0.613342 0.613342 0.621857 0.621857 0.621857 0.630615 0.630615 0.630615 0.639374 0.639374 0.639374 0.647888 0.647888 0.647888 0.656616 0.656616 0.656616 0.665039 0.665039 0.665039 0.673706 0.673706 0.673706 0.682251 0.682251 0.682251 0.690491 0.690491 0.690491 0.698822 0.698822 0.698822 0.707062 0.707062 0.707062 0.714966 0.714966 0.714966 0.722931 0.722931 0.722931 0.730682 0.730682 0.730682 0.738129 0.738129 0.738129 0.745605 0.745605 0.745605 0.752655 0.752655 0.752655 0.759674 0.759674 0.759674 0.766510 0.766510 0.766510 0.772949 0.772949 0.772949 0.779327 0.779327 0.779327 0.070679 0.070679 0.070679 0.075134 0.075134 0.075134 0.079681 0.079681 0.079681 0.084595 0.084595 0.084595 0.089722 0.089722 0.089722 0.094971 0.094971 0.094971 0.100647 0.100647 0.100647 0.106628 0.106628 0.106628 0.112762 0.112762 0.112762 0.119415 0.119415 0.119415 0.126221 0.126221 0.126221 0.133606 0.133606 0.133606 0.141449 0.141449 0.141449 0.149506 0.149506 0.149506 0.158264 0.158264 0.158264 0.167572 0.167572 0.167572 0.177032 0.177032 0.177032 0.187073 0.187073 0.187073 0.197357 0.197357 0.197357 0.207458 0.207458 0.207458 0.217896 0.217896 0.217896 0.227966 0.227966 0.227966 0.238098 0.238098 0.238098 0.248108 0.248108 0.248108 0.257629 0.257629 0.257629 0.267273 0.267273 0.267273 0.276703 0.276703 0.276703 0.285736 0.285736 0.285736 0.294830 0.294830 0.294830 0.303680 0.303680 0.303680 0.312195 0.312195 0.312195 0.320709 0.320709 0.320709 0.079559 0.079559 0.079559 0.084473 0.084473 0.084473 0.089447 0.089447 0.089447 0.094818 0.094818 0.094818 0.100525 0.100525 0.100525 0.106323 0.106323 0.106323 0.112610 0.112610 0.112610 0.119080 0.119080 0.119080 0.126068 0.126068 0.126068 0.133423 0.133423 0.133423 0.141052 0.141052 0.141052 0.149323 0.149323 0.149323 0.158081 0.158081 0.158081 0.167114 0.167114 0.167114 0.176788 0.176788 0.176788 0.186829 0.186829 0.186829 0.196808 0.196808 0.196808 0.207214 0.207214 0.207214 0.217346 0.217346 0.217346 0.227692 0.227692 0.227692 0.237854 0.237854 0.237854 0.247589 0.247589 0.247589 0.257385 0.257385 0.257385 0.267059 0.267059 0.267059 0.276245 0.276245 0.276245 0.285492 0.285492 0.285492 0.294586 0.294586 0.294586 0.303253 0.303253 0.303253 0.311981 0.311981 0.311981 0.320251 0.320251 0.320251 0.328674 0.328674 0.328674 0.336853 0.336853 0.336853 0.089325 0.089325 0.089325 0.094696 0.094696 0.094696 0.100220 0.100220 0.100220 0.106171 0.106171 0.106171 0.112427 0.112427 0.112427 0.118896 0.118896 0.118896 0.125854 0.125854 0.125854 0.133057 0.133057 0.133057 0.140839 0.140839 0.140839 0.149078 0.149078 0.149078 0.157623 0.157623 0.157623 0.166840 0.166840 0.166840 0.176544 0.176544 0.176544 0.186310 0.186310 0.186310 0.196564 0.196564 0.196564 0.206940 0.206940 0.206940 0.217102 0.217102 0.217102 0.227448 0.227448 0.227448 0.237335 0.237335 0.237335 0.247314 0.247314 0.247314 0.257172 0.257172 0.257172 0.266541 0.266541 0.266541 0.276001 0.276001 0.276001 0.285248 0.285248 0.285248 0.294128 0.294128 0.294128 0.303009 0.303009 0.303009 0.311737 0.311737 0.311737 0.320099 0.320099 0.320099 0.328461 0.328461 0.328461 0.336426 0.336426 0.336426 0.344482 0.344482 0.344482 0.352325 0.352325 0.352325 0.100098 0.100098 0.100098 0.106018 0.106018 0.106018 0.112122 0.112122 0.112122 0.118713 0.118713 0.118713 0.125488 0.125488 0.125488 0.132843 0.132843 0.132843 0.140625 0.140625 0.140625 0.148682 0.148682 0.148682 0.157410 0.157410 0.157410 0.166595 0.166595 0.166595 0.176056 0.176056 0.176056 0.186035 0.186035 0.186035 0.196289 0.196289 0.196289 0.206421 0.206421 0.206421 0.216827 0.216827 0.216827 0.226929 0.226929 0.226929 0.237091 0.237091 0.237091 0.247070 0.247070 0.247070 0.256653 0.256653 0.256653 0.266296 0.266296 0.266296 0.275757 0.275757 0.275757 0.284821 0.284821 0.284821 0.293915 0.293915 0.293915 0.302795 0.302795 0.302795 0.311310 0.311310 0.311310 0.319855 0.319855 0.319855 0.328033 0.328033 0.328033 0.336243 0.336243 0.336243 0.344269 0.344269 0.344269 0.351959 0.351959 0.351959 0.359711 0.359711 0.359711 0.367310 0.367310 0.367310 0.111938 0.111938 0.111938 0.118530 0.118530 0.118530 0.125305 0.125305 0.125305 0.132660 0.132660 0.132660 0.140228 0.140228 0.140228 0.148438 0.148438 0.148438 0.157166 0.157166 0.157166 0.166138 0.166138 0.166138 0.175781 0.175781 0.175781 0.185791 0.185791 0.185791 0.195801 0.195801 0.195801 0.206177 0.206177 0.206177 0.216583 0.216583 0.216583 0.226685 0.226685 0.226685 0.236847 0.236847 0.236847 0.246582 0.246582 0.246582 0.256409 0.256409 0.256409 0.266052 0.266052 0.266052 0.275299 0.275299 0.275299 0.284576 0.284576 0.284576 0.293671 0.293671 0.293671 0.302368 0.302368 0.302368 0.311066 0.311066 0.311066 0.319641 0.319641 0.319641 0.327789 0.327789 0.327789 0.336029 0.336029 0.336029 0.343872 0.343872 0.343872 0.351776 0.351776 0.351776 0.359497 0.359497 0.359497 0.366943 0.366943 0.366943 0.374390 0.374390 0.374390 0.381744 0.381744 0.381744 0.125153 0.125153 0.125153 0.132294 0.132294 0.132294 0.140045 0.140045 0.140045 0.148285 0.148285 0.148285 0.156708 0.156708 0.156708 0.165894 0.165894 0.165894 0.175537 0.175537 0.175537 0.185272 0.185272 0.185272 0.195526 0.195526 0.195526 0.205902 0.205902 0.205902 0.216064 0.216064 0.216064 0.226410 0.226410 0.226410 0.236328 0.236328 0.236328 0.246338 0.246338 0.246338 0.256165 0.256165 0.256165 0.265594 0.265594 0.265594 0.275085 0.275085 0.275085 0.284332 0.284332 0.284332 0.293213 0.293213 0.293213 0.302155 0.302155 0.302155 0.310913 0.310913 0.310913 0.319214 0.319214 0.319214 0.327637 0.327637 0.327637 0.335846 0.335846 0.335846 0.343689 0.343689 0.343689 0.351562 0.351562 0.351562 0.359131 0.359131 0.359131 0.366730 0.366730 0.366730 0.374207 0.374207 0.374207 0.381378 0.381378 0.381378 0.388611 0.388611 0.388611 0.395752 0.395752 0.395752 0.139832 0.139832 0.139832 0.147827 0.147827 0.147827 0.156494 0.156494 0.156494 0.165680 0.165680 0.165680 0.175049 0.175049 0.175049 0.185028 0.185028 0.185028 0.195251 0.195251 0.195251 0.205383 0.205383 0.205383 0.215790 0.215790 0.215790 0.226166 0.226166 0.226166 0.236053 0.236053 0.236053 0.246094 0.246094 0.246094 0.255707 0.255707 0.255707 0.265350 0.265350 0.265350 0.274841 0.274841 0.274841 0.283905 0.283905 0.283905 0.292999 0.292999 0.292999 0.301941 0.301941 0.301941 0.310455 0.310455 0.310455 0.319000 0.319000 0.319000 0.327393 0.327393 0.327393 0.335419 0.335419 0.335419 0.343506 0.343506 0.343506 0.351166 0.351166 0.351166 0.358948 0.358948 0.358948 0.366547 0.366547 0.366547 0.373840 0.373840 0.373840 0.381195 0.381195 0.381195 0.388428 0.388428 0.388428 0.395416 0.395416 0.395416 0.402435 0.402435 0.402435 0.409424 0.409424 0.409424 0.156281 0.156281 0.156281 0.165222 0.165222 0.165222 0.174805 0.174805 0.174805 0.184753 0.184753 0.184753 0.194763 0.194763 0.194763 0.205109 0.205109 0.205109 0.215546 0.215546 0.215546 0.225647 0.225647 0.225647 0.235840 0.235840 0.235840 0.245636 0.245636 0.245636 0.255463 0.255463 0.255463 0.265106 0.265106 0.265106 0.274323 0.274323 0.274323 0.283661 0.283661 0.283661 0.292786 0.292786 0.292786 0.301483 0.301483 0.301483 0.310242 0.310242 0.310242 0.318817 0.318817 0.318817 0.326996 0.326996 0.326996 0.335205 0.335205 0.335205 0.343262 0.343262 0.343262 0.350983 0.350983 0.350983 0.358734 0.358734 0.358734 0.366180 0.366180 0.366180 0.373657 0.373657 0.373657 0.381012 0.381012 0.381012 0.388062 0.388062 0.388062 0.395203 0.395203 0.395203 0.402252 0.402252 0.402252 0.409058 0.409058 0.409058 0.415955 0.415955 0.415955 0.422791 0.422791 0.422791 0.174591 0.174591 0.174591 0.184265 0.184265 0.184265 0.194489 0.194489 0.194489 0.204865 0.204865 0.204865 0.215027 0.215027 0.215027 0.225372 0.225372 0.225372 0.235596 0.235596 0.235596 0.245361 0.245361 0.245361 0.255219 0.255219 0.255219 0.264618 0.264618 0.264618 0.274109 0.274109 0.274109 0.283417 0.283417 0.283417 0.292328 0.292328 0.292328 0.301270 0.301270 0.301270 0.310028 0.310028 0.310028 0.318390 0.318390 0.318390 0.326782 0.326782 0.326782 0.335022 0.335022 0.335022 0.342865 0.342865 0.342865 0.350800 0.350800 0.350800 0.358368 0.358368 0.358368 0.365967 0.365967 0.365967 0.373474 0.373474 0.373474 0.380615 0.380615 0.380615 0.387878 0.387878 0.387878 0.395020 0.395020 0.395020 0.401917 0.401917 0.401917 0.408905 0.408905 0.408905 0.415802 0.415802 0.415802 0.422455 0.422455 0.422455 0.429260 0.429260 0.429260 0.435883 0.435883 0.435883 0.194244 0.194244 0.194244 0.204346 0.204346 0.204346 0.214752 0.214752 0.214752 0.225128 0.225128 0.225128 0.235077 0.235077 0.235077 0.245117 0.245117 0.245117 0.254730 0.254730 0.254730 0.264404 0.264404 0.264404 0.273895 0.273895 0.273895 0.282990 0.282990 0.282990 0.292114 0.292114 0.292114 0.301056 0.301056 0.301056 0.309601 0.309601 0.309601 0.318176 0.318176 0.318176 0.326599 0.326599 0.326599 0.334625 0.334625 0.334625 0.342682 0.342682 0.342682 0.350616 0.350616 0.350616 0.358154 0.358154 0.358154 0.365784 0.365784 0.365784 0.373077 0.373077 0.373077 0.380463 0.380463 0.380463 0.387695 0.387695 0.387695 0.394684 0.394684 0.394684 0.401764 0.401764 0.401764 0.408722 0.408722 0.408722 0.415436 0.415436 0.415436 0.422272 0.422272 0.422272 0.429108 0.429108 0.429108 0.435699 0.435699 0.435699 0.442444 0.442444 0.442444 0.449036 0.449036 0.449036 0.214508 0.214508 0.214508 0.224609 0.224609 0.224609 0.234833 0.234833 0.234833 0.244843 0.244843 0.244843 0.254456 0.254456 0.254456 0.264160 0.264160 0.264160 0.273407 0.273407 0.273407 0.282745 0.282745 0.282745 0.291870 0.291870 0.291870 0.300598 0.300598 0.300598 0.309357 0.309357 0.309357 0.317932 0.317932 0.317932 0.326172 0.326172 0.326172 0.334412 0.334412 0.334412 0.342468 0.342468 0.342468 0.350189 0.350189 0.350189 0.357971 0.357971 0.357971 0.365417 0.365417 0.365417 0.372894 0.372894 0.372894 0.380280 0.380280 0.380280 0.387360 0.387360 0.387360 0.394501 0.394501 0.394501 0.401550 0.401550 0.401550 0.408386 0.408386 0.408386 0.415283 0.415283 0.415283 0.422119 0.422119 0.422119 0.428772 0.428772 0.428772 0.435516 0.435516 0.435516 0.442108 0.442108 0.442108 0.448883 0.448883 0.448883 0.455627 0.455627 0.455627 0.462219 0.462219 0.462219 0.234558 0.234558 0.234558 0.244354 0.244354 0.244354 0.254211 0.254211 0.254211 0.263672 0.263672 0.263672 0.273193 0.273193 0.273193 0.282501 0.282501 0.282501 0.291412 0.291412 0.291412 0.300385 0.300385 0.300385 0.309143 0.309143 0.309143 0.317535 0.317535 0.317535 0.325958 0.325958 0.325958 0.334167 0.334167 0.334167 0.342072 0.342072 0.342072 0.349976 0.349976 0.349976 0.357574 0.357574 0.357574 0.365204 0.365204 0.365204 0.372711 0.372711 0.372711 0.379883 0.379883 0.379883 0.387177 0.387177 0.387177 0.394318 0.394318 0.394318 0.401215 0.401215 0.401215 0.408203 0.408203 0.408203 0.415100 0.415100 0.415100 0.421753 0.421753 0.421753 0.428589 0.428589 0.428589 0.435364 0.435364 0.435364 0.441956 0.441956 0.441956 0.448700 0.448700 0.448700 0.455292 0.455292 0.455292 0.462036 0.462036 0.462036 0.468842 0.468842 0.468842 0.475494 0.475494 0.475494 0.253967 0.253967 0.253967 0.263428 0.263428 0.263428 0.272949 0.272949 0.272949 0.282043 0.282043 0.282043 0.291199 0.291199 0.291199 0.300140 0.300140 0.300140 0.308716 0.308716 0.308716 0.317291 0.317291 0.317291 0.325745 0.325745 0.325745 0.333801 0.333801 0.333801 0.341858 0.341858 0.341858 0.349823 0.349823 0.349823 0.357391 0.357391 0.357391 0.365051 0.365051 0.365051 0.372314 0.372314 0.372314 0.379700 0.379700 0.379700 0.386993 0.386993 0.386993 0.393982 0.393982 0.393982 0.401031 0.401031 0.401031 0.408020 0.408020 0.408020 0.414764 0.414764 0.414764 0.421631 0.421631 0.421631 0.428406 0.428406 0.428406 0.435028 0.435028 0.435028 0.441772 0.441772 0.441772 0.448364 0.448364 0.448364 0.455109 0.455109 0.455109 0.461884 0.461884 0.461884 0.468506 0.468506 0.468506 0.475342 0.475342 0.475342 0.482208 0.482208 0.482208 0.488983 0.488983 0.488983 0.272491 0.272491 0.272491 0.281830 0.281830 0.281830 0.290985 0.290985 0.290985 0.299713 0.299713 0.299713 0.308502 0.308502 0.308502 0.317108 0.317108 0.317108 0.325317 0.325317 0.325317 0.333588 0.333588 0.333588 0.341675 0.341675 0.341675 0.349396 0.349396 0.349396 0.357208 0.357208 0.357208 0.364655 0.364655 0.364655 0.372192 0.372192 0.372192 0.379547 0.379547 0.379547 0.386597 0.386597 0.386597 0.393768 0.393768 0.393768 0.400848 0.400848 0.400848 0.407684 0.407684 0.407684 0.414612 0.414612 0.414612 0.421448 0.421448 0.421448 0.428101 0.428101 0.428101 0.434875 0.434875 0.434875 0.441620 0.441620 0.441620 0.448212 0.448212 0.448212 0.454956 0.454956 0.454956 0.461548 0.461548 0.461548 0.468323 0.468323 0.468323 0.475159 0.475159 0.475159 0.481873 0.481873 0.481873 0.488831 0.488831 0.488831 0.495819 0.495819 0.495819 0.502747 0.502747 0.502747 0.290527 0.290527 0.290527 0.299500 0.299500 0.299500 0.308289 0.308289 0.308289 0.316681 0.316681 0.316681 0.325104 0.325104 0.325104 0.333374 0.333374 0.333374 0.341278 0.341278 0.341278 0.349213 0.349213 0.349213 0.356995 0.356995 0.356995 0.364471 0.364471 0.364471 0.371979 0.371979 0.371979 0.379181 0.379181 0.379181 0.386444 0.386444 0.386444 0.393616 0.393616 0.393616 0.400482 0.400482 0.400482 0.407501 0.407501 0.407501 0.414429 0.414429 0.414429 0.421112 0.421112 0.421112 0.427887 0.427887 0.427887 0.434692 0.434692 0.434692 0.441284 0.441284 0.441284 0.448029 0.448029 0.448029 0.454590 0.454590 0.454590 0.461365 0.461365 0.461365 0.468140 0.468140 0.468140 0.474823 0.474823 0.474823 0.481689 0.481689 0.481689 0.488617 0.488617 0.488617 0.495483 0.495483 0.495483 0.502533 0.502533 0.502533 0.509735 0.509735 0.509735 0.516815 0.516815 0.516815 0.307861 0.307861 0.307861 0.316467 0.316467 0.316467 0.324890 0.324890 0.324890 0.332977 0.332977 0.332977 0.341064 0.341064 0.341064 0.349030 0.349030 0.349030 0.356598 0.356598 0.356598 0.364258 0.364258 0.364258 0.371796 0.371796 0.371796 0.378967 0.378967 0.378967 0.386261 0.386261 0.386261 0.393250 0.393250 0.393250 0.400360 0.400360 0.400360 0.407318 0.407318 0.407318 0.414062 0.414062 0.414062 0.420929 0.420929 0.420929 0.427734 0.427734 0.427734 0.434357 0.434357 0.434357 0.441101 0.441101 0.441101 0.447845 0.447845 0.447845 0.454437 0.454437 0.454437 0.461212 0.461212 0.461212 0.467834 0.467834 0.467834 0.474640 0.474640 0.474640 0.481506 0.481506 0.481506 0.488281 0.488281 0.488281 0.495270 0.495270 0.495270 0.502380 0.502380 0.502380 0.509369 0.509369 0.509369 0.516663 0.516663 0.516663 0.524017 0.524017 0.524017 0.531342 0.531342 0.531342 0.324493 0.324493 0.324493 0.332764 0.332764 0.332764 0.340881 0.340881 0.340881 0.348633 0.348633 0.348633 0.356445 0.356445 0.356445 0.364105 0.364105 0.364105 0.371399 0.371399 0.371399 0.378815 0.378815 0.378815 0.386078 0.386078 0.386078 0.393097 0.393097 0.393097 0.400146 0.400146 0.400146 0.406982 0.406982 0.406982 0.413879 0.413879 0.413879 0.420776 0.420776 0.420776 0.427399 0.427399 0.427399 0.434204 0.434204 0.434204 0.440948 0.440948 0.440948 0.447510 0.447510 0.447510 0.454254 0.454254 0.454254 0.461029 0.461029 0.461029 0.467651 0.467651 0.467651 0.474457 0.474457 0.474457 0.481201 0.481201 0.481201 0.488098 0.488098 0.488098 0.495087 0.495087 0.495087 0.502014 0.502014 0.502014 0.509186 0.509186 0.509186 0.516449 0.516449 0.516449 0.523651 0.523651 0.523651 0.531158 0.531158 0.531158 0.538727 0.538727 0.538727 0.546295 0.546295 0.546295 0.340485 0.340485 0.340485 0.348419 0.348419 0.348419 0.356232 0.356232 0.356232 0.363708 0.363708 0.363708 0.371246 0.371246 0.371246 0.378601 0.378601 0.378601 0.385742 0.385742 0.385742 0.392883 0.392883 0.392883 0.399811 0.399811 0.399811 0.406799 0.406799 0.406799 0.413727 0.413727 0.413727 0.420410 0.420410 0.420410 0.427246 0.427246 0.427246 0.433990 0.433990 0.433990 0.440582 0.440582 0.440582 0.447357 0.447357 0.447357 0.454102 0.454102 0.454102 0.460693 0.460693 0.460693 0.467468 0.467468 0.467468 0.474304 0.474304 0.474304 0.481018 0.481018 0.481018 0.487915 0.487915 0.487915 0.494781 0.494781 0.494781 0.501862 0.501862 0.501862 0.509003 0.509003 0.509003 0.516113 0.516113 0.516113 0.523468 0.523468 0.523468 0.530945 0.530945 0.530945 0.538361 0.538361 0.538361 0.546112 0.546112 0.546112 0.553955 0.553955 0.553955 0.561737 0.561737 0.561737 0.355835 0.355835 0.355835 0.363495 0.363495 0.363495 0.371033 0.371033 0.371033 0.378265 0.378265 0.378265 0.385559 0.385559 0.385559 0.392731 0.392731 0.392731 0.399628 0.399628 0.399628 0.406616 0.406616 0.406616 0.413361 0.413361 0.413361 0.420227 0.420227 0.420227 0.427063 0.427063 0.427063 0.433685 0.433685 0.433685 0.440430 0.440430 0.440430 0.447205 0.447205 0.447205 0.453766 0.453766 0.453766 0.460541 0.460541 0.460541 0.467316 0.467316 0.467316 0.473938 0.473938 0.473938 0.480835 0.480835 0.480835 0.487579 0.487579 0.487579 0.494568 0.494568 0.494568 0.501678 0.501678 0.501678 0.508636 0.508636 0.508636 0.515900 0.515900 0.515900 0.523285 0.523285 0.523285 0.530579 0.530579 0.530579 0.538177 0.538177 0.538177 0.545898 0.545898 0.545898 0.553558 0.553558 0.553558 0.561554 0.561554 0.561554 0.569458 0.569458 0.569458 0.577698 0.577698 0.577698 0.370667 0.370667 0.370667 0.378082 0.378082 0.378082 0.385376 0.385376 0.385376 0.392365 0.392365 0.392365 0.399445 0.399445 0.399445 0.406281 0.406281 0.406281 0.413208 0.413208 0.413208 0.420074 0.420074 0.420074 0.426727 0.426727 0.426727 0.433502 0.433502 0.433502 0.440277 0.440277 0.440277 0.446838 0.446838 0.446838 0.453613 0.453613 0.453613 0.460358 0.460358 0.460358 0.466949 0.466949 0.466949 0.473785 0.473785 0.473785 0.480682 0.480682 0.480682 0.487427 0.487427 0.487427 0.494415 0.494415 0.494415 0.501312 0.501312 0.501312 0.508453 0.508453 0.508453 0.515747 0.515747 0.515747 0.522888 0.522888 0.522888 0.530396 0.530396 0.530396 0.537964 0.537964 0.537964 0.545502 0.545502 0.545502 0.553375 0.553375 0.553375 0.561340 0.561340 0.561340 0.569244 0.569244 0.569244 0.577515 0.577515 0.577515 0.585663 0.585663 0.585663 0.594147 0.594147 0.594147 0.385010 0.385010 0.385010 0.392181 0.392181 0.392181 0.399292 0.399292 0.399292 0.406097 0.406097 0.406097 0.413055 0.413055 0.413055 0.419708 0.419708 0.419708 0.426544 0.426544 0.426544 0.433319 0.433319 0.433319 0.439941 0.439941 0.439941 0.446686 0.446686 0.446686 0.453430 0.453430 0.453430 0.460022 0.460022 0.460022 0.466797 0.466797 0.466797 0.473633 0.473633 0.473633 0.480316 0.480316 0.480316 0.487244 0.487244 0.487244 0.494049 0.494049 0.494049 0.501129 0.501129 0.501129 0.508301 0.508301 0.508301 0.515381 0.515381 0.515381 0.522736 0.522736 0.522736 0.530212 0.530212 0.530212 0.537598 0.537598 0.537598 0.545319 0.545319 0.545319 0.553162 0.553162 0.553162 0.560944 0.560944 0.560944 0.569061 0.569061 0.569061 0.577118 0.577118 0.577118 0.585449 0.585449 0.585449 0.593964 0.593964 0.593964 0.602325 0.602325 0.602325 0.610992 0.610992 0.610992 0.398926 0.398926 0.398926 0.405914 0.405914 0.405914 0.412872 0.412872 0.412872 0.419556 0.419556 0.419556 0.426392 0.426392 0.426392 0.432983 0.432983 0.432983 0.439758 0.439758 0.439758 0.446503 0.446503 0.446503 0.453064 0.453064 0.453064 0.459869 0.459869 0.459869 0.466614 0.466614 0.466614 0.473297 0.473297 0.473297 0.480164 0.480164 0.480164 0.486908 0.486908 0.486908 0.493896 0.493896 0.493896 0.500946 0.500946 0.500946 0.507935 0.507935 0.507935 0.515198 0.515198 0.515198 0.522552 0.522552 0.522552 0.529816 0.529816 0.529816 0.537415 0.537415 0.537415 0.545135 0.545135 0.545135 0.552734 0.552734 0.552734 0.560760 0.560760 0.560760 0.568817 0.568817 0.568817 0.576874 0.576874 0.576874 0.585266 0.585266 0.585266 0.593536 0.593536 0.593536 0.602081 0.602081 0.602081 0.610748 0.610748 0.610748 0.619232 0.619232 0.619232 0.627960 0.627960 0.627960 0.412537 0.412537 0.412537 0.419403 0.419403 0.419403 0.426056 0.426056 0.426056 0.432831 0.432831 0.432831 0.439606 0.439606 0.439606 0.446167 0.446167 0.446167 0.452911 0.452911 0.452911 0.459656 0.459656 0.459656 0.466278 0.466278 0.466278 0.473114 0.473114 0.473114 0.479950 0.479950 0.479950 0.486694 0.486694 0.486694 0.493683 0.493683 0.493683 0.500610 0.500610 0.500610 0.507751 0.507751 0.507751 0.514984 0.514984 0.514984 0.522186 0.522186 0.522186 0.529633 0.529633 0.529633 0.537201 0.537201 0.537201 0.544739 0.544739 0.544739 0.552582 0.552582 0.552582 0.560516 0.560516 0.560516 0.568451 0.568451 0.568451 0.576691 0.576691 0.576691 0.584839 0.584839 0.584839 0.593323 0.593323 0.593323 0.601898 0.601898 0.601898 0.610321 0.610321 0.610321 0.619049 0.619049 0.619049 0.627747 0.627747 0.627747 0.636322 0.636322 0.636322 0.645050 0.645050 0.645050 0.425873 0.425873 0.425873 0.432648 0.432648 0.432648 0.439270 0.439270 0.439270 0.446014 0.446014 0.446014 0.452728 0.452728 0.452728 0.459320 0.459320 0.459320 0.466125 0.466125 0.466125 0.472931 0.472931 0.472931 0.479614 0.479614 0.479614 0.486542 0.486542 0.486542 0.493530 0.493530 0.493530 0.500427 0.500427 0.500427 0.507568 0.507568 0.507568 0.514618 0.514618 0.514618 0.521973 0.521973 0.521973 0.529449 0.529449 0.529449 0.536835 0.536835 0.536835 0.544525 0.544525 0.544525 0.552368 0.552368 0.552368 0.560120 0.560120 0.560120 0.568237 0.568237 0.568237 0.576477 0.576477 0.576477 0.584656 0.584656 0.584656 0.593079 0.593079 0.593079 0.601440 0.601440 0.601440 0.610107 0.610107 0.610107 0.618805 0.618805 0.618805 0.627319 0.627319 0.627319 0.636078 0.636078 0.636078 0.644836 0.644836 0.644836 0.653320 0.653320 0.653320 0.662018 0.662018 0.662018 0.439087 0.439087 0.439087 0.445831 0.445831 0.445831 0.452393 0.452393 0.452393 0.459167 0.459167 0.459167 0.465942 0.465942 0.465942 0.472595 0.472595 0.472595 0.479462 0.479462 0.479462 0.486359 0.486359 0.486359 0.493195 0.493195 0.493195 0.500244 0.500244 0.500244 0.507202 0.507202 0.507202 0.514465 0.514465 0.514465 0.521820 0.521820 0.521820 0.529083 0.529083 0.529083 0.536621 0.536621 0.536621 0.544342 0.544342 0.544342 0.551971 0.551971 0.551971 0.559937 0.559937 0.559937 0.568024 0.568024 0.568024 0.576080 0.576080 0.576080 0.584412 0.584412 0.584412 0.592682 0.592682 0.592682 0.601257 0.601257 0.601257 0.609894 0.609894 0.609894 0.618378 0.618378 0.618378 0.627106 0.627106 0.627106 0.635864 0.635864 0.635864 0.644379 0.644379 0.644379 0.653137 0.653137 0.653137 0.661804 0.661804 0.661804 0.670227 0.670227 0.670227 0.678833 0.678833 0.678833 0.452271 0.452271 0.452271 0.459015 0.459015 0.459015 0.465607 0.465607 0.465607 0.472412 0.472412 0.472412 0.479279 0.479279 0.479279 0.486023 0.486023 0.486023 0.493011 0.493011 0.493011 0.500061 0.500061 0.500061 0.507050 0.507050 0.507050 0.514282 0.514282 0.514282 0.521423 0.521423 0.521423 0.528870 0.528870 0.528870 0.536438 0.536438 0.536438 0.543945 0.543945 0.543945 0.551788 0.551788 0.551788 0.559753 0.559753 0.559753 0.567627 0.567627 0.567627 0.575867 0.575867 0.575867 0.584198 0.584198 0.584198 0.592438 0.592438 0.592438 0.601013 0.601013 0.601013 0.609467 0.609467 0.609467 0.618134 0.618134 0.618134 0.626862 0.626862 0.626862 0.635406 0.635406 0.635406 0.644196 0.644196 0.644196 0.652924 0.652924 0.652924 0.661377 0.661377 0.661377 0.670044 0.670044 0.670044 0.678650 0.678650 0.678650 0.686920 0.686920 0.686920 0.695282 0.695282 0.695282 0.465454 0.465454 0.465454 0.472260 0.472260 0.472260 0.478943 0.478943 0.478943 0.485870 0.485870 0.485870 0.492828 0.492828 0.492828 0.499695 0.499695 0.499695 0.506836 0.506836 0.506836 0.513885 0.513885 0.513885 0.521240 0.521240 0.521240 0.528687 0.528687 0.528687 0.536072 0.536072 0.536072 0.543762 0.543762 0.543762 0.551575 0.551575 0.551575 0.559326 0.559326 0.559326 0.567383 0.567383 0.567383 0.575653 0.575653 0.575653 0.583771 0.583771 0.583771 0.592255 0.592255 0.592255 0.600800 0.600800 0.600800 0.609253 0.609253 0.609253 0.617950 0.617950 0.617950 0.626465 0.626465 0.626465 0.635193 0.635193 0.635193 0.643982 0.643982 0.643982 0.652466 0.652466 0.652466 0.661194 0.661194 0.661194 0.669800 0.669800 0.669800 0.678162 0.678162 0.678162 0.686676 0.686676 0.686676 0.694885 0.694885 0.694885 0.703156 0.703156 0.703156 0.711334 0.711334 0.711334 0.478760 0.478760 0.478760 0.485687 0.485687 0.485687 0.492493 0.492493 0.492493 0.499512 0.499512 0.499512 0.506683 0.506683 0.506683 0.513702 0.513702 0.513702 0.521057 0.521057 0.521057 0.528320 0.528320 0.528320 0.535858 0.535858 0.535858 0.543579 0.543579 0.543579 0.551178 0.551178 0.551178 0.559113 0.559113 0.559113 0.567200 0.567200 0.567200 0.575195 0.575195 0.575195 0.583557 0.583557 0.583557 0.592041 0.592041 0.592041 0.600372 0.600372 0.600372 0.609009 0.609009 0.609009 0.617493 0.617493 0.617493 0.626221 0.626221 0.626221 0.635010 0.635010 0.635010 0.643524 0.643524 0.643524 0.652252 0.652252 0.652252 0.660980 0.660980 0.660980 0.669403 0.669403 0.669403 0.677979 0.677979 0.677979 0.686493 0.686493 0.686493 0.694672 0.694672 0.694672 0.702972 0.702972 0.702972 0.710938 0.710938 0.710938 0.718964 0.718964 0.718964 0.726807 0.726807 0.726807 0.492310 0.492310 0.492310 0.499329 0.499329 0.499329 0.506317 0.506317 0.506317 0.513519 0.513519 0.513519 0.520660 0.520660 0.520660 0.528137 0.528137 0.528137 0.535706 0.535706 0.535706 0.543182 0.543182 0.543182 0.550995 0.550995 0.550995 0.558929 0.558929 0.558929 0.566803 0.566803 0.566803 0.575012 0.575012 0.575012 0.583374 0.583374 0.583374 0.591614 0.591614 0.591614 0.600159 0.600159 0.600159 0.608582 0.608582 0.608582 0.617279 0.617279 0.617279 0.626038 0.626038 0.626038 0.634521 0.634521 0.634521 0.643311 0.643311 0.643311 0.652039 0.652039 0.652039 0.660522 0.660522 0.660522 0.669159 0.669159 0.669159 0.677734 0.677734 0.677734 0.686035 0.686035 0.686035 0.694458 0.694458 0.694458 0.702759 0.702759 0.702759 0.710724 0.710724 0.710724 0.718750 0.718750 0.718750 0.726440 0.726440 0.726440 0.734192 0.734192 0.734192 0.741699 0.741699 0.741699 0.506134 0.506134 0.506134 0.513367 0.513367 0.513367 0.520508 0.520508 0.520508 0.527954 0.527954 0.527954 0.535339 0.535339 0.535339 0.542999 0.542999 0.542999 0.550781 0.550781 0.550781 0.558563 0.558563 0.558563 0.566589 0.566589 0.566589 0.574799 0.574799 0.574799 0.582947 0.582947 0.582947 0.591400 0.591400 0.591400 0.599945 0.599945 0.599945 0.608368 0.608368 0.608368 0.617065 0.617065 0.617065 0.625580 0.625580 0.625580 0.634308 0.634308 0.634308 0.643066 0.643066 0.643066 0.651611 0.651611 0.651611 0.660309 0.660309 0.660309 0.668945 0.668945 0.668945 0.677338 0.677338 0.677338 0.685822 0.685822 0.685822 0.694244 0.694244 0.694244 0.702362 0.702362 0.702362 0.710510 0.710510 0.710510 0.718353 0.718353 0.718353 0.726257 0.726257 0.726257 0.733978 0.733978 0.733978 0.741333 0.741333 0.741333 0.748688 0.748688 0.748688 0.755859 0.755859 0.755859 0.520325 0.520325 0.520325 0.527557 0.527557 0.527557 0.535126 0.535126 0.535126 0.542786 0.542786 0.542786 0.550385 0.550385 0.550385 0.558319 0.558319 0.558319 0.566376 0.566376 0.566376 0.574402 0.574402 0.574402 0.582703 0.582703 0.582703 0.591187 0.591187 0.591187 0.599518 0.599518 0.599518 0.608154 0.608154 0.608154 0.616638 0.616638 0.616638 0.625336 0.625336 0.625336 0.634125 0.634125 0.634125 0.642670 0.642670 0.642670 0.651367 0.651367 0.651367 0.660095 0.660095 0.660095 0.668518 0.668518 0.668518 0.677094 0.677094 0.677094 0.685638 0.685638 0.685638 0.693817 0.693817 0.693817 0.702118 0.702118 0.702118 0.710297 0.710297 0.710297 0.718140 0.718140 0.718140 0.726044 0.726044 0.726044 0.733582 0.733582 0.733582 0.741150 0.741150 0.741150 0.748474 0.748474 0.748474 0.755493 0.755493 0.755493 0.762451 0.762451 0.762451 0.769226 0.769226 0.769226 0.534943 0.534943 0.534943 0.542389 0.542389 0.542389 0.550201 0.550201 0.550201 0.558136 0.558136 0.558136 0.565979 0.565979 0.565979 0.574188 0.574188 0.574188 0.582520 0.582520 0.582520 0.590759 0.590759 0.590759 0.599304 0.599304 0.599304 0.607941 0.607941 0.607941 0.616394 0.616394 0.616394 0.625153 0.625153 0.625153 0.633667 0.633667 0.633667 0.642426 0.642426 0.642426 0.651154 0.651154 0.651154 0.659637 0.659637 0.659637 0.668304 0.668304 0.668304 0.676880 0.676880 0.676880 0.685211 0.685211 0.685211 0.693634 0.693634 0.693634 0.701904 0.701904 0.701904 0.709900 0.709900 0.709900 0.717957 0.717957 0.717957 0.725677 0.725677 0.725677 0.733398 0.733398 0.733398 0.740967 0.740967 0.740967 0.748138 0.748138 0.748138 0.755341 0.755341 0.755341 0.762268 0.762268 0.762268 0.768829 0.768829 0.768829 0.775360 0.775360 0.775360 0.781677 0.781677 0.781677 0.072296 0.072296 0.072296 0.076721 0.076721 0.076721 0.081482 0.081482 0.081482 0.086365 0.086365 0.086365 0.091583 0.091583 0.091583 0.097076 0.097076 0.097076 0.102692 0.102692 0.102692 0.108795 0.108795 0.108795 0.115204 0.115204 0.115204 0.121796 0.121796 0.121796 0.128937 0.128937 0.128937 0.136475 0.136475 0.136475 0.144257 0.144257 0.144257 0.152740 0.152740 0.152740 0.161499 0.161499 0.161499 0.170929 0.170929 0.170929 0.180725 0.180725 0.180725 0.190643 0.190643 0.190643 0.200958 0.200958 0.200958 0.211365 0.211365 0.211365 0.221527 0.221527 0.221527 0.231750 0.231750 0.231750 0.241882 0.241882 0.241882 0.251526 0.251526 0.251526 0.261261 0.261261 0.261261 0.270813 0.270813 0.270813 0.279968 0.279968 0.279968 0.289124 0.289124 0.289124 0.297943 0.297943 0.297943 0.306763 0.306763 0.306763 0.315399 0.315399 0.315399 0.323639 0.323639 0.323639 0.081360 0.081360 0.081360 0.086212 0.086212 0.086212 0.091431 0.091431 0.091431 0.096802 0.096802 0.096802 0.102570 0.102570 0.102570 0.108612 0.108612 0.108612 0.114868 0.114868 0.114868 0.121643 0.121643 0.121643 0.128784 0.128784 0.128784 0.136108 0.136108 0.136108 0.144073 0.144073 0.144073 0.152557 0.152557 0.152557 0.161255 0.161255 0.161255 0.170685 0.170685 0.170685 0.180237 0.180237 0.180237 0.190399 0.190399 0.190399 0.200714 0.200714 0.200714 0.210846 0.210846 0.210846 0.221252 0.221252 0.221252 0.231476 0.231476 0.231476 0.241364 0.241364 0.241364 0.251282 0.251282 0.251282 0.261047 0.261047 0.261047 0.270355 0.270355 0.270355 0.279724 0.279724 0.279724 0.288696 0.288696 0.288696 0.297699 0.297699 0.297699 0.306519 0.306519 0.306519 0.314972 0.314972 0.314972 0.323425 0.323425 0.323425 0.331757 0.331757 0.331757 0.339691 0.339691 0.339691 0.091309 0.091309 0.091309 0.096649 0.096649 0.096649 0.102417 0.102417 0.102417 0.108307 0.108307 0.108307 0.114716 0.114716 0.114716 0.121460 0.121460 0.121460 0.128387 0.128387 0.128387 0.135895 0.135895 0.135895 0.143860 0.143860 0.143860 0.152100 0.152100 0.152100 0.161011 0.161011 0.161011 0.170197 0.170197 0.170197 0.179993 0.179993 0.179993 0.190094 0.190094 0.190094 0.200165 0.200165 0.200165 0.210602 0.210602 0.210602 0.220978 0.220978 0.220978 0.231018 0.231018 0.231018 0.241119 0.241119 0.241119 0.251038 0.251038 0.251038 0.260559 0.260559 0.260559 0.270142 0.270142 0.270142 0.279510 0.279510 0.279510 0.288483 0.288483 0.288483 0.297485 0.297485 0.297485 0.306122 0.306122 0.306122 0.314728 0.314728 0.314728 0.323242 0.323242 0.323242 0.331329 0.331329 0.331329 0.339478 0.339478 0.339478 0.347443 0.347443 0.347443 0.355072 0.355072 0.355072 0.102112 0.102112 0.102112 0.108185 0.108185 0.108185 0.114532 0.114532 0.114532 0.121094 0.121094 0.121094 0.128204 0.128204 0.128204 0.135712 0.135712 0.135712 0.143463 0.143463 0.143463 0.151886 0.151886 0.151886 0.160767 0.160767 0.160767 0.169952 0.169952 0.169952 0.179749 0.179749 0.179749 0.189606 0.189606 0.189606 0.199921 0.199921 0.199921 0.210327 0.210327 0.210327 0.220459 0.220459 0.220459 0.230774 0.230774 0.230774 0.240875 0.240875 0.240875 0.250549 0.250549 0.250549 0.260315 0.260315 0.260315 0.269867 0.269867 0.269867 0.279053 0.279053 0.279053 0.288239 0.288239 0.288239 0.297028 0.297028 0.297028 0.305878 0.305878 0.305878 0.314545 0.314545 0.314545 0.322815 0.322815 0.322815 0.331116 0.331116 0.331116 0.339264 0.339264 0.339264 0.347046 0.347046 0.347046 0.354889 0.354889 0.354889 0.362579 0.362579 0.362579 0.369904 0.369904 0.369904 0.114227 0.114227 0.114227 0.120941 0.120941 0.120941 0.128021 0.128021 0.128021 0.135315 0.135315 0.135315 0.143250 0.143250 0.143250 0.151642 0.151642 0.151642 0.160339 0.160339 0.160339 0.169708 0.169708 0.169708 0.179504 0.179504 0.179504 0.189301 0.189301 0.189301 0.199677 0.199677 0.199677 0.209808 0.209808 0.209808 0.220215 0.220215 0.220215 0.230530 0.230530 0.230530 0.240356 0.240356 0.240356 0.250305 0.250305 0.250305 0.260040 0.260040 0.260040 0.269379 0.269379 0.269379 0.278809 0.278809 0.278809 0.288025 0.288025 0.288025 0.296783 0.296783 0.296783 0.305664 0.305664 0.305664 0.314117 0.314117 0.314117 0.322601 0.322601 0.322601 0.330902 0.330902 0.330902 0.338837 0.338837 0.338837 0.346863 0.346863 0.346863 0.354675 0.354675 0.354675 0.362183 0.362183 0.362183 0.369751 0.369751 0.369751 0.377136 0.377136 0.377136 0.384277 0.384277 0.384277 0.127686 0.127686 0.127686 0.135162 0.135162 0.135162 0.143066 0.143066 0.143066 0.151215 0.151215 0.151215 0.160095 0.160095 0.160095 0.169464 0.169464 0.169464 0.179016 0.179016 0.179016 0.189056 0.189056 0.189056 0.199158 0.199158 0.199158 0.209564 0.209564 0.209564 0.219940 0.219940 0.219940 0.230011 0.230011 0.230011 0.240112 0.240112 0.240112 0.250031 0.250031 0.250031 0.259583 0.259583 0.259583 0.269135 0.269135 0.269135 0.278564 0.278564 0.278564 0.287567 0.287567 0.287567 0.296600 0.296600 0.296600 0.305206 0.305206 0.305206 0.313904 0.313904 0.313904 0.322388 0.322388 0.322388 0.330505 0.330505 0.330505 0.338684 0.338684 0.338684 0.346649 0.346649 0.346649 0.354279 0.354279 0.354279 0.362000 0.362000 0.362000 0.369568 0.369568 0.369568 0.376770 0.376770 0.376770 0.384094 0.384094 0.384094 0.391113 0.391113 0.391113 0.398224 0.398224 0.398224 0.142639 0.142639 0.142639 0.151001 0.151001 0.151001 0.159882 0.159882 0.159882 0.169006 0.169006 0.169006 0.178772 0.178772 0.178772 0.188812 0.188812 0.188812 0.198914 0.198914 0.198914 0.209290 0.209290 0.209290 0.219452 0.219452 0.219452 0.229736 0.229736 0.229736 0.239868 0.239868 0.239868 0.249542 0.249542 0.249542 0.259338 0.259338 0.259338 0.268921 0.268921 0.268921 0.278107 0.278107 0.278107 0.287323 0.287323 0.287323 0.296387 0.296387 0.296387 0.304993 0.304993 0.304993 0.313690 0.313690 0.313690 0.321960 0.321960 0.321960 0.330322 0.330322 0.330322 0.338470 0.338470 0.338470 0.346252 0.346252 0.346252 0.354095 0.354095 0.354095 0.361816 0.361816 0.361816 0.369171 0.369171 0.369171 0.376587 0.376587 0.376587 0.383911 0.383911 0.383911 0.390961 0.390961 0.390961 0.398010 0.398010 0.398010 0.404907 0.404907 0.404907 0.411804 0.411804 0.411804 0.159454 0.159454 0.159454 0.168762 0.168762 0.168762 0.178528 0.178528 0.178528 0.188324 0.188324 0.188324 0.198639 0.198639 0.198639 0.208771 0.208771 0.208771 0.219177 0.219177 0.219177 0.229462 0.229462 0.229462 0.239349 0.239349 0.239349 0.249329 0.249329 0.249329 0.259094 0.259094 0.259094 0.268463 0.268463 0.268463 0.277863 0.277863 0.277863 0.287109 0.287109 0.287109 0.295898 0.295898 0.295898 0.304810 0.304810 0.304810 0.313263 0.313263 0.313263 0.321747 0.321747 0.321747 0.330109 0.330109 0.330109 0.338043 0.338043 0.338043 0.346069 0.346069 0.346069 0.353912 0.353912 0.353912 0.361420 0.361420 0.361420 0.368988 0.368988 0.368988 0.376434 0.376434 0.376434 0.383545 0.383545 0.383545 0.390747 0.390747 0.390747 0.397705 0.397705 0.397705 0.404724 0.404724 0.404724 0.411652 0.411652 0.411652 0.418365 0.418365 0.418365 0.425171 0.425171 0.425171 0.178009 0.178009 0.178009 0.188080 0.188080 0.188080 0.198364 0.198364 0.198364 0.208527 0.208527 0.208527 0.218933 0.218933 0.218933 0.228973 0.228973 0.228973 0.239136 0.239136 0.239136 0.249084 0.249084 0.249084 0.258606 0.258606 0.258606 0.268219 0.268219 0.268219 0.277618 0.277618 0.277618 0.286652 0.286652 0.286652 0.295715 0.295715 0.295715 0.304565 0.304565 0.304565 0.313049 0.313049 0.313049 0.321564 0.321564 0.321564 0.329712 0.329712 0.329712 0.337860 0.337860 0.337860 0.345886 0.345886 0.345886 0.353516 0.353516 0.353516 0.361267 0.361267 0.361267 0.368805 0.368805 0.368805 0.376068 0.376068 0.376068 0.383362 0.383362 0.383362 0.390594 0.390594 0.390594 0.397522 0.397522 0.397522 0.404510 0.404510 0.404510 0.411316 0.411316 0.411316 0.418182 0.418182 0.418182 0.425018 0.425018 0.425018 0.431641 0.431641 0.431641 0.438385 0.438385 0.438385 0.197845 0.197845 0.197845 0.208252 0.208252 0.208252 0.218414 0.218414 0.218414 0.228699 0.228699 0.228699 0.238892 0.238892 0.238892 0.248596 0.248596 0.248596 0.258362 0.258362 0.258362 0.267975 0.267975 0.267975 0.277161 0.277161 0.277161 0.286407 0.286407 0.286407 0.295471 0.295471 0.295471 0.304138 0.304138 0.304138 0.312836 0.312836 0.312836 0.321167 0.321167 0.321167 0.329468 0.329468 0.329468 0.337677 0.337677 0.337677 0.345459 0.345459 0.345459 0.353363 0.353363 0.353363 0.361053 0.361053 0.361053 0.368408 0.368408 0.368408 0.375854 0.375854 0.375854 0.383179 0.383179 0.383179 0.390228 0.390228 0.390228 0.397339 0.397339 0.397339 0.404358 0.404358 0.404358 0.411133 0.411133 0.411133 0.417999 0.417999 0.417999 0.424683 0.424683 0.424683 0.431488 0.431488 0.431488 0.438263 0.438263 0.438263 0.444824 0.444824 0.444824 0.451569 0.451569 0.451569 0.218140 0.218140 0.218140 0.228455 0.228455 0.228455 0.238373 0.238373 0.238373 0.248352 0.248352 0.248352 0.258118 0.258118 0.258118 0.267517 0.267517 0.267517 0.276917 0.276917 0.276917 0.286194 0.286194 0.286194 0.295013 0.295013 0.295013 0.303925 0.303925 0.303925 0.312622 0.312622 0.312622 0.320923 0.320923 0.320923 0.329285 0.329285 0.329285 0.337250 0.337250 0.337250 0.345306 0.345306 0.345306 0.353149 0.353149 0.353149 0.360657 0.360657 0.360657 0.368225 0.368225 0.368225 0.375702 0.375702 0.375702 0.382843 0.382843 0.382843 0.390045 0.390045 0.390045 0.397186 0.397186 0.397186 0.403992 0.403992 0.403992 0.410980 0.410980 0.410980 0.417664 0.417664 0.417664 0.424500 0.424500 0.424500 0.431305 0.431305 0.431305 0.437897 0.437897 0.437897 0.444641 0.444641 0.444641 0.451416 0.451416 0.451416 0.457977 0.457977 0.457977 0.464752 0.464752 0.464752 0.238098 0.238098 0.238098 0.248108 0.248108 0.248108 0.257629 0.257629 0.257629 0.267273 0.267273 0.267273 0.276703 0.276703 0.276703 0.285736 0.285736 0.285736 0.294830 0.294830 0.294830 0.303680 0.303680 0.303680 0.312195 0.312195 0.312195 0.320709 0.320709 0.320709 0.328827 0.328827 0.328827 0.337036 0.337036 0.337036 0.345062 0.345062 0.345062 0.352722 0.352722 0.352722 0.360474 0.360474 0.360474 0.368042 0.368042 0.368042 0.375336 0.375336 0.375336 0.382660 0.382660 0.382660 0.389862 0.389862 0.389862 0.396820 0.396820 0.396820 0.403839 0.403839 0.403839 0.410797 0.410797 0.410797 0.417480 0.417480 0.417480 0.424347 0.424347 0.424347 0.430969 0.430969 0.430969 0.437744 0.437744 0.437744 0.444489 0.444489 0.444489 0.451080 0.451080 0.451080 0.457825 0.457825 0.457825 0.464600 0.464600 0.464600 0.471222 0.471222 0.471222 0.478088 0.478088 0.478088 0.257385 0.257385 0.257385 0.267059 0.267059 0.267059 0.276245 0.276245 0.276245 0.285492 0.285492 0.285492 0.294586 0.294586 0.294586 0.303253 0.303253 0.303253 0.311981 0.311981 0.311981 0.320496 0.320496 0.320496 0.328674 0.328674 0.328674 0.336853 0.336853 0.336853 0.344666 0.344666 0.344666 0.352539 0.352539 0.352539 0.360260 0.360260 0.360260 0.367676 0.367676 0.367676 0.375122 0.375122 0.375122 0.382446 0.382446 0.382446 0.389526 0.389526 0.389526 0.396637 0.396637 0.396637 0.403656 0.403656 0.403656 0.410461 0.410461 0.410461 0.417328 0.417328 0.417328 0.424011 0.424011 0.424011 0.430817 0.430817 0.430817 0.437592 0.437592 0.437592 0.444153 0.444153 0.444153 0.450897 0.450897 0.450897 0.457642 0.457642 0.457642 0.464233 0.464233 0.464233 0.471069 0.471069 0.471069 0.477936 0.477936 0.477936 0.484650 0.484650 0.484650 0.491608 0.491608 0.491608 0.276001 0.276001 0.276001 0.285248 0.285248 0.285248 0.294128 0.294128 0.294128 0.303009 0.303009 0.303009 0.311737 0.311737 0.311737 0.320099 0.320099 0.320099 0.328461 0.328461 0.328461 0.336426 0.336426 0.336426 0.344482 0.344482 0.344482 0.352325 0.352325 0.352325 0.359894 0.359894 0.359894 0.367462 0.367462 0.367462 0.374969 0.374969 0.374969 0.382080 0.382080 0.382080 0.389313 0.389313 0.389313 0.396454 0.396454 0.396454 0.403320 0.403320 0.403320 0.410278 0.410278 0.410278 0.417175 0.417175 0.417175 0.423828 0.423828 0.423828 0.430603 0.430603 0.430603 0.437225 0.437225 0.437225 0.443970 0.443970 0.443970 0.450714 0.450714 0.450714 0.457306 0.457306 0.457306 0.464081 0.464081 0.464081 0.470886 0.470886 0.470886 0.477570 0.477570 0.477570 0.484467 0.484467 0.484467 0.491425 0.491425 0.491425 0.498291 0.498291 0.498291 0.505432 0.505432 0.505432 0.293915 0.293915 0.293915 0.302795 0.302795 0.302795 0.311310 0.311310 0.311310 0.319855 0.319855 0.319855 0.328247 0.328247 0.328247 0.336243 0.336243 0.336243 0.344269 0.344269 0.344269 0.351959 0.351959 0.351959 0.359711 0.359711 0.359711 0.367310 0.367310 0.367310 0.374573 0.374573 0.374573 0.381927 0.381927 0.381927 0.389160 0.389160 0.389160 0.396088 0.396088 0.396088 0.403168 0.403168 0.403168 0.410095 0.410095 0.410095 0.416840 0.416840 0.416840 0.423676 0.423676 0.423676 0.430298 0.430298 0.430298 0.437073 0.437073 0.437073 0.443817 0.443817 0.443817 0.450378 0.450378 0.450378 0.457123 0.457123 0.457123 0.463928 0.463928 0.463928 0.470551 0.470551 0.470551 0.477386 0.477386 0.477386 0.484283 0.484283 0.484283 0.491089 0.491089 0.491089 0.498077 0.498077 0.498077 0.505066 0.505066 0.505066 0.512268 0.512268 0.512268 0.519592 0.519592 0.519592 0.311066 0.311066 0.311066 0.319641 0.319641 0.319641 0.327789 0.327789 0.327789 0.336029 0.336029 0.336029 0.343872 0.343872 0.343872 0.351776 0.351776 0.351776 0.359497 0.359497 0.359497 0.366943 0.366943 0.366943 0.374390 0.374390 0.374390 0.381744 0.381744 0.381744 0.388794 0.388794 0.388794 0.395935 0.395935 0.395935 0.402954 0.402954 0.402954 0.409760 0.409760 0.409760 0.416656 0.416656 0.416656 0.423340 0.423340 0.423340 0.430115 0.430115 0.430115 0.436890 0.436890 0.436890 0.443451 0.443451 0.443451 0.450226 0.450226 0.450226 0.456970 0.456970 0.456970 0.463562 0.463562 0.463562 0.470367 0.470367 0.470367 0.477203 0.477203 0.477203 0.483948 0.483948 0.483948 0.490906 0.490906 0.490906 0.497955 0.497955 0.497955 0.504883 0.504883 0.504883 0.512085 0.512085 0.512085 0.519226 0.519226 0.519226 0.526642 0.526642 0.526642 0.534180 0.534180 0.534180 0.327637 0.327637 0.327637 0.335846 0.335846 0.335846 0.343689 0.343689 0.343689 0.351562 0.351562 0.351562 0.359314 0.359314 0.359314 0.366730 0.366730 0.366730 0.374207 0.374207 0.374207 0.381378 0.381378 0.381378 0.388611 0.388611 0.388611 0.395752 0.395752 0.395752 0.402618 0.402618 0.402618 0.409576 0.409576 0.409576 0.416473 0.416473 0.416473 0.423126 0.423126 0.423126 0.429932 0.429932 0.429932 0.436707 0.436707 0.436707 0.443298 0.443298 0.443298 0.450073 0.450073 0.450073 0.456635 0.456635 0.456635 0.463409 0.463409 0.463409 0.470184 0.470184 0.470184 0.476868 0.476868 0.476868 0.483734 0.483734 0.483734 0.490692 0.490692 0.490692 0.497589 0.497589 0.497589 0.504700 0.504700 0.504700 0.511902 0.511902 0.511902 0.519043 0.519043 0.519043 0.526428 0.526428 0.526428 0.533783 0.533783 0.533783 0.541443 0.541443 0.541443 0.549225 0.549225 0.549225 0.343506 0.343506 0.343506 0.351379 0.351379 0.351379 0.358948 0.358948 0.358948 0.366547 0.366547 0.366547 0.373840 0.373840 0.373840 0.381195 0.381195 0.381195 0.388428 0.388428 0.388428 0.395416 0.395416 0.395416 0.402435 0.402435 0.402435 0.409424 0.409424 0.409424 0.416138 0.416138 0.416138 0.422974 0.422974 0.422974 0.429779 0.429779 0.429779 0.436371 0.436371 0.436371 0.443146 0.443146 0.443146 0.449707 0.449707 0.449707 0.456451 0.456451 0.456451 0.463226 0.463226 0.463226 0.469879 0.469879 0.469879 0.476685 0.476685 0.476685 0.483612 0.483612 0.483612 0.490387 0.490387 0.490387 0.497406 0.497406 0.497406 0.504517 0.504517 0.504517 0.511536 0.511536 0.511536 0.518860 0.518860 0.518860 0.526245 0.526245 0.526245 0.533600 0.533600 0.533600 0.541260 0.541260 0.541260 0.548828 0.548828 0.548828 0.556732 0.556732 0.556732 0.564758 0.564758 0.564758 0.358734 0.358734 0.358734 0.366364 0.366364 0.366364 0.373657 0.373657 0.373657 0.381012 0.381012 0.381012 0.388062 0.388062 0.388062 0.395203 0.395203 0.395203 0.402252 0.402252 0.402252 0.409058 0.409058 0.409058 0.415955 0.415955 0.415955 0.422791 0.422791 0.422791 0.429443 0.429443 0.429443 0.436218 0.436218 0.436218 0.442963 0.442963 0.442963 0.449554 0.449554 0.449554 0.456299 0.456299 0.456299 0.462921 0.462921 0.462921 0.469696 0.469696 0.469696 0.476532 0.476532 0.476532 0.483246 0.483246 0.483246 0.490173 0.490173 0.490173 0.497223 0.497223 0.497223 0.504181 0.504181 0.504181 0.511353 0.511353 0.511353 0.518677 0.518677 0.518677 0.525879 0.525879 0.525879 0.533417 0.533417 0.533417 0.540863 0.540863 0.540863 0.548645 0.548645 0.548645 0.556519 0.556519 0.556519 0.564362 0.564362 0.564362 0.572540 0.572540 0.572540 0.580841 0.580841 0.580841 0.373474 0.373474 0.373474 0.380615 0.380615 0.380615 0.387878 0.387878 0.387878 0.395020 0.395020 0.395020 0.401917 0.401917 0.401917 0.408905 0.408905 0.408905 0.415802 0.415802 0.415802 0.422455 0.422455 0.422455 0.429260 0.429260 0.429260 0.436035 0.436035 0.436035 0.442627 0.442627 0.442627 0.449371 0.449371 0.449371 0.455963 0.455963 0.455963 0.462708 0.462708 0.462708 0.469543 0.469543 0.469543 0.476196 0.476196 0.476196 0.483063 0.483063 0.483063 0.490051 0.490051 0.490051 0.496887 0.496887 0.496887 0.503967 0.503967 0.503967 0.511200 0.511200 0.511200 0.518280 0.518280 0.518280 0.525696 0.525696 0.525696 0.533234 0.533234 0.533234 0.540680 0.540680 0.540680 0.548431 0.548431 0.548431 0.556152 0.556152 0.556152 0.564178 0.564178 0.564178 0.572327 0.572327 0.572327 0.580414 0.580414 0.580414 0.588837 0.588837 0.588837 0.597382 0.597382 0.597382 0.387695 0.387695 0.387695 0.394684 0.394684 0.394684 0.401764 0.401764 0.401764 0.408722 0.408722 0.408722 0.415436 0.415436 0.415436 0.422272 0.422272 0.422272 0.429108 0.429108 0.429108 0.435699 0.435699 0.435699 0.442444 0.442444 0.442444 0.449188 0.449188 0.449188 0.455780 0.455780 0.455780 0.462555 0.462555 0.462555 0.469177 0.469177 0.469177 0.476013 0.476013 0.476013 0.482910 0.482910 0.482910 0.489685 0.489685 0.489685 0.496704 0.496704 0.496704 0.503784 0.503784 0.503784 0.510803 0.510803 0.510803 0.518127 0.518127 0.518127 0.525513 0.525513 0.525513 0.532867 0.532867 0.532867 0.540466 0.540466 0.540466 0.548065 0.548065 0.548065 0.555939 0.555939 0.555939 0.563995 0.563995 0.563995 0.571899 0.571899 0.571899 0.580231 0.580231 0.580231 0.588623 0.588623 0.588623 0.596954 0.596954 0.596954 0.605560 0.605560 0.605560 0.614258 0.614258 0.614258 0.401550 0.401550 0.401550 0.408386 0.408386 0.408386 0.415283 0.415283 0.415283 0.422119 0.422119 0.422119 0.428772 0.428772 0.428772 0.435516 0.435516 0.435516 0.442291 0.442291 0.442291 0.448883 0.448883 0.448883 0.455627 0.455627 0.455627 0.462219 0.462219 0.462219 0.469025 0.469025 0.469025 0.475861 0.475861 0.475861 0.482544 0.482544 0.482544 0.489502 0.489502 0.489502 0.496521 0.496521 0.496521 0.503418 0.503418 0.503418 0.510651 0.510651 0.510651 0.517944 0.517944 0.517944 0.525146 0.525146 0.525146 0.532654 0.532654 0.532654 0.540283 0.540283 0.540283 0.547821 0.547821 0.547821 0.555725 0.555725 0.555725 0.563538 0.563538 0.563538 0.571686 0.571686 0.571686 0.580017 0.580017 0.580017 0.588196 0.588196 0.588196 0.596741 0.596741 0.596741 0.605347 0.605347 0.605347 0.613770 0.613770 0.613770 0.622528 0.622528 0.622528 0.631256 0.631256 0.631256 0.415100 0.415100 0.415100 0.421753 0.421753 0.421753 0.428589 0.428589 0.428589 0.435364 0.435364 0.435364 0.441956 0.441956 0.441956 0.448700 0.448700 0.448700 0.455444 0.455444 0.455444 0.462036 0.462036 0.462036 0.468842 0.468842 0.468842 0.475494 0.475494 0.475494 0.482391 0.482391 0.482391 0.489349 0.489349 0.489349 0.496155 0.496155 0.496155 0.503265 0.503265 0.503265 0.510437 0.510437 0.510437 0.517548 0.517548 0.517548 0.524963 0.524963 0.524963 0.532471 0.532471 0.532471 0.539886 0.539886 0.539886 0.547668 0.547668 0.547668 0.555328 0.555328 0.555328 0.563354 0.563354 0.563354 0.571503 0.571503 0.571503 0.579590 0.579590 0.579590 0.588013 0.588013 0.588013 0.596527 0.596527 0.596527 0.604919 0.604919 0.604919 0.613586 0.613586 0.613586 0.622284 0.622284 0.622284 0.630829 0.630829 0.630829 0.639557 0.639557 0.639557 0.648132 0.648132 0.648132 0.428406 0.428406 0.428406 0.435028 0.435028 0.435028 0.441772 0.441772 0.441772 0.448517 0.448517 0.448517 0.455109 0.455109 0.455109 0.461884 0.461884 0.461884 0.468506 0.468506 0.468506 0.475342 0.475342 0.475342 0.482208 0.482208 0.482208 0.488983 0.488983 0.488983 0.496002 0.496002 0.496002 0.503082 0.503082 0.503082 0.510101 0.510101 0.510101 0.517395 0.517395 0.517395 0.524780 0.524780 0.524780 0.532104 0.532104 0.532104 0.539734 0.539734 0.539734 0.547455 0.547455 0.547455 0.555115 0.555115 0.555115 0.563141 0.563141 0.563141 0.571106 0.571106 0.571106 0.579376 0.579376 0.579376 0.587799 0.587799 0.587799 0.596100 0.596100 0.596100 0.604675 0.604675 0.604675 0.613342 0.613342 0.613342 0.621857 0.621857 0.621857 0.630615 0.630615 0.630615 0.639374 0.639374 0.639374 0.647888 0.647888 0.647888 0.656616 0.656616 0.656616 0.665039 0.665039 0.665039 0.441620 0.441620 0.441620 0.448212 0.448212 0.448212 0.454956 0.454956 0.454956 0.461700 0.461700 0.461700 0.468323 0.468323 0.468323 0.475159 0.475159 0.475159 0.481873 0.481873 0.481873 0.488831 0.488831 0.488831 0.495819 0.495819 0.495819 0.502747 0.502747 0.502747 0.509888 0.509888 0.509888 0.517212 0.517212 0.517212 0.524414 0.524414 0.524414 0.531891 0.531891 0.531891 0.539520 0.539520 0.539520 0.547058 0.547058 0.547058 0.554932 0.554932 0.554932 0.562775 0.562775 0.562775 0.570892 0.570892 0.570892 0.579193 0.579193 0.579193 0.587372 0.587372 0.587372 0.595856 0.595856 0.595856 0.604462 0.604462 0.604462 0.612946 0.612946 0.612946 0.621643 0.621643 0.621643 0.630371 0.630371 0.630371 0.638916 0.638916 0.638916 0.647675 0.647675 0.647675 0.656158 0.656158 0.656158 0.664856 0.664856 0.664856 0.673462 0.673462 0.673462 0.681793 0.681793 0.681793 0.454773 0.454773 0.454773 0.461365 0.461365 0.461365 0.468140 0.468140 0.468140 0.474976 0.474976 0.474976 0.481689 0.481689 0.481689 0.488617 0.488617 0.488617 0.495483 0.495483 0.495483 0.502533 0.502533 0.502533 0.509735 0.509735 0.509735 0.516815 0.516815 0.516815 0.524200 0.524200 0.524200 0.531708 0.531708 0.531708 0.539093 0.539093 0.539093 0.546875 0.546875 0.546875 0.554535 0.554535 0.554535 0.562561 0.562561 0.562561 0.570679 0.570679 0.570679 0.578766 0.578766 0.578766 0.587128 0.587128 0.587128 0.595673 0.595673 0.595673 0.604034 0.604034 0.604034 0.612701 0.612701 0.612701 0.621399 0.621399 0.621399 0.629944 0.629944 0.629944 0.638702 0.638702 0.638702 0.647430 0.647430 0.647430 0.655914 0.655914 0.655914 0.664612 0.664612 0.664612 0.673065 0.673065 0.673065 0.681610 0.681610 0.681610 0.690063 0.690063 0.690063 0.698212 0.698212 0.698212 0.467987 0.467987 0.467987 0.474640 0.474640 0.474640 0.481506 0.481506 0.481506 0.488281 0.488281 0.488281 0.495270 0.495270 0.495270 0.502380 0.502380 0.502380 0.509369 0.509369 0.509369 0.516663 0.516663 0.516663 0.524017 0.524017 0.524017 0.531342 0.531342 0.531342 0.538940 0.538940 0.538940 0.546661 0.546661 0.546661 0.554352 0.554352 0.554352 0.562347 0.562347 0.562347 0.570282 0.570282 0.570282 0.578552 0.578552 0.578552 0.586945 0.586945 0.586945 0.595215 0.595215 0.595215 0.603821 0.603821 0.603821 0.612488 0.612488 0.612488 0.621002 0.621002 0.621002 0.629730 0.629730 0.629730 0.638489 0.638489 0.638489 0.647003 0.647003 0.647003 0.655731 0.655731 0.655731 0.664215 0.664215 0.664215 0.672821 0.672821 0.672821 0.681366 0.681366 0.681366 0.689667 0.689667 0.689667 0.697998 0.697998 0.697998 0.706238 0.706238 0.706238 0.714142 0.714142 0.714142 0.481354 0.481354 0.481354 0.488098 0.488098 0.488098 0.495087 0.495087 0.495087 0.502014 0.502014 0.502014 0.509186 0.509186 0.509186 0.516449 0.516449 0.516449 0.523651 0.523651 0.523651 0.531158 0.531158 0.531158 0.538727 0.538727 0.538727 0.546295 0.546295 0.546295 0.554169 0.554169 0.554169 0.562134 0.562134 0.562134 0.570068 0.570068 0.570068 0.578308 0.578308 0.578308 0.586517 0.586517 0.586517 0.595032 0.595032 0.595032 0.603607 0.603607 0.603607 0.612061 0.612061 0.612061 0.620758 0.620758 0.620758 0.629517 0.629517 0.629517 0.638031 0.638031 0.638031 0.646790 0.646790 0.646790 0.655518 0.655518 0.655518 0.664001 0.664001 0.664001 0.672607 0.672607 0.672607 0.680969 0.680969 0.680969 0.689423 0.689423 0.689423 0.697784 0.697784 0.697784 0.705841 0.705841 0.705841 0.713959 0.713959 0.713959 0.721924 0.721924 0.721924 0.729553 0.729553 0.729553 0.494781 0.494781 0.494781 0.501862 0.501862 0.501862 0.509003 0.509003 0.509003 0.516113 0.516113 0.516113 0.523468 0.523468 0.523468 0.530945 0.530945 0.530945 0.538361 0.538361 0.538361 0.546112 0.546112 0.546112 0.553955 0.553955 0.553955 0.561737 0.561737 0.561737 0.569885 0.569885 0.569885 0.577911 0.577911 0.577911 0.586304 0.586304 0.586304 0.594818 0.594818 0.594818 0.603180 0.603180 0.603180 0.611847 0.611847 0.611847 0.620544 0.620544 0.620544 0.629059 0.629059 0.629059 0.637817 0.637817 0.637817 0.646576 0.646576 0.646576 0.655090 0.655090 0.655090 0.663788 0.663788 0.663788 0.672150 0.672150 0.672150 0.680756 0.680756 0.680756 0.689209 0.689209 0.689209 0.697388 0.697388 0.697388 0.705627 0.705627 0.705627 0.713776 0.713776 0.713776 0.721527 0.721527 0.721527 0.729370 0.729370 0.729370 0.737000 0.737000 0.737000 0.744293 0.744293 0.744293 0.508636 0.508636 0.508636 0.515900 0.515900 0.515900 0.523285 0.523285 0.523285 0.530579 0.530579 0.530579 0.538177 0.538177 0.538177 0.545898 0.545898 0.545898 0.553558 0.553558 0.553558 0.561554 0.561554 0.561554 0.569672 0.569672 0.569672 0.577698 0.577698 0.577698 0.586090 0.586090 0.586090 0.594391 0.594391 0.594391 0.602966 0.602966 0.602966 0.611603 0.611603 0.611603 0.620117 0.620117 0.620117 0.628845 0.628845 0.628845 0.637604 0.637604 0.637604 0.646149 0.646149 0.646149 0.654877 0.654877 0.654877 0.663574 0.663574 0.663574 0.671936 0.671936 0.671936 0.680511 0.680511 0.680511 0.688812 0.688812 0.688812 0.697205 0.697205 0.697205 0.705414 0.705414 0.705414 0.713348 0.713348 0.713348 0.721344 0.721344 0.721344 0.729126 0.729126 0.729126 0.736633 0.736633 0.736633 0.744110 0.744110 0.744110 0.751373 0.751373 0.751373 0.758301 0.758301 0.758301 0.522888 0.522888 0.522888 0.530396 0.530396 0.530396 0.537964 0.537964 0.537964 0.545502 0.545502 0.545502 0.553375 0.553375 0.553375 0.561340 0.561340 0.561340 0.569244 0.569244 0.569244 0.577515 0.577515 0.577515 0.585663 0.585663 0.585663 0.594147 0.594147 0.594147 0.602722 0.602722 0.602722 0.611176 0.611176 0.611176 0.619873 0.619873 0.619873 0.628632 0.628632 0.628632 0.637146 0.637146 0.637146 0.645905 0.645905 0.645905 0.654633 0.654633 0.654633 0.663116 0.663116 0.663116 0.671753 0.671753 0.671753 0.680084 0.680084 0.680084 0.688568 0.688568 0.688568 0.696991 0.696991 0.696991 0.705017 0.705017 0.705017 0.713165 0.713165 0.713165 0.721130 0.721130 0.721130 0.728760 0.728760 0.728760 0.736450 0.736450 0.736450 0.743927 0.743927 0.743927 0.751038 0.751038 0.751038 0.758118 0.758118 0.758118 0.764832 0.764832 0.764832 0.771515 0.771515 0.771515 0.537598 0.537598 0.537598 0.545319 0.545319 0.545319 0.553162 0.553162 0.553162 0.560944 0.560944 0.560944 0.569061 0.569061 0.569061 0.577301 0.577301 0.577301 0.585449 0.585449 0.585449 0.593964 0.593964 0.593964 0.602325 0.602325 0.602325 0.610992 0.610992 0.610992 0.619690 0.619690 0.619690 0.628174 0.628174 0.628174 0.636963 0.636963 0.636963 0.645691 0.645691 0.645691 0.654236 0.654236 0.654236 0.662933 0.662933 0.662933 0.671539 0.671539 0.671539 0.679901 0.679901 0.679901 0.688354 0.688354 0.688354 0.696533 0.696533 0.696533 0.704803 0.704803 0.704803 0.712952 0.712952 0.712952 0.720703 0.720703 0.720703 0.728607 0.728607 0.728607 0.736237 0.736237 0.736237 0.743530 0.743530 0.743530 0.750854 0.750854 0.750854 0.757935 0.757935 0.757935 0.764679 0.764679 0.764679 0.771332 0.771332 0.771332 0.777588 0.777588 0.777588 0.783813 0.783813 0.783813 0.073883 0.073883 0.073883 0.078491 0.078491 0.078491 0.083191 0.083191 0.083191 0.088257 0.088257 0.088257 0.093597 0.093597 0.093597 0.099060 0.099060 0.099060 0.104950 0.104950 0.104950 0.111145 0.111145 0.111145 0.117523 0.117523 0.117523 0.124420 0.124420 0.124420 0.131531 0.131531 0.131531 0.139221 0.139221 0.139221 0.147400 0.147400 0.147400 0.155792 0.155792 0.155792 0.164978 0.164978 0.164978 0.174591 0.174591 0.174591 0.184265 0.184265 0.184265 0.194489 0.194489 0.194489 0.204865 0.204865 0.204865 0.215027 0.215027 0.215027 0.225372 0.225372 0.225372 0.235596 0.235596 0.235596 0.245361 0.245361 0.245361 0.255219 0.255219 0.255219 0.264618 0.264618 0.264618 0.274109 0.274109 0.274109 0.283417 0.283417 0.283417 0.292328 0.292328 0.292328 0.301270 0.301270 0.301270 0.310028 0.310028 0.310028 0.318390 0.318390 0.318390 0.326782 0.326782 0.326782 0.083069 0.083069 0.083069 0.088165 0.088165 0.088165 0.093353 0.093353 0.093353 0.098907 0.098907 0.098907 0.104797 0.104797 0.104797 0.110870 0.110870 0.110870 0.117340 0.117340 0.117340 0.124268 0.124268 0.124268 0.131348 0.131348 0.131348 0.139038 0.139038 0.139038 0.146973 0.146973 0.146973 0.155609 0.155609 0.155609 0.164734 0.164734 0.164734 0.174072 0.174072 0.174072 0.184021 0.184021 0.184021 0.194244 0.194244 0.194244 0.204346 0.204346 0.204346 0.214752 0.214752 0.214752 0.225128 0.225128 0.225128 0.235077 0.235077 0.235077 0.245117 0.245117 0.245117 0.254730 0.254730 0.254730 0.264404 0.264404 0.264404 0.273895 0.273895 0.273895 0.282990 0.282990 0.282990 0.292114 0.292114 0.292114 0.301056 0.301056 0.301056 0.309601 0.309601 0.309601 0.318176 0.318176 0.318176 0.326599 0.326599 0.326599 0.334625 0.334625 0.334625 0.342682 0.342682 0.342682 0.093231 0.093231 0.093231 0.098785 0.098785 0.098785 0.104492 0.104492 0.104492 0.110687 0.110687 0.110687 0.117218 0.117218 0.117218 0.123901 0.123901 0.123901 0.131134 0.131134 0.131134 0.138641 0.138641 0.138641 0.146759 0.146759 0.146759 0.155396 0.155396 0.155396 0.164246 0.164246 0.164246 0.173828 0.173828 0.173828 0.183777 0.183777 0.183777 0.193695 0.193695 0.193695 0.204102 0.204102 0.204102 0.214508 0.214508 0.214508 0.224609 0.224609 0.224609 0.234833 0.234833 0.234833 0.244843 0.244843 0.244843 0.254456 0.254456 0.254456 0.264160 0.264160 0.264160 0.273407 0.273407 0.273407 0.282745 0.282745 0.282745 0.291870 0.291870 0.291870 0.300598 0.300598 0.300598 0.309357 0.309357 0.309357 0.317932 0.317932 0.317932 0.326172 0.326172 0.326172 0.334412 0.334412 0.334412 0.342468 0.342468 0.342468 0.350189 0.350189 0.350189 0.357971 0.357971 0.357971 0.104370 0.104370 0.104370 0.110504 0.110504 0.110504 0.116852 0.116852 0.116852 0.123718 0.123718 0.123718 0.130981 0.130981 0.130981 0.138458 0.138458 0.138458 0.146576 0.146576 0.146576 0.154907 0.154907 0.154907 0.164001 0.164001 0.164001 0.173584 0.173584 0.173584 0.183289 0.183289 0.183289 0.193451 0.193451 0.193451 0.203827 0.203827 0.203827 0.213989 0.213989 0.213989 0.224335 0.224335 0.224335 0.234558 0.234558 0.234558 0.244354 0.244354 0.244354 0.254211 0.254211 0.254211 0.263672 0.263672 0.263672 0.273193 0.273193 0.273193 0.282501 0.282501 0.282501 0.291412 0.291412 0.291412 0.300385 0.300385 0.300385 0.309143 0.309143 0.309143 0.317535 0.317535 0.317535 0.325958 0.325958 0.325958 0.334167 0.334167 0.334167 0.342072 0.342072 0.342072 0.349976 0.349976 0.349976 0.357574 0.357574 0.357574 0.365204 0.365204 0.365204 0.372711 0.372711 0.372711 0.116699 0.116699 0.116699 0.123535 0.123535 0.123535 0.130615 0.130615 0.130615 0.138245 0.138245 0.138245 0.146149 0.146149 0.146149 0.154694 0.154694 0.154694 0.163788 0.163788 0.163788 0.173096 0.173096 0.173096 0.182983 0.182983 0.182983 0.193207 0.193207 0.193207 0.203308 0.203308 0.203308 0.213745 0.213745 0.213745 0.224091 0.224091 0.224091 0.234070 0.234070 0.234070 0.244110 0.244110 0.244110 0.253723 0.253723 0.253723 0.263428 0.263428 0.263428 0.272949 0.272949 0.272949 0.282043 0.282043 0.282043 0.291199 0.291199 0.291199 0.300140 0.300140 0.300140 0.308716 0.308716 0.308716 0.317291 0.317291 0.317291 0.325745 0.325745 0.325745 0.333801 0.333801 0.333801 0.341858 0.341858 0.341858 0.349823 0.349823 0.349823 0.357391 0.357391 0.357391 0.365051 0.365051 0.365051 0.372314 0.372314 0.372314 0.379700 0.379700 0.379700 0.386993 0.386993 0.386993 0.130432 0.130432 0.130432 0.138062 0.138062 0.138062 0.145935 0.145935 0.145935 0.154510 0.154510 0.154510 0.163330 0.163330 0.163330 0.172852 0.172852 0.172852 0.182739 0.182739 0.182739 0.192657 0.192657 0.192657 0.203033 0.203033 0.203033 0.213470 0.213470 0.213470 0.223572 0.223572 0.223572 0.233826 0.233826 0.233826 0.243866 0.243866 0.243866 0.253479 0.253479 0.253479 0.263184 0.263184 0.263184 0.272491 0.272491 0.272491 0.281830 0.281830 0.281830 0.290985 0.290985 0.290985 0.299713 0.299713 0.299713 0.308502 0.308502 0.308502 0.317108 0.317108 0.317108 0.325317 0.325317 0.325317 0.333588 0.333588 0.333588 0.341675 0.341675 0.341675 0.349396 0.349396 0.349396 0.357208 0.357208 0.357208 0.364655 0.364655 0.364655 0.372192 0.372192 0.372192 0.379547 0.379547 0.379547 0.386597 0.386597 0.386597 0.393768 0.393768 0.393768 0.400848 0.400848 0.400848 0.145721 0.145721 0.145721 0.154022 0.154022 0.154022 0.163116 0.163116 0.163116 0.172638 0.172638 0.172638 0.182251 0.182251 0.182251 0.192413 0.192413 0.192413 0.202789 0.202789 0.202789 0.212952 0.212952 0.212952 0.223328 0.223328 0.223328 0.233551 0.233551 0.233551 0.243378 0.243378 0.243378 0.253265 0.253265 0.253265 0.262726 0.262726 0.262726 0.272247 0.272247 0.272247 0.281586 0.281586 0.281586 0.290527 0.290527 0.290527 0.299500 0.299500 0.299500 0.308289 0.308289 0.308289 0.316681 0.316681 0.316681 0.325104 0.325104 0.325104 0.333374 0.333374 0.333374 0.341278 0.341278 0.341278 0.349213 0.349213 0.349213 0.356995 0.356995 0.356995 0.364471 0.364471 0.364471 0.371979 0.371979 0.371979 0.379181 0.379181 0.379181 0.386444 0.386444 0.386444 0.393616 0.393616 0.393616 0.400482 0.400482 0.400482 0.407501 0.407501 0.407501 0.414429 0.414429 0.414429 0.162872 0.162872 0.162872 0.172150 0.172150 0.172150 0.182007 0.182007 0.182007 0.192169 0.192169 0.192169 0.202271 0.202271 0.202271 0.212646 0.212646 0.212646 0.223053 0.223053 0.223053 0.233032 0.233032 0.233032 0.243103 0.243103 0.243103 0.253021 0.253021 0.253021 0.262482 0.262482 0.262482 0.272003 0.272003 0.272003 0.281097 0.281097 0.281097 0.290283 0.290283 0.290283 0.299255 0.299255 0.299255 0.307861 0.307861 0.307861 0.316467 0.316467 0.316467 0.324890 0.324890 0.324890 0.332977 0.332977 0.332977 0.341064 0.341064 0.341064 0.349030 0.349030 0.349030 0.356598 0.356598 0.356598 0.364258 0.364258 0.364258 0.371613 0.371613 0.371613 0.378967 0.378967 0.378967 0.386261 0.386261 0.386261 0.393250 0.393250 0.393250 0.400360 0.400360 0.400360 0.407318 0.407318 0.407318 0.414062 0.414062 0.414062 0.420929 0.420929 0.420929 0.427734 0.427734 0.427734 0.181732 0.181732 0.181732 0.191650 0.191650 0.191650 0.202026 0.202026 0.202026 0.212402 0.212402 0.212402 0.222534 0.222534 0.222534 0.232788 0.232788 0.232788 0.242828 0.242828 0.242828 0.252502 0.252502 0.252502 0.262238 0.262238 0.262238 0.271545 0.271545 0.271545 0.280884 0.280884 0.280884 0.290039 0.290039 0.290039 0.298828 0.298828 0.298828 0.307617 0.307617 0.307617 0.316254 0.316254 0.316254 0.324493 0.324493 0.324493 0.332764 0.332764 0.332764 0.340881 0.340881 0.340881 0.348633 0.348633 0.348633 0.356445 0.356445 0.356445 0.364105 0.364105 0.364105 0.371399 0.371399 0.371399 0.378815 0.378815 0.378815 0.385925 0.385925 0.385925 0.393097 0.393097 0.393097 0.400146 0.400146 0.400146 0.406982 0.406982 0.406982 0.413879 0.413879 0.413879 0.420776 0.420776 0.420776 0.427399 0.427399 0.427399 0.434204 0.434204 0.434204 0.440948 0.440948 0.440948 0.201721 0.201721 0.201721 0.211884 0.211884 0.211884 0.222260 0.222260 0.222260 0.232513 0.232513 0.232513 0.242371 0.242371 0.242371 0.252258 0.252258 0.252258 0.261993 0.261993 0.261993 0.271301 0.271301 0.271301 0.280670 0.280670 0.280670 0.289612 0.289612 0.289612 0.298584 0.298584 0.298584 0.307434 0.307434 0.307434 0.315826 0.315826 0.315826 0.324280 0.324280 0.324280 0.332581 0.332581 0.332581 0.340485 0.340485 0.340485 0.348419 0.348419 0.348419 0.356232 0.356232 0.356232 0.363708 0.363708 0.363708 0.371246 0.371246 0.371246 0.378448 0.378448 0.378448 0.385742 0.385742 0.385742 0.392883 0.392883 0.392883 0.399811 0.399811 0.399811 0.406799 0.406799 0.406799 0.413727 0.413727 0.413727 0.420410 0.420410 0.420410 0.427246 0.427246 0.427246 0.433990 0.433990 0.433990 0.440582 0.440582 0.440582 0.447357 0.447357 0.447357 0.453949 0.453949 0.453949 0.222015 0.222015 0.222015 0.232025 0.232025 0.232025 0.242126 0.242126 0.242126 0.252014 0.252014 0.252014 0.261505 0.261505 0.261505 0.271057 0.271057 0.271057 0.280426 0.280426 0.280426 0.289368 0.289368 0.289368 0.298370 0.298370 0.298370 0.306976 0.306976 0.306976 0.315613 0.315613 0.315613 0.324066 0.324066 0.324066 0.332153 0.332153 0.332153 0.340271 0.340271 0.340271 0.348236 0.348236 0.348236 0.355835 0.355835 0.355835 0.363495 0.363495 0.363495 0.371033 0.371033 0.371033 0.378265 0.378265 0.378265 0.385559 0.385559 0.385559 0.392548 0.392548 0.392548 0.399628 0.399628 0.399628 0.406616 0.406616 0.406616 0.413361 0.413361 0.413361 0.420227 0.420227 0.420227 0.427063 0.427063 0.427063 0.433685 0.433685 0.433685 0.440430 0.440430 0.440430 0.447205 0.447205 0.447205 0.453766 0.453766 0.453766 0.460541 0.460541 0.460541 0.467133 0.467133 0.467133 0.241882 0.241882 0.241882 0.251526 0.251526 0.251526 0.261261 0.261261 0.261261 0.270813 0.270813 0.270813 0.279968 0.279968 0.279968 0.289124 0.289124 0.289124 0.297943 0.297943 0.297943 0.306763 0.306763 0.306763 0.315399 0.315399 0.315399 0.323639 0.323639 0.323639 0.331940 0.331940 0.331940 0.340088 0.340088 0.340088 0.347870 0.347870 0.347870 0.355682 0.355682 0.355682 0.363312 0.363312 0.363312 0.370667 0.370667 0.370667 0.378082 0.378082 0.378082 0.385162 0.385162 0.385162 0.392365 0.392365 0.392365 0.399445 0.399445 0.399445 0.406281 0.406281 0.406281 0.413208 0.413208 0.413208 0.420074 0.420074 0.420074 0.426727 0.426727 0.426727 0.433502 0.433502 0.433502 0.440277 0.440277 0.440277 0.446838 0.446838 0.446838 0.453613 0.453613 0.453613 0.460175 0.460175 0.460175 0.466949 0.466949 0.466949 0.473785 0.473785 0.473785 0.480499 0.480499 0.480499 0.261047 0.261047 0.261047 0.270355 0.270355 0.270355 0.279724 0.279724 0.279724 0.288910 0.288910 0.288910 0.297699 0.297699 0.297699 0.306519 0.306519 0.306519 0.314972 0.314972 0.314972 0.323425 0.323425 0.323425 0.331757 0.331757 0.331757 0.339691 0.339691 0.339691 0.347656 0.347656 0.347656 0.355469 0.355469 0.355469 0.362946 0.362946 0.362946 0.370514 0.370514 0.370514 0.377899 0.377899 0.377899 0.385010 0.385010 0.385010 0.392181 0.392181 0.392181 0.399078 0.399078 0.399078 0.406097 0.406097 0.406097 0.413055 0.413055 0.413055 0.419708 0.419708 0.419708 0.426544 0.426544 0.426544 0.433319 0.433319 0.433319 0.439941 0.439941 0.439941 0.446686 0.446686 0.446686 0.453430 0.453430 0.453430 0.460022 0.460022 0.460022 0.466797 0.466797 0.466797 0.473450 0.473450 0.473450 0.480316 0.480316 0.480316 0.487244 0.487244 0.487244 0.494049 0.494049 0.494049 0.279510 0.279510 0.279510 0.288483 0.288483 0.288483 0.297485 0.297485 0.297485 0.306122 0.306122 0.306122 0.314728 0.314728 0.314728 0.323242 0.323242 0.323242 0.331329 0.331329 0.331329 0.339478 0.339478 0.339478 0.347443 0.347443 0.347443 0.355072 0.355072 0.355072 0.362762 0.362762 0.362762 0.370300 0.370300 0.370300 0.377502 0.377502 0.377502 0.384827 0.384827 0.384827 0.391846 0.391846 0.391846 0.398926 0.398926 0.398926 0.405914 0.405914 0.405914 0.412689 0.412689 0.412689 0.419556 0.419556 0.419556 0.426392 0.426392 0.426392 0.432983 0.432983 0.432983 0.439758 0.439758 0.439758 0.446503 0.446503 0.446503 0.453064 0.453064 0.453064 0.459869 0.459869 0.459869 0.466461 0.466461 0.466461 0.473297 0.473297 0.473297 0.480164 0.480164 0.480164 0.486908 0.486908 0.486908 0.493896 0.493896 0.493896 0.500946 0.500946 0.500946 0.507935 0.507935 0.507935 0.297272 0.297272 0.297272 0.305878 0.305878 0.305878 0.314545 0.314545 0.314545 0.322815 0.322815 0.322815 0.331116 0.331116 0.331116 0.339264 0.339264 0.339264 0.347046 0.347046 0.347046 0.354889 0.354889 0.354889 0.362579 0.362579 0.362579 0.369904 0.369904 0.369904 0.377350 0.377350 0.377350 0.384644 0.384644 0.384644 0.391663 0.391663 0.391663 0.398773 0.398773 0.398773 0.405579 0.405579 0.405579 0.412537 0.412537 0.412537 0.419403 0.419403 0.419403 0.426056 0.426056 0.426056 0.432831 0.432831 0.432831 0.439606 0.439606 0.439606 0.446167 0.446167 0.446167 0.452911 0.452911 0.452911 0.459656 0.459656 0.459656 0.466278 0.466278 0.466278 0.473114 0.473114 0.473114 0.479797 0.479797 0.479797 0.486694 0.486694 0.486694 0.493683 0.493683 0.493683 0.500610 0.500610 0.500610 0.507751 0.507751 0.507751 0.514984 0.514984 0.514984 0.522186 0.522186 0.522186 0.314117 0.314117 0.314117 0.322601 0.322601 0.322601 0.330902 0.330902 0.330902 0.338837 0.338837 0.338837 0.346863 0.346863 0.346863 0.354675 0.354675 0.354675 0.362183 0.362183 0.362183 0.369751 0.369751 0.369751 0.377136 0.377136 0.377136 0.384277 0.384277 0.384277 0.391449 0.391449 0.391449 0.398407 0.398407 0.398407 0.405426 0.405426 0.405426 0.412354 0.412354 0.412354 0.419037 0.419037 0.419037 0.425873 0.425873 0.425873 0.432648 0.432648 0.432648 0.439270 0.439270 0.439270 0.446014 0.446014 0.446014 0.452728 0.452728 0.452728 0.459320 0.459320 0.459320 0.466125 0.466125 0.466125 0.472931 0.472931 0.472931 0.479614 0.479614 0.479614 0.486542 0.486542 0.486542 0.493378 0.493378 0.493378 0.500427 0.500427 0.500427 0.507568 0.507568 0.507568 0.514618 0.514618 0.514618 0.521973 0.521973 0.521973 0.529449 0.529449 0.529449 0.536835 0.536835 0.536835 0.330719 0.330719 0.330719 0.338684 0.338684 0.338684 0.346649 0.346649 0.346649 0.354279 0.354279 0.354279 0.362000 0.362000 0.362000 0.369568 0.369568 0.369568 0.376770 0.376770 0.376770 0.384094 0.384094 0.384094 0.391296 0.391296 0.391296 0.398224 0.398224 0.398224 0.405243 0.405243 0.405243 0.412170 0.412170 0.412170 0.418884 0.418884 0.418884 0.425690 0.425690 0.425690 0.432312 0.432312 0.432312 0.439087 0.439087 0.439087 0.445831 0.445831 0.445831 0.452393 0.452393 0.452393 0.459167 0.459167 0.459167 0.465942 0.465942 0.465942 0.472595 0.472595 0.472595 0.479462 0.479462 0.479462 0.486359 0.486359 0.486359 0.493195 0.493195 0.493195 0.500244 0.500244 0.500244 0.507202 0.507202 0.507202 0.514465 0.514465 0.514465 0.521820 0.521820 0.521820 0.529083 0.529083 0.529083 0.536621 0.536621 0.536621 0.544342 0.544342 0.544342 0.551971 0.551971 0.551971 0.346252 0.346252 0.346252 0.354095 0.354095 0.354095 0.361816 0.361816 0.361816 0.369171 0.369171 0.369171 0.376587 0.376587 0.376587 0.383911 0.383911 0.383911 0.390961 0.390961 0.390961 0.398010 0.398010 0.398010 0.405060 0.405060 0.405060 0.411804 0.411804 0.411804 0.418732 0.418732 0.418732 0.425385 0.425385 0.425385 0.432159 0.432159 0.432159 0.438904 0.438904 0.438904 0.445496 0.445496 0.445496 0.452271 0.452271 0.452271 0.459015 0.459015 0.459015 0.465607 0.465607 0.465607 0.472412 0.472412 0.472412 0.479279 0.479279 0.479279 0.486023 0.486023 0.486023 0.493011 0.493011 0.493011 0.499878 0.499878 0.499878 0.507050 0.507050 0.507050 0.514282 0.514282 0.514282 0.521423 0.521423 0.521423 0.528870 0.528870 0.528870 0.536438 0.536438 0.536438 0.543945 0.543945 0.543945 0.551788 0.551788 0.551788 0.559753 0.559753 0.559753 0.567627 0.567627 0.567627 0.361420 0.361420 0.361420 0.368988 0.368988 0.368988 0.376434 0.376434 0.376434 0.383545 0.383545 0.383545 0.390747 0.390747 0.390747 0.397858 0.397858 0.397858 0.404724 0.404724 0.404724 0.411652 0.411652 0.411652 0.418549 0.418549 0.418549 0.425171 0.425171 0.425171 0.431976 0.431976 0.431976 0.438568 0.438568 0.438568 0.445343 0.445343 0.445343 0.452087 0.452087 0.452087 0.458649 0.458649 0.458649 0.465454 0.465454 0.465454 0.472260 0.472260 0.472260 0.478943 0.478943 0.478943 0.485870 0.485870 0.485870 0.492828 0.492828 0.492828 0.499695 0.499695 0.499695 0.506836 0.506836 0.506836 0.513885 0.513885 0.513885 0.521240 0.521240 0.521240 0.528687 0.528687 0.528687 0.536072 0.536072 0.536072 0.543762 0.543762 0.543762 0.551575 0.551575 0.551575 0.559326 0.559326 0.559326 0.567383 0.567383 0.567383 0.575653 0.575653 0.575653 0.583771 0.583771 0.583771 0.376068 0.376068 0.376068 0.383362 0.383362 0.383362 0.390594 0.390594 0.390594 0.397522 0.397522 0.397522 0.404510 0.404510 0.404510 0.411469 0.411469 0.411469 0.418182 0.418182 0.418182 0.425018 0.425018 0.425018 0.431641 0.431641 0.431641 0.438385 0.438385 0.438385 0.445160 0.445160 0.445160 0.451752 0.451752 0.451752 0.458496 0.458496 0.458496 0.465271 0.465271 0.465271 0.471893 0.471893 0.471893 0.478760 0.478760 0.478760 0.485687 0.485687 0.485687 0.492493 0.492493 0.492493 0.499512 0.499512 0.499512 0.506683 0.506683 0.506683 0.513702 0.513702 0.513702 0.521057 0.521057 0.521057 0.528320 0.528320 0.528320 0.535858 0.535858 0.535858 0.543579 0.543579 0.543579 0.551178 0.551178 0.551178 0.559113 0.559113 0.559113 0.567200 0.567200 0.567200 0.575195 0.575195 0.575195 0.583557 0.583557 0.583557 0.591827 0.591827 0.591827 0.600372 0.600372 0.600372 0.390228 0.390228 0.390228 0.397339 0.397339 0.397339 0.404358 0.404358 0.404358 0.411133 0.411133 0.411133 0.417999 0.417999 0.417999 0.424866 0.424866 0.424866 0.431488 0.431488 0.431488 0.438263 0.438263 0.438263 0.444824 0.444824 0.444824 0.451569 0.451569 0.451569 0.458313 0.458313 0.458313 0.464935 0.464935 0.464935 0.471741 0.471741 0.471741 0.478607 0.478607 0.478607 0.485321 0.485321 0.485321 0.492310 0.492310 0.492310 0.499329 0.499329 0.499329 0.506317 0.506317 0.506317 0.513519 0.513519 0.513519 0.520660 0.520660 0.520660 0.528137 0.528137 0.528137 0.535706 0.535706 0.535706 0.543182 0.543182 0.543182 0.550995 0.550995 0.550995 0.558929 0.558929 0.558929 0.566803 0.566803 0.566803 0.575012 0.575012 0.575012 0.583374 0.583374 0.583374 0.591614 0.591614 0.591614 0.600159 0.600159 0.600159 0.608582 0.608582 0.608582 0.617279 0.617279 0.617279 0.403992 0.403992 0.403992 0.410980 0.410980 0.410980 0.417847 0.417847 0.417847 0.424500 0.424500 0.424500 0.431305 0.431305 0.431305 0.437897 0.437897 0.437897 0.444641 0.444641 0.444641 0.451416 0.451416 0.451416 0.457977 0.457977 0.457977 0.464752 0.464752 0.464752 0.471588 0.471588 0.471588 0.478241 0.478241 0.478241 0.485138 0.485138 0.485138 0.492126 0.492126 0.492126 0.498993 0.498993 0.498993 0.506134 0.506134 0.506134 0.513367 0.513367 0.513367 0.520508 0.520508 0.520508 0.527954 0.527954 0.527954 0.535339 0.535339 0.535339 0.542999 0.542999 0.542999 0.550781 0.550781 0.550781 0.558563 0.558563 0.558563 0.566589 0.566589 0.566589 0.574799 0.574799 0.574799 0.582947 0.582947 0.582947 0.591400 0.591400 0.591400 0.599945 0.599945 0.599945 0.608368 0.608368 0.608368 0.617065 0.617065 0.617065 0.625580 0.625580 0.625580 0.634308 0.634308 0.634308 0.417480 0.417480 0.417480 0.424347 0.424347 0.424347 0.431122 0.431122 0.431122 0.437744 0.437744 0.437744 0.444489 0.444489 0.444489 0.451080 0.451080 0.451080 0.457825 0.457825 0.457825 0.464600 0.464600 0.464600 0.471222 0.471222 0.471222 0.478088 0.478088 0.478088 0.484985 0.484985 0.484985 0.491760 0.491760 0.491760 0.498840 0.498840 0.498840 0.505951 0.505951 0.505951 0.513000 0.513000 0.513000 0.520325 0.520325 0.520325 0.527557 0.527557 0.527557 0.535126 0.535126 0.535126 0.542786 0.542786 0.542786 0.550385 0.550385 0.550385 0.558319 0.558319 0.558319 0.566376 0.566376 0.566376 0.574402 0.574402 0.574402 0.582703 0.582703 0.582703 0.591187 0.591187 0.591187 0.599518 0.599518 0.599518 0.608154 0.608154 0.608154 0.616638 0.616638 0.616638 0.625336 0.625336 0.625336 0.634125 0.634125 0.634125 0.642670 0.642670 0.642670 0.651367 0.651367 0.651367 0.430817 0.430817 0.430817 0.437592 0.437592 0.437592 0.444153 0.444153 0.444153 0.450897 0.450897 0.450897 0.457642 0.457642 0.457642 0.464233 0.464233 0.464233 0.471069 0.471069 0.471069 0.477936 0.477936 0.477936 0.484650 0.484650 0.484650 0.491608 0.491608 0.491608 0.498627 0.498627 0.498627 0.505615 0.505615 0.505615 0.512817 0.512817 0.512817 0.519958 0.519958 0.519958 0.527374 0.527374 0.527374 0.534943 0.534943 0.534943 0.542389 0.542389 0.542389 0.550201 0.550201 0.550201 0.558136 0.558136 0.558136 0.565979 0.565979 0.565979 0.574188 0.574188 0.574188 0.582520 0.582520 0.582520 0.590759 0.590759 0.590759 0.599304 0.599304 0.599304 0.607941 0.607941 0.607941 0.616394 0.616394 0.616394 0.625153 0.625153 0.625153 0.633667 0.633667 0.633667 0.642426 0.642426 0.642426 0.651154 0.651154 0.651154 0.659637 0.659637 0.659637 0.668304 0.668304 0.668304 0.443970 0.443970 0.443970 0.450714 0.450714 0.450714 0.457306 0.457306 0.457306 0.464081 0.464081 0.464081 0.470886 0.470886 0.470886 0.477570 0.477570 0.477570 0.484467 0.484467 0.484467 0.491425 0.491425 0.491425 0.498291 0.498291 0.498291 0.505432 0.505432 0.505432 0.512634 0.512634 0.512634 0.519775 0.519775 0.519775 0.527191 0.527191 0.527191 0.534546 0.534546 0.534546 0.542206 0.542206 0.542206 0.550018 0.550018 0.550018 0.557709 0.557709 0.557709 0.565765 0.565765 0.565765 0.573975 0.573975 0.573975 0.582092 0.582092 0.582092 0.590546 0.590546 0.590546 0.599091 0.599091 0.599091 0.607513 0.607513 0.607513 0.616211 0.616211 0.616211 0.624695 0.624695 0.624695 0.633453 0.633453 0.633453 0.642181 0.642181 0.642181 0.650726 0.650726 0.650726 0.659424 0.659424 0.659424 0.668091 0.668091 0.668091 0.676483 0.676483 0.676483 0.684998 0.684998 0.684998 0.457123 0.457123 0.457123 0.463928 0.463928 0.463928 0.470551 0.470551 0.470551 0.477386 0.477386 0.477386 0.484283 0.484283 0.484283 0.491089 0.491089 0.491089 0.498077 0.498077 0.498077 0.505219 0.505219 0.505219 0.512268 0.512268 0.512268 0.519592 0.519592 0.519592 0.526825 0.526825 0.526825 0.534363 0.534363 0.534363 0.542023 0.542023 0.542023 0.549622 0.549622 0.549622 0.557526 0.557526 0.557526 0.565582 0.565582 0.565582 0.573578 0.573578 0.573578 0.581909 0.581909 0.581909 0.590332 0.590332 0.590332 0.598663 0.598663 0.598663 0.607269 0.607269 0.607269 0.615967 0.615967 0.615967 0.624481 0.624481 0.624481 0.633240 0.633240 0.633240 0.641785 0.641785 0.641785 0.650513 0.650513 0.650513 0.659210 0.659210 0.659210 0.667664 0.667664 0.667664 0.676300 0.676300 0.676300 0.684753 0.684753 0.684753 0.693024 0.693024 0.693024 0.701324 0.701324 0.701324 0.470367 0.470367 0.470367 0.477203 0.477203 0.477203 0.483948 0.483948 0.483948 0.490906 0.490906 0.490906 0.497955 0.497955 0.497955 0.504883 0.504883 0.504883 0.512085 0.512085 0.512085 0.519379 0.519379 0.519379 0.526642 0.526642 0.526642 0.534180 0.534180 0.534180 0.541656 0.541656 0.541656 0.549408 0.549408 0.549408 0.557343 0.557343 0.557343 0.565186 0.565186 0.565186 0.573364 0.573364 0.573364 0.581696 0.581696 0.581696 0.589905 0.589905 0.589905 0.598450 0.598450 0.598450 0.607056 0.607056 0.607056 0.615540 0.615540 0.615540 0.624237 0.624237 0.624237 0.632812 0.632812 0.632812 0.641541 0.641541 0.641541 0.650299 0.650299 0.650299 0.658783 0.658783 0.658783 0.667450 0.667450 0.667450 0.676025 0.676025 0.676025 0.684357 0.684357 0.684357 0.692810 0.692810 0.692810 0.701111 0.701111 0.701111 0.709076 0.709076 0.709076 0.717163 0.717163 0.717163 0.483734 0.483734 0.483734 0.490692 0.490692 0.490692 0.497589 0.497589 0.497589 0.504700 0.504700 0.504700 0.511902 0.511902 0.511902 0.519043 0.519043 0.519043 0.526428 0.526428 0.526428 0.533783 0.533783 0.533783 0.541443 0.541443 0.541443 0.549225 0.549225 0.549225 0.556946 0.556946 0.556946 0.564972 0.564972 0.564972 0.573151 0.573151 0.573151 0.581268 0.581268 0.581268 0.589691 0.589691 0.589691 0.598236 0.598236 0.598236 0.606628 0.606628 0.606628 0.615295 0.615295 0.615295 0.624023 0.624023 0.624023 0.632568 0.632568 0.632568 0.641296 0.641296 0.641296 0.649841 0.649841 0.649841 0.658569 0.658569 0.658569 0.667206 0.667206 0.667206 0.675629 0.675629 0.675629 0.684143 0.684143 0.684143 0.692566 0.692566 0.692566 0.700684 0.700684 0.700684 0.708862 0.708862 0.708862 0.716949 0.716949 0.716949 0.724670 0.724670 0.724670 0.732422 0.732422 0.732422 0.497406 0.497406 0.497406 0.504517 0.504517 0.504517 0.511536 0.511536 0.511536 0.518860 0.518860 0.518860 0.526245 0.526245 0.526245 0.533600 0.533600 0.533600 0.541260 0.541260 0.541260 0.548828 0.548828 0.548828 0.556732 0.556732 0.556732 0.564758 0.564758 0.564758 0.572754 0.572754 0.572754 0.581024 0.581024 0.581024 0.589478 0.589478 0.589478 0.597809 0.597809 0.597809 0.606445 0.606445 0.606445 0.615112 0.615112 0.615112 0.623596 0.623596 0.623596 0.632355 0.632355 0.632355 0.640869 0.640869 0.640869 0.649628 0.649628 0.649628 0.658356 0.658356 0.658356 0.666779 0.666779 0.666779 0.675385 0.675385 0.675385 0.683960 0.683960 0.683960 0.692139 0.692139 0.692139 0.700470 0.700470 0.700470 0.708679 0.708679 0.708679 0.716553 0.716553 0.716553 0.724457 0.724457 0.724457 0.732056 0.732056 0.732056 0.739624 0.739624 0.739624 0.747040 0.747040 0.747040 0.511353 0.511353 0.511353 0.518677 0.518677 0.518677 0.525879 0.525879 0.525879 0.533417 0.533417 0.533417 0.540863 0.540863 0.540863 0.548645 0.548645 0.548645 0.556519 0.556519 0.556519 0.564362 0.564362 0.564362 0.572540 0.572540 0.572540 0.580841 0.580841 0.580841 0.589081 0.589081 0.589081 0.597595 0.597595 0.597595 0.606201 0.606201 0.606201 0.614655 0.614655 0.614655 0.623383 0.623383 0.623383 0.631897 0.631897 0.631897 0.640656 0.640656 0.640656 0.649414 0.649414 0.649414 0.657898 0.657898 0.657898 0.666565 0.666565 0.666565 0.675201 0.675201 0.675201 0.683502 0.683502 0.683502 0.691956 0.691956 0.691956 0.700287 0.700287 0.700287 0.708282 0.708282 0.708282 0.716339 0.716339 0.716339 0.724304 0.724304 0.724304 0.731842 0.731842 0.731842 0.739471 0.739471 0.739471 0.746674 0.746674 0.746674 0.753906 0.753906 0.753906 0.760895 0.760895 0.760895 0.525696 0.525696 0.525696 0.533234 0.533234 0.533234 0.540680 0.540680 0.540680 0.548431 0.548431 0.548431 0.556152 0.556152 0.556152 0.564178 0.564178 0.564178 0.572327 0.572327 0.572327 0.580414 0.580414 0.580414 0.588837 0.588837 0.588837 0.597382 0.597382 0.597382 0.605774 0.605774 0.605774 0.614441 0.614441 0.614441 0.623169 0.623169 0.623169 0.631683 0.631683 0.631683 0.640472 0.640472 0.640472 0.648987 0.648987 0.648987 0.657684 0.657684 0.657684 0.666351 0.666351 0.666351 0.674744 0.674744 0.674744 0.683319 0.683319 0.683319 0.691742 0.691742 0.691742 0.699890 0.699890 0.699890 0.708069 0.708069 0.708069 0.716156 0.716156 0.716156 0.723907 0.723907 0.723907 0.731659 0.731659 0.731659 0.739075 0.739075 0.739075 0.746490 0.746490 0.746490 0.753693 0.753693 0.753693 0.760559 0.760559 0.760559 0.767395 0.767395 0.767395 0.773926 0.773926 0.773926 0.540466 0.540466 0.540466 0.548248 0.548248 0.548248 0.555939 0.555939 0.555939 0.563995 0.563995 0.563995 0.571899 0.571899 0.571899 0.580231 0.580231 0.580231 0.588623 0.588623 0.588623 0.596954 0.596954 0.596954 0.605560 0.605560 0.605560 0.614258 0.614258 0.614258 0.622742 0.622742 0.622742 0.631500 0.631500 0.631500 0.639984 0.639984 0.639984 0.648773 0.648773 0.648773 0.657471 0.657471 0.657471 0.665924 0.665924 0.665924 0.674561 0.674561 0.674561 0.683075 0.683075 0.683075 0.691315 0.691315 0.691315 0.699677 0.699677 0.699677 0.707855 0.707855 0.707855 0.715759 0.715759 0.715759 0.723694 0.723694 0.723694 0.731445 0.731445 0.731445 0.738892 0.738892 0.738892 0.746307 0.746307 0.746307 0.753357 0.753357 0.753357 0.760376 0.760376 0.760376 0.767151 0.767151 0.767151 0.773621 0.773621 0.773621 0.779999 0.779999 0.779999 0.786072 0.786072 0.786072 0.075562 0.075562 0.075562 0.080170 0.080170 0.080170 0.085083 0.085083 0.085083 0.090271 0.090271 0.090271 0.095520 0.095520 0.095520 0.101227 0.101227 0.101227 0.107117 0.107117 0.107117 0.113403 0.113403 0.113403 0.120056 0.120056 0.120056 0.126923 0.126923 0.126923 0.134369 0.134369 0.134369 0.142242 0.142242 0.142242 0.150360 0.150360 0.150360 0.159180 0.159180 0.159180 0.168518 0.168518 0.168518 0.178009 0.178009 0.178009 0.188080 0.188080 0.188080 0.198120 0.198120 0.198120 0.208527 0.208527 0.208527 0.218933 0.218933 0.218933 0.228973 0.228973 0.228973 0.239136 0.239136 0.239136 0.249084 0.249084 0.249084 0.258606 0.258606 0.258606 0.268219 0.268219 0.268219 0.277618 0.277618 0.277618 0.286652 0.286652 0.286652 0.295715 0.295715 0.295715 0.304352 0.304352 0.304352 0.313049 0.313049 0.313049 0.321564 0.321564 0.321564 0.329712 0.329712 0.329712 0.084961 0.084961 0.084961 0.089996 0.089996 0.089996 0.095367 0.095367 0.095367 0.101105 0.101105 0.101105 0.106964 0.106964 0.106964 0.113251 0.113251 0.113251 0.119720 0.119720 0.119720 0.126740 0.126740 0.126740 0.134186 0.134186 0.134186 0.141846 0.141846 0.141846 0.150146 0.150146 0.150146 0.158966 0.158966 0.158966 0.168060 0.168060 0.168060 0.177734 0.177734 0.177734 0.187805 0.187805 0.187805 0.197845 0.197845 0.197845 0.208252 0.208252 0.208252 0.218414 0.218414 0.218414 0.228699 0.228699 0.228699 0.238892 0.238892 0.238892 0.248596 0.248596 0.248596 0.258362 0.258362 0.258362 0.267975 0.267975 0.267975 0.277161 0.277161 0.277161 0.286407 0.286407 0.286407 0.295471 0.295471 0.295471 0.304138 0.304138 0.304138 0.312836 0.312836 0.312836 0.321167 0.321167 0.321167 0.329468 0.329468 0.329468 0.337677 0.337677 0.337677 0.345459 0.345459 0.345459 0.095245 0.095245 0.095245 0.100800 0.100800 0.100800 0.106812 0.106812 0.106812 0.112946 0.112946 0.112946 0.119568 0.119568 0.119568 0.126587 0.126587 0.126587 0.133789 0.133789 0.133789 0.141632 0.141632 0.141632 0.149963 0.149963 0.149963 0.158508 0.158508 0.158508 0.167816 0.167816 0.167816 0.177490 0.177490 0.177490 0.187317 0.187317 0.187317 0.197601 0.197601 0.197601 0.207733 0.207733 0.207733 0.218140 0.218140 0.218140 0.228455 0.228455 0.228455 0.238373 0.238373 0.238373 0.248352 0.248352 0.248352 0.258118 0.258118 0.258118 0.267517 0.267517 0.267517 0.276917 0.276917 0.276917 0.286194 0.286194 0.286194 0.295013 0.295013 0.295013 0.303925 0.303925 0.303925 0.312378 0.312378 0.312378 0.320923 0.320923 0.320923 0.329285 0.329285 0.329285 0.337250 0.337250 0.337250 0.345306 0.345306 0.345306 0.353149 0.353149 0.353149 0.360657 0.360657 0.360657 0.106628 0.106628 0.106628 0.112762 0.112762 0.112762 0.119415 0.119415 0.119415 0.126221 0.126221 0.126221 0.133606 0.133606 0.133606 0.141449 0.141449 0.141449 0.149506 0.149506 0.149506 0.158264 0.158264 0.158264 0.167572 0.167572 0.167572 0.177032 0.177032 0.177032 0.187073 0.187073 0.187073 0.197357 0.197357 0.197357 0.207458 0.207458 0.207458 0.217896 0.217896 0.217896 0.227966 0.227966 0.227966 0.238098 0.238098 0.238098 0.248108 0.248108 0.248108 0.257629 0.257629 0.257629 0.267273 0.267273 0.267273 0.276703 0.276703 0.276703 0.285736 0.285736 0.285736 0.294830 0.294830 0.294830 0.303680 0.303680 0.303680 0.312195 0.312195 0.312195 0.320709 0.320709 0.320709 0.328827 0.328827 0.328827 0.337036 0.337036 0.337036 0.345062 0.345062 0.345062 0.352722 0.352722 0.352722 0.360474 0.360474 0.360474 0.368042 0.368042 0.368042 0.375336 0.375336 0.375336 0.119080 0.119080 0.119080 0.126068 0.126068 0.126068 0.133423 0.133423 0.133423 0.141052 0.141052 0.141052 0.149323 0.149323 0.149323 0.158081 0.158081 0.158081 0.167114 0.167114 0.167114 0.176788 0.176788 0.176788 0.186829 0.186829 0.186829 0.196808 0.196808 0.196808 0.207214 0.207214 0.207214 0.217346 0.217346 0.217346 0.227692 0.227692 0.227692 0.237854 0.237854 0.237854 0.247589 0.247589 0.247589 0.257385 0.257385 0.257385 0.267059 0.267059 0.267059 0.276245 0.276245 0.276245 0.285492 0.285492 0.285492 0.294586 0.294586 0.294586 0.303253 0.303253 0.303253 0.311981 0.311981 0.311981 0.320496 0.320496 0.320496 0.328674 0.328674 0.328674 0.336853 0.336853 0.336853 0.344666 0.344666 0.344666 0.352539 0.352539 0.352539 0.360260 0.360260 0.360260 0.367676 0.367676 0.367676 0.375122 0.375122 0.375122 0.382446 0.382446 0.382446 0.389526 0.389526 0.389526 0.133057 0.133057 0.133057 0.140839 0.140839 0.140839 0.149078 0.149078 0.149078 0.157623 0.157623 0.157623 0.166840 0.166840 0.166840 0.176544 0.176544 0.176544 0.186310 0.186310 0.186310 0.196564 0.196564 0.196564 0.206940 0.206940 0.206940 0.217102 0.217102 0.217102 0.227448 0.227448 0.227448 0.237335 0.237335 0.237335 0.247314 0.247314 0.247314 0.257172 0.257172 0.257172 0.266541 0.266541 0.266541 0.276001 0.276001 0.276001 0.285248 0.285248 0.285248 0.294128 0.294128 0.294128 0.303009 0.303009 0.303009 0.311737 0.311737 0.311737 0.320099 0.320099 0.320099 0.328461 0.328461 0.328461 0.336426 0.336426 0.336426 0.344482 0.344482 0.344482 0.352325 0.352325 0.352325 0.359894 0.359894 0.359894 0.367462 0.367462 0.367462 0.374969 0.374969 0.374969 0.382080 0.382080 0.382080 0.389313 0.389313 0.389313 0.396454 0.396454 0.396454 0.403320 0.403320 0.403320 0.148682 0.148682 0.148682 0.157410 0.157410 0.157410 0.166595 0.166595 0.166595 0.176056 0.176056 0.176056 0.186035 0.186035 0.186035 0.196289 0.196289 0.196289 0.206421 0.206421 0.206421 0.216827 0.216827 0.216827 0.226929 0.226929 0.226929 0.237091 0.237091 0.237091 0.247070 0.247070 0.247070 0.256653 0.256653 0.256653 0.266296 0.266296 0.266296 0.275757 0.275757 0.275757 0.284821 0.284821 0.284821 0.293915 0.293915 0.293915 0.302795 0.302795 0.302795 0.311310 0.311310 0.311310 0.319855 0.319855 0.319855 0.328247 0.328247 0.328247 0.336243 0.336243 0.336243 0.344269 0.344269 0.344269 0.351959 0.351959 0.351959 0.359711 0.359711 0.359711 0.367310 0.367310 0.367310 0.374573 0.374573 0.374573 0.381927 0.381927 0.381927 0.389160 0.389160 0.389160 0.396088 0.396088 0.396088 0.403168 0.403168 0.403168 0.410095 0.410095 0.410095 0.416840 0.416840 0.416840 0.166138 0.166138 0.166138 0.175781 0.175781 0.175781 0.185791 0.185791 0.185791 0.195801 0.195801 0.195801 0.206177 0.206177 0.206177 0.216583 0.216583 0.216583 0.226685 0.226685 0.226685 0.236847 0.236847 0.236847 0.246582 0.246582 0.246582 0.256409 0.256409 0.256409 0.266052 0.266052 0.266052 0.275299 0.275299 0.275299 0.284576 0.284576 0.284576 0.293671 0.293671 0.293671 0.302368 0.302368 0.302368 0.311066 0.311066 0.311066 0.319641 0.319641 0.319641 0.327789 0.327789 0.327789 0.336029 0.336029 0.336029 0.343872 0.343872 0.343872 0.351776 0.351776 0.351776 0.359497 0.359497 0.359497 0.366943 0.366943 0.366943 0.374390 0.374390 0.374390 0.381744 0.381744 0.381744 0.388794 0.388794 0.388794 0.395935 0.395935 0.395935 0.402954 0.402954 0.402954 0.409760 0.409760 0.409760 0.416656 0.416656 0.416656 0.423340 0.423340 0.423340 0.430115 0.430115 0.430115 0.185272 0.185272 0.185272 0.195526 0.195526 0.195526 0.205902 0.205902 0.205902 0.216064 0.216064 0.216064 0.226410 0.226410 0.226410 0.236328 0.236328 0.236328 0.246338 0.246338 0.246338 0.256165 0.256165 0.256165 0.265594 0.265594 0.265594 0.275085 0.275085 0.275085 0.284332 0.284332 0.284332 0.293213 0.293213 0.293213 0.302155 0.302155 0.302155 0.310913 0.310913 0.310913 0.319214 0.319214 0.319214 0.327637 0.327637 0.327637 0.335846 0.335846 0.335846 0.343689 0.343689 0.343689 0.351562 0.351562 0.351562 0.359131 0.359131 0.359131 0.366730 0.366730 0.366730 0.374207 0.374207 0.374207 0.381378 0.381378 0.381378 0.388611 0.388611 0.388611 0.395752 0.395752 0.395752 0.402618 0.402618 0.402618 0.409576 0.409576 0.409576 0.416473 0.416473 0.416473 0.423126 0.423126 0.423126 0.429932 0.429932 0.429932 0.436554 0.436554 0.436554 0.443298 0.443298 0.443298 0.205383 0.205383 0.205383 0.215790 0.215790 0.215790 0.226166 0.226166 0.226166 0.236053 0.236053 0.236053 0.246094 0.246094 0.246094 0.255707 0.255707 0.255707 0.265350 0.265350 0.265350 0.274841 0.274841 0.274841 0.283905 0.283905 0.283905 0.292999 0.292999 0.292999 0.301941 0.301941 0.301941 0.310455 0.310455 0.310455 0.319000 0.319000 0.319000 0.327393 0.327393 0.327393 0.335419 0.335419 0.335419 0.343506 0.343506 0.343506 0.351166 0.351166 0.351166 0.358948 0.358948 0.358948 0.366547 0.366547 0.366547 0.373840 0.373840 0.373840 0.381195 0.381195 0.381195 0.388428 0.388428 0.388428 0.395416 0.395416 0.395416 0.402435 0.402435 0.402435 0.409424 0.409424 0.409424 0.416138 0.416138 0.416138 0.422974 0.422974 0.422974 0.429596 0.429596 0.429596 0.436371 0.436371 0.436371 0.443146 0.443146 0.443146 0.449707 0.449707 0.449707 0.456451 0.456451 0.456451 0.225647 0.225647 0.225647 0.235840 0.235840 0.235840 0.245636 0.245636 0.245636 0.255463 0.255463 0.255463 0.265106 0.265106 0.265106 0.274323 0.274323 0.274323 0.283661 0.283661 0.283661 0.292786 0.292786 0.292786 0.301483 0.301483 0.301483 0.310242 0.310242 0.310242 0.318817 0.318817 0.318817 0.326996 0.326996 0.326996 0.335205 0.335205 0.335205 0.343109 0.343109 0.343109 0.350983 0.350983 0.350983 0.358734 0.358734 0.358734 0.366180 0.366180 0.366180 0.373657 0.373657 0.373657 0.381012 0.381012 0.381012 0.388062 0.388062 0.388062 0.395203 0.395203 0.395203 0.402252 0.402252 0.402252 0.409058 0.409058 0.409058 0.415955 0.415955 0.415955 0.422791 0.422791 0.422791 0.429443 0.429443 0.429443 0.436218 0.436218 0.436218 0.442780 0.442780 0.442780 0.449554 0.449554 0.449554 0.456299 0.456299 0.456299 0.462921 0.462921 0.462921 0.469696 0.469696 0.469696 0.245361 0.245361 0.245361 0.255219 0.255219 0.255219 0.264618 0.264618 0.264618 0.274109 0.274109 0.274109 0.283417 0.283417 0.283417 0.292328 0.292328 0.292328 0.301270 0.301270 0.301270 0.310028 0.310028 0.310028 0.318390 0.318390 0.318390 0.326782 0.326782 0.326782 0.335022 0.335022 0.335022 0.342865 0.342865 0.342865 0.350800 0.350800 0.350800 0.358368 0.358368 0.358368 0.365967 0.365967 0.365967 0.373474 0.373474 0.373474 0.380615 0.380615 0.380615 0.387878 0.387878 0.387878 0.395020 0.395020 0.395020 0.401917 0.401917 0.401917 0.408905 0.408905 0.408905 0.415802 0.415802 0.415802 0.422455 0.422455 0.422455 0.429260 0.429260 0.429260 0.435883 0.435883 0.435883 0.442627 0.442627 0.442627 0.449371 0.449371 0.449371 0.455963 0.455963 0.455963 0.462708 0.462708 0.462708 0.469543 0.469543 0.469543 0.476196 0.476196 0.476196 0.483063 0.483063 0.483063 0.264404 0.264404 0.264404 0.273895 0.273895 0.273895 0.282990 0.282990 0.282990 0.292114 0.292114 0.292114 0.301056 0.301056 0.301056 0.309601 0.309601 0.309601 0.318176 0.318176 0.318176 0.326599 0.326599 0.326599 0.334625 0.334625 0.334625 0.342682 0.342682 0.342682 0.350372 0.350372 0.350372 0.358154 0.358154 0.358154 0.365784 0.365784 0.365784 0.373077 0.373077 0.373077 0.380463 0.380463 0.380463 0.387695 0.387695 0.387695 0.394684 0.394684 0.394684 0.401764 0.401764 0.401764 0.408722 0.408722 0.408722 0.415436 0.415436 0.415436 0.422272 0.422272 0.422272 0.429108 0.429108 0.429108 0.435699 0.435699 0.435699 0.442444 0.442444 0.442444 0.449036 0.449036 0.449036 0.455780 0.455780 0.455780 0.462555 0.462555 0.462555 0.469177 0.469177 0.469177 0.476013 0.476013 0.476013 0.482910 0.482910 0.482910 0.489685 0.489685 0.489685 0.496704 0.496704 0.496704 0.282745 0.282745 0.282745 0.291870 0.291870 0.291870 0.300598 0.300598 0.300598 0.309357 0.309357 0.309357 0.317932 0.317932 0.317932 0.326172 0.326172 0.326172 0.334412 0.334412 0.334412 0.342468 0.342468 0.342468 0.350189 0.350189 0.350189 0.357971 0.357971 0.357971 0.365417 0.365417 0.365417 0.372894 0.372894 0.372894 0.380280 0.380280 0.380280 0.387360 0.387360 0.387360 0.394501 0.394501 0.394501 0.401550 0.401550 0.401550 0.408386 0.408386 0.408386 0.415283 0.415283 0.415283 0.422119 0.422119 0.422119 0.428772 0.428772 0.428772 0.435516 0.435516 0.435516 0.442108 0.442108 0.442108 0.448883 0.448883 0.448883 0.455627 0.455627 0.455627 0.462219 0.462219 0.462219 0.469025 0.469025 0.469025 0.475861 0.475861 0.475861 0.482544 0.482544 0.482544 0.489502 0.489502 0.489502 0.496521 0.496521 0.496521 0.503418 0.503418 0.503418 0.510651 0.510651 0.510651 0.300385 0.300385 0.300385 0.309143 0.309143 0.309143 0.317535 0.317535 0.317535 0.325958 0.325958 0.325958 0.334167 0.334167 0.334167 0.342072 0.342072 0.342072 0.349976 0.349976 0.349976 0.357788 0.357788 0.357788 0.365204 0.365204 0.365204 0.372711 0.372711 0.372711 0.379883 0.379883 0.379883 0.387177 0.387177 0.387177 0.394318 0.394318 0.394318 0.401215 0.401215 0.401215 0.408203 0.408203 0.408203 0.415100 0.415100 0.415100 0.421753 0.421753 0.421753 0.428589 0.428589 0.428589 0.435364 0.435364 0.435364 0.441956 0.441956 0.441956 0.448700 0.448700 0.448700 0.455292 0.455292 0.455292 0.462036 0.462036 0.462036 0.468842 0.468842 0.468842 0.475494 0.475494 0.475494 0.482391 0.482391 0.482391 0.489349 0.489349 0.489349 0.496155 0.496155 0.496155 0.503265 0.503265 0.503265 0.510437 0.510437 0.510437 0.517548 0.517548 0.517548 0.524963 0.524963 0.524963 0.317291 0.317291 0.317291 0.325745 0.325745 0.325745 0.333801 0.333801 0.333801 0.341858 0.341858 0.341858 0.349823 0.349823 0.349823 0.357391 0.357391 0.357391 0.365051 0.365051 0.365051 0.372314 0.372314 0.372314 0.379700 0.379700 0.379700 0.386993 0.386993 0.386993 0.393982 0.393982 0.393982 0.401031 0.401031 0.401031 0.408020 0.408020 0.408020 0.414764 0.414764 0.414764 0.421631 0.421631 0.421631 0.428406 0.428406 0.428406 0.435028 0.435028 0.435028 0.441772 0.441772 0.441772 0.448364 0.448364 0.448364 0.455109 0.455109 0.455109 0.461884 0.461884 0.461884 0.468506 0.468506 0.468506 0.475342 0.475342 0.475342 0.482208 0.482208 0.482208 0.488983 0.488983 0.488983 0.496002 0.496002 0.496002 0.503082 0.503082 0.503082 0.510101 0.510101 0.510101 0.517395 0.517395 0.517395 0.524567 0.524567 0.524567 0.532104 0.532104 0.532104 0.539734 0.539734 0.539734 0.333588 0.333588 0.333588 0.341675 0.341675 0.341675 0.349396 0.349396 0.349396 0.357208 0.357208 0.357208 0.364838 0.364838 0.364838 0.372192 0.372192 0.372192 0.379547 0.379547 0.379547 0.386597 0.386597 0.386597 0.393768 0.393768 0.393768 0.400848 0.400848 0.400848 0.407684 0.407684 0.407684 0.414612 0.414612 0.414612 0.421448 0.421448 0.421448 0.428101 0.428101 0.428101 0.434875 0.434875 0.434875 0.441620 0.441620 0.441620 0.448212 0.448212 0.448212 0.454956 0.454956 0.454956 0.461700 0.461700 0.461700 0.468323 0.468323 0.468323 0.475159 0.475159 0.475159 0.481873 0.481873 0.481873 0.488831 0.488831 0.488831 0.495819 0.495819 0.495819 0.502747 0.502747 0.502747 0.509888 0.509888 0.509888 0.517212 0.517212 0.517212 0.524414 0.524414 0.524414 0.531891 0.531891 0.531891 0.539520 0.539520 0.539520 0.547058 0.547058 0.547058 0.554932 0.554932 0.554932 0.349213 0.349213 0.349213 0.356995 0.356995 0.356995 0.364471 0.364471 0.364471 0.371979 0.371979 0.371979 0.379333 0.379333 0.379333 0.386444 0.386444 0.386444 0.393616 0.393616 0.393616 0.400482 0.400482 0.400482 0.407501 0.407501 0.407501 0.414429 0.414429 0.414429 0.421112 0.421112 0.421112 0.427887 0.427887 0.427887 0.434692 0.434692 0.434692 0.441284 0.441284 0.441284 0.448029 0.448029 0.448029 0.454773 0.454773 0.454773 0.461365 0.461365 0.461365 0.468140 0.468140 0.468140 0.474823 0.474823 0.474823 0.481689 0.481689 0.481689 0.488617 0.488617 0.488617 0.495483 0.495483 0.495483 0.502533 0.502533 0.502533 0.509735 0.509735 0.509735 0.516815 0.516815 0.516815 0.524200 0.524200 0.524200 0.531708 0.531708 0.531708 0.539093 0.539093 0.539093 0.546875 0.546875 0.546875 0.554535 0.554535 0.554535 0.562561 0.562561 0.562561 0.570679 0.570679 0.570679 0.364258 0.364258 0.364258 0.371796 0.371796 0.371796 0.378967 0.378967 0.378967 0.386261 0.386261 0.386261 0.393250 0.393250 0.393250 0.400360 0.400360 0.400360 0.407318 0.407318 0.407318 0.414062 0.414062 0.414062 0.420929 0.420929 0.420929 0.427734 0.427734 0.427734 0.434357 0.434357 0.434357 0.441101 0.441101 0.441101 0.447845 0.447845 0.447845 0.454437 0.454437 0.454437 0.461212 0.461212 0.461212 0.467834 0.467834 0.467834 0.474640 0.474640 0.474640 0.481506 0.481506 0.481506 0.488281 0.488281 0.488281 0.495270 0.495270 0.495270 0.502380 0.502380 0.502380 0.509369 0.509369 0.509369 0.516663 0.516663 0.516663 0.524017 0.524017 0.524017 0.531342 0.531342 0.531342 0.538940 0.538940 0.538940 0.546661 0.546661 0.546661 0.554352 0.554352 0.554352 0.562347 0.562347 0.562347 0.570282 0.570282 0.570282 0.578552 0.578552 0.578552 0.586945 0.586945 0.586945 0.378815 0.378815 0.378815 0.386078 0.386078 0.386078 0.393097 0.393097 0.393097 0.400146 0.400146 0.400146 0.406982 0.406982 0.406982 0.413879 0.413879 0.413879 0.420776 0.420776 0.420776 0.427399 0.427399 0.427399 0.434204 0.434204 0.434204 0.440948 0.440948 0.440948 0.447510 0.447510 0.447510 0.454254 0.454254 0.454254 0.461029 0.461029 0.461029 0.467651 0.467651 0.467651 0.474457 0.474457 0.474457 0.481201 0.481201 0.481201 0.488098 0.488098 0.488098 0.495087 0.495087 0.495087 0.502014 0.502014 0.502014 0.509186 0.509186 0.509186 0.516449 0.516449 0.516449 0.523651 0.523651 0.523651 0.531158 0.531158 0.531158 0.538727 0.538727 0.538727 0.546295 0.546295 0.546295 0.554169 0.554169 0.554169 0.561951 0.561951 0.561951 0.570068 0.570068 0.570068 0.578308 0.578308 0.578308 0.586517 0.586517 0.586517 0.595032 0.595032 0.595032 0.603607 0.603607 0.603607 0.392883 0.392883 0.392883 0.399963 0.399963 0.399963 0.406799 0.406799 0.406799 0.413727 0.413727 0.413727 0.420410 0.420410 0.420410 0.427246 0.427246 0.427246 0.433990 0.433990 0.433990 0.440582 0.440582 0.440582 0.447357 0.447357 0.447357 0.454102 0.454102 0.454102 0.460693 0.460693 0.460693 0.467468 0.467468 0.467468 0.474304 0.474304 0.474304 0.481018 0.481018 0.481018 0.487915 0.487915 0.487915 0.494781 0.494781 0.494781 0.501862 0.501862 0.501862 0.509003 0.509003 0.509003 0.516113 0.516113 0.516113 0.523468 0.523468 0.523468 0.530945 0.530945 0.530945 0.538361 0.538361 0.538361 0.546112 0.546112 0.546112 0.553955 0.553955 0.553955 0.561737 0.561737 0.561737 0.569885 0.569885 0.569885 0.577911 0.577911 0.577911 0.586304 0.586304 0.586304 0.594818 0.594818 0.594818 0.603180 0.603180 0.603180 0.611847 0.611847 0.611847 0.620544 0.620544 0.620544 0.406616 0.406616 0.406616 0.413361 0.413361 0.413361 0.420227 0.420227 0.420227 0.427063 0.427063 0.427063 0.433685 0.433685 0.433685 0.440430 0.440430 0.440430 0.447205 0.447205 0.447205 0.453766 0.453766 0.453766 0.460541 0.460541 0.460541 0.467316 0.467316 0.467316 0.473938 0.473938 0.473938 0.480835 0.480835 0.480835 0.487579 0.487579 0.487579 0.494568 0.494568 0.494568 0.501678 0.501678 0.501678 0.508636 0.508636 0.508636 0.515900 0.515900 0.515900 0.523285 0.523285 0.523285 0.530579 0.530579 0.530579 0.538177 0.538177 0.538177 0.545898 0.545898 0.545898 0.553558 0.553558 0.553558 0.561554 0.561554 0.561554 0.569458 0.569458 0.569458 0.577698 0.577698 0.577698 0.586090 0.586090 0.586090 0.594391 0.594391 0.594391 0.602966 0.602966 0.602966 0.611603 0.611603 0.611603 0.620117 0.620117 0.620117 0.628845 0.628845 0.628845 0.637604 0.637604 0.637604 0.420074 0.420074 0.420074 0.426727 0.426727 0.426727 0.433502 0.433502 0.433502 0.440277 0.440277 0.440277 0.446838 0.446838 0.446838 0.453613 0.453613 0.453613 0.460358 0.460358 0.460358 0.466949 0.466949 0.466949 0.473785 0.473785 0.473785 0.480682 0.480682 0.480682 0.487427 0.487427 0.487427 0.494415 0.494415 0.494415 0.501312 0.501312 0.501312 0.508453 0.508453 0.508453 0.515747 0.515747 0.515747 0.522888 0.522888 0.522888 0.530396 0.530396 0.530396 0.537964 0.537964 0.537964 0.545502 0.545502 0.545502 0.553375 0.553375 0.553375 0.561340 0.561340 0.561340 0.569244 0.569244 0.569244 0.577515 0.577515 0.577515 0.585663 0.585663 0.585663 0.594147 0.594147 0.594147 0.602722 0.602722 0.602722 0.611176 0.611176 0.611176 0.619873 0.619873 0.619873 0.628632 0.628632 0.628632 0.637146 0.637146 0.637146 0.645905 0.645905 0.645905 0.654633 0.654633 0.654633 0.433319 0.433319 0.433319 0.439941 0.439941 0.439941 0.446686 0.446686 0.446686 0.453430 0.453430 0.453430 0.460022 0.460022 0.460022 0.466797 0.466797 0.466797 0.473633 0.473633 0.473633 0.480316 0.480316 0.480316 0.487244 0.487244 0.487244 0.494049 0.494049 0.494049 0.501129 0.501129 0.501129 0.508301 0.508301 0.508301 0.515381 0.515381 0.515381 0.522736 0.522736 0.522736 0.530212 0.530212 0.530212 0.537598 0.537598 0.537598 0.545319 0.545319 0.545319 0.553162 0.553162 0.553162 0.560944 0.560944 0.560944 0.569061 0.569061 0.569061 0.577118 0.577118 0.577118 0.585449 0.585449 0.585449 0.593964 0.593964 0.593964 0.602325 0.602325 0.602325 0.610992 0.610992 0.610992 0.619690 0.619690 0.619690 0.628174 0.628174 0.628174 0.636963 0.636963 0.636963 0.645691 0.645691 0.645691 0.654236 0.654236 0.654236 0.662933 0.662933 0.662933 0.671326 0.671326 0.671326 0.446503 0.446503 0.446503 0.453064 0.453064 0.453064 0.459869 0.459869 0.459869 0.466614 0.466614 0.466614 0.473297 0.473297 0.473297 0.480164 0.480164 0.480164 0.487061 0.487061 0.487061 0.493896 0.493896 0.493896 0.500946 0.500946 0.500946 0.507935 0.507935 0.507935 0.515198 0.515198 0.515198 0.522552 0.522552 0.522552 0.529816 0.529816 0.529816 0.537415 0.537415 0.537415 0.545135 0.545135 0.545135 0.552734 0.552734 0.552734 0.560760 0.560760 0.560760 0.568817 0.568817 0.568817 0.576874 0.576874 0.576874 0.585266 0.585266 0.585266 0.593536 0.593536 0.593536 0.602081 0.602081 0.602081 0.610748 0.610748 0.610748 0.619232 0.619232 0.619232 0.627960 0.627960 0.627960 0.636719 0.636719 0.636719 0.645264 0.645264 0.645264 0.653992 0.653992 0.653992 0.662689 0.662689 0.662689 0.671112 0.671112 0.671112 0.679657 0.679657 0.679657 0.687958 0.687958 0.687958 0.459656 0.459656 0.459656 0.466278 0.466278 0.466278 0.473114 0.473114 0.473114 0.479950 0.479950 0.479950 0.486694 0.486694 0.486694 0.493683 0.493683 0.493683 0.500610 0.500610 0.500610 0.507751 0.507751 0.507751 0.514984 0.514984 0.514984 0.522186 0.522186 0.522186 0.529633 0.529633 0.529633 0.537201 0.537201 0.537201 0.544739 0.544739 0.544739 0.552582 0.552582 0.552582 0.560516 0.560516 0.560516 0.568451 0.568451 0.568451 0.576691 0.576691 0.576691 0.585052 0.585052 0.585052 0.593323 0.593323 0.593323 0.601898 0.601898 0.601898 0.610321 0.610321 0.610321 0.619049 0.619049 0.619049 0.627747 0.627747 0.627747 0.636322 0.636322 0.636322 0.645050 0.645050 0.645050 0.653778 0.653778 0.653778 0.662262 0.662262 0.662262 0.670898 0.670898 0.670898 0.679260 0.679260 0.679260 0.687714 0.687714 0.687714 0.696167 0.696167 0.696167 0.704193 0.704193 0.704193 0.472931 0.472931 0.472931 0.479614 0.479614 0.479614 0.486542 0.486542 0.486542 0.493530 0.493530 0.493530 0.500427 0.500427 0.500427 0.507568 0.507568 0.507568 0.514618 0.514618 0.514618 0.521973 0.521973 0.521973 0.529449 0.529449 0.529449 0.536835 0.536835 0.536835 0.544525 0.544525 0.544525 0.552368 0.552368 0.552368 0.560120 0.560120 0.560120 0.568237 0.568237 0.568237 0.576477 0.576477 0.576477 0.584656 0.584656 0.584656 0.593079 0.593079 0.593079 0.601440 0.601440 0.601440 0.610107 0.610107 0.610107 0.618805 0.618805 0.618805 0.627319 0.627319 0.627319 0.636078 0.636078 0.636078 0.644836 0.644836 0.644836 0.653320 0.653320 0.653320 0.662018 0.662018 0.662018 0.670685 0.670685 0.670685 0.679047 0.679047 0.679047 0.687531 0.687531 0.687531 0.695709 0.695709 0.695709 0.703979 0.703979 0.703979 0.712128 0.712128 0.712128 0.719940 0.719940 0.719940 0.486359 0.486359 0.486359 0.493195 0.493195 0.493195 0.500244 0.500244 0.500244 0.507202 0.507202 0.507202 0.514465 0.514465 0.514465 0.521820 0.521820 0.521820 0.529083 0.529083 0.529083 0.536621 0.536621 0.536621 0.544342 0.544342 0.544342 0.551971 0.551971 0.551971 0.559937 0.559937 0.559937 0.568024 0.568024 0.568024 0.576080 0.576080 0.576080 0.584412 0.584412 0.584412 0.592682 0.592682 0.592682 0.601257 0.601257 0.601257 0.609894 0.609894 0.609894 0.618378 0.618378 0.618378 0.627106 0.627106 0.627106 0.635864 0.635864 0.635864 0.644379 0.644379 0.644379 0.653137 0.653137 0.653137 0.661804 0.661804 0.661804 0.670227 0.670227 0.670227 0.678833 0.678833 0.678833 0.687317 0.687317 0.687317 0.695496 0.695496 0.695496 0.703796 0.703796 0.703796 0.711731 0.711731 0.711731 0.719788 0.719788 0.719788 0.727600 0.727600 0.727600 0.735107 0.735107 0.735107 0.500061 0.500061 0.500061 0.507050 0.507050 0.507050 0.514282 0.514282 0.514282 0.521423 0.521423 0.521423 0.528870 0.528870 0.528870 0.536438 0.536438 0.536438 0.543945 0.543945 0.543945 0.551788 0.551788 0.551788 0.559753 0.559753 0.559753 0.567627 0.567627 0.567627 0.575867 0.575867 0.575867 0.584198 0.584198 0.584198 0.592438 0.592438 0.592438 0.601013 0.601013 0.601013 0.609467 0.609467 0.609467 0.618134 0.618134 0.618134 0.626862 0.626862 0.626862 0.635406 0.635406 0.635406 0.644196 0.644196 0.644196 0.652924 0.652924 0.652924 0.661377 0.661377 0.661377 0.670044 0.670044 0.670044 0.678650 0.678650 0.678650 0.686920 0.686920 0.686920 0.695282 0.695282 0.695282 0.703400 0.703400 0.703400 0.711548 0.711548 0.711548 0.719543 0.719543 0.719543 0.727203 0.727203 0.727203 0.734924 0.734924 0.734924 0.742462 0.742462 0.742462 0.749603 0.749603 0.749603 0.513885 0.513885 0.513885 0.521240 0.521240 0.521240 0.528687 0.528687 0.528687 0.536072 0.536072 0.536072 0.543762 0.543762 0.543762 0.551575 0.551575 0.551575 0.559326 0.559326 0.559326 0.567383 0.567383 0.567383 0.575653 0.575653 0.575653 0.583771 0.583771 0.583771 0.592255 0.592255 0.592255 0.600616 0.600616 0.600616 0.609253 0.609253 0.609253 0.617950 0.617950 0.617950 0.626465 0.626465 0.626465 0.635193 0.635193 0.635193 0.643982 0.643982 0.643982 0.652466 0.652466 0.652466 0.661194 0.661194 0.661194 0.669800 0.669800 0.669800 0.678162 0.678162 0.678162 0.686676 0.686676 0.686676 0.695099 0.695099 0.695099 0.703156 0.703156 0.703156 0.711334 0.711334 0.711334 0.719147 0.719147 0.719147 0.727020 0.727020 0.727020 0.734711 0.734711 0.734711 0.742065 0.742065 0.742065 0.749420 0.749420 0.749420 0.756561 0.756561 0.756561 0.763306 0.763306 0.763306 0.528320 0.528320 0.528320 0.535858 0.535858 0.535858 0.543579 0.543579 0.543579 0.551178 0.551178 0.551178 0.559113 0.559113 0.559113 0.567200 0.567200 0.567200 0.575195 0.575195 0.575195 0.583557 0.583557 0.583557 0.592041 0.592041 0.592041 0.600372 0.600372 0.600372 0.609009 0.609009 0.609009 0.617493 0.617493 0.617493 0.626221 0.626221 0.626221 0.635010 0.635010 0.635010 0.643524 0.643524 0.643524 0.652252 0.652252 0.652252 0.660980 0.660980 0.660980 0.669403 0.669403 0.669403 0.677979 0.677979 0.677979 0.686493 0.686493 0.686493 0.694672 0.694672 0.694672 0.702972 0.702972 0.702972 0.710938 0.710938 0.710938 0.718964 0.718964 0.718964 0.726807 0.726807 0.726807 0.734344 0.734344 0.734344 0.741882 0.741882 0.741882 0.749237 0.749237 0.749237 0.756226 0.756226 0.756226 0.763123 0.763123 0.763123 0.769867 0.769867 0.769867 0.776184 0.776184 0.776184 0.543182 0.543182 0.543182 0.550995 0.550995 0.550995 0.558929 0.558929 0.558929 0.566803 0.566803 0.566803 0.575012 0.575012 0.575012 0.583374 0.583374 0.583374 0.591614 0.591614 0.591614 0.600159 0.600159 0.600159 0.608582 0.608582 0.608582 0.617279 0.617279 0.617279 0.626038 0.626038 0.626038 0.634521 0.634521 0.634521 0.643311 0.643311 0.643311 0.652039 0.652039 0.652039 0.660522 0.660522 0.660522 0.669159 0.669159 0.669159 0.677734 0.677734 0.677734 0.686035 0.686035 0.686035 0.694458 0.694458 0.694458 0.702759 0.702759 0.702759 0.710724 0.710724 0.710724 0.718750 0.718750 0.718750 0.726440 0.726440 0.726440 0.734192 0.734192 0.734192 0.741699 0.741699 0.741699 0.748840 0.748840 0.748840 0.756042 0.756042 0.756042 0.762970 0.762970 0.762970 0.769531 0.769531 0.769531 0.776031 0.776031 0.776031 0.782288 0.782288 0.782288 0.788147 0.788147 0.788147 0.077179 0.077179 0.077179 0.081970 0.081970 0.081970 0.086853 0.086853 0.086853 0.092133 0.092133 0.092133 0.097656 0.097656 0.097656 0.103333 0.103333 0.103333 0.109436 0.109436 0.109436 0.115875 0.115875 0.115875 0.122498 0.122498 0.122498 0.129700 0.129700 0.129700 0.137268 0.137268 0.137268 0.145111 0.145111 0.145111 0.153595 0.153595 0.153595 0.162415 0.162415 0.162415 0.171906 0.171906 0.171906 0.181732 0.181732 0.181732 0.191650 0.191650 0.191650 0.202026 0.202026 0.202026 0.212402 0.212402 0.212402 0.222534 0.222534 0.222534 0.232788 0.232788 0.232788 0.242828 0.242828 0.242828 0.252502 0.252502 0.252502 0.262238 0.262238 0.262238 0.271545 0.271545 0.271545 0.280884 0.280884 0.280884 0.290039 0.290039 0.290039 0.298828 0.298828 0.298828 0.307617 0.307617 0.307617 0.316254 0.316254 0.316254 0.324493 0.324493 0.324493 0.332764 0.332764 0.332764 0.086731 0.086731 0.086731 0.091980 0.091980 0.091980 0.097351 0.097351 0.097351 0.103149 0.103149 0.103149 0.109283 0.109283 0.109283 0.115540 0.115540 0.115540 0.122314 0.122314 0.122314 0.129486 0.129486 0.129486 0.136871 0.136871 0.136871 0.144897 0.144897 0.144897 0.153198 0.153198 0.153198 0.162170 0.162170 0.162170 0.171631 0.171631 0.171631 0.181244 0.181244 0.181244 0.191376 0.191376 0.191376 0.201721 0.201721 0.201721 0.211884 0.211884 0.211884 0.222260 0.222260 0.222260 0.232513 0.232513 0.232513 0.242371 0.242371 0.242371 0.252258 0.252258 0.252258 0.261993 0.261993 0.261993 0.271301 0.271301 0.271301 0.280670 0.280670 0.280670 0.289612 0.289612 0.289612 0.298584 0.298584 0.298584 0.307434 0.307434 0.307434 0.315826 0.315826 0.315826 0.324280 0.324280 0.324280 0.332581 0.332581 0.332581 0.340485 0.340485 0.340485 0.348419 0.348419 0.348419 0.097229 0.097229 0.097229 0.102997 0.102997 0.102997 0.108948 0.108948 0.108948 0.115387 0.115387 0.115387 0.122162 0.122162 0.122162 0.129120 0.129120 0.129120 0.136688 0.136688 0.136688 0.144684 0.144684 0.144684 0.152954 0.152954 0.152954 0.161926 0.161926 0.161926 0.171173 0.171173 0.171173 0.181000 0.181000 0.181000 0.191132 0.191132 0.191132 0.201233 0.201233 0.201233 0.211639 0.211639 0.211639 0.222015 0.222015 0.222015 0.232025 0.232025 0.232025 0.242126 0.242126 0.242126 0.252014 0.252014 0.252014 0.261505 0.261505 0.261505 0.271057 0.271057 0.271057 0.280182 0.280182 0.280182 0.289368 0.289368 0.289368 0.298370 0.298370 0.298370 0.306976 0.306976 0.306976 0.315613 0.315613 0.315613 0.324066 0.324066 0.324066 0.332153 0.332153 0.332153 0.340271 0.340271 0.340271 0.348236 0.348236 0.348236 0.355835 0.355835 0.355835 0.363495 0.363495 0.363495 0.108795 0.108795 0.108795 0.115204 0.115204 0.115204 0.121796 0.121796 0.121796 0.128937 0.128937 0.128937 0.136475 0.136475 0.136475 0.144257 0.144257 0.144257 0.152740 0.152740 0.152740 0.161713 0.161713 0.161713 0.170929 0.170929 0.170929 0.180725 0.180725 0.180725 0.190643 0.190643 0.190643 0.200958 0.200958 0.200958 0.211365 0.211365 0.211365 0.221527 0.221527 0.221527 0.231750 0.231750 0.231750 0.241882 0.241882 0.241882 0.251526 0.251526 0.251526 0.261261 0.261261 0.261261 0.270813 0.270813 0.270813 0.279968 0.279968 0.279968 0.289124 0.289124 0.289124 0.297943 0.297943 0.297943 0.306763 0.306763 0.306763 0.315399 0.315399 0.315399 0.323639 0.323639 0.323639 0.331940 0.331940 0.331940 0.340088 0.340088 0.340088 0.347870 0.347870 0.347870 0.355682 0.355682 0.355682 0.363312 0.363312 0.363312 0.370667 0.370667 0.370667 0.378082 0.378082 0.378082 0.121643 0.121643 0.121643 0.128784 0.128784 0.128784 0.136108 0.136108 0.136108 0.144073 0.144073 0.144073 0.152557 0.152557 0.152557 0.161255 0.161255 0.161255 0.170685 0.170685 0.170685 0.180237 0.180237 0.180237 0.190399 0.190399 0.190399 0.200714 0.200714 0.200714 0.210846 0.210846 0.210846 0.221252 0.221252 0.221252 0.231476 0.231476 0.231476 0.241364 0.241364 0.241364 0.251282 0.251282 0.251282 0.261047 0.261047 0.261047 0.270355 0.270355 0.270355 0.279724 0.279724 0.279724 0.288696 0.288696 0.288696 0.297699 0.297699 0.297699 0.306519 0.306519 0.306519 0.314972 0.314972 0.314972 0.323425 0.323425 0.323425 0.331757 0.331757 0.331757 0.339691 0.339691 0.339691 0.347656 0.347656 0.347656 0.355469 0.355469 0.355469 0.362946 0.362946 0.362946 0.370514 0.370514 0.370514 0.377716 0.377716 0.377716 0.385010 0.385010 0.385010 0.392181 0.392181 0.392181 0.135895 0.135895 0.135895 0.143860 0.143860 0.143860 0.152100 0.152100 0.152100 0.161011 0.161011 0.161011 0.170441 0.170441 0.170441 0.179993 0.179993 0.179993 0.190094 0.190094 0.190094 0.200165 0.200165 0.200165 0.210602 0.210602 0.210602 0.220978 0.220978 0.220978 0.231018 0.231018 0.231018 0.241119 0.241119 0.241119 0.251038 0.251038 0.251038 0.260559 0.260559 0.260559 0.270142 0.270142 0.270142 0.279510 0.279510 0.279510 0.288483 0.288483 0.288483 0.297485 0.297485 0.297485 0.306122 0.306122 0.306122 0.314728 0.314728 0.314728 0.323242 0.323242 0.323242 0.331329 0.331329 0.331329 0.339478 0.339478 0.339478 0.347443 0.347443 0.347443 0.355072 0.355072 0.355072 0.362762 0.362762 0.362762 0.370300 0.370300 0.370300 0.377502 0.377502 0.377502 0.384827 0.384827 0.384827 0.391846 0.391846 0.391846 0.398926 0.398926 0.398926 0.405914 0.405914 0.405914 0.151886 0.151886 0.151886 0.160767 0.160767 0.160767 0.169952 0.169952 0.169952 0.179749 0.179749 0.179749 0.189606 0.189606 0.189606 0.199921 0.199921 0.199921 0.210327 0.210327 0.210327 0.220459 0.220459 0.220459 0.230774 0.230774 0.230774 0.240875 0.240875 0.240875 0.250549 0.250549 0.250549 0.260315 0.260315 0.260315 0.269867 0.269867 0.269867 0.279053 0.279053 0.279053 0.288239 0.288239 0.288239 0.297028 0.297028 0.297028 0.305878 0.305878 0.305878 0.314545 0.314545 0.314545 0.322815 0.322815 0.322815 0.331116 0.331116 0.331116 0.339264 0.339264 0.339264 0.347046 0.347046 0.347046 0.354889 0.354889 0.354889 0.362579 0.362579 0.362579 0.369904 0.369904 0.369904 0.377350 0.377350 0.377350 0.384460 0.384460 0.384460 0.391663 0.391663 0.391663 0.398773 0.398773 0.398773 0.405579 0.405579 0.405579 0.412537 0.412537 0.412537 0.419403 0.419403 0.419403 0.169708 0.169708 0.169708 0.179504 0.179504 0.179504 0.189301 0.189301 0.189301 0.199677 0.199677 0.199677 0.209808 0.209808 0.209808 0.220215 0.220215 0.220215 0.230530 0.230530 0.230530 0.240356 0.240356 0.240356 0.250305 0.250305 0.250305 0.260040 0.260040 0.260040 0.269379 0.269379 0.269379 0.278809 0.278809 0.278809 0.288025 0.288025 0.288025 0.296783 0.296783 0.296783 0.305664 0.305664 0.305664 0.314117 0.314117 0.314117 0.322601 0.322601 0.322601 0.330902 0.330902 0.330902 0.338837 0.338837 0.338837 0.346863 0.346863 0.346863 0.354675 0.354675 0.354675 0.362183 0.362183 0.362183 0.369751 0.369751 0.369751 0.377136 0.377136 0.377136 0.384277 0.384277 0.384277 0.391449 0.391449 0.391449 0.398407 0.398407 0.398407 0.405426 0.405426 0.405426 0.412354 0.412354 0.412354 0.419037 0.419037 0.419037 0.425873 0.425873 0.425873 0.432648 0.432648 0.432648 0.189056 0.189056 0.189056 0.199158 0.199158 0.199158 0.209564 0.209564 0.209564 0.219940 0.219940 0.219940 0.230011 0.230011 0.230011 0.240112 0.240112 0.240112 0.250031 0.250031 0.250031 0.259583 0.259583 0.259583 0.269135 0.269135 0.269135 0.278564 0.278564 0.278564 0.287567 0.287567 0.287567 0.296600 0.296600 0.296600 0.305206 0.305206 0.305206 0.313904 0.313904 0.313904 0.322388 0.322388 0.322388 0.330505 0.330505 0.330505 0.338684 0.338684 0.338684 0.346649 0.346649 0.346649 0.354279 0.354279 0.354279 0.362000 0.362000 0.362000 0.369568 0.369568 0.369568 0.376770 0.376770 0.376770 0.384094 0.384094 0.384094 0.391296 0.391296 0.391296 0.398224 0.398224 0.398224 0.405243 0.405243 0.405243 0.412018 0.412018 0.412018 0.418884 0.418884 0.418884 0.425690 0.425690 0.425690 0.432312 0.432312 0.432312 0.439087 0.439087 0.439087 0.445831 0.445831 0.445831 0.209290 0.209290 0.209290 0.219452 0.219452 0.219452 0.229736 0.229736 0.229736 0.239868 0.239868 0.239868 0.249542 0.249542 0.249542 0.259338 0.259338 0.259338 0.268921 0.268921 0.268921 0.278107 0.278107 0.278107 0.287323 0.287323 0.287323 0.296387 0.296387 0.296387 0.304993 0.304993 0.304993 0.313690 0.313690 0.313690 0.321960 0.321960 0.321960 0.330322 0.330322 0.330322 0.338470 0.338470 0.338470 0.346252 0.346252 0.346252 0.354095 0.354095 0.354095 0.361816 0.361816 0.361816 0.369171 0.369171 0.369171 0.376587 0.376587 0.376587 0.383911 0.383911 0.383911 0.390961 0.390961 0.390961 0.398010 0.398010 0.398010 0.404907 0.404907 0.404907 0.411804 0.411804 0.411804 0.418732 0.418732 0.418732 0.425385 0.425385 0.425385 0.432159 0.432159 0.432159 0.438904 0.438904 0.438904 0.445496 0.445496 0.445496 0.452271 0.452271 0.452271 0.459015 0.459015 0.459015 0.229462 0.229462 0.229462 0.239349 0.239349 0.239349 0.249329 0.249329 0.249329 0.259094 0.259094 0.259094 0.268463 0.268463 0.268463 0.277863 0.277863 0.277863 0.287109 0.287109 0.287109 0.295898 0.295898 0.295898 0.304810 0.304810 0.304810 0.313263 0.313263 0.313263 0.321747 0.321747 0.321747 0.330109 0.330109 0.330109 0.338043 0.338043 0.338043 0.346069 0.346069 0.346069 0.353912 0.353912 0.353912 0.361420 0.361420 0.361420 0.368988 0.368988 0.368988 0.376434 0.376434 0.376434 0.383545 0.383545 0.383545 0.390747 0.390747 0.390747 0.397858 0.397858 0.397858 0.404724 0.404724 0.404724 0.411652 0.411652 0.411652 0.418365 0.418365 0.418365 0.425171 0.425171 0.425171 0.431976 0.431976 0.431976 0.438568 0.438568 0.438568 0.445343 0.445343 0.445343 0.452087 0.452087 0.452087 0.458649 0.458649 0.458649 0.465454 0.465454 0.465454 0.472260 0.472260 0.472260 0.249084 0.249084 0.249084 0.258606 0.258606 0.258606 0.268219 0.268219 0.268219 0.277618 0.277618 0.277618 0.286652 0.286652 0.286652 0.295715 0.295715 0.295715 0.304565 0.304565 0.304565 0.313049 0.313049 0.313049 0.321564 0.321564 0.321564 0.329712 0.329712 0.329712 0.337860 0.337860 0.337860 0.345886 0.345886 0.345886 0.353516 0.353516 0.353516 0.361267 0.361267 0.361267 0.368805 0.368805 0.368805 0.376068 0.376068 0.376068 0.383362 0.383362 0.383362 0.390594 0.390594 0.390594 0.397522 0.397522 0.397522 0.404510 0.404510 0.404510 0.411316 0.411316 0.411316 0.418182 0.418182 0.418182 0.425018 0.425018 0.425018 0.431641 0.431641 0.431641 0.438385 0.438385 0.438385 0.445160 0.445160 0.445160 0.451752 0.451752 0.451752 0.458496 0.458496 0.458496 0.465271 0.465271 0.465271 0.471893 0.471893 0.471893 0.478760 0.478760 0.478760 0.485504 0.485504 0.485504 0.267975 0.267975 0.267975 0.277161 0.277161 0.277161 0.286407 0.286407 0.286407 0.295471 0.295471 0.295471 0.304138 0.304138 0.304138 0.312836 0.312836 0.312836 0.321167 0.321167 0.321167 0.329468 0.329468 0.329468 0.337677 0.337677 0.337677 0.345459 0.345459 0.345459 0.353363 0.353363 0.353363 0.361053 0.361053 0.361053 0.368408 0.368408 0.368408 0.375854 0.375854 0.375854 0.383179 0.383179 0.383179 0.390228 0.390228 0.390228 0.397339 0.397339 0.397339 0.404358 0.404358 0.404358 0.411133 0.411133 0.411133 0.417999 0.417999 0.417999 0.424683 0.424683 0.424683 0.431488 0.431488 0.431488 0.438263 0.438263 0.438263 0.444824 0.444824 0.444824 0.451569 0.451569 0.451569 0.458313 0.458313 0.458313 0.464935 0.464935 0.464935 0.471741 0.471741 0.471741 0.478607 0.478607 0.478607 0.485321 0.485321 0.485321 0.492310 0.492310 0.492310 0.499176 0.499176 0.499176 0.286194 0.286194 0.286194 0.295013 0.295013 0.295013 0.303925 0.303925 0.303925 0.312622 0.312622 0.312622 0.320923 0.320923 0.320923 0.329285 0.329285 0.329285 0.337250 0.337250 0.337250 0.345306 0.345306 0.345306 0.353149 0.353149 0.353149 0.360657 0.360657 0.360657 0.368225 0.368225 0.368225 0.375702 0.375702 0.375702 0.382843 0.382843 0.382843 0.390045 0.390045 0.390045 0.397186 0.397186 0.397186 0.403992 0.403992 0.403992 0.410980 0.410980 0.410980 0.417664 0.417664 0.417664 0.424500 0.424500 0.424500 0.431305 0.431305 0.431305 0.437897 0.437897 0.437897 0.444641 0.444641 0.444641 0.451416 0.451416 0.451416 0.457977 0.457977 0.457977 0.464752 0.464752 0.464752 0.471588 0.471588 0.471588 0.478241 0.478241 0.478241 0.485138 0.485138 0.485138 0.491974 0.491974 0.491974 0.498993 0.498993 0.498993 0.506134 0.506134 0.506134 0.513184 0.513184 0.513184 0.303680 0.303680 0.303680 0.312195 0.312195 0.312195 0.320709 0.320709 0.320709 0.328827 0.328827 0.328827 0.337036 0.337036 0.337036 0.345062 0.345062 0.345062 0.352722 0.352722 0.352722 0.360474 0.360474 0.360474 0.368042 0.368042 0.368042 0.375336 0.375336 0.375336 0.382660 0.382660 0.382660 0.389862 0.389862 0.389862 0.396820 0.396820 0.396820 0.403839 0.403839 0.403839 0.410614 0.410614 0.410614 0.417480 0.417480 0.417480 0.424347 0.424347 0.424347 0.430969 0.430969 0.430969 0.437744 0.437744 0.437744 0.444489 0.444489 0.444489 0.451080 0.451080 0.451080 0.457825 0.457825 0.457825 0.464600 0.464600 0.464600 0.471222 0.471222 0.471222 0.478088 0.478088 0.478088 0.484985 0.484985 0.484985 0.491760 0.491760 0.491760 0.498840 0.498840 0.498840 0.505768 0.505768 0.505768 0.513000 0.513000 0.513000 0.520325 0.520325 0.520325 0.527557 0.527557 0.527557 0.320496 0.320496 0.320496 0.328674 0.328674 0.328674 0.336853 0.336853 0.336853 0.344666 0.344666 0.344666 0.352539 0.352539 0.352539 0.360260 0.360260 0.360260 0.367676 0.367676 0.367676 0.375122 0.375122 0.375122 0.382446 0.382446 0.382446 0.389526 0.389526 0.389526 0.396637 0.396637 0.396637 0.403656 0.403656 0.403656 0.410461 0.410461 0.410461 0.417328 0.417328 0.417328 0.424011 0.424011 0.424011 0.430817 0.430817 0.430817 0.437592 0.437592 0.437592 0.444153 0.444153 0.444153 0.450897 0.450897 0.450897 0.457642 0.457642 0.457642 0.464233 0.464233 0.464233 0.471069 0.471069 0.471069 0.477936 0.477936 0.477936 0.484650 0.484650 0.484650 0.491608 0.491608 0.491608 0.498474 0.498474 0.498474 0.505615 0.505615 0.505615 0.512817 0.512817 0.512817 0.519958 0.519958 0.519958 0.527374 0.527374 0.527374 0.534943 0.534943 0.534943 0.542389 0.542389 0.542389 0.336639 0.336639 0.336639 0.344482 0.344482 0.344482 0.352325 0.352325 0.352325 0.359894 0.359894 0.359894 0.367462 0.367462 0.367462 0.374969 0.374969 0.374969 0.382080 0.382080 0.382080 0.389313 0.389313 0.389313 0.396454 0.396454 0.396454 0.403320 0.403320 0.403320 0.410278 0.410278 0.410278 0.417175 0.417175 0.417175 0.423828 0.423828 0.423828 0.430603 0.430603 0.430603 0.437225 0.437225 0.437225 0.443970 0.443970 0.443970 0.450714 0.450714 0.450714 0.457306 0.457306 0.457306 0.464081 0.464081 0.464081 0.470886 0.470886 0.470886 0.477570 0.477570 0.477570 0.484467 0.484467 0.484467 0.491425 0.491425 0.491425 0.498291 0.498291 0.498291 0.505432 0.505432 0.505432 0.512634 0.512634 0.512634 0.519775 0.519775 0.519775 0.527191 0.527191 0.527191 0.534546 0.534546 0.534546 0.542206 0.542206 0.542206 0.550018 0.550018 0.550018 0.557709 0.557709 0.557709 0.352173 0.352173 0.352173 0.359711 0.359711 0.359711 0.367310 0.367310 0.367310 0.374573 0.374573 0.374573 0.381927 0.381927 0.381927 0.389160 0.389160 0.389160 0.396088 0.396088 0.396088 0.403168 0.403168 0.403168 0.410095 0.410095 0.410095 0.416840 0.416840 0.416840 0.423676 0.423676 0.423676 0.430450 0.430450 0.430450 0.437073 0.437073 0.437073 0.443817 0.443817 0.443817 0.450378 0.450378 0.450378 0.457123 0.457123 0.457123 0.463928 0.463928 0.463928 0.470551 0.470551 0.470551 0.477386 0.477386 0.477386 0.484283 0.484283 0.484283 0.491089 0.491089 0.491089 0.498077 0.498077 0.498077 0.505219 0.505219 0.505219 0.512268 0.512268 0.512268 0.519592 0.519592 0.519592 0.526825 0.526825 0.526825 0.534363 0.534363 0.534363 0.542023 0.542023 0.542023 0.549622 0.549622 0.549622 0.557526 0.557526 0.557526 0.565582 0.565582 0.565582 0.573578 0.573578 0.573578 0.366943 0.366943 0.366943 0.374390 0.374390 0.374390 0.381744 0.381744 0.381744 0.388794 0.388794 0.388794 0.395935 0.395935 0.395935 0.402954 0.402954 0.402954 0.409760 0.409760 0.409760 0.416656 0.416656 0.416656 0.423462 0.423462 0.423462 0.430115 0.430115 0.430115 0.436890 0.436890 0.436890 0.443451 0.443451 0.443451 0.450226 0.450226 0.450226 0.456970 0.456970 0.456970 0.463562 0.463562 0.463562 0.470367 0.470367 0.470367 0.477203 0.477203 0.477203 0.483948 0.483948 0.483948 0.490906 0.490906 0.490906 0.497955 0.497955 0.497955 0.504883 0.504883 0.504883 0.512085 0.512085 0.512085 0.519379 0.519379 0.519379 0.526642 0.526642 0.526642 0.534180 0.534180 0.534180 0.541656 0.541656 0.541656 0.549408 0.549408 0.549408 0.557343 0.557343 0.557343 0.565186 0.565186 0.565186 0.573364 0.573364 0.573364 0.581696 0.581696 0.581696 0.589905 0.589905 0.589905 0.381378 0.381378 0.381378 0.388611 0.388611 0.388611 0.395752 0.395752 0.395752 0.402618 0.402618 0.402618 0.409576 0.409576 0.409576 0.416473 0.416473 0.416473 0.423126 0.423126 0.423126 0.429932 0.429932 0.429932 0.436707 0.436707 0.436707 0.443298 0.443298 0.443298 0.450073 0.450073 0.450073 0.456635 0.456635 0.456635 0.463409 0.463409 0.463409 0.470184 0.470184 0.470184 0.476868 0.476868 0.476868 0.483734 0.483734 0.483734 0.490692 0.490692 0.490692 0.497589 0.497589 0.497589 0.504700 0.504700 0.504700 0.511902 0.511902 0.511902 0.519043 0.519043 0.519043 0.526428 0.526428 0.526428 0.533783 0.533783 0.533783 0.541443 0.541443 0.541443 0.549225 0.549225 0.549225 0.556946 0.556946 0.556946 0.564972 0.564972 0.564972 0.573151 0.573151 0.573151 0.581268 0.581268 0.581268 0.589691 0.589691 0.589691 0.598236 0.598236 0.598236 0.606628 0.606628 0.606628 0.395416 0.395416 0.395416 0.402435 0.402435 0.402435 0.409424 0.409424 0.409424 0.416138 0.416138 0.416138 0.422974 0.422974 0.422974 0.429779 0.429779 0.429779 0.436371 0.436371 0.436371 0.443146 0.443146 0.443146 0.449707 0.449707 0.449707 0.456451 0.456451 0.456451 0.463226 0.463226 0.463226 0.469879 0.469879 0.469879 0.476685 0.476685 0.476685 0.483612 0.483612 0.483612 0.490387 0.490387 0.490387 0.497406 0.497406 0.497406 0.504517 0.504517 0.504517 0.511536 0.511536 0.511536 0.518860 0.518860 0.518860 0.526245 0.526245 0.526245 0.533600 0.533600 0.533600 0.541260 0.541260 0.541260 0.548828 0.548828 0.548828 0.556732 0.556732 0.556732 0.564758 0.564758 0.564758 0.572754 0.572754 0.572754 0.581024 0.581024 0.581024 0.589478 0.589478 0.589478 0.597809 0.597809 0.597809 0.606445 0.606445 0.606445 0.615112 0.615112 0.615112 0.623596 0.623596 0.623596 0.409058 0.409058 0.409058 0.415955 0.415955 0.415955 0.422791 0.422791 0.422791 0.429443 0.429443 0.429443 0.436218 0.436218 0.436218 0.442963 0.442963 0.442963 0.449554 0.449554 0.449554 0.456299 0.456299 0.456299 0.462921 0.462921 0.462921 0.469696 0.469696 0.469696 0.476532 0.476532 0.476532 0.483246 0.483246 0.483246 0.490173 0.490173 0.490173 0.497223 0.497223 0.497223 0.504181 0.504181 0.504181 0.511353 0.511353 0.511353 0.518677 0.518677 0.518677 0.525879 0.525879 0.525879 0.533417 0.533417 0.533417 0.540863 0.540863 0.540863 0.548645 0.548645 0.548645 0.556519 0.556519 0.556519 0.564362 0.564362 0.564362 0.572540 0.572540 0.572540 0.580841 0.580841 0.580841 0.589081 0.589081 0.589081 0.597595 0.597595 0.597595 0.606201 0.606201 0.606201 0.614655 0.614655 0.614655 0.623383 0.623383 0.623383 0.631897 0.631897 0.631897 0.640656 0.640656 0.640656 0.422455 0.422455 0.422455 0.429260 0.429260 0.429260 0.436035 0.436035 0.436035 0.442627 0.442627 0.442627 0.449371 0.449371 0.449371 0.455963 0.455963 0.455963 0.462708 0.462708 0.462708 0.469543 0.469543 0.469543 0.476196 0.476196 0.476196 0.483063 0.483063 0.483063 0.490051 0.490051 0.490051 0.496887 0.496887 0.496887 0.503967 0.503967 0.503967 0.511200 0.511200 0.511200 0.518280 0.518280 0.518280 0.525696 0.525696 0.525696 0.533234 0.533234 0.533234 0.540680 0.540680 0.540680 0.548431 0.548431 0.548431 0.556152 0.556152 0.556152 0.564178 0.564178 0.564178 0.572327 0.572327 0.572327 0.580414 0.580414 0.580414 0.588837 0.588837 0.588837 0.597382 0.597382 0.597382 0.605774 0.605774 0.605774 0.614441 0.614441 0.614441 0.623169 0.623169 0.623169 0.631683 0.631683 0.631683 0.640472 0.640472 0.640472 0.648987 0.648987 0.648987 0.657684 0.657684 0.657684 0.435699 0.435699 0.435699 0.442444 0.442444 0.442444 0.449188 0.449188 0.449188 0.455780 0.455780 0.455780 0.462555 0.462555 0.462555 0.469177 0.469177 0.469177 0.476013 0.476013 0.476013 0.482910 0.482910 0.482910 0.489685 0.489685 0.489685 0.496704 0.496704 0.496704 0.503784 0.503784 0.503784 0.510803 0.510803 0.510803 0.518127 0.518127 0.518127 0.525513 0.525513 0.525513 0.532867 0.532867 0.532867 0.540466 0.540466 0.540466 0.548065 0.548065 0.548065 0.555939 0.555939 0.555939 0.563995 0.563995 0.563995 0.571899 0.571899 0.571899 0.580231 0.580231 0.580231 0.588623 0.588623 0.588623 0.596954 0.596954 0.596954 0.605560 0.605560 0.605560 0.614258 0.614258 0.614258 0.622742 0.622742 0.622742 0.631500 0.631500 0.631500 0.639984 0.639984 0.639984 0.648773 0.648773 0.648773 0.657471 0.657471 0.657471 0.665924 0.665924 0.665924 0.674561 0.674561 0.674561 0.448883 0.448883 0.448883 0.455627 0.455627 0.455627 0.462402 0.462402 0.462402 0.469025 0.469025 0.469025 0.475861 0.475861 0.475861 0.482544 0.482544 0.482544 0.489502 0.489502 0.489502 0.496521 0.496521 0.496521 0.503418 0.503418 0.503418 0.510651 0.510651 0.510651 0.517944 0.517944 0.517944 0.525146 0.525146 0.525146 0.532654 0.532654 0.532654 0.540100 0.540100 0.540100 0.547821 0.547821 0.547821 0.555725 0.555725 0.555725 0.563538 0.563538 0.563538 0.571686 0.571686 0.571686 0.580017 0.580017 0.580017 0.588196 0.588196 0.588196 0.596741 0.596741 0.596741 0.605347 0.605347 0.605347 0.613770 0.613770 0.613770 0.622528 0.622528 0.622528 0.631256 0.631256 0.631256 0.639801 0.639801 0.639801 0.648529 0.648529 0.648529 0.657074 0.657074 0.657074 0.665680 0.665680 0.665680 0.674347 0.674347 0.674347 0.682648 0.682648 0.682648 0.691101 0.691101 0.691101 0.462036 0.462036 0.462036 0.468842 0.468842 0.468842 0.475494 0.475494 0.475494 0.482391 0.482391 0.482391 0.489349 0.489349 0.489349 0.496155 0.496155 0.496155 0.503265 0.503265 0.503265 0.510437 0.510437 0.510437 0.517548 0.517548 0.517548 0.524963 0.524963 0.524963 0.532471 0.532471 0.532471 0.539886 0.539886 0.539886 0.547668 0.547668 0.547668 0.555328 0.555328 0.555328 0.563354 0.563354 0.563354 0.571503 0.571503 0.571503 0.579590 0.579590 0.579590 0.588013 0.588013 0.588013 0.596527 0.596527 0.596527 0.604919 0.604919 0.604919 0.613586 0.613586 0.613586 0.622284 0.622284 0.622284 0.630829 0.630829 0.630829 0.639557 0.639557 0.639557 0.648132 0.648132 0.648132 0.656830 0.656830 0.656830 0.665497 0.665497 0.665497 0.673889 0.673889 0.673889 0.682465 0.682465 0.682465 0.690887 0.690887 0.690887 0.699036 0.699036 0.699036 0.707275 0.707275 0.707275 0.475342 0.475342 0.475342 0.482208 0.482208 0.482208 0.488983 0.488983 0.488983 0.496002 0.496002 0.496002 0.503082 0.503082 0.503082 0.510101 0.510101 0.510101 0.517395 0.517395 0.517395 0.524780 0.524780 0.524780 0.532104 0.532104 0.532104 0.539734 0.539734 0.539734 0.547455 0.547455 0.547455 0.555115 0.555115 0.555115 0.563141 0.563141 0.563141 0.571106 0.571106 0.571106 0.579376 0.579376 0.579376 0.587799 0.587799 0.587799 0.596100 0.596100 0.596100 0.604675 0.604675 0.604675 0.613342 0.613342 0.613342 0.621857 0.621857 0.621857 0.630615 0.630615 0.630615 0.639374 0.639374 0.639374 0.647888 0.647888 0.647888 0.656616 0.656616 0.656616 0.665039 0.665039 0.665039 0.673706 0.673706 0.673706 0.682251 0.682251 0.682251 0.690491 0.690491 0.690491 0.698822 0.698822 0.698822 0.707062 0.707062 0.707062 0.714966 0.714966 0.714966 0.722931 0.722931 0.722931 0.488831 0.488831 0.488831 0.495819 0.495819 0.495819 0.502747 0.502747 0.502747 0.509888 0.509888 0.509888 0.517212 0.517212 0.517212 0.524414 0.524414 0.524414 0.531891 0.531891 0.531891 0.539520 0.539520 0.539520 0.547058 0.547058 0.547058 0.554932 0.554932 0.554932 0.562775 0.562775 0.562775 0.570892 0.570892 0.570892 0.579193 0.579193 0.579193 0.587372 0.587372 0.587372 0.595856 0.595856 0.595856 0.604462 0.604462 0.604462 0.612946 0.612946 0.612946 0.621643 0.621643 0.621643 0.630371 0.630371 0.630371 0.638916 0.638916 0.638916 0.647675 0.647675 0.647675 0.656158 0.656158 0.656158 0.664856 0.664856 0.664856 0.673462 0.673462 0.673462 0.681793 0.681793 0.681793 0.690277 0.690277 0.690277 0.698608 0.698608 0.698608 0.706665 0.706665 0.706665 0.714783 0.714783 0.714783 0.722717 0.722717 0.722717 0.730316 0.730316 0.730316 0.737946 0.737946 0.737946 0.502533 0.502533 0.502533 0.509735 0.509735 0.509735 0.516815 0.516815 0.516815 0.524200 0.524200 0.524200 0.531708 0.531708 0.531708 0.539093 0.539093 0.539093 0.546875 0.546875 0.546875 0.554749 0.554749 0.554749 0.562561 0.562561 0.562561 0.570679 0.570679 0.570679 0.578766 0.578766 0.578766 0.587128 0.587128 0.587128 0.595673 0.595673 0.595673 0.604034 0.604034 0.604034 0.612701 0.612701 0.612701 0.621399 0.621399 0.621399 0.629944 0.629944 0.629944 0.638702 0.638702 0.638702 0.647430 0.647430 0.647430 0.655914 0.655914 0.655914 0.664612 0.664612 0.664612 0.673065 0.673065 0.673065 0.681610 0.681610 0.681610 0.690063 0.690063 0.690063 0.698212 0.698212 0.698212 0.706451 0.706451 0.706451 0.714569 0.714569 0.714569 0.722351 0.722351 0.722351 0.730164 0.730164 0.730164 0.737793 0.737793 0.737793 0.745026 0.745026 0.745026 0.752289 0.752289 0.752289 0.516663 0.516663 0.516663 0.524017 0.524017 0.524017 0.531342 0.531342 0.531342 0.538940 0.538940 0.538940 0.546661 0.546661 0.546661 0.554352 0.554352 0.554352 0.562347 0.562347 0.562347 0.570282 0.570282 0.570282 0.578552 0.578552 0.578552 0.586945 0.586945 0.586945 0.595215 0.595215 0.595215 0.603821 0.603821 0.603821 0.612488 0.612488 0.612488 0.621002 0.621002 0.621002 0.629730 0.629730 0.629730 0.638489 0.638489 0.638489 0.647003 0.647003 0.647003 0.655731 0.655731 0.655731 0.664459 0.664459 0.664459 0.672821 0.672821 0.672821 0.681366 0.681366 0.681366 0.689667 0.689667 0.689667 0.697998 0.697998 0.697998 0.706238 0.706238 0.706238 0.714142 0.714142 0.714142 0.722107 0.722107 0.722107 0.729919 0.729919 0.729919 0.737396 0.737396 0.737396 0.744843 0.744843 0.744843 0.751923 0.751923 0.751923 0.758972 0.758972 0.758972 0.765839 0.765839 0.765839 0.531158 0.531158 0.531158 0.538727 0.538727 0.538727 0.546295 0.546295 0.546295 0.554169 0.554169 0.554169 0.562134 0.562134 0.562134 0.570068 0.570068 0.570068 0.578308 0.578308 0.578308 0.586517 0.586517 0.586517 0.595032 0.595032 0.595032 0.603607 0.603607 0.603607 0.612061 0.612061 0.612061 0.620758 0.620758 0.620758 0.629517 0.629517 0.629517 0.638031 0.638031 0.638031 0.646790 0.646790 0.646790 0.655518 0.655518 0.655518 0.664001 0.664001 0.664001 0.672607 0.672607 0.672607 0.680969 0.680969 0.680969 0.689423 0.689423 0.689423 0.697784 0.697784 0.697784 0.705841 0.705841 0.705841 0.713959 0.713959 0.713959 0.721924 0.721924 0.721924 0.729553 0.729553 0.729553 0.737213 0.737213 0.737213 0.744690 0.744690 0.744690 0.751740 0.751740 0.751740 0.758850 0.758850 0.758850 0.765533 0.765533 0.765533 0.772125 0.772125 0.772125 0.778564 0.778564 0.778564 0.546112 0.546112 0.546112 0.553955 0.553955 0.553955 0.561737 0.561737 0.561737 0.569885 0.569885 0.569885 0.577911 0.577911 0.577911 0.586304 0.586304 0.586304 0.594818 0.594818 0.594818 0.603180 0.603180 0.603180 0.611847 0.611847 0.611847 0.620544 0.620544 0.620544 0.629059 0.629059 0.629059 0.637817 0.637817 0.637817 0.646576 0.646576 0.646576 0.655090 0.655090 0.655090 0.663788 0.663788 0.663788 0.672150 0.672150 0.672150 0.680756 0.680756 0.680756 0.689209 0.689209 0.689209 0.697388 0.697388 0.697388 0.705627 0.705627 0.705627 0.713776 0.713776 0.713776 0.721527 0.721527 0.721527 0.729370 0.729370 0.729370 0.737000 0.737000 0.737000 0.744293 0.744293 0.744293 0.751556 0.751556 0.751556 0.758667 0.758667 0.758667 0.765350 0.765350 0.765350 0.771973 0.771973 0.771973 0.778229 0.778229 0.778229 0.784424 0.784424 0.784424 0.790344 0.790344 0.790344 0.078949 0.078949 0.078949 0.083710 0.083710 0.083710 0.088806 0.088806 0.088806 0.094147 0.094147 0.094147 0.099640 0.099640 0.099640 0.105560 0.105560 0.105560 0.111786 0.111786 0.111786 0.118225 0.118225 0.118225 0.125153 0.125153 0.125153 0.132294 0.132294 0.132294 0.140045 0.140045 0.140045 0.148285 0.148285 0.148285 0.156708 0.156708 0.156708 0.165894 0.165894 0.165894 0.175537 0.175537 0.175537 0.185272 0.185272 0.185272 0.195526 0.195526 0.195526 0.205902 0.205902 0.205902 0.216064 0.216064 0.216064 0.226410 0.226410 0.226410 0.236328 0.236328 0.236328 0.246338 0.246338 0.246338 0.256165 0.256165 0.256165 0.265594 0.265594 0.265594 0.275085 0.275085 0.275085 0.284332 0.284332 0.284332 0.293213 0.293213 0.293213 0.302155 0.302155 0.302155 0.310913 0.310913 0.310913 0.319214 0.319214 0.319214 0.327637 0.327637 0.327637 0.335632 0.335632 0.335632 0.088684 0.088684 0.088684 0.093903 0.093903 0.093903 0.099518 0.099518 0.099518 0.105377 0.105377 0.105377 0.111481 0.111481 0.111481 0.118042 0.118042 0.118042 0.124786 0.124786 0.124786 0.132111 0.132111 0.132111 0.139832 0.139832 0.139832 0.147827 0.147827 0.147827 0.156494 0.156494 0.156494 0.165680 0.165680 0.165680 0.175049 0.175049 0.175049 0.185028 0.185028 0.185028 0.195251 0.195251 0.195251 0.205383 0.205383 0.205383 0.215790 0.215790 0.215790 0.226166 0.226166 0.226166 0.236053 0.236053 0.236053 0.246094 0.246094 0.246094 0.255707 0.255707 0.255707 0.265350 0.265350 0.265350 0.274841 0.274841 0.274841 0.283905 0.283905 0.283905 0.292999 0.292999 0.292999 0.301941 0.301941 0.301941 0.310455 0.310455 0.310455 0.319000 0.319000 0.319000 0.327393 0.327393 0.327393 0.335419 0.335419 0.335419 0.343506 0.343506 0.343506 0.351166 0.351166 0.351166 0.099365 0.099365 0.099365 0.105133 0.105133 0.105133 0.111328 0.111328 0.111328 0.117859 0.117859 0.117859 0.124634 0.124634 0.124634 0.131927 0.131927 0.131927 0.139435 0.139435 0.139435 0.147614 0.147614 0.147614 0.156281 0.156281 0.156281 0.165222 0.165222 0.165222 0.174805 0.174805 0.174805 0.184753 0.184753 0.184753 0.194763 0.194763 0.194763 0.205109 0.205109 0.205109 0.215546 0.215546 0.215546 0.225647 0.225647 0.225647 0.235840 0.235840 0.235840 0.245636 0.245636 0.245636 0.255463 0.255463 0.255463 0.265106 0.265106 0.265106 0.274323 0.274323 0.274323 0.283661 0.283661 0.283661 0.292786 0.292786 0.292786 0.301483 0.301483 0.301483 0.310242 0.310242 0.310242 0.318817 0.318817 0.318817 0.326996 0.326996 0.326996 0.335205 0.335205 0.335205 0.343109 0.343109 0.343109 0.350983 0.350983 0.350983 0.358734 0.358734 0.358734 0.366180 0.366180 0.366180 0.111145 0.111145 0.111145 0.117523 0.117523 0.117523 0.124420 0.124420 0.124420 0.131531 0.131531 0.131531 0.139221 0.139221 0.139221 0.147400 0.147400 0.147400 0.155792 0.155792 0.155792 0.164978 0.164978 0.164978 0.174591 0.174591 0.174591 0.184265 0.184265 0.184265 0.194489 0.194489 0.194489 0.204865 0.204865 0.204865 0.215027 0.215027 0.215027 0.225372 0.225372 0.225372 0.235321 0.235321 0.235321 0.245361 0.245361 0.245361 0.255219 0.255219 0.255219 0.264618 0.264618 0.264618 0.274109 0.274109 0.274109 0.283417 0.283417 0.283417 0.292328 0.292328 0.292328 0.301270 0.301270 0.301270 0.310028 0.310028 0.310028 0.318390 0.318390 0.318390 0.326782 0.326782 0.326782 0.335022 0.335022 0.335022 0.342865 0.342865 0.342865 0.350800 0.350800 0.350800 0.358368 0.358368 0.358368 0.365967 0.365967 0.365967 0.373474 0.373474 0.373474 0.380615 0.380615 0.380615 0.124268 0.124268 0.124268 0.131348 0.131348 0.131348 0.139038 0.139038 0.139038 0.146973 0.146973 0.146973 0.155609 0.155609 0.155609 0.164734 0.164734 0.164734 0.174072 0.174072 0.174072 0.184021 0.184021 0.184021 0.194244 0.194244 0.194244 0.204346 0.204346 0.204346 0.214752 0.214752 0.214752 0.225128 0.225128 0.225128 0.235077 0.235077 0.235077 0.245117 0.245117 0.245117 0.254730 0.254730 0.254730 0.264404 0.264404 0.264404 0.273895 0.273895 0.273895 0.282990 0.282990 0.282990 0.292114 0.292114 0.292114 0.301056 0.301056 0.301056 0.309601 0.309601 0.309601 0.318176 0.318176 0.318176 0.326599 0.326599 0.326599 0.334625 0.334625 0.334625 0.342682 0.342682 0.342682 0.350372 0.350372 0.350372 0.358154 0.358154 0.358154 0.365784 0.365784 0.365784 0.373077 0.373077 0.373077 0.380463 0.380463 0.380463 0.387695 0.387695 0.387695 0.394684 0.394684 0.394684 0.138824 0.138824 0.138824 0.146759 0.146759 0.146759 0.155396 0.155396 0.155396 0.164246 0.164246 0.164246 0.173828 0.173828 0.173828 0.183777 0.183777 0.183777 0.193695 0.193695 0.193695 0.204102 0.204102 0.204102 0.214508 0.214508 0.214508 0.224609 0.224609 0.224609 0.234833 0.234833 0.234833 0.244598 0.244598 0.244598 0.254456 0.254456 0.254456 0.264160 0.264160 0.264160 0.273407 0.273407 0.273407 0.282745 0.282745 0.282745 0.291870 0.291870 0.291870 0.300598 0.300598 0.300598 0.309357 0.309357 0.309357 0.317932 0.317932 0.317932 0.326172 0.326172 0.326172 0.334412 0.334412 0.334412 0.342468 0.342468 0.342468 0.350189 0.350189 0.350189 0.357971 0.357971 0.357971 0.365417 0.365417 0.365417 0.372894 0.372894 0.372894 0.380280 0.380280 0.380280 0.387360 0.387360 0.387360 0.394501 0.394501 0.394501 0.401550 0.401550 0.401550 0.408386 0.408386 0.408386 0.154907 0.154907 0.154907 0.164001 0.164001 0.164001 0.173584 0.173584 0.173584 0.183289 0.183289 0.183289 0.193451 0.193451 0.193451 0.203827 0.203827 0.203827 0.213989 0.213989 0.213989 0.224335 0.224335 0.224335 0.234558 0.234558 0.234558 0.244354 0.244354 0.244354 0.254211 0.254211 0.254211 0.263672 0.263672 0.263672 0.273193 0.273193 0.273193 0.282501 0.282501 0.282501 0.291412 0.291412 0.291412 0.300385 0.300385 0.300385 0.309143 0.309143 0.309143 0.317535 0.317535 0.317535 0.325958 0.325958 0.325958 0.334167 0.334167 0.334167 0.342072 0.342072 0.342072 0.349976 0.349976 0.349976 0.357574 0.357574 0.357574 0.365204 0.365204 0.365204 0.372711 0.372711 0.372711 0.379883 0.379883 0.379883 0.387177 0.387177 0.387177 0.394318 0.394318 0.394318 0.401215 0.401215 0.401215 0.408203 0.408203 0.408203 0.415100 0.415100 0.415100 0.421753 0.421753 0.421753 0.173096 0.173096 0.173096 0.182983 0.182983 0.182983 0.193207 0.193207 0.193207 0.203308 0.203308 0.203308 0.213745 0.213745 0.213745 0.224091 0.224091 0.224091 0.234070 0.234070 0.234070 0.244110 0.244110 0.244110 0.253967 0.253967 0.253967 0.263428 0.263428 0.263428 0.272949 0.272949 0.272949 0.282043 0.282043 0.282043 0.291199 0.291199 0.291199 0.300140 0.300140 0.300140 0.308716 0.308716 0.308716 0.317291 0.317291 0.317291 0.325745 0.325745 0.325745 0.333801 0.333801 0.333801 0.341858 0.341858 0.341858 0.349823 0.349823 0.349823 0.357391 0.357391 0.357391 0.365051 0.365051 0.365051 0.372314 0.372314 0.372314 0.379700 0.379700 0.379700 0.386993 0.386993 0.386993 0.393982 0.393982 0.393982 0.401031 0.401031 0.401031 0.408020 0.408020 0.408020 0.414764 0.414764 0.414764 0.421631 0.421631 0.421631 0.428406 0.428406 0.428406 0.435028 0.435028 0.435028 0.192657 0.192657 0.192657 0.203033 0.203033 0.203033 0.213470 0.213470 0.213470 0.223572 0.223572 0.223572 0.233826 0.233826 0.233826 0.243866 0.243866 0.243866 0.253479 0.253479 0.253479 0.263184 0.263184 0.263184 0.272491 0.272491 0.272491 0.281830 0.281830 0.281830 0.290985 0.290985 0.290985 0.299713 0.299713 0.299713 0.308502 0.308502 0.308502 0.317108 0.317108 0.317108 0.325317 0.325317 0.325317 0.333588 0.333588 0.333588 0.341675 0.341675 0.341675 0.349396 0.349396 0.349396 0.357208 0.357208 0.357208 0.364655 0.364655 0.364655 0.372192 0.372192 0.372192 0.379547 0.379547 0.379547 0.386597 0.386597 0.386597 0.393768 0.393768 0.393768 0.400848 0.400848 0.400848 0.407684 0.407684 0.407684 0.414612 0.414612 0.414612 0.421448 0.421448 0.421448 0.428101 0.428101 0.428101 0.434875 0.434875 0.434875 0.441437 0.441437 0.441437 0.448212 0.448212 0.448212 0.212952 0.212952 0.212952 0.223328 0.223328 0.223328 0.233551 0.233551 0.233551 0.243378 0.243378 0.243378 0.253265 0.253265 0.253265 0.262970 0.262970 0.262970 0.272247 0.272247 0.272247 0.281586 0.281586 0.281586 0.290527 0.290527 0.290527 0.299500 0.299500 0.299500 0.308289 0.308289 0.308289 0.316681 0.316681 0.316681 0.325104 0.325104 0.325104 0.333374 0.333374 0.333374 0.341278 0.341278 0.341278 0.349213 0.349213 0.349213 0.356995 0.356995 0.356995 0.364471 0.364471 0.364471 0.371979 0.371979 0.371979 0.379181 0.379181 0.379181 0.386444 0.386444 0.386444 0.393616 0.393616 0.393616 0.400482 0.400482 0.400482 0.407501 0.407501 0.407501 0.414429 0.414429 0.414429 0.421112 0.421112 0.421112 0.427887 0.427887 0.427887 0.434692 0.434692 0.434692 0.441284 0.441284 0.441284 0.448029 0.448029 0.448029 0.454590 0.454590 0.454590 0.461365 0.461365 0.461365 0.233032 0.233032 0.233032 0.243103 0.243103 0.243103 0.253021 0.253021 0.253021 0.262482 0.262482 0.262482 0.272003 0.272003 0.272003 0.281097 0.281097 0.281097 0.290283 0.290283 0.290283 0.299255 0.299255 0.299255 0.307861 0.307861 0.307861 0.316467 0.316467 0.316467 0.324890 0.324890 0.324890 0.332977 0.332977 0.332977 0.341064 0.341064 0.341064 0.349030 0.349030 0.349030 0.356598 0.356598 0.356598 0.364258 0.364258 0.364258 0.371613 0.371613 0.371613 0.378967 0.378967 0.378967 0.386261 0.386261 0.386261 0.393250 0.393250 0.393250 0.400360 0.400360 0.400360 0.407318 0.407318 0.407318 0.414062 0.414062 0.414062 0.420929 0.420929 0.420929 0.427734 0.427734 0.427734 0.434357 0.434357 0.434357 0.441101 0.441101 0.441101 0.447693 0.447693 0.447693 0.454437 0.454437 0.454437 0.461212 0.461212 0.461212 0.467834 0.467834 0.467834 0.474640 0.474640 0.474640 0.252502 0.252502 0.252502 0.262238 0.262238 0.262238 0.271759 0.271759 0.271759 0.280884 0.280884 0.280884 0.290039 0.290039 0.290039 0.298828 0.298828 0.298828 0.307617 0.307617 0.307617 0.316254 0.316254 0.316254 0.324493 0.324493 0.324493 0.332764 0.332764 0.332764 0.340881 0.340881 0.340881 0.348633 0.348633 0.348633 0.356445 0.356445 0.356445 0.364105 0.364105 0.364105 0.371399 0.371399 0.371399 0.378815 0.378815 0.378815 0.385925 0.385925 0.385925 0.393097 0.393097 0.393097 0.400146 0.400146 0.400146 0.406982 0.406982 0.406982 0.413879 0.413879 0.413879 0.420776 0.420776 0.420776 0.427399 0.427399 0.427399 0.434204 0.434204 0.434204 0.440948 0.440948 0.440948 0.447510 0.447510 0.447510 0.454254 0.454254 0.454254 0.460846 0.460846 0.460846 0.467651 0.467651 0.467651 0.474457 0.474457 0.474457 0.481201 0.481201 0.481201 0.488098 0.488098 0.488098 0.271301 0.271301 0.271301 0.280670 0.280670 0.280670 0.289612 0.289612 0.289612 0.298584 0.298584 0.298584 0.307434 0.307434 0.307434 0.315826 0.315826 0.315826 0.324280 0.324280 0.324280 0.332581 0.332581 0.332581 0.340485 0.340485 0.340485 0.348419 0.348419 0.348419 0.356232 0.356232 0.356232 0.363708 0.363708 0.363708 0.371246 0.371246 0.371246 0.378448 0.378448 0.378448 0.385742 0.385742 0.385742 0.392883 0.392883 0.392883 0.399811 0.399811 0.399811 0.406799 0.406799 0.406799 0.413727 0.413727 0.413727 0.420410 0.420410 0.420410 0.427246 0.427246 0.427246 0.433990 0.433990 0.433990 0.440582 0.440582 0.440582 0.447357 0.447357 0.447357 0.454102 0.454102 0.454102 0.460693 0.460693 0.460693 0.467468 0.467468 0.467468 0.474121 0.474121 0.474121 0.481018 0.481018 0.481018 0.487915 0.487915 0.487915 0.494781 0.494781 0.494781 0.501862 0.501862 0.501862 0.289368 0.289368 0.289368 0.298370 0.298370 0.298370 0.306976 0.306976 0.306976 0.315613 0.315613 0.315613 0.324066 0.324066 0.324066 0.332153 0.332153 0.332153 0.340271 0.340271 0.340271 0.348236 0.348236 0.348236 0.355835 0.355835 0.355835 0.363495 0.363495 0.363495 0.371033 0.371033 0.371033 0.378265 0.378265 0.378265 0.385559 0.385559 0.385559 0.392548 0.392548 0.392548 0.399628 0.399628 0.399628 0.406616 0.406616 0.406616 0.413361 0.413361 0.413361 0.420227 0.420227 0.420227 0.427063 0.427063 0.427063 0.433685 0.433685 0.433685 0.440430 0.440430 0.440430 0.447205 0.447205 0.447205 0.453766 0.453766 0.453766 0.460541 0.460541 0.460541 0.467133 0.467133 0.467133 0.473938 0.473938 0.473938 0.480835 0.480835 0.480835 0.487579 0.487579 0.487579 0.494568 0.494568 0.494568 0.501678 0.501678 0.501678 0.508636 0.508636 0.508636 0.515900 0.515900 0.515900 0.306763 0.306763 0.306763 0.315399 0.315399 0.315399 0.323639 0.323639 0.323639 0.331940 0.331940 0.331940 0.340088 0.340088 0.340088 0.347870 0.347870 0.347870 0.355682 0.355682 0.355682 0.363312 0.363312 0.363312 0.370667 0.370667 0.370667 0.378082 0.378082 0.378082 0.385162 0.385162 0.385162 0.392365 0.392365 0.392365 0.399445 0.399445 0.399445 0.406281 0.406281 0.406281 0.413208 0.413208 0.413208 0.420074 0.420074 0.420074 0.426727 0.426727 0.426727 0.433502 0.433502 0.433502 0.440277 0.440277 0.440277 0.446838 0.446838 0.446838 0.453613 0.453613 0.453613 0.460358 0.460358 0.460358 0.466949 0.466949 0.466949 0.473785 0.473785 0.473785 0.480499 0.480499 0.480499 0.487427 0.487427 0.487427 0.494415 0.494415 0.494415 0.501312 0.501312 0.501312 0.508453 0.508453 0.508453 0.515747 0.515747 0.515747 0.522888 0.522888 0.522888 0.530396 0.530396 0.530396 0.323425 0.323425 0.323425 0.331757 0.331757 0.331757 0.339691 0.339691 0.339691 0.347656 0.347656 0.347656 0.355469 0.355469 0.355469 0.362946 0.362946 0.362946 0.370514 0.370514 0.370514 0.377899 0.377899 0.377899 0.385010 0.385010 0.385010 0.392181 0.392181 0.392181 0.399078 0.399078 0.399078 0.406097 0.406097 0.406097 0.413055 0.413055 0.413055 0.419708 0.419708 0.419708 0.426544 0.426544 0.426544 0.433319 0.433319 0.433319 0.439941 0.439941 0.439941 0.446686 0.446686 0.446686 0.453430 0.453430 0.453430 0.460022 0.460022 0.460022 0.466797 0.466797 0.466797 0.473450 0.473450 0.473450 0.480316 0.480316 0.480316 0.487244 0.487244 0.487244 0.494049 0.494049 0.494049 0.501129 0.501129 0.501129 0.508301 0.508301 0.508301 0.515381 0.515381 0.515381 0.522736 0.522736 0.522736 0.530212 0.530212 0.530212 0.537598 0.537598 0.537598 0.545319 0.545319 0.545319 0.339478 0.339478 0.339478 0.347443 0.347443 0.347443 0.355072 0.355072 0.355072 0.362762 0.362762 0.362762 0.370300 0.370300 0.370300 0.377502 0.377502 0.377502 0.384827 0.384827 0.384827 0.392029 0.392029 0.392029 0.398926 0.398926 0.398926 0.405914 0.405914 0.405914 0.412689 0.412689 0.412689 0.419556 0.419556 0.419556 0.426392 0.426392 0.426392 0.432983 0.432983 0.432983 0.439758 0.439758 0.439758 0.446503 0.446503 0.446503 0.453064 0.453064 0.453064 0.459869 0.459869 0.459869 0.466614 0.466614 0.466614 0.473297 0.473297 0.473297 0.480164 0.480164 0.480164 0.486908 0.486908 0.486908 0.493896 0.493896 0.493896 0.500946 0.500946 0.500946 0.507935 0.507935 0.507935 0.515198 0.515198 0.515198 0.522552 0.522552 0.522552 0.529816 0.529816 0.529816 0.537415 0.537415 0.537415 0.545135 0.545135 0.545135 0.552734 0.552734 0.552734 0.560760 0.560760 0.560760 0.354889 0.354889 0.354889 0.362579 0.362579 0.362579 0.369904 0.369904 0.369904 0.377350 0.377350 0.377350 0.384644 0.384644 0.384644 0.391663 0.391663 0.391663 0.398773 0.398773 0.398773 0.405762 0.405762 0.405762 0.412537 0.412537 0.412537 0.419403 0.419403 0.419403 0.426056 0.426056 0.426056 0.432831 0.432831 0.432831 0.439606 0.439606 0.439606 0.446167 0.446167 0.446167 0.452911 0.452911 0.452911 0.459656 0.459656 0.459656 0.466278 0.466278 0.466278 0.473114 0.473114 0.473114 0.479950 0.479950 0.479950 0.486694 0.486694 0.486694 0.493683 0.493683 0.493683 0.500610 0.500610 0.500610 0.507751 0.507751 0.507751 0.514984 0.514984 0.514984 0.522186 0.522186 0.522186 0.529633 0.529633 0.529633 0.537201 0.537201 0.537201 0.544739 0.544739 0.544739 0.552582 0.552582 0.552582 0.560516 0.560516 0.560516 0.568451 0.568451 0.568451 0.576691 0.576691 0.576691 0.369751 0.369751 0.369751 0.377136 0.377136 0.377136 0.384277 0.384277 0.384277 0.391449 0.391449 0.391449 0.398590 0.398590 0.398590 0.405426 0.405426 0.405426 0.412354 0.412354 0.412354 0.419037 0.419037 0.419037 0.425873 0.425873 0.425873 0.432648 0.432648 0.432648 0.439270 0.439270 0.439270 0.446014 0.446014 0.446014 0.452728 0.452728 0.452728 0.459320 0.459320 0.459320 0.466125 0.466125 0.466125 0.472931 0.472931 0.472931 0.479614 0.479614 0.479614 0.486542 0.486542 0.486542 0.493530 0.493530 0.493530 0.500427 0.500427 0.500427 0.507568 0.507568 0.507568 0.514618 0.514618 0.514618 0.521973 0.521973 0.521973 0.529449 0.529449 0.529449 0.536835 0.536835 0.536835 0.544525 0.544525 0.544525 0.552368 0.552368 0.552368 0.560120 0.560120 0.560120 0.568237 0.568237 0.568237 0.576263 0.576263 0.576263 0.584656 0.584656 0.584656 0.593079 0.593079 0.593079 0.384094 0.384094 0.384094 0.391296 0.391296 0.391296 0.398224 0.398224 0.398224 0.405243 0.405243 0.405243 0.412170 0.412170 0.412170 0.418884 0.418884 0.418884 0.425690 0.425690 0.425690 0.432312 0.432312 0.432312 0.439087 0.439087 0.439087 0.445831 0.445831 0.445831 0.452393 0.452393 0.452393 0.459167 0.459167 0.459167 0.465942 0.465942 0.465942 0.472595 0.472595 0.472595 0.479462 0.479462 0.479462 0.486359 0.486359 0.486359 0.493195 0.493195 0.493195 0.500244 0.500244 0.500244 0.507202 0.507202 0.507202 0.514465 0.514465 0.514465 0.521820 0.521820 0.521820 0.529083 0.529083 0.529083 0.536621 0.536621 0.536621 0.544342 0.544342 0.544342 0.551971 0.551971 0.551971 0.559937 0.559937 0.559937 0.568024 0.568024 0.568024 0.576080 0.576080 0.576080 0.584412 0.584412 0.584412 0.592682 0.592682 0.592682 0.601257 0.601257 0.601257 0.609894 0.609894 0.609894 0.398010 0.398010 0.398010 0.405060 0.405060 0.405060 0.411804 0.411804 0.411804 0.418732 0.418732 0.418732 0.425385 0.425385 0.425385 0.432159 0.432159 0.432159 0.438904 0.438904 0.438904 0.445496 0.445496 0.445496 0.452271 0.452271 0.452271 0.459015 0.459015 0.459015 0.465607 0.465607 0.465607 0.472412 0.472412 0.472412 0.479279 0.479279 0.479279 0.486023 0.486023 0.486023 0.493011 0.493011 0.493011 0.499878 0.499878 0.499878 0.507050 0.507050 0.507050 0.514282 0.514282 0.514282 0.521423 0.521423 0.521423 0.528870 0.528870 0.528870 0.536438 0.536438 0.536438 0.543945 0.543945 0.543945 0.551788 0.551788 0.551788 0.559753 0.559753 0.559753 0.567627 0.567627 0.567627 0.575867 0.575867 0.575867 0.584198 0.584198 0.584198 0.592438 0.592438 0.592438 0.601013 0.601013 0.601013 0.609467 0.609467 0.609467 0.618134 0.618134 0.618134 0.626862 0.626862 0.626862 0.411652 0.411652 0.411652 0.418549 0.418549 0.418549 0.425171 0.425171 0.425171 0.431976 0.431976 0.431976 0.438568 0.438568 0.438568 0.445343 0.445343 0.445343 0.452087 0.452087 0.452087 0.458649 0.458649 0.458649 0.465454 0.465454 0.465454 0.472260 0.472260 0.472260 0.478943 0.478943 0.478943 0.485870 0.485870 0.485870 0.492828 0.492828 0.492828 0.499695 0.499695 0.499695 0.506836 0.506836 0.506836 0.513885 0.513885 0.513885 0.521240 0.521240 0.521240 0.528687 0.528687 0.528687 0.536072 0.536072 0.536072 0.543762 0.543762 0.543762 0.551575 0.551575 0.551575 0.559326 0.559326 0.559326 0.567383 0.567383 0.567383 0.575653 0.575653 0.575653 0.583771 0.583771 0.583771 0.592255 0.592255 0.592255 0.600616 0.600616 0.600616 0.609253 0.609253 0.609253 0.617950 0.617950 0.617950 0.626465 0.626465 0.626465 0.635193 0.635193 0.635193 0.643982 0.643982 0.643982 0.425018 0.425018 0.425018 0.431641 0.431641 0.431641 0.438385 0.438385 0.438385 0.445160 0.445160 0.445160 0.451752 0.451752 0.451752 0.458496 0.458496 0.458496 0.465271 0.465271 0.465271 0.471893 0.471893 0.471893 0.478760 0.478760 0.478760 0.485687 0.485687 0.485687 0.492493 0.492493 0.492493 0.499512 0.499512 0.499512 0.506500 0.506500 0.506500 0.513702 0.513702 0.513702 0.521057 0.521057 0.521057 0.528320 0.528320 0.528320 0.535858 0.535858 0.535858 0.543579 0.543579 0.543579 0.551178 0.551178 0.551178 0.559113 0.559113 0.559113 0.567200 0.567200 0.567200 0.575195 0.575195 0.575195 0.583557 0.583557 0.583557 0.592041 0.592041 0.592041 0.600372 0.600372 0.600372 0.609009 0.609009 0.609009 0.617493 0.617493 0.617493 0.626221 0.626221 0.626221 0.635010 0.635010 0.635010 0.643524 0.643524 0.643524 0.652252 0.652252 0.652252 0.660980 0.660980 0.660980 0.438263 0.438263 0.438263 0.444824 0.444824 0.444824 0.451569 0.451569 0.451569 0.458313 0.458313 0.458313 0.464935 0.464935 0.464935 0.471741 0.471741 0.471741 0.478607 0.478607 0.478607 0.485321 0.485321 0.485321 0.492310 0.492310 0.492310 0.499329 0.499329 0.499329 0.506317 0.506317 0.506317 0.513519 0.513519 0.513519 0.520660 0.520660 0.520660 0.528137 0.528137 0.528137 0.535706 0.535706 0.535706 0.543182 0.543182 0.543182 0.550995 0.550995 0.550995 0.558929 0.558929 0.558929 0.566803 0.566803 0.566803 0.575012 0.575012 0.575012 0.583374 0.583374 0.583374 0.591614 0.591614 0.591614 0.600159 0.600159 0.600159 0.608582 0.608582 0.608582 0.617279 0.617279 0.617279 0.626038 0.626038 0.626038 0.634521 0.634521 0.634521 0.643311 0.643311 0.643311 0.652039 0.652039 0.652039 0.660522 0.660522 0.660522 0.669159 0.669159 0.669159 0.677734 0.677734 0.677734 0.451416 0.451416 0.451416 0.457977 0.457977 0.457977 0.464752 0.464752 0.464752 0.471588 0.471588 0.471588 0.478241 0.478241 0.478241 0.485138 0.485138 0.485138 0.492126 0.492126 0.492126 0.498993 0.498993 0.498993 0.506134 0.506134 0.506134 0.513184 0.513184 0.513184 0.520508 0.520508 0.520508 0.527954 0.527954 0.527954 0.535339 0.535339 0.535339 0.542999 0.542999 0.542999 0.550781 0.550781 0.550781 0.558563 0.558563 0.558563 0.566589 0.566589 0.566589 0.574799 0.574799 0.574799 0.582947 0.582947 0.582947 0.591400 0.591400 0.591400 0.599945 0.599945 0.599945 0.608368 0.608368 0.608368 0.617065 0.617065 0.617065 0.625580 0.625580 0.625580 0.634308 0.634308 0.634308 0.643066 0.643066 0.643066 0.651611 0.651611 0.651611 0.660309 0.660309 0.660309 0.668945 0.668945 0.668945 0.677338 0.677338 0.677338 0.685822 0.685822 0.685822 0.694244 0.694244 0.694244 0.464600 0.464600 0.464600 0.471222 0.471222 0.471222 0.478088 0.478088 0.478088 0.484985 0.484985 0.484985 0.491760 0.491760 0.491760 0.498840 0.498840 0.498840 0.505951 0.505951 0.505951 0.513000 0.513000 0.513000 0.520325 0.520325 0.520325 0.527557 0.527557 0.527557 0.535126 0.535126 0.535126 0.542786 0.542786 0.542786 0.550385 0.550385 0.550385 0.558319 0.558319 0.558319 0.566376 0.566376 0.566376 0.574402 0.574402 0.574402 0.582703 0.582703 0.582703 0.591187 0.591187 0.591187 0.599518 0.599518 0.599518 0.608154 0.608154 0.608154 0.616638 0.616638 0.616638 0.625336 0.625336 0.625336 0.634125 0.634125 0.634125 0.642670 0.642670 0.642670 0.651367 0.651367 0.651367 0.660095 0.660095 0.660095 0.668518 0.668518 0.668518 0.677094 0.677094 0.677094 0.685638 0.685638 0.685638 0.693817 0.693817 0.693817 0.702118 0.702118 0.702118 0.710114 0.710114 0.710114 0.477936 0.477936 0.477936 0.484650 0.484650 0.484650 0.491608 0.491608 0.491608 0.498627 0.498627 0.498627 0.505615 0.505615 0.505615 0.512817 0.512817 0.512817 0.519958 0.519958 0.519958 0.527374 0.527374 0.527374 0.534943 0.534943 0.534943 0.542389 0.542389 0.542389 0.550201 0.550201 0.550201 0.558136 0.558136 0.558136 0.565979 0.565979 0.565979 0.574188 0.574188 0.574188 0.582520 0.582520 0.582520 0.590759 0.590759 0.590759 0.599304 0.599304 0.599304 0.607941 0.607941 0.607941 0.616394 0.616394 0.616394 0.625153 0.625153 0.625153 0.633667 0.633667 0.633667 0.642426 0.642426 0.642426 0.651154 0.651154 0.651154 0.659637 0.659637 0.659637 0.668304 0.668304 0.668304 0.676880 0.676880 0.676880 0.685211 0.685211 0.685211 0.693634 0.693634 0.693634 0.701904 0.701904 0.701904 0.709900 0.709900 0.709900 0.717957 0.717957 0.717957 0.725677 0.725677 0.725677 0.491425 0.491425 0.491425 0.498291 0.498291 0.498291 0.505432 0.505432 0.505432 0.512634 0.512634 0.512634 0.519775 0.519775 0.519775 0.527191 0.527191 0.527191 0.534546 0.534546 0.534546 0.542206 0.542206 0.542206 0.550018 0.550018 0.550018 0.557709 0.557709 0.557709 0.565765 0.565765 0.565765 0.573975 0.573975 0.573975 0.582092 0.582092 0.582092 0.590546 0.590546 0.590546 0.599091 0.599091 0.599091 0.607513 0.607513 0.607513 0.616211 0.616211 0.616211 0.624695 0.624695 0.624695 0.633453 0.633453 0.633453 0.642181 0.642181 0.642181 0.650726 0.650726 0.650726 0.659424 0.659424 0.659424 0.668091 0.668091 0.668091 0.676483 0.676483 0.676483 0.684998 0.684998 0.684998 0.693420 0.693420 0.693420 0.701508 0.701508 0.701508 0.709686 0.709686 0.709686 0.717560 0.717560 0.717560 0.725464 0.725464 0.725464 0.733215 0.733215 0.733215 0.740570 0.740570 0.740570 0.505219 0.505219 0.505219 0.512268 0.512268 0.512268 0.519592 0.519592 0.519592 0.526825 0.526825 0.526825 0.534363 0.534363 0.534363 0.542023 0.542023 0.542023 0.549622 0.549622 0.549622 0.557526 0.557526 0.557526 0.565582 0.565582 0.565582 0.573578 0.573578 0.573578 0.581909 0.581909 0.581909 0.590332 0.590332 0.590332 0.598663 0.598663 0.598663 0.607269 0.607269 0.607269 0.615784 0.615784 0.615784 0.624481 0.624481 0.624481 0.633240 0.633240 0.633240 0.641785 0.641785 0.641785 0.650513 0.650513 0.650513 0.659210 0.659210 0.659210 0.667664 0.667664 0.667664 0.676300 0.676300 0.676300 0.684753 0.684753 0.684753 0.693024 0.693024 0.693024 0.701324 0.701324 0.701324 0.709503 0.709503 0.709503 0.717377 0.717377 0.717377 0.725250 0.725250 0.725250 0.732819 0.732819 0.732819 0.740387 0.740387 0.740387 0.747742 0.747742 0.747742 0.754791 0.754791 0.754791 0.519379 0.519379 0.519379 0.526642 0.526642 0.526642 0.534180 0.534180 0.534180 0.541656 0.541656 0.541656 0.549408 0.549408 0.549408 0.557343 0.557343 0.557343 0.565186 0.565186 0.565186 0.573364 0.573364 0.573364 0.581696 0.581696 0.581696 0.589905 0.589905 0.589905 0.598450 0.598450 0.598450 0.607056 0.607056 0.607056 0.615540 0.615540 0.615540 0.624237 0.624237 0.624237 0.632812 0.632812 0.632812 0.641541 0.641541 0.641541 0.650299 0.650299 0.650299 0.658783 0.658783 0.658783 0.667450 0.667450 0.667450 0.676025 0.676025 0.676025 0.684357 0.684357 0.684357 0.692810 0.692810 0.692810 0.701111 0.701111 0.701111 0.709076 0.709076 0.709076 0.717163 0.717163 0.717163 0.724854 0.724854 0.724854 0.732605 0.732605 0.732605 0.740173 0.740173 0.740173 0.747406 0.747406 0.747406 0.754608 0.754608 0.754608 0.761566 0.761566 0.761566 0.768188 0.768188 0.768188 0.533966 0.533966 0.533966 0.541443 0.541443 0.541443 0.549225 0.549225 0.549225 0.556946 0.556946 0.556946 0.564972 0.564972 0.564972 0.573151 0.573151 0.573151 0.581268 0.581268 0.581268 0.589691 0.589691 0.589691 0.598236 0.598236 0.598236 0.606628 0.606628 0.606628 0.615295 0.615295 0.615295 0.624023 0.624023 0.624023 0.632568 0.632568 0.632568 0.641296 0.641296 0.641296 0.649841 0.649841 0.649841 0.658569 0.658569 0.658569 0.667206 0.667206 0.667206 0.675629 0.675629 0.675629 0.684143 0.684143 0.684143 0.692566 0.692566 0.692566 0.700684 0.700684 0.700684 0.708862 0.708862 0.708862 0.716949 0.716949 0.716949 0.724670 0.724670 0.724670 0.732422 0.732422 0.732422 0.739807 0.739807 0.739807 0.747223 0.747223 0.747223 0.754425 0.754425 0.754425 0.761230 0.761230 0.761230 0.768036 0.768036 0.768036 0.774567 0.774567 0.774567 0.780762 0.780762 0.780762 0.548828 0.548828 0.548828 0.556732 0.556732 0.556732 0.564758 0.564758 0.564758 0.572754 0.572754 0.572754 0.581024 0.581024 0.581024 0.589478 0.589478 0.589478 0.597809 0.597809 0.597809 0.606445 0.606445 0.606445 0.615112 0.615112 0.615112 0.623596 0.623596 0.623596 0.632355 0.632355 0.632355 0.640869 0.640869 0.640869 0.649628 0.649628 0.649628 0.658356 0.658356 0.658356 0.666779 0.666779 0.666779 0.675385 0.675385 0.675385 0.683960 0.683960 0.683960 0.692139 0.692139 0.692139 0.700470 0.700470 0.700470 0.708679 0.708679 0.708679 0.716553 0.716553 0.716553 0.724457 0.724457 0.724457 0.732056 0.732056 0.732056 0.739624 0.739624 0.739624 0.747040 0.747040 0.747040 0.754059 0.754059 0.754059 0.761047 0.761047 0.761047 0.767853 0.767853 0.767853 0.774231 0.774231 0.774231 0.780579 0.780579 0.780579 0.786652 0.786652 0.786652 0.792358 0.792358 0.792358 0.080658 0.080658 0.080658 0.085602 0.085602 0.085602 0.090790 0.090790 0.090790 0.096100 0.096100 0.096100 0.101837 0.101837 0.101837 0.107727 0.107727 0.107727 0.114044 0.114044 0.114044 0.120758 0.120758 0.120758 0.127686 0.127686 0.127686 0.135162 0.135162 0.135162 0.143066 0.143066 0.143066 0.151215 0.151215 0.151215 0.160095 0.160095 0.160095 0.169464 0.169464 0.169464 0.179016 0.179016 0.179016 0.189056 0.189056 0.189056 0.199158 0.199158 0.199158 0.209564 0.209564 0.209564 0.219940 0.219940 0.219940 0.230011 0.230011 0.230011 0.240112 0.240112 0.240112 0.250031 0.250031 0.250031 0.259583 0.259583 0.259583 0.269135 0.269135 0.269135 0.278564 0.278564 0.278564 0.287567 0.287567 0.287567 0.296600 0.296600 0.296600 0.305206 0.305206 0.305206 0.313904 0.313904 0.313904 0.322388 0.322388 0.322388 0.330505 0.330505 0.330505 0.338684 0.338684 0.338684 0.090515 0.090515 0.090515 0.095978 0.095978 0.095978 0.101501 0.101501 0.101501 0.107544 0.107544 0.107544 0.113892 0.113892 0.113892 0.120422 0.120422 0.120422 0.127502 0.127502 0.127502 0.134949 0.134949 0.134949 0.142639 0.142639 0.142639 0.151001 0.151001 0.151001 0.159882 0.159882 0.159882 0.169006 0.169006 0.169006 0.178772 0.178772 0.178772 0.188568 0.188568 0.188568 0.198914 0.198914 0.198914 0.209290 0.209290 0.209290 0.219452 0.219452 0.219452 0.229736 0.229736 0.229736 0.239868 0.239868 0.239868 0.249542 0.249542 0.249542 0.259338 0.259338 0.259338 0.268921 0.268921 0.268921 0.278107 0.278107 0.278107 0.287323 0.287323 0.287323 0.296387 0.296387 0.296387 0.304993 0.304993 0.304993 0.313690 0.313690 0.313690 0.321960 0.321960 0.321960 0.330322 0.330322 0.330322 0.338470 0.338470 0.338470 0.346252 0.346252 0.346252 0.354095 0.354095 0.354095 0.101379 0.101379 0.101379 0.107391 0.107391 0.107391 0.113586 0.113586 0.113586 0.120239 0.120239 0.120239 0.127289 0.127289 0.127289 0.134583 0.134583 0.134583 0.142426 0.142426 0.142426 0.150787 0.150787 0.150787 0.159454 0.159454 0.159454 0.168762 0.168762 0.168762 0.178528 0.178528 0.178528 0.188324 0.188324 0.188324 0.198639 0.198639 0.198639 0.208771 0.208771 0.208771 0.219177 0.219177 0.219177 0.229462 0.229462 0.229462 0.239349 0.239349 0.239349 0.249329 0.249329 0.249329 0.259094 0.259094 0.259094 0.268463 0.268463 0.268463 0.277863 0.277863 0.277863 0.287109 0.287109 0.287109 0.295898 0.295898 0.295898 0.304810 0.304810 0.304810 0.313263 0.313263 0.313263 0.321747 0.321747 0.321747 0.330109 0.330109 0.330109 0.338043 0.338043 0.338043 0.346069 0.346069 0.346069 0.353912 0.353912 0.353912 0.361420 0.361420 0.361420 0.368988 0.368988 0.368988 0.113403 0.113403 0.113403 0.120056 0.120056 0.120056 0.126923 0.126923 0.126923 0.134369 0.134369 0.134369 0.142242 0.142242 0.142242 0.150360 0.150360 0.150360 0.159180 0.159180 0.159180 0.168518 0.168518 0.168518 0.178009 0.178009 0.178009 0.188080 0.188080 0.188080 0.198120 0.198120 0.198120 0.208527 0.208527 0.208527 0.218933 0.218933 0.218933 0.228973 0.228973 0.228973 0.239136 0.239136 0.239136 0.249084 0.249084 0.249084 0.258606 0.258606 0.258606 0.268219 0.268219 0.268219 0.277618 0.277618 0.277618 0.286652 0.286652 0.286652 0.295715 0.295715 0.295715 0.304565 0.304565 0.304565 0.313049 0.313049 0.313049 0.321564 0.321564 0.321564 0.329712 0.329712 0.329712 0.337860 0.337860 0.337860 0.345886 0.345886 0.345886 0.353516 0.353516 0.353516 0.361267 0.361267 0.361267 0.368805 0.368805 0.368805 0.376068 0.376068 0.376068 0.383362 0.383362 0.383362 0.126740 0.126740 0.126740 0.134186 0.134186 0.134186 0.141846 0.141846 0.141846 0.150146 0.150146 0.150146 0.158966 0.158966 0.158966 0.168060 0.168060 0.168060 0.177734 0.177734 0.177734 0.187805 0.187805 0.187805 0.197845 0.197845 0.197845 0.208252 0.208252 0.208252 0.218414 0.218414 0.218414 0.228699 0.228699 0.228699 0.238892 0.238892 0.238892 0.248596 0.248596 0.248596 0.258362 0.258362 0.258362 0.267975 0.267975 0.267975 0.277161 0.277161 0.277161 0.286407 0.286407 0.286407 0.295471 0.295471 0.295471 0.304138 0.304138 0.304138 0.312836 0.312836 0.312836 0.321167 0.321167 0.321167 0.329468 0.329468 0.329468 0.337677 0.337677 0.337677 0.345459 0.345459 0.345459 0.353363 0.353363 0.353363 0.361053 0.361053 0.361053 0.368408 0.368408 0.368408 0.375854 0.375854 0.375854 0.383179 0.383179 0.383179 0.390228 0.390228 0.390228 0.397339 0.397339 0.397339 0.141632 0.141632 0.141632 0.149963 0.149963 0.149963 0.158508 0.158508 0.158508 0.167816 0.167816 0.167816 0.177490 0.177490 0.177490 0.187317 0.187317 0.187317 0.197601 0.197601 0.197601 0.207733 0.207733 0.207733 0.218140 0.218140 0.218140 0.228455 0.228455 0.228455 0.238373 0.238373 0.238373 0.248352 0.248352 0.248352 0.258118 0.258118 0.258118 0.267517 0.267517 0.267517 0.276917 0.276917 0.276917 0.286194 0.286194 0.286194 0.295013 0.295013 0.295013 0.303925 0.303925 0.303925 0.312622 0.312622 0.312622 0.320923 0.320923 0.320923 0.329285 0.329285 0.329285 0.337250 0.337250 0.337250 0.345306 0.345306 0.345306 0.353149 0.353149 0.353149 0.360657 0.360657 0.360657 0.368225 0.368225 0.368225 0.375702 0.375702 0.375702 0.382843 0.382843 0.382843 0.390045 0.390045 0.390045 0.397186 0.397186 0.397186 0.403992 0.403992 0.403992 0.410980 0.410980 0.410980 0.158264 0.158264 0.158264 0.167572 0.167572 0.167572 0.177032 0.177032 0.177032 0.187073 0.187073 0.187073 0.197357 0.197357 0.197357 0.207458 0.207458 0.207458 0.217896 0.217896 0.217896 0.227966 0.227966 0.227966 0.238098 0.238098 0.238098 0.248108 0.248108 0.248108 0.257629 0.257629 0.257629 0.267273 0.267273 0.267273 0.276703 0.276703 0.276703 0.285736 0.285736 0.285736 0.294830 0.294830 0.294830 0.303680 0.303680 0.303680 0.312195 0.312195 0.312195 0.320709 0.320709 0.320709 0.328827 0.328827 0.328827 0.337036 0.337036 0.337036 0.345062 0.345062 0.345062 0.352722 0.352722 0.352722 0.360474 0.360474 0.360474 0.368042 0.368042 0.368042 0.375336 0.375336 0.375336 0.382660 0.382660 0.382660 0.389862 0.389862 0.389862 0.396820 0.396820 0.396820 0.403839 0.403839 0.403839 0.410614 0.410614 0.410614 0.417480 0.417480 0.417480 0.424347 0.424347 0.424347 0.176788 0.176788 0.176788 0.186829 0.186829 0.186829 0.196808 0.196808 0.196808 0.207214 0.207214 0.207214 0.217346 0.217346 0.217346 0.227692 0.227692 0.227692 0.237854 0.237854 0.237854 0.247589 0.247589 0.247589 0.257385 0.257385 0.257385 0.267059 0.267059 0.267059 0.276245 0.276245 0.276245 0.285492 0.285492 0.285492 0.294586 0.294586 0.294586 0.303253 0.303253 0.303253 0.311981 0.311981 0.311981 0.320251 0.320251 0.320251 0.328674 0.328674 0.328674 0.336853 0.336853 0.336853 0.344666 0.344666 0.344666 0.352539 0.352539 0.352539 0.360260 0.360260 0.360260 0.367676 0.367676 0.367676 0.375122 0.375122 0.375122 0.382446 0.382446 0.382446 0.389526 0.389526 0.389526 0.396637 0.396637 0.396637 0.403656 0.403656 0.403656 0.410461 0.410461 0.410461 0.417328 0.417328 0.417328 0.424011 0.424011 0.424011 0.430817 0.430817 0.430817 0.437592 0.437592 0.437592 0.196564 0.196564 0.196564 0.206940 0.206940 0.206940 0.217102 0.217102 0.217102 0.227448 0.227448 0.227448 0.237335 0.237335 0.237335 0.247314 0.247314 0.247314 0.257172 0.257172 0.257172 0.266541 0.266541 0.266541 0.276001 0.276001 0.276001 0.285248 0.285248 0.285248 0.294128 0.294128 0.294128 0.303009 0.303009 0.303009 0.311737 0.311737 0.311737 0.320099 0.320099 0.320099 0.328461 0.328461 0.328461 0.336426 0.336426 0.336426 0.344482 0.344482 0.344482 0.352325 0.352325 0.352325 0.359894 0.359894 0.359894 0.367462 0.367462 0.367462 0.374969 0.374969 0.374969 0.382080 0.382080 0.382080 0.389313 0.389313 0.389313 0.396454 0.396454 0.396454 0.403320 0.403320 0.403320 0.410278 0.410278 0.410278 0.416962 0.416962 0.416962 0.423828 0.423828 0.423828 0.430603 0.430603 0.430603 0.437225 0.437225 0.437225 0.443970 0.443970 0.443970 0.450714 0.450714 0.450714 0.216827 0.216827 0.216827 0.226929 0.226929 0.226929 0.237091 0.237091 0.237091 0.247070 0.247070 0.247070 0.256653 0.256653 0.256653 0.266296 0.266296 0.266296 0.275757 0.275757 0.275757 0.284821 0.284821 0.284821 0.293915 0.293915 0.293915 0.302795 0.302795 0.302795 0.311310 0.311310 0.311310 0.319855 0.319855 0.319855 0.328033 0.328033 0.328033 0.336243 0.336243 0.336243 0.344269 0.344269 0.344269 0.351959 0.351959 0.351959 0.359711 0.359711 0.359711 0.367310 0.367310 0.367310 0.374573 0.374573 0.374573 0.381927 0.381927 0.381927 0.389160 0.389160 0.389160 0.396088 0.396088 0.396088 0.403168 0.403168 0.403168 0.410095 0.410095 0.410095 0.416840 0.416840 0.416840 0.423676 0.423676 0.423676 0.430298 0.430298 0.430298 0.437073 0.437073 0.437073 0.443817 0.443817 0.443817 0.450378 0.450378 0.450378 0.457123 0.457123 0.457123 0.463928 0.463928 0.463928 0.236847 0.236847 0.236847 0.246582 0.246582 0.246582 0.256409 0.256409 0.256409 0.266052 0.266052 0.266052 0.275299 0.275299 0.275299 0.284576 0.284576 0.284576 0.293671 0.293671 0.293671 0.302368 0.302368 0.302368 0.311066 0.311066 0.311066 0.319641 0.319641 0.319641 0.327789 0.327789 0.327789 0.336029 0.336029 0.336029 0.343872 0.343872 0.343872 0.351776 0.351776 0.351776 0.359497 0.359497 0.359497 0.366943 0.366943 0.366943 0.374390 0.374390 0.374390 0.381744 0.381744 0.381744 0.388794 0.388794 0.388794 0.395935 0.395935 0.395935 0.402954 0.402954 0.402954 0.409760 0.409760 0.409760 0.416656 0.416656 0.416656 0.423340 0.423340 0.423340 0.430115 0.430115 0.430115 0.436890 0.436890 0.436890 0.443451 0.443451 0.443451 0.450226 0.450226 0.450226 0.456970 0.456970 0.456970 0.463562 0.463562 0.463562 0.470367 0.470367 0.470367 0.477203 0.477203 0.477203 0.256165 0.256165 0.256165 0.265594 0.265594 0.265594 0.275085 0.275085 0.275085 0.284332 0.284332 0.284332 0.293213 0.293213 0.293213 0.302155 0.302155 0.302155 0.310913 0.310913 0.310913 0.319214 0.319214 0.319214 0.327637 0.327637 0.327637 0.335632 0.335632 0.335632 0.343689 0.343689 0.343689 0.351562 0.351562 0.351562 0.359131 0.359131 0.359131 0.366730 0.366730 0.366730 0.374207 0.374207 0.374207 0.381378 0.381378 0.381378 0.388611 0.388611 0.388611 0.395752 0.395752 0.395752 0.402618 0.402618 0.402618 0.409576 0.409576 0.409576 0.416473 0.416473 0.416473 0.423126 0.423126 0.423126 0.429932 0.429932 0.429932 0.436554 0.436554 0.436554 0.443298 0.443298 0.443298 0.450073 0.450073 0.450073 0.456635 0.456635 0.456635 0.463409 0.463409 0.463409 0.470184 0.470184 0.470184 0.476868 0.476868 0.476868 0.483734 0.483734 0.483734 0.490692 0.490692 0.490692 0.274841 0.274841 0.274841 0.283905 0.283905 0.283905 0.292999 0.292999 0.292999 0.301941 0.301941 0.301941 0.310455 0.310455 0.310455 0.319000 0.319000 0.319000 0.327393 0.327393 0.327393 0.335419 0.335419 0.335419 0.343506 0.343506 0.343506 0.351166 0.351166 0.351166 0.358948 0.358948 0.358948 0.366547 0.366547 0.366547 0.373840 0.373840 0.373840 0.381195 0.381195 0.381195 0.388428 0.388428 0.388428 0.395416 0.395416 0.395416 0.402435 0.402435 0.402435 0.409424 0.409424 0.409424 0.416138 0.416138 0.416138 0.422974 0.422974 0.422974 0.429596 0.429596 0.429596 0.436371 0.436371 0.436371 0.443146 0.443146 0.443146 0.449707 0.449707 0.449707 0.456451 0.456451 0.456451 0.463226 0.463226 0.463226 0.469879 0.469879 0.469879 0.476685 0.476685 0.476685 0.483612 0.483612 0.483612 0.490387 0.490387 0.490387 0.497406 0.497406 0.497406 0.504333 0.504333 0.504333 0.292786 0.292786 0.292786 0.301483 0.301483 0.301483 0.310242 0.310242 0.310242 0.318817 0.318817 0.318817 0.326996 0.326996 0.326996 0.335205 0.335205 0.335205 0.343262 0.343262 0.343262 0.350983 0.350983 0.350983 0.358734 0.358734 0.358734 0.366180 0.366180 0.366180 0.373657 0.373657 0.373657 0.381012 0.381012 0.381012 0.388062 0.388062 0.388062 0.395203 0.395203 0.395203 0.402252 0.402252 0.402252 0.409058 0.409058 0.409058 0.415955 0.415955 0.415955 0.422791 0.422791 0.422791 0.429443 0.429443 0.429443 0.436218 0.436218 0.436218 0.442780 0.442780 0.442780 0.449554 0.449554 0.449554 0.456299 0.456299 0.456299 0.462921 0.462921 0.462921 0.469696 0.469696 0.469696 0.476532 0.476532 0.476532 0.483246 0.483246 0.483246 0.490173 0.490173 0.490173 0.497223 0.497223 0.497223 0.504181 0.504181 0.504181 0.511353 0.511353 0.511353 0.518463 0.518463 0.518463 0.310028 0.310028 0.310028 0.318390 0.318390 0.318390 0.326782 0.326782 0.326782 0.335022 0.335022 0.335022 0.342865 0.342865 0.342865 0.350800 0.350800 0.350800 0.358368 0.358368 0.358368 0.365967 0.365967 0.365967 0.373474 0.373474 0.373474 0.380615 0.380615 0.380615 0.387878 0.387878 0.387878 0.395020 0.395020 0.395020 0.401917 0.401917 0.401917 0.408905 0.408905 0.408905 0.415802 0.415802 0.415802 0.422455 0.422455 0.422455 0.429260 0.429260 0.429260 0.435883 0.435883 0.435883 0.442627 0.442627 0.442627 0.449371 0.449371 0.449371 0.455963 0.455963 0.455963 0.462708 0.462708 0.462708 0.469543 0.469543 0.469543 0.476196 0.476196 0.476196 0.483063 0.483063 0.483063 0.490051 0.490051 0.490051 0.496887 0.496887 0.496887 0.503967 0.503967 0.503967 0.511017 0.511017 0.511017 0.518280 0.518280 0.518280 0.525696 0.525696 0.525696 0.533020 0.533020 0.533020 0.326599 0.326599 0.326599 0.334625 0.334625 0.334625 0.342682 0.342682 0.342682 0.350616 0.350616 0.350616 0.358154 0.358154 0.358154 0.365784 0.365784 0.365784 0.373077 0.373077 0.373077 0.380463 0.380463 0.380463 0.387695 0.387695 0.387695 0.394684 0.394684 0.394684 0.401764 0.401764 0.401764 0.408722 0.408722 0.408722 0.415436 0.415436 0.415436 0.422272 0.422272 0.422272 0.429108 0.429108 0.429108 0.435699 0.435699 0.435699 0.442444 0.442444 0.442444 0.449036 0.449036 0.449036 0.455780 0.455780 0.455780 0.462555 0.462555 0.462555 0.469177 0.469177 0.469177 0.476013 0.476013 0.476013 0.482910 0.482910 0.482910 0.489685 0.489685 0.489685 0.496704 0.496704 0.496704 0.503784 0.503784 0.503784 0.510803 0.510803 0.510803 0.518127 0.518127 0.518127 0.525330 0.525330 0.525330 0.532867 0.532867 0.532867 0.540466 0.540466 0.540466 0.548065 0.548065 0.548065 0.342468 0.342468 0.342468 0.350189 0.350189 0.350189 0.357971 0.357971 0.357971 0.365601 0.365601 0.365601 0.372894 0.372894 0.372894 0.380280 0.380280 0.380280 0.387360 0.387360 0.387360 0.394501 0.394501 0.394501 0.401550 0.401550 0.401550 0.408386 0.408386 0.408386 0.415283 0.415283 0.415283 0.422119 0.422119 0.422119 0.428772 0.428772 0.428772 0.435516 0.435516 0.435516 0.442291 0.442291 0.442291 0.448883 0.448883 0.448883 0.455627 0.455627 0.455627 0.462219 0.462219 0.462219 0.469025 0.469025 0.469025 0.475861 0.475861 0.475861 0.482544 0.482544 0.482544 0.489502 0.489502 0.489502 0.496521 0.496521 0.496521 0.503418 0.503418 0.503418 0.510651 0.510651 0.510651 0.517944 0.517944 0.517944 0.525146 0.525146 0.525146 0.532654 0.532654 0.532654 0.540100 0.540100 0.540100 0.547821 0.547821 0.547821 0.555725 0.555725 0.555725 0.563538 0.563538 0.563538 0.357788 0.357788 0.357788 0.365204 0.365204 0.365204 0.372711 0.372711 0.372711 0.380096 0.380096 0.380096 0.387177 0.387177 0.387177 0.394318 0.394318 0.394318 0.401215 0.401215 0.401215 0.408203 0.408203 0.408203 0.415100 0.415100 0.415100 0.421753 0.421753 0.421753 0.428589 0.428589 0.428589 0.435364 0.435364 0.435364 0.441956 0.441956 0.441956 0.448700 0.448700 0.448700 0.455292 0.455292 0.455292 0.462036 0.462036 0.462036 0.468842 0.468842 0.468842 0.475494 0.475494 0.475494 0.482391 0.482391 0.482391 0.489349 0.489349 0.489349 0.496155 0.496155 0.496155 0.503265 0.503265 0.503265 0.510437 0.510437 0.510437 0.517548 0.517548 0.517548 0.524963 0.524963 0.524963 0.532471 0.532471 0.532471 0.539886 0.539886 0.539886 0.547668 0.547668 0.547668 0.555328 0.555328 0.555328 0.563354 0.563354 0.563354 0.571503 0.571503 0.571503 0.579590 0.579590 0.579590 0.372528 0.372528 0.372528 0.379700 0.379700 0.379700 0.386993 0.386993 0.386993 0.393982 0.393982 0.393982 0.401031 0.401031 0.401031 0.408020 0.408020 0.408020 0.414764 0.414764 0.414764 0.421631 0.421631 0.421631 0.428406 0.428406 0.428406 0.435028 0.435028 0.435028 0.441772 0.441772 0.441772 0.448517 0.448517 0.448517 0.455109 0.455109 0.455109 0.461884 0.461884 0.461884 0.468506 0.468506 0.468506 0.475342 0.475342 0.475342 0.482208 0.482208 0.482208 0.488983 0.488983 0.488983 0.496002 0.496002 0.496002 0.503082 0.503082 0.503082 0.510101 0.510101 0.510101 0.517395 0.517395 0.517395 0.524780 0.524780 0.524780 0.532104 0.532104 0.532104 0.539734 0.539734 0.539734 0.547272 0.547272 0.547272 0.555115 0.555115 0.555115 0.563141 0.563141 0.563141 0.571106 0.571106 0.571106 0.579376 0.579376 0.579376 0.587799 0.587799 0.587799 0.596100 0.596100 0.596100 0.386810 0.386810 0.386810 0.393768 0.393768 0.393768 0.400848 0.400848 0.400848 0.407684 0.407684 0.407684 0.414612 0.414612 0.414612 0.421448 0.421448 0.421448 0.428101 0.428101 0.428101 0.434875 0.434875 0.434875 0.441620 0.441620 0.441620 0.448212 0.448212 0.448212 0.454956 0.454956 0.454956 0.461700 0.461700 0.461700 0.468323 0.468323 0.468323 0.475159 0.475159 0.475159 0.481873 0.481873 0.481873 0.488831 0.488831 0.488831 0.495819 0.495819 0.495819 0.502747 0.502747 0.502747 0.509888 0.509888 0.509888 0.517212 0.517212 0.517212 0.524414 0.524414 0.524414 0.531891 0.531891 0.531891 0.539520 0.539520 0.539520 0.547058 0.547058 0.547058 0.554932 0.554932 0.554932 0.562775 0.562775 0.562775 0.570892 0.570892 0.570892 0.579193 0.579193 0.579193 0.587372 0.587372 0.587372 0.595856 0.595856 0.595856 0.604462 0.604462 0.604462 0.612946 0.612946 0.612946 0.400482 0.400482 0.400482 0.407501 0.407501 0.407501 0.414429 0.414429 0.414429 0.421112 0.421112 0.421112 0.427887 0.427887 0.427887 0.434692 0.434692 0.434692 0.441284 0.441284 0.441284 0.448029 0.448029 0.448029 0.454773 0.454773 0.454773 0.461365 0.461365 0.461365 0.468140 0.468140 0.468140 0.474823 0.474823 0.474823 0.481689 0.481689 0.481689 0.488617 0.488617 0.488617 0.495483 0.495483 0.495483 0.502533 0.502533 0.502533 0.509735 0.509735 0.509735 0.516815 0.516815 0.516815 0.524200 0.524200 0.524200 0.531708 0.531708 0.531708 0.539093 0.539093 0.539093 0.546875 0.546875 0.546875 0.554535 0.554535 0.554535 0.562561 0.562561 0.562561 0.570679 0.570679 0.570679 0.578766 0.578766 0.578766 0.587128 0.587128 0.587128 0.595673 0.595673 0.595673 0.604034 0.604034 0.604034 0.612701 0.612701 0.612701 0.621399 0.621399 0.621399 0.629944 0.629944 0.629944 0.414062 0.414062 0.414062 0.420929 0.420929 0.420929 0.427734 0.427734 0.427734 0.434357 0.434357 0.434357 0.441101 0.441101 0.441101 0.447845 0.447845 0.447845 0.454437 0.454437 0.454437 0.461212 0.461212 0.461212 0.467987 0.467987 0.467987 0.474640 0.474640 0.474640 0.481506 0.481506 0.481506 0.488281 0.488281 0.488281 0.495270 0.495270 0.495270 0.502380 0.502380 0.502380 0.509369 0.509369 0.509369 0.516663 0.516663 0.516663 0.524017 0.524017 0.524017 0.531342 0.531342 0.531342 0.538940 0.538940 0.538940 0.546661 0.546661 0.546661 0.554352 0.554352 0.554352 0.562347 0.562347 0.562347 0.570282 0.570282 0.570282 0.578552 0.578552 0.578552 0.586945 0.586945 0.586945 0.595215 0.595215 0.595215 0.603821 0.603821 0.603821 0.612488 0.612488 0.612488 0.621002 0.621002 0.621002 0.629730 0.629730 0.629730 0.638489 0.638489 0.638489 0.647003 0.647003 0.647003 0.427399 0.427399 0.427399 0.434204 0.434204 0.434204 0.440948 0.440948 0.440948 0.447510 0.447510 0.447510 0.454254 0.454254 0.454254 0.461029 0.461029 0.461029 0.467651 0.467651 0.467651 0.474457 0.474457 0.474457 0.481201 0.481201 0.481201 0.488098 0.488098 0.488098 0.495087 0.495087 0.495087 0.502014 0.502014 0.502014 0.509186 0.509186 0.509186 0.516449 0.516449 0.516449 0.523651 0.523651 0.523651 0.531158 0.531158 0.531158 0.538727 0.538727 0.538727 0.546295 0.546295 0.546295 0.554169 0.554169 0.554169 0.561951 0.561951 0.561951 0.570068 0.570068 0.570068 0.578308 0.578308 0.578308 0.586517 0.586517 0.586517 0.595032 0.595032 0.595032 0.603607 0.603607 0.603607 0.612061 0.612061 0.612061 0.620758 0.620758 0.620758 0.629517 0.629517 0.629517 0.638031 0.638031 0.638031 0.646790 0.646790 0.646790 0.655304 0.655304 0.655304 0.664001 0.664001 0.664001 0.440582 0.440582 0.440582 0.447357 0.447357 0.447357 0.454102 0.454102 0.454102 0.460693 0.460693 0.460693 0.467468 0.467468 0.467468 0.474304 0.474304 0.474304 0.481018 0.481018 0.481018 0.487915 0.487915 0.487915 0.494781 0.494781 0.494781 0.501862 0.501862 0.501862 0.509003 0.509003 0.509003 0.516113 0.516113 0.516113 0.523468 0.523468 0.523468 0.530945 0.530945 0.530945 0.538361 0.538361 0.538361 0.546112 0.546112 0.546112 0.553955 0.553955 0.553955 0.561737 0.561737 0.561737 0.569885 0.569885 0.569885 0.577911 0.577911 0.577911 0.586304 0.586304 0.586304 0.594818 0.594818 0.594818 0.603180 0.603180 0.603180 0.611847 0.611847 0.611847 0.620544 0.620544 0.620544 0.629059 0.629059 0.629059 0.637817 0.637817 0.637817 0.646576 0.646576 0.646576 0.655090 0.655090 0.655090 0.663788 0.663788 0.663788 0.672150 0.672150 0.672150 0.680756 0.680756 0.680756 0.453766 0.453766 0.453766 0.460541 0.460541 0.460541 0.467316 0.467316 0.467316 0.473938 0.473938 0.473938 0.480835 0.480835 0.480835 0.487579 0.487579 0.487579 0.494568 0.494568 0.494568 0.501678 0.501678 0.501678 0.508636 0.508636 0.508636 0.515900 0.515900 0.515900 0.523285 0.523285 0.523285 0.530579 0.530579 0.530579 0.538177 0.538177 0.538177 0.545898 0.545898 0.545898 0.553558 0.553558 0.553558 0.561554 0.561554 0.561554 0.569672 0.569672 0.569672 0.577698 0.577698 0.577698 0.586090 0.586090 0.586090 0.594391 0.594391 0.594391 0.602966 0.602966 0.602966 0.611603 0.611603 0.611603 0.620117 0.620117 0.620117 0.628845 0.628845 0.628845 0.637604 0.637604 0.637604 0.646149 0.646149 0.646149 0.654877 0.654877 0.654877 0.663574 0.663574 0.663574 0.671936 0.671936 0.671936 0.680511 0.680511 0.680511 0.688812 0.688812 0.688812 0.697205 0.697205 0.697205 0.466949 0.466949 0.466949 0.473785 0.473785 0.473785 0.480682 0.480682 0.480682 0.487427 0.487427 0.487427 0.494415 0.494415 0.494415 0.501312 0.501312 0.501312 0.508453 0.508453 0.508453 0.515747 0.515747 0.515747 0.522888 0.522888 0.522888 0.530396 0.530396 0.530396 0.537964 0.537964 0.537964 0.545502 0.545502 0.545502 0.553375 0.553375 0.553375 0.561340 0.561340 0.561340 0.569244 0.569244 0.569244 0.577515 0.577515 0.577515 0.585663 0.585663 0.585663 0.594147 0.594147 0.594147 0.602722 0.602722 0.602722 0.611176 0.611176 0.611176 0.619873 0.619873 0.619873 0.628632 0.628632 0.628632 0.637146 0.637146 0.637146 0.645905 0.645905 0.645905 0.654633 0.654633 0.654633 0.663116 0.663116 0.663116 0.671753 0.671753 0.671753 0.680084 0.680084 0.680084 0.688568 0.688568 0.688568 0.696991 0.696991 0.696991 0.705017 0.705017 0.705017 0.713165 0.713165 0.713165 0.480316 0.480316 0.480316 0.487244 0.487244 0.487244 0.494049 0.494049 0.494049 0.501129 0.501129 0.501129 0.508301 0.508301 0.508301 0.515381 0.515381 0.515381 0.522736 0.522736 0.522736 0.530212 0.530212 0.530212 0.537598 0.537598 0.537598 0.545319 0.545319 0.545319 0.553162 0.553162 0.553162 0.560944 0.560944 0.560944 0.569061 0.569061 0.569061 0.577118 0.577118 0.577118 0.585449 0.585449 0.585449 0.593964 0.593964 0.593964 0.602325 0.602325 0.602325 0.610992 0.610992 0.610992 0.619690 0.619690 0.619690 0.628174 0.628174 0.628174 0.636963 0.636963 0.636963 0.645691 0.645691 0.645691 0.654236 0.654236 0.654236 0.662933 0.662933 0.662933 0.671539 0.671539 0.671539 0.679901 0.679901 0.679901 0.688354 0.688354 0.688354 0.696533 0.696533 0.696533 0.704803 0.704803 0.704803 0.712952 0.712952 0.712952 0.720703 0.720703 0.720703 0.728607 0.728607 0.728607 0.493896 0.493896 0.493896 0.500946 0.500946 0.500946 0.507935 0.507935 0.507935 0.515198 0.515198 0.515198 0.522552 0.522552 0.522552 0.529816 0.529816 0.529816 0.537415 0.537415 0.537415 0.545135 0.545135 0.545135 0.552734 0.552734 0.552734 0.560760 0.560760 0.560760 0.568817 0.568817 0.568817 0.576874 0.576874 0.576874 0.585266 0.585266 0.585266 0.593536 0.593536 0.593536 0.602081 0.602081 0.602081 0.610748 0.610748 0.610748 0.619232 0.619232 0.619232 0.627960 0.627960 0.627960 0.636719 0.636719 0.636719 0.645264 0.645264 0.645264 0.653992 0.653992 0.653992 0.662689 0.662689 0.662689 0.671112 0.671112 0.671112 0.679657 0.679657 0.679657 0.687958 0.687958 0.687958 0.696350 0.696350 0.696350 0.704590 0.704590 0.704590 0.712524 0.712524 0.712524 0.720551 0.720551 0.720551 0.728363 0.728363 0.728363 0.735870 0.735870 0.735870 0.743378 0.743378 0.743378 0.507751 0.507751 0.507751 0.514984 0.514984 0.514984 0.522186 0.522186 0.522186 0.529633 0.529633 0.529633 0.537201 0.537201 0.537201 0.544739 0.544739 0.544739 0.552582 0.552582 0.552582 0.560516 0.560516 0.560516 0.568451 0.568451 0.568451 0.576691 0.576691 0.576691 0.584839 0.584839 0.584839 0.593323 0.593323 0.593323 0.601898 0.601898 0.601898 0.610321 0.610321 0.610321 0.619049 0.619049 0.619049 0.627747 0.627747 0.627747 0.636322 0.636322 0.636322 0.645050 0.645050 0.645050 0.653778 0.653778 0.653778 0.662262 0.662262 0.662262 0.670898 0.670898 0.670898 0.679474 0.679474 0.679474 0.687714 0.687714 0.687714 0.696167 0.696167 0.696167 0.704193 0.704193 0.704193 0.712341 0.712341 0.712341 0.720337 0.720337 0.720337 0.727997 0.727997 0.727997 0.735687 0.735687 0.735687 0.743195 0.743195 0.743195 0.750305 0.750305 0.750305 0.757416 0.757416 0.757416 0.521973 0.521973 0.521973 0.529449 0.529449 0.529449 0.536835 0.536835 0.536835 0.544525 0.544525 0.544525 0.552368 0.552368 0.552368 0.560120 0.560120 0.560120 0.568237 0.568237 0.568237 0.576477 0.576477 0.576477 0.584656 0.584656 0.584656 0.593079 0.593079 0.593079 0.601440 0.601440 0.601440 0.610107 0.610107 0.610107 0.618805 0.618805 0.618805 0.627319 0.627319 0.627319 0.636078 0.636078 0.636078 0.644836 0.644836 0.644836 0.653320 0.653320 0.653320 0.662018 0.662018 0.662018 0.670685 0.670685 0.670685 0.679047 0.679047 0.679047 0.687531 0.687531 0.687531 0.695709 0.695709 0.695709 0.703979 0.703979 0.703979 0.712128 0.712128 0.712128 0.719940 0.719940 0.719940 0.727783 0.727783 0.727783 0.735504 0.735504 0.735504 0.742798 0.742798 0.742798 0.750153 0.750153 0.750153 0.757263 0.757263 0.757263 0.764008 0.764008 0.764008 0.770660 0.770660 0.770660 0.536621 0.536621 0.536621 0.544342 0.544342 0.544342 0.551971 0.551971 0.551971 0.559937 0.559937 0.559937 0.568024 0.568024 0.568024 0.576080 0.576080 0.576080 0.584412 0.584412 0.584412 0.592682 0.592682 0.592682 0.601257 0.601257 0.601257 0.609894 0.609894 0.609894 0.618378 0.618378 0.618378 0.627106 0.627106 0.627106 0.635864 0.635864 0.635864 0.644379 0.644379 0.644379 0.653137 0.653137 0.653137 0.661804 0.661804 0.661804 0.670227 0.670227 0.670227 0.678833 0.678833 0.678833 0.687317 0.687317 0.687317 0.695496 0.695496 0.695496 0.703796 0.703796 0.703796 0.711731 0.711731 0.711731 0.719788 0.719788 0.719788 0.727600 0.727600 0.727600 0.735107 0.735107 0.735107 0.742615 0.742615 0.742615 0.749969 0.749969 0.749969 0.756897 0.756897 0.756897 0.763824 0.763824 0.763824 0.770508 0.770508 0.770508 0.776794 0.776794 0.776794 0.783051 0.783051 0.783051 0.551788 0.551788 0.551788 0.559753 0.559753 0.559753 0.567627 0.567627 0.567627 0.575867 0.575867 0.575867 0.584198 0.584198 0.584198 0.592438 0.592438 0.592438 0.601013 0.601013 0.601013 0.609467 0.609467 0.609467 0.618134 0.618134 0.618134 0.626862 0.626862 0.626862 0.635406 0.635406 0.635406 0.644196 0.644196 0.644196 0.652924 0.652924 0.652924 0.661377 0.661377 0.661377 0.670044 0.670044 0.670044 0.678650 0.678650 0.678650 0.686920 0.686920 0.686920 0.695282 0.695282 0.695282 0.703400 0.703400 0.703400 0.711548 0.711548 0.711548 0.719543 0.719543 0.719543 0.727203 0.727203 0.727203 0.734924 0.734924 0.734924 0.742462 0.742462 0.742462 0.749603 0.749603 0.749603 0.756714 0.756714 0.756714 0.763641 0.763641 0.763641 0.770142 0.770142 0.770142 0.776642 0.776642 0.776642 0.782745 0.782745 0.782745 0.788757 0.788757 0.788757 0.794495 0.794495 0.794495 0.082458 0.082458 0.082458 0.087372 0.087372 0.087372 0.092682 0.092682 0.092682 0.098206 0.098206 0.098206 0.103882 0.103882 0.103882 0.110077 0.110077 0.110077 0.116516 0.116516 0.116516 0.123199 0.123199 0.123199 0.130432 0.130432 0.130432 0.138062 0.138062 0.138062 0.145935 0.145935 0.145935 0.154510 0.154510 0.154510 0.163330 0.163330 0.163330 0.172852 0.172852 0.172852 0.182739 0.182739 0.182739 0.192657 0.192657 0.192657 0.203033 0.203033 0.203033 0.213470 0.213470 0.213470 0.223572 0.223572 0.223572 0.233826 0.233826 0.233826 0.243866 0.243866 0.243866 0.253479 0.253479 0.253479 0.263184 0.263184 0.263184 0.272491 0.272491 0.272491 0.281830 0.281830 0.281830 0.290985 0.290985 0.290985 0.299713 0.299713 0.299713 0.308502 0.308502 0.308502 0.317108 0.317108 0.317108 0.325317 0.325317 0.325317 0.333588 0.333588 0.333588 0.341675 0.341675 0.341675 0.092529 0.092529 0.092529 0.097931 0.097931 0.097931 0.103760 0.103760 0.103760 0.109894 0.109894 0.109894 0.116211 0.116211 0.116211 0.123016 0.123016 0.123016 0.130219 0.130219 0.130219 0.137665 0.137665 0.137665 0.145721 0.145721 0.145721 0.154022 0.154022 0.154022 0.163116 0.163116 0.163116 0.172638 0.172638 0.172638 0.182251 0.182251 0.182251 0.192413 0.192413 0.192413 0.202789 0.202789 0.202789 0.212952 0.212952 0.212952 0.223328 0.223328 0.223328 0.233551 0.233551 0.233551 0.243378 0.243378 0.243378 0.253265 0.253265 0.253265 0.262726 0.262726 0.262726 0.272247 0.272247 0.272247 0.281586 0.281586 0.281586 0.290527 0.290527 0.290527 0.299500 0.299500 0.299500 0.308289 0.308289 0.308289 0.316681 0.316681 0.316681 0.325104 0.325104 0.325104 0.333374 0.333374 0.333374 0.341278 0.341278 0.341278 0.349213 0.349213 0.349213 0.356812 0.356812 0.356812 0.103638 0.103638 0.103638 0.109589 0.109589 0.109589 0.116058 0.116058 0.116058 0.122833 0.122833 0.122833 0.129852 0.129852 0.129852 0.137451 0.137451 0.137451 0.145538 0.145538 0.145538 0.153839 0.153839 0.153839 0.162872 0.162872 0.162872 0.172150 0.172150 0.172150 0.182007 0.182007 0.182007 0.192169 0.192169 0.192169 0.202271 0.202271 0.202271 0.212646 0.212646 0.212646 0.223053 0.223053 0.223053 0.233032 0.233032 0.233032 0.243103 0.243103 0.243103 0.253021 0.253021 0.253021 0.262482 0.262482 0.262482 0.272003 0.272003 0.272003 0.281097 0.281097 0.281097 0.290283 0.290283 0.290283 0.299255 0.299255 0.299255 0.307861 0.307861 0.307861 0.316467 0.316467 0.316467 0.324890 0.324890 0.324890 0.332977 0.332977 0.332977 0.341064 0.341064 0.341064 0.349030 0.349030 0.349030 0.356598 0.356598 0.356598 0.364258 0.364258 0.364258 0.371613 0.371613 0.371613 0.115875 0.115875 0.115875 0.122498 0.122498 0.122498 0.129700 0.129700 0.129700 0.137268 0.137268 0.137268 0.145111 0.145111 0.145111 0.153595 0.153595 0.153595 0.162415 0.162415 0.162415 0.171906 0.171906 0.171906 0.181732 0.181732 0.181732 0.191650 0.191650 0.191650 0.202026 0.202026 0.202026 0.212402 0.212402 0.212402 0.222534 0.222534 0.222534 0.232788 0.232788 0.232788 0.242828 0.242828 0.242828 0.252502 0.252502 0.252502 0.262238 0.262238 0.262238 0.271545 0.271545 0.271545 0.280884 0.280884 0.280884 0.290039 0.290039 0.290039 0.298828 0.298828 0.298828 0.307617 0.307617 0.307617 0.316254 0.316254 0.316254 0.324493 0.324493 0.324493 0.332764 0.332764 0.332764 0.340881 0.340881 0.340881 0.348633 0.348633 0.348633 0.356445 0.356445 0.356445 0.363892 0.363892 0.363892 0.371399 0.371399 0.371399 0.378815 0.378815 0.378815 0.385925 0.385925 0.385925 0.129486 0.129486 0.129486 0.136871 0.136871 0.136871 0.144897 0.144897 0.144897 0.153381 0.153381 0.153381 0.162170 0.162170 0.162170 0.171631 0.171631 0.171631 0.181244 0.181244 0.181244 0.191376 0.191376 0.191376 0.201721 0.201721 0.201721 0.211884 0.211884 0.211884 0.222260 0.222260 0.222260 0.232513 0.232513 0.232513 0.242371 0.242371 0.242371 0.252258 0.252258 0.252258 0.261993 0.261993 0.261993 0.271301 0.271301 0.271301 0.280670 0.280670 0.280670 0.289612 0.289612 0.289612 0.298584 0.298584 0.298584 0.307434 0.307434 0.307434 0.315826 0.315826 0.315826 0.324280 0.324280 0.324280 0.332581 0.332581 0.332581 0.340485 0.340485 0.340485 0.348419 0.348419 0.348419 0.356232 0.356232 0.356232 0.363708 0.363708 0.363708 0.371246 0.371246 0.371246 0.378448 0.378448 0.378448 0.385742 0.385742 0.385742 0.392883 0.392883 0.392883 0.399811 0.399811 0.399811 0.144684 0.144684 0.144684 0.152954 0.152954 0.152954 0.161926 0.161926 0.161926 0.171173 0.171173 0.171173 0.181000 0.181000 0.181000 0.191132 0.191132 0.191132 0.201233 0.201233 0.201233 0.211639 0.211639 0.211639 0.222015 0.222015 0.222015 0.232025 0.232025 0.232025 0.242126 0.242126 0.242126 0.252014 0.252014 0.252014 0.261505 0.261505 0.261505 0.271057 0.271057 0.271057 0.280182 0.280182 0.280182 0.289368 0.289368 0.289368 0.298370 0.298370 0.298370 0.306976 0.306976 0.306976 0.315613 0.315613 0.315613 0.324066 0.324066 0.324066 0.332153 0.332153 0.332153 0.340271 0.340271 0.340271 0.348236 0.348236 0.348236 0.355835 0.355835 0.355835 0.363495 0.363495 0.363495 0.370880 0.370880 0.370880 0.378265 0.378265 0.378265 0.385559 0.385559 0.385559 0.392548 0.392548 0.392548 0.399628 0.399628 0.399628 0.406616 0.406616 0.406616 0.413361 0.413361 0.413361 0.161713 0.161713 0.161713 0.170929 0.170929 0.170929 0.180725 0.180725 0.180725 0.190643 0.190643 0.190643 0.200958 0.200958 0.200958 0.211365 0.211365 0.211365 0.221527 0.221527 0.221527 0.231750 0.231750 0.231750 0.241882 0.241882 0.241882 0.251526 0.251526 0.251526 0.261261 0.261261 0.261261 0.270813 0.270813 0.270813 0.279968 0.279968 0.279968 0.289124 0.289124 0.289124 0.297943 0.297943 0.297943 0.306763 0.306763 0.306763 0.315399 0.315399 0.315399 0.323639 0.323639 0.323639 0.331940 0.331940 0.331940 0.340088 0.340088 0.340088 0.347870 0.347870 0.347870 0.355682 0.355682 0.355682 0.363312 0.363312 0.363312 0.370667 0.370667 0.370667 0.378082 0.378082 0.378082 0.385162 0.385162 0.385162 0.392365 0.392365 0.392365 0.399445 0.399445 0.399445 0.406281 0.406281 0.406281 0.413208 0.413208 0.413208 0.420074 0.420074 0.420074 0.426727 0.426727 0.426727 0.180237 0.180237 0.180237 0.190399 0.190399 0.190399 0.200714 0.200714 0.200714 0.210846 0.210846 0.210846 0.221252 0.221252 0.221252 0.231476 0.231476 0.231476 0.241364 0.241364 0.241364 0.251282 0.251282 0.251282 0.261047 0.261047 0.261047 0.270355 0.270355 0.270355 0.279724 0.279724 0.279724 0.288696 0.288696 0.288696 0.297699 0.297699 0.297699 0.306519 0.306519 0.306519 0.314972 0.314972 0.314972 0.323425 0.323425 0.323425 0.331757 0.331757 0.331757 0.339691 0.339691 0.339691 0.347656 0.347656 0.347656 0.355469 0.355469 0.355469 0.362946 0.362946 0.362946 0.370514 0.370514 0.370514 0.377899 0.377899 0.377899 0.385010 0.385010 0.385010 0.392181 0.392181 0.392181 0.399078 0.399078 0.399078 0.406097 0.406097 0.406097 0.413055 0.413055 0.413055 0.419708 0.419708 0.419708 0.426544 0.426544 0.426544 0.433319 0.433319 0.433319 0.439941 0.439941 0.439941 0.200165 0.200165 0.200165 0.210602 0.210602 0.210602 0.220978 0.220978 0.220978 0.231018 0.231018 0.231018 0.241119 0.241119 0.241119 0.251038 0.251038 0.251038 0.260559 0.260559 0.260559 0.270142 0.270142 0.270142 0.279510 0.279510 0.279510 0.288483 0.288483 0.288483 0.297485 0.297485 0.297485 0.306122 0.306122 0.306122 0.314728 0.314728 0.314728 0.323242 0.323242 0.323242 0.331329 0.331329 0.331329 0.339478 0.339478 0.339478 0.347443 0.347443 0.347443 0.355072 0.355072 0.355072 0.362762 0.362762 0.362762 0.370300 0.370300 0.370300 0.377502 0.377502 0.377502 0.384827 0.384827 0.384827 0.391846 0.391846 0.391846 0.398926 0.398926 0.398926 0.405914 0.405914 0.405914 0.412689 0.412689 0.412689 0.419556 0.419556 0.419556 0.426392 0.426392 0.426392 0.432983 0.432983 0.432983 0.439758 0.439758 0.439758 0.446503 0.446503 0.446503 0.453064 0.453064 0.453064 0.220459 0.220459 0.220459 0.230774 0.230774 0.230774 0.240875 0.240875 0.240875 0.250549 0.250549 0.250549 0.260315 0.260315 0.260315 0.269867 0.269867 0.269867 0.279053 0.279053 0.279053 0.288239 0.288239 0.288239 0.297028 0.297028 0.297028 0.305878 0.305878 0.305878 0.314545 0.314545 0.314545 0.322815 0.322815 0.322815 0.331116 0.331116 0.331116 0.339264 0.339264 0.339264 0.347046 0.347046 0.347046 0.354889 0.354889 0.354889 0.362579 0.362579 0.362579 0.369904 0.369904 0.369904 0.377350 0.377350 0.377350 0.384644 0.384644 0.384644 0.391663 0.391663 0.391663 0.398773 0.398773 0.398773 0.405579 0.405579 0.405579 0.412537 0.412537 0.412537 0.419403 0.419403 0.419403 0.426056 0.426056 0.426056 0.432831 0.432831 0.432831 0.439606 0.439606 0.439606 0.446167 0.446167 0.446167 0.452911 0.452911 0.452911 0.459656 0.459656 0.459656 0.466278 0.466278 0.466278 0.240356 0.240356 0.240356 0.250305 0.250305 0.250305 0.260040 0.260040 0.260040 0.269379 0.269379 0.269379 0.278809 0.278809 0.278809 0.288025 0.288025 0.288025 0.296783 0.296783 0.296783 0.305664 0.305664 0.305664 0.314117 0.314117 0.314117 0.322601 0.322601 0.322601 0.330902 0.330902 0.330902 0.338837 0.338837 0.338837 0.346863 0.346863 0.346863 0.354675 0.354675 0.354675 0.362183 0.362183 0.362183 0.369751 0.369751 0.369751 0.377136 0.377136 0.377136 0.384277 0.384277 0.384277 0.391449 0.391449 0.391449 0.398407 0.398407 0.398407 0.405426 0.405426 0.405426 0.412354 0.412354 0.412354 0.419037 0.419037 0.419037 0.425873 0.425873 0.425873 0.432648 0.432648 0.432648 0.439270 0.439270 0.439270 0.446014 0.446014 0.446014 0.452728 0.452728 0.452728 0.459320 0.459320 0.459320 0.466125 0.466125 0.466125 0.472778 0.472778 0.472778 0.479614 0.479614 0.479614 0.259583 0.259583 0.259583 0.269135 0.269135 0.269135 0.278564 0.278564 0.278564 0.287567 0.287567 0.287567 0.296600 0.296600 0.296600 0.305206 0.305206 0.305206 0.313904 0.313904 0.313904 0.322388 0.322388 0.322388 0.330505 0.330505 0.330505 0.338684 0.338684 0.338684 0.346649 0.346649 0.346649 0.354279 0.354279 0.354279 0.362000 0.362000 0.362000 0.369568 0.369568 0.369568 0.376770 0.376770 0.376770 0.384094 0.384094 0.384094 0.391296 0.391296 0.391296 0.398224 0.398224 0.398224 0.405243 0.405243 0.405243 0.412018 0.412018 0.412018 0.418884 0.418884 0.418884 0.425690 0.425690 0.425690 0.432312 0.432312 0.432312 0.439087 0.439087 0.439087 0.445831 0.445831 0.445831 0.452393 0.452393 0.452393 0.459167 0.459167 0.459167 0.465942 0.465942 0.465942 0.472595 0.472595 0.472595 0.479462 0.479462 0.479462 0.486176 0.486176 0.486176 0.493195 0.493195 0.493195 0.278107 0.278107 0.278107 0.287323 0.287323 0.287323 0.296387 0.296387 0.296387 0.304993 0.304993 0.304993 0.313690 0.313690 0.313690 0.321960 0.321960 0.321960 0.330322 0.330322 0.330322 0.338470 0.338470 0.338470 0.346252 0.346252 0.346252 0.354095 0.354095 0.354095 0.361816 0.361816 0.361816 0.369171 0.369171 0.369171 0.376587 0.376587 0.376587 0.383911 0.383911 0.383911 0.390961 0.390961 0.390961 0.398010 0.398010 0.398010 0.404907 0.404907 0.404907 0.411804 0.411804 0.411804 0.418732 0.418732 0.418732 0.425385 0.425385 0.425385 0.432159 0.432159 0.432159 0.438904 0.438904 0.438904 0.445496 0.445496 0.445496 0.452271 0.452271 0.452271 0.459015 0.459015 0.459015 0.465607 0.465607 0.465607 0.472412 0.472412 0.472412 0.479095 0.479095 0.479095 0.486023 0.486023 0.486023 0.493011 0.493011 0.493011 0.499878 0.499878 0.499878 0.507050 0.507050 0.507050 0.295898 0.295898 0.295898 0.304810 0.304810 0.304810 0.313263 0.313263 0.313263 0.321747 0.321747 0.321747 0.330109 0.330109 0.330109 0.338043 0.338043 0.338043 0.346069 0.346069 0.346069 0.353912 0.353912 0.353912 0.361420 0.361420 0.361420 0.368988 0.368988 0.368988 0.376434 0.376434 0.376434 0.383545 0.383545 0.383545 0.390747 0.390747 0.390747 0.397705 0.397705 0.397705 0.404724 0.404724 0.404724 0.411652 0.411652 0.411652 0.418365 0.418365 0.418365 0.425171 0.425171 0.425171 0.431976 0.431976 0.431976 0.438568 0.438568 0.438568 0.445343 0.445343 0.445343 0.452087 0.452087 0.452087 0.458649 0.458649 0.458649 0.465454 0.465454 0.465454 0.472260 0.472260 0.472260 0.478943 0.478943 0.478943 0.485870 0.485870 0.485870 0.492645 0.492645 0.492645 0.499695 0.499695 0.499695 0.506836 0.506836 0.506836 0.513885 0.513885 0.513885 0.521240 0.521240 0.521240 0.313049 0.313049 0.313049 0.321564 0.321564 0.321564 0.329712 0.329712 0.329712 0.337860 0.337860 0.337860 0.345886 0.345886 0.345886 0.353516 0.353516 0.353516 0.361267 0.361267 0.361267 0.368805 0.368805 0.368805 0.376068 0.376068 0.376068 0.383362 0.383362 0.383362 0.390594 0.390594 0.390594 0.397522 0.397522 0.397522 0.404510 0.404510 0.404510 0.411316 0.411316 0.411316 0.418182 0.418182 0.418182 0.425018 0.425018 0.425018 0.431641 0.431641 0.431641 0.438385 0.438385 0.438385 0.445160 0.445160 0.445160 0.451752 0.451752 0.451752 0.458496 0.458496 0.458496 0.465271 0.465271 0.465271 0.471893 0.471893 0.471893 0.478760 0.478760 0.478760 0.485504 0.485504 0.485504 0.492493 0.492493 0.492493 0.499512 0.499512 0.499512 0.506500 0.506500 0.506500 0.513702 0.513702 0.513702 0.521057 0.521057 0.521057 0.528320 0.528320 0.528320 0.535858 0.535858 0.535858 0.329468 0.329468 0.329468 0.337677 0.337677 0.337677 0.345459 0.345459 0.345459 0.353363 0.353363 0.353363 0.361053 0.361053 0.361053 0.368408 0.368408 0.368408 0.375854 0.375854 0.375854 0.383179 0.383179 0.383179 0.390228 0.390228 0.390228 0.397339 0.397339 0.397339 0.404175 0.404175 0.404175 0.411133 0.411133 0.411133 0.417999 0.417999 0.417999 0.424683 0.424683 0.424683 0.431488 0.431488 0.431488 0.438263 0.438263 0.438263 0.444824 0.444824 0.444824 0.451569 0.451569 0.451569 0.458313 0.458313 0.458313 0.464935 0.464935 0.464935 0.471741 0.471741 0.471741 0.478607 0.478607 0.478607 0.485321 0.485321 0.485321 0.492310 0.492310 0.492310 0.499176 0.499176 0.499176 0.506317 0.506317 0.506317 0.513519 0.513519 0.513519 0.520660 0.520660 0.520660 0.528137 0.528137 0.528137 0.535706 0.535706 0.535706 0.543182 0.543182 0.543182 0.550995 0.550995 0.550995 0.345306 0.345306 0.345306 0.353149 0.353149 0.353149 0.360657 0.360657 0.360657 0.368225 0.368225 0.368225 0.375702 0.375702 0.375702 0.382843 0.382843 0.382843 0.390045 0.390045 0.390045 0.397186 0.397186 0.397186 0.403992 0.403992 0.403992 0.410980 0.410980 0.410980 0.417847 0.417847 0.417847 0.424500 0.424500 0.424500 0.431305 0.431305 0.431305 0.437897 0.437897 0.437897 0.444641 0.444641 0.444641 0.451416 0.451416 0.451416 0.457977 0.457977 0.457977 0.464752 0.464752 0.464752 0.471588 0.471588 0.471588 0.478241 0.478241 0.478241 0.485138 0.485138 0.485138 0.492126 0.492126 0.492126 0.498993 0.498993 0.498993 0.506134 0.506134 0.506134 0.513184 0.513184 0.513184 0.520508 0.520508 0.520508 0.527954 0.527954 0.527954 0.535339 0.535339 0.535339 0.542999 0.542999 0.542999 0.550781 0.550781 0.550781 0.558563 0.558563 0.558563 0.566589 0.566589 0.566589 0.360474 0.360474 0.360474 0.368042 0.368042 0.368042 0.375336 0.375336 0.375336 0.382660 0.382660 0.382660 0.389862 0.389862 0.389862 0.396820 0.396820 0.396820 0.403839 0.403839 0.403839 0.410797 0.410797 0.410797 0.417480 0.417480 0.417480 0.424347 0.424347 0.424347 0.430969 0.430969 0.430969 0.437744 0.437744 0.437744 0.444489 0.444489 0.444489 0.451080 0.451080 0.451080 0.457825 0.457825 0.457825 0.464600 0.464600 0.464600 0.471222 0.471222 0.471222 0.478088 0.478088 0.478088 0.484985 0.484985 0.484985 0.491760 0.491760 0.491760 0.498840 0.498840 0.498840 0.505951 0.505951 0.505951 0.513000 0.513000 0.513000 0.520325 0.520325 0.520325 0.527557 0.527557 0.527557 0.535126 0.535126 0.535126 0.542786 0.542786 0.542786 0.550385 0.550385 0.550385 0.558319 0.558319 0.558319 0.566376 0.566376 0.566376 0.574402 0.574402 0.574402 0.582703 0.582703 0.582703 0.375122 0.375122 0.375122 0.382446 0.382446 0.382446 0.389526 0.389526 0.389526 0.396637 0.396637 0.396637 0.403656 0.403656 0.403656 0.410461 0.410461 0.410461 0.417328 0.417328 0.417328 0.424164 0.424164 0.424164 0.430817 0.430817 0.430817 0.437592 0.437592 0.437592 0.444153 0.444153 0.444153 0.450897 0.450897 0.450897 0.457642 0.457642 0.457642 0.464233 0.464233 0.464233 0.471069 0.471069 0.471069 0.477936 0.477936 0.477936 0.484650 0.484650 0.484650 0.491608 0.491608 0.491608 0.498627 0.498627 0.498627 0.505615 0.505615 0.505615 0.512817 0.512817 0.512817 0.519958 0.519958 0.519958 0.527374 0.527374 0.527374 0.534943 0.534943 0.534943 0.542389 0.542389 0.542389 0.550201 0.550201 0.550201 0.558136 0.558136 0.558136 0.565979 0.565979 0.565979 0.574188 0.574188 0.574188 0.582520 0.582520 0.582520 0.590759 0.590759 0.590759 0.599304 0.599304 0.599304 0.389313 0.389313 0.389313 0.396454 0.396454 0.396454 0.403320 0.403320 0.403320 0.410278 0.410278 0.410278 0.417175 0.417175 0.417175 0.423828 0.423828 0.423828 0.430603 0.430603 0.430603 0.437225 0.437225 0.437225 0.443970 0.443970 0.443970 0.450714 0.450714 0.450714 0.457306 0.457306 0.457306 0.464081 0.464081 0.464081 0.470886 0.470886 0.470886 0.477570 0.477570 0.477570 0.484467 0.484467 0.484467 0.491425 0.491425 0.491425 0.498291 0.498291 0.498291 0.505432 0.505432 0.505432 0.512634 0.512634 0.512634 0.519775 0.519775 0.519775 0.527191 0.527191 0.527191 0.534546 0.534546 0.534546 0.542206 0.542206 0.542206 0.550018 0.550018 0.550018 0.557709 0.557709 0.557709 0.565765 0.565765 0.565765 0.573975 0.573975 0.573975 0.582092 0.582092 0.582092 0.590546 0.590546 0.590546 0.599091 0.599091 0.599091 0.607513 0.607513 0.607513 0.616211 0.616211 0.616211 0.403168 0.403168 0.403168 0.410095 0.410095 0.410095 0.416840 0.416840 0.416840 0.423676 0.423676 0.423676 0.430450 0.430450 0.430450 0.437073 0.437073 0.437073 0.443817 0.443817 0.443817 0.450378 0.450378 0.450378 0.457123 0.457123 0.457123 0.463928 0.463928 0.463928 0.470551 0.470551 0.470551 0.477386 0.477386 0.477386 0.484283 0.484283 0.484283 0.491089 0.491089 0.491089 0.498077 0.498077 0.498077 0.505219 0.505219 0.505219 0.512268 0.512268 0.512268 0.519592 0.519592 0.519592 0.526825 0.526825 0.526825 0.534363 0.534363 0.534363 0.542023 0.542023 0.542023 0.549622 0.549622 0.549622 0.557526 0.557526 0.557526 0.565582 0.565582 0.565582 0.573578 0.573578 0.573578 0.581909 0.581909 0.581909 0.590332 0.590332 0.590332 0.598663 0.598663 0.598663 0.607269 0.607269 0.607269 0.615784 0.615784 0.615784 0.624481 0.624481 0.624481 0.633240 0.633240 0.633240 0.416656 0.416656 0.416656 0.423462 0.423462 0.423462 0.430115 0.430115 0.430115 0.436890 0.436890 0.436890 0.443451 0.443451 0.443451 0.450226 0.450226 0.450226 0.456970 0.456970 0.456970 0.463562 0.463562 0.463562 0.470367 0.470367 0.470367 0.477203 0.477203 0.477203 0.483948 0.483948 0.483948 0.490906 0.490906 0.490906 0.497955 0.497955 0.497955 0.504883 0.504883 0.504883 0.512085 0.512085 0.512085 0.519226 0.519226 0.519226 0.526642 0.526642 0.526642 0.534180 0.534180 0.534180 0.541656 0.541656 0.541656 0.549408 0.549408 0.549408 0.557343 0.557343 0.557343 0.565186 0.565186 0.565186 0.573364 0.573364 0.573364 0.581696 0.581696 0.581696 0.589905 0.589905 0.589905 0.598450 0.598450 0.598450 0.607056 0.607056 0.607056 0.615540 0.615540 0.615540 0.624237 0.624237 0.624237 0.632812 0.632812 0.632812 0.641541 0.641541 0.641541 0.650299 0.650299 0.650299 0.429932 0.429932 0.429932 0.436707 0.436707 0.436707 0.443298 0.443298 0.443298 0.450073 0.450073 0.450073 0.456635 0.456635 0.456635 0.463409 0.463409 0.463409 0.470184 0.470184 0.470184 0.476868 0.476868 0.476868 0.483734 0.483734 0.483734 0.490692 0.490692 0.490692 0.497589 0.497589 0.497589 0.504700 0.504700 0.504700 0.511902 0.511902 0.511902 0.519043 0.519043 0.519043 0.526428 0.526428 0.526428 0.533783 0.533783 0.533783 0.541443 0.541443 0.541443 0.549225 0.549225 0.549225 0.556946 0.556946 0.556946 0.564972 0.564972 0.564972 0.573151 0.573151 0.573151 0.581268 0.581268 0.581268 0.589691 0.589691 0.589691 0.598236 0.598236 0.598236 0.606628 0.606628 0.606628 0.615295 0.615295 0.615295 0.623840 0.623840 0.623840 0.632568 0.632568 0.632568 0.641296 0.641296 0.641296 0.649841 0.649841 0.649841 0.658569 0.658569 0.658569 0.667206 0.667206 0.667206 0.443146 0.443146 0.443146 0.449890 0.449890 0.449890 0.456451 0.456451 0.456451 0.463226 0.463226 0.463226 0.469879 0.469879 0.469879 0.476685 0.476685 0.476685 0.483612 0.483612 0.483612 0.490387 0.490387 0.490387 0.497406 0.497406 0.497406 0.504517 0.504517 0.504517 0.511536 0.511536 0.511536 0.518860 0.518860 0.518860 0.526062 0.526062 0.526062 0.533600 0.533600 0.533600 0.541260 0.541260 0.541260 0.548828 0.548828 0.548828 0.556732 0.556732 0.556732 0.564758 0.564758 0.564758 0.572754 0.572754 0.572754 0.581024 0.581024 0.581024 0.589478 0.589478 0.589478 0.597809 0.597809 0.597809 0.606445 0.606445 0.606445 0.615112 0.615112 0.615112 0.623596 0.623596 0.623596 0.632355 0.632355 0.632355 0.640869 0.640869 0.640869 0.649628 0.649628 0.649628 0.658356 0.658356 0.658356 0.666779 0.666779 0.666779 0.675385 0.675385 0.675385 0.683960 0.683960 0.683960 0.456299 0.456299 0.456299 0.462921 0.462921 0.462921 0.469696 0.469696 0.469696 0.476532 0.476532 0.476532 0.483246 0.483246 0.483246 0.490173 0.490173 0.490173 0.497223 0.497223 0.497223 0.504181 0.504181 0.504181 0.511353 0.511353 0.511353 0.518677 0.518677 0.518677 0.525879 0.525879 0.525879 0.533417 0.533417 0.533417 0.540863 0.540863 0.540863 0.548645 0.548645 0.548645 0.556519 0.556519 0.556519 0.564362 0.564362 0.564362 0.572540 0.572540 0.572540 0.580841 0.580841 0.580841 0.589081 0.589081 0.589081 0.597595 0.597595 0.597595 0.606201 0.606201 0.606201 0.614655 0.614655 0.614655 0.623383 0.623383 0.623383 0.631897 0.631897 0.631897 0.640656 0.640656 0.640656 0.649414 0.649414 0.649414 0.657898 0.657898 0.657898 0.666565 0.666565 0.666565 0.675201 0.675201 0.675201 0.683502 0.683502 0.683502 0.691956 0.691956 0.691956 0.700287 0.700287 0.700287 0.469543 0.469543 0.469543 0.476196 0.476196 0.476196 0.483063 0.483063 0.483063 0.490051 0.490051 0.490051 0.496887 0.496887 0.496887 0.503967 0.503967 0.503967 0.511200 0.511200 0.511200 0.518280 0.518280 0.518280 0.525696 0.525696 0.525696 0.533234 0.533234 0.533234 0.540680 0.540680 0.540680 0.548431 0.548431 0.548431 0.556152 0.556152 0.556152 0.564178 0.564178 0.564178 0.572327 0.572327 0.572327 0.580414 0.580414 0.580414 0.588837 0.588837 0.588837 0.597382 0.597382 0.597382 0.605774 0.605774 0.605774 0.614441 0.614441 0.614441 0.623169 0.623169 0.623169 0.631683 0.631683 0.631683 0.640472 0.640472 0.640472 0.648987 0.648987 0.648987 0.657684 0.657684 0.657684 0.666351 0.666351 0.666351 0.674744 0.674744 0.674744 0.683319 0.683319 0.683319 0.691742 0.691742 0.691742 0.699890 0.699890 0.699890 0.708069 0.708069 0.708069 0.716156 0.716156 0.716156 0.482910 0.482910 0.482910 0.489685 0.489685 0.489685 0.496704 0.496704 0.496704 0.503784 0.503784 0.503784 0.510803 0.510803 0.510803 0.518127 0.518127 0.518127 0.525513 0.525513 0.525513 0.532867 0.532867 0.532867 0.540466 0.540466 0.540466 0.548065 0.548065 0.548065 0.555939 0.555939 0.555939 0.563995 0.563995 0.563995 0.571899 0.571899 0.571899 0.580231 0.580231 0.580231 0.588623 0.588623 0.588623 0.596954 0.596954 0.596954 0.605560 0.605560 0.605560 0.614258 0.614258 0.614258 0.622742 0.622742 0.622742 0.631500 0.631500 0.631500 0.639984 0.639984 0.639984 0.648773 0.648773 0.648773 0.657471 0.657471 0.657471 0.665924 0.665924 0.665924 0.674561 0.674561 0.674561 0.683075 0.683075 0.683075 0.691315 0.691315 0.691315 0.699677 0.699677 0.699677 0.707855 0.707855 0.707855 0.715759 0.715759 0.715759 0.723694 0.723694 0.723694 0.731293 0.731293 0.731293 0.496521 0.496521 0.496521 0.503418 0.503418 0.503418 0.510651 0.510651 0.510651 0.517944 0.517944 0.517944 0.525146 0.525146 0.525146 0.532654 0.532654 0.532654 0.540283 0.540283 0.540283 0.547821 0.547821 0.547821 0.555725 0.555725 0.555725 0.563538 0.563538 0.563538 0.571686 0.571686 0.571686 0.580017 0.580017 0.580017 0.588196 0.588196 0.588196 0.596741 0.596741 0.596741 0.605347 0.605347 0.605347 0.613770 0.613770 0.613770 0.622528 0.622528 0.622528 0.631256 0.631256 0.631256 0.639801 0.639801 0.639801 0.648529 0.648529 0.648529 0.657074 0.657074 0.657074 0.665680 0.665680 0.665680 0.674347 0.674347 0.674347 0.682648 0.682648 0.682648 0.691101 0.691101 0.691101 0.699432 0.699432 0.699432 0.707458 0.707458 0.707458 0.715576 0.715576 0.715576 0.723511 0.723511 0.723511 0.731079 0.731079 0.731079 0.738708 0.738708 0.738708 0.745941 0.745941 0.745941 0.510437 0.510437 0.510437 0.517548 0.517548 0.517548 0.524963 0.524963 0.524963 0.532471 0.532471 0.532471 0.539886 0.539886 0.539886 0.547668 0.547668 0.547668 0.555328 0.555328 0.555328 0.563354 0.563354 0.563354 0.571503 0.571503 0.571503 0.579590 0.579590 0.579590 0.588013 0.588013 0.588013 0.596527 0.596527 0.596527 0.604919 0.604919 0.604919 0.613586 0.613586 0.613586 0.622284 0.622284 0.622284 0.630829 0.630829 0.630829 0.639557 0.639557 0.639557 0.648315 0.648315 0.648315 0.656830 0.656830 0.656830 0.665497 0.665497 0.665497 0.673889 0.673889 0.673889 0.682465 0.682465 0.682465 0.690887 0.690887 0.690887 0.699036 0.699036 0.699036 0.707275 0.707275 0.707275 0.715363 0.715363 0.715363 0.723145 0.723145 0.723145 0.730927 0.730927 0.730927 0.738342 0.738342 0.738342 0.745758 0.745758 0.745758 0.752991 0.752991 0.752991 0.759888 0.759888 0.759888 0.524780 0.524780 0.524780 0.532104 0.532104 0.532104 0.539734 0.539734 0.539734 0.547455 0.547455 0.547455 0.555115 0.555115 0.555115 0.563141 0.563141 0.563141 0.571106 0.571106 0.571106 0.579376 0.579376 0.579376 0.587799 0.587799 0.587799 0.596100 0.596100 0.596100 0.604675 0.604675 0.604675 0.613342 0.613342 0.613342 0.621857 0.621857 0.621857 0.630615 0.630615 0.630615 0.639374 0.639374 0.639374 0.647888 0.647888 0.647888 0.656616 0.656616 0.656616 0.665039 0.665039 0.665039 0.673706 0.673706 0.673706 0.682251 0.682251 0.682251 0.690491 0.690491 0.690491 0.698822 0.698822 0.698822 0.707062 0.707062 0.707062 0.714966 0.714966 0.714966 0.722931 0.722931 0.722931 0.730682 0.730682 0.730682 0.738129 0.738129 0.738129 0.745605 0.745605 0.745605 0.752655 0.752655 0.752655 0.759674 0.759674 0.759674 0.766510 0.766510 0.766510 0.772949 0.772949 0.772949 0.539520 0.539520 0.539520 0.547058 0.547058 0.547058 0.554932 0.554932 0.554932 0.562775 0.562775 0.562775 0.570892 0.570892 0.570892 0.579193 0.579193 0.579193 0.587372 0.587372 0.587372 0.595856 0.595856 0.595856 0.604462 0.604462 0.604462 0.612946 0.612946 0.612946 0.621643 0.621643 0.621643 0.630371 0.630371 0.630371 0.638916 0.638916 0.638916 0.647675 0.647675 0.647675 0.656158 0.656158 0.656158 0.664856 0.664856 0.664856 0.673462 0.673462 0.673462 0.681793 0.681793 0.681793 0.690277 0.690277 0.690277 0.698608 0.698608 0.698608 0.706665 0.706665 0.706665 0.714783 0.714783 0.714783 0.722717 0.722717 0.722717 0.730316 0.730316 0.730316 0.737946 0.737946 0.737946 0.745392 0.745392 0.745392 0.752472 0.752472 0.752472 0.759491 0.759491 0.759491 0.766174 0.766174 0.766174 0.772797 0.772797 0.772797 0.779205 0.779205 0.779205 0.785187 0.785187 0.785187 0.554749 0.554749 0.554749 0.562561 0.562561 0.562561 0.570679 0.570679 0.570679 0.578766 0.578766 0.578766 0.587128 0.587128 0.587128 0.595673 0.595673 0.595673 0.604034 0.604034 0.604034 0.612701 0.612701 0.612701 0.621399 0.621399 0.621399 0.629944 0.629944 0.629944 0.638702 0.638702 0.638702 0.647430 0.647430 0.647430 0.655914 0.655914 0.655914 0.664612 0.664612 0.664612 0.673065 0.673065 0.673065 0.681610 0.681610 0.681610 0.690063 0.690063 0.690063 0.698212 0.698212 0.698212 0.706451 0.706451 0.706451 0.714569 0.714569 0.714569 0.722351 0.722351 0.722351 0.730164 0.730164 0.730164 0.737793 0.737793 0.737793 0.745026 0.745026 0.745026 0.752289 0.752289 0.752289 0.759155 0.759155 0.759155 0.765991 0.765991 0.765991 0.772644 0.772644 0.772644 0.778900 0.778900 0.778900 0.785034 0.785034 0.785034 0.790924 0.790924 0.790924 0.796417 0.796417 0.796417 0.084229 0.084229 0.084229 0.089325 0.089325 0.089325 0.094696 0.094696 0.094696 0.100220 0.100220 0.100220 0.106171 0.106171 0.106171 0.112274 0.112274 0.112274 0.118896 0.118896 0.118896 0.125854 0.125854 0.125854 0.133057 0.133057 0.133057 0.140839 0.140839 0.140839 0.149078 0.149078 0.149078 0.157623 0.157623 0.157623 0.166840 0.166840 0.166840 0.176544 0.176544 0.176544 0.186310 0.186310 0.186310 0.196564 0.196564 0.196564 0.206940 0.206940 0.206940 0.217102 0.217102 0.217102 0.227448 0.227448 0.227448 0.237335 0.237335 0.237335 0.247314 0.247314 0.247314 0.257172 0.257172 0.257172 0.266541 0.266541 0.266541 0.276001 0.276001 0.276001 0.285248 0.285248 0.285248 0.294128 0.294128 0.294128 0.303009 0.303009 0.303009 0.311737 0.311737 0.311737 0.320099 0.320099 0.320099 0.328461 0.328461 0.328461 0.336426 0.336426 0.336426 0.344482 0.344482 0.344482 0.094421 0.094421 0.094421 0.100098 0.100098 0.100098 0.106018 0.106018 0.106018 0.112122 0.112122 0.112122 0.118713 0.118713 0.118713 0.125488 0.125488 0.125488 0.132843 0.132843 0.132843 0.140625 0.140625 0.140625 0.148682 0.148682 0.148682 0.157410 0.157410 0.157410 0.166595 0.166595 0.166595 0.176056 0.176056 0.176056 0.186035 0.186035 0.186035 0.196289 0.196289 0.196289 0.206421 0.206421 0.206421 0.216827 0.216827 0.216827 0.226929 0.226929 0.226929 0.237091 0.237091 0.237091 0.247070 0.247070 0.247070 0.256653 0.256653 0.256653 0.266296 0.266296 0.266296 0.275757 0.275757 0.275757 0.284821 0.284821 0.284821 0.293915 0.293915 0.293915 0.302795 0.302795 0.302795 0.311310 0.311310 0.311310 0.319855 0.319855 0.319855 0.328033 0.328033 0.328033 0.336243 0.336243 0.336243 0.344269 0.344269 0.344269 0.351959 0.351959 0.351959 0.359711 0.359711 0.359711 0.105713 0.105713 0.105713 0.111938 0.111938 0.111938 0.118378 0.118378 0.118378 0.125305 0.125305 0.125305 0.132660 0.132660 0.132660 0.140228 0.140228 0.140228 0.148438 0.148438 0.148438 0.157166 0.157166 0.157166 0.166138 0.166138 0.166138 0.175781 0.175781 0.175781 0.185791 0.185791 0.185791 0.195801 0.195801 0.195801 0.206177 0.206177 0.206177 0.216309 0.216309 0.216309 0.226685 0.226685 0.226685 0.236847 0.236847 0.236847 0.246582 0.246582 0.246582 0.256409 0.256409 0.256409 0.266052 0.266052 0.266052 0.275299 0.275299 0.275299 0.284576 0.284576 0.284576 0.293671 0.293671 0.293671 0.302368 0.302368 0.302368 0.311066 0.311066 0.311066 0.319641 0.319641 0.319641 0.327789 0.327789 0.327789 0.336029 0.336029 0.336029 0.343872 0.343872 0.343872 0.351776 0.351776 0.351776 0.359497 0.359497 0.359497 0.366943 0.366943 0.366943 0.374390 0.374390 0.374390 0.118225 0.118225 0.118225 0.125153 0.125153 0.125153 0.132294 0.132294 0.132294 0.140045 0.140045 0.140045 0.148285 0.148285 0.148285 0.156708 0.156708 0.156708 0.165894 0.165894 0.165894 0.175537 0.175537 0.175537 0.185272 0.185272 0.185272 0.195526 0.195526 0.195526 0.205902 0.205902 0.205902 0.216064 0.216064 0.216064 0.226410 0.226410 0.226410 0.236328 0.236328 0.236328 0.246338 0.246338 0.246338 0.256165 0.256165 0.256165 0.265594 0.265594 0.265594 0.275085 0.275085 0.275085 0.284332 0.284332 0.284332 0.293213 0.293213 0.293213 0.302155 0.302155 0.302155 0.310913 0.310913 0.310913 0.319214 0.319214 0.319214 0.327637 0.327637 0.327637 0.335632 0.335632 0.335632 0.343689 0.343689 0.343689 0.351562 0.351562 0.351562 0.359131 0.359131 0.359131 0.366730 0.366730 0.366730 0.374207 0.374207 0.374207 0.381378 0.381378 0.381378 0.388611 0.388611 0.388611 0.132111 0.132111 0.132111 0.139832 0.139832 0.139832 0.147827 0.147827 0.147827 0.156494 0.156494 0.156494 0.165680 0.165680 0.165680 0.175049 0.175049 0.175049 0.185028 0.185028 0.185028 0.195251 0.195251 0.195251 0.205383 0.205383 0.205383 0.215790 0.215790 0.215790 0.225891 0.225891 0.225891 0.236053 0.236053 0.236053 0.246094 0.246094 0.246094 0.255707 0.255707 0.255707 0.265350 0.265350 0.265350 0.274841 0.274841 0.274841 0.283905 0.283905 0.283905 0.292999 0.292999 0.292999 0.301941 0.301941 0.301941 0.310455 0.310455 0.310455 0.319000 0.319000 0.319000 0.327393 0.327393 0.327393 0.335419 0.335419 0.335419 0.343506 0.343506 0.343506 0.351166 0.351166 0.351166 0.358948 0.358948 0.358948 0.366547 0.366547 0.366547 0.373840 0.373840 0.373840 0.381195 0.381195 0.381195 0.388428 0.388428 0.388428 0.395416 0.395416 0.395416 0.402435 0.402435 0.402435 0.147614 0.147614 0.147614 0.156281 0.156281 0.156281 0.165222 0.165222 0.165222 0.174805 0.174805 0.174805 0.184753 0.184753 0.184753 0.194763 0.194763 0.194763 0.205109 0.205109 0.205109 0.215546 0.215546 0.215546 0.225647 0.225647 0.225647 0.235840 0.235840 0.235840 0.245636 0.245636 0.245636 0.255463 0.255463 0.255463 0.265106 0.265106 0.265106 0.274323 0.274323 0.274323 0.283661 0.283661 0.283661 0.292786 0.292786 0.292786 0.301483 0.301483 0.301483 0.310242 0.310242 0.310242 0.318817 0.318817 0.318817 0.326996 0.326996 0.326996 0.335205 0.335205 0.335205 0.343109 0.343109 0.343109 0.350983 0.350983 0.350983 0.358734 0.358734 0.358734 0.366180 0.366180 0.366180 0.373657 0.373657 0.373657 0.381012 0.381012 0.381012 0.388062 0.388062 0.388062 0.395203 0.395203 0.395203 0.402252 0.402252 0.402252 0.409058 0.409058 0.409058 0.415955 0.415955 0.415955 0.164978 0.164978 0.164978 0.174591 0.174591 0.174591 0.184265 0.184265 0.184265 0.194489 0.194489 0.194489 0.204865 0.204865 0.204865 0.215027 0.215027 0.215027 0.225372 0.225372 0.225372 0.235596 0.235596 0.235596 0.245361 0.245361 0.245361 0.255219 0.255219 0.255219 0.264618 0.264618 0.264618 0.274109 0.274109 0.274109 0.283417 0.283417 0.283417 0.292328 0.292328 0.292328 0.301270 0.301270 0.301270 0.310028 0.310028 0.310028 0.318390 0.318390 0.318390 0.326782 0.326782 0.326782 0.335022 0.335022 0.335022 0.342865 0.342865 0.342865 0.350800 0.350800 0.350800 0.358368 0.358368 0.358368 0.365967 0.365967 0.365967 0.373474 0.373474 0.373474 0.380615 0.380615 0.380615 0.387878 0.387878 0.387878 0.395020 0.395020 0.395020 0.401917 0.401917 0.401917 0.408905 0.408905 0.408905 0.415802 0.415802 0.415802 0.422455 0.422455 0.422455 0.429260 0.429260 0.429260 0.184021 0.184021 0.184021 0.194244 0.194244 0.194244 0.204346 0.204346 0.204346 0.214752 0.214752 0.214752 0.225128 0.225128 0.225128 0.235077 0.235077 0.235077 0.245117 0.245117 0.245117 0.254730 0.254730 0.254730 0.264404 0.264404 0.264404 0.273895 0.273895 0.273895 0.282990 0.282990 0.282990 0.292114 0.292114 0.292114 0.301056 0.301056 0.301056 0.309601 0.309601 0.309601 0.318176 0.318176 0.318176 0.326599 0.326599 0.326599 0.334625 0.334625 0.334625 0.342682 0.342682 0.342682 0.350372 0.350372 0.350372 0.358154 0.358154 0.358154 0.365784 0.365784 0.365784 0.373077 0.373077 0.373077 0.380463 0.380463 0.380463 0.387695 0.387695 0.387695 0.394684 0.394684 0.394684 0.401764 0.401764 0.401764 0.408722 0.408722 0.408722 0.415436 0.415436 0.415436 0.422272 0.422272 0.422272 0.428925 0.428925 0.428925 0.435699 0.435699 0.435699 0.442444 0.442444 0.442444 0.204102 0.204102 0.204102 0.214508 0.214508 0.214508 0.224609 0.224609 0.224609 0.234833 0.234833 0.234833 0.244843 0.244843 0.244843 0.254456 0.254456 0.254456 0.264160 0.264160 0.264160 0.273407 0.273407 0.273407 0.282745 0.282745 0.282745 0.291870 0.291870 0.291870 0.300598 0.300598 0.300598 0.309357 0.309357 0.309357 0.317932 0.317932 0.317932 0.326172 0.326172 0.326172 0.334412 0.334412 0.334412 0.342468 0.342468 0.342468 0.350189 0.350189 0.350189 0.357971 0.357971 0.357971 0.365417 0.365417 0.365417 0.372894 0.372894 0.372894 0.380280 0.380280 0.380280 0.387360 0.387360 0.387360 0.394501 0.394501 0.394501 0.401550 0.401550 0.401550 0.408386 0.408386 0.408386 0.415283 0.415283 0.415283 0.422119 0.422119 0.422119 0.428772 0.428772 0.428772 0.435516 0.435516 0.435516 0.442108 0.442108 0.442108 0.448883 0.448883 0.448883 0.455627 0.455627 0.455627 0.224335 0.224335 0.224335 0.234558 0.234558 0.234558 0.244354 0.244354 0.244354 0.254211 0.254211 0.254211 0.263672 0.263672 0.263672 0.273193 0.273193 0.273193 0.282501 0.282501 0.282501 0.291412 0.291412 0.291412 0.300385 0.300385 0.300385 0.309143 0.309143 0.309143 0.317535 0.317535 0.317535 0.325958 0.325958 0.325958 0.334167 0.334167 0.334167 0.342072 0.342072 0.342072 0.349976 0.349976 0.349976 0.357574 0.357574 0.357574 0.365204 0.365204 0.365204 0.372711 0.372711 0.372711 0.379883 0.379883 0.379883 0.387177 0.387177 0.387177 0.394318 0.394318 0.394318 0.401215 0.401215 0.401215 0.408203 0.408203 0.408203 0.415100 0.415100 0.415100 0.421753 0.421753 0.421753 0.428589 0.428589 0.428589 0.435181 0.435181 0.435181 0.441956 0.441956 0.441956 0.448700 0.448700 0.448700 0.455292 0.455292 0.455292 0.462036 0.462036 0.462036 0.468842 0.468842 0.468842 0.244110 0.244110 0.244110 0.253967 0.253967 0.253967 0.263428 0.263428 0.263428 0.272949 0.272949 0.272949 0.282043 0.282043 0.282043 0.291199 0.291199 0.291199 0.300140 0.300140 0.300140 0.308716 0.308716 0.308716 0.317291 0.317291 0.317291 0.325745 0.325745 0.325745 0.333801 0.333801 0.333801 0.341858 0.341858 0.341858 0.349823 0.349823 0.349823 0.357391 0.357391 0.357391 0.365051 0.365051 0.365051 0.372314 0.372314 0.372314 0.379700 0.379700 0.379700 0.386993 0.386993 0.386993 0.393982 0.393982 0.393982 0.401031 0.401031 0.401031 0.408020 0.408020 0.408020 0.414764 0.414764 0.414764 0.421631 0.421631 0.421631 0.428406 0.428406 0.428406 0.435028 0.435028 0.435028 0.441772 0.441772 0.441772 0.448364 0.448364 0.448364 0.455109 0.455109 0.455109 0.461884 0.461884 0.461884 0.468506 0.468506 0.468506 0.475342 0.475342 0.475342 0.482208 0.482208 0.482208 0.263184 0.263184 0.263184 0.272491 0.272491 0.272491 0.281830 0.281830 0.281830 0.290985 0.290985 0.290985 0.299713 0.299713 0.299713 0.308502 0.308502 0.308502 0.317108 0.317108 0.317108 0.325317 0.325317 0.325317 0.333588 0.333588 0.333588 0.341675 0.341675 0.341675 0.349396 0.349396 0.349396 0.357208 0.357208 0.357208 0.364655 0.364655 0.364655 0.372192 0.372192 0.372192 0.379547 0.379547 0.379547 0.386597 0.386597 0.386597 0.393768 0.393768 0.393768 0.400848 0.400848 0.400848 0.407684 0.407684 0.407684 0.414612 0.414612 0.414612 0.421448 0.421448 0.421448 0.428101 0.428101 0.428101 0.434875 0.434875 0.434875 0.441620 0.441620 0.441620 0.448212 0.448212 0.448212 0.454956 0.454956 0.454956 0.461548 0.461548 0.461548 0.468323 0.468323 0.468323 0.475159 0.475159 0.475159 0.481873 0.481873 0.481873 0.488831 0.488831 0.488831 0.495819 0.495819 0.495819 0.281586 0.281586 0.281586 0.290527 0.290527 0.290527 0.299500 0.299500 0.299500 0.308289 0.308289 0.308289 0.316681 0.316681 0.316681 0.325104 0.325104 0.325104 0.333374 0.333374 0.333374 0.341278 0.341278 0.341278 0.349213 0.349213 0.349213 0.356995 0.356995 0.356995 0.364471 0.364471 0.364471 0.371979 0.371979 0.371979 0.379181 0.379181 0.379181 0.386444 0.386444 0.386444 0.393616 0.393616 0.393616 0.400482 0.400482 0.400482 0.407501 0.407501 0.407501 0.414429 0.414429 0.414429 0.421112 0.421112 0.421112 0.427887 0.427887 0.427887 0.434692 0.434692 0.434692 0.441284 0.441284 0.441284 0.448029 0.448029 0.448029 0.454590 0.454590 0.454590 0.461365 0.461365 0.461365 0.468140 0.468140 0.468140 0.474823 0.474823 0.474823 0.481689 0.481689 0.481689 0.488617 0.488617 0.488617 0.495483 0.495483 0.495483 0.502533 0.502533 0.502533 0.509735 0.509735 0.509735 0.299255 0.299255 0.299255 0.307861 0.307861 0.307861 0.316467 0.316467 0.316467 0.324890 0.324890 0.324890 0.332977 0.332977 0.332977 0.341064 0.341064 0.341064 0.349030 0.349030 0.349030 0.356598 0.356598 0.356598 0.364258 0.364258 0.364258 0.371613 0.371613 0.371613 0.378967 0.378967 0.378967 0.386261 0.386261 0.386261 0.393250 0.393250 0.393250 0.400360 0.400360 0.400360 0.407318 0.407318 0.407318 0.414062 0.414062 0.414062 0.420929 0.420929 0.420929 0.427734 0.427734 0.427734 0.434357 0.434357 0.434357 0.441101 0.441101 0.441101 0.447845 0.447845 0.447845 0.454437 0.454437 0.454437 0.461212 0.461212 0.461212 0.467834 0.467834 0.467834 0.474640 0.474640 0.474640 0.481506 0.481506 0.481506 0.488281 0.488281 0.488281 0.495270 0.495270 0.495270 0.502380 0.502380 0.502380 0.509369 0.509369 0.509369 0.516663 0.516663 0.516663 0.524017 0.524017 0.524017 0.316254 0.316254 0.316254 0.324493 0.324493 0.324493 0.332764 0.332764 0.332764 0.340881 0.340881 0.340881 0.348633 0.348633 0.348633 0.356445 0.356445 0.356445 0.364105 0.364105 0.364105 0.371399 0.371399 0.371399 0.378815 0.378815 0.378815 0.385925 0.385925 0.385925 0.393097 0.393097 0.393097 0.400146 0.400146 0.400146 0.406982 0.406982 0.406982 0.413879 0.413879 0.413879 0.420776 0.420776 0.420776 0.427399 0.427399 0.427399 0.434204 0.434204 0.434204 0.440948 0.440948 0.440948 0.447510 0.447510 0.447510 0.454254 0.454254 0.454254 0.460846 0.460846 0.460846 0.467651 0.467651 0.467651 0.474457 0.474457 0.474457 0.481201 0.481201 0.481201 0.488098 0.488098 0.488098 0.495087 0.495087 0.495087 0.502014 0.502014 0.502014 0.509186 0.509186 0.509186 0.516449 0.516449 0.516449 0.523651 0.523651 0.523651 0.531158 0.531158 0.531158 0.538574 0.538574 0.538574 0.332581 0.332581 0.332581 0.340485 0.340485 0.340485 0.348419 0.348419 0.348419 0.356232 0.356232 0.356232 0.363708 0.363708 0.363708 0.371246 0.371246 0.371246 0.378448 0.378448 0.378448 0.385742 0.385742 0.385742 0.392883 0.392883 0.392883 0.399811 0.399811 0.399811 0.406799 0.406799 0.406799 0.413727 0.413727 0.413727 0.420410 0.420410 0.420410 0.427246 0.427246 0.427246 0.433990 0.433990 0.433990 0.440582 0.440582 0.440582 0.447357 0.447357 0.447357 0.454102 0.454102 0.454102 0.460693 0.460693 0.460693 0.467468 0.467468 0.467468 0.474121 0.474121 0.474121 0.481018 0.481018 0.481018 0.487915 0.487915 0.487915 0.494781 0.494781 0.494781 0.501862 0.501862 0.501862 0.509003 0.509003 0.509003 0.516113 0.516113 0.516113 0.523468 0.523468 0.523468 0.530945 0.530945 0.530945 0.538361 0.538361 0.538361 0.546112 0.546112 0.546112 0.553772 0.553772 0.553772 0.348236 0.348236 0.348236 0.355835 0.355835 0.355835 0.363495 0.363495 0.363495 0.371033 0.371033 0.371033 0.378265 0.378265 0.378265 0.385559 0.385559 0.385559 0.392731 0.392731 0.392731 0.399628 0.399628 0.399628 0.406616 0.406616 0.406616 0.413361 0.413361 0.413361 0.420227 0.420227 0.420227 0.427063 0.427063 0.427063 0.433685 0.433685 0.433685 0.440430 0.440430 0.440430 0.447205 0.447205 0.447205 0.453766 0.453766 0.453766 0.460541 0.460541 0.460541 0.467316 0.467316 0.467316 0.473938 0.473938 0.473938 0.480835 0.480835 0.480835 0.487579 0.487579 0.487579 0.494568 0.494568 0.494568 0.501678 0.501678 0.501678 0.508636 0.508636 0.508636 0.515900 0.515900 0.515900 0.523285 0.523285 0.523285 0.530579 0.530579 0.530579 0.538177 0.538177 0.538177 0.545898 0.545898 0.545898 0.553558 0.553558 0.553558 0.561554 0.561554 0.561554 0.569458 0.569458 0.569458 0.363312 0.363312 0.363312 0.370667 0.370667 0.370667 0.378082 0.378082 0.378082 0.385376 0.385376 0.385376 0.392365 0.392365 0.392365 0.399445 0.399445 0.399445 0.406281 0.406281 0.406281 0.413208 0.413208 0.413208 0.420074 0.420074 0.420074 0.426727 0.426727 0.426727 0.433502 0.433502 0.433502 0.440277 0.440277 0.440277 0.446838 0.446838 0.446838 0.453613 0.453613 0.453613 0.460358 0.460358 0.460358 0.466949 0.466949 0.466949 0.473785 0.473785 0.473785 0.480682 0.480682 0.480682 0.487427 0.487427 0.487427 0.494415 0.494415 0.494415 0.501312 0.501312 0.501312 0.508453 0.508453 0.508453 0.515747 0.515747 0.515747 0.522888 0.522888 0.522888 0.530396 0.530396 0.530396 0.537964 0.537964 0.537964 0.545502 0.545502 0.545502 0.553375 0.553375 0.553375 0.561157 0.561157 0.561157 0.569244 0.569244 0.569244 0.577515 0.577515 0.577515 0.585663 0.585663 0.585663 0.377899 0.377899 0.377899 0.385010 0.385010 0.385010 0.392181 0.392181 0.392181 0.399292 0.399292 0.399292 0.406097 0.406097 0.406097 0.413055 0.413055 0.413055 0.419708 0.419708 0.419708 0.426544 0.426544 0.426544 0.433319 0.433319 0.433319 0.439941 0.439941 0.439941 0.446686 0.446686 0.446686 0.453430 0.453430 0.453430 0.460022 0.460022 0.460022 0.466797 0.466797 0.466797 0.473633 0.473633 0.473633 0.480316 0.480316 0.480316 0.487244 0.487244 0.487244 0.494049 0.494049 0.494049 0.501129 0.501129 0.501129 0.508301 0.508301 0.508301 0.515381 0.515381 0.515381 0.522736 0.522736 0.522736 0.530212 0.530212 0.530212 0.537598 0.537598 0.537598 0.545319 0.545319 0.545319 0.553162 0.553162 0.553162 0.560944 0.560944 0.560944 0.569061 0.569061 0.569061 0.577118 0.577118 0.577118 0.585449 0.585449 0.585449 0.593964 0.593964 0.593964 0.602325 0.602325 0.602325 0.392029 0.392029 0.392029 0.398926 0.398926 0.398926 0.405914 0.405914 0.405914 0.412689 0.412689 0.412689 0.419556 0.419556 0.419556 0.426392 0.426392 0.426392 0.432983 0.432983 0.432983 0.439758 0.439758 0.439758 0.446503 0.446503 0.446503 0.453064 0.453064 0.453064 0.459869 0.459869 0.459869 0.466614 0.466614 0.466614 0.473297 0.473297 0.473297 0.480164 0.480164 0.480164 0.486908 0.486908 0.486908 0.493896 0.493896 0.493896 0.500946 0.500946 0.500946 0.507935 0.507935 0.507935 0.515198 0.515198 0.515198 0.522552 0.522552 0.522552 0.529816 0.529816 0.529816 0.537415 0.537415 0.537415 0.545135 0.545135 0.545135 0.552734 0.552734 0.552734 0.560760 0.560760 0.560760 0.568817 0.568817 0.568817 0.576874 0.576874 0.576874 0.585266 0.585266 0.585266 0.593536 0.593536 0.593536 0.602081 0.602081 0.602081 0.610748 0.610748 0.610748 0.619232 0.619232 0.619232 0.405762 0.405762 0.405762 0.412537 0.412537 0.412537 0.419403 0.419403 0.419403 0.426056 0.426056 0.426056 0.432831 0.432831 0.432831 0.439606 0.439606 0.439606 0.446167 0.446167 0.446167 0.452911 0.452911 0.452911 0.459656 0.459656 0.459656 0.466278 0.466278 0.466278 0.473114 0.473114 0.473114 0.479950 0.479950 0.479950 0.486694 0.486694 0.486694 0.493683 0.493683 0.493683 0.500610 0.500610 0.500610 0.507751 0.507751 0.507751 0.514984 0.514984 0.514984 0.522186 0.522186 0.522186 0.529633 0.529633 0.529633 0.537201 0.537201 0.537201 0.544739 0.544739 0.544739 0.552582 0.552582 0.552582 0.560516 0.560516 0.560516 0.568451 0.568451 0.568451 0.576691 0.576691 0.576691 0.584839 0.584839 0.584839 0.593323 0.593323 0.593323 0.601898 0.601898 0.601898 0.610321 0.610321 0.610321 0.619049 0.619049 0.619049 0.627747 0.627747 0.627747 0.636322 0.636322 0.636322 0.419037 0.419037 0.419037 0.425873 0.425873 0.425873 0.432648 0.432648 0.432648 0.439270 0.439270 0.439270 0.446014 0.446014 0.446014 0.452728 0.452728 0.452728 0.459320 0.459320 0.459320 0.466125 0.466125 0.466125 0.472931 0.472931 0.472931 0.479614 0.479614 0.479614 0.486542 0.486542 0.486542 0.493378 0.493378 0.493378 0.500427 0.500427 0.500427 0.507568 0.507568 0.507568 0.514618 0.514618 0.514618 0.521973 0.521973 0.521973 0.529449 0.529449 0.529449 0.536835 0.536835 0.536835 0.544525 0.544525 0.544525 0.552368 0.552368 0.552368 0.560120 0.560120 0.560120 0.568237 0.568237 0.568237 0.576477 0.576477 0.576477 0.584656 0.584656 0.584656 0.593079 0.593079 0.593079 0.601440 0.601440 0.601440 0.610107 0.610107 0.610107 0.618805 0.618805 0.618805 0.627319 0.627319 0.627319 0.636078 0.636078 0.636078 0.644836 0.644836 0.644836 0.653320 0.653320 0.653320 0.432312 0.432312 0.432312 0.439087 0.439087 0.439087 0.445831 0.445831 0.445831 0.452393 0.452393 0.452393 0.459167 0.459167 0.459167 0.465942 0.465942 0.465942 0.472595 0.472595 0.472595 0.479462 0.479462 0.479462 0.486359 0.486359 0.486359 0.493195 0.493195 0.493195 0.500244 0.500244 0.500244 0.507202 0.507202 0.507202 0.514465 0.514465 0.514465 0.521820 0.521820 0.521820 0.529083 0.529083 0.529083 0.536621 0.536621 0.536621 0.544342 0.544342 0.544342 0.551971 0.551971 0.551971 0.559937 0.559937 0.559937 0.568024 0.568024 0.568024 0.576080 0.576080 0.576080 0.584412 0.584412 0.584412 0.592682 0.592682 0.592682 0.601257 0.601257 0.601257 0.609894 0.609894 0.609894 0.618378 0.618378 0.618378 0.627106 0.627106 0.627106 0.635864 0.635864 0.635864 0.644379 0.644379 0.644379 0.653137 0.653137 0.653137 0.661804 0.661804 0.661804 0.670227 0.670227 0.670227 0.445496 0.445496 0.445496 0.452271 0.452271 0.452271 0.459015 0.459015 0.459015 0.465607 0.465607 0.465607 0.472412 0.472412 0.472412 0.479279 0.479279 0.479279 0.486023 0.486023 0.486023 0.493011 0.493011 0.493011 0.499878 0.499878 0.499878 0.507050 0.507050 0.507050 0.514282 0.514282 0.514282 0.521423 0.521423 0.521423 0.528870 0.528870 0.528870 0.536438 0.536438 0.536438 0.543945 0.543945 0.543945 0.551788 0.551788 0.551788 0.559753 0.559753 0.559753 0.567627 0.567627 0.567627 0.575867 0.575867 0.575867 0.584198 0.584198 0.584198 0.592438 0.592438 0.592438 0.601013 0.601013 0.601013 0.609467 0.609467 0.609467 0.618134 0.618134 0.618134 0.626862 0.626862 0.626862 0.635406 0.635406 0.635406 0.644196 0.644196 0.644196 0.652924 0.652924 0.652924 0.661377 0.661377 0.661377 0.670044 0.670044 0.670044 0.678650 0.678650 0.678650 0.686920 0.686920 0.686920 0.458649 0.458649 0.458649 0.465454 0.465454 0.465454 0.472260 0.472260 0.472260 0.478943 0.478943 0.478943 0.485870 0.485870 0.485870 0.492828 0.492828 0.492828 0.499695 0.499695 0.499695 0.506836 0.506836 0.506836 0.513885 0.513885 0.513885 0.521240 0.521240 0.521240 0.528687 0.528687 0.528687 0.536072 0.536072 0.536072 0.543762 0.543762 0.543762 0.551575 0.551575 0.551575 0.559326 0.559326 0.559326 0.567383 0.567383 0.567383 0.575653 0.575653 0.575653 0.583771 0.583771 0.583771 0.592255 0.592255 0.592255 0.600616 0.600616 0.600616 0.609253 0.609253 0.609253 0.617950 0.617950 0.617950 0.626465 0.626465 0.626465 0.635193 0.635193 0.635193 0.643982 0.643982 0.643982 0.652466 0.652466 0.652466 0.661194 0.661194 0.661194 0.669800 0.669800 0.669800 0.678162 0.678162 0.678162 0.686676 0.686676 0.686676 0.694885 0.694885 0.694885 0.703156 0.703156 0.703156 0.471893 0.471893 0.471893 0.478760 0.478760 0.478760 0.485687 0.485687 0.485687 0.492493 0.492493 0.492493 0.499512 0.499512 0.499512 0.506500 0.506500 0.506500 0.513702 0.513702 0.513702 0.521057 0.521057 0.521057 0.528320 0.528320 0.528320 0.535858 0.535858 0.535858 0.543579 0.543579 0.543579 0.551178 0.551178 0.551178 0.559113 0.559113 0.559113 0.567200 0.567200 0.567200 0.575195 0.575195 0.575195 0.583557 0.583557 0.583557 0.592041 0.592041 0.592041 0.600372 0.600372 0.600372 0.609009 0.609009 0.609009 0.617493 0.617493 0.617493 0.626221 0.626221 0.626221 0.635010 0.635010 0.635010 0.643524 0.643524 0.643524 0.652252 0.652252 0.652252 0.660980 0.660980 0.660980 0.669403 0.669403 0.669403 0.677979 0.677979 0.677979 0.686493 0.686493 0.686493 0.694672 0.694672 0.694672 0.702972 0.702972 0.702972 0.710938 0.710938 0.710938 0.718964 0.718964 0.718964 0.485321 0.485321 0.485321 0.492310 0.492310 0.492310 0.499329 0.499329 0.499329 0.506317 0.506317 0.506317 0.513519 0.513519 0.513519 0.520660 0.520660 0.520660 0.528137 0.528137 0.528137 0.535706 0.535706 0.535706 0.543182 0.543182 0.543182 0.550995 0.550995 0.550995 0.558929 0.558929 0.558929 0.566803 0.566803 0.566803 0.575012 0.575012 0.575012 0.583374 0.583374 0.583374 0.591614 0.591614 0.591614 0.600159 0.600159 0.600159 0.608582 0.608582 0.608582 0.617279 0.617279 0.617279 0.626038 0.626038 0.626038 0.634521 0.634521 0.634521 0.643311 0.643311 0.643311 0.652039 0.652039 0.652039 0.660522 0.660522 0.660522 0.669159 0.669159 0.669159 0.677734 0.677734 0.677734 0.686035 0.686035 0.686035 0.694458 0.694458 0.694458 0.702545 0.702545 0.702545 0.710724 0.710724 0.710724 0.718750 0.718750 0.718750 0.726440 0.726440 0.726440 0.734192 0.734192 0.734192 0.498993 0.498993 0.498993 0.506134 0.506134 0.506134 0.513367 0.513367 0.513367 0.520508 0.520508 0.520508 0.527954 0.527954 0.527954 0.535339 0.535339 0.535339 0.542999 0.542999 0.542999 0.550781 0.550781 0.550781 0.558563 0.558563 0.558563 0.566589 0.566589 0.566589 0.574799 0.574799 0.574799 0.582947 0.582947 0.582947 0.591400 0.591400 0.591400 0.599731 0.599731 0.599731 0.608368 0.608368 0.608368 0.617065 0.617065 0.617065 0.625580 0.625580 0.625580 0.634308 0.634308 0.634308 0.643066 0.643066 0.643066 0.651611 0.651611 0.651611 0.660309 0.660309 0.660309 0.668945 0.668945 0.668945 0.677338 0.677338 0.677338 0.685822 0.685822 0.685822 0.694244 0.694244 0.694244 0.702362 0.702362 0.702362 0.710510 0.710510 0.710510 0.718353 0.718353 0.718353 0.726257 0.726257 0.726257 0.733978 0.733978 0.733978 0.741333 0.741333 0.741333 0.748688 0.748688 0.748688 0.513000 0.513000 0.513000 0.520325 0.520325 0.520325 0.527557 0.527557 0.527557 0.535126 0.535126 0.535126 0.542786 0.542786 0.542786 0.550385 0.550385 0.550385 0.558319 0.558319 0.558319 0.566376 0.566376 0.566376 0.574402 0.574402 0.574402 0.582703 0.582703 0.582703 0.591187 0.591187 0.591187 0.599518 0.599518 0.599518 0.608154 0.608154 0.608154 0.616638 0.616638 0.616638 0.625336 0.625336 0.625336 0.634125 0.634125 0.634125 0.642670 0.642670 0.642670 0.651367 0.651367 0.651367 0.660095 0.660095 0.660095 0.668518 0.668518 0.668518 0.677094 0.677094 0.677094 0.685638 0.685638 0.685638 0.693817 0.693817 0.693817 0.702118 0.702118 0.702118 0.710114 0.710114 0.710114 0.718140 0.718140 0.718140 0.726044 0.726044 0.726044 0.733582 0.733582 0.733582 0.741150 0.741150 0.741150 0.748474 0.748474 0.748474 0.755493 0.755493 0.755493 0.762451 0.762451 0.762451 0.527374 0.527374 0.527374 0.534943 0.534943 0.534943 0.542389 0.542389 0.542389 0.550201 0.550201 0.550201 0.558136 0.558136 0.558136 0.565979 0.565979 0.565979 0.574188 0.574188 0.574188 0.582520 0.582520 0.582520 0.590759 0.590759 0.590759 0.599304 0.599304 0.599304 0.607941 0.607941 0.607941 0.616394 0.616394 0.616394 0.625153 0.625153 0.625153 0.633667 0.633667 0.633667 0.642426 0.642426 0.642426 0.651154 0.651154 0.651154 0.659637 0.659637 0.659637 0.668304 0.668304 0.668304 0.676880 0.676880 0.676880 0.685211 0.685211 0.685211 0.693634 0.693634 0.693634 0.701904 0.701904 0.701904 0.709900 0.709900 0.709900 0.717957 0.717957 0.717957 0.725677 0.725677 0.725677 0.733398 0.733398 0.733398 0.740967 0.740967 0.740967 0.748138 0.748138 0.748138 0.755341 0.755341 0.755341 0.762268 0.762268 0.762268 0.768829 0.768829 0.768829 0.775360 0.775360 0.775360 0.542206 0.542206 0.542206 0.550018 0.550018 0.550018 0.557709 0.557709 0.557709 0.565765 0.565765 0.565765 0.573975 0.573975 0.573975 0.582092 0.582092 0.582092 0.590546 0.590546 0.590546 0.599091 0.599091 0.599091 0.607513 0.607513 0.607513 0.616211 0.616211 0.616211 0.624695 0.624695 0.624695 0.633453 0.633453 0.633453 0.642181 0.642181 0.642181 0.650726 0.650726 0.650726 0.659424 0.659424 0.659424 0.668091 0.668091 0.668091 0.676483 0.676483 0.676483 0.684998 0.684998 0.684998 0.693420 0.693420 0.693420 0.701508 0.701508 0.701508 0.709686 0.709686 0.709686 0.717560 0.717560 0.717560 0.725464 0.725464 0.725464 0.733215 0.733215 0.733215 0.740570 0.740570 0.740570 0.747955 0.747955 0.747955 0.755127 0.755127 0.755127 0.761932 0.761932 0.761932 0.768707 0.768707 0.768707 0.775208 0.775208 0.775208 0.781342 0.781342 0.781342 0.787415 0.787415 0.787415 0.557526 0.557526 0.557526 0.565582 0.565582 0.565582 0.573578 0.573578 0.573578 0.581909 0.581909 0.581909 0.590332 0.590332 0.590332 0.598663 0.598663 0.598663 0.607269 0.607269 0.607269 0.615967 0.615967 0.615967 0.624481 0.624481 0.624481 0.633240 0.633240 0.633240 0.641785 0.641785 0.641785 0.650513 0.650513 0.650513 0.659210 0.659210 0.659210 0.667664 0.667664 0.667664 0.676300 0.676300 0.676300 0.684753 0.684753 0.684753 0.693024 0.693024 0.693024 0.701324 0.701324 0.701324 0.709503 0.709503 0.709503 0.717377 0.717377 0.717377 0.725250 0.725250 0.725250 0.732819 0.732819 0.732819 0.740387 0.740387 0.740387 0.747742 0.747742 0.747742 0.754791 0.754791 0.754791 0.761749 0.761749 0.761749 0.768524 0.768524 0.768524 0.774902 0.774902 0.774902 0.781189 0.781189 0.781189 0.787262 0.787262 0.787262 0.792908 0.792908 0.792908 0.798492 0.798492 0.798492 0.086090 0.086090 0.086090 0.091187 0.091187 0.091187 0.096649 0.096649 0.096649 0.102417 0.102417 0.102417 0.108307 0.108307 0.108307 0.114716 0.114716 0.114716 0.121460 0.121460 0.121460 0.128387 0.128387 0.128387 0.135895 0.135895 0.135895 0.143860 0.143860 0.143860 0.152100 0.152100 0.152100 0.161011 0.161011 0.161011 0.170197 0.170197 0.170197 0.179993 0.179993 0.179993 0.190094 0.190094 0.190094 0.200165 0.200165 0.200165 0.210602 0.210602 0.210602 0.220978 0.220978 0.220978 0.231018 0.231018 0.231018 0.241119 0.241119 0.241119 0.251038 0.251038 0.251038 0.260559 0.260559 0.260559 0.270142 0.270142 0.270142 0.279510 0.279510 0.279510 0.288483 0.288483 0.288483 0.297485 0.297485 0.297485 0.306122 0.306122 0.306122 0.314728 0.314728 0.314728 0.323242 0.323242 0.323242 0.331329 0.331329 0.331329 0.339478 0.339478 0.339478 0.347443 0.347443 0.347443 0.096527 0.096527 0.096527 0.102112 0.102112 0.102112 0.108185 0.108185 0.108185 0.114532 0.114532 0.114532 0.121094 0.121094 0.121094 0.128204 0.128204 0.128204 0.135712 0.135712 0.135712 0.143463 0.143463 0.143463 0.151886 0.151886 0.151886 0.160767 0.160767 0.160767 0.169952 0.169952 0.169952 0.179749 0.179749 0.179749 0.189606 0.189606 0.189606 0.199921 0.199921 0.199921 0.210327 0.210327 0.210327 0.220459 0.220459 0.220459 0.230774 0.230774 0.230774 0.240875 0.240875 0.240875 0.250549 0.250549 0.250549 0.260315 0.260315 0.260315 0.269867 0.269867 0.269867 0.279053 0.279053 0.279053 0.288239 0.288239 0.288239 0.297028 0.297028 0.297028 0.305878 0.305878 0.305878 0.314545 0.314545 0.314545 0.322815 0.322815 0.322815 0.331116 0.331116 0.331116 0.339264 0.339264 0.339264 0.347046 0.347046 0.347046 0.354889 0.354889 0.354889 0.362579 0.362579 0.362579 0.108002 0.108002 0.108002 0.114227 0.114227 0.114227 0.120941 0.120941 0.120941 0.128021 0.128021 0.128021 0.135315 0.135315 0.135315 0.143250 0.143250 0.143250 0.151642 0.151642 0.151642 0.160339 0.160339 0.160339 0.169708 0.169708 0.169708 0.179260 0.179260 0.179260 0.189301 0.189301 0.189301 0.199677 0.199677 0.199677 0.209808 0.209808 0.209808 0.220215 0.220215 0.220215 0.230530 0.230530 0.230530 0.240356 0.240356 0.240356 0.250305 0.250305 0.250305 0.260040 0.260040 0.260040 0.269379 0.269379 0.269379 0.278809 0.278809 0.278809 0.288025 0.288025 0.288025 0.296783 0.296783 0.296783 0.305664 0.305664 0.305664 0.314117 0.314117 0.314117 0.322601 0.322601 0.322601 0.330902 0.330902 0.330902 0.338837 0.338837 0.338837 0.346863 0.346863 0.346863 0.354675 0.354675 0.354675 0.362183 0.362183 0.362183 0.369751 0.369751 0.369751 0.377136 0.377136 0.377136 0.120758 0.120758 0.120758 0.127686 0.127686 0.127686 0.135162 0.135162 0.135162 0.143066 0.143066 0.143066 0.151215 0.151215 0.151215 0.160095 0.160095 0.160095 0.169464 0.169464 0.169464 0.179016 0.179016 0.179016 0.189056 0.189056 0.189056 0.199158 0.199158 0.199158 0.209564 0.209564 0.209564 0.219940 0.219940 0.219940 0.230011 0.230011 0.230011 0.240112 0.240112 0.240112 0.250031 0.250031 0.250031 0.259583 0.259583 0.259583 0.269135 0.269135 0.269135 0.278564 0.278564 0.278564 0.287567 0.287567 0.287567 0.296600 0.296600 0.296600 0.305206 0.305206 0.305206 0.313904 0.313904 0.313904 0.322388 0.322388 0.322388 0.330505 0.330505 0.330505 0.338684 0.338684 0.338684 0.346649 0.346649 0.346649 0.354279 0.354279 0.354279 0.362000 0.362000 0.362000 0.369568 0.369568 0.369568 0.376770 0.376770 0.376770 0.384094 0.384094 0.384094 0.391113 0.391113 0.391113 0.134949 0.134949 0.134949 0.142639 0.142639 0.142639 0.151001 0.151001 0.151001 0.159882 0.159882 0.159882 0.169006 0.169006 0.169006 0.178772 0.178772 0.178772 0.188568 0.188568 0.188568 0.198914 0.198914 0.198914 0.209290 0.209290 0.209290 0.219452 0.219452 0.219452 0.229736 0.229736 0.229736 0.239868 0.239868 0.239868 0.249542 0.249542 0.249542 0.259338 0.259338 0.259338 0.268921 0.268921 0.268921 0.278107 0.278107 0.278107 0.287323 0.287323 0.287323 0.296387 0.296387 0.296387 0.304993 0.304993 0.304993 0.313690 0.313690 0.313690 0.321960 0.321960 0.321960 0.330322 0.330322 0.330322 0.338470 0.338470 0.338470 0.346252 0.346252 0.346252 0.354095 0.354095 0.354095 0.361816 0.361816 0.361816 0.369171 0.369171 0.369171 0.376587 0.376587 0.376587 0.383911 0.383911 0.383911 0.390961 0.390961 0.390961 0.398010 0.398010 0.398010 0.404907 0.404907 0.404907 0.150787 0.150787 0.150787 0.159454 0.159454 0.159454 0.168762 0.168762 0.168762 0.178528 0.178528 0.178528 0.188324 0.188324 0.188324 0.198639 0.198639 0.198639 0.208771 0.208771 0.208771 0.219177 0.219177 0.219177 0.229462 0.229462 0.229462 0.239349 0.239349 0.239349 0.249329 0.249329 0.249329 0.259094 0.259094 0.259094 0.268463 0.268463 0.268463 0.277863 0.277863 0.277863 0.287109 0.287109 0.287109 0.295898 0.295898 0.295898 0.304810 0.304810 0.304810 0.313263 0.313263 0.313263 0.321747 0.321747 0.321747 0.330109 0.330109 0.330109 0.338043 0.338043 0.338043 0.346069 0.346069 0.346069 0.353912 0.353912 0.353912 0.361420 0.361420 0.361420 0.368988 0.368988 0.368988 0.376434 0.376434 0.376434 0.383545 0.383545 0.383545 0.390747 0.390747 0.390747 0.397705 0.397705 0.397705 0.404724 0.404724 0.404724 0.411652 0.411652 0.411652 0.418365 0.418365 0.418365 0.168518 0.168518 0.168518 0.178009 0.178009 0.178009 0.188080 0.188080 0.188080 0.198120 0.198120 0.198120 0.208527 0.208527 0.208527 0.218933 0.218933 0.218933 0.228973 0.228973 0.228973 0.239136 0.239136 0.239136 0.249084 0.249084 0.249084 0.258606 0.258606 0.258606 0.268219 0.268219 0.268219 0.277618 0.277618 0.277618 0.286652 0.286652 0.286652 0.295715 0.295715 0.295715 0.304352 0.304352 0.304352 0.313049 0.313049 0.313049 0.321564 0.321564 0.321564 0.329712 0.329712 0.329712 0.337860 0.337860 0.337860 0.345886 0.345886 0.345886 0.353516 0.353516 0.353516 0.361267 0.361267 0.361267 0.368805 0.368805 0.368805 0.376068 0.376068 0.376068 0.383362 0.383362 0.383362 0.390594 0.390594 0.390594 0.397522 0.397522 0.397522 0.404510 0.404510 0.404510 0.411316 0.411316 0.411316 0.418182 0.418182 0.418182 0.425018 0.425018 0.425018 0.431641 0.431641 0.431641 0.187805 0.187805 0.187805 0.197845 0.197845 0.197845 0.208252 0.208252 0.208252 0.218414 0.218414 0.218414 0.228699 0.228699 0.228699 0.238892 0.238892 0.238892 0.248596 0.248596 0.248596 0.258362 0.258362 0.258362 0.267975 0.267975 0.267975 0.277161 0.277161 0.277161 0.286407 0.286407 0.286407 0.295471 0.295471 0.295471 0.304138 0.304138 0.304138 0.312836 0.312836 0.312836 0.321167 0.321167 0.321167 0.329468 0.329468 0.329468 0.337677 0.337677 0.337677 0.345459 0.345459 0.345459 0.353363 0.353363 0.353363 0.361053 0.361053 0.361053 0.368408 0.368408 0.368408 0.375854 0.375854 0.375854 0.383179 0.383179 0.383179 0.390228 0.390228 0.390228 0.397339 0.397339 0.397339 0.404175 0.404175 0.404175 0.411133 0.411133 0.411133 0.417999 0.417999 0.417999 0.424683 0.424683 0.424683 0.431488 0.431488 0.431488 0.438263 0.438263 0.438263 0.444824 0.444824 0.444824 0.207733 0.207733 0.207733 0.218140 0.218140 0.218140 0.228455 0.228455 0.228455 0.238373 0.238373 0.238373 0.248352 0.248352 0.248352 0.258118 0.258118 0.258118 0.267517 0.267517 0.267517 0.276917 0.276917 0.276917 0.286194 0.286194 0.286194 0.295013 0.295013 0.295013 0.303925 0.303925 0.303925 0.312378 0.312378 0.312378 0.320923 0.320923 0.320923 0.329285 0.329285 0.329285 0.337250 0.337250 0.337250 0.345306 0.345306 0.345306 0.353149 0.353149 0.353149 0.360657 0.360657 0.360657 0.368225 0.368225 0.368225 0.375702 0.375702 0.375702 0.382843 0.382843 0.382843 0.390045 0.390045 0.390045 0.397186 0.397186 0.397186 0.403992 0.403992 0.403992 0.410980 0.410980 0.410980 0.417664 0.417664 0.417664 0.424500 0.424500 0.424500 0.431305 0.431305 0.431305 0.437897 0.437897 0.437897 0.444641 0.444641 0.444641 0.451416 0.451416 0.451416 0.457977 0.457977 0.457977 0.227966 0.227966 0.227966 0.238098 0.238098 0.238098 0.248108 0.248108 0.248108 0.257629 0.257629 0.257629 0.267273 0.267273 0.267273 0.276703 0.276703 0.276703 0.285736 0.285736 0.285736 0.294830 0.294830 0.294830 0.303680 0.303680 0.303680 0.312195 0.312195 0.312195 0.320709 0.320709 0.320709 0.328827 0.328827 0.328827 0.337036 0.337036 0.337036 0.345062 0.345062 0.345062 0.352722 0.352722 0.352722 0.360474 0.360474 0.360474 0.368042 0.368042 0.368042 0.375336 0.375336 0.375336 0.382660 0.382660 0.382660 0.389862 0.389862 0.389862 0.396820 0.396820 0.396820 0.403839 0.403839 0.403839 0.410614 0.410614 0.410614 0.417480 0.417480 0.417480 0.424347 0.424347 0.424347 0.430969 0.430969 0.430969 0.437744 0.437744 0.437744 0.444489 0.444489 0.444489 0.451080 0.451080 0.451080 0.457825 0.457825 0.457825 0.464600 0.464600 0.464600 0.471222 0.471222 0.471222 0.247589 0.247589 0.247589 0.257385 0.257385 0.257385 0.267059 0.267059 0.267059 0.276245 0.276245 0.276245 0.285492 0.285492 0.285492 0.294586 0.294586 0.294586 0.303253 0.303253 0.303253 0.311981 0.311981 0.311981 0.320496 0.320496 0.320496 0.328674 0.328674 0.328674 0.336853 0.336853 0.336853 0.344666 0.344666 0.344666 0.352539 0.352539 0.352539 0.360260 0.360260 0.360260 0.367676 0.367676 0.367676 0.375122 0.375122 0.375122 0.382446 0.382446 0.382446 0.389526 0.389526 0.389526 0.396637 0.396637 0.396637 0.403656 0.403656 0.403656 0.410461 0.410461 0.410461 0.417328 0.417328 0.417328 0.424011 0.424011 0.424011 0.430817 0.430817 0.430817 0.437592 0.437592 0.437592 0.444153 0.444153 0.444153 0.450897 0.450897 0.450897 0.457642 0.457642 0.457642 0.464233 0.464233 0.464233 0.471069 0.471069 0.471069 0.477936 0.477936 0.477936 0.484650 0.484650 0.484650 0.266541 0.266541 0.266541 0.276001 0.276001 0.276001 0.285248 0.285248 0.285248 0.294128 0.294128 0.294128 0.303009 0.303009 0.303009 0.311737 0.311737 0.311737 0.320099 0.320099 0.320099 0.328461 0.328461 0.328461 0.336426 0.336426 0.336426 0.344482 0.344482 0.344482 0.352325 0.352325 0.352325 0.359894 0.359894 0.359894 0.367462 0.367462 0.367462 0.374969 0.374969 0.374969 0.382080 0.382080 0.382080 0.389313 0.389313 0.389313 0.396454 0.396454 0.396454 0.403320 0.403320 0.403320 0.410278 0.410278 0.410278 0.416962 0.416962 0.416962 0.423828 0.423828 0.423828 0.430603 0.430603 0.430603 0.437225 0.437225 0.437225 0.443970 0.443970 0.443970 0.450714 0.450714 0.450714 0.457306 0.457306 0.457306 0.464081 0.464081 0.464081 0.470886 0.470886 0.470886 0.477570 0.477570 0.477570 0.484467 0.484467 0.484467 0.491272 0.491272 0.491272 0.498291 0.498291 0.498291 0.284821 0.284821 0.284821 0.293915 0.293915 0.293915 0.302795 0.302795 0.302795 0.311310 0.311310 0.311310 0.319855 0.319855 0.319855 0.328247 0.328247 0.328247 0.336243 0.336243 0.336243 0.344269 0.344269 0.344269 0.351959 0.351959 0.351959 0.359711 0.359711 0.359711 0.367310 0.367310 0.367310 0.374573 0.374573 0.374573 0.381927 0.381927 0.381927 0.389160 0.389160 0.389160 0.396088 0.396088 0.396088 0.403168 0.403168 0.403168 0.410095 0.410095 0.410095 0.416840 0.416840 0.416840 0.423676 0.423676 0.423676 0.430298 0.430298 0.430298 0.437073 0.437073 0.437073 0.443817 0.443817 0.443817 0.450378 0.450378 0.450378 0.457123 0.457123 0.457123 0.463928 0.463928 0.463928 0.470551 0.470551 0.470551 0.477386 0.477386 0.477386 0.484283 0.484283 0.484283 0.491089 0.491089 0.491089 0.498077 0.498077 0.498077 0.505066 0.505066 0.505066 0.512268 0.512268 0.512268 0.302368 0.302368 0.302368 0.311066 0.311066 0.311066 0.319641 0.319641 0.319641 0.327789 0.327789 0.327789 0.336029 0.336029 0.336029 0.343872 0.343872 0.343872 0.351776 0.351776 0.351776 0.359497 0.359497 0.359497 0.366943 0.366943 0.366943 0.374390 0.374390 0.374390 0.381744 0.381744 0.381744 0.388794 0.388794 0.388794 0.395935 0.395935 0.395935 0.402954 0.402954 0.402954 0.409760 0.409760 0.409760 0.416656 0.416656 0.416656 0.423340 0.423340 0.423340 0.430115 0.430115 0.430115 0.436890 0.436890 0.436890 0.443451 0.443451 0.443451 0.450226 0.450226 0.450226 0.456970 0.456970 0.456970 0.463562 0.463562 0.463562 0.470367 0.470367 0.470367 0.477203 0.477203 0.477203 0.483948 0.483948 0.483948 0.490906 0.490906 0.490906 0.497772 0.497772 0.497772 0.504883 0.504883 0.504883 0.512085 0.512085 0.512085 0.519226 0.519226 0.519226 0.526642 0.526642 0.526642 0.319214 0.319214 0.319214 0.327637 0.327637 0.327637 0.335846 0.335846 0.335846 0.343689 0.343689 0.343689 0.351562 0.351562 0.351562 0.359131 0.359131 0.359131 0.366730 0.366730 0.366730 0.374207 0.374207 0.374207 0.381378 0.381378 0.381378 0.388611 0.388611 0.388611 0.395752 0.395752 0.395752 0.402618 0.402618 0.402618 0.409576 0.409576 0.409576 0.416473 0.416473 0.416473 0.423126 0.423126 0.423126 0.429932 0.429932 0.429932 0.436554 0.436554 0.436554 0.443298 0.443298 0.443298 0.450073 0.450073 0.450073 0.456635 0.456635 0.456635 0.463409 0.463409 0.463409 0.470184 0.470184 0.470184 0.476868 0.476868 0.476868 0.483734 0.483734 0.483734 0.490692 0.490692 0.490692 0.497589 0.497589 0.497589 0.504700 0.504700 0.504700 0.511719 0.511719 0.511719 0.519043 0.519043 0.519043 0.526428 0.526428 0.526428 0.533783 0.533783 0.533783 0.541443 0.541443 0.541443 0.335419 0.335419 0.335419 0.343506 0.343506 0.343506 0.351166 0.351166 0.351166 0.358948 0.358948 0.358948 0.366547 0.366547 0.366547 0.373840 0.373840 0.373840 0.381195 0.381195 0.381195 0.388428 0.388428 0.388428 0.395416 0.395416 0.395416 0.402435 0.402435 0.402435 0.409424 0.409424 0.409424 0.416138 0.416138 0.416138 0.422974 0.422974 0.422974 0.429596 0.429596 0.429596 0.436371 0.436371 0.436371 0.443146 0.443146 0.443146 0.449707 0.449707 0.449707 0.456451 0.456451 0.456451 0.463226 0.463226 0.463226 0.469879 0.469879 0.469879 0.476685 0.476685 0.476685 0.483612 0.483612 0.483612 0.490387 0.490387 0.490387 0.497406 0.497406 0.497406 0.504333 0.504333 0.504333 0.511536 0.511536 0.511536 0.518860 0.518860 0.518860 0.526062 0.526062 0.526062 0.533600 0.533600 0.533600 0.541260 0.541260 0.541260 0.548828 0.548828 0.548828 0.556732 0.556732 0.556732 0.350983 0.350983 0.350983 0.358734 0.358734 0.358734 0.366364 0.366364 0.366364 0.373657 0.373657 0.373657 0.381012 0.381012 0.381012 0.388062 0.388062 0.388062 0.395203 0.395203 0.395203 0.402252 0.402252 0.402252 0.409058 0.409058 0.409058 0.415955 0.415955 0.415955 0.422791 0.422791 0.422791 0.429443 0.429443 0.429443 0.436218 0.436218 0.436218 0.442780 0.442780 0.442780 0.449554 0.449554 0.449554 0.456299 0.456299 0.456299 0.462921 0.462921 0.462921 0.469696 0.469696 0.469696 0.476532 0.476532 0.476532 0.483246 0.483246 0.483246 0.490173 0.490173 0.490173 0.497223 0.497223 0.497223 0.504181 0.504181 0.504181 0.511353 0.511353 0.511353 0.518677 0.518677 0.518677 0.525879 0.525879 0.525879 0.533417 0.533417 0.533417 0.540863 0.540863 0.540863 0.548645 0.548645 0.548645 0.556519 0.556519 0.556519 0.564362 0.564362 0.564362 0.572540 0.572540 0.572540 0.365967 0.365967 0.365967 0.373474 0.373474 0.373474 0.380615 0.380615 0.380615 0.387878 0.387878 0.387878 0.395020 0.395020 0.395020 0.401917 0.401917 0.401917 0.408905 0.408905 0.408905 0.415802 0.415802 0.415802 0.422455 0.422455 0.422455 0.429260 0.429260 0.429260 0.436035 0.436035 0.436035 0.442627 0.442627 0.442627 0.449371 0.449371 0.449371 0.455963 0.455963 0.455963 0.462708 0.462708 0.462708 0.469543 0.469543 0.469543 0.476196 0.476196 0.476196 0.483063 0.483063 0.483063 0.490051 0.490051 0.490051 0.496887 0.496887 0.496887 0.503967 0.503967 0.503967 0.511200 0.511200 0.511200 0.518280 0.518280 0.518280 0.525696 0.525696 0.525696 0.533020 0.533020 0.533020 0.540680 0.540680 0.540680 0.548431 0.548431 0.548431 0.556152 0.556152 0.556152 0.564178 0.564178 0.564178 0.572327 0.572327 0.572327 0.580414 0.580414 0.580414 0.588837 0.588837 0.588837 0.380463 0.380463 0.380463 0.387695 0.387695 0.387695 0.394684 0.394684 0.394684 0.401764 0.401764 0.401764 0.408722 0.408722 0.408722 0.415436 0.415436 0.415436 0.422272 0.422272 0.422272 0.429108 0.429108 0.429108 0.435699 0.435699 0.435699 0.442444 0.442444 0.442444 0.449188 0.449188 0.449188 0.455780 0.455780 0.455780 0.462555 0.462555 0.462555 0.469177 0.469177 0.469177 0.476013 0.476013 0.476013 0.482910 0.482910 0.482910 0.489685 0.489685 0.489685 0.496704 0.496704 0.496704 0.503784 0.503784 0.503784 0.510803 0.510803 0.510803 0.518127 0.518127 0.518127 0.525513 0.525513 0.525513 0.532867 0.532867 0.532867 0.540466 0.540466 0.540466 0.548065 0.548065 0.548065 0.555939 0.555939 0.555939 0.563995 0.563995 0.563995 0.571899 0.571899 0.571899 0.580231 0.580231 0.580231 0.588623 0.588623 0.588623 0.596954 0.596954 0.596954 0.605560 0.605560 0.605560 0.394501 0.394501 0.394501 0.401550 0.401550 0.401550 0.408386 0.408386 0.408386 0.415283 0.415283 0.415283 0.422119 0.422119 0.422119 0.428772 0.428772 0.428772 0.435516 0.435516 0.435516 0.442291 0.442291 0.442291 0.448883 0.448883 0.448883 0.455627 0.455627 0.455627 0.462219 0.462219 0.462219 0.469025 0.469025 0.469025 0.475861 0.475861 0.475861 0.482544 0.482544 0.482544 0.489502 0.489502 0.489502 0.496521 0.496521 0.496521 0.503418 0.503418 0.503418 0.510651 0.510651 0.510651 0.517944 0.517944 0.517944 0.525146 0.525146 0.525146 0.532654 0.532654 0.532654 0.540100 0.540100 0.540100 0.547821 0.547821 0.547821 0.555725 0.555725 0.555725 0.563538 0.563538 0.563538 0.571686 0.571686 0.571686 0.580017 0.580017 0.580017 0.588196 0.588196 0.588196 0.596741 0.596741 0.596741 0.605347 0.605347 0.605347 0.613770 0.613770 0.613770 0.622528 0.622528 0.622528 0.408203 0.408203 0.408203 0.415100 0.415100 0.415100 0.421753 0.421753 0.421753 0.428589 0.428589 0.428589 0.435364 0.435364 0.435364 0.441956 0.441956 0.441956 0.448700 0.448700 0.448700 0.455444 0.455444 0.455444 0.462036 0.462036 0.462036 0.468842 0.468842 0.468842 0.475494 0.475494 0.475494 0.482391 0.482391 0.482391 0.489349 0.489349 0.489349 0.496155 0.496155 0.496155 0.503265 0.503265 0.503265 0.510437 0.510437 0.510437 0.517548 0.517548 0.517548 0.524963 0.524963 0.524963 0.532471 0.532471 0.532471 0.539886 0.539886 0.539886 0.547668 0.547668 0.547668 0.555328 0.555328 0.555328 0.563354 0.563354 0.563354 0.571503 0.571503 0.571503 0.579590 0.579590 0.579590 0.588013 0.588013 0.588013 0.596527 0.596527 0.596527 0.604919 0.604919 0.604919 0.613586 0.613586 0.613586 0.622284 0.622284 0.622284 0.630829 0.630829 0.630829 0.639557 0.639557 0.639557 0.421631 0.421631 0.421631 0.428406 0.428406 0.428406 0.435028 0.435028 0.435028 0.441772 0.441772 0.441772 0.448517 0.448517 0.448517 0.455109 0.455109 0.455109 0.461884 0.461884 0.461884 0.468506 0.468506 0.468506 0.475342 0.475342 0.475342 0.482208 0.482208 0.482208 0.488983 0.488983 0.488983 0.496002 0.496002 0.496002 0.503082 0.503082 0.503082 0.510101 0.510101 0.510101 0.517395 0.517395 0.517395 0.524780 0.524780 0.524780 0.532104 0.532104 0.532104 0.539734 0.539734 0.539734 0.547455 0.547455 0.547455 0.555115 0.555115 0.555115 0.563141 0.563141 0.563141 0.571106 0.571106 0.571106 0.579376 0.579376 0.579376 0.587799 0.587799 0.587799 0.596100 0.596100 0.596100 0.604675 0.604675 0.604675 0.613342 0.613342 0.613342 0.621857 0.621857 0.621857 0.630615 0.630615 0.630615 0.639160 0.639160 0.639160 0.647888 0.647888 0.647888 0.656616 0.656616 0.656616 0.434875 0.434875 0.434875 0.441620 0.441620 0.441620 0.448212 0.448212 0.448212 0.454956 0.454956 0.454956 0.461700 0.461700 0.461700 0.468323 0.468323 0.468323 0.475159 0.475159 0.475159 0.481873 0.481873 0.481873 0.488831 0.488831 0.488831 0.495819 0.495819 0.495819 0.502747 0.502747 0.502747 0.509888 0.509888 0.509888 0.517212 0.517212 0.517212 0.524414 0.524414 0.524414 0.531891 0.531891 0.531891 0.539520 0.539520 0.539520 0.547058 0.547058 0.547058 0.554932 0.554932 0.554932 0.562775 0.562775 0.562775 0.570892 0.570892 0.570892 0.579193 0.579193 0.579193 0.587372 0.587372 0.587372 0.595856 0.595856 0.595856 0.604462 0.604462 0.604462 0.612946 0.612946 0.612946 0.621643 0.621643 0.621643 0.630371 0.630371 0.630371 0.638916 0.638916 0.638916 0.647675 0.647675 0.647675 0.656158 0.656158 0.656158 0.664856 0.664856 0.664856 0.673462 0.673462 0.673462 0.448029 0.448029 0.448029 0.454773 0.454773 0.454773 0.461365 0.461365 0.461365 0.468140 0.468140 0.468140 0.474823 0.474823 0.474823 0.481689 0.481689 0.481689 0.488617 0.488617 0.488617 0.495483 0.495483 0.495483 0.502533 0.502533 0.502533 0.509735 0.509735 0.509735 0.516815 0.516815 0.516815 0.524200 0.524200 0.524200 0.531708 0.531708 0.531708 0.539093 0.539093 0.539093 0.546875 0.546875 0.546875 0.554535 0.554535 0.554535 0.562561 0.562561 0.562561 0.570679 0.570679 0.570679 0.578766 0.578766 0.578766 0.587128 0.587128 0.587128 0.595673 0.595673 0.595673 0.604034 0.604034 0.604034 0.612701 0.612701 0.612701 0.621399 0.621399 0.621399 0.629944 0.629944 0.629944 0.638702 0.638702 0.638702 0.647430 0.647430 0.647430 0.655914 0.655914 0.655914 0.664612 0.664612 0.664612 0.673065 0.673065 0.673065 0.681610 0.681610 0.681610 0.690063 0.690063 0.690063 0.461212 0.461212 0.461212 0.467987 0.467987 0.467987 0.474640 0.474640 0.474640 0.481506 0.481506 0.481506 0.488281 0.488281 0.488281 0.495270 0.495270 0.495270 0.502380 0.502380 0.502380 0.509369 0.509369 0.509369 0.516663 0.516663 0.516663 0.524017 0.524017 0.524017 0.531342 0.531342 0.531342 0.538940 0.538940 0.538940 0.546661 0.546661 0.546661 0.554352 0.554352 0.554352 0.562347 0.562347 0.562347 0.570282 0.570282 0.570282 0.578552 0.578552 0.578552 0.586945 0.586945 0.586945 0.595215 0.595215 0.595215 0.603821 0.603821 0.603821 0.612488 0.612488 0.612488 0.621002 0.621002 0.621002 0.629730 0.629730 0.629730 0.638489 0.638489 0.638489 0.647003 0.647003 0.647003 0.655731 0.655731 0.655731 0.664215 0.664215 0.664215 0.672821 0.672821 0.672821 0.681366 0.681366 0.681366 0.689667 0.689667 0.689667 0.697998 0.697998 0.697998 0.706238 0.706238 0.706238 0.474457 0.474457 0.474457 0.481201 0.481201 0.481201 0.488098 0.488098 0.488098 0.495087 0.495087 0.495087 0.502014 0.502014 0.502014 0.509186 0.509186 0.509186 0.516449 0.516449 0.516449 0.523651 0.523651 0.523651 0.531158 0.531158 0.531158 0.538727 0.538727 0.538727 0.546295 0.546295 0.546295 0.554169 0.554169 0.554169 0.561951 0.561951 0.561951 0.570068 0.570068 0.570068 0.578308 0.578308 0.578308 0.586517 0.586517 0.586517 0.595032 0.595032 0.595032 0.603607 0.603607 0.603607 0.612061 0.612061 0.612061 0.620758 0.620758 0.620758 0.629517 0.629517 0.629517 0.638031 0.638031 0.638031 0.646790 0.646790 0.646790 0.655518 0.655518 0.655518 0.664001 0.664001 0.664001 0.672607 0.672607 0.672607 0.680969 0.680969 0.680969 0.689423 0.689423 0.689423 0.697784 0.697784 0.697784 0.705841 0.705841 0.705841 0.713959 0.713959 0.713959 0.721924 0.721924 0.721924 0.487915 0.487915 0.487915 0.494781 0.494781 0.494781 0.501862 0.501862 0.501862 0.509003 0.509003 0.509003 0.516113 0.516113 0.516113 0.523468 0.523468 0.523468 0.530945 0.530945 0.530945 0.538361 0.538361 0.538361 0.546112 0.546112 0.546112 0.553955 0.553955 0.553955 0.561737 0.561737 0.561737 0.569885 0.569885 0.569885 0.577911 0.577911 0.577911 0.586304 0.586304 0.586304 0.594818 0.594818 0.594818 0.603180 0.603180 0.603180 0.611847 0.611847 0.611847 0.620544 0.620544 0.620544 0.629059 0.629059 0.629059 0.637817 0.637817 0.637817 0.646576 0.646576 0.646576 0.655090 0.655090 0.655090 0.663788 0.663788 0.663788 0.672150 0.672150 0.672150 0.680756 0.680756 0.680756 0.689209 0.689209 0.689209 0.697388 0.697388 0.697388 0.705627 0.705627 0.705627 0.713776 0.713776 0.713776 0.721527 0.721527 0.721527 0.729370 0.729370 0.729370 0.737000 0.737000 0.737000 0.501678 0.501678 0.501678 0.508636 0.508636 0.508636 0.515900 0.515900 0.515900 0.523285 0.523285 0.523285 0.530579 0.530579 0.530579 0.538177 0.538177 0.538177 0.545898 0.545898 0.545898 0.553558 0.553558 0.553558 0.561554 0.561554 0.561554 0.569458 0.569458 0.569458 0.577698 0.577698 0.577698 0.586090 0.586090 0.586090 0.594391 0.594391 0.594391 0.602966 0.602966 0.602966 0.611603 0.611603 0.611603 0.620117 0.620117 0.620117 0.628845 0.628845 0.628845 0.637604 0.637604 0.637604 0.646149 0.646149 0.646149 0.654877 0.654877 0.654877 0.663574 0.663574 0.663574 0.671936 0.671936 0.671936 0.680511 0.680511 0.680511 0.688812 0.688812 0.688812 0.697205 0.697205 0.697205 0.705414 0.705414 0.705414 0.713348 0.713348 0.713348 0.721344 0.721344 0.721344 0.729126 0.729126 0.729126 0.736633 0.736633 0.736633 0.744110 0.744110 0.744110 0.751373 0.751373 0.751373 0.515747 0.515747 0.515747 0.522888 0.522888 0.522888 0.530396 0.530396 0.530396 0.537964 0.537964 0.537964 0.545502 0.545502 0.545502 0.553375 0.553375 0.553375 0.561340 0.561340 0.561340 0.569244 0.569244 0.569244 0.577515 0.577515 0.577515 0.585663 0.585663 0.585663 0.594147 0.594147 0.594147 0.602722 0.602722 0.602722 0.611176 0.611176 0.611176 0.619873 0.619873 0.619873 0.628632 0.628632 0.628632 0.637146 0.637146 0.637146 0.645905 0.645905 0.645905 0.654633 0.654633 0.654633 0.663116 0.663116 0.663116 0.671753 0.671753 0.671753 0.680084 0.680084 0.680084 0.688568 0.688568 0.688568 0.696991 0.696991 0.696991 0.705017 0.705017 0.705017 0.713165 0.713165 0.713165 0.721130 0.721130 0.721130 0.728760 0.728760 0.728760 0.736450 0.736450 0.736450 0.743927 0.743927 0.743927 0.751038 0.751038 0.751038 0.758118 0.758118 0.758118 0.764832 0.764832 0.764832 0.530212 0.530212 0.530212 0.537598 0.537598 0.537598 0.545319 0.545319 0.545319 0.553162 0.553162 0.553162 0.560944 0.560944 0.560944 0.569061 0.569061 0.569061 0.577118 0.577118 0.577118 0.585449 0.585449 0.585449 0.593964 0.593964 0.593964 0.602325 0.602325 0.602325 0.610992 0.610992 0.610992 0.619690 0.619690 0.619690 0.628174 0.628174 0.628174 0.636963 0.636963 0.636963 0.645691 0.645691 0.645691 0.654236 0.654236 0.654236 0.662933 0.662933 0.662933 0.671539 0.671539 0.671539 0.679901 0.679901 0.679901 0.688354 0.688354 0.688354 0.696533 0.696533 0.696533 0.704803 0.704803 0.704803 0.712952 0.712952 0.712952 0.720703 0.720703 0.720703 0.728607 0.728607 0.728607 0.736237 0.736237 0.736237 0.743530 0.743530 0.743530 0.750854 0.750854 0.750854 0.757935 0.757935 0.757935 0.764679 0.764679 0.764679 0.771332 0.771332 0.771332 0.777588 0.777588 0.777588 0.545135 0.545135 0.545135 0.552734 0.552734 0.552734 0.560760 0.560760 0.560760 0.568817 0.568817 0.568817 0.576874 0.576874 0.576874 0.585266 0.585266 0.585266 0.593536 0.593536 0.593536 0.602081 0.602081 0.602081 0.610748 0.610748 0.610748 0.619232 0.619232 0.619232 0.627960 0.627960 0.627960 0.636719 0.636719 0.636719 0.645264 0.645264 0.645264 0.653992 0.653992 0.653992 0.662689 0.662689 0.662689 0.671112 0.671112 0.671112 0.679657 0.679657 0.679657 0.687958 0.687958 0.687958 0.696350 0.696350 0.696350 0.704590 0.704590 0.704590 0.712524 0.712524 0.712524 0.720551 0.720551 0.720551 0.728363 0.728363 0.728363 0.735870 0.735870 0.735870 0.743378 0.743378 0.743378 0.750671 0.750671 0.750671 0.757599 0.757599 0.757599 0.764526 0.764526 0.764526 0.770996 0.770996 0.770996 0.777435 0.777435 0.777435 0.783630 0.783630 0.783630 0.789490 0.789490 0.789490 0.560516 0.560516 0.560516 0.568451 0.568451 0.568451 0.576691 0.576691 0.576691 0.584839 0.584839 0.584839 0.593323 0.593323 0.593323 0.601898 0.601898 0.601898 0.610321 0.610321 0.610321 0.619049 0.619049 0.619049 0.627747 0.627747 0.627747 0.636322 0.636322 0.636322 0.645050 0.645050 0.645050 0.653778 0.653778 0.653778 0.662262 0.662262 0.662262 0.670898 0.670898 0.670898 0.679260 0.679260 0.679260 0.687714 0.687714 0.687714 0.696167 0.696167 0.696167 0.704193 0.704193 0.704193 0.712341 0.712341 0.712341 0.720337 0.720337 0.720337 0.727997 0.727997 0.727997 0.735687 0.735687 0.735687 0.743195 0.743195 0.743195 0.750305 0.750305 0.750305 0.757416 0.757416 0.757416 0.764313 0.764313 0.764313 0.770813 0.770813 0.770813 0.777283 0.777283 0.777283 0.783386 0.783386 0.783386 0.789307 0.789307 0.789307 0.795044 0.795044 0.795044 0.800385 0.800385 0.800385 0.087891 0.087891 0.087891 0.093231 0.093231 0.093231 0.098785 0.098785 0.098785 0.104492 0.104492 0.104492 0.110687 0.110687 0.110687 0.117218 0.117218 0.117218 0.123901 0.123901 0.123901 0.131134 0.131134 0.131134 0.138641 0.138641 0.138641 0.146759 0.146759 0.146759 0.155396 0.155396 0.155396 0.164246 0.164246 0.164246 0.173828 0.173828 0.173828 0.183777 0.183777 0.183777 0.193695 0.193695 0.193695 0.204102 0.204102 0.204102 0.214508 0.214508 0.214508 0.224609 0.224609 0.224609 0.234833 0.234833 0.234833 0.244598 0.244598 0.244598 0.254456 0.254456 0.254456 0.264160 0.264160 0.264160 0.273407 0.273407 0.273407 0.282745 0.282745 0.282745 0.291870 0.291870 0.291870 0.300598 0.300598 0.300598 0.309357 0.309357 0.309357 0.317932 0.317932 0.317932 0.326172 0.326172 0.326172 0.334412 0.334412 0.334412 0.342285 0.342285 0.342285 0.350189 0.350189 0.350189 0.098480 0.098480 0.098480 0.104370 0.104370 0.104370 0.110504 0.110504 0.110504 0.116852 0.116852 0.116852 0.123718 0.123718 0.123718 0.130981 0.130981 0.130981 0.138458 0.138458 0.138458 0.146576 0.146576 0.146576 0.154907 0.154907 0.154907 0.164001 0.164001 0.164001 0.173584 0.173584 0.173584 0.183289 0.183289 0.183289 0.193451 0.193451 0.193451 0.203827 0.203827 0.203827 0.213989 0.213989 0.213989 0.224335 0.224335 0.224335 0.234558 0.234558 0.234558 0.244354 0.244354 0.244354 0.254211 0.254211 0.254211 0.263672 0.263672 0.263672 0.273193 0.273193 0.273193 0.282501 0.282501 0.282501 0.291412 0.291412 0.291412 0.300385 0.300385 0.300385 0.309143 0.309143 0.309143 0.317535 0.317535 0.317535 0.325958 0.325958 0.325958 0.334167 0.334167 0.334167 0.342072 0.342072 0.342072 0.349976 0.349976 0.349976 0.357574 0.357574 0.357574 0.365204 0.365204 0.365204 0.110229 0.110229 0.110229 0.116699 0.116699 0.116699 0.123535 0.123535 0.123535 0.130615 0.130615 0.130615 0.138245 0.138245 0.138245 0.146149 0.146149 0.146149 0.154694 0.154694 0.154694 0.163788 0.163788 0.163788 0.173096 0.173096 0.173096 0.182983 0.182983 0.182983 0.193207 0.193207 0.193207 0.203308 0.203308 0.203308 0.213745 0.213745 0.213745 0.224091 0.224091 0.224091 0.234070 0.234070 0.234070 0.244110 0.244110 0.244110 0.253723 0.253723 0.253723 0.263428 0.263428 0.263428 0.272949 0.272949 0.272949 0.282043 0.282043 0.282043 0.291199 0.291199 0.291199 0.300140 0.300140 0.300140 0.308716 0.308716 0.308716 0.317291 0.317291 0.317291 0.325745 0.325745 0.325745 0.333801 0.333801 0.333801 0.341858 0.341858 0.341858 0.349609 0.349609 0.349609 0.357391 0.357391 0.357391 0.365051 0.365051 0.365051 0.372314 0.372314 0.372314 0.379700 0.379700 0.379700 0.123199 0.123199 0.123199 0.130432 0.130432 0.130432 0.138062 0.138062 0.138062 0.145935 0.145935 0.145935 0.154510 0.154510 0.154510 0.163330 0.163330 0.163330 0.172852 0.172852 0.172852 0.182739 0.182739 0.182739 0.192657 0.192657 0.192657 0.203033 0.203033 0.203033 0.213470 0.213470 0.213470 0.223572 0.223572 0.223572 0.233826 0.233826 0.233826 0.243866 0.243866 0.243866 0.253479 0.253479 0.253479 0.263184 0.263184 0.263184 0.272491 0.272491 0.272491 0.281830 0.281830 0.281830 0.290985 0.290985 0.290985 0.299713 0.299713 0.299713 0.308502 0.308502 0.308502 0.317108 0.317108 0.317108 0.325317 0.325317 0.325317 0.333588 0.333588 0.333588 0.341675 0.341675 0.341675 0.349396 0.349396 0.349396 0.357208 0.357208 0.357208 0.364655 0.364655 0.364655 0.372192 0.372192 0.372192 0.379547 0.379547 0.379547 0.386597 0.386597 0.386597 0.393768 0.393768 0.393768 0.137665 0.137665 0.137665 0.145721 0.145721 0.145721 0.154022 0.154022 0.154022 0.163116 0.163116 0.163116 0.172638 0.172638 0.172638 0.182251 0.182251 0.182251 0.192413 0.192413 0.192413 0.202789 0.202789 0.202789 0.212952 0.212952 0.212952 0.223328 0.223328 0.223328 0.233551 0.233551 0.233551 0.243378 0.243378 0.243378 0.253265 0.253265 0.253265 0.262726 0.262726 0.262726 0.272247 0.272247 0.272247 0.281586 0.281586 0.281586 0.290527 0.290527 0.290527 0.299500 0.299500 0.299500 0.308289 0.308289 0.308289 0.316681 0.316681 0.316681 0.325104 0.325104 0.325104 0.333374 0.333374 0.333374 0.341278 0.341278 0.341278 0.349213 0.349213 0.349213 0.356995 0.356995 0.356995 0.364471 0.364471 0.364471 0.371979 0.371979 0.371979 0.379181 0.379181 0.379181 0.386444 0.386444 0.386444 0.393616 0.393616 0.393616 0.400482 0.400482 0.400482 0.407501 0.407501 0.407501 0.153839 0.153839 0.153839 0.162872 0.162872 0.162872 0.172150 0.172150 0.172150 0.182007 0.182007 0.182007 0.192169 0.192169 0.192169 0.202271 0.202271 0.202271 0.212646 0.212646 0.212646 0.223053 0.223053 0.223053 0.233032 0.233032 0.233032 0.243103 0.243103 0.243103 0.253021 0.253021 0.253021 0.262482 0.262482 0.262482 0.272003 0.272003 0.272003 0.281097 0.281097 0.281097 0.290283 0.290283 0.290283 0.299255 0.299255 0.299255 0.307861 0.307861 0.307861 0.316467 0.316467 0.316467 0.324890 0.324890 0.324890 0.332977 0.332977 0.332977 0.341064 0.341064 0.341064 0.349030 0.349030 0.349030 0.356598 0.356598 0.356598 0.364258 0.364258 0.364258 0.371613 0.371613 0.371613 0.378967 0.378967 0.378967 0.386261 0.386261 0.386261 0.393250 0.393250 0.393250 0.400360 0.400360 0.400360 0.407318 0.407318 0.407318 0.414062 0.414062 0.414062 0.420929 0.420929 0.420929 0.171906 0.171906 0.171906 0.181732 0.181732 0.181732 0.191650 0.191650 0.191650 0.202026 0.202026 0.202026 0.212402 0.212402 0.212402 0.222534 0.222534 0.222534 0.232788 0.232788 0.232788 0.242828 0.242828 0.242828 0.252502 0.252502 0.252502 0.262238 0.262238 0.262238 0.271545 0.271545 0.271545 0.280884 0.280884 0.280884 0.290039 0.290039 0.290039 0.298828 0.298828 0.298828 0.307617 0.307617 0.307617 0.316254 0.316254 0.316254 0.324493 0.324493 0.324493 0.332764 0.332764 0.332764 0.340881 0.340881 0.340881 0.348633 0.348633 0.348633 0.356445 0.356445 0.356445 0.364105 0.364105 0.364105 0.371399 0.371399 0.371399 0.378815 0.378815 0.378815 0.385925 0.385925 0.385925 0.393097 0.393097 0.393097 0.400146 0.400146 0.400146 0.406982 0.406982 0.406982 0.413879 0.413879 0.413879 0.420776 0.420776 0.420776 0.427399 0.427399 0.427399 0.434204 0.434204 0.434204 0.191376 0.191376 0.191376 0.201721 0.201721 0.201721 0.211884 0.211884 0.211884 0.222260 0.222260 0.222260 0.232513 0.232513 0.232513 0.242371 0.242371 0.242371 0.252258 0.252258 0.252258 0.261993 0.261993 0.261993 0.271301 0.271301 0.271301 0.280670 0.280670 0.280670 0.289612 0.289612 0.289612 0.298584 0.298584 0.298584 0.307434 0.307434 0.307434 0.315826 0.315826 0.315826 0.324280 0.324280 0.324280 0.332581 0.332581 0.332581 0.340485 0.340485 0.340485 0.348419 0.348419 0.348419 0.356232 0.356232 0.356232 0.363708 0.363708 0.363708 0.371246 0.371246 0.371246 0.378448 0.378448 0.378448 0.385742 0.385742 0.385742 0.392883 0.392883 0.392883 0.399811 0.399811 0.399811 0.406799 0.406799 0.406799 0.413727 0.413727 0.413727 0.420410 0.420410 0.420410 0.427246 0.427246 0.427246 0.433990 0.433990 0.433990 0.440582 0.440582 0.440582 0.447357 0.447357 0.447357 0.211639 0.211639 0.211639 0.222015 0.222015 0.222015 0.232025 0.232025 0.232025 0.242126 0.242126 0.242126 0.252014 0.252014 0.252014 0.261505 0.261505 0.261505 0.271057 0.271057 0.271057 0.280182 0.280182 0.280182 0.289368 0.289368 0.289368 0.298370 0.298370 0.298370 0.306976 0.306976 0.306976 0.315613 0.315613 0.315613 0.324066 0.324066 0.324066 0.332153 0.332153 0.332153 0.340271 0.340271 0.340271 0.348236 0.348236 0.348236 0.355835 0.355835 0.355835 0.363495 0.363495 0.363495 0.371033 0.371033 0.371033 0.378265 0.378265 0.378265 0.385559 0.385559 0.385559 0.392548 0.392548 0.392548 0.399628 0.399628 0.399628 0.406616 0.406616 0.406616 0.413361 0.413361 0.413361 0.420227 0.420227 0.420227 0.427063 0.427063 0.427063 0.433685 0.433685 0.433685 0.440430 0.440430 0.440430 0.447205 0.447205 0.447205 0.453766 0.453766 0.453766 0.460541 0.460541 0.460541 0.231750 0.231750 0.231750 0.241882 0.241882 0.241882 0.251526 0.251526 0.251526 0.261261 0.261261 0.261261 0.270813 0.270813 0.270813 0.279968 0.279968 0.279968 0.289124 0.289124 0.289124 0.297943 0.297943 0.297943 0.306763 0.306763 0.306763 0.315399 0.315399 0.315399 0.323639 0.323639 0.323639 0.331940 0.331940 0.331940 0.340088 0.340088 0.340088 0.347870 0.347870 0.347870 0.355682 0.355682 0.355682 0.363312 0.363312 0.363312 0.370667 0.370667 0.370667 0.378082 0.378082 0.378082 0.385162 0.385162 0.385162 0.392365 0.392365 0.392365 0.399445 0.399445 0.399445 0.406281 0.406281 0.406281 0.413208 0.413208 0.413208 0.420074 0.420074 0.420074 0.426727 0.426727 0.426727 0.433502 0.433502 0.433502 0.440277 0.440277 0.440277 0.446838 0.446838 0.446838 0.453613 0.453613 0.453613 0.460175 0.460175 0.460175 0.466949 0.466949 0.466949 0.473785 0.473785 0.473785 0.251282 0.251282 0.251282 0.261047 0.261047 0.261047 0.270355 0.270355 0.270355 0.279724 0.279724 0.279724 0.288696 0.288696 0.288696 0.297699 0.297699 0.297699 0.306519 0.306519 0.306519 0.314972 0.314972 0.314972 0.323425 0.323425 0.323425 0.331757 0.331757 0.331757 0.339691 0.339691 0.339691 0.347656 0.347656 0.347656 0.355469 0.355469 0.355469 0.362946 0.362946 0.362946 0.370514 0.370514 0.370514 0.377716 0.377716 0.377716 0.385010 0.385010 0.385010 0.392181 0.392181 0.392181 0.399078 0.399078 0.399078 0.406097 0.406097 0.406097 0.413055 0.413055 0.413055 0.419708 0.419708 0.419708 0.426544 0.426544 0.426544 0.433319 0.433319 0.433319 0.439941 0.439941 0.439941 0.446686 0.446686 0.446686 0.453430 0.453430 0.453430 0.460022 0.460022 0.460022 0.466797 0.466797 0.466797 0.473450 0.473450 0.473450 0.480316 0.480316 0.480316 0.487244 0.487244 0.487244 0.270142 0.270142 0.270142 0.279510 0.279510 0.279510 0.288483 0.288483 0.288483 0.297485 0.297485 0.297485 0.306122 0.306122 0.306122 0.314728 0.314728 0.314728 0.323242 0.323242 0.323242 0.331329 0.331329 0.331329 0.339478 0.339478 0.339478 0.347443 0.347443 0.347443 0.355072 0.355072 0.355072 0.362762 0.362762 0.362762 0.370300 0.370300 0.370300 0.377502 0.377502 0.377502 0.384827 0.384827 0.384827 0.391846 0.391846 0.391846 0.398926 0.398926 0.398926 0.405914 0.405914 0.405914 0.412689 0.412689 0.412689 0.419556 0.419556 0.419556 0.426392 0.426392 0.426392 0.432983 0.432983 0.432983 0.439758 0.439758 0.439758 0.446503 0.446503 0.446503 0.453064 0.453064 0.453064 0.459869 0.459869 0.459869 0.466461 0.466461 0.466461 0.473297 0.473297 0.473297 0.480164 0.480164 0.480164 0.486908 0.486908 0.486908 0.493896 0.493896 0.493896 0.500946 0.500946 0.500946 0.288239 0.288239 0.288239 0.297028 0.297028 0.297028 0.305878 0.305878 0.305878 0.314545 0.314545 0.314545 0.322815 0.322815 0.322815 0.331116 0.331116 0.331116 0.339264 0.339264 0.339264 0.347046 0.347046 0.347046 0.354889 0.354889 0.354889 0.362579 0.362579 0.362579 0.369904 0.369904 0.369904 0.377350 0.377350 0.377350 0.384460 0.384460 0.384460 0.391663 0.391663 0.391663 0.398773 0.398773 0.398773 0.405579 0.405579 0.405579 0.412537 0.412537 0.412537 0.419403 0.419403 0.419403 0.426056 0.426056 0.426056 0.432831 0.432831 0.432831 0.439606 0.439606 0.439606 0.446167 0.446167 0.446167 0.452911 0.452911 0.452911 0.459656 0.459656 0.459656 0.466278 0.466278 0.466278 0.473114 0.473114 0.473114 0.479797 0.479797 0.479797 0.486694 0.486694 0.486694 0.493683 0.493683 0.493683 0.500610 0.500610 0.500610 0.507751 0.507751 0.507751 0.514984 0.514984 0.514984 0.305664 0.305664 0.305664 0.314117 0.314117 0.314117 0.322601 0.322601 0.322601 0.330902 0.330902 0.330902 0.338837 0.338837 0.338837 0.346863 0.346863 0.346863 0.354675 0.354675 0.354675 0.362183 0.362183 0.362183 0.369751 0.369751 0.369751 0.377136 0.377136 0.377136 0.384277 0.384277 0.384277 0.391449 0.391449 0.391449 0.398407 0.398407 0.398407 0.405426 0.405426 0.405426 0.412354 0.412354 0.412354 0.419037 0.419037 0.419037 0.425873 0.425873 0.425873 0.432648 0.432648 0.432648 0.439270 0.439270 0.439270 0.446014 0.446014 0.446014 0.452728 0.452728 0.452728 0.459320 0.459320 0.459320 0.466125 0.466125 0.466125 0.472778 0.472778 0.472778 0.479614 0.479614 0.479614 0.486542 0.486542 0.486542 0.493378 0.493378 0.493378 0.500427 0.500427 0.500427 0.507568 0.507568 0.507568 0.514618 0.514618 0.514618 0.521973 0.521973 0.521973 0.529449 0.529449 0.529449 0.322388 0.322388 0.322388 0.330505 0.330505 0.330505 0.338684 0.338684 0.338684 0.346649 0.346649 0.346649 0.354279 0.354279 0.354279 0.362000 0.362000 0.362000 0.369568 0.369568 0.369568 0.376770 0.376770 0.376770 0.384094 0.384094 0.384094 0.391113 0.391113 0.391113 0.398224 0.398224 0.398224 0.405243 0.405243 0.405243 0.412018 0.412018 0.412018 0.418884 0.418884 0.418884 0.425690 0.425690 0.425690 0.432312 0.432312 0.432312 0.439087 0.439087 0.439087 0.445831 0.445831 0.445831 0.452393 0.452393 0.452393 0.459167 0.459167 0.459167 0.465942 0.465942 0.465942 0.472595 0.472595 0.472595 0.479462 0.479462 0.479462 0.486176 0.486176 0.486176 0.493195 0.493195 0.493195 0.500244 0.500244 0.500244 0.507202 0.507202 0.507202 0.514465 0.514465 0.514465 0.521820 0.521820 0.521820 0.529083 0.529083 0.529083 0.536621 0.536621 0.536621 0.544342 0.544342 0.544342 0.338470 0.338470 0.338470 0.346252 0.346252 0.346252 0.354095 0.354095 0.354095 0.361816 0.361816 0.361816 0.369171 0.369171 0.369171 0.376587 0.376587 0.376587 0.383911 0.383911 0.383911 0.390961 0.390961 0.390961 0.398010 0.398010 0.398010 0.404907 0.404907 0.404907 0.411804 0.411804 0.411804 0.418732 0.418732 0.418732 0.425385 0.425385 0.425385 0.432159 0.432159 0.432159 0.438904 0.438904 0.438904 0.445496 0.445496 0.445496 0.452271 0.452271 0.452271 0.459015 0.459015 0.459015 0.465607 0.465607 0.465607 0.472412 0.472412 0.472412 0.479095 0.479095 0.479095 0.486023 0.486023 0.486023 0.493011 0.493011 0.493011 0.499878 0.499878 0.499878 0.507050 0.507050 0.507050 0.514282 0.514282 0.514282 0.521423 0.521423 0.521423 0.528870 0.528870 0.528870 0.536438 0.536438 0.536438 0.543945 0.543945 0.543945 0.551788 0.551788 0.551788 0.559509 0.559509 0.559509 0.353912 0.353912 0.353912 0.361420 0.361420 0.361420 0.368988 0.368988 0.368988 0.376434 0.376434 0.376434 0.383545 0.383545 0.383545 0.390747 0.390747 0.390747 0.397858 0.397858 0.397858 0.404724 0.404724 0.404724 0.411652 0.411652 0.411652 0.418365 0.418365 0.418365 0.425171 0.425171 0.425171 0.431976 0.431976 0.431976 0.438568 0.438568 0.438568 0.445343 0.445343 0.445343 0.452087 0.452087 0.452087 0.458649 0.458649 0.458649 0.465454 0.465454 0.465454 0.472260 0.472260 0.472260 0.478943 0.478943 0.478943 0.485870 0.485870 0.485870 0.492828 0.492828 0.492828 0.499695 0.499695 0.499695 0.506836 0.506836 0.506836 0.513885 0.513885 0.513885 0.521240 0.521240 0.521240 0.528687 0.528687 0.528687 0.536072 0.536072 0.536072 0.543762 0.543762 0.543762 0.551575 0.551575 0.551575 0.559326 0.559326 0.559326 0.567383 0.567383 0.567383 0.575653 0.575653 0.575653 0.368805 0.368805 0.368805 0.376068 0.376068 0.376068 0.383362 0.383362 0.383362 0.390594 0.390594 0.390594 0.397522 0.397522 0.397522 0.404510 0.404510 0.404510 0.411469 0.411469 0.411469 0.418182 0.418182 0.418182 0.425018 0.425018 0.425018 0.431641 0.431641 0.431641 0.438385 0.438385 0.438385 0.445160 0.445160 0.445160 0.451752 0.451752 0.451752 0.458496 0.458496 0.458496 0.465271 0.465271 0.465271 0.471893 0.471893 0.471893 0.478760 0.478760 0.478760 0.485687 0.485687 0.485687 0.492493 0.492493 0.492493 0.499512 0.499512 0.499512 0.506500 0.506500 0.506500 0.513702 0.513702 0.513702 0.521057 0.521057 0.521057 0.528320 0.528320 0.528320 0.535858 0.535858 0.535858 0.543579 0.543579 0.543579 0.551178 0.551178 0.551178 0.559113 0.559113 0.559113 0.567200 0.567200 0.567200 0.575195 0.575195 0.575195 0.583557 0.583557 0.583557 0.591827 0.591827 0.591827 0.383179 0.383179 0.383179 0.390228 0.390228 0.390228 0.397339 0.397339 0.397339 0.404358 0.404358 0.404358 0.411133 0.411133 0.411133 0.417999 0.417999 0.417999 0.424683 0.424683 0.424683 0.431488 0.431488 0.431488 0.438263 0.438263 0.438263 0.444824 0.444824 0.444824 0.451569 0.451569 0.451569 0.458313 0.458313 0.458313 0.464935 0.464935 0.464935 0.471741 0.471741 0.471741 0.478607 0.478607 0.478607 0.485321 0.485321 0.485321 0.492310 0.492310 0.492310 0.499329 0.499329 0.499329 0.506317 0.506317 0.506317 0.513519 0.513519 0.513519 0.520660 0.520660 0.520660 0.528137 0.528137 0.528137 0.535706 0.535706 0.535706 0.543182 0.543182 0.543182 0.550995 0.550995 0.550995 0.558929 0.558929 0.558929 0.566803 0.566803 0.566803 0.575012 0.575012 0.575012 0.583374 0.583374 0.583374 0.591614 0.591614 0.591614 0.600159 0.600159 0.600159 0.608582 0.608582 0.608582 0.397186 0.397186 0.397186 0.403992 0.403992 0.403992 0.410980 0.410980 0.410980 0.417847 0.417847 0.417847 0.424500 0.424500 0.424500 0.431305 0.431305 0.431305 0.437897 0.437897 0.437897 0.444641 0.444641 0.444641 0.451416 0.451416 0.451416 0.457977 0.457977 0.457977 0.464752 0.464752 0.464752 0.471588 0.471588 0.471588 0.478241 0.478241 0.478241 0.485138 0.485138 0.485138 0.492126 0.492126 0.492126 0.498993 0.498993 0.498993 0.506134 0.506134 0.506134 0.513184 0.513184 0.513184 0.520508 0.520508 0.520508 0.527954 0.527954 0.527954 0.535339 0.535339 0.535339 0.542999 0.542999 0.542999 0.550781 0.550781 0.550781 0.558563 0.558563 0.558563 0.566589 0.566589 0.566589 0.574799 0.574799 0.574799 0.582947 0.582947 0.582947 0.591400 0.591400 0.591400 0.599731 0.599731 0.599731 0.608368 0.608368 0.608368 0.617065 0.617065 0.617065 0.625580 0.625580 0.625580 0.410797 0.410797 0.410797 0.417480 0.417480 0.417480 0.424347 0.424347 0.424347 0.431122 0.431122 0.431122 0.437744 0.437744 0.437744 0.444489 0.444489 0.444489 0.451080 0.451080 0.451080 0.457825 0.457825 0.457825 0.464600 0.464600 0.464600 0.471222 0.471222 0.471222 0.478088 0.478088 0.478088 0.484985 0.484985 0.484985 0.491760 0.491760 0.491760 0.498840 0.498840 0.498840 0.505768 0.505768 0.505768 0.513000 0.513000 0.513000 0.520325 0.520325 0.520325 0.527557 0.527557 0.527557 0.535126 0.535126 0.535126 0.542786 0.542786 0.542786 0.550385 0.550385 0.550385 0.558319 0.558319 0.558319 0.566376 0.566376 0.566376 0.574402 0.574402 0.574402 0.582703 0.582703 0.582703 0.591187 0.591187 0.591187 0.599518 0.599518 0.599518 0.608154 0.608154 0.608154 0.616638 0.616638 0.616638 0.625336 0.625336 0.625336 0.634125 0.634125 0.634125 0.642670 0.642670 0.642670 0.424164 0.424164 0.424164 0.430817 0.430817 0.430817 0.437592 0.437592 0.437592 0.444153 0.444153 0.444153 0.450897 0.450897 0.450897 0.457642 0.457642 0.457642 0.464233 0.464233 0.464233 0.471069 0.471069 0.471069 0.477936 0.477936 0.477936 0.484650 0.484650 0.484650 0.491608 0.491608 0.491608 0.498627 0.498627 0.498627 0.505615 0.505615 0.505615 0.512817 0.512817 0.512817 0.519958 0.519958 0.519958 0.527374 0.527374 0.527374 0.534943 0.534943 0.534943 0.542389 0.542389 0.542389 0.550201 0.550201 0.550201 0.558136 0.558136 0.558136 0.565979 0.565979 0.565979 0.574188 0.574188 0.574188 0.582520 0.582520 0.582520 0.590759 0.590759 0.590759 0.599304 0.599304 0.599304 0.607727 0.607727 0.607727 0.616394 0.616394 0.616394 0.625153 0.625153 0.625153 0.633667 0.633667 0.633667 0.642426 0.642426 0.642426 0.651154 0.651154 0.651154 0.659637 0.659637 0.659637 0.437378 0.437378 0.437378 0.443970 0.443970 0.443970 0.450714 0.450714 0.450714 0.457306 0.457306 0.457306 0.464081 0.464081 0.464081 0.470886 0.470886 0.470886 0.477570 0.477570 0.477570 0.484467 0.484467 0.484467 0.491425 0.491425 0.491425 0.498291 0.498291 0.498291 0.505432 0.505432 0.505432 0.512634 0.512634 0.512634 0.519775 0.519775 0.519775 0.527191 0.527191 0.527191 0.534546 0.534546 0.534546 0.542206 0.542206 0.542206 0.550018 0.550018 0.550018 0.557709 0.557709 0.557709 0.565765 0.565765 0.565765 0.573975 0.573975 0.573975 0.582092 0.582092 0.582092 0.590546 0.590546 0.590546 0.599091 0.599091 0.599091 0.607513 0.607513 0.607513 0.616211 0.616211 0.616211 0.624695 0.624695 0.624695 0.633453 0.633453 0.633453 0.642181 0.642181 0.642181 0.650726 0.650726 0.650726 0.659424 0.659424 0.659424 0.668091 0.668091 0.668091 0.676483 0.676483 0.676483 0.450378 0.450378 0.450378 0.457123 0.457123 0.457123 0.463928 0.463928 0.463928 0.470551 0.470551 0.470551 0.477386 0.477386 0.477386 0.484283 0.484283 0.484283 0.491089 0.491089 0.491089 0.498077 0.498077 0.498077 0.505219 0.505219 0.505219 0.512268 0.512268 0.512268 0.519592 0.519592 0.519592 0.526825 0.526825 0.526825 0.534363 0.534363 0.534363 0.542023 0.542023 0.542023 0.549622 0.549622 0.549622 0.557526 0.557526 0.557526 0.565582 0.565582 0.565582 0.573578 0.573578 0.573578 0.581909 0.581909 0.581909 0.590332 0.590332 0.590332 0.598663 0.598663 0.598663 0.607269 0.607269 0.607269 0.615784 0.615784 0.615784 0.624481 0.624481 0.624481 0.633240 0.633240 0.633240 0.641785 0.641785 0.641785 0.650513 0.650513 0.650513 0.659210 0.659210 0.659210 0.667664 0.667664 0.667664 0.676300 0.676300 0.676300 0.684753 0.684753 0.684753 0.693024 0.693024 0.693024 0.463562 0.463562 0.463562 0.470367 0.470367 0.470367 0.477203 0.477203 0.477203 0.483948 0.483948 0.483948 0.490906 0.490906 0.490906 0.497955 0.497955 0.497955 0.504883 0.504883 0.504883 0.512085 0.512085 0.512085 0.519379 0.519379 0.519379 0.526642 0.526642 0.526642 0.534180 0.534180 0.534180 0.541656 0.541656 0.541656 0.549408 0.549408 0.549408 0.557343 0.557343 0.557343 0.565186 0.565186 0.565186 0.573364 0.573364 0.573364 0.581696 0.581696 0.581696 0.589905 0.589905 0.589905 0.598450 0.598450 0.598450 0.607056 0.607056 0.607056 0.615540 0.615540 0.615540 0.624237 0.624237 0.624237 0.632812 0.632812 0.632812 0.641541 0.641541 0.641541 0.650299 0.650299 0.650299 0.658783 0.658783 0.658783 0.667450 0.667450 0.667450 0.676025 0.676025 0.676025 0.684357 0.684357 0.684357 0.692810 0.692810 0.692810 0.701111 0.701111 0.701111 0.709076 0.709076 0.709076 0.476868 0.476868 0.476868 0.483734 0.483734 0.483734 0.490692 0.490692 0.490692 0.497589 0.497589 0.497589 0.504700 0.504700 0.504700 0.511902 0.511902 0.511902 0.519043 0.519043 0.519043 0.526428 0.526428 0.526428 0.533783 0.533783 0.533783 0.541443 0.541443 0.541443 0.549225 0.549225 0.549225 0.556946 0.556946 0.556946 0.564972 0.564972 0.564972 0.573151 0.573151 0.573151 0.581268 0.581268 0.581268 0.589691 0.589691 0.589691 0.598236 0.598236 0.598236 0.606628 0.606628 0.606628 0.615295 0.615295 0.615295 0.623840 0.623840 0.623840 0.632568 0.632568 0.632568 0.641296 0.641296 0.641296 0.649841 0.649841 0.649841 0.658569 0.658569 0.658569 0.667206 0.667206 0.667206 0.675629 0.675629 0.675629 0.684143 0.684143 0.684143 0.692566 0.692566 0.692566 0.700684 0.700684 0.700684 0.708862 0.708862 0.708862 0.716766 0.716766 0.716766 0.724670 0.724670 0.724670 0.490387 0.490387 0.490387 0.497406 0.497406 0.497406 0.504517 0.504517 0.504517 0.511536 0.511536 0.511536 0.518860 0.518860 0.518860 0.526245 0.526245 0.526245 0.533600 0.533600 0.533600 0.541260 0.541260 0.541260 0.548828 0.548828 0.548828 0.556732 0.556732 0.556732 0.564758 0.564758 0.564758 0.572754 0.572754 0.572754 0.581024 0.581024 0.581024 0.589478 0.589478 0.589478 0.597809 0.597809 0.597809 0.606445 0.606445 0.606445 0.615112 0.615112 0.615112 0.623596 0.623596 0.623596 0.632355 0.632355 0.632355 0.640869 0.640869 0.640869 0.649628 0.649628 0.649628 0.658356 0.658356 0.658356 0.666779 0.666779 0.666779 0.675385 0.675385 0.675385 0.683960 0.683960 0.683960 0.692139 0.692139 0.692139 0.700470 0.700470 0.700470 0.708679 0.708679 0.708679 0.716553 0.716553 0.716553 0.724457 0.724457 0.724457 0.732056 0.732056 0.732056 0.739624 0.739624 0.739624 0.504181 0.504181 0.504181 0.511353 0.511353 0.511353 0.518677 0.518677 0.518677 0.525879 0.525879 0.525879 0.533417 0.533417 0.533417 0.540863 0.540863 0.540863 0.548645 0.548645 0.548645 0.556519 0.556519 0.556519 0.564362 0.564362 0.564362 0.572540 0.572540 0.572540 0.580841 0.580841 0.580841 0.589081 0.589081 0.589081 0.597595 0.597595 0.597595 0.606201 0.606201 0.606201 0.614655 0.614655 0.614655 0.623383 0.623383 0.623383 0.632141 0.632141 0.632141 0.640656 0.640656 0.640656 0.649414 0.649414 0.649414 0.657898 0.657898 0.657898 0.666565 0.666565 0.666565 0.675201 0.675201 0.675201 0.683502 0.683502 0.683502 0.691956 0.691956 0.691956 0.700287 0.700287 0.700287 0.708282 0.708282 0.708282 0.716339 0.716339 0.716339 0.724304 0.724304 0.724304 0.731842 0.731842 0.731842 0.739471 0.739471 0.739471 0.746674 0.746674 0.746674 0.753906 0.753906 0.753906 0.518280 0.518280 0.518280 0.525696 0.525696 0.525696 0.533234 0.533234 0.533234 0.540680 0.540680 0.540680 0.548431 0.548431 0.548431 0.556152 0.556152 0.556152 0.564178 0.564178 0.564178 0.572327 0.572327 0.572327 0.580414 0.580414 0.580414 0.588837 0.588837 0.588837 0.597382 0.597382 0.597382 0.605774 0.605774 0.605774 0.614441 0.614441 0.614441 0.623169 0.623169 0.623169 0.631683 0.631683 0.631683 0.640472 0.640472 0.640472 0.648987 0.648987 0.648987 0.657684 0.657684 0.657684 0.666351 0.666351 0.666351 0.674744 0.674744 0.674744 0.683319 0.683319 0.683319 0.691742 0.691742 0.691742 0.699890 0.699890 0.699890 0.708069 0.708069 0.708069 0.716156 0.716156 0.716156 0.723907 0.723907 0.723907 0.731659 0.731659 0.731659 0.739075 0.739075 0.739075 0.746490 0.746490 0.746490 0.753693 0.753693 0.753693 0.760559 0.760559 0.760559 0.767395 0.767395 0.767395 0.532867 0.532867 0.532867 0.540466 0.540466 0.540466 0.548065 0.548065 0.548065 0.555939 0.555939 0.555939 0.563995 0.563995 0.563995 0.571899 0.571899 0.571899 0.580231 0.580231 0.580231 0.588623 0.588623 0.588623 0.596954 0.596954 0.596954 0.605560 0.605560 0.605560 0.614258 0.614258 0.614258 0.622742 0.622742 0.622742 0.631500 0.631500 0.631500 0.639984 0.639984 0.639984 0.648773 0.648773 0.648773 0.657471 0.657471 0.657471 0.665924 0.665924 0.665924 0.674561 0.674561 0.674561 0.683075 0.683075 0.683075 0.691315 0.691315 0.691315 0.699677 0.699677 0.699677 0.707855 0.707855 0.707855 0.715759 0.715759 0.715759 0.723694 0.723694 0.723694 0.731445 0.731445 0.731445 0.738892 0.738892 0.738892 0.746307 0.746307 0.746307 0.753357 0.753357 0.753357 0.760376 0.760376 0.760376 0.767151 0.767151 0.767151 0.773621 0.773621 0.773621 0.779999 0.779999 0.779999 0.547821 0.547821 0.547821 0.555725 0.555725 0.555725 0.563538 0.563538 0.563538 0.571686 0.571686 0.571686 0.580017 0.580017 0.580017 0.588196 0.588196 0.588196 0.596741 0.596741 0.596741 0.605347 0.605347 0.605347 0.613770 0.613770 0.613770 0.622528 0.622528 0.622528 0.631256 0.631256 0.631256 0.639801 0.639801 0.639801 0.648529 0.648529 0.648529 0.657074 0.657074 0.657074 0.665680 0.665680 0.665680 0.674347 0.674347 0.674347 0.682648 0.682648 0.682648 0.691101 0.691101 0.691101 0.699432 0.699432 0.699432 0.707458 0.707458 0.707458 0.715576 0.715576 0.715576 0.723511 0.723511 0.723511 0.731079 0.731079 0.731079 0.738708 0.738708 0.738708 0.745941 0.745941 0.745941 0.753174 0.753174 0.753174 0.760193 0.760193 0.760193 0.766846 0.766846 0.766846 0.773468 0.773468 0.773468 0.779816 0.779816 0.779816 0.785767 0.785767 0.785767 0.791626 0.791626 0.791626 0.563354 0.563354 0.563354 0.571503 0.571503 0.571503 0.579590 0.579590 0.579590 0.588013 0.588013 0.588013 0.596527 0.596527 0.596527 0.604919 0.604919 0.604919 0.613586 0.613586 0.613586 0.622284 0.622284 0.622284 0.630829 0.630829 0.630829 0.639557 0.639557 0.639557 0.648132 0.648132 0.648132 0.656830 0.656830 0.656830 0.665497 0.665497 0.665497 0.673889 0.673889 0.673889 0.682465 0.682465 0.682465 0.690887 0.690887 0.690887 0.699036 0.699036 0.699036 0.707275 0.707275 0.707275 0.715363 0.715363 0.715363 0.723145 0.723145 0.723145 0.730927 0.730927 0.730927 0.738495 0.738495 0.738495 0.745758 0.745758 0.745758 0.752991 0.752991 0.752991 0.759888 0.759888 0.759888 0.766693 0.766693 0.766693 0.773285 0.773285 0.773285 0.779480 0.779480 0.779480 0.785614 0.785614 0.785614 0.791534 0.791534 0.791534 0.796967 0.796967 0.796967 0.802338 0.802338 0.802338 0.089874 0.089874 0.089874 0.095245 0.095245 0.095245 0.100800 0.100800 0.100800 0.106812 0.106812 0.106812 0.112946 0.112946 0.112946 0.119568 0.119568 0.119568 0.126587 0.126587 0.126587 0.133789 0.133789 0.133789 0.141632 0.141632 0.141632 0.149963 0.149963 0.149963 0.158508 0.158508 0.158508 0.167816 0.167816 0.167816 0.177490 0.177490 0.177490 0.187317 0.187317 0.187317 0.197601 0.197601 0.197601 0.207733 0.207733 0.207733 0.218140 0.218140 0.218140 0.228455 0.228455 0.228455 0.238373 0.238373 0.238373 0.248352 0.248352 0.248352 0.258118 0.258118 0.258118 0.267517 0.267517 0.267517 0.276917 0.276917 0.276917 0.286194 0.286194 0.286194 0.295013 0.295013 0.295013 0.303925 0.303925 0.303925 0.312378 0.312378 0.312378 0.320923 0.320923 0.320923 0.329285 0.329285 0.329285 0.337250 0.337250 0.337250 0.345306 0.345306 0.345306 0.353149 0.353149 0.353149 0.100647 0.100647 0.100647 0.106476 0.106476 0.106476 0.112762 0.112762 0.112762 0.119415 0.119415 0.119415 0.126221 0.126221 0.126221 0.133606 0.133606 0.133606 0.141449 0.141449 0.141449 0.149506 0.149506 0.149506 0.158264 0.158264 0.158264 0.167572 0.167572 0.167572 0.177032 0.177032 0.177032 0.187073 0.187073 0.187073 0.197052 0.197052 0.197052 0.207458 0.207458 0.207458 0.217896 0.217896 0.217896 0.227966 0.227966 0.227966 0.238098 0.238098 0.238098 0.248108 0.248108 0.248108 0.257629 0.257629 0.257629 0.267273 0.267273 0.267273 0.276703 0.276703 0.276703 0.285736 0.285736 0.285736 0.294830 0.294830 0.294830 0.303680 0.303680 0.303680 0.312195 0.312195 0.312195 0.320709 0.320709 0.320709 0.328827 0.328827 0.328827 0.337036 0.337036 0.337036 0.345062 0.345062 0.345062 0.352722 0.352722 0.352722 0.360474 0.360474 0.360474 0.368042 0.368042 0.368042 0.112610 0.112610 0.112610 0.119080 0.119080 0.119080 0.126068 0.126068 0.126068 0.133423 0.133423 0.133423 0.141052 0.141052 0.141052 0.149323 0.149323 0.149323 0.158081 0.158081 0.158081 0.167114 0.167114 0.167114 0.176788 0.176788 0.176788 0.186829 0.186829 0.186829 0.196808 0.196808 0.196808 0.207214 0.207214 0.207214 0.217346 0.217346 0.217346 0.227692 0.227692 0.227692 0.237854 0.237854 0.237854 0.247589 0.247589 0.247589 0.257385 0.257385 0.257385 0.267059 0.267059 0.267059 0.276245 0.276245 0.276245 0.285492 0.285492 0.285492 0.294586 0.294586 0.294586 0.303253 0.303253 0.303253 0.311981 0.311981 0.311981 0.320251 0.320251 0.320251 0.328674 0.328674 0.328674 0.336853 0.336853 0.336853 0.344666 0.344666 0.344666 0.352539 0.352539 0.352539 0.360260 0.360260 0.360260 0.367676 0.367676 0.367676 0.375122 0.375122 0.375122 0.382446 0.382446 0.382446 0.125854 0.125854 0.125854 0.133057 0.133057 0.133057 0.140839 0.140839 0.140839 0.149078 0.149078 0.149078 0.157623 0.157623 0.157623 0.166840 0.166840 0.166840 0.176544 0.176544 0.176544 0.186310 0.186310 0.186310 0.196564 0.196564 0.196564 0.206696 0.206696 0.206696 0.217102 0.217102 0.217102 0.227448 0.227448 0.227448 0.237335 0.237335 0.237335 0.247314 0.247314 0.247314 0.257172 0.257172 0.257172 0.266541 0.266541 0.266541 0.276001 0.276001 0.276001 0.285248 0.285248 0.285248 0.294128 0.294128 0.294128 0.303009 0.303009 0.303009 0.311737 0.311737 0.311737 0.320099 0.320099 0.320099 0.328461 0.328461 0.328461 0.336426 0.336426 0.336426 0.344482 0.344482 0.344482 0.352325 0.352325 0.352325 0.359894 0.359894 0.359894 0.367462 0.367462 0.367462 0.374969 0.374969 0.374969 0.382080 0.382080 0.382080 0.389313 0.389313 0.389313 0.396454 0.396454 0.396454 0.140625 0.140625 0.140625 0.148682 0.148682 0.148682 0.157410 0.157410 0.157410 0.166595 0.166595 0.166595 0.176056 0.176056 0.176056 0.186035 0.186035 0.186035 0.196289 0.196289 0.196289 0.206421 0.206421 0.206421 0.216827 0.216827 0.216827 0.226929 0.226929 0.226929 0.237091 0.237091 0.237091 0.247070 0.247070 0.247070 0.256653 0.256653 0.256653 0.266296 0.266296 0.266296 0.275757 0.275757 0.275757 0.284821 0.284821 0.284821 0.293915 0.293915 0.293915 0.302795 0.302795 0.302795 0.311310 0.311310 0.311310 0.319855 0.319855 0.319855 0.328033 0.328033 0.328033 0.336243 0.336243 0.336243 0.344269 0.344269 0.344269 0.351959 0.351959 0.351959 0.359711 0.359711 0.359711 0.367310 0.367310 0.367310 0.374573 0.374573 0.374573 0.381927 0.381927 0.381927 0.389160 0.389160 0.389160 0.396088 0.396088 0.396088 0.403168 0.403168 0.403168 0.409943 0.409943 0.409943 0.157166 0.157166 0.157166 0.166138 0.166138 0.166138 0.175781 0.175781 0.175781 0.185791 0.185791 0.185791 0.195801 0.195801 0.195801 0.206177 0.206177 0.206177 0.216583 0.216583 0.216583 0.226685 0.226685 0.226685 0.236847 0.236847 0.236847 0.246582 0.246582 0.246582 0.256409 0.256409 0.256409 0.266052 0.266052 0.266052 0.275299 0.275299 0.275299 0.284576 0.284576 0.284576 0.293671 0.293671 0.293671 0.302368 0.302368 0.302368 0.311066 0.311066 0.311066 0.319641 0.319641 0.319641 0.327789 0.327789 0.327789 0.336029 0.336029 0.336029 0.343872 0.343872 0.343872 0.351776 0.351776 0.351776 0.359497 0.359497 0.359497 0.366943 0.366943 0.366943 0.374390 0.374390 0.374390 0.381744 0.381744 0.381744 0.388794 0.388794 0.388794 0.395935 0.395935 0.395935 0.402954 0.402954 0.402954 0.409760 0.409760 0.409760 0.416656 0.416656 0.416656 0.423340 0.423340 0.423340 0.175537 0.175537 0.175537 0.185272 0.185272 0.185272 0.195526 0.195526 0.195526 0.205902 0.205902 0.205902 0.216064 0.216064 0.216064 0.226410 0.226410 0.226410 0.236328 0.236328 0.236328 0.246338 0.246338 0.246338 0.256165 0.256165 0.256165 0.265594 0.265594 0.265594 0.275085 0.275085 0.275085 0.284332 0.284332 0.284332 0.293213 0.293213 0.293213 0.302155 0.302155 0.302155 0.310913 0.310913 0.310913 0.319214 0.319214 0.319214 0.327637 0.327637 0.327637 0.335632 0.335632 0.335632 0.343689 0.343689 0.343689 0.351562 0.351562 0.351562 0.359131 0.359131 0.359131 0.366730 0.366730 0.366730 0.374207 0.374207 0.374207 0.381378 0.381378 0.381378 0.388611 0.388611 0.388611 0.395752 0.395752 0.395752 0.402618 0.402618 0.402618 0.409576 0.409576 0.409576 0.416321 0.416321 0.416321 0.423126 0.423126 0.423126 0.429932 0.429932 0.429932 0.436554 0.436554 0.436554 0.195251 0.195251 0.195251 0.205383 0.205383 0.205383 0.215790 0.215790 0.215790 0.226166 0.226166 0.226166 0.236053 0.236053 0.236053 0.246094 0.246094 0.246094 0.255707 0.255707 0.255707 0.265350 0.265350 0.265350 0.274841 0.274841 0.274841 0.283905 0.283905 0.283905 0.292999 0.292999 0.292999 0.301941 0.301941 0.301941 0.310455 0.310455 0.310455 0.319000 0.319000 0.319000 0.327393 0.327393 0.327393 0.335419 0.335419 0.335419 0.343506 0.343506 0.343506 0.351166 0.351166 0.351166 0.358948 0.358948 0.358948 0.366547 0.366547 0.366547 0.373840 0.373840 0.373840 0.381195 0.381195 0.381195 0.388428 0.388428 0.388428 0.395416 0.395416 0.395416 0.402435 0.402435 0.402435 0.409424 0.409424 0.409424 0.416138 0.416138 0.416138 0.422974 0.422974 0.422974 0.429596 0.429596 0.429596 0.436371 0.436371 0.436371 0.443146 0.443146 0.443146 0.449707 0.449707 0.449707 0.215546 0.215546 0.215546 0.225647 0.225647 0.225647 0.235840 0.235840 0.235840 0.245636 0.245636 0.245636 0.255463 0.255463 0.255463 0.265106 0.265106 0.265106 0.274323 0.274323 0.274323 0.283661 0.283661 0.283661 0.292786 0.292786 0.292786 0.301483 0.301483 0.301483 0.310242 0.310242 0.310242 0.318817 0.318817 0.318817 0.326996 0.326996 0.326996 0.335205 0.335205 0.335205 0.343109 0.343109 0.343109 0.350983 0.350983 0.350983 0.358734 0.358734 0.358734 0.366180 0.366180 0.366180 0.373657 0.373657 0.373657 0.381012 0.381012 0.381012 0.388062 0.388062 0.388062 0.395203 0.395203 0.395203 0.402252 0.402252 0.402252 0.409058 0.409058 0.409058 0.415955 0.415955 0.415955 0.422638 0.422638 0.422638 0.429443 0.429443 0.429443 0.436218 0.436218 0.436218 0.442780 0.442780 0.442780 0.449554 0.449554 0.449554 0.456299 0.456299 0.456299 0.462921 0.462921 0.462921 0.235596 0.235596 0.235596 0.245361 0.245361 0.245361 0.255219 0.255219 0.255219 0.264618 0.264618 0.264618 0.274109 0.274109 0.274109 0.283417 0.283417 0.283417 0.292328 0.292328 0.292328 0.301270 0.301270 0.301270 0.310028 0.310028 0.310028 0.318390 0.318390 0.318390 0.326782 0.326782 0.326782 0.335022 0.335022 0.335022 0.342865 0.342865 0.342865 0.350800 0.350800 0.350800 0.358368 0.358368 0.358368 0.365967 0.365967 0.365967 0.373474 0.373474 0.373474 0.380615 0.380615 0.380615 0.387878 0.387878 0.387878 0.395020 0.395020 0.395020 0.401917 0.401917 0.401917 0.408905 0.408905 0.408905 0.415802 0.415802 0.415802 0.422455 0.422455 0.422455 0.429260 0.429260 0.429260 0.435883 0.435883 0.435883 0.442627 0.442627 0.442627 0.449371 0.449371 0.449371 0.455963 0.455963 0.455963 0.462708 0.462708 0.462708 0.469543 0.469543 0.469543 0.476196 0.476196 0.476196 0.254730 0.254730 0.254730 0.264404 0.264404 0.264404 0.273895 0.273895 0.273895 0.282990 0.282990 0.282990 0.292114 0.292114 0.292114 0.301056 0.301056 0.301056 0.309601 0.309601 0.309601 0.318176 0.318176 0.318176 0.326599 0.326599 0.326599 0.334625 0.334625 0.334625 0.342682 0.342682 0.342682 0.350372 0.350372 0.350372 0.358154 0.358154 0.358154 0.365784 0.365784 0.365784 0.373077 0.373077 0.373077 0.380463 0.380463 0.380463 0.387695 0.387695 0.387695 0.394684 0.394684 0.394684 0.401764 0.401764 0.401764 0.408722 0.408722 0.408722 0.415436 0.415436 0.415436 0.422272 0.422272 0.422272 0.429108 0.429108 0.429108 0.435699 0.435699 0.435699 0.442444 0.442444 0.442444 0.449036 0.449036 0.449036 0.455780 0.455780 0.455780 0.462555 0.462555 0.462555 0.469177 0.469177 0.469177 0.476013 0.476013 0.476013 0.482910 0.482910 0.482910 0.489685 0.489685 0.489685 0.273407 0.273407 0.273407 0.282745 0.282745 0.282745 0.291870 0.291870 0.291870 0.300598 0.300598 0.300598 0.309357 0.309357 0.309357 0.317932 0.317932 0.317932 0.326172 0.326172 0.326172 0.334412 0.334412 0.334412 0.342468 0.342468 0.342468 0.350189 0.350189 0.350189 0.357971 0.357971 0.357971 0.365417 0.365417 0.365417 0.372894 0.372894 0.372894 0.380280 0.380280 0.380280 0.387360 0.387360 0.387360 0.394501 0.394501 0.394501 0.401550 0.401550 0.401550 0.408386 0.408386 0.408386 0.415283 0.415283 0.415283 0.422119 0.422119 0.422119 0.428772 0.428772 0.428772 0.435516 0.435516 0.435516 0.442108 0.442108 0.442108 0.448883 0.448883 0.448883 0.455627 0.455627 0.455627 0.462219 0.462219 0.462219 0.469025 0.469025 0.469025 0.475861 0.475861 0.475861 0.482544 0.482544 0.482544 0.489502 0.489502 0.489502 0.496521 0.496521 0.496521 0.503418 0.503418 0.503418 0.291412 0.291412 0.291412 0.300385 0.300385 0.300385 0.309143 0.309143 0.309143 0.317535 0.317535 0.317535 0.325958 0.325958 0.325958 0.334167 0.334167 0.334167 0.342072 0.342072 0.342072 0.349976 0.349976 0.349976 0.357574 0.357574 0.357574 0.365204 0.365204 0.365204 0.372711 0.372711 0.372711 0.379883 0.379883 0.379883 0.387177 0.387177 0.387177 0.394318 0.394318 0.394318 0.401215 0.401215 0.401215 0.408203 0.408203 0.408203 0.415100 0.415100 0.415100 0.421753 0.421753 0.421753 0.428589 0.428589 0.428589 0.435364 0.435364 0.435364 0.441956 0.441956 0.441956 0.448700 0.448700 0.448700 0.455292 0.455292 0.455292 0.462036 0.462036 0.462036 0.468842 0.468842 0.468842 0.475494 0.475494 0.475494 0.482391 0.482391 0.482391 0.489349 0.489349 0.489349 0.496155 0.496155 0.496155 0.503265 0.503265 0.503265 0.510437 0.510437 0.510437 0.517548 0.517548 0.517548 0.308716 0.308716 0.308716 0.317291 0.317291 0.317291 0.325745 0.325745 0.325745 0.333801 0.333801 0.333801 0.341858 0.341858 0.341858 0.349823 0.349823 0.349823 0.357391 0.357391 0.357391 0.365051 0.365051 0.365051 0.372314 0.372314 0.372314 0.379700 0.379700 0.379700 0.386993 0.386993 0.386993 0.393982 0.393982 0.393982 0.401031 0.401031 0.401031 0.408020 0.408020 0.408020 0.414764 0.414764 0.414764 0.421631 0.421631 0.421631 0.428406 0.428406 0.428406 0.435028 0.435028 0.435028 0.441772 0.441772 0.441772 0.448364 0.448364 0.448364 0.455109 0.455109 0.455109 0.461884 0.461884 0.461884 0.468506 0.468506 0.468506 0.475342 0.475342 0.475342 0.482208 0.482208 0.482208 0.488983 0.488983 0.488983 0.496002 0.496002 0.496002 0.503082 0.503082 0.503082 0.510101 0.510101 0.510101 0.517395 0.517395 0.517395 0.524567 0.524567 0.524567 0.532104 0.532104 0.532104 0.325317 0.325317 0.325317 0.333588 0.333588 0.333588 0.341675 0.341675 0.341675 0.349396 0.349396 0.349396 0.357208 0.357208 0.357208 0.364655 0.364655 0.364655 0.372192 0.372192 0.372192 0.379547 0.379547 0.379547 0.386597 0.386597 0.386597 0.393768 0.393768 0.393768 0.400848 0.400848 0.400848 0.407684 0.407684 0.407684 0.414612 0.414612 0.414612 0.421448 0.421448 0.421448 0.428101 0.428101 0.428101 0.434875 0.434875 0.434875 0.441620 0.441620 0.441620 0.448212 0.448212 0.448212 0.454956 0.454956 0.454956 0.461548 0.461548 0.461548 0.468323 0.468323 0.468323 0.475159 0.475159 0.475159 0.481873 0.481873 0.481873 0.488831 0.488831 0.488831 0.495819 0.495819 0.495819 0.502747 0.502747 0.502747 0.509888 0.509888 0.509888 0.517212 0.517212 0.517212 0.524414 0.524414 0.524414 0.531891 0.531891 0.531891 0.539337 0.539337 0.539337 0.547058 0.547058 0.547058 0.341278 0.341278 0.341278 0.349213 0.349213 0.349213 0.356995 0.356995 0.356995 0.364471 0.364471 0.364471 0.371979 0.371979 0.371979 0.379181 0.379181 0.379181 0.386444 0.386444 0.386444 0.393616 0.393616 0.393616 0.400482 0.400482 0.400482 0.407501 0.407501 0.407501 0.414429 0.414429 0.414429 0.421112 0.421112 0.421112 0.427887 0.427887 0.427887 0.434692 0.434692 0.434692 0.441284 0.441284 0.441284 0.448029 0.448029 0.448029 0.454590 0.454590 0.454590 0.461365 0.461365 0.461365 0.468140 0.468140 0.468140 0.474823 0.474823 0.474823 0.481689 0.481689 0.481689 0.488617 0.488617 0.488617 0.495483 0.495483 0.495483 0.502533 0.502533 0.502533 0.509735 0.509735 0.509735 0.516815 0.516815 0.516815 0.524200 0.524200 0.524200 0.531525 0.531525 0.531525 0.539093 0.539093 0.539093 0.546875 0.546875 0.546875 0.554535 0.554535 0.554535 0.562561 0.562561 0.562561 0.356598 0.356598 0.356598 0.364258 0.364258 0.364258 0.371796 0.371796 0.371796 0.378967 0.378967 0.378967 0.386261 0.386261 0.386261 0.393250 0.393250 0.393250 0.400360 0.400360 0.400360 0.407318 0.407318 0.407318 0.414062 0.414062 0.414062 0.420929 0.420929 0.420929 0.427734 0.427734 0.427734 0.434357 0.434357 0.434357 0.441101 0.441101 0.441101 0.447845 0.447845 0.447845 0.454437 0.454437 0.454437 0.461212 0.461212 0.461212 0.467987 0.467987 0.467987 0.474640 0.474640 0.474640 0.481506 0.481506 0.481506 0.488281 0.488281 0.488281 0.495270 0.495270 0.495270 0.502380 0.502380 0.502380 0.509369 0.509369 0.509369 0.516663 0.516663 0.516663 0.524017 0.524017 0.524017 0.531342 0.531342 0.531342 0.538940 0.538940 0.538940 0.546661 0.546661 0.546661 0.554352 0.554352 0.554352 0.562347 0.562347 0.562347 0.570282 0.570282 0.570282 0.578552 0.578552 0.578552 0.371399 0.371399 0.371399 0.378815 0.378815 0.378815 0.386078 0.386078 0.386078 0.393097 0.393097 0.393097 0.400146 0.400146 0.400146 0.406982 0.406982 0.406982 0.413879 0.413879 0.413879 0.420776 0.420776 0.420776 0.427399 0.427399 0.427399 0.434204 0.434204 0.434204 0.440948 0.440948 0.440948 0.447510 0.447510 0.447510 0.454254 0.454254 0.454254 0.461029 0.461029 0.461029 0.467651 0.467651 0.467651 0.474457 0.474457 0.474457 0.481201 0.481201 0.481201 0.488098 0.488098 0.488098 0.495087 0.495087 0.495087 0.502014 0.502014 0.502014 0.509186 0.509186 0.509186 0.516449 0.516449 0.516449 0.523651 0.523651 0.523651 0.531158 0.531158 0.531158 0.538727 0.538727 0.538727 0.546295 0.546295 0.546295 0.554169 0.554169 0.554169 0.561951 0.561951 0.561951 0.570068 0.570068 0.570068 0.578308 0.578308 0.578308 0.586517 0.586517 0.586517 0.595032 0.595032 0.595032 0.385742 0.385742 0.385742 0.392883 0.392883 0.392883 0.399811 0.399811 0.399811 0.406799 0.406799 0.406799 0.413727 0.413727 0.413727 0.420410 0.420410 0.420410 0.427246 0.427246 0.427246 0.433990 0.433990 0.433990 0.440582 0.440582 0.440582 0.447357 0.447357 0.447357 0.454102 0.454102 0.454102 0.460693 0.460693 0.460693 0.467468 0.467468 0.467468 0.474121 0.474121 0.474121 0.481018 0.481018 0.481018 0.487915 0.487915 0.487915 0.494781 0.494781 0.494781 0.501862 0.501862 0.501862 0.509003 0.509003 0.509003 0.516113 0.516113 0.516113 0.523468 0.523468 0.523468 0.530945 0.530945 0.530945 0.538361 0.538361 0.538361 0.546112 0.546112 0.546112 0.553955 0.553955 0.553955 0.561737 0.561737 0.561737 0.569885 0.569885 0.569885 0.577911 0.577911 0.577911 0.586304 0.586304 0.586304 0.594818 0.594818 0.594818 0.603180 0.603180 0.603180 0.611847 0.611847 0.611847 0.399628 0.399628 0.399628 0.406616 0.406616 0.406616 0.413361 0.413361 0.413361 0.420227 0.420227 0.420227 0.427063 0.427063 0.427063 0.433685 0.433685 0.433685 0.440430 0.440430 0.440430 0.447205 0.447205 0.447205 0.453766 0.453766 0.453766 0.460541 0.460541 0.460541 0.467316 0.467316 0.467316 0.473938 0.473938 0.473938 0.480835 0.480835 0.480835 0.487579 0.487579 0.487579 0.494568 0.494568 0.494568 0.501678 0.501678 0.501678 0.508636 0.508636 0.508636 0.515900 0.515900 0.515900 0.523285 0.523285 0.523285 0.530579 0.530579 0.530579 0.538177 0.538177 0.538177 0.545898 0.545898 0.545898 0.553558 0.553558 0.553558 0.561554 0.561554 0.561554 0.569458 0.569458 0.569458 0.577698 0.577698 0.577698 0.586090 0.586090 0.586090 0.594391 0.594391 0.594391 0.602966 0.602966 0.602966 0.611603 0.611603 0.611603 0.620117 0.620117 0.620117 0.628845 0.628845 0.628845 0.413208 0.413208 0.413208 0.420074 0.420074 0.420074 0.426727 0.426727 0.426727 0.433502 0.433502 0.433502 0.440277 0.440277 0.440277 0.446838 0.446838 0.446838 0.453613 0.453613 0.453613 0.460358 0.460358 0.460358 0.466949 0.466949 0.466949 0.473785 0.473785 0.473785 0.480499 0.480499 0.480499 0.487427 0.487427 0.487427 0.494415 0.494415 0.494415 0.501312 0.501312 0.501312 0.508453 0.508453 0.508453 0.515747 0.515747 0.515747 0.522888 0.522888 0.522888 0.530396 0.530396 0.530396 0.537964 0.537964 0.537964 0.545502 0.545502 0.545502 0.553375 0.553375 0.553375 0.561340 0.561340 0.561340 0.569244 0.569244 0.569244 0.577515 0.577515 0.577515 0.585663 0.585663 0.585663 0.594147 0.594147 0.594147 0.602722 0.602722 0.602722 0.611176 0.611176 0.611176 0.619873 0.619873 0.619873 0.628632 0.628632 0.628632 0.637146 0.637146 0.637146 0.645905 0.645905 0.645905 0.426544 0.426544 0.426544 0.433319 0.433319 0.433319 0.439941 0.439941 0.439941 0.446686 0.446686 0.446686 0.453430 0.453430 0.453430 0.460022 0.460022 0.460022 0.466797 0.466797 0.466797 0.473633 0.473633 0.473633 0.480316 0.480316 0.480316 0.487244 0.487244 0.487244 0.494049 0.494049 0.494049 0.501129 0.501129 0.501129 0.508301 0.508301 0.508301 0.515381 0.515381 0.515381 0.522736 0.522736 0.522736 0.530212 0.530212 0.530212 0.537598 0.537598 0.537598 0.545319 0.545319 0.545319 0.553162 0.553162 0.553162 0.560944 0.560944 0.560944 0.569061 0.569061 0.569061 0.577118 0.577118 0.577118 0.585449 0.585449 0.585449 0.593964 0.593964 0.593964 0.602325 0.602325 0.602325 0.610992 0.610992 0.610992 0.619690 0.619690 0.619690 0.628174 0.628174 0.628174 0.636963 0.636963 0.636963 0.645691 0.645691 0.645691 0.654236 0.654236 0.654236 0.662933 0.662933 0.662933 0.439758 0.439758 0.439758 0.446503 0.446503 0.446503 0.453064 0.453064 0.453064 0.459869 0.459869 0.459869 0.466614 0.466614 0.466614 0.473297 0.473297 0.473297 0.480164 0.480164 0.480164 0.486908 0.486908 0.486908 0.493896 0.493896 0.493896 0.500946 0.500946 0.500946 0.507935 0.507935 0.507935 0.515198 0.515198 0.515198 0.522552 0.522552 0.522552 0.529816 0.529816 0.529816 0.537415 0.537415 0.537415 0.545135 0.545135 0.545135 0.552734 0.552734 0.552734 0.560760 0.560760 0.560760 0.568817 0.568817 0.568817 0.576874 0.576874 0.576874 0.585266 0.585266 0.585266 0.593536 0.593536 0.593536 0.602081 0.602081 0.602081 0.610748 0.610748 0.610748 0.619232 0.619232 0.619232 0.627960 0.627960 0.627960 0.636719 0.636719 0.636719 0.645264 0.645264 0.645264 0.653992 0.653992 0.653992 0.662689 0.662689 0.662689 0.671112 0.671112 0.671112 0.679657 0.679657 0.679657 0.452911 0.452911 0.452911 0.459656 0.459656 0.459656 0.466278 0.466278 0.466278 0.473114 0.473114 0.473114 0.479950 0.479950 0.479950 0.486694 0.486694 0.486694 0.493683 0.493683 0.493683 0.500610 0.500610 0.500610 0.507751 0.507751 0.507751 0.514984 0.514984 0.514984 0.522186 0.522186 0.522186 0.529633 0.529633 0.529633 0.537201 0.537201 0.537201 0.544739 0.544739 0.544739 0.552582 0.552582 0.552582 0.560516 0.560516 0.560516 0.568451 0.568451 0.568451 0.576691 0.576691 0.576691 0.584839 0.584839 0.584839 0.593323 0.593323 0.593323 0.601898 0.601898 0.601898 0.610321 0.610321 0.610321 0.619049 0.619049 0.619049 0.627747 0.627747 0.627747 0.636322 0.636322 0.636322 0.645050 0.645050 0.645050 0.653778 0.653778 0.653778 0.662262 0.662262 0.662262 0.670898 0.670898 0.670898 0.679260 0.679260 0.679260 0.687714 0.687714 0.687714 0.696167 0.696167 0.696167 0.466125 0.466125 0.466125 0.472931 0.472931 0.472931 0.479614 0.479614 0.479614 0.486542 0.486542 0.486542 0.493378 0.493378 0.493378 0.500427 0.500427 0.500427 0.507568 0.507568 0.507568 0.514618 0.514618 0.514618 0.521973 0.521973 0.521973 0.529449 0.529449 0.529449 0.536835 0.536835 0.536835 0.544525 0.544525 0.544525 0.552368 0.552368 0.552368 0.560120 0.560120 0.560120 0.568237 0.568237 0.568237 0.576263 0.576263 0.576263 0.584656 0.584656 0.584656 0.593079 0.593079 0.593079 0.601440 0.601440 0.601440 0.610107 0.610107 0.610107 0.618805 0.618805 0.618805 0.627319 0.627319 0.627319 0.636078 0.636078 0.636078 0.644836 0.644836 0.644836 0.653320 0.653320 0.653320 0.662018 0.662018 0.662018 0.670685 0.670685 0.670685 0.679047 0.679047 0.679047 0.687531 0.687531 0.687531 0.695709 0.695709 0.695709 0.703979 0.703979 0.703979 0.712128 0.712128 0.712128 0.479462 0.479462 0.479462 0.486359 0.486359 0.486359 0.493195 0.493195 0.493195 0.500244 0.500244 0.500244 0.507202 0.507202 0.507202 0.514465 0.514465 0.514465 0.521820 0.521820 0.521820 0.529083 0.529083 0.529083 0.536621 0.536621 0.536621 0.544342 0.544342 0.544342 0.551971 0.551971 0.551971 0.559937 0.559937 0.559937 0.568024 0.568024 0.568024 0.576080 0.576080 0.576080 0.584412 0.584412 0.584412 0.592682 0.592682 0.592682 0.601257 0.601257 0.601257 0.609894 0.609894 0.609894 0.618378 0.618378 0.618378 0.627106 0.627106 0.627106 0.635864 0.635864 0.635864 0.644379 0.644379 0.644379 0.653137 0.653137 0.653137 0.661804 0.661804 0.661804 0.670227 0.670227 0.670227 0.678833 0.678833 0.678833 0.687103 0.687103 0.687103 0.695496 0.695496 0.695496 0.703796 0.703796 0.703796 0.711731 0.711731 0.711731 0.719788 0.719788 0.719788 0.727600 0.727600 0.727600 0.493011 0.493011 0.493011 0.500061 0.500061 0.500061 0.507050 0.507050 0.507050 0.514282 0.514282 0.514282 0.521423 0.521423 0.521423 0.528870 0.528870 0.528870 0.536438 0.536438 0.536438 0.543945 0.543945 0.543945 0.551788 0.551788 0.551788 0.559753 0.559753 0.559753 0.567627 0.567627 0.567627 0.575867 0.575867 0.575867 0.584015 0.584015 0.584015 0.592438 0.592438 0.592438 0.601013 0.601013 0.601013 0.609467 0.609467 0.609467 0.618134 0.618134 0.618134 0.626862 0.626862 0.626862 0.635406 0.635406 0.635406 0.644196 0.644196 0.644196 0.652924 0.652924 0.652924 0.661377 0.661377 0.661377 0.670044 0.670044 0.670044 0.678650 0.678650 0.678650 0.686920 0.686920 0.686920 0.695282 0.695282 0.695282 0.703400 0.703400 0.703400 0.711548 0.711548 0.711548 0.719543 0.719543 0.719543 0.727203 0.727203 0.727203 0.734924 0.734924 0.734924 0.742462 0.742462 0.742462 0.506836 0.506836 0.506836 0.513885 0.513885 0.513885 0.521240 0.521240 0.521240 0.528687 0.528687 0.528687 0.536072 0.536072 0.536072 0.543762 0.543762 0.543762 0.551575 0.551575 0.551575 0.559326 0.559326 0.559326 0.567383 0.567383 0.567383 0.575653 0.575653 0.575653 0.583771 0.583771 0.583771 0.592255 0.592255 0.592255 0.600616 0.600616 0.600616 0.609253 0.609253 0.609253 0.617950 0.617950 0.617950 0.626465 0.626465 0.626465 0.635193 0.635193 0.635193 0.643982 0.643982 0.643982 0.652466 0.652466 0.652466 0.661194 0.661194 0.661194 0.669800 0.669800 0.669800 0.678162 0.678162 0.678162 0.686676 0.686676 0.686676 0.694885 0.694885 0.694885 0.703156 0.703156 0.703156 0.711334 0.711334 0.711334 0.719147 0.719147 0.719147 0.727020 0.727020 0.727020 0.734711 0.734711 0.734711 0.742065 0.742065 0.742065 0.749420 0.749420 0.749420 0.756561 0.756561 0.756561 0.521057 0.521057 0.521057 0.528320 0.528320 0.528320 0.535858 0.535858 0.535858 0.543579 0.543579 0.543579 0.551178 0.551178 0.551178 0.559113 0.559113 0.559113 0.567200 0.567200 0.567200 0.575195 0.575195 0.575195 0.583557 0.583557 0.583557 0.592041 0.592041 0.592041 0.600372 0.600372 0.600372 0.609009 0.609009 0.609009 0.617493 0.617493 0.617493 0.626221 0.626221 0.626221 0.635010 0.635010 0.635010 0.643524 0.643524 0.643524 0.652252 0.652252 0.652252 0.660980 0.660980 0.660980 0.669403 0.669403 0.669403 0.677979 0.677979 0.677979 0.686493 0.686493 0.686493 0.694672 0.694672 0.694672 0.702972 0.702972 0.702972 0.710938 0.710938 0.710938 0.718964 0.718964 0.718964 0.726807 0.726807 0.726807 0.734344 0.734344 0.734344 0.741882 0.741882 0.741882 0.749237 0.749237 0.749237 0.756226 0.756226 0.756226 0.763123 0.763123 0.763123 0.769867 0.769867 0.769867 0.535706 0.535706 0.535706 0.543182 0.543182 0.543182 0.550995 0.550995 0.550995 0.558929 0.558929 0.558929 0.566803 0.566803 0.566803 0.575012 0.575012 0.575012 0.583374 0.583374 0.583374 0.591614 0.591614 0.591614 0.600159 0.600159 0.600159 0.608582 0.608582 0.608582 0.617279 0.617279 0.617279 0.626038 0.626038 0.626038 0.634521 0.634521 0.634521 0.643311 0.643311 0.643311 0.652039 0.652039 0.652039 0.660522 0.660522 0.660522 0.669159 0.669159 0.669159 0.677734 0.677734 0.677734 0.686035 0.686035 0.686035 0.694458 0.694458 0.694458 0.702545 0.702545 0.702545 0.710724 0.710724 0.710724 0.718750 0.718750 0.718750 0.726440 0.726440 0.726440 0.734192 0.734192 0.734192 0.741699 0.741699 0.741699 0.748840 0.748840 0.748840 0.756042 0.756042 0.756042 0.762970 0.762970 0.762970 0.769531 0.769531 0.769531 0.776031 0.776031 0.776031 0.782135 0.782135 0.782135 0.550781 0.550781 0.550781 0.558563 0.558563 0.558563 0.566589 0.566589 0.566589 0.574799 0.574799 0.574799 0.582947 0.582947 0.582947 0.591400 0.591400 0.591400 0.599945 0.599945 0.599945 0.608368 0.608368 0.608368 0.617065 0.617065 0.617065 0.625580 0.625580 0.625580 0.634308 0.634308 0.634308 0.643066 0.643066 0.643066 0.651611 0.651611 0.651611 0.660309 0.660309 0.660309 0.668945 0.668945 0.668945 0.677338 0.677338 0.677338 0.685822 0.685822 0.685822 0.694244 0.694244 0.694244 0.702362 0.702362 0.702362 0.710510 0.710510 0.710510 0.718353 0.718353 0.718353 0.726257 0.726257 0.726257 0.733978 0.733978 0.733978 0.741333 0.741333 0.741333 0.748688 0.748688 0.748688 0.755859 0.755859 0.755859 0.762604 0.762604 0.762604 0.769348 0.769348 0.769348 0.775848 0.775848 0.775848 0.781952 0.781952 0.781952 0.787994 0.787994 0.787994 0.793640 0.793640 0.793640 0.566376 0.566376 0.566376 0.574402 0.574402 0.574402 0.582703 0.582703 0.582703 0.591187 0.591187 0.591187 0.599518 0.599518 0.599518 0.608154 0.608154 0.608154 0.616638 0.616638 0.616638 0.625336 0.625336 0.625336 0.634125 0.634125 0.634125 0.642670 0.642670 0.642670 0.651367 0.651367 0.651367 0.660095 0.660095 0.660095 0.668518 0.668518 0.668518 0.677094 0.677094 0.677094 0.685638 0.685638 0.685638 0.693817 0.693817 0.693817 0.702118 0.702118 0.702118 0.710297 0.710297 0.710297 0.718140 0.718140 0.718140 0.726044 0.726044 0.726044 0.733582 0.733582 0.733582 0.741150 0.741150 0.741150 0.748474 0.748474 0.748474 0.755493 0.755493 0.755493 0.762451 0.762451 0.762451 0.769226 0.769226 0.769226 0.775574 0.775574 0.775574 0.781799 0.781799 0.781799 0.787720 0.787720 0.787720 0.793488 0.793488 0.793488 0.799011 0.799011 0.799011 0.804138 0.804138 0.804138 0.091705 0.091705 0.091705 0.097229 0.097229 0.097229 0.102997 0.102997 0.102997 0.108948 0.108948 0.108948 0.115387 0.115387 0.115387 0.122162 0.122162 0.122162 0.129120 0.129120 0.129120 0.136688 0.136688 0.136688 0.144684 0.144684 0.144684 0.152954 0.152954 0.152954 0.161926 0.161926 0.161926 0.171173 0.171173 0.171173 0.181000 0.181000 0.181000 0.191132 0.191132 0.191132 0.201233 0.201233 0.201233 0.211639 0.211639 0.211639 0.222015 0.222015 0.222015 0.232025 0.232025 0.232025 0.242126 0.242126 0.242126 0.252014 0.252014 0.252014 0.261505 0.261505 0.261505 0.271057 0.271057 0.271057 0.280182 0.280182 0.280182 0.289368 0.289368 0.289368 0.298370 0.298370 0.298370 0.306976 0.306976 0.306976 0.315613 0.315613 0.315613 0.324066 0.324066 0.324066 0.332153 0.332153 0.332153 0.340271 0.340271 0.340271 0.348236 0.348236 0.348236 0.355835 0.355835 0.355835 0.102692 0.102692 0.102692 0.108795 0.108795 0.108795 0.115204 0.115204 0.115204 0.121796 0.121796 0.121796 0.128937 0.128937 0.128937 0.136475 0.136475 0.136475 0.144257 0.144257 0.144257 0.152740 0.152740 0.152740 0.161499 0.161499 0.161499 0.170929 0.170929 0.170929 0.180725 0.180725 0.180725 0.190643 0.190643 0.190643 0.200958 0.200958 0.200958 0.211365 0.211365 0.211365 0.221527 0.221527 0.221527 0.231750 0.231750 0.231750 0.241882 0.241882 0.241882 0.251526 0.251526 0.251526 0.261261 0.261261 0.261261 0.270813 0.270813 0.270813 0.279968 0.279968 0.279968 0.289124 0.289124 0.289124 0.297943 0.297943 0.297943 0.306763 0.306763 0.306763 0.315399 0.315399 0.315399 0.323639 0.323639 0.323639 0.331940 0.331940 0.331940 0.340088 0.340088 0.340088 0.347870 0.347870 0.347870 0.355682 0.355682 0.355682 0.363312 0.363312 0.363312 0.370667 0.370667 0.370667 0.114868 0.114868 0.114868 0.121643 0.121643 0.121643 0.128784 0.128784 0.128784 0.136108 0.136108 0.136108 0.144073 0.144073 0.144073 0.152557 0.152557 0.152557 0.161255 0.161255 0.161255 0.170685 0.170685 0.170685 0.180237 0.180237 0.180237 0.190399 0.190399 0.190399 0.200714 0.200714 0.200714 0.210846 0.210846 0.210846 0.221252 0.221252 0.221252 0.231476 0.231476 0.231476 0.241364 0.241364 0.241364 0.251282 0.251282 0.251282 0.261047 0.261047 0.261047 0.270355 0.270355 0.270355 0.279724 0.279724 0.279724 0.288696 0.288696 0.288696 0.297699 0.297699 0.297699 0.306519 0.306519 0.306519 0.314972 0.314972 0.314972 0.323425 0.323425 0.323425 0.331757 0.331757 0.331757 0.339691 0.339691 0.339691 0.347656 0.347656 0.347656 0.355469 0.355469 0.355469 0.362946 0.362946 0.362946 0.370514 0.370514 0.370514 0.377716 0.377716 0.377716 0.385010 0.385010 0.385010 0.128387 0.128387 0.128387 0.135895 0.135895 0.135895 0.143860 0.143860 0.143860 0.152100 0.152100 0.152100 0.161011 0.161011 0.161011 0.170197 0.170197 0.170197 0.179993 0.179993 0.179993 0.190094 0.190094 0.190094 0.200165 0.200165 0.200165 0.210602 0.210602 0.210602 0.220978 0.220978 0.220978 0.231018 0.231018 0.231018 0.241119 0.241119 0.241119 0.251038 0.251038 0.251038 0.260559 0.260559 0.260559 0.270142 0.270142 0.270142 0.279510 0.279510 0.279510 0.288483 0.288483 0.288483 0.297485 0.297485 0.297485 0.306122 0.306122 0.306122 0.314728 0.314728 0.314728 0.323242 0.323242 0.323242 0.331329 0.331329 0.331329 0.339478 0.339478 0.339478 0.347443 0.347443 0.347443 0.355072 0.355072 0.355072 0.362762 0.362762 0.362762 0.370300 0.370300 0.370300 0.377502 0.377502 0.377502 0.384827 0.384827 0.384827 0.391846 0.391846 0.391846 0.398926 0.398926 0.398926 0.143463 0.143463 0.143463 0.151886 0.151886 0.151886 0.160767 0.160767 0.160767 0.169952 0.169952 0.169952 0.179749 0.179749 0.179749 0.189606 0.189606 0.189606 0.199921 0.199921 0.199921 0.210327 0.210327 0.210327 0.220459 0.220459 0.220459 0.230774 0.230774 0.230774 0.240875 0.240875 0.240875 0.250549 0.250549 0.250549 0.260315 0.260315 0.260315 0.269867 0.269867 0.269867 0.279053 0.279053 0.279053 0.288239 0.288239 0.288239 0.297028 0.297028 0.297028 0.305878 0.305878 0.305878 0.314545 0.314545 0.314545 0.322815 0.322815 0.322815 0.331116 0.331116 0.331116 0.339264 0.339264 0.339264 0.347046 0.347046 0.347046 0.354889 0.354889 0.354889 0.362579 0.362579 0.362579 0.369904 0.369904 0.369904 0.377350 0.377350 0.377350 0.384460 0.384460 0.384460 0.391663 0.391663 0.391663 0.398773 0.398773 0.398773 0.405579 0.405579 0.405579 0.412537 0.412537 0.412537 0.160339 0.160339 0.160339 0.169708 0.169708 0.169708 0.179260 0.179260 0.179260 0.189301 0.189301 0.189301 0.199677 0.199677 0.199677 0.209808 0.209808 0.209808 0.220215 0.220215 0.220215 0.230530 0.230530 0.230530 0.240356 0.240356 0.240356 0.250305 0.250305 0.250305 0.260040 0.260040 0.260040 0.269379 0.269379 0.269379 0.278809 0.278809 0.278809 0.287781 0.287781 0.287781 0.296783 0.296783 0.296783 0.305664 0.305664 0.305664 0.314117 0.314117 0.314117 0.322601 0.322601 0.322601 0.330902 0.330902 0.330902 0.338837 0.338837 0.338837 0.346863 0.346863 0.346863 0.354675 0.354675 0.354675 0.362183 0.362183 0.362183 0.369751 0.369751 0.369751 0.377136 0.377136 0.377136 0.384277 0.384277 0.384277 0.391449 0.391449 0.391449 0.398407 0.398407 0.398407 0.405426 0.405426 0.405426 0.412354 0.412354 0.412354 0.419037 0.419037 0.419037 0.425873 0.425873 0.425873 0.179016 0.179016 0.179016 0.189056 0.189056 0.189056 0.199158 0.199158 0.199158 0.209564 0.209564 0.209564 0.219940 0.219940 0.219940 0.230011 0.230011 0.230011 0.240112 0.240112 0.240112 0.250031 0.250031 0.250031 0.259583 0.259583 0.259583 0.269135 0.269135 0.269135 0.278564 0.278564 0.278564 0.287567 0.287567 0.287567 0.296600 0.296600 0.296600 0.305206 0.305206 0.305206 0.313904 0.313904 0.313904 0.322388 0.322388 0.322388 0.330505 0.330505 0.330505 0.338684 0.338684 0.338684 0.346649 0.346649 0.346649 0.354279 0.354279 0.354279 0.362000 0.362000 0.362000 0.369568 0.369568 0.369568 0.376770 0.376770 0.376770 0.384094 0.384094 0.384094 0.391113 0.391113 0.391113 0.398224 0.398224 0.398224 0.405243 0.405243 0.405243 0.412018 0.412018 0.412018 0.418884 0.418884 0.418884 0.425690 0.425690 0.425690 0.432312 0.432312 0.432312 0.439087 0.439087 0.439087 0.198914 0.198914 0.198914 0.209290 0.209290 0.209290 0.219452 0.219452 0.219452 0.229736 0.229736 0.229736 0.239868 0.239868 0.239868 0.249542 0.249542 0.249542 0.259338 0.259338 0.259338 0.268921 0.268921 0.268921 0.278107 0.278107 0.278107 0.287323 0.287323 0.287323 0.296112 0.296112 0.296112 0.304993 0.304993 0.304993 0.313690 0.313690 0.313690 0.321960 0.321960 0.321960 0.330322 0.330322 0.330322 0.338470 0.338470 0.338470 0.346252 0.346252 0.346252 0.354095 0.354095 0.354095 0.361816 0.361816 0.361816 0.369171 0.369171 0.369171 0.376587 0.376587 0.376587 0.383911 0.383911 0.383911 0.390961 0.390961 0.390961 0.398010 0.398010 0.398010 0.404907 0.404907 0.404907 0.411804 0.411804 0.411804 0.418732 0.418732 0.418732 0.425385 0.425385 0.425385 0.432159 0.432159 0.432159 0.438904 0.438904 0.438904 0.445496 0.445496 0.445496 0.452271 0.452271 0.452271 0.219177 0.219177 0.219177 0.229462 0.229462 0.229462 0.239349 0.239349 0.239349 0.249329 0.249329 0.249329 0.259094 0.259094 0.259094 0.268463 0.268463 0.268463 0.277863 0.277863 0.277863 0.287109 0.287109 0.287109 0.295898 0.295898 0.295898 0.304810 0.304810 0.304810 0.313263 0.313263 0.313263 0.321747 0.321747 0.321747 0.330109 0.330109 0.330109 0.338043 0.338043 0.338043 0.346069 0.346069 0.346069 0.353912 0.353912 0.353912 0.361420 0.361420 0.361420 0.368988 0.368988 0.368988 0.376434 0.376434 0.376434 0.383545 0.383545 0.383545 0.390747 0.390747 0.390747 0.397705 0.397705 0.397705 0.404724 0.404724 0.404724 0.411652 0.411652 0.411652 0.418365 0.418365 0.418365 0.425171 0.425171 0.425171 0.431976 0.431976 0.431976 0.438568 0.438568 0.438568 0.445343 0.445343 0.445343 0.452087 0.452087 0.452087 0.458649 0.458649 0.458649 0.465454 0.465454 0.465454 0.239136 0.239136 0.239136 0.249084 0.249084 0.249084 0.258606 0.258606 0.258606 0.268219 0.268219 0.268219 0.277618 0.277618 0.277618 0.286652 0.286652 0.286652 0.295715 0.295715 0.295715 0.304565 0.304565 0.304565 0.313049 0.313049 0.313049 0.321564 0.321564 0.321564 0.329712 0.329712 0.329712 0.337860 0.337860 0.337860 0.345886 0.345886 0.345886 0.353516 0.353516 0.353516 0.361267 0.361267 0.361267 0.368805 0.368805 0.368805 0.376068 0.376068 0.376068 0.383362 0.383362 0.383362 0.390594 0.390594 0.390594 0.397522 0.397522 0.397522 0.404510 0.404510 0.404510 0.411316 0.411316 0.411316 0.418182 0.418182 0.418182 0.425018 0.425018 0.425018 0.431641 0.431641 0.431641 0.438385 0.438385 0.438385 0.445160 0.445160 0.445160 0.451752 0.451752 0.451752 0.458496 0.458496 0.458496 0.465271 0.465271 0.465271 0.471893 0.471893 0.471893 0.478760 0.478760 0.478760 0.258362 0.258362 0.258362 0.267975 0.267975 0.267975 0.277161 0.277161 0.277161 0.286407 0.286407 0.286407 0.295471 0.295471 0.295471 0.304138 0.304138 0.304138 0.312836 0.312836 0.312836 0.321167 0.321167 0.321167 0.329468 0.329468 0.329468 0.337677 0.337677 0.337677 0.345459 0.345459 0.345459 0.353363 0.353363 0.353363 0.361053 0.361053 0.361053 0.368408 0.368408 0.368408 0.375854 0.375854 0.375854 0.383179 0.383179 0.383179 0.390228 0.390228 0.390228 0.397339 0.397339 0.397339 0.404175 0.404175 0.404175 0.411133 0.411133 0.411133 0.417999 0.417999 0.417999 0.424683 0.424683 0.424683 0.431488 0.431488 0.431488 0.438263 0.438263 0.438263 0.444824 0.444824 0.444824 0.451569 0.451569 0.451569 0.458313 0.458313 0.458313 0.464935 0.464935 0.464935 0.471741 0.471741 0.471741 0.478424 0.478424 0.478424 0.485321 0.485321 0.485321 0.492310 0.492310 0.492310 0.276917 0.276917 0.276917 0.286194 0.286194 0.286194 0.295013 0.295013 0.295013 0.303925 0.303925 0.303925 0.312622 0.312622 0.312622 0.320923 0.320923 0.320923 0.329285 0.329285 0.329285 0.337250 0.337250 0.337250 0.345306 0.345306 0.345306 0.353149 0.353149 0.353149 0.360657 0.360657 0.360657 0.368225 0.368225 0.368225 0.375702 0.375702 0.375702 0.382843 0.382843 0.382843 0.390045 0.390045 0.390045 0.397186 0.397186 0.397186 0.403992 0.403992 0.403992 0.410980 0.410980 0.410980 0.417664 0.417664 0.417664 0.424500 0.424500 0.424500 0.431305 0.431305 0.431305 0.437897 0.437897 0.437897 0.444641 0.444641 0.444641 0.451416 0.451416 0.451416 0.457977 0.457977 0.457977 0.464752 0.464752 0.464752 0.471588 0.471588 0.471588 0.478241 0.478241 0.478241 0.485138 0.485138 0.485138 0.491974 0.491974 0.491974 0.498993 0.498993 0.498993 0.506134 0.506134 0.506134 0.294830 0.294830 0.294830 0.303680 0.303680 0.303680 0.312195 0.312195 0.312195 0.320709 0.320709 0.320709 0.328827 0.328827 0.328827 0.337036 0.337036 0.337036 0.345062 0.345062 0.345062 0.352722 0.352722 0.352722 0.360474 0.360474 0.360474 0.368042 0.368042 0.368042 0.375336 0.375336 0.375336 0.382660 0.382660 0.382660 0.389862 0.389862 0.389862 0.396820 0.396820 0.396820 0.403839 0.403839 0.403839 0.410614 0.410614 0.410614 0.417480 0.417480 0.417480 0.424347 0.424347 0.424347 0.430969 0.430969 0.430969 0.437744 0.437744 0.437744 0.444489 0.444489 0.444489 0.451080 0.451080 0.451080 0.457825 0.457825 0.457825 0.464600 0.464600 0.464600 0.471222 0.471222 0.471222 0.478088 0.478088 0.478088 0.484802 0.484802 0.484802 0.491760 0.491760 0.491760 0.498840 0.498840 0.498840 0.505768 0.505768 0.505768 0.513000 0.513000 0.513000 0.520325 0.520325 0.520325 0.311981 0.311981 0.311981 0.320496 0.320496 0.320496 0.328674 0.328674 0.328674 0.336853 0.336853 0.336853 0.344666 0.344666 0.344666 0.352539 0.352539 0.352539 0.360260 0.360260 0.360260 0.367676 0.367676 0.367676 0.375122 0.375122 0.375122 0.382446 0.382446 0.382446 0.389526 0.389526 0.389526 0.396637 0.396637 0.396637 0.403656 0.403656 0.403656 0.410461 0.410461 0.410461 0.417328 0.417328 0.417328 0.424011 0.424011 0.424011 0.430817 0.430817 0.430817 0.437592 0.437592 0.437592 0.444153 0.444153 0.444153 0.450897 0.450897 0.450897 0.457642 0.457642 0.457642 0.464233 0.464233 0.464233 0.471069 0.471069 0.471069 0.477936 0.477936 0.477936 0.484650 0.484650 0.484650 0.491608 0.491608 0.491608 0.498474 0.498474 0.498474 0.505615 0.505615 0.505615 0.512817 0.512817 0.512817 0.519958 0.519958 0.519958 0.527374 0.527374 0.527374 0.534943 0.534943 0.534943 0.328461 0.328461 0.328461 0.336426 0.336426 0.336426 0.344482 0.344482 0.344482 0.352325 0.352325 0.352325 0.359894 0.359894 0.359894 0.367462 0.367462 0.367462 0.374969 0.374969 0.374969 0.382080 0.382080 0.382080 0.389313 0.389313 0.389313 0.396454 0.396454 0.396454 0.403320 0.403320 0.403320 0.410278 0.410278 0.410278 0.416962 0.416962 0.416962 0.423828 0.423828 0.423828 0.430603 0.430603 0.430603 0.437225 0.437225 0.437225 0.443970 0.443970 0.443970 0.450714 0.450714 0.450714 0.457306 0.457306 0.457306 0.464081 0.464081 0.464081 0.470886 0.470886 0.470886 0.477570 0.477570 0.477570 0.484467 0.484467 0.484467 0.491425 0.491425 0.491425 0.498291 0.498291 0.498291 0.505432 0.505432 0.505432 0.512451 0.512451 0.512451 0.519775 0.519775 0.519775 0.527191 0.527191 0.527191 0.534546 0.534546 0.534546 0.542206 0.542206 0.542206 0.550018 0.550018 0.550018 0.344269 0.344269 0.344269 0.351959 0.351959 0.351959 0.359711 0.359711 0.359711 0.367310 0.367310 0.367310 0.374573 0.374573 0.374573 0.381927 0.381927 0.381927 0.389160 0.389160 0.389160 0.396088 0.396088 0.396088 0.403168 0.403168 0.403168 0.410095 0.410095 0.410095 0.416840 0.416840 0.416840 0.423676 0.423676 0.423676 0.430298 0.430298 0.430298 0.437073 0.437073 0.437073 0.443817 0.443817 0.443817 0.450378 0.450378 0.450378 0.457123 0.457123 0.457123 0.463928 0.463928 0.463928 0.470551 0.470551 0.470551 0.477386 0.477386 0.477386 0.484283 0.484283 0.484283 0.491089 0.491089 0.491089 0.498077 0.498077 0.498077 0.505066 0.505066 0.505066 0.512268 0.512268 0.512268 0.519592 0.519592 0.519592 0.526825 0.526825 0.526825 0.534363 0.534363 0.534363 0.542023 0.542023 0.542023 0.549622 0.549622 0.549622 0.557526 0.557526 0.557526 0.565582 0.565582 0.565582 0.359497 0.359497 0.359497 0.366943 0.366943 0.366943 0.374390 0.374390 0.374390 0.381744 0.381744 0.381744 0.388794 0.388794 0.388794 0.395935 0.395935 0.395935 0.402954 0.402954 0.402954 0.409760 0.409760 0.409760 0.416656 0.416656 0.416656 0.423462 0.423462 0.423462 0.430115 0.430115 0.430115 0.436890 0.436890 0.436890 0.443451 0.443451 0.443451 0.450226 0.450226 0.450226 0.456970 0.456970 0.456970 0.463562 0.463562 0.463562 0.470367 0.470367 0.470367 0.477203 0.477203 0.477203 0.483948 0.483948 0.483948 0.490906 0.490906 0.490906 0.497955 0.497955 0.497955 0.504883 0.504883 0.504883 0.512085 0.512085 0.512085 0.519226 0.519226 0.519226 0.526642 0.526642 0.526642 0.534180 0.534180 0.534180 0.541656 0.541656 0.541656 0.549408 0.549408 0.549408 0.557343 0.557343 0.557343 0.565186 0.565186 0.565186 0.573364 0.573364 0.573364 0.581696 0.581696 0.581696 0.374207 0.374207 0.374207 0.381378 0.381378 0.381378 0.388611 0.388611 0.388611 0.395752 0.395752 0.395752 0.402618 0.402618 0.402618 0.409576 0.409576 0.409576 0.416473 0.416473 0.416473 0.423126 0.423126 0.423126 0.429932 0.429932 0.429932 0.436707 0.436707 0.436707 0.443298 0.443298 0.443298 0.450073 0.450073 0.450073 0.456635 0.456635 0.456635 0.463409 0.463409 0.463409 0.470184 0.470184 0.470184 0.476868 0.476868 0.476868 0.483734 0.483734 0.483734 0.490692 0.490692 0.490692 0.497589 0.497589 0.497589 0.504700 0.504700 0.504700 0.511902 0.511902 0.511902 0.519043 0.519043 0.519043 0.526428 0.526428 0.526428 0.533783 0.533783 0.533783 0.541443 0.541443 0.541443 0.549225 0.549225 0.549225 0.556946 0.556946 0.556946 0.564972 0.564972 0.564972 0.573151 0.573151 0.573151 0.581268 0.581268 0.581268 0.589691 0.589691 0.589691 0.598236 0.598236 0.598236 0.388428 0.388428 0.388428 0.395416 0.395416 0.395416 0.402435 0.402435 0.402435 0.409424 0.409424 0.409424 0.416138 0.416138 0.416138 0.422974 0.422974 0.422974 0.429779 0.429779 0.429779 0.436371 0.436371 0.436371 0.443146 0.443146 0.443146 0.449707 0.449707 0.449707 0.456451 0.456451 0.456451 0.463226 0.463226 0.463226 0.469879 0.469879 0.469879 0.476685 0.476685 0.476685 0.483612 0.483612 0.483612 0.490387 0.490387 0.490387 0.497406 0.497406 0.497406 0.504517 0.504517 0.504517 0.511536 0.511536 0.511536 0.518860 0.518860 0.518860 0.526062 0.526062 0.526062 0.533600 0.533600 0.533600 0.541260 0.541260 0.541260 0.548828 0.548828 0.548828 0.556732 0.556732 0.556732 0.564758 0.564758 0.564758 0.572754 0.572754 0.572754 0.581024 0.581024 0.581024 0.589478 0.589478 0.589478 0.597809 0.597809 0.597809 0.606445 0.606445 0.606445 0.614899 0.614899 0.614899 0.402252 0.402252 0.402252 0.409058 0.409058 0.409058 0.415955 0.415955 0.415955 0.422791 0.422791 0.422791 0.429443 0.429443 0.429443 0.436218 0.436218 0.436218 0.442963 0.442963 0.442963 0.449554 0.449554 0.449554 0.456299 0.456299 0.456299 0.462921 0.462921 0.462921 0.469696 0.469696 0.469696 0.476532 0.476532 0.476532 0.483246 0.483246 0.483246 0.490173 0.490173 0.490173 0.497223 0.497223 0.497223 0.504181 0.504181 0.504181 0.511353 0.511353 0.511353 0.518677 0.518677 0.518677 0.525879 0.525879 0.525879 0.533417 0.533417 0.533417 0.540863 0.540863 0.540863 0.548645 0.548645 0.548645 0.556519 0.556519 0.556519 0.564362 0.564362 0.564362 0.572540 0.572540 0.572540 0.580841 0.580841 0.580841 0.589081 0.589081 0.589081 0.597595 0.597595 0.597595 0.606201 0.606201 0.606201 0.614655 0.614655 0.614655 0.623383 0.623383 0.623383 0.631897 0.631897 0.631897 0.415802 0.415802 0.415802 0.422455 0.422455 0.422455 0.429260 0.429260 0.429260 0.436035 0.436035 0.436035 0.442627 0.442627 0.442627 0.449371 0.449371 0.449371 0.455963 0.455963 0.455963 0.462708 0.462708 0.462708 0.469543 0.469543 0.469543 0.476196 0.476196 0.476196 0.483063 0.483063 0.483063 0.490051 0.490051 0.490051 0.496887 0.496887 0.496887 0.503967 0.503967 0.503967 0.511200 0.511200 0.511200 0.518280 0.518280 0.518280 0.525696 0.525696 0.525696 0.533234 0.533234 0.533234 0.540680 0.540680 0.540680 0.548431 0.548431 0.548431 0.556152 0.556152 0.556152 0.564178 0.564178 0.564178 0.572327 0.572327 0.572327 0.580414 0.580414 0.580414 0.588837 0.588837 0.588837 0.597382 0.597382 0.597382 0.605774 0.605774 0.605774 0.614441 0.614441 0.614441 0.622955 0.622955 0.622955 0.631683 0.631683 0.631683 0.640472 0.640472 0.640472 0.648987 0.648987 0.648987 0.429108 0.429108 0.429108 0.435699 0.435699 0.435699 0.442444 0.442444 0.442444 0.449188 0.449188 0.449188 0.455780 0.455780 0.455780 0.462555 0.462555 0.462555 0.469177 0.469177 0.469177 0.476013 0.476013 0.476013 0.482910 0.482910 0.482910 0.489685 0.489685 0.489685 0.496704 0.496704 0.496704 0.503784 0.503784 0.503784 0.510803 0.510803 0.510803 0.518127 0.518127 0.518127 0.525513 0.525513 0.525513 0.532867 0.532867 0.532867 0.540466 0.540466 0.540466 0.548065 0.548065 0.548065 0.555939 0.555939 0.555939 0.563995 0.563995 0.563995 0.571899 0.571899 0.571899 0.580231 0.580231 0.580231 0.588623 0.588623 0.588623 0.596954 0.596954 0.596954 0.605560 0.605560 0.605560 0.614258 0.614258 0.614258 0.622742 0.622742 0.622742 0.631500 0.631500 0.631500 0.639984 0.639984 0.639984 0.648773 0.648773 0.648773 0.657471 0.657471 0.657471 0.665924 0.665924 0.665924 0.442291 0.442291 0.442291 0.448883 0.448883 0.448883 0.455627 0.455627 0.455627 0.462219 0.462219 0.462219 0.469025 0.469025 0.469025 0.475861 0.475861 0.475861 0.482544 0.482544 0.482544 0.489502 0.489502 0.489502 0.496521 0.496521 0.496521 0.503418 0.503418 0.503418 0.510651 0.510651 0.510651 0.517944 0.517944 0.517944 0.525146 0.525146 0.525146 0.532654 0.532654 0.532654 0.540100 0.540100 0.540100 0.547821 0.547821 0.547821 0.555725 0.555725 0.555725 0.563538 0.563538 0.563538 0.571686 0.571686 0.571686 0.580017 0.580017 0.580017 0.588196 0.588196 0.588196 0.596741 0.596741 0.596741 0.605347 0.605347 0.605347 0.613770 0.613770 0.613770 0.622528 0.622528 0.622528 0.631256 0.631256 0.631256 0.639801 0.639801 0.639801 0.648529 0.648529 0.648529 0.657074 0.657074 0.657074 0.665680 0.665680 0.665680 0.674347 0.674347 0.674347 0.682648 0.682648 0.682648 0.455444 0.455444 0.455444 0.462036 0.462036 0.462036 0.468842 0.468842 0.468842 0.475494 0.475494 0.475494 0.482391 0.482391 0.482391 0.489349 0.489349 0.489349 0.496155 0.496155 0.496155 0.503265 0.503265 0.503265 0.510437 0.510437 0.510437 0.517548 0.517548 0.517548 0.524963 0.524963 0.524963 0.532471 0.532471 0.532471 0.539886 0.539886 0.539886 0.547668 0.547668 0.547668 0.555328 0.555328 0.555328 0.563354 0.563354 0.563354 0.571503 0.571503 0.571503 0.579590 0.579590 0.579590 0.588013 0.588013 0.588013 0.596527 0.596527 0.596527 0.604919 0.604919 0.604919 0.613586 0.613586 0.613586 0.622284 0.622284 0.622284 0.630829 0.630829 0.630829 0.639557 0.639557 0.639557 0.648132 0.648132 0.648132 0.656830 0.656830 0.656830 0.665497 0.665497 0.665497 0.673889 0.673889 0.673889 0.682465 0.682465 0.682465 0.690887 0.690887 0.690887 0.699036 0.699036 0.699036 0.468506 0.468506 0.468506 0.475342 0.475342 0.475342 0.482208 0.482208 0.482208 0.488983 0.488983 0.488983 0.496002 0.496002 0.496002 0.503082 0.503082 0.503082 0.510101 0.510101 0.510101 0.517395 0.517395 0.517395 0.524780 0.524780 0.524780 0.532104 0.532104 0.532104 0.539734 0.539734 0.539734 0.547272 0.547272 0.547272 0.555115 0.555115 0.555115 0.563141 0.563141 0.563141 0.571106 0.571106 0.571106 0.579376 0.579376 0.579376 0.587799 0.587799 0.587799 0.596100 0.596100 0.596100 0.604675 0.604675 0.604675 0.613342 0.613342 0.613342 0.621857 0.621857 0.621857 0.630615 0.630615 0.630615 0.639374 0.639374 0.639374 0.647888 0.647888 0.647888 0.656616 0.656616 0.656616 0.665039 0.665039 0.665039 0.673706 0.673706 0.673706 0.682251 0.682251 0.682251 0.690491 0.690491 0.690491 0.698822 0.698822 0.698822 0.707062 0.707062 0.707062 0.714966 0.714966 0.714966 0.481873 0.481873 0.481873 0.488831 0.488831 0.488831 0.495819 0.495819 0.495819 0.502747 0.502747 0.502747 0.509888 0.509888 0.509888 0.517212 0.517212 0.517212 0.524414 0.524414 0.524414 0.531891 0.531891 0.531891 0.539520 0.539520 0.539520 0.547058 0.547058 0.547058 0.554932 0.554932 0.554932 0.562775 0.562775 0.562775 0.570892 0.570892 0.570892 0.579193 0.579193 0.579193 0.587372 0.587372 0.587372 0.595856 0.595856 0.595856 0.604462 0.604462 0.604462 0.612946 0.612946 0.612946 0.621643 0.621643 0.621643 0.630371 0.630371 0.630371 0.638916 0.638916 0.638916 0.647675 0.647675 0.647675 0.656158 0.656158 0.656158 0.664856 0.664856 0.664856 0.673462 0.673462 0.673462 0.681793 0.681793 0.681793 0.690277 0.690277 0.690277 0.698608 0.698608 0.698608 0.706665 0.706665 0.706665 0.714783 0.714783 0.714783 0.722717 0.722717 0.722717 0.730316 0.730316 0.730316 0.495483 0.495483 0.495483 0.502533 0.502533 0.502533 0.509735 0.509735 0.509735 0.516815 0.516815 0.516815 0.524200 0.524200 0.524200 0.531708 0.531708 0.531708 0.539093 0.539093 0.539093 0.546875 0.546875 0.546875 0.554535 0.554535 0.554535 0.562561 0.562561 0.562561 0.570679 0.570679 0.570679 0.578766 0.578766 0.578766 0.587128 0.587128 0.587128 0.595673 0.595673 0.595673 0.604034 0.604034 0.604034 0.612701 0.612701 0.612701 0.621399 0.621399 0.621399 0.629944 0.629944 0.629944 0.638702 0.638702 0.638702 0.647430 0.647430 0.647430 0.655914 0.655914 0.655914 0.664612 0.664612 0.664612 0.673065 0.673065 0.673065 0.681610 0.681610 0.681610 0.690063 0.690063 0.690063 0.698212 0.698212 0.698212 0.706451 0.706451 0.706451 0.714569 0.714569 0.714569 0.722351 0.722351 0.722351 0.730164 0.730164 0.730164 0.737793 0.737793 0.737793 0.745026 0.745026 0.745026 0.509369 0.509369 0.509369 0.516663 0.516663 0.516663 0.524017 0.524017 0.524017 0.531342 0.531342 0.531342 0.538940 0.538940 0.538940 0.546661 0.546661 0.546661 0.554352 0.554352 0.554352 0.562347 0.562347 0.562347 0.570282 0.570282 0.570282 0.578552 0.578552 0.578552 0.586945 0.586945 0.586945 0.595215 0.595215 0.595215 0.603821 0.603821 0.603821 0.612488 0.612488 0.612488 0.621002 0.621002 0.621002 0.629730 0.629730 0.629730 0.638489 0.638489 0.638489 0.647003 0.647003 0.647003 0.655731 0.655731 0.655731 0.664215 0.664215 0.664215 0.672821 0.672821 0.672821 0.681366 0.681366 0.681366 0.689667 0.689667 0.689667 0.697998 0.697998 0.697998 0.706238 0.706238 0.706238 0.714142 0.714142 0.714142 0.722107 0.722107 0.722107 0.729919 0.729919 0.729919 0.737396 0.737396 0.737396 0.744843 0.744843 0.744843 0.751923 0.751923 0.751923 0.758972 0.758972 0.758972 0.523651 0.523651 0.523651 0.531158 0.531158 0.531158 0.538727 0.538727 0.538727 0.546295 0.546295 0.546295 0.554169 0.554169 0.554169 0.561951 0.561951 0.561951 0.570068 0.570068 0.570068 0.578308 0.578308 0.578308 0.586517 0.586517 0.586517 0.595032 0.595032 0.595032 0.603607 0.603607 0.603607 0.612061 0.612061 0.612061 0.620758 0.620758 0.620758 0.629517 0.629517 0.629517 0.638031 0.638031 0.638031 0.646790 0.646790 0.646790 0.655518 0.655518 0.655518 0.664001 0.664001 0.664001 0.672607 0.672607 0.672607 0.680969 0.680969 0.680969 0.689423 0.689423 0.689423 0.697784 0.697784 0.697784 0.705841 0.705841 0.705841 0.713959 0.713959 0.713959 0.721924 0.721924 0.721924 0.729553 0.729553 0.729553 0.737213 0.737213 0.737213 0.744690 0.744690 0.744690 0.751740 0.751740 0.751740 0.758850 0.758850 0.758850 0.765533 0.765533 0.765533 0.772125 0.772125 0.772125 0.538361 0.538361 0.538361 0.546112 0.546112 0.546112 0.553955 0.553955 0.553955 0.561737 0.561737 0.561737 0.569885 0.569885 0.569885 0.577911 0.577911 0.577911 0.586304 0.586304 0.586304 0.594818 0.594818 0.594818 0.603180 0.603180 0.603180 0.611847 0.611847 0.611847 0.620544 0.620544 0.620544 0.629059 0.629059 0.629059 0.637817 0.637817 0.637817 0.646576 0.646576 0.646576 0.655090 0.655090 0.655090 0.663788 0.663788 0.663788 0.672150 0.672150 0.672150 0.680756 0.680756 0.680756 0.689209 0.689209 0.689209 0.697388 0.697388 0.697388 0.705627 0.705627 0.705627 0.713776 0.713776 0.713776 0.721527 0.721527 0.721527 0.729370 0.729370 0.729370 0.737000 0.737000 0.737000 0.744293 0.744293 0.744293 0.751556 0.751556 0.751556 0.758453 0.758453 0.758453 0.765350 0.765350 0.765350 0.771973 0.771973 0.771973 0.778229 0.778229 0.778229 0.784424 0.784424 0.784424 0.553558 0.553558 0.553558 0.561554 0.561554 0.561554 0.569672 0.569672 0.569672 0.577698 0.577698 0.577698 0.586090 0.586090 0.586090 0.594391 0.594391 0.594391 0.602966 0.602966 0.602966 0.611603 0.611603 0.611603 0.620117 0.620117 0.620117 0.628845 0.628845 0.628845 0.637604 0.637604 0.637604 0.646149 0.646149 0.646149 0.654877 0.654877 0.654877 0.663330 0.663330 0.663330 0.671936 0.671936 0.671936 0.680511 0.680511 0.680511 0.688812 0.688812 0.688812 0.697205 0.697205 0.697205 0.705414 0.705414 0.705414 0.713348 0.713348 0.713348 0.721344 0.721344 0.721344 0.729126 0.729126 0.729126 0.736633 0.736633 0.736633 0.744110 0.744110 0.744110 0.751373 0.751373 0.751373 0.758301 0.758301 0.758301 0.765167 0.765167 0.765167 0.771667 0.771667 0.771667 0.778076 0.778076 0.778076 0.784271 0.784271 0.784271 0.790039 0.790039 0.790039 0.795715 0.795715 0.795715 0.569244 0.569244 0.569244 0.577515 0.577515 0.577515 0.585663 0.585663 0.585663 0.594147 0.594147 0.594147 0.602722 0.602722 0.602722 0.611176 0.611176 0.611176 0.619873 0.619873 0.619873 0.628632 0.628632 0.628632 0.637146 0.637146 0.637146 0.645905 0.645905 0.645905 0.654633 0.654633 0.654633 0.663116 0.663116 0.663116 0.671753 0.671753 0.671753 0.680084 0.680084 0.680084 0.688568 0.688568 0.688568 0.696991 0.696991 0.696991 0.705017 0.705017 0.705017 0.713165 0.713165 0.713165 0.721130 0.721130 0.721130 0.728760 0.728760 0.728760 0.736450 0.736450 0.736450 0.743927 0.743927 0.743927 0.751038 0.751038 0.751038 0.758118 0.758118 0.758118 0.764832 0.764832 0.764832 0.771515 0.771515 0.771515 0.777924 0.777924 0.777924 0.783966 0.783966 0.783966 0.789886 0.789886 0.789886 0.795593 0.795593 0.795593 0.800873 0.800873 0.800873 0.806061 0.806061 0.806061 0.093750 0.093750 0.093750 0.099365 0.099365 0.099365 0.105133 0.105133 0.105133 0.111328 0.111328 0.111328 0.117859 0.117859 0.117859 0.124634 0.124634 0.124634 0.131927 0.131927 0.131927 0.139435 0.139435 0.139435 0.147614 0.147614 0.147614 0.156281 0.156281 0.156281 0.165222 0.165222 0.165222 0.174805 0.174805 0.174805 0.184753 0.184753 0.184753 0.194763 0.194763 0.194763 0.205109 0.205109 0.205109 0.215546 0.215546 0.215546 0.225647 0.225647 0.225647 0.235840 0.235840 0.235840 0.245636 0.245636 0.245636 0.255463 0.255463 0.255463 0.265106 0.265106 0.265106 0.274323 0.274323 0.274323 0.283661 0.283661 0.283661 0.292786 0.292786 0.292786 0.301483 0.301483 0.301483 0.310242 0.310242 0.310242 0.318817 0.318817 0.318817 0.326996 0.326996 0.326996 0.335205 0.335205 0.335205 0.343109 0.343109 0.343109 0.350983 0.350983 0.350983 0.358734 0.358734 0.358734 0.104950 0.104950 0.104950 0.111145 0.111145 0.111145 0.117523 0.117523 0.117523 0.124420 0.124420 0.124420 0.131531 0.131531 0.131531 0.139221 0.139221 0.139221 0.147400 0.147400 0.147400 0.155792 0.155792 0.155792 0.164978 0.164978 0.164978 0.174591 0.174591 0.174591 0.184265 0.184265 0.184265 0.194489 0.194489 0.194489 0.204865 0.204865 0.204865 0.215027 0.215027 0.215027 0.225372 0.225372 0.225372 0.235321 0.235321 0.235321 0.245361 0.245361 0.245361 0.255219 0.255219 0.255219 0.264618 0.264618 0.264618 0.274109 0.274109 0.274109 0.283417 0.283417 0.283417 0.292328 0.292328 0.292328 0.301270 0.301270 0.301270 0.310028 0.310028 0.310028 0.318390 0.318390 0.318390 0.326782 0.326782 0.326782 0.334808 0.334808 0.334808 0.342865 0.342865 0.342865 0.350800 0.350800 0.350800 0.358368 0.358368 0.358368 0.365967 0.365967 0.365967 0.373474 0.373474 0.373474 0.117340 0.117340 0.117340 0.124268 0.124268 0.124268 0.131348 0.131348 0.131348 0.139038 0.139038 0.139038 0.146973 0.146973 0.146973 0.155609 0.155609 0.155609 0.164734 0.164734 0.164734 0.174072 0.174072 0.174072 0.184021 0.184021 0.184021 0.194244 0.194244 0.194244 0.204346 0.204346 0.204346 0.214752 0.214752 0.214752 0.225128 0.225128 0.225128 0.235077 0.235077 0.235077 0.245117 0.245117 0.245117 0.254730 0.254730 0.254730 0.264404 0.264404 0.264404 0.273895 0.273895 0.273895 0.282990 0.282990 0.282990 0.292114 0.292114 0.292114 0.301056 0.301056 0.301056 0.309601 0.309601 0.309601 0.318176 0.318176 0.318176 0.326599 0.326599 0.326599 0.334625 0.334625 0.334625 0.342682 0.342682 0.342682 0.350372 0.350372 0.350372 0.358154 0.358154 0.358154 0.365784 0.365784 0.365784 0.373077 0.373077 0.373077 0.380463 0.380463 0.380463 0.387695 0.387695 0.387695 0.131134 0.131134 0.131134 0.138641 0.138641 0.138641 0.146759 0.146759 0.146759 0.155396 0.155396 0.155396 0.164246 0.164246 0.164246 0.173828 0.173828 0.173828 0.183777 0.183777 0.183777 0.193695 0.193695 0.193695 0.204102 0.204102 0.204102 0.214508 0.214508 0.214508 0.224609 0.224609 0.224609 0.234833 0.234833 0.234833 0.244598 0.244598 0.244598 0.254456 0.254456 0.254456 0.264160 0.264160 0.264160 0.273407 0.273407 0.273407 0.282745 0.282745 0.282745 0.291870 0.291870 0.291870 0.300598 0.300598 0.300598 0.309357 0.309357 0.309357 0.317932 0.317932 0.317932 0.326172 0.326172 0.326172 0.334412 0.334412 0.334412 0.342468 0.342468 0.342468 0.350189 0.350189 0.350189 0.357971 0.357971 0.357971 0.365417 0.365417 0.365417 0.372894 0.372894 0.372894 0.380280 0.380280 0.380280 0.387360 0.387360 0.387360 0.394501 0.394501 0.394501 0.401550 0.401550 0.401550 0.146576 0.146576 0.146576 0.154907 0.154907 0.154907 0.164001 0.164001 0.164001 0.173584 0.173584 0.173584 0.183289 0.183289 0.183289 0.193451 0.193451 0.193451 0.203827 0.203827 0.203827 0.213989 0.213989 0.213989 0.224335 0.224335 0.224335 0.234558 0.234558 0.234558 0.244354 0.244354 0.244354 0.254211 0.254211 0.254211 0.263672 0.263672 0.263672 0.273193 0.273193 0.273193 0.282501 0.282501 0.282501 0.291412 0.291412 0.291412 0.300385 0.300385 0.300385 0.309143 0.309143 0.309143 0.317535 0.317535 0.317535 0.325958 0.325958 0.325958 0.334167 0.334167 0.334167 0.342072 0.342072 0.342072 0.349976 0.349976 0.349976 0.357574 0.357574 0.357574 0.365204 0.365204 0.365204 0.372711 0.372711 0.372711 0.379883 0.379883 0.379883 0.387177 0.387177 0.387177 0.394318 0.394318 0.394318 0.401215 0.401215 0.401215 0.408203 0.408203 0.408203 0.415100 0.415100 0.415100 0.163788 0.163788 0.163788 0.173096 0.173096 0.173096 0.182983 0.182983 0.182983 0.193207 0.193207 0.193207 0.203308 0.203308 0.203308 0.213745 0.213745 0.213745 0.224091 0.224091 0.224091 0.234070 0.234070 0.234070 0.244110 0.244110 0.244110 0.253723 0.253723 0.253723 0.263428 0.263428 0.263428 0.272949 0.272949 0.272949 0.282043 0.282043 0.282043 0.291199 0.291199 0.291199 0.300140 0.300140 0.300140 0.308716 0.308716 0.308716 0.317291 0.317291 0.317291 0.325745 0.325745 0.325745 0.333801 0.333801 0.333801 0.341858 0.341858 0.341858 0.349823 0.349823 0.349823 0.357391 0.357391 0.357391 0.365051 0.365051 0.365051 0.372314 0.372314 0.372314 0.379700 0.379700 0.379700 0.386993 0.386993 0.386993 0.393982 0.393982 0.393982 0.401031 0.401031 0.401031 0.408020 0.408020 0.408020 0.414764 0.414764 0.414764 0.421631 0.421631 0.421631 0.428406 0.428406 0.428406 0.182739 0.182739 0.182739 0.192657 0.192657 0.192657 0.203033 0.203033 0.203033 0.213470 0.213470 0.213470 0.223572 0.223572 0.223572 0.233826 0.233826 0.233826 0.243866 0.243866 0.243866 0.253479 0.253479 0.253479 0.263184 0.263184 0.263184 0.272491 0.272491 0.272491 0.281830 0.281830 0.281830 0.290985 0.290985 0.290985 0.299713 0.299713 0.299713 0.308502 0.308502 0.308502 0.317108 0.317108 0.317108 0.325317 0.325317 0.325317 0.333588 0.333588 0.333588 0.341675 0.341675 0.341675 0.349396 0.349396 0.349396 0.357208 0.357208 0.357208 0.364655 0.364655 0.364655 0.372192 0.372192 0.372192 0.379547 0.379547 0.379547 0.386597 0.386597 0.386597 0.393768 0.393768 0.393768 0.400848 0.400848 0.400848 0.407684 0.407684 0.407684 0.414612 0.414612 0.414612 0.421448 0.421448 0.421448 0.428101 0.428101 0.428101 0.434875 0.434875 0.434875 0.441437 0.441437 0.441437 0.202789 0.202789 0.202789 0.212952 0.212952 0.212952 0.223328 0.223328 0.223328 0.233551 0.233551 0.233551 0.243378 0.243378 0.243378 0.253265 0.253265 0.253265 0.262726 0.262726 0.262726 0.272247 0.272247 0.272247 0.281586 0.281586 0.281586 0.290527 0.290527 0.290527 0.299500 0.299500 0.299500 0.308289 0.308289 0.308289 0.316681 0.316681 0.316681 0.325104 0.325104 0.325104 0.333374 0.333374 0.333374 0.341278 0.341278 0.341278 0.349213 0.349213 0.349213 0.356995 0.356995 0.356995 0.364471 0.364471 0.364471 0.371979 0.371979 0.371979 0.379181 0.379181 0.379181 0.386444 0.386444 0.386444 0.393616 0.393616 0.393616 0.400482 0.400482 0.400482 0.407501 0.407501 0.407501 0.414429 0.414429 0.414429 0.421112 0.421112 0.421112 0.427887 0.427887 0.427887 0.434692 0.434692 0.434692 0.441284 0.441284 0.441284 0.448029 0.448029 0.448029 0.454590 0.454590 0.454590 0.223053 0.223053 0.223053 0.233032 0.233032 0.233032 0.243103 0.243103 0.243103 0.253021 0.253021 0.253021 0.262482 0.262482 0.262482 0.272003 0.272003 0.272003 0.281097 0.281097 0.281097 0.290283 0.290283 0.290283 0.299255 0.299255 0.299255 0.307861 0.307861 0.307861 0.316467 0.316467 0.316467 0.324890 0.324890 0.324890 0.332977 0.332977 0.332977 0.341064 0.341064 0.341064 0.349030 0.349030 0.349030 0.356598 0.356598 0.356598 0.364258 0.364258 0.364258 0.371613 0.371613 0.371613 0.378967 0.378967 0.378967 0.386261 0.386261 0.386261 0.393250 0.393250 0.393250 0.400360 0.400360 0.400360 0.407318 0.407318 0.407318 0.414062 0.414062 0.414062 0.420929 0.420929 0.420929 0.427734 0.427734 0.427734 0.434357 0.434357 0.434357 0.441101 0.441101 0.441101 0.447693 0.447693 0.447693 0.454437 0.454437 0.454437 0.461212 0.461212 0.461212 0.467834 0.467834 0.467834 0.242828 0.242828 0.242828 0.252502 0.252502 0.252502 0.262238 0.262238 0.262238 0.271545 0.271545 0.271545 0.280884 0.280884 0.280884 0.290039 0.290039 0.290039 0.298828 0.298828 0.298828 0.307617 0.307617 0.307617 0.316254 0.316254 0.316254 0.324493 0.324493 0.324493 0.332764 0.332764 0.332764 0.340881 0.340881 0.340881 0.348633 0.348633 0.348633 0.356445 0.356445 0.356445 0.363892 0.363892 0.363892 0.371399 0.371399 0.371399 0.378815 0.378815 0.378815 0.385925 0.385925 0.385925 0.393097 0.393097 0.393097 0.400146 0.400146 0.400146 0.406982 0.406982 0.406982 0.413879 0.413879 0.413879 0.420776 0.420776 0.420776 0.427399 0.427399 0.427399 0.434204 0.434204 0.434204 0.440948 0.440948 0.440948 0.447510 0.447510 0.447510 0.454254 0.454254 0.454254 0.460846 0.460846 0.460846 0.467651 0.467651 0.467651 0.474457 0.474457 0.474457 0.481201 0.481201 0.481201 0.261993 0.261993 0.261993 0.271301 0.271301 0.271301 0.280670 0.280670 0.280670 0.289612 0.289612 0.289612 0.298584 0.298584 0.298584 0.307434 0.307434 0.307434 0.315826 0.315826 0.315826 0.324280 0.324280 0.324280 0.332581 0.332581 0.332581 0.340485 0.340485 0.340485 0.348419 0.348419 0.348419 0.356232 0.356232 0.356232 0.363708 0.363708 0.363708 0.371246 0.371246 0.371246 0.378448 0.378448 0.378448 0.385742 0.385742 0.385742 0.392883 0.392883 0.392883 0.399811 0.399811 0.399811 0.406799 0.406799 0.406799 0.413727 0.413727 0.413727 0.420410 0.420410 0.420410 0.427246 0.427246 0.427246 0.433990 0.433990 0.433990 0.440582 0.440582 0.440582 0.447357 0.447357 0.447357 0.453949 0.453949 0.453949 0.460693 0.460693 0.460693 0.467468 0.467468 0.467468 0.474121 0.474121 0.474121 0.481018 0.481018 0.481018 0.487915 0.487915 0.487915 0.494781 0.494781 0.494781 0.280182 0.280182 0.280182 0.289368 0.289368 0.289368 0.298370 0.298370 0.298370 0.306976 0.306976 0.306976 0.315613 0.315613 0.315613 0.324066 0.324066 0.324066 0.332153 0.332153 0.332153 0.340271 0.340271 0.340271 0.348236 0.348236 0.348236 0.355835 0.355835 0.355835 0.363495 0.363495 0.363495 0.370880 0.370880 0.370880 0.378265 0.378265 0.378265 0.385559 0.385559 0.385559 0.392548 0.392548 0.392548 0.399628 0.399628 0.399628 0.406616 0.406616 0.406616 0.413361 0.413361 0.413361 0.420227 0.420227 0.420227 0.427063 0.427063 0.427063 0.433685 0.433685 0.433685 0.440430 0.440430 0.440430 0.447205 0.447205 0.447205 0.453766 0.453766 0.453766 0.460541 0.460541 0.460541 0.467133 0.467133 0.467133 0.473938 0.473938 0.473938 0.480835 0.480835 0.480835 0.487579 0.487579 0.487579 0.494568 0.494568 0.494568 0.501678 0.501678 0.501678 0.508636 0.508636 0.508636 0.297943 0.297943 0.297943 0.306763 0.306763 0.306763 0.315399 0.315399 0.315399 0.323639 0.323639 0.323639 0.331940 0.331940 0.331940 0.340088 0.340088 0.340088 0.347870 0.347870 0.347870 0.355682 0.355682 0.355682 0.363312 0.363312 0.363312 0.370667 0.370667 0.370667 0.378082 0.378082 0.378082 0.385162 0.385162 0.385162 0.392365 0.392365 0.392365 0.399445 0.399445 0.399445 0.406281 0.406281 0.406281 0.413208 0.413208 0.413208 0.420074 0.420074 0.420074 0.426727 0.426727 0.426727 0.433502 0.433502 0.433502 0.440277 0.440277 0.440277 0.446838 0.446838 0.446838 0.453613 0.453613 0.453613 0.460175 0.460175 0.460175 0.466949 0.466949 0.466949 0.473785 0.473785 0.473785 0.480499 0.480499 0.480499 0.487427 0.487427 0.487427 0.494415 0.494415 0.494415 0.501312 0.501312 0.501312 0.508453 0.508453 0.508453 0.515747 0.515747 0.515747 0.522888 0.522888 0.522888 0.314972 0.314972 0.314972 0.323425 0.323425 0.323425 0.331757 0.331757 0.331757 0.339691 0.339691 0.339691 0.347656 0.347656 0.347656 0.355469 0.355469 0.355469 0.362946 0.362946 0.362946 0.370514 0.370514 0.370514 0.377899 0.377899 0.377899 0.385010 0.385010 0.385010 0.392181 0.392181 0.392181 0.399078 0.399078 0.399078 0.406097 0.406097 0.406097 0.413055 0.413055 0.413055 0.419708 0.419708 0.419708 0.426544 0.426544 0.426544 0.433319 0.433319 0.433319 0.439941 0.439941 0.439941 0.446686 0.446686 0.446686 0.453430 0.453430 0.453430 0.460022 0.460022 0.460022 0.466797 0.466797 0.466797 0.473450 0.473450 0.473450 0.480316 0.480316 0.480316 0.487244 0.487244 0.487244 0.494049 0.494049 0.494049 0.501129 0.501129 0.501129 0.508301 0.508301 0.508301 0.515381 0.515381 0.515381 0.522736 0.522736 0.522736 0.530212 0.530212 0.530212 0.537598 0.537598 0.537598 0.331329 0.331329 0.331329 0.339478 0.339478 0.339478 0.347443 0.347443 0.347443 0.355072 0.355072 0.355072 0.362762 0.362762 0.362762 0.370300 0.370300 0.370300 0.377502 0.377502 0.377502 0.384827 0.384827 0.384827 0.391846 0.391846 0.391846 0.398926 0.398926 0.398926 0.405914 0.405914 0.405914 0.412689 0.412689 0.412689 0.419556 0.419556 0.419556 0.426392 0.426392 0.426392 0.432983 0.432983 0.432983 0.439758 0.439758 0.439758 0.446503 0.446503 0.446503 0.453064 0.453064 0.453064 0.459869 0.459869 0.459869 0.466461 0.466461 0.466461 0.473297 0.473297 0.473297 0.480164 0.480164 0.480164 0.486908 0.486908 0.486908 0.493896 0.493896 0.493896 0.500946 0.500946 0.500946 0.507935 0.507935 0.507935 0.515198 0.515198 0.515198 0.522552 0.522552 0.522552 0.529816 0.529816 0.529816 0.537415 0.537415 0.537415 0.544922 0.544922 0.544922 0.552734 0.552734 0.552734 0.347046 0.347046 0.347046 0.354889 0.354889 0.354889 0.362579 0.362579 0.362579 0.369904 0.369904 0.369904 0.377350 0.377350 0.377350 0.384644 0.384644 0.384644 0.391663 0.391663 0.391663 0.398773 0.398773 0.398773 0.405579 0.405579 0.405579 0.412537 0.412537 0.412537 0.419403 0.419403 0.419403 0.426056 0.426056 0.426056 0.432831 0.432831 0.432831 0.439606 0.439606 0.439606 0.446167 0.446167 0.446167 0.452911 0.452911 0.452911 0.459656 0.459656 0.459656 0.466278 0.466278 0.466278 0.473114 0.473114 0.473114 0.479797 0.479797 0.479797 0.486694 0.486694 0.486694 0.493683 0.493683 0.493683 0.500610 0.500610 0.500610 0.507751 0.507751 0.507751 0.514984 0.514984 0.514984 0.522186 0.522186 0.522186 0.529633 0.529633 0.529633 0.537201 0.537201 0.537201 0.544739 0.544739 0.544739 0.552582 0.552582 0.552582 0.560303 0.560303 0.560303 0.568451 0.568451 0.568451 0.362183 0.362183 0.362183 0.369751 0.369751 0.369751 0.377136 0.377136 0.377136 0.384277 0.384277 0.384277 0.391449 0.391449 0.391449 0.398590 0.398590 0.398590 0.405426 0.405426 0.405426 0.412354 0.412354 0.412354 0.419037 0.419037 0.419037 0.425873 0.425873 0.425873 0.432648 0.432648 0.432648 0.439270 0.439270 0.439270 0.446014 0.446014 0.446014 0.452728 0.452728 0.452728 0.459320 0.459320 0.459320 0.466125 0.466125 0.466125 0.472931 0.472931 0.472931 0.479614 0.479614 0.479614 0.486542 0.486542 0.486542 0.493378 0.493378 0.493378 0.500427 0.500427 0.500427 0.507568 0.507568 0.507568 0.514618 0.514618 0.514618 0.521973 0.521973 0.521973 0.529449 0.529449 0.529449 0.536835 0.536835 0.536835 0.544525 0.544525 0.544525 0.552368 0.552368 0.552368 0.560120 0.560120 0.560120 0.568237 0.568237 0.568237 0.576263 0.576263 0.576263 0.584656 0.584656 0.584656 0.376770 0.376770 0.376770 0.384094 0.384094 0.384094 0.391296 0.391296 0.391296 0.398224 0.398224 0.398224 0.405243 0.405243 0.405243 0.412018 0.412018 0.412018 0.418884 0.418884 0.418884 0.425690 0.425690 0.425690 0.432312 0.432312 0.432312 0.439087 0.439087 0.439087 0.445831 0.445831 0.445831 0.452393 0.452393 0.452393 0.459167 0.459167 0.459167 0.465942 0.465942 0.465942 0.472595 0.472595 0.472595 0.479462 0.479462 0.479462 0.486359 0.486359 0.486359 0.493195 0.493195 0.493195 0.500244 0.500244 0.500244 0.507202 0.507202 0.507202 0.514465 0.514465 0.514465 0.521820 0.521820 0.521820 0.529083 0.529083 0.529083 0.536621 0.536621 0.536621 0.544342 0.544342 0.544342 0.551971 0.551971 0.551971 0.559937 0.559937 0.559937 0.568024 0.568024 0.568024 0.576080 0.576080 0.576080 0.584412 0.584412 0.584412 0.592682 0.592682 0.592682 0.601257 0.601257 0.601257 0.390961 0.390961 0.390961 0.398010 0.398010 0.398010 0.405060 0.405060 0.405060 0.411804 0.411804 0.411804 0.418732 0.418732 0.418732 0.425385 0.425385 0.425385 0.432159 0.432159 0.432159 0.438904 0.438904 0.438904 0.445496 0.445496 0.445496 0.452271 0.452271 0.452271 0.459015 0.459015 0.459015 0.465607 0.465607 0.465607 0.472412 0.472412 0.472412 0.479279 0.479279 0.479279 0.486023 0.486023 0.486023 0.493011 0.493011 0.493011 0.499878 0.499878 0.499878 0.507050 0.507050 0.507050 0.514282 0.514282 0.514282 0.521423 0.521423 0.521423 0.528870 0.528870 0.528870 0.536438 0.536438 0.536438 0.543945 0.543945 0.543945 0.551788 0.551788 0.551788 0.559753 0.559753 0.559753 0.567627 0.567627 0.567627 0.575867 0.575867 0.575867 0.584015 0.584015 0.584015 0.592438 0.592438 0.592438 0.601013 0.601013 0.601013 0.609467 0.609467 0.609467 0.618134 0.618134 0.618134 0.404724 0.404724 0.404724 0.411652 0.411652 0.411652 0.418549 0.418549 0.418549 0.425171 0.425171 0.425171 0.431976 0.431976 0.431976 0.438568 0.438568 0.438568 0.445343 0.445343 0.445343 0.452087 0.452087 0.452087 0.458649 0.458649 0.458649 0.465454 0.465454 0.465454 0.472260 0.472260 0.472260 0.478943 0.478943 0.478943 0.485870 0.485870 0.485870 0.492645 0.492645 0.492645 0.499695 0.499695 0.499695 0.506836 0.506836 0.506836 0.513885 0.513885 0.513885 0.521240 0.521240 0.521240 0.528687 0.528687 0.528687 0.536072 0.536072 0.536072 0.543762 0.543762 0.543762 0.551575 0.551575 0.551575 0.559326 0.559326 0.559326 0.567383 0.567383 0.567383 0.575653 0.575653 0.575653 0.583771 0.583771 0.583771 0.592255 0.592255 0.592255 0.600616 0.600616 0.600616 0.609253 0.609253 0.609253 0.617950 0.617950 0.617950 0.626465 0.626465 0.626465 0.635193 0.635193 0.635193 0.418182 0.418182 0.418182 0.425018 0.425018 0.425018 0.431641 0.431641 0.431641 0.438385 0.438385 0.438385 0.445160 0.445160 0.445160 0.451752 0.451752 0.451752 0.458496 0.458496 0.458496 0.465271 0.465271 0.465271 0.471893 0.471893 0.471893 0.478760 0.478760 0.478760 0.485687 0.485687 0.485687 0.492493 0.492493 0.492493 0.499512 0.499512 0.499512 0.506500 0.506500 0.506500 0.513702 0.513702 0.513702 0.521057 0.521057 0.521057 0.528320 0.528320 0.528320 0.535858 0.535858 0.535858 0.543579 0.543579 0.543579 0.551178 0.551178 0.551178 0.559113 0.559113 0.559113 0.567200 0.567200 0.567200 0.575195 0.575195 0.575195 0.583557 0.583557 0.583557 0.591827 0.591827 0.591827 0.600372 0.600372 0.600372 0.609009 0.609009 0.609009 0.617493 0.617493 0.617493 0.626221 0.626221 0.626221 0.635010 0.635010 0.635010 0.643524 0.643524 0.643524 0.652252 0.652252 0.652252 0.431488 0.431488 0.431488 0.438263 0.438263 0.438263 0.444824 0.444824 0.444824 0.451569 0.451569 0.451569 0.458313 0.458313 0.458313 0.464935 0.464935 0.464935 0.471741 0.471741 0.471741 0.478607 0.478607 0.478607 0.485321 0.485321 0.485321 0.492310 0.492310 0.492310 0.499329 0.499329 0.499329 0.506317 0.506317 0.506317 0.513519 0.513519 0.513519 0.520660 0.520660 0.520660 0.528137 0.528137 0.528137 0.535706 0.535706 0.535706 0.543182 0.543182 0.543182 0.550995 0.550995 0.550995 0.558929 0.558929 0.558929 0.566803 0.566803 0.566803 0.575012 0.575012 0.575012 0.583374 0.583374 0.583374 0.591614 0.591614 0.591614 0.600159 0.600159 0.600159 0.608582 0.608582 0.608582 0.617279 0.617279 0.617279 0.626038 0.626038 0.626038 0.634521 0.634521 0.634521 0.643311 0.643311 0.643311 0.652039 0.652039 0.652039 0.660522 0.660522 0.660522 0.669159 0.669159 0.669159 0.444641 0.444641 0.444641 0.451416 0.451416 0.451416 0.457977 0.457977 0.457977 0.464752 0.464752 0.464752 0.471588 0.471588 0.471588 0.478241 0.478241 0.478241 0.485138 0.485138 0.485138 0.492126 0.492126 0.492126 0.498993 0.498993 0.498993 0.506134 0.506134 0.506134 0.513184 0.513184 0.513184 0.520508 0.520508 0.520508 0.527954 0.527954 0.527954 0.535339 0.535339 0.535339 0.542999 0.542999 0.542999 0.550781 0.550781 0.550781 0.558563 0.558563 0.558563 0.566589 0.566589 0.566589 0.574799 0.574799 0.574799 0.582947 0.582947 0.582947 0.591400 0.591400 0.591400 0.599731 0.599731 0.599731 0.608368 0.608368 0.608368 0.617065 0.617065 0.617065 0.625580 0.625580 0.625580 0.634308 0.634308 0.634308 0.643066 0.643066 0.643066 0.651611 0.651611 0.651611 0.660309 0.660309 0.660309 0.668945 0.668945 0.668945 0.677338 0.677338 0.677338 0.685822 0.685822 0.685822 0.457825 0.457825 0.457825 0.464600 0.464600 0.464600 0.471222 0.471222 0.471222 0.478088 0.478088 0.478088 0.484985 0.484985 0.484985 0.491760 0.491760 0.491760 0.498840 0.498840 0.498840 0.505951 0.505951 0.505951 0.513000 0.513000 0.513000 0.520325 0.520325 0.520325 0.527557 0.527557 0.527557 0.535126 0.535126 0.535126 0.542786 0.542786 0.542786 0.550385 0.550385 0.550385 0.558319 0.558319 0.558319 0.566376 0.566376 0.566376 0.574402 0.574402 0.574402 0.582703 0.582703 0.582703 0.591187 0.591187 0.591187 0.599518 0.599518 0.599518 0.608154 0.608154 0.608154 0.616638 0.616638 0.616638 0.625336 0.625336 0.625336 0.634125 0.634125 0.634125 0.642670 0.642670 0.642670 0.651367 0.651367 0.651367 0.660095 0.660095 0.660095 0.668518 0.668518 0.668518 0.677094 0.677094 0.677094 0.685638 0.685638 0.685638 0.693817 0.693817 0.693817 0.702118 0.702118 0.702118 0.471069 0.471069 0.471069 0.477936 0.477936 0.477936 0.484650 0.484650 0.484650 0.491608 0.491608 0.491608 0.498627 0.498627 0.498627 0.505615 0.505615 0.505615 0.512817 0.512817 0.512817 0.519958 0.519958 0.519958 0.527374 0.527374 0.527374 0.534943 0.534943 0.534943 0.542389 0.542389 0.542389 0.550201 0.550201 0.550201 0.558136 0.558136 0.558136 0.565979 0.565979 0.565979 0.574188 0.574188 0.574188 0.582520 0.582520 0.582520 0.590759 0.590759 0.590759 0.599304 0.599304 0.599304 0.607941 0.607941 0.607941 0.616394 0.616394 0.616394 0.625153 0.625153 0.625153 0.633667 0.633667 0.633667 0.642426 0.642426 0.642426 0.651154 0.651154 0.651154 0.659637 0.659637 0.659637 0.668304 0.668304 0.668304 0.676880 0.676880 0.676880 0.685211 0.685211 0.685211 0.693634 0.693634 0.693634 0.701721 0.701721 0.701721 0.709900 0.709900 0.709900 0.717957 0.717957 0.717957 0.484467 0.484467 0.484467 0.491425 0.491425 0.491425 0.498291 0.498291 0.498291 0.505432 0.505432 0.505432 0.512634 0.512634 0.512634 0.519775 0.519775 0.519775 0.527191 0.527191 0.527191 0.534546 0.534546 0.534546 0.542206 0.542206 0.542206 0.550018 0.550018 0.550018 0.557709 0.557709 0.557709 0.565765 0.565765 0.565765 0.573975 0.573975 0.573975 0.582092 0.582092 0.582092 0.590546 0.590546 0.590546 0.599091 0.599091 0.599091 0.607513 0.607513 0.607513 0.616211 0.616211 0.616211 0.624695 0.624695 0.624695 0.633453 0.633453 0.633453 0.642181 0.642181 0.642181 0.650726 0.650726 0.650726 0.659424 0.659424 0.659424 0.668091 0.668091 0.668091 0.676483 0.676483 0.676483 0.684998 0.684998 0.684998 0.693420 0.693420 0.693420 0.701508 0.701508 0.701508 0.709686 0.709686 0.709686 0.717560 0.717560 0.717560 0.725464 0.725464 0.725464 0.733215 0.733215 0.733215 0.498077 0.498077 0.498077 0.505219 0.505219 0.505219 0.512268 0.512268 0.512268 0.519592 0.519592 0.519592 0.526825 0.526825 0.526825 0.534363 0.534363 0.534363 0.542023 0.542023 0.542023 0.549622 0.549622 0.549622 0.557526 0.557526 0.557526 0.565582 0.565582 0.565582 0.573578 0.573578 0.573578 0.581909 0.581909 0.581909 0.590332 0.590332 0.590332 0.598663 0.598663 0.598663 0.607269 0.607269 0.607269 0.615784 0.615784 0.615784 0.624481 0.624481 0.624481 0.633240 0.633240 0.633240 0.641785 0.641785 0.641785 0.650513 0.650513 0.650513 0.659210 0.659210 0.659210 0.667664 0.667664 0.667664 0.676300 0.676300 0.676300 0.684753 0.684753 0.684753 0.693024 0.693024 0.693024 0.701324 0.701324 0.701324 0.709503 0.709503 0.709503 0.717377 0.717377 0.717377 0.725250 0.725250 0.725250 0.732819 0.732819 0.732819 0.740387 0.740387 0.740387 0.747742 0.747742 0.747742 0.512085 0.512085 0.512085 0.519379 0.519379 0.519379 0.526642 0.526642 0.526642 0.534180 0.534180 0.534180 0.541656 0.541656 0.541656 0.549408 0.549408 0.549408 0.557343 0.557343 0.557343 0.565186 0.565186 0.565186 0.573364 0.573364 0.573364 0.581696 0.581696 0.581696 0.589905 0.589905 0.589905 0.598450 0.598450 0.598450 0.607056 0.607056 0.607056 0.615540 0.615540 0.615540 0.624237 0.624237 0.624237 0.632812 0.632812 0.632812 0.641541 0.641541 0.641541 0.650299 0.650299 0.650299 0.658783 0.658783 0.658783 0.667450 0.667450 0.667450 0.676025 0.676025 0.676025 0.684357 0.684357 0.684357 0.692810 0.692810 0.692810 0.701111 0.701111 0.701111 0.709076 0.709076 0.709076 0.717163 0.717163 0.717163 0.724854 0.724854 0.724854 0.732605 0.732605 0.732605 0.740173 0.740173 0.740173 0.747406 0.747406 0.747406 0.754608 0.754608 0.754608 0.761566 0.761566 0.761566 0.526428 0.526428 0.526428 0.533783 0.533783 0.533783 0.541443 0.541443 0.541443 0.549225 0.549225 0.549225 0.556946 0.556946 0.556946 0.564972 0.564972 0.564972 0.573151 0.573151 0.573151 0.581268 0.581268 0.581268 0.589691 0.589691 0.589691 0.598236 0.598236 0.598236 0.606628 0.606628 0.606628 0.615295 0.615295 0.615295 0.623840 0.623840 0.623840 0.632568 0.632568 0.632568 0.641296 0.641296 0.641296 0.649841 0.649841 0.649841 0.658569 0.658569 0.658569 0.667206 0.667206 0.667206 0.675629 0.675629 0.675629 0.684143 0.684143 0.684143 0.692566 0.692566 0.692566 0.700684 0.700684 0.700684 0.708862 0.708862 0.708862 0.716949 0.716949 0.716949 0.724670 0.724670 0.724670 0.732422 0.732422 0.732422 0.739807 0.739807 0.739807 0.747223 0.747223 0.747223 0.754425 0.754425 0.754425 0.761230 0.761230 0.761230 0.768036 0.768036 0.768036 0.774567 0.774567 0.774567 0.541260 0.541260 0.541260 0.548828 0.548828 0.548828 0.556732 0.556732 0.556732 0.564758 0.564758 0.564758 0.572754 0.572754 0.572754 0.581024 0.581024 0.581024 0.589478 0.589478 0.589478 0.597809 0.597809 0.597809 0.606445 0.606445 0.606445 0.615112 0.615112 0.615112 0.623596 0.623596 0.623596 0.632355 0.632355 0.632355 0.640869 0.640869 0.640869 0.649628 0.649628 0.649628 0.658356 0.658356 0.658356 0.666779 0.666779 0.666779 0.675385 0.675385 0.675385 0.683960 0.683960 0.683960 0.692139 0.692139 0.692139 0.700470 0.700470 0.700470 0.708679 0.708679 0.708679 0.716553 0.716553 0.716553 0.724457 0.724457 0.724457 0.732056 0.732056 0.732056 0.739624 0.739624 0.739624 0.747040 0.747040 0.747040 0.754059 0.754059 0.754059 0.761047 0.761047 0.761047 0.767853 0.767853 0.767853 0.774231 0.774231 0.774231 0.780579 0.780579 0.780579 0.786652 0.786652 0.786652 0.556519 0.556519 0.556519 0.564362 0.564362 0.564362 0.572540 0.572540 0.572540 0.580841 0.580841 0.580841 0.589081 0.589081 0.589081 0.597595 0.597595 0.597595 0.606201 0.606201 0.606201 0.614655 0.614655 0.614655 0.623383 0.623383 0.623383 0.631897 0.631897 0.631897 0.640656 0.640656 0.640656 0.649414 0.649414 0.649414 0.657898 0.657898 0.657898 0.666565 0.666565 0.666565 0.675201 0.675201 0.675201 0.683502 0.683502 0.683502 0.691956 0.691956 0.691956 0.700287 0.700287 0.700287 0.708282 0.708282 0.708282 0.716339 0.716339 0.716339 0.724304 0.724304 0.724304 0.731842 0.731842 0.731842 0.739471 0.739471 0.739471 0.746674 0.746674 0.746674 0.753906 0.753906 0.753906 0.760895 0.760895 0.760895 0.767548 0.767548 0.767548 0.774078 0.774078 0.774078 0.780396 0.780396 0.780396 0.786346 0.786346 0.786346 0.792206 0.792206 0.792206 0.797791 0.797791 0.797791 0.572327 0.572327 0.572327 0.580414 0.580414 0.580414 0.588837 0.588837 0.588837 0.597382 0.597382 0.597382 0.605774 0.605774 0.605774 0.614441 0.614441 0.614441 0.623169 0.623169 0.623169 0.631683 0.631683 0.631683 0.640472 0.640472 0.640472 0.648987 0.648987 0.648987 0.657684 0.657684 0.657684 0.666351 0.666351 0.666351 0.674744 0.674744 0.674744 0.683319 0.683319 0.683319 0.691742 0.691742 0.691742 0.699890 0.699890 0.699890 0.708069 0.708069 0.708069 0.716156 0.716156 0.716156 0.723907 0.723907 0.723907 0.731659 0.731659 0.731659 0.739075 0.739075 0.739075 0.746490 0.746490 0.746490 0.753693 0.753693 0.753693 0.760559 0.760559 0.760559 0.767395 0.767395 0.767395 0.773926 0.773926 0.773926 0.780121 0.780121 0.780121 0.786224 0.786224 0.786224 0.792084 0.792084 0.792084 0.797516 0.797516 0.797516 0.802856 0.802856 0.802856 0.807800 0.807800 0.807800 0.095795 0.095795 0.095795 0.101379 0.101379 0.101379 0.107391 0.107391 0.107391 0.113586 0.113586 0.113586 0.120239 0.120239 0.120239 0.127289 0.127289 0.127289 0.134583 0.134583 0.134583 0.142426 0.142426 0.142426 0.150787 0.150787 0.150787 0.159454 0.159454 0.159454 0.168762 0.168762 0.168762 0.178253 0.178253 0.178253 0.188324 0.188324 0.188324 0.198639 0.198639 0.198639 0.208771 0.208771 0.208771 0.219177 0.219177 0.219177 0.229462 0.229462 0.229462 0.239349 0.239349 0.239349 0.249329 0.249329 0.249329 0.259094 0.259094 0.259094 0.268463 0.268463 0.268463 0.277863 0.277863 0.277863 0.287109 0.287109 0.287109 0.295898 0.295898 0.295898 0.304810 0.304810 0.304810 0.313263 0.313263 0.313263 0.321747 0.321747 0.321747 0.330109 0.330109 0.330109 0.338043 0.338043 0.338043 0.346069 0.346069 0.346069 0.353912 0.353912 0.353912 0.361420 0.361420 0.361420 0.107117 0.107117 0.107117 0.113403 0.113403 0.113403 0.120056 0.120056 0.120056 0.126923 0.126923 0.126923 0.134369 0.134369 0.134369 0.142242 0.142242 0.142242 0.150360 0.150360 0.150360 0.159180 0.159180 0.159180 0.168518 0.168518 0.168518 0.178009 0.178009 0.178009 0.188080 0.188080 0.188080 0.198120 0.198120 0.198120 0.208527 0.208527 0.208527 0.218933 0.218933 0.218933 0.228973 0.228973 0.228973 0.239136 0.239136 0.239136 0.249084 0.249084 0.249084 0.258606 0.258606 0.258606 0.268219 0.268219 0.268219 0.277618 0.277618 0.277618 0.286652 0.286652 0.286652 0.295715 0.295715 0.295715 0.304352 0.304352 0.304352 0.313049 0.313049 0.313049 0.321564 0.321564 0.321564 0.329712 0.329712 0.329712 0.337860 0.337860 0.337860 0.345886 0.345886 0.345886 0.353516 0.353516 0.353516 0.361267 0.361267 0.361267 0.368805 0.368805 0.368805 0.376068 0.376068 0.376068 0.119720 0.119720 0.119720 0.126740 0.126740 0.126740 0.134186 0.134186 0.134186 0.141846 0.141846 0.141846 0.150146 0.150146 0.150146 0.158966 0.158966 0.158966 0.168060 0.168060 0.168060 0.177734 0.177734 0.177734 0.187805 0.187805 0.187805 0.197845 0.197845 0.197845 0.208252 0.208252 0.208252 0.218414 0.218414 0.218414 0.228699 0.228699 0.228699 0.238892 0.238892 0.238892 0.248596 0.248596 0.248596 0.258362 0.258362 0.258362 0.267975 0.267975 0.267975 0.277161 0.277161 0.277161 0.286407 0.286407 0.286407 0.295471 0.295471 0.295471 0.304138 0.304138 0.304138 0.312836 0.312836 0.312836 0.321167 0.321167 0.321167 0.329468 0.329468 0.329468 0.337677 0.337677 0.337677 0.345459 0.345459 0.345459 0.353363 0.353363 0.353363 0.361053 0.361053 0.361053 0.368408 0.368408 0.368408 0.375854 0.375854 0.375854 0.383179 0.383179 0.383179 0.390228 0.390228 0.390228 0.133789 0.133789 0.133789 0.141632 0.141632 0.141632 0.149963 0.149963 0.149963 0.158508 0.158508 0.158508 0.167816 0.167816 0.167816 0.177490 0.177490 0.177490 0.187317 0.187317 0.187317 0.197601 0.197601 0.197601 0.207733 0.207733 0.207733 0.218140 0.218140 0.218140 0.228455 0.228455 0.228455 0.238373 0.238373 0.238373 0.248352 0.248352 0.248352 0.258118 0.258118 0.258118 0.267517 0.267517 0.267517 0.276917 0.276917 0.276917 0.286194 0.286194 0.286194 0.295013 0.295013 0.295013 0.303925 0.303925 0.303925 0.312378 0.312378 0.312378 0.320923 0.320923 0.320923 0.329285 0.329285 0.329285 0.337250 0.337250 0.337250 0.345306 0.345306 0.345306 0.353149 0.353149 0.353149 0.360657 0.360657 0.360657 0.368225 0.368225 0.368225 0.375702 0.375702 0.375702 0.382843 0.382843 0.382843 0.390045 0.390045 0.390045 0.396973 0.396973 0.396973 0.403992 0.403992 0.403992 0.149506 0.149506 0.149506 0.158264 0.158264 0.158264 0.167572 0.167572 0.167572 0.177032 0.177032 0.177032 0.187073 0.187073 0.187073 0.197357 0.197357 0.197357 0.207458 0.207458 0.207458 0.217896 0.217896 0.217896 0.227966 0.227966 0.227966 0.238098 0.238098 0.238098 0.248108 0.248108 0.248108 0.257629 0.257629 0.257629 0.267273 0.267273 0.267273 0.276703 0.276703 0.276703 0.285736 0.285736 0.285736 0.294830 0.294830 0.294830 0.303680 0.303680 0.303680 0.312195 0.312195 0.312195 0.320709 0.320709 0.320709 0.328827 0.328827 0.328827 0.337036 0.337036 0.337036 0.345062 0.345062 0.345062 0.352722 0.352722 0.352722 0.360474 0.360474 0.360474 0.368042 0.368042 0.368042 0.375336 0.375336 0.375336 0.382660 0.382660 0.382660 0.389862 0.389862 0.389862 0.396820 0.396820 0.396820 0.403839 0.403839 0.403839 0.410614 0.410614 0.410614 0.417480 0.417480 0.417480 0.167114 0.167114 0.167114 0.176788 0.176788 0.176788 0.186829 0.186829 0.186829 0.196808 0.196808 0.196808 0.207214 0.207214 0.207214 0.217346 0.217346 0.217346 0.227692 0.227692 0.227692 0.237854 0.237854 0.237854 0.247589 0.247589 0.247589 0.257385 0.257385 0.257385 0.267059 0.267059 0.267059 0.276245 0.276245 0.276245 0.285492 0.285492 0.285492 0.294586 0.294586 0.294586 0.303253 0.303253 0.303253 0.311981 0.311981 0.311981 0.320251 0.320251 0.320251 0.328674 0.328674 0.328674 0.336853 0.336853 0.336853 0.344666 0.344666 0.344666 0.352539 0.352539 0.352539 0.360260 0.360260 0.360260 0.367676 0.367676 0.367676 0.375122 0.375122 0.375122 0.382446 0.382446 0.382446 0.389526 0.389526 0.389526 0.396637 0.396637 0.396637 0.403503 0.403503 0.403503 0.410461 0.410461 0.410461 0.417328 0.417328 0.417328 0.424011 0.424011 0.424011 0.430817 0.430817 0.430817 0.186310 0.186310 0.186310 0.196564 0.196564 0.196564 0.206940 0.206940 0.206940 0.217102 0.217102 0.217102 0.227448 0.227448 0.227448 0.237335 0.237335 0.237335 0.247314 0.247314 0.247314 0.257172 0.257172 0.257172 0.266541 0.266541 0.266541 0.276001 0.276001 0.276001 0.285248 0.285248 0.285248 0.294128 0.294128 0.294128 0.303009 0.303009 0.303009 0.311737 0.311737 0.311737 0.320099 0.320099 0.320099 0.328461 0.328461 0.328461 0.336426 0.336426 0.336426 0.344482 0.344482 0.344482 0.352325 0.352325 0.352325 0.359894 0.359894 0.359894 0.367462 0.367462 0.367462 0.374969 0.374969 0.374969 0.382080 0.382080 0.382080 0.389313 0.389313 0.389313 0.396454 0.396454 0.396454 0.403320 0.403320 0.403320 0.410278 0.410278 0.410278 0.416962 0.416962 0.416962 0.423828 0.423828 0.423828 0.430603 0.430603 0.430603 0.437225 0.437225 0.437225 0.443970 0.443970 0.443970 0.206421 0.206421 0.206421 0.216827 0.216827 0.216827 0.226929 0.226929 0.226929 0.237091 0.237091 0.237091 0.247070 0.247070 0.247070 0.256653 0.256653 0.256653 0.266296 0.266296 0.266296 0.275757 0.275757 0.275757 0.284821 0.284821 0.284821 0.293915 0.293915 0.293915 0.302795 0.302795 0.302795 0.311310 0.311310 0.311310 0.319855 0.319855 0.319855 0.328033 0.328033 0.328033 0.336243 0.336243 0.336243 0.344269 0.344269 0.344269 0.351959 0.351959 0.351959 0.359711 0.359711 0.359711 0.367310 0.367310 0.367310 0.374573 0.374573 0.374573 0.381927 0.381927 0.381927 0.389160 0.389160 0.389160 0.396088 0.396088 0.396088 0.403168 0.403168 0.403168 0.409943 0.409943 0.409943 0.416840 0.416840 0.416840 0.423676 0.423676 0.423676 0.430298 0.430298 0.430298 0.437073 0.437073 0.437073 0.443817 0.443817 0.443817 0.450378 0.450378 0.450378 0.457123 0.457123 0.457123 0.226685 0.226685 0.226685 0.236847 0.236847 0.236847 0.246582 0.246582 0.246582 0.256409 0.256409 0.256409 0.266052 0.266052 0.266052 0.275299 0.275299 0.275299 0.284576 0.284576 0.284576 0.293671 0.293671 0.293671 0.302368 0.302368 0.302368 0.311066 0.311066 0.311066 0.319641 0.319641 0.319641 0.327789 0.327789 0.327789 0.336029 0.336029 0.336029 0.343872 0.343872 0.343872 0.351776 0.351776 0.351776 0.359497 0.359497 0.359497 0.366943 0.366943 0.366943 0.374390 0.374390 0.374390 0.381744 0.381744 0.381744 0.388794 0.388794 0.388794 0.395935 0.395935 0.395935 0.402954 0.402954 0.402954 0.409760 0.409760 0.409760 0.416656 0.416656 0.416656 0.423340 0.423340 0.423340 0.430115 0.430115 0.430115 0.436890 0.436890 0.436890 0.443451 0.443451 0.443451 0.450226 0.450226 0.450226 0.456970 0.456970 0.456970 0.463562 0.463562 0.463562 0.470367 0.470367 0.470367 0.246338 0.246338 0.246338 0.256165 0.256165 0.256165 0.265594 0.265594 0.265594 0.275085 0.275085 0.275085 0.284332 0.284332 0.284332 0.293213 0.293213 0.293213 0.302155 0.302155 0.302155 0.310913 0.310913 0.310913 0.319214 0.319214 0.319214 0.327637 0.327637 0.327637 0.335632 0.335632 0.335632 0.343689 0.343689 0.343689 0.351562 0.351562 0.351562 0.359131 0.359131 0.359131 0.366730 0.366730 0.366730 0.374207 0.374207 0.374207 0.381378 0.381378 0.381378 0.388611 0.388611 0.388611 0.395752 0.395752 0.395752 0.402618 0.402618 0.402618 0.409576 0.409576 0.409576 0.416473 0.416473 0.416473 0.423126 0.423126 0.423126 0.429932 0.429932 0.429932 0.436554 0.436554 0.436554 0.443298 0.443298 0.443298 0.450073 0.450073 0.450073 0.456635 0.456635 0.456635 0.463409 0.463409 0.463409 0.470184 0.470184 0.470184 0.476868 0.476868 0.476868 0.483734 0.483734 0.483734 0.265350 0.265350 0.265350 0.274841 0.274841 0.274841 0.283905 0.283905 0.283905 0.292999 0.292999 0.292999 0.301941 0.301941 0.301941 0.310455 0.310455 0.310455 0.319000 0.319000 0.319000 0.327393 0.327393 0.327393 0.335419 0.335419 0.335419 0.343506 0.343506 0.343506 0.351166 0.351166 0.351166 0.358948 0.358948 0.358948 0.366547 0.366547 0.366547 0.373840 0.373840 0.373840 0.381195 0.381195 0.381195 0.388428 0.388428 0.388428 0.395416 0.395416 0.395416 0.402435 0.402435 0.402435 0.409424 0.409424 0.409424 0.416138 0.416138 0.416138 0.422974 0.422974 0.422974 0.429596 0.429596 0.429596 0.436371 0.436371 0.436371 0.443146 0.443146 0.443146 0.449707 0.449707 0.449707 0.456451 0.456451 0.456451 0.463226 0.463226 0.463226 0.469879 0.469879 0.469879 0.476685 0.476685 0.476685 0.483612 0.483612 0.483612 0.490387 0.490387 0.490387 0.497406 0.497406 0.497406 0.283661 0.283661 0.283661 0.292786 0.292786 0.292786 0.301483 0.301483 0.301483 0.310242 0.310242 0.310242 0.318817 0.318817 0.318817 0.326996 0.326996 0.326996 0.335205 0.335205 0.335205 0.343109 0.343109 0.343109 0.350983 0.350983 0.350983 0.358734 0.358734 0.358734 0.366180 0.366180 0.366180 0.373657 0.373657 0.373657 0.381012 0.381012 0.381012 0.388062 0.388062 0.388062 0.395203 0.395203 0.395203 0.402252 0.402252 0.402252 0.409058 0.409058 0.409058 0.415955 0.415955 0.415955 0.422791 0.422791 0.422791 0.429443 0.429443 0.429443 0.436218 0.436218 0.436218 0.442780 0.442780 0.442780 0.449554 0.449554 0.449554 0.456299 0.456299 0.456299 0.462921 0.462921 0.462921 0.469696 0.469696 0.469696 0.476532 0.476532 0.476532 0.483246 0.483246 0.483246 0.490173 0.490173 0.490173 0.497223 0.497223 0.497223 0.504181 0.504181 0.504181 0.511353 0.511353 0.511353 0.301270 0.301270 0.301270 0.310028 0.310028 0.310028 0.318390 0.318390 0.318390 0.326782 0.326782 0.326782 0.335022 0.335022 0.335022 0.342865 0.342865 0.342865 0.350800 0.350800 0.350800 0.358368 0.358368 0.358368 0.365967 0.365967 0.365967 0.373474 0.373474 0.373474 0.380615 0.380615 0.380615 0.387878 0.387878 0.387878 0.395020 0.395020 0.395020 0.401917 0.401917 0.401917 0.408905 0.408905 0.408905 0.415802 0.415802 0.415802 0.422455 0.422455 0.422455 0.429260 0.429260 0.429260 0.435883 0.435883 0.435883 0.442627 0.442627 0.442627 0.449371 0.449371 0.449371 0.455963 0.455963 0.455963 0.462708 0.462708 0.462708 0.469543 0.469543 0.469543 0.476196 0.476196 0.476196 0.483063 0.483063 0.483063 0.490051 0.490051 0.490051 0.496887 0.496887 0.496887 0.503967 0.503967 0.503967 0.511017 0.511017 0.511017 0.518280 0.518280 0.518280 0.525696 0.525696 0.525696 0.318176 0.318176 0.318176 0.326599 0.326599 0.326599 0.334625 0.334625 0.334625 0.342682 0.342682 0.342682 0.350372 0.350372 0.350372 0.358154 0.358154 0.358154 0.365784 0.365784 0.365784 0.373077 0.373077 0.373077 0.380463 0.380463 0.380463 0.387695 0.387695 0.387695 0.394684 0.394684 0.394684 0.401764 0.401764 0.401764 0.408722 0.408722 0.408722 0.415436 0.415436 0.415436 0.422272 0.422272 0.422272 0.428925 0.428925 0.428925 0.435699 0.435699 0.435699 0.442444 0.442444 0.442444 0.449036 0.449036 0.449036 0.455780 0.455780 0.455780 0.462555 0.462555 0.462555 0.469177 0.469177 0.469177 0.476013 0.476013 0.476013 0.482910 0.482910 0.482910 0.489685 0.489685 0.489685 0.496704 0.496704 0.496704 0.503784 0.503784 0.503784 0.510803 0.510803 0.510803 0.518127 0.518127 0.518127 0.525330 0.525330 0.525330 0.532867 0.532867 0.532867 0.540466 0.540466 0.540466 0.334412 0.334412 0.334412 0.342468 0.342468 0.342468 0.350189 0.350189 0.350189 0.357971 0.357971 0.357971 0.365417 0.365417 0.365417 0.372894 0.372894 0.372894 0.380280 0.380280 0.380280 0.387360 0.387360 0.387360 0.394501 0.394501 0.394501 0.401550 0.401550 0.401550 0.408386 0.408386 0.408386 0.415283 0.415283 0.415283 0.422119 0.422119 0.422119 0.428772 0.428772 0.428772 0.435516 0.435516 0.435516 0.442108 0.442108 0.442108 0.448883 0.448883 0.448883 0.455627 0.455627 0.455627 0.462219 0.462219 0.462219 0.469025 0.469025 0.469025 0.475861 0.475861 0.475861 0.482544 0.482544 0.482544 0.489502 0.489502 0.489502 0.496521 0.496521 0.496521 0.503418 0.503418 0.503418 0.510651 0.510651 0.510651 0.517731 0.517731 0.517731 0.525146 0.525146 0.525146 0.532654 0.532654 0.532654 0.540100 0.540100 0.540100 0.547821 0.547821 0.547821 0.555725 0.555725 0.555725 0.349976 0.349976 0.349976 0.357574 0.357574 0.357574 0.365204 0.365204 0.365204 0.372711 0.372711 0.372711 0.379883 0.379883 0.379883 0.387177 0.387177 0.387177 0.394318 0.394318 0.394318 0.401215 0.401215 0.401215 0.408203 0.408203 0.408203 0.415100 0.415100 0.415100 0.421753 0.421753 0.421753 0.428589 0.428589 0.428589 0.435181 0.435181 0.435181 0.441956 0.441956 0.441956 0.448700 0.448700 0.448700 0.455292 0.455292 0.455292 0.462036 0.462036 0.462036 0.468842 0.468842 0.468842 0.475494 0.475494 0.475494 0.482391 0.482391 0.482391 0.489349 0.489349 0.489349 0.496155 0.496155 0.496155 0.503265 0.503265 0.503265 0.510437 0.510437 0.510437 0.517548 0.517548 0.517548 0.524963 0.524963 0.524963 0.532257 0.532257 0.532257 0.539886 0.539886 0.539886 0.547668 0.547668 0.547668 0.555328 0.555328 0.555328 0.563354 0.563354 0.563354 0.571503 0.571503 0.571503 0.365051 0.365051 0.365051 0.372528 0.372528 0.372528 0.379700 0.379700 0.379700 0.386993 0.386993 0.386993 0.393982 0.393982 0.393982 0.401031 0.401031 0.401031 0.408020 0.408020 0.408020 0.414764 0.414764 0.414764 0.421631 0.421631 0.421631 0.428406 0.428406 0.428406 0.435028 0.435028 0.435028 0.441772 0.441772 0.441772 0.448517 0.448517 0.448517 0.455109 0.455109 0.455109 0.461884 0.461884 0.461884 0.468506 0.468506 0.468506 0.475342 0.475342 0.475342 0.482208 0.482208 0.482208 0.488983 0.488983 0.488983 0.496002 0.496002 0.496002 0.503082 0.503082 0.503082 0.510101 0.510101 0.510101 0.517395 0.517395 0.517395 0.524780 0.524780 0.524780 0.532104 0.532104 0.532104 0.539734 0.539734 0.539734 0.547272 0.547272 0.547272 0.555115 0.555115 0.555115 0.563141 0.563141 0.563141 0.571106 0.571106 0.571106 0.579376 0.579376 0.579376 0.587799 0.587799 0.587799 0.379547 0.379547 0.379547 0.386597 0.386597 0.386597 0.393768 0.393768 0.393768 0.400848 0.400848 0.400848 0.407684 0.407684 0.407684 0.414612 0.414612 0.414612 0.421448 0.421448 0.421448 0.428101 0.428101 0.428101 0.434875 0.434875 0.434875 0.441620 0.441620 0.441620 0.448212 0.448212 0.448212 0.454956 0.454956 0.454956 0.461548 0.461548 0.461548 0.468323 0.468323 0.468323 0.475159 0.475159 0.475159 0.481873 0.481873 0.481873 0.488831 0.488831 0.488831 0.495819 0.495819 0.495819 0.502747 0.502747 0.502747 0.509888 0.509888 0.509888 0.517212 0.517212 0.517212 0.524414 0.524414 0.524414 0.531891 0.531891 0.531891 0.539520 0.539520 0.539520 0.547058 0.547058 0.547058 0.554932 0.554932 0.554932 0.562775 0.562775 0.562775 0.570892 0.570892 0.570892 0.579193 0.579193 0.579193 0.587372 0.587372 0.587372 0.595856 0.595856 0.595856 0.604462 0.604462 0.604462 0.393616 0.393616 0.393616 0.400482 0.400482 0.400482 0.407501 0.407501 0.407501 0.414429 0.414429 0.414429 0.421112 0.421112 0.421112 0.427887 0.427887 0.427887 0.434692 0.434692 0.434692 0.441284 0.441284 0.441284 0.448029 0.448029 0.448029 0.454773 0.454773 0.454773 0.461365 0.461365 0.461365 0.468140 0.468140 0.468140 0.474823 0.474823 0.474823 0.481689 0.481689 0.481689 0.488617 0.488617 0.488617 0.495483 0.495483 0.495483 0.502533 0.502533 0.502533 0.509735 0.509735 0.509735 0.516815 0.516815 0.516815 0.524200 0.524200 0.524200 0.531708 0.531708 0.531708 0.539093 0.539093 0.539093 0.546875 0.546875 0.546875 0.554535 0.554535 0.554535 0.562561 0.562561 0.562561 0.570679 0.570679 0.570679 0.578766 0.578766 0.578766 0.587128 0.587128 0.587128 0.595673 0.595673 0.595673 0.604034 0.604034 0.604034 0.612701 0.612701 0.612701 0.621399 0.621399 0.621399 0.407318 0.407318 0.407318 0.414062 0.414062 0.414062 0.420929 0.420929 0.420929 0.427734 0.427734 0.427734 0.434357 0.434357 0.434357 0.441101 0.441101 0.441101 0.447845 0.447845 0.447845 0.454437 0.454437 0.454437 0.461212 0.461212 0.461212 0.467834 0.467834 0.467834 0.474640 0.474640 0.474640 0.481506 0.481506 0.481506 0.488281 0.488281 0.488281 0.495270 0.495270 0.495270 0.502380 0.502380 0.502380 0.509369 0.509369 0.509369 0.516663 0.516663 0.516663 0.524017 0.524017 0.524017 0.531342 0.531342 0.531342 0.538940 0.538940 0.538940 0.546661 0.546661 0.546661 0.554352 0.554352 0.554352 0.562347 0.562347 0.562347 0.570282 0.570282 0.570282 0.578552 0.578552 0.578552 0.586945 0.586945 0.586945 0.595215 0.595215 0.595215 0.603821 0.603821 0.603821 0.612488 0.612488 0.612488 0.621002 0.621002 0.621002 0.629730 0.629730 0.629730 0.638489 0.638489 0.638489 0.420776 0.420776 0.420776 0.427399 0.427399 0.427399 0.434204 0.434204 0.434204 0.440948 0.440948 0.440948 0.447510 0.447510 0.447510 0.454254 0.454254 0.454254 0.461029 0.461029 0.461029 0.467651 0.467651 0.467651 0.474457 0.474457 0.474457 0.481201 0.481201 0.481201 0.488098 0.488098 0.488098 0.495087 0.495087 0.495087 0.502014 0.502014 0.502014 0.509186 0.509186 0.509186 0.516449 0.516449 0.516449 0.523651 0.523651 0.523651 0.531158 0.531158 0.531158 0.538727 0.538727 0.538727 0.546295 0.546295 0.546295 0.554169 0.554169 0.554169 0.561951 0.561951 0.561951 0.570068 0.570068 0.570068 0.578308 0.578308 0.578308 0.586517 0.586517 0.586517 0.595032 0.595032 0.595032 0.603607 0.603607 0.603607 0.612061 0.612061 0.612061 0.620758 0.620758 0.620758 0.629517 0.629517 0.629517 0.638031 0.638031 0.638031 0.646790 0.646790 0.646790 0.655304 0.655304 0.655304 0.433990 0.433990 0.433990 0.440582 0.440582 0.440582 0.447357 0.447357 0.447357 0.454102 0.454102 0.454102 0.460693 0.460693 0.460693 0.467468 0.467468 0.467468 0.474121 0.474121 0.474121 0.481018 0.481018 0.481018 0.487915 0.487915 0.487915 0.494781 0.494781 0.494781 0.501862 0.501862 0.501862 0.509003 0.509003 0.509003 0.516113 0.516113 0.516113 0.523468 0.523468 0.523468 0.530945 0.530945 0.530945 0.538361 0.538361 0.538361 0.546112 0.546112 0.546112 0.553955 0.553955 0.553955 0.561737 0.561737 0.561737 0.569885 0.569885 0.569885 0.577911 0.577911 0.577911 0.586304 0.586304 0.586304 0.594818 0.594818 0.594818 0.603180 0.603180 0.603180 0.611847 0.611847 0.611847 0.620544 0.620544 0.620544 0.629059 0.629059 0.629059 0.637817 0.637817 0.637817 0.646576 0.646576 0.646576 0.655090 0.655090 0.655090 0.663788 0.663788 0.663788 0.672150 0.672150 0.672150 0.447205 0.447205 0.447205 0.453766 0.453766 0.453766 0.460541 0.460541 0.460541 0.467316 0.467316 0.467316 0.473938 0.473938 0.473938 0.480835 0.480835 0.480835 0.487579 0.487579 0.487579 0.494568 0.494568 0.494568 0.501678 0.501678 0.501678 0.508636 0.508636 0.508636 0.515900 0.515900 0.515900 0.523285 0.523285 0.523285 0.530579 0.530579 0.530579 0.538177 0.538177 0.538177 0.545898 0.545898 0.545898 0.553558 0.553558 0.553558 0.561554 0.561554 0.561554 0.569458 0.569458 0.569458 0.577698 0.577698 0.577698 0.586090 0.586090 0.586090 0.594391 0.594391 0.594391 0.602966 0.602966 0.602966 0.611603 0.611603 0.611603 0.620117 0.620117 0.620117 0.628845 0.628845 0.628845 0.637604 0.637604 0.637604 0.646149 0.646149 0.646149 0.654877 0.654877 0.654877 0.663330 0.663330 0.663330 0.671936 0.671936 0.671936 0.680511 0.680511 0.680511 0.688812 0.688812 0.688812 0.460358 0.460358 0.460358 0.466949 0.466949 0.466949 0.473785 0.473785 0.473785 0.480499 0.480499 0.480499 0.487427 0.487427 0.487427 0.494415 0.494415 0.494415 0.501312 0.501312 0.501312 0.508453 0.508453 0.508453 0.515747 0.515747 0.515747 0.522888 0.522888 0.522888 0.530396 0.530396 0.530396 0.537964 0.537964 0.537964 0.545502 0.545502 0.545502 0.553375 0.553375 0.553375 0.561157 0.561157 0.561157 0.569244 0.569244 0.569244 0.577515 0.577515 0.577515 0.585663 0.585663 0.585663 0.594147 0.594147 0.594147 0.602722 0.602722 0.602722 0.611176 0.611176 0.611176 0.619873 0.619873 0.619873 0.628632 0.628632 0.628632 0.637146 0.637146 0.637146 0.645905 0.645905 0.645905 0.654633 0.654633 0.654633 0.663116 0.663116 0.663116 0.671753 0.671753 0.671753 0.680084 0.680084 0.680084 0.688568 0.688568 0.688568 0.696991 0.696991 0.696991 0.705017 0.705017 0.705017 0.473633 0.473633 0.473633 0.480316 0.480316 0.480316 0.487244 0.487244 0.487244 0.494049 0.494049 0.494049 0.501129 0.501129 0.501129 0.508301 0.508301 0.508301 0.515381 0.515381 0.515381 0.522736 0.522736 0.522736 0.530212 0.530212 0.530212 0.537598 0.537598 0.537598 0.545319 0.545319 0.545319 0.553162 0.553162 0.553162 0.560944 0.560944 0.560944 0.569061 0.569061 0.569061 0.577118 0.577118 0.577118 0.585449 0.585449 0.585449 0.593964 0.593964 0.593964 0.602325 0.602325 0.602325 0.610992 0.610992 0.610992 0.619690 0.619690 0.619690 0.628174 0.628174 0.628174 0.636963 0.636963 0.636963 0.645691 0.645691 0.645691 0.654236 0.654236 0.654236 0.662933 0.662933 0.662933 0.671326 0.671326 0.671326 0.679901 0.679901 0.679901 0.688354 0.688354 0.688354 0.696533 0.696533 0.696533 0.704803 0.704803 0.704803 0.712952 0.712952 0.712952 0.720703 0.720703 0.720703 0.487061 0.487061 0.487061 0.493896 0.493896 0.493896 0.500946 0.500946 0.500946 0.507935 0.507935 0.507935 0.515198 0.515198 0.515198 0.522552 0.522552 0.522552 0.529816 0.529816 0.529816 0.537415 0.537415 0.537415 0.545135 0.545135 0.545135 0.552734 0.552734 0.552734 0.560760 0.560760 0.560760 0.568817 0.568817 0.568817 0.576874 0.576874 0.576874 0.585266 0.585266 0.585266 0.593536 0.593536 0.593536 0.602081 0.602081 0.602081 0.610748 0.610748 0.610748 0.619232 0.619232 0.619232 0.627960 0.627960 0.627960 0.636719 0.636719 0.636719 0.645264 0.645264 0.645264 0.653992 0.653992 0.653992 0.662689 0.662689 0.662689 0.671112 0.671112 0.671112 0.679657 0.679657 0.679657 0.687958 0.687958 0.687958 0.696350 0.696350 0.696350 0.704590 0.704590 0.704590 0.712524 0.712524 0.712524 0.720551 0.720551 0.720551 0.728363 0.728363 0.728363 0.735870 0.735870 0.735870 0.500610 0.500610 0.500610 0.507751 0.507751 0.507751 0.514984 0.514984 0.514984 0.522186 0.522186 0.522186 0.529633 0.529633 0.529633 0.537201 0.537201 0.537201 0.544739 0.544739 0.544739 0.552582 0.552582 0.552582 0.560516 0.560516 0.560516 0.568451 0.568451 0.568451 0.576691 0.576691 0.576691 0.584839 0.584839 0.584839 0.593323 0.593323 0.593323 0.601898 0.601898 0.601898 0.610321 0.610321 0.610321 0.619049 0.619049 0.619049 0.627747 0.627747 0.627747 0.636322 0.636322 0.636322 0.645050 0.645050 0.645050 0.653778 0.653778 0.653778 0.662262 0.662262 0.662262 0.670898 0.670898 0.670898 0.679260 0.679260 0.679260 0.687714 0.687714 0.687714 0.696167 0.696167 0.696167 0.704193 0.704193 0.704193 0.712341 0.712341 0.712341 0.720337 0.720337 0.720337 0.727997 0.727997 0.727997 0.735687 0.735687 0.735687 0.743195 0.743195 0.743195 0.750305 0.750305 0.750305 0.514618 0.514618 0.514618 0.521973 0.521973 0.521973 0.529449 0.529449 0.529449 0.536835 0.536835 0.536835 0.544525 0.544525 0.544525 0.552368 0.552368 0.552368 0.560120 0.560120 0.560120 0.568237 0.568237 0.568237 0.576477 0.576477 0.576477 0.584656 0.584656 0.584656 0.593079 0.593079 0.593079 0.601440 0.601440 0.601440 0.610107 0.610107 0.610107 0.618805 0.618805 0.618805 0.627319 0.627319 0.627319 0.636078 0.636078 0.636078 0.644836 0.644836 0.644836 0.653320 0.653320 0.653320 0.662018 0.662018 0.662018 0.670685 0.670685 0.670685 0.679047 0.679047 0.679047 0.687531 0.687531 0.687531 0.695709 0.695709 0.695709 0.703979 0.703979 0.703979 0.712128 0.712128 0.712128 0.719940 0.719940 0.719940 0.727783 0.727783 0.727783 0.735504 0.735504 0.735504 0.742798 0.742798 0.742798 0.750153 0.750153 0.750153 0.757263 0.757263 0.757263 0.764008 0.764008 0.764008 0.529083 0.529083 0.529083 0.536621 0.536621 0.536621 0.544342 0.544342 0.544342 0.551971 0.551971 0.551971 0.559937 0.559937 0.559937 0.568024 0.568024 0.568024 0.576080 0.576080 0.576080 0.584412 0.584412 0.584412 0.592682 0.592682 0.592682 0.601257 0.601257 0.601257 0.609894 0.609894 0.609894 0.618378 0.618378 0.618378 0.627106 0.627106 0.627106 0.635864 0.635864 0.635864 0.644379 0.644379 0.644379 0.653137 0.653137 0.653137 0.661804 0.661804 0.661804 0.670227 0.670227 0.670227 0.678833 0.678833 0.678833 0.687103 0.687103 0.687103 0.695496 0.695496 0.695496 0.703796 0.703796 0.703796 0.711731 0.711731 0.711731 0.719788 0.719788 0.719788 0.727600 0.727600 0.727600 0.735107 0.735107 0.735107 0.742615 0.742615 0.742615 0.749969 0.749969 0.749969 0.756897 0.756897 0.756897 0.763824 0.763824 0.763824 0.770325 0.770325 0.770325 0.776794 0.776794 0.776794 0.543945 0.543945 0.543945 0.551788 0.551788 0.551788 0.559753 0.559753 0.559753 0.567627 0.567627 0.567627 0.575867 0.575867 0.575867 0.584198 0.584198 0.584198 0.592438 0.592438 0.592438 0.601013 0.601013 0.601013 0.609467 0.609467 0.609467 0.618134 0.618134 0.618134 0.626862 0.626862 0.626862 0.635406 0.635406 0.635406 0.644196 0.644196 0.644196 0.652924 0.652924 0.652924 0.661377 0.661377 0.661377 0.670044 0.670044 0.670044 0.678650 0.678650 0.678650 0.686920 0.686920 0.686920 0.695282 0.695282 0.695282 0.703400 0.703400 0.703400 0.711548 0.711548 0.711548 0.719543 0.719543 0.719543 0.727203 0.727203 0.727203 0.734924 0.734924 0.734924 0.742462 0.742462 0.742462 0.749603 0.749603 0.749603 0.756714 0.756714 0.756714 0.763641 0.763641 0.763641 0.770142 0.770142 0.770142 0.776642 0.776642 0.776642 0.782745 0.782745 0.782745 0.788757 0.788757 0.788757 0.559326 0.559326 0.559326 0.567383 0.567383 0.567383 0.575653 0.575653 0.575653 0.583771 0.583771 0.583771 0.592255 0.592255 0.592255 0.600616 0.600616 0.600616 0.609253 0.609253 0.609253 0.617950 0.617950 0.617950 0.626465 0.626465 0.626465 0.635193 0.635193 0.635193 0.643982 0.643982 0.643982 0.652466 0.652466 0.652466 0.661194 0.661194 0.661194 0.669800 0.669800 0.669800 0.678162 0.678162 0.678162 0.686676 0.686676 0.686676 0.695099 0.695099 0.695099 0.703156 0.703156 0.703156 0.711334 0.711334 0.711334 0.719147 0.719147 0.719147 0.727020 0.727020 0.727020 0.734711 0.734711 0.734711 0.742065 0.742065 0.742065 0.749420 0.749420 0.749420 0.756561 0.756561 0.756561 0.763306 0.763306 0.763306 0.770020 0.770020 0.770020 0.776337 0.776337 0.776337 0.782593 0.782593 0.782593 0.788574 0.788574 0.788574 0.794189 0.794189 0.794189 0.799713 0.799713 0.799713 0.575195 0.575195 0.575195 0.583557 0.583557 0.583557 0.592041 0.592041 0.592041 0.600372 0.600372 0.600372 0.609009 0.609009 0.609009 0.617493 0.617493 0.617493 0.626221 0.626221 0.626221 0.635010 0.635010 0.635010 0.643524 0.643524 0.643524 0.652252 0.652252 0.652252 0.660980 0.660980 0.660980 0.669403 0.669403 0.669403 0.677979 0.677979 0.677979 0.686493 0.686493 0.686493 0.694672 0.694672 0.694672 0.702972 0.702972 0.702972 0.710938 0.710938 0.710938 0.718964 0.718964 0.718964 0.726807 0.726807 0.726807 0.734344 0.734344 0.734344 0.741882 0.741882 0.741882 0.749237 0.749237 0.749237 0.756226 0.756226 0.756226 0.763123 0.763123 0.763123 0.769867 0.769867 0.769867 0.776184 0.776184 0.776184 0.782440 0.782440 0.782440 0.788300 0.788300 0.788300 0.794037 0.794037 0.794037 0.799530 0.799530 0.799530 0.804657 0.804657 0.804657 0.809631 0.809631 0.809631 ================================================ FILE: packages/sdk/public/resource/luts/Cubicle 99.CUBE ================================================ #Created by: Adobe Photoshop Export Color Lookup Plugin #Copyright: (C) Copyright 2017 RocketStock TITLE "Cool " #LUT size LUT_3D_SIZE 32 #data domain DOMAIN_MIN 0.0 0.0 0.0 DOMAIN_MAX 1.0 1.0 1.0 #LUT data points 0.000000 0.000000 0.120178 0.000000 0.000000 0.120575 0.000000 0.000000 0.121033 0.000000 0.000000 0.121429 0.025360 0.000000 0.121918 0.058624 0.000000 0.122314 0.087830 0.000000 0.122833 0.115326 0.000000 0.123352 0.140869 0.000000 0.123871 0.164948 0.000000 0.124451 0.187317 0.000000 0.125000 0.208771 0.000000 0.125641 0.229523 0.000000 0.126160 0.249725 0.000000 0.126801 0.270264 0.000000 0.127441 0.291107 0.000000 0.128082 0.312622 0.000000 0.128723 0.335327 0.000000 0.129456 0.359558 0.000000 0.130127 0.385864 0.000000 0.130798 0.414581 0.000000 0.131500 0.445984 0.000000 0.132263 0.480438 0.000000 0.133026 0.518585 0.000000 0.133759 0.560486 0.000000 0.134491 0.605652 0.000000 0.135315 0.653625 0.000000 0.136078 0.704041 0.000000 0.136902 0.756439 0.000000 0.137695 0.810120 0.000000 0.138489 0.864868 0.000000 0.139282 0.915527 0.000000 0.140167 0.000000 0.000000 0.120972 0.000000 0.000000 0.121399 0.000000 0.000000 0.121857 0.000244 0.000000 0.122314 0.026672 0.000000 0.122833 0.059784 0.000000 0.123322 0.089020 0.000000 0.123840 0.116425 0.000000 0.124390 0.141937 0.000000 0.124969 0.165741 0.000000 0.125549 0.188202 0.000000 0.126160 0.209656 0.000000 0.126801 0.230377 0.000000 0.127441 0.250580 0.000000 0.128082 0.271057 0.000000 0.128723 0.291718 0.000000 0.129425 0.313385 0.000000 0.130096 0.336182 0.000000 0.130798 0.360413 0.000916 0.131470 0.386749 0.001984 0.132233 0.415466 0.003082 0.133026 0.446869 0.004211 0.133728 0.481384 0.005402 0.134491 0.519470 0.006653 0.135284 0.561279 0.007843 0.136047 0.606384 0.009155 0.136841 0.654266 0.010437 0.137665 0.704498 0.011749 0.138458 0.756805 0.013153 0.139282 0.810364 0.014587 0.140076 0.865112 0.015961 0.140961 0.915527 0.017334 0.141815 0.000000 0.011719 0.121857 0.000000 0.012512 0.122314 0.000000 0.013275 0.122803 0.001343 0.014008 0.123322 0.027832 0.014893 0.123840 0.061066 0.015778 0.124390 0.090454 0.016571 0.124969 0.117737 0.017487 0.125519 0.143036 0.018494 0.126129 0.166779 0.019531 0.126801 0.189209 0.020386 0.127411 0.210510 0.021454 0.128082 0.231049 0.022522 0.128693 0.251495 0.023621 0.129395 0.271729 0.024750 0.130096 0.292572 0.025909 0.130737 0.314087 0.027069 0.131470 0.336853 0.028290 0.132233 0.361298 0.029297 0.132996 0.387573 0.030548 0.133728 0.416290 0.031799 0.134460 0.447632 0.033051 0.135254 0.482300 0.034332 0.135986 0.520416 0.035614 0.136810 0.562164 0.036926 0.137634 0.607147 0.038239 0.138428 0.655090 0.039551 0.139252 0.705261 0.041016 0.140076 0.757233 0.042480 0.140930 0.810760 0.043793 0.141754 0.865356 0.045227 0.142609 0.915527 0.047516 0.143433 0.000000 0.040649 0.122803 0.000000 0.041504 0.123322 0.000000 0.042358 0.123810 0.002441 0.043091 0.124390 0.029205 0.044037 0.124939 0.062622 0.044861 0.125519 0.091766 0.045868 0.126129 0.118927 0.047760 0.126770 0.144226 0.049530 0.127411 0.167847 0.051086 0.128021 0.190216 0.052948 0.128662 0.211334 0.054932 0.129395 0.231995 0.057037 0.130035 0.252319 0.058960 0.130737 0.272614 0.060059 0.131470 0.293396 0.061218 0.132202 0.315002 0.062561 0.132935 0.337708 0.063904 0.133728 0.362030 0.065277 0.134430 0.388336 0.066589 0.135223 0.417084 0.067932 0.135986 0.448547 0.069366 0.136780 0.483032 0.070770 0.137604 0.521393 0.072205 0.138428 0.563080 0.073456 0.139221 0.607971 0.074921 0.140045 0.655640 0.076324 0.140900 0.705719 0.077789 0.141724 0.757751 0.079193 0.142609 0.811127 0.080719 0.143402 0.865509 0.082153 0.144318 0.915527 0.083710 0.145203 0.000000 0.077332 0.123810 0.000000 0.078278 0.124359 0.000000 0.079102 0.124939 0.003784 0.080109 0.125488 0.030548 0.081085 0.126129 0.064148 0.082001 0.126709 0.093201 0.083099 0.127380 0.120331 0.084076 0.127991 0.145355 0.085083 0.128662 0.168976 0.086243 0.129333 0.191193 0.087433 0.130005 0.212402 0.088379 0.130737 0.232971 0.089600 0.131439 0.253113 0.090790 0.132172 0.273468 0.092041 0.132904 0.294159 0.093292 0.133698 0.315765 0.094360 0.134399 0.338623 0.095612 0.135223 0.362946 0.096954 0.135956 0.389252 0.098206 0.136780 0.418030 0.099579 0.137604 0.449524 0.100861 0.138397 0.484039 0.102173 0.139191 0.522095 0.103333 0.140015 0.563812 0.104706 0.140869 0.608887 0.106110 0.141724 0.656433 0.107452 0.142578 0.706482 0.108856 0.143402 0.758209 0.110260 0.144318 0.811401 0.111603 0.145172 0.865662 0.113037 0.145996 0.915527 0.114441 0.146942 0.000000 0.108459 0.124908 0.000000 0.109161 0.125458 0.000000 0.110168 0.126068 0.005188 0.110931 0.126709 0.032135 0.111969 0.127350 0.065857 0.113007 0.127991 0.094604 0.113861 0.128662 0.121613 0.114899 0.129303 0.146729 0.115875 0.130005 0.170135 0.116882 0.130737 0.192352 0.118011 0.131409 0.213379 0.119171 0.132172 0.233948 0.120087 0.132843 0.254028 0.121246 0.133667 0.274323 0.122406 0.134399 0.295074 0.123474 0.135162 0.316620 0.124573 0.135925 0.339478 0.125793 0.136749 0.363892 0.127014 0.137573 0.390259 0.128113 0.138367 0.419037 0.129272 0.139191 0.450500 0.130493 0.140015 0.485016 0.131744 0.140839 0.523071 0.133026 0.141693 0.564789 0.134064 0.142548 0.609589 0.135345 0.143372 0.657074 0.136627 0.144257 0.706940 0.137878 0.145111 0.758636 0.139160 0.145966 0.811646 0.140320 0.146851 0.865814 0.141571 0.147766 0.915527 0.142853 0.148651 0.000000 0.137604 0.126068 0.000000 0.138336 0.126678 0.000000 0.139252 0.127350 0.006744 0.139984 0.127960 0.033600 0.140961 0.128601 0.067444 0.141724 0.129303 0.096283 0.142731 0.129944 0.123016 0.143646 0.130646 0.148041 0.144562 0.131378 0.171326 0.145569 0.132141 0.193481 0.146484 0.132843 0.214447 0.147491 0.133636 0.234955 0.148560 0.134399 0.255035 0.149445 0.135132 0.275238 0.150543 0.135925 0.296051 0.151642 0.136719 0.317596 0.152527 0.137543 0.340332 0.153656 0.138336 0.364746 0.154785 0.139160 0.391174 0.155701 0.140015 0.419922 0.156860 0.140808 0.451385 0.157990 0.141693 0.486053 0.158936 0.142487 0.524078 0.160095 0.143341 0.565796 0.161285 0.144257 0.610474 0.162415 0.145081 0.657898 0.163391 0.145966 0.707672 0.164581 0.146851 0.759277 0.165771 0.147766 0.812195 0.166748 0.148621 0.865936 0.167877 0.149506 0.915527 0.169067 0.150391 0.000000 0.164520 0.127258 0.000000 0.165161 0.127899 0.000000 0.166046 0.128601 0.008331 0.166748 0.129272 0.035248 0.167633 0.129913 0.069275 0.168365 0.130615 0.097809 0.169281 0.131378 0.124634 0.170135 0.132080 0.149384 0.170990 0.132812 0.172516 0.171967 0.133545 0.194489 0.172729 0.134308 0.215515 0.173737 0.135101 0.235748 0.174469 0.135864 0.256042 0.175507 0.136688 0.276215 0.176453 0.137543 0.296936 0.177338 0.138306 0.318542 0.178406 0.139130 0.341309 0.179230 0.139984 0.365662 0.180237 0.140808 0.392120 0.181274 0.141663 0.420807 0.182098 0.142456 0.452332 0.183167 0.143311 0.487030 0.184143 0.144226 0.525085 0.185120 0.145050 0.566528 0.186188 0.145935 0.611420 0.187042 0.146820 0.658722 0.188141 0.147675 0.708221 0.189209 0.148590 0.759644 0.190063 0.149475 0.812469 0.191162 0.150330 0.866089 0.192139 0.151245 0.915527 0.193115 0.152130 0.000000 0.189423 0.128601 0.000000 0.190002 0.129211 0.000000 0.190826 0.129913 0.010040 0.191467 0.130615 0.037018 0.192322 0.131348 0.071106 0.192993 0.132080 0.099548 0.193909 0.132782 0.126099 0.194580 0.133545 0.150757 0.195465 0.134308 0.173798 0.196136 0.135071 0.195770 0.197052 0.135864 0.216644 0.197784 0.136688 0.236816 0.198700 0.137421 0.257050 0.199432 0.138306 0.277222 0.200439 0.139069 0.297852 0.201141 0.139923 0.319489 0.202118 0.140747 0.342316 0.202881 0.141602 0.366638 0.203827 0.142456 0.393036 0.204712 0.143311 0.421875 0.205566 0.144165 0.453339 0.206573 0.145020 0.487854 0.207306 0.145935 0.526093 0.208313 0.146790 0.567535 0.209106 0.147675 0.612122 0.210114 0.148590 0.659424 0.210968 0.149445 0.708984 0.211884 0.150299 0.760284 0.212830 0.151245 0.812744 0.213654 0.152100 0.866302 0.214661 0.153015 0.915527 0.215485 0.153931 0.000000 0.212372 0.129883 0.000000 0.213165 0.130585 0.000000 0.213745 0.131317 0.011749 0.214569 0.132050 0.038818 0.215179 0.132782 0.072968 0.215912 0.133514 0.101135 0.216583 0.134277 0.127594 0.217346 0.135071 0.152100 0.218048 0.135834 0.175262 0.218719 0.136658 0.196991 0.219574 0.137421 0.217804 0.220245 0.138275 0.237915 0.221100 0.139038 0.257874 0.221771 0.139893 0.278259 0.222687 0.140717 0.298798 0.223358 0.141571 0.320374 0.224243 0.142395 0.343323 0.224945 0.143250 0.367645 0.225861 0.144135 0.394104 0.226562 0.145020 0.422882 0.227448 0.145905 0.454407 0.228180 0.146759 0.488953 0.229095 0.147644 0.526978 0.229797 0.148499 0.568512 0.230713 0.149414 0.613068 0.231445 0.150269 0.660278 0.232361 0.151184 0.709564 0.233063 0.152100 0.760712 0.234039 0.152985 0.813171 0.234741 0.153900 0.866608 0.235657 0.154785 0.915527 0.236420 0.155640 0.000000 0.234161 0.131317 0.000000 0.234680 0.132019 0.000000 0.235443 0.132751 0.013550 0.235992 0.133484 0.040680 0.236694 0.134247 0.074890 0.237335 0.135040 0.103027 0.237915 0.135803 0.129303 0.238708 0.136627 0.153748 0.239319 0.137421 0.176544 0.240082 0.138245 0.198212 0.240692 0.139038 0.218933 0.241455 0.139832 0.239014 0.242157 0.140686 0.258942 0.242920 0.141571 0.279236 0.243591 0.142365 0.299835 0.244263 0.143250 0.321350 0.245117 0.144135 0.344147 0.245758 0.144958 0.368713 0.246582 0.145844 0.395111 0.247253 0.146729 0.423981 0.248108 0.147614 0.455505 0.248779 0.148499 0.490021 0.249664 0.149414 0.528046 0.250305 0.150269 0.569550 0.251190 0.151154 0.614075 0.251862 0.152069 0.660889 0.252563 0.152985 0.710297 0.253387 0.153870 0.761139 0.254120 0.154724 0.813538 0.254944 0.155640 0.866760 0.255707 0.156555 0.915527 0.256500 0.157410 0.000000 0.254822 0.132751 0.000000 0.255280 0.133484 0.000000 0.256042 0.134247 0.015472 0.256561 0.135010 0.042572 0.257050 0.135803 0.076874 0.257843 0.136566 0.104889 0.258392 0.137390 0.130798 0.259064 0.138153 0.155151 0.259705 0.139038 0.177856 0.260284 0.139801 0.199432 0.261078 0.140686 0.220093 0.261627 0.141541 0.240112 0.262329 0.142365 0.260040 0.263031 0.143219 0.280060 0.263580 0.144043 0.300873 0.264435 0.144958 0.322357 0.265015 0.145813 0.345154 0.265808 0.146698 0.369751 0.266418 0.147614 0.396210 0.267273 0.148468 0.424988 0.267853 0.149323 0.456451 0.268463 0.150269 0.491058 0.269318 0.151154 0.529083 0.269897 0.151978 0.570496 0.270752 0.152954 0.614777 0.271393 0.153839 0.661804 0.272217 0.154694 0.710815 0.272827 0.155609 0.761780 0.273529 0.156525 0.813873 0.274323 0.157410 0.866882 0.274963 0.158325 0.915527 0.275726 0.159241 0.000000 0.274658 0.134216 0.000000 0.275299 0.135010 0.000000 0.275848 0.135773 0.017395 0.276367 0.136536 0.044525 0.277069 0.137329 0.078918 0.277618 0.138153 0.106720 0.278168 0.139008 0.132629 0.278870 0.139801 0.156586 0.279388 0.140656 0.179169 0.280060 0.141510 0.200684 0.280670 0.142334 0.221252 0.281250 0.143188 0.241272 0.281982 0.144043 0.261139 0.282593 0.144928 0.281158 0.283325 0.145782 0.301910 0.283936 0.146698 0.323456 0.284485 0.147583 0.346222 0.285278 0.148438 0.370819 0.285828 0.149323 0.397278 0.286652 0.150238 0.425873 0.287231 0.151123 0.457458 0.287811 0.151978 0.492157 0.288574 0.152893 0.530121 0.289154 0.153778 0.571381 0.290009 0.154694 0.615692 0.290558 0.155579 0.662659 0.291260 0.156525 0.711639 0.291962 0.157379 0.762238 0.292542 0.158264 0.814117 0.293335 0.159210 0.867035 0.293976 0.160095 0.915527 0.294769 0.160980 0.000000 0.294250 0.135712 0.000000 0.294952 0.136536 0.000000 0.295441 0.137329 0.019531 0.295898 0.138123 0.047180 0.296631 0.138977 0.081024 0.297150 0.139771 0.108521 0.297699 0.140656 0.134186 0.298370 0.141479 0.158173 0.298889 0.142334 0.180542 0.299622 0.143158 0.201935 0.300171 0.144012 0.222443 0.300690 0.144897 0.242401 0.301422 0.145721 0.262207 0.301941 0.146667 0.282257 0.302582 0.147522 0.302887 0.303253 0.148407 0.324524 0.303833 0.149323 0.347290 0.304596 0.150116 0.371674 0.305145 0.151093 0.398163 0.305878 0.151947 0.426971 0.306488 0.152863 0.458496 0.307007 0.153748 0.493225 0.307800 0.154663 0.531250 0.308380 0.155548 0.572388 0.309052 0.156494 0.616699 0.309753 0.157349 0.663391 0.310303 0.158264 0.712250 0.311096 0.159149 0.762787 0.311646 0.160034 0.814545 0.312439 0.160950 0.867157 0.313019 0.161865 0.915527 0.313599 0.162750 0.000000 0.314056 0.137299 0.000000 0.314636 0.138092 0.000000 0.315125 0.138977 0.021545 0.315796 0.139740 0.050659 0.316315 0.140625 0.083130 0.316803 0.141479 0.110535 0.317505 0.142303 0.136017 0.318024 0.143158 0.159729 0.318481 0.144012 0.182129 0.319244 0.144836 0.203217 0.319733 0.145721 0.223663 0.320312 0.146667 0.243530 0.321014 0.147522 0.263336 0.321564 0.148376 0.283325 0.322327 0.149292 0.303955 0.322845 0.150116 0.325592 0.323334 0.151062 0.348419 0.324097 0.151947 0.372772 0.324646 0.152832 0.399231 0.325226 0.153748 0.428101 0.325989 0.154633 0.459595 0.326538 0.155548 0.494324 0.327301 0.156433 0.532166 0.327850 0.157318 0.573425 0.328522 0.158234 0.617554 0.329163 0.159119 0.664185 0.329712 0.160034 0.712891 0.330475 0.160950 0.763275 0.331024 0.161804 0.814972 0.331604 0.162720 0.867310 0.332367 0.163605 0.915527 0.332916 0.164673 0.000000 0.334229 0.138885 0.000000 0.334686 0.139709 0.000000 0.335419 0.140625 0.023712 0.335907 0.141388 0.054718 0.336395 0.142242 0.085297 0.337097 0.143127 0.112518 0.337585 0.143982 0.137726 0.338104 0.144836 0.161377 0.338806 0.145660 0.183533 0.339325 0.146576 0.204559 0.339996 0.147461 0.224884 0.340546 0.148346 0.244690 0.341095 0.149261 0.264465 0.341675 0.150085 0.284454 0.342346 0.151031 0.305023 0.342865 0.151917 0.326630 0.343628 0.152832 0.349457 0.344147 0.153717 0.373840 0.344757 0.154602 0.400330 0.345459 0.155487 0.429199 0.345978 0.156403 0.460693 0.346619 0.157318 0.495209 0.347321 0.158234 0.533203 0.347839 0.159088 0.574493 0.348602 0.160004 0.618378 0.349121 0.160919 0.665070 0.349792 0.161804 0.713531 0.350464 0.162659 0.763794 0.351013 0.163544 0.815216 0.351776 0.164673 0.867462 0.352295 0.165558 0.915527 0.352814 0.166473 0.000000 0.355286 0.140503 0.000000 0.355774 0.141388 0.000061 0.356384 0.142212 0.025909 0.356964 0.143097 0.058655 0.357422 0.143982 0.087463 0.358002 0.144806 0.114410 0.358704 0.145660 0.139496 0.359161 0.146545 0.162964 0.359863 0.147430 0.184937 0.360382 0.148346 0.205902 0.360901 0.149200 0.226135 0.361633 0.150055 0.245911 0.362183 0.150970 0.265625 0.362762 0.151917 0.285583 0.363434 0.152771 0.306030 0.363983 0.153687 0.327698 0.364594 0.154602 0.350555 0.365234 0.155457 0.374939 0.365753 0.156372 0.401398 0.366516 0.157288 0.430267 0.367065 0.158203 0.461823 0.367645 0.159088 0.496307 0.368347 0.159943 0.534241 0.368927 0.160858 0.575439 0.369537 0.161774 0.619385 0.370209 0.162628 0.665710 0.370728 0.163544 0.714233 0.371521 0.164642 0.764313 0.372040 0.165527 0.815521 0.372620 0.166412 0.867615 0.373322 0.167297 0.915527 0.373871 0.168152 0.000000 0.377350 0.142181 0.000000 0.378082 0.143066 0.002014 0.378571 0.143951 0.028046 0.379059 0.144775 0.060852 0.379761 0.145660 0.089630 0.380219 0.146545 0.116272 0.380768 0.147400 0.141296 0.381500 0.148346 0.164459 0.381989 0.149170 0.186493 0.382599 0.150024 0.207367 0.383240 0.150970 0.227386 0.383759 0.151825 0.247070 0.384521 0.152771 0.266754 0.385040 0.153625 0.286652 0.385559 0.154541 0.307129 0.386322 0.155457 0.328766 0.386871 0.156372 0.351654 0.387421 0.157257 0.376038 0.388153 0.158173 0.402527 0.388672 0.159027 0.431396 0.389435 0.159912 0.462952 0.390015 0.160858 0.497406 0.390503 0.161743 0.535370 0.391266 0.162598 0.576355 0.391815 0.163513 0.620361 0.392365 0.164612 0.666595 0.393127 0.165527 0.714905 0.393677 0.166412 0.764740 0.394409 0.167236 0.816010 0.394958 0.168121 0.867920 0.395447 0.168976 0.915527 0.396210 0.169830 0.000000 0.401154 0.143890 0.000000 0.401703 0.144745 0.004089 0.402283 0.145660 0.030396 0.402893 0.146515 0.063202 0.403381 0.147369 0.091766 0.403900 0.148224 0.118317 0.404663 0.149139 0.143005 0.405182 0.150024 0.166168 0.405823 0.150940 0.187958 0.406433 0.151825 0.208679 0.406982 0.152740 0.228577 0.407684 0.153595 0.248230 0.408234 0.154541 0.267914 0.408905 0.155426 0.287811 0.409485 0.156311 0.308228 0.410034 0.157227 0.329712 0.410706 0.158173 0.352539 0.411346 0.159027 0.377167 0.411896 0.159912 0.403656 0.412659 0.160828 0.432526 0.413208 0.161713 0.464050 0.413818 0.162598 0.498535 0.414520 0.163452 0.536377 0.415039 0.164581 0.577362 0.415680 0.165527 0.621094 0.416321 0.166321 0.667480 0.416870 0.167236 0.715515 0.417603 0.168121 0.765411 0.418182 0.168945 0.816315 0.418701 0.169800 0.868103 0.419434 0.170624 0.915527 0.419952 0.171509 0.000000 0.426666 0.145599 0.000000 0.427277 0.146484 0.006195 0.427917 0.147308 0.032562 0.428406 0.148224 0.065796 0.429169 0.149139 0.093994 0.429657 0.149963 0.120331 0.430176 0.150940 0.144897 0.430908 0.151764 0.167755 0.431458 0.152710 0.189362 0.432098 0.153595 0.209961 0.432739 0.154510 0.229828 0.433228 0.155396 0.249451 0.433990 0.156311 0.269043 0.434570 0.157196 0.288910 0.435089 0.158081 0.309357 0.435852 0.158966 0.330872 0.436401 0.159882 0.353699 0.437042 0.160797 0.378265 0.437714 0.161682 0.404755 0.438232 0.162537 0.433624 0.438873 0.163422 0.465179 0.439545 0.164581 0.499634 0.440094 0.165466 0.537476 0.440826 0.166321 0.578369 0.441376 0.167175 0.622009 0.441986 0.168060 0.668091 0.442688 0.168915 0.716278 0.443176 0.169769 0.765808 0.443817 0.170593 0.816559 0.444489 0.171448 0.868225 0.445007 0.172241 0.915527 0.445770 0.173126 0.000000 0.454498 0.147308 0.000000 0.454987 0.148193 0.008484 0.455719 0.149048 0.034973 0.456268 0.149963 0.068115 0.456787 0.150879 0.096191 0.457520 0.151733 0.122253 0.458008 0.152679 0.146637 0.458740 0.153595 0.169373 0.459320 0.154449 0.190765 0.459869 0.155334 0.211304 0.460602 0.156281 0.231049 0.461182 0.157166 0.250610 0.461670 0.158081 0.270203 0.462463 0.158936 0.290039 0.462982 0.159851 0.310455 0.463562 0.160767 0.331970 0.464264 0.161652 0.354797 0.464844 0.162537 0.379364 0.465607 0.163391 0.405914 0.466125 0.164520 0.434753 0.466675 0.165466 0.466278 0.467438 0.166290 0.500732 0.467957 0.167175 0.538483 0.468506 0.168060 0.579376 0.469269 0.168915 0.622986 0.469818 0.169739 0.668976 0.470581 0.170593 0.716797 0.471100 0.171417 0.766205 0.471619 0.172241 0.817017 0.472351 0.173126 0.868408 0.472870 0.173859 0.915527 0.473389 0.174713 0.000000 0.484741 0.149048 0.000000 0.485321 0.149933 0.010742 0.485992 0.150848 0.037201 0.486511 0.151703 0.070557 0.487274 0.152649 0.098389 0.487793 0.153503 0.124237 0.488342 0.154419 0.148438 0.489075 0.155304 0.170990 0.489624 0.156250 0.192383 0.490143 0.157135 0.212616 0.490936 0.158020 0.232391 0.491425 0.158905 0.251862 0.492188 0.159851 0.271362 0.492737 0.160706 0.291199 0.493317 0.161652 0.311584 0.494019 0.162506 0.333069 0.494598 0.163361 0.355865 0.495209 0.164459 0.380524 0.495880 0.165405 0.406982 0.496399 0.166260 0.435852 0.496979 0.167145 0.467377 0.497711 0.167999 0.501831 0.498230 0.168854 0.539459 0.499023 0.169708 0.580444 0.499512 0.170532 0.623932 0.500061 0.171417 0.669556 0.500793 0.172211 0.717438 0.501312 0.173065 0.766876 0.501831 0.173859 0.817322 0.502594 0.174683 0.868530 0.503052 0.175476 0.915527 0.503632 0.176300 0.000000 0.517944 0.150818 0.000000 0.518463 0.151672 0.013031 0.519165 0.152618 0.039612 0.519714 0.153503 0.073029 0.520264 0.154388 0.100616 0.520966 0.155273 0.126221 0.521515 0.156250 0.150299 0.522186 0.157135 0.172516 0.522797 0.157990 0.193817 0.523346 0.158875 0.214050 0.524048 0.159821 0.233765 0.524597 0.160645 0.253052 0.525146 0.161560 0.272522 0.525848 0.162476 0.292236 0.526428 0.163330 0.312714 0.526947 0.164459 0.334198 0.527710 0.165375 0.356964 0.528198 0.166229 0.381592 0.528992 0.167114 0.408112 0.529510 0.167969 0.436768 0.530029 0.168854 0.468262 0.530762 0.169708 0.502716 0.531311 0.170502 0.540466 0.531799 0.171387 0.581238 0.532562 0.172180 0.624664 0.533081 0.173035 0.670410 0.533539 0.173798 0.718018 0.534302 0.174622 0.767212 0.534790 0.175476 0.817566 0.535370 0.176270 0.868683 0.536011 0.177094 0.915527 0.536499 0.177765 0.000000 0.554169 0.152557 0.000000 0.554779 0.153473 0.015472 0.555298 0.154358 0.041870 0.556030 0.155273 0.075531 0.556519 0.156189 0.102814 0.557068 0.157043 0.128265 0.557831 0.157959 0.151947 0.558289 0.158875 0.174255 0.558929 0.159790 0.195251 0.559509 0.160645 0.215454 0.560059 0.161560 0.235046 0.560577 0.162445 0.254211 0.561371 0.163330 0.273651 0.561829 0.164429 0.293396 0.562500 0.165314 0.313812 0.563141 0.166199 0.335236 0.563568 0.167084 0.358063 0.564362 0.167938 0.382507 0.564850 0.168823 0.409180 0.565338 0.169647 0.437866 0.565979 0.170502 0.469360 0.566559 0.171326 0.503815 0.567078 0.172150 0.541473 0.567780 0.173004 0.582184 0.568268 0.173767 0.625549 0.568756 0.174622 0.671234 0.569489 0.175415 0.718689 0.569916 0.176208 0.767792 0.570435 0.177002 0.817871 0.571136 0.177765 0.868866 0.571625 0.178528 0.915527 0.572052 0.179321 0.000000 0.593445 0.154327 0.000000 0.593933 0.155273 0.017914 0.594635 0.156128 0.044342 0.595093 0.157043 0.077850 0.595612 0.157928 0.104980 0.596161 0.158813 0.130280 0.596832 0.159760 0.153839 0.597260 0.160614 0.175781 0.597961 0.161530 0.196808 0.598511 0.162384 0.216797 0.598907 0.163269 0.236298 0.599579 0.164398 0.255432 0.600159 0.165283 0.274780 0.600616 0.166168 0.294525 0.601166 0.167053 0.314911 0.601807 0.167938 0.336365 0.602264 0.168793 0.359161 0.602783 0.169647 0.383575 0.603455 0.170502 0.410065 0.603912 0.171295 0.438965 0.604462 0.172150 0.470459 0.605103 0.172974 0.504852 0.605560 0.173767 0.542572 0.606018 0.174591 0.583191 0.606689 0.175415 0.626465 0.607117 0.176178 0.671844 0.607513 0.176971 0.719269 0.608154 0.177765 0.768188 0.608673 0.178497 0.818085 0.609070 0.179291 0.869080 0.609497 0.180054 0.915527 0.610107 0.180756 0.000000 0.635284 0.156097 0.000000 0.635742 0.157013 0.020386 0.636139 0.157898 0.047394 0.636566 0.158813 0.080231 0.637268 0.159668 0.107178 0.637695 0.160583 0.132233 0.638153 0.161499 0.155457 0.638824 0.162354 0.177429 0.639221 0.163269 0.198273 0.639648 0.164368 0.218079 0.640289 0.165253 0.237518 0.640778 0.166138 0.256592 0.641205 0.167053 0.275940 0.641663 0.167877 0.295471 0.642334 0.168732 0.316040 0.642761 0.169586 0.337463 0.643188 0.170471 0.360260 0.643860 0.171295 0.384644 0.644257 0.172119 0.411163 0.644684 0.172974 0.440033 0.645142 0.173767 0.471527 0.645721 0.174561 0.505890 0.646149 0.175354 0.543579 0.646545 0.176178 0.584167 0.647186 0.176941 0.627136 0.647583 0.177734 0.672638 0.647980 0.178497 0.719940 0.648346 0.179260 0.768555 0.648956 0.180023 0.818573 0.649353 0.180725 0.869293 0.649689 0.181458 0.915527 0.650116 0.182190 0.000000 0.678925 0.157867 0.000000 0.679565 0.158783 0.022736 0.679932 0.159637 0.051575 0.680267 0.160583 0.082672 0.680756 0.161469 0.109344 0.681335 0.162354 0.134064 0.681702 0.163239 0.157288 0.682068 0.164307 0.179047 0.682556 0.165253 0.199585 0.683075 0.166138 0.219360 0.683472 0.166992 0.238739 0.683868 0.167847 0.257751 0.684235 0.168701 0.277008 0.684845 0.169556 0.296570 0.685211 0.170380 0.317108 0.685577 0.171265 0.338531 0.686005 0.172119 0.361298 0.686523 0.172943 0.385742 0.686920 0.173706 0.412262 0.687225 0.174530 0.441071 0.687775 0.175354 0.472565 0.688171 0.176147 0.506927 0.688568 0.176910 0.544556 0.688904 0.177704 0.584930 0.689209 0.178436 0.628021 0.689819 0.179260 0.673187 0.690125 0.180023 0.720459 0.690491 0.180725 0.769165 0.690826 0.181427 0.818817 0.691223 0.182159 0.869415 0.691681 0.182831 0.915527 0.691956 0.183533 0.000000 0.724579 0.159607 0.000092 0.724884 0.160553 0.025177 0.725220 0.161438 0.055756 0.725769 0.162323 0.085114 0.726044 0.163208 0.111511 0.726379 0.164246 0.136047 0.726715 0.165222 0.158905 0.727203 0.166107 0.180450 0.727539 0.166992 0.200958 0.727875 0.167847 0.220673 0.728210 0.168671 0.239960 0.728546 0.169525 0.258881 0.729034 0.170380 0.278168 0.729340 0.171234 0.297638 0.729614 0.172089 0.317963 0.729919 0.172913 0.339539 0.730225 0.173706 0.362396 0.730804 0.174530 0.386780 0.731079 0.175323 0.413300 0.731415 0.176117 0.442169 0.731659 0.176910 0.473633 0.731964 0.177673 0.507965 0.732513 0.178436 0.545349 0.732758 0.179230 0.585815 0.733032 0.179962 0.628937 0.733307 0.180664 0.673950 0.733582 0.181396 0.720917 0.734070 0.182129 0.769501 0.734344 0.182831 0.819031 0.734589 0.183502 0.869507 0.734863 0.184204 0.915527 0.735077 0.184845 0.000000 0.771301 0.161438 0.002197 0.771759 0.162292 0.027679 0.772034 0.163177 0.059570 0.772278 0.164246 0.087494 0.772522 0.165192 0.113647 0.772736 0.166077 0.138031 0.773010 0.166931 0.160706 0.773407 0.167847 0.182129 0.773682 0.168671 0.202423 0.773956 0.169495 0.222076 0.774170 0.170319 0.241180 0.774414 0.171173 0.260071 0.774689 0.172058 0.279297 0.775116 0.172882 0.298767 0.775360 0.173676 0.319031 0.775574 0.174469 0.340454 0.775818 0.175293 0.363251 0.776062 0.176086 0.387848 0.776215 0.176880 0.414337 0.776550 0.177643 0.443207 0.776917 0.178436 0.474609 0.777161 0.179199 0.508911 0.777374 0.179962 0.546326 0.777618 0.180664 0.586761 0.777802 0.181396 0.629517 0.778015 0.182098 0.674530 0.778168 0.182800 0.721588 0.778564 0.183472 0.769867 0.778809 0.184174 0.819244 0.778992 0.184814 0.869629 0.779205 0.185455 0.915527 0.779388 0.186096 0.000000 0.819061 0.163147 0.004486 0.819153 0.164062 0.029999 0.819336 0.165192 0.062042 0.819489 0.166046 0.089752 0.819794 0.166901 0.115631 0.820068 0.167786 0.139740 0.820282 0.168640 0.162292 0.820404 0.169495 0.183624 0.820557 0.170319 0.203949 0.820740 0.171143 0.223419 0.820892 0.171997 0.242340 0.821045 0.172852 0.261169 0.821259 0.173645 0.280182 0.821564 0.174469 0.299835 0.821808 0.175262 0.320038 0.821899 0.176056 0.341492 0.822052 0.176849 0.364288 0.822266 0.177643 0.388855 0.822388 0.178406 0.415375 0.822510 0.179169 0.444000 0.822693 0.179901 0.475433 0.822815 0.180634 0.509766 0.823120 0.181396 0.547272 0.823364 0.182068 0.587433 0.823456 0.182739 0.630341 0.823608 0.183472 0.675293 0.823792 0.184143 0.722015 0.823853 0.184784 0.770264 0.823975 0.185455 0.819702 0.824127 0.186066 0.869751 0.824249 0.186737 0.915527 0.824402 0.187347 0.000000 0.867218 0.165131 0.006805 0.867310 0.166016 0.032410 0.867401 0.166870 0.064758 0.867493 0.167725 0.092010 0.867554 0.168579 0.117737 0.867645 0.169495 0.141663 0.867737 0.170288 0.164062 0.867798 0.171143 0.185028 0.867920 0.171997 0.205231 0.868103 0.172852 0.224670 0.868286 0.173615 0.243530 0.868378 0.174469 0.262329 0.868439 0.175232 0.281311 0.868530 0.176025 0.300903 0.868622 0.176849 0.321106 0.868652 0.177612 0.342529 0.868744 0.178375 0.365295 0.868835 0.179169 0.389832 0.868896 0.179871 0.416321 0.868988 0.180603 0.445038 0.869049 0.181366 0.476440 0.869110 0.182068 0.510712 0.869171 0.182739 0.548065 0.869263 0.183441 0.588318 0.869293 0.184113 0.631042 0.869385 0.184784 0.675812 0.869446 0.185425 0.722626 0.869568 0.186066 0.770721 0.869720 0.186707 0.819916 0.869781 0.187317 0.869812 0.869934 0.187897 0.915527 0.869995 0.188446 0.000000 0.915527 0.166840 0.009216 0.915527 0.167694 0.034912 0.915527 0.168579 0.067108 0.915527 0.169434 0.094269 0.915527 0.170258 0.119720 0.915527 0.171112 0.143585 0.915527 0.171967 0.165588 0.915527 0.172760 0.186676 0.915527 0.173615 0.206573 0.915527 0.174408 0.225861 0.915527 0.175201 0.244659 0.915527 0.176025 0.263428 0.915527 0.176788 0.282349 0.915527 0.177582 0.301910 0.915527 0.178375 0.322144 0.915527 0.179108 0.343536 0.915527 0.179871 0.366333 0.915527 0.180573 0.390717 0.915527 0.181335 0.417175 0.915527 0.182068 0.446014 0.915527 0.182739 0.477417 0.915527 0.183411 0.511658 0.915527 0.184113 0.548920 0.915527 0.184753 0.589203 0.915527 0.185394 0.631744 0.915527 0.186035 0.676544 0.915527 0.186676 0.723053 0.915527 0.187286 0.770966 0.915527 0.187897 0.820160 0.915527 0.188446 0.869904 0.915527 0.189026 0.915527 0.915527 0.189575 0.000000 0.000000 0.153900 0.000000 0.000000 0.154236 0.000000 0.000000 0.154633 0.000000 0.000000 0.154999 0.025665 0.000000 0.155457 0.058807 0.000000 0.155914 0.088013 0.000000 0.156372 0.115540 0.000000 0.156860 0.141083 0.000000 0.157318 0.165100 0.000000 0.157837 0.187408 0.000000 0.158386 0.208893 0.000000 0.158905 0.229614 0.000000 0.159485 0.249908 0.000000 0.160065 0.270386 0.000000 0.160614 0.291229 0.000000 0.161285 0.312744 0.000000 0.161865 0.335449 0.000000 0.162476 0.359711 0.000000 0.163147 0.386108 0.000000 0.163788 0.414673 0.000000 0.164673 0.446106 0.000000 0.165375 0.480621 0.000000 0.166077 0.518829 0.000000 0.166748 0.560730 0.000000 0.167480 0.605743 0.000000 0.168152 0.653748 0.000000 0.168915 0.704132 0.000000 0.169647 0.756531 0.000000 0.170349 0.810150 0.000000 0.171143 0.864929 0.000000 0.171906 0.915527 0.000000 0.172668 0.000000 0.000000 0.154602 0.000000 0.000000 0.154999 0.000000 0.000000 0.155457 0.000488 0.000000 0.155884 0.026825 0.000000 0.156342 0.059998 0.000000 0.156830 0.089325 0.000000 0.157318 0.116730 0.000000 0.157837 0.142212 0.000000 0.158386 0.165955 0.000000 0.158875 0.188354 0.000000 0.159485 0.209808 0.000000 0.160034 0.230499 0.000000 0.160583 0.250702 0.000000 0.161255 0.271179 0.000000 0.161835 0.291840 0.000000 0.162476 0.313568 0.000000 0.163116 0.336304 0.000244 0.163727 0.360535 0.001251 0.164642 0.386841 0.002350 0.165375 0.415558 0.003448 0.166046 0.447021 0.004639 0.166748 0.481476 0.005829 0.167450 0.519592 0.007050 0.168152 0.561401 0.008331 0.168884 0.606567 0.009644 0.169586 0.654419 0.010986 0.170349 0.704803 0.012329 0.171143 0.756927 0.013641 0.171875 0.810394 0.015045 0.172668 0.865112 0.016418 0.173431 0.915527 0.017761 0.174164 0.000000 0.011963 0.155426 0.000000 0.012726 0.155884 0.000000 0.013580 0.156342 0.001495 0.014313 0.156830 0.028015 0.015167 0.157288 0.061432 0.016083 0.157806 0.090637 0.016968 0.158325 0.118011 0.017822 0.158875 0.143341 0.018829 0.159485 0.167023 0.019867 0.160004 0.189362 0.020874 0.160583 0.210693 0.021851 0.161224 0.231201 0.022858 0.161835 0.251587 0.024017 0.162476 0.271881 0.025085 0.163086 0.292664 0.026276 0.163727 0.314209 0.027435 0.164642 0.336945 0.028656 0.165314 0.361389 0.029877 0.166016 0.387787 0.031097 0.166718 0.416504 0.032349 0.167419 0.447906 0.033630 0.168152 0.482422 0.034882 0.168854 0.520538 0.036194 0.169586 0.562317 0.037537 0.170319 0.607178 0.038788 0.171082 0.655182 0.040192 0.171844 0.705353 0.041565 0.172638 0.757263 0.042908 0.173401 0.810913 0.044312 0.174133 0.865356 0.045715 0.174988 0.915527 0.048157 0.175751 0.000000 0.040955 0.156311 0.000000 0.041779 0.156799 0.000000 0.042633 0.157288 0.002747 0.043396 0.157806 0.029449 0.044342 0.158295 0.062897 0.045288 0.158875 0.092010 0.046661 0.159424 0.119232 0.048340 0.160004 0.144409 0.050018 0.160583 0.168152 0.051910 0.161224 0.190369 0.053772 0.161804 0.211609 0.055573 0.162445 0.232117 0.057770 0.163086 0.252502 0.059326 0.163727 0.272705 0.060516 0.164612 0.293579 0.061829 0.165283 0.315094 0.062988 0.166016 0.337891 0.064331 0.166656 0.362305 0.065704 0.167419 0.388580 0.067017 0.168121 0.417206 0.068359 0.168854 0.448700 0.069794 0.169556 0.483337 0.071228 0.170288 0.521454 0.072601 0.171082 0.563232 0.074036 0.171844 0.608124 0.075500 0.172607 0.655823 0.076935 0.173370 0.705811 0.078400 0.174133 0.757935 0.079865 0.174957 0.811188 0.081360 0.175751 0.865509 0.082855 0.176514 0.915527 0.084381 0.177338 0.000000 0.077545 0.157257 0.000000 0.078583 0.157776 0.000000 0.079468 0.158295 0.004089 0.080444 0.158844 0.030823 0.081451 0.159393 0.064423 0.082458 0.159943 0.093445 0.083374 0.160553 0.120483 0.084534 0.161194 0.145660 0.085632 0.161774 0.169128 0.086578 0.162384 0.191467 0.087769 0.163025 0.212524 0.088989 0.163666 0.233093 0.090118 0.164581 0.253326 0.091156 0.165253 0.273682 0.092438 0.165985 0.294403 0.093689 0.166656 0.316071 0.094940 0.167389 0.338776 0.096191 0.168091 0.363068 0.097412 0.168823 0.389435 0.098602 0.169525 0.418213 0.099945 0.170258 0.449677 0.101288 0.171051 0.484161 0.102600 0.171814 0.522278 0.103973 0.172577 0.563995 0.105255 0.173370 0.609009 0.106537 0.174103 0.656586 0.107849 0.174866 0.706573 0.109253 0.175690 0.758301 0.110657 0.176453 0.811462 0.112061 0.177277 0.865662 0.113464 0.178101 0.915527 0.114838 0.178894 0.000000 0.108673 0.158264 0.000000 0.109467 0.158813 0.000000 0.110443 0.159393 0.005432 0.111389 0.159912 0.032379 0.112274 0.160553 0.066101 0.113312 0.161194 0.095032 0.114319 0.161774 0.121857 0.115204 0.162384 0.147003 0.116272 0.162994 0.170319 0.117249 0.163666 0.192505 0.118347 0.164581 0.213531 0.119446 0.165253 0.234100 0.120514 0.165955 0.254181 0.121613 0.166626 0.274536 0.122772 0.167358 0.295227 0.123962 0.168091 0.316895 0.125153 0.168823 0.339722 0.126129 0.169495 0.364014 0.127380 0.170258 0.390381 0.128601 0.171021 0.419189 0.129852 0.171783 0.450684 0.130890 0.172516 0.485138 0.132141 0.173279 0.523193 0.133392 0.174072 0.564911 0.134705 0.174835 0.609711 0.135895 0.175659 0.657257 0.137024 0.176453 0.707092 0.138306 0.177277 0.758667 0.139526 0.178070 0.811768 0.140869 0.178894 0.865814 0.141968 0.179718 0.915527 0.143250 0.180481 0.000000 0.137848 0.159363 0.000000 0.138580 0.159912 0.000000 0.139526 0.160553 0.006958 0.140350 0.161133 0.034027 0.141235 0.161743 0.067780 0.142120 0.162354 0.096527 0.143005 0.162994 0.123352 0.144043 0.163635 0.148315 0.144836 0.164551 0.171661 0.145905 0.165222 0.193634 0.147003 0.165955 0.214600 0.147797 0.166595 0.235107 0.148895 0.167297 0.255188 0.149994 0.168060 0.275391 0.150879 0.168793 0.296204 0.151978 0.169495 0.317719 0.152985 0.170227 0.340454 0.153992 0.171021 0.364990 0.155151 0.171783 0.391388 0.156250 0.172516 0.420166 0.157227 0.173279 0.451660 0.158356 0.174072 0.486176 0.159515 0.174805 0.524231 0.160461 0.175629 0.565857 0.161621 0.176453 0.610596 0.162781 0.177216 0.658020 0.163788 0.178040 0.707764 0.164886 0.178833 0.759308 0.166107 0.179718 0.812225 0.167267 0.180481 0.865936 0.168213 0.181305 0.915527 0.169434 0.182129 0.000000 0.164734 0.160492 0.000000 0.165619 0.161133 0.000000 0.166290 0.161743 0.008606 0.167175 0.162323 0.035736 0.167877 0.162964 0.069519 0.168854 0.163605 0.098175 0.169525 0.164520 0.124847 0.170502 0.165222 0.149628 0.171265 0.165924 0.172852 0.172241 0.166595 0.194794 0.173126 0.167297 0.215698 0.174011 0.167999 0.236053 0.174957 0.168732 0.256165 0.175781 0.169495 0.276367 0.176849 0.170197 0.297150 0.177643 0.170990 0.318695 0.178650 0.171692 0.341461 0.179657 0.172516 0.365967 0.180542 0.173248 0.392334 0.181610 0.174011 0.420959 0.182434 0.174805 0.452454 0.183502 0.175629 0.487183 0.184601 0.176392 0.525238 0.185455 0.177216 0.566833 0.186493 0.178040 0.611542 0.187592 0.178802 0.658905 0.188446 0.179657 0.708374 0.189545 0.180420 0.759705 0.190369 0.181305 0.812531 0.191467 0.182098 0.866089 0.192566 0.182892 0.915527 0.193420 0.183746 0.000000 0.189667 0.161713 0.000000 0.190247 0.162323 0.000000 0.191071 0.162903 0.010254 0.191681 0.163605 0.037415 0.192596 0.164520 0.071442 0.193237 0.165222 0.099823 0.194122 0.165863 0.126312 0.194855 0.166565 0.150970 0.195709 0.167267 0.174164 0.196411 0.167999 0.195984 0.197357 0.168701 0.216827 0.198059 0.169434 0.237091 0.199005 0.170166 0.257202 0.199707 0.170929 0.277344 0.200653 0.171692 0.298126 0.201416 0.172485 0.319672 0.202362 0.173218 0.342499 0.203278 0.174011 0.366852 0.204132 0.174805 0.393280 0.205078 0.175568 0.422028 0.205872 0.176392 0.453522 0.206879 0.177185 0.488220 0.207611 0.177948 0.526306 0.208588 0.178772 0.567719 0.209442 0.179596 0.612335 0.210358 0.180420 0.659607 0.211365 0.181244 0.709045 0.212189 0.182068 0.760376 0.213165 0.182861 0.812836 0.213959 0.183716 0.866302 0.214935 0.184509 0.915527 0.215912 0.185364 0.000000 0.212585 0.162903 0.000000 0.213379 0.163574 0.000000 0.213928 0.164459 0.012024 0.214752 0.165192 0.039124 0.215393 0.165863 0.073303 0.216156 0.166534 0.101624 0.216827 0.167236 0.128021 0.217682 0.167969 0.152496 0.218292 0.168671 0.175446 0.219055 0.169434 0.197174 0.219818 0.170166 0.217957 0.220551 0.170898 0.238220 0.221375 0.171661 0.258179 0.222107 0.172455 0.278381 0.222931 0.173187 0.298920 0.223602 0.173981 0.320679 0.224487 0.174774 0.343506 0.225189 0.175568 0.367828 0.226135 0.176361 0.394226 0.226898 0.177155 0.423035 0.227722 0.177948 0.454559 0.228668 0.178772 0.489136 0.229340 0.179565 0.527191 0.230072 0.180389 0.568665 0.231018 0.181183 0.613251 0.231873 0.182068 0.660400 0.232666 0.182861 0.709656 0.233582 0.183716 0.760803 0.234314 0.184479 0.813324 0.235229 0.185364 0.866608 0.235931 0.186127 0.915527 0.236908 0.187012 0.000000 0.234344 0.164429 0.000000 0.234833 0.165192 0.000000 0.235626 0.165833 0.013885 0.236206 0.166534 0.041016 0.237000 0.167236 0.075287 0.237549 0.167938 0.103424 0.238342 0.168671 0.129547 0.238953 0.169403 0.153961 0.239624 0.170135 0.176758 0.240326 0.170898 0.198395 0.240967 0.171631 0.219116 0.241760 0.172424 0.239197 0.242371 0.173187 0.259186 0.243256 0.173920 0.279419 0.243866 0.174744 0.299957 0.244690 0.175537 0.321503 0.245361 0.176331 0.344360 0.246002 0.177124 0.368866 0.246857 0.177917 0.395264 0.247498 0.178741 0.424133 0.248352 0.179565 0.455627 0.248993 0.180359 0.490143 0.249878 0.181152 0.528168 0.250549 0.182068 0.569672 0.251434 0.182831 0.614166 0.252075 0.183685 0.661133 0.252960 0.184479 0.710358 0.253601 0.185333 0.761230 0.254517 0.186127 0.813599 0.255188 0.186981 0.866760 0.256073 0.187805 0.915527 0.256744 0.188660 0.000000 0.254944 0.165802 0.000000 0.255493 0.166534 0.000000 0.256226 0.167175 0.015778 0.256775 0.167908 0.042938 0.257294 0.168640 0.077148 0.258026 0.169373 0.105164 0.258575 0.170105 0.131317 0.259369 0.170837 0.155365 0.259918 0.171631 0.178101 0.260620 0.172424 0.199585 0.261261 0.173157 0.220245 0.261841 0.173920 0.240326 0.262665 0.174713 0.260254 0.263184 0.175507 0.280273 0.264038 0.176300 0.301056 0.264648 0.177124 0.322510 0.265228 0.177887 0.345367 0.266083 0.178741 0.369904 0.266663 0.179535 0.396362 0.267456 0.180298 0.425201 0.268097 0.181152 0.456726 0.268890 0.181976 0.491211 0.269531 0.182800 0.529236 0.270264 0.183655 0.570740 0.270966 0.184448 0.615051 0.271606 0.185303 0.661896 0.272430 0.186096 0.710999 0.273041 0.186951 0.761871 0.273926 0.187775 0.813873 0.274536 0.188629 0.866913 0.275360 0.189392 0.915527 0.276001 0.190247 0.000000 0.274811 0.167175 0.000000 0.275543 0.167908 0.000000 0.276031 0.168610 0.017883 0.276642 0.169312 0.044861 0.277283 0.170105 0.079224 0.277771 0.170837 0.107117 0.278534 0.171600 0.132874 0.279022 0.172394 0.157013 0.279602 0.173126 0.179596 0.280365 0.173889 0.200897 0.280884 0.174683 0.221436 0.281494 0.175476 0.241425 0.282227 0.176300 0.261261 0.282776 0.177094 0.281372 0.283569 0.177856 0.302094 0.284119 0.178711 0.323608 0.284698 0.179474 0.346405 0.285492 0.180298 0.370972 0.286041 0.181122 0.397430 0.286865 0.181976 0.426208 0.287415 0.182739 0.457733 0.288239 0.183594 0.492310 0.288818 0.184418 0.530273 0.289490 0.185303 0.571655 0.290192 0.186066 0.615845 0.290802 0.186951 0.662750 0.291565 0.187744 0.711700 0.292206 0.188599 0.762299 0.292908 0.189362 0.814178 0.293549 0.190216 0.867096 0.294159 0.191010 0.915527 0.294983 0.191864 0.000000 0.294647 0.168610 0.000000 0.295135 0.169312 0.000000 0.295593 0.170074 0.019867 0.296234 0.170807 0.048065 0.296814 0.171570 0.081299 0.297333 0.172363 0.108887 0.298065 0.173126 0.134674 0.298553 0.173859 0.158508 0.299103 0.174683 0.181000 0.299835 0.175476 0.202148 0.300354 0.176208 0.222656 0.301117 0.177094 0.242584 0.301636 0.177856 0.262421 0.302155 0.178650 0.282440 0.302917 0.179474 0.303162 0.303467 0.180267 0.324646 0.304047 0.181091 0.347443 0.304810 0.181946 0.372040 0.305359 0.182739 0.398499 0.306122 0.183533 0.427307 0.306732 0.184387 0.458832 0.307220 0.185211 0.493408 0.308044 0.186035 0.531372 0.308594 0.186890 0.572571 0.309357 0.187683 0.616791 0.309967 0.188538 0.663666 0.310547 0.189362 0.712402 0.311310 0.190186 0.762939 0.311859 0.191010 0.814575 0.312653 0.191803 0.867188 0.313202 0.192657 0.915527 0.313782 0.193451 0.000000 0.314362 0.170044 0.000000 0.314819 0.170807 0.000000 0.315308 0.171539 0.021881 0.316010 0.172333 0.051483 0.316498 0.173065 0.083435 0.317047 0.173798 0.110809 0.317688 0.174622 0.136261 0.318207 0.175415 0.159973 0.318695 0.176208 0.182404 0.319397 0.177002 0.203461 0.319946 0.177765 0.223846 0.320679 0.178619 0.243713 0.321198 0.179443 0.263489 0.321716 0.180237 0.283478 0.322479 0.181091 0.304230 0.323029 0.181915 0.325714 0.323700 0.182709 0.348541 0.324310 0.183533 0.373108 0.324860 0.184387 0.399506 0.325653 0.185211 0.428406 0.326172 0.186005 0.459778 0.326721 0.186829 0.494507 0.327515 0.187683 0.532440 0.328064 0.188507 0.573578 0.328796 0.189362 0.617798 0.329346 0.190155 0.664307 0.329926 0.191010 0.713013 0.330688 0.191772 0.763336 0.331268 0.192627 0.815002 0.331940 0.193420 0.867340 0.332581 0.194275 0.915527 0.333099 0.195038 0.000000 0.334412 0.171539 0.000000 0.334991 0.172333 0.000000 0.335602 0.173065 0.024139 0.336090 0.173767 0.055267 0.336548 0.174591 0.085602 0.337280 0.175415 0.112823 0.337799 0.176178 0.138092 0.338379 0.176971 0.161682 0.338989 0.177765 0.183716 0.339539 0.178619 0.204926 0.340240 0.179443 0.225067 0.340790 0.180206 0.244904 0.341278 0.181061 0.264648 0.342041 0.181885 0.284637 0.342529 0.182709 0.305328 0.343079 0.183502 0.326813 0.343842 0.184326 0.349640 0.344360 0.185181 0.374115 0.345093 0.186005 0.400604 0.345642 0.186829 0.429382 0.346191 0.187683 0.460876 0.346954 0.188446 0.495514 0.347504 0.189331 0.533539 0.348145 0.190155 0.574646 0.348816 0.190979 0.618591 0.349335 0.191772 0.665161 0.350128 0.192596 0.713715 0.350647 0.193420 0.763885 0.351196 0.194244 0.815277 0.351959 0.195007 0.867493 0.352478 0.195862 0.915527 0.353088 0.196655 0.000000 0.355469 0.173035 0.000000 0.355957 0.173767 0.000366 0.356659 0.174561 0.026276 0.357117 0.175354 0.058960 0.357605 0.176147 0.087708 0.358337 0.176971 0.114807 0.358856 0.177765 0.139771 0.359344 0.178528 0.163208 0.360077 0.179382 0.185242 0.360596 0.180206 0.206207 0.361145 0.181030 0.226318 0.361816 0.181885 0.246063 0.362366 0.182678 0.265778 0.363068 0.183472 0.285675 0.363647 0.184326 0.306183 0.364166 0.185150 0.327911 0.364929 0.186005 0.350739 0.365448 0.186798 0.375122 0.365967 0.187653 0.401581 0.366730 0.188416 0.430450 0.367310 0.189301 0.461975 0.368011 0.190094 0.496643 0.368561 0.190948 0.534393 0.369110 0.191742 0.575714 0.369873 0.192566 0.619476 0.370361 0.193390 0.665833 0.370941 0.194214 0.714294 0.371704 0.195007 0.764404 0.372253 0.195801 0.815643 0.372986 0.196625 0.867737 0.373535 0.197388 0.915527 0.374054 0.198212 0.000000 0.377563 0.174561 0.000000 0.378235 0.175354 0.002289 0.378723 0.176117 0.028564 0.379395 0.176941 0.061310 0.379913 0.177734 0.089935 0.380432 0.178528 0.116730 0.380951 0.179382 0.141632 0.381653 0.180145 0.164917 0.382202 0.181030 0.186768 0.382935 0.181854 0.207550 0.383423 0.182648 0.227539 0.383972 0.183441 0.247253 0.384705 0.184296 0.266907 0.385254 0.185089 0.286865 0.385925 0.185974 0.307312 0.386505 0.186768 0.329010 0.387054 0.187622 0.351807 0.387756 0.188416 0.376221 0.388336 0.189240 0.402710 0.388855 0.190094 0.431580 0.389648 0.190887 0.463104 0.390167 0.191711 0.497650 0.390839 0.192535 0.535461 0.391479 0.193359 0.576660 0.391998 0.194183 0.620483 0.392731 0.195007 0.666687 0.393311 0.195770 0.715088 0.393829 0.196594 0.764862 0.394623 0.197388 0.816071 0.395142 0.198151 0.867981 0.395782 0.198944 0.915527 0.396423 0.199768 0.000000 0.401398 0.176117 0.000000 0.401886 0.176910 0.004456 0.402588 0.177704 0.030762 0.403076 0.178497 0.063782 0.403595 0.179352 0.092133 0.404266 0.180145 0.118622 0.404846 0.181000 0.143524 0.405365 0.181824 0.166473 0.406128 0.182617 0.188171 0.406647 0.183441 0.208862 0.407196 0.184265 0.228760 0.407898 0.185059 0.248444 0.408417 0.185883 0.268097 0.409180 0.186737 0.287994 0.409729 0.187592 0.308411 0.410217 0.188354 0.329956 0.410980 0.189209 0.352875 0.411560 0.190063 0.377289 0.412048 0.190857 0.403809 0.412872 0.191681 0.432709 0.413391 0.192535 0.464233 0.414124 0.193329 0.498688 0.414703 0.194183 0.536560 0.415222 0.194977 0.577484 0.415955 0.195740 0.621368 0.416534 0.196594 0.667572 0.417053 0.197327 0.715637 0.417816 0.198151 0.765503 0.418335 0.198944 0.816345 0.419098 0.199707 0.868134 0.419586 0.200500 0.915527 0.420197 0.201263 0.000000 0.426849 0.177704 0.000000 0.427582 0.178467 0.006683 0.428070 0.179321 0.033112 0.428558 0.180115 0.066132 0.429321 0.180939 0.094330 0.429840 0.181793 0.120667 0.430450 0.182617 0.145142 0.431122 0.183411 0.168030 0.431641 0.184235 0.189575 0.432404 0.185059 0.210175 0.432892 0.185883 0.230164 0.433472 0.186737 0.249603 0.434204 0.187561 0.269226 0.434753 0.188354 0.289062 0.435333 0.189209 0.309509 0.436035 0.190033 0.331024 0.436584 0.190857 0.354034 0.437347 0.191681 0.378418 0.437897 0.192505 0.404938 0.438416 0.193329 0.433807 0.439178 0.194122 0.465332 0.439758 0.194946 0.499817 0.440338 0.195740 0.537659 0.441040 0.196533 0.578552 0.441559 0.197327 0.622162 0.442352 0.198120 0.668243 0.442871 0.198914 0.716370 0.443390 0.199677 0.765900 0.444183 0.200470 0.816620 0.444672 0.201233 0.868286 0.445221 0.201996 0.915527 0.445984 0.202759 0.000000 0.454651 0.179291 0.000000 0.455170 0.180115 0.008911 0.455963 0.180908 0.035309 0.456451 0.181732 0.068512 0.457092 0.182556 0.096527 0.457703 0.183411 0.122711 0.458252 0.184204 0.147003 0.458984 0.185028 0.169769 0.459534 0.185852 0.191101 0.460052 0.186676 0.211609 0.460815 0.187531 0.231354 0.461334 0.188354 0.250793 0.461945 0.189148 0.270386 0.462646 0.190002 0.290222 0.463226 0.190826 0.310638 0.463959 0.191650 0.332214 0.464508 0.192474 0.355103 0.465057 0.193329 0.379547 0.465820 0.194092 0.406067 0.466339 0.194885 0.434906 0.466888 0.195709 0.466431 0.467651 0.196533 0.500885 0.468201 0.197296 0.538727 0.468903 0.198090 0.579529 0.469482 0.198914 0.623108 0.470001 0.199677 0.669067 0.470764 0.200439 0.716919 0.471283 0.201202 0.766327 0.471924 0.201965 0.817139 0.472534 0.202698 0.868439 0.473083 0.203491 0.915527 0.473633 0.204254 0.000000 0.484955 0.180878 0.000000 0.485687 0.181702 0.011169 0.486176 0.182495 0.037750 0.486725 0.183380 0.071045 0.487457 0.184174 0.098724 0.488007 0.185028 0.124725 0.488708 0.185852 0.148682 0.489288 0.186676 0.171295 0.489838 0.187500 0.192627 0.490448 0.188324 0.212921 0.491089 0.189148 0.232758 0.491638 0.189972 0.252014 0.492401 0.190765 0.271545 0.492950 0.191589 0.291351 0.493561 0.192444 0.311768 0.494263 0.193298 0.333252 0.494781 0.194061 0.356049 0.495575 0.194885 0.380646 0.496063 0.195679 0.407166 0.496643 0.196503 0.436035 0.497345 0.197296 0.467560 0.497925 0.198059 0.501984 0.498413 0.198853 0.539734 0.499207 0.199615 0.580597 0.499695 0.200409 0.624054 0.500427 0.201202 0.669739 0.500977 0.201935 0.717621 0.501495 0.202667 0.766907 0.502167 0.203461 0.817413 0.502777 0.204224 0.868561 0.503265 0.204926 0.915527 0.503967 0.205627 0.000000 0.518158 0.182495 0.000000 0.518799 0.183350 0.013580 0.519409 0.184143 0.039978 0.519867 0.184998 0.073456 0.520569 0.185791 0.100922 0.521179 0.186646 0.126526 0.521698 0.187439 0.150574 0.522461 0.188293 0.172943 0.523010 0.189117 0.194031 0.523499 0.189941 0.214355 0.524292 0.190735 0.234039 0.524811 0.191589 0.253265 0.525330 0.192413 0.272675 0.526093 0.193237 0.292511 0.526611 0.194031 0.312866 0.527374 0.194824 0.334351 0.527863 0.195648 0.357117 0.528412 0.196503 0.381744 0.529175 0.197266 0.408295 0.529694 0.198029 0.437012 0.530243 0.198822 0.468536 0.530945 0.199615 0.503052 0.531464 0.200409 0.540741 0.532013 0.201172 0.581360 0.532715 0.201935 0.624969 0.533264 0.202667 0.670532 0.533875 0.203430 0.718140 0.534454 0.204193 0.767303 0.535034 0.204926 0.817627 0.535706 0.205597 0.868683 0.536224 0.206360 0.915527 0.536682 0.207062 0.000000 0.554474 0.184143 0.000000 0.554932 0.184967 0.016022 0.555481 0.185791 0.042389 0.556213 0.186615 0.075867 0.556732 0.187408 0.103149 0.557373 0.188263 0.128540 0.557953 0.189056 0.152252 0.558502 0.189941 0.174530 0.559204 0.190704 0.195465 0.559753 0.191559 0.215668 0.560242 0.192383 0.235260 0.560883 0.193207 0.254395 0.561523 0.194000 0.273834 0.562042 0.194824 0.293579 0.562744 0.195618 0.313965 0.563293 0.196411 0.335449 0.563782 0.197235 0.358246 0.564514 0.197998 0.382843 0.565033 0.198792 0.409363 0.565521 0.199585 0.438110 0.566254 0.200378 0.469513 0.566772 0.201141 0.504120 0.567230 0.201935 0.541656 0.567993 0.202606 0.582336 0.568451 0.203400 0.625671 0.568909 0.204163 0.671356 0.569672 0.204895 0.718872 0.570099 0.205597 0.767883 0.570587 0.206299 0.817902 0.571320 0.207031 0.868866 0.571777 0.207733 0.915527 0.572174 0.208405 0.000000 0.593628 0.185760 0.000000 0.594116 0.186584 0.018311 0.594818 0.187408 0.044678 0.595276 0.188232 0.078217 0.595795 0.189056 0.105347 0.596497 0.189911 0.130585 0.596954 0.190674 0.154053 0.597412 0.191528 0.176056 0.598175 0.192383 0.197052 0.598633 0.193176 0.216980 0.599152 0.194000 0.236481 0.599823 0.194794 0.255615 0.600342 0.195587 0.274963 0.600830 0.196411 0.294739 0.601471 0.197174 0.315063 0.601990 0.197998 0.336548 0.602448 0.198792 0.359314 0.603149 0.199554 0.383850 0.603577 0.200348 0.410309 0.604126 0.201111 0.439148 0.604767 0.201874 0.470612 0.605225 0.202606 0.505066 0.605713 0.203400 0.542694 0.606323 0.204132 0.583313 0.606812 0.204895 0.626617 0.607300 0.205566 0.671967 0.607727 0.206299 0.719360 0.608368 0.207031 0.768250 0.608795 0.207703 0.818207 0.609222 0.208374 0.869110 0.609894 0.209076 0.915527 0.610291 0.209778 0.000000 0.635468 0.187347 0.000000 0.635895 0.188232 0.020752 0.636322 0.189026 0.048279 0.636871 0.189880 0.080719 0.637421 0.190674 0.107513 0.637848 0.191498 0.132568 0.638306 0.192322 0.155914 0.638947 0.193146 0.177765 0.639404 0.193970 0.198456 0.639832 0.194763 0.218292 0.640503 0.195587 0.237701 0.640930 0.196381 0.256836 0.641357 0.197174 0.276093 0.641876 0.197968 0.295746 0.642487 0.198761 0.316193 0.642883 0.199524 0.337616 0.643311 0.200317 0.360413 0.643982 0.201080 0.384857 0.644409 0.201874 0.411377 0.644836 0.202606 0.440155 0.645477 0.203369 0.471649 0.645874 0.204132 0.506073 0.646332 0.204865 0.543701 0.646698 0.205566 0.584290 0.647339 0.206268 0.627350 0.647736 0.206970 0.672791 0.648102 0.207703 0.720062 0.648499 0.208374 0.768585 0.649139 0.209045 0.818604 0.649475 0.209717 0.869293 0.649872 0.210419 0.915527 0.650299 0.211060 0.000000 0.679047 0.188995 0.000000 0.679657 0.189850 0.023254 0.680115 0.190674 0.052216 0.680481 0.191467 0.083130 0.681000 0.192322 0.109680 0.681488 0.193146 0.134460 0.681885 0.193939 0.157562 0.682220 0.194733 0.179230 0.682861 0.195557 0.199829 0.683228 0.196350 0.219727 0.683624 0.197144 0.238922 0.683960 0.197937 0.257904 0.684540 0.198730 0.277252 0.684937 0.199524 0.296875 0.685333 0.200287 0.317291 0.685730 0.201080 0.338715 0.686340 0.201843 0.361450 0.686646 0.202576 0.385864 0.687042 0.203339 0.412384 0.687378 0.204102 0.441254 0.687988 0.204834 0.472748 0.688324 0.205566 0.507111 0.688690 0.206268 0.544678 0.689026 0.206940 0.585236 0.689331 0.207672 0.628143 0.689911 0.208344 0.673309 0.690247 0.209045 0.720551 0.690582 0.209717 0.769226 0.690887 0.210388 0.818817 0.691498 0.211029 0.869415 0.691803 0.211639 0.915527 0.692108 0.212250 0.000000 0.724670 0.190643 0.000488 0.724976 0.191437 0.025726 0.725403 0.192291 0.056763 0.725891 0.193054 0.085510 0.726196 0.193909 0.111847 0.726501 0.194733 0.136353 0.726868 0.195526 0.159332 0.727356 0.196320 0.180878 0.727661 0.197113 0.201385 0.727997 0.197906 0.221008 0.728333 0.198669 0.240143 0.728821 0.199493 0.259155 0.729187 0.200256 0.278381 0.729462 0.201050 0.297882 0.729767 0.201813 0.318237 0.730072 0.202545 0.339783 0.730438 0.203278 0.362549 0.730896 0.204071 0.386932 0.731171 0.204834 0.413452 0.731506 0.205536 0.442322 0.731781 0.206238 0.473816 0.732208 0.206940 0.508118 0.732574 0.207642 0.545593 0.732819 0.208313 0.585968 0.733154 0.209015 0.628998 0.733398 0.209686 0.674072 0.733734 0.210358 0.720978 0.734161 0.210968 0.769562 0.734436 0.211609 0.819092 0.734711 0.212219 0.869537 0.734955 0.212830 0.915527 0.735168 0.213501 0.000000 0.771515 0.192261 0.002686 0.771851 0.193054 0.028046 0.772125 0.193848 0.059967 0.772369 0.194672 0.087830 0.772614 0.195496 0.113922 0.772827 0.196289 0.138306 0.773071 0.197083 0.160980 0.773560 0.197876 0.182404 0.773773 0.198639 0.202759 0.774048 0.199432 0.222351 0.774261 0.200256 0.241333 0.774506 0.201019 0.260315 0.774811 0.201782 0.279510 0.775238 0.202545 0.298889 0.775452 0.203247 0.319275 0.775665 0.204041 0.340576 0.775879 0.204803 0.363464 0.776123 0.205505 0.388000 0.776337 0.206207 0.414520 0.776764 0.206909 0.443359 0.777008 0.207611 0.474823 0.777222 0.208313 0.509125 0.777496 0.208984 0.546478 0.777649 0.209656 0.586914 0.777863 0.210358 0.629639 0.778076 0.210938 0.674774 0.778259 0.211578 0.721649 0.778625 0.212219 0.769867 0.778900 0.212830 0.819336 0.779114 0.213470 0.869659 0.779266 0.214081 0.915527 0.779449 0.214630 0.000000 0.819092 0.193817 0.004913 0.819244 0.194672 0.030518 0.819427 0.195465 0.062592 0.819580 0.196259 0.090179 0.819946 0.197083 0.116089 0.820190 0.197876 0.140137 0.820312 0.198608 0.162750 0.820496 0.199402 0.183838 0.820648 0.200195 0.204132 0.820831 0.200958 0.223572 0.820923 0.201782 0.242523 0.821136 0.202515 0.261383 0.821381 0.203247 0.280487 0.821716 0.203949 0.299957 0.821808 0.204742 0.320221 0.821960 0.205475 0.341644 0.822144 0.206207 0.364471 0.822296 0.206909 0.389038 0.822449 0.207611 0.415558 0.822540 0.208252 0.444183 0.822754 0.208984 0.475616 0.822906 0.209625 0.510040 0.823151 0.210327 0.547424 0.823395 0.210938 0.587646 0.823517 0.211578 0.630463 0.823700 0.212189 0.675415 0.823792 0.212830 0.722046 0.823944 0.213470 0.770386 0.824036 0.214050 0.819763 0.824158 0.214630 0.869751 0.824310 0.215179 0.915527 0.824402 0.215729 0.000000 0.867249 0.195435 0.007324 0.867371 0.196259 0.032898 0.867401 0.197052 0.065125 0.867493 0.197815 0.092468 0.867584 0.198608 0.118164 0.867676 0.199402 0.141937 0.867737 0.200165 0.164337 0.867798 0.200958 0.185486 0.867981 0.201721 0.205414 0.868164 0.202484 0.224854 0.868286 0.203247 0.243683 0.868378 0.203949 0.262482 0.868469 0.204681 0.281555 0.868561 0.205475 0.301056 0.868622 0.206177 0.321259 0.868713 0.206879 0.342712 0.868774 0.207581 0.365448 0.868835 0.208252 0.390076 0.868958 0.208954 0.416565 0.868988 0.209564 0.445129 0.869110 0.210266 0.476562 0.869110 0.210907 0.510864 0.869202 0.211517 0.548370 0.869263 0.212189 0.588409 0.869354 0.212830 0.631226 0.869385 0.213409 0.676117 0.869446 0.214020 0.722717 0.869568 0.214600 0.770752 0.869720 0.215179 0.819977 0.869873 0.215729 0.869812 0.869934 0.216248 0.915527 0.869995 0.216797 0.000000 0.915527 0.197021 0.009613 0.915527 0.197815 0.035248 0.915527 0.198608 0.067474 0.915527 0.199371 0.094666 0.915527 0.200134 0.120148 0.915527 0.200928 0.143829 0.915527 0.201691 0.165894 0.915527 0.202454 0.186890 0.915527 0.203217 0.206757 0.915527 0.203949 0.226074 0.915527 0.204651 0.244873 0.915527 0.205383 0.263611 0.915527 0.206177 0.282623 0.915527 0.206879 0.302063 0.915527 0.207550 0.322327 0.915527 0.208221 0.343689 0.915527 0.208923 0.366455 0.915527 0.209564 0.390808 0.915527 0.210266 0.417328 0.915527 0.210876 0.446136 0.915527 0.211517 0.477539 0.915527 0.212189 0.511841 0.915527 0.212799 0.549042 0.915527 0.213379 0.589294 0.915527 0.214020 0.631836 0.915527 0.214569 0.676605 0.915527 0.215118 0.723083 0.915527 0.215698 0.770996 0.915527 0.216248 0.820160 0.915527 0.216766 0.869904 0.915527 0.217255 0.915527 0.915527 0.217773 0.000000 0.000000 0.186127 0.000000 0.000000 0.186523 0.000000 0.000000 0.186829 0.000000 0.000000 0.187225 0.025879 0.000000 0.187653 0.058960 0.000000 0.188019 0.088348 0.000000 0.188446 0.115875 0.000000 0.188934 0.141388 0.000000 0.189362 0.165222 0.000000 0.189880 0.187653 0.000000 0.190338 0.209015 0.000000 0.190826 0.229706 0.000000 0.191376 0.250153 0.000000 0.191895 0.270447 0.000000 0.192444 0.291321 0.000000 0.192993 0.312836 0.000000 0.193542 0.335571 0.000000 0.194122 0.359924 0.000000 0.194733 0.386322 0.000000 0.195312 0.414795 0.000000 0.195984 0.446228 0.000000 0.196594 0.480865 0.000000 0.197235 0.519043 0.000000 0.197845 0.560852 0.000000 0.198486 0.605804 0.000000 0.199188 0.653931 0.000000 0.199860 0.704224 0.000000 0.200500 0.756622 0.000000 0.201202 0.810211 0.000000 0.201904 0.864929 0.000000 0.202576 0.915527 0.000000 0.203247 0.000000 0.000000 0.186829 0.000000 0.000000 0.187225 0.000000 0.000000 0.187622 0.000641 0.000000 0.188019 0.027008 0.000000 0.188416 0.060211 0.000000 0.188904 0.089630 0.000000 0.189362 0.117004 0.000000 0.189850 0.142487 0.000000 0.190338 0.166260 0.000000 0.190826 0.188507 0.000000 0.191345 0.209930 0.000000 0.191864 0.230652 0.000000 0.192444 0.250854 0.000000 0.192993 0.271301 0.000000 0.193542 0.291962 0.000000 0.194122 0.313721 0.000000 0.194702 0.336395 0.000702 0.195312 0.360687 0.001709 0.195984 0.386993 0.002838 0.196564 0.415741 0.003998 0.197174 0.447144 0.005127 0.197815 0.481628 0.006348 0.198486 0.519745 0.007599 0.199158 0.561523 0.008820 0.199829 0.606720 0.010132 0.200470 0.654449 0.011444 0.201172 0.704956 0.012756 0.201874 0.756989 0.014069 0.202576 0.810455 0.015533 0.203247 0.865173 0.016968 0.203949 0.915527 0.018402 0.204681 0.000000 0.012329 0.187622 0.000000 0.012970 0.188019 0.000000 0.013794 0.188385 0.001770 0.014679 0.188904 0.028351 0.015472 0.189362 0.061707 0.016327 0.189819 0.090851 0.017303 0.190338 0.118164 0.018311 0.190765 0.143646 0.019165 0.191315 0.167267 0.020172 0.191864 0.189484 0.021210 0.192413 0.210876 0.022278 0.192963 0.231476 0.023376 0.193512 0.251740 0.024506 0.194092 0.272156 0.025513 0.194702 0.292816 0.026642 0.195312 0.314362 0.027832 0.195923 0.337189 0.029022 0.196564 0.361542 0.030243 0.197144 0.387909 0.031494 0.197815 0.416626 0.032745 0.198456 0.448090 0.033997 0.199127 0.482544 0.035278 0.199799 0.520691 0.036621 0.200470 0.562439 0.037933 0.201141 0.607483 0.039276 0.201843 0.655273 0.040619 0.202545 0.705414 0.041962 0.203247 0.757355 0.043365 0.203949 0.810944 0.044678 0.204620 0.865448 0.046753 0.205383 0.915527 0.049194 0.206146 0.000000 0.041321 0.188385 0.000000 0.042023 0.188873 0.000000 0.042938 0.189331 0.002960 0.043823 0.189819 0.029663 0.044586 0.190277 0.063141 0.045593 0.190765 0.092224 0.047424 0.191315 0.119415 0.048737 0.191803 0.144775 0.050598 0.192383 0.168427 0.052490 0.192963 0.190521 0.054535 0.193481 0.211884 0.056580 0.194061 0.232269 0.058350 0.194672 0.252625 0.059692 0.195282 0.272858 0.060944 0.195892 0.293701 0.062195 0.196503 0.315247 0.063568 0.197144 0.337982 0.064972 0.197784 0.362488 0.066254 0.198425 0.388824 0.067627 0.199097 0.417389 0.068848 0.199799 0.448822 0.070251 0.200439 0.483551 0.071655 0.201141 0.521637 0.073029 0.201843 0.563385 0.074463 0.202515 0.608246 0.075989 0.203217 0.656036 0.077393 0.203918 0.705933 0.078857 0.204620 0.757965 0.080414 0.205353 0.811249 0.081848 0.206085 0.865570 0.083313 0.206848 0.915527 0.084839 0.207550 0.000000 0.078064 0.189331 0.000000 0.078857 0.189819 0.000000 0.079865 0.190277 0.004333 0.080719 0.190735 0.031189 0.081757 0.191284 0.064880 0.082794 0.191803 0.093842 0.083740 0.192383 0.120728 0.084839 0.192932 0.145966 0.085999 0.193481 0.169434 0.087128 0.194061 0.191620 0.088104 0.194611 0.212677 0.089355 0.195251 0.233215 0.090546 0.195892 0.253571 0.091766 0.196503 0.273804 0.092957 0.197113 0.294617 0.094055 0.197754 0.316193 0.095337 0.198425 0.338898 0.096649 0.199097 0.363220 0.097900 0.199768 0.389618 0.099182 0.200409 0.418335 0.100372 0.201111 0.449768 0.101715 0.201813 0.484436 0.103058 0.202484 0.522491 0.104401 0.203217 0.564270 0.105774 0.203888 0.609161 0.107147 0.204590 0.656738 0.108521 0.205322 0.706635 0.109833 0.206055 0.758362 0.111206 0.206787 0.811493 0.112488 0.207550 0.865692 0.113892 0.208252 0.915527 0.115326 0.209015 0.000000 0.108978 0.190247 0.000000 0.109863 0.190704 0.000000 0.110748 0.191284 0.005768 0.111755 0.191772 0.032593 0.112518 0.192322 0.066315 0.113586 0.192902 0.095245 0.114685 0.193451 0.122070 0.115540 0.194031 0.147217 0.116638 0.194611 0.170654 0.117798 0.195251 0.192688 0.118683 0.195862 0.213684 0.119812 0.196503 0.234253 0.120972 0.197083 0.254303 0.122040 0.197754 0.274750 0.123108 0.198395 0.295349 0.124329 0.199066 0.317108 0.125488 0.199707 0.339874 0.126648 0.200409 0.364166 0.127747 0.201080 0.390533 0.128998 0.201782 0.419312 0.130219 0.202484 0.450806 0.131439 0.203186 0.485321 0.132507 0.203857 0.523376 0.133789 0.204590 0.565063 0.135071 0.205292 0.609802 0.136322 0.206055 0.657410 0.137543 0.206757 0.707306 0.138672 0.207458 0.758881 0.139954 0.208252 0.811829 0.141235 0.208984 0.865845 0.142578 0.209717 0.915527 0.143860 0.210510 0.000000 0.138123 0.191254 0.000000 0.138977 0.191772 0.000000 0.139771 0.192322 0.007324 0.140747 0.192902 0.034271 0.141541 0.193451 0.068115 0.142548 0.194031 0.096863 0.143311 0.194580 0.123657 0.144348 0.195221 0.148499 0.145386 0.195801 0.171906 0.146210 0.196472 0.193787 0.147278 0.197052 0.214783 0.148254 0.197723 0.235291 0.149231 0.198364 0.255341 0.150299 0.199036 0.275696 0.151306 0.199677 0.296326 0.152283 0.200378 0.317841 0.153442 0.201050 0.340576 0.154419 0.201782 0.365112 0.155457 0.202423 0.391510 0.156586 0.203156 0.420288 0.157776 0.203857 0.451843 0.158691 0.204559 0.486328 0.159851 0.205292 0.524384 0.161011 0.205963 0.566010 0.161957 0.206726 0.610779 0.163147 0.207458 0.658112 0.164307 0.208191 0.707947 0.165344 0.208984 0.759399 0.166473 0.209717 0.812286 0.167633 0.210449 0.865997 0.168854 0.211182 0.915527 0.169830 0.211945 0.000000 0.165009 0.192322 0.000000 0.165863 0.192841 0.000000 0.166534 0.193420 0.008911 0.167480 0.194000 0.035980 0.168152 0.194580 0.069855 0.169128 0.195190 0.098511 0.169830 0.195801 0.125092 0.170776 0.196411 0.149841 0.171692 0.197052 0.173126 0.172516 0.197662 0.194977 0.173492 0.198334 0.215851 0.174286 0.199036 0.236298 0.175293 0.199646 0.256348 0.176086 0.200348 0.276489 0.177124 0.201050 0.297272 0.178131 0.201691 0.318848 0.178955 0.202423 0.341553 0.180054 0.203156 0.366150 0.180817 0.203827 0.392517 0.181915 0.204559 0.421173 0.182983 0.205261 0.452698 0.183807 0.205963 0.487366 0.184906 0.206726 0.525421 0.185852 0.207428 0.567047 0.186798 0.208191 0.611664 0.187927 0.208954 0.659027 0.188843 0.209686 0.708649 0.189850 0.210449 0.759796 0.190948 0.211182 0.812531 0.191772 0.211914 0.866119 0.192902 0.212677 0.915527 0.193970 0.213470 0.000000 0.189850 0.193390 0.000000 0.190521 0.193970 0.000000 0.191345 0.194550 0.010590 0.191986 0.195190 0.037750 0.192841 0.195770 0.071716 0.193604 0.196381 0.100281 0.194366 0.197052 0.126587 0.195160 0.197632 0.151276 0.195984 0.198334 0.174377 0.196686 0.199005 0.196167 0.197632 0.199646 0.216980 0.198456 0.200348 0.237366 0.199249 0.201019 0.257355 0.200226 0.201691 0.277496 0.200958 0.202393 0.298279 0.201904 0.203094 0.319824 0.202667 0.203796 0.342590 0.203613 0.204529 0.367126 0.204346 0.205231 0.393555 0.205322 0.205933 0.422150 0.206238 0.206665 0.453644 0.207153 0.207397 0.488403 0.208038 0.208160 0.526428 0.208893 0.208923 0.567993 0.209869 0.209656 0.612640 0.210663 0.210419 0.659790 0.211670 0.211151 0.709198 0.212463 0.211914 0.760437 0.213501 0.212646 0.812897 0.214417 0.213409 0.866425 0.215240 0.214172 0.915527 0.216217 0.214874 0.000000 0.213013 0.194519 0.000000 0.213562 0.195160 0.000000 0.214233 0.195740 0.012482 0.214966 0.196381 0.039551 0.215607 0.197021 0.073608 0.216431 0.197632 0.101868 0.217041 0.198303 0.128265 0.217896 0.198944 0.152802 0.218506 0.199615 0.175659 0.219391 0.200287 0.197327 0.220062 0.200958 0.218140 0.220917 0.201660 0.238434 0.221558 0.202362 0.258453 0.222504 0.203094 0.278534 0.223175 0.203766 0.299072 0.223999 0.204498 0.320801 0.224762 0.205200 0.343628 0.225677 0.205933 0.367981 0.226349 0.206665 0.394379 0.227295 0.207397 0.423187 0.227966 0.208130 0.454712 0.228882 0.208893 0.489471 0.229645 0.209625 0.527405 0.230530 0.210388 0.568787 0.231262 0.211121 0.613373 0.232208 0.211884 0.660553 0.232880 0.212616 0.709808 0.233856 0.213379 0.760895 0.234558 0.214172 0.813385 0.235504 0.214874 0.866669 0.236237 0.215668 0.915527 0.237152 0.216400 0.000000 0.234528 0.195740 0.000000 0.235291 0.196350 0.000000 0.235809 0.196960 0.014313 0.236420 0.197632 0.041412 0.237183 0.198303 0.075684 0.237732 0.198944 0.103729 0.238556 0.199585 0.129791 0.239136 0.200287 0.154175 0.239990 0.200958 0.176971 0.240570 0.201630 0.198547 0.241211 0.202362 0.219269 0.241974 0.203064 0.239410 0.242645 0.203735 0.259491 0.243469 0.204498 0.279602 0.244110 0.205200 0.300140 0.244934 0.205902 0.321716 0.245605 0.206635 0.344635 0.246399 0.207336 0.368988 0.247070 0.208099 0.395447 0.247894 0.208862 0.424255 0.248566 0.209564 0.455780 0.249390 0.210358 0.490387 0.250122 0.211121 0.528412 0.250977 0.211853 0.569855 0.251648 0.212585 0.614288 0.252319 0.213348 0.661377 0.253204 0.214142 0.710480 0.253876 0.214844 0.761353 0.254761 0.215607 0.813629 0.255402 0.216400 0.866791 0.256317 0.217133 0.915527 0.256927 0.217865 0.000000 0.255157 0.196960 0.000000 0.255859 0.197601 0.000000 0.256439 0.198273 0.016205 0.256927 0.198914 0.043335 0.257690 0.199585 0.077667 0.258240 0.200256 0.105469 0.258820 0.200928 0.131531 0.259552 0.201630 0.155609 0.260132 0.202332 0.178375 0.260895 0.203033 0.199799 0.261444 0.203735 0.220459 0.262085 0.204468 0.240509 0.262848 0.205170 0.260559 0.263458 0.205902 0.280609 0.264252 0.206604 0.301178 0.264832 0.207336 0.322723 0.265686 0.208099 0.345642 0.266235 0.208832 0.370056 0.267029 0.209534 0.396484 0.267700 0.210358 0.425354 0.268311 0.211090 0.456909 0.269135 0.211853 0.491364 0.269745 0.212585 0.529358 0.270599 0.213318 0.570862 0.271210 0.214111 0.615295 0.272064 0.214844 0.662018 0.272675 0.215576 0.711243 0.273285 0.216370 0.761932 0.274109 0.217102 0.813934 0.274750 0.217834 0.866913 0.275604 0.218597 0.915527 0.276215 0.219391 0.000000 0.275055 0.198273 0.000000 0.275696 0.198914 0.000000 0.276215 0.199554 0.018127 0.276947 0.200195 0.045227 0.277466 0.200928 0.079742 0.277954 0.201599 0.107391 0.278717 0.202301 0.133087 0.279266 0.203033 0.157257 0.279785 0.203705 0.179840 0.280548 0.204437 0.201111 0.281067 0.205139 0.221649 0.281860 0.205872 0.241699 0.282410 0.206573 0.261444 0.283112 0.207306 0.281616 0.283752 0.208038 0.302216 0.284302 0.208832 0.323730 0.285095 0.209534 0.346649 0.285706 0.210266 0.371155 0.286316 0.211060 0.397583 0.287079 0.211853 0.426453 0.287598 0.212555 0.457947 0.288422 0.213287 0.492462 0.289032 0.214081 0.530457 0.289856 0.214813 0.571869 0.290436 0.215546 0.616058 0.290985 0.216339 0.662933 0.291779 0.217102 0.711792 0.292389 0.217834 0.762329 0.293213 0.218567 0.814209 0.293823 0.219360 0.867096 0.294556 0.220123 0.915527 0.295197 0.220825 0.000000 0.294861 0.199554 0.000000 0.295319 0.200195 0.000000 0.295776 0.200897 0.020294 0.296509 0.201569 0.048584 0.296997 0.202271 0.081818 0.297516 0.202972 0.109314 0.298218 0.203674 0.134918 0.298767 0.204407 0.158783 0.299500 0.205109 0.181213 0.300018 0.205841 0.202423 0.300537 0.206573 0.222839 0.301270 0.207306 0.242737 0.301849 0.208038 0.262543 0.302368 0.208801 0.282684 0.303131 0.209534 0.303314 0.303680 0.210266 0.324829 0.304474 0.211029 0.347656 0.304993 0.211792 0.372223 0.305603 0.212524 0.398682 0.306366 0.213287 0.427521 0.306885 0.214050 0.459076 0.307587 0.214813 0.493561 0.308228 0.215546 0.531525 0.308777 0.216309 0.572937 0.309601 0.217072 0.617004 0.310120 0.217804 0.663757 0.310944 0.218536 0.712616 0.311493 0.219330 0.763031 0.312103 0.220093 0.814758 0.312836 0.220825 0.867188 0.313416 0.221588 0.915527 0.314178 0.222321 0.000000 0.314514 0.200867 0.000000 0.315002 0.201569 0.000000 0.315582 0.202271 0.022369 0.316162 0.202942 0.052124 0.316681 0.203644 0.083801 0.317383 0.204407 0.111298 0.317871 0.205078 0.136536 0.318359 0.205841 0.160400 0.319061 0.206573 0.182556 0.319611 0.207245 0.203857 0.320129 0.208008 0.224060 0.320862 0.208771 0.243896 0.321381 0.209503 0.263733 0.322083 0.210236 0.283661 0.322662 0.210968 0.304382 0.323242 0.211792 0.325897 0.323975 0.212524 0.348724 0.324493 0.213257 0.373291 0.325043 0.214020 0.399750 0.325836 0.214783 0.428619 0.326355 0.215515 0.459961 0.327118 0.216309 0.494629 0.327698 0.217041 0.532623 0.328278 0.217804 0.573730 0.329010 0.218536 0.617920 0.329559 0.219269 0.664459 0.330139 0.220062 0.713135 0.330902 0.220795 0.763428 0.331451 0.221558 0.815063 0.332214 0.222290 0.867401 0.332764 0.223053 0.915527 0.333374 0.223785 0.000000 0.334564 0.202240 0.000000 0.335266 0.202942 0.000000 0.335815 0.203644 0.024445 0.336243 0.204346 0.055847 0.336884 0.205078 0.086090 0.337494 0.205811 0.113098 0.337952 0.206543 0.138367 0.338684 0.207245 0.161926 0.339203 0.208008 0.183960 0.339722 0.208710 0.205170 0.340454 0.209473 0.225250 0.340942 0.210205 0.245209 0.341461 0.210968 0.264801 0.342224 0.211761 0.284790 0.342743 0.212494 0.305481 0.343475 0.213226 0.326996 0.343994 0.214020 0.349792 0.344543 0.214752 0.374390 0.345306 0.215515 0.400879 0.345825 0.216278 0.429535 0.346405 0.217010 0.461060 0.347137 0.217773 0.495697 0.347687 0.218506 0.533691 0.348450 0.219269 0.574799 0.349030 0.220062 0.618896 0.349548 0.220764 0.665314 0.350311 0.221527 0.713898 0.350830 0.222290 0.764038 0.351624 0.223022 0.815308 0.352112 0.223785 0.867493 0.352692 0.224701 0.915527 0.353455 0.225403 0.000000 0.355652 0.203613 0.000000 0.356140 0.204346 0.000732 0.356812 0.205048 0.026733 0.357300 0.205780 0.059479 0.357788 0.206482 0.088135 0.358551 0.207214 0.115112 0.359039 0.207947 0.140137 0.359589 0.208710 0.163452 0.360260 0.209473 0.185577 0.360748 0.210205 0.206451 0.361511 0.210938 0.226624 0.362030 0.211670 0.246246 0.362549 0.212433 0.265961 0.363312 0.213196 0.285889 0.363800 0.213989 0.306519 0.364349 0.214722 0.328064 0.365082 0.215485 0.350861 0.365631 0.216248 0.375305 0.366333 0.217010 0.401794 0.366943 0.217773 0.430603 0.367462 0.218475 0.462158 0.368225 0.219238 0.496857 0.368744 0.220001 0.534607 0.369324 0.220734 0.575836 0.370056 0.221497 0.619720 0.370605 0.222260 0.666138 0.371338 0.222992 0.714417 0.371948 0.223755 0.764496 0.372437 0.224670 0.815735 0.373199 0.225403 0.867798 0.373718 0.226135 0.915527 0.374420 0.226868 0.000000 0.377930 0.205017 0.000000 0.378448 0.205719 0.002747 0.378906 0.206482 0.028870 0.379639 0.207214 0.061798 0.380127 0.207916 0.090454 0.380615 0.208679 0.117126 0.381348 0.209442 0.141876 0.381866 0.210175 0.165161 0.382355 0.210907 0.186981 0.383118 0.211639 0.207764 0.383636 0.212433 0.227753 0.384247 0.213165 0.247467 0.384888 0.213959 0.267090 0.385437 0.214722 0.286987 0.386169 0.215454 0.307648 0.386688 0.216217 0.329193 0.387268 0.216980 0.351990 0.388000 0.217712 0.376373 0.388550 0.218475 0.402863 0.389160 0.219208 0.431732 0.389832 0.219971 0.463257 0.390381 0.220734 0.497955 0.391144 0.221436 0.535675 0.391693 0.222229 0.576843 0.392212 0.222992 0.620575 0.392975 0.223724 0.666809 0.393494 0.224640 0.715210 0.394104 0.225403 0.765045 0.394806 0.226105 0.816101 0.395355 0.226837 0.868073 0.396088 0.227539 0.915527 0.396606 0.228241 0.000000 0.401550 0.206451 0.000000 0.402069 0.207184 0.004761 0.402771 0.207886 0.031250 0.403259 0.208649 0.064178 0.403748 0.209412 0.092621 0.404510 0.210144 0.119080 0.405029 0.210876 0.143768 0.405548 0.211639 0.166718 0.406311 0.212372 0.188385 0.406799 0.213165 0.209076 0.407562 0.213898 0.229126 0.408081 0.214691 0.248779 0.408630 0.215424 0.268219 0.409363 0.216187 0.288147 0.409912 0.216949 0.308746 0.410461 0.217712 0.330261 0.411224 0.218475 0.353088 0.411713 0.219177 0.377502 0.412476 0.219940 0.403992 0.413025 0.220673 0.432831 0.413574 0.221436 0.464386 0.414368 0.222168 0.498871 0.414886 0.222900 0.536713 0.415405 0.223694 0.577698 0.416199 0.224640 0.621552 0.416718 0.225372 0.667664 0.417450 0.226074 0.715729 0.417969 0.226807 0.765564 0.418549 0.227509 0.816406 0.419281 0.228210 0.868164 0.419830 0.228912 0.915527 0.420471 0.229645 0.000000 0.427002 0.207886 0.000000 0.427795 0.208618 0.007050 0.428253 0.209381 0.033447 0.428925 0.210114 0.066498 0.429504 0.210876 0.094788 0.430054 0.211609 0.121063 0.430756 0.212341 0.145416 0.431305 0.213165 0.168457 0.431824 0.213867 0.190033 0.432587 0.214661 0.210449 0.433105 0.215424 0.230438 0.433624 0.216156 0.249817 0.434448 0.216919 0.269409 0.434937 0.217682 0.289246 0.435730 0.218445 0.309845 0.436218 0.219177 0.331421 0.436768 0.219910 0.354187 0.437561 0.220673 0.378601 0.438110 0.221436 0.405060 0.438599 0.222137 0.433990 0.439392 0.222900 0.465515 0.439941 0.223633 0.499969 0.440704 0.224609 0.537811 0.441223 0.225342 0.578705 0.441742 0.226074 0.622375 0.442535 0.226746 0.668427 0.443085 0.227509 0.716461 0.443604 0.228180 0.765991 0.444366 0.228912 0.816650 0.444855 0.229645 0.868317 0.445587 0.230316 0.915527 0.446136 0.231018 0.000000 0.454865 0.209351 0.000000 0.455505 0.210083 0.009338 0.456146 0.210846 0.035828 0.456635 0.211578 0.069061 0.457397 0.212311 0.097046 0.457916 0.213135 0.122986 0.458435 0.213837 0.147308 0.459198 0.214630 0.169952 0.459717 0.215363 0.191467 0.460449 0.216125 0.211945 0.461029 0.216888 0.231689 0.461578 0.217651 0.251129 0.462280 0.218414 0.270538 0.462891 0.219147 0.290405 0.463379 0.219879 0.310791 0.464172 0.220642 0.332489 0.464661 0.221405 0.355316 0.465424 0.222107 0.379700 0.465973 0.222870 0.406189 0.466553 0.223602 0.435120 0.467224 0.224579 0.466583 0.467865 0.225311 0.501038 0.468384 0.226013 0.538879 0.469177 0.226746 0.579712 0.469666 0.227478 0.623291 0.470245 0.228149 0.669189 0.470947 0.228882 0.716980 0.471497 0.229553 0.766479 0.472198 0.230286 0.817169 0.472748 0.230988 0.868439 0.473267 0.231628 0.915527 0.473999 0.232330 0.000000 0.485138 0.210846 0.000000 0.485870 0.211548 0.011719 0.486420 0.212311 0.038086 0.487030 0.213074 0.071472 0.487671 0.213837 0.099213 0.488190 0.214600 0.125031 0.488953 0.215363 0.149170 0.489471 0.216125 0.171661 0.490021 0.216827 0.192871 0.490753 0.217621 0.213257 0.491302 0.218384 0.232971 0.491821 0.219147 0.252380 0.492615 0.219879 0.271729 0.493164 0.220642 0.291534 0.493896 0.221375 0.311920 0.494446 0.222107 0.333405 0.494995 0.222809 0.356262 0.495728 0.223602 0.380829 0.496277 0.224548 0.407349 0.496826 0.225281 0.436188 0.497559 0.226013 0.467712 0.498108 0.226715 0.502136 0.498779 0.227417 0.539948 0.499390 0.228149 0.580719 0.499939 0.228882 0.624146 0.500641 0.229553 0.669983 0.501221 0.230286 0.717712 0.501648 0.230927 0.766968 0.502441 0.231628 0.817444 0.502930 0.232330 0.868561 0.503448 0.232971 0.915527 0.504150 0.233582 0.000000 0.518341 0.212280 0.000000 0.519073 0.213043 0.013947 0.519592 0.213837 0.040497 0.520111 0.214569 0.073853 0.520844 0.215332 0.101349 0.521362 0.216095 0.127045 0.521881 0.216827 0.150818 0.522644 0.217621 0.173248 0.523163 0.218353 0.194275 0.523834 0.219116 0.214539 0.524475 0.219849 0.234222 0.525024 0.220581 0.253601 0.525696 0.221344 0.272827 0.526276 0.222107 0.292633 0.526794 0.222778 0.313049 0.527588 0.223572 0.334503 0.528076 0.224518 0.357391 0.528625 0.225281 0.381897 0.529388 0.225983 0.408417 0.529877 0.226715 0.437286 0.530640 0.227386 0.468811 0.531158 0.228119 0.503265 0.531677 0.228821 0.541016 0.532379 0.229523 0.581635 0.532928 0.230194 0.625092 0.533417 0.230927 0.670624 0.534180 0.231598 0.718231 0.534668 0.232269 0.767334 0.535187 0.232941 0.817657 0.535919 0.233582 0.868744 0.536346 0.234253 0.915527 0.536865 0.234894 0.000000 0.554626 0.213776 0.000000 0.555145 0.214569 0.016357 0.555756 0.215302 0.042755 0.556396 0.216064 0.076447 0.556915 0.216827 0.103668 0.557648 0.217560 0.129089 0.558167 0.218323 0.152710 0.558716 0.219086 0.174774 0.559418 0.219818 0.195892 0.559906 0.220581 0.215881 0.560455 0.221344 0.235443 0.561218 0.222076 0.254761 0.561676 0.222778 0.274017 0.562225 0.223511 0.293793 0.562958 0.224518 0.314117 0.563477 0.225250 0.335571 0.564087 0.225952 0.358459 0.564728 0.226685 0.383057 0.565216 0.227386 0.409515 0.565765 0.228088 0.438416 0.566437 0.228821 0.469879 0.566925 0.229523 0.504303 0.567535 0.230194 0.541840 0.568176 0.230896 0.582489 0.568634 0.231567 0.625793 0.569336 0.232269 0.671509 0.569824 0.232941 0.718933 0.570282 0.233551 0.767975 0.571014 0.234222 0.817963 0.571442 0.234863 0.868927 0.571930 0.235474 0.915527 0.572357 0.236115 0.000000 0.593842 0.215271 0.000000 0.594391 0.216034 0.018799 0.594940 0.216797 0.045197 0.595490 0.217560 0.078766 0.595917 0.218323 0.105835 0.596649 0.219055 0.130859 0.597137 0.219788 0.154358 0.597626 0.220551 0.176453 0.598328 0.221283 0.197296 0.598816 0.222046 0.217163 0.599365 0.222748 0.236664 0.600006 0.223480 0.255951 0.600525 0.224487 0.275146 0.600952 0.225220 0.294891 0.601685 0.225922 0.315247 0.602173 0.226685 0.336700 0.602600 0.227356 0.359467 0.603302 0.228058 0.384125 0.603821 0.228790 0.410614 0.604248 0.229462 0.439453 0.604950 0.230164 0.470856 0.605469 0.230896 0.505310 0.605865 0.231537 0.542847 0.606567 0.232239 0.583435 0.606964 0.232910 0.626709 0.607452 0.233521 0.672119 0.608002 0.234192 0.719452 0.608551 0.234833 0.768341 0.608948 0.235474 0.818268 0.609436 0.236084 0.869110 0.610077 0.236694 0.915527 0.610474 0.237335 0.000000 0.635620 0.216766 0.000000 0.636017 0.217529 0.021301 0.636475 0.218292 0.048920 0.637115 0.219055 0.081207 0.637573 0.219788 0.108032 0.638031 0.220490 0.132874 0.638672 0.221283 0.156189 0.639099 0.222046 0.177979 0.639557 0.222748 0.198639 0.640045 0.223480 0.218567 0.640625 0.224426 0.237915 0.641083 0.225189 0.257141 0.641541 0.225922 0.276276 0.642212 0.226624 0.296021 0.642639 0.227356 0.316345 0.643066 0.228058 0.337799 0.643616 0.228760 0.360596 0.644165 0.229462 0.385193 0.644562 0.230164 0.411713 0.645020 0.230835 0.440338 0.645630 0.231537 0.471863 0.646027 0.232178 0.506287 0.646454 0.232880 0.543884 0.647064 0.233521 0.584442 0.647461 0.234161 0.627625 0.647858 0.234802 0.672852 0.648254 0.235443 0.720154 0.648743 0.236053 0.768768 0.649261 0.236664 0.818665 0.649597 0.237335 0.869324 0.649994 0.237885 0.915527 0.650543 0.238464 0.000000 0.679413 0.218262 0.000000 0.679840 0.219025 0.023712 0.680237 0.219757 0.053192 0.680573 0.220459 0.083496 0.681244 0.221252 0.110199 0.681610 0.221985 0.134857 0.682007 0.222717 0.157806 0.682373 0.223450 0.179718 0.682953 0.224426 0.200165 0.683350 0.225189 0.220001 0.683746 0.225891 0.239136 0.684113 0.226624 0.258270 0.684723 0.227325 0.277405 0.685089 0.228058 0.297119 0.685455 0.228729 0.317444 0.685852 0.229431 0.338867 0.686462 0.230103 0.361633 0.686768 0.230835 0.386200 0.687195 0.231506 0.412628 0.687531 0.232178 0.441406 0.688110 0.232849 0.472870 0.688446 0.233459 0.507233 0.688843 0.234161 0.544922 0.689148 0.234802 0.585388 0.689636 0.235413 0.628265 0.690033 0.236053 0.673523 0.690399 0.236664 0.720581 0.690704 0.237305 0.769318 0.691040 0.237854 0.818878 0.691589 0.238464 0.869415 0.691864 0.239044 0.915527 0.692169 0.239624 0.000000 0.724792 0.219757 0.000854 0.725098 0.220459 0.026123 0.725647 0.221191 0.057434 0.725952 0.221985 0.085968 0.726288 0.222717 0.112213 0.726624 0.223450 0.136719 0.727051 0.224396 0.159637 0.727448 0.225098 0.181152 0.727814 0.225861 0.201630 0.728119 0.226593 0.221252 0.728424 0.227295 0.240326 0.728943 0.228027 0.259491 0.729309 0.228729 0.278534 0.729523 0.229401 0.298187 0.729858 0.230103 0.318512 0.730194 0.230804 0.339905 0.730621 0.231476 0.362701 0.730988 0.232147 0.387146 0.731323 0.232819 0.413605 0.731598 0.233459 0.442444 0.731873 0.234131 0.473907 0.732391 0.234772 0.508270 0.732666 0.235413 0.545868 0.732941 0.236023 0.586090 0.733215 0.236664 0.629150 0.733490 0.237274 0.674194 0.733887 0.237854 0.721161 0.734253 0.238434 0.769592 0.734497 0.239044 0.819153 0.734802 0.239594 0.869537 0.735016 0.240143 0.915527 0.735291 0.240662 0.000000 0.771729 0.221161 0.003052 0.771942 0.221954 0.028564 0.772186 0.222656 0.060486 0.772461 0.223419 0.088287 0.772705 0.224365 0.114349 0.772888 0.225098 0.138580 0.773254 0.225830 0.161316 0.773651 0.226562 0.182617 0.773834 0.227264 0.202972 0.774139 0.227997 0.222534 0.774353 0.228729 0.241547 0.774567 0.229401 0.260620 0.774994 0.230072 0.279663 0.775330 0.230743 0.299072 0.775513 0.231445 0.319550 0.775757 0.232117 0.340912 0.775970 0.232819 0.363770 0.776184 0.233429 0.388153 0.776459 0.234100 0.414642 0.776886 0.234741 0.443512 0.777100 0.235382 0.474945 0.777313 0.235992 0.509277 0.777527 0.236664 0.546600 0.777740 0.237274 0.587006 0.777985 0.237823 0.629822 0.778137 0.238403 0.674957 0.778442 0.238983 0.721680 0.778778 0.239563 0.769958 0.778931 0.240143 0.819397 0.779144 0.240631 0.869659 0.779358 0.241211 0.915527 0.779510 0.241699 0.000000 0.819153 0.222656 0.005341 0.819305 0.223419 0.030914 0.819489 0.224365 0.063019 0.819794 0.225067 0.090637 0.820038 0.225800 0.116364 0.820221 0.226532 0.140503 0.820374 0.227264 0.162994 0.820526 0.227966 0.184143 0.820679 0.228699 0.204346 0.820831 0.229401 0.223785 0.821045 0.230042 0.242706 0.821167 0.230713 0.261627 0.821472 0.231445 0.280731 0.821747 0.232086 0.300140 0.821869 0.232758 0.320557 0.822052 0.233398 0.341858 0.822174 0.234100 0.364685 0.822357 0.234741 0.389160 0.822510 0.235352 0.415710 0.822632 0.235992 0.444550 0.822815 0.236633 0.475830 0.822968 0.237213 0.510223 0.823273 0.237793 0.547577 0.823456 0.238403 0.587891 0.823578 0.238983 0.630615 0.823730 0.239563 0.675476 0.823853 0.240112 0.722137 0.823975 0.240631 0.770538 0.824066 0.241211 0.819824 0.824219 0.241669 0.869751 0.824341 0.242218 0.915527 0.824463 0.242706 0.000000 0.867310 0.224304 0.007690 0.867371 0.225067 0.033356 0.867462 0.225800 0.065582 0.867554 0.226532 0.092926 0.867645 0.227203 0.118469 0.867676 0.227966 0.142365 0.867767 0.228699 0.164551 0.867920 0.229370 0.185699 0.868103 0.230042 0.205627 0.868164 0.230713 0.225037 0.868347 0.231415 0.243896 0.868439 0.232086 0.262787 0.868469 0.232727 0.281830 0.868561 0.233398 0.301208 0.868652 0.234070 0.321411 0.868744 0.234711 0.342834 0.868774 0.235352 0.365631 0.868896 0.235992 0.390198 0.868958 0.236603 0.416687 0.869049 0.237213 0.445343 0.869110 0.237793 0.476746 0.869171 0.238342 0.510986 0.869202 0.238983 0.548492 0.869293 0.239563 0.588531 0.869354 0.240082 0.631378 0.869446 0.240631 0.676239 0.869446 0.241180 0.722809 0.869720 0.241669 0.770813 0.869781 0.242218 0.820007 0.869873 0.242676 0.869873 0.869934 0.243195 0.915527 0.870087 0.243652 0.000000 0.915527 0.225769 0.010101 0.915527 0.226471 0.035797 0.915527 0.227203 0.068054 0.915527 0.227936 0.095154 0.915527 0.228638 0.120453 0.915527 0.229309 0.144104 0.915527 0.230042 0.166290 0.915527 0.230682 0.187103 0.915527 0.231384 0.207092 0.915527 0.232056 0.226257 0.915527 0.232697 0.245087 0.915527 0.233368 0.263885 0.915527 0.234039 0.282898 0.915527 0.234680 0.302216 0.915527 0.235321 0.322418 0.915527 0.235962 0.343842 0.915527 0.236572 0.366608 0.915527 0.237152 0.391083 0.915527 0.237762 0.417542 0.915527 0.238342 0.446289 0.915527 0.238953 0.477692 0.915527 0.239502 0.511932 0.915527 0.240082 0.549255 0.915527 0.240601 0.589417 0.915527 0.241150 0.631958 0.915527 0.241638 0.676666 0.915527 0.242188 0.723175 0.915527 0.242645 0.771118 0.915527 0.243164 0.820190 0.915527 0.243622 0.869995 0.915527 0.244080 0.915527 0.915527 0.244537 0.000000 0.000000 0.216461 0.000000 0.000000 0.216766 0.000000 0.000000 0.217102 0.000000 0.000000 0.217468 0.026062 0.000000 0.217804 0.059326 0.000000 0.218170 0.088593 0.000000 0.218567 0.115997 0.000000 0.219025 0.141571 0.000000 0.219452 0.165405 0.000000 0.219849 0.187927 0.000000 0.220306 0.209167 0.000000 0.220764 0.229858 0.000000 0.221252 0.250336 0.000000 0.221741 0.270569 0.000000 0.222260 0.291443 0.000000 0.222717 0.312958 0.000000 0.223267 0.335663 0.000000 0.223785 0.360138 0.000000 0.224579 0.386475 0.000000 0.225098 0.414948 0.000000 0.225708 0.446381 0.000000 0.226257 0.481079 0.000000 0.226837 0.519135 0.000000 0.227386 0.561005 0.000000 0.228027 0.605988 0.000000 0.228668 0.653992 0.000000 0.229187 0.704315 0.000000 0.229858 0.756683 0.000000 0.230438 0.810211 0.000000 0.231110 0.864990 0.000000 0.231720 0.915527 0.000000 0.232361 0.000000 0.000000 0.217102 0.000000 0.000000 0.217438 0.000000 0.000000 0.217804 0.000793 0.000000 0.218170 0.027161 0.000000 0.218567 0.060577 0.000000 0.218994 0.089813 0.000000 0.219421 0.117157 0.000000 0.219849 0.142639 0.000000 0.220306 0.166412 0.000000 0.220764 0.188812 0.000000 0.221191 0.210083 0.000000 0.221741 0.230743 0.000000 0.222229 0.251007 0.000000 0.222717 0.271423 0.000000 0.223236 0.292206 0.000000 0.223785 0.313812 0.000061 0.224548 0.336548 0.001007 0.225067 0.360779 0.002075 0.225677 0.387146 0.003204 0.226227 0.415863 0.004333 0.226807 0.447296 0.005524 0.227386 0.481903 0.006775 0.227997 0.520020 0.007965 0.228607 0.561707 0.009277 0.229187 0.606812 0.010529 0.229828 0.654663 0.011841 0.230438 0.705048 0.013336 0.231079 0.757050 0.014679 0.231689 0.810516 0.016083 0.232361 0.865295 0.017456 0.233032 0.915527 0.018860 0.233643 0.000000 0.012573 0.217804 0.000000 0.013367 0.218170 0.000000 0.014069 0.218536 0.001984 0.014954 0.218994 0.028564 0.015869 0.219421 0.061920 0.016632 0.219818 0.091064 0.017609 0.220276 0.118378 0.018585 0.220734 0.143799 0.019623 0.221191 0.167450 0.020508 0.221710 0.189728 0.021545 0.222229 0.211029 0.022614 0.222717 0.231689 0.023712 0.223236 0.251862 0.024872 0.223785 0.272339 0.026001 0.224518 0.292938 0.027161 0.225067 0.314545 0.028381 0.225677 0.337341 0.029480 0.226196 0.361694 0.030731 0.226807 0.388031 0.032013 0.227386 0.416779 0.033295 0.227997 0.448212 0.034454 0.228607 0.482727 0.035828 0.229187 0.520813 0.037140 0.229797 0.562561 0.038422 0.230408 0.607727 0.039825 0.231049 0.655426 0.041199 0.231689 0.705505 0.042572 0.232330 0.757416 0.043945 0.233002 0.811005 0.045349 0.233612 0.865448 0.047699 0.234283 0.915527 0.050018 0.234955 0.000000 0.041595 0.218536 0.000000 0.042450 0.218994 0.000000 0.043182 0.219391 0.003113 0.044098 0.219788 0.029907 0.045044 0.220276 0.063416 0.046021 0.220734 0.092529 0.047852 0.221161 0.119629 0.049652 0.221710 0.144958 0.051300 0.222168 0.168549 0.053131 0.222687 0.190674 0.055145 0.223206 0.212036 0.057190 0.223755 0.232513 0.059052 0.224518 0.252777 0.060242 0.225067 0.273010 0.061340 0.225647 0.293854 0.062622 0.226196 0.315399 0.064026 0.226807 0.338104 0.065369 0.227356 0.362640 0.066711 0.227966 0.388947 0.068085 0.228577 0.417603 0.069489 0.229156 0.449005 0.070892 0.229797 0.483673 0.072266 0.230377 0.521759 0.073639 0.231049 0.563507 0.075195 0.231659 0.608368 0.076569 0.232330 0.656219 0.078064 0.232971 0.706116 0.079407 0.233582 0.758026 0.080902 0.234253 0.811310 0.082428 0.234924 0.865570 0.083832 0.235596 0.915527 0.085388 0.236298 0.000000 0.078339 0.219391 0.000000 0.079163 0.219788 0.000000 0.080200 0.220245 0.004517 0.081207 0.220703 0.031403 0.082092 0.221161 0.065125 0.083130 0.221680 0.094025 0.084290 0.222137 0.121063 0.085205 0.222656 0.146179 0.086365 0.223206 0.169708 0.087494 0.223755 0.191742 0.088654 0.224487 0.212860 0.089691 0.225037 0.233368 0.090881 0.225616 0.253723 0.092194 0.226166 0.273956 0.093384 0.226715 0.294769 0.094513 0.227325 0.316315 0.095764 0.227936 0.339020 0.097015 0.228546 0.363403 0.098358 0.229126 0.389893 0.099670 0.229767 0.418457 0.100983 0.230377 0.449921 0.102325 0.231018 0.484650 0.103607 0.231628 0.522736 0.104858 0.232300 0.564453 0.106201 0.232941 0.609314 0.107544 0.233551 0.656769 0.108948 0.234253 0.706726 0.110352 0.234924 0.758453 0.111725 0.235565 0.811554 0.113190 0.236237 0.865692 0.114532 0.236908 0.915527 0.115814 0.237579 0.000000 0.109222 0.220215 0.000000 0.110260 0.220703 0.000000 0.111023 0.221161 0.006042 0.112030 0.221649 0.032990 0.113098 0.222137 0.066681 0.113922 0.222656 0.095490 0.114960 0.223175 0.122467 0.116058 0.223755 0.147430 0.116974 0.224426 0.170837 0.118134 0.225037 0.192902 0.119232 0.225616 0.213898 0.120148 0.226166 0.234375 0.121338 0.226715 0.254547 0.122528 0.227325 0.274872 0.123688 0.227936 0.295502 0.124695 0.228546 0.317261 0.125916 0.229095 0.339996 0.127106 0.229736 0.364319 0.128357 0.230377 0.390686 0.129364 0.231018 0.419464 0.130615 0.231628 0.450958 0.131866 0.232300 0.485504 0.133087 0.232910 0.523682 0.134308 0.233551 0.565338 0.135437 0.234222 0.610077 0.136719 0.234863 0.657654 0.138000 0.235535 0.707458 0.139313 0.236206 0.759033 0.140503 0.236877 0.811951 0.141632 0.237549 0.865845 0.142944 0.238220 0.915527 0.144257 0.238922 0.000000 0.138397 0.221130 0.000000 0.139374 0.221649 0.000000 0.140076 0.222137 0.007599 0.141022 0.222626 0.034576 0.141785 0.223145 0.068420 0.142822 0.223724 0.097168 0.143829 0.224426 0.123871 0.144653 0.225037 0.148682 0.145660 0.225586 0.172119 0.146637 0.226135 0.193970 0.147614 0.226715 0.214996 0.148651 0.227295 0.235413 0.149506 0.227905 0.255463 0.150635 0.228516 0.275848 0.151733 0.229095 0.296478 0.152618 0.229706 0.317993 0.153748 0.230377 0.340851 0.154877 0.231018 0.365265 0.155884 0.231598 0.391693 0.156921 0.232269 0.420441 0.158081 0.232910 0.451965 0.159149 0.233521 0.486420 0.160217 0.234192 0.524536 0.161377 0.234863 0.566162 0.162537 0.235535 0.610870 0.163483 0.236176 0.658295 0.164673 0.236847 0.708008 0.165863 0.237549 0.759491 0.166901 0.238220 0.812378 0.167999 0.238892 0.865997 0.169189 0.239563 0.915527 0.170349 0.240265 0.000000 0.165222 0.222107 0.000000 0.166107 0.222626 0.000000 0.166901 0.223145 0.009216 0.167694 0.223694 0.036255 0.168427 0.224426 0.070312 0.169373 0.225006 0.098755 0.170288 0.225525 0.125458 0.171082 0.226105 0.150238 0.172028 0.226715 0.173309 0.172791 0.227264 0.195160 0.173798 0.227875 0.216095 0.174591 0.228485 0.236450 0.175598 0.229065 0.256500 0.176605 0.229706 0.276642 0.177429 0.230347 0.297424 0.178467 0.230988 0.319000 0.179291 0.231598 0.341766 0.180328 0.232239 0.366302 0.181396 0.232880 0.392700 0.182190 0.233490 0.421448 0.183258 0.234192 0.453003 0.184357 0.234833 0.487488 0.185211 0.235504 0.525574 0.186310 0.236176 0.567169 0.187134 0.236847 0.611847 0.188202 0.237518 0.659119 0.189331 0.238190 0.708740 0.190155 0.238892 0.759949 0.191254 0.239563 0.812622 0.192291 0.240234 0.866119 0.193176 0.240936 0.915527 0.194275 0.241608 0.000000 0.190033 0.223114 0.000000 0.190918 0.223694 0.000000 0.191559 0.224426 0.010925 0.192383 0.224976 0.038025 0.193054 0.225525 0.072113 0.193970 0.226105 0.100555 0.194641 0.226685 0.126984 0.195526 0.227264 0.151611 0.196228 0.227875 0.174561 0.197144 0.228485 0.196320 0.197845 0.229065 0.217163 0.198792 0.229706 0.237549 0.199524 0.230316 0.257538 0.200500 0.230927 0.277649 0.201233 0.231567 0.298431 0.202209 0.232178 0.319977 0.202942 0.232849 0.342743 0.203918 0.233459 0.367310 0.204895 0.234161 0.393738 0.205658 0.234802 0.422424 0.206635 0.235474 0.453979 0.207397 0.236145 0.488556 0.208405 0.236816 0.526611 0.209198 0.237488 0.568176 0.210205 0.238159 0.612762 0.211151 0.238831 0.660004 0.211975 0.239532 0.709320 0.212921 0.240204 0.760529 0.213745 0.240906 0.812958 0.214752 0.241577 0.866547 0.215546 0.242249 0.915527 0.216522 0.242950 0.000000 0.213196 0.224396 0.000000 0.213806 0.224976 0.000000 0.214600 0.225494 0.012756 0.215210 0.226074 0.039825 0.216034 0.226654 0.073944 0.216675 0.227234 0.102203 0.217468 0.227844 0.128479 0.218140 0.228455 0.152985 0.218781 0.229065 0.175842 0.219666 0.229675 0.197540 0.220306 0.230286 0.218292 0.221161 0.230927 0.238617 0.221832 0.231537 0.258575 0.222717 0.232147 0.278687 0.223419 0.232849 0.299408 0.224335 0.233459 0.320984 0.225006 0.234131 0.343781 0.225952 0.234802 0.368195 0.226624 0.235443 0.394592 0.227509 0.236115 0.423309 0.228271 0.236786 0.454956 0.229156 0.237457 0.489624 0.229889 0.238129 0.527649 0.230804 0.238831 0.569092 0.231537 0.239532 0.613464 0.232452 0.240204 0.660614 0.233307 0.240906 0.709991 0.234100 0.241547 0.760925 0.234802 0.242249 0.813416 0.235748 0.242920 0.866669 0.236603 0.243591 0.915527 0.237396 0.244263 0.000000 0.234680 0.225494 0.000000 0.235504 0.226074 0.000000 0.236023 0.226624 0.014618 0.236816 0.227203 0.041687 0.237396 0.227814 0.075958 0.238007 0.228394 0.104065 0.238739 0.229034 0.130188 0.239349 0.229675 0.154388 0.240173 0.230286 0.177216 0.240784 0.230896 0.198761 0.241638 0.231537 0.219452 0.242249 0.232147 0.239655 0.242950 0.232819 0.259644 0.243683 0.233429 0.279755 0.244324 0.234100 0.300354 0.245178 0.234772 0.321991 0.245850 0.235413 0.344818 0.246674 0.236084 0.369171 0.247314 0.236786 0.395599 0.248199 0.237427 0.424408 0.248840 0.238129 0.455963 0.249695 0.238800 0.490692 0.250366 0.239471 0.528717 0.251282 0.240173 0.570007 0.251862 0.240814 0.614441 0.252747 0.241516 0.661499 0.253448 0.242218 0.710602 0.254272 0.242889 0.761505 0.254974 0.243591 0.813721 0.255859 0.244263 0.866821 0.256531 0.244934 0.915527 0.257172 0.245605 0.000000 0.255341 0.226624 0.000000 0.256104 0.227203 0.000000 0.256592 0.227783 0.016479 0.257111 0.228394 0.043640 0.257874 0.229004 0.077942 0.258453 0.229645 0.105927 0.259155 0.230225 0.131805 0.259766 0.230865 0.156036 0.260345 0.231506 0.178741 0.261139 0.232117 0.200043 0.261658 0.232758 0.220642 0.262451 0.233398 0.240845 0.263092 0.234100 0.260712 0.263641 0.234741 0.280792 0.264465 0.235413 0.301422 0.265106 0.236084 0.322998 0.265900 0.236725 0.345856 0.266479 0.237427 0.370239 0.267365 0.238068 0.396667 0.267914 0.238770 0.425537 0.268555 0.239471 0.457031 0.269409 0.240173 0.491547 0.269958 0.240814 0.529724 0.270813 0.241516 0.571045 0.271423 0.242188 0.615387 0.272308 0.242859 0.662170 0.272919 0.243561 0.711334 0.273651 0.244232 0.762024 0.274353 0.244934 0.813965 0.275055 0.245605 0.867004 0.275818 0.246246 0.915527 0.276428 0.246948 0.000000 0.275391 0.227783 0.000000 0.275909 0.228363 0.000000 0.276398 0.228973 0.018585 0.277130 0.229584 0.045593 0.277679 0.230194 0.080078 0.278290 0.230835 0.107788 0.278900 0.231476 0.133545 0.279449 0.232117 0.157501 0.280182 0.232727 0.180054 0.280731 0.233398 0.201477 0.281311 0.234070 0.221802 0.282043 0.234711 0.241974 0.282623 0.235382 0.261749 0.283386 0.236053 0.281891 0.283966 0.236725 0.302399 0.284546 0.237396 0.324005 0.285309 0.238037 0.346924 0.285889 0.238770 0.371307 0.286682 0.239441 0.397736 0.287262 0.240112 0.426605 0.287933 0.240784 0.458130 0.288635 0.241486 0.492615 0.289246 0.242157 0.530640 0.290039 0.242828 0.572052 0.290649 0.243530 0.616364 0.291351 0.244202 0.663025 0.292023 0.244904 0.711945 0.292572 0.245575 0.762421 0.293427 0.246246 0.814331 0.294037 0.246948 0.867126 0.294861 0.247589 0.915527 0.295410 0.248291 0.000000 0.295013 0.228973 0.000000 0.295502 0.229584 0.000000 0.295959 0.230164 0.020630 0.296661 0.230835 0.049103 0.297211 0.231445 0.082153 0.297821 0.232086 0.109650 0.298431 0.232727 0.135162 0.298920 0.233368 0.158966 0.299683 0.234039 0.181396 0.300201 0.234711 0.202728 0.300812 0.235352 0.223145 0.301483 0.236023 0.243073 0.302002 0.236694 0.262878 0.302704 0.237366 0.282959 0.303345 0.238007 0.303467 0.303864 0.238708 0.324982 0.304657 0.239410 0.347992 0.305206 0.240112 0.372375 0.306000 0.240784 0.398865 0.306549 0.241455 0.427673 0.307098 0.242157 0.459229 0.307861 0.242798 0.493683 0.308441 0.243500 0.531677 0.309143 0.244171 0.573059 0.309784 0.244873 0.617096 0.310364 0.245544 0.663879 0.311157 0.246246 0.712677 0.311707 0.246918 0.763092 0.312500 0.247589 0.814819 0.313080 0.248260 0.867249 0.313629 0.248932 0.915527 0.314392 0.249573 0.000000 0.314697 0.230164 0.000000 0.315186 0.230804 0.000000 0.315857 0.231415 0.022736 0.316376 0.232056 0.053040 0.316833 0.232697 0.084290 0.317535 0.233368 0.111603 0.318054 0.234039 0.137024 0.318542 0.234680 0.160675 0.319275 0.235321 0.182922 0.319794 0.235992 0.204041 0.320404 0.236664 0.224213 0.321045 0.237335 0.244263 0.321625 0.238007 0.264069 0.322327 0.238678 0.283936 0.322906 0.239380 0.304535 0.323425 0.240082 0.326050 0.324188 0.240723 0.348877 0.324707 0.241425 0.373474 0.325317 0.242126 0.399963 0.326019 0.242767 0.428802 0.326599 0.243500 0.460327 0.327332 0.244141 0.494812 0.327911 0.244843 0.532776 0.328613 0.245544 0.573853 0.329224 0.246216 0.618042 0.329773 0.246918 0.664703 0.330566 0.247559 0.713226 0.331085 0.248230 0.763550 0.331635 0.248932 0.815125 0.332397 0.249542 0.867401 0.332947 0.250244 0.915527 0.333710 0.250885 0.000000 0.334747 0.231415 0.000000 0.335480 0.232056 0.000000 0.335938 0.232697 0.024963 0.336456 0.233337 0.056763 0.337158 0.234009 0.086456 0.337646 0.234680 0.113617 0.338165 0.235321 0.138641 0.338867 0.235992 0.162201 0.339386 0.236664 0.184418 0.340057 0.237335 0.205322 0.340607 0.237976 0.225586 0.341156 0.238647 0.245483 0.341797 0.239380 0.264954 0.342407 0.240051 0.285034 0.342896 0.240723 0.305634 0.343689 0.241394 0.327148 0.344208 0.242096 0.349976 0.344849 0.242767 0.374603 0.345490 0.243469 0.401062 0.346039 0.244110 0.429871 0.346741 0.244843 0.461365 0.347382 0.245483 0.495941 0.347870 0.246185 0.533844 0.348663 0.246918 0.574951 0.349182 0.247528 0.619049 0.349915 0.248230 0.665405 0.350494 0.248901 0.714020 0.351044 0.249542 0.764160 0.351807 0.250244 0.815399 0.352356 0.250885 0.867554 0.352875 0.251556 0.915527 0.353668 0.252197 0.000000 0.355804 0.232697 0.000000 0.356537 0.233337 0.001099 0.357025 0.234009 0.027069 0.357483 0.234650 0.059845 0.358093 0.235291 0.088623 0.358704 0.235992 0.115417 0.359222 0.236664 0.140472 0.359955 0.237335 0.163879 0.360443 0.237976 0.185791 0.360962 0.238647 0.206665 0.361694 0.239319 0.226898 0.362213 0.240021 0.246582 0.362885 0.240692 0.266144 0.363495 0.241364 0.286133 0.364014 0.242065 0.306793 0.364685 0.242737 0.328247 0.365295 0.243439 0.351074 0.365845 0.244110 0.375610 0.366577 0.244812 0.402130 0.367096 0.245483 0.431030 0.367737 0.246185 0.462524 0.368408 0.246826 0.497040 0.368988 0.247528 0.534973 0.369629 0.248230 0.575989 0.370270 0.248871 0.619934 0.370789 0.249542 0.666351 0.371552 0.250214 0.714539 0.372101 0.250854 0.764587 0.372742 0.251556 0.815857 0.373383 0.252197 0.867798 0.373932 0.252869 0.915527 0.374664 0.253510 0.000000 0.378113 0.233978 0.000000 0.378601 0.234650 0.003052 0.379120 0.235260 0.029388 0.379791 0.235962 0.062134 0.380249 0.236633 0.090790 0.380798 0.237305 0.117432 0.381561 0.237946 0.142273 0.382050 0.238617 0.165436 0.382660 0.239319 0.187225 0.383301 0.239990 0.207977 0.383789 0.240662 0.228149 0.384583 0.241364 0.247833 0.385101 0.242065 0.267365 0.385590 0.242706 0.287170 0.386383 0.243408 0.307831 0.386902 0.244080 0.329315 0.387482 0.244751 0.352142 0.388184 0.245453 0.376709 0.388733 0.246155 0.403198 0.389496 0.246826 0.432098 0.390045 0.247498 0.463440 0.390564 0.248169 0.498138 0.391357 0.248871 0.536011 0.391876 0.249512 0.576996 0.392456 0.250214 0.620728 0.393158 0.250854 0.666962 0.393707 0.251526 0.715302 0.394440 0.252167 0.765167 0.395020 0.252838 0.816162 0.395508 0.253479 0.868073 0.396271 0.254089 0.915527 0.396790 0.254730 0.000000 0.401733 0.235260 0.000000 0.402344 0.235962 0.005249 0.402954 0.236603 0.031586 0.403473 0.237274 0.064697 0.403961 0.237915 0.093018 0.404694 0.238617 0.119446 0.405212 0.239319 0.144043 0.405945 0.239990 0.167023 0.406464 0.240631 0.188751 0.407013 0.241333 0.209290 0.407715 0.242035 0.229401 0.408264 0.242706 0.249023 0.408966 0.243408 0.268433 0.409576 0.244080 0.288300 0.410065 0.244720 0.308960 0.410767 0.245422 0.330475 0.411377 0.246124 0.353241 0.411926 0.246796 0.377808 0.412689 0.247467 0.404297 0.413239 0.248169 0.433044 0.413879 0.248840 0.464539 0.414551 0.249481 0.499084 0.415070 0.250183 0.536957 0.415741 0.250824 0.578003 0.416382 0.251495 0.621704 0.416931 0.252167 0.667816 0.417633 0.252808 0.715790 0.418243 0.253448 0.765625 0.418823 0.254089 0.816467 0.419464 0.254700 0.868164 0.419983 0.255371 0.915527 0.420776 0.255981 0.000000 0.427399 0.236603 0.000000 0.427948 0.237244 0.007507 0.428436 0.237915 0.033966 0.429199 0.238586 0.067047 0.429688 0.239288 0.095184 0.430206 0.239990 0.121490 0.430969 0.240631 0.145905 0.431488 0.241302 0.168701 0.432190 0.242004 0.190247 0.432831 0.242676 0.210815 0.433289 0.243347 0.230652 0.434052 0.244080 0.250153 0.434601 0.244690 0.269592 0.435120 0.245392 0.289429 0.435883 0.246124 0.310059 0.436432 0.246765 0.331573 0.437134 0.247437 0.354370 0.437775 0.248138 0.378784 0.438293 0.248810 0.405426 0.438995 0.249481 0.434143 0.439575 0.250153 0.465637 0.440125 0.250793 0.500183 0.440887 0.251465 0.537994 0.441437 0.252106 0.578857 0.442108 0.252777 0.622620 0.442749 0.253448 0.668671 0.443237 0.254028 0.716553 0.443939 0.254700 0.766022 0.444550 0.255371 0.816772 0.445038 0.255951 0.868317 0.445831 0.256592 0.915527 0.446350 0.257172 0.000000 0.455078 0.237885 0.000000 0.455780 0.238556 0.009766 0.456299 0.239258 0.036224 0.456848 0.239929 0.069458 0.457581 0.240601 0.097382 0.458069 0.241302 0.123444 0.458862 0.241974 0.147583 0.459381 0.242645 0.170197 0.459930 0.243347 0.191681 0.460663 0.244049 0.212158 0.461212 0.244659 0.231903 0.461731 0.245392 0.251404 0.462494 0.246063 0.270752 0.463043 0.246735 0.290558 0.463623 0.247437 0.311035 0.464325 0.248108 0.332672 0.464905 0.248779 0.355469 0.465668 0.249451 0.379883 0.466187 0.250122 0.406342 0.466736 0.250763 0.435272 0.467529 0.251465 0.466766 0.468018 0.252075 0.501190 0.468597 0.252777 0.539001 0.469330 0.253418 0.579865 0.469849 0.254028 0.623383 0.470612 0.254669 0.669312 0.471161 0.255310 0.717102 0.471680 0.255920 0.766632 0.472412 0.256561 0.817200 0.472931 0.257172 0.868469 0.473450 0.257782 0.915527 0.474182 0.258423 0.000000 0.485413 0.239258 0.000000 0.486053 0.239899 0.012054 0.486572 0.240601 0.038605 0.487335 0.241302 0.071899 0.487854 0.241943 0.099609 0.488373 0.242645 0.125458 0.489136 0.243317 0.149414 0.489716 0.244019 0.171967 0.490204 0.244659 0.193146 0.490967 0.245331 0.213440 0.491486 0.246063 0.233124 0.492310 0.246735 0.252563 0.492798 0.247375 0.271942 0.493347 0.248077 0.291687 0.494080 0.248749 0.312134 0.494659 0.249420 0.333710 0.495331 0.250122 0.356567 0.495941 0.250763 0.380981 0.496460 0.251434 0.407501 0.497101 0.252075 0.436371 0.497772 0.252747 0.467896 0.498291 0.253387 0.502319 0.499054 0.253998 0.540039 0.499573 0.254669 0.580872 0.500153 0.255280 0.624329 0.500854 0.255920 0.670105 0.501373 0.256531 0.717865 0.501892 0.257141 0.767059 0.502625 0.257782 0.817505 0.503113 0.258362 0.868652 0.503754 0.258972 0.915527 0.504364 0.259552 0.000000 0.518555 0.240570 0.000000 0.519257 0.241272 0.014465 0.519775 0.241943 0.040863 0.520355 0.242645 0.074402 0.521027 0.243286 0.101837 0.521576 0.243988 0.127350 0.522247 0.244629 0.151093 0.522827 0.245331 0.173462 0.523407 0.246033 0.194641 0.524109 0.246674 0.214783 0.524658 0.247375 0.234375 0.525208 0.248077 0.253784 0.525940 0.248718 0.273041 0.526489 0.249390 0.292816 0.527069 0.250092 0.313263 0.527740 0.250702 0.334778 0.528290 0.251404 0.357666 0.529053 0.252045 0.382080 0.529572 0.252716 0.408600 0.530090 0.253357 0.437439 0.530823 0.253967 0.468964 0.531372 0.254639 0.503387 0.531860 0.255249 0.541138 0.532593 0.255890 0.581879 0.533112 0.256500 0.625244 0.533630 0.257141 0.670746 0.534363 0.257782 0.718323 0.534851 0.258362 0.767426 0.535461 0.258972 0.817749 0.536072 0.259521 0.868744 0.536560 0.260132 0.915527 0.537018 0.260681 0.000000 0.554871 0.241943 0.000000 0.555328 0.242584 0.016876 0.556061 0.243286 0.043304 0.556580 0.243988 0.076782 0.557129 0.244598 0.104034 0.557861 0.245300 0.129364 0.558350 0.246002 0.152954 0.558990 0.246674 0.175232 0.559631 0.247345 0.196106 0.560120 0.248047 0.216187 0.560608 0.248718 0.235626 0.561401 0.249390 0.254944 0.561890 0.250061 0.274170 0.562561 0.250702 0.293945 0.563141 0.251404 0.314301 0.563629 0.252014 0.335907 0.564392 0.252686 0.358795 0.564911 0.253357 0.383179 0.565430 0.253967 0.409698 0.566101 0.254639 0.438568 0.566650 0.255219 0.470062 0.567108 0.255859 0.504456 0.567841 0.256500 0.541992 0.568359 0.257111 0.582703 0.568817 0.257751 0.625946 0.569519 0.258331 0.671600 0.570038 0.258942 0.719025 0.570465 0.259491 0.768066 0.571167 0.260132 0.817993 0.571655 0.260681 0.868927 0.572083 0.261230 0.915527 0.572723 0.261780 0.000000 0.593964 0.243286 0.000000 0.594666 0.243927 0.019196 0.595154 0.244598 0.045593 0.595642 0.245300 0.079163 0.596222 0.245972 0.106201 0.596863 0.246643 0.131378 0.597321 0.247314 0.154724 0.598022 0.248016 0.176758 0.598541 0.248688 0.197510 0.598999 0.249329 0.217529 0.599731 0.250031 0.236847 0.600189 0.250671 0.256165 0.600647 0.251343 0.275330 0.601196 0.251984 0.295074 0.601868 0.252686 0.315399 0.602295 0.253326 0.336884 0.602875 0.253937 0.359650 0.603485 0.254608 0.384247 0.603943 0.255219 0.410797 0.604492 0.255859 0.439636 0.605133 0.256470 0.471130 0.605591 0.257111 0.505554 0.606079 0.257751 0.542969 0.606720 0.258301 0.583618 0.607178 0.258911 0.626831 0.607574 0.259491 0.672394 0.608276 0.260101 0.719543 0.608704 0.260651 0.768372 0.609131 0.261169 0.818390 0.609680 0.261780 0.869232 0.610199 0.262329 0.915527 0.610565 0.262848 0.000000 0.635773 0.244598 0.000000 0.636200 0.245270 0.021667 0.636627 0.245972 0.049835 0.637299 0.246643 0.081604 0.637726 0.247284 0.108368 0.638184 0.247986 0.133148 0.638855 0.248657 0.156494 0.639221 0.249329 0.178253 0.639709 0.250031 0.198944 0.640381 0.250641 0.218903 0.640839 0.251343 0.238220 0.641235 0.251984 0.257324 0.641693 0.252655 0.276459 0.642365 0.253296 0.296204 0.642822 0.253906 0.316498 0.643188 0.254578 0.337921 0.643860 0.255188 0.360718 0.644287 0.255829 0.385345 0.644714 0.256439 0.411896 0.645233 0.257111 0.440552 0.645782 0.257721 0.471985 0.646179 0.258301 0.506561 0.646576 0.258911 0.544006 0.647217 0.259491 0.584625 0.647614 0.260071 0.627747 0.648041 0.260651 0.672974 0.648407 0.261169 0.720245 0.649017 0.261780 0.768890 0.649384 0.262299 0.818695 0.649750 0.262848 0.869324 0.650116 0.263397 0.915527 0.650696 0.263916 0.000000 0.679565 0.245941 0.000000 0.679962 0.246613 0.024139 0.680389 0.247284 0.053833 0.680817 0.247955 0.084045 0.681366 0.248627 0.110565 0.681763 0.249298 0.135162 0.682129 0.250000 0.158234 0.682617 0.250610 0.179932 0.683167 0.251312 0.200500 0.683472 0.251923 0.220184 0.683899 0.252625 0.239349 0.684357 0.253265 0.258484 0.684875 0.253876 0.277588 0.685211 0.254547 0.297241 0.685577 0.255188 0.317596 0.686096 0.255829 0.339020 0.686554 0.256439 0.361786 0.686920 0.257080 0.386444 0.687286 0.257690 0.412933 0.687866 0.258270 0.441528 0.688202 0.258881 0.473022 0.688568 0.259460 0.507385 0.688965 0.260071 0.545044 0.689270 0.260590 0.585541 0.689819 0.261139 0.628448 0.690186 0.261749 0.673706 0.690491 0.262268 0.720642 0.690826 0.262817 0.769348 0.691345 0.263367 0.818939 0.691681 0.263885 0.869446 0.691986 0.264404 0.915527 0.692291 0.264893 0.000000 0.724884 0.247253 0.001251 0.725220 0.247955 0.026672 0.725800 0.248596 0.058472 0.726105 0.249268 0.086395 0.726379 0.249969 0.112671 0.726746 0.250610 0.137085 0.727264 0.251282 0.159912 0.727539 0.251923 0.181396 0.727905 0.252625 0.201843 0.728241 0.253235 0.221436 0.728607 0.253876 0.240631 0.729095 0.254547 0.259644 0.729401 0.255157 0.278687 0.729675 0.255798 0.298370 0.729980 0.256409 0.318695 0.730286 0.257050 0.340088 0.730835 0.257660 0.362885 0.731171 0.258240 0.387299 0.731445 0.258850 0.413727 0.731689 0.259460 0.442627 0.732025 0.260040 0.474091 0.732513 0.260590 0.508423 0.732788 0.261139 0.545990 0.733063 0.261719 0.586212 0.733307 0.262268 0.629242 0.733582 0.262787 0.674316 0.734131 0.263336 0.721344 0.734406 0.263885 0.769714 0.734589 0.264404 0.819153 0.734863 0.264893 0.869537 0.735107 0.265411 0.915527 0.735474 0.265869 0.000000 0.771759 0.248566 0.003510 0.772034 0.249268 0.028961 0.772308 0.249939 0.060913 0.772522 0.250580 0.088745 0.772797 0.251251 0.114807 0.773010 0.251892 0.139038 0.773407 0.252563 0.161682 0.773743 0.253235 0.183014 0.773956 0.253876 0.203217 0.774231 0.254547 0.222778 0.774475 0.255157 0.241943 0.774689 0.255768 0.260803 0.775116 0.256409 0.279846 0.775421 0.257019 0.299347 0.775604 0.257599 0.319702 0.775848 0.258209 0.341156 0.776062 0.258820 0.363922 0.776306 0.259430 0.388306 0.776642 0.260010 0.414825 0.776978 0.260559 0.443665 0.777191 0.261139 0.475128 0.777374 0.261719 0.509399 0.777618 0.262238 0.546753 0.777802 0.262787 0.587128 0.778015 0.263336 0.630066 0.778229 0.263855 0.675049 0.778564 0.264374 0.721771 0.778839 0.264862 0.770020 0.779022 0.265381 0.819519 0.779205 0.265839 0.869720 0.779388 0.266357 0.915527 0.779572 0.266785 0.000000 0.819214 0.249908 0.005829 0.819397 0.250549 0.031403 0.819489 0.251251 0.063416 0.819885 0.251862 0.090973 0.820160 0.252563 0.116913 0.820282 0.253204 0.140778 0.820465 0.253845 0.163239 0.820557 0.254517 0.184540 0.820770 0.255127 0.204559 0.820892 0.255737 0.223999 0.821106 0.256378 0.242950 0.821259 0.256989 0.261932 0.821625 0.257599 0.280914 0.821808 0.258209 0.300354 0.821899 0.258820 0.320770 0.822113 0.259399 0.342194 0.822266 0.260010 0.364929 0.822388 0.260529 0.389313 0.822540 0.261108 0.415863 0.822693 0.261688 0.444672 0.822815 0.262207 0.476105 0.823120 0.262787 0.510376 0.823364 0.263306 0.547668 0.823456 0.263824 0.588074 0.823608 0.264374 0.630646 0.823792 0.264832 0.675568 0.823883 0.265381 0.722260 0.824036 0.265839 0.770538 0.824127 0.266327 0.819885 0.824249 0.266785 0.869781 0.824402 0.267242 0.915527 0.824463 0.267700 0.000000 0.867310 0.251221 0.008118 0.867401 0.251862 0.033813 0.867493 0.252533 0.066040 0.867554 0.253204 0.093292 0.867645 0.253815 0.118774 0.867737 0.254486 0.142670 0.867798 0.255096 0.165009 0.867981 0.255737 0.185944 0.868103 0.256348 0.205902 0.868286 0.256989 0.225220 0.868378 0.257568 0.244232 0.868439 0.258179 0.263062 0.868530 0.258820 0.281982 0.868622 0.259399 0.301422 0.868713 0.259979 0.321564 0.868744 0.260529 0.343140 0.868835 0.261108 0.365967 0.868896 0.261658 0.390381 0.868988 0.262207 0.416840 0.869110 0.262787 0.445648 0.869110 0.263275 0.476898 0.869202 0.263824 0.511139 0.869263 0.264343 0.548584 0.869293 0.264832 0.588684 0.869385 0.265350 0.631500 0.869446 0.265808 0.676331 0.869568 0.266327 0.722900 0.869720 0.266785 0.770844 0.869781 0.267212 0.820068 0.869934 0.267700 0.869873 0.869995 0.268097 0.915527 0.870087 0.268494 0.000000 0.915527 0.252533 0.010468 0.915527 0.253174 0.036163 0.915527 0.253815 0.068420 0.915527 0.254456 0.095490 0.915527 0.255096 0.120789 0.915527 0.255707 0.144409 0.915527 0.256348 0.166534 0.915527 0.256958 0.187347 0.915527 0.257538 0.207367 0.915527 0.258179 0.226440 0.915527 0.258759 0.245422 0.915527 0.259369 0.264130 0.915527 0.259949 0.283051 0.915527 0.260498 0.302368 0.915527 0.261078 0.322601 0.915527 0.261658 0.343994 0.915527 0.262177 0.366791 0.915527 0.262756 0.391327 0.915527 0.263275 0.417755 0.915527 0.263794 0.446411 0.915527 0.264313 0.477814 0.915527 0.264801 0.512085 0.915527 0.265320 0.549561 0.915527 0.265808 0.589539 0.915527 0.266327 0.632050 0.915527 0.266754 0.676758 0.915527 0.267212 0.723236 0.915527 0.267700 0.771179 0.915527 0.268066 0.820221 0.915527 0.268463 0.869995 0.915527 0.268921 0.915527 0.915527 0.269318 0.000000 0.000000 0.245117 0.000000 0.000000 0.245392 0.000000 0.000000 0.245667 0.000061 0.000000 0.246033 0.026215 0.000000 0.246368 0.059509 0.000000 0.246704 0.088776 0.000000 0.247101 0.116211 0.000000 0.247437 0.141724 0.000000 0.247833 0.165527 0.000000 0.248230 0.188019 0.000000 0.248627 0.209351 0.000000 0.249084 0.230103 0.000000 0.249481 0.250458 0.000000 0.249939 0.270721 0.000000 0.250397 0.291565 0.000000 0.250854 0.313080 0.000000 0.251312 0.335907 0.000000 0.251770 0.360260 0.000000 0.252289 0.386566 0.000000 0.252808 0.415253 0.000000 0.253296 0.446594 0.000000 0.253815 0.481171 0.000000 0.254333 0.519257 0.000000 0.254852 0.561127 0.000000 0.255432 0.606110 0.000000 0.255951 0.654114 0.000000 0.256500 0.704376 0.000000 0.257050 0.756714 0.000000 0.257599 0.810272 0.000000 0.258179 0.864990 0.000000 0.258728 0.915527 0.000000 0.259338 0.000000 0.000000 0.245667 0.000000 0.000000 0.246033 0.000000 0.000000 0.246338 0.001038 0.000000 0.246704 0.027527 0.000000 0.247070 0.060791 0.000000 0.247406 0.089996 0.000000 0.247833 0.117371 0.000000 0.248230 0.142822 0.000000 0.248596 0.166565 0.000000 0.249054 0.188995 0.000000 0.249451 0.210205 0.000000 0.249908 0.230896 0.000000 0.250397 0.251282 0.000000 0.250824 0.271576 0.000000 0.251312 0.292419 0.000000 0.251770 0.313934 0.000336 0.252258 0.336670 0.001343 0.252777 0.360992 0.002502 0.253296 0.387238 0.003510 0.253784 0.415955 0.004730 0.254333 0.447388 0.005951 0.254852 0.482117 0.007294 0.255402 0.520172 0.008514 0.255920 0.562012 0.009796 0.256470 0.606934 0.011108 0.257050 0.654785 0.012451 0.257568 0.705139 0.013763 0.258179 0.757080 0.015167 0.258728 0.810608 0.016510 0.259308 0.865295 0.017883 0.259857 0.915527 0.019501 0.260468 0.000000 0.012756 0.246338 0.000000 0.013641 0.246674 0.000000 0.014465 0.247070 0.002167 0.015228 0.247406 0.028809 0.016144 0.247833 0.062195 0.017090 0.248230 0.091278 0.017944 0.248596 0.118530 0.018890 0.249054 0.143982 0.019928 0.249451 0.167633 0.020966 0.249908 0.190033 0.022003 0.250366 0.211182 0.023041 0.250793 0.231842 0.024078 0.251282 0.252014 0.025177 0.251770 0.272430 0.026398 0.252258 0.293060 0.027527 0.252777 0.314758 0.028748 0.253265 0.337555 0.029968 0.253784 0.361786 0.031219 0.254303 0.388153 0.032410 0.254822 0.416901 0.033752 0.255402 0.448364 0.035004 0.255890 0.482819 0.036255 0.256439 0.521088 0.037659 0.257019 0.562714 0.038940 0.257538 0.607819 0.040283 0.258148 0.655487 0.041687 0.258698 0.705566 0.043030 0.259277 0.757568 0.044403 0.259827 0.811096 0.045868 0.260468 0.865479 0.048401 0.261047 0.915527 0.050873 0.261627 0.000000 0.041809 0.247040 0.000000 0.042725 0.247406 0.000000 0.043427 0.247803 0.003479 0.044403 0.248199 0.030273 0.045380 0.248596 0.063812 0.046997 0.249023 0.092834 0.048401 0.249451 0.119812 0.050201 0.249878 0.145142 0.052094 0.250336 0.168732 0.054016 0.250793 0.190857 0.055817 0.251251 0.212189 0.057922 0.251770 0.232758 0.059448 0.252228 0.252899 0.060669 0.252747 0.273132 0.061951 0.253235 0.293976 0.063232 0.253784 0.315491 0.064453 0.254272 0.338348 0.065796 0.254822 0.362732 0.067108 0.255371 0.389099 0.068512 0.255859 0.417877 0.069946 0.256439 0.449280 0.071289 0.256989 0.483795 0.072723 0.257538 0.521912 0.074188 0.258148 0.563629 0.075623 0.258667 0.608521 0.077087 0.259247 0.656342 0.078552 0.259827 0.706360 0.080017 0.260437 0.758118 0.081482 0.261047 0.811371 0.082947 0.261597 0.865601 0.084473 0.262177 0.915527 0.085999 0.262817 0.000000 0.078644 0.247803 0.000000 0.079620 0.248199 0.000000 0.080475 0.248566 0.004761 0.081543 0.249023 0.031677 0.082611 0.249420 0.065338 0.083496 0.249878 0.094238 0.084625 0.250336 0.121368 0.085754 0.250763 0.146362 0.086670 0.251251 0.169861 0.087860 0.251740 0.191925 0.089081 0.252197 0.213196 0.090271 0.252716 0.233673 0.091309 0.253235 0.253876 0.092560 0.253754 0.274078 0.093811 0.254272 0.294891 0.095032 0.254791 0.316406 0.096344 0.255310 0.339172 0.097595 0.255859 0.363647 0.098755 0.256409 0.390076 0.100067 0.256989 0.418640 0.101410 0.257507 0.450073 0.102722 0.258118 0.484802 0.104126 0.258667 0.522919 0.105469 0.259247 0.564606 0.106781 0.259827 0.609436 0.108093 0.260406 0.656891 0.109406 0.261017 0.706818 0.110779 0.261597 0.758545 0.112152 0.262177 0.811615 0.113586 0.262787 0.865784 0.114960 0.263397 0.915527 0.116394 0.264038 0.000000 0.109528 0.248566 0.000000 0.110565 0.248993 0.000000 0.111511 0.249420 0.006256 0.112366 0.249878 0.033264 0.113373 0.250305 0.067047 0.114441 0.250763 0.095856 0.115326 0.251251 0.122742 0.116394 0.251709 0.147614 0.117432 0.252197 0.171051 0.118469 0.252716 0.193024 0.119537 0.253204 0.214203 0.120728 0.253723 0.234589 0.121704 0.254272 0.254852 0.122864 0.254761 0.275024 0.124054 0.255310 0.295746 0.125244 0.255859 0.317383 0.126251 0.256409 0.340149 0.127502 0.256958 0.364471 0.128662 0.257507 0.390808 0.129974 0.258087 0.419586 0.131012 0.258636 0.451080 0.132263 0.259216 0.485809 0.133514 0.259796 0.523865 0.134796 0.260406 0.565552 0.136017 0.260986 0.610291 0.137115 0.261566 0.657776 0.138397 0.262146 0.707581 0.139679 0.262787 0.759125 0.140961 0.263367 0.812012 0.142151 0.263977 0.865906 0.143311 0.264557 0.915527 0.144653 0.265198 0.000000 0.138672 0.249390 0.000000 0.139587 0.249878 0.000000 0.140442 0.250305 0.007843 0.141327 0.250732 0.034943 0.142273 0.251221 0.068756 0.143127 0.251709 0.097473 0.144104 0.252197 0.124115 0.144989 0.252686 0.149017 0.145966 0.253204 0.172241 0.147064 0.253723 0.194153 0.147888 0.254211 0.215302 0.148987 0.254761 0.235596 0.150085 0.255280 0.255737 0.150970 0.255829 0.276001 0.152069 0.256409 0.296600 0.153137 0.256927 0.318298 0.154083 0.257507 0.341125 0.155243 0.258087 0.365387 0.156342 0.258606 0.391815 0.157318 0.259186 0.420624 0.158447 0.259796 0.452087 0.159576 0.260406 0.486755 0.160614 0.260986 0.524811 0.161713 0.261566 0.566315 0.162872 0.262115 0.610992 0.164001 0.262756 0.658386 0.165009 0.263336 0.708099 0.166199 0.263977 0.759583 0.167358 0.264526 0.812439 0.168335 0.265137 0.866028 0.169525 0.265778 0.915527 0.170715 0.266418 0.000000 0.165710 0.250275 0.000000 0.166351 0.250732 0.000000 0.167267 0.251190 0.009491 0.167969 0.251709 0.036652 0.168884 0.252197 0.070557 0.169617 0.252686 0.099121 0.170593 0.253204 0.125763 0.171326 0.253693 0.150452 0.172302 0.254211 0.173462 0.173218 0.254730 0.195312 0.174103 0.255249 0.216431 0.175110 0.255829 0.236633 0.175873 0.256378 0.256622 0.176941 0.256927 0.276978 0.177765 0.257477 0.297577 0.178741 0.258057 0.319092 0.179810 0.258606 0.342072 0.180634 0.259186 0.366394 0.181702 0.259766 0.392822 0.182617 0.260376 0.421661 0.183594 0.260956 0.453125 0.184692 0.261505 0.487640 0.185547 0.262115 0.525696 0.186584 0.262726 0.567322 0.187683 0.263336 0.611969 0.188538 0.263947 0.659241 0.189636 0.264496 0.708862 0.190582 0.265137 0.760132 0.191589 0.265778 0.812683 0.192657 0.266388 0.866241 0.193604 0.266968 0.915527 0.194641 0.267639 0.000000 0.190308 0.251190 0.000000 0.191162 0.251678 0.000000 0.191772 0.252167 0.011200 0.192657 0.252655 0.038452 0.193298 0.253174 0.072449 0.194183 0.253693 0.100830 0.194885 0.254181 0.127228 0.195770 0.254700 0.151825 0.196503 0.255249 0.174774 0.197418 0.255798 0.196533 0.198120 0.256348 0.217377 0.199097 0.256897 0.237671 0.199890 0.257446 0.257660 0.200745 0.258026 0.277832 0.201569 0.258575 0.298584 0.202454 0.259155 0.320099 0.203400 0.259735 0.342957 0.204193 0.260376 0.367462 0.205170 0.260925 0.393860 0.205933 0.261505 0.422699 0.206940 0.262115 0.454163 0.207703 0.262726 0.488708 0.208679 0.263306 0.526733 0.209656 0.263916 0.568359 0.210449 0.264496 0.612854 0.211487 0.265106 0.660095 0.212250 0.265747 0.709381 0.213257 0.266388 0.760620 0.214050 0.266968 0.813110 0.215027 0.267578 0.866547 0.216064 0.268158 0.915527 0.216827 0.268768 0.000000 0.213440 0.252167 0.000000 0.213989 0.252625 0.000000 0.214813 0.253174 0.013031 0.215454 0.253662 0.040253 0.216248 0.254181 0.074463 0.216858 0.254700 0.102661 0.217743 0.255219 0.128876 0.218353 0.255798 0.153229 0.219147 0.256317 0.176056 0.219879 0.256866 0.197876 0.220673 0.257446 0.218567 0.221436 0.257996 0.238770 0.222260 0.258545 0.258728 0.222961 0.259155 0.278839 0.223694 0.259735 0.299591 0.224548 0.260345 0.321136 0.225372 0.260895 0.343933 0.226166 0.261475 0.368469 0.227051 0.262115 0.394928 0.227783 0.262695 0.423676 0.228729 0.263275 0.455231 0.229401 0.263885 0.489746 0.230255 0.264496 0.527740 0.231049 0.265106 0.569336 0.232025 0.265717 0.613739 0.232727 0.266357 0.660736 0.233673 0.266937 0.710175 0.234344 0.267578 0.761017 0.235352 0.268158 0.813477 0.235992 0.268768 0.866699 0.236969 0.269409 0.915527 0.237671 0.269989 0.000000 0.235016 0.253143 0.000000 0.235657 0.253632 0.000000 0.236267 0.254150 0.015045 0.237030 0.254669 0.042053 0.237610 0.255188 0.076477 0.238403 0.255768 0.104309 0.238983 0.256317 0.130493 0.239716 0.256866 0.154724 0.240387 0.257416 0.177582 0.240997 0.257965 0.199066 0.241821 0.258514 0.219818 0.242462 0.259155 0.239899 0.243286 0.259735 0.259827 0.243927 0.260315 0.279907 0.244751 0.260895 0.300629 0.245422 0.261475 0.322174 0.246094 0.262085 0.344971 0.246918 0.262695 0.369507 0.247589 0.263245 0.395905 0.248413 0.263885 0.424683 0.249084 0.264465 0.456085 0.249908 0.265106 0.490814 0.250641 0.265717 0.528870 0.251495 0.266327 0.570129 0.252136 0.266907 0.614563 0.253052 0.267548 0.661591 0.253662 0.268127 0.710663 0.254578 0.268768 0.761658 0.255249 0.269379 0.813782 0.256134 0.269958 0.866821 0.256805 0.270599 0.915527 0.257629 0.271179 0.000000 0.255585 0.254150 0.000000 0.256256 0.254669 0.000000 0.256805 0.255188 0.016937 0.257416 0.255768 0.044098 0.258087 0.256287 0.078339 0.258667 0.256836 0.106201 0.259430 0.257385 0.132141 0.259949 0.257965 0.156250 0.260803 0.258514 0.178925 0.261322 0.259125 0.200409 0.261902 0.259705 0.220856 0.262726 0.260284 0.240997 0.263275 0.260864 0.260895 0.264099 0.261475 0.280975 0.264709 0.262085 0.301666 0.265350 0.262665 0.323212 0.266113 0.263245 0.346039 0.266754 0.263855 0.370453 0.267517 0.264435 0.396912 0.268127 0.265076 0.425659 0.268982 0.265686 0.457214 0.269623 0.266296 0.491852 0.270386 0.266907 0.529907 0.271057 0.267517 0.571167 0.271759 0.268097 0.615540 0.272491 0.268738 0.662415 0.273102 0.269348 0.711456 0.273987 0.269928 0.762085 0.274597 0.270569 0.814056 0.275391 0.271149 0.867004 0.276031 0.271790 0.915527 0.276917 0.272400 0.000000 0.275604 0.255188 0.000000 0.276062 0.255707 0.000000 0.276672 0.256287 0.018951 0.277344 0.256836 0.046387 0.277832 0.257385 0.080414 0.278595 0.257935 0.108154 0.279083 0.258484 0.133850 0.279663 0.259094 0.157715 0.280426 0.259674 0.180298 0.280945 0.260254 0.201660 0.281647 0.260834 0.222137 0.282288 0.261444 0.242157 0.282837 0.262054 0.262024 0.283630 0.262634 0.282043 0.284180 0.263214 0.302521 0.284821 0.263824 0.324280 0.285553 0.264435 0.347076 0.286102 0.265045 0.371429 0.286926 0.265656 0.397919 0.287476 0.266296 0.426788 0.288269 0.266876 0.458282 0.288879 0.267517 0.492859 0.289581 0.268097 0.530762 0.290253 0.268707 0.572174 0.290863 0.269318 0.616486 0.291626 0.269928 0.663147 0.292236 0.270538 0.712006 0.293030 0.271149 0.762604 0.293610 0.271759 0.814392 0.294250 0.272400 0.867126 0.295044 0.273010 0.915527 0.295624 0.273590 0.000000 0.295197 0.256256 0.000000 0.295654 0.256836 0.000000 0.296356 0.257355 0.021088 0.296875 0.257935 0.049927 0.297363 0.258484 0.082458 0.298126 0.259094 0.109985 0.298615 0.259644 0.135620 0.299194 0.260254 0.159424 0.299866 0.260834 0.181702 0.300415 0.261444 0.202942 0.301178 0.262024 0.223419 0.301697 0.262604 0.243317 0.302216 0.263214 0.263123 0.302979 0.263824 0.283112 0.303528 0.264435 0.303619 0.304138 0.265045 0.325134 0.304871 0.265625 0.348145 0.305420 0.266266 0.372528 0.306183 0.266876 0.399017 0.306793 0.267487 0.427856 0.307281 0.268066 0.459381 0.308075 0.268707 0.493927 0.308655 0.269318 0.531830 0.309418 0.269897 0.573242 0.310028 0.270538 0.617249 0.310669 0.271118 0.664001 0.311340 0.271759 0.712769 0.311920 0.272369 0.763184 0.312714 0.272980 0.814880 0.313263 0.273560 0.867310 0.313904 0.274139 0.915527 0.314636 0.274750 0.000000 0.314880 0.257355 0.000000 0.315338 0.257904 0.000000 0.316071 0.258484 0.023163 0.316528 0.259094 0.053558 0.317139 0.259644 0.084656 0.317719 0.260223 0.111877 0.318237 0.260803 0.137299 0.318787 0.261444 0.160950 0.319458 0.261993 0.183197 0.320007 0.262573 0.204254 0.320740 0.263214 0.224609 0.321259 0.263794 0.244476 0.321777 0.264404 0.264221 0.322540 0.265015 0.284241 0.323090 0.265594 0.304688 0.323822 0.266235 0.326233 0.324341 0.266846 0.349182 0.324921 0.267426 0.373596 0.325684 0.268066 0.400116 0.326233 0.268677 0.428986 0.326843 0.269287 0.460480 0.327576 0.269867 0.494995 0.328125 0.270508 0.532959 0.328888 0.271088 0.574158 0.329407 0.271729 0.618164 0.329956 0.272339 0.664917 0.330750 0.272919 0.713318 0.331299 0.273529 0.763580 0.332031 0.274109 0.815155 0.332581 0.274719 0.867462 0.333160 0.275330 0.915527 0.333893 0.275879 0.000000 0.335114 0.258453 0.000000 0.335663 0.259064 0.000000 0.336151 0.259613 0.025299 0.336578 0.260193 0.057465 0.337311 0.260803 0.086761 0.337860 0.261414 0.113861 0.338501 0.261963 0.139099 0.339050 0.262573 0.162445 0.339569 0.263184 0.184631 0.340302 0.263794 0.205536 0.340851 0.264404 0.225861 0.341309 0.264984 0.245636 0.342102 0.265594 0.265320 0.342590 0.266235 0.285339 0.343170 0.266815 0.305817 0.343842 0.267426 0.327301 0.344421 0.268036 0.350189 0.345154 0.268646 0.374756 0.345703 0.269257 0.401184 0.346252 0.269867 0.430054 0.347015 0.270477 0.461609 0.347565 0.271088 0.496094 0.348175 0.271729 0.533997 0.348877 0.272308 0.575073 0.349426 0.272919 0.619171 0.350128 0.273499 0.665527 0.350708 0.274078 0.714111 0.351318 0.274689 0.764252 0.351990 0.275299 0.815430 0.352539 0.275879 0.867615 0.353241 0.276489 0.915527 0.353851 0.277039 0.000000 0.356018 0.259613 0.000000 0.356689 0.260193 0.001434 0.357178 0.260773 0.027527 0.357666 0.261383 0.060272 0.358368 0.261963 0.088959 0.358887 0.262573 0.115875 0.359375 0.263153 0.140747 0.360138 0.263763 0.164185 0.360657 0.264374 0.186005 0.361267 0.264923 0.206879 0.361877 0.265594 0.227081 0.362396 0.266205 0.246826 0.363190 0.266785 0.266510 0.363678 0.267426 0.286438 0.364227 0.268005 0.306915 0.364960 0.268616 0.328430 0.365479 0.269226 0.351318 0.366028 0.269836 0.375854 0.366791 0.270477 0.402344 0.367340 0.271088 0.431183 0.368073 0.271698 0.462738 0.368622 0.272308 0.497192 0.369171 0.272888 0.535095 0.369934 0.273499 0.576141 0.370453 0.274078 0.620117 0.370972 0.274689 0.666412 0.371765 0.275269 0.714630 0.372284 0.275848 0.764648 0.373047 0.276459 0.815887 0.373596 0.277008 0.867920 0.374146 0.277649 0.915527 0.374908 0.278198 0.000000 0.378296 0.260742 0.000000 0.378784 0.261353 0.003540 0.379456 0.261932 0.029724 0.379974 0.262543 0.062683 0.380493 0.263123 0.091156 0.381165 0.263763 0.117859 0.381714 0.264343 0.142639 0.382233 0.264923 0.165680 0.382996 0.265594 0.187408 0.383484 0.266174 0.208374 0.384033 0.266785 0.228333 0.384766 0.267365 0.247986 0.385284 0.268005 0.267700 0.386047 0.268616 0.287415 0.386536 0.269226 0.308014 0.387146 0.269836 0.329529 0.387848 0.270447 0.352295 0.388397 0.271057 0.376923 0.388916 0.271698 0.403381 0.389740 0.272278 0.432281 0.390198 0.272858 0.463623 0.390961 0.273468 0.498322 0.391510 0.274048 0.536194 0.392090 0.274689 0.577148 0.392822 0.275269 0.620850 0.393372 0.275818 0.667114 0.393890 0.276428 0.715424 0.394684 0.277008 0.765289 0.395203 0.277618 0.816193 0.395874 0.278198 0.868103 0.396454 0.278748 0.915527 0.396973 0.279327 0.000000 0.401917 0.261902 0.000000 0.402649 0.262512 0.005646 0.403107 0.263123 0.032135 0.403656 0.263733 0.065125 0.404358 0.264313 0.093353 0.404907 0.264923 0.119720 0.405365 0.265533 0.144318 0.406158 0.266144 0.167389 0.406677 0.266754 0.189026 0.407318 0.267365 0.209686 0.407959 0.267975 0.229584 0.408447 0.268585 0.249207 0.409241 0.269226 0.268738 0.409760 0.269806 0.288544 0.410309 0.270416 0.309113 0.411041 0.271027 0.330627 0.411591 0.271667 0.353424 0.412170 0.272247 0.378082 0.412903 0.272827 0.404541 0.413422 0.273438 0.433289 0.414185 0.274048 0.464722 0.414734 0.274689 0.499359 0.415253 0.275238 0.537292 0.416016 0.275818 0.578186 0.416595 0.276428 0.621826 0.417175 0.277008 0.667938 0.417877 0.277588 0.715973 0.418427 0.278168 0.765717 0.419128 0.278717 0.816498 0.419678 0.279297 0.868225 0.420227 0.279846 0.915527 0.420929 0.280396 0.000000 0.427612 0.263123 0.000000 0.428131 0.263702 0.007874 0.428619 0.264313 0.034332 0.429382 0.264893 0.067474 0.429871 0.265533 0.095520 0.430603 0.266144 0.121765 0.431152 0.266754 0.146179 0.431671 0.267334 0.168945 0.432465 0.267944 0.190460 0.432953 0.268555 0.210999 0.433502 0.269196 0.230804 0.434265 0.269775 0.250397 0.434784 0.270386 0.269897 0.435455 0.271027 0.289612 0.436096 0.271637 0.310211 0.436646 0.272217 0.331757 0.437408 0.272827 0.354523 0.437958 0.273438 0.379028 0.438446 0.274048 0.405701 0.439240 0.274689 0.434326 0.439758 0.275208 0.465820 0.440399 0.275787 0.500549 0.441071 0.276367 0.538116 0.441620 0.276978 0.579163 0.442413 0.277588 0.622803 0.442932 0.278137 0.668793 0.443420 0.278687 0.716644 0.444214 0.279297 0.766113 0.444733 0.279846 0.816833 0.445312 0.280365 0.868408 0.446045 0.280975 0.915527 0.446533 0.281464 0.000000 0.455261 0.264282 0.000000 0.455994 0.264893 0.010193 0.456512 0.265503 0.036713 0.457153 0.266113 0.069916 0.457764 0.266754 0.097717 0.458282 0.267334 0.123810 0.459045 0.267944 0.147980 0.459595 0.268555 0.170654 0.460175 0.269165 0.191895 0.460907 0.269745 0.212372 0.461426 0.270386 0.232056 0.461975 0.270966 0.251556 0.462708 0.271637 0.271088 0.463257 0.272217 0.290802 0.464020 0.272797 0.311371 0.464569 0.273438 0.332855 0.465149 0.274048 0.355652 0.465851 0.274658 0.380127 0.466400 0.275208 0.406555 0.466888 0.275757 0.435425 0.467712 0.276367 0.466919 0.468231 0.276978 0.501526 0.468994 0.277557 0.539154 0.469513 0.278107 0.580017 0.470032 0.278687 0.623627 0.470825 0.279266 0.669434 0.471313 0.279846 0.717194 0.472046 0.280365 0.766754 0.472595 0.280945 0.817261 0.473145 0.281464 0.868469 0.473755 0.282013 0.915527 0.474365 0.282562 0.000000 0.485748 0.265472 0.000000 0.486267 0.266083 0.012573 0.486755 0.266724 0.038971 0.487518 0.267303 0.072388 0.488068 0.267944 0.099976 0.488739 0.268494 0.125824 0.489349 0.269135 0.149719 0.489868 0.269745 0.172180 0.490570 0.270355 0.193512 0.491150 0.270966 0.213654 0.491699 0.271606 0.233307 0.492462 0.272186 0.252777 0.493011 0.272797 0.272308 0.493622 0.273407 0.291901 0.494324 0.274017 0.312469 0.494843 0.274628 0.333954 0.495636 0.275177 0.356720 0.496124 0.275726 0.381134 0.496674 0.276367 0.407684 0.497406 0.276978 0.436554 0.497986 0.277527 0.468079 0.498474 0.278107 0.502472 0.499268 0.278687 0.540253 0.499756 0.279236 0.580963 0.500488 0.279816 0.624420 0.501007 0.280334 0.670258 0.501556 0.280914 0.717957 0.502228 0.281464 0.767120 0.502808 0.281982 0.817535 0.503296 0.282532 0.868652 0.504028 0.283295 0.915527 0.504578 0.283844 0.000000 0.518890 0.266693 0.000000 0.519440 0.267303 0.014954 0.519958 0.267914 0.041382 0.520752 0.268494 0.074799 0.521240 0.269135 0.102112 0.521790 0.269714 0.127777 0.522491 0.270355 0.151611 0.523041 0.270935 0.173767 0.523621 0.271545 0.194916 0.524323 0.272156 0.215118 0.524841 0.272766 0.234650 0.525421 0.273376 0.253967 0.526123 0.273987 0.273315 0.526672 0.274597 0.292969 0.527405 0.275146 0.313568 0.527924 0.275726 0.335052 0.528442 0.276367 0.357819 0.529205 0.276947 0.382233 0.529755 0.277527 0.408722 0.530396 0.278076 0.437622 0.531036 0.278656 0.469177 0.531555 0.279236 0.503571 0.532043 0.279785 0.541321 0.532837 0.280334 0.582001 0.533295 0.280914 0.625336 0.533936 0.281433 0.670990 0.534515 0.281982 0.718445 0.535034 0.282501 0.767578 0.535736 0.283264 0.817810 0.536255 0.283813 0.868774 0.536743 0.284302 0.915527 0.537323 0.284821 0.000000 0.554993 0.267883 0.000000 0.555573 0.268463 0.017242 0.556244 0.269104 0.043640 0.556763 0.269714 0.077148 0.557434 0.270325 0.104309 0.558044 0.270905 0.129700 0.558533 0.271515 0.153259 0.559296 0.272125 0.175446 0.559784 0.272736 0.196320 0.560303 0.273376 0.216492 0.561066 0.273987 0.235779 0.561554 0.274567 0.255188 0.562073 0.275116 0.274475 0.562805 0.275696 0.294128 0.563324 0.276367 0.314545 0.563812 0.276917 0.336151 0.564545 0.277466 0.358948 0.565094 0.278046 0.383362 0.565582 0.278656 0.409882 0.566284 0.279205 0.438721 0.566803 0.279755 0.470215 0.567261 0.280304 0.504608 0.568024 0.280884 0.542328 0.568481 0.281403 0.582977 0.569092 0.281982 0.626129 0.569702 0.282501 0.671692 0.570190 0.283264 0.719116 0.570770 0.283783 0.768097 0.571350 0.284302 0.818054 0.571808 0.284790 0.869080 0.572205 0.285278 0.915527 0.572937 0.285797 0.000000 0.594147 0.269073 0.000000 0.594879 0.269684 0.019714 0.595367 0.270294 0.046417 0.595825 0.270905 0.079742 0.596527 0.271515 0.106567 0.597046 0.272095 0.131683 0.597534 0.272736 0.155060 0.598206 0.273376 0.176971 0.598663 0.273926 0.197937 0.599213 0.274567 0.217804 0.599854 0.275116 0.237213 0.600372 0.275696 0.256348 0.600861 0.276337 0.275635 0.601501 0.276886 0.295227 0.602020 0.277466 0.315613 0.602509 0.278046 0.337067 0.603210 0.278625 0.359924 0.603668 0.279205 0.384430 0.604156 0.279755 0.410950 0.604828 0.280273 0.439819 0.605255 0.280884 0.471283 0.605774 0.281403 0.505646 0.606384 0.281952 0.543213 0.606842 0.282501 0.583801 0.607330 0.283234 0.626953 0.607788 0.283752 0.672546 0.608459 0.284302 0.719666 0.608826 0.284760 0.768463 0.609283 0.285278 0.818481 0.609924 0.285767 0.869232 0.610382 0.286255 0.915527 0.610748 0.286713 0.000000 0.635925 0.270294 0.000000 0.636353 0.270905 0.022186 0.636902 0.271484 0.050415 0.637451 0.272095 0.082123 0.637909 0.272705 0.108673 0.638428 0.273346 0.133667 0.639008 0.273926 0.156799 0.639465 0.274536 0.178680 0.639862 0.275085 0.199341 0.640533 0.275696 0.219116 0.640961 0.276306 0.238495 0.641418 0.276886 0.257507 0.641998 0.277435 0.276642 0.642517 0.278015 0.296356 0.642914 0.278625 0.316681 0.643372 0.279175 0.338104 0.644043 0.279724 0.360931 0.644440 0.280273 0.385529 0.644897 0.280884 0.412018 0.645508 0.281372 0.440887 0.645905 0.281921 0.472321 0.646332 0.282501 0.506744 0.646820 0.283203 0.544189 0.647400 0.283752 0.584686 0.647766 0.284271 0.627838 0.648163 0.284760 0.673065 0.648621 0.285278 0.720306 0.649139 0.285736 0.769073 0.649475 0.286255 0.818756 0.649902 0.286713 0.869385 0.650391 0.287170 0.915527 0.650848 0.287659 0.000000 0.679718 0.271454 0.000000 0.680145 0.272064 0.024506 0.680511 0.272705 0.054840 0.681122 0.273315 0.084473 0.681488 0.273895 0.110840 0.681885 0.274506 0.135620 0.682251 0.275085 0.158569 0.682892 0.275696 0.180145 0.683258 0.276276 0.200714 0.683655 0.276855 0.220398 0.684021 0.277405 0.239655 0.684601 0.278015 0.258698 0.684967 0.278595 0.277740 0.685364 0.279144 0.297424 0.685760 0.279694 0.317749 0.686340 0.280243 0.339172 0.686707 0.280853 0.362030 0.687103 0.281342 0.386597 0.687408 0.281921 0.413086 0.688019 0.282440 0.441864 0.688354 0.283203 0.473206 0.688690 0.283722 0.507599 0.689087 0.284271 0.545197 0.689453 0.284729 0.585632 0.689972 0.285248 0.628754 0.690308 0.285736 0.673859 0.690674 0.286224 0.720734 0.690918 0.286682 0.769440 0.691498 0.287140 0.819000 0.691803 0.287628 0.869446 0.692139 0.288086 0.915527 0.692444 0.288513 0.000000 0.725006 0.272675 0.001648 0.725525 0.273285 0.027008 0.725891 0.273865 0.058899 0.726227 0.274475 0.086792 0.726532 0.275055 0.112976 0.726868 0.275665 0.137421 0.727417 0.276276 0.160248 0.727722 0.276825 0.181702 0.727997 0.277405 0.202087 0.728333 0.278015 0.221649 0.728821 0.278564 0.240906 0.729187 0.279114 0.259827 0.729523 0.279694 0.278870 0.729797 0.280243 0.298523 0.730133 0.280823 0.318848 0.730499 0.281342 0.340210 0.730896 0.281891 0.363037 0.731232 0.282440 0.387634 0.731506 0.283173 0.414062 0.731842 0.283722 0.442810 0.732208 0.284241 0.474213 0.732605 0.284729 0.508575 0.732849 0.285217 0.546143 0.733154 0.285736 0.586365 0.733459 0.286194 0.629333 0.733826 0.286682 0.674408 0.734222 0.287140 0.721405 0.734467 0.287598 0.769775 0.734772 0.288055 0.819214 0.734955 0.288513 0.869629 0.735168 0.288910 0.915527 0.735657 0.289368 0.000000 0.771912 0.273865 0.003876 0.772125 0.274475 0.029449 0.772400 0.275024 0.061432 0.772614 0.275635 0.089142 0.772858 0.276245 0.115143 0.773102 0.276794 0.139374 0.773590 0.277374 0.161926 0.773834 0.277985 0.183289 0.774048 0.278564 0.203400 0.774323 0.279114 0.222992 0.774536 0.279663 0.242096 0.774811 0.280243 0.260986 0.775238 0.280792 0.279968 0.775452 0.281311 0.299591 0.775696 0.281860 0.319855 0.775940 0.282410 0.341278 0.776154 0.283142 0.364075 0.776398 0.283691 0.388519 0.776825 0.284210 0.414948 0.777008 0.284729 0.443787 0.777222 0.285217 0.475220 0.777496 0.285706 0.509552 0.777710 0.286194 0.547058 0.777863 0.286652 0.587250 0.778107 0.287109 0.630219 0.778259 0.287598 0.675171 0.778748 0.288055 0.721893 0.778900 0.288513 0.770081 0.779114 0.288910 0.819580 0.779297 0.289368 0.869720 0.779480 0.289795 0.915527 0.779663 0.290192 0.000000 0.819244 0.275024 0.006195 0.819427 0.275604 0.031860 0.819641 0.276215 0.063995 0.819946 0.276794 0.091492 0.820190 0.277374 0.117188 0.820312 0.277954 0.141144 0.820496 0.278534 0.163544 0.820679 0.279083 0.184723 0.820831 0.279663 0.204956 0.820984 0.280212 0.224152 0.821136 0.280762 0.243286 0.821472 0.281311 0.262115 0.821716 0.281860 0.281067 0.821808 0.282410 0.300659 0.822021 0.283142 0.320923 0.822144 0.283661 0.342346 0.822296 0.284210 0.365051 0.822479 0.284698 0.389496 0.822601 0.285187 0.415985 0.822754 0.285706 0.444824 0.822906 0.286163 0.476227 0.823151 0.286621 0.510559 0.823395 0.287109 0.547821 0.823517 0.287598 0.588196 0.823700 0.288025 0.630798 0.823792 0.288483 0.675659 0.823944 0.288910 0.722473 0.824066 0.289337 0.770630 0.824158 0.289764 0.819885 0.824310 0.290192 0.869781 0.824463 0.290558 0.915527 0.824554 0.290985 0.000000 0.867371 0.276184 0.008606 0.867401 0.276764 0.034241 0.867493 0.277344 0.066406 0.867584 0.277954 0.093842 0.867676 0.278503 0.119263 0.867767 0.279053 0.142975 0.867920 0.279663 0.165253 0.867981 0.280182 0.186127 0.868164 0.280762 0.206268 0.868347 0.281311 0.225464 0.868378 0.281830 0.244446 0.868469 0.282379 0.263184 0.868561 0.283112 0.282135 0.868622 0.283630 0.301666 0.868713 0.284180 0.321899 0.868774 0.284668 0.343384 0.868835 0.285156 0.366119 0.868958 0.285675 0.390472 0.868988 0.286133 0.416962 0.869110 0.286621 0.445831 0.869110 0.287109 0.477173 0.869202 0.287567 0.511383 0.869263 0.288025 0.548767 0.869354 0.288483 0.588989 0.869385 0.288910 0.631622 0.869446 0.289337 0.676392 0.869568 0.289734 0.722900 0.869720 0.290161 0.770905 0.869873 0.290558 0.820129 0.869934 0.290955 0.869873 0.869995 0.291321 0.915527 0.870087 0.291687 0.000000 0.915527 0.277344 0.010986 0.915527 0.277924 0.036652 0.915527 0.278473 0.069000 0.915527 0.279053 0.096008 0.915527 0.279633 0.121307 0.915527 0.280182 0.144867 0.915527 0.280731 0.166779 0.915527 0.281281 0.187653 0.915527 0.281799 0.207550 0.915527 0.282349 0.226776 0.915527 0.283112 0.245605 0.915527 0.283630 0.264282 0.915527 0.284180 0.283203 0.915527 0.284668 0.302490 0.915527 0.285156 0.322784 0.915527 0.285645 0.344177 0.915527 0.286133 0.367065 0.915527 0.286621 0.391479 0.915527 0.287079 0.417969 0.915527 0.287567 0.446716 0.915527 0.287994 0.477966 0.915527 0.288452 0.512207 0.915527 0.288910 0.549683 0.915527 0.289307 0.589630 0.915527 0.289734 0.632263 0.915527 0.290161 0.676849 0.915527 0.290558 0.723267 0.915527 0.290955 0.771210 0.915527 0.291290 0.820282 0.915527 0.291656 0.869995 0.915527 0.292053 0.915527 0.915527 0.292389 0.000000 0.000000 0.271484 0.000000 0.000000 0.271759 0.000000 0.000000 0.272064 0.000214 0.000000 0.272369 0.026581 0.000000 0.272644 0.059692 0.000000 0.272980 0.088959 0.000000 0.273315 0.116364 0.000000 0.273651 0.141876 0.000000 0.273987 0.165680 0.000000 0.274292 0.188171 0.000000 0.274689 0.209595 0.000000 0.275055 0.230347 0.000000 0.275452 0.250549 0.000000 0.275818 0.270935 0.000000 0.276276 0.291687 0.000000 0.276672 0.313263 0.000000 0.277069 0.336121 0.000000 0.277527 0.360382 0.000000 0.277985 0.386688 0.000000 0.278381 0.415375 0.000000 0.278839 0.446808 0.000000 0.279327 0.481323 0.000000 0.279785 0.519440 0.000000 0.280243 0.561218 0.000000 0.280731 0.606323 0.000000 0.281219 0.654236 0.000000 0.281647 0.704498 0.000000 0.282227 0.756805 0.000000 0.282745 0.810364 0.000000 0.283417 0.865112 0.000000 0.283966 0.915527 0.000000 0.284454 0.000000 0.000000 0.272064 0.000000 0.000000 0.272369 0.000000 0.000000 0.272644 0.001251 0.000000 0.272980 0.027740 0.000000 0.273285 0.061005 0.000000 0.273621 0.090302 0.000000 0.273956 0.117554 0.000000 0.274292 0.142975 0.000000 0.274689 0.166748 0.000000 0.275055 0.189148 0.000000 0.275452 0.210388 0.000000 0.275818 0.231018 0.000000 0.276245 0.251434 0.000000 0.276642 0.271698 0.000000 0.277069 0.292542 0.000000 0.277496 0.314056 0.000793 0.277985 0.336792 0.001801 0.278351 0.361206 0.002930 0.278809 0.387512 0.004059 0.279297 0.416168 0.005249 0.279755 0.447571 0.006470 0.280243 0.482269 0.007690 0.280731 0.520355 0.008942 0.281189 0.562134 0.010223 0.281647 0.607056 0.011597 0.282227 0.655029 0.012878 0.282745 0.705231 0.014221 0.283386 0.757172 0.015747 0.283966 0.810760 0.017120 0.284424 0.865356 0.018524 0.284943 0.915527 0.019928 0.285492 0.000000 0.013092 0.272644 0.000000 0.013885 0.272919 0.000000 0.014771 0.273285 0.002350 0.015625 0.273621 0.029083 0.016449 0.273956 0.062561 0.017395 0.274292 0.091675 0.018372 0.274689 0.118774 0.019318 0.275024 0.144135 0.020233 0.275421 0.167816 0.021301 0.275787 0.190155 0.022369 0.276245 0.211304 0.023468 0.276642 0.231995 0.024597 0.277039 0.252228 0.025696 0.277496 0.272583 0.026764 0.277954 0.293335 0.027893 0.278351 0.314941 0.029144 0.278809 0.337677 0.030334 0.279266 0.361969 0.031555 0.279755 0.388275 0.032837 0.280212 0.417023 0.034119 0.280701 0.448486 0.035400 0.281189 0.483002 0.036713 0.281647 0.521301 0.038025 0.282196 0.562866 0.039368 0.282745 0.607941 0.040710 0.283386 0.655609 0.042114 0.283936 0.705658 0.043427 0.284424 0.757629 0.044861 0.284943 0.811127 0.047089 0.285431 0.865509 0.049530 0.285950 0.915527 0.052002 0.286499 0.000000 0.042145 0.273285 0.000000 0.042999 0.273590 0.000000 0.043915 0.273956 0.003662 0.044678 0.274261 0.030487 0.045715 0.274689 0.064056 0.047516 0.275024 0.093079 0.048920 0.275421 0.120239 0.050720 0.275787 0.145325 0.052734 0.276215 0.168915 0.054657 0.276611 0.191132 0.056763 0.277039 0.212341 0.058655 0.277466 0.232910 0.059784 0.277924 0.253052 0.061066 0.278351 0.273376 0.062317 0.278809 0.294128 0.063660 0.279266 0.315704 0.065094 0.279724 0.338562 0.066376 0.280182 0.362885 0.067749 0.280670 0.389221 0.069061 0.281158 0.417999 0.070435 0.281647 0.449463 0.071808 0.282166 0.484009 0.073212 0.282684 0.522064 0.074585 0.283356 0.563782 0.076111 0.283936 0.608826 0.077515 0.284393 0.656433 0.079010 0.284943 0.706421 0.080505 0.285400 0.758179 0.081970 0.285950 0.811401 0.083466 0.286469 0.865601 0.084991 0.286987 0.915527 0.086456 0.287537 0.000000 0.078918 0.273926 0.000000 0.079956 0.274261 0.000000 0.080872 0.274689 0.005127 0.081848 0.275024 0.032074 0.082916 0.275391 0.065765 0.083832 0.275757 0.094482 0.084961 0.276215 0.121582 0.086090 0.276611 0.146637 0.087250 0.277008 0.170044 0.088226 0.277466 0.192261 0.089447 0.277924 0.213318 0.090607 0.278351 0.233887 0.091888 0.278778 0.253998 0.093140 0.279236 0.274231 0.094147 0.279694 0.295044 0.095459 0.280182 0.316559 0.096771 0.280670 0.339355 0.098022 0.281158 0.363831 0.099365 0.281647 0.390198 0.100586 0.282166 0.418945 0.101837 0.282623 0.450409 0.103180 0.283325 0.484955 0.104553 0.283905 0.523041 0.105865 0.284363 0.564758 0.107269 0.284912 0.609497 0.108643 0.285370 0.657074 0.110016 0.285950 0.706909 0.111328 0.286469 0.758575 0.112640 0.286957 0.811646 0.114075 0.287537 0.865814 0.115417 0.288055 0.915527 0.116821 0.288574 0.000000 0.109985 0.274658 0.000000 0.110809 0.275024 0.000000 0.111847 0.275360 0.006622 0.112762 0.275757 0.033539 0.113678 0.276184 0.067322 0.114777 0.276581 0.096191 0.115601 0.277008 0.122925 0.116730 0.277435 0.147980 0.117828 0.277893 0.171234 0.118896 0.278320 0.193390 0.119904 0.278778 0.214386 0.121094 0.279236 0.234863 0.122253 0.279694 0.254974 0.123230 0.280182 0.275146 0.124451 0.280670 0.295990 0.125610 0.281128 0.317535 0.126831 0.281647 0.340240 0.127808 0.282135 0.364685 0.129089 0.282623 0.391083 0.130341 0.283295 0.419800 0.131561 0.283875 0.451294 0.132751 0.284363 0.485962 0.133850 0.284882 0.524048 0.135162 0.285370 0.565704 0.136444 0.285950 0.610443 0.137726 0.286438 0.657867 0.138824 0.286957 0.707672 0.140076 0.287506 0.759247 0.141357 0.288025 0.812195 0.142670 0.288544 0.865906 0.143982 0.289124 0.915527 0.145142 0.289642 0.000000 0.139130 0.275360 0.000000 0.139893 0.275726 0.000000 0.140839 0.276184 0.008118 0.141602 0.276581 0.035187 0.142609 0.277008 0.069153 0.143433 0.277435 0.097656 0.144409 0.277863 0.124512 0.145447 0.278320 0.149323 0.146301 0.278748 0.172455 0.147339 0.279236 0.194366 0.148376 0.279694 0.215485 0.149323 0.280151 0.235687 0.150391 0.280670 0.255981 0.151489 0.281128 0.276123 0.152405 0.281616 0.296875 0.153534 0.282104 0.318512 0.154572 0.282623 0.341248 0.155548 0.283295 0.365570 0.156708 0.283875 0.391968 0.157867 0.284332 0.420746 0.158783 0.284882 0.452271 0.159943 0.285370 0.486969 0.161072 0.285919 0.525055 0.162201 0.286407 0.566467 0.163208 0.286926 0.611237 0.164429 0.287476 0.658661 0.165558 0.287994 0.708191 0.166534 0.288544 0.759613 0.167694 0.289062 0.812469 0.168915 0.289612 0.866028 0.169861 0.290161 0.915527 0.171082 0.290680 0.000000 0.165894 0.276154 0.000000 0.166595 0.276550 0.000000 0.167511 0.277008 0.009888 0.168213 0.277405 0.036957 0.169189 0.277863 0.070953 0.169891 0.278290 0.099457 0.170837 0.278717 0.126007 0.171844 0.279236 0.150635 0.172607 0.279663 0.173706 0.173553 0.280121 0.195648 0.174377 0.280670 0.216553 0.175385 0.281097 0.236755 0.176208 0.281586 0.256927 0.177185 0.282104 0.277161 0.178223 0.282593 0.297729 0.179077 0.283295 0.319366 0.180115 0.283844 0.342255 0.181000 0.284332 0.366577 0.182007 0.284851 0.393005 0.183075 0.285309 0.421783 0.183899 0.285889 0.453308 0.184998 0.286407 0.487793 0.186005 0.286926 0.526031 0.186890 0.287476 0.567474 0.188019 0.287994 0.612091 0.189026 0.288513 0.659332 0.189911 0.289062 0.708984 0.191010 0.289612 0.760254 0.191864 0.290131 0.812744 0.192993 0.290680 0.866302 0.194031 0.291229 0.915527 0.194916 0.291748 0.000000 0.190674 0.276978 0.000000 0.191376 0.277405 0.000000 0.192139 0.277863 0.011627 0.192902 0.278259 0.038727 0.193695 0.278717 0.072723 0.194427 0.279205 0.101044 0.195312 0.279663 0.127472 0.196045 0.280090 0.152008 0.196869 0.280640 0.175140 0.197662 0.281067 0.196960 0.198578 0.281586 0.217743 0.199310 0.282104 0.237854 0.200287 0.282562 0.257843 0.201050 0.283295 0.278107 0.201965 0.283813 0.298737 0.202728 0.284332 0.320282 0.203705 0.284851 0.343231 0.204437 0.285309 0.367615 0.205444 0.285889 0.394043 0.206390 0.286377 0.422852 0.207214 0.286926 0.454346 0.208221 0.287445 0.488861 0.208984 0.287964 0.526917 0.209961 0.288513 0.568481 0.210754 0.289032 0.613037 0.211761 0.289581 0.660217 0.212524 0.290100 0.709503 0.213531 0.290680 0.760651 0.214539 0.291199 0.813171 0.215332 0.291718 0.866608 0.216339 0.292236 0.915527 0.217133 0.292816 0.000000 0.213623 0.277832 0.000000 0.214355 0.278259 0.000000 0.215057 0.278717 0.013458 0.215729 0.279175 0.040588 0.216492 0.279663 0.074738 0.217102 0.280090 0.102936 0.217957 0.280609 0.129211 0.218597 0.281067 0.153595 0.219452 0.281555 0.176453 0.220123 0.282074 0.198120 0.221008 0.282562 0.218842 0.221649 0.283264 0.238953 0.222565 0.283813 0.258881 0.223267 0.284302 0.279114 0.224091 0.284790 0.299774 0.224854 0.285309 0.321259 0.225739 0.285858 0.344086 0.226410 0.286346 0.368652 0.227386 0.286896 0.395050 0.228027 0.287415 0.423920 0.228973 0.287933 0.455444 0.229706 0.288513 0.489960 0.230621 0.289001 0.527985 0.231354 0.289581 0.569458 0.232269 0.290100 0.613983 0.232971 0.290649 0.660858 0.233917 0.291199 0.710266 0.234619 0.291687 0.761139 0.235596 0.292236 0.813538 0.236328 0.292786 0.866760 0.237244 0.293335 0.915527 0.237976 0.293884 0.000000 0.235352 0.278687 0.000000 0.235870 0.279175 0.000000 0.236542 0.279663 0.015320 0.237244 0.280060 0.042480 0.237823 0.280609 0.076752 0.238617 0.281067 0.104736 0.239197 0.281525 0.130737 0.239990 0.282074 0.155060 0.240631 0.282532 0.177765 0.241272 0.283264 0.199371 0.242065 0.283783 0.220001 0.242676 0.284302 0.240051 0.243530 0.284790 0.259979 0.244141 0.285278 0.279999 0.244965 0.285828 0.300842 0.245636 0.286346 0.322327 0.246521 0.286865 0.345123 0.247162 0.287415 0.369690 0.247986 0.287933 0.396118 0.248657 0.288483 0.424957 0.249512 0.288971 0.456299 0.250214 0.289551 0.491028 0.251099 0.290100 0.529022 0.251709 0.290619 0.570435 0.252411 0.291168 0.614685 0.253235 0.291687 0.661774 0.253937 0.292236 0.710754 0.254822 0.292786 0.761780 0.255493 0.293304 0.813812 0.256378 0.293884 0.866882 0.257019 0.294373 0.915527 0.257904 0.294952 0.000000 0.255951 0.279633 0.000000 0.256500 0.280060 0.000000 0.256958 0.280579 0.017273 0.257751 0.281036 0.044403 0.258301 0.281525 0.078735 0.258911 0.282013 0.106567 0.259583 0.282532 0.132507 0.260193 0.283264 0.156525 0.260956 0.283752 0.179138 0.261505 0.284302 0.200623 0.262146 0.284760 0.221191 0.262909 0.285278 0.241211 0.263489 0.285828 0.261078 0.264313 0.286316 0.281128 0.264923 0.286865 0.301849 0.265747 0.287384 0.323364 0.266327 0.287933 0.346161 0.267120 0.288452 0.370728 0.267761 0.288971 0.397217 0.268372 0.289520 0.425842 0.269226 0.290070 0.457336 0.269806 0.290588 0.492096 0.270660 0.291138 0.530060 0.271271 0.291656 0.571320 0.272095 0.292236 0.615662 0.272705 0.292755 0.662598 0.273376 0.293304 0.711609 0.274170 0.293854 0.762177 0.274811 0.294373 0.814117 0.275665 0.294952 0.867035 0.276276 0.295441 0.915527 0.277100 0.295990 0.000000 0.275757 0.280579 0.000000 0.276276 0.281036 0.000000 0.277008 0.281464 0.019318 0.277527 0.281982 0.046997 0.278046 0.282501 0.080902 0.278748 0.283234 0.108459 0.279297 0.283752 0.134094 0.279907 0.284271 0.158020 0.280579 0.284729 0.180450 0.281158 0.285278 0.201904 0.281921 0.285797 0.222412 0.282471 0.286316 0.242310 0.283234 0.286835 0.262146 0.283844 0.287354 0.282196 0.284363 0.287933 0.302795 0.285156 0.288422 0.324432 0.285736 0.288940 0.347229 0.286438 0.289520 0.371613 0.287140 0.290070 0.398102 0.287689 0.290558 0.426910 0.288483 0.291138 0.458466 0.289062 0.291656 0.493164 0.289917 0.292206 0.531128 0.290497 0.292755 0.572357 0.291046 0.293274 0.616669 0.291870 0.293823 0.663300 0.292450 0.294342 0.712189 0.293243 0.294891 0.762787 0.293854 0.295441 0.814545 0.294678 0.295959 0.867157 0.295258 0.296509 0.915527 0.295837 0.296997 0.000000 0.295380 0.281464 0.000000 0.295837 0.281982 0.000000 0.296539 0.282501 0.021423 0.297058 0.283203 0.050507 0.297577 0.283722 0.083008 0.298279 0.284241 0.110382 0.298798 0.284729 0.135925 0.299530 0.285278 0.159637 0.300079 0.285767 0.182068 0.300568 0.286285 0.203156 0.301331 0.286804 0.223572 0.301849 0.287354 0.243469 0.302429 0.287903 0.263275 0.303162 0.288391 0.283295 0.303741 0.288910 0.303833 0.304504 0.289520 0.325409 0.305054 0.290039 0.348297 0.305725 0.290558 0.372681 0.306427 0.291138 0.399139 0.306946 0.291656 0.428040 0.307709 0.292206 0.459564 0.308289 0.292725 0.494202 0.308838 0.293243 0.532074 0.309631 0.293823 0.573395 0.310181 0.294312 0.617401 0.311005 0.294891 0.664154 0.311554 0.295410 0.712860 0.312286 0.295929 0.763275 0.312897 0.296509 0.814911 0.313477 0.296997 0.867310 0.314240 0.297546 0.915527 0.314850 0.298065 0.000000 0.315063 0.282471 0.000000 0.315704 0.283203 0.000000 0.316223 0.283691 0.023499 0.316711 0.284241 0.054443 0.317413 0.284729 0.085114 0.317932 0.285248 0.112244 0.318420 0.285767 0.137543 0.319153 0.286285 0.161224 0.319672 0.286804 0.183441 0.320190 0.287323 0.204437 0.320923 0.287872 0.224823 0.321442 0.288391 0.244629 0.322144 0.288910 0.264404 0.322723 0.289490 0.284393 0.323273 0.290009 0.304901 0.324036 0.290558 0.326477 0.324554 0.291107 0.349426 0.325104 0.291626 0.373779 0.325897 0.292175 0.400269 0.326416 0.292694 0.429138 0.327209 0.293243 0.460632 0.327728 0.293793 0.495148 0.328308 0.294312 0.533142 0.329071 0.294891 0.574402 0.329620 0.295380 0.618378 0.330261 0.295929 0.665009 0.330933 0.296478 0.713409 0.331512 0.296967 0.763672 0.332245 0.297516 0.815186 0.332825 0.298035 0.867462 0.333496 0.298553 0.915527 0.334137 0.299103 0.000000 0.335327 0.283691 0.000000 0.335846 0.284210 0.000000 0.336304 0.284698 0.025787 0.336975 0.285217 0.058472 0.337555 0.285736 0.087189 0.338013 0.286285 0.114166 0.338745 0.286774 0.139374 0.339233 0.287323 0.162872 0.339783 0.287872 0.184845 0.340485 0.288361 0.205750 0.341003 0.288910 0.226074 0.341522 0.289490 0.245850 0.342285 0.290009 0.265533 0.342773 0.290527 0.285522 0.343536 0.291077 0.305969 0.344055 0.291626 0.327606 0.344574 0.292145 0.350494 0.345367 0.292694 0.374908 0.345886 0.293243 0.401398 0.346466 0.293793 0.430237 0.347229 0.294281 0.461761 0.347748 0.294861 0.496246 0.348511 0.295380 0.534149 0.349060 0.295929 0.575378 0.349640 0.296448 0.619293 0.350372 0.296936 0.665680 0.350891 0.297516 0.714172 0.351654 0.298035 0.764282 0.352203 0.298523 0.815491 0.352722 0.299042 0.867615 0.353516 0.299591 0.915527 0.354065 0.300140 0.000000 0.356201 0.284698 0.000000 0.356873 0.285217 0.001862 0.357361 0.285736 0.027893 0.357849 0.286255 0.060730 0.358612 0.286774 0.089478 0.359070 0.287292 0.116211 0.359711 0.287842 0.141083 0.360321 0.288361 0.164429 0.360809 0.288910 0.186371 0.361572 0.289459 0.207275 0.362061 0.289948 0.227295 0.362579 0.290527 0.247009 0.363342 0.291077 0.266693 0.363861 0.291565 0.286621 0.364380 0.292145 0.307129 0.365143 0.292664 0.328644 0.365662 0.293243 0.351593 0.366425 0.293762 0.376007 0.367004 0.294281 0.402496 0.367523 0.294861 0.431335 0.368317 0.295349 0.462891 0.368805 0.295898 0.497345 0.369354 0.296417 0.535248 0.370117 0.296936 0.576263 0.370636 0.297485 0.620300 0.371429 0.298004 0.666534 0.371948 0.298523 0.714783 0.372498 0.299011 0.764740 0.373260 0.299561 0.816010 0.373779 0.300110 0.867920 0.374542 0.300568 0.915527 0.375061 0.301086 0.000000 0.378479 0.285736 0.000000 0.378967 0.286255 0.003845 0.379669 0.286713 0.030182 0.380188 0.287292 0.063080 0.380676 0.287842 0.091614 0.381409 0.288330 0.118195 0.381897 0.288910 0.142914 0.382416 0.289429 0.166016 0.383148 0.289948 0.187866 0.383698 0.290497 0.208588 0.384430 0.291046 0.228516 0.384949 0.291565 0.248199 0.385498 0.292114 0.267853 0.386200 0.292633 0.287750 0.386780 0.293213 0.308167 0.387329 0.293762 0.329651 0.388062 0.294250 0.352448 0.388580 0.294830 0.377106 0.389252 0.295349 0.403595 0.389893 0.295868 0.432495 0.390442 0.296417 0.463989 0.391174 0.296906 0.498444 0.391724 0.297485 0.536346 0.392273 0.298004 0.577301 0.393036 0.298523 0.621033 0.393555 0.299011 0.667419 0.394226 0.299561 0.715515 0.394867 0.300079 0.765411 0.395416 0.300568 0.816223 0.396118 0.301056 0.868103 0.396637 0.301575 0.915527 0.397247 0.302094 0.000000 0.402100 0.286713 0.000000 0.402802 0.287262 0.006042 0.403320 0.287811 0.032440 0.403809 0.288300 0.065582 0.404572 0.288879 0.093872 0.405090 0.289398 0.120239 0.405670 0.289917 0.144775 0.406342 0.290497 0.167664 0.406860 0.291046 0.189301 0.407623 0.291565 0.209869 0.408112 0.292084 0.229736 0.408661 0.292633 0.249390 0.409424 0.293213 0.268982 0.409943 0.293732 0.288879 0.410553 0.294220 0.309296 0.411255 0.294830 0.330811 0.411774 0.295319 0.353607 0.412567 0.295868 0.378235 0.413086 0.296387 0.404694 0.413635 0.296906 0.433563 0.414398 0.297485 0.465088 0.414948 0.297974 0.499603 0.415466 0.298492 0.537415 0.416229 0.299011 0.578339 0.416779 0.299561 0.621979 0.417511 0.300079 0.668060 0.418091 0.300537 0.716278 0.418579 0.301056 0.765808 0.419342 0.301575 0.816528 0.419861 0.302063 0.868225 0.420593 0.302551 0.915527 0.421173 0.303040 0.000000 0.427826 0.287781 0.000000 0.428314 0.288300 0.008362 0.429047 0.288849 0.034851 0.429565 0.289398 0.067993 0.430084 0.289917 0.096039 0.430847 0.290466 0.122070 0.431335 0.291046 0.146423 0.431915 0.291534 0.169189 0.432678 0.292084 0.190704 0.433167 0.292633 0.211212 0.433746 0.293182 0.231018 0.434479 0.293701 0.250580 0.434998 0.294220 0.270111 0.435791 0.294800 0.289978 0.436310 0.295319 0.310394 0.436859 0.295868 0.331940 0.437592 0.296356 0.354706 0.438141 0.296875 0.379303 0.438690 0.297455 0.405823 0.439453 0.297943 0.434662 0.439972 0.298492 0.466187 0.440765 0.298981 0.500671 0.441284 0.299530 0.538422 0.441803 0.300049 0.579346 0.442596 0.300507 0.622955 0.443115 0.301056 0.668915 0.443665 0.301514 0.716797 0.444397 0.302032 0.766174 0.444916 0.302551 0.816956 0.445648 0.303009 0.868408 0.446198 0.303467 0.915527 0.446716 0.304016 0.000000 0.455627 0.288818 0.000000 0.456177 0.289368 0.010529 0.456665 0.289917 0.037079 0.457428 0.290466 0.070435 0.457947 0.291016 0.098236 0.458527 0.291534 0.124115 0.459259 0.292053 0.148346 0.459778 0.292603 0.170898 0.460541 0.293152 0.192261 0.461090 0.293701 0.212524 0.461609 0.294189 0.232269 0.462372 0.294800 0.251770 0.462921 0.295288 0.271271 0.463440 0.295837 0.291138 0.464203 0.296326 0.311493 0.464722 0.296875 0.333008 0.465546 0.297455 0.355804 0.466034 0.297943 0.380402 0.466583 0.298462 0.406891 0.467346 0.298981 0.435760 0.467896 0.299530 0.467224 0.468445 0.300018 0.501770 0.469208 0.300507 0.539337 0.469727 0.301025 0.580353 0.470398 0.301514 0.623901 0.471008 0.302032 0.669525 0.471527 0.302521 0.717316 0.472260 0.303009 0.766785 0.472809 0.303467 0.817322 0.473297 0.303986 0.868530 0.474060 0.304443 0.915527 0.474548 0.304932 0.000000 0.485901 0.289917 0.000000 0.486420 0.290436 0.012909 0.487122 0.290985 0.039520 0.487732 0.291504 0.072754 0.488251 0.292053 0.100464 0.489014 0.292572 0.126129 0.489532 0.293152 0.150116 0.490051 0.293640 0.172485 0.490845 0.294189 0.193726 0.491364 0.294739 0.213898 0.491943 0.295258 0.233673 0.492676 0.295837 0.252960 0.493195 0.296295 0.272430 0.493958 0.296875 0.292145 0.494476 0.297424 0.312653 0.495026 0.297913 0.334137 0.495789 0.298462 0.356903 0.496307 0.298950 0.381531 0.496887 0.299500 0.408020 0.497620 0.299988 0.436707 0.498169 0.300507 0.468201 0.498901 0.300995 0.502625 0.499451 0.301514 0.540375 0.499969 0.302002 0.581146 0.500702 0.302490 0.624542 0.501251 0.302979 0.670349 0.501709 0.303467 0.718018 0.502502 0.303986 0.767212 0.502991 0.304443 0.817566 0.503510 0.304901 0.868683 0.504211 0.305359 0.915527 0.504730 0.305817 0.000000 0.519135 0.290955 0.000000 0.519623 0.291473 0.015320 0.520142 0.292023 0.041748 0.520905 0.292572 0.075348 0.521423 0.293121 0.102692 0.522003 0.293640 0.128143 0.522736 0.294189 0.151855 0.523254 0.294708 0.174164 0.523987 0.295258 0.195160 0.524536 0.295807 0.215393 0.525085 0.296295 0.234985 0.525787 0.296844 0.254150 0.526337 0.297394 0.273590 0.526855 0.297882 0.293243 0.527618 0.298431 0.313751 0.528137 0.298920 0.335236 0.528748 0.299500 0.358032 0.529419 0.299988 0.382416 0.529907 0.300507 0.409058 0.530701 0.300995 0.437805 0.531219 0.301483 0.469299 0.531708 0.302002 0.503693 0.532471 0.302490 0.541443 0.532990 0.302979 0.582153 0.533478 0.303467 0.625519 0.534210 0.303955 0.671173 0.534698 0.304443 0.718628 0.535248 0.304901 0.767731 0.535980 0.305359 0.817841 0.536438 0.305786 0.868866 0.536896 0.306244 0.915527 0.537628 0.306702 0.000000 0.555206 0.292023 0.000000 0.555908 0.292542 0.017761 0.556488 0.293091 0.044189 0.556976 0.293610 0.077698 0.557678 0.294159 0.104858 0.558197 0.294708 0.130096 0.558746 0.295227 0.153687 0.559479 0.295776 0.175720 0.559998 0.296295 0.196594 0.560486 0.296844 0.216705 0.561249 0.297363 0.236237 0.561768 0.297882 0.255341 0.562286 0.298401 0.274750 0.562988 0.298920 0.294403 0.563507 0.299469 0.314819 0.564178 0.299957 0.336304 0.564789 0.300507 0.359100 0.565277 0.300964 0.383514 0.565796 0.301483 0.410004 0.566498 0.302002 0.438873 0.567017 0.302490 0.470398 0.567657 0.302979 0.504791 0.568207 0.303436 0.542511 0.568695 0.303925 0.583160 0.569427 0.304443 0.626404 0.569855 0.304871 0.671783 0.570343 0.305359 0.719238 0.571075 0.305786 0.768188 0.571503 0.306244 0.818085 0.571991 0.306702 0.869080 0.572418 0.307129 0.915527 0.573090 0.307556 0.000000 0.594574 0.293060 0.000000 0.595032 0.293610 0.020172 0.595551 0.294159 0.047180 0.595978 0.294678 0.080109 0.596680 0.295227 0.107056 0.597198 0.295746 0.132050 0.597809 0.296295 0.155365 0.598358 0.296814 0.177277 0.598846 0.297363 0.198151 0.599487 0.297852 0.218048 0.600067 0.298401 0.237488 0.600525 0.298920 0.256500 0.601013 0.299438 0.275848 0.601715 0.299927 0.295410 0.602203 0.300476 0.315887 0.602661 0.300934 0.337341 0.603394 0.301483 0.360199 0.603821 0.301971 0.384583 0.604279 0.302460 0.411102 0.605011 0.302948 0.439941 0.605499 0.303436 0.471466 0.605896 0.303925 0.505829 0.606598 0.304413 0.543549 0.607025 0.304840 0.583984 0.607452 0.305328 0.627075 0.608063 0.305786 0.672638 0.608582 0.306213 0.719879 0.609039 0.306702 0.768555 0.609467 0.307129 0.818573 0.610107 0.307556 0.869293 0.610504 0.307983 0.915527 0.610901 0.308411 0.000000 0.636078 0.294128 0.000000 0.636536 0.294647 0.022583 0.637177 0.295227 0.051392 0.637604 0.295746 0.082458 0.638062 0.296234 0.109253 0.638733 0.296814 0.133942 0.639160 0.297333 0.157196 0.639557 0.297852 0.178925 0.640198 0.298370 0.199524 0.640717 0.298889 0.219299 0.641144 0.299438 0.238647 0.641571 0.299927 0.257660 0.642242 0.300446 0.276978 0.642670 0.300934 0.296539 0.643127 0.301453 0.317017 0.643677 0.301941 0.338409 0.644196 0.302460 0.361267 0.644592 0.302917 0.385651 0.645020 0.303406 0.412170 0.645691 0.303925 0.441040 0.646088 0.304382 0.472534 0.646484 0.304810 0.506897 0.647125 0.305328 0.544373 0.647491 0.305756 0.584839 0.647919 0.306213 0.627991 0.648285 0.306702 0.673187 0.648834 0.307098 0.720428 0.649292 0.307556 0.769135 0.649658 0.307953 0.818787 0.650024 0.308380 0.869385 0.650635 0.308777 0.915527 0.650970 0.309174 0.000000 0.679901 0.295227 0.000000 0.680237 0.295746 0.025024 0.680634 0.296234 0.055573 0.681274 0.296783 0.084869 0.681641 0.297302 0.111389 0.682037 0.297852 0.135925 0.682434 0.298370 0.158844 0.683014 0.298859 0.180420 0.683380 0.299408 0.200928 0.683777 0.299927 0.220612 0.684143 0.300415 0.239899 0.684753 0.300903 0.258820 0.685150 0.301422 0.278046 0.685516 0.301910 0.297577 0.685883 0.302429 0.317932 0.686523 0.302887 0.339417 0.686829 0.303406 0.362305 0.687195 0.303894 0.386749 0.687561 0.304352 0.413269 0.688141 0.304810 0.442108 0.688507 0.305298 0.473572 0.688843 0.305756 0.507904 0.689178 0.306213 0.545319 0.689697 0.306671 0.585785 0.690094 0.307098 0.628906 0.690430 0.307526 0.673950 0.690735 0.307922 0.720825 0.691162 0.308380 0.769501 0.691620 0.308777 0.819031 0.691895 0.309174 0.869507 0.692230 0.309601 0.915527 0.692474 0.309998 0.000000 0.725098 0.296204 0.002075 0.725677 0.296753 0.027496 0.726013 0.297272 0.059479 0.726288 0.297821 0.087280 0.726654 0.298340 0.113525 0.727173 0.298859 0.137756 0.727478 0.299377 0.160614 0.727844 0.299896 0.182068 0.728180 0.300415 0.202271 0.728455 0.300903 0.221893 0.729004 0.301392 0.241089 0.729309 0.301910 0.260010 0.729584 0.302429 0.279175 0.729858 0.302887 0.298676 0.730194 0.303375 0.319000 0.730682 0.303864 0.340393 0.731049 0.304352 0.363190 0.731354 0.304810 0.387817 0.731598 0.305267 0.414307 0.731903 0.305725 0.443115 0.732452 0.306152 0.474487 0.732697 0.306641 0.508759 0.732941 0.307068 0.546265 0.733276 0.307495 0.586731 0.733551 0.307922 0.629456 0.734009 0.308350 0.674500 0.734314 0.308777 0.721527 0.734558 0.309143 0.769806 0.734802 0.309570 0.819244 0.735077 0.309998 0.869629 0.735291 0.310364 0.915527 0.735779 0.310730 0.000000 0.772003 0.297272 0.004333 0.772186 0.297821 0.029846 0.772491 0.298340 0.061859 0.772705 0.298828 0.089630 0.772888 0.299377 0.115448 0.773254 0.299866 0.139648 0.773651 0.300385 0.162201 0.773926 0.300873 0.183533 0.774139 0.301392 0.203857 0.774353 0.301880 0.223297 0.774658 0.302399 0.242310 0.774994 0.302887 0.261139 0.775330 0.303345 0.280090 0.775513 0.303864 0.299774 0.775757 0.304321 0.320007 0.775970 0.304810 0.341461 0.776215 0.305267 0.364227 0.776459 0.305725 0.388824 0.776917 0.306152 0.415344 0.777100 0.306641 0.443939 0.777313 0.307068 0.475372 0.777557 0.307465 0.509705 0.777802 0.307922 0.547272 0.777985 0.308319 0.587402 0.778168 0.308777 0.630310 0.778442 0.309143 0.675262 0.778778 0.309570 0.721954 0.778992 0.309967 0.770203 0.779175 0.310333 0.819702 0.779358 0.310699 0.869751 0.779510 0.311066 0.915527 0.779724 0.311432 0.000000 0.819336 0.298309 0.006714 0.819489 0.298828 0.032318 0.819794 0.299377 0.064362 0.820038 0.299835 0.091919 0.820221 0.300354 0.117493 0.820404 0.300873 0.141571 0.820526 0.301392 0.163971 0.820740 0.301849 0.184998 0.820831 0.302399 0.205170 0.821045 0.302887 0.224487 0.821167 0.303345 0.243439 0.821564 0.303833 0.262268 0.821747 0.304321 0.281250 0.821899 0.304810 0.300842 0.822052 0.305237 0.321075 0.822174 0.305725 0.342499 0.822388 0.306152 0.365234 0.822510 0.306610 0.389801 0.822632 0.307068 0.416290 0.822815 0.307465 0.444977 0.822968 0.307892 0.476379 0.823273 0.308319 0.510681 0.823456 0.308746 0.548004 0.823578 0.309143 0.588287 0.823730 0.309570 0.630890 0.823853 0.309937 0.675812 0.823975 0.310333 0.722565 0.824127 0.310699 0.770660 0.824219 0.311066 0.819916 0.824341 0.311432 0.869812 0.824463 0.311768 0.915527 0.824615 0.312103 0.000000 0.867371 0.299347 0.009094 0.867462 0.299835 0.034760 0.867554 0.300354 0.066925 0.867645 0.300842 0.094177 0.867737 0.301361 0.119598 0.867767 0.301849 0.143402 0.867920 0.302368 0.165527 0.868103 0.302856 0.186554 0.868286 0.303345 0.206482 0.868347 0.303833 0.225800 0.868439 0.304291 0.244598 0.868530 0.304779 0.263367 0.868561 0.305206 0.282318 0.868652 0.305695 0.301849 0.868744 0.306122 0.322083 0.868774 0.306610 0.343506 0.868896 0.307068 0.366241 0.868958 0.307465 0.390625 0.869049 0.307892 0.417145 0.869110 0.308319 0.445984 0.869171 0.308716 0.477356 0.869263 0.309113 0.511627 0.869293 0.309540 0.548889 0.869385 0.309937 0.589142 0.869446 0.310303 0.631714 0.869446 0.310669 0.676483 0.869720 0.311066 0.722992 0.869781 0.311432 0.770966 0.869873 0.311768 0.820129 0.869995 0.312103 0.869904 0.870087 0.312439 0.915527 0.870087 0.312744 0.000000 0.915527 0.300354 0.011322 0.915527 0.300842 0.037048 0.915527 0.301361 0.069397 0.915527 0.301849 0.096375 0.915527 0.302338 0.121582 0.915527 0.302826 0.145111 0.915527 0.303314 0.167175 0.915527 0.303833 0.187988 0.915527 0.304291 0.207764 0.915527 0.304749 0.227020 0.915527 0.305206 0.245758 0.915527 0.305664 0.264435 0.915527 0.306122 0.283325 0.915527 0.306610 0.302673 0.915527 0.307037 0.323059 0.915527 0.307465 0.344360 0.915527 0.307892 0.367279 0.915527 0.308289 0.391663 0.915527 0.308716 0.418121 0.915527 0.309113 0.446899 0.915527 0.309540 0.478210 0.915527 0.309937 0.512268 0.915527 0.310303 0.549805 0.915527 0.310669 0.589752 0.915527 0.311035 0.632446 0.915527 0.311401 0.676910 0.915527 0.311768 0.723389 0.915527 0.312103 0.771271 0.915527 0.312408 0.820282 0.915527 0.312744 0.870117 0.915527 0.313080 0.915527 0.915527 0.313354 0.000000 0.000000 0.295959 0.000000 0.000000 0.296204 0.000000 0.000000 0.296448 0.000427 0.000000 0.296692 0.026764 0.000000 0.296936 0.059937 0.000000 0.297241 0.089264 0.000000 0.297516 0.116638 0.000000 0.297852 0.142059 0.000000 0.298157 0.165863 0.000000 0.298462 0.188324 0.000000 0.298798 0.209747 0.000000 0.299133 0.230469 0.000000 0.299500 0.250641 0.000000 0.299805 0.271149 0.000000 0.300171 0.291809 0.000000 0.300507 0.313477 0.000000 0.300903 0.336243 0.000000 0.301270 0.360504 0.000000 0.301697 0.386810 0.000000 0.302063 0.415558 0.000000 0.302460 0.446991 0.000000 0.302887 0.481445 0.000000 0.303253 0.519562 0.000000 0.303680 0.561371 0.000000 0.304138 0.606537 0.000000 0.304535 0.654358 0.000000 0.304993 0.704712 0.000000 0.305420 0.756897 0.000000 0.305847 0.810394 0.000000 0.306274 0.865112 0.000000 0.306763 0.915527 0.000000 0.307190 0.000000 0.000000 0.296417 0.000000 0.000000 0.296692 0.000000 0.000000 0.296936 0.001434 0.000000 0.297241 0.027985 0.000000 0.297516 0.061249 0.000000 0.297852 0.090576 0.000000 0.298157 0.117920 0.000000 0.298462 0.143250 0.000000 0.298798 0.166870 0.000000 0.299133 0.189331 0.000000 0.299469 0.210632 0.000000 0.299805 0.231140 0.000000 0.300171 0.251556 0.000000 0.300507 0.271820 0.000000 0.300873 0.292633 0.000092 0.301239 0.314178 0.001129 0.301666 0.336884 0.002167 0.302063 0.361359 0.003296 0.302460 0.387756 0.004456 0.302856 0.416382 0.005615 0.303253 0.447845 0.006836 0.303680 0.482391 0.008087 0.304138 0.520477 0.009369 0.304535 0.562256 0.010773 0.304962 0.607147 0.012115 0.305389 0.655151 0.013458 0.305847 0.705322 0.014801 0.306274 0.757263 0.016174 0.306732 0.810822 0.017609 0.307190 0.865356 0.018982 0.307617 0.915527 0.020416 0.308105 0.000000 0.013458 0.296906 0.000000 0.014130 0.297241 0.000000 0.015045 0.297516 0.002686 0.015961 0.297821 0.029388 0.016724 0.298126 0.062805 0.017670 0.298431 0.091919 0.018677 0.298767 0.119141 0.019714 0.299103 0.144318 0.020691 0.299438 0.167969 0.021606 0.299805 0.190308 0.022705 0.300140 0.211517 0.023834 0.300507 0.232056 0.024933 0.300873 0.252441 0.026093 0.301239 0.272705 0.027283 0.301636 0.293549 0.028473 0.302032 0.315063 0.029694 0.302429 0.337799 0.030884 0.302826 0.362183 0.032166 0.303253 0.388489 0.033417 0.303680 0.417175 0.034698 0.304108 0.448639 0.035980 0.304504 0.483154 0.037354 0.304962 0.521454 0.038605 0.305389 0.563171 0.039978 0.305786 0.608093 0.041321 0.306244 0.655731 0.042694 0.306732 0.705750 0.044067 0.307159 0.757812 0.045471 0.307617 0.811188 0.047852 0.308075 0.865509 0.050293 0.308502 0.915527 0.052856 0.308990 0.000000 0.042511 0.297516 0.000000 0.043243 0.297821 0.000000 0.044189 0.298126 0.003906 0.045135 0.298431 0.030731 0.046204 0.298767 0.064301 0.048035 0.299103 0.093323 0.049805 0.299438 0.120453 0.051636 0.299805 0.145599 0.053284 0.300140 0.169098 0.055267 0.300507 0.191376 0.057373 0.300842 0.212494 0.059174 0.301239 0.233063 0.060394 0.301636 0.253265 0.061554 0.302002 0.273621 0.062775 0.302429 0.294281 0.064148 0.302826 0.315948 0.065460 0.303223 0.338715 0.066833 0.303650 0.363037 0.068176 0.304077 0.389404 0.069580 0.304474 0.418152 0.071045 0.304932 0.449615 0.072388 0.305359 0.484100 0.073822 0.305786 0.522186 0.075317 0.306244 0.563904 0.076752 0.306702 0.608978 0.078186 0.307129 0.656555 0.079651 0.307587 0.706512 0.081146 0.308075 0.758301 0.082642 0.308502 0.811462 0.084076 0.308990 0.865662 0.085602 0.309448 0.915527 0.087128 0.309937 0.000000 0.079224 0.298096 0.000000 0.080261 0.298431 0.000000 0.081299 0.298737 0.005341 0.082153 0.299042 0.032288 0.083252 0.299438 0.066040 0.084381 0.299774 0.094849 0.085297 0.300140 0.121796 0.086426 0.300507 0.147003 0.087585 0.300842 0.170197 0.088806 0.301239 0.192444 0.089783 0.301636 0.213501 0.091003 0.302002 0.234039 0.092255 0.302429 0.254150 0.093506 0.302826 0.274475 0.094727 0.303223 0.295197 0.095917 0.303650 0.316772 0.097137 0.304077 0.339630 0.098450 0.304474 0.363983 0.099792 0.304932 0.390350 0.101105 0.305359 0.419128 0.102448 0.305786 0.450623 0.103790 0.306213 0.485077 0.104950 0.306702 0.523163 0.106293 0.307129 0.564880 0.107697 0.307556 0.609619 0.109100 0.308044 0.657196 0.110504 0.308502 0.707001 0.111847 0.308960 0.758667 0.113312 0.309448 0.811768 0.114655 0.309906 0.865814 0.116058 0.310394 0.915527 0.117371 0.310822 0.000000 0.110321 0.298737 0.000000 0.111206 0.299042 0.000000 0.112122 0.299408 0.006897 0.113190 0.299774 0.033936 0.114075 0.300140 0.067596 0.115082 0.300476 0.096405 0.116211 0.300842 0.123108 0.117065 0.301208 0.148254 0.118164 0.301636 0.171509 0.119354 0.302002 0.193573 0.120209 0.302399 0.214539 0.121429 0.302826 0.235046 0.122589 0.303192 0.255127 0.123779 0.303619 0.275330 0.124817 0.304077 0.296143 0.126007 0.304474 0.317688 0.127167 0.304901 0.340393 0.128418 0.305359 0.364929 0.129486 0.305786 0.391327 0.130737 0.306213 0.420074 0.131989 0.306702 0.451569 0.133209 0.307129 0.486115 0.134491 0.307556 0.524170 0.135529 0.308044 0.565826 0.136810 0.308472 0.610565 0.138092 0.308929 0.657990 0.139404 0.309448 0.707764 0.140656 0.309906 0.759308 0.141754 0.310364 0.812225 0.143036 0.310791 0.865936 0.144379 0.311279 0.915527 0.145660 0.311768 0.000000 0.139404 0.299408 0.000000 0.140137 0.299744 0.000000 0.141083 0.300110 0.008514 0.141907 0.300476 0.035553 0.142883 0.300842 0.069427 0.143890 0.301208 0.098053 0.144714 0.301605 0.124756 0.145752 0.301971 0.149536 0.146820 0.302399 0.172699 0.147675 0.302795 0.194672 0.148712 0.303162 0.215637 0.149658 0.303619 0.235962 0.150726 0.304077 0.256134 0.151825 0.304474 0.276306 0.152710 0.304871 0.297089 0.153839 0.305328 0.318634 0.154938 0.305756 0.341400 0.156006 0.306213 0.365845 0.157013 0.306671 0.392273 0.158203 0.307098 0.420898 0.159271 0.307556 0.452393 0.160278 0.308014 0.487122 0.161469 0.308441 0.525208 0.162628 0.308929 0.566742 0.163574 0.309418 0.611511 0.164795 0.309875 0.658813 0.165924 0.310333 0.708282 0.167114 0.310791 0.759705 0.168121 0.311279 0.812531 0.169220 0.311737 0.866089 0.170471 0.312256 0.915527 0.171417 0.312714 0.000000 0.166199 0.300110 0.000000 0.167053 0.300446 0.000000 0.167786 0.300842 0.010193 0.168640 0.301178 0.037201 0.169434 0.301575 0.071320 0.170380 0.301971 0.099731 0.171143 0.302368 0.126221 0.172089 0.302765 0.150879 0.172852 0.303162 0.174103 0.173859 0.303589 0.195923 0.174652 0.304047 0.216766 0.175659 0.304443 0.237000 0.176727 0.304871 0.257141 0.177490 0.305298 0.277313 0.178558 0.305756 0.298004 0.179382 0.306183 0.319611 0.180420 0.306641 0.342438 0.181458 0.307098 0.366730 0.182312 0.307526 0.393127 0.183380 0.308014 0.421936 0.184448 0.308441 0.453430 0.185303 0.308899 0.488098 0.186371 0.309418 0.526215 0.187286 0.309875 0.567657 0.188293 0.310303 0.612274 0.189392 0.310791 0.659454 0.190247 0.311249 0.709045 0.191345 0.311737 0.760345 0.192413 0.312225 0.812805 0.193268 0.312714 0.866302 0.194336 0.313141 0.915527 0.195465 0.313660 0.000000 0.191010 0.300842 0.000000 0.191620 0.301178 0.000000 0.192474 0.301575 0.011932 0.193115 0.301971 0.039001 0.194000 0.302338 0.073242 0.194702 0.302765 0.101501 0.195618 0.303162 0.127899 0.196320 0.303558 0.152344 0.197235 0.304016 0.175385 0.197937 0.304443 0.197083 0.198853 0.304840 0.217896 0.199585 0.305298 0.238037 0.200531 0.305725 0.258057 0.201294 0.306152 0.278351 0.202271 0.306641 0.298889 0.203033 0.307068 0.320618 0.203979 0.307526 0.343445 0.204956 0.307983 0.367737 0.205719 0.308441 0.394165 0.206696 0.308868 0.422974 0.207489 0.309418 0.454498 0.208496 0.309845 0.489044 0.209229 0.310303 0.527069 0.210266 0.310791 0.568634 0.211243 0.311218 0.613129 0.212067 0.311707 0.660309 0.213043 0.312195 0.709595 0.213837 0.312683 0.760742 0.214844 0.313141 0.813263 0.215668 0.313629 0.866608 0.216644 0.314056 0.915527 0.217651 0.314575 0.000000 0.213837 0.301575 0.000000 0.214630 0.301941 0.000000 0.215240 0.302338 0.013763 0.216095 0.302765 0.040833 0.216736 0.303162 0.075073 0.217560 0.303558 0.103180 0.218201 0.304016 0.129456 0.218811 0.304443 0.153900 0.219727 0.304840 0.176666 0.220367 0.305267 0.198303 0.221252 0.305725 0.219025 0.221924 0.306122 0.239105 0.222778 0.306610 0.259033 0.223480 0.307068 0.279358 0.224426 0.307495 0.299896 0.225067 0.307953 0.321442 0.226013 0.308441 0.344238 0.226715 0.308868 0.368805 0.227600 0.309387 0.395203 0.228394 0.309814 0.424072 0.229248 0.310303 0.455566 0.229950 0.310760 0.490082 0.230865 0.311218 0.528076 0.231598 0.311707 0.569641 0.232544 0.312195 0.614136 0.233459 0.312683 0.661041 0.234192 0.313141 0.710327 0.234955 0.313599 0.761169 0.235809 0.314056 0.813538 0.236694 0.314545 0.866760 0.237488 0.315002 0.915527 0.238464 0.315521 0.000000 0.235565 0.302338 0.000000 0.236084 0.302765 0.000000 0.236877 0.303131 0.015625 0.237457 0.303528 0.042755 0.238129 0.303986 0.077057 0.238831 0.304413 0.105103 0.239441 0.304810 0.131104 0.240234 0.305267 0.155273 0.240845 0.305725 0.178009 0.241669 0.306122 0.199554 0.242279 0.306610 0.220184 0.243103 0.307068 0.240234 0.243744 0.307465 0.260162 0.244507 0.307922 0.280212 0.245270 0.308441 0.300995 0.245911 0.308868 0.322479 0.246735 0.309357 0.345276 0.247375 0.309814 0.369843 0.248230 0.310272 0.396301 0.248901 0.310760 0.425140 0.249786 0.311188 0.456665 0.250458 0.311707 0.491180 0.251343 0.312134 0.529144 0.251953 0.312653 0.570709 0.252869 0.313110 0.614990 0.253510 0.313599 0.661835 0.254395 0.314056 0.710999 0.255066 0.314514 0.761871 0.255951 0.315002 0.813873 0.256622 0.315491 0.866882 0.257233 0.315979 0.915527 0.258179 0.316437 0.000000 0.256134 0.303131 0.000000 0.256683 0.303497 0.000000 0.257172 0.303955 0.017731 0.257935 0.304413 0.044678 0.258484 0.304810 0.079132 0.259277 0.305237 0.106995 0.259827 0.305695 0.132751 0.260406 0.306122 0.156860 0.261169 0.306610 0.179443 0.261749 0.307037 0.200806 0.262543 0.307465 0.221375 0.263123 0.307922 0.241333 0.263794 0.308411 0.261200 0.264557 0.308838 0.281311 0.265106 0.309357 0.302002 0.265961 0.309784 0.323547 0.266571 0.310272 0.346344 0.267426 0.310760 0.370941 0.267975 0.311188 0.397369 0.268677 0.311676 0.426117 0.269440 0.312103 0.457611 0.270050 0.312622 0.492249 0.270905 0.313110 0.530212 0.271484 0.313568 0.571533 0.272369 0.314056 0.615814 0.272980 0.314514 0.662720 0.273804 0.315002 0.711670 0.274414 0.315460 0.762268 0.275116 0.315979 0.814178 0.275879 0.316437 0.867096 0.276520 0.316895 0.915527 0.277344 0.317352 0.000000 0.275970 0.303955 0.000000 0.276428 0.304382 0.000000 0.277191 0.304810 0.019745 0.277679 0.305237 0.047760 0.278442 0.305664 0.081207 0.278961 0.306122 0.108734 0.279510 0.306580 0.134460 0.280273 0.307007 0.158417 0.280792 0.307465 0.180817 0.281311 0.307922 0.202087 0.282135 0.308380 0.222565 0.282654 0.308838 0.242493 0.283447 0.309326 0.262360 0.284027 0.309784 0.282379 0.284607 0.310242 0.303070 0.285370 0.310730 0.324615 0.285950 0.311188 0.347412 0.286774 0.311676 0.371887 0.287292 0.312103 0.398346 0.288086 0.312622 0.427185 0.288696 0.313080 0.458710 0.289276 0.313538 0.493347 0.290100 0.314056 0.531342 0.290680 0.314484 0.572479 0.291473 0.314972 0.616760 0.292084 0.315460 0.663483 0.292694 0.315918 0.712402 0.293488 0.316406 0.762909 0.294098 0.316895 0.814575 0.294891 0.317352 0.867157 0.295471 0.317810 0.915527 0.296082 0.318268 0.000000 0.295532 0.304810 0.000000 0.296021 0.305206 0.000000 0.296722 0.305664 0.021759 0.297241 0.306091 0.051300 0.297913 0.306549 0.083313 0.298492 0.307007 0.110718 0.298981 0.307434 0.136200 0.299744 0.307892 0.159912 0.300262 0.308380 0.182312 0.300903 0.308807 0.203339 0.301514 0.309296 0.223785 0.302094 0.309784 0.243622 0.302826 0.310211 0.263458 0.303406 0.310699 0.283447 0.303925 0.311157 0.304169 0.304718 0.311646 0.325684 0.305267 0.312103 0.348480 0.306030 0.312622 0.372925 0.306610 0.313080 0.399414 0.307129 0.313538 0.428223 0.307922 0.313995 0.459717 0.308472 0.314453 0.494446 0.309204 0.314941 0.532379 0.309845 0.315430 0.573547 0.310425 0.315918 0.617767 0.311218 0.316406 0.664276 0.311768 0.316864 0.712982 0.312561 0.317322 0.763275 0.313110 0.317780 0.814972 0.313690 0.318268 0.867340 0.314484 0.318695 0.915527 0.315063 0.319214 0.000000 0.315216 0.305634 0.000000 0.315918 0.306091 0.000000 0.316406 0.306549 0.024017 0.316895 0.306976 0.055084 0.317596 0.307434 0.085480 0.318085 0.307892 0.112671 0.318604 0.308350 0.138031 0.319336 0.308777 0.161621 0.319855 0.309296 0.183655 0.320526 0.309784 0.204865 0.321106 0.310211 0.225037 0.321686 0.310699 0.244812 0.322388 0.311127 0.264557 0.322968 0.311615 0.284546 0.323486 0.312103 0.305237 0.324219 0.312592 0.326752 0.324768 0.313080 0.349579 0.325439 0.313507 0.373932 0.326080 0.313995 0.400482 0.326630 0.314453 0.429260 0.327393 0.314911 0.460815 0.327972 0.315430 0.495392 0.328735 0.315918 0.533417 0.329285 0.316376 0.574554 0.329834 0.316833 0.618530 0.330597 0.317322 0.665131 0.331146 0.317780 0.713593 0.331757 0.318237 0.763885 0.332458 0.318695 0.815216 0.333008 0.319183 0.867493 0.333771 0.319641 0.915527 0.334320 0.320099 0.000000 0.335510 0.306488 0.000000 0.335999 0.306976 0.000214 0.336517 0.307434 0.026123 0.337219 0.307861 0.058868 0.337708 0.308319 0.087646 0.338257 0.308777 0.114685 0.338898 0.309265 0.139679 0.339447 0.309753 0.163116 0.340179 0.310181 0.185059 0.340698 0.310669 0.206085 0.341187 0.311127 0.226288 0.341888 0.311615 0.246002 0.342468 0.312073 0.265747 0.342987 0.312592 0.285645 0.343719 0.313019 0.306122 0.344269 0.313507 0.327850 0.344971 0.313965 0.350677 0.345551 0.314423 0.375061 0.346130 0.314911 0.401520 0.346832 0.315399 0.430389 0.347443 0.315887 0.461945 0.347961 0.316376 0.496490 0.348724 0.316803 0.534332 0.349243 0.317322 0.575623 0.349976 0.317749 0.619446 0.350555 0.318207 0.665802 0.351105 0.318695 0.714294 0.351837 0.319183 0.764374 0.352417 0.319611 0.815521 0.352936 0.320099 0.867737 0.353729 0.320557 0.915527 0.354248 0.321014 0.000000 0.356598 0.307434 0.000000 0.357056 0.307831 0.002167 0.357544 0.308319 0.028381 0.358154 0.308777 0.061066 0.358765 0.309265 0.089844 0.359283 0.309753 0.116486 0.360016 0.310150 0.141510 0.360504 0.310669 0.164764 0.361023 0.311096 0.186676 0.361725 0.311584 0.207489 0.362274 0.312073 0.227478 0.362946 0.312561 0.247192 0.363556 0.313019 0.266846 0.364075 0.313477 0.286774 0.364807 0.313934 0.307251 0.365356 0.314423 0.328949 0.365906 0.314911 0.351776 0.366638 0.315399 0.376160 0.367157 0.315887 0.402649 0.367859 0.316376 0.431488 0.368469 0.316803 0.463043 0.368988 0.317291 0.497589 0.369690 0.317749 0.535431 0.370300 0.318176 0.576599 0.370850 0.318695 0.620422 0.371613 0.319183 0.666656 0.372162 0.319611 0.715057 0.372864 0.320068 0.764771 0.373444 0.320526 0.816071 0.373932 0.321014 0.867981 0.374756 0.321411 0.915527 0.375275 0.321869 0.000000 0.378632 0.308289 0.000000 0.379181 0.308777 0.004333 0.379852 0.309265 0.030579 0.380341 0.309723 0.063568 0.380859 0.310150 0.092010 0.381592 0.310638 0.118500 0.382111 0.311096 0.143311 0.382782 0.311554 0.166382 0.383362 0.312042 0.188049 0.383850 0.312531 0.208771 0.384644 0.313019 0.228729 0.385193 0.313477 0.248352 0.385712 0.313934 0.268005 0.386444 0.314392 0.287933 0.386963 0.314880 0.308350 0.387573 0.315399 0.329834 0.388245 0.315857 0.352753 0.388794 0.316345 0.377258 0.389557 0.316772 0.403748 0.390106 0.317261 0.432648 0.390686 0.317719 0.464172 0.391388 0.318176 0.498627 0.391907 0.318665 0.536499 0.392487 0.319153 0.577423 0.393219 0.319611 0.621307 0.393768 0.320038 0.667542 0.394531 0.320496 0.715576 0.395081 0.320984 0.765472 0.395599 0.321411 0.816345 0.396301 0.321869 0.868134 0.396851 0.322296 0.915527 0.397614 0.322693 0.000000 0.402435 0.309174 0.000000 0.402985 0.309692 0.006470 0.403503 0.310150 0.032837 0.404053 0.310608 0.066040 0.404755 0.311066 0.094177 0.405273 0.311554 0.120514 0.406006 0.312012 0.145050 0.406555 0.312500 0.167877 0.407074 0.313019 0.189484 0.407776 0.313446 0.210114 0.408325 0.313934 0.230042 0.409058 0.314392 0.249542 0.409607 0.314880 0.269135 0.410156 0.315399 0.289001 0.410889 0.315826 0.309448 0.411469 0.316345 0.330963 0.411987 0.316772 0.353851 0.412750 0.317230 0.378387 0.413300 0.317719 0.404877 0.414032 0.318176 0.433746 0.414612 0.318634 0.465271 0.415131 0.319153 0.499756 0.415863 0.319611 0.537567 0.416443 0.320038 0.578461 0.416962 0.320496 0.622101 0.417725 0.320953 0.668152 0.418243 0.321381 0.716339 0.418915 0.321838 0.765839 0.419525 0.322296 0.816559 0.420074 0.322693 0.868286 0.420837 0.323181 0.915527 0.421326 0.323608 0.000000 0.427979 0.310120 0.000000 0.428497 0.310608 0.008698 0.429230 0.311066 0.035156 0.429749 0.311523 0.068359 0.430267 0.312012 0.096375 0.431061 0.312500 0.122559 0.431519 0.312988 0.146942 0.432281 0.313416 0.169678 0.432831 0.313934 0.190948 0.433380 0.314392 0.211456 0.434143 0.314850 0.231201 0.434662 0.315369 0.250732 0.435181 0.315826 0.270325 0.435974 0.316315 0.290161 0.436493 0.316742 0.310577 0.437195 0.317230 0.332092 0.437775 0.317719 0.354980 0.438324 0.318146 0.379486 0.439117 0.318634 0.406006 0.439667 0.319122 0.434845 0.440155 0.319580 0.466400 0.440948 0.320038 0.500824 0.441467 0.320465 0.538666 0.442230 0.320953 0.579498 0.442780 0.321381 0.623047 0.443298 0.321808 0.669006 0.444061 0.322296 0.716888 0.444611 0.322693 0.766266 0.445129 0.323181 0.817017 0.445862 0.323608 0.868439 0.446381 0.324005 0.915527 0.446960 0.324432 0.000000 0.455841 0.311066 0.000000 0.456329 0.311523 0.011047 0.456940 0.311981 0.037598 0.457611 0.312469 0.070801 0.458160 0.312958 0.098572 0.458923 0.313416 0.124603 0.459442 0.313904 0.148590 0.459961 0.314392 0.171143 0.460693 0.314819 0.192535 0.461273 0.315369 0.212769 0.461792 0.315826 0.232635 0.462555 0.316284 0.251953 0.463104 0.316742 0.271454 0.463837 0.317230 0.291290 0.464386 0.317688 0.311707 0.464966 0.318146 0.333191 0.465698 0.318634 0.355988 0.466217 0.319092 0.380615 0.466797 0.319550 0.407135 0.467560 0.320038 0.435974 0.468079 0.320465 0.467529 0.468811 0.320923 0.501923 0.469391 0.321350 0.539642 0.469910 0.321808 0.580536 0.470673 0.322266 0.623993 0.471191 0.322662 0.669678 0.471771 0.323181 0.717621 0.472473 0.323608 0.766907 0.472992 0.323975 0.817352 0.473480 0.324402 0.868530 0.474243 0.324860 0.915527 0.474762 0.325256 0.000000 0.486084 0.311951 0.000000 0.486633 0.312469 0.013458 0.487396 0.312958 0.039825 0.487915 0.313385 0.073303 0.488434 0.313873 0.100861 0.489197 0.314392 0.126404 0.489716 0.314819 0.150452 0.490295 0.315308 0.172760 0.491028 0.315796 0.193970 0.491547 0.316284 0.214264 0.492371 0.316711 0.233948 0.492859 0.317200 0.253174 0.493378 0.317688 0.272614 0.494141 0.318115 0.292419 0.494690 0.318604 0.312805 0.495392 0.319061 0.334259 0.496002 0.319550 0.357056 0.496552 0.320007 0.381683 0.497223 0.320465 0.408203 0.497833 0.320923 0.436890 0.498322 0.321350 0.468414 0.499115 0.321808 0.502930 0.499634 0.322235 0.540619 0.500214 0.322662 0.581299 0.500885 0.323151 0.624786 0.501404 0.323578 0.670502 0.501953 0.323975 0.718109 0.502655 0.324402 0.767242 0.503204 0.324829 0.817627 0.503876 0.325256 0.868683 0.504395 0.325653 0.915527 0.504913 0.326050 0.000000 0.519318 0.312927 0.000000 0.519806 0.313385 0.015747 0.520416 0.313873 0.042236 0.521118 0.314331 0.075775 0.521606 0.314819 0.103027 0.522369 0.315308 0.128448 0.522888 0.315796 0.152100 0.523438 0.316254 0.174438 0.524170 0.316711 0.195374 0.524750 0.317200 0.215607 0.525238 0.317657 0.235168 0.526031 0.318085 0.254303 0.526520 0.318604 0.273743 0.527191 0.319061 0.293549 0.527771 0.319519 0.313904 0.528351 0.320007 0.335388 0.529083 0.320435 0.358154 0.529602 0.320923 0.382721 0.530151 0.321350 0.409332 0.530853 0.321777 0.437988 0.531403 0.322205 0.469482 0.531952 0.322662 0.503998 0.532654 0.323120 0.541595 0.533173 0.323547 0.582306 0.533722 0.323975 0.625641 0.534393 0.324371 0.671295 0.534912 0.324829 0.718811 0.535583 0.325226 0.767883 0.536102 0.325653 0.817871 0.536591 0.326019 0.868866 0.537048 0.326416 0.915527 0.537811 0.326813 0.000000 0.555420 0.313843 0.000000 0.556183 0.314331 0.018158 0.556610 0.314819 0.044525 0.557159 0.315277 0.078064 0.557892 0.315765 0.105164 0.558380 0.316223 0.130493 0.559113 0.316711 0.153992 0.559662 0.317169 0.175934 0.560150 0.317627 0.196991 0.560791 0.318085 0.216919 0.561462 0.318573 0.236420 0.561920 0.319031 0.255524 0.562683 0.319519 0.274902 0.563232 0.319977 0.294647 0.563690 0.320404 0.315033 0.564423 0.320892 0.336456 0.564941 0.321350 0.359283 0.565460 0.321747 0.383728 0.566132 0.322205 0.410187 0.566681 0.322632 0.439026 0.567169 0.323090 0.470551 0.567902 0.323547 0.504944 0.568390 0.323944 0.542633 0.568848 0.324341 0.583313 0.569580 0.324799 0.626556 0.570068 0.325226 0.671936 0.570496 0.325623 0.719299 0.571198 0.325989 0.768250 0.571686 0.326385 0.818207 0.572113 0.326813 0.869110 0.572784 0.327179 0.915527 0.573303 0.327576 0.000000 0.594727 0.314758 0.000000 0.595215 0.315277 0.020599 0.595703 0.315735 0.048126 0.596283 0.316223 0.080475 0.596893 0.316711 0.107391 0.597351 0.317139 0.132477 0.598083 0.317627 0.155670 0.598541 0.318085 0.177673 0.599030 0.318542 0.198395 0.599762 0.319031 0.218201 0.600250 0.319519 0.237640 0.600677 0.319946 0.256744 0.601257 0.320404 0.276031 0.601898 0.320892 0.295624 0.602386 0.321320 0.316132 0.603027 0.321747 0.337555 0.603516 0.322205 0.360352 0.604034 0.322632 0.384796 0.604645 0.323090 0.411285 0.605164 0.323517 0.440094 0.605621 0.323944 0.471619 0.606140 0.324341 0.506012 0.606750 0.324768 0.543671 0.607208 0.325226 0.584259 0.607666 0.325623 0.627258 0.608307 0.325989 0.672729 0.608765 0.326385 0.720032 0.609192 0.326782 0.768585 0.609741 0.327148 0.818604 0.610260 0.327576 0.869293 0.610626 0.327972 0.915527 0.611053 0.328339 0.000000 0.636230 0.315704 0.000000 0.636688 0.316223 0.023071 0.637329 0.316681 0.052002 0.637756 0.317139 0.083038 0.638245 0.317627 0.109558 0.638885 0.318054 0.134247 0.639313 0.318542 0.157471 0.639771 0.319031 0.179169 0.640411 0.319458 0.199738 0.640869 0.319946 0.219543 0.641266 0.320374 0.238861 0.641724 0.320862 0.257843 0.642426 0.321289 0.277161 0.642822 0.321716 0.296753 0.643219 0.322205 0.317230 0.643921 0.322632 0.338623 0.644318 0.323059 0.361389 0.644745 0.323517 0.385834 0.645294 0.323944 0.412354 0.645844 0.324341 0.441193 0.646210 0.324768 0.472687 0.646637 0.325195 0.507050 0.647278 0.325592 0.544647 0.647644 0.325989 0.585022 0.648041 0.326385 0.628113 0.648438 0.326782 0.673279 0.649048 0.327148 0.720520 0.649445 0.327545 0.769226 0.649811 0.327972 0.818817 0.650238 0.328308 0.869415 0.650757 0.328674 0.915527 0.651093 0.329041 0.000000 0.680023 0.316650 0.000366 0.680389 0.317139 0.025421 0.680817 0.317596 0.056427 0.681396 0.318054 0.085358 0.681824 0.318542 0.111694 0.682159 0.319031 0.136261 0.682739 0.319458 0.159210 0.683197 0.319916 0.180725 0.683563 0.320374 0.201233 0.683929 0.320831 0.220856 0.684448 0.321289 0.240051 0.684875 0.321686 0.259033 0.685272 0.322174 0.278320 0.685608 0.322601 0.297791 0.686188 0.323029 0.318115 0.686615 0.323517 0.339722 0.686951 0.323914 0.362518 0.687317 0.324310 0.386871 0.687927 0.324738 0.413391 0.688293 0.325165 0.442261 0.688599 0.325592 0.473755 0.688995 0.325989 0.508057 0.689270 0.326355 0.545532 0.689880 0.326752 0.585938 0.690216 0.327148 0.628967 0.690491 0.327515 0.674042 0.690857 0.327972 0.720917 0.691406 0.328308 0.769531 0.691711 0.328674 0.819092 0.692078 0.329041 0.869507 0.692352 0.329376 0.915527 0.692657 0.329712 0.000000 0.725311 0.317566 0.002441 0.725800 0.318054 0.027863 0.726135 0.318512 0.059814 0.726471 0.319000 0.087677 0.726746 0.319427 0.113831 0.727325 0.319916 0.138184 0.727631 0.320343 0.160919 0.727905 0.320801 0.182343 0.728241 0.321259 0.202667 0.728760 0.321686 0.222260 0.729126 0.322144 0.241302 0.729431 0.322571 0.260193 0.729706 0.323029 0.279419 0.730042 0.323486 0.298859 0.730316 0.323914 0.319153 0.730865 0.324310 0.340515 0.731171 0.324738 0.363342 0.731445 0.325165 0.387939 0.731750 0.325562 0.414459 0.732025 0.325989 0.443329 0.732513 0.326355 0.474792 0.732788 0.326721 0.509094 0.733124 0.327148 0.546448 0.733368 0.327515 0.586823 0.733673 0.327911 0.629608 0.734131 0.328308 0.674683 0.734406 0.328644 0.721588 0.734680 0.329010 0.769867 0.734894 0.329376 0.819336 0.735138 0.329712 0.869659 0.735474 0.330017 0.915527 0.735870 0.330353 0.000000 0.772095 0.318481 0.004730 0.772308 0.319000 0.030365 0.772552 0.319427 0.062378 0.772797 0.319916 0.089996 0.773071 0.320343 0.115936 0.773468 0.320770 0.139923 0.773743 0.321259 0.162537 0.774017 0.321686 0.183716 0.774231 0.322113 0.204071 0.774475 0.322571 0.223511 0.774750 0.323029 0.242462 0.775177 0.323456 0.261292 0.775421 0.323883 0.280365 0.775604 0.324310 0.299896 0.775848 0.324738 0.320160 0.776062 0.325134 0.341553 0.776306 0.325562 0.364349 0.776642 0.325958 0.388977 0.776978 0.326324 0.415497 0.777191 0.326721 0.444061 0.777466 0.327118 0.475525 0.777618 0.327484 0.509918 0.777802 0.327911 0.547394 0.778076 0.328308 0.587616 0.778229 0.328644 0.630432 0.778625 0.329010 0.675354 0.778839 0.329376 0.722046 0.779022 0.329712 0.770386 0.779266 0.330017 0.819763 0.779449 0.330353 0.869751 0.779633 0.330658 0.915527 0.779816 0.330963 0.000000 0.819397 0.319427 0.007050 0.819580 0.319885 0.032654 0.819885 0.320343 0.064972 0.820160 0.320770 0.092255 0.820312 0.321259 0.118042 0.820465 0.321686 0.141815 0.820648 0.322113 0.164185 0.820770 0.322540 0.185333 0.820923 0.322998 0.205353 0.821106 0.323456 0.224762 0.821381 0.323853 0.243591 0.821625 0.324280 0.262482 0.821808 0.324707 0.281433 0.821960 0.325134 0.300995 0.822113 0.325562 0.321228 0.822266 0.325958 0.342651 0.822449 0.326294 0.365356 0.822540 0.326721 0.390015 0.822693 0.327118 0.416504 0.822815 0.327484 0.445068 0.823120 0.327881 0.476501 0.823364 0.328308 0.510834 0.823456 0.328613 0.548248 0.823608 0.328979 0.588379 0.823792 0.329346 0.631104 0.823883 0.329712 0.675995 0.824036 0.330017 0.722687 0.824158 0.330322 0.770752 0.824249 0.330658 0.819977 0.824402 0.330963 0.869812 0.824463 0.331268 0.915527 0.824768 0.331604 0.000000 0.867401 0.320312 0.009460 0.867493 0.320770 0.035126 0.867584 0.321228 0.067383 0.867676 0.321686 0.094482 0.867737 0.322113 0.119965 0.867798 0.322540 0.143738 0.867981 0.322998 0.165771 0.868164 0.323425 0.186798 0.868286 0.323853 0.206696 0.868378 0.324280 0.226013 0.868469 0.324677 0.244781 0.868530 0.325134 0.263550 0.868622 0.325531 0.282501 0.868713 0.325928 0.302032 0.868744 0.326294 0.322266 0.868835 0.326721 0.343658 0.868958 0.327087 0.366394 0.868988 0.327484 0.390778 0.869110 0.327881 0.417267 0.869110 0.328278 0.446075 0.869202 0.328613 0.477478 0.869263 0.328949 0.511749 0.869293 0.329346 0.549011 0.869385 0.329681 0.589264 0.869446 0.329987 0.631805 0.869568 0.330322 0.676575 0.869720 0.330627 0.723083 0.869781 0.330933 0.770996 0.869934 0.331268 0.820160 0.869995 0.331604 0.869904 0.870087 0.331879 0.915527 0.870087 0.332184 0.000000 0.915527 0.321198 0.011902 0.915527 0.321655 0.037537 0.915527 0.322083 0.069794 0.915527 0.322540 0.096771 0.915527 0.322968 0.121918 0.915527 0.323425 0.145355 0.915527 0.323853 0.167450 0.915527 0.324280 0.188171 0.915527 0.324677 0.207977 0.915527 0.325104 0.227173 0.915527 0.325500 0.245941 0.915527 0.325897 0.264618 0.915527 0.326294 0.283478 0.915527 0.326691 0.303009 0.915527 0.327057 0.323273 0.915527 0.327454 0.344635 0.915527 0.327850 0.367401 0.915527 0.328278 0.391785 0.915527 0.328613 0.418243 0.915527 0.328949 0.447052 0.915527 0.329315 0.478455 0.915527 0.329651 0.512573 0.915527 0.329987 0.549896 0.915527 0.330292 0.589844 0.915527 0.330627 0.632538 0.915527 0.330933 0.677032 0.915527 0.331268 0.723511 0.915527 0.331573 0.771332 0.915527 0.331879 0.820312 0.915527 0.332153 0.870117 0.915527 0.332428 0.915527 0.915527 0.332672 0.000000 0.000000 0.318054 0.000000 0.000000 0.318237 0.000000 0.000000 0.318451 0.000610 0.000000 0.318695 0.026917 0.000000 0.318970 0.060120 0.000000 0.319214 0.089569 0.000000 0.319458 0.116943 0.000000 0.319702 0.142365 0.000000 0.320038 0.166168 0.000000 0.320282 0.188446 0.000000 0.320557 0.209869 0.000000 0.320892 0.230621 0.000000 0.321167 0.250793 0.000000 0.321472 0.271271 0.000000 0.321808 0.291901 0.000000 0.322113 0.313660 0.000000 0.322449 0.336365 0.000000 0.322784 0.360626 0.000000 0.323151 0.386932 0.000000 0.323517 0.415649 0.000000 0.323853 0.447113 0.000000 0.324188 0.481567 0.000000 0.324554 0.519684 0.000000 0.324951 0.561462 0.000000 0.325317 0.606689 0.000000 0.325684 0.654449 0.000000 0.326050 0.704865 0.000000 0.326416 0.756989 0.000000 0.326813 0.810455 0.000000 0.327209 0.865173 0.000000 0.327637 0.915527 0.000000 0.328033 0.000000 0.000000 0.318451 0.000000 0.000000 0.318695 0.000000 0.000000 0.318970 0.001648 0.000000 0.319214 0.028229 0.000000 0.319458 0.061584 0.000000 0.319702 0.090790 0.000000 0.320007 0.118103 0.000000 0.320282 0.143555 0.000000 0.320557 0.167175 0.000000 0.320862 0.189453 0.000000 0.321167 0.210846 0.000000 0.321472 0.231323 0.000000 0.321777 0.251678 0.000000 0.322113 0.272095 0.000000 0.322449 0.292786 0.000397 0.322754 0.314301 0.001495 0.323151 0.337067 0.002625 0.323486 0.361481 0.003662 0.323822 0.387848 0.004913 0.324188 0.416595 0.006165 0.324524 0.448029 0.007416 0.324921 0.482513 0.008667 0.325317 0.520599 0.009918 0.325653 0.562378 0.011261 0.326050 0.607361 0.012573 0.326416 0.655212 0.013885 0.326813 0.705383 0.015259 0.327209 0.757324 0.016632 0.327637 0.810913 0.018158 0.328033 0.865448 0.019623 0.328430 0.915527 0.021027 0.328827 0.000000 0.013702 0.318909 0.000000 0.014587 0.319183 0.000000 0.015320 0.319427 0.002899 0.016266 0.319702 0.029572 0.017181 0.320007 0.063049 0.018066 0.320282 0.092133 0.018982 0.320557 0.119354 0.020020 0.320862 0.144653 0.021057 0.321167 0.168304 0.022095 0.321442 0.190460 0.023193 0.321777 0.211853 0.024292 0.322113 0.232208 0.025299 0.322418 0.252594 0.026489 0.322723 0.272827 0.027649 0.323120 0.293671 0.028839 0.323456 0.315216 0.030121 0.323822 0.337921 0.031281 0.324188 0.362457 0.032562 0.324524 0.388763 0.033844 0.324921 0.417328 0.035095 0.325287 0.448761 0.036407 0.325653 0.483490 0.037750 0.326019 0.521545 0.039062 0.326385 0.563354 0.040405 0.326782 0.608154 0.041809 0.327179 0.655884 0.043121 0.327606 0.705933 0.044525 0.328033 0.757965 0.046021 0.328400 0.811218 0.048615 0.328827 0.865570 0.051178 0.329254 0.915527 0.053864 0.329620 0.000000 0.042816 0.319427 0.000000 0.043579 0.319702 0.000000 0.044495 0.320007 0.004272 0.045471 0.320282 0.031036 0.047150 0.320526 0.064758 0.048584 0.320831 0.093689 0.050385 0.321136 0.120667 0.052216 0.321411 0.145905 0.054230 0.321747 0.169250 0.056091 0.322083 0.191559 0.058075 0.322388 0.212616 0.059509 0.322723 0.233154 0.060791 0.323120 0.253510 0.062042 0.323456 0.273743 0.063416 0.323792 0.294556 0.064728 0.324158 0.316132 0.066010 0.324524 0.338867 0.067200 0.324890 0.363159 0.068604 0.325287 0.389496 0.070038 0.325653 0.418243 0.071442 0.325989 0.449707 0.072845 0.326385 0.484314 0.074310 0.326782 0.522400 0.075745 0.327148 0.564148 0.077209 0.327576 0.609100 0.078674 0.328003 0.656677 0.080139 0.328400 0.706604 0.081604 0.328796 0.758301 0.083099 0.329224 0.811493 0.084625 0.329620 0.865692 0.086121 0.330017 0.915527 0.087585 0.330444 0.000000 0.079773 0.319977 0.000000 0.080566 0.320251 0.000000 0.081604 0.320526 0.005615 0.082703 0.320831 0.032532 0.083588 0.321136 0.066284 0.084747 0.321411 0.095154 0.085846 0.321747 0.122009 0.086853 0.322083 0.147156 0.087952 0.322388 0.170532 0.089172 0.322693 0.192627 0.090393 0.323090 0.213654 0.091492 0.323425 0.234192 0.092651 0.323792 0.254272 0.093903 0.324158 0.274689 0.095154 0.324493 0.295319 0.096466 0.324890 0.317017 0.097778 0.325256 0.339813 0.098846 0.325653 0.364105 0.100189 0.325989 0.390472 0.101532 0.326385 0.419250 0.102875 0.326752 0.450745 0.104248 0.327148 0.485229 0.105560 0.327576 0.523315 0.106964 0.327972 0.565002 0.108276 0.328400 0.609772 0.109528 0.328796 0.657379 0.110870 0.329224 0.707153 0.112305 0.329620 0.758789 0.113678 0.329987 0.811829 0.115112 0.330414 0.865845 0.116547 0.330841 0.915527 0.117920 0.331268 0.000000 0.110596 0.320526 0.000000 0.111603 0.320801 0.000000 0.112427 0.321106 0.007141 0.113464 0.321411 0.034210 0.114532 0.321716 0.068054 0.115387 0.322052 0.096680 0.116486 0.322357 0.123566 0.117615 0.322693 0.148438 0.118530 0.323090 0.171814 0.119659 0.323425 0.193756 0.120789 0.323761 0.214722 0.121796 0.324127 0.235229 0.122955 0.324493 0.255280 0.124146 0.324890 0.275574 0.125336 0.325256 0.296265 0.126373 0.325623 0.317810 0.127594 0.325989 0.340515 0.128784 0.326355 0.365051 0.130066 0.326752 0.391479 0.131134 0.327148 0.420258 0.132324 0.327545 0.451782 0.133636 0.327972 0.486267 0.134888 0.328369 0.524323 0.136169 0.328796 0.565979 0.137238 0.329193 0.610687 0.138458 0.329620 0.658081 0.139771 0.329987 0.707886 0.141052 0.330383 0.759338 0.142365 0.330811 0.812286 0.143555 0.331238 0.865997 0.144745 0.331635 0.915527 0.146027 0.332062 0.000000 0.139679 0.321106 0.000000 0.140625 0.321411 0.000000 0.141418 0.321716 0.008728 0.142365 0.322052 0.035889 0.143188 0.322357 0.069733 0.144226 0.322693 0.098419 0.145142 0.323059 0.125031 0.146057 0.323425 0.149750 0.147125 0.323761 0.173004 0.147980 0.324097 0.194916 0.149078 0.324463 0.215820 0.150146 0.324890 0.236237 0.151062 0.325226 0.256287 0.152161 0.325623 0.276459 0.153290 0.325989 0.297211 0.154175 0.326355 0.318756 0.155334 0.326721 0.341522 0.156464 0.327118 0.366058 0.157501 0.327515 0.392487 0.158539 0.327972 0.421051 0.159698 0.328369 0.452606 0.160797 0.328796 0.487305 0.161774 0.329193 0.525391 0.162964 0.329590 0.566986 0.164154 0.329956 0.611633 0.165100 0.330353 0.658997 0.166290 0.330780 0.708588 0.167511 0.331238 0.759766 0.168488 0.331604 0.812531 0.169617 0.332062 0.866119 0.170837 0.332489 0.915527 0.171997 0.332886 0.000000 0.166412 0.321686 0.000000 0.167328 0.322021 0.000000 0.168060 0.322357 0.010437 0.168976 0.322693 0.037659 0.169708 0.323059 0.071594 0.170685 0.323425 0.100067 0.171417 0.323761 0.126465 0.172394 0.324097 0.151123 0.173401 0.324463 0.174286 0.174133 0.324860 0.196106 0.175171 0.325226 0.216919 0.175964 0.325592 0.237274 0.177032 0.325989 0.257324 0.177979 0.326324 0.277435 0.178802 0.326721 0.298218 0.179901 0.327118 0.319763 0.180725 0.327515 0.342529 0.181763 0.327972 0.367004 0.182770 0.328369 0.393463 0.183685 0.328766 0.422119 0.184723 0.329163 0.453613 0.185608 0.329590 0.488373 0.186676 0.329956 0.526428 0.187744 0.330353 0.567932 0.188660 0.330780 0.612457 0.189697 0.331207 0.659668 0.190704 0.331604 0.709137 0.191681 0.332031 0.760437 0.192719 0.332458 0.812836 0.193817 0.332886 0.866425 0.194702 0.333282 0.915527 0.195770 0.333710 0.000000 0.191223 0.322357 0.000000 0.191864 0.322662 0.000000 0.192719 0.323029 0.012299 0.193329 0.323395 0.039429 0.194275 0.323761 0.073547 0.195007 0.324097 0.101837 0.195831 0.324432 0.128143 0.196564 0.324829 0.152679 0.197479 0.325226 0.175568 0.198212 0.325592 0.197296 0.199158 0.325958 0.218048 0.199982 0.326294 0.238342 0.200836 0.326721 0.258392 0.201660 0.327087 0.278473 0.202545 0.327484 0.299042 0.203491 0.327972 0.320770 0.204254 0.328339 0.343567 0.205231 0.328735 0.367920 0.206024 0.329163 0.394348 0.207031 0.329559 0.423126 0.207764 0.329956 0.454651 0.208771 0.330353 0.489380 0.209778 0.330780 0.527374 0.210541 0.331207 0.568756 0.211517 0.331604 0.613342 0.212341 0.332031 0.660431 0.213348 0.332458 0.709686 0.214172 0.332855 0.760834 0.215118 0.333252 0.813324 0.216125 0.333710 0.866669 0.216888 0.334137 0.915527 0.217896 0.334564 0.000000 0.214050 0.323029 0.000000 0.214874 0.323395 0.000000 0.215515 0.323730 0.014160 0.216309 0.324097 0.041321 0.216949 0.324432 0.075562 0.217804 0.324829 0.103668 0.218414 0.325195 0.129730 0.219299 0.325562 0.154053 0.219971 0.325958 0.176880 0.220764 0.326294 0.198517 0.221466 0.326691 0.219177 0.222412 0.327057 0.239319 0.223053 0.327484 0.259430 0.223846 0.327911 0.279541 0.224640 0.328308 0.300079 0.225464 0.328735 0.321625 0.226227 0.329132 0.344574 0.227173 0.329559 0.368988 0.227875 0.329956 0.395386 0.228760 0.330322 0.424225 0.229462 0.330750 0.455719 0.230377 0.331207 0.490295 0.231140 0.331604 0.528290 0.232056 0.332031 0.569763 0.232758 0.332458 0.614258 0.233704 0.332855 0.661316 0.234436 0.333252 0.710480 0.235413 0.333679 0.761292 0.236115 0.334106 0.813629 0.237061 0.334564 0.866791 0.237732 0.334961 0.915527 0.238678 0.335419 0.000000 0.235718 0.323700 0.000000 0.236328 0.324066 0.000000 0.237091 0.324432 0.016083 0.237671 0.324799 0.043243 0.238464 0.325195 0.077484 0.239014 0.325562 0.105377 0.239899 0.325928 0.131439 0.240448 0.326294 0.155518 0.241058 0.326660 0.178192 0.241913 0.327057 0.199738 0.242523 0.327484 0.220367 0.243347 0.327881 0.240448 0.243988 0.328308 0.260406 0.244843 0.328705 0.280487 0.245483 0.329132 0.301147 0.246216 0.329559 0.322662 0.246979 0.329926 0.345520 0.247681 0.330322 0.369995 0.248505 0.330750 0.396454 0.249176 0.331177 0.425293 0.250000 0.331604 0.456818 0.250763 0.332001 0.491302 0.251526 0.332428 0.529327 0.252197 0.332825 0.570831 0.253113 0.333252 0.615204 0.253754 0.333679 0.661987 0.254639 0.334106 0.711182 0.255310 0.334534 0.761902 0.256195 0.334961 0.813934 0.256836 0.335388 0.866913 0.257721 0.335785 0.915527 0.258392 0.336243 0.000000 0.256317 0.324402 0.000000 0.256836 0.324799 0.000000 0.257507 0.325165 0.018036 0.258179 0.325562 0.045197 0.258728 0.325928 0.079590 0.259491 0.326294 0.107269 0.260010 0.326660 0.133057 0.260834 0.327057 0.157196 0.261383 0.327454 0.179779 0.261963 0.327881 0.200958 0.262787 0.328308 0.221527 0.263336 0.328705 0.241547 0.264160 0.329102 0.261383 0.264771 0.329529 0.281555 0.265503 0.329895 0.302155 0.266144 0.330322 0.323669 0.266785 0.330719 0.346588 0.267578 0.331146 0.371063 0.268219 0.331573 0.397491 0.269043 0.331970 0.426361 0.269684 0.332397 0.457886 0.270508 0.332825 0.492401 0.271088 0.333252 0.530396 0.271881 0.333679 0.571808 0.272552 0.334106 0.615967 0.273163 0.334534 0.662842 0.274048 0.334930 0.711731 0.274658 0.335358 0.762329 0.275482 0.335785 0.814209 0.276093 0.336243 0.867096 0.276947 0.336609 0.915527 0.277588 0.337067 0.000000 0.276123 0.325165 0.000000 0.276794 0.325531 0.000000 0.277374 0.325897 0.020081 0.277863 0.326294 0.048401 0.278625 0.326660 0.081573 0.279144 0.327057 0.109253 0.279694 0.327454 0.134827 0.280487 0.327881 0.158661 0.280975 0.328308 0.181122 0.281769 0.328705 0.202271 0.282318 0.329102 0.222778 0.282898 0.329498 0.242645 0.283661 0.329895 0.262482 0.284210 0.330261 0.282623 0.284943 0.330719 0.303253 0.285614 0.331146 0.324738 0.286163 0.331543 0.347534 0.286957 0.331970 0.372162 0.287537 0.332397 0.398621 0.288330 0.332794 0.427490 0.288910 0.333252 0.458984 0.289764 0.333649 0.493500 0.290314 0.334076 0.531464 0.290894 0.334534 0.572754 0.291687 0.334930 0.616913 0.292297 0.335358 0.663696 0.293121 0.335785 0.712524 0.293701 0.336212 0.762970 0.294373 0.336578 0.814697 0.295105 0.337036 0.867188 0.295654 0.337433 0.915527 0.296509 0.337891 0.000000 0.295715 0.325897 0.000000 0.296417 0.326263 0.000000 0.296906 0.326630 0.022247 0.297424 0.327026 0.051910 0.298187 0.327423 0.083618 0.298645 0.327850 0.111115 0.299255 0.328308 0.136444 0.299957 0.328674 0.160248 0.300476 0.329071 0.182465 0.301178 0.329498 0.203766 0.301758 0.329895 0.223999 0.302277 0.330261 0.243835 0.303040 0.330688 0.263611 0.303589 0.331116 0.283600 0.304260 0.331543 0.304321 0.304901 0.331940 0.325836 0.305481 0.332367 0.348633 0.306244 0.332794 0.373260 0.306824 0.333221 0.399689 0.307373 0.333618 0.428558 0.308105 0.334076 0.459869 0.308716 0.334503 0.494598 0.309479 0.334900 0.532562 0.310059 0.335358 0.573669 0.310760 0.335754 0.617889 0.311401 0.336182 0.664368 0.311981 0.336578 0.713074 0.312744 0.337006 0.763367 0.313354 0.337433 0.815002 0.314026 0.337860 0.867340 0.314667 0.338226 0.915527 0.315277 0.338684 0.000000 0.315399 0.326630 0.000000 0.316101 0.327026 0.000000 0.316589 0.327393 0.024292 0.317200 0.327850 0.055664 0.317780 0.328278 0.085785 0.318298 0.328644 0.112976 0.318848 0.329071 0.138306 0.319519 0.329468 0.161865 0.320038 0.329865 0.183899 0.320770 0.330261 0.205078 0.321320 0.330688 0.225189 0.321869 0.331116 0.245026 0.322601 0.331543 0.264771 0.323151 0.331940 0.284729 0.323883 0.332367 0.305450 0.324432 0.332764 0.326935 0.324982 0.333191 0.349762 0.325745 0.333618 0.374268 0.326294 0.334045 0.400818 0.326965 0.334473 0.429474 0.327606 0.334900 0.460968 0.328156 0.335358 0.495667 0.328949 0.335754 0.533630 0.329498 0.336182 0.574707 0.330017 0.336548 0.618774 0.330811 0.336975 0.665253 0.331360 0.337433 0.713776 0.332123 0.337830 0.763977 0.332642 0.338226 0.815308 0.333221 0.338654 0.867493 0.333954 0.339050 0.915527 0.334503 0.339478 0.000000 0.335724 0.327393 0.000000 0.336182 0.327850 0.000610 0.336700 0.328247 0.026642 0.337402 0.328644 0.059387 0.337891 0.329041 0.087921 0.338593 0.329468 0.114990 0.339111 0.329865 0.139984 0.339600 0.330261 0.163361 0.340332 0.330658 0.185516 0.340851 0.331116 0.206360 0.341370 0.331512 0.226440 0.342133 0.331940 0.246185 0.342651 0.332367 0.265869 0.343292 0.332764 0.285797 0.343903 0.333191 0.306427 0.344482 0.333588 0.328003 0.345184 0.334015 0.350830 0.345764 0.334473 0.375214 0.346344 0.334900 0.401703 0.347076 0.335327 0.430542 0.347626 0.335724 0.462097 0.348297 0.336182 0.496796 0.348907 0.336548 0.534485 0.349457 0.336975 0.575745 0.350220 0.337402 0.619598 0.350739 0.337830 0.666016 0.351440 0.338226 0.714386 0.352051 0.338623 0.764496 0.352600 0.339050 0.815735 0.353363 0.339478 0.867737 0.353912 0.339874 0.915527 0.354431 0.340271 0.000000 0.356720 0.328247 0.000000 0.357239 0.328613 0.002563 0.357727 0.329041 0.028748 0.358398 0.329468 0.061646 0.358948 0.329834 0.090179 0.359436 0.330261 0.117004 0.360199 0.330658 0.141785 0.360718 0.331085 0.165070 0.361359 0.331512 0.186920 0.361938 0.331940 0.207672 0.362427 0.332336 0.227692 0.363220 0.332764 0.247375 0.363739 0.333191 0.267029 0.364288 0.333588 0.286957 0.365021 0.334015 0.307526 0.365540 0.334442 0.329102 0.366150 0.334869 0.351929 0.366821 0.335297 0.376312 0.367401 0.335724 0.402802 0.368134 0.336151 0.431702 0.368652 0.336548 0.463226 0.369232 0.336975 0.497833 0.369965 0.337402 0.535583 0.370514 0.337799 0.576752 0.371094 0.338196 0.620544 0.371826 0.338623 0.666748 0.372345 0.339050 0.715149 0.373108 0.339447 0.764923 0.373627 0.339844 0.816101 0.374268 0.340240 0.867981 0.374939 0.340851 0.915527 0.375458 0.341248 0.000000 0.378845 0.329041 0.000000 0.379547 0.329437 0.004639 0.380035 0.329834 0.031097 0.380524 0.330231 0.064056 0.381256 0.330627 0.092316 0.381775 0.331055 0.118896 0.382263 0.331482 0.143646 0.383057 0.331940 0.166626 0.383545 0.332306 0.188324 0.384155 0.332733 0.208984 0.384827 0.333160 0.229034 0.385345 0.333588 0.248657 0.386108 0.334015 0.268188 0.386597 0.334442 0.288086 0.387177 0.334869 0.308624 0.387909 0.335297 0.330170 0.388458 0.335693 0.353058 0.388977 0.336121 0.377441 0.389771 0.336548 0.403961 0.390289 0.336945 0.432800 0.391052 0.337372 0.464325 0.391571 0.337799 0.498810 0.392120 0.338196 0.536682 0.392883 0.338593 0.577606 0.393433 0.339020 0.621521 0.393951 0.339417 0.667664 0.394775 0.339813 0.715668 0.395264 0.340210 0.765564 0.395996 0.340851 0.816406 0.396515 0.341217 0.868134 0.397064 0.341644 0.915527 0.397797 0.342041 0.000000 0.402710 0.329834 0.000000 0.403168 0.330231 0.006897 0.403687 0.330597 0.033356 0.404419 0.331024 0.066376 0.404968 0.331482 0.094513 0.405426 0.331879 0.120819 0.406219 0.332306 0.145325 0.406708 0.332703 0.168304 0.407410 0.333130 0.189850 0.407990 0.333588 0.210297 0.408539 0.333984 0.230377 0.409302 0.334442 0.249725 0.409821 0.334869 0.269318 0.410309 0.335266 0.289215 0.411102 0.335663 0.309753 0.411652 0.336121 0.331268 0.412323 0.336517 0.354156 0.412964 0.336945 0.378540 0.413483 0.337372 0.405029 0.414276 0.337799 0.433929 0.414795 0.338196 0.465424 0.415314 0.338593 0.499908 0.416077 0.339020 0.537720 0.416626 0.339417 0.578613 0.417267 0.339813 0.622345 0.417908 0.340210 0.668335 0.418457 0.340851 0.716431 0.419220 0.341217 0.765930 0.419739 0.341644 0.816650 0.420288 0.342041 0.868286 0.420990 0.342407 0.915527 0.421539 0.342804 0.000000 0.428192 0.330597 0.000000 0.428741 0.331024 0.009186 0.429443 0.331451 0.035736 0.429932 0.331879 0.068970 0.430695 0.332275 0.096863 0.431213 0.332672 0.122864 0.431763 0.333130 0.147186 0.432495 0.333557 0.169861 0.433044 0.333984 0.191345 0.433563 0.334412 0.211853 0.434326 0.334839 0.231598 0.434814 0.335266 0.250946 0.435577 0.335663 0.270447 0.436157 0.336090 0.290314 0.436707 0.336517 0.310760 0.437439 0.336914 0.332367 0.437988 0.337341 0.355225 0.438538 0.337769 0.379639 0.439301 0.338196 0.406158 0.439819 0.338562 0.435028 0.440521 0.338989 0.466553 0.441132 0.339417 0.500977 0.441681 0.339813 0.538849 0.442444 0.340210 0.579651 0.442993 0.340851 0.623169 0.443481 0.341217 0.669128 0.444275 0.341644 0.716949 0.444794 0.342010 0.766479 0.445404 0.342377 0.817139 0.446045 0.342773 0.868439 0.446594 0.343170 0.915527 0.447327 0.343536 0.000000 0.456055 0.331451 0.000000 0.456543 0.331879 0.011475 0.457306 0.332275 0.037964 0.457825 0.332672 0.071320 0.458344 0.333099 0.099030 0.459076 0.333557 0.124908 0.459625 0.333954 0.148926 0.460236 0.334381 0.171509 0.460938 0.334839 0.192780 0.461456 0.335236 0.213165 0.462189 0.335663 0.232880 0.462769 0.336090 0.252258 0.463318 0.336487 0.271637 0.464081 0.336884 0.291473 0.464600 0.337341 0.311859 0.465210 0.337738 0.333344 0.465881 0.338165 0.356140 0.466461 0.338562 0.380768 0.467072 0.338989 0.407288 0.467773 0.339386 0.436127 0.468292 0.339813 0.467651 0.469086 0.340210 0.502075 0.469574 0.340790 0.539917 0.470093 0.341187 0.580658 0.470856 0.341614 0.624115 0.471405 0.341980 0.669952 0.472168 0.342377 0.717712 0.472626 0.342773 0.766937 0.473175 0.343170 0.817413 0.473846 0.343506 0.868561 0.474426 0.343903 0.915527 0.474915 0.344269 0.000000 0.486328 0.332275 0.000000 0.486847 0.332672 0.013794 0.487579 0.333099 0.040405 0.488098 0.333527 0.073669 0.488861 0.333923 0.101135 0.489380 0.334381 0.126923 0.489929 0.334808 0.150726 0.490631 0.335236 0.173157 0.491211 0.335632 0.194183 0.491730 0.336090 0.214478 0.492523 0.336487 0.234131 0.493042 0.336884 0.253540 0.493713 0.337311 0.272766 0.494324 0.337708 0.292572 0.494904 0.338165 0.312958 0.495667 0.338531 0.334442 0.496155 0.338959 0.357269 0.496735 0.339386 0.381836 0.497467 0.339752 0.408356 0.498016 0.340210 0.437225 0.498596 0.340790 0.468689 0.499298 0.341187 0.503143 0.499786 0.341583 0.540924 0.500580 0.341980 0.581482 0.501038 0.342346 0.625061 0.501617 0.342773 0.670593 0.502319 0.343140 0.718201 0.502869 0.343506 0.767334 0.503357 0.343872 0.817657 0.504059 0.344238 0.868744 0.504608 0.344604 0.915527 0.505066 0.344971 0.000000 0.519501 0.333099 0.000000 0.520020 0.333527 0.016235 0.520782 0.333923 0.042633 0.521301 0.334351 0.076141 0.521790 0.334778 0.103455 0.522552 0.335236 0.128937 0.523102 0.335632 0.152618 0.523682 0.336060 0.174683 0.524384 0.336487 0.195831 0.524902 0.336884 0.215820 0.525452 0.337311 0.235352 0.526184 0.337708 0.254578 0.526703 0.338135 0.273956 0.527496 0.338531 0.293701 0.528015 0.338959 0.314056 0.528534 0.339355 0.335541 0.529297 0.339752 0.358337 0.529785 0.340179 0.382965 0.530457 0.340729 0.409485 0.531067 0.341187 0.438324 0.531616 0.341553 0.469727 0.532196 0.341949 0.504272 0.532867 0.342346 0.541779 0.533386 0.342773 0.582428 0.534088 0.343140 0.625732 0.534607 0.343506 0.671417 0.535065 0.343842 0.718933 0.535828 0.344238 0.767914 0.536316 0.344574 0.817902 0.536774 0.344940 0.868927 0.537415 0.345306 0.915527 0.537994 0.345673 0.000000 0.555634 0.333923 0.000000 0.556335 0.334351 0.018707 0.556854 0.334778 0.045044 0.557526 0.335205 0.078644 0.558075 0.335571 0.105621 0.558563 0.336029 0.130737 0.559326 0.336456 0.154236 0.559845 0.336884 0.176300 0.560333 0.337311 0.197205 0.561096 0.337708 0.217102 0.561615 0.338135 0.236603 0.562164 0.338531 0.255859 0.562836 0.338928 0.275055 0.563385 0.339325 0.294861 0.563873 0.339752 0.315186 0.564606 0.340149 0.336639 0.565125 0.340668 0.359436 0.565674 0.341187 0.384003 0.566376 0.341553 0.410461 0.566864 0.341949 0.439362 0.567413 0.342346 0.470764 0.568054 0.342743 0.505249 0.568542 0.343109 0.542786 0.569153 0.343475 0.583405 0.569763 0.343842 0.626678 0.570221 0.344208 0.672058 0.570831 0.344574 0.719452 0.571381 0.344940 0.768280 0.571838 0.345306 0.818268 0.572296 0.345642 0.869110 0.572998 0.346008 0.915527 0.573425 0.346313 0.000000 0.594910 0.334778 0.000000 0.595398 0.335205 0.021149 0.595856 0.335571 0.048706 0.596558 0.336029 0.081024 0.597076 0.336456 0.107849 0.597565 0.336884 0.132751 0.598236 0.337280 0.156128 0.598755 0.337677 0.177887 0.599243 0.338135 0.198578 0.599884 0.338531 0.218475 0.600403 0.338928 0.237823 0.600861 0.339325 0.257080 0.601624 0.339722 0.276215 0.602081 0.340149 0.295959 0.602539 0.340668 0.316284 0.603241 0.341156 0.337708 0.603699 0.341553 0.360504 0.604156 0.341949 0.385101 0.604858 0.342316 0.411621 0.605347 0.342712 0.440277 0.605804 0.343109 0.471802 0.606476 0.343475 0.506256 0.606873 0.343842 0.543823 0.607361 0.344177 0.584381 0.607819 0.344574 0.627533 0.608459 0.344910 0.672821 0.608887 0.345276 0.720123 0.609344 0.345642 0.768768 0.609955 0.345978 0.818665 0.610413 0.346313 0.869324 0.610779 0.346619 0.915527 0.611328 0.346985 0.000000 0.636414 0.335571 0.000000 0.637024 0.335999 0.023468 0.637512 0.336456 0.053009 0.637939 0.336853 0.083374 0.638519 0.337250 0.109955 0.639038 0.337677 0.134766 0.639526 0.338104 0.157684 0.639893 0.338501 0.179535 0.640564 0.338928 0.199982 0.641022 0.339325 0.219940 0.641479 0.339722 0.239044 0.642059 0.340149 0.258118 0.642548 0.340668 0.277344 0.642975 0.341156 0.296997 0.643433 0.341553 0.317383 0.644073 0.341919 0.338806 0.644501 0.342316 0.361572 0.644928 0.342712 0.386108 0.645538 0.343079 0.412598 0.645935 0.343475 0.441345 0.646362 0.343842 0.472839 0.646881 0.344177 0.507202 0.647400 0.344543 0.544830 0.647797 0.344879 0.585358 0.648163 0.345276 0.628235 0.648682 0.345612 0.673462 0.649170 0.345978 0.720581 0.649536 0.346313 0.769257 0.649933 0.346619 0.818878 0.650482 0.346985 0.869415 0.650879 0.347290 0.915527 0.651215 0.347595 0.000000 0.680176 0.336426 0.000702 0.680573 0.336823 0.026001 0.681183 0.337250 0.057190 0.681549 0.337677 0.085724 0.681915 0.338074 0.112030 0.682312 0.338501 0.136536 0.682922 0.338898 0.159546 0.683289 0.339294 0.181091 0.683716 0.339722 0.201569 0.684052 0.340118 0.221191 0.684662 0.340607 0.240295 0.685059 0.341156 0.259369 0.685425 0.341522 0.278473 0.685822 0.341888 0.298126 0.686371 0.342316 0.318451 0.686737 0.342682 0.339874 0.687134 0.343079 0.362671 0.687439 0.343445 0.387024 0.688080 0.343842 0.413544 0.688416 0.344177 0.442413 0.688782 0.344513 0.473877 0.689087 0.344879 0.508209 0.689484 0.345276 0.545837 0.689972 0.345612 0.586060 0.690338 0.345947 0.629089 0.690674 0.346283 0.674133 0.690979 0.346619 0.721039 0.691559 0.346954 0.769592 0.691803 0.347290 0.819153 0.692139 0.347595 0.869537 0.692444 0.347900 0.915527 0.692841 0.348236 0.000000 0.725555 0.337219 0.002899 0.725922 0.337616 0.028412 0.726257 0.338074 0.060303 0.726562 0.338470 0.088013 0.726959 0.338867 0.114166 0.727417 0.339294 0.138428 0.727753 0.339691 0.161224 0.728058 0.340118 0.182526 0.728363 0.340607 0.202911 0.728912 0.341125 0.222473 0.729187 0.341522 0.241455 0.729523 0.341888 0.260498 0.729797 0.342285 0.279602 0.730133 0.342682 0.299011 0.730499 0.343079 0.319427 0.730957 0.343445 0.340820 0.731262 0.343811 0.363647 0.731506 0.344177 0.388123 0.731842 0.344513 0.414612 0.732269 0.344879 0.443420 0.732605 0.345245 0.474915 0.732910 0.345612 0.509216 0.733185 0.345917 0.546600 0.733459 0.346283 0.586945 0.733826 0.346619 0.629761 0.734253 0.346954 0.674896 0.734467 0.347260 0.721680 0.734772 0.347565 0.769928 0.734985 0.347870 0.819397 0.735229 0.348236 0.869659 0.735657 0.348541 0.915527 0.735962 0.348816 0.000000 0.772186 0.338043 0.005219 0.772400 0.338440 0.030762 0.772644 0.338867 0.062866 0.772858 0.339264 0.090515 0.773102 0.339691 0.116272 0.773590 0.340088 0.140381 0.773834 0.340546 0.162933 0.774109 0.341125 0.183990 0.774323 0.341522 0.204254 0.774536 0.341858 0.223724 0.774902 0.342255 0.242645 0.775269 0.342682 0.261444 0.775482 0.343048 0.280670 0.775696 0.343445 0.300079 0.775940 0.343811 0.320435 0.776154 0.344177 0.341766 0.776398 0.344513 0.364594 0.776825 0.344849 0.389130 0.777069 0.345245 0.415619 0.777283 0.345581 0.444427 0.777496 0.345917 0.475708 0.777710 0.346283 0.510223 0.777924 0.346588 0.547516 0.778107 0.346954 0.587830 0.778381 0.347260 0.630554 0.778748 0.347565 0.675446 0.778931 0.347870 0.722107 0.779144 0.348236 0.770447 0.779297 0.348541 0.819763 0.779480 0.348816 0.869751 0.779663 0.349091 0.915527 0.779816 0.349396 0.000000 0.819427 0.338867 0.007568 0.819641 0.339233 0.033234 0.820038 0.339661 0.065338 0.820190 0.340057 0.092804 0.820374 0.340515 0.118347 0.820496 0.341095 0.142151 0.820679 0.341492 0.164459 0.820831 0.341858 0.185638 0.820984 0.342255 0.205566 0.821136 0.342651 0.224976 0.821472 0.343018 0.243805 0.821716 0.343414 0.262604 0.821869 0.343811 0.281769 0.822021 0.344177 0.301147 0.822144 0.344513 0.321350 0.822357 0.344849 0.342804 0.822479 0.345215 0.365540 0.822601 0.345581 0.390137 0.822754 0.345917 0.416626 0.822906 0.346283 0.445221 0.823151 0.346588 0.476654 0.823456 0.346924 0.510925 0.823578 0.347260 0.548431 0.823700 0.347565 0.588501 0.823792 0.347870 0.631317 0.823944 0.348236 0.676178 0.824066 0.348511 0.722809 0.824219 0.348785 0.770813 0.824310 0.349091 0.820007 0.824463 0.349396 0.869873 0.824554 0.349670 0.915527 0.824860 0.349915 0.000000 0.867462 0.339661 0.009979 0.867554 0.340057 0.035614 0.867584 0.340515 0.067871 0.867676 0.341095 0.095062 0.867767 0.341492 0.120361 0.867920 0.341858 0.144012 0.867981 0.342255 0.166168 0.868164 0.342621 0.187012 0.868347 0.343018 0.206909 0.868439 0.343384 0.226196 0.868469 0.343781 0.244965 0.868561 0.344147 0.263733 0.868652 0.344513 0.282806 0.868713 0.344849 0.302155 0.868774 0.345215 0.322388 0.868896 0.345551 0.343811 0.868958 0.345917 0.366547 0.869049 0.346252 0.391022 0.869110 0.346588 0.417419 0.869171 0.346924 0.446228 0.869202 0.347229 0.477661 0.869293 0.347565 0.511871 0.869354 0.347870 0.549194 0.869446 0.348206 0.589355 0.869446 0.348511 0.631958 0.869568 0.348785 0.676636 0.869781 0.349091 0.723145 0.869873 0.349396 0.771057 0.869934 0.349640 0.820190 0.869995 0.349884 0.869995 0.870087 0.350159 0.915527 0.870148 0.350433 0.000000 0.915527 0.340515 0.012329 0.915527 0.341095 0.037933 0.915527 0.341492 0.070343 0.915527 0.341858 0.097229 0.915527 0.342224 0.122345 0.915527 0.342621 0.145844 0.915527 0.342987 0.167725 0.915527 0.343384 0.188416 0.915527 0.343781 0.208313 0.915527 0.344116 0.227386 0.915527 0.344513 0.246094 0.915527 0.344849 0.264771 0.915527 0.345215 0.283630 0.915527 0.345551 0.303192 0.915527 0.345886 0.323395 0.915527 0.346252 0.344788 0.915527 0.346588 0.367554 0.915527 0.346893 0.391937 0.915527 0.347229 0.418396 0.915527 0.347534 0.447205 0.915527 0.347839 0.478546 0.915527 0.348206 0.512817 0.915527 0.348480 0.549988 0.915527 0.348785 0.589935 0.915527 0.349091 0.632690 0.915527 0.349365 0.677124 0.915527 0.349640 0.723633 0.915527 0.349884 0.771484 0.915527 0.350159 0.820404 0.915527 0.350433 0.870178 0.915527 0.350647 0.915527 0.915527 0.350861 0.000000 0.000000 0.338348 0.000000 0.000000 0.338531 0.000000 0.000000 0.338745 0.000763 0.000000 0.338928 0.027130 0.000000 0.339172 0.060455 0.000000 0.339386 0.089722 0.000000 0.339600 0.117126 0.000000 0.339844 0.142578 0.000000 0.340088 0.166351 0.000000 0.340332 0.188721 0.000000 0.340851 0.210022 0.000000 0.341095 0.230713 0.000000 0.341339 0.250946 0.000000 0.341644 0.271393 0.000000 0.341888 0.292084 0.000000 0.342194 0.313751 0.000000 0.342499 0.336487 0.000000 0.342834 0.360748 0.000000 0.343109 0.387054 0.000000 0.343414 0.415802 0.000000 0.343719 0.447235 0.000000 0.344055 0.481781 0.000000 0.344391 0.519958 0.000000 0.344727 0.561584 0.000000 0.345062 0.606812 0.000000 0.345367 0.654541 0.000000 0.345734 0.704987 0.000000 0.346069 0.756989 0.000000 0.346405 0.810516 0.000000 0.346771 0.865173 0.000000 0.347107 0.915527 0.000000 0.347473 0.000000 0.000000 0.338745 0.000000 0.000000 0.338928 0.000000 0.000000 0.339142 0.001923 0.000000 0.339355 0.028534 0.000000 0.339600 0.061859 0.000000 0.339844 0.090973 0.000000 0.340088 0.118317 0.000000 0.340332 0.143707 0.000000 0.340790 0.167389 0.000000 0.341095 0.189636 0.000000 0.341339 0.210968 0.000000 0.341614 0.231659 0.000000 0.341888 0.251831 0.000000 0.342194 0.272308 0.000000 0.342499 0.292908 0.000885 0.342804 0.314423 0.001923 0.343079 0.337280 0.003021 0.343414 0.361633 0.004181 0.343719 0.387970 0.005341 0.344025 0.416718 0.006561 0.344391 0.448181 0.007812 0.344696 0.482666 0.009064 0.345032 0.520752 0.010315 0.345367 0.562531 0.011688 0.345703 0.607666 0.012970 0.346069 0.655334 0.014465 0.346405 0.705444 0.015869 0.346741 0.757416 0.017242 0.347107 0.810944 0.018677 0.347473 0.865448 0.020050 0.347809 0.915527 0.021484 0.348206 0.000000 0.013947 0.339142 0.000000 0.014832 0.339355 0.000000 0.015747 0.339569 0.003052 0.016479 0.339813 0.029846 0.017487 0.340057 0.063263 0.018433 0.340332 0.092346 0.019470 0.340790 0.119568 0.020325 0.341095 0.144897 0.021393 0.341309 0.168488 0.022430 0.341614 0.190643 0.023590 0.341858 0.211975 0.024689 0.342194 0.232391 0.025848 0.342499 0.252716 0.026978 0.342773 0.272980 0.028168 0.343079 0.293793 0.029236 0.343414 0.315338 0.030457 0.343719 0.338043 0.031677 0.344025 0.362579 0.032990 0.344360 0.388916 0.034210 0.344666 0.417480 0.035553 0.345001 0.448883 0.036835 0.345367 0.483612 0.038147 0.345703 0.521698 0.039490 0.346039 0.563477 0.040894 0.346405 0.608337 0.042358 0.346741 0.656189 0.043671 0.347107 0.705994 0.045105 0.347443 0.757996 0.047333 0.347809 0.811249 0.049713 0.348206 0.865570 0.052216 0.348541 0.915527 0.054840 0.348907 0.000000 0.043060 0.339569 0.000000 0.043945 0.339813 0.000000 0.044800 0.340057 0.004456 0.045807 0.340302 0.031342 0.047699 0.340729 0.065002 0.049316 0.341064 0.093964 0.050903 0.341309 0.120880 0.052917 0.341614 0.146057 0.054901 0.341858 0.169647 0.056946 0.342194 0.191681 0.058807 0.342468 0.212830 0.059906 0.342773 0.233307 0.061188 0.343079 0.253662 0.062469 0.343384 0.273895 0.063843 0.343719 0.294708 0.065186 0.344025 0.316254 0.066528 0.344330 0.338989 0.067871 0.344666 0.363312 0.069305 0.345001 0.389801 0.070679 0.345337 0.418396 0.072052 0.345703 0.449890 0.073303 0.346039 0.484528 0.074738 0.346375 0.522705 0.076233 0.346710 0.564423 0.077606 0.347076 0.609253 0.079163 0.347443 0.656769 0.080658 0.347809 0.706696 0.082092 0.348175 0.758392 0.083588 0.348541 0.811554 0.085083 0.348907 0.865692 0.086578 0.349274 0.915527 0.088074 0.349640 0.000000 0.080048 0.340057 0.000000 0.081055 0.340302 0.000000 0.081909 0.340729 0.005951 0.083008 0.341064 0.032837 0.084045 0.341309 0.066498 0.085022 0.341583 0.095398 0.086182 0.341858 0.122345 0.087372 0.342194 0.147339 0.088318 0.342438 0.170837 0.089539 0.342773 0.192780 0.090729 0.343079 0.213806 0.091980 0.343384 0.234344 0.093262 0.343689 0.254425 0.094238 0.343994 0.274811 0.095551 0.344330 0.295471 0.096893 0.344666 0.317200 0.098145 0.344971 0.339935 0.099487 0.345337 0.364288 0.100830 0.345703 0.390625 0.102020 0.346008 0.419403 0.103302 0.346375 0.450867 0.104614 0.346710 0.485443 0.106018 0.347076 0.523529 0.107391 0.347443 0.565186 0.108734 0.347809 0.609985 0.110138 0.348145 0.657593 0.111542 0.348541 0.707367 0.112915 0.348877 0.758972 0.114319 0.349274 0.811951 0.115540 0.349640 0.865845 0.116943 0.350006 0.915527 0.118378 0.350403 0.000000 0.110870 0.340668 0.000000 0.111908 0.341064 0.000000 0.112915 0.341309 0.007477 0.113770 0.341583 0.034424 0.114838 0.341858 0.068268 0.115753 0.342163 0.097107 0.116821 0.342438 0.123810 0.117920 0.342773 0.148621 0.119080 0.343048 0.172028 0.120026 0.343384 0.193939 0.121155 0.343689 0.214844 0.122345 0.343994 0.235352 0.123383 0.344330 0.255432 0.124512 0.344666 0.275818 0.125732 0.344971 0.296417 0.126923 0.345337 0.317932 0.128021 0.345673 0.340820 0.129181 0.346008 0.365234 0.130432 0.346344 0.391602 0.131683 0.346710 0.420410 0.132935 0.347076 0.451935 0.134003 0.347443 0.486420 0.135254 0.347778 0.524506 0.136566 0.348145 0.566132 0.137787 0.348511 0.610809 0.139069 0.348877 0.658234 0.140167 0.349243 0.707977 0.141449 0.349640 0.759430 0.142731 0.350006 0.812317 0.144073 0.350372 0.865997 0.145355 0.350739 0.915527 0.146545 0.351105 0.000000 0.139923 0.341309 0.000000 0.140930 0.341583 0.000000 0.141663 0.341858 0.009155 0.142670 0.342163 0.036133 0.143616 0.342438 0.070190 0.144470 0.342773 0.098633 0.145569 0.343048 0.125214 0.146362 0.343353 0.150085 0.147400 0.343658 0.173248 0.148529 0.343964 0.195068 0.149384 0.344330 0.215973 0.150482 0.344635 0.236420 0.151611 0.344971 0.256470 0.152466 0.345306 0.276611 0.153595 0.345642 0.297394 0.154755 0.346008 0.318939 0.155609 0.346313 0.341675 0.156799 0.346680 0.366241 0.157898 0.347046 0.392639 0.158875 0.347412 0.421326 0.160034 0.347778 0.452881 0.161194 0.348145 0.487427 0.162323 0.348511 0.525482 0.163330 0.348877 0.567108 0.164490 0.349243 0.611786 0.165710 0.349609 0.659088 0.166656 0.350006 0.708679 0.167816 0.350342 0.759888 0.169037 0.350739 0.812592 0.170013 0.351105 0.866119 0.171173 0.351440 0.915527 0.172363 0.351807 0.000000 0.166687 0.341858 0.000000 0.167633 0.342163 0.000000 0.168304 0.342438 0.010864 0.169220 0.342743 0.037903 0.170013 0.343018 0.071991 0.170929 0.343353 0.100433 0.171936 0.343658 0.126831 0.172668 0.343964 0.151489 0.173645 0.344299 0.174500 0.174469 0.344635 0.196259 0.175446 0.344940 0.217102 0.176392 0.345306 0.237488 0.177277 0.345642 0.257477 0.178314 0.345978 0.277618 0.179138 0.346313 0.298370 0.180145 0.346649 0.319916 0.181152 0.347015 0.342712 0.182068 0.347412 0.367249 0.183136 0.347748 0.393646 0.184052 0.348145 0.422363 0.185059 0.348480 0.453796 0.186127 0.348846 0.488495 0.186981 0.349243 0.526520 0.188080 0.349609 0.568115 0.189148 0.349976 0.612732 0.190033 0.350342 0.659912 0.191132 0.350739 0.709229 0.192017 0.351105 0.760468 0.193054 0.351440 0.812897 0.194122 0.351776 0.866425 0.195099 0.352173 0.915527 0.196106 0.352570 0.000000 0.191437 0.342407 0.000000 0.192291 0.342743 0.000000 0.192963 0.343018 0.012634 0.193817 0.343323 0.039734 0.194519 0.343628 0.073853 0.195404 0.343933 0.102081 0.196106 0.344299 0.128418 0.196960 0.344604 0.152924 0.197723 0.344940 0.175781 0.198669 0.345276 0.197449 0.199402 0.345612 0.218231 0.200378 0.345978 0.238586 0.201111 0.346313 0.258514 0.202057 0.346649 0.278656 0.202789 0.347015 0.299286 0.203766 0.347382 0.320923 0.204559 0.347748 0.343719 0.205536 0.348145 0.368073 0.206482 0.348450 0.394470 0.207245 0.348846 0.423279 0.208282 0.349213 0.454803 0.209045 0.349579 0.489563 0.210083 0.349945 0.527618 0.210846 0.350342 0.569061 0.211853 0.350708 0.613434 0.212708 0.351105 0.660583 0.213593 0.351440 0.709900 0.214630 0.351776 0.760925 0.215424 0.352142 0.813416 0.216431 0.352539 0.866669 0.217285 0.352936 0.915527 0.218201 0.353333 0.000000 0.214508 0.342987 0.000000 0.215118 0.343323 0.000000 0.215820 0.343628 0.014496 0.216553 0.343933 0.041595 0.217224 0.344269 0.075836 0.218018 0.344604 0.103943 0.218658 0.344940 0.130066 0.219513 0.345276 0.154297 0.220184 0.345612 0.177094 0.221100 0.345947 0.198669 0.221741 0.346313 0.219360 0.222656 0.346619 0.239624 0.223328 0.347015 0.259583 0.224182 0.347351 0.279694 0.224915 0.347748 0.300232 0.225800 0.348083 0.321899 0.226501 0.348450 0.344788 0.227417 0.348846 0.369110 0.228088 0.349182 0.395538 0.229065 0.349548 0.424377 0.229767 0.349945 0.455872 0.230682 0.350342 0.490631 0.231415 0.350708 0.528656 0.232330 0.351074 0.569916 0.233032 0.351440 0.614349 0.234009 0.351776 0.661438 0.234680 0.352142 0.710571 0.235626 0.352539 0.761505 0.236359 0.352936 0.813721 0.237305 0.353302 0.866791 0.238129 0.353699 0.915527 0.238953 0.354065 0.000000 0.235931 0.343628 0.000000 0.236603 0.343933 0.000000 0.237305 0.344269 0.016418 0.237885 0.344574 0.043518 0.238647 0.344910 0.077820 0.239258 0.345276 0.105835 0.240082 0.345612 0.131714 0.240662 0.345917 0.155945 0.241425 0.346283 0.178619 0.242126 0.346619 0.199921 0.242798 0.347015 0.220581 0.243591 0.347351 0.240692 0.244232 0.347717 0.260651 0.245056 0.348083 0.280731 0.245728 0.348450 0.301270 0.246552 0.348816 0.322906 0.247223 0.349182 0.345825 0.248077 0.349548 0.370148 0.248718 0.349945 0.396606 0.249603 0.350311 0.425476 0.250275 0.350677 0.456970 0.251160 0.351044 0.491486 0.251801 0.351440 0.529541 0.252472 0.351776 0.570984 0.253326 0.352142 0.615387 0.254059 0.352539 0.662109 0.254883 0.352905 0.711334 0.255585 0.353302 0.761963 0.256470 0.353668 0.813965 0.257080 0.354065 0.867004 0.257965 0.354431 0.915527 0.258667 0.354797 0.000000 0.256531 0.344269 0.000000 0.257019 0.344574 0.000000 0.257812 0.344879 0.018372 0.258362 0.345245 0.045441 0.259033 0.345581 0.079987 0.259644 0.345917 0.107574 0.260223 0.346283 0.133362 0.261017 0.346619 0.157440 0.261566 0.346985 0.179993 0.262268 0.347351 0.201324 0.262970 0.347717 0.221741 0.263550 0.348053 0.241943 0.264404 0.348450 0.261688 0.264984 0.348785 0.281830 0.265808 0.349152 0.302307 0.266388 0.349548 0.323914 0.267242 0.349915 0.346863 0.267792 0.350281 0.371246 0.268433 0.350647 0.397675 0.269287 0.351044 0.426544 0.269867 0.351410 0.458069 0.270721 0.351776 0.492554 0.271362 0.352112 0.530579 0.272156 0.352509 0.571991 0.272766 0.352875 0.616302 0.273468 0.353271 0.663025 0.274261 0.353668 0.711914 0.274872 0.354034 0.762390 0.275726 0.354401 0.814240 0.276337 0.354767 0.867126 0.277161 0.355133 0.915527 0.277802 0.355530 0.000000 0.276306 0.344879 0.000000 0.277039 0.345215 0.000000 0.277588 0.345581 0.020508 0.278168 0.345917 0.048920 0.278839 0.346283 0.082031 0.279358 0.346588 0.109528 0.279999 0.346985 0.135071 0.280640 0.347321 0.158905 0.281219 0.347687 0.181335 0.281982 0.348053 0.202606 0.282532 0.348450 0.222992 0.283295 0.348785 0.242920 0.283905 0.349152 0.262787 0.284424 0.349518 0.282928 0.285248 0.349915 0.303406 0.285797 0.350281 0.324921 0.286560 0.350647 0.347931 0.287201 0.351044 0.372314 0.287720 0.351410 0.398773 0.288544 0.351746 0.427612 0.289124 0.352112 0.459198 0.289948 0.352509 0.493652 0.290558 0.352875 0.531647 0.291168 0.353241 0.573029 0.291901 0.353638 0.617065 0.292511 0.354034 0.663818 0.293304 0.354401 0.712646 0.293915 0.354767 0.763092 0.294739 0.355133 0.814758 0.295319 0.355499 0.867249 0.295868 0.355896 0.915527 0.296692 0.356232 0.000000 0.295868 0.345581 0.000000 0.296600 0.345886 0.000000 0.297089 0.346252 0.022583 0.297699 0.346588 0.052673 0.298340 0.346954 0.084167 0.298859 0.347321 0.111511 0.299591 0.347687 0.136871 0.300171 0.348053 0.160583 0.300629 0.348450 0.182739 0.301361 0.348785 0.203979 0.301910 0.349152 0.224152 0.302521 0.349518 0.244171 0.303223 0.349884 0.263947 0.303802 0.350250 0.283752 0.304565 0.350647 0.304474 0.305115 0.351044 0.325989 0.305817 0.351410 0.348785 0.306458 0.351746 0.373413 0.307007 0.352112 0.399872 0.307770 0.352509 0.428741 0.308319 0.352844 0.460175 0.308990 0.353241 0.494720 0.309692 0.353638 0.532715 0.310242 0.354004 0.573822 0.311066 0.354401 0.618042 0.311615 0.354767 0.664581 0.312347 0.355103 0.713165 0.312988 0.355499 0.763458 0.313538 0.355865 0.815063 0.314331 0.356232 0.867401 0.314911 0.356598 0.915527 0.315521 0.356995 0.000000 0.315796 0.346252 0.000000 0.316284 0.346588 0.000000 0.316772 0.346954 0.024780 0.317474 0.347321 0.056580 0.317963 0.347656 0.086304 0.318451 0.348022 0.113373 0.319183 0.348389 0.138519 0.319702 0.348785 0.162079 0.320251 0.349121 0.184204 0.320984 0.349487 0.205231 0.321503 0.349854 0.225403 0.322266 0.350250 0.245361 0.322784 0.350616 0.264923 0.323334 0.351013 0.284943 0.324066 0.351410 0.305603 0.324646 0.351746 0.327087 0.325165 0.352081 0.349884 0.325958 0.352478 0.374512 0.326508 0.352844 0.400970 0.327271 0.353241 0.429779 0.327789 0.353607 0.461304 0.328400 0.354004 0.495880 0.329132 0.354370 0.533783 0.329681 0.354767 0.574860 0.330353 0.355103 0.618988 0.330994 0.355469 0.665375 0.331543 0.355835 0.713959 0.332306 0.356201 0.764130 0.332855 0.356598 0.815399 0.333588 0.356995 0.867554 0.334198 0.357361 0.915527 0.334686 0.357697 0.000000 0.335907 0.346954 0.000000 0.336365 0.347290 0.000916 0.337067 0.347656 0.026978 0.337585 0.348022 0.059692 0.338074 0.348389 0.088501 0.338806 0.348785 0.115265 0.339294 0.349121 0.140381 0.339874 0.349487 0.163757 0.340515 0.349854 0.185699 0.341064 0.350220 0.206573 0.341614 0.350616 0.226776 0.342316 0.350983 0.246399 0.342834 0.351379 0.266083 0.343597 0.351715 0.286011 0.344116 0.352081 0.306702 0.344635 0.352448 0.328186 0.345428 0.352844 0.351013 0.345917 0.353210 0.375488 0.346558 0.353607 0.402039 0.347290 0.354004 0.430847 0.347809 0.354340 0.462402 0.348572 0.354736 0.496979 0.349121 0.355103 0.534821 0.349701 0.355438 0.575928 0.350433 0.355835 0.619812 0.350983 0.356201 0.666199 0.351715 0.356598 0.714508 0.352264 0.356964 0.764526 0.352783 0.357330 0.815857 0.353546 0.357697 0.867798 0.354095 0.358063 0.915527 0.354767 0.358398 0.000000 0.356934 0.347656 0.000000 0.357391 0.347992 0.002960 0.357941 0.348389 0.029266 0.358643 0.348755 0.062012 0.359131 0.349121 0.090668 0.359802 0.349457 0.117279 0.360382 0.349854 0.142059 0.360870 0.350220 0.165344 0.361633 0.350616 0.187134 0.362122 0.350983 0.207886 0.362671 0.351349 0.228058 0.363403 0.351715 0.247711 0.363953 0.352081 0.267242 0.364532 0.352448 0.287140 0.365234 0.352814 0.307770 0.365723 0.353210 0.329285 0.366486 0.353607 0.352112 0.367004 0.353973 0.376556 0.367584 0.354340 0.403076 0.368347 0.354736 0.431915 0.368866 0.355103 0.463379 0.369476 0.355438 0.498077 0.370178 0.355835 0.535889 0.370667 0.356201 0.576965 0.371490 0.356567 0.620667 0.372009 0.356964 0.666931 0.372589 0.357330 0.715271 0.373291 0.357697 0.765167 0.373810 0.358063 0.816162 0.374603 0.358398 0.868073 0.375153 0.358765 0.915527 0.375641 0.359070 0.000000 0.378998 0.348389 0.000000 0.379700 0.348755 0.005127 0.380219 0.349091 0.031433 0.380737 0.349457 0.064423 0.381470 0.349823 0.092865 0.381958 0.350220 0.119293 0.382507 0.350555 0.143951 0.383209 0.350952 0.166870 0.383728 0.351349 0.188568 0.384521 0.351685 0.209198 0.385010 0.352051 0.229340 0.385529 0.352448 0.248932 0.386292 0.352814 0.268341 0.386810 0.353180 0.288269 0.387390 0.353577 0.308899 0.388123 0.353943 0.330414 0.388641 0.354309 0.353149 0.389313 0.354706 0.377625 0.389954 0.355072 0.404175 0.390472 0.355438 0.432953 0.391235 0.355835 0.464508 0.391785 0.356171 0.499023 0.392334 0.356567 0.536774 0.393097 0.356934 0.577820 0.393616 0.357300 0.621674 0.394348 0.357666 0.667755 0.394928 0.358063 0.715759 0.395447 0.358398 0.765564 0.396179 0.358734 0.816467 0.396729 0.359070 0.868164 0.397369 0.359467 0.915527 0.398010 0.359802 0.000000 0.402863 0.349091 0.000000 0.403381 0.349457 0.007385 0.403870 0.349823 0.033722 0.404602 0.350189 0.066895 0.405121 0.350555 0.095093 0.405762 0.350952 0.121368 0.406372 0.351349 0.145782 0.406921 0.351685 0.168579 0.407654 0.352051 0.190155 0.408173 0.352417 0.210693 0.408783 0.352814 0.230591 0.409454 0.353180 0.250031 0.409973 0.353546 0.269501 0.410614 0.353943 0.289337 0.411316 0.354309 0.309998 0.411835 0.354706 0.331512 0.412628 0.355072 0.354309 0.413147 0.355408 0.378693 0.413696 0.355804 0.405243 0.414459 0.356171 0.434082 0.414978 0.356537 0.465576 0.415588 0.356903 0.500061 0.416290 0.357300 0.537933 0.416840 0.357666 0.578766 0.417603 0.358032 0.622559 0.418121 0.358368 0.668610 0.418640 0.358704 0.716522 0.419403 0.359070 0.765991 0.419922 0.359436 0.816772 0.420685 0.359802 0.868317 0.421204 0.360138 0.915527 0.421692 0.360474 0.000000 0.428375 0.349792 0.000000 0.429138 0.350159 0.009583 0.429626 0.350555 0.036072 0.430115 0.350922 0.069336 0.430908 0.351318 0.097260 0.431427 0.351685 0.123169 0.431976 0.352051 0.147461 0.432709 0.352417 0.170166 0.433228 0.352783 0.191589 0.433868 0.353149 0.212097 0.434509 0.353546 0.231842 0.435059 0.353943 0.251343 0.435822 0.354309 0.270660 0.436371 0.354706 0.290497 0.436981 0.355072 0.310974 0.437653 0.355408 0.332611 0.438202 0.355774 0.355408 0.438782 0.356171 0.379791 0.439484 0.356506 0.406311 0.440063 0.356903 0.435211 0.440765 0.357300 0.466705 0.441345 0.357635 0.501160 0.441925 0.358032 0.538971 0.442627 0.358368 0.579803 0.443176 0.358704 0.623352 0.443756 0.359039 0.669281 0.444427 0.359406 0.717041 0.445007 0.359772 0.766541 0.445709 0.360107 0.817169 0.446228 0.360474 0.868469 0.446777 0.360809 0.915527 0.447479 0.361145 0.000000 0.456238 0.350555 0.000000 0.456757 0.350922 0.011932 0.457489 0.351318 0.038483 0.458008 0.351654 0.071716 0.458618 0.352051 0.099487 0.459290 0.352417 0.125183 0.459839 0.352753 0.149323 0.460571 0.353149 0.171875 0.461151 0.353546 0.192993 0.461639 0.353912 0.213379 0.462433 0.354279 0.233063 0.462921 0.354675 0.252502 0.463531 0.355042 0.271820 0.464233 0.355408 0.291626 0.464783 0.355774 0.312042 0.465576 0.356140 0.333588 0.466095 0.356506 0.356476 0.466644 0.356903 0.380920 0.467407 0.357300 0.407440 0.467926 0.357635 0.436279 0.468506 0.358002 0.467834 0.469238 0.358337 0.502289 0.469788 0.358704 0.540009 0.470520 0.359039 0.580780 0.471069 0.359406 0.624237 0.471588 0.359741 0.670105 0.472321 0.360107 0.717834 0.472839 0.360474 0.767029 0.473358 0.360809 0.817444 0.474152 0.361145 0.868561 0.474609 0.361481 0.915527 0.475098 0.361786 0.000000 0.486481 0.351288 0.000000 0.487244 0.351624 0.014343 0.487762 0.352020 0.040710 0.488281 0.352417 0.074127 0.489044 0.352753 0.101715 0.489594 0.353149 0.127228 0.490112 0.353516 0.151001 0.490875 0.353912 0.173401 0.491394 0.354279 0.194489 0.492004 0.354645 0.214691 0.492706 0.355042 0.234344 0.493256 0.355408 0.253693 0.494019 0.355743 0.272980 0.494568 0.356140 0.292755 0.495148 0.356506 0.313141 0.495850 0.356903 0.334656 0.496338 0.357269 0.357544 0.496948 0.357605 0.382019 0.497650 0.357971 0.408539 0.498230 0.358337 0.437408 0.498962 0.358704 0.468903 0.499481 0.359039 0.503326 0.500031 0.359375 0.541077 0.500732 0.359741 0.581787 0.501282 0.360107 0.625214 0.501770 0.360443 0.670685 0.502533 0.360809 0.718292 0.503021 0.361115 0.767395 0.503601 0.361450 0.817749 0.504272 0.361786 0.868744 0.504791 0.362122 0.915527 0.505371 0.362427 0.000000 0.519684 0.351990 0.000000 0.520203 0.352417 0.016693 0.520935 0.352753 0.043121 0.521484 0.353119 0.076691 0.522064 0.353516 0.103912 0.522766 0.353882 0.129272 0.523315 0.354248 0.152893 0.524048 0.354645 0.175049 0.524567 0.355011 0.196014 0.525116 0.355408 0.216095 0.525848 0.355743 0.235565 0.526398 0.356110 0.254913 0.526886 0.356506 0.274139 0.527679 0.356873 0.293884 0.528168 0.357239 0.314209 0.528870 0.357605 0.335785 0.529449 0.357971 0.358643 0.529968 0.358337 0.383148 0.530731 0.358704 0.409668 0.531311 0.359039 0.438507 0.531738 0.359375 0.470032 0.532501 0.359741 0.504425 0.533051 0.360077 0.541962 0.533508 0.360443 0.582611 0.534271 0.360809 0.625885 0.534729 0.361115 0.671539 0.535309 0.361450 0.718994 0.536011 0.361786 0.768005 0.536469 0.362091 0.817963 0.536987 0.362427 0.868927 0.537659 0.362732 0.915527 0.538116 0.363068 0.000000 0.555969 0.352753 0.000000 0.556519 0.353119 0.019043 0.557037 0.353485 0.045380 0.557770 0.353851 0.079010 0.558258 0.354218 0.106079 0.558838 0.354614 0.131195 0.559509 0.355011 0.154510 0.560028 0.355377 0.176636 0.560547 0.355743 0.197418 0.561340 0.356110 0.217377 0.561798 0.356476 0.236786 0.562408 0.356842 0.256073 0.563110 0.357239 0.275269 0.563538 0.357574 0.295013 0.564301 0.357971 0.315369 0.564789 0.358307 0.336823 0.565308 0.358673 0.359589 0.565857 0.359039 0.384216 0.566559 0.359375 0.410706 0.567047 0.359711 0.439575 0.567749 0.360077 0.471100 0.568268 0.360443 0.505493 0.568726 0.360748 0.542969 0.569427 0.361115 0.583557 0.569916 0.361450 0.626801 0.570404 0.361755 0.672302 0.571075 0.362091 0.719482 0.571594 0.362396 0.768372 0.572021 0.362732 0.818390 0.572540 0.363037 0.869232 0.573120 0.363342 0.915527 0.573608 0.363678 0.000000 0.595062 0.353455 0.000000 0.595551 0.353851 0.021545 0.596100 0.354218 0.049438 0.596771 0.354614 0.081421 0.597229 0.355011 0.108246 0.597809 0.355377 0.133087 0.598480 0.355743 0.156372 0.598907 0.356110 0.178131 0.599518 0.356476 0.198822 0.600128 0.356842 0.218811 0.600555 0.357208 0.238037 0.601074 0.357574 0.257263 0.601776 0.357971 0.276398 0.602234 0.358307 0.296143 0.602692 0.358643 0.316437 0.603424 0.359009 0.337891 0.603882 0.359375 0.360687 0.604340 0.359711 0.385315 0.605042 0.360077 0.411804 0.605499 0.360413 0.440430 0.605927 0.360748 0.471924 0.606628 0.361084 0.506531 0.607117 0.361420 0.543945 0.607513 0.361755 0.584534 0.608124 0.362091 0.627655 0.608643 0.362396 0.672943 0.609070 0.362732 0.720215 0.609497 0.363037 0.768890 0.610107 0.363342 0.818695 0.610535 0.363678 0.869324 0.610931 0.363983 0.915527 0.611572 0.364258 0.000000 0.636566 0.354218 0.000000 0.637238 0.354614 0.024017 0.637634 0.354980 0.053650 0.638092 0.355377 0.083801 0.638794 0.355743 0.110382 0.639191 0.356079 0.135071 0.639618 0.356476 0.158081 0.640289 0.356812 0.179840 0.640747 0.357208 0.200409 0.641174 0.357544 0.220123 0.641602 0.357941 0.239258 0.642273 0.358307 0.258453 0.642731 0.358643 0.277496 0.643188 0.359009 0.297211 0.643738 0.359375 0.317535 0.644257 0.359711 0.338928 0.644623 0.360046 0.361694 0.645081 0.360382 0.386383 0.645721 0.360748 0.412872 0.646118 0.361053 0.441467 0.646515 0.361420 0.472961 0.647156 0.361755 0.507324 0.647522 0.362091 0.544952 0.647949 0.362366 0.585480 0.648346 0.362701 0.628387 0.648895 0.363037 0.673645 0.649353 0.363342 0.720642 0.649689 0.363647 0.769348 0.650085 0.363983 0.818939 0.650665 0.364258 0.869446 0.651001 0.364532 0.915527 0.651398 0.364838 0.000000 0.680267 0.354980 0.001160 0.680664 0.355347 0.026398 0.681274 0.355743 0.058167 0.681702 0.356079 0.086273 0.682068 0.356445 0.112518 0.682556 0.356812 0.137024 0.683044 0.357208 0.159821 0.683441 0.357544 0.181335 0.683838 0.357910 0.201782 0.684204 0.358276 0.221405 0.684814 0.358643 0.240509 0.685181 0.359009 0.259583 0.685516 0.359375 0.278656 0.686005 0.359711 0.298279 0.686523 0.360046 0.318634 0.686859 0.360382 0.340027 0.687225 0.360748 0.362793 0.687714 0.361053 0.387207 0.688171 0.361389 0.413696 0.688507 0.361755 0.442566 0.688873 0.362061 0.474030 0.689209 0.362366 0.508362 0.689697 0.362701 0.545959 0.690094 0.363037 0.586182 0.690430 0.363342 0.629211 0.690796 0.363647 0.674286 0.691223 0.363953 0.721252 0.691620 0.364258 0.769684 0.691956 0.364532 0.819153 0.692261 0.364838 0.869537 0.692535 0.365082 0.915527 0.693085 0.365356 0.000000 0.725769 0.355713 0.003357 0.726044 0.356079 0.028778 0.726349 0.356415 0.060760 0.726715 0.356812 0.088623 0.727203 0.357178 0.114685 0.727539 0.357544 0.138885 0.727844 0.357910 0.161621 0.728210 0.358276 0.182861 0.728546 0.358643 0.203125 0.729034 0.359009 0.222687 0.729340 0.359375 0.241821 0.729614 0.359711 0.260712 0.729919 0.360046 0.279755 0.730225 0.360382 0.299286 0.730804 0.360718 0.319672 0.731079 0.361053 0.341095 0.731354 0.361389 0.363861 0.731659 0.361725 0.388275 0.731964 0.362061 0.414734 0.732452 0.362366 0.443604 0.732758 0.362701 0.475067 0.733032 0.363037 0.509369 0.733276 0.363342 0.546722 0.733582 0.363647 0.587097 0.734009 0.363953 0.629883 0.734344 0.364227 0.674988 0.734589 0.364532 0.721771 0.734802 0.364807 0.769958 0.735077 0.365082 0.819519 0.735413 0.365356 0.869659 0.735779 0.365631 0.915527 0.736053 0.365906 0.000000 0.772278 0.356415 0.005615 0.772491 0.356781 0.031281 0.772736 0.357147 0.063232 0.772980 0.357544 0.090851 0.773407 0.357880 0.116699 0.773682 0.358246 0.140656 0.773926 0.358612 0.163177 0.774170 0.358978 0.184448 0.774414 0.359344 0.204468 0.774658 0.359680 0.223907 0.774994 0.360046 0.242859 0.775360 0.360382 0.261841 0.775574 0.360718 0.280853 0.775818 0.361053 0.300293 0.776031 0.361389 0.320709 0.776215 0.361694 0.342072 0.776550 0.362030 0.364868 0.776917 0.362366 0.389252 0.777161 0.362701 0.415771 0.777313 0.363007 0.444641 0.777557 0.363312 0.475983 0.777802 0.363647 0.510345 0.777985 0.363953 0.547638 0.778168 0.364227 0.587952 0.778442 0.364502 0.630615 0.778809 0.364807 0.675568 0.778992 0.365051 0.722229 0.779175 0.365356 0.770538 0.779388 0.365631 0.819824 0.779572 0.365875 0.869781 0.779724 0.366119 0.915527 0.779877 0.366364 0.000000 0.819489 0.357147 0.007935 0.819794 0.357513 0.033539 0.820068 0.357880 0.065918 0.820221 0.358246 0.093201 0.820404 0.358612 0.118622 0.820557 0.358948 0.142578 0.820740 0.359314 0.164917 0.820892 0.359680 0.185852 0.821045 0.360016 0.205780 0.821259 0.360382 0.225128 0.821564 0.360718 0.244110 0.821808 0.361053 0.263000 0.821899 0.361359 0.281921 0.822052 0.361694 0.301300 0.822266 0.362030 0.321533 0.822388 0.362366 0.343018 0.822510 0.362701 0.365784 0.822632 0.363007 0.390320 0.822815 0.363312 0.416779 0.822968 0.363617 0.445587 0.823364 0.363922 0.476807 0.823456 0.364197 0.511078 0.823608 0.364502 0.548584 0.823792 0.364807 0.588623 0.823853 0.365051 0.631409 0.823975 0.365356 0.676270 0.824127 0.365631 0.722839 0.824249 0.365875 0.770844 0.824341 0.366119 0.820068 0.824463 0.366364 0.869873 0.824615 0.366608 0.915527 0.824921 0.366852 0.000000 0.867462 0.357880 0.010315 0.867554 0.358246 0.036011 0.867645 0.358612 0.068268 0.867737 0.358948 0.095367 0.867798 0.359314 0.120697 0.867920 0.359680 0.144287 0.868103 0.360016 0.166473 0.868286 0.360352 0.187286 0.868378 0.360687 0.207275 0.868439 0.361053 0.226349 0.868530 0.361359 0.245300 0.868622 0.361694 0.264069 0.868652 0.362030 0.282959 0.868744 0.362366 0.302307 0.868774 0.362671 0.322540 0.868896 0.363007 0.343964 0.868988 0.363281 0.366669 0.869049 0.363586 0.391296 0.869110 0.363922 0.417694 0.869171 0.364197 0.446381 0.869263 0.364502 0.477783 0.869293 0.364777 0.511993 0.869385 0.365051 0.549500 0.869446 0.365356 0.589508 0.869446 0.365601 0.631989 0.869720 0.365845 0.676727 0.869781 0.366089 0.723236 0.869873 0.366364 0.771179 0.869995 0.366608 0.820221 0.870087 0.366821 0.869995 0.870087 0.367065 0.915527 0.870148 0.367310 0.000000 0.915527 0.358582 0.012756 0.915527 0.358948 0.038452 0.915527 0.359314 0.070740 0.915527 0.359680 0.097565 0.915527 0.360016 0.122711 0.915527 0.360352 0.146118 0.915527 0.360687 0.167969 0.915527 0.361023 0.188721 0.915527 0.361359 0.208557 0.915527 0.361694 0.227539 0.915527 0.362030 0.246246 0.915527 0.362366 0.264923 0.915527 0.362671 0.283875 0.915527 0.363007 0.303345 0.915527 0.363281 0.323547 0.915527 0.363586 0.344910 0.915527 0.363892 0.367645 0.915527 0.364166 0.392120 0.915527 0.364471 0.418518 0.915527 0.364777 0.447327 0.915527 0.365051 0.478729 0.915527 0.365326 0.512939 0.915527 0.365601 0.550140 0.915527 0.365845 0.590149 0.915527 0.366058 0.632751 0.915527 0.366333 0.677277 0.915527 0.366608 0.723755 0.915527 0.366791 0.771545 0.915527 0.367065 0.820435 0.915527 0.367279 0.870178 0.915527 0.367523 0.915527 0.915527 0.367706 0.000000 0.000000 0.357391 0.000000 0.000000 0.357544 0.000000 0.000000 0.357727 0.000946 0.000000 0.357910 0.027435 0.000000 0.358093 0.060699 0.000000 0.358307 0.089935 0.000000 0.358521 0.117279 0.000000 0.358704 0.142761 0.000000 0.358948 0.166534 0.000000 0.359161 0.188965 0.000000 0.359406 0.210175 0.000000 0.359680 0.230835 0.000000 0.359894 0.251190 0.000000 0.360138 0.271515 0.000000 0.360413 0.292358 0.000000 0.360687 0.313904 0.000000 0.360962 0.336609 0.000000 0.361206 0.360931 0.000000 0.361481 0.387207 0.000000 0.361755 0.415955 0.000000 0.362061 0.447357 0.000000 0.362366 0.482086 0.000000 0.362671 0.520142 0.000000 0.362915 0.561829 0.000000 0.363251 0.606903 0.000000 0.363556 0.654724 0.000000 0.363861 0.705078 0.000000 0.364166 0.757080 0.000000 0.364471 0.810608 0.000000 0.364807 0.865295 0.000000 0.365112 0.915527 0.000000 0.365417 0.000000 0.000000 0.357727 0.000000 0.000000 0.357910 0.000000 0.000000 0.358093 0.002106 0.000000 0.358307 0.028717 0.000000 0.358521 0.062073 0.000000 0.358704 0.091217 0.000000 0.358948 0.118500 0.000000 0.359161 0.143921 0.000000 0.359406 0.167542 0.000000 0.359680 0.189911 0.000000 0.359894 0.211151 0.000000 0.360138 0.231750 0.000000 0.360382 0.251953 0.000000 0.360687 0.272400 0.000214 0.360931 0.292999 0.001221 0.361206 0.314667 0.002289 0.361481 0.337524 0.003387 0.361755 0.361755 0.004547 0.362030 0.388123 0.005737 0.362335 0.416840 0.006897 0.362640 0.448303 0.008179 0.362915 0.482788 0.009583 0.363220 0.520935 0.010895 0.363556 0.562653 0.012238 0.363831 0.607788 0.013611 0.364136 0.655426 0.014954 0.364471 0.705536 0.016327 0.364777 0.757446 0.017731 0.365082 0.811005 0.019104 0.365417 0.865479 0.020599 0.365753 0.915527 0.022095 0.366028 0.000000 0.014221 0.358093 0.000000 0.015106 0.358307 0.000000 0.016022 0.358490 0.003387 0.016907 0.358704 0.030121 0.017761 0.358948 0.063690 0.018768 0.359161 0.092804 0.019806 0.359375 0.119751 0.020844 0.359680 0.145050 0.021729 0.359894 0.168640 0.022797 0.360138 0.190796 0.023895 0.360382 0.212158 0.025024 0.360687 0.232697 0.026184 0.360931 0.252869 0.027374 0.361206 0.273102 0.028595 0.361450 0.293915 0.029785 0.361755 0.315460 0.031006 0.362030 0.338226 0.032257 0.362335 0.362701 0.033539 0.362610 0.389038 0.034851 0.362915 0.417755 0.036102 0.363220 0.449158 0.037415 0.363525 0.483734 0.038757 0.363831 0.521820 0.040100 0.364136 0.563599 0.041443 0.364441 0.608459 0.042816 0.364777 0.656311 0.044189 0.365082 0.706299 0.045593 0.365417 0.758087 0.048126 0.365723 0.811310 0.050507 0.366028 0.865601 0.053101 0.366364 0.915527 0.055664 0.366669 0.000000 0.043335 0.358490 0.000000 0.044281 0.358704 0.000000 0.045227 0.358948 0.004669 0.046478 0.359161 0.031555 0.048157 0.359375 0.065277 0.049988 0.359650 0.094177 0.051819 0.359863 0.121246 0.053558 0.360107 0.146301 0.055450 0.360382 0.169800 0.057526 0.360657 0.191864 0.059265 0.360901 0.213104 0.060455 0.361206 0.233490 0.061768 0.361450 0.253815 0.062866 0.361755 0.274048 0.064301 0.362030 0.294861 0.065613 0.362305 0.316376 0.066925 0.362610 0.339142 0.068329 0.362915 0.363586 0.069733 0.363190 0.390015 0.071136 0.363525 0.418549 0.072510 0.363800 0.450012 0.073975 0.364136 0.484741 0.075470 0.364441 0.522827 0.076813 0.364777 0.564575 0.078339 0.365051 0.609375 0.079834 0.365417 0.656860 0.081268 0.365723 0.706787 0.082764 0.366028 0.758484 0.084320 0.366364 0.811554 0.085785 0.366669 0.865784 0.087280 0.367004 0.915527 0.088776 0.367340 0.000000 0.080383 0.358948 0.000000 0.081390 0.359161 0.000000 0.082336 0.359375 0.006165 0.083313 0.359650 0.033173 0.084442 0.359863 0.066925 0.085541 0.360107 0.095703 0.086517 0.360382 0.122620 0.087677 0.360657 0.147552 0.088928 0.360901 0.170959 0.089966 0.361176 0.192993 0.091125 0.361450 0.214111 0.092377 0.361725 0.234436 0.093628 0.362030 0.254761 0.094849 0.362305 0.274963 0.096100 0.362610 0.295685 0.097260 0.362885 0.317352 0.098541 0.363190 0.340088 0.099884 0.363495 0.364380 0.101196 0.363800 0.390778 0.102539 0.364136 0.419556 0.103912 0.364441 0.451019 0.105133 0.364746 0.485748 0.106445 0.365051 0.523834 0.107819 0.365387 0.565491 0.109192 0.365723 0.610229 0.110565 0.366028 0.657745 0.112000 0.366333 0.707520 0.113373 0.366669 0.759125 0.114807 0.367004 0.812012 0.116211 0.367340 0.865906 0.117645 0.367676 0.915527 0.118927 0.367981 0.000000 0.111298 0.359375 0.000000 0.112183 0.359619 0.000000 0.113281 0.359833 0.007751 0.114166 0.360107 0.034851 0.115173 0.360382 0.068604 0.116241 0.360626 0.097321 0.117157 0.360901 0.124023 0.118256 0.361176 0.148865 0.119385 0.361450 0.172180 0.120361 0.361694 0.194092 0.121521 0.362030 0.215179 0.122681 0.362305 0.235504 0.123871 0.362610 0.255615 0.125000 0.362885 0.275940 0.126068 0.363190 0.296539 0.127289 0.363495 0.318176 0.128540 0.363800 0.341064 0.129700 0.364075 0.365356 0.130798 0.364441 0.391815 0.132111 0.364746 0.420563 0.133331 0.365051 0.452026 0.134613 0.365387 0.486664 0.135773 0.365692 0.524719 0.136932 0.365997 0.566284 0.138214 0.366333 0.610962 0.139496 0.366669 0.658386 0.140778 0.367004 0.708038 0.141876 0.367310 0.759521 0.143158 0.367645 0.812378 0.144409 0.367981 0.866028 0.145752 0.368317 0.915527 0.147064 0.368652 0.000000 0.140259 0.359833 0.000000 0.141174 0.360107 0.000000 0.142059 0.360382 0.009369 0.142975 0.360626 0.036469 0.144012 0.360901 0.070526 0.144775 0.361176 0.098907 0.145874 0.361420 0.125671 0.146912 0.361694 0.150391 0.147766 0.362000 0.173431 0.148834 0.362305 0.195282 0.149841 0.362610 0.216339 0.150818 0.362885 0.236542 0.151917 0.363159 0.256592 0.152832 0.363495 0.276794 0.153931 0.363770 0.297516 0.155060 0.364075 0.319031 0.156219 0.364410 0.341858 0.157135 0.364716 0.366364 0.158295 0.365051 0.392792 0.159454 0.365356 0.421570 0.160370 0.365662 0.453064 0.161560 0.365997 0.487579 0.162750 0.366333 0.525665 0.163666 0.366669 0.567261 0.164856 0.367004 0.611908 0.166016 0.367310 0.659210 0.167206 0.367645 0.708771 0.168182 0.367981 0.760071 0.169373 0.368317 0.812622 0.170532 0.368652 0.866241 0.171631 0.368988 0.915527 0.172668 0.369354 0.000000 0.167145 0.360352 0.000000 0.167847 0.360596 0.000000 0.168732 0.360870 0.011139 0.169495 0.361145 0.038269 0.170471 0.361420 0.072357 0.171204 0.361694 0.100739 0.172150 0.362000 0.127167 0.172974 0.362274 0.151764 0.173950 0.362579 0.174713 0.174866 0.362854 0.196442 0.175781 0.363159 0.217255 0.176758 0.363464 0.237640 0.177582 0.363770 0.257629 0.178650 0.364075 0.277740 0.179474 0.364380 0.298523 0.180481 0.364716 0.320038 0.181549 0.365021 0.342834 0.182373 0.365356 0.367401 0.183441 0.365662 0.393829 0.184540 0.365997 0.422577 0.185394 0.366302 0.454132 0.186432 0.366638 0.488647 0.187469 0.367004 0.526703 0.188385 0.367310 0.568329 0.189484 0.367645 0.612823 0.190338 0.367981 0.660065 0.191406 0.368317 0.709351 0.192505 0.368652 0.760559 0.193329 0.368988 0.812958 0.194458 0.369354 0.866547 0.195587 0.369659 0.915527 0.196411 0.370026 0.000000 0.191681 0.360870 0.000000 0.192535 0.361115 0.000000 0.193176 0.361389 0.012909 0.194061 0.361694 0.040009 0.194763 0.361969 0.074310 0.195679 0.362274 0.102539 0.196381 0.362549 0.128723 0.197296 0.362823 0.153137 0.197998 0.363159 0.175995 0.198914 0.363464 0.197784 0.199677 0.363739 0.218414 0.200592 0.364075 0.238708 0.201355 0.364380 0.258698 0.202301 0.364685 0.278778 0.203217 0.365021 0.299530 0.204071 0.365356 0.321075 0.205048 0.365662 0.343872 0.205811 0.365997 0.368408 0.206787 0.366302 0.394775 0.207550 0.366638 0.423553 0.208557 0.366974 0.455109 0.209442 0.367310 0.489716 0.210297 0.367645 0.527740 0.211334 0.367981 0.569305 0.212158 0.368317 0.613556 0.213135 0.368652 0.660706 0.213898 0.368988 0.710114 0.214905 0.369324 0.760956 0.215820 0.369629 0.813477 0.216736 0.369995 0.866699 0.217743 0.370331 0.915527 0.218475 0.370697 0.000000 0.214722 0.361389 0.000000 0.215332 0.361694 0.000000 0.216156 0.361969 0.014832 0.216797 0.362244 0.041901 0.217621 0.362549 0.076263 0.218262 0.362823 0.104218 0.218933 0.363129 0.130402 0.219788 0.363434 0.154572 0.220459 0.363739 0.177429 0.221313 0.364075 0.198944 0.222046 0.364380 0.219666 0.222870 0.364685 0.239807 0.223541 0.365021 0.259766 0.224457 0.365356 0.279846 0.225128 0.365662 0.300568 0.226074 0.365997 0.322113 0.226776 0.366302 0.344910 0.227692 0.366638 0.369324 0.228485 0.366974 0.395782 0.229309 0.367310 0.424561 0.230042 0.367645 0.456024 0.230957 0.367950 0.490753 0.231812 0.368286 0.528809 0.232635 0.368652 0.570099 0.233551 0.368988 0.614532 0.234283 0.369324 0.661591 0.235107 0.369629 0.710663 0.235901 0.369995 0.761658 0.236847 0.370300 0.813782 0.237549 0.370667 0.866821 0.238495 0.371002 0.915527 0.239197 0.371368 0.000000 0.236145 0.361938 0.000000 0.236938 0.362244 0.000000 0.237518 0.362549 0.016846 0.238251 0.362823 0.043945 0.238892 0.363129 0.078186 0.239563 0.363434 0.106140 0.240295 0.363708 0.131989 0.240936 0.364044 0.156189 0.241699 0.364380 0.178833 0.242340 0.364685 0.200348 0.243195 0.365021 0.220764 0.243805 0.365326 0.240936 0.244598 0.365662 0.260834 0.245331 0.365967 0.280884 0.245941 0.366302 0.301544 0.246796 0.366638 0.323151 0.247467 0.366974 0.345947 0.248291 0.367279 0.370331 0.248962 0.367615 0.396759 0.249847 0.367950 0.425629 0.250519 0.368286 0.457153 0.251434 0.368652 0.491699 0.252014 0.368988 0.529877 0.252899 0.369324 0.571136 0.253571 0.369629 0.615479 0.254486 0.369995 0.662384 0.255127 0.370300 0.711456 0.256042 0.370667 0.762085 0.256683 0.371002 0.814026 0.257416 0.371338 0.867004 0.258209 0.371674 0.915527 0.259033 0.372040 0.000000 0.256744 0.362549 0.000000 0.257202 0.362823 0.000000 0.257996 0.363129 0.018799 0.258545 0.363434 0.045990 0.259338 0.363708 0.080261 0.259857 0.364014 0.108063 0.260559 0.364349 0.133759 0.261230 0.364685 0.157593 0.261780 0.364990 0.180206 0.262634 0.365326 0.201599 0.263184 0.365662 0.222015 0.263916 0.365936 0.242065 0.264618 0.366272 0.261963 0.265167 0.366608 0.281982 0.266022 0.366943 0.302490 0.266632 0.367249 0.324188 0.267426 0.367615 0.347015 0.268066 0.367950 0.371399 0.268829 0.368286 0.397858 0.269501 0.368622 0.426697 0.270142 0.368958 0.458252 0.270966 0.369324 0.492676 0.271576 0.369629 0.530701 0.272400 0.369995 0.572113 0.273041 0.370300 0.616425 0.273865 0.370667 0.663116 0.274475 0.371002 0.711975 0.275299 0.371338 0.762543 0.275970 0.371674 0.814331 0.276672 0.372009 0.867126 0.277374 0.372314 0.915527 0.278015 0.372650 0.000000 0.276520 0.363098 0.000000 0.277252 0.363434 0.000000 0.277740 0.363708 0.020844 0.278473 0.364014 0.049744 0.279022 0.364349 0.082367 0.279572 0.364685 0.109802 0.280334 0.364990 0.135376 0.280853 0.365326 0.159271 0.281433 0.365631 0.181580 0.282196 0.365936 0.202881 0.282745 0.366272 0.223297 0.283539 0.366577 0.243256 0.284058 0.366913 0.263062 0.284637 0.367249 0.283051 0.285431 0.367615 0.303589 0.286011 0.367920 0.325073 0.286804 0.368256 0.348083 0.287354 0.368591 0.372498 0.288208 0.368958 0.398956 0.288757 0.369293 0.427795 0.289368 0.369629 0.459320 0.290161 0.369965 0.493835 0.290741 0.370300 0.531769 0.291565 0.370636 0.573151 0.292145 0.370972 0.617218 0.292816 0.371338 0.663971 0.293549 0.371674 0.712708 0.294128 0.371979 0.763123 0.294952 0.372314 0.814819 0.295532 0.372650 0.867249 0.296234 0.373016 0.915527 0.296906 0.373322 0.000000 0.296143 0.363708 0.000000 0.296783 0.364014 0.000000 0.297272 0.364349 0.023041 0.298004 0.364655 0.053375 0.298523 0.364990 0.084473 0.299042 0.365295 0.111816 0.299805 0.365631 0.137177 0.300323 0.365936 0.160828 0.301086 0.366241 0.183136 0.301605 0.366577 0.204193 0.302155 0.366913 0.224487 0.302887 0.367249 0.244415 0.303467 0.367584 0.264160 0.303986 0.367889 0.284088 0.304779 0.368256 0.304657 0.305328 0.368591 0.326172 0.306091 0.368927 0.349030 0.306671 0.369293 0.373596 0.307190 0.369629 0.400055 0.307983 0.369965 0.428894 0.308563 0.370300 0.460419 0.309326 0.370636 0.494934 0.309906 0.370972 0.532867 0.310425 0.371307 0.574036 0.311279 0.371643 0.618134 0.311798 0.371979 0.664825 0.312622 0.372314 0.713318 0.313171 0.372620 0.763580 0.313751 0.372986 0.815155 0.314514 0.373322 0.867401 0.315094 0.373627 0.915527 0.315887 0.373993 0.000000 0.315979 0.364349 0.000000 0.316467 0.364655 0.000000 0.316925 0.364990 0.025146 0.317657 0.365295 0.057190 0.318146 0.365631 0.086639 0.318634 0.365906 0.113770 0.319366 0.366211 0.138977 0.319916 0.366577 0.162323 0.320648 0.366882 0.184540 0.321167 0.367218 0.205475 0.321686 0.367584 0.225769 0.322449 0.367889 0.245575 0.322998 0.368256 0.265198 0.323639 0.368561 0.285278 0.324280 0.368927 0.305756 0.324829 0.369263 0.327271 0.325562 0.369598 0.350098 0.326141 0.369965 0.374695 0.326660 0.370300 0.401123 0.327454 0.370636 0.430023 0.328003 0.370972 0.461578 0.328796 0.371307 0.496033 0.329315 0.371613 0.533966 0.329895 0.371979 0.575012 0.330658 0.372284 0.619141 0.331207 0.372620 0.665497 0.331879 0.372986 0.714050 0.332520 0.373291 0.764221 0.333069 0.373627 0.815430 0.333832 0.373993 0.867554 0.334351 0.374298 0.915527 0.335114 0.374634 0.000000 0.336060 0.364960 0.000000 0.336548 0.365295 0.001343 0.337219 0.365601 0.027313 0.337769 0.365906 0.060089 0.338318 0.366211 0.088806 0.338959 0.366577 0.115753 0.339478 0.366882 0.140656 0.340210 0.367218 0.164062 0.340759 0.367554 0.185944 0.341248 0.367889 0.206818 0.341980 0.368256 0.227020 0.342529 0.368561 0.246765 0.343048 0.368927 0.266357 0.343781 0.369232 0.286346 0.344330 0.369598 0.306854 0.345093 0.369965 0.328339 0.345612 0.370300 0.351196 0.346161 0.370636 0.375763 0.346924 0.370972 0.402252 0.347473 0.371307 0.431152 0.348022 0.371613 0.462677 0.348785 0.371979 0.497131 0.349304 0.372284 0.535034 0.350067 0.372620 0.576050 0.350586 0.372955 0.620087 0.351135 0.373291 0.666382 0.351898 0.373596 0.714600 0.352417 0.373962 0.764587 0.353058 0.374298 0.815887 0.353760 0.374634 0.867920 0.354309 0.374969 0.915527 0.355072 0.375275 0.000000 0.357086 0.365601 0.000000 0.357574 0.365906 0.003357 0.358276 0.366211 0.029602 0.358826 0.366547 0.062592 0.359314 0.366882 0.090973 0.360046 0.367218 0.117737 0.360565 0.367554 0.142548 0.361084 0.367889 0.165558 0.361786 0.368225 0.187347 0.362335 0.368561 0.208252 0.363068 0.368896 0.228271 0.363617 0.369232 0.247925 0.364136 0.369598 0.267517 0.364899 0.369934 0.287292 0.365387 0.370270 0.307953 0.365967 0.370636 0.329468 0.366669 0.370941 0.352234 0.367249 0.371307 0.376892 0.367981 0.371613 0.403351 0.368530 0.371948 0.432220 0.369080 0.372284 0.463562 0.369843 0.372620 0.498260 0.370331 0.372955 0.536133 0.370911 0.373291 0.577057 0.371643 0.373596 0.620819 0.372223 0.373962 0.667053 0.372925 0.374298 0.715332 0.373505 0.374634 0.765228 0.373993 0.374969 0.816193 0.374817 0.375275 0.868073 0.375305 0.375610 0.915527 0.375854 0.375916 0.000000 0.379272 0.366180 0.000000 0.379883 0.366547 0.005432 0.380371 0.366852 0.031982 0.380951 0.367218 0.065002 0.381622 0.367554 0.093231 0.382172 0.367859 0.119629 0.382904 0.368225 0.144226 0.383392 0.368530 0.167297 0.383911 0.368896 0.188965 0.384674 0.369232 0.209534 0.385193 0.369568 0.229523 0.385864 0.369934 0.249115 0.386505 0.370270 0.268494 0.387024 0.370605 0.288391 0.387634 0.370941 0.309052 0.388306 0.371277 0.330566 0.388824 0.371613 0.353363 0.389618 0.371948 0.377991 0.390137 0.372284 0.404480 0.390808 0.372620 0.433167 0.391449 0.372955 0.464630 0.391968 0.373291 0.499298 0.392670 0.373596 0.537201 0.393280 0.373962 0.578094 0.393799 0.374268 0.621765 0.394592 0.374603 0.667877 0.395111 0.374939 0.715973 0.395721 0.375275 0.765656 0.396393 0.375610 0.816498 0.396881 0.375916 0.868164 0.397644 0.376251 0.915527 0.398193 0.376556 0.000000 0.403046 0.366852 0.000000 0.403564 0.367188 0.007751 0.404205 0.367523 0.034210 0.404816 0.367859 0.067322 0.405334 0.368195 0.095367 0.406067 0.368530 0.121643 0.406586 0.368866 0.146057 0.407135 0.369232 0.168854 0.407837 0.369568 0.190369 0.408386 0.369904 0.210907 0.409149 0.370239 0.230743 0.409668 0.370605 0.250336 0.410187 0.370941 0.269714 0.410980 0.371277 0.289520 0.411499 0.371613 0.310181 0.412018 0.371948 0.331696 0.412811 0.372253 0.354462 0.413330 0.372589 0.378876 0.414093 0.372925 0.405609 0.414642 0.373260 0.434235 0.415192 0.373596 0.465759 0.415924 0.373932 0.500366 0.416473 0.374268 0.538055 0.417023 0.374603 0.579041 0.417755 0.374939 0.622711 0.418335 0.375275 0.668762 0.419037 0.375610 0.716644 0.419586 0.375916 0.766083 0.420135 0.376221 0.816833 0.420898 0.376556 0.868317 0.421387 0.376892 0.915527 0.421906 0.377197 0.000000 0.428528 0.367523 0.000000 0.429291 0.367828 0.010071 0.429810 0.368195 0.036469 0.430450 0.368530 0.069733 0.431122 0.368866 0.097565 0.431580 0.369202 0.123657 0.432343 0.369568 0.147736 0.432861 0.369904 0.170502 0.433441 0.370239 0.191803 0.434174 0.370575 0.212280 0.434692 0.370911 0.232025 0.435272 0.371277 0.251526 0.436005 0.371613 0.270935 0.436554 0.371918 0.290741 0.437286 0.372253 0.311249 0.437866 0.372589 0.332794 0.438385 0.372925 0.355560 0.439178 0.373260 0.379974 0.439728 0.373596 0.406494 0.440216 0.373932 0.435364 0.440979 0.374268 0.466858 0.441528 0.374603 0.501373 0.442322 0.374939 0.539124 0.442810 0.375275 0.579956 0.443359 0.375580 0.623566 0.444122 0.375916 0.669373 0.444641 0.376221 0.717163 0.445190 0.376556 0.766693 0.445923 0.376862 0.817261 0.446411 0.377197 0.868469 0.447052 0.377441 0.915527 0.447693 0.377747 0.000000 0.456390 0.368195 0.000000 0.457031 0.368500 0.012390 0.457642 0.368866 0.038818 0.458252 0.369202 0.072296 0.458954 0.369537 0.099823 0.459534 0.369904 0.125732 0.460022 0.370239 0.149628 0.460754 0.370544 0.172119 0.461304 0.370911 0.193390 0.461853 0.371246 0.213531 0.462616 0.371613 0.233246 0.463165 0.371918 0.252716 0.463898 0.372253 0.272156 0.464478 0.372589 0.291840 0.465027 0.372925 0.312378 0.465759 0.373260 0.333893 0.466278 0.373596 0.356689 0.466827 0.373932 0.381073 0.467590 0.374268 0.407593 0.468140 0.374603 0.436493 0.468872 0.374939 0.467957 0.469452 0.375244 0.502441 0.469971 0.375580 0.540192 0.470764 0.375916 0.580933 0.471252 0.376221 0.624390 0.471863 0.376526 0.670227 0.472504 0.376862 0.717926 0.473053 0.377167 0.767120 0.473572 0.377441 0.817505 0.474274 0.377747 0.868652 0.474823 0.378052 0.915527 0.475494 0.378357 0.000000 0.486694 0.368835 0.000000 0.487457 0.369171 0.014679 0.487976 0.369537 0.041260 0.488556 0.369873 0.074677 0.489258 0.370209 0.102020 0.489777 0.370544 0.127533 0.490387 0.370911 0.151428 0.491058 0.371216 0.173645 0.491608 0.371582 0.194855 0.492371 0.371918 0.214874 0.492889 0.372253 0.234528 0.493439 0.372589 0.253876 0.494202 0.372925 0.273132 0.494751 0.373260 0.292908 0.495514 0.373596 0.313477 0.496033 0.373932 0.334991 0.496613 0.374268 0.357758 0.497314 0.374573 0.382202 0.497894 0.374908 0.408661 0.498383 0.375244 0.437561 0.499176 0.375580 0.469055 0.499664 0.375916 0.503510 0.500305 0.376221 0.541260 0.500946 0.376526 0.581970 0.501465 0.376862 0.625336 0.502014 0.377167 0.670868 0.502716 0.377441 0.718353 0.503265 0.377716 0.767548 0.503937 0.378052 0.817810 0.504486 0.378326 0.868774 0.504913 0.378632 0.915527 0.505676 0.378937 0.000000 0.519836 0.369507 0.000000 0.520508 0.369873 0.017120 0.521149 0.370178 0.043518 0.521667 0.370544 0.077026 0.522400 0.370880 0.104218 0.522919 0.371216 0.129578 0.523468 0.371582 0.153107 0.524231 0.371887 0.175354 0.524780 0.372223 0.196228 0.525299 0.372559 0.216431 0.526062 0.372925 0.235718 0.526581 0.373230 0.255096 0.527313 0.373566 0.274384 0.527832 0.373901 0.294067 0.528381 0.374237 0.314392 0.529114 0.374573 0.336060 0.529663 0.374908 0.358887 0.530182 0.375214 0.383270 0.530914 0.375549 0.409790 0.531433 0.375885 0.438660 0.531982 0.376190 0.470184 0.532715 0.376495 0.504578 0.533203 0.376862 0.542236 0.533783 0.377136 0.582886 0.534424 0.377411 0.626007 0.535004 0.377716 0.671661 0.535645 0.378052 0.719116 0.536194 0.378326 0.768066 0.536682 0.378601 0.817993 0.537140 0.378906 0.869080 0.537872 0.379211 0.915527 0.538330 0.379486 0.000000 0.556183 0.370178 0.000000 0.556702 0.370544 0.019592 0.557312 0.370880 0.045990 0.557953 0.371185 0.079529 0.558441 0.371552 0.106415 0.559174 0.371887 0.131561 0.559723 0.372223 0.154999 0.560181 0.372528 0.176880 0.560822 0.372894 0.197784 0.561493 0.373230 0.217743 0.562012 0.373535 0.237091 0.562714 0.373901 0.256256 0.563263 0.374237 0.275513 0.563721 0.374573 0.295197 0.564484 0.374908 0.315491 0.565002 0.375214 0.336945 0.565491 0.375519 0.359802 0.566223 0.375885 0.384369 0.566742 0.376190 0.410919 0.567200 0.376495 0.439758 0.567932 0.376831 0.471222 0.568451 0.377136 0.505615 0.568878 0.377411 0.543152 0.569641 0.377716 0.583679 0.570099 0.378021 0.626923 0.570587 0.378326 0.672424 0.571289 0.378601 0.719666 0.571747 0.378906 0.768433 0.572174 0.379211 0.818481 0.572845 0.379456 0.869232 0.573334 0.379791 0.915527 0.573730 0.380035 0.000000 0.595276 0.370880 0.000000 0.595703 0.371185 0.021912 0.596466 0.371552 0.050262 0.596954 0.371887 0.081940 0.597382 0.372223 0.108551 0.598114 0.372528 0.133484 0.598602 0.372864 0.156586 0.599091 0.373199 0.178558 0.599792 0.373535 0.199249 0.600281 0.373901 0.219025 0.600800 0.374207 0.238434 0.601410 0.374542 0.257446 0.601959 0.374878 0.276581 0.602448 0.375214 0.296295 0.603088 0.375519 0.316589 0.603546 0.375854 0.338013 0.604065 0.376190 0.360809 0.604706 0.376495 0.385498 0.605164 0.376801 0.411987 0.605713 0.377136 0.440765 0.606323 0.377411 0.472137 0.606781 0.377716 0.506653 0.607239 0.378021 0.544098 0.607727 0.378296 0.584656 0.608337 0.378601 0.627808 0.608795 0.378906 0.673035 0.609222 0.379181 0.720276 0.609833 0.379456 0.769012 0.610291 0.379761 0.818756 0.610657 0.380035 0.869385 0.611115 0.380310 0.915527 0.611755 0.380554 0.000000 0.636810 0.371552 0.000000 0.637390 0.371857 0.024353 0.637817 0.372223 0.054626 0.638245 0.372528 0.084320 0.638916 0.372864 0.110779 0.639343 0.373199 0.135376 0.639832 0.373535 0.158447 0.640442 0.373901 0.180084 0.640930 0.374207 0.200623 0.641357 0.374542 0.220306 0.641815 0.374878 0.239563 0.642456 0.375183 0.258606 0.642853 0.375488 0.277679 0.643280 0.375854 0.297363 0.643951 0.376160 0.317719 0.644379 0.376465 0.339111 0.644806 0.376801 0.361908 0.645416 0.377136 0.386505 0.645874 0.377380 0.413025 0.646240 0.377686 0.441742 0.646698 0.377991 0.473114 0.647308 0.378296 0.507507 0.647736 0.378601 0.545105 0.648071 0.378906 0.585632 0.648499 0.379181 0.628632 0.649139 0.379456 0.673828 0.649475 0.379761 0.720734 0.649811 0.380035 0.769409 0.650238 0.380310 0.819000 0.650787 0.380554 0.869446 0.651123 0.380859 0.915527 0.651489 0.381073 0.000000 0.680450 0.372223 0.001495 0.681000 0.372498 0.026855 0.681458 0.372833 0.058777 0.681854 0.373199 0.086639 0.682190 0.373505 0.112885 0.682800 0.373871 0.137329 0.683228 0.374207 0.160095 0.683563 0.374512 0.181549 0.683960 0.374847 0.201965 0.684448 0.375183 0.221588 0.684937 0.375488 0.240845 0.685272 0.375854 0.259766 0.685638 0.376160 0.278809 0.686249 0.376465 0.298492 0.686646 0.376801 0.318756 0.687012 0.377106 0.340179 0.687378 0.377380 0.362976 0.687927 0.377686 0.387512 0.688324 0.377960 0.414001 0.688660 0.378296 0.442719 0.688995 0.378571 0.474152 0.689301 0.378906 0.508484 0.689911 0.379181 0.546112 0.690216 0.379456 0.586304 0.690552 0.379761 0.629303 0.690887 0.380035 0.674347 0.691406 0.380280 0.721405 0.691772 0.380554 0.769775 0.692078 0.380829 0.819214 0.692383 0.381073 0.869629 0.692719 0.381317 0.915527 0.693146 0.381561 0.000000 0.725861 0.372833 0.003723 0.726135 0.373169 0.029358 0.726501 0.373505 0.061249 0.726807 0.373871 0.088959 0.727356 0.374176 0.115021 0.727661 0.374512 0.139252 0.727966 0.374847 0.161865 0.728271 0.375183 0.183197 0.728760 0.375488 0.203308 0.729126 0.375824 0.222870 0.729431 0.376129 0.242035 0.729706 0.376465 0.260895 0.730042 0.376801 0.279907 0.730316 0.377075 0.299530 0.730865 0.377380 0.319824 0.731171 0.377655 0.341217 0.731506 0.377960 0.364014 0.731781 0.378296 0.388428 0.732147 0.378571 0.414917 0.732513 0.378876 0.443726 0.732819 0.379150 0.475189 0.733124 0.379456 0.509491 0.733398 0.379730 0.546875 0.733734 0.380005 0.587219 0.734161 0.380280 0.630127 0.734436 0.380554 0.675140 0.734711 0.380798 0.721863 0.734894 0.381073 0.770081 0.735138 0.381317 0.819519 0.735596 0.381561 0.869720 0.735870 0.381836 0.915527 0.736115 0.382050 0.000000 0.772369 0.373474 0.006042 0.772552 0.373840 0.031647 0.772827 0.374176 0.063873 0.773071 0.374481 0.091217 0.773560 0.374847 0.117096 0.773773 0.375183 0.140961 0.774017 0.375488 0.163422 0.774261 0.375824 0.184662 0.774506 0.376129 0.204865 0.774750 0.376434 0.224121 0.775177 0.376770 0.243256 0.775452 0.377075 0.262054 0.775665 0.377350 0.281006 0.775879 0.377655 0.300568 0.776123 0.377960 0.320862 0.776337 0.378265 0.342285 0.776764 0.378571 0.365021 0.777008 0.378876 0.389435 0.777222 0.379150 0.415955 0.777466 0.379425 0.444733 0.777649 0.379730 0.476196 0.777863 0.380005 0.510468 0.778076 0.380280 0.547791 0.778259 0.380554 0.588135 0.778625 0.380798 0.630768 0.778839 0.381073 0.675629 0.779114 0.381287 0.722412 0.779266 0.381561 0.770630 0.779449 0.381805 0.819885 0.779633 0.382050 0.869781 0.779816 0.382263 0.915527 0.780029 0.382507 0.000000 0.819580 0.374176 0.008453 0.819946 0.374481 0.034119 0.820160 0.374847 0.066284 0.820312 0.375153 0.093628 0.820465 0.375458 0.119141 0.820648 0.375793 0.142883 0.820831 0.376129 0.165161 0.820923 0.376434 0.186066 0.821136 0.376770 0.206146 0.821381 0.377075 0.225311 0.821625 0.377350 0.244385 0.821808 0.377655 0.263123 0.821960 0.377960 0.282074 0.822113 0.378265 0.301605 0.822296 0.378571 0.321777 0.822449 0.378876 0.343292 0.822540 0.379150 0.366058 0.822693 0.379425 0.390472 0.822906 0.379730 0.416931 0.823151 0.380005 0.445770 0.823395 0.380249 0.477081 0.823517 0.380554 0.511292 0.823700 0.380798 0.548676 0.823792 0.381042 0.588959 0.823883 0.381287 0.631561 0.824036 0.381561 0.676361 0.824158 0.381805 0.722900 0.824310 0.382050 0.770874 0.824402 0.382233 0.820068 0.824554 0.382507 0.869873 0.824768 0.382690 0.915527 0.825012 0.382904 0.000000 0.867493 0.374817 0.010834 0.867584 0.375122 0.036407 0.867676 0.375458 0.068756 0.867737 0.375793 0.095856 0.867798 0.376099 0.121124 0.867981 0.376404 0.144714 0.868164 0.376740 0.166718 0.868286 0.377045 0.187531 0.868378 0.377319 0.207520 0.868469 0.377625 0.226685 0.868561 0.377930 0.245544 0.868622 0.378235 0.264221 0.868713 0.378571 0.283142 0.868744 0.378845 0.302460 0.868835 0.379150 0.322723 0.868958 0.379425 0.344086 0.868988 0.379730 0.366974 0.869110 0.379974 0.391418 0.869110 0.380249 0.417938 0.869202 0.380524 0.446594 0.869263 0.380798 0.477905 0.869354 0.381042 0.512146 0.869385 0.381287 0.549591 0.869446 0.381561 0.589600 0.869568 0.381775 0.632233 0.869720 0.382019 0.676819 0.869781 0.382233 0.723267 0.869934 0.382477 0.771210 0.869995 0.382690 0.820221 0.870087 0.382904 0.869995 0.870148 0.383118 0.915527 0.870178 0.383331 0.000000 0.915527 0.375458 0.013092 0.915527 0.375793 0.038818 0.915527 0.376099 0.071259 0.915527 0.376404 0.097961 0.915527 0.376709 0.123016 0.915527 0.377045 0.146362 0.915527 0.377319 0.168427 0.915527 0.377625 0.189026 0.915527 0.377930 0.208740 0.915527 0.378235 0.227753 0.915527 0.378540 0.246582 0.915527 0.378845 0.265198 0.915527 0.379120 0.284149 0.915527 0.379395 0.303467 0.915527 0.379700 0.323669 0.915527 0.379974 0.345093 0.915527 0.380249 0.367828 0.915527 0.380524 0.392395 0.915527 0.380798 0.418793 0.915527 0.381042 0.447418 0.915527 0.381287 0.478851 0.915527 0.381561 0.513062 0.915527 0.381775 0.550232 0.915527 0.381989 0.590332 0.915527 0.382233 0.632874 0.915527 0.382477 0.677429 0.915527 0.382690 0.723877 0.915527 0.382904 0.771698 0.915527 0.383118 0.820435 0.915527 0.383301 0.870178 0.915527 0.383514 0.915527 0.915527 0.383728 0.000000 0.000000 0.375031 0.000000 0.000000 0.375214 0.000000 0.000000 0.375336 0.001221 0.000000 0.375549 0.027679 0.000000 0.375732 0.060913 0.000000 0.375916 0.090179 0.000000 0.376068 0.117493 0.000000 0.376282 0.142944 0.000000 0.376495 0.166656 0.000000 0.376709 0.189087 0.000000 0.376923 0.210297 0.000000 0.377136 0.230957 0.000000 0.377319 0.251404 0.000000 0.377563 0.271637 0.000000 0.377777 0.292511 0.000000 0.378052 0.314026 0.000000 0.378296 0.336731 0.000000 0.378540 0.361145 0.000000 0.378784 0.387421 0.000000 0.379028 0.416046 0.000000 0.379272 0.447479 0.000000 0.379547 0.482208 0.000000 0.379852 0.520325 0.000000 0.380096 0.562103 0.000000 0.380371 0.606995 0.000000 0.380646 0.654968 0.000000 0.380920 0.705170 0.000000 0.381226 0.757141 0.000000 0.381500 0.810760 0.000000 0.381775 0.865295 0.000000 0.382050 0.915527 0.000000 0.382355 0.000000 0.000000 0.375336 0.000000 0.000000 0.375519 0.000000 0.000000 0.375732 0.002258 0.000000 0.375916 0.028961 0.000000 0.376068 0.062439 0.000000 0.376251 0.091522 0.000000 0.376495 0.118713 0.000000 0.376678 0.144043 0.000000 0.376923 0.167755 0.000000 0.377136 0.190125 0.000000 0.377319 0.211243 0.000000 0.377563 0.231934 0.000000 0.377777 0.252197 0.000000 0.378052 0.272522 0.000641 0.378265 0.293243 0.001648 0.378540 0.314880 0.002747 0.378754 0.337616 0.003876 0.379028 0.361908 0.005066 0.379272 0.388245 0.006287 0.379547 0.416962 0.007507 0.379822 0.448425 0.008789 0.380096 0.482941 0.010040 0.380371 0.521179 0.011353 0.380646 0.562805 0.012695 0.380920 0.607910 0.014038 0.381226 0.655548 0.015411 0.381500 0.705627 0.016754 0.381775 0.757629 0.018311 0.382050 0.811127 0.019745 0.382355 0.865479 0.021149 0.382629 0.915527 0.022583 0.382935 0.000000 0.014648 0.375702 0.000000 0.015411 0.375916 0.000000 0.016327 0.376068 0.003632 0.017242 0.376251 0.030426 0.018250 0.376465 0.063965 0.019073 0.376678 0.093018 0.020081 0.376923 0.120117 0.021149 0.377136 0.145233 0.022186 0.377319 0.168854 0.023285 0.377563 0.191040 0.024445 0.377777 0.212280 0.025391 0.378021 0.232849 0.026581 0.378265 0.253021 0.027710 0.378540 0.273315 0.028961 0.378754 0.294067 0.030182 0.378998 0.315613 0.031403 0.379272 0.338531 0.032654 0.379547 0.362854 0.033966 0.379822 0.389160 0.035217 0.380096 0.417938 0.036530 0.380341 0.449371 0.037872 0.380646 0.483948 0.039154 0.380890 0.522034 0.040527 0.381195 0.563751 0.041901 0.381500 0.608734 0.043243 0.381775 0.656403 0.044678 0.382050 0.706390 0.046387 0.382324 0.758179 0.048798 0.382629 0.811371 0.051575 0.382935 0.865601 0.054199 0.383209 0.915527 0.056885 0.383514 0.000000 0.043762 0.376068 0.000000 0.044556 0.376251 0.000000 0.045563 0.376465 0.004974 0.047272 0.376678 0.031982 0.048706 0.376923 0.065582 0.050507 0.377106 0.094421 0.052399 0.377319 0.121490 0.054443 0.377533 0.146454 0.056427 0.377747 0.169983 0.058258 0.378021 0.192108 0.059631 0.378235 0.213257 0.060883 0.378510 0.233826 0.062164 0.378754 0.253937 0.063507 0.378998 0.274170 0.064911 0.379242 0.294983 0.066193 0.379547 0.316528 0.067474 0.379822 0.339233 0.068756 0.380096 0.363770 0.070221 0.380341 0.390137 0.071533 0.380615 0.418854 0.072968 0.380890 0.450317 0.074432 0.381195 0.484894 0.075897 0.381470 0.522980 0.077332 0.381775 0.564697 0.078735 0.382050 0.609467 0.080261 0.382324 0.656982 0.081757 0.382629 0.706909 0.083191 0.382904 0.758575 0.084778 0.383209 0.811615 0.086243 0.383514 0.865784 0.087708 0.383820 0.915527 0.089294 0.384125 0.000000 0.080658 0.376465 0.000000 0.081665 0.376648 0.000000 0.082764 0.376923 0.006470 0.083679 0.377106 0.033447 0.084839 0.377319 0.067200 0.085938 0.377533 0.096069 0.087006 0.377747 0.122864 0.088074 0.377991 0.147797 0.089294 0.378235 0.171173 0.090515 0.378510 0.193268 0.091736 0.378754 0.214294 0.092804 0.378998 0.234741 0.094025 0.379242 0.254913 0.095245 0.379517 0.275085 0.096588 0.379822 0.295959 0.097870 0.380066 0.317474 0.098999 0.380310 0.340210 0.100342 0.380585 0.364655 0.101624 0.380890 0.390961 0.102966 0.381165 0.419678 0.104309 0.381439 0.451172 0.105713 0.381744 0.485870 0.107056 0.382019 0.523987 0.108459 0.382324 0.565674 0.109589 0.382599 0.610413 0.111023 0.382904 0.657867 0.112427 0.383209 0.707611 0.113800 0.383514 0.759155 0.115204 0.383820 0.812134 0.116638 0.384125 0.865906 0.118073 0.384430 0.915527 0.119446 0.384735 0.000000 0.111664 0.376923 0.000000 0.112518 0.377106 0.000000 0.113586 0.377319 0.007965 0.114594 0.377533 0.035126 0.115509 0.377747 0.069031 0.116577 0.377991 0.097565 0.117706 0.378235 0.124359 0.118622 0.378479 0.149261 0.119781 0.378723 0.172394 0.120911 0.378998 0.194275 0.121948 0.379242 0.215424 0.123047 0.379517 0.235657 0.124237 0.379822 0.255890 0.125458 0.380035 0.276062 0.126465 0.380310 0.296753 0.127686 0.380585 0.318451 0.128906 0.380890 0.341187 0.130127 0.381165 0.365509 0.131348 0.381439 0.391937 0.132477 0.381714 0.420685 0.133728 0.382019 0.452209 0.134979 0.382294 0.486938 0.136292 0.382599 0.524994 0.137451 0.382874 0.566406 0.138580 0.383179 0.611145 0.139893 0.383514 0.658539 0.141174 0.383820 0.708130 0.142456 0.384094 0.759583 0.143738 0.384430 0.812439 0.144836 0.384735 0.866028 0.146118 0.385040 0.915527 0.147430 0.385315 0.000000 0.140686 0.377319 0.000000 0.141479 0.377533 0.000000 0.142456 0.377747 0.009766 0.143311 0.377960 0.036835 0.144287 0.378235 0.070770 0.145325 0.378479 0.099365 0.146118 0.378723 0.125916 0.147217 0.378967 0.150574 0.148071 0.379242 0.173615 0.149170 0.379517 0.195465 0.150238 0.379791 0.216492 0.151245 0.380035 0.236725 0.152252 0.380310 0.256836 0.153351 0.380585 0.277069 0.154266 0.380890 0.297668 0.155426 0.381165 0.319275 0.156555 0.381439 0.342194 0.157684 0.381714 0.366516 0.158630 0.382019 0.392914 0.159790 0.382294 0.421722 0.160950 0.382599 0.453247 0.161865 0.382874 0.487732 0.163055 0.383179 0.525909 0.164276 0.383514 0.567413 0.165222 0.383789 0.612030 0.166382 0.384094 0.659332 0.167603 0.384399 0.708954 0.168640 0.384705 0.760254 0.169739 0.385040 0.812744 0.170898 0.385315 0.866241 0.172089 0.385590 0.915527 0.173157 0.385925 0.000000 0.167419 0.377716 0.000000 0.168152 0.377960 0.000000 0.169037 0.378235 0.011475 0.169800 0.378479 0.038666 0.170746 0.378723 0.072601 0.171570 0.378967 0.100983 0.172516 0.379242 0.127380 0.173462 0.379486 0.151947 0.174225 0.379761 0.175049 0.175262 0.380035 0.196808 0.176056 0.380310 0.217590 0.177094 0.380585 0.237793 0.178101 0.380890 0.257751 0.178894 0.381165 0.278015 0.179993 0.381439 0.298676 0.180786 0.381714 0.320190 0.181854 0.381989 0.343140 0.182892 0.382263 0.367584 0.183777 0.382568 0.393982 0.184814 0.382874 0.422791 0.185730 0.383179 0.454315 0.186707 0.383484 0.488800 0.187836 0.383789 0.526825 0.188782 0.384094 0.568420 0.189789 0.384369 0.613007 0.190857 0.384705 0.660187 0.191742 0.385010 0.709473 0.192841 0.385315 0.760651 0.193939 0.385590 0.813171 0.194763 0.385895 0.866547 0.195862 0.386230 0.915527 0.196869 0.386566 0.000000 0.191925 0.378235 0.000000 0.192810 0.378479 0.000000 0.193420 0.378723 0.013306 0.194336 0.378937 0.040466 0.195160 0.379242 0.074646 0.195923 0.379486 0.102814 0.196655 0.379761 0.129089 0.197571 0.380035 0.153473 0.198364 0.380310 0.176300 0.199219 0.380554 0.198059 0.200165 0.380859 0.218811 0.200928 0.381134 0.238892 0.201782 0.381409 0.258820 0.202606 0.381714 0.279022 0.203583 0.381989 0.299713 0.204315 0.382263 0.321228 0.205292 0.382568 0.344025 0.206207 0.382874 0.368622 0.207092 0.383179 0.395020 0.207916 0.383484 0.423859 0.208832 0.383789 0.455353 0.209839 0.384064 0.489868 0.210602 0.384369 0.527893 0.211609 0.384705 0.569427 0.212433 0.384979 0.613861 0.213440 0.385315 0.660797 0.214355 0.385590 0.710205 0.215210 0.385864 0.761047 0.216187 0.386230 0.813538 0.216980 0.386536 0.866760 0.217987 0.386841 0.915527 0.218811 0.387177 0.000000 0.214935 0.378723 0.000000 0.215546 0.378937 0.000000 0.216370 0.379211 0.015259 0.217010 0.379456 0.042358 0.217834 0.379761 0.076660 0.218475 0.380005 0.104553 0.219360 0.380280 0.130646 0.220032 0.380554 0.154999 0.220886 0.380859 0.177734 0.221527 0.381134 0.199310 0.222443 0.381409 0.219971 0.223114 0.381683 0.239990 0.223938 0.381989 0.259918 0.224731 0.382263 0.279999 0.225647 0.382538 0.300751 0.226288 0.382874 0.322296 0.227234 0.383179 0.345062 0.227936 0.383453 0.369629 0.228821 0.383759 0.396088 0.229553 0.384064 0.424896 0.230499 0.384369 0.456207 0.231201 0.384674 0.490997 0.232147 0.384979 0.528992 0.232849 0.385284 0.570251 0.233795 0.385559 0.614655 0.234528 0.385864 0.661713 0.235474 0.386230 0.710724 0.236176 0.386536 0.761719 0.237152 0.386841 0.813812 0.237823 0.387146 0.866882 0.238739 0.387451 0.915527 0.239563 0.387787 0.000000 0.236328 0.379211 0.000000 0.237152 0.379456 0.000000 0.237701 0.379761 0.017151 0.238525 0.380005 0.044281 0.239075 0.380280 0.078705 0.239960 0.380554 0.106415 0.240509 0.380859 0.132416 0.241150 0.381134 0.156433 0.241943 0.381409 0.179077 0.242584 0.381683 0.200531 0.243408 0.381958 0.221100 0.244049 0.382263 0.241119 0.244904 0.382538 0.260986 0.245575 0.382843 0.281067 0.246338 0.383179 0.301819 0.247040 0.383453 0.323334 0.247803 0.383759 0.346130 0.248566 0.384064 0.370636 0.249329 0.384369 0.397095 0.250061 0.384644 0.425781 0.250885 0.384979 0.457275 0.251587 0.385284 0.492035 0.252258 0.385559 0.530060 0.253204 0.385864 0.571289 0.253815 0.386200 0.615631 0.254730 0.386505 0.662567 0.255341 0.386841 0.711548 0.256256 0.387146 0.762177 0.256927 0.387451 0.814056 0.257812 0.387756 0.867035 0.258484 0.388092 0.915527 0.259338 0.388397 0.000000 0.256897 0.379730 0.000000 0.257629 0.380005 0.000000 0.258209 0.380280 0.019135 0.258789 0.380554 0.046814 0.259491 0.380829 0.080658 0.260101 0.381104 0.108368 0.260895 0.381409 0.134003 0.261444 0.381653 0.157898 0.262024 0.381958 0.180420 0.262848 0.382233 0.201782 0.263397 0.382538 0.222321 0.264221 0.382843 0.242279 0.264801 0.383148 0.262115 0.265625 0.383453 0.282166 0.266235 0.383728 0.302673 0.266968 0.384064 0.324371 0.267639 0.384338 0.347198 0.268280 0.384644 0.371552 0.269073 0.384949 0.398041 0.269714 0.385254 0.426880 0.270538 0.385559 0.458374 0.271149 0.385864 0.493103 0.272064 0.386200 0.531036 0.272644 0.386505 0.572266 0.273224 0.386841 0.616577 0.274078 0.387146 0.663208 0.274719 0.387421 0.712067 0.275543 0.387756 0.762726 0.276154 0.388062 0.814392 0.277008 0.388367 0.867157 0.277679 0.388672 0.915527 0.278473 0.388977 0.000000 0.276947 0.380280 0.000000 0.277435 0.380554 0.000000 0.277924 0.380829 0.021332 0.278687 0.381104 0.050262 0.279205 0.381378 0.082855 0.279724 0.381622 0.110321 0.280548 0.381958 0.135834 0.281036 0.382233 0.159576 0.281830 0.382538 0.181946 0.282379 0.382843 0.203064 0.282990 0.383118 0.223541 0.283752 0.383453 0.243378 0.284271 0.383728 0.263214 0.285034 0.384033 0.283234 0.285645 0.384338 0.303741 0.286285 0.384644 0.325317 0.287018 0.384949 0.348236 0.287598 0.385254 0.372620 0.288391 0.385529 0.399078 0.288971 0.385834 0.427948 0.289795 0.386169 0.459503 0.290375 0.386505 0.494141 0.290955 0.386841 0.531982 0.291748 0.387115 0.573303 0.292358 0.387421 0.617371 0.293182 0.387756 0.664093 0.293762 0.388031 0.712860 0.294495 0.388367 0.763214 0.295166 0.388672 0.814911 0.295746 0.388947 0.867310 0.296539 0.389252 0.915527 0.297150 0.389587 0.000000 0.296478 0.380829 0.000000 0.296936 0.381073 0.000000 0.297485 0.381378 0.023407 0.298218 0.381622 0.054016 0.298706 0.381927 0.084930 0.299377 0.382233 0.112091 0.300018 0.382538 0.137451 0.300507 0.382843 0.161072 0.301239 0.383118 0.183380 0.301788 0.383423 0.204376 0.302307 0.383728 0.224762 0.303101 0.384033 0.244598 0.303650 0.384338 0.264343 0.304443 0.384644 0.284332 0.304962 0.384918 0.304810 0.305511 0.385254 0.326355 0.306305 0.385529 0.349365 0.306854 0.385834 0.373718 0.307465 0.386169 0.400208 0.308167 0.386505 0.429077 0.308777 0.386810 0.460602 0.309540 0.387115 0.495087 0.310120 0.387421 0.533051 0.310883 0.387726 0.574371 0.311432 0.388031 0.618286 0.312073 0.388367 0.664948 0.312775 0.388672 0.713379 0.313385 0.388947 0.763611 0.314056 0.389252 0.815186 0.314728 0.389557 0.867462 0.315308 0.389862 0.915527 0.316071 0.390167 0.000000 0.316162 0.381348 0.000000 0.316650 0.381622 0.000000 0.317322 0.381927 0.025635 0.317810 0.382233 0.058075 0.318359 0.382538 0.086945 0.318970 0.382812 0.114105 0.319611 0.383118 0.139313 0.320099 0.383392 0.162750 0.320831 0.383728 0.184723 0.321350 0.384003 0.205658 0.321991 0.384308 0.226013 0.322662 0.384613 0.245758 0.323181 0.384918 0.265472 0.323944 0.385223 0.285461 0.324493 0.385498 0.305908 0.325012 0.385834 0.327484 0.325806 0.386169 0.350433 0.326355 0.386505 0.374847 0.327057 0.386810 0.401306 0.327637 0.387115 0.430176 0.328217 0.387390 0.461700 0.328979 0.387695 0.496185 0.329559 0.388031 0.534088 0.330078 0.388336 0.575256 0.330841 0.388641 0.619263 0.331390 0.388916 0.665619 0.332184 0.389252 0.714142 0.332703 0.389557 0.764282 0.333313 0.389862 0.815491 0.334015 0.390167 0.867615 0.334564 0.390472 0.915527 0.335358 0.390808 0.000000 0.336243 0.381897 0.000000 0.336823 0.382202 0.001709 0.337463 0.382538 0.027802 0.337921 0.382812 0.060608 0.338654 0.383118 0.089264 0.339172 0.383392 0.116089 0.339661 0.383698 0.140930 0.340393 0.384003 0.164307 0.340912 0.384308 0.186188 0.341431 0.384613 0.207092 0.342194 0.384918 0.227234 0.342712 0.385223 0.246918 0.343414 0.385498 0.266632 0.343964 0.385834 0.286560 0.344513 0.386169 0.307037 0.345245 0.386475 0.328552 0.345825 0.386810 0.351471 0.346405 0.387115 0.375946 0.347137 0.387390 0.402405 0.347656 0.387695 0.431305 0.348419 0.388031 0.462830 0.348969 0.388336 0.497314 0.349518 0.388641 0.535187 0.350281 0.388916 0.576233 0.350800 0.389252 0.620270 0.351532 0.389526 0.666504 0.352112 0.389862 0.714783 0.352631 0.390167 0.764679 0.353424 0.390472 0.815979 0.353973 0.390808 0.867920 0.354492 0.391083 0.915527 0.355225 0.391388 0.000000 0.357269 0.382507 0.000000 0.357727 0.382812 0.003723 0.358490 0.383087 0.029999 0.359039 0.383392 0.062927 0.359528 0.383667 0.091431 0.360229 0.384003 0.118103 0.360718 0.384308 0.142822 0.361481 0.384613 0.165863 0.362000 0.384918 0.187683 0.362457 0.385193 0.208527 0.363281 0.385498 0.228455 0.363770 0.385834 0.248108 0.364319 0.386169 0.267761 0.365051 0.386475 0.287628 0.365601 0.386810 0.308105 0.366272 0.387085 0.329620 0.366882 0.387390 0.352417 0.367432 0.387695 0.377045 0.368195 0.388000 0.403564 0.368713 0.388306 0.432434 0.369263 0.388641 0.463898 0.370026 0.388916 0.498383 0.370575 0.389221 0.536316 0.371246 0.389526 0.577271 0.371887 0.389832 0.620972 0.372406 0.390137 0.667328 0.373169 0.390472 0.715454 0.373657 0.390778 0.765320 0.374359 0.391083 0.816223 0.374969 0.391388 0.868103 0.375519 0.391693 0.915527 0.376129 0.391937 0.000000 0.379578 0.383087 0.000000 0.380096 0.383362 0.005951 0.380585 0.383667 0.032349 0.381317 0.384003 0.065369 0.381836 0.384277 0.093750 0.382355 0.384583 0.120026 0.383057 0.384888 0.144592 0.383575 0.385193 0.167572 0.384247 0.385498 0.189209 0.384857 0.385803 0.209839 0.385406 0.386139 0.229706 0.386139 0.386475 0.249298 0.386658 0.386780 0.268890 0.387207 0.387085 0.288757 0.387970 0.387390 0.309204 0.388489 0.387695 0.330750 0.389099 0.388000 0.353546 0.389801 0.388306 0.378174 0.390350 0.388611 0.404663 0.391113 0.388885 0.433472 0.391632 0.389191 0.464966 0.392181 0.389526 0.499542 0.392944 0.389832 0.537323 0.393463 0.390137 0.578278 0.394073 0.390472 0.621918 0.394775 0.390778 0.667999 0.395325 0.391083 0.716156 0.396057 0.391357 0.765747 0.396545 0.391693 0.816528 0.397095 0.391937 0.868225 0.397858 0.392212 0.915527 0.398407 0.392487 0.000000 0.403259 0.383667 0.000000 0.403717 0.383972 0.008118 0.404480 0.384277 0.034637 0.405029 0.384583 0.067780 0.405487 0.384888 0.095917 0.406281 0.385193 0.121948 0.406738 0.385498 0.146332 0.407532 0.385803 0.169098 0.408051 0.386108 0.190643 0.408569 0.386444 0.211151 0.409332 0.386749 0.230957 0.409882 0.387085 0.250519 0.410400 0.387360 0.270050 0.411163 0.387665 0.289917 0.411682 0.387970 0.310333 0.412415 0.388306 0.331848 0.412994 0.388611 0.354645 0.413544 0.388885 0.379211 0.414307 0.389191 0.405762 0.414856 0.389496 0.434540 0.415344 0.389801 0.465973 0.416138 0.390137 0.500641 0.416687 0.390472 0.538239 0.417328 0.390747 0.579315 0.417938 0.391052 0.622925 0.418518 0.391357 0.668884 0.419250 0.391663 0.716736 0.419769 0.391937 0.766174 0.420410 0.392181 0.816956 0.421082 0.392487 0.868408 0.421570 0.392792 0.915527 0.422119 0.393097 0.000000 0.428864 0.384277 0.000000 0.429504 0.384552 0.010437 0.429993 0.384888 0.036957 0.430695 0.385193 0.070282 0.431274 0.385468 0.098053 0.431824 0.385803 0.123962 0.432526 0.386108 0.148224 0.433075 0.386444 0.170837 0.433594 0.386749 0.192108 0.434387 0.387054 0.212494 0.434875 0.387360 0.232208 0.435699 0.387665 0.251678 0.436188 0.387970 0.271210 0.436768 0.388275 0.291016 0.437500 0.388580 0.311432 0.438049 0.388885 0.332947 0.438568 0.389191 0.355743 0.439362 0.389496 0.380280 0.439880 0.389801 0.406830 0.440643 0.390137 0.435638 0.441162 0.390442 0.467072 0.441742 0.390747 0.501740 0.442505 0.391052 0.539307 0.443024 0.391357 0.580231 0.443573 0.391663 0.623779 0.444336 0.391937 0.669464 0.444824 0.392181 0.717316 0.445526 0.392487 0.766754 0.446075 0.392792 0.817322 0.446655 0.393066 0.868530 0.447357 0.393372 0.915527 0.447845 0.393646 0.000000 0.456604 0.384857 0.000000 0.457336 0.385193 0.012817 0.457886 0.385468 0.039215 0.458405 0.385773 0.072601 0.459137 0.386108 0.100372 0.459717 0.386444 0.126007 0.460327 0.386749 0.149963 0.460999 0.387054 0.172394 0.461548 0.387329 0.193634 0.462250 0.387665 0.213806 0.462830 0.387970 0.233490 0.463348 0.388275 0.252869 0.464142 0.388580 0.272400 0.464630 0.388885 0.291962 0.465302 0.389160 0.312592 0.465912 0.389496 0.334045 0.466522 0.389801 0.356842 0.467194 0.390106 0.381348 0.467834 0.390442 0.407867 0.468353 0.390747 0.436646 0.469116 0.391022 0.468170 0.469604 0.391357 0.502594 0.470184 0.391632 0.540344 0.470886 0.391907 0.581116 0.471466 0.392181 0.624512 0.472198 0.392456 0.670319 0.472687 0.392792 0.717987 0.473236 0.393066 0.767151 0.473969 0.393341 0.817535 0.474487 0.393616 0.868683 0.474976 0.393921 0.915527 0.475739 0.394165 0.000000 0.486969 0.385468 0.000000 0.487640 0.385773 0.015228 0.488159 0.386108 0.041626 0.488922 0.386444 0.075012 0.489410 0.386749 0.102570 0.489990 0.387054 0.128052 0.490723 0.387329 0.151764 0.491272 0.387634 0.174072 0.491791 0.387939 0.195038 0.492584 0.388245 0.215302 0.493134 0.388580 0.234924 0.493835 0.388855 0.254059 0.494385 0.389160 0.273468 0.494965 0.389496 0.293121 0.495697 0.389801 0.313721 0.496216 0.390106 0.335175 0.496796 0.390442 0.357941 0.497528 0.390717 0.382385 0.498077 0.391022 0.408936 0.498718 0.391327 0.437744 0.499329 0.391632 0.469238 0.499847 0.391907 0.503632 0.500641 0.392181 0.541382 0.501160 0.392456 0.582062 0.501648 0.392792 0.625427 0.502411 0.393066 0.671051 0.502930 0.393341 0.718506 0.503418 0.393616 0.767731 0.504120 0.393890 0.817841 0.504639 0.394165 0.868774 0.505096 0.394440 0.915527 0.505829 0.394714 0.000000 0.520081 0.386078 0.000000 0.520813 0.386414 0.017670 0.521332 0.386719 0.044006 0.521851 0.387024 0.077576 0.522614 0.387329 0.104645 0.523102 0.387634 0.129883 0.523773 0.387939 0.153564 0.524445 0.388245 0.175629 0.525024 0.388580 0.196442 0.525635 0.388855 0.216644 0.526276 0.389160 0.236053 0.526764 0.389496 0.255280 0.527527 0.389801 0.274658 0.528076 0.390106 0.294220 0.528564 0.390411 0.314728 0.529358 0.390717 0.336243 0.529846 0.391022 0.359039 0.530579 0.391327 0.383453 0.531128 0.391632 0.409973 0.531647 0.391876 0.438812 0.532318 0.392151 0.470337 0.532928 0.392456 0.504700 0.533386 0.392761 0.542389 0.534149 0.393036 0.583038 0.534637 0.393341 0.626312 0.535156 0.393616 0.671722 0.535858 0.393890 0.719238 0.536346 0.394165 0.768158 0.536835 0.394440 0.818054 0.537476 0.394714 0.869080 0.538025 0.394958 0.915527 0.538483 0.395203 0.000000 0.556366 0.386719 0.000000 0.556885 0.387024 0.019989 0.557587 0.387299 0.046875 0.558136 0.387604 0.080017 0.558685 0.387939 0.106964 0.559418 0.388245 0.131836 0.559875 0.388550 0.155273 0.560394 0.388855 0.177094 0.561188 0.389160 0.198059 0.561646 0.389465 0.217957 0.562195 0.389771 0.237366 0.562927 0.390106 0.256470 0.563446 0.390411 0.275818 0.564087 0.390717 0.295349 0.564667 0.390991 0.315765 0.565186 0.391296 0.337219 0.565704 0.391602 0.360077 0.566406 0.391876 0.384521 0.566895 0.392151 0.411041 0.567444 0.392456 0.439880 0.568146 0.392761 0.471375 0.568604 0.393036 0.505768 0.569214 0.393311 0.543396 0.569794 0.393616 0.583954 0.570251 0.393890 0.627045 0.570892 0.394135 0.672607 0.571442 0.394440 0.719727 0.571930 0.394714 0.768524 0.572327 0.394928 0.818573 0.573029 0.395203 0.869293 0.573456 0.395477 0.915527 0.573944 0.395721 0.000000 0.595428 0.387268 0.000000 0.595886 0.387604 0.022430 0.596588 0.387939 0.050903 0.597107 0.388214 0.082336 0.597595 0.388519 0.109100 0.598297 0.388855 0.133881 0.598785 0.389160 0.157104 0.599304 0.389465 0.178833 0.599945 0.389771 0.199463 0.600433 0.390076 0.219208 0.600922 0.390381 0.238617 0.601654 0.390686 0.257599 0.602142 0.390991 0.276794 0.602570 0.391296 0.296478 0.603302 0.391602 0.316895 0.603729 0.391876 0.338287 0.604248 0.392120 0.361145 0.604950 0.392456 0.385620 0.605408 0.392761 0.412109 0.605835 0.393036 0.440979 0.606506 0.393311 0.472504 0.606964 0.393616 0.506805 0.607391 0.393860 0.544281 0.607880 0.394135 0.584808 0.608521 0.394440 0.627930 0.608948 0.394684 0.673157 0.609375 0.394928 0.720337 0.610046 0.395203 0.769135 0.610443 0.395447 0.818787 0.610809 0.395721 0.869385 0.611420 0.395935 0.915527 0.611847 0.396179 0.000000 0.637085 0.387909 0.000000 0.637543 0.388214 0.024902 0.637970 0.388519 0.055267 0.638550 0.388824 0.084686 0.639099 0.389130 0.111298 0.639557 0.389465 0.135834 0.640045 0.389771 0.158752 0.640625 0.390076 0.180328 0.641052 0.390381 0.200867 0.641510 0.390686 0.220520 0.642120 0.390991 0.239807 0.642578 0.391296 0.258759 0.643066 0.391571 0.277954 0.643494 0.391876 0.297516 0.644104 0.392120 0.317871 0.644501 0.392426 0.339294 0.644958 0.392731 0.362183 0.645599 0.393036 0.386688 0.645996 0.393311 0.413177 0.646423 0.393585 0.442078 0.647064 0.393860 0.473480 0.647430 0.394135 0.507812 0.647827 0.394409 0.545258 0.648224 0.394684 0.585724 0.648743 0.394928 0.628784 0.649231 0.395172 0.673950 0.649567 0.395447 0.720825 0.649994 0.395721 0.769440 0.650543 0.395935 0.819031 0.650879 0.396179 0.869507 0.651276 0.396423 0.915527 0.651611 0.396667 0.000000 0.680573 0.388519 0.001953 0.681213 0.388824 0.027222 0.681549 0.389130 0.059265 0.681946 0.389465 0.086975 0.682312 0.389771 0.113281 0.682953 0.390045 0.137604 0.683350 0.390381 0.160553 0.683746 0.390656 0.181946 0.684113 0.390991 0.202209 0.684723 0.391266 0.221802 0.685089 0.391571 0.241028 0.685455 0.391846 0.259949 0.685822 0.392120 0.279053 0.686432 0.392426 0.298615 0.686768 0.392731 0.318939 0.687195 0.393005 0.340332 0.687531 0.393311 0.363129 0.688080 0.393585 0.387756 0.688446 0.393860 0.414246 0.688812 0.394104 0.443024 0.689117 0.394409 0.474304 0.689484 0.394684 0.508636 0.690002 0.394928 0.546265 0.690338 0.395172 0.586639 0.690704 0.395447 0.629425 0.691040 0.395721 0.674500 0.691559 0.395935 0.721497 0.691864 0.396179 0.769806 0.692169 0.396423 0.819244 0.692474 0.396667 0.869629 0.692902 0.396912 0.915527 0.693298 0.397125 0.000000 0.725952 0.389130 0.004211 0.726257 0.389435 0.029724 0.726624 0.389740 0.061737 0.727051 0.390045 0.089539 0.727448 0.390350 0.115326 0.727753 0.390656 0.139557 0.728119 0.390961 0.162109 0.728424 0.391266 0.183441 0.728943 0.391571 0.203705 0.729218 0.391846 0.223175 0.729523 0.392120 0.242218 0.729858 0.392426 0.261078 0.730164 0.392700 0.280060 0.730621 0.393005 0.299713 0.730988 0.393280 0.319977 0.731323 0.393585 0.341400 0.731567 0.393860 0.364166 0.731873 0.394104 0.388763 0.732269 0.394409 0.415192 0.732666 0.394653 0.443878 0.732910 0.394897 0.475342 0.733215 0.395172 0.509644 0.733490 0.395447 0.547180 0.733887 0.395691 0.587372 0.734253 0.395905 0.630280 0.734497 0.396149 0.675232 0.734802 0.396423 0.721924 0.735016 0.396667 0.770203 0.735229 0.396881 0.819580 0.735748 0.397125 0.869720 0.735962 0.397339 0.915527 0.736176 0.397705 0.000000 0.772461 0.389740 0.006500 0.772644 0.390045 0.032166 0.772888 0.390320 0.064270 0.773193 0.390656 0.091766 0.773651 0.390961 0.117401 0.773834 0.391266 0.141449 0.774109 0.391571 0.163879 0.774353 0.391846 0.184875 0.774567 0.392120 0.205109 0.774902 0.392426 0.224396 0.775269 0.392700 0.243378 0.775482 0.392975 0.262207 0.775757 0.393280 0.281158 0.775970 0.393555 0.300812 0.776184 0.393829 0.321014 0.776459 0.394104 0.342438 0.776886 0.394379 0.365173 0.777100 0.394653 0.389679 0.777283 0.394897 0.416107 0.777527 0.395142 0.444916 0.777740 0.395447 0.476349 0.777924 0.395691 0.510620 0.778137 0.395905 0.547913 0.778381 0.396149 0.588257 0.778778 0.396423 0.630890 0.778931 0.396667 0.675751 0.779144 0.396881 0.722565 0.779297 0.397125 0.770660 0.779480 0.397339 0.819916 0.779663 0.397705 0.869781 0.779816 0.397980 0.915527 0.780151 0.398163 0.000000 0.819641 0.390320 0.008820 0.820038 0.390656 0.034454 0.820221 0.390930 0.066742 0.820374 0.391266 0.094055 0.820526 0.391541 0.119476 0.820679 0.391815 0.143188 0.820831 0.392090 0.165466 0.820984 0.392395 0.186371 0.821167 0.392700 0.206421 0.821472 0.392975 0.225739 0.821747 0.393250 0.244568 0.821869 0.393555 0.263306 0.822021 0.393829 0.282257 0.822174 0.394104 0.301819 0.822357 0.394379 0.322021 0.822479 0.394653 0.343475 0.822601 0.394867 0.366211 0.822815 0.395142 0.390594 0.822968 0.395447 0.417053 0.823273 0.395660 0.445923 0.823456 0.395905 0.477325 0.823578 0.396149 0.511597 0.823730 0.396423 0.548859 0.823853 0.396667 0.589081 0.823944 0.396881 0.631653 0.824066 0.397125 0.676453 0.824219 0.397339 0.722992 0.824310 0.397705 0.770966 0.824463 0.397949 0.820129 0.824615 0.398163 0.869904 0.824860 0.398407 0.915527 0.825043 0.398590 0.000000 0.867554 0.390930 0.011200 0.867645 0.391235 0.036896 0.867676 0.391541 0.069275 0.867767 0.391815 0.096283 0.867920 0.392090 0.121490 0.867981 0.392365 0.144989 0.868164 0.392670 0.167023 0.868347 0.392975 0.187927 0.868439 0.393250 0.207703 0.868469 0.393524 0.226929 0.868561 0.393799 0.245697 0.868652 0.394104 0.264404 0.868713 0.394348 0.283295 0.868774 0.394623 0.302612 0.868896 0.394867 0.322998 0.868958 0.395142 0.344238 0.869049 0.395416 0.367188 0.869110 0.395660 0.391571 0.869171 0.395905 0.418030 0.869202 0.396149 0.446838 0.869293 0.396393 0.478119 0.869354 0.396637 0.512238 0.869446 0.396881 0.549744 0.869446 0.397095 0.589691 0.869568 0.397308 0.632324 0.869781 0.397644 0.676910 0.869873 0.397949 0.723328 0.869934 0.398163 0.771271 0.869995 0.398376 0.820282 0.870087 0.398590 0.870117 0.870148 0.398773 0.915527 0.870178 0.398956 0.000000 0.915527 0.391541 0.013611 0.915527 0.391815 0.039124 0.915527 0.392090 0.071594 0.915527 0.392365 0.098450 0.915527 0.392670 0.123444 0.915527 0.392975 0.146790 0.915527 0.393250 0.168610 0.915527 0.393524 0.189301 0.915527 0.393799 0.208923 0.915527 0.394104 0.228088 0.915527 0.394348 0.246826 0.915527 0.394623 0.265472 0.915527 0.394867 0.284332 0.915527 0.395111 0.303619 0.915527 0.395386 0.323914 0.915527 0.395660 0.345215 0.915527 0.395874 0.367981 0.915527 0.396149 0.392548 0.915527 0.396393 0.419037 0.915527 0.396637 0.447632 0.915527 0.396851 0.478973 0.915527 0.397095 0.513184 0.915527 0.397308 0.550385 0.915527 0.397644 0.590546 0.915527 0.397949 0.632935 0.915527 0.398163 0.677582 0.915527 0.398376 0.723907 0.915527 0.398560 0.771759 0.915527 0.398773 0.820496 0.915527 0.398956 0.870331 0.915527 0.399109 0.915527 0.915527 0.399323 0.000000 0.000000 0.391815 0.000000 0.000000 0.391968 0.000000 0.000000 0.392120 0.001373 0.000000 0.392273 0.027863 0.000000 0.392456 0.061127 0.000000 0.392609 0.090515 0.000000 0.392792 0.117767 0.000000 0.392975 0.143127 0.000000 0.393158 0.166840 0.000000 0.393372 0.189270 0.000000 0.393555 0.210541 0.000000 0.393768 0.231049 0.000000 0.393982 0.251526 0.000000 0.394165 0.271759 0.000000 0.394409 0.292572 0.000000 0.394623 0.314117 0.000000 0.394836 0.336884 0.000000 0.395050 0.361328 0.000000 0.395294 0.387695 0.000000 0.395508 0.416321 0.000000 0.395782 0.447723 0.000000 0.395996 0.482361 0.000000 0.396240 0.520447 0.000000 0.396484 0.562195 0.000000 0.396759 0.607147 0.000000 0.397034 0.655090 0.000000 0.397278 0.705261 0.000000 0.397644 0.757233 0.000000 0.398010 0.810822 0.000000 0.398285 0.865356 0.000000 0.398560 0.915527 0.000000 0.398804 0.000000 0.000000 0.392090 0.000000 0.000000 0.392273 0.000000 0.000000 0.392426 0.002502 0.000000 0.392609 0.029297 0.000000 0.392792 0.062683 0.000000 0.392975 0.091858 0.000000 0.393158 0.118988 0.000000 0.393341 0.144257 0.000000 0.393555 0.167877 0.000000 0.393768 0.190247 0.000000 0.393951 0.211395 0.000000 0.394165 0.232025 0.000000 0.394379 0.252380 0.000000 0.394592 0.272644 0.000946 0.394806 0.293457 0.002014 0.395050 0.315033 0.003113 0.395264 0.337769 0.004303 0.395508 0.362122 0.005463 0.395752 0.388367 0.006683 0.395996 0.417114 0.007935 0.396240 0.448578 0.009186 0.396484 0.483093 0.010468 0.396759 0.521393 0.011749 0.397003 0.563141 0.013184 0.397278 0.608002 0.014648 0.397644 0.655701 0.015961 0.398010 0.705750 0.017395 0.398254 0.757812 0.018799 0.398529 0.811188 0.020172 0.398804 0.865509 0.021576 0.399078 0.915527 0.023224 0.399384 0.000000 0.014923 0.392426 0.000000 0.015778 0.392609 0.000000 0.016602 0.392792 0.003815 0.017578 0.392975 0.030640 0.018524 0.393158 0.064240 0.019531 0.393341 0.093262 0.020447 0.393524 0.120331 0.021454 0.393768 0.145477 0.022552 0.393951 0.169037 0.023651 0.394135 0.191345 0.024780 0.394379 0.212402 0.025940 0.394592 0.233002 0.027130 0.394806 0.253174 0.028290 0.395020 0.273529 0.029419 0.395264 0.294189 0.030548 0.395508 0.315887 0.031830 0.395752 0.338684 0.033112 0.395966 0.362976 0.034332 0.396210 0.389313 0.035675 0.396454 0.418091 0.037018 0.396759 0.449554 0.038269 0.397003 0.484070 0.039673 0.397247 0.522125 0.041107 0.397614 0.563873 0.042511 0.397980 0.608917 0.043884 0.398254 0.656494 0.045227 0.398499 0.706482 0.047516 0.398804 0.758209 0.049988 0.399078 0.811462 0.052399 0.399353 0.865662 0.055084 0.399628 0.915527 0.057861 0.399933 0.000000 0.044067 0.392792 0.000000 0.044922 0.392944 0.000000 0.045898 0.393127 0.005280 0.047821 0.393341 0.032227 0.049591 0.393524 0.065918 0.051178 0.393768 0.094727 0.053101 0.393951 0.121704 0.054993 0.394135 0.146912 0.057098 0.394379 0.170166 0.058990 0.394562 0.192383 0.060120 0.394806 0.213409 0.061249 0.395020 0.234009 0.062592 0.395233 0.254089 0.063934 0.395477 0.274384 0.065338 0.395752 0.295135 0.066589 0.395966 0.316650 0.067993 0.396210 0.339569 0.069397 0.396454 0.363953 0.070801 0.396729 0.390289 0.072235 0.397003 0.419067 0.073486 0.397247 0.450531 0.074982 0.397614 0.485077 0.076447 0.397980 0.523102 0.077881 0.398224 0.564819 0.079224 0.398499 0.609589 0.080750 0.398773 0.657104 0.082214 0.399048 0.707001 0.083740 0.399323 0.758636 0.085236 0.399628 0.811646 0.086700 0.399902 0.865814 0.088257 0.400177 0.915527 0.089722 0.400421 0.000000 0.081177 0.393127 0.000000 0.082031 0.393341 0.000000 0.083130 0.393524 0.006805 0.084198 0.393768 0.033722 0.085114 0.393951 0.067474 0.086273 0.394135 0.096344 0.087433 0.394348 0.123077 0.088440 0.394562 0.148163 0.089630 0.394806 0.171356 0.090820 0.395020 0.193512 0.092102 0.395233 0.214508 0.093353 0.395477 0.235016 0.094391 0.395752 0.255066 0.095673 0.395966 0.275269 0.096985 0.396210 0.296112 0.098236 0.396454 0.317657 0.099609 0.396729 0.340363 0.100922 0.397003 0.364868 0.102203 0.397247 0.391235 0.103455 0.397614 0.419952 0.104736 0.397949 0.451447 0.106140 0.398224 0.486084 0.107513 0.398499 0.524109 0.108856 0.398773 0.565796 0.110291 0.399048 0.610504 0.111664 0.399323 0.657959 0.113068 0.399597 0.707733 0.114471 0.399872 0.759277 0.115662 0.400146 0.812195 0.117065 0.400421 0.865936 0.118530 0.400726 0.915527 0.119843 0.401001 0.000000 0.112000 0.393524 0.000000 0.113007 0.393738 0.000000 0.113861 0.393951 0.008392 0.114929 0.394135 0.035370 0.115906 0.394348 0.069336 0.116913 0.394562 0.097870 0.118042 0.394806 0.124695 0.119202 0.395020 0.149445 0.120117 0.395233 0.172577 0.121277 0.395477 0.194580 0.122437 0.395721 0.215576 0.123566 0.395966 0.235779 0.124603 0.396179 0.256073 0.125854 0.396454 0.276245 0.127045 0.396729 0.296997 0.128143 0.396973 0.318604 0.129303 0.397247 0.341339 0.130524 0.397552 0.365784 0.131775 0.397949 0.392151 0.133087 0.398224 0.420868 0.134094 0.398499 0.452332 0.135376 0.398773 0.487091 0.136688 0.399048 0.525116 0.137909 0.399323 0.566589 0.139191 0.399597 0.611450 0.140350 0.399872 0.658783 0.141602 0.400116 0.708282 0.142883 0.400391 0.759644 0.144135 0.400726 0.812531 0.145447 0.401001 0.866089 0.146729 0.401276 0.915527 0.147797 0.401550 0.000000 0.140991 0.393951 0.000000 0.141754 0.394135 0.000000 0.142731 0.394348 0.010101 0.143738 0.394562 0.037109 0.144592 0.394775 0.071228 0.145630 0.395020 0.099640 0.146545 0.395233 0.126129 0.147522 0.395477 0.150818 0.148590 0.395721 0.173920 0.149475 0.395935 0.195831 0.150543 0.396179 0.216705 0.151672 0.396423 0.236847 0.152557 0.396729 0.257080 0.153656 0.396973 0.277252 0.154816 0.397217 0.297882 0.155731 0.397552 0.319550 0.156921 0.397949 0.342377 0.158020 0.398224 0.366669 0.158966 0.398468 0.393097 0.160156 0.398773 0.421906 0.161285 0.399017 0.453400 0.162445 0.399323 0.487915 0.163452 0.399597 0.526154 0.164612 0.399872 0.567566 0.165771 0.400116 0.612152 0.166809 0.400391 0.659424 0.167908 0.400696 0.709015 0.169128 0.401001 0.760284 0.170166 0.401245 0.812805 0.171265 0.401550 0.866302 0.172485 0.401825 0.915527 0.173615 0.402100 0.000000 0.167664 0.394348 0.000000 0.168396 0.394562 0.000000 0.169312 0.394775 0.011810 0.170166 0.394989 0.038910 0.171021 0.395233 0.073120 0.171997 0.395477 0.101288 0.172760 0.395721 0.127777 0.173737 0.395935 0.152191 0.174530 0.396179 0.175323 0.175537 0.396423 0.197021 0.176514 0.396729 0.217804 0.177368 0.396973 0.237976 0.178406 0.397217 0.257935 0.179230 0.397552 0.278290 0.180237 0.397919 0.298859 0.181335 0.398193 0.320496 0.182159 0.398468 0.343384 0.183197 0.398743 0.367706 0.184174 0.399017 0.394104 0.185150 0.399292 0.422913 0.186218 0.399567 0.454437 0.187073 0.399872 0.488983 0.188141 0.400116 0.527039 0.189240 0.400391 0.568542 0.190094 0.400696 0.613098 0.191193 0.400970 0.660309 0.192169 0.401245 0.709564 0.193115 0.401520 0.760712 0.194214 0.401825 0.813263 0.195282 0.402100 0.866608 0.196198 0.402374 0.915527 0.197296 0.402710 0.000000 0.192352 0.394775 0.000000 0.193024 0.394989 0.000000 0.193939 0.395203 0.013641 0.194611 0.395447 0.040771 0.195496 0.395721 0.074951 0.196198 0.395905 0.103088 0.197113 0.396179 0.129364 0.197815 0.396423 0.153809 0.198761 0.396698 0.176575 0.199463 0.396942 0.198273 0.200470 0.397217 0.218964 0.201172 0.397552 0.239044 0.202148 0.397919 0.259003 0.202881 0.398193 0.279297 0.203857 0.398438 0.299835 0.204712 0.398743 0.321381 0.205597 0.399017 0.344177 0.206573 0.399292 0.368744 0.207336 0.399567 0.395172 0.208344 0.399872 0.423981 0.209137 0.400116 0.455536 0.210144 0.400391 0.490051 0.211029 0.400665 0.528076 0.211914 0.400970 0.569580 0.212860 0.401245 0.614075 0.213684 0.401520 0.660950 0.214691 0.401794 0.710297 0.215515 0.402100 0.761169 0.216492 0.402374 0.813538 0.217468 0.402710 0.866760 0.218292 0.402954 0.915527 0.219238 0.403259 0.000000 0.215179 0.395203 0.000000 0.215912 0.395447 0.000000 0.216614 0.395721 0.015503 0.217346 0.395905 0.042664 0.218079 0.396149 0.076935 0.218750 0.396423 0.104980 0.219604 0.396698 0.130890 0.220276 0.396942 0.155212 0.221130 0.397217 0.177917 0.221771 0.397491 0.199463 0.222717 0.397919 0.220123 0.223389 0.398163 0.240173 0.224274 0.398438 0.260101 0.224976 0.398743 0.280121 0.225891 0.398987 0.300934 0.226562 0.399261 0.322418 0.227509 0.399567 0.345215 0.228180 0.399841 0.369812 0.229095 0.400085 0.396240 0.229828 0.400391 0.425079 0.230743 0.400665 0.456573 0.231476 0.400940 0.491089 0.232391 0.401215 0.529083 0.233124 0.401520 0.570557 0.234070 0.401794 0.614899 0.234741 0.402100 0.661804 0.235687 0.402374 0.710876 0.236542 0.402679 0.761810 0.237366 0.402954 0.813873 0.238312 0.403229 0.866882 0.239014 0.403503 0.915527 0.239990 0.403809 0.000000 0.236694 0.395691 0.000000 0.237335 0.395905 0.000000 0.237976 0.396149 0.017548 0.238708 0.396423 0.044586 0.239319 0.396667 0.078979 0.240143 0.396942 0.106873 0.240723 0.397186 0.132690 0.241516 0.397491 0.156616 0.242188 0.397888 0.179260 0.242920 0.398163 0.200745 0.243652 0.398438 0.221283 0.244263 0.398743 0.241302 0.245148 0.398987 0.261169 0.245789 0.399261 0.281219 0.246613 0.399536 0.301941 0.247284 0.399811 0.323486 0.248138 0.400085 0.346252 0.248810 0.400391 0.370850 0.249664 0.400665 0.397308 0.250336 0.400940 0.425995 0.251221 0.401215 0.457520 0.251862 0.401489 0.492188 0.252625 0.401794 0.530182 0.253387 0.402069 0.571472 0.254211 0.402374 0.615723 0.254944 0.402649 0.662689 0.255768 0.402954 0.711639 0.256500 0.403229 0.762238 0.257172 0.403473 0.814117 0.258057 0.403809 0.867035 0.258728 0.404083 0.915527 0.259552 0.404358 0.000000 0.257080 0.396149 0.000000 0.257843 0.396423 0.000000 0.258423 0.396667 0.019592 0.259125 0.396912 0.047394 0.259735 0.397186 0.081085 0.260315 0.397430 0.108582 0.261078 0.397888 0.134308 0.261627 0.398163 0.158264 0.262329 0.398438 0.180664 0.263031 0.398743 0.201996 0.263611 0.398987 0.222504 0.264435 0.399261 0.242432 0.265045 0.399536 0.262268 0.265839 0.399811 0.282318 0.266418 0.400085 0.302948 0.267303 0.400391 0.324554 0.267883 0.400665 0.347321 0.268463 0.400940 0.371796 0.269348 0.401184 0.398285 0.269897 0.401489 0.427094 0.270782 0.401794 0.458618 0.271393 0.402069 0.493286 0.272247 0.402344 0.531281 0.272858 0.402649 0.572449 0.273590 0.402924 0.616730 0.274323 0.403229 0.663391 0.274963 0.403473 0.712341 0.275757 0.403778 0.762909 0.276398 0.404083 0.814575 0.277252 0.404358 0.867157 0.277832 0.404663 0.915527 0.278687 0.404938 0.000000 0.277069 0.396667 0.000000 0.277618 0.396912 0.000000 0.278229 0.397156 0.021606 0.278870 0.397430 0.050903 0.279419 0.397888 0.083221 0.280121 0.398163 0.110596 0.280670 0.398407 0.136108 0.281250 0.398712 0.159821 0.282013 0.398956 0.182220 0.282593 0.399231 0.203278 0.283356 0.399536 0.223724 0.283936 0.399811 0.243591 0.284485 0.400085 0.263397 0.285278 0.400360 0.283356 0.285858 0.400635 0.304077 0.286652 0.400940 0.325653 0.287262 0.401184 0.348450 0.287872 0.401459 0.372833 0.288605 0.401764 0.399292 0.289185 0.402069 0.428192 0.290009 0.402344 0.459656 0.290588 0.402649 0.494385 0.291260 0.402893 0.532349 0.291962 0.403198 0.573456 0.292572 0.403473 0.617706 0.293365 0.403778 0.664246 0.293976 0.404083 0.712952 0.294800 0.404358 0.763275 0.295380 0.404663 0.814972 0.295929 0.404938 0.867310 0.296722 0.405212 0.915527 0.297363 0.405487 0.000000 0.296631 0.397156 0.000000 0.297150 0.397430 0.000000 0.297821 0.397888 0.023865 0.298401 0.398132 0.054840 0.298920 0.398407 0.085327 0.299652 0.398712 0.112549 0.300171 0.398956 0.137817 0.300812 0.399231 0.161499 0.301453 0.399506 0.183594 0.301971 0.399811 0.204681 0.302643 0.400085 0.224945 0.303284 0.400360 0.244751 0.303833 0.400604 0.264496 0.304626 0.400909 0.284515 0.305145 0.401184 0.305145 0.305878 0.401459 0.326691 0.306519 0.401764 0.349487 0.307037 0.402069 0.373901 0.307831 0.402344 0.400391 0.308380 0.402649 0.429199 0.309052 0.402893 0.460754 0.309784 0.403198 0.495300 0.310303 0.403473 0.533264 0.311096 0.403748 0.574524 0.311676 0.404053 0.618408 0.312439 0.404358 0.665070 0.313049 0.404633 0.713531 0.313599 0.404938 0.763794 0.314392 0.405212 0.815216 0.314941 0.405457 0.867462 0.315643 0.405762 0.915527 0.316315 0.406036 0.000000 0.316345 0.397858 0.000000 0.316803 0.398132 0.000122 0.317505 0.398407 0.026001 0.318024 0.398712 0.058746 0.318512 0.398956 0.087524 0.319244 0.399231 0.114532 0.319763 0.399506 0.139557 0.320343 0.399780 0.163025 0.321014 0.400085 0.184998 0.321564 0.400360 0.205994 0.322327 0.400604 0.226166 0.322876 0.400879 0.245941 0.323364 0.401154 0.265686 0.324127 0.401459 0.285614 0.324677 0.401733 0.306091 0.325287 0.402069 0.327759 0.325989 0.402344 0.350616 0.326538 0.402618 0.375000 0.327301 0.402893 0.401459 0.327850 0.403168 0.430328 0.328522 0.403442 0.461884 0.329193 0.403748 0.496368 0.329742 0.404022 0.534271 0.330475 0.404358 0.575562 0.331055 0.404633 0.619385 0.331604 0.404907 0.665741 0.332367 0.405212 0.714264 0.332916 0.405426 0.764313 0.333679 0.405731 0.815521 0.334229 0.406036 0.867737 0.334747 0.406311 0.915527 0.335571 0.406616 0.000000 0.336426 0.398407 0.000000 0.337128 0.398712 0.002075 0.337616 0.398926 0.028168 0.338104 0.399231 0.060944 0.338867 0.399506 0.089691 0.339325 0.399780 0.116364 0.339996 0.400085 0.141388 0.340576 0.400360 0.164520 0.341125 0.400604 0.186584 0.341736 0.400879 0.207428 0.342377 0.401154 0.227386 0.342865 0.401459 0.247101 0.343658 0.401733 0.266785 0.344177 0.402039 0.286713 0.344757 0.402344 0.307190 0.345490 0.402618 0.328827 0.345978 0.402863 0.351715 0.346680 0.403168 0.376099 0.347351 0.403442 0.402588 0.347839 0.403748 0.431458 0.348602 0.404022 0.462982 0.349152 0.404327 0.497437 0.349792 0.404633 0.535370 0.350464 0.404907 0.576477 0.351044 0.405182 0.620361 0.351776 0.405426 0.666626 0.352325 0.405731 0.714966 0.352844 0.406036 0.764771 0.353638 0.406311 0.816010 0.354156 0.406586 0.867981 0.354858 0.406891 0.915527 0.355438 0.407135 0.000000 0.357452 0.398926 0.000000 0.358002 0.399231 0.004211 0.358704 0.399506 0.030457 0.359161 0.399780 0.063324 0.359924 0.400085 0.091888 0.360413 0.400330 0.118408 0.360931 0.400604 0.143066 0.361664 0.400879 0.166260 0.362183 0.401154 0.188019 0.362762 0.401428 0.208710 0.363495 0.401733 0.228638 0.364014 0.402039 0.248291 0.364655 0.402313 0.267975 0.365295 0.402618 0.287872 0.365784 0.402863 0.308289 0.366547 0.403168 0.329773 0.367065 0.403412 0.352661 0.367645 0.403717 0.377228 0.368378 0.404022 0.403687 0.368927 0.404297 0.432587 0.369598 0.404602 0.464111 0.370239 0.404907 0.498596 0.370758 0.405182 0.536438 0.371521 0.405426 0.577393 0.372070 0.405731 0.621094 0.372681 0.406006 0.667480 0.373322 0.406311 0.715546 0.373871 0.406586 0.765472 0.374603 0.406860 0.816315 0.375183 0.407135 0.868134 0.375702 0.407410 0.915527 0.376434 0.407684 0.000000 0.379761 0.399475 0.000000 0.380249 0.399780 0.006256 0.380768 0.400055 0.032654 0.381531 0.400330 0.065887 0.382019 0.400574 0.094055 0.382599 0.400879 0.120422 0.383240 0.401154 0.144989 0.383789 0.401428 0.167816 0.384521 0.401733 0.189423 0.385071 0.402039 0.210022 0.385559 0.402313 0.229889 0.386353 0.402588 0.249512 0.386871 0.402863 0.269073 0.387421 0.403137 0.288971 0.388153 0.403412 0.309418 0.388702 0.403717 0.330933 0.389465 0.404022 0.353790 0.390015 0.404297 0.378326 0.390533 0.404602 0.404785 0.391296 0.404907 0.433655 0.391815 0.405182 0.465240 0.392395 0.405426 0.499664 0.393127 0.405701 0.537506 0.393677 0.406006 0.578400 0.394440 0.406281 0.622040 0.394989 0.406586 0.668152 0.395477 0.406860 0.716278 0.396210 0.407104 0.765839 0.396759 0.407410 0.816559 0.397461 0.407684 0.868225 0.398071 0.407928 0.915527 0.398590 0.408203 0.000000 0.403412 0.400055 0.000000 0.403900 0.400330 0.008575 0.404694 0.400574 0.035065 0.405182 0.400848 0.068237 0.405884 0.401123 0.096283 0.406433 0.401398 0.122406 0.407013 0.401733 0.146729 0.407715 0.402039 0.169495 0.408234 0.402283 0.190857 0.408905 0.402588 0.211334 0.409546 0.402863 0.231140 0.410034 0.403137 0.250671 0.410767 0.403412 0.270264 0.411346 0.403687 0.290100 0.411896 0.404022 0.310516 0.412689 0.404297 0.332001 0.413208 0.404572 0.354858 0.413879 0.404877 0.379425 0.414551 0.405182 0.405945 0.415039 0.405396 0.434784 0.415680 0.405701 0.466309 0.416351 0.406006 0.500763 0.416870 0.406281 0.538544 0.417603 0.406586 0.579437 0.418182 0.406860 0.623016 0.418762 0.407104 0.668976 0.419464 0.407379 0.716827 0.419952 0.407684 0.766205 0.420746 0.407928 0.817017 0.421234 0.408203 0.868408 0.421753 0.408478 0.915527 0.422516 0.408691 0.000000 0.429169 0.400574 0.000000 0.429688 0.400848 0.010895 0.430176 0.401123 0.037354 0.430939 0.401398 0.070648 0.431488 0.401703 0.098480 0.432159 0.402008 0.124420 0.432770 0.402283 0.148499 0.433258 0.402588 0.171051 0.433990 0.402832 0.192444 0.434570 0.403137 0.212677 0.435089 0.403381 0.232513 0.435852 0.403687 0.251892 0.436401 0.404022 0.271393 0.437042 0.404297 0.291229 0.437714 0.404572 0.311646 0.438263 0.404877 0.333099 0.438873 0.405151 0.355896 0.439575 0.405396 0.380554 0.440094 0.405701 0.407013 0.440826 0.406006 0.435913 0.441376 0.406250 0.467468 0.442078 0.406555 0.501892 0.442719 0.406860 0.539581 0.443207 0.407104 0.580475 0.443878 0.407379 0.623993 0.444489 0.407684 0.669586 0.445038 0.407898 0.717499 0.445770 0.408173 0.766876 0.446289 0.408447 0.817352 0.446838 0.408691 0.868530 0.447540 0.408997 0.915527 0.448029 0.409271 0.000000 0.456818 0.401123 0.000000 0.457550 0.401398 0.013184 0.458038 0.401703 0.039734 0.458740 0.402008 0.073242 0.459351 0.402283 0.100708 0.459900 0.402557 0.126312 0.460602 0.402832 0.150391 0.461212 0.403137 0.172607 0.461700 0.403381 0.193878 0.462494 0.403687 0.214172 0.462982 0.403992 0.233856 0.463562 0.404266 0.253113 0.464325 0.404572 0.272552 0.464844 0.404846 0.292358 0.465637 0.405151 0.312744 0.466156 0.405396 0.334229 0.466705 0.405701 0.357025 0.467438 0.406006 0.381653 0.467987 0.406250 0.408142 0.468536 0.406525 0.436829 0.469299 0.406830 0.468323 0.469818 0.407104 0.502777 0.470581 0.407379 0.540497 0.471130 0.407684 0.581268 0.471649 0.407898 0.624695 0.472382 0.408173 0.670441 0.472900 0.408447 0.718079 0.473419 0.408691 0.767242 0.474182 0.408997 0.817566 0.474670 0.409271 0.868683 0.475159 0.409485 0.915527 0.475861 0.409729 0.000000 0.487305 0.401703 0.000000 0.487823 0.401978 0.015594 0.488342 0.402252 0.041992 0.489105 0.402557 0.075623 0.489624 0.402802 0.102905 0.490173 0.403107 0.128357 0.490936 0.403381 0.152008 0.491455 0.403687 0.174347 0.492188 0.403992 0.195312 0.492767 0.404266 0.215515 0.493317 0.404572 0.235107 0.494049 0.404846 0.254242 0.494629 0.405151 0.273712 0.495209 0.405396 0.293457 0.495911 0.405701 0.313843 0.496429 0.406006 0.335297 0.497040 0.406250 0.358124 0.497711 0.406525 0.382538 0.498291 0.406830 0.409271 0.499023 0.407074 0.437927 0.499542 0.407379 0.469391 0.500061 0.407684 0.503876 0.500793 0.407898 0.541565 0.501343 0.408173 0.582245 0.501862 0.408447 0.625610 0.502594 0.408691 0.671265 0.503082 0.408997 0.718811 0.503693 0.409241 0.767792 0.504333 0.409485 0.817871 0.504822 0.409729 0.868866 0.505493 0.409973 0.915527 0.506012 0.410248 0.000000 0.520264 0.402252 0.000000 0.520996 0.402557 0.018036 0.521515 0.402802 0.044403 0.522186 0.403107 0.077942 0.522797 0.403381 0.105103 0.523346 0.403687 0.130371 0.524109 0.403992 0.153900 0.524628 0.404266 0.175812 0.525146 0.404541 0.196960 0.525879 0.404846 0.216827 0.526428 0.405121 0.236328 0.526947 0.405365 0.255463 0.527740 0.405701 0.274811 0.528259 0.405975 0.294617 0.528992 0.406250 0.314972 0.529541 0.406525 0.336395 0.530060 0.406799 0.359192 0.530792 0.407074 0.383575 0.531342 0.407349 0.410126 0.531830 0.407654 0.438995 0.532593 0.407898 0.470520 0.533081 0.408142 0.504883 0.533600 0.408447 0.542633 0.534302 0.408691 0.583221 0.534790 0.408966 0.626495 0.535400 0.409241 0.671906 0.536041 0.409485 0.719299 0.536499 0.409729 0.768188 0.537018 0.409973 0.818085 0.537720 0.410217 0.869080 0.538177 0.410461 0.915527 0.538666 0.410706 0.000000 0.556549 0.402802 0.000000 0.557098 0.403076 0.020477 0.557831 0.403381 0.047760 0.558289 0.403687 0.080353 0.558929 0.403961 0.107269 0.559570 0.404266 0.132385 0.560120 0.404541 0.155518 0.560577 0.404846 0.177582 0.561371 0.405121 0.198273 0.561859 0.405365 0.218140 0.562500 0.405670 0.237610 0.563141 0.405975 0.256622 0.563629 0.406219 0.276001 0.564362 0.406525 0.295502 0.564880 0.406799 0.316071 0.565338 0.407043 0.337494 0.566040 0.407349 0.360321 0.566589 0.407654 0.384705 0.567078 0.407867 0.411224 0.567780 0.408142 0.440063 0.568298 0.408417 0.471527 0.568756 0.408661 0.505920 0.569489 0.408966 0.543610 0.570007 0.409210 0.584229 0.570435 0.409454 0.627197 0.571136 0.409729 0.672699 0.571625 0.409973 0.720032 0.572052 0.410217 0.768555 0.572632 0.410431 0.818604 0.573151 0.410706 0.869293 0.573669 0.410950 0.915527 0.574097 0.411163 0.000000 0.595612 0.403381 0.000000 0.596161 0.403687 0.022919 0.596832 0.403961 0.051819 0.597260 0.404236 0.082794 0.597961 0.404510 0.109436 0.598511 0.404816 0.134125 0.598969 0.405121 0.157349 0.599579 0.405365 0.179077 0.600159 0.405670 0.199677 0.600616 0.405975 0.219421 0.601166 0.406219 0.238770 0.601837 0.406494 0.257812 0.602264 0.406799 0.277130 0.602844 0.407043 0.296600 0.603455 0.407349 0.317139 0.603912 0.407623 0.338562 0.604462 0.407867 0.361359 0.605103 0.408142 0.385773 0.605560 0.408386 0.412262 0.606018 0.408661 0.441132 0.606689 0.408936 0.472626 0.607147 0.409210 0.506958 0.607574 0.409454 0.544617 0.608154 0.409698 0.584961 0.608673 0.409973 0.628052 0.609131 0.410217 0.673248 0.609619 0.410431 0.720459 0.610168 0.410675 0.769165 0.610565 0.410950 0.818817 0.610992 0.411163 0.869415 0.611633 0.411407 0.915527 0.612030 0.411652 0.000000 0.637268 0.403961 0.000183 0.637695 0.404236 0.025299 0.638153 0.404510 0.056000 0.638855 0.404816 0.085236 0.639221 0.405090 0.111572 0.639709 0.405365 0.136139 0.640381 0.405670 0.158966 0.640839 0.405945 0.180542 0.641235 0.406219 0.201111 0.641663 0.406494 0.220734 0.642334 0.406769 0.240021 0.642761 0.407043 0.258942 0.643188 0.407349 0.278259 0.643860 0.407623 0.297699 0.644287 0.407867 0.318024 0.644684 0.408112 0.339569 0.645142 0.408386 0.362457 0.645782 0.408661 0.386841 0.646149 0.408936 0.413300 0.646545 0.409210 0.442230 0.647186 0.409454 0.473694 0.647583 0.409698 0.508026 0.647980 0.409973 0.545471 0.648407 0.410217 0.585876 0.648956 0.410431 0.628937 0.649353 0.410675 0.674011 0.649750 0.410950 0.720917 0.650116 0.411163 0.769531 0.650696 0.411377 0.819092 0.651062 0.411621 0.869507 0.651428 0.411865 0.915527 0.651733 0.412048 0.000000 0.680756 0.404510 0.002289 0.681335 0.404785 0.027740 0.681702 0.405090 0.059692 0.682129 0.405365 0.087524 0.682617 0.405640 0.113739 0.683075 0.405945 0.138092 0.683472 0.406219 0.160797 0.683868 0.406494 0.182220 0.684235 0.406769 0.202545 0.684845 0.407013 0.222137 0.685211 0.407318 0.241211 0.685577 0.407623 0.260132 0.686005 0.407837 0.279358 0.686523 0.408112 0.298798 0.686920 0.408386 0.319031 0.687225 0.408661 0.340485 0.687775 0.408936 0.363312 0.688202 0.409210 0.387909 0.688568 0.409454 0.414398 0.688904 0.409698 0.443268 0.689209 0.409943 0.474670 0.689819 0.410187 0.509003 0.690125 0.410431 0.546326 0.690491 0.410645 0.586792 0.690826 0.410950 0.629547 0.691345 0.411163 0.674591 0.691681 0.411377 0.721588 0.691956 0.411621 0.769867 0.692291 0.411865 0.819336 0.692566 0.412048 0.869629 0.693146 0.412262 0.915527 0.693420 0.412476 0.000000 0.726105 0.405060 0.004608 0.726379 0.405334 0.030151 0.726715 0.405640 0.062195 0.727264 0.405914 0.089905 0.727539 0.406189 0.115845 0.727875 0.406494 0.139832 0.728210 0.406769 0.162354 0.728546 0.407013 0.183685 0.729095 0.407318 0.203979 0.729401 0.407593 0.223450 0.729675 0.407837 0.242401 0.729980 0.408112 0.261230 0.730286 0.408386 0.280212 0.730804 0.408661 0.299835 0.731079 0.408905 0.320099 0.731415 0.409180 0.341522 0.731689 0.409424 0.364349 0.731964 0.409698 0.388916 0.732513 0.409943 0.415405 0.732758 0.410187 0.444031 0.733063 0.410400 0.475464 0.733307 0.410645 0.509888 0.733582 0.410919 0.547333 0.734070 0.411133 0.587555 0.734344 0.411377 0.630402 0.734589 0.411621 0.675293 0.734863 0.411835 0.722015 0.735107 0.412048 0.770264 0.735413 0.412262 0.819702 0.735840 0.412476 0.869751 0.736053 0.412628 0.915527 0.736267 0.412872 0.000000 0.772522 0.405640 0.006927 0.772736 0.405914 0.032532 0.773010 0.406158 0.064880 0.773407 0.406464 0.092133 0.773743 0.406769 0.117859 0.773956 0.407013 0.141724 0.774170 0.407318 0.164154 0.774414 0.407593 0.185181 0.774689 0.407837 0.205261 0.775116 0.408081 0.224731 0.775360 0.408356 0.243591 0.775574 0.408661 0.262360 0.775818 0.408905 0.281372 0.776062 0.409180 0.300934 0.776306 0.409424 0.321167 0.776642 0.409668 0.342590 0.776917 0.409912 0.365326 0.777161 0.410187 0.389954 0.777374 0.410400 0.416382 0.777618 0.410645 0.445038 0.777802 0.410919 0.476471 0.778015 0.411133 0.510773 0.778229 0.411377 0.548218 0.778564 0.411621 0.588348 0.778809 0.411835 0.631042 0.779022 0.412048 0.675934 0.779205 0.412262 0.722626 0.779388 0.412445 0.770721 0.779572 0.412628 0.819977 0.779755 0.412872 0.869812 0.779968 0.413055 0.915527 0.780212 0.413269 0.000000 0.819885 0.406158 0.009308 0.820068 0.406433 0.035004 0.820282 0.406738 0.067200 0.820404 0.407013 0.094360 0.820557 0.407318 0.119781 0.820770 0.407593 0.143646 0.820892 0.407837 0.165649 0.821106 0.408081 0.186707 0.821259 0.408356 0.206604 0.821564 0.408630 0.225922 0.821808 0.408905 0.244720 0.821899 0.409180 0.263458 0.822113 0.409424 0.282410 0.822266 0.409668 0.301971 0.822388 0.409912 0.322205 0.822510 0.410187 0.343597 0.822693 0.410370 0.366333 0.822815 0.410645 0.390747 0.823120 0.410919 0.417206 0.823364 0.411102 0.446045 0.823456 0.411346 0.477448 0.823608 0.411621 0.511719 0.823792 0.411835 0.548920 0.823853 0.412018 0.589233 0.823975 0.412231 0.631744 0.824127 0.412445 0.676544 0.824249 0.412628 0.723053 0.824402 0.412872 0.770996 0.824463 0.413055 0.820160 0.824768 0.413269 0.869904 0.824921 0.413422 0.915527 0.825043 0.413635 0.000000 0.867554 0.406738 0.011749 0.867645 0.407013 0.037323 0.867737 0.407318 0.069672 0.867798 0.407593 0.096558 0.867920 0.407806 0.121826 0.868103 0.408081 0.145264 0.868286 0.408356 0.167358 0.868378 0.408630 0.188110 0.868439 0.408905 0.207855 0.868530 0.409149 0.227112 0.868622 0.409424 0.245911 0.868713 0.409668 0.264557 0.868744 0.409912 0.283447 0.868835 0.410156 0.302887 0.868896 0.410370 0.323181 0.868988 0.410645 0.344574 0.869049 0.410919 0.367340 0.869110 0.411102 0.391724 0.869171 0.411346 0.418213 0.869263 0.411621 0.447021 0.869293 0.411835 0.478333 0.869385 0.412018 0.512512 0.869446 0.412231 0.549866 0.869568 0.412445 0.589844 0.869720 0.412628 0.632538 0.869781 0.412842 0.677002 0.869934 0.413055 0.723511 0.869995 0.413269 0.771332 0.870087 0.413422 0.820312 0.870087 0.413635 0.870117 0.870148 0.413818 0.915527 0.870178 0.413971 0.000000 0.915527 0.407288 0.014038 0.915527 0.407562 0.039673 0.915527 0.407806 0.072174 0.915527 0.408081 0.098785 0.915527 0.408356 0.123810 0.915527 0.408630 0.147095 0.915527 0.408875 0.168854 0.915527 0.409149 0.189484 0.915527 0.409393 0.209137 0.915527 0.409668 0.228302 0.915527 0.409912 0.247009 0.915527 0.410156 0.265656 0.915527 0.410370 0.284515 0.915527 0.410645 0.303833 0.915527 0.410889 0.324188 0.915527 0.411102 0.345428 0.915527 0.411316 0.368134 0.915527 0.411591 0.392670 0.915527 0.411804 0.419159 0.915527 0.412018 0.447906 0.915527 0.412231 0.479126 0.915527 0.412445 0.513275 0.915527 0.412628 0.550537 0.915527 0.412842 0.590637 0.915527 0.413055 0.633026 0.915527 0.413269 0.677673 0.915527 0.413422 0.723999 0.915527 0.413635 0.771820 0.915527 0.413788 0.820526 0.915527 0.413971 0.870331 0.915527 0.414124 0.915527 0.915527 0.414276 0.000000 0.000000 0.408264 0.000000 0.000000 0.408386 0.000000 0.000000 0.408569 0.001526 0.000000 0.408691 0.028076 0.000000 0.408844 0.061523 0.000000 0.409027 0.090729 0.000000 0.409210 0.118042 0.000000 0.409363 0.143463 0.000000 0.409515 0.167084 0.000000 0.409698 0.189392 0.000000 0.409882 0.210785 0.000000 0.410065 0.231262 0.000000 0.410278 0.251617 0.000000 0.410461 0.272003 0.000000 0.410645 0.292725 0.000000 0.410889 0.314240 0.000000 0.411072 0.336975 0.000000 0.411316 0.361450 0.000000 0.411530 0.387817 0.000000 0.411743 0.416565 0.000000 0.411987 0.447998 0.000000 0.412170 0.482452 0.000000 0.412415 0.520569 0.000000 0.412628 0.562347 0.000000 0.412903 0.607239 0.000000 0.413116 0.655182 0.000000 0.413361 0.705353 0.000000 0.413605 0.757263 0.000000 0.413879 0.810913 0.000000 0.414093 0.865356 0.000000 0.414337 0.915527 0.000000 0.414642 0.000000 0.000000 0.408569 0.000000 0.000000 0.408691 0.000000 0.000000 0.408844 0.002808 0.000000 0.408997 0.029541 0.000000 0.409180 0.062958 0.000000 0.409363 0.092041 0.000000 0.409515 0.119293 0.000000 0.409698 0.144531 0.000000 0.409882 0.168182 0.000000 0.410065 0.190399 0.000000 0.410278 0.211731 0.000000 0.410431 0.232147 0.000000 0.410645 0.252533 0.000275 0.410889 0.272766 0.001282 0.411072 0.293610 0.002350 0.411316 0.315155 0.003479 0.411530 0.337891 0.004639 0.411743 0.362366 0.005890 0.411987 0.388641 0.007202 0.412170 0.417267 0.008362 0.412384 0.448700 0.009766 0.412628 0.483398 0.011017 0.412872 0.521515 0.012360 0.413116 0.563293 0.013702 0.413330 0.608124 0.015045 0.413605 0.655823 0.016449 0.413879 0.705841 0.017822 0.414093 0.757935 0.019379 0.414337 0.811218 0.020844 0.414612 0.865509 0.022247 0.414825 0.915527 0.023682 0.415100 0.000000 0.015167 0.408844 0.000000 0.016113 0.408997 0.000000 0.017029 0.409180 0.004181 0.017822 0.409332 0.030914 0.018860 0.409515 0.064545 0.019867 0.409698 0.093567 0.020935 0.409882 0.120575 0.021912 0.410065 0.145782 0.022919 0.410248 0.169189 0.024017 0.410431 0.191498 0.025146 0.410645 0.212555 0.026306 0.410858 0.233124 0.027466 0.411072 0.253448 0.028717 0.411316 0.273712 0.029907 0.411530 0.294464 0.031128 0.411743 0.316071 0.032379 0.411987 0.338806 0.033630 0.412170 0.363098 0.034943 0.412384 0.389465 0.036224 0.412628 0.418213 0.037537 0.412872 0.449707 0.038879 0.413116 0.484192 0.040192 0.413330 0.522339 0.041595 0.413605 0.564117 0.042969 0.413849 0.609039 0.044312 0.414062 0.656647 0.045746 0.414307 0.706573 0.048340 0.414612 0.758301 0.050690 0.414825 0.811493 0.053284 0.415100 0.865662 0.056091 0.415344 0.915527 0.058777 0.415619 0.000000 0.044373 0.409180 0.000000 0.045319 0.409332 0.000000 0.046875 0.409515 0.005493 0.048370 0.409698 0.032440 0.050110 0.409882 0.066132 0.052002 0.410034 0.095093 0.053864 0.410248 0.121918 0.055664 0.410431 0.147064 0.057770 0.410645 0.170380 0.059357 0.410858 0.192566 0.060638 0.411072 0.213562 0.061859 0.411285 0.234131 0.063049 0.411499 0.254211 0.064362 0.411743 0.274597 0.065735 0.411957 0.295258 0.067047 0.412170 0.316895 0.068390 0.412384 0.339783 0.069824 0.412628 0.364044 0.071259 0.412842 0.390442 0.072632 0.413116 0.419250 0.074066 0.413330 0.450684 0.075562 0.413605 0.485168 0.076965 0.413849 0.523285 0.078430 0.414062 0.564972 0.079956 0.414307 0.609741 0.081421 0.414581 0.657257 0.082886 0.414825 0.707092 0.084381 0.415070 0.758789 0.085907 0.415344 0.811829 0.087433 0.415619 0.865814 0.088928 0.415863 0.915527 0.090454 0.416107 0.000000 0.081482 0.409515 0.000000 0.082458 0.409698 0.000000 0.083435 0.409882 0.007050 0.084564 0.410034 0.034119 0.085693 0.410248 0.067932 0.086609 0.410431 0.096558 0.087799 0.410645 0.123444 0.089050 0.410858 0.148376 0.090179 0.411041 0.171722 0.091187 0.411285 0.193695 0.092499 0.411499 0.214630 0.093719 0.411713 0.235138 0.094971 0.411957 0.255188 0.096252 0.412140 0.275452 0.097412 0.412384 0.296234 0.098694 0.412628 0.317749 0.100006 0.412842 0.340485 0.101318 0.413086 0.365021 0.102661 0.413330 0.391418 0.104004 0.413574 0.420227 0.105316 0.413849 0.451691 0.106689 0.414062 0.486206 0.107880 0.414307 0.524292 0.109314 0.414581 0.565918 0.110718 0.414825 0.610657 0.112091 0.415070 0.658081 0.113525 0.415344 0.707825 0.114899 0.415619 0.759338 0.116272 0.415863 0.812286 0.117737 0.416107 0.865936 0.119171 0.416351 0.915527 0.120361 0.416626 0.000000 0.112274 0.409882 0.000000 0.113312 0.410034 0.000000 0.114380 0.410248 0.008636 0.115234 0.410431 0.035797 0.116333 0.410645 0.069611 0.117310 0.410858 0.098297 0.118378 0.411041 0.124908 0.119507 0.411285 0.149658 0.120544 0.411469 0.172882 0.121613 0.411713 0.194855 0.122803 0.411926 0.215759 0.123993 0.412109 0.236176 0.125183 0.412354 0.256195 0.126160 0.412598 0.276398 0.127411 0.412842 0.297211 0.128632 0.413086 0.318726 0.129883 0.413300 0.341492 0.130920 0.413574 0.366028 0.132202 0.413849 0.392456 0.133423 0.414062 0.420990 0.134735 0.414307 0.452515 0.135986 0.414581 0.487244 0.137054 0.414795 0.525269 0.138336 0.415070 0.566895 0.139587 0.415314 0.611572 0.140900 0.415619 0.658936 0.142059 0.415863 0.708466 0.143280 0.416107 0.759766 0.144562 0.416351 0.812531 0.145905 0.416626 0.866089 0.147156 0.416931 0.915527 0.148376 0.417175 0.000000 0.141266 0.410248 0.000000 0.142212 0.410431 0.000000 0.143036 0.410645 0.010315 0.144073 0.410858 0.037537 0.144867 0.411041 0.071472 0.145935 0.411255 0.099884 0.147003 0.411469 0.126404 0.147827 0.411713 0.151001 0.148895 0.411926 0.174225 0.150024 0.412109 0.196014 0.150909 0.412354 0.216858 0.151978 0.412598 0.237152 0.153015 0.412842 0.257233 0.154022 0.413055 0.277374 0.155151 0.413300 0.298187 0.156281 0.413574 0.319702 0.157257 0.413818 0.342499 0.158386 0.414062 0.366974 0.159546 0.414307 0.393341 0.160522 0.414551 0.422058 0.161652 0.414795 0.453552 0.162842 0.415039 0.488281 0.163879 0.415314 0.526337 0.164948 0.415588 0.567749 0.166107 0.415863 0.612427 0.167297 0.416107 0.659607 0.168304 0.416351 0.709106 0.169464 0.416595 0.760376 0.170624 0.416931 0.812836 0.171844 0.417175 0.866302 0.172791 0.417450 0.915527 0.173981 0.417694 0.000000 0.167908 0.410645 0.000000 0.168854 0.410858 0.000000 0.169556 0.411041 0.012085 0.170502 0.411255 0.039246 0.171295 0.411469 0.073425 0.172241 0.411713 0.101715 0.173126 0.411926 0.128082 0.174072 0.412109 0.152618 0.175018 0.412354 0.175507 0.175842 0.412567 0.197205 0.176849 0.412811 0.218018 0.177673 0.413055 0.238251 0.178711 0.413300 0.258209 0.179718 0.413574 0.278412 0.180573 0.413818 0.298981 0.181671 0.414062 0.320709 0.182495 0.414307 0.343506 0.183533 0.414551 0.367859 0.184631 0.414795 0.394287 0.185486 0.415039 0.423096 0.186554 0.415314 0.454620 0.187592 0.415588 0.489197 0.188477 0.415833 0.527252 0.189606 0.416077 0.568695 0.190399 0.416321 0.613251 0.191498 0.416595 0.660400 0.192627 0.416901 0.709656 0.193481 0.417145 0.760803 0.194550 0.417419 0.813324 0.195648 0.417694 0.866669 0.196503 0.417969 0.915527 0.197632 0.418243 0.000000 0.192627 0.411011 0.000000 0.193268 0.411255 0.000000 0.194153 0.411469 0.013947 0.194855 0.411682 0.041199 0.195740 0.411926 0.075470 0.196442 0.412109 0.103516 0.197357 0.412354 0.129608 0.198059 0.412567 0.153992 0.199005 0.412811 0.176788 0.199829 0.413055 0.198425 0.200684 0.413300 0.219147 0.201447 0.413544 0.239258 0.202393 0.413788 0.259247 0.203278 0.414062 0.279480 0.204163 0.414276 0.300018 0.205139 0.414520 0.321533 0.205902 0.414795 0.344421 0.206879 0.415039 0.368927 0.207642 0.415314 0.395325 0.208618 0.415588 0.424194 0.209595 0.415833 0.455658 0.210388 0.416077 0.490173 0.211395 0.416321 0.528229 0.212189 0.416595 0.569763 0.213196 0.416901 0.614197 0.213989 0.417145 0.661255 0.214996 0.417419 0.710388 0.215973 0.417694 0.761230 0.216797 0.417938 0.813599 0.217804 0.418213 0.866791 0.218567 0.418457 0.915527 0.219574 0.418762 0.000000 0.215424 0.411469 0.000000 0.216187 0.411682 0.000000 0.216827 0.411896 0.015961 0.217682 0.412109 0.043091 0.218323 0.412354 0.077301 0.219055 0.412567 0.105255 0.219818 0.412811 0.131378 0.220551 0.413055 0.155457 0.221405 0.413300 0.178131 0.222137 0.413544 0.199646 0.222931 0.413788 0.220306 0.223633 0.414062 0.240326 0.224518 0.414276 0.260315 0.225250 0.414520 0.280365 0.226135 0.414764 0.301086 0.226959 0.415039 0.322571 0.227722 0.415283 0.345490 0.228668 0.415588 0.369965 0.229370 0.415833 0.396393 0.230133 0.416077 0.425232 0.231018 0.416321 0.456757 0.231934 0.416595 0.491272 0.232697 0.416901 0.529266 0.233643 0.417145 0.570740 0.234314 0.417419 0.615143 0.235291 0.417664 0.661926 0.235992 0.417938 0.711060 0.236908 0.418213 0.761902 0.237640 0.418457 0.813873 0.238586 0.418732 0.866913 0.239288 0.419006 0.915527 0.240204 0.419281 0.000000 0.237000 0.411896 0.000000 0.237579 0.412079 0.000000 0.238373 0.412323 0.017944 0.238953 0.412567 0.044983 0.239655 0.412781 0.079376 0.240326 0.413025 0.107208 0.240967 0.413300 0.132935 0.241791 0.413513 0.157104 0.242401 0.413788 0.179718 0.243256 0.414032 0.200928 0.243896 0.414246 0.221497 0.244690 0.414520 0.241455 0.245361 0.414764 0.261322 0.246033 0.415009 0.281433 0.246887 0.415283 0.302124 0.247528 0.415558 0.323639 0.248383 0.415833 0.346436 0.249023 0.416077 0.371002 0.249878 0.416290 0.397461 0.250580 0.416595 0.426300 0.251465 0.416901 0.457825 0.252075 0.417114 0.492371 0.252991 0.417419 0.530365 0.253632 0.417664 0.571747 0.254547 0.417938 0.615906 0.255188 0.418213 0.662811 0.256104 0.418457 0.711731 0.256775 0.418732 0.762299 0.257507 0.419006 0.814209 0.258301 0.419250 0.867096 0.259125 0.419556 0.915527 0.259827 0.419830 0.000000 0.257355 0.412323 0.000000 0.258087 0.412567 0.000000 0.258606 0.412781 0.019928 0.259399 0.413025 0.048157 0.259918 0.413300 0.081390 0.260681 0.413513 0.109100 0.261292 0.413788 0.134735 0.261841 0.414032 0.158569 0.262695 0.414246 0.181091 0.263214 0.414520 0.202209 0.264038 0.414764 0.222717 0.264679 0.415009 0.242615 0.265350 0.415283 0.262482 0.266083 0.415558 0.282501 0.266693 0.415833 0.303192 0.267487 0.416046 0.324707 0.268097 0.416290 0.347504 0.268951 0.416595 0.372101 0.269562 0.416870 0.398560 0.270264 0.417114 0.427368 0.270996 0.417389 0.458893 0.271667 0.417664 0.493439 0.272461 0.417938 0.531403 0.273071 0.418213 0.572632 0.273926 0.418457 0.616852 0.274567 0.418732 0.663666 0.275360 0.419006 0.712494 0.276001 0.419250 0.762939 0.276794 0.419556 0.814697 0.277466 0.419830 0.867188 0.278107 0.420044 0.915527 0.278931 0.420349 0.000000 0.277313 0.412781 0.000000 0.277802 0.413025 0.000000 0.278534 0.413300 0.022095 0.279053 0.413513 0.051666 0.279633 0.413757 0.083496 0.280365 0.414001 0.110962 0.280914 0.414246 0.136353 0.281555 0.414490 0.160095 0.282257 0.414764 0.182404 0.282806 0.415009 0.203583 0.283569 0.415283 0.223907 0.284119 0.415558 0.243774 0.284760 0.415802 0.263550 0.285492 0.416046 0.283539 0.286072 0.416290 0.304260 0.286865 0.416565 0.325775 0.287415 0.416840 0.348572 0.288269 0.417114 0.373169 0.288818 0.417358 0.399628 0.289490 0.417664 0.428467 0.290222 0.417938 0.459808 0.290802 0.418182 0.494537 0.291595 0.418427 0.532471 0.292206 0.418732 0.573608 0.292908 0.419006 0.617859 0.293579 0.419250 0.664368 0.294189 0.419556 0.713013 0.294983 0.419800 0.763367 0.295563 0.420044 0.815002 0.296356 0.420319 0.867340 0.296967 0.420593 0.915527 0.297577 0.420868 0.000000 0.296814 0.413269 0.000000 0.297333 0.413513 0.000000 0.298065 0.413757 0.024200 0.298553 0.414001 0.055420 0.299103 0.414215 0.085663 0.299835 0.414490 0.112885 0.300385 0.414734 0.138184 0.301117 0.414978 0.161774 0.301636 0.415283 0.183807 0.302155 0.415558 0.204987 0.302948 0.415771 0.225128 0.303467 0.416046 0.244934 0.304047 0.416290 0.264709 0.304810 0.416565 0.284668 0.305389 0.416840 0.305359 0.306122 0.417084 0.326874 0.306732 0.417358 0.349701 0.307251 0.417633 0.374176 0.308044 0.417908 0.400726 0.308594 0.418182 0.429413 0.309418 0.418427 0.460938 0.309967 0.418701 0.495575 0.310608 0.418976 0.533569 0.311310 0.419250 0.574677 0.311859 0.419556 0.618713 0.312683 0.419800 0.665222 0.313232 0.420044 0.713776 0.313843 0.420319 0.763977 0.314606 0.420593 0.815277 0.315155 0.420868 0.867493 0.315948 0.421143 0.915527 0.316498 0.421387 0.000000 0.316528 0.413727 0.000000 0.317047 0.414001 0.000488 0.317688 0.414215 0.026428 0.318207 0.414490 0.059113 0.318695 0.414734 0.087830 0.319427 0.414978 0.114868 0.319977 0.415283 0.139832 0.320679 0.415527 0.163269 0.321228 0.415771 0.185364 0.321747 0.416046 0.206268 0.322510 0.416290 0.226379 0.323029 0.416565 0.246094 0.323761 0.416840 0.265808 0.324310 0.417084 0.285736 0.324890 0.417358 0.306305 0.325653 0.417633 0.327972 0.326202 0.417908 0.350769 0.326782 0.418152 0.375153 0.327515 0.418396 0.401642 0.328064 0.418701 0.430511 0.328857 0.418976 0.462036 0.329376 0.419250 0.496674 0.329956 0.419525 0.534454 0.330688 0.419800 0.575714 0.331268 0.420013 0.619568 0.331970 0.420319 0.665955 0.332581 0.420593 0.714325 0.333130 0.420868 0.764404 0.333893 0.421143 0.815643 0.334412 0.421387 0.867737 0.335236 0.421661 0.915527 0.335785 0.421906 0.000000 0.336578 0.414215 0.000000 0.337280 0.414490 0.002380 0.337799 0.414734 0.028656 0.338440 0.414978 0.061462 0.339020 0.415253 0.090027 0.339539 0.415527 0.116913 0.340240 0.415771 0.141693 0.340790 0.416046 0.165009 0.341309 0.416290 0.186829 0.342041 0.416565 0.207581 0.342560 0.416840 0.227600 0.343140 0.417084 0.247284 0.343842 0.417358 0.266937 0.344391 0.417633 0.286896 0.345154 0.417908 0.307373 0.345673 0.418152 0.329041 0.346191 0.418396 0.351868 0.346985 0.418671 0.376251 0.347504 0.418945 0.402740 0.348145 0.419220 0.431610 0.348816 0.419525 0.463165 0.349335 0.419800 0.497772 0.350128 0.420013 0.535522 0.350647 0.420288 0.576721 0.351257 0.420593 0.620514 0.351959 0.420837 0.666718 0.352478 0.421112 0.715088 0.353180 0.421356 0.764862 0.353821 0.421631 0.816071 0.354370 0.421906 0.867981 0.355103 0.422150 0.915527 0.355621 0.422394 0.000000 0.357635 0.414734 0.000000 0.358368 0.414948 0.004517 0.358856 0.415253 0.030853 0.359375 0.415527 0.063873 0.360107 0.415771 0.092224 0.360596 0.416046 0.118713 0.361206 0.416290 0.143585 0.361847 0.416534 0.166534 0.362366 0.416809 0.188202 0.363098 0.417053 0.208893 0.363647 0.417328 0.228912 0.364166 0.417633 0.248474 0.364929 0.417908 0.268097 0.365448 0.418152 0.288025 0.365997 0.418396 0.308502 0.366730 0.418671 0.330048 0.367310 0.418945 0.352997 0.368042 0.419220 0.377350 0.368591 0.419495 0.403870 0.369141 0.419769 0.432770 0.369904 0.420013 0.464233 0.370392 0.420288 0.498718 0.370972 0.420593 0.536591 0.371704 0.420837 0.577576 0.372284 0.421112 0.621399 0.373016 0.421356 0.667633 0.373566 0.421631 0.715637 0.374054 0.421906 0.765503 0.374847 0.422119 0.816345 0.375366 0.422394 0.868134 0.375916 0.422668 0.915527 0.376617 0.422913 0.000000 0.379944 0.415253 0.000000 0.380432 0.415497 0.006775 0.381012 0.415741 0.033203 0.381714 0.416016 0.066254 0.382202 0.416260 0.094421 0.382935 0.416534 0.120758 0.383484 0.416809 0.145203 0.383972 0.417053 0.168182 0.384735 0.417328 0.189697 0.385254 0.417603 0.210236 0.385925 0.417877 0.230286 0.386505 0.418152 0.249634 0.387085 0.418365 0.269257 0.387817 0.418671 0.289124 0.388367 0.418945 0.309631 0.388885 0.419220 0.331146 0.389679 0.419495 0.354095 0.390198 0.419769 0.378479 0.390839 0.420013 0.404999 0.391479 0.420258 0.433838 0.391998 0.420563 0.465363 0.392792 0.420807 0.499847 0.393341 0.421082 0.537659 0.393829 0.421326 0.578583 0.394653 0.421600 0.622192 0.395172 0.421906 0.668243 0.395782 0.422119 0.716370 0.396423 0.422394 0.765900 0.396973 0.422668 0.816620 0.397736 0.422882 0.868286 0.398254 0.423187 0.915527 0.398743 0.423431 0.000000 0.403625 0.415741 0.000000 0.404327 0.415985 0.009033 0.404846 0.416260 0.035492 0.405365 0.416534 0.068665 0.406128 0.416779 0.096588 0.406647 0.417053 0.122772 0.407257 0.417328 0.147095 0.407898 0.417603 0.169800 0.408447 0.417877 0.191193 0.409210 0.418121 0.211731 0.409729 0.418365 0.231476 0.410248 0.418640 0.250854 0.411011 0.418915 0.270386 0.411560 0.419220 0.290253 0.412109 0.419495 0.310669 0.412872 0.419769 0.332245 0.413391 0.420013 0.355194 0.414154 0.420258 0.379547 0.414703 0.420563 0.406097 0.415253 0.420807 0.434937 0.415955 0.421082 0.466492 0.416534 0.421326 0.500946 0.417114 0.421600 0.538757 0.417816 0.421906 0.579590 0.418365 0.422119 0.623138 0.419098 0.422394 0.669098 0.419617 0.422638 0.716919 0.420197 0.422882 0.766327 0.420929 0.423187 0.817139 0.421448 0.423401 0.868439 0.421967 0.423676 0.915527 0.422699 0.423889 0.000000 0.429352 0.416260 0.000000 0.429840 0.416504 0.011292 0.430511 0.416779 0.037842 0.431152 0.417053 0.071198 0.431671 0.417297 0.098816 0.432434 0.417603 0.124786 0.432922 0.417847 0.148743 0.433472 0.418091 0.171356 0.434235 0.418365 0.192657 0.434753 0.418640 0.213043 0.435394 0.418915 0.232819 0.436066 0.419220 0.252136 0.436584 0.419464 0.271576 0.437347 0.419769 0.291412 0.437927 0.420013 0.311798 0.438416 0.420258 0.333282 0.439209 0.420563 0.356079 0.439758 0.420807 0.380707 0.440399 0.421082 0.407227 0.441071 0.421326 0.436096 0.441559 0.421600 0.467590 0.442383 0.421906 0.502045 0.442902 0.422119 0.539825 0.443390 0.422363 0.580627 0.444183 0.422638 0.624084 0.444733 0.422882 0.669891 0.445221 0.423157 0.717651 0.445984 0.423401 0.766937 0.446503 0.423645 0.817413 0.447174 0.423889 0.868561 0.447723 0.424164 0.915527 0.448242 0.424377 0.000000 0.457092 0.416779 0.000000 0.457703 0.417023 0.013672 0.458282 0.417297 0.040161 0.459015 0.417603 0.073578 0.459564 0.417847 0.101013 0.460114 0.418091 0.126709 0.460815 0.418365 0.150635 0.461365 0.418610 0.173065 0.461945 0.418915 0.194061 0.462677 0.419189 0.214417 0.463226 0.419464 0.234039 0.463989 0.419739 0.253387 0.464539 0.419983 0.272705 0.465057 0.420258 0.292542 0.465820 0.420563 0.312897 0.466339 0.420807 0.334381 0.466888 0.421082 0.357178 0.467651 0.421326 0.381805 0.468201 0.421600 0.408325 0.468994 0.421906 0.437103 0.469513 0.422089 0.468567 0.470001 0.422363 0.503113 0.470795 0.422638 0.540802 0.471283 0.422882 0.581421 0.471985 0.423157 0.625000 0.472565 0.423401 0.670532 0.473114 0.423645 0.718140 0.473694 0.423889 0.767303 0.474335 0.424133 0.817627 0.474823 0.424377 0.868744 0.475586 0.424622 0.915527 0.476074 0.424866 0.000000 0.487518 0.417297 0.000000 0.488037 0.417603 0.016113 0.488708 0.417847 0.042511 0.489288 0.418091 0.075958 0.489838 0.418365 0.103271 0.490509 0.418610 0.128693 0.491119 0.418915 0.152405 0.491638 0.419189 0.174591 0.492432 0.419464 0.195648 0.492950 0.419708 0.215729 0.493561 0.419983 0.235352 0.494293 0.420258 0.254486 0.494812 0.420532 0.273895 0.495575 0.420776 0.293640 0.496063 0.421051 0.314026 0.496643 0.421295 0.335480 0.497375 0.421570 0.358276 0.497955 0.421875 0.382874 0.498444 0.422089 0.409424 0.499237 0.422363 0.438202 0.499695 0.422607 0.469604 0.500427 0.422882 0.504181 0.500977 0.423157 0.541687 0.501526 0.423401 0.582367 0.502167 0.423645 0.625702 0.502777 0.423889 0.671417 0.503265 0.424133 0.718933 0.503998 0.424377 0.767914 0.504517 0.424591 0.817902 0.504974 0.424866 0.868866 0.505707 0.425110 0.915527 0.506195 0.425323 0.000000 0.520569 0.417847 0.000000 0.521179 0.418091 0.018463 0.521759 0.418335 0.044769 0.522461 0.418610 0.078369 0.523010 0.418915 0.105408 0.523560 0.419189 0.130646 0.524292 0.419434 0.154144 0.524811 0.419708 0.176086 0.525360 0.419952 0.197113 0.526093 0.420227 0.217041 0.526642 0.420502 0.236542 0.527374 0.420776 0.255737 0.527893 0.421051 0.275024 0.528412 0.421295 0.294769 0.529175 0.421570 0.315094 0.529694 0.421844 0.336548 0.530304 0.422058 0.359375 0.531006 0.422333 0.383942 0.531494 0.422607 0.410400 0.532043 0.422882 0.439209 0.532715 0.423126 0.470642 0.533264 0.423370 0.505157 0.533936 0.423645 0.542755 0.534485 0.423859 0.583374 0.535034 0.424133 0.626617 0.535706 0.424347 0.672058 0.536224 0.424591 0.719391 0.536682 0.424866 0.768280 0.537201 0.425079 0.818207 0.537903 0.425323 0.869110 0.538330 0.425537 0.915527 0.538940 0.425751 0.000000 0.556732 0.418335 0.000000 0.557373 0.418610 0.020905 0.558014 0.418915 0.048462 0.558502 0.419159 0.080933 0.559204 0.419434 0.107635 0.559753 0.419708 0.132660 0.560272 0.419952 0.156006 0.561005 0.420227 0.177795 0.561554 0.420502 0.198547 0.562042 0.420746 0.218323 0.562805 0.421021 0.237762 0.563293 0.421295 0.256927 0.563812 0.421570 0.276154 0.564514 0.421844 0.295868 0.565063 0.422058 0.316254 0.565521 0.422333 0.337677 0.566254 0.422607 0.360443 0.566772 0.422852 0.384979 0.567230 0.423126 0.411499 0.567993 0.423370 0.440216 0.568451 0.423615 0.471710 0.569031 0.423859 0.506134 0.569672 0.424133 0.543732 0.570129 0.424347 0.584320 0.570709 0.424591 0.627411 0.571320 0.424835 0.672791 0.571777 0.425079 0.720062 0.572205 0.425323 0.768707 0.572876 0.425537 0.818665 0.573395 0.425751 0.869324 0.573792 0.425964 0.915527 0.574402 0.426208 0.000000 0.595795 0.418884 0.000000 0.596497 0.419159 0.023346 0.596985 0.419434 0.052490 0.597473 0.419708 0.083252 0.598206 0.419952 0.109802 0.598663 0.420227 0.134613 0.599152 0.420502 0.157593 0.599823 0.420746 0.179382 0.600342 0.421021 0.199890 0.600830 0.421295 0.219818 0.601501 0.421570 0.238983 0.601990 0.421844 0.257996 0.602478 0.422058 0.277313 0.603149 0.422333 0.296875 0.603638 0.422577 0.317322 0.604126 0.422852 0.338745 0.604767 0.423126 0.361511 0.605255 0.423370 0.385986 0.605743 0.423615 0.412476 0.606384 0.423859 0.441284 0.606842 0.424103 0.472778 0.607300 0.424316 0.507141 0.607758 0.424591 0.544800 0.608368 0.424835 0.585297 0.608826 0.425079 0.628143 0.609253 0.425293 0.673340 0.609894 0.425537 0.720551 0.610321 0.425751 0.769257 0.610748 0.425964 0.818878 0.611176 0.426208 0.869415 0.611786 0.426422 0.915527 0.612183 0.426636 0.000000 0.637421 0.419403 0.000610 0.637848 0.419708 0.025818 0.638428 0.419952 0.056885 0.639008 0.420227 0.085602 0.639435 0.420502 0.111938 0.639862 0.420746 0.136414 0.640533 0.421021 0.159454 0.640961 0.421265 0.181000 0.641357 0.421570 0.201477 0.641876 0.421844 0.221100 0.642487 0.422058 0.240204 0.642914 0.422302 0.259247 0.643311 0.422577 0.278412 0.643982 0.422852 0.298004 0.644440 0.423126 0.318359 0.644836 0.423370 0.339844 0.645477 0.423584 0.362610 0.645874 0.423859 0.386993 0.646332 0.424103 0.413513 0.646820 0.424316 0.442352 0.647339 0.424561 0.473816 0.647766 0.424835 0.508148 0.648102 0.425049 0.545715 0.648499 0.425293 0.585968 0.649139 0.425537 0.629028 0.649475 0.425720 0.674133 0.649872 0.425964 0.720978 0.650299 0.426208 0.769562 0.650787 0.426392 0.819153 0.651184 0.426605 0.869537 0.651520 0.426849 0.915527 0.651917 0.427063 0.000000 0.681000 0.419922 0.002777 0.681488 0.420197 0.028168 0.681885 0.420502 0.060089 0.682220 0.420715 0.087891 0.682861 0.421021 0.114044 0.683228 0.421265 0.138367 0.683624 0.421539 0.161041 0.684021 0.421814 0.182434 0.684540 0.422028 0.202850 0.684937 0.422302 0.222412 0.685333 0.422577 0.241394 0.685730 0.422852 0.260406 0.686340 0.423096 0.279541 0.686707 0.423370 0.298920 0.687042 0.423584 0.319336 0.687408 0.423859 0.340698 0.687988 0.424072 0.363586 0.688354 0.424316 0.388062 0.688690 0.424561 0.414551 0.689026 0.424835 0.443390 0.689331 0.425049 0.474854 0.689911 0.425293 0.509155 0.690247 0.425537 0.546509 0.690582 0.425720 0.586914 0.690918 0.425964 0.629669 0.691498 0.426208 0.674774 0.691803 0.426392 0.721649 0.692108 0.426605 0.769928 0.692383 0.426849 0.819397 0.692719 0.427063 0.869659 0.693207 0.427216 0.915527 0.693481 0.427429 0.000000 0.726196 0.420471 0.005096 0.726532 0.420715 0.030640 0.726868 0.420990 0.062683 0.727356 0.421265 0.090363 0.727722 0.421539 0.116150 0.727997 0.421814 0.140289 0.728333 0.422028 0.162842 0.728821 0.422302 0.183899 0.729187 0.422577 0.204193 0.729462 0.422821 0.223663 0.729767 0.423096 0.242584 0.730072 0.423340 0.261414 0.730438 0.423584 0.280548 0.730896 0.423828 0.300018 0.731232 0.424072 0.320343 0.731506 0.424316 0.341705 0.731781 0.424561 0.364532 0.732208 0.424835 0.389069 0.732574 0.425049 0.415558 0.732819 0.425262 0.444336 0.733154 0.425537 0.475647 0.733398 0.425720 0.510101 0.733734 0.425934 0.547485 0.734161 0.426178 0.587708 0.734436 0.426392 0.630463 0.734711 0.426575 0.675415 0.734955 0.426849 0.722107 0.735168 0.427063 0.770447 0.735596 0.427216 0.819763 0.735931 0.427429 0.869751 0.736145 0.427612 0.915527 0.736359 0.427795 0.000000 0.772614 0.420990 0.007416 0.772827 0.421265 0.033112 0.773102 0.421539 0.065216 0.773560 0.421814 0.092682 0.773773 0.422028 0.118195 0.774048 0.422272 0.142029 0.774261 0.422577 0.164398 0.774536 0.422821 0.185547 0.774811 0.423065 0.205475 0.775238 0.423340 0.224915 0.775452 0.423584 0.243744 0.775665 0.423798 0.262512 0.775879 0.424072 0.281616 0.776123 0.424286 0.301086 0.776337 0.424561 0.321350 0.776764 0.424805 0.342743 0.777008 0.425018 0.365509 0.777222 0.425262 0.390106 0.777496 0.425537 0.416595 0.777649 0.425690 0.445160 0.777863 0.425934 0.476593 0.778107 0.426178 0.510895 0.778259 0.426361 0.548401 0.778625 0.426575 0.588470 0.778900 0.426849 0.631287 0.779114 0.427032 0.676117 0.779266 0.427216 0.722717 0.779449 0.427399 0.770752 0.779633 0.427612 0.819977 0.779816 0.427795 0.869812 0.780029 0.427948 0.915527 0.780426 0.428162 0.000000 0.819946 0.421539 0.009796 0.820190 0.421814 0.035309 0.820312 0.421997 0.067596 0.820496 0.422272 0.094849 0.820648 0.422577 0.120270 0.820831 0.422791 0.143921 0.820923 0.423065 0.166016 0.821136 0.423340 0.186951 0.821381 0.423553 0.206818 0.821716 0.423798 0.226135 0.821808 0.424072 0.244904 0.822021 0.424286 0.263641 0.822144 0.424530 0.282684 0.822296 0.424805 0.302124 0.822449 0.425018 0.322327 0.822601 0.425262 0.343750 0.822754 0.425537 0.366486 0.822906 0.425690 0.390900 0.823151 0.425903 0.417389 0.823395 0.426178 0.446167 0.823517 0.426361 0.477570 0.823700 0.426575 0.511871 0.823792 0.426819 0.549072 0.823944 0.427032 0.589325 0.824066 0.427216 0.631866 0.824158 0.427399 0.676605 0.824310 0.427612 0.723145 0.824402 0.427795 0.771057 0.824554 0.427948 0.820190 0.824768 0.428162 0.869904 0.825012 0.428345 0.915527 0.825104 0.428528 0.000000 0.867584 0.421997 0.012085 0.867676 0.422272 0.037781 0.867767 0.422546 0.070221 0.867798 0.422791 0.097137 0.867981 0.423065 0.122101 0.868164 0.423309 0.145660 0.868347 0.423553 0.167633 0.868378 0.423798 0.188324 0.868469 0.424042 0.208221 0.868561 0.424286 0.227325 0.868622 0.424530 0.246033 0.868713 0.424805 0.264740 0.868774 0.425018 0.283600 0.868835 0.425232 0.303131 0.868958 0.425537 0.323334 0.868988 0.425690 0.344727 0.869110 0.425903 0.367493 0.869110 0.426178 0.391876 0.869202 0.426361 0.418304 0.869263 0.426575 0.447144 0.869354 0.426819 0.478516 0.869385 0.427002 0.512787 0.869446 0.427185 0.549957 0.869568 0.427368 0.589935 0.869720 0.427582 0.632629 0.869873 0.427765 0.677063 0.869934 0.427948 0.723572 0.869995 0.428162 0.771484 0.870087 0.428314 0.820404 0.870148 0.428528 0.870117 0.870178 0.428680 0.915527 0.870239 0.428833 0.000000 0.915527 0.422546 0.014496 0.915527 0.422791 0.040009 0.915527 0.423035 0.072510 0.915527 0.423309 0.099304 0.915527 0.423553 0.124084 0.915527 0.423798 0.147369 0.915527 0.424042 0.169128 0.915527 0.424286 0.189728 0.915527 0.424530 0.209412 0.915527 0.424805 0.228485 0.915527 0.424988 0.247162 0.915527 0.425232 0.265778 0.915527 0.425507 0.284637 0.915527 0.425690 0.304138 0.915527 0.425903 0.324310 0.915527 0.426178 0.345642 0.915527 0.426361 0.368408 0.915527 0.426575 0.392792 0.915527 0.426819 0.419250 0.915527 0.427002 0.448090 0.915527 0.427185 0.479218 0.915527 0.427368 0.513458 0.915527 0.427582 0.550690 0.915527 0.427765 0.590698 0.915527 0.427948 0.633148 0.915527 0.428162 0.677765 0.915527 0.428314 0.724060 0.915527 0.428528 0.771851 0.915527 0.428650 0.820648 0.915527 0.428833 0.870331 0.915527 0.428986 0.915527 0.915527 0.429138 0.000000 0.000000 0.424225 0.000000 0.000000 0.424347 0.000000 0.000000 0.424500 0.001862 0.000000 0.424652 0.028412 0.000000 0.424805 0.061768 0.000000 0.424927 0.090912 0.000000 0.425110 0.118225 0.000000 0.425262 0.143646 0.000000 0.425446 0.167328 0.000000 0.425568 0.189514 0.000000 0.425751 0.210907 0.000000 0.425934 0.231537 0.000000 0.426147 0.251770 0.000000 0.426300 0.272217 0.000000 0.426514 0.292847 0.000000 0.426697 0.314392 0.000000 0.426910 0.337219 0.000000 0.427124 0.361572 0.000000 0.427277 0.387909 0.000000 0.427521 0.416656 0.000000 0.427734 0.448120 0.000000 0.427917 0.482574 0.000000 0.428162 0.520721 0.000000 0.428406 0.562469 0.000000 0.428589 0.607544 0.000000 0.428864 0.655304 0.000000 0.429047 0.705414 0.000000 0.429291 0.757355 0.000000 0.429504 0.810944 0.000000 0.429779 0.865448 0.000000 0.430023 0.915527 0.000000 0.430237 0.000000 0.000000 0.424500 0.000000 0.000000 0.424652 0.000000 0.000000 0.424805 0.003021 0.000000 0.424927 0.029724 0.000000 0.425110 0.063171 0.000000 0.425262 0.092285 0.000000 0.425446 0.119476 0.000000 0.425568 0.144836 0.000000 0.425751 0.168457 0.000000 0.425903 0.190582 0.000000 0.426117 0.211914 0.000000 0.426300 0.232300 0.000000 0.426514 0.252686 0.000702 0.426697 0.272919 0.001770 0.426910 0.293732 0.002838 0.427124 0.315308 0.003998 0.427277 0.338013 0.005188 0.427521 0.362518 0.006348 0.427734 0.388855 0.007629 0.427917 0.417389 0.008911 0.428162 0.448822 0.010162 0.428375 0.483582 0.011475 0.428589 0.521667 0.012787 0.428833 0.563446 0.014130 0.429047 0.608246 0.015625 0.429291 0.656097 0.016998 0.429504 0.705994 0.018433 0.429749 0.757996 0.019867 0.430023 0.811249 0.021271 0.430206 0.865570 0.022736 0.430511 0.915527 0.024292 0.430725 0.000000 0.015533 0.424805 0.000000 0.016357 0.424896 0.000000 0.017334 0.425110 0.004364 0.018311 0.425232 0.031281 0.019165 0.425415 0.064941 0.020203 0.425568 0.093872 0.021240 0.425751 0.120789 0.022308 0.425903 0.145996 0.023438 0.426117 0.169525 0.024567 0.426300 0.191650 0.025574 0.426514 0.212708 0.026672 0.426697 0.233276 0.027832 0.426880 0.253632 0.029053 0.427094 0.273834 0.030273 0.427277 0.294647 0.031494 0.427490 0.316223 0.032776 0.427704 0.338928 0.034058 0.427887 0.363251 0.035339 0.428162 0.389740 0.036621 0.428375 0.418365 0.037964 0.428589 0.449829 0.039276 0.428833 0.484467 0.040649 0.429047 0.522614 0.041962 0.429260 0.564392 0.043396 0.429504 0.609161 0.044800 0.429749 0.656738 0.046875 0.429993 0.706635 0.049225 0.430206 0.758392 0.051849 0.430481 0.811554 0.054443 0.430695 0.865692 0.057098 0.430939 0.915527 0.059357 0.431183 0.000000 0.044678 0.425079 0.000000 0.045624 0.425232 0.000000 0.047485 0.425415 0.005890 0.048828 0.425568 0.032654 0.050659 0.425751 0.066406 0.052551 0.425903 0.095276 0.054565 0.426117 0.122192 0.056610 0.426300 0.147308 0.058411 0.426483 0.170746 0.059723 0.426697 0.192719 0.060974 0.426880 0.213745 0.062256 0.427094 0.234314 0.063599 0.427277 0.254364 0.065002 0.427490 0.274780 0.066315 0.427704 0.295410 0.067657 0.427887 0.317139 0.068909 0.428162 0.339874 0.070312 0.428375 0.364197 0.071686 0.428589 0.390594 0.073059 0.428833 0.419373 0.074524 0.429047 0.450836 0.076019 0.429260 0.485352 0.077423 0.429504 0.523438 0.078888 0.429749 0.565125 0.080444 0.429993 0.609863 0.081879 0.430206 0.657532 0.083313 0.430481 0.707306 0.084869 0.430695 0.758881 0.086395 0.430908 0.811951 0.087860 0.431183 0.865845 0.089417 0.431458 0.915527 0.090912 0.431671 0.000000 0.081787 0.425415 0.000000 0.082825 0.425568 0.000000 0.083771 0.425751 0.007416 0.084900 0.425903 0.034363 0.085999 0.426117 0.068207 0.087158 0.426270 0.097015 0.088165 0.426483 0.123718 0.089355 0.426666 0.148560 0.090576 0.426880 0.171936 0.091797 0.427094 0.193848 0.092987 0.427277 0.214844 0.094086 0.427490 0.235321 0.095367 0.427704 0.255402 0.096680 0.427887 0.275726 0.097961 0.428162 0.296387 0.099213 0.428375 0.317902 0.100403 0.428558 0.340698 0.101776 0.428833 0.365143 0.103088 0.429047 0.391541 0.104462 0.429260 0.420319 0.105804 0.429474 0.451874 0.107178 0.429749 0.486359 0.108551 0.429962 0.524445 0.109863 0.430176 0.566071 0.111237 0.430450 0.610779 0.112518 0.430695 0.658203 0.113922 0.430908 0.707947 0.115356 0.431183 0.759430 0.116791 0.431458 0.812317 0.118164 0.431671 0.865997 0.119568 0.431915 0.915527 0.120972 0.432159 0.000000 0.112640 0.425720 0.000000 0.113617 0.425903 0.000000 0.114716 0.426117 0.009033 0.115570 0.426270 0.036072 0.116669 0.426483 0.069977 0.117798 0.426666 0.098572 0.118805 0.426880 0.125153 0.119843 0.427094 0.149963 0.121033 0.427277 0.173187 0.122101 0.427490 0.195007 0.123138 0.427704 0.215912 0.124390 0.427887 0.236328 0.125519 0.428131 0.256409 0.126678 0.428345 0.276550 0.127777 0.428558 0.297302 0.128998 0.428802 0.318878 0.130249 0.429047 0.341614 0.131500 0.429230 0.366150 0.132538 0.429474 0.392578 0.133789 0.429718 0.421234 0.135071 0.429962 0.452759 0.136353 0.430176 0.487396 0.137665 0.430450 0.525452 0.138702 0.430664 0.567078 0.139984 0.430908 0.611755 0.141296 0.431152 0.659058 0.142578 0.431427 0.708649 0.143890 0.431671 0.759888 0.145081 0.431915 0.812592 0.146271 0.432159 0.866119 0.147552 0.432434 0.915527 0.148834 0.432648 0.000000 0.141571 0.426117 0.000000 0.142548 0.426270 0.000000 0.143311 0.426453 0.010681 0.144379 0.426666 0.037842 0.145386 0.426880 0.071777 0.146240 0.427094 0.100372 0.147278 0.427246 0.126709 0.148254 0.427490 0.151367 0.149261 0.427704 0.174438 0.150330 0.427856 0.196167 0.151367 0.428131 0.217010 0.152344 0.428345 0.237396 0.153473 0.428558 0.257416 0.154480 0.428802 0.277557 0.155487 0.429047 0.298340 0.156616 0.429230 0.319855 0.157806 0.429474 0.342651 0.158722 0.429718 0.367188 0.159882 0.429962 0.393616 0.161041 0.430176 0.422211 0.161957 0.430450 0.453735 0.163177 0.430664 0.488434 0.164368 0.430908 0.526459 0.165405 0.431152 0.568054 0.166504 0.431427 0.612701 0.167664 0.431671 0.659851 0.168854 0.431885 0.709229 0.169830 0.432159 0.760468 0.170990 0.432404 0.812897 0.172150 0.432648 0.866425 0.173370 0.432922 0.915527 0.174316 0.433167 0.000000 0.168182 0.426453 0.000000 0.169128 0.426636 0.000000 0.169830 0.426880 0.012543 0.170837 0.427094 0.039642 0.171753 0.427246 0.073700 0.172546 0.427490 0.101959 0.173523 0.427673 0.128326 0.174316 0.427856 0.152863 0.175354 0.428101 0.175720 0.176117 0.428314 0.197388 0.177124 0.428558 0.218170 0.178192 0.428802 0.238495 0.178986 0.429016 0.258484 0.180084 0.429230 0.278564 0.180878 0.429474 0.299194 0.181946 0.429688 0.320892 0.183014 0.429962 0.343658 0.183838 0.430176 0.367981 0.184906 0.430450 0.394440 0.185974 0.430664 0.423218 0.186829 0.430878 0.454742 0.187927 0.431152 0.489502 0.188934 0.431427 0.527527 0.189850 0.431641 0.568848 0.190979 0.431885 0.613403 0.191833 0.432159 0.660553 0.192932 0.432404 0.709900 0.194000 0.432648 0.760895 0.194855 0.432922 0.813385 0.195984 0.433167 0.866669 0.196991 0.433411 0.915527 0.197906 0.433685 0.000000 0.192871 0.426880 0.000000 0.193604 0.427063 0.000000 0.194397 0.427246 0.014374 0.195221 0.427460 0.041534 0.195984 0.427673 0.075775 0.196747 0.427856 0.103851 0.197632 0.428101 0.129883 0.198456 0.428314 0.154236 0.199280 0.428558 0.177032 0.200256 0.428772 0.198608 0.200989 0.429016 0.219330 0.201935 0.429230 0.239532 0.202667 0.429474 0.259521 0.203644 0.429688 0.279663 0.204376 0.429932 0.300171 0.205353 0.430176 0.321777 0.206329 0.430420 0.344696 0.207184 0.430664 0.369049 0.208099 0.430878 0.395477 0.208923 0.431152 0.424316 0.209900 0.431396 0.455841 0.210693 0.431641 0.490448 0.211700 0.431885 0.528534 0.212494 0.432159 0.569885 0.213501 0.432404 0.614319 0.214508 0.432648 0.661407 0.215271 0.432892 0.710510 0.216278 0.433167 0.761353 0.217072 0.433411 0.813629 0.218048 0.433685 0.866791 0.218872 0.433929 0.915527 0.219849 0.434143 0.000000 0.215668 0.427246 0.000000 0.216461 0.427429 0.000000 0.217072 0.427643 0.016296 0.217896 0.427856 0.043396 0.218536 0.428101 0.077728 0.219421 0.428314 0.105560 0.220093 0.428528 0.131592 0.220947 0.428772 0.155792 0.221619 0.429016 0.178436 0.222504 0.429199 0.199860 0.223175 0.429443 0.220490 0.224091 0.429688 0.240631 0.224792 0.429932 0.260590 0.225708 0.430176 0.280670 0.226379 0.430420 0.301208 0.227325 0.430634 0.322784 0.228027 0.430847 0.345703 0.228882 0.431152 0.370087 0.229645 0.431396 0.396545 0.230560 0.431641 0.425415 0.231293 0.431885 0.456940 0.232208 0.432159 0.491425 0.232910 0.432404 0.529480 0.233856 0.432617 0.570892 0.234589 0.432892 0.615326 0.235535 0.433136 0.662048 0.236267 0.433411 0.711243 0.237183 0.433685 0.761932 0.237885 0.433899 0.813934 0.238831 0.434143 0.866913 0.239716 0.434418 0.915527 0.240479 0.434692 0.000000 0.237183 0.427643 0.000000 0.237762 0.427856 0.000000 0.238586 0.428101 0.018219 0.239136 0.428314 0.045349 0.239990 0.428528 0.079865 0.240570 0.428772 0.107452 0.241211 0.428986 0.133179 0.242004 0.429199 0.157318 0.242645 0.429443 0.179901 0.243469 0.429688 0.201233 0.244110 0.429901 0.221680 0.244934 0.430176 0.241821 0.245605 0.430420 0.261505 0.246460 0.430634 0.281708 0.247101 0.430847 0.302246 0.247925 0.431122 0.323792 0.248596 0.431366 0.346710 0.249390 0.431610 0.371185 0.250153 0.431854 0.397644 0.251038 0.432159 0.426514 0.251648 0.432404 0.458008 0.252350 0.432617 0.492523 0.253204 0.432861 0.530487 0.253876 0.433136 0.571960 0.254791 0.433411 0.616119 0.255432 0.433655 0.662964 0.256317 0.433899 0.711823 0.256958 0.434143 0.762390 0.257843 0.434418 0.814240 0.258514 0.434692 0.867096 0.259430 0.434937 0.915527 0.260071 0.435181 0.000000 0.257690 0.428070 0.000000 0.258240 0.428314 0.000000 0.258850 0.428528 0.020386 0.259552 0.428772 0.048706 0.260162 0.428986 0.081909 0.260925 0.429199 0.109406 0.261475 0.429413 0.135010 0.262085 0.429688 0.158844 0.262878 0.429901 0.181274 0.263458 0.430176 0.202484 0.264282 0.430420 0.222900 0.264862 0.430603 0.242798 0.265686 0.430847 0.262665 0.266296 0.431122 0.282806 0.267090 0.431366 0.303345 0.267731 0.431610 0.324860 0.268341 0.431854 0.347778 0.269165 0.432159 0.372284 0.269745 0.432373 0.398743 0.270630 0.432617 0.427521 0.271210 0.432861 0.459106 0.272064 0.433136 0.493591 0.272705 0.433380 0.531586 0.273315 0.433655 0.572998 0.274139 0.433868 0.617035 0.274780 0.434143 0.663788 0.275604 0.434418 0.712616 0.276215 0.434662 0.763031 0.277069 0.434937 0.814758 0.277679 0.435181 0.867249 0.278534 0.435455 0.915527 0.279114 0.435699 0.000000 0.277466 0.428528 0.000000 0.277985 0.428741 0.000000 0.278748 0.428986 0.022430 0.279266 0.429199 0.052277 0.279846 0.429413 0.083984 0.280579 0.429657 0.111389 0.281097 0.429901 0.136688 0.281891 0.430176 0.160492 0.282410 0.430389 0.182648 0.283112 0.430603 0.203918 0.283813 0.430847 0.224091 0.284302 0.431091 0.243988 0.285126 0.431366 0.263824 0.285706 0.431610 0.283691 0.286377 0.431854 0.304443 0.287079 0.432159 0.325958 0.287628 0.432373 0.348755 0.288452 0.432587 0.373352 0.289032 0.432861 0.399841 0.289886 0.433136 0.428680 0.290436 0.433380 0.460114 0.291046 0.433624 0.494659 0.291809 0.433868 0.532654 0.292419 0.434143 0.573730 0.293243 0.434418 0.618011 0.293823 0.434662 0.664520 0.294586 0.434937 0.713165 0.295227 0.435150 0.763428 0.295776 0.435455 0.815063 0.296600 0.435669 0.867401 0.297211 0.435944 0.915527 0.297974 0.436157 0.000000 0.296997 0.428986 0.000000 0.297516 0.429199 0.000000 0.298248 0.429413 0.024536 0.298767 0.429657 0.056152 0.299500 0.429901 0.086182 0.300079 0.430176 0.113220 0.300537 0.430389 0.138428 0.301300 0.430603 0.161987 0.301849 0.430847 0.184052 0.302368 0.431091 0.205231 0.303162 0.431366 0.225311 0.303711 0.431610 0.245270 0.304474 0.431854 0.264862 0.305023 0.432129 0.284821 0.305603 0.432343 0.305542 0.306366 0.432587 0.327026 0.306915 0.432861 0.349823 0.307587 0.433136 0.374481 0.308228 0.433380 0.400909 0.308807 0.433624 0.429657 0.309601 0.433868 0.461121 0.310150 0.434143 0.495819 0.310944 0.434387 0.533752 0.311493 0.434662 0.574829 0.312164 0.434937 0.618958 0.312866 0.435150 0.665344 0.313446 0.435425 0.713928 0.314240 0.435669 0.764130 0.314789 0.435944 0.815308 0.315369 0.436157 0.867554 0.316132 0.436432 0.915527 0.316711 0.436707 0.000000 0.316711 0.429413 0.000000 0.317383 0.429626 0.000793 0.317871 0.429901 0.026825 0.318359 0.430145 0.059570 0.319061 0.430359 0.088287 0.319641 0.430603 0.115173 0.320160 0.430847 0.140289 0.320892 0.431091 0.163544 0.321411 0.431335 0.185669 0.322083 0.431580 0.206543 0.322723 0.431854 0.226685 0.323242 0.432098 0.246277 0.323975 0.432343 0.265991 0.324554 0.432587 0.285950 0.325073 0.432831 0.306641 0.325836 0.433136 0.328125 0.326385 0.433380 0.350922 0.327179 0.433624 0.375366 0.327698 0.433868 0.401855 0.328278 0.434143 0.430725 0.329041 0.434387 0.462280 0.329620 0.434662 0.496918 0.330200 0.434906 0.534698 0.330933 0.435120 0.575867 0.331451 0.435425 0.619751 0.332245 0.435669 0.666199 0.332794 0.435913 0.714417 0.333435 0.436157 0.764526 0.334076 0.436432 0.815735 0.334625 0.436707 0.867798 0.335419 0.436951 0.915527 0.335968 0.437164 0.000000 0.336914 0.429871 0.000000 0.337524 0.430145 0.002869 0.337982 0.430359 0.029022 0.338715 0.430573 0.061859 0.339203 0.430847 0.090515 0.339722 0.431091 0.117157 0.340454 0.431335 0.141968 0.340973 0.431580 0.165222 0.341492 0.431824 0.187012 0.342224 0.432098 0.207855 0.342773 0.432343 0.227875 0.343506 0.432556 0.247589 0.344025 0.432831 0.267120 0.344574 0.433105 0.287048 0.345306 0.433350 0.307770 0.345856 0.433624 0.329224 0.346436 0.433868 0.352051 0.347168 0.434113 0.376434 0.347717 0.434387 0.402985 0.348450 0.434631 0.431824 0.349030 0.434906 0.463318 0.349579 0.435120 0.498016 0.350342 0.435425 0.535736 0.350861 0.435638 0.576904 0.351624 0.435913 0.620636 0.352142 0.436127 0.666840 0.352692 0.436432 0.715210 0.353455 0.436676 0.765045 0.354004 0.436920 0.816101 0.354584 0.437164 0.868073 0.355286 0.437408 0.915527 0.355835 0.437683 0.000000 0.357788 0.430359 0.000000 0.358582 0.430573 0.004913 0.359039 0.430847 0.031311 0.359650 0.431061 0.064301 0.360291 0.431335 0.092743 0.360748 0.431580 0.119232 0.361542 0.431824 0.143829 0.362030 0.432098 0.166779 0.362549 0.432343 0.188446 0.363342 0.432556 0.209137 0.363861 0.432831 0.229279 0.364349 0.433105 0.248901 0.365112 0.433350 0.268280 0.365662 0.433594 0.288208 0.366364 0.433868 0.308838 0.366943 0.434113 0.330322 0.367493 0.434387 0.353119 0.368225 0.434631 0.377563 0.368774 0.434875 0.404053 0.369324 0.435120 0.432892 0.370056 0.435425 0.464417 0.370636 0.435638 0.498932 0.371399 0.435883 0.536743 0.371948 0.436127 0.577759 0.372467 0.436432 0.621613 0.373230 0.436676 0.667725 0.373718 0.436920 0.715759 0.374481 0.437164 0.765564 0.375031 0.437408 0.816406 0.375580 0.437683 0.868164 0.376282 0.437897 0.915527 0.376862 0.438141 0.000000 0.380127 0.430817 0.000000 0.380615 0.431061 0.007141 0.381409 0.431335 0.033539 0.381866 0.431580 0.066681 0.382385 0.431824 0.094849 0.383118 0.432098 0.121185 0.383636 0.432343 0.145599 0.384369 0.432556 0.168518 0.384918 0.432831 0.190094 0.385468 0.433105 0.210541 0.386200 0.433350 0.230499 0.386719 0.433594 0.249908 0.387299 0.433868 0.269440 0.388031 0.434113 0.289276 0.388550 0.434357 0.309906 0.389191 0.434601 0.331451 0.389862 0.434875 0.354248 0.390381 0.435120 0.378632 0.391144 0.435394 0.405121 0.391693 0.435638 0.434052 0.392212 0.435883 0.465546 0.393005 0.436127 0.500000 0.393494 0.436401 0.537842 0.394165 0.436676 0.578705 0.394836 0.436920 0.622375 0.395355 0.437134 0.668549 0.396088 0.437408 0.716461 0.396606 0.437653 0.765991 0.397186 0.437897 0.816650 0.397919 0.438110 0.868317 0.398407 0.438416 0.915527 0.398987 0.438629 0.000000 0.403778 0.431305 0.000000 0.404541 0.431549 0.009399 0.405029 0.431824 0.035950 0.405609 0.432068 0.069183 0.406342 0.432343 0.097137 0.406830 0.432556 0.123047 0.407562 0.432831 0.147369 0.408081 0.433105 0.170044 0.408661 0.433350 0.191528 0.409363 0.433594 0.212006 0.409912 0.433868 0.231750 0.410461 0.434113 0.251221 0.411224 0.434326 0.270599 0.411743 0.434601 0.290436 0.412537 0.434875 0.310852 0.413055 0.435120 0.332550 0.413605 0.435394 0.355347 0.414368 0.435638 0.379761 0.414917 0.435883 0.406250 0.415436 0.436127 0.435150 0.416199 0.436401 0.466644 0.416748 0.436676 0.501068 0.417511 0.436920 0.538910 0.417999 0.437134 0.579742 0.418579 0.437408 0.623291 0.419281 0.437622 0.669220 0.419830 0.437866 0.716980 0.420471 0.438110 0.766541 0.421112 0.438385 0.817169 0.421631 0.438629 0.868469 0.422272 0.438812 0.915527 0.422882 0.439087 0.000000 0.429535 0.431824 0.000000 0.430054 0.432068 0.011780 0.430817 0.432312 0.038239 0.431335 0.432526 0.071533 0.431854 0.432831 0.099335 0.432617 0.433075 0.125122 0.433136 0.433319 0.149261 0.433685 0.433594 0.171814 0.434448 0.433838 0.192932 0.434967 0.434082 0.213287 0.435760 0.434326 0.233032 0.436249 0.434601 0.252472 0.436768 0.434875 0.271729 0.437561 0.435120 0.291565 0.438110 0.435364 0.311951 0.438629 0.435638 0.333435 0.439423 0.435883 0.356323 0.439972 0.436127 0.380890 0.440735 0.436401 0.407349 0.441223 0.436646 0.436218 0.441742 0.436890 0.467773 0.442566 0.437134 0.502197 0.443085 0.437378 0.539978 0.443634 0.437622 0.580750 0.444397 0.437866 0.624207 0.444885 0.438110 0.670074 0.445587 0.438385 0.717743 0.446136 0.438629 0.766968 0.446686 0.438812 0.817444 0.447418 0.439087 0.868561 0.447906 0.439331 0.915527 0.448425 0.439545 0.000000 0.457397 0.432312 0.000000 0.457947 0.432526 0.014160 0.458466 0.432800 0.040619 0.459198 0.433075 0.073975 0.459717 0.433319 0.101501 0.460510 0.433563 0.127136 0.461029 0.433838 0.150909 0.461609 0.434082 0.173309 0.462341 0.434326 0.194336 0.462891 0.434601 0.214600 0.463379 0.434845 0.234283 0.464203 0.435120 0.253662 0.464691 0.435364 0.272888 0.465424 0.435638 0.292664 0.466003 0.435852 0.313080 0.466553 0.436127 0.334564 0.467285 0.436401 0.357422 0.467865 0.436646 0.381958 0.468414 0.436890 0.408478 0.469177 0.437134 0.437347 0.469666 0.437378 0.468872 0.470337 0.437622 0.503265 0.470947 0.437866 0.541046 0.471527 0.438110 0.581665 0.472229 0.438354 0.625183 0.472778 0.438629 0.670654 0.473297 0.438812 0.718231 0.473999 0.439056 0.767395 0.474518 0.439301 0.817749 0.475037 0.439545 0.868744 0.475769 0.439758 0.915527 0.476257 0.440002 0.000000 0.487701 0.432800 0.000000 0.488220 0.433075 0.016449 0.488983 0.433319 0.042877 0.489471 0.433563 0.076538 0.490051 0.433807 0.103729 0.490753 0.434082 0.129150 0.491333 0.434326 0.152802 0.491882 0.434570 0.174866 0.492645 0.434845 0.195984 0.493164 0.435120 0.215942 0.493927 0.435364 0.235504 0.494446 0.435638 0.254852 0.494995 0.435852 0.274048 0.495758 0.436127 0.293854 0.496277 0.436371 0.314178 0.496826 0.436615 0.335632 0.497559 0.436890 0.358521 0.498108 0.437103 0.383087 0.498840 0.437347 0.409576 0.499390 0.437622 0.438446 0.499939 0.437866 0.469940 0.500641 0.438110 0.504364 0.501221 0.438354 0.541870 0.501678 0.438599 0.582550 0.502441 0.438782 0.625854 0.502930 0.439056 0.671509 0.503510 0.439301 0.718994 0.504181 0.439545 0.767975 0.504700 0.439758 0.817963 0.505249 0.440002 0.868927 0.505920 0.440216 0.915527 0.506348 0.440430 0.000000 0.520844 0.433319 0.000000 0.521393 0.433533 0.018921 0.521942 0.433807 0.045258 0.522644 0.434082 0.078888 0.523193 0.434296 0.105927 0.523956 0.434570 0.131012 0.524475 0.434814 0.154419 0.525055 0.435089 0.176544 0.525757 0.435364 0.197327 0.526306 0.435608 0.217224 0.526794 0.435852 0.236725 0.527588 0.436127 0.256012 0.528107 0.436371 0.275177 0.528687 0.436615 0.294922 0.529388 0.436890 0.315308 0.529907 0.437103 0.336731 0.530640 0.437347 0.359528 0.531189 0.437622 0.384186 0.531708 0.437836 0.410645 0.532379 0.438110 0.439514 0.532959 0.438354 0.470917 0.533447 0.438599 0.505402 0.534180 0.438782 0.542908 0.534698 0.439056 0.583496 0.535217 0.439270 0.626740 0.535950 0.439514 0.672241 0.536407 0.439758 0.719482 0.536865 0.439972 0.768372 0.537567 0.440216 0.818268 0.538055 0.440430 0.869232 0.538513 0.440643 0.915527 0.539185 0.440857 0.000000 0.556946 0.433807 0.000000 0.557678 0.434082 0.021393 0.558167 0.434296 0.049042 0.558716 0.434540 0.081268 0.559448 0.434814 0.108154 0.559967 0.435089 0.132965 0.560455 0.435333 0.156250 0.561218 0.435608 0.178070 0.561737 0.435852 0.198700 0.562286 0.436096 0.218689 0.562958 0.436340 0.237976 0.563477 0.436615 0.257172 0.564148 0.436859 0.276337 0.564728 0.437103 0.296051 0.565216 0.437347 0.316376 0.565765 0.437592 0.337830 0.566437 0.437836 0.360626 0.566925 0.438080 0.385223 0.567535 0.438354 0.411743 0.568176 0.438568 0.440399 0.568634 0.438782 0.471863 0.569397 0.439056 0.506348 0.569824 0.439270 0.543915 0.570343 0.439514 0.584473 0.571045 0.439758 0.627625 0.571472 0.439972 0.672913 0.571960 0.440216 0.720154 0.572418 0.440430 0.768768 0.573059 0.440643 0.818695 0.573517 0.440826 0.869324 0.573975 0.441071 0.915527 0.574615 0.441284 0.000000 0.595947 0.434265 0.000000 0.596680 0.434540 0.023865 0.597198 0.434814 0.053375 0.597748 0.435089 0.083618 0.598358 0.435333 0.110291 0.598816 0.435608 0.134949 0.599365 0.435822 0.157898 0.600006 0.436066 0.179779 0.600525 0.436340 0.200287 0.601013 0.436615 0.220032 0.601685 0.436859 0.239197 0.602173 0.437103 0.258392 0.602661 0.437347 0.277466 0.603363 0.437592 0.297150 0.603821 0.437836 0.317474 0.604279 0.438080 0.338867 0.604980 0.438324 0.361694 0.605469 0.438568 0.386322 0.605865 0.438782 0.412750 0.606567 0.439026 0.441437 0.607025 0.439270 0.472900 0.607452 0.439484 0.507294 0.608002 0.439758 0.544952 0.608551 0.439972 0.585419 0.608978 0.440186 0.628265 0.609436 0.440399 0.673523 0.610077 0.440613 0.720612 0.610474 0.440826 0.769318 0.610901 0.441071 0.818939 0.611481 0.441254 0.869446 0.611877 0.441467 0.915527 0.612335 0.441681 0.000000 0.637604 0.434784 0.000946 0.638062 0.435089 0.026184 0.638733 0.435333 0.057709 0.639160 0.435608 0.086121 0.639557 0.435791 0.112366 0.640198 0.436066 0.136871 0.640717 0.436340 0.159698 0.641083 0.436584 0.181213 0.641541 0.436829 0.201691 0.642212 0.437103 0.221313 0.642639 0.437317 0.240387 0.643097 0.437592 0.259521 0.643616 0.437836 0.278564 0.644165 0.438080 0.298218 0.644562 0.438324 0.318542 0.645020 0.438568 0.339935 0.645630 0.438782 0.362762 0.646027 0.439026 0.387177 0.646454 0.439270 0.413635 0.647064 0.439484 0.442505 0.647491 0.439758 0.473969 0.647858 0.439941 0.508301 0.648254 0.440186 0.545898 0.648834 0.440399 0.586121 0.649261 0.440613 0.629150 0.649597 0.440826 0.674255 0.649994 0.441071 0.721161 0.650543 0.441254 0.769684 0.650940 0.441467 0.819153 0.651306 0.441650 0.869537 0.651642 0.441864 0.915527 0.652161 0.442078 0.000000 0.681244 0.435333 0.003113 0.681610 0.435577 0.028687 0.682007 0.435791 0.060669 0.682434 0.436066 0.088470 0.682953 0.436340 0.114502 0.683380 0.436584 0.138672 0.683777 0.436829 0.161499 0.684143 0.437103 0.182709 0.684753 0.437317 0.203033 0.685150 0.437592 0.222595 0.685455 0.437805 0.241638 0.685852 0.438080 0.260651 0.686462 0.438324 0.279694 0.686829 0.438568 0.299133 0.687195 0.438782 0.319580 0.687561 0.438995 0.341034 0.688110 0.439240 0.363800 0.688507 0.439484 0.388184 0.688843 0.439758 0.414703 0.689148 0.439941 0.443542 0.689636 0.440155 0.475006 0.690033 0.440399 0.509308 0.690399 0.440613 0.546631 0.690735 0.440826 0.587036 0.691040 0.441071 0.629883 0.691589 0.441254 0.674957 0.691864 0.441467 0.721741 0.692230 0.441650 0.769958 0.692474 0.441864 0.819397 0.693024 0.442078 0.869659 0.693359 0.442261 0.915527 0.693634 0.442413 0.000000 0.726288 0.435791 0.005432 0.726624 0.436066 0.031097 0.727051 0.436310 0.063110 0.727478 0.436554 0.090759 0.727814 0.436829 0.116455 0.728119 0.437073 0.140594 0.728424 0.437317 0.163086 0.729004 0.437561 0.184326 0.729309 0.437805 0.204376 0.729584 0.438049 0.223846 0.729858 0.438293 0.242767 0.730194 0.438568 0.261688 0.730682 0.438782 0.280792 0.730988 0.438995 0.300171 0.731323 0.439240 0.320618 0.731598 0.439484 0.341949 0.731903 0.439758 0.364746 0.732391 0.439941 0.389221 0.732666 0.440155 0.415741 0.732941 0.440399 0.444580 0.733215 0.440613 0.475861 0.733551 0.440826 0.510284 0.734009 0.441071 0.547577 0.734314 0.441223 0.587952 0.734558 0.441437 0.630615 0.734802 0.441650 0.675537 0.735016 0.441833 0.722137 0.735291 0.442047 0.770538 0.735748 0.442261 0.819824 0.736023 0.442413 0.869781 0.736206 0.442627 0.915527 0.736450 0.442810 0.000000 0.772705 0.436310 0.007782 0.772888 0.436554 0.033447 0.773254 0.436829 0.065765 0.773651 0.437073 0.093048 0.773834 0.437317 0.118530 0.774139 0.437561 0.142487 0.774353 0.437805 0.164734 0.774567 0.438049 0.185760 0.774994 0.438293 0.205688 0.775330 0.438538 0.225067 0.775513 0.438782 0.243988 0.775757 0.438995 0.262817 0.775970 0.439209 0.281860 0.776184 0.439453 0.301239 0.776459 0.439728 0.321472 0.776886 0.439941 0.342896 0.777100 0.440155 0.365723 0.777313 0.440399 0.390228 0.777557 0.440582 0.416748 0.777740 0.440796 0.445465 0.777985 0.441040 0.476776 0.778137 0.441223 0.511017 0.778442 0.441437 0.548523 0.778778 0.441620 0.588562 0.778931 0.441833 0.631409 0.779175 0.442047 0.676239 0.779358 0.442230 0.722839 0.779510 0.442413 0.770844 0.779724 0.442627 0.820007 0.779877 0.442780 0.869873 0.780212 0.442993 0.915527 0.780457 0.443115 0.000000 0.820038 0.436829 0.010193 0.820221 0.437073 0.035889 0.820374 0.437286 0.068146 0.820526 0.437531 0.095245 0.820740 0.437805 0.120575 0.820831 0.438019 0.144165 0.821045 0.438293 0.166351 0.821167 0.438538 0.187195 0.821564 0.438782 0.207123 0.821747 0.438995 0.226318 0.821869 0.439209 0.245209 0.822052 0.439453 0.263947 0.822174 0.439728 0.282928 0.822357 0.439911 0.302246 0.822510 0.440155 0.322479 0.822632 0.440369 0.343903 0.822815 0.440582 0.366669 0.822968 0.440796 0.391174 0.823273 0.441040 0.417633 0.823456 0.441223 0.446320 0.823578 0.441437 0.477722 0.823730 0.441620 0.511963 0.823853 0.441833 0.549316 0.823975 0.442047 0.589478 0.824066 0.442230 0.631958 0.824219 0.442413 0.676727 0.824341 0.442596 0.723175 0.824463 0.442780 0.771118 0.824615 0.442963 0.820221 0.824860 0.443115 0.869995 0.825043 0.443298 0.915527 0.825104 0.443451 0.000000 0.867645 0.437286 0.012604 0.867676 0.437531 0.038208 0.867767 0.437775 0.070557 0.867920 0.438019 0.097443 0.868103 0.438263 0.122589 0.868286 0.438538 0.145996 0.868347 0.438751 0.167847 0.868439 0.438965 0.188629 0.868530 0.439209 0.208496 0.868561 0.439453 0.227478 0.868652 0.439697 0.246216 0.868744 0.439911 0.264862 0.868774 0.440125 0.283752 0.868896 0.440369 0.303314 0.868958 0.440582 0.323486 0.869049 0.440796 0.344879 0.869110 0.441040 0.367645 0.869171 0.441223 0.391998 0.869263 0.441437 0.418457 0.869293 0.441620 0.447296 0.869354 0.441803 0.478668 0.869446 0.442047 0.512909 0.869446 0.442230 0.550079 0.869720 0.442413 0.590027 0.869781 0.442596 0.632751 0.869873 0.442780 0.677185 0.869934 0.442963 0.723755 0.870087 0.443085 0.771545 0.870087 0.443298 0.820404 0.870148 0.443451 0.870178 0.870178 0.443604 0.915527 0.870239 0.443726 0.000000 0.915527 0.437775 0.014954 0.915527 0.438019 0.040527 0.915527 0.438263 0.073029 0.915527 0.438538 0.099640 0.915527 0.438751 0.124542 0.915527 0.438965 0.147614 0.915527 0.439209 0.169495 0.915527 0.439453 0.190125 0.915527 0.439697 0.209717 0.915527 0.439911 0.228668 0.915527 0.440125 0.247314 0.915527 0.440338 0.265930 0.915527 0.440552 0.284790 0.915527 0.440796 0.304291 0.915527 0.441040 0.324493 0.915527 0.441193 0.345825 0.915527 0.441437 0.368622 0.915527 0.441620 0.392944 0.915527 0.441803 0.419434 0.915527 0.442047 0.448181 0.915527 0.442230 0.479370 0.915527 0.442413 0.513672 0.915527 0.442596 0.550903 0.915527 0.442749 0.590851 0.915527 0.442963 0.633240 0.915527 0.443085 0.677795 0.915527 0.443298 0.724152 0.915527 0.443451 0.771881 0.915527 0.443604 0.820648 0.915527 0.443726 0.870331 0.915527 0.443909 0.915527 0.915527 0.444061 0.000000 0.000000 0.440186 0.000000 0.000000 0.440308 0.000000 0.000000 0.440430 0.002045 0.000000 0.440582 0.028656 0.000000 0.440735 0.062012 0.000000 0.440887 0.091156 0.000000 0.441040 0.118439 0.000000 0.441193 0.143829 0.000000 0.441345 0.167511 0.000000 0.441498 0.189789 0.000000 0.441681 0.211060 0.000000 0.441833 0.231720 0.000000 0.442047 0.251892 0.000000 0.442230 0.272369 0.000000 0.442413 0.292938 0.000000 0.442566 0.314606 0.000000 0.442749 0.337463 0.000000 0.442993 0.361694 0.000000 0.443146 0.388062 0.000000 0.443390 0.416779 0.000000 0.443542 0.448273 0.000000 0.443756 0.482758 0.000000 0.443970 0.520874 0.000000 0.444183 0.562622 0.000000 0.444427 0.607727 0.000000 0.444641 0.655426 0.000000 0.444855 0.705505 0.000000 0.445038 0.757446 0.000000 0.445282 0.811005 0.000000 0.445526 0.865479 0.000000 0.445770 0.915527 0.000000 0.445984 0.000000 0.000000 0.440430 0.000000 0.000000 0.440582 0.000000 0.000000 0.440735 0.003235 0.000000 0.440887 0.029968 0.000000 0.441040 0.063507 0.000000 0.441193 0.092682 0.000000 0.441345 0.119720 0.000000 0.441498 0.144989 0.000000 0.441681 0.168579 0.000000 0.441833 0.190735 0.000000 0.442047 0.212067 0.000000 0.442200 0.232574 0.000061 0.442383 0.252838 0.001068 0.442566 0.273041 0.002106 0.442749 0.293884 0.003204 0.442963 0.315399 0.004364 0.443146 0.338196 0.005554 0.443359 0.362671 0.006775 0.443542 0.389008 0.008057 0.443756 0.417694 0.009277 0.443970 0.449036 0.010620 0.444183 0.483704 0.011902 0.444397 0.521790 0.013367 0.444641 0.563568 0.014771 0.444855 0.608368 0.016113 0.445038 0.656250 0.017487 0.445282 0.706177 0.018921 0.445526 0.758026 0.020294 0.445740 0.811310 0.021851 0.445984 0.865570 0.023376 0.446198 0.915527 0.024811 0.446442 0.000000 0.015900 0.440735 0.000000 0.016663 0.440887 0.000000 0.017639 0.441040 0.004608 0.018585 0.441162 0.031464 0.019653 0.441345 0.065186 0.020569 0.441498 0.094086 0.021576 0.441650 0.121124 0.022644 0.441833 0.146210 0.023712 0.442017 0.169769 0.024872 0.442200 0.191803 0.026062 0.442383 0.212982 0.027191 0.442566 0.233429 0.028412 0.442749 0.253754 0.029572 0.442963 0.273987 0.030792 0.443146 0.294800 0.032043 0.443359 0.316345 0.033386 0.443542 0.339081 0.034454 0.443726 0.363464 0.035858 0.443970 0.389954 0.037201 0.444183 0.418518 0.038483 0.444397 0.449982 0.039917 0.444641 0.484680 0.041229 0.444824 0.522766 0.042603 0.445038 0.564453 0.043945 0.445282 0.609344 0.045380 0.445496 0.656830 0.047729 0.445740 0.706787 0.050171 0.445953 0.758453 0.052643 0.446198 0.811554 0.055267 0.446442 0.865692 0.058014 0.446686 0.915527 0.059814 0.446899 0.000000 0.045044 0.441040 0.000000 0.046021 0.441162 0.000000 0.047974 0.441345 0.006073 0.049652 0.441498 0.033112 0.051392 0.441650 0.066803 0.053192 0.441803 0.095520 0.055176 0.442017 0.122528 0.057281 0.442200 0.147461 0.059052 0.442383 0.170898 0.060303 0.442566 0.192932 0.061462 0.442749 0.214020 0.062653 0.442963 0.234406 0.064056 0.443115 0.254639 0.065399 0.443359 0.274902 0.066711 0.443512 0.295563 0.068085 0.443726 0.317291 0.069550 0.443970 0.340027 0.070923 0.444183 0.364349 0.072296 0.444397 0.390717 0.073730 0.444611 0.419495 0.075226 0.444824 0.450989 0.076660 0.445038 0.485626 0.078094 0.445251 0.523743 0.079468 0.445496 0.565460 0.080994 0.445709 0.610107 0.082458 0.445953 0.657684 0.083893 0.446198 0.707458 0.085510 0.446442 0.759033 0.086945 0.446686 0.812012 0.088379 0.446899 0.865845 0.089905 0.447113 0.915527 0.091492 0.447388 0.000000 0.082092 0.441345 0.000000 0.083160 0.441498 0.000000 0.084351 0.441650 0.007629 0.085205 0.441803 0.034729 0.086395 0.442017 0.068481 0.087524 0.442169 0.097260 0.088715 0.442352 0.123932 0.089722 0.442535 0.148743 0.090942 0.442749 0.172150 0.092224 0.442963 0.194031 0.093445 0.443115 0.215057 0.094574 0.443359 0.235474 0.095795 0.443512 0.255524 0.097107 0.443726 0.275909 0.098389 0.443970 0.296539 0.099701 0.444153 0.318054 0.101013 0.444397 0.340973 0.102356 0.444611 0.365326 0.103699 0.444824 0.391724 0.104858 0.445038 0.420502 0.106201 0.445251 0.451996 0.107635 0.445496 0.486542 0.109009 0.445709 0.524658 0.110382 0.445953 0.566223 0.111816 0.446167 0.610901 0.113220 0.446411 0.658325 0.114563 0.446686 0.708008 0.115875 0.446869 0.759491 0.117188 0.447113 0.812378 0.118591 0.447357 0.865997 0.120026 0.447601 0.915527 0.121429 0.447845 0.000000 0.113129 0.441620 0.000000 0.113953 0.441803 0.000000 0.115021 0.442017 0.009308 0.116119 0.442169 0.036316 0.117004 0.442352 0.070374 0.118134 0.442535 0.098785 0.119263 0.442749 0.125519 0.120178 0.442963 0.150299 0.121338 0.443115 0.173370 0.122528 0.443359 0.195221 0.123718 0.443512 0.216187 0.124695 0.443726 0.236511 0.125916 0.443939 0.256531 0.127136 0.444153 0.276672 0.128387 0.444397 0.297485 0.129395 0.444611 0.319031 0.130646 0.444824 0.341827 0.131897 0.445038 0.366333 0.133148 0.445251 0.392731 0.134369 0.445496 0.421539 0.135468 0.445709 0.453033 0.136749 0.445953 0.487518 0.138031 0.446167 0.525604 0.139343 0.446411 0.567200 0.140625 0.446686 0.611877 0.141693 0.446869 0.659180 0.142975 0.447113 0.708740 0.144257 0.447357 0.759949 0.145569 0.447601 0.812622 0.146881 0.447845 0.866241 0.147949 0.448090 0.915527 0.149261 0.448364 0.000000 0.141815 0.442017 0.000000 0.142853 0.442169 0.000000 0.143860 0.442352 0.011047 0.144653 0.442535 0.038086 0.145721 0.442749 0.072266 0.146667 0.442932 0.100616 0.147614 0.443085 0.127075 0.148682 0.443329 0.151642 0.149536 0.443512 0.174652 0.150635 0.443726 0.196350 0.151794 0.443939 0.217163 0.152649 0.444153 0.237579 0.153778 0.444397 0.257568 0.154907 0.444611 0.277679 0.155914 0.444794 0.298492 0.156982 0.445038 0.320007 0.158112 0.445251 0.342804 0.159210 0.445465 0.367340 0.160217 0.445709 0.393768 0.161407 0.445953 0.422485 0.162537 0.446167 0.454010 0.163544 0.446381 0.488586 0.164703 0.446655 0.526642 0.165863 0.446869 0.568237 0.166931 0.447113 0.612793 0.167999 0.447357 0.660034 0.169189 0.447601 0.709351 0.170380 0.447815 0.760529 0.171356 0.448059 0.812958 0.172546 0.448364 0.866547 0.173737 0.448578 0.915527 0.174774 0.448822 0.000000 0.168488 0.442352 0.000000 0.169403 0.442535 0.000000 0.170349 0.442719 0.012817 0.171112 0.442932 0.039948 0.172058 0.443085 0.074036 0.172821 0.443329 0.102325 0.173798 0.443512 0.128571 0.174622 0.443726 0.153015 0.175629 0.443909 0.175903 0.176636 0.444153 0.197632 0.177429 0.444397 0.218323 0.178467 0.444611 0.238647 0.179291 0.444794 0.258606 0.180328 0.445007 0.278717 0.181396 0.445221 0.299469 0.182281 0.445465 0.321014 0.183289 0.445709 0.343842 0.184387 0.445953 0.368317 0.185242 0.446167 0.394714 0.186340 0.446381 0.423431 0.187164 0.446655 0.454987 0.188232 0.446869 0.489655 0.189362 0.447113 0.527679 0.190186 0.447357 0.569153 0.191284 0.447571 0.613495 0.192352 0.447815 0.660675 0.193237 0.448059 0.710052 0.194305 0.448334 0.760956 0.195404 0.448578 0.813416 0.196289 0.448792 0.866699 0.197357 0.449036 0.915527 0.198303 0.449280 0.000000 0.193085 0.442719 0.000000 0.193970 0.442932 0.000000 0.194672 0.443085 0.014679 0.195557 0.443298 0.041809 0.196259 0.443481 0.076050 0.197174 0.443726 0.104156 0.197876 0.443909 0.130310 0.198853 0.444153 0.154449 0.199554 0.444366 0.177338 0.200500 0.444580 0.198792 0.201263 0.444763 0.219543 0.202240 0.445007 0.239746 0.202942 0.445221 0.259705 0.203918 0.445435 0.279785 0.204895 0.445709 0.300476 0.205688 0.445953 0.322021 0.206635 0.446136 0.344849 0.207428 0.446381 0.369293 0.208435 0.446625 0.395660 0.209198 0.446838 0.424469 0.210205 0.447083 0.455963 0.211151 0.447357 0.490723 0.211975 0.447571 0.528778 0.213013 0.447815 0.570038 0.213745 0.448059 0.614502 0.214783 0.448334 0.661530 0.215576 0.448578 0.710602 0.216583 0.448792 0.761566 0.217590 0.449036 0.813782 0.218353 0.449280 0.866821 0.219360 0.449524 0.915527 0.220154 0.449768 0.000000 0.216064 0.443085 0.000000 0.216675 0.443298 0.000000 0.217499 0.443481 0.016632 0.218140 0.443695 0.043701 0.218811 0.443909 0.078033 0.219666 0.444122 0.106049 0.220306 0.444366 0.131866 0.221222 0.444580 0.156128 0.221863 0.444763 0.178772 0.222748 0.445007 0.200165 0.223450 0.445221 0.220673 0.224365 0.445435 0.240906 0.225067 0.445679 0.260773 0.225952 0.445923 0.280853 0.226654 0.446136 0.301483 0.227539 0.446381 0.323059 0.228271 0.446625 0.345886 0.229187 0.446838 0.370270 0.229919 0.447083 0.396729 0.230804 0.447357 0.425537 0.231537 0.447540 0.457092 0.232483 0.447784 0.491608 0.233307 0.448059 0.529785 0.234161 0.448303 0.571075 0.234833 0.448578 0.615417 0.235748 0.448792 0.662231 0.236664 0.449036 0.711426 0.237427 0.449280 0.762024 0.238403 0.449524 0.814026 0.239075 0.449768 0.867004 0.239990 0.450012 0.915527 0.240753 0.450256 0.000000 0.237396 0.443481 0.000000 0.238068 0.443695 0.000000 0.238770 0.443909 0.018738 0.239380 0.444122 0.045746 0.240204 0.444366 0.080139 0.240784 0.444580 0.107941 0.241638 0.444763 0.133636 0.242249 0.445007 0.157562 0.243042 0.445221 0.180115 0.243713 0.445435 0.201538 0.244385 0.445679 0.221893 0.245209 0.445923 0.242035 0.245850 0.446136 0.261841 0.246674 0.446381 0.281921 0.247345 0.446625 0.302429 0.248199 0.446838 0.324066 0.248840 0.447052 0.346954 0.249725 0.447357 0.371307 0.250427 0.447540 0.397797 0.251282 0.447784 0.426666 0.251923 0.448059 0.458160 0.252747 0.448303 0.492676 0.253479 0.448547 0.530670 0.254333 0.448792 0.572083 0.255005 0.449036 0.616394 0.255859 0.449280 0.663055 0.256592 0.449493 0.711945 0.257172 0.449768 0.762421 0.258118 0.450012 0.814331 0.258789 0.450256 0.867126 0.259644 0.450500 0.915527 0.260315 0.450745 0.000000 0.257904 0.443909 0.000000 0.258484 0.444122 0.000000 0.259216 0.444336 0.020721 0.259796 0.444580 0.049347 0.260406 0.444763 0.082245 0.261139 0.444977 0.109741 0.261719 0.445221 0.135223 0.262482 0.445435 0.159149 0.263092 0.445679 0.181458 0.263763 0.445923 0.202789 0.264496 0.446106 0.223175 0.265106 0.446381 0.243195 0.265900 0.446625 0.263000 0.266510 0.446838 0.282990 0.267365 0.447052 0.303497 0.267944 0.447327 0.325012 0.268555 0.447540 0.348022 0.269409 0.447784 0.372406 0.269989 0.448029 0.398865 0.270844 0.448303 0.427734 0.271454 0.448547 0.459259 0.272308 0.448792 0.493774 0.272919 0.449036 0.531708 0.273743 0.449249 0.573090 0.274384 0.449493 0.617126 0.275055 0.449738 0.663910 0.275848 0.450012 0.712677 0.276428 0.450226 0.763123 0.277313 0.450500 0.814819 0.277893 0.450714 0.867249 0.278748 0.450989 0.915527 0.279358 0.451233 0.000000 0.277679 0.444336 0.000000 0.278351 0.444580 0.000000 0.278931 0.444763 0.022858 0.279480 0.444977 0.053131 0.280243 0.445190 0.084412 0.280731 0.445435 0.111694 0.281311 0.445679 0.137085 0.282074 0.445923 0.160767 0.282623 0.446106 0.183014 0.283417 0.446350 0.204102 0.283966 0.446594 0.224335 0.284546 0.446808 0.244354 0.285339 0.447052 0.264099 0.285919 0.447327 0.283966 0.286713 0.447540 0.304596 0.287262 0.447784 0.326111 0.287964 0.448029 0.348907 0.288666 0.448303 0.373505 0.289246 0.448517 0.399994 0.290070 0.448792 0.428864 0.290649 0.449005 0.460358 0.291351 0.449249 0.494843 0.292053 0.449493 0.532837 0.292633 0.449738 0.573883 0.293427 0.450012 0.618103 0.294037 0.450226 0.664764 0.294891 0.450500 0.713257 0.295441 0.450714 0.763550 0.296021 0.450989 0.815125 0.296814 0.451233 0.867401 0.297424 0.451477 0.915527 0.298218 0.451721 0.000000 0.297211 0.444733 0.000000 0.297913 0.444977 0.000000 0.298431 0.445190 0.025024 0.298981 0.445404 0.056946 0.299683 0.445648 0.086517 0.300232 0.445892 0.113678 0.300842 0.446106 0.138702 0.301514 0.446350 0.162231 0.302032 0.446594 0.184479 0.302765 0.446808 0.205353 0.303345 0.447052 0.225708 0.303894 0.447296 0.245514 0.304688 0.447540 0.265045 0.305206 0.447784 0.285156 0.306000 0.448029 0.305695 0.306549 0.448273 0.327209 0.307129 0.448517 0.350006 0.307892 0.448761 0.374603 0.308441 0.449005 0.401062 0.309143 0.449219 0.429962 0.309814 0.449493 0.461487 0.310364 0.449707 0.495972 0.311157 0.450012 0.533905 0.311737 0.450226 0.574982 0.312531 0.450470 0.619080 0.313080 0.450714 0.665466 0.313660 0.450989 0.714020 0.314423 0.451233 0.764160 0.315002 0.451477 0.815399 0.315735 0.451691 0.867554 0.316376 0.451965 0.915527 0.316895 0.452209 0.000000 0.316864 0.445160 0.000000 0.317535 0.445404 0.001221 0.318054 0.445648 0.027161 0.318573 0.445892 0.059937 0.319305 0.446075 0.088745 0.319824 0.446350 0.115540 0.320465 0.446594 0.140564 0.321045 0.446777 0.163971 0.321625 0.447052 0.185852 0.322357 0.447296 0.206696 0.322906 0.447510 0.226959 0.323486 0.447754 0.246613 0.324188 0.448029 0.266266 0.324738 0.448273 0.286255 0.325378 0.448517 0.306793 0.326019 0.448761 0.328278 0.326599 0.449005 0.351105 0.327362 0.449219 0.375702 0.327942 0.449463 0.402191 0.328613 0.449707 0.431091 0.329254 0.450012 0.462585 0.329773 0.450226 0.497070 0.330566 0.450439 0.535004 0.331116 0.450714 0.576019 0.331635 0.450958 0.619995 0.332428 0.451233 0.666351 0.332977 0.451477 0.714600 0.333740 0.451691 0.764587 0.334259 0.451965 0.815857 0.334839 0.452179 0.867798 0.335602 0.452423 0.915527 0.336182 0.452698 0.000000 0.337158 0.445648 0.000000 0.337677 0.445862 0.003174 0.338165 0.446075 0.029510 0.338867 0.446350 0.062256 0.339386 0.446594 0.090851 0.340057 0.446777 0.117493 0.340637 0.447021 0.142365 0.341187 0.447296 0.165497 0.341858 0.447510 0.187317 0.342438 0.447754 0.208038 0.342926 0.448029 0.228210 0.343719 0.448242 0.247864 0.344208 0.448517 0.267456 0.344849 0.448761 0.287231 0.345520 0.449005 0.307861 0.346039 0.449219 0.329407 0.346802 0.449463 0.352173 0.347382 0.449707 0.376831 0.347900 0.449982 0.403320 0.348694 0.450226 0.432098 0.349213 0.450439 0.463470 0.349915 0.450684 0.498169 0.350525 0.450958 0.536011 0.351074 0.451202 0.577026 0.351807 0.451477 0.620758 0.352386 0.451660 0.666992 0.352905 0.451935 0.715332 0.353699 0.452179 0.765228 0.354218 0.452423 0.816193 0.354980 0.452667 0.868073 0.355499 0.452942 0.915527 0.356049 0.453125 0.000000 0.358093 0.446075 0.000000 0.358704 0.446320 0.005341 0.359222 0.446594 0.031708 0.359985 0.446777 0.064850 0.360474 0.447021 0.093079 0.360992 0.447296 0.119537 0.361694 0.447510 0.144104 0.362244 0.447723 0.167175 0.362885 0.447998 0.188873 0.363525 0.448242 0.209412 0.364044 0.448486 0.229462 0.364685 0.448761 0.249054 0.365326 0.448975 0.268463 0.365845 0.449219 0.288361 0.366608 0.449432 0.308990 0.367126 0.449707 0.330536 0.367798 0.449982 0.353302 0.368439 0.450195 0.377899 0.368988 0.450439 0.404358 0.369629 0.450684 0.433075 0.370300 0.450958 0.464569 0.370789 0.451202 0.499207 0.371582 0.451447 0.537018 0.372101 0.451660 0.578033 0.372742 0.451935 0.621735 0.373413 0.452179 0.667847 0.373932 0.452423 0.715912 0.374695 0.452667 0.765656 0.375244 0.452942 0.816467 0.375763 0.453125 0.868164 0.376495 0.453369 0.915527 0.377014 0.453613 0.000000 0.380310 0.446564 0.000000 0.380829 0.446777 0.007629 0.381561 0.447021 0.034058 0.382080 0.447266 0.067139 0.382721 0.447479 0.095276 0.383301 0.447723 0.121582 0.383850 0.447998 0.145966 0.384583 0.448242 0.168762 0.385132 0.448486 0.190308 0.385712 0.448730 0.210846 0.386383 0.448975 0.230682 0.386932 0.449188 0.250244 0.387512 0.449432 0.269623 0.388214 0.449677 0.289490 0.388733 0.449982 0.310120 0.389496 0.450165 0.331604 0.390076 0.450439 0.354431 0.390625 0.450684 0.378815 0.391357 0.450958 0.405487 0.391876 0.451202 0.434174 0.392487 0.451447 0.465698 0.393158 0.451660 0.500244 0.393738 0.451904 0.537994 0.394470 0.452148 0.578918 0.395050 0.452423 0.622681 0.395538 0.452667 0.668701 0.396271 0.452911 0.716614 0.396790 0.453125 0.766083 0.397522 0.453369 0.816772 0.398102 0.453613 0.868317 0.398621 0.453949 0.915527 0.399384 0.454285 0.000000 0.404053 0.447021 0.000000 0.404694 0.447266 0.009918 0.405243 0.447479 0.036285 0.405975 0.447723 0.069550 0.406494 0.447998 0.097504 0.407013 0.448242 0.123566 0.407745 0.448486 0.147614 0.408295 0.448730 0.170258 0.408997 0.448975 0.191681 0.409576 0.449188 0.212189 0.410095 0.449432 0.231964 0.410828 0.449677 0.251465 0.411407 0.449951 0.270813 0.411957 0.450165 0.290588 0.412720 0.450409 0.311127 0.413269 0.450684 0.332733 0.413940 0.450928 0.355499 0.414581 0.451202 0.379913 0.415100 0.451416 0.406403 0.415802 0.451660 0.435333 0.416382 0.451904 0.466797 0.416931 0.452148 0.501312 0.417664 0.452393 0.539062 0.418243 0.452667 0.579926 0.418884 0.452911 0.623505 0.419495 0.453125 0.669342 0.420013 0.453339 0.717163 0.420807 0.453613 0.766632 0.421295 0.453949 0.817200 0.421814 0.454285 0.868469 0.422577 0.454498 0.915527 0.423065 0.454712 0.000000 0.429718 0.447479 0.000000 0.430267 0.447723 0.012177 0.431000 0.447968 0.038727 0.431488 0.448242 0.072021 0.432251 0.448486 0.099701 0.432831 0.448700 0.125580 0.433350 0.448975 0.149506 0.434052 0.449158 0.172058 0.434631 0.449432 0.193268 0.435150 0.449677 0.213501 0.435913 0.449951 0.233185 0.436462 0.450165 0.252625 0.437134 0.450409 0.272064 0.437775 0.450684 0.291748 0.438324 0.450928 0.312256 0.439056 0.451172 0.333771 0.439606 0.451416 0.356598 0.440155 0.451660 0.381012 0.440887 0.451904 0.407532 0.441437 0.452148 0.436401 0.442108 0.452393 0.467896 0.442749 0.452667 0.502380 0.443268 0.452881 0.540161 0.443939 0.453094 0.580902 0.444580 0.453339 0.624329 0.445068 0.453613 0.670135 0.445831 0.453949 0.717865 0.446350 0.454285 0.767059 0.446899 0.454498 0.817505 0.447601 0.454712 0.868652 0.448090 0.454987 0.915527 0.448761 0.455200 0.000000 0.457611 0.447968 0.000000 0.458130 0.448212 0.014557 0.458862 0.448486 0.041016 0.459412 0.448700 0.074524 0.459930 0.448944 0.101868 0.460663 0.449158 0.127411 0.461212 0.449402 0.151245 0.461761 0.449677 0.173523 0.462524 0.449951 0.194763 0.463043 0.450165 0.214844 0.463715 0.450409 0.234406 0.464355 0.450684 0.253845 0.464905 0.450928 0.273071 0.465698 0.451172 0.292877 0.466217 0.451416 0.313385 0.466766 0.451660 0.334900 0.467529 0.451904 0.357727 0.468048 0.452148 0.382141 0.468658 0.452362 0.408661 0.469360 0.452667 0.437469 0.469849 0.452881 0.468994 0.470642 0.453094 0.503448 0.471191 0.453339 0.541199 0.471710 0.453583 0.581909 0.472443 0.453949 0.625305 0.472961 0.454285 0.670807 0.473480 0.454498 0.718353 0.474182 0.454712 0.767426 0.474731 0.454956 0.817810 0.475281 0.455170 0.868774 0.475922 0.455383 0.915527 0.476471 0.455597 0.000000 0.487885 0.448456 0.000000 0.488373 0.448700 0.017029 0.489166 0.448944 0.043396 0.489716 0.449158 0.076874 0.490234 0.449402 0.104126 0.490997 0.449677 0.129456 0.491486 0.449921 0.153015 0.492310 0.450165 0.175323 0.492828 0.450378 0.196167 0.493347 0.450653 0.216278 0.494110 0.450928 0.235657 0.494659 0.451172 0.255005 0.495331 0.451416 0.274231 0.495972 0.451660 0.294006 0.496490 0.451904 0.314362 0.497162 0.452148 0.335938 0.497772 0.452362 0.358826 0.498322 0.452637 0.383240 0.499084 0.452881 0.409729 0.499603 0.453094 0.438599 0.500153 0.453308 0.470123 0.500854 0.453583 0.504547 0.501404 0.453888 0.542053 0.501892 0.454285 0.582764 0.502625 0.454468 0.625977 0.503143 0.454712 0.671631 0.503754 0.454956 0.719086 0.504364 0.455170 0.768066 0.504852 0.455383 0.817993 0.505585 0.455597 0.868927 0.506073 0.455811 0.915527 0.506561 0.456024 0.000000 0.521057 0.448944 0.000000 0.521576 0.449158 0.019440 0.522308 0.449402 0.045654 0.522827 0.449677 0.079254 0.523407 0.449921 0.106262 0.524139 0.450134 0.131409 0.524658 0.450378 0.154907 0.525208 0.450653 0.176788 0.526001 0.450928 0.197571 0.526489 0.451141 0.217651 0.527100 0.451385 0.236938 0.527740 0.451660 0.256195 0.528320 0.451874 0.275391 0.529083 0.452118 0.295135 0.529572 0.452362 0.315430 0.530090 0.452637 0.336884 0.530853 0.452881 0.359711 0.531372 0.453064 0.384308 0.531860 0.453308 0.410828 0.532623 0.453552 0.439697 0.533142 0.453888 0.471191 0.533630 0.454254 0.505585 0.534363 0.454468 0.542999 0.534851 0.454681 0.583649 0.535461 0.454956 0.626862 0.536072 0.455170 0.672424 0.536560 0.455383 0.719574 0.537048 0.455597 0.768433 0.537781 0.455811 0.818390 0.538239 0.455994 0.869232 0.538696 0.456238 0.915527 0.539337 0.456421 0.000000 0.557129 0.449402 0.000000 0.557861 0.449677 0.021759 0.558380 0.449921 0.049988 0.558990 0.450104 0.081757 0.559631 0.450378 0.108459 0.560150 0.450653 0.133301 0.560730 0.450897 0.156555 0.561432 0.451141 0.178436 0.561890 0.451385 0.199066 0.562622 0.451660 0.218964 0.563171 0.451874 0.238312 0.563660 0.452118 0.257355 0.564392 0.452362 0.276520 0.564911 0.452606 0.296234 0.565430 0.452850 0.316528 0.566101 0.453064 0.337982 0.566681 0.453308 0.360748 0.567108 0.453552 0.385406 0.567871 0.453888 0.411926 0.568359 0.454254 0.440674 0.568817 0.454437 0.472076 0.569550 0.454681 0.506592 0.570038 0.454926 0.544037 0.570465 0.455139 0.584656 0.571198 0.455383 0.627747 0.571655 0.455597 0.672974 0.572083 0.455780 0.720276 0.572723 0.455994 0.769012 0.573242 0.456238 0.818695 0.573700 0.456421 0.869324 0.574158 0.456635 0.915527 0.574738 0.456848 0.000000 0.596222 0.449890 0.000000 0.596863 0.450104 0.024261 0.597351 0.450378 0.054138 0.598022 0.450653 0.084167 0.598541 0.450897 0.110626 0.598999 0.451141 0.135223 0.599731 0.451355 0.158356 0.600220 0.451660 0.179993 0.600677 0.451874 0.200562 0.601196 0.452087 0.220245 0.601868 0.452362 0.239471 0.602295 0.452606 0.258545 0.602875 0.452850 0.277618 0.603485 0.453064 0.297302 0.604004 0.453308 0.317657 0.604492 0.453552 0.339050 0.605133 0.453888 0.361847 0.605591 0.454254 0.386475 0.606079 0.454437 0.412964 0.606720 0.454681 0.441620 0.607178 0.454926 0.473083 0.607605 0.455139 0.507416 0.608276 0.455383 0.545074 0.608704 0.455597 0.585602 0.609131 0.455780 0.628448 0.609680 0.455994 0.673828 0.610199 0.456238 0.720703 0.610626 0.456421 0.769348 0.611023 0.456635 0.819000 0.611664 0.456848 0.869446 0.612061 0.457001 0.915527 0.612427 0.457214 0.000000 0.637726 0.450348 0.001343 0.638245 0.450653 0.026733 0.638885 0.450867 0.058624 0.639313 0.451111 0.086517 0.639740 0.451355 0.112762 0.640411 0.451630 0.137177 0.640869 0.451874 0.159943 0.641266 0.452087 0.181458 0.641693 0.452332 0.201904 0.642365 0.452606 0.221497 0.642822 0.452850 0.240692 0.643188 0.453033 0.259705 0.643860 0.453308 0.278717 0.644318 0.453552 0.298401 0.644714 0.453827 0.318695 0.645294 0.454254 0.340149 0.645813 0.454437 0.362915 0.646179 0.454681 0.387421 0.646576 0.454926 0.413818 0.647217 0.455139 0.442657 0.647614 0.455353 0.474121 0.648041 0.455597 0.508423 0.648407 0.455780 0.546021 0.649017 0.455994 0.586273 0.649384 0.456207 0.629272 0.649811 0.456421 0.674316 0.650146 0.456635 0.721344 0.650757 0.456848 0.769714 0.651062 0.457001 0.819153 0.651428 0.457214 0.869537 0.651764 0.457397 0.915527 0.652313 0.457611 0.000000 0.681366 0.450867 0.003632 0.681763 0.451111 0.029144 0.682159 0.451355 0.061005 0.682739 0.451630 0.088837 0.683167 0.451843 0.114868 0.683533 0.452087 0.139130 0.683899 0.452332 0.161774 0.684357 0.452606 0.183105 0.684875 0.452850 0.203247 0.685242 0.453033 0.222809 0.685608 0.453308 0.241974 0.686096 0.453522 0.260834 0.686554 0.453827 0.279877 0.686951 0.454254 0.299469 0.687286 0.454437 0.319763 0.687866 0.454681 0.341187 0.688202 0.454926 0.363953 0.688599 0.455139 0.388367 0.688965 0.455353 0.414856 0.689270 0.455597 0.443695 0.689819 0.455780 0.475159 0.690186 0.455994 0.509430 0.690491 0.456207 0.546814 0.690857 0.456421 0.587158 0.691345 0.456635 0.630066 0.691711 0.456848 0.675079 0.691986 0.457001 0.721863 0.692291 0.457214 0.770020 0.692566 0.457397 0.819519 0.693146 0.457611 0.869720 0.693420 0.457794 0.915527 0.693726 0.457947 0.000000 0.726471 0.451355 0.005951 0.726746 0.451630 0.031525 0.727264 0.451843 0.063660 0.727539 0.452087 0.091125 0.727905 0.452332 0.117004 0.728241 0.452576 0.140869 0.728607 0.452820 0.163330 0.729095 0.453033 0.184570 0.729401 0.453278 0.204681 0.729675 0.453522 0.224060 0.729980 0.453827 0.243073 0.730286 0.454224 0.261993 0.730835 0.454437 0.280945 0.731171 0.454651 0.300476 0.731445 0.454895 0.320801 0.731689 0.455109 0.342224 0.732025 0.455322 0.364990 0.732513 0.455566 0.389404 0.732788 0.455780 0.415894 0.733063 0.455963 0.444733 0.733307 0.456207 0.476135 0.733673 0.456421 0.510406 0.734131 0.456635 0.547699 0.734406 0.456818 0.588104 0.734680 0.457001 0.630707 0.734863 0.457184 0.675598 0.735107 0.457397 0.722260 0.735474 0.457611 0.770538 0.735840 0.457764 0.819885 0.736115 0.457947 0.869781 0.736298 0.458130 0.915527 0.736542 0.458282 0.000000 0.772797 0.451813 0.008331 0.773010 0.452057 0.033966 0.773468 0.452332 0.066101 0.773743 0.452576 0.093445 0.773956 0.452820 0.118927 0.774231 0.453033 0.142761 0.774475 0.453278 0.165100 0.774689 0.453522 0.186005 0.775116 0.453766 0.205994 0.775421 0.454224 0.225250 0.775604 0.454407 0.244324 0.775848 0.454651 0.263092 0.776062 0.454895 0.282013 0.776306 0.455109 0.301514 0.776642 0.455322 0.321686 0.776978 0.455566 0.343231 0.777191 0.455750 0.365967 0.777466 0.455963 0.390411 0.777618 0.456207 0.416870 0.777802 0.456390 0.445709 0.778076 0.456635 0.476959 0.778229 0.456818 0.511200 0.778564 0.456970 0.548615 0.778839 0.457184 0.588837 0.779022 0.457367 0.631531 0.779205 0.457581 0.676331 0.779388 0.457764 0.722900 0.779572 0.457947 0.770874 0.779755 0.458130 0.820068 0.779968 0.458282 0.869873 0.780334 0.458435 0.915527 0.780487 0.458618 0.000000 0.820160 0.452332 0.010590 0.820282 0.452576 0.036255 0.820465 0.452820 0.068512 0.820557 0.453003 0.095581 0.820770 0.453278 0.120880 0.820923 0.453522 0.144531 0.821106 0.453766 0.166626 0.821259 0.454193 0.187378 0.821625 0.454407 0.207428 0.821808 0.454651 0.226562 0.821960 0.454865 0.245453 0.822113 0.455109 0.264191 0.822266 0.455322 0.283081 0.822449 0.455566 0.302399 0.822540 0.455750 0.322662 0.822693 0.455963 0.344025 0.822815 0.456207 0.366852 0.823120 0.456390 0.391388 0.823364 0.456635 0.417877 0.823456 0.456787 0.446472 0.823608 0.456970 0.477875 0.823792 0.457184 0.512115 0.823883 0.457367 0.549591 0.824036 0.457581 0.589569 0.824127 0.457764 0.632111 0.824249 0.457947 0.676819 0.824402 0.458130 0.723236 0.824463 0.458282 0.771179 0.824768 0.458435 0.820221 0.824921 0.458618 0.869995 0.825104 0.458771 0.915527 0.825165 0.458954 0.000000 0.867645 0.452789 0.012939 0.867737 0.453003 0.038696 0.867798 0.453278 0.071106 0.867981 0.453522 0.097809 0.868103 0.453766 0.122864 0.868286 0.454193 0.146301 0.868378 0.454407 0.168243 0.868469 0.454651 0.188965 0.868530 0.454865 0.208679 0.868622 0.455109 0.227692 0.868713 0.455322 0.246460 0.868744 0.455566 0.265106 0.868835 0.455719 0.284027 0.868896 0.455963 0.303467 0.868988 0.456177 0.323639 0.869110 0.456360 0.345001 0.869110 0.456604 0.367737 0.869202 0.456787 0.392273 0.869263 0.456970 0.418640 0.869293 0.457184 0.447388 0.869385 0.457367 0.478821 0.869446 0.457581 0.513000 0.869568 0.457733 0.550201 0.869720 0.457947 0.590271 0.869781 0.458130 0.632843 0.869934 0.458282 0.677368 0.869995 0.458435 0.723816 0.870087 0.458618 0.771637 0.870087 0.458771 0.820435 0.870148 0.458954 0.870178 0.870178 0.459106 0.915527 0.870270 0.459259 0.000000 0.915527 0.453247 0.015350 0.915527 0.453491 0.040894 0.915527 0.453766 0.073456 0.915527 0.454193 0.100037 0.915527 0.454407 0.124847 0.915527 0.454651 0.148041 0.915527 0.454865 0.169800 0.915527 0.455109 0.190308 0.915527 0.455292 0.209900 0.915527 0.455536 0.228851 0.915527 0.455719 0.247589 0.915527 0.455963 0.266144 0.915527 0.456177 0.284973 0.915527 0.456360 0.304443 0.915527 0.456604 0.324615 0.915527 0.456787 0.345978 0.915527 0.456970 0.368744 0.915527 0.457184 0.393097 0.915527 0.457367 0.419556 0.915527 0.457581 0.448334 0.915527 0.457733 0.479584 0.915527 0.457947 0.513885 0.915527 0.458099 0.551086 0.915527 0.458282 0.590942 0.915527 0.458435 0.633331 0.915527 0.458618 0.677887 0.915527 0.458771 0.724182 0.915527 0.458923 0.771912 0.915527 0.459076 0.820740 0.915527 0.459259 0.870392 0.915527 0.459381 0.915527 0.915527 0.459534 0.000000 0.000000 0.456696 0.000000 0.000000 0.456818 0.000000 0.000000 0.456909 0.002197 0.000000 0.457031 0.028870 0.000000 0.457184 0.062256 0.000000 0.457336 0.091431 0.000000 0.457489 0.118591 0.000000 0.457642 0.144012 0.000000 0.457794 0.167694 0.000000 0.457947 0.190063 0.000000 0.458130 0.211212 0.000000 0.458282 0.231873 0.000000 0.458466 0.252075 0.000000 0.458618 0.272491 0.000000 0.458801 0.293121 0.000000 0.458984 0.314819 0.000000 0.459229 0.337585 0.000000 0.459412 0.361847 0.000000 0.459595 0.388184 0.000000 0.459778 0.416931 0.000000 0.459961 0.448364 0.000000 0.460175 0.482880 0.000000 0.460358 0.521149 0.000000 0.460602 0.562775 0.000000 0.460754 0.607849 0.000000 0.460968 0.655518 0.000000 0.461243 0.705627 0.000000 0.461456 0.757568 0.000000 0.461670 0.811096 0.000000 0.461884 0.865479 0.000000 0.462067 0.915527 0.000000 0.462280 0.000000 0.000000 0.456909 0.000000 0.000000 0.457031 0.000000 0.000000 0.457184 0.003540 0.000000 0.457306 0.030304 0.000000 0.457489 0.063873 0.000000 0.457642 0.092926 0.000000 0.457794 0.119965 0.000000 0.457947 0.145172 0.000000 0.458130 0.168793 0.000000 0.458282 0.190948 0.000000 0.458435 0.212250 0.000000 0.458618 0.232788 0.000366 0.458801 0.252960 0.001343 0.458954 0.273254 0.002533 0.459198 0.294006 0.003571 0.459381 0.315521 0.004761 0.459564 0.338470 0.006104 0.459778 0.362793 0.007324 0.459930 0.389130 0.008575 0.460175 0.417908 0.009888 0.460358 0.449341 0.011139 0.460571 0.483887 0.012482 0.460754 0.521973 0.013824 0.460968 0.563660 0.015167 0.461212 0.608673 0.016571 0.461456 0.656403 0.018036 0.461670 0.706360 0.019531 0.461884 0.758118 0.020966 0.462067 0.811371 0.022339 0.462280 0.865601 0.023834 0.462555 0.915527 0.025299 0.462799 0.000000 0.016174 0.457184 0.000000 0.017120 0.457306 0.000000 0.018005 0.457489 0.004852 0.018921 0.457611 0.031738 0.019928 0.457794 0.065369 0.020996 0.457947 0.094330 0.022064 0.458130 0.121399 0.023071 0.458282 0.146362 0.024139 0.458435 0.169922 0.025208 0.458618 0.191986 0.026428 0.458801 0.213226 0.027588 0.458954 0.233765 0.028809 0.459198 0.253876 0.029999 0.459381 0.274109 0.031250 0.459564 0.294922 0.032440 0.459747 0.316467 0.033783 0.459930 0.339203 0.035034 0.460175 0.363739 0.036316 0.460358 0.390106 0.037689 0.460571 0.418701 0.038971 0.460754 0.450195 0.040314 0.460968 0.484833 0.041687 0.461212 0.522949 0.043060 0.461426 0.564636 0.044434 0.461639 0.609467 0.045898 0.461884 0.656952 0.048462 0.462067 0.706848 0.050903 0.462280 0.758545 0.053589 0.462555 0.811615 0.056488 0.462769 0.865784 0.058990 0.463013 0.915527 0.060516 0.463226 0.000000 0.045410 0.457458 0.000000 0.046997 0.457611 0.000000 0.048462 0.457794 0.006348 0.050293 0.457947 0.033356 0.052124 0.458130 0.067108 0.054108 0.458282 0.095978 0.056000 0.458435 0.122772 0.057953 0.458618 0.147675 0.059448 0.458801 0.171112 0.060730 0.458954 0.193146 0.061981 0.459198 0.214264 0.063232 0.459381 0.234650 0.064545 0.459564 0.254883 0.065796 0.459747 0.275024 0.067169 0.459930 0.295868 0.068512 0.460144 0.317413 0.069977 0.460358 0.340179 0.071350 0.460571 0.364532 0.072784 0.460754 0.390839 0.074219 0.460968 0.419617 0.075684 0.461212 0.451111 0.077087 0.461426 0.485840 0.078583 0.461639 0.523956 0.080109 0.461884 0.565582 0.081512 0.462067 0.610382 0.083038 0.462280 0.657806 0.084503 0.462524 0.707611 0.086029 0.462769 0.759155 0.087524 0.462982 0.812134 0.089081 0.463226 0.865906 0.090546 0.463440 0.915527 0.092102 0.463654 0.000000 0.082642 0.457794 0.000000 0.083527 0.457947 0.000000 0.084656 0.458130 0.007904 0.085815 0.458252 0.035004 0.086700 0.458405 0.068909 0.087860 0.458618 0.097534 0.089111 0.458801 0.124146 0.090302 0.458954 0.149170 0.091370 0.459198 0.172302 0.092621 0.459381 0.194214 0.093842 0.459534 0.215332 0.095093 0.459747 0.235626 0.096375 0.459930 0.255798 0.097656 0.460144 0.276031 0.098816 0.460358 0.296692 0.100098 0.460571 0.318359 0.101471 0.460724 0.341156 0.102814 0.460968 0.365448 0.104156 0.461212 0.391876 0.105469 0.461426 0.420654 0.106903 0.461609 0.452148 0.108154 0.461884 0.486816 0.109436 0.462067 0.524872 0.110809 0.462280 0.566376 0.112213 0.462524 0.611053 0.113617 0.462769 0.658478 0.114990 0.462982 0.708130 0.116425 0.463226 0.759583 0.117828 0.463409 0.812439 0.119232 0.463654 0.866028 0.120605 0.463898 0.915527 0.122009 0.464172 0.000000 0.113403 0.458130 0.000000 0.114471 0.458252 0.000000 0.115326 0.458405 0.009583 0.116425 0.458618 0.036743 0.117493 0.458801 0.070648 0.118500 0.458954 0.099274 0.119598 0.459198 0.125824 0.120758 0.459381 0.150513 0.121704 0.459534 0.173523 0.122894 0.459717 0.195374 0.124084 0.459930 0.216492 0.125275 0.460144 0.236664 0.126282 0.460327 0.256744 0.127502 0.460571 0.277008 0.128723 0.460724 0.297607 0.129974 0.460938 0.319214 0.131042 0.461212 0.342133 0.132263 0.461395 0.366455 0.133545 0.461609 0.392883 0.134796 0.461884 0.421692 0.136078 0.462036 0.453186 0.137146 0.462280 0.487671 0.138397 0.462524 0.525757 0.139709 0.462738 0.567383 0.140991 0.462982 0.612000 0.142273 0.463226 0.659241 0.143341 0.463409 0.708893 0.144653 0.463654 0.760132 0.145966 0.463898 0.812683 0.147247 0.464142 0.866241 0.148560 0.464355 0.915527 0.149719 0.464600 0.000000 0.142365 0.458405 0.000000 0.143127 0.458618 0.000000 0.144135 0.458771 0.011292 0.145081 0.458954 0.038544 0.145996 0.459198 0.072510 0.147064 0.459381 0.100922 0.147949 0.459534 0.127289 0.149017 0.459717 0.151886 0.150116 0.459930 0.174866 0.150970 0.460144 0.196655 0.152069 0.460327 0.217468 0.153229 0.460571 0.237732 0.154114 0.460724 0.257721 0.155273 0.460938 0.277893 0.156403 0.461182 0.298615 0.157379 0.461395 0.320129 0.158447 0.461609 0.343018 0.159637 0.461853 0.367493 0.160675 0.462036 0.393921 0.161743 0.462280 0.422729 0.162903 0.462494 0.454224 0.164062 0.462738 0.488739 0.165070 0.462982 0.526764 0.166199 0.463226 0.568390 0.167419 0.463409 0.612915 0.168396 0.463654 0.660126 0.169525 0.463898 0.709412 0.170746 0.464142 0.760620 0.171936 0.464355 0.813110 0.172882 0.464569 0.866547 0.174103 0.464813 0.915527 0.175232 0.465088 0.000000 0.168945 0.458771 0.000000 0.169647 0.458954 0.000000 0.170593 0.459167 0.013153 0.171356 0.459351 0.040375 0.172333 0.459534 0.074524 0.173279 0.459717 0.102692 0.174103 0.459930 0.128998 0.175110 0.460114 0.153290 0.175903 0.460327 0.176086 0.176941 0.460541 0.197968 0.177826 0.460724 0.218689 0.178772 0.460938 0.238831 0.179840 0.461182 0.258759 0.180664 0.461395 0.278870 0.181732 0.461609 0.299652 0.182678 0.461823 0.321167 0.183624 0.462006 0.343964 0.184723 0.462280 0.368530 0.185547 0.462494 0.394958 0.186646 0.462738 0.423798 0.187683 0.462952 0.455292 0.188568 0.463226 0.489777 0.189667 0.463409 0.527832 0.190643 0.463623 0.569366 0.191620 0.463898 0.613800 0.192688 0.464142 0.660767 0.193634 0.464355 0.710175 0.194672 0.464569 0.761017 0.195709 0.464813 0.813477 0.196625 0.465088 0.866699 0.197662 0.465302 0.915527 0.198730 0.465546 0.000000 0.193329 0.459167 0.000000 0.194183 0.459351 0.000000 0.194916 0.459534 0.015137 0.195831 0.459717 0.042236 0.196533 0.459930 0.076538 0.197449 0.460114 0.104370 0.198151 0.460327 0.130585 0.199097 0.460541 0.154907 0.199921 0.460724 0.177643 0.200775 0.460938 0.199188 0.201599 0.461182 0.219910 0.202484 0.461395 0.239929 0.203430 0.461609 0.259857 0.204224 0.461823 0.279938 0.205231 0.462006 0.300720 0.205963 0.462280 0.322235 0.206940 0.462494 0.345001 0.207703 0.462738 0.369568 0.208710 0.462952 0.396027 0.209717 0.463196 0.424744 0.210480 0.463409 0.456146 0.211487 0.463623 0.490906 0.212280 0.463898 0.528900 0.213287 0.464142 0.570190 0.214050 0.464325 0.614624 0.215088 0.464569 0.661621 0.216064 0.464813 0.710724 0.216858 0.465088 0.761719 0.217865 0.465302 0.813812 0.218658 0.465546 0.866821 0.219666 0.465759 0.915527 0.220459 0.466034 0.000000 0.216278 0.459534 0.000000 0.216858 0.459717 0.000000 0.217773 0.459930 0.017059 0.218414 0.460114 0.044159 0.219177 0.460297 0.078491 0.219910 0.460510 0.106293 0.220673 0.460693 0.132294 0.221436 0.460938 0.156342 0.222321 0.461182 0.178986 0.222992 0.461365 0.200470 0.223755 0.461609 0.220978 0.224609 0.461823 0.241058 0.225372 0.462006 0.260925 0.226196 0.462250 0.280975 0.227051 0.462463 0.301758 0.227814 0.462708 0.323273 0.228729 0.462952 0.346069 0.229431 0.463196 0.370514 0.230286 0.463379 0.397034 0.231110 0.463623 0.425690 0.232025 0.463898 0.457245 0.232758 0.464111 0.491913 0.233673 0.464325 0.529999 0.234375 0.464569 0.571198 0.235352 0.464813 0.615601 0.236053 0.465088 0.662537 0.237000 0.465302 0.711517 0.237701 0.465546 0.762146 0.238647 0.465759 0.814056 0.239349 0.466003 0.867004 0.240295 0.466248 0.915527 0.240997 0.466522 0.000000 0.237640 0.459930 0.000000 0.238434 0.460083 0.000000 0.238983 0.460297 0.019012 0.239777 0.460510 0.046539 0.240417 0.460693 0.080475 0.241058 0.460907 0.108246 0.241852 0.461151 0.133911 0.242462 0.461365 0.157806 0.243317 0.461609 0.180359 0.243927 0.461823 0.201721 0.244781 0.462006 0.222260 0.245453 0.462250 0.242188 0.246094 0.462463 0.262054 0.246918 0.462708 0.282074 0.247589 0.462921 0.302582 0.248444 0.463165 0.324310 0.249115 0.463379 0.347137 0.249939 0.463593 0.371490 0.250641 0.463898 0.397980 0.251495 0.464111 0.426819 0.252167 0.464325 0.458313 0.253052 0.464569 0.493011 0.253723 0.464813 0.530823 0.254578 0.465057 0.572235 0.255249 0.465302 0.616547 0.256165 0.465546 0.663147 0.256836 0.465759 0.712067 0.257690 0.466003 0.762604 0.258362 0.466248 0.814392 0.259247 0.466492 0.867157 0.259888 0.466736 0.915527 0.260803 0.466949 0.000000 0.258118 0.460297 0.000000 0.258667 0.460510 0.000000 0.259460 0.460693 0.021179 0.259979 0.460907 0.050110 0.260803 0.461151 0.082611 0.261353 0.461365 0.110138 0.261902 0.461609 0.135712 0.262756 0.461823 0.159485 0.263306 0.462006 0.181793 0.264099 0.462219 0.203003 0.264709 0.462463 0.223450 0.265472 0.462708 0.243347 0.266113 0.462921 0.263123 0.266754 0.463165 0.283173 0.267517 0.463379 0.303680 0.268158 0.463593 0.325195 0.269012 0.463867 0.348175 0.269653 0.464111 0.372589 0.270416 0.464325 0.399078 0.271088 0.464569 0.427887 0.271759 0.464783 0.459442 0.272491 0.465057 0.494019 0.273132 0.465302 0.531860 0.274017 0.465546 0.573273 0.274628 0.465759 0.617310 0.275421 0.466003 0.664062 0.276031 0.466217 0.712799 0.276917 0.466492 0.763214 0.277527 0.466705 0.814880 0.278229 0.466949 0.867310 0.278992 0.467224 0.915527 0.279633 0.467438 0.000000 0.277832 0.460663 0.000000 0.278595 0.460907 0.000000 0.279114 0.461151 0.023285 0.279663 0.461334 0.053741 0.280426 0.461609 0.084717 0.280975 0.461823 0.111969 0.281647 0.461975 0.137360 0.282318 0.462219 0.161011 0.282867 0.462433 0.183289 0.283630 0.462708 0.204315 0.284180 0.462921 0.224701 0.284821 0.463165 0.244507 0.285583 0.463379 0.264282 0.286133 0.463593 0.284271 0.286926 0.463867 0.304749 0.287476 0.464111 0.326263 0.288300 0.464325 0.349243 0.288910 0.464539 0.373657 0.289642 0.464783 0.400146 0.290283 0.465027 0.428986 0.290863 0.465271 0.460541 0.291656 0.465546 0.494995 0.292236 0.465729 0.532990 0.293030 0.466003 0.574219 0.293671 0.466217 0.618195 0.294250 0.466492 0.664917 0.295044 0.466705 0.713318 0.295624 0.466949 0.763611 0.296448 0.467194 0.815155 0.297028 0.467438 0.867462 0.297699 0.467651 0.915527 0.298401 0.467926 0.000000 0.297394 0.461121 0.000000 0.298126 0.461334 0.000000 0.298615 0.461578 0.025360 0.299194 0.461792 0.057709 0.299896 0.461975 0.086853 0.300446 0.462219 0.113922 0.301178 0.462433 0.139191 0.301697 0.462708 0.162598 0.302216 0.462921 0.184692 0.302979 0.463165 0.205597 0.303558 0.463348 0.225891 0.304199 0.463593 0.245697 0.304871 0.463867 0.265442 0.305450 0.464111 0.285400 0.306183 0.464325 0.305847 0.306793 0.464539 0.327362 0.307312 0.464783 0.350250 0.308105 0.465027 0.374786 0.308655 0.465271 0.401245 0.309448 0.465515 0.430115 0.310028 0.465729 0.461639 0.310730 0.466003 0.496124 0.311371 0.466217 0.534058 0.311951 0.466492 0.575134 0.312714 0.466705 0.619232 0.313293 0.466919 0.665588 0.313904 0.467194 0.714142 0.314667 0.467407 0.764252 0.315216 0.467651 0.815491 0.315979 0.467926 0.867615 0.316559 0.468140 0.915527 0.317261 0.468353 0.000000 0.317139 0.461578 0.000000 0.317719 0.461761 0.001526 0.318268 0.461975 0.027679 0.318787 0.462219 0.060425 0.319489 0.462433 0.089050 0.320038 0.462677 0.115936 0.320740 0.462921 0.140839 0.321289 0.463165 0.164185 0.321808 0.463348 0.186066 0.322571 0.463562 0.206970 0.323090 0.463867 0.227142 0.323853 0.464081 0.246887 0.324371 0.464325 0.266541 0.324951 0.464539 0.286469 0.325684 0.464783 0.306976 0.326263 0.465027 0.328461 0.326904 0.465240 0.351379 0.327576 0.465515 0.375885 0.328125 0.465698 0.402374 0.328888 0.465973 0.431213 0.329437 0.466217 0.462769 0.329987 0.466492 0.497223 0.330750 0.466705 0.535156 0.331299 0.466919 0.576172 0.332092 0.467194 0.620148 0.332611 0.467407 0.666443 0.333160 0.467651 0.714722 0.333923 0.467896 0.764648 0.334473 0.468109 0.815979 0.335266 0.468353 0.867920 0.335815 0.468597 0.915527 0.336365 0.468842 0.000000 0.337341 0.461975 0.000000 0.337860 0.462219 0.003632 0.338531 0.462433 0.029846 0.339050 0.462677 0.062805 0.339569 0.462921 0.091217 0.340302 0.463135 0.118011 0.340851 0.463318 0.142670 0.341370 0.463562 0.165741 0.342102 0.463837 0.187531 0.342621 0.464081 0.208466 0.343231 0.464294 0.228394 0.343872 0.464539 0.248047 0.344452 0.464752 0.267731 0.345184 0.465027 0.287537 0.345734 0.465240 0.308075 0.346252 0.465515 0.329559 0.347046 0.465698 0.352356 0.347565 0.465973 0.376953 0.348175 0.466217 0.403473 0.348877 0.466461 0.432343 0.349426 0.466675 0.463776 0.350159 0.466919 0.498322 0.350708 0.467194 0.536224 0.351379 0.467407 0.577179 0.352020 0.467621 0.620880 0.352539 0.467896 0.667267 0.353302 0.468109 0.715424 0.353882 0.468323 0.765289 0.354431 0.468597 0.816223 0.355164 0.468842 0.868103 0.355682 0.469055 0.915527 0.356384 0.469269 0.000000 0.358398 0.462402 0.000000 0.358917 0.462646 0.005798 0.359406 0.462921 0.032196 0.360138 0.463135 0.065216 0.360657 0.463318 0.093567 0.361328 0.463562 0.119812 0.361908 0.463837 0.144409 0.362396 0.464050 0.167450 0.363190 0.464294 0.189087 0.363678 0.464508 0.209747 0.364258 0.464752 0.229614 0.364990 0.465027 0.249237 0.365509 0.465240 0.268768 0.366089 0.465515 0.288574 0.366791 0.465698 0.309143 0.367371 0.465942 0.330688 0.368103 0.466217 0.353455 0.368652 0.466461 0.378113 0.369202 0.466675 0.404572 0.369934 0.466919 0.433350 0.370453 0.467163 0.464844 0.371033 0.467407 0.499420 0.371796 0.467621 0.537323 0.372284 0.467896 0.578247 0.373077 0.468109 0.621857 0.373596 0.468323 0.667969 0.374146 0.468597 0.716095 0.374908 0.468842 0.765717 0.375427 0.469055 0.816528 0.375946 0.469269 0.868225 0.376678 0.469513 0.915527 0.377228 0.469757 0.000000 0.380493 0.462891 0.000000 0.381165 0.463135 0.007965 0.381744 0.463318 0.034393 0.382233 0.463562 0.067505 0.382996 0.463806 0.095703 0.383514 0.464050 0.121857 0.384094 0.464264 0.146240 0.384796 0.464508 0.169006 0.385315 0.464722 0.190521 0.386047 0.464996 0.211060 0.386566 0.465240 0.230896 0.387146 0.465485 0.250458 0.387878 0.465698 0.269958 0.388428 0.465942 0.289734 0.388916 0.466217 0.310272 0.389740 0.466431 0.331818 0.390228 0.466675 0.354584 0.391022 0.466888 0.379089 0.391541 0.467163 0.405701 0.392090 0.467377 0.434387 0.392822 0.467621 0.465912 0.393402 0.467896 0.500580 0.393921 0.468109 0.538147 0.394714 0.468323 0.579224 0.395233 0.468597 0.622833 0.395935 0.468842 0.668854 0.396454 0.469055 0.716705 0.397034 0.469238 0.766113 0.397766 0.469513 0.816833 0.398315 0.469727 0.868408 0.398804 0.469971 0.915527 0.399567 0.470184 0.000000 0.404388 0.463318 0.000000 0.404938 0.463562 0.010284 0.405426 0.463806 0.036835 0.406189 0.464050 0.070099 0.406677 0.464264 0.097839 0.407318 0.464508 0.123871 0.407959 0.464722 0.148102 0.408508 0.464996 0.170746 0.409241 0.465240 0.191956 0.409790 0.465485 0.212402 0.410309 0.465698 0.232117 0.411072 0.465942 0.251617 0.411621 0.466217 0.271149 0.412231 0.466431 0.290894 0.412933 0.466644 0.311401 0.413452 0.466888 0.332886 0.414185 0.467133 0.355682 0.414764 0.467377 0.380188 0.415283 0.467621 0.406677 0.416046 0.467896 0.435516 0.416595 0.468109 0.466949 0.417236 0.468323 0.501617 0.417877 0.468567 0.539185 0.418427 0.468842 0.580139 0.419189 0.469055 0.623718 0.419678 0.469238 0.669434 0.420258 0.469513 0.717285 0.420959 0.469727 0.766754 0.421509 0.469971 0.817261 0.422028 0.470184 0.868530 0.422760 0.470428 0.915527 0.423218 0.470612 0.000000 0.429901 0.463806 0.000000 0.430603 0.464050 0.012665 0.431183 0.464264 0.039062 0.431702 0.464508 0.072479 0.432495 0.464722 0.100159 0.432983 0.464966 0.125916 0.433502 0.465240 0.149811 0.434296 0.465485 0.172241 0.434784 0.465668 0.193573 0.435516 0.465942 0.213715 0.436127 0.466217 0.233368 0.436646 0.466431 0.252838 0.437439 0.466644 0.272339 0.437988 0.466888 0.291901 0.438477 0.467133 0.312500 0.439270 0.467377 0.333984 0.439789 0.467590 0.356750 0.440460 0.467896 0.381287 0.441101 0.468079 0.407745 0.441620 0.468292 0.436584 0.442413 0.468567 0.468109 0.442963 0.468811 0.502502 0.443451 0.469025 0.540283 0.444214 0.469238 0.581055 0.444763 0.469513 0.624451 0.445312 0.469727 0.670319 0.446045 0.469940 0.717957 0.446564 0.470184 0.767151 0.447235 0.470398 0.817535 0.447784 0.470612 0.868652 0.448273 0.470856 0.915527 0.449005 0.471039 0.000000 0.457764 0.464264 0.000000 0.458313 0.464508 0.015045 0.459045 0.464722 0.041504 0.459595 0.464966 0.074921 0.460236 0.465240 0.102264 0.460907 0.465454 0.127899 0.461426 0.465668 0.151672 0.462128 0.465942 0.173859 0.462738 0.466187 0.195007 0.463257 0.466431 0.215179 0.464050 0.466644 0.234741 0.464569 0.466888 0.253998 0.465149 0.467133 0.273376 0.465881 0.467346 0.293030 0.466400 0.467590 0.313660 0.467010 0.467865 0.335083 0.467712 0.468048 0.357880 0.468231 0.468292 0.382263 0.469025 0.468567 0.408752 0.469543 0.468811 0.437653 0.470062 0.469025 0.469208 0.470856 0.469238 0.503601 0.471313 0.469482 0.541321 0.472107 0.469727 0.582031 0.472595 0.469940 0.625397 0.473175 0.470184 0.670990 0.473816 0.470398 0.718506 0.474396 0.470612 0.767578 0.474854 0.470856 0.817841 0.475647 0.471039 0.868774 0.476135 0.471252 0.915527 0.476624 0.471497 0.000000 0.488068 0.464722 0.000000 0.488800 0.464966 0.017395 0.489349 0.465240 0.043823 0.489899 0.465454 0.077362 0.490631 0.465637 0.104401 0.491180 0.465912 0.129761 0.491699 0.466187 0.153412 0.492493 0.466400 0.175507 0.493011 0.466644 0.196350 0.493683 0.466888 0.216553 0.494324 0.467133 0.235901 0.494873 0.467346 0.255188 0.495636 0.467590 0.274536 0.496124 0.467865 0.294159 0.496674 0.468048 0.314606 0.497437 0.468292 0.336182 0.497986 0.468536 0.359009 0.498535 0.468781 0.383423 0.499298 0.469025 0.409912 0.499756 0.469208 0.438782 0.500549 0.469482 0.470245 0.501038 0.469727 0.504669 0.501556 0.469910 0.542358 0.502289 0.470184 0.583008 0.502838 0.470398 0.626190 0.503326 0.470612 0.671722 0.504059 0.470825 0.719177 0.504578 0.471039 0.768097 0.505005 0.471252 0.818054 0.505768 0.471497 0.869080 0.506256 0.471680 0.915527 0.506744 0.471893 0.000000 0.521271 0.465210 0.000000 0.521790 0.465454 0.019836 0.522522 0.465637 0.046661 0.523071 0.465881 0.079865 0.523621 0.466156 0.106720 0.524353 0.466400 0.131744 0.524872 0.466644 0.155151 0.525421 0.466858 0.177032 0.526154 0.467133 0.197998 0.526672 0.467346 0.217865 0.527405 0.467590 0.237335 0.527924 0.467865 0.256409 0.528503 0.468048 0.275726 0.529266 0.468292 0.295258 0.529755 0.468536 0.315674 0.530396 0.468781 0.337128 0.531036 0.469025 0.360046 0.531555 0.469208 0.384460 0.532135 0.469482 0.410980 0.532837 0.469696 0.439850 0.533356 0.469910 0.471313 0.533997 0.470184 0.505676 0.534515 0.470398 0.543335 0.535065 0.470612 0.583862 0.535767 0.470825 0.627014 0.536285 0.471039 0.672546 0.536743 0.471252 0.719727 0.537354 0.471497 0.768463 0.537933 0.471649 0.818481 0.538391 0.471893 0.869232 0.539001 0.472107 0.915527 0.539551 0.472290 0.000000 0.557495 0.465637 0.000000 0.558075 0.465881 0.022308 0.558533 0.466156 0.050568 0.559296 0.466370 0.082214 0.559845 0.466614 0.108765 0.560303 0.466858 0.133759 0.561066 0.467102 0.156952 0.561584 0.467346 0.178741 0.562134 0.467560 0.199402 0.562805 0.467865 0.219147 0.563354 0.468048 0.238556 0.563812 0.468292 0.257538 0.564575 0.468536 0.276672 0.565094 0.468781 0.296417 0.565582 0.469025 0.316772 0.566345 0.469208 0.338135 0.566833 0.469482 0.360992 0.567352 0.469696 0.385559 0.568054 0.469879 0.412079 0.568481 0.470184 0.440948 0.569092 0.470398 0.472382 0.569702 0.470581 0.506775 0.570190 0.470825 0.544220 0.570770 0.471039 0.584747 0.571350 0.471252 0.627899 0.571808 0.471497 0.673126 0.572266 0.471649 0.720306 0.572968 0.471863 0.769073 0.573395 0.472107 0.818787 0.573853 0.472290 0.869385 0.574463 0.472504 0.915527 0.574921 0.472656 0.000000 0.596527 0.466156 0.000000 0.597046 0.466370 0.024719 0.597534 0.466614 0.055023 0.598206 0.466858 0.084595 0.598694 0.467102 0.111023 0.599213 0.467316 0.135742 0.599884 0.467560 0.158600 0.600372 0.467834 0.180237 0.600861 0.468048 0.200775 0.601562 0.468262 0.220459 0.602020 0.468536 0.239746 0.602509 0.468781 0.258728 0.603241 0.468994 0.277771 0.603668 0.469208 0.297485 0.604156 0.469452 0.317780 0.604858 0.469666 0.339203 0.605316 0.469879 0.362061 0.605774 0.470184 0.386627 0.606476 0.470367 0.413116 0.606873 0.470581 0.441986 0.607330 0.470825 0.473328 0.607788 0.471008 0.507751 0.608459 0.471252 0.545227 0.608887 0.471497 0.585663 0.609283 0.471649 0.628754 0.609924 0.471863 0.673889 0.610382 0.472107 0.720795 0.610779 0.472290 0.769440 0.611237 0.472504 0.819031 0.611816 0.472656 0.869446 0.612213 0.472839 0.915527 0.612579 0.473053 0.000000 0.637939 0.466614 0.001831 0.638519 0.466858 0.027069 0.639038 0.467072 0.059021 0.639465 0.467316 0.086884 0.639893 0.467560 0.113068 0.640564 0.467834 0.137512 0.641022 0.468048 0.160339 0.641418 0.468262 0.181793 0.641998 0.468536 0.202118 0.642517 0.468781 0.221741 0.642975 0.468994 0.240967 0.643372 0.469208 0.259888 0.644043 0.469452 0.278961 0.644501 0.469666 0.298553 0.644897 0.469879 0.318878 0.645538 0.470184 0.340271 0.645935 0.470367 0.363068 0.646362 0.470581 0.387695 0.646881 0.470825 0.414124 0.647400 0.471008 0.442871 0.647797 0.471222 0.474243 0.648163 0.471466 0.508575 0.648621 0.471649 0.546173 0.649170 0.471863 0.586517 0.649536 0.472076 0.629395 0.649902 0.472290 0.674438 0.650391 0.472504 0.721497 0.650848 0.472656 0.769775 0.651215 0.472839 0.819214 0.651520 0.473053 0.869629 0.652069 0.473236 0.915527 0.652466 0.473450 0.000000 0.681549 0.467072 0.004089 0.681915 0.467316 0.029572 0.682251 0.467560 0.061584 0.682892 0.467834 0.089264 0.683258 0.468048 0.115173 0.683655 0.468231 0.139435 0.684021 0.468536 0.162018 0.684601 0.468750 0.183380 0.684967 0.468964 0.203583 0.685364 0.469177 0.223053 0.685760 0.469452 0.242157 0.686371 0.469666 0.261017 0.686737 0.469879 0.279999 0.687103 0.470154 0.299652 0.687439 0.470367 0.319916 0.688019 0.470551 0.341339 0.688354 0.470795 0.364105 0.688782 0.471008 0.388641 0.689087 0.471222 0.415070 0.689453 0.471466 0.443817 0.689972 0.471649 0.475281 0.690308 0.471863 0.509583 0.690674 0.472076 0.547119 0.690979 0.472260 0.587280 0.691498 0.472504 0.630249 0.691803 0.472656 0.675171 0.692139 0.472839 0.721893 0.692444 0.473053 0.770203 0.692841 0.473236 0.819580 0.693268 0.473419 0.869720 0.693542 0.473633 0.915527 0.693817 0.473755 0.000000 0.726532 0.467560 0.006348 0.726959 0.467804 0.032043 0.727417 0.468048 0.064087 0.727722 0.468231 0.091583 0.727997 0.468506 0.117279 0.728363 0.468750 0.141296 0.728912 0.468964 0.163696 0.729187 0.469177 0.184784 0.729523 0.469452 0.205017 0.729797 0.469666 0.224213 0.730133 0.469879 0.243347 0.730499 0.470123 0.262115 0.730957 0.470337 0.281128 0.731232 0.470520 0.300720 0.731506 0.470795 0.320984 0.731842 0.471008 0.342377 0.732208 0.471191 0.365112 0.732605 0.471466 0.389496 0.732849 0.471619 0.416016 0.733154 0.471863 0.444855 0.733459 0.472076 0.476288 0.733826 0.472260 0.510590 0.734222 0.472504 0.547852 0.734467 0.472656 0.588226 0.734772 0.472839 0.630859 0.734985 0.473053 0.675659 0.735168 0.473236 0.722473 0.735657 0.473419 0.770660 0.735931 0.473602 0.819916 0.736145 0.473755 0.869781 0.736389 0.473938 0.915527 0.736633 0.474121 0.000000 0.772858 0.468048 0.008667 0.773102 0.468231 0.034363 0.773590 0.468506 0.066528 0.773834 0.468750 0.093903 0.774048 0.468964 0.119354 0.774323 0.469177 0.143036 0.774536 0.469452 0.165314 0.774811 0.469635 0.186310 0.775269 0.469849 0.206329 0.775482 0.470123 0.225586 0.775696 0.470337 0.244507 0.775940 0.470520 0.263214 0.776154 0.470795 0.282196 0.776398 0.471008 0.301758 0.776825 0.471191 0.321960 0.777069 0.471466 0.343414 0.777283 0.471619 0.366150 0.777496 0.471832 0.390533 0.777710 0.472046 0.416992 0.777924 0.472229 0.445862 0.778107 0.472504 0.477234 0.778259 0.472656 0.511444 0.778748 0.472839 0.548798 0.778900 0.473053 0.588989 0.779144 0.473236 0.631622 0.779297 0.473419 0.676453 0.779480 0.473602 0.722961 0.779663 0.473755 0.770905 0.779816 0.473907 0.820129 0.780029 0.474121 0.869904 0.780426 0.474274 0.915527 0.780579 0.474457 0.000000 0.820190 0.468506 0.011078 0.820374 0.468719 0.036804 0.820496 0.468964 0.069092 0.820679 0.469177 0.096130 0.820831 0.469421 0.121399 0.820984 0.469635 0.144897 0.821136 0.469849 0.166840 0.821472 0.470123 0.187744 0.821716 0.470337 0.207611 0.821869 0.470520 0.226868 0.822021 0.470764 0.245636 0.822144 0.470978 0.264343 0.822296 0.471191 0.283234 0.822479 0.471466 0.302551 0.822601 0.471619 0.322906 0.822754 0.471832 0.344177 0.822906 0.472046 0.367126 0.823151 0.472229 0.391510 0.823395 0.472473 0.417999 0.823517 0.472626 0.446808 0.823700 0.472839 0.477997 0.823792 0.473053 0.512207 0.823944 0.473206 0.549683 0.824066 0.473389 0.589691 0.824158 0.473572 0.632263 0.824310 0.473755 0.676910 0.824463 0.473907 0.723328 0.824554 0.474091 0.771210 0.824860 0.474274 0.820282 0.825012 0.474426 0.869995 0.825104 0.474579 0.915527 0.825195 0.474762 0.000000 0.867676 0.468964 0.013458 0.867767 0.469177 0.039032 0.867920 0.469421 0.071472 0.867981 0.469635 0.098297 0.868164 0.469849 0.123230 0.868347 0.470123 0.146637 0.868439 0.470337 0.168518 0.868469 0.470520 0.189178 0.868561 0.470764 0.208862 0.868622 0.470978 0.227997 0.868713 0.471191 0.246765 0.868774 0.471436 0.265381 0.868835 0.471588 0.284302 0.868958 0.471832 0.303589 0.868988 0.472046 0.323792 0.869110 0.472229 0.345154 0.869171 0.472473 0.367920 0.869202 0.472626 0.392487 0.869293 0.472839 0.418945 0.869354 0.473053 0.447571 0.869385 0.473206 0.478943 0.869446 0.473389 0.513153 0.869568 0.473572 0.550262 0.869720 0.473755 0.590485 0.869873 0.473907 0.632935 0.869934 0.474091 0.677551 0.869995 0.474243 0.723907 0.870087 0.474426 0.771698 0.870148 0.474579 0.820496 0.870178 0.474731 0.870178 0.870239 0.474884 0.915527 0.870270 0.475037 0.000000 0.915527 0.469391 0.015747 0.915527 0.469604 0.041412 0.915527 0.469849 0.073822 0.915527 0.470123 0.100464 0.915527 0.470306 0.125153 0.915527 0.470520 0.148376 0.915527 0.470764 0.170013 0.915527 0.470978 0.190521 0.915527 0.471191 0.210114 0.915527 0.471436 0.229248 0.915527 0.471588 0.247894 0.915527 0.471832 0.266418 0.915527 0.472046 0.285309 0.915527 0.472229 0.304565 0.915527 0.472443 0.324738 0.915527 0.472626 0.346130 0.915527 0.472839 0.368866 0.915527 0.473022 0.393341 0.915527 0.473175 0.419647 0.915527 0.473389 0.448456 0.915527 0.473572 0.479797 0.915527 0.473755 0.514038 0.915527 0.473907 0.551208 0.915527 0.474091 0.591064 0.915527 0.474243 0.633392 0.915527 0.474426 0.677948 0.915527 0.474548 0.724213 0.915527 0.474731 0.771973 0.915527 0.474884 0.820740 0.915527 0.475037 0.870392 0.915527 0.475159 0.915527 0.915527 0.475281 0.000000 0.000000 0.473541 0.000000 0.000000 0.473663 0.000000 0.000000 0.473755 0.002380 0.000000 0.473877 0.029144 0.000000 0.474030 0.062622 0.000000 0.474182 0.091766 0.000000 0.474335 0.118896 0.000000 0.474487 0.144196 0.000000 0.474640 0.167847 0.000000 0.474823 0.190186 0.000000 0.474976 0.211334 0.000000 0.475128 0.231995 0.000000 0.475311 0.252258 0.000000 0.475494 0.272614 0.000000 0.475647 0.293396 0.000000 0.475830 0.315002 0.000000 0.476044 0.337708 0.000000 0.476196 0.362030 0.000000 0.476410 0.388336 0.000000 0.476562 0.417053 0.000000 0.476807 0.448517 0.000000 0.476990 0.483032 0.000000 0.477203 0.521362 0.000000 0.477356 0.562927 0.000000 0.477600 0.607971 0.000000 0.477814 0.655640 0.000000 0.478027 0.705719 0.000000 0.478241 0.757751 0.000000 0.478455 0.811127 0.000000 0.478638 0.865509 0.000000 0.478882 0.915527 0.000000 0.479126 0.000000 0.000000 0.473755 0.000000 0.000000 0.473877 0.000000 0.000000 0.474030 0.003723 0.000000 0.474182 0.030548 0.000000 0.474335 0.064117 0.000000 0.474487 0.093140 0.000000 0.474609 0.120300 0.000000 0.474823 0.145355 0.000000 0.474976 0.168945 0.000000 0.475128 0.191193 0.000000 0.475311 0.212402 0.000000 0.475464 0.232941 0.000793 0.475647 0.253113 0.001862 0.475830 0.273407 0.002930 0.476013 0.294159 0.004089 0.476196 0.315765 0.005280 0.476379 0.338623 0.006470 0.476562 0.362946 0.007721 0.476807 0.389252 0.009033 0.476990 0.418030 0.010284 0.477203 0.449524 0.011597 0.477356 0.484039 0.012939 0.477570 0.522095 0.014313 0.477814 0.563812 0.015778 0.478027 0.608887 0.017181 0.478210 0.656433 0.018555 0.478455 0.706421 0.020020 0.478638 0.758209 0.021423 0.478882 0.811401 0.022858 0.479095 0.865662 0.024475 0.479340 0.915527 0.025909 0.479523 0.000000 0.016449 0.474030 0.000000 0.017426 0.474182 0.000000 0.018402 0.474335 0.005188 0.019379 0.474487 0.032135 0.020264 0.474609 0.065826 0.021332 0.474823 0.094513 0.022369 0.474976 0.121613 0.023499 0.475128 0.146729 0.024658 0.475311 0.170105 0.025726 0.475464 0.192322 0.026855 0.475647 0.213379 0.027954 0.475830 0.233948 0.029144 0.476013 0.254028 0.030396 0.476166 0.274261 0.031586 0.476379 0.295074 0.032867 0.476562 0.316620 0.034149 0.476776 0.339417 0.035431 0.476959 0.363861 0.036774 0.477173 0.390228 0.038116 0.477356 0.419037 0.039398 0.477570 0.450470 0.040741 0.477814 0.485016 0.042145 0.478027 0.523071 0.043518 0.478210 0.564789 0.045013 0.478455 0.609558 0.047150 0.478638 0.657074 0.049591 0.478882 0.706940 0.052094 0.479095 0.758575 0.054657 0.479340 0.811646 0.057373 0.479492 0.865814 0.059479 0.479767 0.915527 0.061005 0.480011 0.000000 0.045715 0.474335 0.000000 0.047546 0.474487 0.000000 0.049194 0.474609 0.006683 0.050781 0.474792 0.033569 0.052765 0.474976 0.067413 0.054749 0.475128 0.096252 0.056793 0.475281 0.122986 0.058716 0.475464 0.147980 0.059814 0.475647 0.171295 0.061096 0.475830 0.193451 0.062378 0.476013 0.214417 0.063721 0.476166 0.234955 0.065155 0.476349 0.255035 0.066467 0.476562 0.275177 0.067780 0.476776 0.296051 0.069153 0.476959 0.317596 0.070557 0.477173 0.340302 0.071869 0.477356 0.364746 0.073242 0.477570 0.391144 0.074677 0.477783 0.419922 0.076141 0.478027 0.451385 0.077545 0.478210 0.485992 0.079041 0.478424 0.524078 0.080536 0.478638 0.565735 0.082031 0.478851 0.610474 0.083496 0.479095 0.657898 0.084991 0.479340 0.707672 0.086517 0.479492 0.759277 0.088013 0.479767 0.812195 0.089539 0.480011 0.865936 0.091064 0.480194 0.915527 0.092590 0.480438 0.000000 0.082947 0.474609 0.000000 0.083893 0.474792 0.000000 0.084991 0.474945 0.008270 0.086121 0.475098 0.035248 0.087280 0.475281 0.069244 0.088287 0.475464 0.097748 0.089478 0.475647 0.124634 0.090698 0.475830 0.149353 0.091919 0.475983 0.172516 0.093170 0.476166 0.194427 0.094177 0.476349 0.215515 0.095490 0.476562 0.235718 0.096802 0.476776 0.256042 0.098083 0.476929 0.276184 0.099396 0.477142 0.296936 0.100616 0.477356 0.318542 0.101868 0.477570 0.341278 0.103210 0.477783 0.365631 0.104553 0.477997 0.392059 0.105896 0.478210 0.420807 0.107300 0.478424 0.452301 0.108673 0.478638 0.487000 0.110046 0.478851 0.525085 0.111450 0.479095 0.566528 0.112793 0.479309 0.611298 0.114136 0.479492 0.658722 0.115479 0.479767 0.708221 0.116882 0.479980 0.759644 0.118286 0.480194 0.812469 0.119720 0.480438 0.866089 0.121094 0.480652 0.915527 0.122528 0.480896 0.000000 0.113708 0.474945 0.000000 0.114807 0.475098 0.000000 0.115662 0.475281 0.009979 0.116760 0.475464 0.037018 0.117859 0.475647 0.071106 0.118927 0.475830 0.099518 0.119934 0.475983 0.126068 0.121124 0.476135 0.150726 0.122284 0.476349 0.173798 0.123260 0.476532 0.195709 0.124481 0.476776 0.216614 0.125641 0.476929 0.236786 0.126831 0.477142 0.257050 0.127899 0.477325 0.277191 0.129120 0.477570 0.297852 0.130341 0.477783 0.319489 0.131622 0.477997 0.342285 0.132782 0.478210 0.366608 0.133942 0.478424 0.393036 0.135193 0.478607 0.421875 0.136475 0.478821 0.453339 0.137756 0.479095 0.487823 0.138885 0.479309 0.526093 0.140076 0.479492 0.567535 0.141418 0.479767 0.612091 0.142670 0.479980 0.659393 0.144012 0.480194 0.708984 0.145325 0.480438 0.760284 0.146332 0.480652 0.812744 0.147644 0.480865 0.866302 0.148926 0.481110 0.915527 0.150238 0.481384 0.000000 0.142639 0.475250 0.000000 0.143494 0.475464 0.000000 0.144440 0.475647 0.011749 0.145477 0.475800 0.038818 0.146332 0.475983 0.072906 0.147339 0.476135 0.101135 0.148438 0.476349 0.127533 0.149323 0.476532 0.152100 0.150421 0.476776 0.175262 0.151520 0.476929 0.196960 0.152435 0.477142 0.217773 0.153534 0.477325 0.237915 0.154633 0.477570 0.257874 0.155579 0.477783 0.278229 0.156738 0.477966 0.298798 0.157867 0.478180 0.320374 0.158783 0.478394 0.343323 0.159973 0.478607 0.367645 0.161133 0.478821 0.394104 0.162231 0.479065 0.422882 0.163239 0.479279 0.454376 0.164459 0.479492 0.488922 0.165619 0.479736 0.526978 0.166565 0.479950 0.568512 0.167786 0.480194 0.613068 0.168945 0.480438 0.660278 0.169891 0.480621 0.709503 0.171112 0.480865 0.760712 0.172272 0.481110 0.813171 0.173462 0.481354 0.866608 0.174408 0.481567 0.915527 0.175629 0.481812 0.000000 0.169189 0.475616 0.000000 0.169952 0.475800 0.000000 0.170837 0.475983 0.013550 0.171844 0.476135 0.040649 0.172607 0.476349 0.074829 0.173584 0.476501 0.102997 0.174408 0.476746 0.129303 0.175415 0.476929 0.153687 0.176270 0.477142 0.176514 0.177216 0.477325 0.198181 0.178284 0.477539 0.218903 0.179108 0.477783 0.238983 0.180145 0.477966 0.258911 0.181000 0.478180 0.279175 0.182037 0.478394 0.299835 0.183075 0.478607 0.321350 0.183929 0.478821 0.344147 0.184998 0.479065 0.368683 0.186096 0.479279 0.395111 0.186920 0.479462 0.423950 0.188019 0.479736 0.455475 0.189087 0.479950 0.489990 0.189941 0.480194 0.528015 0.191040 0.480438 0.569489 0.191986 0.480621 0.614044 0.192993 0.480865 0.660889 0.194092 0.481110 0.710297 0.194946 0.481354 0.761139 0.196045 0.481567 0.813538 0.197144 0.481781 0.866760 0.197968 0.482056 0.915527 0.199097 0.482269 0.000000 0.193756 0.475983 0.000000 0.194458 0.476135 0.000000 0.195312 0.476349 0.015411 0.196045 0.476501 0.042542 0.196930 0.476746 0.076813 0.197662 0.476929 0.104858 0.198578 0.477142 0.130798 0.199371 0.477325 0.155121 0.200317 0.477539 0.177826 0.201050 0.477753 0.199402 0.201996 0.477966 0.220062 0.202759 0.478149 0.240112 0.203735 0.478394 0.260040 0.204468 0.478577 0.280060 0.205475 0.478821 0.300842 0.206451 0.479034 0.322357 0.207214 0.479279 0.345154 0.208221 0.479462 0.369720 0.209015 0.479706 0.396179 0.209991 0.479950 0.424988 0.210785 0.480164 0.456451 0.211792 0.480438 0.491028 0.212585 0.480621 0.529083 0.213562 0.480865 0.570496 0.214569 0.481110 0.614777 0.215363 0.481323 0.661774 0.216370 0.481567 0.710815 0.217163 0.481781 0.761780 0.218140 0.482056 0.813873 0.219055 0.482269 0.866882 0.219940 0.482483 0.915527 0.220917 0.482758 0.000000 0.216492 0.476318 0.000000 0.217133 0.476501 0.000000 0.217957 0.476746 0.017395 0.218628 0.476929 0.044495 0.219482 0.477142 0.078857 0.220123 0.477325 0.106659 0.221039 0.477509 0.132599 0.221710 0.477753 0.156555 0.222595 0.477966 0.179169 0.223267 0.478149 0.200653 0.224121 0.478394 0.221252 0.224854 0.478577 0.241241 0.225739 0.478821 0.261139 0.226440 0.479034 0.281158 0.227386 0.479279 0.301880 0.228058 0.479462 0.323425 0.228973 0.479706 0.346191 0.229706 0.479919 0.370819 0.230652 0.480164 0.397278 0.231354 0.480408 0.425873 0.232300 0.480621 0.457397 0.233002 0.480865 0.492126 0.233948 0.481110 0.530090 0.234680 0.481323 0.571350 0.235626 0.481567 0.615692 0.236328 0.481781 0.662659 0.237274 0.482025 0.711609 0.238007 0.482269 0.762238 0.238892 0.482483 0.814117 0.239838 0.482758 0.867035 0.240540 0.482971 0.915527 0.241364 0.483185 0.000000 0.237823 0.476715 0.000000 0.238647 0.476898 0.000000 0.239227 0.477142 0.019501 0.240021 0.477325 0.047180 0.240631 0.477509 0.080994 0.241302 0.477722 0.108521 0.242096 0.477966 0.134186 0.242706 0.478149 0.158173 0.243561 0.478363 0.180511 0.244171 0.478577 0.201935 0.244995 0.478790 0.222443 0.245667 0.479034 0.242371 0.246552 0.479279 0.262207 0.247162 0.479462 0.282257 0.248016 0.479706 0.302826 0.248688 0.479919 0.324493 0.249542 0.480133 0.347290 0.250214 0.480408 0.371674 0.251129 0.480621 0.398102 0.251740 0.480835 0.426971 0.252411 0.481110 0.458496 0.253265 0.481323 0.493225 0.253937 0.481537 0.531189 0.254852 0.481781 0.572388 0.255493 0.482025 0.616699 0.256409 0.482269 0.663300 0.257050 0.482483 0.712250 0.257935 0.482727 0.762787 0.258606 0.482971 0.814545 0.259491 0.483185 0.867157 0.260132 0.483429 0.915527 0.260986 0.483704 0.000000 0.258301 0.477142 0.000000 0.258972 0.477295 0.000000 0.259613 0.477509 0.021515 0.260193 0.477722 0.050598 0.260986 0.477966 0.083099 0.261536 0.478149 0.110504 0.262146 0.478363 0.136017 0.262939 0.478577 0.159729 0.263489 0.478790 0.182098 0.264343 0.479034 0.203217 0.264923 0.479248 0.223633 0.265778 0.479462 0.243530 0.266357 0.479706 0.263336 0.267181 0.479919 0.283325 0.267761 0.480133 0.303955 0.268433 0.480408 0.325592 0.269226 0.480591 0.348389 0.269806 0.480835 0.372742 0.270691 0.481110 0.399200 0.271301 0.481323 0.428101 0.272125 0.481537 0.459595 0.272736 0.481781 0.494324 0.273376 0.482025 0.532166 0.274200 0.482239 0.573425 0.274841 0.482483 0.617554 0.275696 0.482727 0.664185 0.276306 0.482971 0.712891 0.277100 0.483185 0.763275 0.277740 0.483429 0.814911 0.278595 0.483704 0.867310 0.279205 0.483887 0.915527 0.279846 0.484131 0.000000 0.278046 0.477509 0.000000 0.278809 0.477722 0.000000 0.279327 0.477936 0.023651 0.279968 0.478149 0.054657 0.280609 0.478363 0.085236 0.281158 0.478577 0.112457 0.281952 0.478790 0.137604 0.282501 0.479034 0.161316 0.283234 0.479248 0.183502 0.283844 0.479462 0.204529 0.284393 0.479706 0.224884 0.285187 0.479919 0.244659 0.285767 0.480133 0.264435 0.286499 0.480377 0.284454 0.287140 0.480591 0.305023 0.287720 0.480835 0.326538 0.288513 0.481079 0.349457 0.289093 0.481323 0.373840 0.289917 0.481537 0.400299 0.290527 0.481750 0.429199 0.291107 0.482025 0.460693 0.291870 0.482239 0.495209 0.292450 0.482483 0.533203 0.293274 0.482727 0.574432 0.293884 0.482941 0.618378 0.294708 0.483185 0.665039 0.295258 0.483429 0.713409 0.295837 0.483704 0.763794 0.296661 0.483887 0.815186 0.297211 0.484100 0.867462 0.298035 0.484375 0.915527 0.298615 0.484589 0.000000 0.297577 0.477936 0.000000 0.298309 0.478149 0.000031 0.298828 0.478333 0.025879 0.299530 0.478546 0.058624 0.300110 0.478790 0.087402 0.300598 0.479004 0.114349 0.301361 0.479248 0.139465 0.301880 0.479462 0.162933 0.302490 0.479675 0.184937 0.303192 0.479919 0.205780 0.303772 0.480133 0.226105 0.304504 0.480377 0.245911 0.305084 0.480560 0.265594 0.305786 0.480804 0.285583 0.306427 0.481079 0.306030 0.306976 0.481293 0.327637 0.307770 0.481537 0.350555 0.308289 0.481750 0.374939 0.308868 0.481995 0.401398 0.309662 0.482208 0.430267 0.310211 0.482452 0.461823 0.311005 0.482697 0.496307 0.311584 0.482941 0.534241 0.312286 0.483185 0.575439 0.312927 0.483429 0.619385 0.313507 0.483673 0.665710 0.314301 0.483887 0.714233 0.314850 0.484100 0.764313 0.315460 0.484375 0.815521 0.316193 0.484589 0.867615 0.316742 0.484833 0.915527 0.317505 0.485077 0.000000 0.317444 0.478333 0.000000 0.317932 0.478546 0.001953 0.318420 0.478790 0.028015 0.319153 0.479004 0.060822 0.319702 0.479218 0.089569 0.320221 0.479431 0.116272 0.320953 0.479675 0.141235 0.321472 0.479889 0.164459 0.322205 0.480133 0.186432 0.322754 0.480377 0.207306 0.323303 0.480560 0.227356 0.324036 0.480774 0.247070 0.324615 0.481049 0.266754 0.325134 0.481293 0.286652 0.325897 0.481537 0.307129 0.326447 0.481750 0.328705 0.327240 0.481995 0.351624 0.327789 0.482208 0.376038 0.328339 0.482452 0.402527 0.329071 0.482697 0.431396 0.329620 0.482941 0.462921 0.330292 0.483154 0.497406 0.330963 0.483429 0.535339 0.331512 0.483673 0.576355 0.332275 0.483856 0.620361 0.332855 0.484100 0.666595 0.333496 0.484344 0.714905 0.334137 0.484589 0.764740 0.334686 0.484833 0.816010 0.335449 0.485077 0.867920 0.336029 0.485291 0.915527 0.336548 0.485535 0.000000 0.337555 0.478790 0.000000 0.338043 0.479004 0.004028 0.338745 0.479218 0.030365 0.339264 0.479431 0.063171 0.339783 0.479645 0.091766 0.340515 0.479889 0.118286 0.341034 0.480133 0.142975 0.341553 0.480377 0.166168 0.342285 0.480560 0.187958 0.342834 0.480774 0.208618 0.343567 0.481049 0.228577 0.344086 0.481293 0.248230 0.344635 0.481506 0.267914 0.345398 0.481750 0.287811 0.345917 0.481995 0.308197 0.346497 0.482178 0.329681 0.347229 0.482452 0.352539 0.347778 0.482697 0.377136 0.348511 0.482941 0.403656 0.349091 0.483154 0.432526 0.349701 0.483429 0.464050 0.350372 0.483643 0.498535 0.350922 0.483856 0.536377 0.351715 0.484100 0.577362 0.352203 0.484344 0.621033 0.352753 0.484558 0.667419 0.353516 0.484833 0.715515 0.354095 0.485046 0.765411 0.354706 0.485291 0.816315 0.355347 0.485504 0.868103 0.355896 0.485748 0.915527 0.356659 0.485962 0.000000 0.358612 0.479187 0.000000 0.359100 0.479431 0.006134 0.359711 0.479645 0.032532 0.360352 0.479858 0.065704 0.360809 0.480133 0.093964 0.361572 0.480347 0.120331 0.362091 0.480560 0.144867 0.362610 0.480774 0.167755 0.363373 0.481018 0.189362 0.363922 0.481293 0.209930 0.364410 0.481506 0.229797 0.365173 0.481750 0.249451 0.365692 0.481995 0.269043 0.366455 0.482178 0.288910 0.367004 0.482452 0.309357 0.367523 0.482697 0.330872 0.368317 0.482941 0.353699 0.368835 0.483124 0.378235 0.369415 0.483398 0.404724 0.370148 0.483643 0.433624 0.370636 0.483856 0.465149 0.371429 0.484070 0.499634 0.371979 0.484344 0.537476 0.372528 0.484558 0.578369 0.373260 0.484802 0.622009 0.373810 0.485046 0.668060 0.374542 0.485260 0.716278 0.375092 0.485504 0.765808 0.375610 0.485748 0.816559 0.376373 0.485962 0.868225 0.376892 0.486176 0.915527 0.377411 0.486420 0.000000 0.380676 0.479614 0.000000 0.381439 0.479858 0.008453 0.381927 0.480133 0.034943 0.382446 0.480347 0.068085 0.383179 0.480530 0.096161 0.383698 0.480774 0.122253 0.384430 0.481018 0.146576 0.384979 0.481293 0.169312 0.385498 0.481476 0.190765 0.386261 0.481720 0.211273 0.386780 0.481964 0.231049 0.387329 0.482178 0.250580 0.388092 0.482452 0.270172 0.388611 0.482666 0.290009 0.389313 0.482910 0.310425 0.389923 0.483124 0.331940 0.390472 0.483398 0.354767 0.391205 0.483643 0.379333 0.391754 0.483826 0.405884 0.392273 0.484070 0.434753 0.393066 0.484344 0.466217 0.393585 0.484558 0.500732 0.394287 0.484802 0.538483 0.394897 0.485046 0.579376 0.395416 0.485260 0.622986 0.396118 0.485474 0.668915 0.396667 0.485748 0.716797 0.397308 0.485962 0.766205 0.397949 0.486176 0.817017 0.398499 0.486420 0.868408 0.399078 0.486633 0.915527 0.399750 0.486816 0.000000 0.404572 0.480133 0.000000 0.405090 0.480316 0.010742 0.405701 0.480530 0.037170 0.406372 0.480774 0.070526 0.406860 0.481018 0.098358 0.407623 0.481262 0.124176 0.408173 0.481476 0.148407 0.408661 0.481720 0.170959 0.409424 0.481964 0.192383 0.409973 0.482178 0.212585 0.410553 0.482422 0.232330 0.411285 0.482666 0.251831 0.411774 0.482910 0.271332 0.412598 0.483124 0.291199 0.413116 0.483398 0.311554 0.413635 0.483612 0.333038 0.414429 0.483826 0.355865 0.414948 0.484070 0.380493 0.415466 0.484314 0.406982 0.416290 0.484558 0.435791 0.416809 0.484802 0.467377 0.417542 0.485016 0.501831 0.418091 0.485260 0.539459 0.418610 0.485474 0.580444 0.419373 0.485748 0.623932 0.419891 0.485931 0.669556 0.420593 0.486145 0.717438 0.421173 0.486420 0.766876 0.421661 0.486633 0.817322 0.422333 0.486786 0.868530 0.422913 0.487061 0.915527 0.423431 0.487274 0.000000 0.430115 0.480530 0.000000 0.430847 0.480774 0.013031 0.431366 0.481018 0.039612 0.431976 0.481262 0.072937 0.432678 0.481445 0.100586 0.433167 0.481720 0.126190 0.433807 0.481964 0.150269 0.434479 0.482178 0.172516 0.434998 0.482422 0.193787 0.435791 0.482666 0.214050 0.436310 0.482880 0.233765 0.436920 0.483124 0.253021 0.437592 0.483398 0.272491 0.438171 0.483612 0.292236 0.438751 0.483826 0.312683 0.439453 0.484070 0.334167 0.440002 0.484314 0.356934 0.440765 0.484558 0.381561 0.441315 0.484772 0.408081 0.441803 0.485016 0.436768 0.442596 0.485229 0.468262 0.443115 0.485443 0.502716 0.443726 0.485748 0.540405 0.444397 0.485931 0.581177 0.444946 0.486145 0.624664 0.445709 0.486389 0.670410 0.446228 0.486603 0.718018 0.446716 0.486786 0.767212 0.447449 0.487061 0.817566 0.447968 0.487274 0.868683 0.448486 0.487457 0.915527 0.449219 0.487732 0.000000 0.457977 0.481018 0.000000 0.458588 0.481232 0.015472 0.459259 0.481445 0.041870 0.459808 0.481720 0.075500 0.460571 0.481964 0.102783 0.461090 0.482178 0.128235 0.461609 0.482422 0.151917 0.462402 0.482666 0.174255 0.462921 0.482880 0.195190 0.463440 0.483124 0.215454 0.464233 0.483398 0.235046 0.464752 0.483612 0.254181 0.465546 0.483795 0.273621 0.466064 0.484070 0.293335 0.466614 0.484314 0.313782 0.467377 0.484528 0.335236 0.467896 0.484772 0.358063 0.468475 0.485016 0.382477 0.469208 0.485229 0.409119 0.469727 0.485443 0.437836 0.470459 0.485718 0.469330 0.471008 0.485931 0.503754 0.471558 0.486145 0.541473 0.472290 0.486389 0.582184 0.472839 0.486603 0.625549 0.473328 0.486786 0.671234 0.474060 0.487030 0.718689 0.474579 0.487244 0.767792 0.475067 0.487457 0.817841 0.475800 0.487732 0.868866 0.476288 0.487885 0.915527 0.476837 0.488098 0.000000 0.488251 0.481445 0.000000 0.489044 0.481689 0.017883 0.489532 0.481934 0.044281 0.490082 0.482147 0.077789 0.490845 0.482422 0.104980 0.491364 0.482666 0.130249 0.491943 0.482880 0.153778 0.492676 0.483093 0.175751 0.493225 0.483368 0.196747 0.493958 0.483612 0.216766 0.494507 0.483795 0.236298 0.495087 0.484070 0.255402 0.495819 0.484283 0.274780 0.496307 0.484528 0.294525 0.496887 0.484772 0.314880 0.497620 0.485016 0.336365 0.498169 0.485229 0.359131 0.498901 0.485443 0.383545 0.499451 0.485718 0.410034 0.500000 0.485931 0.438934 0.500702 0.486115 0.470459 0.501282 0.486389 0.504852 0.501740 0.486603 0.542542 0.502502 0.486786 0.583191 0.502991 0.487030 0.626404 0.503540 0.487244 0.671844 0.504242 0.487457 0.719269 0.504730 0.487732 0.768188 0.505371 0.487885 0.818085 0.505920 0.488098 0.869080 0.506439 0.488312 0.915527 0.507019 0.488525 0.000000 0.521454 0.481934 0.000000 0.522003 0.482147 0.020355 0.522736 0.482422 0.047302 0.523285 0.482666 0.080200 0.523987 0.482849 0.107178 0.524536 0.483093 0.132141 0.525085 0.483337 0.155457 0.525787 0.483582 0.177429 0.526367 0.483795 0.198212 0.526855 0.484070 0.218079 0.527649 0.484283 0.237518 0.528137 0.484528 0.256561 0.528748 0.484772 0.275909 0.529419 0.484985 0.295471 0.529938 0.485229 0.315948 0.530701 0.485443 0.337402 0.531219 0.485687 0.360260 0.531708 0.485931 0.384613 0.532471 0.486115 0.411133 0.533020 0.486359 0.440002 0.533478 0.486572 0.471527 0.534241 0.486786 0.505859 0.534698 0.487030 0.543579 0.535248 0.487244 0.584106 0.535980 0.487457 0.627136 0.536438 0.487732 0.672638 0.536957 0.487885 0.719940 0.537628 0.488098 0.768555 0.538086 0.488312 0.818573 0.538605 0.488525 0.869293 0.539276 0.488708 0.915527 0.539703 0.488922 0.000000 0.557739 0.482422 0.000000 0.558228 0.482666 0.022675 0.558777 0.482849 0.051544 0.559509 0.483093 0.082611 0.559998 0.483337 0.109314 0.560516 0.483582 0.134033 0.561279 0.483795 0.157257 0.561768 0.484070 0.179016 0.562347 0.484253 0.199585 0.562988 0.484528 0.219360 0.563507 0.484741 0.238708 0.564301 0.484985 0.257721 0.564789 0.485199 0.277008 0.565277 0.485443 0.296539 0.565857 0.485687 0.317047 0.566528 0.485931 0.338470 0.567017 0.486115 0.361298 0.567719 0.486359 0.385712 0.568237 0.486572 0.412231 0.568695 0.486786 0.441071 0.569427 0.487000 0.472565 0.569885 0.487244 0.506927 0.570374 0.487457 0.544434 0.571075 0.487701 0.584930 0.571503 0.487885 0.627991 0.571991 0.488098 0.673187 0.572479 0.488312 0.720428 0.573090 0.488495 0.769165 0.573578 0.488708 0.818787 0.574005 0.488922 0.869415 0.574646 0.489075 0.915527 0.575073 0.489288 0.000000 0.596710 0.482849 0.000061 0.597198 0.483093 0.025146 0.597809 0.483337 0.055664 0.598389 0.483582 0.085083 0.598877 0.483765 0.111481 0.599518 0.484039 0.136017 0.600067 0.484253 0.158905 0.600525 0.484497 0.180450 0.601044 0.484741 0.200958 0.601715 0.484955 0.220673 0.602203 0.485199 0.239960 0.602692 0.485443 0.258881 0.603394 0.485687 0.278168 0.603882 0.485931 0.297638 0.604309 0.486115 0.317963 0.605011 0.486359 0.339539 0.605499 0.486572 0.362366 0.605896 0.486786 0.386780 0.606598 0.487000 0.413300 0.607086 0.487244 0.442139 0.607452 0.487427 0.473633 0.608063 0.487701 0.507935 0.608643 0.487885 0.545349 0.609039 0.488068 0.585815 0.609467 0.488312 0.628906 0.610107 0.488495 0.673950 0.610504 0.488708 0.720917 0.610931 0.488922 0.769501 0.611542 0.489075 0.819031 0.611969 0.489288 0.869507 0.612366 0.489471 0.915527 0.612762 0.489655 0.000000 0.638092 0.483337 0.002167 0.638794 0.483551 0.027649 0.639191 0.483765 0.059509 0.639618 0.484039 0.087463 0.640228 0.484253 0.113617 0.640747 0.484497 0.137909 0.641174 0.484741 0.160706 0.641571 0.484955 0.182129 0.642242 0.485199 0.202362 0.642670 0.485413 0.222015 0.643127 0.485687 0.241150 0.643677 0.485931 0.260071 0.644196 0.486115 0.279297 0.644592 0.486359 0.298706 0.645081 0.486572 0.319031 0.645691 0.486786 0.340454 0.646088 0.487000 0.363220 0.646484 0.487213 0.387817 0.647125 0.487427 0.414337 0.647522 0.487671 0.443207 0.647919 0.487885 0.474548 0.648285 0.488068 0.508911 0.648895 0.488312 0.546295 0.649292 0.488495 0.586761 0.649658 0.488708 0.629517 0.650024 0.488922 0.674530 0.650635 0.489044 0.721588 0.650970 0.489288 0.769867 0.651337 0.489471 0.819244 0.651642 0.489655 0.869629 0.652252 0.489838 0.915527 0.652588 0.490051 0.000000 0.681641 0.483765 0.004456 0.682037 0.484039 0.029968 0.682434 0.484253 0.061981 0.683014 0.484467 0.089722 0.683441 0.484741 0.115631 0.683838 0.484955 0.139709 0.684204 0.485168 0.162262 0.684814 0.485413 0.183624 0.685181 0.485687 0.203918 0.685516 0.485901 0.223389 0.685883 0.486084 0.242310 0.686523 0.486328 0.261169 0.686859 0.486542 0.280151 0.687195 0.486786 0.299805 0.687714 0.487000 0.320038 0.688141 0.487213 0.341492 0.688507 0.487396 0.364288 0.688873 0.487671 0.388855 0.689178 0.487854 0.415344 0.689697 0.488068 0.443970 0.690094 0.488281 0.475433 0.690430 0.488464 0.509735 0.690796 0.488708 0.547272 0.691162 0.488922 0.587433 0.691620 0.489044 0.630341 0.691895 0.489258 0.675262 0.692230 0.489441 0.721954 0.692535 0.489655 0.770264 0.693085 0.489838 0.819702 0.693390 0.490051 0.869751 0.693634 0.490173 0.915527 0.693939 0.490387 0.000000 0.726654 0.484222 0.006805 0.727173 0.484467 0.032410 0.727539 0.484741 0.064606 0.727844 0.484924 0.092010 0.728180 0.485168 0.117737 0.728455 0.485413 0.141632 0.729004 0.485657 0.164062 0.729340 0.485901 0.185028 0.729614 0.486084 0.205231 0.729919 0.486328 0.224609 0.730194 0.486542 0.243469 0.730682 0.486755 0.262329 0.731049 0.487000 0.281281 0.731354 0.487213 0.300873 0.731659 0.487396 0.321106 0.731903 0.487640 0.342529 0.732452 0.487854 0.365265 0.732697 0.488068 0.389832 0.733032 0.488281 0.416290 0.733276 0.488464 0.445007 0.733551 0.488708 0.476410 0.734009 0.488892 0.510712 0.734314 0.489044 0.548065 0.734558 0.489258 0.588318 0.734802 0.489441 0.630981 0.735077 0.489655 0.675812 0.735291 0.489838 0.722626 0.735779 0.490051 0.770721 0.736023 0.490173 0.819916 0.736206 0.490387 0.869812 0.736450 0.490540 0.915527 0.736725 0.490692 0.000000 0.772980 0.484741 0.009186 0.773254 0.484924 0.034882 0.773682 0.485138 0.067047 0.773926 0.485413 0.094238 0.774139 0.485657 0.119690 0.774414 0.485870 0.143524 0.774658 0.486084 0.165558 0.774994 0.486328 0.186646 0.775330 0.486542 0.206543 0.775574 0.486755 0.225861 0.775818 0.486969 0.244659 0.776031 0.487183 0.263428 0.776215 0.487396 0.282349 0.776550 0.487640 0.301880 0.776917 0.487854 0.322144 0.777100 0.488068 0.343536 0.777313 0.488281 0.366302 0.777557 0.488464 0.390686 0.777802 0.488678 0.417175 0.777985 0.488892 0.445984 0.778168 0.489044 0.477386 0.778442 0.489258 0.511658 0.778809 0.489441 0.548920 0.778992 0.489655 0.589142 0.779175 0.489838 0.631714 0.779358 0.490051 0.676544 0.779510 0.490173 0.723053 0.779724 0.490356 0.770966 0.779877 0.490509 0.820160 0.780212 0.490692 0.869904 0.780487 0.490875 0.915527 0.780609 0.491028 0.000000 0.820221 0.485138 0.011566 0.820404 0.485413 0.037109 0.820526 0.485657 0.069489 0.820740 0.485870 0.096466 0.820831 0.486084 0.121704 0.821045 0.486328 0.145172 0.821167 0.486511 0.167267 0.821564 0.486755 0.188019 0.821747 0.486969 0.207855 0.821899 0.487183 0.227051 0.822052 0.487396 0.245819 0.822174 0.487640 0.264496 0.822388 0.487854 0.283386 0.822510 0.488068 0.302795 0.822632 0.488251 0.323151 0.822815 0.488434 0.344421 0.822968 0.488678 0.367279 0.823273 0.488861 0.391693 0.823456 0.489044 0.418152 0.823578 0.489258 0.446960 0.823730 0.489410 0.478271 0.823853 0.489624 0.512390 0.823975 0.489807 0.549835 0.824127 0.490051 0.589813 0.824219 0.490173 0.632507 0.824341 0.490356 0.676910 0.824463 0.490509 0.723389 0.824615 0.490692 0.771332 0.824860 0.490845 0.820312 0.825043 0.491028 0.870117 0.825104 0.491119 0.915527 0.825195 0.491302 0.000000 0.867737 0.485626 0.013855 0.867798 0.485870 0.039551 0.867920 0.486084 0.071930 0.868103 0.486328 0.098633 0.868286 0.486511 0.123657 0.868347 0.486755 0.147003 0.868439 0.486969 0.168793 0.868530 0.487152 0.189392 0.868561 0.487396 0.209076 0.868652 0.487640 0.228241 0.868744 0.487854 0.246918 0.868774 0.488068 0.265594 0.868896 0.488251 0.284424 0.868988 0.488434 0.303741 0.869049 0.488678 0.324066 0.869110 0.488861 0.345306 0.869171 0.489044 0.368011 0.869263 0.489258 0.392639 0.869293 0.489410 0.419098 0.869385 0.489624 0.447784 0.869446 0.489807 0.479065 0.869446 0.490021 0.513245 0.869720 0.490173 0.550446 0.869781 0.490356 0.590607 0.869873 0.490509 0.633026 0.869995 0.490692 0.677612 0.870087 0.490845 0.723969 0.870087 0.490997 0.771759 0.870148 0.491119 0.820496 0.870178 0.491302 0.870331 0.870239 0.491425 0.915527 0.870270 0.491577 0.000000 0.915527 0.486053 0.016266 0.915527 0.486298 0.041779 0.915527 0.486511 0.074341 0.915527 0.486725 0.100830 0.915527 0.486938 0.125641 0.915527 0.487152 0.148590 0.915527 0.487396 0.170227 0.915527 0.487640 0.190735 0.915527 0.487823 0.210297 0.915527 0.488037 0.229401 0.915527 0.488251 0.248016 0.915527 0.488434 0.266632 0.915527 0.488678 0.285461 0.915527 0.488861 0.304718 0.915527 0.489044 0.324921 0.915527 0.489258 0.346252 0.915527 0.489410 0.368988 0.915527 0.489624 0.393555 0.915527 0.489807 0.419922 0.915527 0.490021 0.448608 0.915527 0.490143 0.479980 0.915527 0.490326 0.514191 0.915527 0.490479 0.551300 0.915527 0.490692 0.591156 0.915527 0.490845 0.633575 0.915527 0.490997 0.678040 0.915527 0.491119 0.724304 0.915527 0.491302 0.772064 0.915527 0.491425 0.820831 0.915527 0.491577 0.870392 0.915527 0.491699 0.915527 0.915527 0.491852 0.000000 0.000000 0.491211 0.000000 0.000000 0.491333 0.000000 0.000000 0.491455 0.002747 0.000000 0.491608 0.029419 0.000000 0.491730 0.062836 0.000000 0.491882 0.091980 0.000000 0.492035 0.119232 0.000000 0.492188 0.144409 0.000000 0.492340 0.168091 0.000000 0.492493 0.190338 0.000000 0.492645 0.211609 0.000000 0.492828 0.232086 0.000000 0.493011 0.252502 0.000000 0.493134 0.272705 0.000000 0.493347 0.293549 0.000000 0.493530 0.315094 0.000000 0.493683 0.337860 0.000000 0.493896 0.362305 0.000000 0.494049 0.388519 0.000000 0.494263 0.417206 0.000000 0.494446 0.448669 0.000000 0.494659 0.483276 0.000000 0.494843 0.521454 0.000000 0.495056 0.563232 0.000000 0.495270 0.608124 0.000000 0.495483 0.655731 0.000000 0.495667 0.705811 0.000000 0.495911 0.757935 0.000000 0.496094 0.811188 0.000000 0.496307 0.865509 0.000000 0.496521 0.915527 0.000000 0.496765 0.000000 0.000000 0.491455 0.000000 0.000000 0.491608 0.000000 0.000000 0.491730 0.004059 0.000000 0.491882 0.030792 0.000000 0.492035 0.064362 0.000000 0.492157 0.093445 0.000000 0.492310 0.120453 0.000000 0.492493 0.145660 0.000000 0.492645 0.169128 0.000000 0.492828 0.191406 0.000000 0.493011 0.212524 0.000153 0.493134 0.233063 0.001129 0.493347 0.253326 0.002197 0.493500 0.273651 0.003326 0.493683 0.294342 0.004486 0.493896 0.316040 0.005646 0.494049 0.338776 0.006897 0.494263 0.363037 0.008118 0.494446 0.389435 0.009430 0.494659 0.418182 0.010864 0.494843 0.449677 0.012146 0.495056 0.484131 0.013489 0.495239 0.522217 0.014893 0.495453 0.563995 0.016235 0.495667 0.609009 0.017609 0.495911 0.656586 0.019043 0.496063 0.706512 0.020447 0.496307 0.758301 0.022034 0.496521 0.811462 0.023468 0.496765 0.865662 0.024902 0.496979 0.915527 0.026428 0.497192 0.000000 0.016754 0.491730 0.000000 0.017731 0.491852 0.000000 0.018707 0.492035 0.005402 0.019745 0.492157 0.032349 0.020752 0.492310 0.066071 0.021637 0.492462 0.095001 0.022736 0.492645 0.121857 0.023834 0.492798 0.147003 0.024963 0.492981 0.170258 0.026154 0.493134 0.192505 0.027283 0.493317 0.213501 0.028503 0.493500 0.234070 0.029755 0.493683 0.254181 0.030945 0.493866 0.274536 0.032196 0.494049 0.295227 0.033447 0.494232 0.316833 0.034698 0.494446 0.339722 0.036072 0.494659 0.364014 0.037354 0.494843 0.390381 0.038666 0.495056 0.419189 0.040039 0.495239 0.450653 0.041382 0.495453 0.485138 0.042755 0.495667 0.523193 0.044098 0.495911 0.564911 0.045502 0.496063 0.609650 0.047913 0.496307 0.657196 0.050385 0.496521 0.707031 0.052917 0.496765 0.758667 0.055573 0.496979 0.811768 0.058258 0.497192 0.865814 0.059967 0.497406 0.915527 0.061737 0.497650 0.000000 0.046265 0.492035 0.000000 0.048126 0.492157 0.000000 0.049835 0.492310 0.006958 0.051697 0.492462 0.033966 0.053314 0.492615 0.067749 0.055328 0.492798 0.096497 0.057465 0.492981 0.123291 0.059204 0.493134 0.148315 0.060425 0.493317 0.171600 0.061646 0.493500 0.193634 0.062805 0.493683 0.214569 0.064178 0.493866 0.235077 0.065552 0.494049 0.255188 0.066864 0.494232 0.275360 0.068176 0.494446 0.296204 0.069611 0.494659 0.317719 0.071045 0.494843 0.340454 0.072418 0.495056 0.364960 0.073853 0.495239 0.391357 0.075348 0.495453 0.420166 0.076782 0.495667 0.451660 0.078217 0.495880 0.486145 0.079712 0.496063 0.524200 0.081207 0.496307 0.565857 0.082672 0.496521 0.610596 0.084137 0.496735 0.658020 0.085693 0.496979 0.707764 0.087158 0.497162 0.759308 0.088715 0.497406 0.812225 0.090179 0.497620 0.865936 0.091736 0.497864 0.915527 0.093292 0.498047 0.000000 0.083282 0.492310 0.000000 0.084412 0.492462 0.000000 0.085388 0.492615 0.008575 0.086487 0.492798 0.035675 0.087616 0.492981 0.069489 0.088837 0.493134 0.098175 0.089874 0.493317 0.124847 0.091034 0.493469 0.149597 0.092316 0.493683 0.172821 0.093567 0.493866 0.194763 0.094788 0.494019 0.215698 0.095947 0.494232 0.236053 0.097229 0.494446 0.256165 0.098480 0.494659 0.276367 0.099823 0.494843 0.297150 0.101135 0.495056 0.318695 0.102478 0.495209 0.341431 0.103882 0.495453 0.365967 0.104980 0.495667 0.392334 0.106354 0.495880 0.420929 0.107758 0.496033 0.452454 0.109100 0.496307 0.487183 0.110535 0.496521 0.525238 0.111938 0.496735 0.566833 0.113312 0.496979 0.611542 0.114716 0.497162 0.658905 0.116119 0.497375 0.708374 0.117493 0.497620 0.759705 0.118866 0.497864 0.812531 0.120117 0.498047 0.866089 0.121552 0.498322 0.915527 0.122955 0.498566 0.000000 0.114075 0.492615 0.000000 0.115112 0.492767 0.000000 0.116211 0.492981 0.010254 0.117096 0.493103 0.037323 0.118195 0.493317 0.071411 0.119385 0.493469 0.099823 0.120270 0.493683 0.126282 0.121429 0.493835 0.150940 0.122620 0.494019 0.174164 0.123810 0.494202 0.195984 0.124847 0.494415 0.216827 0.126038 0.494659 0.237030 0.127197 0.494843 0.257172 0.128448 0.495026 0.277344 0.129608 0.495209 0.298126 0.130737 0.495453 0.319641 0.132019 0.495667 0.342468 0.133240 0.495880 0.366791 0.134521 0.496033 0.393219 0.135651 0.496307 0.421997 0.136871 0.496490 0.453491 0.138123 0.496704 0.488159 0.139435 0.496979 0.526306 0.140717 0.497162 0.567719 0.141785 0.497375 0.612335 0.143097 0.497620 0.659546 0.144379 0.497864 0.709045 0.145691 0.498047 0.760345 0.147003 0.498322 0.812805 0.148041 0.498566 0.866302 0.149353 0.498779 0.915527 0.150635 0.498993 0.000000 0.142944 0.492981 0.000000 0.143921 0.493103 0.000000 0.144745 0.493317 0.012024 0.145813 0.493469 0.039093 0.146851 0.493683 0.073273 0.147705 0.493835 0.101624 0.148773 0.494019 0.128021 0.149658 0.494202 0.152435 0.150726 0.494415 0.175415 0.151855 0.494629 0.197144 0.152740 0.494843 0.217957 0.153900 0.495026 0.238098 0.154968 0.495209 0.258118 0.156067 0.495422 0.278381 0.157074 0.495636 0.298920 0.158234 0.495850 0.320679 0.159332 0.496033 0.343475 0.160339 0.496307 0.367798 0.161499 0.496490 0.394226 0.162659 0.496704 0.423035 0.163605 0.496979 0.454559 0.164795 0.497131 0.489075 0.165955 0.497375 0.527100 0.167145 0.497620 0.568665 0.168152 0.497864 0.613159 0.169281 0.498047 0.660370 0.170471 0.498291 0.709656 0.171448 0.498535 0.760803 0.172638 0.498749 0.813263 0.173798 0.498962 0.866608 0.174957 0.499237 0.915527 0.175964 0.499451 0.000000 0.169464 0.493317 0.000000 0.170410 0.493439 0.000000 0.171173 0.493683 0.013855 0.172150 0.493835 0.040985 0.172882 0.494019 0.075226 0.173920 0.494202 0.103363 0.174774 0.494415 0.129486 0.175690 0.494629 0.153931 0.176727 0.494812 0.176758 0.177490 0.495026 0.198364 0.178558 0.495209 0.219086 0.179382 0.495422 0.239166 0.180420 0.495636 0.259155 0.181488 0.495850 0.279419 0.182343 0.496033 0.299957 0.183380 0.496277 0.321472 0.184479 0.496490 0.344360 0.185333 0.496704 0.368835 0.186401 0.496948 0.395264 0.187347 0.497131 0.424133 0.188354 0.497375 0.455627 0.189423 0.497620 0.490112 0.190308 0.497864 0.528168 0.191376 0.498016 0.569672 0.192444 0.498291 0.614166 0.193329 0.498535 0.661133 0.194366 0.498749 0.710358 0.195496 0.498962 0.761230 0.196381 0.499237 0.813599 0.197449 0.499451 0.866760 0.198425 0.499695 0.915527 0.199402 0.499908 0.000000 0.194031 0.493683 0.000000 0.194733 0.493835 0.000000 0.195648 0.494019 0.015747 0.196320 0.494202 0.042816 0.197235 0.494385 0.077118 0.197937 0.494629 0.105164 0.198914 0.494812 0.131195 0.199615 0.494995 0.155365 0.200562 0.495209 0.178070 0.201324 0.495422 0.199585 0.202271 0.495636 0.220245 0.203094 0.495850 0.240295 0.203979 0.496033 0.260193 0.204987 0.496277 0.280273 0.205780 0.496490 0.301025 0.206757 0.496674 0.322510 0.207520 0.496948 0.345367 0.208527 0.497131 0.369904 0.209259 0.497375 0.396362 0.210266 0.497620 0.425171 0.211273 0.497833 0.456696 0.212067 0.498016 0.491211 0.213074 0.498291 0.529205 0.213837 0.498505 0.570740 0.214844 0.498718 0.615051 0.215729 0.498962 0.661896 0.216675 0.499207 0.710999 0.217682 0.499420 0.761871 0.218475 0.499664 0.813873 0.219421 0.499908 0.866913 0.220215 0.500122 0.915527 0.221222 0.500366 0.000000 0.216766 0.494019 0.000000 0.217590 0.494202 0.000000 0.218201 0.494385 0.017822 0.218872 0.494598 0.044769 0.219727 0.494812 0.079193 0.220398 0.494995 0.107086 0.221283 0.495178 0.132843 0.221924 0.495392 0.156952 0.222809 0.495605 0.179535 0.223511 0.495850 0.200867 0.224426 0.496002 0.221436 0.225098 0.496277 0.241394 0.226044 0.496490 0.261261 0.226715 0.496674 0.281311 0.227631 0.496948 0.302063 0.228424 0.497131 0.323578 0.229248 0.497375 0.346375 0.229980 0.497589 0.370972 0.230896 0.497833 0.397400 0.231689 0.498016 0.426208 0.232574 0.498260 0.457733 0.233459 0.498505 0.492310 0.234253 0.498718 0.530273 0.235016 0.498962 0.571594 0.235840 0.499207 0.615845 0.236816 0.499420 0.662750 0.237518 0.499664 0.711700 0.238464 0.499908 0.762268 0.239166 0.500122 0.814178 0.240082 0.500366 0.867096 0.240814 0.500610 0.915527 0.241730 0.500824 0.000000 0.238190 0.494385 0.000000 0.238861 0.494598 0.000000 0.239502 0.494781 0.019836 0.240265 0.494995 0.048035 0.240875 0.495178 0.081268 0.241669 0.495392 0.108856 0.242310 0.495605 0.134613 0.243164 0.495850 0.158478 0.243774 0.496002 0.181000 0.244537 0.496246 0.202118 0.245270 0.496460 0.222626 0.245911 0.496674 0.242523 0.246735 0.496918 0.262390 0.247406 0.497131 0.282410 0.248260 0.497345 0.303131 0.248901 0.497589 0.324646 0.249786 0.497833 0.347443 0.250458 0.498016 0.371979 0.251373 0.498260 0.398438 0.251984 0.498505 0.427246 0.252869 0.498718 0.458832 0.253540 0.498962 0.493378 0.254425 0.499207 0.531372 0.255066 0.499390 0.572571 0.255981 0.499634 0.616791 0.256653 0.499878 0.663544 0.257294 0.500092 0.712402 0.258179 0.500336 0.762939 0.258911 0.500580 0.814575 0.259705 0.500824 0.867188 0.260406 0.501038 0.915527 0.261230 0.501282 0.000000 0.258514 0.494781 0.000000 0.259277 0.494995 0.000000 0.259827 0.495178 0.021820 0.260468 0.495392 0.051483 0.261169 0.495605 0.083405 0.261780 0.495819 0.110779 0.262573 0.496002 0.136261 0.263123 0.496246 0.159943 0.263855 0.496460 0.182373 0.264557 0.496674 0.203400 0.265106 0.496918 0.223846 0.265991 0.497101 0.243683 0.266571 0.497345 0.263489 0.267426 0.497589 0.283478 0.268005 0.497803 0.304199 0.268738 0.498016 0.325714 0.269470 0.498260 0.348511 0.270050 0.498474 0.373047 0.270905 0.498688 0.399506 0.271545 0.498962 0.428345 0.272369 0.499176 0.459778 0.272980 0.499390 0.494476 0.273834 0.499634 0.532410 0.274445 0.499878 0.573578 0.275177 0.500092 0.617798 0.275909 0.500336 0.664307 0.276581 0.500580 0.712982 0.277374 0.500824 0.763336 0.277954 0.501038 0.815002 0.278809 0.501282 0.867340 0.279419 0.501526 0.915527 0.280273 0.501770 0.000000 0.278442 0.495178 0.000000 0.278992 0.495361 0.000000 0.279541 0.495605 0.024078 0.280304 0.495819 0.055237 0.280792 0.496002 0.085571 0.281372 0.496216 0.112762 0.282135 0.496429 0.138062 0.282684 0.496674 0.161652 0.283478 0.496918 0.183716 0.284027 0.497101 0.204926 0.284637 0.497314 0.225067 0.285400 0.497589 0.244873 0.285950 0.497803 0.264618 0.286774 0.498016 0.284607 0.287323 0.498230 0.305328 0.288086 0.498474 0.326813 0.288727 0.498688 0.349609 0.289276 0.498962 0.374054 0.290131 0.499176 0.400543 0.290710 0.499390 0.429321 0.291534 0.499634 0.460876 0.292114 0.499847 0.495453 0.292755 0.500092 0.533478 0.293488 0.500336 0.574585 0.294098 0.500580 0.618530 0.294891 0.500824 0.665161 0.295502 0.501038 0.713715 0.296143 0.501282 0.763885 0.296875 0.501526 0.815277 0.297485 0.501770 0.867493 0.298248 0.501984 0.915527 0.298859 0.502197 0.000000 0.297974 0.495605 0.000000 0.298492 0.495819 0.000366 0.299042 0.496002 0.026184 0.299744 0.496216 0.058929 0.300262 0.496429 0.087708 0.300964 0.496674 0.114746 0.301544 0.496918 0.139740 0.302094 0.497070 0.163177 0.302856 0.497314 0.185181 0.303406 0.497589 0.206207 0.303955 0.497772 0.226318 0.304749 0.497986 0.246063 0.305298 0.498230 0.265778 0.306061 0.498474 0.285675 0.306610 0.498688 0.306183 0.307129 0.498962 0.327911 0.307953 0.499176 0.350739 0.308502 0.499390 0.375122 0.309265 0.499634 0.401581 0.309875 0.499847 0.430450 0.310425 0.500092 0.461975 0.311218 0.500336 0.496552 0.311768 0.500580 0.534363 0.312592 0.500824 0.575653 0.313141 0.501038 0.619476 0.313721 0.501282 0.665833 0.314484 0.501526 0.714294 0.315063 0.501770 0.764404 0.315826 0.501953 0.815643 0.316376 0.502197 0.867737 0.316986 0.502441 0.915527 0.317719 0.502655 0.000000 0.317596 0.496002 0.000000 0.318115 0.496216 0.002258 0.318634 0.496429 0.028503 0.319366 0.496643 0.061249 0.319885 0.496918 0.089905 0.320587 0.497070 0.116699 0.321136 0.497314 0.141602 0.321686 0.497559 0.164917 0.322418 0.497772 0.186707 0.322968 0.497986 0.207550 0.323608 0.498230 0.227509 0.324249 0.498474 0.247253 0.324768 0.498688 0.266907 0.325500 0.498962 0.286835 0.326080 0.499176 0.307281 0.326630 0.499390 0.328979 0.327423 0.499634 0.351776 0.327972 0.499847 0.376221 0.328766 0.500092 0.402710 0.329285 0.500336 0.431549 0.329834 0.500580 0.463104 0.330597 0.500824 0.497650 0.331177 0.501007 0.535461 0.331757 0.501282 0.576660 0.332489 0.501495 0.620422 0.333008 0.501740 0.666687 0.333801 0.501953 0.715057 0.334320 0.502197 0.764862 0.334991 0.502411 0.816071 0.335663 0.502655 0.867981 0.336243 0.502899 0.915527 0.336884 0.503082 0.000000 0.337738 0.496429 0.000000 0.338257 0.496643 0.004425 0.338928 0.496887 0.030701 0.339447 0.497070 0.063751 0.340179 0.497314 0.092102 0.340698 0.497559 0.118561 0.341217 0.497772 0.143463 0.341949 0.497986 0.166473 0.342499 0.498230 0.188141 0.342987 0.498474 0.208862 0.343781 0.498688 0.228760 0.344299 0.498962 0.248444 0.344971 0.499146 0.268066 0.345581 0.499359 0.287933 0.346130 0.499634 0.308411 0.346893 0.499847 0.329956 0.347443 0.500061 0.352875 0.347961 0.500305 0.377289 0.348755 0.500549 0.403809 0.349274 0.500793 0.432678 0.350037 0.501007 0.464233 0.350586 0.501282 0.498657 0.351105 0.501495 0.536530 0.351868 0.501740 0.577484 0.352417 0.501953 0.621368 0.352936 0.502167 0.667572 0.353760 0.502411 0.715637 0.354279 0.502655 0.765503 0.355042 0.502869 0.816345 0.355560 0.503082 0.868134 0.356079 0.503326 0.915527 0.356812 0.503601 0.000000 0.358765 0.496887 0.000000 0.359283 0.497040 0.006622 0.360046 0.497314 0.033081 0.360504 0.497528 0.066101 0.361023 0.497772 0.094299 0.361755 0.497986 0.120605 0.362305 0.498230 0.145111 0.362946 0.498444 0.168030 0.363586 0.498657 0.189545 0.364075 0.498932 0.210175 0.364807 0.499146 0.230103 0.365356 0.499359 0.249603 0.365906 0.499634 0.269196 0.366669 0.499847 0.289062 0.367188 0.500061 0.309479 0.367920 0.500305 0.331024 0.368500 0.500549 0.354034 0.369019 0.500793 0.378418 0.369751 0.501007 0.404938 0.370331 0.501282 0.433807 0.370850 0.501465 0.465302 0.371613 0.501709 0.499786 0.372192 0.501953 0.537659 0.372925 0.502167 0.578552 0.373474 0.502411 0.622162 0.373962 0.502625 0.668182 0.374756 0.502869 0.716339 0.375305 0.503082 0.765900 0.375824 0.503326 0.816620 0.376556 0.503571 0.868286 0.377075 0.503784 0.915527 0.377716 0.503998 0.000000 0.380890 0.497314 0.000000 0.381592 0.497528 0.008820 0.382141 0.497772 0.035248 0.382843 0.497986 0.068481 0.383362 0.498199 0.096497 0.383850 0.498444 0.122650 0.384644 0.498657 0.147003 0.385193 0.498932 0.169708 0.385773 0.499146 0.191101 0.386444 0.499359 0.211609 0.386993 0.499603 0.231323 0.387573 0.499847 0.250793 0.388275 0.500031 0.270386 0.388824 0.500305 0.290222 0.389557 0.500549 0.310638 0.390106 0.500763 0.332153 0.390686 0.500977 0.355103 0.391418 0.501251 0.379547 0.391937 0.501465 0.406036 0.392609 0.501709 0.434906 0.393250 0.501953 0.466431 0.393799 0.502167 0.500854 0.394562 0.502380 0.538696 0.395111 0.502625 0.579529 0.395599 0.502869 0.623108 0.396332 0.503082 0.669067 0.396851 0.503326 0.716888 0.397644 0.503571 0.766327 0.398163 0.503754 0.817139 0.398682 0.503967 0.868439 0.399414 0.504211 0.915527 0.399933 0.504425 0.000000 0.404755 0.497742 0.000000 0.405273 0.497986 0.011169 0.406006 0.498199 0.037689 0.406555 0.498444 0.071014 0.407074 0.498657 0.098724 0.407806 0.498901 0.124695 0.408356 0.499115 0.148682 0.409119 0.499329 0.171234 0.409637 0.499603 0.192596 0.410156 0.499847 0.212860 0.410950 0.500031 0.232727 0.411469 0.500305 0.252014 0.411987 0.500549 0.271515 0.412781 0.500763 0.291351 0.413300 0.500977 0.311768 0.414032 0.501251 0.333221 0.414642 0.501465 0.356018 0.415161 0.501678 0.380646 0.415924 0.501923 0.407135 0.416443 0.502136 0.436005 0.416962 0.502380 0.467560 0.417725 0.502625 0.501984 0.418274 0.502869 0.539734 0.418915 0.503082 0.580597 0.419556 0.503296 0.624054 0.420074 0.503540 0.669739 0.420837 0.503754 0.717621 0.421356 0.503967 0.766907 0.421875 0.504211 0.817352 0.422607 0.504425 0.868561 0.423126 0.504608 0.915527 0.423584 0.504852 0.000000 0.430328 0.498169 0.000000 0.431061 0.498413 0.013550 0.431549 0.498657 0.039978 0.432281 0.498901 0.073425 0.432831 0.499115 0.100922 0.433380 0.499329 0.126526 0.434143 0.499603 0.150543 0.434662 0.499847 0.172882 0.435181 0.500031 0.194000 0.435974 0.500305 0.214325 0.436523 0.500549 0.234009 0.437195 0.500763 0.253265 0.437805 0.500977 0.272675 0.438354 0.501251 0.292480 0.439117 0.501434 0.312836 0.439667 0.501678 0.334320 0.440186 0.501923 0.357086 0.440979 0.502136 0.381744 0.441498 0.502380 0.408264 0.442230 0.502625 0.437012 0.442780 0.502869 0.468475 0.443329 0.503052 0.502991 0.444061 0.503296 0.540741 0.444611 0.503540 0.581329 0.445160 0.503754 0.624908 0.445862 0.503967 0.670532 0.446381 0.504211 0.718140 0.447021 0.504425 0.767303 0.447662 0.504608 0.817627 0.448151 0.504852 0.868683 0.448883 0.505066 0.915527 0.449371 0.505249 0.000000 0.458191 0.498657 0.000000 0.458923 0.498901 0.015961 0.459503 0.499115 0.042389 0.459991 0.499298 0.075836 0.460724 0.499573 0.103119 0.461273 0.499817 0.128510 0.461823 0.500000 0.152191 0.462585 0.500275 0.174500 0.463104 0.500519 0.195404 0.463837 0.500732 0.215668 0.464447 0.500977 0.235229 0.464966 0.501221 0.254364 0.465729 0.501434 0.273804 0.466248 0.501678 0.293579 0.466797 0.501923 0.313965 0.467560 0.502136 0.335419 0.468109 0.502380 0.358246 0.468811 0.502625 0.382843 0.469421 0.502838 0.409332 0.469910 0.503052 0.438049 0.470703 0.503265 0.469513 0.471222 0.503540 0.504059 0.471832 0.503754 0.541626 0.472504 0.503937 0.582336 0.473022 0.504211 0.625641 0.473511 0.504425 0.671356 0.474243 0.504608 0.718872 0.474762 0.504852 0.767883 0.475433 0.505066 0.817902 0.475983 0.505249 0.868866 0.476501 0.505493 0.915527 0.477203 0.505676 0.000000 0.488495 0.499084 0.000000 0.489197 0.499298 0.018280 0.489746 0.499573 0.044647 0.490295 0.499817 0.078186 0.491028 0.500000 0.105286 0.491547 0.500275 0.130554 0.492371 0.500519 0.154053 0.492889 0.500732 0.175995 0.493408 0.500977 0.197021 0.494141 0.501221 0.216949 0.494720 0.501434 0.236450 0.495453 0.501678 0.255615 0.496002 0.501923 0.274933 0.496552 0.502136 0.294708 0.497284 0.502380 0.315063 0.497864 0.502625 0.336517 0.498352 0.502838 0.359314 0.499146 0.503052 0.383789 0.499634 0.503265 0.410309 0.500275 0.503510 0.439117 0.500916 0.503754 0.470581 0.501434 0.503937 0.505005 0.501953 0.504181 0.542664 0.502686 0.504395 0.583313 0.503204 0.504608 0.626556 0.503876 0.504852 0.671967 0.504456 0.505066 0.719360 0.504913 0.505249 0.768250 0.505615 0.505493 0.818207 0.506134 0.505646 0.869110 0.506592 0.505890 0.915527 0.507294 0.506104 0.000000 0.521637 0.499573 0.000000 0.522369 0.499817 0.020721 0.522888 0.500000 0.048248 0.523438 0.500275 0.080658 0.524231 0.500488 0.107452 0.524750 0.500732 0.132538 0.525269 0.500977 0.155853 0.526031 0.501221 0.177734 0.526550 0.501434 0.198425 0.527191 0.501678 0.218262 0.527802 0.501923 0.237671 0.528351 0.502106 0.256836 0.529114 0.502350 0.276062 0.529633 0.502625 0.295685 0.530151 0.502838 0.316162 0.530884 0.503052 0.337616 0.531403 0.503265 0.360382 0.531952 0.503510 0.384857 0.532684 0.503754 0.411316 0.533173 0.503937 0.440155 0.533722 0.504181 0.471649 0.534424 0.504395 0.506042 0.534973 0.504608 0.543701 0.535645 0.504852 0.584290 0.536102 0.505035 0.627350 0.536591 0.505249 0.672729 0.537079 0.505493 0.720062 0.537811 0.505646 0.768585 0.538300 0.505890 0.818604 0.538818 0.506073 0.869293 0.539429 0.506287 0.915527 0.539886 0.506500 0.000000 0.557892 0.500000 0.000000 0.558411 0.500275 0.023163 0.559113 0.500488 0.052185 0.559692 0.500732 0.083130 0.560181 0.500977 0.109650 0.560791 0.501221 0.134399 0.561462 0.501434 0.157562 0.561951 0.501678 0.179169 0.562683 0.501892 0.199799 0.563232 0.502106 0.219666 0.563721 0.502350 0.238922 0.564453 0.502625 0.257904 0.564941 0.502808 0.277222 0.565460 0.503052 0.296814 0.566193 0.503265 0.317261 0.566711 0.503510 0.338684 0.567169 0.503754 0.361450 0.567902 0.503937 0.385864 0.568420 0.504181 0.412354 0.568848 0.504364 0.441223 0.569580 0.504608 0.472717 0.570099 0.504822 0.507080 0.570526 0.505035 0.544678 0.571228 0.505249 0.585114 0.571747 0.505463 0.628113 0.572144 0.505646 0.673309 0.572784 0.505890 0.720520 0.573303 0.506073 0.769226 0.573730 0.506287 0.818817 0.574310 0.506500 0.869415 0.574768 0.506653 0.915527 0.575226 0.506836 0.000000 0.596924 0.500488 0.000488 0.597382 0.500732 0.025635 0.598083 0.500977 0.056671 0.598541 0.501190 0.085480 0.599091 0.501404 0.111816 0.599762 0.501648 0.136322 0.600250 0.501892 0.159271 0.600708 0.502106 0.180878 0.601257 0.502319 0.201324 0.601898 0.502594 0.220978 0.602417 0.502808 0.240112 0.603027 0.503021 0.259155 0.603546 0.503265 0.278351 0.604034 0.503510 0.297852 0.604645 0.503754 0.318237 0.605164 0.503937 0.339752 0.605621 0.504150 0.362549 0.606201 0.504364 0.386932 0.606781 0.504608 0.413422 0.607208 0.504822 0.442291 0.607666 0.505035 0.473785 0.608307 0.505249 0.508118 0.608795 0.505463 0.545593 0.609192 0.505615 0.585968 0.609741 0.505859 0.628998 0.610260 0.506042 0.674072 0.610657 0.506287 0.720978 0.611053 0.506470 0.769562 0.611725 0.506653 0.819092 0.612091 0.506836 0.869507 0.612457 0.507019 0.915527 0.612854 0.507233 0.000000 0.638245 0.500946 0.002594 0.638916 0.501190 0.028015 0.639343 0.501404 0.059937 0.639771 0.501648 0.087799 0.640442 0.501892 0.113892 0.640900 0.502106 0.138275 0.641327 0.502319 0.160950 0.641815 0.502594 0.182404 0.642426 0.502808 0.202759 0.642853 0.503021 0.222321 0.643280 0.503265 0.241333 0.643921 0.503510 0.260315 0.644379 0.503723 0.279449 0.644745 0.503937 0.298889 0.645416 0.504150 0.319214 0.645844 0.504364 0.340546 0.646210 0.504608 0.363464 0.646637 0.504822 0.388000 0.647278 0.505005 0.414520 0.647644 0.505249 0.443359 0.648071 0.505463 0.474823 0.648438 0.505615 0.509125 0.649048 0.505859 0.546478 0.649445 0.506042 0.586884 0.649811 0.506256 0.629639 0.650238 0.506470 0.674683 0.650787 0.506653 0.721649 0.651093 0.506836 0.769867 0.651459 0.507019 0.819336 0.651855 0.507233 0.869659 0.652405 0.507416 0.915527 0.652710 0.507568 0.000000 0.681824 0.501404 0.004852 0.682190 0.501617 0.030457 0.682800 0.501862 0.062561 0.683197 0.502106 0.090118 0.683563 0.502319 0.116028 0.683929 0.502563 0.140076 0.684448 0.502777 0.162598 0.684906 0.503021 0.183807 0.685272 0.503265 0.204132 0.685638 0.503510 0.223572 0.686188 0.503723 0.242523 0.686615 0.503937 0.261353 0.687012 0.504150 0.280426 0.687317 0.504364 0.299957 0.687927 0.504608 0.320221 0.688293 0.504791 0.341614 0.688599 0.505005 0.364410 0.688995 0.505249 0.389038 0.689301 0.505432 0.415527 0.689880 0.505615 0.444183 0.690216 0.505859 0.475586 0.690552 0.506042 0.509979 0.690857 0.506256 0.547424 0.691406 0.506470 0.587646 0.691711 0.506622 0.630463 0.692078 0.506836 0.675415 0.692352 0.506989 0.722046 0.692657 0.507202 0.770386 0.693146 0.507416 0.819763 0.693451 0.507568 0.869751 0.693756 0.507721 0.915527 0.694031 0.507904 0.000000 0.726807 0.501862 0.007294 0.727325 0.502106 0.032837 0.727631 0.502289 0.065125 0.727905 0.502563 0.092407 0.728271 0.502777 0.118103 0.728760 0.502991 0.141907 0.729126 0.503265 0.164276 0.729431 0.503479 0.185425 0.729706 0.503693 0.205414 0.730042 0.503937 0.224823 0.730316 0.504120 0.243652 0.730865 0.504364 0.262482 0.731171 0.504608 0.281555 0.731445 0.504791 0.301056 0.731750 0.505005 0.321259 0.732147 0.505219 0.342682 0.732513 0.505432 0.365387 0.732819 0.505615 0.390045 0.733124 0.505829 0.416565 0.733368 0.506042 0.445129 0.733673 0.506256 0.476532 0.734131 0.506470 0.510864 0.734406 0.506622 0.548309 0.734680 0.506836 0.588409 0.734894 0.506989 0.631226 0.735138 0.507202 0.675995 0.735474 0.507385 0.722687 0.735870 0.507568 0.770752 0.736115 0.507721 0.819977 0.736298 0.507904 0.869812 0.736542 0.508057 0.915527 0.736755 0.508240 0.000000 0.773071 0.502289 0.009583 0.773468 0.502563 0.035217 0.773773 0.502777 0.067474 0.774017 0.502991 0.094543 0.774231 0.503235 0.120117 0.774506 0.503479 0.143829 0.774750 0.503693 0.165863 0.775177 0.503906 0.186859 0.775421 0.504120 0.206757 0.775604 0.504364 0.226044 0.775879 0.504578 0.244843 0.776123 0.504761 0.263611 0.776337 0.505005 0.282562 0.776764 0.505219 0.302063 0.776978 0.505402 0.322296 0.777191 0.505615 0.343689 0.777466 0.505829 0.366425 0.777649 0.506042 0.390808 0.777802 0.506256 0.417328 0.778076 0.506470 0.446106 0.778229 0.506622 0.477509 0.778625 0.506805 0.511780 0.778839 0.506989 0.549042 0.779114 0.507202 0.589264 0.779266 0.507385 0.631836 0.779449 0.507568 0.676605 0.779633 0.507721 0.723083 0.779816 0.507904 0.770996 0.779968 0.508057 0.820160 0.780334 0.508240 0.869904 0.780518 0.508362 0.915527 0.780670 0.508545 0.000000 0.820312 0.502777 0.011963 0.820465 0.502991 0.037689 0.820648 0.503235 0.069946 0.820770 0.503448 0.096924 0.820923 0.503693 0.122009 0.821106 0.503906 0.145477 0.821381 0.504120 0.167511 0.821625 0.504333 0.188263 0.821808 0.504578 0.208038 0.821960 0.504761 0.227234 0.822113 0.505005 0.246002 0.822296 0.505219 0.264679 0.822449 0.505402 0.283539 0.822540 0.505585 0.303101 0.822693 0.505829 0.323303 0.822815 0.506042 0.344696 0.823151 0.506256 0.367432 0.823364 0.506470 0.391815 0.823456 0.506592 0.418274 0.823608 0.506805 0.447083 0.823792 0.506989 0.478455 0.823883 0.507202 0.512634 0.824036 0.507355 0.549927 0.824158 0.507568 0.589874 0.824249 0.507721 0.632599 0.824402 0.507904 0.677063 0.824463 0.508057 0.723572 0.824768 0.508240 0.771484 0.825012 0.508362 0.820404 0.825104 0.508545 0.870117 0.825165 0.508698 0.915527 0.825256 0.508850 0.000000 0.867737 0.503235 0.014343 0.867798 0.503448 0.039917 0.867981 0.503662 0.072388 0.868164 0.503906 0.099030 0.868286 0.504120 0.123962 0.868378 0.504333 0.147308 0.868469 0.504578 0.169037 0.868530 0.504761 0.189636 0.868622 0.505005 0.209290 0.868713 0.505188 0.228424 0.868744 0.505402 0.247101 0.868835 0.505585 0.265747 0.868958 0.505798 0.284607 0.868988 0.506042 0.304016 0.869110 0.506226 0.324280 0.869110 0.506439 0.345581 0.869202 0.506592 0.368317 0.869263 0.506805 0.392761 0.869354 0.506989 0.419250 0.869385 0.507172 0.448029 0.869446 0.507355 0.479156 0.869568 0.507538 0.513428 0.869720 0.507721 0.550629 0.869781 0.507904 0.590698 0.869934 0.508057 0.633118 0.869995 0.508240 0.677704 0.870087 0.508362 0.724060 0.870087 0.508545 0.771851 0.870178 0.508667 0.820526 0.870239 0.508850 0.870331 0.870270 0.508972 0.915527 0.870331 0.509125 0.000000 0.915527 0.503662 0.016693 0.915527 0.503906 0.042236 0.915527 0.504089 0.074738 0.915527 0.504333 0.101074 0.915527 0.504547 0.125946 0.915527 0.504761 0.148926 0.915527 0.504974 0.170654 0.915527 0.505188 0.191040 0.915527 0.505402 0.210632 0.915527 0.505585 0.229584 0.915527 0.505798 0.248199 0.915527 0.506012 0.266754 0.915527 0.506226 0.285614 0.915527 0.506439 0.304840 0.915527 0.506592 0.325012 0.915527 0.506775 0.346405 0.915527 0.506989 0.369141 0.915527 0.507172 0.393738 0.915527 0.507355 0.420135 0.915527 0.507538 0.448700 0.915527 0.507721 0.480103 0.915527 0.507904 0.514282 0.915527 0.508057 0.551392 0.915527 0.508240 0.591400 0.915527 0.508362 0.633759 0.915527 0.508545 0.678131 0.915527 0.508667 0.724335 0.915527 0.508820 0.772095 0.915527 0.508942 0.820892 0.915527 0.509125 0.870453 0.915527 0.509247 0.915527 0.915527 0.509369 0.000000 0.000000 0.510223 0.000000 0.000000 0.510345 0.000000 0.000000 0.510498 0.002930 0.000000 0.510590 0.029663 0.000000 0.510773 0.063110 0.000000 0.510895 0.092194 0.000000 0.511047 0.119415 0.000000 0.511200 0.144714 0.000000 0.511322 0.168396 0.000000 0.511505 0.190521 0.000000 0.511658 0.211853 0.000000 0.511871 0.232239 0.000000 0.511993 0.252625 0.000000 0.512207 0.272858 0.000000 0.512360 0.293701 0.000000 0.512543 0.315247 0.000000 0.512756 0.337952 0.000000 0.512878 0.362457 0.000000 0.513092 0.388824 0.000000 0.513306 0.417358 0.000000 0.513489 0.448792 0.000000 0.513702 0.483521 0.000000 0.513855 0.521606 0.000000 0.514099 0.563385 0.000000 0.514282 0.608215 0.000000 0.514526 0.656036 0.000000 0.514740 0.705933 0.000000 0.514923 0.757965 0.000000 0.515137 0.811249 0.000000 0.515381 0.865570 0.000000 0.515564 0.915527 0.000000 0.515778 0.000000 0.000000 0.510498 0.000000 0.000000 0.510590 0.000000 0.000000 0.510773 0.004303 0.000000 0.510895 0.031158 0.000000 0.511047 0.064850 0.000000 0.511169 0.093811 0.000000 0.511322 0.120697 0.000000 0.511505 0.145966 0.000000 0.511658 0.169373 0.000000 0.511871 0.191620 0.000000 0.511993 0.212646 0.000519 0.512207 0.233215 0.001556 0.512360 0.253571 0.002686 0.512543 0.273773 0.003693 0.512756 0.294617 0.004944 0.512878 0.316162 0.006195 0.513092 0.338867 0.007446 0.513306 0.363190 0.008698 0.513489 0.389618 0.009979 0.513702 0.418304 0.011292 0.513855 0.449768 0.012604 0.514069 0.484375 0.013947 0.514282 0.522461 0.015289 0.514496 0.564209 0.016693 0.514740 0.609131 0.018188 0.514893 0.656677 0.019653 0.515137 0.706635 0.021057 0.515350 0.758362 0.022461 0.515564 0.811493 0.023987 0.515778 0.865692 0.025421 0.515991 0.915527 0.027039 0.516235 0.000000 0.017212 0.510773 0.000000 0.018127 0.510895 0.000000 0.019012 0.511047 0.005737 0.020020 0.511169 0.032562 0.021057 0.511322 0.066315 0.022156 0.511505 0.095215 0.023254 0.511658 0.122040 0.024353 0.511871 0.147217 0.025360 0.511993 0.170593 0.026520 0.512177 0.192657 0.027679 0.512360 0.213684 0.028870 0.512543 0.234253 0.030121 0.512756 0.254303 0.031311 0.512878 0.274750 0.032562 0.513092 0.295349 0.033844 0.513275 0.317108 0.035156 0.513489 0.339844 0.036438 0.513672 0.364136 0.037811 0.513855 0.390503 0.039124 0.514069 0.419281 0.040436 0.514282 0.450806 0.041809 0.514496 0.485321 0.043182 0.514740 0.523346 0.044525 0.514893 0.565033 0.046082 0.515137 0.609772 0.048676 0.515350 0.657410 0.051270 0.515533 0.707153 0.054108 0.515778 0.758881 0.056702 0.515991 0.811829 0.059082 0.516205 0.865845 0.060669 0.516479 0.915527 0.062195 0.516663 0.000000 0.047180 0.511017 0.000000 0.048615 0.511169 0.000000 0.050415 0.511322 0.007294 0.052277 0.511505 0.034271 0.054291 0.511658 0.068085 0.056244 0.511841 0.096832 0.058105 0.511993 0.123627 0.059570 0.512177 0.148499 0.060822 0.512360 0.171875 0.062073 0.512512 0.193787 0.063477 0.512726 0.214752 0.064758 0.512878 0.235260 0.066040 0.513092 0.255310 0.067352 0.513275 0.275635 0.068634 0.513489 0.296326 0.070068 0.513672 0.317841 0.071472 0.513855 0.340546 0.072876 0.514038 0.365082 0.074341 0.514252 0.391510 0.075806 0.514496 0.420258 0.077240 0.514740 0.451813 0.078705 0.514893 0.486298 0.080170 0.515137 0.524384 0.081665 0.515350 0.566010 0.083130 0.515533 0.610748 0.084656 0.515778 0.658112 0.086182 0.515961 0.707886 0.087646 0.516205 0.759399 0.089172 0.516479 0.812286 0.090729 0.516663 0.865997 0.092255 0.516876 0.915527 0.093750 0.517120 0.000000 0.083618 0.511322 0.000000 0.084778 0.511505 0.000000 0.085907 0.511658 0.008759 0.086914 0.511841 0.035980 0.087982 0.511993 0.069794 0.089203 0.512177 0.098480 0.090424 0.512329 0.125061 0.091553 0.512512 0.149841 0.092712 0.512726 0.173126 0.093933 0.512878 0.194977 0.095184 0.513062 0.215851 0.096497 0.513275 0.236298 0.097809 0.513489 0.256348 0.098877 0.513672 0.276489 0.100220 0.513855 0.297272 0.101562 0.514038 0.318848 0.102905 0.514252 0.341553 0.104248 0.514465 0.366119 0.105621 0.514709 0.392517 0.106995 0.514893 0.421112 0.108368 0.515137 0.452667 0.109558 0.515320 0.487335 0.110931 0.515533 0.525421 0.112335 0.515747 0.567047 0.113739 0.515961 0.611664 0.115143 0.516205 0.659027 0.116547 0.516449 0.708588 0.117981 0.516632 0.759796 0.119385 0.516846 0.812531 0.120789 0.517120 0.866119 0.122223 0.517334 0.915527 0.123505 0.517548 0.000000 0.114532 0.511658 0.000000 0.115417 0.511841 0.000000 0.116547 0.511993 0.010498 0.117645 0.512177 0.037720 0.118561 0.512329 0.071686 0.119720 0.512512 0.100220 0.120819 0.512726 0.126587 0.121857 0.512878 0.151184 0.122955 0.513062 0.174347 0.124146 0.513245 0.196136 0.125397 0.513489 0.216949 0.126404 0.513641 0.237335 0.127625 0.513855 0.257355 0.128845 0.514038 0.277466 0.130096 0.514252 0.298279 0.131134 0.514465 0.319824 0.132416 0.514709 0.342590 0.133636 0.514862 0.367126 0.134918 0.515137 0.393494 0.136200 0.515320 0.422150 0.137299 0.515533 0.453644 0.138550 0.515747 0.488373 0.139801 0.515961 0.526428 0.141083 0.516174 0.567993 0.142395 0.516449 0.612579 0.143616 0.516632 0.659790 0.144775 0.516846 0.709198 0.146057 0.517120 0.760437 0.147339 0.517334 0.812897 0.148682 0.517548 0.866425 0.149902 0.517792 0.915527 0.151031 0.518036 0.000000 0.143219 0.511993 0.000000 0.144257 0.512177 0.000000 0.145264 0.512329 0.012390 0.146088 0.512512 0.039551 0.147156 0.512726 0.073608 0.148010 0.512878 0.101868 0.149078 0.513062 0.128235 0.150208 0.513245 0.152740 0.151062 0.513458 0.175629 0.152191 0.513641 0.197327 0.153320 0.513855 0.218109 0.154205 0.514038 0.238434 0.155365 0.514221 0.258453 0.156494 0.514465 0.278534 0.157532 0.514709 0.299072 0.158539 0.514862 0.320801 0.159729 0.515106 0.343597 0.160858 0.515320 0.367950 0.161835 0.515533 0.394379 0.162994 0.515747 0.423157 0.164185 0.515930 0.454712 0.165161 0.516174 0.489410 0.166321 0.516449 0.527405 0.167511 0.516632 0.568787 0.168579 0.516846 0.613342 0.169647 0.517090 0.660461 0.170837 0.517303 0.709808 0.172028 0.517517 0.760834 0.173035 0.517792 0.813385 0.174164 0.518005 0.866669 0.175354 0.518219 0.915527 0.176453 0.518463 0.000000 0.169739 0.512329 0.000000 0.170685 0.512512 0.000000 0.171448 0.512695 0.014313 0.172424 0.512848 0.041382 0.173401 0.513062 0.075653 0.174164 0.513245 0.103729 0.175201 0.513458 0.129761 0.176025 0.513641 0.154144 0.177032 0.513824 0.176941 0.178040 0.514038 0.198547 0.178864 0.514221 0.219208 0.179932 0.514465 0.239349 0.180756 0.514679 0.259491 0.181793 0.514862 0.279602 0.182831 0.515106 0.300110 0.183716 0.515289 0.321686 0.184753 0.515533 0.344635 0.185638 0.515717 0.368988 0.186676 0.515930 0.395416 0.187744 0.516174 0.424225 0.188660 0.516418 0.455780 0.189728 0.516602 0.490356 0.190765 0.516846 0.528351 0.191681 0.517090 0.569794 0.192780 0.517303 0.614288 0.193878 0.517517 0.661377 0.194733 0.517792 0.710480 0.195801 0.518005 0.761353 0.196686 0.518219 0.813629 0.197754 0.518463 0.866791 0.198853 0.518707 0.915527 0.199707 0.518921 0.000000 0.194275 0.512695 0.000000 0.195038 0.512848 0.000000 0.195892 0.513062 0.016174 0.196594 0.513214 0.043304 0.197540 0.513458 0.077637 0.198273 0.513641 0.105438 0.199158 0.513824 0.131500 0.200043 0.514038 0.155609 0.200867 0.514221 0.178314 0.201721 0.514465 0.199799 0.202576 0.514679 0.220428 0.203522 0.514862 0.240509 0.204254 0.515076 0.260498 0.205261 0.515289 0.280548 0.206085 0.515503 0.301178 0.207031 0.515717 0.322662 0.207825 0.515930 0.345642 0.208801 0.516174 0.370056 0.209808 0.516418 0.396484 0.210541 0.516602 0.425354 0.211548 0.516846 0.456879 0.212372 0.517090 0.491364 0.213379 0.517303 0.529358 0.214172 0.517517 0.570862 0.215179 0.517792 0.615234 0.216156 0.518005 0.662018 0.216949 0.518219 0.711243 0.217926 0.518463 0.761932 0.218750 0.518707 0.813934 0.219757 0.518921 0.866913 0.220551 0.519135 0.915527 0.221466 0.519379 0.000000 0.216949 0.513062 0.000000 0.217804 0.513214 0.000000 0.218445 0.513428 0.018097 0.219299 0.513641 0.045227 0.219971 0.513824 0.079681 0.220825 0.514008 0.107361 0.221466 0.514221 0.133087 0.222443 0.514465 0.157257 0.223083 0.514679 0.179810 0.223846 0.514862 0.201050 0.224670 0.515076 0.221588 0.225525 0.515289 0.241638 0.226257 0.515503 0.261444 0.227173 0.515686 0.281616 0.227875 0.515930 0.302216 0.228821 0.516174 0.323700 0.229492 0.516388 0.346649 0.230438 0.516602 0.371124 0.231171 0.516846 0.397552 0.232086 0.517059 0.426422 0.232788 0.517273 0.457947 0.233765 0.517517 0.492462 0.234467 0.517761 0.530457 0.235413 0.517975 0.571838 0.236115 0.518188 0.616058 0.237061 0.518433 0.662933 0.237793 0.518707 0.711792 0.238708 0.518921 0.762329 0.239441 0.519135 0.814209 0.240356 0.519379 0.867096 0.241089 0.519623 0.915527 0.241974 0.519836 0.000000 0.238464 0.513428 0.000000 0.239044 0.513641 0.000000 0.239899 0.513794 0.020264 0.240479 0.514008 0.048523 0.241089 0.514191 0.081757 0.241913 0.514435 0.109314 0.242523 0.514648 0.134918 0.243378 0.514862 0.158722 0.243988 0.515076 0.181183 0.244843 0.515289 0.202362 0.245514 0.515503 0.222809 0.246246 0.515686 0.242706 0.247009 0.515930 0.262512 0.247742 0.516144 0.282684 0.248505 0.516388 0.303314 0.249237 0.516602 0.324799 0.250000 0.516846 0.347656 0.250824 0.517059 0.372223 0.251556 0.517273 0.398682 0.252197 0.517517 0.427521 0.253143 0.517761 0.459076 0.253784 0.517975 0.493530 0.254669 0.518188 0.531494 0.255310 0.518433 0.572876 0.256226 0.518677 0.617004 0.256866 0.518890 0.663757 0.257751 0.519135 0.712524 0.258423 0.519379 0.762970 0.259277 0.519623 0.814758 0.259949 0.519836 0.867188 0.260834 0.520081 0.915527 0.261475 0.520294 0.000000 0.258728 0.513794 0.000000 0.259491 0.514008 0.000000 0.260040 0.514191 0.022308 0.260834 0.514435 0.052094 0.261414 0.514648 0.083740 0.261993 0.514832 0.111298 0.262787 0.515076 0.136505 0.263367 0.515289 0.160278 0.264160 0.515503 0.182556 0.264771 0.515686 0.203827 0.265503 0.515900 0.224060 0.266174 0.516144 0.243896 0.266846 0.516388 0.263672 0.267578 0.516602 0.283630 0.268219 0.516846 0.304382 0.269073 0.517059 0.325867 0.269714 0.517273 0.348694 0.270508 0.517517 0.373291 0.271118 0.517761 0.399750 0.271942 0.517975 0.428589 0.272583 0.518188 0.459961 0.273193 0.518433 0.494629 0.274048 0.518677 0.532593 0.274689 0.518890 0.573730 0.275482 0.519135 0.617920 0.276123 0.519379 0.664459 0.277008 0.519592 0.713135 0.277618 0.519806 0.763428 0.278381 0.520050 0.815063 0.279022 0.520294 0.867340 0.279663 0.520508 0.915527 0.280518 0.520782 0.000000 0.278656 0.514191 0.000000 0.279175 0.514435 0.000000 0.279694 0.514648 0.024414 0.280487 0.514832 0.055847 0.281006 0.515045 0.085968 0.281769 0.515259 0.113068 0.282349 0.515503 0.138367 0.282959 0.515686 0.161926 0.283691 0.515900 0.183929 0.284241 0.516144 0.205109 0.284943 0.516388 0.225220 0.285614 0.516571 0.245148 0.286194 0.516815 0.264771 0.286987 0.517029 0.284790 0.287567 0.517273 0.305481 0.288361 0.517517 0.326965 0.288940 0.517731 0.349792 0.289764 0.517944 0.374359 0.290344 0.518188 0.400848 0.290924 0.518402 0.429504 0.291718 0.518677 0.460999 0.292328 0.518860 0.495697 0.293152 0.519135 0.533691 0.293732 0.519379 0.574738 0.294373 0.519592 0.618896 0.295105 0.519806 0.665314 0.295715 0.520050 0.713898 0.296509 0.520294 0.764038 0.297089 0.520508 0.815308 0.297821 0.520782 0.867493 0.298492 0.520966 0.915527 0.299072 0.521210 0.000000 0.298187 0.514618 0.000000 0.298676 0.514832 0.000671 0.299316 0.515045 0.026703 0.299957 0.515259 0.059479 0.300507 0.515503 0.088013 0.301208 0.515686 0.115082 0.301758 0.515900 0.140015 0.302277 0.516113 0.163422 0.303040 0.516388 0.185577 0.303619 0.516571 0.206421 0.304321 0.516815 0.226562 0.304932 0.517029 0.246216 0.305481 0.517273 0.265930 0.306274 0.517517 0.285858 0.306824 0.517731 0.306458 0.307434 0.517944 0.328033 0.308136 0.518188 0.350861 0.308746 0.518402 0.375275 0.309479 0.518646 0.401733 0.310089 0.518860 0.430603 0.310822 0.519135 0.462128 0.311401 0.519348 0.496857 0.312012 0.519562 0.534607 0.312775 0.519806 0.575806 0.313354 0.520050 0.619629 0.314026 0.520294 0.666138 0.314728 0.520508 0.714386 0.315277 0.520782 0.764496 0.316071 0.520966 0.815735 0.316650 0.521210 0.867737 0.317383 0.521454 0.915527 0.317932 0.521667 0.000000 0.317780 0.515045 0.000000 0.318329 0.515259 0.002716 0.318909 0.515472 0.028870 0.319550 0.515686 0.061768 0.320068 0.515900 0.090393 0.320770 0.516113 0.117096 0.321350 0.516388 0.141846 0.321869 0.516571 0.165161 0.322632 0.516815 0.186981 0.323151 0.517029 0.207733 0.323914 0.517242 0.227722 0.324432 0.517487 0.247467 0.324982 0.517700 0.267059 0.325745 0.517944 0.286987 0.326294 0.518158 0.307648 0.326996 0.518402 0.329163 0.327637 0.518646 0.351959 0.328186 0.518860 0.376343 0.328949 0.519135 0.402863 0.329498 0.519348 0.431732 0.330048 0.519562 0.463226 0.330811 0.519806 0.497955 0.331360 0.520020 0.535675 0.332153 0.520264 0.576843 0.332672 0.520477 0.620575 0.333221 0.520752 0.666809 0.333984 0.520966 0.715210 0.334534 0.521179 0.764923 0.335297 0.521454 0.816101 0.335876 0.521667 0.867981 0.336426 0.521881 0.915527 0.337189 0.522125 0.000000 0.337891 0.515472 0.000000 0.338593 0.515686 0.004761 0.339111 0.515869 0.031219 0.339630 0.516113 0.064117 0.340363 0.516357 0.092529 0.340881 0.516541 0.119019 0.341400 0.516785 0.143738 0.342163 0.517029 0.166687 0.342682 0.517242 0.188354 0.343353 0.517487 0.209015 0.343933 0.517700 0.229126 0.344513 0.517944 0.248718 0.345215 0.518158 0.268188 0.345795 0.518402 0.288147 0.346344 0.518616 0.308685 0.347076 0.518860 0.330231 0.347626 0.519135 0.353088 0.348297 0.519348 0.377502 0.348938 0.519562 0.403992 0.349457 0.519806 0.432831 0.350220 0.520020 0.464355 0.350769 0.520264 0.498871 0.351471 0.520477 0.536682 0.352081 0.520752 0.577667 0.352600 0.520966 0.621552 0.353363 0.521179 0.667664 0.353943 0.521454 0.715729 0.354431 0.521667 0.765564 0.355225 0.521851 0.816406 0.355743 0.522125 0.868164 0.356476 0.522339 0.915527 0.357056 0.522552 0.000000 0.358978 0.515869 0.000000 0.359467 0.516113 0.006989 0.360199 0.516357 0.033417 0.360718 0.516541 0.066467 0.361420 0.516785 0.094666 0.361938 0.517029 0.121063 0.362457 0.517242 0.145355 0.363251 0.517487 0.168427 0.363739 0.517700 0.190033 0.364319 0.517944 0.210388 0.365021 0.518158 0.230438 0.365570 0.518402 0.249786 0.366211 0.518616 0.269379 0.366821 0.518860 0.289246 0.367401 0.519104 0.309845 0.368134 0.519348 0.331360 0.368683 0.519531 0.354187 0.369232 0.519806 0.378571 0.369965 0.520020 0.405060 0.370544 0.520264 0.433990 0.371246 0.520477 0.465485 0.371857 0.520752 0.499939 0.372345 0.520966 0.537811 0.373138 0.521179 0.578674 0.373627 0.521423 0.622345 0.374298 0.521667 0.668427 0.374939 0.521851 0.716461 0.375458 0.522125 0.765930 0.376129 0.522339 0.816650 0.376740 0.522552 0.868286 0.377258 0.522766 0.915527 0.378021 0.523010 0.000000 0.381256 0.516357 0.000000 0.381805 0.516541 0.009277 0.382294 0.516785 0.035828 0.383057 0.516998 0.069031 0.383545 0.517212 0.097015 0.384155 0.517456 0.122955 0.384857 0.517700 0.147278 0.385376 0.517914 0.169952 0.386139 0.518158 0.191437 0.386627 0.518402 0.211914 0.387177 0.518616 0.231689 0.387909 0.518860 0.251068 0.388489 0.519104 0.270508 0.388977 0.519318 0.290375 0.389801 0.519531 0.310760 0.390289 0.519806 0.332428 0.391083 0.520020 0.355286 0.391602 0.520233 0.379700 0.392120 0.520477 0.406189 0.392914 0.520721 0.435089 0.393463 0.520935 0.466553 0.394012 0.521149 0.501038 0.394775 0.521423 0.538879 0.395294 0.521667 0.579681 0.395996 0.521851 0.623230 0.396545 0.522095 0.669189 0.397095 0.522339 0.716980 0.397797 0.522522 0.766479 0.398346 0.522766 0.817169 0.398834 0.522980 0.868439 0.399628 0.523193 0.915527 0.400116 0.523438 0.000000 0.404968 0.516785 0.000000 0.405457 0.516998 0.011658 0.406219 0.517212 0.038055 0.406708 0.517456 0.071442 0.407410 0.517700 0.099182 0.408020 0.517914 0.125000 0.408539 0.518158 0.149048 0.409302 0.518372 0.171600 0.409821 0.518616 0.192841 0.410370 0.518829 0.213196 0.411102 0.519073 0.232941 0.411652 0.519318 0.252319 0.412323 0.519531 0.271698 0.412964 0.519806 0.291534 0.413483 0.520020 0.311890 0.414276 0.520233 0.333405 0.414795 0.520477 0.356262 0.415314 0.520721 0.380829 0.416077 0.520935 0.407318 0.416626 0.521149 0.436188 0.417328 0.521423 0.467712 0.417938 0.521637 0.502136 0.418488 0.521820 0.539948 0.419250 0.522095 0.580658 0.419739 0.522339 0.624146 0.420349 0.522522 0.669952 0.421021 0.522766 0.717712 0.421539 0.522980 0.766968 0.422058 0.523163 0.817413 0.422791 0.523438 0.868561 0.423279 0.523621 0.915527 0.423981 0.523834 0.000000 0.430695 0.517212 0.000000 0.431244 0.517456 0.013885 0.431763 0.517700 0.040466 0.432495 0.517914 0.073792 0.433044 0.518158 0.101288 0.433563 0.518372 0.127014 0.434357 0.518616 0.150818 0.434845 0.518829 0.173248 0.435577 0.519073 0.194244 0.436188 0.519287 0.214539 0.436707 0.519531 0.234192 0.437469 0.519775 0.253571 0.438019 0.519989 0.272827 0.438538 0.520233 0.292633 0.439331 0.520477 0.313019 0.439850 0.520691 0.334503 0.440582 0.520935 0.357330 0.441162 0.521149 0.381866 0.441681 0.521393 0.408417 0.442444 0.521637 0.437286 0.442993 0.521820 0.468811 0.443542 0.522095 0.503265 0.444275 0.522308 0.540985 0.444794 0.522522 0.581635 0.445404 0.522736 0.625092 0.446045 0.522980 0.670624 0.446625 0.523163 0.718231 0.447327 0.523438 0.767334 0.447845 0.523590 0.817657 0.448364 0.523804 0.868744 0.449036 0.524048 0.915527 0.449585 0.524261 0.000000 0.458374 0.517670 0.000000 0.459106 0.517883 0.016327 0.459656 0.518127 0.042755 0.460266 0.518341 0.076324 0.460968 0.518585 0.103668 0.461487 0.518829 0.129059 0.462250 0.519073 0.152679 0.462799 0.519287 0.174744 0.463318 0.519531 0.195892 0.464111 0.519775 0.215851 0.464600 0.519989 0.235443 0.465240 0.520203 0.254700 0.465881 0.520477 0.274017 0.466461 0.520691 0.293762 0.467133 0.520905 0.314087 0.467773 0.521149 0.335571 0.468292 0.521393 0.358459 0.469086 0.521637 0.383026 0.469574 0.521820 0.409515 0.470154 0.522064 0.438416 0.470886 0.522308 0.469788 0.471405 0.522491 0.504303 0.472168 0.522736 0.541840 0.472656 0.522949 0.582489 0.473206 0.523163 0.625793 0.473907 0.523438 0.671448 0.474457 0.523590 0.718933 0.474915 0.523804 0.767975 0.475708 0.524048 0.817963 0.476135 0.524261 0.868927 0.476654 0.524445 0.915527 0.477386 0.524658 0.000000 0.488892 0.518127 0.000000 0.489380 0.518341 0.018768 0.489960 0.518585 0.045197 0.490692 0.518829 0.078735 0.491241 0.519043 0.105774 0.491730 0.519257 0.130859 0.492554 0.519531 0.154297 0.493042 0.519745 0.176422 0.493774 0.519989 0.197266 0.494354 0.520203 0.217163 0.494904 0.520477 0.236664 0.495667 0.520691 0.255951 0.496185 0.520905 0.275116 0.496735 0.521149 0.294891 0.497467 0.521393 0.315247 0.498016 0.521606 0.336670 0.498596 0.521790 0.359467 0.499298 0.522064 0.384094 0.499817 0.522308 0.410583 0.500610 0.522491 0.439423 0.501129 0.522736 0.470856 0.501617 0.522949 0.505310 0.502380 0.523163 0.542847 0.502869 0.523407 0.583435 0.503357 0.523590 0.626709 0.504089 0.523804 0.672119 0.504608 0.524048 0.719452 0.505066 0.524231 0.768341 0.505798 0.524445 0.818268 0.506256 0.524658 0.869110 0.506805 0.524841 0.915527 0.507477 0.525085 0.000000 0.521820 0.518585 0.000000 0.522552 0.518829 0.021271 0.523102 0.519043 0.048889 0.523743 0.519257 0.081146 0.524384 0.519501 0.108002 0.524902 0.519745 0.132874 0.525513 0.519958 0.156158 0.526184 0.520203 0.177979 0.526764 0.520447 0.198608 0.527496 0.520660 0.218567 0.528046 0.520874 0.237885 0.528534 0.521149 0.257141 0.529297 0.521362 0.276276 0.529816 0.521606 0.295990 0.530518 0.521790 0.316345 0.531097 0.522034 0.337769 0.531616 0.522278 0.360565 0.532257 0.522491 0.385193 0.532867 0.522705 0.411652 0.533386 0.522949 0.440338 0.534119 0.523163 0.471832 0.534607 0.523407 0.506287 0.535095 0.523590 0.543854 0.535828 0.523804 0.584442 0.536316 0.524048 0.627594 0.536804 0.524231 0.672852 0.537415 0.524445 0.720154 0.537994 0.524628 0.768768 0.538422 0.524841 0.818665 0.539093 0.525085 0.869324 0.539642 0.525208 0.915527 0.540039 0.525421 0.000000 0.558105 0.519043 0.000000 0.558563 0.519257 0.023590 0.559326 0.519501 0.053131 0.559845 0.519745 0.083466 0.560364 0.519958 0.110138 0.561127 0.520203 0.134796 0.561615 0.520447 0.157776 0.562164 0.520660 0.179657 0.562866 0.520874 0.200104 0.563385 0.521149 0.220001 0.563995 0.521362 0.239105 0.564606 0.521606 0.258209 0.565125 0.521790 0.277405 0.565674 0.522034 0.297089 0.566376 0.522278 0.317383 0.566864 0.522491 0.338837 0.567413 0.522705 0.361633 0.568085 0.522919 0.386169 0.568573 0.523163 0.412628 0.569153 0.523407 0.441376 0.569763 0.523590 0.472839 0.570221 0.523804 0.507233 0.570892 0.524048 0.544861 0.571411 0.524231 0.585388 0.571869 0.524445 0.628235 0.572327 0.524628 0.673462 0.572998 0.524841 0.720581 0.573425 0.525085 0.769318 0.573883 0.525208 0.818878 0.574524 0.525421 0.869415 0.574951 0.525635 0.915527 0.575378 0.525818 0.000000 0.597107 0.519501 0.000793 0.597565 0.519714 0.026062 0.598236 0.519958 0.057373 0.598755 0.520203 0.085907 0.599243 0.520447 0.112152 0.599915 0.520660 0.136627 0.600433 0.520874 0.159607 0.600861 0.521118 0.181122 0.601624 0.521332 0.201599 0.602112 0.521576 0.221252 0.602539 0.521790 0.240326 0.603271 0.522034 0.259491 0.603699 0.522247 0.278534 0.604187 0.522491 0.298187 0.604889 0.522705 0.318481 0.605347 0.522919 0.339905 0.605804 0.523132 0.362701 0.606476 0.523376 0.387085 0.606903 0.523590 0.413605 0.607391 0.523804 0.442444 0.607819 0.524017 0.473907 0.608521 0.524200 0.508240 0.608917 0.524445 0.545868 0.609344 0.524628 0.586060 0.609955 0.524841 0.629120 0.610413 0.525085 0.674194 0.610809 0.525208 0.721161 0.611328 0.525421 0.769592 0.611847 0.525635 0.819153 0.612274 0.525787 0.869537 0.612640 0.526031 0.915527 0.613098 0.526154 0.000000 0.638550 0.519958 0.002991 0.639069 0.520172 0.028534 0.639526 0.520416 0.060455 0.639984 0.520630 0.088226 0.640594 0.520874 0.114349 0.641052 0.521118 0.138519 0.641479 0.521332 0.161316 0.642059 0.521576 0.182587 0.642548 0.521790 0.202942 0.643005 0.522003 0.222534 0.643433 0.522247 0.241547 0.644073 0.522491 0.260590 0.644501 0.522675 0.279663 0.644928 0.522919 0.299042 0.645538 0.523132 0.319489 0.645996 0.523376 0.340912 0.646423 0.523560 0.363739 0.646942 0.523773 0.388153 0.647430 0.524017 0.414642 0.647827 0.524200 0.443481 0.648163 0.524445 0.474945 0.648682 0.524628 0.509277 0.649170 0.524841 0.546600 0.649567 0.525055 0.587006 0.649933 0.525208 0.629822 0.650482 0.525421 0.674957 0.650879 0.525604 0.721680 0.651276 0.525787 0.769928 0.651581 0.526031 0.819397 0.652130 0.526154 0.869659 0.652496 0.526367 0.915527 0.652802 0.526520 0.000000 0.681946 0.520416 0.005310 0.682312 0.520630 0.030884 0.682922 0.520874 0.062958 0.683289 0.521118 0.090637 0.683716 0.521332 0.116333 0.684052 0.521576 0.140472 0.684662 0.521790 0.162994 0.685059 0.522003 0.184082 0.685425 0.522247 0.204315 0.685822 0.522461 0.223785 0.686432 0.522675 0.242706 0.686737 0.522919 0.261566 0.687134 0.523132 0.280701 0.687439 0.523376 0.300110 0.688080 0.523560 0.320557 0.688416 0.523773 0.341827 0.688812 0.524017 0.364685 0.689117 0.524200 0.389160 0.689484 0.524445 0.415649 0.690002 0.524628 0.444489 0.690338 0.524841 0.475769 0.690704 0.525055 0.510223 0.690979 0.525208 0.547546 0.691559 0.525421 0.587891 0.691803 0.525604 0.630554 0.692139 0.525787 0.675476 0.692474 0.526031 0.722137 0.692902 0.526154 0.770447 0.693298 0.526337 0.819824 0.693542 0.526520 0.869751 0.693817 0.526703 0.915527 0.694153 0.526855 0.000000 0.726959 0.520874 0.007660 0.727448 0.521088 0.033325 0.727753 0.521301 0.065491 0.728058 0.521576 0.092896 0.728363 0.521790 0.118439 0.728943 0.522003 0.142303 0.729187 0.522247 0.164551 0.729523 0.522461 0.185699 0.729858 0.522675 0.205597 0.730164 0.522919 0.225037 0.730621 0.523102 0.243866 0.730957 0.523376 0.262726 0.731262 0.523560 0.281799 0.731567 0.523773 0.301178 0.731842 0.524017 0.321411 0.732269 0.524200 0.342834 0.732666 0.524414 0.365631 0.732910 0.524628 0.390198 0.733185 0.524811 0.416687 0.733459 0.525055 0.445343 0.733887 0.525208 0.476746 0.734253 0.525421 0.510986 0.734497 0.525604 0.548492 0.734772 0.525787 0.588531 0.734985 0.526001 0.631378 0.735229 0.526154 0.676178 0.735657 0.526337 0.722809 0.735962 0.526520 0.770813 0.736176 0.526703 0.820007 0.736389 0.526855 0.869873 0.736633 0.527039 0.915527 0.736816 0.527161 0.000000 0.773193 0.521301 0.010071 0.773590 0.521576 0.035767 0.773834 0.521790 0.068024 0.774109 0.521973 0.095123 0.774323 0.522247 0.120453 0.774567 0.522461 0.144043 0.774902 0.522644 0.166260 0.775269 0.522919 0.187103 0.775482 0.523102 0.207031 0.775696 0.523346 0.226257 0.775940 0.523529 0.245026 0.776154 0.523773 0.263824 0.776398 0.523987 0.282867 0.776825 0.524200 0.302185 0.777069 0.524414 0.322418 0.777283 0.524628 0.343842 0.777527 0.524811 0.366577 0.777710 0.525024 0.391083 0.777924 0.525208 0.417542 0.778137 0.525421 0.446259 0.778381 0.525604 0.477692 0.778778 0.525757 0.511902 0.778931 0.526001 0.549255 0.779144 0.526154 0.589417 0.779297 0.526337 0.631958 0.779480 0.526520 0.676666 0.779663 0.526703 0.723175 0.779816 0.526855 0.771118 0.780151 0.527008 0.820190 0.780457 0.527161 0.869995 0.780579 0.527344 0.915527 0.780792 0.527466 0.000000 0.820374 0.521759 0.012482 0.820496 0.521973 0.038025 0.820679 0.522247 0.070465 0.820831 0.522461 0.097290 0.820984 0.522644 0.122498 0.821167 0.522888 0.145905 0.821472 0.523102 0.167816 0.821716 0.523346 0.188477 0.821869 0.523529 0.208405 0.822021 0.523773 0.227386 0.822174 0.523987 0.246155 0.822357 0.524200 0.264832 0.822479 0.524414 0.283691 0.822601 0.524597 0.303223 0.822754 0.524811 0.323456 0.822906 0.525024 0.344818 0.823273 0.525208 0.367584 0.823456 0.525391 0.391937 0.823578 0.525574 0.418396 0.823700 0.525757 0.447235 0.823792 0.526001 0.478607 0.823944 0.526123 0.512848 0.824066 0.526306 0.550049 0.824219 0.526520 0.589966 0.824310 0.526703 0.632690 0.824463 0.526825 0.677185 0.824615 0.527008 0.723633 0.824860 0.527130 0.771545 0.825012 0.527344 0.820404 0.825104 0.527466 0.870178 0.825195 0.527618 0.915527 0.825287 0.527740 0.000000 0.867767 0.522217 0.014709 0.867920 0.522461 0.040436 0.867981 0.522644 0.072754 0.868164 0.522888 0.099518 0.868347 0.523102 0.124359 0.868439 0.523315 0.147522 0.868469 0.523529 0.169312 0.868561 0.523773 0.190033 0.868652 0.523956 0.209595 0.868713 0.524170 0.228577 0.868774 0.524384 0.247253 0.868896 0.524597 0.265900 0.868958 0.524780 0.284729 0.869049 0.525024 0.304230 0.869110 0.525208 0.324432 0.869171 0.525391 0.345795 0.869202 0.525574 0.368530 0.869293 0.525757 0.392883 0.869354 0.525970 0.419373 0.869446 0.526123 0.448181 0.869446 0.526306 0.479340 0.869568 0.526489 0.513550 0.869781 0.526672 0.550873 0.869873 0.526825 0.590820 0.869934 0.527008 0.633179 0.869995 0.527130 0.677795 0.870087 0.527344 0.724091 0.870148 0.527466 0.771881 0.870178 0.527588 0.820648 0.870239 0.527740 0.870331 0.870270 0.527893 0.915527 0.870331 0.528015 0.000000 0.915527 0.522644 0.017120 0.915527 0.522888 0.042633 0.915527 0.523102 0.075165 0.915527 0.523315 0.101624 0.915527 0.523499 0.126221 0.915527 0.523773 0.149323 0.915527 0.523956 0.170868 0.915527 0.524170 0.191345 0.915527 0.524384 0.210876 0.915527 0.524567 0.229706 0.915527 0.524780 0.248322 0.915527 0.524994 0.266907 0.915527 0.525208 0.285706 0.915527 0.525391 0.305176 0.915527 0.525574 0.325195 0.915527 0.525757 0.346649 0.915527 0.525970 0.369324 0.915527 0.526093 0.393829 0.915527 0.526306 0.420258 0.915527 0.526489 0.448822 0.915527 0.526672 0.480194 0.915527 0.526825 0.514404 0.915527 0.527008 0.551514 0.915527 0.527130 0.591614 0.915527 0.527313 0.633911 0.915527 0.527466 0.678192 0.915527 0.527588 0.724457 0.915527 0.527740 0.772156 0.915527 0.527893 0.820892 0.915527 0.528015 0.870453 0.915527 0.528137 0.915527 0.915527 0.528290 0.000000 0.000000 0.530426 0.000000 0.000000 0.530579 0.000000 0.000000 0.530731 0.003113 0.000000 0.530853 0.029907 0.000000 0.530975 0.063324 0.000000 0.531097 0.092529 0.000000 0.531281 0.119629 0.000000 0.531403 0.144928 0.000000 0.531586 0.168518 0.000000 0.531708 0.190674 0.000000 0.531891 0.212006 0.000000 0.532043 0.232513 0.000000 0.532257 0.252777 0.000000 0.532379 0.273010 0.000000 0.532562 0.293854 0.000000 0.532715 0.315399 0.000000 0.532959 0.338104 0.000000 0.533112 0.362640 0.000000 0.533356 0.388947 0.000000 0.533478 0.417603 0.000000 0.533691 0.449005 0.000000 0.533905 0.483673 0.000000 0.534088 0.521729 0.000000 0.534302 0.563477 0.000000 0.534485 0.608337 0.000000 0.534698 0.656219 0.000000 0.534943 0.706116 0.000000 0.535156 0.758026 0.000000 0.535339 0.811310 0.000000 0.535553 0.865570 0.000000 0.535797 0.915527 0.000000 0.536011 0.000000 0.000000 0.530731 0.000000 0.000000 0.530853 0.000000 0.000000 0.530975 0.004517 0.000000 0.531097 0.031403 0.000000 0.531250 0.065094 0.000000 0.531403 0.093994 0.000000 0.531586 0.121002 0.000000 0.531708 0.146118 0.000000 0.531891 0.169708 0.000000 0.532043 0.191711 0.000000 0.532227 0.212860 0.000916 0.532379 0.233368 0.001923 0.532562 0.253693 0.003052 0.532715 0.273926 0.004211 0.532959 0.294769 0.005402 0.533112 0.316284 0.006592 0.533325 0.339020 0.007843 0.533478 0.363342 0.009125 0.533691 0.389832 0.010345 0.533905 0.418457 0.011719 0.534088 0.449921 0.013000 0.534302 0.484650 0.014557 0.534485 0.522736 0.015930 0.534698 0.564453 0.017303 0.534943 0.609314 0.018677 0.535126 0.656769 0.020111 0.535339 0.706726 0.021515 0.535553 0.758453 0.023041 0.535767 0.811554 0.024628 0.536011 0.865692 0.026062 0.536224 0.915527 0.027496 0.536438 0.000000 0.017487 0.530975 0.000000 0.018494 0.531097 0.000000 0.019470 0.531250 0.006012 0.020386 0.531403 0.032990 0.021423 0.531586 0.066589 0.022461 0.531708 0.095459 0.023590 0.531891 0.122406 0.024719 0.532043 0.147400 0.025879 0.532227 0.170837 0.027039 0.532379 0.192841 0.028198 0.532562 0.213837 0.029266 0.532715 0.234375 0.030487 0.532928 0.254486 0.031708 0.533112 0.274872 0.032990 0.533325 0.295502 0.034302 0.533478 0.317230 0.035553 0.533691 0.339966 0.036865 0.533905 0.364288 0.038239 0.534088 0.390656 0.039551 0.534302 0.419434 0.040955 0.534485 0.450928 0.042389 0.534698 0.485504 0.043762 0.534912 0.523682 0.045197 0.535126 0.565247 0.047394 0.535339 0.610077 0.049744 0.535553 0.657654 0.052277 0.535767 0.707458 0.054901 0.536011 0.758972 0.057617 0.536224 0.811951 0.059631 0.536438 0.865845 0.061157 0.536652 0.915527 0.062775 0.536896 0.000000 0.047729 0.531250 0.000000 0.049500 0.531403 0.000000 0.050995 0.531586 0.007568 0.052917 0.531708 0.034546 0.054901 0.531891 0.068359 0.056946 0.532043 0.097168 0.058899 0.532227 0.123871 0.059937 0.532379 0.148682 0.061218 0.532562 0.172089 0.062531 0.532715 0.193970 0.063873 0.532928 0.214935 0.065247 0.533081 0.235413 0.066559 0.533325 0.255463 0.067902 0.533478 0.275848 0.069336 0.533691 0.296478 0.070770 0.533875 0.317963 0.072113 0.534088 0.340851 0.073334 0.534302 0.365234 0.074768 0.534485 0.391693 0.076294 0.534698 0.420441 0.077728 0.534912 0.451965 0.079163 0.535126 0.486420 0.080688 0.535339 0.524536 0.082123 0.535553 0.566162 0.083618 0.535767 0.610870 0.085114 0.536011 0.658295 0.086609 0.536194 0.708008 0.088135 0.536407 0.759491 0.089691 0.536652 0.812317 0.091156 0.536865 0.865997 0.092743 0.537079 0.915527 0.094208 0.537323 0.000000 0.084076 0.531586 0.000000 0.085083 0.531708 0.000000 0.086212 0.531860 0.009216 0.087402 0.532043 0.036224 0.088348 0.532196 0.070282 0.089569 0.532379 0.098724 0.090759 0.532562 0.125397 0.092010 0.532715 0.150177 0.093262 0.532928 0.173309 0.094299 0.533081 0.195129 0.095551 0.533325 0.216095 0.096924 0.533447 0.236450 0.098175 0.533691 0.256500 0.099518 0.533875 0.276642 0.100830 0.534088 0.297424 0.102081 0.534302 0.319000 0.103302 0.534454 0.341705 0.104706 0.534698 0.366272 0.106049 0.534912 0.392670 0.107422 0.535126 0.421448 0.108826 0.535339 0.453003 0.110199 0.535553 0.487488 0.111603 0.535736 0.525574 0.112976 0.535980 0.567108 0.114380 0.536194 0.611847 0.115570 0.536407 0.659119 0.117004 0.536652 0.708740 0.118408 0.536865 0.759949 0.119812 0.537079 0.812622 0.121216 0.537323 0.866119 0.122620 0.537537 0.915527 0.124084 0.537750 0.000000 0.114868 0.531860 0.000000 0.115814 0.532043 0.000000 0.116821 0.532196 0.010925 0.117981 0.532379 0.037994 0.119110 0.532562 0.072083 0.120026 0.532715 0.100555 0.121216 0.532898 0.126953 0.122345 0.533081 0.151581 0.123444 0.533295 0.174561 0.124542 0.533447 0.196320 0.125763 0.533691 0.217133 0.126984 0.533875 0.237518 0.128113 0.534088 0.257507 0.129211 0.534302 0.277649 0.130463 0.534454 0.298431 0.131714 0.534668 0.319946 0.132996 0.534912 0.342743 0.134033 0.535126 0.367279 0.135284 0.535339 0.393738 0.136597 0.535522 0.422424 0.137848 0.535736 0.453918 0.139130 0.535980 0.488525 0.140259 0.536194 0.526581 0.141510 0.536407 0.568176 0.142792 0.536652 0.612762 0.144104 0.536835 0.660004 0.145386 0.537048 0.709320 0.146606 0.537323 0.760529 0.147766 0.537537 0.812958 0.149048 0.537750 0.866425 0.150330 0.537994 0.915527 0.151672 0.538177 0.000000 0.143646 0.532196 0.000000 0.144501 0.532379 0.000000 0.145569 0.532562 0.012756 0.146484 0.532715 0.039825 0.147430 0.532898 0.073914 0.148560 0.533081 0.102173 0.149414 0.533295 0.128479 0.150513 0.533447 0.152954 0.151611 0.533691 0.175812 0.152527 0.533875 0.197510 0.153595 0.534058 0.218262 0.154785 0.534271 0.238617 0.155640 0.534454 0.258545 0.156830 0.534668 0.278687 0.157959 0.534882 0.299347 0.158905 0.535126 0.320984 0.160065 0.535309 0.343781 0.161255 0.535522 0.368134 0.162384 0.535736 0.394592 0.163361 0.535950 0.423309 0.164520 0.536163 0.454895 0.165710 0.536407 0.489594 0.166687 0.536652 0.527649 0.167847 0.536835 0.569092 0.169037 0.537048 0.613464 0.170135 0.537323 0.660614 0.171204 0.537537 0.709991 0.172394 0.537750 0.760925 0.173553 0.537994 0.813416 0.174500 0.538177 0.866669 0.175690 0.538422 0.915527 0.176910 0.538666 0.000000 0.170074 0.532562 0.000000 0.170959 0.532715 0.000000 0.171936 0.532898 0.014557 0.172699 0.533051 0.041687 0.173676 0.533295 0.075958 0.174469 0.533417 0.104065 0.175476 0.533661 0.130127 0.176422 0.533875 0.154388 0.177307 0.534058 0.177155 0.178375 0.534271 0.198730 0.179169 0.534424 0.219421 0.180206 0.534668 0.239655 0.181213 0.534882 0.259613 0.182098 0.535126 0.279724 0.183167 0.535309 0.300293 0.184082 0.535522 0.321991 0.185089 0.535736 0.344818 0.186188 0.535950 0.369171 0.187012 0.536163 0.395569 0.188080 0.536407 0.424408 0.189178 0.536652 0.455933 0.190033 0.536835 0.490692 0.191162 0.537048 0.528717 0.192078 0.537323 0.569946 0.193085 0.537537 0.614441 0.194153 0.537720 0.661499 0.195160 0.537994 0.710602 0.196136 0.538177 0.761505 0.197235 0.538422 0.813721 0.198090 0.538666 0.866821 0.199188 0.538910 0.915527 0.200256 0.539124 0.000000 0.194550 0.532898 0.000000 0.195435 0.533051 0.000000 0.196136 0.533264 0.016479 0.196991 0.533417 0.043610 0.197754 0.533661 0.077942 0.198669 0.533875 0.105896 0.199432 0.534058 0.131744 0.200409 0.534271 0.156036 0.201141 0.534424 0.178680 0.202087 0.534668 0.200043 0.202850 0.534882 0.220612 0.203827 0.535095 0.240814 0.204590 0.535309 0.260712 0.205536 0.535492 0.280792 0.206543 0.535706 0.301361 0.207275 0.535950 0.322968 0.208313 0.536163 0.345856 0.209106 0.536407 0.370209 0.210083 0.536621 0.396667 0.210907 0.536835 0.425507 0.211853 0.537048 0.457031 0.212769 0.537323 0.491516 0.213654 0.537537 0.529633 0.214630 0.537720 0.571045 0.215454 0.537994 0.615387 0.216461 0.538177 0.662170 0.217346 0.538391 0.711334 0.218231 0.538666 0.762024 0.219177 0.538910 0.813965 0.220032 0.539093 0.867004 0.221039 0.539337 0.915527 0.221802 0.539612 0.000000 0.217285 0.533264 0.000000 0.218018 0.533417 0.000000 0.218689 0.533630 0.018555 0.219543 0.533875 0.045563 0.220184 0.534027 0.080048 0.221100 0.534271 0.107758 0.221771 0.534424 0.133484 0.222656 0.534668 0.157471 0.223328 0.534851 0.180023 0.224182 0.535095 0.201447 0.224915 0.535278 0.221771 0.225830 0.535492 0.241943 0.226501 0.535706 0.261749 0.227448 0.535950 0.281860 0.228149 0.536133 0.302368 0.229065 0.536377 0.324005 0.229767 0.536621 0.346893 0.230682 0.536804 0.371277 0.231415 0.537018 0.397736 0.232330 0.537292 0.426605 0.233032 0.537506 0.458099 0.234009 0.537689 0.492615 0.234711 0.537994 0.530609 0.235657 0.538177 0.572021 0.236420 0.538391 0.616364 0.237335 0.538666 0.663025 0.238190 0.538879 0.711914 0.238983 0.539093 0.762421 0.239960 0.539337 0.814240 0.240631 0.539581 0.867126 0.241455 0.539825 0.915527 0.242249 0.540009 0.000000 0.238678 0.533630 0.000000 0.239288 0.533844 0.000000 0.240082 0.534027 0.020599 0.240692 0.534241 0.049042 0.241455 0.534424 0.082123 0.242126 0.534668 0.109619 0.242859 0.534851 0.135162 0.243591 0.535065 0.158936 0.244263 0.535278 0.181396 0.245056 0.535492 0.202728 0.245758 0.535675 0.223114 0.246582 0.535919 0.242950 0.247253 0.536133 0.262878 0.248108 0.536377 0.282959 0.248749 0.536621 0.303467 0.249603 0.536804 0.324982 0.250305 0.537018 0.347992 0.251190 0.537292 0.372345 0.251801 0.537506 0.398834 0.252563 0.537689 0.427643 0.253326 0.537964 0.459229 0.254120 0.538177 0.493683 0.254913 0.538391 0.531677 0.255646 0.538635 0.573059 0.256470 0.538879 0.617096 0.257111 0.539093 0.663879 0.257996 0.539337 0.712677 0.258667 0.539581 0.763092 0.259521 0.539825 0.814819 0.260193 0.540009 0.867249 0.261078 0.540283 0.915527 0.261719 0.540527 0.000000 0.259064 0.534027 0.000000 0.259674 0.534241 0.000000 0.260254 0.534424 0.022675 0.261047 0.534637 0.052948 0.261597 0.534851 0.084290 0.262268 0.535065 0.111542 0.262970 0.535278 0.136993 0.263550 0.535461 0.160645 0.264435 0.535675 0.182861 0.264984 0.535919 0.204041 0.265808 0.536133 0.224213 0.266418 0.536377 0.244263 0.267273 0.536591 0.264069 0.267822 0.536804 0.283875 0.268463 0.537018 0.304535 0.269287 0.537292 0.326050 0.269867 0.537506 0.348846 0.270721 0.537689 0.373444 0.271362 0.537964 0.399933 0.272217 0.538177 0.428772 0.272797 0.538391 0.460266 0.273468 0.538635 0.494812 0.274292 0.538879 0.532776 0.274872 0.539093 0.573853 0.275726 0.539337 0.618042 0.276367 0.539581 0.664581 0.277191 0.539795 0.713226 0.277802 0.539978 0.763458 0.278656 0.540253 0.815125 0.279266 0.540527 0.867401 0.279968 0.540710 0.915527 0.280670 0.540955 0.000000 0.278839 0.534424 0.000000 0.279358 0.534637 0.000000 0.280060 0.534821 0.024902 0.280670 0.535065 0.056763 0.281219 0.535248 0.086426 0.281982 0.535461 0.113586 0.282532 0.535675 0.138611 0.283325 0.535919 0.162170 0.283905 0.536133 0.184326 0.284454 0.536346 0.205292 0.285248 0.536591 0.225525 0.285828 0.536774 0.245422 0.286621 0.537018 0.264954 0.287231 0.537262 0.285034 0.287811 0.537476 0.305634 0.288574 0.537689 0.327148 0.289154 0.537964 0.349915 0.289978 0.538177 0.374573 0.290558 0.538361 0.401031 0.291229 0.538605 0.429871 0.291901 0.538879 0.461365 0.292542 0.539093 0.495941 0.293335 0.539337 0.533813 0.293945 0.539551 0.574951 0.294739 0.539795 0.619049 0.295349 0.539978 0.665405 0.295868 0.540253 0.713959 0.296692 0.540497 0.764160 0.297302 0.540680 0.815399 0.298126 0.540955 0.867554 0.298706 0.541199 0.915527 0.299438 0.541412 0.000000 0.298370 0.534821 0.000000 0.298859 0.535065 0.001068 0.299591 0.535248 0.027008 0.300171 0.535461 0.059784 0.300690 0.535675 0.088623 0.301422 0.535889 0.115356 0.301910 0.536102 0.140472 0.302582 0.536346 0.163879 0.303253 0.536591 0.185760 0.303802 0.536774 0.206635 0.304596 0.537018 0.226898 0.305145 0.537262 0.246521 0.305817 0.537476 0.266144 0.306458 0.537659 0.286072 0.307007 0.537933 0.306763 0.307770 0.538177 0.328247 0.308380 0.538361 0.351044 0.308990 0.538605 0.375610 0.309723 0.538849 0.402069 0.310272 0.539093 0.430969 0.311096 0.539337 0.462463 0.311615 0.539551 0.497009 0.312439 0.539795 0.534882 0.312988 0.539978 0.575958 0.313568 0.540253 0.619934 0.314362 0.540497 0.666321 0.314911 0.540680 0.714539 0.315582 0.540924 0.764587 0.316254 0.541168 0.815857 0.316803 0.541382 0.867798 0.317566 0.541626 0.915527 0.318115 0.541840 0.000000 0.317993 0.535248 0.000000 0.318481 0.535461 0.003052 0.319214 0.535675 0.029358 0.319733 0.535889 0.062103 0.320251 0.536102 0.090790 0.321014 0.536346 0.117371 0.321533 0.536560 0.142212 0.322296 0.536774 0.165436 0.322815 0.537018 0.187195 0.323334 0.537262 0.207916 0.324097 0.537476 0.228149 0.324646 0.537659 0.247772 0.325226 0.537933 0.267303 0.325989 0.538147 0.287170 0.326508 0.538361 0.307831 0.327301 0.538605 0.329315 0.327850 0.538849 0.352112 0.328461 0.539062 0.376648 0.329132 0.539337 0.403198 0.329681 0.539551 0.432037 0.330414 0.539795 0.463409 0.331024 0.539978 0.498108 0.331573 0.540253 0.535950 0.332306 0.540497 0.576996 0.332886 0.540680 0.620697 0.333588 0.540924 0.666962 0.334198 0.541168 0.715302 0.334747 0.541382 0.765167 0.335510 0.541626 0.816162 0.336090 0.541840 0.868073 0.336639 0.542053 0.915527 0.337372 0.542297 0.000000 0.338074 0.535675 0.000000 0.338806 0.535889 0.005219 0.339325 0.536072 0.031555 0.339874 0.536346 0.064636 0.340515 0.536560 0.092987 0.341095 0.536743 0.119385 0.341675 0.536987 0.144012 0.342346 0.537231 0.167023 0.342865 0.537476 0.188721 0.343628 0.537659 0.209290 0.344147 0.537933 0.229401 0.344696 0.538147 0.248993 0.345459 0.538361 0.268402 0.345947 0.538605 0.288300 0.346619 0.538849 0.308929 0.347290 0.539062 0.330475 0.347809 0.539307 0.353210 0.348572 0.539520 0.377747 0.349121 0.539795 0.404297 0.349792 0.539978 0.433014 0.350464 0.540222 0.464539 0.350983 0.540466 0.499084 0.351776 0.540680 0.536957 0.352295 0.540924 0.577942 0.352783 0.541168 0.621674 0.353577 0.541382 0.667816 0.354126 0.541626 0.715790 0.354797 0.541840 0.765625 0.355408 0.542053 0.816467 0.355957 0.542297 0.868164 0.356689 0.542511 0.915527 0.357208 0.542755 0.000000 0.359161 0.536072 0.000000 0.359802 0.536346 0.007477 0.360382 0.536560 0.033875 0.360901 0.536743 0.067017 0.361633 0.536987 0.095154 0.362152 0.537231 0.121429 0.362701 0.537445 0.145874 0.363434 0.537659 0.168671 0.363953 0.537933 0.190216 0.364532 0.538116 0.210785 0.365234 0.538361 0.230652 0.365753 0.538605 0.250153 0.366516 0.538818 0.269562 0.367035 0.539062 0.289398 0.367584 0.539307 0.310059 0.368347 0.539520 0.331573 0.368896 0.539764 0.354370 0.369476 0.539978 0.378784 0.370178 0.540222 0.405365 0.370697 0.540466 0.434143 0.371490 0.540649 0.465637 0.372009 0.540924 0.500122 0.372620 0.541138 0.537964 0.373291 0.541351 0.578857 0.373871 0.541626 0.622620 0.374603 0.541840 0.668671 0.375153 0.542053 0.716553 0.375671 0.542297 0.766022 0.376404 0.542511 0.816772 0.376923 0.542755 0.868317 0.377441 0.542938 0.915527 0.378235 0.543152 0.000000 0.381500 0.536560 0.000000 0.381989 0.536743 0.009735 0.382538 0.536987 0.036133 0.383209 0.537231 0.069427 0.383759 0.537445 0.097351 0.384521 0.537659 0.123352 0.385010 0.537903 0.147522 0.385529 0.538116 0.170166 0.386292 0.538361 0.191650 0.386841 0.538605 0.212158 0.387390 0.538818 0.231903 0.388123 0.539032 0.251373 0.388672 0.539276 0.270721 0.389435 0.539520 0.290558 0.389984 0.539764 0.311035 0.390472 0.539978 0.332672 0.391266 0.540222 0.355438 0.391815 0.540466 0.379883 0.392365 0.540649 0.406342 0.393097 0.540924 0.435242 0.393616 0.541138 0.466736 0.394409 0.541351 0.501190 0.394928 0.541595 0.539001 0.395447 0.541840 0.579834 0.396210 0.542053 0.623383 0.396729 0.542297 0.669312 0.397369 0.542511 0.717102 0.398041 0.542725 0.766632 0.398529 0.542938 0.817200 0.399200 0.543152 0.868469 0.399811 0.543365 0.915527 0.400299 0.543610 0.000000 0.405151 0.536987 0.000000 0.405762 0.537201 0.012024 0.406403 0.537445 0.038544 0.406952 0.537659 0.071838 0.407684 0.537903 0.099579 0.408203 0.538116 0.125397 0.408844 0.538330 0.149414 0.409485 0.538605 0.171936 0.410004 0.538818 0.193085 0.410645 0.539032 0.213409 0.411316 0.539276 0.233093 0.411865 0.539490 0.252533 0.412628 0.539764 0.271881 0.413177 0.539978 0.291687 0.413757 0.540192 0.312134 0.414490 0.540436 0.333649 0.415009 0.540649 0.356537 0.415588 0.540894 0.380951 0.416290 0.541138 0.407471 0.416840 0.541351 0.436340 0.417603 0.541595 0.467896 0.418152 0.541840 0.502319 0.418640 0.542053 0.540039 0.419403 0.542297 0.580811 0.419922 0.542480 0.624298 0.420715 0.542725 0.670105 0.421234 0.542938 0.717834 0.421722 0.543121 0.767029 0.422455 0.543365 0.817444 0.422974 0.543610 0.868652 0.423492 0.543793 0.915527 0.424225 0.544006 0.000000 0.430908 0.537445 0.000000 0.431427 0.537659 0.014465 0.432037 0.537872 0.040833 0.432709 0.538116 0.074341 0.433228 0.538330 0.101807 0.433929 0.538574 0.127289 0.434540 0.538788 0.151062 0.435059 0.539032 0.173462 0.435822 0.539276 0.194641 0.436371 0.539490 0.214752 0.437042 0.539734 0.234344 0.437683 0.539978 0.253754 0.438202 0.540192 0.273010 0.438873 0.540436 0.292786 0.439514 0.540649 0.313263 0.440063 0.540894 0.334778 0.440796 0.541138 0.357605 0.441376 0.541321 0.382080 0.441925 0.541595 0.408600 0.442657 0.541840 0.437439 0.443176 0.542023 0.468933 0.443817 0.542267 0.503357 0.444458 0.542480 0.541138 0.445007 0.542725 0.581879 0.445740 0.542938 0.625244 0.446259 0.543121 0.670746 0.446777 0.543335 0.718323 0.447510 0.543610 0.767426 0.448029 0.543793 0.817749 0.448608 0.543976 0.868744 0.449249 0.544220 0.915527 0.449738 0.544403 0.000000 0.458679 0.537872 0.000000 0.459290 0.538086 0.016876 0.459869 0.538330 0.043243 0.460602 0.538574 0.076752 0.461151 0.538788 0.104004 0.461670 0.539032 0.129333 0.462463 0.539246 0.152954 0.462952 0.539490 0.175201 0.463531 0.539734 0.196106 0.464264 0.539948 0.216187 0.464813 0.540192 0.235626 0.465576 0.540405 0.254944 0.466125 0.540649 0.274170 0.466675 0.540894 0.293915 0.467407 0.541107 0.314301 0.467957 0.541321 0.335846 0.468506 0.541565 0.358734 0.469238 0.541809 0.383179 0.469788 0.542023 0.409668 0.470551 0.542267 0.438568 0.471069 0.542480 0.470062 0.471619 0.542694 0.504456 0.472351 0.542938 0.541992 0.472870 0.543121 0.582703 0.473389 0.543335 0.625946 0.474152 0.543610 0.671600 0.474640 0.543793 0.719025 0.475128 0.543976 0.768005 0.475830 0.544220 0.817993 0.476349 0.544403 0.868927 0.476959 0.544617 0.915527 0.477539 0.544830 0.000000 0.489075 0.538330 0.000000 0.489594 0.538544 0.019165 0.490143 0.538788 0.045502 0.490906 0.539032 0.079163 0.491425 0.539246 0.106171 0.492065 0.539459 0.131378 0.492737 0.539734 0.154663 0.493286 0.539948 0.176697 0.494019 0.540192 0.197479 0.494598 0.540405 0.217468 0.495148 0.540649 0.236816 0.495850 0.540894 0.256134 0.496399 0.541107 0.275330 0.496979 0.541321 0.295044 0.497681 0.541565 0.315399 0.498230 0.541809 0.336853 0.498993 0.542023 0.359619 0.499512 0.542267 0.384247 0.500031 0.542450 0.410767 0.500763 0.542694 0.439636 0.501282 0.542938 0.471130 0.501831 0.543091 0.505524 0.502563 0.543335 0.542969 0.503052 0.543579 0.583618 0.503632 0.543793 0.626831 0.504272 0.543976 0.672394 0.504791 0.544220 0.719543 0.505432 0.544403 0.768372 0.505981 0.544617 0.818390 0.506470 0.544830 0.869232 0.507141 0.545013 0.915527 0.507629 0.545227 0.000000 0.522125 0.538757 0.000000 0.522797 0.539032 0.021637 0.523315 0.539246 0.049744 0.524048 0.539459 0.081573 0.524597 0.539703 0.108337 0.525116 0.539948 0.133118 0.525848 0.540192 0.156464 0.526398 0.540405 0.178192 0.526917 0.540619 0.198914 0.527710 0.540863 0.218872 0.528198 0.541107 0.238159 0.528870 0.541321 0.257324 0.529449 0.541534 0.276459 0.530029 0.541809 0.296173 0.530762 0.541992 0.316467 0.531311 0.542236 0.337921 0.531799 0.542450 0.360718 0.532501 0.542694 0.385345 0.533051 0.542938 0.411865 0.533539 0.543091 0.440552 0.534271 0.543335 0.471985 0.534790 0.543579 0.506561 0.535370 0.543793 0.543976 0.536011 0.543976 0.584564 0.536499 0.544220 0.627716 0.536987 0.544403 0.672943 0.537689 0.544617 0.720245 0.538147 0.544800 0.768890 0.538635 0.545013 0.818695 0.539307 0.545227 0.869324 0.539795 0.545380 0.915527 0.540192 0.545593 0.000000 0.558258 0.539246 0.000000 0.558838 0.539459 0.024109 0.559509 0.539703 0.053772 0.560059 0.539917 0.083984 0.560577 0.540161 0.110504 0.561340 0.540405 0.135132 0.561829 0.540619 0.158173 0.562500 0.540863 0.179901 0.563110 0.541107 0.200500 0.563568 0.541321 0.220154 0.564331 0.541534 0.239319 0.564789 0.541779 0.258484 0.565338 0.541992 0.277557 0.565979 0.542236 0.297241 0.566559 0.542450 0.317596 0.567047 0.542694 0.338989 0.567749 0.542908 0.361755 0.568268 0.543091 0.386414 0.568756 0.543304 0.412933 0.569427 0.543549 0.441528 0.569916 0.543793 0.473022 0.570404 0.543976 0.507385 0.571075 0.544189 0.544983 0.571594 0.544403 0.585510 0.572052 0.544586 0.628387 0.572540 0.544800 0.673706 0.573151 0.545013 0.720642 0.573608 0.545197 0.769348 0.574066 0.545380 0.818939 0.574677 0.545593 0.869446 0.575104 0.545776 0.915527 0.575531 0.545959 0.000000 0.597229 0.539673 0.001251 0.597870 0.539917 0.026611 0.598480 0.540161 0.058350 0.598907 0.540375 0.086365 0.599579 0.540619 0.112640 0.600159 0.540863 0.137085 0.600555 0.541107 0.159882 0.601074 0.541321 0.181396 0.601807 0.541534 0.201843 0.602234 0.541779 0.221436 0.602783 0.541992 0.240631 0.603424 0.542206 0.259613 0.603912 0.542419 0.278687 0.604340 0.542664 0.298340 0.605042 0.542908 0.318665 0.605499 0.543091 0.340088 0.605927 0.543304 0.362885 0.606628 0.543549 0.387238 0.607117 0.543793 0.413727 0.607513 0.543976 0.442627 0.608124 0.544189 0.474060 0.608673 0.544403 0.508392 0.609070 0.544586 0.545990 0.609497 0.544800 0.586212 0.610107 0.544983 0.629242 0.610535 0.545197 0.674316 0.610992 0.545380 0.721252 0.611572 0.545593 0.769684 0.612030 0.545776 0.819153 0.612427 0.545959 0.869537 0.612762 0.546173 0.915527 0.613281 0.546326 0.000000 0.638824 0.540161 0.003479 0.639221 0.540375 0.028900 0.639648 0.540588 0.060883 0.640289 0.540833 0.088745 0.640778 0.541077 0.114777 0.641205 0.541321 0.139038 0.641663 0.541504 0.161652 0.642334 0.541779 0.182953 0.642731 0.541962 0.203186 0.643188 0.542206 0.222717 0.643738 0.542419 0.241943 0.644257 0.542664 0.260773 0.644623 0.542908 0.279816 0.645142 0.543091 0.299347 0.645721 0.543304 0.319702 0.646118 0.543549 0.341125 0.646515 0.543762 0.363922 0.647156 0.543945 0.388306 0.647522 0.544189 0.414795 0.647949 0.544403 0.443634 0.648346 0.544586 0.475098 0.648895 0.544800 0.509399 0.649353 0.544983 0.546753 0.649689 0.545197 0.587128 0.650085 0.545349 0.630005 0.650665 0.545593 0.675049 0.651001 0.545776 0.721771 0.651398 0.545959 0.770020 0.651703 0.546173 0.819519 0.652283 0.546326 0.869720 0.652618 0.546509 0.915527 0.652924 0.546692 0.000000 0.682068 0.540588 0.005798 0.682556 0.540833 0.031372 0.683044 0.541077 0.063354 0.683441 0.541321 0.090973 0.683868 0.541504 0.116821 0.684204 0.541748 0.140747 0.684845 0.541962 0.163208 0.685181 0.542206 0.184509 0.685516 0.542419 0.204559 0.686005 0.542664 0.223969 0.686523 0.542908 0.242950 0.686859 0.543091 0.261932 0.687225 0.543304 0.280884 0.687775 0.543549 0.300354 0.688171 0.543762 0.320740 0.688507 0.543945 0.342194 0.688904 0.544159 0.364899 0.689209 0.544373 0.389313 0.689819 0.544586 0.415833 0.690125 0.544769 0.444672 0.690491 0.544983 0.476044 0.690796 0.545197 0.510376 0.691223 0.545349 0.547668 0.691681 0.545563 0.588013 0.691956 0.545746 0.630646 0.692261 0.545929 0.675568 0.692535 0.546173 0.722260 0.693085 0.546295 0.770538 0.693390 0.546509 0.819885 0.693665 0.546661 0.869781 0.693939 0.546814 0.915527 0.694214 0.546967 0.000000 0.727203 0.541077 0.008057 0.727539 0.541321 0.033722 0.727875 0.541504 0.066040 0.728210 0.541748 0.093262 0.728546 0.541962 0.118713 0.729034 0.542206 0.142670 0.729340 0.542389 0.164978 0.729614 0.542633 0.185913 0.729919 0.542908 0.205902 0.730225 0.543060 0.225189 0.730804 0.543304 0.244232 0.731079 0.543518 0.263031 0.731415 0.543762 0.281982 0.731659 0.543945 0.301422 0.731964 0.544159 0.321564 0.732452 0.544373 0.343140 0.732758 0.544586 0.365906 0.733032 0.544769 0.390350 0.733307 0.544983 0.416809 0.733582 0.545197 0.445648 0.734070 0.545349 0.476837 0.734344 0.545563 0.511139 0.734589 0.545746 0.548584 0.734802 0.545929 0.588684 0.735077 0.546143 0.631500 0.735413 0.546295 0.676331 0.735779 0.546509 0.722900 0.736053 0.546661 0.770844 0.736267 0.546814 0.820068 0.736450 0.546967 0.869873 0.736725 0.547150 0.915527 0.736908 0.547302 0.000000 0.773407 0.541504 0.010437 0.773682 0.541718 0.036133 0.773926 0.541962 0.068390 0.774170 0.542206 0.095459 0.774414 0.542389 0.120758 0.774689 0.542633 0.144379 0.775116 0.542877 0.166534 0.775360 0.543060 0.187317 0.775574 0.543304 0.207336 0.775818 0.543518 0.226410 0.776031 0.543732 0.245361 0.776215 0.543945 0.264130 0.776550 0.544159 0.283020 0.776917 0.544373 0.302368 0.777161 0.544586 0.322601 0.777374 0.544769 0.343964 0.777557 0.544952 0.366791 0.777802 0.545197 0.391327 0.778015 0.545319 0.417755 0.778168 0.545563 0.446411 0.778564 0.545746 0.477814 0.778809 0.545929 0.512024 0.778992 0.546143 0.549561 0.779175 0.546295 0.589508 0.779388 0.546478 0.632050 0.779572 0.546661 0.676758 0.779755 0.546814 0.723236 0.779877 0.546967 0.771179 0.780212 0.547150 0.820221 0.780487 0.547302 0.869995 0.780609 0.547455 0.915527 0.780792 0.547607 0.000000 0.820404 0.541962 0.012817 0.820557 0.542206 0.038544 0.820740 0.542389 0.070862 0.820892 0.542633 0.097656 0.821045 0.542877 0.122772 0.821259 0.543060 0.146179 0.821564 0.543304 0.168091 0.821808 0.543518 0.188873 0.821899 0.543732 0.208618 0.822052 0.543945 0.227600 0.822266 0.544128 0.246277 0.822388 0.544342 0.264984 0.822510 0.544586 0.283936 0.822632 0.544769 0.303406 0.822815 0.544952 0.323608 0.823120 0.545197 0.344971 0.823364 0.545319 0.367706 0.823456 0.545563 0.392151 0.823608 0.545746 0.418579 0.823792 0.545929 0.447357 0.823853 0.546143 0.478760 0.823975 0.546265 0.512970 0.824127 0.546478 0.550171 0.824249 0.546661 0.590240 0.824341 0.546814 0.632812 0.824463 0.546967 0.677368 0.824615 0.547150 0.723816 0.824921 0.547272 0.771637 0.825043 0.547455 0.820435 0.825165 0.547607 0.870178 0.825256 0.547729 0.915527 0.825378 0.547913 0.000000 0.867798 0.542389 0.015259 0.867920 0.542633 0.040771 0.868103 0.542877 0.073303 0.868286 0.543060 0.099823 0.868378 0.543304 0.124756 0.868439 0.543488 0.147858 0.868530 0.543732 0.169708 0.868622 0.543945 0.190247 0.868652 0.544128 0.209869 0.868744 0.544342 0.228760 0.868774 0.544556 0.247467 0.868896 0.544769 0.266052 0.868988 0.544952 0.284943 0.869049 0.545166 0.304382 0.869110 0.545319 0.324585 0.869171 0.545532 0.345947 0.869263 0.545715 0.368683 0.869293 0.545929 0.393036 0.869385 0.546112 0.419495 0.869446 0.546265 0.448303 0.869568 0.546478 0.479523 0.869720 0.546631 0.513855 0.869781 0.546814 0.550995 0.869873 0.546967 0.590942 0.869995 0.547150 0.633270 0.870087 0.547272 0.677887 0.870087 0.547455 0.724182 0.870148 0.547607 0.771912 0.870178 0.547729 0.820740 0.870270 0.547913 0.870392 0.870331 0.548004 0.915527 0.870331 0.548157 0.000000 0.915527 0.542877 0.017609 0.915527 0.543030 0.043091 0.915527 0.543304 0.075684 0.915527 0.543488 0.101929 0.915527 0.543701 0.126526 0.915527 0.543945 0.149597 0.915527 0.544128 0.171143 0.915527 0.544342 0.191589 0.915527 0.544556 0.211090 0.915527 0.544769 0.229950 0.915527 0.544952 0.248566 0.915527 0.545166 0.267090 0.915527 0.545288 0.285858 0.915527 0.545532 0.305389 0.915527 0.545715 0.325470 0.915527 0.545929 0.346863 0.915527 0.546112 0.369629 0.915527 0.546265 0.393982 0.915527 0.546448 0.420380 0.915527 0.546631 0.449005 0.915527 0.546814 0.480316 0.915527 0.546936 0.514496 0.915527 0.547119 0.551605 0.915527 0.547272 0.591675 0.915527 0.547455 0.634003 0.915527 0.547607 0.678253 0.915527 0.547729 0.724518 0.915527 0.547882 0.772186 0.915527 0.548004 0.820984 0.915527 0.548157 0.870453 0.915527 0.548279 0.915527 0.915527 0.548401 0.000000 0.000000 0.552277 0.000000 0.000000 0.552429 0.000000 0.000000 0.552551 0.003479 0.000000 0.552673 0.030182 0.000000 0.552856 0.063782 0.000000 0.552948 0.092834 0.000000 0.553101 0.119812 0.000000 0.553253 0.145111 0.000000 0.553406 0.168701 0.000000 0.553589 0.190826 0.000000 0.553741 0.212189 0.000000 0.553925 0.232758 0.000000 0.554108 0.252899 0.000000 0.554260 0.273132 0.000000 0.554443 0.293945 0.000000 0.554596 0.315491 0.000000 0.554810 0.338348 0.000000 0.554993 0.362732 0.000000 0.555176 0.389069 0.000000 0.555359 0.417816 0.000000 0.555573 0.449280 0.000000 0.555786 0.483765 0.000000 0.555939 0.521881 0.000000 0.556183 0.563629 0.000000 0.556366 0.608521 0.000000 0.556580 0.656311 0.000000 0.556793 0.706299 0.000000 0.557007 0.758087 0.000000 0.557220 0.811371 0.000000 0.557434 0.865601 0.000000 0.557648 0.915527 0.000031 0.557861 0.000000 0.000000 0.552551 0.000000 0.000000 0.552673 0.000000 0.000000 0.552856 0.004761 0.000000 0.552948 0.031647 0.000000 0.553101 0.065308 0.000000 0.553253 0.094208 0.000000 0.553406 0.121338 0.000000 0.553589 0.146332 0.000000 0.553741 0.169830 0.000000 0.553925 0.191895 0.000214 0.554108 0.213165 0.001221 0.554260 0.233612 0.002319 0.554413 0.253845 0.003418 0.554596 0.274048 0.004639 0.554810 0.294891 0.005768 0.554962 0.316406 0.007019 0.555176 0.339142 0.008209 0.555328 0.363647 0.009613 0.555542 0.390076 0.010956 0.555786 0.418640 0.012268 0.555939 0.450073 0.013611 0.556152 0.484741 0.015015 0.556366 0.522858 0.016327 0.556549 0.564606 0.017731 0.556793 0.609436 0.019226 0.557007 0.656891 0.020691 0.557220 0.706818 0.022156 0.557404 0.758484 0.023590 0.557617 0.811615 0.025024 0.557861 0.865784 0.026581 0.558044 0.915527 0.028137 0.558258 0.000000 0.017792 0.552856 0.000000 0.018768 0.552948 0.000000 0.019836 0.553101 0.006226 0.020874 0.553223 0.033264 0.021790 0.553406 0.067017 0.022858 0.553589 0.095795 0.023926 0.553741 0.122711 0.025085 0.553925 0.147614 0.026276 0.554108 0.171021 0.027405 0.554260 0.193024 0.028625 0.554413 0.214203 0.029846 0.554596 0.234528 0.031036 0.554779 0.254822 0.032288 0.554962 0.275024 0.033569 0.555176 0.295746 0.034851 0.555328 0.317383 0.036163 0.555542 0.340118 0.037445 0.555756 0.364471 0.038757 0.555908 0.390808 0.040161 0.556152 0.419586 0.041473 0.556335 0.451050 0.042877 0.556549 0.485779 0.044281 0.556793 0.523865 0.045654 0.556976 0.565552 0.048126 0.557190 0.610291 0.050568 0.557404 0.657745 0.053131 0.557617 0.707581 0.055817 0.557861 0.759125 0.058502 0.558044 0.812012 0.060303 0.558258 0.865906 0.061859 0.558502 0.915527 0.063507 0.558746 0.000000 0.048248 0.553101 0.000000 0.049988 0.553223 0.000000 0.051910 0.553406 0.007812 0.053589 0.553558 0.034912 0.055573 0.553711 0.068756 0.057617 0.553894 0.097412 0.059265 0.554077 0.124115 0.060516 0.554230 0.149017 0.061829 0.554413 0.172211 0.062897 0.554565 0.194122 0.064331 0.554779 0.215302 0.065674 0.554962 0.235535 0.066925 0.555176 0.255676 0.068329 0.555328 0.276001 0.069763 0.555542 0.296600 0.071167 0.555756 0.318237 0.072571 0.555908 0.341095 0.074005 0.556122 0.365387 0.075500 0.556335 0.391815 0.076935 0.556549 0.420593 0.078339 0.556763 0.452087 0.079834 0.556976 0.486725 0.081329 0.557190 0.524780 0.082794 0.557404 0.566315 0.084351 0.557617 0.610992 0.085815 0.557861 0.658386 0.087311 0.558044 0.708099 0.088867 0.558258 0.759521 0.090332 0.558502 0.812439 0.091919 0.558746 0.866028 0.093414 0.558960 0.915527 0.094879 0.559174 0.000000 0.084473 0.553406 0.000000 0.085602 0.553558 0.000000 0.086578 0.553711 0.009460 0.087708 0.553894 0.036591 0.088959 0.554077 0.070557 0.090057 0.554230 0.099030 0.091156 0.554413 0.125763 0.092407 0.554565 0.150452 0.093658 0.554779 0.173462 0.094879 0.554962 0.195312 0.096161 0.555176 0.216400 0.097290 0.555298 0.236603 0.098572 0.555542 0.256622 0.099915 0.555756 0.276855 0.101227 0.555908 0.297546 0.102600 0.556122 0.319092 0.103943 0.556335 0.342010 0.105194 0.556519 0.366394 0.106476 0.556763 0.392822 0.107849 0.556976 0.421631 0.109192 0.557190 0.453125 0.110626 0.557373 0.487640 0.112030 0.557587 0.525696 0.113434 0.557861 0.567291 0.114807 0.558014 0.611969 0.116241 0.558228 0.659241 0.117676 0.558502 0.708862 0.119080 0.558746 0.760071 0.120209 0.558929 0.812683 0.121704 0.559174 0.866241 0.123108 0.559418 0.915527 0.124512 0.559601 0.000000 0.115173 0.553711 0.000000 0.116272 0.553894 0.000000 0.117188 0.554077 0.011200 0.118286 0.554230 0.038391 0.119415 0.554382 0.072449 0.120453 0.554565 0.100830 0.121552 0.554779 0.127228 0.122711 0.554932 0.151794 0.123932 0.555145 0.174774 0.125061 0.555298 0.196472 0.126129 0.555542 0.217316 0.127319 0.555725 0.237671 0.128571 0.555908 0.257660 0.129822 0.556122 0.277771 0.130829 0.556335 0.298553 0.132111 0.556519 0.320099 0.133392 0.556763 0.342896 0.134644 0.556946 0.367432 0.135834 0.557190 0.393860 0.136993 0.557373 0.422668 0.138245 0.557587 0.454163 0.139526 0.557861 0.488708 0.140808 0.558014 0.526733 0.141907 0.558228 0.568359 0.143219 0.558472 0.612854 0.144470 0.558716 0.660095 0.145782 0.558929 0.709381 0.147095 0.559174 0.760620 0.148254 0.559387 0.813110 0.149475 0.559601 0.866547 0.150726 0.559845 0.915527 0.152039 0.560059 0.000000 0.144012 0.554047 0.000000 0.144806 0.554230 0.000000 0.145905 0.554382 0.012970 0.146942 0.554565 0.040222 0.147766 0.554749 0.074432 0.148865 0.554932 0.102631 0.149902 0.555145 0.128815 0.150848 0.555298 0.153168 0.151947 0.555542 0.176056 0.152954 0.555725 0.197876 0.153992 0.555878 0.218506 0.155090 0.556122 0.238739 0.156250 0.556305 0.258728 0.157196 0.556519 0.278809 0.158325 0.556732 0.299591 0.159485 0.556946 0.321106 0.160400 0.557190 0.343903 0.161560 0.557373 0.368469 0.162750 0.557587 0.394867 0.163727 0.557861 0.423676 0.164856 0.558014 0.455231 0.166077 0.558228 0.489716 0.167236 0.558472 0.527740 0.168213 0.558716 0.569336 0.169403 0.558899 0.613617 0.170563 0.559174 0.660736 0.171692 0.559387 0.710175 0.172760 0.559570 0.761017 0.173920 0.559845 0.813477 0.175110 0.560059 0.866699 0.176086 0.560333 0.915527 0.177246 0.560516 0.000000 0.170471 0.554382 0.000000 0.171234 0.554535 0.000000 0.172211 0.554749 0.014954 0.173035 0.554932 0.041992 0.173981 0.555145 0.076447 0.174896 0.555298 0.104279 0.175781 0.555542 0.130493 0.176819 0.555725 0.154724 0.177582 0.555878 0.177551 0.178650 0.556091 0.199066 0.179535 0.556305 0.219788 0.180481 0.556519 0.239868 0.181610 0.556732 0.259796 0.182434 0.556946 0.279907 0.183441 0.557190 0.300629 0.184570 0.557373 0.322144 0.185425 0.557587 0.344940 0.186462 0.557831 0.369446 0.187531 0.558014 0.395905 0.188385 0.558228 0.424683 0.189514 0.558472 0.456085 0.190369 0.558716 0.490784 0.191437 0.558899 0.528839 0.192535 0.559143 0.570099 0.193420 0.559387 0.614563 0.194489 0.559570 0.661591 0.195618 0.559814 0.710663 0.196472 0.560059 0.761658 0.197571 0.560303 0.813782 0.198578 0.560486 0.866821 0.199463 0.560760 0.915527 0.200531 0.560974 0.000000 0.194794 0.554749 0.000000 0.195709 0.554932 0.000000 0.196381 0.555145 0.016907 0.197296 0.555298 0.044098 0.198029 0.555511 0.078247 0.198944 0.555725 0.106201 0.199707 0.555878 0.132141 0.200623 0.556091 0.156250 0.201385 0.556305 0.178925 0.202332 0.556519 0.200409 0.203247 0.556732 0.220856 0.204071 0.556946 0.240967 0.205048 0.557159 0.260895 0.205841 0.557373 0.280945 0.206818 0.557556 0.301666 0.207581 0.557831 0.323212 0.208588 0.558014 0.346008 0.209442 0.558197 0.370392 0.210358 0.558441 0.396851 0.211365 0.558716 0.425629 0.212158 0.558899 0.457184 0.213165 0.559143 0.491791 0.213898 0.559357 0.529907 0.214935 0.559570 0.571167 0.215851 0.559814 0.615509 0.216736 0.560028 0.662415 0.217743 0.560303 0.711456 0.218506 0.560486 0.762085 0.219513 0.560760 0.814026 0.220306 0.560974 0.867004 0.221313 0.561157 0.915527 0.222260 0.561432 0.000000 0.217651 0.555145 0.000000 0.218292 0.555298 0.000000 0.219055 0.555511 0.018890 0.219788 0.555725 0.046326 0.220490 0.555878 0.080353 0.221344 0.556091 0.108154 0.222046 0.556274 0.133820 0.222900 0.556519 0.157684 0.223572 0.556732 0.180267 0.224457 0.556915 0.201660 0.225159 0.557159 0.222107 0.226074 0.557373 0.242126 0.226776 0.557556 0.262024 0.227722 0.557831 0.282013 0.228546 0.558014 0.302521 0.229340 0.558197 0.324280 0.230042 0.558441 0.347076 0.230988 0.558685 0.371429 0.231873 0.558899 0.397888 0.232635 0.559143 0.426758 0.233582 0.559357 0.458282 0.234314 0.559570 0.492798 0.235168 0.559814 0.530762 0.235901 0.560028 0.572174 0.236877 0.560303 0.616486 0.237579 0.560486 0.663116 0.238525 0.560730 0.711975 0.239227 0.560944 0.762604 0.240173 0.561157 0.814392 0.240906 0.561432 0.867126 0.241821 0.561676 0.915527 0.242523 0.561859 0.000000 0.238892 0.555511 0.000000 0.239624 0.555725 0.000000 0.240326 0.555878 0.021027 0.240967 0.556091 0.049927 0.241760 0.556274 0.082428 0.242371 0.556519 0.109955 0.243225 0.556732 0.135559 0.243866 0.556915 0.159393 0.244629 0.557159 0.181641 0.245331 0.557373 0.202942 0.245972 0.557556 0.223389 0.246826 0.557800 0.243286 0.247498 0.558014 0.263092 0.248322 0.558197 0.283112 0.248962 0.558441 0.303619 0.249847 0.558685 0.325104 0.250549 0.558868 0.348145 0.251434 0.559143 0.372528 0.252045 0.559357 0.399017 0.252930 0.559570 0.427856 0.253571 0.559784 0.459381 0.254517 0.560028 0.493927 0.255157 0.560272 0.531830 0.256042 0.560486 0.573212 0.256744 0.560730 0.617249 0.257416 0.560944 0.664001 0.258240 0.561157 0.712769 0.259033 0.561401 0.763184 0.259796 0.561646 0.814880 0.260559 0.561859 0.867249 0.261322 0.562103 0.915527 0.261963 0.562347 0.000000 0.259338 0.555878 0.000000 0.259888 0.556091 0.000000 0.260620 0.556274 0.023132 0.261261 0.556519 0.053558 0.261810 0.556732 0.084625 0.262634 0.556915 0.111847 0.263184 0.557159 0.137268 0.263977 0.557343 0.160919 0.264618 0.557526 0.183197 0.265228 0.557800 0.204254 0.266052 0.558014 0.224548 0.266632 0.558197 0.244476 0.267456 0.558441 0.264221 0.268066 0.558655 0.284210 0.268829 0.558868 0.304688 0.269531 0.559113 0.326202 0.270142 0.559326 0.349121 0.270966 0.559570 0.373596 0.271606 0.559784 0.400085 0.272400 0.559998 0.428955 0.273041 0.560272 0.460480 0.273895 0.560486 0.494995 0.274506 0.560730 0.532959 0.275299 0.560944 0.574158 0.275970 0.561157 0.618164 0.276672 0.561401 0.664917 0.277435 0.561646 0.713318 0.278015 0.561859 0.763580 0.278870 0.562103 0.815155 0.279510 0.562347 0.867462 0.280334 0.562531 0.915527 0.280945 0.562805 0.000000 0.279022 0.556274 0.000000 0.279602 0.556488 0.000000 0.280334 0.556732 0.025269 0.280853 0.556885 0.057373 0.281494 0.557129 0.086700 0.282196 0.557343 0.113861 0.282745 0.557526 0.139069 0.283539 0.557800 0.162384 0.284088 0.558014 0.184601 0.284698 0.558197 0.205505 0.285461 0.558411 0.225830 0.286011 0.558655 0.245605 0.286835 0.558868 0.265259 0.287354 0.559113 0.285309 0.288208 0.559326 0.305786 0.288818 0.559570 0.327301 0.289429 0.559784 0.350189 0.290192 0.559998 0.374725 0.290771 0.560272 0.401184 0.291565 0.560486 0.430054 0.292175 0.560699 0.461609 0.292877 0.560944 0.496094 0.293549 0.561157 0.533997 0.294159 0.561371 0.575043 0.294952 0.561646 0.619171 0.295532 0.561829 0.665527 0.296234 0.562103 0.714111 0.296906 0.562347 0.764252 0.297516 0.562531 0.815430 0.298340 0.562805 0.867615 0.298889 0.563019 0.915527 0.299713 0.563202 0.000000 0.298523 0.556702 0.000000 0.299072 0.556885 0.001373 0.299835 0.557129 0.027527 0.300323 0.557343 0.060211 0.301086 0.557526 0.088928 0.301605 0.557800 0.115875 0.302155 0.558014 0.140717 0.302917 0.558197 0.164124 0.303467 0.558411 0.186005 0.304047 0.558655 0.206848 0.304810 0.558868 0.227051 0.305328 0.559082 0.246796 0.306122 0.559326 0.266449 0.306702 0.559540 0.286438 0.307190 0.559784 0.306915 0.308014 0.559998 0.328369 0.308563 0.560242 0.351257 0.309357 0.560486 0.375854 0.309937 0.560699 0.402313 0.310486 0.560913 0.431152 0.311279 0.561157 0.462708 0.311829 0.561371 0.497162 0.312622 0.561646 0.535095 0.313202 0.561829 0.576080 0.313751 0.562073 0.620117 0.314545 0.562347 0.666412 0.315125 0.562531 0.714630 0.315887 0.562775 0.764648 0.316467 0.562988 0.815887 0.317139 0.563202 0.867920 0.317749 0.563477 0.915527 0.318359 0.563690 0.000000 0.318176 0.557129 0.000000 0.318695 0.557343 0.003479 0.319397 0.557526 0.029724 0.319946 0.557770 0.062653 0.320679 0.558014 0.091095 0.321198 0.558167 0.117859 0.321716 0.558411 0.142609 0.322479 0.558655 0.165619 0.322998 0.558868 0.187378 0.323700 0.559082 0.208313 0.324310 0.559296 0.228333 0.324829 0.559540 0.247955 0.325623 0.559784 0.267639 0.326172 0.559998 0.287354 0.326691 0.560242 0.307983 0.327484 0.560455 0.329498 0.328003 0.560699 0.352264 0.328796 0.560913 0.376923 0.329346 0.561157 0.403381 0.329895 0.561371 0.432251 0.330658 0.561615 0.463623 0.331238 0.561829 0.498291 0.331879 0.562073 0.536194 0.332550 0.562317 0.577148 0.333069 0.562531 0.620850 0.333862 0.562775 0.667053 0.334381 0.562988 0.715363 0.335114 0.563171 0.765289 0.335754 0.563446 0.816193 0.336273 0.563690 0.868103 0.336975 0.563873 0.915527 0.337585 0.564117 0.000000 0.338379 0.557526 0.000000 0.338989 0.557770 0.005585 0.339508 0.557983 0.032104 0.340210 0.558167 0.065125 0.340759 0.558411 0.093292 0.341248 0.558624 0.119720 0.342010 0.558868 0.144287 0.342529 0.559082 0.167358 0.343079 0.559296 0.189026 0.343842 0.559540 0.209595 0.344360 0.559784 0.229584 0.345093 0.559967 0.249176 0.345642 0.560242 0.268616 0.346161 0.560455 0.288483 0.346924 0.560669 0.309113 0.347473 0.560913 0.330627 0.348022 0.561157 0.353394 0.348785 0.561371 0.378052 0.349304 0.561615 0.404541 0.350098 0.561829 0.433228 0.350647 0.562073 0.464722 0.351196 0.562317 0.499359 0.351929 0.562531 0.537262 0.352478 0.562775 0.578156 0.353058 0.562988 0.621826 0.353790 0.563171 0.667938 0.354340 0.563446 0.715973 0.355103 0.563660 0.765717 0.355621 0.563843 0.816498 0.356140 0.564117 0.868225 0.356873 0.564331 0.915527 0.357391 0.564545 0.000000 0.359314 0.557983 0.000000 0.360046 0.558167 0.007812 0.360565 0.558411 0.034302 0.361084 0.558624 0.067444 0.361816 0.558868 0.095459 0.362335 0.559082 0.121735 0.363068 0.559296 0.146118 0.363617 0.559509 0.168915 0.364136 0.559784 0.190430 0.364899 0.559967 0.210968 0.365387 0.560211 0.230804 0.365967 0.560455 0.250397 0.366699 0.560669 0.269836 0.367279 0.560883 0.289612 0.368011 0.561157 0.310211 0.368561 0.561340 0.331726 0.369080 0.561615 0.354523 0.369843 0.561829 0.378967 0.370361 0.562073 0.405670 0.370911 0.562317 0.434265 0.371704 0.562531 0.465790 0.372253 0.562744 0.500549 0.372955 0.562958 0.538116 0.373535 0.563171 0.579102 0.374023 0.563446 0.622803 0.374817 0.563660 0.668793 0.375336 0.563843 0.716644 0.375885 0.564117 0.766113 0.376587 0.564331 0.816833 0.377136 0.564545 0.868408 0.377838 0.564758 0.915527 0.378387 0.565216 0.000000 0.381653 0.558411 0.000000 0.382202 0.558624 0.010162 0.382904 0.558838 0.036682 0.383423 0.559052 0.069855 0.383972 0.559296 0.097687 0.384674 0.559509 0.123779 0.385223 0.559753 0.147919 0.385864 0.559967 0.170593 0.386505 0.560211 0.191864 0.387054 0.560455 0.212341 0.387695 0.560669 0.232025 0.388336 0.560883 0.251556 0.388824 0.561157 0.271057 0.389648 0.561340 0.290802 0.390137 0.561584 0.311340 0.390839 0.561829 0.332825 0.391449 0.562042 0.355652 0.391968 0.562286 0.380066 0.392670 0.562531 0.406555 0.393311 0.562744 0.435425 0.393829 0.562958 0.466888 0.394592 0.563171 0.501526 0.395142 0.563446 0.539154 0.395782 0.563660 0.579987 0.396393 0.563843 0.623627 0.396912 0.564117 0.669434 0.397705 0.564331 0.717194 0.398224 0.564545 0.766693 0.398743 0.564728 0.817261 0.399445 0.565155 0.868469 0.399994 0.565399 0.915527 0.400482 0.565613 0.000000 0.405334 0.558838 0.000000 0.406097 0.559052 0.012543 0.406616 0.559265 0.038940 0.407196 0.559509 0.072327 0.407837 0.559753 0.099915 0.408386 0.559967 0.125793 0.409180 0.560211 0.149658 0.409668 0.560425 0.172180 0.410217 0.560638 0.193481 0.410980 0.560883 0.213623 0.411530 0.561127 0.233307 0.412048 0.561340 0.252777 0.412842 0.561584 0.272278 0.413361 0.561798 0.291870 0.414124 0.562042 0.312439 0.414642 0.562286 0.333923 0.415192 0.562500 0.356720 0.415955 0.562744 0.381134 0.416504 0.562958 0.407654 0.417023 0.563171 0.436523 0.417786 0.563416 0.468048 0.418335 0.563629 0.502472 0.419098 0.563812 0.540253 0.419586 0.564117 0.580963 0.420135 0.564301 0.624420 0.420898 0.564514 0.670258 0.421417 0.564728 0.717957 0.421906 0.565155 0.767120 0.422638 0.565399 0.817505 0.423157 0.565613 0.868652 0.423676 0.565826 0.915527 0.424408 0.566010 0.000000 0.431122 0.559265 0.000000 0.431610 0.559509 0.014832 0.432343 0.559753 0.041351 0.432892 0.559967 0.074738 0.433441 0.560181 0.102081 0.434204 0.560425 0.127716 0.434723 0.560638 0.151581 0.435272 0.560883 0.173706 0.436005 0.561127 0.194916 0.436584 0.561340 0.215057 0.437317 0.561584 0.234650 0.437866 0.561798 0.253967 0.438416 0.562042 0.273254 0.439178 0.562286 0.292938 0.439728 0.562500 0.313568 0.440277 0.562714 0.335022 0.441010 0.562958 0.357788 0.441559 0.563171 0.382202 0.442322 0.563416 0.408722 0.442841 0.563629 0.437592 0.443390 0.563812 0.469116 0.444122 0.564087 0.503540 0.444672 0.564301 0.541290 0.445221 0.564514 0.582001 0.445953 0.564728 0.625336 0.446442 0.565155 0.670868 0.447113 0.565369 0.718445 0.447693 0.565613 0.767578 0.448242 0.565826 0.817810 0.448914 0.566010 0.868774 0.449463 0.566223 0.915527 0.449951 0.566467 0.000000 0.458954 0.559723 0.000000 0.459534 0.559967 0.017212 0.460052 0.560181 0.043640 0.460785 0.560394 0.077087 0.461304 0.560638 0.104279 0.461884 0.560852 0.129669 0.462616 0.561127 0.153198 0.463196 0.561340 0.175415 0.463928 0.561554 0.196320 0.464478 0.561798 0.216492 0.465057 0.562012 0.235779 0.465790 0.562256 0.255157 0.466339 0.562500 0.274414 0.466858 0.562714 0.294098 0.467621 0.562927 0.314484 0.468170 0.563141 0.336121 0.468903 0.563416 0.358948 0.469482 0.563629 0.383331 0.469971 0.563812 0.409851 0.470764 0.564087 0.438721 0.471252 0.564301 0.470184 0.471863 0.564514 0.504608 0.472534 0.564728 0.542297 0.473083 0.565125 0.582977 0.473572 0.565369 0.626129 0.474304 0.565613 0.671692 0.474823 0.565796 0.719116 0.475525 0.566010 0.768097 0.476044 0.566223 0.817993 0.476532 0.566437 0.869080 0.477234 0.566650 0.915527 0.477722 0.566833 0.000000 0.489288 0.560181 0.000000 0.489807 0.560394 0.019684 0.490387 0.560638 0.046387 0.491089 0.560852 0.079681 0.491608 0.561096 0.106506 0.492401 0.561340 0.131653 0.492920 0.561554 0.155060 0.493500 0.561768 0.176971 0.494202 0.562012 0.197876 0.494781 0.562256 0.217804 0.495544 0.562500 0.237152 0.496033 0.562714 0.256317 0.496613 0.562927 0.275574 0.497345 0.563141 0.295227 0.497925 0.563416 0.315552 0.498383 0.563599 0.337006 0.499176 0.563812 0.359863 0.499664 0.564087 0.384430 0.500366 0.564301 0.410950 0.500946 0.564514 0.439789 0.501495 0.564697 0.471252 0.502075 0.565125 0.505646 0.502716 0.565369 0.543213 0.503265 0.565582 0.583679 0.503967 0.565796 0.626953 0.504517 0.565979 0.672485 0.504944 0.566223 0.719666 0.505676 0.566437 0.768463 0.506165 0.566650 0.818481 0.506653 0.566833 0.869232 0.507324 0.567047 0.915527 0.507843 0.567230 0.000000 0.522430 0.560608 0.000000 0.522980 0.560822 0.022125 0.523468 0.561096 0.050385 0.524261 0.561340 0.082062 0.524780 0.561554 0.108643 0.525299 0.561768 0.133636 0.526093 0.562012 0.156738 0.526581 0.562256 0.178680 0.527313 0.562469 0.199310 0.527863 0.562714 0.219116 0.528412 0.562927 0.238495 0.529144 0.563141 0.257507 0.529663 0.563385 0.276642 0.530182 0.563599 0.296326 0.530945 0.563812 0.316650 0.531433 0.564056 0.338104 0.532013 0.564270 0.360931 0.532715 0.564514 0.385498 0.533234 0.564697 0.411987 0.533875 0.565125 0.440887 0.534454 0.565369 0.472260 0.535004 0.565582 0.506683 0.535675 0.565796 0.544128 0.536194 0.565979 0.584686 0.536682 0.566193 0.627838 0.537201 0.566437 0.673065 0.537872 0.566650 0.720306 0.538330 0.566833 0.769073 0.538879 0.567047 0.818756 0.539459 0.567200 0.869385 0.539948 0.567444 0.915527 0.540405 0.567596 0.000000 0.558502 0.561096 0.000000 0.559174 0.561310 0.024475 0.559723 0.561554 0.054810 0.560242 0.561768 0.084412 0.560883 0.561981 0.110840 0.561523 0.562256 0.135559 0.562012 0.562469 0.158539 0.562744 0.562683 0.180115 0.563263 0.562927 0.200684 0.563782 0.563141 0.220398 0.564484 0.563385 0.239624 0.565033 0.563599 0.258636 0.565491 0.563812 0.277710 0.566223 0.564056 0.297424 0.566772 0.564270 0.317719 0.567200 0.564514 0.339172 0.567932 0.564697 0.361969 0.568451 0.565125 0.386566 0.568909 0.565338 0.413086 0.569641 0.565582 0.441864 0.570099 0.565796 0.473206 0.570587 0.565979 0.507599 0.571289 0.566193 0.545135 0.571747 0.566406 0.585632 0.572174 0.566650 0.628632 0.572876 0.566833 0.673859 0.573334 0.567017 0.720734 0.573730 0.567200 0.769440 0.574402 0.567444 0.819000 0.574799 0.567566 0.869446 0.575256 0.567749 0.915527 0.575714 0.567963 0.000000 0.597412 0.561523 0.001587 0.598175 0.561768 0.026947 0.598633 0.561981 0.058868 0.599152 0.562225 0.086700 0.599823 0.562469 0.112976 0.600281 0.562683 0.137421 0.600800 0.562927 0.160248 0.601471 0.563141 0.181641 0.601990 0.563385 0.202026 0.602448 0.563599 0.221649 0.603149 0.563812 0.240906 0.603577 0.564056 0.259827 0.604065 0.564270 0.278870 0.604767 0.564514 0.298523 0.605225 0.564697 0.318787 0.605713 0.565063 0.340210 0.606323 0.565338 0.363037 0.606812 0.565582 0.387573 0.607239 0.565796 0.414062 0.607727 0.565979 0.442749 0.608337 0.566193 0.474182 0.608795 0.566406 0.508575 0.609222 0.566620 0.546112 0.609833 0.566803 0.586365 0.610291 0.567017 0.629333 0.610687 0.567200 0.674408 0.611115 0.567444 0.721405 0.611755 0.567566 0.769775 0.612152 0.567749 0.819214 0.612488 0.567963 0.869629 0.612885 0.568115 0.915527 0.613495 0.568298 0.000000 0.638947 0.561981 0.003815 0.639404 0.562225 0.029419 0.639832 0.562469 0.061371 0.640503 0.562683 0.089050 0.640930 0.562927 0.115112 0.641357 0.563141 0.139343 0.641815 0.563354 0.161926 0.642456 0.563568 0.183289 0.642883 0.563812 0.203400 0.643311 0.564026 0.222931 0.643951 0.564240 0.242065 0.644409 0.564484 0.260925 0.644806 0.564697 0.279968 0.645477 0.565063 0.299561 0.645874 0.565338 0.319855 0.646240 0.565552 0.341248 0.646698 0.565796 0.364044 0.647308 0.565979 0.388519 0.647736 0.566193 0.414948 0.648102 0.566406 0.443756 0.648499 0.566620 0.475220 0.649139 0.566803 0.509552 0.649475 0.567017 0.546936 0.649811 0.567200 0.587250 0.650299 0.567413 0.630219 0.650787 0.567566 0.675140 0.651123 0.567749 0.721893 0.651489 0.567963 0.770081 0.651855 0.568115 0.819580 0.652435 0.568298 0.869720 0.652740 0.568481 0.915527 0.653076 0.568665 0.000000 0.682220 0.562469 0.006165 0.682861 0.562653 0.031830 0.683228 0.562897 0.063995 0.683624 0.563141 0.091400 0.683960 0.563354 0.117157 0.684540 0.563568 0.141083 0.684937 0.563812 0.163544 0.685333 0.564026 0.184723 0.685730 0.564240 0.204926 0.686249 0.564484 0.224152 0.686646 0.564697 0.243286 0.687042 0.565063 0.262085 0.687378 0.565338 0.281036 0.687988 0.565552 0.300659 0.688324 0.565796 0.320892 0.688660 0.565979 0.342346 0.689026 0.566162 0.365051 0.689331 0.566376 0.389496 0.689911 0.566620 0.415955 0.690247 0.566803 0.444794 0.690552 0.567017 0.476227 0.690887 0.567169 0.510498 0.691498 0.567413 0.547821 0.691772 0.567566 0.588135 0.692108 0.567749 0.630798 0.692383 0.567963 0.675629 0.692719 0.568115 0.722412 0.693207 0.568298 0.770630 0.693451 0.568481 0.819885 0.693756 0.568634 0.869781 0.694092 0.568817 0.915527 0.694366 0.569000 0.000000 0.727356 0.562897 0.008545 0.727661 0.563141 0.034210 0.727966 0.563354 0.066345 0.728271 0.563568 0.093811 0.728821 0.563812 0.119263 0.729187 0.564026 0.142975 0.729462 0.564240 0.165222 0.729767 0.564484 0.186127 0.730072 0.564697 0.206238 0.730438 0.565002 0.225403 0.730865 0.565338 0.244415 0.731171 0.565552 0.263184 0.731506 0.565765 0.282135 0.731781 0.565979 0.301666 0.732147 0.566162 0.321838 0.732574 0.566376 0.343384 0.732819 0.566589 0.366089 0.733124 0.566772 0.390472 0.733398 0.566986 0.416962 0.733734 0.567169 0.445801 0.734161 0.567413 0.477142 0.734436 0.567535 0.511383 0.734711 0.567749 0.548737 0.734955 0.567932 0.588959 0.735138 0.568115 0.631622 0.735596 0.568298 0.676392 0.735870 0.568451 0.722900 0.736145 0.568634 0.770905 0.736359 0.568817 0.820129 0.736572 0.568970 0.869873 0.736786 0.569122 0.915527 0.737030 0.569305 0.000000 0.773560 0.563324 0.010925 0.773773 0.563538 0.036591 0.774048 0.563812 0.068970 0.774261 0.563995 0.096008 0.774506 0.564209 0.121277 0.774750 0.564484 0.144836 0.775177 0.564697 0.166779 0.775452 0.565002 0.187653 0.775665 0.565338 0.207550 0.775879 0.565521 0.226776 0.776123 0.565765 0.245575 0.776337 0.565948 0.264282 0.776764 0.566162 0.283203 0.777008 0.566376 0.302490 0.777222 0.566589 0.322784 0.777466 0.566772 0.344147 0.777649 0.566986 0.367004 0.777863 0.567169 0.391479 0.778076 0.567413 0.417969 0.778259 0.567535 0.446655 0.778625 0.567749 0.477966 0.778839 0.567932 0.512177 0.779114 0.568115 0.549652 0.779266 0.568268 0.589630 0.779449 0.568451 0.632233 0.779633 0.568634 0.676849 0.779816 0.568817 0.723267 0.780029 0.568970 0.771210 0.780334 0.569092 0.820282 0.780518 0.569305 0.869995 0.780701 0.569427 0.915527 0.780853 0.569580 0.000000 0.820496 0.563782 0.013306 0.820648 0.563995 0.038910 0.820831 0.564209 0.071350 0.820923 0.564453 0.098175 0.821136 0.564697 0.123077 0.821381 0.565002 0.146423 0.821716 0.565338 0.168488 0.821808 0.565521 0.189087 0.821960 0.565765 0.208801 0.822144 0.565948 0.227875 0.822296 0.566162 0.246674 0.822449 0.566376 0.265320 0.822540 0.566589 0.284241 0.822754 0.566772 0.303528 0.822906 0.566986 0.323700 0.823151 0.567169 0.345123 0.823395 0.567383 0.367859 0.823517 0.567535 0.392456 0.823700 0.567719 0.418854 0.823792 0.567932 0.447479 0.823944 0.568115 0.478882 0.824036 0.568268 0.513123 0.824158 0.568451 0.550232 0.824310 0.568634 0.590454 0.824402 0.568817 0.632874 0.824554 0.568970 0.677429 0.824768 0.569092 0.723877 0.825012 0.569275 0.771698 0.825104 0.569427 0.820496 0.825165 0.569580 0.870178 0.825287 0.569733 0.915527 0.825409 0.569855 0.000000 0.867798 0.564209 0.015594 0.867981 0.564453 0.041290 0.868164 0.564697 0.073639 0.868286 0.564941 0.100372 0.868378 0.565338 0.125061 0.868469 0.565521 0.148285 0.868561 0.565735 0.169922 0.868622 0.565948 0.190430 0.868713 0.566132 0.210052 0.868744 0.566345 0.229126 0.868835 0.566589 0.247772 0.868958 0.566772 0.266327 0.868988 0.566956 0.285217 0.869110 0.567169 0.304504 0.869110 0.567383 0.324707 0.869202 0.567535 0.346100 0.869263 0.567719 0.368835 0.869354 0.567932 0.393158 0.869385 0.568115 0.419617 0.869446 0.568268 0.448395 0.869568 0.568451 0.479767 0.869720 0.568634 0.513977 0.869873 0.568787 0.551117 0.869934 0.568970 0.591003 0.869995 0.569092 0.633392 0.870087 0.569275 0.677917 0.870148 0.569427 0.724213 0.870178 0.569580 0.771973 0.870239 0.569733 0.820740 0.870270 0.569855 0.870392 0.870331 0.570007 0.915527 0.870361 0.570099 0.000000 0.915527 0.564667 0.018005 0.915527 0.564941 0.043488 0.915527 0.565338 0.075989 0.915527 0.565491 0.102325 0.915527 0.565735 0.126984 0.915527 0.565948 0.149841 0.915527 0.566132 0.171356 0.915527 0.566345 0.191742 0.915527 0.566559 0.211273 0.915527 0.566772 0.230286 0.915527 0.566956 0.248901 0.915527 0.567139 0.267242 0.915527 0.567383 0.286072 0.915527 0.567535 0.305481 0.915527 0.567719 0.325653 0.915527 0.567902 0.347015 0.915527 0.568115 0.369720 0.915527 0.568268 0.394104 0.915527 0.568451 0.420563 0.915527 0.568604 0.449280 0.915527 0.568787 0.480438 0.915527 0.568939 0.514587 0.915527 0.569092 0.551880 0.915527 0.569275 0.591797 0.915527 0.569427 0.634064 0.915527 0.569580 0.678406 0.915527 0.569733 0.724548 0.915527 0.569855 0.772217 0.915527 0.569977 0.821014 0.915527 0.570099 0.870514 0.915527 0.570251 0.915527 0.915527 0.570343 0.000000 0.000000 0.576294 0.000000 0.000000 0.576416 0.000000 0.000000 0.576508 0.003662 0.000000 0.576660 0.030457 0.000000 0.576813 0.064026 0.000000 0.576965 0.093079 0.000000 0.577118 0.120209 0.000000 0.577271 0.145294 0.000000 0.577393 0.168884 0.000000 0.577576 0.191132 0.000000 0.577728 0.212341 0.000000 0.577942 0.232910 0.000000 0.578064 0.253052 0.000000 0.578247 0.273376 0.000000 0.578400 0.294098 0.000000 0.578613 0.315674 0.000000 0.578766 0.338562 0.000000 0.579010 0.362885 0.000000 0.579163 0.389191 0.000000 0.579346 0.417999 0.000000 0.579529 0.449463 0.000000 0.579742 0.483978 0.000000 0.579956 0.522064 0.000000 0.580109 0.563751 0.000000 0.580353 0.608826 0.000000 0.580566 0.656433 0.000000 0.580750 0.706421 0.000000 0.580963 0.758179 0.000000 0.581207 0.811401 0.000000 0.581390 0.865601 0.000000 0.581604 0.915527 0.000458 0.581818 0.000000 0.000000 0.576508 0.000000 0.000000 0.576660 0.000000 0.000000 0.576813 0.005096 0.000000 0.576965 0.032043 0.000000 0.577118 0.065704 0.000000 0.577271 0.094482 0.000000 0.577393 0.121552 0.000000 0.577576 0.146576 0.000000 0.577728 0.170044 0.000000 0.577942 0.192200 0.000641 0.578064 0.213318 0.001678 0.578247 0.233887 0.002808 0.578400 0.253967 0.003876 0.578613 0.274200 0.005096 0.578766 0.295044 0.006348 0.578979 0.316559 0.007568 0.579132 0.339355 0.008820 0.579346 0.363831 0.010101 0.579529 0.390198 0.011414 0.579742 0.418945 0.012726 0.579956 0.450409 0.014069 0.580109 0.484924 0.015442 0.580353 0.523010 0.016907 0.580566 0.564728 0.018341 0.580719 0.609497 0.019745 0.580963 0.657074 0.021210 0.581177 0.706909 0.022614 0.581360 0.758575 0.024078 0.581604 0.811646 0.025635 0.581818 0.865784 0.027161 0.582001 0.915527 0.028687 0.582245 0.000000 0.018250 0.576782 0.000000 0.019165 0.576965 0.000000 0.020111 0.577118 0.006592 0.021179 0.577271 0.033539 0.022278 0.577362 0.067291 0.023315 0.577576 0.096161 0.024475 0.577728 0.122894 0.025421 0.577911 0.147919 0.026581 0.578064 0.171204 0.027802 0.578217 0.193298 0.028992 0.578400 0.214355 0.030212 0.578613 0.234863 0.031464 0.578766 0.254944 0.032684 0.578979 0.275146 0.033966 0.579132 0.295990 0.035248 0.579346 0.317535 0.036560 0.579529 0.340240 0.037872 0.579712 0.364685 0.039215 0.579956 0.391083 0.040527 0.580109 0.419800 0.041962 0.580353 0.451233 0.043274 0.580536 0.485962 0.044678 0.580719 0.524017 0.046661 0.580963 0.565704 0.048828 0.581177 0.610413 0.051636 0.581360 0.657867 0.054352 0.581573 0.707672 0.056946 0.581787 0.759247 0.059265 0.582001 0.812195 0.060822 0.582245 0.865906 0.062378 0.582458 0.915527 0.064056 0.582703 0.000000 0.048706 0.577087 0.000000 0.050598 0.577240 0.000000 0.052460 0.577362 0.008118 0.054474 0.577545 0.035156 0.056519 0.577728 0.069122 0.058319 0.577911 0.097656 0.059662 0.578033 0.124512 0.060944 0.578217 0.149323 0.062195 0.578400 0.172455 0.063568 0.578613 0.194336 0.064941 0.578766 0.215454 0.066223 0.578979 0.235687 0.067596 0.579132 0.255951 0.068787 0.579315 0.276123 0.070221 0.579529 0.296875 0.071625 0.579712 0.318481 0.072998 0.579956 0.341217 0.074463 0.580078 0.365570 0.075958 0.580322 0.391968 0.077362 0.580536 0.420746 0.078827 0.580719 0.452240 0.080322 0.580963 0.486969 0.081787 0.581177 0.525055 0.083282 0.581360 0.566437 0.084808 0.581573 0.611237 0.086304 0.581787 0.658661 0.087799 0.582001 0.708191 0.089325 0.582245 0.759613 0.090820 0.582458 0.812469 0.092377 0.582703 0.866028 0.093903 0.582916 0.915527 0.095398 0.583130 0.000000 0.084839 0.577362 0.000000 0.085999 0.577545 0.000000 0.087067 0.577698 0.009888 0.088074 0.577911 0.036926 0.089325 0.578033 0.070862 0.090515 0.578217 0.099426 0.091736 0.578400 0.125977 0.092834 0.578613 0.150635 0.094055 0.578766 0.173676 0.095306 0.578979 0.195587 0.096588 0.579132 0.216553 0.097870 0.579315 0.236755 0.099121 0.579529 0.256866 0.100342 0.579712 0.277130 0.101654 0.579956 0.297729 0.103027 0.580078 0.319366 0.104340 0.580322 0.342255 0.105743 0.580536 0.366577 0.107117 0.580719 0.392975 0.108521 0.580963 0.421783 0.109772 0.581177 0.453278 0.111053 0.581360 0.487762 0.112457 0.581573 0.525970 0.113861 0.581787 0.567444 0.115234 0.582001 0.612091 0.116669 0.582245 0.659332 0.118134 0.582458 0.708954 0.119476 0.582672 0.760254 0.120911 0.582886 0.812744 0.122345 0.583130 0.866241 0.123749 0.583344 0.915527 0.125183 0.583557 0.000000 0.115509 0.577698 0.000000 0.116638 0.577911 0.000000 0.117737 0.578033 0.011627 0.118683 0.578217 0.038727 0.119812 0.578400 0.072723 0.120941 0.578583 0.101044 0.122009 0.578735 0.127472 0.123077 0.578949 0.152008 0.124268 0.579132 0.175140 0.125458 0.579315 0.196930 0.126526 0.579498 0.217712 0.127716 0.579712 0.237823 0.128967 0.579926 0.257812 0.130157 0.580078 0.278107 0.131409 0.580322 0.298737 0.132477 0.580505 0.320221 0.133728 0.580688 0.343231 0.135040 0.580933 0.367584 0.136292 0.581146 0.394012 0.137482 0.581329 0.422821 0.138641 0.581573 0.454315 0.139893 0.581787 0.488831 0.141205 0.582001 0.526917 0.142548 0.582214 0.568451 0.143799 0.582458 0.613007 0.144867 0.582672 0.660217 0.146179 0.582886 0.709473 0.147461 0.583130 0.760651 0.148773 0.583344 0.813171 0.150055 0.583527 0.866608 0.151245 0.583771 0.915527 0.152466 0.584015 0.000000 0.144318 0.578033 0.000000 0.145386 0.578217 0.000000 0.146149 0.578369 0.013458 0.147247 0.578583 0.040527 0.148132 0.578735 0.074738 0.149200 0.578949 0.102905 0.150269 0.579102 0.129181 0.151245 0.579315 0.153564 0.152283 0.579498 0.176422 0.153412 0.579712 0.198120 0.154297 0.579926 0.218811 0.155457 0.580078 0.238922 0.156586 0.580292 0.258850 0.157715 0.580505 0.279053 0.158661 0.580688 0.299744 0.159790 0.580933 0.321259 0.160980 0.581146 0.344086 0.161926 0.581329 0.368652 0.163086 0.581543 0.395050 0.164276 0.581757 0.423889 0.165283 0.582001 0.455414 0.166412 0.582214 0.489929 0.167633 0.582428 0.527985 0.168793 0.582672 0.569458 0.169769 0.582886 0.613983 0.170929 0.583130 0.660858 0.172089 0.583344 0.710266 0.173218 0.583527 0.761139 0.174255 0.583771 0.813538 0.175446 0.583984 0.866760 0.176605 0.584229 0.915527 0.177582 0.584473 0.000000 0.170776 0.578369 0.000000 0.171631 0.578583 0.000000 0.172516 0.578735 0.015320 0.173462 0.578949 0.042419 0.174225 0.579102 0.076721 0.175293 0.579315 0.104736 0.176086 0.579498 0.130707 0.177094 0.579681 0.155060 0.178131 0.579926 0.177765 0.178955 0.580048 0.199341 0.180023 0.580292 0.220001 0.180786 0.580505 0.240051 0.181885 0.580688 0.259979 0.182953 0.580933 0.279999 0.183777 0.581146 0.300812 0.184845 0.581329 0.322327 0.185791 0.581543 0.345093 0.186768 0.581757 0.369659 0.187866 0.581970 0.396118 0.188782 0.582214 0.424927 0.189819 0.582428 0.456268 0.190918 0.582642 0.491028 0.191772 0.582886 0.529022 0.192902 0.583099 0.570312 0.193970 0.583344 0.614685 0.194855 0.583527 0.661713 0.195892 0.583771 0.710754 0.196930 0.583984 0.761780 0.197845 0.584229 0.813812 0.198914 0.584442 0.866882 0.199890 0.584656 0.915527 0.200897 0.584900 0.000000 0.195160 0.578735 0.000000 0.195953 0.578949 0.000000 0.196655 0.579102 0.017242 0.197632 0.579315 0.044373 0.198425 0.579468 0.078735 0.199249 0.579681 0.106506 0.200195 0.579926 0.132477 0.200928 0.580048 0.156525 0.201843 0.580292 0.179108 0.202637 0.580505 0.200592 0.203613 0.580658 0.221191 0.204346 0.580933 0.241180 0.205292 0.581116 0.261047 0.206238 0.581329 0.281097 0.207123 0.581543 0.301849 0.207916 0.581757 0.323364 0.208893 0.581970 0.346161 0.209869 0.582184 0.370667 0.210632 0.582428 0.397186 0.211639 0.582642 0.425842 0.212463 0.582886 0.457306 0.213440 0.583099 0.492035 0.214355 0.583313 0.530060 0.215240 0.583527 0.571320 0.216217 0.583740 0.615662 0.217010 0.583984 0.662598 0.218018 0.584198 0.711609 0.218811 0.584442 0.762177 0.219818 0.584656 0.814117 0.220764 0.584900 0.867035 0.221558 0.585144 0.915527 0.222595 0.585327 0.000000 0.217896 0.579102 0.000000 0.218475 0.579315 0.000000 0.219360 0.579468 0.019257 0.220062 0.579681 0.046936 0.220917 0.579895 0.080841 0.221558 0.580048 0.108429 0.222473 0.580292 0.134064 0.223114 0.580475 0.157959 0.223999 0.580658 0.180450 0.224762 0.580902 0.201843 0.225647 0.581116 0.222382 0.226318 0.581329 0.242310 0.227264 0.581512 0.262146 0.227966 0.581757 0.282196 0.228851 0.581970 0.302734 0.229584 0.582184 0.324432 0.230530 0.582397 0.347229 0.231262 0.582642 0.371582 0.232178 0.582855 0.398102 0.232880 0.583099 0.426880 0.233826 0.583313 0.458435 0.234528 0.583527 0.493164 0.235504 0.583740 0.531067 0.236206 0.583984 0.572327 0.237152 0.584198 0.616669 0.237854 0.584442 0.663239 0.238770 0.584656 0.712189 0.239624 0.584900 0.762726 0.240417 0.585114 0.814545 0.241150 0.585327 0.867157 0.242065 0.585571 0.915527 0.242920 0.585815 0.000000 0.239136 0.579468 0.000000 0.239960 0.579681 0.000000 0.240540 0.579895 0.021393 0.241180 0.580048 0.050415 0.241943 0.580261 0.082977 0.242615 0.580475 0.110382 0.243439 0.580658 0.135864 0.244080 0.580902 0.159637 0.244904 0.581116 0.182068 0.245575 0.581329 0.203125 0.246338 0.581512 0.223572 0.247070 0.581757 0.243439 0.247833 0.581970 0.263245 0.248566 0.582184 0.283295 0.249390 0.582397 0.303802 0.250092 0.582642 0.325409 0.250916 0.582855 0.348297 0.251617 0.583069 0.372650 0.252289 0.583313 0.399139 0.253204 0.583496 0.428040 0.253876 0.583740 0.459564 0.254730 0.583984 0.494202 0.255402 0.584198 0.532043 0.256287 0.584412 0.573395 0.256927 0.584656 0.617401 0.257843 0.584869 0.664154 0.258484 0.585114 0.712860 0.259369 0.585327 0.763275 0.260040 0.585571 0.814911 0.260895 0.585815 0.867310 0.261536 0.585999 0.915527 0.262329 0.586273 0.000000 0.259521 0.579895 0.000000 0.260101 0.580017 0.000000 0.260895 0.580261 0.023468 0.261444 0.580475 0.054230 0.262054 0.580658 0.085083 0.262848 0.580902 0.112213 0.263428 0.581116 0.137512 0.264252 0.581329 0.161224 0.264832 0.581512 0.183411 0.265625 0.581726 0.204437 0.266235 0.581940 0.224792 0.267029 0.582184 0.244629 0.267670 0.582397 0.264374 0.268311 0.582642 0.284363 0.269104 0.582855 0.304840 0.269714 0.583069 0.326477 0.270569 0.583313 0.349426 0.271179 0.583496 0.373749 0.272064 0.583710 0.400269 0.272644 0.583984 0.429108 0.273254 0.584167 0.460632 0.274078 0.584412 0.495148 0.274750 0.584656 0.533051 0.275543 0.584869 0.574402 0.276184 0.585114 0.618378 0.277039 0.585297 0.665009 0.277679 0.585571 0.713409 0.278473 0.585785 0.763672 0.279114 0.585999 0.815186 0.279694 0.586243 0.867462 0.280579 0.586487 0.915527 0.281158 0.586670 0.000000 0.279236 0.580261 0.000000 0.279755 0.580475 0.000000 0.280548 0.580658 0.025757 0.281067 0.580872 0.058319 0.281830 0.581085 0.087128 0.282410 0.581329 0.114166 0.283051 0.581512 0.139374 0.283752 0.581726 0.162872 0.284302 0.581940 0.184784 0.285034 0.582153 0.205719 0.285675 0.582397 0.226044 0.286285 0.582642 0.245819 0.287048 0.582825 0.265533 0.287598 0.583069 0.285522 0.288391 0.583313 0.305969 0.289001 0.583496 0.327545 0.289825 0.583710 0.350494 0.290405 0.583984 0.374878 0.290985 0.584167 0.401367 0.291779 0.584412 0.430206 0.292358 0.584656 0.461761 0.293213 0.584869 0.496246 0.293793 0.585114 0.534149 0.294556 0.585297 0.575378 0.295197 0.585541 0.619293 0.295746 0.585785 0.665680 0.296539 0.585968 0.714172 0.297150 0.586243 0.764282 0.297913 0.586487 0.815491 0.298523 0.586670 0.867615 0.299164 0.586914 0.915527 0.299927 0.587158 0.000000 0.298767 0.580658 0.000000 0.299377 0.580872 0.001831 0.300018 0.581085 0.027863 0.300537 0.581299 0.060669 0.301239 0.581512 0.089447 0.301819 0.581696 0.116180 0.302338 0.581940 0.141022 0.303131 0.582153 0.164398 0.303680 0.582367 0.186310 0.304443 0.582611 0.207214 0.304962 0.582825 0.227295 0.305542 0.583069 0.246979 0.306335 0.583313 0.266693 0.306885 0.583466 0.286621 0.307526 0.583710 0.307068 0.308197 0.583954 0.328613 0.308777 0.584167 0.351593 0.309540 0.584381 0.375977 0.310120 0.584656 0.402466 0.310913 0.584869 0.431305 0.311462 0.585083 0.462891 0.312073 0.585297 0.497345 0.312836 0.585541 0.535248 0.313385 0.585785 0.576263 0.314117 0.585968 0.620300 0.314758 0.586243 0.666534 0.315338 0.586456 0.714783 0.316101 0.586670 0.764679 0.316681 0.586914 0.815979 0.317413 0.587128 0.867920 0.317993 0.587341 0.915527 0.318512 0.587585 0.000000 0.318359 0.581085 0.000000 0.319031 0.581299 0.003815 0.319611 0.581512 0.030121 0.320099 0.581696 0.063049 0.320862 0.581909 0.091583 0.321381 0.582153 0.118164 0.321991 0.582367 0.142914 0.322662 0.582611 0.166016 0.323242 0.582825 0.187866 0.323944 0.583038 0.208557 0.324493 0.583313 0.228485 0.325043 0.583466 0.248169 0.325806 0.583710 0.267822 0.326355 0.583954 0.287689 0.327057 0.584167 0.308167 0.327667 0.584381 0.329651 0.328247 0.584656 0.352417 0.328979 0.584839 0.377075 0.329559 0.585083 0.403595 0.330139 0.585297 0.432495 0.330872 0.585541 0.463989 0.331421 0.585754 0.498444 0.332184 0.585968 0.536346 0.332733 0.586212 0.577301 0.333374 0.586456 0.621002 0.334045 0.586639 0.667328 0.334564 0.586914 0.715454 0.335358 0.587128 0.765320 0.335907 0.587311 0.816223 0.336456 0.587585 0.868103 0.337219 0.587799 0.915527 0.337769 0.587982 0.000000 0.338654 0.581512 0.000000 0.339203 0.581696 0.006042 0.339691 0.581909 0.032410 0.340393 0.582123 0.065491 0.340942 0.582367 0.093872 0.341461 0.582611 0.120148 0.342194 0.582825 0.144714 0.342743 0.583038 0.167633 0.343475 0.583282 0.189270 0.343994 0.583466 0.209869 0.344543 0.583679 0.229736 0.345276 0.583954 0.249329 0.345825 0.584137 0.268982 0.346405 0.584381 0.288818 0.347137 0.584625 0.309296 0.347656 0.584839 0.330780 0.348419 0.585083 0.353577 0.348969 0.585297 0.378204 0.349518 0.585541 0.404694 0.350311 0.585754 0.433502 0.350800 0.585968 0.465027 0.351593 0.586212 0.499573 0.352112 0.586456 0.537415 0.352661 0.586639 0.578339 0.353424 0.586884 0.621948 0.353973 0.587128 0.667999 0.354523 0.587311 0.716156 0.355255 0.587555 0.765747 0.355774 0.587769 0.816528 0.356537 0.587982 0.868225 0.357086 0.588226 0.915527 0.357574 0.588440 0.000000 0.359589 0.581909 0.000000 0.360260 0.582123 0.008331 0.360718 0.582367 0.034821 0.361481 0.582611 0.067963 0.362000 0.582794 0.096008 0.362518 0.583038 0.122040 0.363312 0.583282 0.146393 0.363800 0.583466 0.169159 0.364349 0.583679 0.190674 0.365051 0.583954 0.211182 0.365631 0.584137 0.231018 0.366333 0.584381 0.250549 0.366913 0.584625 0.270111 0.367462 0.584839 0.289948 0.368225 0.585052 0.310364 0.368744 0.585297 0.331909 0.369293 0.585510 0.354706 0.370026 0.585754 0.379242 0.370605 0.585968 0.405823 0.371307 0.586212 0.434601 0.371887 0.586426 0.466125 0.372406 0.586639 0.500671 0.373199 0.586884 0.538330 0.373688 0.587097 0.579346 0.374359 0.587311 0.622955 0.375000 0.587555 0.668884 0.375549 0.587769 0.716736 0.376251 0.587982 0.766174 0.376801 0.588226 0.816956 0.377319 0.588440 0.868408 0.378082 0.588623 0.915527 0.378571 0.588837 0.000000 0.381866 0.582336 0.000000 0.382355 0.582611 0.010498 0.383118 0.582794 0.037018 0.383606 0.583008 0.070374 0.384247 0.583282 0.098175 0.384888 0.583435 0.124054 0.385406 0.583679 0.148315 0.386169 0.583923 0.170868 0.386688 0.584137 0.192200 0.387238 0.584351 0.212524 0.388000 0.584625 0.232269 0.388519 0.584839 0.251740 0.389099 0.585052 0.271271 0.389832 0.585297 0.291107 0.390350 0.585510 0.311493 0.391113 0.585754 0.332977 0.391663 0.585968 0.355774 0.392181 0.586212 0.380341 0.392944 0.586426 0.406891 0.393494 0.586639 0.435699 0.394073 0.586884 0.467133 0.394806 0.587097 0.501770 0.395355 0.587311 0.539337 0.396057 0.587555 0.580292 0.396576 0.587769 0.623840 0.397095 0.587952 0.669525 0.397858 0.588196 0.717316 0.398407 0.588409 0.766785 0.398926 0.588623 0.817322 0.399689 0.588837 0.868530 0.400177 0.589081 0.915527 0.400787 0.589264 0.000000 0.405548 0.582794 0.000000 0.406311 0.583008 0.012909 0.406799 0.583282 0.039398 0.407532 0.583435 0.072723 0.408051 0.583679 0.100433 0.408630 0.583923 0.126099 0.409332 0.584137 0.150116 0.409882 0.584351 0.172455 0.410461 0.584625 0.193726 0.411163 0.584808 0.213837 0.411713 0.585052 0.233612 0.412415 0.585297 0.252930 0.412994 0.585510 0.272430 0.413574 0.585724 0.292084 0.414307 0.585968 0.312622 0.414856 0.586182 0.334137 0.415375 0.586426 0.356873 0.416168 0.586639 0.381470 0.416718 0.586884 0.407990 0.417389 0.587097 0.436676 0.417938 0.587280 0.468201 0.418518 0.587555 0.502625 0.419250 0.587769 0.540375 0.419800 0.587952 0.581146 0.420471 0.588196 0.624542 0.421082 0.588409 0.670349 0.421570 0.588623 0.718018 0.422241 0.588837 0.767212 0.422852 0.589081 0.817566 0.423370 0.589264 0.868683 0.424103 0.589508 0.915527 0.424591 0.589691 0.000000 0.431274 0.583252 0.000000 0.431824 0.583435 0.015320 0.432587 0.583649 0.041687 0.433075 0.583923 0.075287 0.433624 0.584106 0.102661 0.434418 0.584351 0.128082 0.434906 0.584595 0.151825 0.435730 0.584808 0.174164 0.436218 0.585052 0.195129 0.436768 0.585297 0.215393 0.437531 0.585510 0.234955 0.438080 0.585724 0.254120 0.438568 0.585968 0.273590 0.439392 0.586182 0.293243 0.439911 0.586395 0.313751 0.440643 0.586639 0.335205 0.441193 0.586853 0.357971 0.441742 0.587097 0.382416 0.442505 0.587280 0.408997 0.443054 0.587524 0.437775 0.443604 0.587738 0.469269 0.444336 0.587952 0.503662 0.444824 0.588196 0.541412 0.445526 0.588409 0.582092 0.446106 0.588623 0.625488 0.446655 0.588837 0.671173 0.447357 0.589081 0.718628 0.447876 0.589264 0.767731 0.448364 0.589478 0.817841 0.449097 0.589691 0.868866 0.449646 0.589905 0.915527 0.450104 0.590088 0.000000 0.459167 0.583649 0.000000 0.459717 0.583893 0.017761 0.460449 0.584106 0.044159 0.460999 0.584351 0.077667 0.461548 0.584595 0.104858 0.462280 0.584808 0.130066 0.462860 0.585022 0.153687 0.463348 0.585297 0.175659 0.464142 0.585480 0.196594 0.464661 0.585724 0.216705 0.465363 0.585968 0.236176 0.465942 0.586182 0.255341 0.466522 0.586395 0.274719 0.467224 0.586639 0.294342 0.467834 0.586853 0.314819 0.468353 0.587067 0.336304 0.469147 0.587280 0.359070 0.469635 0.587524 0.383514 0.470245 0.587738 0.410004 0.470917 0.587952 0.438873 0.471466 0.588165 0.470398 0.472198 0.588409 0.504791 0.472748 0.588623 0.542511 0.473267 0.588806 0.583160 0.473969 0.589050 0.626343 0.474487 0.589264 0.671783 0.474976 0.589478 0.719238 0.475739 0.589691 0.768158 0.476196 0.589905 0.818085 0.476715 0.590057 0.869080 0.477448 0.590271 0.915527 0.477905 0.590485 0.000000 0.489441 0.584106 0.000000 0.490021 0.584320 0.020142 0.490723 0.584595 0.047089 0.491302 0.584778 0.080109 0.491791 0.585022 0.107025 0.492615 0.585297 0.131927 0.493134 0.585480 0.155334 0.493896 0.585724 0.177216 0.494415 0.585968 0.198151 0.494965 0.586182 0.218018 0.495728 0.586395 0.237427 0.496246 0.586609 0.256500 0.496796 0.586853 0.275848 0.497528 0.587067 0.295380 0.498077 0.587280 0.315887 0.498718 0.587524 0.337341 0.499359 0.587738 0.360168 0.499878 0.587952 0.384552 0.500641 0.588165 0.411102 0.501160 0.588379 0.439941 0.501648 0.588593 0.471466 0.502411 0.588806 0.505798 0.502930 0.589050 0.543457 0.503418 0.589264 0.583984 0.504150 0.589478 0.627075 0.504639 0.589661 0.672638 0.505188 0.589905 0.719879 0.505890 0.590057 0.768524 0.506317 0.590271 0.818573 0.506897 0.590485 0.869293 0.507507 0.590668 0.915527 0.507965 0.590851 0.000000 0.522614 0.584564 0.000000 0.523163 0.584778 0.022552 0.523834 0.585022 0.051300 0.524445 0.585266 0.082428 0.525024 0.585480 0.109192 0.525635 0.585693 0.133942 0.526276 0.585968 0.157196 0.526794 0.586151 0.178894 0.527557 0.586395 0.199524 0.528076 0.586609 0.219269 0.528625 0.586853 0.238647 0.529358 0.587067 0.257660 0.529877 0.587280 0.276917 0.530640 0.587524 0.296509 0.531128 0.587738 0.317017 0.531677 0.587952 0.338348 0.532318 0.588165 0.361206 0.532928 0.588379 0.385651 0.533417 0.588593 0.412170 0.534149 0.588806 0.441010 0.534668 0.589050 0.472504 0.535187 0.589264 0.506897 0.535919 0.589447 0.544373 0.536346 0.589661 0.584808 0.536835 0.589905 0.627960 0.537537 0.590057 0.673157 0.538025 0.590271 0.720428 0.538513 0.590485 0.769135 0.539154 0.590668 0.818787 0.539642 0.590851 0.869385 0.540100 0.591064 0.915527 0.540710 0.591248 0.000000 0.558685 0.584991 0.000000 0.559418 0.585266 0.024994 0.559906 0.585449 0.055420 0.560394 0.585693 0.084839 0.561188 0.585938 0.111359 0.561676 0.586151 0.135895 0.562195 0.586365 0.158844 0.562927 0.586609 0.180420 0.563477 0.586823 0.200928 0.564087 0.587067 0.220581 0.564728 0.587280 0.239868 0.565186 0.587494 0.258820 0.565704 0.587708 0.278046 0.566437 0.587952 0.297577 0.566895 0.588165 0.317902 0.567535 0.588379 0.339355 0.568146 0.588593 0.362244 0.568604 0.588806 0.386719 0.569336 0.589050 0.413239 0.569794 0.589233 0.442108 0.570282 0.589447 0.473511 0.571014 0.589661 0.507904 0.571442 0.589874 0.545288 0.571930 0.590057 0.585754 0.572357 0.590271 0.628815 0.573029 0.590454 0.673950 0.573517 0.590668 0.720825 0.573944 0.590851 0.769501 0.574585 0.591064 0.819031 0.575012 0.591248 0.869507 0.575378 0.591400 0.915527 0.576050 0.591583 0.000000 0.597626 0.585449 0.002075 0.598328 0.585693 0.027435 0.598816 0.585938 0.059448 0.599304 0.586121 0.087189 0.599945 0.586365 0.113403 0.600494 0.586609 0.137756 0.600952 0.586823 0.160614 0.601685 0.587036 0.182068 0.602142 0.587280 0.202271 0.602600 0.587494 0.221893 0.603302 0.587708 0.241058 0.603729 0.587921 0.259979 0.604248 0.588135 0.279114 0.604950 0.588348 0.298645 0.605408 0.588593 0.319000 0.605835 0.588806 0.340363 0.606506 0.589020 0.363159 0.606964 0.589233 0.387817 0.607452 0.589447 0.414307 0.607880 0.589630 0.443115 0.608551 0.589874 0.474426 0.608948 0.590057 0.508759 0.609375 0.590271 0.546265 0.610046 0.590454 0.586731 0.610443 0.590637 0.629456 0.610870 0.590820 0.674500 0.611420 0.591034 0.721527 0.611877 0.591248 0.769806 0.612305 0.591400 0.819244 0.612671 0.591583 0.869629 0.613159 0.591766 0.915527 0.613617 0.591919 0.000000 0.639099 0.585938 0.004333 0.639557 0.586121 0.029816 0.640045 0.586365 0.061859 0.640625 0.586609 0.089630 0.641083 0.586823 0.115417 0.641541 0.587036 0.139648 0.642212 0.587250 0.162201 0.642578 0.587494 0.183502 0.643066 0.587708 0.203827 0.643616 0.587921 0.223297 0.644104 0.588135 0.242279 0.644562 0.588348 0.261139 0.644958 0.588562 0.280090 0.645599 0.588776 0.299744 0.646027 0.589020 0.320007 0.646454 0.589233 0.341431 0.647064 0.589417 0.364197 0.647461 0.589630 0.388824 0.647858 0.589874 0.415283 0.648224 0.590027 0.443909 0.648743 0.590271 0.475372 0.649231 0.590454 0.509674 0.649597 0.590637 0.547241 0.649994 0.590820 0.587372 0.650543 0.591034 0.630310 0.650940 0.591248 0.675262 0.651306 0.591400 0.721954 0.651611 0.591583 0.770203 0.652161 0.591766 0.819702 0.652527 0.591919 0.869751 0.652832 0.592072 0.915527 0.653168 0.592255 0.000000 0.682373 0.586365 0.006683 0.682953 0.586609 0.032257 0.683350 0.586792 0.064331 0.683746 0.587036 0.091919 0.684113 0.587250 0.117493 0.684723 0.587463 0.141541 0.685089 0.587677 0.163971 0.685455 0.587921 0.184967 0.685852 0.588135 0.205170 0.686462 0.588348 0.224487 0.686768 0.588562 0.243439 0.687195 0.588776 0.262238 0.687531 0.589020 0.281219 0.688110 0.589233 0.300842 0.688446 0.589417 0.321075 0.688812 0.589630 0.342499 0.689117 0.589844 0.365204 0.689636 0.590027 0.389801 0.690033 0.590271 0.416229 0.690338 0.590454 0.444946 0.690704 0.590637 0.476379 0.691040 0.590820 0.510651 0.691559 0.591034 0.547943 0.691864 0.591248 0.588287 0.692169 0.591370 0.630890 0.692474 0.591583 0.675751 0.692902 0.591766 0.722565 0.693298 0.591919 0.770660 0.693573 0.592072 0.819916 0.693909 0.592255 0.869812 0.694153 0.592407 0.915527 0.694611 0.592590 0.000000 0.727448 0.586792 0.009033 0.727814 0.587036 0.034698 0.728119 0.587250 0.066895 0.728424 0.587463 0.094147 0.728943 0.587677 0.119537 0.729218 0.587891 0.143341 0.729523 0.588135 0.165497 0.729858 0.588348 0.186554 0.730164 0.588562 0.206482 0.730621 0.588776 0.225769 0.730988 0.588989 0.244598 0.731323 0.589203 0.263367 0.731598 0.589417 0.282318 0.731873 0.589630 0.301849 0.732391 0.589844 0.322052 0.732666 0.590027 0.343506 0.732910 0.590240 0.366241 0.733215 0.590454 0.390625 0.733490 0.590637 0.417114 0.733887 0.590820 0.445953 0.734253 0.591034 0.477356 0.734497 0.591217 0.511627 0.734802 0.591370 0.548889 0.735016 0.591583 0.589111 0.735229 0.591736 0.631653 0.735748 0.591919 0.676483 0.735962 0.592072 0.722992 0.736206 0.592255 0.770966 0.736450 0.592407 0.820129 0.736664 0.592590 0.869904 0.736877 0.592743 0.915527 0.737091 0.592896 0.000000 0.773651 0.587250 0.011292 0.773834 0.587463 0.036987 0.774109 0.587677 0.069366 0.774353 0.587891 0.096344 0.774567 0.588104 0.121582 0.774902 0.588318 0.145081 0.775330 0.588531 0.167175 0.775513 0.588776 0.187988 0.775757 0.588989 0.207764 0.775970 0.589203 0.226990 0.776184 0.589417 0.245758 0.776459 0.589600 0.264435 0.776886 0.589844 0.283325 0.777100 0.590027 0.302673 0.777283 0.590240 0.323059 0.777527 0.590424 0.344360 0.777740 0.590607 0.367249 0.777924 0.590790 0.391602 0.778137 0.591003 0.418091 0.778442 0.591217 0.446869 0.778778 0.591370 0.478149 0.778931 0.591583 0.512268 0.779144 0.591736 0.549805 0.779297 0.591919 0.589722 0.779480 0.592072 0.632446 0.779663 0.592255 0.676910 0.779877 0.592407 0.723389 0.780151 0.592590 0.771271 0.780457 0.592712 0.820282 0.780609 0.592896 0.870117 0.780792 0.593018 0.915527 0.780945 0.593170 0.000000 0.820526 0.587677 0.013763 0.820679 0.587891 0.039337 0.820831 0.588104 0.071716 0.820984 0.588318 0.098541 0.821167 0.588531 0.123566 0.821472 0.588745 0.146942 0.821747 0.588989 0.168701 0.821869 0.589203 0.189362 0.822052 0.589417 0.208984 0.822174 0.589600 0.228180 0.822357 0.589844 0.246887 0.822479 0.590027 0.265533 0.822601 0.590240 0.284363 0.822815 0.590424 0.303680 0.822968 0.590607 0.323975 0.823273 0.590790 0.345245 0.823456 0.591003 0.367981 0.823578 0.591217 0.392578 0.823730 0.591370 0.419037 0.823853 0.591553 0.447723 0.823944 0.591736 0.479004 0.824066 0.591919 0.513214 0.824219 0.592072 0.550415 0.824341 0.592255 0.590576 0.824463 0.592407 0.632996 0.824615 0.592590 0.677582 0.824860 0.592712 0.723969 0.825043 0.592896 0.771759 0.825104 0.593018 0.820496 0.825195 0.593170 0.870331 0.825287 0.593262 0.915527 0.825439 0.593414 0.000000 0.867920 0.588104 0.016144 0.868103 0.588318 0.041626 0.868164 0.588531 0.074097 0.868347 0.588745 0.100708 0.868439 0.588989 0.125458 0.868469 0.589203 0.148499 0.868561 0.589386 0.170166 0.868652 0.589600 0.190674 0.868744 0.589813 0.210236 0.868774 0.590027 0.229370 0.868896 0.590210 0.247925 0.868958 0.590424 0.266571 0.869049 0.590607 0.285431 0.869110 0.590790 0.304657 0.869171 0.591003 0.324860 0.869202 0.591217 0.346161 0.869293 0.591370 0.368958 0.869354 0.591553 0.393463 0.869446 0.591736 0.419800 0.869446 0.591919 0.448547 0.869568 0.592041 0.479889 0.869781 0.592224 0.514099 0.869873 0.592407 0.551239 0.869934 0.592590 0.591095 0.870087 0.592712 0.633514 0.870087 0.592896 0.677979 0.870148 0.593018 0.724304 0.870178 0.593170 0.772064 0.870239 0.593262 0.820831 0.870270 0.593414 0.870392 0.870331 0.593567 0.915527 0.870361 0.593719 0.000000 0.915527 0.588531 0.018372 0.915527 0.588745 0.043945 0.915527 0.588989 0.076538 0.915527 0.589172 0.102783 0.915527 0.589386 0.127258 0.915527 0.589600 0.150269 0.915527 0.589813 0.171814 0.915527 0.590027 0.191986 0.915527 0.590210 0.211517 0.915527 0.590393 0.230469 0.915527 0.590607 0.249054 0.915527 0.590790 0.267578 0.915527 0.591003 0.286346 0.915527 0.591217 0.305634 0.915527 0.591339 0.325775 0.915527 0.591553 0.347137 0.915527 0.591736 0.369873 0.915527 0.591919 0.394226 0.915527 0.592041 0.420654 0.915527 0.592224 0.449402 0.915527 0.592377 0.480560 0.915527 0.592590 0.514709 0.915527 0.592712 0.552032 0.915527 0.592865 0.591858 0.915527 0.593018 0.634216 0.915527 0.593170 0.678589 0.915527 0.593262 0.724701 0.915527 0.593414 0.772247 0.915527 0.593567 0.821014 0.915527 0.593689 0.870514 0.915527 0.593842 0.915527 0.915527 0.593903 0.000000 0.000000 0.602173 0.000000 0.000000 0.602356 0.000000 0.000000 0.602478 0.003876 0.000000 0.602600 0.030701 0.000000 0.602753 0.064301 0.000000 0.602875 0.093292 0.000000 0.603027 0.120422 0.000000 0.603180 0.145599 0.000000 0.603333 0.169067 0.000000 0.603485 0.191345 0.000000 0.603668 0.212463 0.000000 0.603821 0.233032 0.000000 0.603973 0.253204 0.000000 0.604156 0.273621 0.000000 0.604340 0.294220 0.000000 0.604492 0.315948 0.000000 0.604706 0.338715 0.000000 0.604889 0.363037 0.000000 0.605103 0.389343 0.000000 0.605255 0.418121 0.000000 0.605469 0.449615 0.000000 0.605621 0.484100 0.000000 0.605835 0.522186 0.000000 0.606018 0.563904 0.000000 0.606232 0.608978 0.000000 0.606445 0.656555 0.000000 0.606628 0.706512 0.000000 0.606873 0.758301 0.000000 0.607086 0.811462 0.000000 0.607239 0.865662 0.000000 0.607483 0.915527 0.000946 0.607697 0.000000 0.000000 0.602478 0.000000 0.000000 0.602600 0.000000 0.000000 0.602753 0.005341 0.000000 0.602875 0.032257 0.000000 0.603027 0.066010 0.000000 0.603180 0.094849 0.000000 0.603333 0.121765 0.000000 0.603485 0.146973 0.000000 0.603668 0.170166 0.000000 0.603821 0.192444 0.000977 0.603973 0.213470 0.002075 0.604156 0.234039 0.003143 0.604340 0.254120 0.004303 0.604492 0.274475 0.005493 0.604675 0.295166 0.006714 0.604889 0.316711 0.007965 0.605072 0.339630 0.009247 0.605255 0.363953 0.010468 0.605438 0.390350 0.011810 0.605621 0.419098 0.013214 0.605835 0.450562 0.014648 0.606018 0.485077 0.016052 0.606232 0.523132 0.017426 0.606445 0.564850 0.018829 0.606628 0.609619 0.020233 0.606873 0.657104 0.021637 0.607086 0.707001 0.023285 0.607239 0.758667 0.024719 0.607452 0.811768 0.026184 0.607697 0.865814 0.027649 0.607880 0.915527 0.029144 0.608124 0.000000 0.018585 0.602753 0.000000 0.019562 0.602875 0.000000 0.020447 0.603027 0.006897 0.021515 0.603180 0.033844 0.022583 0.603333 0.067535 0.023682 0.603485 0.096375 0.024811 0.603668 0.123108 0.025970 0.603821 0.148224 0.027130 0.603943 0.171448 0.028351 0.604156 0.193573 0.029419 0.604340 0.214539 0.030670 0.604492 0.235016 0.031860 0.604675 0.255127 0.033264 0.604889 0.275299 0.034393 0.605072 0.296143 0.035736 0.605255 0.317657 0.037109 0.605438 0.340393 0.038300 0.605621 0.364899 0.039734 0.605835 0.391327 0.041168 0.606018 0.420013 0.042511 0.606232 0.451569 0.043915 0.606445 0.486115 0.045319 0.606628 0.524139 0.047546 0.606842 0.565826 0.049988 0.607056 0.610565 0.052551 0.607239 0.657990 0.055145 0.607452 0.707733 0.057922 0.607666 0.759308 0.059692 0.607880 0.812225 0.061279 0.608124 0.865936 0.062927 0.608337 0.915527 0.064728 0.608521 0.000000 0.049622 0.603027 0.000000 0.051270 0.603180 0.000000 0.053131 0.603302 0.008453 0.055023 0.603485 0.035492 0.057129 0.603668 0.069397 0.059052 0.603821 0.097961 0.060181 0.603943 0.124725 0.061279 0.604156 0.149506 0.062622 0.604340 0.172638 0.063965 0.604492 0.194672 0.065338 0.604675 0.215607 0.066681 0.604858 0.235901 0.068024 0.605072 0.256134 0.069427 0.605225 0.276276 0.070831 0.605438 0.297089 0.072235 0.605621 0.318634 0.073608 0.605835 0.341370 0.075043 0.606018 0.365845 0.076538 0.606232 0.392212 0.078033 0.606445 0.420898 0.079285 0.606628 0.452393 0.080872 0.606842 0.487122 0.082397 0.607056 0.525177 0.083740 0.607208 0.566650 0.085266 0.607452 0.611511 0.086823 0.607666 0.658813 0.088287 0.607880 0.708282 0.089813 0.608124 0.759644 0.091309 0.608337 0.812531 0.092987 0.608521 0.866089 0.094360 0.608795 0.915527 0.095947 0.608948 0.000000 0.085175 0.603302 0.000000 0.086304 0.603485 0.000000 0.087463 0.603638 0.010162 0.088531 0.603821 0.037170 0.089661 0.603943 0.071289 0.090851 0.604156 0.099701 0.092133 0.604309 0.126190 0.093353 0.604492 0.150848 0.094482 0.604675 0.174011 0.095703 0.604858 0.195892 0.096985 0.605072 0.216766 0.098328 0.605225 0.236938 0.099640 0.605438 0.257141 0.100952 0.605621 0.277313 0.102203 0.605804 0.298004 0.103577 0.605988 0.319611 0.104797 0.606201 0.342407 0.106140 0.606415 0.366730 0.107544 0.606628 0.393127 0.108917 0.606842 0.421936 0.110291 0.607056 0.453430 0.111694 0.607208 0.488098 0.113129 0.607452 0.526215 0.114502 0.607666 0.567596 0.115692 0.607849 0.612274 0.117096 0.608124 0.659454 0.118530 0.608307 0.709015 0.119934 0.608521 0.760345 0.121338 0.608765 0.812805 0.122772 0.608948 0.866302 0.124176 0.609192 0.915527 0.125580 0.609436 0.000000 0.115997 0.603638 0.000000 0.116943 0.603821 0.000000 0.118103 0.603943 0.011902 0.119202 0.604156 0.038971 0.120117 0.604309 0.073242 0.121307 0.604492 0.101501 0.122467 0.604645 0.127899 0.123627 0.604858 0.152344 0.124664 0.605072 0.175354 0.125885 0.605225 0.197083 0.127075 0.605438 0.217865 0.128204 0.605591 0.238037 0.129303 0.605804 0.258057 0.130585 0.605988 0.278320 0.131805 0.606201 0.298859 0.133087 0.606415 0.320618 0.134277 0.606598 0.343414 0.135376 0.606812 0.367737 0.136719 0.607056 0.394165 0.137970 0.607208 0.422943 0.139221 0.607452 0.454498 0.140411 0.607666 0.489014 0.141602 0.607849 0.527069 0.142914 0.608124 0.568604 0.144196 0.608307 0.613129 0.145477 0.608521 0.660309 0.146790 0.608765 0.709595 0.147888 0.608948 0.760742 0.149170 0.609192 0.813263 0.150452 0.609436 0.866608 0.151794 0.609619 0.915527 0.152893 0.609833 0.000000 0.144623 0.603943 0.000000 0.145660 0.604156 0.000000 0.146606 0.604309 0.013763 0.147552 0.604492 0.040833 0.148621 0.604645 0.075012 0.149475 0.604858 0.103149 0.150574 0.605042 0.129425 0.151703 0.605225 0.153870 0.152618 0.605438 0.176666 0.153687 0.605591 0.198273 0.154846 0.605804 0.219025 0.155762 0.605988 0.239105 0.156921 0.606201 0.259033 0.158081 0.606415 0.279358 0.159027 0.606598 0.299896 0.160156 0.606812 0.321411 0.161316 0.607056 0.344238 0.162476 0.607208 0.368805 0.163452 0.607452 0.395203 0.164642 0.607666 0.424042 0.165802 0.607849 0.455566 0.166870 0.608093 0.490051 0.167938 0.608307 0.528076 0.169128 0.608490 0.569641 0.170349 0.608765 0.614105 0.171295 0.608917 0.661041 0.172516 0.609161 0.710327 0.173645 0.609436 0.761169 0.174622 0.609619 0.813538 0.175781 0.609833 0.866760 0.177032 0.610107 0.915527 0.178131 0.610291 0.000000 0.171021 0.604279 0.000000 0.171997 0.604492 0.000000 0.172760 0.604645 0.015594 0.173767 0.604858 0.042755 0.174561 0.605042 0.077057 0.175568 0.605225 0.105042 0.176575 0.605408 0.131042 0.177399 0.605591 0.155273 0.178436 0.605804 0.177979 0.179260 0.605988 0.199524 0.180298 0.606201 0.220154 0.181366 0.606415 0.240234 0.182190 0.606598 0.260162 0.183228 0.606812 0.280151 0.184235 0.607025 0.300964 0.185181 0.607208 0.322479 0.186279 0.607452 0.345245 0.187103 0.607635 0.369843 0.188171 0.607849 0.396301 0.189301 0.608093 0.425110 0.190125 0.608307 0.456635 0.191254 0.608490 0.491150 0.192230 0.608765 0.529144 0.193146 0.608917 0.570618 0.194275 0.609161 0.614990 0.195282 0.609406 0.661835 0.196228 0.609589 0.710999 0.197296 0.609833 0.761871 0.198181 0.610107 0.813873 0.199249 0.610260 0.866882 0.200348 0.610474 0.915527 0.201202 0.610748 0.000000 0.195526 0.604645 0.000000 0.196198 0.604828 0.000000 0.197144 0.605042 0.017700 0.197845 0.605194 0.044678 0.198761 0.605408 0.079102 0.199493 0.605591 0.106964 0.200470 0.605804 0.132751 0.201202 0.605988 0.156799 0.202179 0.606171 0.179382 0.202911 0.606415 0.200806 0.203888 0.606598 0.221344 0.204773 0.606812 0.241333 0.205627 0.607025 0.261200 0.206604 0.607178 0.281281 0.207367 0.607452 0.302002 0.208374 0.607635 0.323517 0.209167 0.607849 0.346313 0.210175 0.608093 0.370911 0.211090 0.608276 0.397369 0.211945 0.608490 0.426117 0.212921 0.608734 0.457611 0.213715 0.608917 0.492218 0.214722 0.609161 0.530212 0.215515 0.609406 0.571533 0.216492 0.609589 0.615784 0.217499 0.609833 0.662720 0.218323 0.610046 0.711670 0.219299 0.610260 0.762268 0.220123 0.610474 0.814178 0.221100 0.610718 0.867035 0.221863 0.610931 0.915527 0.222870 0.611176 0.000000 0.218109 0.605011 0.000000 0.218781 0.605194 0.000000 0.219635 0.605408 0.019684 0.220276 0.605591 0.047699 0.221130 0.605804 0.081207 0.221832 0.605957 0.108704 0.222717 0.606171 0.134399 0.223419 0.606384 0.158356 0.224274 0.606537 0.180756 0.225006 0.606781 0.202057 0.225922 0.607025 0.222565 0.226593 0.607178 0.242493 0.227509 0.607422 0.262329 0.228210 0.607635 0.282318 0.229126 0.607819 0.303070 0.229858 0.608093 0.324615 0.230774 0.608276 0.347351 0.231476 0.608490 0.371887 0.232422 0.608734 0.398346 0.233185 0.608917 0.427185 0.234070 0.609131 0.458710 0.234802 0.609406 0.493347 0.235718 0.609589 0.531342 0.236542 0.609833 0.572479 0.237396 0.610046 0.616760 0.238342 0.610260 0.663483 0.239014 0.610443 0.712341 0.239990 0.610718 0.762909 0.240662 0.610931 0.814575 0.241638 0.611176 0.867157 0.242310 0.611389 0.915527 0.243256 0.611603 0.000000 0.239319 0.605408 0.000000 0.240143 0.605560 0.000000 0.240753 0.605804 0.021729 0.241516 0.605957 0.051208 0.242218 0.606171 0.083282 0.242950 0.606384 0.110687 0.243652 0.606537 0.136200 0.244324 0.606781 0.159882 0.245148 0.606995 0.182281 0.245819 0.607178 0.203339 0.246643 0.607422 0.223785 0.247284 0.607635 0.243622 0.248138 0.607819 0.263458 0.248840 0.608093 0.283417 0.249664 0.608276 0.304138 0.250366 0.608459 0.325653 0.251221 0.608734 0.348450 0.251862 0.608917 0.372925 0.252686 0.609131 0.399353 0.253418 0.609406 0.428192 0.254211 0.609558 0.459717 0.254974 0.609772 0.494415 0.255768 0.610046 0.532379 0.256531 0.610260 0.573517 0.257172 0.610443 0.617706 0.258087 0.610718 0.664276 0.258759 0.610931 0.712982 0.259583 0.611145 0.763275 0.260254 0.611389 0.814972 0.261139 0.611603 0.867340 0.261780 0.611816 0.915527 0.262695 0.612091 0.000000 0.259735 0.605804 0.000000 0.260315 0.605957 0.000000 0.261108 0.606171 0.023987 0.261658 0.606384 0.055023 0.262451 0.606537 0.085419 0.263062 0.606781 0.112671 0.263641 0.606995 0.137970 0.264465 0.607178 0.161591 0.265076 0.607422 0.183655 0.265869 0.607605 0.204803 0.266479 0.607819 0.225006 0.267303 0.608063 0.244812 0.267914 0.608276 0.264557 0.268494 0.608459 0.284546 0.269379 0.608734 0.305237 0.269958 0.608887 0.326752 0.270782 0.609131 0.349548 0.271393 0.609406 0.373932 0.272278 0.609558 0.400421 0.272888 0.609772 0.429260 0.273651 0.610046 0.460815 0.274353 0.610229 0.495331 0.275024 0.610443 0.533417 0.275787 0.610718 0.574554 0.276398 0.610901 0.618469 0.277252 0.611145 0.665131 0.277863 0.611389 0.713593 0.278717 0.611572 0.763885 0.279358 0.611816 0.815216 0.280121 0.612091 0.867493 0.280731 0.612244 0.915527 0.281372 0.612488 0.000000 0.279419 0.606140 0.000000 0.280121 0.606354 0.000214 0.280670 0.606537 0.026093 0.281281 0.606781 0.058838 0.282043 0.606995 0.087555 0.282593 0.607147 0.114685 0.283386 0.607422 0.139648 0.283966 0.607605 0.163086 0.284515 0.607788 0.185028 0.285278 0.608063 0.206024 0.285889 0.608276 0.226227 0.286682 0.608459 0.246002 0.287262 0.608734 0.265717 0.287933 0.608887 0.285645 0.288605 0.609131 0.306122 0.289215 0.609344 0.327820 0.290039 0.609558 0.350677 0.290619 0.609772 0.375031 0.291321 0.610016 0.401520 0.291992 0.610229 0.430389 0.292572 0.610443 0.461945 0.293396 0.610718 0.496429 0.293976 0.610901 0.534302 0.294830 0.611145 0.575623 0.295410 0.611359 0.619446 0.295959 0.611572 0.665802 0.296783 0.611816 0.714264 0.297363 0.612061 0.764374 0.298187 0.612244 0.815521 0.298767 0.612488 0.867737 0.299530 0.612732 0.915527 0.300171 0.612946 0.000000 0.298920 0.606506 0.000000 0.299683 0.606781 0.002136 0.300201 0.606995 0.028351 0.300812 0.607147 0.061035 0.301483 0.607391 0.089783 0.302002 0.607605 0.116455 0.302704 0.607788 0.141479 0.303314 0.608063 0.164673 0.303864 0.608246 0.186646 0.304657 0.608459 0.207458 0.305176 0.608704 0.227417 0.305939 0.608887 0.247162 0.306549 0.609100 0.266815 0.307068 0.609344 0.286743 0.307831 0.609558 0.307251 0.308441 0.609772 0.328949 0.309113 0.610016 0.351746 0.309784 0.610229 0.376129 0.310333 0.610443 0.402618 0.311127 0.610687 0.431488 0.311707 0.610901 0.463043 0.312500 0.611145 0.497528 0.313049 0.611359 0.535400 0.313629 0.611572 0.576538 0.314392 0.611786 0.620392 0.314972 0.612061 0.666656 0.315704 0.612244 0.714966 0.316315 0.612457 0.764771 0.316833 0.612732 0.816010 0.317627 0.612915 0.867981 0.318176 0.613129 0.915527 0.318787 0.613373 0.000000 0.318512 0.606964 0.000000 0.319275 0.607147 0.004303 0.319794 0.607391 0.030548 0.320343 0.607574 0.063507 0.321045 0.607788 0.091949 0.321564 0.608032 0.118500 0.322327 0.608246 0.143250 0.322876 0.608459 0.166351 0.323364 0.608704 0.188049 0.324158 0.608887 0.208740 0.324677 0.609100 0.228699 0.325317 0.609344 0.248352 0.326019 0.609528 0.268005 0.326538 0.609772 0.287933 0.327301 0.610016 0.308319 0.327881 0.610199 0.329803 0.328583 0.610443 0.352753 0.329224 0.610687 0.377258 0.329742 0.610901 0.403748 0.330536 0.611115 0.432617 0.331085 0.611359 0.464172 0.331635 0.611572 0.498627 0.332367 0.611786 0.536499 0.332916 0.612061 0.577423 0.333710 0.612213 0.621155 0.334229 0.612457 0.667542 0.334778 0.612732 0.715576 0.335571 0.612915 0.765472 0.336151 0.613129 0.816345 0.336761 0.613373 0.868134 0.337433 0.613525 0.915527 0.337952 0.613770 0.000000 0.338867 0.607391 0.000000 0.339386 0.607574 0.006409 0.339996 0.607788 0.032837 0.340607 0.608032 0.066010 0.341125 0.608246 0.094177 0.341797 0.608459 0.120483 0.342407 0.608704 0.145020 0.342896 0.608856 0.167847 0.343689 0.609100 0.189484 0.344177 0.609344 0.210052 0.344818 0.609528 0.230011 0.345490 0.609772 0.249542 0.346039 0.610016 0.269104 0.346680 0.610199 0.289001 0.347351 0.610443 0.309448 0.347870 0.610687 0.330933 0.348633 0.610870 0.353851 0.349182 0.611115 0.378357 0.349915 0.611359 0.404846 0.350494 0.611542 0.433746 0.351044 0.611786 0.465240 0.351776 0.612030 0.499695 0.352356 0.612213 0.537537 0.352875 0.612457 0.578461 0.353638 0.612701 0.622101 0.354187 0.612915 0.668152 0.354919 0.613098 0.716339 0.355469 0.613373 0.765839 0.356018 0.613525 0.816559 0.356720 0.613739 0.868286 0.357269 0.613983 0.915527 0.357788 0.614197 0.000000 0.359924 0.607788 0.000000 0.360443 0.608032 0.008667 0.360962 0.608215 0.035126 0.361694 0.608459 0.068329 0.362213 0.608704 0.096344 0.362823 0.608856 0.122528 0.363495 0.609100 0.146912 0.364014 0.609314 0.169586 0.364655 0.609528 0.190948 0.365295 0.609772 0.211395 0.365814 0.609985 0.231201 0.366547 0.610199 0.250732 0.367096 0.610443 0.270294 0.367676 0.610657 0.290131 0.368408 0.610870 0.310577 0.368958 0.611115 0.332062 0.369598 0.611328 0.354980 0.370239 0.611542 0.379456 0.370758 0.611786 0.405975 0.371552 0.612030 0.434845 0.372101 0.612213 0.466370 0.372681 0.612457 0.500824 0.373352 0.612701 0.538666 0.373901 0.612915 0.579468 0.374664 0.613098 0.623047 0.375214 0.613373 0.669006 0.375732 0.613525 0.716827 0.376465 0.613739 0.766266 0.376953 0.613953 0.817017 0.377533 0.614197 0.868439 0.378235 0.614410 0.915527 0.378784 0.614594 0.000000 0.382050 0.608215 0.000000 0.382660 0.608459 0.011047 0.383270 0.608643 0.037567 0.383789 0.608856 0.070770 0.384583 0.609100 0.098572 0.385101 0.609314 0.124542 0.385590 0.609528 0.148590 0.386383 0.609772 0.171143 0.386871 0.609985 0.192535 0.387482 0.610199 0.212708 0.388153 0.610413 0.232574 0.388702 0.610657 0.251953 0.389465 0.610870 0.271423 0.390045 0.611084 0.291260 0.390533 0.611328 0.311676 0.391327 0.611542 0.333160 0.391846 0.611786 0.355957 0.392395 0.612030 0.380585 0.393158 0.612213 0.407104 0.393677 0.612427 0.435944 0.394440 0.612701 0.467499 0.395020 0.612885 0.501923 0.395477 0.613098 0.539642 0.396240 0.613312 0.580505 0.396759 0.613525 0.623993 0.397522 0.613739 0.669678 0.398102 0.613953 0.717499 0.398590 0.614166 0.766907 0.399261 0.614410 0.817352 0.399841 0.614594 0.868530 0.400360 0.614807 0.915527 0.401062 0.615051 0.000000 0.405945 0.608643 0.000000 0.406464 0.608856 0.013428 0.407013 0.609070 0.039825 0.407715 0.609314 0.073273 0.408264 0.609528 0.100830 0.408966 0.609741 0.126404 0.409546 0.609985 0.150421 0.410065 0.610168 0.172760 0.410767 0.610413 0.193939 0.411377 0.610657 0.214233 0.411926 0.610870 0.233917 0.412689 0.611084 0.253174 0.413239 0.611328 0.272614 0.413879 0.611542 0.292419 0.414551 0.611786 0.312805 0.415070 0.612030 0.334259 0.415741 0.612183 0.357056 0.416382 0.612427 0.381683 0.416931 0.612701 0.408173 0.417633 0.612885 0.436890 0.418213 0.613098 0.468353 0.418762 0.613312 0.502930 0.419464 0.613495 0.540558 0.419983 0.613739 0.581299 0.420746 0.613953 0.624786 0.421265 0.614166 0.670441 0.421814 0.614380 0.718109 0.422516 0.614563 0.767242 0.423035 0.614807 0.817627 0.423523 0.615051 0.868683 0.424255 0.615173 0.915527 0.424774 0.615387 0.000000 0.431488 0.609070 0.000000 0.432190 0.609314 0.015686 0.432800 0.609497 0.042236 0.433289 0.609741 0.075745 0.433990 0.609985 0.102966 0.434570 0.610168 0.128418 0.435120 0.610413 0.152100 0.435852 0.610657 0.174438 0.436432 0.610840 0.195343 0.437103 0.611084 0.215576 0.437744 0.611328 0.235168 0.438263 0.611511 0.254303 0.438995 0.611786 0.273743 0.439575 0.612030 0.293549 0.440094 0.612183 0.313904 0.440857 0.612427 0.335358 0.441406 0.612671 0.358154 0.442108 0.612885 0.382660 0.442719 0.613098 0.409302 0.443237 0.613312 0.437927 0.443939 0.613495 0.469452 0.444519 0.613739 0.503937 0.445038 0.613953 0.541595 0.445801 0.614166 0.582275 0.446320 0.614380 0.625610 0.446838 0.614563 0.671295 0.447571 0.614777 0.718811 0.448029 0.615021 0.767883 0.448700 0.615173 0.817871 0.449310 0.615387 0.868866 0.449799 0.615631 0.915527 0.450348 0.615753 0.000000 0.459351 0.609497 0.000000 0.459930 0.609741 0.018097 0.460632 0.609955 0.044525 0.461212 0.610168 0.078003 0.461700 0.610413 0.105164 0.462494 0.610626 0.130463 0.463013 0.610840 0.153961 0.463562 0.611084 0.175903 0.464325 0.611328 0.196960 0.464874 0.611511 0.216888 0.465637 0.611786 0.236389 0.466187 0.612000 0.255524 0.466736 0.612183 0.274872 0.467499 0.612427 0.294647 0.468018 0.612671 0.315002 0.468536 0.612823 0.336456 0.469299 0.613098 0.359253 0.469849 0.613312 0.383667 0.470581 0.613495 0.410126 0.471130 0.613739 0.439026 0.471680 0.613953 0.470520 0.472382 0.614166 0.504913 0.472931 0.614380 0.542633 0.473450 0.614563 0.583252 0.474182 0.614777 0.626495 0.474701 0.615021 0.671936 0.475220 0.615173 0.719299 0.475891 0.615387 0.768250 0.476440 0.615631 0.818207 0.477020 0.615753 0.869110 0.477600 0.615997 0.915527 0.478088 0.616180 0.000000 0.489685 0.609955 0.000000 0.490204 0.610168 0.020599 0.490967 0.610382 0.048035 0.491486 0.610626 0.080444 0.492249 0.610840 0.107361 0.492767 0.611084 0.132477 0.493347 0.611298 0.155609 0.494049 0.611511 0.177643 0.494659 0.611786 0.198364 0.495300 0.612000 0.218170 0.495911 0.612183 0.237640 0.496460 0.612427 0.256744 0.497101 0.612671 0.276031 0.497742 0.612823 0.295563 0.498291 0.613098 0.316101 0.499054 0.613281 0.337555 0.499573 0.613495 0.360352 0.500092 0.613739 0.384735 0.500793 0.613922 0.411255 0.501343 0.614166 0.440094 0.501892 0.614380 0.471588 0.502625 0.614563 0.505951 0.503113 0.614777 0.543671 0.503754 0.615021 0.584259 0.504333 0.615173 0.627258 0.504822 0.615387 0.672699 0.505554 0.615601 0.720032 0.506042 0.615753 0.768585 0.506531 0.615997 0.818604 0.507202 0.616180 0.869293 0.507690 0.616364 0.915527 0.508148 0.616547 0.000000 0.522797 0.610382 0.000000 0.523376 0.610626 0.023071 0.524109 0.610809 0.051941 0.524628 0.611084 0.083008 0.525177 0.611298 0.109528 0.525879 0.611511 0.134216 0.526428 0.611755 0.157440 0.526947 0.612000 0.179138 0.527740 0.612152 0.199738 0.528290 0.612427 0.219543 0.529053 0.612671 0.238831 0.529541 0.612823 0.257843 0.530060 0.613068 0.277161 0.530792 0.613281 0.296692 0.531372 0.613495 0.317200 0.531830 0.613739 0.338623 0.532593 0.613922 0.361389 0.533112 0.614136 0.385834 0.533600 0.614349 0.412323 0.534363 0.614563 0.441162 0.534821 0.614777 0.472656 0.535400 0.614960 0.507050 0.536041 0.615143 0.544647 0.536530 0.615387 0.585022 0.537018 0.615601 0.628052 0.537720 0.615753 0.673279 0.538177 0.615967 0.720520 0.538666 0.616180 0.769226 0.539337 0.616364 0.818817 0.539825 0.616547 0.869415 0.540253 0.616730 0.915527 0.540924 0.616943 0.000000 0.558990 0.610809 0.000244 0.559570 0.611084 0.025391 0.560120 0.611298 0.056335 0.560608 0.611481 0.085327 0.561371 0.611755 0.111664 0.561859 0.612000 0.136230 0.562561 0.612152 0.159149 0.563141 0.612427 0.180664 0.563629 0.612610 0.201233 0.564392 0.612823 0.220795 0.564880 0.613068 0.240051 0.565369 0.613281 0.259003 0.566040 0.613464 0.278290 0.566650 0.613739 0.297729 0.567108 0.613922 0.318054 0.567780 0.614136 0.339722 0.568298 0.614349 0.362488 0.568756 0.614563 0.386841 0.569519 0.614746 0.413361 0.570007 0.614960 0.442261 0.570465 0.615143 0.473724 0.571167 0.615387 0.508057 0.571655 0.615601 0.545471 0.572052 0.615723 0.585938 0.572632 0.615967 0.628967 0.573242 0.616180 0.674042 0.573669 0.616364 0.720917 0.574097 0.616516 0.769531 0.574707 0.616730 0.819092 0.575165 0.616943 0.869507 0.575592 0.617065 0.915527 0.576202 0.617279 0.000000 0.598022 0.611267 0.002380 0.598511 0.611481 0.027863 0.598969 0.611755 0.059784 0.599640 0.611969 0.087646 0.600189 0.612152 0.113831 0.600647 0.612427 0.138184 0.601166 0.612610 0.160858 0.601837 0.612823 0.182312 0.602295 0.613068 0.202606 0.602844 0.613251 0.222260 0.603485 0.613464 0.241272 0.603943 0.613708 0.260162 0.604462 0.613892 0.279419 0.605103 0.614136 0.298859 0.605591 0.614349 0.319092 0.606018 0.614532 0.340515 0.606689 0.614746 0.363342 0.607147 0.614960 0.387939 0.607574 0.615143 0.414429 0.608276 0.615387 0.443329 0.608704 0.615601 0.474731 0.609131 0.615723 0.509064 0.609619 0.615967 0.546417 0.610168 0.616180 0.586823 0.610565 0.616364 0.629608 0.611023 0.616516 0.674591 0.611633 0.616730 0.721588 0.612030 0.616943 0.769867 0.612427 0.617065 0.819336 0.612793 0.617279 0.869659 0.613403 0.617401 0.915527 0.613770 0.617584 0.000000 0.639221 0.611755 0.004669 0.639709 0.611969 0.030334 0.640381 0.612152 0.062317 0.640839 0.612366 0.089966 0.641235 0.612610 0.115906 0.641693 0.612793 0.139893 0.642365 0.613068 0.162445 0.642761 0.613251 0.183716 0.643188 0.613464 0.204041 0.643860 0.613708 0.223480 0.644287 0.613892 0.242462 0.644714 0.614136 0.261292 0.645233 0.614349 0.280334 0.645782 0.614532 0.299896 0.646149 0.614746 0.320129 0.646545 0.614960 0.341553 0.647217 0.615143 0.364349 0.647614 0.615387 0.388947 0.647980 0.615570 0.415466 0.648407 0.615723 0.444061 0.648956 0.615967 0.475525 0.649384 0.616119 0.509918 0.649750 0.616364 0.547363 0.650116 0.616516 0.587616 0.650696 0.616730 0.630432 0.651062 0.616943 0.675354 0.651428 0.617065 0.722015 0.651733 0.617249 0.770386 0.652313 0.617401 0.819702 0.652649 0.617584 0.869751 0.652954 0.617737 0.915527 0.653290 0.617920 0.000000 0.682617 0.612152 0.007050 0.683075 0.612366 0.032654 0.683472 0.612610 0.064972 0.683899 0.612793 0.092224 0.684235 0.613068 0.118011 0.684845 0.613251 0.141785 0.685211 0.613434 0.164185 0.685577 0.613708 0.185242 0.686096 0.613892 0.205322 0.686554 0.614105 0.224762 0.686920 0.614319 0.243591 0.687286 0.614532 0.262421 0.687775 0.614746 0.281433 0.688202 0.614960 0.300995 0.688568 0.615143 0.321198 0.688904 0.615356 0.342621 0.689270 0.615570 0.365356 0.689819 0.615723 0.390015 0.690186 0.615967 0.416504 0.690491 0.616119 0.445068 0.690826 0.616333 0.476471 0.691345 0.616516 0.510834 0.691681 0.616730 0.548248 0.691986 0.616913 0.588379 0.692291 0.617065 0.631104 0.692566 0.617249 0.675995 0.693146 0.617401 0.722687 0.693420 0.617584 0.770721 0.693726 0.617706 0.819977 0.694000 0.617920 0.869812 0.694214 0.618042 0.915527 0.694763 0.618195 0.000000 0.727539 0.612579 0.009399 0.727875 0.612793 0.035095 0.728241 0.613037 0.067352 0.728607 0.613251 0.094482 0.729095 0.613434 0.119904 0.729401 0.613678 0.143677 0.729675 0.613892 0.165741 0.729980 0.614105 0.186798 0.730286 0.614319 0.206665 0.730835 0.614502 0.226013 0.731171 0.614716 0.244751 0.731415 0.614929 0.263519 0.731689 0.615112 0.282440 0.731964 0.615356 0.302002 0.732513 0.615570 0.322235 0.732758 0.615723 0.343628 0.733063 0.615936 0.366364 0.733307 0.616119 0.390778 0.733582 0.616333 0.417267 0.734070 0.616516 0.446045 0.734344 0.616730 0.477478 0.734589 0.616913 0.511749 0.734863 0.617065 0.548981 0.735107 0.617249 0.589233 0.735413 0.617401 0.631805 0.735840 0.617584 0.676575 0.736053 0.617706 0.723083 0.736267 0.617889 0.770996 0.736542 0.618042 0.820160 0.736755 0.618195 0.869904 0.736908 0.618378 0.915527 0.737183 0.618500 0.000000 0.773743 0.613037 0.011810 0.773956 0.613220 0.037506 0.774170 0.613434 0.069733 0.774475 0.613678 0.096710 0.774689 0.613892 0.121887 0.775116 0.614105 0.145325 0.775360 0.614319 0.167450 0.775604 0.614502 0.188171 0.775848 0.614716 0.207916 0.776062 0.614929 0.227173 0.776306 0.615112 0.245911 0.776642 0.615356 0.264618 0.776978 0.615570 0.283478 0.777161 0.615723 0.302948 0.777374 0.615936 0.323242 0.777618 0.616119 0.344635 0.777802 0.616333 0.367371 0.778015 0.616486 0.391785 0.778229 0.616730 0.418243 0.778564 0.616913 0.447021 0.778809 0.617065 0.478455 0.779022 0.617249 0.512573 0.779205 0.617401 0.549896 0.779388 0.617554 0.589844 0.779572 0.617706 0.632538 0.779755 0.617889 0.677032 0.779968 0.618042 0.723511 0.780334 0.618195 0.771332 0.780487 0.618378 0.820312 0.780670 0.618500 0.870117 0.780792 0.618683 0.915527 0.780975 0.618774 0.000000 0.820557 0.613434 0.014252 0.820770 0.613678 0.039795 0.820892 0.613861 0.072266 0.821106 0.614075 0.098846 0.821259 0.614319 0.123871 0.821625 0.614502 0.147186 0.821808 0.614716 0.168945 0.821899 0.614929 0.189514 0.822113 0.615112 0.209198 0.822266 0.615356 0.228363 0.822388 0.615570 0.247040 0.822540 0.615723 0.265686 0.822693 0.615936 0.284546 0.822815 0.616089 0.303894 0.823120 0.616333 0.324249 0.823364 0.616486 0.345490 0.823456 0.616730 0.368195 0.823608 0.616913 0.392731 0.823792 0.617065 0.419220 0.823883 0.617249 0.447968 0.823975 0.617401 0.479126 0.824127 0.617554 0.513397 0.824249 0.617706 0.550568 0.824402 0.617889 0.590637 0.824463 0.618042 0.633057 0.824768 0.618195 0.677673 0.824921 0.618378 0.723999 0.825043 0.618500 0.771820 0.825165 0.618652 0.820526 0.825256 0.618774 0.870331 0.825378 0.618927 0.915527 0.825439 0.619049 0.000000 0.867981 0.613861 0.016479 0.868103 0.614075 0.042053 0.868286 0.614319 0.074585 0.868378 0.614502 0.100983 0.868439 0.614716 0.125824 0.868530 0.614929 0.148743 0.868622 0.615112 0.170502 0.868713 0.615356 0.190887 0.868744 0.615540 0.210541 0.868835 0.615723 0.229523 0.868896 0.615936 0.248138 0.868988 0.616089 0.266754 0.869049 0.616333 0.285583 0.869110 0.616486 0.304810 0.869202 0.616699 0.324982 0.869263 0.616852 0.346344 0.869293 0.617035 0.369080 0.869385 0.617218 0.393646 0.869446 0.617401 0.420074 0.869568 0.617554 0.448669 0.869720 0.617706 0.480042 0.869781 0.617889 0.514221 0.869934 0.618042 0.551361 0.869995 0.618164 0.591248 0.870087 0.618378 0.633698 0.870087 0.618500 0.678070 0.870148 0.618652 0.724335 0.870178 0.618774 0.772095 0.870270 0.618896 0.820892 0.870331 0.619049 0.870453 0.870361 0.619171 0.915527 0.870361 0.619324 0.000000 0.915527 0.614288 0.018860 0.915527 0.614441 0.044342 0.915527 0.614716 0.076874 0.915527 0.614899 0.103088 0.915527 0.615112 0.127533 0.915527 0.615326 0.150513 0.915527 0.615540 0.172028 0.915527 0.615723 0.192352 0.915527 0.615875 0.211853 0.915527 0.616089 0.230682 0.915527 0.616333 0.249176 0.915527 0.616486 0.267761 0.915527 0.616699 0.286530 0.915527 0.616852 0.305786 0.915527 0.617035 0.325928 0.915527 0.617218 0.347260 0.915527 0.617401 0.369965 0.915527 0.617554 0.394348 0.915527 0.617706 0.420776 0.915527 0.617889 0.449554 0.915527 0.618042 0.480804 0.915527 0.618164 0.514832 0.915527 0.618347 0.552185 0.915527 0.618469 0.591949 0.915527 0.618652 0.634247 0.915527 0.618774 0.678650 0.915527 0.618896 0.724854 0.915527 0.619049 0.772308 0.915527 0.619171 0.821075 0.915527 0.619324 0.870514 0.915527 0.619385 0.915527 0.915527 0.619537 0.000000 0.000000 0.630798 0.000000 0.000000 0.630951 0.000000 0.000000 0.631042 0.004211 0.000000 0.631165 0.031036 0.000000 0.631287 0.064697 0.000000 0.631439 0.093689 0.000000 0.631622 0.120636 0.000000 0.631744 0.145905 0.000000 0.631866 0.169250 0.000000 0.632050 0.191559 0.000000 0.632233 0.212585 0.000000 0.632355 0.233154 0.000000 0.632538 0.253510 0.000000 0.632690 0.273712 0.000000 0.632874 0.294525 0.000000 0.633057 0.316101 0.000000 0.633240 0.338837 0.000000 0.633423 0.363129 0.000000 0.633606 0.389496 0.000000 0.633789 0.418243 0.000000 0.633942 0.449707 0.000000 0.634155 0.484253 0.000000 0.634338 0.522400 0.000000 0.634521 0.564148 0.000000 0.634705 0.609100 0.000000 0.634918 0.656647 0.000000 0.635132 0.706604 0.000000 0.635284 0.758301 0.000000 0.635559 0.811493 0.000000 0.635712 0.865662 0.000153 0.635925 0.915527 0.001404 0.636139 0.000000 0.000000 0.631042 0.000000 0.000000 0.631165 0.000000 0.000000 0.631287 0.005585 0.000000 0.631439 0.032501 0.000000 0.631622 0.066254 0.000000 0.631714 0.095154 0.000000 0.631866 0.122009 0.000000 0.632019 0.147125 0.000000 0.632172 0.170502 0.000305 0.632355 0.192627 0.001312 0.632538 0.213623 0.002380 0.632690 0.234192 0.003510 0.632874 0.254242 0.004669 0.633026 0.274689 0.005920 0.633240 0.295288 0.007263 0.633423 0.317017 0.008453 0.633545 0.339813 0.009796 0.633759 0.364105 0.011078 0.633942 0.390472 0.012390 0.634125 0.419250 0.013733 0.634338 0.450745 0.015137 0.634521 0.485229 0.016449 0.634705 0.523315 0.017853 0.634918 0.565002 0.019440 0.635132 0.609741 0.020874 0.635284 0.657379 0.022278 0.635529 0.707153 0.023712 0.635712 0.758789 0.025177 0.635925 0.811829 0.026672 0.636139 0.865814 0.028290 0.636322 0.915527 0.029816 0.636536 0.000000 0.018890 0.631287 0.000000 0.019897 0.631439 0.000000 0.020935 0.631592 0.007111 0.021942 0.631714 0.034180 0.023010 0.631866 0.068024 0.024017 0.632019 0.096619 0.025146 0.632172 0.123566 0.026367 0.632324 0.148438 0.027496 0.632538 0.171814 0.028717 0.632690 0.193726 0.029968 0.632874 0.214691 0.031128 0.633026 0.235199 0.032410 0.633240 0.255249 0.033661 0.633423 0.275513 0.034973 0.633545 0.296265 0.036255 0.633759 0.317780 0.037567 0.633911 0.340515 0.038910 0.634125 0.365051 0.040253 0.634308 0.391449 0.041626 0.634491 0.420258 0.042969 0.634705 0.451752 0.044373 0.634918 0.486237 0.045776 0.635101 0.524323 0.048370 0.635284 0.565948 0.050720 0.635529 0.610687 0.053375 0.635712 0.658081 0.056335 0.635925 0.707825 0.058807 0.636139 0.759338 0.060425 0.636322 0.812286 0.062012 0.636536 0.865997 0.063629 0.636780 0.915527 0.065338 0.636963 0.000000 0.050171 0.631592 0.000000 0.052032 0.631714 0.000000 0.053925 0.631866 0.008698 0.055695 0.632019 0.035858 0.057861 0.632172 0.069702 0.059387 0.632324 0.098389 0.060638 0.632538 0.125000 0.061920 0.632690 0.149750 0.063141 0.632843 0.173004 0.064392 0.633026 0.194885 0.065735 0.633240 0.215820 0.067078 0.633362 0.236237 0.068451 0.633545 0.256256 0.069855 0.633759 0.276428 0.071259 0.633911 0.297211 0.072693 0.634125 0.318756 0.074097 0.634308 0.341522 0.075592 0.634491 0.366058 0.077057 0.634705 0.392456 0.078461 0.634918 0.421051 0.079987 0.635101 0.452545 0.081482 0.635284 0.487305 0.082916 0.635529 0.525391 0.084442 0.635712 0.566956 0.085938 0.635925 0.611633 0.087463 0.636139 0.658997 0.089020 0.636292 0.708588 0.090485 0.636536 0.759766 0.092010 0.636780 0.812531 0.093567 0.636932 0.866089 0.095032 0.637177 0.915527 0.096588 0.637360 0.000000 0.085724 0.631866 0.000000 0.086639 0.632019 0.000000 0.087830 0.632172 0.010406 0.089081 0.632324 0.037659 0.090240 0.632507 0.071533 0.091217 0.632690 0.100037 0.092529 0.632843 0.126434 0.093781 0.633026 0.151062 0.095001 0.633209 0.174255 0.096344 0.633362 0.196045 0.097473 0.633545 0.216919 0.098724 0.633759 0.237274 0.100037 0.633911 0.257294 0.101349 0.634125 0.277435 0.102692 0.634308 0.298218 0.104095 0.634491 0.319733 0.105347 0.634674 0.342529 0.106720 0.634918 0.367004 0.108032 0.635101 0.393402 0.109344 0.635254 0.422119 0.110748 0.635529 0.453583 0.112122 0.635681 0.488342 0.113556 0.635925 0.526398 0.114960 0.636139 0.567810 0.116333 0.636292 0.612457 0.117798 0.636536 0.659668 0.119202 0.636749 0.709137 0.120422 0.636932 0.760376 0.121796 0.637177 0.812836 0.123230 0.637360 0.866425 0.124634 0.637573 0.915527 0.126068 0.637787 0.000000 0.116364 0.632172 0.000000 0.117432 0.632324 0.000000 0.118408 0.632507 0.012177 0.119537 0.632690 0.039398 0.120667 0.632843 0.073486 0.121643 0.632996 0.101807 0.122833 0.633209 0.128113 0.124023 0.633362 0.152649 0.125214 0.633545 0.175568 0.126221 0.633759 0.197266 0.127441 0.633911 0.218048 0.128662 0.634125 0.238342 0.129944 0.634308 0.258331 0.130951 0.634491 0.278473 0.132233 0.634674 0.299042 0.133453 0.634888 0.320740 0.134766 0.635101 0.343536 0.136017 0.635254 0.367920 0.137085 0.635529 0.394318 0.138367 0.635681 0.423126 0.139648 0.635925 0.454651 0.140930 0.636108 0.489258 0.142120 0.636292 0.527313 0.143311 0.636505 0.568756 0.144592 0.636749 0.613281 0.145905 0.636932 0.660431 0.147186 0.637177 0.709686 0.148499 0.637329 0.760834 0.149567 0.637573 0.813324 0.150879 0.637787 0.866669 0.152130 0.638000 0.915527 0.153473 0.638245 0.000000 0.144928 0.632507 0.000000 0.145966 0.632660 0.000000 0.147034 0.632843 0.014099 0.147858 0.632996 0.041321 0.148956 0.633209 0.075531 0.150024 0.633362 0.103668 0.150940 0.633545 0.129700 0.152008 0.633728 0.154053 0.153076 0.633911 0.176880 0.154083 0.634094 0.198486 0.155182 0.634277 0.219177 0.156342 0.634491 0.239319 0.157257 0.634674 0.259369 0.158417 0.634888 0.279510 0.159576 0.635101 0.300049 0.160583 0.635254 0.321564 0.161652 0.635498 0.344513 0.162872 0.635681 0.368958 0.163879 0.635864 0.395386 0.165009 0.636108 0.424194 0.166168 0.636292 0.455688 0.167328 0.636505 0.490295 0.168304 0.636749 0.528290 0.169495 0.636932 0.569763 0.170685 0.637146 0.614258 0.171875 0.637329 0.661316 0.172821 0.637573 0.710388 0.174042 0.637787 0.761292 0.175201 0.637970 0.813599 0.176147 0.638214 0.866791 0.177338 0.638428 0.915527 0.178528 0.638611 0.000000 0.171326 0.632843 0.000000 0.172272 0.632996 0.000000 0.173157 0.633209 0.016083 0.174103 0.633362 0.043213 0.175018 0.633514 0.077423 0.175873 0.633728 0.105347 0.176910 0.633911 0.131409 0.177734 0.634094 0.155518 0.178711 0.634277 0.178192 0.179779 0.634491 0.199707 0.180573 0.634674 0.220367 0.181671 0.634888 0.240387 0.182617 0.635071 0.260406 0.183533 0.635254 0.280487 0.184662 0.635498 0.301117 0.185486 0.635681 0.322632 0.186584 0.635864 0.345520 0.187653 0.636108 0.369965 0.188477 0.636261 0.396423 0.189606 0.636505 0.425293 0.190521 0.636749 0.456818 0.191559 0.636902 0.491302 0.192657 0.637146 0.529297 0.193604 0.637329 0.570770 0.194580 0.637573 0.615204 0.195679 0.637756 0.661987 0.196564 0.637970 0.711182 0.197632 0.638214 0.761902 0.198669 0.638428 0.813934 0.199554 0.638611 0.866913 0.200623 0.638885 0.915527 0.201599 0.639069 0.000000 0.195740 0.633209 0.000000 0.196472 0.633331 0.000000 0.197388 0.633514 0.018036 0.198090 0.633728 0.045135 0.199036 0.633911 0.079529 0.199829 0.634094 0.107269 0.200714 0.634277 0.133026 0.201508 0.634491 0.157196 0.202423 0.634644 0.179779 0.203400 0.634888 0.200958 0.204163 0.635071 0.221527 0.205139 0.635254 0.241547 0.205902 0.635498 0.261383 0.206909 0.635651 0.281494 0.207672 0.635864 0.302155 0.208649 0.636047 0.323639 0.209595 0.636261 0.346527 0.210449 0.636505 0.371063 0.211426 0.636688 0.397491 0.212250 0.636902 0.426331 0.213257 0.637146 0.457855 0.213989 0.637329 0.492401 0.215027 0.637573 0.530396 0.216034 0.637756 0.571808 0.216827 0.637970 0.615967 0.217804 0.638214 0.662811 0.218567 0.638428 0.711731 0.219604 0.638611 0.762329 0.220398 0.638824 0.814209 0.221405 0.639038 0.867096 0.222412 0.639252 0.915527 0.223145 0.639526 0.000000 0.218353 0.633514 0.000000 0.219116 0.633728 0.000000 0.219849 0.633911 0.020050 0.220612 0.634094 0.048340 0.221405 0.634277 0.081512 0.222198 0.634491 0.109222 0.222961 0.634644 0.134766 0.223633 0.634888 0.158630 0.224548 0.635071 0.181091 0.225311 0.635254 0.202271 0.226166 0.635498 0.222778 0.227020 0.635651 0.242645 0.227753 0.635864 0.262482 0.228668 0.636047 0.282623 0.229401 0.636261 0.303223 0.230194 0.636475 0.324738 0.231049 0.636688 0.347534 0.231995 0.636902 0.372162 0.232697 0.637146 0.398621 0.233643 0.637329 0.427460 0.234344 0.637543 0.458954 0.235291 0.637756 0.493500 0.235992 0.637970 0.531464 0.236969 0.638214 0.572693 0.237671 0.638397 0.616913 0.238586 0.638580 0.663696 0.239319 0.638824 0.712494 0.240234 0.639038 0.762970 0.240967 0.639252 0.814697 0.241882 0.639526 0.867188 0.242615 0.639679 0.915527 0.243530 0.639893 0.000000 0.239716 0.633911 0.000000 0.240356 0.634094 0.000000 0.240997 0.634277 0.022247 0.241821 0.634491 0.051819 0.242401 0.634644 0.083588 0.243286 0.634857 0.111084 0.243927 0.635071 0.136414 0.244720 0.635254 0.160217 0.245392 0.635498 0.182465 0.246094 0.635651 0.203644 0.246887 0.635864 0.223969 0.247559 0.636047 0.243805 0.248383 0.636261 0.263611 0.249054 0.636475 0.283600 0.249908 0.636688 0.304321 0.250580 0.636902 0.325836 0.251465 0.637146 0.348633 0.252136 0.637299 0.373260 0.252991 0.637543 0.399689 0.253662 0.637756 0.428558 0.254547 0.637970 0.459839 0.255188 0.638184 0.494568 0.256134 0.638397 0.532501 0.256775 0.638580 0.573669 0.257568 0.638824 0.617889 0.258301 0.639038 0.664368 0.259155 0.639252 0.713074 0.259827 0.639465 0.763367 0.260681 0.639679 0.815002 0.261383 0.639893 0.867340 0.262054 0.640167 0.915527 0.262909 0.640350 0.000000 0.259949 0.634247 0.000000 0.260681 0.634491 0.000000 0.261322 0.634644 0.024292 0.261871 0.634857 0.055573 0.262695 0.635040 0.085785 0.263245 0.635254 0.112946 0.264099 0.635437 0.138275 0.264679 0.635651 0.161835 0.265350 0.635834 0.183838 0.266083 0.636047 0.205048 0.266724 0.636230 0.225189 0.267517 0.636475 0.244965 0.268127 0.636688 0.264771 0.268951 0.636902 0.284698 0.269592 0.637115 0.305420 0.270325 0.637299 0.326935 0.271027 0.637543 0.349762 0.271729 0.637756 0.374268 0.272461 0.637909 0.400818 0.273071 0.638184 0.429443 0.273956 0.638397 0.460938 0.274597 0.638580 0.495636 0.275391 0.638824 0.533600 0.276031 0.639038 0.574707 0.276855 0.639221 0.618774 0.277496 0.639465 0.665253 0.278168 0.639679 0.713776 0.278931 0.639893 0.763977 0.279572 0.640167 0.815277 0.280396 0.640320 0.867493 0.280975 0.640564 0.915527 0.281830 0.640778 0.000000 0.279663 0.634644 0.000000 0.280396 0.634857 0.000580 0.280945 0.635040 0.026611 0.281616 0.635254 0.059296 0.282257 0.635437 0.087891 0.282806 0.635651 0.114960 0.283630 0.635834 0.139893 0.284119 0.636047 0.163330 0.284821 0.636230 0.185425 0.285522 0.636475 0.206329 0.286102 0.636688 0.226440 0.286926 0.636871 0.246155 0.287445 0.637115 0.265869 0.288269 0.637299 0.285797 0.288879 0.637543 0.306366 0.289551 0.637726 0.327972 0.290222 0.637909 0.350800 0.290833 0.638184 0.375214 0.291595 0.638397 0.401703 0.292236 0.638580 0.430511 0.292969 0.638794 0.462067 0.293610 0.639008 0.496735 0.294220 0.639221 0.534485 0.295013 0.639465 0.575745 0.295593 0.639679 0.619598 0.296417 0.639893 0.665955 0.296967 0.640106 0.714386 0.297638 0.640320 0.764496 0.298370 0.640564 0.815735 0.298981 0.640778 0.867737 0.299774 0.640961 0.915527 0.300323 0.641205 0.000000 0.299164 0.635040 0.000000 0.299866 0.635223 0.002502 0.300385 0.635437 0.028717 0.301147 0.635590 0.061584 0.301666 0.635834 0.090179 0.302185 0.636017 0.117004 0.302948 0.636230 0.141724 0.303497 0.636475 0.165070 0.304138 0.636658 0.186859 0.304840 0.636871 0.207672 0.305389 0.637115 0.227661 0.306183 0.637299 0.247345 0.306763 0.637512 0.266998 0.307281 0.637726 0.286957 0.308075 0.637909 0.307465 0.308624 0.638184 0.329102 0.309418 0.638397 0.351898 0.309998 0.638580 0.376282 0.310669 0.638794 0.402771 0.311340 0.639008 0.431671 0.311890 0.639221 0.463196 0.312683 0.639465 0.497833 0.313263 0.639679 0.535583 0.313843 0.639893 0.576752 0.314606 0.640106 0.620544 0.315186 0.640320 0.666748 0.315948 0.640564 0.715149 0.316528 0.640717 0.764923 0.317200 0.640961 0.816101 0.317810 0.641205 0.867981 0.318359 0.641357 0.915527 0.319122 0.641571 0.000000 0.318726 0.635437 0.000000 0.319458 0.635590 0.004639 0.319977 0.635834 0.031006 0.320709 0.636017 0.063995 0.321259 0.636230 0.092316 0.321777 0.636475 0.118774 0.322540 0.636658 0.143646 0.323059 0.636871 0.166595 0.323761 0.637115 0.188263 0.324341 0.637268 0.208954 0.324890 0.637512 0.229034 0.325653 0.637726 0.248566 0.326233 0.637909 0.268158 0.326782 0.638184 0.288086 0.327545 0.638397 0.308563 0.328064 0.638550 0.330109 0.328857 0.638794 0.352997 0.329407 0.639008 0.377411 0.329956 0.639221 0.403961 0.330719 0.639465 0.432800 0.331268 0.639618 0.464294 0.331970 0.639893 0.498810 0.332581 0.640106 0.536652 0.333130 0.640320 0.577606 0.333893 0.640564 0.621521 0.334473 0.640717 0.667664 0.335236 0.640961 0.715668 0.335815 0.641174 0.765564 0.336304 0.641357 0.816406 0.337067 0.641571 0.868134 0.337646 0.641815 0.915527 0.338165 0.641998 0.000000 0.339020 0.635803 0.000000 0.339539 0.636017 0.006897 0.340271 0.636230 0.033325 0.340820 0.636444 0.066315 0.341309 0.636658 0.094482 0.342072 0.636871 0.120789 0.342560 0.637054 0.145294 0.343170 0.637268 0.168304 0.343842 0.637512 0.189789 0.344421 0.637726 0.210297 0.345154 0.637909 0.230377 0.345673 0.638123 0.249695 0.346222 0.638367 0.269318 0.346985 0.638550 0.289185 0.347534 0.638794 0.309692 0.348145 0.639008 0.331268 0.348846 0.639221 0.354126 0.349365 0.639435 0.378510 0.350128 0.639618 0.405029 0.350708 0.639893 0.433899 0.351318 0.640106 0.465424 0.351990 0.640320 0.499908 0.352539 0.640533 0.537720 0.353180 0.640717 0.578613 0.353851 0.640961 0.622284 0.354401 0.641174 0.668335 0.355103 0.641357 0.716431 0.355682 0.641571 0.765930 0.356262 0.641815 0.816650 0.356934 0.641968 0.868286 0.357452 0.642212 0.915527 0.358063 0.642365 0.000000 0.360107 0.636230 0.000000 0.360626 0.636444 0.009186 0.361206 0.636658 0.035706 0.361877 0.636841 0.068878 0.362366 0.637054 0.096832 0.363129 0.637268 0.122833 0.363678 0.637512 0.147186 0.364197 0.637726 0.169861 0.364960 0.637878 0.191345 0.365448 0.638123 0.211853 0.365997 0.638367 0.231598 0.366760 0.638550 0.250885 0.367310 0.638794 0.270447 0.368073 0.638977 0.290283 0.368622 0.639221 0.310730 0.369141 0.639435 0.332306 0.369934 0.639618 0.355225 0.370422 0.639893 0.379608 0.370972 0.640106 0.406128 0.371735 0.640289 0.434998 0.372284 0.640533 0.466522 0.373016 0.640717 0.500977 0.373566 0.640900 0.538788 0.374084 0.641174 0.579651 0.374878 0.641357 0.623169 0.375397 0.641541 0.669128 0.375916 0.641815 0.716949 0.376648 0.641968 0.766479 0.377197 0.642212 0.817139 0.377930 0.642365 0.868439 0.378479 0.642609 0.915527 0.378937 0.642822 0.000000 0.382233 0.636627 0.000000 0.382965 0.636841 0.011444 0.383484 0.637054 0.037933 0.384003 0.637268 0.071289 0.384766 0.637482 0.098969 0.385254 0.637695 0.124847 0.385986 0.637878 0.148865 0.386505 0.638123 0.171448 0.387115 0.638367 0.192719 0.387817 0.638550 0.213165 0.388397 0.638763 0.232880 0.388885 0.638977 0.252228 0.389709 0.639221 0.271637 0.390198 0.639435 0.291473 0.390900 0.639618 0.311829 0.391510 0.639893 0.333344 0.392059 0.640076 0.356140 0.392792 0.640289 0.380737 0.393341 0.640533 0.407288 0.393890 0.640717 0.436127 0.394684 0.640900 0.467651 0.395172 0.641174 0.502075 0.395874 0.641357 0.539856 0.396423 0.641541 0.580658 0.396973 0.641815 0.624115 0.397736 0.641968 0.669952 0.398254 0.642212 0.717651 0.398773 0.642365 0.766937 0.399536 0.642578 0.817413 0.400024 0.642822 0.868561 0.400513 0.643005 0.915527 0.401245 0.643188 0.000000 0.406158 0.637054 0.000000 0.406647 0.637238 0.013794 0.407257 0.637482 0.040314 0.407928 0.637695 0.073639 0.408447 0.637878 0.101105 0.409210 0.638123 0.126831 0.409729 0.638306 0.150696 0.410278 0.638550 0.173126 0.411011 0.638763 0.194153 0.411560 0.638977 0.214447 0.412109 0.639221 0.234131 0.412903 0.639435 0.253510 0.413391 0.639587 0.272766 0.414154 0.639832 0.292572 0.414703 0.640076 0.312958 0.415253 0.640289 0.334442 0.416016 0.640533 0.357208 0.416565 0.640686 0.381836 0.417175 0.640900 0.408325 0.417847 0.641174 0.437164 0.418396 0.641327 0.468689 0.419128 0.641541 0.503143 0.419647 0.641754 0.540924 0.420227 0.641968 0.581482 0.420929 0.642181 0.625000 0.421448 0.642365 0.670593 0.421967 0.642578 0.718201 0.422729 0.642792 0.767334 0.423218 0.643005 0.817657 0.423798 0.643188 0.868744 0.424469 0.643372 0.915527 0.424927 0.643585 0.000000 0.431671 0.637482 0.000000 0.432465 0.637695 0.016205 0.432953 0.637878 0.042572 0.433472 0.638092 0.076141 0.434235 0.638306 0.103455 0.434784 0.638550 0.128815 0.435394 0.638763 0.152557 0.436096 0.638977 0.174683 0.436615 0.639221 0.195709 0.437408 0.639404 0.215790 0.437927 0.639587 0.235352 0.438446 0.639832 0.254578 0.439209 0.640076 0.273926 0.439758 0.640289 0.293701 0.440399 0.640503 0.314056 0.441071 0.640686 0.335541 0.441589 0.640900 0.358337 0.442383 0.641113 0.382965 0.442902 0.641327 0.409454 0.443420 0.641541 0.438263 0.444214 0.641754 0.469666 0.444733 0.641968 0.504272 0.445251 0.642181 0.541718 0.446014 0.642365 0.582428 0.446503 0.642578 0.625732 0.447235 0.642792 0.671417 0.447723 0.642975 0.718933 0.448273 0.643188 0.767914 0.448975 0.643372 0.817902 0.449524 0.643585 0.868927 0.449982 0.643768 0.915527 0.450653 0.643951 0.000000 0.459595 0.637878 0.000000 0.460175 0.638092 0.018677 0.460876 0.638306 0.044952 0.461365 0.638550 0.078583 0.461975 0.638763 0.105499 0.462708 0.638977 0.130737 0.463226 0.639191 0.154236 0.463989 0.639404 0.176270 0.464569 0.639587 0.197174 0.465057 0.639832 0.217102 0.465851 0.640045 0.236572 0.466370 0.640259 0.255859 0.466888 0.640503 0.275055 0.467682 0.640686 0.294830 0.468201 0.640869 0.315186 0.468994 0.641113 0.336639 0.469513 0.641327 0.359406 0.470001 0.641541 0.384003 0.470825 0.641754 0.410461 0.471313 0.641968 0.439362 0.471985 0.642181 0.470764 0.472595 0.642365 0.505219 0.473114 0.642578 0.542786 0.473694 0.642792 0.583405 0.474365 0.642975 0.626678 0.474823 0.643158 0.672058 0.475616 0.643372 0.719391 0.476105 0.643585 0.768280 0.476593 0.643768 0.818268 0.477295 0.643921 0.869110 0.477814 0.644104 0.915527 0.478241 0.644287 0.000000 0.489838 0.638306 0.000000 0.490509 0.638550 0.021118 0.491150 0.638733 0.048615 0.491669 0.638947 0.080994 0.492462 0.639191 0.107788 0.492981 0.639404 0.132751 0.493622 0.639587 0.156097 0.494293 0.639832 0.177887 0.494843 0.640045 0.198547 0.495605 0.640259 0.218414 0.496094 0.640503 0.237823 0.496643 0.640686 0.257050 0.497375 0.640869 0.276215 0.497986 0.641113 0.295898 0.498444 0.641327 0.316284 0.499237 0.641541 0.337708 0.499725 0.641754 0.360504 0.500427 0.641937 0.385040 0.500977 0.642181 0.411560 0.501556 0.642365 0.440277 0.502228 0.642548 0.471741 0.502808 0.642792 0.506195 0.503296 0.642975 0.543823 0.503998 0.643158 0.584351 0.504547 0.643341 0.627533 0.504974 0.643524 0.672821 0.505737 0.643768 0.720123 0.506226 0.643921 0.768707 0.506683 0.644104 0.818665 0.507385 0.644287 0.869324 0.507904 0.644501 0.915527 0.508270 0.644684 0.000000 0.523010 0.638733 0.000000 0.523560 0.638947 0.023438 0.524323 0.639191 0.052917 0.524811 0.639404 0.083344 0.525360 0.639587 0.109955 0.526123 0.639832 0.134735 0.526642 0.640045 0.157684 0.527405 0.640259 0.179474 0.527893 0.640503 0.199921 0.528412 0.640656 0.219910 0.529205 0.640869 0.239014 0.529724 0.641113 0.258118 0.530304 0.641296 0.277344 0.531006 0.641541 0.296997 0.531494 0.641724 0.317383 0.532043 0.641937 0.338806 0.532745 0.642181 0.361542 0.533264 0.642365 0.386108 0.533936 0.642548 0.412537 0.534485 0.642761 0.441345 0.535034 0.642975 0.472839 0.535736 0.643158 0.507172 0.536255 0.643341 0.544830 0.536682 0.643524 0.585358 0.537323 0.643738 0.628204 0.537903 0.643921 0.673340 0.538361 0.644104 0.720581 0.539001 0.644287 0.769257 0.539520 0.644501 0.818878 0.539978 0.644684 0.869415 0.540466 0.644836 0.915527 0.541077 0.645020 0.000000 0.559265 0.639191 0.000671 0.559784 0.639404 0.025970 0.560303 0.639587 0.057098 0.561005 0.639801 0.085693 0.561554 0.640045 0.112030 0.562073 0.640259 0.136505 0.562805 0.640472 0.159546 0.563324 0.640656 0.181091 0.563812 0.640869 0.201538 0.564545 0.641113 0.221191 0.565063 0.641296 0.240265 0.565521 0.641541 0.259308 0.566284 0.641724 0.278473 0.566803 0.641937 0.298065 0.567261 0.642120 0.318451 0.568024 0.642365 0.339874 0.568481 0.642548 0.362640 0.569031 0.642761 0.387024 0.569702 0.642975 0.413513 0.570129 0.643158 0.442413 0.570709 0.643341 0.473846 0.571350 0.643524 0.508209 0.571777 0.643738 0.545776 0.572205 0.643921 0.586029 0.572937 0.644104 0.629089 0.573395 0.644257 0.674133 0.573822 0.644501 0.721039 0.574463 0.644684 0.769592 0.574890 0.644836 0.819153 0.575348 0.645020 0.869537 0.575867 0.645172 0.915527 0.576355 0.645325 0.000000 0.598206 0.639587 0.002899 0.598663 0.639801 0.028381 0.599182 0.640045 0.060211 0.599854 0.640228 0.088013 0.600372 0.640472 0.114136 0.600830 0.640656 0.138428 0.601501 0.640869 0.161163 0.602020 0.641083 0.182495 0.602478 0.641296 0.202881 0.603210 0.641510 0.222443 0.603638 0.641724 0.241455 0.604126 0.641937 0.260468 0.604828 0.642120 0.279602 0.605255 0.642365 0.298981 0.605743 0.642548 0.319366 0.606384 0.642761 0.340820 0.606842 0.642975 0.363647 0.607330 0.643158 0.388092 0.607758 0.643341 0.414581 0.608368 0.643524 0.443420 0.608826 0.643738 0.474884 0.609253 0.643921 0.509216 0.609894 0.644104 0.546570 0.610321 0.644257 0.586945 0.610748 0.644501 0.629669 0.611237 0.644653 0.674896 0.611786 0.644836 0.721680 0.612183 0.644989 0.769928 0.612549 0.645172 0.819397 0.612915 0.645325 0.869659 0.613525 0.645508 0.915527 0.613892 0.645660 0.000000 0.639435 0.640015 0.005188 0.639862 0.640228 0.030731 0.640533 0.640472 0.062805 0.640961 0.640656 0.090485 0.641418 0.640869 0.116211 0.641998 0.641083 0.140381 0.642487 0.641296 0.162903 0.642914 0.641510 0.183960 0.643372 0.641724 0.204254 0.643982 0.641907 0.223724 0.644440 0.642120 0.242615 0.644836 0.642334 0.261444 0.645508 0.642548 0.280670 0.645905 0.642761 0.300049 0.646332 0.642944 0.320435 0.646820 0.643127 0.341705 0.647339 0.643311 0.364594 0.647766 0.643524 0.389130 0.648163 0.643738 0.415619 0.648499 0.643921 0.444397 0.649139 0.644073 0.475708 0.649475 0.644257 0.510162 0.649872 0.644501 0.547516 0.650299 0.644653 0.587830 0.650848 0.644836 0.630524 0.651184 0.644989 0.675446 0.651520 0.645172 0.722107 0.651917 0.645325 0.770447 0.652466 0.645508 0.819763 0.652771 0.645660 0.869751 0.653107 0.645813 0.915527 0.653442 0.645966 0.000000 0.682861 0.640472 0.007538 0.683258 0.640656 0.033173 0.683655 0.640869 0.065308 0.684021 0.641083 0.092804 0.684601 0.641296 0.118286 0.684967 0.641510 0.142090 0.685333 0.641724 0.164459 0.685730 0.641907 0.185638 0.686340 0.642120 0.205566 0.686707 0.642334 0.224976 0.687103 0.642517 0.243805 0.687408 0.642761 0.262604 0.688019 0.642944 0.281708 0.688354 0.643127 0.301147 0.688690 0.643311 0.321350 0.689026 0.643524 0.342773 0.689331 0.643707 0.365509 0.689911 0.643890 0.390137 0.690247 0.644073 0.416595 0.690582 0.644257 0.445221 0.690918 0.644501 0.476624 0.691498 0.644653 0.510925 0.691803 0.644836 0.548431 0.692108 0.644989 0.588501 0.692444 0.645172 0.631317 0.692841 0.645325 0.676178 0.693268 0.645508 0.722717 0.693481 0.645660 0.770813 0.693787 0.645813 0.820007 0.694092 0.645966 0.869873 0.694489 0.646118 0.915527 0.694824 0.646271 0.000000 0.727722 0.640869 0.009918 0.727997 0.641083 0.035553 0.728333 0.641296 0.067841 0.728821 0.641510 0.095032 0.729187 0.641724 0.120331 0.729462 0.641907 0.144012 0.729797 0.642090 0.166168 0.730133 0.642334 0.187012 0.730438 0.642517 0.206879 0.730896 0.642761 0.226166 0.731232 0.642944 0.244934 0.731506 0.643127 0.263733 0.731781 0.643311 0.282745 0.732208 0.643524 0.302155 0.732574 0.643707 0.322357 0.732849 0.643890 0.343781 0.733154 0.644073 0.366516 0.733398 0.644257 0.390961 0.733826 0.644501 0.417389 0.734222 0.644653 0.446228 0.734467 0.644836 0.477600 0.734772 0.644989 0.511871 0.734955 0.645142 0.549194 0.735168 0.645325 0.589325 0.735596 0.645508 0.631866 0.735931 0.645660 0.676636 0.736145 0.645813 0.723145 0.736359 0.645935 0.771057 0.736572 0.646118 0.820190 0.736816 0.646271 0.869904 0.737030 0.646423 0.915527 0.737366 0.646515 0.000000 0.773834 0.641296 0.012299 0.774048 0.641510 0.037872 0.774261 0.641693 0.070312 0.774536 0.641907 0.097198 0.774811 0.642090 0.122253 0.775238 0.642334 0.145782 0.775452 0.642517 0.167694 0.775696 0.642700 0.188354 0.775940 0.642883 0.208313 0.776154 0.643127 0.227386 0.776398 0.643311 0.246094 0.776764 0.643524 0.264771 0.777008 0.643707 0.283630 0.777222 0.643890 0.303192 0.777496 0.644073 0.323395 0.777710 0.644257 0.344788 0.777863 0.644440 0.367523 0.778107 0.644653 0.391907 0.778259 0.644806 0.418365 0.778748 0.644989 0.447174 0.778900 0.645142 0.478546 0.779114 0.645294 0.512817 0.779266 0.645508 0.549988 0.779480 0.645630 0.589935 0.779633 0.645782 0.632690 0.779816 0.645935 0.677124 0.780029 0.646118 0.723633 0.780426 0.646240 0.771484 0.780518 0.646423 0.820404 0.780701 0.646515 0.870117 0.780853 0.646667 0.915527 0.781036 0.646820 0.000000 0.820648 0.641693 0.014618 0.820831 0.641907 0.040253 0.820984 0.642090 0.072601 0.821136 0.642303 0.099396 0.821472 0.642517 0.124146 0.821716 0.642700 0.147430 0.821808 0.642883 0.169159 0.822021 0.643127 0.189911 0.822144 0.643311 0.209503 0.822296 0.643524 0.228516 0.822449 0.643707 0.247192 0.822601 0.643890 0.265839 0.822754 0.644073 0.284668 0.822906 0.644226 0.304169 0.823151 0.644440 0.324371 0.823395 0.644653 0.345703 0.823517 0.644806 0.368469 0.823700 0.644989 0.392853 0.823792 0.645142 0.419312 0.823944 0.645294 0.448120 0.824066 0.645477 0.479248 0.824158 0.645630 0.513519 0.824310 0.645782 0.550812 0.824463 0.645935 0.590759 0.824554 0.646118 0.633148 0.824860 0.646240 0.677765 0.825012 0.646423 0.724091 0.825104 0.646515 0.771851 0.825195 0.646667 0.820648 0.825287 0.646820 0.870331 0.825409 0.646912 0.915527 0.825470 0.647034 0.000000 0.867981 0.642090 0.017029 0.868164 0.642303 0.042511 0.868347 0.642517 0.074951 0.868378 0.642700 0.101501 0.868469 0.642883 0.126099 0.868561 0.643097 0.149231 0.868622 0.643311 0.170837 0.868713 0.643494 0.191254 0.868774 0.643707 0.210815 0.868835 0.643890 0.229675 0.868958 0.644073 0.248291 0.868988 0.644226 0.266846 0.869110 0.644440 0.285645 0.869110 0.644623 0.305084 0.869202 0.644806 0.325104 0.869263 0.644928 0.346527 0.869354 0.645142 0.369293 0.869385 0.645294 0.393799 0.869446 0.645477 0.420227 0.869568 0.645630 0.448792 0.869720 0.645782 0.480133 0.869873 0.645935 0.514343 0.869934 0.646118 0.551483 0.869995 0.646240 0.591522 0.870087 0.646423 0.633881 0.870148 0.646515 0.678192 0.870178 0.646667 0.724426 0.870239 0.646820 0.772156 0.870270 0.646912 0.820892 0.870331 0.647034 0.870453 0.870361 0.647156 0.915527 0.870422 0.647247 0.000000 0.915527 0.642487 0.019257 0.915527 0.642700 0.044678 0.915527 0.642883 0.077240 0.915527 0.643097 0.103638 0.915527 0.643280 0.128052 0.915527 0.643494 0.150787 0.915527 0.643646 0.172211 0.915527 0.643860 0.192566 0.915527 0.644073 0.212067 0.915527 0.644226 0.230804 0.915527 0.644440 0.249329 0.915527 0.644623 0.267914 0.915527 0.644806 0.286652 0.915527 0.644928 0.305908 0.915527 0.645142 0.326080 0.915527 0.645294 0.347382 0.915527 0.645477 0.370117 0.915527 0.645630 0.394440 0.915527 0.645782 0.420898 0.915527 0.645935 0.449677 0.915527 0.646118 0.481018 0.915527 0.646240 0.515076 0.915527 0.646393 0.552246 0.915527 0.646515 0.592041 0.915527 0.646667 0.634338 0.915527 0.646820 0.678802 0.915527 0.646912 0.724884 0.915527 0.647034 0.772339 0.915527 0.647156 0.821106 0.915527 0.647247 0.870544 0.915527 0.647400 0.915527 0.915527 0.647491 0.000000 0.000000 0.661560 0.000000 0.000000 0.661713 0.000000 0.000000 0.661804 0.004456 0.000000 0.661957 0.031281 0.000000 0.662079 0.065002 0.000000 0.662201 0.093933 0.000000 0.662354 0.120789 0.000000 0.662476 0.146057 0.000000 0.662628 0.169586 0.000000 0.662750 0.191681 0.000000 0.662964 0.212830 0.000000 0.663086 0.233307 0.000000 0.663239 0.253662 0.000000 0.663391 0.273895 0.000000 0.663544 0.294708 0.000000 0.663696 0.316254 0.000000 0.663879 0.338959 0.000000 0.664032 0.363281 0.000000 0.664246 0.389801 0.000000 0.664429 0.418396 0.000000 0.664612 0.449860 0.000000 0.664734 0.484528 0.000000 0.664978 0.522675 0.000000 0.665131 0.564423 0.000000 0.665314 0.609192 0.000000 0.665497 0.656769 0.000000 0.665680 0.706696 0.000000 0.665833 0.758392 0.000000 0.666046 0.811554 0.000000 0.666229 0.865692 0.000671 0.666412 0.915527 0.002014 0.666656 0.000000 0.000000 0.661804 0.000000 0.000000 0.661957 0.000000 0.000000 0.662079 0.005920 0.000000 0.662201 0.032776 0.000000 0.662354 0.066467 0.000000 0.662476 0.095367 0.000000 0.662598 0.122253 0.000000 0.662750 0.147339 0.000000 0.662903 0.170807 0.000732 0.663086 0.192780 0.001770 0.663239 0.213806 0.002899 0.663361 0.234344 0.004028 0.663544 0.254425 0.005219 0.663696 0.274811 0.006439 0.663879 0.295441 0.007629 0.664032 0.317200 0.008942 0.664246 0.339935 0.010193 0.664368 0.364227 0.011475 0.664612 0.390594 0.012817 0.664734 0.419403 0.014160 0.664917 0.450867 0.015717 0.665131 0.485443 0.017090 0.665314 0.523529 0.018494 0.665497 0.565186 0.019897 0.665680 0.609985 0.021332 0.665833 0.657593 0.022736 0.666046 0.707367 0.024353 0.666229 0.758972 0.025848 0.666412 0.811951 0.027283 0.666656 0.865845 0.028809 0.666840 0.915527 0.030273 0.666992 0.000000 0.019287 0.662079 0.000000 0.020203 0.662201 0.000000 0.021271 0.662354 0.007477 0.022308 0.662476 0.034393 0.023438 0.662598 0.068237 0.024567 0.662750 0.097107 0.025635 0.662903 0.123810 0.026703 0.663086 0.148621 0.027863 0.663208 0.171997 0.029053 0.663361 0.193909 0.030304 0.663544 0.214844 0.031555 0.663696 0.235352 0.032806 0.663879 0.255432 0.034119 0.664032 0.275787 0.035400 0.664246 0.296417 0.036652 0.664368 0.317932 0.037994 0.664581 0.340759 0.039337 0.664734 0.365173 0.040680 0.664917 0.391602 0.042053 0.665131 0.420380 0.043396 0.665314 0.451935 0.044830 0.665497 0.486389 0.046997 0.665680 0.524445 0.049316 0.665833 0.566101 0.051910 0.666016 0.610809 0.054565 0.666229 0.658203 0.057190 0.666412 0.707977 0.059387 0.666656 0.759430 0.060944 0.666809 0.812317 0.062531 0.666992 0.865997 0.064209 0.667206 0.915527 0.065796 0.667419 0.000000 0.050690 0.662354 0.000000 0.052582 0.662476 0.000000 0.054626 0.662598 0.009125 0.056702 0.662750 0.036133 0.058502 0.662903 0.070129 0.059753 0.663086 0.098602 0.061005 0.663208 0.125183 0.062286 0.663361 0.150085 0.063660 0.663544 0.173218 0.065033 0.663696 0.195068 0.066376 0.663879 0.215973 0.067749 0.664032 0.236389 0.068970 0.664246 0.256439 0.070374 0.664368 0.276611 0.071747 0.664581 0.297363 0.073151 0.664734 0.318939 0.074554 0.664917 0.341644 0.076050 0.665100 0.366211 0.077454 0.665314 0.392639 0.078979 0.665436 0.421265 0.080475 0.665680 0.452881 0.081909 0.665833 0.487427 0.083435 0.666016 0.525482 0.084900 0.666229 0.567108 0.086426 0.666412 0.611755 0.087921 0.666626 0.659088 0.089447 0.666809 0.708679 0.090973 0.666992 0.759888 0.092468 0.667206 0.812592 0.094025 0.667419 0.866119 0.095520 0.667603 0.915527 0.097046 0.667816 0.000000 0.086060 0.662598 0.000000 0.087189 0.662720 0.000000 0.088196 0.662903 0.010834 0.089417 0.663086 0.037872 0.090607 0.663208 0.071930 0.091858 0.663361 0.100433 0.093048 0.663544 0.126831 0.094116 0.663696 0.151489 0.095428 0.663879 0.174469 0.096710 0.664032 0.196228 0.097992 0.664246 0.217072 0.099304 0.664368 0.237457 0.100464 0.664581 0.257477 0.101807 0.664703 0.277588 0.103149 0.664917 0.298370 0.104492 0.665100 0.319916 0.105835 0.665314 0.342682 0.107208 0.665436 0.367249 0.108582 0.665680 0.393646 0.109985 0.665802 0.422302 0.111298 0.666016 0.453796 0.112579 0.666229 0.488495 0.113983 0.666412 0.526520 0.115387 0.666626 0.568115 0.116791 0.666809 0.612732 0.118195 0.666992 0.659912 0.119598 0.667206 0.709229 0.121063 0.667419 0.760468 0.122437 0.667572 0.812897 0.123840 0.667786 0.866425 0.125275 0.667999 0.915527 0.126526 0.668213 0.000000 0.116730 0.662903 0.000000 0.117798 0.663025 0.000000 0.118866 0.663208 0.012604 0.119843 0.663361 0.039703 0.121063 0.663544 0.073822 0.122192 0.663666 0.102081 0.123169 0.663818 0.128387 0.124420 0.664032 0.152924 0.125580 0.664185 0.175751 0.126740 0.664368 0.197449 0.127808 0.664581 0.218201 0.129089 0.664703 0.238556 0.130280 0.664917 0.258514 0.131531 0.665100 0.278595 0.132568 0.665283 0.299286 0.133820 0.665436 0.320923 0.135132 0.665680 0.343689 0.136383 0.665802 0.368073 0.137695 0.666016 0.394440 0.138824 0.666229 0.423248 0.140015 0.666382 0.454803 0.141327 0.666626 0.489563 0.142639 0.666809 0.527557 0.143921 0.666992 0.568970 0.145081 0.667206 0.613434 0.146301 0.667389 0.660583 0.147614 0.667572 0.709900 0.148895 0.667786 0.760895 0.150177 0.667999 0.813385 0.151428 0.668213 0.866669 0.152557 0.668396 0.915527 0.153839 0.668610 0.000000 0.145416 0.663208 0.000000 0.146271 0.663361 0.000000 0.147308 0.663513 0.014465 0.148315 0.663666 0.041565 0.149292 0.663818 0.075806 0.150360 0.664032 0.103912 0.151428 0.664185 0.130005 0.152374 0.664368 0.154297 0.153503 0.664581 0.177063 0.154541 0.664703 0.198639 0.155518 0.664886 0.219360 0.156677 0.665100 0.239563 0.157806 0.665283 0.259552 0.158752 0.665436 0.279663 0.159882 0.665649 0.300171 0.161041 0.665802 0.321899 0.162079 0.666016 0.344757 0.163208 0.666199 0.369080 0.164398 0.666382 0.395508 0.165527 0.666626 0.424347 0.166534 0.666809 0.455872 0.167694 0.666992 0.490631 0.168884 0.667175 0.528595 0.169830 0.667389 0.569916 0.171051 0.667572 0.614349 0.172180 0.667786 0.661407 0.173401 0.667999 0.710571 0.174377 0.668213 0.761505 0.175537 0.668396 0.813721 0.176727 0.668610 0.866791 0.177765 0.668793 0.915527 0.178833 0.668976 0.000000 0.171814 0.663513 0.000000 0.172577 0.663666 0.000000 0.173553 0.663818 0.016357 0.174316 0.664032 0.043488 0.175354 0.664185 0.077820 0.176147 0.664368 0.105713 0.177155 0.664581 0.131683 0.178223 0.664703 0.155914 0.179047 0.664886 0.178619 0.180115 0.665100 0.199921 0.180939 0.665283 0.220520 0.181946 0.665436 0.240692 0.183044 0.665649 0.260651 0.183868 0.665802 0.280701 0.184937 0.665985 0.301270 0.185974 0.666199 0.322906 0.186890 0.666382 0.345795 0.187958 0.666626 0.370148 0.188934 0.666779 0.396576 0.189880 0.666992 0.425446 0.191010 0.667175 0.456970 0.191864 0.667389 0.491455 0.192963 0.667572 0.529541 0.194031 0.667786 0.570923 0.194916 0.667999 0.615326 0.195984 0.668213 0.662109 0.196991 0.668396 0.711334 0.197937 0.668610 0.761963 0.199005 0.668793 0.813965 0.200043 0.668976 0.866913 0.200958 0.669189 0.915527 0.202026 0.669373 0.000000 0.195984 0.663818 0.000000 0.196747 0.664032 0.000000 0.197662 0.664185 0.018311 0.198517 0.664368 0.045410 0.199310 0.664520 0.079956 0.200256 0.664703 0.107544 0.201019 0.664886 0.133362 0.201935 0.665100 0.157410 0.202728 0.665283 0.179962 0.203674 0.665405 0.201324 0.204437 0.665649 0.221741 0.205383 0.665802 0.241943 0.206329 0.665985 0.261627 0.207214 0.666199 0.281769 0.208099 0.666382 0.302307 0.208954 0.666595 0.323914 0.209961 0.666779 0.346802 0.210693 0.666992 0.371246 0.211731 0.667175 0.397675 0.212524 0.667389 0.426544 0.213531 0.667572 0.458038 0.214508 0.667786 0.492554 0.215302 0.667999 0.530548 0.216309 0.668152 0.571991 0.217102 0.668396 0.616180 0.218079 0.668610 0.662964 0.218872 0.668762 0.711823 0.219910 0.668976 0.762390 0.220856 0.669159 0.814240 0.221649 0.669373 0.867126 0.222687 0.669586 0.915527 0.223450 0.669769 0.000000 0.218567 0.664185 0.000000 0.219452 0.664368 0.000000 0.220123 0.664520 0.020447 0.220978 0.664703 0.048889 0.221649 0.664886 0.082001 0.222534 0.665039 0.109497 0.223206 0.665283 0.135071 0.224091 0.665405 0.158905 0.224792 0.665649 0.181335 0.225708 0.665771 0.202576 0.226410 0.665985 0.222992 0.227325 0.666199 0.242920 0.228027 0.666382 0.262787 0.228943 0.666595 0.282867 0.229675 0.666779 0.303406 0.230591 0.666992 0.324921 0.231323 0.667175 0.347809 0.232239 0.667389 0.372284 0.232941 0.667572 0.398773 0.233917 0.667786 0.427582 0.234619 0.667938 0.459167 0.235565 0.668152 0.493652 0.236267 0.668365 0.531616 0.237213 0.668549 0.573029 0.237976 0.668762 0.617065 0.238861 0.668945 0.663818 0.239716 0.669159 0.712646 0.240509 0.669373 0.763092 0.241272 0.669586 0.814758 0.242126 0.669769 0.867249 0.242981 0.669983 0.915527 0.243774 0.670166 0.000000 0.239990 0.664520 0.000000 0.240601 0.664703 0.000000 0.241272 0.664886 0.022552 0.242035 0.665039 0.052582 0.242676 0.665283 0.084137 0.243530 0.665405 0.111450 0.244141 0.665649 0.136780 0.244965 0.665771 0.160553 0.245605 0.665985 0.182709 0.246490 0.666199 0.203949 0.247131 0.666382 0.224121 0.247925 0.666595 0.244110 0.248627 0.666779 0.263885 0.249512 0.666992 0.283752 0.250153 0.667175 0.304474 0.251038 0.667389 0.325989 0.251709 0.667542 0.348785 0.252350 0.667725 0.373413 0.253235 0.667938 0.399841 0.253876 0.668152 0.428711 0.254822 0.668365 0.460175 0.255463 0.668549 0.494690 0.256348 0.668762 0.532715 0.256989 0.668945 0.573792 0.257874 0.669159 0.618011 0.258545 0.669373 0.664581 0.259430 0.669586 0.713165 0.260101 0.669769 0.763458 0.260956 0.669983 0.815063 0.261597 0.670166 0.867401 0.262451 0.670380 0.915527 0.263123 0.670624 0.000000 0.260162 0.664856 0.000000 0.260956 0.665039 0.000000 0.261505 0.665253 0.024719 0.262085 0.665405 0.056488 0.262878 0.665588 0.086273 0.263458 0.665771 0.113312 0.264313 0.665985 0.138519 0.264893 0.666168 0.162079 0.265717 0.666382 0.184143 0.266296 0.666595 0.205231 0.267120 0.666779 0.225403 0.267731 0.666931 0.245361 0.268372 0.667145 0.264893 0.269196 0.667328 0.284882 0.269775 0.667542 0.305573 0.270660 0.667725 0.327087 0.271271 0.667938 0.349884 0.272095 0.668152 0.374512 0.272705 0.668365 0.400970 0.273315 0.668549 0.429718 0.274170 0.668762 0.461273 0.274811 0.668945 0.495850 0.275635 0.669159 0.533783 0.276245 0.669373 0.574860 0.277100 0.669586 0.618988 0.277679 0.669769 0.665375 0.278534 0.669983 0.713959 0.279144 0.670166 0.764130 0.279785 0.670380 0.815399 0.280579 0.670624 0.867554 0.281219 0.670776 0.915527 0.282043 0.670990 0.000000 0.279846 0.665253 0.000000 0.280579 0.665405 0.000885 0.281128 0.665588 0.026886 0.281891 0.665771 0.059692 0.282440 0.665985 0.088440 0.283173 0.666168 0.115234 0.283813 0.666382 0.140381 0.284332 0.666595 0.163666 0.285126 0.666779 0.185699 0.285736 0.666931 0.206573 0.286438 0.667145 0.226776 0.287109 0.667328 0.246399 0.287659 0.667542 0.266052 0.288483 0.667725 0.285950 0.289032 0.667938 0.306702 0.289917 0.668152 0.328186 0.290466 0.668365 0.350983 0.291046 0.668549 0.375488 0.291840 0.668762 0.401978 0.292419 0.668945 0.430847 0.293243 0.669159 0.462311 0.293854 0.669373 0.496948 0.294647 0.669586 0.534821 0.295227 0.669769 0.575928 0.295807 0.669983 0.619751 0.296600 0.670166 0.666199 0.297211 0.670349 0.714508 0.298004 0.670593 0.764526 0.298584 0.670776 0.815857 0.299255 0.670990 0.867798 0.299957 0.671173 0.915527 0.300537 0.671356 0.000000 0.299500 0.665588 0.000000 0.300079 0.665771 0.002930 0.300537 0.665955 0.029205 0.301300 0.666168 0.061981 0.301849 0.666382 0.090637 0.302399 0.666534 0.117279 0.303162 0.666748 0.142059 0.303741 0.666931 0.165314 0.304474 0.667145 0.187103 0.305054 0.667328 0.207855 0.305664 0.667542 0.227997 0.306366 0.667725 0.247650 0.306946 0.667938 0.267181 0.307648 0.668121 0.287109 0.308258 0.668365 0.307770 0.308838 0.668518 0.329254 0.309601 0.668732 0.352081 0.310181 0.668945 0.376556 0.310974 0.669128 0.403046 0.311523 0.669342 0.431915 0.312225 0.669586 0.463348 0.312897 0.669739 0.498047 0.313446 0.669983 0.535797 0.314240 0.670135 0.576935 0.314819 0.670349 0.620667 0.315369 0.670593 0.666931 0.316162 0.670776 0.715271 0.316711 0.670990 0.765045 0.317474 0.671173 0.816162 0.318054 0.671356 0.868073 0.318573 0.671570 0.915527 0.319366 0.671753 0.000000 0.319122 0.665955 0.000000 0.319672 0.666168 0.005096 0.320160 0.666351 0.031403 0.320923 0.666534 0.064362 0.321411 0.666748 0.092834 0.322083 0.666931 0.119293 0.322723 0.667145 0.143921 0.323273 0.667328 0.166840 0.323975 0.667542 0.188507 0.324554 0.667725 0.209198 0.325104 0.667908 0.229340 0.325867 0.668121 0.248932 0.326416 0.668335 0.268341 0.327179 0.668518 0.288269 0.327728 0.668732 0.308868 0.328308 0.668945 0.330353 0.329041 0.669128 0.353149 0.329620 0.669342 0.377625 0.330261 0.669586 0.404175 0.330933 0.669739 0.432953 0.331482 0.669983 0.464478 0.332245 0.670135 0.498962 0.332794 0.670349 0.536774 0.333496 0.670593 0.577759 0.334076 0.670776 0.621643 0.334625 0.670990 0.667755 0.335419 0.671173 0.715759 0.335968 0.671326 0.765564 0.336517 0.671570 0.816467 0.337280 0.671753 0.868164 0.337830 0.671967 0.915527 0.338531 0.672119 0.000000 0.339233 0.666351 0.000000 0.339783 0.666534 0.007324 0.340454 0.666748 0.033691 0.340973 0.666931 0.066864 0.341522 0.667145 0.095032 0.342255 0.667328 0.121338 0.342773 0.667511 0.145721 0.343536 0.667694 0.168549 0.344055 0.667908 0.190125 0.344574 0.668121 0.210632 0.345337 0.668335 0.230560 0.345856 0.668518 0.250031 0.346466 0.668732 0.269501 0.347198 0.668945 0.289337 0.347748 0.669128 0.309998 0.348480 0.669342 0.331512 0.349030 0.669586 0.354279 0.349579 0.669739 0.378693 0.350372 0.669983 0.405182 0.350891 0.670135 0.434082 0.351654 0.670349 0.465576 0.352173 0.670593 0.500061 0.352722 0.670776 0.537872 0.353485 0.670959 0.578766 0.354034 0.671112 0.622498 0.354645 0.671326 0.668610 0.355347 0.671570 0.716522 0.355865 0.671753 0.765991 0.356598 0.671936 0.816772 0.357117 0.672119 0.868317 0.357635 0.672302 0.915527 0.358398 0.672485 0.000000 0.360291 0.666748 0.000000 0.360809 0.666931 0.009521 0.361542 0.667114 0.036041 0.362030 0.667328 0.069275 0.362579 0.667511 0.097229 0.363342 0.667694 0.123169 0.363861 0.667908 0.147430 0.364380 0.668121 0.170105 0.365143 0.668335 0.191589 0.365662 0.668518 0.212067 0.366425 0.668732 0.231812 0.366974 0.668945 0.251343 0.367523 0.669128 0.270660 0.368256 0.669342 0.290497 0.368774 0.669586 0.310913 0.369324 0.669739 0.332581 0.370056 0.669983 0.355408 0.370636 0.670135 0.379791 0.371399 0.670349 0.406311 0.371948 0.670593 0.435181 0.372498 0.670715 0.466675 0.373260 0.670959 0.501129 0.373749 0.671112 0.538971 0.374481 0.671326 0.579803 0.375061 0.671570 0.623322 0.375610 0.671722 0.669281 0.376282 0.671936 0.717041 0.376862 0.672119 0.766541 0.377380 0.672302 0.817169 0.378143 0.672485 0.868469 0.378601 0.672729 0.915527 0.379242 0.672882 0.000000 0.382416 0.667114 0.000000 0.383148 0.667328 0.011902 0.383667 0.667511 0.038452 0.384369 0.667694 0.071686 0.384918 0.667908 0.099426 0.385468 0.668121 0.125153 0.386200 0.668335 0.149323 0.386749 0.668518 0.171844 0.387299 0.668732 0.192993 0.388031 0.668945 0.213318 0.388580 0.669128 0.233063 0.389191 0.669342 0.252502 0.389893 0.669586 0.271790 0.390411 0.669739 0.291626 0.391174 0.669983 0.312042 0.391724 0.670105 0.333557 0.392242 0.670319 0.356415 0.393005 0.670563 0.380890 0.393555 0.670715 0.407410 0.394226 0.670959 0.436279 0.394836 0.671112 0.467834 0.395416 0.671326 0.502289 0.396088 0.671570 0.539978 0.396637 0.671722 0.580780 0.397186 0.671936 0.624237 0.397949 0.672119 0.670074 0.398438 0.672302 0.717834 0.398987 0.672485 0.767029 0.399719 0.672668 0.817444 0.400208 0.672882 0.868561 0.400909 0.673035 0.915527 0.401428 0.673248 0.000000 0.406342 0.667511 0.000000 0.406860 0.667694 0.014313 0.407593 0.667908 0.040680 0.408112 0.668121 0.074097 0.408661 0.668335 0.101654 0.409393 0.668518 0.127228 0.409943 0.668732 0.150970 0.410492 0.668915 0.173401 0.411255 0.669067 0.194427 0.411774 0.669342 0.214661 0.412567 0.669525 0.234314 0.413086 0.669708 0.253693 0.413635 0.669922 0.272949 0.414398 0.670105 0.292725 0.414948 0.670319 0.313141 0.415466 0.670563 0.334595 0.416199 0.670715 0.357544 0.416748 0.670959 0.381989 0.417511 0.671112 0.408508 0.418030 0.671326 0.437408 0.418579 0.671539 0.468872 0.419312 0.671722 0.503326 0.419830 0.671936 0.541077 0.420532 0.672089 0.581726 0.421143 0.672302 0.625214 0.421631 0.672485 0.670685 0.422333 0.672668 0.718292 0.422882 0.672882 0.767395 0.423401 0.673035 0.817749 0.424133 0.673248 0.868744 0.424652 0.673431 0.915527 0.425140 0.673615 0.000000 0.431915 0.667877 0.000000 0.432648 0.668121 0.016602 0.433136 0.668304 0.043091 0.433685 0.668518 0.076660 0.434448 0.668671 0.103851 0.434967 0.668915 0.129242 0.435791 0.669067 0.152863 0.436279 0.669312 0.174988 0.436798 0.669525 0.196014 0.437592 0.669708 0.216034 0.438110 0.669922 0.235535 0.438629 0.670105 0.254883 0.439453 0.670319 0.274078 0.439972 0.670563 0.293884 0.440735 0.670715 0.314209 0.441254 0.670959 0.335724 0.441772 0.671082 0.358643 0.442596 0.671295 0.383148 0.443085 0.671539 0.409637 0.443634 0.671722 0.438477 0.444397 0.671936 0.470001 0.444885 0.672089 0.504395 0.445648 0.672302 0.541901 0.446198 0.672455 0.582611 0.446716 0.672668 0.625885 0.447418 0.672882 0.671539 0.447937 0.673035 0.718994 0.448486 0.673218 0.768005 0.449188 0.673431 0.817963 0.449677 0.673615 0.868927 0.450134 0.673767 0.915527 0.450867 0.673950 0.000000 0.459747 0.668304 0.000000 0.460541 0.668518 0.019012 0.461060 0.668671 0.045380 0.461609 0.668915 0.078979 0.462372 0.669067 0.106049 0.462921 0.669312 0.131134 0.463409 0.669525 0.154480 0.464203 0.669708 0.176605 0.464722 0.669922 0.197388 0.465485 0.670105 0.217316 0.466003 0.670319 0.236755 0.466553 0.670563 0.256073 0.467346 0.670715 0.275238 0.467865 0.670959 0.294983 0.468414 0.671082 0.315338 0.469177 0.671295 0.336792 0.469696 0.671539 0.359589 0.470398 0.671722 0.384186 0.470978 0.671906 0.410706 0.471527 0.672089 0.439575 0.472260 0.672302 0.471039 0.472778 0.672455 0.505432 0.473297 0.672668 0.542938 0.474030 0.672882 0.583527 0.474548 0.673035 0.626801 0.475037 0.673218 0.672302 0.475769 0.673431 0.719482 0.476257 0.673615 0.768372 0.476807 0.673767 0.818390 0.477478 0.673950 0.869232 0.477966 0.674103 0.915527 0.478455 0.674377 0.000000 0.490051 0.668671 0.000000 0.490814 0.668915 0.021484 0.491333 0.669067 0.049347 0.491882 0.669312 0.081329 0.492645 0.669525 0.108246 0.493195 0.669708 0.133057 0.493927 0.669922 0.156342 0.494476 0.670105 0.178101 0.494995 0.670319 0.198792 0.495789 0.670563 0.218811 0.496307 0.670685 0.238037 0.496857 0.670929 0.257233 0.497589 0.671082 0.276367 0.498138 0.671295 0.296112 0.498840 0.671539 0.316406 0.499390 0.671692 0.337891 0.499939 0.671906 0.360687 0.500671 0.672089 0.385284 0.501221 0.672302 0.411774 0.501709 0.672455 0.440430 0.502472 0.672668 0.471893 0.502960 0.672852 0.506531 0.503510 0.673035 0.543945 0.504211 0.673218 0.584534 0.504700 0.673370 0.627655 0.505280 0.673615 0.672943 0.505920 0.673767 0.720215 0.506348 0.673950 0.768890 0.506958 0.674103 0.818695 0.507568 0.674377 0.869324 0.508026 0.674652 0.915527 0.508453 0.674835 0.000000 0.523254 0.669067 0.000000 0.523956 0.669312 0.023987 0.524506 0.669525 0.053589 0.525055 0.669708 0.083710 0.525757 0.669891 0.110382 0.526337 0.670074 0.135040 0.526825 0.670319 0.158020 0.527618 0.670502 0.179810 0.528107 0.670685 0.200378 0.528748 0.670929 0.220093 0.529419 0.671082 0.239258 0.529907 0.671295 0.258453 0.530670 0.671539 0.277496 0.531189 0.671692 0.297211 0.531708 0.671906 0.317535 0.532410 0.672089 0.338928 0.532990 0.672272 0.361694 0.533447 0.672455 0.386353 0.534210 0.672668 0.412872 0.534698 0.672852 0.441467 0.535217 0.673035 0.472961 0.535950 0.673218 0.507324 0.536407 0.673370 0.544952 0.536896 0.673584 0.585480 0.537567 0.673767 0.628326 0.538086 0.673950 0.673645 0.538544 0.674103 0.720612 0.539246 0.674377 0.769348 0.539703 0.674652 0.818939 0.540131 0.674835 0.869446 0.540802 0.674988 0.915527 0.541229 0.675140 0.000000 0.559448 0.669495 0.001099 0.559967 0.669708 0.026337 0.560486 0.669891 0.058075 0.561249 0.670074 0.086212 0.561737 0.670288 0.112518 0.562286 0.670502 0.136993 0.562988 0.670685 0.159790 0.563477 0.670929 0.181305 0.564178 0.671082 0.201782 0.564758 0.671295 0.221375 0.565216 0.671478 0.240509 0.565796 0.671692 0.259552 0.566498 0.671906 0.278625 0.566986 0.672058 0.298279 0.567657 0.672272 0.318604 0.568207 0.672455 0.340027 0.568695 0.672638 0.362793 0.569397 0.672852 0.387207 0.569824 0.673004 0.413696 0.570343 0.673218 0.442566 0.571045 0.673370 0.473999 0.571472 0.673584 0.508331 0.571960 0.673767 0.545929 0.572418 0.673950 0.586121 0.573059 0.674103 0.629211 0.573547 0.674377 0.674286 0.573975 0.674652 0.721252 0.574615 0.674835 0.769684 0.575043 0.674957 0.819153 0.575470 0.675140 0.869537 0.576111 0.675293 0.915527 0.576477 0.675415 0.000000 0.598358 0.669891 0.003296 0.598846 0.670074 0.028748 0.599487 0.670288 0.060730 0.600006 0.670502 0.088593 0.600525 0.670685 0.114655 0.601013 0.670929 0.138824 0.601715 0.671082 0.161591 0.602173 0.671265 0.182861 0.602661 0.671478 0.203125 0.603363 0.671692 0.222656 0.603821 0.671906 0.241760 0.604279 0.672058 0.260712 0.604980 0.672272 0.279755 0.605469 0.672455 0.299225 0.605865 0.672638 0.319641 0.606567 0.672852 0.341064 0.607025 0.673004 0.363861 0.607452 0.673218 0.388245 0.608002 0.673370 0.414734 0.608582 0.673584 0.443604 0.608978 0.673706 0.475037 0.609436 0.673920 0.509338 0.610077 0.674103 0.546692 0.610474 0.674377 0.587097 0.610901 0.674622 0.629883 0.611542 0.674835 0.674988 0.611938 0.674957 0.721771 0.612335 0.675140 0.769958 0.612701 0.675293 0.819519 0.613220 0.675415 0.869659 0.613708 0.675598 0.915527 0.614044 0.675751 0.000000 0.639557 0.670288 0.005493 0.640198 0.670502 0.031250 0.640717 0.670685 0.063202 0.641144 0.670868 0.090820 0.641571 0.671051 0.116638 0.642242 0.671265 0.140656 0.642639 0.671478 0.163147 0.643097 0.671692 0.184418 0.643677 0.671875 0.204437 0.644165 0.672058 0.223907 0.644592 0.672272 0.242798 0.645020 0.672424 0.261780 0.645630 0.672638 0.280823 0.646088 0.672821 0.300232 0.646484 0.673004 0.320679 0.647125 0.673187 0.342072 0.647491 0.673370 0.364868 0.647919 0.673584 0.389252 0.648254 0.673706 0.415771 0.648834 0.673920 0.444641 0.649261 0.674103 0.475922 0.649658 0.674347 0.510315 0.650024 0.674622 0.547607 0.650635 0.674774 0.587952 0.650970 0.674957 0.630615 0.651306 0.675140 0.675537 0.651642 0.675262 0.722229 0.652252 0.675415 0.770538 0.652588 0.675598 0.819824 0.652893 0.675751 0.869781 0.653229 0.675903 0.915527 0.653534 0.676025 0.000000 0.683014 0.670685 0.007904 0.683380 0.670868 0.033539 0.683777 0.671051 0.065887 0.684143 0.671265 0.093140 0.684753 0.671478 0.118591 0.685150 0.671692 0.142578 0.685516 0.671875 0.164856 0.685883 0.672058 0.185822 0.686462 0.672272 0.205750 0.686829 0.672424 0.225128 0.687195 0.672638 0.244110 0.687561 0.672821 0.262939 0.688141 0.673004 0.281921 0.688507 0.673187 0.301300 0.688843 0.673370 0.321533 0.689148 0.673584 0.342957 0.689697 0.673706 0.365784 0.690094 0.673920 0.390289 0.690399 0.674072 0.416779 0.690735 0.674347 0.445526 0.691162 0.674622 0.476807 0.691589 0.674774 0.511078 0.691895 0.674957 0.548553 0.692230 0.675140 0.588623 0.692474 0.675262 0.631409 0.693024 0.675415 0.676270 0.693359 0.675598 0.722839 0.693634 0.675751 0.770844 0.693909 0.675903 0.820068 0.694183 0.676025 0.869873 0.694611 0.676178 0.915527 0.694916 0.676300 0.000000 0.727844 0.671051 0.010284 0.728180 0.671265 0.035980 0.728455 0.671478 0.068237 0.729004 0.671661 0.095306 0.729309 0.671875 0.120667 0.729584 0.672058 0.144257 0.729858 0.672272 0.166443 0.730194 0.672424 0.187256 0.730682 0.672638 0.207214 0.731049 0.672821 0.226349 0.731323 0.673004 0.245270 0.731598 0.673187 0.264069 0.731903 0.673340 0.282959 0.732391 0.673584 0.302307 0.732697 0.673706 0.322510 0.732941 0.673920 0.343933 0.733215 0.674072 0.366669 0.733551 0.674347 0.391235 0.734009 0.674622 0.417694 0.734314 0.674774 0.446350 0.734558 0.674957 0.477783 0.734802 0.675110 0.511993 0.735016 0.675262 0.549377 0.735291 0.675415 0.589508 0.735748 0.675598 0.631989 0.736023 0.675720 0.676727 0.736206 0.675903 0.723236 0.736450 0.676025 0.771118 0.736664 0.676178 0.820221 0.736877 0.676300 0.869995 0.737122 0.676422 0.915527 0.737518 0.676605 0.000000 0.773926 0.671448 0.012726 0.774139 0.671661 0.038391 0.774353 0.671875 0.070709 0.774658 0.672058 0.097534 0.774994 0.672211 0.122681 0.775330 0.672424 0.146057 0.775513 0.672638 0.167908 0.775757 0.672821 0.188721 0.775970 0.673004 0.208557 0.776184 0.673187 0.227539 0.776459 0.673340 0.246246 0.776886 0.673553 0.264923 0.777100 0.673706 0.283813 0.777313 0.673920 0.303345 0.777557 0.674072 0.323547 0.777740 0.674347 0.344910 0.777985 0.674622 0.367645 0.778137 0.674774 0.392120 0.778442 0.674957 0.418518 0.778778 0.675110 0.447296 0.778992 0.675262 0.478699 0.779175 0.675415 0.512939 0.779358 0.675598 0.550079 0.779510 0.675720 0.590149 0.779724 0.675842 0.632751 0.779877 0.676025 0.677277 0.780212 0.676178 0.723755 0.780457 0.676300 0.771545 0.780609 0.676422 0.820435 0.780792 0.676544 0.870178 0.780945 0.676666 0.915527 0.781067 0.676788 0.000000 0.820740 0.671875 0.015106 0.820831 0.672028 0.040649 0.821045 0.672211 0.073212 0.821167 0.672424 0.099701 0.821564 0.672638 0.124664 0.821747 0.672821 0.147675 0.821869 0.672974 0.169525 0.822052 0.673187 0.190155 0.822174 0.673340 0.209778 0.822357 0.673553 0.228699 0.822510 0.673676 0.247375 0.822632 0.673920 0.265991 0.822815 0.674072 0.284851 0.822968 0.674347 0.304321 0.823273 0.674622 0.324524 0.823456 0.674774 0.345886 0.823578 0.674957 0.368652 0.823730 0.675110 0.393005 0.823853 0.675262 0.419434 0.823975 0.675385 0.448242 0.824127 0.675598 0.479431 0.824219 0.675720 0.513733 0.824341 0.675842 0.550934 0.824463 0.675964 0.590881 0.824615 0.676178 0.633270 0.824860 0.676300 0.677826 0.825043 0.676422 0.724152 0.825104 0.676544 0.771881 0.825195 0.676666 0.820648 0.825378 0.676788 0.870392 0.825439 0.676910 0.915527 0.825531 0.677032 0.000000 0.868103 0.672211 0.017334 0.868286 0.672394 0.042877 0.868347 0.672638 0.075531 0.868439 0.672821 0.101837 0.868530 0.672974 0.126404 0.868561 0.673157 0.149475 0.868652 0.673340 0.171051 0.868744 0.673553 0.191528 0.868774 0.673676 0.210999 0.868896 0.673859 0.229828 0.868958 0.674072 0.248474 0.869049 0.674347 0.267029 0.869110 0.674622 0.285797 0.869171 0.674744 0.305328 0.869263 0.674957 0.325348 0.869293 0.675110 0.346802 0.869385 0.675262 0.369507 0.869446 0.675385 0.393921 0.869446 0.675598 0.420349 0.869720 0.675720 0.448944 0.869781 0.675842 0.480286 0.869873 0.675964 0.514465 0.869934 0.676178 0.551575 0.870087 0.676300 0.591644 0.870087 0.676392 0.634003 0.870148 0.676544 0.678253 0.870178 0.676666 0.724518 0.870239 0.676788 0.772186 0.870270 0.676910 0.820984 0.870331 0.677032 0.870453 0.870361 0.677155 0.915527 0.870422 0.677216 0.000000 0.915527 0.672638 0.019745 0.915527 0.672760 0.045197 0.915527 0.672974 0.077728 0.915527 0.673157 0.103912 0.915527 0.673340 0.128296 0.915527 0.673553 0.151001 0.915527 0.673676 0.172485 0.915527 0.673859 0.192780 0.915527 0.674042 0.212250 0.915527 0.674286 0.230988 0.915527 0.674591 0.249542 0.915527 0.674744 0.268036 0.915527 0.674957 0.286804 0.915527 0.675110 0.306061 0.915527 0.675262 0.326172 0.915527 0.675385 0.347504 0.915527 0.675598 0.370239 0.915527 0.675720 0.394714 0.915527 0.675842 0.421021 0.915527 0.675964 0.449768 0.915527 0.676117 0.481110 0.915527 0.676270 0.515289 0.915527 0.676392 0.552368 0.915527 0.676544 0.592133 0.915527 0.676666 0.634430 0.915527 0.676788 0.678894 0.915527 0.676910 0.725037 0.915527 0.677032 0.772400 0.915527 0.677155 0.821106 0.915527 0.677216 0.870544 0.915527 0.677307 0.915527 0.915527 0.677429 0.000000 0.000000 0.694702 0.000000 0.000000 0.694794 0.000000 0.000000 0.694916 0.004669 0.000000 0.695007 0.031555 0.000000 0.695160 0.065216 0.000000 0.695282 0.094177 0.000000 0.695435 0.121246 0.000000 0.695557 0.146271 0.000000 0.695648 0.169800 0.000000 0.695801 0.191833 0.000000 0.695953 0.213104 0.000000 0.696075 0.233490 0.000000 0.696228 0.253784 0.000000 0.696381 0.274017 0.000000 0.696472 0.294861 0.000000 0.696625 0.316376 0.000000 0.696808 0.339111 0.000000 0.696960 0.363525 0.000000 0.697144 0.390015 0.000000 0.697296 0.418549 0.000000 0.697449 0.450012 0.000000 0.697601 0.484741 0.000000 0.697754 0.522797 0.000000 0.697937 0.564545 0.000000 0.698090 0.609344 0.000000 0.698303 0.656860 0.000000 0.698456 0.706787 0.000000 0.698639 0.758484 0.000000 0.698792 0.811554 0.000000 0.699005 0.865784 0.001068 0.699127 0.915527 0.002380 0.699341 0.000000 0.000000 0.694916 0.000000 0.000000 0.695007 0.000000 0.000000 0.695160 0.006134 0.000000 0.695282 0.033173 0.000000 0.695435 0.066895 0.000000 0.695496 0.095642 0.000000 0.695648 0.122620 0.000000 0.695801 0.147522 0.000061 0.695953 0.170959 0.001068 0.696075 0.192993 0.002167 0.696228 0.214050 0.003235 0.696381 0.234436 0.004395 0.696472 0.254700 0.005585 0.696625 0.274963 0.006775 0.696808 0.295624 0.008057 0.696960 0.317322 0.009338 0.697113 0.340088 0.010651 0.697296 0.364349 0.012054 0.697449 0.390747 0.013428 0.697601 0.419556 0.014771 0.697754 0.450989 0.016174 0.697937 0.485687 0.017548 0.698090 0.523773 0.018951 0.698303 0.565491 0.020386 0.698425 0.610229 0.021881 0.698608 0.657745 0.023407 0.698792 0.707520 0.024872 0.699005 0.759125 0.026306 0.699127 0.812012 0.027832 0.699341 0.865906 0.029266 0.699463 0.915527 0.030945 0.699677 0.000000 0.019684 0.695160 0.000000 0.020599 0.695282 0.000000 0.021576 0.695435 0.007751 0.022675 0.695496 0.034821 0.023804 0.695648 0.068542 0.024872 0.695801 0.097290 0.026093 0.695953 0.123993 0.027252 0.696075 0.148865 0.028412 0.696228 0.172180 0.029602 0.696381 0.194061 0.030853 0.696472 0.215149 0.032104 0.696625 0.235504 0.033417 0.696777 0.255554 0.034576 0.696960 0.275940 0.035919 0.697113 0.296539 0.037262 0.697296 0.318115 0.038544 0.697449 0.341034 0.039948 0.697601 0.365326 0.041290 0.697754 0.391785 0.042633 0.697937 0.420563 0.044037 0.698090 0.452026 0.045441 0.698303 0.486603 0.047760 0.698425 0.524719 0.050201 0.698608 0.566254 0.052826 0.698792 0.610962 0.055328 0.699005 0.658325 0.058105 0.699127 0.708038 0.059845 0.699341 0.759521 0.061554 0.699463 0.812378 0.063171 0.699677 0.866028 0.064941 0.699860 0.915527 0.066528 0.700043 0.000000 0.051483 0.695435 0.000000 0.053223 0.695496 0.000000 0.055237 0.695648 0.009369 0.057343 0.695801 0.036407 0.059113 0.695953 0.070465 0.060333 0.696075 0.098846 0.061523 0.696228 0.125671 0.062744 0.696381 0.150360 0.064087 0.696472 0.173401 0.065430 0.696625 0.195251 0.066803 0.696777 0.216278 0.068115 0.696960 0.236542 0.069580 0.697113 0.256561 0.070953 0.697266 0.276794 0.072327 0.697449 0.297516 0.073792 0.697601 0.319031 0.075256 0.697754 0.341858 0.076691 0.697937 0.366333 0.078156 0.698090 0.392761 0.079559 0.698242 0.421570 0.081085 0.698425 0.453033 0.082611 0.698608 0.487549 0.083954 0.698792 0.525635 0.085541 0.699005 0.567261 0.087006 0.699097 0.611908 0.088440 0.699341 0.659180 0.090057 0.699463 0.708771 0.091553 0.699677 0.760071 0.093201 0.699860 0.812622 0.094574 0.700043 0.866241 0.096191 0.700195 0.915527 0.097778 0.700378 0.000000 0.086426 0.695648 0.000000 0.087555 0.695801 0.000000 0.088745 0.695923 0.011108 0.089752 0.696075 0.038239 0.091003 0.696228 0.072296 0.092224 0.696381 0.100708 0.093475 0.696472 0.127167 0.094696 0.696625 0.151703 0.095825 0.696777 0.174683 0.097137 0.696899 0.196411 0.098419 0.697113 0.217224 0.099731 0.697266 0.237640 0.101074 0.697449 0.257599 0.102386 0.697571 0.277710 0.103760 0.697754 0.298523 0.104919 0.697937 0.320038 0.106232 0.698059 0.342834 0.107666 0.698242 0.367401 0.109070 0.698425 0.393799 0.110413 0.698608 0.422577 0.111847 0.698792 0.454132 0.113251 0.699005 0.488617 0.114624 0.699097 0.526672 0.115936 0.699341 0.568268 0.117249 0.699432 0.612823 0.118622 0.699677 0.660065 0.120087 0.699829 0.709351 0.121460 0.700012 0.760559 0.122894 0.700195 0.812958 0.124329 0.700378 0.866547 0.125732 0.700562 0.915527 0.127136 0.700745 0.000000 0.117035 0.695923 0.000000 0.118164 0.696075 0.000000 0.119293 0.696198 0.012909 0.120209 0.696350 0.039978 0.121368 0.696472 0.074188 0.122528 0.696625 0.102478 0.123749 0.696777 0.128693 0.124756 0.696899 0.153076 0.125946 0.697113 0.175964 0.127167 0.697266 0.197723 0.128387 0.697449 0.218414 0.129456 0.697571 0.238678 0.130737 0.697754 0.258667 0.131897 0.697937 0.278778 0.133179 0.698059 0.299530 0.134460 0.698242 0.321075 0.135498 0.698425 0.343842 0.136780 0.698608 0.368347 0.138062 0.698792 0.394775 0.139374 0.698944 0.423553 0.140656 0.699097 0.455048 0.141724 0.699280 0.489685 0.143005 0.699432 0.527710 0.144318 0.699646 0.569275 0.145599 0.699829 0.613556 0.146912 0.700012 0.660706 0.147980 0.700165 0.710114 0.149292 0.700317 0.760956 0.150543 0.700562 0.813477 0.151855 0.700745 0.866699 0.153076 0.700928 0.915527 0.154205 0.701080 0.000000 0.145752 0.696198 0.000000 0.146790 0.696350 0.000000 0.147614 0.696472 0.014771 0.148712 0.696625 0.041870 0.149628 0.696777 0.076202 0.150665 0.696899 0.104218 0.151825 0.697113 0.130402 0.152679 0.697266 0.154572 0.153809 0.697449 0.177429 0.154938 0.697571 0.198853 0.155914 0.697754 0.219666 0.156982 0.697906 0.239807 0.158173 0.698059 0.259735 0.159241 0.698242 0.279846 0.160248 0.698425 0.300507 0.161438 0.698578 0.322083 0.162567 0.698761 0.344910 0.163574 0.698944 0.369324 0.164734 0.699097 0.395721 0.165894 0.699280 0.424561 0.167053 0.699432 0.455994 0.168030 0.699646 0.490753 0.169220 0.699829 0.528809 0.170441 0.700012 0.570099 0.171356 0.700165 0.614532 0.172577 0.700317 0.661530 0.173767 0.700562 0.710663 0.174805 0.700745 0.761658 0.175903 0.700928 0.813782 0.177094 0.701080 0.866821 0.178253 0.701294 0.915527 0.179230 0.701447 0.000000 0.172089 0.696472 0.000000 0.172821 0.696625 0.000000 0.173828 0.696777 0.016785 0.174622 0.696899 0.043884 0.175659 0.697113 0.078125 0.176666 0.697266 0.106110 0.177460 0.697418 0.131927 0.178497 0.697571 0.156158 0.179321 0.697754 0.178833 0.180389 0.697906 0.200256 0.181427 0.698059 0.220734 0.182281 0.698242 0.240936 0.183319 0.698425 0.260803 0.184387 0.698578 0.280884 0.185272 0.698761 0.301544 0.186371 0.698944 0.323151 0.187225 0.699097 0.345947 0.188263 0.699280 0.370300 0.189362 0.699432 0.396759 0.190216 0.699646 0.425598 0.191345 0.699829 0.457123 0.192383 0.700012 0.491669 0.193268 0.700165 0.529846 0.194336 0.700317 0.571075 0.195435 0.700500 0.615479 0.196320 0.700714 0.662384 0.197388 0.700897 0.711426 0.198303 0.701080 0.762085 0.199341 0.701294 0.814026 0.200409 0.701447 0.867004 0.201263 0.701660 0.915527 0.202332 0.701813 0.000000 0.196289 0.696777 0.000000 0.197205 0.696899 0.000000 0.197906 0.697083 0.018799 0.198853 0.697266 0.045898 0.199585 0.697418 0.080231 0.200500 0.697571 0.108032 0.201263 0.697754 0.133728 0.202240 0.697906 0.157593 0.203033 0.698059 0.180176 0.203949 0.698212 0.201569 0.204926 0.698395 0.222015 0.205719 0.698578 0.242065 0.206696 0.698761 0.261932 0.207458 0.698944 0.281982 0.208466 0.699097 0.302490 0.209198 0.699280 0.324188 0.210236 0.699432 0.347015 0.211182 0.699646 0.371368 0.212006 0.699829 0.397827 0.213013 0.700012 0.426697 0.213806 0.700165 0.458221 0.214813 0.700317 0.492676 0.215607 0.700500 0.530701 0.216614 0.700714 0.572113 0.217621 0.700897 0.616425 0.218384 0.701080 0.663055 0.219391 0.701294 0.711975 0.220154 0.701447 0.762543 0.221161 0.701660 0.814331 0.221924 0.701813 0.867126 0.222931 0.701996 0.915527 0.223785 0.702179 0.000000 0.218811 0.697083 0.000000 0.219696 0.697266 0.000000 0.220337 0.697418 0.020813 0.221222 0.697571 0.049622 0.221863 0.697723 0.082367 0.222778 0.697906 0.109802 0.223450 0.698059 0.135345 0.224365 0.698212 0.159241 0.225067 0.698395 0.181549 0.226013 0.698578 0.202850 0.226654 0.698761 0.223297 0.227570 0.698944 0.243256 0.228333 0.699097 0.263062 0.229187 0.699280 0.283051 0.229919 0.699432 0.303528 0.230835 0.699615 0.325043 0.231598 0.699829 0.348083 0.232513 0.700012 0.372467 0.233368 0.700165 0.398926 0.234161 0.700317 0.427795 0.234894 0.700500 0.459320 0.235779 0.700714 0.493835 0.236694 0.700897 0.531769 0.237457 0.701080 0.573151 0.238403 0.701263 0.617188 0.239105 0.701416 0.663971 0.240021 0.701660 0.712708 0.240753 0.701813 0.763123 0.241669 0.701996 0.814819 0.242371 0.702179 0.867249 0.243317 0.702362 0.915527 0.244019 0.702515 0.000000 0.240234 0.697418 0.000000 0.240814 0.697571 0.000000 0.241638 0.697723 0.023010 0.242279 0.697906 0.053284 0.243042 0.698029 0.084473 0.243744 0.698212 0.111786 0.244446 0.698395 0.137115 0.245239 0.698578 0.160828 0.245880 0.698761 0.183105 0.246735 0.698944 0.204193 0.247345 0.699066 0.224426 0.248230 0.699280 0.244385 0.248901 0.699432 0.264160 0.249725 0.699615 0.284088 0.250427 0.699829 0.304626 0.251312 0.699951 0.326141 0.251923 0.700134 0.349030 0.252808 0.700317 0.373566 0.253479 0.700500 0.400055 0.254395 0.700714 0.428894 0.255035 0.700897 0.460419 0.255920 0.701080 0.494934 0.256592 0.701263 0.532867 0.257233 0.701416 0.573975 0.258148 0.701630 0.618134 0.258820 0.701813 0.664764 0.259644 0.701996 0.713318 0.260345 0.702179 0.763580 0.261200 0.702362 0.815155 0.261841 0.702515 0.867401 0.262756 0.702728 0.915527 0.263367 0.702881 0.000000 0.260406 0.697723 0.000000 0.261139 0.697906 0.000000 0.261719 0.698029 0.025146 0.262543 0.698212 0.057098 0.263092 0.698395 0.086609 0.263763 0.698578 0.113739 0.264526 0.698761 0.138885 0.265106 0.698914 0.162323 0.265961 0.699066 0.184540 0.266541 0.699249 0.205414 0.267395 0.699432 0.225769 0.267944 0.699615 0.245575 0.268616 0.699768 0.265137 0.269409 0.699951 0.285278 0.270020 0.700134 0.305756 0.270874 0.700287 0.327240 0.271484 0.700500 0.350098 0.272339 0.700714 0.374664 0.272949 0.700897 0.401093 0.273743 0.701080 0.430023 0.274384 0.701263 0.461548 0.275116 0.701416 0.496033 0.275879 0.701630 0.533966 0.276520 0.701752 0.575012 0.277344 0.701996 0.619141 0.277924 0.702179 0.665497 0.278748 0.702362 0.714050 0.279388 0.702515 0.764221 0.280243 0.702728 0.815430 0.280792 0.702881 0.867554 0.281494 0.703064 0.915527 0.282288 0.703247 0.000000 0.280243 0.698029 0.000000 0.280731 0.698212 0.001282 0.281311 0.698395 0.027283 0.282104 0.698578 0.060028 0.282654 0.698730 0.088776 0.283447 0.698914 0.115692 0.283997 0.699066 0.140656 0.284576 0.699249 0.164062 0.285339 0.699432 0.185944 0.285950 0.699615 0.206757 0.286713 0.699768 0.227020 0.287292 0.699951 0.246735 0.287964 0.700134 0.266327 0.288666 0.700287 0.286285 0.289276 0.700470 0.306854 0.290070 0.700714 0.328308 0.290680 0.700897 0.351135 0.291412 0.701080 0.375732 0.292053 0.701263 0.402252 0.292633 0.701416 0.431122 0.293457 0.701630 0.462646 0.294067 0.701752 0.497131 0.294891 0.701965 0.535034 0.295441 0.702118 0.576050 0.296082 0.702332 0.620087 0.296844 0.702515 0.666382 0.297424 0.702728 0.714600 0.298218 0.702881 0.764587 0.298828 0.703064 0.815887 0.299591 0.703247 0.867920 0.300171 0.703430 0.915527 0.300842 0.703613 0.000000 0.299744 0.698395 0.000000 0.300232 0.698517 0.003326 0.300903 0.698730 0.029572 0.301514 0.698914 0.062531 0.302032 0.699066 0.090973 0.302765 0.699249 0.117676 0.303375 0.699432 0.142487 0.303894 0.699615 0.165558 0.304718 0.699768 0.187347 0.305237 0.699951 0.208221 0.306030 0.700134 0.228241 0.306610 0.700287 0.247894 0.307129 0.700470 0.267517 0.307922 0.700684 0.287262 0.308472 0.700867 0.307892 0.309143 0.701050 0.329437 0.309814 0.701263 0.352234 0.310394 0.701416 0.376862 0.311188 0.701630 0.403351 0.311768 0.701752 0.432190 0.312531 0.701965 0.463531 0.313080 0.702118 0.498260 0.313690 0.702332 0.536133 0.314423 0.702484 0.577057 0.315033 0.702728 0.620758 0.315796 0.702881 0.666992 0.316376 0.703064 0.715332 0.316925 0.703247 0.765228 0.317688 0.703430 0.816193 0.318237 0.703613 0.868073 0.318848 0.703766 0.915527 0.319550 0.703949 0.000000 0.319336 0.698730 0.000000 0.319824 0.698914 0.005432 0.320465 0.699066 0.031860 0.321106 0.699249 0.064972 0.321625 0.699432 0.093201 0.322388 0.699615 0.119598 0.322937 0.699768 0.144165 0.323486 0.699951 0.167267 0.324219 0.700134 0.188965 0.324738 0.700287 0.209503 0.325439 0.700470 0.229492 0.326080 0.700684 0.249084 0.326630 0.700867 0.268494 0.327362 0.701050 0.288391 0.327942 0.701263 0.309052 0.328674 0.701416 0.330566 0.329285 0.701630 0.353333 0.329834 0.701752 0.377960 0.330597 0.701965 0.404449 0.331116 0.702118 0.433136 0.331696 0.702332 0.464630 0.332458 0.702484 0.499268 0.332977 0.702698 0.537079 0.333771 0.702881 0.578094 0.334290 0.703064 0.621765 0.334930 0.703247 0.667847 0.335632 0.703430 0.715912 0.336182 0.703583 0.765656 0.336884 0.703766 0.816498 0.337494 0.703918 0.868164 0.338013 0.704102 0.915527 0.338745 0.704315 0.000000 0.339447 0.699066 0.000000 0.340118 0.699249 0.007690 0.340668 0.699432 0.034180 0.341187 0.699615 0.067261 0.341858 0.699768 0.095337 0.342468 0.699951 0.121582 0.342957 0.700134 0.146027 0.343719 0.700287 0.168854 0.344238 0.700470 0.190338 0.344910 0.700684 0.210907 0.345520 0.700867 0.230743 0.346100 0.701050 0.250305 0.346802 0.701202 0.269714 0.347412 0.701385 0.289520 0.347961 0.701630 0.310150 0.348694 0.701752 0.331665 0.349243 0.701965 0.354431 0.349976 0.702118 0.378876 0.350555 0.702332 0.405548 0.351105 0.702484 0.434235 0.351837 0.702698 0.465729 0.352417 0.702850 0.500366 0.352936 0.703064 0.538055 0.353699 0.703217 0.579041 0.354248 0.703400 0.622711 0.355011 0.703583 0.668701 0.355530 0.703735 0.716614 0.356049 0.703918 0.766083 0.356781 0.704102 0.816833 0.357330 0.704315 0.868317 0.357849 0.704468 0.915527 0.358612 0.704620 0.000000 0.360504 0.699432 0.000000 0.360992 0.699554 0.010040 0.361694 0.699738 0.036407 0.362244 0.699951 0.069672 0.362885 0.700104 0.097565 0.363556 0.700287 0.123657 0.364044 0.700470 0.147705 0.364746 0.700684 0.170441 0.365356 0.700867 0.191772 0.365845 0.701050 0.212250 0.366608 0.701202 0.231995 0.367126 0.701385 0.251495 0.367798 0.701630 0.270935 0.368439 0.701752 0.290680 0.368988 0.701965 0.311249 0.369690 0.702118 0.332794 0.370300 0.702332 0.355560 0.370850 0.702484 0.379974 0.371613 0.702698 0.406464 0.372131 0.702850 0.435364 0.372742 0.703064 0.466858 0.373413 0.703217 0.501373 0.373932 0.703400 0.539093 0.374725 0.703583 0.579956 0.375275 0.703735 0.623566 0.375793 0.703918 0.669342 0.376526 0.704102 0.717163 0.377014 0.704315 0.766693 0.377625 0.704468 0.817261 0.378296 0.704620 0.868469 0.378845 0.704773 0.915527 0.379547 0.704987 0.000000 0.382782 0.699738 0.000000 0.383301 0.699921 0.012360 0.383850 0.700104 0.038818 0.384613 0.700287 0.072205 0.385132 0.700470 0.099823 0.385712 0.700684 0.125671 0.386414 0.700867 0.149597 0.386963 0.701050 0.172119 0.387573 0.701202 0.193329 0.388245 0.701385 0.213531 0.388763 0.701569 0.233215 0.389557 0.701752 0.252686 0.390076 0.701904 0.272156 0.390625 0.702118 0.291809 0.391357 0.702332 0.312317 0.391907 0.702484 0.333893 0.392487 0.702698 0.356689 0.393219 0.702850 0.381073 0.393768 0.703064 0.407593 0.394470 0.703217 0.436462 0.395050 0.703400 0.467957 0.395599 0.703583 0.502411 0.396301 0.703735 0.540192 0.396790 0.703918 0.580933 0.397583 0.704102 0.624329 0.398132 0.704315 0.670227 0.398651 0.704468 0.717926 0.399384 0.704620 0.767059 0.399902 0.704773 0.817505 0.400391 0.704987 0.868652 0.401123 0.705109 0.915527 0.401611 0.705322 0.000000 0.406525 0.700104 0.000000 0.407043 0.700287 0.014648 0.407776 0.700439 0.041260 0.408325 0.700623 0.074615 0.408997 0.700867 0.101990 0.409607 0.701050 0.127502 0.410095 0.701202 0.151367 0.410889 0.701385 0.173615 0.411438 0.701569 0.194824 0.411987 0.701752 0.214874 0.412750 0.701904 0.234467 0.413300 0.702118 0.253876 0.413971 0.702332 0.273132 0.414612 0.702484 0.292908 0.415131 0.702698 0.313416 0.415802 0.702850 0.334991 0.416412 0.703064 0.357727 0.416931 0.703217 0.382172 0.417694 0.703400 0.408661 0.418243 0.703583 0.437531 0.418915 0.703735 0.469055 0.419525 0.703918 0.503510 0.420044 0.704102 0.541229 0.420807 0.704254 0.581940 0.421295 0.704407 0.625336 0.421844 0.704620 0.670868 0.422577 0.704773 0.718353 0.423096 0.704987 0.767548 0.423553 0.705109 0.817810 0.424316 0.705322 0.868774 0.424835 0.705444 0.915527 0.425323 0.705658 0.000000 0.432251 0.700439 0.000000 0.432831 0.700623 0.017090 0.433350 0.700867 0.043488 0.434113 0.700989 0.076996 0.434631 0.701202 0.104218 0.435181 0.701385 0.129517 0.435913 0.701569 0.153107 0.436462 0.701752 0.175354 0.437195 0.701904 0.196228 0.437775 0.702087 0.216431 0.438324 0.702301 0.235718 0.439117 0.702484 0.255066 0.439606 0.702698 0.274323 0.440155 0.702850 0.294006 0.440918 0.703064 0.314392 0.441437 0.703217 0.335999 0.442169 0.703400 0.358887 0.442749 0.703583 0.383270 0.443298 0.703735 0.409790 0.444000 0.703918 0.438629 0.444580 0.704041 0.470154 0.445068 0.704254 0.504578 0.445831 0.704407 0.542236 0.446381 0.704620 0.582825 0.446960 0.704773 0.626007 0.447632 0.704926 0.671661 0.448120 0.705109 0.719086 0.448822 0.705322 0.768066 0.449341 0.705444 0.817993 0.449860 0.705658 0.868927 0.450348 0.705780 0.915527 0.450989 0.705933 0.000000 0.459961 0.700806 0.000000 0.460693 0.700989 0.019562 0.461243 0.701202 0.045837 0.461761 0.701385 0.079407 0.462555 0.701569 0.106415 0.463074 0.701752 0.131500 0.463776 0.701904 0.154968 0.464386 0.702087 0.176849 0.464905 0.702301 0.197662 0.465698 0.702454 0.217743 0.466217 0.702637 0.237030 0.466766 0.702820 0.256256 0.467560 0.703064 0.275513 0.468079 0.703217 0.295166 0.468658 0.703369 0.315491 0.469360 0.703583 0.336945 0.469879 0.703705 0.359741 0.470673 0.703888 0.384338 0.471191 0.704041 0.410889 0.471771 0.704254 0.439758 0.472443 0.704407 0.471191 0.472992 0.704620 0.505585 0.473480 0.704742 0.543152 0.474213 0.704926 0.583649 0.474762 0.705109 0.626923 0.475372 0.705292 0.672424 0.475952 0.705444 0.719574 0.476471 0.705658 0.768433 0.477142 0.705780 0.818481 0.477661 0.705933 0.869232 0.478119 0.706085 0.915527 0.478668 0.706207 0.000000 0.490234 0.701172 0.000000 0.491028 0.701355 0.021881 0.491516 0.701569 0.050171 0.492310 0.701752 0.081909 0.492828 0.701904 0.108521 0.493378 0.702087 0.133423 0.494110 0.702301 0.156586 0.494690 0.702454 0.178497 0.495392 0.702637 0.199188 0.495972 0.702820 0.219025 0.496490 0.703003 0.238342 0.497162 0.703186 0.257416 0.497833 0.703369 0.276550 0.498322 0.703552 0.296265 0.499084 0.703705 0.316589 0.499603 0.703888 0.338013 0.500214 0.704041 0.360809 0.500854 0.704254 0.385468 0.501404 0.704407 0.411957 0.501923 0.704620 0.440735 0.502625 0.704742 0.472137 0.503143 0.704926 0.506622 0.503815 0.705109 0.544098 0.504395 0.705292 0.584656 0.504883 0.705444 0.627808 0.505585 0.705597 0.673035 0.506073 0.705780 0.720276 0.506561 0.705933 0.769012 0.507233 0.706055 0.818756 0.507721 0.706207 0.869385 0.508209 0.706360 0.915527 0.508667 0.706512 0.000000 0.523407 0.701538 0.000000 0.524139 0.701752 0.024323 0.524689 0.701904 0.054474 0.525208 0.702087 0.084290 0.526001 0.702301 0.110718 0.526520 0.702454 0.135345 0.527100 0.702637 0.158447 0.527771 0.702820 0.180084 0.528320 0.703003 0.200592 0.529083 0.703186 0.220306 0.529602 0.703369 0.239532 0.530121 0.703552 0.258606 0.530853 0.703705 0.277679 0.531372 0.703888 0.297363 0.531921 0.704041 0.317688 0.532654 0.704254 0.339111 0.533173 0.704407 0.361908 0.533691 0.704590 0.386505 0.534363 0.704742 0.412994 0.534912 0.704926 0.441681 0.535583 0.705109 0.473114 0.536102 0.705292 0.507446 0.536560 0.705444 0.545105 0.537048 0.705597 0.585602 0.537811 0.705780 0.628601 0.538269 0.705933 0.673828 0.538696 0.706055 0.720734 0.539368 0.706207 0.769409 0.539856 0.706360 0.819000 0.540314 0.706512 0.869446 0.540955 0.706635 0.915527 0.541412 0.706787 0.000000 0.559662 0.701874 0.001465 0.560150 0.702087 0.026855 0.560730 0.702301 0.058716 0.561432 0.702454 0.086609 0.561920 0.702637 0.112854 0.562622 0.702820 0.137268 0.563171 0.703003 0.160034 0.563690 0.703186 0.181519 0.564423 0.703369 0.201965 0.564911 0.703552 0.221588 0.565460 0.703705 0.240814 0.566132 0.703888 0.259766 0.566681 0.704041 0.278778 0.567108 0.704254 0.298462 0.567871 0.704407 0.318726 0.568390 0.704590 0.340179 0.568848 0.704742 0.362976 0.569550 0.704926 0.387512 0.570068 0.705078 0.413940 0.570496 0.705292 0.442688 0.571198 0.705383 0.474152 0.571686 0.705597 0.508484 0.572113 0.705750 0.546051 0.572784 0.705933 0.586304 0.573273 0.706055 0.629303 0.573700 0.706207 0.674347 0.574310 0.706360 0.721344 0.574768 0.706512 0.769714 0.575195 0.706635 0.819214 0.575623 0.706787 0.869629 0.576263 0.706940 0.915527 0.576630 0.707092 0.000000 0.598541 0.702301 0.003693 0.598999 0.702454 0.029297 0.599731 0.702637 0.061127 0.600220 0.702820 0.088959 0.600677 0.703003 0.114960 0.601257 0.703186 0.139221 0.601868 0.703369 0.161865 0.602386 0.703552 0.183167 0.602875 0.703705 0.203278 0.603516 0.703888 0.222839 0.604004 0.704041 0.242035 0.604492 0.704224 0.260895 0.605164 0.704376 0.279907 0.605621 0.704590 0.299530 0.606140 0.704742 0.319794 0.606750 0.704895 0.341217 0.607208 0.705078 0.364014 0.607605 0.705292 0.388428 0.608307 0.705383 0.414886 0.608765 0.705597 0.443726 0.609131 0.705750 0.475159 0.609680 0.705933 0.509460 0.610199 0.706055 0.546875 0.610626 0.706207 0.587219 0.611053 0.706360 0.630127 0.611664 0.706512 0.675079 0.612091 0.706635 0.721863 0.612457 0.706787 0.770081 0.612854 0.706940 0.819519 0.613403 0.707092 0.869720 0.613800 0.707214 0.915527 0.614136 0.707367 0.000000 0.639740 0.702637 0.006042 0.640411 0.702820 0.031616 0.640869 0.703003 0.063812 0.641266 0.703186 0.091187 0.641724 0.703369 0.117035 0.642365 0.703552 0.140961 0.642822 0.703705 0.163391 0.643219 0.703888 0.184631 0.643860 0.704041 0.204865 0.644318 0.704224 0.224091 0.644745 0.704376 0.243195 0.645294 0.704590 0.262024 0.645813 0.704742 0.280975 0.646179 0.704895 0.300568 0.646576 0.705078 0.320831 0.647217 0.705292 0.342285 0.647644 0.705383 0.365021 0.648041 0.705597 0.389435 0.648438 0.705750 0.415955 0.649017 0.705933 0.444733 0.649445 0.706055 0.476166 0.649811 0.706207 0.510468 0.650146 0.706360 0.547760 0.650757 0.706512 0.588104 0.651093 0.706635 0.630768 0.651459 0.706787 0.675598 0.651764 0.706940 0.722412 0.652405 0.707062 0.770538 0.652710 0.707214 0.819885 0.653015 0.707367 0.869781 0.653290 0.707489 0.915527 0.653595 0.707611 0.000000 0.683167 0.702972 0.008423 0.683533 0.703186 0.034058 0.683899 0.703369 0.066254 0.684357 0.703552 0.093597 0.684875 0.703705 0.119080 0.685242 0.703857 0.142853 0.685608 0.704041 0.165161 0.686188 0.704224 0.186035 0.686554 0.704376 0.206146 0.686951 0.704590 0.225311 0.687317 0.704742 0.244354 0.687866 0.704895 0.263123 0.688293 0.705078 0.282074 0.688599 0.705292 0.301544 0.688965 0.705383 0.321777 0.689270 0.705597 0.343292 0.689819 0.705750 0.366028 0.690186 0.705872 0.390442 0.690491 0.706055 0.416931 0.690857 0.706207 0.445740 0.691345 0.706329 0.477081 0.691711 0.706512 0.511230 0.691986 0.706635 0.548676 0.692352 0.706787 0.588837 0.692657 0.706940 0.631561 0.693146 0.707062 0.676361 0.693451 0.707214 0.722900 0.693726 0.707367 0.770874 0.694031 0.707458 0.820068 0.694305 0.707611 0.869873 0.694763 0.707672 0.915527 0.695007 0.707855 0.000000 0.727905 0.703339 0.010742 0.728241 0.703491 0.036377 0.728607 0.703705 0.068665 0.729095 0.703857 0.095734 0.729431 0.704041 0.121063 0.729675 0.704224 0.144653 0.730042 0.704376 0.166687 0.730316 0.704590 0.187408 0.730835 0.704712 0.207458 0.731171 0.704895 0.226685 0.731445 0.705078 0.245514 0.731750 0.705231 0.264221 0.732025 0.705383 0.283142 0.732513 0.705566 0.302460 0.732788 0.705750 0.322662 0.733124 0.705872 0.344086 0.733368 0.706055 0.366974 0.733673 0.706207 0.391418 0.734131 0.706329 0.417908 0.734406 0.706482 0.446594 0.734680 0.706635 0.477905 0.734894 0.706757 0.512146 0.735107 0.706909 0.549591 0.735474 0.707062 0.589569 0.735840 0.707214 0.632111 0.736115 0.707367 0.676819 0.736298 0.707458 0.723236 0.736542 0.707611 0.771210 0.736755 0.707672 0.820221 0.736969 0.707855 0.869995 0.737244 0.707977 0.915527 0.737579 0.708069 0.000000 0.773956 0.703705 0.013062 0.774231 0.703857 0.038757 0.774475 0.704041 0.071228 0.774750 0.704224 0.097900 0.775177 0.704376 0.122955 0.775421 0.704590 0.146332 0.775604 0.704712 0.168396 0.775848 0.704895 0.189026 0.776062 0.705078 0.208710 0.776306 0.705231 0.227722 0.776642 0.705383 0.246521 0.776978 0.705566 0.265198 0.777191 0.705750 0.284149 0.777466 0.705872 0.303467 0.777618 0.706055 0.323669 0.777802 0.706207 0.345062 0.778076 0.706329 0.367798 0.778229 0.706482 0.392334 0.778625 0.706635 0.418701 0.778839 0.706757 0.447418 0.779022 0.706909 0.478851 0.779205 0.707062 0.513031 0.779388 0.707214 0.550232 0.779572 0.707367 0.590332 0.779755 0.707458 0.632843 0.779968 0.707611 0.677429 0.780334 0.707672 0.723877 0.780518 0.707855 0.771698 0.780670 0.707977 0.820435 0.780853 0.708069 0.870178 0.780975 0.708160 0.915527 0.781128 0.708282 0.000000 0.820770 0.704041 0.015472 0.820923 0.704224 0.041077 0.821106 0.704346 0.073547 0.821259 0.704529 0.100220 0.821625 0.704712 0.124939 0.821808 0.704895 0.148163 0.821960 0.705078 0.169830 0.822113 0.705231 0.190338 0.822266 0.705383 0.209961 0.822449 0.705566 0.228973 0.822540 0.705750 0.247650 0.822693 0.705872 0.266205 0.822815 0.706024 0.285095 0.823120 0.706207 0.304474 0.823364 0.706329 0.324646 0.823456 0.706482 0.346039 0.823608 0.706635 0.368774 0.823792 0.706757 0.393127 0.823883 0.706909 0.419586 0.824036 0.707062 0.448364 0.824158 0.707214 0.479706 0.824249 0.707367 0.513947 0.824402 0.707458 0.551086 0.824463 0.707611 0.590973 0.824768 0.707672 0.633362 0.824921 0.707855 0.677917 0.825104 0.707977 0.724182 0.825165 0.708069 0.771912 0.825256 0.708160 0.820740 0.825378 0.708282 0.870392 0.825439 0.708374 0.915527 0.825531 0.708527 0.000000 0.868164 0.704346 0.017883 0.868286 0.704529 0.043365 0.868378 0.704712 0.075867 0.868469 0.704895 0.102142 0.868530 0.705048 0.126831 0.868622 0.705231 0.149750 0.868713 0.705383 0.171295 0.868744 0.705566 0.191681 0.868835 0.705750 0.211182 0.868896 0.705872 0.230103 0.868988 0.706024 0.248718 0.869110 0.706207 0.267181 0.869110 0.706329 0.285950 0.869202 0.706482 0.305481 0.869263 0.706635 0.325623 0.869293 0.706757 0.346954 0.869385 0.706909 0.369690 0.869446 0.707062 0.394073 0.869568 0.707214 0.420441 0.869720 0.707306 0.449158 0.869781 0.707458 0.480408 0.869934 0.707581 0.514557 0.869995 0.707672 0.551727 0.870087 0.707794 0.591766 0.870087 0.707977 0.634064 0.870148 0.708069 0.678284 0.870239 0.708160 0.724548 0.870270 0.708282 0.772217 0.870331 0.708374 0.820984 0.870361 0.708527 0.870514 0.870422 0.708588 0.915527 0.870422 0.708679 0.000000 0.915527 0.704712 0.020172 0.915527 0.704865 0.045502 0.915527 0.705048 0.078094 0.915527 0.705231 0.104218 0.915527 0.705383 0.128571 0.915527 0.705566 0.151428 0.915527 0.705719 0.172760 0.915527 0.705872 0.192993 0.915527 0.706024 0.212402 0.915527 0.706177 0.231110 0.915527 0.706329 0.249634 0.915527 0.706482 0.268188 0.915527 0.706635 0.286957 0.915527 0.706757 0.306152 0.915527 0.706909 0.326355 0.915527 0.707062 0.347778 0.915527 0.707214 0.370453 0.915527 0.707306 0.394958 0.915527 0.707458 0.421173 0.915527 0.707581 0.449890 0.915527 0.707672 0.481262 0.915527 0.707794 0.515411 0.915527 0.707977 0.552460 0.915527 0.708069 0.592255 0.915527 0.708160 0.634552 0.915527 0.708282 0.678925 0.915527 0.708374 0.725098 0.915527 0.708527 0.772461 0.915527 0.708588 0.821136 0.915527 0.708679 0.870544 0.915527 0.708740 0.915527 0.915527 0.708862 0.000000 0.000000 0.729614 0.000000 0.000000 0.729706 0.000000 0.000000 0.729828 0.004974 0.000000 0.729919 0.031860 0.000000 0.730042 0.065521 0.000000 0.730164 0.094391 0.000000 0.730255 0.121490 0.000000 0.730316 0.146423 0.000000 0.730469 0.169952 0.000000 0.730560 0.192108 0.000000 0.730682 0.213257 0.000000 0.730804 0.233765 0.000000 0.730957 0.253906 0.000000 0.731079 0.274170 0.000000 0.731201 0.294983 0.000000 0.731323 0.316498 0.000000 0.731476 0.339233 0.000000 0.731598 0.363770 0.000000 0.731750 0.390137 0.000000 0.731873 0.418854 0.000000 0.732056 0.450256 0.000000 0.732178 0.484863 0.000000 0.732300 0.522980 0.000000 0.732452 0.564697 0.000000 0.732574 0.609467 0.000000 0.732727 0.656982 0.000000 0.732880 0.706848 0.000000 0.733032 0.758545 0.000000 0.733185 0.811615 0.000214 0.733337 0.865784 0.001648 0.733490 0.915527 0.002991 0.733673 0.000000 0.000000 0.729828 0.000000 0.000000 0.729919 0.000000 0.000000 0.729980 0.006439 0.000000 0.730133 0.033417 0.000000 0.730225 0.067169 0.000000 0.730316 0.096039 0.000000 0.730438 0.122833 0.000000 0.730560 0.147736 0.000366 0.730682 0.171143 0.001434 0.730804 0.193268 0.002563 0.730957 0.214294 0.003601 0.731079 0.234680 0.004791 0.731201 0.254913 0.006134 0.731323 0.275085 0.007385 0.731476 0.295898 0.008606 0.731598 0.317444 0.009918 0.731750 0.340210 0.011200 0.731873 0.364594 0.012512 0.732025 0.390961 0.013855 0.732178 0.419678 0.015228 0.732300 0.451172 0.016602 0.732452 0.485870 0.018066 0.732574 0.523987 0.019531 0.732727 0.565643 0.020996 0.732880 0.610382 0.022430 0.733032 0.657806 0.023865 0.733185 0.707611 0.025299 0.733337 0.759155 0.026978 0.733490 0.812134 0.028442 0.733612 0.865906 0.029938 0.733826 0.915527 0.031433 0.733978 0.000000 0.020020 0.729980 0.000000 0.021027 0.730133 0.000000 0.022095 0.730225 0.007965 0.023193 0.730316 0.035065 0.024170 0.730438 0.069031 0.025238 0.730560 0.097565 0.026459 0.730682 0.124298 0.027618 0.730804 0.149261 0.028839 0.730957 0.172363 0.030029 0.731079 0.194275 0.031281 0.731171 0.215393 0.032562 0.731323 0.235657 0.033813 0.731476 0.255890 0.035065 0.731598 0.276062 0.036407 0.731750 0.296753 0.037689 0.731873 0.318451 0.039001 0.732025 0.341187 0.040375 0.732178 0.365509 0.041718 0.732300 0.391907 0.043091 0.732452 0.420685 0.044495 0.732574 0.452179 0.045990 0.732727 0.486877 0.048523 0.732880 0.524994 0.050995 0.733032 0.566406 0.053772 0.733185 0.611145 0.056610 0.733337 0.658539 0.059052 0.733490 0.708130 0.060547 0.733612 0.759583 0.062164 0.733795 0.812439 0.063812 0.733978 0.866028 0.065430 0.734131 0.915527 0.067017 0.734283 0.000000 0.052216 0.730225 0.000000 0.054138 0.730316 0.000000 0.056000 0.730438 0.009735 0.058014 0.730530 0.036835 0.059479 0.730682 0.070740 0.060760 0.730804 0.099335 0.062012 0.730896 0.125885 0.063385 0.731079 0.150574 0.064667 0.731171 0.173584 0.065857 0.731323 0.195404 0.067169 0.731445 0.216492 0.068573 0.731598 0.236694 0.069977 0.731750 0.256805 0.071411 0.731873 0.277069 0.072845 0.732025 0.297638 0.074249 0.732178 0.319275 0.075745 0.732300 0.342194 0.077148 0.732452 0.366486 0.078583 0.732574 0.392914 0.080109 0.732727 0.421692 0.081573 0.732880 0.453217 0.083069 0.733032 0.487732 0.084595 0.733185 0.525909 0.086060 0.733337 0.567413 0.087555 0.733490 0.612030 0.089111 0.733612 0.659302 0.090576 0.733795 0.708893 0.092163 0.733948 0.760132 0.093658 0.734131 0.812683 0.095154 0.734283 0.866241 0.096710 0.734436 0.915527 0.098206 0.734558 0.000000 0.086823 0.730438 0.000000 0.087891 0.730530 0.000000 0.089142 0.730682 0.011444 0.090363 0.730804 0.038605 0.091431 0.730896 0.072601 0.092651 0.731079 0.100922 0.093872 0.731171 0.127380 0.095123 0.731323 0.151947 0.096436 0.731445 0.174927 0.097717 0.731598 0.196747 0.098846 0.731750 0.217590 0.100159 0.731842 0.237762 0.101501 0.732025 0.257751 0.102844 0.732178 0.278015 0.104218 0.732300 0.298645 0.105499 0.732452 0.320190 0.106964 0.732574 0.343140 0.108215 0.732727 0.367554 0.109497 0.732880 0.393982 0.110870 0.733032 0.422760 0.112244 0.733185 0.454285 0.113647 0.733337 0.488770 0.115082 0.733490 0.526825 0.116455 0.733612 0.568420 0.117889 0.733795 0.612946 0.119324 0.733948 0.660126 0.120667 0.734131 0.709473 0.122040 0.734283 0.760651 0.123444 0.734436 0.813171 0.124756 0.734558 0.866547 0.126160 0.734711 0.915527 0.127563 0.734894 0.000000 0.117584 0.730682 0.000000 0.118530 0.730804 0.000000 0.119629 0.730896 0.013275 0.120789 0.731079 0.040466 0.121735 0.731171 0.074615 0.122925 0.731323 0.102814 0.124115 0.731445 0.129089 0.125305 0.731598 0.153412 0.126343 0.731750 0.176270 0.127533 0.731842 0.198029 0.128754 0.732025 0.218750 0.130035 0.732178 0.238861 0.131042 0.732300 0.258820 0.132294 0.732452 0.278961 0.133606 0.732574 0.299683 0.134827 0.732697 0.321228 0.136108 0.732819 0.343994 0.137177 0.733002 0.368561 0.138428 0.733185 0.394989 0.139740 0.733337 0.423859 0.140991 0.733490 0.455322 0.142334 0.733612 0.489868 0.143494 0.733795 0.527893 0.144684 0.733948 0.569427 0.145996 0.734131 0.613861 0.147308 0.734283 0.660797 0.148590 0.734436 0.710205 0.149780 0.734558 0.761047 0.150970 0.734711 0.813538 0.152252 0.734894 0.866760 0.153534 0.735046 0.915527 0.154816 0.735199 0.000000 0.146057 0.730896 0.000000 0.147095 0.731079 0.000000 0.147980 0.731171 0.015198 0.149017 0.731293 0.042328 0.150116 0.731445 0.076630 0.151031 0.731598 0.104431 0.152100 0.731720 0.130615 0.153259 0.731842 0.154968 0.154175 0.732025 0.177673 0.155273 0.732178 0.199280 0.156433 0.732300 0.219971 0.157440 0.732422 0.239990 0.158478 0.732544 0.259888 0.159668 0.732697 0.279968 0.160675 0.732819 0.300751 0.161743 0.733002 0.322266 0.162933 0.733185 0.345032 0.164124 0.733337 0.369629 0.165100 0.733490 0.396088 0.166260 0.733612 0.424866 0.167450 0.733795 0.456177 0.168396 0.733948 0.490936 0.169586 0.734100 0.528961 0.170776 0.734283 0.570251 0.171967 0.734436 0.614655 0.172913 0.734558 0.661682 0.174103 0.734711 0.710724 0.175293 0.734863 0.761719 0.176331 0.735046 0.813812 0.177429 0.735199 0.866882 0.178619 0.735321 0.915527 0.179718 0.735504 0.000000 0.172394 0.731171 0.000000 0.173340 0.731293 0.000000 0.174133 0.731445 0.017120 0.175110 0.731598 0.044250 0.175964 0.731720 0.078674 0.177002 0.731842 0.106384 0.177887 0.732025 0.132385 0.178772 0.732178 0.156433 0.179871 0.732239 0.179047 0.180664 0.732422 0.200531 0.181732 0.732544 0.221069 0.182770 0.732697 0.241089 0.183624 0.732819 0.260986 0.184723 0.733002 0.281036 0.185547 0.733154 0.301788 0.186646 0.733307 0.323334 0.187714 0.733490 0.346100 0.188568 0.733612 0.370636 0.189667 0.733795 0.397095 0.190674 0.733948 0.425751 0.191620 0.734100 0.457275 0.192719 0.734222 0.492035 0.193756 0.734436 0.530029 0.194672 0.734558 0.571228 0.195740 0.734711 0.615601 0.196655 0.734863 0.662567 0.197693 0.735046 0.711548 0.198792 0.735199 0.762177 0.199615 0.735321 0.814056 0.200714 0.735474 0.867035 0.201721 0.735687 0.915527 0.202667 0.735809 0.000000 0.196564 0.731445 0.000000 0.197479 0.731598 0.000000 0.198181 0.731720 0.019073 0.199127 0.731842 0.046753 0.199982 0.732025 0.080597 0.200806 0.732147 0.108307 0.201599 0.732239 0.133972 0.202515 0.732422 0.157867 0.203461 0.732544 0.180420 0.204224 0.732697 0.201782 0.205231 0.732819 0.222290 0.205963 0.733002 0.242249 0.206970 0.733154 0.262115 0.207764 0.733307 0.282104 0.208740 0.733429 0.302612 0.209747 0.733612 0.324371 0.210541 0.733795 0.347168 0.211517 0.733948 0.371521 0.212311 0.734100 0.398010 0.213318 0.734222 0.426880 0.214142 0.734436 0.458374 0.215118 0.734558 0.493042 0.216125 0.734711 0.531036 0.216858 0.734863 0.572266 0.217896 0.735016 0.616577 0.218658 0.735199 0.663208 0.219666 0.735321 0.712067 0.220490 0.735474 0.762726 0.221436 0.735687 0.814392 0.222443 0.735809 0.867157 0.223236 0.735992 0.915527 0.224182 0.736145 0.000000 0.219238 0.731720 0.000000 0.219940 0.731842 0.000000 0.220764 0.732025 0.021271 0.221436 0.732147 0.050262 0.222382 0.732239 0.082794 0.223022 0.732422 0.110291 0.223755 0.732544 0.135803 0.224609 0.732697 0.159576 0.225464 0.732819 0.181885 0.226196 0.733002 0.203064 0.227173 0.733154 0.223480 0.227814 0.733307 0.243378 0.228760 0.733429 0.263184 0.229462 0.733582 0.283203 0.230347 0.733734 0.303741 0.231110 0.733948 0.325317 0.232056 0.734100 0.348206 0.232758 0.734222 0.372620 0.233704 0.734406 0.399078 0.234406 0.734558 0.427917 0.235352 0.734711 0.459503 0.236053 0.734863 0.494080 0.237000 0.735016 0.531921 0.237732 0.735199 0.573303 0.238647 0.735321 0.617371 0.239380 0.735474 0.664093 0.240326 0.735657 0.712799 0.241058 0.735809 0.763214 0.241943 0.735992 0.814880 0.242676 0.736145 0.867310 0.243591 0.736298 0.915527 0.244263 0.736450 0.000000 0.240417 0.731964 0.000000 0.241058 0.732147 0.000000 0.241882 0.732239 0.023346 0.242493 0.732422 0.053864 0.243317 0.732544 0.084869 0.243958 0.732697 0.112030 0.244781 0.732819 0.137451 0.245483 0.733002 0.161041 0.246216 0.733154 0.183380 0.246948 0.733307 0.204346 0.247681 0.733429 0.224762 0.248474 0.733582 0.244568 0.249115 0.733734 0.264313 0.249969 0.733948 0.284302 0.250702 0.734100 0.304810 0.251526 0.734222 0.326355 0.252197 0.734406 0.349304 0.253082 0.734497 0.373688 0.253723 0.734711 0.400177 0.254639 0.734863 0.429047 0.255249 0.735016 0.460602 0.256165 0.735199 0.495087 0.256836 0.735321 0.533020 0.257690 0.735474 0.574280 0.258392 0.735657 0.618256 0.259247 0.735809 0.664948 0.259918 0.735992 0.713379 0.260803 0.736145 0.763611 0.261444 0.736267 0.815186 0.262115 0.736450 0.867462 0.262970 0.736633 0.915527 0.263611 0.736786 0.000000 0.260803 0.732239 0.000000 0.261383 0.732422 0.000000 0.261932 0.732544 0.025513 0.262787 0.732697 0.057953 0.263306 0.732819 0.086914 0.264130 0.733002 0.114044 0.264740 0.733154 0.139282 0.265472 0.733307 0.162689 0.266113 0.733429 0.184723 0.266785 0.733582 0.205627 0.267578 0.733734 0.225983 0.268188 0.733887 0.245758 0.269043 0.734100 0.265472 0.269684 0.734222 0.285431 0.270416 0.734406 0.305908 0.271088 0.734497 0.327423 0.271881 0.734711 0.350433 0.272522 0.734863 0.374847 0.273163 0.735016 0.401276 0.274017 0.735168 0.430176 0.274628 0.735321 0.461700 0.275452 0.735474 0.496185 0.276062 0.735657 0.534088 0.276947 0.735809 0.575195 0.277588 0.735992 0.619263 0.278290 0.736145 0.665619 0.278992 0.736267 0.714142 0.279633 0.736420 0.764282 0.280457 0.736633 0.815491 0.281036 0.736786 0.867615 0.281860 0.736908 0.915527 0.282471 0.737091 0.000000 0.280457 0.732544 0.000000 0.280975 0.732697 0.001648 0.281708 0.732819 0.027740 0.282318 0.733002 0.060577 0.282867 0.733154 0.089264 0.283661 0.733307 0.116058 0.284210 0.733429 0.140930 0.284882 0.733582 0.164276 0.285583 0.733734 0.186127 0.286163 0.733887 0.207092 0.286957 0.734070 0.227203 0.287506 0.734222 0.246918 0.288300 0.734406 0.266602 0.288910 0.734497 0.286530 0.289642 0.734680 0.307007 0.290283 0.734863 0.328491 0.290894 0.735016 0.351471 0.291656 0.735168 0.375916 0.292267 0.735321 0.402405 0.293091 0.735474 0.431274 0.293671 0.735657 0.462830 0.294312 0.735809 0.497314 0.295074 0.735931 0.535187 0.295654 0.736145 0.576233 0.296478 0.736267 0.620239 0.297058 0.736420 0.666504 0.297699 0.736633 0.714722 0.298431 0.736786 0.764679 0.299042 0.736908 0.815979 0.299835 0.737091 0.867920 0.300385 0.737213 0.915527 0.301178 0.737396 0.000000 0.299927 0.732819 0.000000 0.300476 0.732971 0.003693 0.301178 0.733124 0.029938 0.301727 0.733246 0.062897 0.302246 0.733429 0.091339 0.303009 0.733582 0.118042 0.303589 0.733734 0.142792 0.304260 0.733887 0.165802 0.304901 0.734070 0.187653 0.305481 0.734192 0.208496 0.306213 0.734406 0.228424 0.306793 0.734497 0.248108 0.307373 0.734680 0.267761 0.308105 0.734863 0.287598 0.308685 0.735016 0.308105 0.309448 0.735168 0.329590 0.310059 0.735321 0.352386 0.310730 0.735474 0.377014 0.311401 0.735657 0.403534 0.311951 0.735809 0.432404 0.312744 0.735931 0.463898 0.313324 0.736145 0.498352 0.313965 0.736267 0.536316 0.314667 0.736420 0.577240 0.315247 0.736572 0.620972 0.316010 0.736786 0.667267 0.316589 0.736908 0.715454 0.317322 0.737091 0.765320 0.317871 0.737213 0.816223 0.318451 0.737396 0.868103 0.319183 0.737518 0.915527 0.319733 0.737671 0.000000 0.319519 0.733124 0.000000 0.320038 0.733246 0.005920 0.320770 0.733429 0.032288 0.321289 0.733582 0.065308 0.321869 0.733734 0.093628 0.322601 0.733887 0.119965 0.323120 0.734070 0.144592 0.323853 0.734192 0.167511 0.324402 0.734406 0.189178 0.324951 0.734497 0.209808 0.325714 0.734680 0.229675 0.326263 0.734833 0.249298 0.326904 0.735016 0.268890 0.327606 0.735168 0.288696 0.328125 0.735321 0.309204 0.328918 0.735474 0.330719 0.329468 0.735657 0.353516 0.330017 0.735809 0.378174 0.330780 0.735931 0.404633 0.331299 0.736145 0.433411 0.332092 0.736267 0.464966 0.332642 0.736420 0.499512 0.333191 0.736572 0.537323 0.333923 0.736755 0.578278 0.334503 0.736908 0.621918 0.335266 0.737091 0.667969 0.335876 0.737213 0.716156 0.336365 0.737396 0.765747 0.337128 0.737518 0.816528 0.337677 0.737671 0.868225 0.338257 0.737793 0.915527 0.338928 0.737976 0.000000 0.339600 0.733429 0.000000 0.340332 0.733582 0.008057 0.340851 0.733734 0.034546 0.341370 0.733887 0.067749 0.342133 0.734070 0.095795 0.342621 0.734192 0.121918 0.343292 0.734344 0.146332 0.343903 0.734497 0.169098 0.344452 0.734680 0.190613 0.345184 0.734833 0.211151 0.345734 0.735016 0.230927 0.346252 0.735168 0.250519 0.347046 0.735321 0.270020 0.347565 0.735474 0.289856 0.348236 0.735657 0.310333 0.348907 0.735809 0.331818 0.349426 0.735931 0.354614 0.350189 0.736115 0.379211 0.350739 0.736267 0.405731 0.351440 0.736420 0.434479 0.352051 0.736572 0.465973 0.352570 0.736755 0.500641 0.353302 0.736877 0.538177 0.353882 0.737091 0.579315 0.354431 0.737213 0.622864 0.355164 0.737396 0.668854 0.355713 0.737518 0.716705 0.356384 0.737671 0.766174 0.356995 0.737793 0.816956 0.357513 0.737976 0.868408 0.358154 0.738129 0.915527 0.358765 0.738281 0.000000 0.360657 0.733734 0.000000 0.361359 0.733887 0.010376 0.361938 0.734070 0.036926 0.362427 0.734192 0.070251 0.363220 0.734344 0.097961 0.363708 0.734497 0.123932 0.364258 0.734680 0.148224 0.365021 0.734833 0.170837 0.365540 0.734985 0.192108 0.366150 0.735168 0.212463 0.366821 0.735321 0.232147 0.367371 0.735474 0.251678 0.368103 0.735596 0.271179 0.368652 0.735809 0.291016 0.369202 0.735931 0.311432 0.369965 0.736115 0.332916 0.370483 0.736267 0.355743 0.371033 0.736420 0.380280 0.371796 0.736572 0.406769 0.372314 0.736755 0.435638 0.373108 0.736877 0.467072 0.373596 0.737030 0.501678 0.374207 0.737213 0.539276 0.374939 0.737396 0.580231 0.375458 0.737518 0.623779 0.376007 0.737671 0.669464 0.376709 0.737793 0.717285 0.377228 0.737976 0.766754 0.377991 0.738129 0.817322 0.378540 0.738281 0.868530 0.378998 0.738434 0.915527 0.379730 0.738556 0.000000 0.382996 0.734070 0.000000 0.383514 0.734192 0.012756 0.384094 0.734344 0.039154 0.384796 0.734497 0.072601 0.385345 0.734680 0.100342 0.386078 0.734833 0.125977 0.386597 0.734985 0.149933 0.387177 0.735138 0.172333 0.387878 0.735321 0.193634 0.388428 0.735474 0.213776 0.388977 0.735596 0.233429 0.389740 0.735809 0.252869 0.390259 0.735931 0.272369 0.391022 0.736115 0.291962 0.391571 0.736206 0.312561 0.392120 0.736420 0.334045 0.392853 0.736572 0.356812 0.393402 0.736755 0.381348 0.393921 0.736877 0.407806 0.394714 0.737030 0.436646 0.395264 0.737213 0.468170 0.395935 0.737396 0.502563 0.396484 0.737518 0.540314 0.397064 0.737671 0.581055 0.397766 0.737793 0.624512 0.398346 0.737976 0.670319 0.398834 0.738129 0.717987 0.399597 0.738281 0.767151 0.400085 0.738434 0.817535 0.400696 0.738556 0.868683 0.401306 0.738708 0.915527 0.401825 0.738861 0.000000 0.406708 0.734344 0.000000 0.407410 0.734467 0.015167 0.407959 0.734680 0.041565 0.408508 0.734833 0.074982 0.409271 0.734985 0.102478 0.409790 0.735138 0.128021 0.410309 0.735321 0.151733 0.411102 0.735474 0.173950 0.411621 0.735596 0.195038 0.412323 0.735748 0.215302 0.412964 0.735931 0.234863 0.413483 0.736115 0.254059 0.414276 0.736206 0.273407 0.414764 0.736389 0.293060 0.415283 0.736572 0.313690 0.416046 0.736755 0.335144 0.416595 0.736877 0.357910 0.417236 0.737030 0.382324 0.417908 0.737213 0.408875 0.418427 0.737396 0.437714 0.419189 0.737518 0.469238 0.419708 0.737671 0.503632 0.420258 0.737793 0.541382 0.420990 0.737976 0.582062 0.421509 0.738129 0.625427 0.422058 0.738281 0.671051 0.422791 0.738434 0.718506 0.423248 0.738556 0.767578 0.423920 0.738708 0.817841 0.424530 0.738800 0.868774 0.424988 0.738953 0.915527 0.425720 0.739105 0.000000 0.432495 0.734619 0.000000 0.433014 0.734833 0.017548 0.433533 0.734985 0.043976 0.434296 0.735138 0.077545 0.434814 0.735291 0.104553 0.435516 0.735474 0.129822 0.436127 0.735596 0.153564 0.436676 0.735748 0.175598 0.437439 0.735901 0.196442 0.437988 0.736115 0.216614 0.438477 0.736206 0.236053 0.439270 0.736389 0.255249 0.439819 0.736572 0.274658 0.440460 0.736755 0.294220 0.441101 0.736877 0.314728 0.441650 0.737030 0.336243 0.442413 0.737183 0.359039 0.442963 0.737396 0.383453 0.443481 0.737518 0.409943 0.444244 0.737671 0.438812 0.444763 0.737793 0.470337 0.445374 0.737976 0.504700 0.446045 0.738129 0.542389 0.446594 0.738281 0.583038 0.447296 0.738434 0.626312 0.447784 0.738556 0.671722 0.448334 0.738708 0.719177 0.449036 0.738800 0.768158 0.449554 0.738953 0.818054 0.450012 0.739105 0.869080 0.450714 0.739227 0.915527 0.451233 0.739380 0.000000 0.460236 0.734985 0.000000 0.460938 0.735138 0.019928 0.461456 0.735291 0.046875 0.462128 0.735474 0.079987 0.462769 0.735596 0.106873 0.463287 0.735748 0.131836 0.464050 0.735901 0.155243 0.464600 0.736115 0.177094 0.465210 0.736206 0.198059 0.465881 0.736389 0.217926 0.466431 0.736542 0.237366 0.467010 0.736755 0.256470 0.467743 0.736877 0.275787 0.468262 0.737030 0.295319 0.469055 0.737183 0.315765 0.469574 0.737335 0.337189 0.470062 0.737488 0.360077 0.470856 0.737671 0.384521 0.471375 0.737793 0.411041 0.472107 0.737976 0.439880 0.472626 0.738129 0.471344 0.473175 0.738220 0.505768 0.473816 0.738403 0.543396 0.474426 0.738556 0.583954 0.474884 0.738678 0.627045 0.475647 0.738800 0.672607 0.476135 0.738953 0.719727 0.476624 0.739105 0.768524 0.477356 0.739227 0.818573 0.477814 0.739380 0.869293 0.478302 0.739532 0.915527 0.478973 0.739655 0.000000 0.490631 0.735291 0.000000 0.491211 0.735474 0.022400 0.491699 0.735596 0.050873 0.492523 0.735748 0.082306 0.493011 0.735901 0.109009 0.493713 0.736084 0.133820 0.494324 0.736206 0.157074 0.494873 0.736389 0.178802 0.495667 0.736542 0.199432 0.496155 0.736725 0.219177 0.496704 0.736877 0.238617 0.497437 0.737030 0.257599 0.497986 0.737183 0.276794 0.498535 0.737335 0.296448 0.499298 0.737488 0.316895 0.499786 0.737640 0.338226 0.500549 0.737793 0.361084 0.501038 0.737915 0.385590 0.501617 0.738068 0.412109 0.502289 0.738220 0.440948 0.502869 0.738403 0.472443 0.503326 0.738495 0.506805 0.504059 0.738678 0.544281 0.504608 0.738800 0.584778 0.505035 0.738953 0.627930 0.505768 0.739105 0.673157 0.506256 0.739227 0.720337 0.506744 0.739380 0.769135 0.507446 0.739471 0.818787 0.507904 0.739655 0.869385 0.508331 0.739777 0.915527 0.509033 0.739929 0.000000 0.523682 0.735596 0.000000 0.524384 0.735748 0.024872 0.524872 0.735901 0.055237 0.525452 0.736084 0.084686 0.526184 0.736206 0.111206 0.526703 0.736389 0.135803 0.527435 0.736542 0.158691 0.528015 0.736725 0.180298 0.528503 0.736816 0.200836 0.529266 0.737030 0.220490 0.529785 0.737183 0.239777 0.530457 0.737335 0.258759 0.531067 0.737488 0.277893 0.531586 0.737640 0.297516 0.532196 0.737793 0.317841 0.532867 0.737915 0.339233 0.533356 0.738068 0.362183 0.534088 0.738220 0.386658 0.534546 0.738403 0.413177 0.535065 0.738495 0.442047 0.535767 0.738678 0.473419 0.536285 0.738800 0.507812 0.536774 0.738953 0.545258 0.537415 0.739105 0.585724 0.537994 0.739227 0.628784 0.538391 0.739380 0.673950 0.539032 0.739471 0.720795 0.539612 0.739655 0.769440 0.540039 0.739777 0.819031 0.540619 0.739929 0.869507 0.541138 0.740021 0.915527 0.541565 0.740173 0.000000 0.559845 0.735901 0.001953 0.560333 0.736084 0.027161 0.561096 0.736176 0.059204 0.561584 0.736389 0.086914 0.562134 0.736542 0.113159 0.562836 0.736725 0.137573 0.563354 0.736816 0.160492 0.563873 0.737030 0.181885 0.564575 0.737183 0.202179 0.565125 0.737335 0.221771 0.565643 0.737488 0.240997 0.566345 0.737640 0.259918 0.566833 0.737793 0.279022 0.567352 0.737915 0.298615 0.568054 0.738068 0.318939 0.568542 0.738220 0.340332 0.569092 0.738403 0.363129 0.569733 0.738495 0.387756 0.570190 0.738678 0.414246 0.570831 0.738800 0.443024 0.571381 0.738953 0.474274 0.571838 0.739105 0.508636 0.572296 0.739227 0.546204 0.572968 0.739380 0.586578 0.573425 0.739471 0.629425 0.573853 0.739655 0.674438 0.574493 0.739777 0.721497 0.574921 0.739929 0.769806 0.575378 0.740021 0.819244 0.575928 0.740112 0.869629 0.576385 0.740265 0.915527 0.576782 0.740387 0.000000 0.598694 0.736176 0.004211 0.599213 0.736389 0.029663 0.599884 0.736542 0.061707 0.600403 0.736725 0.089478 0.600861 0.736816 0.115295 0.601562 0.737000 0.139526 0.602081 0.737183 0.162079 0.602509 0.737335 0.183411 0.603241 0.737488 0.203644 0.603699 0.737640 0.223145 0.604156 0.737793 0.242218 0.604858 0.737915 0.261078 0.605316 0.738068 0.280029 0.605774 0.738220 0.299683 0.606476 0.738403 0.319946 0.606873 0.738495 0.341370 0.607361 0.738678 0.364166 0.607788 0.738800 0.388702 0.608459 0.738922 0.415192 0.608887 0.739105 0.443878 0.609283 0.739227 0.475311 0.609924 0.739380 0.509644 0.610382 0.739471 0.547180 0.610779 0.739655 0.587341 0.611328 0.739777 0.630280 0.611816 0.739929 0.675232 0.612213 0.740021 0.721924 0.612579 0.740112 0.770203 0.612976 0.740265 0.819580 0.613586 0.740387 0.869720 0.613922 0.740509 0.915527 0.614319 0.740631 0.000000 0.639893 0.736542 0.006439 0.640564 0.736725 0.032135 0.641022 0.736816 0.064209 0.641479 0.737000 0.091766 0.642059 0.737152 0.117371 0.642517 0.737335 0.141418 0.642975 0.737488 0.163818 0.643433 0.737640 0.184875 0.644043 0.737793 0.205078 0.644501 0.737915 0.224335 0.644897 0.738068 0.243347 0.645538 0.738220 0.262177 0.645935 0.738403 0.281158 0.646362 0.738495 0.300781 0.646881 0.738678 0.321014 0.647400 0.738800 0.342438 0.647797 0.738922 0.365143 0.648163 0.739105 0.389618 0.648621 0.739227 0.416107 0.649170 0.739349 0.444916 0.649536 0.739471 0.476318 0.649902 0.739655 0.510620 0.650391 0.739777 0.547913 0.650848 0.739929 0.588226 0.651215 0.740021 0.630859 0.651581 0.740112 0.675751 0.652069 0.740265 0.722473 0.652466 0.740387 0.770660 0.652802 0.740509 0.819916 0.653137 0.740631 0.869781 0.653442 0.740753 0.915527 0.653870 0.740845 0.000000 0.683289 0.736816 0.008759 0.683716 0.737000 0.034424 0.684052 0.737152 0.066681 0.684662 0.737305 0.093994 0.684967 0.737488 0.119446 0.685425 0.737640 0.143188 0.685760 0.737793 0.165405 0.686371 0.737915 0.186371 0.686737 0.738068 0.206390 0.687103 0.738220 0.225708 0.687439 0.738403 0.244568 0.688019 0.738495 0.263275 0.688416 0.738617 0.282257 0.688782 0.738770 0.301819 0.689087 0.738922 0.322021 0.689453 0.739105 0.343445 0.689972 0.739227 0.366180 0.690308 0.739349 0.390564 0.690674 0.739471 0.417053 0.690979 0.739624 0.445923 0.691498 0.739777 0.477295 0.691803 0.739899 0.511536 0.692139 0.740021 0.548798 0.692444 0.740112 0.589081 0.692841 0.740265 0.631653 0.693268 0.740387 0.676453 0.693542 0.740509 0.722992 0.693817 0.740631 0.770905 0.694122 0.740753 0.820129 0.694489 0.740845 0.869904 0.694885 0.740906 0.915527 0.695129 0.741058 0.000000 0.728058 0.737152 0.011169 0.728363 0.737305 0.036865 0.728912 0.737488 0.069244 0.729187 0.737640 0.096222 0.729523 0.737793 0.121490 0.729797 0.737915 0.144989 0.730133 0.738068 0.166962 0.730499 0.738220 0.187897 0.730957 0.738403 0.207672 0.731232 0.738464 0.226898 0.731506 0.738617 0.245697 0.731842 0.738770 0.264374 0.732208 0.738922 0.283295 0.732605 0.739105 0.302582 0.732910 0.739227 0.322968 0.733185 0.739349 0.344238 0.733459 0.739471 0.367188 0.733826 0.739624 0.391541 0.734222 0.739777 0.418030 0.734467 0.739899 0.446838 0.734772 0.740021 0.478058 0.734985 0.740112 0.512238 0.735168 0.740265 0.549713 0.735657 0.740387 0.589691 0.735931 0.740448 0.632324 0.736176 0.740631 0.676910 0.736389 0.740753 0.723328 0.736633 0.740845 0.771271 0.736816 0.740906 0.820282 0.737091 0.741058 0.870117 0.737366 0.741150 0.915527 0.737671 0.741272 0.000000 0.774109 0.737457 0.013580 0.774323 0.737610 0.039124 0.774536 0.737793 0.071564 0.774811 0.737915 0.098419 0.775269 0.738068 0.123383 0.775482 0.738220 0.146729 0.775696 0.738342 0.168579 0.775940 0.738464 0.189270 0.776154 0.738617 0.208893 0.776398 0.738770 0.228088 0.776825 0.738922 0.246826 0.777069 0.739105 0.265472 0.777283 0.739197 0.284302 0.777496 0.739349 0.303619 0.777710 0.739471 0.323853 0.777924 0.739624 0.345184 0.778107 0.739777 0.367950 0.778381 0.739899 0.392517 0.778748 0.739990 0.419006 0.778900 0.740112 0.447632 0.779144 0.740265 0.478973 0.779297 0.740387 0.513184 0.779480 0.740448 0.550354 0.779663 0.740601 0.590546 0.779816 0.740753 0.632935 0.780151 0.740784 0.677582 0.780426 0.740906 0.723907 0.780579 0.741058 0.771759 0.780701 0.741150 0.820496 0.780884 0.741211 0.870178 0.781036 0.741333 0.915527 0.781128 0.741425 0.000000 0.820831 0.737732 0.015961 0.820984 0.737885 0.041534 0.821136 0.738068 0.073914 0.821472 0.738190 0.100586 0.821716 0.738342 0.125214 0.821869 0.738464 0.148438 0.822021 0.738617 0.170074 0.822144 0.738770 0.190582 0.822296 0.738922 0.210175 0.822479 0.739044 0.229279 0.822601 0.739197 0.247894 0.822754 0.739349 0.266510 0.822906 0.739471 0.285370 0.823151 0.739624 0.304596 0.823395 0.739746 0.324768 0.823517 0.739899 0.346161 0.823700 0.739990 0.368927 0.823792 0.740112 0.393402 0.823944 0.740265 0.419739 0.824066 0.740387 0.448486 0.824158 0.740448 0.479828 0.824310 0.740601 0.514069 0.824463 0.740723 0.551208 0.824554 0.740784 0.591095 0.824860 0.740906 0.633453 0.825012 0.741058 0.677979 0.825104 0.741150 0.724243 0.825195 0.741211 0.771973 0.825287 0.741333 0.820831 0.825409 0.741425 0.870392 0.825470 0.741516 0.915527 0.825562 0.741608 0.000000 0.868164 0.738068 0.018219 0.868347 0.738190 0.043701 0.868439 0.738342 0.076385 0.868469 0.738464 0.102661 0.868561 0.738617 0.127167 0.868652 0.738770 0.150116 0.868713 0.738922 0.171661 0.868774 0.739044 0.191895 0.868896 0.739197 0.211334 0.868958 0.739349 0.230408 0.868988 0.739441 0.248993 0.869110 0.739624 0.267456 0.869171 0.739746 0.286255 0.869202 0.739899 0.305603 0.869293 0.739990 0.325714 0.869354 0.740112 0.347107 0.869385 0.740265 0.369812 0.869446 0.740387 0.394165 0.869568 0.740448 0.420624 0.869781 0.740601 0.449341 0.869873 0.740723 0.480499 0.869934 0.740784 0.514679 0.869995 0.740906 0.551971 0.870087 0.741058 0.591827 0.870148 0.741150 0.634155 0.870178 0.741211 0.678467 0.870239 0.741333 0.724640 0.870270 0.741425 0.772247 0.870331 0.741516 0.821014 0.870361 0.741608 0.870514 0.870422 0.741669 0.915527 0.870422 0.741760 0.000000 0.915527 0.738342 0.020599 0.915527 0.738464 0.046326 0.915527 0.738617 0.078644 0.915527 0.738770 0.104584 0.915527 0.738892 0.129059 0.915527 0.739044 0.151703 0.915527 0.739197 0.173126 0.915527 0.739349 0.193298 0.915527 0.739441 0.212585 0.915527 0.739624 0.231415 0.915527 0.739746 0.249878 0.915527 0.739899 0.268341 0.915527 0.739990 0.287079 0.915527 0.740112 0.306427 0.915527 0.740265 0.326630 0.915527 0.740387 0.348022 0.915527 0.740448 0.370667 0.915527 0.740601 0.395050 0.915527 0.740723 0.421509 0.915527 0.740784 0.450012 0.915527 0.740906 0.481384 0.915527 0.741058 0.515503 0.915527 0.741150 0.552551 0.915527 0.741211 0.592377 0.915527 0.741333 0.634583 0.915527 0.741425 0.678986 0.915527 0.741516 0.725128 0.915527 0.741608 0.772461 0.915527 0.741669 0.821136 0.915527 0.741760 0.870544 0.915527 0.741821 0.915527 0.915527 0.741913 0.000000 0.000000 0.765747 0.000000 0.000000 0.765839 0.000000 0.000000 0.765900 0.005249 0.000000 0.765991 0.032196 0.000000 0.766083 0.065918 0.000000 0.766174 0.094666 0.000000 0.766235 0.121704 0.000000 0.766388 0.146851 0.000000 0.766449 0.170166 0.000000 0.766571 0.192383 0.000000 0.766663 0.213409 0.000000 0.766754 0.233978 0.000000 0.766876 0.254059 0.000000 0.766968 0.274323 0.000000 0.767090 0.295135 0.000000 0.767181 0.316650 0.000000 0.767273 0.339539 0.000000 0.767395 0.363922 0.000000 0.767548 0.390259 0.000000 0.767639 0.419037 0.000000 0.767761 0.450531 0.000000 0.767883 0.485046 0.000000 0.767975 0.523102 0.000000 0.768097 0.564819 0.000000 0.768219 0.609589 0.000000 0.768372 0.657074 0.000000 0.768494 0.707001 0.000000 0.768585 0.758636 0.000000 0.768768 0.811646 0.000793 0.768890 0.865814 0.002075 0.768982 0.915527 0.003448 0.769104 0.000000 0.000000 0.765900 0.000000 0.000000 0.765991 0.000000 0.000000 0.766083 0.006775 0.000000 0.766174 0.033691 0.000000 0.766235 0.067474 0.000000 0.766388 0.096344 0.000000 0.766449 0.123047 0.000000 0.766571 0.148102 0.000824 0.766663 0.171356 0.001892 0.766754 0.193512 0.002991 0.766876 0.214478 0.004120 0.766968 0.234985 0.005341 0.767090 0.255066 0.006531 0.767181 0.275238 0.007751 0.767273 0.296082 0.009033 0.767395 0.317627 0.010315 0.767548 0.340332 0.011597 0.767639 0.364868 0.012939 0.767761 0.391235 0.014343 0.767883 0.419952 0.015839 0.767975 0.451447 0.017212 0.768097 0.486084 0.018585 0.768219 0.524109 0.020020 0.768372 0.565796 0.021454 0.768494 0.610504 0.022858 0.768585 0.657959 0.024536 0.768768 0.707733 0.026001 0.768890 0.759277 0.027435 0.768982 0.812195 0.028931 0.769104 0.865936 0.030396 0.769226 0.915527 0.032013 0.769379 0.000000 0.020294 0.766052 0.000000 0.021362 0.766174 0.000000 0.022430 0.766235 0.008362 0.023499 0.766388 0.035309 0.024658 0.766449 0.069275 0.025757 0.766571 0.097839 0.026886 0.766663 0.124695 0.028076 0.766754 0.149414 0.029175 0.766876 0.172546 0.030426 0.766968 0.194550 0.031647 0.767059 0.215546 0.032898 0.767181 0.235779 0.034180 0.767273 0.256073 0.035492 0.767395 0.276215 0.036804 0.767548 0.296997 0.038116 0.767639 0.318604 0.039429 0.767761 0.341339 0.040833 0.767883 0.365723 0.042328 0.767975 0.392151 0.043579 0.768097 0.420868 0.045044 0.768219 0.452332 0.047272 0.768372 0.487061 0.049622 0.768494 0.525116 0.052185 0.768585 0.566589 0.054749 0.768768 0.611420 0.057434 0.768890 0.658783 0.059479 0.768982 0.708221 0.061035 0.769104 0.759644 0.062622 0.769226 0.812531 0.064331 0.769379 0.866089 0.066040 0.769470 0.915527 0.067749 0.769623 0.000000 0.052826 0.766235 0.000000 0.054840 0.766388 0.000000 0.056885 0.766449 0.010040 0.058777 0.766571 0.037109 0.059875 0.766632 0.071198 0.061127 0.766754 0.099609 0.062408 0.766876 0.126129 0.063812 0.766968 0.150787 0.065155 0.767059 0.173920 0.066498 0.767181 0.195831 0.067841 0.767273 0.216675 0.069214 0.767395 0.236847 0.070618 0.767548 0.257080 0.071991 0.767639 0.277252 0.073242 0.767761 0.297882 0.074707 0.767883 0.319489 0.076141 0.767975 0.342346 0.077576 0.768097 0.366669 0.079102 0.768219 0.393066 0.080566 0.768372 0.421906 0.082062 0.768494 0.453369 0.083557 0.768585 0.487854 0.085022 0.768707 0.526123 0.086548 0.768860 0.567566 0.088074 0.768982 0.612122 0.089600 0.769104 0.659424 0.091125 0.769226 0.709015 0.092651 0.769379 0.760284 0.094116 0.769470 0.812744 0.095673 0.769623 0.866302 0.097198 0.769775 0.915527 0.098755 0.769867 0.000000 0.087311 0.766449 0.000000 0.088287 0.766571 0.000000 0.089508 0.766632 0.011780 0.090698 0.766754 0.038910 0.091949 0.766876 0.073029 0.093201 0.766907 0.101227 0.094208 0.767059 0.127716 0.095520 0.767181 0.152161 0.096832 0.767273 0.175323 0.098114 0.767395 0.197021 0.099457 0.767548 0.217804 0.100708 0.767639 0.237976 0.101929 0.767761 0.257904 0.103241 0.767883 0.278259 0.104584 0.767975 0.298828 0.105957 0.768097 0.320435 0.107330 0.768219 0.343384 0.108704 0.768311 0.367676 0.110107 0.768494 0.394104 0.111511 0.768585 0.422913 0.112854 0.768707 0.454437 0.114227 0.768860 0.488953 0.115509 0.768982 0.527008 0.116913 0.769104 0.568542 0.118347 0.769226 0.613098 0.119751 0.769379 0.660278 0.121155 0.769470 0.709564 0.122528 0.769592 0.760712 0.124023 0.769775 0.813263 0.125427 0.769867 0.866608 0.126740 0.770020 0.915527 0.128113 0.770172 0.000000 0.117889 0.766632 0.000000 0.119049 0.766754 0.000000 0.119965 0.766876 0.013611 0.121155 0.766907 0.040741 0.122314 0.767059 0.074921 0.123322 0.767181 0.103058 0.124512 0.767273 0.129333 0.125702 0.767395 0.153778 0.126862 0.767548 0.176575 0.127960 0.767639 0.198242 0.129181 0.767761 0.218933 0.130371 0.767883 0.239044 0.131622 0.767975 0.258972 0.132812 0.768097 0.279297 0.133972 0.768219 0.299835 0.135223 0.768311 0.321350 0.136505 0.768494 0.344177 0.137756 0.768585 0.368744 0.138977 0.768707 0.395142 0.140106 0.768860 0.423981 0.141418 0.768982 0.455536 0.142731 0.769104 0.490051 0.144012 0.769226 0.528076 0.145325 0.769379 0.569550 0.146362 0.769470 0.614075 0.147705 0.769592 0.660950 0.149017 0.769775 0.710297 0.150269 0.769867 0.761169 0.151581 0.770020 0.813538 0.152649 0.770172 0.866760 0.153931 0.770233 0.915527 0.155243 0.770416 0.000000 0.146332 0.766846 0.000000 0.147400 0.766907 0.000000 0.148499 0.767059 0.015503 0.149384 0.767181 0.042633 0.150452 0.767273 0.076904 0.151550 0.767395 0.104950 0.152466 0.767548 0.130890 0.153564 0.767639 0.155182 0.154694 0.767761 0.177887 0.155609 0.767883 0.199432 0.156738 0.767975 0.220123 0.157898 0.768097 0.240173 0.158844 0.768219 0.260071 0.160004 0.768311 0.280090 0.161163 0.768494 0.300903 0.162262 0.768585 0.322388 0.163269 0.768707 0.345184 0.164490 0.768860 0.369781 0.165680 0.768982 0.396210 0.166595 0.769104 0.425049 0.167786 0.769226 0.456512 0.169006 0.769379 0.491089 0.170013 0.769470 0.529083 0.171143 0.769592 0.570557 0.172302 0.769775 0.614777 0.173462 0.769867 0.661804 0.174469 0.770020 0.710815 0.175629 0.770172 0.761810 0.176849 0.770233 0.813873 0.177917 0.770416 0.866882 0.178955 0.770538 0.915527 0.180145 0.770630 0.000000 0.172638 0.767059 0.000000 0.173645 0.767181 0.000000 0.174408 0.767273 0.017548 0.175415 0.767395 0.044556 0.176331 0.767548 0.078949 0.177246 0.767609 0.106812 0.178314 0.767700 0.132660 0.179108 0.767883 0.156616 0.180145 0.767975 0.179230 0.181091 0.768097 0.200714 0.182037 0.768219 0.221283 0.183105 0.768311 0.241302 0.183990 0.768463 0.261139 0.185028 0.768555 0.281219 0.186096 0.768707 0.301941 0.186981 0.768860 0.323456 0.188019 0.768951 0.346252 0.189117 0.769104 0.370850 0.190002 0.769226 0.397278 0.191071 0.769318 0.425995 0.191986 0.769470 0.457458 0.193024 0.769592 0.492188 0.194092 0.769775 0.530182 0.195038 0.769867 0.571381 0.196045 0.769989 0.615723 0.197144 0.770172 0.662689 0.198029 0.770233 0.711639 0.199097 0.770355 0.762238 0.200195 0.770538 0.814117 0.201080 0.770630 0.867035 0.202148 0.770782 0.915527 0.202972 0.770905 0.000000 0.196930 0.767273 0.000000 0.197723 0.767395 0.000000 0.198608 0.767487 0.019592 0.199402 0.767609 0.047302 0.200348 0.767700 0.081055 0.201080 0.767822 0.108551 0.202026 0.767975 0.134216 0.202759 0.768097 0.158234 0.203766 0.768219 0.180603 0.204559 0.768311 0.201965 0.205505 0.768463 0.222473 0.206482 0.768555 0.242432 0.207214 0.768707 0.262268 0.208221 0.768860 0.282318 0.209045 0.768951 0.302948 0.210022 0.769104 0.324524 0.210785 0.769226 0.347321 0.211823 0.769318 0.371735 0.212646 0.769470 0.398224 0.213593 0.769592 0.427032 0.214630 0.769714 0.458557 0.215393 0.769867 0.493256 0.216400 0.769989 0.531250 0.217224 0.770172 0.572418 0.218170 0.770233 0.616730 0.219116 0.770355 0.663391 0.219971 0.770538 0.712250 0.220947 0.770630 0.762909 0.221741 0.770782 0.814575 0.222748 0.770905 0.867157 0.223511 0.771027 0.915527 0.224487 0.771179 0.000000 0.219482 0.767487 0.000000 0.220154 0.767609 0.000000 0.221069 0.767700 0.021576 0.221741 0.767822 0.050873 0.222626 0.767944 0.083160 0.223267 0.768097 0.110565 0.224152 0.768219 0.136047 0.224884 0.768311 0.159821 0.225769 0.768463 0.182190 0.226471 0.768555 0.203247 0.227386 0.768707 0.223724 0.228088 0.768860 0.243591 0.229034 0.768951 0.263367 0.229736 0.769043 0.283356 0.230682 0.769226 0.304016 0.231384 0.769318 0.325623 0.232330 0.769470 0.348419 0.233032 0.769592 0.372833 0.233978 0.769714 0.399231 0.234680 0.769867 0.428131 0.235626 0.769989 0.459625 0.236328 0.770172 0.494354 0.237274 0.770233 0.532227 0.238068 0.770355 0.573456 0.238922 0.770538 0.617615 0.239899 0.770630 0.664246 0.240570 0.770782 0.712952 0.241364 0.770905 0.763275 0.242218 0.771027 0.814972 0.243103 0.771179 0.867310 0.243866 0.771301 0.915527 0.244751 0.771484 0.000000 0.240631 0.767700 0.000000 0.241364 0.767822 0.000000 0.242096 0.767944 0.023804 0.242737 0.768097 0.054749 0.243591 0.768219 0.085327 0.244202 0.768311 0.112518 0.245026 0.768463 0.137756 0.245697 0.768555 0.161499 0.246552 0.768677 0.183563 0.247223 0.768860 0.204620 0.248047 0.768951 0.224945 0.248688 0.769043 0.244720 0.249573 0.769226 0.264465 0.250214 0.769318 0.284485 0.251160 0.769440 0.305084 0.251740 0.769592 0.326691 0.252472 0.769714 0.349487 0.253296 0.769867 0.373871 0.253998 0.769989 0.400360 0.254852 0.770111 0.429199 0.255585 0.770233 0.460724 0.256409 0.770355 0.495239 0.257050 0.770538 0.533264 0.257965 0.770630 0.574524 0.258636 0.770752 0.618408 0.259491 0.770905 0.665070 0.260162 0.771027 0.713531 0.261047 0.771179 0.763794 0.261658 0.771301 0.815216 0.262543 0.771423 0.867462 0.263184 0.771545 0.915527 0.264099 0.771698 0.000000 0.260986 0.767944 0.000000 0.261566 0.768066 0.000092 0.262207 0.768219 0.026001 0.262970 0.768311 0.058685 0.263519 0.768463 0.087494 0.264374 0.768555 0.114502 0.264954 0.768677 0.139557 0.265778 0.768860 0.162994 0.266388 0.768951 0.184998 0.267212 0.769043 0.205902 0.267761 0.769226 0.226166 0.268433 0.769318 0.245911 0.269257 0.769440 0.265656 0.269836 0.769592 0.285614 0.270721 0.769714 0.306061 0.271332 0.769867 0.327759 0.272156 0.769989 0.350616 0.272766 0.770111 0.374969 0.273407 0.770233 0.401428 0.274231 0.770355 0.430328 0.274841 0.770477 0.461853 0.275696 0.770630 0.496338 0.276306 0.770752 0.534271 0.277161 0.770905 0.575500 0.277771 0.771027 0.619385 0.278625 0.771179 0.665710 0.279205 0.771301 0.714233 0.279846 0.771423 0.764313 0.280670 0.771545 0.815521 0.281281 0.771698 0.867737 0.282104 0.771851 0.915527 0.282715 0.771942 0.000000 0.280609 0.768158 0.000000 0.281158 0.768280 0.002045 0.281982 0.768463 0.028137 0.282501 0.768555 0.060913 0.283234 0.768677 0.089661 0.283875 0.768860 0.116364 0.284424 0.768951 0.141388 0.285217 0.769043 0.164520 0.285797 0.769226 0.186554 0.286560 0.769318 0.207367 0.287201 0.769440 0.227386 0.287720 0.769592 0.247101 0.288544 0.769714 0.266754 0.289124 0.769836 0.286713 0.289917 0.769989 0.307159 0.290527 0.770111 0.328827 0.291107 0.770203 0.351685 0.291901 0.770355 0.376068 0.292480 0.770477 0.402588 0.293304 0.770630 0.431458 0.293884 0.770752 0.462952 0.294708 0.770905 0.497437 0.295288 0.771027 0.535370 0.295868 0.771179 0.576477 0.296661 0.771301 0.620361 0.297272 0.771423 0.666626 0.298065 0.771545 0.714966 0.298645 0.771698 0.764740 0.299377 0.771820 0.816010 0.300049 0.771942 0.867981 0.300568 0.772064 0.915527 0.301392 0.772186 0.000000 0.300140 0.768463 0.000000 0.300598 0.768555 0.004181 0.301361 0.768677 0.030426 0.301910 0.768799 0.063263 0.302490 0.768951 0.091858 0.303192 0.769043 0.118378 0.303802 0.769196 0.143036 0.304535 0.769318 0.166260 0.305115 0.769440 0.187988 0.305786 0.769592 0.208679 0.306458 0.769714 0.228638 0.307007 0.769836 0.248260 0.307770 0.769989 0.267944 0.308319 0.770111 0.287842 0.308929 0.770203 0.308258 0.309662 0.770355 0.329742 0.310211 0.770477 0.352661 0.311066 0.770630 0.377197 0.311584 0.770752 0.403687 0.312347 0.770905 0.432587 0.312958 0.771027 0.464081 0.313507 0.771149 0.498596 0.314301 0.771301 0.536438 0.314850 0.771423 0.577362 0.315460 0.771545 0.621094 0.316223 0.771698 0.667480 0.316772 0.771820 0.715546 0.317535 0.771942 0.765411 0.318085 0.772064 0.816315 0.318634 0.772186 0.868134 0.319397 0.772308 0.915527 0.319977 0.772461 0.000000 0.319702 0.768677 0.000000 0.320221 0.768799 0.006256 0.320984 0.768951 0.032654 0.321472 0.769043 0.065826 0.322205 0.769196 0.094055 0.322784 0.769318 0.120392 0.323334 0.769440 0.144928 0.324036 0.769531 0.167816 0.324615 0.769714 0.189392 0.325165 0.769836 0.209991 0.325928 0.769928 0.229858 0.326477 0.770111 0.249481 0.327240 0.770203 0.269073 0.327789 0.770355 0.288940 0.328400 0.770477 0.309387 0.329102 0.770630 0.330902 0.329651 0.770752 0.353760 0.330353 0.770874 0.378296 0.330963 0.771027 0.404785 0.331543 0.771149 0.433655 0.332306 0.771301 0.465210 0.332855 0.771423 0.499664 0.333588 0.771545 0.537476 0.334137 0.771698 0.578369 0.334686 0.771820 0.622009 0.335480 0.771942 0.668091 0.336029 0.772064 0.716278 0.336548 0.772186 0.765839 0.337341 0.772308 0.816559 0.337891 0.772461 0.868225 0.338593 0.772552 0.915527 0.339172 0.772705 0.000000 0.339874 0.768951 0.000000 0.340515 0.769043 0.008545 0.341034 0.769196 0.035034 0.341553 0.769318 0.068176 0.342316 0.769440 0.096252 0.342834 0.769531 0.122406 0.343567 0.769714 0.146729 0.344116 0.769836 0.169434 0.344635 0.769928 0.190826 0.345398 0.770111 0.211304 0.345917 0.770203 0.231110 0.346497 0.770355 0.250641 0.347229 0.770477 0.270233 0.347809 0.770599 0.290070 0.348541 0.770752 0.310486 0.349091 0.770874 0.332001 0.349701 0.771027 0.354797 0.350433 0.771149 0.379395 0.350952 0.771301 0.405945 0.351715 0.771423 0.434784 0.352234 0.771545 0.466309 0.352753 0.771698 0.500763 0.353546 0.771820 0.538544 0.354095 0.771881 0.579437 0.354767 0.772064 0.623016 0.355408 0.772186 0.668976 0.355927 0.772308 0.716827 0.356659 0.772461 0.766205 0.357178 0.772552 0.817017 0.357697 0.772705 0.868408 0.358459 0.772797 0.915527 0.358978 0.772919 0.000000 0.360870 0.769196 0.000000 0.361572 0.769287 0.010895 0.362091 0.769440 0.037323 0.362671 0.769531 0.070587 0.363403 0.769684 0.098450 0.363922 0.769836 0.124359 0.364471 0.769928 0.148499 0.365173 0.770111 0.171051 0.365723 0.770203 0.192413 0.366486 0.770325 0.212646 0.367004 0.770477 0.232452 0.367584 0.770599 0.251862 0.368317 0.770752 0.271393 0.368835 0.770874 0.291229 0.369415 0.771027 0.311615 0.370148 0.771149 0.333099 0.370667 0.771240 0.355896 0.371460 0.771423 0.380524 0.371979 0.771545 0.407013 0.372528 0.771698 0.435883 0.373291 0.771820 0.467438 0.373810 0.771881 0.501862 0.374573 0.772064 0.539520 0.375092 0.772186 0.580475 0.375610 0.772308 0.623932 0.376373 0.772400 0.669586 0.376923 0.772552 0.717438 0.377411 0.772705 0.766876 0.378174 0.772797 0.817352 0.378693 0.772919 0.868530 0.379272 0.773041 0.915527 0.379913 0.773163 0.000000 0.383179 0.769440 0.000000 0.383698 0.769531 0.013153 0.384491 0.769684 0.039703 0.385010 0.769836 0.073120 0.385498 0.769928 0.100677 0.386261 0.770111 0.126312 0.386780 0.770203 0.150360 0.387360 0.770325 0.172607 0.388092 0.770477 0.193848 0.388641 0.770599 0.214111 0.389313 0.770752 0.233856 0.389954 0.770874 0.253052 0.390472 0.771027 0.272552 0.391205 0.771149 0.292297 0.391785 0.771240 0.312744 0.392303 0.771423 0.334229 0.393097 0.771545 0.357025 0.393585 0.771698 0.381622 0.394287 0.771820 0.408112 0.394928 0.771881 0.436768 0.395447 0.772003 0.468292 0.396149 0.772186 0.502777 0.396698 0.772308 0.540497 0.397369 0.772400 0.581238 0.397980 0.772552 0.624695 0.398499 0.772705 0.670410 0.399078 0.772797 0.718079 0.399750 0.772919 0.767242 0.400269 0.773041 0.817566 0.401001 0.773163 0.868683 0.401489 0.773224 0.915527 0.402008 0.773376 0.000000 0.406891 0.769684 0.000000 0.407654 0.769836 0.015564 0.408173 0.769928 0.041962 0.408722 0.770081 0.075562 0.409454 0.770203 0.102875 0.409973 0.770325 0.128296 0.410614 0.770477 0.151978 0.411285 0.770599 0.174316 0.411804 0.770752 0.195282 0.412598 0.770874 0.215515 0.413147 0.770996 0.235077 0.413696 0.771149 0.254211 0.414429 0.771240 0.273682 0.414948 0.771423 0.293396 0.415527 0.771545 0.313843 0.416290 0.771637 0.335297 0.416809 0.771820 0.358093 0.417572 0.771881 0.382538 0.418121 0.772003 0.409241 0.418640 0.772186 0.437897 0.419373 0.772308 0.469391 0.419922 0.772400 0.503876 0.420685 0.772522 0.541534 0.421173 0.772705 0.582245 0.421692 0.772797 0.625549 0.422394 0.772919 0.671265 0.422943 0.773041 0.718689 0.423462 0.773163 0.767792 0.424225 0.773224 0.817871 0.424683 0.773376 0.868866 0.425171 0.773499 0.915527 0.425873 0.773590 0.000000 0.432678 0.769928 0.000000 0.433197 0.770081 0.017975 0.433807 0.770203 0.044373 0.434509 0.770325 0.077911 0.435028 0.770477 0.105072 0.435791 0.770599 0.130341 0.436340 0.770691 0.153870 0.436920 0.770874 0.175812 0.437653 0.770996 0.196869 0.438171 0.771149 0.216827 0.438782 0.771240 0.236328 0.439484 0.771423 0.255432 0.440033 0.771545 0.274811 0.440765 0.771637 0.294617 0.441345 0.771820 0.314941 0.441864 0.771881 0.336395 0.442627 0.772003 0.359192 0.443146 0.772156 0.383575 0.443726 0.772308 0.410095 0.444427 0.772400 0.438965 0.444946 0.772522 0.470490 0.445709 0.772705 0.504883 0.446228 0.772797 0.542572 0.446747 0.772919 0.583221 0.447449 0.773041 0.626465 0.447998 0.773163 0.671906 0.448547 0.773224 0.719299 0.449219 0.773376 0.768188 0.449707 0.773499 0.818085 0.450195 0.773590 0.869080 0.450897 0.773712 0.915527 0.451385 0.773834 0.000000 0.460571 0.770203 0.000000 0.461121 0.770325 0.020447 0.461609 0.770477 0.047699 0.462433 0.770599 0.080322 0.462921 0.770691 0.107239 0.463470 0.770874 0.132294 0.464233 0.770996 0.155487 0.464783 0.771149 0.177551 0.465546 0.771240 0.198273 0.466064 0.771393 0.218140 0.466614 0.771545 0.237579 0.467407 0.771637 0.256592 0.467896 0.771790 0.275970 0.468475 0.771881 0.295502 0.469208 0.772003 0.316071 0.469757 0.772156 0.337494 0.470459 0.772308 0.360260 0.471039 0.772400 0.384674 0.471558 0.772522 0.411194 0.472290 0.772705 0.440033 0.472839 0.772797 0.471527 0.473328 0.772919 0.505920 0.474121 0.773041 0.543610 0.474579 0.773163 0.584167 0.475098 0.773224 0.627197 0.475830 0.773376 0.672699 0.476318 0.773499 0.719940 0.476898 0.773590 0.768555 0.477509 0.773712 0.818573 0.477997 0.773834 0.869293 0.478485 0.773956 0.915527 0.479156 0.774078 0.000000 0.490875 0.770447 0.000000 0.491364 0.770599 0.022858 0.492004 0.770691 0.051697 0.492676 0.770874 0.082764 0.493256 0.770996 0.109406 0.493988 0.771149 0.134094 0.494568 0.771240 0.157349 0.495087 0.771393 0.179077 0.495819 0.771545 0.199646 0.496307 0.771637 0.219421 0.496948 0.771790 0.238770 0.497650 0.771881 0.257782 0.498199 0.772003 0.277069 0.498962 0.772156 0.296600 0.499451 0.772308 0.317139 0.500000 0.772400 0.338531 0.500732 0.772522 0.361359 0.501282 0.772644 0.385742 0.501740 0.772797 0.412262 0.502533 0.772919 0.441101 0.503021 0.773041 0.472595 0.503601 0.773163 0.506958 0.504242 0.773224 0.544556 0.504761 0.773376 0.584961 0.505371 0.773499 0.628021 0.505951 0.773590 0.673248 0.506439 0.773712 0.720459 0.507080 0.773834 0.769165 0.507599 0.773956 0.818817 0.508057 0.774078 0.869415 0.508545 0.774170 0.915527 0.509186 0.774261 0.000000 0.524017 0.770691 0.000122 0.524536 0.770874 0.025269 0.525116 0.770996 0.055817 0.525787 0.771088 0.085236 0.526367 0.771240 0.111542 0.526886 0.771393 0.136108 0.527649 0.771545 0.158936 0.528168 0.771637 0.180511 0.528809 0.771790 0.201050 0.529419 0.771881 0.220734 0.529968 0.772003 0.239990 0.530731 0.772156 0.258942 0.531250 0.772247 0.278259 0.531738 0.772400 0.297668 0.532471 0.772522 0.317993 0.533020 0.772644 0.339569 0.533508 0.772797 0.362427 0.534241 0.772919 0.386841 0.534698 0.773041 0.413300 0.535309 0.773163 0.442200 0.536011 0.773224 0.473663 0.536469 0.773376 0.508026 0.536957 0.773499 0.545410 0.537659 0.773590 0.585815 0.538116 0.773712 0.628937 0.538605 0.773834 0.674011 0.539276 0.773956 0.720917 0.539734 0.774078 0.769531 0.540161 0.774170 0.819092 0.540863 0.774261 0.869507 0.541290 0.774414 0.915527 0.541687 0.774475 0.000000 0.560028 0.770996 0.002228 0.560516 0.771088 0.027710 0.561279 0.771240 0.059662 0.561798 0.771393 0.087524 0.562347 0.771545 0.113708 0.563049 0.771637 0.138062 0.563538 0.771790 0.160767 0.564301 0.771881 0.182220 0.564789 0.772003 0.202484 0.565308 0.772156 0.222107 0.565857 0.772247 0.241180 0.566528 0.772400 0.260132 0.567017 0.772522 0.279358 0.567719 0.772644 0.298767 0.568237 0.772766 0.319031 0.568726 0.772919 0.340485 0.569427 0.773041 0.363281 0.569885 0.773163 0.387878 0.570374 0.773224 0.414368 0.571075 0.773376 0.443237 0.571594 0.773499 0.474609 0.571991 0.773590 0.509003 0.572479 0.773712 0.546326 0.573120 0.773834 0.586792 0.573578 0.773956 0.629517 0.574005 0.774017 0.674591 0.574646 0.774170 0.721588 0.575073 0.774261 0.769867 0.575500 0.774414 0.819336 0.576141 0.774475 0.869629 0.576538 0.774567 0.915527 0.576935 0.774658 0.000000 0.598877 0.771240 0.004547 0.599518 0.771393 0.030121 0.600128 0.771484 0.062103 0.600525 0.771637 0.089844 0.601044 0.771790 0.115784 0.601776 0.771881 0.139801 0.602234 0.772003 0.162323 0.602692 0.772156 0.183655 0.603424 0.772247 0.203949 0.603882 0.772400 0.223450 0.604309 0.772522 0.242401 0.605011 0.772644 0.261200 0.605499 0.772766 0.280212 0.605927 0.772919 0.299835 0.606598 0.773010 0.320099 0.607086 0.773163 0.341522 0.607483 0.773224 0.364319 0.608124 0.773376 0.388916 0.608643 0.773499 0.415405 0.609039 0.773590 0.444031 0.609467 0.773712 0.475464 0.610107 0.773834 0.509766 0.610504 0.773926 0.547333 0.610931 0.774017 0.587433 0.611572 0.774170 0.630402 0.611969 0.774261 0.675293 0.612366 0.774353 0.722015 0.612762 0.774475 0.770264 0.613281 0.774567 0.819702 0.613708 0.774658 0.869751 0.614075 0.774811 0.915527 0.614410 0.774872 0.000000 0.640228 0.771484 0.006897 0.640747 0.771606 0.032501 0.641174 0.771790 0.064819 0.641602 0.771881 0.092102 0.642273 0.772003 0.117859 0.642670 0.772156 0.141724 0.643127 0.772247 0.164124 0.643738 0.772369 0.185059 0.644196 0.772522 0.205231 0.644623 0.772644 0.224701 0.645081 0.772766 0.243530 0.645691 0.772858 0.262360 0.646118 0.773010 0.281311 0.646515 0.773163 0.300903 0.647156 0.773224 0.321167 0.647522 0.773376 0.342560 0.647949 0.773499 0.365326 0.648285 0.773590 0.389954 0.648895 0.773712 0.416321 0.649292 0.773804 0.445038 0.649658 0.773926 0.476471 0.650085 0.774017 0.510742 0.650665 0.774170 0.548218 0.651001 0.774261 0.588348 0.651337 0.774353 0.631042 0.651703 0.774475 0.675934 0.652252 0.774567 0.722626 0.652618 0.774658 0.770721 0.652893 0.774811 0.819977 0.653259 0.774872 0.869812 0.653534 0.774933 0.915527 0.654114 0.775055 0.000000 0.683441 0.771790 0.009277 0.683838 0.771881 0.034973 0.684204 0.771973 0.067169 0.684814 0.772156 0.094360 0.685181 0.772247 0.119751 0.685516 0.772369 0.143616 0.685883 0.772522 0.165619 0.686523 0.772644 0.186676 0.686859 0.772766 0.206573 0.687195 0.772858 0.225922 0.687714 0.773010 0.244690 0.688141 0.773132 0.263458 0.688507 0.773224 0.282379 0.688873 0.773376 0.301941 0.689178 0.773499 0.322174 0.689697 0.773590 0.343597 0.690094 0.773682 0.366333 0.690430 0.773804 0.390747 0.690796 0.773926 0.417175 0.691162 0.774017 0.446045 0.691620 0.774170 0.477448 0.691895 0.774261 0.511688 0.692261 0.774353 0.548920 0.692535 0.774475 0.589203 0.693085 0.774536 0.631744 0.693390 0.774658 0.676544 0.693665 0.774811 0.723053 0.693939 0.774872 0.770996 0.694183 0.774933 0.820160 0.694733 0.775055 0.869904 0.694977 0.775116 0.915527 0.695221 0.775177 0.000000 0.728180 0.771973 0.011719 0.728546 0.772156 0.037231 0.729034 0.772247 0.069611 0.729340 0.772369 0.096558 0.729614 0.772522 0.121765 0.729919 0.772644 0.145233 0.730225 0.772766 0.167358 0.730682 0.772858 0.188049 0.731049 0.773010 0.207855 0.731354 0.773132 0.227112 0.731659 0.773193 0.245880 0.731903 0.773315 0.264526 0.732452 0.773499 0.283417 0.732758 0.773590 0.302826 0.733032 0.773682 0.323181 0.733276 0.773804 0.344513 0.733551 0.773926 0.367310 0.734009 0.774017 0.391724 0.734314 0.774170 0.418213 0.734558 0.774231 0.447021 0.734802 0.774353 0.478333 0.735077 0.774475 0.512512 0.735413 0.774536 0.549866 0.735779 0.774658 0.589813 0.736053 0.774811 0.632507 0.736267 0.774872 0.677002 0.736450 0.774933 0.723511 0.736725 0.775055 0.771332 0.736908 0.775116 0.820312 0.737183 0.775177 0.870117 0.737518 0.775269 0.915527 0.737793 0.775360 0.000000 0.774139 0.772247 0.013977 0.774414 0.772369 0.039673 0.774658 0.772491 0.072083 0.774994 0.772644 0.098755 0.775360 0.772766 0.123779 0.775574 0.772858 0.147064 0.775818 0.773010 0.168854 0.776031 0.773132 0.189453 0.776215 0.773193 0.209137 0.776550 0.773315 0.228302 0.776917 0.773499 0.246979 0.777161 0.773560 0.265656 0.777313 0.773682 0.284485 0.777557 0.773804 0.303802 0.777802 0.773926 0.324127 0.777985 0.774017 0.345367 0.778168 0.774170 0.368134 0.778442 0.774231 0.392670 0.778809 0.774353 0.419159 0.778992 0.774475 0.447906 0.779175 0.774536 0.479095 0.779358 0.774658 0.513275 0.779510 0.774750 0.550537 0.779724 0.774872 0.590637 0.779877 0.774933 0.633026 0.780212 0.775055 0.677673 0.780487 0.775116 0.723999 0.780609 0.775177 0.771820 0.780792 0.775269 0.820526 0.780945 0.775360 0.870331 0.781067 0.775452 0.915527 0.781250 0.775482 0.000000 0.820892 0.772491 0.016327 0.821045 0.772644 0.041840 0.821259 0.772766 0.074463 0.821564 0.772858 0.100891 0.821747 0.773010 0.125702 0.821899 0.773132 0.148682 0.822052 0.773193 0.170319 0.822266 0.773315 0.190796 0.822388 0.773468 0.210388 0.822510 0.773560 0.229462 0.822632 0.773682 0.248047 0.822815 0.773804 0.266663 0.822968 0.773926 0.285522 0.823273 0.774017 0.304749 0.823456 0.774170 0.324951 0.823608 0.774231 0.346283 0.823730 0.774353 0.369019 0.823853 0.774475 0.393616 0.823975 0.774536 0.419952 0.824127 0.774658 0.448639 0.824249 0.774750 0.480011 0.824341 0.774872 0.514191 0.824463 0.774933 0.551331 0.824615 0.775055 0.591217 0.824921 0.775116 0.633575 0.825043 0.775177 0.678040 0.825104 0.775269 0.724304 0.825256 0.775360 0.772064 0.825378 0.775452 0.820831 0.825439 0.775482 0.870392 0.825531 0.775574 0.915527 0.825623 0.775665 0.000000 0.868286 0.772766 0.018738 0.868378 0.772858 0.044189 0.868439 0.773010 0.076752 0.868530 0.773132 0.102997 0.868622 0.773193 0.127441 0.868652 0.773315 0.150421 0.868744 0.773468 0.171936 0.868774 0.773560 0.192261 0.868896 0.773682 0.211731 0.868988 0.773804 0.230621 0.869049 0.773926 0.249115 0.869110 0.774017 0.267731 0.869171 0.774109 0.286469 0.869263 0.774231 0.305756 0.869293 0.774353 0.325867 0.869385 0.774475 0.347198 0.869446 0.774536 0.369965 0.869446 0.774658 0.394318 0.869720 0.774750 0.420715 0.869781 0.774872 0.449524 0.869873 0.774933 0.480774 0.869995 0.775024 0.514771 0.870087 0.775116 0.552155 0.870087 0.775177 0.591919 0.870148 0.775269 0.634247 0.870178 0.775360 0.678650 0.870239 0.775452 0.724854 0.870270 0.775482 0.772247 0.870331 0.775574 0.821075 0.870361 0.775665 0.870514 0.870422 0.775726 0.915527 0.870422 0.775818 0.000000 0.915527 0.773010 0.021088 0.915527 0.773132 0.046967 0.915527 0.773193 0.078979 0.915527 0.773315 0.105042 0.915527 0.773468 0.129333 0.915527 0.773560 0.151947 0.915527 0.773682 0.173340 0.915527 0.773804 0.193573 0.915527 0.773926 0.212769 0.915527 0.774017 0.231689 0.915527 0.774109 0.250153 0.915527 0.774231 0.268463 0.915527 0.774353 0.287231 0.915527 0.774475 0.306671 0.915527 0.774536 0.326813 0.915527 0.774658 0.348145 0.915527 0.774750 0.370850 0.915527 0.774841 0.395172 0.915527 0.774933 0.421600 0.915527 0.775024 0.450256 0.915527 0.775116 0.481445 0.915527 0.775177 0.515594 0.915527 0.775269 0.552673 0.915527 0.775360 0.592590 0.915527 0.775452 0.634735 0.915527 0.775482 0.679047 0.915527 0.775574 0.725189 0.915527 0.775665 0.772552 0.915527 0.775726 0.821198 0.915527 0.775818 0.870605 0.915527 0.775879 0.915527 0.915527 0.775879 0.000000 0.000000 0.803223 0.000000 0.000000 0.803253 0.000000 0.000000 0.803314 0.005463 0.000000 0.803406 0.032410 0.000000 0.803467 0.066132 0.000000 0.803528 0.095093 0.000000 0.803619 0.121918 0.000000 0.803680 0.147034 0.000000 0.803772 0.170380 0.000000 0.803864 0.192566 0.000000 0.803955 0.213562 0.000000 0.803986 0.234131 0.000000 0.804077 0.254211 0.000000 0.804169 0.274597 0.000000 0.804260 0.295227 0.000000 0.804321 0.316895 0.000000 0.804382 0.339752 0.000000 0.804474 0.364014 0.000000 0.804596 0.390442 0.000000 0.804657 0.419220 0.000000 0.804749 0.450684 0.000000 0.804871 0.485168 0.000000 0.804932 0.523254 0.000000 0.805023 0.564972 0.000000 0.805145 0.609711 0.000000 0.805206 0.657257 0.000000 0.805267 0.707092 0.000000 0.805420 0.758789 0.000000 0.805511 0.811829 0.001221 0.805603 0.865814 0.002625 0.805664 0.915527 0.004059 0.805817 0.000000 0.000000 0.803314 0.000000 0.000000 0.803406 0.000000 0.000000 0.803467 0.007019 0.000000 0.803528 0.034027 0.000000 0.803619 0.067871 0.000000 0.803680 0.096558 0.000000 0.803772 0.123383 0.000183 0.803864 0.148346 0.001190 0.803955 0.171722 0.002228 0.803986 0.193634 0.003357 0.804077 0.214630 0.004517 0.804169 0.235138 0.005676 0.804260 0.255188 0.006897 0.804321 0.275391 0.008179 0.804382 0.296204 0.009460 0.804474 0.317719 0.010895 0.804596 0.340485 0.012238 0.804657 0.364990 0.013519 0.804749 0.391418 0.014923 0.804871 0.420197 0.016296 0.804932 0.451660 0.017639 0.805023 0.486206 0.019073 0.805115 0.524231 0.020569 0.805206 0.565918 0.022064 0.805267 0.610657 0.023499 0.805420 0.658081 0.024963 0.805511 0.707825 0.026459 0.805603 0.759338 0.027954 0.805664 0.812225 0.029480 0.805817 0.865936 0.031067 0.805908 0.915527 0.032562 0.806030 0.000000 0.020813 0.803467 0.000000 0.021637 0.803528 0.000000 0.022766 0.803619 0.008606 0.023865 0.803680 0.035767 0.024994 0.803772 0.069580 0.026154 0.803864 0.098267 0.027313 0.803955 0.124878 0.028534 0.803955 0.149658 0.029755 0.804077 0.172882 0.030975 0.804169 0.194824 0.032196 0.804260 0.215729 0.033539 0.804321 0.236115 0.034760 0.804382 0.256195 0.036102 0.804474 0.276367 0.037415 0.804596 0.297180 0.038696 0.804657 0.318726 0.040070 0.804749 0.341461 0.041443 0.804871 0.365997 0.042786 0.804932 0.392395 0.044159 0.805023 0.420990 0.045593 0.805115 0.452484 0.048035 0.805206 0.487244 0.050476 0.805267 0.525269 0.052948 0.805420 0.566895 0.055573 0.805511 0.611572 0.058350 0.805603 0.658936 0.060120 0.805664 0.708466 0.061768 0.805817 0.759766 0.063446 0.805908 0.812531 0.065063 0.806030 0.866089 0.066620 0.806091 0.915527 0.068268 0.806244 0.000000 0.053467 0.803619 0.000000 0.055359 0.803680 0.000000 0.057526 0.803772 0.010315 0.059265 0.803802 0.037506 0.060425 0.803955 0.071472 0.061707 0.803955 0.099884 0.062836 0.804077 0.126373 0.064209 0.804169 0.150970 0.065582 0.804260 0.174194 0.066895 0.804321 0.196014 0.068237 0.804382 0.216827 0.069702 0.804474 0.237152 0.071075 0.804596 0.257202 0.072479 0.804657 0.277374 0.073944 0.804749 0.298187 0.075409 0.804810 0.319702 0.076813 0.804932 0.342499 0.078278 0.805023 0.366913 0.079773 0.805115 0.393341 0.081238 0.805206 0.422058 0.082733 0.805267 0.453522 0.084198 0.805420 0.488281 0.085754 0.805511 0.526306 0.087189 0.805603 0.567749 0.088745 0.805664 0.612427 0.090271 0.805817 0.659607 0.091797 0.805908 0.709106 0.093323 0.806030 0.760376 0.094818 0.806091 0.812836 0.096344 0.806244 0.866302 0.097870 0.806305 0.915527 0.099426 0.806427 0.000000 0.087646 0.803772 0.000000 0.088867 0.803802 0.000000 0.089905 0.803894 0.012085 0.091095 0.803955 0.039154 0.092346 0.804016 0.073395 0.093597 0.804169 0.101715 0.094818 0.804260 0.128082 0.095978 0.804321 0.152618 0.097260 0.804382 0.175476 0.098511 0.804474 0.197205 0.099854 0.804565 0.218018 0.101166 0.804657 0.238220 0.102509 0.804749 0.258209 0.103882 0.804810 0.278412 0.105133 0.804932 0.298950 0.106384 0.805023 0.320709 0.107788 0.805115 0.343506 0.109161 0.805206 0.367828 0.110565 0.805267 0.394257 0.111969 0.805359 0.423065 0.113312 0.805511 0.454590 0.114746 0.805603 0.489197 0.116180 0.805664 0.527252 0.117523 0.805756 0.568695 0.118896 0.805908 0.613251 0.120178 0.806030 0.660400 0.121582 0.806091 0.709656 0.122986 0.806244 0.760803 0.124451 0.806305 0.813324 0.125854 0.806427 0.866608 0.127228 0.806488 0.915527 0.128662 0.806610 0.000000 0.118225 0.803894 0.000000 0.119385 0.803955 0.000000 0.120300 0.804016 0.013885 0.121490 0.804169 0.041107 0.122620 0.804260 0.075439 0.123840 0.804321 0.103455 0.124969 0.804382 0.129608 0.126068 0.804474 0.153992 0.127258 0.804565 0.176788 0.128479 0.804657 0.198425 0.129639 0.804749 0.219147 0.130768 0.804810 0.239227 0.132050 0.804901 0.259247 0.133301 0.805023 0.279449 0.134613 0.805115 0.299988 0.135681 0.805206 0.321533 0.136902 0.805267 0.344421 0.138214 0.805359 0.368896 0.139465 0.805511 0.395325 0.140747 0.805603 0.424164 0.141815 0.805664 0.455627 0.143127 0.805756 0.490173 0.144409 0.805908 0.528198 0.145721 0.805969 0.569733 0.147003 0.806091 0.614197 0.148193 0.806183 0.661133 0.149414 0.806305 0.710388 0.150665 0.806396 0.761230 0.151978 0.806488 0.813599 0.153290 0.806610 0.866791 0.154419 0.806702 0.915527 0.155579 0.806824 0.000000 0.146881 0.804016 0.000000 0.147736 0.804169 0.000000 0.148804 0.804260 0.015961 0.149780 0.804321 0.042999 0.150757 0.804382 0.077240 0.151886 0.804474 0.105194 0.152740 0.804565 0.131378 0.153931 0.804626 0.155457 0.155029 0.804749 0.178101 0.156128 0.804810 0.199646 0.157135 0.804901 0.220306 0.158234 0.805023 0.240326 0.159393 0.805115 0.260315 0.160370 0.805206 0.280365 0.161530 0.805267 0.301056 0.162659 0.805359 0.322571 0.163635 0.805511 0.345428 0.164825 0.805603 0.369934 0.165985 0.805664 0.396393 0.167175 0.805756 0.425201 0.168152 0.805908 0.456757 0.169342 0.805969 0.491241 0.170502 0.806091 0.529236 0.171570 0.806183 0.570740 0.172668 0.806305 0.615143 0.173859 0.806396 0.661926 0.175018 0.806488 0.711060 0.175995 0.806610 0.761902 0.177155 0.806702 0.813873 0.178375 0.806824 0.866913 0.179291 0.806885 0.915527 0.180450 0.807007 0.000000 0.172913 0.804199 0.000000 0.173920 0.804321 0.000000 0.174805 0.804382 0.017914 0.175751 0.804474 0.044952 0.176758 0.804565 0.079315 0.177551 0.804626 0.107178 0.178589 0.804749 0.132904 0.179474 0.804810 0.157104 0.180450 0.804901 0.179657 0.181519 0.805023 0.200928 0.182343 0.805115 0.221466 0.183411 0.805206 0.241455 0.184509 0.805267 0.261322 0.185364 0.805359 0.281433 0.186401 0.805511 0.302094 0.187378 0.805603 0.323639 0.188354 0.805664 0.346436 0.189423 0.805756 0.371002 0.190308 0.805908 0.397430 0.191376 0.805969 0.426270 0.192474 0.806091 0.457794 0.193329 0.806183 0.492371 0.194427 0.806305 0.530334 0.195526 0.806396 0.571655 0.196381 0.806488 0.615906 0.197510 0.806610 0.662750 0.198456 0.806702 0.711700 0.199402 0.806824 0.762299 0.200500 0.806885 0.814209 0.201355 0.807007 0.867096 0.202423 0.807098 0.915527 0.203491 0.807220 0.000000 0.197296 0.804382 0.000000 0.197968 0.804474 0.000000 0.198914 0.804565 0.019897 0.199615 0.804626 0.048126 0.200592 0.804749 0.081390 0.201355 0.804810 0.109009 0.202271 0.804901 0.134705 0.203156 0.805023 0.158539 0.204041 0.805115 0.181061 0.205017 0.805206 0.202179 0.205780 0.805267 0.222687 0.206757 0.805359 0.242584 0.207550 0.805511 0.262451 0.208527 0.805603 0.282440 0.209259 0.805664 0.303162 0.210297 0.805756 0.324677 0.211304 0.805908 0.347473 0.212097 0.805969 0.372040 0.213104 0.806091 0.398499 0.213867 0.806183 0.427307 0.214874 0.806305 0.458893 0.215790 0.806396 0.493439 0.216705 0.806488 0.531403 0.217682 0.806580 0.572632 0.218475 0.806702 0.616852 0.219452 0.806793 0.663666 0.220276 0.806885 0.712494 0.221252 0.807007 0.762939 0.222107 0.807098 0.814697 0.223022 0.807220 0.867188 0.223938 0.807281 0.915527 0.224792 0.807404 0.000000 0.219757 0.804565 0.000000 0.220398 0.804626 0.000000 0.221313 0.804749 0.021973 0.221985 0.804810 0.051636 0.222839 0.804901 0.083496 0.223541 0.805023 0.110870 0.224426 0.805115 0.136353 0.225098 0.805206 0.160034 0.226074 0.805267 0.182404 0.226715 0.805359 0.203522 0.227661 0.805511 0.223907 0.228485 0.805603 0.243744 0.229279 0.805634 0.263550 0.230011 0.805756 0.283539 0.230927 0.805908 0.304260 0.231689 0.805969 0.325775 0.232605 0.806091 0.348541 0.233521 0.806183 0.373108 0.234253 0.806305 0.399567 0.235046 0.806396 0.428467 0.235870 0.806488 0.459808 0.236816 0.806580 0.494537 0.237549 0.806702 0.532471 0.238464 0.806793 0.573608 0.239166 0.806885 0.617859 0.240112 0.806946 0.664307 0.240845 0.807098 0.713013 0.241760 0.807220 0.763367 0.242462 0.807281 0.815002 0.243378 0.807404 0.867340 0.244110 0.807495 0.915527 0.244995 0.807587 0.000000 0.240875 0.804749 0.000000 0.241699 0.804810 0.000000 0.242310 0.804901 0.024139 0.243164 0.805023 0.055420 0.243805 0.805115 0.085632 0.244598 0.805206 0.112854 0.245270 0.805267 0.138153 0.245911 0.805359 0.161743 0.246796 0.805511 0.183777 0.247437 0.805603 0.204956 0.248260 0.805634 0.225098 0.248932 0.805756 0.244904 0.249786 0.805908 0.264679 0.250519 0.805969 0.284637 0.251373 0.806030 0.305359 0.251984 0.806183 0.326843 0.252899 0.806305 0.349670 0.253540 0.806396 0.374176 0.254456 0.806488 0.400665 0.255127 0.806580 0.429413 0.255981 0.806702 0.460907 0.256683 0.806793 0.495575 0.257355 0.806885 0.533569 0.258209 0.806946 0.574677 0.258972 0.807098 0.618591 0.259735 0.807220 0.665222 0.260468 0.807281 0.713776 0.261261 0.807404 0.763977 0.261902 0.807495 0.815277 0.262817 0.807587 0.867493 0.263458 0.807678 0.915527 0.264313 0.807800 0.000000 0.261200 0.804901 0.000000 0.261780 0.804962 0.000488 0.262604 0.805115 0.026306 0.263123 0.805206 0.059052 0.263855 0.805267 0.087799 0.264587 0.805359 0.114807 0.265137 0.805450 0.139801 0.265991 0.805603 0.163239 0.266602 0.805634 0.185303 0.267426 0.805756 0.206268 0.268036 0.805847 0.226349 0.268738 0.805969 0.246094 0.269501 0.806030 0.265808 0.270142 0.806183 0.285736 0.270935 0.806305 0.306244 0.271545 0.806396 0.327942 0.272400 0.806488 0.350769 0.273010 0.806580 0.375153 0.273865 0.806702 0.401642 0.274475 0.806793 0.430481 0.275177 0.806885 0.462006 0.275940 0.806946 0.496643 0.276642 0.807098 0.534393 0.277374 0.807220 0.575714 0.277985 0.807281 0.619568 0.278839 0.807404 0.665833 0.279449 0.807495 0.714325 0.280304 0.807587 0.764404 0.280884 0.807678 0.815643 0.281647 0.807800 0.867737 0.282318 0.807892 0.915527 0.282990 0.807983 0.000000 0.280823 0.805115 0.000000 0.281433 0.805206 0.002350 0.282166 0.805267 0.028595 0.282715 0.805359 0.061432 0.283508 0.805450 0.089996 0.284058 0.805603 0.116821 0.284637 0.805634 0.141693 0.285431 0.805756 0.164948 0.285980 0.805847 0.186798 0.286774 0.805969 0.207581 0.287323 0.806030 0.227570 0.288147 0.806183 0.247284 0.288757 0.806305 0.266937 0.289368 0.806396 0.286865 0.290161 0.806488 0.307373 0.290741 0.806580 0.329041 0.291534 0.806702 0.351837 0.292114 0.806793 0.376251 0.292755 0.806885 0.402740 0.293549 0.806946 0.431610 0.294128 0.807098 0.463135 0.294922 0.807190 0.497681 0.295502 0.807281 0.535522 0.296204 0.807343 0.576721 0.296875 0.807495 0.620483 0.297485 0.807587 0.666718 0.298309 0.807678 0.715088 0.298859 0.807800 0.764862 0.299652 0.807892 0.816071 0.300232 0.807983 0.867981 0.300964 0.808075 0.915527 0.301575 0.808197 0.000000 0.300293 0.805267 0.000000 0.301025 0.805359 0.004517 0.301575 0.805450 0.030792 0.302094 0.805603 0.063873 0.302887 0.805634 0.092194 0.303436 0.805756 0.118683 0.303955 0.805847 0.143555 0.304779 0.805969 0.166504 0.305298 0.806030 0.188202 0.306091 0.806183 0.208893 0.306641 0.806274 0.228851 0.307159 0.806396 0.248474 0.307983 0.806458 0.268097 0.308533 0.806580 0.287994 0.309326 0.806641 0.308441 0.309875 0.806793 0.329987 0.310425 0.806885 0.352966 0.311218 0.806946 0.377319 0.311798 0.807098 0.403870 0.312592 0.807190 0.432739 0.313141 0.807281 0.464233 0.313751 0.807343 0.498718 0.314484 0.807495 0.536591 0.315063 0.807587 0.577545 0.315857 0.807678 0.621399 0.316406 0.807800 0.667633 0.317047 0.807892 0.715637 0.317719 0.807983 0.765503 0.318298 0.808075 0.816345 0.318970 0.808197 0.868134 0.319611 0.808258 0.915527 0.320160 0.808350 0.000000 0.319885 0.805450 0.000000 0.320587 0.805603 0.006744 0.321136 0.805634 0.033173 0.321686 0.805756 0.066223 0.322449 0.805847 0.094360 0.322968 0.805969 0.120697 0.323608 0.806030 0.145203 0.324280 0.806183 0.168152 0.324799 0.806274 0.189636 0.325562 0.806396 0.210205 0.326111 0.806458 0.230225 0.326660 0.806580 0.249634 0.327454 0.806641 0.269257 0.327972 0.806793 0.289093 0.328766 0.806885 0.309570 0.329315 0.806946 0.331146 0.329895 0.807098 0.354095 0.330627 0.807190 0.378479 0.331177 0.807281 0.404968 0.331818 0.807343 0.433838 0.332520 0.807495 0.465363 0.333038 0.807587 0.499817 0.333801 0.807678 0.537659 0.334351 0.807739 0.578583 0.335052 0.807892 0.622192 0.335693 0.807953 0.668243 0.336243 0.808075 0.716370 0.336975 0.808197 0.765900 0.337555 0.808258 0.816620 0.338074 0.808350 0.868286 0.338806 0.808472 0.915527 0.339355 0.808563 0.000000 0.340210 0.805634 0.000000 0.340729 0.805756 0.009033 0.341217 0.805847 0.035400 0.341980 0.805939 0.068604 0.342499 0.806030 0.096558 0.343018 0.806183 0.122772 0.343781 0.806274 0.147064 0.344299 0.806396 0.169769 0.345032 0.806458 0.191193 0.345581 0.806580 0.211731 0.346161 0.806641 0.231415 0.346893 0.806793 0.250854 0.347473 0.806885 0.270386 0.348022 0.806946 0.290222 0.348785 0.807098 0.310669 0.349304 0.807190 0.332214 0.350067 0.807281 0.355133 0.350586 0.807343 0.379547 0.351135 0.807495 0.406067 0.351898 0.807587 0.434937 0.352417 0.807678 0.466461 0.353058 0.807739 0.500916 0.353760 0.807892 0.538727 0.354309 0.807953 0.579590 0.355042 0.808075 0.623138 0.355560 0.808136 0.669098 0.356079 0.808258 0.716919 0.356812 0.808350 0.766327 0.357361 0.808472 0.817139 0.357880 0.808563 0.868439 0.358673 0.808594 0.915527 0.359161 0.808746 0.000000 0.361053 0.805847 0.000000 0.361786 0.805939 0.011230 0.362305 0.806030 0.037811 0.363007 0.806183 0.071136 0.363617 0.806274 0.098785 0.364075 0.806396 0.124756 0.364868 0.806458 0.148743 0.365356 0.806580 0.171295 0.365906 0.806641 0.192657 0.366669 0.806793 0.212982 0.367249 0.806885 0.232788 0.367920 0.806946 0.252075 0.368500 0.807098 0.271576 0.369080 0.807190 0.291382 0.369812 0.807281 0.311768 0.370331 0.807343 0.333282 0.370880 0.807495 0.356079 0.371643 0.807587 0.380707 0.372192 0.807678 0.407196 0.372925 0.807739 0.436066 0.373474 0.807892 0.467590 0.373993 0.807953 0.502014 0.374756 0.808075 0.539825 0.375305 0.808136 0.580627 0.375854 0.808258 0.624084 0.376556 0.808350 0.669891 0.377106 0.808472 0.717651 0.377777 0.808563 0.766937 0.378357 0.808594 0.817413 0.378876 0.808746 0.868561 0.379578 0.808838 0.915527 0.380127 0.808899 0.000000 0.383392 0.806030 0.000000 0.383911 0.806183 0.013641 0.384674 0.806274 0.040039 0.385193 0.806396 0.073547 0.385834 0.806458 0.100983 0.386444 0.806580 0.126709 0.387024 0.806641 0.150604 0.387634 0.806793 0.173004 0.388275 0.806885 0.194061 0.388824 0.806946 0.214386 0.389618 0.807037 0.234039 0.390137 0.807190 0.253326 0.390747 0.807251 0.272705 0.391449 0.807343 0.292542 0.391937 0.807495 0.312897 0.392609 0.807587 0.334351 0.393250 0.807678 0.357147 0.393799 0.807739 0.381775 0.394592 0.807892 0.408325 0.395111 0.807953 0.437073 0.395660 0.808075 0.468567 0.396362 0.808136 0.503082 0.396881 0.808258 0.540802 0.397644 0.808350 0.581360 0.398163 0.808472 0.624969 0.398682 0.808563 0.670532 0.399414 0.808594 0.718140 0.399933 0.808746 0.767303 0.400421 0.808838 0.817627 0.401154 0.808899 0.868744 0.401703 0.809021 0.915527 0.402283 0.809113 0.000000 0.407074 0.806274 0.000000 0.407806 0.806335 0.016083 0.408356 0.806458 0.042480 0.409119 0.806549 0.075958 0.409668 0.806641 0.103180 0.410156 0.806793 0.128632 0.410950 0.806885 0.152344 0.411469 0.806946 0.174561 0.411987 0.807037 0.195587 0.412781 0.807190 0.215729 0.413300 0.807251 0.235291 0.414032 0.807343 0.254425 0.414642 0.807495 0.273865 0.415161 0.807587 0.293640 0.415924 0.807678 0.313995 0.416473 0.807739 0.335480 0.416992 0.807892 0.358276 0.417725 0.807953 0.382874 0.418304 0.808075 0.409393 0.418976 0.808136 0.438141 0.419586 0.808258 0.469543 0.420135 0.808350 0.504120 0.420868 0.808472 0.541687 0.421356 0.808563 0.582367 0.421906 0.808594 0.625671 0.422638 0.808746 0.671356 0.423157 0.808838 0.718872 0.423615 0.808899 0.767914 0.424347 0.809021 0.817902 0.424866 0.809113 0.868866 0.425537 0.809174 0.915527 0.426086 0.809235 0.000000 0.432861 0.806458 0.000000 0.433411 0.806549 0.018372 0.434143 0.806641 0.044708 0.434692 0.806793 0.078339 0.435211 0.806885 0.105377 0.436005 0.806946 0.130646 0.436523 0.807037 0.154144 0.437286 0.807190 0.176086 0.437805 0.807251 0.197083 0.438385 0.807343 0.217010 0.439148 0.807495 0.236511 0.439697 0.807587 0.255676 0.440216 0.807678 0.274994 0.440979 0.807739 0.294769 0.441498 0.807892 0.315094 0.442291 0.807953 0.336548 0.442780 0.808075 0.359375 0.443359 0.808136 0.383881 0.444092 0.808228 0.410339 0.444611 0.808350 0.439209 0.445190 0.808441 0.470642 0.445892 0.808563 0.505066 0.446411 0.808594 0.542755 0.447052 0.808746 0.583313 0.447662 0.808838 0.626617 0.448181 0.808899 0.671967 0.448883 0.809021 0.719360 0.449371 0.809113 0.768280 0.449921 0.809174 0.818207 0.450470 0.809235 0.869110 0.451080 0.809326 0.915527 0.451569 0.809479 0.000000 0.460754 0.806641 0.000000 0.461273 0.806793 0.020844 0.461823 0.806885 0.048401 0.462585 0.806946 0.080902 0.463165 0.807037 0.107544 0.463837 0.807190 0.132629 0.464447 0.807251 0.156006 0.465027 0.807343 0.177765 0.465729 0.807434 0.198517 0.466278 0.807587 0.218323 0.466827 0.807648 0.237732 0.467590 0.807739 0.256927 0.468140 0.807892 0.276123 0.468811 0.807953 0.295807 0.469421 0.808075 0.316223 0.469940 0.808136 0.337646 0.470703 0.808228 0.360413 0.471222 0.808350 0.384979 0.471832 0.808441 0.411377 0.472504 0.808563 0.440216 0.473053 0.808594 0.471710 0.473511 0.808746 0.506073 0.474274 0.808838 0.543732 0.474792 0.808899 0.584320 0.475433 0.809021 0.627411 0.476013 0.809113 0.672791 0.476532 0.809174 0.720062 0.477203 0.809235 0.768707 0.477692 0.809326 0.818665 0.478180 0.809479 0.869324 0.478668 0.809570 0.915527 0.479340 0.809601 0.000000 0.491058 0.806885 0.000000 0.491577 0.806946 0.023285 0.492371 0.807037 0.052460 0.492889 0.807190 0.083221 0.493439 0.807251 0.109741 0.494171 0.807343 0.134552 0.494720 0.807434 0.157593 0.495514 0.807587 0.179260 0.496002 0.807648 0.199890 0.496582 0.807739 0.219788 0.497284 0.807831 0.238983 0.497864 0.807953 0.257996 0.498383 0.808044 0.277283 0.499146 0.808136 0.296875 0.499634 0.808228 0.317291 0.500305 0.808350 0.338715 0.500916 0.808441 0.361481 0.501465 0.808563 0.385925 0.502014 0.808594 0.412415 0.502686 0.808685 0.441284 0.503235 0.808838 0.472748 0.503876 0.808899 0.507111 0.504456 0.808990 0.544739 0.504913 0.809113 0.585236 0.505646 0.809174 0.628143 0.506134 0.809235 0.673309 0.506622 0.809326 0.720551 0.507294 0.809479 0.769257 0.507812 0.809570 0.818878 0.508240 0.809601 0.869415 0.508820 0.809692 0.915527 0.509369 0.809784 0.000000 0.524231 0.807037 0.000549 0.524780 0.807190 0.025787 0.525269 0.807251 0.056854 0.526062 0.807343 0.085602 0.526581 0.807434 0.111877 0.527252 0.807587 0.136383 0.527802 0.807648 0.159424 0.528351 0.807739 0.181000 0.529114 0.807831 0.201477 0.529663 0.807953 0.221069 0.530151 0.808044 0.240204 0.530914 0.808136 0.259186 0.531433 0.808228 0.278381 0.531952 0.808350 0.297943 0.532684 0.808441 0.318359 0.533203 0.808563 0.339813 0.533722 0.808594 0.362610 0.534424 0.808685 0.386993 0.534973 0.808838 0.413483 0.535645 0.808899 0.442352 0.536163 0.808990 0.473816 0.536621 0.809113 0.508148 0.537079 0.809174 0.545715 0.537842 0.809235 0.585968 0.538300 0.809326 0.629028 0.538818 0.809418 0.674072 0.539429 0.809570 0.720978 0.539917 0.809601 0.769562 0.540344 0.809692 0.819153 0.541016 0.809784 0.869537 0.541443 0.809875 0.915527 0.541870 0.809937 0.000000 0.560181 0.807251 0.002747 0.560822 0.807343 0.028107 0.561462 0.807434 0.060059 0.561951 0.807587 0.087860 0.562714 0.807648 0.113983 0.563232 0.807739 0.138367 0.563721 0.807831 0.161011 0.564453 0.807953 0.182404 0.565002 0.808044 0.202820 0.565460 0.808136 0.222382 0.566193 0.808228 0.241394 0.566711 0.808350 0.260406 0.567200 0.808441 0.279510 0.567902 0.808533 0.298920 0.568420 0.808594 0.319336 0.568878 0.808685 0.340698 0.569580 0.808838 0.363525 0.570099 0.808899 0.388031 0.570526 0.808990 0.414551 0.571228 0.809082 0.443390 0.571747 0.809174 0.474823 0.572144 0.809235 0.509155 0.572845 0.809326 0.546509 0.573303 0.809418 0.586914 0.573730 0.809509 0.629639 0.574371 0.809601 0.674774 0.574799 0.809692 0.721649 0.575226 0.809784 0.769928 0.575684 0.809875 0.819336 0.576294 0.809937 0.869659 0.576691 0.809998 0.915527 0.577118 0.810028 0.000000 0.599091 0.807434 0.005066 0.599792 0.807587 0.030548 0.600250 0.807648 0.062653 0.600708 0.807739 0.090240 0.601410 0.807831 0.116119 0.601898 0.807953 0.140228 0.602417 0.808044 0.162750 0.603027 0.808136 0.183899 0.603546 0.808228 0.204193 0.604034 0.808350 0.223633 0.604706 0.808441 0.242584 0.605164 0.808533 0.261414 0.605652 0.808594 0.280548 0.606201 0.808685 0.299988 0.606781 0.808807 0.320282 0.607208 0.808899 0.341644 0.607666 0.808990 0.364471 0.608337 0.809082 0.389038 0.608795 0.809174 0.415558 0.609192 0.809235 0.444244 0.609833 0.809326 0.475647 0.610260 0.809418 0.510101 0.610657 0.809509 0.547485 0.611115 0.809601 0.587708 0.611725 0.809631 0.630463 0.612152 0.809784 0.675415 0.612488 0.809875 0.722107 0.612854 0.809937 0.770447 0.613464 0.809998 0.819763 0.613861 0.810028 0.869751 0.614197 0.810120 0.915527 0.614532 0.810211 0.000000 0.640442 0.807648 0.007416 0.640900 0.807739 0.033020 0.641327 0.807831 0.065186 0.641815 0.807953 0.092560 0.642426 0.808044 0.118164 0.642853 0.808136 0.141998 0.643280 0.808228 0.164368 0.643921 0.808289 0.185516 0.644379 0.808441 0.205475 0.644806 0.808533 0.224884 0.645416 0.808594 0.243713 0.645844 0.808685 0.262512 0.646240 0.808807 0.281616 0.646698 0.808899 0.301086 0.647278 0.808990 0.321289 0.647644 0.809082 0.342743 0.648071 0.809174 0.365479 0.648499 0.809235 0.390106 0.649048 0.809326 0.416595 0.649475 0.809418 0.445160 0.649811 0.809509 0.476562 0.650238 0.809570 0.510864 0.650787 0.809631 0.548401 0.651123 0.809784 0.588470 0.651459 0.809814 0.631287 0.651855 0.809906 0.676117 0.652405 0.809967 0.722717 0.652710 0.810028 0.770752 0.653015 0.810120 0.819977 0.653351 0.810211 0.869812 0.653687 0.810272 0.915527 0.654205 0.810333 0.000000 0.683563 0.807831 0.009766 0.683929 0.807953 0.035309 0.684448 0.808044 0.067535 0.684906 0.808136 0.094788 0.685272 0.808228 0.120270 0.685638 0.808289 0.143890 0.686249 0.808441 0.165955 0.686615 0.808533 0.186920 0.687012 0.808594 0.206818 0.687378 0.808685 0.226074 0.687927 0.808807 0.244904 0.688324 0.808899 0.263641 0.688660 0.808990 0.282654 0.688995 0.809082 0.302094 0.689301 0.809174 0.322327 0.689880 0.809235 0.343750 0.690216 0.809326 0.366486 0.690552 0.809418 0.390839 0.690887 0.809509 0.417358 0.691406 0.809570 0.446167 0.691772 0.809631 0.477539 0.692078 0.809723 0.511841 0.692352 0.809814 0.549072 0.692719 0.809906 0.589294 0.693146 0.809967 0.631866 0.693451 0.810028 0.676605 0.693756 0.810120 0.723145 0.694031 0.810211 0.771057 0.694366 0.810272 0.820190 0.694794 0.810333 0.869904 0.695099 0.810425 0.915527 0.695312 0.810486 0.000000 0.728271 0.808044 0.012054 0.728760 0.808136 0.037750 0.729126 0.808228 0.070190 0.729431 0.808289 0.097076 0.729706 0.808441 0.122070 0.730042 0.808533 0.145660 0.730316 0.808594 0.167603 0.730865 0.808685 0.188324 0.731171 0.808807 0.208221 0.731506 0.808899 0.227295 0.731750 0.808990 0.246033 0.732147 0.809082 0.264709 0.732513 0.809174 0.283600 0.732819 0.809235 0.303131 0.733124 0.809326 0.323334 0.733368 0.809418 0.344727 0.733673 0.809509 0.367493 0.734161 0.809570 0.391846 0.734436 0.809631 0.418304 0.734680 0.809723 0.447144 0.734894 0.809814 0.478485 0.735138 0.809906 0.512787 0.735474 0.809967 0.549957 0.735870 0.810028 0.589935 0.736115 0.810120 0.632629 0.736359 0.810211 0.677063 0.736572 0.810272 0.723572 0.736786 0.810333 0.771484 0.737030 0.810425 0.820404 0.737244 0.810486 0.870117 0.737640 0.810516 0.915527 0.737823 0.810577 0.000000 0.774261 0.808228 0.014465 0.774506 0.808289 0.039978 0.774750 0.808441 0.072479 0.775177 0.808533 0.099213 0.775421 0.808563 0.124054 0.775665 0.808685 0.147369 0.775879 0.808807 0.169098 0.776123 0.808899 0.189728 0.776337 0.808990 0.209412 0.776764 0.809082 0.228455 0.776978 0.809174 0.247162 0.777191 0.809235 0.265778 0.777466 0.809326 0.284637 0.777649 0.809418 0.304077 0.777802 0.809509 0.324310 0.778076 0.809570 0.345642 0.778259 0.809631 0.368408 0.778625 0.809723 0.392792 0.778839 0.809814 0.419250 0.779114 0.809906 0.448090 0.779266 0.809967 0.479187 0.779449 0.810028 0.513458 0.779633 0.810120 0.550690 0.779816 0.810211 0.590698 0.780029 0.810272 0.633118 0.780334 0.810333 0.677704 0.780518 0.810425 0.724060 0.780670 0.810486 0.771851 0.780853 0.810516 0.820526 0.780975 0.810577 0.870331 0.781128 0.810638 0.915527 0.781311 0.810730 0.000000 0.820923 0.808441 0.016846 0.821106 0.808533 0.042389 0.821381 0.808563 0.074860 0.821625 0.808685 0.101196 0.821808 0.808807 0.126007 0.821960 0.808899 0.149048 0.822113 0.808990 0.170746 0.822296 0.809082 0.191132 0.822449 0.809174 0.210754 0.822540 0.809235 0.229584 0.822693 0.809326 0.248230 0.822906 0.809418 0.266785 0.823151 0.809509 0.285614 0.823395 0.809570 0.304962 0.823517 0.809631 0.325043 0.823608 0.809723 0.346436 0.823792 0.809814 0.369171 0.823883 0.809906 0.393738 0.824036 0.809967 0.420197 0.824158 0.810028 0.448730 0.824249 0.810120 0.480133 0.824402 0.810211 0.514282 0.824554 0.810272 0.551453 0.824768 0.810333 0.591461 0.825012 0.810425 0.633881 0.825104 0.810486 0.678131 0.825165 0.810516 0.724426 0.825287 0.810577 0.772095 0.825409 0.810638 0.820892 0.825470 0.810730 0.870453 0.825562 0.810760 0.915527 0.825653 0.810822 0.000000 0.868286 0.808563 0.019043 0.868378 0.808685 0.044525 0.868469 0.808807 0.077087 0.868561 0.808899 0.103363 0.868622 0.808990 0.127899 0.868713 0.809082 0.150665 0.868744 0.809174 0.172150 0.868835 0.809235 0.192505 0.868958 0.809326 0.211975 0.868988 0.809418 0.230743 0.869110 0.809509 0.249298 0.869110 0.809570 0.267853 0.869202 0.809631 0.286621 0.869263 0.809723 0.305878 0.869354 0.809814 0.326019 0.869385 0.809906 0.347351 0.869446 0.809967 0.370056 0.869568 0.810028 0.394440 0.869720 0.810120 0.420868 0.869781 0.810211 0.449646 0.869934 0.810272 0.480988 0.869995 0.810333 0.514984 0.870087 0.810425 0.552246 0.870087 0.810425 0.591980 0.870178 0.810516 0.634308 0.870239 0.810577 0.678711 0.870270 0.810638 0.724884 0.870331 0.810730 0.772339 0.870361 0.810760 0.821075 0.870422 0.810822 0.870514 0.870422 0.810883 0.915527 0.870483 0.810883 0.000000 0.915527 0.808807 0.021454 0.915527 0.808899 0.047852 0.915527 0.808990 0.079407 0.915527 0.809082 0.105347 0.915527 0.809174 0.129639 0.915527 0.809235 0.152191 0.915527 0.809326 0.173523 0.915527 0.809418 0.193787 0.915527 0.809509 0.213104 0.915527 0.809570 0.231873 0.915527 0.809631 0.250366 0.915527 0.809723 0.268738 0.915527 0.809814 0.287415 0.915527 0.809906 0.306824 0.915527 0.809967 0.326935 0.915527 0.810028 0.348236 0.915527 0.810120 0.370972 0.915527 0.810211 0.395294 0.915527 0.810242 0.421722 0.915527 0.810333 0.450470 0.915527 0.810425 0.481567 0.915527 0.810425 0.515747 0.915527 0.810516 0.552765 0.915527 0.810577 0.592743 0.915527 0.810638 0.634918 0.915527 0.810730 0.679169 0.915527 0.810760 0.725220 0.915527 0.810822 0.772644 0.915527 0.810883 0.821198 0.915527 0.810883 0.870605 0.915527 0.810944 0.915527 0.915527 0.810974 0.000000 0.000000 0.841431 0.000000 0.000000 0.841492 0.000000 0.000000 0.841522 0.005829 0.000000 0.841614 0.032654 0.000000 0.841644 0.066406 0.000000 0.841675 0.095276 0.000000 0.841736 0.122162 0.000000 0.841766 0.147278 0.000000 0.841858 0.170715 0.000000 0.841919 0.192719 0.000000 0.841949 0.213715 0.000000 0.841980 0.234283 0.000000 0.842041 0.254364 0.000000 0.842072 0.274780 0.000000 0.842163 0.295380 0.000000 0.842224 0.317139 0.000000 0.842316 0.339874 0.000000 0.842316 0.364197 0.000000 0.842377 0.390564 0.000000 0.842438 0.419342 0.000000 0.842529 0.450836 0.000000 0.842560 0.485352 0.000000 0.842651 0.523438 0.000000 0.842682 0.565125 0.000000 0.842773 0.609863 0.000000 0.842865 0.657532 0.000000 0.842896 0.707306 0.000000 0.842987 0.758881 0.000366 0.843018 0.811951 0.001770 0.843079 0.865845 0.003143 0.843170 0.915527 0.004517 0.843201 0.000000 0.000000 0.841522 0.000000 0.000000 0.841614 0.000000 0.000000 0.841644 0.007385 0.000000 0.841675 0.034332 0.000000 0.841736 0.068176 0.000000 0.841766 0.096924 0.000000 0.841858 0.123688 0.000580 0.841919 0.148499 0.001587 0.841949 0.171936 0.002716 0.841980 0.193848 0.003784 0.842041 0.214813 0.005035 0.842072 0.235291 0.006226 0.842163 0.255371 0.007477 0.842224 0.275696 0.008698 0.842316 0.296356 0.010010 0.842316 0.317871 0.011322 0.842377 0.340637 0.012604 0.842438 0.365143 0.013977 0.842529 0.391541 0.015350 0.842560 0.420319 0.016724 0.842651 0.451874 0.018311 0.842682 0.486328 0.019714 0.842773 0.524445 0.021118 0.842865 0.566071 0.022552 0.842896 0.610779 0.024017 0.842987 0.658203 0.025421 0.843018 0.707947 0.027130 0.843079 0.759399 0.028564 0.843170 0.812317 0.030090 0.843201 0.865997 0.031555 0.843292 0.915527 0.033112 0.843353 0.000000 0.021118 0.841644 0.000000 0.022156 0.841675 0.000000 0.023285 0.841736 0.008972 0.024384 0.841766 0.036041 0.025391 0.841858 0.069946 0.026581 0.841919 0.098541 0.027710 0.841949 0.125153 0.028931 0.841980 0.149872 0.030121 0.842041 0.173157 0.031342 0.842072 0.195007 0.032623 0.842163 0.215881 0.033936 0.842224 0.236328 0.035187 0.842316 0.256378 0.036499 0.842316 0.276520 0.037842 0.842377 0.297302 0.039124 0.842438 0.318878 0.040497 0.842529 0.341583 0.041809 0.842560 0.366150 0.043213 0.842651 0.392548 0.044556 0.842682 0.421173 0.046265 0.842773 0.452759 0.048706 0.842804 0.487396 0.051300 0.842896 0.525421 0.054138 0.842987 0.567078 0.056854 0.842987 0.611694 0.059174 0.843079 0.659058 0.060699 0.843170 0.708649 0.062286 0.843201 0.759796 0.063934 0.843292 0.812592 0.065582 0.843353 0.866119 0.067139 0.843384 0.915527 0.068787 0.843475 0.000000 0.054352 0.841736 0.000000 0.056335 0.841766 0.000000 0.058228 0.841827 0.010620 0.059601 0.841919 0.037811 0.060852 0.841949 0.071747 0.062103 0.841980 0.100372 0.063477 0.842041 0.126709 0.064880 0.842072 0.151276 0.066101 0.842163 0.174438 0.067413 0.842224 0.196167 0.068726 0.842316 0.217010 0.070099 0.842316 0.237396 0.071503 0.842377 0.257416 0.072937 0.842438 0.277496 0.074371 0.842529 0.298309 0.075806 0.842560 0.319855 0.077301 0.842651 0.342621 0.078735 0.842682 0.367157 0.080261 0.842773 0.393585 0.081665 0.842804 0.422211 0.083160 0.842896 0.453674 0.084747 0.842987 0.488403 0.086182 0.842987 0.526459 0.087677 0.843079 0.568054 0.089264 0.843170 0.612640 0.090759 0.843201 0.659851 0.092285 0.843292 0.709198 0.093811 0.843353 0.760468 0.095306 0.843384 0.812897 0.096863 0.843475 0.866425 0.098358 0.843567 0.915527 0.099915 0.843628 0.000000 0.088013 0.841827 0.000000 0.089233 0.841919 0.000000 0.090485 0.841949 0.012512 0.091614 0.841980 0.039612 0.092743 0.842041 0.073669 0.093964 0.842072 0.101929 0.095215 0.842163 0.128296 0.096558 0.842224 0.152802 0.097839 0.842255 0.175690 0.098907 0.842316 0.197357 0.100311 0.842346 0.218140 0.101562 0.842438 0.238495 0.102936 0.842529 0.258484 0.104279 0.842560 0.278564 0.105652 0.842651 0.299194 0.107025 0.842682 0.320862 0.108398 0.842773 0.343658 0.109558 0.842804 0.367981 0.110992 0.842896 0.394440 0.112396 0.842987 0.423218 0.113770 0.842987 0.454742 0.115173 0.843079 0.489471 0.116577 0.843109 0.527466 0.118042 0.843201 0.568848 0.119415 0.843292 0.613373 0.120789 0.843353 0.660553 0.122253 0.843384 0.709808 0.123627 0.843475 0.760895 0.125000 0.843567 0.813385 0.126312 0.843628 0.866669 0.127686 0.843689 0.915527 0.129089 0.843781 0.000000 0.118561 0.841949 0.000000 0.119751 0.841980 0.000000 0.120850 0.842041 0.014343 0.121857 0.842072 0.041504 0.123016 0.842163 0.075745 0.124176 0.842224 0.103821 0.125427 0.842255 0.129822 0.126465 0.842316 0.154205 0.127625 0.842346 0.177032 0.128876 0.842438 0.198608 0.130127 0.842499 0.219269 0.131195 0.842560 0.239471 0.132446 0.842651 0.259491 0.133667 0.842682 0.279633 0.134949 0.842773 0.300140 0.136261 0.842804 0.321777 0.137360 0.842896 0.344696 0.138580 0.842987 0.369049 0.139862 0.842987 0.395447 0.141113 0.843079 0.424286 0.142426 0.843109 0.455811 0.143677 0.843201 0.490448 0.144775 0.843292 0.528534 0.146088 0.843353 0.569855 0.147400 0.843384 0.614319 0.148682 0.843475 0.661377 0.150024 0.843567 0.710510 0.151062 0.843628 0.761353 0.152374 0.843689 0.813629 0.153656 0.843781 0.866791 0.154938 0.843811 0.915527 0.156219 0.843903 0.000000 0.147186 0.842041 0.000000 0.148041 0.842072 0.000000 0.149109 0.842163 0.016266 0.150208 0.842224 0.043396 0.151184 0.842255 0.077698 0.152222 0.842316 0.105560 0.153320 0.842346 0.131592 0.154236 0.842438 0.155731 0.155365 0.842499 0.178436 0.156525 0.842560 0.199860 0.157684 0.842651 0.220459 0.158539 0.842682 0.240570 0.159760 0.842773 0.260559 0.160950 0.842804 0.280670 0.161865 0.842896 0.301208 0.163025 0.842987 0.322784 0.164215 0.842987 0.345703 0.165192 0.843079 0.370087 0.166382 0.843109 0.396515 0.167511 0.843201 0.425415 0.168640 0.843292 0.456940 0.169708 0.843353 0.491394 0.170837 0.843384 0.529419 0.172058 0.843475 0.570892 0.173096 0.843567 0.615295 0.174194 0.843628 0.662048 0.175385 0.843689 0.711243 0.176514 0.843781 0.761932 0.177521 0.843811 0.813934 0.178711 0.843903 0.866913 0.179871 0.843964 0.915527 0.180786 0.844055 0.000000 0.173431 0.842163 0.000000 0.174225 0.842224 0.000000 0.175201 0.842255 0.018219 0.176025 0.842316 0.045319 0.177094 0.842346 0.079803 0.178040 0.842438 0.107452 0.178864 0.842499 0.133148 0.179962 0.842560 0.157318 0.180756 0.842651 0.179871 0.181824 0.842682 0.201172 0.182892 0.842773 0.221649 0.183716 0.842804 0.241760 0.184814 0.842896 0.261444 0.185638 0.842957 0.281708 0.186707 0.842987 0.302246 0.187805 0.843079 0.323792 0.188690 0.843109 0.346710 0.189728 0.843201 0.371155 0.190826 0.843292 0.397614 0.191681 0.843323 0.426483 0.192810 0.843384 0.457977 0.193909 0.843475 0.492493 0.194763 0.843536 0.530487 0.195831 0.843628 0.571869 0.196747 0.843689 0.616119 0.197754 0.843781 0.662933 0.198883 0.843811 0.711823 0.199768 0.843903 0.762390 0.200836 0.843964 0.814240 0.201935 0.844055 0.867096 0.202728 0.844086 0.915527 0.203827 0.844177 0.000000 0.197571 0.842255 0.000000 0.198303 0.842316 0.000000 0.199188 0.842346 0.020386 0.200104 0.842438 0.048706 0.200897 0.842499 0.081879 0.201782 0.842560 0.109375 0.202606 0.842590 0.135010 0.203552 0.842682 0.158813 0.204285 0.842773 0.181244 0.205292 0.842804 0.202423 0.206085 0.842896 0.222870 0.207062 0.842957 0.242767 0.207886 0.842987 0.262604 0.208801 0.843079 0.282745 0.209808 0.843109 0.303345 0.210602 0.843201 0.324829 0.211578 0.843292 0.347778 0.212402 0.843323 0.372253 0.213409 0.843384 0.398712 0.214233 0.843475 0.427521 0.215179 0.843536 0.459106 0.216156 0.843628 0.493591 0.216949 0.843689 0.531586 0.217957 0.843781 0.572937 0.218781 0.843811 0.617035 0.219757 0.843903 0.663788 0.220673 0.843964 0.712616 0.221527 0.843994 0.763031 0.222534 0.844086 0.814758 0.223328 0.844177 0.867249 0.224274 0.844238 0.915527 0.225067 0.844299 0.000000 0.220001 0.842346 0.000000 0.220856 0.842438 0.000000 0.221497 0.842499 0.022430 0.222443 0.842560 0.052216 0.223114 0.842590 0.083954 0.223907 0.842682 0.111389 0.224701 0.842773 0.136627 0.225525 0.842804 0.160461 0.226257 0.842896 0.182617 0.227234 0.842957 0.203888 0.227905 0.842987 0.224091 0.228821 0.843079 0.243988 0.229553 0.843109 0.263794 0.230469 0.843201 0.283691 0.231201 0.843292 0.304413 0.232117 0.843323 0.325928 0.232819 0.843384 0.348755 0.233765 0.843475 0.373322 0.234497 0.843536 0.399811 0.235413 0.843628 0.428650 0.236176 0.843689 0.460022 0.237091 0.843781 0.494659 0.237793 0.843811 0.532623 0.238739 0.843903 0.573730 0.239502 0.843964 0.617981 0.240356 0.843994 0.664459 0.241119 0.844086 0.713135 0.242004 0.844177 0.763428 0.242798 0.844238 0.815063 0.243652 0.844299 0.867401 0.244446 0.844360 0.915527 0.245270 0.844421 0.000000 0.241119 0.842499 0.000000 0.241943 0.842560 0.000000 0.242554 0.842590 0.024506 0.243408 0.842682 0.056091 0.244019 0.842773 0.086121 0.244873 0.842804 0.113159 0.245544 0.842896 0.138397 0.246277 0.842957 0.161957 0.247009 0.842987 0.183990 0.247742 0.843079 0.205170 0.248535 0.843109 0.225281 0.249268 0.843201 0.245270 0.250061 0.843292 0.264832 0.250824 0.843323 0.284821 0.251556 0.843384 0.305511 0.252258 0.843475 0.326996 0.253143 0.843536 0.349823 0.253815 0.843628 0.374420 0.254669 0.843689 0.400909 0.255341 0.843781 0.429596 0.256256 0.843811 0.461121 0.256897 0.843903 0.495819 0.257782 0.843964 0.533722 0.258453 0.843994 0.574799 0.259338 0.844086 0.618958 0.259979 0.844177 0.665344 0.260864 0.844238 0.713928 0.261475 0.844299 0.764130 0.262268 0.844360 0.815308 0.263031 0.844421 0.867554 0.263702 0.844513 0.915527 0.264557 0.844604 0.000000 0.261414 0.842590 0.000000 0.261993 0.842682 0.000793 0.262817 0.842712 0.026794 0.263367 0.842804 0.059540 0.264191 0.842896 0.088226 0.264771 0.842957 0.115173 0.265625 0.842987 0.140167 0.266205 0.843079 0.163544 0.266907 0.843109 0.185638 0.267639 0.843201 0.206482 0.268250 0.843262 0.226685 0.269073 0.843323 0.246246 0.269714 0.843384 0.265991 0.270508 0.843475 0.285919 0.271149 0.843536 0.306641 0.272003 0.843628 0.328125 0.272614 0.843689 0.350922 0.273224 0.843750 0.375305 0.274048 0.843811 0.401794 0.274689 0.843903 0.430664 0.275513 0.843964 0.462219 0.276123 0.843994 0.496887 0.277008 0.844086 0.534698 0.277618 0.844177 0.575836 0.278442 0.844238 0.619720 0.279053 0.844299 0.666138 0.279663 0.844360 0.714417 0.280518 0.844421 0.764526 0.281097 0.844513 0.815735 0.281921 0.844604 0.867798 0.282532 0.844635 0.915527 0.283356 0.844696 0.000000 0.281006 0.842712 0.000000 0.281799 0.842804 0.002777 0.282349 0.842896 0.028992 0.282990 0.842957 0.061859 0.283691 0.842987 0.090515 0.284271 0.843079 0.117157 0.284973 0.843109 0.141937 0.285614 0.843201 0.165222 0.286224 0.843262 0.187012 0.287018 0.843323 0.207794 0.287567 0.843384 0.227814 0.288361 0.843475 0.247528 0.288971 0.843536 0.267090 0.289795 0.843628 0.287018 0.290375 0.843689 0.307709 0.290924 0.843750 0.329224 0.291718 0.843811 0.352051 0.292328 0.843903 0.376373 0.293152 0.843933 0.402924 0.293732 0.843994 0.431763 0.294495 0.844086 0.463287 0.295135 0.844147 0.497986 0.295715 0.844238 0.535736 0.296539 0.844299 0.576904 0.297089 0.844360 0.620636 0.297852 0.844421 0.666809 0.298492 0.844513 0.715210 0.299072 0.844604 0.765045 0.299866 0.844635 0.816101 0.300476 0.844696 0.868073 0.301208 0.844788 0.915527 0.301819 0.844818 0.000000 0.300507 0.842896 0.000000 0.301239 0.842957 0.004852 0.301788 0.842987 0.031281 0.302307 0.843018 0.064240 0.303070 0.843109 0.092682 0.303619 0.843201 0.119202 0.304382 0.843262 0.143829 0.304932 0.843323 0.166779 0.305511 0.843384 0.188416 0.306274 0.843475 0.209106 0.306854 0.843536 0.229248 0.307465 0.843628 0.248840 0.308167 0.843689 0.268250 0.308746 0.843750 0.288208 0.309509 0.843811 0.308777 0.310120 0.843903 0.330292 0.310822 0.843933 0.353088 0.311432 0.843994 0.377533 0.312012 0.844086 0.404053 0.312775 0.844147 0.432861 0.313385 0.844238 0.464417 0.314056 0.844299 0.498901 0.314728 0.844360 0.536713 0.315308 0.844421 0.577698 0.316071 0.844513 0.621613 0.316650 0.844604 0.667725 0.317383 0.844635 0.715729 0.317932 0.844696 0.765564 0.318481 0.844788 0.816406 0.319244 0.844818 0.868164 0.319824 0.844879 0.915527 0.320465 0.844971 0.000000 0.320068 0.842987 0.000000 0.320801 0.843018 0.007050 0.321350 0.843109 0.033539 0.321991 0.843201 0.066589 0.322632 0.843262 0.094849 0.323181 0.843323 0.121185 0.323914 0.843384 0.145477 0.324463 0.843445 0.168488 0.325012 0.843536 0.190063 0.325775 0.843628 0.210510 0.326294 0.843689 0.230499 0.326996 0.843750 0.249878 0.327637 0.843811 0.269409 0.328217 0.843903 0.289276 0.328949 0.843933 0.309906 0.329498 0.843994 0.331451 0.330048 0.844086 0.354218 0.330841 0.844147 0.378632 0.331360 0.844238 0.405121 0.332153 0.844299 0.434021 0.332703 0.844360 0.465515 0.333252 0.844421 0.500000 0.334015 0.844513 0.537842 0.334564 0.844604 0.578705 0.335327 0.844635 0.622375 0.335907 0.844696 0.668549 0.336426 0.844788 0.716461 0.337189 0.844818 0.765991 0.337738 0.844879 0.816650 0.338318 0.844971 0.868317 0.338989 0.845001 0.915527 0.339539 0.845093 0.000000 0.340393 0.843109 0.000000 0.340881 0.843201 0.009369 0.341400 0.843262 0.035950 0.342194 0.843323 0.069122 0.342682 0.843384 0.097137 0.343353 0.843445 0.123047 0.343964 0.843536 0.147339 0.344513 0.843628 0.170044 0.345215 0.843658 0.191498 0.345795 0.843750 0.211975 0.346344 0.843811 0.231750 0.347107 0.843903 0.251129 0.347626 0.843933 0.270569 0.348358 0.843994 0.290436 0.348969 0.844086 0.310791 0.349487 0.844147 0.332550 0.350250 0.844238 0.355347 0.350800 0.844299 0.379730 0.351471 0.844360 0.406250 0.352112 0.844421 0.435120 0.352631 0.844513 0.466614 0.353424 0.844604 0.501068 0.353943 0.844635 0.538910 0.354462 0.844696 0.579742 0.355225 0.844788 0.623291 0.355743 0.844818 0.669220 0.356476 0.844879 0.716980 0.357056 0.844940 0.766541 0.357574 0.845001 0.817169 0.358276 0.845093 0.868469 0.358826 0.845123 0.915527 0.359344 0.845215 0.000000 0.361420 0.843262 0.000000 0.361969 0.843323 0.011749 0.362457 0.843384 0.038208 0.363281 0.843445 0.071472 0.363770 0.843536 0.099335 0.364319 0.843628 0.125092 0.365021 0.843658 0.149170 0.365601 0.843750 0.171783 0.366272 0.843811 0.192932 0.366882 0.843842 0.213257 0.367432 0.843933 0.233002 0.368164 0.843994 0.252380 0.368683 0.844086 0.271729 0.369232 0.844147 0.291565 0.369995 0.844238 0.311951 0.370544 0.844299 0.333435 0.371246 0.844360 0.356323 0.371887 0.844421 0.380859 0.372375 0.844513 0.407349 0.373169 0.844543 0.436188 0.373657 0.844635 0.467743 0.374298 0.844696 0.502167 0.374969 0.844788 0.539978 0.375488 0.844818 0.580719 0.376129 0.844879 0.624207 0.376770 0.844940 0.669983 0.377258 0.845001 0.717743 0.378052 0.845093 0.766968 0.378571 0.845123 0.817444 0.379059 0.845215 0.868561 0.379791 0.845276 0.915527 0.380249 0.845306 0.000000 0.383575 0.843384 0.000000 0.384186 0.843445 0.014099 0.384857 0.843536 0.040588 0.385406 0.843628 0.073914 0.386139 0.843658 0.101501 0.386627 0.843750 0.127106 0.387207 0.843811 0.150879 0.387939 0.843842 0.173309 0.388489 0.843933 0.194336 0.389038 0.843994 0.214569 0.389801 0.844086 0.234253 0.390320 0.844147 0.253632 0.391083 0.844238 0.272858 0.391602 0.844299 0.292664 0.392151 0.844299 0.313049 0.392914 0.844421 0.334564 0.393463 0.844513 0.357422 0.394073 0.844543 0.381927 0.394775 0.844635 0.408478 0.395294 0.844696 0.437347 0.396057 0.844788 0.468842 0.396545 0.844818 0.503265 0.397095 0.844879 0.541016 0.397797 0.844940 0.581665 0.398376 0.845001 0.625183 0.398865 0.845093 0.670654 0.399628 0.845123 0.718231 0.400116 0.845215 0.767395 0.400726 0.845276 0.817657 0.401367 0.845306 0.868744 0.401886 0.845367 0.915527 0.402588 0.845459 0.000000 0.407471 0.843536 0.000000 0.408020 0.843628 0.016418 0.408569 0.843658 0.042816 0.409332 0.843750 0.076508 0.409821 0.843811 0.103729 0.410400 0.843842 0.129120 0.411133 0.843933 0.152740 0.411652 0.843994 0.174866 0.412354 0.844086 0.195923 0.412964 0.844147 0.215912 0.413513 0.844238 0.235474 0.414307 0.844299 0.254822 0.414825 0.844299 0.274048 0.415344 0.844421 0.293823 0.416138 0.844513 0.314148 0.416656 0.844543 0.335632 0.417328 0.844635 0.358521 0.417938 0.844696 0.383057 0.418488 0.844727 0.409576 0.419250 0.844818 0.438446 0.419739 0.844879 0.469940 0.420349 0.844940 0.504333 0.421051 0.845001 0.541870 0.421539 0.845093 0.582520 0.422119 0.845123 0.625854 0.422821 0.845215 0.671509 0.423309 0.845276 0.718994 0.424042 0.845306 0.767975 0.424530 0.845367 0.817963 0.425049 0.845459 0.868927 0.425751 0.845490 0.915527 0.426239 0.845612 0.000000 0.433044 0.843658 0.000000 0.433563 0.843750 0.018890 0.434387 0.843811 0.045227 0.434875 0.843842 0.078827 0.435638 0.843933 0.105896 0.436188 0.843994 0.131012 0.436737 0.844086 0.154388 0.437500 0.844147 0.176514 0.438049 0.844238 0.197296 0.438538 0.844299 0.217224 0.439362 0.844299 0.236694 0.439880 0.844421 0.255981 0.440582 0.844513 0.275177 0.441162 0.844543 0.294922 0.441711 0.844635 0.315308 0.442474 0.844696 0.336731 0.442993 0.844727 0.359528 0.443573 0.844818 0.384155 0.444305 0.844879 0.410645 0.444794 0.844940 0.439514 0.445465 0.845001 0.470917 0.446075 0.845093 0.505402 0.446655 0.845123 0.542908 0.447357 0.845215 0.583496 0.447845 0.845276 0.626740 0.448364 0.845306 0.672241 0.449066 0.845367 0.719482 0.449615 0.845459 0.768341 0.450073 0.845490 0.818268 0.450745 0.845612 0.869232 0.451294 0.845642 0.915527 0.451752 0.845673 0.000000 0.460999 0.843811 0.000000 0.461517 0.843842 0.021362 0.462250 0.843933 0.049011 0.462830 0.843994 0.081238 0.463318 0.844055 0.108093 0.464111 0.844147 0.132935 0.464600 0.844238 0.156250 0.465302 0.844238 0.178040 0.465912 0.844299 0.198669 0.466492 0.844421 0.218689 0.467133 0.844513 0.237946 0.467804 0.844543 0.257172 0.468323 0.844635 0.276337 0.469116 0.844696 0.296051 0.469604 0.844727 0.316376 0.470154 0.844818 0.337799 0.470886 0.844849 0.360596 0.471436 0.844940 0.385223 0.472168 0.845001 0.411713 0.472656 0.845032 0.440369 0.473206 0.845123 0.471863 0.473907 0.845215 0.506348 0.474487 0.845276 0.543884 0.474945 0.845306 0.584473 0.475708 0.845367 0.627625 0.476166 0.845459 0.672852 0.476685 0.845490 0.720154 0.477417 0.845612 0.768768 0.477875 0.845642 0.818665 0.478363 0.845673 0.869324 0.479065 0.845734 0.915527 0.479492 0.845764 0.000000 0.491272 0.843933 0.000000 0.491760 0.843994 0.023804 0.492554 0.844055 0.053314 0.493103 0.844147 0.083557 0.493774 0.844238 0.110291 0.494385 0.844238 0.134918 0.494934 0.844299 0.157867 0.495667 0.844421 0.179779 0.496216 0.844513 0.200256 0.496765 0.844543 0.220032 0.497498 0.844635 0.239166 0.498047 0.844696 0.258331 0.498627 0.844727 0.277435 0.499329 0.844818 0.297150 0.499847 0.844849 0.317444 0.500610 0.844940 0.338867 0.501160 0.845001 0.361664 0.501617 0.845032 0.386261 0.502380 0.845123 0.412750 0.502899 0.845215 0.441437 0.503387 0.845276 0.472900 0.504120 0.845306 0.507263 0.504608 0.845367 0.544922 0.505096 0.845459 0.585419 0.505829 0.845490 0.628265 0.506287 0.845612 0.673523 0.506805 0.845642 0.720612 0.507477 0.845673 0.769318 0.507935 0.845734 0.818878 0.508362 0.845764 0.869446 0.509064 0.845856 0.915527 0.509521 0.845917 0.000000 0.524414 0.844055 0.000885 0.524933 0.844147 0.026154 0.525513 0.844238 0.057526 0.526245 0.844238 0.086090 0.526764 0.844299 0.112305 0.527527 0.844421 0.136780 0.528046 0.844513 0.159668 0.528564 0.844543 0.181213 0.529327 0.844635 0.201660 0.529816 0.844696 0.221313 0.530579 0.844727 0.240387 0.531128 0.844818 0.259491 0.531616 0.844849 0.278564 0.532257 0.844940 0.298218 0.532898 0.845001 0.318542 0.533386 0.845032 0.339935 0.534119 0.845123 0.362732 0.534607 0.845215 0.387177 0.535156 0.845276 0.413635 0.535858 0.845276 0.442474 0.536346 0.845367 0.473938 0.536804 0.845459 0.508301 0.537476 0.845490 0.545898 0.537994 0.845612 0.586090 0.538483 0.845642 0.629150 0.539154 0.845673 0.674255 0.539642 0.845734 0.721161 0.540070 0.845764 0.769592 0.540649 0.845856 0.819153 0.541168 0.845917 0.869537 0.541626 0.845947 0.915527 0.541992 0.846008 0.000000 0.560394 0.844238 0.003082 0.561127 0.844238 0.028625 0.561646 0.844299 0.060608 0.562164 0.844421 0.088440 0.562866 0.844513 0.114502 0.563446 0.844543 0.138611 0.563995 0.844635 0.161438 0.564667 0.844635 0.182678 0.565155 0.844727 0.203003 0.565674 0.844818 0.222565 0.566406 0.844849 0.241638 0.566895 0.844940 0.260620 0.567444 0.845001 0.279694 0.568146 0.845032 0.299072 0.568573 0.845123 0.319580 0.569214 0.845184 0.341034 0.569763 0.845276 0.363770 0.570251 0.845276 0.388184 0.570892 0.845367 0.414703 0.571411 0.845459 0.443512 0.571869 0.845490 0.474976 0.572327 0.845612 0.509308 0.573029 0.845642 0.546631 0.573456 0.845673 0.587006 0.573883 0.845734 0.629822 0.574524 0.845764 0.674957 0.574951 0.845856 0.721741 0.575378 0.845917 0.769958 0.575989 0.845947 0.819397 0.576447 0.846008 0.869659 0.576874 0.846069 0.915527 0.577209 0.846100 0.000000 0.599243 0.844299 0.005402 0.599915 0.844421 0.031036 0.600433 0.844452 0.063049 0.600922 0.844543 0.090729 0.601624 0.844635 0.116425 0.602112 0.844635 0.140564 0.602570 0.844727 0.163055 0.603271 0.844818 0.184204 0.603729 0.844849 0.204376 0.604187 0.844940 0.223816 0.604889 0.845001 0.242737 0.605347 0.845032 0.261688 0.605804 0.845123 0.280762 0.606476 0.845184 0.300171 0.606903 0.845276 0.320618 0.607391 0.845276 0.341949 0.607880 0.845367 0.364746 0.608521 0.845398 0.389191 0.608917 0.845490 0.415741 0.609375 0.845551 0.444580 0.609955 0.845642 0.475861 0.610413 0.845673 0.510284 0.610809 0.845734 0.547577 0.611420 0.845764 0.587952 0.611847 0.845856 0.630615 0.612274 0.845917 0.675476 0.612640 0.845947 0.722137 0.613098 0.845978 0.770538 0.613617 0.846069 0.819824 0.613953 0.846100 0.869781 0.614349 0.846130 0.915527 0.614838 0.846222 0.000000 0.640594 0.844452 0.007751 0.641052 0.844543 0.033417 0.641510 0.844635 0.065674 0.642120 0.844635 0.093018 0.642578 0.844727 0.118500 0.643005 0.844818 0.142456 0.643494 0.844849 0.164673 0.644073 0.844940 0.185760 0.644501 0.845001 0.205658 0.644928 0.845032 0.225067 0.645599 0.845123 0.243927 0.645996 0.845184 0.262817 0.646423 0.845276 0.281860 0.646942 0.845276 0.301208 0.647430 0.845367 0.321472 0.647827 0.845398 0.342896 0.648224 0.845490 0.365662 0.648682 0.845551 0.390228 0.649231 0.845642 0.416718 0.649567 0.845673 0.445374 0.649933 0.845734 0.476776 0.650482 0.845764 0.510986 0.650879 0.845825 0.548523 0.651276 0.845917 0.588562 0.651611 0.845947 0.631378 0.652130 0.845978 0.676239 0.652496 0.846069 0.722839 0.652832 0.846100 0.770844 0.653137 0.846130 0.820007 0.653442 0.846222 0.869873 0.653931 0.846252 0.915527 0.654297 0.846283 0.000000 0.683716 0.844635 0.010193 0.684052 0.844635 0.035858 0.684723 0.844727 0.068085 0.685059 0.844818 0.095215 0.685425 0.844849 0.120544 0.685822 0.844940 0.144135 0.686432 0.844971 0.166351 0.686768 0.845032 0.187164 0.687134 0.845123 0.207092 0.687531 0.845184 0.226318 0.688080 0.845276 0.245148 0.688446 0.845276 0.263947 0.688812 0.845367 0.282928 0.689117 0.845398 0.302216 0.689484 0.845490 0.322479 0.690002 0.845551 0.343872 0.690338 0.845642 0.366638 0.690704 0.845673 0.391144 0.690979 0.845734 0.417603 0.691559 0.845764 0.446320 0.691803 0.845825 0.477722 0.692169 0.845917 0.511932 0.692474 0.845947 0.549316 0.692902 0.845978 0.589417 0.693298 0.846069 0.631958 0.693573 0.846100 0.676666 0.693817 0.846130 0.723175 0.694153 0.846161 0.771118 0.694550 0.846252 0.820190 0.694885 0.846283 0.869995 0.695129 0.846344 0.915527 0.695404 0.846375 0.000000 0.728363 0.844727 0.012573 0.728943 0.844818 0.038147 0.729218 0.844849 0.070526 0.729523 0.844940 0.097443 0.729858 0.844971 0.122559 0.730164 0.845032 0.145966 0.730621 0.845123 0.167847 0.730988 0.845184 0.188568 0.731262 0.845276 0.208496 0.731567 0.845276 0.227448 0.731873 0.845367 0.246185 0.732269 0.845398 0.264862 0.732666 0.845490 0.283722 0.732910 0.845551 0.303284 0.733185 0.845642 0.323486 0.733490 0.845673 0.344849 0.733887 0.845734 0.367615 0.734253 0.845764 0.391998 0.734497 0.845825 0.418427 0.734802 0.845917 0.447266 0.734985 0.845947 0.478668 0.735229 0.845978 0.512848 0.735748 0.846069 0.550049 0.735962 0.846100 0.590027 0.736176 0.846130 0.632721 0.736389 0.846161 0.677185 0.736633 0.846252 0.723755 0.736816 0.846283 0.771545 0.737091 0.846344 0.820404 0.737427 0.846375 0.870178 0.737671 0.846436 0.915527 0.737915 0.846466 0.000000 0.774323 0.844849 0.014893 0.774567 0.844940 0.040527 0.774902 0.844971 0.072937 0.775269 0.845032 0.099609 0.775482 0.845123 0.124512 0.775696 0.845184 0.147614 0.775940 0.845276 0.169434 0.776184 0.845276 0.190094 0.776459 0.845367 0.209686 0.776825 0.845398 0.228638 0.777069 0.845490 0.247284 0.777283 0.845551 0.265930 0.777527 0.845642 0.284790 0.777740 0.845673 0.304260 0.777924 0.845734 0.324463 0.778137 0.845764 0.345825 0.778381 0.845825 0.368561 0.778778 0.845917 0.392944 0.778931 0.845947 0.419403 0.779144 0.845978 0.448181 0.779297 0.846069 0.479370 0.779480 0.846100 0.513611 0.779663 0.846130 0.550903 0.779816 0.846161 0.590851 0.780151 0.846252 0.633240 0.780457 0.846283 0.677795 0.780579 0.846344 0.724152 0.780792 0.846375 0.771881 0.780884 0.846436 0.820648 0.781036 0.846466 0.870331 0.781219 0.846527 0.915527 0.781342 0.846558 0.000000 0.820984 0.844971 0.017212 0.821167 0.845032 0.042725 0.821472 0.845123 0.075378 0.821747 0.845184 0.101715 0.821869 0.845276 0.126282 0.822021 0.845276 0.149353 0.822174 0.845367 0.170959 0.822357 0.845398 0.191406 0.822479 0.845490 0.210938 0.822601 0.845551 0.229767 0.822754 0.845642 0.248383 0.822968 0.845673 0.266968 0.823273 0.845734 0.285767 0.823456 0.845764 0.305237 0.823578 0.845825 0.325256 0.823730 0.845917 0.346710 0.823792 0.845947 0.369385 0.823944 0.845978 0.393860 0.824066 0.846008 0.420288 0.824219 0.846100 0.448853 0.824310 0.846130 0.480225 0.824463 0.846161 0.514435 0.824615 0.846222 0.551544 0.824860 0.846283 0.591614 0.825012 0.846344 0.633942 0.825104 0.846375 0.678253 0.825195 0.846436 0.724457 0.825287 0.846466 0.772156 0.825409 0.846527 0.820984 0.825470 0.846558 0.870453 0.825562 0.846588 0.915527 0.825653 0.846588 0.000000 0.868347 0.845093 0.019592 0.868439 0.845184 0.045044 0.868469 0.845276 0.077637 0.868561 0.845276 0.103790 0.868652 0.845367 0.128174 0.868713 0.845398 0.150940 0.868774 0.845490 0.172394 0.868896 0.845551 0.192688 0.868958 0.845642 0.212189 0.869049 0.845673 0.230896 0.869110 0.845673 0.249451 0.869171 0.845764 0.268005 0.869202 0.845825 0.286743 0.869293 0.845917 0.306000 0.869354 0.845947 0.326141 0.869446 0.845978 0.347473 0.869446 0.846008 0.370209 0.869568 0.846100 0.394592 0.869781 0.846130 0.420959 0.869873 0.846161 0.449738 0.869934 0.846222 0.481110 0.869995 0.846283 0.515167 0.870087 0.846344 0.552338 0.870148 0.846375 0.592102 0.870178 0.846436 0.634369 0.870239 0.846466 0.678833 0.870270 0.846527 0.725006 0.870331 0.846558 0.772339 0.870361 0.846588 0.821106 0.870422 0.846588 0.870544 0.870422 0.846619 0.915527 0.870483 0.846649 0.000000 0.915527 0.845276 0.021790 0.915527 0.845276 0.048401 0.915527 0.845367 0.079895 0.915527 0.845398 0.105774 0.915527 0.845490 0.129883 0.915527 0.845551 0.152649 0.915527 0.845642 0.173798 0.915527 0.845673 0.193970 0.915527 0.845673 0.213287 0.915527 0.845764 0.232025 0.915527 0.845825 0.250519 0.915527 0.845917 0.268982 0.915527 0.845947 0.287689 0.915527 0.845978 0.306946 0.915527 0.846008 0.327057 0.915527 0.846100 0.348419 0.915527 0.846130 0.371063 0.915527 0.846161 0.395416 0.915527 0.846222 0.421875 0.915527 0.846252 0.450623 0.915527 0.846344 0.481781 0.915527 0.846375 0.515839 0.915527 0.846436 0.552948 0.915527 0.846466 0.592834 0.915527 0.846527 0.634979 0.915527 0.846558 0.679199 0.915527 0.846588 0.725250 0.915527 0.846588 0.772766 0.915527 0.846619 0.821228 0.915527 0.846649 0.870605 0.915527 0.846710 0.915527 0.915527 0.846741 0.000000 0.000000 0.879974 0.000000 0.000000 0.880005 0.000000 0.000000 0.880005 0.006042 0.000000 0.880035 0.033112 0.000000 0.880035 0.066742 0.000000 0.880035 0.095520 0.000000 0.880096 0.122528 0.000000 0.880127 0.147430 0.000000 0.880127 0.170868 0.000000 0.880188 0.192902 0.000000 0.880188 0.213959 0.000000 0.880249 0.234375 0.000000 0.880280 0.254578 0.000000 0.880341 0.274902 0.000000 0.880341 0.295563 0.000000 0.880341 0.317291 0.000000 0.880402 0.340027 0.000000 0.880402 0.364349 0.000000 0.880432 0.390717 0.000000 0.880463 0.419495 0.000000 0.880524 0.450958 0.000000 0.880524 0.485565 0.000000 0.880554 0.523743 0.000000 0.880615 0.565338 0.000000 0.880646 0.610107 0.000000 0.880676 0.657684 0.000000 0.880676 0.707458 0.000000 0.880707 0.759033 0.000916 0.880768 0.812012 0.002197 0.880798 0.865845 0.003571 0.880829 0.915527 0.005127 0.880890 0.000000 0.000000 0.880005 0.000000 0.000000 0.880035 0.000000 0.000000 0.880035 0.007629 0.000000 0.880035 0.034698 0.000000 0.880096 0.068451 0.000000 0.880096 0.097229 0.000000 0.880127 0.123901 0.000916 0.880188 0.148743 0.001984 0.880188 0.172119 0.003082 0.880249 0.194000 0.004211 0.880280 0.215057 0.005402 0.880341 0.235443 0.006653 0.880341 0.255524 0.007843 0.880341 0.275879 0.009155 0.880402 0.296509 0.010406 0.880402 0.318054 0.011749 0.880432 0.340973 0.013153 0.880463 0.365295 0.014587 0.880524 0.391724 0.015961 0.880524 0.420502 0.017334 0.880554 0.451996 0.018738 0.880615 0.486542 0.020142 0.880646 0.524597 0.021576 0.880676 0.566223 0.023163 0.880676 0.610901 0.024658 0.880707 0.658295 0.026093 0.880768 0.708008 0.027557 0.880798 0.759491 0.029053 0.880829 0.812378 0.030548 0.880890 0.865997 0.032196 0.880890 0.915527 0.033752 0.880920 0.000000 0.021454 0.880035 0.000000 0.022522 0.880035 0.000000 0.023621 0.880096 0.009277 0.024750 0.880096 0.036285 0.025909 0.880127 0.070343 0.027069 0.880188 0.098785 0.028290 0.880188 0.125458 0.029297 0.880249 0.150269 0.030548 0.880280 0.173370 0.031799 0.880280 0.195190 0.033051 0.880341 0.216187 0.034332 0.880341 0.236481 0.035614 0.880402 0.256531 0.036926 0.880402 0.276672 0.038239 0.880432 0.297455 0.039551 0.880463 0.319031 0.041016 0.880524 0.341827 0.042480 0.880524 0.366333 0.043793 0.880554 0.392731 0.045227 0.880615 0.421509 0.047516 0.880646 0.453003 0.049805 0.880676 0.487518 0.052368 0.880676 0.525604 0.054993 0.880707 0.567169 0.057678 0.880768 0.611877 0.059631 0.880798 0.659119 0.061218 0.880829 0.708740 0.062836 0.880890 0.759949 0.064606 0.880890 0.812622 0.066254 0.880920 0.866241 0.067871 0.880981 0.915527 0.069550 0.881012 0.000000 0.054932 0.880096 0.000000 0.057007 0.880096 0.000000 0.058960 0.880127 0.011047 0.060059 0.880188 0.038055 0.061218 0.880188 0.072235 0.062561 0.880249 0.100616 0.063904 0.880280 0.127045 0.065277 0.880280 0.151642 0.066589 0.880341 0.174622 0.067932 0.880341 0.196350 0.069366 0.880341 0.217163 0.070770 0.880402 0.237579 0.072144 0.880432 0.257538 0.073456 0.880463 0.277679 0.074921 0.880524 0.298492 0.076324 0.880524 0.320007 0.077789 0.880554 0.342804 0.079193 0.880615 0.367310 0.080719 0.880646 0.393768 0.082153 0.880646 0.422485 0.083710 0.880676 0.453979 0.085144 0.880707 0.488586 0.086670 0.880768 0.526642 0.088196 0.880798 0.568237 0.089722 0.880829 0.612793 0.091217 0.880890 0.660004 0.092804 0.880890 0.709320 0.094238 0.880920 0.760529 0.095825 0.880981 0.812958 0.097412 0.881012 0.866547 0.098846 0.881012 0.915527 0.100403 0.881073 0.000000 0.088379 0.880127 0.000000 0.089600 0.880188 0.000000 0.090790 0.880188 0.012787 0.092041 0.880249 0.039886 0.093292 0.880280 0.074005 0.094360 0.880280 0.102325 0.095612 0.880341 0.128510 0.096954 0.880341 0.152985 0.098206 0.880341 0.175873 0.099579 0.880402 0.197571 0.100861 0.880432 0.218323 0.102173 0.880463 0.238647 0.103333 0.880524 0.258606 0.104706 0.880524 0.278717 0.106110 0.880554 0.299469 0.107452 0.880615 0.321014 0.108856 0.880646 0.343842 0.110260 0.880646 0.368256 0.111603 0.880676 0.394653 0.113037 0.880707 0.423431 0.114441 0.880768 0.454956 0.115601 0.880798 0.489655 0.117065 0.880829 0.527679 0.118469 0.880890 0.569153 0.119843 0.880890 0.613495 0.121277 0.880920 0.660675 0.122650 0.880981 0.710052 0.124115 0.881012 0.760956 0.125519 0.881012 0.813416 0.126892 0.881073 0.866699 0.128357 0.881073 0.915527 0.129700 0.881104 0.000000 0.119171 0.880188 0.000000 0.120087 0.880249 0.000000 0.121246 0.880280 0.014648 0.122406 0.880280 0.041748 0.123474 0.880341 0.076019 0.124573 0.880341 0.104126 0.125793 0.880341 0.130249 0.127014 0.880402 0.154419 0.128113 0.880432 0.177216 0.129242 0.880463 0.198792 0.130493 0.880524 0.219482 0.131744 0.880524 0.239716 0.133026 0.880554 0.259674 0.134064 0.880615 0.279785 0.135345 0.880646 0.300415 0.136627 0.880646 0.322021 0.137878 0.880676 0.344849 0.139160 0.880707 0.369232 0.140320 0.880768 0.395599 0.141571 0.880798 0.424469 0.142853 0.880829 0.455963 0.144104 0.880829 0.490723 0.145416 0.880890 0.528748 0.146606 0.880920 0.570007 0.147766 0.880981 0.614441 0.149078 0.881012 0.661499 0.150360 0.881012 0.710602 0.151672 0.881012 0.761566 0.152740 0.881073 0.813721 0.154053 0.881104 0.866821 0.155334 0.881165 0.915527 0.156616 0.881195 0.000000 0.147491 0.880280 0.000000 0.148560 0.880280 0.000000 0.149445 0.880341 0.016602 0.150543 0.880341 0.043671 0.151642 0.880341 0.078003 0.152527 0.880402 0.106018 0.153656 0.880432 0.131836 0.154785 0.880463 0.156097 0.155701 0.880463 0.178741 0.156860 0.880524 0.200104 0.157990 0.880554 0.220673 0.158936 0.880615 0.240845 0.160095 0.880646 0.260773 0.161285 0.880646 0.280823 0.162415 0.880676 0.301422 0.163391 0.880707 0.323059 0.164581 0.880768 0.345886 0.165771 0.880798 0.370239 0.166748 0.880798 0.396729 0.167877 0.880829 0.425537 0.169067 0.880890 0.457062 0.170166 0.880920 0.491608 0.171234 0.880981 0.529785 0.172394 0.881012 0.571075 0.173584 0.881012 0.615417 0.174561 0.881012 0.662231 0.175751 0.881073 0.711334 0.176941 0.881104 0.762024 0.178101 0.881165 0.813965 0.179077 0.881195 0.867004 0.180206 0.881256 0.915527 0.181396 0.881256 0.000000 0.173737 0.880341 0.000000 0.174469 0.880341 0.000000 0.175507 0.880341 0.018707 0.176453 0.880402 0.045654 0.177338 0.880432 0.080109 0.178406 0.880463 0.107849 0.179199 0.880463 0.133606 0.180237 0.880524 0.157562 0.181274 0.880554 0.180115 0.182098 0.880615 0.201538 0.183167 0.880646 0.221832 0.184143 0.880646 0.242004 0.185120 0.880676 0.261841 0.186188 0.880707 0.281921 0.187042 0.880768 0.302399 0.188141 0.880798 0.324066 0.189209 0.880798 0.346954 0.190063 0.880829 0.371307 0.191162 0.880890 0.397766 0.192139 0.880920 0.426636 0.193115 0.880981 0.458160 0.194183 0.881012 0.492645 0.195221 0.881012 0.530640 0.196136 0.881012 0.572083 0.197235 0.881073 0.616394 0.198120 0.881104 0.663025 0.199219 0.881165 0.711945 0.200287 0.881195 0.762421 0.201141 0.881256 0.814331 0.202240 0.881256 0.867126 0.203217 0.881287 0.915527 0.204132 0.881348 0.000000 0.197784 0.880341 0.000000 0.198700 0.880402 0.000000 0.199432 0.880432 0.020691 0.200439 0.880463 0.049225 0.201141 0.880463 0.082214 0.202118 0.880524 0.109680 0.202850 0.880554 0.135223 0.203827 0.880615 0.159088 0.204712 0.880646 0.181458 0.205566 0.880646 0.202789 0.206573 0.880676 0.223175 0.207306 0.880707 0.243073 0.208313 0.880768 0.262939 0.209106 0.880798 0.282990 0.210114 0.880798 0.303467 0.210968 0.880829 0.325012 0.211884 0.880890 0.348022 0.212769 0.880920 0.372406 0.213654 0.880981 0.398865 0.214661 0.881012 0.427704 0.215485 0.881012 0.459259 0.216492 0.881012 0.493744 0.217407 0.881073 0.531708 0.218262 0.881104 0.573090 0.219238 0.881165 0.617126 0.220062 0.881195 0.663910 0.221069 0.881256 0.712677 0.221832 0.881256 0.763123 0.222778 0.881287 0.814819 0.223572 0.881348 0.867249 0.224579 0.881348 0.915527 0.225464 0.881409 0.000000 0.220245 0.880432 0.000000 0.221100 0.880463 0.000000 0.221771 0.880463 0.022797 0.222687 0.880524 0.053101 0.223358 0.880554 0.084381 0.224243 0.880615 0.111633 0.224945 0.880646 0.137054 0.225861 0.880646 0.160736 0.226562 0.880676 0.182953 0.227448 0.880707 0.204071 0.228180 0.880768 0.224274 0.229095 0.880798 0.244324 0.229797 0.880798 0.264099 0.230713 0.880829 0.283966 0.231415 0.880890 0.304565 0.232361 0.880920 0.326080 0.233063 0.880981 0.348877 0.234039 0.881012 0.373505 0.234741 0.881012 0.399994 0.235657 0.881012 0.428833 0.236420 0.881073 0.460358 0.237335 0.881104 0.494843 0.238251 0.881165 0.532806 0.238983 0.881195 0.573883 0.239960 0.881256 0.618103 0.240631 0.881256 0.664703 0.241516 0.881287 0.713257 0.242279 0.881348 0.763550 0.243195 0.881348 0.815125 0.243927 0.881409 0.867401 0.244843 0.881439 0.915527 0.245544 0.881470 0.000000 0.241455 0.880463 0.000000 0.242157 0.880524 0.000000 0.242920 0.880554 0.024994 0.243591 0.880615 0.056946 0.244263 0.880646 0.086517 0.245117 0.880646 0.113647 0.245758 0.880676 0.138702 0.246582 0.880707 0.162231 0.247253 0.880768 0.184448 0.248108 0.880798 0.205353 0.248779 0.880798 0.225708 0.249664 0.880829 0.245483 0.250305 0.880890 0.265045 0.251190 0.880920 0.285095 0.251831 0.880981 0.305695 0.252563 0.881012 0.327179 0.253387 0.881012 0.349976 0.254120 0.881012 0.374603 0.254944 0.881073 0.401062 0.255707 0.881104 0.429932 0.256500 0.881165 0.461487 0.257141 0.881195 0.495972 0.258026 0.881256 0.533905 0.258698 0.881256 0.574982 0.259552 0.881287 0.619049 0.260193 0.881348 0.665466 0.261108 0.881348 0.714020 0.261749 0.881409 0.764160 0.262634 0.881439 0.815399 0.263245 0.881470 0.867554 0.264130 0.881470 0.915527 0.264771 0.881531 0.000000 0.261627 0.880554 0.000000 0.262329 0.880615 0.001190 0.263031 0.880646 0.027130 0.263580 0.880646 0.059906 0.264435 0.880676 0.088715 0.265015 0.880707 0.115448 0.265808 0.880768 0.140564 0.266418 0.880798 0.163971 0.267273 0.880798 0.185822 0.267853 0.880829 0.206696 0.268463 0.880890 0.226929 0.269318 0.880920 0.246582 0.269897 0.880981 0.266266 0.270752 0.881012 0.286194 0.271393 0.881012 0.306793 0.272217 0.881012 0.328278 0.272827 0.881073 0.351105 0.273529 0.881104 0.375702 0.274323 0.881165 0.402191 0.274963 0.881195 0.431030 0.275726 0.881256 0.462585 0.276367 0.881256 0.497070 0.277222 0.881287 0.534973 0.277802 0.881348 0.575989 0.278687 0.881348 0.619995 0.279297 0.881409 0.666351 0.279999 0.881439 0.714539 0.280701 0.881470 0.764587 0.281311 0.881470 0.815857 0.282166 0.881531 0.867798 0.282776 0.881561 0.915527 0.283600 0.881622 0.000000 0.281250 0.880615 0.000000 0.281982 0.880646 0.003113 0.282593 0.880676 0.029449 0.283325 0.880707 0.062256 0.283936 0.880768 0.090851 0.284485 0.880798 0.117462 0.285278 0.880798 0.142365 0.285828 0.880829 0.165497 0.286652 0.880890 0.187286 0.287231 0.880920 0.208038 0.287811 0.880981 0.228180 0.288574 0.880981 0.247864 0.289154 0.881012 0.267426 0.290009 0.881012 0.287231 0.290558 0.881073 0.307861 0.291260 0.881104 0.329376 0.291962 0.881165 0.352173 0.292542 0.881195 0.376770 0.293335 0.881256 0.403320 0.293976 0.881256 0.432098 0.294769 0.881287 0.463470 0.295380 0.881348 0.498138 0.295898 0.881348 0.536011 0.296722 0.881409 0.577026 0.297333 0.881439 0.620728 0.298126 0.881470 0.666962 0.298706 0.881470 0.715332 0.299500 0.881531 0.765167 0.300110 0.881561 0.816162 0.300690 0.881622 0.868073 0.301453 0.881653 0.915527 0.302002 0.881653 0.000000 0.300690 0.880676 0.000000 0.301422 0.880707 0.005341 0.301941 0.880768 0.031647 0.302582 0.880798 0.064850 0.303253 0.880798 0.093079 0.303833 0.880829 0.119476 0.304596 0.880890 0.144073 0.305145 0.880920 0.167114 0.305878 0.880981 0.188751 0.306488 0.880981 0.209351 0.307007 0.881012 0.229431 0.307800 0.881012 0.249054 0.308380 0.881073 0.268433 0.309052 0.881104 0.288330 0.309753 0.881165 0.308990 0.310303 0.881195 0.330505 0.311096 0.881256 0.353271 0.311646 0.881256 0.377869 0.312439 0.881287 0.404358 0.313019 0.881348 0.433075 0.313599 0.881348 0.464569 0.314362 0.881409 0.499146 0.314941 0.881439 0.537018 0.315582 0.881470 0.578003 0.316284 0.881470 0.621704 0.316803 0.881531 0.667847 0.317596 0.881561 0.715912 0.318146 0.881622 0.765656 0.318695 0.881653 0.816467 0.319458 0.881653 0.868164 0.320038 0.881683 0.915527 0.320770 0.881744 0.000000 0.320312 0.880768 0.000000 0.321014 0.880768 0.007599 0.321564 0.880798 0.034027 0.322327 0.880829 0.067108 0.322845 0.880890 0.095276 0.323334 0.880920 0.121490 0.324097 0.880981 0.145966 0.324646 0.880981 0.168701 0.325226 0.881012 0.190277 0.325989 0.881012 0.210846 0.326538 0.881073 0.230682 0.327301 0.881104 0.250214 0.327850 0.881165 0.269623 0.328522 0.881195 0.289429 0.329163 0.881195 0.310089 0.329712 0.881256 0.331604 0.330475 0.881287 0.354401 0.331024 0.881348 0.378784 0.331604 0.881348 0.405426 0.332336 0.881409 0.434143 0.332916 0.881409 0.465668 0.333649 0.881439 0.500244 0.334198 0.881470 0.537994 0.334747 0.881531 0.578918 0.335571 0.881561 0.622681 0.336090 0.881622 0.668701 0.336639 0.881653 0.716614 0.337402 0.881653 0.766022 0.337921 0.881683 0.816772 0.338654 0.881744 0.868317 0.339203 0.881775 0.915527 0.339722 0.881836 0.000000 0.340546 0.880798 0.000000 0.341095 0.880829 0.009888 0.341675 0.880890 0.036255 0.342346 0.880920 0.069519 0.342865 0.880981 0.097473 0.343628 0.880981 0.123474 0.344147 0.881012 0.147614 0.344757 0.881012 0.170227 0.345459 0.881073 0.191681 0.345978 0.881104 0.212189 0.346619 0.881165 0.231934 0.347321 0.881195 0.251434 0.347839 0.881195 0.270813 0.348602 0.881256 0.290558 0.349121 0.881287 0.311127 0.349792 0.881348 0.332703 0.350464 0.881348 0.355469 0.351013 0.881409 0.379913 0.351776 0.881409 0.406372 0.352295 0.881439 0.435303 0.352814 0.881470 0.466797 0.353607 0.881531 0.501282 0.354156 0.881561 0.539032 0.354858 0.881622 0.579926 0.355408 0.881653 0.623383 0.355988 0.881653 0.669312 0.356720 0.881683 0.717102 0.357239 0.881744 0.766632 0.357727 0.881775 0.817200 0.358521 0.881836 0.868469 0.359039 0.881836 0.915527 0.359589 0.881866 0.000000 0.361633 0.880890 0.000000 0.362183 0.880920 0.012115 0.362762 0.880981 0.038696 0.363434 0.880981 0.071991 0.363983 0.881012 0.099670 0.364594 0.881012 0.125519 0.365234 0.881073 0.149506 0.365753 0.881104 0.172028 0.366516 0.881165 0.193268 0.367065 0.881195 0.213470 0.367645 0.881195 0.233154 0.368347 0.881256 0.252594 0.368927 0.881287 0.272003 0.369537 0.881348 0.291748 0.370209 0.881348 0.312195 0.370728 0.881409 0.333771 0.371521 0.881409 0.356598 0.372040 0.881439 0.380981 0.372620 0.881470 0.407501 0.373322 0.881531 0.436401 0.373871 0.881561 0.467896 0.374603 0.881622 0.502350 0.375153 0.881653 0.540100 0.375702 0.881653 0.580872 0.376434 0.881683 0.624329 0.376923 0.881744 0.670135 0.377472 0.881775 0.717865 0.378235 0.881836 0.767059 0.378723 0.881836 0.817505 0.379456 0.881866 0.868652 0.379944 0.881897 0.915527 0.380463 0.881927 0.000000 0.383759 0.880981 0.000000 0.384521 0.880981 0.014526 0.385040 0.881012 0.040955 0.385559 0.881012 0.074493 0.386322 0.881073 0.101868 0.386841 0.881104 0.127380 0.387421 0.881165 0.151184 0.388153 0.881195 0.173492 0.388672 0.881195 0.194733 0.389435 0.881256 0.214844 0.390015 0.881287 0.234375 0.390503 0.881348 0.253815 0.391266 0.881348 0.273041 0.391815 0.881409 0.292847 0.392365 0.881409 0.313385 0.393127 0.881439 0.334900 0.393677 0.881470 0.357697 0.394409 0.881531 0.382111 0.394958 0.881561 0.408630 0.395447 0.881622 0.437469 0.396210 0.881653 0.468994 0.396759 0.881653 0.503418 0.397430 0.881683 0.541199 0.398071 0.881744 0.581909 0.398560 0.881775 0.625305 0.399200 0.881836 0.670746 0.399811 0.881836 0.718323 0.400330 0.881866 0.767426 0.401031 0.881897 0.817749 0.401550 0.881927 0.868774 0.402069 0.881927 0.915527 0.402771 0.881989 0.000000 0.407684 0.881012 0.000000 0.408234 0.881012 0.016937 0.408905 0.881073 0.043365 0.409485 0.881104 0.076843 0.410034 0.881165 0.104095 0.410645 0.881195 0.129425 0.411346 0.881195 0.152985 0.411896 0.881256 0.175293 0.412659 0.881287 0.196167 0.413208 0.881348 0.216278 0.413818 0.881348 0.235657 0.414520 0.881409 0.255005 0.415039 0.881409 0.274231 0.415680 0.881439 0.293976 0.416321 0.881470 0.314331 0.416870 0.881531 0.335907 0.417603 0.881561 0.358826 0.418182 0.881622 0.383209 0.418701 0.881653 0.409698 0.419434 0.881653 0.438568 0.419952 0.881683 0.470093 0.420715 0.881744 0.504517 0.421234 0.881775 0.542053 0.421753 0.881836 0.582764 0.422516 0.881836 0.625977 0.423004 0.881866 0.671631 0.423523 0.881897 0.719025 0.424225 0.881927 0.768066 0.424744 0.881927 0.817993 0.425201 0.881989 0.868927 0.425934 0.882019 0.915527 0.426453 0.882050 0.000000 0.433228 0.881073 0.000000 0.433990 0.881104 0.019379 0.434570 0.881165 0.045624 0.435089 0.881195 0.079224 0.435852 0.881195 0.106232 0.436401 0.881256 0.131409 0.437042 0.881287 0.154846 0.437714 0.881348 0.176758 0.438232 0.881348 0.197540 0.438873 0.881409 0.217590 0.439545 0.881409 0.236877 0.440094 0.881439 0.256165 0.440826 0.881470 0.275360 0.441376 0.881531 0.295105 0.441986 0.881561 0.315430 0.442688 0.881622 0.336884 0.443176 0.881622 0.359680 0.443817 0.881653 0.384308 0.444489 0.881683 0.410797 0.445007 0.881744 0.439697 0.445770 0.881775 0.471191 0.446289 0.881836 0.505554 0.446808 0.881836 0.542999 0.447510 0.881866 0.583649 0.448029 0.881897 0.626862 0.448608 0.881927 0.672424 0.449310 0.881927 0.719543 0.449768 0.881989 0.768433 0.450256 0.882019 0.818390 0.450928 0.882050 0.869232 0.451447 0.882050 0.915527 0.451996 0.882080 0.000000 0.461182 0.881165 0.000000 0.461670 0.881195 0.021729 0.462463 0.881195 0.049927 0.462982 0.881256 0.081757 0.463562 0.881287 0.108429 0.464264 0.881348 0.133240 0.464844 0.881348 0.156525 0.465607 0.881409 0.178314 0.466125 0.881409 0.199066 0.466675 0.881439 0.218964 0.467438 0.881470 0.238251 0.467957 0.881531 0.257355 0.468506 0.881561 0.276489 0.469269 0.881622 0.296204 0.469818 0.881622 0.316528 0.470581 0.881653 0.337952 0.471100 0.881683 0.360748 0.471619 0.881744 0.385406 0.472351 0.881775 0.411896 0.472870 0.881775 0.440613 0.473389 0.881836 0.472015 0.474152 0.881866 0.506592 0.474640 0.881897 0.544037 0.475159 0.881927 0.584625 0.475861 0.881927 0.627747 0.476410 0.881989 0.672974 0.477020 0.882019 0.720245 0.477570 0.882050 0.769012 0.478058 0.882050 0.818695 0.478516 0.882080 0.869324 0.479218 0.882141 0.915527 0.479675 0.882141 0.000000 0.491425 0.881195 0.000000 0.492188 0.881256 0.024170 0.492737 0.881287 0.054108 0.493317 0.881348 0.084137 0.494019 0.881348 0.110565 0.494598 0.881409 0.135193 0.495209 0.881409 0.158325 0.495880 0.881439 0.179962 0.496399 0.881470 0.200531 0.496979 0.881531 0.220215 0.497711 0.881561 0.239410 0.498230 0.881622 0.258514 0.499023 0.881622 0.277618 0.499512 0.881653 0.297302 0.500061 0.881683 0.317657 0.500793 0.881744 0.339020 0.501312 0.881775 0.361786 0.501831 0.881775 0.386475 0.502594 0.881836 0.412964 0.503052 0.881866 0.441620 0.503632 0.881897 0.473053 0.504272 0.881927 0.507416 0.504791 0.881927 0.545044 0.505493 0.881989 0.585541 0.506012 0.882019 0.628448 0.506500 0.882050 0.673706 0.507141 0.882050 0.720703 0.507660 0.882080 0.769348 0.508118 0.882141 0.819000 0.508575 0.882141 0.869446 0.509247 0.882202 0.915527 0.509674 0.882233 0.000000 0.524597 0.881287 0.001343 0.525146 0.881348 0.026703 0.525848 0.881348 0.058563 0.526428 0.881348 0.086517 0.526947 0.881409 0.112732 0.527710 0.881439 0.137146 0.528198 0.881470 0.159943 0.528992 0.881531 0.181427 0.529510 0.881561 0.201904 0.530029 0.881622 0.221497 0.530762 0.881622 0.240692 0.531311 0.881653 0.259705 0.531799 0.881683 0.278717 0.532562 0.881744 0.298401 0.533081 0.881775 0.318695 0.533539 0.881775 0.340118 0.534302 0.881836 0.362885 0.534790 0.881866 0.387360 0.535370 0.881897 0.413818 0.536011 0.881927 0.442657 0.536499 0.881927 0.474091 0.536987 0.881989 0.508423 0.537689 0.882019 0.546021 0.538147 0.882050 0.586273 0.538635 0.882050 0.629272 0.539307 0.882080 0.674316 0.539795 0.882141 0.721344 0.540222 0.882141 0.769714 0.540894 0.882202 0.819153 0.541351 0.882233 0.869537 0.541748 0.882233 0.915527 0.542145 0.882294 0.000000 0.560577 0.881348 0.003601 0.561371 0.881348 0.029022 0.561829 0.881409 0.060974 0.562500 0.881439 0.088776 0.563141 0.881470 0.114838 0.563568 0.881531 0.139099 0.564362 0.881561 0.161743 0.564850 0.881622 0.183075 0.565338 0.881622 0.203247 0.565979 0.881653 0.222778 0.566559 0.881683 0.241943 0.567078 0.881744 0.260803 0.567780 0.881775 0.279877 0.568268 0.881775 0.299469 0.568756 0.881836 0.319733 0.569489 0.881866 0.341156 0.569916 0.881897 0.363953 0.570435 0.881927 0.388336 0.571136 0.881927 0.414825 0.571625 0.881989 0.443695 0.572052 0.882019 0.475128 0.572540 0.882050 0.509430 0.573151 0.882050 0.546814 0.573608 0.882080 0.587158 0.574097 0.882141 0.630066 0.574707 0.882141 0.675079 0.575104 0.882202 0.721863 0.575531 0.882233 0.770020 0.576172 0.882233 0.819519 0.576599 0.882294 0.869720 0.576996 0.882294 0.915527 0.577362 0.882294 0.000000 0.599579 0.881409 0.005920 0.600159 0.881439 0.031433 0.600616 0.881470 0.063599 0.601166 0.881531 0.091095 0.601807 0.881561 0.116943 0.602264 0.881622 0.140839 0.602783 0.881622 0.163300 0.603455 0.881653 0.184540 0.603912 0.881683 0.204681 0.604462 0.881744 0.224030 0.605103 0.881775 0.243073 0.605560 0.881775 0.261963 0.606018 0.881836 0.280945 0.606689 0.881866 0.300476 0.607117 0.881897 0.320770 0.607513 0.881927 0.342194 0.608154 0.881927 0.364960 0.608673 0.881989 0.389404 0.609070 0.882019 0.415894 0.609497 0.882050 0.444702 0.610107 0.882050 0.476105 0.610535 0.882080 0.510406 0.610992 0.882141 0.547699 0.611633 0.882141 0.588074 0.612030 0.882202 0.630707 0.612427 0.882233 0.675598 0.612762 0.882233 0.722260 0.613403 0.882294 0.770538 0.613739 0.882294 0.819885 0.614105 0.882294 0.869781 0.614471 0.882355 0.915527 0.615051 0.882355 0.000000 0.640778 0.881470 0.008270 0.641205 0.881531 0.033936 0.641663 0.881561 0.066101 0.642334 0.881622 0.093384 0.642761 0.881622 0.118896 0.643188 0.881653 0.142731 0.643860 0.881683 0.165070 0.644257 0.881744 0.185974 0.644684 0.881775 0.205994 0.645142 0.881775 0.225220 0.645721 0.881836 0.244324 0.646149 0.881866 0.263092 0.646545 0.881897 0.282013 0.647186 0.881927 0.301483 0.647583 0.881927 0.321686 0.647980 0.881989 0.343170 0.648346 0.882019 0.365967 0.648956 0.882050 0.390381 0.649353 0.882050 0.416870 0.649689 0.882080 0.445709 0.650116 0.882141 0.476959 0.650696 0.882141 0.511200 0.651001 0.882202 0.548615 0.651398 0.882233 0.588745 0.651733 0.882233 0.631531 0.652283 0.882294 0.676331 0.652618 0.882294 0.722900 0.652924 0.882294 0.770874 0.653259 0.882355 0.820068 0.653564 0.882355 0.869873 0.654114 0.882385 0.915527 0.654449 0.882416 0.000000 0.683868 0.881561 0.010529 0.684235 0.881622 0.036224 0.684845 0.881622 0.068512 0.685211 0.881653 0.095520 0.685516 0.881683 0.120819 0.686005 0.881744 0.144531 0.686523 0.881775 0.166565 0.686920 0.881775 0.187347 0.687225 0.881836 0.207428 0.687775 0.881866 0.226501 0.688171 0.881897 0.245453 0.688568 0.881927 0.264160 0.688904 0.881927 0.283051 0.689209 0.881989 0.302399 0.689819 0.882019 0.322632 0.690125 0.882050 0.344025 0.690491 0.882050 0.366791 0.690826 0.882080 0.391357 0.691223 0.882141 0.417816 0.691681 0.882141 0.446472 0.691956 0.882202 0.477814 0.692261 0.882233 0.512085 0.692566 0.882233 0.549591 0.693146 0.882294 0.589539 0.693390 0.882294 0.632111 0.693665 0.882294 0.676758 0.694000 0.882355 0.723236 0.694214 0.882355 0.771179 0.694733 0.882385 0.820221 0.694977 0.882416 0.869995 0.695221 0.882416 0.915527 0.695465 0.882477 0.000000 0.728546 0.881622 0.012909 0.729034 0.881653 0.038635 0.729340 0.881683 0.071045 0.729614 0.881744 0.097748 0.729919 0.881775 0.122864 0.730225 0.881775 0.146271 0.730804 0.881836 0.168243 0.731079 0.881866 0.188965 0.731415 0.881897 0.208679 0.731659 0.881897 0.227661 0.731964 0.881927 0.246399 0.732513 0.881989 0.265106 0.732758 0.882019 0.284027 0.733032 0.882050 0.303436 0.733307 0.882050 0.323639 0.733582 0.882080 0.345001 0.734070 0.882141 0.367737 0.734344 0.882141 0.392273 0.734589 0.882202 0.418640 0.734863 0.882233 0.447357 0.735077 0.882233 0.478790 0.735413 0.882294 0.513000 0.735779 0.882294 0.550201 0.736053 0.882294 0.590271 0.736267 0.882355 0.632843 0.736450 0.882355 0.677368 0.736725 0.882385 0.723816 0.736908 0.882385 0.771637 0.737183 0.882416 0.820435 0.737518 0.882477 0.870178 0.737793 0.882477 0.915527 0.737946 0.882507 0.000000 0.774414 0.881683 0.015320 0.774689 0.881744 0.040833 0.775116 0.881775 0.073425 0.775360 0.881775 0.099915 0.775574 0.881836 0.124847 0.775818 0.881866 0.147980 0.776062 0.881897 0.169769 0.776215 0.881897 0.190308 0.776550 0.881927 0.209900 0.776917 0.881989 0.228851 0.777161 0.882019 0.247528 0.777374 0.882019 0.266083 0.777618 0.882050 0.284973 0.777802 0.882080 0.304413 0.778015 0.882141 0.324615 0.778168 0.882141 0.345978 0.778564 0.882202 0.368744 0.778809 0.882233 0.393066 0.778992 0.882233 0.419525 0.779205 0.882294 0.448334 0.779388 0.882294 0.479584 0.779572 0.882294 0.513885 0.779755 0.882355 0.551056 0.779968 0.882355 0.590942 0.780212 0.882385 0.633331 0.780487 0.882385 0.677887 0.780670 0.882416 0.724182 0.780792 0.882477 0.771912 0.780945 0.882477 0.820740 0.781128 0.882507 0.870392 0.781250 0.882507 0.915527 0.781403 0.882568 0.000000 0.821045 0.881775 0.017731 0.821259 0.881775 0.043243 0.821564 0.881836 0.075775 0.821808 0.881866 0.102020 0.821899 0.881897 0.126709 0.822052 0.881897 0.149628 0.822266 0.881927 0.171173 0.822388 0.881989 0.191650 0.822510 0.882019 0.211151 0.822693 0.882019 0.230042 0.822815 0.882050 0.248657 0.823120 0.882080 0.267090 0.823364 0.882080 0.285919 0.823456 0.882141 0.305420 0.823608 0.882202 0.325531 0.823792 0.882233 0.346893 0.823853 0.882233 0.369629 0.823975 0.882294 0.394012 0.824127 0.882294 0.420441 0.824249 0.882294 0.449097 0.824402 0.882355 0.480347 0.824463 0.882355 0.514526 0.824615 0.882385 0.551666 0.824921 0.882385 0.591705 0.825043 0.882416 0.634033 0.825165 0.882416 0.678284 0.825256 0.882477 0.724518 0.825378 0.882507 0.772186 0.825439 0.882507 0.820984 0.825531 0.882568 0.870514 0.825623 0.882568 0.915527 0.825714 0.882568 0.000000 0.868378 0.881836 0.019928 0.868439 0.881866 0.045380 0.868530 0.881897 0.077972 0.868622 0.881897 0.104126 0.868652 0.881927 0.128479 0.868744 0.881989 0.151276 0.868835 0.882019 0.172607 0.868896 0.882019 0.192932 0.868988 0.882050 0.212341 0.869049 0.882080 0.231049 0.869110 0.882080 0.249603 0.869171 0.882141 0.268127 0.869263 0.882202 0.286896 0.869293 0.882233 0.306122 0.869385 0.882233 0.326294 0.869446 0.882294 0.347656 0.869568 0.882294 0.370331 0.869720 0.882294 0.394806 0.869781 0.882355 0.421112 0.869934 0.882355 0.449860 0.869995 0.882385 0.481171 0.870087 0.882385 0.515350 0.870087 0.882416 0.552429 0.870148 0.882416 0.592224 0.870178 0.882477 0.634460 0.870270 0.882507 0.678925 0.870331 0.882507 0.725037 0.870361 0.882568 0.772400 0.870361 0.882568 0.821106 0.870422 0.882568 0.870544 0.870422 0.882599 0.915527 0.870483 0.882599 0.000000 0.915527 0.881897 0.022308 0.915527 0.881897 0.049011 0.915527 0.881927 0.080200 0.915527 0.881989 0.106140 0.915527 0.882019 0.130341 0.915527 0.882019 0.152924 0.915527 0.882050 0.174164 0.915527 0.882080 0.194153 0.915527 0.882080 0.213470 0.915527 0.882141 0.232147 0.915527 0.882202 0.250610 0.915527 0.882233 0.269104 0.915527 0.882233 0.287872 0.915527 0.882294 0.307098 0.915527 0.882294 0.327179 0.915527 0.882294 0.348511 0.915527 0.882355 0.371216 0.915527 0.882355 0.395508 0.915527 0.882385 0.421967 0.915527 0.882385 0.450714 0.915527 0.882416 0.481964 0.915527 0.882416 0.515961 0.915527 0.882477 0.553131 0.915527 0.882507 0.592926 0.915527 0.882507 0.635132 0.915527 0.882568 0.679260 0.915527 0.882568 0.725372 0.915527 0.882568 0.772827 0.915527 0.882599 0.821228 0.915527 0.882599 0.870605 0.915527 0.882660 0.915527 0.915527 0.882660 0.000000 0.000000 0.915527 0.000000 0.000000 0.915527 0.000000 0.000000 0.915527 0.006287 0.000000 0.915527 0.033325 0.000000 0.915527 0.067078 0.000000 0.915527 0.095917 0.000000 0.915527 0.122772 0.000000 0.915527 0.147675 0.000000 0.915527 0.171082 0.000000 0.915527 0.193146 0.000000 0.915527 0.214233 0.000000 0.915527 0.234650 0.000000 0.915527 0.254852 0.000000 0.915527 0.275024 0.000000 0.915527 0.295807 0.000000 0.915527 0.317413 0.000000 0.915527 0.340149 0.000000 0.915527 0.364471 0.000000 0.915527 0.390808 0.000000 0.915527 0.419617 0.000000 0.915527 0.451111 0.000000 0.915527 0.485809 0.000000 0.915527 0.523895 0.000000 0.915527 0.565582 0.000000 0.915527 0.610352 0.000000 0.915527 0.657776 0.000000 0.915527 0.707611 0.000061 0.915527 0.759155 0.001312 0.915527 0.812134 0.002808 0.915527 0.865906 0.004211 0.915527 0.915527 0.005585 0.915527 0.000000 0.000000 0.915527 0.000000 0.000000 0.915527 0.000000 0.000000 0.915527 0.007904 0.000000 0.915527 0.034973 0.000000 0.915527 0.068909 0.000000 0.915527 0.097504 0.000244 0.915527 0.124146 0.001251 0.915527 0.149109 0.002350 0.915527 0.172302 0.003448 0.915527 0.194183 0.004639 0.915527 0.215332 0.005768 0.915527 0.235596 0.007050 0.915527 0.255798 0.008331 0.915527 0.276031 0.009644 0.915527 0.296631 0.010986 0.915527 0.318359 0.012329 0.915527 0.341156 0.013641 0.915527 0.365448 0.015045 0.915527 0.391846 0.016418 0.915527 0.420624 0.017761 0.915527 0.452148 0.019287 0.915527 0.486755 0.020752 0.915527 0.524811 0.022156 0.915527 0.566376 0.023651 0.915527 0.611053 0.025085 0.915527 0.658478 0.026581 0.915527 0.708099 0.028198 0.915527 0.759583 0.029694 0.915527 0.812439 0.031189 0.915527 0.866028 0.032684 0.915527 0.915527 0.034180 0.915527 0.000000 0.021851 0.915527 0.000000 0.022858 0.915527 0.000000 0.024017 0.915527 0.009552 0.025085 0.915527 0.036713 0.026276 0.915527 0.070618 0.027435 0.915527 0.099213 0.028656 0.915527 0.125793 0.029877 0.915527 0.150482 0.031097 0.915527 0.173523 0.032349 0.915527 0.195343 0.033630 0.915527 0.216431 0.034882 0.915527 0.236633 0.036194 0.915527 0.256683 0.037537 0.915527 0.276978 0.038788 0.915527 0.297577 0.040192 0.915527 0.319153 0.041565 0.915527 0.342072 0.042908 0.915527 0.366455 0.044312 0.915527 0.392883 0.045715 0.915527 0.421661 0.048157 0.915527 0.453186 0.050598 0.915527 0.487671 0.053223 0.915527 0.525757 0.055908 0.915527 0.567322 0.058716 0.915527 0.612000 0.060333 0.915527 0.659241 0.061920 0.915527 0.708893 0.063568 0.915527 0.760132 0.065186 0.915527 0.812683 0.066803 0.915527 0.866241 0.068420 0.915527 0.915527 0.070038 0.915527 0.000000 0.055573 0.915527 0.000000 0.057770 0.915527 0.000000 0.059326 0.915527 0.011261 0.060516 0.915527 0.038544 0.061829 0.915527 0.072479 0.062988 0.915527 0.100861 0.064331 0.915527 0.127289 0.065704 0.915527 0.151855 0.066986 0.915527 0.174866 0.068359 0.915527 0.196594 0.069794 0.915527 0.217438 0.071228 0.915527 0.237701 0.072601 0.915527 0.257721 0.074036 0.915527 0.277893 0.075500 0.915527 0.298615 0.076935 0.915527 0.320129 0.078400 0.915527 0.342957 0.079865 0.915527 0.367493 0.081360 0.915527 0.393890 0.082794 0.915527 0.422729 0.084381 0.915527 0.454193 0.085876 0.915527 0.488708 0.087341 0.915527 0.526764 0.088898 0.915527 0.568390 0.090424 0.915527 0.612915 0.091919 0.915527 0.660095 0.093445 0.915527 0.709412 0.094971 0.915527 0.760620 0.096497 0.915527 0.813110 0.098022 0.915527 0.866547 0.099548 0.915527 0.915527 0.101074 0.915527 0.000000 0.088989 0.915527 0.000000 0.090118 0.915527 0.000000 0.091156 0.915527 0.013062 0.092438 0.915527 0.040314 0.093689 0.915527 0.074524 0.094940 0.915527 0.102692 0.096191 0.915527 0.128998 0.097412 0.915527 0.153259 0.098602 0.915527 0.176086 0.099945 0.915527 0.197968 0.101288 0.915527 0.218567 0.102600 0.915527 0.238800 0.103973 0.915527 0.258759 0.105255 0.915527 0.278870 0.106537 0.915527 0.299622 0.107849 0.915527 0.321167 0.109253 0.915527 0.343964 0.110657 0.915527 0.368530 0.112061 0.915527 0.394958 0.113464 0.915527 0.423737 0.114838 0.915527 0.455292 0.116272 0.915527 0.489746 0.117706 0.915527 0.527802 0.119110 0.915527 0.569366 0.120300 0.915527 0.613739 0.121704 0.915527 0.660767 0.123108 0.915527 0.710175 0.124542 0.915527 0.761017 0.125946 0.915527 0.813477 0.127411 0.915527 0.866699 0.128723 0.915527 0.915527 0.130157 0.915527 0.000000 0.119446 0.915527 0.000000 0.120514 0.915527 0.000000 0.121613 0.915527 0.015106 0.122772 0.915527 0.042175 0.123962 0.915527 0.076538 0.125122 0.915527 0.104340 0.126129 0.915527 0.130554 0.127380 0.915527 0.154846 0.128601 0.915527 0.177612 0.129852 0.915527 0.199127 0.130890 0.915527 0.219818 0.132141 0.915527 0.239929 0.133392 0.915527 0.259827 0.134705 0.915527 0.279907 0.135895 0.915527 0.300690 0.137024 0.915527 0.322205 0.138275 0.915527 0.345001 0.139526 0.915527 0.369507 0.140869 0.915527 0.395966 0.141968 0.915527 0.424683 0.143250 0.915527 0.456146 0.144531 0.915527 0.490875 0.145813 0.915527 0.528900 0.147125 0.915527 0.570129 0.148346 0.915527 0.614624 0.149475 0.915527 0.661621 0.150787 0.915527 0.710663 0.152069 0.915527 0.761719 0.153351 0.915527 0.813812 0.154633 0.915527 0.866821 0.155701 0.915527 0.915527 0.156982 0.915527 0.000000 0.147797 0.915527 0.000000 0.148895 0.915527 0.000000 0.149994 0.915527 0.017029 0.150879 0.915527 0.044159 0.151978 0.915527 0.078369 0.152985 0.915527 0.106262 0.153992 0.915527 0.132233 0.155151 0.915527 0.156311 0.156250 0.915527 0.178986 0.157227 0.915527 0.200470 0.158356 0.915527 0.220978 0.159515 0.915527 0.241028 0.160461 0.915527 0.260925 0.161621 0.915527 0.280975 0.162781 0.915527 0.301727 0.163788 0.915527 0.323242 0.164886 0.915527 0.346069 0.166107 0.915527 0.370514 0.167267 0.915527 0.396973 0.168213 0.915527 0.425690 0.169434 0.915527 0.457245 0.170593 0.915527 0.491913 0.171753 0.915527 0.529938 0.172760 0.915527 0.571198 0.173950 0.915527 0.615540 0.175110 0.915527 0.662537 0.176086 0.915527 0.711517 0.177246 0.915527 0.762146 0.178436 0.915527 0.814056 0.179443 0.915527 0.867004 0.180573 0.915527 0.915527 0.181732 0.915527 0.000000 0.174011 0.915527 0.000000 0.174957 0.915527 0.000000 0.175781 0.915527 0.018982 0.176849 0.915527 0.046478 0.177643 0.915527 0.080444 0.178650 0.915527 0.108215 0.179657 0.915527 0.133911 0.180542 0.915527 0.157776 0.181610 0.915527 0.180328 0.182434 0.915527 0.201691 0.183502 0.915527 0.222198 0.184601 0.915527 0.242188 0.185455 0.915527 0.262054 0.186493 0.915527 0.282043 0.187592 0.915527 0.302551 0.188446 0.915527 0.324310 0.189545 0.915527 0.347137 0.190369 0.915527 0.371490 0.191467 0.915527 0.397949 0.192566 0.915527 0.426819 0.193420 0.915527 0.458313 0.194519 0.915527 0.492859 0.195618 0.915527 0.530823 0.196472 0.915527 0.572174 0.197571 0.915527 0.616547 0.198608 0.915527 0.663147 0.199524 0.915527 0.712006 0.200562 0.915527 0.762604 0.201447 0.915527 0.814392 0.202545 0.915527 0.867126 0.203613 0.915527 0.915527 0.204437 0.915527 0.000000 0.198059 0.915527 0.000000 0.199005 0.915527 0.000000 0.199707 0.915527 0.021149 0.200653 0.915527 0.050079 0.201416 0.915527 0.082550 0.202362 0.915527 0.110077 0.203278 0.915527 0.135681 0.204132 0.915527 0.159485 0.205078 0.915527 0.181732 0.205872 0.915527 0.202972 0.206879 0.915527 0.223450 0.207611 0.915527 0.243347 0.208588 0.915527 0.263123 0.209442 0.915527 0.283142 0.210358 0.915527 0.303650 0.211365 0.915527 0.325195 0.212189 0.915527 0.348145 0.213165 0.915527 0.372589 0.213959 0.915527 0.399048 0.214935 0.915527 0.427887 0.215912 0.915527 0.459442 0.216797 0.915527 0.493988 0.217773 0.915527 0.531860 0.218536 0.915527 0.573242 0.219513 0.915527 0.617249 0.220337 0.915527 0.664062 0.221375 0.915527 0.712799 0.222260 0.915527 0.763214 0.223114 0.915527 0.814880 0.224060 0.915527 0.867310 0.224854 0.915527 0.915527 0.225861 0.915527 0.000000 0.220551 0.915527 0.000000 0.221375 0.915527 0.000000 0.222107 0.915527 0.023254 0.222931 0.915527 0.053680 0.223602 0.915527 0.084686 0.224487 0.915527 0.111938 0.225189 0.915527 0.137329 0.226135 0.915527 0.160950 0.226898 0.915527 0.183258 0.227722 0.915527 0.204285 0.228546 0.915527 0.224670 0.229340 0.915527 0.244507 0.230072 0.915527 0.264221 0.231018 0.915527 0.284271 0.231873 0.915527 0.304749 0.232666 0.915527 0.326233 0.233582 0.915527 0.349243 0.234314 0.915527 0.373657 0.235229 0.915527 0.400146 0.235931 0.915527 0.428986 0.236908 0.915527 0.460541 0.237610 0.915527 0.494995 0.238525 0.915527 0.532990 0.239288 0.915527 0.574219 0.240204 0.915527 0.618195 0.240936 0.915527 0.664917 0.241852 0.915527 0.713318 0.242554 0.915527 0.763611 0.243469 0.915527 0.815155 0.244171 0.915527 0.867462 0.245056 0.915527 0.915527 0.245819 0.915527 0.000000 0.241760 0.915527 0.000000 0.242371 0.915527 0.000000 0.243256 0.915527 0.025330 0.243866 0.915527 0.057617 0.244690 0.915527 0.086823 0.245361 0.915527 0.113922 0.246002 0.915527 0.139160 0.246857 0.915527 0.162537 0.247498 0.915527 0.184662 0.248352 0.915527 0.205566 0.248993 0.915527 0.225891 0.249878 0.915527 0.245667 0.250549 0.915527 0.265381 0.251434 0.915527 0.285370 0.252075 0.915527 0.305817 0.252960 0.915527 0.327301 0.253601 0.915527 0.350250 0.254517 0.915527 0.374786 0.255188 0.915527 0.401215 0.256073 0.915527 0.430115 0.256744 0.915527 0.461609 0.257477 0.915527 0.496124 0.258270 0.915527 0.534058 0.259064 0.915527 0.575134 0.259796 0.915527 0.619232 0.260620 0.915527 0.665588 0.261353 0.915527 0.714111 0.261993 0.915527 0.764252 0.262878 0.915527 0.815491 0.263489 0.915527 0.867615 0.264404 0.915527 0.915527 0.265015 0.915527 0.000000 0.261841 0.915527 0.000000 0.262665 0.915527 0.001495 0.263184 0.915527 0.027649 0.264038 0.915527 0.060425 0.264648 0.915527 0.088989 0.265228 0.915527 0.115936 0.266083 0.915527 0.140778 0.266663 0.915527 0.164185 0.267456 0.915527 0.186035 0.268097 0.915527 0.206909 0.268890 0.915527 0.227142 0.269531 0.915527 0.246887 0.270264 0.915527 0.266541 0.270966 0.915527 0.286469 0.271606 0.915527 0.306976 0.272430 0.915527 0.328430 0.273041 0.915527 0.351379 0.273926 0.915527 0.375885 0.274536 0.915527 0.402374 0.275360 0.915527 0.431213 0.276001 0.915527 0.462738 0.276733 0.915527 0.497223 0.277435 0.915527 0.535126 0.278046 0.915527 0.576141 0.278900 0.915527 0.620148 0.279541 0.915527 0.666443 0.280365 0.915527 0.714722 0.280945 0.915527 0.764648 0.281769 0.915527 0.815887 0.282379 0.915527 0.867920 0.283112 0.915527 0.915527 0.283844 0.915527 0.000000 0.281494 0.915527 0.000000 0.282227 0.915527 0.003571 0.282776 0.915527 0.029816 0.283569 0.915527 0.062775 0.284119 0.915527 0.091187 0.284698 0.915527 0.117981 0.285492 0.915527 0.142670 0.286041 0.915527 0.165710 0.286865 0.915527 0.187531 0.287415 0.915527 0.208405 0.288239 0.915527 0.228394 0.288818 0.915527 0.248016 0.289490 0.915527 0.267700 0.290192 0.915527 0.287476 0.290802 0.915527 0.308075 0.291565 0.915527 0.329529 0.292206 0.915527 0.352356 0.292908 0.915527 0.376953 0.293549 0.915527 0.403442 0.294159 0.915527 0.432343 0.294983 0.915527 0.463684 0.295563 0.915527 0.498322 0.296356 0.915527 0.536224 0.296936 0.915527 0.577179 0.297516 0.915527 0.620880 0.298340 0.915527 0.667114 0.298920 0.915527 0.715424 0.299744 0.915527 0.765289 0.300293 0.915527 0.816193 0.301086 0.915527 0.868103 0.301636 0.915527 0.915527 0.302216 0.915527 0.000000 0.301117 0.915527 0.000000 0.301636 0.915527 0.005737 0.302155 0.915527 0.032166 0.302917 0.915527 0.065186 0.303467 0.915527 0.093445 0.304047 0.915527 0.119812 0.304810 0.915527 0.144379 0.305359 0.915527 0.167450 0.306122 0.915527 0.189087 0.306732 0.915527 0.209717 0.307220 0.915527 0.229584 0.308044 0.915527 0.249237 0.308594 0.915527 0.268738 0.309357 0.915527 0.288574 0.309967 0.915527 0.309113 0.310547 0.915527 0.330658 0.311310 0.915527 0.353424 0.311859 0.915527 0.378082 0.312653 0.915527 0.404572 0.313202 0.915527 0.433289 0.313782 0.915527 0.464783 0.314575 0.915527 0.499420 0.315125 0.915527 0.537292 0.315918 0.915527 0.578186 0.316498 0.915527 0.621857 0.317139 0.915527 0.667969 0.317780 0.915527 0.716095 0.318359 0.915527 0.765717 0.319061 0.915527 0.816528 0.319672 0.915527 0.868225 0.320221 0.915527 0.915527 0.320984 0.915527 0.000000 0.320679 0.915527 0.000000 0.321198 0.915527 0.007904 0.321716 0.915527 0.034393 0.322479 0.915527 0.067474 0.323029 0.915527 0.095581 0.323700 0.915527 0.121857 0.324310 0.915527 0.146210 0.324860 0.915527 0.169006 0.325653 0.915527 0.190491 0.326172 0.915527 0.211060 0.326721 0.915527 0.230865 0.327515 0.915527 0.250458 0.328064 0.915527 0.269958 0.328796 0.915527 0.289734 0.329346 0.915527 0.310242 0.329926 0.915527 0.331757 0.330688 0.915527 0.354553 0.331268 0.915527 0.379028 0.331940 0.915527 0.405701 0.332581 0.915527 0.434387 0.333099 0.915527 0.465881 0.333862 0.915527 0.500580 0.334412 0.915527 0.538147 0.335175 0.915527 0.579163 0.335754 0.915527 0.622833 0.336273 0.915527 0.668793 0.337036 0.915527 0.716705 0.337585 0.915527 0.766113 0.338135 0.915527 0.816833 0.338867 0.915527 0.868408 0.339417 0.915527 0.915527 0.340118 0.915527 0.000000 0.340790 0.915527 0.000000 0.341248 0.915527 0.010254 0.342041 0.915527 0.036804 0.342529 0.915527 0.069977 0.343079 0.915527 0.097809 0.343842 0.915527 0.123840 0.344360 0.915527 0.148041 0.345093 0.915527 0.170715 0.345642 0.915527 0.191956 0.346191 0.915527 0.212402 0.346954 0.915527 0.232086 0.347504 0.915527 0.251587 0.348083 0.915527 0.271149 0.348816 0.915527 0.290894 0.349335 0.915527 0.311371 0.350128 0.915527 0.332886 0.350647 0.915527 0.355682 0.351196 0.915527 0.380127 0.351959 0.915527 0.406616 0.352478 0.915527 0.435516 0.353088 0.915527 0.466919 0.353790 0.915527 0.501587 0.354370 0.915527 0.539185 0.355103 0.915527 0.580017 0.355621 0.915527 0.623718 0.356201 0.915527 0.669434 0.356903 0.915527 0.717285 0.357422 0.915527 0.766754 0.358002 0.915527 0.817261 0.358704 0.915527 0.868530 0.359222 0.915527 0.915527 0.359955 0.915527 0.000000 0.361816 0.915527 0.000000 0.362366 0.915527 0.012604 0.363068 0.915527 0.039032 0.363647 0.915527 0.072449 0.364166 0.915527 0.100128 0.364929 0.915527 0.125885 0.365448 0.915527 0.149750 0.365967 0.915527 0.172211 0.366730 0.915527 0.193573 0.367310 0.915527 0.213684 0.368011 0.915527 0.233368 0.368561 0.915527 0.252838 0.369110 0.915527 0.272308 0.369873 0.915527 0.291901 0.370361 0.915527 0.312469 0.370941 0.915527 0.333954 0.371704 0.915527 0.356750 0.372253 0.915527 0.381226 0.372986 0.915527 0.407745 0.373535 0.915527 0.436584 0.374054 0.915527 0.468079 0.374847 0.915527 0.502502 0.375366 0.915527 0.540283 0.375916 0.915527 0.581024 0.376617 0.915527 0.624451 0.377167 0.915527 0.670319 0.377899 0.915527 0.717957 0.378418 0.915527 0.767151 0.378937 0.915527 0.817535 0.379639 0.915527 0.868652 0.380157 0.915527 0.915527 0.380646 0.915527 0.000000 0.383972 0.915527 0.000000 0.384705 0.915527 0.015045 0.385254 0.915527 0.041473 0.385925 0.915527 0.074890 0.386505 0.915527 0.102203 0.387054 0.915527 0.127899 0.387756 0.915527 0.151642 0.388336 0.915527 0.173798 0.388855 0.915527 0.194977 0.389648 0.915527 0.215118 0.390167 0.915527 0.234680 0.390839 0.915527 0.253998 0.391479 0.915527 0.273315 0.391998 0.915527 0.292999 0.392731 0.915527 0.313599 0.393311 0.915527 0.335083 0.393829 0.915527 0.357849 0.394623 0.915527 0.382263 0.395142 0.915527 0.408752 0.395782 0.915527 0.437653 0.396423 0.915527 0.469177 0.396912 0.915527 0.503601 0.397705 0.915527 0.541321 0.398254 0.915527 0.582031 0.398743 0.915527 0.625397 0.399506 0.915527 0.670990 0.400024 0.915527 0.718506 0.400482 0.915527 0.767578 0.401215 0.915527 0.817810 0.401733 0.915527 0.868774 0.402344 0.915527 0.915527 0.402954 0.915527 0.000000 0.407898 0.915527 0.000000 0.408417 0.915527 0.017334 0.409180 0.915527 0.043762 0.409729 0.915527 0.077209 0.410217 0.915527 0.104370 0.410980 0.915527 0.129761 0.411560 0.915527 0.153290 0.412048 0.915527 0.175507 0.412872 0.915527 0.196350 0.413391 0.915527 0.216522 0.414124 0.915527 0.235901 0.414703 0.915527 0.255188 0.415222 0.915527 0.274536 0.415955 0.915527 0.294159 0.416534 0.915527 0.314545 0.417053 0.915527 0.336182 0.417816 0.915527 0.359009 0.418335 0.915527 0.383392 0.419098 0.915527 0.409912 0.419586 0.915527 0.438782 0.420197 0.915527 0.470245 0.420929 0.915527 0.504639 0.421448 0.915527 0.542328 0.421936 0.915527 0.583008 0.422668 0.915527 0.626190 0.423187 0.915527 0.671692 0.423737 0.915527 0.719177 0.424438 0.915527 0.768097 0.424896 0.915527 0.818054 0.425629 0.915527 0.869080 0.426147 0.915527 0.915527 0.426575 0.915527 0.000000 0.433472 0.915527 0.000000 0.434204 0.915527 0.019806 0.434753 0.915527 0.046539 0.435333 0.915527 0.079803 0.436035 0.915527 0.106659 0.436584 0.915527 0.131744 0.437347 0.915527 0.155121 0.437897 0.915527 0.177032 0.438416 0.915527 0.197968 0.439178 0.915527 0.217865 0.439758 0.915527 0.237274 0.440338 0.915527 0.256348 0.441040 0.915527 0.275696 0.441559 0.915527 0.295258 0.442352 0.915527 0.315674 0.442871 0.915527 0.337067 0.443390 0.915527 0.359985 0.444183 0.915527 0.384460 0.444672 0.915527 0.410980 0.445221 0.915527 0.439850 0.445984 0.915527 0.471313 0.446442 0.915527 0.505676 0.447174 0.915527 0.543304 0.447693 0.915527 0.583801 0.448242 0.915527 0.627014 0.448944 0.915527 0.672546 0.449463 0.915527 0.719727 0.449951 0.915527 0.768463 0.450592 0.915527 0.818481 0.451141 0.915527 0.869232 0.451630 0.915527 0.915527 0.452301 0.915527 0.000000 0.461334 0.915527 0.000000 0.461945 0.915527 0.022278 0.462646 0.915527 0.050568 0.463226 0.915527 0.082153 0.463959 0.915527 0.108765 0.464508 0.915527 0.133728 0.465057 0.915527 0.156921 0.465820 0.915527 0.178741 0.466339 0.915527 0.199371 0.466888 0.915527 0.219147 0.467651 0.915527 0.238525 0.468201 0.915527 0.257538 0.468903 0.915527 0.276672 0.469482 0.915527 0.296387 0.470001 0.915527 0.316711 0.470764 0.915527 0.338135 0.471283 0.915527 0.360992 0.471924 0.915527 0.385559 0.472534 0.915527 0.412048 0.473083 0.915527 0.440918 0.473633 0.915527 0.472321 0.474304 0.915527 0.506744 0.474823 0.915527 0.544220 0.475525 0.915527 0.584747 0.476044 0.915527 0.627899 0.476562 0.915527 0.673126 0.477264 0.915527 0.720306 0.477722 0.915527 0.769073 0.478241 0.915527 0.818756 0.478790 0.915527 0.869385 0.479401 0.915527 0.915527 0.479797 0.915527 0.000000 0.491638 0.915527 0.000000 0.492401 0.915527 0.024658 0.492950 0.915527 0.054993 0.493561 0.915527 0.084534 0.494263 0.915527 0.110962 0.494781 0.915527 0.135681 0.495544 0.915527 0.158600 0.496063 0.915527 0.180206 0.496643 0.915527 0.200745 0.497345 0.915527 0.220459 0.497925 0.915527 0.239746 0.498413 0.915527 0.258698 0.499207 0.915527 0.277771 0.499695 0.915527 0.297455 0.500427 0.915527 0.317780 0.500977 0.915527 0.339203 0.501495 0.915527 0.362030 0.502167 0.915527 0.386597 0.502777 0.915527 0.413116 0.503265 0.915527 0.441925 0.503967 0.915527 0.473267 0.504517 0.915527 0.507690 0.504974 0.915527 0.545197 0.505676 0.915527 0.585663 0.506195 0.915527 0.628754 0.506683 0.915527 0.673889 0.507355 0.915527 0.720795 0.507843 0.915527 0.769440 0.508270 0.915527 0.819000 0.508881 0.915527 0.869446 0.509399 0.915527 0.915527 0.509857 0.915527 0.000000 0.524811 0.915527 0.001770 0.525330 0.915527 0.027039 0.526093 0.915527 0.058990 0.526611 0.915527 0.086823 0.527374 0.915527 0.113037 0.527863 0.915527 0.137451 0.528412 0.915527 0.160278 0.529175 0.915527 0.181732 0.529694 0.915527 0.202087 0.530243 0.915527 0.221710 0.530945 0.915527 0.240936 0.531464 0.915527 0.259827 0.532013 0.915527 0.278900 0.532715 0.915527 0.298553 0.533264 0.915527 0.318848 0.533875 0.915527 0.340240 0.534454 0.915527 0.363037 0.535004 0.915527 0.387695 0.535706 0.915527 0.414124 0.536224 0.915527 0.442871 0.536682 0.915527 0.474243 0.537201 0.915527 0.508575 0.537903 0.915527 0.546173 0.538330 0.915527 0.586517 0.538940 0.915527 0.629395 0.539520 0.915527 0.674438 0.539948 0.915527 0.721497 0.540466 0.915527 0.769775 0.541046 0.915527 0.819214 0.541504 0.915527 0.869629 0.541931 0.915527 0.915527 0.542511 0.915527 0.000000 0.560883 0.915527 0.003937 0.561523 0.915527 0.029572 0.562042 0.915527 0.061554 0.562744 0.915527 0.089264 0.563293 0.915527 0.115173 0.563782 0.915527 0.139404 0.564514 0.915527 0.161987 0.565033 0.915527 0.183380 0.565521 0.915527 0.203461 0.566254 0.915527 0.223053 0.566772 0.915527 0.242126 0.567230 0.915527 0.260986 0.567993 0.915527 0.279999 0.568451 0.915527 0.299622 0.568909 0.915527 0.319885 0.569672 0.915527 0.341309 0.570099 0.915527 0.364105 0.570587 0.915527 0.388641 0.571320 0.915527 0.415070 0.571777 0.915527 0.443787 0.572174 0.915527 0.475250 0.572876 0.915527 0.509583 0.573395 0.915527 0.547119 0.573792 0.915527 0.587280 0.574402 0.915527 0.630249 0.574860 0.915527 0.675171 0.575317 0.915527 0.721893 0.575714 0.915527 0.770081 0.576324 0.915527 0.819580 0.576752 0.915527 0.869720 0.577118 0.915527 0.915527 0.577545 0.915527 0.000000 0.599823 0.915527 0.006256 0.600342 0.915527 0.031982 0.600830 0.915527 0.064056 0.601471 0.915527 0.091522 0.601990 0.915527 0.117279 0.602448 0.915527 0.141235 0.603149 0.915527 0.163666 0.603577 0.915527 0.184784 0.604126 0.915527 0.204987 0.604767 0.915527 0.224213 0.605225 0.915527 0.243317 0.605713 0.915527 0.262115 0.606323 0.915527 0.281097 0.606812 0.915527 0.300690 0.607300 0.915527 0.320953 0.607727 0.915527 0.342377 0.608368 0.915527 0.365082 0.608795 0.915527 0.389496 0.609222 0.915527 0.416016 0.609894 0.915527 0.444824 0.610291 0.915527 0.476257 0.610687 0.915527 0.510559 0.611176 0.915527 0.547852 0.611755 0.915527 0.588196 0.612183 0.915527 0.630798 0.612549 0.915527 0.675659 0.612915 0.915527 0.722473 0.613495 0.915527 0.770630 0.613892 0.915527 0.819916 0.614227 0.915527 0.869781 0.614563 0.915527 0.915527 0.615173 0.915527 0.000000 0.640930 0.915527 0.008636 0.641357 0.915527 0.034302 0.641876 0.915527 0.066467 0.642487 0.915527 0.093903 0.642883 0.915527 0.119324 0.643311 0.915527 0.142975 0.643982 0.915527 0.165314 0.644409 0.915527 0.186249 0.644836 0.915527 0.206299 0.645477 0.915527 0.225525 0.645874 0.915527 0.244476 0.646332 0.915527 0.263214 0.646698 0.915527 0.282166 0.647339 0.915527 0.301727 0.647736 0.915527 0.321960 0.648102 0.915527 0.343384 0.648499 0.915527 0.366150 0.649139 0.915527 0.390503 0.649475 0.915527 0.416992 0.649872 0.915527 0.445831 0.650299 0.915527 0.477234 0.650787 0.915527 0.511444 0.651184 0.915527 0.548767 0.651489 0.915527 0.588989 0.651917 0.915527 0.631622 0.652435 0.915527 0.676392 0.652740 0.915527 0.722961 0.653076 0.915527 0.770905 0.653381 0.915527 0.820129 0.653748 0.915527 0.869904 0.654205 0.915527 0.915527 0.654510 0.915527 0.000000 0.683960 0.915527 0.011047 0.684540 0.915527 0.036774 0.684937 0.915527 0.069061 0.685333 0.915527 0.096100 0.685730 0.915527 0.121368 0.686340 0.915527 0.144897 0.686646 0.915527 0.166840 0.687042 0.915527 0.187683 0.687378 0.915527 0.207581 0.687988 0.915527 0.226868 0.688324 0.915527 0.245605 0.688660 0.915527 0.264313 0.689026 0.915527 0.283234 0.689331 0.915527 0.302521 0.689911 0.915527 0.322906 0.690247 0.915527 0.344177 0.690582 0.915527 0.367126 0.690887 0.915527 0.391510 0.691498 0.915527 0.417999 0.691803 0.915527 0.446747 0.692108 0.915527 0.477997 0.692383 0.915527 0.512207 0.692719 0.915527 0.549683 0.693207 0.915527 0.589630 0.693481 0.915527 0.632263 0.693756 0.915527 0.676849 0.694092 0.915527 0.723328 0.694366 0.915527 0.771210 0.694824 0.915527 0.820282 0.695129 0.915527 0.869995 0.695343 0.915527 0.915527 0.695557 0.915527 0.000000 0.728821 0.915527 0.013458 0.729187 0.915527 0.039001 0.729462 0.915527 0.071472 0.729767 0.915527 0.098267 0.730072 0.915527 0.123169 0.730438 0.915527 0.146576 0.730896 0.915527 0.168518 0.731171 0.915527 0.189178 0.731506 0.915527 0.208862 0.731781 0.915527 0.227997 0.732208 0.915527 0.246735 0.732574 0.915527 0.265381 0.732819 0.915527 0.284271 0.733154 0.915527 0.303558 0.733398 0.915527 0.323761 0.733734 0.915527 0.345154 0.734161 0.915527 0.367889 0.734436 0.915527 0.392487 0.734711 0.915527 0.418945 0.734955 0.915527 0.447510 0.735168 0.915527 0.478912 0.735596 0.915527 0.513153 0.735870 0.915527 0.550262 0.736145 0.915527 0.590485 0.736359 0.915527 0.632935 0.736572 0.915527 0.677551 0.736786 0.915527 0.723907 0.737030 0.915527 0.771698 0.737366 0.915527 0.820496 0.737640 0.915527 0.870178 0.737854 0.915527 0.915527 0.738037 0.915527 0.000000 0.774506 0.915527 0.015717 0.774811 0.915527 0.041382 0.775238 0.915527 0.073761 0.775452 0.915527 0.100433 0.775665 0.915527 0.125153 0.775879 0.915527 0.148346 0.776123 0.915527 0.169983 0.776337 0.915527 0.190491 0.776764 0.915527 0.210114 0.777008 0.915527 0.229187 0.777222 0.915527 0.247864 0.777496 0.915527 0.266418 0.777649 0.915527 0.285309 0.777863 0.915527 0.304535 0.778076 0.915527 0.324738 0.778259 0.915527 0.346130 0.778625 0.915527 0.368866 0.778900 0.915527 0.393280 0.779114 0.915527 0.419617 0.779266 0.915527 0.448456 0.779449 0.915527 0.479797 0.779633 0.915527 0.514038 0.779816 0.915527 0.551178 0.780029 0.915527 0.591003 0.780426 0.915527 0.633392 0.780518 0.915527 0.677948 0.780701 0.915527 0.724213 0.780853 0.915527 0.771973 0.781036 0.915527 0.820740 0.781128 0.915527 0.870392 0.781311 0.915527 0.915527 0.781433 0.915527 0.000000 0.821136 0.915527 0.018097 0.821381 0.915527 0.043579 0.821716 0.915527 0.076141 0.821808 0.915527 0.102539 0.821960 0.915527 0.127106 0.822144 0.915527 0.149963 0.822296 0.915527 0.171509 0.822449 0.915527 0.191803 0.822540 0.915527 0.211304 0.822754 0.915527 0.230377 0.822906 0.915527 0.248932 0.823151 0.915527 0.267365 0.823395 0.915527 0.286133 0.823517 0.915527 0.305542 0.823700 0.915527 0.325684 0.823792 0.915527 0.347046 0.823944 0.915527 0.369781 0.824036 0.915527 0.394104 0.824158 0.915527 0.420593 0.824310 0.915527 0.449341 0.824402 0.915527 0.480469 0.824554 0.915527 0.514648 0.824768 0.915527 0.551910 0.825012 0.915527 0.591797 0.825104 0.915527 0.634125 0.825165 0.915527 0.678406 0.825287 0.915527 0.724640 0.825409 0.915527 0.772217 0.825470 0.915527 0.821014 0.825562 0.915527 0.870514 0.825653 0.915527 0.915527 0.825775 0.915527 0.000000 0.868378 0.915527 0.020447 0.868469 0.915527 0.045837 0.868561 0.915527 0.078369 0.868622 0.915527 0.104401 0.868713 0.915527 0.128876 0.868774 0.915527 0.151642 0.868835 0.915527 0.173004 0.868958 0.915527 0.193207 0.868988 0.915527 0.212524 0.869110 0.915527 0.231323 0.869110 0.915527 0.249756 0.869202 0.915527 0.268280 0.869263 0.915527 0.287018 0.869354 0.915527 0.306305 0.869385 0.915527 0.326538 0.869446 0.915527 0.347931 0.869568 0.915527 0.370575 0.869720 0.915527 0.395020 0.869873 0.915527 0.421326 0.869934 0.915527 0.449982 0.869995 0.915527 0.481323 0.870087 0.915527 0.515472 0.870148 0.915527 0.552521 0.870178 0.915527 0.592316 0.870239 0.915527 0.634583 0.870270 0.915527 0.678955 0.870331 0.915527 0.725098 0.870361 0.915527 0.772461 0.870422 0.915527 0.821136 0.870422 0.915527 0.870544 0.870483 0.915527 0.915527 0.870483 0.915527 0.000000 0.915527 0.915527 0.022644 0.915527 0.915527 0.049927 0.915527 0.915527 0.080597 0.915527 0.915527 0.106415 0.915527 0.915527 0.130585 0.915527 0.915527 0.153107 0.915527 0.915527 0.174408 0.915527 0.915527 0.194366 0.915527 0.915527 0.213654 0.915527 0.915527 0.232391 0.915527 0.915527 0.250793 0.915527 0.915527 0.269257 0.915527 0.915527 0.287994 0.915527 0.915527 0.307190 0.915527 0.915527 0.327301 0.915527 0.915527 0.348633 0.915527 0.915527 0.371307 0.915527 0.915527 0.395660 0.915527 0.915527 0.422089 0.915527 0.915527 0.450836 0.915527 0.915527 0.482147 0.915527 0.915527 0.516113 0.915527 0.915527 0.553253 0.915527 0.915527 0.592987 0.915527 0.915527 0.635223 0.915527 0.915527 0.679291 0.915527 0.915527 0.725403 0.915527 0.915527 0.772888 0.915527 0.915527 0.821320 0.915527 0.915527 0.870636 0.915527 0.915527 0.915527 0.915527 0.915527 ================================================ FILE: packages/sdk/public/resource/luts/Presetpro-Cinematic.3dl ================================================ #Created by: Adobe Photoshop Export Color Lookup Plugin #Copyright: (C) Copyright 2018 https://www.presetpro.com and Tim Martin #Description: Presetpro - Cinematic 0 33 66 99 132 165 198 231 264 297 330 363 396 429 462 495 528 561 594 627 660 693 726 759 792 825 858 891 924 957 990 1023 418 385 434 418 385 435 418 369 484 451 355 518 466 369 594 482 369 658 495 353 697 509 337 762 518 341 864 535 342 929 556 358 1016 588 343 1088 620 347 1195 649 337 1302 689 352 1442 706 321 1548 723 329 1687 780 305 1818 824 286 1948 881 257 2091 914 214 2225 1007 171 2415 1089 90 2562 1148 8 2709 1251 0 2885 1340 0 3010 1438 0 3167 1533 14 3316 1664 14 3477 1763 0 3608 1892 0 3787 2007 0 3918 449 370 433 418 386 434 417 386 468 418 386 563 422 385 598 454 390 663 470 389 716 489 396 791 534 389 862 551 390 941 585 397 1017 595 386 1104 630 376 1217 665 376 1322 712 377 1449 723 363 1580 755 370 1687 796 353 1818 828 337 1958 880 306 2111 926 263 2264 1001 204 2400 1088 155 2572 1148 53 2718 1245 0 2884 1324 12 3023 1453 15 3156 1548 0 3327 1678 0 3477 1777 0 3625 1892 0 3757 2007 0 3887 433 435 404 434 435 467 432 451 514 418 420 547 436 434 627 467 435 664 499 421 741 505 426 786 561 420 860 557 428 945 609 425 1044 611 429 1126 632 428 1250 675 419 1334 695 420 1464 721 395 1565 755 395 1703 787 395 1833 820 377 1966 871 346 2106 935 306 2268 994 254 2430 1083 204 2593 1145 126 2748 1218 37 2868 1348 0 3048 1446 13 3185 1522 0 3332 1648 0 3466 1775 0 3624 1874 16 3787 2007 1 3921 385 486 421 400 502 469 403 486 532 405 485 549 434 483 629 478 486 678 454 485 730 518 501 799 522 490 864 577 485 953 572 480 1036 596 483 1146 626 479 1260 669 458 1354 696 469 1473 714 466 1603 741 459 1710 794 437 1844 843 428 2003 853 403 2105 923 378 2275 993 329 2428 1075 269 2594 1142 204 2740 1218 112 2905 1311 11 3033 1408 3 3194 1522 0 3335 1643 0 3461 1759 0 3610 1890 2 3759 2006 0 3918 385 566 464 418 566 513 450 552 548 434 566 595 464 548 616 466 537 684 454 547 769 494 550 828 520 536 896 590 550 996 595 537 1069 616 539 1157 646 514 1279 644 518 1364 685 520 1499 710 518 1608 743 504 1742 791 502 1852 822 482 1987 863 452 2139 901 413 2278 977 402 2458 1055 362 2597 1140 294 2752 1208 224 2882 1316 128 3056 1395 27 3199 1503 0 3334 1603 14 3462 1731 0 3622 1846 15 3787 1977 0 3909 367 634 471 391 631 519 431 631 565 449 621 604 461 632 648 455 631 728 469 602 761 495 599 829 499 587 901 518 588 991 554 613 1064 594 596 1192 614 596 1293 630 595 1393 666 603 1515 687 584 1625 734 567 1741 770 572 1891 803 560 2019 842 519 2146 904 501 2300 953 470 2463 1016 435 2604 1139 390 2775 1197 346 2905 1295 278 3049 1398 173 3193 1498 52 3350 1590 13 3491 1726 0 3626 1817 13 3772 1954 16 3948 356 716 517 386 713 560 431 712 609 434 700 649 460 700 694 454 710 717 456 697 809 485 684 874 486 681 917 498 676 1011 514 675 1120 542 651 1205 575 661 1310 620 677 1417 646 669 1526 663 652 1642 730 646 1771 747 629 1910 783 616 2022 820 607 2162 878 568 2319 949 557 2464 1004 519 2620 1076 501 2765 1165 441 2902 1260 404 3065 1385 341 3209 1466 262 3343 1580 126 3505 1695 27 3616 1822 0 3800 1940 3 3934 334 782 537 373 791 582 399 797 593 437 782 666 439 767 724 453 782 750 468 794 816 469 774 874 478 782 979 499 754 1054 510 760 1138 496 737 1224 513 726 1316 529 736 1438 607 717 1553 631 730 1673 652 722 1796 715 721 1931 741 711 2046 781 679 2199 843 660 2336 915 635 2495 964 617 2636 1056 593 2786 1142 557 2928 1230 518 3055 1340 459 3191 1419 416 3356 1544 353 3509 1674 265 3641 1785 191 3790 1904 100 3927 313 892 566 366 875 627 374 864 658 387 877 680 418 870 723 418 892 804 409 880 821 461 888 911 462 871 960 474 852 1054 466 851 1147 478 846 1243 446 827 1335 467 825 1466 489 802 1579 542 807 1698 598 808 1815 643 808 1934 672 788 2069 724 783 2213 792 761 2363 850 724 2521 913 727 2663 999 695 2797 1081 671 2933 1171 636 3068 1274 597 3202 1385 553 3348 1499 497 3502 1601 467 3652 1744 423 3804 1883 378 3927 232 978 599 312 966 652 333 978 668 362 974 700 371 966 738 413 964 808 420 979 864 401 993 927 424 989 1004 418 966 1083 451 961 1165 433 959 1252 423 934 1356 418 927 1487 378 936 1598 380 900 1716 401 888 1825 527 901 1958 587 891 2102 649 892 2233 714 860 2364 797 838 2506 849 828 2670 929 812 2812 1023 789 2964 1117 756 3067 1220 737 3222 1343 700 3369 1467 653 3515 1562 618 3624 1717 595 3810 1837 585 3950 97 1097 631 205 1071 668 243 1064 697 291 1090 729 331 1088 791 330 1083 827 324 1098 882 349 1102 946 313 1107 1013 342 1103 1098 359 1081 1204 359 1086 1306 322 1075 1385 310 1051 1503 288 1048 1614 266 1033 1731 253 1016 1856 265 984 1981 338 966 2110 497 995 2262 595 984 2402 660 974 2522 752 941 2667 850 922 2808 966 906 2964 1040 872 3095 1162 842 3230 1251 837 3364 1382 803 3516 1505 781 3647 1646 759 3819 1772 754 3940 0 1216 670 47 1200 717 85 1196 729 131 1202 772 116 1221 788 169 1227 850 198 1217 914 177 1213 967 191 1232 1059 159 1222 1112 236 1217 1200 223 1227 1308 176 1227 1412 175 1188 1536 138 1177 1643 80 1163 1746 54 1139 1893 62 1122 2028 59 1097 2144 80 1067 2309 271 1082 2431 475 1093 2560 611 1082 2701 720 1055 2836 850 1029 2970 948 1000 3093 1065 994 3244 1181 967 3374 1330 956 3541 1430 929 3656 1592 906 3788 1713 922 3950 0 1342 707 0 1331 745 10 1342 789 0 1332 801 0 1338 841 0 1348 892 3 1348 960 10 1354 999 10 1346 1092 5 1356 1167 15 1358 1273 69 1359 1331 20 1358 1441 0 1342 1555 0 1325 1666 6 1316 1815 2 1299 1910 3 1266 2050 13 1249 2192 6 1219 2348 18 1177 2471 51 1169 2598 295 1190 2718 534 1181 2858 667 1181 2956 824 1139 3109 956 1119 3251 1091 1099 3394 1206 1089 3499 1372 1069 3671 1502 1065 3811 1645 1075 3918 9 1466 739 7 1472 768 0 1473 795 0 1471 827 0 1477 887 0 1492 936 0 1488 984 0 1497 1060 0 1498 1140 7 1490 1206 0 1503 1298 0 1511 1387 0 1505 1487 0 1479 1601 0 1474 1717 8 1455 1821 18 1426 1952 7 1408 2081 0 1405 2212 0 1383 2359 0 1354 2496 0 1335 2624 5 1293 2757 73 1281 2883 388 1312 3001 624 1289 3125 784 1266 3252 923 1233 3373 1091 1231 3516 1238 1223 3672 1400 1222 3818 1563 1241 3957 14 1603 762 0 1610 794 0 1617 836 0 1626 867 7 1616 907 0 1635 953 3 1623 1001 0 1635 1074 0 1636 1163 0 1631 1240 0 1651 1343 0 1640 1426 0 1664 1549 0 1651 1636 7 1635 1738 16 1603 1861 15 1587 1975 9 1579 2105 7 1574 2242 14 1552 2373 10 1519 2511 4 1499 2633 0 1466 2767 7 1433 2894 10 1394 3021 164 1401 3163 533 1432 3246 770 1399 3399 914 1385 3528 1092 1369 3664 1270 1377 3827 1425 1391 3975 17 1740 771 7 1748 818 0 1765 859 8 1749 894 4 1743 949 0 1765 987 8 1765 1074 4 1777 1135 4 1778 1212 0 1781 1285 3 1808 1388 6 1789 1470 23 1804 1578 1 1813 1690 24 1782 1787 8 1773 1902 15 1765 2047 8 1750 2108 0 1732 2277 14 1709 2399 21 1704 2544 13 1679 2650 0 1633 2783 4 1612 2906 0 1582 3049 0 1546 3172 0 1526 3296 348 1561 3414 740 1556 3526 936 1558 3675 1106 1540 3804 1310 1557 3967 25 1881 803 0 1897 821 0 1889 884 0 1920 924 15 1912 968 29 1918 1026 5 1907 1073 0 1917 1152 12 1916 1233 0 1920 1302 0 1936 1415 0 1931 1511 6 1944 1608 8 1951 1706 1 1960 1828 15 1938 1911 0 1929 2041 0 1905 2170 0 1897 2278 0 1890 2415 8 1864 2547 0 1843 2654 3 1813 2757 8 1781 2926 24 1740 3037 0 1721 3165 0 1696 3289 0 1672 3423 167 1671 3562 744 1744 3688 1023 1744 3811 1228 1736 3974 16 2035 828 0 2043 854 0 2051 894 7 2053 954 7 2061 999 3 2060 1055 13 2067 1121 9 2073 1177 13 2082 1281 5 2075 1353 0 2087 1445 16 2088 1543 9 2077 1624 9 2091 1722 7 2100 1860 1 2123 1969 16 2100 2065 14 2076 2196 15 2059 2311 2 2065 2426 1 2037 2554 9 2012 2683 0 1987 2807 18 1967 2912 7 1944 3055 3 1891 3170 9 1873 3316 5 1857 3439 0 1830 3575 32 1816 3718 722 1895 3848 1178 1989 3958 7 2189 851 0 2199 893 15 2213 949 14 2207 976 0 2212 1032 7 2210 1093 0 2220 1153 4 2224 1241 20 2225 1306 5 2219 1393 16 2215 1489 6 2231 1583 7 2234 1676 13 2240 1773 15 2239 1880 18 2254 2003 7 2285 2137 25 2240 2235 16 2237 2357 26 2230 2467 1 2214 2572 5 2182 2687 9 2157 2807 19 2141 2960 16 2106 3056 3 2088 3155 19 2054 3323 5 2031 3440 5 2017 3575 0 2006 3714 9 1999 3829 798 2065 3976 10 2342 899 0 2353 926 0 2352 972 6 2362 1025 14 2376 1080 12 2372 1154 16 2372 1205 12 2378 1269 0 2384 1349 0 2388 1442 12 2389 1519 10 2390 1622 7 2387 1705 3 2388 1803 0 2389 1911 2 2400 2016 1 2402 2155 1 2417 2292 0 2384 2366 0 2378 2468 6 2373 2606 6 2345 2714 11 2317 2833 4 2298 2964 0 2272 3079 3 2246 3199 13 2223 3324 4 2199 3458 5 2171 3569 0 2169 3713 22 2173 3852 529 2214 3983 6 2504 952 6 2499 965 24 2510 1043 23 2500 1064 0 2515 1139 6 2504 1194 9 2523 1278 7 2519 1329 10 2524 1410 10 2520 1480 11 2520 1573 0 2525 1660 4 2531 1756 10 2519 1842 32 2531 1957 8 2531 2064 0 2542 2175 12 2547 2317 6 2557 2435 26 2521 2509 32 2503 2616 0 2497 2746 0 2481 2855 0 2446 2965 0 2432 3100 0 2416 3207 3 2386 3324 2 2364 3442 20 2357 3579 1 2343 3723 0 2359 3863 239 2392 3999 0 2645 1012 15 2655 1060 1 2652 1088 5 2636 1115 5 2659 1164 11 2666 1242 0 2664 1294 4 2660 1371 5 2658 1447 5 2661 1534 0 2666 1600 21 2661 1692 11 2650 1812 0 2668 1896 0 2670 1988 0 2669 2097 3 2666 2206 0 2663 2314 5 2701 2441 11 2672 2567 27 2645 2664 16 2629 2768 5 2623 2860 9 2608 2986 0 2584 3115 0 2562 3207 0 2546 3324 11 2528 3463 11 2497 3587 11 2507 3735 11 2522 3870 11 2549 3994 9 2776 1067 11 2792 1110 12 2788 1143 1 2770 1168 21 2788 1250 22 2780 1313 13 2789 1370 12 2779 1439 0 2808 1504 0 2801 1588 0 2798 1660 0 2796 1746 0 2792 1838 5 2808 1941 7 2804 2028 4 2792 2121 0 2795 2242 9 2817 2359 16 2808 2458 5 2822 2591 26 2789 2679 0 2780 2768 9 2739 2904 0 2759 3013 5 2715 3118 3 2707 3244 0 2693 3357 0 2665 3472 13 2663 3605 11 2656 3739 4 2670 3864 9 2718 4026 0 2910 1144 11 2911 1184 5 2923 1199 0 2916 1263 10 2920 1318 0 2926 1389 9 2922 1446 8 2919 1484 8 2938 1574 5 2931 1636 21 2926 1728 8 2921 1801 6 2922 1887 0 2934 1992 0 2934 2076 0 2914 2167 0 2919 2249 9 2926 2371 3 2936 2485 0 2918 2599 12 2941 2752 11 2933 2817 0 2894 2901 16 2866 2995 16 2858 3145 0 2857 3236 8 2852 3372 0 2824 3495 0 2820 3611 15 2798 3740 0 2837 3880 8 2882 4007 0 3033 1210 7 3052 1279 0 3040 1310 7 3049 1357 0 3037 1406 0 3043 1453 0 3062 1511 4 3033 1563 4 3049 1640 7 3048 1689 23 3064 1783 4 3065 1855 4 3056 1942 4 3065 2012 11 3054 2111 8 3045 2188 4 3040 2290 0 3060 2394 12 3047 2497 12 3053 2634 10 3056 2729 4 3067 2861 0 3048 2937 0 3001 3047 12 2976 3137 3 2985 3260 4 2960 3378 12 2983 3514 1 2970 3638 25 2957 3747 0 2976 3882 164 3021 4027 0 3180 1324 4 3168 1359 12 3183 1380 0 3180 1436 3 3192 1502 0 3173 1559 0 3183 1619 0 3187 1687 0 3189 1707 3 3195 1785 0 3183 1842 0 3181 1894 6 3180 1965 0 3190 2060 0 3189 2125 0 3183 2223 0 3186 2315 4 3185 2423 13 3183 2521 0 3167 2628 3 3168 2735 3 3170 2868 13 3199 3013 0 3169 3083 13 3108 3150 16 3119 3280 13 3092 3396 13 3101 3511 0 3101 3636 15 3104 3768 1 3131 3913 418 3161 4031 0 3298 1440 13 3298 1482 0 3316 1490 24 3312 1561 3 3311 1575 0 3303 1649 0 3317 1737 4 3327 1754 9 3307 1811 5 3314 1871 0 3316 1916 0 3322 1989 0 3314 2049 0 3319 2115 0 3324 2186 10 3314 2275 5 3298 2359 13 3305 2467 4 3310 2558 0 3320 2679 0 3295 2782 0 3289 2870 3 3330 2996 4 3316 3119 12 3256 3191 1 3237 3291 0 3234 3424 2 3234 3522 3 3219 3627 17 3235 3781 2 3254 3930 656 3298 4047 14 3442 1609 4 3456 1615 13 3444 1649 14 3430 1665 0 3428 1724 11 3444 1786 4 3440 1827 0 3432 1888 0 3440 1919 2 3436 1962 0 3435 2028 6 3450 2079 0 3436 2126 2 3437 2189 11 3437 2245 0 3446 2344 2 3430 2389 0 3430 2527 11 3428 2616 6 3436 2683 24 3434 2784 0 3430 2891 0 3429 3031 0 3452 3149 0 3459 3245 3 3399 3332 0 3380 3425 4 3376 3527 28 3366 3653 15 3365 3812 14 3413 3932 833 3430 4063 1 3560 1743 1 3560 1747 1 3575 1820 1 3573 1852 1 3573 1862 3 3565 1913 11 3564 1987 0 3564 2023 16 3561 2047 0 3557 2084 0 3575 2144 13 3575 2169 14 3570 2225 13 3587 2274 14 3588 2346 8 3589 2395 1 3582 2453 18 3582 2549 0 3575 2669 5 3589 2743 0 3573 2846 11 3569 2966 14 3580 3063 25 3573 3170 12 3573 3292 14 3588 3411 0 3530 3459 0 3510 3571 31 3480 3687 1 3512 3831 0 3526 3918 989 3575 4052 1 3704 1936 0 3704 1969 1 3703 2000 4 3706 2007 26 3676 2064 15 3704 2096 15 3703 2137 0 3705 2193 19 3678 2229 10 3700 2242 16 3705 2270 9 3700 2297 18 3689 2339 15 3706 2389 30 3719 2437 1 3720 2486 23 3715 2536 16 3712 2616 21 3720 2707 5 3723 2802 0 3721 2894 0 3726 3002 0 3709 3092 16 3709 3224 2 3718 3354 0 3720 3424 0 3736 3555 16 3673 3593 0 3627 3688 0 3655 3832 317 3673 3963 1153 3723 4080 15 3835 2164 1 3836 2181 15 3836 2181 16 3820 2216 16 3820 2245 0 3833 2296 1 3835 2329 0 3832 2350 4 3825 2386 5 3825 2411 5 3846 2422 10 3836 2460 7 3843 2478 9 3852 2501 8 3845 2551 16 3867 2598 8 3859 2640 31 3867 2682 6 3883 2804 10 3877 2887 11 3868 2963 0 3884 3067 0 3868 3169 0 3868 3262 12 3868 3388 13 3855 3475 16 3869 3591 0 3870 3689 14 3805 3739 0 3787 3850 669 3819 3980 1378 3868 4095 418 3967 2409 483 3967 2409 564 3983 2442 616 3967 2426 743 3953 2487 827 3969 2494 941 3976 2569 997 3967 2585 903 3955 2578 784 3978 2618 580 3977 2634 176 3983 2613 6 3992 2650 19 4012 2684 16 4008 2712 24 4015 2721 8 4014 2770 7 4031 2780 0 4038 2861 0 4021 2942 16 4020 3034 16 4031 3153 23 4035 3251 0 4031 3328 0 4027 3435 0 4031 3527 0 4031 3651 30 4031 3766 18 4002 3853 0 3968 3916 888 3934 3997 1590 3967 4095 417 385 433 419 385 435 451 370 468 467 368 532 485 355 596 485 339 618 515 366 713 546 338 775 542 353 855 545 338 929 595 353 1022 621 353 1099 639 343 1197 671 346 1318 700 339 1419 730 322 1557 779 329 1687 803 306 1825 838 287 1955 893 263 2085 953 224 2242 1007 159 2383 1099 78 2557 1160 8 2709 1261 0 2889 1356 3 3020 1467 3 3183 1552 0 3304 1678 0 3463 1778 0 3623 1894 0 3786 2055 0 3933 450 370 433 451 370 435 466 387 483 437 387 532 456 402 585 499 386 647 515 386 729 531 399 807 551 374 863 574 393 949 596 402 1023 601 391 1110 649 386 1204 678 386 1309 714 377 1435 731 362 1566 755 369 1687 804 338 1810 829 329 1949 878 290 2095 956 269 2262 1018 220 2416 1084 154 2572 1176 57 2722 1258 0 2878 1343 3 3007 1439 0 3140 1563 0 3314 1678 0 3477 1778 0 3623 1893 0 3755 2008 0 3917 434 435 403 435 436 465 451 436 515 437 422 519 468 434 614 485 449 676 515 449 730 531 451 810 566 423 865 586 435 946 627 436 1054 628 420 1125 650 425 1235 686 428 1343 723 421 1474 741 411 1582 763 403 1695 803 386 1819 839 368 1968 872 345 2106 937 307 2270 1012 269 2446 1078 199 2589 1161 112 2748 1258 9 2861 1356 0 3026 1451 13 3180 1549 0 3332 1650 0 3462 1778 0 3623 1894 0 3787 1993 0 3919 417 499 431 448 485 468 437 501 516 452 499 580 482 485 615 498 500 693 517 498 731 549 498 812 554 485 877 596 495 959 599 485 1051 617 485 1152 644 484 1257 684 473 1365 701 470 1474 722 467 1582 762 444 1710 805 442 1848 845 419 1979 885 401 2113 945 356 2270 1007 329 2435 1078 271 2586 1151 204 2741 1241 105 2898 1323 21 3043 1438 0 3169 1549 1 3334 1661 13 3476 1776 0 3624 1892 0 3758 2007 0 3918 418 580 452 448 551 484 466 566 532 467 565 569 484 564 628 485 549 693 502 551 785 515 534 825 565 538 906 593 550 990 613 561 1071 632 534 1163 653 529 1265 673 542 1386 709 529 1513 735 520 1619 775 516 1728 796 500 1852 838 479 1985 885 462 2137 936 431 2279 1001 384 2457 1076 354 2599 1143 287 2740 1254 226 2896 1332 118 3039 1422 25 3187 1520 0 3330 1633 14 3477 1759 0 3624 1877 15 3787 1992 0 3918 413 632 485 419 633 515 468 648 579 468 632 614 496 633 661 500 618 712 499 617 777 514 613 845 543 600 913 539 611 978 597 613 1103 609 592 1192 627 603 1289 667 596 1407 689 595 1517 714 589 1612 755 567 1749 780 559 1880 813 551 2019 868 510 2147 930 508 2314 972 483 2460 1067 435 2617 1135 376 2762 1210 334 2894 1305 258 3039 1415 155 3191 1515 38 3350 1600 14 3493 1729 1 3625 1848 13 3786 1986 3 3949 372 700 517 415 697 534 452 699 584 468 713 633 482 725 682 483 713 726 491 700 827 503 707 862 542 695 968 531 669 1013 539 662 1117 576 652 1217 607 668 1293 640 668 1418 666 665 1533 709 651 1648 741 651 1778 758 632 1901 813 623 2039 845 607 2169 900 576 2301 972 553 2466 1030 530 2631 1095 488 2764 1203 438 2908 1289 394 3052 1386 325 3199 1478 233 3329 1584 124 3493 1712 21 3625 1830 0 3803 1947 3 3937 354 791 550 412 782 579 433 796 609 464 795 649 469 782 711 481 792 761 500 798 825 502 782 891 510 781 984 522 753 1051 504 750 1120 517 744 1226 550 730 1322 568 743 1449 634 734 1565 667 722 1665 704 725 1810 725 716 1910 770 708 2048 810 691 2195 875 659 2338 935 642 2492 1004 624 2633 1073 586 2791 1158 548 2932 1246 506 3055 1351 457 3186 1438 405 3350 1561 342 3506 1680 265 3643 1806 164 3779 1940 100 3931 329 884 570 370 876 615 411 880 644 419 879 678 434 880 731 458 882 783 464 884 836 478 880 915 494 880 980 494 868 1069 500 862 1169 499 845 1249 477 831 1342 491 812 1466 509 790 1584 582 836 1709 631 819 1816 665 810 1946 707 796 2076 763 793 2217 822 767 2368 881 753 2526 943 721 2667 1028 706 2798 1117 670 2945 1189 621 3064 1301 587 3191 1404 564 3364 1516 503 3497 1627 470 3644 1760 411 3803 1891 379 3919 249 973 590 340 967 654 365 982 684 409 974 712 413 977 743 438 967 821 432 981 864 446 996 942 448 979 1006 466 971 1090 458 966 1161 466 961 1258 439 950 1372 427 937 1463 420 921 1583 437 889 1715 451 896 1849 557 904 1956 627 903 2102 686 887 2244 762 871 2385 822 843 2507 881 838 2681 967 810 2826 1059 778 2941 1146 765 3079 1241 725 3222 1366 690 3365 1483 658 3524 1590 633 3640 1734 575 3810 1847 585 3950 140 1085 615 220 1076 664 276 1085 694 331 1088 741 337 1096 765 364 1094 816 368 1107 898 365 1095 947 362 1119 1036 379 1107 1117 402 1081 1198 392 1075 1276 379 1074 1400 347 1044 1492 321 1037 1619 302 1025 1742 308 1011 1862 312 984 1995 420 982 2128 541 995 2266 627 978 2412 688 968 2522 792 952 2689 888 929 2821 981 903 2968 1060 894 3096 1185 853 3236 1289 840 3378 1419 799 3503 1537 786 3656 1674 765 3804 1809 760 3957 6 1216 638 63 1185 681 113 1196 731 176 1212 774 183 1233 798 222 1221 856 244 1215 904 256 1214 992 253 1234 1049 223 1227 1133 301 1212 1220 262 1221 1308 235 1221 1421 215 1181 1522 193 1181 1660 152 1161 1764 106 1139 1888 106 1106 2026 103 1093 2145 127 1077 2292 370 1092 2445 524 1088 2549 650 1083 2707 769 1060 2852 874 1029 2979 983 1009 3108 1086 989 3250 1230 975 3383 1340 947 3540 1467 932 3666 1593 907 3789 1761 912 3956 1 1335 706 0 1316 729 0 1332 757 0 1326 799 16 1332 844 22 1344 871 46 1345 970 49 1345 1010 49 1365 1094 30 1355 1171 27 1357 1254 86 1348 1330 56 1335 1444 29 1341 1564 11 1332 1675 0 1295 1790 3 1297 1908 10 1265 2042 10 1246 2191 6 1213 2336 6 1191 2456 71 1180 2602 379 1196 2738 574 1191 2854 712 1174 2966 859 1149 3122 972 1127 3253 1094 1109 3368 1239 1077 3501 1374 1068 3670 1522 1066 3811 1673 1084 3934 9 1466 739 7 1454 746 6 1472 787 0 1472 835 0 1475 876 0 1475 904 0 1488 977 13 1488 1055 4 1495 1111 7 1490 1202 0 1503 1298 0 1519 1394 9 1495 1487 9 1495 1617 7 1481 1706 18 1457 1823 3 1454 1966 0 1438 2084 0 1405 2212 0 1370 2352 0 1357 2489 0 1335 2624 0 1298 2757 102 1286 2875 452 1321 3008 670 1302 3142 816 1258 3259 955 1245 3387 1102 1239 3525 1268 1217 3679 1417 1216 3800 1589 1231 3944 7 1596 740 0 1610 781 9 1612 817 0 1626 866 1 1629 905 5 1626 971 0 1638 1009 6 1632 1074 0 1636 1156 13 1639 1250 5 1647 1320 0 1640 1426 0 1672 1531 7 1642 1633 7 1635 1738 7 1611 1861 23 1595 1984 15 1587 2112 2 1582 2244 0 1559 2372 14 1523 2515 4 1500 2633 7 1459 2767 16 1437 2899 0 1399 3021 191 1427 3157 582 1430 3260 787 1411 3406 940 1394 3535 1115 1362 3672 1295 1378 3828 1490 1385 3961 8 1749 761 7 1757 818 15 1765 837 9 1757 882 10 1743 929 3 1768 973 8 1775 1051 4 1769 1119 7 1797 1219 0 1785 1273 11 1789 1373 0 1781 1448 1 1796 1555 1 1813 1690 9 1789 1786 8 1773 1902 8 1773 2017 8 1750 2124 8 1739 2269 10 1725 2386 0 1682 2495 8 1674 2644 0 1633 2783 16 1624 2918 4 1578 3053 0 1551 3167 25 1523 3293 436 1570 3422 772 1574 3528 975 1535 3674 1138 1540 3813 1334 1540 3967 8 1897 786 8 1897 827 0 1904 860 7 1906 894 10 1906 962 24 1913 1009 18 1924 1080 0 1921 1140 12 1925 1237 11 1937 1315 0 1936 1397 0 1937 1498 14 1956 1618 22 1936 1706 0 1977 1836 0 1938 1911 8 1936 2049 0 1913 2163 8 1910 2286 1 1895 2408 19 1870 2547 24 1853 2677 15 1813 2787 12 1788 2927 8 1755 3041 0 1728 3165 0 1706 3300 8 1676 3436 202 1694 3552 778 1744 3658 1049 1744 3819 1245 1737 3959 9 2043 828 0 2050 853 0 2044 884 7 2052 950 0 2054 991 0 2059 1038 13 2067 1107 9 2080 1185 5 2079 1274 4 2079 1357 0 2087 1445 9 2080 1535 14 2084 1631 7 2091 1716 14 2100 1845 14 2122 1969 15 2098 2066 7 2084 2178 31 2074 2326 8 2067 2432 11 2043 2561 0 2009 2679 0 1988 2813 0 1960 2926 15 1947 3057 6 1894 3173 17 1877 3310 5 1848 3439 1 1830 3573 82 1828 3724 773 1896 3834 1221 1973 3967 16 2199 860 7 2190 866 1 2200 926 16 2208 969 15 2207 1034 9 2212 1090 7 2228 1158 7 2221 1243 15 2222 1302 18 2219 1400 28 2233 1487 13 2230 1582 13 2241 1669 15 2241 1755 7 2245 1878 16 2253 2001 1 2278 2130 7 2247 2213 15 2237 2356 25 2230 2466 7 2207 2581 6 2182 2687 13 2162 2812 16 2122 2929 19 2109 3065 16 2082 3178 16 2054 3323 0 2027 3426 7 2015 3575 1 1996 3686 52 2015 3845 857 2072 3960 16 2330 873 0 2362 910 1 2347 958 8 2356 1002 8 2370 1074 14 2370 1139 18 2368 1195 10 2375 1250 6 2384 1351 6 2379 1426 5 2394 1518 15 2385 1622 0 2390 1705 7 2384 1801 7 2396 1925 2 2400 2016 1 2402 2155 9 2425 2301 0 2384 2366 7 2384 2474 10 2376 2610 1 2339 2709 12 2318 2835 6 2300 2966 0 2269 3079 3 2249 3193 10 2220 3320 16 2187 3458 14 2180 3579 11 2173 3698 28 2179 3857 585 2218 3999 6 2504 931 16 2509 974 16 2508 1008 18 2494 1058 2 2517 1141 3 2515 1183 0 2515 1263 3 2523 1311 6 2515 1400 10 2521 1479 10 2525 1561 16 2521 1645 11 2542 1754 13 2537 1852 17 2531 1942 0 2529 2067 0 2534 2172 10 2551 2304 8 2557 2436 10 2516 2492 26 2515 2621 20 2487 2745 5 2476 2854 4 2447 2967 0 2432 3100 6 2410 3207 22 2386 3324 6 2368 3446 10 2347 3573 1 2343 3723 17 2332 3853 320 2400 4018 10 2635 980 21 2640 1024 0 2640 1046 7 2636 1117 7 2661 1162 11 2661 1237 5 2651 1286 0 2656 1367 12 2672 1441 11 2655 1535 0 2666 1600 21 2651 1687 22 2661 1822 0 2665 1901 7 2666 1985 18 2669 2110 21 2666 2206 5 2666 2317 7 2703 2443 20 2669 2567 16 2646 2654 16 2629 2768 6 2623 2862 1 2599 2980 0 2581 3113 0 2565 3206 3 2531 3322 11 2528 3463 11 2497 3587 0 2501 3729 6 2507 3860 21 2549 3993 0 2776 1039 11 2770 1099 22 2777 1142 11 2785 1182 13 2780 1233 27 2781 1323 5 2780 1362 17 2784 1436 16 2792 1504 7 2801 1578 0 2798 1660 6 2796 1742 11 2803 1840 14 2803 1941 11 2804 2028 4 2804 2126 20 2792 2246 0 2805 2348 14 2806 2456 5 2814 2593 15 2810 2689 0 2771 2764 0 2743 2904 0 2728 2998 5 2726 3129 13 2700 3244 5 2693 3359 0 2663 3472 13 2663 3605 11 2660 3742 23 2663 3864 5 2713 3999 5 2907 1132 0 2911 1149 4 2918 1193 15 2921 1271 8 2909 1312 19 2923 1380 3 2909 1431 16 2919 1484 4 2926 1565 5 2931 1636 12 2923 1709 16 2922 1791 0 2933 1884 0 2934 1969 9 2929 2067 12 2918 2175 4 2931 2261 0 2914 2371 11 2910 2472 6 2924 2593 19 2942 2732 17 2924 2835 16 2883 2906 15 2867 2995 16 2858 3145 12 2846 3237 6 2838 3358 0 2824 3495 0 2832 3623 12 2796 3737 12 2837 3880 25 2869 4014 4 3049 1226 19 3041 1270 15 3037 1276 7 3049 1347 0 3037 1402 12 3053 1456 3 3050 1511 4 3041 1567 0 3045 1632 5 3053 1692 11 3052 1766 17 3060 1843 19 3053 1945 4 3052 2005 7 3053 2093 16 3053 2195 32 3053 2294 0 3061 2399 7 3056 2508 16 3053 2626 12 3059 2724 14 3082 2873 25 3040 2940 1 3002 3048 12 2980 3140 3 2985 3260 15 2972 3390 1 2973 3503 0 2943 3622 26 2955 3746 4 2975 3882 222 3021 4023 0 3168 1323 4 3171 1328 28 3156 1368 11 3179 1412 4 3182 1477 6 3168 1560 3 3174 1619 0 3183 1668 12 3192 1719 0 3183 1767 3 3186 1845 8 3184 1900 12 3184 1972 19 3174 2047 0 3186 2125 0 3188 2229 0 3194 2339 15 3187 2435 15 3180 2521 0 3171 2632 13 3180 2744 3 3172 2870 19 3195 3012 13 3132 3071 15 3111 3153 19 3122 3283 13 3092 3396 13 3103 3507 1 3087 3623 13 3102 3766 27 3131 3887 484 3164 4050 13 3311 1454 19 3311 1455 14 3298 1488 24 3313 1560 3 3300 1572 0 3301 1646 0 3301 1704 0 3314 1750 16 3314 1818 3 3302 1872 13 3303 1916 0 3314 1989 3 3314 2047 0 3314 2112 0 3311 2180 13 3314 2280 19 3313 2375 11 3300 2465 4 3301 2541 0 3310 2670 3 3298 2790 13 3298 2881 0 3312 2991 11 3327 3128 3 3284 3206 0 3254 3311 0 3236 3426 3 3221 3510 1 3218 3626 17 3249 3767 13 3265 3941 678 3282 4047 16 3444 1584 16 3444 1612 3 3429 1631 16 3428 1665 4 3430 1726 14 3444 1775 15 3429 1827 29 3442 1879 0 3444 1919 7 3444 1973 9 3434 2025 8 3444 2071 32 3429 2134 16 3438 2182 12 3438 2231 12 3440 2340 10 3439 2398 19 3446 2520 3 3420 2607 28 3440 2687 14 3436 2786 0 3441 2902 2 3440 3039 2 3444 3135 2 3463 3249 2 3400 3332 16 3364 3425 5 3375 3528 3 3378 3656 2 3351 3798 14 3412 3930 855 3444 4065 0 3559 1741 16 3575 1760 1 3559 1778 14 3560 1823 1 3573 1862 0 3559 1908 16 3559 1987 7 3550 1999 18 3555 2044 14 3575 2089 14 3568 2125 25 3570 2173 12 3569 2224 25 3575 2286 0 3562 2308 10 3582 2410 8 3589 2461 20 3587 2555 0 3575 2651 6 3589 2742 0 3573 2846 5 3573 2965 4 3561 3049 26 3569 3168 15 3578 3296 14 3588 3411 1 3529 3460 1 3495 3558 16 3509 3673 2 3525 3816 1 3541 3932 1020 3575 4063 16 3689 1938 1 3690 1954 1 3690 1956 2 3703 2003 26 3689 2038 0 3689 2069 0 3687 2121 4 3702 2193 26 3704 2218 6 3695 2237 6 3696 2261 17 3699 2303 9 3696 2338 15 3714 2380 22 3712 2429 16 3713 2486 13 3705 2527 25 3721 2625 16 3716 2702 17 3711 2801 2 3725 2899 15 3721 3002 0 3709 3092 4 3720 3226 15 3719 3322 18 3733 3442 1 3734 3554 14 3674 3594 1 3626 3687 1 3656 3833 381 3672 3948 1216 3720 4095 15 3835 2164 16 3836 2166 1 3821 2166 17 3835 2186 16 3820 2218 29 3833 2291 0 3823 2316 0 3833 2350 0 3820 2375 16 3836 2400 11 3841 2422 11 3837 2455 6 3842 2476 10 3853 2502 16 3836 2551 23 3860 2599 24 3861 2649 21 3875 2689 9 3868 2767 10 3858 2877 15 3874 2968 5 3874 3071 8 3863 3168 12 3883 3278 12 3869 3389 15 3884 3491 31 3880 3604 0 3870 3689 14 3804 3739 15 3772 3850 669 3804 3964 1410 3835 4095 449 3982 2408 514 3967 2425 550 3967 2425 631 3981 2441 729 3953 2445 829 3967 2492 928 3967 2525 1024 3982 2576 944 3967 2574 833 3983 2606 635 3967 2607 287 3983 2639 15 3983 2650 10 3990 2651 9 4000 2705 16 3999 2730 16 4008 2770 16 4015 2794 7 4024 2854 0 4031 2930 6 4031 3034 16 4031 3153 16 4015 3235 0 4027 3324 0 4027 3435 13 4034 3543 16 4042 3665 17 4017 3752 3 4031 3867 0 3953 3902 920 3919 3997 1590 3967 4095 452 370 435 482 384 449 470 354 468 516 354 503 531 353 580 532 352 632 547 352 711 553 341 774 583 364 859 587 351 924 612 338 1021 643 364 1103 665 357 1217 694 347 1329 717 327 1417 753 328 1548 795 321 1671 828 313 1802 853 289 1933 919 247 2085 989 219 2277 1045 156 2416 1110 67 2578 1204 4 2721 1263 4 2857 1364 1 3021 1472 0 3183 1568 2 3316 1683 0 3464 1797 0 3624 1911 1 3756 2055 0 3902 468 386 448 484 386 449 485 371 484 515 400 532 517 385 597 520 386 632 536 388 700 552 389 781 599 390 847 615 389 955 643 391 1027 659 412 1114 680 396 1212 698 385 1319 715 377 1435 754 377 1564 788 370 1680 821 353 1817 871 336 1951 910 303 2104 963 272 2252 1049 204 2415 1096 138 2553 1189 44 2722 1290 4 2881 1369 15 3032 1473 1 3157 1566 0 3314 1680 1 3464 1781 1 3625 1925 16 3771 2055 0 3932 484 420 402 500 436 450 515 435 499 517 437 549 532 436 598 547 449 677 550 438 701 567 438 783 587 439 872 615 438 959 627 435 1023 644 446 1110 681 440 1245 709 429 1332 731 420 1450 755 400 1573 788 403 1695 815 394 1828 871 370 1959 905 337 2099 959 301 2263 1021 263 2410 1109 194 2568 1185 112 2729 1271 13 2889 1379 13 3036 1465 0 3180 1565 0 3314 1678 0 3463 1779 1 3624 1895 0 3756 2023 16 3934 482 486 449 482 516 496 500 501 531 516 500 581 515 499 629 530 498 678 536 498 729 567 488 812 584 501 892 606 499 963 648 489 1058 665 490 1143 681 479 1244 709 478 1356 725 477 1453 763 454 1580 797 451 1726 829 437 1857 860 419 1987 909 385 2113 954 366 2264 1024 310 2416 1096 255 2586 1194 194 2750 1269 104 2883 1356 8 3024 1451 13 3180 1565 0 3315 1664 14 3463 1780 2 3625 1893 0 3756 1993 0 3919 468 550 452 466 552 485 498 564 545 502 566 583 504 550 630 547 550 683 546 552 750 567 551 838 588 549 896 615 549 991 632 553 1072 654 549 1173 675 532 1267 696 540 1381 711 529 1485 760 522 1594 782 517 1731 815 478 1847 871 476 1992 896 467 2145 955 428 2286 1034 389 2465 1087 357 2594 1166 278 2738 1272 222 2891 1352 101 3036 1450 22 3186 1527 0 3333 1664 12 3479 1777 0 3627 1893 0 3756 2021 14 3932 437 631 471 453 633 503 484 631 550 526 632 598 529 620 661 531 616 686 548 617 766 558 627 828 566 614 907 597 600 992 632 623 1091 660 601 1182 660 608 1281 702 586 1412 721 592 1495 742 583 1608 771 567 1746 825 551 1876 864 543 2017 907 519 2144 945 509 2289 1000 466 2461 1077 435 2610 1159 380 2751 1243 331 2903 1331 268 3044 1425 150 3186 1522 37 3346 1629 12 3476 1734 0 3623 1877 15 3762 2002 1 3918 433 702 514 438 699 534 498 713 594 504 700 630 533 700 681 546 711 742 550 699 809 563 698 872 553 672 930 566 666 1021 569 665 1098 620 663 1206 659 655 1304 686 666 1431 707 653 1502 723 643 1626 760 645 1784 790 645 1889 834 625 2032 875 602 2178 925 583 2314 998 547 2472 1060 523 2626 1131 480 2766 1225 447 2905 1305 381 3052 1401 324 3176 1504 218 3332 1601 122 3492 1729 21 3626 1855 0 3800 1982 0 3947 388 781 521 422 781 581 488 794 600 495 781 649 514 783 720 525 794 750 527 796 800 531 780 865 548 778 961 552 752 1049 534 772 1125 557 747 1234 577 741 1321 620 747 1443 674 740 1544 688 725 1652 724 730 1787 750 712 1909 794 699 2048 837 679 2196 892 676 2344 953 639 2499 1034 629 2639 1113 588 2794 1185 557 2924 1281 508 3064 1372 468 3201 1471 404 3352 1588 327 3499 1707 256 3643 1814 162 3782 1957 87 3931 345 875 541 395 863 607 421 880 636 449 882 692 488 879 714 494 868 782 511 882 843 521 884 899 526 880 960 540 875 1058 530 860 1142 532 847 1238 508 832 1335 540 803 1450 558 806 1579 623 822 1689 657 838 1835 692 815 1954 742 794 2083 797 778 2221 850 761 2371 913 752 2519 978 720 2649 1061 684 2785 1142 662 2924 1227 629 3076 1331 593 3197 1438 552 3359 1526 501 3470 1662 452 3643 1787 399 3804 1904 367 3919 303 963 570 333 958 615 386 978 648 427 975 699 443 979 757 456 969 797 461 980 878 464 991 936 466 982 1011 493 978 1078 494 963 1172 483 966 1264 473 951 1357 452 931 1471 468 911 1596 487 886 1728 538 893 1846 613 901 1965 665 893 2108 720 887 2252 778 876 2391 854 849 2523 920 826 2672 1002 811 2806 1085 776 2938 1166 753 3079 1267 718 3221 1386 694 3355 1499 646 3496 1604 631 3641 1740 580 3814 1868 581 3924 187 1074 611 243 1075 632 291 1091 694 350 1082 739 380 1089 779 391 1087 820 410 1092 873 433 1098 973 406 1100 1034 416 1120 1107 436 1091 1205 420 1081 1290 418 1064 1384 392 1058 1502 385 1036 1626 379 1025 1758 384 1011 1884 402 978 2011 507 983 2138 606 991 2282 671 974 2423 754 964 2544 816 957 2689 908 929 2824 991 908 2973 1093 880 3092 1206 855 3231 1310 825 3358 1431 797 3500 1557 771 3657 1678 759 3788 1832 747 3950 26 1195 638 63 1195 658 139 1210 723 213 1221 789 272 1221 808 281 1214 860 297 1213 914 321 1235 1000 289 1226 1046 290 1213 1130 325 1226 1227 352 1216 1316 312 1211 1432 303 1189 1534 260 1172 1658 233 1161 1778 210 1127 1878 219 1110 2033 206 1090 2152 244 1075 2308 476 1088 2447 600 1092 2574 700 1065 2712 808 1059 2848 908 1036 2992 1010 1017 3110 1124 995 3243 1244 957 3381 1370 934 3512 1487 922 3654 1628 912 3784 1771 901 3956 12 1310 671 0 1332 697 0 1332 747 20 1326 799 56 1331 831 70 1344 883 92 1341 940 104 1348 1009 97 1356 1079 98 1348 1164 82 1346 1239 170 1358 1352 141 1327 1439 83 1332 1563 79 1315 1668 40 1293 1790 30 1275 1910 25 1264 2042 10 1251 2179 12 1201 2330 1 1175 2446 163 1173 2581 475 1197 2727 633 1187 2859 763 1160 2979 896 1154 3130 1019 1128 3268 1129 1106 3380 1265 1086 3516 1402 1060 3656 1542 1065 3817 1695 1074 3952 9 1472 707 10 1466 739 8 1473 769 0 1473 826 0 1473 871 5 1490 919 3 1491 980 12 1495 1058 0 1491 1107 7 1490 1193 3 1504 1296 10 1511 1396 9 1495 1487 10 1476 1606 0 1488 1706 8 1463 1820 0 1447 1940 0 1418 2067 5 1405 2185 0 1382 2359 1 1357 2478 0 1322 2614 5 1297 2724 186 1301 2869 544 1314 3002 718 1295 3150 858 1267 3264 996 1244 3401 1132 1232 3526 1280 1225 3652 1444 1230 3791 1596 1237 3950 0 1602 720 0 1609 761 0 1610 794 1 1625 845 9 1619 899 3 1621 957 0 1633 1001 0 1627 1074 0 1642 1156 0 1635 1219 9 1642 1313 6 1639 1425 0 1652 1526 6 1642 1633 0 1635 1738 0 1618 1854 12 1606 1976 0 1594 2105 0 1585 2226 0 1554 2356 2 1523 2491 0 1503 2625 12 1461 2760 1 1422 2880 5 1399 3010 295 1431 3150 652 1431 3266 832 1417 3411 991 1386 3549 1139 1363 3681 1324 1370 3828 1505 1379 3962 0 1757 747 0 1750 785 1 1759 803 8 1756 862 0 1765 923 0 1768 966 8 1773 1042 12 1789 1111 8 1773 1179 1 1786 1274 9 1788 1355 2 1790 1451 8 1804 1558 1 1816 1676 1 1797 1772 9 1774 1871 9 1773 2014 8 1751 2111 1 1734 2260 8 1723 2388 6 1709 2512 8 1674 2642 0 1633 2781 4 1612 2906 4 1571 3024 0 1542 3153 98 1532 3272 560 1578 3411 812 1564 3536 993 1541 3668 1164 1539 3819 1336 1542 3966 0 1898 756 0 1897 787 8 1912 837 0 1907 894 0 1920 950 7 1920 1009 0 1936 1080 5 1940 1148 0 1940 1211 0 1937 1291 0 1947 1411 0 1944 1497 0 1953 1591 21 1939 1692 0 1983 1834 0 1945 1919 0 1944 2049 0 1929 2164 8 1917 2293 1 1893 2407 8 1870 2553 12 1841 2682 0 1829 2804 7 1788 2920 4 1752 3033 0 1723 3154 0 1687 3289 6 1662 3428 250 1701 3532 847 1735 3681 1088 1752 3835 1261 1738 3952 0 2051 796 0 2051 828 0 2050 869 0 2050 927 0 2061 991 13 2076 1053 10 2071 1110 5 2091 1185 0 2079 1259 0 2088 1340 7 2084 1448 7 2093 1528 6 2090 1631 8 2093 1709 7 2114 1849 1 2131 1977 9 2091 2059 7 2085 2179 0 2075 2327 0 2059 2424 0 2044 2552 0 2009 2679 11 1999 2824 16 1951 2938 0 1939 3054 0 1903 3164 17 1884 3315 5 1846 3417 7 1830 3565 179 1815 3706 872 1904 3858 1260 1980 3983 0 2214 837 0 2206 860 0 2199 895 16 2205 968 9 2201 1025 7 2216 1091 0 2231 1153 0 2234 1209 7 2235 1306 0 2226 1377 0 2247 1481 0 2236 1572 0 2241 1676 0 2256 1755 0 2252 1886 7 2247 1993 8 2292 2137 16 2256 2221 9 2231 2350 16 2221 2458 6 2206 2579 9 2185 2693 0 2157 2807 9 2135 2933 12 2106 3043 12 2073 3183 16 2054 3304 8 2032 3432 9 2004 3564 1 2005 3695 119 2004 3837 908 2080 3985 0 2362 877 0 2362 897 0 2360 935 14 2363 1007 6 2368 1056 7 2379 1128 10 2385 1182 6 2374 1272 0 2390 1355 5 2382 1430 6 2383 1513 6 2394 1622 1 2401 1697 6 2391 1819 6 2410 1931 2 2400 2016 8 2408 2161 1 2443 2282 0 2384 2366 6 2378 2487 10 2358 2620 5 2346 2714 3 2321 2831 8 2300 2967 5 2266 3080 3 2249 3193 11 2217 3320 12 2191 3454 7 2172 3570 10 2179 3703 0 2189 3852 658 2227 3999 10 2499 914 10 2508 955 16 2509 995 12 2506 1041 0 2518 1111 0 2520 1180 0 2523 1237 0 2537 1314 1 2522 1389 0 2531 1471 0 2531 1562 10 2530 1659 0 2540 1746 4 2548 1853 0 2547 1950 0 2549 2083 0 2549 2179 1 2558 2301 0 2573 2436 0 2531 2503 0 2525 2621 24 2484 2741 10 2461 2845 24 2449 2968 4 2429 3100 0 2416 3207 0 2386 3324 2 2364 3442 1 2356 3597 1 2344 3720 16 2333 3853 436 2399 3999 0 2641 964 0 2645 1012 5 2647 1051 7 2636 1117 7 2661 1164 10 2661 1226 0 2672 1302 0 2656 1367 1 2666 1435 11 2667 1541 11 2667 1605 6 2667 1692 5 2667 1818 1 2677 1915 4 2677 1988 8 2669 2105 21 2663 2225 9 2672 2325 6 2700 2441 9 2694 2577 16 2648 2665 15 2630 2768 0 2624 2861 13 2597 2966 4 2577 3092 1 2563 3203 1 2536 3325 11 2528 3463 10 2498 3587 1 2501 3728 10 2521 3846 78 2559 4003 0 2787 1046 0 2776 1062 1 2781 1100 1 2780 1146 9 2782 1220 5 2791 1323 13 2789 1370 1 2793 1432 16 2792 1504 13 2808 1585 0 2798 1660 6 2796 1742 6 2798 1835 14 2803 1941 7 2804 2028 4 2796 2121 14 2788 2241 0 2805 2348 7 2808 2462 10 2827 2601 1 2815 2680 5 2777 2768 0 2743 2904 5 2753 3012 1 2725 3126 0 2710 3243 0 2688 3332 0 2666 3474 12 2664 3605 11 2663 3742 1 2675 3873 15 2717 4014 0 2925 1139 11 2922 1160 4 2918 1162 1 2926 1233 15 2919 1308 12 2934 1382 12 2918 1440 12 2925 1497 0 2930 1574 0 2946 1644 9 2930 1732 10 2928 1791 6 2933 1889 4 2938 1975 9 2928 2066 9 2927 2172 0 2926 2277 5 2919 2375 0 2936 2487 4 2924 2595 15 2939 2736 7 2914 2825 15 2876 2902 5 2879 2996 12 2854 3141 3 2866 3248 0 2842 3363 0 2823 3485 4 2831 3623 0 2831 3748 12 2837 3880 134 2870 4023 5 3049 1224 7 3053 1246 0 3049 1274 7 3051 1325 0 3049 1388 0 3047 1440 0 3053 1518 10 3047 1580 0 3053 1640 12 3065 1707 12 3056 1786 4 3059 1848 19 3053 1945 5 3041 2006 4 3049 2108 12 3053 2212 8 3053 2302 5 3060 2399 3 3053 2504 13 3047 2631 0 3070 2733 11 3083 2866 0 3051 2940 0 3009 3051 1 2991 3140 0 2988 3260 0 2957 3375 1 2971 3506 3 2945 3624 25 2954 3746 4 3000 3894 349 3009 4037 0 3180 1308 15 3182 1339 12 3182 1371 0 3180 1413 4 3182 1474 13 3180 1561 6 3184 1620 0 3173 1658 1 3184 1708 1 3188 1779 0 3183 1842 3 3189 1913 5 3185 1969 6 3182 2052 6 3180 2125 0 3188 2229 7 3183 2339 1 3181 2424 3 3177 2517 3 3180 2641 0 3180 2734 14 3183 2881 11 3198 3012 0 3147 3072 3 3123 3155 16 3119 3280 0 3105 3395 13 3104 3508 0 3101 3636 0 3091 3754 0 3118 3874 545 3155 4055 12 3313 1445 13 3311 1455 13 3300 1483 14 3301 1524 3 3300 1570 0 3299 1644 13 3312 1715 0 3314 1750 0 3302 1807 11 3311 1880 13 3303 1916 8 3306 1981 3 3320 2058 1 3308 2126 3 3314 2182 10 3320 2280 5 3308 2362 13 3302 2467 4 3309 2558 3 3310 2669 9 3294 2786 19 3303 2886 4 3317 2997 3 3318 3119 0 3284 3203 0 3250 3307 3 3236 3426 0 3232 3521 3 3246 3641 15 3250 3767 12 3266 3941 722 3286 4063 13 3442 1578 13 3442 1609 2 3428 1630 4 3428 1650 1 3440 1700 14 3444 1775 11 3431 1827 17 3431 1866 0 3449 1919 4 3443 1966 0 3444 2019 8 3448 2073 10 3430 2128 23 3445 2204 15 3448 2241 0 3454 2340 7 3438 2401 13 3455 2507 16 3433 2621 23 3449 2695 14 3434 2786 0 3441 2902 0 3438 3037 12 3444 3147 0 3457 3249 17 3412 3346 2 3351 3412 15 3363 3554 0 3380 3682 1 3381 3785 14 3413 3931 892 3444 4075 0 3559 1740 0 3559 1744 15 3574 1788 3 3573 1820 2 3573 1857 1 3560 1909 16 3559 1986 0 3567 2007 10 3571 2055 14 3575 2112 14 3560 2148 20 3568 2178 0 3575 2224 1 3583 2288 9 3576 2316 10 3575 2389 6 3592 2479 3 3589 2549 8 3583 2659 0 3585 2736 6 3570 2861 17 3585 2976 14 3572 3060 24 3575 3168 4 3589 3296 13 3589 3411 1 3529 3460 1 3505 3569 16 3509 3673 2 3525 3816 19 3540 3933 1040 3589 4080 0 3705 1936 2 3720 1952 2 3704 1968 2 3704 2004 0 3703 2033 13 3703 2082 14 3699 2135 0 3682 2158 11 3678 2225 14 3705 2242 4 3695 2260 11 3703 2309 20 3713 2353 7 3697 2380 22 3704 2444 0 3721 2486 15 3728 2543 9 3719 2616 16 3716 2702 8 3720 2802 0 3725 2901 11 3716 3000 2 3711 3095 6 3720 3227 13 3720 3328 0 3721 3428 14 3721 3555 14 3659 3623 14 3639 3701 30 3642 3833 433 3673 3962 1231 3692 4080 16 3837 2161 15 3837 2164 16 3836 2181 17 3835 2186 29 3834 2258 30 3834 2291 1 3835 2326 0 3832 2350 4 3824 2387 14 3835 2420 11 3841 2422 10 3836 2460 16 3852 2487 10 3853 2520 7 3846 2551 14 3868 2599 14 3870 2649 0 3875 2682 8 3867 2766 15 3857 2864 6 3863 2958 7 3873 3071 1 3868 3169 0 3863 3283 4 3884 3391 1 3869 3476 28 3881 3603 1 3871 3690 16 3805 3740 15 3772 3850 702 3805 3965 1396 3821 4095 450 3983 2407 515 3967 2424 565 3982 2440 660 3982 2441 743 3981 2473 830 3968 2493 944 3983 2540 1035 3979 2577 1021 3977 2601 911 3970 2590 738 3983 2616 478 3992 2644 0 3999 2652 1 4000 2683 9 4015 2712 17 4000 2739 8 4023 2754 17 4016 2797 7 4024 2854 0 4047 2940 16 4020 3046 21 4031 3143 17 4016 3236 0 4027 3324 4 4031 3438 15 4035 3543 15 4041 3663 28 4031 3764 14 4002 3848 18 3938 3902 954 3935 3998 1577 3952 4080 486 385 419 531 354 420 517 339 438 547 353 514 563 339 580 565 353 630 594 353 697 588 352 766 617 352 840 637 350 936 680 342 1011 702 346 1114 695 352 1203 740 347 1341 771 337 1442 795 345 1573 828 337 1687 869 299 1809 903 294 1956 959 256 2089 1024 201 2243 1074 142 2416 1158 57 2590 1244 4 2734 1320 5 2874 1397 11 3036 1502 0 3191 1587 1 3316 1686 1 3463 1828 0 3594 1929 14 3771 2073 1 3904 531 387 434 550 372 436 534 388 469 563 400 530 580 388 581 582 399 660 585 399 689 616 389 798 632 390 861 637 387 931 675 391 1018 677 402 1115 713 392 1223 725 385 1315 747 385 1442 797 370 1572 828 362 1680 853 361 1818 888 335 1957 934 297 2097 1010 253 2258 1081 193 2419 1144 126 2583 1226 28 2722 1323 1 2882 1381 1 3021 1502 0 3167 1601 13 3330 1712 1 3475 1814 14 3609 1927 15 3771 2073 16 3918 532 450 403 563 435 435 534 436 497 549 436 549 564 436 612 580 450 663 582 439 714 624 439 796 606 440 863 660 447 943 663 436 1025 702 440 1120 703 435 1221 730 444 1347 763 427 1454 790 411 1574 837 396 1703 861 371 1826 904 369 1964 935 336 2105 995 305 2271 1057 257 2420 1147 194 2583 1224 90 2722 1299 8 2900 1378 0 3021 1499 0 3194 1586 0 3316 1712 0 3478 1812 15 3639 1928 14 3770 2072 0 3931 514 498 432 545 486 466 518 487 502 577 501 564 549 499 613 598 500 691 612 514 746 615 485 827 629 498 881 649 495 971 678 496 1052 682 483 1143 730 474 1221 747 469 1340 772 462 1461 802 461 1590 830 450 1734 845 435 1828 902 424 1966 960 387 2124 993 355 2274 1055 313 2406 1123 271 2590 1221 190 2734 1304 72 2876 1391 16 3036 1484 12 3195 1587 1 3317 1683 0 3464 1799 1 3626 1898 1 3786 2057 1 3936 531 552 450 518 552 471 547 551 516 564 568 566 566 550 630 582 563 666 595 565 749 599 555 829 630 554 906 646 550 977 660 548 1056 706 546 1162 720 530 1251 744 546 1376 764 536 1472 793 512 1596 835 499 1732 863 476 1840 903 484 1989 941 450 2135 989 434 2275 1052 390 2446 1118 351 2604 1206 287 2753 1292 207 2879 1371 98 3014 1467 7 3182 1583 0 3345 1678 0 3480 1790 0 3627 1923 13 3770 2028 14 3930 501 618 484 516 631 502 516 620 546 547 617 596 564 633 644 608 631 711 583 630 750 611 603 833 625 613 912 647 615 996 667 615 1094 695 604 1191 714 596 1286 727 590 1399 769 585 1510 772 577 1619 803 578 1743 867 554 1882 905 536 2010 949 519 2146 991 494 2292 1034 472 2457 1100 437 2602 1167 377 2746 1274 331 2897 1381 246 3050 1467 136 3185 1564 20 3323 1663 13 3476 1781 0 3626 1893 0 3761 2049 1 3933 495 703 524 512 714 549 504 684 552 560 711 628 564 714 664 566 698 727 596 711 809 584 685 874 607 668 940 612 656 1011 644 670 1127 675 688 1207 698 669 1302 730 658 1413 766 662 1527 748 658 1643 792 639 1784 834 637 1888 857 620 2031 921 592 2185 972 584 2322 1030 544 2474 1102 518 2620 1169 486 2779 1230 436 2891 1338 369 3053 1424 311 3178 1537 228 3343 1646 94 3490 1768 12 3622 1886 4 3787 1991 0 3921 453 792 526 482 782 552 495 769 586 525 796 631 550 798 708 575 782 749 560 797 808 578 807 862 605 776 944 605 766 1018 590 742 1109 583 732 1211 639 747 1336 677 743 1439 707 750 1558 736 735 1670 761 732 1788 806 716 1911 838 704 2042 881 692 2189 932 662 2343 993 646 2515 1080 618 2645 1142 579 2778 1217 550 2919 1323 489 3062 1413 453 3186 1487 392 3352 1617 326 3504 1722 239 3642 1841 134 3776 1975 70 3931 417 866 551 428 878 591 463 869 627 505 881 676 527 880 729 542 871 767 558 880 844 560 870 898 578 865 974 578 853 1054 564 852 1133 566 846 1246 563 841 1349 590 810 1439 625 816 1576 669 828 1689 707 815 1832 739 799 1943 787 793 2068 834 776 2216 892 755 2368 941 738 2498 1015 724 2637 1097 694 2790 1181 650 2928 1283 618 3067 1369 584 3204 1471 537 3341 1561 494 3472 1689 429 3632 1810 399 3776 1947 366 3955 381 966 571 387 955 625 411 969 645 463 978 684 493 1005 757 507 971 811 522 984 868 494 991 921 502 996 1001 520 968 1085 531 974 1167 531 962 1286 527 945 1378 513 917 1485 528 906 1609 560 894 1759 627 897 1864 675 894 1982 724 884 2114 760 887 2256 810 867 2397 879 854 2533 940 826 2654 1054 807 2806 1119 769 2939 1195 746 3082 1313 716 3215 1425 679 3357 1545 633 3496 1632 615 3661 1748 575 3814 1903 581 3939 282 1085 623 277 1088 624 320 1092 663 373 1107 729 418 1104 780 448 1097 816 473 1107 898 478 1095 963 465 1107 1029 445 1117 1116 505 1082 1227 463 1092 1284 470 1064 1403 455 1047 1515 446 1036 1638 452 1016 1756 459 992 1883 472 983 2021 605 991 2152 675 987 2289 735 978 2434 813 952 2556 878 949 2697 952 923 2835 1050 897 2963 1153 875 3096 1239 847 3239 1354 807 3360 1479 784 3507 1592 763 3651 1705 751 3771 1865 761 3949 110 1195 632 92 1196 638 162 1197 683 246 1220 762 336 1213 808 373 1211 858 370 1223 942 372 1227 982 354 1229 1038 366 1229 1141 401 1215 1241 411 1211 1321 396 1213 1445 376 1190 1542 367 1182 1663 328 1170 1783 298 1144 1902 308 1128 2042 314 1098 2189 396 1085 2305 583 1093 2452 681 1077 2582 782 1071 2728 869 1048 2847 938 1034 2976 1055 1021 3130 1153 984 3242 1277 958 3375 1396 935 3515 1510 924 3643 1654 916 3790 1789 910 3967 9 1326 649 0 1316 671 10 1325 709 57 1337 779 126 1332 838 144 1344 884 190 1359 952 206 1346 1038 203 1361 1108 191 1351 1186 173 1359 1275 255 1370 1373 239 1345 1480 196 1342 1595 175 1320 1682 135 1303 1807 107 1277 1918 70 1259 2053 64 1244 2188 69 1210 2348 94 1182 2472 343 1185 2596 591 1207 2749 701 1193 2869 811 1169 2996 922 1150 3130 1048 1131 3269 1170 1104 3394 1308 1086 3521 1423 1074 3657 1570 1067 3816 1720 1083 3963 16 1456 665 26 1457 707 15 1462 753 27 1474 799 23 1477 846 4 1486 913 1 1490 978 12 1495 1055 19 1487 1111 18 1501 1204 12 1495 1286 16 1505 1384 36 1491 1478 36 1487 1611 9 1481 1708 8 1463 1807 0 1454 1930 0 1440 2060 5 1400 2180 15 1379 2362 32 1340 2477 15 1312 2613 63 1289 2732 372 1304 2875 628 1309 3012 786 1286 3154 896 1258 3271 1043 1249 3406 1171 1238 3541 1323 1224 3663 1474 1229 3795 1630 1238 3963 0 1607 695 18 1597 724 0 1610 762 6 1617 823 10 1636 877 13 1629 941 0 1633 993 0 1646 1046 13 1637 1156 12 1646 1225 19 1652 1315 6 1644 1416 2 1651 1526 5 1641 1615 9 1642 1724 2 1620 1839 15 1619 1984 0 1608 2120 0 1586 2215 3 1551 2347 9 1530 2498 5 1498 2624 20 1461 2764 16 1420 2886 98 1414 3030 494 1428 3160 728 1421 3283 873 1408 3426 1023 1378 3556 1173 1372 3674 1360 1359 3804 1530 1392 3959 10 1757 727 17 1742 761 0 1750 785 6 1757 830 0 1773 908 8 1776 974 10 1775 1043 20 1777 1111 8 1785 1180 0 1809 1276 4 1801 1352 4 1811 1460 8 1814 1568 8 1814 1674 2 1800 1774 8 1789 1877 8 1781 1985 7 1757 2123 3 1739 2241 9 1721 2372 6 1701 2499 0 1666 2621 5 1636 2768 4 1612 2906 6 1572 3018 8 1543 3161 177 1527 3270 662 1570 3396 861 1558 3553 1036 1538 3698 1211 1540 3820 1401 1548 3967 0 1888 739 8 1897 764 0 1904 826 0 1920 870 10 1914 911 10 1919 994 8 1925 1073 0 1954 1117 0 1953 1201 12 1948 1296 6 1936 1383 0 1942 1484 8 1942 1574 8 1953 1676 12 1970 1815 15 1953 1927 1 1946 2050 7 1929 2171 8 1919 2292 8 1896 2408 7 1871 2523 0 1854 2666 1 1830 2805 4 1809 2914 4 1757 3035 21 1715 3159 8 1690 3300 13 1668 3427 463 1701 3562 923 1736 3688 1115 1737 3835 1293 1738 3958 0 2059 764 8 2050 811 2 2044 845 0 2050 894 7 2067 973 15 2074 1041 9 2069 1109 5 2084 1185 0 2076 1264 0 2098 1342 7 2089 1448 11 2089 1520 16 2092 1619 2 2104 1715 9 2113 1849 3 2130 1974 8 2107 2050 14 2092 2187 0 2076 2301 18 2059 2424 3 2046 2556 5 2014 2680 11 2003 2809 0 1981 2950 18 1930 3054 0 1907 3166 26 1871 3294 14 1845 3423 10 1821 3546 259 1820 3712 927 1910 3831 1285 1973 3959 1 2197 823 7 2208 838 2 2199 877 16 2215 941 23 2208 1002 7 2215 1074 12 2224 1140 12 2241 1221 0 2233 1305 20 2250 1397 0 2247 1481 14 2239 1578 0 2244 1656 0 2263 1755 14 2259 1892 8 2250 1993 7 2293 2145 23 2260 2227 16 2237 2357 22 2215 2455 22 2189 2572 9 2180 2688 0 2170 2820 7 2132 2929 24 2114 3051 12 2077 3180 12 2050 3300 10 2016 3423 14 2006 3563 31 1990 3695 300 1998 3844 1012 2083 3993 0 2370 837 1 2360 876 0 2362 917 14 2363 973 8 2370 1049 1 2376 1109 3 2384 1182 9 2386 1267 16 2388 1358 8 2382 1418 16 2395 1524 12 2400 1617 0 2396 1692 3 2400 1816 15 2404 1940 4 2399 2016 8 2408 2161 14 2439 2288 8 2392 2373 6 2368 2483 11 2348 2616 6 2347 2715 10 2337 2843 16 2286 2964 26 2265 3088 13 2239 3193 6 2220 3315 12 2191 3458 5 2185 3551 22 2173 3703 0 2186 3851 726 2209 3974 0 2509 894 7 2493 926 16 2509 974 21 2523 1020 0 2516 1096 6 2516 1171 0 2522 1237 16 2525 1309 18 2531 1386 9 2535 1475 0 2536 1567 10 2531 1646 13 2538 1748 10 2540 1852 3 2545 1936 1 2549 2068 2 2551 2181 9 2552 2304 6 2588 2439 0 2546 2506 6 2525 2621 27 2482 2741 13 2461 2848 25 2450 2969 23 2417 3099 0 2416 3207 0 2376 3314 0 2358 3434 12 2343 3594 5 2343 3719 11 2337 3849 544 2391 3988 8 2649 969 2 2646 981 0 2645 1012 14 2653 1094 14 2651 1142 16 2656 1226 22 2661 1291 4 2665 1360 16 2668 1432 12 2660 1525 12 2674 1612 11 2672 1698 14 2663 1799 7 2693 1899 7 2666 1985 13 2674 2110 25 2669 2221 7 2670 2320 18 2692 2443 1 2714 2583 12 2660 2659 0 2645 2768 0 2623 2861 20 2600 2969 7 2576 3088 17 2553 3207 1 2534 3324 9 2526 3461 11 2501 3587 1 2501 3728 5 2507 3837 255 2549 4023 12 2792 1029 11 2776 1062 10 2790 1108 11 2796 1147 19 2792 1225 9 2792 1290 5 2803 1362 8 2800 1430 20 2795 1504 7 2801 1578 12 2810 1662 10 2806 1752 11 2799 1838 27 2803 1947 11 2808 2032 4 2804 2126 18 2799 2231 0 2808 2350 22 2814 2468 8 2827 2598 1 2830 2695 10 2783 2763 5 2748 2909 5 2732 3002 4 2736 3103 1 2710 3240 19 2680 3337 4 2665 3474 18 2684 3615 11 2660 3740 4 2679 3857 182 2708 4006 4 2921 1100 0 2911 1132 5 2918 1160 6 2924 1230 17 2923 1297 22 2914 1365 16 2926 1440 12 2926 1500 3 2930 1571 0 2930 1630 4 2933 1723 6 2921 1783 6 2931 1888 4 2938 1973 1 2932 2053 16 2934 2179 0 2930 2281 13 2931 2377 0 2932 2486 10 2940 2603 20 2944 2732 15 2924 2835 8 2890 2905 16 2890 3007 15 2858 3145 16 2841 3232 17 2826 3364 4 2824 3486 14 2822 3620 4 2821 3740 24 2825 3881 324 2861 4044 20 3049 1194 7 3041 1218 16 3037 1242 0 3053 1282 0 3052 1359 4 3063 1452 13 3049 1498 5 3056 1575 12 3049 1640 12 3052 1687 12 3053 1757 4 3065 1855 1 3058 1944 22 3059 2023 4 3056 2093 12 3056 2206 21 3049 2298 7 3048 2398 0 3053 2497 13 3050 2624 21 3070 2743 5 3074 2857 1 3049 2939 17 2995 3053 12 2980 3140 0 2989 3260 1 2957 3375 3 2971 3503 14 2960 3628 5 2969 3761 5 2977 3878 476 3005 4036 6 3179 1275 4 3184 1312 25 3174 1328 0 3195 1381 5 3185 1473 15 3180 1537 22 3173 1606 0 3183 1668 0 3180 1707 8 3175 1758 9 3182 1839 0 3180 1920 13 3193 1978 6 3183 2053 10 3182 2128 15 3181 2229 0 3187 2326 12 3181 2428 7 3180 2521 9 3182 2644 3 3182 2737 5 3174 2871 11 3198 3012 17 3154 3084 4 3123 3178 16 3119 3280 0 3106 3396 13 3104 3508 0 3101 3636 3 3092 3755 15 3117 3879 617 3151 4042 15 3288 1407 1 3302 1437 13 3313 1456 14 3302 1515 18 3298 1557 3 3318 1618 14 3312 1706 10 3304 1750 16 3314 1823 4 3301 1872 24 3306 1921 21 3311 1989 7 3312 2056 7 3314 2132 16 3312 2187 10 3317 2283 7 3302 2374 16 3305 2470 8 3306 2574 4 3306 2664 24 3303 2793 3 3314 2883 13 3322 3003 24 3327 3128 0 3281 3203 0 3240 3271 0 3235 3398 14 3248 3536 1 3247 3641 15 3250 3767 0 3277 3912 777 3282 4057 18 3432 1539 4 3432 1571 15 3442 1615 4 3441 1645 14 3431 1694 25 3431 1770 14 3428 1818 26 3442 1878 0 3444 1903 3 3441 1934 0 3437 1996 10 3448 2075 4 3437 2112 23 3445 2204 16 3442 2236 0 3458 2325 2 3430 2393 1 3443 2492 14 3435 2621 0 3437 2685 21 3448 2818 0 3444 2911 0 3442 3039 18 3441 3151 0 3455 3247 3 3399 3332 13 3367 3425 16 3364 3555 0 3380 3659 14 3380 3784 14 3410 3927 941 3428 4046 0 3559 1727 1 3560 1728 13 3572 1757 3 3575 1791 4 3574 1832 26 3561 1916 14 3570 1956 16 3566 2011 4 3565 2049 9 3565 2104 14 3568 2125 20 3568 2172 1 3573 2224 8 3583 2280 16 3575 2337 10 3578 2391 10 3575 2471 6 3585 2549 0 3575 2648 1 3568 2729 6 3569 2849 7 3573 2943 14 3578 3063 3 3587 3162 14 3575 3294 14 3588 3411 1 3529 3460 17 3481 3558 13 3511 3671 17 3513 3789 169 3538 3948 1086 3564 4076 1 3704 1904 1 3704 1936 3 3704 1967 2 3705 1972 0 3705 2006 1 3692 2066 0 3691 2121 12 3693 2170 0 3689 2225 1 3698 2231 11 3706 2268 16 3699 2305 20 3713 2370 15 3705 2389 22 3704 2428 18 3713 2486 8 3729 2529 18 3713 2605 22 3719 2707 16 3711 2800 21 3716 2899 6 3711 2995 12 3720 3103 22 3717 3213 26 3732 3336 2 3719 3428 16 3723 3556 16 3659 3623 17 3640 3701 30 3642 3833 541 3671 3963 1252 3706 4082 14 3835 2131 2 3822 2150 15 3835 2177 16 3836 2181 3 3834 2213 28 3834 2264 1 3836 2300 1 3832 2350 4 3825 2387 15 3837 2422 0 3850 2421 0 3836 2460 16 3852 2487 11 3847 2514 13 3851 2557 8 3858 2594 0 3876 2649 0 3868 2675 8 3876 2743 15 3858 2865 16 3873 2968 25 3862 3070 1 3868 3169 4 3858 3280 5 3875 3364 6 3868 3477 29 3882 3600 15 3882 3701 16 3805 3740 15 3786 3834 800 3787 3982 1412 3839 4093 482 3967 2377 546 3967 2393 595 3981 2424 647 3968 2425 759 3983 2444 843 3994 2475 944 3957 2527 1069 3968 2575 1087 3967 2591 969 3957 2593 850 3977 2646 621 3983 2663 165 3994 2664 1 3997 2682 7 3999 2704 16 3999 2746 24 4023 2762 25 4016 2813 16 4031 2861 3 4021 2930 14 4022 3046 14 4024 3136 14 4016 3235 0 4027 3324 16 4043 3451 16 4028 3540 14 4040 3663 7 4043 3739 27 4016 3862 82 3938 3889 986 3934 4012 1654 3967 4095 552 381 402 563 369 434 583 338 423 568 353 500 584 369 536 614 342 604 629 353 657 650 353 745 674 353 825 681 364 900 711 352 994 716 344 1098 757 353 1207 772 342 1314 821 328 1436 843 335 1560 862 335 1671 910 297 1802 931 289 1942 987 231 2080 1034 196 2244 1111 142 2431 1181 48 2583 1272 12 2737 1344 0 2875 1441 13 3041 1533 5 3167 1648 2 3320 1748 0 3478 1862 0 3609 1975 0 3815 2090 14 3918 567 402 388 610 370 418 599 402 469 597 389 531 598 388 554 626 403 644 620 402 694 646 404 773 647 394 842 681 402 927 717 400 1022 731 378 1120 757 394 1213 770 381 1313 804 384 1457 831 384 1569 871 362 1689 903 338 1819 937 322 1950 984 291 2105 1041 238 2246 1112 193 2431 1168 106 2572 1245 13 2711 1334 0 2874 1435 16 3041 1560 0 3185 1647 0 3329 1758 12 3488 1845 1 3609 1975 14 3783 2090 14 3918 584 422 404 600 406 433 584 435 485 600 437 564 600 436 582 631 465 650 636 450 712 661 450 779 680 449 888 686 436 945 732 428 1030 722 437 1123 786 431 1212 781 422 1338 802 427 1452 837 412 1564 858 386 1702 911 386 1828 942 348 1952 972 344 2106 1058 295 2287 1125 241 2416 1191 161 2569 1260 75 2724 1304 11 2852 1422 3 3007 1510 4 3170 1644 3 3319 1718 1 3477 1845 0 3610 1933 1 3800 2075 15 3918 613 500 404 612 486 437 627 500 499 645 501 549 643 501 586 647 488 639 664 486 718 666 490 775 686 489 881 701 488 949 722 475 1051 728 483 1130 760 486 1227 775 478 1341 807 473 1451 813 458 1587 855 444 1703 894 443 1819 955 412 1964 985 386 2135 1047 346 2261 1111 309 2442 1166 255 2602 1239 168 2717 1326 67 2881 1424 2 3012 1528 3 3169 1604 12 3317 1716 1 3477 1818 13 3635 1957 0 3768 2087 14 3917 598 550 434 613 566 455 586 564 530 613 552 567 660 566 635 646 564 684 658 568 759 677 565 825 679 552 926 695 550 989 705 550 1059 727 542 1157 767 552 1269 788 529 1373 823 530 1510 853 504 1597 880 488 1744 908 479 1861 959 463 1991 993 458 2137 1051 419 2279 1112 395 2463 1172 330 2591 1264 276 2758 1322 194 2891 1432 90 3019 1509 0 3192 1594 0 3314 1719 1 3480 1807 13 3636 1971 0 3772 2058 0 3906 583 604 473 570 615 478 597 617 521 602 604 569 630 631 662 663 631 712 647 618 788 666 629 843 684 605 929 722 609 1009 727 622 1086 754 605 1175 753 614 1292 768 605 1380 810 593 1488 838 588 1631 842 572 1740 893 554 1875 943 541 2026 976 518 2154 1027 505 2308 1097 469 2455 1155 421 2594 1238 379 2766 1331 318 2909 1397 241 3052 1494 134 3191 1586 28 3337 1700 0 3484 1799 2 3628 1916 13 3776 2054 0 3962 526 710 487 551 713 535 581 697 567 572 726 600 602 699 639 629 728 728 639 728 792 658 712 864 673 670 933 682 672 1014 671 695 1106 724 678 1198 753 681 1299 785 668 1407 817 657 1526 829 664 1650 845 655 1764 855 637 1897 915 622 2036 959 594 2174 1025 580 2329 1080 540 2475 1143 514 2605 1216 467 2770 1305 437 2916 1378 382 3045 1471 286 3201 1562 200 3333 1693 75 3498 1784 9 3638 1907 1 3763 2015 1 3921 532 766 526 561 766 569 571 778 613 579 767 656 609 796 696 627 784 762 615 810 810 629 784 868 606 804 957 654 767 1030 634 764 1112 672 739 1241 732 750 1311 730 759 1417 750 751 1546 769 738 1655 810 735 1785 856 718 1939 876 697 2065 941 687 2194 993 659 2352 1027 644 2490 1106 622 2630 1180 585 2761 1266 548 2901 1354 497 3078 1441 434 3201 1549 390 3354 1662 312 3480 1758 212 3652 1879 129 3783 1995 36 3922 496 854 592 508 865 609 517 864 617 538 864 664 554 880 699 593 881 749 610 883 829 622 899 893 620 880 966 612 888 1037 601 866 1145 600 846 1234 634 833 1336 657 823 1470 689 832 1593 731 832 1694 774 825 1838 798 804 1944 834 803 2072 905 783 2221 934 751 2364 995 737 2504 1065 708 2654 1173 670 2776 1212 642 2912 1291 633 3066 1402 576 3177 1501 525 3342 1613 483 3479 1723 420 3631 1837 383 3773 1955 348 3944 483 966 596 483 952 624 489 978 647 516 977 667 529 980 729 555 982 774 577 1007 858 577 992 925 575 990 994 591 973 1076 575 975 1176 580 963 1265 573 934 1376 564 935 1500 584 908 1602 629 900 1706 681 920 1864 726 911 1964 768 900 2107 840 881 2253 905 859 2395 937 834 2520 991 833 2675 1064 805 2814 1170 787 2969 1255 739 3093 1351 712 3199 1457 674 3351 1546 635 3484 1690 597 3640 1792 563 3780 1899 567 3918 385 1068 621 408 1072 641 419 1068 651 446 1090 686 493 1084 784 513 1083 815 531 1109 870 531 1117 958 552 1112 1015 534 1113 1095 536 1083 1168 543 1104 1296 531 1056 1375 529 1057 1508 517 1041 1647 543 1023 1747 538 995 1874 589 998 1989 683 1007 2099 749 998 2271 799 981 2401 880 959 2562 947 946 2689 1035 926 2808 1111 900 2975 1190 872 3102 1282 834 3249 1402 813 3364 1466 798 3475 1618 766 3648 1737 757 3772 1871 745 3934 265 1191 651 289 1207 652 299 1193 679 308 1210 708 371 1215 768 444 1215 830 469 1240 905 456 1241 971 486 1232 1049 450 1240 1116 488 1229 1218 467 1227 1310 475 1199 1444 456 1190 1517 439 1170 1660 417 1163 1775 432 1142 1906 424 1120 2021 426 1104 2148 560 1111 2303 676 1101 2424 766 1083 2554 840 1071 2711 934 1057 2850 1043 1031 2997 1096 1006 3105 1205 985 3243 1297 962 3382 1440 935 3528 1552 925 3614 1676 905 3772 1844 912 3950 53 1329 657 64 1324 681 77 1324 709 87 1342 737 174 1363 815 295 1360 885 341 1357 942 337 1370 1004 347 1368 1092 344 1362 1156 326 1363 1234 371 1372 1341 381 1374 1450 347 1342 1577 338 1327 1663 288 1321 1786 254 1291 1906 228 1259 2038 248 1232 2180 244 1222 2330 305 1183 2445 551 1209 2603 693 1199 2735 774 1191 2854 897 1160 2980 1005 1139 3134 1130 1124 3240 1238 1099 3376 1356 1085 3535 1469 1083 3674 1615 1057 3831 1740 1067 3944 16 1452 707 10 1461 743 11 1463 747 10 1469 795 9 1484 874 44 1488 930 58 1496 955 95 1503 1046 112 1502 1118 110 1490 1204 90 1499 1275 67 1509 1382 202 1503 1467 131 1495 1596 110 1488 1702 84 1463 1859 51 1439 1931 28 1419 2079 13 1399 2221 0 1393 2352 9 1365 2484 46 1319 2629 227 1296 2734 581 1322 2879 740 1308 3007 864 1282 3128 981 1275 3270 1103 1246 3373 1239 1236 3537 1371 1225 3667 1508 1215 3812 1679 1222 3934 28 1599 715 9 1609 749 0 1615 748 14 1625 798 14 1628 857 34 1626 953 20 1637 1000 1 1657 1108 2 1662 1173 8 1646 1268 23 1649 1348 7 1638 1442 2 1667 1549 0 1658 1611 0 1644 1766 0 1650 1884 11 1623 1997 18 1587 2132 14 1573 2275 19 1545 2384 19 1522 2539 9 1494 2652 12 1454 2778 2 1422 2905 264 1420 3023 636 1436 3119 825 1413 3275 956 1405 3421 1089 1367 3530 1259 1367 3659 1397 1360 3806 1567 1378 3961 0 1747 751 0 1758 763 1 1765 782 0 1767 821 0 1773 900 3 1776 977 8 1785 1055 8 1791 1116 0 1803 1197 0 1802 1277 2 1802 1383 4 1816 1462 1 1820 1559 14 1830 1679 8 1798 1803 10 1803 1902 10 1785 2022 19 1764 2137 2 1749 2253 6 1731 2406 3 1709 2553 5 1676 2666 6 1635 2776 19 1610 2925 6 1562 3046 12 1530 3178 404 1554 3289 800 1570 3417 957 1558 3553 1074 1537 3687 1255 1527 3840 1442 1538 3975 0 1895 754 1 1904 740 0 1904 780 0 1912 813 2 1918 887 6 1920 992 0 1936 1077 10 1935 1142 8 1952 1217 12 1944 1301 20 1940 1402 0 1942 1486 14 1951 1585 8 1951 1689 0 1976 1811 0 1955 1921 8 1936 2045 2 1936 2148 1 1927 2275 6 1917 2386 4 1880 2540 5 1850 2649 0 1823 2784 6 1778 2915 12 1740 3054 0 1710 3188 6 1686 3306 136 1663 3450 701 1709 3562 976 1729 3674 1171 1719 3844 1350 1714 4001 2 2052 757 1 2052 758 9 2043 811 0 2073 846 7 2089 920 14 2073 1000 3 2084 1095 7 2084 1156 0 2098 1230 0 2095 1321 0 2094 1416 7 2100 1514 5 2095 1624 7 2102 1731 0 2124 1861 0 2135 1974 0 2107 2050 18 2091 2180 7 2090 2292 1 2066 2424 12 2053 2553 9 2031 2675 0 1983 2816 0 1959 2926 14 1929 3051 14 1893 3172 3 1879 3321 12 1843 3462 0 1809 3579 455 1840 3690 1022 1914 3842 1305 1957 3974 7 2206 785 9 2191 813 7 2191 844 0 2222 913 13 2215 988 3 2208 1050 0 2231 1133 0 2227 1210 19 2237 1275 5 2244 1369 3 2246 1465 0 2245 1563 0 2262 1667 7 2253 1741 0 2265 1864 14 2277 1999 8 2291 2123 2 2256 2215 7 2247 2311 0 2236 2444 19 2218 2565 10 2196 2669 0 2175 2791 16 2122 2949 26 2102 3047 9 2080 3187 9 2044 3313 13 2013 3430 4 1999 3568 1 1983 3725 487 2011 3831 1133 2083 3968 16 2346 809 18 2360 837 2 2356 869 8 2382 926 0 2376 982 23 2368 1095 15 2378 1182 6 2379 1246 28 2376 1330 6 2394 1436 7 2402 1506 6 2394 1611 0 2392 1721 3 2400 1822 8 2411 1921 8 2414 2034 14 2408 2161 3 2438 2287 13 2390 2367 14 2378 2487 6 2361 2620 18 2342 2741 11 2323 2836 14 2298 2956 14 2266 3060 9 2242 3188 10 2211 3330 10 2185 3458 24 2177 3589 18 2167 3698 83 2182 3823 812 2219 3990 20 2499 866 6 2483 884 17 2494 925 10 2520 982 11 2525 1059 0 2531 1148 0 2525 1252 4 2539 1322 8 2539 1382 11 2531 1476 0 2536 1581 7 2547 1653 12 2547 1753 4 2547 1848 0 2552 1956 3 2547 2063 12 2552 2179 0 2568 2310 19 2576 2456 4 2531 2525 0 2515 2622 5 2493 2764 21 2467 2876 25 2454 2977 6 2430 3093 19 2402 3213 0 2378 3323 4 2364 3424 8 2357 3577 5 2348 3727 10 2349 3857 669 2393 4007 10 2633 932 2 2638 948 15 2646 992 10 2643 1060 7 2649 1114 8 2664 1204 0 2661 1281 0 2674 1387 12 2677 1442 21 2660 1529 10 2666 1601 22 2661 1698 17 2672 1801 0 2689 1908 5 2682 2002 21 2682 2121 0 2674 2221 2 2687 2338 14 2688 2451 15 2700 2588 17 2646 2666 14 2631 2768 9 2620 2879 4 2594 2996 14 2594 3096 20 2561 3215 16 2544 3325 26 2502 3458 0 2511 3578 4 2491 3748 13 2508 3863 483 2544 4013 9 2790 976 12 2782 1011 15 2797 1056 22 2799 1099 9 2787 1169 2 2794 1251 8 2790 1348 18 2798 1424 12 2805 1490 0 2810 1558 0 2805 1667 9 2804 1751 24 2796 1854 5 2808 1941 7 2808 2042 5 2807 2147 3 2814 2236 5 2806 2318 16 2808 2458 7 2825 2572 6 2829 2694 0 2781 2791 14 2743 2909 38 2748 3003 1 2719 3111 1 2718 3241 0 2691 3332 2 2679 3447 5 2669 3600 5 2666 3702 2 2687 3885 384 2711 4019 4 2922 1044 0 2918 1072 12 2914 1138 15 2926 1181 2 2908 1258 11 2928 1318 12 2939 1412 4 2945 1504 2 2931 1562 23 2924 1615 16 2937 1709 27 2938 1803 12 2932 1867 0 2936 1978 11 2940 2079 6 2945 2137 2 2948 2235 16 2932 2359 26 2908 2492 20 2923 2599 13 2942 2722 5 2929 2807 0 2899 2904 4 2878 3019 0 2874 3120 16 2841 3240 5 2837 3383 0 2824 3486 0 2824 3607 13 2804 3744 13 2810 3875 478 2870 4001 14 3051 1159 0 3062 1192 16 3038 1237 18 3040 1280 4 3047 1343 24 3041 1404 2 3051 1490 12 3064 1567 15 3059 1640 0 3051 1693 4 3056 1794 13 3062 1847 4 3063 1948 4 3062 2034 5 3058 2105 5 3056 2199 4 3056 2310 4 3062 2407 4 3053 2505 10 3055 2617 2 3068 2716 9 3071 2865 5 3054 2948 1 3014 3053 0 3005 3166 0 2988 3254 13 2973 3382 0 2971 3484 4 2954 3619 0 2977 3751 10 2975 3877 561 3017 4001 24 3184 1241 3 3199 1272 0 3182 1302 1 3195 1374 0 3180 1440 15 3183 1505 13 3170 1587 4 3181 1668 3 3179 1732 3 3175 1784 11 3185 1863 6 3182 1928 9 3181 1981 18 3172 2060 32 3170 2153 5 3194 2222 11 3188 2314 0 3180 2423 0 3187 2543 26 3170 2641 0 3173 2732 5 3173 2864 23 3186 2989 20 3160 3089 13 3132 3192 13 3108 3305 14 3116 3389 12 3105 3507 3 3099 3635 14 3104 3739 1 3141 3877 723 3154 4017 11 3314 1398 12 3315 1417 16 3316 1451 12 3304 1483 11 3300 1547 0 3313 1587 15 3313 1697 3 3311 1750 5 3301 1815 16 3309 1873 15 3314 1939 4 3314 1989 15 3312 2051 7 3312 2110 3 3314 2182 8 3297 2269 0 3317 2358 27 3311 2476 4 3310 2585 3 3320 2679 11 3322 2775 22 3307 2895 4 3314 3013 12 3330 3123 3 3284 3200 47 3235 3309 0 3247 3437 0 3234 3553 25 3231 3633 9 3243 3783 12 3265 3914 843 3304 4058 2 3432 1561 4 3434 1564 0 3429 1593 4 3430 1631 16 3432 1692 1 3440 1730 25 3428 1797 37 3428 1876 10 3425 1913 2 3433 1988 11 3428 2050 2 3434 2095 12 3439 2114 21 3438 2196 10 3446 2252 0 3444 2342 2 3453 2402 5 3439 2488 0 3458 2602 14 3435 2683 6 3446 2789 2 3442 2907 2 3438 3038 18 3444 3149 26 3449 3274 13 3411 3308 2 3376 3401 14 3366 3569 0 3380 3685 2 3354 3800 18 3408 3934 978 3432 4089 3 3561 1722 0 3560 1727 15 3573 1754 3 3575 1790 12 3563 1824 2 3561 1880 3 3559 1945 1 3559 1998 2 3561 2066 24 3565 2092 7 3551 2145 9 3566 2182 25 3563 2240 26 3563 2282 7 3582 2325 5 3574 2393 18 3580 2462 6 3585 2549 1 3582 2639 1 3580 2747 4 3569 2854 14 3566 2965 3 3589 3063 4 3587 3163 15 3573 3295 1 3588 3437 0 3550 3472 28 3497 3546 16 3497 3698 3 3523 3816 371 3541 3958 1137 3577 4081 16 3689 1932 17 3692 1938 44 3691 1964 28 3691 1993 28 3691 2005 0 3691 2064 2 3713 2095 0 3703 2169 4 3693 2198 16 3685 2239 2 3715 2272 6 3700 2321 5 3709 2342 15 3705 2403 10 3723 2427 17 3716 2488 0 3713 2543 11 3729 2593 11 3730 2683 1 3725 2805 8 3730 2898 10 3716 3004 12 3717 3125 5 3712 3202 6 3728 3301 3 3719 3423 1 3731 3554 14 3658 3622 14 3642 3702 30 3642 3807 611 3686 3981 1286 3721 4095 16 3824 2114 16 3835 2133 16 3836 2163 16 3836 2180 17 3821 2214 14 3823 2253 1 3824 2314 1 3832 2350 55 3813 2387 0 3827 2432 0 3841 2396 33 3835 2467 10 3829 2486 18 3841 2534 6 3857 2556 10 3854 2608 29 3859 2647 24 3853 2706 34 3862 2762 12 3856 2860 14 3860 2966 14 3861 3054 2 3870 3163 10 3863 3263 0 3855 3372 0 3882 3494 15 3868 3586 15 3881 3700 15 3790 3769 4 3786 3816 865 3803 3979 1474 3837 4080 486 3969 2379 565 3953 2364 599 3969 2380 667 3953 2395 777 3969 2443 888 3966 2476 986 3967 2510 1071 3969 2575 1164 3953 2599 1080 3969 2618 946 3983 2609 763 3985 2629 472 3997 2674 5 3991 2700 2 3995 2721 11 3987 2729 14 4005 2784 16 4015 2840 30 4029 2859 19 4020 2945 21 4025 3039 11 4026 3148 28 4026 3258 42 4003 3352 0 4017 3442 13 4031 3559 3 4028 3651 26 4027 3761 1 4029 3866 294 3938 3875 1051 3934 3997 1670 3967 4095 634 369 415 635 369 420 664 353 422 662 340 484 652 371 537 691 353 599 682 372 678 703 382 749 732 357 818 744 353 883 763 356 1001 792 348 1096 814 346 1213 838 347 1306 872 346 1428 874 337 1551 908 315 1661 939 301 1807 987 280 1935 1043 237 2095 1102 198 2260 1175 112 2426 1251 39 2578 1323 0 2731 1401 17 2873 1479 0 3020 1576 5 3156 1683 5 3332 1787 3 3491 1892 1 3594 2037 13 3769 2138 0 3921 644 413 413 649 384 403 679 403 493 650 402 488 664 403 567 678 416 627 701 418 710 712 420 775 730 403 842 736 413 912 765 405 1022 803 395 1125 828 390 1222 848 384 1333 868 384 1442 898 363 1571 940 353 1706 948 339 1798 997 322 1962 1039 285 2102 1102 239 2246 1170 169 2431 1253 86 2583 1318 14 2734 1401 10 2869 1478 0 3025 1579 3 3161 1680 2 3325 1782 1 3489 1892 0 3593 1998 3 3758 2138 3 3905 665 406 403 679 418 435 691 435 483 651 437 546 666 450 595 683 464 633 712 439 696 700 453 765 721 461 850 758 453 942 750 467 1027 801 438 1120 814 424 1216 833 424 1329 849 423 1452 904 407 1570 929 394 1695 959 370 1826 997 363 1960 1051 318 2113 1109 281 2275 1167 213 2411 1246 158 2583 1302 56 2718 1399 0 2866 1477 1 3022 1576 1 3186 1654 1 3316 1768 15 3461 1878 12 3620 2021 1 3757 2110 1 3903 662 482 416 665 485 452 679 484 515 664 486 548 679 500 599 692 513 646 712 517 743 729 511 793 723 489 864 747 510 955 780 499 1055 780 488 1117 818 480 1232 826 485 1356 869 468 1467 910 457 1594 935 432 1712 963 407 1830 1015 411 1988 1037 378 2117 1112 341 2269 1163 282 2420 1252 236 2606 1330 151 2732 1379 35 2876 1494 5 3025 1569 0 3178 1666 11 3328 1775 0 3489 1869 0 3605 1996 1 3783 2107 1 3920 691 551 435 680 566 439 680 551 516 678 552 551 709 564 616 685 564 695 728 566 744 742 565 824 724 566 911 771 561 998 781 563 1066 793 539 1139 814 540 1251 854 527 1373 853 507 1476 883 516 1595 921 510 1743 973 479 1864 1010 470 1983 1038 451 2131 1085 411 2268 1172 362 2431 1225 323 2596 1292 255 2736 1374 177 2889 1466 52 3018 1570 0 3207 1641 0 3330 1751 0 3483 1846 0 3611 1976 13 3786 2090 13 3904 634 629 463 637 629 503 651 630 546 655 630 595 671 629 642 725 645 714 738 618 785 724 632 827 756 616 917 771 616 1003 786 613 1070 802 589 1157 812 613 1277 848 599 1376 864 583 1498 902 578 1618 921 567 1740 939 552 1872 987 542 2006 1033 512 2156 1089 485 2287 1149 447 2447 1224 389 2597 1291 353 2757 1367 294 2886 1450 205 3045 1534 120 3201 1607 14 3330 1744 1 3480 1845 0 3639 1986 3 3787 2072 0 3929 645 683 472 660 696 519 648 695 547 650 699 584 693 700 663 708 689 699 709 700 793 715 710 850 726 698 926 753 697 1018 775 686 1105 778 671 1188 789 681 1310 825 677 1424 860 653 1519 879 664 1652 907 651 1777 937 640 1910 988 613 2048 1024 600 2165 1082 573 2328 1130 541 2475 1184 513 2623 1259 474 2777 1351 403 2905 1428 343 3058 1531 278 3212 1609 185 3334 1725 40 3492 1815 19 3643 1929 13 3771 2087 13 3924 596 781 517 603 781 552 643 781 598 643 768 631 660 784 668 676 785 746 693 800 798 710 794 889 724 794 973 728 766 1048 723 767 1127 743 752 1220 775 759 1323 810 766 1432 849 735 1559 869 727 1665 888 722 1774 918 709 1911 968 705 2074 1005 674 2174 1046 659 2364 1100 641 2492 1178 601 2632 1235 575 2766 1310 535 2909 1403 475 3048 1501 436 3220 1598 363 3356 1706 288 3482 1779 192 3623 1886 93 3758 2054 30 3934 601 850 566 592 880 609 619 865 612 602 864 647 616 881 697 658 881 732 688 896 826 689 897 894 700 892 989 681 888 1046 670 853 1159 681 843 1256 712 832 1328 747 834 1464 767 831 1592 812 824 1706 832 826 1821 858 808 1946 917 798 2079 970 775 2216 1000 745 2367 1059 726 2511 1135 713 2657 1197 695 2800 1289 658 2925 1384 603 3084 1448 577 3220 1559 517 3350 1652 469 3484 1770 412 3630 1887 379 3788 2019 337 3929 526 952 592 553 954 617 572 961 636 577 966 667 594 969 713 624 998 785 658 1001 855 647 996 911 658 1005 983 678 996 1090 651 980 1160 666 972 1264 656 945 1378 670 920 1493 687 916 1603 742 921 1725 771 920 1863 827 919 1982 852 902 2106 922 872 2247 952 859 2377 1024 855 2524 1081 817 2679 1141 808 2808 1225 771 2961 1316 744 3102 1424 710 3214 1525 665 3365 1609 630 3480 1707 600 3646 1829 570 3777 1971 576 3932 461 1064 607 498 1062 642 511 1078 677 515 1081 688 512 1093 754 568 1097 819 599 1097 884 590 1112 933 608 1112 1018 615 1134 1095 626 1105 1187 603 1093 1289 600 1065 1401 600 1060 1511 573 1037 1643 613 1009 1765 635 1006 1880 710 1026 2011 779 1010 2134 824 1002 2273 872 989 2416 943 962 2567 998 943 2704 1086 926 2811 1182 888 2948 1270 869 3100 1344 831 3234 1430 812 3371 1557 786 3509 1664 758 3656 1784 753 3807 1938 732 3948 379 1195 650 392 1216 647 417 1208 680 422 1198 714 453 1201 750 489 1225 808 534 1238 908 542 1227 961 558 1233 1064 555 1242 1118 550 1254 1236 570 1221 1331 562 1214 1431 551 1195 1520 521 1187 1641 520 1165 1797 537 1131 1917 542 1116 2042 587 1094 2160 713 1107 2303 763 1118 2443 850 1087 2555 919 1077 2714 1009 1049 2839 1097 1028 2985 1165 1023 3113 1262 981 3227 1363 965 3389 1490 927 3509 1625 921 3647 1747 903 3799 1870 898 3942 203 1316 656 214 1325 691 226 1312 704 251 1339 754 273 1354 787 360 1354 859 429 1368 957 418 1373 990 459 1372 1089 447 1388 1168 434 1386 1245 455 1387 1345 474 1380 1476 454 1350 1567 441 1327 1673 436 1310 1814 411 1280 1920 401 1268 2069 396 1245 2211 405 1212 2330 500 1226 2482 688 1225 2614 793 1204 2733 897 1192 2863 993 1169 3002 1098 1153 3135 1183 1117 3264 1293 1098 3391 1419 1090 3528 1537 1069 3657 1652 1069 3804 1804 1075 3943 9 1463 673 19 1463 701 19 1464 729 20 1469 763 29 1484 814 104 1491 916 221 1511 989 231 1509 1023 262 1507 1123 269 1511 1202 255 1519 1299 231 1536 1404 332 1525 1501 299 1495 1601 265 1491 1716 246 1470 1853 225 1453 1969 201 1441 2100 148 1412 2215 125 1389 2343 169 1375 2498 247 1319 2627 471 1328 2762 696 1328 2883 836 1303 2996 950 1296 3123 1047 1259 3255 1186 1239 3405 1301 1232 3531 1446 1223 3671 1592 1227 3829 1742 1225 3948 19 1605 700 0 1609 716 8 1599 743 1 1632 773 7 1624 832 0 1633 902 0 1645 994 26 1645 1056 40 1642 1149 52 1647 1242 3 1665 1317 14 1670 1413 12 1673 1511 96 1659 1627 63 1644 1745 40 1639 1853 36 1622 1974 32 1603 2114 0 1585 2240 0 1564 2363 3 1528 2497 8 1495 2625 36 1454 2764 148 1429 2898 518 1454 3050 776 1463 3148 918 1424 3270 1030 1406 3417 1170 1387 3540 1335 1371 3683 1441 1378 3791 1626 1388 3960 11 1744 725 0 1757 758 0 1764 773 8 1757 819 0 1781 858 3 1792 950 11 1793 1031 12 1789 1111 0 1800 1187 8 1808 1267 11 1797 1364 20 1805 1454 14 1825 1567 17 1819 1698 7 1815 1779 21 1808 1891 18 1776 2001 12 1784 2152 23 1747 2260 14 1731 2392 16 1688 2518 24 1679 2672 10 1643 2793 15 1602 2914 5 1563 3023 188 1540 3167 629 1571 3301 883 1580 3418 1024 1559 3548 1172 1522 3703 1321 1527 3825 1508 1540 3978 8 1896 746 6 1895 745 8 1912 772 17 1897 816 8 1920 876 6 1934 937 13 1931 1053 6 1936 1131 0 1944 1201 8 1947 1292 5 1942 1379 8 1956 1495 22 1959 1592 14 1961 1698 3 1978 1814 3 1961 1916 0 1949 2035 8 1929 2154 13 1926 2281 6 1902 2397 22 1870 2545 8 1864 2661 3 1826 2784 0 1772 2907 4 1746 3040 20 1717 3187 10 1671 3285 319 1662 3437 826 1726 3576 1058 1736 3693 1210 1720 3839 1394 1699 3969 9 2051 756 16 2051 765 16 2043 796 0 2060 826 0 2061 878 25 2067 986 6 2072 1060 25 2087 1160 0 2095 1230 7 2104 1323 10 2104 1426 14 2104 1518 12 2110 1617 7 2102 1733 7 2114 1849 8 2125 1955 7 2110 2053 27 2093 2187 0 2093 2304 4 2062 2440 0 2050 2546 13 2026 2689 14 1985 2807 0 1959 2926 14 1935 3058 29 1904 3183 23 1861 3321 19 1834 3441 103 1815 3557 704 1860 3689 1131 1910 3814 1354 1941 3962 0 2196 783 9 2199 806 1 2214 838 1 2207 865 11 2223 943 9 2228 1024 11 2229 1109 9 2231 1196 8 2250 1266 7 2251 1366 0 2253 1454 4 2249 1561 13 2259 1672 23 2265 1771 12 2258 1864 14 2270 2006 18 2287 2139 13 2259 2218 7 2247 2330 1 2228 2483 13 2215 2588 32 2188 2706 27 2162 2822 13 2125 2944 17 2105 3043 16 2073 3187 16 2036 3310 18 2022 3440 19 2002 3584 75 1987 3691 677 2002 3843 1220 2109 3983 16 2346 797 16 2346 816 2 2370 841 14 2354 880 14 2378 957 23 2371 1059 22 2388 1156 12 2377 1234 0 2396 1321 7 2387 1417 9 2392 1509 21 2399 1602 6 2404 1715 3 2403 1804 6 2410 1904 15 2403 2025 12 2427 2170 24 2448 2304 0 2406 2368 3 2383 2479 3 2371 2623 14 2341 2739 3 2323 2821 2 2300 2956 18 2266 3076 0 2247 3195 16 2220 3308 6 2177 3453 21 2176 3588 9 2183 3716 340 2176 3853 911 2220 3989 13 2499 847 14 2485 872 8 2490 886 8 2507 937 6 2509 1026 3 2531 1100 0 2518 1198 9 2536 1305 10 2535 1365 11 2544 1473 0 2536 1557 11 2534 1644 13 2548 1755 11 2547 1833 7 2554 1958 16 2541 2063 10 2550 2177 16 2568 2300 28 2572 2439 25 2531 2539 27 2520 2640 5 2493 2741 10 2461 2845 31 2453 2970 4 2429 3097 5 2408 3207 10 2379 3335 6 2363 3442 22 2332 3569 4 2340 3723 17 2342 3850 770 2394 3975 22 2629 911 11 2635 952 3 2646 961 28 2651 1016 9 2659 1073 13 2667 1170 13 2656 1256 7 2679 1359 5 2665 1426 19 2664 1505 16 2672 1587 16 2672 1692 14 2670 1788 0 2686 1886 0 2681 1983 19 2680 2090 18 2680 2215 0 2680 2317 24 2701 2450 5 2721 2594 19 2653 2673 19 2637 2774 7 2613 2878 15 2590 2983 23 2581 3094 15 2552 3207 5 2533 3319 8 2514 3469 14 2502 3583 14 2509 3731 15 2518 3888 609 2549 4010 9 2785 943 2 2787 977 5 2787 1014 12 2793 1055 15 2788 1126 3 2803 1228 0 2793 1314 20 2812 1407 12 2805 1493 9 2803 1565 5 2813 1657 6 2808 1736 13 2810 1823 7 2819 1938 11 2808 2032 10 2811 2139 13 2808 2238 11 2799 2339 16 2808 2458 25 2830 2592 17 2814 2703 11 2792 2802 0 2753 2909 0 2734 2993 12 2715 3113 0 2698 3231 0 2691 3337 11 2683 3465 10 2652 3598 11 2664 3733 45 2667 3885 529 2707 4038 0 2920 1026 8 2914 1041 1 2909 1094 6 2928 1144 5 2923 1201 20 2927 1292 12 2931 1399 6 2946 1471 4 2940 1571 4 2925 1607 16 2950 1716 16 2934 1774 4 2946 1881 4 2932 1978 5 2929 2048 25 2928 2152 0 2946 2249 0 2940 2371 4 2959 2499 0 2939 2599 20 2944 2723 4 2951 2829 25 2879 2912 47 2874 3020 9 2861 3127 19 2844 3237 14 2825 3363 4 2822 3486 3 2811 3607 3 2833 3749 10 2812 3875 592 2858 4020 4 3053 1117 15 3052 1161 16 3053 1194 17 3037 1237 4 3053 1309 23 3047 1383 16 3052 1458 18 3065 1557 14 3055 1639 5 3057 1689 11 3067 1773 0 3069 1844 4 3070 1927 0 3065 2017 13 3061 2098 4 3060 2195 7 3053 2290 4 3044 2394 0 3053 2497 3 3058 2599 12 3055 2720 0 3083 2874 0 3059 2944 1 3027 3031 0 3005 3145 6 2980 3257 0 2957 3375 4 2964 3500 5 2945 3620 0 2970 3757 3 2979 3893 699 3027 4021 10 3173 1198 0 3183 1243 2 3182 1275 16 3184 1339 4 3178 1399 21 3178 1481 13 3183 1564 11 3187 1643 16 3182 1730 3 3188 1775 6 3183 1841 3 3189 1903 13 3194 1991 13 3189 2060 23 3183 2141 0 3188 2217 11 3183 2314 3 3180 2423 4 3183 2539 20 3170 2641 0 3173 2739 6 3175 2864 11 3198 2989 18 3159 3085 3 3122 3177 3 3109 3269 13 3106 3379 3 3112 3506 3 3101 3641 15 3099 3768 11 3106 3897 809 3167 4038 0 3314 1352 2 3302 1389 19 3311 1417 31 3299 1446 25 3312 1523 5 3311 1569 3 3301 1656 12 3301 1740 13 3298 1818 5 3298 1869 10 3309 1933 9 3313 1992 7 3317 2040 5 3323 2121 5 3316 2185 13 3314 2269 13 3314 2365 0 3311 2449 4 3310 2567 7 3309 2669 0 3311 2764 11 3303 2876 0 3312 2989 14 3329 3124 14 3296 3211 41 3235 3309 0 3250 3399 0 3231 3524 1 3243 3651 18 3237 3780 20 3263 3876 929 3300 4047 0 3444 1503 11 3456 1537 0 3430 1560 26 3431 1608 19 3443 1647 11 3456 1709 14 3444 1786 38 3432 1869 25 3432 1919 9 3424 1981 2 3433 2015 2 3442 2075 11 3456 2129 18 3440 2198 7 3445 2238 0 3451 2338 0 3440 2393 13 3441 2497 5 3431 2581 7 3437 2680 4 3442 2784 0 3441 2893 13 3440 3021 2 3456 3143 0 3459 3243 15 3414 3333 11 3369 3397 16 3364 3555 0 3380 3677 21 3366 3813 268 3411 3934 1041 3433 4074 0 3575 1662 0 3575 1691 0 3584 1735 0 3572 1744 14 3575 1795 3 3575 1860 16 3572 1947 15 3565 1990 16 3561 2047 13 3569 2088 14 3568 2134 7 3581 2188 5 3577 2227 10 3585 2283 10 3580 2325 8 3583 2395 17 3585 2463 15 3585 2552 1 3575 2632 1 3585 2737 13 3578 2854 1 3579 2940 11 3577 3060 6 3584 3162 11 3578 3294 26 3603 3417 0 3519 3448 29 3494 3570 16 3511 3671 25 3504 3819 532 3540 3946 1200 3587 4088 15 3703 1873 12 3691 1902 13 3692 1908 0 3718 1951 0 3707 1969 15 3720 2047 3 3704 2075 1 3704 2145 5 3703 2209 3 3692 2247 16 3708 2293 9 3705 2303 20 3708 2368 11 3709 2388 0 3735 2435 2 3716 2481 9 3721 2552 7 3720 2604 16 3716 2679 5 3731 2810 5 3731 2902 0 3716 2994 1 3708 3093 13 3711 3226 14 3718 3297 5 3721 3427 19 3726 3559 18 3658 3620 15 3641 3702 0 3655 3832 734 3673 3973 1350 3720 4083 0 3836 2084 16 3839 2127 15 3837 2133 16 3836 2165 14 3836 2185 0 3851 2234 6 3835 2293 24 3824 2341 313 3835 2420 209 3826 2416 39 3823 2452 4 3845 2484 4 3846 2516 4 3849 2534 0 3852 2551 5 3868 2599 19 3863 2649 0 3875 2699 0 3883 2756 6 3868 2864 16 3873 2968 0 3870 3051 0 3872 3160 1 3865 3263 0 3880 3364 10 3878 3485 15 3868 3586 23 3869 3686 15 3805 3740 195 3790 3826 926 3801 3990 1528 3852 4095 549 3967 2355 597 3983 2388 632 3996 2404 724 3981 2393 794 3994 2425 891 3972 2473 965 3980 2503 1092 3968 2545 1193 3967 2581 1189 3967 2620 1100 3980 2634 942 3969 2645 730 3979 2682 244 4005 2700 12 3985 2724 8 4006 2738 10 4017 2773 16 4015 2812 13 4017 2848 12 4028 2937 11 4031 3037 13 4033 3135 0 4033 3228 0 4047 3340 4 4031 3438 3 4034 3544 3 4033 3654 16 4017 3752 24 4019 3867 452 3954 3901 1124 3929 4008 1718 3967 4092 681 372 405 709 383 418 710 382 420 711 368 486 726 380 534 742 388 628 745 369 661 761 369 733 771 381 811 796 387 909 817 369 1014 833 370 1093 867 366 1194 877 359 1298 906 337 1419 957 326 1566 991 305 1674 1024 289 1827 1049 274 1955 1108 228 2111 1160 176 2258 1229 93 2415 1295 22 2572 1384 3 2722 1445 3 2851 1555 10 3020 1639 3 3159 1732 3 3319 1828 11 3475 1942 12 3609 2053 0 3741 2171 3 3921 712 386 405 726 399 431 729 404 438 727 417 487 740 418 567 744 418 613 756 418 692 778 418 765 768 408 815 815 432 925 830 409 1011 844 405 1110 867 396 1204 898 393 1328 920 379 1425 938 374 1555 989 349 1690 1012 351 1826 1057 319 1949 1102 264 2099 1165 228 2259 1219 144 2425 1286 61 2567 1352 9 2725 1432 1 2875 1529 3 3010 1638 3 3172 1730 0 3316 1831 0 3499 1941 12 3609 2031 3 3762 2171 3 3921 715 422 392 729 436 438 713 450 496 729 465 519 731 456 582 732 467 645 747 478 696 801 462 774 774 450 822 830 449 942 843 450 1010 857 452 1107 880 446 1225 902 433 1327 924 405 1446 974 412 1591 988 382 1684 1015 385 1821 1066 368 1969 1110 326 2125 1174 276 2277 1237 223 2430 1302 119 2576 1369 20 2732 1437 10 2885 1532 13 3046 1620 15 3177 1716 2 3307 1831 15 3479 1941 14 3610 2054 0 3772 2156 14 3919 717 469 416 729 468 462 731 473 486 748 498 552 746 502 611 731 516 663 777 517 727 791 512 780 795 501 861 838 518 961 846 499 1021 864 495 1140 871 483 1216 916 473 1355 929 469 1453 947 466 1583 978 450 1719 1011 428 1854 1061 408 1982 1110 380 2127 1167 332 2282 1218 282 2432 1296 216 2607 1363 122 2730 1428 14 2878 1523 0 3042 1617 13 3174 1704 12 3345 1828 11 3475 1900 3 3623 2042 0 3759 2155 14 3921 718 548 406 760 549 451 730 550 515 746 551 576 746 552 617 760 581 710 791 564 773 792 567 815 806 566 878 825 565 989 840 563 1047 872 551 1148 880 534 1248 910 525 1377 939 527 1491 944 506 1599 992 503 1746 1033 478 1851 1070 467 1991 1115 438 2137 1152 410 2266 1210 367 2447 1288 320 2606 1370 233 2748 1440 146 2890 1519 38 3051 1626 0 3192 1695 2 3339 1811 0 3490 1927 0 3625 2051 3 3799 2126 14 3920 739 629 463 745 631 498 716 633 532 736 646 597 737 633 633 777 631 685 766 645 764 791 622 840 812 633 908 834 631 1020 864 631 1079 873 626 1173 878 612 1264 903 614 1370 929 590 1514 946 583 1622 986 567 1736 1021 553 1874 1072 535 2028 1098 509 2159 1151 485 2298 1211 436 2450 1284 392 2600 1345 349 2751 1413 287 2896 1513 173 3046 1599 53 3188 1691 0 3337 1782 3 3468 1881 1 3614 2022 1 3781 2112 0 3921 681 684 479 711 686 489 724 685 533 742 698 581 742 688 632 771 716 697 787 716 809 797 716 830 809 712 939 814 697 1003 830 700 1110 868 691 1210 870 668 1293 889 677 1408 935 661 1515 949 655 1643 976 643 1762 1000 627 1892 1063 613 2048 1082 600 2175 1140 554 2319 1202 523 2470 1260 497 2622 1328 459 2764 1415 414 2921 1481 340 3062 1582 262 3189 1680 143 3334 1757 23 3483 1868 0 3643 2018 3 3790 2107 3 3928 689 766 514 693 768 538 705 765 578 723 783 627 744 794 679 754 797 744 780 800 822 793 785 878 793 794 957 784 805 1053 825 783 1132 844 779 1203 851 765 1313 868 749 1434 908 740 1554 938 733 1667 962 722 1792 985 717 1914 1030 699 2061 1074 685 2195 1105 653 2342 1173 630 2495 1246 604 2636 1302 568 2781 1383 529 2926 1459 492 3071 1562 425 3229 1645 345 3335 1750 268 3479 1843 166 3625 1970 51 3781 2090 25 3946 649 859 561 674 863 597 668 878 602 696 875 644 712 881 700 725 894 745 747 896 813 765 911 896 792 886 972 764 875 1044 766 849 1157 784 846 1254 825 851 1346 849 851 1466 883 844 1579 880 836 1702 909 829 1812 930 804 1938 1006 799 2087 1032 777 2210 1080 739 2366 1155 735 2513 1200 708 2651 1259 675 2773 1342 646 2933 1420 586 3071 1507 578 3219 1621 508 3361 1725 457 3499 1832 407 3643 1959 348 3789 2058 307 3927 631 947 581 645 947 594 673 963 646 676 965 692 687 980 714 688 992 761 727 994 831 747 995 911 740 1013 993 745 989 1072 751 983 1162 763 965 1276 763 955 1390 758 935 1496 807 935 1621 856 932 1730 894 925 1855 926 916 1976 962 902 2114 1009 886 2244 1058 871 2402 1098 844 2521 1162 831 2665 1230 794 2807 1302 769 2945 1386 737 3081 1464 691 3213 1580 663 3362 1675 619 3499 1790 586 3665 1900 568 3800 2025 529 3938 571 1072 609 565 1067 631 599 1089 692 614 1089 723 620 1092 735 631 1113 809 679 1127 870 701 1127 948 702 1131 1026 692 1127 1104 716 1114 1193 725 1097 1303 702 1088 1421 706 1064 1512 703 1045 1628 732 1016 1748 799 1036 1901 841 1029 2015 884 1018 2147 929 1013 2291 970 990 2416 1049 973 2577 1104 954 2697 1183 913 2814 1253 894 2947 1336 867 3084 1429 839 3237 1518 826 3374 1612 782 3528 1724 752 3640 1846 733 3808 1963 718 3950 512 1189 629 517 1191 661 532 1204 683 544 1198 715 573 1211 773 589 1224 809 635 1227 898 636 1241 965 642 1251 1049 659 1244 1130 628 1265 1244 672 1233 1307 670 1233 1438 652 1216 1530 628 1176 1686 627 1160 1788 633 1160 1915 660 1110 2040 734 1131 2170 814 1130 2312 896 1114 2458 948 1099 2583 1016 1070 2712 1092 1045 2837 1173 1035 2975 1271 995 3104 1360 981 3228 1456 954 3375 1560 929 3515 1684 907 3681 1804 903 3816 1932 901 3958 389 1316 658 402 1315 700 412 1320 694 421 1335 755 445 1352 786 452 1340 838 514 1358 931 556 1374 1009 588 1379 1081 585 1379 1180 570 1393 1273 563 1388 1348 594 1374 1480 582 1370 1577 577 1332 1680 556 1311 1814 563 1294 1949 551 1266 2073 566 1242 2202 587 1223 2327 737 1252 2494 833 1239 2597 911 1213 2724 1004 1199 2862 1097 1159 3014 1173 1149 3099 1271 1122 3253 1363 1093 3372 1489 1090 3530 1602 1066 3671 1725 1058 3800 1847 1059 3947 170 1460 661 166 1458 692 187 1477 714 197 1472 771 210 1495 802 243 1488 858 338 1502 951 410 1507 1017 441 1518 1112 448 1510 1192 439 1531 1291 423 1528 1389 462 1528 1497 480 1527 1601 451 1494 1713 438 1478 1846 436 1463 1962 400 1439 2082 385 1399 2218 382 1370 2349 443 1356 2499 528 1331 2631 723 1341 2764 857 1328 2885 960 1315 3005 1046 1286 3113 1159 1273 3263 1272 1232 3406 1393 1227 3538 1504 1220 3673 1662 1215 3831 1781 1225 3956 14 1604 693 4 1597 707 16 1603 730 10 1611 766 2 1611 796 18 1631 867 24 1642 933 186 1642 1067 208 1667 1143 238 1665 1232 241 1666 1328 212 1677 1420 172 1698 1527 312 1684 1626 287 1658 1725 240 1642 1850 217 1630 1976 185 1595 2093 134 1591 2227 107 1555 2354 113 1535 2498 180 1499 2630 259 1466 2770 470 1438 2904 770 1467 3028 900 1449 3143 1010 1433 3270 1144 1398 3406 1272 1375 3559 1407 1370 3675 1551 1369 3822 1684 1382 3950 13 1746 727 8 1748 748 2 1762 773 8 1757 794 0 1781 858 0 1778 908 0 1781 974 12 1792 1095 1 1814 1158 3 1814 1238 3 1818 1332 3 1815 1429 0 1828 1545 0 1857 1699 61 1829 1764 23 1810 1857 20 1800 1987 13 1765 2125 3 1769 2267 0 1750 2382 8 1704 2511 6 1669 2634 11 1649 2777 48 1608 2881 164 1570 3021 509 1560 3147 845 1584 3302 999 1560 3423 1107 1538 3545 1244 1518 3690 1416 1524 3820 1560 1544 3972 0 1888 755 13 1901 769 0 1910 790 1 1906 818 8 1919 879 0 1928 908 10 1944 1026 8 1948 1114 4 1957 1217 0 1957 1283 0 1956 1393 0 1961 1489 10 1969 1579 2 1985 1707 8 1991 1827 3 1977 1915 0 1969 2048 0 1944 2164 1 1915 2288 3 1899 2411 3 1875 2530 0 1845 2672 0 1813 2805 0 1784 2909 6 1755 3043 15 1702 3140 186 1674 3278 656 1705 3445 979 1728 3556 1140 1725 3698 1277 1712 3831 1456 1692 3958 9 2059 764 26 2050 784 17 2044 799 7 2047 834 0 2061 877 6 2075 945 3 2081 1034 15 2091 1164 0 2101 1255 0 2111 1332 9 2103 1431 13 2102 1528 12 2110 1629 4 2113 1742 14 2124 1858 1 2133 1977 0 2119 2080 14 2100 2194 0 2100 2310 16 2074 2463 7 2063 2560 0 2020 2685 0 1992 2803 4 1967 2938 7 1935 3062 7 1891 3170 12 1865 3297 32 1832 3412 394 1832 3546 914 1887 3691 1224 1925 3839 1409 1923 3983 7 2202 803 6 2190 816 13 2213 845 7 2207 864 9 2222 909 9 2230 981 7 2234 1079 12 2253 1192 7 2252 1286 6 2260 1373 18 2261 1458 7 2255 1564 3 2253 1676 3 2271 1773 20 2274 1891 5 2279 2006 8 2297 2143 13 2264 2230 7 2253 2360 0 2249 2490 0 2220 2599 10 2199 2716 13 2157 2817 14 2133 2952 7 2106 3062 13 2070 3187 3 2041 3310 5 2013 3430 10 1998 3555 355 1997 3716 861 2018 3849 1337 2125 3973 0 2362 815 0 2371 839 0 2353 850 0 2363 880 8 2378 953 0 2375 1011 10 2381 1104 13 2393 1222 12 2395 1326 21 2404 1429 30 2405 1525 0 2417 1601 13 2406 1715 13 2410 1806 13 2400 1916 12 2416 2032 8 2421 2168 22 2452 2290 29 2391 2384 19 2371 2500 29 2384 2643 17 2351 2746 19 2325 2844 5 2296 2956 9 2276 3078 10 2249 3220 9 2213 3308 10 2185 3452 6 2169 3581 19 2171 3681 585 2160 3840 1039 2211 3986 6 2495 841 6 2509 872 0 2503 867 6 2515 902 8 2517 974 0 2528 1056 0 2531 1180 12 2534 1275 4 2540 1354 20 2545 1451 6 2547 1552 0 2551 1650 10 2545 1743 4 2552 1858 0 2552 1962 11 2556 2081 8 2552 2180 13 2569 2308 7 2589 2441 0 2537 2529 6 2523 2641 0 2491 2734 0 2484 2856 7 2457 2969 0 2432 3115 3 2407 3206 3 2377 3329 4 2360 3443 0 2334 3589 15 2331 3721 229 2340 3854 916 2389 3991 22 2640 897 11 2645 931 10 2641 954 23 2652 973 7 2658 1033 0 2656 1102 18 2664 1211 0 2682 1324 7 2677 1409 10 2677 1507 2 2693 1586 11 2682 1676 0 2685 1792 0 2682 1878 8 2689 1991 24 2685 2096 3 2678 2201 0 2695 2313 16 2698 2447 0 2732 2590 3 2665 2658 0 2643 2773 20 2618 2888 8 2597 2965 14 2594 3106 3 2554 3224 11 2544 3349 3 2497 3457 22 2492 3598 19 2495 3704 8 2507 3870 794 2549 4010 5 2776 948 8 2779 973 8 2778 985 0 2796 1022 1 2797 1105 8 2789 1184 5 2816 1284 8 2807 1383 20 2803 1488 9 2803 1556 0 2813 1636 6 2805 1743 13 2809 1822 0 2812 1928 4 2820 2022 0 2811 2130 8 2808 2235 23 2815 2364 14 2815 2470 8 2825 2567 16 2825 2697 5 2776 2791 0 2761 2906 0 2744 3002 17 2727 3112 1 2710 3243 8 2702 3366 5 2663 3479 20 2649 3609 5 2648 3728 0 2683 3861 693 2707 4026 0 2913 1011 4 2922 1045 0 2918 1063 4 2933 1113 4 2926 1168 4 2925 1244 3 2929 1334 4 2941 1454 4 2926 1562 4 2936 1628 6 2936 1714 3 2946 1787 0 2953 1882 0 2942 1964 7 2931 2048 0 2941 2163 12 2939 2269 6 2940 2375 5 2941 2474 7 2934 2582 0 2960 2732 6 2943 2842 5 2894 2922 18 2881 3039 19 2861 3155 15 2843 3235 5 2839 3366 0 2824 3495 0 2823 3613 4 2799 3732 6 2834 3841 734 2859 4016 0 3049 1113 3 3051 1117 7 3039 1170 18 3051 1215 0 3056 1264 4 3045 1317 3 3056 1409 16 3068 1536 20 3054 1632 12 3064 1709 10 3062 1768 13 3062 1847 3 3060 1927 10 3060 1996 12 3065 2094 7 3072 2196 0 3065 2294 0 3065 2407 0 3075 2517 12 3053 2602 23 3065 2736 10 3085 2868 9 3057 2975 0 3025 3037 4 3001 3145 9 2967 3257 4 2966 3393 13 2961 3479 11 2962 3631 5 2964 3761 25 2963 3869 840 3014 4030 0 3174 1201 0 3171 1225 4 3181 1269 5 3179 1306 15 3182 1367 13 3177 1432 6 3173 1516 6 3181 1611 3 3182 1726 0 3192 1792 5 3185 1869 9 3183 1922 6 3199 1990 13 3189 2060 20 3180 2138 0 3192 2217 13 3191 2318 10 3182 2430 6 3190 2536 17 3173 2638 0 3191 2748 11 3173 2873 3 3206 2984 0 3173 3085 0 3129 3159 13 3125 3280 14 3115 3394 23 3092 3512 1 3090 3629 6 3090 3785 73 3124 3885 915 3164 4041 3 3311 1325 18 3301 1355 13 3316 1396 6 3306 1410 17 3314 1462 29 3314 1539 13 3290 1610 3 3304 1705 4 3302 1812 22 3305 1854 15 3308 1926 0 3320 1992 3 3327 2078 16 3316 2121 3 3317 2198 11 3308 2280 8 3303 2357 17 3314 2443 25 3303 2561 6 3303 2667 9 3308 2767 19 3314 2864 12 3330 2997 14 3330 3137 0 3288 3204 23 3252 3286 0 3250 3392 0 3235 3522 27 3223 3654 25 3239 3770 318 3276 3918 1027 3298 4047 0 3444 1487 0 3444 1499 13 3431 1525 13 3443 1573 2 3453 1611 0 3444 1662 14 3444 1768 10 3432 1828 0 3435 1909 5 3429 1983 30 3418 2017 5 3450 2096 16 3446 2145 3 3436 2195 13 3438 2266 3 3448 2341 8 3436 2395 2 3429 2495 11 3433 2607 14 3442 2711 6 3452 2794 10 3444 2909 17 3436 3050 10 3454 3146 0 3459 3245 15 3413 3333 0 3380 3425 0 3380 3555 0 3380 3657 2 3382 3787 499 3424 3945 1122 3448 4072 0 3575 1659 0 3573 1660 0 3575 1694 0 3585 1735 1 3563 1752 0 3575 1851 5 3564 1884 2 3574 1988 3 3564 2045 5 3562 2108 11 3562 2152 20 3566 2182 1 3573 2253 4 3558 2288 0 3582 2354 16 3578 2429 16 3575 2468 20 3578 2543 6 3592 2647 0 3582 2747 16 3589 2853 6 3580 2941 14 3578 3063 4 3577 3182 0 3577 3281 14 3591 3405 14 3544 3473 1 3511 3566 1 3511 3671 7 3535 3787 652 3545 3923 1240 3578 4076 16 3705 1864 1 3708 1866 17 3692 1901 2 3719 1923 0 3704 1966 7 3714 2007 12 3701 2081 0 3705 2139 11 3689 2205 4 3693 2254 1 3704 2297 15 3690 2335 8 3711 2365 15 3705 2396 6 3717 2444 0 3720 2508 8 3728 2551 4 3730 2619 16 3737 2689 14 3729 2806 0 3726 2899 9 3714 2994 16 3718 3097 7 3724 3229 3 3710 3313 1 3724 3427 1 3738 3556 14 3660 3621 18 3642 3702 121 3657 3833 823 3664 3951 1387 3721 4095 15 3820 2053 3 3839 2087 13 3834 2129 14 3838 2161 0 3842 2182 4 3834 2212 0 3833 2251 47 3824 2325 374 3847 2378 589 3822 2441 371 3836 2477 84 3839 2494 13 3851 2518 14 3845 2551 20 3856 2578 3 3857 2608 11 3858 2647 0 3868 2714 0 3884 2757 7 3881 2849 16 3873 2969 3 3873 3052 5 3872 3165 12 3872 3260 0 3856 3352 0 3868 3475 23 3882 3600 14 3884 3731 16 3835 3754 470 3785 3856 1029 3816 3993 1561 3852 4095 597 3996 2361 646 3967 2361 683 3981 2375 748 3968 2396 828 3982 2424 926 3982 2457 1024 3980 2492 1106 3957 2538 1196 3970 2581 1294 3970 2653 1198 3985 2666 1101 3986 2655 923 3986 2675 644 3974 2711 62 3994 2728 11 4003 2738 16 4015 2794 25 4006 2812 0 4031 2875 19 4027 2946 29 4044 3048 13 4023 3113 14 4023 3228 3 4034 3331 0 4018 3428 16 4034 3543 10 4041 3661 30 4031 3766 0 4031 3867 625 3961 3926 1212 3934 4013 1737 3980 4095 778 369 437 776 369 431 782 370 435 792 358 474 794 375 521 810 385 600 810 376 649 830 373 733 818 385 824 833 400 882 878 389 981 910 374 1077 939 382 1195 959 369 1306 991 357 1419 1023 333 1545 1047 320 1684 1074 293 1811 1134 258 1947 1167 225 2112 1255 152 2262 1317 67 2415 1372 0 2567 1429 12 2721 1533 4 2873 1610 3 3029 1698 4 3179 1800 0 3334 1883 12 3464 1984 11 3624 2089 0 3748 2236 12 3950 787 402 433 803 386 434 790 392 455 791 435 516 798 418 553 801 409 616 813 418 677 832 421 740 866 434 839 889 418 906 897 410 996 909 404 1083 945 417 1217 966 393 1315 989 382 1418 1030 370 1546 1066 354 1691 1092 337 1818 1131 303 1954 1186 266 2112 1251 209 2274 1313 120 2416 1371 35 2575 1440 8 2725 1526 4 2876 1603 12 3023 1696 0 3168 1797 0 3330 1908 1 3486 2010 0 3626 2097 15 3760 2235 0 3934 794 441 424 782 429 419 782 448 481 792 454 534 824 452 577 795 468 645 811 482 683 831 454 754 859 467 830 857 456 923 882 464 996 910 443 1076 935 451 1213 978 435 1338 1009 419 1468 1042 390 1566 1075 395 1699 1098 367 1816 1120 344 1943 1192 303 2121 1237 264 2261 1305 185 2425 1367 92 2578 1436 19 2751 1523 5 2880 1615 0 3036 1704 3 3185 1775 13 3337 1881 0 3483 2005 3 3627 2073 1 3773 2222 3 3905 794 481 418 807 467 446 795 469 488 810 485 519 824 516 608 800 515 647 802 505 701 817 517 753 874 517 861 892 527 937 907 498 1013 925 500 1138 961 509 1245 974 487 1351 993 464 1458 1031 455 1577 1064 447 1713 1107 419 1835 1129 377 1981 1179 361 2121 1263 331 2291 1287 270 2448 1344 192 2574 1437 85 2750 1526 7 2905 1607 0 3034 1672 3 3184 1788 0 3353 1881 11 3466 1985 11 3625 2093 12 3759 2218 0 3930 810 536 404 825 536 466 802 535 527 821 568 579 809 566 639 830 550 679 838 566 731 857 570 802 874 568 875 913 565 950 921 551 1041 953 559 1147 980 544 1259 981 523 1368 1001 515 1481 1024 523 1587 1052 501 1734 1098 488 1842 1129 461 1970 1193 426 2138 1243 397 2296 1287 350 2445 1351 291 2601 1448 200 2746 1513 122 2897 1589 7 3028 1692 0 3187 1790 0 3336 1876 2 3509 1973 4 3647 2073 2 3771 2190 12 3933 813 618 426 793 633 481 808 606 505 833 618 592 853 631 636 809 641 666 827 647 750 855 647 811 873 644 914 878 633 979 903 630 1064 949 637 1168 966 612 1259 985 609 1369 1000 577 1504 1021 578 1614 1061 566 1741 1091 544 1871 1129 525 2016 1173 505 2158 1245 473 2302 1297 427 2468 1348 378 2607 1424 324 2764 1491 246 2889 1589 154 3052 1662 33 3193 1757 0 3354 1850 0 3456 1951 5 3610 2066 3 3764 2164 13 3915 794 697 491 813 708 513 812 697 534 829 715 579 846 724 636 846 709 681 857 712 760 870 722 839 893 722 923 896 714 992 914 688 1075 941 699 1209 954 691 1294 965 677 1404 988 661 1507 1007 660 1640 1057 636 1768 1075 631 1890 1104 604 2022 1157 596 2162 1219 557 2316 1275 518 2480 1344 483 2611 1413 429 2770 1468 388 2913 1546 316 3048 1644 229 3189 1745 114 3337 1839 8 3500 1941 0 3645 2055 0 3771 2166 0 3934 780 773 514 775 791 559 775 779 579 789 796 623 792 794 663 834 783 754 852 797 777 871 801 869 891 794 956 906 797 1048 921 782 1122 955 769 1217 974 762 1335 977 759 1459 987 737 1531 1024 737 1677 1052 722 1788 1067 723 1925 1114 696 2027 1152 681 2188 1188 658 2350 1260 623 2492 1327 605 2619 1388 553 2769 1465 509 2921 1517 471 3049 1628 395 3225 1721 321 3317 1808 248 3491 1880 128 3609 2026 23 3753 2152 14 3931 729 864 526 745 867 573 760 877 618 764 864 633 804 866 688 817 879 728 811 892 792 854 896 878 883 888 972 859 868 1060 891 849 1142 893 867 1246 938 867 1357 949 852 1450 969 836 1570 996 832 1695 1009 819 1808 1064 807 1954 1083 787 2075 1133 773 2215 1180 755 2377 1224 731 2508 1291 703 2655 1345 679 2805 1434 630 2933 1511 598 3072 1587 553 3208 1685 509 3370 1783 447 3502 1872 393 3649 1979 324 3769 2115 302 3930 713 949 568 733 959 589 746 961 628 762 976 684 765 977 702 776 976 748 806 986 823 837 996 907 834 1007 986 841 998 1073 835 988 1156 855 978 1289 859 960 1394 885 951 1503 912 970 1603 962 947 1742 987 918 1857 1012 909 1970 1056 889 2107 1088 898 2249 1122 864 2387 1192 847 2520 1249 817 2657 1315 791 2806 1404 761 2940 1454 728 3068 1541 689 3224 1666 650 3348 1721 609 3500 1858 585 3649 1953 543 3786 2075 511 3928 673 1048 585 682 1057 627 696 1065 650 709 1078 697 727 1083 754 740 1081 796 761 1109 853 786 1125 928 820 1109 1011 825 1118 1102 796 1115 1206 829 1098 1306 810 1091 1394 801 1061 1502 821 1046 1624 878 1033 1773 911 1037 1887 959 1029 2016 1013 1018 2136 1053 1007 2288 1099 979 2422 1135 956 2558 1199 939 2676 1267 904 2825 1333 904 2951 1420 864 3089 1507 837 3229 1597 799 3368 1678 776 3499 1807 746 3647 1908 722 3798 2031 716 3938 620 1181 622 636 1178 661 644 1189 674 651 1195 719 685 1193 768 678 1207 808 718 1212 877 726 1243 974 752 1253 1025 764 1258 1136 751 1263 1219 778 1253 1299 756 1232 1438 761 1208 1549 766 1190 1680 776 1164 1779 791 1147 1921 838 1139 2051 921 1140 2181 967 1133 2314 1024 1104 2450 1067 1096 2567 1135 1076 2716 1200 1044 2841 1284 1024 2978 1364 993 3098 1447 971 3229 1547 949 3374 1647 924 3516 1757 908 3662 1837 898 3799 1994 894 3953 551 1306 672 560 1302 680 569 1311 699 570 1319 729 577 1330 774 573 1350 855 597 1346 889 644 1374 988 685 1388 1063 695 1389 1164 684 1385 1241 692 1397 1367 724 1380 1484 708 1358 1565 701 1343 1690 688 1321 1823 689 1282 1938 677 1265 2055 725 1251 2202 792 1246 2354 904 1247 2477 965 1238 2593 1029 1208 2726 1107 1189 2868 1186 1185 2998 1290 1145 3120 1356 1119 3239 1458 1096 3389 1576 1083 3527 1680 1056 3680 1788 1054 3794 1938 1059 3956 427 1440 688 411 1444 717 423 1452 741 434 1461 751 453 1471 814 443 1478 855 463 1501 899 550 1511 990 608 1525 1099 613 1515 1175 629 1532 1299 591 1527 1391 609 1547 1509 633 1524 1598 629 1503 1734 617 1485 1841 605 1461 1966 572 1438 2083 587 1413 2233 620 1376 2362 653 1345 2490 756 1350 2639 905 1361 2755 982 1335 2882 1072 1325 3015 1147 1293 3126 1257 1279 3257 1362 1258 3397 1480 1212 3528 1589 1215 3662 1703 1221 3827 1856 1218 3950 131 1581 714 149 1598 730 177 1591 756 181 1596 764 189 1608 816 194 1628 887 202 1621 929 340 1654 1017 442 1671 1131 466 1682 1237 469 1681 1335 467 1681 1400 461 1683 1522 509 1687 1654 526 1667 1758 506 1650 1865 499 1626 1991 473 1597 2116 435 1592 2262 418 1555 2402 424 1532 2532 505 1487 2641 576 1458 2785 754 1468 2900 940 1476 3030 1032 1446 3152 1124 1425 3267 1227 1390 3402 1362 1365 3536 1492 1369 3682 1595 1374 3824 1768 1373 3938 8 1742 723 17 1741 749 20 1745 770 20 1753 798 17 1766 836 3 1785 875 0 1799 944 12 1805 1034 153 1817 1169 192 1834 1256 237 1819 1371 232 1823 1452 194 1830 1564 176 1836 1679 349 1858 1765 320 1821 1917 302 1797 2028 266 1784 2154 201 1767 2294 168 1734 2407 126 1707 2522 151 1673 2661 281 1630 2811 384 1597 2937 535 1577 3055 816 1590 3160 991 1588 3302 1100 1568 3426 1219 1546 3553 1350 1523 3684 1508 1512 3831 1650 1532 3967 0 1888 755 0 1888 756 1 1903 797 7 1890 820 11 1914 859 8 1934 895 8 1936 963 8 1948 1082 12 1969 1205 0 1973 1295 28 1969 1402 17 1972 1476 19 1974 1578 17 1977 1700 15 2007 1828 116 1978 1931 42 1972 2044 30 1943 2175 29 1943 2317 19 1913 2424 10 1888 2537 6 1849 2686 14 1814 2813 19 1776 2918 146 1746 3048 321 1701 3181 568 1683 3330 904 1733 3435 1114 1724 3555 1220 1712 3695 1373 1689 3827 1532 1708 3968 7 2043 755 7 2043 769 12 2049 780 0 2060 840 0 2067 871 8 2085 945 0 2086 1007 9 2091 1131 7 2110 1255 0 2111 1332 12 2121 1439 9 2113 1524 22 2120 1632 0 2116 1759 2 2126 1838 0 2139 1982 4 2128 2102 25 2110 2223 0 2092 2325 6 2082 2462 14 2066 2569 6 2025 2690 13 2005 2809 8 1964 2946 7 1919 3056 19 1890 3174 117 1864 3325 363 1828 3453 739 1836 3560 1100 1896 3705 1329 1901 3844 1474 1914 3999 11 2193 800 6 2187 815 0 2209 832 0 2214 844 0 2218 879 12 2226 942 0 2248 1021 6 2250 1155 10 2259 1270 9 2280 1354 5 2272 1440 10 2279 1578 7 2273 1683 13 2266 1803 7 2279 1882 0 2284 2006 14 2305 2138 7 2264 2243 7 2262 2366 0 2246 2467 0 2223 2600 0 2193 2710 0 2159 2812 28 2134 2941 11 2106 3091 16 2070 3196 13 2028 3319 30 2006 3454 278 1990 3572 666 1989 3714 1086 2034 3841 1467 2134 3980 6 2356 829 6 2355 830 0 2358 855 0 2363 880 30 2368 934 4 2374 979 10 2385 1065 10 2396 1183 12 2415 1311 10 2415 1414 16 2413 1489 0 2416 1585 10 2426 1701 12 2420 1796 26 2420 1935 0 2436 2023 0 2425 2148 6 2461 2260 10 2411 2374 4 2380 2484 13 2362 2612 10 2361 2713 11 2329 2827 6 2304 2951 10 2265 3071 0 2223 3212 20 2210 3316 10 2185 3452 5 2167 3580 332 2149 3715 781 2173 3857 1172 2226 4005 6 2499 835 0 2499 862 0 2510 872 0 2521 901 12 2517 959 21 2522 1022 1 2515 1107 9 2534 1215 16 2546 1341 16 2542 1432 4 2552 1530 0 2551 1632 7 2552 1750 7 2563 1855 3 2563 1973 6 2556 2066 10 2554 2179 15 2579 2287 10 2604 2429 4 2557 2511 0 2531 2629 4 2502 2734 1 2482 2854 11 2454 2969 0 2425 3093 10 2403 3206 0 2377 3335 13 2350 3468 8 2332 3602 6 2335 3697 575 2332 3852 1053 2380 4003 20 2649 885 8 2642 892 2 2650 951 17 2645 964 19 2651 975 6 2671 1061 15 2668 1149 14 2677 1258 15 2676 1392 11 2679 1486 0 2697 1575 0 2704 1677 0 2700 1780 5 2695 1871 12 2693 1988 15 2695 2091 0 2688 2195 5 2700 2318 12 2698 2429 20 2715 2570 4 2666 2651 0 2657 2755 4 2633 2869 22 2611 2982 18 2565 3092 4 2549 3224 7 2530 3339 13 2518 3468 10 2506 3598 11 2488 3728 236 2492 3854 934 2544 3985 5 2776 948 16 2787 959 16 2789 987 31 2777 1007 22 2790 1073 1 2797 1150 13 2799 1229 12 2799 1315 12 2807 1456 7 2814 1553 14 2809 1657 7 2814 1758 11 2817 1828 7 2818 1919 15 2825 2008 4 2819 2114 11 2806 2232 10 2821 2347 28 2824 2444 5 2836 2572 5 2840 2697 4 2790 2768 0 2764 2888 8 2743 2987 9 2726 3101 5 2710 3237 13 2680 3359 11 2661 3477 4 2674 3600 16 2654 3731 180 2667 3867 857 2697 4015 32 2918 1020 17 2914 1031 4 2923 1066 12 2931 1079 0 2932 1146 12 2933 1212 11 2934 1314 15 2934 1412 16 2927 1538 13 2946 1625 8 2940 1712 22 2944 1782 29 2936 1871 4 2946 1976 0 2937 2060 11 2939 2151 15 2934 2260 19 2931 2373 0 2935 2452 4 2950 2589 14 2946 2721 18 2946 2844 4 2911 2909 16 2890 3031 1 2866 3129 6 2858 3235 3 2840 3361 4 2822 3495 4 2811 3630 8 2806 3739 216 2822 3863 877 2841 4002 16 3040 1104 9 3061 1118 12 3040 1142 12 3031 1172 6 3049 1226 20 3053 1275 4 3053 1389 12 3049 1490 12 3049 1599 24 3057 1692 12 3056 1750 0 3069 1844 6 3063 1930 23 3072 2002 25 3072 2102 11 3065 2160 0 3065 2283 0 3080 2394 9 3065 2500 13 3050 2599 22 3060 2734 5 3085 2868 1 3057 2967 0 3033 3032 0 3021 3121 3 2997 3270 32 2964 3382 14 2960 3477 14 2958 3634 17 2944 3737 320 2967 3884 976 2997 4034 10 3180 1202 3 3180 1237 21 3181 1233 3 3180 1274 5 3178 1324 0 3194 1377 6 3183 1477 3 3180 1572 3 3195 1680 5 3192 1776 8 3188 1872 2 3180 1911 6 3192 1974 12 3196 2063 0 3205 2130 0 3195 2220 9 3187 2315 17 3181 2434 13 3194 2544 3 3187 2641 0 3190 2733 16 3181 2881 14 3202 2989 2 3172 3061 13 3139 3165 13 3125 3264 9 3102 3383 1 3118 3508 1 3099 3634 1 3116 3767 440 3122 3884 1003 3155 4018 15 3324 1338 28 3311 1357 0 3311 1357 12 3314 1400 2 3325 1426 16 3306 1496 24 3298 1585 16 3314 1693 22 3313 1791 14 3314 1874 5 3322 1925 13 3316 1998 13 3307 2070 7 3314 2119 3 3321 2190 3 3308 2275 19 3330 2343 13 3316 2443 20 3311 2558 6 3313 2663 10 3327 2777 3 3314 2859 0 3331 2990 5 3315 3143 1 3287 3204 1 3245 3266 0 3252 3367 0 3238 3514 5 3225 3645 1 3249 3769 556 3247 3889 1121 3298 4053 2 3436 1466 0 3444 1483 13 3444 1488 1 3443 1524 6 3452 1578 14 3447 1646 4 3445 1704 0 3446 1801 4 3441 1897 4 3441 1966 12 3448 2029 4 3441 2082 10 3450 2152 5 3443 2208 7 3441 2280 6 3432 2332 0 3432 2389 4 3443 2494 14 3435 2607 4 3438 2697 7 3450 2804 0 3443 2893 10 3440 3021 6 3451 3141 2 3461 3240 9 3413 3344 5 3377 3426 2 3380 3523 0 3380 3653 22 3379 3786 696 3384 3934 1207 3432 4057 4 3560 1616 0 3574 1662 0 3578 1686 0 3573 1693 2 3565 1736 11 3586 1826 1 3573 1859 12 3575 1934 12 3559 2010 1 3570 2110 0 3573 2162 22 3566 2200 3 3567 2246 8 3577 2301 4 3580 2348 14 3568 2408 14 3583 2461 20 3582 2536 10 3575 2634 0 3577 2741 4 3577 2841 16 3575 2933 26 3572 3037 26 3575 3162 23 3584 3302 7 3580 3368 1 3531 3460 1 3509 3544 1 3496 3657 213 3514 3809 819 3546 3955 1326 3568 4073 16 3706 1839 1 3722 1843 1 3716 1883 1 3706 1901 4 3706 1940 3 3703 1975 3 3705 2042 1 3690 2092 1 3674 2158 11 3701 2265 1 3704 2302 10 3695 2335 18 3684 2370 23 3697 2403 16 3709 2445 8 3717 2502 8 3714 2559 2 3728 2617 12 3722 2680 14 3719 2784 5 3731 2896 4 3725 2994 12 3714 3093 13 3712 3196 12 3719 3322 8 3724 3427 5 3734 3543 20 3670 3593 14 3629 3692 467 3665 3804 973 3676 3978 1468 3706 4095 0 3836 2052 13 3852 2101 4 3838 2090 4 3824 2120 20 3835 2165 15 3835 2180 0 3839 2222 71 3837 2300 422 3832 2324 713 3831 2426 746 3820 2442 537 3823 2503 180 3840 2505 7 3845 2551 17 3844 2587 19 3844 2623 24 3853 2669 0 3864 2703 0 3877 2769 1 3864 2824 22 3868 2948 15 3865 3059 19 3868 3164 12 3872 3235 25 3868 3364 3 3870 3478 2 3882 3600 10 3880 3727 5 3806 3729 660 3776 3823 1109 3804 3980 1610 3837 4083 630 3970 2332 679 3985 2364 714 3975 2362 783 3981 2396 883 3983 2418 939 3970 2436 1044 3957 2467 1122 3967 2521 1217 3975 2558 1350 3973 2636 1388 3968 2683 1257 3972 2675 1111 3973 2688 936 3980 2721 586 3981 2734 37 3994 2738 0 4006 2763 5 4033 2819 7 4031 2875 11 4025 2908 16 4034 3027 11 4031 3106 5 4042 3209 12 4034 3336 4 4031 3451 25 4017 3539 3 4033 3654 16 4017 3752 0 4032 3864 765 3945 3906 1272 3941 4004 1790 3967 4091 803 374 426 819 385 407 832 403 456 836 385 470 859 371 506 885 400 594 863 400 644 883 405 730 899 381 779 901 385 898 956 380 989 971 376 1074 984 385 1179 1032 381 1268 1045 358 1394 1087 358 1537 1116 317 1662 1164 308 1786 1215 248 1927 1253 211 2090 1307 137 2268 1363 49 2420 1458 5 2571 1506 16 2709 1595 0 2848 1651 0 3009 1790 9 3173 1849 0 3342 1974 1 3454 2076 0 3603 2160 0 3768 2268 28 3934 832 398 419 847 378 410 863 392 459 869 409 492 883 403 538 876 422 615 894 437 679 904 437 757 888 431 811 916 423 887 968 422 1008 991 419 1097 1009 418 1179 1056 411 1283 1054 386 1379 1113 382 1536 1132 338 1667 1153 329 1798 1207 291 1956 1248 236 2098 1306 193 2268 1360 105 2420 1447 17 2589 1529 0 2740 1603 8 2885 1673 9 3030 1777 7 3186 1843 10 3320 1952 14 3455 2042 0 3597 2161 4 3774 2277 0 3946 838 409 393 848 422 429 843 450 478 818 454 502 872 455 589 875 453 626 900 458 681 918 456 743 881 467 823 923 479 920 954 466 993 980 456 1089 1020 440 1192 1039 454 1297 1073 411 1421 1096 417 1558 1128 386 1683 1145 365 1830 1208 330 1942 1242 290 2104 1327 229 2249 1393 167 2420 1453 67 2589 1513 7 2740 1590 3 2887 1687 0 3033 1746 3 3185 1841 0 3338 1959 4 3477 2051 0 3630 2162 4 3772 2258 15 3889 849 460 418 858 466 434 836 486 466 844 488 531 858 517 590 888 527 619 885 518 713 887 531 777 906 515 845 929 503 913 968 492 989 1000 513 1081 1023 505 1200 1040 500 1310 1067 476 1438 1118 467 1560 1128 437 1683 1161 412 1828 1204 382 1942 1251 360 2117 1306 295 2265 1370 248 2420 1450 159 2583 1530 56 2731 1591 0 2864 1681 1 3054 1764 3 3184 1837 14 3322 1946 16 3457 2043 22 3620 2162 4 3773 2255 14 3921 910 532 406 864 548 473 880 537 485 865 566 566 880 568 602 892 582 677 909 580 758 925 570 812 938 572 892 945 557 916 974 579 1012 1002 570 1135 1042 540 1229 1061 545 1354 1062 526 1471 1102 501 1615 1165 486 1750 1173 458 1866 1203 455 1980 1255 422 2136 1326 379 2306 1388 332 2464 1428 254 2595 1494 185 2757 1552 91 2919 1674 3 3071 1741 0 3194 1827 0 3326 1904 21 3483 2034 0 3625 2149 2 3769 2254 18 3923 892 623 415 882 602 470 873 615 504 884 630 551 899 641 599 930 638 665 910 633 731 914 650 825 939 650 907 947 636 959 967 646 1024 981 628 1133 1045 620 1267 1045 614 1378 1083 592 1503 1110 570 1614 1126 567 1745 1175 539 1876 1205 523 2013 1249 504 2136 1303 463 2299 1386 424 2461 1439 368 2605 1492 308 2763 1586 227 2909 1665 114 3043 1727 17 3204 1812 0 3334 1920 0 3467 2030 0 3599 2152 0 3777 2224 1 3935 870 711 469 896 694 474 861 713 536 874 709 592 901 710 647 915 724 699 939 698 772 952 704 861 951 716 926 991 711 1004 991 701 1064 988 710 1174 1042 703 1308 1062 681 1432 1096 655 1539 1119 648 1657 1146 643 1748 1187 614 1870 1221 599 2032 1253 578 2176 1290 558 2341 1351 521 2492 1424 465 2622 1497 409 2749 1555 384 2919 1620 289 3055 1712 198 3172 1805 53 3320 1894 16 3471 2008 0 3626 2122 3 3783 2224 0 3955 867 794 464 856 770 509 859 771 540 885 796 599 883 810 664 927 792 741 955 794 765 944 798 854 975 813 946 989 798 1003 1005 771 1105 1018 783 1240 1040 775 1345 1055 765 1449 1083 750 1529 1096 714 1661 1145 725 1791 1150 699 1905 1178 698 2062 1241 670 2211 1297 648 2347 1344 623 2505 1398 578 2627 1456 549 2786 1543 495 2928 1615 455 3061 1671 379 3183 1788 309 3325 1876 202 3508 1990 62 3661 2078 29 3814 2196 16 3931 827 864 526 840 875 539 844 860 573 871 853 611 871 892 669 864 898 727 902 897 811 915 911 878 944 912 960 946 907 1046 996 883 1145 1008 880 1240 1028 871 1360 1053 833 1456 1091 847 1569 1072 848 1718 1116 827 1796 1148 796 1919 1162 798 2098 1224 766 2205 1284 739 2353 1319 722 2490 1361 696 2658 1445 655 2814 1502 626 2944 1595 574 3058 1672 544 3219 1744 503 3338 1838 418 3491 1950 376 3654 2053 304 3791 2204 258 3934 791 966 539 802 977 578 841 955 616 817 963 651 856 980 712 864 989 750 887 994 825 924 1005 896 973 1002 993 967 994 1063 937 994 1176 938 985 1270 996 998 1381 1012 978 1492 1030 959 1602 1062 934 1722 1081 929 1841 1092 906 1952 1149 902 2087 1171 892 2223 1236 859 2365 1303 845 2537 1324 820 2661 1399 804 2816 1446 769 2936 1533 704 3079 1623 681 3225 1706 660 3358 1824 606 3502 1911 574 3630 2006 531 3788 2139 510 3945 786 1046 594 801 1053 611 767 1060 644 809 1067 683 798 1106 742 824 1087 770 865 1112 883 885 1112 940 928 1136 1008 895 1148 1084 967 1106 1203 929 1091 1292 889 1104 1414 938 1053 1519 971 1065 1669 1013 1073 1761 1032 1059 1889 1034 1029 2020 1104 1017 2148 1145 1001 2289 1174 985 2396 1240 968 2527 1297 941 2711 1361 927 2828 1440 887 2962 1517 869 3076 1574 827 3235 1682 781 3354 1763 753 3493 1869 741 3665 1976 703 3783 2102 700 3949 745 1164 635 734 1168 633 759 1199 680 752 1204 687 775 1212 755 776 1219 779 813 1226 882 831 1220 942 869 1265 1044 871 1258 1125 864 1275 1217 897 1254 1332 879 1253 1451 892 1207 1557 885 1198 1680 902 1168 1807 932 1180 1919 987 1165 2054 1025 1147 2159 1096 1119 2296 1133 1120 2438 1189 1086 2566 1257 1071 2711 1316 1052 2814 1377 1026 2982 1444 992 3111 1540 964 3234 1618 936 3366 1715 925 3516 1829 897 3678 1917 888 3783 2055 890 3933 668 1305 658 670 1315 666 701 1339 724 692 1320 734 707 1310 763 743 1331 823 753 1360 894 783 1368 971 805 1390 1060 839 1391 1178 837 1402 1247 813 1416 1366 863 1394 1470 823 1384 1582 828 1358 1692 827 1330 1803 839 1296 1962 847 1269 2097 898 1282 2209 980 1290 2338 1022 1253 2465 1095 1249 2608 1176 1220 2758 1210 1205 2846 1297 1169 2984 1372 1157 3116 1453 1109 3258 1561 1089 3386 1657 1073 3503 1747 1055 3664 1860 1058 3795 1993 1069 3968 591 1440 693 594 1444 697 591 1451 729 597 1476 755 614 1484 800 610 1491 832 635 1507 899 630 1517 973 684 1546 1077 735 1544 1179 780 1548 1287 739 1550 1392 734 1565 1502 763 1531 1611 776 1519 1708 744 1506 1837 761 1478 1972 750 1436 2069 766 1408 2214 774 1383 2354 830 1382 2488 964 1394 2606 1066 1374 2748 1127 1334 2885 1206 1319 3006 1299 1289 3166 1391 1257 3259 1485 1236 3401 1570 1226 3552 1687 1205 3683 1814 1211 3809 1941 1227 3949 425 1595 705 452 1581 736 459 1587 757 448 1611 775 449 1617 817 462 1607 880 474 1653 918 489 1648 1024 578 1676 1105 644 1678 1227 662 1705 1305 663 1692 1422 651 1699 1545 643 1720 1627 681 1697 1733 694 1650 1867 658 1647 1979 663 1617 2115 629 1595 2237 641 1562 2361 673 1526 2500 695 1495 2656 816 1496 2778 975 1493 2904 1093 1465 3041 1170 1450 3183 1256 1422 3271 1356 1402 3414 1483 1375 3537 1588 1363 3673 1706 1361 3811 1860 1373 3949 123 1734 703 137 1749 733 149 1749 751 131 1769 781 161 1785 842 172 1778 872 203 1793 923 198 1801 1009 373 1822 1129 480 1843 1222 505 1842 1330 501 1829 1462 492 1856 1559 500 1857 1672 557 1871 1793 572 1822 1906 579 1803 2035 530 1790 2138 519 1777 2290 505 1731 2412 493 1703 2506 508 1672 2664 585 1653 2783 641 1604 2930 835 1598 3053 1010 1616 3158 1133 1583 3296 1242 1550 3426 1331 1536 3542 1480 1514 3682 1612 1521 3824 1756 1525 3963 0 1884 739 0 1889 767 0 1896 784 0 1902 825 0 1920 876 0 1955 910 0 1928 958 0 1957 1043 8 1965 1157 243 1981 1278 248 1976 1357 319 1993 1468 280 1981 1589 294 1983 1694 234 2004 1795 428 1990 1943 373 1985 2064 352 1967 2176 327 1932 2316 301 1915 2415 254 1892 2539 266 1864 2663 267 1817 2772 416 1781 2910 510 1755 3034 625 1711 3165 867 1724 3277 1103 1744 3411 1228 1716 3556 1344 1676 3707 1472 1675 3831 1637 1676 3963 19 2031 767 13 2043 795 8 2040 809 9 2051 844 0 2051 892 20 2052 919 7 2051 981 23 2077 1081 9 2111 1194 23 2117 1320 18 2139 1401 31 2132 1520 9 2132 1646 8 2150 1748 23 2134 1858 14 2152 1986 194 2145 2086 114 2139 2224 69 2111 2324 56 2067 2478 35 2067 2546 23 2029 2687 25 1978 2817 43 1963 2917 108 1931 3059 292 1893 3184 482 1863 3299 683 1843 3429 1012 1856 3543 1259 1894 3693 1396 1868 3840 1541 1869 3984 7 2197 778 0 2192 785 7 2204 823 0 2212 850 7 2218 880 7 2225 938 8 2238 1015 5 2251 1051 11 2270 1199 22 2268 1339 34 2265 1458 9 2268 1568 3 2285 1679 25 2283 1794 15 2286 1882 4 2297 2014 1 2306 2153 0 2290 2215 0 2266 2382 23 2231 2482 16 2225 2618 5 2198 2738 0 2167 2834 9 2125 2982 4 2100 3057 8 2077 3179 67 2049 3291 319 2025 3414 610 1993 3576 887 2008 3708 1259 2071 3824 1569 2125 3981 22 2339 829 34 2351 829 29 2343 868 26 2340 907 18 2372 945 3 2392 969 9 2391 1046 13 2389 1129 0 2417 1255 7 2417 1403 7 2408 1491 6 2430 1592 10 2428 1682 17 2433 1811 14 2428 1918 12 2424 2014 10 2442 2156 31 2452 2280 18 2421 2393 0 2404 2508 18 2376 2648 12 2365 2720 5 2327 2851 10 2294 2947 18 2267 3093 15 2233 3225 10 2211 3317 0 2187 3420 256 2178 3574 644 2159 3710 931 2178 3820 1330 2246 3992 6 2505 847 12 2495 868 10 2517 902 1 2506 933 4 2509 968 18 2507 1031 3 2525 1092 15 2540 1167 21 2559 1280 0 2575 1422 4 2558 1557 1 2557 1644 13 2575 1744 4 2563 1851 6 2561 1952 0 2572 2054 20 2563 2163 7 2581 2277 15 2598 2436 28 2542 2561 31 2513 2657 19 2498 2754 4 2481 2882 9 2458 2976 21 2417 3087 24 2402 3213 11 2353 3343 6 2352 3465 0 2331 3579 306 2316 3703 793 2351 3857 1182 2378 4009 0 2629 873 14 2635 908 26 2640 931 21 2648 971 9 2647 995 3 2656 1064 6 2676 1136 7 2675 1212 9 2701 1355 11 2689 1494 21 2687 1581 16 2681 1664 13 2684 1778 5 2688 1861 14 2695 1973 22 2692 2085 3 2705 2207 14 2688 2295 27 2696 2443 9 2730 2572 17 2677 2684 22 2657 2764 13 2633 2848 3 2616 2986 11 2585 3099 16 2561 3204 0 2533 3314 7 2496 3483 13 2499 3606 54 2500 3714 623 2504 3847 1088 2544 3987 8 2792 931 12 2783 956 6 2787 991 10 2792 1008 19 2794 1067 18 2793 1126 19 2802 1168 4 2814 1287 0 2820 1425 13 2817 1554 2 2816 1649 19 2817 1728 8 2836 1794 16 2829 1881 28 2814 2015 17 2821 2098 17 2825 2223 11 2831 2366 32 2817 2472 17 2830 2604 1 2845 2732 9 2804 2783 5 2764 2896 4 2754 2990 6 2727 3114 7 2697 3221 9 2678 3349 10 2661 3503 18 2651 3636 41 2647 3732 552 2660 3860 997 2699 4022 0 2926 1024 0 2915 1032 0 2927 1077 0 2919 1091 0 2931 1120 4 2925 1175 5 2937 1235 8 2954 1340 0 2946 1466 8 2947 1601 8 2949 1717 21 2934 1765 0 2954 1869 16 2948 1937 18 2938 2041 16 2958 2154 8 2947 2252 8 2938 2377 40 2938 2464 4 2952 2585 16 2937 2724 8 2939 2865 21 2910 2904 20 2898 2999 12 2874 3128 24 2859 3232 11 2835 3359 4 2816 3490 8 2807 3603 37 2798 3743 587 2822 3879 1032 2866 4035 29 3028 1113 8 3045 1113 11 3045 1143 6 3063 1172 18 3053 1211 0 3073 1263 17 3054 1328 8 3061 1425 8 3057 1530 17 3064 1686 17 3064 1767 10 3075 1863 28 3054 1942 7 3070 2013 10 3064 2107 23 3061 2220 0 3057 2310 8 3053 2407 7 3069 2515 7 3060 2614 12 3059 2715 4 3094 2861 0 3068 2950 19 3025 3050 8 2992 3169 22 2980 3289 4 2985 3370 22 2968 3498 0 2951 3649 55 2976 3755 610 2956 3858 1073 3005 4003 18 3183 1207 18 3177 1204 2 3174 1234 0 3183 1258 2 3182 1310 0 3196 1342 3 3180 1404 0 3202 1528 32 3166 1608 0 3198 1749 19 3188 1876 9 3198 1929 11 3194 2005 10 3192 2050 6 3202 2155 13 3195 2222 15 3179 2327 4 3199 2416 3 3204 2506 18 3182 2642 4 3180 2723 2 3185 2876 13 3196 2988 22 3183 3078 14 3119 3157 26 3114 3271 18 3106 3406 38 3118 3504 10 3095 3630 108 3122 3767 672 3120 3872 1139 3161 4056 0 3300 1367 0 3304 1379 20 3301 1407 9 3312 1412 25 3307 1446 14 3314 1467 11 3320 1562 3 3317 1627 4 3322 1746 9 3315 1837 17 3301 1946 0 3324 1997 3 3300 2066 7 3316 2131 0 3319 2205 8 3328 2291 9 3309 2360 9 3305 2435 0 3322 2563 5 3325 2676 14 3317 2754 16 3309 2859 15 3321 2989 3 3343 3131 10 3280 3210 22 3242 3282 0 3242 3377 7 3236 3523 17 3235 3641 229 3235 3740 762 3268 3913 1225 3293 4040 0 3458 1453 0 3444 1484 0 3444 1490 24 3442 1523 4 3446 1546 11 3449 1612 7 3443 1665 27 3431 1771 20 3426 1835 14 3438 1962 7 3451 2061 7 3443 2102 10 3442 2134 3 3429 2216 6 3458 2266 0 3452 2338 0 3454 2383 2 3453 2500 19 3459 2596 28 3449 2725 4 3446 2786 28 3437 2863 14 3442 2995 2 3449 3135 0 3460 3271 7 3407 3327 26 3378 3457 2 3364 3533 12 3381 3681 378 3407 3774 855 3392 3910 1331 3430 4051 28 3556 1655 12 3582 1643 5 3575 1664 10 3585 1705 12 3573 1739 14 3573 1764 12 3566 1828 4 3563 1884 10 3565 1988 20 3565 2092 8 3579 2197 26 3569 2215 8 3571 2235 0 3577 2311 9 3572 2366 4 3600 2419 10 3572 2463 0 3586 2533 10 3575 2629 11 3592 2739 14 3587 2838 17 3579 2948 10 3584 3036 4 3573 3176 12 3584 3280 3 3608 3414 11 3542 3472 12 3521 3565 74 3507 3665 561 3510 3822 967 3554 3935 1421 3565 4089 0 3715 1835 1 3702 1869 0 3725 1882 4 3715 1916 2 3707 1911 7 3707 1965 4 3710 2033 6 3692 2074 1 3704 2169 17 3714 2227 191 3700 2302 55 3692 2336 13 3714 2404 5 3719 2419 12 3713 2456 5 3725 2522 5 3715 2548 13 3723 2616 30 3727 2704 0 3738 2795 0 3717 2904 9 3715 2977 5 3706 3101 12 3722 3223 9 3719 3331 8 3725 3435 6 3735 3553 4 3684 3601 278 3644 3667 703 3656 3814 1094 3696 3978 1546 3716 4090 9 3837 2057 17 3844 2073 22 3847 2101 6 3848 2106 7 3857 2136 4 3847 2175 13 3837 2189 70 3847 2261 492 3825 2337 731 3842 2415 926 3846 2479 879 3836 2498 663 3841 2541 311 3845 2566 0 3849 2573 27 3844 2627 9 3859 2664 13 3868 2722 8 3869 2761 10 3889 2843 11 3874 2943 7 3870 3047 8 3861 3168 19 3871 3270 4 3872 3343 0 3874 3480 2 3868 3610 20 3858 3719 151 3820 3738 827 3787 3858 1209 3808 3968 1691 3852 4084 828 3983 2337 824 3982 2336 839 3970 2336 813 3995 2373 872 3988 2389 985 3959 2412 1060 3978 2438 1167 3955 2508 1277 3967 2565 1363 3971 2602 1457 3967 2672 1426 3972 2724 1316 3967 2714 1137 3992 2730 906 3981 2753 502 3995 2779 16 3991 2823 24 4015 2839 0 4027 2890 10 4041 2933 4 4030 3024 14 4023 3142 5 4035 3247 0 4035 3328 12 4030 3402 25 4025 3543 4 4039 3621 4 4037 3758 12 4049 3874 912 3964 3904 1341 3946 3992 1807 3950 4095 893 369 408 909 385 403 906 412 452 922 398 482 918 377 518 941 404 588 941 418 663 952 406 713 969 406 799 987 418 870 999 413 969 1017 406 1047 1061 376 1148 1108 385 1282 1166 361 1399 1166 353 1517 1203 321 1652 1252 299 1790 1278 264 1932 1340 184 2068 1401 109 2246 1455 22 2399 1556 0 2588 1610 0 2726 1675 0 2865 1770 8 3023 1832 0 3171 1907 7 3304 2032 14 3461 2130 1 3625 2224 0 3775 2342 0 3907 894 402 406 893 407 397 921 431 460 913 435 497 936 438 560 941 423 595 955 441 679 960 453 744 958 435 808 994 438 885 1035 431 996 1048 439 1067 1071 422 1158 1100 407 1267 1156 402 1419 1178 381 1541 1206 357 1667 1255 329 1797 1311 301 1925 1340 244 2074 1389 171 2243 1450 71 2404 1529 0 2563 1589 0 2726 1664 5 2874 1765 0 3031 1841 0 3176 1935 9 3306 2026 6 3471 2121 0 3625 2223 0 3774 2338 0 3926 939 431 403 928 431 399 936 451 443 935 468 532 930 470 551 928 480 600 922 482 670 939 486 737 995 471 821 1012 471 909 1022 460 984 1039 472 1086 1082 466 1196 1105 454 1281 1128 447 1433 1189 430 1551 1197 399 1688 1262 374 1825 1294 345 1956 1329 280 2090 1389 235 2257 1460 120 2411 1518 29 2577 1607 4 2734 1678 4 2884 1741 8 3047 1828 0 3178 1931 9 3314 2006 11 3466 2130 5 3605 2213 4 3758 2339 0 3903 958 454 405 953 457 420 942 483 463 954 485 511 947 504 580 963 514 631 960 522 671 987 533 759 980 528 839 1000 528 912 1025 524 1000 1083 507 1084 1090 508 1210 1127 492 1339 1153 472 1436 1204 460 1560 1225 442 1680 1253 425 1835 1297 381 1951 1360 337 2101 1399 299 2261 1470 212 2427 1538 117 2588 1615 10 2732 1669 0 2881 1737 8 3047 1833 1 3182 1924 0 3307 2012 6 3464 2122 1 3609 2222 0 3774 2342 0 3907 959 493 393 970 520 461 958 545 484 948 551 544 956 566 600 959 591 668 991 566 709 968 570 794 1005 570 867 1024 569 929 1051 572 1001 1078 566 1106 1103 564 1211 1135 555 1340 1170 539 1479 1194 525 1572 1234 502 1720 1256 487 1850 1308 452 1981 1340 406 2120 1415 373 2294 1471 306 2453 1528 242 2596 1619 137 2744 1675 21 2888 1763 3 3051 1836 3 3207 1907 13 3332 2015 0 3497 2108 2 3626 2205 13 3773 2320 14 3905 973 581 418 978 586 455 974 600 503 969 610 557 973 628 610 961 636 666 977 633 738 981 647 828 1016 636 889 1024 645 971 1069 616 1011 1077 642 1137 1131 643 1266 1159 613 1360 1163 602 1482 1214 579 1600 1221 567 1712 1255 532 1849 1281 537 2023 1352 489 2149 1387 452 2290 1460 406 2457 1521 345 2622 1594 295 2741 1663 186 2903 1725 80 3046 1812 9 3203 1897 14 3336 2002 1 3493 2081 11 3625 2203 0 3761 2319 2 3932 960 666 435 986 668 483 992 682 554 976 674 555 987 695 629 1005 688 696 1010 697 753 1017 714 814 1011 730 895 1069 703 997 1062 704 1048 1107 703 1175 1117 687 1258 1175 687 1373 1182 681 1494 1211 666 1637 1270 634 1777 1255 627 1869 1305 604 2035 1339 557 2170 1406 536 2328 1467 506 2490 1526 455 2621 1585 409 2748 1650 341 2898 1741 258 3055 1818 151 3188 1873 36 3338 1993 0 3487 2090 0 3616 2191 0 3773 2290 11 3957 943 789 462 974 780 513 987 768 548 964 796 596 1000 792 647 985 797 699 996 808 784 1032 800 871 1036 802 914 1045 823 997 1058 816 1114 1117 785 1194 1117 793 1322 1159 774 1437 1189 742 1532 1202 761 1661 1213 730 1784 1255 718 1925 1300 685 2061 1338 661 2204 1372 653 2360 1446 609 2505 1500 578 2652 1554 536 2774 1617 489 2907 1712 421 3072 1817 356 3204 1873 263 3343 1959 163 3492 2070 42 3651 2158 8 3774 2267 0 3948 906 879 518 939 868 527 949 879 564 969 868 608 986 894 672 1010 885 722 1024 904 809 1029 899 867 1046 900 947 1039 911 1029 1099 908 1135 1100 884 1222 1126 884 1357 1173 856 1453 1147 857 1575 1186 836 1685 1203 839 1804 1263 814 1937 1296 789 2077 1325 763 2202 1368 737 2364 1411 715 2504 1460 680 2651 1516 651 2801 1601 610 2920 1692 574 3084 1748 524 3197 1849 450 3342 1936 416 3483 2025 325 3643 2121 258 3775 2258 212 3923 909 973 562 925 966 587 925 978 626 951 953 653 936 980 704 961 992 781 978 1007 831 986 995 877 1014 1010 976 1051 1019 1067 1092 1010 1177 1083 988 1241 1120 991 1398 1105 985 1484 1130 975 1604 1160 944 1712 1189 938 1848 1225 932 1966 1255 888 2109 1293 871 2250 1342 855 2396 1406 833 2559 1436 806 2663 1513 770 2782 1572 738 2939 1668 704 3081 1728 670 3225 1813 626 3348 1909 582 3511 1991 544 3625 2084 505 3787 2209 482 3939 860 1075 579 880 1096 599 884 1087 627 883 1093 647 931 1103 705 950 1093 772 954 1113 830 965 1131 907 1004 1117 989 1036 1149 1111 1035 1150 1198 1031 1109 1292 1061 1113 1383 1092 1111 1538 1119 1089 1648 1119 1082 1751 1171 1068 1873 1196 1040 2011 1233 1036 2148 1275 1010 2268 1320 984 2418 1367 968 2554 1390 952 2696 1466 908 2824 1539 885 2961 1606 854 3068 1680 816 3236 1777 778 3405 1863 752 3521 1949 718 3647 2047 689 3791 2177 700 3946 833 1178 622 852 1190 648 858 1205 680 876 1193 697 894 1195 757 888 1215 796 918 1231 883 923 1234 923 951 1260 1015 996 1276 1133 1002 1265 1236 1005 1271 1344 1014 1245 1403 1019 1224 1550 1010 1204 1657 1061 1177 1795 1112 1189 1918 1154 1175 2034 1170 1171 2176 1180 1155 2292 1282 1105 2457 1310 1093 2572 1348 1084 2703 1429 1040 2830 1483 1014 2977 1561 1000 3119 1626 985 3234 1693 945 3375 1803 904 3510 1879 890 3641 2020 865 3778 2137 865 3945 814 1318 653 787 1304 671 801 1335 715 814 1314 722 840 1330 784 844 1332 824 867 1368 870 884 1372 951 916 1392 1031 946 1404 1154 974 1422 1248 953 1431 1360 997 1399 1483 953 1378 1581 959 1362 1708 956 1326 1825 994 1301 1951 1029 1297 2087 1114 1290 2210 1129 1282 2353 1196 1272 2482 1226 1239 2598 1301 1225 2753 1358 1190 2857 1437 1170 2995 1499 1147 3118 1564 1124 3261 1659 1091 3406 1751 1079 3528 1850 1058 3653 1955 1044 3802 2059 1043 3945 714 1459 702 730 1447 700 736 1453 717 725 1462 745 771 1468 808 782 1467 846 797 1481 888 812 1510 972 817 1534 1074 860 1543 1172 922 1559 1276 924 1553 1368 904 1565 1510 939 1546 1614 923 1536 1721 921 1501 1849 907 1463 1960 893 1453 2108 928 1424 2249 1005 1403 2377 1094 1417 2512 1143 1386 2633 1217 1367 2746 1294 1329 2884 1354 1315 3021 1411 1302 3135 1489 1282 3245 1598 1247 3404 1655 1244 3521 1770 1202 3677 1900 1192 3810 2015 1215 3950 619 1573 718 610 1596 727 624 1604 739 632 1610 783 650 1616 826 658 1621 854 686 1637 931 711 1662 1006 728 1676 1072 785 1701 1184 829 1695 1314 842 1695 1415 835 1708 1514 819 1715 1652 828 1699 1765 839 1682 1868 844 1658 2007 824 1625 2127 848 1585 2265 841 1563 2400 874 1538 2530 930 1504 2654 1075 1511 2776 1146 1513 2906 1243 1464 3024 1296 1441 3158 1390 1416 3270 1479 1411 3394 1589 1372 3533 1688 1354 3674 1817 1349 3808 1940 1369 3946 454 1728 737 472 1744 754 491 1752 792 488 1746 816 498 1774 853 521 1769 900 534 1781 946 538 1802 1006 550 1827 1111 648 1850 1226 722 1848 1334 731 1862 1429 734 1871 1576 726 1862 1687 750 1876 1826 760 1854 1910 783 1818 2031 757 1801 2175 741 1768 2287 744 1728 2429 717 1715 2534 758 1673 2677 820 1634 2781 924 1606 2941 1096 1630 3053 1187 1601 3141 1259 1577 3284 1385 1549 3428 1465 1537 3541 1588 1522 3670 1712 1517 3815 1854 1529 3954 144 1885 727 181 1884 752 188 1885 775 190 1887 798 186 1908 840 197 1915 875 209 1940 959 227 1945 1028 243 1969 1120 440 1981 1247 591 1989 1384 600 2011 1468 607 2013 1607 586 2008 1685 616 2010 1806 676 2012 1946 683 1997 2076 676 1961 2181 633 1934 2307 615 1922 2445 603 1883 2552 612 1853 2682 628 1816 2809 721 1768 2941 787 1735 3056 910 1719 3190 1115 1743 3300 1224 1744 3413 1327 1696 3555 1453 1677 3687 1596 1661 3828 1752 1679 3962 0 2027 761 0 2035 779 0 2051 796 7 2048 828 5 2061 866 9 2080 909 8 2088 991 27 2095 1058 25 2111 1132 111 2128 1252 342 2136 1413 360 2151 1526 405 2147 1622 413 2165 1719 393 2152 1847 411 2159 1974 577 2145 2104 542 2123 2219 510 2110 2355 483 2098 2462 454 2061 2608 434 2048 2702 431 2002 2838 442 1968 2946 549 1911 3056 673 1886 3220 768 1841 3321 955 1851 3452 1215 1878 3561 1373 1885 3691 1517 1854 3847 1646 1863 3989 9 2180 801 18 2190 801 14 2189 830 6 2202 859 24 2212 913 21 2210 964 19 2226 1025 20 2235 1100 9 2258 1176 9 2270 1326 32 2295 1433 46 2281 1523 85 2293 1637 92 2302 1763 76 2307 1878 63 2303 1986 104 2322 2127 403 2305 2259 316 2270 2371 305 2269 2495 240 2223 2596 235 2188 2712 215 2171 2826 216 2127 2942 230 2096 3058 323 2061 3199 541 2027 3343 693 1995 3454 860 1990 3569 1141 2003 3693 1438 2085 3850 1634 2103 3976 0 2342 797 0 2361 829 2 2362 849 5 2342 888 17 2357 931 3 2365 973 6 2391 1061 19 2394 1115 17 2409 1206 11 2420 1341 32 2416 1499 1 2431 1596 7 2429 1699 3 2436 1799 10 2444 1913 0 2442 2014 0 2444 2163 14 2463 2270 154 2433 2411 144 2427 2491 74 2410 2620 58 2363 2725 76 2336 2855 70 2305 2950 55 2266 3054 76 2228 3179 137 2209 3322 357 2199 3451 630 2154 3582 888 2158 3725 1140 2174 3826 1509 2268 3993 6 2487 829 6 2489 862 7 2500 893 3 2493 920 10 2503 968 11 2521 1023 20 2514 1062 1 2531 1141 14 2539 1232 23 2557 1389 5 2567 1531 7 2578 1637 5 2566 1722 6 2572 1860 0 2574 1933 12 2580 2071 9 2575 2200 11 2585 2323 6 2610 2476 39 2568 2514 15 2546 2621 5 2529 2736 15 2486 2857 0 2469 2967 5 2440 3092 14 2415 3217 17 2388 3340 91 2346 3450 283 2322 3575 698 2320 3720 989 2342 3846 1325 2380 4020 11 2645 894 18 2651 901 14 2642 932 6 2646 962 27 2650 1005 6 2653 1046 8 2673 1120 11 2675 1203 0 2671 1292 10 2687 1433 22 2698 1573 7 2703 1677 19 2694 1756 22 2711 1883 25 2708 1999 0 2712 2108 5 2684 2222 10 2705 2310 14 2721 2450 5 2741 2604 14 2684 2671 15 2656 2757 9 2640 2899 5 2613 2991 5 2593 3121 9 2565 3211 15 2539 3345 17 2520 3470 108 2495 3578 463 2486 3720 855 2502 3864 1228 2544 4009 7 2776 927 5 2771 966 21 2781 993 21 2771 1017 3 2787 1060 7 2785 1105 6 2811 1174 27 2803 1242 9 2820 1349 32 2814 1500 0 2826 1622 5 2827 1725 6 2832 1835 13 2822 1933 5 2828 2025 8 2826 2112 13 2828 2225 13 2839 2350 0 2835 2450 9 2845 2595 20 2856 2719 0 2796 2792 11 2774 2920 13 2762 3031 11 2741 3140 0 2721 3244 3 2689 3333 9 2677 3467 105 2652 3577 428 2653 3759 784 2667 3873 1129 2691 4008 13 2913 1015 4 2926 1035 7 2914 1063 0 2937 1091 2 2936 1116 21 2925 1172 11 2928 1243 20 2935 1316 8 2938 1413 7 2950 1550 0 2953 1684 6 2949 1785 4 2954 1879 7 2960 1962 13 2955 2045 0 2954 2159 8 2958 2260 5 2949 2376 5 2943 2503 9 2940 2576 23 2946 2723 4 2964 2859 9 2914 2920 0 2897 3031 5 2878 3136 19 2847 3241 1 2843 3369 0 2831 3485 87 2812 3584 432 2806 3762 793 2822 3899 1150 2858 4022 8 3064 1121 0 3057 1123 8 3053 1148 13 3044 1165 0 3070 1206 2 3068 1255 10 3053 1324 4 3065 1406 8 3069 1498 0 3061 1620 0 3077 1733 3 3078 1844 5 3091 1930 12 3083 1990 9 3069 2094 5 3076 2165 4 3073 2281 7 3073 2384 17 3072 2500 5 3077 2603 21 3064 2716 5 3093 2862 0 3065 2977 0 3044 3067 0 3022 3157 0 2992 3282 7 2969 3372 19 2963 3477 96 2956 3595 470 2955 3749 833 2962 3884 1203 2996 4019 0 3193 1208 3 3188 1220 20 3180 1236 1 3173 1269 0 3194 1318 8 3198 1348 18 3188 1415 4 3196 1482 17 3203 1588 11 3192 1697 5 3201 1834 14 3184 1930 13 3196 2000 4 3183 2056 9 3194 2130 6 3202 2210 12 3202 2307 4 3218 2390 8 3191 2495 3 3201 2620 6 3187 2737 8 3197 2865 14 3206 2984 7 3185 3097 10 3152 3167 5 3143 3283 9 3135 3391 9 3117 3496 125 3097 3609 539 3107 3799 871 3118 3877 1255 3164 4055 10 3309 1323 9 3310 1340 5 3318 1357 5 3320 1391 0 3336 1425 0 3325 1470 9 3308 1489 0 3315 1569 4 3325 1669 3 3332 1800 13 3306 1932 0 3314 2008 22 3315 2059 34 3318 2135 6 3303 2197 9 3316 2280 16 3335 2361 16 3325 2442 20 3312 2560 19 3314 2663 9 3311 2741 22 3314 2884 4 3319 2989 19 3336 3127 5 3290 3239 24 3256 3279 14 3261 3389 55 3241 3503 218 3247 3645 596 3250 3794 964 3265 3912 1330 3298 4040 11 3444 1446 15 3442 1488 1 3441 1490 6 3443 1509 2 3450 1551 11 3447 1609 2 3441 1635 9 3459 1712 3 3449 1804 9 3440 1909 20 3425 2035 18 3429 2109 17 3438 2177 0 3472 2237 24 3438 2289 2 3448 2345 8 3462 2402 4 3458 2487 2 3454 2575 14 3442 2702 19 3437 2810 11 3452 2914 14 3455 2991 9 3459 3156 24 3468 3264 8 3421 3347 51 3377 3421 104 3385 3518 348 3366 3677 692 3393 3792 1034 3396 3914 1432 3428 4052 0 3565 1649 3 3574 1639 3 3573 1662 1 3577 1693 2 3571 1729 1 3565 1748 3 3575 1817 3 3574 1861 8 3581 1953 22 3570 2057 24 3559 2160 1 3565 2212 1 3569 2277 27 3575 2315 9 3572 2351 14 3579 2422 18 3586 2466 18 3575 2559 5 3585 2615 1 3589 2737 0 3588 2826 13 3583 2948 13 3564 3036 5 3586 3158 11 3596 3280 8 3589 3393 7 3554 3497 213 3516 3549 502 3486 3686 796 3530 3801 1120 3531 3934 1519 3575 4084 16 3705 1841 20 3710 1845 17 3706 1846 28 3719 1889 6 3704 1911 23 3707 1946 3 3702 1987 5 3709 2039 12 3705 2108 1 3700 2204 330 3713 2297 618 3710 2377 363 3715 2406 31 3700 2418 4 3703 2462 14 3720 2537 7 3737 2579 23 3699 2622 7 3731 2688 15 3720 2783 0 3720 2870 0 3716 2969 0 3714 3080 24 3707 3167 13 3720 3298 5 3719 3409 9 3728 3539 70 3676 3627 617 3637 3692 893 3647 3809 1219 3647 3948 1632 3711 4094 11 3852 2087 11 3829 2089 22 3845 2093 11 3846 2134 15 3838 2132 47 3832 2171 14 3836 2184 177 3850 2258 567 3862 2324 798 3820 2365 975 3829 2444 1134 3834 2543 997 3838 2529 794 3833 2566 463 3837 2609 28 3861 2626 14 3849 2700 12 3863 2720 14 3868 2753 11 3863 2828 27 3868 2937 0 3874 3053 0 3875 3132 0 3862 3224 9 3881 3349 13 3874 3472 13 3868 3584 0 3879 3714 546 3802 3763 1002 3773 3830 1324 3793 3959 1746 3841 4090 1019 3978 2361 1008 3967 2349 1030 3957 2350 1064 3980 2377 1044 3973 2391 1035 3999 2384 1090 3981 2428 1192 3985 2487 1290 3987 2521 1372 3987 2563 1482 3982 2650 1588 3983 2707 1488 3996 2732 1361 3983 2705 1180 3985 2741 957 3987 2781 466 4011 2820 16 4015 2844 18 4001 2870 10 4047 2920 6 4025 3018 17 4031 3106 11 4024 3198 0 4031 3292 5 4047 3427 5 4031 3525 22 4035 3632 21 4021 3756 23 4040 3829 1074 3969 3915 1433 3919 3976 1909 3955 4090 963 375 396 980 390 413 989 398 437 983 418 508 987 414 532 1000 399 572 1027 423 665 1034 430 724 1061 428 815 1063 407 854 1097 423 974 1114 412 1066 1127 403 1145 1178 408 1263 1211 383 1374 1249 345 1511 1292 337 1637 1329 289 1789 1375 275 1942 1416 220 2082 1476 119 2236 1563 37 2405 1641 0 2564 1672 11 2723 1746 4 2876 1854 5 3031 1957 0 3180 2024 0 3327 2121 1 3482 2219 10 3612 2311 0 3760 2403 0 3913 958 402 391 995 407 403 991 435 448 984 451 497 989 462 546 1006 423 578 1001 439 663 1017 455 732 1077 450 822 1066 455 872 1069 450 999 1114 445 1051 1156 439 1159 1186 421 1276 1233 416 1402 1262 383 1533 1302 359 1663 1332 333 1785 1382 307 1943 1435 249 2088 1502 172 2256 1562 53 2410 1643 5 2576 1686 11 2723 1784 0 2891 1835 12 3025 1943 8 3183 1995 9 3327 2108 0 3513 2232 0 3633 2301 10 3772 2403 0 3913 983 398 392 1008 413 393 980 465 441 1010 448 511 1010 477 567 1009 464 617 1062 482 703 1046 482 759 1059 483 816 1053 495 901 1097 493 995 1144 457 1072 1161 458 1170 1193 461 1294 1224 443 1406 1268 427 1530 1307 399 1645 1330 374 1810 1396 345 1951 1416 290 2092 1502 221 2278 1564 135 2428 1618 18 2580 1687 7 2734 1767 0 2883 1826 8 3041 1923 12 3187 2006 0 3320 2116 5 3485 2193 1 3600 2309 10 3772 2403 0 3913 982 471 392 972 482 414 1002 481 457 1000 501 506 1007 537 595 1009 520 644 1054 519 674 1059 535 755 1058 522 828 1075 521 912 1111 544 997 1135 517 1104 1188 509 1205 1202 498 1288 1240 498 1423 1264 472 1558 1321 436 1687 1332 405 1814 1383 394 1966 1424 353 2113 1499 295 2262 1552 209 2421 1617 106 2578 1676 0 2743 1766 9 2898 1812 16 3023 1931 4 3174 2016 5 3327 2115 22 3492 2184 5 3630 2268 10 3761 2402 1 3895 1022 531 402 1011 509 418 1027 545 478 1025 561 517 1038 571 591 1014 571 647 1070 566 694 1050 582 775 1086 586 844 1104 585 956 1093 584 1016 1149 571 1127 1174 554 1196 1209 556 1312 1240 554 1437 1279 528 1581 1321 499 1697 1353 480 1832 1376 444 1959 1433 419 2128 1487 354 2278 1571 284 2448 1609 234 2600 1713 76 2731 1770 4 2900 1824 11 3024 1908 3 3198 1993 3 3331 2078 2 3504 2174 6 3629 2289 0 3781 2386 3 3924 1065 581 420 1041 573 444 1042 599 494 1036 615 551 1044 615 598 1046 621 666 1060 652 742 1070 630 779 1088 663 877 1110 632 961 1153 637 1019 1156 638 1142 1194 630 1239 1228 614 1324 1262 616 1479 1268 581 1573 1343 585 1730 1356 556 1864 1397 516 2002 1448 490 2157 1509 434 2304 1549 385 2447 1629 316 2619 1683 243 2742 1756 138 2906 1835 17 3050 1875 13 3194 2009 3 3337 2054 16 3467 2155 13 3632 2260 3 3789 2384 3 3926 1062 663 459 1068 670 496 1054 667 532 1070 680 557 1089 671 638 1099 682 686 1114 718 772 1058 705 786 1074 719 908 1118 740 990 1134 727 1068 1147 726 1162 1203 706 1252 1246 701 1387 1277 687 1510 1292 660 1613 1329 654 1746 1346 625 1886 1403 607 2037 1448 561 2180 1481 543 2317 1544 507 2466 1611 453 2618 1659 387 2752 1736 315 2909 1800 229 3050 1911 81 3208 1985 3 3322 2072 5 3481 2175 2 3634 2258 0 3787 2357 13 3920 1056 773 468 1056 779 505 1060 771 530 1076 761 565 1077 785 623 1104 771 684 1118 768 793 1108 772 848 1138 820 924 1139 791 982 1165 788 1084 1167 800 1181 1236 789 1305 1234 787 1408 1264 774 1516 1284 751 1635 1327 741 1798 1336 715 1918 1399 677 2036 1432 672 2190 1502 616 2350 1545 609 2497 1585 560 2649 1648 522 2766 1729 464 2908 1800 407 3063 1844 321 3188 1953 232 3363 2049 93 3496 2143 21 3644 2226 0 3777 2344 0 3932 1055 868 493 1057 877 536 1074 869 551 1058 869 595 1091 894 665 1091 875 717 1104 898 797 1124 873 866 1127 885 933 1136 915 1029 1146 917 1127 1179 900 1211 1209 906 1335 1221 881 1420 1283 852 1561 1299 841 1688 1329 830 1814 1371 814 1945 1388 805 2091 1437 747 2212 1486 740 2368 1524 709 2508 1590 659 2645 1637 649 2800 1696 594 2920 1776 558 3090 1848 514 3212 1953 416 3355 2020 383 3489 2114 290 3647 2221 193 3795 2311 144 3925 1027 961 517 1009 978 561 1044 968 598 1056 961 618 1067 999 679 1088 994 752 1106 986 801 1139 1002 883 1126 1020 965 1143 1034 1058 1191 1021 1170 1193 1014 1274 1224 1021 1381 1224 992 1458 1244 979 1595 1282 963 1730 1324 941 1868 1334 926 1982 1357 902 2104 1402 872 2262 1456 854 2402 1495 838 2542 1542 821 2673 1606 793 2823 1690 733 2964 1763 688 3082 1841 663 3225 1893 603 3351 2013 566 3509 2071 531 3647 2189 478 3803 2279 454 3934 979 1091 556 986 1090 584 1002 1082 625 1006 1084 656 1027 1102 700 1041 1097 744 1047 1109 824 1070 1113 897 1110 1132 1010 1146 1145 1075 1166 1166 1188 1172 1134 1297 1203 1138 1416 1211 1119 1530 1228 1105 1646 1268 1086 1769 1303 1069 1882 1311 1040 1996 1359 1017 2124 1382 1016 2254 1444 979 2408 1483 952 2570 1521 941 2680 1603 908 2830 1636 872 2955 1706 851 3098 1779 829 3234 1878 765 3366 1953 766 3511 2026 705 3660 2135 689 3788 2237 673 3950 972 1190 611 968 1174 632 963 1191 649 973 1195 697 992 1213 750 1035 1206 802 1021 1230 859 1083 1232 927 1069 1248 988 1139 1258 1116 1114 1291 1215 1134 1280 1313 1162 1273 1436 1140 1248 1534 1220 1245 1673 1235 1225 1795 1243 1224 1918 1291 1186 2025 1304 1163 2165 1341 1142 2299 1360 1137 2425 1429 1104 2555 1485 1071 2681 1544 1059 2844 1613 1027 2989 1685 998 3120 1722 978 3256 1800 923 3354 1888 920 3533 1983 875 3667 2096 864 3793 2210 858 3941 921 1332 640 928 1315 656 927 1345 695 924 1334 728 934 1336 760 960 1359 822 974 1358 867 999 1358 950 1037 1367 1032 1071 1385 1119 1085 1413 1227 1107 1427 1357 1142 1418 1465 1132 1376 1587 1093 1369 1702 1140 1325 1816 1172 1338 1959 1202 1335 2058 1256 1312 2222 1286 1301 2354 1334 1260 2472 1383 1246 2598 1424 1223 2743 1488 1190 2860 1560 1172 2990 1620 1147 3125 1689 1115 3241 1759 1083 3381 1859 1058 3521 1950 1048 3664 2037 1042 3799 2154 1043 3940 849 1447 676 857 1454 685 870 1444 721 881 1455 745 882 1459 773 889 1471 814 931 1485 900 952 1512 982 985 1535 1077 1006 1543 1163 1044 1566 1262 1054 1575 1361 1097 1565 1490 1093 1559 1623 1060 1550 1745 1081 1506 1865 1075 1482 1989 1110 1439 2127 1143 1441 2251 1193 1439 2376 1246 1411 2485 1312 1390 2636 1370 1367 2743 1421 1329 2869 1490 1327 3013 1544 1298 3116 1610 1272 3260 1707 1251 3396 1766 1228 3535 1886 1208 3664 1986 1195 3814 2091 1214 3961 782 1583 699 796 1587 721 806 1588 731 800 1596 778 817 1607 813 806 1616 848 843 1635 922 875 1637 991 882 1661 1063 918 1687 1154 955 1705 1286 984 1731 1407 997 1716 1531 991 1752 1645 1014 1703 1740 1018 1693 1868 1009 1666 2011 1034 1614 2165 1020 1585 2281 1036 1570 2415 1066 1531 2531 1192 1545 2647 1248 1535 2776 1296 1502 2879 1379 1479 3033 1442 1458 3148 1540 1428 3262 1591 1401 3417 1700 1377 3543 1814 1372 3682 1911 1354 3798 2030 1378 3950 669 1736 720 674 1751 739 680 1750 776 693 1735 784 715 1765 823 723 1765 869 741 1790 935 763 1795 1011 779 1809 1096 782 1845 1194 896 1853 1323 914 1871 1444 912 1872 1569 923 1873 1702 920 1883 1817 957 1853 1902 961 1837 2036 971 1809 2176 913 1783 2288 922 1754 2420 952 1715 2554 977 1674 2675 1028 1654 2803 1137 1666 2925 1246 1647 3026 1325 1614 3148 1411 1575 3273 1517 1535 3419 1595 1528 3543 1699 1520 3673 1811 1508 3813 1954 1530 3961 510 1875 758 519 1875 762 524 1872 772 540 1881 799 553 1901 858 575 1923 908 584 1931 976 618 1933 1062 607 1947 1125 639 1981 1188 746 1998 1350 815 2010 1485 816 2016 1581 833 2032 1700 828 2025 1818 859 2056 1956 882 2009 2073 867 2000 2186 850 1965 2309 842 1930 2445 829 1899 2556 840 1845 2679 880 1821 2807 951 1784 2938 995 1768 3044 1188 1761 3175 1299 1766 3289 1396 1724 3421 1460 1691 3558 1574 1679 3690 1704 1675 3808 1843 1680 3959 222 2027 748 227 2031 781 213 2035 792 240 2041 818 235 2059 856 278 2062 920 294 2074 985 309 2096 1063 341 2104 1119 378 2139 1231 559 2144 1384 695 2159 1511 683 2172 1606 716 2155 1754 723 2173 1854 699 2196 1973 802 2178 2094 782 2159 2219 763 2135 2340 766 2094 2449 746 2065 2581 759 2037 2685 764 2003 2817 748 1958 2922 829 1930 3062 925 1876 3181 1028 1875 3301 1238 1884 3443 1408 1883 3565 1473 1871 3688 1591 1845 3831 1748 1846 3977 7 2188 772 0 2195 786 7 2202 812 4 2201 822 12 2209 860 5 2215 940 27 2220 994 29 2237 1081 45 2268 1154 35 2278 1267 278 2289 1403 492 2294 1548 526 2314 1665 560 2307 1773 565 2302 1889 576 2301 2028 544 2338 2141 713 2301 2246 670 2297 2385 672 2272 2482 663 2229 2599 644 2197 2728 628 2168 2824 633 2133 2952 642 2098 3075 724 2060 3194 813 2032 3321 944 1999 3450 1105 2002 3585 1378 2042 3698 1555 2077 3845 1711 2077 3983 16 2346 807 6 2342 835 0 2349 838 19 2352 889 0 2365 929 19 2364 971 16 2370 1052 11 2387 1113 0 2426 1177 5 2427 1267 9 2442 1433 213 2439 1590 239 2453 1708 292 2447 1829 292 2453 1932 302 2445 2045 279 2451 2153 340 2462 2285 610 2455 2407 612 2410 2523 586 2398 2621 548 2362 2748 514 2349 2865 526 2298 2992 517 2260 3115 534 2229 3209 612 2188 3349 739 2174 3451 937 2162 3589 1073 2149 3686 1340 2191 3820 1680 2284 3994 6 2499 835 0 2503 866 0 2504 888 11 2502 924 2 2508 959 10 2512 1023 0 2522 1074 5 2538 1146 11 2542 1223 15 2557 1339 0 2579 1477 37 2589 1618 51 2580 1731 52 2586 1829 59 2578 1945 48 2595 2041 64 2594 2174 64 2584 2294 140 2610 2455 494 2580 2540 464 2547 2659 416 2525 2757 405 2487 2874 356 2463 3007 380 2435 3122 390 2417 3242 451 2360 3346 541 2338 3471 730 2337 3598 949 2313 3721 1190 2332 3847 1461 2370 3982 0 2634 883 15 2644 932 6 2645 943 0 2650 974 0 2648 1000 5 2640 1062 5 2662 1119 14 2675 1205 13 2691 1288 11 2687 1389 26 2693 1525 10 2725 1688 0 2710 1771 20 2711 1882 18 2710 1992 15 2700 2125 6 2722 2198 14 2722 2306 1 2727 2412 15 2750 2560 351 2698 2681 343 2671 2783 312 2639 2907 279 2621 3003 272 2592 3126 290 2561 3229 326 2544 3368 434 2535 3464 582 2499 3613 782 2479 3723 1070 2505 3851 1374 2538 4010 0 2777 943 11 2787 992 5 2768 1014 0 2790 1052 20 2782 1075 11 2787 1113 8 2787 1167 22 2798 1246 7 2812 1327 27 2812 1429 0 2823 1578 11 2844 1726 11 2840 1831 31 2826 1942 17 2838 2004 0 2828 2105 6 2827 2239 15 2832 2325 14 2839 2430 5 2847 2571 6 2870 2704 277 2819 2795 268 2803 2931 199 2780 3028 190 2737 3126 204 2727 3234 258 2697 3332 401 2668 3485 558 2654 3594 765 2640 3734 981 2663 3873 1288 2690 4005 24 2898 1020 24 2910 1041 35 2905 1067 19 2916 1108 20 2919 1124 16 2926 1172 14 2924 1252 8 2940 1323 27 2936 1407 15 2961 1490 21 2952 1623 0 2947 1778 17 2944 1882 34 2955 1994 0 2964 2060 10 2960 2172 7 2960 2239 24 2955 2371 0 2960 2473 21 2964 2593 0 2965 2723 8 2975 2855 249 2927 2956 231 2898 3023 203 2887 3135 191 2871 3257 243 2846 3355 371 2825 3491 544 2822 3615 770 2792 3737 997 2830 3874 1290 2849 4022 5 3040 1110 22 3032 1114 24 3035 1151 18 3044 1193 16 3047 1213 18 3044 1263 14 3060 1322 4 3058 1380 11 3062 1462 5 3058 1569 14 3080 1705 16 3076 1845 4 3072 1926 20 3072 2007 17 3064 2118 4 3083 2169 0 3076 2273 9 3069 2384 3 3085 2507 10 3073 2620 20 3069 2736 14 3083 2855 7 3105 2985 299 3029 3066 266 3024 3149 245 3012 3261 281 2988 3362 390 2966 3501 567 2948 3618 803 2954 3766 1013 2972 3888 1321 3001 4015 6 3172 1205 9 3168 1225 3 3173 1261 7 3184 1305 6 3178 1313 14 3173 1358 11 3180 1410 11 3185 1457 6 3204 1554 8 3185 1635 0 3191 1778 7 3192 1940 16 3194 2020 22 3208 2086 22 3197 2162 3 3186 2231 18 3209 2317 24 3203 2423 32 3196 2523 3 3189 2628 19 3173 2758 19 3184 2884 24 3209 2991 10 3200 3086 357 3151 3179 339 3122 3309 364 3126 3411 449 3110 3508 609 3094 3626 813 3108 3778 1071 3124 3916 1370 3148 4044 27 3300 1320 11 3293 1321 6 3315 1361 31 3297 1392 15 3308 1416 27 3320 1465 3 3317 1508 3 3316 1574 12 3316 1664 10 3318 1754 13 3309 1876 6 3320 2001 11 3316 2073 12 3314 2136 17 3324 2210 15 3330 2291 8 3319 2375 25 3323 2464 8 3327 2569 14 3332 2670 15 3319 2753 11 3303 2881 3 3316 3010 33 3316 3127 28 3308 3209 409 3271 3307 421 3246 3448 518 3247 3549 654 3240 3635 873 3242 3764 1122 3257 3906 1429 3298 4039 2 3442 1483 3 3442 1488 16 3428 1503 6 3439 1514 8 3430 1568 13 3439 1618 7 3454 1632 11 3444 1684 28 3437 1785 31 3426 1869 12 3430 1995 11 3466 2108 14 3445 2161 6 3452 2194 13 3439 2289 0 3447 2363 10 3444 2408 7 3467 2494 18 3442 2578 7 3452 2697 10 3446 2792 25 3446 2913 2 3453 2989 19 3448 3152 25 3448 3244 113 3428 3351 527 3375 3451 595 3363 3564 718 3367 3675 914 3389 3773 1174 3401 3920 1519 3437 4080 19 3564 1658 3 3573 1662 0 3575 1664 0 3566 1685 0 3559 1727 9 3574 1763 3 3560 1786 11 3560 1859 9 3568 1917 11 3564 1988 5 3566 2103 232 3573 2222 386 3570 2297 111 3578 2332 10 3589 2381 30 3579 2463 26 3582 2496 18 3582 2563 0 3580 2629 14 3581 2742 17 3579 2845 18 3577 2934 17 3570 3057 21 3568 3150 20 3571 3278 24 3584 3407 237 3535 3473 681 3513 3552 795 3520 3677 984 3535 3835 1260 3543 3928 1604 3575 4092 17 3704 1841 25 3697 1851 16 3705 1853 20 3707 1889 17 3690 1911 15 3697 1945 3 3709 1980 0 3702 2040 12 3701 2082 20 3706 2156 420 3690 2255 780 3703 2343 866 3704 2398 696 3690 2447 295 3716 2498 14 3718 2508 26 3712 2568 5 3709 2644 11 3730 2712 12 3722 2807 11 3720 2871 1 3718 2970 1 3720 3073 21 3727 3208 17 3718 3293 29 3719 3408 18 3720 3547 491 3675 3638 886 3638 3697 1057 3671 3813 1340 3688 3978 1703 3716 4092 145 3836 2059 156 3837 2085 158 3834 2084 185 3848 2103 236 3849 2128 296 3849 2147 379 3823 2196 409 3841 2212 604 3836 2254 834 3847 2346 1033 3826 2422 1186 3831 2489 1245 3849 2567 1115 3847 2592 913 3849 2612 639 3844 2675 59 3852 2652 9 3857 2709 0 3869 2776 6 3879 2851 0 3873 2953 27 3863 3060 26 3850 3130 0 3892 3239 0 3862 3343 0 3868 3453 28 3884 3599 32 3888 3698 798 3814 3752 1152 3788 3824 1443 3810 3976 1822 3852 4095 1155 3983 2345 1176 3983 2355 1150 3988 2345 1178 3984 2386 1185 3981 2391 1217 3972 2401 1211 3971 2419 1232 3972 2457 1299 3995 2503 1384 3998 2563 1503 3972 2618 1601 3982 2677 1670 3962 2747 1552 3974 2778 1421 4002 2775 1224 4004 2783 961 4008 2800 446 4009 2886 12 4017 2897 18 4025 2938 11 4031 3024 16 4036 3111 26 4019 3208 13 4043 3301 0 4020 3437 0 4021 3521 5 4031 3627 24 4027 3748 424 4049 3873 1187 3988 3916 1531 3950 4002 1970 3988 4095 1055 369 396 1061 395 412 1055 402 425 1059 418 495 1064 420 541 1079 392 560 1113 399 649 1106 429 728 1140 423 805 1141 434 871 1161 428 941 1178 428 1060 1232 407 1148 1267 400 1235 1299 377 1365 1335 376 1495 1387 348 1630 1412 298 1755 1485 270 1911 1511 193 2063 1590 91 2219 1650 15 2378 1709 6 2552 1775 6 2709 1866 0 2879 1919 3 3038 2030 3 3156 2107 6 3317 2196 0 3487 2299 1 3599 2381 0 3756 2506 0 3924 1061 396 402 1055 402 407 1072 420 436 1083 439 488 1082 449 537 1069 453 573 1122 432 657 1120 446 743 1150 464 823 1142 444 877 1168 456 958 1180 435 1067 1227 424 1163 1250 419 1261 1297 419 1384 1340 410 1495 1361 378 1644 1421 346 1762 1478 292 1917 1517 244 2079 1579 147 2241 1645 48 2420 1705 10 2562 1792 4 2712 1871 0 2851 1940 4 3017 2022 5 3175 2100 6 3315 2189 3 3477 2284 6 3629 2381 1 3746 2484 6 3913 1071 455 428 1082 440 433 1077 448 453 1072 494 484 1068 486 550 1077 479 597 1099 478 649 1106 487 732 1141 496 814 1144 484 884 1164 486 980 1196 488 1062 1220 473 1177 1256 481 1261 1317 462 1389 1340 450 1525 1390 401 1656 1442 363 1781 1487 328 1921 1524 276 2079 1575 195 2237 1655 92 2384 1720 9 2547 1803 1 2715 1863 14 2863 1926 0 3001 2034 0 3172 2103 13 3330 2196 10 3475 2291 2 3628 2382 1 3757 2503 0 3923 1094 467 387 1097 466 409 1106 496 470 1099 501 526 1096 528 557 1103 532 634 1113 512 679 1123 527 732 1156 542 819 1163 530 914 1189 527 976 1223 521 1093 1247 513 1190 1271 502 1278 1318 494 1400 1343 482 1536 1389 458 1669 1432 418 1796 1470 400 1964 1529 337 2102 1588 275 2263 1642 197 2421 1718 71 2566 1796 1 2706 1858 4 2869 1942 10 3030 1994 1 3167 2096 4 3299 2166 6 3486 2278 0 3624 2370 11 3757 2483 14 3893 1100 506 405 1117 513 411 1110 531 475 1123 550 513 1127 562 552 1137 572 636 1104 585 668 1157 563 736 1174 585 853 1167 580 948 1222 591 1031 1216 584 1106 1251 568 1225 1299 551 1334 1325 549 1453 1355 530 1550 1392 513 1684 1427 481 1818 1481 454 1950 1531 410 2091 1590 356 2264 1656 282 2440 1710 176 2582 1775 43 2721 1852 7 2901 1931 9 3041 1998 13 3196 2084 8 3330 2167 20 3461 2284 0 3634 2354 0 3769 2448 0 3912 1126 567 414 1139 571 474 1135 599 495 1146 600 567 1140 626 599 1136 618 667 1125 657 726 1140 610 755 1169 649 840 1201 666 959 1229 650 1034 1235 646 1106 1263 644 1236 1318 620 1330 1333 623 1433 1379 595 1574 1401 588 1696 1448 545 1837 1469 522 1974 1546 470 2130 1599 443 2295 1658 392 2444 1714 296 2582 1779 219 2777 1834 79 2911 1910 6 3035 1992 3 3167 2088 3 3347 2168 9 3467 2256 2 3640 2354 0 3766 2475 0 3913 1142 639 420 1136 675 464 1144 680 493 1154 678 568 1141 706 623 1159 700 681 1143 713 715 1129 715 784 1191 700 870 1199 731 980 1237 718 1061 1254 710 1161 1279 724 1247 1328 704 1351 1329 689 1474 1395 665 1605 1406 654 1729 1454 625 1847 1511 609 2004 1552 564 2162 1593 538 2320 1655 486 2461 1700 422 2617 1767 358 2771 1843 274 2927 1902 173 3039 1973 37 3205 2049 11 3330 2139 9 3497 2231 0 3622 2331 3 3777 2442 3 3903 1135 766 454 1147 763 495 1164 774 527 1164 764 559 1186 784 651 1188 781 689 1181 800 723 1162 776 819 1192 804 887 1197 817 983 1231 824 1092 1268 816 1153 1271 815 1281 1359 790 1421 1347 779 1496 1393 753 1624 1419 720 1753 1442 717 1887 1502 705 2025 1551 661 2177 1573 639 2344 1660 582 2488 1692 552 2641 1757 491 2793 1832 441 2933 1900 372 3061 1991 273 3196 2067 162 3372 2145 35 3486 2218 11 3644 2327 0 3773 2436 0 3927 1150 864 470 1154 894 517 1166 881 549 1155 881 597 1162 869 637 1200 880 720 1193 882 768 1226 889 868 1236 912 944 1239 896 988 1258 923 1118 1281 896 1203 1324 887 1308 1364 885 1423 1365 882 1519 1404 868 1671 1449 833 1804 1464 814 1924 1485 797 2085 1551 759 2225 1593 748 2366 1655 716 2514 1687 668 2637 1739 627 2792 1821 584 2909 1893 513 3069 1950 486 3228 2016 402 3362 2129 321 3503 2191 245 3641 2298 141 3778 2398 74 3922 1148 994 489 1147 989 518 1148 998 554 1172 1003 591 1176 1013 673 1176 1001 714 1218 1001 767 1234 1009 869 1253 1011 956 1256 1019 1053 1276 1041 1156 1292 1030 1241 1326 1014 1344 1380 1008 1496 1389 977 1592 1419 955 1737 1432 939 1860 1462 931 1975 1501 892 2093 1511 886 2246 1574 864 2389 1614 843 2506 1665 791 2664 1726 767 2821 1779 737 2939 1818 698 3067 1937 655 3221 1994 602 3367 2073 551 3505 2183 495 3649 2265 447 3774 2357 432 3918 1135 1065 546 1136 1066 578 1114 1097 610 1153 1082 654 1156 1084 714 1161 1118 765 1161 1113 808 1223 1109 888 1248 1133 979 1278 1135 1053 1296 1155 1161 1297 1150 1276 1313 1150 1385 1365 1130 1504 1368 1116 1605 1383 1103 1738 1418 1077 1881 1434 1062 2003 1455 1040 2142 1508 1020 2282 1549 990 2430 1613 958 2591 1642 936 2676 1697 905 2818 1746 868 2965 1834 831 3096 1902 810 3250 1963 762 3358 2062 732 3515 2130 693 3646 2207 658 3794 2351 652 3940 1082 1189 594 1076 1206 612 1078 1226 635 1060 1219 671 1115 1227 722 1136 1225 792 1158 1228 842 1159 1246 912 1201 1256 1002 1221 1264 1106 1281 1287 1195 1302 1297 1372 1332 1285 1440 1362 1274 1543 1379 1231 1676 1380 1234 1793 1387 1217 1915 1414 1192 2047 1474 1170 2186 1484 1143 2301 1505 1142 2440 1575 1115 2613 1596 1083 2705 1667 1044 2846 1726 1010 2962 1780 963 3103 1864 949 3250 1920 943 3371 2013 883 3495 2100 881 3648 2182 832 3783 2313 853 3968 1033 1320 601 1049 1316 657 1051 1338 690 1073 1337 727 1090 1354 759 1084 1352 801 1121 1351 854 1124 1373 925 1157 1388 1015 1174 1406 1120 1232 1427 1242 1281 1453 1345 1280 1448 1469 1266 1426 1609 1291 1386 1721 1317 1396 1831 1349 1368 1933 1368 1357 2080 1423 1322 2218 1443 1305 2330 1478 1285 2477 1510 1257 2594 1586 1208 2750 1619 1186 2864 1676 1168 3012 1713 1145 3124 1814 1103 3253 1870 1085 3381 1963 1060 3520 2061 1043 3672 2130 1027 3783 2273 1032 3947 981 1464 661 1004 1471 675 1000 1477 693 999 1473 699 1030 1477 762 1032 1486 815 1051 1494 876 1089 1502 971 1106 1522 1044 1144 1533 1147 1192 1539 1258 1231 1573 1374 1252 1600 1529 1247 1596 1609 1257 1534 1752 1236 1520 1847 1256 1503 1972 1283 1487 2099 1335 1483 2246 1374 1463 2360 1419 1424 2517 1456 1424 2645 1489 1379 2756 1565 1343 2866 1617 1319 2997 1664 1284 3130 1741 1279 3282 1828 1258 3401 1902 1217 3549 1986 1205 3657 2094 1195 3811 2209 1200 3959 931 1595 680 941 1586 695 931 1610 719 968 1608 749 995 1608 786 986 1636 872 1010 1626 910 1018 1630 973 1055 1666 1078 1068 1678 1164 1096 1714 1284 1173 1728 1392 1161 1746 1537 1163 1739 1655 1218 1717 1785 1182 1705 1914 1212 1652 2037 1166 1633 2128 1231 1608 2278 1225 1589 2416 1328 1590 2518 1364 1563 2639 1429 1530 2792 1497 1512 2906 1552 1466 3032 1578 1450 3135 1670 1428 3271 1769 1398 3431 1820 1378 3519 1916 1362 3669 2031 1353 3810 2122 1374 3946 857 1739 682 869 1737 723 856 1742 744 874 1740 764 903 1752 823 899 1792 868 904 1762 917 938 1791 1000 977 1815 1108 969 1830 1179 998 1846 1297 1085 1890 1418 1141 1888 1576 1125 1891 1687 1137 1896 1803 1150 1878 1922 1142 1861 2052 1124 1811 2149 1155 1778 2302 1127 1749 2422 1143 1721 2560 1207 1691 2677 1305 1686 2792 1396 1670 2908 1451 1644 3044 1506 1595 3176 1567 1581 3288 1654 1560 3404 1727 1527 3563 1856 1514 3684 1932 1521 3820 2053 1534 3963 726 1886 739 753 1885 733 763 1878 759 771 1895 798 786 1883 832 804 1906 900 817 1912 945 861 1934 1044 874 1948 1124 881 1981 1210 887 1997 1276 996 2027 1458 1050 2031 1594 1065 2015 1698 1041 2044 1835 1059 2055 1975 1093 2020 2094 1088 1986 2201 1067 1968 2332 1080 1929 2449 1051 1905 2572 1065 1870 2727 1105 1818 2808 1167 1798 2943 1282 1798 3051 1398 1774 3152 1444 1749 3282 1529 1708 3426 1617 1699 3563 1731 1681 3676 1834 1695 3819 1971 1693 3975 610 2028 736 604 2028 774 613 2035 811 619 2041 831 634 2046 868 676 2041 926 680 2061 977 703 2076 1058 734 2100 1147 742 2117 1223 739 2138 1317 874 2171 1478 959 2166 1604 971 2199 1750 949 2190 1852 971 2194 1984 1014 2205 2115 1031 2150 2216 1028 2135 2349 1014 2100 2487 962 2088 2592 961 2043 2740 976 2000 2830 1008 1963 2960 1082 1918 3073 1144 1891 3186 1305 1905 3297 1444 1896 3427 1522 1872 3553 1608 1841 3705 1716 1848 3834 1890 1850 3963 326 2189 778 345 2174 786 358 2185 812 391 2177 835 413 2193 888 423 2209 939 445 2218 1010 473 2241 1096 501 2241 1164 522 2278 1260 546 2294 1343 717 2310 1508 844 2321 1626 860 2329 1765 853 2323 1885 864 2317 1995 835 2349 2118 976 2324 2245 970 2304 2372 944 2284 2481 918 2252 2613 931 2216 2721 901 2185 2844 909 2152 2956 895 2115 3052 984 2065 3179 1081 2030 3336 1194 2013 3458 1406 2032 3587 1572 2047 3700 1667 2041 3840 1801 2035 3989 35 2346 803 27 2341 798 46 2352 847 38 2348 862 54 2344 917 87 2362 971 95 2378 1014 127 2396 1116 163 2393 1175 204 2415 1288 249 2431 1405 546 2448 1543 707 2455 1656 719 2466 1773 706 2479 1915 733 2476 2068 728 2477 2141 766 2476 2295 905 2465 2399 889 2450 2528 856 2415 2641 854 2374 2741 854 2346 2836 841 2308 2975 830 2263 3079 841 2236 3183 914 2214 3343 1031 2177 3434 1149 2166 3585 1308 2159 3728 1580 2214 3845 1839 2271 3984 21 2471 824 0 2488 845 5 2495 868 12 2501 905 6 2501 953 18 2516 1019 0 2528 1067 0 2533 1144 6 2551 1223 7 2557 1316 34 2562 1444 271 2590 1559 569 2589 1706 578 2595 1842 582 2595 1943 579 2598 2073 575 2587 2181 564 2613 2307 642 2611 2415 826 2595 2532 844 2547 2622 816 2524 2731 781 2503 2856 791 2478 2973 785 2428 3077 799 2410 3202 815 2364 3330 860 2348 3458 1023 2318 3579 1192 2332 3726 1401 2327 3857 1626 2381 3994 5 2639 888 11 2640 911 10 2639 953 10 2649 979 0 2656 981 3 2669 1066 11 2645 1128 7 2676 1196 13 2681 1256 9 2693 1355 6 2699 1450 79 2708 1613 384 2725 1767 393 2717 1853 346 2725 1964 285 2725 2085 317 2720 2194 315 2727 2325 345 2736 2444 501 2746 2593 787 2694 2665 774 2683 2758 758 2655 2861 737 2612 2981 743 2591 3125 740 2561 3227 758 2536 3327 803 2528 3456 892 2495 3573 1079 2490 3737 1303 2490 3856 1537 2528 3993 11 2760 943 11 2781 977 5 2785 986 9 2775 1041 2 2782 1069 31 2780 1134 17 2794 1171 9 2793 1248 18 2791 1347 9 2816 1394 0 2831 1505 10 2834 1688 222 2835 1818 187 2850 1908 147 2856 2002 107 2846 2113 86 2836 2206 117 2850 2332 141 2840 2454 161 2853 2577 426 2855 2707 776 2814 2796 768 2780 2877 733 2764 3009 711 2742 3122 724 2708 3256 753 2682 3354 773 2691 3473 858 2665 3602 994 2665 3735 1195 2642 3857 1472 2679 4009 6 2906 1021 23 2907 1040 0 2918 1051 7 2910 1100 12 2906 1125 0 2922 1165 9 2933 1252 9 2920 1305 18 2927 1376 2 2953 1450 23 2949 1560 0 2961 1726 153 2975 1885 138 2970 1945 64 2965 2053 18 2972 2123 9 2966 2226 0 2966 2345 15 2971 2482 8 2956 2569 110 2963 2715 329 2991 2855 757 2928 2935 734 2918 3051 735 2883 3122 740 2857 3254 767 2833 3365 785 2826 3477 873 2804 3596 1010 2807 3734 1196 2827 3848 1425 2842 4007 7 3042 1113 16 3037 1113 16 3038 1150 26 3025 1208 6 3037 1217 15 3027 1269 13 3056 1327 4 3070 1386 0 3061 1459 11 3074 1551 10 3059 1629 17 3078 1808 128 3085 1934 113 3091 2011 14 3094 2111 0 3084 2176 0 3081 2261 7 3084 2386 12 3076 2475 6 3082 2625 11 3074 2729 26 3085 2872 283 3085 2986 758 3042 3025 772 3024 3165 747 2997 3269 745 2992 3371 800 2978 3487 894 2964 3606 1041 2959 3729 1216 2963 3880 1459 3003 4025 20 3178 1231 13 3164 1211 2 3164 1230 3 3174 1268 25 3173 1306 3 3175 1329 3 3189 1402 23 3182 1478 14 3188 1528 0 3196 1626 8 3191 1717 6 3215 1890 171 3219 2023 120 3198 2092 40 3192 2151 10 3198 2213 0 3202 2314 10 3203 2422 6 3187 2524 0 3208 2647 13 3198 2762 11 3176 2876 3 3208 2976 374 3198 3100 822 3152 3170 787 3140 3285 770 3108 3388 847 3098 3508 906 3113 3617 1053 3106 3758 1249 3118 3892 1500 3148 4041 24 3298 1330 13 3295 1328 19 3292 1357 11 3316 1401 8 3317 1423 8 3301 1456 8 3308 1527 0 3312 1563 7 3314 1656 9 3314 1722 11 3313 1838 17 3308 1955 276 3324 2112 182 3327 2133 52 3332 2214 14 3327 2286 22 3322 2369 0 3326 2444 10 3315 2545 7 3320 2667 5 3321 2760 5 3333 2875 0 3316 3009 6 3307 3139 428 3316 3242 808 3287 3285 800 3250 3394 853 3263 3498 947 3243 3653 1081 3242 3754 1283 3259 3917 1540 3303 4053 8 3434 1475 4 3438 1486 0 3449 1501 6 3424 1525 0 3434 1563 6 3434 1579 8 3439 1647 14 3432 1694 4 3446 1759 0 3454 1838 2 3439 1914 42 3437 2048 524 3450 2191 451 3440 2242 154 3462 2279 12 3439 2339 16 3439 2447 6 3455 2489 10 3456 2573 8 3464 2676 0 3458 2794 11 3445 2905 6 3447 3020 8 3438 3132 0 3446 3274 535 3443 3369 852 3393 3424 885 3382 3524 969 3391 3662 1122 3400 3784 1337 3399 3910 1619 3440 4081 0 3579 1658 0 3575 1662 0 3580 1664 0 3566 1686 2 3561 1729 0 3565 1735 9 3572 1794 21 3574 1865 10 3569 1894 9 3561 1952 0 3569 2046 357 3556 2170 786 3571 2279 759 3573 2350 507 3577 2379 133 3578 2408 22 3581 2506 3 3584 2564 1 3582 2649 4 3577 2723 10 3584 2807 5 3579 2933 20 3584 3043 5 3585 3159 7 3587 3292 10 3593 3408 679 3553 3483 924 3509 3553 1043 3524 3673 1182 3520 3838 1387 3549 3914 1700 3584 4079 10 3711 1841 10 3706 1873 7 3696 1863 18 3691 1905 11 3696 1930 9 3695 1943 2 3704 1977 0 3707 2017 36 3697 2072 131 3700 2115 498 3704 2204 837 3681 2309 1075 3688 2392 1049 3699 2466 893 3686 2489 599 3714 2554 122 3734 2574 6 3712 2625 10 3742 2694 22 3722 2763 5 3737 2865 0 3716 2968 6 3715 3073 3 3721 3218 7 3712 3315 13 3719 3423 6 3728 3554 798 3689 3620 1093 3638 3705 1236 3656 3826 1467 3664 3960 1776 3721 4088 633 3852 2108 644 3840 2107 673 3851 2119 702 3834 2130 717 3851 2144 742 3839 2160 755 3860 2185 789 3843 2220 801 3856 2236 894 3850 2311 1056 3857 2404 1221 3852 2462 1374 3826 2549 1363 3840 2611 1245 3836 2644 1063 3855 2669 782 3857 2702 257 3874 2751 19 3870 2782 12 3879 2850 10 3873 2936 16 3857 3030 0 3868 3137 6 3875 3215 16 3871 3361 21 3858 3465 16 3891 3575 161 3872 3701 1035 3819 3745 1321 3782 3856 1549 3810 3976 1910 3842 4095 1345 3988 2345 1345 3977 2340 1346 3978 2351 1340 3983 2371 1368 3969 2380 1376 3983 2419 1377 4006 2441 1384 3972 2462 1411 3978 2479 1452 3979 2512 1536 3982 2611 1633 3977 2682 1711 3987 2732 1731 3977 2781 1625 3986 2788 1498 3997 2843 1286 3994 2862 1025 4004 2872 494 4008 2932 11 4021 2931 10 4037 3001 5 4025 3110 6 4040 3197 6 4037 3310 9 4049 3419 12 4012 3524 11 4031 3630 189 4047 3738 768 4045 3861 1342 3955 3914 1640 3919 3976 2041 3999 4085 1127 369 388 1143 412 422 1121 403 414 1149 429 462 1139 446 520 1151 448 565 1158 402 616 1210 402 715 1217 413 783 1258 430 880 1260 441 976 1276 423 1050 1300 427 1129 1348 396 1254 1375 393 1363 1432 379 1501 1446 343 1611 1511 322 1756 1579 254 1898 1616 186 2064 1658 81 2213 1727 5 2376 1809 5 2530 1887 0 2697 1942 0 2844 2043 10 3020 2117 13 3174 2204 0 3324 2281 6 3470 2363 6 3622 2475 0 3764 2566 0 3909 1136 388 382 1148 418 377 1153 435 426 1148 441 460 1157 480 534 1136 465 567 1169 422 603 1184 456 705 1231 454 806 1245 466 899 1278 456 962 1280 466 1045 1320 453 1138 1355 427 1267 1379 409 1386 1418 411 1512 1443 378 1629 1518 350 1783 1545 311 1914 1610 243 2059 1674 146 2220 1742 27 2358 1813 0 2551 1892 4 2703 1955 12 2863 2051 12 3012 2115 16 3177 2191 0 3324 2284 0 3466 2363 6 3622 2464 0 3747 2576 10 3918 1138 425 375 1168 440 422 1170 451 441 1174 456 495 1149 495 519 1154 509 595 1173 455 622 1208 485 705 1241 483 806 1263 480 939 1285 488 1003 1286 474 1081 1333 487 1169 1337 461 1269 1391 441 1381 1443 443 1539 1466 423 1613 1521 389 1769 1555 339 1926 1630 277 2065 1703 191 2230 1733 85 2404 1818 1 2557 1906 1 2724 1940 0 2845 2024 3 3012 2122 12 3177 2171 15 3323 2285 1 3481 2366 0 3604 2472 0 3766 2566 0 3909 1183 477 384 1189 464 436 1160 483 448 1195 481 517 1180 529 573 1185 520 639 1189 510 686 1226 505 740 1232 520 827 1263 549 925 1304 530 993 1294 531 1085 1324 530 1178 1351 519 1299 1390 499 1396 1445 493 1521 1458 474 1630 1531 435 1771 1565 397 1936 1633 343 2079 1684 276 2241 1736 175 2410 1806 45 2566 1876 1 2723 1931 9 2869 2031 1 3011 2118 3 3193 2182 2 3327 2280 6 3482 2353 0 3634 2455 0 3756 2566 0 3928 1190 510 378 1188 526 444 1187 522 460 1201 564 525 1189 566 568 1199 586 635 1232 597 714 1243 566 750 1251 586 822 1283 601 948 1286 601 998 1286 614 1103 1330 586 1201 1392 561 1307 1416 560 1423 1460 528 1532 1485 524 1661 1551 499 1806 1579 442 1944 1640 411 2085 1690 356 2239 1767 272 2421 1824 159 2586 1889 41 2733 1955 4 2909 2044 0 3039 2115 12 3185 2184 0 3336 2254 2 3448 2358 16 3629 2451 0 3766 2554 0 3913 1233 582 427 1228 584 456 1218 597 492 1223 610 568 1238 606 603 1223 625 687 1231 634 742 1234 637 764 1225 651 843 1281 672 918 1308 654 1042 1322 650 1131 1338 631 1230 1403 629 1324 1432 623 1432 1471 591 1544 1503 581 1704 1559 562 1834 1566 541 1954 1625 490 2134 1706 440 2296 1773 373 2463 1805 310 2579 1878 208 2749 1945 56 2903 1998 15 3048 2104 3 3188 2173 10 3340 2267 12 3483 2352 3 3609 2426 12 3767 2557 13 3916 1248 652 427 1232 661 469 1243 678 503 1248 678 542 1251 686 614 1264 684 673 1268 710 726 1246 711 815 1267 725 842 1295 740 936 1306 747 1026 1363 739 1151 1377 710 1256 1417 703 1369 1451 693 1474 1483 691 1594 1493 659 1730 1546 668 1861 1621 613 1993 1644 578 2155 1688 526 2297 1754 495 2470 1824 415 2622 1881 356 2755 1945 242 2921 2013 114 3068 2091 19 3204 2185 0 3351 2232 23 3488 2344 7 3621 2414 13 3769 2518 10 3928 1238 747 456 1250 768 495 1240 756 517 1257 774 569 1273 773 586 1278 788 683 1281 791 735 1298 792 793 1289 810 885 1324 802 962 1338 826 1091 1359 819 1169 1406 804 1275 1453 792 1386 1445 794 1516 1488 769 1629 1530 768 1743 1536 732 1897 1597 696 2032 1643 682 2156 1713 629 2313 1772 597 2475 1829 544 2620 1881 486 2782 1937 415 2919 1993 337 3074 2066 236 3199 2149 95 3368 2242 12 3486 2316 16 3641 2388 3 3770 2510 10 3937 1247 873 483 1274 842 495 1247 874 536 1280 848 595 1296 868 630 1313 865 686 1311 859 778 1333 895 862 1313 898 920 1323 892 996 1343 937 1113 1374 902 1204 1421 892 1292 1423 900 1439 1477 880 1520 1490 884 1659 1521 865 1777 1575 829 1916 1591 811 2039 1646 795 2202 1680 739 2367 1768 701 2488 1803 675 2642 1845 623 2782 1906 579 2912 1975 522 3079 2050 441 3210 2132 374 3348 2218 285 3486 2300 185 3648 2387 58 3771 2486 41 3948 1246 974 498 1243 992 512 1274 969 560 1274 1002 593 1281 993 652 1290 1013 710 1297 1011 741 1318 998 870 1354 992 946 1345 997 1066 1363 999 1178 1406 1035 1241 1401 1014 1325 1441 1019 1457 1458 987 1552 1505 986 1713 1542 956 1802 1586 957 1947 1613 912 2074 1647 907 2258 1690 864 2348 1746 832 2535 1803 797 2676 1847 754 2810 1908 729 2961 1973 660 3078 2032 627 3224 2115 579 3365 2187 514 3513 2283 466 3652 2355 415 3777 2478 384 3934 1265 1101 534 1245 1102 530 1273 1110 568 1276 1122 620 1303 1107 672 1287 1119 742 1321 1117 801 1325 1127 861 1353 1126 967 1378 1134 1073 1385 1140 1187 1406 1171 1311 1433 1146 1384 1443 1147 1502 1474 1124 1615 1519 1111 1756 1556 1083 1850 1571 1073 1989 1599 1058 2136 1625 1021 2266 1701 989 2425 1732 964 2534 1789 924 2690 1825 918 2843 1869 873 2964 1926 842 3104 2020 788 3230 2066 751 3380 2167 698 3508 2233 667 3638 2320 641 3798 2433 624 3948 1172 1225 561 1171 1220 567 1178 1226 635 1208 1227 652 1231 1210 691 1269 1214 779 1269 1223 800 1301 1262 902 1327 1274 997 1381 1295 1098 1371 1286 1210 1406 1306 1307 1443 1282 1428 1482 1291 1557 1485 1258 1665 1510 1250 1796 1542 1240 1928 1551 1218 2027 1557 1191 2166 1601 1156 2308 1662 1132 2442 1709 1103 2561 1718 1082 2676 1802 1054 2844 1860 1025 2979 1895 987 3115 1966 960 3224 2038 908 3349 2122 888 3514 2203 864 3663 2286 837 3782 2410 831 3945 1181 1326 610 1153 1336 615 1195 1358 649 1156 1342 658 1199 1357 713 1223 1361 786 1213 1374 822 1250 1392 907 1297 1396 996 1339 1414 1114 1374 1406 1196 1404 1444 1340 1454 1460 1492 1454 1453 1603 1476 1419 1696 1479 1411 1834 1522 1356 1949 1553 1350 2075 1536 1342 2205 1605 1300 2354 1631 1293 2495 1637 1267 2624 1701 1235 2709 1756 1201 2877 1810 1169 2982 1876 1145 3125 1927 1110 3267 2016 1085 3392 2087 1059 3525 2146 1028 3657 2269 1011 3813 2361 1021 3941 1119 1462 610 1137 1456 652 1149 1463 690 1164 1449 715 1183 1483 770 1193 1482 820 1199 1492 883 1220 1511 941 1250 1525 1043 1295 1535 1123 1307 1583 1243 1367 1584 1364 1421 1594 1499 1412 1591 1622 1418 1581 1745 1421 1543 1877 1447 1530 2015 1480 1509 2127 1520 1492 2252 1540 1454 2350 1586 1440 2520 1605 1410 2647 1644 1390 2766 1704 1344 2876 1750 1336 3025 1813 1295 3132 1894 1272 3280 1936 1240 3404 2023 1216 3542 2114 1207 3666 2203 1197 3820 2308 1199 3992 1084 1612 635 1081 1605 642 1087 1608 671 1122 1610 710 1126 1616 763 1146 1625 794 1148 1648 880 1184 1661 955 1199 1683 1057 1207 1691 1154 1258 1703 1260 1279 1731 1369 1357 1765 1533 1375 1763 1648 1390 1753 1763 1357 1715 1894 1345 1691 2032 1357 1671 2166 1425 1639 2288 1473 1611 2424 1521 1588 2537 1535 1573 2665 1603 1542 2773 1641 1514 2906 1702 1482 3039 1749 1440 3145 1821 1425 3294 1860 1401 3398 1958 1372 3528 2048 1352 3678 2123 1345 3810 2244 1361 3944 1027 1731 665 1037 1736 700 1045 1740 744 1044 1738 753 1052 1780 817 1049 1770 874 1085 1778 952 1090 1789 1002 1125 1802 1072 1159 1834 1193 1216 1839 1284 1220 1879 1399 1300 1887 1555 1326 1902 1674 1326 1908 1795 1348 1900 1934 1317 1855 2046 1309 1836 2192 1334 1803 2321 1332 1749 2429 1373 1738 2550 1455 1725 2696 1510 1696 2820 1533 1686 2938 1602 1642 3031 1679 1625 3173 1721 1569 3272 1779 1566 3418 1881 1540 3566 1949 1531 3667 2058 1513 3804 2188 1539 3975 933 1886 725 933 1886 722 953 1887 768 962 1884 778 953 1902 827 965 1912 903 1001 1919 971 1036 1938 1060 1023 1948 1123 1056 1971 1219 1103 1988 1317 1135 2030 1433 1211 2054 1552 1272 2051 1707 1255 2056 1858 1248 2080 1965 1300 2035 2083 1257 2013 2221 1285 1969 2344 1238 1961 2438 1251 1907 2557 1298 1872 2693 1340 1824 2822 1412 1832 2942 1514 1804 3071 1551 1774 3180 1613 1747 3311 1683 1716 3425 1774 1695 3549 1853 1687 3673 1962 1673 3812 2097 1695 3964 852 2016 738 841 2033 750 855 2043 802 850 2042 797 874 2041 862 895 2060 888 908 2048 967 928 2087 1033 955 2095 1102 971 2122 1216 1007 2135 1318 1034 2163 1449 1120 2189 1592 1171 2211 1735 1188 2201 1860 1198 2203 1995 1204 2212 2129 1246 2193 2239 1241 2147 2356 1207 2124 2492 1193 2095 2595 1180 2050 2696 1206 2008 2816 1264 1959 2973 1315 1933 3063 1430 1939 3207 1520 1921 3312 1575 1888 3432 1652 1860 3559 1755 1843 3693 1878 1829 3819 2000 1863 3972 692 2176 793 709 2179 813 712 2194 827 732 2178 869 738 2190 892 760 2206 960 790 2216 1004 773 2246 1080 817 2251 1139 856 2261 1245 879 2283 1354 905 2326 1477 1021 2324 1612 1101 2357 1765 1119 2344 1878 1099 2367 2008 1097 2351 2145 1148 2372 2277 1186 2315 2378 1174 2291 2505 1138 2255 2589 1143 2231 2723 1124 2184 2832 1122 2152 2933 1175 2103 3091 1236 2079 3189 1294 2035 3312 1453 2054 3428 1602 2060 3573 1674 2030 3706 1790 2016 3826 1918 2012 3976 513 2332 793 511 2330 817 537 2355 844 544 2345 877 565 2348 913 591 2355 950 594 2375 1015 660 2374 1112 635 2404 1177 690 2407 1284 691 2424 1364 770 2449 1499 902 2467 1634 1018 2483 1793 1026 2478 1907 998 2494 2031 1006 2470 2153 1011 2498 2291 1136 2472 2408 1148 2446 2534 1105 2418 2642 1093 2399 2740 1091 2365 2854 1105 2308 2971 1080 2270 3076 1092 2240 3193 1179 2213 3345 1256 2189 3456 1358 2159 3546 1579 2194 3706 1781 2245 3845 1917 2241 3986 229 2487 840 223 2499 843 235 2493 865 262 2494 899 291 2495 955 308 2503 999 348 2506 1061 377 2518 1137 410 2543 1210 462 2551 1297 514 2563 1414 557 2578 1513 793 2598 1700 927 2610 1836 924 2603 1958 920 2609 2072 912 2605 2191 911 2617 2305 951 2629 2442 1123 2589 2569 1109 2569 2677 1070 2545 2763 1057 2492 2861 1038 2476 2992 1042 2442 3083 1071 2398 3222 1077 2380 3340 1136 2340 3440 1241 2342 3579 1374 2322 3701 1551 2332 3830 1817 2421 3971 16 2625 862 16 2621 905 7 2637 925 8 2637 953 26 2640 1000 58 2647 1072 93 2662 1117 110 2661 1194 110 2670 1254 161 2677 1361 216 2709 1450 293 2711 1531 670 2725 1719 856 2715 1872 819 2736 1969 788 2730 2081 797 2720 2190 808 2719 2338 804 2732 2435 897 2737 2573 1091 2710 2704 1069 2671 2775 1040 2665 2904 1015 2624 2991 1009 2595 3110 1047 2558 3217 1046 2536 3353 1075 2513 3466 1142 2499 3607 1280 2488 3699 1461 2501 3861 1683 2544 4019 15 2765 965 10 2770 954 0 2765 1008 14 2783 1042 0 2789 1072 14 2786 1105 29 2788 1187 19 2794 1256 27 2803 1321 8 2829 1397 48 2828 1494 116 2840 1605 537 2861 1761 804 2841 1925 759 2852 2010 702 2854 2136 653 2848 2219 692 2841 2324 688 2856 2475 715 2856 2586 877 2872 2735 1048 2841 2805 1056 2791 2927 1058 2760 3043 997 2756 3106 1019 2720 3229 1036 2682 3359 1064 2678 3470 1126 2652 3588 1207 2643 3732 1368 2654 3852 1634 2679 3992 25 2908 1022 4 2892 1039 12 2908 1058 12 2911 1092 19 2916 1142 0 2917 1181 20 2924 1240 11 2929 1306 8 2938 1397 18 2950 1462 16 2949 1572 34 2949 1672 432 2964 1809 765 2962 1967 664 2981 2065 629 2970 2148 497 2967 2250 496 2963 2363 509 2978 2467 563 2953 2581 667 2970 2708 836 2980 2823 1056 2947 2932 1047 2926 3047 1026 2886 3140 1025 2856 3252 1032 2828 3373 1051 2810 3478 1129 2813 3613 1193 2800 3734 1353 2803 3862 1582 2838 4016 4 3044 1107 10 3044 1109 17 3040 1140 18 3045 1175 12 3045 1213 13 3034 1252 16 3040 1322 3 3054 1370 18 3061 1486 17 3064 1552 11 3080 1649 24 3073 1721 301 3095 1906 740 3090 2018 677 3095 2094 538 3101 2173 362 3089 2266 199 3095 2380 236 3098 2471 293 3079 2583 370 3082 2699 579 3096 2818 818 3113 2964 1077 3050 3042 1071 3043 3181 1023 3013 3267 1038 2990 3382 1056 2961 3470 1128 2958 3644 1230 2965 3731 1387 2963 3896 1615 2979 4033 7 3164 1224 31 3160 1231 9 3186 1229 17 3170 1287 36 3173 1326 6 3180 1353 22 3180 1421 13 3177 1439 0 3202 1537 13 3185 1591 24 3193 1721 12 3200 1810 293 3196 1962 746 3218 2094 667 3221 2156 528 3214 2220 256 3211 2328 117 3208 2392 87 3205 2514 146 3200 2598 147 3205 2715 162 3212 2831 513 3195 2983 781 3213 3094 1089 3162 3152 1056 3144 3306 1036 3115 3396 1088 3113 3512 1136 3098 3631 1238 3114 3758 1418 3110 3887 1637 3135 4024 13 3300 1320 26 3287 1357 19 3309 1368 15 3295 1390 27 3288 1442 16 3292 1481 9 3309 1531 14 3312 1580 17 3323 1669 7 3309 1712 10 3314 1810 37 3316 1885 415 3330 2042 810 3332 2181 727 3332 2227 558 3336 2304 277 3316 2371 55 3338 2439 16 3319 2545 28 3327 2649 14 3323 2753 9 3332 2874 105 3316 2975 411 3340 3117 839 3337 3218 1101 3268 3296 1052 3259 3408 1099 3254 3547 1177 3255 3641 1270 3248 3767 1440 3265 3909 1659 3305 4044 8 3440 1483 19 3422 1495 6 3440 1529 12 3438 1522 30 3436 1566 16 3430 1630 8 3442 1649 16 3441 1713 18 3441 1790 16 3439 1837 12 3466 1919 99 3459 1994 610 3446 2122 943 3453 2246 847 3452 2324 670 3456 2373 366 3447 2440 74 3454 2479 3 3457 2585 12 3448 2688 22 3449 2798 10 3465 2920 19 3446 2994 25 3446 3097 338 3487 3253 861 3452 3352 1109 3393 3438 1149 3374 3537 1189 3405 3650 1321 3387 3798 1481 3401 3906 1729 3442 4039 20 3559 1685 0 3569 1685 0 3573 1687 0 3575 1707 1 3565 1744 10 3575 1778 1 3569 1826 6 3568 1855 31 3567 1878 99 3573 1948 144 3571 2023 427 3574 2120 847 3557 2247 1085 3575 2372 997 3569 2416 838 3585 2468 569 3581 2511 156 3570 2559 0 3589 2669 1 3591 2737 10 3578 2836 17 3571 2957 20 3574 3070 12 3580 3178 35 3576 3269 309 3581 3356 945 3559 3471 1177 3520 3550 1208 3512 3648 1357 3549 3808 1533 3543 3937 1792 3589 4070 170 3706 1852 185 3701 1873 188 3698 1875 238 3719 1911 290 3696 1918 393 3684 1973 436 3710 1989 494 3700 2047 551 3704 2086 603 3704 2128 648 3710 2175 869 3692 2274 1094 3698 2357 1276 3699 2469 1256 3683 2525 1077 3714 2580 874 3704 2620 466 3719 2628 30 3732 2709 10 3727 2807 12 3716 2874 6 3726 3002 1 3710 3094 19 3709 3225 13 3712 3344 27 3722 3400 412 3725 3511 1043 3686 3615 1262 3634 3687 1400 3675 3826 1587 3672 3969 1872 3727 4089 948 3845 2102 956 3851 2090 948 3831 2082 967 3855 2125 973 3838 2125 1013 3845 2151 1024 3845 2190 1051 3852 2239 1093 3829 2269 1115 3842 2304 1117 3833 2333 1250 3852 2453 1401 3836 2509 1523 3843 2613 1499 3829 2663 1366 3851 2695 1164 3859 2717 899 3855 2756 426 3871 2799 10 3870 2865 5 3869 2948 5 3868 3030 19 3869 3147 10 3869 3245 0 3858 3383 10 3863 3473 132 3875 3558 655 3881 3689 1221 3811 3756 1479 3789 3841 1683 3813 3964 2001 3846 4095 1483 3983 2357 1477 3976 2333 1469 3976 2351 1503 3991 2372 1479 3986 2367 1524 3999 2391 1537 3992 2454 1525 3976 2447 1552 3997 2474 1540 3992 2527 1575 3972 2549 1686 3973 2643 1763 3973 2720 1822 3985 2769 1831 3976 2833 1703 3991 2865 1555 3995 2875 1338 4002 2902 1047 4018 2919 522 4015 2972 6 4025 3018 16 4047 3093 20 4019 3211 24 4031 3324 16 4025 3433 25 4034 3508 132 4042 3629 673 4037 3741 1025 4026 3847 1488 3986 3923 1767 3951 4006 2106 3967 4095 1211 363 413 1237 386 383 1255 418 410 1260 419 499 1252 424 511 1246 440 585 1259 399 601 1313 405 668 1301 418 782 1314 452 872 1357 441 966 1370 438 1056 1373 424 1130 1408 418 1250 1466 388 1373 1488 377 1476 1560 350 1615 1609 321 1740 1641 277 1873 1694 192 2024 1769 81 2227 1854 12 2380 1922 7 2537 1978 12 2688 2045 4 2831 2134 10 3007 2212 9 3156 2302 9 3314 2384 9 3469 2489 0 3622 2572 0 3772 2660 16 3912 1208 418 391 1203 425 380 1227 438 450 1220 465 489 1225 463 524 1259 474 584 1283 441 627 1303 443 696 1310 456 786 1337 475 886 1372 452 944 1393 465 1064 1387 455 1144 1408 431 1250 1450 421 1389 1506 396 1475 1562 385 1614 1595 356 1757 1654 297 1904 1701 235 2034 1771 136 2202 1824 25 2374 1926 6 2550 1982 6 2694 2055 6 2856 2134 6 3013 2215 7 3153 2288 8 3307 2400 8 3456 2466 0 3609 2572 0 3763 2660 0 3916 1246 429 375 1227 435 377 1246 461 434 1272 483 480 1248 484 533 1261 491 584 1268 497 656 1265 464 671 1331 469 789 1343 485 875 1346 511 985 1406 499 1083 1387 486 1158 1412 467 1258 1460 461 1358 1506 442 1487 1559 413 1614 1606 394 1761 1645 351 1908 1727 275 2036 1770 207 2224 1843 64 2386 1902 1 2540 1987 7 2692 2054 6 2857 2131 7 3010 2204 4 3163 2280 23 3316 2392 1 3476 2468 8 3617 2572 0 3771 2670 0 3925 1246 469 362 1254 464 393 1260 503 464 1265 510 471 1257 521 536 1241 535 594 1249 531 643 1289 503 694 1331 512 810 1344 527 877 1369 549 992 1386 547 1065 1406 512 1175 1441 503 1287 1485 510 1400 1548 485 1507 1573 459 1644 1614 433 1776 1665 404 1899 1706 348 2052 1783 277 2219 1852 172 2384 1909 24 2549 1975 14 2706 2041 16 2860 2137 7 3013 2207 1 3175 2294 2 3324 2375 13 3466 2461 0 3609 2554 0 3762 2650 14 3925 1287 513 408 1291 530 413 1291 552 462 1277 564 534 1284 564 573 1298 569 617 1281 587 684 1287 566 723 1337 566 786 1375 596 921 1406 603 1011 1441 584 1095 1435 586 1196 1466 575 1279 1502 568 1407 1534 535 1524 1597 521 1671 1625 500 1781 1684 465 1940 1737 421 2103 1797 349 2233 1851 259 2409 1934 155 2576 1988 28 2726 2068 0 2889 2140 6 3039 2204 16 3169 2288 4 3332 2370 8 3463 2464 0 3618 2549 7 3762 2638 11 3918 1309 571 388 1306 584 425 1307 599 487 1322 615 509 1313 611 552 1305 641 639 1301 660 704 1322 647 767 1342 634 807 1381 639 907 1396 668 1011 1426 667 1129 1430 647 1210 1493 646 1309 1513 620 1422 1554 614 1535 1602 587 1697 1660 574 1828 1698 538 1967 1734 497 2114 1796 438 2259 1852 371 2427 1941 297 2581 1976 173 2727 2072 30 2890 2124 3 3043 2206 11 3203 2270 12 3331 2375 9 3464 2451 8 3612 2549 4 3774 2616 4 3908 1330 655 413 1333 652 449 1343 665 495 1330 677 535 1329 681 586 1339 696 647 1346 722 713 1328 703 778 1362 699 848 1383 711 942 1431 732 1050 1454 733 1121 1449 738 1236 1504 712 1346 1539 706 1458 1571 677 1582 1634 669 1739 1665 645 1855 1709 616 1981 1758 585 2136 1802 545 2296 1883 479 2432 1932 429 2603 1986 339 2760 2057 242 2917 2124 92 3062 2211 13 3205 2288 2 3337 2336 4 3473 2432 12 3612 2530 9 3764 2609 3 3918 1350 756 450 1360 763 466 1374 750 483 1364 773 549 1386 760 587 1394 775 654 1375 791 751 1383 787 772 1377 798 867 1402 797 931 1442 831 1101 1465 819 1167 1471 813 1258 1517 798 1373 1559 798 1497 1570 774 1596 1619 776 1717 1676 733 1866 1713 717 2003 1758 675 2172 1814 639 2316 1863 596 2494 1950 533 2614 1987 472 2777 2051 415 2914 2114 333 3070 2176 216 3203 2249 66 3339 2321 12 3467 2431 11 3620 2509 9 3772 2615 12 3931 1357 869 433 1362 865 470 1369 867 529 1395 863 570 1394 882 643 1371 872 662 1412 866 741 1390 892 823 1416 885 908 1403 896 979 1458 888 1086 1486 940 1215 1503 916 1291 1522 921 1417 1564 899 1511 1599 885 1654 1633 882 1780 1665 852 1919 1702 811 2019 1757 780 2176 1808 754 2347 1879 714 2497 1918 672 2633 1970 627 2784 2040 563 2903 2082 512 3071 2168 437 3201 2228 340 3331 2316 241 3488 2389 107 3626 2479 36 3758 2580 12 3945 1372 968 480 1377 973 520 1399 977 561 1388 988 609 1398 975 645 1411 989 696 1428 994 758 1458 1006 830 1463 1002 926 1466 998 1014 1470 995 1097 1487 1031 1225 1518 1046 1339 1569 1047 1441 1597 1014 1573 1615 992 1701 1638 994 1800 1668 957 1930 1720 922 2074 1778 908 2226 1837 875 2395 1856 845 2512 1904 806 2649 1968 768 2806 2017 720 2932 2081 661 3082 2136 614 3218 2209 564 3343 2311 497 3509 2384 439 3637 2455 382 3765 2578 338 3937 1341 1119 496 1384 1113 520 1368 1111 550 1397 1108 579 1405 1129 660 1413 1119 703 1411 1121 769 1463 1121 862 1461 1134 940 1496 1131 1040 1487 1130 1159 1502 1147 1267 1534 1177 1377 1579 1154 1501 1591 1143 1606 1640 1112 1745 1652 1110 1848 1698 1091 1977 1716 1056 2113 1753 1031 2256 1814 1002 2407 1855 973 2556 1898 931 2688 1943 908 2822 2005 866 2956 2049 824 3076 2086 787 3223 2180 742 3350 2283 696 3514 2351 673 3655 2444 624 3805 2544 608 3931 1354 1219 521 1347 1228 551 1362 1233 599 1387 1236 639 1396 1255 675 1405 1268 730 1410 1244 802 1438 1263 887 1465 1273 964 1498 1272 1076 1507 1269 1167 1523 1278 1310 1526 1313 1427 1575 1311 1525 1607 1297 1657 1645 1274 1766 1670 1250 1904 1681 1230 2005 1715 1198 2162 1763 1176 2299 1801 1148 2438 1828 1120 2568 1884 1092 2716 1939 1049 2856 1962 1028 2974 2024 983 3098 2090 940 3236 2163 913 3377 2230 865 3507 2324 861 3654 2405 826 3796 2504 820 3934 1315 1317 552 1306 1327 588 1321 1343 616 1312 1329 643 1354 1349 708 1369 1372 759 1379 1387 827 1414 1390 899 1410 1390 964 1465 1418 1089 1494 1444 1188 1528 1435 1324 1564 1454 1454 1575 1461 1584 1624 1444 1705 1649 1404 1820 1658 1397 1956 1679 1385 2070 1714 1361 2214 1732 1322 2342 1781 1287 2480 1804 1267 2606 1869 1235 2722 1891 1207 2874 1945 1177 2969 2003 1136 3116 2048 1109 3249 2131 1074 3388 2209 1050 3532 2300 1021 3672 2367 1001 3797 2455 994 3931 1289 1456 599 1273 1482 610 1289 1461 615 1269 1470 650 1318 1477 727 1321 1514 803 1331 1501 847 1353 1524 939 1373 1534 1011 1413 1548 1125 1435 1568 1225 1508 1576 1339 1533 1614 1499 1601 1623 1635 1617 1598 1769 1624 1574 1869 1660 1547 1992 1658 1523 2128 1670 1513 2251 1725 1476 2368 1732 1447 2482 1781 1411 2642 1819 1399 2769 1853 1364 2873 1901 1344 3022 1954 1312 3142 2020 1279 3277 2080 1240 3394 2146 1215 3532 2227 1199 3666 2317 1199 3828 2413 1192 3950 1223 1619 637 1233 1620 662 1226 1616 685 1247 1621 710 1251 1623 746 1272 1639 831 1286 1660 888 1317 1663 952 1347 1679 1047 1407 1708 1161 1416 1706 1244 1469 1733 1367 1478 1753 1495 1566 1779 1647 1563 1777 1786 1573 1738 1894 1579 1697 2025 1615 1688 2161 1638 1669 2300 1663 1649 2434 1708 1610 2560 1730 1582 2650 1764 1558 2794 1805 1521 2890 1823 1491 3032 1887 1463 3143 1945 1440 3272 2025 1397 3406 2076 1378 3522 2172 1361 3675 2267 1359 3819 2348 1355 3944 1145 1765 660 1180 1755 714 1181 1760 719 1195 1758 752 1207 1781 819 1224 1771 832 1219 1788 911 1271 1799 992 1287 1803 1063 1326 1821 1175 1355 1836 1269 1405 1865 1394 1436 1909 1531 1488 1926 1682 1508 1939 1794 1543 1909 1920 1525 1883 2079 1513 1849 2193 1514 1805 2311 1546 1791 2479 1615 1766 2550 1648 1750 2698 1689 1735 2822 1717 1685 2906 1775 1657 3046 1820 1622 3157 1882 1585 3298 1948 1564 3424 2010 1546 3526 2104 1534 3680 2194 1524 3805 2293 1534 3960 1106 1891 671 1100 1895 716 1101 1899 732 1111 1917 754 1129 1914 825 1152 1922 866 1186 1922 936 1176 1930 1029 1226 1945 1114 1255 1959 1192 1257 1987 1304 1357 2013 1425 1331 2033 1540 1445 2065 1692 1462 2079 1835 1446 2096 1949 1470 2064 2089 1461 2038 2209 1472 1997 2352 1466 1944 2464 1479 1904 2586 1509 1896 2696 1587 1901 2864 1637 1865 2951 1683 1810 3052 1724 1793 3172 1787 1755 3295 1846 1728 3417 1937 1696 3546 2007 1682 3684 2097 1679 3814 2226 1689 3973 1048 2027 743 1033 2035 750 1028 2038 758 1039 2032 806 1062 2051 855 1065 2063 920 1084 2075 990 1112 2084 1046 1149 2097 1145 1167 2111 1235 1207 2139 1333 1247 2157 1450 1265 2178 1560 1385 2209 1722 1408 2212 1855 1405 2234 1992 1390 2242 2106 1429 2225 2251 1410 2176 2361 1427 2129 2504 1415 2087 2616 1420 2038 2724 1427 2017 2855 1475 1989 2955 1572 1969 3078 1645 1956 3187 1692 1919 3304 1756 1893 3436 1830 1858 3552 1929 1846 3698 2029 1849 3822 2145 1861 3979 941 2184 773 944 2174 803 952 2184 824 952 2181 829 967 2198 908 981 2200 947 1007 2218 1033 1029 2221 1090 1056 2231 1161 1103 2253 1248 1131 2280 1358 1172 2296 1475 1193 2319 1593 1274 2350 1734 1326 2363 1882 1330 2379 1994 1330 2372 2132 1375 2375 2265 1376 2363 2375 1400 2303 2507 1356 2265 2652 1350 2229 2744 1380 2176 2861 1368 2145 2979 1387 2109 3079 1459 2077 3187 1565 2072 3327 1676 2074 3446 1758 2058 3569 1823 2027 3694 1938 2013 3826 2057 2022 3980 843 2333 787 833 2330 801 831 2331 849 854 2346 870 867 2338 915 896 2359 996 914 2371 1044 914 2382 1116 941 2391 1195 986 2402 1296 991 2448 1395 1048 2433 1480 1065 2468 1612 1203 2480 1774 1280 2487 1906 1266 2504 2018 1270 2495 2157 1290 2483 2294 1351 2498 2446 1352 2461 2513 1359 2420 2638 1330 2391 2738 1309 2355 2865 1313 2325 2966 1310 2275 3094 1335 2259 3219 1421 2204 3320 1486 2193 3457 1613 2197 3570 1788 2225 3718 1907 2224 3846 2012 2214 3986 694 2469 839 692 2499 876 731 2487 883 718 2489 926 762 2491 969 763 2505 1006 754 2517 1076 804 2534 1156 839 2521 1227 868 2552 1338 905 2554 1403 947 2563 1521 970 2579 1657 1117 2621 1804 1219 2623 1951 1223 2618 2065 1190 2619 2174 1214 2618 2278 1214 2624 2419 1322 2621 2545 1328 2573 2655 1320 2543 2778 1312 2514 2882 1318 2484 3016 1283 2451 3106 1283 2410 3216 1315 2377 3329 1373 2348 3458 1474 2332 3577 1589 2329 3716 1772 2367 3840 2016 2441 3982 540 2621 883 552 2622 908 582 2623 941 588 2617 951 596 2620 995 607 2640 1061 611 2641 1101 649 2665 1179 679 2666 1260 734 2677 1357 791 2679 1455 843 2708 1579 860 2704 1680 1057 2721 1834 1172 2735 1992 1135 2752 2119 1133 2737 2168 1133 2748 2305 1132 2747 2416 1174 2755 2572 1320 2730 2691 1320 2698 2790 1291 2692 2887 1309 2632 3020 1293 2595 3118 1275 2582 3230 1289 2542 3346 1293 2521 3453 1360 2497 3586 1500 2497 3731 1638 2495 3852 1834 2529 3992 256 2760 920 285 2765 922 289 2759 969 300 2781 995 353 2790 1041 370 2794 1094 413 2794 1172 476 2806 1251 517 2798 1325 569 2815 1448 594 2824 1533 691 2824 1631 744 2846 1729 1003 2851 1888 1142 2851 2042 1096 2867 2145 1050 2850 2211 1053 2860 2343 1061 2861 2469 1080 2857 2587 1135 2871 2697 1327 2865 2813 1277 2817 2907 1302 2794 3040 1295 2747 3153 1295 2724 3270 1268 2698 3362 1302 2676 3463 1333 2659 3587 1419 2652 3738 1551 2648 3856 1777 2684 4010 115 2906 1000 114 2904 1027 127 2909 1040 132 2906 1069 152 2917 1106 153 2911 1135 187 2920 1224 246 2935 1300 279 2926 1360 361 2936 1451 468 2946 1582 519 2955 1684 616 2967 1778 931 2986 1930 1093 2975 2089 1065 2974 2183 1021 2976 2238 959 2978 2362 966 2964 2494 997 2978 2563 1019 2962 2724 1145 3003 2871 1328 2950 2960 1327 2933 3060 1288 2895 3146 1288 2856 3262 1267 2853 3374 1293 2824 3486 1322 2807 3615 1398 2814 3729 1518 2818 3861 1724 2847 4028 7 3035 1097 19 3025 1119 6 3044 1126 0 3043 1158 6 3061 1206 51 3040 1252 100 3040 1290 142 3053 1370 167 3055 1425 203 3068 1498 267 3067 1604 397 3095 1701 535 3079 1836 900 3086 1979 1075 3096 2125 1020 3093 2200 950 3087 2289 853 3088 2389 859 3082 2521 886 3098 2618 919 3079 2738 993 3087 2863 1123 3117 2998 1302 3058 3067 1326 3035 3162 1297 3010 3255 1274 2990 3377 1292 2981 3498 1353 2954 3626 1421 2963 3748 1543 2956 3895 1719 2985 4033 13 3167 1208 13 3160 1215 12 3179 1255 5 3176 1253 18 3178 1303 19 3185 1336 30 3179 1384 48 3177 1453 122 3186 1531 157 3180 1617 193 3187 1686 292 3199 1793 485 3200 1885 894 3215 2051 1104 3210 2181 1026 3210 2269 940 3206 2359 797 3215 2436 707 3215 2516 753 3203 2667 781 3202 2752 801 3211 2858 943 3212 2992 1088 3223 3122 1296 3171 3181 1319 3145 3293 1320 3122 3399 1303 3119 3508 1348 3106 3626 1435 3108 3761 1561 3116 3901 1767 3148 4038 13 3300 1333 7 3308 1339 6 3308 1348 7 3305 1379 18 3307 1412 18 3303 1441 20 3304 1497 52 3309 1553 113 3310 1627 165 3332 1687 216 3337 1765 315 3346 1863 569 3315 1983 939 3332 2128 1132 3330 2262 1052 3327 2328 948 3314 2403 765 3330 2495 554 3340 2539 537 3333 2647 609 3329 2786 656 3319 2891 681 3314 2987 894 3344 3124 1077 3338 3234 1284 3282 3295 1322 3268 3406 1331 3241 3517 1362 3255 3652 1464 3262 3772 1586 3271 3920 1788 3302 4054 34 3423 1495 20 3431 1511 6 3441 1508 13 3433 1541 31 3435 1557 77 3431 1577 121 3426 1636 166 3437 1694 203 3447 1772 278 3447 1816 398 3453 1910 514 3446 1980 692 3443 2069 1018 3437 2205 1212 3452 2335 1121 3444 2409 963 3449 2437 783 3460 2519 491 3456 2580 244 3466 2662 291 3457 2775 392 3444 2928 440 3446 3016 552 3442 3124 854 3444 3275 1136 3437 3354 1306 3405 3405 1369 3380 3525 1390 3411 3648 1474 3388 3766 1612 3396 3908 1839 3444 4056 161 3577 1647 177 3573 1659 191 3561 1677 212 3538 1697 250 3567 1732 317 3569 1763 383 3581 1823 461 3555 1850 528 3566 1923 610 3566 1985 687 3567 2036 704 3577 2093 886 3583 2175 1150 3560 2284 1336 3574 2441 1229 3572 2483 1088 3593 2524 910 3585 2576 572 3600 2647 121 3581 2681 123 3591 2804 160 3581 2886 183 3587 2996 222 3566 3103 459 3590 3264 825 3584 3400 1162 3553 3475 1384 3511 3559 1438 3517 3671 1530 3541 3809 1662 3557 3941 1894 3573 4081 734 3689 1850 725 3704 1873 757 3698 1882 786 3692 1913 772 3702 1939 835 3697 1968 851 3701 1987 898 3699 2028 924 3700 2074 971 3692 2122 1003 3701 2172 1002 3707 2215 1131 3703 2312 1319 3690 2404 1465 3705 2516 1393 3697 2566 1244 3713 2602 1094 3708 2648 783 3720 2729 245 3732 2739 20 3724 2852 27 3727 2955 80 3743 3040 119 3718 3152 168 3727 3269 475 3714 3416 828 3736 3529 1261 3697 3607 1450 3657 3674 1555 3648 3804 1731 3664 3963 1984 3720 4086 1209 3843 2108 1191 3835 2113 1201 3826 2138 1221 3820 2131 1249 3843 2159 1245 3834 2174 1278 3845 2199 1273 3857 2233 1297 3853 2248 1310 3841 2316 1332 3831 2351 1318 3833 2407 1411 3855 2466 1571 3836 2564 1685 3835 2663 1635 3834 2680 1464 3852 2689 1320 3860 2777 1059 3865 2826 666 3865 2883 21 3876 2888 18 3876 3023 20 3870 3102 87 3863 3200 151 3885 3323 176 3871 3427 656 3875 3596 974 3884 3691 1388 3824 3761 1619 3779 3841 1798 3811 3963 2074 3852 4086 1626 3969 2363 1615 3986 2352 1640 3977 2352 1626 3985 2384 1653 3955 2400 1651 3985 2437 1675 3976 2450 1706 3973 2467 1688 3973 2521 1706 3973 2521 1688 3973 2553 1711 3974 2577 1760 3998 2661 1860 3987 2746 1977 3989 2825 1930 3988 2881 1796 4005 2886 1623 4001 2901 1434 4000 2943 1159 4002 2988 539 4010 3054 74 4031 3053 160 4024 3182 207 4029 3274 299 4056 3384 452 4028 3514 630 4038 3635 979 4038 3738 1227 4039 3848 1617 3991 3915 1870 3951 3988 2188 3983 4095 1306 378 387 1315 394 418 1302 418 456 1315 439 450 1312 450 511 1330 463 549 1332 440 632 1362 378 671 1391 410 777 1431 428 870 1474 434 974 1502 428 1065 1489 419 1145 1510 419 1237 1554 378 1339 1604 363 1471 1627 353 1600 1686 312 1738 1722 280 1887 1794 189 2015 1886 55 2202 1931 5 2352 2013 4 2511 2110 5 2683 2165 4 2839 2237 3 3002 2339 0 3151 2411 0 3293 2481 0 3454 2564 0 3614 2654 16 3762 2759 16 3911 1346 379 416 1363 418 394 1330 421 422 1330 444 479 1358 452 538 1340 483 598 1352 476 645 1374 431 685 1400 431 768 1430 452 853 1463 455 967 1492 456 1064 1516 445 1169 1525 437 1248 1557 433 1371 1613 394 1490 1667 379 1615 1687 359 1743 1734 312 1877 1795 235 2028 1876 121 2191 1957 6 2387 2017 5 2535 2092 0 2695 2177 7 2856 2220 9 2995 2313 0 3131 2417 0 3307 2481 8 3454 2572 8 3625 2646 7 3754 2751 9 3918 1331 429 388 1354 457 386 1351 458 420 1336 469 469 1338 507 553 1339 511 592 1352 514 659 1385 468 688 1388 481 753 1458 470 884 1478 478 977 1505 499 1077 1527 469 1163 1533 485 1268 1564 460 1370 1600 457 1493 1671 411 1638 1709 388 1755 1741 340 1876 1814 291 2050 1853 194 2199 1966 42 2378 2033 6 2533 2092 0 2717 2175 6 2859 2256 6 3018 2304 15 3155 2402 0 3302 2468 7 3449 2565 1 3618 2655 7 3780 2730 0 3907 1343 467 365 1361 485 402 1358 492 473 1367 504 491 1355 508 543 1369 526 583 1380 542 687 1410 508 720 1412 514 778 1440 526 883 1482 535 986 1502 527 1086 1540 523 1199 1542 517 1288 1569 505 1385 1615 477 1513 1668 462 1642 1724 424 1778 1742 397 1898 1829 344 2054 1884 259 2195 1987 139 2374 2052 17 2550 2106 8 2701 2172 6 2855 2249 9 3021 2306 3 3159 2402 1 3314 2473 0 3454 2563 13 3623 2644 6 3753 2728 0 3910 1375 521 394 1361 534 414 1369 541 455 1362 550 479 1380 573 541 1384 576 613 1409 584 682 1402 584 753 1414 550 772 1454 572 881 1477 603 1003 1505 596 1103 1555 579 1207 1559 569 1280 1585 561 1400 1646 529 1529 1679 526 1657 1731 494 1781 1766 461 1927 1844 419 2088 1889 344 2216 1977 257 2406 2042 123 2557 2098 6 2706 2168 7 2889 2267 2 3042 2309 2 3172 2399 2 3335 2469 0 3457 2557 0 3633 2640 2 3766 2720 9 3910 1390 576 383 1378 580 412 1390 614 461 1385 603 498 1392 613 566 1428 624 631 1408 638 692 1418 646 743 1440 617 797 1470 613 922 1516 641 1011 1520 662 1124 1566 651 1227 1560 638 1299 1596 618 1415 1654 612 1561 1702 579 1683 1733 570 1820 1775 538 1935 1840 498 2109 1899 437 2278 1972 369 2402 2029 278 2560 2112 162 2718 2162 28 2860 2242 3 3038 2316 3 3189 2404 0 3337 2467 0 3471 2544 0 3611 2624 0 3778 2726 20 3913 1419 653 410 1422 667 446 1429 682 473 1410 666 523 1450 683 569 1445 696 646 1445 684 688 1454 716 772 1450 704 858 1469 701 920 1512 721 1055 1537 745 1142 1558 721 1231 1580 725 1349 1622 704 1448 1664 686 1581 1720 659 1701 1749 659 1824 1783 628 1971 1845 586 2116 1903 542 2280 1963 481 2425 2034 400 2574 2110 317 2741 2167 231 2895 2224 74 3046 2307 0 3192 2388 0 3334 2441 11 3478 2538 0 3634 2627 4 3774 2720 0 3935 1467 733 410 1461 735 458 1493 752 497 1464 746 546 1469 768 606 1461 774 663 1474 772 738 1471 782 801 1467 807 867 1471 766 928 1528 788 1043 1573 807 1161 1584 821 1278 1594 811 1372 1651 801 1474 1672 785 1605 1732 769 1716 1759 746 1859 1806 728 1996 1854 690 2131 1925 639 2302 1970 603 2481 2033 550 2616 2105 476 2770 2159 404 2905 2222 314 3039 2281 210 3181 2383 42 3351 2435 7 3477 2535 0 3638 2606 8 3796 2712 0 3931 1467 857 442 1462 861 470 1474 855 494 1498 862 545 1492 863 579 1515 867 656 1513 888 728 1518 877 794 1527 889 897 1512 911 984 1527 886 1060 1586 915 1186 1604 922 1295 1632 903 1408 1667 904 1532 1704 875 1650 1748 871 1759 1785 850 1896 1810 840 2013 1874 799 2192 1930 765 2320 1983 719 2482 2037 675 2640 2096 623 2770 2150 568 2921 2223 501 3064 2280 418 3199 2343 335 3329 2419 202 3492 2481 59 3635 2581 20 3783 2671 0 3926 1463 972 457 1484 960 498 1508 971 554 1505 981 599 1506 983 607 1523 982 688 1565 986 742 1554 991 838 1553 982 918 1540 1005 982 1570 991 1132 1589 1024 1200 1649 1047 1343 1649 1027 1434 1688 1022 1558 1702 1010 1679 1759 1000 1803 1786 975 1906 1843 948 2060 1907 920 2208 1933 884 2364 1974 844 2494 2041 808 2651 2089 764 2811 2140 722 2938 2199 656 3071 2258 595 3211 2329 541 3357 2396 473 3496 2480 400 3633 2560 345 3786 2648 278 3948 1485 1119 497 1490 1119 504 1502 1102 539 1519 1125 597 1503 1113 636 1533 1118 691 1554 1118 784 1569 1121 835 1624 1119 945 1603 1102 1015 1574 1136 1118 1621 1115 1237 1651 1166 1363 1676 1170 1468 1713 1168 1608 1735 1147 1721 1784 1124 1838 1815 1109 1973 1845 1077 2089 1888 1052 2256 1955 1013 2400 1979 970 2544 2022 958 2686 2067 916 2808 2141 859 2951 2170 826 3075 2243 770 3222 2302 732 3357 2387 684 3511 2444 643 3663 2543 608 3798 2620 582 3915 1474 1243 496 1488 1256 526 1481 1249 543 1500 1261 609 1503 1244 639 1526 1234 704 1557 1261 762 1582 1258 853 1608 1261 954 1600 1274 1041 1613 1285 1158 1608 1275 1278 1642 1292 1393 1692 1314 1535 1706 1297 1639 1754 1281 1771 1778 1261 1875 1807 1247 2006 1848 1211 2158 1892 1182 2304 1922 1171 2437 1992 1107 2558 2031 1090 2713 2050 1050 2849 2122 1009 2967 2165 986 3117 2213 929 3232 2280 903 3398 2345 867 3520 2421 836 3656 2509 813 3803 2607 799 3926 1406 1354 521 1435 1359 567 1428 1360 588 1468 1370 639 1474 1388 696 1517 1396 770 1533 1402 806 1559 1415 870 1579 1418 970 1611 1422 1077 1635 1422 1175 1672 1431 1305 1681 1440 1446 1706 1461 1575 1747 1468 1689 1773 1435 1804 1798 1415 1937 1836 1393 2064 1855 1364 2212 1892 1338 2341 1922 1306 2472 1946 1280 2592 1981 1255 2719 2046 1207 2857 2071 1174 2980 2134 1126 3109 2185 1107 3258 2258 1083 3391 2302 1044 3527 2397 1017 3651 2472 1001 3798 2554 995 3937 1398 1479 579 1413 1494 602 1409 1488 614 1420 1511 663 1446 1515 740 1463 1496 755 1496 1517 844 1501 1512 916 1536 1544 990 1562 1560 1076 1635 1583 1191 1659 1620 1354 1705 1592 1461 1729 1616 1616 1765 1623 1746 1786 1590 1859 1802 1577 1999 1826 1538 2115 1842 1530 2244 1860 1496 2368 1906 1462 2502 1933 1444 2640 1965 1410 2770 2010 1366 2885 2044 1350 3006 2091 1299 3135 2139 1271 3277 2218 1237 3408 2259 1208 3531 2319 1191 3664 2423 1175 3819 2511 1180 3928 1385 1617 626 1372 1619 643 1403 1631 689 1400 1616 712 1418 1615 725 1416 1636 805 1469 1645 853 1439 1674 926 1474 1674 985 1529 1713 1142 1568 1707 1236 1584 1743 1344 1653 1747 1494 1694 1762 1633 1749 1795 1794 1771 1770 1901 1786 1752 2055 1803 1737 2164 1809 1688 2288 1829 1658 2427 1847 1632 2515 1865 1598 2627 1924 1552 2771 1939 1526 2869 2004 1485 3026 2055 1467 3157 2115 1432 3295 2162 1411 3407 2204 1355 3528 2293 1354 3683 2367 1360 3819 2455 1344 3942 1329 1741 628 1348 1742 660 1320 1762 668 1370 1756 746 1361 1795 784 1386 1783 823 1413 1792 906 1413 1798 971 1430 1825 1048 1484 1839 1152 1502 1848 1257 1553 1865 1384 1600 1894 1517 1648 1923 1663 1715 1942 1827 1745 1940 1940 1715 1923 2075 1757 1885 2216 1762 1847 2332 1779 1825 2449 1803 1795 2597 1832 1766 2681 1853 1733 2787 1886 1705 2898 1930 1672 3033 2009 1627 3174 2037 1605 3317 2098 1566 3414 2148 1541 3528 2213 1517 3667 2309 1517 3829 2406 1516 3960 1288 1889 691 1322 1896 692 1300 1890 715 1307 1897 758 1299 1919 786 1330 1931 852 1341 1927 928 1367 1943 989 1377 1971 1080 1397 1972 1168 1461 1977 1294 1483 2008 1407 1535 2024 1527 1598 2068 1686 1664 2080 1811 1665 2103 1973 1696 2102 2111 1680 2040 2250 1655 2009 2364 1669 1985 2496 1722 1937 2613 1779 1935 2722 1825 1886 2826 1819 1872 2942 1868 1831 3051 1924 1794 3194 1953 1755 3301 2010 1730 3424 2081 1696 3559 2160 1688 3691 2243 1674 3819 2340 1696 3968 1189 2066 691 1185 2051 724 1212 2055 769 1239 2045 783 1231 2062 831 1264 2042 874 1269 2083 951 1301 2098 1010 1326 2096 1108 1372 2112 1236 1392 2123 1326 1424 2148 1427 1479 2163 1555 1506 2217 1680 1580 2237 1851 1632 2236 1998 1645 2236 2130 1664 2228 2260 1619 2193 2376 1635 2158 2515 1597 2124 2611 1642 2053 2742 1663 2034 2848 1773 2041 2979 1792 2002 3087 1835 1960 3191 1875 1915 3301 1923 1893 3435 1991 1873 3563 2077 1854 3691 2177 1852 3829 2274 1868 3971 1135 2180 707 1149 2196 750 1135 2191 773 1157 2204 798 1181 2205 885 1188 2213 916 1222 2212 997 1245 2232 1084 1269 2235 1151 1291 2257 1237 1318 2275 1349 1355 2299 1467 1405 2319 1581 1435 2342 1690 1535 2380 1878 1560 2382 2025 1571 2382 2146 1570 2399 2285 1640 2355 2405 1607 2327 2506 1618 2262 2647 1587 2234 2740 1583 2199 2884 1610 2166 3008 1634 2133 3069 1736 2124 3204 1812 2089 3340 1855 2065 3456 1900 2037 3559 1975 2020 3704 2093 2020 3826 2188 2031 3978 1081 2336 787 1089 2336 787 1084 2316 812 1097 2349 852 1115 2325 891 1126 2341 944 1142 2349 1011 1164 2378 1103 1199 2391 1191 1204 2403 1276 1253 2407 1378 1288 2442 1496 1328 2445 1608 1370 2477 1729 1459 2497 1898 1520 2510 2046 1506 2511 2187 1515 2511 2308 1531 2538 2418 1619 2472 2535 1571 2450 2650 1569 2401 2752 1562 2375 2895 1556 2320 3003 1543 2287 3116 1594 2253 3211 1616 2225 3309 1741 2223 3467 1865 2238 3604 1960 2201 3715 2008 2192 3844 2133 2195 3970 990 2468 816 1001 2477 851 1038 2477 888 1034 2482 901 1057 2486 947 1065 2496 1023 1082 2495 1041 1088 2520 1126 1097 2532 1209 1140 2542 1301 1177 2552 1423 1185 2559 1514 1262 2584 1644 1284 2608 1778 1401 2618 1933 1477 2624 2072 1458 2626 2178 1463 2628 2316 1499 2638 2453 1556 2654 2572 1567 2609 2662 1558 2545 2789 1528 2537 2878 1514 2510 2997 1513 2448 3108 1502 2419 3230 1556 2383 3340 1605 2347 3457 1685 2336 3584 1821 2347 3704 2002 2399 3869 2146 2410 3977 871 2618 853 901 2622 888 899 2640 923 910 2641 940 922 2640 999 969 2647 1045 968 2636 1098 1005 2644 1202 1014 2653 1256 1053 2663 1357 1079 2684 1469 1100 2697 1544 1168 2704 1669 1195 2719 1791 1363 2736 1961 1451 2741 2105 1411 2749 2207 1408 2752 2317 1432 2757 2440 1455 2765 2563 1572 2747 2705 1556 2718 2800 1548 2677 2897 1523 2648 3024 1525 2609 3126 1483 2596 3245 1505 2557 3352 1524 2514 3459 1591 2492 3589 1674 2490 3711 1824 2496 3841 2034 2550 3981 807 2741 926 831 2760 957 825 2764 980 823 2757 1010 820 2759 1041 854 2776 1105 870 2788 1166 873 2786 1216 896 2789 1303 951 2805 1422 993 2815 1501 1023 2824 1603 1083 2836 1731 1126 2847 1826 1313 2859 1988 1409 2867 2158 1355 2868 2230 1345 2862 2352 1366 2867 2457 1348 2862 2574 1420 2877 2695 1545 2862 2806 1544 2824 2903 1526 2803 3027 1514 2759 3142 1503 2736 3239 1489 2720 3366 1500 2681 3471 1541 2644 3608 1600 2642 3707 1757 2642 3849 1936 2679 4003 667 2895 1001 685 2901 1027 707 2899 1046 720 2905 1088 734 2900 1101 735 2924 1166 782 2904 1232 811 2915 1305 831 2924 1371 881 2929 1476 925 2925 1562 948 2943 1646 985 2965 1774 1048 2975 1883 1271 2970 2037 1383 2990 2194 1345 2991 2250 1271 2996 2348 1305 2981 2492 1284 2964 2604 1298 2986 2718 1401 2993 2845 1541 2963 2945 1540 2922 3047 1500 2918 3147 1513 2884 3270 1488 2877 3387 1486 2830 3486 1536 2815 3596 1580 2810 3715 1674 2798 3869 1871 2831 4002 559 3032 1124 551 3037 1119 571 3028 1156 585 3025 1175 614 3039 1209 655 3049 1273 665 3042 1349 703 3049 1390 734 3058 1470 803 3048 1544 854 3062 1624 915 3071 1713 949 3072 1829 1017 3101 1947 1256 3092 2097 1395 3100 2244 1311 3112 2314 1258 3102 2410 1203 3091 2506 1226 3090 2603 1231 3088 2718 1274 3112 2861 1371 3108 2985 1545 3063 3069 1528 3053 3160 1516 3022 3271 1501 2992 3382 1499 2980 3502 1523 2956 3624 1583 2965 3739 1701 2956 3881 1844 2985 4011 478 3161 1242 491 3152 1253 502 3155 1253 499 3161 1303 532 3156 1320 563 3172 1390 605 3164 1446 631 3173 1486 677 3182 1555 745 3186 1619 806 3189 1703 872 3191 1806 896 3209 1901 1019 3216 2005 1235 3212 2150 1398 3213 2278 1275 3211 2351 1237 3215 2442 1155 3212 2527 1129 3200 2640 1172 3214 2730 1186 3220 2831 1229 3217 2976 1374 3233 3112 1552 3176 3187 1523 3154 3290 1534 3122 3396 1513 3126 3504 1530 3112 3632 1592 3107 3746 1696 3102 3874 1886 3144 4054 414 3299 1331 457 3291 1360 467 3289 1367 485 3298 1400 505 3298 1445 569 3303 1509 578 3289 1540 645 3303 1615 683 3300 1656 759 3300 1733 799 3318 1782 888 3301 1878 903 3324 1969 1014 3343 2066 1257 3330 2214 1390 3330 2352 1303 3336 2427 1228 3328 2486 1075 3333 2560 1006 3329 2655 1033 3340 2777 1046 3346 2852 1081 3333 2987 1206 3320 3097 1368 3335 3250 1543 3289 3322 1500 3275 3394 1516 3258 3524 1571 3245 3659 1619 3249 3783 1730 3267 3914 1903 3282 4028 515 3437 1487 524 3428 1502 555 3425 1518 562 3428 1548 613 3430 1568 644 3427 1614 685 3440 1648 733 3426 1708 776 3437 1778 838 3436 1855 881 3441 1901 938 3448 1972 984 3439 2069 1080 3440 2158 1299 3453 2277 1428 3458 2416 1358 3451 2477 1235 3448 2515 1088 3458 2602 927 3458 2669 907 3469 2784 935 3460 2908 969 3439 3000 990 3460 3110 1177 3467 3267 1370 3470 3362 1537 3407 3427 1539 3389 3525 1569 3396 3634 1643 3388 3780 1765 3396 3930 1968 3435 4058 776 3560 1664 789 3552 1648 795 3563 1681 797 3588 1673 831 3568 1720 853 3571 1764 912 3558 1805 918 3559 1867 976 3565 1917 1014 3567 1976 1043 3584 2050 1079 3566 2102 1100 3598 2174 1190 3584 2271 1379 3597 2378 1515 3575 2501 1429 3576 2534 1312 3582 2610 1146 3583 2676 911 3603 2731 771 3575 2853 801 3582 2938 840 3580 3047 869 3561 3142 949 3582 3269 1155 3577 3385 1377 3585 3490 1571 3529 3559 1589 3520 3664 1670 3528 3817 1807 3543 3923 2016 3577 4085 1074 3704 1872 1082 3697 1873 1100 3712 1888 1099 3705 1912 1128 3706 1926 1126 3716 1956 1163 3709 1976 1189 3697 2044 1206 3704 2077 1227 3701 2133 1257 3702 2182 1267 3704 2233 1303 3714 2302 1359 3713 2378 1531 3719 2492 1629 3698 2604 1546 3705 2654 1405 3720 2694 1247 3719 2736 1006 3724 2788 643 3730 2897 636 3734 3004 688 3732 3109 735 3711 3186 776 3719 3282 914 3716 3400 1157 3727 3516 1447 3715 3621 1622 3665 3680 1711 3673 3827 1841 3688 3970 2059 3712 4077 1441 3821 2115 1402 3844 2131 1411 3850 2138 1428 3830 2133 1438 3838 2143 1439 3849 2189 1447 3847 2198 1474 3826 2229 1503 3833 2268 1505 3842 2330 1528 3837 2354 1520 3852 2423 1540 3843 2463 1587 3860 2534 1713 3852 2622 1830 3836 2726 1735 3836 2758 1593 3863 2778 1443 3846 2828 1192 3875 2890 850 3870 2963 577 3872 3045 636 3873 3160 681 3863 3254 742 3874 3341 790 3870 3451 1003 3876 3564 1242 3877 3676 1545 3861 3771 1735 3811 3835 1919 3827 3972 2163 3860 4086 1772 3974 2345 1796 3967 2367 1792 3983 2397 1823 3984 2405 1804 3965 2425 1819 3975 2434 1807 3989 2463 1819 3983 2468 1812 3991 2492 1817 3991 2544 1841 3991 2571 1838 3988 2602 1844 3984 2647 1904 3998 2710 1997 3999 2818 2075 3976 2882 1995 3982 2930 1877 4006 2930 1716 4017 2974 1484 4018 3015 1202 4015 3031 738 4045 3087 730 4043 3210 823 4030 3309 875 4029 3413 910 4040 3512 1015 4025 3636 1218 4033 3733 1443 4045 3854 1751 3986 3925 1977 3958 3982 2247 3983 4088 1413 369 409 1397 385 384 1420 409 405 1425 427 457 1440 436 510 1431 453 572 1433 474 625 1460 410 662 1494 385 748 1514 390 834 1525 428 928 1582 426 1054 1621 411 1160 1629 403 1247 1637 408 1346 1652 378 1476 1742 329 1614 1804 289 1754 1821 247 1858 1878 189 1997 1960 79 2185 2042 3 2351 2126 4 2515 2195 8 2669 2280 0 2843 2330 11 2985 2435 10 3147 2510 14 3294 2590 0 3450 2679 0 3600 2752 15 3747 2858 0 3903 1404 408 401 1431 410 386 1431 450 418 1438 442 458 1430 455 517 1442 487 575 1458 490 640 1471 430 681 1518 410 739 1549 416 833 1573 448 963 1599 467 1074 1628 450 1151 1660 443 1249 1652 441 1347 1685 418 1469 1742 369 1607 1797 322 1738 1835 294 1862 1918 236 2015 1964 136 2184 2050 15 2359 2130 4 2531 2213 4 2685 2261 4 2843 2356 0 2993 2425 15 3140 2502 10 3300 2590 0 3422 2668 7 3598 2752 8 3740 2866 8 3925 1421 433 386 1429 450 380 1453 453 411 1436 462 460 1454 485 524 1445 506 586 1453 523 630 1468 482 678 1506 455 741 1518 469 849 1565 478 949 1604 493 1069 1625 495 1181 1627 475 1259 1669 462 1365 1721 435 1476 1743 425 1638 1785 378 1754 1848 337 1885 1898 282 2027 1971 192 2188 2058 42 2366 2133 1 2534 2203 11 2676 2271 15 2847 2340 11 2998 2419 11 3144 2505 7 3303 2581 3 3451 2678 1 3614 2758 8 3762 2841 0 3908 1441 471 360 1442 484 369 1437 507 429 1439 509 454 1440 525 526 1468 526 585 1479 542 644 1472 547 703 1504 477 747 1537 496 849 1562 514 961 1616 539 1103 1651 525 1183 1653 523 1273 1662 503 1388 1714 485 1511 1743 474 1628 1808 434 1768 1852 381 1897 1916 355 2059 1982 270 2187 2059 143 2367 2145 21 2546 2202 1 2714 2279 8 2847 2347 0 3012 2430 0 3169 2494 10 3304 2591 1 3455 2668 9 3598 2750 1 3755 2847 8 3906 1443 540 343 1475 527 378 1478 547 440 1490 555 483 1456 566 525 1471 590 602 1477 606 670 1498 595 717 1506 554 780 1564 563 861 1611 567 968 1646 574 1091 1656 588 1189 1681 581 1299 1696 561 1408 1747 526 1518 1783 524 1661 1813 501 1778 1869 462 1921 1932 424 2078 1993 369 2229 2061 251 2394 2141 114 2539 2216 4 2706 2287 0 2858 2366 0 3012 2421 6 3170 2489 14 3332 2577 11 3463 2660 1 3609 2748 0 3754 2855 14 3941 1499 589 373 1513 586 395 1494 611 447 1506 624 514 1499 617 523 1479 634 610 1520 641 676 1504 652 740 1529 637 817 1570 604 883 1596 629 1020 1642 644 1098 1664 667 1206 1689 656 1310 1715 629 1418 1757 610 1557 1788 588 1678 1831 553 1813 1889 540 1940 1949 500 2079 2016 448 2238 2088 366 2388 2135 278 2567 2230 141 2709 2278 14 2856 2350 6 3015 2408 8 3167 2488 0 3318 2586 5 3477 2656 8 3613 2746 0 3774 2832 8 3916 1544 643 404 1529 653 432 1545 660 478 1537 679 499 1531 693 581 1545 703 621 1542 700 701 1535 716 772 1540 726 827 1561 679 883 1631 693 980 1653 715 1118 1681 732 1254 1688 741 1333 1729 719 1438 1752 697 1571 1795 678 1690 1830 671 1803 1908 628 1962 1950 603 2106 2014 560 2273 2073 500 2419 2165 410 2570 2218 330 2721 2289 212 2878 2354 43 3020 2410 3 3164 2472 10 3329 2560 0 3482 2638 12 3628 2747 0 3791 2835 0 3936 1568 729 393 1573 745 461 1583 747 498 1561 757 529 1571 756 567 1571 783 644 1549 799 692 1557 786 753 1575 789 847 1576 791 941 1655 775 1036 1677 806 1139 1709 830 1278 1733 823 1367 1748 811 1458 1809 778 1600 1833 774 1734 1867 765 1862 1917 730 1963 1974 701 2138 2029 661 2289 2084 607 2460 2154 545 2594 2239 488 2736 2271 411 2908 2348 316 3034 2409 178 3171 2470 39 3331 2545 4 3481 2632 0 3632 2728 0 3772 2822 4 3927 1601 852 449 1589 844 475 1593 847 486 1601 865 536 1615 861 588 1625 869 633 1610 872 729 1637 860 785 1634 880 875 1634 884 968 1651 873 1029 1676 894 1138 1715 920 1271 1757 928 1416 1778 909 1535 1801 903 1633 1862 883 1759 1872 868 1873 1964 836 2018 1978 810 2161 2052 769 2308 2122 726 2487 2175 675 2628 2219 635 2774 2256 570 2915 2338 501 3042 2407 422 3206 2471 318 3336 2541 190 3502 2622 54 3659 2712 12 3800 2777 8 3921 1607 962 453 1597 970 494 1621 963 530 1630 966 566 1643 964 635 1642 968 675 1648 987 751 1679 974 818 1665 981 891 1652 1002 1001 1639 1018 1042 1690 993 1160 1740 1024 1328 1768 1047 1456 1784 1055 1560 1832 1020 1677 1872 1012 1781 1919 978 1917 1953 979 2044 1983 944 2197 2055 900 2347 2109 856 2484 2174 815 2646 2203 782 2790 2272 721 2921 2324 672 3063 2395 607 3198 2443 546 3356 2509 466 3492 2598 394 3637 2699 309 3794 2766 236 3950 1600 1102 468 1619 1091 509 1632 1105 544 1627 1097 555 1644 1099 625 1656 1099 685 1679 1106 761 1698 1098 805 1715 1115 912 1724 1113 1007 1717 1118 1113 1685 1136 1203 1739 1150 1333 1819 1168 1469 1784 1177 1582 1845 1158 1703 1886 1142 1844 1939 1115 1964 1955 1101 2085 2023 1067 2225 2078 1025 2394 2113 995 2540 2164 958 2673 2198 922 2823 2255 880 2943 2332 830 3084 2360 772 3228 2436 733 3353 2494 660 3494 2569 627 3639 2666 577 3785 2740 574 3926 1605 1227 484 1612 1243 506 1603 1235 545 1623 1243 575 1642 1237 643 1655 1233 705 1675 1258 769 1706 1243 838 1738 1245 913 1750 1273 1036 1754 1264 1132 1763 1282 1241 1766 1271 1357 1795 1322 1518 1844 1322 1624 1870 1302 1745 1890 1289 1877 1917 1271 2008 1970 1239 2143 2028 1219 2272 2086 1163 2388 2112 1131 2550 2159 1105 2707 2189 1075 2842 2231 1041 2971 2295 990 3105 2349 936 3239 2382 898 3382 2472 853 3517 2534 824 3648 2627 798 3798 2718 783 3948 1585 1370 476 1616 1375 503 1609 1385 548 1631 1370 589 1629 1388 643 1642 1404 714 1654 1414 764 1702 1414 872 1711 1407 957 1735 1414 1053 1773 1410 1164 1814 1408 1270 1786 1441 1408 1810 1450 1535 1843 1470 1689 1870 1460 1790 1910 1430 1907 1939 1412 2018 1993 1368 2171 2018 1360 2318 2068 1332 2458 2113 1303 2587 2127 1250 2713 2180 1225 2866 2221 1181 2970 2265 1150 3109 2293 1114 3245 2365 1077 3380 2418 1034 3493 2520 1018 3633 2584 987 3781 2668 989 3962 1541 1504 533 1558 1476 540 1550 1501 578 1550 1509 606 1573 1519 666 1610 1536 743 1646 1558 802 1680 1551 883 1711 1556 973 1760 1562 1068 1772 1580 1187 1793 1583 1307 1846 1591 1453 1846 1598 1590 1886 1625 1716 1902 1623 1842 1928 1614 1960 1945 1574 2089 2002 1555 2224 2026 1499 2371 2055 1470 2496 2106 1448 2625 2105 1427 2725 2138 1372 2885 2194 1332 3002 2230 1305 3119 2274 1289 3264 2328 1241 3392 2390 1216 3534 2450 1189 3673 2544 1159 3800 2634 1175 3953 1511 1634 561 1533 1633 601 1534 1628 635 1537 1640 671 1553 1639 700 1586 1658 757 1568 1678 817 1630 1662 920 1646 1691 1025 1692 1696 1110 1714 1726 1217 1767 1725 1322 1805 1767 1468 1875 1785 1647 1878 1788 1762 1909 1794 1908 1958 1763 2031 1966 1745 2181 1988 1726 2292 2017 1657 2405 2019 1654 2514 2045 1619 2646 2092 1579 2768 2129 1543 2878 2131 1511 3009 2171 1471 3143 2234 1444 3279 2287 1410 3402 2350 1371 3526 2415 1368 3665 2489 1345 3804 2585 1346 3951 1453 1781 595 1463 1780 613 1484 1782 653 1508 1767 672 1520 1778 726 1530 1800 792 1538 1808 857 1570 1809 930 1602 1829 1040 1626 1841 1137 1672 1845 1268 1709 1867 1369 1746 1890 1492 1797 1940 1663 1877 1943 1827 1918 1966 1950 1927 1942 2065 1941 1909 2181 1973 1890 2340 1950 1853 2424 1993 1818 2573 2019 1791 2688 2021 1755 2777 2075 1713 2903 2070 1664 3016 2137 1645 3148 2186 1612 3294 2227 1574 3387 2307 1558 3548 2357 1532 3682 2448 1517 3804 2529 1532 3959 1444 1904 651 1437 1913 675 1459 1911 682 1447 1912 702 1476 1915 767 1489 1926 807 1496 1940 904 1528 1957 987 1571 1973 1064 1577 1986 1160 1622 1974 1258 1664 2009 1400 1712 2039 1538 1749 2055 1642 1833 2066 1788 1884 2120 1967 1893 2121 2113 1878 2072 2266 1878 2032 2360 1925 2009 2495 1940 1988 2601 1965 1965 2704 1993 1912 2824 1993 1885 2935 2062 1843 3052 2064 1806 3174 2134 1753 3281 2172 1730 3413 2237 1697 3543 2317 1688 3695 2389 1680 3813 2471 1688 3943 1381 2043 659 1410 2051 708 1421 2059 737 1427 2053 746 1439 2064 806 1456 2084 861 1475 2076 926 1459 2091 993 1498 2102 1102 1511 2128 1196 1544 2132 1314 1611 2151 1435 1660 2170 1571 1705 2209 1672 1762 2211 1835 1811 2259 2012 1829 2252 2146 1854 2258 2284 1843 2203 2399 1830 2176 2533 1837 2129 2619 1869 2103 2736 1934 2079 2859 1945 2035 2937 1975 2007 3077 2016 1978 3179 2069 1934 3300 2114 1897 3438 2167 1878 3552 2241 1851 3696 2324 1852 3837 2406 1844 3965 1326 2183 702 1323 2199 727 1355 2212 749 1342 2209 795 1355 2226 853 1370 2217 905 1393 2218 986 1423 2230 1047 1445 2241 1103 1482 2255 1202 1503 2283 1343 1547 2300 1461 1575 2323 1575 1618 2346 1697 1703 2357 1828 1778 2397 2025 1802 2376 2147 1805 2405 2300 1834 2367 2400 1814 2357 2509 1789 2304 2636 1767 2257 2741 1799 2207 2871 1831 2188 2985 1900 2179 3088 1959 2162 3219 1973 2099 3299 2035 2073 3445 2093 2034 3561 2141 2023 3694 2244 2028 3832 2333 2022 3959 1283 2330 776 1284 2346 789 1305 2334 802 1297 2353 844 1306 2363 901 1329 2365 941 1349 2374 1000 1363 2378 1070 1378 2391 1171 1418 2407 1269 1455 2414 1379 1488 2436 1490 1525 2462 1589 1598 2465 1711 1605 2505 1870 1736 2515 2038 1754 2514 2173 1778 2526 2292 1758 2519 2430 1794 2515 2545 1808 2456 2645 1771 2430 2758 1768 2378 2903 1727 2325 3002 1777 2295 3128 1814 2276 3204 1893 2271 3327 1982 2256 3464 2035 2213 3586 2083 2188 3683 2177 2187 3834 2270 2185 3972 1202 2485 797 1213 2479 796 1237 2501 843 1230 2503 883 1249 2501 920 1257 2501 984 1292 2504 1033 1322 2510 1128 1335 2537 1201 1366 2541 1303 1399 2568 1419 1431 2555 1540 1458 2589 1621 1505 2588 1749 1549 2614 1892 1684 2640 2080 1717 2646 2189 1722 2651 2303 1737 2658 2431 1785 2649 2569 1795 2614 2667 1776 2573 2799 1742 2552 2899 1757 2510 3013 1737 2448 3129 1735 2431 3242 1792 2402 3361 1844 2361 3478 1908 2350 3587 2048 2378 3706 2152 2372 3828 2220 2361 3992 1189 2615 892 1157 2603 883 1182 2608 926 1178 2624 956 1160 2624 1012 1209 2621 1044 1204 2658 1117 1253 2645 1198 1290 2654 1283 1297 2674 1350 1342 2682 1443 1372 2695 1537 1385 2709 1660 1471 2720 1809 1490 2741 1932 1630 2750 2078 1686 2763 2205 1644 2772 2308 1686 2770 2453 1667 2773 2562 1763 2758 2707 1762 2723 2790 1746 2690 2875 1723 2675 3028 1725 2626 3127 1723 2584 3251 1710 2567 3369 1731 2528 3468 1804 2496 3602 1885 2500 3719 2018 2497 3844 2233 2572 3988 1096 2768 944 1082 2767 959 1109 2761 1002 1119 2756 1003 1121 2766 1040 1146 2768 1093 1144 2777 1154 1190 2795 1246 1211 2790 1332 1234 2806 1413 1283 2814 1493 1305 2822 1603 1347 2819 1700 1382 2837 1825 1433 2868 1968 1589 2867 2113 1648 2889 2252 1638 2883 2367 1631 2888 2469 1637 2876 2586 1667 2873 2706 1808 2877 2847 1776 2841 2944 1752 2811 3041 1728 2773 3142 1702 2750 3220 1719 2715 3367 1697 2677 3468 1741 2639 3604 1808 2643 3710 1930 2646 3844 2095 2668 3983 1006 2918 1007 1006 2902 1027 1021 2918 1043 1054 2894 1077 1041 2898 1111 1085 2893 1167 1079 2911 1234 1114 2911 1307 1151 2926 1369 1170 2926 1456 1199 2960 1546 1254 2946 1637 1288 2954 1759 1349 2954 1879 1385 2982 1993 1548 2986 2139 1603 2986 2280 1585 2999 2389 1564 3005 2490 1570 2981 2603 1592 2972 2710 1638 3007 2849 1769 2972 2957 1765 2954 3071 1721 2926 3145 1715 2890 3279 1710 2863 3362 1695 2830 3473 1723 2814 3612 1748 2806 3727 1861 2802 3860 2019 2822 4015 973 3029 1085 976 3038 1137 983 3035 1139 1004 3028 1169 996 3041 1205 1009 3045 1253 1031 3050 1316 1072 3046 1373 1093 3041 1474 1131 3052 1552 1168 3054 1635 1197 3081 1696 1252 3074 1799 1278 3086 1937 1353 3094 2054 1503 3101 2188 1617 3101 2322 1566 3103 2419 1495 3136 2515 1503 3105 2633 1511 3097 2747 1528 3110 2843 1626 3113 2977 1756 3082 3089 1725 3077 3178 1729 3028 3276 1719 3008 3386 1715 2987 3500 1730 2971 3631 1772 2960 3746 1863 2953 3884 1995 2993 4010 934 3159 1187 962 3163 1228 959 3172 1240 950 3171 1255 954 3186 1294 985 3165 1337 1013 3174 1415 1019 3172 1461 1059 3193 1491 1081 3190 1602 1132 3188 1697 1175 3186 1796 1223 3206 1883 1294 3197 2007 1313 3206 2080 1483 3224 2222 1618 3228 2340 1551 3223 2446 1481 3213 2539 1420 3232 2646 1459 3210 2754 1468 3215 2876 1491 3214 2984 1591 3239 3092 1731 3206 3200 1762 3154 3307 1716 3151 3417 1720 3117 3520 1730 3116 3630 1793 3100 3755 1852 3115 3871 2012 3140 4026 940 3295 1317 935 3296 1340 947 3289 1345 962 3298 1385 966 3287 1415 966 3309 1449 1009 3309 1490 1026 3301 1561 1060 3307 1647 1093 3307 1715 1143 3327 1787 1196 3325 1878 1230 3330 1986 1269 3329 2065 1322 3332 2169 1497 3330 2269 1616 3345 2405 1524 3353 2491 1466 3333 2570 1370 3332 2665 1375 3328 2790 1382 3325 2885 1363 3326 3017 1472 3327 3115 1573 3335 3231 1745 3283 3317 1759 3271 3408 1709 3287 3535 1739 3247 3651 1802 3234 3767 1879 3263 3905 2031 3280 4031 1001 3412 1493 990 3429 1504 1014 3421 1532 1024 3432 1569 1028 3424 1587 1028 3437 1647 1059 3445 1687 1094 3430 1746 1131 3419 1771 1165 3448 1850 1195 3442 1905 1256 3464 1990 1297 3443 2085 1285 3451 2145 1338 3458 2232 1520 3460 2358 1661 3446 2506 1558 3459 2570 1473 3465 2621 1350 3463 2675 1252 3456 2797 1286 3462 2873 1301 3452 2989 1297 3461 3078 1435 3446 3231 1552 3477 3345 1746 3421 3448 1723 3404 3527 1765 3396 3664 1800 3395 3784 1923 3396 3951 2091 3428 4069 1103 3557 1676 1099 3572 1670 1122 3556 1698 1146 3550 1725 1154 3566 1756 1175 3558 1779 1222 3577 1842 1219 3565 1853 1253 3568 1901 1285 3566 1971 1327 3563 2025 1335 3582 2130 1360 3568 2193 1388 3588 2230 1420 3590 2311 1585 3561 2441 1709 3585 2572 1619 3589 2625 1499 3575 2665 1354 3606 2726 1153 3597 2789 1178 3580 2914 1200 3595 3016 1202 3592 3145 1258 3589 3240 1408 3592 3376 1569 3586 3497 1760 3541 3573 1778 3518 3657 1856 3542 3823 1932 3551 3923 2119 3577 4087 1308 3697 1895 1317 3690 1894 1308 3704 1881 1348 3688 1904 1373 3688 1929 1375 3694 1971 1397 3709 1994 1410 3690 2036 1426 3701 2100 1453 3707 2141 1455 3701 2166 1506 3723 2264 1504 3707 2322 1504 3725 2360 1557 3706 2459 1682 3697 2547 1800 3706 2663 1721 3713 2718 1564 3728 2752 1439 3726 2808 1184 3733 2819 1082 3737 2935 1112 3734 3066 1132 3713 3177 1167 3719 3287 1214 3742 3386 1391 3729 3501 1611 3714 3630 1793 3657 3678 1851 3672 3818 1987 3689 3971 2189 3738 4094 1591 3843 2138 1599 3835 2138 1585 3835 2147 1603 3851 2164 1617 3836 2180 1638 3833 2207 1640 3848 2226 1637 3831 2256 1673 3824 2284 1682 3824 2325 1678 3833 2365 1707 3854 2425 1706 3829 2475 1690 3851 2509 1737 3852 2573 1851 3836 2680 1954 3845 2793 1871 3838 2815 1725 3840 2826 1547 3876 2882 1313 3868 2931 1049 3891 2999 1080 3879 3093 1078 3888 3216 1111 3884 3325 1148 3874 3432 1260 3866 3546 1480 3877 3690 1690 3846 3748 1898 3819 3842 2043 3827 3988 2254 3868 4095 1918 3991 2384 1918 3975 2386 1903 3983 2368 1902 3983 2416 1925 3993 2420 1948 3969 2419 1980 3970 2455 1946 3979 2489 1950 3986 2517 1976 3990 2558 1982 3967 2588 1960 3983 2633 1974 3983 2670 1966 4004 2680 2021 3984 2777 2086 3975 2842 2221 3977 2948 2100 3997 2961 1968 4001 2973 1804 4015 3021 1582 4018 3050 1262 4026 3097 1116 4028 3189 1170 4035 3287 1199 4052 3415 1265 4031 3492 1253 4044 3611 1453 4034 3738 1611 4032 3841 1896 4001 3925 2084 3959 3981 2352 3983 4071 1502 362 402 1503 386 378 1518 410 410 1525 434 461 1527 442 502 1518 458 578 1543 457 606 1533 439 654 1595 362 711 1616 374 821 1655 396 923 1696 402 1045 1724 415 1161 1749 411 1258 1768 378 1371 1784 361 1469 1808 345 1599 1882 287 1722 1951 222 1865 2002 159 2013 2065 41 2166 2153 8 2335 2229 0 2508 2309 8 2669 2383 8 2840 2460 11 2995 2536 0 3142 2596 0 3278 2681 6 3439 2774 8 3584 2866 8 3748 2955 0 3895 1503 394 385 1511 411 363 1526 450 411 1535 458 451 1549 473 494 1521 490 569 1532 472 622 1562 467 678 1607 394 715 1616 403 838 1662 424 922 1701 421 1053 1739 450 1163 1752 434 1273 1768 410 1366 1784 409 1469 1817 369 1584 1883 329 1723 1947 264 1870 1993 211 2029 2073 98 2177 2143 11 2348 2249 5 2513 2329 4 2681 2382 16 2833 2457 8 2986 2542 0 3132 2610 0 3296 2680 8 3439 2759 14 3585 2858 16 3754 2940 15 3879 1504 427 384 1521 458 363 1530 460 404 1536 475 459 1549 489 502 1529 500 545 1549 506 631 1535 496 674 1594 420 727 1632 420 822 1654 452 944 1688 467 1070 1755 481 1178 1762 474 1277 1785 452 1379 1791 437 1491 1840 395 1608 1873 384 1759 1949 337 1881 2006 272 2039 2085 173 2194 2157 43 2348 2227 18 2529 2320 5 2673 2382 0 2832 2468 3 2995 2541 0 3142 2594 8 3298 2684 6 3439 2774 1 3598 2842 14 3748 2940 0 3902 1530 466 355 1545 469 364 1553 508 419 1549 493 476 1544 523 508 1551 524 569 1569 539 655 1567 542 693 1601 494 747 1658 466 831 1676 504 964 1696 513 1052 1743 534 1203 1779 519 1305 1807 494 1402 1797 491 1495 1839 454 1610 1883 412 1759 1963 379 1915 2018 331 2048 2091 253 2185 2176 142 2370 2236 11 2529 2315 14 2683 2373 15 2839 2459 0 2986 2541 0 3142 2610 8 3320 2681 0 3453 2747 22 3600 2842 14 3741 2932 8 3902 1578 534 357 1582 534 384 1600 550 412 1586 558 454 1608 572 540 1598 594 571 1593 588 641 1589 568 696 1605 572 747 1650 525 827 1692 540 970 1722 566 1060 1778 576 1199 1819 564 1319 1819 558 1414 1817 540 1494 1878 522 1631 1909 491 1765 1992 462 1909 2032 414 2055 2107 347 2202 2189 262 2380 2254 124 2544 2313 10 2683 2376 8 2868 2469 5 3022 2523 0 3164 2608 0 3320 2688 0 3463 2763 0 3614 2829 7 3749 2934 6 3904 1595 592 361 1595 585 394 1631 594 447 1608 599 503 1606 609 540 1626 629 597 1627 639 664 1614 645 720 1616 658 787 1655 588 848 1722 612 973 1732 613 1083 1778 638 1235 1829 636 1335 1848 629 1438 1845 610 1526 1885 599 1636 1931 572 1816 2004 542 1950 2035 497 2080 2117 447 2234 2174 382 2389 2253 281 2556 2327 138 2714 2409 5 2875 2468 0 3028 2536 0 3159 2595 8 3298 2670 3 3455 2759 4 3614 2834 0 3775 2937 3 3926 1626 652 380 1620 668 419 1645 665 467 1638 681 499 1635 683 562 1662 694 618 1650 697 672 1670 708 761 1654 721 815 1646 701 879 1725 675 963 1751 697 1091 1790 738 1219 1843 736 1368 1858 722 1465 1859 700 1583 1924 673 1693 1972 643 1832 2016 634 1957 2066 597 2103 2133 552 2250 2200 489 2418 2261 420 2567 2320 333 2733 2398 206 2883 2461 50 3023 2543 13 3185 2595 8 3332 2674 3 3472 2730 0 3610 2842 0 3763 2928 5 3923 1654 750 393 1664 757 429 1675 751 462 1672 757 499 1669 766 571 1676 781 609 1683 773 696 1679 782 745 1687 790 827 1661 810 895 1749 757 998 1788 792 1100 1839 809 1250 1863 817 1373 1866 830 1476 1880 793 1584 1928 774 1719 1954 754 1843 2027 736 1984 2073 700 2123 2150 671 2283 2209 613 2422 2270 551 2600 2337 481 2729 2398 407 2885 2471 304 3043 2514 162 3178 2588 31 3305 2669 5 3483 2729 0 3632 2820 4 3781 2928 5 3910 1692 836 406 1707 863 438 1704 849 493 1711 851 533 1719 873 582 1722 866 650 1715 870 695 1735 875 782 1715 868 875 1716 904 961 1730 894 1006 1790 863 1104 1821 919 1263 1866 937 1411 1903 931 1519 1907 920 1621 1953 880 1735 1986 889 1885 2060 855 2032 2090 819 2148 2170 793 2318 2215 748 2445 2285 701 2594 2329 631 2761 2400 578 2913 2458 504 3047 2506 422 3192 2572 328 3330 2655 198 3463 2723 58 3606 2802 28 3795 2876 0 3918 1719 962 435 1731 967 475 1745 978 525 1740 966 537 1758 975 608 1763 978 667 1768 983 730 1771 978 790 1768 982 864 1785 994 962 1762 1005 1054 1789 975 1126 1851 1009 1252 1882 1060 1429 1917 1051 1560 1917 1050 1653 1973 1015 1774 2014 1005 1915 2064 984 2048 2112 942 2185 2181 926 2335 2228 877 2463 2285 844 2613 2313 790 2766 2372 745 2925 2439 694 3056 2509 631 3209 2566 551 3364 2625 491 3492 2714 408 3621 2785 339 3778 2887 271 3915 1720 1086 461 1732 1089 479 1736 1096 513 1744 1103 554 1772 1097 615 1773 1107 674 1822 1102 744 1840 1097 818 1818 1097 904 1833 1120 996 1820 1111 1078 1823 1124 1181 1857 1129 1299 1901 1170 1465 1954 1192 1615 1955 1177 1699 1990 1150 1821 2020 1136 1943 2102 1110 2083 2130 1096 2231 2168 1054 2366 2233 1016 2513 2281 970 2673 2329 928 2802 2371 895 2950 2445 848 3097 2490 794 3225 2557 743 3343 2607 690 3488 2669 651 3629 2750 602 3777 2846 553 3922 1725 1225 482 1749 1238 512 1725 1238 517 1756 1229 577 1778 1242 650 1781 1246 690 1805 1246 763 1825 1246 840 1864 1241 921 1880 1256 1026 1866 1254 1126 1859 1270 1241 1833 1282 1338 1906 1275 1472 1971 1331 1643 1978 1321 1745 2021 1284 1864 2065 1279 2007 2106 1250 2131 2139 1237 2261 2200 1201 2389 2237 1163 2550 2281 1131 2695 2318 1089 2831 2375 1044 2966 2431 1001 3092 2482 959 3239 2526 914 3383 2600 875 3499 2654 831 3633 2727 802 3764 2800 789 3917 1743 1376 474 1749 1388 539 1751 1376 532 1766 1386 578 1777 1396 615 1786 1402 686 1800 1391 753 1831 1378 836 1870 1394 932 1887 1396 1047 1903 1410 1140 1906 1406 1279 1912 1418 1405 1909 1420 1511 1980 1479 1693 1997 1491 1786 2033 1472 1916 2074 1442 2040 2142 1397 2177 2168 1376 2293 2212 1345 2448 2238 1310 2575 2281 1284 2725 2301 1242 2832 2342 1189 2959 2380 1167 3106 2437 1120 3224 2510 1083 3378 2554 1037 3507 2626 1004 3669 2707 1000 3792 2787 971 3935 1713 1528 498 1713 1529 499 1724 1527 543 1732 1543 581 1770 1534 647 1768 1557 694 1788 1556 796 1818 1546 876 1861 1566 968 1892 1579 1075 1913 1575 1177 1945 1571 1280 1953 1591 1417 1942 1596 1580 1983 1615 1716 2016 1625 1844 2051 1622 1971 2069 1614 2082 2120 1566 2217 2155 1548 2372 2171 1520 2476 2219 1477 2613 2275 1429 2750 2302 1395 2877 2346 1359 2993 2376 1315 3115 2425 1274 3260 2479 1247 3393 2535 1210 3517 2579 1197 3660 2668 1158 3805 2756 1158 3949 1667 1660 521 1658 1644 530 1674 1658 570 1684 1658 608 1710 1665 657 1720 1686 710 1755 1688 790 1778 1715 874 1833 1711 987 1861 1734 1080 1882 1732 1191 1905 1740 1318 1983 1746 1461 1999 1768 1620 1998 1762 1730 2041 1795 1877 2080 1788 2014 2098 1783 2130 2137 1736 2260 2155 1712 2415 2201 1666 2530 2202 1631 2644 2226 1607 2769 2259 1564 2890 2296 1519 3015 2354 1474 3150 2385 1450 3269 2443 1410 3407 2490 1379 3551 2562 1346 3667 2619 1330 3797 2722 1345 3965 1632 1781 569 1640 1782 612 1658 1788 620 1655 1796 654 1660 1811 689 1672 1813 759 1704 1822 818 1740 1822 898 1760 1837 987 1805 1846 1078 1817 1886 1209 1885 1887 1330 1927 1917 1474 1982 1935 1640 2054 1941 1794 2041 1958 1910 2104 1965 2087 2081 1949 2194 2129 1901 2324 2145 1883 2431 2191 1827 2573 2180 1806 2675 2233 1762 2811 2229 1733 2919 2242 1696 3047 2301 1663 3183 2348 1612 3289 2374 1578 3415 2451 1550 3549 2513 1532 3688 2577 1509 3827 2667 1516 3959 1590 1920 603 1591 1920 603 1613 1914 643 1614 1935 685 1630 1936 742 1626 1953 800 1653 1950 860 1676 1968 935 1699 1988 1040 1756 1985 1119 1781 1993 1239 1832 2035 1361 1870 2049 1499 1911 2065 1627 1990 2080 1794 2041 2113 1958 2121 2137 2129 2114 2113 2259 2122 2074 2351 2119 2038 2454 2137 1998 2563 2140 1958 2699 2148 1930 2822 2201 1889 2935 2217 1856 3061 2233 1803 3172 2292 1773 3303 2319 1746 3407 2364 1720 3538 2433 1703 3680 2520 1688 3842 2594 1688 3966 1559 2059 642 1559 2059 668 1568 2066 678 1570 2080 725 1591 2075 777 1607 2088 833 1619 2087 887 1637 2110 959 1685 2111 1066 1701 2130 1157 1744 2141 1272 1768 2161 1398 1806 2184 1538 1856 2194 1659 1925 2235 1802 1975 2252 1967 2064 2261 2122 2056 2268 2268 2076 2222 2385 2071 2202 2487 2093 2167 2627 2091 2153 2755 2119 2104 2862 2147 2060 2951 2148 2028 3057 2181 1983 3191 2207 1950 3311 2251 1917 3428 2319 1876 3559 2372 1861 3685 2455 1867 3842 2530 1859 3951 1532 2195 681 1542 2204 709 1528 2207 729 1560 2220 775 1550 2223 815 1559 2216 862 1585 2231 939 1611 2248 1025 1613 2266 1101 1674 2263 1212 1698 2281 1326 1720 2304 1433 1756 2316 1540 1811 2336 1699 1891 2350 1844 1933 2389 1999 2020 2413 2184 2009 2421 2300 2042 2406 2416 2039 2364 2513 2007 2305 2650 2024 2284 2750 2053 2257 2858 2099 2227 2975 2121 2190 3064 2130 2153 3192 2153 2113 3315 2200 2078 3425 2277 2059 3573 2303 2033 3688 2391 2036 3832 2487 2031 3970 1469 2357 725 1486 2345 739 1484 2375 765 1482 2362 777 1518 2376 859 1526 2370 909 1531 2372 968 1570 2377 1053 1576 2386 1157 1611 2407 1240 1642 2417 1365 1679 2419 1484 1698 2451 1600 1773 2453 1723 1832 2474 1855 1871 2504 2030 1942 2534 2167 1991 2531 2308 1996 2530 2442 2049 2537 2569 1996 2486 2681 2001 2420 2798 1983 2392 2882 1973 2366 2982 2022 2340 3083 2076 2320 3203 2106 2283 3310 2148 2245 3432 2191 2229 3564 2252 2209 3719 2323 2203 3840 2437 2209 3970 1421 2493 770 1436 2494 817 1435 2495 834 1431 2505 877 1456 2501 924 1458 2522 963 1492 2520 1046 1500 2515 1102 1546 2527 1202 1558 2539 1299 1583 2549 1409 1626 2571 1524 1664 2579 1637 1715 2580 1757 1763 2611 1899 1798 2642 2023 1918 2649 2196 1950 2663 2330 1959 2659 2457 1988 2675 2605 2009 2629 2713 1998 2599 2789 1976 2561 2881 1942 2515 3005 1922 2487 3109 1936 2440 3207 2002 2402 3313 2081 2410 3446 2139 2402 3585 2192 2372 3684 2282 2349 3831 2363 2354 3988 1361 2629 841 1371 2639 852 1378 2639 882 1404 2643 924 1406 2631 970 1428 2637 1020 1434 2643 1102 1447 2638 1164 1483 2656 1255 1510 2667 1343 1539 2685 1456 1584 2691 1567 1617 2697 1695 1674 2709 1800 1717 2730 1918 1754 2749 2049 1878 2771 2215 1914 2760 2350 1900 2780 2466 1905 2773 2578 1964 2791 2719 1998 2752 2827 1958 2722 2932 1949 2696 3035 1924 2643 3121 1902 2597 3224 1934 2557 3354 1964 2524 3451 2014 2513 3569 2131 2519 3713 2250 2553 3830 2362 2541 3988 1323 2764 942 1339 2764 954 1336 2749 971 1347 2773 1011 1354 2769 1060 1358 2778 1096 1387 2777 1175 1407 2779 1243 1424 2784 1320 1468 2799 1404 1496 2803 1500 1548 2813 1617 1586 2819 1740 1611 2843 1832 1662 2863 1962 1697 2869 2074 1823 2885 2230 1887 2898 2375 1861 2889 2474 1863 2893 2616 1882 2899 2732 1971 2888 2851 1973 2864 2962 1945 2821 3046 1935 2779 3144 1929 2742 3254 1889 2720 3357 1903 2690 3471 1931 2663 3588 2017 2640 3707 2117 2648 3858 2263 2681 3971 1287 2895 1023 1298 2894 1053 1300 2892 1062 1311 2894 1107 1318 2903 1138 1330 2912 1180 1338 2897 1245 1355 2901 1315 1396 2918 1410 1447 2914 1487 1447 2936 1574 1492 2950 1667 1533 2949 1771 1574 2954 1890 1626 2975 2009 1668 2978 2119 1776 3007 2258 1851 3002 2391 1802 2998 2503 1797 3023 2605 1835 3005 2738 1853 3006 2842 1978 2983 2985 1956 2947 3074 1929 2943 3188 1929 2898 3283 1896 2856 3373 1900 2840 3493 1904 2818 3606 1957 2803 3731 2051 2787 3849 2190 2830 4008 1254 3021 1100 1256 3029 1118 1288 3024 1133 1286 3028 1199 1311 3024 1210 1297 3031 1247 1326 3027 1313 1358 3037 1373 1359 3045 1450 1375 3045 1532 1437 3052 1619 1439 3066 1713 1493 3065 1818 1543 3081 1931 1593 3085 2047 1643 3100 2155 1768 3096 2281 1828 3116 2413 1784 3132 2509 1755 3115 2621 1758 3119 2732 1768 3109 2822 1829 3129 2953 1959 3090 3099 1944 3045 3193 1927 3035 3287 1882 3020 3402 1896 2985 3503 1920 2954 3620 1935 2952 3739 2002 2957 3855 2140 2969 3999 1224 3155 1228 1239 3165 1212 1243 3166 1223 1260 3164 1285 1274 3156 1313 1299 3167 1350 1306 3163 1406 1305 3173 1472 1336 3169 1537 1359 3187 1617 1389 3183 1692 1461 3193 1801 1484 3196 1885 1521 3198 1985 1569 3221 2102 1601 3215 2185 1743 3214 2351 1819 3228 2457 1770 3231 2538 1696 3227 2639 1686 3238 2748 1700 3232 2841 1734 3227 2955 1809 3239 3121 1939 3199 3198 1916 3180 3309 1906 3155 3383 1889 3129 3502 1885 3103 3639 1937 3106 3752 2019 3098 3884 2134 3135 4012 1244 3290 1360 1241 3293 1334 1237 3305 1368 1253 3297 1378 1270 3301 1413 1284 3293 1445 1297 3303 1505 1297 3307 1555 1346 3295 1633 1371 3314 1724 1393 3317 1783 1439 3314 1880 1472 3324 1950 1543 3321 2059 1574 3325 2152 1617 3340 2257 1747 3330 2380 1814 3349 2497 1754 3335 2576 1693 3341 2663 1621 3352 2764 1621 3343 2859 1653 3340 2991 1683 3350 3119 1771 3356 3243 1934 3310 3340 1912 3289 3426 1909 3281 3538 1896 3262 3640 1949 3244 3753 2039 3269 3898 2177 3295 4066 1279 3428 1488 1283 3419 1492 1281 3426 1497 1301 3426 1533 1320 3433 1579 1317 3417 1598 1339 3430 1643 1366 3426 1689 1367 3440 1736 1411 3444 1834 1459 3423 1894 1488 3440 1976 1517 3439 2046 1552 3445 2121 1582 3460 2209 1607 3465 2318 1742 3457 2446 1840 3451 2553 1774 3454 2627 1669 3459 2688 1569 3463 2761 1544 3474 2892 1575 3466 3021 1584 3467 3099 1644 3464 3221 1770 3463 3358 1913 3421 3432 1916 3393 3529 1901 3406 3655 1975 3391 3786 2053 3405 3915 2201 3434 4053 1369 3560 1674 1384 3567 1685 1370 3561 1680 1386 3566 1691 1407 3560 1753 1412 3571 1786 1440 3552 1806 1459 3566 1875 1479 3558 1920 1510 3565 1991 1530 3558 2040 1554 3571 2107 1570 3560 2160 1594 3567 2248 1635 3576 2306 1659 3599 2398 1775 3578 2519 1864 3575 2637 1800 3586 2699 1680 3588 2752 1544 3590 2805 1475 3591 2918 1476 3596 3020 1485 3590 3107 1514 3598 3233 1601 3591 3379 1726 3600 3491 1918 3551 3556 1928 3527 3677 1981 3530 3795 2071 3540 3953 2239 3583 4068 1540 3692 1884 1560 3700 1899 1545 3700 1907 1543 3704 1921 1565 3712 1953 1588 3709 1980 1585 3693 2004 1616 3705 2065 1634 3704 2099 1648 3695 2126 1657 3700 2196 1668 3706 2243 1694 3712 2321 1685 3707 2354 1707 3712 2419 1734 3714 2488 1872 3713 2624 1961 3714 2742 1879 3716 2795 1731 3730 2828 1581 3729 2874 1409 3712 2959 1397 3729 3073 1432 3740 3175 1427 3736 3285 1478 3720 3380 1610 3734 3516 1768 3734 3664 1961 3674 3696 1999 3672 3818 2102 3688 3947 2304 3728 4094 1756 3843 2122 1764 3851 2131 1765 3836 2142 1758 3844 2143 1788 3856 2182 1788 3843 2189 1822 3836 2230 1829 3832 2268 1840 3845 2290 1852 3843 2326 1854 3841 2365 1857 3838 2417 1866 3846 2468 1868 3845 2524 1875 3843 2580 1877 3852 2646 2022 3853 2745 2084 3850 2857 1978 3854 2884 1855 3857 2922 1694 3866 2961 1489 3852 3009 1367 3879 3109 1388 3884 3214 1428 3880 3321 1440 3878 3437 1506 3873 3565 1650 3882 3652 1848 3847 3771 2021 3804 3856 2142 3829 3988 2346 3861 4088 2057 3974 2401 2048 3990 2393 2074 3998 2403 2049 3983 2417 2073 3983 2433 2073 3983 2433 2084 3985 2469 2088 3982 2509 2097 3974 2546 2121 3983 2569 2105 3999 2578 2127 3980 2631 2107 3979 2656 2121 3990 2719 2120 3982 2738 2145 3998 2833 2217 3991 2907 2273 3991 2996 2190 4002 3028 2048 4002 3042 1879 4015 3079 1676 4023 3132 1417 4030 3181 1431 4040 3284 1471 4044 3402 1497 4039 3477 1525 4044 3606 1619 4053 3726 1784 4053 3827 2006 4001 3924 2198 3959 3990 2450 4006 4095 1609 385 393 1616 394 369 1623 426 393 1625 441 444 1641 450 491 1641 466 553 1640 479 602 1661 462 669 1666 386 696 1731 356 781 1760 380 906 1799 362 1015 1861 395 1154 1880 393 1266 1929 377 1378 1931 345 1478 1916 352 1584 1987 287 1730 2051 222 1876 2112 123 2009 2181 24 2164 2252 21 2332 2325 5 2489 2426 4 2670 2501 0 2799 2570 16 2966 2648 0 3112 2713 7 3266 2802 6 3445 2891 0 3592 2980 7 3753 3053 9 3877 1626 402 377 1641 426 361 1640 451 380 1632 473 428 1643 454 488 1641 475 540 1666 475 611 1653 484 675 1682 417 711 1710 389 773 1766 402 908 1801 404 1007 1862 432 1143 1890 421 1281 1928 411 1386 1932 387 1485 1931 369 1584 1979 328 1714 2051 262 1869 2118 173 2009 2183 64 2165 2268 11 2337 2335 12 2488 2420 16 2652 2489 13 2800 2559 0 2951 2648 0 3131 2742 0 3273 2793 0 3429 2863 1 3572 2974 0 3717 3053 8 3878 1625 435 361 1627 458 355 1641 468 396 1650 475 437 1672 492 494 1659 514 559 1663 529 618 1662 509 673 1677 476 726 1728 426 787 1782 419 914 1819 435 1040 1886 451 1165 1908 453 1281 1924 437 1387 1944 426 1484 1946 411 1598 1981 379 1731 2059 312 1870 2119 240 2012 2179 139 2175 2264 32 2337 2345 8 2497 2418 5 2644 2496 7 2821 2574 0 2989 2647 1 3130 2715 9 3285 2796 0 3439 2891 0 3592 2964 9 3742 3053 0 3895 1650 469 339 1637 492 349 1663 500 394 1670 515 437 1672 517 508 1686 531 550 1691 556 634 1689 542 696 1694 534 748 1740 463 794 1780 480 915 1819 481 1029 1858 501 1161 1919 508 1301 1937 507 1417 1938 472 1489 1954 468 1606 1996 421 1723 2054 384 1886 2142 299 2027 2201 238 2194 2259 107 2342 2348 23 2523 2420 7 2670 2503 22 2822 2571 0 2980 2648 0 3139 2723 11 3303 2794 0 3439 2882 9 3592 2952 7 3734 3031 0 3902 1681 525 314 1690 535 360 1686 549 403 1704 566 452 1701 575 518 1692 574 554 1687 604 628 1691 587 695 1715 578 746 1733 513 795 1790 522 942 1843 544 1049 1892 561 1178 1935 564 1298 1957 530 1409 1977 534 1516 1979 536 1640 2008 479 1756 2087 453 1902 2146 396 2036 2214 324 2198 2290 242 2374 2364 112 2535 2432 2 2676 2514 4 2844 2588 3 2995 2661 13 3155 2725 9 3303 2807 0 3451 2868 8 3604 2954 7 3753 3042 0 3914 1703 597 340 1712 592 384 1709 608 414 1714 614 479 1711 618 512 1731 618 576 1719 640 632 1722 646 702 1727 643 775 1743 613 827 1809 582 922 1842 607 1058 1886 623 1203 1933 641 1328 1975 628 1426 2003 618 1555 1995 609 1648 2035 574 1790 2093 542 1919 2158 496 2063 2230 447 2232 2288 376 2379 2382 282 2555 2450 138 2690 2514 9 2847 2590 4 3017 2648 3 3142 2720 14 3280 2799 6 3442 2889 4 3602 2949 0 3765 3029 0 3900 1736 657 357 1731 672 400 1746 666 427 1761 681 478 1757 677 536 1757 684 575 1760 697 656 1751 706 720 1755 728 802 1756 715 865 1812 650 928 1877 671 1057 1903 694 1184 1956 709 1329 1984 721 1460 2005 709 1577 2011 707 1670 2067 660 1818 2118 632 1943 2183 582 2082 2245 550 2246 2304 511 2407 2388 423 2546 2449 333 2705 2508 209 2860 2577 43 3001 2658 8 3173 2718 13 3315 2791 0 3465 2874 12 3613 2955 0 3759 3038 0 3916 1768 744 373 1776 754 408 1788 752 449 1791 762 480 1789 764 541 1799 773 593 1804 781 687 1804 771 739 1799 800 800 1791 787 881 1827 759 951 1881 756 1067 1932 784 1215 1979 815 1347 2003 830 1482 2018 811 1594 2024 790 1700 2084 766 1832 2137 742 1975 2199 710 2128 2263 679 2277 2319 621 2422 2403 573 2583 2446 501 2712 2524 414 2873 2575 314 3018 2617 186 3159 2713 44 3302 2780 6 3461 2851 0 3611 2944 4 3777 3019 0 3915 1819 855 398 1810 855 426 1807 846 473 1824 862 516 1822 864 559 1841 864 625 1827 869 689 1830 860 750 1843 879 831 1830 887 932 1842 894 1012 1888 849 1072 1920 880 1200 1994 924 1376 2036 937 1529 2051 923 1632 2055 900 1728 2095 880 1854 2137 859 1995 2205 825 2138 2262 793 2290 2333 762 2456 2407 716 2592 2452 652 2750 2520 586 2892 2573 512 3026 2648 438 3190 2704 339 3316 2773 208 3458 2833 73 3597 2920 36 3767 3002 16 3918 1850 966 397 1867 970 461 1858 964 485 1868 965 503 1866 980 578 1876 961 629 1879 976 694 1890 981 782 1878 989 859 1882 1001 934 1867 1006 1036 1909 981 1124 1943 979 1220 2008 1028 1392 2059 1051 1560 2073 1046 1663 2099 1023 1776 2139 996 1903 2160 982 2029 2236 950 2179 2287 928 2318 2355 896 2477 2390 854 2602 2445 807 2754 2501 758 2908 2557 704 3041 2618 632 3193 2688 562 3349 2749 486 3475 2829 424 3612 2904 350 3762 2981 312 3930 1882 1091 434 1890 1085 462 1875 1092 486 1892 1086 531 1896 1089 579 1909 1098 641 1930 1089 712 1927 1102 773 1942 1100 880 1926 1116 962 1935 1109 1043 1938 1121 1157 1954 1106 1257 2013 1135 1405 2066 1182 1576 2088 1177 1701 2096 1178 1817 2133 1152 1943 2202 1123 2076 2251 1092 2214 2297 1069 2353 2355 1044 2500 2416 992 2650 2457 946 2774 2506 918 2933 2556 856 3060 2609 815 3198 2684 761 3343 2748 698 3500 2810 662 3627 2882 614 3765 2964 579 3918 1879 1217 435 1873 1239 472 1882 1243 500 1898 1227 526 1921 1241 606 1930 1235 654 1936 1235 726 1957 1236 813 1987 1252 897 1999 1245 990 1989 1254 1108 1987 1252 1201 1971 1266 1306 2023 1258 1437 2075 1306 1600 2118 1330 1725 2137 1319 1851 2190 1294 1981 2228 1281 2115 2264 1248 2242 2320 1227 2382 2373 1188 2528 2413 1166 2677 2436 1099 2786 2512 1063 2953 2550 1024 3082 2604 971 3217 2654 925 3370 2720 885 3502 2786 853 3629 2859 809 3772 2932 790 3939 1867 1370 463 1882 1379 471 1890 1372 519 1901 1383 562 1912 1387 609 1929 1390 677 1944 1393 756 1971 1387 821 2019 1394 911 2040 1389 1013 2027 1396 1109 2038 1403 1249 2049 1402 1376 2044 1414 1492 2094 1443 1622 2159 1483 1796 2153 1476 1906 2193 1431 2017 2227 1425 2160 2294 1379 2293 2341 1374 2451 2375 1338 2565 2411 1303 2704 2461 1269 2837 2491 1226 2969 2527 1183 3100 2581 1144 3226 2649 1079 3361 2697 1054 3516 2763 1012 3657 2829 1000 3776 2906 987 3931 1869 1536 464 1868 1529 476 1880 1536 509 1888 1536 546 1896 1536 606 1914 1540 669 1933 1546 749 1957 1554 861 1980 1568 938 2019 1547 1030 2057 1562 1160 2101 1584 1284 2091 1580 1405 2081 1575 1536 2078 1576 1654 2168 1637 1834 2171 1645 1949 2207 1612 2073 2259 1591 2203 2313 1565 2352 2337 1538 2461 2365 1493 2604 2405 1460 2723 2445 1421 2861 2489 1377 2992 2515 1337 3105 2565 1298 3243 2619 1256 3378 2669 1220 3506 2725 1198 3656 2792 1178 3782 2869 1164 3925 1850 1690 496 1839 1689 498 1861 1695 545 1885 1683 594 1900 1697 645 1908 1699 697 1919 1715 758 1937 1721 852 1990 1714 972 1997 1716 1040 2048 1735 1173 2075 1730 1312 2129 1739 1444 2138 1745 1567 2145 1760 1705 2145 1763 1820 2203 1811 2020 2251 1785 2143 2275 1756 2261 2305 1731 2384 2336 1689 2501 2373 1656 2636 2389 1623 2750 2418 1579 2877 2449 1538 3014 2491 1504 3138 2540 1455 3265 2563 1427 3391 2622 1387 3534 2692 1361 3656 2759 1346 3794 2846 1344 3940 1812 1782 504 1810 1781 528 1821 1791 557 1822 1800 606 1843 1803 653 1870 1817 712 1890 1827 788 1911 1834 870 1950 1866 968 1982 1863 1087 2006 1894 1201 2061 1907 1317 2097 1918 1459 2131 1918 1614 2172 1939 1761 2179 1942 1892 2229 1966 2056 2253 1957 2187 2291 1933 2309 2308 1901 2424 2324 1868 2542 2341 1835 2653 2365 1780 2790 2404 1754 2906 2426 1721 3040 2438 1675 3164 2487 1625 3278 2538 1591 3414 2593 1552 3536 2634 1532 3667 2709 1508 3819 2798 1516 3958 1747 1944 576 1778 1929 586 1770 1935 607 1791 1931 644 1803 1956 713 1821 1940 761 1845 1961 829 1844 1969 899 1880 1988 1008 1924 2001 1109 1968 2012 1221 1999 2033 1342 2057 2057 1470 2099 2079 1625 2178 2118 1788 2226 2113 1950 2219 2136 2088 2283 2121 2250 2276 2097 2339 2294 2066 2461 2308 2031 2585 2314 2007 2697 2335 1958 2821 2372 1913 2927 2393 1877 3045 2401 1819 3167 2447 1786 3292 2491 1755 3405 2526 1719 3530 2587 1704 3680 2660 1689 3827 2734 1696 3975 1738 2067 603 1746 2076 626 1761 2091 659 1755 2073 678 1764 2100 736 1786 2084 813 1805 2100 851 1832 2110 948 1854 2120 1040 1868 2139 1131 1905 2143 1234 1945 2162 1385 1987 2177 1527 2045 2210 1648 2096 2241 1801 2178 2250 1950 2227 2276 2112 2285 2317 2301 2292 2276 2407 2277 2229 2506 2296 2199 2624 2290 2176 2727 2313 2134 2842 2331 2089 2964 2344 2048 3065 2373 2011 3198 2387 1964 3300 2436 1923 3437 2488 1882 3559 2530 1869 3692 2611 1861 3827 2694 1868 3975 1729 2221 656 1728 2206 667 1721 2200 670 1729 2215 718 1736 2228 776 1756 2240 828 1779 2253 907 1779 2261 980 1817 2270 1066 1843 2278 1185 1871 2284 1306 1906 2304 1417 1935 2324 1547 1991 2343 1689 2054 2349 1830 2107 2373 1989 2154 2429 2169 2236 2430 2293 2260 2423 2439 2237 2381 2536 2243 2358 2653 2259 2324 2765 2296 2300 2882 2296 2248 2984 2320 2215 3079 2315 2183 3181 2342 2134 3320 2378 2097 3426 2436 2058 3560 2475 2043 3693 2549 2032 3821 2651 2045 3969 1670 2361 693 1673 2362 710 1669 2368 738 1695 2375 767 1698 2376 829 1716 2369 881 1740 2380 949 1755 2393 1057 1772 2398 1125 1792 2427 1208 1822 2422 1331 1860 2427 1448 1906 2454 1608 1946 2464 1702 1989 2491 1830 2049 2505 1997 2113 2542 2175 2197 2552 2341 2218 2561 2447 2237 2545 2553 2217 2512 2675 2205 2461 2798 2209 2438 2883 2241 2402 3003 2248 2383 3104 2285 2333 3198 2291 2296 3319 2319 2251 3424 2373 2230 3559 2424 2216 3710 2484 2196 3830 2588 2217 3976 1638 2496 749 1640 2508 760 1642 2500 810 1654 2507 841 1654 2499 881 1680 2517 950 1679 2519 1017 1717 2534 1101 1739 2530 1177 1756 2542 1272 1774 2543 1379 1799 2560 1498 1854 2575 1614 1909 2591 1743 1940 2602 1872 2000 2632 2028 2042 2650 2157 2149 2652 2317 2183 2666 2446 2188 2675 2588 2203 2657 2706 2195 2633 2814 2187 2565 2901 2167 2525 3023 2166 2511 3113 2182 2466 3221 2243 2458 3334 2273 2439 3464 2321 2395 3581 2364 2371 3710 2439 2349 3820 2521 2363 3983 1594 2643 805 1600 2634 835 1605 2638 861 1613 2634 893 1623 2638 949 1640 2648 1009 1650 2637 1076 1665 2650 1146 1685 2661 1240 1708 2673 1321 1747 2682 1440 1768 2691 1548 1803 2704 1661 1874 2713 1795 1913 2723 1919 1961 2741 2051 2014 2770 2187 2110 2781 2352 2151 2789 2482 2153 2780 2608 2178 2786 2724 2210 2763 2838 2167 2736 2936 2148 2689 3028 2137 2651 3126 2116 2618 3238 2141 2576 3366 2173 2547 3469 2233 2536 3580 2335 2543 3738 2403 2525 3827 2473 2528 3980 1555 2764 895 1558 2767 925 1558 2758 940 1571 2764 988 1574 2769 1016 1587 2772 1074 1610 2776 1156 1621 2776 1214 1649 2796 1309 1661 2792 1377 1692 2796 1484 1732 2813 1596 1764 2824 1711 1812 2837 1839 1856 2856 1954 1905 2866 2078 1953 2888 2204 2078 2895 2369 2102 2888 2494 2092 2900 2594 2107 2902 2711 2160 2919 2843 2177 2869 2946 2153 2812 3019 2120 2798 3132 2107 2749 3250 2098 2723 3360 2107 2693 3477 2131 2668 3594 2196 2659 3715 2306 2662 3854 2453 2713 3996 1523 2903 1010 1522 2897 1034 1530 2891 1050 1528 2906 1080 1540 2899 1120 1553 2910 1153 1567 2912 1237 1573 2913 1290 1612 2914 1381 1631 2914 1457 1653 2928 1565 1684 2944 1641 1729 2944 1753 1773 2965 1902 1802 2970 1992 1875 2982 2120 1928 2986 2241 2050 3020 2399 2063 3018 2499 2056 3020 2622 2064 3003 2735 2073 3014 2839 2157 3003 2965 2173 2959 3068 2143 2946 3172 2096 2897 3257 2095 2859 3381 2090 2849 3482 2095 2805 3609 2128 2803 3719 2218 2790 3847 2340 2822 3999 1491 3021 1102 1495 3024 1113 1498 3017 1145 1522 3019 1175 1520 3033 1190 1544 3021 1254 1547 3033 1303 1561 3037 1369 1587 3039 1449 1605 3049 1520 1641 3065 1628 1661 3062 1723 1714 3076 1829 1743 3078 1931 1788 3092 2042 1847 3099 2167 1888 3109 2253 1992 3115 2403 2046 3126 2544 2025 3118 2652 2000 3117 2739 2002 3117 2838 2056 3138 2976 2148 3114 3091 2165 3072 3194 2115 3041 3258 2095 3022 3393 2094 3003 3507 2096 2958 3611 2101 2957 3750 2158 2956 3868 2298 2981 4016 1466 3160 1221 1496 3157 1236 1499 3160 1239 1503 3154 1266 1511 3155 1294 1516 3167 1345 1529 3163 1395 1546 3175 1462 1568 3183 1541 1600 3183 1606 1621 3180 1713 1657 3186 1787 1687 3190 1888 1717 3195 2009 1777 3205 2099 1799 3211 2197 1851 3216 2301 1976 3236 2445 2031 3226 2562 1990 3223 2647 1933 3231 2755 1949 3228 2865 1962 3224 2970 2034 3243 3102 2137 3207 3214 2121 3183 3321 2090 3163 3399 2078 3146 3508 2078 3119 3634 2120 3102 3751 2176 3104 3884 2279 3135 4025 1486 3292 1353 1475 3298 1348 1481 3296 1369 1503 3292 1387 1500 3296 1426 1523 3291 1468 1531 3298 1501 1550 3301 1577 1571 3298 1643 1596 3311 1729 1630 3320 1815 1659 3309 1875 1671 3324 1964 1729 3325 2050 1771 3321 2160 1804 3325 2255 1837 3339 2346 1959 3349 2499 2018 3343 2604 1948 3348 2679 1891 3338 2754 1868 3350 2852 1887 3346 2982 1911 3333 3093 1971 3357 3233 2099 3322 3311 2090 3293 3411 2079 3277 3523 2079 3266 3651 2112 3245 3753 2186 3250 3873 2297 3293 4040 1496 3428 1471 1499 3422 1500 1528 3431 1519 1519 3430 1549 1540 3440 1573 1546 3426 1609 1575 3440 1661 1583 3439 1708 1599 3431 1744 1621 3445 1835 1667 3430 1909 1691 3446 1989 1712 3438 2055 1732 3454 2125 1775 3454 2234 1802 3455 2331 1833 3452 2413 1973 3474 2549 2032 3471 2662 1954 3458 2737 1849 3455 2781 1797 3466 2880 1802 3481 3010 1823 3466 3114 1853 3466 3223 1959 3484 3358 2109 3424 3442 2103 3414 3534 2091 3397 3671 2131 3403 3783 2186 3411 3914 2330 3444 4052 1603 3552 1683 1613 3562 1696 1619 3566 1701 1620 3550 1698 1620 3556 1731 1644 3556 1803 1654 3560 1828 1664 3566 1878 1696 3569 1926 1727 3552 2000 1723 3563 2031 1763 3572 2119 1792 3570 2186 1806 3568 2262 1807 3573 2305 1846 3588 2389 1871 3583 2482 2002 3568 2623 2056 3584 2715 1969 3582 2774 1841 3593 2837 1744 3591 2909 1745 3581 3032 1741 3592 3120 1749 3587 3230 1814 3595 3371 1935 3598 3468 2095 3567 3567 2098 3543 3680 2124 3542 3785 2207 3547 3943 2357 3585 4082 1746 3705 1895 1759 3698 1898 1765 3697 1933 1758 3692 1930 1766 3688 1962 1782 3704 1988 1777 3700 1995 1804 3707 2057 1820 3703 2110 1839 3694 2144 1868 3704 2205 1849 3704 2246 1878 3705 2307 1883 3713 2384 1896 3700 2424 1926 3720 2501 1933 3719 2572 2063 3700 2696 2130 3705 2815 2004 3713 2839 1882 3721 2902 1745 3748 2988 1670 3721 3072 1683 3737 3172 1696 3737 3276 1700 3713 3371 1804 3740 3514 1943 3738 3651 2112 3683 3674 2153 3672 3795 2248 3680 3925 2411 3720 4094 1949 3836 2117 1943 3820 2118 1944 3834 2147 1944 3835 2165 1957 3845 2181 1977 3820 2186 1979 3829 2232 2006 3827 2275 1996 3835 2291 2027 3835 2332 2029 3826 2380 2032 3842 2429 2021 3849 2466 2048 3843 2523 2041 3845 2585 2054 3852 2648 2055 3852 2703 2164 3851 2812 2225 3851 2901 2113 3853 2935 1990 3862 2983 1829 3866 3026 1649 3869 3089 1639 3881 3206 1671 3884 3316 1675 3876 3434 1725 3870 3540 1821 3889 3660 1987 3868 3760 2177 3798 3851 2273 3811 3947 2466 3868 4086 2180 3975 2393 2188 3982 2418 2205 3974 2402 2194 3990 2439 2201 3976 2446 2235 3983 2466 2229 3983 2476 2210 3979 2504 2247 3978 2548 2251 3983 2562 2255 3981 2591 2253 3985 2623 2274 3983 2677 2263 3982 2727 2237 3991 2761 2260 3991 2826 2266 3990 2866 2348 3990 2948 2392 3999 3045 2302 4015 3077 2138 4009 3094 1970 4024 3139 1745 4033 3178 1695 4047 3296 1692 4034 3381 1719 4053 3488 1747 4047 3605 1797 4045 3717 1952 4045 3832 2109 4026 3901 2320 3949 3981 2555 3991 4095 1705 376 369 1724 402 376 1740 433 370 1748 426 404 1739 442 485 1756 459 526 1769 456 597 1762 453 646 1777 414 701 1829 323 755 1871 333 890 1925 340 1002 1961 360 1124 2003 364 1263 2036 353 1403 2067 328 1509 2085 311 1615 2083 302 1736 2144 229 1864 2215 90 2024 2292 22 2173 2366 0 2328 2462 9 2498 2525 0 2668 2590 4 2793 2678 9 2971 2749 0 3121 2830 11 3279 2906 0 3436 3020 1 3585 3062 0 3733 3150 9 3896 1716 400 354 1740 434 369 1762 443 386 1733 451 413 1783 465 476 1759 496 549 1770 476 608 1778 469 661 1787 458 728 1822 353 764 1869 361 883 1925 379 1002 1977 378 1121 2033 400 1284 2052 384 1394 2061 369 1499 2080 344 1616 2095 327 1727 2153 269 1868 2226 148 2016 2307 29 2177 2397 0 2337 2457 0 2490 2522 9 2643 2600 4 2804 2675 12 2970 2758 9 3130 2844 2 3284 2902 0 3436 2981 6 3589 3078 6 3752 3169 0 3896 1732 426 360 1762 458 368 1771 467 403 1757 476 421 1764 491 486 1787 494 536 1794 503 595 1773 500 660 1783 498 731 1839 403 783 1876 394 876 1907 392 1001 1984 426 1146 2030 434 1286 2056 426 1403 2078 410 1493 2093 378 1630 2112 377 1745 2169 305 1870 2218 220 2021 2305 82 2176 2382 8 2340 2458 0 2507 2529 4 2670 2606 4 2821 2692 1 2988 2746 3 3130 2841 2 3284 2901 0 3452 3002 1 3597 3079 7 3753 3143 16 3896 1755 477 342 1778 477 354 1773 509 403 1780 509 432 1778 538 482 1788 533 556 1804 543 610 1800 551 671 1794 524 738 1823 458 787 1899 437 886 1930 448 1016 1981 463 1141 2029 482 1300 2063 484 1415 2099 451 1516 2109 437 1627 2116 421 1751 2182 370 1886 2242 297 2046 2319 196 2190 2400 63 2347 2459 18 2501 2550 4 2659 2613 11 2822 2694 5 2982 2757 0 3139 2834 11 3302 2901 0 3451 2989 6 3598 3063 0 3733 3143 16 3896 1785 518 331 1802 541 368 1797 536 394 1809 557 450 1811 571 493 1813 559 549 1822 580 629 1825 590 697 1818 582 749 1852 541 803 1896 489 893 1933 505 1022 1977 531 1150 2049 547 1284 2086 555 1435 2102 534 1530 2110 511 1657 2128 493 1758 2185 453 1910 2257 380 2048 2338 314 2190 2418 206 2363 2483 74 2539 2555 0 2660 2631 7 2843 2681 9 2997 2744 5 3139 2827 14 3298 2896 4 3459 2980 15 3598 3061 0 3733 3165 2 3909 1820 590 341 1835 599 384 1836 595 412 1825 589 473 1834 630 520 1836 625 563 1836 634 626 1841 646 691 1840 636 771 1868 634 845 1899 565 886 1944 573 1001 1983 593 1159 2045 615 1309 2101 627 1447 2127 615 1561 2117 596 1664 2137 584 1790 2201 532 1912 2273 486 2076 2338 414 2228 2413 343 2381 2492 258 2557 2566 131 2689 2622 9 2843 2677 0 2981 2761 7 3151 2830 14 3297 2907 11 3452 2979 16 3603 3036 10 3759 3134 7 3900 1849 665 347 1854 671 393 1860 669 423 1865 682 462 1852 697 522 1881 684 583 1878 693 655 1870 696 720 1874 715 780 1888 710 872 1890 664 917 1950 645 1018 2022 665 1168 2059 697 1322 2111 727 1478 2135 708 1598 2162 681 1700 2163 685 1818 2207 639 1938 2299 594 2101 2361 543 2258 2414 477 2418 2511 423 2551 2566 346 2705 2625 226 2869 2681 66 3004 2774 6 3160 2821 11 3302 2901 9 3469 2965 15 3613 3055 0 3758 3130 6 3905 1866 744 369 1898 755 406 1875 758 436 1877 764 478 1892 779 522 1893 775 585 1903 769 645 1898 785 724 1905 789 794 1934 801 898 1927 792 971 1950 737 1048 2009 758 1180 2072 788 1322 2110 821 1481 2158 812 1628 2172 790 1732 2173 788 1841 2236 744 1964 2305 714 2121 2377 674 2284 2440 604 2422 2512 563 2575 2578 517 2724 2625 434 2872 2681 329 3023 2762 200 3172 2831 42 3295 2878 14 3463 2957 9 3615 3036 9 3777 3136 7 3924 1926 853 387 1932 847 432 1948 864 461 1922 855 485 1936 872 561 1946 866 602 1946 864 658 1930 870 724 1950 886 814 1948 891 908 1967 896 993 1962 858 1053 2019 856 1170 2096 896 1338 2143 928 1512 2169 937 1645 2196 913 1746 2205 902 1857 2245 874 1991 2305 835 2143 2377 804 2293 2446 763 2444 2501 716 2589 2568 668 2737 2611 608 2881 2692 537 3018 2751 458 3178 2804 365 3315 2873 253 3456 2962 120 3623 3008 51 3761 3115 47 3898 1983 961 399 1987 961 440 1994 966 477 1975 965 486 1987 964 545 1999 978 625 1995 971 685 1996 979 753 2008 978 831 2010 978 936 1992 1000 1025 1986 987 1113 2049 969 1197 2109 992 1366 2166 1037 1518 2183 1061 1654 2246 1038 1807 2243 1031 1900 2295 1000 2024 2332 966 2180 2408 928 2320 2473 906 2488 2519 863 2613 2570 831 2750 2635 773 2898 2685 719 3047 2741 657 3203 2800 589 3332 2867 522 3482 2948 456 3621 2998 395 3751 3091 370 3939 2016 1092 409 2016 1085 431 2031 1101 474 2011 1084 503 2032 1101 576 2050 1107 631 2042 1101 694 2044 1090 780 2057 1097 855 2056 1103 935 2048 1107 1050 2025 1113 1148 2056 1106 1245 2109 1115 1372 2174 1154 1545 2210 1198 1705 2244 1182 1833 2248 1167 1920 2296 1125 2049 2359 1106 2207 2420 1070 2347 2480 1062 2492 2525 1014 2627 2575 970 2751 2635 938 2928 2684 880 3051 2734 836 3191 2796 773 3339 2861 734 3488 2931 685 3625 2985 646 3768 3074 635 3923 2013 1233 407 2013 1233 436 2021 1242 479 2023 1227 508 2039 1238 582 2058 1243 633 2072 1230 707 2088 1240 788 2101 1253 880 2102 1238 970 2105 1245 1094 2084 1240 1176 2083 1265 1300 2126 1250 1400 2177 1275 1564 2231 1317 1725 2268 1338 1877 2282 1313 1974 2327 1285 2099 2386 1255 2245 2445 1227 2392 2494 1207 2528 2534 1169 2656 2580 1134 2797 2619 1096 2946 2669 1042 3067 2725 1004 3213 2767 963 3366 2826 908 3488 2905 879 3641 2976 851 3784 3058 840 3918 2013 1383 447 2002 1392 438 2014 1368 482 2032 1387 530 2038 1376 591 2057 1390 644 2080 1377 713 2118 1410 806 2140 1385 893 2146 1384 994 2162 1386 1093 2166 1396 1218 2148 1386 1332 2145 1409 1459 2178 1391 1559 2246 1462 1763 2294 1492 1899 2298 1463 2009 2360 1450 2144 2418 1418 2307 2442 1395 2425 2507 1366 2553 2533 1339 2681 2578 1299 2828 2609 1248 2947 2655 1203 3080 2709 1180 3221 2771 1127 3360 2813 1087 3511 2883 1057 3648 2946 1036 3769 3025 1026 3944 2019 1536 434 2013 1542 435 2017 1536 478 2029 1533 531 2038 1525 566 2063 1548 647 2077 1540 720 2096 1540 822 2136 1566 918 2171 1550 1014 2210 1559 1146 2208 1566 1251 2199 1566 1374 2184 1575 1497 2178 1568 1606 2261 1592 1766 2327 1659 1952 2331 1626 2063 2375 1614 2203 2441 1588 2337 2474 1558 2461 2509 1511 2598 2526 1486 2714 2570 1458 2856 2611 1409 2990 2633 1376 3106 2695 1324 3243 2752 1298 3382 2783 1245 3497 2849 1221 3651 2910 1196 3774 3002 1199 3925 2014 1674 441 2001 1688 465 2006 1703 508 2025 1695 556 2029 1690 589 2047 1702 664 2068 1704 739 2109 1708 815 2138 1710 928 2155 1714 1028 2196 1725 1145 2236 1723 1288 2266 1728 1412 2268 1732 1536 2243 1736 1672 2253 1747 1788 2333 1795 1973 2357 1804 2121 2407 1771 2249 2432 1758 2373 2469 1720 2488 2500 1684 2611 2521 1647 2743 2561 1617 2875 2593 1573 2994 2619 1525 3132 2670 1493 3265 2715 1454 3394 2742 1416 3519 2828 1377 3648 2894 1355 3801 2955 1354 3937 2013 1839 462 2014 1838 496 2001 1846 511 2017 1846 569 2017 1846 605 2037 1858 683 2064 1863 758 2087 1883 850 2125 1879 942 2150 1879 1076 2189 1880 1175 2221 1906 1294 2259 1893 1428 2278 1915 1561 2310 1918 1722 2316 1924 1852 2332 1927 1992 2381 1975 2185 2415 1951 2308 2432 1928 2432 2464 1886 2539 2492 1859 2664 2513 1814 2776 2532 1775 2888 2573 1733 3028 2598 1691 3149 2639 1655 3264 2685 1615 3411 2711 1577 3527 2776 1544 3669 2847 1520 3807 2929 1516 3949 1921 1936 510 1936 1946 559 1937 1946 546 1962 1955 601 1987 1967 657 1998 1967 726 2015 1972 785 2014 1975 872 2059 2005 964 2117 2035 1105 2157 2046 1199 2195 2061 1316 2228 2075 1459 2264 2078 1604 2325 2104 1769 2351 2096 1924 2388 2096 2063 2405 2144 2233 2437 2121 2338 2455 2097 2454 2472 2064 2575 2479 2023 2680 2502 1988 2807 2508 1948 2933 2552 1897 3043 2574 1864 3169 2605 1800 3293 2645 1789 3417 2693 1745 3550 2740 1714 3671 2791 1704 3820 2880 1712 3966 1910 2092 561 1917 2084 591 1918 2085 596 1934 2098 660 1941 2100 696 1958 2106 782 1969 2110 818 1994 2117 909 2033 2116 1006 2059 2148 1134 2078 2160 1214 2125 2170 1358 2177 2194 1505 2243 2222 1628 2304 2243 1788 2342 2260 1937 2399 2276 2114 2438 2308 2276 2455 2292 2422 2462 2276 2505 2466 2236 2633 2472 2195 2720 2494 2152 2844 2495 2105 2955 2528 2069 3077 2534 2025 3179 2567 1972 3293 2603 1955 3424 2642 1915 3539 2698 1876 3688 2757 1875 3847 2855 1884 3989 1882 2231 575 1891 2239 605 1901 2232 637 1895 2238 671 1900 2245 728 1936 2260 799 1949 2257 867 1968 2279 965 1996 2268 1046 2024 2284 1157 2043 2300 1287 2092 2318 1401 2134 2331 1522 2184 2340 1670 2225 2364 1819 2264 2366 1967 2343 2391 2153 2404 2438 2300 2465 2465 2465 2465 2429 2551 2450 2390 2668 2459 2363 2775 2476 2316 2877 2465 2280 2986 2509 2244 3101 2497 2205 3196 2524 2153 3326 2571 2118 3447 2590 2077 3554 2643 2061 3695 2718 2039 3817 2790 2047 3960 1861 2384 659 1855 2369 679 1861 2374 704 1869 2390 745 1886 2377 801 1896 2391 869 1925 2394 929 1928 2406 1002 1958 2400 1095 1974 2421 1180 2012 2421 1318 2043 2448 1446 2082 2458 1564 2129 2467 1704 2161 2503 1833 2224 2506 1982 2286 2522 2145 2350 2556 2300 2408 2576 2447 2439 2592 2589 2413 2528 2690 2428 2481 2821 2450 2485 2935 2451 2430 3024 2443 2395 3103 2475 2361 3218 2478 2308 3323 2507 2283 3454 2551 2245 3573 2614 2223 3720 2645 2218 3831 2732 2207 3983 1824 2514 710 1823 2509 736 1823 2508 760 1835 2519 805 1841 2511 838 1863 2530 925 1870 2524 988 1905 2545 1079 1912 2541 1144 1925 2550 1245 1973 2557 1357 2004 2575 1467 2025 2577 1589 2087 2602 1743 2119 2595 1879 2157 2625 2006 2236 2655 2165 2296 2667 2318 2379 2683 2469 2401 2691 2593 2398 2690 2723 2400 2648 2821 2384 2609 2919 2380 2560 3020 2391 2535 3134 2435 2516 3250 2430 2479 3348 2439 2421 3445 2489 2400 3575 2564 2381 3716 2605 2369 3826 2672 2370 3982 1786 2643 774 1790 2645 809 1812 2641 837 1801 2645 866 1812 2649 917 1828 2653 984 1843 2664 1056 1853 2656 1135 1871 2662 1211 1897 2677 1316 1929 2677 1410 1956 2699 1530 1998 2708 1644 2047 2719 1771 2092 2724 1907 2140 2740 2042 2194 2760 2188 2232 2771 2331 2335 2788 2475 2367 2804 2618 2378 2819 2719 2399 2788 2862 2364 2755 2951 2355 2708 3051 2325 2667 3144 2331 2631 3256 2355 2594 3382 2396 2583 3496 2444 2570 3611 2503 2546 3744 2541 2528 3825 2605 2506 3983 1761 2764 863 1766 2780 887 1779 2776 926 1778 2768 955 1788 2776 990 1805 2780 1058 1820 2780 1127 1818 2790 1212 1842 2792 1290 1855 2806 1363 1897 2808 1469 1900 2818 1584 1968 2818 1703 2004 2840 1827 2045 2852 1947 2083 2856 2078 2159 2863 2200 2205 2890 2334 2300 2897 2496 2334 2910 2627 2323 2918 2733 2348 2937 2867 2359 2909 2957 2362 2856 3073 2316 2821 3165 2315 2771 3262 2270 2721 3372 2307 2709 3488 2339 2685 3612 2427 2683 3740 2504 2695 3872 2591 2702 4003 1744 2902 965 1743 2899 985 1740 2904 996 1761 2898 1034 1758 2901 1064 1781 2913 1126 1775 2922 1199 1791 2914 1271 1812 2924 1346 1838 2916 1446 1858 2918 1521 1903 2935 1653 1921 2944 1751 1962 2961 1872 2003 2959 1998 2068 2968 2119 2114 2967 2220 2161 3008 2360 2247 3028 2509 2294 3026 2647 2274 3012 2727 2300 3023 2853 2339 3038 2979 2350 3000 3076 2324 2954 3172 2294 2917 3262 2270 2877 3389 2267 2858 3483 2276 2811 3588 2322 2810 3738 2390 2800 3874 2499 2830 4010 1703 3037 1087 1686 3049 1101 1703 3033 1113 1707 3034 1148 1734 3028 1188 1735 3049 1242 1753 3034 1286 1771 3040 1349 1782 3040 1441 1811 3041 1529 1835 3053 1612 1876 3055 1724 1887 3065 1829 1922 3072 1917 1990 3076 2060 2023 3096 2167 2072 3106 2263 2112 3121 2392 2208 3133 2523 2248 3121 2661 2220 3130 2736 2221 3139 2865 2230 3134 2991 2310 3134 3091 2317 3088 3197 2295 3071 3301 2275 3023 3393 2279 2998 3512 2272 2974 3625 2271 2957 3743 2320 2956 3880 2453 2973 4024 1688 3164 1202 1691 3167 1206 1714 3163 1239 1704 3158 1261 1711 3162 1302 1726 3153 1339 1745 3174 1397 1757 3176 1468 1782 3171 1532 1799 3175 1614 1823 3183 1719 1854 3174 1797 1887 3184 1885 1922 3189 1999 1959 3196 2103 1994 3210 2217 2046 3218 2325 2066 3240 2421 2163 3238 2543 2233 3244 2688 2167 3224 2763 2164 3229 2868 2187 3249 2984 2223 3234 3099 2306 3232 3213 2288 3214 3324 2288 3164 3397 2249 3154 3498 2252 3115 3639 2268 3112 3752 2321 3103 3893 2420 3119 4031 1692 3295 1357 1690 3298 1354 1694 3291 1368 1704 3295 1394 1729 3288 1430 1713 3298 1456 1766 3308 1521 1772 3298 1576 1792 3294 1649 1809 3307 1729 1833 3314 1809 1869 3312 1891 1886 3308 1969 1915 3321 2060 1946 3323 2147 1992 3322 2258 2029 3343 2352 2060 3348 2451 2162 3346 2579 2200 3358 2712 2137 3345 2770 2099 3351 2862 2106 3369 3012 2126 3351 3101 2169 3361 3217 2277 3330 3314 2276 3315 3433 2273 3293 3539 2255 3266 3645 2279 3255 3747 2349 3267 3902 2414 3263 4038 1717 3428 1483 1731 3424 1520 1734 3428 1524 1742 3428 1547 1749 3429 1572 1761 3426 1626 1778 3439 1672 1792 3430 1701 1830 3418 1780 1846 3433 1834 1875 3431 1936 1879 3431 1998 1905 3444 2067 1926 3449 2142 1982 3442 2234 1993 3442 2329 1999 3463 2421 2042 3469 2501 2162 3465 2655 2198 3456 2750 2102 3474 2811 2047 3473 2905 2033 3483 3024 2031 3472 3094 2054 3465 3218 2143 3474 3359 2241 3443 3432 2267 3419 3533 2238 3402 3657 2287 3406 3786 2344 3415 3926 2449 3424 4046 1795 3555 1685 1804 3558 1693 1785 3547 1716 1819 3568 1741 1826 3550 1764 1819 3557 1789 1846 3568 1837 1881 3566 1893 1884 3559 1933 1908 3573 2001 1925 3555 2048 1943 3564 2109 1961 3572 2189 1977 3574 2257 1989 3560 2322 2015 3589 2420 2025 3583 2482 2055 3584 2583 2168 3589 2697 2219 3597 2809 2124 3597 2852 2020 3589 2940 1959 3596 3006 1965 3586 3135 1970 3593 3242 2045 3603 3372 2123 3607 3486 2250 3558 3548 2266 3548 3697 2293 3549 3777 2338 3548 3931 2457 3584 4064 1915 3699 1902 1921 3705 1920 1930 3702 1919 1929 3695 1938 1943 3689 1963 1947 3692 1994 1957 3701 2031 1971 3692 2059 1981 3700 2103 2007 3715 2167 2009 3701 2221 2043 3706 2274 2045 3704 2339 2070 3708 2387 2066 3708 2444 2098 3707 2514 2091 3706 2571 2104 3720 2670 2216 3721 2794 2265 3730 2874 2144 3714 2923 2044 3738 2994 1921 3733 3055 1920 3728 3159 1919 3726 3263 1920 3743 3387 1992 3720 3508 2099 3727 3641 2271 3675 3698 2299 3673 3809 2363 3705 3938 2510 3731 4080 2090 3835 2139 2096 3843 2164 2090 3836 2165 2093 3838 2169 2106 3842 2190 2102 3832 2204 2137 3830 2250 2144 3855 2293 2149 3841 2307 2160 3851 2360 2166 3841 2395 2167 3840 2452 2181 3839 2496 2194 3845 2538 2186 3835 2586 2182 3845 2647 2203 3860 2719 2212 3852 2781 2303 3852 2876 2332 3853 2972 2227 3858 3007 2124 3868 3069 1942 3863 3100 1874 3876 3208 1883 3874 3303 1925 3872 3423 1891 3877 3538 2019 3869 3671 2144 3892 3794 2324 3815 3834 2400 3835 3968 2564 3887 4095 2327 3983 2428 2324 3967 2419 2333 3988 2435 2342 3981 2466 2334 3983 2480 2340 3976 2485 2347 3996 2511 2351 3977 2525 2350 3976 2546 2363 3992 2601 2377 3988 2611 2373 3983 2649 2379 3983 2662 2375 3983 2727 2365 3994 2769 2373 3994 2818 2373 3990 2866 2380 4005 2934 2462 3999 3015 2487 4008 3118 2394 4005 3130 2247 4021 3174 2076 4033 3200 1892 4038 3254 1915 4047 3399 1919 4031 3495 1930 4044 3596 1963 4033 3705 2092 4052 3823 2237 4035 3927 2428 3968 3991 2639 4017 4095 1818 395 369 1829 406 354 1838 451 354 1866 443 411 1860 460 460 1870 460 517 1899 462 578 1885 466 647 1886 456 705 1912 324 732 1952 295 842 2017 301 959 2069 308 1085 2111 314 1241 2180 335 1408 2231 313 1515 2225 271 1613 2232 237 1721 2224 212 1827 2317 73 2009 2411 0 2173 2475 10 2338 2578 10 2490 2647 0 2661 2707 0 2809 2792 3 2968 2861 4 3121 2950 10 3273 3025 0 3423 3126 1 3567 3181 10 3744 3267 6 3886 1835 411 360 1845 428 338 1854 450 361 1864 460 422 1876 479 462 1877 486 516 1893 476 582 1901 482 655 1883 466 715 1933 373 740 1985 327 861 2015 332 971 2096 348 1131 2128 354 1232 2196 371 1399 2206 348 1503 2248 313 1617 2240 295 1721 2255 277 1843 2323 135 1999 2414 32 2181 2503 14 2323 2575 11 2490 2650 6 2659 2716 9 2819 2795 3 2962 2873 13 3125 2944 2 3273 3013 2 3422 3115 1 3562 3216 15 3729 3280 0 3896 1839 435 344 1869 462 329 1883 477 359 1887 483 425 1892 498 467 1903 510 512 1916 518 593 1905 520 651 1892 509 714 1924 427 757 1960 366 833 2029 357 956 2074 393 1100 2148 383 1241 2201 420 1411 2239 389 1521 2236 356 1633 2242 343 1744 2288 311 1854 2348 196 2009 2420 55 2163 2508 11 2338 2581 5 2508 2635 9 2674 2712 9 2821 2790 3 2960 2869 12 3130 2952 12 3258 3023 1 3430 3094 1 3560 3189 9 3721 3267 6 3895 1877 470 324 1882 494 333 1896 508 370 1917 515 424 1910 528 484 1917 531 541 1922 541 610 1910 544 651 1904 536 727 1928 502 783 1983 406 843 2052 413 971 2106 425 1096 2140 437 1244 2208 465 1418 2234 449 1520 2271 429 1650 2257 411 1739 2273 380 1856 2348 295 2026 2410 174 2180 2507 30 2343 2590 0 2507 2655 0 2665 2745 11 2823 2797 6 2975 2859 1 3119 2944 16 3281 3023 0 3432 3099 9 3569 3170 0 3714 3267 6 3886 1902 534 333 1910 545 366 1918 544 389 1918 552 427 1927 582 472 1931 573 555 1914 588 600 1930 584 668 1941 590 737 1930 569 798 1989 457 849 2041 476 979 2085 489 1115 2141 510 1263 2230 529 1439 2255 532 1540 2265 504 1673 2303 466 1770 2304 448 1884 2372 380 2036 2459 296 2193 2513 163 2357 2580 39 2519 2659 0 2667 2741 10 2824 2793 8 2982 2886 13 3138 2938 12 3280 3013 0 3435 3082 17 3581 3181 0 3718 3278 2 3886 1942 609 319 1933 611 360 1938 609 395 1941 603 448 1933 626 500 1938 623 544 1942 638 604 1950 644 685 1978 634 743 1949 643 820 2015 545 855 2048 535 950 2096 564 1148 2154 583 1286 2217 616 1435 2266 610 1570 2274 594 1679 2293 570 1799 2325 557 1913 2372 479 2054 2452 424 2235 2515 339 2365 2597 229 2526 2660 100 2659 2742 21 2833 2788 10 2980 2888 11 3141 2939 16 3288 3023 3 3414 3091 17 3572 3152 13 3726 3251 10 3880 1954 668 311 1956 668 370 1970 668 382 1979 684 443 1975 692 494 1996 697 570 1976 700 632 1994 710 710 2008 716 772 1986 711 844 2002 681 912 2074 615 989 2123 641 1138 2173 667 1280 2234 697 1440 2289 700 1601 2313 684 1722 2300 674 1819 2319 652 1932 2385 590 2073 2472 545 2260 2534 476 2392 2606 415 2517 2676 334 2680 2727 244 2843 2805 82 2988 2893 10 3144 2938 13 3285 3031 14 3463 3082 12 3594 3159 10 3744 3255 9 3886 1999 750 369 2002 765 380 2002 756 412 1998 764 445 2020 772 505 2023 775 569 2015 775 626 2018 782 698 2034 782 789 2029 782 868 2018 788 942 2061 714 998 2120 731 1149 2178 762 1290 2248 795 1460 2285 820 1622 2316 799 1731 2321 785 1841 2345 763 1942 2421 717 2100 2494 668 2283 2565 612 2421 2621 569 2566 2671 527 2709 2726 454 2847 2811 371 3029 2880 223 3153 2956 62 3292 2990 20 3439 3079 11 3593 3153 15 3763 3238 4 3916 2041 847 329 2058 854 368 2055 852 401 2038 862 432 2067 855 500 2067 864 573 2071 868 643 2067 873 708 2053 900 792 2059 890 883 2067 897 988 2086 871 1054 2132 832 1155 2209 853 1288 2266 897 1485 2332 946 1635 2329 928 1770 2355 908 1876 2365 886 1982 2436 836 2139 2497 793 2284 2554 767 2455 2641 716 2590 2691 695 2725 2752 640 2877 2808 567 2999 2890 486 3172 2936 398 3324 2994 282 3461 3093 167 3628 3153 75 3754 3233 64 3902 2099 968 365 2100 966 422 2107 966 440 2101 968 455 2103 973 529 2105 969 583 2110 982 662 2107 976 728 2116 983 810 2121 983 902 2111 994 996 2117 998 1098 2144 933 1146 2220 951 1311 2282 1003 1492 2329 1068 1660 2375 1052 1798 2385 1027 1910 2409 1003 2020 2462 971 2168 2522 939 2310 2578 901 2470 2643 881 2607 2701 837 2751 2763 800 2893 2820 743 3040 2871 680 3182 2930 620 3320 2986 539 3472 3077 488 3626 3159 438 3782 3221 426 3934 2132 1087 370 2139 1081 391 2164 1100 430 2142 1085 483 2162 1087 526 2158 1103 595 2160 1103 665 2146 1111 758 2176 1097 832 2164 1107 918 2148 1107 1017 2161 1113 1120 2153 1112 1237 2216 1088 1325 2273 1129 1491 2333 1180 1676 2378 1200 1822 2398 1168 1935 2426 1161 2053 2490 1134 2213 2555 1075 2348 2613 1059 2484 2643 1026 2620 2719 999 2755 2747 961 2883 2811 906 3036 2872 866 3194 2921 808 3331 2987 749 3466 3067 712 3634 3133 688 3782 3202 678 3940 2149 1238 361 2158 1237 423 2171 1233 455 2177 1225 493 2191 1233 530 2207 1239 616 2222 1240 679 2237 1232 770 2227 1235 840 2230 1243 948 2208 1227 1059 2230 1231 1163 2222 1249 1268 2223 1225 1359 2311 1248 1533 2352 1307 1697 2399 1353 1868 2424 1342 1985 2454 1302 2094 2524 1255 2222 2570 1240 2372 2611 1215 2511 2662 1195 2644 2718 1169 2802 2743 1130 2910 2797 1075 3049 2840 1037 3173 2898 989 3348 2962 941 3493 3039 909 3655 3116 875 3783 3193 873 3929 2155 1364 376 2159 1393 416 2173 1378 456 2171 1375 480 2197 1388 554 2206 1390 618 2229 1396 663 2248 1389 755 2282 1384 867 2277 1369 942 2288 1381 1078 2290 1388 1198 2281 1376 1296 2246 1397 1427 2309 1372 1537 2367 1432 1711 2419 1499 1908 2456 1484 2025 2482 1471 2160 2545 1441 2303 2570 1396 2428 2622 1373 2521 2663 1359 2680 2705 1321 2804 2749 1278 2943 2804 1239 3083 2826 1177 3207 2897 1141 3350 2946 1105 3506 2997 1067 3627 3086 1065 3782 3142 1049 3941 2153 1530 392 2150 1540 397 2163 1542 432 2193 1542 500 2196 1538 552 2205 1546 608 2220 1546 687 2243 1549 791 2273 1552 873 2302 1547 980 2349 1539 1112 2334 1549 1208 2334 1544 1333 2320 1559 1450 2309 1569 1594 2389 1559 1731 2423 1646 1925 2488 1657 2070 2501 1641 2195 2551 1588 2327 2610 1568 2445 2635 1541 2569 2683 1519 2716 2701 1487 2845 2744 1441 2961 2779 1399 3091 2817 1358 3216 2876 1314 3371 2927 1291 3501 2978 1243 3644 3057 1234 3782 3132 1228 3922 2139 1697 393 2156 1699 434 2157 1696 473 2170 1686 504 2188 1701 550 2195 1704 634 2215 1694 696 2242 1704 799 2260 1717 903 2299 1709 1002 2343 1720 1115 2389 1725 1260 2395 1720 1394 2392 1726 1491 2382 1734 1622 2376 1722 1755 2447 1762 1926 2490 1817 2111 2524 1787 2239 2567 1780 2375 2609 1744 2481 2653 1719 2619 2678 1687 2756 2710 1643 2849 2745 1597 2996 2776 1559 3119 2791 1513 3249 2854 1463 3379 2892 1438 3498 2962 1404 3642 3024 1385 3801 3092 1389 3936 2159 1837 384 2157 1847 417 2161 1847 442 2176 1863 507 2195 1842 565 2205 1856 635 2219 1881 724 2251 1865 808 2284 1874 915 2302 1884 1046 2345 1877 1142 2372 1888 1267 2415 1887 1417 2461 1893 1551 2454 1900 1701 2424 1897 1817 2424 1901 1950 2491 1966 2146 2547 1973 2293 2584 1948 2422 2616 1907 2536 2646 1885 2634 2670 1852 2768 2693 1809 2900 2737 1751 3000 2756 1721 3151 2787 1686 3268 2825 1643 3402 2871 1606 3532 2915 1560 3650 2993 1549 3800 3074 1542 3952 2132 1979 481 2136 1986 502 2152 1987 516 2162 1992 551 2177 2001 591 2195 1995 696 2215 2010 752 2233 2017 872 2261 2039 935 2295 2049 1071 2316 2043 1165 2351 2053 1288 2390 2069 1418 2453 2079 1577 2486 2078 1726 2503 2073 1870 2480 2088 2018 2506 2098 2181 2571 2145 2356 2593 2119 2463 2626 2073 2575 2652 2046 2677 2669 2007 2784 2670 1983 2935 2731 1935 3046 2739 1880 3160 2767 1841 3272 2789 1790 3398 2840 1758 3524 2876 1728 3653 2935 1712 3817 3000 1697 3943 2068 2108 513 2069 2100 544 2073 2115 564 2102 2100 619 2105 2101 669 2135 2117 756 2147 2119 800 2180 2134 898 2209 2147 992 2223 2165 1094 2269 2201 1198 2319 2206 1348 2359 2224 1471 2427 2231 1629 2458 2230 1755 2495 2252 1924 2546 2266 2083 2521 2276 2227 2569 2292 2391 2623 2276 2506 2633 2244 2622 2643 2223 2733 2659 2174 2835 2670 2145 2944 2687 2107 3081 2719 2050 3185 2737 2007 3299 2764 1975 3423 2797 1938 3539 2860 1897 3693 2913 1885 3840 2967 1884 3949 2047 2247 552 2054 2229 563 2077 2246 611 2066 2254 647 2081 2263 693 2096 2270 765 2111 2275 847 2140 2276 945 2169 2291 1018 2190 2290 1147 2218 2315 1251 2262 2318 1383 2298 2331 1505 2348 2343 1662 2411 2366 1825 2461 2395 1973 2513 2420 2137 2578 2420 2295 2593 2429 2414 2625 2446 2557 2635 2406 2672 2646 2372 2777 2648 2335 2889 2657 2310 3014 2687 2248 3095 2680 2211 3196 2709 2162 3326 2727 2114 3417 2767 2097 3546 2792 2067 3674 2850 2056 3811 2921 2054 3963 2015 2374 630 2025 2384 652 2046 2393 677 2047 2384 726 2049 2386 764 2069 2405 840 2102 2393 902 2107 2416 988 2117 2420 1080 2154 2436 1169 2185 2448 1278 2207 2436 1428 2253 2467 1547 2314 2477 1685 2324 2504 1819 2366 2526 1974 2461 2535 2143 2495 2543 2293 2576 2576 2447 2625 2619 2606 2660 2581 2695 2641 2528 2822 2649 2490 2927 2641 2434 3014 2635 2411 3117 2657 2378 3225 2669 2313 3335 2683 2293 3446 2729 2272 3573 2769 2229 3704 2819 2212 3820 2888 2214 3960 2029 2514 674 2030 2514 695 2029 2509 721 2045 2523 750 2053 2523 804 2061 2522 873 2055 2531 960 2083 2535 1024 2092 2561 1144 2121 2558 1208 2153 2558 1333 2173 2580 1453 2202 2581 1573 2255 2610 1735 2308 2611 1876 2357 2617 2016 2405 2652 2165 2470 2649 2313 2530 2680 2450 2588 2723 2628 2618 2702 2749 2591 2674 2847 2597 2647 2956 2599 2597 3052 2626 2579 3146 2623 2528 3222 2617 2489 3345 2639 2448 3458 2672 2414 3585 2712 2395 3725 2764 2375 3826 2825 2374 3966 1989 2635 728 1992 2649 772 1998 2644 802 2013 2663 845 2012 2653 887 2020 2654 942 2021 2654 1012 2025 2671 1100 2061 2680 1187 2103 2688 1284 2126 2682 1392 2146 2704 1511 2190 2709 1623 2214 2723 1754 2257 2724 1897 2310 2731 2036 2357 2765 2188 2413 2761 2312 2477 2788 2472 2559 2821 2630 2565 2832 2719 2587 2821 2870 2565 2772 2974 2527 2738 3050 2539 2685 3159 2565 2647 3259 2574 2640 3394 2593 2607 3511 2600 2564 3558 2645 2543 3721 2709 2522 3821 2763 2537 4013 1973 2789 856 1968 2774 877 1957 2776 888 1975 2777 911 1981 2758 970 2002 2784 1031 2002 2785 1103 2007 2785 1175 2034 2800 1252 2054 2805 1338 2088 2803 1450 2098 2830 1564 2129 2830 1683 2171 2838 1816 2220 2837 1935 2252 2841 2059 2332 2866 2193 2369 2875 2334 2417 2904 2482 2532 2945 2633 2536 2941 2739 2527 2937 2869 2561 2919 2983 2553 2860 3051 2513 2848 3193 2503 2789 3277 2493 2745 3395 2497 2727 3486 2535 2714 3625 2622 2703 3758 2649 2697 3859 2710 2686 3973 1936 2900 927 1930 2906 926 1936 2902 952 1958 2903 999 1960 2892 1034 1967 2914 1084 1963 2913 1166 1988 2916 1245 2001 2942 1333 2018 2918 1425 2046 2929 1525 2076 2924 1627 2105 2942 1735 2137 2955 1877 2186 2948 1996 2225 2959 2095 2305 2992 2242 2324 2986 2366 2396 3022 2482 2476 3035 2643 2496 3042 2763 2505 3047 2863 2510 3051 2974 2531 3009 3067 2533 2972 3202 2482 2939 3277 2471 2916 3403 2434 2880 3491 2465 2827 3601 2492 2823 3729 2571 2813 3877 2681 2868 4024 1900 3039 1048 1898 3034 1077 1909 3027 1082 1916 3026 1120 1928 3032 1160 1942 3040 1217 1954 3037 1280 1958 3042 1344 1982 3041 1404 2006 3045 1506 2021 3052 1614 2076 3050 1716 2075 3063 1816 2128 3062 1921 2160 3075 2048 2196 3077 2156 2228 3093 2267 2297 3112 2376 2336 3132 2498 2436 3137 2669 2460 3147 2784 2442 3147 2869 2442 3144 2991 2480 3152 3089 2509 3127 3178 2478 3097 3304 2448 3039 3392 2453 2996 3501 2432 2986 3614 2435 2959 3748 2492 2956 3892 2588 2963 4033 1906 3144 1195 1915 3154 1204 1907 3142 1202 1922 3157 1259 1920 3159 1268 1932 3160 1340 1948 3161 1397 1954 3158 1447 1977 3161 1529 1980 3164 1598 2023 3167 1703 2046 3178 1788 2072 3193 1891 2102 3186 1996 2134 3199 2093 2156 3196 2209 2210 3204 2314 2269 3227 2410 2294 3235 2528 2401 3251 2696 2405 3260 2776 2376 3248 2886 2385 3246 2994 2406 3246 3098 2481 3245 3210 2484 3228 3309 2452 3184 3393 2422 3153 3500 2431 3142 3626 2422 3104 3732 2457 3097 3892 2538 3103 4015 1900 3279 1340 1897 3276 1337 1902 3282 1342 1923 3283 1385 1917 3281 1413 1935 3286 1467 1946 3295 1512 1984 3285 1575 1973 3296 1644 2014 3289 1719 2012 3299 1793 2063 3303 1878 2073 3303 1974 2099 3310 2061 2129 3310 2155 2149 3308 2264 2179 3327 2346 2226 3329 2461 2259 3349 2557 2362 3349 2716 2377 3352 2820 2323 3349 2880 2313 3351 2995 2336 3355 3108 2360 3361 3228 2443 3360 3313 2471 3307 3416 2433 3286 3517 2440 3267 3637 2448 3248 3745 2475 3259 3902 2555 3273 4037 1930 3426 1481 1921 3422 1476 1936 3430 1519 1946 3431 1554 1940 3421 1564 1968 3434 1623 1980 3419 1664 1986 3422 1710 2012 3416 1780 2039 3435 1829 2034 3437 1915 2054 3429 1999 2073 3440 2067 2100 3432 2163 2159 3437 2244 2157 3442 2327 2181 3451 2430 2225 3466 2537 2251 3465 2623 2362 3460 2753 2364 3471 2843 2310 3479 2925 2254 3486 2999 2263 3474 3103 2264 3477 3225 2314 3479 3348 2443 3457 3442 2444 3438 3529 2440 3416 3663 2420 3409 3760 2481 3398 3904 2565 3414 4023 1999 3544 1690 2006 3548 1695 2003 3563 1714 2018 3564 1730 2021 3562 1763 2029 3550 1798 2038 3560 1837 2043 3564 1872 2076 3557 1947 2078 3562 1987 2119 3559 2053 2112 3575 2110 2145 3573 2194 2145 3569 2270 2178 3566 2316 2177 3577 2400 2216 3581 2493 2232 3581 2601 2252 3592 2649 2369 3591 2793 2387 3591 2891 2302 3592 2942 2203 3589 3026 2190 3589 3137 2222 3615 3242 2217 3592 3350 2284 3601 3463 2410 3584 3553 2432 3569 3691 2433 3532 3781 2475 3557 3909 2593 3589 4068 2096 3703 1907 2087 3693 1908 2102 3699 1936 2118 3695 1951 2110 3689 1953 2119 3679 1975 2141 3701 2027 2153 3697 2063 2149 3715 2111 2171 3684 2151 2178 3689 2210 2203 3695 2281 2201 3696 2335 2237 3701 2390 2227 3705 2441 2236 3706 2516 2262 3724 2594 2282 3702 2643 2275 3721 2746 2398 3702 2869 2413 3721 2956 2288 3712 2981 2189 3731 3055 2140 3718 3155 2163 3735 3273 2138 3725 3385 2179 3721 3492 2264 3747 3628 2414 3684 3687 2463 3687 3792 2495 3684 3911 2629 3730 4084 2262 3826 2142 2263 3827 2154 2248 3829 2149 2267 3843 2190 2253 3830 2188 2261 3835 2201 2269 3836 2232 2272 3835 2291 2301 3852 2317 2294 3837 2346 2313 3841 2410 2314 3836 2445 2329 3842 2497 2339 3827 2538 2329 3838 2582 2359 3849 2654 2359 3852 2715 2359 3848 2787 2360 3861 2843 2462 3842 2950 2457 3852 3047 2364 3868 3096 2250 3866 3120 2116 3883 3200 2122 3880 3316 2126 3868 3408 2115 3870 3531 2206 3884 3655 2284 3910 3755 2457 3816 3824 2532 3835 3954 2671 3874 4088 2454 3983 2447 2445 3973 2438 2463 3975 2447 2458 3973 2467 2457 3969 2481 2471 3976 2494 2484 3976 2515 2471 3983 2535 2489 3988 2563 2482 3984 2575 2487 3976 2605 2509 3992 2651 2513 3979 2688 2509 3989 2740 2483 3985 2769 2494 3997 2814 2515 3999 2862 2528 3996 2923 2528 4023 2992 2603 4005 3077 2617 3999 3152 2509 4005 3180 2347 4019 3228 2171 4055 3287 2133 4048 3387 2131 4047 3492 2141 4047 3599 2141 4051 3705 2254 4061 3817 2363 4046 3906 2549 3972 3991 2743 4015 4079 1953 375 364 1958 396 354 1980 434 349 1982 435 412 2001 448 468 2001 457 509 1985 456 577 1975 469 612 1990 439 694 2000 389 738 2077 231 787 2120 236 928 2179 236 1060 2235 269 1199 2272 276 1346 2368 279 1525 2378 238 1633 2399 190 1770 2415 136 1868 2420 72 1995 2509 6 2139 2595 0 2350 2689 11 2504 2749 10 2629 2828 4 2803 2896 10 2965 2975 3 3095 3062 0 3241 3131 0 3433 3218 15 3576 3290 10 3734 3393 0 3870 1958 402 358 1964 418 357 1980 435 329 2006 451 409 1996 474 460 1999 463 510 1998 469 575 2005 473 621 2006 480 711 1999 432 758 2076 279 817 2119 286 939 2184 285 1069 2238 301 1214 2304 308 1375 2347 323 1519 2393 290 1646 2395 239 1740 2421 196 1878 2431 143 2004 2503 16 2150 2596 10 2331 2677 0 2492 2764 5 2635 2831 4 2803 2891 13 2967 2965 12 3095 3038 6 3249 3123 0 3404 3208 15 3586 3291 10 3728 3377 10 3892 1975 440 350 1985 451 332 1996 478 337 2003 489 399 2001 497 462 2001 487 522 2010 501 577 2018 511 647 2018 483 705 2015 472 764 2091 328 801 2118 324 918 2180 344 1063 2251 344 1215 2300 366 1362 2365 365 1531 2378 353 1641 2404 297 1750 2418 269 1883 2434 210 1983 2514 57 2159 2610 1 2338 2697 1 2504 2738 3 2623 2840 9 2823 2918 1 2942 2975 6 3088 3038 2 3243 3126 0 3398 3202 19 3570 3280 0 3717 3376 10 3892 1999 472 350 1998 485 336 1990 507 349 2002 508 399 2018 531 465 2024 538 511 2030 537 592 2032 547 653 2028 539 731 2034 515 799 2077 407 813 2126 373 927 2184 393 1079 2246 396 1217 2303 428 1376 2375 448 1547 2391 405 1649 2423 380 1773 2428 338 1917 2467 296 2031 2531 169 2179 2617 10 2350 2696 10 2503 2765 4 2659 2836 4 2813 2889 3 2952 2984 0 3098 3053 9 3282 3125 1 3425 3203 20 3571 3277 0 3720 3354 1 3895 2015 544 305 2013 554 313 2019 536 373 2021 566 395 2033 574 448 2051 570 539 2048 567 589 2044 584 645 2048 578 730 2074 575 821 2066 499 846 2138 422 931 2193 443 1098 2239 461 1218 2315 489 1407 2365 512 1565 2401 496 1675 2416 471 1771 2447 436 1901 2464 388 2023 2544 298 2204 2621 126 2366 2720 12 2536 2775 10 2697 2848 16 2826 2897 16 2971 2990 11 3124 3038 2 3271 3136 10 3435 3209 9 3592 3280 0 3727 3377 2 3914 2051 607 302 2065 626 343 2057 617 369 2036 624 430 2046 618 472 2067 637 522 2063 639 587 2079 644 660 2070 631 745 2094 646 832 2083 608 880 2144 493 935 2202 525 1090 2259 535 1244 2318 568 1386 2391 592 1546 2410 594 1696 2438 565 1819 2447 529 1932 2473 496 2052 2562 415 2206 2641 313 2373 2705 180 2531 2781 47 2671 2847 6 2846 2923 0 2977 2987 0 3125 3065 3 3285 3144 8 3433 3213 5 3586 3277 3 3726 3348 3 3905 2091 678 295 2080 672 363 2077 681 379 2086 689 398 2083 689 462 2094 704 537 2100 706 595 2097 700 663 2119 704 741 2125 717 840 2113 700 908 2168 594 957 2235 601 1105 2283 612 1246 2329 665 1407 2407 688 1588 2446 687 1705 2462 665 1838 2481 639 1931 2489 635 2083 2585 538 2233 2644 465 2395 2734 377 2546 2785 300 2708 2853 202 2842 2913 79 2999 2967 17 3130 3068 3 3300 3123 0 3441 3216 0 3595 3273 0 3751 3350 16 3918 2108 766 318 2134 772 366 2120 762 412 2127 774 431 2134 767 476 2143 779 541 2142 792 613 2158 794 659 2148 788 750 2151 795 848 2162 771 931 2152 743 971 2250 694 1093 2286 723 1249 2338 766 1419 2407 799 1600 2462 803 1742 2467 782 1848 2523 760 1958 2509 750 2091 2597 685 2245 2678 619 2419 2758 551 2573 2797 499 2700 2874 433 2864 2934 362 3001 2991 281 3157 3052 131 3278 3134 29 3442 3199 7 3597 3263 7 3740 3352 12 3901 2161 864 335 2162 875 374 2171 859 406 2153 875 439 2170 873 490 2159 871 566 2163 868 610 2175 881 691 2181 884 765 2192 880 870 2191 869 949 2182 884 1024 2225 801 1097 2286 810 1262 2357 855 1427 2416 889 1605 2479 928 1770 2507 901 1878 2519 879 1985 2562 874 2127 2624 825 2286 2689 756 2443 2735 722 2575 2803 675 2727 2866 634 2872 2923 584 2991 2990 528 3148 3033 441 3292 3124 345 3444 3192 237 3591 3247 171 3764 3329 160 3883 2203 966 332 2201 983 366 2202 986 401 2203 982 468 2220 986 505 2216 978 570 2213 978 628 2222 984 708 2208 983 779 2235 989 892 2234 983 968 2236 998 1083 2207 978 1168 2318 932 1272 2379 958 1436 2445 1009 1626 2507 1051 1802 2514 1048 1932 2544 1026 2031 2582 1005 2153 2642 971 2304 2708 916 2472 2760 880 2592 2808 851 2757 2866 813 2884 2916 768 3020 2971 716 3154 3040 660 3316 3110 599 3455 3174 537 3587 3246 498 3739 3317 508 3891 2258 1097 332 2258 1102 378 2257 1101 420 2262 1093 474 2274 1094 524 2263 1104 589 2265 1100 656 2282 1102 732 2275 1109 811 2301 1108 903 2278 1107 969 2274 1108 1098 2291 1102 1204 2307 1053 1279 2390 1083 1445 2461 1129 1645 2515 1190 1832 2543 1202 1969 2568 1177 2054 2599 1140 2212 2669 1108 2337 2719 1070 2485 2787 1026 2631 2814 1007 2769 2870 971 2896 2929 947 3043 2976 898 3172 3037 849 3316 3101 804 3466 3160 754 3607 3226 727 3745 3302 732 3902 2301 1239 344 2316 1242 365 2307 1234 404 2322 1243 448 2324 1233 514 2321 1233 573 2320 1230 653 2326 1233 739 2341 1234 815 2352 1238 928 2337 1217 1027 2348 1221 1125 2311 1239 1245 2335 1248 1339 2407 1205 1479 2462 1259 1664 2532 1316 1843 2572 1341 1989 2580 1312 2104 2609 1298 2231 2685 1254 2375 2729 1227 2518 2778 1202 2648 2824 1163 2781 2871 1139 2927 2919 1105 3056 2964 1062 3182 3024 1030 3331 3073 978 3490 3149 940 3594 3215 932 3775 3285 922 3907 2318 1374 371 2318 1379 377 2324 1370 406 2329 1389 473 2340 1370 520 2355 1370 590 2393 1386 664 2396 1386 757 2394 1388 857 2399 1385 931 2393 1379 1033 2411 1374 1171 2376 1396 1263 2379 1387 1390 2380 1376 1492 2479 1398 1668 2549 1468 1866 2608 1510 2041 2607 1486 2159 2643 1467 2260 2713 1423 2399 2750 1396 2547 2809 1370 2679 2819 1336 2812 2880 1318 2945 2926 1274 3067 2969 1239 3210 3030 1184 3338 3061 1145 3489 3130 1122 3643 3192 1113 3767 3264 1112 3913 2322 1527 368 2313 1534 411 2329 1533 428 2334 1534 476 2354 1541 542 2368 1536 602 2382 1537 668 2409 1537 766 2434 1543 851 2464 1536 963 2461 1532 1075 2464 1534 1196 2466 1548 1321 2454 1543 1446 2441 1559 1558 2480 1527 1681 2544 1582 1874 2622 1655 2074 2637 1640 2185 2666 1633 2313 2711 1601 2451 2771 1553 2583 2821 1523 2713 2845 1514 2827 2871 1477 2970 2897 1438 3071 2939 1395 3216 3005 1352 3358 3067 1314 3501 3104 1289 3644 3161 1273 3785 3241 1265 3922 2312 1674 356 2313 1681 383 2329 1687 423 2342 1697 489 2333 1693 532 2352 1697 618 2377 1697 697 2402 1710 792 2431 1706 886 2445 1711 1007 2498 1714 1115 2519 1724 1233 2536 1703 1363 2519 1719 1480 2506 1706 1603 2491 1722 1721 2567 1734 1881 2624 1797 2079 2647 1829 2239 2688 1797 2359 2724 1754 2480 2771 1726 2617 2817 1703 2740 2836 1667 2857 2862 1652 2975 2907 1601 3103 2935 1551 3227 2988 1507 3371 3038 1472 3503 3087 1444 3649 3166 1427 3796 3225 1425 3940 2290 1853 361 2320 1853 385 2319 1859 424 2347 1853 471 2343 1854 531 2370 1856 610 2388 1856 695 2421 1870 792 2438 1877 890 2463 1874 1004 2479 1880 1121 2531 1891 1252 2570 1881 1393 2577 1890 1529 2568 1883 1654 2562 1883 1779 2541 1885 1904 2612 1930 2083 2672 1988 2294 2685 1960 2396 2724 1931 2528 2765 1904 2653 2823 1871 2755 2824 1837 2888 2853 1797 2993 2887 1763 3124 2911 1717 3263 2968 1680 3394 2995 1626 3509 3044 1603 3657 3116 1588 3776 3193 1575 3948 2314 2009 370 2323 2014 407 2324 2019 435 2327 2019 494 2354 2019 568 2363 2022 624 2381 2041 706 2392 2035 808 2430 2041 898 2455 2045 1004 2475 2054 1151 2515 2058 1257 2560 2047 1420 2586 2063 1557 2630 2066 1720 2633 2064 1867 2609 2071 1956 2603 2058 2114 2662 2128 2309 2695 2144 2429 2763 2127 2565 2755 2072 2685 2809 2048 2801 2816 2007 2907 2837 1954 3011 2862 1912 3149 2909 1883 3277 2941 1831 3398 2986 1816 3549 3003 1764 3666 3080 1732 3820 3149 1740 3977 2282 2148 384 2275 2143 425 2293 2150 453 2302 2157 519 2317 2163 573 2339 2165 660 2366 2181 748 2377 2176 839 2414 2203 932 2444 2203 1045 2476 2203 1171 2498 2210 1297 2546 2220 1429 2589 2226 1572 2602 2227 1727 2655 2219 1892 2666 2234 2037 2665 2231 2175 2667 2260 2326 2732 2307 2489 2793 2276 2618 2779 2245 2718 2798 2211 2823 2799 2168 2937 2832 2138 3028 2857 2100 3166 2886 2063 3287 2891 2007 3410 2943 1961 3545 2971 1933 3670 3047 1903 3819 3127 1894 3956 2227 2252 495 2227 2248 528 2244 2263 576 2244 2256 604 2251 2271 647 2274 2270 706 2282 2274 782 2311 2281 866 2347 2291 967 2366 2302 1087 2400 2324 1191 2459 2358 1310 2507 2388 1468 2552 2381 1609 2590 2392 1761 2636 2389 1917 2659 2413 2073 2722 2411 2257 2685 2438 2390 2751 2462 2522 2775 2450 2647 2782 2393 2750 2786 2367 2842 2811 2322 2971 2826 2282 3091 2822 2250 3172 2856 2208 3307 2877 2162 3424 2924 2135 3555 2936 2082 3678 3003 2066 3820 3051 2077 3959 2204 2384 537 2223 2393 607 2217 2386 620 2211 2395 685 2226 2400 720 2229 2394 768 2249 2406 858 2278 2420 953 2320 2417 1055 2332 2433 1158 2355 2453 1261 2415 2453 1380 2429 2482 1508 2489 2477 1620 2528 2510 1765 2576 2529 1923 2626 2535 2093 2680 2537 2276 2761 2570 2453 2749 2566 2561 2781 2582 2691 2782 2564 2784 2816 2521 2905 2806 2495 2988 2803 2453 3101 2825 2393 3209 2833 2349 3326 2853 2314 3444 2883 2282 3570 2910 2245 3694 2969 2244 3841 3003 2228 3961 2193 2531 625 2198 2546 653 2194 2525 650 2190 2543 711 2205 2541 780 2239 2545 830 2233 2547 899 2263 2554 1007 2279 2567 1120 2296 2568 1214 2343 2573 1304 2376 2584 1451 2390 2595 1578 2443 2620 1706 2465 2618 1831 2525 2630 2001 2565 2627 2136 2625 2669 2304 2663 2684 2456 2732 2723 2622 2830 2745 2771 2793 2712 2858 2807 2674 2944 2786 2634 3028 2814 2589 3146 2804 2537 3237 2820 2516 3349 2807 2475 3467 2856 2430 3612 2869 2415 3674 2916 2386 3810 2981 2375 3950 2161 2650 723 2176 2675 728 2162 2656 764 2177 2661 809 2191 2666 856 2195 2664 913 2191 2667 989 2228 2680 1060 2256 2693 1175 2284 2687 1260 2288 2693 1354 2315 2704 1494 2360 2731 1622 2391 2722 1747 2419 2743 1869 2467 2731 2015 2512 2755 2173 2565 2779 2319 2607 2799 2472 2692 2806 2603 2761 2842 2745 2786 2853 2880 2765 2805 2983 2755 2770 3063 2771 2728 3155 2776 2705 3272 2776 2653 3351 2778 2620 3481 2805 2579 3593 2842 2555 3731 2883 2544 3810 2932 2543 3956 2133 2786 804 2138 2792 811 2136 2787 838 2142 2779 887 2158 2793 951 2173 2794 1001 2172 2803 1074 2192 2814 1147 2211 2808 1245 2224 2818 1326 2248 2813 1436 2279 2828 1550 2315 2837 1669 2347 2830 1808 2373 2851 1934 2420 2858 2068 2480 2863 2205 2524 2884 2357 2563 2903 2468 2637 2916 2617 2737 2941 2778 2743 2951 2854 2763 2947 2979 2742 2898 3066 2718 2849 3189 2709 2795 3278 2726 2791 3389 2732 2767 3502 2761 2723 3588 2771 2698 3704 2821 2690 3841 2876 2690 3985 2095 2915 878 2115 2923 917 2111 2921 925 2113 2922 960 2133 2926 1038 2136 2929 1081 2148 2925 1143 2162 2926 1215 2188 2934 1320 2196 2936 1386 2237 2942 1506 2243 2954 1614 2275 2942 1761 2318 2954 1864 2331 2950 1976 2360 2975 2108 2411 2995 2242 2478 3001 2362 2539 3011 2491 2599 3023 2648 2678 3049 2771 2693 3066 2892 2707 3062 3015 2724 3036 3110 2692 3010 3195 2678 2945 3308 2622 2927 3380 2653 2882 3488 2662 2866 3602 2716 2852 3736 2783 2854 3871 2840 2834 4009 2121 3033 1026 2123 3042 1042 2117 3032 1066 2136 3033 1109 2126 3047 1131 2148 3045 1195 2129 3042 1253 2156 3051 1345 2179 3039 1415 2190 3050 1501 2205 3054 1578 2213 3072 1686 2237 3073 1788 2282 3069 1911 2309 3072 2019 2345 3088 2149 2392 3091 2267 2448 3108 2383 2493 3125 2519 2553 3139 2639 2633 3159 2784 2647 3151 2906 2656 3148 2983 2672 3166 3123 2681 3147 3213 2647 3098 3316 2642 3069 3416 2635 3017 3512 2605 2997 3597 2635 2968 3735 2689 2963 3849 2772 2990 3993 2094 3165 1167 2095 3162 1194 2092 3171 1182 2107 3173 1213 2113 3167 1246 2116 3170 1301 2118 3177 1348 2144 3171 1428 2163 3178 1509 2179 3176 1603 2198 3178 1671 2216 3178 1779 2245 3196 1880 2268 3193 1987 2297 3196 2097 2338 3188 2206 2358 3224 2332 2414 3215 2435 2470 3240 2553 2515 3244 2667 2591 3261 2805 2622 3261 2914 2581 3252 2989 2572 3274 3109 2623 3277 3258 2633 3235 3334 2611 3197 3425 2597 3166 3501 2614 3131 3634 2597 3117 3756 2608 3098 3873 2694 3118 4054 2094 3295 1296 2088 3289 1317 2092 3293 1328 2095 3295 1368 2103 3304 1409 2120 3292 1488 2125 3284 1504 2166 3295 1572 2176 3288 1630 2191 3300 1696 2180 3311 1788 2211 3309 1878 2250 3314 1983 2279 3306 2078 2303 3300 2161 2324 3317 2258 2351 3325 2367 2393 3335 2466 2433 3345 2589 2483 3345 2683 2551 3369 2804 2562 3375 2905 2553 3361 2996 2514 3365 3117 2529 3364 3218 2611 3365 3334 2629 3337 3463 2595 3313 3527 2593 3279 3642 2608 3271 3767 2610 3247 3884 2676 3282 4026 2113 3426 1497 2121 3409 1504 2135 3421 1512 2137 3419 1544 2143 3414 1596 2159 3403 1627 2157 3416 1677 2167 3423 1729 2192 3428 1789 2192 3418 1850 2209 3428 1940 2243 3448 1990 2262 3442 2082 2296 3434 2159 2293 3435 2253 2331 3443 2339 2374 3456 2425 2378 3446 2503 2421 3474 2611 2446 3467 2699 2546 3477 2839 2561 3489 2946 2453 3481 2978 2465 3499 3115 2461 3480 3231 2493 3480 3342 2618 3457 3472 2616 3444 3561 2561 3425 3655 2604 3411 3787 2636 3405 3900 2707 3440 4067 2168 3557 1683 2176 3569 1694 2157 3569 1722 2160 3569 1723 2178 3569 1788 2199 3565 1794 2199 3562 1833 2213 3563 1889 2227 3565 1941 2264 3553 1984 2266 3563 2060 2291 3558 2115 2304 3580 2215 2317 3574 2262 2322 3566 2344 2347 3580 2412 2385 3581 2489 2394 3582 2561 2427 3587 2673 2412 3601 2745 2540 3598 2872 2526 3603 2986 2453 3583 3040 2402 3615 3131 2403 3595 3254 2413 3604 3332 2448 3602 3474 2562 3574 3562 2607 3568 3694 2591 3554 3786 2623 3568 3931 2722 3585 4088 2260 3694 1899 2262 3685 1913 2271 3703 1942 2257 3675 1958 2282 3700 1989 2282 3697 2013 2278 3695 2037 2306 3701 2093 2334 3682 2125 2314 3705 2157 2330 3705 2231 2359 3689 2269 2368 3705 2336 2374 3695 2384 2389 3710 2446 2401 3708 2508 2428 3719 2599 2430 3714 2657 2430 3731 2734 2454 3726 2826 2546 3732 2959 2550 3733 3042 2457 3721 3093 2357 3727 3167 2349 3726 3264 2360 3723 3382 2365 3734 3475 2428 3726 3625 2567 3712 3696 2583 3694 3808 2627 3700 3933 2753 3737 4084 2394 3831 2164 2404 3830 2164 2406 3831 2199 2417 3835 2209 2418 3839 2213 2410 3846 2218 2411 3846 2246 2436 3857 2308 2440 3852 2327 2432 3835 2378 2458 3831 2422 2474 3831 2453 2471 3845 2504 2492 3846 2555 2472 3837 2586 2504 3855 2649 2514 3852 2725 2511 3862 2770 2500 3863 2831 2502 3853 2903 2604 3863 3049 2616 3867 3111 2478 3848 3143 2390 3877 3209 2301 3876 3278 2316 3881 3413 2298 3891 3523 2347 3885 3627 2432 3884 3775 2586 3851 3855 2632 3846 3953 2792 3889 4095 2568 3983 2419 2574 3973 2436 2589 3977 2457 2579 3970 2448 2595 3987 2469 2592 3985 2468 2586 3996 2523 2611 3995 2550 2609 3993 2592 2611 3983 2596 2622 3994 2650 2634 3978 2655 2643 3992 2721 2637 3990 2745 2630 4002 2771 2651 4015 2839 2635 4007 2905 2629 3997 2940 2646 3995 2995 2637 4009 3046 2712 3999 3152 2717 4010 3249 2606 3993 3267 2472 4039 3316 2309 4041 3367 2303 4047 3459 2319 4041 3557 2342 4057 3684 2412 4044 3830 2475 4057 3945 2663 3984 3993 2820 4020 4095 2078 364 369 2088 412 348 2114 419 329 2099 434 371 2101 438 431 2123 447 487 2120 455 546 2136 467 628 2126 440 667 2124 418 738 2163 243 760 2233 154 879 2287 160 1032 2333 169 1147 2403 181 1328 2486 197 1510 2528 190 1650 2544 130 1773 2553 67 1873 2581 16 2015 2602 10 2124 2699 11 2308 2790 5 2476 2883 0 2632 2957 1 2812 3026 11 2945 3081 0 3105 3171 14 3237 3254 0 3389 3315 0 3569 3404 5 3723 3496 5 3859 2078 402 338 2125 419 363 2110 445 313 2109 460 356 2121 457 419 2115 467 492 2129 471 559 2149 485 610 2120 478 688 2136 434 750 2183 309 787 2239 193 875 2303 215 1021 2352 221 1185 2414 233 1338 2491 258 1490 2533 252 1662 2552 197 1764 2576 137 1883 2596 61 2011 2603 21 2125 2710 0 2308 2801 10 2504 2886 5 2635 2944 0 2785 3024 16 2948 3077 0 3105 3168 11 3255 3252 1 3408 3325 10 3577 3399 0 3697 3495 5 3880 2095 446 338 2110 463 321 2115 488 327 2131 483 377 2125 496 437 2134 491 514 2148 505 560 2137 509 641 2140 499 689 2145 478 747 2179 375 798 2254 258 886 2283 258 1031 2336 275 1168 2419 291 1328 2489 314 1505 2549 327 1681 2563 266 1785 2586 206 1911 2607 137 2025 2625 57 2141 2715 5 2314 2812 5 2509 2904 10 2644 2966 1 2820 3031 12 2945 3103 0 3102 3157 0 3244 3232 10 3414 3315 14 3571 3398 1 3696 3496 5 3881 2115 469 293 2125 511 290 2131 516 327 2144 525 374 2124 533 438 2139 532 481 2146 529 567 2170 545 628 2156 552 699 2152 528 771 2177 461 817 2247 309 894 2302 320 1043 2363 335 1172 2424 354 1335 2499 378 1503 2550 404 1670 2588 356 1793 2594 306 1911 2609 253 2032 2633 178 2171 2711 12 2315 2817 0 2509 2903 0 2667 2955 11 2799 3021 4 2963 3087 3 3105 3160 1 3255 3262 14 3424 3317 14 3569 3399 0 3727 3472 14 3881 2147 538 308 2144 564 307 2161 550 327 2160 575 376 2165 575 424 2168 581 487 2174 583 554 2180 595 630 2179 582 718 2178 571 770 2187 541 856 2242 396 900 2307 385 1036 2386 402 1188 2438 429 1359 2496 455 1519 2558 477 1683 2576 438 1804 2610 406 1922 2626 371 2051 2648 302 2174 2743 140 2342 2819 2 2508 2900 10 2678 2961 5 2826 3027 2 2969 3108 5 3110 3173 14 3268 3248 2 3411 3307 0 3563 3395 13 3706 3473 9 3886 2176 608 276 2182 624 320 2169 600 341 2169 632 380 2171 618 446 2187 637 497 2203 639 562 2221 647 673 2214 645 720 2205 636 797 2200 626 871 2255 509 914 2303 464 1016 2376 495 1196 2432 530 1356 2519 567 1534 2557 580 1696 2593 555 1822 2619 520 1936 2648 481 2080 2667 431 2183 2747 323 2351 2837 174 2514 2907 32 2676 2966 4 2829 3040 0 2956 3113 3 3121 3170 11 3262 3245 3 3409 3315 1 3570 3396 3 3719 3467 13 3889 2209 697 281 2210 694 319 2209 692 359 2221 690 387 2231 697 445 2234 713 524 2228 700 584 2243 700 654 2241 716 730 2236 705 823 2232 698 876 2255 653 965 2342 538 1050 2397 596 1200 2453 621 1372 2510 661 1539 2592 689 1709 2601 664 1836 2634 636 1955 2651 606 2097 2683 565 2227 2763 492 2386 2847 397 2526 2927 298 2717 2975 178 2852 3030 49 2988 3090 15 3135 3179 3 3286 3252 0 3432 3323 8 3583 3399 0 3750 3461 8 3883 2251 771 310 2251 762 323 2265 777 371 2267 776 410 2250 773 450 2251 778 509 2259 782 584 2272 794 660 2281 793 738 2276 793 817 2266 783 913 2265 767 989 2337 664 1037 2394 686 1199 2460 717 1371 2529 754 1550 2601 802 1738 2636 793 1875 2661 764 1979 2684 748 2106 2685 705 2218 2808 635 2403 2857 566 2560 2919 500 2706 2980 431 2840 3048 362 3003 3110 280 3135 3187 177 3286 3236 61 3424 3313 26 3600 3384 27 3729 3474 18 3924 2280 864 306 2298 881 353 2294 877 358 2300 868 422 2302 868 451 2309 890 539 2297 889 594 2293 880 659 2301 880 742 2313 880 842 2325 873 924 2320 878 1006 2340 830 1093 2420 795 1231 2479 815 1374 2540 856 1549 2611 910 1743 2654 927 1898 2682 900 2012 2704 873 2132 2731 851 2276 2797 781 2410 2865 737 2580 2920 682 2720 2995 639 2859 3041 593 2997 3109 544 3156 3167 484 3287 3255 411 3439 3317 329 3590 3378 285 3758 3452 294 3896 2339 977 288 2350 988 313 2332 986 352 2338 982 414 2340 984 472 2352 980 538 2359 972 612 2348 986 661 2349 989 760 2345 982 838 2355 977 941 2346 1003 1028 2357 985 1135 2415 897 1211 2489 936 1388 2560 979 1579 2630 1029 1767 2677 1062 1935 2688 1041 2044 2723 1014 2168 2751 987 2289 2811 928 2446 2893 896 2605 2947 845 2750 2991 814 2869 3055 780 3025 3103 743 3156 3167 698 3304 3234 647 3430 3306 587 3591 3372 569 3742 3437 590 3896 2382 1097 300 2379 1107 327 2380 1107 370 2393 1102 419 2403 1113 484 2399 1097 540 2396 1097 609 2406 1093 683 2400 1107 772 2414 1092 853 2425 1118 952 2409 1107 1050 2396 1102 1163 2420 1072 1267 2504 1050 1404 2559 1088 1575 2644 1156 1784 2704 1202 1965 2725 1198 2075 2741 1161 2203 2768 1140 2322 2833 1091 2463 2903 1049 2616 2942 1010 2759 3001 982 2905 3054 955 3028 3113 925 3185 3168 882 3313 3235 836 3459 3287 809 3588 3351 807 3740 3443 802 3897 2452 1233 310 2427 1248 328 2443 1238 382 2444 1233 423 2441 1242 482 2445 1246 553 2448 1233 617 2460 1231 710 2460 1226 780 2460 1233 876 2469 1227 985 2437 1228 1093 2468 1233 1213 2474 1242 1297 2504 1181 1408 2584 1218 1588 2651 1289 1787 2725 1335 1990 2746 1345 2126 2766 1326 2234 2780 1297 2349 2854 1254 2501 2907 1222 2637 2954 1173 2765 3006 1163 2926 3063 1124 3062 3119 1093 3183 3162 1065 3319 3203 1026 3473 3271 983 3603 3347 975 3766 3389 981 3897 2458 1392 312 2471 1390 337 2471 1385 377 2482 1391 427 2493 1390 493 2528 1393 572 2533 1382 647 2532 1384 730 2535 1380 827 2529 1396 901 2537 1384 1012 2525 1380 1142 2525 1384 1247 2519 1371 1367 2518 1378 1466 2585 1355 1605 2641 1414 1797 2712 1484 1992 2767 1512 2157 2775 1484 2280 2800 1456 2400 2878 1417 2539 2924 1391 2679 2967 1357 2810 3011 1320 2935 3055 1295 3064 3098 1269 3207 3140 1229 3333 3194 1187 3479 3255 1162 3613 3324 1158 3757 3395 1156 3901 2474 1543 304 2479 1548 332 2484 1541 387 2501 1543 427 2502 1544 480 2521 1547 544 2536 1546 629 2563 1529 725 2582 1534 821 2599 1534 939 2597 1535 1053 2605 1542 1180 2580 1523 1274 2597 1532 1394 2578 1534 1520 2592 1528 1658 2655 1545 1821 2736 1621 2031 2799 1670 2210 2790 1655 2305 2811 1614 2417 2893 1586 2578 2937 1547 2702 2963 1506 2812 3005 1499 2954 3044 1466 3076 3096 1428 3217 3137 1384 3339 3185 1356 3491 3227 1315 3622 3302 1311 3778 3368 1317 3928 2479 1701 301 2480 1704 334 2490 1701 374 2490 1695 413 2501 1692 490 2523 1700 575 2537 1701 648 2578 1706 735 2597 1706 847 2626 1719 963 2652 1708 1089 2668 1708 1203 2646 1703 1321 2653 1704 1435 2649 1687 1565 2624 1693 1692 2664 1676 1827 2743 1754 2031 2803 1822 2241 2805 1808 2347 2817 1803 2474 2890 1747 2597 2934 1726 2737 2971 1701 2872 3000 1662 2962 3030 1622 3096 3069 1592 3231 3131 1549 3358 3161 1506 3487 3211 1485 3632 3292 1479 3772 3350 1468 3918 2485 1877 284 2495 1864 338 2491 1860 386 2513 1863 434 2526 1859 511 2535 1859 588 2552 1870 665 2572 1865 759 2596 1873 860 2612 1874 966 2647 1878 1101 2689 1875 1220 2710 1864 1351 2701 1854 1491 2709 1861 1631 2707 1859 1754 2669 1853 1869 2721 1889 2035 2799 1969 2261 2840 1992 2402 2848 1963 2519 2892 1922 2641 2933 1896 2763 2968 1860 2875 2999 1828 3012 3037 1789 3134 3055 1754 3246 3101 1703 3362 3143 1673 3488 3198 1644 3654 3251 1634 3792 3310 1627 3929 2466 2009 291 2480 2017 340 2493 2019 385 2497 2018 436 2520 2030 529 2514 2014 586 2541 2025 667 2556 2033 763 2588 2036 880 2620 2043 1000 2629 2049 1118 2676 2046 1232 2713 2040 1385 2753 2057 1534 2768 2039 1676 2764 2041 1802 2734 2033 1915 2707 2039 2064 2787 2087 2250 2848 2145 2437 2849 2146 2549 2910 2097 2667 2927 2061 2796 2959 2032 2907 2981 1998 3016 3006 1956 3135 3031 1907 3246 3074 1867 3382 3113 1836 3506 3144 1788 3644 3220 1783 3796 3279 1789 3950 2474 2166 310 2488 2172 358 2505 2186 404 2502 2171 456 2522 2180 535 2520 2174 605 2552 2185 711 2549 2189 791 2577 2196 896 2602 2212 1019 2638 2201 1138 2672 2203 1254 2702 2211 1396 2729 2207 1536 2783 2228 1726 2798 2197 1882 2801 2210 2015 2775 2205 2138 2740 2218 2266 2833 2293 2463 2873 2317 2596 2904 2265 2700 2931 2233 2835 2965 2199 2948 2978 2166 3035 3007 2116 3172 3019 2067 3274 3056 2040 3397 3095 1998 3529 3128 1967 3662 3199 1941 3803 3259 1945 3938 2418 2279 393 2435 2289 444 2436 2285 471 2450 2295 511 2476 2305 589 2484 2311 635 2506 2319 737 2542 2321 837 2560 2339 943 2603 2343 1065 2631 2340 1166 2665 2359 1290 2694 2381 1438 2711 2378 1568 2752 2375 1736 2786 2380 1892 2816 2374 2046 2845 2399 2218 2827 2388 2335 2830 2413 2470 2879 2457 2636 2917 2414 2751 2936 2394 2852 2960 2361 2950 2977 2304 3066 2993 2289 3173 3024 2228 3295 3041 2195 3412 3066 2155 3554 3091 2128 3673 3157 2104 3806 3209 2104 3945 2399 2399 488 2388 2411 522 2406 2391 548 2415 2392 585 2418 2408 647 2434 2412 690 2458 2414 802 2472 2421 897 2496 2426 984 2527 2449 1103 2555 2456 1223 2596 2465 1349 2641 2494 1482 2677 2509 1618 2718 2524 1776 2753 2524 1920 2796 2541 2094 2832 2523 2244 2860 2545 2416 2869 2544 2537 2901 2608 2669 2929 2581 2779 2939 2544 2903 2947 2520 2997 2969 2472 3110 2975 2436 3204 2994 2375 3315 3004 2352 3429 3025 2299 3539 3072 2272 3663 3108 2261 3820 3181 2243 3978 2357 2542 562 2373 2536 589 2374 2536 603 2384 2534 670 2381 2538 718 2408 2542 786 2431 2547 867 2444 2550 969 2469 2573 1076 2490 2583 1169 2512 2579 1267 2540 2590 1393 2576 2589 1537 2608 2611 1667 2649 2618 1815 2694 2625 1959 2727 2651 2110 2783 2685 2292 2832 2696 2445 2879 2702 2602 2907 2723 2718 2960 2728 2842 2949 2691 2944 2951 2657 3029 2961 2621 3127 2974 2577 3229 2963 2536 3336 2969 2495 3445 2991 2447 3567 3016 2419 3670 3063 2413 3825 3132 2402 3951 2351 2661 674 2330 2651 654 2341 2657 727 2363 2679 756 2372 2672 810 2375 2682 864 2383 2674 936 2410 2677 1032 2422 2689 1125 2459 2686 1244 2463 2698 1332 2495 2704 1457 2528 2719 1580 2550 2724 1719 2592 2743 1847 2629 2757 1990 2691 2757 2153 2727 2777 2303 2765 2797 2456 2839 2826 2609 2887 2853 2734 2961 2875 2902 2950 2822 2999 2930 2785 3061 2928 2752 3177 2950 2721 3264 2948 2685 3335 2939 2637 3465 2947 2606 3571 2986 2571 3700 3041 2554 3825 3079 2560 3967 2319 2792 756 2318 2792 757 2323 2785 806 2334 2792 853 2329 2783 883 2352 2796 973 2358 2800 1033 2370 2811 1119 2388 2814 1197 2410 2830 1305 2437 2819 1388 2462 2839 1523 2475 2836 1628 2518 2858 1787 2533 2845 1901 2588 2861 2042 2643 2872 2170 2659 2885 2321 2720 2899 2455 2795 2914 2616 2822 2951 2741 2924 2973 2887 2950 2968 3000 2922 2916 3084 2912 2898 3194 2911 2865 3303 2902 2819 3366 2906 2787 3477 2913 2751 3605 2949 2722 3716 2970 2696 3837 3034 2696 3983 2286 2922 867 2290 2922 891 2300 2932 911 2306 2922 955 2309 2925 995 2318 2926 1066 2325 2918 1115 2343 2927 1201 2359 2936 1278 2376 2936 1384 2394 2937 1458 2418 2952 1589 2442 2939 1705 2475 2953 1842 2523 2966 1964 2553 2978 2083 2601 2980 2227 2648 2991 2359 2663 3002 2465 2722 3026 2619 2773 3050 2756 2872 3071 2906 2895 3073 3021 2916 3059 3103 2884 3018 3204 2867 2971 3321 2834 2945 3402 2854 2922 3514 2870 2893 3637 2901 2859 3723 2906 2835 3838 2995 2842 3980 2290 3037 996 2299 3045 1008 2302 3045 1031 2306 3046 1072 2305 3037 1105 2312 3053 1163 2314 3040 1228 2333 3044 1308 2357 3052 1378 2370 3056 1476 2367 3069 1572 2383 3069 1669 2426 3072 1773 2442 3062 1899 2490 3091 2028 2509 3077 2124 2542 3098 2260 2588 3099 2377 2643 3115 2494 2712 3131 2621 2752 3174 2768 2817 3164 2917 2852 3180 3002 2863 3184 3138 2863 3164 3229 2845 3112 3323 2815 3071 3410 2805 3035 3510 2797 3016 3597 2810 2986 3729 2871 2987 3867 2949 3019 4015 2268 3168 1100 2282 3180 1146 2279 3176 1149 2281 3167 1180 2291 3171 1227 2290 3165 1265 2309 3188 1330 2311 3187 1395 2324 3183 1472 2346 3183 1583 2373 3192 1663 2376 3180 1767 2404 3188 1853 2419 3186 1974 2466 3203 2094 2495 3199 2196 2531 3202 2318 2562 3218 2409 2615 3231 2530 2656 3240 2659 2699 3273 2781 2777 3256 2891 2795 3267 3019 2788 3280 3115 2792 3282 3250 2827 3251 3328 2785 3215 3439 2795 3169 3514 2769 3146 3647 2750 3114 3748 2803 3103 3884 2856 3135 4018 2246 3300 1258 2267 3319 1303 2261 3299 1324 2273 3311 1345 2271 3307 1369 2292 3298 1430 2311 3298 1475 2332 3298 1538 2336 3295 1608 2349 3307 1675 2370 3295 1761 2386 3311 1864 2410 3312 1964 2417 3300 2045 2463 3311 2145 2487 3323 2250 2509 3316 2359 2539 3339 2456 2581 3340 2584 2626 3340 2682 2654 3375 2773 2731 3389 2940 2750 3367 3032 2707 3378 3115 2720 3378 3228 2786 3381 3353 2803 3343 3431 2782 3316 3525 2752 3285 3631 2752 3267 3762 2766 3266 3882 2819 3282 4034 2289 3428 1472 2285 3449 1456 2290 3429 1480 2303 3423 1518 2304 3428 1556 2317 3434 1591 2320 3422 1644 2333 3436 1703 2342 3435 1751 2360 3433 1839 2384 3423 1921 2391 3434 1986 2427 3436 2055 2439 3436 2160 2485 3439 2233 2501 3439 2328 2521 3439 2417 2545 3452 2508 2564 3464 2606 2599 3477 2692 2626 3476 2810 2713 3489 2951 2703 3503 3034 2674 3478 3115 2680 3480 3220 2672 3492 3322 2766 3488 3473 2754 3457 3557 2749 3443 3669 2739 3401 3771 2757 3395 3903 2836 3414 4036 2321 3584 1664 2322 3572 1677 2332 3546 1695 2346 3561 1709 2348 3563 1747 2355 3571 1788 2367 3559 1826 2373 3564 1877 2392 3567 1940 2401 3574 1981 2411 3556 2065 2452 3552 2119 2451 3557 2192 2471 3572 2273 2478 3563 2337 2497 3571 2415 2523 3585 2503 2542 3584 2596 2567 3569 2678 2605 3586 2756 2620 3590 2835 2693 3611 2977 2687 3621 3080 2626 3609 3149 2618 3598 3236 2603 3607 3354 2623 3606 3473 2738 3589 3563 2747 3563 3678 2744 3557 3781 2765 3561 3915 2851 3589 4067 2429 3700 1903 2415 3690 1919 2418 3678 1932 2418 3677 1941 2425 3681 1979 2445 3703 2008 2455 3709 2051 2462 3687 2082 2465 3696 2128 2471 3698 2161 2476 3699 2209 2487 3698 2270 2514 3685 2321 2521 3699 2394 2536 3690 2433 2543 3703 2521 2567 3711 2604 2589 3702 2676 2581 3721 2740 2586 3715 2813 2612 3725 2917 2692 3723 3012 2677 3726 3123 2596 3727 3181 2542 3739 3266 2555 3735 3374 2545 3739 3466 2609 3737 3619 2709 3721 3701 2737 3701 3802 2788 3701 3940 2868 3721 4064 2557 3835 2185 2536 3846 2164 2556 3832 2190 2524 3840 2187 2568 3842 2204 2571 3845 2226 2578 3836 2266 2566 3824 2293 2569 3837 2330 2581 3835 2379 2595 3836 2405 2611 3840 2464 2611 3835 2497 2627 3844 2552 2619 3839 2594 2617 3847 2650 2638 3847 2728 2639 3862 2799 2644 3857 2855 2659 3857 2934 2660 3852 2995 2740 3873 3108 2715 3869 3180 2625 3874 3249 2512 3886 3294 2506 3886 3417 2508 3871 3509 2512 3886 3621 2587 3878 3768 2705 3848 3831 2761 3851 3953 2906 3872 4095 2709 3967 2452 2678 3972 2452 2706 3983 2468 2702 3981 2481 2726 3988 2475 2712 3991 2492 2698 3988 2521 2741 3983 2550 2714 3977 2569 2737 3981 2601 2736 3994 2650 2752 3988 2688 2747 3994 2716 2741 3992 2765 2759 3990 2785 2761 4002 2840 2777 4007 2905 2768 4002 2962 2757 3999 2995 2774 3999 3076 2753 4010 3121 2822 3999 3223 2825 4015 3287 2691 4017 3321 2564 4043 3374 2505 4052 3465 2506 4055 3573 2509 4058 3671 2544 4047 3802 2635 4063 3942 2773 3984 3992 2950 4015 4084 2197 369 353 2203 398 342 2225 429 337 2233 437 348 2246 434 418 2239 452 482 2242 445 552 2243 442 614 2262 446 691 2246 424 732 2261 329 787 2315 61 835 2380 62 999 2450 62 1114 2499 67 1294 2579 58 1453 2655 104 1657 2695 63 1788 2727 16 1914 2764 1 2042 2771 11 2178 2788 11 2281 2895 0 2475 2992 0 2637 3070 16 2812 3126 11 2949 3204 0 3107 3271 16 3261 3351 1 3385 3433 1 3558 3529 0 3719 3583 5 3847 2209 413 353 2215 419 304 2230 435 311 2249 458 365 2236 468 412 2237 466 463 2261 477 552 2246 475 603 2253 459 668 2267 446 753 2288 376 797 2341 134 852 2411 109 1004 2456 98 1139 2538 116 1318 2595 121 1470 2680 162 1673 2716 137 1807 2730 54 1916 2748 20 2042 2771 17 2174 2789 0 2303 2895 0 2476 2997 0 2639 3076 15 2811 3123 13 2955 3204 0 3107 3299 5 3261 3351 1 3411 3425 14 3547 3498 5 3697 3584 5 3870 2230 434 340 2246 452 324 2246 457 317 2237 484 346 2259 492 434 2265 496 481 2266 484 530 2267 504 626 2275 502 686 2267 483 743 2281 437 820 2341 195 853 2409 164 1008 2474 159 1160 2523 178 1313 2616 195 1487 2680 230 1665 2727 227 1817 2738 141 1904 2754 79 2046 2799 21 2188 2804 5 2308 2916 11 2487 2996 0 2638 3077 12 2819 3139 0 2957 3204 0 3107 3271 12 3258 3350 1 3410 3446 4 3571 3497 5 3719 3580 0 3846 2236 490 307 2252 515 304 2261 525 317 2259 523 348 2280 530 426 2287 541 498 2279 531 536 2280 531 603 2289 534 662 2294 515 745 2306 494 809 2350 304 867 2424 249 1004 2479 248 1148 2549 271 1321 2608 288 1479 2691 332 1684 2732 322 1809 2741 259 1931 2765 199 2070 2796 115 2186 2823 23 2311 2943 0 2491 2996 4 2665 3073 1 2820 3127 11 2959 3187 12 3110 3271 16 3265 3352 6 3411 3429 0 3555 3506 0 3728 3593 6 3852 2278 552 271 2266 552 300 2271 571 317 2290 578 375 2296 584 426 2291 592 473 2311 591 547 2300 587 613 2310 580 687 2305 568 755 2299 568 857 2354 432 893 2423 321 992 2498 334 1154 2539 367 1316 2621 389 1494 2698 427 1679 2746 433 1822 2764 384 1949 2775 354 2068 2806 290 2195 2837 170 2322 2932 9 2512 3012 16 2678 3079 10 2821 3126 1 2970 3206 2 3128 3269 14 3268 3351 1 3408 3426 13 3550 3488 13 3700 3581 0 3877 2319 640 279 2313 633 293 2299 631 328 2310 646 376 2314 632 426 2321 643 476 2329 650 559 2320 651 643 2330 644 697 2329 634 774 2318 626 855 2367 558 940 2431 419 1000 2483 432 1160 2557 456 1315 2619 498 1497 2689 530 1672 2770 542 1835 2778 524 1983 2803 472 2092 2840 425 2214 2854 357 2352 2930 188 2507 3009 33 2681 3090 0 2833 3146 0 2976 3209 3 3115 3274 13 3263 3339 13 3408 3409 0 3565 3506 0 3728 3579 3 3877 2344 695 251 2337 695 289 2350 707 314 2332 713 389 2343 708 437 2348 713 492 2357 711 552 2357 721 641 2376 713 710 2360 701 786 2357 692 879 2373 668 958 2421 524 998 2491 534 1153 2558 559 1337 2638 591 1496 2707 645 1700 2754 675 1845 2794 632 1990 2814 606 2107 2830 564 2247 2872 503 2371 2951 400 2514 3027 291 2692 3099 151 2842 3150 34 2989 3182 8 3132 3271 8 3287 3342 16 3421 3413 0 3568 3494 3 3727 3556 3 3875 2378 786 271 2377 777 289 2369 793 313 2396 798 379 2389 777 423 2388 788 500 2406 797 573 2406 794 645 2389 782 723 2386 771 815 2395 789 914 2411 773 975 2424 690 1020 2512 633 1167 2574 670 1339 2644 702 1522 2719 739 1699 2786 791 1883 2818 776 2003 2835 739 2127 2857 705 2259 2892 646 2380 2971 577 2553 3026 519 2697 3113 430 2852 3147 353 2979 3213 277 3135 3284 207 3289 3367 136 3445 3420 82 3585 3473 47 3684 3555 93 3888 2418 875 265 2429 886 305 2429 878 329 2422 893 387 2421 881 442 2414 891 499 2422 884 580 2430 896 642 2431 880 740 2435 892 814 2442 886 906 2459 862 997 2445 850 1094 2513 744 1169 2584 787 1321 2668 816 1529 2728 865 1701 2800 922 1907 2819 910 2035 2833 880 2158 2880 847 2286 2892 816 2411 2991 748 2570 3052 691 2722 3104 641 2852 3171 589 3005 3197 543 3144 3277 499 3288 3357 471 3458 3412 435 3587 3481 409 3751 3553 452 3876 2466 989 254 2464 1002 294 2467 1002 331 2483 995 380 2477 996 431 2489 1001 519 2491 987 592 2475 1005 674 2469 994 733 2480 989 833 2480 973 915 2486 993 1016 2483 984 1115 2528 910 1195 2602 893 1337 2675 935 1522 2741 979 1702 2818 1048 1902 2826 1058 2045 2857 1038 2162 2901 992 2295 2921 966 2436 2987 916 2578 3066 869 2750 3116 817 2879 3164 781 3022 3204 755 3157 3271 723 3302 3351 693 3440 3389 669 3600 3479 665 3736 3540 682 3882 2519 1113 266 2521 1124 288 2518 1115 342 2515 1120 383 2510 1110 438 2529 1115 524 2535 1116 596 2529 1118 667 2526 1102 744 2541 1101 844 2546 1098 936 2545 1108 1049 2534 1106 1146 2539 1077 1240 2613 1018 1349 2692 1065 1542 2735 1104 1721 2834 1181 1930 2851 1216 2088 2888 1188 2214 2919 1171 2337 2941 1134 2447 3017 1075 2609 3075 1042 2761 3114 1002 2898 3159 969 3027 3218 939 3164 3271 932 3316 3354 896 3474 3407 861 3599 3464 857 3749 3524 879 3896 2567 1233 256 2583 1259 316 2571 1244 334 2572 1244 386 2577 1239 444 2596 1244 528 2586 1246 609 2603 1247 680 2599 1233 757 2609 1234 857 2601 1234 947 2589 1238 1067 2591 1227 1185 2589 1236 1278 2612 1196 1386 2701 1182 1528 2747 1247 1721 2835 1292 1941 2881 1361 2129 2899 1354 2236 2931 1322 2354 2947 1287 2469 3022 1254 2636 3088 1211 2784 3109 1166 2921 3172 1145 3052 3209 1116 3177 3267 1092 3316 3324 1085 3452 3373 1042 3578 3452 1035 3754 3519 1053 3897 2615 1412 245 2633 1407 288 2611 1397 322 2629 1399 396 2632 1392 451 2654 1385 542 2669 1383 614 2665 1383 698 2660 1376 780 2665 1380 880 2660 1375 993 2653 1384 1102 2650 1369 1209 2642 1369 1320 2641 1366 1444 2679 1324 1561 2772 1381 1771 2819 1440 1956 2899 1510 2163 2904 1504 2272 2928 1477 2391 2943 1440 2490 3036 1413 2654 3088 1374 2800 3122 1348 2935 3172 1306 3065 3214 1285 3193 3254 1279 3325 3314 1239 3461 3365 1211 3611 3437 1210 3748 3510 1216 3898 2628 1559 229 2629 1548 299 2633 1552 316 2663 1553 375 2661 1545 447 2683 1557 524 2698 1546 608 2715 1547 711 2732 1547 813 2736 1534 909 2724 1534 1009 2715 1527 1143 2697 1516 1250 2702 1518 1381 2699 1520 1492 2699 1532 1638 2765 1500 1758 2821 1574 1957 2895 1640 2162 2928 1686 2325 2934 1644 2428 2974 1629 2542 3035 1587 2693 3078 1543 2817 3114 1514 2962 3159 1489 3083 3206 1458 3222 3255 1435 3352 3306 1407 3484 3339 1382 3606 3409 1362 3759 3473 1378 3914 2644 1710 215 2645 1720 267 2654 1713 319 2657 1715 364 2651 1703 424 2681 1727 528 2691 1702 601 2719 1718 712 2757 1709 805 2756 1711 912 2786 1692 1047 2779 1699 1162 2775 1689 1282 2770 1695 1416 2763 1674 1538 2750 1675 1675 2756 1660 1806 2833 1695 1981 2897 1787 2194 2936 1842 2351 2961 1819 2457 2969 1783 2573 3047 1762 2727 3085 1722 2856 3111 1679 2966 3164 1659 3094 3193 1633 3222 3248 1588 3357 3286 1574 3490 3337 1537 3622 3382 1522 3752 3457 1544 3894 2630 1866 215 2658 1876 271 2648 1879 326 2670 1884 372 2681 1865 450 2702 1873 542 2705 1877 621 2735 1873 741 2738 1878 836 2779 1868 960 2809 1880 1073 2841 1870 1186 2832 1849 1312 2838 1848 1447 2812 1849 1587 2819 1853 1721 2802 1830 1845 2823 1836 1969 2891 1911 2185 2951 1993 2393 2966 1983 2514 3007 1956 2633 3047 1914 2759 3089 1881 2878 3100 1842 2986 3147 1820 3097 3165 1791 3231 3225 1754 3370 3264 1724 3481 3308 1689 3621 3353 1680 3761 3443 1692 3914 2634 2020 203 2646 2027 258 2666 2035 335 2665 2028 373 2675 2031 455 2686 2028 536 2697 2038 629 2722 2046 726 2739 2038 840 2771 2033 955 2792 2046 1090 2828 2026 1215 2855 2040 1365 2889 2030 1505 2893 2026 1633 2890 2026 1765 2860 2010 1883 2832 2017 2026 2882 2046 2194 2958 2128 2389 2981 2164 2537 3001 2137 2646 3049 2102 2792 3073 2057 2902 3093 2023 3004 3148 1999 3145 3166 1951 3250 3208 1916 3400 3242 1886 3499 3280 1847 3633 3344 1831 3758 3403 1836 3932 2653 2171 215 2644 2180 284 2669 2189 331 2667 2185 391 2691 2178 471 2683 2177 553 2711 2193 657 2728 2184 770 2745 2182 864 2757 2196 975 2789 2193 1105 2838 2191 1229 2851 2203 1371 2888 2201 1513 2914 2195 1679 2932 2194 1830 2909 2179 1964 2881 2180 2081 2859 2182 2212 2931 2245 2408 3007 2309 2605 2995 2277 2686 3033 2260 2817 3069 2218 2931 3102 2186 3024 3124 2149 3137 3150 2111 3274 3189 2070 3392 3225 2033 3526 3267 2009 3652 3327 1985 3794 3374 1983 3923 2638 2329 255 2652 2336 310 2650 2316 354 2663 2330 437 2691 2343 518 2686 2327 579 2707 2344 675 2717 2343 780 2746 2355 900 2776 2338 1017 2804 2350 1139 2825 2364 1279 2853 2350 1417 2858 2348 1541 2899 2366 1697 2936 2354 1878 2952 2349 2038 2958 2373 2176 2960 2343 2293 2914 2363 2421 2999 2460 2640 3010 2449 2733 3071 2428 2852 3086 2383 2951 3112 2346 3069 3128 2309 3175 3148 2268 3282 3163 2233 3403 3207 2192 3545 3237 2152 3667 3290 2143 3803 3358 2143 3950 2586 2429 376 2607 2429 415 2604 2426 445 2607 2445 492 2634 2444 561 2646 2451 632 2655 2458 728 2684 2461 831 2704 2472 948 2742 2483 1051 2769 2493 1181 2809 2490 1313 2825 2499 1440 2847 2520 1585 2881 2518 1730 2922 2523 1901 2936 2527 2057 2979 2508 2213 2994 2529 2377 2967 2527 2494 3029 2558 2642 3037 2582 2788 3040 2567 2894 3075 2539 3000 3095 2493 3097 3113 2471 3195 3140 2417 3310 3151 2388 3434 3169 2343 3540 3215 2305 3674 3273 2273 3820 3319 2267 3968 2547 2552 515 2542 2547 522 2557 2551 569 2553 2542 605 2572 2552 667 2588 2558 728 2595 2549 807 2622 2563 909 2626 2575 1006 2661 2581 1123 2697 2579 1239 2726 2602 1356 2752 2618 1502 2790 2629 1633 2826 2643 1781 2873 2655 1937 2916 2682 2110 2938 2675 2254 2983 2675 2412 2999 2690 2574 3024 2691 2675 3053 2734 2805 3074 2719 2931 3070 2684 3023 3082 2651 3137 3109 2617 3237 3116 2570 3341 3129 2516 3444 3138 2469 3568 3185 2460 3717 3214 2429 3802 3285 2409 3957 2553 2673 620 2525 2666 614 2520 2667 649 2540 2676 693 2543 2674 754 2553 2669 826 2578 2690 904 2587 2690 1003 2603 2683 1074 2629 2697 1180 2642 2709 1314 2675 2715 1425 2702 2720 1571 2730 2742 1695 2756 2734 1818 2805 2748 1958 2844 2771 2135 2895 2797 2274 2926 2797 2419 3004 2827 2591 3039 2837 2739 3048 2853 2854 3087 2843 2999 3086 2811 3069 3084 2790 3170 3104 2755 3265 3110 2705 3349 3102 2669 3465 3101 2626 3573 3129 2609 3701 3166 2561 3826 3246 2554 3989 2521 2803 702 2510 2792 714 2530 2811 768 2521 2792 786 2509 2794 844 2548 2806 929 2533 2811 979 2558 2820 1089 2567 2822 1164 2585 2824 1262 2609 2830 1366 2631 2839 1485 2654 2846 1610 2691 2863 1757 2698 2859 1883 2748 2861 2026 2794 2896 2165 2824 2891 2306 2856 2906 2432 2930 2916 2588 2997 2935 2754 3064 2984 2886 3120 2989 3033 3089 2953 3130 3076 2932 3207 3084 2875 3310 3067 2842 3379 3067 2821 3490 3081 2760 3592 3113 2724 3705 3121 2707 3833 3209 2707 3983 2477 2922 831 2486 2917 855 2489 2933 868 2484 2913 894 2502 2917 960 2521 2925 1028 2513 2914 1087 2550 2934 1175 2558 2938 1254 2566 2935 1325 2575 2959 1450 2592 2959 1551 2610 2954 1664 2641 2970 1792 2654 2975 1920 2699 2978 2075 2739 2992 2214 2787 2994 2336 2831 3012 2461 2871 3012 2595 2923 3039 2765 3017 3070 2921 3060 3071 3033 3080 3098 3139 3052 3053 3224 3048 3032 3328 3045 2984 3403 3048 2944 3498 3032 2894 3594 3068 2862 3722 3080 2854 3848 3117 2842 3959 2467 3052 939 2462 3038 956 2476 3047 1002 2479 3052 1040 2475 3057 1072 2483 3049 1128 2484 3055 1203 2494 3057 1262 2517 3053 1350 2538 3076 1439 2557 3068 1552 2554 3064 1642 2580 3079 1743 2613 3077 1877 2647 3095 1999 2666 3097 2106 2703 3105 2225 2743 3104 2356 2806 3116 2497 2845 3123 2640 2896 3143 2767 2938 3165 2887 3026 3200 3048 3031 3189 3128 3032 3196 3229 3014 3146 3327 2998 3114 3439 2980 3054 3524 2982 3035 3614 3028 3017 3740 3048 3004 3869 3092 2989 4003 2431 3169 1065 2448 3186 1112 2446 3182 1120 2442 3180 1161 2450 3195 1205 2458 3185 1247 2471 3190 1320 2469 3185 1384 2487 3191 1442 2506 3177 1555 2532 3204 1647 2549 3185 1741 2571 3197 1842 2588 3204 1946 2617 3208 2083 2639 3196 2170 2678 3202 2275 2717 3215 2404 2766 3226 2521 2802 3231 2629 2851 3258 2758 2900 3266 2911 2974 3283 3018 2968 3295 3117 2984 3298 3263 3017 3267 3353 2970 3231 3443 2949 3198 3514 2933 3164 3638 2920 3115 3738 2984 3122 3882 3024 3137 4016 2423 3307 1228 2422 3314 1275 2426 3310 1275 2436 3313 1319 2436 3312 1336 2438 3307 1396 2480 3306 1456 2491 3311 1513 2505 3314 1574 2514 3321 1685 2531 3300 1774 2536 3314 1850 2568 3307 1953 2587 3316 2027 2622 3315 2148 2631 3320 2233 2667 3325 2351 2693 3330 2445 2727 3342 2575 2758 3341 2656 2807 3362 2787 2839 3378 2902 2930 3394 3037 2932 3392 3148 2926 3380 3230 2935 3408 3372 2969 3373 3443 2948 3339 3542 2903 3310 3642 2911 3267 3761 2908 3262 3895 2978 3279 4023 2459 3438 1445 2452 3431 1440 2450 3452 1457 2444 3431 1480 2468 3431 1513 2466 3436 1549 2488 3434 1620 2493 3436 1667 2505 3440 1732 2514 3428 1816 2543 3442 1902 2555 3444 1963 2560 3441 2045 2590 3433 2143 2616 3437 2236 2624 3437 2319 2656 3444 2423 2677 3455 2512 2728 3463 2606 2720 3469 2701 2782 3471 2815 2807 3479 2921 2894 3497 3040 2871 3483 3150 2850 3484 3233 2841 3497 3323 2896 3520 3477 2922 3463 3545 2902 3454 3654 2899 3424 3768 2914 3425 3900 2964 3426 4056 2471 3575 1633 2471 3572 1661 2485 3582 1684 2472 3560 1696 2482 3564 1719 2495 3572 1763 2525 3560 1815 2515 3584 1866 2545 3564 1916 2561 3573 1998 2572 3564 2052 2587 3565 2132 2604 3572 2201 2597 3562 2245 2635 3568 2341 2650 3577 2419 2673 3572 2488 2689 3575 2589 2708 3596 2677 2724 3580 2768 2767 3603 2865 2775 3603 2945 2876 3620 3105 2846 3611 3152 2804 3607 3250 2777 3605 3362 2805 3621 3478 2875 3618 3591 2890 3588 3689 2885 3571 3801 2899 3558 3929 2967 3577 4052 2563 3704 1906 2559 3700 1882 2561 3687 1937 2565 3691 1941 2579 3704 1961 2571 3697 1987 2586 3708 2019 2595 3704 2083 2596 3701 2117 2622 3699 2173 2631 3697 2232 2639 3699 2272 2661 3703 2345 2660 3698 2412 2670 3713 2478 2698 3709 2526 2691 3709 2606 2710 3712 2684 2728 3717 2760 2747 3720 2841 2784 3735 2920 2776 3732 2990 2851 3746 3116 2831 3738 3216 2769 3740 3280 2731 3734 3365 2736 3738 3477 2767 3750 3617 2882 3735 3704 2884 3705 3811 2904 3705 3932 2968 3737 4066 2661 3852 2167 2666 3847 2169 2666 3846 2170 2677 3837 2205 2668 3842 2230 2667 3837 2232 2693 3839 2274 2685 3843 2311 2689 3847 2349 2710 3840 2382 2711 3843 2417 2731 3842 2460 2729 3852 2526 2740 3852 2564 2749 3863 2633 2759 3852 2694 2763 3851 2732 2774 3847 2800 2783 3854 2873 2800 3867 2946 2821 3867 3026 2802 3868 3084 2863 3868 3192 2852 3868 3263 2752 3882 3340 2689 3881 3408 2687 3883 3543 2690 3895 3651 2753 3887 3770 2866 3849 3851 2911 3852 3964 2995 3864 4095 2824 3983 2478 2819 3978 2496 2832 3993 2511 2821 3973 2515 2828 3991 2511 2831 3978 2524 2827 3970 2552 2840 3983 2581 2852 3995 2609 2863 4001 2638 2845 4005 2689 2843 3993 2704 2877 3992 2746 2869 3994 2771 2868 4011 2829 2865 4003 2867 2877 4006 2912 2888 4001 2989 2893 4013 3019 2907 4003 3110 2898 4015 3148 2888 4025 3186 2952 4015 3294 2922 4030 3368 2812 4034 3403 2679 4044 3463 2674 4046 3586 2693 4047 3690 2705 4074 3811 2773 4074 3931 2930 4011 4010 3049 4015 4084 2328 357 325 2352 402 289 2376 419 308 2360 446 306 2366 436 392 2383 450 467 2400 453 511 2389 433 594 2389 429 655 2392 409 716 2382 382 775 2452 108 855 2522 4 963 2582 4 1111 2664 0 1277 2717 4 1460 2778 17 1640 2855 11 1799 2901 7 1938 2926 0 2057 2922 0 2187 2965 16 2336 3001 0 2450 3110 0 2613 3184 0 2800 3257 12 2927 3334 13 3088 3376 16 3240 3454 12 3380 3546 15 3548 3631 0 3719 3681 28 3866 2317 402 278 2360 446 311 2365 466 278 2377 462 319 2372 468 376 2397 489 439 2388 469 489 2392 478 557 2389 451 630 2404 441 735 2408 417 786 2454 171 833 2495 10 951 2576 15 1103 2660 15 1288 2720 9 1435 2770 17 1611 2862 60 1812 2908 21 1944 2903 0 2053 2933 10 2179 2971 1 2321 3026 17 2444 3100 0 2641 3179 12 2804 3250 4 2951 3333 13 3094 3412 0 3259 3480 0 3410 3539 1 3528 3627 1 3680 3686 0 3855 2371 436 288 2376 464 314 2385 495 304 2392 490 313 2400 486 376 2395 503 444 2414 499 520 2416 504 582 2396 502 639 2420 466 709 2403 450 791 2457 269 861 2504 30 923 2586 51 1100 2641 61 1249 2705 60 1429 2790 80 1604 2861 154 1809 2899 117 1927 2911 36 2070 2952 1 2189 2966 15 2334 3017 1 2456 3097 0 2637 3172 12 2785 3268 1 2951 3338 1 3111 3414 0 3259 3459 1 3411 3552 0 3571 3607 12 3709 3689 0 3858 2392 494 302 2400 517 288 2394 531 294 2406 527 339 2406 532 394 2419 538 444 2436 542 518 2430 531 571 2437 537 648 2433 523 706 2427 494 785 2455 370 870 2510 116 923 2589 134 1100 2645 153 1251 2704 163 1430 2795 198 1611 2880 279 1807 2897 256 1946 2904 158 2071 2942 64 2199 2967 18 2334 3026 2 2436 3113 10 2651 3192 0 2812 3268 10 2970 3325 12 3122 3402 2 3264 3463 25 3401 3544 16 3548 3593 22 3683 3684 1 3829 2410 550 255 2418 566 267 2430 591 290 2424 593 323 2429 582 382 2443 589 435 2431 583 496 2436 592 583 2447 596 659 2436 574 716 2441 549 815 2461 489 879 2547 249 930 2583 255 1084 2654 277 1247 2731 299 1428 2797 334 1626 2903 373 1822 2925 380 1953 2926 338 2065 2952 267 2193 2986 153 2345 3046 21 2488 3139 0 2671 3196 0 2812 3257 0 2964 3326 5 3103 3404 12 3240 3475 12 3419 3525 15 3539 3610 25 3694 3687 14 3876 2440 634 237 2442 633 242 2460 638 303 2443 647 355 2445 647 393 2455 641 464 2462 647 525 2481 654 623 2467 642 660 2473 634 734 2486 613 863 2480 597 912 2572 390 965 2597 369 1110 2678 373 1263 2726 421 1440 2810 444 1631 2890 495 1820 2929 506 1971 2956 468 2108 2986 421 2223 3001 345 2359 3058 264 2510 3113 37 2655 3188 15 2819 3269 3 2967 3336 4 3117 3400 12 3240 3460 24 3396 3544 8 3567 3623 3 3718 3692 3 3863 2463 704 209 2462 697 233 2477 722 259 2480 704 349 2493 713 390 2501 706 457 2497 725 529 2501 709 624 2502 705 686 2506 698 774 2507 685 856 2513 684 929 2549 559 1023 2631 463 1119 2691 498 1276 2760 521 1459 2821 571 1630 2892 638 1838 2950 637 2009 2973 602 2124 2994 575 2258 3021 516 2387 3066 451 2509 3126 298 2686 3233 137 2847 3275 34 2965 3324 14 3140 3394 5 3270 3463 13 3413 3534 27 3548 3622 3 3707 3674 15 3866 2512 794 213 2516 798 242 2509 810 270 2531 808 324 2533 802 394 2544 798 482 2525 794 551 2537 794 621 2548 786 723 2528 778 800 2544 794 906 2534 765 959 2555 720 1023 2631 577 1127 2699 604 1272 2773 652 1460 2854 682 1646 2913 740 1856 2957 766 2021 3005 755 2143 3014 711 2261 3068 670 2413 3074 625 2543 3151 519 2693 3216 434 2843 3258 356 2981 3335 260 3121 3378 184 3263 3454 132 3417 3528 142 3580 3620 195 3740 3676 289 3902 2565 896 233 2561 892 254 2570 904 278 2573 892 344 2567 892 394 2567 900 452 2577 904 547 2576 908 613 2573 892 695 2593 891 799 2596 876 866 2575 865 972 2563 843 1072 2645 744 1133 2700 740 1269 2773 763 1464 2851 812 1656 2911 862 1850 2976 913 2030 2998 906 2179 3035 857 2310 3035 828 2417 3088 776 2543 3175 700 2722 3236 659 2870 3289 600 3005 3337 559 3143 3410 505 3272 3457 492 3437 3522 495 3566 3596 507 3734 3661 562 3882 2619 1007 214 2618 1005 242 2623 995 294 2624 1003 342 2616 994 384 2628 1001 480 2638 989 555 2614 993 623 2615 987 712 2627 996 789 2630 971 902 2646 981 975 2610 972 1081 2653 931 1178 2719 842 1277 2803 886 1461 2888 939 1672 2937 996 1855 2984 1072 2047 3003 1055 2171 3047 1021 2311 3063 993 2441 3079 955 2563 3187 872 2746 3224 833 2865 3282 792 3012 3323 760 3143 3384 739 3303 3468 723 3430 3514 715 3607 3568 741 3710 3658 770 3886 2655 1130 228 2655 1124 248 2663 1140 304 2669 1122 342 2660 1128 410 2673 1115 478 2675 1130 565 2681 1123 643 2682 1113 737 2693 1107 826 2693 1101 913 2689 1101 1011 2677 1092 1104 2685 1083 1232 2757 1000 1319 2805 1013 1485 2882 1053 1679 2939 1126 1860 2984 1213 2070 3039 1225 2215 3041 1189 2323 3080 1144 2459 3110 1109 2590 3196 1058 2746 3238 1010 2903 3285 983 3019 3339 951 3153 3390 944 3296 3469 917 3448 3517 910 3571 3580 917 3724 3639 947 3903 2731 1277 186 2716 1259 235 2716 1270 270 2719 1265 352 2725 1255 403 2721 1256 493 2738 1249 557 2735 1251 635 2736 1244 728 2748 1243 827 2751 1223 925 2746 1231 1033 2731 1222 1163 2725 1205 1255 2735 1198 1353 2823 1147 1488 2878 1191 1678 2942 1253 1901 3006 1342 2096 3051 1363 2233 3063 1340 2358 3071 1315 2485 3121 1276 2615 3207 1233 2790 3261 1190 2924 3280 1157 3039 3335 1123 3164 3399 1111 3315 3441 1116 3444 3493 1105 3571 3562 1096 3726 3633 1112 3888 2762 1402 163 2773 1416 208 2768 1406 278 2784 1416 329 2784 1406 388 2809 1388 500 2796 1374 568 2803 1380 664 2800 1380 750 2800 1379 861 2799 1380 967 2789 1381 1061 2800 1358 1159 2784 1359 1304 2770 1347 1414 2804 1303 1529 2865 1311 1712 2932 1382 1904 2991 1461 2098 3067 1528 2281 3051 1513 2404 3103 1483 2530 3122 1445 2642 3203 1394 2800 3247 1370 2928 3305 1332 3071 3333 1307 3182 3372 1303 3304 3425 1285 3457 3499 1261 3600 3552 1254 3760 3619 1271 3888 2779 1568 140 2791 1570 189 2791 1564 252 2820 1565 334 2813 1563 396 2830 1572 476 2858 1556 566 2862 1543 661 2871 1538 779 2875 1525 889 2861 1536 987 2850 1528 1111 2849 1496 1218 2821 1515 1344 2848 1499 1450 2822 1498 1582 2887 1454 1711 2953 1517 1923 2998 1595 2114 3078 1693 2326 3072 1672 2439 3106 1656 2536 3128 1604 2670 3223 1581 2822 3255 1532 2963 3277 1497 3072 3328 1477 3208 3393 1464 3339 3427 1443 3475 3480 1435 3592 3530 1422 3748 3585 1440 3910 2794 1722 146 2794 1706 197 2799 1729 251 2826 1722 332 2816 1720 385 2840 1722 490 2854 1711 587 2870 1715 682 2912 1714 792 2896 1699 883 2903 1699 1019 2904 1696 1145 2908 1678 1242 2915 1678 1402 2909 1658 1502 2884 1647 1616 2879 1651 1765 2959 1645 1923 3012 1733 2127 3054 1832 2324 3085 1839 2458 3102 1821 2584 3143 1787 2703 3211 1741 2856 3234 1714 2980 3278 1673 3096 3316 1648 3225 3372 1626 3357 3411 1596 3463 3470 1575 3602 3512 1586 3738 3576 1606 3886 2802 1874 105 2818 1885 177 2795 1874 231 2836 1879 321 2838 1888 390 2852 1889 486 2870 1874 575 2882 1878 690 2902 1881 804 2923 1862 921 2948 1855 1029 2968 1874 1155 2962 1847 1287 2983 1845 1433 2940 1814 1551 2938 1830 1681 2937 1798 1807 2929 1804 1919 2990 1862 2115 3053 1972 2346 3083 2015 2488 3099 1979 2617 3139 1947 2719 3207 1918 2866 3224 1885 2980 3262 1830 3107 3309 1821 3233 3354 1797 3374 3396 1751 3478 3446 1743 3621 3492 1730 3759 3557 1757 3894 2794 2041 108 2825 2033 194 2814 2038 246 2827 2042 299 2832 2026 394 2852 2031 482 2863 2045 580 2877 2035 688 2907 2033 812 2922 2040 917 2950 2040 1053 2998 2026 1192 3011 2015 1320 3021 2008 1464 3038 2000 1592 2994 1997 1713 2999 1973 1832 2960 1982 1972 2998 1998 2133 3046 2082 2335 3091 2174 2537 3123 2142 2663 3142 2117 2766 3199 2081 2894 3236 2041 3008 3253 2016 3115 3306 1980 3238 3341 1950 3364 3373 1930 3513 3423 1904 3622 3479 1884 3779 3524 1892 3914 2819 2181 121 2825 2175 207 2838 2176 260 2823 2191 336 2858 2175 405 2869 2189 518 2880 2177 612 2887 2199 722 2895 2199 824 2902 2203 934 2963 2195 1100 2969 2188 1218 3002 2191 1351 3041 2180 1492 3060 2169 1655 3073 2180 1795 3054 2173 1934 3027 2164 2064 2998 2168 2190 3034 2210 2374 3111 2300 2567 3114 2314 2679 3155 2292 2792 3195 2248 2932 3231 2218 3024 3263 2174 3155 3299 2142 3286 3324 2112 3385 3381 2081 3516 3406 2050 3650 3450 2044 3770 3500 2042 3902 2806 2352 123 2819 2343 207 2824 2351 256 2836 2336 341 2837 2338 432 2858 2343 530 2867 2336 627 2884 2333 731 2909 2337 849 2932 2343 973 2943 2346 1094 2975 2343 1228 2993 2340 1372 3014 2339 1516 3051 2352 1670 3073 2336 1814 3100 2331 2004 3090 2343 2130 3067 2329 2267 3015 2352 2376 3082 2402 2557 3149 2465 2756 3170 2439 2826 3207 2407 2932 3226 2362 3046 3271 2329 3164 3298 2304 3286 3321 2270 3408 3348 2221 3522 3375 2186 3647 3426 2185 3813 3491 2174 3934 2796 2496 203 2797 2479 273 2809 2481 370 2822 2487 408 2828 2489 488 2833 2487 578 2854 2497 683 2866 2492 777 2890 2500 892 2918 2500 1008 2931 2506 1137 2950 2499 1271 2978 2497 1431 2978 2490 1550 3025 2490 1717 3062 2508 1867 3073 2492 2003 3111 2505 2199 3111 2509 2335 3079 2508 2462 3081 2500 2581 3126 2606 2756 3149 2593 2873 3211 2578 3006 3232 2516 3091 3258 2487 3207 3298 2453 3302 3306 2418 3436 3317 2373 3540 3351 2343 3657 3398 2302 3818 3450 2322 3964 2721 2554 416 2731 2568 471 2726 2566 496 2735 2571 549 2740 2574 629 2771 2574 697 2779 2577 763 2813 2585 873 2827 2608 978 2858 2617 1098 2903 2618 1224 2923 2643 1322 2956 2642 1472 2981 2662 1597 3008 2656 1762 3026 2656 1895 3065 2647 2058 3085 2654 2235 3126 2663 2387 3140 2669 2536 3133 2657 2650 3155 2685 2763 3178 2724 2928 3225 2712 3024 3231 2669 3122 3244 2638 3221 3264 2593 3312 3277 2550 3442 3302 2514 3564 3327 2475 3704 3366 2453 3828 3422 2433 3958 2703 2661 522 2725 2683 555 2710 2674 576 2705 2681 648 2724 2670 709 2726 2688 770 2740 2693 862 2757 2697 950 2778 2704 1052 2793 2713 1147 2821 2716 1279 2832 2731 1396 2878 2732 1531 2910 2735 1672 2941 2759 1802 2981 2767 1949 3021 2798 2110 3047 2798 2254 3099 2807 2416 3128 2820 2552 3158 2832 2718 3146 2821 2836 3190 2880 2978 3224 2834 3063 3220 2802 3158 3238 2777 3262 3242 2726 3339 3253 2701 3473 3280 2657 3582 3286 2626 3700 3315 2592 3829 3397 2577 3999 2670 2792 638 2692 2792 671 2698 2805 724 2698 2787 750 2684 2802 803 2702 2802 871 2714 2808 963 2714 2816 1033 2735 2819 1147 2739 2840 1232 2763 2846 1335 2787 2851 1464 2822 2845 1589 2842 2847 1727 2883 2868 1868 2926 2864 1993 2957 2883 2144 2982 2891 2298 3018 2913 2433 3065 2922 2573 3146 2951 2733 3206 2972 2885 3202 2984 2984 3239 2984 3134 3229 2956 3202 3238 2932 3291 3215 2870 3378 3209 2835 3479 3245 2788 3588 3266 2756 3717 3269 2735 3840 3329 2712 3967 2641 2922 751 2666 2927 772 2665 2934 814 2659 2924 849 2681 2938 933 2684 2941 963 2697 2934 1046 2709 2934 1128 2722 2931 1217 2730 2935 1311 2727 2970 1418 2755 2947 1527 2778 2971 1631 2813 2981 1769 2822 2979 1895 2858 2986 2035 2887 2991 2193 2926 3020 2330 2988 3007 2472 3035 3033 2603 3067 3049 2746 3129 3067 2888 3182 3102 3036 3236 3127 3163 3215 3102 3232 3218 3041 3317 3223 3005 3412 3223 2956 3505 3211 2921 3606 3220 2910 3733 3236 2870 3876 3268 2882 3963 2645 3065 897 2628 3053 917 2633 3040 942 2648 3053 999 2648 3061 1037 2639 3056 1089 2649 3053 1145 2668 3060 1226 2693 3077 1318 2698 3081 1385 2717 3076 1510 2738 3072 1622 2767 3091 1726 2788 3084 1868 2809 3085 1943 2837 3096 2083 2878 3113 2238 2898 3098 2345 2934 3108 2487 2974 3123 2615 3017 3132 2733 3080 3153 2896 3129 3181 3000 3198 3216 3136 3226 3228 3261 3197 3180 3321 3167 3121 3424 3164 3101 3536 3179 3066 3623 3181 3042 3721 3177 3007 3855 3242 3001 4011 2589 3195 1009 2589 3184 1075 2589 3187 1082 2601 3199 1123 2611 3193 1175 2612 3183 1200 2623 3186 1267 2636 3193 1351 2655 3208 1424 2672 3191 1517 2680 3193 1620 2709 3186 1712 2747 3208 1821 2754 3194 1927 2766 3199 2035 2806 3217 2161 2853 3217 2286 2872 3218 2385 2908 3230 2498 2952 3230 2635 2996 3246 2768 3032 3260 2886 3075 3294 3017 3146 3311 3132 3163 3311 3261 3154 3286 3335 3135 3262 3439 3116 3231 3528 3098 3182 3649 3120 3149 3775 3178 3150 3904 3183 3133 4001 2583 3314 1210 2587 3314 1236 2584 3313 1243 2594 3318 1277 2612 3319 1319 2599 3304 1344 2619 3310 1422 2640 3326 1492 2642 3328 1550 2651 3321 1650 2694 3309 1745 2688 3336 1836 2731 3314 1937 2744 3321 2016 2775 3310 2118 2780 3318 2217 2824 3332 2342 2852 3327 2450 2855 3331 2552 2904 3351 2651 2944 3369 2745 2978 3364 2896 3018 3378 3032 3068 3409 3134 3111 3399 3239 3085 3412 3378 3123 3403 3465 3114 3346 3527 3070 3313 3630 3054 3296 3764 3062 3275 3886 3111 3279 4022 2617 3444 1389 2602 3444 1395 2602 3442 1389 2613 3457 1443 2615 3456 1469 2613 3433 1499 2617 3441 1556 2633 3450 1626 2649 3444 1696 2658 3449 1778 2685 3430 1862 2704 3442 1950 2691 3439 2018 2729 3432 2120 2774 3433 2223 2771 3446 2304 2800 3458 2425 2815 3446 2506 2865 3444 2609 2868 3474 2694 2902 3472 2813 2960 3480 2933 2999 3488 3031 3037 3511 3151 3054 3509 3266 3054 3498 3347 3035 3536 3459 3083 3488 3555 3078 3468 3667 3025 3429 3757 3042 3423 3886 3071 3428 4033 2632 3571 1601 2626 3573 1631 2634 3572 1649 2646 3581 1669 2646 3569 1698 2658 3573 1758 2673 3563 1771 2664 3571 1830 2701 3573 1914 2687 3573 1968 2712 3573 2023 2715 3582 2116 2752 3562 2189 2742 3580 2238 2782 3566 2331 2802 3569 2413 2822 3563 2502 2847 3572 2603 2833 3584 2680 2881 3598 2769 2888 3591 2857 2943 3610 2987 2953 3605 3051 3032 3623 3171 3011 3635 3266 2972 3632 3373 2987 3632 3488 3023 3648 3604 3027 3592 3659 3045 3599 3797 3036 3558 3903 3085 3591 4045 2692 3716 1874 2684 3696 1902 2685 3695 1881 2720 3689 1920 2696 3704 1947 2727 3696 1966 2734 3710 2020 2742 3689 2038 2752 3698 2115 2754 3699 2165 2769 3710 2203 2769 3705 2280 2762 3705 2321 2800 3702 2390 2823 3705 2469 2838 3709 2534 2849 3699 2617 2848 3722 2676 2856 3722 2771 2900 3721 2853 2901 3718 2895 2906 3740 3002 2963 3723 3089 3000 3739 3202 2970 3761 3292 2898 3738 3375 2904 3762 3477 2921 3749 3602 3028 3728 3705 3026 3719 3820 3036 3721 3920 3077 3738 4070 2795 3860 2160 2791 3851 2171 2797 3858 2161 2811 3836 2182 2784 3830 2204 2800 3835 2247 2812 3849 2285 2816 3848 2296 2816 3844 2340 2832 3852 2369 2828 3851 2404 2872 3838 2458 2869 3832 2511 2869 3839 2578 2868 3837 2619 2900 3840 2691 2906 3855 2748 2902 3861 2814 2921 3845 2883 2921 3864 2929 2922 3848 3022 2932 3879 3072 2950 3861 3164 3018 3868 3254 2977 3892 3364 2880 3893 3424 2864 3894 3540 2854 3894 3637 2890 3887 3753 3005 3893 3820 3047 3849 3945 3118 3868 4082 2934 3995 2489 2946 3983 2490 2935 3987 2483 2942 3990 2518 2933 3981 2511 2947 3995 2525 2943 3980 2550 2971 3979 2586 2970 3978 2609 2971 4003 2630 2954 3997 2659 2976 3993 2702 2977 3981 2736 3001 3992 2780 2975 3999 2840 2991 3987 2863 3011 4014 2923 3010 4008 2975 3023 4012 3039 3028 3997 3107 3031 4015 3139 3050 4030 3206 3018 4019 3293 3087 4019 3340 3034 4042 3437 2913 4038 3493 2843 4059 3570 2838 4057 3683 2840 4047 3773 2910 4062 3902 3039 4015 4010 3147 4015 4095 2462 366 305 2503 390 305 2499 422 295 2510 437 281 2509 452 365 2519 462 418 2523 450 492 2526 437 552 2526 433 614 2523 413 697 2551 352 785 2565 208 843 2632 0 906 2695 4 1036 2767 4 1221 2845 20 1384 2909 0 1579 2983 4 1771 3039 0 1936 3079 10 2097 3095 0 2195 3097 18 2317 3144 15 2462 3197 12 2609 3265 12 2760 3368 3 2929 3407 13 3078 3482 0 3236 3582 1 3398 3643 15 3559 3710 12 3700 3786 4 3854 2479 402 306 2495 419 293 2493 451 284 2520 479 306 2521 493 361 2523 463 429 2527 480 477 2539 466 537 2524 450 630 2536 430 710 2531 400 772 2571 271 834 2645 0 892 2688 10 1043 2772 0 1228 2848 5 1388 2901 4 1560 2970 15 1760 3037 12 1939 3070 13 2102 3085 10 2195 3106 6 2322 3166 4 2461 3189 5 2602 3307 4 2773 3368 3 2955 3439 4 3080 3501 14 3262 3553 12 3397 3634 0 3545 3710 15 3709 3783 27 3873 2507 432 274 2512 453 247 2535 488 258 2522 510 291 2550 509 368 2550 505 422 2553 486 491 2546 484 575 2549 479 639 2551 458 685 2545 416 767 2552 350 842 2642 22 910 2706 1 1044 2773 0 1205 2860 8 1407 2903 1 1572 2977 13 1767 3069 53 1967 3081 2 2094 3091 1 2220 3108 5 2327 3145 15 2470 3197 12 2609 3282 5 2768 3368 3 2931 3437 0 3069 3497 13 3249 3580 0 3397 3640 12 3554 3712 14 3702 3798 11 3862 2514 499 258 2538 514 244 2545 545 260 2542 537 292 2538 572 350 2556 536 403 2569 533 490 2554 544 569 2577 528 644 2565 501 720 2591 472 794 2564 435 869 2640 101 917 2712 7 1029 2782 11 1218 2842 23 1395 2911 25 1571 2994 106 1775 3069 202 1978 3082 140 2087 3102 53 2211 3121 11 2339 3157 23 2479 3220 5 2613 3276 5 2769 3377 14 2943 3441 3 3073 3497 13 3250 3573 0 3395 3630 1 3544 3702 5 3693 3791 16 3863 2557 563 235 2569 579 254 2565 609 241 2580 603 308 2582 614 360 2574 595 440 2600 581 499 2596 580 600 2575 564 638 2599 574 731 2604 538 805 2603 504 870 2653 278 938 2728 69 1060 2791 100 1215 2873 136 1411 2928 196 1589 3016 288 1809 3065 350 1985 3086 324 2105 3109 263 2231 3131 158 2351 3168 30 2469 3231 10 2647 3298 10 2812 3360 4 2962 3453 12 3120 3517 2 3269 3579 2 3409 3647 12 3559 3714 16 3704 3785 2 3885 2574 650 211 2583 660 213 2588 662 231 2595 651 282 2615 673 369 2618 663 423 2609 663 514 2628 647 583 2621 622 645 2636 624 743 2630 599 817 2620 579 904 2654 480 966 2752 229 1058 2803 252 1225 2868 297 1410 2919 364 1603 3020 417 1798 3065 493 1983 3108 471 2114 3127 436 2250 3148 389 2372 3182 288 2505 3226 127 2636 3319 8 2792 3414 3 2975 3464 0 3121 3505 11 3270 3577 1 3411 3629 0 3555 3724 3 3730 3780 0 3863 2606 725 141 2616 736 213 2627 743 280 2635 741 292 2635 732 345 2648 728 429 2636 732 485 2646 726 582 2643 723 637 2672 707 763 2660 693 844 2642 659 936 2677 624 979 2730 396 1061 2793 411 1204 2876 441 1400 2937 484 1573 3015 556 1798 3059 627 1990 3102 642 2136 3142 585 2249 3151 543 2381 3185 484 2497 3231 388 2659 3316 197 2811 3394 34 3000 3458 15 3128 3520 0 3271 3584 9 3423 3635 0 3565 3714 13 3729 3791 123 3850 2646 807 177 2662 819 214 2661 823 239 2664 815 258 2678 812 376 2660 811 419 2680 807 520 2683 815 589 2683 806 667 2687 794 743 2687 777 827 2687 760 924 2687 751 1014 2734 574 1107 2814 527 1241 2875 575 1436 2955 612 1599 3019 691 1811 3085 751 1998 3116 782 2153 3147 748 2274 3161 699 2395 3190 649 2538 3237 601 2677 3336 457 2826 3409 369 3025 3440 272 3140 3520 194 3294 3572 154 3427 3623 158 3569 3704 278 3705 3768 455 3872 2703 908 164 2704 908 190 2707 903 257 2703 900 288 2704 915 357 2711 916 428 2721 908 491 2728 908 578 2732 896 654 2736 884 749 2719 864 831 2724 874 935 2734 847 1034 2725 797 1118 2818 649 1232 2899 702 1410 2976 747 1611 3026 816 1790 3098 883 1992 3137 906 2149 3161 894 2285 3169 854 2431 3211 822 2554 3253 765 2679 3334 674 2828 3391 610 3004 3454 550 3136 3492 517 3274 3567 499 3427 3615 511 3538 3686 570 3716 3740 684 3862 2760 1038 156 2741 1042 196 2737 1033 220 2768 1014 287 2753 1022 360 2773 1020 413 2768 1017 513 2766 999 597 2777 1006 678 2785 994 772 2760 985 833 2774 970 960 2757 968 1067 2774 950 1152 2835 814 1231 2907 821 1424 2964 878 1617 3035 947 1804 3083 1009 2000 3137 1063 2179 3179 1043 2316 3184 1018 2431 3206 982 2568 3262 927 2713 3335 855 2862 3403 810 3010 3448 773 3144 3501 727 3273 3567 737 3439 3637 748 3573 3685 784 3717 3755 863 3857 2801 1129 126 2809 1145 155 2794 1156 204 2810 1148 294 2818 1139 366 2813 1135 435 2802 1129 498 2803 1125 600 2822 1125 702 2845 1110 779 2811 1102 843 2820 1095 954 2820 1073 1105 2812 1085 1192 2826 1029 1305 2937 943 1421 2984 1006 1634 3058 1068 1823 3105 1146 2011 3164 1208 2199 3184 1213 2337 3203 1178 2456 3232 1145 2588 3264 1102 2743 3348 1039 2873 3399 998 3031 3433 971 3153 3495 940 3283 3546 943 3434 3597 938 3585 3673 967 3704 3731 1038 3894 2850 1283 92 2858 1275 142 2847 1283 197 2852 1272 290 2849 1270 350 2865 1283 433 2871 1262 508 2877 1268 591 2870 1259 680 2893 1253 778 2873 1229 879 2879 1240 997 2897 1217 1131 2877 1219 1223 2850 1199 1322 2919 1101 1422 3000 1139 1648 3054 1211 1826 3114 1276 2034 3162 1365 2228 3174 1386 2368 3207 1350 2475 3240 1304 2605 3267 1266 2752 3350 1226 2895 3412 1184 3058 3440 1147 3191 3502 1120 3312 3554 1117 3463 3608 1129 3579 3663 1135 3740 3747 1190 3900 2911 1425 90 2908 1422 116 2913 1433 191 2928 1422 283 2937 1413 351 2902 1418 425 2908 1403 521 2911 1412 612 2905 1400 709 2923 1410 830 2936 1389 936 2924 1368 1044 2913 1360 1149 2920 1357 1256 2917 1340 1367 2906 1327 1500 2990 1259 1635 3048 1349 1834 3127 1419 2045 3175 1505 2249 3212 1527 2392 3223 1511 2511 3236 1487 2631 3282 1451 2763 3357 1390 2937 3426 1348 3083 3453 1330 3205 3509 1298 3317 3536 1282 3457 3595 1299 3596 3662 1312 3736 3733 1367 3899 2954 1559 40 2957 1565 118 2964 1571 179 2968 1569 266 2971 1568 334 2974 1563 439 2973 1568 523 2990 1568 631 2981 1549 729 2986 1548 838 2992 1549 942 2980 1521 1065 2989 1511 1178 2977 1512 1284 2963 1479 1396 2948 1486 1503 2976 1441 1631 3056 1477 1818 3130 1552 2045 3154 1641 2250 3206 1693 2420 3207 1683 2527 3255 1635 2646 3283 1608 2788 3368 1557 2924 3410 1520 3071 3464 1506 3223 3485 1478 3316 3530 1465 3467 3591 1462 3601 3653 1481 3739 3704 1493 3892 2973 1715 25 2976 1730 108 2977 1727 152 2982 1728 247 2991 1724 340 3006 1717 436 3025 1715 544 3023 1715 641 3033 1706 740 3035 1707 871 3051 1699 997 3034 1690 1080 3038 1677 1192 3042 1662 1334 3014 1662 1478 3025 1635 1589 2995 1630 1683 3046 1581 1835 3112 1690 2038 3165 1767 2283 3204 1863 2482 3235 1846 2570 3240 1816 2688 3304 1785 2805 3372 1746 2961 3405 1695 3083 3444 1675 3227 3461 1644 3336 3521 1622 3472 3578 1624 3620 3622 1631 3743 3702 1663 3900 2969 1871 27 2989 1886 75 2990 1871 147 2998 1879 245 3001 1880 327 3007 1885 436 3017 1873 532 3045 1874 648 3048 1870 771 3086 1861 896 3101 1845 1028 3092 1864 1138 3100 1851 1243 3079 1841 1372 3069 1814 1502 3084 1805 1632 3055 1788 1743 3032 1778 1887 3114 1807 2040 3170 1881 2279 3222 1988 2487 3228 2016 2621 3257 1991 2699 3305 1950 2849 3350 1902 2973 3400 1878 3104 3443 1844 3202 3453 1828 3337 3501 1791 3472 3565 1802 3631 3590 1809 3747 3651 1814 3906 2984 2049 20 2985 2044 60 2985 2022 129 2990 2020 246 2981 2043 345 3005 2030 441 3034 2029 553 3040 2033 665 3065 2025 783 3086 2020 893 3098 2020 1021 3134 2017 1159 3161 2011 1289 3140 2004 1429 3132 1985 1541 3102 1992 1650 3097 1964 1812 3083 1952 1928 3086 1934 2095 3143 2014 2279 3222 2111 2495 3239 2192 2636 3256 2161 2753 3297 2118 2879 3346 2089 3017 3382 2043 3121 3383 2023 3241 3443 1981 3358 3493 1959 3487 3543 1938 3624 3604 1938 3771 3639 1953 3902 2969 2184 28 2977 2184 66 2970 2195 151 2988 2180 258 2997 2187 370 3000 2180 466 3013 2174 565 3028 2189 674 3062 2172 812 3082 2176 922 3102 2180 1050 3137 2176 1191 3160 2171 1343 3175 2166 1489 3188 2153 1620 3179 2140 1755 3159 2144 1870 3145 2119 2021 3109 2125 2146 3150 2143 2281 3190 2228 2482 3239 2323 2701 3255 2306 2792 3293 2284 2887 3349 2235 3037 3372 2195 3129 3407 2179 3257 3435 2141 3377 3481 2114 3505 3511 2092 3623 3573 2090 3785 3618 2080 3925 2943 2343 19 2963 2325 86 2973 2339 196 2981 2338 272 2985 2345 369 2998 2347 493 3017 2327 590 3043 2342 714 3056 2343 818 3070 2340 948 3092 2323 1081 3109 2337 1216 3146 2334 1361 3160 2337 1509 3183 2312 1648 3215 2321 1822 3223 2311 1953 3200 2309 2088 3155 2302 2199 3132 2312 2330 3179 2359 2505 3228 2443 2705 3254 2463 2825 3300 2436 2932 3332 2404 3053 3345 2352 3177 3388 2326 3255 3421 2295 3393 3462 2255 3513 3508 2235 3641 3543 2215 3772 3601 2227 3915 2953 2490 56 2966 2482 170 2957 2490 229 2971 2490 330 2989 2488 423 2994 2484 498 2997 2484 632 3024 2490 756 3035 2485 859 3059 2486 958 3094 2473 1118 3102 2490 1251 3133 2494 1379 3157 2481 1531 3169 2474 1679 3177 2473 1847 3220 2492 2007 3246 2480 2189 3206 2471 2297 3174 2484 2381 3148 2494 2531 3234 2547 2696 3280 2593 2884 3293 2577 2952 3355 2556 3080 3352 2509 3189 3402 2479 3292 3410 2445 3392 3419 2412 3528 3475 2385 3658 3514 2357 3794 3569 2358 3932 2959 2613 182 2964 2626 260 2970 2622 334 2977 2622 377 2966 2613 494 2984 2621 586 2988 2611 675 3012 2623 788 3030 2627 898 3042 2627 1025 3055 2646 1160 3080 2632 1286 3113 2647 1425 3142 2640 1592 3142 2631 1715 3170 2623 1885 3206 2625 2027 3219 2637 2185 3249 2648 2347 3265 2653 2481 3242 2641 2617 3227 2648 2749 3272 2730 2923 3280 2724 3003 3336 2688 3113 3362 2650 3221 3379 2616 3301 3384 2591 3414 3433 2559 3539 3437 2536 3661 3496 2495 3774 3550 2486 3940 2892 2678 419 2883 2696 449 2898 2697 507 2897 2693 567 2923 2712 648 2921 2708 715 2921 2718 780 2947 2720 877 2967 2743 965 3008 2742 1102 3017 2753 1215 3047 2763 1340 3074 2785 1470 3109 2786 1613 3129 2779 1770 3163 2781 1906 3183 2786 2056 3197 2783 2205 3224 2785 2372 3255 2805 2556 3276 2800 2690 3262 2808 2790 3269 2817 2913 3302 2870 3084 3356 2838 3180 3339 2798 3239 3359 2762 3341 3395 2713 3460 3408 2702 3566 3415 2660 3671 3460 2642 3802 3504 2609 3963 2829 2804 567 2845 2807 610 2846 2808 622 2855 2803 699 2873 2809 770 2876 2815 820 2879 2805 898 2879 2812 984 2890 2836 1094 2930 2836 1184 2935 2829 1313 2977 2841 1436 2997 2857 1566 3038 2868 1694 3053 2873 1808 3083 2894 1934 3126 2908 2092 3172 2927 2249 3195 2926 2415 3237 2935 2568 3270 2947 2702 3297 2946 2865 3282 2948 2979 3306 3005 3101 3342 2983 3196 3340 2940 3271 3386 2891 3391 3379 2855 3463 3379 2833 3575 3405 2788 3716 3426 2757 3828 3473 2741 3971 2828 2938 706 2828 2934 723 2828 2925 764 2840 2939 810 2838 2936 872 2839 2941 935 2852 2938 1001 2877 2947 1094 2884 2939 1179 2880 2951 1286 2897 2966 1385 2933 2973 1507 2978 2962 1651 2967 2975 1780 2984 2975 1872 3037 2983 2014 3054 3008 2174 3069 3010 2288 3145 3031 2443 3153 3039 2577 3229 3052 2722 3252 3082 2877 3290 3094 3008 3313 3107 3118 3338 3127 3249 3358 3072 3299 3346 3038 3398 3332 2990 3493 3363 2951 3595 3363 2929 3719 3384 2895 3854 3417 2887 3989 2803 3065 828 2809 3077 850 2818 3061 929 2834 3058 945 2812 3053 981 2828 3066 1034 2840 3072 1107 2839 3072 1180 2860 3077 1261 2873 3065 1356 2892 3085 1475 2890 3078 1574 2909 3094 1716 2908 3108 1811 2953 3092 1949 2975 3109 2066 2988 3116 2181 3049 3115 2346 3072 3133 2481 3127 3121 2616 3159 3162 2747 3199 3176 2855 3268 3194 3017 3309 3229 3162 3383 3249 3294 3339 3233 3358 3360 3177 3440 3342 3144 3536 3326 3095 3628 3329 3050 3733 3357 3033 3868 3365 3013 3983 2761 3187 999 2764 3184 1019 2800 3179 1040 2796 3169 1082 2792 3180 1132 2812 3174 1162 2821 3189 1249 2811 3183 1309 2828 3186 1403 2848 3199 1479 2854 3199 1583 2852 3212 1666 2885 3202 1795 2898 3215 1905 2942 3217 2010 2950 3218 2139 2968 3212 2257 3013 3218 2390 3040 3228 2517 3095 3245 2640 3126 3261 2744 3176 3260 2870 3220 3297 3022 3260 3310 3181 3329 3327 3287 3355 3334 3410 3297 3297 3435 3287 3262 3528 3280 3243 3634 3297 3184 3736 3315 3164 3867 3358 3144 4008 2775 3316 1180 2776 3315 1208 2774 3315 1223 2785 3307 1224 2794 3308 1272 2798 3316 1320 2810 3315 1378 2811 3309 1449 2827 3309 1518 2825 3344 1607 2825 3325 1683 2850 3330 1791 2875 3329 1903 2883 3330 1996 2890 3337 2107 2939 3330 2210 2967 3337 2305 2987 3350 2428 2994 3348 2544 3040 3357 2628 3074 3362 2767 3111 3373 2896 3140 3378 3011 3196 3409 3134 3268 3424 3296 3277 3457 3392 3281 3410 3469 3265 3367 3557 3245 3329 3663 3235 3298 3762 3253 3306 3906 3284 3295 4016 2776 3441 1383 2792 3455 1404 2778 3441 1390 2781 3432 1434 2778 3455 1451 2787 3444 1494 2808 3444 1567 2799 3440 1607 2812 3440 1664 2826 3458 1756 2840 3457 1861 2850 3450 1914 2864 3441 1998 2883 3458 2086 2896 3446 2210 2921 3454 2302 2939 3456 2390 2968 3460 2515 2979 3460 2578 3003 3477 2695 3036 3473 2797 3068 3487 2917 3103 3504 3033 3149 3508 3163 3226 3523 3292 3218 3539 3389 3216 3524 3492 3239 3520 3591 3201 3472 3643 3200 3443 3759 3203 3426 3871 3235 3437 4015 2776 3577 1571 2777 3587 1615 2793 3573 1611 2791 3579 1650 2782 3579 1681 2786 3573 1730 2810 3584 1792 2810 3586 1827 2819 3565 1878 2831 3572 1960 2833 3580 2007 2856 3566 2080 2869 3569 2153 2891 3571 2228 2910 3591 2310 2914 3581 2415 2926 3583 2503 2946 3589 2579 2975 3591 2657 3005 3585 2756 3027 3581 2850 3064 3592 2953 3094 3602 3064 3118 3609 3154 3165 3627 3266 3184 3634 3395 3150 3638 3506 3182 3654 3594 3213 3617 3697 3170 3588 3812 3185 3583 3944 3204 3577 4077 2827 3718 1847 2842 3730 1855 2826 3706 1875 2850 3707 1912 2832 3712 1918 2855 3711 1947 2855 3718 1989 2867 3731 2061 2867 3701 2088 2877 3713 2147 2897 3712 2207 2898 3705 2257 2907 3699 2310 2927 3700 2395 2940 3717 2446 2949 3713 2543 2953 3720 2608 2975 3706 2681 2999 3717 2756 2995 3715 2831 3019 3728 2938 3036 3734 3005 3069 3726 3113 3098 3751 3196 3150 3741 3313 3111 3777 3417 3101 3762 3530 3071 3754 3591 3149 3780 3737 3166 3731 3802 3179 3720 3958 3212 3737 4078 2892 3852 2144 2905 3864 2164 2910 3863 2169 2911 3863 2169 2908 3849 2198 2909 3855 2211 2923 3842 2245 2929 3852 2296 2930 3856 2326 2957 3849 2370 2957 3848 2403 2959 3845 2468 2981 3846 2492 2979 3861 2583 3002 3839 2623 3004 3853 2682 3020 3852 2763 3036 3855 2805 3026 3864 2868 3047 3851 2959 3053 3857 3015 3064 3866 3092 3085 3866 3176 3098 3878 3245 3121 3884 3329 3132 3881 3452 3034 3890 3509 3009 3889 3620 3037 3895 3735 3106 3897 3854 3152 3855 3955 3245 3900 4067 3008 3999 2457 3033 4014 2474 3036 4000 2493 3035 4000 2493 3027 3983 2483 3037 4004 2527 3037 4008 2559 3051 4002 2571 3053 3999 2601 3062 4010 2638 3072 4002 2676 3072 3995 2709 3069 3999 2746 3117 3992 2804 3096 4002 2826 3121 4012 2898 3120 3998 2939 3131 3999 2985 3140 4005 3027 3143 4004 3096 3133 4009 3166 3145 4010 3219 3153 4015 3272 3153 4043 3364 3185 4018 3442 3162 4040 3492 3039 4064 3563 3006 4048 3662 3017 4061 3785 3038 4060 3914 3154 4031 4001 3253 4047 4095 2647 372 276 2636 398 257 2650 421 275 2668 476 260 2682 453 308 2685 465 388 2679 447 437 2682 443 518 2698 421 589 2691 397 671 2704 338 744 2690 261 833 2772 10 870 2818 13 997 2907 13 1171 2989 0 1354 3031 0 1533 3097 0 1726 3177 0 1903 3215 6 2078 3229 3 2196 3260 14 2337 3304 14 2484 3324 0 2600 3384 0 2737 3511 13 2923 3548 0 3083 3627 3 3246 3680 1 3394 3774 15 3556 3812 3 3690 3893 13 3825 2638 402 261 2651 422 256 2658 467 251 2680 496 270 2683 496 285 2681 484 367 2695 479 434 2693 469 525 2680 459 597 2699 429 675 2689 379 759 2684 324 821 2753 26 866 2844 0 992 2909 0 1165 2967 15 1357 3045 8 1536 3104 8 1722 3154 4 1906 3225 7 2086 3243 6 2200 3271 0 2340 3288 1 2469 3322 3 2614 3385 0 2745 3479 15 2949 3535 0 3084 3632 0 3253 3680 0 3397 3749 14 3555 3797 0 3662 3890 4 3850 2664 436 269 2667 480 256 2686 499 219 2697 519 261 2697 517 300 2681 510 358 2725 509 464 2717 488 543 2717 470 609 2692 462 665 2709 425 760 2721 378 831 2773 86 891 2853 6 988 2918 9 1184 2971 1 1334 3048 8 1525 3111 16 1729 3172 6 1912 3226 11 2086 3254 4 2209 3271 0 2342 3289 3 2452 3336 12 2613 3352 15 2744 3498 0 2942 3537 3 3086 3631 0 3253 3684 1 3398 3739 15 3518 3812 3 3691 3893 12 3827 2689 512 222 2694 517 223 2676 535 226 2706 564 236 2698 563 298 2707 547 367 2726 556 464 2714 533 514 2724 517 609 2703 506 683 2733 455 762 2732 430 846 2754 212 915 2840 7 1000 2919 9 1171 2980 8 1341 3046 6 1520 3122 10 1712 3174 63 1914 3246 131 2087 3257 56 2220 3271 5 2344 3291 1 2471 3359 0 2626 3367 11 2747 3510 11 2954 3550 17 3106 3629 0 3251 3696 1 3398 3758 4 3542 3812 14 3703 3890 3 3851 2705 568 224 2690 585 213 2717 600 199 2720 615 246 2722 614 275 2746 602 383 2748 606 468 2747 582 527 2747 575 621 2752 564 701 2741 531 786 2733 487 852 2761 372 928 2890 5 1010 2914 6 1146 2975 13 1336 3036 42 1529 3122 92 1718 3196 221 1926 3234 319 2135 3243 267 2239 3265 190 2355 3307 72 2470 3353 0 2622 3404 5 2772 3477 0 2955 3566 0 3107 3643 0 3257 3680 0 3400 3752 14 3561 3812 3 3669 3893 0 3857 2733 644 155 2751 677 160 2752 677 172 2761 676 255 2765 669 312 2755 664 378 2763 664 462 2768 645 538 2772 639 604 2778 635 708 2784 603 787 2763 575 873 2771 505 936 2863 174 1006 2938 86 1156 2993 129 1346 3059 211 1549 3139 285 1745 3193 391 1943 3256 473 2115 3272 444 2234 3280 398 2365 3314 311 2507 3346 183 2629 3379 28 2760 3501 3 2946 3569 3 3121 3633 0 3258 3695 1 3401 3733 2 3549 3828 0 3707 3898 3 3851 2773 748 106 2756 760 122 2760 749 186 2792 748 234 2774 751 293 2791 748 383 2788 745 449 2792 729 515 2794 716 604 2796 703 711 2801 695 800 2816 665 911 2787 636 972 2864 423 1055 2950 264 1177 3010 322 1373 3072 377 1544 3124 465 1756 3208 535 1947 3261 629 2127 3271 606 2251 3309 564 2383 3322 511 2504 3357 442 2649 3411 332 2820 3479 79 2933 3563 7 3121 3632 0 3253 3680 0 3400 3758 5 3552 3812 3 3694 3880 176 3857 2814 853 73 2818 843 125 2822 843 170 2831 846 241 2818 839 298 2821 831 380 2834 823 453 2831 811 537 2838 802 626 2838 809 719 2837 773 800 2848 760 903 2817 730 974 2860 646 1099 2961 439 1167 3010 473 1375 3074 539 1557 3151 602 1762 3205 676 1945 3270 773 2149 3303 759 2266 3314 736 2389 3330 694 2524 3353 629 2650 3415 552 2805 3514 424 2975 3563 298 3130 3617 220 3272 3685 172 3414 3734 187 3548 3799 306 3701 3873 513 3854 2854 932 42 2851 950 82 2856 945 147 2860 937 236 2863 929 299 2878 938 381 2852 923 457 2885 924 529 2891 909 618 2888 899 714 2869 871 813 2882 864 916 2863 838 1002 2869 820 1109 2929 621 1181 3034 620 1351 3066 685 1551 3141 745 1748 3212 828 1963 3254 909 2153 3296 920 2296 3316 890 2416 3334 850 2523 3379 802 2669 3411 739 2808 3493 654 2967 3572 585 3132 3604 537 3252 3678 518 3405 3728 525 3551 3783 583 3706 3868 728 3861 2917 1055 66 2896 1050 78 2904 1052 135 2909 1052 205 2909 1044 316 2904 1044 377 2909 1037 464 2913 1026 542 2915 1014 626 2914 1023 737 2909 1006 818 2913 977 903 2922 956 1024 2912 935 1114 2923 850 1214 3045 755 1353 3086 808 1545 3148 898 1749 3213 957 1956 3273 1042 2158 3312 1066 2312 3328 1056 2438 3345 1018 2553 3382 976 2690 3421 932 2828 3501 851 2979 3555 812 3122 3623 766 3279 3676 756 3424 3739 760 3574 3783 802 3701 3864 919 3857 2948 1174 18 2948 1166 38 2953 1162 116 2955 1157 194 2961 1159 295 2951 1155 376 2953 1145 443 2968 1142 552 2958 1134 643 2979 1124 733 2974 1118 829 2969 1096 932 2960 1071 1076 2961 1062 1139 2946 1039 1260 3023 907 1348 3087 945 1557 3172 1009 1745 3222 1088 1972 3291 1181 2178 3325 1236 2333 3331 1213 2452 3355 1183 2562 3385 1149 2711 3424 1090 2835 3501 1022 3016 3571 995 3161 3621 962 3285 3656 946 3416 3711 961 3573 3772 989 3696 3856 1093 3876 2999 1310 6 2994 1296 32 3002 1296 98 3003 1300 166 3000 1295 288 3014 1289 361 3012 1275 455 3023 1270 549 3027 1258 639 3020 1266 740 3007 1232 850 3025 1234 964 3020 1204 1068 3003 1195 1182 3000 1164 1291 3032 1125 1405 3114 1068 1548 3164 1139 1756 3226 1222 1966 3271 1311 2172 3341 1391 2365 3344 1367 2482 3355 1344 2610 3403 1315 2741 3427 1278 2869 3515 1215 3037 3570 1168 3172 3615 1136 3306 3656 1141 3446 3708 1133 3559 3769 1178 3718 3851 1243 3877 3048 1448 25 3035 1428 27 3051 1438 76 3056 1431 146 3071 1430 264 3062 1422 364 3041 1422 468 3068 1413 558 3061 1413 667 3056 1396 762 3067 1382 876 3065 1374 995 3076 1348 1107 3061 1332 1215 3057 1315 1326 3053 1316 1473 3112 1205 1574 3171 1284 1766 3231 1353 1976 3281 1442 2189 3347 1541 2387 3341 1549 2518 3352 1512 2621 3393 1488 2746 3443 1436 2879 3534 1392 3045 3580 1347 3190 3608 1321 3316 3657 1312 3456 3706 1320 3578 3769 1350 3718 3845 1425 3889 3116 1575 0 3095 1588 10 3113 1572 63 3103 1571 165 3112 1575 255 3116 1573 367 3120 1565 472 3119 1565 586 3114 1549 666 3116 1540 785 3127 1535 878 3108 1520 990 3129 1517 1139 3107 1491 1247 3109 1479 1378 3095 1466 1492 3078 1444 1612 3166 1406 1756 3215 1490 1974 3277 1588 2198 3339 1677 2401 3351 1715 2528 3376 1673 2649 3397 1654 2781 3443 1603 2899 3508 1559 3062 3563 1520 3199 3601 1499 3324 3650 1490 3453 3701 1484 3587 3758 1514 3725 3829 1569 3880 3141 1728 7 3111 1742 6 3133 1737 42 3132 1730 130 3149 1738 265 3160 1729 371 3161 1728 476 3162 1706 580 3167 1696 697 3160 1699 812 3166 1692 923 3168 1673 1042 3178 1677 1153 3177 1645 1298 3129 1638 1388 3148 1620 1515 3125 1609 1642 3137 1579 1771 3224 1614 1971 3263 1708 2195 3335 1804 2410 3371 1855 2583 3363 1844 2685 3391 1807 2792 3444 1777 2938 3509 1730 3085 3563 1692 3208 3592 1666 3336 3640 1649 3463 3687 1642 3589 3734 1671 3734 3814 1719 3899 3140 1891 16 3141 1891 4 3140 1894 32 3143 1892 94 3153 1883 263 3166 1899 372 3159 1875 478 3186 1876 604 3192 1871 723 3211 1866 854 3234 1851 968 3228 1837 1087 3219 1831 1206 3210 1821 1344 3204 1815 1470 3194 1797 1583 3168 1765 1698 3131 1769 1826 3215 1734 1942 3281 1817 2220 3322 1936 2421 3369 2029 2612 3363 2007 2697 3392 1979 2829 3432 1955 2943 3501 1918 3095 3548 1861 3214 3568 1835 3333 3638 1828 3485 3670 1818 3601 3721 1834 3747 3788 1862 3897 3127 2054 0 3137 2048 3 3137 2046 27 3136 2047 126 3151 2028 243 3167 2029 370 3180 2034 499 3193 2026 619 3208 2017 729 3229 2017 858 3261 2012 989 3263 1999 1107 3256 2004 1242 3263 1976 1378 3249 1967 1492 3240 1945 1598 3216 1928 1744 3215 1919 1876 3200 1926 2023 3264 1944 2196 3290 2052 2412 3352 2140 2616 3380 2174 2756 3402 2147 2866 3417 2110 2977 3507 2073 3111 3534 2038 3231 3561 2000 3340 3607 1983 3472 3662 1962 3616 3709 1973 3754 3761 1998 3899 3132 2193 0 3140 2191 4 3145 2190 32 3144 2177 133 3160 2199 257 3157 2197 391 3176 2181 493 3185 2184 632 3218 2192 751 3221 2185 886 3260 2176 1016 3281 2167 1140 3302 2149 1299 3308 2157 1436 3292 2144 1561 3291 2120 1701 3273 2116 1814 3252 2112 1971 3215 2099 2067 3230 2100 2215 3280 2165 2419 3343 2274 2636 3376 2335 2787 3382 2305 2872 3410 2274 2999 3505 2228 3134 3522 2189 3261 3557 2167 3387 3588 2133 3478 3642 2130 3618 3697 2126 3764 3720 2133 3879 3126 2339 0 3122 2339 13 3128 2342 45 3139 2335 168 3147 2336 300 3154 2334 412 3173 2330 535 3200 2330 669 3197 2323 773 3228 2335 909 3250 2324 1042 3263 2320 1165 3293 2317 1316 3303 2305 1462 3340 2306 1608 3350 2290 1767 3318 2295 1887 3321 2295 2026 3266 2260 2119 3246 2263 2265 3273 2286 2420 3315 2380 2627 3377 2469 2817 3417 2453 2944 3418 2418 3018 3485 2375 3177 3508 2346 3278 3538 2317 3377 3582 2284 3506 3620 2257 3635 3673 2263 3766 3707 2266 3913 3122 2484 0 3120 2487 18 3129 2473 92 3125 2477 235 3159 2479 353 3149 2474 456 3160 2471 584 3180 2474 705 3199 2476 822 3217 2477 928 3244 2466 1093 3262 2470 1218 3264 2468 1346 3286 2471 1508 3324 2471 1649 3331 2465 1813 3352 2458 1970 3363 2457 2121 3328 2446 2245 3302 2448 2346 3261 2446 2460 3320 2490 2636 3396 2578 2845 3408 2607 2968 3419 2561 3049 3475 2529 3193 3505 2492 3294 3549 2460 3387 3564 2441 3527 3587 2411 3622 3647 2407 3768 3687 2397 3912 3118 2634 37 3122 2632 93 3122 2618 194 3141 2641 300 3144 2623 409 3164 2632 525 3164 2626 627 3181 2611 729 3194 2632 868 3194 2626 995 3212 2619 1126 3237 2627 1254 3259 2634 1393 3281 2608 1527 3286 2632 1681 3317 2619 1840 3347 2624 1986 3370 2632 2155 3390 2623 2315 3339 2621 2429 3322 2603 2552 3295 2608 2664 3370 2673 2837 3436 2738 3015 3414 2716 3087 3486 2686 3210 3504 2655 3323 3533 2620 3420 3548 2593 3536 3569 2558 3653 3622 2542 3785 3676 2528 3938 3119 2746 235 3125 2763 275 3107 2743 358 3105 2767 408 3121 2749 491 3129 2762 593 3134 2757 704 3161 2768 822 3159 2776 946 3174 2780 1051 3211 2779 1177 3226 2774 1318 3250 2767 1438 3257 2781 1585 3278 2784 1722 3292 2774 1870 3317 2768 2031 3335 2768 2173 3347 2762 2338 3391 2785 2514 3395 2785 2647 3364 2761 2737 3346 2767 2842 3409 2867 3046 3416 2868 3141 3469 2823 3254 3489 2779 3339 3510 2742 3440 3526 2706 3549 3568 2688 3670 3587 2680 3799 3652 2661 3948 3024 2827 482 3031 2819 531 3028 2821 555 3042 2833 586 3051 2832 663 3068 2840 730 3068 2856 821 3076 2846 912 3083 2863 1030 3138 2866 1139 3156 2870 1261 3186 2869 1395 3217 2896 1522 3242 2909 1662 3267 2904 1787 3271 2920 1930 3307 2925 2093 3303 2924 2228 3330 2920 2397 3353 2919 2540 3391 2919 2689 3400 2920 2824 3387 2922 2938 3379 2939 3021 3440 2993 3185 3474 2959 3288 3469 2934 3374 3491 2888 3460 3521 2851 3572 3526 2822 3690 3546 2791 3804 3625 2777 3980 2989 2947 645 2994 2938 704 3016 2925 715 2994 2924 762 3008 2941 783 3018 2942 868 3020 2941 929 3024 2958 1018 3049 2955 1114 3077 2967 1234 3082 2965 1322 3108 2968 1468 3113 2988 1590 3143 2982 1720 3185 2986 1838 3216 2998 1979 3225 3023 2131 3268 3033 2264 3291 3049 2409 3336 3061 2569 3362 3070 2709 3377 3068 2839 3424 3094 2988 3407 3082 3097 3455 3123 3208 3492 3103 3331 3471 3066 3408 3489 3019 3501 3506 2986 3596 3498 2952 3695 3536 2930 3825 3570 2919 3957 2963 3063 793 2983 3056 823 2982 3056 838 2967 3058 880 2976 3069 917 2991 3079 976 3000 3085 1048 2991 3078 1132 3014 3081 1224 3028 3085 1317 3045 3082 1430 3060 3097 1547 3093 3085 1665 3084 3085 1803 3128 3097 1939 3150 3102 2051 3171 3101 2189 3210 3121 2324 3238 3131 2448 3245 3150 2586 3293 3164 2710 3355 3183 2852 3409 3185 3003 3440 3225 3138 3424 3229 3254 3497 3261 3375 3487 3222 3438 3473 3166 3526 3460 3129 3606 3479 3071 3706 3501 3053 3852 3537 3037 3988 2949 3183 948 2962 3186 962 2963 3187 964 2975 3199 1031 2964 3205 1087 2964 3197 1133 2991 3189 1198 3004 3187 1292 2991 3203 1353 2991 3202 1459 3007 3204 1537 3023 3210 1633 3048 3212 1763 3068 3219 1880 3083 3214 1993 3111 3228 2099 3130 3227 2238 3145 3243 2360 3172 3235 2485 3222 3235 2615 3261 3254 2740 3294 3264 2856 3341 3296 2992 3374 3316 3135 3430 3344 3271 3508 3363 3411 3456 3343 3462 3445 3307 3555 3456 3262 3651 3458 3215 3749 3456 3184 3864 3492 3167 4002 2939 3327 1117 2942 3313 1162 2930 3301 1156 2942 3314 1227 2955 3326 1240 2957 3314 1290 2954 3327 1346 2960 3336 1419 2993 3318 1481 2974 3330 1584 2987 3332 1659 3003 3332 1757 3020 3344 1871 3041 3339 1973 3052 3359 2078 3078 3337 2175 3098 3350 2292 3130 3349 2419 3154 3342 2526 3166 3349 2640 3194 3365 2748 3248 3375 2867 3300 3392 3005 3340 3408 3131 3374 3426 3252 3429 3457 3384 3440 3471 3465 3424 3412 3543 3422 3377 3655 3409 3347 3752 3410 3326 3869 3427 3311 3999 2924 3443 1311 2925 3458 1326 2927 3434 1359 2927 3455 1376 2953 3450 1422 2944 3454 1483 2955 3459 1541 2962 3451 1589 2976 3462 1645 2984 3460 1734 2990 3453 1823 3008 3452 1905 2993 3460 1988 3027 3466 2081 3033 3479 2192 3044 3457 2276 3083 3465 2382 3093 3443 2475 3107 3473 2568 3141 3467 2680 3182 3477 2788 3210 3478 2888 3245 3490 3018 3292 3521 3144 3325 3538 3261 3363 3553 3394 3377 3557 3493 3393 3554 3589 3360 3493 3673 3346 3462 3758 3357 3455 3882 3397 3446 4018 2938 3588 1576 2926 3577 1564 2939 3588 1595 2941 3589 1601 2939 3586 1631 2956 3584 1706 2955 3585 1741 2969 3586 1783 2975 3585 1852 2984 3589 1927 2996 3580 1986 3020 3597 2071 3021 3583 2138 3036 3588 2208 3032 3584 2279 3055 3577 2374 3078 3588 2466 3091 3585 2562 3114 3591 2640 3143 3594 2756 3165 3608 2847 3186 3614 2955 3214 3604 3053 3233 3607 3154 3266 3651 3286 3316 3652 3408 3311 3641 3492 3329 3641 3577 3387 3634 3716 3344 3620 3788 3329 3574 3892 3344 3602 4034 2988 3718 1812 2988 3720 1837 2981 3707 1855 2960 3720 1886 2988 3710 1892 2974 3732 1911 2997 3710 1969 3006 3721 2007 3008 3706 2063 3002 3726 2120 3027 3724 2184 3038 3718 2254 3052 3718 2307 3048 3728 2363 3070 3719 2426 3065 3729 2509 3100 3720 2598 3090 3720 2666 3105 3724 2734 3139 3729 2841 3168 3730 2920 3194 3734 3025 3194 3721 3088 3229 3739 3198 3258 3751 3291 3295 3766 3408 3266 3769 3507 3260 3755 3590 3294 3768 3704 3328 3738 3803 3299 3721 3946 3330 3737 4064 3022 3868 2133 3022 3868 2133 3022 3868 2134 3034 3877 2149 3022 3852 2170 3038 3868 2214 3043 3865 2241 3038 3852 2263 3072 3878 2324 3076 3852 2353 3092 3844 2384 3100 3862 2461 3088 3862 2498 3124 3858 2544 3103 3859 2594 3124 3858 2670 3141 3860 2739 3144 3869 2816 3175 3853 2866 3185 3856 2946 3186 3870 3022 3204 3876 3105 3202 3868 3155 3203 3860 3250 3236 3884 3329 3270 3887 3459 3247 3899 3513 3196 3898 3593 3211 3899 3734 3273 3916 3865 3311 3884 3950 3359 3884 4092 3122 3999 2428 3138 4014 2469 3128 4002 2457 3148 4025 2489 3138 4009 2477 3144 4001 2521 3151 4009 2540 3169 3999 2560 3175 4003 2598 3167 3994 2630 3186 4004 2652 3199 3999 2701 3193 3998 2745 3196 4012 2801 3210 3997 2823 3195 4015 2887 3214 4007 2935 3222 4013 3017 3235 4012 3064 3238 4002 3106 3251 4015 3165 3278 4029 3236 3280 4028 3284 3282 4040 3363 3286 4043 3454 3299 4037 3527 3278 4032 3578 3183 4061 3672 3193 4063 3768 3198 4063 3900 3294 4047 4016 3376 4047 4082 2808 369 270 2824 399 257 2802 422 237 2831 449 223 2843 489 264 2846 479 329 2838 455 400 2849 443 479 2855 423 564 2832 378 621 2856 319 716 2829 248 802 2877 52 874 2955 13 952 3026 14 1101 3088 8 1296 3162 5 1484 3233 5 1673 3275 0 1873 3342 16 2052 3389 0 2215 3419 0 2356 3431 5 2480 3454 0 2599 3499 0 2747 3536 13 2894 3659 16 3097 3727 14 3249 3807 0 3397 3859 0 3542 3924 14 3703 3977 0 3838 2795 416 231 2811 433 245 2818 465 232 2846 502 213 2858 513 244 2864 499 323 2865 482 405 2862 463 483 2862 440 574 2871 422 649 2870 351 740 2856 294 799 2878 108 881 2974 0 955 3029 16 1104 3099 0 1296 3162 0 1489 3225 8 1680 3284 18 1873 3361 7 2069 3383 6 2211 3421 0 2363 3409 15 2469 3468 13 2613 3503 0 2747 3575 12 2906 3654 3 3085 3728 13 3248 3781 13 3397 3860 1 3543 3911 0 3690 3991 13 3851 2831 451 232 2843 468 214 2843 496 204 2858 528 196 2851 543 249 2887 528 343 2857 514 400 2879 499 484 2876 476 567 2878 456 657 2882 396 740 2870 346 802 2894 179 893 2964 10 949 3047 1 1110 3096 1 1294 3163 6 1485 3229 1 1678 3277 9 1866 3354 1 2065 3402 9 2234 3411 0 2354 3407 0 2463 3450 1 2603 3505 2 2749 3560 1 2894 3658 12 3101 3743 2 3222 3781 14 3398 3859 0 3542 3911 1 3690 3992 12 3852 2841 501 210 2834 531 194 2841 553 171 2859 580 170 2875 580 251 2888 578 346 2871 551 391 2877 541 480 2865 513 554 2882 506 660 2885 452 747 2878 402 814 2894 299 907 2967 7 957 3035 1 1110 3096 13 1293 3166 1 1486 3237 5 1684 3297 14 1893 3343 47 2060 3398 98 2245 3414 17 2364 3427 4 2461 3465 10 2631 3502 1 2748 3563 1 2918 3646 0 3089 3742 1 3251 3807 1 3393 3857 0 3543 3926 16 3709 3992 12 3852 2853 570 178 2850 598 163 2880 628 173 2883 632 191 2884 658 234 2898 612 332 2900 609 406 2910 605 483 2905 585 587 2900 559 669 2900 524 767 2892 471 817 2914 420 930 2983 47 956 3063 0 1116 3110 3 1304 3184 6 1496 3247 11 1687 3305 55 1875 3384 218 2096 3410 291 2256 3427 248 2363 3414 152 2500 3453 22 2605 3508 6 2752 3577 0 2928 3665 13 3080 3745 0 3252 3783 13 3395 3858 0 3543 3922 14 3680 3977 5 3840 2907 682 134 2897 672 101 2907 711 109 2898 696 156 2905 694 251 2931 693 329 2903 692 415 2928 663 484 2938 650 593 2931 627 650 2939 594 765 2925 561 859 2920 516 934 2979 261 1005 3064 14 1117 3107 10 1286 3167 45 1473 3242 103 1688 3312 252 1896 3384 393 2103 3418 479 2279 3413 433 2377 3442 378 2508 3469 286 2623 3506 122 2763 3574 21 2904 3665 11 3102 3731 11 3257 3802 3 3399 3843 1 3546 3913 2 3696 3986 13 3852 2915 780 77 2929 790 64 2929 791 97 2933 782 141 2938 780 238 2957 774 334 2945 761 387 2961 754 485 2946 720 565 2949 701 650 2953 693 764 2945 663 856 2947 610 937 2976 511 1025 3039 131 1094 3123 123 1309 3205 223 1503 3257 331 1706 3312 421 1902 3355 560 2097 3416 647 2289 3424 604 2400 3438 564 2500 3466 504 2643 3506 401 2774 3570 261 2923 3656 56 3105 3729 14 3252 3788 25 3410 3855 0 3546 3906 19 3697 3986 225 3858 2958 875 32 2965 870 36 2971 873 82 2974 871 142 2966 873 253 2966 856 328 2970 843 415 2970 833 500 2977 823 599 3002 802 679 2998 777 760 2988 750 859 2982 727 967 2997 669 1063 3054 424 1114 3134 346 1308 3199 423 1510 3260 517 1700 3307 597 1900 3361 685 2104 3437 786 2306 3427 768 2409 3434 726 2525 3482 671 2660 3507 619 2793 3578 541 2946 3646 379 3094 3725 266 3265 3794 203 3411 3844 232 3577 3908 350 3720 3959 534 3868 2997 973 0 3004 968 26 2989 976 49 3015 979 143 2999 962 235 3001 943 311 3014 945 417 3026 940 504 3026 921 602 3029 908 700 3017 879 773 3029 860 887 3017 836 971 3004 799 1068 3065 682 1168 3133 532 1277 3202 596 1491 3269 671 1702 3315 735 1900 3375 851 2095 3451 942 2317 3456 936 2404 3456 901 2537 3493 859 2677 3519 802 2796 3568 744 2936 3653 632 3112 3729 574 3286 3792 541 3420 3854 561 3559 3909 617 3726 3961 736 3841 3036 1071 3 3047 1083 24 3019 1087 40 3057 1077 165 3032 1072 232 3042 1057 327 3050 1061 411 3063 1058 500 3062 1040 601 3057 1019 680 3039 1001 780 3068 987 895 3072 950 1002 3053 934 1094 3050 898 1216 3150 695 1286 3218 727 1487 3277 806 1706 3335 878 1904 3382 983 2126 3442 1087 2316 3454 1089 2442 3451 1064 2537 3501 1022 2671 3526 973 2809 3584 928 2962 3656 850 3115 3736 800 3304 3794 775 3429 3842 788 3569 3888 832 3706 3952 927 3857 3086 1193 0 3089 1190 0 3094 1184 37 3099 1202 109 3097 1183 205 3099 1177 310 3102 1166 406 3106 1171 505 3110 1167 610 3119 1129 692 3118 1120 805 3110 1107 918 3103 1072 1014 3091 1059 1097 3094 1027 1227 3126 935 1324 3207 877 1484 3295 951 1700 3323 1029 1911 3407 1113 2128 3436 1218 2326 3456 1249 2463 3472 1232 2572 3496 1206 2714 3532 1149 2819 3591 1118 2979 3665 1019 3137 3737 995 3285 3775 987 3425 3830 986 3572 3904 1033 3717 3948 1120 3854 3148 1334 8 3137 1324 0 3143 1324 26 3151 1319 71 3146 1307 192 3141 1298 310 3149 1291 419 3152 1279 513 3152 1271 605 3163 1260 695 3156 1249 818 3153 1238 929 3153 1202 1018 3144 1183 1147 3150 1169 1270 3137 1152 1367 3221 1018 1482 3293 1087 1705 3335 1164 1924 3391 1249 2124 3450 1361 2329 3467 1407 2488 3472 1402 2595 3481 1364 2716 3529 1318 2836 3592 1284 3001 3657 1206 3135 3724 1174 3306 3748 1166 3426 3829 1178 3572 3872 1203 3707 3943 1278 3864 3195 1461 0 3193 1452 0 3186 1439 25 3201 1444 63 3192 1438 163 3202 1431 289 3200 1438 403 3200 1422 511 3204 1418 625 3199 1406 728 3188 1375 813 3203 1374 938 3213 1349 1061 3185 1325 1160 3186 1319 1286 3169 1296 1408 3213 1226 1534 3292 1202 1696 3335 1288 1908 3384 1384 2126 3430 1490 2340 3466 1572 2541 3495 1561 2637 3493 1523 2738 3538 1497 2869 3594 1454 3009 3655 1386 3153 3710 1356 3312 3764 1340 3449 3818 1336 3595 3865 1379 3731 3928 1428 3858 3247 1601 12 3232 1604 9 3247 1579 0 3247 1598 36 3233 1585 149 3254 1585 291 3256 1572 420 3259 1566 523 3247 1564 635 3256 1557 759 3243 1534 858 3251 1522 970 3240 1507 1077 3233 1475 1191 3227 1463 1340 3218 1427 1438 3204 1441 1580 3274 1339 1683 3327 1422 1899 3384 1519 2135 3433 1624 2329 3490 1714 2538 3472 1722 2656 3500 1696 2762 3554 1660 2900 3568 1615 3029 3651 1558 3174 3707 1533 3327 3750 1517 3455 3811 1522 3597 3852 1533 3703 3911 1582 3884 3273 1757 22 3275 1761 3 3273 1746 6 3282 1744 41 3271 1733 134 3289 1731 271 3283 1731 411 3295 1729 524 3309 1709 642 3296 1710 755 3287 1695 886 3312 1683 999 3289 1677 1111 3283 1652 1247 3289 1642 1364 3267 1596 1458 3269 1575 1612 3247 1570 1744 3331 1542 1916 3375 1637 2132 3439 1744 2348 3461 1858 2561 3491 1882 2704 3491 1851 2795 3539 1817 2917 3569 1793 3039 3666 1725 3198 3710 1690 3326 3740 1668 3465 3780 1672 3593 3837 1698 3746 3906 1737 3873 3287 1900 13 3301 1894 6 3290 1895 7 3289 1887 19 3306 1878 153 3306 1888 288 3312 1890 435 3322 1878 541 3335 1872 670 3327 1858 789 3345 1864 911 3335 1832 1033 3326 1823 1152 3319 1808 1269 3327 1805 1407 3308 1768 1503 3295 1754 1644 3266 1748 1769 3314 1696 1904 3377 1766 2138 3413 1861 2348 3456 1975 2570 3491 2051 2734 3493 2020 2845 3539 1988 2936 3570 1958 3061 3651 1888 3215 3684 1870 3348 3738 1844 3476 3779 1846 3612 3824 1858 3749 3881 1902 3878 3287 2051 8 3298 2038 0 3301 2049 0 3302 2038 28 3307 2027 156 3311 2036 302 3335 2038 429 3343 2032 564 3364 2024 686 3375 2000 807 3396 2014 962 3386 1992 1067 3386 1987 1212 3373 1965 1323 3366 1960 1454 3365 1936 1573 3357 1931 1708 3339 1892 1807 3298 1898 1951 3372 1896 2106 3413 1999 2347 3464 2100 2562 3475 2194 2755 3507 2175 2866 3520 2146 2977 3556 2105 3065 3643 2076 3226 3678 2024 3369 3709 2006 3470 3755 2004 3608 3817 2006 3752 3857 2041 3889 3286 2199 3 3295 2193 0 3295 2191 9 3299 2168 27 3312 2194 161 3318 2177 313 3337 2188 458 3340 2175 581 3364 2166 704 3387 2173 846 3397 2163 980 3424 2151 1121 3438 2144 1270 3442 2130 1390 3408 2117 1497 3407 2110 1639 3387 2093 1767 3362 2076 1891 3362 2076 2014 3326 2069 2160 3392 2113 2358 3439 2218 2569 3488 2316 2780 3488 2326 2883 3527 2306 2992 3546 2265 3093 3632 2223 3254 3654 2185 3364 3698 2161 3479 3741 2154 3603 3788 2154 3755 3844 2176 3886 3282 2343 0 3288 2349 0 3283 2343 2 3297 2328 67 3307 2331 191 3318 2336 355 3330 2334 480 3349 2332 631 3369 2335 754 3379 2316 880 3387 2319 1017 3414 2314 1155 3436 2298 1295 3441 2303 1437 3470 2292 1590 3464 2265 1729 3440 2281 1839 3429 2259 1970 3402 2243 2078 3373 2233 2231 3347 2236 2353 3411 2313 2589 3469 2423 2774 3517 2481 2941 3530 2447 3018 3548 2427 3135 3617 2391 3290 3649 2343 3373 3673 2316 3495 3723 2300 3627 3773 2299 3755 3836 2315 3921 3285 2477 0 3292 2489 4 3286 2478 5 3301 2474 125 3311 2480 262 3310 2465 408 3330 2470 535 3342 2468 657 3348 2461 772 3372 2471 904 3381 2472 1047 3398 2464 1180 3420 2467 1319 3430 2461 1478 3456 2448 1630 3481 2447 1768 3491 2450 1918 3466 2427 2020 3449 2413 2195 3407 2410 2284 3377 2400 2399 3405 2416 2547 3463 2528 2793 3505 2609 2956 3516 2601 3071 3541 2561 3151 3599 2525 3298 3642 2492 3396 3671 2452 3511 3703 2450 3633 3755 2420 3783 3798 2446 3918 3292 2627 3 3269 2624 11 3279 2627 87 3289 2617 194 3308 2629 334 3316 2624 469 3330 2618 576 3314 2625 689 3336 2623 844 3346 2617 966 3367 2616 1096 3375 2619 1226 3394 2621 1369 3419 2602 1507 3436 2616 1658 3453 2608 1810 3473 2590 1962 3480 2595 2116 3498 2593 2281 3457 2581 2382 3437 2581 2490 3392 2575 2622 3454 2625 2770 3538 2722 2994 3529 2743 3102 3539 2720 3195 3590 2675 3314 3628 2647 3438 3661 2610 3530 3706 2588 3654 3739 2563 3774 3787 2560 3918 3295 2774 49 3274 2774 89 3271 2776 197 3279 2780 295 3284 2771 398 3300 2760 519 3303 2769 630 3317 2768 761 3322 2762 870 3353 2755 1003 3359 2763 1151 3372 2757 1284 3403 2761 1411 3394 2757 1542 3430 2754 1709 3439 2752 1840 3451 2761 2019 3475 2754 2178 3500 2752 2353 3503 2767 2471 3481 2750 2575 3453 2723 2672 3426 2734 2793 3493 2804 2989 3537 2873 3162 3541 2852 3236 3579 2808 3352 3606 2773 3444 3653 2740 3548 3686 2724 3669 3717 2707 3801 3782 2707 3948 3242 2876 286 3254 2874 354 3270 2889 395 3257 2876 446 3252 2890 535 3288 2884 649 3279 2888 743 3280 2896 835 3302 2902 949 3337 2897 1079 3342 2904 1181 3362 2898 1340 3384 2917 1466 3380 2916 1606 3412 2892 1754 3412 2908 1898 3437 2902 2052 3454 2896 2194 3463 2890 2352 3489 2904 2510 3517 2919 2656 3507 2900 2770 3481 2877 2865 3480 2887 2994 3534 2996 3178 3543 2987 3264 3555 2978 3381 3605 2928 3465 3621 2889 3564 3641 2852 3679 3703 2824 3806 3743 2819 3946 3188 2956 543 3180 2955 587 3199 2955 624 3193 2956 666 3188 2972 722 3190 2963 793 3214 2977 871 3210 2985 961 3228 2987 1055 3254 2975 1165 3274 3002 1280 3295 3002 1422 3310 3016 1536 3338 3020 1663 3364 3026 1797 3391 3031 1936 3411 3044 2081 3421 3048 2231 3449 3049 2383 3459 3048 2539 3497 3051 2684 3504 3049 2821 3520 3057 2953 3519 3057 3052 3539 3068 3152 3558 3130 3337 3572 3097 3422 3595 3052 3491 3619 3019 3600 3627 2985 3702 3657 2956 3818 3704 2952 3986 3127 3081 728 3151 3067 755 3148 3071 771 3152 3057 836 3138 3069 886 3148 3087 952 3157 3075 1023 3163 3095 1117 3175 3089 1201 3192 3089 1305 3202 3086 1398 3228 3095 1508 3245 3097 1620 3253 3117 1778 3272 3113 1873 3300 3127 2031 3326 3123 2148 3364 3144 2296 3389 3163 2425 3420 3182 2552 3452 3179 2711 3486 3196 2835 3506 3196 2967 3529 3212 3124 3534 3184 3216 3570 3259 3358 3573 3218 3430 3589 3184 3540 3621 3148 3638 3610 3115 3712 3623 3085 3853 3670 3056 3978 3100 3186 870 3122 3196 925 3132 3207 939 3131 3202 980 3115 3197 1019 3122 3199 1090 3125 3202 1153 3143 3199 1250 3142 3206 1308 3145 3207 1400 3149 3205 1507 3197 3216 1617 3204 3212 1737 3227 3238 1864 3226 3218 1970 3253 3224 2104 3262 3242 2195 3297 3245 2342 3324 3262 2471 3338 3264 2597 3376 3280 2723 3417 3294 2845 3489 3310 3000 3520 3328 3131 3528 3344 3270 3538 3343 3375 3584 3373 3493 3586 3313 3571 3577 3282 3642 3587 3249 3748 3619 3213 3868 3625 3196 3985 3089 3330 1049 3102 3327 1126 3115 3340 1145 3105 3328 1165 3118 3327 1208 3097 3341 1244 3110 3330 1339 3126 3340 1410 3153 3314 1471 3139 3332 1552 3135 3343 1646 3151 3332 1717 3177 3346 1834 3189 3350 1946 3203 3353 2060 3220 3349 2165 3253 3365 2279 3270 3349 2398 3268 3367 2510 3310 3358 2628 3340 3380 2769 3375 3392 2873 3422 3399 2994 3441 3425 3129 3488 3426 3245 3529 3468 3391 3589 3493 3525 3571 3458 3588 3584 3414 3686 3544 3377 3767 3584 3345 3882 3603 3330 4012 3073 3446 1291 3073 3445 1294 3086 3458 1312 3077 3448 1333 3102 3458 1418 3099 3460 1442 3077 3460 1498 3089 3472 1554 3093 3465 1616 3108 3458 1727 3118 3458 1787 3135 3470 1874 3136 3463 1972 3169 3469 2061 3165 3474 2150 3209 3474 2267 3225 3476 2362 3228 3460 2449 3250 3484 2580 3273 3477 2662 3289 3471 2781 3349 3482 2916 3361 3504 3028 3400 3521 3142 3452 3522 3272 3460 3555 3366 3526 3556 3510 3556 3572 3605 3540 3542 3704 3522 3507 3770 3538 3502 3899 3554 3460 4043 3086 3578 1546 3074 3604 1522 3075 3588 1555 3103 3590 1570 3076 3592 1618 3092 3588 1656 3094 3589 1692 3112 3591 1772 3109 3582 1820 3126 3591 1883 3125 3576 1951 3131 3586 2035 3140 3589 2118 3145 3601 2213 3151 3590 2269 3179 3614 2366 3217 3592 2450 3215 3589 2538 3246 3592 2631 3267 3595 2732 3277 3600 2840 3310 3604 2953 3327 3607 3049 3362 3620 3164 3380 3622 3278 3453 3665 3395 3477 3673 3510 3489 3670 3605 3519 3684 3717 3489 3622 3787 3475 3590 3916 3491 3604 4060 3089 3735 1779 3088 3722 1807 3090 3724 1841 3116 3720 1859 3102 3721 1900 3119 3723 1913 3110 3726 1949 3121 3734 1994 3129 3721 2048 3151 3735 2099 3139 3723 2159 3146 3727 2223 3158 3723 2294 3170 3723 2342 3186 3719 2417 3200 3722 2501 3211 3721 2579 3217 3730 2648 3250 3732 2728 3250 3721 2813 3276 3736 2925 3282 3726 3014 3302 3725 3093 3329 3751 3187 3373 3741 3323 3402 3767 3421 3456 3756 3524 3427 3756 3579 3441 3770 3734 3461 3755 3790 3443 3738 3932 3474 3753 4077 3111 3853 2102 3152 3853 2116 3153 3852 2116 3164 3864 2146 3168 3868 2154 3166 3862 2184 3147 3863 2220 3184 3868 2262 3166 3868 2293 3189 3857 2325 3201 3868 2370 3208 3860 2435 3197 3860 2498 3210 3865 2554 3210 3873 2600 3237 3874 2664 3248 3868 2731 3239 3870 2780 3255 3872 2882 3296 3868 2958 3281 3878 3035 3314 3857 3112 3314 3882 3194 3341 3872 3262 3370 3884 3372 3391 3884 3454 3412 3883 3528 3376 3913 3637 3362 3900 3721 3407 3914 3835 3442 3898 3960 3474 3913 4095 3234 3999 2460 3253 4013 2476 3252 4015 2471 3252 4012 2479 3250 4015 2508 3263 4015 2548 3253 4004 2540 3278 4002 2572 3268 4012 2599 3282 4017 2647 3279 4010 2657 3300 4028 2711 3298 4012 2758 3298 4015 2794 3295 4017 2837 3316 4015 2866 3330 4007 2934 3312 4015 2996 3354 4001 3068 3358 4027 3125 3378 4025 3182 3373 4020 3252 3367 4026 3308 3386 4045 3370 3385 4031 3446 3412 4044 3537 3415 4033 3605 3377 4062 3673 3356 4061 3783 3331 4078 3898 3420 4090 4027 3507 4063 4095 2979 369 259 2961 416 209 2978 433 208 2994 455 193 2997 498 161 2999 484 257 2996 466 343 3012 458 429 3011 413 514 3013 390 615 3018 311 679 3026 231 769 3013 89 872 3104 0 920 3154 9 1048 3229 6 1243 3290 2 1425 3373 9 1627 3406 16 1832 3478 0 2048 3542 0 2213 3538 11 2368 3554 28 2475 3559 14 2571 3616 12 2760 3640 13 2892 3728 14 3051 3828 16 3222 3909 0 3382 3973 14 3543 4024 0 3676 4091 14 3840 2961 417 195 2975 435 205 2993 454 194 3009 512 163 3014 517 167 3026 512 285 3038 501 376 3023 478 447 3023 450 534 3024 414 614 3027 349 701 3032 269 777 3026 153 886 3113 8 946 3166 13 1054 3232 0 1235 3277 14 1430 3362 0 1638 3426 0 1854 3469 13 2026 3519 4 2235 3550 0 2352 3543 11 2468 3558 11 2572 3603 3 2720 3664 3 2890 3753 1 3056 3828 15 3222 3909 0 3396 3987 1 3530 4039 15 3690 4077 0 3827 2968 452 177 2991 497 175 2995 501 176 2999 547 158 3027 537 171 3042 537 270 3014 528 355 3051 513 457 3043 478 550 3028 441 629 3031 392 693 3032 318 784 3014 230 876 3103 1 941 3163 14 1042 3209 9 1231 3327 0 1440 3372 0 1639 3414 4 1831 3487 0 2045 3520 0 2234 3549 7 2359 3549 14 2479 3572 15 2610 3642 0 2754 3668 2 2870 3727 12 3037 3846 2 3217 3906 1 3383 3957 0 3530 4024 0 3674 4091 13 3841 3011 518 165 3012 562 170 3012 578 117 3014 599 135 3034 586 175 3055 593 279 3039 568 347 3025 551 438 3032 519 518 3026 497 604 3032 469 718 3054 402 808 3044 319 875 3080 33 956 3159 6 1037 3250 4 1254 3297 0 1425 3373 0 1650 3425 7 1847 3488 8 2046 3526 77 2236 3571 59 2390 3572 17 2486 3565 6 2607 3632 0 2747 3683 11 2908 3751 0 3030 3842 2 3222 3907 1 3382 3974 15 3543 4036 14 3691 4091 0 3865 3017 586 114 3024 627 95 3044 646 124 3055 663 99 3039 660 155 3073 656 268 3072 638 352 3077 625 439 3061 588 521 3059 559 629 3068 526 757 3065 464 813 3072 404 880 3097 173 988 3181 16 1068 3238 0 1223 3282 6 1431 3355 12 1658 3427 2 1851 3468 42 2011 3548 261 2243 3579 299 2397 3559 214 2514 3605 107 2641 3641 17 2737 3691 4 2922 3719 28 3042 3844 0 3220 3881 14 3382 3957 0 3531 4035 18 3691 4077 4 3828 3062 669 85 3073 694 72 3060 715 46 3073 713 97 3086 724 176 3075 726 272 3060 691 346 3088 680 433 3094 651 554 3087 629 633 3080 601 715 3075 547 814 3081 498 900 3097 388 1007 3170 3 1059 3251 5 1266 3314 0 1441 3364 10 1652 3394 91 1804 3470 267 2025 3532 446 2239 3584 485 2410 3589 420 2528 3610 376 2644 3653 249 2792 3678 75 2902 3730 17 3052 3841 25 3232 3902 4 3394 3944 15 3530 4025 1 3688 4080 5 3859 3076 781 40 3074 784 13 3088 808 6 3078 811 68 3075 794 153 3114 793 269 3093 775 347 3112 774 441 3093 742 522 3094 725 614 3117 701 729 3106 657 827 3131 602 930 3093 554 1022 3183 173 1082 3260 8 1242 3277 49 1412 3346 164 1608 3420 319 1829 3452 466 2027 3523 616 2241 3573 649 2407 3606 615 2523 3581 574 2639 3620 484 2770 3707 394 2929 3751 216 3085 3828 22 3246 3901 5 3396 3959 0 3545 4014 50 3704 4089 284 3868 3114 873 0 3116 903 13 3116 910 12 3114 902 37 3113 900 162 3126 877 262 3123 863 347 3139 856 441 3130 829 527 3151 800 638 3144 800 731 3123 742 821 3143 709 924 3147 662 1024 3169 511 1118 3251 187 1190 3298 282 1423 3342 394 1607 3433 511 1831 3474 626 2050 3527 757 2252 3581 818 2424 3590 770 2533 3636 734 2655 3641 680 2785 3699 614 2923 3745 523 3085 3845 336 3270 3928 262 3430 3969 274 3569 4020 387 3703 4083 564 3868 3147 982 4 3155 1006 0 3147 994 2 3158 995 29 3165 988 149 3171 969 238 3171 974 376 3156 944 446 3169 942 570 3168 911 642 3187 891 752 3164 862 846 3171 827 952 3171 797 1054 3178 736 1149 3253 450 1218 3331 477 1421 3378 562 1616 3435 656 1843 3508 761 2047 3541 887 2262 3598 963 2403 3603 943 2534 3609 916 2661 3633 859 2796 3685 798 2951 3758 716 3119 3842 603 3280 3903 575 3427 3969 578 3564 4014 630 3709 4075 752 3856 3211 1097 0 3171 1087 0 3169 1107 37 3188 1112 22 3195 1104 110 3201 1085 249 3188 1091 339 3197 1060 443 3192 1047 558 3197 1026 640 3188 1009 751 3210 996 847 3222 946 957 3187 913 1057 3198 886 1174 3265 714 1269 3321 649 1393 3382 717 1617 3447 794 1857 3483 914 2066 3525 1035 2246 3586 1115 2438 3601 1118 2553 3621 1076 2682 3645 1028 2815 3689 976 2944 3744 921 3102 3846 817 3296 3890 797 3430 3947 797 3556 4008 851 3707 4059 953 3880 3239 1223 0 3249 1205 13 3232 1197 1 3230 1229 27 3233 1219 108 3232 1198 240 3246 1189 344 3237 1184 459 3235 1170 546 3248 1145 663 3243 1118 772 3235 1100 894 3268 1074 956 3243 1053 1067 3244 1032 1218 3231 969 1320 3324 796 1395 3377 853 1619 3427 954 1855 3497 1041 2062 3522 1169 2256 3591 1276 2444 3610 1276 2580 3614 1232 2678 3655 1194 2824 3688 1156 2947 3732 1114 3100 3828 1022 3282 3891 996 3432 3946 1004 3581 3987 1056 3698 4038 1137 3835 3271 1340 24 3282 1343 5 3279 1340 0 3283 1344 4 3297 1338 84 3295 1319 212 3301 1315 355 3303 1310 448 3289 1287 558 3312 1266 663 3298 1247 760 3289 1238 882 3274 1205 965 3264 1188 1096 3271 1165 1232 3283 1133 1354 3331 1012 1441 3412 998 1642 3434 1102 1854 3488 1195 2061 3549 1297 2265 3586 1401 2458 3607 1438 2606 3605 1407 2701 3662 1377 2844 3697 1327 2979 3723 1293 3097 3836 1208 3293 3870 1214 3429 3918 1199 3554 3990 1228 3689 4033 1295 3849 3332 1476 2 3338 1465 0 3341 1462 10 3348 1461 4 3332 1468 63 3344 1452 201 3350 1443 325 3339 1426 445 3344 1418 565 3354 1418 690 3336 1396 774 3342 1377 891 3324 1354 999 3330 1346 1112 3320 1316 1225 3321 1274 1358 3296 1255 1473 3390 1137 1623 3422 1231 1843 3487 1335 2089 3544 1444 2290 3565 1558 2489 3627 1597 2645 3618 1572 2746 3646 1540 2854 3697 1498 3000 3746 1453 3135 3827 1400 3312 3872 1377 3446 3927 1361 3585 3983 1402 3732 4023 1450 3853 3378 1607 7 3357 1614 19 3392 1603 0 3381 1608 0 3387 1613 49 3397 1593 199 3381 1588 351 3381 1561 470 3381 1560 589 3394 1550 700 3390 1539 828 3386 1521 933 3370 1521 1036 3369 1479 1160 3356 1464 1289 3350 1426 1389 3341 1404 1536 3402 1336 1648 3453 1358 1845 3498 1444 2061 3542 1566 2287 3579 1676 2488 3623 1752 2684 3625 1721 2776 3634 1701 2878 3687 1667 2998 3730 1611 3138 3826 1561 3321 3856 1541 3449 3911 1540 3575 3961 1557 3725 4015 1628 3886 3404 1754 7 3402 1746 14 3429 1752 13 3426 1754 0 3434 1747 38 3431 1732 205 3417 1733 339 3420 1725 463 3430 1714 583 3435 1708 709 3424 1694 823 3436 1682 949 3415 1675 1068 3422 1628 1204 3403 1620 1299 3409 1586 1411 3406 1542 1553 3371 1559 1691 3449 1458 1825 3481 1577 2051 3534 1686 2270 3569 1804 2493 3614 1910 2710 3616 1899 2810 3630 1858 2915 3670 1841 3046 3721 1781 3159 3829 1730 3330 3862 1706 3464 3896 1703 3586 3953 1721 3738 3995 1761 3875 3428 1910 0 3445 1896 11 3444 1901 2 3455 1893 14 3463 1902 32 3446 1893 201 3444 1887 322 3454 1876 481 3461 1873 604 3460 1868 754 3465 1855 866 3465 1824 974 3466 1825 1127 3452 1805 1221 3474 1768 1348 3458 1751 1490 3436 1728 1587 3404 1712 1726 3407 1681 1871 3468 1695 2060 3512 1811 2287 3540 1921 2504 3598 2033 2703 3615 2046 2849 3631 2011 2929 3669 1994 3061 3736 1944 3196 3788 1894 3338 3855 1878 3471 3889 1875 3594 3931 1862 3742 3992 1916 3867 3442 2049 14 3451 2047 0 3456 2045 1 3467 2051 1 3465 2039 27 3460 2039 207 3480 2038 354 3502 2034 505 3509 2021 629 3520 2019 756 3525 1984 897 3511 1990 1029 3529 1973 1159 3499 1953 1285 3521 1939 1412 3480 1930 1513 3482 1890 1631 3469 1877 1782 3419 1868 1885 3470 1841 2031 3505 1911 2273 3563 2038 2514 3570 2149 2710 3623 2207 2879 3633 2179 2948 3686 2151 3071 3712 2095 3194 3798 2051 3354 3838 2039 3473 3873 2018 3587 3905 2033 3723 3969 2077 3892 3434 2203 9 3429 2193 1 3443 2198 8 3462 2194 15 3460 2182 58 3460 2182 222 3480 2176 392 3484 2189 541 3513 2171 668 3532 2162 801 3546 2153 925 3556 2140 1088 3549 2134 1225 3554 2118 1329 3548 2132 1448 3539 2099 1570 3511 2078 1714 3498 2057 1844 3471 2021 1941 3431 2036 2106 3491 2042 2306 3524 2158 2517 3568 2265 2732 3606 2349 2878 3623 2331 2978 3652 2308 3095 3685 2270 3210 3768 2212 3354 3804 2202 3476 3847 2185 3593 3902 2185 3741 3949 2217 3875 3454 2320 5 3431 2343 0 3441 2329 25 3452 2346 0 3449 2327 85 3463 2325 265 3464 2332 419 3487 2327 571 3495 2330 698 3523 2318 845 3518 2304 978 3546 2305 1124 3568 2286 1272 3587 2281 1410 3593 2277 1543 3570 2252 1667 3555 2256 1779 3555 2231 1910 3521 2203 2024 3489 2187 2168 3460 2200 2298 3521 2248 2512 3548 2370 2695 3619 2471 2932 3633 2473 3024 3667 2453 3122 3675 2418 3215 3761 2375 3373 3774 2348 3479 3837 2322 3620 3871 2320 3760 3933 2344 3912 3449 2472 0 3454 2488 2 3453 2486 9 3473 2482 34 3465 2476 141 3469 2481 326 3474 2462 464 3500 2467 606 3503 2473 733 3512 2466 866 3524 2462 1005 3547 2470 1159 3559 2438 1285 3572 2437 1454 3583 2448 1581 3607 2436 1743 3605 2428 1876 3586 2421 1999 3559 2380 2142 3535 2382 2241 3494 2354 2352 3513 2377 2497 3525 2458 2724 3593 2567 2914 3607 2624 3073 3651 2594 3149 3666 2547 3282 3740 2522 3379 3768 2494 3510 3804 2475 3622 3859 2452 3772 3928 2488 3914 3453 2631 0 3426 2623 12 3427 2626 9 3442 2625 91 3454 2633 230 3463 2621 383 3479 2620 529 3475 2616 657 3484 2619 792 3497 2611 908 3496 2607 1033 3518 2609 1185 3537 2615 1324 3555 2602 1471 3591 2594 1640 3608 2585 1793 3614 2587 1971 3628 2591 2099 3581 2553 2227 3599 2556 2359 3537 2549 2448 3489 2527 2558 3543 2560 2695 3577 2651 2895 3624 2752 3082 3631 2736 3196 3670 2700 3287 3730 2655 3409 3774 2638 3525 3791 2606 3633 3851 2594 3771 3910 2593 3916 3444 2752 8 3415 2758 3 3408 2760 92 3431 2773 217 3436 2756 358 3458 2760 490 3450 2752 574 3440 2770 701 3475 2761 821 3495 2750 969 3514 2738 1097 3517 2755 1235 3536 2764 1375 3532 2755 1537 3573 2723 1672 3573 2738 1817 3595 2746 1986 3592 2733 2132 3635 2725 2313 3620 2735 2420 3610 2719 2529 3581 2717 2618 3516 2690 2733 3577 2751 2940 3635 2866 3126 3622 2870 3218 3627 2852 3324 3706 2813 3441 3780 2768 3548 3789 2748 3654 3826 2736 3789 3880 2737 3924 3414 2906 75 3424 2902 151 3417 2904 212 3430 2921 327 3423 2921 429 3449 2911 551 3450 2910 653 3447 2923 758 3456 2920 874 3491 2906 1007 3493 2890 1129 3494 2902 1277 3503 2904 1430 3520 2895 1573 3525 2896 1725 3545 2893 1862 3579 2891 2025 3586 2888 2170 3589 2872 2320 3611 2891 2482 3633 2888 2623 3631 2870 2727 3593 2861 2842 3563 2831 2911 3568 2953 3117 3674 3014 3280 3668 2962 3343 3692 2950 3460 3738 2917 3564 3768 2879 3687 3818 2879 3790 3857 2859 3941 3372 2995 420 3368 3000 455 3369 2996 480 3394 3009 558 3379 3011 636 3393 3009 721 3404 3026 815 3402 3021 922 3435 3037 1026 3451 3029 1129 3465 3037 1249 3486 3039 1373 3500 3045 1477 3490 3042 1620 3507 3030 1743 3513 3035 1901 3547 3041 2057 3555 3027 2218 3584 3019 2357 3591 3023 2494 3619 3035 2641 3634 3041 2781 3627 3037 2901 3595 3005 3005 3589 3016 3090 3637 3141 3302 3671 3115 3379 3693 3100 3500 3720 3050 3599 3754 3014 3685 3783 2998 3816 3836 2992 3962 3277 3086 642 3288 3102 670 3295 3090 731 3322 3099 731 3299 3078 814 3305 3093 879 3315 3092 962 3321 3102 1056 3346 3104 1161 3350 3112 1275 3378 3116 1398 3401 3110 1484 3396 3133 1600 3433 3143 1717 3453 3139 1852 3482 3146 1985 3497 3175 2107 3526 3176 2265 3557 3171 2382 3590 3155 2507 3585 3174 2680 3604 3179 2803 3617 3167 2934 3640 3196 3091 3634 3151 3182 3627 3210 3281 3642 3259 3426 3714 3204 3540 3734 3179 3621 3753 3147 3720 3778 3115 3831 3805 3104 3979 3270 3202 809 3285 3195 882 3271 3225 913 3282 3187 959 3275 3214 960 3288 3221 1012 3287 3203 1124 3287 3215 1195 3292 3215 1269 3316 3224 1376 3314 3221 1476 3322 3217 1571 3357 3218 1713 3370 3216 1820 3371 3231 1933 3394 3238 2063 3426 3244 2179 3444 3253 2303 3473 3258 2448 3511 3285 2598 3538 3302 2711 3573 3324 2845 3589 3296 2967 3623 3316 3087 3665 3331 3243 3646 3323 3340 3656 3389 3449 3687 3362 3559 3716 3311 3653 3737 3267 3752 3738 3246 3867 3761 3230 4000 3252 3330 1044 3241 3344 1089 3241 3343 1097 3231 3329 1101 3242 3332 1147 3252 3345 1226 3259 3330 1284 3263 3340 1362 3288 3340 1436 3291 3344 1533 3281 3345 1624 3293 3348 1705 3325 3346 1800 3341 3346 1907 3348 3336 2009 3359 3341 2132 3393 3349 2265 3406 3362 2373 3413 3389 2505 3446 3374 2614 3473 3391 2763 3503 3410 2856 3523 3409 2957 3549 3425 3104 3621 3471 3229 3643 3458 3367 3673 3474 3501 3692 3477 3591 3717 3457 3671 3703 3409 3767 3717 3377 3880 3713 3346 3982 3220 3486 1240 3222 3474 1297 3222 3487 1276 3220 3477 1309 3254 3463 1343 3245 3452 1397 3239 3466 1468 3239 3464 1496 3242 3479 1582 3266 3477 1688 3277 3472 1760 3275 3468 1842 3298 3467 1923 3323 3475 2040 3330 3468 2121 3329 3477 2243 3354 3479 2344 3367 3475 2443 3401 3481 2550 3416 3491 2657 3423 3513 2790 3459 3492 2891 3492 3504 3004 3525 3525 3127 3570 3550 3256 3605 3570 3367 3656 3577 3511 3717 3621 3653 3687 3602 3718 3674 3540 3784 3673 3521 3869 3705 3477 4043 3248 3603 1454 3233 3604 1512 3235 3602 1520 3251 3605 1576 3246 3601 1565 3236 3588 1602 3253 3592 1656 3266 3601 1719 3269 3593 1784 3278 3596 1829 3279 3596 1921 3280 3620 2017 3283 3600 2106 3291 3605 2188 3308 3614 2258 3311 3615 2332 3342 3587 2427 3348 3591 2522 3354 3600 2606 3380 3601 2735 3403 3609 2816 3435 3619 2968 3448 3633 3054 3479 3622 3172 3511 3642 3265 3530 3639 3380 3605 3657 3505 3642 3716 3649 3656 3674 3707 3624 3668 3787 3611 3623 3914 3627 3621 4016 3236 3749 1772 3249 3721 1790 3236 3707 1776 3250 3738 1783 3260 3732 1866 3261 3725 1907 3252 3737 1907 3256 3726 1966 3269 3728 2006 3281 3727 2078 3274 3715 2125 3280 3730 2212 3307 3729 2267 3316 3737 2358 3295 3743 2394 3338 3730 2491 3330 3737 2566 3360 3735 2632 3376 3737 2727 3388 3742 2823 3408 3738 2894 3428 3739 2992 3417 3747 3086 3462 3740 3182 3493 3726 3282 3511 3755 3407 3555 3769 3493 3607 3800 3637 3589 3785 3720 3621 3786 3803 3577 3782 3931 3578 3754 4063 3282 3867 2099 3282 3867 2098 3283 3867 2100 3299 3882 2144 3273 3880 2137 3284 3868 2163 3274 3869 2191 3297 3872 2230 3302 3882 2277 3302 3882 2301 3308 3871 2346 3327 3868 2446 3330 3870 2483 3323 3861 2540 3345 3868 2604 3358 3860 2648 3370 3874 2712 3368 3884 2773 3380 3868 2860 3399 3873 2931 3410 3882 3006 3432 3879 3104 3431 3893 3185 3446 3873 3262 3466 3872 3349 3508 3886 3427 3510 3898 3512 3559 3929 3641 3498 3916 3706 3513 3915 3820 3574 3914 3961 3591 3914 4066 3382 4027 2471 3378 4028 2471 3361 4012 2471 3380 4031 2486 3364 4027 2487 3369 4031 2491 3380 4026 2502 3386 4015 2558 3380 4015 2564 3375 4005 2595 3391 4020 2630 3407 4031 2700 3410 4015 2732 3405 4022 2762 3424 4043 2836 3412 4023 2876 3412 4037 2913 3434 4027 2980 3463 4021 3038 3463 4031 3121 3470 4018 3179 3482 4026 3226 3474 4045 3333 3505 4029 3366 3487 4030 3458 3526 4035 3528 3526 4060 3614 3559 4077 3703 3508 4061 3783 3475 4091 3881 3510 4076 4009 3607 4063 4081 3140 384 193 3139 432 192 3141 450 165 3156 496 145 3169 516 130 3173 512 172 3185 493 317 3189 461 397 3192 424 481 3177 391 567 3183 324 648 3177 177 747 3180 55 836 3211 8 931 3284 1 1000 3350 16 1184 3417 16 1390 3466 1 1562 3520 7 1778 3595 10 1994 3648 1 2198 3695 11 2387 3693 11 2490 3714 3 2596 3719 14 2736 3768 13 2877 3842 3 3052 3891 14 3216 3996 29 3350 4058 15 3496 4077 0 3662 4094 14 3837 3140 448 161 3128 465 145 3143 483 132 3172 514 129 3161 549 119 3173 556 200 3172 525 309 3192 495 383 3188 476 477 3181 409 572 3191 345 657 3189 255 758 3173 131 839 3209 6 931 3300 0 985 3353 9 1174 3420 0 1381 3466 9 1590 3532 1 1786 3595 0 1972 3653 6 2178 3686 15 2361 3691 14 2497 3715 0 2594 3729 0 2734 3783 0 2878 3814 14 3027 3890 2 3168 4006 14 3382 4058 0 3529 4077 0 3662 4079 0 3822 3126 470 119 3170 514 159 3142 530 126 3161 550 113 3188 593 101 3185 578 191 3176 569 272 3169 529 375 3215 506 477 3191 461 564 3194 393 682 3200 306 762 3185 189 850 3202 26 938 3286 1 1001 3341 8 1179 3424 0 1397 3473 13 1593 3550 1 1791 3586 1 1975 3648 1 2196 3695 3 2385 3701 1 2487 3718 0 2622 3721 12 2736 3768 16 2854 3815 13 3024 3893 13 3187 4010 15 3382 4042 15 3526 4078 0 3689 4094 15 3837 3144 531 127 3164 552 116 3176 582 109 3177 615 66 3192 628 88 3188 610 178 3212 617 302 3197 565 396 3217 554 475 3194 512 569 3206 451 661 3195 379 741 3201 291 857 3198 99 943 3293 6 1023 3359 13 1177 3417 6 1382 3480 9 1574 3523 1 1790 3598 13 2001 3644 1 2191 3714 131 2397 3692 91 2491 3719 38 2607 3729 4 2742 3785 0 2881 3827 13 3062 3905 12 3183 3983 1 3398 4058 0 3529 4064 14 3660 4092 16 3840 3194 601 94 3190 628 81 3206 650 58 3221 679 52 3222 703 73 3222 680 207 3231 671 297 3222 639 373 3222 619 478 3224 574 583 3222 540 693 3224 455 775 3242 385 861 3228 261 960 3291 1 1021 3370 9 1168 3409 8 1382 3501 0 1603 3548 9 1801 3604 4 1996 3673 93 2185 3686 346 2386 3719 318 2509 3728 259 2644 3740 152 2748 3777 40 2885 3818 11 3033 3896 2 3170 4015 12 3417 4055 2 3557 4092 14 3705 4091 17 3864 3221 709 52 3220 713 45 3250 743 43 3223 773 5 3224 762 54 3239 757 190 3236 725 293 3229 695 380 3227 678 481 3230 651 580 3255 617 687 3237 554 782 3233 496 874 3252 412 985 3296 48 1044 3390 0 1180 3428 3 1366 3496 6 1593 3530 12 1791 3588 65 2006 3658 299 2205 3708 515 2389 3723 508 2504 3725 478 2636 3726 410 2729 3783 292 2889 3821 90 3045 3894 6 3208 3991 13 3385 4056 6 3529 4069 4 3695 4092 26 3868 3242 798 0 3254 811 0 3255 843 13 3255 841 18 3254 828 72 3268 830 168 3257 821 324 3269 791 391 3246 774 492 3252 726 568 3283 705 694 3257 656 765 3264 607 880 3265 547 993 3284 328 1085 3390 3 1158 3411 9 1368 3484 12 1577 3550 119 1777 3589 320 1987 3645 505 2188 3698 667 2381 3700 680 2529 3729 636 2643 3737 587 2777 3774 525 2885 3850 401 3048 3908 235 3209 4002 49 3395 4076 30 3580 4081 47 3668 4095 364 3853 3277 912 4 3271 940 15 3271 940 0 3259 928 4 3289 922 49 3291 895 167 3305 892 275 3288 866 376 3301 851 497 3296 817 606 3304 802 689 3277 761 800 3287 713 895 3289 663 992 3288 581 1108 3371 123 1172 3443 71 1357 3494 186 1591 3546 357 1803 3591 515 1996 3643 671 2193 3706 816 2396 3735 846 2535 3752 799 2681 3752 759 2782 3777 726 2922 3853 625 3035 3888 523 3208 3996 366 3375 4077 354 3580 4093 437 3722 4095 600 3859 3316 1028 10 3311 1037 0 3316 1037 1 3309 1015 1 3322 1019 33 3337 994 129 3331 989 279 3336 975 385 3312 965 485 3338 928 596 3319 895 692 3335 862 801 3320 827 887 3309 790 999 3297 745 1134 3367 509 1193 3432 315 1327 3486 448 1558 3522 559 1772 3602 678 1999 3631 815 2204 3700 942 2412 3718 987 2552 3743 960 2682 3738 941 2785 3773 895 2914 3845 817 3046 3876 748 3226 3999 643 3388 4060 642 3549 4085 691 3693 4094 809 3836 3343 1133 0 3338 1139 0 3332 1136 0 3324 1114 14 3353 1118 31 3369 1118 112 3355 1100 281 3362 1077 368 3351 1059 470 3356 1040 587 3366 1032 712 3348 979 792 3348 955 902 3334 921 1017 3351 878 1134 3358 790 1233 3430 540 1356 3476 626 1560 3570 723 1774 3599 831 1985 3658 957 2205 3685 1087 2403 3723 1154 2574 3745 1120 2701 3758 1096 2826 3784 1051 2932 3829 999 3057 3895 938 3225 3976 863 3397 4059 841 3578 4072 891 3708 4082 997 3857 3362 1238 0 3370 1250 20 3374 1250 21 3365 1238 11 3378 1225 15 3406 1218 94 3392 1210 272 3387 1200 372 3388 1174 507 3402 1170 607 3402 1149 727 3387 1104 813 3379 1076 939 3382 1043 1031 3383 1018 1147 3370 979 1276 3441 794 1349 3488 781 1549 3555 878 1773 3596 963 2005 3651 1088 2207 3698 1213 2420 3726 1315 2588 3734 1296 2708 3757 1260 2844 3781 1219 2955 3836 1181 3109 3880 1131 3238 3986 1052 3403 4050 1056 3551 4063 1069 3693 4077 1164 3885 3411 1376 10 3424 1371 0 3434 1360 15 3418 1345 3 3429 1354 18 3408 1351 92 3412 1338 250 3424 1324 364 3423 1305 491 3420 1297 601 3425 1279 738 3424 1242 799 3426 1220 920 3416 1175 1025 3422 1141 1172 3395 1109 1290 3415 1046 1391 3487 936 1533 3556 1016 1790 3609 1119 1997 3649 1231 2222 3690 1361 2422 3728 1458 2615 3744 1458 2724 3762 1417 2827 3777 1392 2982 3818 1346 3111 3903 1288 3251 3959 1237 3413 4037 1241 3571 4080 1252 3703 4095 1323 3874 3435 1492 0 3449 1495 1 3471 1501 0 3463 1489 11 3457 1483 10 3474 1476 84 3459 1474 226 3471 1465 382 3464 1448 510 3467 1420 614 3468 1415 736 3460 1386 853 3459 1366 966 3464 1325 1090 3444 1301 1190 3453 1252 1334 3424 1246 1447 3489 1121 1555 3567 1156 1777 3584 1253 1990 3639 1358 2231 3657 1498 2409 3706 1602 2629 3745 1610 2760 3752 1581 2866 3784 1544 2996 3816 1518 3120 3873 1463 3260 3954 1420 3419 4039 1410 3585 4072 1418 3714 4094 1491 3868 3512 1631 7 3495 1628 14 3506 1627 1 3488 1617 9 3485 1615 0 3507 1617 56 3499 1603 204 3500 1597 381 3498 1575 524 3506 1565 643 3524 1562 781 3503 1535 864 3496 1512 997 3503 1488 1103 3502 1447 1217 3499 1422 1352 3490 1378 1469 3483 1363 1606 3556 1281 1757 3607 1363 1997 3651 1480 2238 3683 1604 2419 3718 1715 2612 3744 1769 2772 3748 1746 2883 3756 1724 2981 3830 1667 3140 3865 1632 3268 3967 1582 3448 4030 1574 3605 4066 1573 3735 4079 1646 3871 3540 1762 7 3551 1757 7 3554 1768 12 3543 1760 7 3542 1761 5 3551 1747 70 3549 1751 213 3552 1733 380 3552 1731 508 3562 1721 636 3557 1715 758 3549 1676 892 3531 1653 1005 3550 1628 1140 3541 1603 1260 3510 1586 1388 3503 1531 1516 3495 1522 1639 3543 1466 1774 3605 1499 1975 3633 1605 2184 3669 1741 2424 3709 1856 2653 3736 1931 2809 3740 1903 2906 3772 1886 3036 3821 1852 3157 3856 1792 3278 3952 1762 3430 3999 1730 3586 4048 1744 3715 4069 1803 3869 3575 1902 1 3568 1910 0 3568 1910 7 3587 1902 1 3588 1902 6 3596 1892 59 3603 1879 242 3593 1881 436 3587 1865 553 3592 1870 681 3608 1854 795 3595 1840 926 3580 1815 1065 3597 1796 1176 3574 1782 1291 3592 1735 1438 3551 1709 1521 3554 1664 1668 3528 1682 1825 3592 1606 1949 3633 1717 2197 3672 1844 2442 3689 1963 2641 3727 2075 2834 3747 2064 2927 3768 2045 3025 3793 2005 3161 3853 1957 3306 3929 1903 3449 3991 1902 3602 4041 1906 3732 4076 1934 3888 3591 2063 3 3584 2057 3 3599 2057 6 3600 2053 8 3603 2049 10 3601 2041 64 3612 2033 279 3628 2023 428 3628 2025 580 3615 2015 698 3626 1999 834 3629 1984 959 3617 1969 1085 3617 1946 1220 3618 1922 1349 3602 1920 1455 3582 1880 1572 3581 1840 1709 3560 1826 1840 3569 1813 2004 3634 1857 2195 3667 1966 2443 3685 2078 2657 3717 2201 2852 3740 2217 2975 3742 2189 3055 3774 2158 3163 3836 2121 3296 3933 2075 3455 3955 2049 3580 4024 2053 3731 4058 2089 3896 3585 2181 0 3591 2193 0 3593 2195 0 3600 2202 14 3600 2190 24 3604 2186 105 3633 2177 315 3629 2175 464 3639 2176 602 3654 2165 753 3666 2164 893 3664 2151 1013 3671 2142 1152 3667 2103 1275 3655 2094 1408 3655 2070 1527 3630 2061 1651 3619 2024 1774 3606 1997 1905 3555 1990 2028 3603 1987 2169 3634 2093 2429 3663 2182 2649 3708 2301 2860 3753 2362 3005 3744 2330 3099 3777 2300 3191 3843 2278 3325 3889 2219 3443 3937 2215 3610 3998 2204 3740 4053 2232 3892 3591 2343 1 3575 2327 0 3591 2342 0 3585 2340 1 3584 2336 11 3617 2332 145 3622 2335 342 3621 2327 511 3640 2319 641 3665 2316 792 3677 2307 928 3691 2304 1089 3704 2286 1217 3687 2280 1349 3701 2256 1475 3702 2248 1611 3682 2215 1721 3666 2195 1840 3632 2180 1983 3619 2158 2114 3579 2168 2251 3631 2184 2435 3658 2309 2645 3710 2407 2873 3739 2503 3048 3738 2489 3123 3766 2452 3235 3812 2406 3351 3900 2374 3479 3933 2344 3622 3973 2342 3742 4027 2363 3885 3560 2476 21 3583 2479 0 3586 2483 1 3591 2479 8 3596 2481 24 3589 2477 224 3594 2467 387 3628 2471 546 3643 2474 669 3645 2470 830 3662 2465 974 3666 2453 1098 3686 2446 1240 3715 2440 1376 3721 2424 1528 3723 2410 1674 3723 2391 1804 3702 2373 1936 3655 2356 2051 3676 2337 2189 3638 2330 2305 3601 2347 2451 3663 2397 2648 3701 2498 2865 3717 2598 3064 3732 2625 3185 3759 2602 3240 3800 2564 3364 3875 2517 3517 3939 2494 3614 3961 2494 3785 4026 2495 3914 3579 2641 14 3573 2636 10 3565 2627 0 3588 2628 6 3597 2613 119 3611 2612 321 3602 2618 448 3618 2602 598 3622 2621 731 3639 2616 876 3652 2609 1024 3674 2598 1166 3669 2597 1297 3699 2584 1427 3700 2580 1590 3724 2572 1760 3745 2561 1923 3729 2562 2031 3711 2543 2153 3657 2531 2288 3654 2521 2413 3639 2491 2500 3641 2483 2641 3662 2610 2869 3721 2711 3073 3735 2754 3208 3774 2732 3300 3781 2706 3371 3852 2663 3527 3905 2616 3641 3952 2616 3773 3997 2631 3901 3584 2755 0 3570 2763 0 3556 2759 12 3568 2776 78 3568 2768 247 3586 2768 383 3602 2760 544 3598 2750 652 3600 2757 797 3617 2751 924 3633 2752 1060 3644 2760 1195 3658 2736 1343 3671 2735 1498 3684 2733 1637 3696 2735 1787 3731 2722 1965 3752 2729 2118 3751 2715 2272 3716 2694 2349 3709 2691 2481 3658 2664 2580 3643 2660 2684 3671 2669 2836 3683 2789 3054 3747 2882 3242 3755 2878 3337 3771 2834 3409 3833 2799 3541 3885 2770 3647 3934 2736 3779 4001 2762 3907 3556 2897 11 3564 2915 53 3565 2916 138 3585 2911 248 3565 2897 381 3572 2914 490 3594 2899 618 3589 2890 738 3582 2897 869 3599 2899 1013 3606 2893 1134 3629 2894 1269 3647 2887 1401 3645 2885 1533 3658 2876 1681 3692 2868 1836 3692 2872 1987 3706 2881 2160 3732 2869 2297 3729 2882 2448 3746 2853 2557 3703 2859 2671 3664 2824 2743 3640 2821 2861 3689 2874 3020 3748 2984 3270 3735 3020 3354 3783 2978 3451 3838 2949 3572 3854 2911 3655 3906 2865 3775 3950 2903 3936 3551 3039 153 3545 3048 271 3559 3025 326 3576 3046 431 3547 3047 490 3565 3047 606 3569 3035 716 3571 3048 830 3582 3041 932 3601 3037 1075 3619 3037 1203 3610 3041 1343 3617 3035 1462 3639 3028 1619 3648 3016 1729 3663 3019 1887 3684 3018 2038 3684 3030 2192 3714 3010 2335 3720 3012 2483 3742 3025 2625 3758 3018 2769 3713 2989 2864 3713 2972 2962 3644 2984 3037 3734 3050 3215 3762 3143 3393 3761 3100 3481 3804 3065 3575 3868 3034 3703 3885 3006 3797 3919 3021 3918 3511 3121 525 3504 3127 556 3506 3125 573 3518 3134 641 3516 3126 691 3510 3143 763 3523 3140 884 3557 3148 972 3563 3155 1079 3571 3170 1190 3582 3167 1301 3606 3169 1421 3590 3169 1541 3601 3169 1664 3625 3173 1798 3636 3171 1938 3641 3171 2081 3664 3156 2210 3671 3152 2366 3705 3164 2494 3705 3161 2644 3721 3151 2790 3741 3165 2957 3752 3154 3045 3745 3131 3131 3705 3136 3231 3746 3232 3410 3769 3241 3499 3819 3199 3607 3820 3176 3689 3877 3151 3844 3899 3149 3949 3435 3201 765 3439 3203 797 3423 3217 831 3446 3207 872 3458 3217 920 3445 3216 969 3448 3218 1057 3464 3218 1145 3482 3227 1221 3482 3238 1313 3495 3228 1416 3521 3252 1517 3513 3257 1629 3538 3258 1745 3561 3264 1877 3581 3289 2015 3615 3291 2155 3626 3295 2265 3642 3294 2388 3667 3313 2545 3682 3301 2675 3706 3317 2817 3714 3297 2956 3745 3300 3076 3767 3309 3234 3715 3294 3304 3712 3334 3422 3753 3364 3567 3801 3331 3625 3788 3297 3718 3838 3277 3850 3895 3264 3994 3412 3329 981 3412 3331 1009 3411 3331 1012 3428 3331 1071 3393 3334 1075 3405 3332 1150 3396 3339 1203 3418 3334 1299 3436 3335 1379 3438 3339 1476 3453 3347 1588 3466 3344 1655 3470 3347 1787 3470 3349 1888 3503 3358 1985 3492 3370 2106 3531 3377 2234 3551 3384 2351 3559 3401 2479 3603 3410 2614 3634 3398 2709 3656 3423 2825 3688 3440 2970 3708 3426 3104 3733 3441 3241 3766 3431 3347 3738 3428 3460 3797 3491 3588 3803 3478 3672 3804 3429 3755 3808 3409 3839 3839 3380 3996 3368 3473 1225 3370 3477 1219 3368 3474 1223 3373 3464 1276 3385 3474 1323 3385 3472 1357 3390 3465 1407 3399 3462 1488 3416 3469 1564 3416 3458 1651 3425 3468 1734 3440 3476 1835 3433 3468 1931 3463 3470 2010 3440 3483 2121 3460 3468 2220 3469 3493 2303 3532 3479 2415 3515 3495 2545 3533 3493 2651 3571 3507 2776 3579 3518 2858 3610 3511 2982 3630 3530 3103 3689 3554 3233 3706 3578 3361 3737 3587 3474 3770 3604 3623 3786 3608 3709 3771 3573 3771 3830 3525 3884 3838 3493 4030 3349 3605 1467 3354 3607 1469 3352 3609 1484 3368 3618 1503 3364 3606 1559 3365 3596 1600 3372 3592 1614 3397 3607 1715 3389 3593 1759 3387 3604 1834 3403 3612 1915 3414 3607 1992 3430 3609 2076 3437 3605 2153 3432 3607 2240 3470 3615 2333 3466 3613 2419 3460 3607 2509 3482 3621 2601 3507 3607 2718 3521 3620 2802 3542 3634 2911 3572 3641 3033 3601 3638 3139 3647 3653 3262 3641 3654 3365 3704 3672 3478 3739 3688 3610 3801 3737 3753 3785 3704 3817 3787 3682 3917 3800 3639 4029 3379 3738 1743 3351 3737 1744 3353 3738 1747 3365 3753 1816 3367 3751 1823 3372 3737 1842 3383 3752 1916 3392 3748 1969 3381 3737 2000 3384 3753 2080 3384 3738 2121 3397 3746 2190 3407 3743 2264 3429 3738 2345 3444 3744 2394 3446 3751 2469 3455 3739 2549 3484 3752 2634 3485 3737 2715 3495 3742 2799 3513 3743 2882 3531 3738 2991 3554 3766 3074 3561 3753 3172 3592 3762 3285 3634 3769 3393 3654 3770 3506 3691 3784 3624 3724 3803 3709 3739 3803 3852 3735 3785 3932 3739 3782 4060 3383 3870 2067 3397 3884 2081 3396 3885 2083 3397 3881 2084 3386 3895 2118 3400 3872 2162 3415 3868 2211 3397 3885 2221 3390 3885 2240 3403 3889 2292 3404 3890 2348 3413 3883 2395 3424 3887 2442 3440 3868 2509 3449 3891 2582 3486 3876 2647 3462 3894 2719 3477 3888 2780 3502 3888 2844 3506 3894 2919 3511 3884 3007 3548 3878 3109 3559 3902 3195 3570 3886 3263 3581 3881 3362 3595 3881 3457 3611 3898 3541 3669 3902 3652 3701 3916 3754 3689 3930 3851 3735 3915 3980 3704 3931 4077 3446 4031 2426 3464 4017 2455 3460 4044 2472 3451 4032 2431 3460 4045 2473 3451 4035 2493 3480 4016 2529 3477 4045 2573 3467 4035 2567 3467 4035 2592 3488 4021 2639 3496 4029 2695 3495 4032 2712 3508 4031 2767 3514 4031 2810 3533 4038 2890 3530 4029 2939 3536 4031 2983 3560 4033 3065 3569 4037 3093 3572 4031 3159 3583 4032 3244 3609 4045 3324 3616 4032 3379 3621 4049 3472 3651 4061 3553 3656 4045 3620 3668 4060 3701 3687 4050 3798 3639 4063 3853 3672 4078 4013 3735 4077 4095 3317 417 146 3287 433 115 3305 451 100 3319 470 113 3350 518 94 3350 546 87 3351 513 228 3352 491 347 3348 446 417 3350 386 504 3346 316 601 3342 196 709 3353 32 806 3343 0 888 3415 0 956 3496 16 1093 3538 0 1321 3599 24 1522 3645 10 1707 3700 1 1925 3750 15 2147 3814 0 2347 3830 1 2477 3862 16 2614 3864 1 2708 3889 3 2872 3928 3 2979 3976 16 3140 4026 45 3299 4092 1 3527 4080 0 3689 4095 16 3838 3302 451 128 3318 467 114 3320 484 98 3321 516 79 3353 551 53 3366 563 77 3338 558 182 3363 512 328 3356 478 429 3345 414 507 3352 334 589 3344 252 704 3363 92 814 3352 8 898 3414 9 961 3496 15 1091 3538 0 1321 3597 0 1524 3659 7 1731 3699 0 1924 3754 10 2120 3813 0 2346 3837 20 2483 3860 0 2634 3877 1 2745 3863 16 2846 3927 14 2992 3991 0 3166 4056 0 3317 4066 16 3498 4080 0 3658 4080 0 3823 3319 501 111 3320 516 83 3292 533 52 3319 567 50 3351 610 45 3354 623 77 3350 576 196 3352 559 303 3378 524 413 3356 462 498 3345 397 613 3361 302 728 3366 175 804 3362 21 906 3412 1 968 3509 8 1113 3539 1 1322 3597 9 1533 3660 7 1743 3726 9 1956 3757 7 2136 3813 11 2336 3827 60 2477 3855 23 2608 3856 11 2745 3865 13 2874 3916 3 2982 3974 15 3139 4053 3 3316 4094 0 3525 4064 0 3688 4081 2 3824 3324 567 79 3323 582 21 3336 598 34 3339 629 29 3369 659 32 3368 656 48 3369 628 192 3381 620 338 3357 562 403 3355 515 505 3372 463 626 3369 369 702 3367 270 816 3373 100 929 3406 0 988 3502 0 1104 3538 0 1318 3610 8 1531 3645 10 1719 3716 12 1930 3776 1 2144 3783 34 2309 3832 257 2502 3857 170 2607 3862 70 2714 3855 10 2835 3920 0 3008 3992 0 3170 4059 2 3319 4092 1 3528 4067 16 3664 4095 15 3838 3352 645 18 3382 676 18 3369 668 3 3367 697 1 3381 713 2 3356 723 47 3380 679 191 3392 670 341 3375 628 408 3394 594 528 3385 552 638 3380 484 719 3398 369 817 3382 257 930 3426 8 985 3503 3 1107 3564 2 1304 3625 9 1510 3664 7 1727 3709 10 1934 3768 3 2136 3801 197 2333 3835 434 2522 3864 383 2635 3856 330 2752 3896 216 2882 3914 75 3017 4018 4 3169 4076 2 3347 4069 0 3529 4082 3 3689 4091 16 3838 3394 739 3 3370 741 3 3385 772 1 3398 791 1 3387 775 3 3388 790 43 3395 755 180 3394 728 318 3402 708 419 3404 672 535 3400 613 647 3406 561 737 3418 487 839 3399 403 934 3398 196 1039 3487 8 1104 3557 9 1302 3620 6 1507 3662 9 1728 3711 10 1925 3759 107 2171 3806 410 2344 3844 573 2530 3853 553 2637 3895 515 2769 3847 450 2893 3948 345 3042 3992 143 3164 4056 20 3321 4095 0 3529 4082 0 3690 4095 77 3823 3400 828 2 3403 831 0 3416 846 1 3442 875 26 3428 859 13 3408 858 56 3408 837 177 3419 820 333 3411 794 431 3426 754 514 3439 724 628 3424 658 742 3420 591 823 3410 526 943 3417 419 1053 3496 5 1099 3568 1 1274 3626 0 1497 3660 13 1740 3706 102 1924 3759 355 2141 3816 579 2351 3848 710 2533 3854 708 2657 3895 675 2802 3866 633 2894 3929 562 3054 4005 442 3196 4046 277 3355 4068 68 3499 4092 163 3676 4095 424 3835 3435 941 4 3437 943 4 3439 970 0 3446 983 11 3448 954 0 3442 940 14 3451 937 156 3451 906 290 3452 878 430 3456 853 552 3441 818 631 3451 773 761 3434 700 839 3439 651 951 3423 583 1069 3466 270 1143 3568 0 1279 3622 23 1500 3677 133 1723 3706 370 1952 3754 549 2126 3802 712 2351 3845 893 2538 3839 879 2660 3898 830 2793 3885 809 2909 3939 756 3038 3977 676 3202 4044 574 3346 4094 455 3524 4080 504 3691 4091 658 3866 3453 1040 13 3468 1059 0 3479 1077 0 3467 1054 1 3460 1052 0 3480 1034 11 3496 1021 159 3493 1000 300 3473 991 425 3496 943 535 3492 917 645 3479 871 737 3482 837 844 3465 768 959 3460 729 1090 3500 611 1190 3546 132 1264 3632 223 1519 3685 414 1730 3729 572 1961 3763 729 2144 3813 850 2368 3842 1015 2547 3849 1045 2647 3873 1000 2784 3884 975 2899 3934 922 3043 3969 872 3205 4035 795 3349 4075 686 3522 4084 738 3684 4095 858 3846 3476 1149 1 3485 1169 0 3489 1155 10 3510 1155 0 3511 1153 10 3507 1143 22 3513 1121 144 3521 1107 311 3516 1078 417 3528 1068 533 3513 1035 632 3492 983 730 3504 962 845 3493 907 966 3503 864 1091 3508 818 1209 3559 547 1289 3635 481 1501 3639 611 1721 3725 751 1943 3754 877 2124 3803 997 2350 3843 1150 2562 3855 1206 2690 3882 1160 2808 3869 1135 2919 3925 1111 3061 3960 1049 3195 4040 995 3353 4094 910 3545 4095 945 3713 4095 1023 3837 3518 1273 0 3529 1283 5 3520 1270 4 3519 1272 5 3536 1257 0 3543 1261 31 3533 1240 101 3541 1224 279 3547 1203 407 3550 1168 536 3545 1160 655 3540 1113 754 3534 1083 862 3531 1046 985 3533 1002 1096 3520 972 1225 3537 855 1338 3635 660 1468 3680 780 1703 3721 898 1948 3748 1016 2151 3802 1142 2369 3838 1296 2544 3855 1363 2702 3863 1326 2790 3887 1300 2921 3898 1261 3053 3975 1213 3202 4049 1154 3367 4084 1081 3544 4095 1121 3718 4094 1181 3850 3551 1393 0 3581 1397 0 3582 1397 0 3572 1388 0 3572 1375 15 3569 1374 11 3569 1377 107 3564 1355 267 3567 1343 422 3570 1312 542 3572 1293 674 3567 1260 768 3572 1230 879 3567 1183 996 3577 1144 1114 3549 1111 1231 3531 1075 1378 3628 877 1464 3671 926 1685 3726 1041 1930 3764 1153 2155 3803 1279 2363 3835 1413 2584 3869 1514 2731 3873 1484 2850 3886 1442 2947 3902 1429 3048 3957 1393 3217 4044 1321 3369 4088 1264 3538 4086 1286 3703 4080 1360 3864 3589 1518 0 3595 1524 0 3606 1502 0 3609 1517 0 3605 1501 0 3606 1502 8 3615 1497 93 3604 1472 288 3610 1454 413 3610 1437 541 3614 1418 661 3611 1399 804 3614 1369 920 3599 1329 1018 3598 1292 1130 3580 1239 1247 3573 1221 1400 3592 1152 1520 3692 1056 1675 3732 1174 1914 3771 1297 2149 3791 1425 2336 3832 1521 2570 3865 1653 2761 3873 1643 2851 3889 1612 2980 3928 1574 3093 3967 1526 3221 4025 1487 3359 4087 1450 3562 4095 1450 3699 4095 1501 3853 3646 1656 7 3631 1642 9 3641 1633 0 3638 1641 0 3636 1617 0 3654 1628 13 3651 1632 86 3632 1613 262 3639 1589 418 3643 1572 557 3647 1558 665 3648 1547 817 3647 1519 933 3641 1491 1042 3644 1455 1146 3635 1406 1273 3607 1368 1409 3586 1351 1553 3663 1233 1670 3734 1290 1900 3756 1414 2157 3808 1535 2361 3842 1659 2571 3852 1797 2759 3867 1802 2879 3900 1779 2985 3921 1742 3113 3949 1690 3237 4034 1669 3400 4071 1622 3553 4086 1621 3702 4087 1664 3847 3673 1779 0 3674 1778 0 3688 1772 0 3689 1771 0 3688 1755 13 3669 1776 0 3673 1759 75 3688 1742 266 3679 1733 428 3685 1708 575 3681 1702 696 3690 1682 833 3689 1659 967 3683 1629 1075 3687 1610 1225 3656 1570 1316 3663 1507 1426 3640 1498 1588 3638 1476 1718 3729 1400 1875 3752 1548 2114 3805 1667 2371 3814 1790 2571 3830 1920 2751 3849 1958 2894 3883 1922 2992 3885 1893 3105 3943 1855 3246 4015 1820 3391 4094 1771 3546 4086 1771 3730 4095 1810 3853 3729 1910 8 3698 1918 7 3721 1919 8 3725 1915 0 3720 1902 0 3721 1892 0 3725 1897 94 3717 1884 298 3718 1861 465 3732 1853 598 3719 1858 715 3737 1824 869 3721 1812 986 3719 1783 1121 3713 1765 1243 3697 1725 1343 3696 1692 1492 3686 1651 1584 3649 1638 1729 3711 1582 1905 3743 1651 2131 3785 1775 2370 3825 1909 2587 3826 2035 2804 3870 2102 2926 3871 2079 3030 3901 2048 3141 3945 2015 3268 3991 1966 3405 4092 1933 3579 4094 1933 3739 4087 1964 3871 3746 2048 8 3738 2048 8 3746 2041 17 3738 2036 0 3738 2039 7 3747 2041 8 3753 2046 100 3751 2030 338 3755 2018 487 3754 2012 639 3754 1996 766 3768 1976 908 3755 1955 1031 3755 1953 1159 3746 1928 1306 3730 1904 1414 3722 1858 1530 3715 1831 1649 3679 1804 1756 3659 1816 1935 3742 1765 2101 3775 1891 2358 3782 2026 2569 3839 2136 2806 3846 2245 2959 3851 2222 3049 3880 2181 3160 3919 2164 3278 3962 2116 3424 4091 2100 3598 4085 2087 3740 4095 2110 3887 3725 2191 0 3737 2202 0 3753 2194 0 3756 2197 15 3762 2200 7 3761 2194 6 3773 2174 150 3775 2181 390 3786 2160 552 3793 2174 694 3786 2143 830 3791 2132 938 3800 2117 1075 3800 2095 1199 3774 2082 1341 3785 2066 1473 3755 2044 1570 3751 1993 1705 3736 1978 1814 3730 1954 2006 3677 1967 2130 3743 2015 2362 3774 2141 2585 3802 2249 2803 3842 2361 2962 3849 2361 3089 3872 2339 3180 3915 2310 3291 3971 2258 3439 4059 2234 3626 4092 2236 3749 4079 2257 3885 3743 2333 6 3742 2334 1 3733 2339 7 3754 2343 9 3740 2329 2 3754 2327 10 3760 2327 222 3770 2328 410 3785 2312 578 3807 2307 737 3822 2299 885 3831 2296 1024 3818 2277 1151 3825 2263 1289 3818 2245 1412 3827 2216 1540 3795 2215 1653 3783 2175 1789 3763 2150 1910 3753 2133 2044 3705 2149 2181 3723 2127 2336 3787 2236 2583 3818 2346 2798 3850 2466 3021 3840 2523 3135 3882 2491 3221 3887 2457 3327 3962 2424 3457 4053 2375 3603 4074 2365 3755 4095 2375 3888 3726 2480 0 3740 2465 0 3727 2479 5 3729 2482 1 3743 2473 5 3755 2472 75 3751 2479 280 3769 2470 467 3786 2463 626 3781 2464 772 3798 2452 925 3825 2438 1079 3845 2437 1214 3831 2432 1345 3852 2410 1492 3841 2413 1643 3835 2373 1736 3818 2349 1867 3801 2350 2013 3792 2323 2121 3744 2314 2228 3709 2310 2396 3766 2323 2555 3792 2456 2783 3831 2547 3018 3843 2639 3176 3862 2628 3248 3898 2593 3337 3936 2558 3485 4011 2528 3619 4056 2501 3761 4068 2511 3885 3723 2622 0 3728 2627 5 3727 2627 0 3734 2617 9 3740 2612 10 3754 2623 166 3761 2611 392 3758 2613 523 3763 2605 673 3785 2595 811 3786 2590 962 3792 2590 1100 3807 2579 1242 3841 2573 1391 3852 2574 1560 3873 2552 1709 3889 2540 1850 3835 2528 1948 3834 2515 2098 3813 2494 2204 3771 2488 2329 3749 2457 2409 3727 2463 2564 3797 2528 2783 3819 2645 2997 3841 2754 3193 3844 2755 3292 3886 2738 3381 3929 2691 3483 4002 2644 3642 4045 2652 3756 4068 2658 3886 3710 2773 4 3720 2752 4 3718 2756 11 3731 2756 12 3712 2750 86 3750 2759 319 3752 2761 462 3753 2750 600 3755 2747 753 3762 2740 882 3775 2736 1023 3786 2738 1166 3796 2728 1284 3815 2726 1441 3826 2732 1602 3837 2711 1751 3856 2703 1903 3870 2703 2048 3870 2685 2198 3831 2683 2275 3813 2668 2420 3798 2653 2534 3763 2606 2607 3769 2615 2768 3813 2722 2996 3846 2836 3177 3827 2898 3310 3869 2867 3406 3916 2848 3529 3984 2805 3633 4033 2774 3782 4078 2789 3903 3706 2920 1 3713 2910 9 3707 2900 6 3705 2893 123 3730 2891 287 3729 2909 425 3737 2885 574 3753 2900 712 3733 2896 846 3738 2888 957 3753 2881 1085 3771 2879 1215 3786 2866 1371 3794 2871 1511 3805 2883 1649 3825 2860 1815 3831 2849 1942 3852 2866 2117 3872 2856 2269 3856 2842 2421 3834 2836 2523 3819 2824 2606 3793 2792 2708 3767 2760 2798 3791 2782 2956 3804 2918 3202 3859 3018 3367 3858 3000 3417 3901 2968 3540 3961 2936 3664 4019 2904 3798 4059 2916 3933 3697 3048 32 3704 3040 156 3716 3035 232 3711 3037 333 3693 3048 433 3713 3046 550 3713 3040 675 3721 3043 791 3720 3035 904 3740 3031 1040 3731 3035 1177 3744 3032 1290 3764 3020 1437 3774 3020 1576 3802 3007 1712 3795 3012 1866 3818 2999 1994 3821 3006 2153 3842 3003 2296 3826 2997 2454 3838 2989 2593 3851 2989 2717 3835 2979 2803 3786 2954 2876 3757 2935 2985 3816 2998 3153 3826 3100 3376 3865 3133 3501 3887 3084 3558 3924 3068 3688 3984 3043 3785 4053 3034 3931 3688 3183 338 3689 3180 353 3706 3182 441 3698 3183 515 3701 3184 591 3690 3178 706 3695 3184 754 3717 3193 903 3730 3173 1023 3725 3173 1128 3730 3158 1251 3746 3165 1369 3739 3159 1499 3745 3157 1622 3761 3163 1761 3785 3157 1915 3781 3169 2034 3798 3153 2188 3806 3150 2319 3821 3143 2482 3841 3151 2620 3867 3121 2777 3853 3152 2892 3835 3107 2982 3782 3102 3071 3775 3072 3172 3836 3180 3364 3867 3260 3537 3884 3242 3588 3920 3197 3730 3976 3156 3814 4018 3165 3948 3602 3276 659 3632 3266 673 3628 3255 705 3638 3268 748 3659 3270 827 3632 3277 859 3640 3272 971 3650 3277 1054 3660 3271 1155 3685 3289 1271 3696 3285 1370 3716 3290 1485 3715 3306 1605 3726 3302 1733 3753 3302 1842 3748 3298 1991 3757 3299 2122 3784 3303 2245 3798 3296 2377 3802 3284 2518 3819 3288 2657 3822 3267 2794 3832 3270 2909 3841 3297 3050 3839 3267 3164 3795 3276 3249 3805 3236 3331 3874 3363 3538 3880 3364 3607 3919 3344 3737 3953 3295 3852 4012 3280 3957 3577 3349 915 3563 3336 942 3552 3348 964 3551 3349 969 3563 3358 1049 3576 3359 1110 3556 3351 1148 3580 3372 1226 3588 3364 1318 3603 3365 1409 3626 3373 1516 3641 3378 1607 3646 3379 1720 3649 3387 1829 3654 3384 1947 3681 3405 2062 3703 3412 2200 3732 3417 2319 3752 3434 2427 3771 3427 2537 3795 3429 2697 3789 3406 2808 3805 3424 2927 3822 3413 3055 3836 3441 3237 3854 3452 3332 3832 3409 3421 3861 3426 3536 3866 3489 3655 3900 3457 3739 3918 3427 3821 3966 3412 3972 3527 3491 1155 3541 3464 1144 3515 3477 1160 3529 3477 1213 3530 3473 1245 3541 3478 1299 3533 3483 1345 3547 3477 1450 3548 3471 1509 3565 3478 1585 3559 3485 1665 3556 3475 1758 3580 3483 1873 3579 3472 1962 3587 3492 2070 3606 3494 2171 3629 3495 2304 3643 3495 2421 3660 3495 2500 3673 3501 2610 3713 3528 2741 3734 3531 2841 3781 3552 2983 3789 3554 3113 3820 3544 3217 3838 3545 3342 3867 3585 3474 3819 3555 3572 3865 3621 3702 3883 3590 3786 3930 3558 3882 3966 3539 4014 3511 3621 1387 3513 3607 1419 3513 3607 1451 3512 3606 1454 3511 3595 1513 3513 3618 1540 3526 3619 1597 3541 3612 1635 3533 3612 1691 3546 3617 1768 3544 3604 1849 3568 3613 1947 3548 3615 2029 3560 3623 2103 3577 3638 2215 3593 3615 2306 3597 3615 2392 3611 3617 2493 3626 3600 2588 3643 3628 2698 3664 3625 2818 3680 3632 2894 3710 3640 3034 3734 3653 3131 3756 3658 3234 3800 3661 3379 3821 3688 3505 3863 3718 3605 3866 3704 3719 3885 3734 3819 3915 3687 3901 3947 3656 4015 3482 3754 1694 3512 3753 1711 3513 3753 1714 3525 3751 1761 3512 3737 1790 3498 3738 1828 3501 3738 1861 3529 3753 1910 3518 3742 1955 3534 3743 2013 3545 3748 2067 3552 3744 2129 3561 3747 2186 3570 3740 2281 3562 3760 2363 3563 3753 2420 3578 3753 2516 3593 3754 2601 3609 3754 2696 3622 3754 2784 3628 3764 2870 3653 3758 2975 3673 3757 3081 3675 3767 3175 3706 3757 3281 3777 3784 3399 3787 3760 3508 3790 3788 3596 3834 3818 3751 3885 3851 3867 3869 3833 3917 3898 3785 4047 3512 3884 2020 3527 3899 2036 3527 3898 2064 3527 3900 2070 3526 3882 2097 3528 3884 2106 3529 3881 2155 3544 3884 2204 3540 3884 2237 3545 3900 2281 3550 3895 2335 3551 3891 2376 3561 3888 2437 3585 3900 2486 3585 3899 2557 3593 3899 2615 3593 3885 2693 3616 3884 2746 3614 3896 2847 3635 3884 2918 3621 3885 2990 3653 3893 3060 3639 3896 3165 3683 3889 3236 3719 3899 3347 3749 3902 3456 3754 3915 3527 3786 3915 3668 3788 3916 3709 3835 3933 3866 3866 3932 3978 3851 3916 4063 3577 4031 2424 3579 4030 2426 3592 4032 2469 3592 4044 2444 3593 4032 2472 3593 4031 2504 3605 4043 2518 3609 4047 2553 3601 4036 2568 3624 4046 2595 3589 4041 2653 3632 4038 2694 3626 4032 2712 3604 4054 2761 3634 4038 2824 3634 4032 2866 3652 4046 2917 3673 4038 2974 3659 4053 3039 3670 4042 3102 3671 4052 3167 3691 4051 3249 3725 4055 3320 3723 4065 3388 3733 4059 3459 3756 4058 3537 3741 4034 3607 3772 4062 3706 3789 4063 3801 3818 4079 3901 3816 4094 3997 3851 4080 4080 3466 418 65 3466 465 95 3468 467 67 3496 499 65 3498 545 33 3522 578 27 3530 571 88 3502 550 225 3514 485 367 3525 408 459 3504 326 557 3514 180 670 3521 26 781 3499 0 879 3513 1 971 3618 0 1035 3675 7 1231 3717 0 1436 3759 9 1656 3818 6 1869 3873 11 2082 3907 11 2294 3940 11 2478 3956 4 2604 3982 0 2728 3994 13 2847 4027 14 2991 4061 1 3138 4080 0 3316 4095 0 3465 4079 0 3690 4080 0 3823 3482 482 81 3497 498 65 3499 530 79 3496 548 31 3525 579 31 3515 610 47 3511 604 62 3536 558 240 3527 506 375 3534 452 457 3541 375 572 3524 241 676 3514 70 783 3505 0 854 3537 8 963 3611 0 1035 3660 9 1225 3717 1 1437 3768 1 1667 3828 1 1869 3873 10 2081 3911 5 2287 3938 6 2465 3976 68 2600 3957 31 2718 3996 0 2877 4011 0 2977 4061 1 3140 4095 0 3300 4095 0 3464 4078 1 3690 4080 31 3838 3485 517 35 3497 547 33 3483 579 15 3484 583 17 3500 627 15 3515 643 4 3514 626 75 3517 603 228 3518 537 366 3541 496 477 3524 425 572 3520 312 651 3521 160 784 3523 0 881 3538 9 981 3611 0 1030 3669 15 1246 3715 1 1436 3768 15 1663 3829 0 1889 3864 1 2073 3910 14 2296 3948 62 2489 3983 207 2656 3985 113 2724 3996 28 2849 4020 19 2987 4057 1 3134 4093 0 3302 4095 14 3451 4095 0 3703 4080 1 3823 3484 583 15 3497 599 0 3500 629 15 3515 647 1 3517 677 17 3532 692 18 3516 658 66 3530 650 225 3529 593 349 3524 549 476 3546 485 574 3547 397 674 3533 264 788 3522 75 874 3532 9 987 3613 1 1041 3675 9 1232 3717 14 1443 3777 0 1656 3826 0 1862 3863 16 2084 3900 5 2286 3965 188 2500 3997 365 2656 3996 317 2757 4005 236 2869 3999 112 3003 4056 8 3135 4079 0 3285 4089 0 3463 4094 0 3687 4095 14 3866 3514 680 0 3514 680 3 3530 697 2 3516 728 0 3530 742 14 3517 756 14 3530 726 77 3532 705 222 3521 658 353 3549 623 471 3535 554 581 3549 470 669 3558 373 795 3530 248 884 3533 57 980 3614 8 1069 3681 9 1215 3731 0 1435 3800 9 1674 3820 14 1877 3885 6 2089 3899 35 2278 3949 359 2489 3989 502 2655 3968 485 2781 4012 428 2903 4025 315 3024 4072 182 3145 4078 43 3283 4082 2 3429 4079 0 3659 4066 19 3820 3546 775 0 3536 792 0 3532 796 0 3546 809 1 3518 811 0 3534 821 3 3546 791 62 3545 769 187 3546 724 353 3551 684 462 3572 639 585 3575 579 702 3559 480 769 3565 392 882 3545 255 1011 3600 8 1075 3683 6 1222 3732 3 1438 3784 7 1663 3830 0 1872 3860 5 2092 3910 224 2294 3959 512 2501 3970 654 2655 4000 623 2797 4012 576 2908 4032 541 3003 4076 427 3145 4094 271 3317 4082 119 3470 4077 15 3631 4092 229 3834 3553 863 3 3539 863 3 3567 878 3 3579 905 26 3580 918 17 3563 902 3 3553 872 47 3565 853 212 3566 820 374 3568 780 479 3579 729 558 3573 670 674 3582 600 768 3569 525 911 3559 439 1017 3608 99 1107 3677 8 1200 3743 0 1436 3803 6 1689 3832 6 1884 3878 132 2093 3921 433 2304 3941 662 2487 3975 797 2678 4006 757 2792 4001 724 2923 4026 694 3020 4065 618 3170 4087 550 3319 4091 426 3476 4067 315 3648 4082 515 3819 3582 950 27 3569 974 12 3570 994 0 3583 1007 0 3609 988 3 3582 998 3 3595 970 30 3595 938 180 3591 902 324 3592 873 454 3602 846 577 3602 781 687 3583 727 794 3601 656 898 3590 579 1030 3598 420 1140 3686 7 1237 3756 7 1437 3781 7 1658 3815 143 1869 3869 401 2086 3935 612 2319 3940 802 2478 3953 957 2656 3977 947 2783 4007 900 2916 4011 860 3027 4090 781 3179 4094 741 3336 4084 664 3490 4078 600 3671 4091 720 3831 3584 1087 12 3591 1088 15 3597 1101 13 3603 1100 15 3624 1085 13 3623 1083 11 3617 1068 32 3623 1029 177 3623 1008 324 3620 983 447 3619 942 572 3633 903 676 3627 853 791 3619 779 924 3599 712 1038 3590 660 1141 3688 245 1258 3738 30 1413 3787 177 1641 3849 395 1902 3896 613 2107 3920 780 2333 3947 954 2505 3980 1085 2670 3988 1082 2814 3993 1046 2913 3998 1034 3032 4041 981 3174 4083 910 3335 4084 859 3473 4084 817 3680 4095 899 3839 3626 1186 6 3640 1206 5 3636 1203 2 3638 1201 0 3658 1201 24 3645 1183 11 3637 1155 14 3648 1133 162 3647 1132 344 3658 1095 475 3648 1052 568 3642 1019 701 3657 976 804 3645 905 917 3649 854 1033 3641 817 1176 3656 636 1282 3755 272 1402 3802 441 1673 3830 615 1886 3889 784 2106 3933 921 2317 3949 1077 2521 3970 1227 2678 3977 1229 2808 3997 1208 2956 3999 1185 3046 4029 1135 3158 4074 1086 3320 4084 1018 3475 4095 986 3686 4084 1071 3839 3658 1321 31 3660 1321 16 3648 1310 5 3646 1314 0 3664 1297 6 3686 1284 21 3677 1272 24 3675 1243 154 3664 1231 302 3669 1219 453 3664 1182 584 3691 1149 698 3675 1105 798 3681 1051 926 3654 978 1021 3663 950 1168 3650 887 1308 3733 634 1406 3811 649 1636 3847 775 1865 3879 926 2114 3923 1072 2309 3933 1216 2520 3979 1368 2692 3969 1397 2823 3996 1360 2931 4008 1333 3042 4069 1292 3191 4072 1256 3309 4074 1214 3487 4095 1154 3696 4085 1240 3854 3686 1435 6 3703 1420 6 3698 1415 1 3711 1428 4 3693 1417 12 3694 1411 10 3704 1385 10 3707 1373 145 3701 1365 304 3704 1335 464 3717 1291 603 3707 1290 720 3694 1237 833 3697 1194 950 3718 1129 1060 3702 1083 1185 3677 1056 1322 3726 946 1462 3797 811 1617 3861 926 1857 3882 1081 2101 3916 1212 2320 3938 1350 2526 3980 1485 2712 3970 1538 2860 4000 1521 2969 4013 1492 3063 4046 1450 3194 4094 1403 3352 4095 1362 3512 4089 1333 3685 4085 1388 3848 3723 1553 0 3721 1550 10 3744 1539 28 3740 1549 0 3739 1532 12 3730 1520 22 3743 1515 4 3742 1491 133 3744 1480 304 3738 1454 460 3754 1443 594 3750 1417 731 3745 1384 845 3730 1341 954 3744 1286 1067 3715 1238 1189 3713 1205 1340 3716 1164 1492 3775 995 1594 3830 1077 1818 3869 1192 2078 3909 1344 2298 3947 1464 2528 3943 1617 2719 3987 1697 2879 3975 1675 2971 3997 1638 3061 4042 1599 3197 4079 1557 3350 4082 1524 3497 4089 1498 3694 4086 1556 3832 3755 1682 0 3753 1659 9 3771 1671 22 3776 1663 10 3771 1649 25 3771 1649 23 3765 1633 13 3763 1620 126 3772 1612 312 3756 1582 472 3769 1578 612 3765 1548 733 3769 1529 870 3770 1504 999 3770 1440 1102 3755 1391 1211 3740 1342 1325 3742 1337 1509 3762 1247 1634 3837 1198 1803 3869 1323 2085 3915 1456 2279 3924 1583 2511 3954 1726 2702 3977 1832 2903 3994 1819 3001 3983 1788 3095 4034 1764 3228 4085 1735 3357 4094 1694 3519 4077 1679 3689 4086 1697 3836 3788 1803 8 3788 1789 0 3803 1795 0 3811 1793 9 3811 1777 18 3802 1775 0 3802 1767 0 3813 1772 137 3811 1759 333 3806 1720 504 3805 1718 631 3797 1693 748 3802 1676 877 3819 1651 1015 3817 1603 1145 3796 1576 1243 3787 1504 1365 3769 1473 1500 3736 1462 1660 3801 1350 1795 3880 1440 2044 3898 1586 2296 3924 1728 2532 3937 1858 2723 3966 1971 2918 3969 1970 3028 3994 1951 3114 4019 1911 3245 4065 1884 3380 4094 1851 3513 4095 1810 3690 4095 1851 3863 3835 1925 8 3820 1926 1 3828 1931 0 3834 1924 8 3827 1902 7 3839 1913 0 3831 1909 10 3840 1886 148 3855 1885 355 3856 1870 517 3844 1848 648 3853 1840 787 3840 1814 932 3828 1783 1053 3835 1773 1163 3827 1725 1293 3813 1676 1424 3812 1626 1515 3801 1605 1698 3794 1592 1850 3853 1557 2023 3887 1695 2291 3932 1836 2514 3941 1963 2734 3953 2090 2918 3981 2113 3044 3986 2104 3171 4009 2057 3252 4067 2030 3383 4086 2006 3521 4095 1965 3715 4095 1997 3863 3853 2064 15 3875 2064 17 3860 2057 8 3868 2064 10 3863 2054 9 3883 2053 7 3862 2041 18 3870 2032 194 3881 2017 408 3884 2004 562 3885 2003 715 3882 1979 843 3879 1960 975 3871 1940 1102 3853 1921 1218 3876 1904 1348 3868 1864 1479 3860 1815 1609 3829 1761 1688 3795 1763 1861 3853 1731 2020 3887 1812 2294 3924 1963 2523 3929 2078 2739 3941 2196 2921 3981 2249 3060 3965 2243 3172 4001 2212 3277 4045 2184 3424 4092 2137 3554 4095 2112 3724 4087 2136 3893 3871 2196 9 3876 2188 0 3900 2203 8 3884 2196 2 3906 2191 7 3896 2181 3 3879 2173 31 3910 2183 247 3916 2176 458 3915 2164 600 3911 2153 750 3909 2135 908 3909 2109 1023 3907 2100 1148 3901 2076 1262 3902 2059 1407 3891 2018 1529 3877 1988 1645 3867 1945 1749 3829 1915 1898 3810 1944 2080 3855 1927 2267 3899 2056 2509 3912 2188 2731 3938 2306 2924 3955 2388 3095 3960 2373 3198 3991 2340 3290 4039 2316 3415 4092 2293 3566 4077 2240 3742 4079 2276 3877 3878 2343 0 3878 2343 1 3878 2355 16 3886 2351 2 3877 2343 2 3898 2324 13 3894 2327 99 3920 2311 310 3925 2298 500 3921 2302 668 3942 2299 831 3933 2271 959 3942 2263 1095 3942 2249 1221 3934 2247 1342 3948 2207 1478 3910 2194 1593 3894 2169 1703 3900 2125 1847 3883 2092 1963 3860 2091 2095 3838 2103 2284 3874 2145 2495 3921 2293 2744 3926 2394 2947 3965 2512 3130 3965 2510 3221 3970 2485 3325 4026 2472 3455 4083 2430 3577 4095 2376 3724 4089 2407 3890 3874 2490 21 3880 2490 15 3880 2472 9 3868 2490 1 3884 2475 13 3900 2488 25 3903 2464 152 3904 2459 375 3916 2465 583 3925 2453 729 3940 2432 887 3942 2431 1029 3957 2420 1173 3968 2415 1306 3952 2390 1430 3955 2382 1562 3943 2361 1663 3925 2346 1786 3917 2326 1936 3895 2282 2031 3878 2256 2156 3843 2287 2320 3866 2267 2481 3911 2385 2731 3933 2477 2934 3937 2605 3150 3977 2641 3260 3970 2632 3345 4011 2594 3453 4060 2561 3586 4095 2533 3744 4095 2544 3906 3868 2626 22 3852 2621 17 3851 2626 9 3876 2625 19 3882 2617 10 3887 2611 49 3880 2613 269 3885 2611 448 3894 2609 615 3916 2584 773 3912 2590 915 3938 2590 1078 3937 2579 1214 3960 2563 1360 3983 2557 1522 3986 2534 1656 3970 2520 1763 3956 2509 1893 3959 2499 2031 3927 2477 2143 3900 2456 2263 3882 2434 2367 3843 2434 2519 3900 2461 2711 3926 2577 2924 3932 2689 3124 3960 2765 3287 3944 2755 3374 3995 2736 3486 4054 2697 3605 4084 2675 3745 4085 2675 3902 3867 2773 9 3867 2764 5 3848 2759 0 3868 2768 0 3857 2746 19 3871 2758 216 3888 2741 364 3882 2737 535 3900 2741 709 3889 2737 828 3911 2731 996 3927 2730 1131 3929 2724 1270 3944 2716 1394 3956 2709 1563 3964 2703 1717 3968 2688 1868 3969 2677 1997 3971 2678 2127 3934 2655 2227 3942 2646 2386 3901 2597 2428 3894 2576 2558 3877 2578 2721 3926 2660 2918 3938 2770 3127 3955 2884 3290 3952 2911 3415 3970 2880 3484 4027 2834 3626 4094 2811 3761 4095 2794 3909 3829 2904 0 3853 2888 0 3866 2913 4 3864 2898 38 3863 2909 179 3859 2899 361 3875 2895 496 3887 2889 648 3876 2892 799 3884 2889 916 3887 2878 1046 3910 2888 1201 3920 2870 1339 3928 2852 1453 3944 2867 1621 3961 2852 1774 3960 2843 1911 3962 2839 2070 3962 2842 2205 3978 2826 2356 3953 2799 2468 3917 2793 2550 3912 2767 2659 3891 2728 2750 3898 2739 2903 3899 2853 3123 3955 2955 3298 3935 3019 3429 3969 3000 3526 4009 2958 3642 4082 2936 3809 4090 2936 3948 3840 3035 0 3851 3047 37 3851 3046 118 3829 3050 241 3842 3044 382 3849 3035 494 3853 3044 630 3840 3031 750 3853 3031 865 3875 3038 1002 3873 3023 1126 3887 3019 1263 3895 3019 1402 3907 3015 1531 3912 2996 1672 3932 3003 1829 3924 3010 1968 3941 2995 2124 3955 2996 2265 3966 2991 2427 3979 2977 2557 3954 2953 2654 3936 2963 2747 3913 2919 2835 3900 2890 2937 3890 2945 3099 3925 3062 3317 3945 3145 3495 3977 3117 3566 3999 3088 3650 4077 3055 3788 4095 3063 3939 3824 3197 197 3836 3194 275 3830 3178 350 3811 3184 431 3822 3183 535 3839 3184 649 3848 3181 753 3834 3190 877 3852 3165 986 3870 3177 1109 3866 3172 1225 3874 3171 1352 3881 3181 1479 3894 3169 1613 3903 3158 1754 3916 3149 1884 3917 3157 2034 3935 3137 2177 3917 3142 2308 3933 3137 2462 3969 3123 2614 3963 3120 2744 3968 3129 2855 3961 3101 2956 3919 3079 3006 3887 3066 3116 3935 3117 3297 3961 3242 3519 3966 3260 3586 4034 3231 3696 4077 3197 3820 4082 3206 3962 3806 3312 507 3816 3327 559 3814 3315 605 3804 3325 654 3809 3325 718 3810 3317 783 3804 3325 883 3825 3324 994 3840 3328 1089 3826 3325 1215 3841 3325 1318 3845 3312 1451 3848 3318 1574 3862 3303 1701 3881 3298 1830 3900 3304 1973 3899 3304 2098 3902 3288 2238 3914 3279 2373 3904 3281 2509 3923 3279 2643 3944 3278 2781 3946 3264 2902 3949 3277 3010 3936 3273 3130 3907 3229 3191 3899 3212 3283 3959 3313 3489 3952 3393 3653 3983 3375 3705 4043 3314 3820 4092 3312 3964 3714 3401 786 3730 3399 831 3741 3413 876 3745 3412 887 3757 3404 1004 3745 3409 1028 3748 3400 1102 3739 3415 1179 3753 3418 1273 3764 3415 1344 3781 3422 1465 3798 3420 1567 3822 3435 1694 3829 3446 1784 3836 3433 1913 3876 3456 2040 3868 3440 2160 3869 3434 2277 3886 3428 2399 3898 3416 2527 3909 3414 2669 3936 3413 2830 3941 3408 2904 3953 3422 3076 3946 3423 3208 3952 3411 3264 3931 3379 3349 3915 3391 3476 3975 3491 3679 3994 3491 3753 4003 3445 3835 4062 3469 3969 3659 3494 1060 3674 3496 1067 3661 3496 1097 3652 3509 1148 3667 3482 1195 3692 3506 1243 3692 3494 1311 3681 3506 1386 3687 3499 1457 3696 3494 1541 3700 3505 1620 3703 3502 1712 3735 3518 1825 3755 3517 1921 3760 3533 2020 3785 3534 2128 3796 3536 2258 3826 3545 2389 3849 3556 2481 3863 3562 2608 3892 3555 2728 3897 3555 2847 3878 3543 2942 3907 3555 3085 3941 3541 3212 3935 3555 3315 3949 3542 3457 3934 3539 3508 3934 3572 3623 3977 3634 3786 4012 3575 3854 4048 3585 3997 3630 3606 1326 3658 3635 1383 3645 3620 1372 3646 3609 1404 3648 3610 1457 3636 3620 1481 3641 3619 1575 3646 3617 1604 3661 3623 1683 3659 3608 1735 3661 3623 1842 3668 3614 1905 3684 3623 1994 3693 3618 2078 3709 3614 2174 3716 3625 2273 3724 3631 2374 3742 3618 2454 3757 3621 2562 3784 3642 2666 3812 3652 2790 3821 3645 2885 3856 3654 2996 3895 3689 3131 3891 3698 3242 3933 3687 3346 3944 3686 3474 3937 3687 3575 3977 3687 3688 3951 3751 3818 3969 3704 3886 4046 3703 4014 3643 3753 1674 3643 3754 1676 3641 3753 1677 3616 3752 1713 3615 3756 1718 3629 3753 1789 3632 3756 1817 3644 3763 1862 3642 3753 1923 3640 3755 1959 3649 3748 2059 3650 3758 2104 3667 3760 2166 3675 3754 2258 3691 3753 2353 3707 3777 2426 3699 3754 2501 3716 3754 2599 3743 3770 2682 3740 3749 2762 3756 3760 2871 3774 3770 2958 3793 3770 3049 3823 3782 3172 3835 3783 3274 3855 3787 3350 3901 3789 3466 3931 3831 3634 3963 3848 3750 3964 3834 3803 3967 3865 3932 4030 3833 4061 3658 3884 2034 3658 3899 2019 3628 3900 2034 3630 3898 2066 3634 3900 2074 3628 3898 2104 3665 3884 2144 3643 3897 2183 3654 3896 2217 3659 3896 2284 3660 3884 2324 3665 3884 2374 3681 3890 2424 3676 3887 2485 3683 3892 2548 3699 3900 2598 3707 3899 2678 3707 3899 2729 3724 3899 2826 3740 3900 2908 3756 3905 2994 3772 3915 3065 3780 3900 3141 3804 3912 3243 3819 3916 3331 3849 3903 3403 3853 3916 3516 3897 3944 3637 3929 3932 3737 3949 3933 3852 3981 3949 3965 3998 3948 4063 3691 4047 2440 3692 4047 2425 3690 4046 2440 3691 4047 2445 3691 4047 2474 3691 4044 2479 3692 4034 2500 3707 4047 2529 3707 4047 2585 3713 4037 2615 3714 4046 2661 3704 4042 2694 3699 4053 2726 3724 4062 2793 3717 4055 2820 3732 4055 2882 3732 4055 2914 3741 4054 2973 3741 4037 3028 3767 4056 3113 3777 4063 3173 3789 4062 3228 3793 4052 3288 3816 4063 3388 3821 4050 3461 3863 4049 3527 3851 4065 3609 3911 4064 3716 3901 4080 3802 3931 4064 3885 3964 4063 3997 3997 4080 4095 3613 450 32 3630 466 33 3645 500 15 3647 531 1 3673 564 28 3675 567 0 3674 607 3 3674 587 111 3677 506 257 3673 456 404 3667 354 503 3688 201 627 3677 30 735 3675 9 827 3692 7 940 3766 8 1035 3806 8 1150 3863 7 1411 3905 16 1607 3950 6 1835 4008 0 2058 4020 11 2249 4035 16 2457 4095 119 2629 4095 123 2783 4095 67 2897 4095 19 2993 4095 0 3107 4077 32 3252 4050 32 3444 4078 16 3594 4095 0 3822 3630 498 48 3645 530 0 3631 548 17 3631 550 14 3661 595 14 3662 600 0 3690 650 19 3690 603 119 3666 546 272 3693 477 396 3688 387 524 3667 262 621 3676 80 725 3677 25 836 3685 7 952 3759 0 1028 3814 0 1173 3839 8 1386 3913 7 1626 3963 0 1829 4008 0 2066 4021 10 2260 4064 11 2472 4091 208 2633 4095 250 2787 4095 175 2926 4095 78 3025 4081 29 3095 4080 30 3253 4094 15 3448 4094 1 3564 4080 0 3823 3660 548 15 3646 580 0 3646 581 0 3662 627 14 3662 629 0 3680 649 29 3682 675 0 3692 637 109 3681 566 257 3680 533 404 3672 433 522 3692 327 622 3668 164 753 3687 16 830 3685 7 957 3750 15 1005 3814 8 1158 3855 0 1388 3905 7 1615 3944 12 1846 3980 9 2045 4033 10 2260 4056 5 2434 4069 309 2625 4084 376 2767 4095 315 2895 4095 219 3023 4095 84 3130 4066 13 3243 4094 2 3445 4078 17 3552 4079 0 3822 3647 615 3 3660 631 15 3664 632 15 3661 663 0 3677 680 0 3681 728 13 3710 721 0 3706 692 107 3686 628 263 3693 572 419 3686 499 515 3691 410 622 3685 264 740 3681 80 838 3693 16 960 3741 14 1052 3814 8 1158 3864 9 1377 3908 8 1600 3939 8 1832 4009 0 2048 4031 11 2254 4032 24 2438 4095 425 2632 4091 476 2802 4095 448 2886 4094 370 2999 4095 278 3155 4094 128 3315 4095 20 3421 4064 30 3580 4064 18 3824 3647 697 14 3663 712 0 3664 714 33 3666 745 14 3677 761 0 3690 774 14 3697 773 13 3681 737 109 3696 693 271 3682 651 377 3683 577 492 3693 503 613 3692 379 727 3691 236 825 3663 49 966 3746 10 1066 3814 8 1166 3870 11 1391 3936 0 1609 3944 0 1829 3980 8 2027 4017 5 2250 4066 197 2452 4061 559 2613 4085 621 2762 4087 575 2870 4090 527 3004 4093 468 3119 4095 329 3311 4093 190 3468 4082 68 3599 4081 19 3826 3693 779 0 3664 795 0 3680 811 27 3682 839 0 3682 847 0 3693 856 5 3710 853 6 3696 817 73 3686 758 253 3724 732 391 3696 661 486 3712 587 633 3709 498 738 3724 385 838 3722 252 963 3725 16 1059 3825 0 1148 3879 3 1372 3889 3 1593 3944 0 1824 3985 19 2019 4017 42 2224 4073 406 2431 4066 684 2618 4084 730 2765 4092 713 2868 4095 682 2987 4095 602 3136 4088 550 3294 4095 463 3443 4082 360 3660 4095 342 3811 3703 883 0 3699 906 0 3717 897 2 3732 938 3 3725 925 30 3723 938 0 3706 918 6 3701 886 63 3717 844 222 3727 819 393 3713 759 493 3729 688 638 3732 614 709 3722 528 856 3727 408 959 3734 213 1082 3814 8 1149 3869 0 1359 3908 3 1582 3938 13 1803 3990 9 2046 4015 281 2215 4068 587 2452 4072 810 2635 4088 876 2779 4082 870 2894 4082 831 2991 4087 790 3134 4084 701 3297 4095 657 3439 4094 579 3660 4082 565 3819 3733 982 25 3728 991 0 3711 995 0 3740 1036 14 3758 1024 20 3738 1035 12 3742 1003 0 3754 974 47 3749 953 241 3767 914 385 3743 879 519 3758 816 627 3732 728 729 3752 640 845 3749 573 989 3741 488 1107 3796 15 1185 3854 9 1354 3910 17 1598 3969 11 1815 3963 213 2002 4013 498 2235 4057 725 2444 4062 942 2621 4095 1026 2780 4095 1007 2893 4095 962 3001 4085 950 3105 4090 887 3270 4083 818 3474 4095 770 3651 4091 776 3813 3734 1109 0 3754 1121 0 3749 1124 0 3762 1133 0 3768 1136 14 3775 1118 19 3752 1088 0 3754 1056 42 3770 1040 225 3785 1015 383 3774 975 518 3763 908 604 3754 853 731 3786 778 859 3759 716 989 3739 638 1095 3808 406 1222 3876 5 1344 3918 22 1558 3946 200 1799 3991 462 2015 4014 679 2260 4066 859 2452 4074 1052 2640 4067 1165 2799 4095 1132 2931 4095 1102 3053 4095 1072 3157 4073 1031 3286 4073 1001 3463 4091 945 3649 4095 936 3850 3776 1223 14 3772 1228 5 3778 1234 0 3803 1225 26 3776 1232 0 3790 1207 0 3785 1185 0 3791 1163 14 3778 1155 213 3799 1106 399 3805 1096 508 3784 1042 633 3785 989 741 3809 911 876 3806 840 982 3757 795 1141 3773 731 1274 3856 235 1385 3926 227 1539 3927 473 1781 3998 652 2032 4013 839 2280 4060 1009 2468 4044 1176 2646 4090 1304 2797 4092 1276 2928 4095 1271 3061 4090 1232 3160 4095 1174 3325 4085 1163 3470 4083 1105 3608 4095 1115 3833 3800 1343 22 3800 1342 0 3796 1338 23 3810 1350 11 3795 1334 0 3825 1327 0 3812 1291 0 3819 1270 11 3816 1253 181 3817 1232 359 3816 1199 518 3811 1150 649 3806 1115 753 3825 1056 882 3806 977 990 3800 939 1136 3788 901 1260 3848 688 1384 3906 511 1538 3981 658 1787 3976 838 2010 4025 990 2255 4066 1153 2472 4070 1285 2657 4086 1439 2838 4076 1426 2932 4095 1404 3041 4088 1386 3175 4095 1361 3314 4090 1306 3449 4090 1283 3652 4095 1278 3827 3838 1462 0 3849 1458 0 3844 1465 5 3828 1442 10 3826 1440 10 3838 1428 21 3846 1401 3 3840 1402 21 3838 1388 194 3838 1356 366 3855 1319 519 3844 1281 649 3849 1253 768 3829 1203 886 3849 1131 987 3820 1067 1119 3831 1036 1267 3821 985 1426 3916 719 1529 3960 819 1762 4003 965 1999 4026 1127 2238 4032 1280 2461 4064 1415 2651 4082 1567 2854 4066 1592 2986 4087 1554 3060 4089 1543 3171 4088 1516 3309 4083 1470 3491 4068 1442 3633 4095 1430 3828 3860 1566 0 3864 1582 22 3869 1576 10 3869 1572 5 3861 1554 10 3867 1537 13 3883 1544 6 3879 1517 4 3867 1498 196 3866 1483 369 3885 1455 525 3896 1416 650 3867 1384 786 3886 1356 901 3892 1285 1029 3876 1237 1169 3858 1175 1272 3843 1152 1437 3896 1013 1547 3938 980 1720 3983 1104 2014 4013 1257 2233 4031 1408 2457 4060 1539 2685 4082 1687 2837 4075 1740 2958 4089 1706 3093 4095 1667 3209 4086 1653 3323 4086 1613 3478 4073 1593 3633 4085 1589 3816 3900 1688 0 3909 1696 9 3907 1696 16 3896 1676 0 3884 1665 0 3900 1656 9 3900 1649 9 3897 1649 17 3886 1619 182 3909 1603 393 3895 1574 541 3909 1563 695 3894 1525 815 3893 1498 942 3900 1442 1065 3894 1383 1137 3888 1312 1270 3877 1303 1441 3863 1253 1583 3970 1113 1729 3975 1241 1981 4023 1382 2203 4033 1521 2464 4071 1648 2661 4056 1807 2869 4088 1877 2997 4076 1853 3092 4095 1828 3231 4087 1795 3356 4095 1746 3503 4088 1745 3658 4095 1729 3852 3934 1835 9 3923 1812 7 3932 1810 0 3936 1815 9 3944 1792 2 3943 1793 5 3943 1795 9 3924 1785 11 3942 1753 217 3924 1731 418 3940 1726 563 3943 1709 696 3926 1668 818 3928 1645 948 3942 1597 1082 3934 1553 1193 3918 1504 1308 3888 1435 1437 3889 1428 1627 3900 1358 1737 3985 1353 1967 4010 1493 2228 4032 1641 2449 4056 1776 2673 4061 1917 2876 4073 2017 3051 4066 2002 3129 4086 1981 3229 4094 1942 3357 4095 1909 3520 4087 1900 3634 4088 1876 3847 3974 1942 17 3952 1949 0 3960 1935 17 3981 1944 16 3970 1935 0 3958 1918 3 3963 1928 8 3975 1910 22 3970 1893 233 3986 1883 420 3979 1859 588 3982 1840 716 3967 1830 875 3981 1808 991 3960 1759 1122 3958 1718 1235 3942 1652 1350 3958 1596 1459 3964 1571 1629 3902 1584 1812 3969 1483 1949 3998 1632 2211 4028 1774 2453 4071 1889 2693 4020 2032 2840 4060 2148 3042 4049 2148 3177 4083 2119 3254 4080 2088 3357 4085 2064 3482 4095 2031 3667 4087 2014 3878 3999 2073 8 3991 2065 0 4006 2065 7 4008 2070 3 3985 2057 8 4009 2062 5 4012 2050 19 4006 2036 41 4003 2025 298 3999 2012 481 3996 1992 640 4012 1976 781 4015 1962 924 3990 1944 1053 3971 1921 1140 3991 1865 1277 3967 1832 1374 3960 1782 1508 3952 1736 1638 3960 1738 1837 3962 1721 1957 3991 1728 2186 4031 1876 2451 4059 2012 2661 4058 2138 2868 4064 2269 3060 4066 2287 3188 4087 2267 3258 4095 2233 3371 4086 2206 3504 4088 2170 3668 4087 2161 3870 4018 2196 9 3991 2196 17 4017 2197 1 4022 2209 10 4016 2187 0 4038 2187 0 4033 2183 9 4025 2180 86 4024 2171 340 4031 2155 517 4032 2143 665 4045 2123 836 4048 2109 962 4038 2086 1093 4011 2071 1208 4002 2037 1334 4023 1997 1472 4015 1962 1562 3999 1922 1698 3983 1902 1816 3953 1903 2001 3985 1875 2206 4029 1978 2431 4030 2106 2662 4050 2230 2880 4050 2385 3053 4084 2417 3212 4086 2398 3304 4076 2365 3383 4076 2354 3492 4095 2317 3677 4069 2285 3845 4024 2340 0 4021 2352 7 4024 2342 8 4024 2334 7 4024 2334 7 4040 2338 0 4034 2334 6 4039 2317 174 4040 2307 403 4054 2297 586 4061 2283 754 4069 2275 894 4079 2257 1046 4040 2247 1174 4040 2229 1293 4042 2222 1383 4056 2160 1528 4039 2150 1644 4024 2102 1780 4024 2070 1908 3986 2026 2025 3967 2068 2238 3980 2088 2394 4019 2207 2661 4043 2336 2872 4050 2449 3064 4042 2543 3215 4086 2517 3315 4083 2501 3421 4095 2473 3540 4083 2441 3660 4095 2421 3870 3999 2480 6 4012 2480 10 4030 2479 25 4010 2482 6 4029 2488 6 4027 2481 0 4041 2471 55 4041 2462 272 4045 2442 484 4037 2444 669 4058 2426 810 4075 2428 980 4076 2406 1111 4095 2397 1244 4066 2373 1362 4083 2370 1491 4060 2346 1589 4061 2321 1750 4025 2282 1843 4027 2259 1990 4029 2207 2100 4005 2217 2253 3987 2223 2431 4011 2295 2651 4034 2427 2869 4063 2545 3094 4067 2646 3224 4069 2667 3342 4084 2641 3461 4085 2614 3572 4089 2588 3692 4085 2561 3886 4004 2627 0 4004 2631 25 3998 2627 7 3999 2627 6 4015 2637 0 4004 2624 3 4005 2624 123 4024 2614 349 4022 2605 543 4041 2590 708 4052 2590 861 4051 2562 1012 4063 2573 1165 4082 2541 1304 4085 2534 1450 4082 2536 1598 4087 2523 1704 4079 2499 1819 4073 2462 1928 4033 2445 2052 4042 2433 2188 4015 2386 2286 3982 2398 2494 4004 2416 2594 4027 2523 2890 4022 2628 3064 4049 2756 3271 4047 2786 3377 4064 2786 3475 4095 2744 3571 4095 2729 3691 4095 2681 3886 4004 2763 0 4004 2757 0 4010 2757 0 4015 2756 0 4004 2763 0 4010 2750 72 4010 2758 314 4027 2750 476 4024 2747 638 4035 2738 802 4036 2731 942 4052 2725 1088 4059 2719 1247 4074 2697 1354 4090 2686 1508 4084 2683 1665 4095 2688 1843 4090 2647 1939 4054 2638 2051 4089 2614 2180 4058 2608 2306 4031 2576 2393 4026 2544 2515 3983 2561 2666 4025 2591 2845 4038 2699 3054 4044 2813 3234 4047 2924 3423 4063 2904 3480 4093 2872 3612 4069 2849 3709 4095 2816 3881 3992 2904 0 3989 2909 22 3987 2895 0 3997 2914 10 3992 2899 67 4001 2893 292 4000 2911 421 4002 2888 582 4007 2895 723 4015 2879 849 4020 2867 988 4040 2878 1147 4042 2866 1296 4058 2856 1445 4082 2849 1574 4072 2847 1719 4092 2851 1881 4086 2800 2027 4095 2808 2154 4051 2795 2265 4087 2787 2408 4043 2756 2507 4031 2739 2622 4006 2699 2681 3976 2715 2812 4011 2793 3036 4021 2914 3246 4053 3022 3435 4035 3041 3509 4069 3013 3617 4095 2996 3751 4095 2952 3920 3995 3055 0 3981 3051 4 3973 3029 26 3977 3045 148 3987 3061 319 3980 3044 435 3993 3048 552 3999 3042 705 4011 3035 811 3991 3023 950 4012 3023 1070 4031 3029 1223 4035 3024 1361 4051 3009 1487 4041 3003 1631 4047 2995 1785 4055 2986 1936 4063 2974 2088 4067 2973 2238 4095 2961 2392 4091 2966 2524 4088 2934 2614 4082 2923 2716 4035 2902 2794 4021 2857 2887 4019 2863 3020 4023 2996 3244 4047 3103 3450 4060 3150 3583 4051 3119 3635 4095 3103 3771 4091 3083 3923 3950 3213 149 3966 3173 227 3966 3193 322 3967 3185 415 3969 3192 489 3976 3187 612 3986 3182 721 3976 3172 839 3998 3194 941 4003 3186 1065 3995 3181 1184 4013 3166 1323 4015 3171 1446 4029 3151 1574 4034 3162 1733 4019 3144 1842 4059 3137 2017 4047 3133 2153 4069 3142 2307 4073 3110 2431 4095 3103 2591 4061 3135 2697 4057 3086 2794 4043 3082 2887 4063 3021 2985 4016 3022 3097 4002 3053 3239 4027 3155 3413 4050 3276 3603 4061 3276 3645 4083 3242 3787 4095 3201 3934 3938 3341 412 3925 3338 459 3949 3341 523 3938 3339 589 3954 3341 697 3962 3333 756 3950 3315 851 3955 3315 969 3967 3337 1058 3963 3325 1171 3970 3320 1286 3989 3322 1414 3979 3312 1534 3999 3302 1678 4012 3303 1782 4004 3288 1964 4025 3281 2058 4041 3271 2200 4050 3273 2357 4028 3260 2451 4058 3264 2610 4072 3253 2741 4092 3277 2901 4070 3259 3008 4034 3244 3051 4041 3215 3158 3989 3183 3251 4030 3258 3428 4035 3362 3617 4063 3393 3691 4078 3353 3815 4095 3328 3960 3918 3461 729 3921 3474 750 3910 3463 796 3921 3473 816 3940 3488 883 3918 3474 948 3916 3467 1032 3916 3471 1129 3934 3461 1218 3946 3474 1302 3956 3480 1405 3961 3469 1518 3967 3477 1636 3976 3463 1747 3990 3458 1888 3990 3437 2026 4007 3437 2131 4001 3435 2276 4009 3412 2397 4005 3424 2532 4020 3413 2661 4047 3394 2801 4047 3408 2897 4054 3394 2994 4081 3392 3163 4059 3369 3216 4028 3359 3298 4027 3326 3439 4043 3442 3605 4061 3509 3738 4068 3502 3794 4082 3485 3953 3814 3545 1043 3841 3531 1071 3814 3529 1077 3816 3530 1088 3830 3529 1172 3835 3534 1182 3846 3540 1265 3834 3535 1349 3860 3555 1415 3872 3552 1511 3892 3556 1591 3884 3561 1681 3906 3551 1789 3927 3563 1904 3953 3580 2022 3964 3575 2107 3975 3577 2219 3990 3578 2308 3987 3559 2451 3987 3563 2557 3995 3557 2685 4001 3557 2811 4015 3554 2948 4047 3541 3081 4034 3530 3183 4025 3543 3288 4063 3525 3406 4047 3493 3458 4062 3491 3588 4046 3620 3772 4077 3623 3854 4081 3605 3964 3806 3625 1303 3778 3640 1336 3777 3637 1339 3780 3623 1353 3772 3637 1396 3795 3627 1460 3783 3639 1477 3813 3650 1559 3797 3629 1634 3817 3646 1714 3819 3641 1817 3834 3638 1885 3837 3649 1978 3854 3634 2059 3860 3642 2147 3883 3648 2249 3887 3667 2350 3891 3664 2465 3932 3673 2575 3938 3677 2663 3970 3703 2743 3991 3690 2901 3997 3699 2954 4015 3690 3113 4027 3690 3213 4019 3684 3303 4062 3673 3474 4064 3686 3587 4063 3639 3654 4048 3685 3768 4076 3738 3884 4079 3706 4002 3760 3754 1628 3757 3755 1628 3746 3755 1661 3746 3755 1689 3746 3757 1696 3775 3778 1731 3783 3754 1794 3778 3761 1841 3779 3756 1906 3799 3764 1980 3785 3754 2018 3787 3756 2079 3804 3755 2142 3802 3775 2235 3800 3748 2312 3823 3771 2388 3836 3770 2495 3838 3770 2580 3871 3770 2647 3866 3770 2749 3904 3785 2848 3916 3787 2971 3934 3799 3047 3974 3815 3172 3996 3829 3288 4004 3816 3366 4031 3820 3500 4061 3803 3589 4049 3803 3690 4047 3786 3802 4064 3865 3932 4065 3834 4045 3742 3885 1969 3758 3900 2017 3759 3901 1992 3761 3901 2045 3762 3900 2054 3764 3903 2059 3774 3901 2089 3786 3913 2111 3778 3900 2161 3790 3900 2233 3796 3889 2281 3811 3905 2361 3803 3900 2392 3822 3916 2482 3821 3900 2531 3830 3908 2589 3823 3907 2648 3860 3922 2720 3857 3922 2806 3874 3904 2860 3906 3900 2968 3912 3911 3043 3883 3912 3144 3926 3904 3264 3964 3916 3344 3980 3917 3446 3996 3917 3556 4028 3931 3664 4075 3976 3782 4077 3964 3866 4094 3964 3963 4079 3964 4093 3806 4047 2425 3790 4062 2424 3792 4063 2426 3806 4034 2459 3792 4049 2459 3819 4076 2489 3819 4047 2521 3818 4047 2521 3842 4063 2550 3827 4058 2611 3838 4052 2644 3838 4063 2677 3838 4057 2710 3854 4063 2778 3845 4054 2785 3855 4063 2850 3870 4055 2914 3870 4070 2989 3896 4063 3050 3892 4063 3093 3897 4073 3163 3913 4074 3228 3918 4079 3276 3946 4067 3380 3929 4091 3445 3967 4082 3527 4010 4076 3635 4013 4067 3719 4029 4066 3832 4046 4095 3884 4047 4095 3982 4095 4079 4095 ================================================ FILE: packages/sdk/public/resource/luts/Remy 24.CUBE ================================================ #Created by: Adobe Photoshop Export Color Lookup Plugin #Copyright: (C) Copyright 2017 RocketStock TITLE "Untitled" #LUT size LUT_3D_SIZE 32 #data domain DOMAIN_MIN 0.0 0.0 0.0 DOMAIN_MAX 1.0 1.0 1.0 #LUT data points 0.003937 0.002777 0.002625 0.051483 0.003021 0.004120 0.097351 0.003876 0.006683 0.140625 0.005280 0.010284 0.180695 0.007233 0.014618 0.217010 0.009521 0.019287 0.249329 0.012177 0.024536 0.278473 0.014984 0.029755 0.305328 0.017853 0.034912 0.330780 0.020660 0.039734 0.355591 0.023071 0.043640 0.380402 0.023926 0.045380 0.405792 0.024414 0.046509 0.432526 0.024719 0.047455 0.461151 0.024811 0.048279 0.492096 0.024811 0.048950 0.526733 0.024567 0.049316 0.566315 0.024139 0.049530 0.609894 0.023560 0.049469 0.656128 0.022949 0.049347 0.703369 0.022400 0.049225 0.749847 0.021820 0.049042 0.793732 0.021393 0.048767 0.833496 0.021240 0.048859 0.868866 0.021240 0.048889 0.900177 0.021484 0.049225 0.927979 0.021912 0.049591 0.952576 0.022491 0.049927 0.974548 0.023285 0.050354 0.994293 0.024170 0.050812 1.000000 0.043823 0.068878 1.000000 0.070831 0.093903 0.003754 0.041748 0.008911 0.052643 0.044098 0.013550 0.098419 0.045563 0.017456 0.141571 0.047394 0.021973 0.181519 0.049591 0.026825 0.217621 0.051788 0.031708 0.249664 0.054169 0.036591 0.278595 0.056519 0.041046 0.305328 0.058746 0.045074 0.330536 0.059570 0.046814 0.355072 0.060028 0.047943 0.379608 0.060394 0.049072 0.404907 0.060760 0.050110 0.431519 0.060913 0.050934 0.460175 0.060852 0.051636 0.491302 0.060669 0.052094 0.525848 0.060303 0.052429 0.565369 0.059875 0.052429 0.608917 0.059296 0.052277 0.655151 0.058685 0.052063 0.702332 0.058044 0.051819 0.748810 0.057404 0.051514 0.792694 0.057098 0.051300 0.832642 0.056976 0.051270 0.868225 0.057007 0.051270 0.899689 0.057465 0.051514 0.927490 0.057922 0.051788 0.952087 0.058441 0.052094 0.974060 0.059479 0.052460 0.993744 0.060059 0.052551 1.000000 0.078217 0.070282 1.000000 0.104370 0.096222 0.003967 0.081421 0.018524 0.052856 0.084198 0.024139 0.099823 0.087036 0.029877 0.142914 0.088989 0.034668 0.182678 0.090912 0.039154 0.218567 0.092865 0.043549 0.250458 0.094818 0.047394 0.279144 0.095367 0.049011 0.305542 0.095734 0.050140 0.330475 0.096039 0.051270 0.354858 0.096313 0.052368 0.379272 0.096649 0.053406 0.404633 0.096771 0.054321 0.431366 0.096893 0.054993 0.460052 0.096954 0.055664 0.491150 0.096497 0.056030 0.525726 0.096313 0.056183 0.565247 0.095734 0.056152 0.608795 0.095184 0.055908 0.655029 0.094574 0.055664 0.702209 0.094025 0.055298 0.748871 0.093506 0.054932 0.793182 0.093231 0.054688 0.833221 0.093079 0.054565 0.868866 0.093231 0.054535 0.900238 0.093719 0.054657 0.927979 0.094299 0.054810 0.952454 0.094788 0.054810 0.974274 0.095215 0.054932 0.993896 0.096039 0.054993 1.000000 0.112885 0.072754 1.000000 0.137177 0.098450 0.004578 0.120819 0.029877 0.053070 0.123230 0.035309 0.100433 0.126434 0.041351 0.144318 0.129028 0.046478 0.183899 0.130524 0.049988 0.219360 0.130890 0.051575 0.250763 0.130981 0.052521 0.279083 0.131134 0.053497 0.305267 0.131287 0.054535 0.330139 0.131561 0.055603 0.354553 0.131744 0.056549 0.379120 0.131897 0.057526 0.404510 0.131989 0.058319 0.431244 0.132019 0.058960 0.459961 0.131958 0.059479 0.491028 0.131683 0.059814 0.525635 0.131470 0.059875 0.565125 0.130951 0.059723 0.608673 0.130280 0.059448 0.655090 0.129730 0.059052 0.702850 0.129242 0.058685 0.749847 0.128754 0.058197 0.794220 0.128662 0.057892 0.834320 0.128662 0.057678 0.869812 0.128723 0.057587 0.901031 0.129028 0.057312 0.928558 0.129303 0.057220 0.952942 0.129791 0.057190 0.974609 0.130615 0.057251 0.994080 0.131531 0.057373 1.000000 0.147034 0.075104 1.000000 0.169189 0.100555 0.005310 0.159149 0.041260 0.053314 0.160767 0.045532 0.100616 0.163635 0.050751 0.144684 0.165314 0.053772 0.184296 0.165894 0.055237 0.219299 0.165771 0.056061 0.250488 0.165771 0.056946 0.278687 0.165802 0.057831 0.304962 0.165863 0.058777 0.329987 0.166077 0.059723 0.354431 0.166138 0.060577 0.378998 0.166260 0.061432 0.404388 0.166290 0.062073 0.431122 0.166321 0.062683 0.459839 0.166290 0.063171 0.490936 0.166046 0.063385 0.525513 0.165771 0.063416 0.565155 0.165314 0.063232 0.609344 0.164673 0.062744 0.656311 0.164154 0.062317 0.704376 0.163818 0.061798 0.751556 0.163361 0.061310 0.795837 0.163177 0.060913 0.835693 0.162903 0.060303 0.870941 0.163177 0.059998 0.902008 0.163391 0.059692 0.929352 0.163849 0.059570 0.953522 0.164337 0.059509 0.975037 0.164978 0.059509 0.994354 0.165894 0.059570 1.000000 0.180176 0.077423 1.000000 0.200531 0.102539 0.006165 0.195740 0.050964 0.053436 0.195740 0.052368 0.099915 0.196991 0.054688 0.143402 0.198151 0.056885 0.183411 0.199249 0.059021 0.218842 0.199615 0.060394 0.250153 0.199524 0.061157 0.278534 0.199493 0.061920 0.304840 0.199524 0.062805 0.329865 0.199615 0.063599 0.354279 0.199615 0.064362 0.378876 0.199799 0.065155 0.404266 0.199829 0.065765 0.431000 0.199860 0.066284 0.459747 0.199768 0.066620 0.490967 0.199615 0.066772 0.526154 0.199249 0.066711 0.566498 0.198822 0.066467 0.611084 0.198364 0.065918 0.658386 0.197906 0.065369 0.706635 0.197449 0.064819 0.753601 0.196930 0.063934 0.797760 0.196625 0.063263 0.837341 0.196594 0.062653 0.872345 0.196533 0.062286 0.903168 0.196869 0.061981 0.930267 0.197388 0.061798 0.954193 0.198059 0.061737 0.975525 0.198547 0.061707 0.994598 0.199463 0.061707 1.000000 0.212830 0.079651 1.000000 0.230896 0.104492 0.005646 0.228485 0.055206 0.052185 0.227966 0.055634 0.098175 0.228851 0.057678 0.141449 0.229950 0.059845 0.181702 0.230927 0.061890 0.218140 0.231964 0.063843 0.249969 0.232330 0.065125 0.278381 0.232178 0.065826 0.304657 0.232239 0.066589 0.329712 0.232239 0.067322 0.354156 0.232330 0.068024 0.378754 0.232452 0.068726 0.404144 0.232452 0.069275 0.431061 0.232513 0.069702 0.460266 0.232483 0.069946 0.492065 0.232330 0.070007 0.527771 0.232025 0.069855 0.568665 0.231720 0.069458 0.613678 0.231201 0.068878 0.661102 0.230682 0.067993 0.709229 0.230072 0.067108 0.756226 0.229645 0.066284 0.800110 0.229279 0.065552 0.839355 0.229218 0.064911 0.873993 0.229431 0.064514 0.904419 0.229553 0.064148 0.931244 0.230164 0.063934 0.954926 0.230835 0.063812 0.975983 0.231384 0.063751 0.994873 0.232025 0.063721 1.000000 0.244141 0.081757 1.000000 0.260559 0.106232 0.004089 0.259796 0.058350 0.050446 0.259186 0.058777 0.096313 0.259888 0.060577 0.139984 0.260834 0.062592 0.180328 0.261780 0.064575 0.216766 0.262756 0.066498 0.249268 0.263702 0.068329 0.278259 0.264160 0.069580 0.304535 0.264160 0.070221 0.329590 0.264160 0.070892 0.354034 0.264282 0.071564 0.378754 0.264374 0.072113 0.404633 0.264435 0.072571 0.432098 0.264496 0.072968 0.461731 0.264465 0.073120 0.493988 0.264404 0.073059 0.530273 0.264160 0.072815 0.571503 0.263641 0.072052 0.616699 0.263062 0.071198 0.664307 0.262421 0.070282 0.712463 0.261993 0.069366 0.759277 0.261475 0.068451 0.802765 0.261383 0.067719 0.841553 0.261261 0.067078 0.875793 0.261475 0.066589 0.905853 0.261627 0.066223 0.932312 0.262085 0.065979 0.955688 0.262665 0.065826 0.976501 0.263245 0.065704 0.995178 0.264069 0.065613 1.000000 0.275024 0.083740 1.000000 0.289581 0.107941 0.002289 0.290344 0.061432 0.048950 0.289673 0.061707 0.094818 0.290192 0.063232 0.138550 0.291016 0.065186 0.178894 0.291931 0.067047 0.215393 0.292908 0.068878 0.247925 0.293854 0.070648 0.277496 0.294800 0.072388 0.304413 0.295471 0.073730 0.329590 0.295532 0.074341 0.354553 0.295654 0.074860 0.379791 0.295807 0.075378 0.406006 0.295898 0.075745 0.433899 0.296021 0.076050 0.463959 0.296112 0.076080 0.496460 0.295837 0.075684 0.533112 0.295441 0.075134 0.574860 0.294983 0.074371 0.620392 0.294403 0.073425 0.668213 0.294037 0.072479 0.716248 0.293365 0.071442 0.762726 0.293091 0.070526 0.805725 0.292786 0.069733 0.843964 0.292877 0.069061 0.877686 0.293091 0.068542 0.907349 0.293304 0.068237 0.933411 0.293762 0.067902 0.956482 0.294250 0.067719 0.977020 0.294861 0.067535 0.995483 0.295654 0.067413 1.000000 0.305389 0.085663 1.000000 0.318420 0.109528 0.000916 0.320404 0.064270 0.047607 0.319763 0.064484 0.093323 0.320099 0.065735 0.137085 0.320953 0.067535 0.177460 0.321869 0.069366 0.214020 0.322815 0.071136 0.246613 0.323730 0.072815 0.276245 0.324768 0.074493 0.304199 0.325775 0.076111 0.330719 0.326691 0.077576 0.356018 0.326843 0.078064 0.381592 0.327057 0.078461 0.408234 0.327240 0.078735 0.436279 0.327209 0.078644 0.466522 0.327118 0.078430 0.499512 0.326904 0.077972 0.536743 0.326569 0.077332 0.578949 0.326080 0.076508 0.624756 0.325684 0.075531 0.672607 0.325165 0.074493 0.720398 0.324768 0.073486 0.766479 0.324432 0.072510 0.808899 0.324280 0.071686 0.846527 0.324188 0.071014 0.879730 0.324554 0.070465 0.908905 0.324677 0.070038 0.934570 0.325165 0.069672 0.957275 0.325562 0.069519 0.977570 0.326202 0.069244 0.995789 0.326721 0.069092 1.000000 0.335480 0.087494 1.000000 0.346802 0.111084 0.000000 0.350006 0.067261 0.046204 0.349762 0.066956 0.091858 0.349976 0.067963 0.135620 0.350830 0.069733 0.176025 0.351807 0.071472 0.212769 0.352753 0.073212 0.246094 0.353668 0.074738 0.276489 0.354767 0.076416 0.304718 0.355865 0.077972 0.331635 0.356964 0.079498 0.358215 0.358154 0.081055 0.383942 0.358276 0.081085 0.410706 0.358307 0.081085 0.439117 0.358276 0.080933 0.469757 0.358215 0.080597 0.503143 0.358063 0.080139 0.541016 0.357758 0.079376 0.583618 0.357361 0.078491 0.629639 0.356964 0.077484 0.677429 0.356537 0.076385 0.724854 0.356049 0.075317 0.770447 0.355835 0.074371 0.812164 0.355774 0.073578 0.849213 0.355835 0.072784 0.881744 0.355927 0.072235 0.910431 0.356232 0.071808 0.935699 0.356537 0.071381 0.958099 0.357025 0.071106 0.978088 0.357483 0.070862 0.996094 0.358154 0.070648 1.000000 0.365540 0.089142 1.000000 0.375366 0.112427 0.000000 0.379028 0.070496 0.044800 0.379974 0.069366 0.090363 0.380096 0.070160 0.134186 0.380981 0.071747 0.175690 0.381958 0.073456 0.213287 0.382935 0.075073 0.247009 0.383972 0.076660 0.277557 0.385132 0.078186 0.306061 0.386230 0.079742 0.333099 0.387268 0.080872 0.359711 0.388336 0.082092 0.386719 0.389435 0.083282 0.413818 0.389557 0.083313 0.442627 0.389679 0.083099 0.473602 0.389648 0.082672 0.507385 0.389557 0.082123 0.545868 0.389343 0.081329 0.588745 0.388885 0.080353 0.634888 0.388580 0.079285 0.682495 0.388062 0.078278 0.729584 0.387695 0.077087 0.774445 0.387451 0.076111 0.815491 0.387390 0.075226 0.851807 0.387421 0.074493 0.883820 0.387634 0.073883 0.911926 0.387817 0.073364 0.936829 0.388184 0.072968 0.958893 0.388611 0.072693 0.978607 0.389069 0.072327 0.996368 0.389496 0.072052 1.000000 0.395935 0.090698 1.000000 0.403900 0.113647 0.000000 0.408417 0.073669 0.043427 0.410614 0.071411 0.090179 0.410645 0.072052 0.135345 0.411621 0.073608 0.177246 0.412659 0.075226 0.215118 0.413696 0.076752 0.248901 0.414795 0.078278 0.279419 0.415802 0.079468 0.307831 0.416809 0.080688 0.334961 0.417847 0.081848 0.361816 0.419037 0.083038 0.388947 0.420135 0.084137 0.417358 0.421295 0.085205 0.446594 0.421600 0.085114 0.477905 0.421539 0.084686 0.512115 0.421448 0.083984 0.551056 0.421173 0.083130 0.594330 0.420898 0.082184 0.640442 0.420532 0.081055 0.687744 0.420105 0.079895 0.734314 0.419800 0.078766 0.778564 0.419556 0.077759 0.818817 0.419525 0.076874 0.854401 0.419434 0.076050 0.885803 0.419739 0.075378 0.913422 0.419952 0.074921 0.937866 0.420074 0.074432 0.959595 0.420593 0.074066 0.979034 0.420929 0.073700 0.996674 0.421387 0.073364 1.000000 0.426514 0.092041 1.000000 0.432953 0.114716 0.000000 0.439545 0.075775 0.044952 0.441803 0.073242 0.092377 0.441925 0.073792 0.138092 0.442932 0.075317 0.180267 0.444000 0.076813 0.217896 0.445007 0.078064 0.251373 0.445953 0.079224 0.281830 0.447021 0.080444 0.310211 0.448120 0.081635 0.337372 0.449188 0.082642 0.364349 0.450348 0.083771 0.391785 0.451508 0.084808 0.420380 0.452667 0.085876 0.450897 0.453949 0.086914 0.482574 0.453979 0.086487 0.517242 0.453979 0.085815 0.556702 0.453705 0.084869 0.600098 0.453369 0.083771 0.646210 0.453033 0.082642 0.693115 0.452637 0.081482 0.739136 0.452301 0.080322 0.782562 0.452179 0.079224 0.821991 0.452087 0.078308 0.856842 0.451996 0.077545 0.887634 0.452179 0.076874 0.914795 0.452332 0.076233 0.938812 0.452545 0.075806 0.960236 0.452850 0.075378 0.979431 0.453247 0.074982 0.996887 0.453644 0.074493 1.000000 0.457336 0.093109 1.000000 0.462585 0.115356 0.000000 0.473511 0.075653 0.048279 0.473724 0.074738 0.096436 0.474030 0.075348 0.142029 0.474945 0.076538 0.183929 0.475922 0.077759 0.221283 0.476929 0.078949 0.254486 0.477936 0.080078 0.284821 0.479004 0.081146 0.313110 0.480103 0.082275 0.340363 0.481232 0.083374 0.367340 0.482422 0.084351 0.394897 0.483551 0.085388 0.423889 0.484802 0.086365 0.454529 0.485992 0.087341 0.487579 0.487122 0.088196 0.522644 0.487122 0.087433 0.562469 0.486877 0.086456 0.606049 0.486481 0.085358 0.651917 0.486237 0.084137 0.698395 0.485748 0.082886 0.743744 0.485535 0.081726 0.786438 0.485382 0.080658 0.824982 0.485260 0.079651 0.859161 0.485107 0.078888 0.889374 0.485291 0.078186 0.916046 0.485382 0.077515 0.939728 0.485504 0.076996 0.960876 0.485901 0.076416 0.979858 0.485931 0.075836 0.997101 0.486359 0.075195 1.000000 0.489014 0.093750 1.000000 0.492554 0.115723 0.003815 0.506989 0.076385 0.053253 0.506439 0.075745 0.101288 0.506744 0.076141 0.146881 0.507721 0.077301 0.188416 0.508728 0.078461 0.225494 0.509857 0.079620 0.258362 0.510895 0.080658 0.288330 0.511993 0.081757 0.316467 0.513184 0.082764 0.343658 0.514343 0.083771 0.370758 0.515533 0.084778 0.398315 0.516754 0.085724 0.427429 0.517975 0.086670 0.458405 0.519226 0.087585 0.491730 0.520447 0.088440 0.528229 0.521423 0.088959 0.568451 0.521179 0.087952 0.611938 0.520844 0.086731 0.657532 0.520477 0.085480 0.703461 0.520111 0.084259 0.748138 0.519775 0.083069 0.790009 0.519562 0.081970 0.827820 0.519257 0.080933 0.861267 0.519226 0.080109 0.890930 0.519196 0.079376 0.917206 0.519348 0.078644 0.940552 0.519531 0.077911 0.961487 0.519714 0.077148 0.980286 0.519867 0.076294 0.997375 0.520294 0.075500 1.000000 0.521606 0.094116 1.000000 0.524017 0.115784 0.009430 0.541992 0.076996 0.059204 0.541534 0.076202 0.107605 0.542053 0.076782 0.152954 0.543121 0.077911 0.193939 0.544250 0.079010 0.230194 0.545380 0.080109 0.262634 0.546539 0.081116 0.292267 0.547729 0.082092 0.320099 0.548950 0.083069 0.347107 0.550140 0.084076 0.374237 0.551422 0.085022 0.402008 0.552673 0.085907 0.431183 0.553894 0.086761 0.462311 0.555176 0.087646 0.495880 0.556396 0.088440 0.532959 0.557678 0.089264 0.574310 0.558319 0.089264 0.617706 0.557892 0.088074 0.662964 0.557495 0.086792 0.708344 0.557007 0.085541 0.752258 0.556519 0.084290 0.793335 0.556244 0.083130 0.830292 0.555939 0.082123 0.863190 0.555878 0.081116 0.892395 0.555878 0.080231 0.918304 0.555908 0.079285 0.941406 0.555969 0.078339 0.962067 0.556213 0.077423 0.980682 0.556335 0.076508 0.997620 0.556671 0.075592 1.000000 0.556763 0.094299 1.000000 0.557556 0.115662 0.016724 0.579834 0.077362 0.066498 0.579315 0.076538 0.114990 0.580139 0.077271 0.159729 0.581238 0.078369 0.199890 0.582367 0.079407 0.235504 0.583649 0.080383 0.267120 0.584808 0.081360 0.296387 0.586029 0.082367 0.323883 0.587219 0.083282 0.350769 0.588470 0.084229 0.377808 0.589691 0.085052 0.405579 0.590973 0.085907 0.434967 0.592224 0.086731 0.466278 0.593445 0.087555 0.499908 0.594635 0.088257 0.537415 0.595856 0.089081 0.579346 0.597076 0.089752 0.623230 0.597168 0.089264 0.668030 0.596710 0.087952 0.712677 0.596069 0.086670 0.755951 0.595734 0.085388 0.796295 0.595215 0.084137 0.832672 0.594818 0.082947 0.865051 0.594574 0.081787 0.893829 0.594574 0.080658 0.919434 0.594482 0.079590 0.942230 0.594513 0.078491 0.962646 0.594574 0.077484 0.981079 0.594910 0.076447 0.997864 0.594971 0.075470 1.000000 0.593719 0.094299 1.000000 0.593079 0.115540 0.025360 0.619751 0.077423 0.075012 0.619263 0.076691 0.123138 0.620361 0.077606 0.167175 0.621490 0.078644 0.206421 0.622681 0.079620 0.240875 0.623840 0.080597 0.271973 0.625031 0.081573 0.300598 0.626251 0.082458 0.327820 0.627411 0.083313 0.354523 0.628632 0.084167 0.381592 0.629852 0.085022 0.409302 0.630981 0.085815 0.438690 0.632172 0.086548 0.470184 0.633392 0.087341 0.503754 0.634491 0.087982 0.541443 0.635651 0.088654 0.583344 0.636780 0.089355 0.627991 0.637787 0.089935 0.672577 0.637512 0.088989 0.716766 0.636871 0.087585 0.759399 0.636292 0.086182 0.799194 0.635803 0.084747 0.834991 0.635406 0.083374 0.866943 0.635071 0.082062 0.895325 0.634888 0.080811 0.920502 0.634827 0.079620 0.943085 0.634857 0.078461 0.963257 0.634766 0.077332 0.981476 0.634857 0.076294 0.998108 0.635071 0.075317 1.000000 0.632172 0.094360 1.000000 0.629761 0.115479 0.035095 0.661163 0.077301 0.084473 0.660858 0.076813 0.131989 0.661957 0.077820 0.174835 0.663086 0.078827 0.212982 0.664215 0.079803 0.246368 0.665344 0.080627 0.276733 0.666504 0.081543 0.305023 0.667633 0.082397 0.331757 0.668762 0.083221 0.358276 0.669861 0.084015 0.385193 0.671021 0.084808 0.412994 0.672058 0.085571 0.442444 0.673157 0.086273 0.473755 0.674255 0.086914 0.507568 0.675232 0.087616 0.545258 0.676270 0.088196 0.586853 0.677216 0.088776 0.631134 0.678131 0.089294 0.676758 0.679108 0.089722 0.720642 0.678406 0.088165 0.762817 0.677765 0.086548 0.802032 0.677216 0.084961 0.837280 0.676605 0.083466 0.868744 0.676208 0.082062 0.896759 0.676086 0.080719 0.921600 0.675873 0.079498 0.943878 0.675842 0.078308 0.963806 0.675781 0.077179 0.981873 0.675690 0.076172 0.998352 0.675812 0.075226 1.000000 0.671234 0.094513 1.000000 0.667023 0.115509 0.045654 0.703094 0.077271 0.094788 0.703064 0.077026 0.140961 0.704071 0.077942 0.182831 0.705139 0.078888 0.219513 0.706177 0.079773 0.252014 0.707214 0.080597 0.281586 0.708313 0.081482 0.309143 0.709320 0.082306 0.335541 0.710358 0.083038 0.361908 0.711395 0.083801 0.388672 0.712341 0.084503 0.416412 0.713348 0.085175 0.445770 0.714233 0.085846 0.477020 0.715149 0.086456 0.510803 0.716064 0.087036 0.548615 0.716919 0.087555 0.590179 0.717773 0.087982 0.634430 0.718658 0.088226 0.679688 0.719482 0.088440 0.724579 0.720123 0.088379 0.766205 0.719391 0.086639 0.804871 0.718658 0.084961 0.839569 0.717987 0.083374 0.870575 0.717682 0.081940 0.898102 0.717255 0.080566 0.922668 0.717102 0.079254 0.944672 0.716797 0.078156 0.964386 0.716797 0.077087 0.982239 0.716614 0.076111 0.998566 0.716675 0.075256 1.000000 0.710358 0.094757 1.000000 0.704681 0.115784 0.056702 0.744659 0.076874 0.105194 0.744904 0.077087 0.150238 0.745850 0.078003 0.190582 0.746826 0.078857 0.225952 0.747742 0.079742 0.257355 0.748627 0.080505 0.286102 0.749573 0.081299 0.313202 0.750488 0.082092 0.339325 0.751312 0.082764 0.365387 0.752228 0.083466 0.391937 0.753082 0.084167 0.419525 0.753876 0.084747 0.448700 0.754669 0.085358 0.480072 0.755463 0.085876 0.513916 0.756226 0.086273 0.551849 0.757019 0.086548 0.593414 0.757690 0.086761 0.637451 0.758453 0.086853 0.682648 0.759186 0.086914 0.727203 0.759918 0.086945 0.769531 0.760315 0.086456 0.807526 0.759552 0.084747 0.841736 0.758911 0.083160 0.872223 0.758453 0.081696 0.899384 0.757904 0.080353 0.923676 0.757568 0.079163 0.945404 0.757324 0.078094 0.964905 0.757111 0.077087 0.982605 0.756897 0.076202 0.998749 0.756836 0.075531 1.000000 0.749023 0.095306 1.000000 0.741669 0.116333 0.068024 0.785034 0.076660 0.115631 0.785553 0.077148 0.159241 0.786346 0.078003 0.198059 0.787170 0.078827 0.232117 0.787964 0.079590 0.262451 0.788727 0.080322 0.290558 0.789490 0.081085 0.317078 0.790253 0.081757 0.342712 0.790985 0.082458 0.368408 0.791718 0.083099 0.394806 0.792389 0.083710 0.422302 0.793091 0.084167 0.451508 0.793701 0.084625 0.483032 0.794342 0.084900 0.517151 0.795013 0.085114 0.555176 0.795685 0.085236 0.596893 0.796326 0.085327 0.640625 0.796967 0.085327 0.685364 0.797577 0.085236 0.729492 0.798187 0.085175 0.771637 0.798798 0.085052 0.810242 0.798920 0.084473 0.843842 0.798340 0.082916 0.873901 0.797638 0.081512 0.900635 0.797058 0.080261 0.924591 0.796631 0.079132 0.946045 0.796417 0.078156 0.965363 0.795959 0.077301 0.982910 0.795685 0.076691 0.998932 0.795441 0.076080 1.000000 0.786102 0.096191 1.000000 0.777405 0.117371 0.079224 0.823456 0.076324 0.125824 0.824127 0.077148 0.167969 0.824799 0.077911 0.205139 0.825470 0.078705 0.237701 0.826111 0.079437 0.267334 0.826721 0.080109 0.294525 0.827393 0.080811 0.320496 0.827972 0.081482 0.345795 0.828522 0.082062 0.371246 0.829102 0.082581 0.397430 0.829681 0.083008 0.425140 0.830231 0.083313 0.454498 0.830780 0.083588 0.485931 0.831329 0.083649 0.520294 0.831818 0.083710 0.558716 0.832397 0.083740 0.600342 0.832886 0.083679 0.643799 0.833405 0.083618 0.688202 0.833893 0.083527 0.731781 0.834442 0.083405 0.773468 0.834900 0.083313 0.811829 0.835388 0.083252 0.845795 0.835419 0.082794 0.875427 0.834778 0.081482 0.901855 0.834229 0.080322 0.925476 0.833832 0.079315 0.946686 0.833374 0.078552 0.965790 0.832855 0.077850 0.983124 0.832642 0.077454 0.999084 0.832275 0.077179 1.000000 0.821442 0.097595 1.000000 0.811523 0.118896 0.090637 0.859497 0.076294 0.135559 0.860016 0.077087 0.175903 0.860535 0.077820 0.211517 0.861084 0.078552 0.243011 0.861572 0.079224 0.271576 0.862061 0.079895 0.298096 0.862518 0.080536 0.323578 0.863007 0.081055 0.348572 0.863434 0.081512 0.374023 0.863831 0.081787 0.400330 0.864288 0.082031 0.428101 0.864746 0.082123 0.457581 0.865143 0.082214 0.489227 0.865631 0.082245 0.523621 0.866058 0.082184 0.562103 0.866455 0.082092 0.603546 0.866882 0.082031 0.646942 0.867279 0.081909 0.690979 0.867706 0.081909 0.734100 0.868103 0.081787 0.775146 0.868500 0.081757 0.812836 0.868958 0.081787 0.846802 0.869263 0.081818 0.876831 0.869476 0.081696 0.902924 0.868835 0.080688 0.926270 0.868195 0.079895 0.947235 0.867706 0.079315 0.966156 0.867096 0.078949 0.983368 0.866638 0.078735 0.999207 0.866333 0.078766 1.000000 0.854401 0.099518 1.000000 0.843567 0.121948 0.101227 0.892273 0.076324 0.144592 0.892639 0.077057 0.183197 0.893066 0.077759 0.217316 0.893433 0.078400 0.247650 0.893799 0.079010 0.275208 0.894135 0.079590 0.301422 0.894501 0.080048 0.326508 0.894806 0.080353 0.351410 0.895203 0.080597 0.376831 0.895538 0.080688 0.403107 0.895813 0.080780 0.431000 0.896210 0.080811 0.460663 0.896515 0.080719 0.492401 0.896881 0.080688 0.527039 0.897156 0.080597 0.565613 0.897522 0.080536 0.606903 0.897827 0.080444 0.650055 0.898193 0.080383 0.693390 0.898438 0.080353 0.736237 0.898743 0.080383 0.776672 0.899078 0.080444 0.813965 0.899384 0.080597 0.847290 0.899658 0.080841 0.877167 0.899933 0.081146 0.903870 0.900085 0.081482 0.926941 0.899384 0.080902 0.947693 0.898956 0.080627 0.966461 0.898376 0.080505 0.983582 0.897797 0.080658 0.999298 0.897522 0.081909 1.000000 0.885132 0.104065 1.000000 0.873169 0.126862 0.110992 0.921478 0.076324 0.152832 0.921783 0.077026 0.189606 0.921997 0.077606 0.222412 0.922241 0.078186 0.251984 0.922546 0.078674 0.279022 0.922791 0.079010 0.304657 0.923035 0.079193 0.329498 0.923309 0.079315 0.354401 0.923553 0.079437 0.379822 0.923828 0.079468 0.406189 0.924042 0.079407 0.434052 0.924316 0.079376 0.463776 0.924530 0.079285 0.495453 0.924774 0.079193 0.530426 0.925049 0.079163 0.568939 0.925262 0.079041 0.610077 0.925507 0.079041 0.652985 0.925751 0.079102 0.696106 0.925934 0.079163 0.738159 0.926178 0.079285 0.778107 0.926422 0.079498 0.814819 0.926636 0.079834 0.847809 0.926819 0.080353 0.877319 0.927063 0.080872 0.903809 0.927246 0.081573 0.927582 0.927399 0.082489 0.948120 0.926758 0.082520 0.966766 0.926270 0.083618 0.983734 0.925903 0.085236 0.999298 0.925507 0.087158 1.000000 0.912231 0.109650 1.000000 0.899567 0.132874 0.119873 0.947388 0.076355 0.159698 0.947540 0.076935 0.195435 0.947723 0.077423 0.227203 0.947906 0.077759 0.256104 0.948059 0.077972 0.282715 0.948273 0.078125 0.308044 0.948456 0.078186 0.332733 0.948608 0.078217 0.357452 0.948822 0.078186 0.382843 0.949005 0.078156 0.409180 0.949158 0.078064 0.437042 0.949371 0.077972 0.466766 0.949524 0.077942 0.498657 0.949707 0.077820 0.533569 0.949860 0.077820 0.572083 0.950012 0.077850 0.613037 0.950226 0.077911 0.655548 0.950378 0.078125 0.698334 0.950531 0.078339 0.740021 0.950653 0.078644 0.779480 0.950806 0.079132 0.815582 0.950958 0.079681 0.848145 0.951080 0.080383 0.877472 0.951263 0.081268 0.903564 0.951355 0.082275 0.927185 0.951569 0.084351 0.948395 0.951752 0.086761 0.966980 0.951294 0.088776 0.983765 0.950836 0.091003 0.999207 0.950348 0.093414 1.000000 0.936859 0.116119 1.000000 0.923370 0.139679 0.127655 0.970459 0.076172 0.166626 0.970581 0.076538 0.201233 0.970703 0.076782 0.232086 0.970856 0.076935 0.260101 0.970947 0.077026 0.286499 0.971100 0.077057 0.311554 0.971191 0.076996 0.335785 0.971283 0.076965 0.360535 0.971466 0.076904 0.385773 0.971558 0.076813 0.412231 0.971710 0.076752 0.440094 0.971802 0.076691 0.469818 0.971893 0.076691 0.501678 0.972015 0.076721 0.536743 0.972107 0.076752 0.575134 0.972229 0.076935 0.615936 0.972351 0.077179 0.658234 0.972443 0.077484 0.700378 0.972534 0.077972 0.741486 0.972626 0.078552 0.780518 0.972717 0.079224 0.816315 0.972809 0.080078 0.848480 0.972900 0.081116 0.877472 0.973022 0.083160 0.903534 0.973145 0.085632 0.926941 0.973267 0.088440 0.947845 0.973328 0.091431 0.966797 0.973389 0.094788 0.983673 0.973145 0.097870 0.999054 0.972595 0.100677 1.000000 0.958771 0.123444 1.000000 0.945038 0.147156 0.135437 0.991272 0.075653 0.173218 0.991364 0.075806 0.206818 0.991455 0.075897 0.236908 0.991516 0.075928 0.264374 0.991577 0.075897 0.289978 0.991638 0.075836 0.314758 0.991699 0.075775 0.338959 0.991791 0.075684 0.363495 0.991852 0.075653 0.388702 0.991943 0.075592 0.415009 0.992035 0.075562 0.442993 0.992065 0.075592 0.472717 0.992157 0.075623 0.504639 0.992218 0.075806 0.539642 0.992279 0.076080 0.577942 0.992340 0.076385 0.618439 0.992401 0.076874 0.660400 0.992432 0.077423 0.702118 0.992493 0.078125 0.742950 0.992523 0.078979 0.781464 0.992554 0.080017 0.817017 0.992615 0.081970 0.848999 0.992645 0.084473 0.877563 0.992676 0.087219 0.903198 0.992737 0.090302 0.926086 0.992767 0.093628 0.946960 0.992767 0.097137 0.965942 0.992767 0.100922 0.983124 0.992767 0.104858 0.998871 0.992554 0.108582 1.000000 0.978699 0.131287 1.000000 0.964844 0.155121 0.155670 1.000000 0.089996 0.191010 1.000000 0.090057 0.222504 1.000000 0.090088 0.251099 1.000000 0.090118 0.277069 1.000000 0.090057 0.301575 1.000000 0.090057 0.325012 1.000000 0.090057 0.348328 1.000000 0.090027 0.372040 1.000000 0.090088 0.396271 1.000000 0.090179 0.421722 1.000000 0.090210 0.448792 1.000000 0.090454 0.477692 1.000000 0.090698 0.508514 1.000000 0.091095 0.542542 1.000000 0.091583 0.579559 1.000000 0.092133 0.618835 1.000000 0.092834 0.659119 1.000000 0.093750 0.699280 1.000000 0.094788 0.738800 1.000000 0.096680 0.775970 1.000000 0.099152 0.809845 1.000000 0.101837 0.840454 1.000000 0.104858 0.868134 1.000000 0.108002 0.893005 1.000000 0.111511 0.915405 1.000000 0.115234 0.936066 1.000000 0.118958 0.954712 1.000000 0.122986 0.971893 1.000000 0.127106 0.987946 1.000000 0.131256 1.000000 0.997131 0.139496 1.000000 0.983032 0.163361 0.185028 1.000000 0.115753 0.217224 1.000000 0.115723 0.245819 1.000000 0.115631 0.271912 1.000000 0.115570 0.295868 1.000000 0.115540 0.318573 1.000000 0.115479 0.340576 1.000000 0.115479 0.362274 1.000000 0.115509 0.384552 1.000000 0.115540 0.407410 1.000000 0.115723 0.431366 1.000000 0.115906 0.456970 1.000000 0.116211 0.484344 1.000000 0.116669 0.513672 1.000000 0.117188 0.546082 1.000000 0.117828 0.581299 1.000000 0.118622 0.618225 1.000000 0.119629 0.656677 1.000000 0.121429 0.695068 1.000000 0.123718 0.731934 1.000000 0.126312 0.766663 1.000000 0.129242 0.798676 1.000000 0.132294 0.827576 1.000000 0.135651 0.853973 1.000000 0.139099 0.877869 1.000000 0.142883 0.899689 1.000000 0.146759 0.919800 1.000000 0.150665 0.938110 1.000000 0.154816 0.955139 1.000000 0.159027 0.971039 1.000000 0.163147 0.985870 1.000000 0.167725 1.000000 1.000000 0.173401 0.002838 0.002228 0.036438 0.051697 0.003937 0.039429 0.097565 0.005005 0.042297 0.140869 0.006561 0.045837 0.180939 0.008575 0.050110 0.217163 0.010986 0.054901 0.249481 0.013641 0.059814 0.278595 0.016510 0.064911 0.305481 0.019379 0.069855 0.330872 0.021973 0.074127 0.355682 0.023987 0.077454 0.380402 0.024597 0.078705 0.405792 0.024963 0.079742 0.432465 0.025269 0.080597 0.461090 0.025391 0.081360 0.492065 0.025360 0.081970 0.526703 0.025116 0.082367 0.566284 0.024719 0.082458 0.609863 0.024139 0.082367 0.656097 0.023529 0.082245 0.703339 0.022888 0.082031 0.749817 0.022430 0.081940 0.793701 0.022034 0.081909 0.833466 0.021851 0.081848 0.868866 0.021912 0.081787 0.900238 0.022125 0.082092 0.928009 0.022522 0.082489 0.952637 0.023254 0.082855 0.974609 0.023987 0.083069 0.994324 0.024994 0.083618 1.000000 0.044556 0.100464 1.000000 0.071472 0.123566 0.003876 0.042725 0.044281 0.051788 0.044098 0.047882 0.097656 0.045837 0.052002 0.140930 0.047821 0.056366 0.180939 0.050079 0.061218 0.217102 0.052521 0.066071 0.249237 0.054901 0.070679 0.278259 0.057281 0.075043 0.305023 0.059204 0.078369 0.330139 0.059662 0.079468 0.354645 0.060150 0.080688 0.379211 0.060486 0.081726 0.404541 0.060791 0.082764 0.431152 0.061005 0.083679 0.459900 0.061035 0.084259 0.490997 0.060944 0.084808 0.525604 0.060608 0.085022 0.565125 0.060150 0.085022 0.608673 0.059570 0.084869 0.654907 0.058990 0.084778 0.702118 0.058289 0.084320 0.748596 0.057861 0.084229 0.792480 0.057556 0.083923 0.832520 0.057373 0.083893 0.868103 0.057526 0.083923 0.899567 0.057831 0.084137 0.927399 0.058319 0.084320 0.951965 0.059082 0.084625 0.973907 0.059784 0.084717 0.993561 0.060486 0.085052 1.000000 0.078461 0.101318 1.000000 0.104889 0.125916 0.004272 0.082581 0.053986 0.052155 0.084351 0.058441 0.098938 0.087189 0.063995 0.141998 0.089020 0.068390 0.181763 0.091003 0.072754 0.217651 0.092896 0.076813 0.249512 0.094482 0.079895 0.278107 0.094788 0.080933 0.304413 0.095093 0.082062 0.329376 0.095367 0.083130 0.353699 0.095673 0.084198 0.378204 0.095856 0.085114 0.403595 0.096130 0.085999 0.430328 0.096161 0.086761 0.459076 0.096100 0.087280 0.490204 0.095947 0.087708 0.524750 0.095642 0.087830 0.564240 0.095032 0.087769 0.607758 0.094482 0.087524 0.653900 0.093872 0.087219 0.701111 0.093353 0.086823 0.747925 0.092957 0.086517 0.792267 0.092682 0.086212 0.832336 0.092438 0.086029 0.867950 0.092804 0.086090 0.899384 0.093109 0.086121 0.927124 0.093689 0.086212 0.951630 0.094177 0.086212 0.973480 0.094757 0.086273 0.993073 0.095612 0.086426 1.000000 0.112274 0.102692 1.000000 0.137665 0.127930 0.004913 0.122101 0.065094 0.052765 0.123840 0.069611 0.099487 0.126434 0.074890 0.143433 0.128967 0.079590 0.182953 0.130157 0.082642 0.218262 0.130157 0.083466 0.249603 0.130280 0.084412 0.277924 0.130432 0.085358 0.304108 0.130585 0.086304 0.329041 0.130829 0.087341 0.353455 0.131073 0.088257 0.378082 0.131165 0.089111 0.403473 0.131256 0.089905 0.430206 0.131348 0.090576 0.458954 0.131256 0.091003 0.490082 0.131104 0.091309 0.524628 0.130737 0.091370 0.564117 0.130188 0.091248 0.607635 0.129639 0.090973 0.654205 0.129211 0.090607 0.701996 0.128723 0.090088 0.749054 0.128174 0.089722 0.793396 0.127991 0.089325 0.833466 0.127960 0.089142 0.868958 0.128174 0.088928 0.900208 0.128448 0.088684 0.927734 0.128876 0.088593 0.952118 0.129456 0.088593 0.973785 0.129913 0.088623 0.993317 0.130859 0.088684 1.000000 0.146332 0.105042 1.000000 0.169830 0.130035 0.005737 0.160309 0.075928 0.053436 0.161652 0.079803 0.099579 0.163330 0.083405 0.143524 0.164612 0.085602 0.183167 0.165253 0.087128 0.218109 0.165039 0.087830 0.249268 0.165070 0.088654 0.277557 0.165161 0.089539 0.303864 0.165161 0.090393 0.328888 0.165344 0.091278 0.353333 0.165405 0.092163 0.377930 0.165466 0.092926 0.403351 0.165558 0.093628 0.430115 0.165588 0.094269 0.458832 0.165497 0.094574 0.489990 0.165405 0.094849 0.524506 0.165039 0.094849 0.564331 0.164612 0.094574 0.608551 0.164032 0.094177 0.655579 0.163483 0.093658 0.703644 0.163269 0.093170 0.750793 0.162933 0.092773 0.795074 0.162628 0.092163 0.834930 0.162537 0.091675 0.870178 0.162598 0.091278 0.901184 0.162659 0.091003 0.928558 0.163330 0.090912 0.952728 0.163910 0.090820 0.974213 0.164520 0.090820 0.993530 0.165283 0.090881 1.000000 0.179840 0.107239 1.000000 0.201050 0.131958 0.006439 0.196594 0.084900 0.053467 0.196198 0.085480 0.098633 0.196259 0.086487 0.142029 0.197388 0.088623 0.182129 0.198517 0.090729 0.217651 0.198853 0.092010 0.248993 0.198761 0.092712 0.277405 0.198761 0.093506 0.303711 0.198761 0.094299 0.328766 0.198822 0.095123 0.353210 0.198944 0.095917 0.377808 0.199036 0.096558 0.403229 0.199127 0.097229 0.429993 0.199158 0.097687 0.458710 0.199005 0.097992 0.490173 0.198975 0.098145 0.525421 0.198669 0.098083 0.565826 0.198242 0.097717 0.610443 0.197845 0.097290 0.657776 0.197357 0.096710 0.705963 0.196869 0.096039 0.753021 0.196442 0.095276 0.797058 0.196014 0.094513 0.836639 0.196014 0.093964 0.871613 0.196106 0.093536 0.902344 0.196320 0.093231 0.929474 0.196960 0.093079 0.953430 0.197357 0.092957 0.974731 0.198151 0.092926 0.993805 0.198944 0.092957 1.000000 0.212097 0.109406 1.000000 0.231506 0.133850 0.005676 0.228821 0.088257 0.052155 0.228394 0.088715 0.096771 0.228149 0.089447 0.140198 0.229156 0.091431 0.180481 0.230194 0.093475 0.216949 0.231171 0.095398 0.248871 0.231567 0.096588 0.277283 0.231506 0.097382 0.303589 0.231476 0.098053 0.328644 0.231537 0.098785 0.353088 0.231598 0.099487 0.377716 0.231689 0.100067 0.403107 0.231873 0.100677 0.430206 0.231873 0.101044 0.459503 0.231812 0.101257 0.491486 0.231720 0.101288 0.527161 0.231384 0.101044 0.568146 0.231110 0.100739 0.613129 0.230560 0.100128 0.660522 0.229950 0.099213 0.708679 0.229462 0.098358 0.755646 0.228912 0.097534 0.799469 0.228760 0.096710 0.838715 0.228668 0.096161 0.873291 0.228912 0.095673 0.903717 0.229095 0.095367 0.930481 0.229614 0.095154 0.954132 0.230042 0.095032 0.975189 0.230713 0.094940 0.994110 0.231537 0.094910 1.000000 0.243622 0.111511 1.000000 0.261322 0.135620 0.003967 0.260162 0.091309 0.050293 0.259613 0.091736 0.095062 0.259125 0.092224 0.138763 0.260071 0.094116 0.179138 0.261017 0.096039 0.215576 0.261993 0.097931 0.248169 0.262970 0.099731 0.277161 0.263428 0.100983 0.303467 0.263397 0.101593 0.328522 0.263428 0.102295 0.352966 0.263580 0.102905 0.377869 0.263672 0.103394 0.403839 0.263794 0.103882 0.431396 0.263794 0.104156 0.461151 0.263794 0.104309 0.493469 0.263763 0.104309 0.529724 0.263428 0.103912 0.571045 0.262939 0.103210 0.616333 0.262390 0.102356 0.663910 0.261932 0.101471 0.712036 0.261292 0.100494 0.758789 0.260895 0.099640 0.802216 0.260773 0.098816 0.840973 0.260712 0.098206 0.875092 0.260925 0.097778 0.905121 0.261200 0.097382 0.931580 0.261658 0.097137 0.954926 0.262115 0.097015 0.975677 0.262848 0.096863 0.994415 0.263641 0.096771 1.000000 0.274628 0.113464 1.000000 0.290283 0.137329 0.002289 0.290680 0.094299 0.048950 0.290070 0.094574 0.093628 0.289459 0.094788 0.137329 0.290314 0.096649 0.177704 0.291229 0.098480 0.214203 0.292145 0.100281 0.246857 0.293091 0.102020 0.276306 0.294098 0.103729 0.303345 0.294769 0.105072 0.328705 0.294861 0.105591 0.353729 0.294952 0.106110 0.379059 0.295135 0.106567 0.405396 0.295349 0.106964 0.433319 0.295410 0.107117 0.463409 0.295441 0.107178 0.496063 0.295227 0.106812 0.532745 0.294800 0.106201 0.574554 0.294342 0.105438 0.620178 0.293823 0.104523 0.667877 0.293213 0.103516 0.715942 0.292847 0.102600 0.762329 0.292603 0.101685 0.805206 0.292297 0.100861 0.843414 0.292419 0.100189 0.877014 0.292511 0.099701 0.906616 0.292847 0.099304 0.932709 0.293213 0.099030 0.955719 0.293854 0.098816 0.976257 0.294434 0.098663 0.994720 0.294983 0.098511 1.000000 0.304901 0.115326 1.000000 0.318939 0.138855 0.000916 0.320740 0.097046 0.047607 0.320129 0.097260 0.092316 0.319489 0.097382 0.135834 0.320190 0.098969 0.176300 0.321136 0.100739 0.212860 0.322052 0.102417 0.245422 0.323059 0.104095 0.275391 0.324066 0.105743 0.303375 0.325073 0.107300 0.329987 0.326019 0.108734 0.355316 0.326233 0.109222 0.380981 0.326447 0.109528 0.407623 0.326538 0.109802 0.435760 0.326599 0.109680 0.466125 0.326447 0.109436 0.499207 0.326294 0.109009 0.536499 0.325897 0.108368 0.578766 0.325592 0.107513 0.624634 0.325043 0.106567 0.672363 0.324585 0.105560 0.720154 0.324249 0.104553 0.766113 0.323853 0.103577 0.808411 0.323669 0.102753 0.846008 0.323761 0.102112 0.879059 0.323883 0.101562 0.908173 0.324280 0.101166 0.933838 0.324707 0.100830 0.956482 0.325043 0.100555 0.976776 0.325745 0.100372 0.995026 0.326324 0.100189 1.000000 0.335114 0.117126 1.000000 0.347412 0.140350 0.000000 0.350372 0.099792 0.046204 0.350128 0.099701 0.090942 0.349548 0.099731 0.134399 0.350128 0.101135 0.174835 0.351074 0.102814 0.211792 0.352051 0.104431 0.245331 0.353058 0.106018 0.275696 0.354095 0.107605 0.304016 0.355164 0.109131 0.331085 0.356384 0.110657 0.357605 0.357483 0.112030 0.383392 0.357544 0.112091 0.410217 0.357666 0.112061 0.438751 0.357666 0.111908 0.469513 0.357605 0.111664 0.502991 0.357483 0.111115 0.540833 0.357147 0.110352 0.583527 0.356781 0.109467 0.629578 0.356384 0.108459 0.677246 0.355957 0.107391 0.724670 0.355652 0.106354 0.770020 0.355316 0.105377 0.811707 0.355225 0.104553 0.848633 0.355164 0.103882 0.881134 0.355316 0.103241 0.909729 0.355560 0.102814 0.934967 0.356110 0.102478 0.957275 0.356598 0.102142 0.977295 0.356995 0.101959 0.995300 0.357544 0.101715 1.000000 0.365204 0.118744 1.000000 0.375793 0.141602 0.000000 0.379333 0.102844 0.044769 0.380341 0.101868 0.089569 0.379730 0.101837 0.133362 0.380310 0.103088 0.175049 0.381287 0.104736 0.212677 0.382294 0.106232 0.246368 0.383362 0.107788 0.277039 0.384491 0.109314 0.305542 0.385590 0.110718 0.332581 0.386658 0.111938 0.359192 0.387726 0.113068 0.386261 0.388794 0.114197 0.413483 0.389069 0.114258 0.442322 0.389130 0.114014 0.473419 0.389130 0.113617 0.507324 0.389008 0.113068 0.545746 0.388672 0.112274 0.588806 0.388397 0.111328 0.634918 0.388031 0.110291 0.682343 0.387634 0.109192 0.729401 0.387299 0.108063 0.774139 0.386871 0.107056 0.815033 0.386902 0.106201 0.851227 0.386902 0.105469 0.883148 0.387085 0.104889 0.911255 0.387360 0.104431 0.936066 0.387756 0.104004 0.958069 0.388031 0.103668 0.977783 0.388489 0.103363 0.995605 0.389069 0.103088 1.000000 0.395630 0.120239 1.000000 0.404358 0.142853 0.000000 0.408783 0.105804 0.043854 0.410980 0.103943 0.090027 0.410461 0.103760 0.134918 0.410980 0.104889 0.176849 0.412048 0.106445 0.214691 0.413116 0.107880 0.248474 0.414185 0.109314 0.278900 0.415131 0.110535 0.307434 0.416199 0.111694 0.334595 0.417297 0.112854 0.361389 0.418365 0.113983 0.388672 0.419586 0.115082 0.417145 0.420776 0.116119 0.446411 0.420990 0.116028 0.477814 0.421021 0.115540 0.512085 0.420898 0.114899 0.551086 0.420624 0.114014 0.594360 0.420349 0.113068 0.640472 0.420013 0.111969 0.687683 0.419556 0.110840 0.734131 0.419250 0.109741 0.778198 0.418976 0.108643 0.818298 0.418976 0.107758 0.853790 0.419037 0.107056 0.885101 0.419037 0.106415 0.912720 0.419312 0.105865 0.937134 0.419647 0.105438 0.958771 0.419891 0.105042 0.978241 0.420410 0.104706 0.995850 0.420837 0.104370 1.000000 0.426056 0.121552 1.000000 0.433380 0.143829 0.000000 0.440430 0.107361 0.045746 0.442139 0.105621 0.092529 0.441681 0.105438 0.137909 0.442352 0.106506 0.180054 0.443451 0.107910 0.217529 0.444336 0.109100 0.251068 0.445404 0.110291 0.281525 0.446411 0.111420 0.309906 0.447479 0.112549 0.337158 0.448608 0.113678 0.364044 0.449768 0.114716 0.391541 0.450928 0.115753 0.420288 0.452179 0.116760 0.450745 0.453339 0.117737 0.482574 0.453491 0.117310 0.517273 0.453461 0.116638 0.556671 0.453247 0.115723 0.600189 0.452850 0.114655 0.646149 0.452423 0.113525 0.692963 0.452118 0.112305 0.738892 0.451874 0.111206 0.782196 0.451569 0.110138 0.821442 0.451538 0.109253 0.856262 0.451447 0.108459 0.886932 0.451660 0.107788 0.914032 0.451813 0.107239 0.938049 0.452057 0.106750 0.959442 0.452332 0.106293 0.978668 0.452545 0.105896 0.996063 0.452972 0.105408 1.000000 0.457184 0.122498 1.000000 0.462921 0.144440 0.000122 0.474548 0.107452 0.049530 0.474121 0.107208 0.096680 0.473694 0.106781 0.141998 0.474304 0.107605 0.183716 0.475311 0.108734 0.221039 0.476288 0.109955 0.254395 0.477356 0.111084 0.284637 0.478455 0.112183 0.312866 0.479553 0.113281 0.340179 0.480743 0.114258 0.367218 0.481903 0.115265 0.394775 0.483063 0.116272 0.423706 0.484283 0.117188 0.454529 0.485474 0.118134 0.487610 0.486633 0.119049 0.522675 0.486572 0.118195 0.562531 0.486267 0.117249 0.606140 0.486023 0.116119 0.651825 0.485718 0.114929 0.698242 0.485291 0.113739 0.743500 0.484955 0.112610 0.786011 0.484711 0.111542 0.824493 0.484619 0.110596 0.858551 0.484589 0.109833 0.888672 0.484650 0.109039 0.915283 0.484924 0.108490 0.938904 0.485046 0.107880 0.960052 0.485138 0.107330 0.979065 0.485443 0.106659 0.996307 0.485718 0.105988 1.000000 0.488800 0.123169 1.000000 0.492950 0.144684 0.005188 0.507324 0.108612 0.054565 0.506744 0.108002 0.101685 0.506348 0.107452 0.147125 0.507172 0.108368 0.188507 0.508179 0.109467 0.225372 0.509247 0.110596 0.258331 0.510345 0.111694 0.288269 0.511475 0.112732 0.316284 0.512665 0.113678 0.343567 0.513855 0.114716 0.370514 0.515015 0.115631 0.398254 0.516205 0.116577 0.427399 0.517456 0.117554 0.458374 0.518646 0.118378 0.491760 0.519897 0.119232 0.528290 0.520874 0.119690 0.568481 0.520660 0.118652 0.612000 0.520294 0.117493 0.657501 0.519897 0.116333 0.703369 0.519562 0.115082 0.747864 0.519165 0.113922 0.789581 0.518921 0.112823 0.827240 0.518768 0.111816 0.860626 0.518799 0.110992 0.890198 0.518585 0.110260 0.916412 0.518707 0.109436 0.939789 0.518860 0.108673 0.960663 0.519165 0.107880 0.979462 0.519226 0.107117 0.996582 0.519623 0.106262 1.000000 0.521423 0.123444 1.000000 0.524261 0.144714 0.011108 0.542358 0.109161 0.060822 0.541840 0.108459 0.107910 0.541412 0.107819 0.153259 0.542511 0.108948 0.194031 0.543610 0.110016 0.230377 0.544800 0.111084 0.262695 0.545990 0.112061 0.292145 0.547180 0.113068 0.319977 0.548401 0.114014 0.347107 0.549622 0.114990 0.374084 0.550842 0.115875 0.401917 0.552124 0.116730 0.431152 0.553406 0.117645 0.462311 0.554596 0.118469 0.495941 0.555878 0.119202 0.533051 0.557098 0.119995 0.574280 0.557709 0.119995 0.617767 0.557343 0.118835 0.662842 0.556824 0.117554 0.708099 0.556366 0.116302 0.751862 0.555969 0.115082 0.792755 0.555634 0.113953 0.829712 0.555359 0.112915 0.862549 0.555359 0.111969 0.891663 0.555237 0.110992 0.917542 0.555145 0.110077 0.940582 0.555237 0.109131 0.961304 0.555481 0.108154 0.979889 0.555756 0.107208 0.996796 0.555847 0.106262 1.000000 0.556610 0.123566 1.000000 0.557831 0.144592 0.018555 0.580170 0.109406 0.068451 0.579681 0.108826 0.115509 0.579498 0.108337 0.160187 0.580658 0.109375 0.200317 0.581818 0.110382 0.235565 0.583008 0.111389 0.267334 0.584229 0.112335 0.296356 0.585419 0.113251 0.323883 0.586670 0.114197 0.350677 0.587921 0.115082 0.377777 0.589142 0.115936 0.405640 0.590424 0.116760 0.434967 0.591644 0.117523 0.466217 0.592865 0.118317 0.499939 0.594086 0.119110 0.537445 0.595245 0.119781 0.579315 0.596405 0.120453 0.623199 0.596619 0.119995 0.667786 0.596069 0.118683 0.712463 0.595398 0.117432 0.755524 0.594940 0.116150 0.795746 0.594421 0.114899 0.832031 0.594299 0.113678 0.864410 0.594086 0.112518 0.893097 0.593903 0.111420 0.918640 0.593933 0.110291 0.941437 0.593872 0.109192 0.961823 0.593994 0.108154 0.980316 0.594177 0.107178 0.997101 0.594269 0.106171 1.000000 0.593536 0.123596 1.000000 0.593353 0.144501 0.027496 0.620117 0.109619 0.076965 0.619629 0.108734 0.123871 0.619659 0.108612 0.167694 0.620880 0.109650 0.206696 0.622009 0.110596 0.241150 0.623260 0.111542 0.272095 0.624451 0.112488 0.300598 0.625610 0.113373 0.327850 0.626831 0.114197 0.354523 0.628052 0.115051 0.381409 0.629181 0.115845 0.409393 0.630402 0.116638 0.438690 0.631561 0.117371 0.470062 0.632690 0.118073 0.503845 0.633850 0.118805 0.541412 0.635010 0.119446 0.583313 0.636047 0.120026 0.627808 0.637115 0.120697 0.672333 0.636719 0.119690 0.716400 0.636169 0.118286 0.758942 0.635590 0.116821 0.798615 0.635101 0.115448 0.834381 0.634644 0.114014 0.866211 0.634308 0.112732 0.894531 0.634094 0.111450 0.919769 0.634094 0.110291 0.942261 0.634094 0.109131 0.962433 0.633911 0.108032 0.980652 0.634125 0.107025 0.997314 0.634216 0.106018 1.000000 0.631989 0.123627 1.000000 0.630096 0.144440 0.037445 0.661530 0.109528 0.086304 0.660919 0.108643 0.132751 0.661316 0.108826 0.175476 0.662476 0.109772 0.213226 0.663513 0.110687 0.246765 0.664703 0.111633 0.276917 0.665833 0.112457 0.304993 0.666962 0.113312 0.331726 0.668091 0.114105 0.358246 0.669220 0.114899 0.385071 0.670258 0.115631 0.412933 0.671417 0.116364 0.442230 0.672485 0.117004 0.473724 0.673523 0.117737 0.507446 0.674530 0.118347 0.545105 0.675537 0.118958 0.586731 0.676483 0.119507 0.630981 0.677429 0.119965 0.676514 0.678314 0.120300 0.720306 0.677643 0.118774 0.762421 0.676910 0.117188 0.801483 0.676300 0.115601 0.836700 0.675812 0.114105 0.868042 0.675568 0.112701 0.895966 0.675201 0.111359 0.920868 0.675171 0.110107 0.943085 0.674957 0.108978 0.963013 0.674957 0.107880 0.981079 0.674988 0.106842 0.997559 0.675079 0.105957 1.000000 0.671021 0.123779 1.000000 0.667389 0.144501 0.048126 0.703461 0.109375 0.096191 0.702759 0.108459 0.141876 0.703400 0.108917 0.183380 0.704468 0.109894 0.219818 0.705505 0.110687 0.252289 0.706543 0.111542 0.281647 0.707581 0.112427 0.309143 0.708588 0.113159 0.335571 0.709625 0.113922 0.361755 0.710602 0.114624 0.388519 0.711609 0.115326 0.416321 0.712585 0.116058 0.445587 0.713501 0.116638 0.476990 0.714386 0.117279 0.510681 0.715271 0.117798 0.548492 0.716156 0.118286 0.590027 0.716980 0.118622 0.634186 0.717834 0.118866 0.679413 0.718628 0.119080 0.724213 0.719299 0.118927 0.765808 0.718414 0.117188 0.804260 0.717896 0.115509 0.838928 0.717255 0.113953 0.869812 0.716858 0.112488 0.897339 0.716400 0.111176 0.921875 0.716278 0.109985 0.943787 0.716034 0.108765 0.963562 0.715942 0.107788 0.981445 0.715820 0.106842 0.997772 0.715851 0.106018 1.000000 0.710205 0.124084 1.000000 0.704834 0.144806 0.059235 0.744904 0.108978 0.106293 0.744232 0.108215 0.151062 0.745087 0.108978 0.191071 0.746033 0.109833 0.226257 0.746948 0.110626 0.257599 0.747925 0.111450 0.286255 0.748810 0.112244 0.313141 0.749695 0.112915 0.339142 0.750549 0.113617 0.365204 0.751465 0.114288 0.391693 0.752258 0.114929 0.419373 0.753082 0.115570 0.448517 0.753906 0.116119 0.479858 0.754639 0.116608 0.513824 0.755432 0.116974 0.551697 0.756134 0.117218 0.593292 0.756927 0.117432 0.637329 0.757629 0.117493 0.682281 0.758392 0.117493 0.726715 0.759064 0.117462 0.768982 0.759491 0.117004 0.806976 0.758728 0.115265 0.841064 0.758026 0.113739 0.871521 0.757568 0.112305 0.898682 0.757141 0.111053 0.922852 0.756836 0.109833 0.944550 0.756531 0.108734 0.964050 0.756317 0.107849 0.981750 0.755951 0.106995 0.997955 0.755951 0.106354 1.000000 0.748932 0.124695 1.000000 0.741913 0.145477 0.070465 0.785248 0.108826 0.116669 0.784698 0.108093 0.160004 0.785553 0.108948 0.198547 0.786407 0.109741 0.232330 0.787140 0.110504 0.262543 0.787933 0.111237 0.290527 0.788666 0.111938 0.316772 0.789490 0.112640 0.342529 0.790161 0.113312 0.368195 0.790894 0.113922 0.394501 0.791565 0.114471 0.422058 0.792236 0.114990 0.451355 0.792877 0.115356 0.482819 0.793549 0.115601 0.517059 0.794189 0.115814 0.555084 0.794830 0.115845 0.596771 0.795441 0.115875 0.640442 0.796112 0.115845 0.685120 0.796692 0.115814 0.729095 0.797333 0.115723 0.771149 0.797943 0.115662 0.809570 0.798035 0.115051 0.843170 0.797302 0.113556 0.873169 0.796722 0.112183 0.899872 0.796356 0.110931 0.923798 0.795868 0.109863 0.945221 0.795471 0.108887 0.964539 0.795074 0.108124 0.982086 0.794952 0.107483 0.998138 0.794617 0.106995 1.000000 0.786102 0.125671 1.000000 0.777496 0.146545 0.081635 0.823517 0.108215 0.126709 0.823334 0.108063 0.168701 0.823975 0.108887 0.205414 0.824646 0.109650 0.238007 0.825287 0.110352 0.267334 0.825897 0.111084 0.294342 0.826538 0.111664 0.320251 0.827087 0.112335 0.345459 0.827667 0.112854 0.370819 0.828217 0.113373 0.397217 0.828766 0.113800 0.424896 0.829346 0.114075 0.454224 0.829895 0.114227 0.485931 0.830444 0.114288 0.520294 0.830994 0.114349 0.558502 0.831482 0.114288 0.600128 0.832031 0.114258 0.643524 0.832520 0.114197 0.687897 0.833008 0.114136 0.731445 0.833557 0.114014 0.772949 0.834045 0.113953 0.811096 0.834534 0.113892 0.845093 0.834564 0.113403 0.874634 0.833923 0.112183 0.901001 0.833374 0.111084 0.924622 0.832825 0.110138 0.945831 0.832336 0.109314 0.964935 0.832123 0.108734 0.982330 0.831665 0.108337 0.998230 0.831421 0.108124 1.000000 0.821564 0.127106 1.000000 0.811523 0.148132 0.092346 0.859161 0.107788 0.136383 0.859192 0.108032 0.176514 0.859711 0.108734 0.211639 0.860199 0.109436 0.242981 0.860687 0.110107 0.271515 0.861145 0.110779 0.297821 0.861633 0.111359 0.323120 0.862122 0.111816 0.348297 0.862549 0.112244 0.373779 0.863007 0.112518 0.400024 0.863434 0.112732 0.427826 0.863861 0.112793 0.457275 0.864319 0.112854 0.489044 0.864685 0.112823 0.523438 0.865143 0.112823 0.561920 0.865601 0.112732 0.603424 0.865997 0.112640 0.646606 0.866364 0.112579 0.690491 0.866791 0.112488 0.733643 0.867218 0.112457 0.774536 0.867615 0.112427 0.812225 0.868011 0.112488 0.846130 0.868347 0.112549 0.876038 0.868378 0.112366 0.902100 0.867798 0.111481 0.925415 0.867340 0.110779 0.946381 0.866608 0.110229 0.965332 0.866364 0.109894 0.982544 0.865967 0.109741 0.998383 0.865417 0.109833 1.000000 0.854553 0.129547 1.000000 0.843842 0.151703 0.102478 0.891571 0.107483 0.145294 0.891785 0.108002 0.183746 0.892212 0.108643 0.217377 0.892548 0.109283 0.247467 0.892944 0.109894 0.275055 0.893250 0.110413 0.301117 0.893616 0.110840 0.326141 0.893951 0.111115 0.351135 0.894318 0.111328 0.376587 0.894623 0.111389 0.402893 0.894989 0.111450 0.430847 0.895294 0.111420 0.460480 0.895660 0.111420 0.492096 0.895966 0.111328 0.526825 0.896301 0.111267 0.565216 0.896606 0.111176 0.606598 0.896942 0.111115 0.649597 0.897247 0.111053 0.693054 0.897522 0.111053 0.735657 0.897858 0.111115 0.776093 0.898193 0.111176 0.813263 0.898468 0.111359 0.846619 0.898712 0.111603 0.876495 0.899048 0.111969 0.903076 0.899231 0.112274 0.926086 0.898529 0.111816 0.946869 0.897949 0.111603 0.965607 0.897522 0.111603 0.982727 0.897064 0.112061 0.998444 0.896851 0.113525 1.000000 0.885071 0.134247 1.000000 0.873260 0.156769 0.111755 0.920593 0.107269 0.153107 0.920898 0.107941 0.189789 0.921112 0.108551 0.222290 0.921387 0.109009 0.251678 0.921631 0.109467 0.278870 0.921906 0.109772 0.304474 0.922150 0.109985 0.329285 0.922394 0.110077 0.354309 0.922699 0.110138 0.379456 0.922913 0.110107 0.405945 0.923157 0.110107 0.433807 0.923401 0.110046 0.463440 0.923615 0.109985 0.495361 0.923920 0.109894 0.530212 0.924103 0.109802 0.568573 0.924377 0.109772 0.609741 0.924622 0.109772 0.652618 0.924805 0.109772 0.695526 0.925049 0.109894 0.737640 0.925293 0.110077 0.777496 0.925476 0.110321 0.814026 0.925720 0.110687 0.846985 0.925934 0.111176 0.876526 0.926147 0.111816 0.902924 0.926331 0.112549 0.926727 0.926514 0.113464 0.947266 0.926025 0.113861 0.965942 0.925568 0.115234 0.982880 0.925140 0.116852 0.998444 0.924622 0.118896 1.000000 0.912262 0.139984 1.000000 0.899719 0.162872 0.120270 0.946533 0.107269 0.160156 0.946686 0.107788 0.195587 0.946838 0.108185 0.227264 0.947021 0.108551 0.255859 0.947205 0.108704 0.282471 0.947388 0.108826 0.307800 0.947571 0.108887 0.332520 0.947784 0.108887 0.357300 0.947968 0.108887 0.382599 0.948090 0.108765 0.408936 0.948273 0.108734 0.436707 0.948456 0.108673 0.466553 0.948639 0.108582 0.498383 0.948792 0.108551 0.533295 0.949005 0.108551 0.571747 0.949158 0.108582 0.612823 0.949341 0.108704 0.655151 0.949493 0.108826 0.697876 0.949615 0.109131 0.739532 0.949799 0.109497 0.778809 0.949921 0.110016 0.814819 0.950073 0.110626 0.847351 0.950226 0.111359 0.876556 0.950317 0.112274 0.902863 0.950470 0.113617 0.926331 0.950684 0.115845 0.947510 0.950928 0.118408 0.966095 0.950531 0.120575 0.982880 0.950012 0.122772 0.998352 0.949463 0.125397 1.000000 0.936768 0.146606 1.000000 0.923431 0.169830 0.128113 0.969604 0.107056 0.166779 0.969727 0.107330 0.201202 0.969849 0.107574 0.231964 0.970001 0.107666 0.260193 0.970093 0.107758 0.286133 0.970215 0.107727 0.311096 0.970337 0.107727 0.335663 0.970459 0.107635 0.360321 0.970612 0.107605 0.385529 0.970703 0.107513 0.411804 0.970825 0.107452 0.439819 0.970978 0.107391 0.469604 0.971069 0.107391 0.501434 0.971161 0.107452 0.536407 0.971283 0.107574 0.574799 0.971375 0.107727 0.615601 0.971497 0.108002 0.657623 0.971558 0.108337 0.699768 0.971680 0.108887 0.740936 0.971771 0.109436 0.779877 0.971863 0.110229 0.815460 0.971954 0.111176 0.847687 0.972046 0.112427 0.876648 0.972168 0.114685 0.902771 0.972321 0.117249 0.925842 0.972412 0.120117 0.946899 0.972473 0.123260 0.965820 0.972534 0.126678 0.982758 0.972198 0.129700 0.998199 0.971649 0.132721 1.000000 0.958801 0.153961 1.000000 0.945221 0.177368 0.135712 0.990448 0.106476 0.173523 0.990509 0.106567 0.206787 0.990601 0.106659 0.236633 0.990662 0.106628 0.264221 0.990753 0.106628 0.289948 0.990814 0.106537 0.314453 0.990906 0.106506 0.338776 0.990967 0.106445 0.363220 0.991058 0.106384 0.388306 0.991119 0.106293 0.414673 0.991180 0.106293 0.442657 0.991241 0.106354 0.472321 0.991333 0.106476 0.504211 0.991364 0.106628 0.539368 0.991455 0.106903 0.577606 0.991486 0.107269 0.618134 0.991547 0.107758 0.659943 0.991608 0.108337 0.701538 0.991638 0.109131 0.742310 0.991669 0.110046 0.780792 0.991730 0.111328 0.816467 0.991791 0.113556 0.848145 0.991821 0.116089 0.876526 0.991852 0.118958 0.902222 0.991913 0.122162 0.925201 0.991913 0.125458 0.945984 0.991913 0.129059 0.964996 0.991913 0.132965 0.982239 0.991882 0.136871 0.997986 0.991699 0.140717 1.000000 0.978699 0.161804 1.000000 0.964813 0.185364 0.155640 1.000000 0.119324 0.191162 1.000000 0.119385 0.222504 1.000000 0.119415 0.250732 1.000000 0.119415 0.276703 1.000000 0.119415 0.301178 1.000000 0.119415 0.324829 1.000000 0.119354 0.348175 1.000000 0.119385 0.371674 1.000000 0.119446 0.396057 1.000000 0.119507 0.421692 1.000000 0.119659 0.448578 1.000000 0.119873 0.477509 1.000000 0.120178 0.508484 1.000000 0.120575 0.542572 1.000000 0.121063 0.579620 1.000000 0.121704 0.618713 1.000000 0.122498 0.658905 1.000000 0.123352 0.699158 1.000000 0.124664 0.739014 1.000000 0.126770 0.776062 1.000000 0.129333 0.809875 1.000000 0.132172 0.840271 1.000000 0.135223 0.867828 1.000000 0.138489 0.892822 1.000000 0.142090 0.915405 1.000000 0.145660 0.935822 1.000000 0.149597 0.954712 1.000000 0.153687 0.971924 1.000000 0.157745 0.988007 1.000000 0.161987 1.000000 0.997223 0.170013 1.000000 0.983124 0.193634 0.186432 1.000000 0.144714 0.218323 1.000000 0.144653 0.247009 1.000000 0.144592 0.272797 1.000000 0.144531 0.296661 1.000000 0.144470 0.319153 1.000000 0.144440 0.341125 1.000000 0.144440 0.363068 1.000000 0.144470 0.385132 1.000000 0.144562 0.407928 1.000000 0.144714 0.432037 1.000000 0.144989 0.457520 1.000000 0.145325 0.484894 1.000000 0.145813 0.514160 1.000000 0.146362 0.546661 1.000000 0.147034 0.581787 1.000000 0.147949 0.618744 1.000000 0.149048 0.657318 1.000000 0.151184 0.695526 1.000000 0.153595 0.732208 1.000000 0.156189 0.766876 1.000000 0.159180 0.798828 1.000000 0.162384 0.827759 1.000000 0.165741 0.854034 1.000000 0.169342 0.877838 1.000000 0.173187 0.899780 1.000000 0.176971 0.919739 1.000000 0.181030 0.938202 1.000000 0.185028 0.955078 1.000000 0.189240 0.970978 1.000000 0.193512 0.985840 1.000000 0.198364 1.000000 1.000000 0.204315 0.001678 0.001617 0.070221 0.051025 0.004028 0.074005 0.097809 0.006165 0.077759 0.141083 0.007904 0.081512 0.181183 0.010071 0.085846 0.217377 0.012451 0.090454 0.249664 0.015228 0.095428 0.278748 0.018066 0.100342 0.305573 0.020752 0.104828 0.331024 0.023315 0.108887 0.355682 0.024628 0.111145 0.380371 0.025146 0.112274 0.405762 0.025604 0.113403 0.432465 0.025818 0.114227 0.461029 0.026001 0.114990 0.492065 0.025940 0.115540 0.526672 0.025635 0.115936 0.566254 0.025208 0.116058 0.609863 0.024719 0.115997 0.656097 0.024048 0.115753 0.703339 0.023499 0.115631 0.749786 0.022949 0.115356 0.793701 0.022614 0.115265 0.833466 0.022491 0.115234 0.868866 0.022522 0.115387 0.900299 0.022766 0.115570 0.928070 0.023285 0.115936 0.952667 0.023895 0.116180 0.974609 0.024780 0.116638 0.994354 0.025818 0.117157 1.000000 0.045166 0.132477 1.000000 0.072205 0.153809 0.002869 0.042480 0.078583 0.050842 0.044189 0.082367 0.097931 0.047119 0.087555 0.141205 0.049225 0.092102 0.181213 0.051605 0.096771 0.217316 0.053894 0.101288 0.249451 0.056244 0.105743 0.278381 0.058502 0.109680 0.305054 0.059814 0.112000 0.330170 0.060303 0.113159 0.354645 0.060699 0.114349 0.379150 0.061127 0.115387 0.404449 0.061401 0.116394 0.431152 0.061523 0.117157 0.459869 0.061554 0.117767 0.490967 0.061462 0.118256 0.525574 0.061157 0.118469 0.565094 0.060638 0.118591 0.608643 0.060120 0.118469 0.654877 0.059509 0.118256 0.702087 0.058929 0.117828 0.748566 0.058411 0.117554 0.792572 0.058105 0.117523 0.832642 0.058044 0.117249 0.868195 0.058136 0.117432 0.899689 0.058533 0.117645 0.927460 0.059052 0.117828 0.952026 0.059845 0.118195 0.973938 0.060425 0.118103 0.993561 0.061188 0.118225 1.000000 0.079163 0.133514 1.000000 0.105621 0.155945 0.004425 0.083740 0.089478 0.052185 0.085480 0.093750 0.098389 0.087616 0.098450 0.141510 0.089661 0.102936 0.181366 0.091644 0.107178 0.217255 0.093414 0.110870 0.249023 0.094513 0.113068 0.277618 0.094788 0.114075 0.303986 0.095123 0.115234 0.328918 0.095459 0.116302 0.353271 0.095734 0.117310 0.377838 0.096039 0.118286 0.403290 0.096222 0.119171 0.430054 0.096313 0.119873 0.458771 0.096283 0.120453 0.489929 0.096130 0.120819 0.524475 0.095764 0.120972 0.563965 0.095337 0.120972 0.607483 0.094788 0.120758 0.653656 0.094177 0.120331 0.700928 0.093658 0.119995 0.747894 0.093201 0.119751 0.792236 0.092957 0.119354 0.832336 0.092926 0.119171 0.867889 0.093170 0.119202 0.899323 0.093628 0.119385 0.927002 0.093964 0.119324 0.951477 0.094513 0.119202 0.973297 0.095123 0.119324 0.992859 0.095886 0.119446 1.000000 0.112518 0.134277 1.000000 0.138428 0.158173 0.005310 0.123413 0.100586 0.053101 0.125153 0.105011 0.098816 0.126709 0.108887 0.142487 0.128876 0.113098 0.181854 0.129486 0.114990 0.217072 0.129486 0.115814 0.248413 0.129578 0.116699 0.276733 0.129730 0.117645 0.302887 0.129852 0.118622 0.327911 0.130066 0.119598 0.352386 0.130280 0.120514 0.376984 0.130371 0.121338 0.402405 0.130554 0.122131 0.429169 0.130615 0.122711 0.457916 0.130554 0.123199 0.489075 0.130310 0.123474 0.523590 0.130005 0.123535 0.563049 0.129608 0.123444 0.606537 0.128937 0.123047 0.653229 0.128418 0.122711 0.701080 0.127991 0.122253 0.748108 0.127655 0.121826 0.792572 0.127380 0.121521 0.832703 0.127502 0.121277 0.868073 0.127533 0.121002 0.899323 0.127808 0.120758 0.926880 0.128204 0.120697 0.951294 0.128906 0.120667 0.972931 0.129425 0.120697 0.992432 0.130463 0.120758 1.000000 0.145660 0.135620 1.000000 0.170380 0.160217 0.006104 0.161469 0.111053 0.053833 0.162781 0.114502 0.099182 0.163208 0.116394 0.142303 0.163910 0.117950 0.181915 0.164429 0.119385 0.216888 0.164337 0.120117 0.248047 0.164276 0.120880 0.276398 0.164276 0.121796 0.302704 0.164398 0.122650 0.327789 0.164520 0.123505 0.352234 0.164673 0.124298 0.376862 0.164825 0.125122 0.402283 0.164917 0.125793 0.429047 0.164886 0.126251 0.457794 0.164886 0.126678 0.488983 0.164642 0.126862 0.523529 0.164368 0.126862 0.563538 0.163971 0.126709 0.607788 0.163452 0.126251 0.654816 0.163025 0.125824 0.702881 0.162659 0.125275 0.750092 0.162262 0.124817 0.794281 0.161865 0.124176 0.834137 0.161865 0.123688 0.869324 0.161804 0.123291 0.900360 0.162231 0.123138 0.927734 0.162598 0.122894 0.951904 0.163177 0.122864 0.973389 0.163971 0.122894 0.992706 0.164825 0.122894 1.000000 0.179108 0.137909 1.000000 0.201904 0.162201 0.006653 0.197083 0.118561 0.053497 0.196625 0.119049 0.098175 0.196259 0.119568 0.140747 0.196625 0.120880 0.180817 0.197754 0.122925 0.216431 0.198151 0.124237 0.247803 0.198029 0.124939 0.276245 0.197937 0.125671 0.302551 0.198029 0.126434 0.327637 0.198029 0.127258 0.352112 0.198181 0.127930 0.376770 0.198303 0.128662 0.402191 0.198395 0.129242 0.428925 0.198364 0.129730 0.457733 0.198364 0.130066 0.489380 0.198212 0.130157 0.524689 0.197968 0.130096 0.565155 0.197632 0.129791 0.609772 0.197083 0.129272 0.657227 0.196686 0.128754 0.705292 0.196228 0.127960 0.752319 0.195648 0.127167 0.796387 0.195404 0.126465 0.835938 0.195374 0.126007 0.870789 0.195343 0.125519 0.901581 0.195831 0.125336 0.928619 0.196289 0.125092 0.952576 0.196808 0.125000 0.973846 0.197723 0.124969 0.992981 0.198456 0.124939 1.000000 0.211670 0.139984 1.000000 0.232208 0.164032 0.005676 0.229309 0.121796 0.052063 0.228790 0.122131 0.096436 0.228302 0.122650 0.138947 0.228455 0.123718 0.179260 0.229401 0.125641 0.215759 0.230408 0.127563 0.247681 0.230804 0.128723 0.276123 0.230682 0.129364 0.302429 0.230682 0.130096 0.327515 0.230804 0.130829 0.351990 0.230865 0.131470 0.376648 0.231018 0.132080 0.402069 0.231140 0.132599 0.429321 0.231079 0.132996 0.458710 0.231140 0.133270 0.490753 0.231018 0.133240 0.526611 0.230835 0.133087 0.567627 0.230499 0.132721 0.612549 0.229858 0.131958 0.660004 0.229340 0.131134 0.708191 0.228760 0.130249 0.755066 0.228302 0.129425 0.798828 0.228149 0.128693 0.837982 0.228088 0.128082 0.872559 0.228271 0.127655 0.902893 0.228516 0.127350 0.929626 0.229034 0.127136 0.953278 0.229584 0.127014 0.974335 0.230469 0.126953 0.993286 0.231079 0.126892 1.000000 0.243256 0.142029 1.000000 0.261841 0.165771 0.003845 0.260590 0.124847 0.050232 0.259979 0.125122 0.094910 0.259369 0.125519 0.137451 0.259277 0.126251 0.177856 0.260223 0.128113 0.214386 0.261200 0.130005 0.246979 0.262177 0.131775 0.275970 0.262634 0.132904 0.302307 0.262665 0.133606 0.327393 0.262726 0.134186 0.351868 0.262878 0.134827 0.376953 0.262939 0.135376 0.403015 0.263123 0.135773 0.430664 0.263214 0.136078 0.460480 0.263153 0.136261 0.492981 0.263092 0.136169 0.529297 0.262817 0.135742 0.570587 0.262299 0.135071 0.615845 0.261719 0.134186 0.663483 0.261230 0.133301 0.711639 0.260742 0.132416 0.758301 0.260406 0.131500 0.801605 0.260132 0.130798 0.840332 0.260040 0.130127 0.874390 0.260315 0.129730 0.904358 0.260559 0.129364 0.930756 0.261078 0.129089 0.954071 0.261658 0.128937 0.974915 0.262268 0.128815 0.993561 0.262909 0.128723 1.000000 0.274139 0.144012 1.000000 0.290802 0.167450 0.002258 0.291016 0.127686 0.048950 0.290405 0.127899 0.093628 0.289764 0.128143 0.136017 0.289520 0.128693 0.176453 0.290436 0.130524 0.212982 0.291351 0.132233 0.245605 0.292389 0.134003 0.275177 0.293304 0.135651 0.302185 0.294037 0.136963 0.327759 0.294159 0.137451 0.352905 0.294281 0.138031 0.378326 0.294434 0.138489 0.404694 0.294617 0.138794 0.432770 0.294800 0.139038 0.462891 0.294708 0.138947 0.495575 0.294464 0.138550 0.532379 0.294159 0.138000 0.574249 0.293701 0.137207 0.619812 0.293121 0.136322 0.667572 0.292694 0.135376 0.715515 0.292267 0.134430 0.761841 0.291870 0.133514 0.804718 0.291809 0.132751 0.842743 0.291656 0.132080 0.876343 0.291870 0.131592 0.905884 0.292267 0.131226 0.931885 0.292603 0.130951 0.954865 0.293243 0.130798 0.975403 0.293762 0.130615 0.993896 0.294495 0.130463 1.000000 0.304413 0.145844 1.000000 0.319275 0.168945 0.000885 0.321106 0.130310 0.047546 0.320435 0.130463 0.092285 0.319855 0.130676 0.134613 0.319458 0.130981 0.175049 0.320343 0.132690 0.211609 0.321289 0.134399 0.244263 0.322296 0.136017 0.274445 0.323303 0.137634 0.302551 0.324402 0.139221 0.329163 0.325317 0.140594 0.354614 0.325592 0.141052 0.380371 0.325836 0.141418 0.406982 0.325867 0.141479 0.435272 0.325897 0.141418 0.465698 0.325806 0.141235 0.498840 0.325623 0.140717 0.536285 0.325256 0.140076 0.578552 0.324860 0.139252 0.624359 0.324432 0.138336 0.672119 0.324005 0.137360 0.719849 0.323608 0.136292 0.765747 0.323303 0.135437 0.807922 0.323090 0.134613 0.845367 0.323242 0.133942 0.878387 0.323425 0.133423 0.907410 0.323608 0.133026 0.933044 0.324097 0.132721 0.955688 0.324554 0.132477 0.975952 0.325165 0.132263 0.994171 0.325714 0.132050 1.000000 0.334656 0.147552 1.000000 0.347748 0.170349 0.000000 0.350647 0.133026 0.046173 0.350464 0.132843 0.090912 0.349915 0.132965 0.133179 0.349396 0.133118 0.173584 0.350311 0.134735 0.210938 0.351318 0.136353 0.244476 0.352295 0.137909 0.274963 0.353363 0.139496 0.303345 0.354553 0.141022 0.330444 0.355713 0.142426 0.356995 0.356781 0.143738 0.382874 0.356903 0.143799 0.409729 0.356964 0.143768 0.438354 0.357056 0.143646 0.469177 0.356995 0.143311 0.502716 0.356842 0.142792 0.540741 0.356628 0.142090 0.583435 0.356171 0.141205 0.629425 0.355713 0.140198 0.677032 0.355316 0.139160 0.724396 0.354919 0.138153 0.769684 0.354706 0.137177 0.811188 0.354584 0.136383 0.848022 0.354553 0.135681 0.880463 0.354889 0.135162 0.908997 0.355164 0.134705 0.934174 0.355408 0.134369 0.956482 0.355865 0.134003 0.976471 0.356445 0.133789 0.994476 0.357056 0.133545 1.000000 0.364807 0.149200 1.000000 0.376312 0.171661 0.000000 0.379669 0.135742 0.044769 0.380646 0.135071 0.089569 0.380127 0.135193 0.132721 0.379700 0.135101 0.174316 0.380585 0.136597 0.211975 0.381592 0.138184 0.245758 0.382690 0.139679 0.276459 0.383850 0.141205 0.304932 0.384918 0.142426 0.332001 0.385956 0.143616 0.358704 0.387054 0.144775 0.385864 0.388184 0.145905 0.413086 0.388367 0.145905 0.442017 0.388428 0.145660 0.473175 0.388458 0.145294 0.507111 0.388367 0.144714 0.545685 0.388031 0.143921 0.588684 0.387695 0.142975 0.634796 0.387421 0.141937 0.682220 0.387054 0.140930 0.729065 0.386566 0.139832 0.773712 0.386414 0.138855 0.814545 0.386292 0.138031 0.850586 0.386261 0.137329 0.882446 0.386566 0.136719 0.910492 0.386810 0.136261 0.935242 0.387146 0.135803 0.957275 0.387512 0.135529 0.976959 0.387970 0.135223 0.994751 0.388458 0.134949 1.000000 0.395111 0.150604 1.000000 0.404816 0.172852 0.000000 0.409119 0.138367 0.044403 0.411316 0.137115 0.090607 0.410767 0.136993 0.134399 0.410370 0.136871 0.176300 0.411346 0.138306 0.214233 0.412445 0.139801 0.247894 0.413452 0.141052 0.278473 0.414490 0.142242 0.306946 0.415588 0.143433 0.334106 0.416656 0.144531 0.360992 0.417786 0.145660 0.388397 0.418945 0.146698 0.416840 0.420166 0.147797 0.446198 0.420319 0.147644 0.477631 0.420410 0.147156 0.511993 0.420319 0.146545 0.551056 0.420105 0.145691 0.594360 0.419769 0.144684 0.640381 0.419312 0.143646 0.687500 0.418976 0.142517 0.733917 0.418701 0.141418 0.777863 0.418427 0.140442 0.817810 0.418365 0.139557 0.853180 0.418365 0.138824 0.884369 0.418579 0.138214 0.911926 0.418732 0.137695 0.936279 0.418915 0.137238 0.957977 0.419464 0.136841 0.977386 0.419739 0.136505 0.994995 0.420074 0.136169 1.000000 0.425659 0.151886 1.000000 0.433746 0.173767 0.000000 0.441284 0.139923 0.046509 0.442474 0.138794 0.093475 0.442078 0.138580 0.137634 0.441742 0.138458 0.179688 0.442719 0.139679 0.217255 0.443726 0.140900 0.250671 0.444733 0.141998 0.281128 0.445801 0.143158 0.309540 0.446899 0.144226 0.336761 0.447998 0.145325 0.363800 0.449219 0.146393 0.391357 0.450378 0.147400 0.420105 0.451569 0.148376 0.450623 0.452820 0.149353 0.482452 0.452911 0.148926 0.517242 0.452789 0.148193 0.556793 0.452606 0.147308 0.600159 0.452271 0.146271 0.646149 0.451904 0.145203 0.692871 0.451599 0.144012 0.738617 0.451233 0.142914 0.781799 0.451111 0.141876 0.820953 0.450897 0.140991 0.855621 0.450867 0.140198 0.886230 0.451050 0.139557 0.913269 0.451141 0.138977 0.937225 0.451508 0.138519 0.958618 0.451752 0.138092 0.977814 0.451965 0.137634 0.995239 0.452362 0.137146 1.000000 0.456879 0.152802 1.000000 0.463257 0.174286 0.001160 0.474884 0.140533 0.050690 0.474457 0.140198 0.097839 0.473999 0.139801 0.141815 0.473694 0.139374 0.183655 0.474670 0.140533 0.221008 0.475677 0.141663 0.254150 0.476746 0.142761 0.284424 0.477875 0.143860 0.312714 0.479034 0.144928 0.339874 0.480103 0.145935 0.366943 0.481323 0.146942 0.394592 0.482452 0.147919 0.423523 0.483704 0.148834 0.454437 0.484955 0.149811 0.487549 0.486053 0.150604 0.522736 0.485992 0.149841 0.562622 0.485779 0.148834 0.606110 0.485504 0.147736 0.651794 0.485046 0.146606 0.698090 0.484833 0.145416 0.743103 0.484406 0.144257 0.785553 0.484314 0.143250 0.823883 0.484009 0.142303 0.857880 0.484070 0.141510 0.887909 0.484192 0.140808 0.914459 0.484253 0.140198 0.938080 0.484436 0.139618 0.959198 0.484558 0.139008 0.978241 0.484924 0.138367 0.995483 0.485199 0.137665 1.000000 0.488403 0.153320 1.000000 0.493256 0.174469 0.006378 0.507629 0.141693 0.055878 0.507080 0.140991 0.103088 0.506653 0.140381 0.147156 0.506531 0.140106 0.188690 0.507629 0.141235 0.225433 0.508667 0.142334 0.258148 0.509766 0.143372 0.288086 0.510925 0.144409 0.316162 0.512085 0.145386 0.343262 0.513245 0.146362 0.370361 0.514496 0.147308 0.398193 0.515656 0.148193 0.427277 0.516937 0.149139 0.458435 0.518188 0.150024 0.491760 0.519348 0.150818 0.528381 0.520386 0.151306 0.568512 0.520111 0.150238 0.611938 0.519684 0.149109 0.657379 0.519287 0.147949 0.703125 0.518951 0.146698 0.747498 0.518585 0.145569 0.789093 0.518341 0.144470 0.826599 0.518127 0.143494 0.859863 0.518036 0.142670 0.889404 0.518188 0.141876 0.915588 0.518127 0.141174 0.938904 0.518280 0.140350 0.959808 0.518524 0.139557 0.978607 0.518677 0.138702 0.995728 0.518921 0.137878 1.000000 0.521210 0.153534 1.000000 0.524750 0.174469 0.012665 0.542694 0.142059 0.062378 0.542206 0.141418 0.109497 0.541779 0.140778 0.153534 0.541870 0.140717 0.194427 0.543060 0.141754 0.230438 0.544220 0.142792 0.262634 0.545349 0.143768 0.292114 0.546570 0.144745 0.319885 0.547791 0.145752 0.346954 0.549072 0.146606 0.373962 0.550293 0.147522 0.401794 0.551483 0.148346 0.431091 0.552795 0.149261 0.462372 0.554016 0.150055 0.495911 0.555267 0.150818 0.533142 0.556519 0.151581 0.574371 0.557037 0.151550 0.617645 0.556671 0.150360 0.662689 0.556213 0.149139 0.707825 0.555725 0.147949 0.751404 0.555420 0.146698 0.792236 0.555023 0.145630 0.829010 0.554626 0.144531 0.861725 0.554596 0.143616 0.890869 0.554596 0.142609 0.916718 0.554565 0.141602 0.939758 0.554657 0.140686 0.960419 0.554840 0.139709 0.979034 0.555115 0.138794 0.996033 0.555176 0.137909 1.000000 0.556244 0.153656 1.000000 0.558258 0.174377 0.020477 0.580505 0.142334 0.070160 0.580048 0.141663 0.116974 0.579651 0.141052 0.160675 0.579987 0.141083 0.200562 0.581207 0.142120 0.235779 0.582367 0.143097 0.267303 0.583557 0.144012 0.296356 0.584808 0.144958 0.323761 0.586029 0.145874 0.350555 0.587250 0.146698 0.377716 0.588562 0.147583 0.405487 0.589783 0.148376 0.434875 0.591003 0.149170 0.466278 0.592224 0.149963 0.499969 0.593414 0.150665 0.537476 0.594604 0.151337 0.579285 0.595764 0.152039 0.623016 0.595825 0.151550 0.667572 0.595337 0.150238 0.712067 0.594757 0.149017 0.755005 0.594238 0.147736 0.795166 0.593811 0.146454 0.831360 0.593445 0.145264 0.863617 0.593140 0.144012 0.892334 0.593231 0.142914 0.917816 0.593201 0.141785 0.940582 0.593231 0.140747 0.961029 0.593262 0.139709 0.979462 0.593414 0.138702 0.996216 0.593719 0.137726 1.000000 0.593323 0.153687 1.000000 0.593658 0.174255 0.029541 0.620483 0.142517 0.078979 0.619995 0.141724 0.125183 0.619568 0.140961 0.168182 0.620209 0.141357 0.207001 0.621399 0.142334 0.241364 0.622589 0.143311 0.272034 0.623810 0.144135 0.300690 0.624939 0.145050 0.327667 0.626160 0.145874 0.354370 0.627319 0.146698 0.381348 0.628540 0.147491 0.409241 0.629700 0.148254 0.438660 0.630890 0.148987 0.470093 0.632019 0.149689 0.503723 0.633148 0.150391 0.541473 0.634247 0.151001 0.583191 0.635345 0.151642 0.627563 0.636353 0.152222 0.671997 0.636017 0.151245 0.715942 0.635406 0.149841 0.758453 0.634796 0.148346 0.798035 0.634216 0.146912 0.833679 0.633820 0.145538 0.865448 0.633606 0.144196 0.893768 0.633362 0.142944 0.918915 0.633240 0.141785 0.941467 0.633209 0.140656 0.961609 0.633392 0.139557 0.979828 0.633270 0.138550 0.996490 0.633423 0.137604 1.000000 0.631653 0.153778 1.000000 0.630280 0.174194 0.039642 0.661835 0.142487 0.088501 0.661316 0.141663 0.133881 0.660828 0.140869 0.175995 0.661743 0.141541 0.213562 0.662842 0.142395 0.246887 0.664032 0.143341 0.276825 0.665070 0.144165 0.304932 0.666260 0.144989 0.331573 0.667358 0.145782 0.358063 0.668488 0.146576 0.384918 0.669617 0.147278 0.412781 0.670654 0.148010 0.442169 0.671692 0.148651 0.473602 0.672791 0.149353 0.507355 0.673767 0.149963 0.545135 0.674744 0.150543 0.586578 0.675720 0.151031 0.630737 0.676605 0.151489 0.676239 0.677582 0.151794 0.719910 0.676788 0.150208 0.761841 0.676117 0.148560 0.800873 0.675507 0.147003 0.835968 0.675049 0.145538 0.867310 0.674744 0.144165 0.895172 0.674469 0.142822 0.919983 0.674194 0.141571 0.942200 0.674255 0.140472 0.962189 0.674072 0.139374 0.980225 0.674103 0.138489 0.996704 0.674286 0.137512 1.000000 0.670807 0.153900 1.000000 0.667725 0.174316 0.050446 0.703735 0.142303 0.098450 0.703064 0.141479 0.142853 0.702667 0.140686 0.183960 0.703674 0.141571 0.220215 0.704742 0.142426 0.252258 0.705811 0.143250 0.281647 0.706848 0.144043 0.309113 0.707855 0.144836 0.335388 0.708832 0.145569 0.361572 0.709839 0.146271 0.388306 0.710815 0.147003 0.416107 0.711761 0.147675 0.445404 0.712708 0.148254 0.476837 0.713593 0.148865 0.510529 0.714447 0.149384 0.548279 0.715302 0.149841 0.589874 0.716156 0.150116 0.633972 0.716980 0.150330 0.679077 0.717865 0.150421 0.723724 0.718475 0.150269 0.765228 0.717590 0.148560 0.803650 0.716919 0.146942 0.838196 0.716309 0.145355 0.869049 0.715942 0.143921 0.896515 0.715668 0.142609 0.921051 0.715393 0.141418 0.942993 0.715149 0.140350 0.962708 0.715088 0.139313 0.980621 0.715027 0.138458 0.996918 0.715057 0.137634 1.000000 0.710083 0.154236 1.000000 0.705078 0.174652 0.061554 0.745209 0.141937 0.108551 0.744507 0.141174 0.151947 0.744324 0.140747 0.191589 0.745270 0.141541 0.226471 0.746185 0.142365 0.257629 0.747101 0.143127 0.286224 0.747986 0.143890 0.313019 0.748871 0.144653 0.339050 0.749756 0.145325 0.364960 0.750641 0.145966 0.391449 0.751465 0.146637 0.419128 0.752228 0.147186 0.448334 0.753052 0.147736 0.479645 0.753815 0.148193 0.513611 0.754486 0.148499 0.551605 0.755280 0.148712 0.593140 0.756012 0.148834 0.637146 0.756775 0.148895 0.682068 0.757477 0.148895 0.726440 0.758240 0.148865 0.768463 0.758575 0.148346 0.806366 0.757782 0.146698 0.840363 0.757080 0.145142 0.870728 0.756592 0.143738 0.897827 0.756226 0.142517 0.921997 0.755890 0.141327 0.943695 0.755463 0.140320 0.963196 0.755371 0.139404 0.980896 0.755157 0.138641 0.997101 0.754974 0.138000 1.000000 0.748779 0.154968 1.000000 0.742126 0.175446 0.072784 0.785461 0.141571 0.118561 0.784637 0.140778 0.160797 0.784698 0.140717 0.198975 0.785522 0.141479 0.232513 0.786346 0.142242 0.262634 0.787048 0.143036 0.290375 0.787811 0.143677 0.316742 0.788574 0.144318 0.342224 0.789276 0.144989 0.367889 0.790009 0.145599 0.394165 0.790680 0.146149 0.421692 0.791321 0.146545 0.451233 0.791992 0.146912 0.482635 0.792633 0.147125 0.516815 0.793304 0.147247 0.555023 0.793884 0.147308 0.596436 0.794556 0.147308 0.640289 0.795166 0.147278 0.684753 0.795807 0.147217 0.728790 0.796417 0.147156 0.770721 0.797028 0.147003 0.808929 0.797180 0.146423 0.842407 0.796478 0.144989 0.872345 0.795929 0.143646 0.899048 0.795380 0.142426 0.922913 0.794952 0.141388 0.944366 0.794556 0.140503 0.963684 0.794159 0.139771 0.981232 0.793945 0.139160 0.997284 0.793762 0.138794 1.000000 0.785889 0.155945 1.000000 0.777710 0.176605 0.083923 0.823730 0.141266 0.128174 0.822845 0.140320 0.169067 0.823090 0.140656 0.205780 0.823761 0.141388 0.238190 0.824402 0.142090 0.267151 0.825012 0.142761 0.294189 0.825653 0.143433 0.320007 0.826202 0.143982 0.345093 0.826752 0.144562 0.370544 0.827332 0.145020 0.396942 0.827881 0.145355 0.424622 0.828430 0.145599 0.454163 0.828949 0.145691 0.485687 0.829529 0.145813 0.520081 0.830048 0.145813 0.558289 0.830566 0.145782 0.599854 0.831116 0.145691 0.643372 0.831635 0.145630 0.687469 0.832092 0.145508 0.730865 0.832642 0.145416 0.772400 0.833130 0.145386 0.810577 0.833588 0.145325 0.844330 0.833710 0.144867 0.873840 0.833069 0.143677 0.900208 0.832458 0.142609 0.923737 0.831818 0.141693 0.944977 0.831543 0.141022 0.964081 0.831024 0.140533 0.981476 0.830811 0.140167 0.997406 0.830566 0.139984 1.000000 0.821411 0.157501 1.000000 0.811798 0.178314 0.094513 0.859314 0.140778 0.137268 0.858398 0.139832 0.177002 0.858795 0.140533 0.211884 0.859283 0.141205 0.243011 0.859772 0.141876 0.271332 0.860260 0.142487 0.297577 0.860748 0.143097 0.322937 0.861176 0.143524 0.348022 0.861603 0.143860 0.373352 0.862061 0.144104 0.399689 0.862488 0.144226 0.427429 0.862946 0.144287 0.457092 0.863373 0.144318 0.488922 0.863800 0.144287 0.523346 0.864227 0.144226 0.561798 0.864655 0.144165 0.603058 0.865021 0.144012 0.646393 0.865479 0.143982 0.690216 0.865875 0.143921 0.733124 0.866302 0.143890 0.773956 0.866669 0.143890 0.811615 0.867065 0.143951 0.845337 0.867432 0.144043 0.875244 0.867523 0.143921 0.901245 0.866943 0.143127 0.924530 0.866272 0.142426 0.945496 0.865845 0.141998 0.964447 0.865326 0.141693 0.981689 0.864838 0.141663 0.997498 0.864502 0.141785 1.000000 0.854553 0.160309 1.000000 0.844025 0.182312 0.104462 0.891663 0.140442 0.145935 0.890900 0.139801 0.183777 0.891266 0.140442 0.217560 0.891602 0.141052 0.247314 0.891968 0.141602 0.274780 0.892334 0.142059 0.300842 0.892670 0.142426 0.326019 0.893005 0.142670 0.350800 0.893372 0.142853 0.376190 0.893707 0.142914 0.402588 0.894012 0.142944 0.430603 0.894379 0.142944 0.460205 0.894684 0.142853 0.491882 0.895020 0.142822 0.526611 0.895386 0.142670 0.565033 0.895660 0.142639 0.606262 0.895966 0.142578 0.649353 0.896332 0.142548 0.692719 0.896606 0.142548 0.735260 0.896973 0.142578 0.775513 0.897217 0.142700 0.812500 0.897522 0.142914 0.845795 0.897827 0.143219 0.875610 0.898102 0.143707 0.902161 0.898285 0.144012 0.925201 0.897675 0.143646 0.945953 0.897064 0.143463 0.964722 0.896454 0.143463 0.981873 0.896240 0.144440 0.997589 0.895813 0.146027 1.000000 0.885010 0.165283 1.000000 0.873383 0.187622 0.113464 0.920502 0.140045 0.153534 0.919952 0.139709 0.189941 0.920197 0.140259 0.222351 0.920441 0.140778 0.251678 0.920746 0.141144 0.278625 0.920990 0.141388 0.304077 0.921204 0.141479 0.328979 0.921478 0.141571 0.353882 0.921753 0.141663 0.379272 0.921997 0.141663 0.405670 0.922211 0.141571 0.433411 0.922485 0.141510 0.463287 0.922729 0.141418 0.495117 0.922974 0.141357 0.529938 0.923187 0.141327 0.568359 0.923431 0.141266 0.609528 0.923676 0.141296 0.652252 0.923889 0.141327 0.695190 0.924103 0.141449 0.737000 0.924347 0.141663 0.776855 0.924561 0.141998 0.813263 0.924774 0.142395 0.846222 0.925018 0.142914 0.875641 0.925201 0.143616 0.902069 0.925385 0.144409 0.925781 0.925598 0.145386 0.946411 0.925018 0.146179 0.964996 0.924530 0.147583 0.981995 0.924133 0.149445 0.997528 0.923706 0.151611 1.000000 0.912201 0.171173 1.000000 0.899841 0.193878 0.121399 0.946136 0.139771 0.160431 0.945770 0.139526 0.195679 0.945923 0.139893 0.227264 0.946106 0.140167 0.255890 0.946320 0.140320 0.282196 0.946503 0.140411 0.307465 0.946655 0.140442 0.332123 0.946838 0.140442 0.356812 0.947021 0.140411 0.382233 0.947205 0.140320 0.408569 0.947388 0.140228 0.436523 0.947571 0.140167 0.466278 0.947723 0.140137 0.498291 0.947876 0.140076 0.533020 0.948059 0.140106 0.571472 0.948242 0.140137 0.612488 0.948395 0.140259 0.654816 0.948547 0.140503 0.697296 0.948700 0.140778 0.738678 0.948822 0.141235 0.778076 0.949005 0.141754 0.814117 0.949158 0.142395 0.846527 0.949310 0.143219 0.875732 0.949432 0.144196 0.901978 0.949585 0.145905 0.925568 0.949799 0.148285 0.946686 0.950012 0.151031 0.965149 0.949585 0.153168 0.981934 0.948944 0.155548 0.997406 0.948517 0.158173 1.000000 0.936737 0.177917 1.000000 0.923615 0.200928 0.128906 0.969025 0.139069 0.167145 0.968811 0.139008 0.201233 0.968933 0.139130 0.232056 0.969116 0.139252 0.259796 0.969238 0.139313 0.285950 0.969330 0.139313 0.310883 0.969482 0.139252 0.335236 0.969574 0.139160 0.359833 0.969696 0.139099 0.385254 0.969849 0.139038 0.411438 0.969940 0.138977 0.439484 0.970062 0.138947 0.469238 0.970184 0.138977 0.501099 0.970276 0.139008 0.536224 0.970398 0.139130 0.574493 0.970459 0.139343 0.615112 0.970551 0.139648 0.657257 0.970673 0.140137 0.699219 0.970764 0.140625 0.740326 0.970886 0.141296 0.779022 0.970978 0.142090 0.814636 0.971039 0.143066 0.846954 0.971130 0.144745 0.875763 0.971283 0.147156 0.901764 0.971375 0.149750 0.924866 0.971497 0.152802 0.945923 0.971527 0.156036 0.964935 0.971649 0.159454 0.981812 0.971283 0.162659 0.997284 0.970734 0.165619 1.000000 0.958801 0.185425 1.000000 0.945251 0.208588 0.136261 0.989655 0.138184 0.173645 0.989685 0.138184 0.206787 0.989746 0.138245 0.236572 0.989838 0.138245 0.263885 0.989899 0.138214 0.289398 0.989990 0.138092 0.314178 0.990021 0.138031 0.338379 0.990112 0.137970 0.362854 0.990173 0.137939 0.387970 0.990265 0.137909 0.414337 0.990295 0.137939 0.442383 0.990417 0.137939 0.472046 0.990448 0.138092 0.503937 0.990509 0.138306 0.538910 0.990601 0.138611 0.577087 0.990631 0.139008 0.617584 0.990692 0.139526 0.659332 0.990723 0.140228 0.700836 0.990753 0.140991 0.741394 0.990814 0.141968 0.780060 0.990845 0.143677 0.815399 0.990936 0.146027 0.847137 0.990967 0.148651 0.875641 0.990967 0.151642 0.901093 0.990967 0.154846 0.924194 0.991028 0.158325 0.945038 0.991028 0.161957 0.963989 0.991028 0.165863 0.981323 0.990997 0.169952 0.997040 0.990814 0.173706 1.000000 0.978760 0.193390 1.000000 0.964874 0.216644 0.155853 1.000000 0.149536 0.190948 1.000000 0.149567 0.222260 1.000000 0.149597 0.250488 1.000000 0.149567 0.276367 1.000000 0.149567 0.300751 1.000000 0.149536 0.324371 1.000000 0.149536 0.347687 1.000000 0.149536 0.371307 1.000000 0.149628 0.395782 1.000000 0.149689 0.421295 1.000000 0.149872 0.448395 1.000000 0.150116 0.477264 1.000000 0.150452 0.508240 1.000000 0.150909 0.542542 1.000000 0.151459 0.579468 1.000000 0.152100 0.618622 1.000000 0.152893 0.658783 1.000000 0.153931 0.699432 1.000000 0.155518 0.738770 1.000000 0.157837 0.775848 1.000000 0.160522 0.809723 1.000000 0.163330 0.840057 1.000000 0.166504 0.867645 1.000000 0.169891 0.892639 1.000000 0.173462 0.915131 1.000000 0.177246 0.935669 1.000000 0.181122 0.954498 1.000000 0.185211 0.971863 1.000000 0.189423 0.987885 1.000000 0.193634 1.000000 0.997192 0.201721 1.000000 0.983093 0.225067 0.187744 1.000000 0.174469 0.219513 1.000000 0.174408 0.247925 1.000000 0.174347 0.273773 1.000000 0.174286 0.297333 1.000000 0.174255 0.319946 1.000000 0.174194 0.341919 1.000000 0.174255 0.363556 1.000000 0.174286 0.385590 1.000000 0.174408 0.408508 1.000000 0.174591 0.432648 1.000000 0.174866 0.458130 1.000000 0.175262 0.485413 1.000000 0.175720 0.514740 1.000000 0.176392 0.547058 1.000000 0.177124 0.582123 1.000000 0.178040 0.619568 1.000000 0.179565 0.657837 1.000000 0.181763 0.695740 1.000000 0.184204 0.732635 1.000000 0.187042 0.767090 1.000000 0.190063 0.798889 1.000000 0.193329 0.827789 1.000000 0.196838 0.854034 1.000000 0.200378 0.877869 1.000000 0.204224 0.899719 1.000000 0.208191 0.919769 1.000000 0.212189 0.938171 1.000000 0.216339 0.955170 1.000000 0.220612 0.971039 1.000000 0.224792 0.985870 1.000000 0.230286 1.000000 1.000000 0.236481 0.000519 0.001190 0.104431 0.049957 0.003723 0.108337 0.097412 0.006805 0.113129 0.141357 0.009338 0.117645 0.181396 0.011444 0.121857 0.217621 0.013977 0.126556 0.249817 0.016663 0.131287 0.278900 0.019470 0.136078 0.305725 0.022186 0.140503 0.331116 0.024567 0.144165 0.355743 0.025299 0.145630 0.380371 0.025818 0.146698 0.405731 0.026184 0.147736 0.432404 0.026489 0.148712 0.460968 0.026550 0.149414 0.492065 0.026520 0.149872 0.526672 0.026245 0.150238 0.566254 0.025787 0.150391 0.609833 0.025269 0.150360 0.656067 0.024689 0.150208 0.703308 0.024017 0.149902 0.749786 0.023560 0.149841 0.793671 0.023193 0.149689 0.833435 0.023071 0.149658 0.868927 0.023163 0.149841 0.900391 0.023468 0.149963 0.928101 0.023926 0.150177 0.952728 0.024628 0.150787 0.974640 0.025482 0.151062 0.994354 0.026428 0.151550 1.000000 0.045898 0.165344 1.000000 0.072845 0.184998 0.001770 0.042358 0.113190 0.049805 0.044037 0.116943 0.097290 0.047546 0.122711 0.141479 0.050598 0.127991 0.181458 0.052948 0.132629 0.217560 0.055267 0.137177 0.249603 0.057587 0.141327 0.278534 0.059784 0.144989 0.305115 0.060394 0.146484 0.330139 0.060852 0.147552 0.354614 0.061249 0.148712 0.379089 0.061676 0.149811 0.404388 0.061890 0.150696 0.431122 0.062073 0.151520 0.459869 0.062073 0.152130 0.490967 0.061981 0.152557 0.525574 0.061676 0.152893 0.565094 0.061188 0.152802 0.608643 0.060669 0.152771 0.654877 0.060089 0.152557 0.702087 0.059479 0.152252 0.748535 0.058990 0.151947 0.792633 0.058746 0.151794 0.832703 0.058594 0.151825 0.868317 0.058807 0.151733 0.899780 0.059174 0.151886 0.927521 0.059723 0.152069 0.952087 0.060455 0.152435 0.973969 0.061066 0.152588 0.993591 0.061829 0.152588 1.000000 0.079895 0.166626 1.000000 0.106262 0.187164 0.003418 0.083710 0.124237 0.051208 0.085449 0.128387 0.097321 0.087646 0.133118 0.141785 0.090942 0.138672 0.181610 0.092865 0.142670 0.217438 0.094635 0.146210 0.249115 0.095062 0.147461 0.277588 0.095367 0.148529 0.303925 0.095673 0.149628 0.328827 0.095947 0.150604 0.353180 0.096252 0.151703 0.377808 0.096527 0.152588 0.403259 0.096741 0.153473 0.430023 0.096802 0.154175 0.458771 0.096771 0.154755 0.489899 0.096588 0.155060 0.524475 0.096313 0.155273 0.563934 0.095856 0.155212 0.607483 0.095337 0.155060 0.653656 0.094788 0.154755 0.701080 0.094269 0.154419 0.748016 0.093781 0.154053 0.792389 0.093597 0.153870 0.832520 0.093536 0.153656 0.868073 0.093811 0.153656 0.899414 0.094238 0.153687 0.927094 0.094574 0.153687 0.951538 0.095123 0.153503 0.973358 0.095825 0.153717 0.992889 0.096588 0.153778 1.000000 0.113281 0.167419 1.000000 0.139099 0.189331 0.005219 0.124176 0.135895 0.052948 0.125824 0.140076 0.098602 0.127319 0.143890 0.141876 0.129089 0.147522 0.181396 0.129486 0.148834 0.216583 0.129517 0.149719 0.247925 0.129578 0.150543 0.276276 0.129761 0.151581 0.302429 0.129974 0.152588 0.327545 0.130127 0.153473 0.352020 0.130402 0.154449 0.376678 0.130554 0.155273 0.402130 0.130676 0.156036 0.428894 0.130798 0.156738 0.457703 0.130707 0.157166 0.488861 0.130554 0.157440 0.523407 0.130280 0.157654 0.562836 0.129822 0.157440 0.606537 0.129303 0.157166 0.653320 0.128815 0.156860 0.701202 0.128326 0.156342 0.748291 0.127991 0.155914 0.792664 0.127838 0.155518 0.832703 0.127838 0.155273 0.868042 0.127899 0.155090 0.899261 0.128113 0.154785 0.926758 0.128540 0.154724 0.951111 0.129150 0.154572 0.972778 0.129852 0.154663 0.992218 0.130707 0.154724 1.000000 0.145966 0.168274 1.000000 0.171143 0.191467 0.006470 0.162567 0.146362 0.054169 0.163818 0.149719 0.099274 0.163757 0.150757 0.141418 0.163483 0.151306 0.180634 0.163696 0.152435 0.215576 0.163574 0.153137 0.246765 0.163483 0.153900 0.275208 0.163483 0.154785 0.301514 0.163605 0.155640 0.326599 0.163727 0.156464 0.351074 0.163849 0.157288 0.375702 0.164001 0.158020 0.401184 0.164001 0.158691 0.427948 0.164093 0.159241 0.456726 0.164062 0.159637 0.487915 0.163910 0.159851 0.522644 0.163635 0.159882 0.562653 0.163147 0.159637 0.606964 0.162659 0.159241 0.654022 0.162323 0.158783 0.702148 0.161835 0.158295 0.749268 0.161652 0.157776 0.793457 0.161255 0.157104 0.833252 0.161041 0.156647 0.868469 0.161163 0.156342 0.899445 0.161499 0.156067 0.926788 0.162018 0.155914 0.950989 0.162659 0.155914 0.972534 0.163544 0.155914 0.991821 0.164215 0.155945 1.000000 0.178345 0.169464 1.000000 0.202515 0.193329 0.006805 0.197510 0.152863 0.053558 0.197113 0.153412 0.098083 0.196716 0.153900 0.139923 0.196350 0.154419 0.179443 0.196899 0.155884 0.215210 0.197357 0.157166 0.246582 0.197174 0.157837 0.275055 0.197144 0.158569 0.301392 0.197144 0.159363 0.326477 0.197205 0.160126 0.350952 0.197449 0.160919 0.375610 0.197449 0.161530 0.401031 0.197540 0.162201 0.427856 0.197693 0.162628 0.456787 0.197601 0.162933 0.488556 0.197540 0.163086 0.523926 0.197205 0.162994 0.564392 0.196808 0.162720 0.609161 0.196442 0.162262 0.656494 0.196136 0.161682 0.704590 0.195496 0.160858 0.751587 0.194977 0.160095 0.795593 0.194763 0.159424 0.835114 0.194611 0.158844 0.869995 0.194733 0.158478 0.900726 0.195099 0.158234 0.927765 0.195587 0.158081 0.951691 0.196350 0.158020 0.972961 0.197052 0.157959 0.992096 0.197937 0.157990 1.000000 0.210876 0.171509 1.000000 0.232758 0.195099 0.005615 0.229736 0.156036 0.051971 0.229218 0.156464 0.096252 0.228760 0.156891 0.138336 0.228241 0.157288 0.177979 0.228577 0.158508 0.214478 0.229584 0.160431 0.246460 0.229950 0.161591 0.274902 0.229919 0.162323 0.301239 0.229919 0.162933 0.326355 0.229919 0.163635 0.350830 0.230103 0.164368 0.375488 0.230164 0.164948 0.401093 0.230347 0.165497 0.428467 0.230408 0.165863 0.457947 0.230438 0.166107 0.490082 0.230286 0.166138 0.526001 0.230133 0.165985 0.567047 0.229797 0.165497 0.611969 0.229218 0.164734 0.659424 0.228577 0.163940 0.707550 0.228088 0.163086 0.754456 0.227692 0.162292 0.798187 0.227509 0.161560 0.837219 0.227325 0.161011 0.871765 0.227570 0.160614 0.902130 0.227844 0.160309 0.928802 0.228455 0.160126 0.952423 0.229095 0.160004 0.973511 0.229614 0.159943 0.992401 0.230408 0.159912 1.000000 0.242432 0.173523 1.000000 0.262390 0.196899 0.003662 0.260895 0.158966 0.050232 0.260345 0.159363 0.094910 0.259796 0.159698 0.137054 0.259216 0.160004 0.176605 0.259399 0.161041 0.213104 0.260376 0.162811 0.245728 0.261322 0.164612 0.274780 0.261871 0.165833 0.301117 0.261871 0.166443 0.326233 0.261963 0.167053 0.350861 0.262085 0.167694 0.376038 0.262177 0.168182 0.402222 0.262360 0.168640 0.429932 0.262451 0.168945 0.459808 0.262512 0.169067 0.492401 0.262451 0.168976 0.528717 0.262054 0.168457 0.570038 0.261536 0.167786 0.615387 0.261078 0.167023 0.663025 0.260468 0.166077 0.711121 0.259979 0.165222 0.757782 0.259735 0.164368 0.800995 0.259430 0.163666 0.839630 0.259491 0.163086 0.873627 0.259674 0.162628 0.903564 0.260071 0.162292 0.929932 0.260529 0.162048 0.953217 0.260925 0.161865 0.973999 0.261658 0.161774 0.992706 0.262360 0.161743 1.000000 0.273315 0.175507 1.000000 0.291290 0.198456 0.002258 0.291412 0.161865 0.048889 0.290741 0.162079 0.093597 0.290161 0.162354 0.135742 0.289612 0.162628 0.175171 0.289581 0.163330 0.211731 0.290558 0.165070 0.244354 0.291534 0.166809 0.273926 0.292542 0.168427 0.301147 0.293213 0.169739 0.326813 0.293335 0.170258 0.352020 0.293549 0.170837 0.377502 0.293732 0.171265 0.404022 0.293976 0.171600 0.432129 0.294067 0.171783 0.462280 0.293976 0.171631 0.495148 0.293762 0.171265 0.531982 0.293396 0.170685 0.573883 0.292938 0.169922 0.619507 0.292480 0.169067 0.667175 0.292023 0.168152 0.715149 0.291565 0.167236 0.761414 0.291321 0.166382 0.804108 0.291016 0.165558 0.842102 0.291199 0.165009 0.875641 0.291351 0.164520 0.905060 0.291595 0.164124 0.931030 0.292114 0.163879 0.954010 0.292664 0.163666 0.974548 0.293182 0.163544 0.993011 0.293762 0.163422 1.000000 0.303802 0.177307 1.000000 0.319916 0.199982 0.000885 0.321442 0.164490 0.047546 0.320801 0.164673 0.092285 0.320190 0.164795 0.134460 0.319702 0.164978 0.173767 0.319519 0.165527 0.210358 0.320526 0.167175 0.243195 0.321533 0.168823 0.273499 0.322571 0.170410 0.301636 0.323608 0.171967 0.328369 0.324646 0.173370 0.353882 0.324860 0.173828 0.379700 0.325104 0.174133 0.406403 0.325134 0.174194 0.434662 0.325104 0.174072 0.465302 0.325073 0.173859 0.498535 0.324951 0.173431 0.535950 0.324615 0.172760 0.578278 0.324249 0.171967 0.624207 0.323792 0.171082 0.671783 0.323273 0.170044 0.719513 0.323059 0.169159 0.765259 0.322601 0.168213 0.807312 0.322449 0.167419 0.844696 0.322479 0.166809 0.877655 0.322723 0.166290 0.906616 0.323059 0.165894 0.932190 0.323456 0.165588 0.954834 0.323883 0.165344 0.975067 0.324554 0.165161 0.993317 0.325043 0.165009 1.000000 0.334137 0.178955 1.000000 0.348236 0.201355 0.000000 0.350952 0.166962 0.046173 0.350769 0.167023 0.090912 0.350281 0.167084 0.133118 0.349731 0.167175 0.172546 0.349609 0.167603 0.210022 0.350555 0.169159 0.243622 0.351562 0.170715 0.274139 0.352692 0.172272 0.302612 0.353821 0.173737 0.329803 0.355042 0.175201 0.356323 0.356110 0.176392 0.382263 0.356171 0.176422 0.409241 0.356262 0.176453 0.437897 0.356293 0.176208 0.468842 0.356293 0.175934 0.502502 0.356140 0.175446 0.540497 0.355835 0.174713 0.583282 0.355530 0.173889 0.629272 0.355164 0.172943 0.676758 0.354706 0.171906 0.724091 0.354431 0.170929 0.769287 0.354034 0.169983 0.810608 0.353943 0.169159 0.847351 0.354034 0.168518 0.879700 0.354187 0.167969 0.908142 0.354553 0.167572 0.933350 0.355011 0.167206 0.955627 0.355316 0.166901 0.975586 0.355804 0.166656 0.993591 0.356384 0.166473 1.000000 0.364166 0.180542 1.000000 0.376770 0.202667 0.000000 0.379974 0.169464 0.044739 0.381012 0.169189 0.089783 0.380493 0.169189 0.133118 0.380035 0.169189 0.173553 0.379822 0.169434 0.211304 0.380859 0.170929 0.245148 0.382019 0.172424 0.275909 0.383179 0.173889 0.304260 0.384186 0.175110 0.331360 0.385223 0.176239 0.358124 0.386322 0.177368 0.385284 0.387451 0.178467 0.412689 0.387726 0.178497 0.441681 0.387817 0.178314 0.472931 0.387817 0.177917 0.506989 0.387726 0.177368 0.545593 0.387421 0.176605 0.588593 0.387115 0.175659 0.634705 0.386749 0.174652 0.682037 0.386353 0.173584 0.728851 0.385986 0.172546 0.773376 0.385773 0.171661 0.813965 0.385712 0.170837 0.849945 0.385773 0.170105 0.881714 0.385803 0.169525 0.909668 0.386078 0.169067 0.934387 0.386505 0.168701 0.956390 0.386993 0.168365 0.976074 0.387268 0.168091 0.993896 0.387756 0.167847 1.000000 0.394592 0.181915 1.000000 0.405151 0.203857 0.000000 0.409576 0.171906 0.044952 0.411652 0.171143 0.091217 0.411163 0.170959 0.135101 0.410736 0.170929 0.175934 0.410675 0.171143 0.213928 0.411774 0.172546 0.247437 0.412781 0.173767 0.277985 0.413818 0.174927 0.306427 0.414856 0.176056 0.333649 0.416016 0.177124 0.360535 0.417084 0.178253 0.388000 0.418304 0.179352 0.416534 0.419525 0.180389 0.445892 0.419678 0.180206 0.477509 0.419769 0.179779 0.511932 0.419647 0.179138 0.551025 0.419464 0.178314 0.594299 0.419098 0.177338 0.640289 0.418701 0.176300 0.687317 0.418304 0.175201 0.733612 0.418121 0.174164 0.777374 0.417786 0.173187 0.817230 0.417786 0.172333 0.852509 0.417816 0.171631 0.883606 0.417908 0.170990 0.911072 0.418213 0.170502 0.935394 0.418365 0.170074 0.957092 0.418762 0.169708 0.976532 0.419067 0.169342 0.994141 0.419495 0.169037 1.000000 0.425140 0.183197 1.000000 0.434143 0.204651 0.000000 0.442261 0.173370 0.047455 0.442871 0.172821 0.094391 0.442444 0.172577 0.138763 0.442108 0.172485 0.179382 0.442017 0.172394 0.216827 0.443024 0.173523 0.250275 0.444061 0.174652 0.280762 0.445129 0.175751 0.309143 0.446228 0.176849 0.336487 0.447418 0.177979 0.363403 0.448547 0.178955 0.391022 0.449738 0.179993 0.419861 0.450989 0.181000 0.450470 0.452209 0.181976 0.482361 0.452301 0.181519 0.517242 0.452240 0.180817 0.556702 0.451996 0.179901 0.600189 0.451691 0.178925 0.646088 0.451355 0.177826 0.692627 0.450897 0.176697 0.738281 0.450592 0.175598 0.781311 0.450439 0.174622 0.820312 0.450378 0.173767 0.854889 0.450256 0.173004 0.885406 0.450409 0.172333 0.912415 0.450592 0.171783 0.936371 0.450836 0.171326 0.957703 0.450989 0.170898 0.976898 0.451324 0.170441 0.994385 0.451599 0.169891 1.000000 0.456299 0.184021 1.000000 0.463593 0.205109 0.002319 0.475250 0.174438 0.052063 0.474854 0.174194 0.098938 0.474365 0.173706 0.142944 0.473907 0.173248 0.183655 0.473999 0.173248 0.220734 0.475067 0.174347 0.253998 0.476135 0.175446 0.284149 0.477234 0.176514 0.312317 0.478333 0.177521 0.339630 0.479553 0.178589 0.366638 0.480682 0.179565 0.394379 0.481934 0.180511 0.423431 0.483124 0.181458 0.454285 0.484314 0.182312 0.487518 0.485504 0.183167 0.522766 0.485352 0.182373 0.562592 0.485107 0.181427 0.606079 0.484833 0.180359 0.651642 0.484406 0.179199 0.697845 0.484100 0.178101 0.742798 0.483917 0.176971 0.785034 0.483582 0.175934 0.823212 0.483368 0.175049 0.857086 0.483398 0.174286 0.887054 0.483521 0.173553 0.913605 0.483582 0.173004 0.937195 0.483795 0.172424 0.958313 0.484009 0.171722 0.977356 0.484192 0.171112 0.994568 0.484406 0.170349 1.000000 0.488129 0.184509 1.000000 0.493652 0.205292 0.007782 0.507935 0.175598 0.057312 0.507446 0.174866 0.104462 0.506989 0.174316 0.148346 0.506653 0.173798 0.188690 0.506927 0.173889 0.225281 0.507965 0.174957 0.258057 0.509155 0.176056 0.287842 0.510284 0.177032 0.315979 0.511505 0.178070 0.343048 0.512665 0.178986 0.370209 0.513885 0.179932 0.397949 0.515076 0.180847 0.427124 0.516327 0.181732 0.458221 0.517517 0.182617 0.491760 0.518799 0.183411 0.528320 0.519684 0.183838 0.568481 0.519409 0.182800 0.611908 0.519043 0.181732 0.657196 0.518616 0.180511 0.702789 0.518280 0.179352 0.747070 0.517944 0.178284 0.788483 0.517670 0.177185 0.825897 0.517456 0.176239 0.859100 0.517365 0.175415 0.888550 0.517426 0.174622 0.914703 0.517548 0.173828 0.938049 0.517639 0.173004 0.958954 0.517731 0.172241 0.977722 0.517975 0.171387 0.994873 0.518250 0.170532 1.000000 0.520905 0.184723 1.000000 0.524963 0.205261 0.014313 0.543030 0.175995 0.064117 0.542572 0.175415 0.111115 0.542145 0.174683 0.154663 0.541840 0.174133 0.194580 0.542389 0.174469 0.230408 0.543549 0.175476 0.262604 0.544708 0.176483 0.291931 0.545898 0.177429 0.319733 0.547150 0.178375 0.346741 0.548401 0.179260 0.373718 0.549652 0.180176 0.401611 0.550903 0.181030 0.430969 0.552124 0.181885 0.462250 0.553406 0.182648 0.495850 0.554626 0.183411 0.533142 0.555817 0.184174 0.574249 0.556335 0.184082 0.617554 0.556000 0.182953 0.662384 0.555450 0.181763 0.707397 0.555084 0.180511 0.750946 0.554626 0.179382 0.791595 0.554199 0.178314 0.828278 0.553986 0.177246 0.861023 0.553955 0.176239 0.890015 0.553802 0.175232 0.915833 0.553772 0.174316 0.938873 0.554016 0.173309 0.959503 0.554138 0.172363 0.978180 0.554352 0.171417 0.995117 0.554535 0.170532 1.000000 0.555969 0.184814 1.000000 0.558685 0.205139 0.022430 0.580872 0.176270 0.072174 0.580383 0.175537 0.118744 0.579987 0.174835 0.161591 0.579742 0.174286 0.200745 0.580475 0.174805 0.235809 0.581696 0.175751 0.267273 0.582947 0.176727 0.296143 0.584106 0.177612 0.323608 0.585388 0.178528 0.350525 0.586639 0.179413 0.377472 0.587830 0.180206 0.405396 0.589111 0.181030 0.434784 0.590363 0.181793 0.466095 0.591522 0.182556 0.499908 0.592743 0.183289 0.537415 0.593903 0.183960 0.579193 0.595062 0.184631 0.622833 0.595093 0.184113 0.667206 0.594543 0.182831 0.711578 0.594025 0.181580 0.754425 0.593414 0.180328 0.794464 0.592957 0.179047 0.830627 0.592743 0.177795 0.862854 0.592468 0.176666 0.891449 0.592346 0.175507 0.916931 0.592285 0.174408 0.939697 0.592377 0.173340 0.960114 0.592438 0.172333 0.978577 0.592621 0.171326 0.995361 0.592896 0.170349 1.000000 0.593140 0.184784 1.000000 0.594086 0.204987 0.031769 0.620850 0.176422 0.081116 0.620361 0.175659 0.127045 0.619934 0.174957 0.168945 0.619629 0.174255 0.207306 0.620636 0.175049 0.241425 0.621857 0.175964 0.272095 0.623047 0.176819 0.300476 0.624237 0.177704 0.327545 0.625427 0.178558 0.354218 0.626648 0.179413 0.381134 0.627808 0.180145 0.409058 0.628967 0.180908 0.438507 0.630188 0.181641 0.469849 0.631287 0.182281 0.503693 0.632416 0.182983 0.541290 0.633484 0.183624 0.583008 0.634552 0.184174 0.627258 0.635620 0.184814 0.671539 0.635162 0.183746 0.715454 0.634491 0.182312 0.757874 0.634033 0.180847 0.797333 0.633270 0.179413 0.832977 0.632965 0.178070 0.864685 0.632721 0.176758 0.892914 0.632599 0.175507 0.918060 0.632355 0.174377 0.940552 0.632477 0.173248 0.960693 0.632385 0.172180 0.978943 0.632568 0.171143 0.995605 0.632599 0.170166 1.000000 0.631409 0.184845 1.000000 0.630646 0.204956 0.041992 0.662201 0.176331 0.090607 0.661621 0.175537 0.135742 0.661194 0.174835 0.176605 0.660950 0.174255 0.213959 0.662109 0.175140 0.246979 0.663239 0.175995 0.276947 0.664368 0.176849 0.304810 0.665527 0.177643 0.331421 0.666595 0.178436 0.357880 0.667755 0.179260 0.384705 0.668762 0.179932 0.412567 0.669891 0.180664 0.441925 0.670898 0.181335 0.473450 0.671936 0.181976 0.507172 0.672943 0.182556 0.544800 0.673920 0.183167 0.586334 0.674835 0.183624 0.630432 0.675812 0.183990 0.675842 0.676697 0.184235 0.719452 0.676025 0.182648 0.761353 0.675232 0.181091 0.800201 0.674622 0.179535 0.835205 0.674194 0.178040 0.866455 0.673767 0.176666 0.894318 0.673462 0.175385 0.919128 0.673370 0.174164 0.941315 0.673309 0.173035 0.961304 0.673126 0.171967 0.979340 0.673340 0.171051 0.995819 0.673218 0.170105 1.000000 0.670746 0.184998 1.000000 0.667877 0.205139 0.052826 0.703979 0.176147 0.100616 0.703430 0.175323 0.144592 0.702911 0.174500 0.184448 0.702881 0.174316 0.220337 0.703888 0.175171 0.252411 0.704956 0.175995 0.281586 0.705994 0.176788 0.308807 0.707001 0.177521 0.335236 0.708038 0.178314 0.361450 0.709045 0.178955 0.388000 0.709930 0.179657 0.415863 0.710907 0.180328 0.445160 0.711823 0.180908 0.476562 0.712708 0.181519 0.510284 0.713593 0.182007 0.548065 0.714417 0.182343 0.589630 0.715302 0.182617 0.633575 0.716095 0.182800 0.678741 0.716949 0.182922 0.723297 0.717468 0.182709 0.764679 0.716705 0.181030 0.802979 0.716095 0.179413 0.837463 0.715393 0.177856 0.868225 0.715057 0.176483 0.895660 0.714630 0.175140 0.920166 0.714508 0.173920 0.942047 0.714172 0.172852 0.961792 0.714081 0.171906 0.979675 0.714050 0.171082 0.996033 0.713898 0.170319 1.000000 0.709808 0.185486 1.000000 0.705475 0.205566 0.064026 0.745483 0.175751 0.110687 0.744751 0.175110 0.153412 0.744232 0.174194 0.192108 0.744385 0.174316 0.226654 0.745300 0.175110 0.257751 0.746246 0.175903 0.286102 0.747101 0.176636 0.312836 0.747986 0.177307 0.338776 0.748871 0.178040 0.364685 0.749756 0.178650 0.391174 0.750580 0.179260 0.418732 0.751343 0.179871 0.447968 0.752136 0.180359 0.479462 0.752869 0.180725 0.513306 0.753632 0.181030 0.551361 0.754364 0.181213 0.592896 0.755096 0.181335 0.636841 0.755859 0.181396 0.681549 0.756561 0.181366 0.725861 0.757263 0.181335 0.767944 0.757629 0.180786 0.805634 0.756775 0.179169 0.839600 0.756073 0.177582 0.869873 0.755585 0.176239 0.896973 0.755249 0.174957 0.921112 0.754944 0.173859 0.942749 0.754578 0.172913 0.962311 0.754333 0.172119 0.980042 0.754242 0.171356 0.996216 0.754150 0.170776 1.000000 0.748535 0.186157 1.000000 0.742310 0.206360 0.075317 0.785706 0.175568 0.120575 0.784912 0.174591 0.161835 0.784241 0.173981 0.199280 0.784607 0.174286 0.232544 0.785400 0.174988 0.262665 0.786163 0.175690 0.290283 0.786926 0.176422 0.316467 0.787659 0.177032 0.341949 0.788361 0.177643 0.367493 0.789062 0.178284 0.393829 0.789703 0.178802 0.421539 0.790405 0.179169 0.450775 0.791046 0.179474 0.482361 0.791687 0.179626 0.516571 0.792328 0.179779 0.554626 0.792938 0.179840 0.596283 0.793579 0.179779 0.639893 0.794189 0.179749 0.684265 0.794830 0.179657 0.728149 0.795441 0.179596 0.769989 0.796051 0.179474 0.808228 0.796234 0.178894 0.841644 0.795502 0.177399 0.871490 0.794769 0.176117 0.898193 0.794342 0.174988 0.922058 0.793884 0.174042 0.943420 0.793579 0.173218 0.962769 0.793335 0.172485 0.980316 0.792877 0.171967 0.996399 0.792847 0.171570 1.000000 0.785767 0.187347 1.000000 0.777954 0.207611 0.086243 0.823914 0.175201 0.130157 0.823029 0.174194 0.169861 0.822296 0.173553 0.205994 0.822815 0.174133 0.238037 0.823456 0.174835 0.267090 0.824066 0.175507 0.294067 0.824677 0.176147 0.319611 0.825287 0.176727 0.344818 0.825806 0.177246 0.370209 0.826355 0.177612 0.396515 0.826874 0.177887 0.424316 0.827454 0.178131 0.453766 0.828003 0.178284 0.485474 0.828522 0.178345 0.519928 0.829071 0.178314 0.558075 0.829590 0.178284 0.599640 0.830109 0.178192 0.643005 0.830658 0.178131 0.687103 0.831116 0.177979 0.730347 0.831635 0.177887 0.771637 0.832153 0.177826 0.809845 0.832642 0.177795 0.843567 0.832733 0.177399 0.872955 0.831970 0.176239 0.899292 0.831390 0.175232 0.922852 0.831024 0.174408 0.944031 0.830414 0.173767 0.963196 0.830048 0.173309 0.980560 0.829712 0.173035 0.996490 0.829407 0.172852 1.000000 0.821167 0.188965 1.000000 0.812012 0.209564 0.096741 0.859406 0.174774 0.139069 0.858490 0.173889 0.177399 0.857819 0.173370 0.212128 0.858337 0.174011 0.242981 0.858856 0.174622 0.271027 0.859314 0.175262 0.297150 0.859741 0.175751 0.322449 0.860199 0.176178 0.347626 0.860657 0.176453 0.373016 0.861053 0.176666 0.399445 0.861511 0.176819 0.427246 0.861938 0.176849 0.456879 0.862396 0.176849 0.488586 0.862793 0.176819 0.523071 0.863251 0.176758 0.561462 0.863647 0.176697 0.602783 0.864044 0.176544 0.645966 0.864471 0.176514 0.689697 0.864868 0.176453 0.732513 0.865265 0.176422 0.773224 0.865692 0.176422 0.810699 0.866058 0.176544 0.844452 0.866455 0.176666 0.874329 0.866577 0.176575 0.900330 0.865814 0.175781 0.923584 0.865265 0.175171 0.944550 0.864746 0.174805 0.963501 0.864288 0.174591 0.980743 0.863953 0.174591 0.996613 0.863495 0.174896 1.000000 0.854584 0.192352 1.000000 0.844299 0.213989 0.106537 0.891754 0.174530 0.147278 0.890747 0.173615 0.184174 0.890289 0.173218 0.217346 0.890625 0.173828 0.247070 0.890991 0.174377 0.274506 0.891327 0.174774 0.300385 0.891693 0.175079 0.325592 0.892029 0.175262 0.350586 0.892395 0.175446 0.375824 0.892700 0.175507 0.402313 0.893066 0.175507 0.430176 0.893372 0.175507 0.459808 0.893707 0.175446 0.491791 0.894012 0.175385 0.526489 0.894409 0.175201 0.564819 0.894653 0.175140 0.606049 0.895050 0.175110 0.648895 0.895294 0.175079 0.692139 0.895599 0.175079 0.734436 0.895935 0.175201 0.774750 0.896240 0.175385 0.811737 0.896515 0.175598 0.844940 0.896820 0.175964 0.874664 0.897095 0.176422 0.901215 0.897308 0.176788 0.924255 0.896545 0.176483 0.944977 0.895935 0.176392 0.963806 0.895508 0.176605 0.980957 0.895264 0.177856 0.996643 0.894836 0.179596 1.000000 0.885071 0.197418 1.000000 0.873688 0.219452 0.115326 0.920563 0.174011 0.154480 0.919525 0.173126 0.190094 0.919220 0.173065 0.222168 0.919495 0.173462 0.251282 0.919769 0.173767 0.278351 0.919983 0.174011 0.303802 0.920227 0.174164 0.328613 0.920471 0.174255 0.353577 0.920776 0.174255 0.378876 0.921021 0.174255 0.405334 0.921234 0.174164 0.433258 0.921509 0.174103 0.462921 0.921753 0.173920 0.494873 0.921997 0.173889 0.529633 0.922211 0.173859 0.567963 0.922455 0.173798 0.609161 0.922699 0.173828 0.651703 0.922913 0.173981 0.694489 0.923126 0.174133 0.736420 0.923370 0.174377 0.776093 0.923584 0.174683 0.812592 0.923798 0.175140 0.845398 0.924011 0.175720 0.874786 0.924194 0.176453 0.901093 0.924408 0.177338 0.924774 0.924622 0.178375 0.945465 0.924011 0.179596 0.964050 0.923676 0.181244 0.981018 0.923126 0.183136 0.996613 0.922760 0.185364 1.000000 0.912323 0.203461 1.000000 0.900085 0.225891 0.123077 0.946136 0.173767 0.161011 0.945129 0.172699 0.195618 0.944977 0.172546 0.227051 0.945160 0.172791 0.255402 0.945343 0.172974 0.281952 0.945496 0.173065 0.307190 0.945679 0.173035 0.331879 0.945892 0.173035 0.356567 0.946075 0.173004 0.381775 0.946198 0.172943 0.408203 0.946381 0.172760 0.436218 0.946594 0.172729 0.465942 0.946777 0.172699 0.497925 0.946930 0.172638 0.532745 0.947083 0.172668 0.571075 0.947266 0.172791 0.612000 0.947418 0.172974 0.654266 0.947601 0.173218 0.696533 0.947723 0.173523 0.738190 0.947845 0.173981 0.777313 0.948029 0.174561 0.813141 0.948151 0.175323 0.845520 0.948273 0.176147 0.874603 0.948425 0.177216 0.901001 0.948608 0.179413 0.924500 0.948853 0.181793 0.945679 0.949066 0.184631 0.964142 0.948486 0.187012 0.980957 0.947968 0.189392 0.996460 0.947632 0.192169 1.000000 0.936829 0.210449 1.000000 0.923767 0.233093 0.130432 0.968994 0.173065 0.167389 0.968018 0.171722 0.201263 0.967987 0.171844 0.231842 0.968140 0.171936 0.259735 0.968292 0.171936 0.285583 0.968384 0.171936 0.310394 0.968475 0.171906 0.334839 0.968628 0.171783 0.359528 0.968781 0.171722 0.384766 0.968872 0.171631 0.411163 0.969025 0.171570 0.439056 0.969116 0.171509 0.468872 0.969238 0.171570 0.500702 0.969330 0.171692 0.535797 0.969421 0.171844 0.574005 0.969513 0.172119 0.614716 0.969635 0.172424 0.656494 0.969757 0.172852 0.698608 0.969849 0.173462 0.739380 0.969910 0.174164 0.778137 0.970032 0.175049 0.813690 0.970093 0.176056 0.845947 0.970215 0.178253 0.874908 0.970337 0.180695 0.900757 0.970459 0.183472 0.923828 0.970459 0.186554 0.944885 0.970551 0.189850 0.963867 0.970642 0.193451 0.980835 0.970337 0.196594 0.996277 0.969727 0.199799 1.000000 0.958832 0.218048 1.000000 0.945343 0.240845 0.137756 0.989594 0.172150 0.173767 0.988739 0.170868 0.206757 0.988831 0.170868 0.236359 0.988892 0.170868 0.263550 0.988983 0.170837 0.289215 0.989044 0.170715 0.313721 0.989105 0.170654 0.338074 0.989197 0.170563 0.362488 0.989288 0.170532 0.387543 0.989349 0.170502 0.413971 0.989441 0.170532 0.441864 0.989471 0.170654 0.471802 0.989563 0.170807 0.503510 0.989624 0.171051 0.538513 0.989655 0.171356 0.576538 0.989716 0.171844 0.617004 0.989746 0.172394 0.658508 0.989838 0.173096 0.700256 0.989838 0.173981 0.740631 0.989868 0.175049 0.779327 0.989960 0.177094 0.814514 0.989990 0.179596 0.846161 0.990021 0.182312 0.874481 0.990051 0.185425 0.900024 0.990051 0.188751 0.923035 0.990082 0.192261 0.943939 0.990082 0.196045 0.962799 0.990051 0.199982 0.980225 0.990051 0.204071 0.996063 0.989716 0.208008 1.000000 0.978760 0.226135 1.000000 0.964935 0.248993 0.156830 1.000000 0.182007 0.190582 1.000000 0.180756 0.221741 1.000000 0.180786 0.249695 1.000000 0.180725 0.275818 1.000000 0.180725 0.300232 1.000000 0.180664 0.323944 1.000000 0.180695 0.347290 1.000000 0.180695 0.370758 1.000000 0.180786 0.395264 1.000000 0.180847 0.420990 1.000000 0.181122 0.447998 1.000000 0.181427 0.477112 1.000000 0.181793 0.508179 1.000000 0.182220 0.542114 1.000000 0.182831 0.579254 1.000000 0.183502 0.618378 1.000000 0.184448 0.658661 1.000000 0.185455 0.699402 1.000000 0.187500 0.738800 1.000000 0.189972 0.775696 1.000000 0.192657 0.809326 1.000000 0.195648 0.839935 1.000000 0.198853 0.867432 1.000000 0.202332 0.892395 1.000000 0.206024 0.915070 1.000000 0.209808 0.935638 1.000000 0.213867 0.954346 1.000000 0.217987 0.971771 1.000000 0.222107 0.987885 1.000000 0.226440 1.000000 0.997131 0.234497 1.000000 0.983124 0.257721 0.189026 1.000000 0.205322 0.220612 1.000000 0.205170 0.248871 1.000000 0.205109 0.274414 1.000000 0.205017 0.298218 1.000000 0.204987 0.320679 1.000000 0.204956 0.342499 1.000000 0.204987 0.364227 1.000000 0.205048 0.386322 1.000000 0.205261 0.409058 1.000000 0.205475 0.433167 1.000000 0.205780 0.458557 1.000000 0.206177 0.485870 1.000000 0.206757 0.515167 1.000000 0.207397 0.547546 1.000000 0.208191 0.582642 1.000000 0.209167 0.620270 1.000000 0.211151 0.658295 1.000000 0.213409 0.696259 1.000000 0.216003 0.732727 1.000000 0.218842 0.767303 1.000000 0.222015 0.799103 1.000000 0.225372 0.827789 1.000000 0.228882 0.854126 1.000000 0.232605 0.877930 1.000000 0.236511 0.899750 1.000000 0.240417 0.919800 1.000000 0.244568 0.938263 1.000000 0.248749 0.955170 1.000000 0.252930 0.971100 1.000000 0.257599 0.986023 1.000000 0.263214 1.000000 1.000000 0.269592 0.000000 0.001312 0.138611 0.048767 0.003418 0.143494 0.096252 0.006592 0.148315 0.141052 0.010162 0.153870 0.181580 0.012970 0.158752 0.217773 0.015472 0.163361 0.249969 0.018219 0.168182 0.279083 0.020966 0.172760 0.305847 0.023499 0.176941 0.331177 0.025330 0.179779 0.355743 0.025848 0.181000 0.380341 0.026398 0.182068 0.405670 0.026764 0.183167 0.432343 0.027008 0.183990 0.460938 0.027100 0.184814 0.492035 0.027069 0.185303 0.526642 0.026764 0.185638 0.566223 0.026337 0.185791 0.609802 0.025818 0.185822 0.656036 0.025177 0.185638 0.703278 0.024628 0.185516 0.749756 0.024200 0.185364 0.793640 0.023834 0.185059 0.833405 0.023712 0.185181 0.868988 0.023773 0.185364 0.900421 0.024139 0.185516 0.928192 0.024689 0.185822 0.952789 0.025391 0.186249 0.974701 0.026276 0.186676 0.994385 0.027130 0.186890 1.000000 0.046539 0.199585 1.000000 0.073578 0.217407 0.000671 0.042206 0.148468 0.048645 0.043945 0.152405 0.096130 0.047455 0.158112 0.140930 0.051147 0.164062 0.181732 0.054443 0.169495 0.217712 0.056610 0.173737 0.249786 0.058899 0.177856 0.278625 0.060547 0.180695 0.305115 0.060974 0.181824 0.330109 0.061432 0.183044 0.354553 0.061798 0.184113 0.379059 0.062134 0.185089 0.404388 0.062439 0.186066 0.431122 0.062592 0.186829 0.459839 0.062622 0.187469 0.490967 0.062561 0.187958 0.525543 0.062256 0.188263 0.565063 0.061768 0.188354 0.608612 0.061218 0.188141 0.654846 0.060577 0.187897 0.702057 0.060059 0.187683 0.748535 0.059570 0.187408 0.792786 0.059326 0.187317 0.832886 0.059296 0.187317 0.868439 0.059448 0.187286 0.899872 0.059845 0.187500 0.927612 0.060547 0.187683 0.952179 0.061127 0.187805 0.974030 0.061768 0.187958 0.993591 0.062592 0.188110 1.000000 0.080597 0.200653 1.000000 0.106995 0.219513 0.002350 0.083618 0.159607 0.050140 0.085419 0.163971 0.096222 0.087555 0.168457 0.140869 0.090942 0.174103 0.181854 0.094116 0.179169 0.217621 0.095398 0.181793 0.249146 0.095612 0.182831 0.277588 0.095886 0.183838 0.303864 0.096161 0.184906 0.328796 0.096497 0.186035 0.353180 0.096771 0.186951 0.377808 0.097076 0.187988 0.403229 0.097260 0.188873 0.430023 0.097321 0.189484 0.458740 0.097321 0.190063 0.489899 0.097168 0.190521 0.524445 0.096863 0.190674 0.563934 0.096436 0.190674 0.607452 0.095886 0.190491 0.653625 0.095306 0.190186 0.701263 0.094849 0.189819 0.748230 0.094452 0.189545 0.792603 0.094238 0.189240 0.832703 0.094299 0.189117 0.868256 0.094543 0.189117 0.899597 0.094849 0.189026 0.927216 0.095184 0.188965 0.951630 0.095734 0.189026 0.973419 0.096497 0.189087 0.992920 0.097351 0.189331 1.000000 0.113983 0.201843 1.000000 0.139801 0.221588 0.004211 0.124146 0.171356 0.051910 0.125732 0.175446 0.097565 0.127075 0.178864 0.140778 0.128510 0.181915 0.181335 0.129913 0.184143 0.216553 0.130005 0.184998 0.247894 0.130096 0.185974 0.276184 0.130249 0.186829 0.302429 0.130432 0.187897 0.327515 0.130646 0.188812 0.352020 0.130859 0.189789 0.376678 0.131073 0.190643 0.402130 0.131195 0.191406 0.428894 0.131256 0.192047 0.457672 0.131195 0.192535 0.488831 0.131073 0.192902 0.523376 0.130737 0.192963 0.562805 0.130371 0.192871 0.606750 0.129822 0.192535 0.653534 0.129364 0.192139 0.701447 0.128906 0.191864 0.748596 0.128601 0.191406 0.792969 0.128448 0.191162 0.832947 0.128418 0.190674 0.868256 0.128448 0.190460 0.899414 0.128723 0.190277 0.926910 0.129211 0.190277 0.951233 0.129791 0.190186 0.972839 0.130585 0.190216 0.992249 0.131378 0.190247 1.000000 0.146637 0.202515 1.000000 0.171875 0.223602 0.006165 0.162933 0.182129 0.053619 0.163727 0.184723 0.098480 0.163452 0.185211 0.140533 0.163116 0.185822 0.179871 0.163483 0.187103 0.215118 0.163605 0.188080 0.246368 0.163605 0.188904 0.274841 0.163605 0.189728 0.301208 0.163727 0.190613 0.326355 0.163910 0.191559 0.350830 0.164032 0.192383 0.375519 0.164215 0.193146 0.400970 0.164337 0.193817 0.427795 0.164368 0.194366 0.456604 0.164368 0.194794 0.487762 0.164215 0.195038 0.522705 0.164001 0.195038 0.562805 0.163605 0.194855 0.607178 0.163116 0.194489 0.654266 0.162689 0.194092 0.702484 0.162354 0.193573 0.749542 0.161957 0.192963 0.793701 0.161560 0.192352 0.833435 0.161530 0.192047 0.868561 0.161652 0.191650 0.899506 0.161957 0.191284 0.926788 0.162476 0.191284 0.950897 0.163055 0.191132 0.972382 0.163818 0.191193 0.991638 0.164642 0.191193 1.000000 0.178497 0.203278 1.000000 0.203125 0.225616 0.006897 0.197998 0.188171 0.053558 0.197632 0.188690 0.098053 0.197144 0.189178 0.139801 0.196808 0.189728 0.178497 0.196411 0.190277 0.213898 0.196411 0.191101 0.245300 0.196289 0.191833 0.273773 0.196228 0.192535 0.300140 0.196289 0.193359 0.325256 0.196411 0.194153 0.349762 0.196472 0.194824 0.374420 0.196594 0.195526 0.399872 0.196747 0.196167 0.426697 0.196869 0.196625 0.455902 0.196808 0.196991 0.487701 0.196655 0.197113 0.523132 0.196442 0.196991 0.563721 0.196167 0.196747 0.608459 0.195740 0.196289 0.655792 0.195282 0.195618 0.703888 0.194641 0.194885 0.750824 0.194092 0.194092 0.794800 0.193970 0.193481 0.834290 0.194000 0.192993 0.869110 0.194031 0.192596 0.899811 0.194458 0.192383 0.926819 0.194946 0.192200 0.950745 0.195618 0.192169 0.972046 0.196350 0.192169 0.991211 0.197174 0.192200 1.000000 0.209808 0.204224 1.000000 0.233398 0.227417 0.005524 0.230164 0.191284 0.051849 0.229645 0.191742 0.096222 0.229095 0.192139 0.138336 0.228668 0.192627 0.177246 0.228271 0.193054 0.213135 0.228729 0.194336 0.245178 0.229095 0.195557 0.273651 0.229004 0.196198 0.300018 0.229065 0.196930 0.325134 0.229126 0.197662 0.349640 0.229218 0.198273 0.374298 0.229370 0.198914 0.400116 0.229492 0.199432 0.427521 0.229553 0.199829 0.457153 0.229645 0.200043 0.489380 0.229553 0.200073 0.525391 0.229370 0.199951 0.566437 0.228943 0.199463 0.611328 0.228302 0.198700 0.658813 0.227783 0.197906 0.706970 0.227325 0.197113 0.753784 0.226837 0.196320 0.797394 0.226746 0.195618 0.836426 0.226715 0.195129 0.870880 0.226929 0.194672 0.901215 0.227234 0.194458 0.927887 0.227753 0.194244 0.951508 0.228455 0.194153 0.972565 0.229034 0.194061 0.991455 0.229828 0.194061 1.000000 0.241486 0.206177 1.000000 0.263031 0.229065 0.003632 0.261353 0.194305 0.050232 0.260712 0.194611 0.094910 0.260132 0.194946 0.137054 0.259644 0.195312 0.175964 0.259216 0.195679 0.211761 0.259430 0.196716 0.244385 0.260437 0.198486 0.273499 0.260956 0.199707 0.299896 0.260986 0.200348 0.325012 0.261139 0.201019 0.349854 0.261230 0.201538 0.375092 0.261383 0.202118 0.401337 0.261536 0.202515 0.429138 0.261658 0.202850 0.459167 0.261719 0.203033 0.491821 0.261627 0.202850 0.528168 0.261200 0.202362 0.569611 0.260712 0.201691 0.614868 0.260223 0.200897 0.662506 0.259766 0.200073 0.710602 0.259247 0.199219 0.757141 0.258911 0.198395 0.800354 0.258789 0.197662 0.838837 0.258728 0.197113 0.872772 0.258972 0.196716 0.902649 0.259247 0.196350 0.929016 0.259827 0.196167 0.952301 0.260315 0.196045 0.973083 0.260986 0.195923 0.991791 0.261719 0.195862 1.000000 0.272614 0.208099 1.000000 0.291992 0.230682 0.002258 0.291748 0.197052 0.048889 0.291107 0.197327 0.093597 0.290497 0.197540 0.135742 0.290009 0.197815 0.174683 0.289520 0.198151 0.210388 0.289673 0.199005 0.243042 0.290649 0.200684 0.272644 0.291656 0.202271 0.300171 0.292450 0.203583 0.325836 0.292572 0.204193 0.351105 0.292755 0.204651 0.376709 0.292938 0.205139 0.403259 0.293152 0.205475 0.431458 0.293243 0.205597 0.461700 0.293121 0.205475 0.494629 0.292877 0.205109 0.531555 0.292633 0.204559 0.573517 0.292206 0.203857 0.619049 0.291687 0.202972 0.666748 0.291199 0.202087 0.714691 0.290894 0.201202 0.760803 0.290558 0.200348 0.803467 0.290314 0.199646 0.841309 0.290314 0.199005 0.874817 0.290527 0.198578 0.904236 0.290985 0.198242 0.930145 0.291321 0.197937 0.953094 0.291809 0.197784 0.973633 0.292572 0.197662 0.992065 0.293243 0.197510 1.000000 0.303009 0.209930 1.000000 0.320435 0.232178 0.000854 0.321808 0.199707 0.047516 0.321136 0.199829 0.092255 0.320526 0.200012 0.134460 0.320038 0.200256 0.173431 0.319641 0.200439 0.208984 0.319672 0.201080 0.242157 0.320648 0.202698 0.272552 0.321716 0.204285 0.300720 0.322815 0.205841 0.327515 0.323822 0.207184 0.353088 0.324066 0.207611 0.378967 0.324280 0.207916 0.405701 0.324341 0.207947 0.434143 0.324371 0.207916 0.464783 0.324310 0.207642 0.498138 0.324097 0.207245 0.535645 0.323853 0.206635 0.578064 0.323486 0.205841 0.623840 0.322937 0.204895 0.671509 0.322632 0.204041 0.719025 0.322174 0.203064 0.764740 0.321960 0.202179 0.806702 0.321899 0.201447 0.843964 0.321869 0.200836 0.876831 0.322113 0.200348 0.905792 0.322266 0.199982 0.931274 0.322754 0.199707 0.953918 0.323212 0.199463 0.974121 0.323822 0.199280 0.992401 0.324463 0.199127 1.000000 0.333374 0.211578 1.000000 0.348785 0.233551 0.000000 0.351318 0.202057 0.046173 0.351105 0.202209 0.090912 0.350586 0.202332 0.133118 0.350159 0.202454 0.172699 0.349762 0.202576 0.209167 0.349701 0.203003 0.242798 0.350769 0.204620 0.273376 0.351868 0.206085 0.301880 0.353058 0.207611 0.328979 0.354187 0.208893 0.355591 0.355225 0.210083 0.381592 0.355408 0.210205 0.408691 0.355469 0.210144 0.437469 0.355560 0.210052 0.468506 0.355560 0.209747 0.502167 0.355438 0.209259 0.540344 0.355133 0.208557 0.583069 0.354828 0.207733 0.628998 0.354401 0.206787 0.676514 0.354004 0.205841 0.723663 0.353638 0.204834 0.768768 0.353333 0.203979 0.810089 0.353241 0.203186 0.846619 0.353271 0.202545 0.878876 0.353546 0.202026 0.907288 0.353851 0.201599 0.932404 0.354126 0.201263 0.954712 0.354614 0.201019 0.974640 0.355072 0.200775 0.992706 0.355682 0.200592 1.000000 0.363617 0.213135 1.000000 0.377045 0.234802 0.000000 0.380310 0.204285 0.044739 0.381378 0.204376 0.090179 0.380859 0.204376 0.133667 0.380432 0.204437 0.173889 0.380066 0.204468 0.210602 0.380127 0.204803 0.244507 0.381226 0.206299 0.275177 0.382355 0.207642 0.303619 0.383392 0.208832 0.330719 0.384430 0.209991 0.357605 0.385559 0.211151 0.384888 0.386780 0.212280 0.412231 0.386963 0.212250 0.441284 0.387024 0.212036 0.472687 0.387085 0.211700 0.506775 0.386993 0.211151 0.545441 0.386780 0.210419 0.588501 0.386414 0.209503 0.634491 0.386047 0.208527 0.681732 0.385620 0.207520 0.728424 0.385254 0.206543 0.772858 0.385132 0.205597 0.813354 0.385101 0.204773 0.849243 0.385010 0.204132 0.880859 0.385162 0.203583 0.908813 0.385437 0.203156 0.933472 0.385834 0.202698 0.955444 0.386108 0.202423 0.975159 0.386475 0.202118 0.992950 0.387085 0.201904 1.000000 0.393982 0.214508 1.000000 0.405731 0.235931 0.000000 0.410339 0.206482 0.045441 0.411987 0.206329 0.092041 0.411530 0.206177 0.135986 0.411163 0.206116 0.176575 0.410889 0.206146 0.213379 0.411011 0.206360 0.246887 0.411987 0.207520 0.277435 0.413025 0.208710 0.305908 0.414124 0.209839 0.333130 0.415222 0.210907 0.360138 0.416443 0.212036 0.387543 0.417633 0.213074 0.416168 0.418762 0.214081 0.445618 0.419037 0.213959 0.477356 0.419067 0.213531 0.511780 0.419006 0.212921 0.550934 0.418701 0.212128 0.594208 0.418457 0.211182 0.640137 0.417999 0.210114 0.687103 0.417664 0.209076 0.733215 0.417358 0.208069 0.776855 0.417145 0.207123 0.816620 0.417084 0.206299 0.851715 0.417084 0.205566 0.882751 0.417114 0.204987 0.910217 0.417450 0.204559 0.934509 0.417633 0.204071 0.956146 0.417969 0.203766 0.975555 0.418365 0.203369 0.993164 0.418762 0.203033 1.000000 0.424652 0.215698 1.000000 0.434570 0.236664 0.000000 0.443268 0.208252 0.048401 0.443176 0.207977 0.095551 0.442780 0.207733 0.139648 0.442474 0.207458 0.179993 0.442108 0.207245 0.216492 0.442261 0.207336 0.249878 0.443298 0.208466 0.280334 0.444366 0.209564 0.308716 0.445526 0.210663 0.335938 0.446655 0.211700 0.363068 0.447845 0.212738 0.390686 0.449097 0.213776 0.419495 0.450256 0.214752 0.450287 0.451538 0.215729 0.482208 0.451569 0.215271 0.517059 0.451538 0.214600 0.556671 0.451233 0.213715 0.600037 0.450958 0.212708 0.645874 0.450592 0.211639 0.692413 0.450256 0.210571 0.737915 0.449890 0.209534 0.780792 0.449738 0.208557 0.819641 0.449677 0.207672 0.854095 0.449585 0.206940 0.884552 0.449677 0.206329 0.911499 0.449921 0.205811 0.935394 0.449982 0.205353 0.956726 0.450317 0.204865 0.975983 0.450653 0.204437 0.993439 0.450806 0.203857 1.000000 0.455750 0.216431 1.000000 0.464020 0.237061 0.003632 0.475586 0.209595 0.053101 0.475159 0.209259 0.100189 0.474701 0.208801 0.144043 0.474274 0.208313 0.184265 0.474030 0.207977 0.220612 0.474335 0.208160 0.253693 0.475433 0.209259 0.283783 0.476501 0.210297 0.312103 0.477722 0.211365 0.339264 0.478882 0.212341 0.366394 0.480072 0.213348 0.394135 0.481262 0.214264 0.423218 0.482452 0.215240 0.454163 0.483673 0.216095 0.487335 0.484802 0.216858 0.522644 0.484680 0.216095 0.562500 0.484436 0.215210 0.605957 0.484131 0.214142 0.651489 0.483826 0.213104 0.697540 0.483490 0.211914 0.742401 0.483154 0.210846 0.784485 0.482941 0.209869 0.822540 0.482788 0.208954 0.856293 0.482697 0.208191 0.886169 0.482758 0.207581 0.912659 0.482849 0.206909 0.936279 0.483093 0.206360 0.957336 0.483215 0.205658 0.976410 0.483490 0.205017 0.993683 0.483826 0.204254 1.000000 0.487671 0.216797 1.000000 0.493988 0.237183 0.009155 0.508209 0.210510 0.058746 0.507751 0.209930 0.105957 0.507324 0.209412 0.149658 0.507019 0.208893 0.189453 0.506866 0.208496 0.225281 0.507385 0.208801 0.257843 0.508453 0.209869 0.287689 0.509613 0.210846 0.315674 0.510834 0.211853 0.342743 0.511963 0.212830 0.369904 0.513214 0.213715 0.397675 0.514404 0.214661 0.426910 0.515656 0.215515 0.458130 0.516876 0.216370 0.491638 0.518127 0.217194 0.528259 0.518982 0.217560 0.568451 0.518738 0.216553 0.611755 0.518433 0.215485 0.656982 0.517944 0.214294 0.702484 0.517609 0.213226 0.746521 0.517334 0.212067 0.787903 0.517090 0.211090 0.825104 0.516785 0.210114 0.858215 0.516632 0.209290 0.887665 0.516785 0.208557 0.913757 0.516724 0.207703 0.937073 0.516785 0.206879 0.957977 0.517090 0.206055 0.976776 0.517273 0.205231 0.993927 0.517548 0.204346 1.000000 0.520538 0.217041 1.000000 0.525360 0.237122 0.016144 0.543335 0.211090 0.065796 0.542877 0.210419 0.112823 0.542511 0.209778 0.156097 0.542236 0.209259 0.195160 0.542145 0.208801 0.230469 0.542847 0.209259 0.262451 0.544006 0.210297 0.291718 0.545258 0.211243 0.319550 0.546478 0.212219 0.346405 0.547699 0.213074 0.373535 0.548981 0.213989 0.401489 0.550232 0.214844 0.430786 0.551422 0.215607 0.462158 0.552673 0.216461 0.495758 0.553925 0.217194 0.533020 0.555145 0.217926 0.574158 0.555664 0.217834 0.617310 0.555237 0.216736 0.662140 0.554688 0.215515 0.707001 0.554321 0.214325 0.750305 0.553925 0.213196 0.790863 0.553528 0.212158 0.827515 0.553284 0.211151 0.860107 0.553131 0.210052 0.889099 0.553040 0.209076 0.914917 0.553101 0.208099 0.937958 0.553131 0.207123 0.958557 0.553345 0.206146 0.977234 0.553436 0.205261 0.994202 0.553680 0.204285 1.000000 0.555542 0.217072 1.000000 0.558929 0.237030 0.024323 0.581238 0.211273 0.074066 0.580750 0.210663 0.120605 0.580353 0.209961 0.163208 0.580139 0.209442 0.201324 0.580017 0.209015 0.235931 0.580963 0.209625 0.267212 0.582153 0.210602 0.296021 0.583435 0.211456 0.323486 0.584656 0.212341 0.350250 0.585876 0.213196 0.377258 0.587158 0.214020 0.405151 0.588348 0.214783 0.434540 0.589569 0.215576 0.466003 0.590790 0.216339 0.499756 0.591919 0.217072 0.537292 0.593140 0.217743 0.578979 0.594299 0.218353 0.622559 0.594330 0.217834 0.666840 0.593781 0.216614 0.711090 0.593231 0.215393 0.753845 0.592590 0.214142 0.793793 0.592255 0.212860 0.829865 0.591919 0.211609 0.862000 0.591766 0.210419 0.890564 0.591644 0.209259 0.916016 0.591461 0.208160 0.938751 0.591644 0.207123 0.959167 0.591644 0.206055 0.977600 0.591827 0.205109 0.994446 0.592041 0.204163 1.000000 0.592773 0.217102 1.000000 0.594330 0.236938 0.033844 0.621216 0.211426 0.083099 0.620697 0.210663 0.129028 0.620331 0.209961 0.170624 0.620026 0.209503 0.207611 0.619934 0.208954 0.241516 0.621094 0.209839 0.272064 0.622284 0.210724 0.300293 0.623505 0.211548 0.327393 0.624695 0.212402 0.354034 0.625824 0.213165 0.380920 0.627045 0.213989 0.408813 0.628174 0.214722 0.438263 0.629333 0.215424 0.469788 0.630432 0.216125 0.503510 0.631561 0.216736 0.541168 0.632660 0.217407 0.582703 0.633698 0.217987 0.626831 0.634735 0.218506 0.671173 0.634338 0.217560 0.715027 0.633575 0.216064 0.757263 0.632965 0.214600 0.796661 0.632416 0.213165 0.832153 0.632111 0.211761 0.863831 0.631866 0.210480 0.891968 0.631714 0.209229 0.917114 0.631531 0.208099 0.939575 0.631622 0.206970 0.959747 0.631683 0.205933 0.977997 0.631561 0.204956 0.994720 0.631653 0.204071 1.000000 0.631226 0.217163 1.000000 0.630951 0.236938 0.044220 0.662506 0.211395 0.092804 0.661987 0.210541 0.137787 0.661560 0.209930 0.178253 0.661194 0.209320 0.214142 0.661255 0.209045 0.247162 0.662384 0.209930 0.276825 0.663513 0.210754 0.304657 0.664642 0.211548 0.331146 0.665771 0.212311 0.357574 0.666840 0.213104 0.384430 0.667938 0.213776 0.412354 0.669006 0.214508 0.441772 0.670044 0.215118 0.473145 0.671112 0.215820 0.506897 0.671997 0.216370 0.544464 0.673004 0.216919 0.585968 0.673920 0.217346 0.630005 0.674866 0.217682 0.675415 0.675781 0.217957 0.718933 0.675049 0.216339 0.760651 0.674347 0.214722 0.799500 0.673706 0.213165 0.834412 0.673248 0.211731 0.865601 0.672852 0.210358 0.893372 0.672668 0.209076 0.918182 0.672394 0.207916 0.940369 0.672455 0.206818 0.960297 0.672302 0.205811 0.978424 0.672302 0.204865 0.994904 0.672333 0.204041 1.000000 0.670349 0.217377 1.000000 0.668152 0.237091 0.055206 0.704315 0.211243 0.102844 0.703705 0.210510 0.146637 0.703278 0.209747 0.185760 0.702850 0.209076 0.220703 0.703003 0.209076 0.252533 0.704102 0.209900 0.281403 0.705109 0.210632 0.308716 0.706146 0.211426 0.334930 0.707153 0.212158 0.361084 0.708099 0.212860 0.387787 0.709106 0.213501 0.415466 0.709991 0.214172 0.444855 0.710876 0.214752 0.476166 0.711792 0.215332 0.509949 0.712646 0.215759 0.547821 0.713501 0.216095 0.589264 0.714325 0.216370 0.633209 0.715118 0.216461 0.678223 0.715973 0.216522 0.722717 0.716614 0.216339 0.763977 0.715759 0.214661 0.802277 0.715118 0.213043 0.836609 0.714539 0.211548 0.867340 0.714050 0.210144 0.894714 0.713745 0.208893 0.919220 0.713409 0.207733 0.941101 0.713348 0.206696 0.960846 0.713135 0.205780 0.978699 0.712952 0.204956 0.995087 0.713013 0.204193 1.000000 0.709656 0.217834 1.000000 0.705597 0.237579 0.066345 0.745728 0.211029 0.112915 0.745056 0.210266 0.155365 0.744537 0.209442 0.192963 0.744019 0.208893 0.226807 0.744385 0.209045 0.257629 0.745270 0.209808 0.285950 0.746185 0.210510 0.312653 0.747040 0.211273 0.338440 0.747925 0.211884 0.364227 0.748810 0.212494 0.390778 0.749603 0.213165 0.418274 0.750305 0.213684 0.447662 0.751129 0.214142 0.479126 0.751892 0.214539 0.513153 0.752655 0.214783 0.551025 0.753357 0.214905 0.592590 0.754120 0.214966 0.636353 0.754822 0.215027 0.681061 0.755554 0.214996 0.725342 0.756256 0.214935 0.767242 0.756622 0.214417 0.804901 0.755768 0.212769 0.838776 0.755127 0.211304 0.868988 0.754608 0.209961 0.896027 0.754181 0.208740 0.920135 0.753754 0.207672 0.941803 0.753571 0.206757 0.961334 0.753326 0.205933 0.979034 0.753174 0.205261 0.995300 0.753021 0.204712 1.000000 0.748260 0.218628 1.000000 0.742523 0.238464 0.077576 0.785919 0.210571 0.122772 0.785156 0.209747 0.163727 0.784515 0.209076 0.199860 0.783966 0.208435 0.232666 0.784424 0.208954 0.262451 0.785187 0.209625 0.289978 0.785950 0.210297 0.316010 0.786682 0.210938 0.341492 0.787354 0.211578 0.367126 0.788086 0.212158 0.393341 0.788727 0.212616 0.421082 0.789368 0.212952 0.450531 0.790009 0.213226 0.482178 0.790680 0.213379 0.516388 0.791290 0.213470 0.554474 0.791962 0.213501 0.595856 0.792542 0.213470 0.639526 0.793213 0.213409 0.683899 0.793793 0.213287 0.727631 0.794403 0.213226 0.769440 0.795013 0.213165 0.807465 0.795166 0.212585 0.840759 0.794403 0.211151 0.870605 0.793732 0.209869 0.897247 0.793365 0.208771 0.921051 0.792847 0.207855 0.942444 0.792450 0.207062 0.961792 0.792145 0.206421 0.979340 0.791962 0.205933 0.995453 0.791687 0.205597 1.000000 0.785614 0.219849 1.000000 0.778137 0.239868 0.088470 0.824036 0.210388 0.132202 0.823242 0.209442 0.171478 0.822510 0.208679 0.206177 0.821869 0.208160 0.238068 0.822449 0.208771 0.266846 0.823029 0.209412 0.293640 0.823639 0.210052 0.319122 0.824219 0.210602 0.344360 0.824768 0.211121 0.369843 0.825348 0.211456 0.396179 0.825867 0.211731 0.423859 0.826416 0.211884 0.453522 0.826965 0.211945 0.485229 0.827484 0.212036 0.519623 0.828003 0.211975 0.557861 0.828522 0.211914 0.599121 0.829041 0.211853 0.642670 0.829620 0.211761 0.686493 0.830078 0.211700 0.729706 0.830597 0.211609 0.771027 0.831116 0.211578 0.809052 0.831543 0.211548 0.842651 0.831726 0.211151 0.872009 0.830933 0.210022 0.898315 0.830383 0.209045 0.921844 0.829926 0.208252 0.943054 0.829468 0.207733 0.962158 0.828918 0.207275 0.979584 0.828705 0.207092 0.995544 0.828369 0.207092 1.000000 0.821014 0.221619 1.000000 0.812225 0.242249 0.098877 0.859528 0.209930 0.141052 0.858643 0.209229 0.178650 0.857849 0.208374 0.212067 0.857330 0.207947 0.242706 0.857788 0.208557 0.270599 0.858246 0.209137 0.296875 0.858704 0.209625 0.322144 0.859131 0.210022 0.347076 0.859558 0.210266 0.372559 0.860016 0.210449 0.398956 0.860474 0.210541 0.426819 0.860901 0.210571 0.456573 0.861328 0.210571 0.488251 0.861755 0.210510 0.522858 0.862183 0.210449 0.561127 0.862610 0.210358 0.602386 0.862976 0.210297 0.645630 0.863403 0.210236 0.689117 0.863800 0.210144 0.731842 0.864227 0.210144 0.772461 0.864624 0.210205 0.809967 0.865021 0.210327 0.843567 0.865387 0.210480 0.873352 0.865509 0.210419 0.899323 0.864807 0.209717 0.922638 0.864197 0.209137 0.943512 0.863708 0.208893 0.962494 0.863159 0.208740 0.979736 0.862854 0.208801 0.995636 0.862640 0.209595 1.000000 0.854523 0.225403 1.000000 0.844574 0.246887 0.108398 0.891815 0.209564 0.149017 0.890900 0.208801 0.184998 0.890015 0.207947 0.217163 0.889587 0.207764 0.247009 0.889923 0.208282 0.274292 0.890289 0.208649 0.300140 0.890625 0.208893 0.325134 0.890991 0.209106 0.349976 0.891327 0.209198 0.375427 0.891663 0.209259 0.401825 0.891968 0.209229 0.429718 0.892334 0.209198 0.459564 0.892639 0.209106 0.491394 0.892975 0.209045 0.526093 0.893280 0.208984 0.564423 0.893616 0.208923 0.605560 0.893921 0.208832 0.648438 0.894257 0.208832 0.691498 0.894562 0.208893 0.733826 0.894867 0.208984 0.773956 0.895172 0.209167 0.810852 0.895447 0.209473 0.843994 0.895752 0.209869 0.873779 0.896027 0.210358 0.900208 0.896149 0.210815 0.923248 0.895569 0.210541 0.943970 0.894928 0.210541 0.962799 0.894501 0.211151 0.979950 0.894165 0.212616 0.995636 0.893921 0.214447 1.000000 0.884918 0.230713 1.000000 0.873718 0.252563 0.117004 0.920593 0.209198 0.155945 0.919617 0.208588 0.190582 0.918732 0.207672 0.222076 0.918396 0.207367 0.251038 0.918732 0.207642 0.277863 0.918945 0.207886 0.303467 0.919220 0.207977 0.328247 0.919464 0.208008 0.353027 0.919739 0.208008 0.378448 0.919983 0.207977 0.404755 0.920197 0.207886 0.432800 0.920441 0.207794 0.462585 0.920715 0.207733 0.494415 0.920898 0.207672 0.529297 0.921173 0.207642 0.567657 0.921417 0.207611 0.608582 0.921600 0.207672 0.651123 0.921844 0.207764 0.693909 0.922089 0.207977 0.735687 0.922302 0.208252 0.775269 0.922485 0.208618 0.811493 0.922699 0.209106 0.844391 0.922913 0.209808 0.873779 0.923126 0.210541 0.899994 0.923309 0.211456 0.923798 0.923615 0.212921 0.944427 0.923004 0.214294 0.963013 0.922607 0.215973 0.979980 0.922211 0.218109 0.995605 0.921753 0.220490 1.000000 0.912201 0.236969 1.000000 0.900085 0.259216 0.124664 0.946136 0.208923 0.162476 0.945160 0.207916 0.196045 0.944244 0.206848 0.226837 0.944122 0.206665 0.255188 0.944275 0.206787 0.281525 0.944489 0.206848 0.306671 0.944672 0.206848 0.331238 0.944855 0.206787 0.355988 0.945038 0.206726 0.381439 0.945221 0.206665 0.407867 0.945374 0.206604 0.435730 0.945526 0.206543 0.465607 0.945709 0.206482 0.497498 0.945892 0.206451 0.532349 0.946045 0.206543 0.570648 0.946228 0.206635 0.611481 0.946381 0.206787 0.653687 0.946564 0.207092 0.695953 0.946716 0.207489 0.737213 0.946869 0.208008 0.776428 0.946991 0.208618 0.812286 0.947113 0.209412 0.844482 0.947235 0.210327 0.873718 0.947418 0.211761 0.899963 0.947632 0.214050 0.923492 0.947845 0.216644 0.944611 0.947998 0.219604 0.963135 0.947632 0.221985 0.979919 0.946960 0.224609 0.995453 0.946442 0.227478 1.000000 0.936676 0.244049 1.000000 0.923828 0.266510 0.132050 0.968994 0.208221 0.168793 0.968018 0.206909 0.201324 0.967163 0.205872 0.231506 0.967163 0.205750 0.259277 0.967255 0.205750 0.285248 0.967407 0.205688 0.310028 0.967499 0.205627 0.334473 0.967621 0.205566 0.358917 0.967773 0.205505 0.384308 0.967896 0.205444 0.410736 0.967987 0.205414 0.438660 0.968140 0.205383 0.468506 0.968231 0.205444 0.500427 0.968323 0.205536 0.535309 0.968414 0.205688 0.573486 0.968536 0.206024 0.614044 0.968628 0.206390 0.655884 0.968719 0.206879 0.697723 0.968842 0.207520 0.738647 0.968903 0.208313 0.777252 0.969025 0.209259 0.812836 0.969086 0.210602 0.845001 0.969238 0.212952 0.873749 0.969360 0.215546 0.899658 0.969421 0.218414 0.922729 0.969482 0.221588 0.943634 0.969543 0.225067 0.962677 0.969635 0.228607 0.979736 0.969238 0.231934 0.995239 0.968597 0.235107 1.000000 0.958740 0.251709 1.000000 0.945435 0.274353 0.139282 0.989594 0.207275 0.174927 0.988647 0.205780 0.206604 0.987854 0.204681 0.236267 0.987946 0.204651 0.263428 0.988007 0.204590 0.288757 0.988068 0.204559 0.313293 0.988159 0.204468 0.337494 0.988220 0.204376 0.361969 0.988281 0.204346 0.387207 0.988403 0.204346 0.413391 0.988464 0.204437 0.441498 0.988495 0.204529 0.471161 0.988525 0.204681 0.503143 0.988647 0.204987 0.538086 0.988678 0.205383 0.576111 0.988739 0.205872 0.616394 0.988800 0.206543 0.657867 0.988800 0.207275 0.699432 0.988892 0.208191 0.739990 0.988892 0.209564 0.778442 0.988983 0.211853 0.813507 0.989044 0.214447 0.845123 0.989044 0.217316 0.873352 0.989044 0.220551 0.898834 0.989044 0.223877 0.921844 0.989044 0.227539 0.942780 0.989044 0.231384 0.961761 0.989014 0.235321 0.979126 0.989044 0.239471 0.995056 0.988800 0.243378 1.000000 0.978699 0.259857 1.000000 0.964905 0.282440 0.158295 1.000000 0.216064 0.191315 1.000000 0.214264 0.220947 1.000000 0.213104 0.249176 1.000000 0.213074 0.275024 1.000000 0.213074 0.299347 1.000000 0.213013 0.323059 1.000000 0.213043 0.346436 1.000000 0.213104 0.370239 1.000000 0.213196 0.394684 1.000000 0.213348 0.420441 1.000000 0.213562 0.447632 1.000000 0.213867 0.476654 1.000000 0.214264 0.507751 1.000000 0.214813 0.541962 1.000000 0.215454 0.578918 1.000000 0.216156 0.618042 1.000000 0.217133 0.658600 1.000000 0.218475 0.699219 1.000000 0.220703 0.738434 1.000000 0.223267 0.775513 1.000000 0.226105 0.809143 1.000000 0.229126 0.839691 1.000000 0.232513 0.867157 1.000000 0.236053 0.892151 1.000000 0.239746 0.914734 1.000000 0.243683 0.935394 1.000000 0.247620 0.954285 1.000000 0.251801 0.971680 1.000000 0.256042 0.987762 1.000000 0.260315 1.000000 0.997101 0.268250 1.000000 0.983124 0.291595 0.190369 1.000000 0.237152 0.221863 1.000000 0.237061 0.249786 1.000000 0.237000 0.275421 1.000000 0.236938 0.298920 1.000000 0.236908 0.321381 1.000000 0.236908 0.343170 1.000000 0.236969 0.364868 1.000000 0.237030 0.386902 1.000000 0.237244 0.409729 1.000000 0.237488 0.433746 1.000000 0.237854 0.459137 1.000000 0.238281 0.486359 1.000000 0.238892 0.515656 1.000000 0.239624 0.548004 1.000000 0.240509 0.583221 1.000000 0.241699 0.620941 1.000000 0.243835 0.658875 1.000000 0.246307 0.696472 1.000000 0.248993 0.733063 1.000000 0.251984 0.767365 1.000000 0.255219 0.798950 1.000000 0.258545 0.827789 1.000000 0.262207 0.854126 1.000000 0.266022 0.877930 1.000000 0.269867 0.899841 1.000000 0.273895 0.919769 1.000000 0.277893 0.938202 1.000000 0.282166 0.955231 1.000000 0.286377 0.971130 1.000000 0.291321 0.985870 1.000000 0.297241 1.000000 1.000000 0.303650 0.000000 0.002075 0.173492 0.047516 0.003052 0.179596 0.095123 0.006439 0.184753 0.139893 0.010040 0.190338 0.181305 0.013824 0.196106 0.218048 0.017029 0.201385 0.250183 0.019653 0.205994 0.279205 0.022339 0.210480 0.306000 0.024841 0.214508 0.331238 0.025940 0.216370 0.355774 0.026550 0.217621 0.380310 0.026978 0.218750 0.405640 0.027283 0.219757 0.432251 0.027588 0.220703 0.460938 0.027679 0.221497 0.492035 0.027618 0.222015 0.526642 0.027374 0.222321 0.566193 0.026917 0.222534 0.609802 0.026367 0.222504 0.656036 0.025787 0.222351 0.703278 0.025208 0.222290 0.749725 0.024750 0.222015 0.793640 0.024475 0.222015 0.833496 0.024353 0.222137 0.869049 0.024414 0.222198 0.900482 0.024811 0.222412 0.928253 0.025360 0.222748 0.952820 0.026184 0.223145 0.974762 0.027069 0.223572 0.994385 0.027802 0.223816 1.000000 0.047302 0.234985 1.000000 0.074219 0.250854 0.000000 0.042267 0.184418 0.047485 0.043762 0.188873 0.095032 0.047455 0.194702 0.139709 0.051117 0.200684 0.180969 0.054718 0.206329 0.217926 0.058014 0.211578 0.249939 0.060089 0.215271 0.278717 0.061157 0.217316 0.305145 0.061554 0.218445 0.330109 0.061981 0.219543 0.354523 0.062408 0.220734 0.378998 0.062714 0.221802 0.404358 0.062927 0.222717 0.431091 0.063110 0.223572 0.459839 0.063171 0.224213 0.490936 0.063049 0.224670 0.525513 0.062714 0.224976 0.565033 0.062286 0.224945 0.608612 0.061737 0.224915 0.654816 0.061188 0.224792 0.702057 0.060608 0.224426 0.748596 0.060211 0.224274 0.792908 0.059998 0.224243 0.832977 0.059906 0.223969 0.868561 0.060181 0.224274 0.899963 0.060608 0.224457 0.927734 0.061249 0.224487 0.952240 0.061768 0.224792 0.974060 0.062439 0.224762 0.993622 0.063293 0.225128 1.000000 0.081299 0.236115 1.000000 0.107666 0.253113 0.001160 0.083527 0.196228 0.049011 0.085236 0.200439 0.095093 0.087402 0.204987 0.139679 0.090668 0.210327 0.180725 0.093872 0.215302 0.217682 0.095947 0.218414 0.249176 0.096161 0.219421 0.277557 0.096405 0.220490 0.303833 0.096710 0.221588 0.328705 0.097046 0.222595 0.353149 0.097290 0.223602 0.377808 0.097565 0.224548 0.403229 0.097778 0.225372 0.429993 0.097839 0.226166 0.458710 0.097809 0.226715 0.489868 0.097656 0.227112 0.524414 0.097382 0.227356 0.563904 0.096924 0.227295 0.607422 0.096436 0.227203 0.653687 0.095917 0.226929 0.701416 0.095398 0.226532 0.748444 0.095062 0.226349 0.792786 0.094849 0.226105 0.832916 0.094910 0.225922 0.868439 0.095215 0.225922 0.899719 0.095459 0.225800 0.927368 0.095856 0.225769 0.951721 0.096466 0.225922 0.973450 0.097137 0.225983 0.992950 0.098083 0.226105 1.000000 0.114716 0.237427 1.000000 0.140472 0.255219 0.003082 0.124054 0.207916 0.050781 0.125427 0.211700 0.096405 0.126801 0.215057 0.139526 0.127594 0.217133 0.179962 0.128998 0.219269 0.216339 0.130371 0.221436 0.247803 0.130554 0.222534 0.276154 0.130737 0.223511 0.302399 0.130920 0.224457 0.327515 0.131134 0.225403 0.351990 0.131348 0.226379 0.376648 0.131531 0.227234 0.402100 0.131653 0.228058 0.428864 0.131714 0.228699 0.457672 0.131683 0.229156 0.488800 0.131561 0.229492 0.523346 0.131348 0.229553 0.562866 0.130890 0.229492 0.606964 0.130402 0.229279 0.653839 0.129913 0.228943 0.701752 0.129547 0.228546 0.748932 0.129242 0.228210 0.793335 0.129150 0.227936 0.833191 0.128967 0.227448 0.868530 0.129028 0.227295 0.899628 0.129333 0.227142 0.927094 0.129822 0.226990 0.951294 0.130524 0.227112 0.972931 0.131195 0.226990 0.992310 0.132050 0.227142 1.000000 0.147369 0.238342 1.000000 0.172516 0.257202 0.005005 0.162598 0.218201 0.052277 0.162842 0.219879 0.097107 0.162537 0.220459 0.139069 0.162140 0.221008 0.178406 0.162537 0.222260 0.214600 0.163696 0.224274 0.246368 0.164032 0.225433 0.274841 0.164062 0.226318 0.301178 0.164185 0.227264 0.326324 0.164276 0.228119 0.350830 0.164490 0.228973 0.375519 0.164673 0.229675 0.400940 0.164795 0.230438 0.427765 0.164886 0.231018 0.456573 0.164825 0.231445 0.487854 0.164764 0.231720 0.522919 0.164490 0.231750 0.563141 0.164124 0.231598 0.607544 0.163696 0.231201 0.654755 0.163330 0.230835 0.702942 0.162933 0.230408 0.749939 0.162506 0.229675 0.794067 0.162231 0.229095 0.833740 0.162079 0.228668 0.868835 0.162262 0.228333 0.899719 0.162567 0.228088 0.926971 0.163055 0.228058 0.951019 0.163727 0.227966 0.972443 0.164429 0.228027 0.991638 0.165314 0.227936 1.000000 0.179260 0.239105 1.000000 0.203735 0.259125 0.005829 0.197479 0.223633 0.052368 0.196991 0.224182 0.096771 0.196564 0.224640 0.138550 0.196136 0.225159 0.177338 0.195740 0.225739 0.213135 0.196167 0.226990 0.245117 0.196564 0.228180 0.273621 0.196594 0.228973 0.300018 0.196625 0.229828 0.325165 0.196808 0.230621 0.349670 0.196899 0.231445 0.374359 0.197052 0.232117 0.399841 0.197174 0.232727 0.426758 0.197266 0.233246 0.456024 0.197266 0.233582 0.487946 0.197174 0.233734 0.523499 0.196991 0.233673 0.564148 0.196686 0.233490 0.609039 0.196320 0.233002 0.656311 0.195740 0.232361 0.704407 0.195160 0.231567 0.751343 0.194763 0.230865 0.795258 0.194489 0.230133 0.834625 0.194489 0.229675 0.869354 0.194641 0.229431 0.899963 0.195007 0.229156 0.926941 0.195526 0.228912 0.950806 0.196167 0.228912 0.972015 0.196869 0.228943 0.991089 0.197693 0.228760 1.000000 0.210297 0.239685 1.000000 0.234100 0.260895 0.005432 0.230560 0.227722 0.051697 0.230042 0.228180 0.096191 0.229492 0.228668 0.138306 0.229034 0.229065 0.177185 0.228638 0.229553 0.212341 0.228302 0.230103 0.243896 0.228210 0.230804 0.272400 0.228210 0.231537 0.298828 0.228271 0.232239 0.324005 0.228363 0.233032 0.348511 0.228546 0.233673 0.373291 0.228668 0.234283 0.399231 0.228851 0.234863 0.426788 0.228943 0.235352 0.456482 0.228943 0.235535 0.488892 0.228943 0.235596 0.524963 0.228790 0.235413 0.565887 0.228271 0.234863 0.610962 0.227753 0.234222 0.658417 0.227173 0.233398 0.706451 0.226685 0.232666 0.753265 0.226318 0.231903 0.796783 0.226105 0.231201 0.835785 0.226105 0.230774 0.870148 0.226288 0.230347 0.900330 0.226562 0.229950 0.927032 0.227081 0.229858 0.950592 0.227722 0.229614 0.971588 0.228363 0.229553 0.990509 0.229065 0.229492 1.000000 0.240601 0.240204 1.000000 0.263550 0.262543 0.003601 0.261658 0.230682 0.050201 0.261108 0.231079 0.094879 0.260529 0.231415 0.136993 0.260010 0.231812 0.175964 0.259583 0.232208 0.211182 0.259277 0.232666 0.243011 0.259460 0.233643 0.272156 0.260040 0.234955 0.298553 0.260040 0.235474 0.323700 0.260162 0.236115 0.348755 0.260376 0.236786 0.374084 0.260498 0.237274 0.400391 0.260681 0.237762 0.428345 0.260834 0.238098 0.458466 0.260864 0.238220 0.491150 0.260681 0.238007 0.527527 0.260376 0.237579 0.569031 0.259827 0.236908 0.614349 0.259430 0.236206 0.661987 0.258942 0.235291 0.709991 0.258423 0.234497 0.756470 0.258118 0.233704 0.799561 0.257904 0.233032 0.837982 0.257935 0.232513 0.871887 0.258179 0.232147 0.901733 0.258606 0.231842 0.928040 0.258972 0.231598 0.951324 0.259644 0.231476 0.972107 0.260254 0.231384 0.990814 0.261108 0.231354 1.000000 0.271393 0.242004 1.000000 0.292419 0.264160 0.002228 0.292053 0.233490 0.048859 0.291443 0.233765 0.093536 0.290863 0.234039 0.135712 0.290344 0.234283 0.174683 0.289948 0.234711 0.209930 0.289612 0.235077 0.241669 0.289703 0.235809 0.271301 0.290741 0.237457 0.299042 0.291534 0.238739 0.324829 0.291656 0.239319 0.350159 0.291931 0.239868 0.375793 0.292084 0.240295 0.402527 0.292358 0.240662 0.430664 0.292389 0.240692 0.461029 0.292206 0.240540 0.494141 0.292114 0.240265 0.531097 0.291748 0.239777 0.573059 0.291351 0.238953 0.618713 0.290833 0.238190 0.666321 0.290375 0.237366 0.714142 0.290070 0.236450 0.760223 0.289734 0.235626 0.802734 0.289612 0.234955 0.840576 0.289581 0.234436 0.873932 0.289886 0.233978 0.903290 0.290131 0.233643 0.929199 0.290619 0.233429 0.952148 0.291229 0.233246 0.972626 0.291779 0.233093 0.991089 0.292419 0.233002 1.000000 0.302155 0.243805 1.000000 0.320984 0.265656 0.000854 0.322144 0.236084 0.047516 0.321533 0.236267 0.092255 0.320923 0.236511 0.134430 0.320374 0.236664 0.173401 0.320007 0.236969 0.208679 0.319733 0.237305 0.241089 0.319763 0.237823 0.271515 0.320831 0.239441 0.299744 0.321930 0.240936 0.326691 0.323029 0.242310 0.352356 0.323303 0.242767 0.378143 0.323395 0.242920 0.404968 0.323456 0.243011 0.433533 0.323486 0.242950 0.464264 0.323456 0.242737 0.497742 0.323303 0.242340 0.535248 0.322998 0.241730 0.577667 0.322662 0.241028 0.623505 0.322266 0.240143 0.671051 0.321777 0.239227 0.718597 0.321350 0.238312 0.764130 0.321106 0.237549 0.806000 0.320984 0.236786 0.843170 0.321014 0.236145 0.875977 0.321289 0.235748 0.904816 0.321686 0.235352 0.930298 0.322052 0.235077 0.952942 0.322571 0.234863 0.973145 0.323120 0.234711 0.991425 0.323578 0.234558 1.000000 0.332428 0.245422 1.000000 0.349213 0.266968 0.000000 0.351624 0.238342 0.046143 0.351501 0.238647 0.090881 0.350952 0.238800 0.133087 0.350464 0.238922 0.173035 0.350128 0.239075 0.209290 0.349884 0.239319 0.241913 0.349915 0.239746 0.272614 0.351044 0.241241 0.301117 0.352234 0.242706 0.328247 0.353302 0.243988 0.354919 0.354431 0.245148 0.380951 0.354553 0.245209 0.408112 0.354675 0.245209 0.436920 0.354736 0.245087 0.468018 0.354706 0.244812 0.501862 0.354614 0.244385 0.540009 0.354340 0.243683 0.582764 0.353973 0.242859 0.628693 0.353546 0.241974 0.676117 0.353180 0.240997 0.723267 0.352905 0.240112 0.768250 0.352661 0.239258 0.809326 0.352539 0.238464 0.845825 0.352570 0.237885 0.878021 0.352722 0.237396 0.906372 0.353027 0.237000 0.931458 0.353485 0.236664 0.953674 0.353882 0.236389 0.973663 0.354370 0.236145 0.991699 0.354950 0.235992 1.000000 0.362671 0.246918 1.000000 0.377533 0.268250 0.000000 0.380646 0.240387 0.044708 0.381714 0.240875 0.090607 0.381195 0.240845 0.134186 0.380768 0.240906 0.174591 0.380493 0.240997 0.211029 0.380310 0.241119 0.243835 0.380463 0.241486 0.274445 0.381500 0.242737 0.302826 0.382538 0.243896 0.330109 0.383606 0.245056 0.356995 0.384766 0.246185 0.384277 0.385956 0.247253 0.411743 0.386169 0.247284 0.440887 0.386261 0.247101 0.472351 0.386292 0.246765 0.506531 0.386169 0.246277 0.545197 0.385925 0.245514 0.588287 0.385620 0.244659 0.634277 0.385254 0.243744 0.681366 0.384857 0.242737 0.727997 0.384552 0.241730 0.772339 0.384430 0.240875 0.812622 0.384247 0.240112 0.848450 0.384308 0.239410 0.879944 0.384369 0.238892 0.907837 0.384644 0.238464 0.932526 0.384979 0.238098 0.954437 0.385284 0.237793 0.974121 0.385773 0.237518 0.991974 0.386200 0.237305 1.000000 0.393127 0.248352 1.000000 0.406097 0.269287 0.000000 0.411102 0.242554 0.046143 0.412323 0.242798 0.092712 0.411865 0.242676 0.136810 0.411530 0.242584 0.177460 0.411316 0.242584 0.213745 0.411133 0.242493 0.246277 0.411163 0.242645 0.276825 0.412231 0.243805 0.305298 0.413330 0.244904 0.332611 0.414459 0.245972 0.359589 0.415619 0.247101 0.387024 0.416840 0.248138 0.415833 0.418060 0.249115 0.445282 0.418243 0.248962 0.477020 0.418304 0.248566 0.511627 0.418182 0.247986 0.550720 0.417938 0.247223 0.594025 0.417664 0.246307 0.639893 0.417267 0.245331 0.686676 0.416931 0.244263 0.732788 0.416687 0.243286 0.776306 0.416382 0.242340 0.815826 0.416260 0.241547 0.850891 0.416260 0.240906 0.881866 0.416351 0.240326 0.909210 0.416595 0.239838 0.933472 0.416901 0.239441 0.955109 0.417175 0.239136 0.974579 0.417450 0.238770 0.992188 0.417877 0.238403 1.000000 0.423859 0.249420 1.000000 0.434998 0.269958 0.000305 0.444031 0.244629 0.049469 0.443604 0.244354 0.096649 0.443176 0.244171 0.140686 0.442810 0.243958 0.181030 0.442505 0.243683 0.217072 0.442352 0.243408 0.249451 0.442505 0.243561 0.279938 0.443604 0.244690 0.308228 0.444763 0.245789 0.335571 0.445923 0.246826 0.362579 0.447083 0.247803 0.390320 0.448303 0.248840 0.419220 0.449554 0.249786 0.449982 0.450775 0.250763 0.481995 0.450836 0.250305 0.516968 0.450714 0.249634 0.556519 0.450470 0.248810 0.599915 0.450195 0.247803 0.645660 0.449860 0.246826 0.691986 0.449463 0.245728 0.737396 0.449188 0.244720 0.780151 0.448944 0.243774 0.818878 0.448853 0.242920 0.853302 0.448944 0.242218 0.883606 0.448944 0.241638 0.910522 0.449036 0.241119 0.934387 0.449249 0.240662 0.955750 0.449493 0.240234 0.974945 0.449860 0.239685 0.992432 0.450134 0.239105 1.000000 0.455139 0.250031 1.000000 0.464233 0.270264 0.004883 0.475983 0.245972 0.054413 0.475464 0.245605 0.101410 0.475006 0.245178 0.145386 0.474609 0.244690 0.185547 0.474426 0.244446 0.221161 0.474335 0.244110 0.253265 0.474701 0.244354 0.283417 0.475830 0.245422 0.311646 0.476959 0.246429 0.338898 0.478149 0.247437 0.365967 0.479309 0.248413 0.393738 0.480530 0.249390 0.422943 0.481781 0.250275 0.453857 0.483002 0.251129 0.487183 0.484131 0.251923 0.522522 0.484009 0.251190 0.562378 0.483673 0.250214 0.605804 0.483429 0.249237 0.651245 0.483093 0.248199 0.697113 0.482727 0.247070 0.741852 0.482391 0.246063 0.783813 0.482147 0.245056 0.821716 0.482025 0.244141 0.855377 0.481934 0.243500 0.885162 0.481995 0.242828 0.911652 0.482056 0.242188 0.935211 0.482208 0.241547 0.956329 0.482361 0.240875 0.975372 0.482758 0.240173 0.992676 0.482941 0.239410 1.000000 0.487030 0.250397 1.000000 0.494354 0.270355 0.010651 0.508545 0.246887 0.060303 0.508087 0.246338 0.107361 0.507660 0.245789 0.151184 0.507385 0.245209 0.190796 0.507233 0.244965 0.225800 0.507233 0.244690 0.257660 0.507751 0.245026 0.287354 0.508850 0.245941 0.315308 0.510071 0.246979 0.342407 0.511261 0.247894 0.369568 0.512451 0.248840 0.397400 0.513702 0.249695 0.426666 0.514954 0.250549 0.457886 0.516144 0.251434 0.491486 0.517395 0.252228 0.528168 0.518250 0.252563 0.568207 0.517975 0.251648 0.611511 0.517548 0.250549 0.656677 0.517273 0.249481 0.701996 0.516815 0.248322 0.745972 0.516479 0.247223 0.787048 0.516205 0.246277 0.824249 0.515930 0.245361 0.857330 0.515900 0.244507 0.886627 0.515900 0.243713 0.912750 0.515961 0.242859 0.936066 0.516113 0.242065 0.956940 0.516266 0.241180 0.975800 0.516449 0.240387 0.992920 0.516785 0.239502 1.000000 0.519928 0.250549 1.000000 0.525574 0.270264 0.017822 0.543701 0.247375 0.067627 0.543243 0.246826 0.114471 0.542877 0.246155 0.157776 0.542633 0.245697 0.196655 0.542511 0.245300 0.230896 0.542572 0.244965 0.262238 0.543304 0.245483 0.291504 0.544495 0.246399 0.319183 0.545685 0.247284 0.346130 0.546936 0.248199 0.373199 0.548187 0.249054 0.401123 0.549438 0.249878 0.430542 0.550690 0.250702 0.461884 0.551910 0.251495 0.495636 0.553131 0.252289 0.532959 0.554352 0.252991 0.573883 0.554840 0.252899 0.617065 0.554352 0.251770 0.661804 0.553955 0.250610 0.706390 0.553467 0.249512 0.749695 0.553009 0.248383 0.790070 0.552582 0.247253 0.826599 0.552368 0.246246 0.859192 0.552277 0.245178 0.888153 0.552155 0.244171 0.913910 0.552277 0.243195 0.936951 0.552338 0.242249 0.957550 0.552399 0.241272 0.976227 0.552673 0.240356 0.993195 0.552917 0.239380 1.000000 0.555176 0.250610 1.000000 0.559204 0.270172 0.026489 0.581604 0.247742 0.076050 0.581146 0.247040 0.122375 0.580750 0.246399 0.164948 0.580505 0.245819 0.202850 0.580444 0.245514 0.236206 0.580444 0.245148 0.267059 0.581390 0.245758 0.295776 0.582581 0.246613 0.323090 0.583862 0.247437 0.349945 0.585083 0.248322 0.376862 0.586273 0.249115 0.404938 0.587555 0.249939 0.434387 0.588745 0.250732 0.465729 0.589966 0.251404 0.499695 0.591125 0.252167 0.537079 0.592285 0.252808 0.578735 0.593384 0.253418 0.622162 0.593445 0.252899 0.666321 0.592865 0.251678 0.710449 0.592194 0.250458 0.753143 0.591736 0.249176 0.792969 0.591339 0.247894 0.828979 0.591003 0.246643 0.861084 0.590759 0.245483 0.889587 0.590607 0.244324 0.915009 0.590515 0.243225 0.937744 0.590668 0.242188 0.958160 0.590668 0.241180 0.976624 0.590942 0.240234 0.993439 0.591125 0.239288 1.000000 0.592163 0.250610 1.000000 0.594604 0.270050 0.036163 0.621582 0.247864 0.085327 0.621124 0.247131 0.130890 0.620667 0.246460 0.172394 0.620453 0.245880 0.209167 0.620331 0.245422 0.241577 0.620361 0.245117 0.271942 0.621429 0.245880 0.300110 0.622650 0.246704 0.327087 0.623779 0.247559 0.353699 0.625000 0.248352 0.380585 0.626129 0.249084 0.408508 0.627319 0.249817 0.438049 0.628479 0.250549 0.469482 0.629578 0.251190 0.503265 0.630676 0.251831 0.540894 0.631744 0.252441 0.582306 0.632782 0.253021 0.626526 0.633759 0.253571 0.670593 0.633331 0.252472 0.714325 0.632690 0.251038 0.756561 0.632111 0.249603 0.795837 0.631500 0.248169 0.831299 0.631195 0.246826 0.862915 0.630951 0.245514 0.890991 0.630646 0.244263 0.916138 0.630646 0.243103 0.938538 0.630524 0.242035 0.958740 0.630646 0.241028 0.977020 0.630768 0.240021 0.993683 0.630646 0.239136 1.000000 0.630798 0.250702 1.000000 0.631226 0.270081 0.046661 0.662872 0.247864 0.095093 0.662354 0.247131 0.139648 0.661896 0.246338 0.179962 0.661621 0.245789 0.215393 0.661469 0.245331 0.247009 0.661499 0.245117 0.276642 0.662628 0.245911 0.304321 0.663757 0.246704 0.330902 0.664856 0.247437 0.357330 0.665985 0.248230 0.384125 0.667023 0.248901 0.411957 0.668060 0.249603 0.441406 0.669128 0.250275 0.472809 0.670074 0.250885 0.506592 0.671112 0.251465 0.544098 0.671967 0.251984 0.585571 0.672943 0.252380 0.629700 0.673859 0.252686 0.674866 0.674774 0.252838 0.718231 0.674011 0.251251 0.759918 0.673340 0.249695 0.798676 0.672729 0.248138 0.833557 0.672241 0.246704 0.864685 0.671844 0.245331 0.892395 0.671661 0.244080 0.917175 0.671417 0.242920 0.939362 0.671387 0.241821 0.959290 0.671265 0.240875 0.977386 0.671387 0.239960 0.993927 0.671387 0.239166 1.000000 0.669952 0.250946 1.000000 0.668518 0.270355 0.057678 0.704651 0.247711 0.105133 0.704010 0.246918 0.148529 0.703552 0.246185 0.187469 0.703156 0.245605 0.221619 0.702942 0.245209 0.252441 0.703094 0.245087 0.281372 0.704224 0.245880 0.308411 0.705139 0.246643 0.334595 0.706146 0.247314 0.360779 0.707153 0.248047 0.387360 0.708069 0.248627 0.415070 0.709015 0.249268 0.444519 0.709900 0.249878 0.475800 0.710724 0.250397 0.509705 0.711639 0.250824 0.547424 0.712463 0.251099 0.588867 0.713287 0.251251 0.632843 0.714142 0.251434 0.677826 0.714935 0.251495 0.722137 0.715576 0.251190 0.763306 0.714691 0.249573 0.801422 0.713928 0.247955 0.835754 0.713440 0.246490 0.866394 0.713043 0.245148 0.893738 0.712738 0.243866 0.918182 0.712555 0.242767 0.940094 0.712158 0.241760 0.959808 0.712158 0.240875 0.977722 0.712067 0.240112 0.994110 0.711945 0.239380 1.000000 0.709320 0.251495 1.000000 0.705994 0.270905 0.068878 0.746002 0.247467 0.115021 0.745331 0.246704 0.157196 0.744781 0.246033 0.194672 0.744385 0.245483 0.227509 0.743988 0.244965 0.257446 0.744293 0.245026 0.285614 0.745117 0.245728 0.312195 0.746063 0.246429 0.338043 0.746887 0.247070 0.363861 0.747711 0.247711 0.390198 0.748505 0.248291 0.417877 0.749298 0.248840 0.447144 0.750061 0.249237 0.478760 0.750824 0.249573 0.512848 0.751556 0.249725 0.550751 0.752289 0.249847 0.592255 0.753021 0.249969 0.636078 0.753784 0.249939 0.680573 0.754456 0.249908 0.724640 0.755219 0.249817 0.766510 0.755493 0.249329 0.804047 0.754639 0.247711 0.837830 0.754120 0.246246 0.868042 0.753479 0.244904 0.895020 0.753204 0.243774 0.919128 0.752777 0.242737 0.940765 0.752411 0.241882 0.960266 0.752228 0.241058 0.978058 0.752136 0.240509 0.994293 0.751862 0.239990 1.000000 0.747986 0.252380 1.000000 0.742645 0.271881 0.080017 0.786163 0.247070 0.124817 0.785370 0.246338 0.165497 0.784698 0.245697 0.201385 0.784210 0.245087 0.233002 0.783813 0.244568 0.262299 0.784119 0.244843 0.289642 0.784912 0.245544 0.315582 0.785583 0.246155 0.341064 0.786285 0.246796 0.366516 0.786957 0.247284 0.392883 0.787628 0.247681 0.420624 0.788300 0.248077 0.450012 0.788910 0.248230 0.481720 0.789581 0.248383 0.515991 0.790192 0.248474 0.554108 0.790833 0.248444 0.595581 0.791443 0.248413 0.639008 0.792114 0.248322 0.683319 0.792694 0.248260 0.726898 0.793335 0.248169 0.768585 0.793945 0.248047 0.806580 0.793945 0.247467 0.839844 0.793274 0.246094 0.869598 0.792725 0.244873 0.896179 0.792145 0.243866 0.920013 0.791809 0.242920 0.941437 0.791351 0.242218 0.960754 0.791016 0.241638 0.978302 0.790771 0.241241 0.994415 0.790527 0.240967 1.000000 0.785278 0.253693 1.000000 0.778381 0.273346 0.090851 0.824219 0.246948 0.134155 0.823395 0.246063 0.173218 0.822662 0.245270 0.207611 0.822083 0.244781 0.238037 0.821564 0.244293 0.266479 0.821960 0.244690 0.293243 0.822571 0.245300 0.318665 0.823090 0.245819 0.343750 0.823639 0.246185 0.369263 0.824188 0.246552 0.395691 0.824768 0.246796 0.423492 0.825317 0.246918 0.453003 0.825836 0.246979 0.484772 0.826385 0.247009 0.519226 0.826904 0.246979 0.557404 0.827423 0.246918 0.598816 0.827942 0.246826 0.642059 0.828430 0.246704 0.685913 0.828949 0.246643 0.729126 0.829468 0.246552 0.770325 0.829987 0.246521 0.808167 0.830475 0.246521 0.841705 0.830475 0.246155 0.871033 0.829865 0.245087 0.897278 0.829224 0.244202 0.920807 0.828674 0.243500 0.941986 0.828308 0.243011 0.961121 0.827881 0.242645 0.978546 0.827484 0.242493 0.994568 0.827271 0.242493 1.000000 0.820892 0.255554 1.000000 0.812592 0.276184 0.101105 0.859680 0.246490 0.142822 0.858795 0.245697 0.180237 0.857941 0.244995 0.213165 0.857300 0.244476 0.242462 0.856720 0.243927 0.270172 0.857147 0.244385 0.296417 0.857574 0.244812 0.321594 0.858002 0.245148 0.346588 0.858459 0.245361 0.372070 0.858917 0.245544 0.398529 0.859314 0.245575 0.426453 0.859772 0.245636 0.455994 0.860199 0.245605 0.487885 0.860626 0.245544 0.522461 0.861084 0.245422 0.560699 0.861420 0.245331 0.601990 0.861877 0.245300 0.645050 0.862274 0.245178 0.688538 0.862701 0.245178 0.731079 0.863068 0.245178 0.771729 0.863464 0.245270 0.809082 0.863831 0.245361 0.842621 0.864258 0.245636 0.872345 0.864288 0.245605 0.898254 0.863678 0.244995 0.921539 0.863037 0.244446 0.942444 0.862610 0.244202 0.961426 0.862061 0.244141 0.978699 0.861664 0.244324 0.994598 0.861481 0.245483 1.000000 0.854370 0.259827 1.000000 0.844666 0.280975 0.110443 0.891907 0.246124 0.150604 0.890961 0.245392 0.186401 0.890076 0.244720 0.217987 0.889374 0.244110 0.246490 0.888824 0.243439 0.273773 0.889160 0.243835 0.299500 0.889557 0.244019 0.324554 0.889862 0.244202 0.349548 0.890198 0.244232 0.375000 0.890533 0.244293 0.401367 0.890869 0.244263 0.429382 0.891205 0.244202 0.459076 0.891541 0.244110 0.491058 0.891876 0.244049 0.525665 0.892181 0.243988 0.564056 0.892487 0.243896 0.605042 0.892822 0.243866 0.647888 0.893097 0.243896 0.690826 0.893433 0.243988 0.733063 0.893738 0.244110 0.773071 0.894012 0.244324 0.809845 0.894348 0.244629 0.842957 0.894592 0.245087 0.872772 0.894897 0.245605 0.899170 0.894989 0.246155 0.922150 0.894318 0.245941 0.942902 0.893799 0.246033 0.961731 0.893311 0.247070 0.978882 0.893005 0.248688 0.994598 0.892853 0.250519 1.000000 0.884918 0.265289 1.000000 0.873962 0.286743 0.118805 0.920624 0.245819 0.157349 0.919678 0.244965 0.191895 0.918793 0.244141 0.222626 0.918030 0.243286 0.250763 0.917603 0.242798 0.277466 0.917816 0.242950 0.302826 0.918091 0.243011 0.327698 0.918365 0.243073 0.352448 0.918610 0.243042 0.377930 0.918823 0.242981 0.404327 0.919098 0.242920 0.432312 0.919342 0.242828 0.462097 0.919617 0.242798 0.494080 0.919800 0.242676 0.528839 0.920044 0.242676 0.567139 0.920319 0.242706 0.608154 0.920502 0.242798 0.650452 0.920746 0.242859 0.693146 0.920959 0.243103 0.734894 0.921173 0.243439 0.774353 0.921387 0.243866 0.810638 0.921570 0.244385 0.843353 0.921783 0.245117 0.872681 0.921967 0.245911 0.899017 0.922180 0.246918 0.922760 0.922455 0.248871 0.943329 0.921967 0.250244 0.961914 0.921570 0.252106 0.978912 0.921082 0.254242 0.994537 0.920593 0.256653 1.000000 0.912201 0.271637 1.000000 0.900360 0.293365 0.126282 0.946167 0.245514 0.163818 0.945221 0.244476 0.197235 0.944275 0.243347 0.227112 0.943512 0.242401 0.254761 0.943237 0.241913 0.281158 0.943390 0.241943 0.306213 0.943573 0.241943 0.330902 0.943756 0.241882 0.355560 0.943939 0.241791 0.380829 0.944092 0.241699 0.407288 0.944275 0.241669 0.435333 0.944489 0.241547 0.465149 0.944611 0.241547 0.497162 0.944824 0.241547 0.531952 0.944977 0.241669 0.570099 0.945160 0.241760 0.610870 0.945312 0.242035 0.652893 0.945465 0.242340 0.695129 0.945557 0.242737 0.736420 0.945740 0.243317 0.775299 0.945892 0.243958 0.811188 0.946014 0.244781 0.843506 0.946106 0.245789 0.872742 0.946350 0.247620 0.898804 0.946564 0.249969 0.922241 0.946747 0.252747 0.943359 0.946899 0.255676 0.961945 0.946381 0.258179 0.978821 0.945892 0.260803 0.994385 0.945404 0.263702 1.000000 0.936584 0.278748 1.000000 0.923981 0.300690 0.133698 0.969025 0.244568 0.170074 0.968018 0.243347 0.202576 0.967163 0.242401 0.231567 0.966370 0.241272 0.258972 0.966187 0.240875 0.284668 0.966309 0.240753 0.309540 0.966431 0.240723 0.333954 0.966553 0.240631 0.358459 0.966736 0.240601 0.383698 0.966797 0.240479 0.410217 0.966919 0.240479 0.438141 0.967072 0.240479 0.468048 0.967163 0.240570 0.499939 0.967285 0.240692 0.534790 0.967346 0.240967 0.572968 0.967438 0.241241 0.613434 0.967560 0.241699 0.655243 0.967651 0.242218 0.696899 0.967773 0.242920 0.737732 0.967834 0.243774 0.776337 0.967926 0.244720 0.811829 0.968048 0.246552 0.843994 0.968170 0.248932 0.872589 0.968262 0.251587 0.898438 0.968353 0.254578 0.921509 0.968384 0.257751 0.942444 0.968445 0.261230 0.961609 0.968536 0.264954 0.978668 0.968170 0.268219 0.994202 0.967682 0.271393 1.000000 0.958740 0.286407 1.000000 0.945312 0.308411 0.140808 0.989594 0.243622 0.176208 0.988647 0.242188 0.207672 0.987793 0.241180 0.235931 0.987030 0.239929 0.262787 0.986969 0.239716 0.288177 0.987030 0.239655 0.312653 0.987122 0.239594 0.336945 0.987213 0.239471 0.361328 0.987305 0.239471 0.386566 0.987335 0.239441 0.412933 0.987427 0.239563 0.440796 0.987457 0.239716 0.470703 0.987549 0.239960 0.502625 0.987610 0.240265 0.537476 0.987640 0.240631 0.575531 0.987701 0.241211 0.615753 0.987762 0.241913 0.656982 0.987793 0.242706 0.698547 0.987854 0.243713 0.739288 0.987885 0.245544 0.777618 0.987915 0.247803 0.812561 0.987976 0.250519 0.843811 0.987976 0.253510 0.872131 0.988007 0.256683 0.897644 0.988007 0.260162 0.920715 0.988007 0.263763 0.941559 0.988007 0.267609 0.960571 0.988007 0.271667 0.978088 0.987976 0.275665 0.993988 0.987701 0.279572 1.000000 0.978760 0.294312 1.000000 0.965057 0.316345 0.159668 1.000000 0.251373 0.192444 1.000000 0.249725 0.221649 1.000000 0.248230 0.248108 1.000000 0.246674 0.274048 1.000000 0.246643 0.298492 1.000000 0.246613 0.322052 1.000000 0.246643 0.345612 1.000000 0.246674 0.369293 1.000000 0.246826 0.393799 1.000000 0.247009 0.419708 1.000000 0.247284 0.446960 1.000000 0.247650 0.476044 1.000000 0.248047 0.507202 1.000000 0.248596 0.541443 1.000000 0.249268 0.578461 1.000000 0.250122 0.617798 1.000000 0.251099 0.658478 1.000000 0.252838 0.698944 1.000000 0.255157 0.738251 1.000000 0.257843 0.775055 1.000000 0.260681 0.808777 1.000000 0.263824 0.839233 1.000000 0.267120 0.866913 1.000000 0.270782 0.891846 1.000000 0.274506 0.914551 1.000000 0.278320 0.935242 1.000000 0.282349 0.954132 1.000000 0.286469 0.971558 1.000000 0.290527 0.987701 1.000000 0.294739 1.000000 0.997223 0.302612 1.000000 0.983215 0.325714 0.191650 1.000000 0.270172 0.222900 1.000000 0.270264 0.250854 1.000000 0.270203 0.276215 1.000000 0.270081 0.299713 1.000000 0.270050 0.321991 1.000000 0.270050 0.343689 1.000000 0.270142 0.365448 1.000000 0.270264 0.387329 1.000000 0.270447 0.410187 1.000000 0.270782 0.434143 1.000000 0.271179 0.459564 1.000000 0.271667 0.486786 1.000000 0.272308 0.516266 1.000000 0.273071 0.548615 1.000000 0.273987 0.584076 1.000000 0.275604 0.621490 1.000000 0.277832 0.659241 1.000000 0.280334 0.696747 1.000000 0.283142 0.733246 1.000000 0.286194 0.767487 1.000000 0.289398 0.799194 1.000000 0.292877 0.827911 1.000000 0.296417 0.854065 1.000000 0.300201 0.878143 1.000000 0.304108 0.899933 1.000000 0.307983 0.919891 1.000000 0.312042 0.938324 1.000000 0.316162 0.955231 1.000000 0.320282 0.971069 1.000000 0.325562 0.986023 1.000000 0.331482 1.000000 1.000000 0.337677 0.000000 0.002869 0.209534 0.046295 0.002777 0.217163 0.093781 0.006104 0.222321 0.138641 0.009827 0.228088 0.179993 0.013702 0.234039 0.217377 0.017517 0.239777 0.250336 0.021149 0.245270 0.279327 0.023743 0.249634 0.306061 0.026001 0.253174 0.331268 0.026611 0.254486 0.355743 0.027130 0.255676 0.380310 0.027557 0.256775 0.405579 0.027954 0.257843 0.432220 0.028137 0.258698 0.460907 0.028229 0.259491 0.492004 0.028198 0.260162 0.526611 0.027954 0.260406 0.566193 0.027466 0.260620 0.609772 0.026917 0.260590 0.656006 0.026337 0.260620 0.703247 0.025818 0.260406 0.749725 0.025391 0.260315 0.793610 0.025055 0.260193 0.833557 0.024994 0.260345 0.869171 0.025116 0.260437 0.900574 0.025482 0.260742 0.928345 0.026123 0.261078 0.952881 0.026886 0.261322 0.974762 0.027771 0.261749 0.994385 0.028564 0.262024 1.000000 0.048035 0.271820 1.000000 0.074982 0.285797 0.000000 0.042786 0.220917 0.046234 0.043610 0.226715 0.093719 0.047150 0.232513 0.138519 0.050934 0.238403 0.179749 0.054535 0.244141 0.216888 0.057922 0.249329 0.249969 0.061157 0.254028 0.278717 0.061737 0.255310 0.305145 0.062134 0.256470 0.330078 0.062561 0.257599 0.354462 0.062927 0.258789 0.378937 0.063263 0.259766 0.404327 0.063507 0.260773 0.431091 0.063660 0.261536 0.459808 0.063690 0.262268 0.490936 0.063568 0.262726 0.525513 0.063293 0.263031 0.565033 0.062866 0.263123 0.608582 0.062347 0.263031 0.654816 0.061737 0.262817 0.702026 0.061279 0.262726 0.748779 0.060852 0.262512 0.793091 0.060608 0.262268 0.833160 0.060608 0.262360 0.868744 0.060791 0.262268 0.900146 0.061310 0.262543 0.927856 0.061890 0.262726 0.952332 0.062408 0.262787 0.974121 0.063171 0.262909 0.993683 0.063965 0.263214 1.000000 0.082031 0.273041 1.000000 0.108398 0.287872 0.000000 0.083313 0.234039 0.047821 0.085114 0.238373 0.093872 0.087067 0.242706 0.138458 0.090393 0.247986 0.179535 0.093445 0.252777 0.216278 0.094940 0.254944 0.248871 0.096405 0.257111 0.277557 0.096954 0.258484 0.303772 0.097229 0.259583 0.328674 0.097534 0.260620 0.353149 0.097809 0.261627 0.377808 0.098083 0.262604 0.403198 0.098236 0.263458 0.429962 0.098267 0.264252 0.458710 0.098358 0.264740 0.489868 0.098206 0.265259 0.524414 0.097900 0.265381 0.563904 0.097504 0.265411 0.607422 0.097015 0.265320 0.653900 0.096436 0.265076 0.701660 0.096039 0.264771 0.748718 0.095673 0.264404 0.793091 0.095551 0.264221 0.833191 0.095642 0.264130 0.868652 0.095764 0.264008 0.899872 0.096039 0.264038 0.927429 0.096497 0.263916 0.951782 0.097107 0.263916 0.973541 0.097870 0.264008 0.992981 0.098785 0.264191 1.000000 0.115448 0.274078 1.000000 0.141235 0.289764 0.001831 0.123718 0.245605 0.049591 0.125122 0.249390 0.095184 0.126312 0.252411 0.138031 0.126617 0.253723 0.178467 0.127991 0.255920 0.214844 0.129303 0.257935 0.247223 0.130554 0.260071 0.276062 0.131256 0.261505 0.302399 0.131409 0.262482 0.327484 0.131592 0.263458 0.351990 0.131775 0.264404 0.376648 0.131989 0.265259 0.402069 0.132141 0.266052 0.428864 0.132172 0.266693 0.457642 0.132172 0.267212 0.488800 0.132141 0.267609 0.523346 0.131805 0.267639 0.563049 0.131439 0.267609 0.607208 0.131012 0.267334 0.654144 0.130524 0.267029 0.702179 0.130127 0.266632 0.749268 0.129883 0.266296 0.793610 0.129700 0.265991 0.833466 0.129608 0.265656 0.868744 0.129639 0.265320 0.899811 0.130005 0.265167 0.927216 0.130463 0.265015 0.951416 0.131134 0.265045 0.972961 0.131897 0.265015 0.992371 0.132812 0.265106 1.000000 0.148102 0.274963 1.000000 0.173248 0.291870 0.003815 0.162140 0.255585 0.050812 0.161865 0.256409 0.095612 0.161499 0.256958 0.137543 0.161194 0.257629 0.176819 0.161499 0.258881 0.213104 0.162689 0.260834 0.245697 0.163818 0.262817 0.274811 0.164490 0.264282 0.301178 0.164673 0.265198 0.326324 0.164795 0.266113 0.350800 0.164948 0.266968 0.375488 0.165100 0.267731 0.400940 0.165314 0.268494 0.427765 0.165375 0.269012 0.456543 0.165375 0.269470 0.487976 0.165314 0.269806 0.523132 0.165009 0.269745 0.563416 0.164673 0.269531 0.607971 0.164337 0.269226 0.655212 0.163940 0.268951 0.703400 0.163483 0.268372 0.750336 0.162994 0.267761 0.794434 0.162750 0.267151 0.834076 0.162689 0.266663 0.869110 0.162842 0.266296 0.899902 0.163177 0.266205 0.927155 0.163727 0.266052 0.951141 0.164368 0.265991 0.972534 0.165192 0.265991 0.991730 0.165985 0.266022 1.000000 0.179932 0.275757 1.000000 0.204376 0.293640 0.004272 0.196533 0.260132 0.050751 0.195953 0.260651 0.095184 0.195496 0.261169 0.136932 0.195038 0.261658 0.175842 0.194702 0.262268 0.211670 0.195099 0.263519 0.244293 0.196198 0.265381 0.273621 0.196991 0.266968 0.300018 0.197052 0.267792 0.325134 0.197174 0.268616 0.349670 0.197357 0.269348 0.374359 0.197510 0.270111 0.399811 0.197693 0.270752 0.426941 0.197784 0.271210 0.456268 0.197845 0.271606 0.488251 0.197784 0.271820 0.523865 0.197510 0.271667 0.564636 0.197235 0.271393 0.609528 0.196838 0.270935 0.656799 0.196228 0.270294 0.704956 0.195679 0.269470 0.751862 0.195312 0.268890 0.795685 0.195099 0.268127 0.835022 0.195099 0.267792 0.869659 0.195282 0.267487 0.900238 0.195618 0.267090 0.927155 0.196136 0.266968 0.950867 0.196716 0.266846 0.972076 0.197510 0.266937 0.991119 0.198273 0.266907 1.000000 0.210938 0.276398 1.000000 0.234741 0.295410 0.003845 0.229614 0.264343 0.050079 0.229095 0.264771 0.094666 0.228546 0.265167 0.136780 0.228027 0.265656 0.175659 0.227570 0.266083 0.210876 0.227234 0.266663 0.242920 0.227722 0.267822 0.272400 0.228638 0.269501 0.298798 0.228668 0.270203 0.323975 0.228821 0.270966 0.348511 0.228973 0.271698 0.373444 0.229126 0.272308 0.399445 0.229309 0.272858 0.427032 0.229431 0.273254 0.456848 0.229492 0.273529 0.489258 0.229462 0.273560 0.525452 0.229248 0.273407 0.566498 0.228760 0.272858 0.611542 0.228210 0.272125 0.659058 0.227661 0.271301 0.707153 0.227234 0.270508 0.753876 0.226837 0.269775 0.797333 0.226685 0.269135 0.836212 0.226685 0.268738 0.870453 0.226837 0.268250 0.900635 0.227234 0.267944 0.927216 0.227722 0.267731 0.950714 0.228271 0.267639 0.971710 0.228973 0.267670 0.990570 0.229675 0.267487 1.000000 0.241058 0.277069 1.000000 0.264191 0.297028 0.003296 0.261841 0.268372 0.049896 0.261200 0.268707 0.094543 0.260559 0.269012 0.136627 0.260040 0.269379 0.175537 0.259583 0.269775 0.210754 0.259247 0.270233 0.242218 0.259094 0.270813 0.271179 0.259430 0.271851 0.297638 0.259583 0.272522 0.322998 0.259735 0.273193 0.348145 0.259888 0.273773 0.373566 0.260071 0.274353 0.399963 0.260315 0.274811 0.427948 0.260468 0.275146 0.458160 0.260498 0.275269 0.490845 0.260254 0.274933 0.527405 0.259918 0.274506 0.568939 0.259552 0.273895 0.614258 0.259003 0.273102 0.661896 0.258484 0.272278 0.709869 0.258057 0.271576 0.756226 0.257751 0.270752 0.799225 0.257599 0.270111 0.837585 0.257599 0.269470 0.871338 0.257751 0.269043 0.901123 0.258087 0.268768 0.927307 0.258545 0.268463 0.950592 0.259155 0.268341 0.971283 0.259796 0.268341 0.989990 0.260406 0.268250 1.000000 0.270569 0.277283 1.000000 0.292999 0.298492 0.002228 0.292480 0.271393 0.048859 0.291809 0.271698 0.093536 0.291260 0.271942 0.135712 0.290710 0.272278 0.174652 0.290283 0.272583 0.209930 0.290070 0.273041 0.241455 0.289948 0.273529 0.270233 0.289886 0.274048 0.297913 0.290558 0.275238 0.323761 0.290710 0.275757 0.349152 0.290924 0.276306 0.374908 0.291199 0.276764 0.401611 0.291351 0.277069 0.429871 0.291412 0.277100 0.460388 0.291321 0.276917 0.493469 0.291168 0.276611 0.530579 0.290802 0.276093 0.572601 0.290466 0.275421 0.618164 0.289948 0.274567 0.665833 0.289581 0.273804 0.713593 0.289185 0.272919 0.759491 0.288879 0.272125 0.801971 0.288788 0.271423 0.839722 0.288849 0.270874 0.872986 0.289062 0.270477 0.902283 0.289307 0.270142 0.928131 0.289734 0.269928 0.951080 0.290314 0.269745 0.971619 0.290863 0.269562 0.990082 0.291626 0.269470 1.000000 0.300964 0.278656 1.000000 0.321411 0.299988 0.000824 0.322479 0.273956 0.047516 0.321869 0.274139 0.092255 0.321228 0.274384 0.134430 0.320770 0.274658 0.173401 0.320404 0.274902 0.208984 0.320190 0.275269 0.241241 0.320068 0.275665 0.270630 0.320068 0.276093 0.298798 0.320984 0.277405 0.325775 0.322144 0.278748 0.351440 0.322357 0.279144 0.377319 0.322449 0.279297 0.404205 0.322510 0.279327 0.432861 0.322571 0.279297 0.463715 0.322571 0.279083 0.497192 0.322418 0.278625 0.534851 0.322113 0.278076 0.577301 0.321747 0.277374 0.623077 0.321381 0.276520 0.670593 0.320984 0.275604 0.718109 0.320557 0.274719 0.763458 0.320343 0.273895 0.805267 0.320251 0.273193 0.842285 0.320160 0.272644 0.875031 0.320465 0.272156 0.903839 0.320709 0.271820 0.929291 0.321167 0.271515 0.951874 0.321625 0.271271 0.972107 0.322235 0.271118 0.990356 0.322693 0.270935 1.000000 0.331177 0.280212 1.000000 0.349762 0.301331 0.000000 0.351959 0.276154 0.046143 0.351837 0.276489 0.090881 0.351318 0.276672 0.133423 0.350830 0.276764 0.173431 0.350525 0.276947 0.209778 0.350311 0.277191 0.242310 0.350281 0.277527 0.271942 0.350342 0.277924 0.300293 0.351349 0.279114 0.327393 0.352386 0.280273 0.354065 0.353424 0.281403 0.380219 0.353638 0.281494 0.407410 0.353729 0.281494 0.436371 0.353821 0.281372 0.467590 0.353851 0.281097 0.501495 0.353760 0.280640 0.539703 0.353455 0.279999 0.582458 0.353149 0.279175 0.628357 0.352722 0.278290 0.675751 0.352325 0.277344 0.722778 0.352112 0.276459 0.767578 0.351837 0.275604 0.808594 0.351746 0.274841 0.844940 0.351654 0.274170 0.877045 0.351959 0.273712 0.905396 0.352234 0.273376 0.930389 0.352570 0.273010 0.952667 0.353027 0.272766 0.972656 0.353516 0.272552 0.990631 0.353943 0.272308 1.000000 0.361572 0.281708 1.000000 0.378082 0.302521 0.000000 0.380951 0.277924 0.045074 0.382050 0.278656 0.091156 0.381592 0.278687 0.134796 0.381134 0.278717 0.175201 0.380859 0.278839 0.211761 0.380707 0.278931 0.244385 0.380768 0.279236 0.273834 0.380707 0.279266 0.302124 0.381622 0.280243 0.329407 0.382721 0.281372 0.356323 0.383881 0.282471 0.383667 0.385071 0.283508 0.411194 0.385284 0.283478 0.440430 0.385406 0.283325 0.471954 0.385406 0.283020 0.506226 0.385254 0.282440 0.544922 0.385071 0.281708 0.588013 0.384766 0.280914 0.633850 0.384399 0.279938 0.681030 0.384033 0.278961 0.727509 0.383698 0.278046 0.771637 0.383514 0.277161 0.811890 0.383484 0.276398 0.847565 0.383392 0.275757 0.879028 0.383575 0.275269 0.906860 0.383789 0.274811 0.931458 0.384155 0.274414 0.953400 0.384521 0.274139 0.973083 0.384918 0.273865 0.990936 0.385254 0.273560 1.000000 0.392120 0.282959 1.000000 0.406433 0.303497 0.000000 0.411957 0.280212 0.046875 0.412689 0.280518 0.093597 0.412231 0.280457 0.137726 0.411926 0.280396 0.178375 0.411713 0.280426 0.214539 0.411469 0.280243 0.246857 0.411377 0.280182 0.276276 0.411438 0.280273 0.304657 0.412445 0.281189 0.331940 0.413574 0.282257 0.358978 0.414764 0.283325 0.386566 0.415985 0.284363 0.415314 0.417206 0.285339 0.444916 0.417450 0.285187 0.476715 0.417450 0.284760 0.511322 0.417358 0.284180 0.550537 0.417145 0.283417 0.593811 0.416809 0.282501 0.639587 0.416504 0.281525 0.686340 0.416138 0.280487 0.732178 0.415802 0.279510 0.775665 0.415527 0.278625 0.815063 0.415527 0.277802 0.850006 0.415436 0.277161 0.880890 0.415619 0.276581 0.908203 0.415924 0.276123 0.932465 0.416107 0.275726 0.954041 0.416290 0.275360 0.973511 0.416626 0.275055 0.991150 0.416962 0.274628 1.000000 0.422943 0.283936 1.000000 0.435242 0.304077 0.001312 0.444366 0.282318 0.050537 0.443939 0.282135 0.097870 0.443573 0.281982 0.141754 0.443146 0.281647 0.182007 0.442810 0.281311 0.218048 0.442688 0.281189 0.250153 0.442688 0.281067 0.279388 0.442810 0.281067 0.307709 0.443909 0.282043 0.335022 0.445099 0.283020 0.362091 0.446320 0.283997 0.389832 0.447510 0.285034 0.418762 0.448761 0.285919 0.449707 0.449982 0.286865 0.481750 0.450043 0.286438 0.516724 0.449951 0.285767 0.556335 0.449768 0.284912 0.599640 0.449371 0.283936 0.645294 0.449005 0.282928 0.691589 0.448730 0.281952 0.736816 0.448395 0.280884 0.779449 0.448212 0.279999 0.818085 0.448059 0.279144 0.852295 0.447998 0.278442 0.882599 0.448029 0.277863 0.909454 0.448273 0.277313 0.933319 0.448395 0.276855 0.954651 0.448700 0.276428 0.973907 0.448975 0.275818 0.991394 0.449249 0.275269 1.000000 0.454285 0.284546 1.000000 0.464630 0.304321 0.006348 0.476318 0.283722 0.055634 0.475769 0.283234 0.102692 0.475372 0.282776 0.146667 0.475006 0.282379 0.186676 0.474731 0.282074 0.222260 0.474701 0.281891 0.253998 0.474762 0.281677 0.282990 0.475006 0.281677 0.311188 0.476166 0.282684 0.338379 0.477356 0.283661 0.365509 0.478546 0.284607 0.393402 0.479797 0.285522 0.422485 0.480927 0.286438 0.453674 0.482208 0.287292 0.486938 0.483276 0.287964 0.522308 0.483093 0.287231 0.562225 0.482910 0.286377 0.605499 0.482605 0.285309 0.650909 0.482208 0.284302 0.696686 0.481964 0.283173 0.741241 0.481598 0.282166 0.783051 0.481323 0.281219 0.820862 0.481232 0.280365 0.854431 0.481110 0.279602 0.884155 0.481232 0.279022 0.910583 0.481201 0.278320 0.934143 0.481354 0.277679 0.955261 0.481506 0.276978 0.974304 0.481934 0.276245 0.991638 0.482208 0.275513 1.000000 0.486359 0.284851 1.000000 0.494690 0.304382 0.012177 0.508881 0.284454 0.061798 0.508392 0.283905 0.108948 0.507996 0.283356 0.152557 0.507721 0.282928 0.192108 0.507568 0.282532 0.227081 0.507599 0.282288 0.258179 0.507721 0.282135 0.286987 0.508087 0.282257 0.314941 0.509308 0.283203 0.341980 0.510498 0.284088 0.369171 0.511719 0.285004 0.397064 0.512939 0.285858 0.426331 0.514130 0.286713 0.457642 0.515411 0.287537 0.491241 0.516571 0.288300 0.527893 0.517456 0.288605 0.568054 0.517181 0.287659 0.611206 0.516785 0.286621 0.656250 0.516388 0.285522 0.701447 0.515991 0.284424 0.745300 0.515686 0.283325 0.786285 0.515350 0.282349 0.823364 0.515137 0.281464 0.856323 0.515015 0.280609 0.885651 0.515015 0.279724 0.911682 0.514984 0.278900 0.935028 0.515259 0.278076 0.955872 0.515411 0.277252 0.974731 0.515533 0.276398 0.991913 0.515900 0.275543 1.000000 0.519287 0.285004 1.000000 0.525970 0.304291 0.019714 0.544067 0.284912 0.069397 0.543549 0.284363 0.116272 0.543243 0.283813 0.159302 0.543030 0.283325 0.197998 0.542908 0.282928 0.232208 0.542999 0.282654 0.262756 0.543121 0.282471 0.291290 0.543671 0.282593 0.318817 0.544891 0.283478 0.345734 0.546143 0.284363 0.372864 0.547333 0.285248 0.400818 0.548615 0.286011 0.430206 0.549866 0.286835 0.461670 0.551056 0.287598 0.495361 0.552277 0.288269 0.532715 0.553497 0.288971 0.573639 0.553955 0.288879 0.616669 0.553467 0.287781 0.661224 0.553070 0.286652 0.705841 0.552582 0.285522 0.748932 0.552063 0.284393 0.789276 0.551758 0.283295 0.825714 0.551422 0.282227 0.858185 0.551300 0.281158 0.887085 0.551300 0.280151 0.912842 0.551270 0.279175 0.935852 0.551422 0.278229 0.956512 0.551605 0.277283 0.975159 0.551819 0.276367 0.992188 0.552032 0.275452 1.000000 0.554504 0.285004 1.000000 0.559570 0.304169 0.028534 0.581940 0.285309 0.077942 0.581482 0.284668 0.124298 0.581146 0.283997 0.166534 0.580902 0.283539 0.204254 0.580811 0.283020 0.237549 0.580872 0.282776 0.267365 0.581085 0.282471 0.295502 0.581757 0.282806 0.322845 0.583008 0.283691 0.349548 0.584198 0.284515 0.376617 0.585419 0.285339 0.404633 0.586700 0.286041 0.434021 0.587891 0.286774 0.465546 0.589050 0.287506 0.499329 0.590210 0.288147 0.536774 0.591400 0.288788 0.578430 0.592499 0.289429 0.621643 0.592468 0.288849 0.665771 0.591919 0.287659 0.709808 0.591248 0.286407 0.752350 0.590759 0.285156 0.792145 0.590302 0.283813 0.828033 0.590088 0.282562 0.860046 0.589752 0.281403 0.888550 0.589691 0.280273 0.913971 0.589600 0.279205 0.936707 0.589691 0.278168 0.957092 0.589752 0.277161 0.975555 0.589935 0.276215 0.992401 0.590118 0.275299 1.000000 0.591675 0.285095 1.000000 0.594849 0.304108 0.038300 0.621887 0.285309 0.087341 0.621460 0.284668 0.132843 0.621033 0.284119 0.174072 0.620819 0.283478 0.210602 0.620697 0.283020 0.242889 0.620758 0.282684 0.272034 0.620880 0.282501 0.299805 0.621674 0.282928 0.326752 0.622925 0.283752 0.353302 0.624023 0.284485 0.380280 0.625214 0.285217 0.408142 0.626373 0.285919 0.437622 0.627472 0.286621 0.469208 0.628662 0.287262 0.502930 0.629700 0.287872 0.540436 0.630737 0.288422 0.581940 0.631775 0.289032 0.626007 0.632751 0.289459 0.670013 0.632355 0.288330 0.713715 0.631653 0.286896 0.755829 0.631042 0.285461 0.794983 0.630585 0.284027 0.830353 0.630188 0.282684 0.861877 0.629791 0.281403 0.889984 0.629608 0.280182 0.915009 0.629456 0.279083 0.937469 0.629608 0.277954 0.957703 0.629639 0.276978 0.975952 0.629578 0.276093 0.992645 0.629669 0.275238 1.000000 0.630249 0.285187 1.000000 0.631470 0.304138 0.048950 0.663177 0.285431 0.097229 0.662689 0.284668 0.141693 0.662231 0.283936 0.181641 0.661957 0.283386 0.216888 0.661804 0.282990 0.248230 0.661835 0.282562 0.276642 0.661926 0.282318 0.304016 0.662781 0.282867 0.330627 0.663879 0.283661 0.356903 0.664948 0.284332 0.383667 0.666077 0.285004 0.411499 0.667053 0.285675 0.441010 0.668121 0.286285 0.472473 0.669098 0.286896 0.506226 0.670074 0.287476 0.543762 0.670959 0.287903 0.585205 0.671906 0.288269 0.629120 0.672852 0.288513 0.674347 0.673737 0.288666 0.717621 0.672974 0.287079 0.759155 0.672180 0.285522 0.797791 0.671570 0.283966 0.832581 0.671112 0.282562 0.863647 0.670746 0.281250 0.891357 0.670563 0.279999 0.916107 0.670349 0.278900 0.938263 0.670227 0.277832 0.958221 0.670135 0.276886 0.976288 0.670197 0.276062 0.992859 0.670288 0.275238 1.000000 0.669556 0.285431 1.000000 0.668732 0.304413 0.060028 0.704926 0.285278 0.107269 0.704376 0.284424 0.150513 0.703888 0.283783 0.189087 0.703522 0.283264 0.223083 0.703308 0.282745 0.253418 0.703247 0.282440 0.281036 0.703217 0.282135 0.308044 0.704163 0.282776 0.334198 0.705109 0.283417 0.360229 0.706085 0.284119 0.386993 0.707031 0.284760 0.414581 0.707916 0.285339 0.443939 0.708771 0.285919 0.475372 0.709656 0.286407 0.509186 0.710510 0.286743 0.547058 0.711395 0.286957 0.588470 0.712189 0.287140 0.632263 0.713043 0.287262 0.677277 0.713806 0.287292 0.721405 0.714386 0.286987 0.762512 0.713562 0.285370 0.800507 0.712952 0.283813 0.834778 0.712341 0.282349 0.865356 0.711975 0.281036 0.892700 0.711517 0.279846 0.917084 0.711304 0.278748 0.938995 0.711060 0.277771 0.958740 0.710938 0.276886 0.976624 0.710938 0.276154 0.993042 0.710876 0.275543 1.000000 0.708740 0.286011 1.000000 0.706238 0.305054 0.071198 0.746277 0.284912 0.117249 0.745605 0.284149 0.159119 0.745056 0.283569 0.196167 0.744629 0.282928 0.228882 0.744324 0.282410 0.258270 0.744080 0.282135 0.285278 0.744049 0.281921 0.311768 0.744965 0.282562 0.337494 0.745789 0.283203 0.363281 0.746643 0.283813 0.389709 0.747437 0.284363 0.417297 0.748138 0.284821 0.446747 0.748932 0.285248 0.478241 0.749664 0.285461 0.512360 0.750397 0.285675 0.550415 0.751190 0.285767 0.591858 0.751923 0.285797 0.635468 0.752594 0.285767 0.679901 0.753326 0.285706 0.723969 0.754028 0.285645 0.765717 0.754303 0.285095 0.803131 0.753479 0.283539 0.836853 0.752991 0.282166 0.867004 0.752319 0.280914 0.893921 0.751984 0.279755 0.918060 0.751648 0.278748 0.939667 0.751312 0.277863 0.959229 0.751099 0.277191 0.976959 0.750977 0.276611 0.993225 0.750671 0.276184 1.000000 0.747498 0.286926 1.000000 0.742981 0.306091 0.082306 0.786346 0.284698 0.126984 0.785614 0.283936 0.167328 0.784973 0.283203 0.202881 0.784454 0.282562 0.234344 0.784058 0.282227 0.262726 0.783783 0.281891 0.289185 0.783722 0.281677 0.315094 0.784454 0.282288 0.340485 0.785156 0.282837 0.366028 0.785828 0.283356 0.392426 0.786469 0.283722 0.420044 0.787109 0.283966 0.449615 0.787811 0.284149 0.481323 0.788452 0.284302 0.515503 0.789062 0.284332 0.553711 0.789703 0.284302 0.595093 0.790344 0.284271 0.638458 0.790924 0.284210 0.682739 0.791565 0.284088 0.726318 0.792175 0.283966 0.767822 0.792725 0.283905 0.805634 0.792847 0.283386 0.838837 0.792175 0.282043 0.868530 0.791504 0.280884 0.895111 0.791077 0.279846 0.918915 0.790649 0.279022 0.940277 0.790192 0.278351 0.959625 0.789917 0.277771 0.977234 0.789642 0.277466 0.993347 0.789459 0.277252 1.000000 0.785095 0.288300 1.000000 0.778503 0.307617 0.093048 0.824402 0.284271 0.136139 0.823578 0.283600 0.174927 0.822876 0.282806 0.208954 0.822266 0.282227 0.239197 0.821747 0.281738 0.266632 0.821320 0.281372 0.292603 0.821350 0.281372 0.318024 0.821960 0.281921 0.343231 0.822540 0.282288 0.368744 0.823059 0.282532 0.395081 0.823639 0.282715 0.422882 0.824127 0.282867 0.452606 0.824646 0.282898 0.484406 0.825195 0.282867 0.518829 0.825714 0.282837 0.557068 0.826233 0.282776 0.598297 0.826752 0.282654 0.641571 0.827301 0.282562 0.685333 0.827759 0.282532 0.728424 0.828278 0.282471 0.769348 0.828735 0.282440 0.807190 0.829254 0.282471 0.840668 0.829315 0.282104 0.869934 0.828522 0.281097 0.896179 0.827942 0.280243 0.919708 0.827454 0.279602 0.940826 0.827026 0.279144 0.960022 0.826660 0.278839 0.977448 0.826324 0.278748 0.993469 0.826050 0.278900 1.000000 0.820587 0.290466 1.000000 0.812988 0.310822 0.103058 0.859802 0.284027 0.144684 0.858917 0.283112 0.181763 0.858124 0.282593 0.214325 0.857422 0.281891 0.243500 0.856873 0.281433 0.270111 0.856323 0.280853 0.295776 0.856415 0.280914 0.321045 0.856842 0.281189 0.346069 0.857269 0.281372 0.371460 0.857697 0.281494 0.397980 0.858154 0.281555 0.425842 0.858582 0.281525 0.455597 0.859039 0.281464 0.487488 0.859467 0.281433 0.522003 0.859863 0.281311 0.560333 0.860260 0.281250 0.601440 0.860657 0.281189 0.644409 0.861084 0.281128 0.687775 0.861511 0.281128 0.730286 0.861908 0.281128 0.770844 0.862244 0.281219 0.808136 0.862701 0.281403 0.841492 0.863037 0.281647 0.871246 0.863037 0.281616 0.897156 0.862488 0.281067 0.920410 0.861847 0.280609 0.941315 0.861328 0.280426 0.960297 0.860931 0.280396 0.977631 0.860596 0.280853 0.993561 0.860321 0.282257 1.000000 0.854340 0.294922 1.000000 0.845001 0.315704 0.112274 0.891968 0.283630 0.152222 0.891022 0.282837 0.187653 0.890167 0.282135 0.219025 0.889465 0.281403 0.247406 0.888855 0.280762 0.273560 0.888214 0.280060 0.299011 0.888336 0.280060 0.324036 0.888672 0.280212 0.348907 0.889038 0.280243 0.374420 0.889343 0.280243 0.400940 0.889679 0.280212 0.428864 0.890015 0.280151 0.458649 0.890320 0.280060 0.490540 0.890656 0.279968 0.525177 0.890991 0.279938 0.563477 0.891327 0.279877 0.604614 0.891663 0.279877 0.647247 0.891907 0.279907 0.690186 0.892242 0.279968 0.732208 0.892548 0.280121 0.772247 0.892853 0.280396 0.808929 0.893127 0.280701 0.841827 0.893402 0.281158 0.871613 0.893738 0.281738 0.898010 0.893768 0.282318 0.920990 0.893219 0.282196 0.941772 0.892639 0.282471 0.960632 0.892273 0.283722 0.977814 0.892029 0.285400 0.993500 0.891693 0.287384 1.000000 0.884705 0.300385 1.000000 0.874115 0.321533 0.120422 0.920715 0.283417 0.158844 0.919739 0.282562 0.193054 0.918854 0.281647 0.223633 0.918091 0.280731 0.251373 0.917358 0.279999 0.276978 0.916718 0.278992 0.302368 0.916901 0.279053 0.327148 0.917175 0.279053 0.351898 0.917450 0.279022 0.377350 0.917694 0.278992 0.403839 0.917908 0.278870 0.431885 0.918182 0.278809 0.461578 0.918396 0.278717 0.493561 0.918640 0.278687 0.528381 0.918884 0.278687 0.566589 0.919098 0.278687 0.607483 0.919312 0.278748 0.649750 0.919586 0.278961 0.692352 0.919800 0.279236 0.734009 0.919983 0.279541 0.773438 0.920197 0.279999 0.809509 0.920441 0.280579 0.842133 0.920593 0.281281 0.871429 0.920807 0.282166 0.897858 0.921021 0.283295 0.921600 0.921326 0.285431 0.942200 0.920868 0.286987 0.960815 0.920288 0.288818 0.977783 0.919952 0.290985 0.993439 0.919403 0.293518 1.000000 0.912048 0.306641 1.000000 0.900360 0.328064 0.127838 0.946167 0.282776 0.165253 0.945190 0.281860 0.198395 0.944336 0.280670 0.228210 0.943573 0.279694 0.255280 0.942841 0.278870 0.280518 0.942230 0.277924 0.305634 0.942413 0.277863 0.330261 0.942596 0.277832 0.354858 0.942780 0.277740 0.380157 0.942963 0.277649 0.406708 0.943146 0.277618 0.434692 0.943329 0.277588 0.464600 0.943512 0.277588 0.496521 0.943634 0.277588 0.531311 0.943817 0.277649 0.569641 0.943939 0.277832 0.610138 0.944153 0.278076 0.652283 0.944275 0.278442 0.694336 0.944458 0.278931 0.735382 0.944611 0.279449 0.774445 0.944733 0.280212 0.810120 0.944885 0.281097 0.842377 0.945007 0.282166 0.871674 0.945190 0.284332 0.897644 0.945435 0.286713 0.921143 0.945618 0.289429 0.942200 0.945709 0.292450 0.960785 0.945251 0.294891 0.977631 0.944824 0.297546 0.993286 0.944183 0.300415 1.000000 0.936493 0.313629 1.000000 0.924072 0.335175 0.135223 0.969025 0.282104 0.171478 0.968048 0.280914 0.203674 0.967163 0.279724 0.232635 0.966400 0.278534 0.259155 0.965668 0.277557 0.284119 0.965210 0.276794 0.308929 0.965332 0.276703 0.333252 0.965454 0.276642 0.357758 0.965546 0.276581 0.383057 0.965698 0.276550 0.409454 0.965820 0.276550 0.437531 0.965912 0.276581 0.467438 0.966034 0.276611 0.499420 0.966125 0.276825 0.534332 0.966248 0.277069 0.572327 0.966339 0.277405 0.612640 0.966431 0.277832 0.654388 0.966522 0.278442 0.696167 0.966614 0.279144 0.736664 0.966736 0.279968 0.775269 0.966797 0.281128 0.810852 0.966919 0.283203 0.842804 0.967072 0.285645 0.871399 0.967163 0.288391 0.897095 0.967194 0.291290 0.920410 0.967285 0.294495 0.941284 0.967346 0.297943 0.960358 0.967407 0.301544 0.977478 0.967072 0.304810 0.993073 0.966522 0.307953 1.000000 0.958618 0.321045 1.000000 0.945404 0.342621 0.142365 0.989594 0.280945 0.177521 0.988647 0.279694 0.208740 0.987793 0.278473 0.236938 0.987030 0.277344 0.262878 0.986267 0.276306 0.287689 0.985992 0.275665 0.312073 0.986023 0.275574 0.336182 0.986115 0.275543 0.360687 0.986176 0.275543 0.385864 0.986267 0.275574 0.412201 0.986298 0.275635 0.440308 0.986389 0.275818 0.470154 0.986450 0.276062 0.501953 0.986511 0.276428 0.536804 0.986542 0.276855 0.574799 0.986603 0.277435 0.614929 0.986664 0.278168 0.656036 0.986694 0.278992 0.697540 0.986725 0.280121 0.738342 0.986816 0.282166 0.776489 0.986847 0.284576 0.811249 0.986847 0.287262 0.842712 0.986908 0.290283 0.870941 0.986908 0.293488 0.896454 0.986908 0.296844 0.919464 0.986908 0.300446 0.940277 0.986877 0.304260 0.959442 0.986877 0.308075 0.976868 0.986877 0.312042 0.992889 0.986664 0.315826 1.000000 0.978790 0.328674 1.000000 0.965088 0.350250 0.161133 1.000000 0.287659 0.193726 1.000000 0.286194 0.222656 1.000000 0.284607 0.248993 1.000000 0.283142 0.273285 1.000000 0.281616 0.297241 1.000000 0.281158 0.320892 1.000000 0.281189 0.344482 1.000000 0.281281 0.368225 1.000000 0.281372 0.392914 1.000000 0.281555 0.418671 1.000000 0.281891 0.446136 1.000000 0.282227 0.475281 1.000000 0.282684 0.506653 1.000000 0.283325 0.540771 1.000000 0.283966 0.577972 1.000000 0.284851 0.617065 1.000000 0.285889 0.658051 1.000000 0.287964 0.698700 1.000000 0.290344 0.737671 1.000000 0.293030 0.774445 1.000000 0.295929 0.808228 1.000000 0.299011 0.838867 1.000000 0.302368 0.866425 1.000000 0.305908 0.891479 1.000000 0.309509 0.914398 1.000000 0.313293 0.935150 1.000000 0.317200 0.954071 1.000000 0.321075 0.971649 1.000000 0.325104 0.987732 1.000000 0.329010 1.000000 0.997223 0.337006 1.000000 0.983276 0.359802 0.192993 1.000000 0.304230 0.224091 1.000000 0.304260 0.251770 1.000000 0.304108 0.277039 1.000000 0.304077 0.300415 1.000000 0.304016 0.322723 1.000000 0.304138 0.344330 1.000000 0.304199 0.365875 1.000000 0.304352 0.388031 1.000000 0.304565 0.410767 1.000000 0.304932 0.434692 1.000000 0.305328 0.460205 1.000000 0.305878 0.487396 1.000000 0.306549 0.516754 1.000000 0.307343 0.549042 1.000000 0.308289 0.584778 1.000000 0.310242 0.621857 1.000000 0.312531 0.659668 1.000000 0.315094 0.697144 1.000000 0.317871 0.733368 1.000000 0.320892 0.767578 1.000000 0.324127 0.799133 1.000000 0.327454 0.828003 1.000000 0.330994 0.854218 1.000000 0.334717 0.878021 1.000000 0.338379 0.899994 1.000000 0.342224 0.919830 1.000000 0.346161 0.938293 1.000000 0.349945 0.955353 1.000000 0.354370 0.971130 1.000000 0.359497 0.986023 1.000000 0.365295 1.000000 1.000000 0.371399 0.000000 0.003784 0.247253 0.044830 0.002289 0.256104 0.092407 0.005829 0.261597 0.137238 0.009644 0.267456 0.178680 0.013428 0.273254 0.216034 0.017303 0.279144 0.249146 0.021118 0.284607 0.279114 0.024597 0.289551 0.306152 0.026703 0.292572 0.331268 0.027191 0.293793 0.355713 0.027679 0.294952 0.380249 0.028137 0.296143 0.405518 0.028442 0.297180 0.432190 0.028687 0.297974 0.460907 0.028809 0.298828 0.491974 0.028687 0.299316 0.526581 0.028473 0.299652 0.566162 0.028046 0.299835 0.609741 0.027496 0.299805 0.655975 0.026978 0.299622 0.703217 0.026398 0.299591 0.749695 0.026001 0.299469 0.793610 0.025696 0.299286 0.833649 0.025604 0.299438 0.869232 0.025818 0.299438 0.900665 0.026215 0.299774 0.928406 0.026825 0.299988 0.952942 0.027710 0.300323 0.974792 0.028442 0.300507 0.994385 0.029175 0.300659 1.000000 0.048767 0.309021 1.000000 0.075623 0.321075 0.000000 0.043488 0.259094 0.044800 0.043274 0.265991 0.092438 0.046997 0.271942 0.137177 0.050690 0.277802 0.178436 0.054138 0.283264 0.215576 0.057556 0.288300 0.248535 0.060089 0.291870 0.278168 0.061615 0.294067 0.305115 0.062683 0.295776 0.330017 0.063110 0.296906 0.354370 0.063477 0.297974 0.378906 0.063782 0.299011 0.404327 0.064026 0.299927 0.431091 0.064209 0.300751 0.459808 0.064240 0.301361 0.490906 0.064056 0.301819 0.525482 0.063812 0.302124 0.565033 0.063416 0.302216 0.608551 0.062836 0.302094 0.654785 0.062347 0.302002 0.701996 0.061798 0.301758 0.748901 0.061462 0.301575 0.793274 0.061249 0.301239 0.833282 0.061249 0.301270 0.868896 0.061523 0.301270 0.900269 0.062073 0.301422 0.927948 0.062531 0.301575 0.952362 0.063110 0.301544 0.974182 0.063843 0.301819 0.993683 0.064667 0.301880 1.000000 0.082764 0.310272 1.000000 0.109100 0.323212 0.000000 0.083588 0.272247 0.046478 0.084778 0.277649 0.092499 0.086761 0.281952 0.137115 0.089996 0.287048 0.178070 0.092407 0.290680 0.214722 0.093903 0.292847 0.247284 0.095276 0.294861 0.276703 0.096588 0.296967 0.303680 0.097717 0.298767 0.328674 0.098053 0.299835 0.353119 0.098267 0.300812 0.377777 0.098541 0.301758 0.403198 0.098724 0.302612 0.429962 0.098816 0.303284 0.458679 0.098816 0.303833 0.489838 0.098694 0.304199 0.524384 0.098419 0.304382 0.563873 0.097992 0.304352 0.607391 0.097534 0.304291 0.654114 0.097107 0.304016 0.701874 0.096588 0.303711 0.748993 0.096252 0.303375 0.793365 0.096191 0.303162 0.833405 0.096283 0.303009 0.868866 0.096436 0.302856 0.900024 0.096710 0.302643 0.927551 0.097168 0.302673 0.951935 0.097839 0.302643 0.973602 0.098541 0.302704 0.993011 0.099487 0.302917 1.000000 0.116180 0.311340 1.000000 0.141876 0.325012 0.000580 0.123322 0.284821 0.048218 0.124664 0.288239 0.093750 0.125397 0.290588 0.136505 0.125610 0.291656 0.176849 0.126862 0.293732 0.213226 0.128174 0.295807 0.245667 0.129425 0.297760 0.275085 0.130676 0.299713 0.302368 0.131866 0.301666 0.327484 0.132019 0.302551 0.351959 0.132233 0.303467 0.376617 0.132477 0.304321 0.402069 0.132599 0.305054 0.428833 0.132721 0.305725 0.457611 0.132690 0.306091 0.488800 0.132599 0.306458 0.523315 0.132324 0.306519 0.563232 0.131989 0.306458 0.607483 0.131561 0.306274 0.654480 0.131165 0.305908 0.702515 0.130737 0.305450 0.749756 0.130524 0.305115 0.793945 0.130310 0.304596 0.833740 0.130157 0.304321 0.868988 0.130310 0.303955 0.900024 0.130646 0.303711 0.927399 0.131165 0.303802 0.951538 0.131805 0.303650 0.973083 0.132599 0.303680 0.992401 0.133514 0.303619 1.000000 0.148834 0.312317 1.000000 0.173889 0.326782 0.002319 0.161255 0.293701 0.049255 0.160767 0.294250 0.093964 0.160461 0.294861 0.135864 0.160034 0.295410 0.175171 0.160339 0.296600 0.211548 0.161499 0.298553 0.244141 0.162659 0.300446 0.273712 0.163849 0.302368 0.301025 0.164948 0.304169 0.326294 0.165222 0.305145 0.350769 0.165436 0.305969 0.375488 0.165588 0.306793 0.400909 0.165741 0.307404 0.427734 0.165802 0.307983 0.456543 0.165863 0.308350 0.488159 0.165771 0.308594 0.523438 0.165527 0.308594 0.563751 0.165222 0.308350 0.608398 0.164886 0.308014 0.655762 0.164520 0.307587 0.703796 0.164032 0.307007 0.750793 0.163574 0.306366 0.794891 0.163361 0.305725 0.834412 0.163269 0.305328 0.869385 0.163483 0.305054 0.900177 0.163849 0.304749 0.927307 0.164368 0.304535 0.951294 0.165070 0.304596 0.972626 0.165833 0.304474 0.991791 0.166687 0.304535 1.000000 0.180664 0.313141 1.000000 0.205048 0.328583 0.002594 0.195404 0.297943 0.049072 0.194946 0.298462 0.093414 0.194458 0.298950 0.135345 0.193970 0.299438 0.174286 0.193634 0.300018 0.210083 0.193939 0.301178 0.242767 0.195038 0.303009 0.272308 0.196106 0.304749 0.299713 0.197205 0.306519 0.325134 0.197632 0.307556 0.349640 0.197815 0.308289 0.374329 0.197968 0.308960 0.399811 0.198151 0.309601 0.427063 0.198242 0.310059 0.456482 0.198303 0.310303 0.488556 0.198242 0.310486 0.524261 0.198059 0.310394 0.565125 0.197784 0.310059 0.610046 0.197357 0.309540 0.657440 0.196747 0.308838 0.705536 0.196228 0.308105 0.752411 0.195862 0.307404 0.796204 0.195679 0.306854 0.835419 0.195648 0.306274 0.870056 0.195892 0.306000 0.900452 0.196228 0.305725 0.927307 0.196747 0.305481 0.951050 0.197449 0.305420 0.972137 0.198151 0.305389 0.991180 0.198944 0.305237 1.000000 0.211639 0.313690 1.000000 0.235321 0.330261 0.002014 0.228546 0.302032 0.048370 0.227966 0.302429 0.093048 0.227448 0.302826 0.135193 0.226929 0.303284 0.174103 0.226471 0.303680 0.209320 0.226196 0.304260 0.241425 0.226532 0.305359 0.270996 0.227631 0.307098 0.298431 0.228699 0.308746 0.323975 0.229218 0.309814 0.348480 0.229462 0.310486 0.373596 0.229584 0.311035 0.399689 0.229797 0.311615 0.427399 0.229919 0.311951 0.457214 0.230011 0.312164 0.489716 0.230011 0.312164 0.525940 0.229736 0.311890 0.567078 0.229248 0.311371 0.612213 0.228699 0.310547 0.659760 0.228210 0.309814 0.707825 0.227722 0.308960 0.754517 0.227356 0.308258 0.797852 0.227234 0.307617 0.836578 0.227234 0.307129 0.870789 0.227448 0.306793 0.900879 0.227783 0.306366 0.927399 0.228302 0.306305 0.950867 0.228912 0.306152 0.971771 0.229553 0.306000 0.990601 0.230347 0.306000 1.000000 0.241730 0.314301 1.000000 0.264740 0.331940 0.001617 0.260681 0.305939 0.048187 0.260040 0.306244 0.092865 0.259430 0.306549 0.135010 0.258942 0.306915 0.173981 0.258484 0.307281 0.209167 0.258148 0.307739 0.240692 0.257996 0.308228 0.269653 0.258362 0.309235 0.297119 0.259460 0.310822 0.323181 0.260101 0.311920 0.348358 0.260376 0.312531 0.373810 0.260559 0.312988 0.400269 0.260742 0.313416 0.428406 0.260956 0.313751 0.458588 0.260925 0.313721 0.491425 0.260742 0.313446 0.528015 0.260437 0.312958 0.569641 0.259979 0.312347 0.615051 0.259491 0.311523 0.662689 0.259064 0.310760 0.710571 0.258575 0.309937 0.756927 0.258301 0.309143 0.799805 0.258118 0.308441 0.838013 0.258148 0.307922 0.871735 0.258362 0.307495 0.901367 0.258698 0.307129 0.927521 0.259186 0.306915 0.950714 0.259705 0.306671 0.971405 0.260345 0.306458 0.990082 0.260986 0.306427 1.000000 0.271210 0.314484 1.000000 0.293549 0.333252 0.001434 0.292084 0.309662 0.048035 0.291504 0.309875 0.092712 0.290894 0.310150 0.134888 0.290314 0.310364 0.173798 0.289886 0.310669 0.209045 0.289581 0.311035 0.240570 0.289429 0.311493 0.269592 0.289459 0.311981 0.296997 0.289764 0.312744 0.323517 0.290558 0.313843 0.348969 0.290833 0.314392 0.374817 0.291138 0.314819 0.401550 0.291260 0.315002 0.429901 0.291290 0.314972 0.460419 0.291199 0.314789 0.493652 0.291016 0.314453 0.530853 0.290741 0.313904 0.572845 0.290344 0.313141 0.618500 0.289886 0.312347 0.666107 0.289429 0.311523 0.713776 0.289062 0.310699 0.759613 0.288757 0.309845 0.801880 0.288635 0.309174 0.839508 0.288696 0.308563 0.872681 0.288849 0.308136 0.901917 0.289154 0.307709 0.927704 0.289581 0.307343 0.950592 0.290161 0.307220 0.971008 0.290649 0.307098 0.989471 0.291290 0.306976 1.000000 0.300262 0.314697 1.000000 0.321960 0.334717 0.000824 0.322784 0.312805 0.047485 0.322205 0.313019 0.092224 0.321625 0.313171 0.134399 0.321106 0.313385 0.173370 0.320801 0.313629 0.209229 0.320557 0.313965 0.241608 0.320435 0.314331 0.271027 0.320496 0.314758 0.298370 0.320648 0.315155 0.324829 0.321136 0.315857 0.350494 0.321289 0.316132 0.376404 0.321411 0.316193 0.403412 0.321533 0.316254 0.432159 0.321655 0.316193 0.463043 0.321564 0.315948 0.496765 0.321472 0.315552 0.534485 0.321167 0.314941 0.576874 0.320770 0.314209 0.622681 0.320374 0.313324 0.670105 0.319977 0.312439 0.717499 0.319672 0.311584 0.762817 0.319458 0.310730 0.804443 0.319275 0.310028 0.841400 0.319366 0.309448 0.874054 0.319519 0.308960 0.902771 0.319824 0.308563 0.928253 0.320374 0.308289 0.950836 0.320740 0.308014 0.971008 0.321381 0.307861 0.989288 0.321838 0.307709 1.000000 0.329865 0.315369 1.000000 0.350189 0.335907 0.000000 0.352264 0.314758 0.046112 0.352203 0.315216 0.090851 0.351654 0.315369 0.133820 0.351227 0.315460 0.173920 0.350861 0.315582 0.210236 0.350647 0.315765 0.242859 0.350647 0.316101 0.272491 0.350800 0.316498 0.299988 0.350891 0.316711 0.326508 0.351379 0.317200 0.353241 0.352478 0.318329 0.379425 0.352631 0.318359 0.406769 0.352814 0.318359 0.435822 0.352966 0.318176 0.467072 0.352905 0.317902 0.501068 0.352844 0.317413 0.539368 0.352570 0.316742 0.582123 0.352173 0.315948 0.627991 0.351868 0.315063 0.675201 0.351440 0.314087 0.722198 0.351135 0.313171 0.766907 0.350830 0.312347 0.807770 0.350739 0.311615 0.844025 0.350891 0.310944 0.876068 0.351013 0.310486 0.904327 0.351318 0.310028 0.929352 0.351654 0.309753 0.951538 0.352234 0.309479 0.971527 0.352631 0.309204 0.989594 0.353088 0.308929 1.000000 0.360321 0.316711 1.000000 0.378387 0.337067 0.000000 0.381317 0.316193 0.045532 0.382416 0.317322 0.091797 0.381927 0.317383 0.135468 0.381500 0.317261 0.175934 0.381256 0.317352 0.212433 0.381134 0.317474 0.244995 0.381134 0.317596 0.274536 0.381134 0.317688 0.301941 0.381226 0.317749 0.328613 0.381775 0.318237 0.355621 0.382935 0.319305 0.382996 0.384155 0.320282 0.410614 0.384430 0.320251 0.439972 0.384491 0.320007 0.471558 0.384521 0.319672 0.505920 0.384430 0.319153 0.544617 0.384155 0.318390 0.587677 0.383881 0.317566 0.633575 0.383484 0.316589 0.680542 0.383148 0.315674 0.726929 0.382843 0.314697 0.770935 0.382568 0.313812 0.811035 0.382507 0.313049 0.846619 0.382538 0.312408 0.878021 0.382660 0.311859 0.905823 0.382904 0.311432 0.930359 0.383240 0.311035 0.952301 0.383636 0.310730 0.971954 0.384125 0.310455 0.989838 0.384460 0.310181 1.000000 0.390930 0.317963 1.000000 0.406860 0.337921 0.000000 0.412811 0.318695 0.047699 0.413055 0.319031 0.094482 0.412598 0.318970 0.138672 0.412262 0.318878 0.179199 0.412018 0.318787 0.215332 0.411835 0.318604 0.247681 0.411774 0.318573 0.277100 0.411865 0.318542 0.304504 0.412018 0.318542 0.331360 0.412689 0.319092 0.358459 0.413910 0.320129 0.386017 0.415070 0.321014 0.414856 0.416351 0.322021 0.444397 0.416504 0.321808 0.476318 0.416595 0.321381 0.511078 0.416504 0.320740 0.550262 0.416260 0.319977 0.593475 0.415894 0.319061 0.639221 0.415619 0.318115 0.685913 0.415253 0.317078 0.731689 0.414917 0.316071 0.774963 0.414764 0.315186 0.814209 0.414551 0.314392 0.849060 0.414642 0.313721 0.879883 0.414764 0.313202 0.907135 0.414978 0.312683 0.931335 0.415222 0.312286 0.952911 0.415497 0.311890 0.972382 0.415833 0.311554 0.990082 0.416168 0.311066 1.000000 0.421967 0.318787 1.000000 0.435699 0.338409 0.002319 0.444733 0.320770 0.051788 0.444305 0.320587 0.098816 0.443878 0.320190 0.142792 0.443451 0.319885 0.183105 0.443176 0.319641 0.218964 0.443054 0.319427 0.251068 0.443085 0.319305 0.280273 0.443207 0.319244 0.307587 0.443451 0.319214 0.334473 0.444275 0.319763 0.361633 0.445435 0.320740 0.389343 0.446686 0.321686 0.418396 0.447906 0.322571 0.449280 0.449158 0.323456 0.481415 0.449188 0.322968 0.516541 0.449127 0.322296 0.556091 0.448853 0.321442 0.599426 0.448578 0.320465 0.644958 0.448212 0.319458 0.691101 0.447784 0.318390 0.736267 0.447510 0.317413 0.778748 0.447327 0.316467 0.817169 0.447174 0.315674 0.851349 0.447235 0.314972 0.881592 0.447205 0.314362 0.908325 0.447357 0.313812 0.932159 0.447540 0.313354 0.953552 0.447815 0.312805 0.972778 0.448090 0.312225 0.990295 0.448334 0.311615 1.000000 0.453339 0.319336 1.000000 0.464935 0.338654 0.007568 0.476624 0.321991 0.057007 0.476105 0.321564 0.104065 0.475616 0.321014 0.148010 0.475342 0.320587 0.187927 0.475159 0.320221 0.223297 0.475067 0.320007 0.255035 0.475159 0.319916 0.283905 0.475372 0.319824 0.311005 0.475586 0.319733 0.337921 0.476501 0.320343 0.364990 0.477661 0.321228 0.392883 0.478912 0.322113 0.422150 0.480133 0.322968 0.453278 0.481354 0.323792 0.486694 0.482452 0.324402 0.522095 0.482391 0.323700 0.561951 0.482117 0.322784 0.605225 0.481781 0.321777 0.650482 0.481384 0.320679 0.696136 0.481079 0.319641 0.740601 0.480713 0.318604 0.782257 0.480499 0.317657 0.819885 0.480316 0.316803 0.853363 0.480225 0.316101 0.883087 0.480255 0.315369 0.909515 0.480286 0.314728 0.933044 0.480499 0.314026 0.954132 0.480652 0.313293 0.973206 0.480988 0.312561 0.990570 0.481201 0.311829 1.000000 0.485474 0.319550 1.000000 0.495026 0.338654 0.013763 0.509216 0.322632 0.063507 0.508789 0.322144 0.110535 0.508392 0.321625 0.154114 0.508087 0.321106 0.193481 0.507965 0.320740 0.228210 0.507965 0.320496 0.259338 0.508087 0.320251 0.287872 0.508362 0.320190 0.314697 0.508636 0.320038 0.341553 0.509674 0.320709 0.368683 0.510864 0.321594 0.396637 0.512115 0.322418 0.426025 0.513336 0.323181 0.457336 0.514526 0.323975 0.491028 0.515808 0.324707 0.527710 0.516602 0.324951 0.567749 0.516296 0.324005 0.610870 0.515900 0.322968 0.655823 0.515533 0.321869 0.700836 0.515045 0.320740 0.744568 0.514771 0.319733 0.785431 0.514435 0.318726 0.822357 0.514221 0.317810 0.855286 0.514160 0.316925 0.884552 0.514160 0.316040 0.910614 0.514130 0.315186 0.933899 0.514343 0.314362 0.954742 0.514465 0.313477 0.973602 0.514801 0.312653 0.990814 0.515045 0.311829 1.000000 0.518463 0.319672 1.000000 0.526367 0.338531 0.021545 0.544403 0.323151 0.071289 0.543945 0.322510 0.117981 0.543579 0.321991 0.160980 0.543365 0.321411 0.199493 0.543304 0.320923 0.233429 0.543335 0.320648 0.263916 0.543518 0.320557 0.291962 0.543793 0.320343 0.318481 0.544098 0.320190 0.345367 0.545258 0.320923 0.372437 0.546539 0.321747 0.400421 0.547699 0.322540 0.429932 0.548981 0.323273 0.461334 0.550232 0.323975 0.495178 0.551422 0.324677 0.532410 0.552612 0.325317 0.573303 0.553009 0.325134 0.616272 0.552643 0.324066 0.660767 0.552124 0.322937 0.705109 0.551575 0.321777 0.748138 0.551147 0.320679 0.788330 0.550842 0.319580 0.824677 0.550537 0.318451 0.857147 0.550385 0.317413 0.886017 0.550385 0.316376 0.911774 0.550354 0.315399 0.934753 0.550476 0.314453 0.955383 0.550659 0.313507 0.974060 0.550690 0.312592 0.991089 0.551056 0.311707 1.000000 0.553619 0.319702 1.000000 0.560028 0.338409 0.030609 0.582275 0.323334 0.080048 0.581879 0.322662 0.126099 0.581512 0.322052 0.168274 0.581299 0.321503 0.205780 0.581238 0.321075 0.238800 0.581268 0.320801 0.268585 0.581482 0.320526 0.296143 0.581726 0.320374 0.322388 0.582092 0.320251 0.349121 0.583313 0.320984 0.376129 0.584503 0.321777 0.404144 0.585785 0.322510 0.433716 0.587006 0.323181 0.465179 0.588135 0.323853 0.499023 0.589294 0.324493 0.536469 0.590485 0.325104 0.578033 0.591553 0.325623 0.621185 0.591522 0.325043 0.665161 0.590912 0.323853 0.709106 0.590332 0.322571 0.751617 0.589722 0.321289 0.791229 0.589264 0.319977 0.827087 0.588989 0.318756 0.859009 0.588715 0.317566 0.887482 0.588654 0.316437 0.912842 0.588593 0.315369 0.935547 0.588684 0.314362 0.955994 0.588776 0.313385 0.974457 0.588928 0.312469 0.991364 0.589081 0.311554 1.000000 0.590851 0.319702 1.000000 0.595245 0.338348 0.040619 0.622253 0.323425 0.089539 0.621857 0.322632 0.134766 0.621429 0.322052 0.175842 0.621216 0.321503 0.212158 0.621124 0.321106 0.244202 0.621155 0.320740 0.273254 0.621338 0.320465 0.300201 0.621460 0.320221 0.326324 0.621918 0.320221 0.352875 0.623138 0.320984 0.379791 0.624268 0.321686 0.407776 0.625397 0.322296 0.437317 0.626556 0.322968 0.468719 0.627594 0.323578 0.502625 0.628723 0.324158 0.540100 0.629700 0.324707 0.581360 0.630737 0.325195 0.625427 0.631744 0.325592 0.669495 0.631256 0.324463 0.712982 0.630524 0.322998 0.755005 0.630005 0.321564 0.794067 0.629456 0.320129 0.829376 0.629089 0.318787 0.860840 0.628784 0.317535 0.888885 0.628571 0.316345 0.913940 0.628540 0.315247 0.936401 0.628448 0.314209 0.956543 0.628571 0.313202 0.974884 0.628662 0.312317 0.991547 0.628632 0.311462 1.000000 0.629578 0.319824 1.000000 0.631866 0.338470 0.051361 0.663574 0.323303 0.099457 0.663025 0.322540 0.143616 0.662598 0.321930 0.183380 0.662323 0.321350 0.218445 0.662201 0.320984 0.249481 0.662170 0.320557 0.277771 0.662262 0.320312 0.304230 0.662354 0.319946 0.330170 0.662842 0.320129 0.356445 0.663940 0.320770 0.383148 0.664978 0.321442 0.411102 0.666046 0.322021 0.440582 0.667053 0.322662 0.471954 0.667999 0.323181 0.505707 0.669006 0.323700 0.543335 0.669952 0.324097 0.584656 0.670807 0.324371 0.628601 0.671722 0.324585 0.673706 0.672638 0.324677 0.716919 0.671875 0.323120 0.758392 0.671112 0.321564 0.796875 0.670532 0.320038 0.831635 0.670074 0.318665 0.862640 0.669708 0.317383 0.890289 0.669434 0.316162 0.915009 0.669250 0.315033 0.937164 0.669220 0.314056 0.957092 0.669067 0.313110 0.975189 0.669067 0.312286 0.991791 0.669067 0.311584 1.000000 0.668854 0.320129 1.000000 0.669159 0.338806 0.062439 0.705231 0.323120 0.109497 0.704681 0.322327 0.152374 0.704224 0.321686 0.190796 0.703827 0.321136 0.224426 0.703613 0.320709 0.254547 0.703583 0.320343 0.282166 0.703522 0.319916 0.308014 0.703491 0.319672 0.333679 0.704041 0.319885 0.359741 0.705017 0.320496 0.386322 0.705902 0.321106 0.414093 0.706787 0.321686 0.443512 0.707733 0.322205 0.474854 0.708527 0.322571 0.508850 0.709381 0.322906 0.546600 0.710236 0.323090 0.587982 0.711060 0.323242 0.631683 0.711853 0.323303 0.676483 0.712646 0.323303 0.720642 0.713165 0.322998 0.761658 0.712463 0.321411 0.799622 0.711731 0.319855 0.833740 0.711121 0.318451 0.864319 0.710785 0.317108 0.891602 0.710449 0.315979 0.915955 0.710175 0.314941 0.937866 0.710022 0.314026 0.957611 0.709747 0.313202 0.975555 0.709808 0.312469 0.991943 0.709747 0.311920 1.000000 0.708435 0.320770 1.000000 0.706451 0.339447 0.073700 0.746521 0.322784 0.119476 0.745880 0.322083 0.160950 0.745331 0.321381 0.197845 0.744904 0.320831 0.230194 0.744598 0.320312 0.259338 0.744385 0.319916 0.286194 0.744293 0.319611 0.311584 0.744171 0.319275 0.337036 0.744690 0.319611 0.362732 0.745483 0.320160 0.389099 0.746246 0.320648 0.416840 0.747040 0.321075 0.446228 0.747803 0.321411 0.477875 0.748535 0.321625 0.511932 0.749237 0.321777 0.549896 0.749969 0.321838 0.591278 0.750732 0.321838 0.634949 0.751465 0.321808 0.679321 0.752136 0.321777 0.723206 0.752869 0.321686 0.764862 0.753143 0.321106 0.802155 0.752289 0.319580 0.835815 0.751648 0.318237 0.865967 0.751282 0.316986 0.892822 0.750824 0.315918 0.916901 0.750458 0.315002 0.938538 0.750214 0.314178 0.958099 0.749969 0.313538 0.975830 0.749695 0.312958 0.992157 0.749573 0.312561 1.000000 0.747040 0.321777 1.000000 0.743103 0.340546 0.084717 0.786591 0.322601 0.128967 0.785797 0.321716 0.169006 0.785187 0.321014 0.204346 0.784637 0.320404 0.235504 0.784302 0.319977 0.263733 0.783966 0.319611 0.289856 0.783722 0.319275 0.314697 0.783447 0.318848 0.339905 0.783966 0.319214 0.365448 0.784637 0.319641 0.391815 0.785278 0.319946 0.419617 0.785919 0.320160 0.449127 0.786560 0.320282 0.480804 0.787231 0.320374 0.515198 0.787872 0.320404 0.553131 0.788452 0.320374 0.594604 0.789093 0.320312 0.637970 0.789703 0.320221 0.682068 0.790344 0.320129 0.725433 0.790894 0.320099 0.767029 0.791504 0.319977 0.804688 0.791687 0.319427 0.837769 0.790924 0.318176 0.867432 0.790192 0.317047 0.893982 0.789795 0.316071 0.917755 0.789307 0.315308 0.939178 0.789032 0.314667 0.958527 0.788635 0.314178 0.976135 0.788544 0.313843 0.992249 0.788239 0.313660 1.000000 0.784729 0.323151 1.000000 0.778717 0.342072 0.095337 0.824615 0.322174 0.138031 0.823730 0.321411 0.176483 0.823029 0.320709 0.210297 0.822449 0.320099 0.240326 0.821960 0.319580 0.267578 0.821503 0.319122 0.293060 0.821136 0.318787 0.317474 0.820770 0.318237 0.342590 0.821259 0.318542 0.368103 0.821869 0.318756 0.394653 0.822388 0.318909 0.422485 0.822906 0.319000 0.452087 0.823425 0.319000 0.484009 0.824005 0.319000 0.518372 0.824493 0.318939 0.556519 0.824982 0.318848 0.597839 0.825562 0.318787 0.640991 0.826080 0.318726 0.684631 0.826538 0.318604 0.727600 0.827057 0.318542 0.768524 0.827576 0.318573 0.806213 0.828003 0.318634 0.839630 0.828094 0.318298 0.868835 0.827332 0.317352 0.895050 0.826782 0.316528 0.918549 0.826294 0.315918 0.939667 0.825775 0.315491 0.958862 0.825470 0.315277 0.976288 0.825043 0.315216 0.992401 0.824829 0.315308 1.000000 0.820496 0.325592 1.000000 0.813141 0.345642 0.105194 0.859924 0.321716 0.146332 0.859009 0.321014 0.183167 0.858246 0.320312 0.215546 0.857574 0.319672 0.244476 0.856995 0.319214 0.271027 0.856476 0.318573 0.296082 0.856018 0.318085 0.320404 0.855591 0.317444 0.345398 0.856049 0.317566 0.370941 0.856506 0.317688 0.397430 0.856903 0.317688 0.425385 0.857391 0.317688 0.455139 0.857788 0.317627 0.486969 0.858246 0.317535 0.521515 0.858643 0.317474 0.559753 0.859039 0.317413 0.600891 0.859467 0.317322 0.643738 0.859863 0.317261 0.687042 0.860291 0.317261 0.729584 0.860657 0.317352 0.769928 0.861084 0.317444 0.806946 0.861420 0.317627 0.840515 0.861816 0.317902 0.870117 0.861847 0.317932 0.895996 0.861206 0.317383 0.919220 0.860718 0.316986 0.940155 0.860107 0.316803 0.959137 0.859589 0.316864 0.976532 0.859375 0.317657 0.992432 0.859253 0.319000 1.000000 0.854187 0.330139 1.000000 0.845245 0.350525 0.114227 0.892090 0.321442 0.153717 0.891113 0.320526 0.188934 0.890289 0.319855 0.220184 0.889557 0.319244 0.248352 0.888916 0.318481 0.274475 0.888306 0.317749 0.299164 0.887756 0.316895 0.323456 0.887482 0.316406 0.348358 0.887817 0.316406 0.373749 0.888153 0.316406 0.400360 0.888489 0.316345 0.428253 0.888824 0.316284 0.458099 0.889099 0.316193 0.490112 0.889465 0.316162 0.524719 0.889740 0.316040 0.563049 0.890106 0.316010 0.603973 0.890381 0.316040 0.646576 0.890717 0.316101 0.689453 0.891022 0.316193 0.731384 0.891327 0.316406 0.771118 0.891602 0.316650 0.807800 0.891907 0.317017 0.840820 0.892181 0.317535 0.870392 0.892456 0.318085 0.896790 0.892639 0.318665 0.919830 0.891876 0.318604 0.940613 0.891510 0.319183 0.959442 0.891113 0.320526 0.976624 0.890747 0.322235 0.992432 0.890472 0.324127 1.000000 0.884674 0.335480 1.000000 0.874329 0.356079 0.122131 0.920746 0.321136 0.160187 0.919769 0.320221 0.194305 0.918884 0.319244 0.224762 0.918182 0.318420 0.252289 0.917450 0.317535 0.277893 0.916809 0.316650 0.302307 0.916199 0.315704 0.326447 0.915985 0.315247 0.351410 0.916199 0.315216 0.376709 0.916473 0.315125 0.403198 0.916718 0.315063 0.431213 0.916962 0.315002 0.461182 0.917206 0.314911 0.493134 0.917419 0.314880 0.527893 0.917694 0.314880 0.565948 0.917877 0.314972 0.606903 0.918152 0.315063 0.649048 0.918365 0.315277 0.691559 0.918579 0.315521 0.733093 0.918793 0.315887 0.772339 0.918976 0.316315 0.808441 0.919220 0.316956 0.841034 0.919373 0.317688 0.870239 0.919586 0.318542 0.896759 0.919891 0.320068 0.920441 0.920166 0.322235 0.940979 0.919678 0.323700 0.959595 0.919220 0.325562 0.976593 0.918640 0.327759 0.992310 0.918274 0.330078 1.000000 0.911896 0.341583 1.000000 0.900482 0.362396 0.129517 0.946228 0.320496 0.166565 0.945251 0.319427 0.199707 0.944366 0.318359 0.229279 0.943573 0.317352 0.256195 0.942871 0.316467 0.281372 0.942200 0.315460 0.305389 0.941559 0.314453 0.329559 0.941467 0.314056 0.354187 0.941620 0.313965 0.379578 0.941772 0.313904 0.406189 0.941986 0.313812 0.434113 0.942139 0.313782 0.464050 0.942291 0.313782 0.496124 0.942444 0.313812 0.530792 0.942627 0.313995 0.568939 0.942780 0.314148 0.609558 0.942932 0.314453 0.651306 0.943085 0.314789 0.693573 0.943268 0.315277 0.734558 0.943420 0.315887 0.773254 0.943512 0.316559 0.808960 0.943665 0.317474 0.841339 0.943817 0.318939 0.870392 0.944031 0.321045 0.896576 0.944214 0.323517 0.919891 0.944427 0.326202 0.940948 0.944580 0.329071 0.959595 0.944153 0.331543 0.976471 0.943512 0.334015 0.992157 0.943115 0.336792 1.000000 0.936493 0.348297 1.000000 0.924133 0.369202 0.136810 0.968994 0.319580 0.172791 0.968048 0.318420 0.204834 0.967163 0.317230 0.233704 0.966400 0.316193 0.259979 0.965698 0.315063 0.284760 0.964996 0.314056 0.308472 0.964325 0.313171 0.332672 0.964325 0.312897 0.357147 0.964447 0.312805 0.382446 0.964569 0.312744 0.408936 0.964661 0.312775 0.436951 0.964783 0.312805 0.466888 0.964874 0.312927 0.498810 0.964966 0.313110 0.533569 0.965057 0.313416 0.571625 0.965179 0.313782 0.611908 0.965271 0.314240 0.653534 0.965393 0.314880 0.695129 0.965485 0.315582 0.735779 0.965546 0.316467 0.774323 0.965668 0.317871 0.809875 0.965820 0.320038 0.841583 0.965912 0.322449 0.870300 0.965973 0.325073 0.895813 0.966064 0.328003 0.919006 0.966156 0.331177 0.939941 0.966187 0.334412 0.959167 0.966248 0.337921 0.976288 0.966003 0.340973 0.991943 0.965302 0.343964 1.000000 0.958588 0.355347 1.000000 0.945587 0.376312 0.143860 0.989594 0.318359 0.178802 0.988617 0.317047 0.209869 0.987793 0.316071 0.237854 0.987000 0.314941 0.263702 0.986298 0.313782 0.288025 0.985626 0.312805 0.311462 0.984924 0.311798 0.335571 0.985046 0.311798 0.360077 0.985077 0.311829 0.385132 0.985168 0.311859 0.411530 0.985229 0.311981 0.439667 0.985291 0.312164 0.469360 0.985321 0.312439 0.501434 0.985382 0.312775 0.536102 0.985443 0.313263 0.573975 0.985504 0.313843 0.614075 0.985535 0.314606 0.655243 0.985596 0.315460 0.696869 0.985626 0.316833 0.737305 0.985687 0.319031 0.775299 0.985718 0.321411 0.810059 0.985718 0.324036 0.841309 0.985748 0.327026 0.869659 0.985779 0.330078 0.895050 0.985779 0.333374 0.918152 0.985779 0.336823 0.939148 0.985748 0.340424 0.958221 0.985748 0.344177 0.975739 0.985748 0.347900 0.991760 0.985565 0.351440 1.000000 0.978760 0.362610 1.000000 0.965179 0.383484 0.162567 1.000000 0.324097 0.194824 1.000000 0.322723 0.223694 1.000000 0.321136 0.249847 1.000000 0.319855 0.274078 1.000000 0.318451 0.297028 1.000000 0.317108 0.319458 1.000000 0.315948 0.342987 1.000000 0.316010 0.366943 1.000000 0.316162 0.391632 1.000000 0.316406 0.417542 1.000000 0.316711 0.445129 1.000000 0.317047 0.474457 1.000000 0.317596 0.505798 1.000000 0.318207 0.539948 1.000000 0.318909 0.577148 1.000000 0.319794 0.616699 1.000000 0.321167 0.657623 1.000000 0.323242 0.698059 1.000000 0.325653 0.737091 1.000000 0.328278 0.773956 1.000000 0.331085 0.807587 1.000000 0.334137 0.838196 1.000000 0.337433 0.866058 1.000000 0.340759 0.891083 1.000000 0.344299 0.914062 1.000000 0.347839 0.934906 1.000000 0.351562 0.953979 1.000000 0.355255 0.971405 1.000000 0.359009 0.987701 1.000000 0.362854 1.000000 0.997223 0.370850 1.000000 0.983246 0.393005 0.194214 1.000000 0.338623 0.225128 1.000000 0.338562 0.252747 1.000000 0.338440 0.277802 1.000000 0.338348 0.301178 1.000000 0.338379 0.323395 1.000000 0.338379 0.344879 1.000000 0.338531 0.366455 1.000000 0.338715 0.388550 1.000000 0.338928 0.411255 1.000000 0.339294 0.435181 1.000000 0.339752 0.460632 1.000000 0.340302 0.487793 1.000000 0.340973 0.517181 1.000000 0.341766 0.549774 1.000000 0.343048 0.585419 1.000000 0.345062 0.622345 1.000000 0.347321 0.659943 1.000000 0.349823 0.697296 1.000000 0.352600 0.733521 1.000000 0.355530 0.767670 1.000000 0.358643 0.799286 1.000000 0.361908 0.827942 1.000000 0.365234 0.854218 1.000000 0.368805 0.878174 1.000000 0.372345 0.899994 1.000000 0.375916 0.919922 1.000000 0.379608 0.938354 1.000000 0.383301 0.955414 1.000000 0.387726 0.971130 1.000000 0.392853 0.986023 1.000000 0.398407 1.000000 1.000000 0.404022 0.000000 0.004578 0.286438 0.043396 0.001831 0.296722 0.090973 0.005463 0.302307 0.135803 0.009247 0.307922 0.177216 0.013123 0.313721 0.214539 0.016907 0.319214 0.247742 0.020660 0.324432 0.277710 0.024139 0.329102 0.305206 0.026123 0.331604 0.331207 0.027710 0.333679 0.355713 0.028320 0.334869 0.380188 0.028687 0.335846 0.405487 0.029053 0.336823 0.432190 0.029297 0.337677 0.460876 0.029327 0.338348 0.491974 0.029297 0.338776 0.526581 0.029022 0.339081 0.566162 0.028625 0.339233 0.609741 0.028137 0.339050 0.655975 0.027557 0.338989 0.703217 0.027008 0.338806 0.749664 0.026611 0.338562 0.793732 0.026337 0.338562 0.833771 0.026245 0.338409 0.869324 0.026520 0.338531 0.900726 0.026917 0.338654 0.928528 0.027649 0.338959 0.953003 0.028412 0.339203 0.974854 0.029114 0.339264 0.994476 0.029938 0.339478 1.000000 0.049500 0.346283 1.000000 0.076355 0.356323 0.000000 0.044189 0.298462 0.043396 0.042908 0.306641 0.090973 0.046509 0.312317 0.135712 0.050171 0.317963 0.177002 0.053772 0.323212 0.214111 0.056976 0.327759 0.247040 0.058990 0.330444 0.276581 0.060455 0.332489 0.303894 0.061920 0.334442 0.329712 0.063385 0.336456 0.354340 0.064026 0.337738 0.378906 0.064301 0.338623 0.404297 0.064575 0.339508 0.431061 0.064697 0.340210 0.459808 0.064728 0.340790 0.490906 0.064636 0.341156 0.525482 0.064362 0.341309 0.565002 0.063965 0.341400 0.608551 0.063446 0.341309 0.654785 0.062897 0.341064 0.702148 0.062439 0.340759 0.749084 0.062103 0.340515 0.793457 0.061890 0.340363 0.833496 0.061981 0.340149 0.869080 0.062286 0.340332 0.900452 0.062744 0.340179 0.928040 0.063171 0.340118 0.952454 0.063751 0.340179 0.974213 0.064514 0.340393 0.993744 0.065399 0.340363 1.000000 0.083588 0.347382 1.000000 0.109863 0.358215 0.000000 0.083984 0.311493 0.045135 0.084473 0.317993 0.091095 0.086212 0.321808 0.135681 0.089386 0.326538 0.176544 0.091309 0.329285 0.213165 0.092712 0.331299 0.245758 0.094147 0.333313 0.275146 0.095459 0.335297 0.302277 0.096741 0.337189 0.328217 0.098114 0.339050 0.353088 0.098816 0.340424 0.377777 0.099030 0.341187 0.403168 0.099213 0.341949 0.429932 0.099304 0.342590 0.458679 0.099335 0.343109 0.489838 0.099243 0.343506 0.524384 0.098969 0.343597 0.563873 0.098541 0.343475 0.607544 0.098145 0.343292 0.654297 0.097626 0.342987 0.702179 0.097260 0.342651 0.749237 0.096954 0.342255 0.793640 0.096802 0.342010 0.833679 0.097015 0.341766 0.869019 0.097015 0.341431 0.900238 0.097321 0.341309 0.927734 0.097839 0.341309 0.951996 0.098450 0.341217 0.973633 0.099274 0.341125 0.993042 0.100281 0.341217 1.000000 0.116913 0.348480 1.000000 0.142639 0.360168 0.000000 0.123016 0.323944 0.046875 0.124115 0.327850 0.092224 0.124298 0.329132 0.134888 0.124420 0.330139 0.175232 0.125763 0.332184 0.211639 0.126984 0.334137 0.244019 0.128235 0.335999 0.273560 0.129517 0.337921 0.300903 0.130707 0.339722 0.326904 0.131897 0.341461 0.351959 0.132721 0.342834 0.376617 0.132965 0.343658 0.402039 0.133087 0.344360 0.428802 0.133179 0.344818 0.457611 0.133240 0.345215 0.488800 0.133148 0.345490 0.523438 0.132904 0.345551 0.563507 0.132538 0.345367 0.607819 0.132141 0.345062 0.654816 0.131683 0.344696 0.702911 0.131409 0.344238 0.750153 0.131195 0.343811 0.794281 0.130829 0.343201 0.834076 0.130798 0.342865 0.869232 0.130920 0.342377 0.900238 0.131256 0.342285 0.927490 0.131805 0.342224 0.951660 0.132446 0.342072 0.973145 0.133331 0.342010 0.992432 0.134247 0.342133 1.000000 0.149567 0.349365 1.000000 0.174591 0.361786 0.000671 0.160095 0.332184 0.047546 0.159729 0.332733 0.092285 0.159302 0.333221 0.134155 0.158875 0.333771 0.173401 0.159180 0.334869 0.209900 0.160309 0.336700 0.242554 0.161499 0.338593 0.272156 0.162689 0.340332 0.299500 0.163757 0.342041 0.325592 0.164948 0.343781 0.350769 0.165894 0.345123 0.375458 0.166046 0.345886 0.400909 0.166290 0.346466 0.427734 0.166321 0.346924 0.456635 0.166382 0.347321 0.488342 0.166321 0.347443 0.523682 0.166107 0.347412 0.564178 0.165833 0.347137 0.608826 0.165497 0.346741 0.656219 0.165100 0.346252 0.704315 0.164612 0.345581 0.751251 0.164124 0.344788 0.795288 0.163879 0.344269 0.834778 0.163940 0.343811 0.869659 0.164062 0.343506 0.900421 0.164459 0.343140 0.927460 0.165039 0.343079 0.951355 0.165710 0.342804 0.972687 0.166473 0.342834 0.991791 0.167389 0.342896 1.000000 0.181366 0.350006 1.000000 0.205750 0.363373 0.000763 0.194214 0.336273 0.047180 0.193817 0.336761 0.091583 0.193268 0.337128 0.133667 0.192841 0.337616 0.172638 0.192505 0.338074 0.208496 0.192749 0.339203 0.241180 0.193878 0.340942 0.270813 0.194885 0.342590 0.298187 0.196075 0.344238 0.324280 0.197174 0.345856 0.349640 0.198242 0.347351 0.374329 0.198456 0.347992 0.399902 0.198578 0.348511 0.427246 0.198730 0.348846 0.456757 0.198792 0.349152 0.488922 0.198761 0.349213 0.524750 0.198639 0.349091 0.565735 0.198395 0.348694 0.610596 0.197845 0.347992 0.658020 0.197266 0.347260 0.706085 0.196808 0.346527 0.752960 0.196381 0.345825 0.796692 0.196228 0.345154 0.835815 0.196228 0.344696 0.870361 0.196442 0.344238 0.900726 0.196899 0.344025 0.927490 0.197418 0.343811 0.951141 0.198029 0.343506 0.972260 0.198822 0.343567 0.991211 0.199646 0.343506 1.000000 0.212280 0.350677 1.000000 0.235992 0.364960 0.000122 0.227478 0.340210 0.046631 0.226807 0.340576 0.091309 0.226257 0.340851 0.133514 0.225708 0.341217 0.172455 0.225311 0.341644 0.207733 0.224976 0.342072 0.239838 0.225403 0.343140 0.269470 0.226440 0.344757 0.296906 0.227539 0.346344 0.322998 0.228668 0.347870 0.348541 0.229828 0.349365 0.373779 0.230042 0.349915 0.399963 0.230286 0.350372 0.427673 0.230438 0.350647 0.457611 0.230530 0.350830 0.490295 0.230560 0.350800 0.526428 0.230164 0.350372 0.567688 0.229736 0.349670 0.612885 0.229218 0.348938 0.660461 0.228729 0.348206 0.708527 0.228302 0.347382 0.755096 0.227966 0.346619 0.798401 0.227814 0.345947 0.837067 0.227844 0.345398 0.871124 0.228058 0.344910 0.901154 0.228394 0.344635 0.927612 0.228943 0.344391 0.950989 0.229523 0.344269 0.971863 0.230194 0.344025 0.990662 0.230927 0.343903 1.000000 0.242340 0.351135 1.000000 0.265350 0.366486 0.000000 0.259460 0.343781 0.046478 0.258972 0.344208 0.091187 0.258331 0.344421 0.133362 0.257782 0.344727 0.172333 0.257294 0.344971 0.207611 0.256989 0.345367 0.239136 0.256866 0.345825 0.268127 0.257263 0.346741 0.295685 0.258362 0.348267 0.322388 0.259460 0.349731 0.348511 0.260681 0.351105 0.374146 0.261017 0.351685 0.400696 0.261292 0.352020 0.428864 0.261505 0.352264 0.459076 0.261383 0.352112 0.491943 0.261200 0.351807 0.528687 0.260864 0.351257 0.570374 0.260468 0.350586 0.615845 0.259979 0.349884 0.663513 0.259491 0.348999 0.711395 0.259155 0.348114 0.757599 0.258820 0.347412 0.800385 0.258667 0.346588 0.838531 0.258728 0.346039 0.872070 0.258911 0.345612 0.901703 0.259247 0.345154 0.927765 0.259766 0.345032 0.950867 0.260315 0.344696 0.971497 0.260956 0.344666 0.990082 0.261566 0.344421 1.000000 0.271790 0.351471 1.000000 0.294098 0.367889 0.000000 0.290802 0.347168 0.046295 0.290375 0.347626 0.091003 0.289673 0.347778 0.133179 0.289154 0.347992 0.172211 0.288788 0.348206 0.207458 0.288483 0.348541 0.239075 0.288361 0.348938 0.268311 0.288300 0.349335 0.295807 0.288757 0.350037 0.322754 0.289948 0.351471 0.349243 0.291199 0.352844 0.375336 0.291626 0.353302 0.402039 0.291687 0.353363 0.430420 0.291687 0.353302 0.461060 0.291656 0.353058 0.494324 0.291504 0.352692 0.531586 0.291229 0.352112 0.573730 0.290802 0.351379 0.619354 0.290375 0.350586 0.666931 0.289978 0.349640 0.714600 0.289551 0.348724 0.760345 0.289276 0.347931 0.802521 0.289185 0.347137 0.840027 0.289215 0.346558 0.873047 0.289368 0.346161 0.902161 0.289703 0.345642 0.927887 0.290161 0.345306 0.950714 0.290649 0.345062 0.971100 0.291260 0.344910 0.989532 0.291809 0.344818 1.000000 0.300812 0.351593 1.000000 0.322449 0.369049 0.000000 0.321716 0.350403 0.046173 0.321442 0.350922 0.090881 0.320801 0.350922 0.133057 0.320343 0.351135 0.172180 0.319916 0.351257 0.208282 0.319702 0.351501 0.240692 0.319641 0.351807 0.270142 0.319641 0.352112 0.297577 0.319855 0.352539 0.324036 0.320282 0.353027 0.350616 0.321350 0.354126 0.376770 0.321686 0.354340 0.403839 0.321808 0.354340 0.432587 0.321838 0.354218 0.463593 0.321808 0.353912 0.497284 0.321686 0.353455 0.535095 0.321442 0.352875 0.577606 0.321045 0.352020 0.623322 0.320618 0.351105 0.670776 0.320190 0.350128 0.718018 0.319855 0.349274 0.763214 0.319550 0.348419 0.804718 0.319458 0.347656 0.841553 0.319550 0.347046 0.874023 0.319702 0.346527 0.902679 0.319977 0.346039 0.928009 0.320374 0.345764 0.950531 0.320801 0.345459 0.970673 0.321350 0.345215 0.988892 0.321869 0.344971 1.000000 0.329620 0.351349 1.000000 0.350647 0.370178 0.000000 0.352539 0.353455 0.046021 0.352509 0.354004 0.090820 0.351990 0.354065 0.134155 0.351471 0.354095 0.174316 0.351166 0.354126 0.210632 0.350983 0.354279 0.243286 0.350952 0.354492 0.272919 0.351044 0.354797 0.300354 0.351166 0.354889 0.326569 0.351288 0.354980 0.352448 0.351471 0.355133 0.378815 0.351776 0.355225 0.406158 0.351929 0.355133 0.435272 0.352051 0.354950 0.466675 0.352081 0.354614 0.500732 0.351929 0.354065 0.539032 0.351685 0.353333 0.581818 0.351349 0.352539 0.627563 0.350891 0.351532 0.674805 0.350555 0.350647 0.721619 0.350250 0.349670 0.766174 0.349976 0.348816 0.806946 0.349884 0.348083 0.843079 0.349945 0.347382 0.875061 0.350189 0.346924 0.903290 0.350494 0.346497 0.928223 0.350739 0.346130 0.950470 0.351196 0.345795 0.970398 0.351807 0.345551 0.988464 0.352203 0.345245 1.000000 0.358917 0.351440 1.000000 0.378876 0.371277 0.000000 0.381683 0.354614 0.046021 0.382782 0.355896 0.092377 0.382324 0.355896 0.136169 0.381897 0.355865 0.176697 0.381622 0.355835 0.213287 0.381592 0.355957 0.245728 0.381500 0.355896 0.275146 0.381531 0.355896 0.302612 0.381622 0.355927 0.328918 0.381805 0.355957 0.354919 0.382019 0.355988 0.382385 0.383209 0.356934 0.410004 0.383453 0.356812 0.439392 0.383545 0.356598 0.471130 0.383606 0.356201 0.505524 0.383484 0.355621 0.544342 0.383331 0.354858 0.587402 0.382965 0.354004 0.633118 0.382568 0.352997 0.680115 0.382263 0.352051 0.726379 0.381989 0.351074 0.770203 0.381744 0.350189 0.810211 0.381683 0.349457 0.845642 0.381714 0.348724 0.877014 0.381836 0.348175 0.904694 0.382141 0.347748 0.929260 0.382324 0.347321 0.951172 0.382690 0.346985 0.970856 0.383087 0.346649 0.988708 0.383514 0.346344 1.000000 0.389526 0.352570 1.000000 0.407166 0.372040 0.000000 0.413757 0.357605 0.048492 0.413391 0.357574 0.095428 0.412994 0.357422 0.139771 0.412720 0.357300 0.180054 0.412354 0.357056 0.216217 0.412170 0.356842 0.248505 0.412140 0.356720 0.277863 0.412231 0.356720 0.305267 0.412415 0.356689 0.331573 0.412628 0.356689 0.357788 0.412964 0.356659 0.385437 0.414215 0.357605 0.414307 0.415466 0.358459 0.444000 0.415649 0.358215 0.476044 0.415710 0.357758 0.510742 0.415588 0.357086 0.550018 0.415344 0.356323 0.593201 0.415039 0.355347 0.638885 0.414673 0.354401 0.685394 0.414398 0.353394 0.731018 0.414062 0.352417 0.774231 0.413788 0.351440 0.813354 0.413757 0.350647 0.848083 0.413666 0.349976 0.878815 0.413879 0.349396 0.906067 0.414032 0.348907 0.930237 0.414307 0.348450 0.951813 0.414551 0.348083 0.971283 0.414917 0.347656 0.988983 0.415131 0.347168 1.000000 0.420715 0.353302 1.000000 0.436035 0.372437 0.003448 0.445160 0.359222 0.052979 0.444702 0.358948 0.100067 0.444214 0.358521 0.143982 0.443817 0.358124 0.184143 0.443573 0.357819 0.220001 0.443451 0.357513 0.252075 0.443542 0.357422 0.281189 0.443634 0.357269 0.308411 0.443848 0.357239 0.334747 0.444122 0.357178 0.361023 0.444519 0.357239 0.388855 0.445801 0.358124 0.417938 0.447021 0.358948 0.448944 0.448273 0.359741 0.481171 0.448334 0.359222 0.516205 0.448181 0.358490 0.555817 0.447998 0.357605 0.599091 0.447632 0.356689 0.644531 0.447327 0.355621 0.690613 0.446991 0.354614 0.735565 0.446625 0.353577 0.777954 0.446442 0.352661 0.816254 0.446289 0.351807 0.850281 0.446259 0.351105 0.880493 0.446381 0.350494 0.907227 0.446503 0.349976 0.931030 0.446625 0.349426 0.952393 0.446869 0.348846 0.971710 0.447144 0.348206 0.989227 0.447418 0.347595 1.000000 0.452209 0.353729 1.000000 0.465393 0.372589 0.008911 0.476929 0.360229 0.058319 0.476410 0.359680 0.105469 0.476044 0.359161 0.149384 0.475647 0.358734 0.189148 0.475464 0.358276 0.224457 0.475433 0.358002 0.256042 0.475525 0.357880 0.284851 0.475739 0.357758 0.311951 0.476044 0.357666 0.338135 0.476288 0.357544 0.364594 0.476898 0.357666 0.392487 0.478088 0.358490 0.421722 0.479340 0.359283 0.452972 0.480560 0.360046 0.486420 0.481598 0.360535 0.521851 0.481476 0.359802 0.561676 0.481201 0.358887 0.604950 0.480957 0.357910 0.650055 0.480560 0.356812 0.695587 0.480225 0.355743 0.739838 0.479797 0.354675 0.781433 0.479614 0.353760 0.818970 0.479370 0.352905 0.852356 0.479309 0.352142 0.882019 0.479340 0.351379 0.908356 0.479431 0.350708 0.931915 0.479553 0.350006 0.953033 0.479797 0.349243 0.972107 0.480011 0.348511 0.989502 0.480316 0.347778 1.000000 0.484436 0.353943 1.000000 0.495392 0.372589 0.015472 0.509552 0.360809 0.065063 0.509064 0.360168 0.112183 0.508728 0.359650 0.155670 0.508484 0.359070 0.194794 0.508331 0.358704 0.229462 0.508392 0.358398 0.260437 0.508514 0.358215 0.288879 0.508759 0.358063 0.315674 0.509064 0.357880 0.341705 0.509369 0.357758 0.368286 0.510040 0.357941 0.396240 0.511261 0.358673 0.425659 0.512451 0.359406 0.457062 0.513733 0.360138 0.490784 0.514923 0.360809 0.527435 0.515686 0.360992 0.567444 0.515381 0.360046 0.610535 0.515015 0.358978 0.655334 0.514648 0.357880 0.700256 0.514252 0.356781 0.743744 0.513885 0.355713 0.784546 0.513641 0.354736 0.821350 0.513336 0.353760 0.854218 0.513245 0.352875 0.883453 0.513245 0.351990 0.909485 0.513306 0.351105 0.932739 0.513306 0.350281 0.953644 0.513611 0.349426 0.972534 0.513763 0.348541 0.989716 0.514069 0.347717 1.000000 0.517456 0.354034 1.000000 0.526642 0.372467 0.023529 0.544739 0.361115 0.073059 0.544281 0.360413 0.119843 0.543976 0.359863 0.162659 0.543793 0.359314 0.200867 0.543671 0.358826 0.234711 0.543762 0.358551 0.265015 0.543945 0.358276 0.292999 0.544220 0.358154 0.319489 0.544525 0.357971 0.345337 0.544800 0.357697 0.372040 0.545624 0.357971 0.400055 0.546906 0.358734 0.429504 0.548096 0.359406 0.461029 0.549286 0.360077 0.494904 0.550537 0.360687 0.532196 0.551727 0.361328 0.572968 0.552094 0.361084 0.615784 0.551636 0.359985 0.660095 0.551147 0.358856 0.704437 0.550720 0.357727 0.747314 0.550201 0.356598 0.787445 0.549866 0.355438 0.823730 0.549530 0.354340 0.856110 0.549438 0.353271 0.884949 0.549408 0.352264 0.910645 0.549469 0.351257 0.933624 0.549438 0.350311 0.954285 0.549591 0.349365 0.972931 0.549866 0.348480 0.989990 0.550079 0.347595 1.000000 0.552856 0.354065 1.000000 0.560211 0.372345 0.032806 0.582642 0.361267 0.082031 0.582214 0.360596 0.128082 0.581909 0.359863 0.170044 0.581726 0.359314 0.207214 0.581604 0.358887 0.240143 0.581696 0.358612 0.269653 0.581909 0.358276 0.297119 0.582153 0.358032 0.323334 0.582397 0.357849 0.349030 0.582703 0.357574 0.375763 0.583588 0.357971 0.403778 0.584839 0.358643 0.433228 0.585968 0.359253 0.464844 0.587158 0.359863 0.498749 0.588348 0.360443 0.536072 0.589417 0.360992 0.577606 0.590515 0.361511 0.620605 0.590454 0.360931 0.664459 0.589874 0.359680 0.708344 0.589264 0.358429 0.750732 0.588684 0.357056 0.790375 0.588287 0.355804 0.826111 0.587982 0.354584 0.857941 0.587799 0.353333 0.886414 0.587708 0.352264 0.911743 0.587738 0.351166 0.934448 0.587585 0.350189 0.954865 0.587860 0.349213 0.973358 0.587891 0.348328 0.990234 0.588135 0.347504 1.000000 0.590179 0.354095 1.000000 0.595612 0.372314 0.042999 0.622681 0.361206 0.091614 0.622162 0.360443 0.136810 0.621857 0.359833 0.177490 0.621582 0.359222 0.213593 0.621521 0.358765 0.245544 0.621582 0.358368 0.274384 0.621704 0.358093 0.301270 0.621857 0.357849 0.327148 0.622131 0.357605 0.352600 0.622284 0.357269 0.379333 0.623291 0.357758 0.407349 0.624451 0.358398 0.436859 0.625519 0.358917 0.468384 0.626617 0.359558 0.502197 0.627655 0.360077 0.539673 0.628662 0.360565 0.580963 0.629700 0.361023 0.624878 0.630676 0.361389 0.668762 0.630188 0.360168 0.712311 0.629517 0.358734 0.754150 0.628876 0.357269 0.793182 0.628418 0.355835 0.828339 0.627991 0.354553 0.859772 0.627655 0.353271 0.887817 0.627594 0.352142 0.912811 0.627319 0.351044 0.935242 0.627441 0.350037 0.955444 0.627533 0.349121 0.973724 0.627441 0.348175 0.990448 0.627655 0.347412 1.000000 0.628784 0.354279 1.000000 0.632141 0.372467 0.053833 0.663940 0.361115 0.101532 0.663361 0.360321 0.145630 0.662994 0.359650 0.185059 0.662720 0.359039 0.219849 0.662567 0.358490 0.250763 0.662537 0.358185 0.278900 0.662628 0.357880 0.305267 0.662750 0.357513 0.330719 0.662842 0.357300 0.355957 0.662903 0.356903 0.382721 0.663971 0.357452 0.410614 0.664948 0.358032 0.440063 0.665985 0.358582 0.471436 0.666931 0.359100 0.505249 0.667877 0.359528 0.542877 0.668793 0.359924 0.584167 0.669708 0.360138 0.628052 0.670593 0.360291 0.673065 0.671417 0.360352 0.716125 0.670776 0.358734 0.757538 0.670013 0.357208 0.795990 0.669403 0.355743 0.830627 0.668915 0.354401 0.861542 0.668518 0.353119 0.889160 0.668396 0.351959 0.913849 0.668091 0.350891 0.936035 0.668030 0.349915 0.955994 0.668030 0.348999 0.974091 0.667908 0.348206 0.990662 0.668091 0.347565 1.000000 0.668182 0.354645 1.000000 0.669403 0.372833 0.064819 0.705536 0.360779 0.111664 0.704956 0.360077 0.154388 0.704559 0.359253 0.192352 0.704163 0.358704 0.225891 0.703979 0.358215 0.255798 0.703888 0.357880 0.283173 0.703857 0.357544 0.309052 0.703796 0.357147 0.334106 0.703857 0.356873 0.359222 0.703857 0.356537 0.385864 0.704834 0.357086 0.413513 0.705658 0.357605 0.442841 0.706573 0.358063 0.474426 0.707397 0.358398 0.508362 0.708252 0.358704 0.546082 0.709106 0.358826 0.587494 0.709930 0.358948 0.631165 0.710724 0.358948 0.675934 0.711548 0.358948 0.719971 0.712006 0.358612 0.760773 0.711243 0.357056 0.798645 0.710571 0.355530 0.832764 0.710114 0.354187 0.863190 0.709534 0.352966 0.890472 0.709229 0.351807 0.914856 0.709015 0.350769 0.936707 0.708710 0.349884 0.956451 0.708618 0.349121 0.974396 0.708557 0.348450 0.990875 0.708527 0.347961 1.000000 0.707672 0.355225 1.000000 0.706665 0.373505 0.075958 0.746826 0.360413 0.121552 0.746124 0.359619 0.162842 0.745636 0.358887 0.199310 0.745178 0.358368 0.231537 0.744873 0.357880 0.260529 0.744690 0.357422 0.287140 0.744537 0.357025 0.312469 0.744446 0.356720 0.337189 0.744293 0.356354 0.362061 0.744324 0.356171 0.388519 0.745087 0.356628 0.416168 0.745789 0.356964 0.445709 0.746582 0.357178 0.477356 0.747375 0.357391 0.511475 0.748047 0.357452 0.549500 0.748810 0.357513 0.590790 0.749542 0.357513 0.634277 0.750244 0.357452 0.678680 0.750946 0.357391 0.722504 0.751678 0.357330 0.763916 0.751862 0.356812 0.801270 0.751190 0.355347 0.834747 0.750519 0.354004 0.864838 0.750031 0.352814 0.891693 0.749573 0.351746 0.915741 0.749176 0.350891 0.937378 0.748932 0.350128 0.956909 0.748657 0.349457 0.974731 0.748444 0.348969 0.991058 0.748444 0.348572 1.000000 0.746674 0.356232 1.000000 0.743378 0.374603 0.086945 0.786774 0.359985 0.131104 0.786011 0.359161 0.170837 0.785461 0.358521 0.205750 0.784882 0.357910 0.236755 0.784485 0.357361 0.264801 0.784210 0.357025 0.290710 0.783936 0.356628 0.315521 0.783691 0.356201 0.339813 0.783356 0.355682 0.364746 0.783417 0.355530 0.391235 0.784088 0.355774 0.419006 0.784698 0.355988 0.448608 0.785400 0.356049 0.480377 0.786011 0.356110 0.514740 0.786621 0.356140 0.552765 0.787231 0.356110 0.594147 0.787872 0.356018 0.637360 0.788452 0.355927 0.681274 0.789124 0.355835 0.724762 0.789703 0.355804 0.766022 0.790344 0.355713 0.803680 0.790375 0.355164 0.836700 0.789673 0.353943 0.866302 0.789093 0.352875 0.892822 0.788483 0.351959 0.916595 0.788086 0.351196 0.938049 0.787811 0.350586 0.957336 0.787384 0.350159 0.974945 0.787140 0.349915 0.991180 0.786987 0.349762 1.000000 0.784271 0.357635 1.000000 0.779053 0.376160 0.097382 0.824738 0.359528 0.139984 0.823914 0.358734 0.178131 0.823242 0.358154 0.211578 0.822601 0.357513 0.241455 0.822144 0.357025 0.268555 0.821686 0.356537 0.293823 0.821289 0.356110 0.318298 0.820953 0.355499 0.342407 0.820526 0.354858 0.367462 0.820618 0.354614 0.393921 0.821167 0.354706 0.421844 0.821686 0.354767 0.451538 0.822235 0.354797 0.483490 0.822754 0.354767 0.517883 0.823273 0.354675 0.556030 0.823792 0.354584 0.597290 0.824310 0.354523 0.640289 0.824799 0.354462 0.683929 0.825317 0.354370 0.726746 0.825806 0.354340 0.767578 0.826324 0.354340 0.805206 0.826782 0.354401 0.838531 0.826813 0.354126 0.867737 0.826111 0.353180 0.893890 0.825592 0.352448 0.917358 0.825043 0.351868 0.938507 0.824554 0.351471 0.957703 0.824219 0.351288 0.975189 0.823853 0.351196 0.991272 0.823486 0.351318 1.000000 0.820099 0.360352 1.000000 0.813385 0.379913 0.107178 0.860077 0.359131 0.148102 0.859161 0.358368 0.184631 0.858368 0.357635 0.216644 0.857697 0.357056 0.245483 0.857147 0.356506 0.271881 0.856628 0.355896 0.296875 0.856110 0.355225 0.321075 0.855621 0.354614 0.345123 0.855133 0.353699 0.370331 0.855286 0.353455 0.396851 0.855713 0.353455 0.424805 0.856140 0.353455 0.454529 0.856567 0.353363 0.486603 0.856995 0.353271 0.521118 0.857391 0.353210 0.559204 0.857788 0.353149 0.600433 0.858246 0.353088 0.643127 0.858612 0.353027 0.686340 0.859009 0.353058 0.728668 0.859375 0.353119 0.768921 0.859802 0.353271 0.806030 0.860199 0.353485 0.839417 0.860565 0.353790 0.868958 0.860596 0.353821 0.894775 0.859894 0.353302 0.917999 0.859283 0.352966 0.938965 0.858917 0.352814 0.957977 0.858368 0.352905 0.975403 0.858185 0.353943 0.991333 0.858063 0.355316 1.000000 0.853851 0.364746 1.000000 0.845398 0.384613 0.115936 0.892151 0.358612 0.155304 0.891174 0.358002 0.190216 0.890350 0.357147 0.221222 0.889679 0.356567 0.249390 0.889008 0.355774 0.275299 0.888428 0.355042 0.299957 0.887848 0.354218 0.323944 0.887299 0.353363 0.347900 0.886719 0.352417 0.373199 0.886871 0.352234 0.399780 0.887268 0.352173 0.427765 0.887512 0.352081 0.457611 0.887909 0.351990 0.489655 0.888184 0.351959 0.524231 0.888519 0.351898 0.562469 0.888855 0.351837 0.603271 0.889160 0.351868 0.645844 0.889465 0.351929 0.688629 0.889740 0.352081 0.730499 0.890045 0.352264 0.770203 0.890381 0.352570 0.806702 0.890656 0.352966 0.839600 0.890930 0.353424 0.869232 0.891205 0.354034 0.895599 0.891327 0.354614 0.918579 0.890717 0.354553 0.939423 0.890289 0.355499 0.958313 0.889862 0.356750 0.975464 0.889557 0.358398 0.991272 0.889252 0.360291 1.000000 0.884491 0.369904 1.000000 0.874481 0.390076 0.123688 0.920807 0.358398 0.161713 0.919800 0.357391 0.195496 0.918976 0.356384 0.225769 0.918213 0.355591 0.253265 0.917480 0.354675 0.278717 0.916840 0.353790 0.303101 0.916260 0.352997 0.326843 0.915680 0.352081 0.350677 0.915009 0.350952 0.376129 0.915222 0.350922 0.402679 0.915527 0.350861 0.430634 0.915741 0.350800 0.460632 0.915955 0.350739 0.492584 0.916199 0.350708 0.527252 0.916473 0.350708 0.565430 0.916656 0.350800 0.606079 0.916870 0.350952 0.648224 0.917114 0.351135 0.690643 0.917328 0.351440 0.732025 0.917542 0.351807 0.771332 0.917755 0.352325 0.807251 0.917969 0.352936 0.839874 0.918182 0.353638 0.869141 0.918365 0.354553 0.895599 0.918671 0.356354 0.919250 0.918976 0.358398 0.939758 0.918457 0.359894 0.958405 0.917969 0.361633 0.975403 0.917450 0.363708 0.991150 0.916992 0.366058 1.000000 0.911804 0.375671 1.000000 0.900696 0.396027 0.131073 0.946228 0.357727 0.167999 0.945251 0.356506 0.200836 0.944397 0.355499 0.230255 0.943604 0.354492 0.257141 0.942902 0.353516 0.282166 0.942230 0.352661 0.306152 0.941589 0.351624 0.329773 0.940918 0.350677 0.353607 0.940430 0.349823 0.378967 0.940582 0.349762 0.405487 0.940735 0.349701 0.433502 0.940918 0.349670 0.463470 0.941101 0.349701 0.495514 0.941254 0.349762 0.530151 0.941467 0.349884 0.568237 0.941589 0.350098 0.608704 0.941772 0.350433 0.650574 0.941895 0.350769 0.692505 0.942047 0.351257 0.733429 0.942200 0.351868 0.772217 0.942322 0.352631 0.807861 0.942444 0.353455 0.840179 0.942627 0.355194 0.869293 0.942871 0.357330 0.895172 0.943085 0.359650 0.918610 0.943237 0.362213 0.939789 0.943420 0.365082 0.958374 0.943054 0.367371 0.975281 0.942383 0.369781 0.990997 0.941864 0.372345 1.000000 0.936371 0.382019 1.000000 0.924194 0.402435 0.138306 0.969025 0.356689 0.174194 0.968048 0.355438 0.205994 0.967194 0.354492 0.234650 0.966370 0.353302 0.260895 0.965698 0.352417 0.285522 0.965027 0.351257 0.309235 0.964355 0.350342 0.332611 0.963684 0.349396 0.356506 0.963287 0.348694 0.381744 0.963379 0.348663 0.408295 0.963470 0.348694 0.436249 0.963593 0.348785 0.466278 0.963684 0.348907 0.498169 0.963806 0.349121 0.532898 0.963898 0.349365 0.570923 0.964020 0.349792 0.611115 0.964111 0.350281 0.652588 0.964203 0.350861 0.694122 0.964294 0.351593 0.734558 0.964355 0.352478 0.773346 0.964478 0.354187 0.808685 0.964661 0.356293 0.840393 0.964722 0.358612 0.868958 0.964813 0.361267 0.894562 0.964905 0.363983 0.917725 0.964966 0.367004 0.938782 0.965027 0.370209 0.958038 0.965088 0.373383 0.975128 0.964752 0.376343 0.990814 0.964172 0.379089 1.000000 0.958496 0.388672 1.000000 0.945526 0.409027 0.145355 0.989563 0.355621 0.180145 0.988617 0.354370 0.210999 0.987762 0.353119 0.238831 0.987000 0.352051 0.264587 0.986298 0.351135 0.288788 0.985626 0.350128 0.312164 0.984955 0.349121 0.335358 0.984283 0.348267 0.359192 0.983948 0.347748 0.384430 0.984039 0.347839 0.410950 0.984100 0.347961 0.438843 0.984131 0.348145 0.468750 0.984222 0.348419 0.500610 0.984253 0.348785 0.535400 0.984314 0.349335 0.573212 0.984375 0.349915 0.613220 0.984406 0.350616 0.654266 0.984436 0.351501 0.696045 0.984497 0.353180 0.736298 0.984558 0.355286 0.774261 0.984589 0.357635 0.808838 0.984619 0.360199 0.840057 0.984619 0.363007 0.868195 0.984680 0.365997 0.893768 0.984680 0.369110 0.916809 0.984680 0.372406 0.937866 0.984680 0.375824 0.957062 0.984680 0.379211 0.974579 0.984680 0.382751 0.990662 0.984436 0.386078 1.000000 0.978729 0.395416 1.000000 0.965179 0.415924 0.163879 1.000000 0.360168 0.196075 1.000000 0.358765 0.224701 1.000000 0.357544 0.250763 1.000000 0.356262 0.274841 1.000000 0.355011 0.297668 1.000000 0.353668 0.319916 1.000000 0.352509 0.341919 1.000000 0.351044 0.365326 1.000000 0.350677 0.390106 1.000000 0.350922 0.416260 1.000000 0.351227 0.443817 1.000000 0.351624 0.473175 1.000000 0.352173 0.504669 1.000000 0.352722 0.538910 1.000000 0.353516 0.576294 1.000000 0.354401 0.616058 1.000000 0.355988 0.656891 1.000000 0.358093 0.697296 1.000000 0.360443 0.736420 1.000000 0.362946 0.773224 1.000000 0.365662 0.807068 1.000000 0.368561 0.837677 1.000000 0.371643 0.865479 1.000000 0.374908 0.890717 1.000000 0.378143 0.913727 1.000000 0.381592 0.934570 1.000000 0.385040 0.953705 1.000000 0.388458 0.971313 1.000000 0.391998 0.987610 1.000000 0.395721 1.000000 0.997131 0.403473 1.000000 0.983185 0.425079 0.195557 1.000000 0.372467 0.226227 1.000000 0.372498 0.253632 1.000000 0.372284 0.278656 1.000000 0.372223 0.301941 1.000000 0.372406 0.324036 1.000000 0.372375 0.345581 1.000000 0.372589 0.367065 1.000000 0.372711 0.389069 1.000000 0.372955 0.411865 1.000000 0.373322 0.435730 1.000000 0.373779 0.461151 1.000000 0.374359 0.488251 1.000000 0.375061 0.517548 1.000000 0.375854 0.550537 1.000000 0.377380 0.586029 1.000000 0.379364 0.622772 1.000000 0.381592 0.660339 1.000000 0.384033 0.697479 1.000000 0.386627 0.733521 1.000000 0.389435 0.767822 1.000000 0.392426 0.799255 1.000000 0.395477 0.828064 1.000000 0.398712 0.854248 1.000000 0.402008 0.878204 1.000000 0.405273 0.899933 1.000000 0.408691 0.919983 1.000000 0.412109 0.938446 1.000000 0.415619 0.955475 1.000000 0.420044 0.971222 1.000000 0.424805 0.985962 1.000000 0.429993 1.000000 1.000000 0.435303 0.000000 0.005432 0.326599 0.041870 0.001282 0.337860 0.089508 0.005005 0.343292 0.134369 0.008911 0.348816 0.175690 0.012726 0.354187 0.213074 0.016541 0.359436 0.246338 0.020233 0.364197 0.276215 0.023315 0.367981 0.303650 0.024933 0.369995 0.329590 0.026550 0.371918 0.354980 0.028046 0.373749 0.380157 0.029297 0.375427 0.405426 0.029572 0.376190 0.432159 0.029877 0.376892 0.460846 0.029907 0.377502 0.491943 0.029785 0.377838 0.526550 0.029541 0.378052 0.566132 0.029144 0.378052 0.609711 0.028625 0.377899 0.655945 0.028076 0.377777 0.703156 0.027618 0.377502 0.749664 0.027222 0.377167 0.793823 0.027008 0.376862 0.833862 0.026917 0.376801 0.869446 0.027191 0.376862 0.900879 0.027710 0.377045 0.928558 0.028412 0.377075 0.953064 0.029083 0.377106 0.974915 0.029785 0.377258 0.994476 0.030640 0.377228 1.000000 0.050293 0.382874 1.000000 0.077148 0.390991 0.000000 0.045074 0.338470 0.041931 0.042511 0.347473 0.089508 0.046143 0.352966 0.134338 0.049805 0.358215 0.175507 0.053131 0.362885 0.212616 0.056213 0.366882 0.245483 0.057831 0.368896 0.274963 0.059265 0.370728 0.302277 0.060760 0.372589 0.328125 0.062134 0.374420 0.353424 0.063507 0.376190 0.378876 0.064850 0.377899 0.404297 0.065063 0.378693 0.431061 0.065247 0.379272 0.459778 0.065277 0.379730 0.490875 0.065155 0.380035 0.525482 0.064941 0.380157 0.565002 0.064514 0.380096 0.608521 0.063965 0.379822 0.654755 0.063538 0.379608 0.702301 0.063049 0.379211 0.749268 0.062683 0.378784 0.793640 0.062592 0.378510 0.833679 0.062592 0.378296 0.869232 0.062958 0.378387 0.900543 0.063385 0.378265 0.928162 0.063782 0.378113 0.952576 0.064484 0.378113 0.974243 0.065216 0.378021 0.993744 0.066193 0.378052 1.000000 0.084290 0.383942 1.000000 0.110596 0.392578 0.000000 0.084473 0.350983 0.043640 0.083923 0.358154 0.089661 0.085693 0.361694 0.134247 0.088654 0.365753 0.174927 0.090088 0.367645 0.211517 0.091522 0.369598 0.244049 0.092896 0.371490 0.273499 0.094238 0.373322 0.300690 0.095581 0.375092 0.326721 0.096863 0.376801 0.352081 0.098145 0.378479 0.377625 0.099457 0.380127 0.403168 0.099731 0.380859 0.429932 0.099823 0.381470 0.458679 0.099854 0.381805 0.489807 0.099762 0.382080 0.524353 0.099548 0.382141 0.563873 0.099182 0.382050 0.607727 0.098694 0.381653 0.654541 0.098267 0.381226 0.702454 0.097870 0.380890 0.749573 0.097595 0.380463 0.793976 0.097565 0.380157 0.833923 0.097565 0.379791 0.869232 0.097687 0.379395 0.900391 0.097992 0.379242 0.927856 0.098511 0.379028 0.952118 0.099182 0.378876 0.973724 0.100067 0.378815 0.993103 0.100952 0.378967 1.000000 0.117737 0.384613 1.000000 0.143372 0.394470 0.000000 0.123077 0.362610 0.045410 0.123413 0.367065 0.090576 0.123077 0.367615 0.133118 0.123230 0.368500 0.173492 0.124573 0.370300 0.209900 0.125824 0.372162 0.242340 0.127014 0.373901 0.271973 0.128265 0.375671 0.299316 0.129486 0.377411 0.325348 0.130676 0.378998 0.350769 0.131927 0.380646 0.376343 0.133179 0.382233 0.402039 0.133575 0.382996 0.428802 0.133698 0.383484 0.457581 0.133728 0.383728 0.488770 0.133606 0.383942 0.523621 0.133423 0.383820 0.563782 0.133118 0.383698 0.608124 0.132690 0.383331 0.655243 0.132324 0.382843 0.703369 0.131989 0.382355 0.750458 0.131683 0.381683 0.794678 0.131470 0.381134 0.834381 0.131378 0.380585 0.869507 0.131561 0.380280 0.900452 0.131927 0.379913 0.927704 0.132477 0.379883 0.951752 0.133179 0.379639 0.973206 0.134094 0.379639 0.992493 0.134949 0.379669 1.000000 0.150269 0.385529 1.000000 0.175323 0.395935 0.000000 0.159088 0.369751 0.045807 0.158508 0.370972 0.090454 0.158112 0.371429 0.132355 0.157776 0.371887 0.171631 0.157990 0.372803 0.208282 0.159119 0.374603 0.240967 0.160248 0.376251 0.270569 0.161438 0.377869 0.297943 0.162598 0.379547 0.324066 0.163757 0.381042 0.349518 0.164917 0.382629 0.375092 0.166138 0.384094 0.400879 0.166656 0.384949 0.427704 0.166840 0.385345 0.456787 0.166931 0.385559 0.488586 0.166840 0.385620 0.524017 0.166656 0.385529 0.564545 0.166382 0.385132 0.609375 0.166046 0.384705 0.656708 0.165619 0.384125 0.704773 0.165070 0.383331 0.751770 0.164734 0.382629 0.795715 0.164490 0.381927 0.835175 0.164520 0.381500 0.869965 0.164734 0.381073 0.900635 0.165161 0.380768 0.927673 0.165680 0.380463 0.951508 0.166412 0.380341 0.972778 0.167145 0.380249 0.991852 0.168030 0.380127 1.000000 0.182068 0.386169 1.000000 0.206360 0.397491 0.000000 0.193176 0.373535 0.045349 0.192596 0.374756 0.089783 0.192047 0.375092 0.131958 0.191589 0.375427 0.170990 0.191254 0.375824 0.206879 0.191589 0.376831 0.239594 0.192596 0.378418 0.269226 0.193726 0.379944 0.296661 0.194824 0.381561 0.322784 0.196014 0.382996 0.348206 0.197174 0.384460 0.373840 0.198425 0.385925 0.400055 0.199066 0.386780 0.427460 0.199280 0.387054 0.457031 0.199280 0.387207 0.489227 0.199310 0.387146 0.525208 0.199188 0.386993 0.566193 0.198853 0.386505 0.611115 0.198334 0.385742 0.658600 0.197784 0.384949 0.706665 0.197327 0.384155 0.753540 0.197021 0.383453 0.797180 0.196869 0.382782 0.836212 0.196869 0.382172 0.870667 0.197083 0.381744 0.901001 0.197510 0.381348 0.927734 0.198029 0.381165 0.951324 0.198700 0.380859 0.972321 0.199432 0.380676 0.991302 0.200287 0.380707 1.000000 0.212982 0.386810 1.000000 0.236572 0.398834 0.000000 0.225952 0.376617 0.044891 0.225616 0.378326 0.089630 0.224976 0.378601 0.131805 0.224548 0.378784 0.170837 0.224121 0.379120 0.206116 0.223846 0.379486 0.238220 0.224182 0.380432 0.267853 0.225250 0.381866 0.295380 0.226410 0.383423 0.321503 0.227539 0.384766 0.347229 0.228729 0.386200 0.373505 0.229950 0.387573 0.400177 0.230774 0.388428 0.428009 0.230957 0.388672 0.458008 0.231049 0.388672 0.490692 0.231018 0.388519 0.527008 0.230621 0.388062 0.568329 0.230164 0.387360 0.613617 0.229675 0.386627 0.661163 0.229279 0.385742 0.709198 0.228821 0.384949 0.755737 0.228546 0.384064 0.798950 0.228394 0.383423 0.837463 0.228394 0.382721 0.871521 0.228638 0.382446 0.901459 0.228973 0.381897 0.927826 0.229492 0.381744 0.951141 0.230133 0.381439 0.971954 0.230804 0.381256 0.990723 0.231537 0.381104 1.000000 0.242981 0.387115 1.000000 0.265930 0.400208 0.000000 0.257812 0.379852 0.044708 0.257690 0.381653 0.089478 0.257080 0.381866 0.131683 0.256622 0.381989 0.170685 0.256165 0.382294 0.205994 0.255890 0.382538 0.237549 0.255676 0.382904 0.266571 0.256134 0.383698 0.294373 0.257263 0.385132 0.321075 0.258392 0.386444 0.347351 0.259644 0.387756 0.373901 0.260864 0.389038 0.401093 0.261749 0.389923 0.429321 0.261963 0.390015 0.459564 0.261841 0.389771 0.492523 0.261658 0.389374 0.529388 0.261383 0.388855 0.571167 0.260956 0.388092 0.616699 0.260498 0.387268 0.664307 0.260040 0.386444 0.712128 0.259644 0.385559 0.758301 0.259338 0.384705 0.800995 0.259247 0.384003 0.838989 0.259277 0.383423 0.872467 0.259491 0.382721 0.901947 0.259827 0.382477 0.927948 0.260345 0.382080 0.951019 0.260864 0.381866 0.971588 0.261475 0.381592 0.990143 0.262177 0.381470 1.000000 0.272369 0.387421 1.000000 0.294647 0.401428 0.000000 0.288971 0.383026 0.044556 0.289185 0.384857 0.089325 0.288544 0.385010 0.131531 0.288025 0.385071 0.170563 0.287689 0.385254 0.205872 0.287415 0.385468 0.237762 0.287231 0.385773 0.267059 0.287231 0.386078 0.294617 0.287689 0.386719 0.321655 0.288879 0.387970 0.348236 0.290161 0.389313 0.375153 0.291412 0.390442 0.402496 0.292084 0.390961 0.431000 0.292145 0.390869 0.461639 0.292114 0.390594 0.495056 0.291962 0.390137 0.532410 0.291718 0.389557 0.574585 0.291321 0.388763 0.620331 0.290863 0.387878 0.667847 0.290466 0.386963 0.715363 0.290100 0.386017 0.761078 0.289856 0.385132 0.803101 0.289703 0.384338 0.840515 0.289734 0.383789 0.873444 0.289948 0.383301 0.902466 0.290222 0.382782 0.928101 0.290710 0.382538 0.950867 0.291260 0.382233 0.971161 0.291748 0.381897 0.989563 0.292419 0.381622 1.000000 0.301361 0.387543 1.000000 0.322968 0.402618 0.000000 0.319672 0.386078 0.044434 0.320282 0.387909 0.089172 0.319733 0.387970 0.131439 0.319275 0.387970 0.170898 0.318909 0.388092 0.207092 0.318634 0.388245 0.239502 0.318573 0.388428 0.269104 0.318634 0.388672 0.296539 0.318848 0.388977 0.322968 0.319214 0.389343 0.349701 0.320312 0.390350 0.376709 0.321503 0.391327 0.404419 0.322174 0.391785 0.433258 0.322327 0.391632 0.464264 0.322296 0.391266 0.498077 0.322144 0.390778 0.536041 0.321930 0.390106 0.578491 0.321564 0.389313 0.624359 0.321106 0.388306 0.671783 0.320740 0.387299 0.718872 0.320374 0.386383 0.763977 0.320129 0.385468 0.805298 0.320007 0.384674 0.842010 0.320038 0.384033 0.874390 0.320221 0.383484 0.902985 0.320496 0.383026 0.928223 0.320892 0.382629 0.950684 0.321381 0.382416 0.970764 0.321869 0.382141 0.988983 0.322388 0.381744 1.000000 0.330139 0.387268 1.000000 0.351105 0.403748 0.000000 0.350433 0.388916 0.044281 0.351440 0.390839 0.089630 0.350922 0.390839 0.132965 0.350433 0.390747 0.173248 0.350128 0.390778 0.209747 0.349915 0.390808 0.242340 0.349945 0.390930 0.272034 0.350067 0.391083 0.299408 0.350159 0.391083 0.325653 0.350281 0.391144 0.351685 0.350525 0.391174 0.378937 0.351685 0.392120 0.406891 0.352386 0.392517 0.436066 0.352539 0.392242 0.467468 0.352539 0.391846 0.501617 0.352448 0.391235 0.540009 0.352173 0.390533 0.582764 0.351807 0.389587 0.628662 0.351410 0.388672 0.675751 0.351013 0.387665 0.722443 0.350677 0.386658 0.766907 0.350464 0.385742 0.807434 0.350342 0.384979 0.843445 0.350403 0.384308 0.875305 0.350555 0.383636 0.903351 0.350769 0.383240 0.928253 0.351135 0.382843 0.950439 0.351532 0.382477 0.970306 0.351959 0.382050 0.988312 0.352386 0.381714 1.000000 0.358887 0.386902 1.000000 0.379242 0.404633 0.000000 0.381775 0.392090 0.046143 0.382690 0.393555 0.092621 0.382294 0.393402 0.136414 0.381836 0.393250 0.177032 0.381592 0.393158 0.213501 0.381500 0.393127 0.245880 0.381409 0.393036 0.275391 0.381500 0.393005 0.302826 0.381592 0.392944 0.329163 0.381805 0.392975 0.355255 0.382050 0.392914 0.381683 0.382263 0.392822 0.409821 0.382904 0.393036 0.439270 0.382996 0.392700 0.471008 0.383026 0.392273 0.505524 0.382935 0.391602 0.544342 0.382690 0.390778 0.587311 0.382355 0.389893 0.633087 0.381989 0.388855 0.679871 0.381592 0.387848 0.726044 0.381287 0.386902 0.769745 0.381042 0.385895 0.809509 0.380859 0.385040 0.844849 0.380920 0.384308 0.876068 0.381073 0.383698 0.903687 0.381226 0.383118 0.928223 0.381561 0.382721 0.950104 0.381866 0.382294 0.969727 0.382263 0.381958 0.987610 0.382538 0.381622 1.000000 0.387939 0.386292 1.000000 0.407593 0.405273 0.000519 0.414276 0.395599 0.049500 0.413818 0.395416 0.096527 0.413391 0.395142 0.140686 0.413055 0.394897 0.181000 0.412750 0.394592 0.217102 0.412567 0.394287 0.249359 0.412537 0.394165 0.278687 0.412659 0.394043 0.306030 0.412842 0.393982 0.332428 0.413086 0.393951 0.358551 0.413361 0.393829 0.385193 0.413605 0.393677 0.413849 0.414551 0.394165 0.443604 0.414764 0.393829 0.475586 0.414795 0.393311 0.510498 0.414734 0.392639 0.549713 0.414459 0.391815 0.592926 0.414154 0.390900 0.638550 0.413818 0.389832 0.684906 0.413422 0.388763 0.730469 0.413177 0.387787 0.773468 0.412933 0.386841 0.812469 0.412842 0.386017 0.847137 0.412872 0.385315 0.877777 0.412933 0.384735 0.904938 0.413116 0.384155 0.929077 0.413330 0.383698 0.950653 0.413605 0.383270 0.970154 0.413940 0.382782 0.987854 0.414246 0.382294 1.000000 0.419159 0.386932 1.000000 0.436401 0.405548 0.004639 0.445465 0.396820 0.054260 0.445068 0.396515 0.101257 0.444580 0.396057 0.145111 0.444183 0.395569 0.185333 0.443909 0.395203 0.221039 0.443817 0.394867 0.252991 0.443848 0.394684 0.282104 0.444031 0.394531 0.309296 0.444275 0.394409 0.335571 0.444550 0.394348 0.361816 0.444855 0.394226 0.388580 0.445129 0.393921 0.417542 0.446228 0.394562 0.448547 0.447388 0.395203 0.480835 0.447449 0.394653 0.515930 0.447327 0.393921 0.555542 0.447083 0.393005 0.598816 0.446777 0.391998 0.644196 0.446472 0.390991 0.690094 0.446106 0.389893 0.734985 0.445801 0.388885 0.777161 0.445587 0.387939 0.815338 0.445404 0.387085 0.849335 0.445404 0.386322 0.879395 0.445465 0.385681 0.906128 0.445465 0.385132 0.929932 0.445801 0.384521 0.951294 0.445984 0.383942 0.970581 0.446259 0.383301 0.988098 0.446533 0.382599 1.000000 0.450836 0.387268 1.000000 0.465759 0.405670 0.010223 0.477264 0.397614 0.059814 0.476776 0.397095 0.106842 0.476318 0.396576 0.150696 0.476044 0.395966 0.190460 0.475861 0.395599 0.225616 0.475830 0.395264 0.257080 0.475983 0.395050 0.285858 0.476166 0.394867 0.312866 0.476440 0.394745 0.339050 0.476776 0.394592 0.365234 0.477051 0.394379 0.392090 0.477295 0.394043 0.421356 0.478455 0.394745 0.452576 0.479706 0.395416 0.486084 0.480713 0.395874 0.521576 0.480652 0.395081 0.561371 0.480377 0.394135 0.604614 0.480072 0.393097 0.649689 0.479736 0.392059 0.695068 0.479340 0.390961 0.739197 0.478943 0.389862 0.780640 0.478699 0.388916 0.817993 0.478546 0.388031 0.851288 0.478455 0.387268 0.880890 0.478455 0.386505 0.907227 0.478516 0.385773 0.930817 0.478760 0.385040 0.951935 0.478882 0.384247 0.971008 0.479187 0.383484 0.988403 0.479431 0.382721 1.000000 0.483154 0.387451 1.000000 0.495667 0.405640 0.017059 0.509918 0.398071 0.066864 0.509430 0.397430 0.113739 0.509064 0.396759 0.157166 0.508820 0.396271 0.196228 0.508728 0.395844 0.230652 0.508759 0.395477 0.261566 0.508942 0.395264 0.289917 0.509155 0.395020 0.316620 0.509460 0.394806 0.342651 0.509796 0.394623 0.368866 0.510132 0.394348 0.395844 0.510437 0.394073 0.425293 0.511658 0.394775 0.456665 0.512848 0.395416 0.490540 0.514099 0.396057 0.527161 0.514862 0.396179 0.567139 0.514526 0.395203 0.610138 0.514160 0.394073 0.654846 0.513763 0.392975 0.699585 0.513306 0.391846 0.743011 0.513031 0.390808 0.783661 0.512634 0.389801 0.820343 0.512421 0.388794 0.853210 0.512360 0.387848 0.882355 0.512268 0.386963 0.908356 0.512360 0.386078 0.931641 0.512482 0.385193 0.952515 0.512665 0.384369 0.971405 0.512848 0.383484 0.988647 0.513245 0.382660 1.000000 0.516418 0.387543 1.000000 0.527039 0.405518 0.025421 0.545105 0.398224 0.075104 0.544708 0.397583 0.121552 0.544312 0.396942 0.164215 0.544189 0.396393 0.202454 0.544098 0.395874 0.235992 0.544189 0.395508 0.266205 0.544342 0.395264 0.294067 0.544647 0.394989 0.320435 0.544922 0.394775 0.346344 0.545227 0.394531 0.372467 0.545593 0.394226 0.399628 0.545990 0.394043 0.429199 0.547211 0.394714 0.460663 0.548401 0.395264 0.494568 0.549652 0.395844 0.531891 0.550842 0.396423 0.572571 0.551178 0.396118 0.615295 0.550720 0.395020 0.659576 0.550201 0.393860 0.703705 0.549713 0.392731 0.746521 0.549255 0.391541 0.786560 0.548920 0.390381 0.822754 0.548553 0.389252 0.855042 0.548492 0.388153 0.883850 0.548309 0.387115 0.909515 0.548492 0.386139 0.932526 0.548584 0.385193 0.953125 0.548706 0.384308 0.971832 0.548859 0.383453 0.988892 0.549072 0.382538 1.000000 0.551849 0.387543 1.000000 0.560638 0.405457 0.034912 0.583038 0.398315 0.084167 0.582611 0.397583 0.129913 0.582306 0.396912 0.171692 0.582092 0.396240 0.208740 0.582031 0.395844 0.241394 0.582123 0.395416 0.270874 0.582306 0.395111 0.298248 0.582611 0.394836 0.324310 0.582855 0.394562 0.350006 0.583130 0.394257 0.375946 0.583344 0.393921 0.403351 0.583862 0.393829 0.432922 0.585052 0.394470 0.464417 0.586212 0.394989 0.498383 0.587402 0.395508 0.535736 0.588470 0.396027 0.577148 0.589539 0.396484 0.620026 0.589417 0.395844 0.663849 0.588867 0.394592 0.707611 0.588257 0.393280 0.749969 0.587769 0.391937 0.789459 0.587250 0.390625 0.825043 0.586914 0.389374 0.856903 0.586761 0.388214 0.885284 0.586578 0.387115 0.910614 0.586639 0.386078 0.933319 0.586670 0.385101 0.953705 0.586700 0.384186 0.972229 0.586975 0.383301 0.989166 0.587006 0.382477 1.000000 0.589081 0.387634 1.000000 0.595886 0.405426 0.045258 0.622986 0.398041 0.093811 0.622528 0.397400 0.138641 0.622162 0.396729 0.179260 0.621948 0.396088 0.215057 0.621918 0.395599 0.246796 0.621948 0.395172 0.275543 0.622101 0.394836 0.302338 0.622345 0.394623 0.328033 0.622467 0.394196 0.353577 0.622711 0.393890 0.379364 0.622833 0.393463 0.406830 0.623383 0.393555 0.436432 0.624512 0.394073 0.467896 0.625580 0.394592 0.501831 0.626648 0.395081 0.539246 0.627655 0.395508 0.580414 0.628601 0.395905 0.624420 0.629608 0.396179 0.668152 0.629150 0.394958 0.711517 0.628387 0.393463 0.753387 0.627808 0.392059 0.792267 0.627319 0.390656 0.827362 0.626892 0.389343 0.858765 0.626648 0.388123 0.886688 0.626434 0.387024 0.911682 0.626343 0.385956 0.934082 0.626312 0.384949 0.954285 0.626404 0.384064 0.972626 0.626465 0.383209 0.989410 0.626465 0.382446 1.000000 0.627869 0.387787 1.000000 0.632355 0.405609 0.056122 0.664215 0.397858 0.103790 0.663727 0.397125 0.147491 0.663330 0.396301 0.186768 0.663025 0.395782 0.221313 0.662933 0.395325 0.251984 0.662903 0.394836 0.280060 0.662964 0.394562 0.306213 0.663055 0.394104 0.331604 0.663208 0.393829 0.356903 0.663300 0.393402 0.382599 0.663330 0.393005 0.410156 0.663910 0.393127 0.439545 0.664886 0.393616 0.470947 0.665833 0.394073 0.504883 0.666809 0.394470 0.542511 0.667725 0.394775 0.583740 0.668579 0.394928 0.627533 0.669495 0.395020 0.672424 0.670288 0.395050 0.715393 0.669525 0.393463 0.756744 0.668854 0.391968 0.795013 0.668213 0.390503 0.829590 0.667816 0.389191 0.860474 0.667450 0.387939 0.888092 0.667175 0.386841 0.912720 0.667023 0.385803 0.934875 0.666931 0.384857 0.954834 0.666809 0.384003 0.972931 0.666840 0.383270 0.989594 0.666809 0.382599 1.000000 0.667511 0.388214 1.000000 0.669678 0.405975 0.067352 0.705872 0.397491 0.113892 0.705322 0.396698 0.156281 0.704834 0.395996 0.194031 0.704498 0.395386 0.227295 0.704346 0.394867 0.256989 0.704224 0.394470 0.284302 0.704224 0.394073 0.309967 0.704163 0.393738 0.334961 0.704163 0.393280 0.359924 0.704041 0.392914 0.385498 0.703918 0.392456 0.412903 0.704529 0.392578 0.442383 0.705475 0.393036 0.473877 0.706238 0.393250 0.507935 0.707123 0.393524 0.545746 0.707947 0.393616 0.587067 0.708771 0.393707 0.630676 0.709595 0.393707 0.675232 0.710419 0.393677 0.719177 0.710876 0.393311 0.759949 0.710083 0.391785 0.797699 0.709442 0.390320 0.831726 0.708771 0.388977 0.862152 0.708374 0.387787 0.889343 0.708069 0.386719 0.913696 0.707794 0.385742 0.935577 0.707733 0.384888 0.955322 0.707489 0.384094 0.973297 0.707336 0.383514 0.989777 0.707367 0.382965 1.000000 0.707092 0.388824 1.000000 0.706940 0.406677 0.078461 0.747070 0.397095 0.123718 0.746429 0.396301 0.164642 0.745880 0.395569 0.200928 0.745483 0.394958 0.232910 0.745239 0.394440 0.261627 0.744965 0.393982 0.288177 0.744812 0.393616 0.313293 0.744690 0.393219 0.337952 0.744537 0.392761 0.362640 0.744354 0.392303 0.388000 0.744019 0.391724 0.415649 0.744659 0.391846 0.445190 0.745422 0.392090 0.476929 0.746124 0.392212 0.511078 0.746918 0.392303 0.548981 0.747650 0.392303 0.590271 0.748352 0.392273 0.633698 0.749054 0.392212 0.677979 0.749786 0.392151 0.721710 0.750488 0.392059 0.763062 0.750732 0.391541 0.800262 0.749878 0.390137 0.833740 0.749268 0.388855 0.863770 0.748779 0.387726 0.890533 0.748352 0.386719 0.914612 0.747986 0.385803 0.936249 0.747742 0.385132 0.955780 0.747589 0.384491 0.973602 0.747284 0.384064 0.989929 0.747192 0.383698 1.000000 0.746033 0.389801 1.000000 0.743591 0.407776 0.089325 0.787018 0.396576 0.133118 0.786285 0.395721 0.172424 0.785645 0.395111 0.207245 0.785156 0.394501 0.237946 0.784729 0.393860 0.265808 0.784424 0.393433 0.291626 0.784210 0.393036 0.316223 0.783875 0.392548 0.340576 0.783630 0.392090 0.365143 0.783264 0.391510 0.390594 0.782867 0.390686 0.418427 0.783508 0.390839 0.448151 0.784180 0.390930 0.479950 0.784821 0.390930 0.514221 0.785431 0.390930 0.552277 0.786072 0.390900 0.593475 0.786713 0.390808 0.636749 0.787262 0.390717 0.680542 0.787872 0.390625 0.723816 0.788452 0.390564 0.765137 0.789124 0.390533 0.802673 0.789124 0.390015 0.835632 0.788452 0.388824 0.865173 0.787842 0.387756 0.891663 0.787292 0.386963 0.915436 0.786926 0.386200 0.936829 0.786499 0.385651 0.956207 0.786194 0.385223 0.973816 0.785919 0.384979 0.990082 0.785706 0.384827 1.000000 0.783722 0.391205 1.000000 0.779297 0.409576 0.099609 0.824921 0.396179 0.141876 0.824097 0.395203 0.179596 0.823395 0.394470 0.212891 0.822815 0.393860 0.242462 0.822327 0.393402 0.269409 0.821899 0.392975 0.294678 0.821472 0.392426 0.319031 0.821106 0.391754 0.343231 0.820709 0.391052 0.367737 0.820282 0.390289 0.393311 0.819916 0.389587 0.421265 0.820465 0.389587 0.451141 0.820984 0.389557 0.483002 0.821533 0.389557 0.517456 0.822052 0.389465 0.555511 0.822540 0.389374 0.596680 0.823090 0.389343 0.639709 0.823578 0.389282 0.683105 0.824066 0.389221 0.725922 0.824554 0.389221 0.766693 0.825073 0.389252 0.804169 0.825531 0.389282 0.837433 0.825623 0.389038 0.866577 0.824860 0.388153 0.892700 0.824280 0.387421 0.916199 0.823761 0.386902 0.937347 0.823334 0.386505 0.956512 0.822876 0.386292 0.973999 0.822540 0.386292 0.990143 0.822357 0.386688 1.000000 0.819946 0.394135 1.000000 0.813782 0.413239 0.109192 0.860168 0.395569 0.149750 0.859253 0.394775 0.185944 0.858490 0.393982 0.217834 0.857849 0.393494 0.246429 0.857300 0.392822 0.272797 0.856750 0.392151 0.297729 0.856262 0.391541 0.321869 0.855774 0.390808 0.345917 0.855286 0.389984 0.370422 0.854767 0.389008 0.396240 0.854431 0.388306 0.424225 0.854919 0.388306 0.454071 0.855316 0.388245 0.486053 0.855743 0.388123 0.520569 0.856171 0.388062 0.558777 0.856537 0.388000 0.599731 0.856964 0.387970 0.642456 0.857391 0.387939 0.685547 0.857788 0.387970 0.727844 0.858124 0.388031 0.767975 0.858582 0.388184 0.804932 0.858917 0.388458 0.838257 0.859314 0.388733 0.867798 0.859283 0.388794 0.893616 0.858704 0.388275 0.916809 0.858154 0.387970 0.937805 0.857605 0.387848 0.956848 0.857147 0.388153 0.974213 0.856964 0.389221 0.990204 0.856903 0.390472 1.000000 0.853577 0.398315 1.000000 0.845642 0.417694 0.117737 0.892242 0.395020 0.156677 0.891327 0.394196 0.191467 0.890442 0.393433 0.222351 0.889740 0.392792 0.250305 0.889099 0.392059 0.276184 0.888519 0.391113 0.300781 0.887939 0.390350 0.324677 0.887421 0.389557 0.348633 0.886810 0.388611 0.373169 0.886230 0.387604 0.399170 0.885986 0.387054 0.427124 0.886292 0.386963 0.457062 0.886627 0.386902 0.489075 0.886963 0.386841 0.523682 0.887329 0.386810 0.561920 0.887573 0.386780 0.602722 0.887909 0.386810 0.645020 0.888214 0.386871 0.687775 0.888519 0.387024 0.729584 0.888824 0.387238 0.769196 0.889099 0.387573 0.805573 0.889404 0.387939 0.838440 0.889679 0.388428 0.868103 0.889984 0.389038 0.894409 0.890045 0.389557 0.917419 0.889587 0.389771 0.938263 0.889160 0.390686 0.957123 0.888672 0.391937 0.974304 0.888336 0.393463 0.990143 0.888092 0.395203 1.000000 0.884216 0.403229 1.000000 0.874725 0.422821 0.125366 0.920837 0.394501 0.163055 0.919891 0.393677 0.196747 0.919006 0.392761 0.226898 0.918243 0.391846 0.254181 0.917542 0.390961 0.279633 0.916901 0.390045 0.303894 0.916321 0.389099 0.327606 0.915710 0.388275 0.351410 0.915039 0.387238 0.375824 0.914429 0.386292 0.402069 0.914276 0.385773 0.430084 0.914520 0.385742 0.460022 0.914734 0.385681 0.492004 0.915009 0.385681 0.526764 0.915222 0.385712 0.564789 0.915436 0.385773 0.605438 0.915680 0.385925 0.647552 0.915894 0.386139 0.689819 0.916107 0.386414 0.731079 0.916321 0.386871 0.770325 0.916565 0.387329 0.806152 0.916718 0.387939 0.838684 0.916901 0.388672 0.867859 0.917175 0.389679 0.894409 0.917511 0.391510 0.918091 0.917816 0.393555 0.938568 0.917236 0.394928 0.957245 0.916748 0.396637 0.974243 0.916260 0.398560 0.990051 0.915924 0.400574 1.000000 0.911621 0.408691 1.000000 0.900696 0.428314 0.132629 0.946228 0.393799 0.169342 0.945312 0.392731 0.202026 0.944427 0.391724 0.231354 0.943665 0.390778 0.257996 0.942963 0.389771 0.282990 0.942291 0.388763 0.307007 0.941650 0.387939 0.330475 0.940979 0.386993 0.354187 0.940308 0.385956 0.378571 0.939575 0.384979 0.404846 0.939575 0.384644 0.432922 0.939728 0.384644 0.462891 0.939880 0.384674 0.494873 0.940094 0.384766 0.529663 0.940247 0.384918 0.567535 0.940399 0.385132 0.608093 0.940552 0.385406 0.649658 0.940674 0.385834 0.691589 0.940857 0.386261 0.732452 0.940948 0.386932 0.771088 0.941101 0.387634 0.806793 0.941284 0.388672 0.839172 0.941528 0.390411 0.868042 0.941711 0.392426 0.893951 0.941895 0.394775 0.917297 0.942047 0.397186 0.938416 0.942200 0.399780 0.957153 0.941833 0.402008 0.974121 0.941193 0.404205 0.989868 0.940674 0.406433 1.000000 0.936310 0.414520 1.000000 0.924347 0.434174 0.139893 0.969025 0.392822 0.175476 0.968048 0.391632 0.207153 0.967224 0.390625 0.235626 0.966400 0.389587 0.261749 0.965698 0.388611 0.286377 0.965057 0.387482 0.309937 0.964386 0.386536 0.333282 0.963684 0.385742 0.356934 0.963043 0.384796 0.381226 0.962311 0.383759 0.407654 0.962341 0.383698 0.435669 0.962433 0.383789 0.465576 0.962524 0.383942 0.497620 0.962646 0.384186 0.532318 0.962738 0.384430 0.570129 0.962830 0.384796 0.610352 0.962982 0.385315 0.651672 0.963043 0.385925 0.693024 0.963135 0.386627 0.733673 0.963226 0.387695 0.772339 0.963348 0.389404 0.807526 0.963440 0.391449 0.839233 0.963593 0.393738 0.867676 0.963654 0.396179 0.893219 0.963745 0.398804 0.916443 0.963837 0.401611 0.937561 0.963898 0.404480 0.956696 0.963989 0.407532 0.973969 0.963684 0.410278 0.989685 0.963043 0.412720 1.000000 0.958496 0.420593 1.000000 0.945709 0.440247 0.146881 0.989532 0.391724 0.181335 0.988617 0.390381 0.212097 0.987762 0.389435 0.239838 0.987000 0.388245 0.265411 0.986298 0.387299 0.289520 0.985626 0.386322 0.312836 0.984955 0.385468 0.336029 0.984283 0.384552 0.359528 0.983612 0.383728 0.383850 0.982880 0.382812 0.410248 0.982941 0.382965 0.438263 0.983032 0.383240 0.468048 0.983063 0.383484 0.500092 0.983124 0.383881 0.534698 0.983185 0.384430 0.572388 0.983215 0.385010 0.612274 0.983276 0.385712 0.653381 0.983307 0.386688 0.695038 0.983398 0.388428 0.735291 0.983459 0.390503 0.772980 0.983490 0.392700 0.807495 0.983490 0.395172 0.838715 0.983521 0.397888 0.866974 0.983521 0.400574 0.892426 0.983551 0.403534 0.915497 0.983551 0.406586 0.936554 0.983551 0.409698 0.955750 0.983582 0.412903 0.973389 0.983551 0.416077 0.989563 0.983276 0.419067 1.000000 0.978668 0.426758 1.000000 0.965210 0.446808 0.165283 1.000000 0.395416 0.197174 1.000000 0.394073 0.225769 1.000000 0.392914 0.251617 1.000000 0.391754 0.275635 1.000000 0.390533 0.298431 1.000000 0.389404 0.320526 1.000000 0.388123 0.342590 1.000000 0.387024 0.364990 1.000000 0.385620 0.388550 1.000000 0.384583 0.414581 1.000000 0.384888 0.442322 1.000000 0.385284 0.471985 1.000000 0.385834 0.503448 1.000000 0.386383 0.537811 1.000000 0.387115 0.575165 1.000000 0.388092 0.615356 1.000000 0.389862 0.656036 1.000000 0.391846 0.696472 1.000000 0.394073 0.735626 1.000000 0.396515 0.772461 1.000000 0.399078 0.806244 1.000000 0.401855 0.836975 1.000000 0.404694 0.865021 1.000000 0.407715 0.890289 1.000000 0.410797 0.913300 1.000000 0.413910 0.934296 1.000000 0.417023 0.953552 1.000000 0.420288 0.971283 1.000000 0.423370 0.987549 1.000000 0.427094 1.000000 0.997192 0.434601 1.000000 0.983307 0.455353 0.196869 1.000000 0.405426 0.227264 1.000000 0.405518 0.254578 1.000000 0.405334 0.279449 1.000000 0.405396 0.302612 1.000000 0.405396 0.324677 1.000000 0.405518 0.346161 1.000000 0.405731 0.367645 1.000000 0.405945 0.389557 1.000000 0.406097 0.412231 1.000000 0.406494 0.436310 1.000000 0.406952 0.461578 1.000000 0.407562 0.488678 1.000000 0.408234 0.518158 1.000000 0.409088 0.551178 1.000000 0.410706 0.586517 1.000000 0.412659 0.623230 1.000000 0.414795 0.660492 1.000000 0.417053 0.697754 1.000000 0.419617 0.733673 1.000000 0.422241 0.767944 1.000000 0.424988 0.799408 1.000000 0.427887 0.828064 1.000000 0.430847 0.854309 1.000000 0.433838 0.878296 1.000000 0.436890 0.900116 1.000000 0.439941 0.920135 1.000000 0.443024 0.938477 1.000000 0.446594 0.955444 1.000000 0.450684 0.971191 1.000000 0.455231 0.986053 1.000000 0.459961 1.000000 1.000000 0.464691 0.000000 0.006378 0.366394 0.040253 0.000824 0.378754 0.087921 0.004608 0.383942 0.132782 0.008484 0.388977 0.174194 0.012390 0.394012 0.211548 0.016083 0.398621 0.244720 0.019623 0.402832 0.274689 0.022125 0.405670 0.302155 0.023743 0.407440 0.328094 0.025330 0.409180 0.353394 0.026794 0.410919 0.378784 0.028259 0.412567 0.405090 0.029724 0.414154 0.432129 0.030426 0.415131 0.460846 0.030487 0.415527 0.491943 0.030426 0.415802 0.526550 0.030151 0.415894 0.566101 0.029724 0.415771 0.609711 0.029205 0.415558 0.655914 0.028687 0.415253 0.703125 0.028259 0.414856 0.749695 0.027924 0.414490 0.793976 0.027588 0.414154 0.834045 0.027649 0.414093 0.869568 0.027954 0.413818 0.900970 0.028412 0.413788 0.928680 0.029175 0.413849 0.953156 0.029785 0.413849 0.974945 0.030518 0.413879 0.994476 0.031403 0.413879 1.000000 0.050995 0.417877 1.000000 0.077820 0.424286 0.000000 0.045837 0.377808 0.040497 0.042053 0.387787 0.088074 0.045776 0.392792 0.132782 0.049255 0.397461 0.174072 0.052673 0.401703 0.211151 0.055023 0.404510 0.243866 0.056610 0.406342 0.273376 0.058105 0.408112 0.300720 0.059540 0.409790 0.326569 0.060944 0.411499 0.351868 0.062317 0.413086 0.377441 0.063690 0.414642 0.403778 0.065063 0.416168 0.431030 0.065765 0.417114 0.459778 0.065826 0.417480 0.490845 0.065735 0.417694 0.525452 0.065430 0.417694 0.564972 0.065002 0.417572 0.608490 0.064606 0.417236 0.654785 0.064087 0.416809 0.702515 0.063690 0.416412 0.749512 0.063416 0.416016 0.793854 0.063232 0.415527 0.833923 0.063385 0.415253 0.869446 0.063751 0.415131 0.900696 0.064026 0.414856 0.928253 0.064514 0.414795 0.952606 0.065125 0.414612 0.974335 0.065979 0.414551 0.993774 0.066925 0.414581 1.000000 0.085052 0.418976 1.000000 0.111328 0.425934 0.000000 0.085052 0.389618 0.042236 0.083466 0.397552 0.088165 0.085114 0.400513 0.132568 0.087433 0.403412 0.173340 0.088898 0.405273 0.209808 0.090332 0.406952 0.242432 0.091675 0.408691 0.271790 0.093048 0.410370 0.299103 0.094360 0.411987 0.325226 0.095673 0.413544 0.350555 0.096924 0.415100 0.376160 0.098206 0.416626 0.402496 0.099518 0.418060 0.429901 0.100342 0.419037 0.458679 0.100403 0.419312 0.489777 0.100342 0.419434 0.524353 0.100067 0.419403 0.563843 0.099701 0.419159 0.607941 0.099304 0.418701 0.654816 0.098877 0.418304 0.702759 0.098480 0.417786 0.749939 0.098267 0.417297 0.794281 0.098206 0.416779 0.834167 0.098175 0.416229 0.869476 0.098328 0.415955 0.900574 0.098633 0.415649 0.928009 0.099213 0.415405 0.952209 0.099854 0.415192 0.973755 0.100769 0.415131 0.993134 0.101685 0.415131 1.000000 0.118408 0.419800 1.000000 0.144043 0.427521 0.000000 0.123169 0.400177 0.043762 0.122223 0.404785 0.088806 0.121887 0.405151 0.131439 0.122070 0.405884 0.171753 0.123291 0.407593 0.208160 0.124573 0.409241 0.240723 0.125824 0.410889 0.270325 0.127075 0.412476 0.297729 0.128235 0.414001 0.323883 0.129517 0.415497 0.349243 0.130737 0.416992 0.374908 0.131989 0.418396 0.401276 0.133240 0.419800 0.428802 0.134186 0.420776 0.457581 0.134277 0.421051 0.488770 0.134186 0.421051 0.523773 0.133972 0.420959 0.564026 0.133698 0.420685 0.608459 0.133301 0.420197 0.655670 0.132904 0.419678 0.703857 0.132629 0.419006 0.750885 0.132263 0.418274 0.795013 0.131989 0.417603 0.834686 0.131989 0.417084 0.869751 0.132172 0.416626 0.900635 0.132568 0.416412 0.927856 0.133148 0.416046 0.951904 0.133881 0.415802 0.973328 0.134735 0.415833 0.992493 0.135712 0.415649 1.000000 0.150970 0.420349 1.000000 0.175995 0.428864 0.000000 0.158417 0.405914 0.044037 0.157288 0.408386 0.088654 0.156921 0.408661 0.130585 0.156586 0.408997 0.169983 0.156769 0.409821 0.206635 0.157898 0.411377 0.239349 0.159058 0.412933 0.269012 0.160187 0.414429 0.296417 0.161377 0.415863 0.322571 0.162598 0.417328 0.348022 0.163757 0.418732 0.373627 0.165009 0.420044 0.400085 0.166290 0.421387 0.427704 0.167358 0.422485 0.457001 0.167419 0.422638 0.488831 0.167389 0.422577 0.524353 0.167175 0.422272 0.565033 0.166962 0.421936 0.609894 0.166656 0.421356 0.657227 0.166138 0.420563 0.705261 0.165680 0.419830 0.752258 0.165344 0.419006 0.796173 0.165070 0.418335 0.835541 0.165100 0.417755 0.870270 0.165375 0.417206 0.900879 0.165771 0.416901 0.927856 0.166351 0.416718 0.951660 0.167023 0.416473 0.972870 0.167877 0.416199 0.991913 0.168793 0.416046 1.000000 0.182770 0.421051 1.000000 0.207062 0.430237 0.000000 0.192169 0.409210 0.043457 0.191376 0.411804 0.088074 0.190887 0.411987 0.130310 0.190491 0.412262 0.169312 0.190002 0.412506 0.205231 0.190338 0.413330 0.237946 0.191437 0.414825 0.267639 0.192596 0.416260 0.295135 0.193695 0.417633 0.321259 0.194855 0.419006 0.346771 0.196014 0.420319 0.372375 0.197266 0.421600 0.399323 0.198578 0.422852 0.427704 0.199738 0.423920 0.457336 0.199860 0.424011 0.489655 0.199890 0.423859 0.525696 0.199768 0.423584 0.566711 0.199310 0.422913 0.611755 0.198822 0.422211 0.659180 0.198334 0.421295 0.707367 0.197876 0.420441 0.754089 0.197540 0.419647 0.797729 0.197418 0.418884 0.836639 0.197510 0.418304 0.871002 0.197723 0.417725 0.901245 0.198120 0.417389 0.927887 0.198700 0.417084 0.951447 0.199310 0.416748 0.972443 0.200104 0.416626 0.991364 0.200928 0.416473 1.000000 0.213623 0.421417 1.000000 0.237244 0.431549 0.000000 0.224915 0.412018 0.043121 0.224426 0.415070 0.087891 0.223816 0.415161 0.130157 0.223358 0.415344 0.169189 0.222900 0.415527 0.204529 0.222595 0.415771 0.236633 0.223083 0.416595 0.266296 0.224152 0.417938 0.293823 0.225250 0.419250 0.319977 0.226410 0.420532 0.345947 0.227631 0.421753 0.372284 0.228882 0.423035 0.399567 0.230194 0.424255 0.428375 0.231445 0.425262 0.458496 0.231598 0.425262 0.491180 0.231476 0.424957 0.527527 0.231140 0.424316 0.569031 0.230682 0.423676 0.614319 0.230286 0.422852 0.661896 0.229767 0.421844 0.709900 0.229370 0.421082 0.756348 0.229034 0.420197 0.799530 0.228943 0.419373 0.837952 0.229004 0.418732 0.871857 0.229218 0.418243 0.901703 0.229584 0.417786 0.928040 0.230164 0.417480 0.951294 0.230713 0.417114 0.972015 0.231445 0.417053 0.990784 0.232239 0.416687 1.000000 0.243591 0.421783 1.000000 0.266510 0.432770 0.000000 0.256622 0.415070 0.042969 0.256531 0.418121 0.087769 0.255920 0.418182 0.130035 0.255402 0.418274 0.169037 0.255035 0.418396 0.204376 0.254730 0.418549 0.235992 0.254608 0.418854 0.265015 0.254974 0.419495 0.293091 0.256134 0.420746 0.319916 0.257324 0.422028 0.346222 0.258575 0.423187 0.372925 0.259888 0.424377 0.400635 0.261261 0.425537 0.429718 0.262329 0.426361 0.460083 0.262299 0.426086 0.493164 0.262146 0.425598 0.530029 0.261841 0.424957 0.571960 0.261475 0.424225 0.617584 0.261017 0.423340 0.665131 0.260590 0.422455 0.712952 0.260193 0.421448 0.758942 0.259918 0.420654 0.801575 0.259827 0.419769 0.839447 0.259857 0.419159 0.872833 0.260071 0.418640 0.902222 0.260468 0.418121 0.928192 0.260925 0.417786 0.951141 0.261475 0.417542 0.971710 0.262115 0.417236 0.990173 0.262787 0.416870 1.000000 0.272949 0.421936 1.000000 0.295197 0.433807 0.000000 0.287537 0.417938 0.042816 0.288025 0.421112 0.087616 0.287445 0.421051 0.129883 0.286926 0.421051 0.168915 0.286499 0.421143 0.204285 0.286255 0.421234 0.236511 0.286163 0.421387 0.265869 0.286163 0.421661 0.293488 0.286652 0.422150 0.320557 0.287872 0.423340 0.347290 0.289154 0.424500 0.374207 0.290375 0.425446 0.402069 0.291534 0.426361 0.431549 0.292603 0.427032 0.462280 0.292603 0.426697 0.495758 0.292480 0.426208 0.533203 0.292145 0.425507 0.575500 0.291779 0.424652 0.621185 0.291382 0.423767 0.668762 0.290955 0.422791 0.716278 0.290619 0.421844 0.761780 0.290344 0.420898 0.803711 0.290222 0.420135 0.840973 0.290314 0.419464 0.873779 0.290497 0.418945 0.902740 0.290863 0.418365 0.928314 0.291290 0.418030 0.950989 0.291748 0.417633 0.971283 0.292358 0.417389 0.989594 0.292908 0.417114 1.000000 0.301910 0.421967 1.000000 0.323486 0.434906 0.000000 0.318237 0.420715 0.042694 0.319122 0.423859 0.087524 0.318604 0.423767 0.129761 0.318176 0.423737 0.169586 0.317810 0.423706 0.205902 0.317566 0.423737 0.238434 0.317505 0.423798 0.268036 0.317657 0.423950 0.295654 0.317841 0.424225 0.322083 0.318176 0.424408 0.348816 0.319336 0.425293 0.375916 0.320496 0.426178 0.404175 0.321747 0.427032 0.433868 0.322723 0.427673 0.465057 0.322754 0.427246 0.498871 0.322632 0.426666 0.536865 0.322357 0.425964 0.579468 0.322021 0.425049 0.625275 0.321625 0.424164 0.672729 0.321228 0.423096 0.719788 0.320862 0.422089 0.764740 0.320618 0.421173 0.805908 0.320496 0.420349 0.842529 0.320587 0.419708 0.874756 0.320709 0.419006 0.903259 0.321045 0.418457 0.928436 0.321472 0.418182 0.950806 0.321869 0.417786 0.970856 0.322388 0.417328 0.989014 0.322845 0.417053 1.000000 0.330627 0.421783 1.000000 0.351562 0.435791 0.000000 0.348755 0.423309 0.042572 0.350403 0.426514 0.088348 0.349792 0.426300 0.131897 0.349304 0.426147 0.172272 0.349060 0.426056 0.208771 0.348938 0.426025 0.241486 0.348969 0.426086 0.271057 0.348999 0.426056 0.298553 0.349121 0.426025 0.324860 0.349304 0.425995 0.350830 0.349518 0.425995 0.378296 0.350769 0.426819 0.406799 0.352020 0.427643 0.436798 0.352966 0.428070 0.468292 0.352966 0.427643 0.502441 0.352844 0.426971 0.540985 0.352631 0.426208 0.583862 0.352295 0.425323 0.629608 0.351898 0.424255 0.676727 0.351501 0.423279 0.723358 0.351196 0.422180 0.767609 0.350922 0.421265 0.808105 0.350830 0.420380 0.843964 0.350891 0.419800 0.875610 0.351013 0.419067 0.903625 0.351257 0.418579 0.928436 0.351593 0.418152 0.950531 0.351990 0.417755 0.970367 0.352417 0.417389 0.988342 0.352844 0.417023 1.000000 0.359406 0.421478 1.000000 0.379669 0.436523 0.000000 0.380219 0.426636 0.045074 0.381653 0.428894 0.091675 0.381226 0.428711 0.135681 0.380859 0.428436 0.176300 0.380646 0.428314 0.212708 0.380493 0.428070 0.245148 0.380402 0.427887 0.274567 0.380493 0.427795 0.302063 0.380615 0.427704 0.328491 0.380859 0.427643 0.354523 0.381104 0.427521 0.381104 0.381348 0.427368 0.409912 0.382599 0.428101 0.440125 0.383484 0.428436 0.471924 0.383484 0.427917 0.506439 0.383392 0.427216 0.545410 0.383148 0.426392 0.588440 0.382812 0.425415 0.634094 0.382446 0.424286 0.680878 0.382080 0.423340 0.726898 0.381714 0.422241 0.770447 0.381531 0.421234 0.810089 0.381378 0.420441 0.845306 0.381409 0.419708 0.876434 0.381531 0.419037 0.903931 0.381714 0.418488 0.928345 0.381958 0.418030 0.950195 0.382294 0.417572 0.969818 0.382629 0.417114 0.987610 0.382935 0.416718 1.000000 0.388336 0.420624 1.000000 0.407990 0.437103 0.000580 0.413940 0.431549 0.049652 0.413452 0.431183 0.096771 0.413055 0.430847 0.140900 0.412689 0.430511 0.181213 0.412384 0.430084 0.217285 0.412262 0.429779 0.249512 0.412292 0.429565 0.278809 0.412384 0.429382 0.306183 0.412598 0.429260 0.332550 0.412933 0.429169 0.358734 0.413177 0.428986 0.385437 0.413483 0.428802 0.413391 0.413696 0.428497 0.443726 0.414429 0.428589 0.475830 0.414429 0.428040 0.510681 0.414337 0.427307 0.549988 0.414093 0.426392 0.593109 0.413727 0.425354 0.638611 0.413391 0.424316 0.684906 0.412994 0.423218 0.730286 0.412659 0.422119 0.773071 0.412415 0.421112 0.811951 0.412262 0.420319 0.846405 0.412231 0.419525 0.877014 0.412323 0.418823 0.904083 0.412476 0.418274 0.928131 0.412659 0.417694 0.949738 0.412933 0.417236 0.969177 0.413177 0.416626 0.986908 0.413452 0.416107 1.000000 0.417694 0.419342 1.000000 0.436798 0.437347 0.005981 0.445862 0.433289 0.055389 0.445374 0.432709 0.102386 0.444916 0.432129 0.146362 0.444519 0.431671 0.186432 0.444275 0.431152 0.222137 0.444214 0.430878 0.253998 0.444275 0.430603 0.282990 0.444458 0.430389 0.310181 0.444733 0.430176 0.336426 0.444977 0.430023 0.362610 0.445282 0.429810 0.389465 0.445587 0.429535 0.417511 0.445770 0.429169 0.448181 0.446564 0.429291 0.480560 0.446594 0.428711 0.515717 0.446503 0.427887 0.555328 0.446259 0.427002 0.598572 0.445984 0.425995 0.643799 0.445557 0.424896 0.689606 0.445251 0.423767 0.734406 0.444946 0.422760 0.776398 0.444702 0.421753 0.814484 0.444580 0.420898 0.848328 0.444519 0.420135 0.878357 0.444550 0.419464 0.904999 0.444641 0.418823 0.928833 0.444824 0.418243 0.950195 0.445007 0.417572 0.969482 0.445312 0.416962 0.987061 0.445679 0.416229 1.000000 0.449463 0.419464 1.000000 0.466125 0.437439 0.011719 0.477570 0.433807 0.061249 0.477081 0.433044 0.108368 0.476685 0.432465 0.152130 0.476379 0.431915 0.191742 0.476227 0.431488 0.226837 0.476257 0.431091 0.258209 0.476349 0.430786 0.286835 0.476562 0.430542 0.313782 0.476868 0.430328 0.339935 0.477142 0.430115 0.366150 0.477478 0.429871 0.393066 0.477783 0.429504 0.421234 0.477966 0.429077 0.452332 0.478912 0.429413 0.485870 0.479919 0.429810 0.521301 0.479797 0.428955 0.561157 0.479553 0.427979 0.604279 0.479248 0.426941 0.649200 0.478851 0.425781 0.694489 0.478455 0.424713 0.738464 0.478119 0.423645 0.779755 0.477936 0.422668 0.817047 0.477722 0.421722 0.850220 0.477570 0.420929 0.879822 0.477600 0.420166 0.906189 0.477722 0.419342 0.929688 0.477753 0.418579 0.950806 0.478058 0.417847 0.969879 0.478241 0.417053 0.987305 0.478607 0.416290 1.000000 0.481903 0.419647 1.000000 0.496063 0.437378 0.018890 0.510193 0.434021 0.068542 0.509796 0.433350 0.115509 0.509399 0.432617 0.158752 0.509216 0.432037 0.197601 0.509094 0.431549 0.231934 0.509155 0.431091 0.262634 0.509277 0.430817 0.290894 0.509613 0.430603 0.317627 0.509918 0.430267 0.343597 0.510223 0.430054 0.369751 0.510529 0.429749 0.396759 0.510834 0.429352 0.425079 0.510986 0.428894 0.456451 0.512054 0.429321 0.490326 0.513275 0.429871 0.526855 0.513916 0.429871 0.566833 0.513702 0.428864 0.609802 0.513306 0.427826 0.654297 0.512939 0.426666 0.698975 0.512512 0.425537 0.742249 0.512085 0.424469 0.782745 0.511810 0.423401 0.819427 0.511536 0.422394 0.852142 0.511475 0.421417 0.881317 0.511475 0.420471 0.907288 0.511505 0.419617 0.930573 0.511597 0.418701 0.951416 0.511841 0.417877 0.970306 0.511993 0.417053 0.987610 0.512268 0.416229 1.000000 0.515228 0.419708 1.000000 0.527313 0.437317 0.027466 0.545502 0.434052 0.076935 0.545044 0.433350 0.123444 0.544739 0.432587 0.165955 0.544556 0.432007 0.203827 0.544464 0.431458 0.237335 0.544617 0.431091 0.267365 0.544769 0.430695 0.295105 0.545044 0.430420 0.321472 0.545380 0.430176 0.347290 0.545654 0.429810 0.373383 0.545959 0.429443 0.400360 0.546204 0.429047 0.428802 0.546356 0.428528 0.460388 0.547546 0.429047 0.494354 0.548767 0.429596 0.531586 0.549927 0.430084 0.572235 0.550293 0.429718 0.614899 0.549835 0.428619 0.658966 0.549316 0.427429 0.703003 0.548798 0.426239 0.745697 0.548309 0.425079 0.785675 0.547974 0.423859 0.821777 0.547668 0.422729 0.854034 0.547516 0.421631 0.882782 0.547455 0.420593 0.908447 0.547455 0.419647 0.931396 0.547485 0.418701 0.952057 0.547699 0.417786 0.970734 0.547852 0.416962 0.987823 0.548126 0.416168 1.000000 0.550659 0.419708 1.000000 0.560913 0.437195 0.037140 0.583405 0.433990 0.086182 0.583008 0.433136 0.131897 0.582703 0.432434 0.173431 0.582489 0.431763 0.210205 0.582428 0.431244 0.242737 0.582520 0.430847 0.271973 0.582733 0.430481 0.299255 0.583008 0.430145 0.325287 0.583252 0.429779 0.350891 0.583527 0.429504 0.376923 0.583771 0.429108 0.403900 0.583923 0.428558 0.432495 0.584137 0.428192 0.464111 0.585297 0.428711 0.498108 0.586426 0.429138 0.535400 0.587494 0.429565 0.576752 0.588623 0.430054 0.619568 0.588470 0.429291 0.663300 0.587860 0.428009 0.706940 0.587250 0.426697 0.749115 0.586700 0.425323 0.788544 0.586273 0.424042 0.824127 0.585999 0.422821 0.855896 0.585754 0.421661 0.884216 0.585663 0.420593 0.909515 0.585632 0.419525 0.932190 0.585663 0.418579 0.952606 0.585754 0.417725 0.971130 0.585907 0.416809 0.988068 0.586029 0.416046 1.000000 0.588043 0.419830 1.000000 0.596252 0.437225 0.047638 0.623383 0.433624 0.095917 0.622894 0.432800 0.140717 0.622559 0.432098 0.181061 0.622406 0.431488 0.216522 0.622314 0.431000 0.248108 0.622375 0.430511 0.276611 0.622498 0.430145 0.303406 0.622742 0.429779 0.329041 0.622955 0.429443 0.354431 0.623077 0.428986 0.380310 0.623230 0.428558 0.407227 0.623322 0.428040 0.435974 0.623535 0.427765 0.467590 0.624603 0.428192 0.501434 0.625610 0.428650 0.538757 0.626617 0.428986 0.580017 0.627655 0.429321 0.623810 0.628601 0.429535 0.667511 0.628052 0.428284 0.710846 0.627441 0.426849 0.752533 0.626770 0.425385 0.791382 0.626282 0.424042 0.826385 0.625824 0.422760 0.857697 0.625549 0.421539 0.885651 0.625366 0.420441 0.910583 0.625305 0.419434 0.932983 0.625244 0.418427 0.953217 0.625305 0.417572 0.971497 0.625366 0.416748 0.988281 0.625366 0.416046 1.000000 0.627014 0.420013 1.000000 0.632751 0.437408 0.058594 0.664581 0.433228 0.105927 0.664062 0.432465 0.149567 0.663696 0.431641 0.188416 0.663422 0.431030 0.222717 0.663330 0.430420 0.253235 0.663330 0.430054 0.281128 0.663391 0.429657 0.307281 0.663483 0.429260 0.332581 0.663574 0.428894 0.357758 0.663635 0.428436 0.383453 0.663635 0.427979 0.410278 0.663605 0.427368 0.439056 0.663788 0.427216 0.470520 0.664764 0.427612 0.504395 0.665710 0.427917 0.541962 0.666595 0.428131 0.583191 0.667542 0.428284 0.626984 0.668427 0.428345 0.671783 0.669250 0.428314 0.714722 0.668549 0.426788 0.755890 0.667755 0.425293 0.794128 0.667084 0.423859 0.828583 0.666718 0.422577 0.859406 0.666382 0.421387 0.886963 0.666107 0.420288 0.911652 0.665955 0.419250 0.933716 0.665710 0.418365 0.953674 0.665802 0.417572 0.971863 0.665771 0.416840 0.988464 0.665710 0.416168 1.000000 0.666626 0.420410 1.000000 0.669983 0.437836 0.069794 0.706207 0.432770 0.115997 0.705627 0.432007 0.158203 0.705170 0.431152 0.195587 0.704834 0.430481 0.228638 0.704651 0.430023 0.258179 0.704559 0.429535 0.285309 0.704529 0.429138 0.310944 0.704529 0.428741 0.335815 0.704498 0.428284 0.360687 0.704407 0.427826 0.386261 0.704285 0.427307 0.412964 0.704010 0.426697 0.441833 0.704315 0.426514 0.473480 0.705139 0.426727 0.507477 0.705994 0.426849 0.545227 0.706818 0.426971 0.586548 0.707642 0.427002 0.630096 0.708435 0.427002 0.674713 0.709290 0.426971 0.718445 0.709656 0.426605 0.759094 0.708923 0.425110 0.796783 0.708313 0.423737 0.830719 0.707672 0.422363 0.861084 0.707184 0.421234 0.888275 0.706909 0.420197 0.912598 0.706604 0.419250 0.934448 0.706512 0.418427 0.954193 0.706360 0.417725 0.972168 0.706238 0.417084 0.988678 0.706177 0.416595 1.000000 0.706146 0.421082 1.000000 0.707184 0.438477 0.080780 0.747406 0.432190 0.125763 0.746674 0.431458 0.166473 0.746185 0.430573 0.202362 0.745758 0.430054 0.234131 0.745483 0.429413 0.262756 0.745300 0.429016 0.289093 0.745087 0.428497 0.314240 0.744995 0.428131 0.338745 0.744812 0.427643 0.363373 0.744568 0.427124 0.388794 0.744293 0.426483 0.415497 0.743927 0.425751 0.444733 0.744293 0.425476 0.476471 0.744995 0.425598 0.510651 0.745758 0.425629 0.548553 0.746460 0.425629 0.589844 0.747223 0.425598 0.633118 0.747894 0.425568 0.677277 0.748596 0.425476 0.720947 0.749268 0.425415 0.762177 0.749512 0.424927 0.799316 0.748749 0.423492 0.832733 0.748108 0.422272 0.862671 0.747559 0.421204 0.889465 0.747131 0.420227 0.913483 0.746826 0.419373 0.935120 0.746552 0.418701 0.954681 0.746368 0.418091 0.972473 0.746124 0.417664 0.988831 0.745972 0.417328 1.000000 0.745361 0.421997 1.000000 0.743927 0.439514 0.091522 0.787201 0.431671 0.135040 0.786499 0.430817 0.174194 0.785889 0.430084 0.208557 0.785370 0.429382 0.239136 0.784973 0.428864 0.266815 0.784668 0.428345 0.292511 0.784393 0.427979 0.317078 0.784119 0.427460 0.341339 0.783813 0.426941 0.365906 0.783478 0.426239 0.391357 0.783112 0.425385 0.418182 0.782593 0.424561 0.447662 0.782959 0.424286 0.479553 0.783661 0.424286 0.513824 0.784241 0.424286 0.551788 0.784882 0.424225 0.593079 0.785522 0.424194 0.636108 0.786102 0.424103 0.679993 0.786682 0.424042 0.723114 0.787292 0.423920 0.764221 0.787872 0.423920 0.801697 0.787964 0.423401 0.834595 0.787231 0.422272 0.864105 0.786652 0.421265 0.890533 0.786072 0.420441 0.914276 0.785706 0.419769 0.935669 0.785400 0.419189 0.955048 0.785095 0.418823 0.972717 0.784729 0.418549 0.988953 0.784546 0.418427 1.000000 0.783081 0.423401 1.000000 0.779633 0.441528 0.101715 0.825073 0.431152 0.143707 0.824280 0.430237 0.181213 0.823608 0.429565 0.214111 0.823029 0.428894 0.243530 0.822510 0.428314 0.270325 0.822113 0.427765 0.295471 0.821686 0.427155 0.319794 0.821289 0.426514 0.343933 0.820862 0.425873 0.368469 0.820435 0.425049 0.393982 0.819946 0.424133 0.420837 0.819366 0.423096 0.450592 0.819794 0.423004 0.482544 0.820312 0.422943 0.516937 0.820801 0.422882 0.555054 0.821320 0.422821 0.596161 0.821899 0.422791 0.639008 0.822357 0.422668 0.682465 0.822876 0.422638 0.725098 0.823364 0.422638 0.765686 0.823822 0.422699 0.803131 0.824310 0.422791 0.836334 0.824280 0.422485 0.865448 0.823700 0.421661 0.891571 0.823151 0.420990 0.915009 0.822510 0.420441 0.936218 0.822205 0.420105 0.955383 0.821655 0.419891 0.972931 0.821381 0.419861 0.989075 0.821350 0.420502 1.000000 0.819489 0.426422 1.000000 0.814087 0.444977 0.111115 0.860321 0.430573 0.151459 0.859406 0.429718 0.187317 0.858673 0.428955 0.218872 0.857971 0.428314 0.247406 0.857422 0.427643 0.273712 0.856873 0.426941 0.298462 0.856384 0.426239 0.322662 0.855927 0.425446 0.346588 0.855408 0.424622 0.371155 0.854889 0.423767 0.396667 0.854279 0.422760 0.423645 0.853668 0.421692 0.453522 0.854095 0.421661 0.485565 0.854492 0.421600 0.520172 0.854950 0.421539 0.558228 0.855347 0.421417 0.599213 0.855774 0.421417 0.641724 0.856171 0.421387 0.684875 0.856537 0.421478 0.726929 0.856934 0.421539 0.767029 0.857300 0.421692 0.803925 0.857727 0.421906 0.837189 0.858093 0.422180 0.866638 0.858124 0.422302 0.892456 0.857452 0.421783 0.915680 0.856903 0.421509 0.936646 0.856354 0.421356 0.955719 0.856079 0.421875 0.973145 0.856018 0.422852 0.989105 0.855865 0.424103 1.000000 0.853302 0.430267 1.000000 0.845825 0.449127 0.119446 0.892303 0.429840 0.158203 0.891388 0.429169 0.192719 0.890594 0.428314 0.223389 0.889832 0.427551 0.251251 0.889191 0.426636 0.277100 0.888611 0.425842 0.301605 0.888062 0.425140 0.325470 0.887512 0.424225 0.349335 0.886902 0.423309 0.373840 0.886322 0.422333 0.399414 0.885620 0.421326 0.426514 0.885132 0.420410 0.456482 0.885437 0.420380 0.488617 0.885742 0.420319 0.523285 0.886078 0.420288 0.561279 0.886383 0.420258 0.602173 0.886719 0.420319 0.644379 0.887024 0.420410 0.687042 0.887329 0.420532 0.728607 0.887573 0.420776 0.768219 0.887909 0.421051 0.804565 0.888184 0.421478 0.837280 0.888489 0.421936 0.866821 0.888763 0.422546 0.893188 0.888824 0.423096 0.916290 0.888275 0.423431 0.937134 0.887909 0.424316 0.955963 0.887512 0.425507 0.973145 0.887268 0.426880 0.989044 0.886963 0.428467 1.000000 0.884064 0.434784 1.000000 0.874847 0.453827 0.126892 0.920898 0.429230 0.164490 0.919922 0.428314 0.198029 0.919067 0.427338 0.227875 0.918304 0.426453 0.255127 0.917633 0.425537 0.280426 0.916962 0.424683 0.304626 0.916382 0.423767 0.328339 0.915741 0.422943 0.352142 0.915131 0.422058 0.376556 0.914490 0.421051 0.402130 0.913757 0.419983 0.429474 0.913300 0.419220 0.459442 0.913544 0.419159 0.491638 0.913818 0.419159 0.526184 0.914032 0.419250 0.564240 0.914246 0.419342 0.604797 0.914490 0.419495 0.646698 0.914703 0.419739 0.689026 0.914917 0.420013 0.730194 0.915131 0.420410 0.769135 0.915314 0.420868 0.805115 0.915527 0.421478 0.837494 0.915710 0.422150 0.866821 0.916016 0.423431 0.893280 0.916351 0.425140 0.916840 0.916626 0.427002 0.937378 0.916107 0.428345 0.956055 0.915680 0.429779 0.973145 0.915131 0.431549 0.988922 0.914703 0.433441 1.000000 0.911377 0.439789 1.000000 0.900940 0.458923 0.134186 0.946289 0.428497 0.170776 0.945312 0.427277 0.203247 0.944458 0.426331 0.232361 0.943665 0.425354 0.258972 0.942993 0.424469 0.283783 0.942322 0.423462 0.307739 0.941681 0.422668 0.331207 0.941010 0.421631 0.354858 0.940338 0.420776 0.379242 0.939636 0.419800 0.404755 0.938873 0.418762 0.432281 0.938507 0.418182 0.462341 0.938690 0.418243 0.494446 0.938904 0.418335 0.528992 0.939056 0.418488 0.567047 0.939209 0.418701 0.607269 0.939331 0.418976 0.648956 0.939514 0.419342 0.690765 0.939667 0.419891 0.731445 0.939789 0.420441 0.770050 0.939911 0.421173 0.805725 0.940125 0.422424 0.838043 0.940338 0.424072 0.866821 0.940552 0.426025 0.892761 0.940735 0.428162 0.916138 0.940918 0.430359 0.937286 0.941071 0.432861 0.955994 0.940674 0.434753 0.972992 0.940155 0.436737 0.988800 0.939636 0.438843 1.000000 0.936096 0.445129 1.000000 0.924438 0.464233 0.141327 0.969025 0.427368 0.176788 0.968079 0.426300 0.208221 0.967194 0.425201 0.236603 0.966431 0.424194 0.262695 0.965698 0.423248 0.287079 0.965057 0.422302 0.310699 0.964417 0.421387 0.334015 0.963745 0.420471 0.357513 0.963043 0.419495 0.381866 0.962311 0.418579 0.407379 0.961517 0.417725 0.435028 0.961273 0.417389 0.465027 0.961365 0.417542 0.496979 0.961487 0.417755 0.531586 0.961609 0.418030 0.569458 0.961700 0.418427 0.609558 0.961792 0.418884 0.650757 0.961853 0.419525 0.692139 0.961945 0.420227 0.732788 0.962097 0.421356 0.771301 0.962219 0.423126 0.806366 0.962341 0.425079 0.837830 0.962433 0.427094 0.866364 0.962555 0.429413 0.892059 0.962616 0.431793 0.915283 0.962738 0.434387 0.936310 0.962830 0.437073 0.955597 0.962921 0.439789 0.972839 0.962585 0.442230 0.988647 0.961975 0.444427 1.000000 0.958374 0.450623 1.000000 0.945740 0.469666 0.148254 0.989532 0.426208 0.182617 0.988617 0.425140 0.213104 0.987793 0.424011 0.240723 0.987000 0.423035 0.266235 0.986298 0.422058 0.290283 0.985626 0.421143 0.313568 0.984955 0.420166 0.336700 0.984283 0.419312 0.360107 0.983612 0.418579 0.384369 0.982880 0.417725 0.409821 0.982086 0.416962 0.437531 0.981903 0.416840 0.467499 0.981964 0.417114 0.499390 0.982056 0.417511 0.534027 0.982086 0.417969 0.571564 0.982117 0.418579 0.611359 0.982178 0.419281 0.652832 0.982239 0.420441 0.694275 0.982269 0.422150 0.734222 0.982330 0.424072 0.771851 0.982361 0.426208 0.806274 0.982391 0.428467 0.837463 0.982452 0.430878 0.865662 0.982452 0.433441 0.891144 0.982483 0.436096 0.914368 0.982483 0.438873 0.935364 0.982483 0.441711 0.954651 0.982513 0.444550 0.972412 0.982544 0.447479 0.988495 0.982269 0.450134 1.000000 0.978699 0.456207 1.000000 0.965271 0.475830 0.166565 1.000000 0.429047 0.198364 1.000000 0.427948 0.226715 1.000000 0.426727 0.252502 1.000000 0.425629 0.276428 1.000000 0.424652 0.299103 1.000000 0.423523 0.321198 1.000000 0.422607 0.343201 1.000000 0.421356 0.365570 1.000000 0.420288 0.388794 1.000000 0.418976 0.413116 1.000000 0.417511 0.440704 1.000000 0.417603 0.470490 1.000000 0.418091 0.502136 1.000000 0.418671 0.536621 1.000000 0.419434 0.574310 1.000000 0.420593 0.614288 1.000000 0.422241 0.655090 1.000000 0.424164 0.695343 1.000000 0.426239 0.734528 1.000000 0.428436 0.771484 1.000000 0.430878 0.805420 1.000000 0.433441 0.836304 1.000000 0.436005 0.864349 1.000000 0.438782 0.889832 1.000000 0.441498 0.912994 1.000000 0.444336 0.934082 1.000000 0.447235 0.953430 1.000000 0.450043 0.971191 1.000000 0.452911 0.987549 1.000000 0.456604 1.000000 0.997223 0.463562 1.000000 0.983276 0.483673 0.198029 1.000000 0.437347 0.228363 1.000000 0.437256 0.255463 1.000000 0.437195 0.280273 1.000000 0.437134 0.303345 1.000000 0.437317 0.325287 1.000000 0.437408 0.346771 1.000000 0.437439 0.368225 1.000000 0.437683 0.390076 1.000000 0.437927 0.412811 1.000000 0.438385 0.436707 1.000000 0.438843 0.462128 1.000000 0.439331 0.489136 1.000000 0.440002 0.518799 1.000000 0.441071 0.551727 1.000000 0.442657 0.587036 1.000000 0.444489 0.623566 1.000000 0.446442 0.660736 1.000000 0.448608 0.697876 1.000000 0.450958 0.733826 1.000000 0.453308 0.767883 1.000000 0.455872 0.799347 1.000000 0.458466 0.828125 1.000000 0.461151 0.854340 1.000000 0.463898 0.878326 1.000000 0.466583 0.900146 1.000000 0.469391 0.920105 1.000000 0.472168 0.938568 1.000000 0.475555 0.955475 1.000000 0.479431 0.971283 1.000000 0.483521 0.985992 1.000000 0.487701 1.000000 1.000000 0.491943 0.000000 0.007355 0.405365 0.038696 0.000275 0.418243 0.086365 0.004211 0.423004 0.131378 0.008148 0.427734 0.172760 0.011932 0.432129 0.210144 0.015656 0.436279 0.243317 0.019135 0.439972 0.273132 0.020966 0.441772 0.300568 0.022583 0.443420 0.326538 0.024139 0.444977 0.351898 0.025604 0.446503 0.377258 0.027100 0.447968 0.403595 0.028503 0.449402 0.431396 0.029999 0.450806 0.460815 0.031067 0.451874 0.491913 0.030945 0.451965 0.526520 0.030731 0.451904 0.566101 0.030334 0.451721 0.609680 0.029846 0.451355 0.655914 0.029327 0.450897 0.703125 0.028870 0.450470 0.749817 0.028503 0.449982 0.794098 0.028290 0.449493 0.834198 0.028320 0.449249 0.869751 0.028625 0.449066 0.901093 0.029175 0.448822 0.928772 0.029846 0.448792 0.953217 0.030487 0.448578 0.974976 0.031281 0.448517 0.994507 0.032166 0.448456 1.000000 0.051819 0.451416 1.000000 0.078613 0.456024 0.000000 0.046814 0.416168 0.038971 0.041718 0.426514 0.086487 0.045197 0.431000 0.131378 0.048828 0.435150 0.172577 0.052063 0.438751 0.209564 0.053925 0.440735 0.242310 0.055450 0.442322 0.271851 0.056946 0.443848 0.299103 0.058350 0.445404 0.325012 0.059784 0.446930 0.350433 0.061127 0.448364 0.375946 0.062531 0.449738 0.402374 0.063843 0.451080 0.430176 0.065216 0.452423 0.459747 0.066376 0.453522 0.490845 0.066284 0.453522 0.525452 0.066040 0.453400 0.564972 0.065643 0.453186 0.608490 0.065186 0.452820 0.654938 0.064728 0.452179 0.702667 0.064331 0.451752 0.749725 0.063995 0.451141 0.794098 0.063873 0.450592 0.834167 0.064026 0.450348 0.869598 0.064331 0.449951 0.900848 0.064667 0.449585 0.928375 0.065155 0.449341 0.952728 0.065826 0.449249 0.974365 0.066742 0.449097 0.993805 0.067657 0.448914 1.000000 0.085846 0.452087 1.000000 0.112091 0.457306 0.000000 0.085693 0.426910 0.040802 0.082947 0.435150 0.086700 0.084503 0.437622 0.131104 0.086304 0.439575 0.171661 0.087769 0.441223 0.208221 0.089172 0.442780 0.240692 0.090485 0.444366 0.270203 0.091858 0.445862 0.297546 0.093140 0.447327 0.323700 0.094482 0.448669 0.349091 0.095764 0.450043 0.374725 0.097076 0.451416 0.401123 0.098389 0.452667 0.428955 0.099731 0.453979 0.458649 0.100952 0.455048 0.489777 0.100861 0.455048 0.524353 0.100647 0.454834 0.563995 0.100342 0.454559 0.608185 0.099854 0.453979 0.655151 0.099487 0.453369 0.703125 0.099152 0.452820 0.750244 0.098938 0.452271 0.794617 0.098877 0.451721 0.834442 0.098755 0.451080 0.869690 0.098938 0.450531 0.900787 0.099304 0.450226 0.928101 0.099823 0.449860 0.952301 0.100616 0.449615 0.973846 0.101501 0.449524 0.993164 0.102386 0.449371 1.000000 0.119232 0.452698 1.000000 0.144775 0.458801 0.000000 0.123505 0.436340 0.042236 0.121033 0.440918 0.087219 0.120789 0.441162 0.129700 0.120850 0.441742 0.170044 0.122131 0.443268 0.206421 0.123413 0.444733 0.239136 0.124634 0.446228 0.268799 0.125916 0.447632 0.296234 0.127075 0.449005 0.322357 0.128357 0.450348 0.347809 0.129608 0.451660 0.373444 0.130859 0.452911 0.399872 0.132080 0.454102 0.427734 0.133453 0.455322 0.457550 0.134796 0.456482 0.488892 0.134705 0.456451 0.524078 0.134613 0.456146 0.564362 0.134247 0.455719 0.608826 0.133911 0.455139 0.656158 0.133606 0.454529 0.704315 0.133240 0.453766 0.751282 0.132843 0.452972 0.795410 0.132599 0.452271 0.834991 0.132568 0.451660 0.870026 0.132843 0.451111 0.900848 0.133270 0.450775 0.928040 0.133850 0.450409 0.951996 0.134613 0.450134 0.973389 0.135468 0.449799 0.992523 0.136353 0.449677 1.000000 0.151794 0.453400 1.000000 0.176666 0.460022 0.000000 0.158020 0.440552 0.042267 0.156128 0.444183 0.086823 0.155731 0.444336 0.128784 0.155365 0.444550 0.168304 0.155518 0.445160 0.205017 0.156738 0.446564 0.237793 0.157898 0.447937 0.267517 0.159027 0.449310 0.294861 0.160217 0.450592 0.321045 0.161407 0.451874 0.346558 0.162659 0.453125 0.372192 0.163910 0.454315 0.398682 0.165192 0.455475 0.426666 0.166534 0.456635 0.457123 0.167908 0.457733 0.489105 0.167908 0.457550 0.524719 0.167786 0.457275 0.565521 0.167603 0.456787 0.610382 0.167206 0.456024 0.657745 0.166687 0.455261 0.705841 0.166229 0.454254 0.752777 0.165863 0.453491 0.796631 0.165710 0.452728 0.835907 0.165741 0.452026 0.870636 0.165985 0.451630 0.901123 0.166473 0.451172 0.928040 0.167023 0.450653 0.951782 0.167755 0.450500 0.972931 0.168549 0.450256 0.991943 0.169495 0.450073 1.000000 0.183502 0.453735 1.000000 0.207703 0.461273 0.000000 0.191589 0.443420 0.041626 0.190186 0.447266 0.086365 0.189758 0.447357 0.128632 0.189301 0.447449 0.167725 0.188904 0.447601 0.203583 0.189178 0.448273 0.236420 0.190277 0.449585 0.266113 0.191406 0.450867 0.293640 0.192596 0.452057 0.319794 0.193756 0.453308 0.345276 0.194977 0.454468 0.371124 0.196198 0.455627 0.398132 0.197540 0.456665 0.426819 0.198944 0.457794 0.457733 0.200348 0.458862 0.490112 0.200409 0.458649 0.526184 0.200317 0.458282 0.567291 0.199829 0.457489 0.612366 0.199341 0.456665 0.659912 0.198914 0.455688 0.707977 0.198425 0.454773 0.754730 0.198151 0.453918 0.798218 0.197998 0.453186 0.837036 0.198059 0.452454 0.871368 0.198334 0.451996 0.901550 0.198792 0.451508 0.928070 0.199310 0.451080 0.951569 0.200012 0.450714 0.972534 0.200775 0.450531 0.991364 0.201569 0.450195 1.000000 0.214325 0.454132 1.000000 0.237823 0.462341 0.000000 0.224182 0.445984 0.041412 0.223236 0.450165 0.086212 0.222717 0.450226 0.128479 0.222198 0.450226 0.167603 0.221741 0.450287 0.202942 0.221527 0.450378 0.235107 0.221863 0.451050 0.264771 0.223022 0.452240 0.292297 0.224182 0.453430 0.318665 0.225311 0.454590 0.344757 0.226624 0.455688 0.371185 0.227936 0.456787 0.398560 0.229218 0.457825 0.427612 0.230621 0.458862 0.458923 0.232025 0.459839 0.491638 0.231934 0.459412 0.528137 0.231628 0.458832 0.569672 0.231201 0.458008 0.615021 0.230774 0.457092 0.662689 0.230347 0.456177 0.710632 0.229889 0.455139 0.757080 0.229614 0.454285 0.800079 0.229553 0.453461 0.838409 0.229584 0.452759 0.872223 0.229858 0.452179 0.902008 0.230255 0.451721 0.928192 0.230713 0.451233 0.951447 0.231415 0.451019 0.972137 0.232056 0.450714 0.990814 0.232788 0.450378 1.000000 0.244263 0.454437 1.000000 0.267090 0.463379 0.000000 0.255646 0.448730 0.041260 0.255371 0.452942 0.086090 0.254791 0.452850 0.128387 0.254272 0.452850 0.167450 0.253937 0.452850 0.202850 0.253662 0.452911 0.234467 0.253540 0.453003 0.263672 0.253967 0.453552 0.291901 0.255096 0.454681 0.318726 0.256287 0.455750 0.345154 0.257599 0.456818 0.371979 0.258942 0.457886 0.399689 0.260254 0.458862 0.429047 0.261475 0.459686 0.460632 0.262787 0.460480 0.493713 0.262634 0.459961 0.530823 0.262360 0.459259 0.572723 0.261932 0.458435 0.618347 0.261566 0.457428 0.665985 0.261139 0.456451 0.713715 0.260712 0.455505 0.759705 0.260468 0.454590 0.802155 0.260376 0.453735 0.839874 0.260406 0.452972 0.873199 0.260651 0.452362 0.902496 0.260986 0.451935 0.928345 0.261475 0.451538 0.951294 0.262085 0.451141 0.971771 0.262665 0.450745 0.990234 0.263367 0.450531 1.000000 0.273560 0.454590 1.000000 0.295715 0.464386 0.000000 0.286560 0.451324 0.041107 0.286835 0.455536 0.085968 0.286285 0.455444 0.128235 0.285736 0.455292 0.167358 0.285492 0.455231 0.202942 0.285248 0.455292 0.235291 0.285126 0.455322 0.264740 0.285217 0.455414 0.292480 0.285675 0.455841 0.319611 0.286865 0.456848 0.346405 0.288208 0.457886 0.373291 0.289368 0.458679 0.401276 0.290558 0.459473 0.431000 0.291809 0.460236 0.462921 0.293060 0.460907 0.496460 0.292938 0.460358 0.534058 0.292664 0.459595 0.576385 0.292267 0.458679 0.622162 0.291870 0.457764 0.669678 0.291504 0.456726 0.717102 0.291138 0.455719 0.762573 0.290863 0.454742 0.804382 0.290771 0.453918 0.841431 0.290833 0.453094 0.874207 0.291046 0.452515 0.903015 0.291382 0.451965 0.928528 0.291809 0.451477 0.951141 0.292358 0.451080 0.971344 0.292847 0.450806 0.989655 0.293427 0.450439 1.000000 0.302429 0.454376 1.000000 0.323914 0.465240 0.000000 0.316925 0.453766 0.041016 0.318085 0.458008 0.085846 0.317596 0.457855 0.128326 0.317108 0.457642 0.168457 0.316772 0.457489 0.204834 0.316528 0.457458 0.237427 0.316498 0.457458 0.267120 0.316650 0.457520 0.294800 0.316895 0.457611 0.321136 0.317169 0.457672 0.347992 0.318359 0.458466 0.375153 0.319489 0.459229 0.403473 0.320770 0.459991 0.433594 0.322083 0.460724 0.465759 0.323212 0.461243 0.499695 0.323120 0.460632 0.537842 0.322876 0.459900 0.580444 0.322540 0.458923 0.626282 0.322113 0.457855 0.673645 0.321716 0.456879 0.720612 0.321381 0.455750 0.765442 0.321136 0.454803 0.806519 0.321045 0.453979 0.842957 0.321075 0.453247 0.875153 0.321289 0.452545 0.903503 0.321594 0.452026 0.928619 0.321930 0.451508 0.950928 0.322418 0.451080 0.970947 0.322876 0.450714 0.989044 0.323395 0.450409 1.000000 0.331116 0.454193 1.000000 0.351990 0.466125 0.000000 0.347595 0.456085 0.041077 0.349365 0.460388 0.087219 0.348785 0.460083 0.130890 0.348358 0.459869 0.171356 0.348083 0.459656 0.207977 0.347992 0.459534 0.240692 0.348022 0.459412 0.270233 0.348053 0.459290 0.297760 0.348145 0.459167 0.324097 0.348297 0.459045 0.350220 0.348602 0.458954 0.377594 0.349854 0.459717 0.406219 0.351105 0.460419 0.436676 0.352448 0.461151 0.469116 0.353394 0.461517 0.503387 0.353333 0.460815 0.542023 0.353119 0.459961 0.584900 0.352783 0.459015 0.630676 0.352386 0.457947 0.677765 0.352020 0.456787 0.724243 0.351715 0.455841 0.768402 0.351471 0.454803 0.808655 0.351318 0.453918 0.844421 0.351379 0.453125 0.876007 0.351501 0.452545 0.903900 0.351746 0.451904 0.928650 0.352112 0.451385 0.950653 0.352509 0.450958 0.970459 0.352905 0.450592 0.988403 0.353271 0.450104 1.000000 0.359833 0.453735 1.000000 0.380035 0.466736 0.000000 0.378967 0.459503 0.044189 0.380676 0.462555 0.090881 0.380280 0.462219 0.134949 0.379883 0.461884 0.175720 0.379700 0.461578 0.212036 0.379486 0.461273 0.244354 0.379395 0.460999 0.273895 0.379547 0.460815 0.301392 0.379639 0.460602 0.327759 0.379944 0.460480 0.353943 0.380219 0.460327 0.380554 0.380463 0.460052 0.409424 0.381775 0.460724 0.440186 0.383087 0.461395 0.472809 0.383972 0.461670 0.507416 0.383850 0.460846 0.546478 0.383606 0.459961 0.589478 0.383270 0.458893 0.635223 0.382904 0.457886 0.681793 0.382538 0.456726 0.727722 0.382233 0.455688 0.771179 0.381958 0.454681 0.810669 0.381805 0.453766 0.845764 0.381866 0.453064 0.876740 0.381989 0.452393 0.904175 0.382172 0.451721 0.928528 0.382416 0.451172 0.950317 0.382721 0.450623 0.969879 0.383026 0.450348 0.987671 0.383392 0.449829 1.000000 0.388733 0.453094 1.000000 0.408386 0.467255 0.000000 0.412903 0.464844 0.049042 0.412506 0.464539 0.096436 0.412140 0.464142 0.140320 0.411743 0.463593 0.180695 0.411438 0.463104 0.216797 0.411316 0.462738 0.248901 0.411346 0.462463 0.278229 0.411530 0.462250 0.305573 0.411743 0.462036 0.331970 0.412018 0.461823 0.358185 0.412323 0.461609 0.384918 0.412628 0.461334 0.412964 0.412903 0.460968 0.443970 0.414185 0.461578 0.476746 0.414886 0.461639 0.511688 0.414764 0.460754 0.551086 0.414551 0.459869 0.594177 0.414215 0.458801 0.639648 0.413849 0.457672 0.685852 0.413422 0.456543 0.731110 0.413116 0.455475 0.773804 0.412903 0.454407 0.812439 0.412720 0.453522 0.846863 0.412689 0.452759 0.877289 0.412781 0.452057 0.904297 0.412903 0.451385 0.928314 0.413116 0.450806 0.949829 0.413330 0.450317 0.969238 0.413574 0.449707 0.986908 0.413879 0.449127 1.000000 0.418060 0.451721 1.000000 0.437134 0.467438 0.006317 0.445404 0.466888 0.055634 0.444916 0.466278 0.102692 0.444397 0.465607 0.146637 0.444092 0.465027 0.186737 0.443817 0.464508 0.222290 0.443817 0.464111 0.254120 0.443878 0.463776 0.283142 0.444122 0.463531 0.310272 0.444336 0.463318 0.336578 0.444702 0.463074 0.362823 0.445068 0.462830 0.389618 0.445343 0.462494 0.417816 0.445587 0.462067 0.448029 0.445862 0.461609 0.480835 0.446320 0.461456 0.516113 0.446259 0.460602 0.555695 0.445953 0.459595 0.598785 0.445648 0.458496 0.644012 0.445251 0.457367 0.689636 0.444824 0.456207 0.734192 0.444519 0.455139 0.776093 0.444244 0.454071 0.813995 0.444092 0.453247 0.847748 0.444031 0.452301 0.877625 0.444031 0.451630 0.904236 0.444092 0.450897 0.928009 0.444244 0.450165 0.949310 0.444427 0.449615 0.968567 0.444672 0.448792 0.986115 0.444916 0.448090 1.000000 0.447937 0.450012 1.000000 0.466431 0.467438 0.013184 0.477905 0.467926 0.062836 0.477448 0.467285 0.109955 0.477051 0.466553 0.153534 0.476746 0.465942 0.193115 0.476593 0.465393 0.228027 0.476593 0.464935 0.259247 0.476776 0.464600 0.287842 0.476990 0.464264 0.314728 0.477295 0.464050 0.340851 0.477600 0.463715 0.367035 0.477905 0.463379 0.393890 0.478180 0.462952 0.422241 0.478363 0.462463 0.452454 0.478455 0.461914 0.485596 0.479126 0.461823 0.521179 0.479004 0.460938 0.560913 0.478729 0.459900 0.604004 0.478424 0.458832 0.648834 0.478027 0.457703 0.693970 0.477631 0.456573 0.737885 0.477356 0.455444 0.778961 0.477020 0.454468 0.816132 0.476929 0.453552 0.849304 0.476868 0.452698 0.878815 0.476807 0.451843 0.905151 0.476807 0.451050 0.928650 0.477020 0.450256 0.949768 0.477142 0.449524 0.968842 0.477509 0.448761 0.986267 0.477661 0.447998 1.000000 0.480438 0.450043 1.000000 0.496338 0.467407 0.020691 0.510559 0.467987 0.070404 0.510162 0.467255 0.117157 0.509796 0.466522 0.160309 0.509552 0.465851 0.199097 0.509521 0.465363 0.233154 0.509552 0.464874 0.263824 0.509735 0.464478 0.291992 0.510040 0.464142 0.318573 0.510345 0.463806 0.344574 0.510651 0.463501 0.370697 0.510956 0.463104 0.397583 0.511200 0.462708 0.426056 0.511383 0.462158 0.456360 0.511475 0.461487 0.490112 0.512482 0.461823 0.526703 0.513184 0.461761 0.566528 0.512848 0.460693 0.609406 0.512482 0.459595 0.653839 0.512085 0.458435 0.698334 0.511688 0.457275 0.741547 0.511261 0.456207 0.781952 0.510986 0.455109 0.818481 0.510742 0.454071 0.851196 0.510590 0.453094 0.880310 0.510529 0.452148 0.906250 0.510681 0.451263 0.929504 0.510773 0.450378 0.950348 0.510986 0.449524 0.969269 0.511139 0.448730 0.986511 0.511383 0.447937 1.000000 0.513855 0.450043 1.000000 0.527649 0.467285 0.029419 0.545807 0.467865 0.078979 0.545471 0.467072 0.125336 0.545166 0.466339 0.167603 0.544952 0.465637 0.205353 0.544861 0.465088 0.238556 0.544983 0.464630 0.268494 0.545227 0.464233 0.296173 0.545502 0.463867 0.322449 0.545776 0.463501 0.348206 0.546112 0.463135 0.374359 0.546448 0.462738 0.401245 0.546600 0.462250 0.429749 0.546753 0.461670 0.460144 0.546753 0.460968 0.494049 0.547913 0.461395 0.531372 0.549103 0.461853 0.571838 0.549408 0.461365 0.614441 0.548920 0.460297 0.658386 0.548492 0.459137 0.702362 0.547882 0.457855 0.744995 0.547455 0.456665 0.784882 0.547089 0.455444 0.820831 0.546722 0.454285 0.853088 0.546600 0.453278 0.881775 0.546631 0.452209 0.907349 0.546570 0.451233 0.930298 0.546600 0.450348 0.950958 0.546783 0.449463 0.969666 0.546997 0.448578 0.986816 0.547180 0.447815 1.000000 0.549377 0.450165 1.000000 0.561218 0.467224 0.039276 0.583771 0.467560 0.088348 0.583405 0.466797 0.133728 0.583038 0.465942 0.175140 0.582886 0.465302 0.211700 0.582886 0.464813 0.243988 0.582947 0.464294 0.273163 0.583160 0.463806 0.300385 0.583405 0.463470 0.326233 0.583710 0.463043 0.351898 0.583954 0.462646 0.377838 0.584167 0.462250 0.404785 0.584320 0.461700 0.433289 0.584351 0.461121 0.463806 0.584381 0.460480 0.497772 0.585541 0.460876 0.535065 0.586609 0.461273 0.576263 0.587646 0.461670 0.619019 0.587524 0.460846 0.662689 0.586914 0.459564 0.706268 0.586334 0.458221 0.748444 0.585754 0.456848 0.787720 0.585358 0.455566 0.823181 0.585022 0.454346 0.854889 0.584839 0.453217 0.883209 0.584747 0.452179 0.908508 0.584717 0.451172 0.931183 0.584717 0.450195 0.951538 0.584747 0.449310 0.970093 0.584991 0.448547 0.987030 0.585022 0.447723 1.000000 0.586823 0.450256 1.000000 0.596558 0.467255 0.049896 0.623718 0.467163 0.098175 0.623322 0.466278 0.142609 0.622955 0.465485 0.182678 0.622772 0.464813 0.218048 0.622742 0.464264 0.249329 0.622772 0.463776 0.277802 0.622894 0.463348 0.304382 0.623108 0.462952 0.329956 0.623322 0.462555 0.355347 0.623505 0.462097 0.381226 0.623627 0.461639 0.408081 0.623657 0.461090 0.436493 0.623566 0.460419 0.467163 0.623657 0.459930 0.501007 0.624695 0.460266 0.538361 0.625671 0.460602 0.579529 0.626617 0.460815 0.623413 0.627594 0.461029 0.666992 0.627106 0.459747 0.710175 0.626373 0.458344 0.751801 0.625763 0.456879 0.790558 0.625305 0.455536 0.825470 0.624878 0.454254 0.856689 0.624664 0.453125 0.884583 0.624420 0.451996 0.909515 0.624329 0.451019 0.931915 0.624298 0.450104 0.952118 0.624298 0.449249 0.970459 0.624329 0.448486 0.987274 0.624481 0.447754 1.000000 0.625732 0.450439 1.000000 0.633087 0.467468 0.060944 0.664886 0.466614 0.108185 0.664429 0.465851 0.151428 0.664062 0.465027 0.190125 0.663788 0.464264 0.224213 0.663696 0.463776 0.254456 0.663666 0.463257 0.282227 0.663757 0.462769 0.308319 0.663879 0.462341 0.333466 0.663971 0.461914 0.358643 0.664001 0.461426 0.384277 0.663940 0.460968 0.411072 0.663910 0.460358 0.439392 0.663666 0.459686 0.470123 0.663727 0.459229 0.504028 0.664673 0.459442 0.541595 0.665649 0.459625 0.582825 0.666473 0.459778 0.626526 0.667419 0.459839 0.671265 0.668213 0.459747 0.714050 0.667389 0.458221 0.755127 0.666748 0.456757 0.793274 0.666138 0.455383 0.827637 0.665619 0.454071 0.858429 0.665375 0.452911 0.885895 0.664948 0.451874 0.910553 0.664886 0.450928 0.932678 0.664795 0.450043 0.952606 0.664703 0.449249 0.970825 0.664734 0.448578 0.987457 0.664642 0.447968 1.000000 0.665649 0.450836 1.000000 0.670166 0.467834 0.072113 0.706482 0.466064 0.118225 0.705963 0.465149 0.160034 0.705505 0.464386 0.197235 0.705139 0.463654 0.230011 0.704987 0.463104 0.259308 0.704895 0.462677 0.286346 0.704834 0.462158 0.311890 0.704834 0.461761 0.336639 0.704773 0.461304 0.361542 0.704742 0.460785 0.386993 0.704529 0.460175 0.413635 0.704315 0.459564 0.442017 0.703949 0.458710 0.472961 0.704102 0.458282 0.507141 0.704895 0.458405 0.544861 0.705780 0.458466 0.586121 0.706543 0.458466 0.629608 0.707367 0.458466 0.674133 0.708160 0.458435 0.717712 0.708588 0.458038 0.758331 0.707855 0.456543 0.795868 0.707092 0.455200 0.829773 0.706604 0.453979 0.860077 0.706116 0.452820 0.887207 0.705750 0.451782 0.911499 0.705566 0.450897 0.933380 0.705353 0.450104 0.953125 0.705261 0.449402 0.971130 0.705078 0.448822 0.987610 0.705109 0.448364 1.000000 0.705353 0.451508 1.000000 0.707428 0.468506 0.083160 0.747650 0.465393 0.127899 0.746979 0.464508 0.168213 0.746460 0.463715 0.203918 0.746033 0.463074 0.235413 0.745758 0.462555 0.263794 0.745544 0.461914 0.290100 0.745422 0.461487 0.315033 0.745239 0.460999 0.339478 0.745026 0.460541 0.364075 0.744843 0.460022 0.389465 0.744537 0.459290 0.416260 0.744202 0.458466 0.444763 0.743713 0.457489 0.476044 0.743896 0.457092 0.510345 0.744629 0.457123 0.548218 0.745392 0.457123 0.589386 0.746063 0.457123 0.632660 0.746765 0.457062 0.676819 0.747528 0.456970 0.720337 0.748199 0.456879 0.761383 0.748383 0.456390 0.798401 0.747650 0.455017 0.831757 0.746918 0.453857 0.861603 0.746490 0.452789 0.888397 0.746002 0.451843 0.912384 0.745728 0.451050 0.934021 0.745483 0.450378 0.953552 0.745209 0.449799 0.971405 0.744995 0.449402 0.987793 0.744843 0.449066 1.000000 0.744507 0.452393 1.000000 0.744171 0.469513 0.093872 0.787445 0.464783 0.137085 0.786743 0.463837 0.175781 0.786133 0.462982 0.209961 0.785614 0.462341 0.240295 0.785248 0.461823 0.267731 0.784912 0.461304 0.293335 0.784607 0.460754 0.317810 0.784332 0.460266 0.342041 0.783997 0.459656 0.366638 0.783722 0.459045 0.392059 0.783295 0.458099 0.418915 0.782806 0.457153 0.447540 0.782166 0.456116 0.479126 0.782501 0.455811 0.513489 0.783081 0.455780 0.551453 0.783752 0.455719 0.592560 0.784332 0.455627 0.635651 0.784943 0.455566 0.679260 0.785522 0.455536 0.722351 0.786163 0.455475 0.763519 0.786713 0.455444 0.800781 0.786743 0.454987 0.833588 0.786102 0.453888 0.863037 0.785492 0.452911 0.889496 0.784943 0.452087 0.913208 0.784454 0.451447 0.934540 0.784149 0.450867 0.953949 0.783875 0.450500 0.971649 0.783691 0.450226 0.987885 0.783386 0.450073 1.000000 0.782440 0.453766 1.000000 0.780121 0.471619 0.103912 0.825287 0.464081 0.145569 0.824432 0.463104 0.182617 0.823761 0.462433 0.215393 0.823212 0.461761 0.244507 0.822693 0.461151 0.271210 0.822266 0.460571 0.296295 0.821869 0.460022 0.320557 0.821442 0.459351 0.344696 0.821045 0.458618 0.369263 0.820648 0.457794 0.394714 0.820099 0.456879 0.421631 0.819519 0.455811 0.450348 0.818787 0.454651 0.482117 0.819153 0.454468 0.516602 0.819702 0.454407 0.554657 0.820190 0.454315 0.595673 0.820679 0.454254 0.638489 0.821198 0.454193 0.681732 0.821655 0.454193 0.724335 0.822205 0.454193 0.764893 0.822693 0.454254 0.802155 0.823120 0.454346 0.835327 0.823120 0.454071 0.864380 0.822479 0.453278 0.890442 0.821930 0.452576 0.913910 0.821411 0.452118 0.935089 0.820892 0.451721 0.954285 0.820587 0.451508 0.971832 0.820251 0.451508 0.988037 0.820251 0.452179 1.000000 0.819122 0.456726 1.000000 0.814331 0.474762 0.113098 0.860443 0.463440 0.153076 0.859558 0.462555 0.188599 0.858795 0.461731 0.220001 0.858124 0.461090 0.248352 0.857544 0.460388 0.274567 0.856995 0.459686 0.299316 0.856506 0.458893 0.323364 0.856049 0.458099 0.347382 0.855560 0.457367 0.371918 0.855011 0.456482 0.397400 0.854370 0.455444 0.424347 0.853729 0.454376 0.453156 0.852966 0.453247 0.485199 0.853363 0.453125 0.519714 0.853729 0.453094 0.557831 0.854187 0.453033 0.598633 0.854584 0.453003 0.641174 0.855011 0.453033 0.684113 0.855347 0.453094 0.726166 0.855743 0.453186 0.766144 0.856171 0.453308 0.802917 0.856506 0.453522 0.836029 0.856903 0.453857 0.865570 0.856995 0.453949 0.891296 0.856262 0.453400 0.914551 0.855682 0.453094 0.935516 0.855164 0.452972 0.954620 0.854980 0.453583 0.972046 0.854858 0.454468 0.988037 0.854645 0.455536 1.000000 0.852966 0.460358 1.000000 0.846069 0.478546 0.121216 0.892395 0.462708 0.159576 0.891479 0.461761 0.193909 0.890656 0.461060 0.224579 0.889923 0.460236 0.252228 0.889313 0.459320 0.277893 0.888702 0.458496 0.302368 0.888184 0.457794 0.326202 0.887573 0.457001 0.350128 0.886993 0.456024 0.374634 0.886383 0.455078 0.400116 0.885742 0.454132 0.427063 0.884979 0.453003 0.455994 0.884247 0.451935 0.488129 0.884613 0.451904 0.522797 0.884918 0.451874 0.560760 0.885193 0.451904 0.601593 0.885559 0.451935 0.643707 0.885834 0.452057 0.686188 0.886108 0.452179 0.727753 0.886444 0.452393 0.767212 0.886688 0.452698 0.803467 0.886993 0.453094 0.836243 0.887329 0.453552 0.865784 0.887573 0.454102 0.892090 0.887695 0.454620 0.915192 0.887268 0.455139 0.936035 0.886871 0.455902 0.954834 0.886444 0.456940 0.972107 0.886230 0.458191 0.988007 0.885834 0.459564 1.000000 0.883698 0.464447 1.000000 0.875092 0.482819 0.128510 0.920929 0.461945 0.165894 0.919983 0.460999 0.199219 0.919128 0.460114 0.228943 0.918365 0.459106 0.256042 0.917694 0.458282 0.281311 0.917053 0.457428 0.305450 0.916473 0.456512 0.329041 0.915802 0.455597 0.352875 0.915222 0.454651 0.377319 0.914551 0.453705 0.402771 0.913818 0.452728 0.429779 0.912964 0.451691 0.458984 0.912354 0.450836 0.491028 0.912628 0.450867 0.525696 0.912842 0.450867 0.563660 0.913086 0.451019 0.604156 0.913300 0.451141 0.646057 0.913544 0.451385 0.688141 0.913727 0.451660 0.729218 0.913971 0.452087 0.768311 0.914185 0.452484 0.804077 0.914368 0.453033 0.836365 0.914581 0.453705 0.865784 0.914917 0.455048 0.892120 0.915222 0.456665 0.915710 0.915527 0.458466 0.936249 0.915039 0.459564 0.954895 0.914551 0.460907 0.972015 0.914093 0.462433 0.987885 0.913635 0.464020 1.000000 0.911133 0.468933 1.000000 0.901093 0.487366 0.135834 0.946320 0.461060 0.172058 0.945374 0.459991 0.204376 0.944489 0.458954 0.233398 0.943726 0.458069 0.259827 0.943024 0.457123 0.284668 0.942352 0.456268 0.308502 0.941711 0.455322 0.331879 0.941040 0.454346 0.355591 0.940369 0.453461 0.379883 0.939697 0.452515 0.405426 0.938934 0.451538 0.432465 0.938049 0.450592 0.461823 0.937592 0.449921 0.493805 0.937744 0.450043 0.528564 0.937927 0.450195 0.566345 0.938049 0.450378 0.606567 0.938232 0.450684 0.648193 0.938354 0.451050 0.689880 0.938507 0.451508 0.730408 0.938660 0.452087 0.769043 0.938782 0.452759 0.804688 0.939026 0.454041 0.836884 0.939240 0.455658 0.865753 0.939453 0.457428 0.891663 0.939636 0.459351 0.915009 0.939819 0.461456 0.936188 0.940033 0.463593 0.954865 0.939636 0.465363 0.971924 0.939026 0.467072 0.987762 0.938599 0.468811 1.000000 0.935913 0.473663 1.000000 0.924500 0.492065 0.142914 0.968994 0.460083 0.178070 0.968079 0.458954 0.209412 0.967224 0.457916 0.237610 0.966431 0.456879 0.263519 0.965729 0.455933 0.287903 0.965057 0.454895 0.311462 0.964417 0.454132 0.334686 0.963745 0.453247 0.358246 0.963043 0.452393 0.382507 0.962311 0.451508 0.407990 0.961517 0.450500 0.434967 0.960663 0.449615 0.464325 0.960266 0.449249 0.496429 0.960358 0.449463 0.531097 0.960480 0.449738 0.568787 0.960571 0.450165 0.608826 0.960663 0.450592 0.649933 0.960785 0.451172 0.691193 0.960876 0.451813 0.732056 0.960999 0.453125 0.770294 0.961151 0.454681 0.805237 0.961273 0.456451 0.836761 0.961365 0.458466 0.865143 0.961487 0.460480 0.890778 0.961578 0.462708 0.914093 0.961670 0.465027 0.935211 0.961761 0.467346 0.954437 0.961823 0.469849 0.971832 0.961517 0.471954 0.987640 0.960999 0.473785 1.000000 0.958282 0.478455 1.000000 0.945831 0.496796 0.149811 0.989502 0.458893 0.183838 0.988556 0.457794 0.214172 0.987732 0.456604 0.241730 0.987000 0.455627 0.267029 0.986298 0.454865 0.291046 0.985626 0.453918 0.314331 0.984955 0.453003 0.337372 0.984314 0.452271 0.360748 0.983612 0.451416 0.384979 0.982880 0.450562 0.410400 0.982086 0.449738 0.437378 0.981232 0.449005 0.466766 0.980865 0.448853 0.498749 0.980927 0.449249 0.533386 0.980988 0.449707 0.570801 0.981049 0.450226 0.610626 0.981079 0.450928 0.652039 0.981171 0.452209 0.693329 0.981232 0.453796 0.733124 0.981293 0.455566 0.770691 0.981323 0.457489 0.805115 0.981354 0.459595 0.836243 0.981415 0.461823 0.864380 0.981445 0.464081 0.889984 0.981445 0.466461 0.913177 0.981476 0.468933 0.934296 0.981506 0.471436 0.953522 0.981506 0.473969 0.971344 0.981567 0.476532 0.987518 0.981323 0.478851 1.000000 0.978638 0.483582 1.000000 0.965302 0.502502 0.167938 1.000000 0.460693 0.199493 1.000000 0.459808 0.227692 1.000000 0.458801 0.253357 1.000000 0.457794 0.277191 1.000000 0.456848 0.299896 1.000000 0.455841 0.321808 1.000000 0.454865 0.343811 1.000000 0.453949 0.366180 1.000000 0.452850 0.389343 1.000000 0.451569 0.413666 1.000000 0.450317 0.439545 1.000000 0.448822 0.468903 0.999756 0.448822 0.500763 0.999786 0.449371 0.535248 0.999786 0.450073 0.573273 0.999786 0.451324 0.613220 0.999817 0.452911 0.653870 0.999817 0.454651 0.694244 0.999786 0.456573 0.733337 0.999725 0.458679 0.770416 0.999725 0.460846 0.804474 0.999725 0.463165 0.835358 0.999695 0.465607 0.863464 0.999695 0.468018 0.889130 0.999603 0.470551 0.912262 0.999573 0.473114 0.933472 0.999573 0.475616 0.952789 0.999512 0.478241 0.970520 0.999512 0.480927 0.986938 0.999481 0.484314 1.000000 0.997162 0.490295 1.000000 0.983398 0.509552 0.199280 1.000000 0.467194 0.229370 1.000000 0.467285 0.256378 1.000000 0.467285 0.281067 1.000000 0.467255 0.304016 1.000000 0.467316 0.325928 1.000000 0.467468 0.347321 1.000000 0.467621 0.368774 1.000000 0.467804 0.390625 1.000000 0.468048 0.413300 1.000000 0.468353 0.437164 1.000000 0.468719 0.462524 1.000000 0.469269 0.489502 1.000000 0.469940 0.519501 1.000000 0.471161 0.552368 1.000000 0.472687 0.587341 1.000000 0.474274 0.623932 1.000000 0.476135 0.661041 1.000000 0.478027 0.698059 1.000000 0.480164 0.733856 1.000000 0.482361 0.768036 1.000000 0.484589 0.799530 1.000000 0.486938 0.828186 1.000000 0.489349 0.854462 1.000000 0.491730 0.878296 1.000000 0.494171 0.900177 1.000000 0.496613 0.920258 1.000000 0.499146 0.938660 1.000000 0.502350 0.955536 1.000000 0.505768 0.971313 1.000000 0.509430 0.986053 1.000000 0.513245 1.000000 1.000000 0.516968 0.000000 0.008362 0.442413 0.037231 0.000000 0.455841 0.084961 0.003876 0.460175 0.129822 0.007721 0.464233 0.171356 0.011658 0.468140 0.208771 0.015289 0.471710 0.241943 0.018219 0.474335 0.271667 0.019897 0.475800 0.299133 0.021454 0.477173 0.325073 0.022980 0.478577 0.350342 0.024506 0.479919 0.375793 0.025970 0.481201 0.402252 0.027435 0.482483 0.430054 0.028900 0.483765 0.459808 0.030365 0.484924 0.491882 0.031525 0.485840 0.526489 0.031311 0.485626 0.566071 0.030853 0.485291 0.609650 0.030457 0.484772 0.655884 0.029938 0.484192 0.703094 0.029480 0.483643 0.750000 0.029114 0.483093 0.794281 0.028931 0.482544 0.834351 0.029053 0.482117 0.869904 0.029358 0.481750 0.901245 0.029938 0.481476 0.928864 0.030518 0.481293 0.953278 0.031158 0.481018 0.975037 0.031982 0.480774 0.994568 0.032898 0.480652 1.000000 0.052551 0.482361 1.000000 0.079315 0.485535 0.000000 0.047638 0.452301 0.037567 0.041412 0.463165 0.085114 0.044922 0.467010 0.129913 0.048309 0.470490 0.171204 0.051239 0.473328 0.208008 0.052856 0.474762 0.240723 0.054321 0.476135 0.270294 0.055817 0.477570 0.297546 0.057220 0.478882 0.323486 0.058594 0.480164 0.348969 0.060028 0.481445 0.374603 0.061401 0.482727 0.400970 0.062744 0.483887 0.428802 0.064148 0.485077 0.458649 0.065552 0.486176 0.490814 0.066833 0.487091 0.525421 0.066559 0.486908 0.564941 0.066223 0.486481 0.608459 0.065765 0.485931 0.655090 0.065277 0.485352 0.702881 0.064941 0.484650 0.750000 0.064667 0.483917 0.794342 0.064606 0.483337 0.834412 0.064819 0.483032 0.869812 0.065063 0.482513 0.901001 0.065338 0.481964 0.928528 0.065918 0.481720 0.952789 0.066589 0.481415 0.974426 0.067413 0.481110 0.993866 0.068481 0.480957 1.000000 0.086639 0.482941 1.000000 0.112823 0.486664 0.000000 0.086365 0.461945 0.039490 0.082489 0.470703 0.085266 0.083710 0.472260 0.129486 0.085205 0.473663 0.170074 0.086670 0.475128 0.206543 0.087982 0.476471 0.239136 0.089355 0.477844 0.268646 0.090698 0.479126 0.296112 0.092010 0.480377 0.322235 0.093353 0.481659 0.347717 0.094666 0.482880 0.373352 0.095917 0.484009 0.399780 0.097290 0.485168 0.427612 0.098663 0.486237 0.457489 0.100006 0.487305 0.489746 0.101410 0.488342 0.524323 0.101227 0.487976 0.564178 0.100891 0.487518 0.608459 0.100494 0.486908 0.655457 0.100067 0.486145 0.703491 0.099762 0.485443 0.750671 0.099640 0.484833 0.794952 0.099457 0.484039 0.834747 0.099365 0.483459 0.869965 0.099579 0.482788 0.900970 0.099976 0.482330 0.928284 0.100616 0.482025 0.952393 0.101379 0.481628 0.973938 0.102203 0.481415 0.993225 0.103180 0.481140 1.000000 0.119934 0.483521 1.000000 0.145508 0.487793 0.000000 0.123596 0.470001 0.040588 0.120026 0.475006 0.085571 0.119659 0.475128 0.127930 0.119690 0.475403 0.168365 0.121002 0.476837 0.204895 0.122253 0.478088 0.237610 0.123505 0.479340 0.267334 0.124786 0.480652 0.294769 0.126007 0.481812 0.320923 0.127258 0.483002 0.346436 0.128510 0.484161 0.372070 0.129761 0.485199 0.398499 0.131104 0.486328 0.426392 0.132477 0.487366 0.456299 0.133820 0.488342 0.489044 0.135284 0.489349 0.524323 0.135101 0.488953 0.564636 0.134827 0.488373 0.609314 0.134552 0.487793 0.656616 0.134216 0.486969 0.704742 0.133850 0.486145 0.751740 0.133453 0.485321 0.795807 0.133179 0.484467 0.835388 0.133240 0.483734 0.870331 0.133514 0.483124 0.901093 0.133942 0.482758 0.928162 0.134521 0.482269 0.952148 0.135284 0.481964 0.973450 0.136139 0.481567 0.992584 0.137115 0.481323 1.000000 0.152496 0.484039 1.000000 0.177368 0.489014 0.000000 0.157745 0.473175 0.040527 0.155029 0.477844 0.085083 0.154572 0.477875 0.127136 0.154266 0.477905 0.166687 0.154419 0.478333 0.203461 0.155579 0.479614 0.236237 0.156769 0.480804 0.265961 0.157959 0.481995 0.293427 0.159119 0.483093 0.319672 0.160370 0.484222 0.345154 0.161591 0.485291 0.370850 0.162842 0.486359 0.397339 0.164154 0.487396 0.425598 0.165527 0.488342 0.456116 0.166931 0.489288 0.489410 0.168457 0.490265 0.525055 0.168365 0.489868 0.566010 0.168152 0.489258 0.610870 0.167786 0.488342 0.658234 0.167206 0.487488 0.706390 0.166809 0.486511 0.753326 0.166473 0.485626 0.797058 0.166290 0.484680 0.836304 0.166382 0.483978 0.870941 0.166626 0.483337 0.901398 0.167084 0.482910 0.928192 0.167694 0.482422 0.951904 0.168396 0.482025 0.972992 0.169250 0.481812 0.992004 0.170135 0.481537 1.000000 0.184174 0.484283 1.000000 0.208405 0.490021 0.000000 0.191254 0.475586 0.039886 0.189178 0.480591 0.084717 0.188629 0.480469 0.127045 0.188141 0.480469 0.166138 0.187836 0.480438 0.202087 0.188080 0.480988 0.234863 0.189178 0.482086 0.264679 0.190338 0.483215 0.292145 0.191528 0.484314 0.318390 0.192688 0.485382 0.343903 0.193970 0.486389 0.369965 0.195221 0.487366 0.397034 0.196564 0.488312 0.425751 0.197968 0.489227 0.456818 0.199432 0.490204 0.490540 0.200928 0.491089 0.526703 0.200775 0.490509 0.567841 0.200348 0.489685 0.613037 0.199890 0.488770 0.660522 0.199432 0.487732 0.708649 0.199036 0.486816 0.755310 0.198730 0.485779 0.798737 0.198578 0.485016 0.837524 0.198730 0.484192 0.871674 0.198944 0.483582 0.901794 0.199371 0.483093 0.928284 0.199951 0.482605 0.951721 0.200623 0.482269 0.972626 0.201385 0.481812 0.991425 0.202240 0.481628 1.000000 0.214966 0.484528 1.000000 0.238434 0.490906 0.000000 0.223663 0.477905 0.039734 0.222137 0.483185 0.084564 0.221588 0.483002 0.126892 0.221069 0.482880 0.166046 0.220734 0.482849 0.201416 0.220428 0.482819 0.233582 0.220825 0.483307 0.263367 0.222015 0.484344 0.290833 0.223145 0.485352 0.317474 0.224335 0.486389 0.343628 0.225586 0.487335 0.370148 0.226929 0.488281 0.397614 0.228333 0.489227 0.426727 0.229736 0.490082 0.458160 0.231110 0.490906 0.492157 0.232422 0.491608 0.528748 0.232086 0.490845 0.570374 0.231689 0.489990 0.615875 0.231293 0.489044 0.663452 0.230865 0.487976 0.711426 0.230469 0.487030 0.757782 0.230255 0.485962 0.800629 0.230103 0.485138 0.838928 0.230164 0.484406 0.872589 0.230408 0.483765 0.902252 0.230835 0.483124 0.928436 0.231384 0.482666 0.951569 0.231964 0.482300 0.972229 0.232666 0.481873 0.990875 0.233429 0.481537 1.000000 0.244843 0.484619 1.000000 0.267670 0.491913 0.000000 0.255035 0.480255 0.039642 0.254395 0.485535 0.084473 0.253693 0.485321 0.126801 0.253204 0.485168 0.165955 0.252838 0.485077 0.201324 0.252533 0.484985 0.233002 0.252502 0.484985 0.262421 0.252930 0.485382 0.290710 0.254120 0.486359 0.317719 0.255310 0.487305 0.344177 0.256592 0.488220 0.371063 0.258026 0.489136 0.398895 0.259308 0.489929 0.428284 0.260559 0.490631 0.459991 0.261871 0.491333 0.494415 0.263092 0.491882 0.531464 0.262817 0.491089 0.573547 0.262482 0.490204 0.619232 0.262054 0.489166 0.666809 0.261658 0.488129 0.714600 0.261322 0.487091 0.760437 0.260986 0.486145 0.802765 0.260864 0.485199 0.840393 0.260986 0.484436 0.873535 0.261230 0.483887 0.902771 0.261566 0.483185 0.928558 0.262115 0.482788 0.951447 0.262665 0.482361 0.971863 0.263275 0.481873 0.990295 0.263947 0.481537 1.000000 0.274109 0.484711 1.000000 0.296234 0.492706 0.000000 0.285706 0.482544 0.039490 0.285858 0.487823 0.084351 0.285309 0.487610 0.126709 0.284790 0.487366 0.165833 0.284485 0.487152 0.201721 0.284271 0.487030 0.234161 0.284180 0.487000 0.263702 0.284241 0.486938 0.291443 0.284698 0.487213 0.318756 0.286011 0.488129 0.345490 0.287201 0.488953 0.372467 0.288452 0.489655 0.400604 0.289642 0.490356 0.430389 0.290924 0.490967 0.462494 0.292267 0.491669 0.497223 0.293427 0.492126 0.534851 0.293121 0.491241 0.577332 0.292786 0.490326 0.623169 0.292450 0.489227 0.670624 0.291992 0.488190 0.717987 0.291687 0.487122 0.763275 0.291412 0.486176 0.804932 0.291321 0.485260 0.841919 0.291412 0.484467 0.874512 0.291595 0.483795 0.903320 0.291931 0.483154 0.928741 0.292389 0.482635 0.951263 0.292847 0.482208 0.971466 0.293427 0.481781 0.989685 0.294006 0.481354 1.000000 0.302948 0.484558 1.000000 0.324432 0.493530 0.000000 0.316162 0.484711 0.039368 0.317078 0.490021 0.084259 0.316528 0.489685 0.127167 0.316132 0.489380 0.167450 0.315765 0.489136 0.203857 0.315643 0.488953 0.236542 0.315582 0.488831 0.266266 0.315704 0.488770 0.293945 0.315918 0.488708 0.320343 0.316254 0.488708 0.347198 0.317413 0.489349 0.374512 0.318665 0.490021 0.402863 0.319916 0.490692 0.433014 0.321198 0.491333 0.465576 0.322540 0.491913 0.500580 0.323578 0.492218 0.538727 0.323334 0.491364 0.581451 0.323029 0.490326 0.627258 0.322632 0.489258 0.674622 0.322266 0.488129 0.721558 0.321930 0.487061 0.766205 0.321655 0.486023 0.807129 0.321564 0.485107 0.843445 0.321655 0.484344 0.875488 0.321838 0.483582 0.903778 0.322083 0.483063 0.928802 0.322510 0.482544 0.951050 0.322876 0.481995 0.971039 0.323395 0.481659 0.989075 0.323853 0.481232 1.000000 0.331604 0.484314 1.000000 0.352448 0.494171 0.000000 0.346619 0.486755 0.039948 0.348358 0.492065 0.086212 0.347839 0.491638 0.130035 0.347473 0.491302 0.170563 0.347198 0.490967 0.207214 0.347076 0.490692 0.239929 0.347076 0.490540 0.269440 0.347107 0.490295 0.297028 0.347260 0.490082 0.323456 0.347473 0.489807 0.349518 0.347748 0.489655 0.377014 0.348999 0.490326 0.405762 0.350311 0.490906 0.436249 0.351593 0.491516 0.469116 0.352966 0.492126 0.504242 0.353790 0.492188 0.542999 0.353546 0.491302 0.585968 0.353241 0.490295 0.631714 0.352905 0.489166 0.678741 0.352509 0.488007 0.725098 0.352203 0.487000 0.769135 0.351929 0.485962 0.809265 0.351837 0.485016 0.844879 0.351898 0.484161 0.876343 0.351990 0.483429 0.904175 0.352295 0.482849 0.928802 0.352600 0.482208 0.950775 0.352966 0.481750 0.970490 0.353333 0.481384 0.988434 0.353729 0.480896 1.000000 0.360291 0.483948 1.000000 0.380493 0.494720 0.000000 0.378143 0.490356 0.043365 0.379791 0.493927 0.090179 0.379272 0.493439 0.134460 0.378967 0.493042 0.175110 0.378754 0.492584 0.211365 0.378632 0.492157 0.243805 0.378540 0.491821 0.273285 0.378662 0.491547 0.300781 0.378845 0.491302 0.327209 0.379059 0.491058 0.353333 0.379364 0.490753 0.380096 0.379700 0.490509 0.409058 0.380981 0.491089 0.439850 0.382294 0.491669 0.473022 0.383636 0.492218 0.508362 0.384308 0.492065 0.547485 0.384064 0.491180 0.590576 0.383759 0.490112 0.636169 0.383362 0.488953 0.682831 0.382996 0.487823 0.728638 0.382690 0.486725 0.771881 0.382446 0.485626 0.811218 0.382324 0.484680 0.846191 0.382355 0.483948 0.877045 0.382446 0.483093 0.904419 0.382629 0.482483 0.928711 0.382874 0.481934 0.950409 0.383148 0.481476 0.969940 0.383484 0.480988 0.987701 0.383759 0.480377 1.000000 0.389160 0.483093 1.000000 0.408813 0.495087 0.000000 0.411774 0.495667 0.048737 0.411713 0.495636 0.095947 0.411285 0.495056 0.139984 0.410858 0.494476 0.180267 0.410522 0.493866 0.216309 0.410461 0.493408 0.248474 0.410522 0.493073 0.277710 0.410645 0.492767 0.305145 0.410919 0.492462 0.331543 0.411224 0.492188 0.357697 0.411530 0.491882 0.384552 0.411835 0.491547 0.412659 0.412109 0.491119 0.443665 0.413391 0.491638 0.477142 0.414734 0.492188 0.512695 0.415192 0.491882 0.552094 0.414978 0.490906 0.595306 0.414673 0.489807 0.640656 0.414276 0.488647 0.686829 0.413910 0.487488 0.731964 0.413574 0.486359 0.774414 0.413330 0.485291 0.813019 0.413177 0.484344 0.847260 0.413177 0.483521 0.877594 0.413208 0.482819 0.904510 0.413330 0.482147 0.928497 0.413483 0.481537 0.949951 0.413696 0.480804 0.969330 0.414001 0.480255 0.986938 0.414246 0.479614 1.000000 0.418457 0.481812 1.000000 0.437500 0.495148 0.005981 0.444458 0.497742 0.055328 0.443939 0.497009 0.102539 0.443573 0.496307 0.146484 0.443176 0.495636 0.186493 0.443024 0.495056 0.222046 0.442963 0.494629 0.253784 0.443115 0.494232 0.282684 0.443298 0.493866 0.309875 0.443604 0.493561 0.336212 0.443909 0.493256 0.362396 0.444275 0.492950 0.389343 0.444641 0.492554 0.417511 0.444824 0.492065 0.447693 0.445099 0.491577 0.481445 0.446350 0.492065 0.517059 0.446655 0.491547 0.556763 0.446411 0.490540 0.599884 0.446075 0.489410 0.644958 0.445648 0.488190 0.690582 0.445282 0.487030 0.735016 0.444977 0.485931 0.776703 0.444672 0.484833 0.814514 0.444519 0.483948 0.848083 0.444397 0.483002 0.877869 0.444397 0.482208 0.904449 0.444458 0.481476 0.928131 0.444580 0.480743 0.949402 0.444794 0.480011 0.968597 0.445038 0.479309 0.986145 0.445282 0.478485 1.000000 0.448303 0.480255 1.000000 0.466797 0.495148 0.013794 0.477448 0.498993 0.063324 0.476959 0.498199 0.110535 0.476562 0.497498 0.154144 0.476379 0.496796 0.193481 0.476196 0.496185 0.228363 0.476318 0.495697 0.259583 0.476410 0.495270 0.288055 0.476715 0.494904 0.314972 0.477020 0.494598 0.341095 0.477386 0.494263 0.367310 0.477692 0.493896 0.394257 0.478027 0.493469 0.422607 0.478210 0.492950 0.452850 0.478394 0.492279 0.485718 0.478699 0.491821 0.521454 0.478729 0.491089 0.561279 0.478424 0.490021 0.604218 0.478119 0.488861 0.648956 0.477631 0.487671 0.693939 0.477264 0.486481 0.737640 0.476929 0.485321 0.778564 0.476593 0.484192 0.815613 0.476349 0.483276 0.848633 0.476227 0.482300 0.878082 0.476196 0.481476 0.904297 0.476257 0.480560 0.927765 0.476349 0.479797 0.948822 0.476532 0.478912 0.967896 0.476746 0.478210 0.985291 0.476990 0.477356 1.000000 0.478851 0.478241 1.000000 0.496643 0.495178 0.022552 0.510864 0.499695 0.072174 0.510468 0.498871 0.118927 0.510162 0.498077 0.161987 0.509949 0.497345 0.200500 0.509918 0.496674 0.234497 0.509949 0.496185 0.265015 0.510162 0.495728 0.292999 0.510406 0.495300 0.319580 0.510742 0.494934 0.345428 0.511047 0.494537 0.371582 0.511353 0.494141 0.398590 0.511627 0.493591 0.426941 0.511810 0.493011 0.457306 0.511902 0.492310 0.489990 0.511841 0.491486 0.526489 0.512390 0.491272 0.566406 0.512146 0.490234 0.609161 0.511749 0.489075 0.653442 0.511322 0.487915 0.697845 0.510925 0.486694 0.740814 0.510498 0.485565 0.781158 0.510162 0.484467 0.817688 0.509949 0.483429 0.850281 0.509827 0.482391 0.879364 0.509827 0.481445 0.905304 0.509857 0.480530 0.928528 0.509979 0.479706 0.949371 0.510132 0.478882 0.968292 0.510345 0.478027 0.985565 0.510651 0.477295 1.000000 0.512329 0.478241 1.000000 0.528015 0.495117 0.031586 0.546173 0.499451 0.080902 0.545807 0.498535 0.127136 0.545532 0.497711 0.169342 0.545349 0.496918 0.206757 0.545288 0.496307 0.239868 0.545410 0.495758 0.269745 0.545654 0.495300 0.297241 0.545929 0.494904 0.323456 0.546204 0.494476 0.349182 0.546539 0.494080 0.375244 0.546814 0.493622 0.402252 0.546997 0.493073 0.430634 0.547150 0.492432 0.461090 0.547150 0.491669 0.493927 0.547150 0.490906 0.531097 0.548340 0.491272 0.571625 0.548553 0.490814 0.614075 0.548065 0.489624 0.657898 0.547516 0.488403 0.701782 0.547058 0.487152 0.744324 0.546631 0.485931 0.784088 0.546204 0.484680 0.820068 0.546021 0.483551 0.852142 0.545746 0.482483 0.880829 0.545746 0.481476 0.906403 0.545746 0.480499 0.929352 0.545868 0.479614 0.949982 0.546051 0.478790 0.968689 0.546234 0.477966 0.985779 0.546356 0.477173 1.000000 0.547943 0.478333 1.000000 0.561646 0.495087 0.041687 0.584137 0.498901 0.090424 0.583771 0.498077 0.135773 0.583466 0.497223 0.176849 0.583282 0.496460 0.213135 0.583221 0.495819 0.245270 0.583405 0.495331 0.274384 0.583618 0.494812 0.301392 0.583832 0.494385 0.327271 0.584106 0.493988 0.352783 0.584351 0.493469 0.378754 0.584595 0.493042 0.405731 0.584747 0.492432 0.434113 0.584747 0.491699 0.464600 0.584656 0.490967 0.497528 0.584717 0.490326 0.534790 0.585785 0.490601 0.575928 0.586853 0.490967 0.618622 0.586639 0.490082 0.662201 0.586029 0.488800 0.705780 0.585449 0.487427 0.747742 0.584900 0.486053 0.786987 0.584503 0.484772 0.822357 0.584137 0.483551 0.853943 0.583954 0.482422 0.882233 0.583893 0.481384 0.907532 0.583771 0.480438 0.930115 0.583801 0.479492 0.950562 0.583862 0.478668 0.969055 0.584045 0.477875 0.986053 0.584198 0.477142 1.000000 0.585663 0.478455 1.000000 0.596924 0.495117 0.052368 0.624084 0.498413 0.100311 0.623688 0.497467 0.144592 0.623322 0.496643 0.184509 0.623169 0.495880 0.219452 0.623077 0.495209 0.250641 0.623169 0.494690 0.278961 0.623352 0.494232 0.305420 0.623474 0.493774 0.330933 0.623688 0.493317 0.356232 0.623901 0.492798 0.382050 0.623993 0.492279 0.408966 0.624023 0.491638 0.437347 0.623962 0.490967 0.467712 0.623688 0.490112 0.500702 0.623779 0.489624 0.538055 0.624725 0.489838 0.579254 0.625702 0.490051 0.622986 0.626709 0.490143 0.666473 0.626129 0.488861 0.709595 0.625488 0.487457 0.751129 0.624817 0.486023 0.789764 0.624390 0.484680 0.824585 0.623993 0.483459 0.855774 0.623749 0.482330 0.883606 0.623474 0.481262 0.908569 0.623352 0.480286 0.930939 0.623322 0.479401 0.951111 0.623383 0.478607 0.969421 0.623505 0.477875 0.986267 0.623505 0.477142 1.000000 0.624603 0.478668 1.000000 0.633331 0.495300 0.063477 0.665283 0.497742 0.110352 0.664764 0.496765 0.153442 0.664398 0.495941 0.191895 0.664185 0.495148 0.225586 0.664062 0.494568 0.255737 0.664032 0.494019 0.283264 0.664093 0.493500 0.309265 0.664185 0.493073 0.334412 0.664307 0.492645 0.359436 0.664337 0.492065 0.385132 0.664368 0.491486 0.411865 0.664215 0.490906 0.440094 0.663971 0.490112 0.470490 0.663635 0.489197 0.503754 0.663757 0.488739 0.541290 0.664673 0.488831 0.582489 0.665588 0.488922 0.626068 0.666443 0.488953 0.670685 0.667206 0.488800 0.713440 0.666443 0.487335 0.754425 0.665741 0.485901 0.792450 0.665100 0.484558 0.826813 0.664642 0.483307 0.857452 0.664307 0.482208 0.884949 0.664062 0.481140 0.909546 0.663910 0.480225 0.931671 0.663818 0.479370 0.951599 0.663788 0.478607 0.969788 0.663757 0.477966 0.986450 0.663757 0.477356 1.000000 0.664490 0.479095 1.000000 0.670471 0.495697 0.074615 0.706848 0.496979 0.120300 0.706238 0.496094 0.161957 0.705811 0.495270 0.198914 0.705536 0.494507 0.231323 0.705261 0.493835 0.260559 0.705200 0.493256 0.287354 0.705109 0.492798 0.312744 0.705109 0.492279 0.337524 0.705109 0.491821 0.362274 0.705017 0.491272 0.387726 0.704834 0.490692 0.414429 0.704620 0.489990 0.442749 0.704224 0.489044 0.473297 0.703766 0.488037 0.506866 0.703918 0.487579 0.544556 0.704773 0.487610 0.585815 0.705536 0.487610 0.629150 0.706360 0.487579 0.673584 0.707153 0.487518 0.717133 0.707550 0.487152 0.757599 0.706879 0.485718 0.795105 0.706116 0.484406 0.828857 0.705627 0.483185 0.859100 0.705139 0.482086 0.886200 0.704742 0.481110 0.910492 0.704529 0.480225 0.932312 0.704376 0.479462 0.952118 0.704163 0.478821 0.970123 0.704102 0.478210 0.986664 0.704071 0.477753 1.000000 0.704376 0.479675 1.000000 0.707642 0.496338 0.085632 0.747894 0.496155 0.129883 0.747253 0.495300 0.170044 0.746704 0.494476 0.205353 0.746307 0.493713 0.236603 0.746033 0.493164 0.264893 0.745819 0.492584 0.290955 0.745667 0.492065 0.315857 0.745514 0.491516 0.340271 0.745331 0.491058 0.364807 0.745087 0.490387 0.390228 0.744812 0.489685 0.417023 0.744415 0.488800 0.445496 0.743927 0.487793 0.476135 0.743317 0.486694 0.509979 0.743591 0.486328 0.547852 0.744324 0.486298 0.589020 0.745026 0.486237 0.632202 0.745728 0.486176 0.676270 0.746429 0.486115 0.719696 0.747192 0.486023 0.760651 0.747314 0.485535 0.797577 0.746521 0.484253 0.830811 0.745941 0.483093 0.860626 0.745422 0.482056 0.887360 0.744995 0.481171 0.911346 0.744629 0.480408 0.932983 0.744385 0.479736 0.952545 0.744110 0.479187 0.970367 0.743866 0.478729 0.986786 0.743805 0.478394 1.000000 0.743652 0.480560 1.000000 0.744324 0.497253 0.096161 0.787720 0.495361 0.138947 0.786957 0.494415 0.177460 0.786346 0.493683 0.211304 0.785858 0.492950 0.241425 0.785431 0.492310 0.268707 0.785156 0.491821 0.294098 0.784821 0.491211 0.318573 0.784576 0.490692 0.342834 0.784271 0.490021 0.367340 0.783905 0.489319 0.392822 0.783478 0.488434 0.419708 0.782990 0.487518 0.448242 0.782410 0.486481 0.478973 0.781677 0.485229 0.513062 0.782013 0.484955 0.551056 0.782654 0.484894 0.592194 0.783264 0.484863 0.635193 0.783875 0.484772 0.678833 0.784485 0.484711 0.721741 0.785065 0.484680 0.762634 0.785645 0.484650 0.799896 0.785645 0.484192 0.832672 0.785004 0.483154 0.862061 0.784363 0.482208 0.888428 0.783875 0.481384 0.912140 0.783356 0.480743 0.933533 0.783051 0.480225 0.952881 0.782715 0.479828 0.970612 0.782501 0.479553 0.986908 0.782227 0.479340 1.000000 0.781921 0.481995 1.000000 0.780365 0.499329 0.105927 0.825439 0.494568 0.147247 0.824585 0.493805 0.184143 0.823944 0.492889 0.216522 0.823303 0.492249 0.245544 0.822845 0.491638 0.272125 0.822449 0.490967 0.297089 0.822052 0.490387 0.321381 0.821625 0.489655 0.345428 0.821228 0.488922 0.369995 0.820801 0.488098 0.395477 0.820282 0.487091 0.422333 0.819672 0.486084 0.451050 0.819000 0.484985 0.481873 0.818146 0.483734 0.516235 0.818573 0.483612 0.554260 0.819092 0.483521 0.595276 0.819611 0.483490 0.637939 0.820099 0.483490 0.681183 0.820557 0.483459 0.723724 0.821075 0.483490 0.764038 0.821503 0.483521 0.801300 0.822052 0.483612 0.834320 0.822021 0.483337 0.863373 0.821381 0.482544 0.889435 0.820740 0.481873 0.912811 0.820312 0.481354 0.934082 0.819824 0.481049 0.953217 0.819458 0.480804 0.970856 0.819275 0.480927 0.987030 0.819366 0.481506 1.000000 0.818542 0.484741 1.000000 0.814636 0.502197 0.114838 0.860535 0.493835 0.154572 0.859680 0.493042 0.189880 0.858917 0.492096 0.221100 0.858276 0.491425 0.249390 0.857666 0.490692 0.275482 0.857117 0.490082 0.300110 0.856628 0.489258 0.324158 0.856171 0.488464 0.348145 0.855713 0.487610 0.372589 0.855133 0.486755 0.398163 0.854553 0.485748 0.425079 0.853821 0.484711 0.453827 0.853058 0.483551 0.484863 0.852234 0.482391 0.519318 0.852692 0.482330 0.557373 0.853058 0.482300 0.598206 0.853485 0.482300 0.640594 0.853851 0.482300 0.683502 0.854279 0.482361 0.725433 0.854645 0.482422 0.765259 0.855011 0.482605 0.802002 0.855469 0.482849 0.835144 0.855804 0.483093 0.864502 0.855865 0.483154 0.890259 0.855225 0.482666 0.913483 0.854584 0.482300 0.934479 0.854218 0.482330 0.953583 0.854095 0.482880 0.971008 0.853790 0.483612 0.987061 0.853668 0.484528 1.000000 0.852570 0.487946 1.000000 0.846283 0.505585 0.122772 0.892487 0.493103 0.161041 0.891571 0.492249 0.195251 0.890747 0.491333 0.225586 0.890015 0.490540 0.253174 0.889404 0.489716 0.278839 0.888794 0.488861 0.303192 0.888245 0.488007 0.326996 0.887665 0.487213 0.350830 0.887115 0.486359 0.375275 0.886505 0.485382 0.400848 0.885803 0.484406 0.427795 0.885101 0.483398 0.456665 0.884186 0.482208 0.487823 0.883484 0.481201 0.522369 0.883789 0.481201 0.560364 0.884094 0.481201 0.600952 0.884399 0.481262 0.643066 0.884735 0.481354 0.685455 0.885010 0.481506 0.727020 0.885315 0.481750 0.766327 0.885620 0.482025 0.802551 0.885895 0.482391 0.835266 0.886200 0.482819 0.864716 0.886475 0.483307 0.891052 0.886597 0.483978 0.914154 0.886261 0.484375 0.934967 0.885834 0.485077 0.953796 0.885529 0.485901 0.971039 0.885162 0.486938 0.987000 0.884796 0.488098 1.000000 0.883301 0.491608 1.000000 0.875153 0.509369 0.130096 0.920959 0.492371 0.167328 0.920013 0.491333 0.200439 0.919159 0.490295 0.229980 0.918396 0.489441 0.256989 0.917725 0.488586 0.282196 0.917114 0.487671 0.306213 0.916534 0.486816 0.329803 0.915863 0.485901 0.353546 0.915253 0.485046 0.377960 0.914581 0.484131 0.403473 0.913849 0.483124 0.430481 0.913055 0.482117 0.459351 0.912140 0.480988 0.490662 0.911499 0.480194 0.525238 0.911774 0.480225 0.563232 0.911987 0.480347 0.603638 0.912231 0.480469 0.645416 0.912415 0.480743 0.687408 0.912659 0.480988 0.728424 0.912872 0.481323 0.767303 0.913055 0.481781 0.803009 0.913269 0.482300 0.835480 0.913544 0.483063 0.864807 0.913879 0.484375 0.890991 0.914215 0.485809 0.914642 0.914551 0.487366 0.935150 0.914001 0.488342 0.953857 0.913574 0.489441 0.971039 0.913116 0.490662 0.986908 0.912689 0.492035 1.000000 0.910980 0.495453 1.000000 0.901154 0.513458 0.137268 0.946320 0.491364 0.173431 0.945343 0.490326 0.205566 0.944519 0.489227 0.234344 0.943756 0.488342 0.260742 0.943085 0.487427 0.285461 0.942413 0.486542 0.309204 0.941742 0.485626 0.332611 0.941071 0.484772 0.356262 0.940460 0.483948 0.380615 0.939728 0.482910 0.406128 0.938965 0.482025 0.433136 0.938110 0.481018 0.462006 0.937164 0.480011 0.493378 0.936646 0.479370 0.527954 0.936798 0.479523 0.565796 0.936981 0.479767 0.606018 0.937134 0.480011 0.647400 0.937317 0.480408 0.689026 0.937439 0.480804 0.729614 0.937561 0.481323 0.768188 0.937714 0.482086 0.803894 0.937988 0.483398 0.835815 0.938232 0.484802 0.864563 0.938416 0.486389 0.890503 0.938599 0.488159 0.913849 0.938812 0.489960 0.934967 0.938995 0.491913 0.953796 0.938599 0.493347 0.970917 0.938080 0.494720 0.986816 0.937653 0.496216 1.000000 0.935730 0.499603 1.000000 0.924652 0.517670 0.144379 0.969025 0.490265 0.179443 0.968079 0.489227 0.210541 0.967255 0.488068 0.238586 0.966461 0.487061 0.264404 0.965759 0.486237 0.288666 0.965057 0.485291 0.312195 0.964447 0.484558 0.335388 0.963776 0.483582 0.358856 0.963074 0.482758 0.383179 0.962341 0.481903 0.408661 0.961548 0.480988 0.435577 0.960663 0.480103 0.464447 0.959747 0.479126 0.495941 0.959320 0.478882 0.530518 0.959381 0.479126 0.568176 0.959503 0.479462 0.608124 0.959595 0.479919 0.649200 0.959717 0.480408 0.690643 0.959839 0.481171 0.731201 0.959991 0.482422 0.769379 0.960114 0.483887 0.804138 0.960236 0.485474 0.835602 0.960358 0.487183 0.864014 0.960480 0.489044 0.889740 0.960571 0.490997 0.912994 0.960663 0.492981 0.934143 0.960815 0.495087 0.953430 0.960876 0.497192 0.970825 0.960632 0.498993 0.986664 0.960052 0.500519 1.000000 0.958160 0.503754 1.000000 0.945892 0.521942 0.151184 0.989502 0.489166 0.185089 0.988586 0.488068 0.215271 0.987732 0.486969 0.242584 0.987000 0.485931 0.267914 0.986298 0.485077 0.291809 0.985626 0.484253 0.315002 0.984955 0.483429 0.338013 0.984314 0.482605 0.361389 0.983643 0.481842 0.385590 0.982880 0.481079 0.411011 0.982086 0.480286 0.437927 0.981232 0.479553 0.466736 0.980286 0.478729 0.498199 0.979919 0.478607 0.532654 0.979950 0.479004 0.570129 0.980011 0.479553 0.610046 0.980072 0.480255 0.651459 0.980194 0.481537 0.692505 0.980225 0.483032 0.732300 0.980286 0.484558 0.769592 0.980347 0.486328 0.803955 0.980377 0.488129 0.835083 0.980408 0.490082 0.863281 0.980469 0.492096 0.888885 0.980469 0.494232 0.912079 0.980499 0.496338 0.933228 0.980560 0.498535 0.952545 0.980591 0.500671 0.970398 0.980621 0.502899 0.986603 0.980469 0.504883 1.000000 0.978546 0.508392 1.000000 0.965393 0.527435 0.169250 1.000000 0.490265 0.200684 1.000000 0.489227 0.228668 1.000000 0.488312 0.254211 1.000000 0.487427 0.277985 1.000000 0.486633 0.300507 1.000000 0.485657 0.322479 1.000000 0.484802 0.344421 1.000000 0.483887 0.366699 1.000000 0.482880 0.389893 1.000000 0.481842 0.414246 1.000000 0.480682 0.440094 1.000000 0.479340 0.468719 0.999115 0.478485 0.500122 0.998779 0.478699 0.534790 0.998810 0.479401 0.572754 0.998810 0.480713 0.612427 0.998840 0.482147 0.652985 0.998810 0.483704 0.693146 0.998810 0.485443 0.732269 0.998810 0.487274 0.769226 0.998810 0.489227 0.803284 0.998779 0.491241 0.834229 0.998749 0.493286 0.862427 0.998718 0.495453 0.888031 0.998718 0.497620 0.911224 0.998688 0.499817 0.932434 0.998688 0.502075 0.951843 0.998657 0.504242 0.969574 0.998627 0.506836 0.986053 0.998627 0.509918 1.000000 0.997192 0.514435 1.000000 0.983429 0.533783 0.200439 1.000000 0.495056 0.230438 1.000000 0.495056 0.257233 1.000000 0.495087 0.281769 1.000000 0.495148 0.304718 1.000000 0.495178 0.326538 1.000000 0.495239 0.347931 1.000000 0.495422 0.369324 1.000000 0.495605 0.391113 1.000000 0.495911 0.413818 1.000000 0.496155 0.437622 1.000000 0.496521 0.462952 1.000000 0.497101 0.490234 1.000000 0.497742 0.520050 1.000000 0.498932 0.552887 1.000000 0.500305 0.587830 1.000000 0.501801 0.624115 1.000000 0.503418 0.661255 1.000000 0.505188 0.698120 1.000000 0.507080 0.734070 1.000000 0.508972 0.768036 1.000000 0.511017 0.799561 1.000000 0.513123 0.828247 1.000000 0.515228 0.854431 1.000000 0.517395 0.878387 1.000000 0.519531 0.900238 1.000000 0.521729 0.920319 1.000000 0.524292 0.938690 1.000000 0.527161 0.955597 1.000000 0.530426 0.971405 1.000000 0.533722 0.986115 1.000000 0.536987 1.000000 1.000000 0.540344 0.000000 0.009369 0.477081 0.036041 0.000000 0.490631 0.083496 0.003571 0.494476 0.128510 0.007507 0.498047 0.170044 0.011292 0.501282 0.207397 0.014862 0.504211 0.240509 0.017303 0.506012 0.270233 0.018860 0.507294 0.297668 0.020447 0.508514 0.323639 0.021973 0.509735 0.348938 0.023468 0.510834 0.374481 0.024963 0.511993 0.400970 0.026428 0.513092 0.428711 0.027863 0.514160 0.458649 0.029358 0.515228 0.490967 0.030823 0.516205 0.526489 0.031891 0.516907 0.566040 0.031494 0.516327 0.609650 0.030975 0.515747 0.655853 0.030548 0.515015 0.703247 0.030121 0.514252 0.750153 0.029755 0.513489 0.794434 0.029633 0.512848 0.834503 0.029755 0.512268 0.870056 0.030090 0.511810 0.901398 0.030731 0.511353 0.928986 0.031189 0.510986 0.953369 0.031891 0.510590 0.975067 0.032745 0.510315 0.994568 0.033661 0.510071 1.000000 0.053345 0.510651 1.000000 0.080139 0.512543 0.000000 0.048645 0.485931 0.036255 0.041107 0.497101 0.083801 0.044525 0.500183 0.128662 0.047974 0.503143 0.169769 0.050232 0.504974 0.206543 0.051788 0.506256 0.239288 0.053314 0.507507 0.268768 0.054749 0.508636 0.296021 0.056183 0.509827 0.322144 0.057587 0.510986 0.347595 0.058960 0.512054 0.373291 0.060364 0.513153 0.399658 0.061798 0.514191 0.427551 0.063171 0.515198 0.457397 0.064606 0.516174 0.489716 0.066040 0.517151 0.525391 0.067139 0.517822 0.564911 0.066772 0.517273 0.608521 0.066345 0.516571 0.655334 0.065979 0.515839 0.703217 0.065613 0.514984 0.750244 0.065338 0.514130 0.794647 0.065277 0.513458 0.834686 0.065552 0.512787 0.869995 0.065643 0.512146 0.901154 0.066010 0.511688 0.928619 0.066559 0.511322 0.952911 0.067322 0.510834 0.974518 0.068237 0.510498 0.993896 0.069153 0.510223 1.000000 0.087372 0.511139 1.000000 0.113586 0.513641 0.000000 0.087036 0.494476 0.038147 0.082123 0.503296 0.083862 0.082672 0.503937 0.127991 0.084198 0.505219 0.168488 0.085632 0.506439 0.205048 0.086975 0.507629 0.237579 0.088348 0.508820 0.267242 0.089722 0.509949 0.294708 0.090973 0.511047 0.320831 0.092346 0.512146 0.346375 0.093597 0.513153 0.372040 0.095001 0.514160 0.398468 0.096283 0.515167 0.426361 0.097687 0.516113 0.456268 0.099091 0.517090 0.488647 0.100494 0.517975 0.524353 0.101776 0.518707 0.564453 0.101440 0.518005 0.608734 0.101135 0.517242 0.655792 0.100739 0.516510 0.703918 0.100464 0.515625 0.751099 0.100342 0.514709 0.795258 0.100067 0.513824 0.835022 0.099976 0.513123 0.870178 0.100220 0.512482 0.901184 0.100677 0.511932 0.928436 0.101227 0.511322 0.952545 0.102051 0.510986 0.973999 0.102936 0.510620 0.993256 0.103882 0.510254 1.000000 0.120728 0.511719 1.000000 0.146240 0.514679 0.000000 0.123596 0.500610 0.039062 0.118958 0.506531 0.083984 0.118683 0.506439 0.126404 0.118652 0.506622 0.166809 0.119965 0.507751 0.203369 0.121277 0.508911 0.236145 0.122467 0.510040 0.265930 0.123688 0.511047 0.293427 0.124969 0.512146 0.319611 0.126251 0.513153 0.345032 0.127502 0.514130 0.370728 0.128784 0.515106 0.397247 0.130127 0.516052 0.425140 0.131531 0.516998 0.455109 0.132904 0.517883 0.488068 0.134399 0.518707 0.524536 0.135681 0.519409 0.565033 0.135468 0.518707 0.609711 0.135162 0.517822 0.657135 0.134918 0.517029 0.705200 0.134399 0.515900 0.752197 0.134003 0.514984 0.796204 0.133850 0.514099 0.835724 0.133881 0.513214 0.870605 0.134125 0.512543 0.901306 0.134644 0.511932 0.928375 0.135254 0.511475 0.952271 0.136017 0.511017 0.973541 0.136902 0.510742 0.992645 0.137817 0.510254 1.000000 0.153259 0.511871 1.000000 0.178101 0.515594 0.000000 0.157684 0.503326 0.038788 0.154053 0.509003 0.083435 0.153625 0.508850 0.125671 0.153320 0.508759 0.165222 0.153381 0.509003 0.201965 0.154572 0.510071 0.234802 0.155731 0.511108 0.264557 0.156921 0.512115 0.292053 0.158173 0.513123 0.318298 0.159332 0.514069 0.343811 0.160645 0.515015 0.369537 0.161926 0.515961 0.396088 0.163269 0.516846 0.424591 0.164612 0.517700 0.455231 0.166077 0.518585 0.488556 0.167603 0.519379 0.525513 0.168945 0.519928 0.566559 0.168793 0.519196 0.611420 0.168274 0.518250 0.658875 0.167786 0.517242 0.706970 0.167358 0.516052 0.753876 0.167084 0.515015 0.797638 0.166901 0.514130 0.836731 0.167023 0.513336 0.871277 0.167328 0.512604 0.901672 0.167755 0.511963 0.928406 0.168304 0.511536 0.952026 0.169098 0.511047 0.973114 0.169983 0.510651 0.992035 0.170868 0.510376 1.000000 0.184906 0.512115 1.000000 0.209015 0.516571 0.000000 0.191010 0.505280 0.038269 0.188019 0.511383 0.083160 0.187622 0.511200 0.125549 0.187134 0.510986 0.164703 0.186798 0.510834 0.200653 0.187073 0.511139 0.233521 0.188232 0.512146 0.263306 0.189331 0.513062 0.290802 0.190582 0.514038 0.317047 0.191772 0.514954 0.342682 0.193024 0.515869 0.368927 0.194305 0.516724 0.396118 0.195648 0.517578 0.424957 0.197144 0.518372 0.455994 0.198669 0.519226 0.489868 0.200226 0.519958 0.527252 0.201263 0.520386 0.568542 0.200897 0.519470 0.613708 0.200409 0.518402 0.661316 0.199951 0.517303 0.709290 0.199585 0.516205 0.755981 0.199280 0.515137 0.799286 0.199219 0.514191 0.837952 0.199280 0.513245 0.872040 0.199615 0.512634 0.902069 0.200043 0.511932 0.928497 0.200653 0.511444 0.951874 0.201294 0.510925 0.972717 0.202087 0.510620 0.991455 0.202942 0.510162 1.000000 0.215637 0.512299 1.000000 0.239044 0.517426 0.000000 0.223236 0.507385 0.038147 0.221161 0.513641 0.083069 0.220642 0.513367 0.125458 0.220123 0.513092 0.164612 0.219757 0.512848 0.200012 0.219482 0.512726 0.232178 0.219849 0.513031 0.261932 0.221039 0.513977 0.289551 0.222198 0.514862 0.316345 0.223389 0.515686 0.342621 0.224731 0.516571 0.369171 0.226044 0.517395 0.396790 0.227478 0.518188 0.426056 0.228943 0.518982 0.457489 0.230316 0.519623 0.491638 0.231598 0.520264 0.529419 0.232605 0.520508 0.571167 0.232239 0.519562 0.616608 0.231842 0.518433 0.664246 0.231384 0.517303 0.712128 0.231018 0.516144 0.758453 0.230804 0.515106 0.801239 0.230682 0.514191 0.839355 0.230774 0.513245 0.872986 0.231018 0.512573 0.902557 0.231476 0.511932 0.928619 0.231995 0.511444 0.951721 0.232605 0.510986 0.972321 0.233276 0.510406 0.990906 0.234070 0.510071 1.000000 0.245514 0.512299 1.000000 0.268219 0.518158 0.000000 0.254517 0.509460 0.038055 0.253265 0.515747 0.082947 0.252838 0.515411 0.125366 0.252258 0.515106 0.164490 0.251831 0.514832 0.199951 0.251678 0.514648 0.231628 0.251617 0.514496 0.261322 0.252014 0.514740 0.289673 0.253204 0.515625 0.316742 0.254486 0.516418 0.343323 0.255798 0.517212 0.370270 0.257233 0.517975 0.398132 0.258453 0.518616 0.427643 0.259735 0.519257 0.459503 0.261078 0.519897 0.494019 0.262390 0.520447 0.532288 0.263367 0.520569 0.574402 0.262970 0.519501 0.620117 0.262604 0.518402 0.667725 0.262146 0.517273 0.715332 0.261780 0.516144 0.761139 0.261566 0.515015 0.803345 0.261475 0.514008 0.840851 0.261536 0.513275 0.873962 0.261780 0.512512 0.903076 0.262207 0.511780 0.928741 0.262665 0.511261 0.951538 0.263214 0.510803 0.971954 0.263794 0.510376 0.990326 0.264496 0.509949 1.000000 0.274719 0.512390 1.000000 0.296783 0.518982 0.000000 0.285126 0.511414 0.037933 0.284851 0.517761 0.082855 0.284302 0.517426 0.125244 0.283844 0.517029 0.164398 0.283508 0.516693 0.200684 0.283356 0.516449 0.233185 0.283295 0.516174 0.262787 0.283386 0.516083 0.290619 0.283844 0.516205 0.318024 0.285217 0.516998 0.344757 0.286377 0.517670 0.371826 0.287598 0.518341 0.399902 0.288849 0.518921 0.429871 0.290131 0.519470 0.462036 0.291473 0.520020 0.497070 0.292847 0.520569 0.535797 0.293671 0.520599 0.578217 0.293274 0.519501 0.624054 0.292908 0.518341 0.671509 0.292542 0.517181 0.718781 0.292175 0.515961 0.764038 0.291962 0.514862 0.805542 0.291870 0.513916 0.842407 0.291931 0.513062 0.874939 0.292145 0.512329 0.903595 0.292511 0.511719 0.928894 0.292908 0.511047 0.951416 0.293396 0.510498 0.971527 0.293945 0.510071 0.989746 0.294525 0.509735 1.000000 0.303558 0.512146 1.000000 0.324890 0.519592 0.000000 0.315491 0.513306 0.037842 0.316071 0.519714 0.082764 0.315643 0.519226 0.126190 0.315186 0.518799 0.166473 0.314880 0.518372 0.203033 0.314789 0.518097 0.235748 0.314819 0.517822 0.265564 0.314941 0.517639 0.293152 0.315094 0.517426 0.319611 0.315399 0.517273 0.346558 0.316620 0.517914 0.373962 0.317902 0.518463 0.402374 0.319153 0.519012 0.432648 0.320465 0.519623 0.465271 0.321808 0.520111 0.500641 0.323181 0.520660 0.539703 0.323822 0.520477 0.582428 0.323456 0.519287 0.628296 0.323120 0.518158 0.675598 0.322723 0.516937 0.722351 0.322388 0.515839 0.766968 0.322174 0.514648 0.807800 0.322113 0.513733 0.843903 0.322144 0.512817 0.875885 0.322327 0.512115 0.904053 0.322632 0.511322 0.928955 0.322968 0.510773 0.951202 0.323456 0.510223 0.971100 0.323883 0.509796 0.989105 0.324371 0.509338 1.000000 0.332092 0.511871 1.000000 0.352875 0.520233 0.000000 0.345825 0.515076 0.038971 0.347473 0.521515 0.085419 0.346924 0.520966 0.129272 0.346527 0.520477 0.169922 0.346344 0.520020 0.206665 0.346252 0.519653 0.239227 0.346222 0.519226 0.268829 0.346252 0.518921 0.296387 0.346436 0.518585 0.322815 0.346649 0.518250 0.349030 0.346954 0.518036 0.376556 0.348236 0.518555 0.405334 0.349579 0.519104 0.435913 0.350891 0.519653 0.468811 0.352264 0.520142 0.504608 0.353607 0.520630 0.544037 0.354065 0.520233 0.586975 0.353699 0.519073 0.632751 0.353333 0.517944 0.679688 0.352966 0.516663 0.725983 0.352692 0.515472 0.769897 0.352448 0.514374 0.809906 0.352386 0.513336 0.845337 0.352386 0.512512 0.876709 0.352539 0.511719 0.904419 0.352753 0.511017 0.928955 0.353027 0.510376 0.950897 0.353455 0.509888 0.970581 0.353790 0.509338 0.988464 0.354156 0.508850 1.000000 0.360748 0.511261 1.000000 0.380859 0.520691 0.000000 0.377411 0.519012 0.042694 0.378906 0.523163 0.089722 0.378479 0.522552 0.134064 0.378143 0.521973 0.174591 0.377869 0.521362 0.210938 0.377777 0.520844 0.243286 0.377747 0.520386 0.272797 0.377808 0.520020 0.300323 0.378082 0.519684 0.326721 0.378296 0.519318 0.352966 0.378662 0.519012 0.379700 0.378937 0.518555 0.408722 0.380249 0.519104 0.439575 0.381592 0.519592 0.472809 0.382935 0.520081 0.508942 0.384308 0.520569 0.548553 0.384552 0.519897 0.591644 0.384216 0.518738 0.637299 0.383850 0.517517 0.683868 0.383484 0.516327 0.729462 0.383118 0.515076 0.772644 0.382935 0.514008 0.811859 0.382751 0.513000 0.846588 0.382782 0.512085 0.877380 0.382904 0.511292 0.904663 0.383087 0.510559 0.928864 0.383331 0.509979 0.950500 0.383606 0.509430 0.970032 0.383881 0.508881 0.987732 0.384216 0.508301 1.000000 0.389587 0.510437 1.000000 0.409149 0.520813 0.000000 0.410797 0.524414 0.048431 0.410858 0.524628 0.095673 0.410431 0.523895 0.139679 0.409973 0.523163 0.179993 0.409821 0.522522 0.216034 0.409668 0.521912 0.248077 0.409729 0.521454 0.277405 0.409943 0.521057 0.304718 0.410156 0.520691 0.331116 0.410492 0.520325 0.357391 0.410828 0.519958 0.384216 0.411133 0.519501 0.412415 0.411438 0.519012 0.443573 0.412781 0.519470 0.477020 0.414093 0.519928 0.513428 0.415375 0.520325 0.553253 0.415405 0.519470 0.596344 0.415070 0.518311 0.641785 0.414734 0.517029 0.687775 0.414368 0.515839 0.732758 0.414001 0.514618 0.775146 0.413788 0.513519 0.813507 0.413574 0.512421 0.847656 0.413574 0.511627 0.877899 0.413605 0.510803 0.904694 0.413727 0.510071 0.928619 0.413910 0.509460 0.950043 0.414124 0.508820 0.969391 0.414368 0.508057 0.987000 0.414642 0.507385 1.000000 0.418884 0.509216 1.000000 0.437897 0.520966 0.005768 0.443634 0.526642 0.055328 0.443146 0.525848 0.102539 0.442719 0.524994 0.146423 0.442474 0.524200 0.186401 0.442230 0.523529 0.221893 0.442261 0.522949 0.253479 0.442413 0.522430 0.282471 0.442657 0.522034 0.309540 0.442871 0.521606 0.335846 0.443237 0.521240 0.362122 0.443604 0.520813 0.389038 0.443909 0.520325 0.417297 0.444183 0.519775 0.447632 0.444458 0.519196 0.481323 0.445709 0.519623 0.518127 0.447021 0.520050 0.557861 0.446869 0.518982 0.600861 0.446503 0.517731 0.646027 0.446106 0.516479 0.691437 0.445679 0.515198 0.735779 0.445343 0.513977 0.777374 0.445099 0.512939 0.814972 0.444885 0.511932 0.848419 0.444794 0.511017 0.878174 0.444763 0.510162 0.904633 0.444855 0.509338 0.928314 0.445038 0.508636 0.949554 0.445190 0.507782 0.968689 0.445374 0.507019 0.986206 0.445679 0.506348 1.000000 0.448700 0.507629 1.000000 0.467133 0.520905 0.013855 0.476532 0.527710 0.063599 0.476196 0.526825 0.110718 0.475861 0.525970 0.154236 0.475586 0.525146 0.193573 0.475525 0.524445 0.228271 0.475555 0.523865 0.259338 0.475708 0.523376 0.287872 0.476044 0.522949 0.314667 0.476349 0.522491 0.340790 0.476715 0.522095 0.367065 0.477112 0.521667 0.393982 0.477356 0.521088 0.422394 0.477570 0.520508 0.452789 0.477753 0.519806 0.485626 0.478027 0.519226 0.522522 0.479156 0.519501 0.562347 0.478882 0.518311 0.605194 0.478485 0.517090 0.649933 0.478058 0.515808 0.694733 0.477661 0.514557 0.738312 0.477264 0.513306 0.779144 0.476959 0.512177 0.815979 0.476776 0.511169 0.848969 0.476624 0.510162 0.878357 0.476562 0.509216 0.904510 0.476562 0.508331 0.927887 0.476715 0.507507 0.948944 0.476929 0.506683 0.967987 0.477112 0.505920 0.985321 0.477356 0.505035 1.000000 0.479156 0.505676 1.000000 0.497040 0.520844 0.023529 0.510559 0.528656 0.073242 0.510162 0.527710 0.119995 0.509949 0.526855 0.162811 0.509735 0.526062 0.201202 0.509674 0.525360 0.235077 0.509827 0.524780 0.265472 0.510071 0.524200 0.293518 0.510376 0.523743 0.319977 0.510712 0.523346 0.345978 0.511078 0.522858 0.372131 0.511414 0.522369 0.399078 0.511688 0.521851 0.427551 0.511871 0.521179 0.458008 0.511993 0.520447 0.490662 0.511932 0.519531 0.526733 0.512024 0.518738 0.566467 0.511688 0.517548 0.609100 0.511261 0.516266 0.653320 0.510834 0.515015 0.697540 0.510345 0.513763 0.740387 0.509918 0.512512 0.780548 0.509552 0.511353 0.816956 0.509247 0.510132 0.849487 0.509094 0.509094 0.878510 0.509186 0.508118 0.904358 0.509155 0.507233 0.927582 0.509308 0.506348 0.948456 0.509460 0.505524 0.967377 0.509735 0.504730 0.984650 0.509949 0.503967 1.000000 0.510803 0.503906 1.000000 0.528381 0.520813 0.033661 0.546570 0.528839 0.083008 0.546173 0.527893 0.129059 0.545898 0.526978 0.170990 0.545715 0.526123 0.208252 0.545685 0.525330 0.241089 0.545837 0.524780 0.270813 0.546082 0.524200 0.298309 0.546356 0.523682 0.324402 0.546661 0.523224 0.350159 0.546967 0.522705 0.376190 0.547272 0.522125 0.403107 0.547455 0.521515 0.431580 0.547577 0.520782 0.462036 0.547546 0.519958 0.494690 0.547455 0.518982 0.531006 0.547607 0.518341 0.571381 0.547852 0.517822 0.613800 0.547394 0.516571 0.657532 0.546844 0.515289 0.701263 0.546326 0.513977 0.743774 0.545868 0.512665 0.783417 0.545471 0.511414 0.819275 0.545197 0.510223 0.851318 0.545105 0.509155 0.879913 0.545013 0.508118 0.905487 0.544983 0.507202 0.928436 0.545166 0.506287 0.949036 0.545227 0.505432 0.967743 0.545441 0.504639 0.984924 0.545624 0.503845 1.000000 0.546570 0.504028 1.000000 0.561890 0.520782 0.043854 0.584534 0.528168 0.092590 0.584137 0.527191 0.137817 0.583862 0.526306 0.178589 0.583679 0.525452 0.214691 0.583679 0.524719 0.246552 0.583771 0.524109 0.275513 0.584015 0.523499 0.302429 0.584290 0.523010 0.328186 0.584503 0.522430 0.353729 0.584808 0.521973 0.379669 0.585022 0.521362 0.406555 0.585114 0.520721 0.435028 0.585175 0.519958 0.465454 0.585052 0.519104 0.498108 0.584747 0.518127 0.534607 0.585022 0.517609 0.575623 0.586029 0.517853 0.618256 0.585876 0.516907 0.661835 0.585266 0.515503 0.705200 0.584686 0.514130 0.747192 0.584137 0.512756 0.786316 0.583710 0.511444 0.821533 0.583344 0.510193 0.853149 0.583130 0.509064 0.881378 0.583069 0.508026 0.906616 0.583038 0.507080 0.929199 0.583038 0.506165 0.949615 0.583038 0.505341 0.968170 0.583191 0.504578 0.985107 0.583344 0.503815 1.000000 0.584290 0.504120 1.000000 0.597137 0.520874 0.054657 0.624451 0.527435 0.102570 0.624054 0.526428 0.146484 0.623718 0.525482 0.186127 0.623505 0.524689 0.220978 0.623505 0.523956 0.251892 0.623566 0.523346 0.280060 0.623718 0.522766 0.306458 0.623962 0.522186 0.331879 0.624084 0.521606 0.357147 0.624268 0.521118 0.382935 0.624420 0.520477 0.409760 0.624390 0.519836 0.438171 0.624298 0.519073 0.468475 0.624054 0.518188 0.501007 0.623627 0.517120 0.537781 0.623962 0.516693 0.578949 0.624878 0.516785 0.622681 0.625854 0.516907 0.666107 0.625336 0.515564 0.709106 0.624664 0.514130 0.750580 0.624054 0.512695 0.789093 0.623566 0.511322 0.823822 0.623138 0.510101 0.854950 0.622864 0.508972 0.882751 0.622650 0.507935 0.907654 0.622559 0.506958 0.929993 0.622528 0.506104 0.950165 0.622528 0.505280 0.968506 0.622650 0.504578 0.985352 0.622681 0.503906 1.000000 0.623413 0.504364 1.000000 0.633606 0.521088 0.065796 0.665619 0.526611 0.112610 0.665100 0.525543 0.155304 0.664703 0.524597 0.193451 0.664551 0.523804 0.227051 0.664459 0.523071 0.256897 0.664398 0.522430 0.284363 0.664490 0.521942 0.310211 0.664551 0.521362 0.335236 0.664612 0.520782 0.360321 0.664703 0.520233 0.385895 0.664673 0.519653 0.412567 0.664520 0.518890 0.440887 0.664307 0.518097 0.471191 0.663940 0.517090 0.503967 0.663391 0.515900 0.541077 0.663818 0.515564 0.582214 0.664673 0.515625 0.625793 0.665588 0.515656 0.670319 0.666321 0.515472 0.712891 0.665558 0.513977 0.753845 0.664795 0.512543 0.791809 0.664307 0.511200 0.825958 0.663788 0.509949 0.856628 0.663483 0.508850 0.884064 0.663086 0.507812 0.908600 0.662964 0.506866 0.930725 0.662903 0.506073 0.950653 0.662750 0.505341 0.968842 0.662781 0.504700 0.985565 0.662842 0.504089 1.000000 0.663361 0.504761 1.000000 0.670837 0.521454 0.076904 0.707123 0.525696 0.122498 0.706573 0.524750 0.163757 0.706116 0.523682 0.200409 0.705841 0.522949 0.232697 0.705627 0.522278 0.261627 0.705536 0.521545 0.288361 0.705566 0.521027 0.313660 0.705475 0.520477 0.338318 0.705414 0.519897 0.363098 0.705322 0.519287 0.388428 0.705139 0.518616 0.415100 0.704865 0.517822 0.443542 0.704529 0.516876 0.473999 0.703979 0.515778 0.506897 0.703369 0.514587 0.544281 0.703827 0.514282 0.585480 0.704620 0.514252 0.628876 0.705475 0.514221 0.673187 0.706238 0.514160 0.716614 0.706635 0.513794 0.756989 0.705841 0.512360 0.794373 0.705200 0.511047 0.828033 0.704620 0.509857 0.858276 0.704224 0.508728 0.885315 0.703766 0.507782 0.909546 0.703674 0.506897 0.931396 0.703491 0.506165 0.951141 0.703278 0.505524 0.969177 0.703156 0.504944 0.985718 0.703125 0.504456 1.000000 0.703430 0.505310 1.000000 0.707977 0.522064 0.087860 0.748199 0.524811 0.131989 0.747528 0.523743 0.171722 0.746948 0.522797 0.206848 0.746582 0.522064 0.237915 0.746338 0.521301 0.265900 0.746124 0.520752 0.291901 0.745941 0.520111 0.316681 0.745789 0.519653 0.340942 0.745575 0.518982 0.365570 0.745392 0.518280 0.390930 0.745026 0.517456 0.417755 0.744690 0.516602 0.446289 0.744202 0.515594 0.476898 0.743561 0.514404 0.509857 0.742798 0.513062 0.547607 0.743408 0.512939 0.588715 0.744049 0.512878 0.631836 0.744812 0.512817 0.675842 0.745514 0.512787 0.719116 0.746185 0.512726 0.760040 0.746307 0.512207 0.796783 0.745605 0.510895 0.830017 0.744934 0.509766 0.859741 0.744476 0.508759 0.886475 0.743988 0.507843 0.910431 0.743744 0.507111 0.932007 0.743317 0.506439 0.951569 0.743164 0.505890 0.969421 0.742981 0.505432 0.985870 0.742828 0.505096 1.000000 0.742798 0.506134 1.000000 0.744537 0.522980 0.098328 0.787903 0.523712 0.140930 0.787170 0.522766 0.179047 0.786591 0.521942 0.212646 0.786102 0.521118 0.242493 0.785675 0.520538 0.269623 0.785370 0.519867 0.294952 0.785095 0.519287 0.319336 0.784760 0.518555 0.343536 0.784485 0.517944 0.368103 0.784149 0.517120 0.393524 0.783722 0.516144 0.420410 0.783203 0.515228 0.449066 0.782623 0.514130 0.479767 0.781860 0.512878 0.512848 0.781067 0.511597 0.550873 0.781677 0.511566 0.591858 0.782257 0.511505 0.634827 0.782837 0.511444 0.678284 0.783447 0.511383 0.721130 0.784058 0.511322 0.761993 0.784637 0.511353 0.799133 0.784637 0.510864 0.831818 0.783936 0.509827 0.861176 0.783386 0.508881 0.887512 0.782867 0.508087 0.911194 0.782471 0.507446 0.932587 0.782135 0.506897 0.951935 0.781738 0.506439 0.969635 0.781555 0.506195 0.986023 0.781281 0.506012 1.000000 0.781372 0.507629 1.000000 0.780670 0.525055 0.108002 0.825653 0.522827 0.149017 0.824799 0.521881 0.185486 0.824097 0.520966 0.217743 0.823486 0.520233 0.246552 0.823029 0.519623 0.272980 0.822601 0.518890 0.297913 0.822205 0.518158 0.322113 0.821777 0.517456 0.346191 0.821411 0.516663 0.370697 0.820923 0.515808 0.396179 0.820435 0.514801 0.423126 0.819824 0.513855 0.451843 0.819183 0.512665 0.482605 0.818298 0.511383 0.516052 0.817566 0.510254 0.554047 0.818085 0.510193 0.594849 0.818573 0.510162 0.637543 0.819122 0.510132 0.680603 0.819580 0.510132 0.723083 0.820068 0.510162 0.763306 0.820526 0.510193 0.800446 0.821045 0.510315 0.833466 0.820984 0.510040 0.862457 0.820404 0.509216 0.888489 0.819794 0.508575 0.911865 0.819275 0.507996 0.933075 0.818909 0.507629 0.952240 0.818481 0.507355 0.969879 0.818390 0.507599 0.986115 0.818359 0.508057 1.000000 0.818085 0.510071 1.000000 0.814880 0.527710 0.116760 0.860687 0.521942 0.156189 0.859802 0.521088 0.191101 0.859009 0.520081 0.222229 0.858368 0.519409 0.250336 0.857788 0.518555 0.276276 0.857269 0.517761 0.300934 0.856781 0.517029 0.324890 0.856323 0.516205 0.348846 0.855804 0.515320 0.373383 0.855255 0.514404 0.398834 0.854645 0.513428 0.425812 0.854004 0.512421 0.454620 0.853180 0.511230 0.485504 0.852264 0.509949 0.519104 0.851624 0.509003 0.557129 0.852081 0.508972 0.597748 0.852448 0.508972 0.640198 0.852844 0.509003 0.682861 0.853241 0.509064 0.724701 0.853607 0.509155 0.764587 0.854004 0.509308 0.801147 0.854401 0.509491 0.834167 0.854767 0.509766 0.863556 0.854828 0.509796 0.889313 0.854126 0.509277 0.912476 0.853546 0.508911 0.933563 0.853302 0.509033 0.952606 0.853180 0.509399 0.970062 0.852966 0.510040 0.986115 0.852753 0.510773 1.000000 0.852142 0.512939 1.000000 0.846466 0.530823 0.124420 0.892548 0.521179 0.162537 0.891663 0.520142 0.196381 0.890839 0.519135 0.226654 0.890106 0.518372 0.254089 0.889496 0.517456 0.279633 0.888885 0.516571 0.303955 0.888336 0.515686 0.327698 0.887756 0.514862 0.351593 0.887238 0.513977 0.376038 0.886566 0.513031 0.401520 0.885895 0.512054 0.428528 0.885132 0.511047 0.457336 0.884247 0.509918 0.488251 0.883270 0.508636 0.522064 0.882751 0.507874 0.560028 0.883118 0.507904 0.600586 0.883362 0.507965 0.642578 0.883667 0.508057 0.684906 0.884033 0.508209 0.726227 0.884308 0.508423 0.765625 0.884583 0.508698 0.801697 0.884918 0.509003 0.834320 0.885162 0.509399 0.863708 0.885437 0.509888 0.890167 0.885681 0.510590 0.913208 0.885284 0.510956 0.933990 0.884827 0.511444 0.952820 0.884552 0.512146 0.970093 0.884216 0.513000 0.986084 0.883942 0.513916 1.000000 0.883087 0.516144 1.000000 0.875397 0.534241 0.131714 0.921051 0.520264 0.168793 0.920074 0.519135 0.201569 0.919220 0.518127 0.231079 0.918457 0.517181 0.257874 0.917786 0.516174 0.282959 0.917206 0.515381 0.307007 0.916565 0.514465 0.330566 0.915955 0.513611 0.354279 0.915314 0.512726 0.378693 0.914673 0.511810 0.404144 0.913910 0.510834 0.431183 0.913116 0.509796 0.460052 0.912201 0.508667 0.490967 0.911133 0.507507 0.524902 0.910736 0.506927 0.562744 0.910950 0.507050 0.603058 0.911194 0.507233 0.644836 0.911377 0.507385 0.686707 0.911621 0.507660 0.727661 0.911835 0.507965 0.766479 0.912048 0.508423 0.802155 0.912262 0.508850 0.834656 0.912567 0.509766 0.863892 0.912933 0.510925 0.890045 0.913239 0.512207 0.913635 0.913544 0.513672 0.934143 0.913055 0.514343 0.952881 0.912598 0.515228 0.970062 0.912109 0.516296 0.986023 0.911774 0.517365 1.000000 0.910706 0.519653 1.000000 0.901306 0.537842 0.138885 0.946350 0.519073 0.174713 0.945404 0.518005 0.206696 0.944550 0.516937 0.235352 0.943756 0.515930 0.261627 0.943085 0.515045 0.286285 0.942413 0.514130 0.309998 0.941772 0.513245 0.333344 0.941101 0.512421 0.356995 0.940460 0.511597 0.381317 0.939758 0.510712 0.406769 0.938995 0.509705 0.433807 0.938141 0.508759 0.462585 0.937225 0.507751 0.493500 0.936157 0.506653 0.527618 0.935822 0.506287 0.565308 0.935974 0.506439 0.605438 0.936127 0.506714 0.646820 0.936310 0.507050 0.688293 0.936432 0.507446 0.728729 0.936584 0.507935 0.767487 0.936829 0.508789 0.803009 0.937042 0.509949 0.834869 0.937256 0.511261 0.863586 0.937439 0.512634 0.889496 0.937683 0.514160 0.912781 0.937897 0.515808 0.934082 0.938080 0.517517 0.952850 0.937744 0.518738 0.970001 0.937195 0.519897 0.985901 0.936646 0.521088 1.000000 0.935608 0.523254 1.000000 0.924713 0.541565 0.145935 0.969025 0.518036 0.180634 0.968079 0.516846 0.211609 0.967285 0.515839 0.239594 0.966492 0.514862 0.265198 0.965759 0.513916 0.289490 0.965088 0.513031 0.312927 0.964447 0.512177 0.336029 0.963776 0.511353 0.359558 0.963135 0.510498 0.383820 0.962341 0.509705 0.409241 0.961609 0.508759 0.436279 0.960724 0.507874 0.465027 0.959717 0.506897 0.495880 0.958740 0.505981 0.529999 0.958435 0.505829 0.567657 0.958557 0.506195 0.607544 0.958679 0.506531 0.648376 0.958771 0.506989 0.690033 0.958893 0.507874 0.730469 0.959045 0.509033 0.768463 0.959167 0.510315 0.803192 0.959290 0.511719 0.834625 0.959381 0.513245 0.862976 0.959534 0.514862 0.888672 0.959656 0.516602 0.911896 0.959808 0.518402 0.933075 0.959900 0.520203 0.952515 0.960022 0.522125 0.969910 0.959717 0.523651 0.985870 0.959229 0.524841 1.000000 0.958069 0.526947 1.000000 0.945984 0.545349 0.152618 0.989471 0.516754 0.186279 0.988586 0.515656 0.216339 0.987732 0.514587 0.243561 0.987000 0.513672 0.268707 0.986298 0.512787 0.292542 0.985626 0.511993 0.315704 0.984985 0.511200 0.338623 0.984314 0.510376 0.362030 0.983643 0.509674 0.386169 0.982880 0.508881 0.411560 0.982117 0.508057 0.438538 0.981232 0.507294 0.467255 0.980316 0.506470 0.497986 0.979248 0.505524 0.532166 0.979034 0.505676 0.569550 0.979095 0.506134 0.609619 0.979126 0.507019 0.650848 0.979248 0.508118 0.691711 0.979279 0.509430 0.731232 0.979340 0.510864 0.768555 0.979431 0.512390 0.802856 0.979492 0.514008 0.833954 0.979553 0.515717 0.862183 0.979584 0.517456 0.887787 0.979614 0.519318 0.910980 0.979645 0.521240 0.932220 0.979706 0.523132 0.951599 0.979736 0.525055 0.969482 0.979828 0.527039 0.985779 0.979675 0.528687 1.000000 0.978577 0.531281 1.000000 0.965485 0.550262 0.170593 1.000000 0.517365 0.201691 1.000000 0.516388 0.229614 1.000000 0.515472 0.255096 1.000000 0.514587 0.278687 1.000000 0.513916 0.301178 1.000000 0.512939 0.323151 1.000000 0.512207 0.344971 1.000000 0.511292 0.367340 1.000000 0.510437 0.390381 1.000000 0.509369 0.414734 1.000000 0.508331 0.440582 1.000000 0.506897 0.469208 0.999115 0.506226 0.499817 0.998077 0.505554 0.534485 0.997925 0.506195 0.572205 0.997925 0.507294 0.611786 0.997955 0.508575 0.652161 0.997955 0.510010 0.692261 0.997955 0.511505 0.731262 0.997925 0.513123 0.768127 0.997955 0.514801 0.802307 0.997925 0.516632 0.833130 0.997925 0.518463 0.861298 0.997894 0.520355 0.886932 0.997894 0.522278 0.910217 0.997864 0.524200 0.931519 0.997894 0.526123 0.950989 0.997864 0.528107 0.968842 0.997864 0.530579 0.985260 0.997864 0.533295 1.000000 0.997253 0.536682 1.000000 0.983459 0.555908 0.201691 1.000000 0.520782 0.231415 1.000000 0.520844 0.258148 1.000000 0.520782 0.282593 1.000000 0.520813 0.305389 1.000000 0.520996 0.327179 1.000000 0.521057 0.348450 1.000000 0.521210 0.369843 1.000000 0.521423 0.391632 1.000000 0.521545 0.414246 1.000000 0.521912 0.438080 1.000000 0.522308 0.463379 1.000000 0.522827 0.490845 1.000000 0.523590 0.520721 1.000000 0.524719 0.553375 1.000000 0.525970 0.588135 1.000000 0.527344 0.624451 1.000000 0.528839 0.661469 1.000000 0.530457 0.698151 1.000000 0.532104 0.734131 1.000000 0.533875 0.768158 1.000000 0.535614 0.799652 1.000000 0.537537 0.828339 1.000000 0.539429 0.854614 1.000000 0.541260 0.878571 1.000000 0.543182 0.900360 1.000000 0.545135 0.920349 1.000000 0.547455 0.938721 1.000000 0.550171 0.955688 1.000000 0.552979 0.971313 1.000000 0.555847 0.986084 1.000000 0.558777 1.000000 1.000000 0.561371 0.000000 0.010376 0.508606 0.035034 0.000000 0.522614 0.082336 0.003479 0.526276 0.127289 0.007355 0.529297 0.168854 0.011139 0.532196 0.206146 0.014679 0.534668 0.239136 0.016357 0.535797 0.268860 0.018005 0.536896 0.296265 0.019531 0.537994 0.322357 0.021088 0.539062 0.347687 0.022583 0.540070 0.373260 0.024017 0.541016 0.399750 0.025482 0.542053 0.427551 0.027008 0.542969 0.457489 0.028442 0.543884 0.489807 0.029938 0.544739 0.525726 0.031494 0.545624 0.566040 0.032043 0.545746 0.609619 0.031677 0.544861 0.655853 0.031189 0.544006 0.703369 0.030731 0.542999 0.750305 0.030426 0.542114 0.794647 0.030334 0.541229 0.834717 0.030487 0.540497 0.870270 0.030914 0.539856 0.901550 0.031372 0.539429 0.929077 0.031921 0.538788 0.953430 0.032654 0.538391 0.975159 0.033447 0.537964 0.994598 0.034424 0.537537 1.000000 0.054138 0.537201 1.000000 0.080872 0.537659 0.000000 0.049652 0.516602 0.035126 0.040894 0.528381 0.082611 0.044342 0.531097 0.127502 0.047607 0.533508 0.168427 0.049316 0.534729 0.205231 0.050934 0.535858 0.237854 0.052429 0.536926 0.267456 0.053864 0.537994 0.294678 0.055237 0.539001 0.320892 0.056671 0.539978 0.346344 0.058075 0.540985 0.372101 0.059479 0.541901 0.398529 0.060913 0.542847 0.426392 0.062317 0.543701 0.456329 0.063721 0.544556 0.488708 0.065186 0.545380 0.524597 0.066711 0.546204 0.564911 0.067383 0.546295 0.608704 0.067047 0.545471 0.655579 0.066589 0.544495 0.703430 0.066223 0.543457 0.750580 0.066010 0.542450 0.794952 0.065979 0.541595 0.834930 0.066132 0.540802 0.870209 0.066315 0.540009 0.901337 0.066681 0.539307 0.928772 0.067261 0.538788 0.953033 0.068024 0.538300 0.974579 0.068909 0.537872 0.993927 0.070007 0.537506 1.000000 0.088196 0.537567 1.000000 0.114288 0.538574 0.000000 0.087769 0.524170 0.037048 0.081787 0.533783 0.082458 0.081818 0.533691 0.126495 0.083252 0.534760 0.167084 0.084686 0.535889 0.203583 0.086090 0.536926 0.236237 0.087402 0.537933 0.265900 0.088745 0.538940 0.293396 0.090057 0.539917 0.319641 0.091431 0.540833 0.345154 0.092712 0.541779 0.370758 0.094025 0.542664 0.397308 0.095398 0.543518 0.425171 0.096893 0.544342 0.455139 0.098267 0.545135 0.487549 0.099731 0.545959 0.523651 0.101288 0.546722 0.564697 0.102051 0.546814 0.609070 0.101746 0.545868 0.656158 0.101318 0.544830 0.704346 0.101135 0.543762 0.751404 0.100922 0.542664 0.795593 0.100647 0.541748 0.835327 0.100677 0.540833 0.870483 0.100922 0.540070 0.901337 0.101318 0.539276 0.928589 0.101990 0.538788 0.952667 0.102783 0.538300 0.974091 0.103638 0.537872 0.993317 0.104706 0.537445 1.000000 0.121490 0.537872 1.000000 0.146942 0.539673 0.000000 0.123566 0.529175 0.037598 0.118134 0.536194 0.082458 0.117737 0.535919 0.124878 0.117737 0.535858 0.165222 0.119049 0.536896 0.202026 0.120270 0.537872 0.234802 0.121582 0.538849 0.264587 0.122864 0.539795 0.292084 0.124084 0.540710 0.318329 0.125397 0.541626 0.343842 0.126587 0.542480 0.369568 0.127960 0.543274 0.396118 0.129303 0.544128 0.424072 0.130707 0.544922 0.454193 0.132141 0.545654 0.487274 0.133667 0.546417 0.524017 0.135223 0.547150 0.565430 0.136017 0.547150 0.610260 0.135803 0.546173 0.657623 0.135468 0.545074 0.705688 0.134979 0.543915 0.752716 0.134644 0.542816 0.796631 0.134430 0.541687 0.836090 0.134521 0.540771 0.870911 0.134827 0.539948 0.901581 0.135284 0.539368 0.928528 0.135895 0.538635 0.952362 0.136719 0.538086 0.973633 0.137604 0.537659 0.992676 0.138611 0.537262 1.000000 0.153961 0.537933 1.000000 0.178772 0.540344 0.000000 0.157654 0.531433 0.037262 0.153107 0.538391 0.081848 0.152802 0.538086 0.124268 0.152344 0.537720 0.163849 0.152496 0.537811 0.200653 0.153687 0.538757 0.233521 0.154846 0.539673 0.263306 0.156067 0.540558 0.290833 0.157227 0.541412 0.317047 0.158508 0.542236 0.342621 0.159821 0.543091 0.368408 0.161072 0.543854 0.395111 0.162476 0.544647 0.423706 0.163910 0.545410 0.454407 0.165375 0.546112 0.487915 0.166870 0.546814 0.525116 0.168518 0.547485 0.567078 0.169312 0.547455 0.612030 0.168823 0.546326 0.659454 0.168365 0.545013 0.707550 0.167908 0.543915 0.754425 0.167694 0.542725 0.798065 0.167572 0.541565 0.837128 0.167633 0.540710 0.871582 0.167969 0.539886 0.901886 0.168396 0.539032 0.928589 0.169006 0.538574 0.952179 0.169800 0.537903 0.973175 0.170624 0.537506 0.992096 0.171600 0.537048 1.000000 0.185638 0.538147 1.000000 0.209717 0.541260 0.000000 0.190918 0.533051 0.036804 0.187134 0.540466 0.081757 0.186676 0.540070 0.124146 0.186279 0.539703 0.163330 0.185852 0.539368 0.199310 0.186127 0.539490 0.232208 0.187317 0.540375 0.261993 0.188507 0.541229 0.289551 0.189697 0.542053 0.315796 0.190948 0.542816 0.341583 0.192230 0.543610 0.367950 0.193542 0.544312 0.395233 0.194977 0.545105 0.424194 0.196411 0.545746 0.455383 0.197937 0.546478 0.489288 0.199493 0.547119 0.526886 0.200867 0.547668 0.569122 0.201385 0.547363 0.614380 0.201019 0.546173 0.661987 0.200531 0.544952 0.710052 0.200134 0.543762 0.756622 0.199921 0.542542 0.799805 0.199799 0.541443 0.838379 0.199921 0.540375 0.872406 0.200256 0.539734 0.902313 0.200684 0.538910 0.928680 0.201263 0.538300 0.951996 0.201935 0.537781 0.972778 0.202667 0.537201 0.991516 0.203552 0.536743 1.000000 0.216278 0.538147 1.000000 0.239685 0.542023 0.000000 0.223022 0.535004 0.036743 0.220215 0.542480 0.081665 0.219635 0.541992 0.124084 0.219269 0.541565 0.163269 0.218811 0.541199 0.198730 0.218628 0.540833 0.230865 0.219025 0.541016 0.260712 0.220184 0.541809 0.288605 0.221436 0.542603 0.315399 0.222656 0.543335 0.341766 0.223969 0.544067 0.368408 0.225311 0.544739 0.396149 0.226776 0.545471 0.425415 0.228241 0.546112 0.456940 0.229523 0.546661 0.491241 0.230927 0.547180 0.529358 0.232330 0.547699 0.571899 0.232758 0.547241 0.617432 0.232361 0.546021 0.665039 0.231964 0.544800 0.712952 0.231598 0.543457 0.759155 0.231354 0.542297 0.801788 0.231293 0.541290 0.839844 0.231384 0.540344 0.873291 0.231628 0.539429 0.902802 0.232025 0.538727 0.928802 0.232605 0.538025 0.951843 0.233185 0.537476 0.972443 0.233917 0.537048 0.990967 0.234680 0.536530 1.000000 0.246124 0.537964 1.000000 0.268799 0.542603 0.000000 0.254211 0.536804 0.036621 0.252380 0.544312 0.081573 0.251831 0.543793 0.123993 0.251404 0.543304 0.163147 0.251099 0.542908 0.198639 0.250793 0.542511 0.230591 0.250793 0.542236 0.260376 0.251221 0.542328 0.288818 0.252472 0.543060 0.315918 0.253754 0.543762 0.342590 0.255157 0.544464 0.369629 0.256500 0.545135 0.397491 0.257721 0.545624 0.427124 0.259003 0.546143 0.459106 0.260376 0.546692 0.493774 0.261749 0.547150 0.532471 0.263153 0.547638 0.575256 0.263519 0.547058 0.621033 0.263092 0.545837 0.668579 0.262695 0.544586 0.716187 0.262360 0.543335 0.761902 0.262146 0.542084 0.803925 0.262054 0.540955 0.841339 0.262146 0.539978 0.874298 0.262360 0.539215 0.903320 0.262756 0.538483 0.928955 0.263214 0.537659 0.951721 0.263794 0.537201 0.971985 0.264404 0.536621 0.990387 0.265076 0.536072 1.000000 0.275269 0.537964 1.000000 0.297272 0.543304 0.000000 0.284790 0.538544 0.036560 0.283966 0.546082 0.081512 0.283447 0.545532 0.123901 0.282990 0.544983 0.163422 0.282715 0.544525 0.199768 0.282471 0.544067 0.232391 0.282501 0.543701 0.262054 0.282654 0.543457 0.289948 0.283142 0.543396 0.317352 0.284454 0.544098 0.344055 0.285645 0.544617 0.371216 0.286865 0.545166 0.399445 0.288177 0.545685 0.429443 0.289490 0.546173 0.461823 0.290863 0.546661 0.496948 0.292236 0.547150 0.536194 0.293671 0.547607 0.579224 0.293823 0.546783 0.625031 0.293457 0.545563 0.672485 0.293030 0.544220 0.719666 0.292755 0.542969 0.764771 0.292480 0.541718 0.806152 0.292389 0.540619 0.842896 0.292480 0.539764 0.875275 0.292694 0.538849 0.903870 0.293030 0.538086 0.929108 0.293457 0.537384 0.951508 0.293976 0.536835 0.971649 0.294495 0.536316 0.989807 0.295044 0.535614 1.000000 0.304047 0.537598 1.000000 0.325378 0.543823 0.000000 0.315125 0.540222 0.036438 0.315399 0.547791 0.081787 0.314850 0.547150 0.125366 0.314453 0.546539 0.165741 0.314087 0.545959 0.202393 0.313995 0.545502 0.235168 0.314087 0.545105 0.265015 0.314240 0.544739 0.292542 0.314362 0.544373 0.319061 0.314697 0.544159 0.346008 0.315887 0.544647 0.373505 0.317200 0.545166 0.402039 0.318542 0.545624 0.432404 0.319824 0.546112 0.465088 0.321198 0.546539 0.500549 0.322632 0.546997 0.540375 0.324005 0.547455 0.583496 0.324005 0.546509 0.629333 0.323608 0.545166 0.676544 0.323273 0.543854 0.723297 0.322968 0.542572 0.767700 0.322693 0.541351 0.808350 0.322601 0.540253 0.844391 0.322693 0.539246 0.876221 0.322845 0.538391 0.904297 0.323120 0.537659 0.929169 0.323486 0.536987 0.951294 0.323883 0.536346 0.971161 0.324371 0.535797 0.989166 0.324860 0.535217 1.000000 0.332581 0.537231 1.000000 0.353271 0.544250 0.000000 0.345551 0.542053 0.038147 0.346710 0.549377 0.084717 0.346130 0.548615 0.128754 0.345795 0.547913 0.169556 0.345581 0.547333 0.206177 0.345551 0.546783 0.238739 0.345490 0.546234 0.268311 0.345520 0.545776 0.295929 0.345734 0.545380 0.322418 0.345947 0.544952 0.348602 0.346313 0.544586 0.376282 0.347626 0.545105 0.405090 0.348938 0.545532 0.435730 0.350281 0.545959 0.468781 0.351654 0.546387 0.504669 0.353058 0.546814 0.544952 0.354462 0.547211 0.588074 0.354187 0.546051 0.633881 0.353851 0.544739 0.680695 0.353455 0.543365 0.726868 0.353149 0.542084 0.770599 0.352936 0.540833 0.810455 0.352875 0.539734 0.845825 0.352875 0.538879 0.877045 0.352997 0.537903 0.904663 0.353210 0.537201 0.929169 0.353546 0.536407 0.951050 0.353882 0.535919 0.970642 0.354248 0.535156 0.988495 0.354614 0.534607 1.000000 0.361145 0.536560 1.000000 0.381287 0.544647 0.000000 0.376953 0.546173 0.042297 0.378143 0.550751 0.089447 0.377716 0.549988 0.133881 0.377472 0.549225 0.174347 0.377228 0.548492 0.210541 0.377014 0.547791 0.242950 0.377045 0.547241 0.272369 0.377106 0.546722 0.299927 0.377411 0.546265 0.326416 0.377716 0.545868 0.352661 0.377991 0.545380 0.379456 0.378357 0.544861 0.408569 0.379700 0.545319 0.439423 0.380981 0.545715 0.472839 0.382385 0.546143 0.509033 0.383759 0.546539 0.549591 0.384979 0.546814 0.592743 0.384674 0.545502 0.638336 0.384308 0.544189 0.684753 0.383911 0.542847 0.730347 0.383636 0.541565 0.773285 0.383392 0.540344 0.812408 0.383270 0.539185 0.847046 0.383270 0.538269 0.877686 0.383331 0.537384 0.904877 0.383484 0.536591 0.929016 0.383728 0.535858 0.950623 0.384003 0.535156 0.970062 0.384308 0.534637 0.987793 0.384613 0.533936 1.000000 0.390015 0.535675 1.000000 0.409515 0.544922 0.000000 0.410126 0.551819 0.048492 0.410187 0.552002 0.095551 0.409698 0.551056 0.139587 0.409271 0.550171 0.179901 0.409027 0.549408 0.215820 0.408997 0.548706 0.247864 0.409058 0.548096 0.277100 0.409271 0.547638 0.304474 0.409576 0.547119 0.330872 0.409943 0.546661 0.357086 0.410217 0.546143 0.384033 0.410553 0.545624 0.412323 0.410889 0.545013 0.443451 0.412201 0.545410 0.477020 0.413483 0.545776 0.513550 0.414825 0.546143 0.554230 0.415863 0.546173 0.597412 0.415558 0.544891 0.642761 0.415131 0.543579 0.688721 0.414795 0.542206 0.733551 0.414490 0.540894 0.775757 0.414185 0.539703 0.814056 0.414093 0.538574 0.848053 0.414032 0.537659 0.878174 0.414062 0.536743 0.904907 0.414124 0.535919 0.928772 0.414276 0.535156 0.950134 0.414520 0.534454 0.969452 0.414764 0.533691 0.987030 0.415039 0.532990 1.000000 0.419250 0.534546 1.000000 0.438232 0.544952 0.005829 0.442993 0.553925 0.055481 0.442474 0.552948 0.102631 0.442047 0.551971 0.146606 0.441803 0.551056 0.186432 0.441589 0.550201 0.221802 0.441620 0.549561 0.253418 0.441803 0.548981 0.282227 0.441956 0.548401 0.309418 0.442383 0.547913 0.335663 0.442688 0.547455 0.361938 0.443024 0.546906 0.388916 0.443359 0.546326 0.417236 0.443634 0.545624 0.447601 0.443909 0.545013 0.481384 0.445190 0.545319 0.518127 0.446472 0.545654 0.558929 0.447266 0.545532 0.601959 0.446930 0.544189 0.646942 0.446533 0.542816 0.692383 0.446136 0.541473 0.736542 0.445801 0.540161 0.777924 0.445435 0.538940 0.815399 0.445343 0.537842 0.848785 0.445190 0.536865 0.878418 0.445190 0.535919 0.904816 0.445251 0.535065 0.928436 0.445343 0.534271 0.949615 0.445557 0.533356 0.968781 0.445801 0.532623 0.986237 0.446014 0.531799 1.000000 0.449066 0.533020 1.000000 0.467499 0.544922 0.014252 0.475891 0.554779 0.063934 0.475555 0.553741 0.111053 0.475189 0.552734 0.154602 0.475006 0.551880 0.193726 0.474884 0.550995 0.228333 0.475006 0.550323 0.259338 0.475159 0.549713 0.287720 0.475464 0.549194 0.314575 0.475769 0.548615 0.340698 0.476166 0.548096 0.366882 0.476501 0.547546 0.393890 0.476807 0.546936 0.422302 0.476990 0.546234 0.452698 0.477173 0.545410 0.485718 0.477509 0.544800 0.522644 0.478699 0.545135 0.563354 0.479279 0.544708 0.606232 0.478912 0.543335 0.650787 0.478455 0.541962 0.695557 0.478027 0.540649 0.738983 0.477661 0.539337 0.779633 0.477356 0.538116 0.816467 0.477112 0.536926 0.849365 0.476990 0.535919 0.878632 0.476959 0.534943 0.904694 0.476990 0.534027 0.928070 0.477112 0.533020 0.949066 0.477264 0.532166 0.968048 0.477417 0.531311 0.985382 0.477631 0.530487 1.000000 0.479553 0.531067 1.000000 0.497375 0.544830 0.024200 0.509888 0.555511 0.073792 0.509491 0.554504 0.120453 0.509247 0.553467 0.163300 0.509094 0.552521 0.201447 0.509064 0.551697 0.235229 0.509216 0.551025 0.265503 0.509491 0.550415 0.293396 0.509796 0.549835 0.319916 0.510162 0.549316 0.345856 0.510529 0.548767 0.371979 0.510834 0.548157 0.398987 0.511139 0.547516 0.427429 0.511292 0.546783 0.457886 0.511414 0.545929 0.490692 0.511383 0.544952 0.526978 0.511780 0.544403 0.567474 0.512085 0.543793 0.610077 0.511688 0.542419 0.654114 0.511200 0.541046 0.698273 0.510712 0.539703 0.741058 0.510284 0.538391 0.781158 0.509918 0.537109 0.817383 0.509674 0.535828 0.849762 0.509491 0.534698 0.878723 0.509399 0.533661 0.904480 0.509460 0.532715 0.927612 0.509491 0.531738 0.948395 0.509705 0.530823 0.967255 0.509827 0.529999 0.984467 0.510010 0.529236 1.000000 0.510742 0.528748 1.000000 0.528687 0.544800 0.035431 0.546539 0.556213 0.084564 0.546234 0.555084 0.130585 0.545929 0.554108 0.172394 0.545868 0.553192 0.209442 0.545898 0.552399 0.242218 0.546021 0.551636 0.271820 0.546295 0.550995 0.299133 0.546600 0.550446 0.325317 0.546997 0.549927 0.351044 0.547333 0.549377 0.377014 0.547607 0.548737 0.404083 0.547882 0.548035 0.432495 0.547974 0.547241 0.462921 0.547943 0.546356 0.495605 0.547852 0.545258 0.531433 0.547455 0.544067 0.571259 0.547211 0.542938 0.613556 0.546753 0.541626 0.657196 0.546204 0.540222 0.700958 0.545685 0.538818 0.743347 0.545227 0.537476 0.782867 0.544861 0.536102 0.818604 0.544647 0.534912 0.850616 0.544373 0.533752 0.879181 0.544373 0.532745 0.904694 0.544373 0.531738 0.927582 0.544495 0.530792 0.948212 0.544556 0.529968 0.966949 0.544800 0.529144 0.984070 0.544983 0.528351 0.999939 0.545197 0.527618 1.000000 0.562225 0.544769 0.046173 0.584930 0.555695 0.094666 0.584473 0.554596 0.139648 0.584229 0.553467 0.180328 0.584076 0.552582 0.216095 0.584076 0.551727 0.247864 0.584229 0.550995 0.276703 0.584442 0.550354 0.303467 0.584686 0.549774 0.329193 0.584961 0.549133 0.354736 0.585205 0.548523 0.380554 0.585388 0.547821 0.407501 0.585541 0.547119 0.435883 0.585510 0.546265 0.466278 0.585419 0.545258 0.498901 0.585144 0.544250 0.534698 0.584686 0.542999 0.575562 0.585358 0.542877 0.618073 0.585175 0.541840 0.661499 0.584595 0.540375 0.704865 0.584015 0.538879 0.746765 0.583435 0.537506 0.785736 0.583008 0.536102 0.820923 0.582642 0.534851 0.852417 0.582520 0.533691 0.880615 0.582367 0.532623 0.905823 0.582336 0.531647 0.928375 0.582275 0.530701 0.948792 0.582397 0.529877 0.967316 0.582581 0.529053 0.984314 0.582642 0.528320 1.000000 0.582977 0.527649 1.000000 0.597534 0.544861 0.057098 0.624817 0.554810 0.104706 0.624420 0.553680 0.148560 0.624146 0.552582 0.187897 0.623962 0.551636 0.222382 0.623901 0.550781 0.253143 0.623962 0.550140 0.281219 0.624146 0.549438 0.307434 0.624298 0.548828 0.332825 0.624542 0.548218 0.358032 0.624634 0.547546 0.383759 0.624756 0.546844 0.410614 0.624756 0.546051 0.438904 0.624603 0.545197 0.469238 0.624390 0.544220 0.501862 0.623962 0.543121 0.537781 0.623413 0.541809 0.578827 0.624237 0.541748 0.622528 0.625153 0.541779 0.665802 0.624573 0.540375 0.708710 0.623901 0.538849 0.750092 0.623291 0.537415 0.788483 0.622803 0.536041 0.823181 0.622345 0.534698 0.854187 0.622070 0.533569 0.881989 0.621918 0.532501 0.906830 0.621796 0.531525 0.929169 0.621765 0.530640 0.949371 0.621796 0.529816 0.967682 0.621918 0.529083 0.984528 0.621948 0.528412 1.000000 0.622253 0.527954 1.000000 0.633972 0.545074 0.068268 0.665985 0.553772 0.114716 0.665466 0.552551 0.157227 0.665100 0.551544 0.195129 0.664886 0.550629 0.228333 0.664764 0.549744 0.258118 0.664764 0.549103 0.285492 0.664856 0.548492 0.311127 0.664917 0.547791 0.336182 0.665039 0.547150 0.361084 0.665009 0.546478 0.386658 0.665009 0.545807 0.413361 0.664886 0.544983 0.441589 0.664581 0.544067 0.471985 0.664246 0.543030 0.504791 0.663727 0.541809 0.540894 0.663025 0.540375 0.582092 0.663910 0.540405 0.625549 0.664825 0.540405 0.669983 0.665527 0.540283 0.712585 0.664764 0.538727 0.753296 0.664093 0.537231 0.791168 0.663422 0.535858 0.825348 0.663025 0.534607 0.855865 0.662628 0.533447 0.883270 0.662415 0.532410 0.907806 0.662262 0.531464 0.929901 0.662079 0.530640 0.949829 0.662018 0.529877 0.967987 0.661987 0.529236 0.984711 0.662018 0.528625 1.000000 0.662262 0.528259 1.000000 0.671082 0.545410 0.079407 0.707428 0.552551 0.124542 0.706909 0.551514 0.165619 0.706421 0.550415 0.201996 0.706116 0.549530 0.233978 0.705994 0.548828 0.262787 0.705872 0.548004 0.289307 0.705841 0.547394 0.314545 0.705750 0.546692 0.339172 0.705719 0.546112 0.363770 0.705566 0.545441 0.389221 0.705475 0.544678 0.415894 0.705139 0.543762 0.444275 0.704773 0.542786 0.474823 0.704285 0.541656 0.507751 0.703644 0.540344 0.544189 0.703033 0.539062 0.585327 0.703888 0.539062 0.628693 0.704681 0.539001 0.672882 0.705475 0.538940 0.716156 0.705811 0.538513 0.756470 0.705048 0.537079 0.793762 0.704407 0.535706 0.827393 0.703857 0.534485 0.857513 0.703400 0.533356 0.884491 0.703033 0.532379 0.908722 0.702789 0.531525 0.930542 0.702606 0.530731 0.950317 0.702484 0.530060 0.968323 0.702423 0.529449 0.984894 0.702271 0.528931 1.000000 0.702393 0.528839 1.000000 0.708160 0.546021 0.090271 0.748413 0.551514 0.133972 0.747803 0.550293 0.173492 0.747314 0.549377 0.208313 0.746857 0.548462 0.239105 0.746643 0.547638 0.266968 0.746429 0.547028 0.292755 0.746216 0.546356 0.317474 0.746033 0.545654 0.341736 0.745880 0.544983 0.366272 0.745575 0.544250 0.391724 0.745300 0.543365 0.418549 0.744934 0.542480 0.446991 0.744385 0.541382 0.477631 0.743774 0.540100 0.510681 0.742981 0.538788 0.547394 0.742554 0.537659 0.588501 0.743256 0.537598 0.631622 0.743927 0.537537 0.675476 0.744629 0.537506 0.718689 0.745361 0.537445 0.759460 0.745514 0.536896 0.796204 0.744751 0.535614 0.829254 0.744110 0.534454 0.858948 0.743561 0.533386 0.885651 0.743225 0.532471 0.909546 0.742828 0.531708 0.931183 0.742493 0.531006 0.950714 0.742279 0.530426 0.968597 0.742096 0.529907 0.985016 0.742035 0.529510 1.000000 0.741913 0.529602 1.000000 0.744873 0.546936 0.100555 0.788147 0.550415 0.142700 0.787415 0.549194 0.180634 0.786774 0.548279 0.213898 0.786285 0.547455 0.243561 0.785919 0.546692 0.270569 0.785583 0.545990 0.295776 0.785309 0.545288 0.320160 0.785004 0.544617 0.344330 0.784668 0.543762 0.368866 0.784302 0.542938 0.394318 0.783936 0.542023 0.421143 0.783386 0.540985 0.449768 0.782806 0.539825 0.480499 0.782043 0.538574 0.513611 0.781219 0.537201 0.550659 0.780762 0.536224 0.591675 0.781403 0.536163 0.634491 0.782013 0.536133 0.677917 0.782623 0.536072 0.720673 0.783203 0.536072 0.761414 0.783752 0.536072 0.798462 0.783813 0.535614 0.831055 0.783081 0.534485 0.860352 0.782471 0.533569 0.886688 0.781921 0.532715 0.910370 0.781616 0.531982 0.931702 0.781250 0.531433 0.951111 0.780853 0.530975 0.968811 0.780579 0.530609 0.985168 0.780487 0.530426 1.000000 0.780762 0.531128 1.000000 0.781128 0.548859 0.110077 0.825806 0.549225 0.150665 0.824982 0.548187 0.186951 0.824280 0.547272 0.218781 0.823700 0.546448 0.247437 0.823242 0.545624 0.273865 0.822784 0.544922 0.298737 0.822418 0.544159 0.322906 0.821991 0.543335 0.346985 0.821564 0.542480 0.371429 0.821075 0.541534 0.396912 0.820618 0.540619 0.423859 0.820007 0.539551 0.452576 0.819275 0.538330 0.483398 0.818451 0.537079 0.516571 0.817474 0.535614 0.553772 0.817200 0.534851 0.594666 0.817719 0.534790 0.637207 0.818207 0.534790 0.680267 0.818665 0.534790 0.722534 0.819183 0.534851 0.762726 0.819641 0.534912 0.799774 0.820129 0.535034 0.832733 0.820160 0.534698 0.861603 0.819397 0.533813 0.887604 0.818939 0.533142 0.911011 0.818390 0.532532 0.932159 0.817963 0.532135 0.951416 0.817627 0.531860 0.969086 0.817627 0.532043 0.985291 0.817627 0.532410 1.000000 0.817535 0.533356 1.000000 0.815125 0.551239 0.118469 0.860809 0.548187 0.157562 0.859924 0.547089 0.192413 0.859161 0.546265 0.223236 0.858521 0.545380 0.251282 0.857941 0.544556 0.277191 0.857391 0.543610 0.301727 0.856903 0.542908 0.325684 0.856445 0.542023 0.349609 0.855957 0.541138 0.374054 0.855408 0.540131 0.399536 0.854797 0.539185 0.426514 0.854095 0.538025 0.455322 0.853302 0.536835 0.486176 0.852386 0.535614 0.519409 0.851349 0.534180 0.556763 0.851135 0.533569 0.597534 0.851562 0.533600 0.639709 0.851929 0.533630 0.682434 0.852356 0.533722 0.724213 0.852722 0.533813 0.763885 0.853119 0.533966 0.800415 0.853485 0.534119 0.833374 0.853851 0.534393 0.862732 0.853943 0.534393 0.888397 0.853210 0.533783 0.911621 0.852753 0.533386 0.932739 0.852509 0.533508 0.951782 0.852295 0.533813 0.969238 0.852173 0.534210 0.985291 0.851990 0.534790 1.000000 0.851746 0.535858 1.000000 0.846710 0.553955 0.126007 0.892639 0.547211 0.163849 0.891724 0.546112 0.197662 0.890900 0.545197 0.227692 0.890228 0.544250 0.255066 0.889587 0.543304 0.280548 0.888977 0.542389 0.304718 0.888428 0.541504 0.328461 0.887848 0.540710 0.352325 0.887299 0.539795 0.376709 0.886658 0.538788 0.402252 0.885986 0.537781 0.429230 0.885223 0.536713 0.458008 0.884369 0.535522 0.488983 0.883392 0.534241 0.522217 0.882294 0.532898 0.559723 0.882172 0.532501 0.600220 0.882477 0.532593 0.642212 0.882782 0.532684 0.684448 0.883118 0.532837 0.725708 0.883362 0.533020 0.764832 0.883667 0.533295 0.800934 0.884003 0.533569 0.833496 0.884247 0.533936 0.862946 0.884583 0.534424 0.889404 0.884918 0.535156 0.912354 0.884460 0.535339 0.933105 0.884125 0.535675 0.951965 0.883698 0.536255 0.969269 0.883423 0.536835 0.985260 0.883179 0.537628 1.000000 0.882690 0.538696 1.000000 0.875488 0.556915 0.133270 0.921082 0.546143 0.170044 0.920105 0.545013 0.202789 0.919312 0.543976 0.232056 0.918549 0.542999 0.258850 0.917877 0.541992 0.283813 0.917267 0.541229 0.307739 0.916626 0.540283 0.331299 0.916046 0.539337 0.354980 0.915375 0.538422 0.379364 0.914734 0.537506 0.404877 0.913971 0.536469 0.431885 0.913177 0.535431 0.460693 0.912262 0.534271 0.491638 0.911224 0.533051 0.524902 0.910065 0.531769 0.562469 0.910065 0.531647 0.602783 0.910278 0.531769 0.644287 0.910492 0.531952 0.686127 0.910736 0.532227 0.727020 0.910919 0.532532 0.765686 0.911133 0.532898 0.801331 0.911377 0.533356 0.833862 0.911713 0.534271 0.863007 0.912079 0.535309 0.889160 0.912384 0.536469 0.912720 0.912720 0.537750 0.933258 0.912231 0.538330 0.951996 0.911774 0.539001 0.969238 0.911346 0.539764 0.985199 0.910950 0.540649 1.000000 0.910492 0.541748 1.000000 0.901489 0.560059 0.140381 0.946411 0.545074 0.176117 0.945435 0.543793 0.207886 0.944611 0.542877 0.236328 0.943817 0.541809 0.262512 0.943115 0.540771 0.287109 0.942444 0.539917 0.310730 0.941772 0.538971 0.334076 0.941162 0.538086 0.357605 0.940521 0.537231 0.381927 0.939789 0.536285 0.407440 0.939026 0.535339 0.434418 0.938202 0.534302 0.463257 0.937225 0.533295 0.494171 0.936188 0.532196 0.527374 0.935059 0.530884 0.564911 0.935059 0.530975 0.604950 0.935242 0.531219 0.646271 0.935394 0.531555 0.687653 0.935577 0.531921 0.728088 0.935669 0.532349 0.766846 0.935913 0.533295 0.802155 0.936218 0.534332 0.834015 0.936432 0.535461 0.862732 0.936615 0.536743 0.888519 0.936890 0.538086 0.911865 0.937073 0.539551 0.933167 0.937286 0.541077 0.951965 0.936951 0.542053 0.969147 0.936371 0.542908 0.985107 0.935974 0.543823 1.000000 0.935455 0.544861 1.000000 0.924835 0.563293 0.147308 0.969025 0.543823 0.181976 0.968079 0.542725 0.212738 0.967255 0.541565 0.240479 0.966522 0.540619 0.266113 0.965790 0.539642 0.290253 0.965088 0.538696 0.313599 0.964478 0.537872 0.336761 0.963806 0.537048 0.360199 0.963135 0.536133 0.384460 0.962372 0.535217 0.409912 0.961609 0.534454 0.436829 0.960724 0.533508 0.465637 0.959778 0.532440 0.496490 0.958771 0.531433 0.529602 0.957611 0.530304 0.567139 0.957672 0.530640 0.606934 0.957794 0.531036 0.647858 0.957916 0.531433 0.689514 0.958069 0.532349 0.729767 0.958191 0.533356 0.767639 0.958344 0.534515 0.802368 0.958496 0.535797 0.833740 0.958618 0.537170 0.862030 0.958740 0.538605 0.887756 0.958862 0.540131 0.910980 0.958984 0.541687 0.932190 0.959106 0.543274 0.951599 0.959229 0.544952 0.969116 0.958954 0.546143 0.985077 0.958466 0.547180 0.999969 0.958008 0.548126 1.000000 0.946045 0.566711 0.153992 0.989471 0.542694 0.187531 0.988525 0.541504 0.217407 0.987732 0.540375 0.244446 0.987000 0.539337 0.269501 0.986298 0.538422 0.293243 0.985626 0.537628 0.316376 0.984985 0.536896 0.339325 0.984283 0.535980 0.362610 0.983643 0.535248 0.386780 0.982880 0.534485 0.412170 0.982086 0.533569 0.439056 0.981232 0.532837 0.467834 0.980286 0.531952 0.498566 0.979248 0.531036 0.531677 0.978180 0.530121 0.569061 0.978210 0.530548 0.609314 0.978302 0.531403 0.650238 0.978424 0.532440 0.691132 0.978485 0.533630 0.730499 0.978546 0.534882 0.767731 0.978607 0.536255 0.801910 0.978668 0.537720 0.833038 0.978760 0.539215 0.861267 0.978790 0.540771 0.886841 0.978851 0.542419 0.910217 0.978882 0.544006 0.931427 0.978943 0.545685 0.950867 0.979004 0.547333 0.968750 0.979095 0.549042 0.985077 0.978912 0.550659 0.999939 0.978394 0.552155 1.000000 0.965637 0.571228 0.171844 1.000000 0.542450 0.202850 1.000000 0.541534 0.230621 1.000000 0.540833 0.255890 1.000000 0.539948 0.279480 1.000000 0.539215 0.301819 1.000000 0.538361 0.323730 1.000000 0.537537 0.345612 1.000000 0.536743 0.367828 1.000000 0.535889 0.390991 1.000000 0.534790 0.415253 1.000000 0.533630 0.441071 1.000000 0.532379 0.469696 0.999115 0.531647 0.500305 0.998047 0.530884 0.534119 0.997070 0.530548 0.571838 0.997131 0.531616 0.611206 0.997131 0.532745 0.651428 0.997162 0.534027 0.691406 0.997162 0.535400 0.730377 0.997162 0.536774 0.767273 0.997162 0.538330 0.801270 0.997162 0.539917 0.832336 0.997192 0.541473 0.860535 0.997192 0.543152 0.886108 0.997131 0.544830 0.909424 0.997162 0.546478 0.930756 0.997162 0.548157 0.950226 0.997192 0.549988 0.968109 0.997192 0.552246 0.984650 0.997162 0.554688 0.999847 0.997040 0.557098 1.000000 0.983459 0.576172 0.202850 1.000000 0.544708 0.232422 1.000000 0.544830 0.259003 1.000000 0.544800 0.283295 1.000000 0.544769 0.306061 1.000000 0.544891 0.327728 1.000000 0.544983 0.349030 1.000000 0.545197 0.370331 1.000000 0.545380 0.392090 1.000000 0.545593 0.414703 1.000000 0.545898 0.438538 1.000000 0.546265 0.463806 1.000000 0.546692 0.491516 1.000000 0.547516 0.521240 1.000000 0.548553 0.553711 1.000000 0.549652 0.588379 1.000000 0.550903 0.624664 1.000000 0.552216 0.661560 1.000000 0.553619 0.698273 1.000000 0.555084 0.734192 1.000000 0.556610 0.768188 1.000000 0.558197 0.799652 1.000000 0.559845 0.828400 1.000000 0.561432 0.854675 1.000000 0.563080 0.878601 1.000000 0.564667 0.900513 1.000000 0.566498 0.920532 1.000000 0.568695 0.938812 1.000000 0.571045 0.955719 1.000000 0.573517 0.971466 1.000000 0.576111 0.986115 1.000000 0.578613 1.000000 1.000000 0.580780 0.000000 0.011505 0.537964 0.033844 0.000000 0.552795 0.081329 0.003479 0.555908 0.126221 0.007385 0.558502 0.167755 0.011108 0.560852 0.205078 0.013916 0.562469 0.238068 0.015656 0.563416 0.267609 0.017242 0.564331 0.295105 0.018738 0.565277 0.321045 0.020294 0.566162 0.346527 0.021820 0.567017 0.372223 0.023315 0.567841 0.398682 0.024811 0.568665 0.426514 0.026245 0.569427 0.456451 0.027771 0.570190 0.488800 0.029205 0.570953 0.524750 0.030762 0.571625 0.565735 0.032379 0.572357 0.609589 0.032196 0.571564 0.655823 0.031769 0.570496 0.703552 0.031403 0.569519 0.750549 0.031097 0.568329 0.794861 0.031006 0.567444 0.834930 0.031189 0.566437 0.870422 0.031647 0.565735 0.901703 0.032043 0.564911 0.929199 0.032593 0.564240 0.953522 0.033356 0.563568 0.975189 0.034210 0.563171 0.994629 0.035187 0.562622 1.000000 0.054932 0.561371 1.000000 0.081696 0.560852 0.000000 0.050568 0.545197 0.034119 0.041046 0.557587 0.081665 0.044220 0.559662 0.126312 0.047028 0.561371 0.167236 0.048584 0.562347 0.203857 0.050110 0.563293 0.236572 0.051636 0.564209 0.266144 0.053009 0.565063 0.293610 0.054504 0.565918 0.319763 0.055908 0.566772 0.345215 0.057312 0.567596 0.370941 0.058716 0.568359 0.397400 0.060181 0.569153 0.425354 0.061554 0.569855 0.455261 0.063049 0.570587 0.487701 0.064484 0.571259 0.523560 0.066010 0.571960 0.564606 0.067627 0.572601 0.608917 0.067596 0.571838 0.655823 0.067200 0.570709 0.703766 0.066925 0.569672 0.750885 0.066711 0.568451 0.795319 0.066742 0.567413 0.835205 0.066833 0.566467 0.870483 0.066956 0.565582 0.901520 0.067383 0.564697 0.928894 0.067993 0.564026 0.953094 0.068787 0.563446 0.974670 0.069702 0.562927 0.993958 0.070709 0.562439 1.000000 0.088959 0.561646 1.000000 0.115082 0.561493 0.000000 0.088440 0.551880 0.035919 0.081299 0.561737 0.081146 0.080994 0.561279 0.125244 0.082520 0.562225 0.165741 0.083893 0.563080 0.202271 0.085266 0.563995 0.235016 0.086670 0.564850 0.264709 0.087982 0.565674 0.292267 0.089355 0.566498 0.318512 0.090698 0.567291 0.343994 0.092010 0.568024 0.369751 0.093353 0.568787 0.396240 0.094788 0.569489 0.424225 0.096161 0.570190 0.454132 0.097626 0.570923 0.486603 0.099091 0.571533 0.522888 0.100677 0.572174 0.564636 0.102325 0.572784 0.609375 0.102295 0.572052 0.656555 0.102020 0.570770 0.704803 0.101807 0.569702 0.751831 0.101471 0.568481 0.795990 0.101257 0.567291 0.835663 0.101318 0.566223 0.870667 0.101562 0.565186 0.901611 0.102051 0.564545 0.928741 0.102631 0.563751 0.952789 0.103455 0.563171 0.974121 0.104462 0.562653 0.993317 0.105438 0.562195 1.000000 0.122253 0.561829 1.000000 0.147736 0.562286 0.000000 0.123810 0.555603 0.036255 0.117371 0.563660 0.081116 0.116943 0.563171 0.123505 0.116974 0.562927 0.164032 0.118256 0.563782 0.200745 0.119568 0.564575 0.233673 0.120819 0.565430 0.263428 0.122040 0.566223 0.290985 0.123322 0.566956 0.317261 0.124664 0.567749 0.342743 0.125916 0.568451 0.368500 0.127289 0.569183 0.395081 0.128601 0.569855 0.423004 0.130035 0.570465 0.453430 0.131531 0.571106 0.486603 0.133057 0.571747 0.523468 0.134644 0.572357 0.565613 0.136322 0.572937 0.610779 0.136383 0.572083 0.658112 0.135986 0.570831 0.706207 0.135590 0.569458 0.753143 0.135223 0.568237 0.797058 0.135162 0.566986 0.836456 0.135193 0.566010 0.871185 0.135498 0.565002 0.901794 0.135986 0.564209 0.928741 0.136627 0.563446 0.952515 0.137421 0.562897 0.973694 0.138336 0.562317 0.992737 0.139282 0.561798 1.000000 0.154755 0.561798 1.000000 0.179474 0.562988 0.000000 0.157745 0.557434 0.035858 0.152252 0.565521 0.080566 0.151947 0.564972 0.122986 0.151550 0.564423 0.162628 0.151703 0.564331 0.199463 0.152893 0.565125 0.232391 0.154114 0.565887 0.262115 0.155334 0.566620 0.289734 0.156555 0.567383 0.315979 0.157806 0.568085 0.341553 0.159088 0.568787 0.367279 0.160461 0.569427 0.394257 0.161804 0.570038 0.422882 0.163300 0.570648 0.453796 0.164795 0.571289 0.487335 0.166382 0.571869 0.524780 0.167999 0.572479 0.567383 0.169586 0.572968 0.612579 0.169342 0.571838 0.660065 0.168884 0.570618 0.708221 0.168488 0.569214 0.755005 0.168213 0.567902 0.798584 0.168182 0.566711 0.837524 0.168243 0.565735 0.871887 0.168579 0.564789 0.902161 0.169098 0.563995 0.928741 0.169739 0.563171 0.952301 0.170441 0.562500 0.973297 0.171356 0.561920 0.992157 0.172211 0.561432 1.000000 0.186310 0.561920 1.000000 0.210358 0.563721 0.000000 0.190918 0.558807 0.035522 0.186371 0.567322 0.080505 0.185883 0.566681 0.122925 0.185547 0.566132 0.162109 0.185028 0.565613 0.198059 0.185425 0.565613 0.231018 0.186584 0.566315 0.260803 0.187744 0.567047 0.288391 0.188995 0.567719 0.314758 0.190277 0.568390 0.340698 0.191620 0.569000 0.367126 0.192932 0.569641 0.394501 0.194336 0.570221 0.423492 0.195831 0.570801 0.454865 0.197449 0.571411 0.488831 0.198853 0.571899 0.526550 0.200287 0.572357 0.569672 0.201813 0.572784 0.615051 0.201447 0.571625 0.662720 0.201111 0.570251 0.710754 0.200745 0.568939 0.757263 0.200531 0.567535 0.800415 0.200409 0.566437 0.838867 0.200562 0.565277 0.872742 0.200836 0.564423 0.902588 0.201324 0.563538 0.928864 0.201935 0.562775 0.952118 0.202576 0.562195 0.972900 0.203400 0.561646 0.991547 0.204193 0.561035 1.000000 0.216949 0.561707 1.000000 0.240326 0.564270 0.000000 0.222900 0.560425 0.035400 0.219513 0.568970 0.080414 0.218903 0.568329 0.122864 0.218475 0.567719 0.162048 0.218170 0.567139 0.197540 0.217926 0.566650 0.229767 0.218353 0.566650 0.259552 0.219482 0.567291 0.287689 0.220764 0.567963 0.314636 0.222015 0.568604 0.340942 0.223328 0.569214 0.367767 0.224792 0.569824 0.395508 0.226257 0.570404 0.424927 0.227631 0.570892 0.456543 0.228973 0.571350 0.490906 0.230347 0.571777 0.529144 0.231750 0.572174 0.572662 0.233276 0.572662 0.618225 0.232880 0.571259 0.665924 0.232513 0.569885 0.713684 0.232117 0.568542 0.759827 0.231903 0.567139 0.802399 0.231903 0.565918 0.840271 0.231934 0.564850 0.873688 0.232208 0.564026 0.903137 0.232697 0.563171 0.929016 0.233185 0.562378 0.951996 0.233826 0.561829 0.972534 0.234558 0.561249 0.990997 0.235229 0.560638 1.000000 0.246704 0.561584 1.000000 0.269318 0.564911 0.000000 0.254089 0.561981 0.035339 0.251648 0.570557 0.080322 0.251068 0.569885 0.122772 0.250763 0.569214 0.161987 0.250305 0.568573 0.197510 0.250183 0.568085 0.229767 0.250153 0.567627 0.259613 0.250549 0.567566 0.288116 0.251831 0.568207 0.315277 0.253143 0.568787 0.342041 0.254578 0.569366 0.369080 0.255890 0.569855 0.397034 0.257111 0.570312 0.426697 0.258453 0.570740 0.458740 0.259796 0.571198 0.493561 0.261261 0.571594 0.532440 0.262695 0.572021 0.576233 0.264008 0.572235 0.621918 0.263641 0.570831 0.669525 0.263214 0.569519 0.717010 0.262878 0.568085 0.762634 0.262665 0.566650 0.804565 0.262634 0.565521 0.841797 0.262695 0.564514 0.874695 0.262939 0.563477 0.903656 0.263367 0.562653 0.929169 0.263794 0.561981 0.951843 0.264374 0.561340 0.972107 0.265015 0.560760 0.990417 0.265656 0.560120 1.000000 0.275879 0.561310 1.000000 0.297760 0.565369 0.000000 0.284576 0.563446 0.035278 0.283356 0.572052 0.080261 0.282715 0.571350 0.122711 0.282379 0.570648 0.162598 0.282043 0.569946 0.199036 0.281921 0.569366 0.231659 0.281860 0.568878 0.261414 0.282074 0.568481 0.289337 0.282562 0.568329 0.316742 0.283844 0.568817 0.343567 0.285034 0.569275 0.370850 0.286285 0.569733 0.399139 0.287628 0.570129 0.429230 0.288971 0.570587 0.461700 0.290344 0.570984 0.496826 0.291718 0.571350 0.536224 0.293182 0.571747 0.580139 0.294281 0.571747 0.626007 0.293945 0.570435 0.673431 0.293610 0.568970 0.720520 0.293243 0.567596 0.765564 0.292999 0.566193 0.806763 0.292969 0.565063 0.843323 0.292999 0.563904 0.875641 0.293274 0.563019 0.904144 0.293610 0.562164 0.929352 0.294006 0.561371 0.951691 0.294495 0.560822 0.971710 0.294983 0.560211 0.989838 0.295593 0.559540 1.000000 0.304565 0.561005 1.000000 0.325867 0.565887 0.000000 0.314789 0.564850 0.035187 0.314636 0.573456 0.080994 0.314240 0.572693 0.124695 0.313812 0.571899 0.165222 0.313538 0.571198 0.201904 0.313416 0.570557 0.234680 0.313477 0.569977 0.264465 0.313629 0.569489 0.292053 0.313751 0.569000 0.318634 0.314117 0.568665 0.345734 0.315369 0.569122 0.373169 0.316650 0.569519 0.401794 0.317963 0.569946 0.432251 0.319336 0.570312 0.464966 0.320679 0.570679 0.500580 0.322113 0.571075 0.540466 0.323547 0.571411 0.584503 0.324493 0.571320 0.630341 0.324127 0.569885 0.677490 0.323761 0.568451 0.724121 0.323395 0.567078 0.768463 0.323212 0.565704 0.808960 0.323120 0.564545 0.844849 0.323181 0.563446 0.876587 0.323364 0.562500 0.904572 0.323639 0.561737 0.929382 0.323975 0.560883 0.951447 0.324432 0.560303 0.971252 0.324860 0.559570 0.989197 0.325317 0.558929 1.000000 0.333069 0.560547 1.000000 0.353699 0.566406 0.000000 0.345215 0.566864 0.037506 0.345947 0.574738 0.084290 0.345520 0.573883 0.128387 0.345123 0.573029 0.169250 0.345001 0.572296 0.205872 0.344940 0.571594 0.238342 0.344879 0.570923 0.267975 0.344971 0.570374 0.295624 0.345123 0.569855 0.322083 0.345367 0.569275 0.348389 0.345795 0.568848 0.376099 0.347137 0.569244 0.404968 0.348450 0.569641 0.435699 0.349823 0.569977 0.468719 0.351166 0.570343 0.504730 0.352600 0.570709 0.545135 0.354004 0.571045 0.589081 0.354706 0.570648 0.634888 0.354340 0.569244 0.681702 0.353973 0.567810 0.727692 0.353638 0.566406 0.771362 0.353394 0.565063 0.811035 0.353302 0.563843 0.846222 0.353333 0.562775 0.877411 0.353485 0.561920 0.904907 0.353668 0.561035 0.929321 0.353973 0.560333 0.951111 0.354340 0.559479 0.970703 0.354706 0.558868 0.988525 0.355042 0.558289 1.000000 0.361633 0.559845 1.000000 0.381653 0.566559 0.000000 0.376587 0.571075 0.042084 0.377533 0.575928 0.089386 0.377228 0.575012 0.133667 0.376831 0.574066 0.174133 0.376617 0.573181 0.210419 0.376465 0.572418 0.242706 0.376434 0.571716 0.272186 0.376617 0.571136 0.299744 0.376862 0.570587 0.326202 0.377197 0.570007 0.352509 0.377502 0.569458 0.379395 0.377869 0.568909 0.408447 0.379211 0.569244 0.439484 0.380585 0.569611 0.472900 0.381897 0.569946 0.509125 0.383301 0.570251 0.549896 0.384674 0.570587 0.593811 0.385132 0.569946 0.639435 0.384796 0.568542 0.685791 0.384430 0.567078 0.731171 0.384064 0.565704 0.774048 0.383850 0.564362 0.812958 0.383728 0.563202 0.847443 0.383698 0.562164 0.878021 0.383820 0.561188 0.905090 0.383972 0.560394 0.929169 0.384186 0.559570 0.950714 0.384430 0.558807 0.970154 0.384705 0.558136 0.987823 0.385040 0.557373 1.000000 0.390442 0.558929 1.000000 0.409912 0.566742 0.000000 0.409576 0.576874 0.048431 0.409515 0.576874 0.095581 0.409088 0.575867 0.139648 0.408630 0.574829 0.179962 0.408478 0.573944 0.215881 0.408478 0.573151 0.247833 0.408539 0.572449 0.276978 0.408813 0.571838 0.304382 0.409088 0.571289 0.330719 0.409424 0.570679 0.357056 0.409729 0.570099 0.383972 0.410095 0.569427 0.412231 0.410431 0.568787 0.443542 0.411774 0.569122 0.477142 0.413055 0.569427 0.513733 0.414398 0.569733 0.554810 0.415771 0.570038 0.598511 0.416016 0.569244 0.643829 0.415619 0.567749 0.689636 0.415222 0.566345 0.734375 0.414886 0.564972 0.776459 0.414612 0.563568 0.814575 0.414490 0.562408 0.848419 0.414429 0.561401 0.878479 0.414459 0.560425 0.905121 0.414520 0.559509 0.928925 0.414703 0.558716 0.950226 0.414948 0.557892 0.969482 0.415161 0.557129 0.987061 0.415405 0.556366 1.000000 0.419678 0.557648 1.000000 0.438599 0.566803 0.006012 0.442322 0.578735 0.055786 0.441864 0.577667 0.103058 0.441467 0.576538 0.146851 0.441162 0.575531 0.186737 0.441101 0.574615 0.222015 0.441071 0.573792 0.253418 0.441254 0.573120 0.282288 0.441528 0.572510 0.309357 0.441864 0.571930 0.335602 0.442230 0.571320 0.361877 0.442566 0.570679 0.388855 0.442871 0.570007 0.417236 0.443176 0.569244 0.447693 0.443512 0.568542 0.481506 0.444763 0.568848 0.518341 0.446045 0.569122 0.559631 0.447327 0.569336 0.602997 0.447327 0.568329 0.647949 0.446960 0.566895 0.693207 0.446533 0.565430 0.737244 0.446198 0.564026 0.778564 0.445862 0.562775 0.815826 0.445709 0.561584 0.849091 0.445557 0.560486 0.878723 0.445557 0.559448 0.905029 0.445587 0.558594 0.928589 0.445740 0.557709 0.949768 0.445923 0.556793 0.968811 0.446136 0.555969 0.986267 0.446411 0.555176 1.000000 0.449493 0.556091 1.000000 0.467834 0.566742 0.014740 0.475342 0.579376 0.064636 0.474945 0.578308 0.111694 0.474670 0.577179 0.155029 0.474457 0.576141 0.194061 0.474335 0.575195 0.228607 0.474457 0.574432 0.259399 0.474701 0.573730 0.287811 0.475006 0.573090 0.314545 0.475342 0.572479 0.340637 0.475708 0.571838 0.366913 0.476105 0.571228 0.393890 0.476379 0.570526 0.422363 0.476593 0.569763 0.452850 0.476776 0.568817 0.485809 0.477081 0.568115 0.522858 0.478302 0.568420 0.564270 0.479492 0.568604 0.607178 0.479279 0.567383 0.651703 0.478912 0.565918 0.696350 0.478455 0.564484 0.739655 0.478027 0.563110 0.780182 0.477753 0.561829 0.816864 0.477417 0.560547 0.849640 0.477356 0.559418 0.878876 0.477295 0.558411 0.904907 0.477356 0.557373 0.928223 0.477448 0.556488 0.949158 0.477570 0.555511 0.968109 0.477783 0.554688 0.985443 0.478027 0.553802 1.000000 0.479858 0.554169 1.000000 0.497711 0.566711 0.024963 0.509277 0.580017 0.074677 0.509064 0.578827 0.121246 0.508789 0.577698 0.163818 0.508636 0.576691 0.201935 0.508636 0.575775 0.235535 0.508759 0.574982 0.265594 0.509033 0.574280 0.293518 0.509338 0.573608 0.319916 0.509674 0.573029 0.345825 0.510071 0.572388 0.371979 0.510376 0.571716 0.398987 0.510742 0.570984 0.427521 0.510864 0.570129 0.458008 0.511017 0.569214 0.490753 0.510895 0.568146 0.527130 0.511322 0.567535 0.568481 0.512451 0.567749 0.610931 0.512024 0.566315 0.654968 0.511536 0.564880 0.698944 0.511047 0.563416 0.741669 0.510651 0.562012 0.781677 0.510254 0.560608 0.817780 0.509949 0.559357 0.850128 0.509857 0.558197 0.878967 0.509827 0.557098 0.904694 0.509796 0.556061 0.927765 0.509888 0.555054 0.948486 0.510010 0.554138 0.967285 0.510162 0.553223 0.984497 0.510376 0.552460 1.000000 0.511047 0.552094 1.000000 0.528992 0.566711 0.036407 0.546021 0.580505 0.085632 0.545624 0.579346 0.131439 0.545471 0.578217 0.173004 0.545319 0.577179 0.209930 0.545380 0.576263 0.242493 0.545563 0.575470 0.271912 0.545776 0.574768 0.299255 0.546112 0.574097 0.325317 0.546509 0.573486 0.351013 0.546875 0.572815 0.377045 0.547180 0.572144 0.404053 0.547394 0.571381 0.432526 0.547516 0.570526 0.462982 0.547546 0.569550 0.495697 0.547424 0.568481 0.531647 0.547119 0.567230 0.572021 0.547455 0.566620 0.614105 0.546875 0.565155 0.657806 0.546356 0.563660 0.701385 0.545776 0.562164 0.743591 0.545258 0.560699 0.783051 0.544861 0.559235 0.818634 0.544556 0.557983 0.850525 0.544373 0.556702 0.878967 0.544250 0.555573 0.904388 0.544250 0.554596 0.927216 0.544250 0.553528 0.947784 0.544403 0.552734 0.966400 0.544495 0.551788 0.983582 0.544678 0.550934 0.999359 0.544830 0.550201 1.000000 0.562500 0.566711 0.048431 0.585236 0.580719 0.096893 0.584900 0.579559 0.141724 0.584625 0.578369 0.182037 0.584473 0.577362 0.217621 0.584503 0.576447 0.249237 0.584656 0.575562 0.277771 0.584839 0.574860 0.304504 0.585083 0.574188 0.330139 0.585358 0.573456 0.355560 0.585602 0.572723 0.381470 0.585846 0.572021 0.408325 0.585907 0.571198 0.436768 0.585968 0.570282 0.467133 0.585785 0.569275 0.499695 0.585480 0.568085 0.535583 0.585022 0.566803 0.575531 0.584839 0.565735 0.617950 0.584564 0.564606 0.661377 0.584045 0.563080 0.704620 0.583435 0.561554 0.746368 0.582886 0.560089 0.785309 0.582428 0.558655 0.820404 0.582184 0.557373 0.851837 0.581879 0.556213 0.879944 0.581787 0.555084 0.905090 0.581696 0.554108 0.927704 0.581787 0.553162 0.948059 0.581879 0.552307 0.966553 0.582001 0.551483 0.983582 0.582184 0.550751 0.999298 0.582275 0.550079 1.000000 0.597809 0.566772 0.059418 0.625183 0.579529 0.106934 0.624786 0.578339 0.150543 0.624481 0.577271 0.189484 0.624329 0.576111 0.223846 0.624298 0.575317 0.254364 0.624359 0.574463 0.282288 0.624512 0.573700 0.308441 0.624695 0.573059 0.333679 0.624847 0.572388 0.358917 0.625031 0.571625 0.384613 0.625122 0.570862 0.411377 0.625092 0.570007 0.439728 0.624969 0.569122 0.470062 0.624725 0.568054 0.502625 0.624298 0.566833 0.538666 0.623749 0.565430 0.578735 0.623657 0.564484 0.622345 0.624603 0.564484 0.665649 0.624023 0.563049 0.708466 0.623291 0.561462 0.749725 0.622650 0.559967 0.788055 0.622223 0.558563 0.822571 0.621704 0.557281 0.853577 0.621521 0.556091 0.881317 0.621277 0.554993 0.906158 0.621185 0.554016 0.928467 0.621124 0.553101 0.948578 0.621124 0.552277 0.966949 0.621277 0.551544 0.983765 0.621368 0.550842 0.999390 0.621429 0.550232 1.000000 0.634216 0.566986 0.070557 0.666229 0.578308 0.116943 0.665833 0.577179 0.159271 0.665497 0.576050 0.196686 0.665283 0.575012 0.229767 0.665131 0.574127 0.259277 0.665100 0.573273 0.286499 0.665192 0.572601 0.312134 0.665314 0.571899 0.336975 0.665375 0.571198 0.361938 0.665405 0.570496 0.387421 0.665375 0.569672 0.414062 0.665161 0.568848 0.442383 0.664917 0.567841 0.472809 0.664551 0.566711 0.505554 0.664001 0.565399 0.541748 0.663361 0.563934 0.582031 0.663300 0.563141 0.625488 0.664215 0.563110 0.669800 0.664856 0.562897 0.712189 0.664062 0.561310 0.752899 0.663422 0.559814 0.790710 0.662811 0.558380 0.824707 0.662354 0.557129 0.855255 0.662018 0.555969 0.882599 0.661743 0.554932 0.907074 0.661560 0.553986 0.929169 0.661438 0.553131 0.949097 0.661407 0.552338 0.967285 0.661469 0.551666 0.984009 0.661407 0.551025 0.999481 0.661438 0.550446 1.000000 0.671356 0.567322 0.081696 0.707764 0.577118 0.126709 0.707214 0.575928 0.167389 0.706787 0.574768 0.203461 0.706451 0.573761 0.235291 0.706299 0.572998 0.263855 0.706177 0.572174 0.290344 0.706146 0.571381 0.315430 0.706085 0.570740 0.339935 0.706024 0.570038 0.364532 0.705933 0.569305 0.389954 0.705750 0.568481 0.416626 0.705414 0.567505 0.445068 0.705078 0.566467 0.475555 0.704559 0.565216 0.508484 0.703888 0.563873 0.544830 0.703064 0.562347 0.585266 0.703156 0.561646 0.628540 0.703979 0.561615 0.672699 0.704742 0.561554 0.715851 0.705109 0.561127 0.756104 0.704376 0.559631 0.793274 0.703644 0.558289 0.826752 0.703125 0.557037 0.856842 0.702667 0.555908 0.883789 0.702393 0.554932 0.908020 0.702057 0.554016 0.929779 0.701965 0.553223 0.949585 0.701782 0.552521 0.967560 0.701630 0.551910 0.984161 0.701660 0.551361 0.999512 0.701569 0.550903 1.000000 0.708496 0.567841 0.092438 0.748688 0.575745 0.136017 0.748047 0.574615 0.175171 0.747498 0.573547 0.209686 0.747131 0.572571 0.240295 0.746857 0.571777 0.267914 0.746674 0.571045 0.293701 0.746521 0.570374 0.318268 0.746307 0.569611 0.342468 0.746063 0.568817 0.367035 0.745850 0.567993 0.392487 0.745575 0.567139 0.419189 0.745117 0.566101 0.447815 0.744659 0.564941 0.478455 0.743988 0.563629 0.511475 0.743256 0.562256 0.547913 0.742340 0.560760 0.588409 0.742493 0.560181 0.631470 0.743225 0.560150 0.675232 0.743896 0.560089 0.718353 0.744598 0.560059 0.759033 0.744751 0.559479 0.795624 0.743958 0.558167 0.828644 0.743317 0.557007 0.858337 0.742889 0.555939 0.884918 0.742432 0.555023 0.908844 0.742096 0.554169 0.930420 0.741760 0.553467 0.949982 0.741577 0.552856 0.967804 0.741364 0.552307 0.984283 0.741333 0.551880 0.999573 0.741180 0.551544 1.000000 0.745392 0.568787 0.102570 0.788330 0.574524 0.144592 0.787628 0.573486 0.182129 0.787018 0.572357 0.215179 0.786530 0.571503 0.244629 0.786133 0.570648 0.271423 0.785797 0.569885 0.296600 0.785492 0.569122 0.320953 0.785187 0.568268 0.345032 0.784912 0.567474 0.369568 0.784546 0.566528 0.395020 0.784119 0.565552 0.421875 0.783630 0.564545 0.450562 0.782990 0.563385 0.481293 0.782257 0.562073 0.514404 0.781403 0.560638 0.550903 0.780365 0.559082 0.591522 0.780609 0.558746 0.634338 0.781250 0.558716 0.677704 0.781860 0.558685 0.720337 0.782440 0.558655 0.760925 0.782990 0.558685 0.797913 0.783020 0.558167 0.830414 0.782257 0.557068 0.859680 0.781738 0.556091 0.885925 0.781250 0.555237 0.909607 0.780823 0.554504 0.930939 0.780365 0.553864 0.950348 0.780121 0.553375 0.968079 0.779938 0.552979 0.984436 0.779938 0.552856 0.999634 0.780151 0.552979 1.000000 0.781372 0.570557 0.111969 0.825958 0.573303 0.152313 0.825134 0.572235 0.188263 0.824432 0.571259 0.219910 0.823883 0.570282 0.248444 0.823425 0.569489 0.274719 0.822937 0.568542 0.299591 0.822540 0.567749 0.323700 0.822174 0.566956 0.347687 0.821716 0.566071 0.372192 0.821289 0.565125 0.397644 0.820740 0.564148 0.424591 0.820160 0.563049 0.453308 0.819458 0.561798 0.484100 0.818604 0.560486 0.517365 0.817657 0.559113 0.553833 0.816589 0.557556 0.594482 0.816925 0.557373 0.636993 0.817383 0.557373 0.680023 0.817932 0.557373 0.722137 0.818390 0.557404 0.762299 0.818909 0.557495 0.799194 0.819336 0.557587 0.832062 0.819336 0.557251 0.860931 0.818634 0.556366 0.886871 0.818085 0.555573 0.910248 0.817596 0.554993 0.931396 0.817261 0.554535 0.950653 0.816956 0.554321 0.968353 0.817017 0.554352 0.984528 0.817047 0.554657 0.999603 0.817047 0.554993 1.000000 0.815430 0.572693 0.120270 0.860901 0.572083 0.159088 0.860046 0.571136 0.193634 0.859283 0.570068 0.224365 0.858643 0.569031 0.252289 0.858063 0.568176 0.278046 0.857544 0.567322 0.302582 0.857025 0.566437 0.326385 0.856567 0.565613 0.350372 0.856079 0.564667 0.374817 0.855530 0.563721 0.400269 0.854889 0.562592 0.427246 0.854187 0.561554 0.456055 0.853363 0.560333 0.486877 0.852509 0.559021 0.520172 0.851440 0.557648 0.556671 0.850342 0.556152 0.597290 0.850739 0.556183 0.639526 0.851135 0.556183 0.682129 0.851532 0.556274 0.723785 0.851898 0.556335 0.763275 0.852325 0.556488 0.799835 0.852692 0.556671 0.832733 0.853088 0.556885 0.862000 0.853180 0.556824 0.887665 0.852478 0.556213 0.910919 0.851990 0.555908 0.931976 0.851898 0.555908 0.951019 0.851624 0.556061 0.968445 0.851440 0.556366 0.984558 0.851288 0.556793 0.999573 0.851105 0.557343 1.000000 0.846954 0.575104 0.127655 0.892731 0.571045 0.165344 0.891785 0.569855 0.198792 0.890991 0.568787 0.228790 0.890289 0.567810 0.256042 0.889648 0.566895 0.281342 0.889099 0.566040 0.305542 0.888489 0.565033 0.329193 0.888000 0.564240 0.352997 0.887390 0.563171 0.377441 0.886719 0.562225 0.402924 0.886047 0.561249 0.429901 0.885315 0.560120 0.458771 0.884460 0.558899 0.489655 0.883453 0.557678 0.522919 0.882385 0.556244 0.559509 0.881378 0.555023 0.599976 0.881653 0.555115 0.641876 0.881958 0.555206 0.684021 0.882294 0.555359 0.725189 0.882568 0.555511 0.764282 0.882904 0.555725 0.800293 0.883179 0.556000 0.832825 0.883453 0.556366 0.862244 0.883850 0.556946 0.888641 0.884155 0.557556 0.911560 0.883728 0.557648 0.932343 0.883392 0.557892 0.951233 0.883057 0.558228 0.968506 0.882660 0.558716 0.984528 0.882416 0.559235 0.999481 0.882141 0.559875 1.000000 0.875671 0.577698 0.134888 0.921112 0.569946 0.171478 0.920166 0.568787 0.203949 0.919342 0.567688 0.233124 0.918610 0.566589 0.259705 0.917938 0.565552 0.284637 0.917297 0.564789 0.308563 0.916687 0.563751 0.331970 0.916107 0.562927 0.355682 0.915466 0.561920 0.380066 0.914795 0.560944 0.405548 0.914062 0.559967 0.432526 0.913208 0.558838 0.461365 0.912262 0.557709 0.492249 0.911255 0.556427 0.525574 0.910126 0.555206 0.562195 0.909271 0.554138 0.602448 0.909485 0.554260 0.643951 0.909698 0.554474 0.685699 0.909943 0.554688 0.726440 0.910126 0.554962 0.765137 0.910370 0.555328 0.800812 0.910614 0.555847 0.833282 0.910980 0.556671 0.862335 0.911346 0.557678 0.888397 0.911682 0.558655 0.911896 0.911987 0.559814 0.932465 0.911499 0.560211 0.951233 0.911072 0.560669 0.968445 0.910583 0.561279 0.984497 0.910278 0.561920 0.999451 0.909912 0.562653 1.000000 0.901611 0.580414 0.141998 0.946381 0.568695 0.177460 0.945465 0.567474 0.208954 0.944611 0.566406 0.237366 0.943848 0.565308 0.263397 0.943146 0.564331 0.287842 0.942474 0.563385 0.311493 0.941833 0.562500 0.334747 0.941193 0.561584 0.358307 0.940521 0.560699 0.382599 0.939819 0.559814 0.408051 0.939056 0.558838 0.435059 0.938263 0.557770 0.463928 0.937286 0.556671 0.494720 0.936249 0.555511 0.527985 0.935089 0.554291 0.564636 0.934296 0.553436 0.604584 0.934448 0.553680 0.645874 0.934601 0.553986 0.687103 0.934753 0.554321 0.727783 0.934967 0.554840 0.766388 0.935211 0.555664 0.801544 0.935455 0.556610 0.833252 0.935669 0.557678 0.861908 0.935883 0.558807 0.887695 0.936127 0.559998 0.911041 0.936340 0.561279 0.932312 0.936523 0.562561 0.951202 0.936218 0.563354 0.968445 0.935699 0.564026 0.984436 0.935272 0.564758 0.999390 0.934814 0.565521 1.000000 0.924896 0.583252 0.148865 0.969025 0.567413 0.183167 0.968109 0.566193 0.213745 0.967285 0.565155 0.241455 0.966522 0.564056 0.266907 0.965820 0.563202 0.290985 0.965118 0.562286 0.314301 0.964508 0.561401 0.337402 0.963806 0.560486 0.360840 0.963165 0.559570 0.385071 0.962402 0.558777 0.410461 0.961609 0.557892 0.437439 0.960754 0.556824 0.466217 0.959808 0.555878 0.497040 0.958771 0.554688 0.530212 0.957642 0.553650 0.566772 0.956848 0.553009 0.606445 0.957001 0.553375 0.647736 0.957153 0.553894 0.689148 0.957306 0.554718 0.729279 0.957489 0.555664 0.766998 0.957611 0.556702 0.801514 0.957733 0.557831 0.832855 0.957886 0.559052 0.861237 0.958008 0.560303 0.886902 0.958160 0.561646 0.910156 0.958282 0.562988 0.931427 0.958435 0.564392 0.950867 0.958557 0.565826 0.968414 0.958344 0.566925 0.984406 0.957825 0.567657 0.999329 0.957336 0.568420 1.000000 0.946136 0.586426 0.155457 0.989441 0.566162 0.188660 0.988525 0.565094 0.218353 0.987732 0.564026 0.245331 0.987000 0.563080 0.270294 0.986298 0.562012 0.294006 0.985626 0.561249 0.317017 0.984985 0.560333 0.339935 0.984314 0.559540 0.363220 0.983612 0.558685 0.387390 0.982880 0.557831 0.412689 0.982086 0.557129 0.439606 0.981232 0.556152 0.468323 0.980286 0.555237 0.499023 0.979248 0.554352 0.532135 0.978119 0.553253 0.568970 0.977478 0.552979 0.609039 0.977600 0.553802 0.649811 0.977661 0.554749 0.690430 0.977722 0.555756 0.729797 0.977844 0.556915 0.766937 0.977875 0.558105 0.801056 0.977966 0.559357 0.832123 0.978027 0.560730 0.860443 0.978088 0.562042 0.886047 0.978149 0.563507 0.909363 0.978210 0.565002 0.930634 0.978271 0.566406 0.950165 0.978333 0.567841 0.968018 0.978455 0.569366 0.984436 0.978302 0.570862 0.999298 0.977783 0.572205 1.000000 0.965668 0.590485 0.173187 1.000000 0.565582 0.203857 1.000000 0.564728 0.231537 1.000000 0.563843 0.256775 1.000000 0.563141 0.280182 1.000000 0.562286 0.302521 1.000000 0.561493 0.324371 1.000000 0.560730 0.346130 1.000000 0.559967 0.368408 1.000000 0.559113 0.391479 1.000000 0.558167 0.415771 1.000000 0.557098 0.441559 1.000000 0.555695 0.470154 0.999115 0.554932 0.500977 0.998047 0.554138 0.534668 0.996979 0.553589 0.571411 0.996399 0.553833 0.610748 0.996399 0.554901 0.650726 0.996429 0.556030 0.690704 0.996429 0.557220 0.729553 0.996460 0.558472 0.766357 0.996460 0.559845 0.800385 0.996460 0.561218 0.831451 0.996460 0.562622 0.859589 0.996460 0.564026 0.885345 0.996460 0.565521 0.908661 0.996490 0.566986 0.929993 0.996490 0.568451 0.949524 0.996521 0.570221 0.967407 0.996552 0.572296 0.983948 0.996582 0.574432 0.999207 0.996460 0.576630 1.000000 0.983521 0.594910 0.204041 1.000000 0.566711 0.233368 1.000000 0.566589 0.259857 1.000000 0.566742 0.284088 1.000000 0.566711 0.306671 1.000000 0.566803 0.328339 1.000000 0.566925 0.349579 1.000000 0.567078 0.370850 1.000000 0.567169 0.392578 1.000000 0.567383 0.415161 1.000000 0.567749 0.438965 1.000000 0.568024 0.464478 1.000000 0.568604 0.492065 1.000000 0.569305 0.521698 1.000000 0.570221 0.554108 1.000000 0.571320 0.588684 1.000000 0.572357 0.624847 1.000000 0.573517 0.661621 1.000000 0.574768 0.698395 1.000000 0.576050 0.734222 1.000000 0.577423 0.768280 1.000000 0.578766 0.799744 1.000000 0.580231 0.828491 1.000000 0.581635 0.854797 1.000000 0.583069 0.878723 1.000000 0.584503 0.900604 1.000000 0.586243 0.920593 1.000000 0.588196 0.938995 1.000000 0.590332 0.955841 1.000000 0.592590 0.971497 1.000000 0.594788 0.986145 1.000000 0.597015 1.000000 1.000000 0.598755 0.000000 0.012634 0.564667 0.032715 0.000000 0.580109 0.080383 0.003723 0.582642 0.125427 0.007538 0.584717 0.166779 0.011139 0.586548 0.204102 0.013397 0.587616 0.236969 0.015045 0.588409 0.266571 0.016663 0.589203 0.294037 0.018188 0.589966 0.320007 0.019684 0.590698 0.345520 0.021179 0.591431 0.371246 0.022675 0.592102 0.397766 0.024170 0.592804 0.425598 0.025665 0.593445 0.455505 0.027100 0.594086 0.487915 0.028656 0.594666 0.523834 0.030243 0.595276 0.564819 0.031799 0.595825 0.609589 0.032837 0.595886 0.655975 0.032501 0.594757 0.703735 0.032013 0.593445 0.750763 0.031799 0.592255 0.795105 0.031769 0.591034 0.835144 0.031952 0.590149 0.870636 0.032379 0.589111 0.901825 0.032745 0.588287 0.929321 0.033356 0.587585 0.953644 0.034088 0.586945 0.975250 0.034912 0.586212 0.994629 0.036011 0.585571 1.000000 0.055756 0.583618 1.000000 0.082458 0.581848 0.000000 0.051361 0.571014 0.033234 0.041138 0.583801 0.080658 0.044281 0.585449 0.125336 0.046417 0.586517 0.166107 0.048004 0.587280 0.202698 0.049530 0.588135 0.235474 0.051025 0.588837 0.265015 0.052460 0.589600 0.292511 0.053894 0.590332 0.318695 0.055267 0.591003 0.344360 0.056732 0.591736 0.369965 0.058105 0.592316 0.396484 0.059540 0.592987 0.424438 0.061005 0.593597 0.454376 0.062469 0.594177 0.486786 0.063965 0.594788 0.522644 0.065552 0.595398 0.563812 0.067139 0.595856 0.609161 0.068237 0.595947 0.656128 0.067902 0.594635 0.704071 0.067596 0.593353 0.751251 0.067413 0.592102 0.795593 0.067444 0.590942 0.835419 0.067383 0.589752 0.870667 0.067627 0.588837 0.901703 0.068085 0.587891 0.929047 0.068726 0.587189 0.953217 0.069519 0.586456 0.974731 0.070435 0.585876 0.993988 0.071472 0.585266 1.000000 0.089813 0.583649 1.000000 0.115814 0.582489 0.000000 0.089172 0.576782 0.034882 0.080627 0.586884 0.080078 0.080505 0.586212 0.124023 0.081848 0.587006 0.164520 0.083252 0.587738 0.201050 0.084686 0.588501 0.233948 0.085999 0.589233 0.263641 0.087372 0.589905 0.291199 0.088715 0.590607 0.317474 0.090057 0.591248 0.343018 0.091370 0.591919 0.368744 0.092773 0.592529 0.395386 0.094177 0.593109 0.423218 0.095642 0.593719 0.453186 0.097046 0.594269 0.485870 0.098602 0.594788 0.522308 0.100220 0.595367 0.564026 0.101837 0.595856 0.609772 0.102936 0.595825 0.657074 0.102692 0.594574 0.705231 0.102417 0.593231 0.752258 0.102081 0.591797 0.796326 0.101929 0.590546 0.835968 0.101959 0.589355 0.870972 0.102264 0.588379 0.901794 0.102692 0.587463 0.928955 0.103394 0.586700 0.952881 0.104279 0.586029 0.974213 0.105164 0.585510 0.993378 0.106201 0.584747 1.000000 0.123077 0.583801 1.000000 0.148376 0.583221 0.000000 0.124084 0.579529 0.035065 0.116669 0.588531 0.079895 0.116455 0.587860 0.122192 0.116333 0.587372 0.162811 0.117645 0.588135 0.199707 0.118896 0.588837 0.232574 0.120178 0.589478 0.262360 0.121399 0.590179 0.290009 0.122711 0.590759 0.316223 0.124054 0.591431 0.341827 0.125336 0.592010 0.367554 0.126678 0.592590 0.394135 0.128113 0.593170 0.422211 0.129547 0.593750 0.452759 0.131073 0.594299 0.485962 0.132599 0.594788 0.522919 0.134247 0.595306 0.565186 0.135956 0.595764 0.611267 0.137054 0.595703 0.658630 0.136597 0.594238 0.706726 0.136078 0.592773 0.753723 0.135834 0.591522 0.797546 0.135712 0.590149 0.836823 0.135834 0.588989 0.871521 0.136139 0.588013 0.902039 0.136658 0.587036 0.928925 0.137329 0.586334 0.952637 0.138184 0.585510 0.973785 0.139038 0.584991 0.992767 0.140045 0.584381 1.000000 0.155518 0.583649 1.000000 0.180145 0.583862 0.000000 0.158020 0.580963 0.034515 0.151764 0.590118 0.079407 0.151337 0.589355 0.121887 0.150970 0.588684 0.161499 0.151093 0.588409 0.198334 0.152252 0.589081 0.231232 0.153503 0.589722 0.261108 0.154694 0.590363 0.288757 0.155914 0.590942 0.314941 0.157227 0.591522 0.340546 0.158508 0.592102 0.366425 0.159912 0.592651 0.393524 0.161346 0.593170 0.422241 0.162811 0.593719 0.453278 0.164337 0.594238 0.486938 0.165955 0.594727 0.524445 0.167694 0.595245 0.567108 0.169098 0.595612 0.613220 0.169922 0.595276 0.660675 0.169434 0.593872 0.708801 0.169067 0.592407 0.755585 0.168884 0.591034 0.799103 0.168762 0.589691 0.837952 0.168915 0.588440 0.872284 0.169281 0.587616 0.902374 0.169769 0.586639 0.928955 0.170410 0.585938 0.952454 0.171234 0.585114 0.973358 0.172028 0.584503 0.992188 0.172943 0.583862 1.000000 0.187012 0.583618 1.000000 0.210999 0.584473 0.000000 0.191040 0.582123 0.034332 0.185822 0.591614 0.079315 0.185272 0.590851 0.121826 0.184906 0.590118 0.161072 0.184509 0.589447 0.197021 0.184845 0.589294 0.229950 0.185974 0.589844 0.259888 0.187195 0.590485 0.287506 0.188416 0.591064 0.313843 0.189697 0.591583 0.340057 0.191071 0.592133 0.366425 0.192444 0.592621 0.393921 0.193909 0.593170 0.423096 0.195435 0.593689 0.454590 0.197052 0.594177 0.488556 0.198395 0.594543 0.526367 0.199890 0.594910 0.569458 0.201355 0.595276 0.615814 0.202057 0.594818 0.663452 0.201630 0.593384 0.711487 0.201294 0.591919 0.757904 0.201141 0.590454 0.800934 0.201019 0.589264 0.839294 0.201202 0.588135 0.873138 0.201477 0.587158 0.902863 0.201965 0.586151 0.929047 0.202576 0.585358 0.952301 0.203308 0.584656 0.972961 0.204071 0.583984 0.991608 0.204865 0.583405 1.000000 0.217590 0.583405 1.000000 0.240875 0.584869 0.000000 0.222931 0.583466 0.034271 0.218781 0.593018 0.079285 0.218384 0.592224 0.121765 0.217834 0.591461 0.161011 0.217590 0.590729 0.196533 0.217316 0.590088 0.228760 0.217743 0.589996 0.258667 0.218964 0.590485 0.286987 0.220215 0.591064 0.313904 0.221527 0.591583 0.340424 0.222900 0.592102 0.367249 0.224304 0.592621 0.395172 0.225800 0.593109 0.424530 0.227142 0.593506 0.456177 0.228485 0.593872 0.490692 0.229919 0.594269 0.529083 0.231384 0.594574 0.572601 0.232880 0.594910 0.619110 0.233429 0.594299 0.666687 0.233032 0.592865 0.714539 0.232697 0.591400 0.760498 0.232513 0.589996 0.803009 0.232422 0.588623 0.840759 0.232574 0.587463 0.874115 0.232910 0.586609 0.903381 0.233246 0.585663 0.929230 0.233826 0.584778 0.952118 0.234436 0.584045 0.972626 0.235168 0.583435 0.991058 0.235901 0.582733 1.000000 0.247345 0.583130 1.000000 0.269928 0.585358 0.000000 0.253998 0.584808 0.034241 0.251068 0.594360 0.079224 0.250519 0.593506 0.121674 0.250092 0.592712 0.160950 0.249817 0.591949 0.196594 0.249664 0.591309 0.229034 0.249634 0.590698 0.258942 0.250031 0.590546 0.287506 0.251312 0.591064 0.314758 0.252716 0.591583 0.341675 0.254150 0.592072 0.368683 0.255341 0.592468 0.396667 0.256683 0.592865 0.426453 0.257996 0.593170 0.458618 0.259369 0.593536 0.493561 0.260834 0.593903 0.532379 0.262268 0.594269 0.576416 0.263763 0.594513 0.622864 0.264160 0.593719 0.670380 0.263763 0.592163 0.717865 0.263489 0.590790 0.763397 0.263245 0.589325 0.805145 0.263153 0.588074 0.842316 0.263275 0.587006 0.875061 0.263550 0.585938 0.903900 0.263916 0.585022 0.929413 0.264374 0.584229 0.951965 0.264954 0.583527 0.972198 0.265533 0.582916 0.990448 0.266205 0.582214 1.000000 0.276398 0.582916 1.000000 0.298309 0.585938 0.000000 0.284454 0.585999 0.034149 0.282745 0.595642 0.079163 0.282135 0.594727 0.121704 0.281891 0.593933 0.161957 0.281494 0.593109 0.198456 0.281342 0.592377 0.231171 0.281403 0.591797 0.260986 0.281616 0.591248 0.289001 0.282166 0.591003 0.316315 0.283386 0.591400 0.343201 0.284576 0.591797 0.370544 0.285828 0.592163 0.398926 0.287170 0.592529 0.428986 0.288513 0.592865 0.461639 0.289886 0.593170 0.496857 0.291382 0.593506 0.536285 0.292786 0.593811 0.580688 0.294312 0.594116 0.627014 0.294464 0.593170 0.674347 0.294098 0.591644 0.721405 0.293793 0.590240 0.766327 0.293610 0.588745 0.807373 0.293457 0.587524 0.843842 0.293610 0.586243 0.876038 0.293823 0.585419 0.904419 0.294098 0.584412 0.929504 0.294525 0.583588 0.951782 0.294983 0.582825 0.971832 0.295563 0.582184 0.989868 0.296082 0.581604 1.000000 0.305084 0.582489 1.000000 0.326294 0.586304 0.000000 0.314636 0.587219 0.034149 0.314117 0.596832 0.080414 0.313538 0.595856 0.124176 0.313263 0.594971 0.164886 0.313049 0.594147 0.201538 0.312927 0.593384 0.234467 0.312988 0.592773 0.264160 0.313110 0.592102 0.291748 0.313232 0.591492 0.318359 0.313629 0.591095 0.345428 0.314911 0.591431 0.372986 0.316193 0.591797 0.401703 0.317566 0.592133 0.432190 0.318939 0.592468 0.465027 0.320312 0.592773 0.500702 0.321747 0.593079 0.540619 0.323181 0.593384 0.585236 0.324615 0.593658 0.631439 0.324615 0.592529 0.678497 0.324219 0.590912 0.725037 0.323975 0.589508 0.769287 0.323730 0.588074 0.809540 0.323608 0.586792 0.845337 0.323700 0.585663 0.876923 0.323853 0.584625 0.904846 0.324127 0.583771 0.929535 0.324524 0.583008 0.951569 0.324860 0.582245 0.971313 0.325317 0.581482 0.989258 0.325806 0.580872 1.000000 0.333527 0.581848 1.000000 0.354156 0.586670 0.000000 0.344971 0.589508 0.037140 0.345398 0.597900 0.084015 0.344971 0.596893 0.128265 0.344727 0.595947 0.169220 0.344543 0.595062 0.205597 0.344360 0.594238 0.238159 0.344391 0.593445 0.267792 0.344513 0.592804 0.295380 0.344666 0.592163 0.321930 0.344971 0.591583 0.348206 0.345367 0.591034 0.376007 0.346710 0.591370 0.404938 0.348083 0.591736 0.435699 0.349396 0.591980 0.468903 0.350800 0.592316 0.504913 0.352234 0.592560 0.545349 0.353607 0.592865 0.590149 0.355072 0.593109 0.636017 0.354828 0.591736 0.682587 0.354431 0.590179 0.728607 0.354126 0.588715 0.772034 0.353882 0.587280 0.811584 0.353790 0.586121 0.846680 0.353851 0.584991 0.877686 0.353973 0.583984 0.905151 0.354187 0.583069 0.929504 0.354492 0.582184 0.951263 0.354797 0.581421 0.970764 0.355133 0.580780 0.988586 0.355499 0.580048 1.000000 0.362091 0.581207 1.000000 0.382080 0.586914 0.000000 0.376373 0.593842 0.042084 0.377045 0.598846 0.089508 0.376801 0.597778 0.133698 0.376373 0.596741 0.174164 0.376099 0.595734 0.210358 0.375977 0.594910 0.242737 0.375977 0.594116 0.272156 0.376160 0.593414 0.299652 0.376434 0.592773 0.326141 0.376770 0.592133 0.352417 0.377106 0.591522 0.379333 0.377502 0.590881 0.408600 0.378876 0.591187 0.439575 0.380188 0.591461 0.473053 0.381592 0.591766 0.509460 0.382965 0.592010 0.550171 0.384308 0.592255 0.594940 0.385620 0.592407 0.640442 0.385223 0.590851 0.686707 0.384857 0.589355 0.732025 0.384552 0.587952 0.774689 0.384308 0.586517 0.813446 0.384216 0.585236 0.847870 0.384155 0.584137 0.878326 0.384247 0.583160 0.905365 0.384399 0.582306 0.929352 0.384583 0.581421 0.950836 0.384857 0.580688 0.970215 0.385132 0.579834 0.987854 0.385437 0.579193 1.000000 0.390839 0.580200 1.000000 0.410309 0.586914 0.000000 0.409363 0.599976 0.048615 0.408997 0.599609 0.095825 0.408569 0.598450 0.139954 0.408234 0.597351 0.180237 0.408020 0.596344 0.215942 0.407990 0.595490 0.247894 0.408112 0.594666 0.276978 0.408325 0.594025 0.304352 0.408691 0.593353 0.330750 0.408997 0.592682 0.357056 0.409393 0.592041 0.384003 0.409729 0.591278 0.412384 0.410126 0.590576 0.443634 0.411407 0.590851 0.477356 0.412750 0.591125 0.514008 0.414093 0.591370 0.555054 0.415436 0.591614 0.599579 0.416443 0.591522 0.644775 0.416046 0.590027 0.690552 0.415680 0.588409 0.735199 0.415344 0.587006 0.777069 0.415039 0.585663 0.815094 0.414917 0.584381 0.848816 0.414856 0.583282 0.878723 0.414856 0.582245 0.905334 0.414948 0.581299 0.929016 0.415070 0.580505 0.950378 0.415283 0.579620 0.969574 0.415588 0.578888 0.987122 0.415833 0.577942 1.000000 0.420074 0.578918 1.000000 0.438965 0.586945 0.006439 0.441895 0.601410 0.056305 0.441437 0.600220 0.103455 0.440918 0.598969 0.147400 0.440796 0.597900 0.187103 0.440735 0.596893 0.222168 0.440704 0.595978 0.253601 0.440887 0.595215 0.282349 0.441101 0.594513 0.309387 0.441467 0.593842 0.335693 0.441925 0.593170 0.361908 0.442169 0.592499 0.388977 0.442535 0.591766 0.417419 0.442810 0.590912 0.447876 0.443146 0.590149 0.481781 0.444427 0.590393 0.518616 0.445740 0.590576 0.559875 0.446991 0.590820 0.604095 0.447754 0.590485 0.648895 0.447327 0.589020 0.694092 0.446991 0.587463 0.738007 0.446564 0.586029 0.779053 0.446289 0.584747 0.816254 0.446075 0.583496 0.849487 0.445953 0.582306 0.878937 0.445923 0.581238 0.905273 0.446014 0.580292 0.928741 0.446136 0.579437 0.949829 0.446289 0.578491 0.968903 0.446533 0.577606 0.986267 0.446747 0.576752 1.000000 0.449829 0.577545 1.000000 0.468170 0.586884 0.015503 0.474884 0.601929 0.065399 0.474579 0.600677 0.112335 0.474274 0.599487 0.155640 0.473969 0.598358 0.194519 0.473999 0.597321 0.228912 0.474152 0.596497 0.259705 0.474365 0.595734 0.287903 0.474640 0.594971 0.314667 0.475006 0.594299 0.340759 0.475372 0.593628 0.366943 0.475677 0.592926 0.394012 0.476044 0.592163 0.422577 0.476288 0.591278 0.452942 0.476379 0.590302 0.486053 0.476776 0.589569 0.523102 0.477936 0.589783 0.564423 0.479156 0.589966 0.608215 0.479706 0.589478 0.652588 0.479218 0.587952 0.697113 0.478851 0.586426 0.740295 0.478455 0.585022 0.780670 0.478058 0.583618 0.817322 0.477814 0.582306 0.850006 0.477722 0.581207 0.879120 0.477631 0.580139 0.905121 0.477692 0.579010 0.928345 0.477814 0.578064 0.949249 0.477966 0.577118 0.968201 0.478180 0.576294 0.985474 0.478363 0.575378 1.000000 0.480225 0.575684 1.000000 0.498016 0.586914 0.026031 0.508942 0.602356 0.075623 0.508606 0.601105 0.122070 0.508270 0.599884 0.164612 0.508179 0.598785 0.202362 0.508148 0.597748 0.235840 0.508392 0.596893 0.265930 0.508667 0.596161 0.293640 0.508911 0.595398 0.320038 0.509308 0.594727 0.345947 0.509705 0.594025 0.372070 0.510010 0.593292 0.399109 0.510376 0.592499 0.427704 0.510529 0.591644 0.458130 0.510620 0.590607 0.490936 0.510529 0.589447 0.527283 0.510956 0.588867 0.568604 0.512115 0.589020 0.611877 0.512390 0.588318 0.655762 0.511902 0.586761 0.699738 0.511383 0.585266 0.742340 0.510956 0.583771 0.782166 0.510590 0.582397 0.818237 0.510345 0.581085 0.850464 0.510193 0.579834 0.879242 0.510162 0.578674 0.904877 0.510162 0.577637 0.927887 0.510223 0.576630 0.948578 0.510345 0.575745 0.967346 0.510529 0.574799 0.984528 0.510681 0.573944 1.000000 0.511383 0.573608 1.000000 0.529327 0.586823 0.037659 0.545532 0.602722 0.086761 0.545227 0.601440 0.132294 0.545074 0.600250 0.173828 0.544922 0.599121 0.210419 0.545044 0.598175 0.242889 0.545166 0.597290 0.272217 0.545471 0.596558 0.299377 0.545746 0.595795 0.325439 0.546143 0.595123 0.351105 0.546539 0.594391 0.377106 0.546783 0.593628 0.404114 0.546997 0.592834 0.432678 0.547150 0.591919 0.463104 0.547119 0.590851 0.495880 0.546997 0.589722 0.531708 0.546661 0.588409 0.572205 0.547241 0.587982 0.615021 0.547272 0.587067 0.658539 0.546661 0.585480 0.702118 0.546112 0.583984 0.744263 0.545624 0.582428 0.783508 0.545197 0.580963 0.819061 0.544891 0.579620 0.850861 0.544708 0.578339 0.879242 0.544617 0.577240 0.904602 0.544586 0.576172 0.927338 0.544586 0.575165 0.947845 0.544708 0.574310 0.966492 0.544800 0.573425 0.983612 0.544983 0.572571 0.999390 0.545197 0.571808 1.000000 0.562866 0.586914 0.050018 0.584961 0.603027 0.098389 0.584625 0.601746 0.142883 0.584381 0.600525 0.183136 0.584381 0.599426 0.218445 0.584351 0.598511 0.249878 0.584595 0.597626 0.278473 0.584839 0.596924 0.305115 0.585083 0.596130 0.330750 0.585419 0.595459 0.356171 0.585693 0.594727 0.382019 0.585907 0.593964 0.408936 0.586029 0.593109 0.437408 0.586090 0.592194 0.467743 0.585968 0.591095 0.500397 0.585693 0.589935 0.536224 0.585236 0.588593 0.575867 0.584717 0.587158 0.618073 0.584198 0.585693 0.661255 0.583557 0.584076 0.704498 0.582977 0.582458 0.746124 0.582428 0.580963 0.784912 0.581970 0.579498 0.819946 0.581604 0.578186 0.851349 0.581421 0.576996 0.879364 0.581238 0.575867 0.904480 0.581207 0.574860 0.927063 0.581268 0.573944 0.947418 0.581299 0.573059 0.965912 0.581451 0.572235 0.982910 0.581573 0.571472 0.998657 0.581757 0.570770 1.000000 0.598114 0.586975 0.061890 0.625549 0.602356 0.109039 0.625122 0.601013 0.152405 0.624817 0.599884 0.191193 0.624695 0.598724 0.225220 0.624664 0.597809 0.255676 0.624756 0.596954 0.283417 0.624939 0.596100 0.309418 0.625061 0.595337 0.334656 0.625275 0.594635 0.359802 0.625397 0.593842 0.385437 0.625488 0.593048 0.412231 0.625488 0.592102 0.440430 0.625305 0.591125 0.470795 0.625061 0.590027 0.503418 0.624664 0.588715 0.539459 0.624054 0.587250 0.579071 0.623413 0.585754 0.622437 0.624115 0.585480 0.665558 0.623474 0.583954 0.708282 0.622772 0.582336 0.749481 0.622131 0.580811 0.787659 0.621643 0.579376 0.822174 0.621216 0.578033 0.853058 0.620941 0.576874 0.880676 0.620728 0.575806 0.905518 0.620636 0.574799 0.927826 0.620636 0.573883 0.947937 0.620697 0.573029 0.966278 0.620758 0.572266 0.983124 0.620880 0.571564 0.998718 0.620850 0.570892 1.000000 0.634583 0.587158 0.073059 0.666626 0.601044 0.119049 0.666168 0.599640 0.161072 0.665802 0.598511 0.198334 0.665619 0.597473 0.231049 0.665527 0.596527 0.260529 0.665527 0.595642 0.287537 0.665588 0.594849 0.313019 0.665649 0.594086 0.337860 0.665680 0.593384 0.362732 0.665771 0.592529 0.388184 0.665680 0.591797 0.414825 0.665558 0.590790 0.443146 0.665222 0.589783 0.473541 0.664856 0.588593 0.506348 0.664276 0.587189 0.542542 0.663635 0.585724 0.582184 0.662811 0.584106 0.625519 0.663666 0.584015 0.669708 0.664337 0.583801 0.712036 0.663513 0.582184 0.752686 0.662842 0.580658 0.790344 0.662231 0.579254 0.824249 0.661774 0.577972 0.854706 0.661407 0.576752 0.881989 0.661102 0.575714 0.906433 0.660950 0.574738 0.928497 0.660828 0.573883 0.948395 0.660797 0.573090 0.966614 0.660828 0.572357 0.983307 0.660797 0.571777 0.998810 0.660889 0.571198 1.000000 0.671600 0.587494 0.084076 0.708099 0.599579 0.128754 0.707489 0.598389 0.169250 0.707092 0.597137 0.205017 0.706848 0.596161 0.236511 0.706604 0.595245 0.265015 0.706512 0.594391 0.291290 0.706421 0.593628 0.316223 0.706421 0.592834 0.340668 0.706299 0.592072 0.365234 0.706177 0.591248 0.390625 0.705994 0.590363 0.417358 0.705750 0.589386 0.445831 0.705322 0.588318 0.476410 0.704834 0.587067 0.509308 0.704132 0.585602 0.545654 0.703339 0.584076 0.585297 0.702606 0.582550 0.628448 0.703369 0.582520 0.672546 0.704163 0.582458 0.715698 0.704529 0.582031 0.755737 0.703705 0.580505 0.792786 0.703064 0.579132 0.826294 0.702515 0.577850 0.856293 0.702057 0.576721 0.883209 0.701721 0.575714 0.907379 0.701508 0.574799 0.929108 0.701263 0.573975 0.948883 0.701172 0.573273 0.966888 0.701080 0.572632 0.983490 0.701019 0.572052 0.998871 0.700958 0.571564 1.000000 0.708679 0.587982 0.094757 0.748932 0.598145 0.137939 0.748352 0.597015 0.176819 0.747803 0.595856 0.211090 0.747467 0.594757 0.241394 0.747131 0.593964 0.268951 0.746948 0.593140 0.294556 0.746765 0.592285 0.319000 0.746552 0.591553 0.343201 0.746338 0.590729 0.367706 0.746094 0.589905 0.393158 0.745758 0.588898 0.420013 0.745422 0.587860 0.448547 0.744904 0.586700 0.479218 0.744263 0.585419 0.512268 0.743469 0.583984 0.548706 0.742584 0.582428 0.588440 0.741943 0.581085 0.631470 0.742615 0.581024 0.675049 0.743256 0.580994 0.718140 0.743958 0.580933 0.758636 0.744080 0.580383 0.795227 0.743347 0.579041 0.828156 0.742706 0.577820 0.857727 0.742218 0.576752 0.884308 0.741760 0.575806 0.908173 0.741394 0.574951 0.929718 0.741119 0.574249 0.949310 0.740936 0.573578 0.967163 0.740723 0.573029 0.983643 0.740662 0.572571 0.998932 0.740509 0.572174 1.000000 0.745697 0.588959 0.104767 0.788513 0.596771 0.146332 0.787842 0.595551 0.183655 0.787201 0.594482 0.216461 0.786774 0.593475 0.245605 0.786377 0.592682 0.272308 0.786072 0.591858 0.297424 0.785675 0.591064 0.321686 0.785400 0.590179 0.345825 0.785095 0.589355 0.370300 0.784698 0.588440 0.395752 0.784302 0.587433 0.422699 0.783844 0.586273 0.451294 0.783173 0.585114 0.482056 0.782471 0.583771 0.515228 0.781586 0.582336 0.551697 0.780609 0.580780 0.591553 0.780029 0.579620 0.634277 0.780579 0.579559 0.677429 0.781189 0.579529 0.720032 0.781769 0.579529 0.760559 0.782318 0.579529 0.797363 0.782318 0.579041 0.829926 0.781708 0.577881 0.859039 0.781006 0.576874 0.885315 0.780518 0.576050 0.908936 0.780212 0.575256 0.930267 0.779755 0.574585 0.949646 0.779541 0.574066 0.967377 0.779205 0.573608 0.983765 0.779419 0.573517 0.998962 0.779633 0.573639 1.000000 0.781677 0.590515 0.113922 0.826141 0.595428 0.153900 0.825348 0.594299 0.189545 0.824615 0.593201 0.221069 0.824066 0.592346 0.249420 0.823547 0.591339 0.275635 0.823120 0.590546 0.300323 0.822723 0.589600 0.324432 0.822327 0.588806 0.348450 0.821960 0.587860 0.372864 0.821442 0.586945 0.398376 0.820923 0.585876 0.425354 0.820343 0.584808 0.454010 0.819580 0.583527 0.484863 0.818726 0.582184 0.518127 0.817810 0.580780 0.554596 0.816742 0.579224 0.594452 0.816193 0.578247 0.636810 0.816742 0.578217 0.679749 0.817200 0.578247 0.721802 0.817657 0.578278 0.761871 0.818176 0.578339 0.798645 0.818634 0.578400 0.831482 0.818604 0.578094 0.860321 0.817993 0.577179 0.886230 0.817413 0.576385 0.909576 0.816925 0.575745 0.930756 0.816437 0.575165 0.950012 0.816345 0.575012 0.967621 0.816467 0.575043 0.983887 0.816437 0.575134 0.998962 0.816467 0.575439 1.000000 0.815582 0.592468 0.122070 0.861053 0.594299 0.160431 0.860199 0.593018 0.194824 0.859375 0.592010 0.225403 0.858734 0.591034 0.253204 0.858185 0.590149 0.278931 0.857635 0.589233 0.303345 0.857178 0.588226 0.327179 0.856659 0.587372 0.351105 0.856232 0.586456 0.375488 0.855621 0.585388 0.401001 0.855072 0.584412 0.428009 0.854340 0.583191 0.456757 0.853516 0.582031 0.487701 0.852600 0.580627 0.520844 0.851562 0.579254 0.557404 0.850433 0.577789 0.597229 0.850037 0.576996 0.639282 0.850403 0.577026 0.681854 0.850830 0.577087 0.723419 0.851227 0.577179 0.762848 0.851593 0.577301 0.799316 0.851990 0.577515 0.832123 0.852356 0.577698 0.861328 0.852417 0.577606 0.886993 0.851746 0.576965 0.910278 0.851501 0.576691 0.931244 0.851227 0.576630 0.950317 0.851044 0.576630 0.967773 0.850800 0.576782 0.983917 0.850739 0.577148 0.998901 0.850525 0.577545 1.000000 0.847168 0.594574 0.129272 0.892822 0.593048 0.166656 0.891876 0.591827 0.200073 0.891083 0.590668 0.229797 0.890350 0.589630 0.256958 0.889740 0.588806 0.282227 0.889191 0.587830 0.306305 0.888611 0.586823 0.329956 0.888092 0.585938 0.353729 0.887482 0.584991 0.378113 0.886871 0.584015 0.403656 0.886169 0.582977 0.430634 0.885376 0.581787 0.459412 0.884521 0.580597 0.490356 0.883545 0.579346 0.523590 0.882477 0.577881 0.560059 0.881287 0.576477 0.599884 0.880920 0.575897 0.641632 0.881287 0.576019 0.683716 0.881592 0.576141 0.724762 0.881836 0.576324 0.763855 0.882172 0.576538 0.799683 0.882477 0.576752 0.832184 0.882721 0.577087 0.861633 0.883240 0.577698 0.887970 0.883484 0.578339 0.910889 0.883087 0.578247 0.931610 0.882721 0.578369 0.950470 0.882416 0.578583 0.967773 0.882080 0.578918 0.983887 0.881836 0.579346 0.998871 0.881592 0.579834 1.000000 0.875854 0.596924 0.136353 0.921173 0.591827 0.172791 0.920197 0.590546 0.205109 0.919373 0.589386 0.234100 0.918671 0.588409 0.260620 0.917999 0.587341 0.285492 0.917358 0.586517 0.309265 0.916748 0.585510 0.332733 0.916138 0.584595 0.356415 0.915527 0.583649 0.380707 0.914856 0.582733 0.406219 0.914093 0.581665 0.433197 0.913269 0.580505 0.462036 0.912323 0.579407 0.492950 0.911316 0.578156 0.526184 0.910217 0.576721 0.562531 0.909027 0.575409 0.602234 0.908752 0.575073 0.643677 0.908997 0.575226 0.685333 0.909210 0.575470 0.725983 0.909424 0.575714 0.764465 0.909637 0.576050 0.800415 0.909973 0.576630 0.832703 0.910339 0.577423 0.861603 0.910706 0.578247 0.887634 0.911011 0.579193 0.911224 0.911346 0.580200 0.931763 0.910889 0.580444 0.950500 0.910370 0.580811 0.967804 0.910065 0.581238 0.983856 0.909698 0.581757 0.998810 0.909302 0.582275 1.000000 0.901703 0.599396 0.143433 0.946411 0.590515 0.178711 0.945465 0.589294 0.210083 0.944641 0.588104 0.238281 0.943878 0.587158 0.264252 0.943176 0.586182 0.288696 0.942535 0.585114 0.312195 0.941895 0.584351 0.335449 0.941254 0.583374 0.359009 0.940582 0.582489 0.383270 0.939850 0.581451 0.408722 0.939148 0.580536 0.435699 0.938263 0.579468 0.464508 0.937347 0.578339 0.495361 0.936279 0.577118 0.528625 0.935120 0.575836 0.564850 0.933929 0.574554 0.604309 0.933746 0.574402 0.645416 0.933899 0.574677 0.686737 0.934082 0.575043 0.727509 0.934296 0.575623 0.765900 0.934540 0.576385 0.800964 0.934784 0.577240 0.832520 0.935028 0.578125 0.861084 0.935242 0.579163 0.886932 0.935455 0.580261 0.910370 0.935669 0.581390 0.931641 0.935944 0.582550 0.950500 0.935608 0.583160 0.967743 0.935089 0.583679 0.983765 0.934631 0.584229 0.998749 0.934204 0.584869 1.000000 0.924988 0.601898 0.150208 0.969025 0.589172 0.184418 0.968109 0.588043 0.214905 0.967285 0.586914 0.242340 0.966522 0.585846 0.267761 0.965851 0.584961 0.291779 0.965179 0.583923 0.315002 0.964508 0.583069 0.338074 0.963837 0.582275 0.361450 0.963135 0.581360 0.385681 0.962402 0.580383 0.411102 0.961639 0.579529 0.438019 0.960754 0.578430 0.466827 0.959808 0.577454 0.497589 0.958771 0.576324 0.530731 0.957642 0.575165 0.566803 0.956421 0.574005 0.606110 0.956268 0.574066 0.647522 0.956451 0.574615 0.688782 0.956635 0.575409 0.728790 0.956787 0.576233 0.766357 0.956940 0.577179 0.800842 0.957062 0.578217 0.832062 0.957214 0.579285 0.860413 0.957336 0.580383 0.886169 0.957489 0.581604 0.909485 0.957672 0.582825 0.930756 0.957794 0.584076 0.950226 0.957916 0.585419 0.967773 0.957703 0.586182 0.983765 0.957184 0.586792 0.998718 0.956726 0.587494 1.000000 0.946289 0.604858 0.156769 0.989441 0.587952 0.189850 0.988525 0.586670 0.219421 0.987701 0.585724 0.246246 0.987000 0.584686 0.271088 0.986328 0.583801 0.294708 0.985626 0.582977 0.317657 0.984985 0.582123 0.340576 0.984344 0.581238 0.363800 0.983643 0.580353 0.387909 0.982910 0.579620 0.413300 0.982086 0.578674 0.440155 0.981262 0.577789 0.468842 0.980316 0.576782 0.499542 0.979248 0.575775 0.532593 0.978149 0.574707 0.569092 0.976990 0.573853 0.608826 0.976898 0.574463 0.649445 0.977020 0.575287 0.689941 0.977081 0.576263 0.729004 0.977142 0.577271 0.766113 0.977234 0.578339 0.800323 0.977325 0.579468 0.831360 0.977386 0.580627 0.859650 0.977478 0.581909 0.885345 0.977509 0.583160 0.908600 0.977600 0.584442 0.929932 0.977661 0.585724 0.949463 0.977783 0.587097 0.967407 0.977844 0.588409 0.983795 0.977722 0.589844 0.998688 0.977234 0.590973 1.000000 0.965698 0.608551 0.174377 1.000000 0.586884 0.204987 1.000000 0.585907 0.232483 1.000000 0.585175 0.257538 1.000000 0.584503 0.280914 1.000000 0.583740 0.303162 1.000000 0.582977 0.324951 1.000000 0.582184 0.346771 1.000000 0.581451 0.368927 1.000000 0.580597 0.391998 1.000000 0.579651 0.416260 1.000000 0.578552 0.442017 1.000000 0.577271 0.470642 0.999115 0.576416 0.501740 0.998047 0.575684 0.535278 0.996979 0.575073 0.571259 0.995880 0.574524 0.610168 0.995758 0.575348 0.650146 0.995758 0.576355 0.690002 0.995819 0.577454 0.728729 0.995819 0.578552 0.765686 0.995850 0.579773 0.799683 0.995850 0.580994 0.830719 0.995880 0.582245 0.858917 0.995880 0.583557 0.884644 0.995880 0.584869 0.908051 0.995911 0.586121 0.929443 0.995911 0.587524 0.948914 0.995941 0.589264 0.966766 0.995941 0.591064 0.983368 0.996002 0.593109 0.998657 0.995941 0.595032 1.000000 0.983521 0.612549 0.205139 1.000000 0.586945 0.234406 1.000000 0.586884 0.260712 1.000000 0.586884 0.284729 1.000000 0.586884 0.307373 1.000000 0.587067 0.328918 1.000000 0.587036 0.350098 1.000000 0.587189 0.371368 1.000000 0.587463 0.393036 1.000000 0.587555 0.415649 1.000000 0.587799 0.439392 1.000000 0.588257 0.465088 1.000000 0.588715 0.492615 1.000000 0.589447 0.522125 1.000000 0.590240 0.554443 1.000000 0.591187 0.588959 1.000000 0.592163 0.625061 1.000000 0.593231 0.661774 1.000000 0.594330 0.698608 1.000000 0.595520 0.734344 1.000000 0.596680 0.768341 1.000000 0.597931 0.799866 1.000000 0.599182 0.828522 1.000000 0.600433 0.854858 1.000000 0.601746 0.878845 1.000000 0.603058 0.900757 1.000000 0.604645 0.920715 1.000000 0.606476 0.938995 1.000000 0.608429 0.955872 1.000000 0.610474 0.971497 1.000000 0.612518 0.986115 1.000000 0.614288 1.000000 1.000000 0.615906 0.000000 0.013489 0.588623 0.031647 0.000031 0.604828 0.079529 0.003967 0.606659 0.124695 0.007782 0.608429 0.166046 0.011230 0.609863 0.203156 0.012909 0.610535 0.235931 0.014557 0.611206 0.265656 0.016144 0.611877 0.293091 0.017670 0.612488 0.319092 0.019226 0.613098 0.344574 0.020691 0.613739 0.370300 0.022217 0.614319 0.396881 0.023712 0.614899 0.424774 0.025177 0.615417 0.454712 0.026703 0.615967 0.487122 0.028259 0.616516 0.523010 0.029785 0.617035 0.564026 0.031403 0.617493 0.609192 0.033112 0.617981 0.656128 0.033051 0.617035 0.703949 0.032715 0.615570 0.751007 0.032440 0.614197 0.795349 0.032440 0.613068 0.835388 0.032715 0.611938 0.870758 0.033020 0.610809 0.901978 0.033417 0.609985 0.929413 0.034058 0.609131 0.953705 0.034790 0.608459 0.975311 0.035736 0.607666 0.994720 0.036835 0.607086 1.000000 0.056549 0.604126 1.000000 0.083221 0.601410 0.000000 0.052460 0.594360 0.032562 0.041290 0.607544 0.079956 0.044281 0.608673 0.124329 0.045959 0.609375 0.165039 0.047516 0.610107 0.201691 0.049042 0.610748 0.234344 0.050507 0.611359 0.264130 0.051910 0.612000 0.291656 0.053345 0.612640 0.317841 0.054810 0.613220 0.343414 0.056213 0.613800 0.369110 0.057617 0.614319 0.395569 0.059082 0.614868 0.423645 0.060547 0.615387 0.453552 0.062042 0.615906 0.485992 0.063568 0.616394 0.521851 0.065125 0.616882 0.563202 0.066772 0.617371 0.609070 0.068451 0.617828 0.656433 0.068512 0.616669 0.704468 0.068237 0.615356 0.751617 0.068085 0.614014 0.795898 0.068024 0.612640 0.835724 0.068115 0.611542 0.870911 0.068329 0.610413 0.901886 0.068787 0.609467 0.929230 0.069489 0.608704 0.953339 0.070251 0.607941 0.974792 0.071259 0.607056 0.994049 0.072266 0.606506 1.000000 0.090576 0.604187 1.000000 0.116608 0.602112 0.000000 0.090027 0.599457 0.033905 0.080261 0.609802 0.079102 0.079987 0.608978 0.123016 0.081360 0.609650 0.163574 0.082794 0.610291 0.200012 0.084137 0.610870 0.232941 0.085541 0.611481 0.262756 0.086853 0.612091 0.290283 0.088226 0.612671 0.316498 0.089569 0.613220 0.342133 0.090881 0.613770 0.367950 0.092316 0.614288 0.394501 0.093719 0.614807 0.422394 0.095154 0.615295 0.452423 0.096649 0.615814 0.485168 0.098236 0.616302 0.521729 0.099792 0.616699 0.563568 0.101532 0.617157 0.609955 0.103241 0.617584 0.657532 0.103333 0.616486 0.705719 0.103088 0.614899 0.752686 0.102631 0.613586 0.796753 0.102539 0.612152 0.836304 0.102692 0.610870 0.871246 0.102905 0.609894 0.902039 0.103424 0.608856 0.929077 0.104218 0.608063 0.953003 0.104980 0.607391 0.974304 0.105927 0.606598 0.993408 0.106964 0.605927 1.000000 0.123810 0.604126 1.000000 0.149170 0.602631 0.000000 0.124329 0.601379 0.033936 0.116333 0.611176 0.078766 0.115906 0.610382 0.121124 0.115814 0.609802 0.161957 0.117096 0.610382 0.198730 0.118378 0.610992 0.231598 0.119659 0.611572 0.261414 0.120941 0.612091 0.289062 0.122223 0.612671 0.315369 0.123566 0.613190 0.340912 0.124847 0.613739 0.366669 0.126251 0.614197 0.393250 0.127655 0.614685 0.421600 0.129089 0.615143 0.452179 0.130646 0.615631 0.485535 0.132233 0.616089 0.522491 0.133911 0.616486 0.564972 0.135681 0.616913 0.611511 0.137360 0.617310 0.659149 0.137115 0.616058 0.707306 0.136719 0.614502 0.754181 0.136444 0.613037 0.798035 0.136353 0.611694 0.837250 0.136536 0.610535 0.871857 0.136841 0.609283 0.902252 0.137390 0.608429 0.929077 0.138000 0.607452 0.952759 0.138824 0.606689 0.973846 0.139801 0.605957 0.992798 0.140747 0.605469 1.000000 0.156281 0.603973 1.000000 0.180847 0.603271 0.000000 0.158356 0.602386 0.033386 0.151276 0.612579 0.078400 0.150757 0.611694 0.120880 0.150482 0.610870 0.160461 0.150513 0.610443 0.197357 0.151764 0.611023 0.230286 0.152954 0.611572 0.260162 0.154175 0.612091 0.287811 0.155457 0.612640 0.314178 0.156830 0.613129 0.339752 0.158081 0.613617 0.365814 0.159546 0.614075 0.392975 0.160950 0.614563 0.421783 0.162476 0.614990 0.452850 0.164032 0.615387 0.486633 0.165619 0.615845 0.524170 0.167297 0.616211 0.566772 0.168762 0.616516 0.613678 0.170288 0.616882 0.661377 0.170013 0.615479 0.709503 0.169739 0.613861 0.756195 0.169464 0.612366 0.799652 0.169434 0.610962 0.838379 0.169617 0.609772 0.872589 0.169922 0.608704 0.902649 0.170441 0.607758 0.929169 0.171082 0.606842 0.952576 0.171844 0.606079 0.973450 0.172729 0.605499 0.992249 0.173615 0.604797 1.000000 0.187714 0.603882 1.000000 0.211670 0.603607 0.000000 0.191101 0.603424 0.033295 0.185272 0.613831 0.078339 0.184784 0.612946 0.120819 0.184387 0.612061 0.160095 0.184052 0.611298 0.196136 0.184296 0.610992 0.229004 0.185516 0.611542 0.258911 0.186676 0.612030 0.286591 0.187988 0.612549 0.313141 0.189270 0.613007 0.339417 0.190674 0.613495 0.365936 0.192078 0.613922 0.393463 0.193512 0.614319 0.422729 0.195068 0.614746 0.454224 0.196655 0.615143 0.488281 0.198029 0.615479 0.526184 0.199493 0.615784 0.569397 0.201080 0.616089 0.616577 0.202576 0.616364 0.664246 0.202209 0.614838 0.712280 0.201935 0.613312 0.758575 0.201691 0.611786 0.801514 0.201691 0.610413 0.839783 0.201843 0.609192 0.873474 0.202148 0.608093 0.903168 0.202606 0.607147 0.929260 0.203186 0.606354 0.952393 0.203918 0.605591 0.973083 0.204681 0.604767 0.991638 0.205475 0.604126 1.000000 0.218292 0.603577 1.000000 0.241486 0.604126 0.000000 0.223053 0.604614 0.033234 0.218231 0.615051 0.078308 0.217804 0.614105 0.120789 0.217438 0.613251 0.160034 0.217072 0.612427 0.195587 0.216919 0.611694 0.227753 0.217285 0.611450 0.257996 0.218475 0.611938 0.286255 0.219788 0.612396 0.313324 0.221161 0.612854 0.339966 0.222534 0.613281 0.366852 0.223969 0.613678 0.394745 0.225372 0.614075 0.424225 0.226715 0.614410 0.456055 0.228149 0.614746 0.490662 0.229523 0.615021 0.529022 0.231049 0.615326 0.572662 0.232605 0.615631 0.619904 0.233978 0.615723 0.667603 0.233643 0.614197 0.715332 0.233276 0.612671 0.761261 0.233093 0.611084 0.803589 0.233032 0.609802 0.841217 0.233124 0.608521 0.874451 0.233459 0.607574 0.903687 0.233917 0.606598 0.929413 0.234436 0.605621 0.952271 0.235077 0.604889 0.972687 0.235748 0.604156 0.991058 0.236450 0.603455 1.000000 0.247955 0.603333 1.000000 0.270477 0.604462 0.000000 0.253937 0.605743 0.033203 0.250549 0.616211 0.078217 0.250092 0.615265 0.120728 0.249664 0.614319 0.160004 0.249268 0.613464 0.195923 0.249176 0.612732 0.228485 0.249146 0.612061 0.258484 0.249634 0.611786 0.287048 0.250946 0.612213 0.314392 0.252350 0.612640 0.341248 0.253723 0.613037 0.368286 0.254974 0.613403 0.396454 0.256256 0.613678 0.426361 0.257660 0.613983 0.458557 0.259064 0.614288 0.493530 0.260498 0.614563 0.532501 0.261963 0.614868 0.576569 0.263519 0.615143 0.623810 0.264679 0.615051 0.671326 0.264343 0.613495 0.718781 0.264038 0.611938 0.764099 0.263794 0.610474 0.805756 0.263733 0.609039 0.842743 0.263855 0.607941 0.875427 0.264130 0.606934 0.904175 0.264496 0.605835 0.929596 0.264984 0.605072 0.952118 0.265503 0.604187 0.972290 0.266144 0.603546 0.990540 0.266754 0.602875 1.000000 0.276978 0.602936 1.000000 0.298828 0.604858 0.000000 0.284515 0.606812 0.033142 0.282288 0.617310 0.078186 0.281738 0.616302 0.121124 0.281372 0.615356 0.161438 0.281067 0.614441 0.198059 0.280945 0.613647 0.230835 0.281067 0.612915 0.260681 0.281219 0.612305 0.288727 0.281738 0.611969 0.316040 0.282928 0.612305 0.342987 0.284180 0.612640 0.370300 0.285461 0.612915 0.398773 0.286774 0.613220 0.429047 0.288208 0.613556 0.461670 0.289612 0.613800 0.496948 0.291016 0.614075 0.536560 0.292542 0.614349 0.580902 0.294006 0.614563 0.627991 0.294983 0.614319 0.675323 0.294617 0.612762 0.722260 0.294281 0.611206 0.767059 0.294098 0.609741 0.808044 0.294067 0.608429 0.844299 0.294128 0.607178 0.876373 0.294342 0.606140 0.904694 0.294678 0.605255 0.929688 0.295105 0.604309 0.951935 0.295593 0.603485 0.971863 0.296082 0.602753 0.989929 0.296600 0.602142 1.000000 0.305634 0.602631 1.000000 0.326721 0.605347 0.000000 0.314606 0.607819 0.033630 0.313599 0.618286 0.080017 0.313141 0.617310 0.123901 0.312775 0.616241 0.164612 0.312592 0.615326 0.201385 0.312592 0.614471 0.234192 0.312622 0.613708 0.263855 0.312714 0.613007 0.291534 0.312805 0.612335 0.318207 0.313232 0.611816 0.345306 0.314545 0.612152 0.372986 0.315887 0.612488 0.401611 0.317230 0.612732 0.432251 0.318604 0.613007 0.465210 0.320038 0.613312 0.500885 0.321472 0.613525 0.540985 0.322937 0.613800 0.585541 0.324402 0.614014 0.632416 0.325104 0.613525 0.679474 0.324768 0.611969 0.725891 0.324463 0.610474 0.769928 0.324219 0.608978 0.810150 0.324188 0.607666 0.845795 0.324188 0.606415 0.877289 0.324371 0.605469 0.905121 0.324677 0.604492 0.929718 0.324982 0.603638 0.951691 0.325378 0.602722 0.971405 0.325836 0.602020 0.989288 0.326233 0.601318 1.000000 0.333984 0.601990 1.000000 0.354553 0.605621 0.000000 0.345001 0.610474 0.036896 0.345001 0.619202 0.083954 0.344666 0.618103 0.128326 0.344238 0.617065 0.169098 0.344147 0.616058 0.205566 0.343933 0.615173 0.238037 0.343964 0.614319 0.267700 0.344116 0.613586 0.295349 0.344330 0.612885 0.321808 0.344635 0.612213 0.348206 0.345062 0.611603 0.375977 0.346405 0.611908 0.404999 0.347778 0.612183 0.435852 0.349152 0.612427 0.469177 0.350555 0.612701 0.505157 0.351929 0.612915 0.545654 0.353333 0.613190 0.590363 0.354797 0.613403 0.636963 0.355255 0.612701 0.683655 0.354980 0.611053 0.729462 0.354645 0.609589 0.772827 0.354401 0.608124 0.812195 0.354309 0.606781 0.847107 0.354309 0.605713 0.878021 0.354462 0.604614 0.905396 0.354675 0.603638 0.929688 0.354919 0.602814 0.951324 0.355225 0.601959 0.970856 0.355560 0.601257 0.988586 0.355896 0.600525 1.000000 0.362488 0.601288 1.000000 0.382477 0.605835 0.000000 0.376190 0.615082 0.042236 0.376740 0.619995 0.089722 0.376251 0.618835 0.133789 0.375824 0.617706 0.174286 0.375671 0.616638 0.210480 0.375519 0.615692 0.242737 0.375671 0.614838 0.272186 0.375763 0.614075 0.299713 0.376068 0.613403 0.326111 0.376404 0.612671 0.352478 0.376770 0.612000 0.379456 0.377197 0.611298 0.408661 0.378540 0.611572 0.439850 0.379913 0.611816 0.473328 0.381287 0.612030 0.509735 0.382660 0.612305 0.550537 0.384064 0.612488 0.595337 0.385406 0.612671 0.641510 0.385681 0.611755 0.687683 0.385376 0.610168 0.732819 0.385040 0.608673 0.775391 0.384796 0.607269 0.814056 0.384644 0.605896 0.848267 0.384583 0.604767 0.878632 0.384705 0.603760 0.905548 0.384827 0.602783 0.929474 0.385010 0.601898 0.950928 0.385254 0.601166 0.970276 0.385559 0.600342 0.987885 0.385864 0.599457 1.000000 0.391266 0.600189 1.000000 0.410645 0.605865 0.000000 0.409027 0.621429 0.048889 0.408508 0.620575 0.096222 0.408142 0.619354 0.140320 0.407806 0.618134 0.180511 0.407623 0.617126 0.216217 0.407623 0.616180 0.248047 0.407806 0.615295 0.277161 0.408020 0.614532 0.304443 0.408356 0.613892 0.330811 0.408630 0.613129 0.357147 0.409058 0.612427 0.384186 0.409454 0.611633 0.412598 0.409790 0.610870 0.443909 0.411133 0.611084 0.477661 0.412445 0.611298 0.514343 0.413818 0.611481 0.555481 0.415131 0.611725 0.600189 0.416443 0.611877 0.645844 0.416473 0.610779 0.691528 0.416138 0.609192 0.735962 0.415741 0.607697 0.777771 0.415527 0.606293 0.815552 0.415344 0.605042 0.849182 0.415253 0.603851 0.878967 0.415253 0.602753 0.905548 0.415344 0.601898 0.929199 0.415466 0.600800 0.950439 0.415710 0.599976 0.969604 0.415924 0.599182 0.987122 0.416199 0.598267 1.000000 0.420471 0.599060 1.000000 0.439301 0.605835 0.007019 0.441467 0.622345 0.056915 0.440979 0.621033 0.104156 0.440582 0.619781 0.147949 0.440308 0.618591 0.187500 0.440308 0.617523 0.222595 0.440308 0.616608 0.253845 0.440521 0.615784 0.282532 0.440857 0.614990 0.309570 0.441193 0.614288 0.335754 0.441589 0.613525 0.362091 0.441956 0.612823 0.389069 0.442200 0.612000 0.417603 0.442505 0.611084 0.448120 0.442871 0.610291 0.482025 0.444153 0.610535 0.518951 0.445404 0.610687 0.560211 0.446716 0.610870 0.604828 0.447937 0.611023 0.649902 0.447754 0.609680 0.694946 0.447388 0.608154 0.738678 0.446991 0.606628 0.779663 0.446686 0.605255 0.816742 0.446503 0.604004 0.849762 0.446350 0.602783 0.879211 0.446320 0.601715 0.905426 0.446381 0.600677 0.928864 0.446503 0.599731 0.949921 0.446686 0.598785 0.968964 0.446869 0.597839 0.986328 0.447113 0.597015 1.000000 0.450256 0.597626 1.000000 0.468506 0.605804 0.016388 0.474518 0.622742 0.066223 0.474152 0.621460 0.113251 0.473816 0.620148 0.156342 0.473694 0.618988 0.195099 0.473633 0.617889 0.229309 0.473755 0.616974 0.259918 0.474060 0.616150 0.288177 0.474335 0.615356 0.314880 0.474701 0.614624 0.340881 0.475128 0.613922 0.367157 0.475403 0.613129 0.394165 0.475739 0.612305 0.422729 0.476013 0.611359 0.453217 0.476105 0.610352 0.486359 0.476440 0.609619 0.523407 0.477661 0.609772 0.564697 0.478912 0.609924 0.609161 0.480011 0.610138 0.653503 0.479675 0.608521 0.697937 0.479218 0.607056 0.740936 0.478760 0.605530 0.781250 0.478424 0.604126 0.817719 0.478180 0.602753 0.850342 0.478058 0.601593 0.879425 0.478027 0.600464 0.905334 0.478027 0.599365 0.928528 0.478180 0.598358 0.949371 0.478302 0.597473 0.968231 0.478455 0.596558 0.985504 0.478729 0.595734 1.000000 0.480621 0.595734 1.000000 0.498322 0.605835 0.027069 0.508606 0.623077 0.076721 0.508179 0.621735 0.123047 0.507965 0.620483 0.165314 0.507904 0.619293 0.203033 0.507965 0.618195 0.236328 0.508118 0.617310 0.266235 0.508301 0.616486 0.293945 0.508698 0.615723 0.320282 0.509064 0.614960 0.346100 0.509430 0.614197 0.372284 0.509766 0.613434 0.399292 0.510040 0.612610 0.427887 0.510254 0.611664 0.458374 0.510315 0.610626 0.491119 0.510254 0.609375 0.527588 0.510651 0.608734 0.568848 0.511810 0.608887 0.612732 0.512756 0.608856 0.656525 0.512268 0.607300 0.700409 0.511810 0.605774 0.742889 0.511322 0.604218 0.782715 0.510986 0.602783 0.818634 0.510712 0.601349 0.850800 0.510529 0.600098 0.879486 0.510437 0.598999 0.905090 0.510468 0.597961 0.928009 0.510529 0.596985 0.948700 0.510712 0.595917 0.967407 0.510834 0.595093 0.984589 0.511047 0.594269 1.000000 0.511749 0.593719 1.000000 0.529633 0.605835 0.038818 0.545166 0.623322 0.087921 0.544861 0.621979 0.133392 0.544708 0.620697 0.174591 0.544586 0.619537 0.211090 0.544647 0.618500 0.243378 0.544861 0.617645 0.272552 0.545135 0.616821 0.299744 0.545502 0.615997 0.325653 0.545807 0.615265 0.351257 0.546143 0.614471 0.377289 0.546509 0.613739 0.404236 0.546692 0.612854 0.432831 0.546814 0.611877 0.463318 0.546783 0.610809 0.496002 0.546631 0.609589 0.531860 0.546356 0.608246 0.572357 0.546875 0.607758 0.615814 0.547577 0.607544 0.659363 0.546997 0.605988 0.702881 0.546509 0.604340 0.744843 0.545990 0.602753 0.784058 0.545563 0.601318 0.819519 0.545227 0.599945 0.851166 0.545013 0.598633 0.879486 0.544922 0.597504 0.904755 0.544891 0.596405 0.927490 0.544952 0.595428 0.947968 0.545044 0.594452 0.966553 0.545166 0.593536 0.983643 0.545349 0.592773 0.999390 0.545563 0.591919 1.000000 0.563171 0.605835 0.051361 0.584473 0.623535 0.099579 0.584229 0.622162 0.144012 0.584015 0.620941 0.183899 0.583984 0.619751 0.219116 0.584015 0.618744 0.250397 0.584229 0.617889 0.278748 0.584473 0.617096 0.305359 0.584717 0.616272 0.330872 0.585052 0.615540 0.356293 0.585297 0.614746 0.382141 0.585571 0.613953 0.408997 0.585663 0.613068 0.437469 0.585693 0.612091 0.467865 0.585602 0.610962 0.500427 0.585266 0.609741 0.536407 0.584839 0.608368 0.575989 0.584320 0.606842 0.618805 0.584503 0.606079 0.662079 0.583893 0.604401 0.705231 0.583252 0.602783 0.746674 0.582642 0.601196 0.785339 0.582184 0.599701 0.820221 0.581818 0.598389 0.851471 0.581604 0.597076 0.879395 0.581421 0.595856 0.904419 0.581329 0.594849 0.926880 0.581329 0.593903 0.947205 0.581360 0.593018 0.965668 0.581421 0.592041 0.982605 0.581573 0.591278 0.998322 0.581696 0.590515 1.000000 0.598389 0.605835 0.064209 0.625916 0.623627 0.111359 0.625519 0.622253 0.154419 0.625275 0.620972 0.192841 0.625092 0.619812 0.226685 0.625031 0.618713 0.256927 0.625153 0.617828 0.284424 0.625275 0.617065 0.310425 0.625519 0.616180 0.335541 0.625641 0.615356 0.360626 0.625793 0.614563 0.386230 0.625885 0.613739 0.412933 0.625793 0.612732 0.441223 0.625702 0.611725 0.471588 0.625366 0.610565 0.504211 0.624908 0.609222 0.540344 0.624420 0.607758 0.579926 0.623718 0.606110 0.622467 0.623657 0.605133 0.665558 0.622986 0.603546 0.708130 0.622284 0.601929 0.749237 0.621704 0.600403 0.787354 0.621185 0.598907 0.821747 0.620758 0.597565 0.852570 0.620483 0.596375 0.880219 0.620331 0.595276 0.904907 0.620209 0.594269 0.927185 0.620148 0.593323 0.947327 0.620178 0.592529 0.965668 0.620239 0.591736 0.982483 0.620300 0.591003 0.998138 0.620514 0.590363 1.000000 0.634857 0.606049 0.075348 0.666962 0.622131 0.121277 0.666534 0.620758 0.162933 0.666199 0.619537 0.199921 0.665955 0.618317 0.232483 0.665894 0.617371 0.261597 0.665833 0.616425 0.288513 0.665924 0.615631 0.313965 0.665985 0.614807 0.338684 0.666046 0.614075 0.363495 0.666077 0.613220 0.388885 0.666016 0.612366 0.415527 0.665833 0.611359 0.443848 0.665558 0.610321 0.474335 0.665131 0.609039 0.507111 0.664581 0.607635 0.543427 0.663910 0.606079 0.583069 0.663116 0.604462 0.625519 0.663116 0.603638 0.669678 0.663818 0.603394 0.711884 0.663055 0.601746 0.752411 0.662323 0.600189 0.789978 0.661774 0.598785 0.823853 0.661255 0.597443 0.854248 0.660919 0.596283 0.881439 0.660675 0.595215 0.905853 0.660492 0.594269 0.927887 0.660370 0.593353 0.947815 0.660309 0.592560 0.965973 0.660370 0.591858 0.982727 0.660339 0.591217 0.998199 0.660400 0.590607 1.000000 0.671906 0.606384 0.086365 0.708344 0.620636 0.130890 0.707825 0.619293 0.171112 0.707397 0.618042 0.206421 0.707092 0.616943 0.237793 0.706940 0.615936 0.266052 0.706818 0.615082 0.292145 0.706757 0.614319 0.317108 0.706726 0.613495 0.341400 0.706604 0.612701 0.366028 0.706451 0.611816 0.391418 0.706299 0.610870 0.418091 0.706024 0.609924 0.446564 0.705627 0.608704 0.477173 0.705109 0.607422 0.510101 0.704437 0.605988 0.546539 0.703613 0.604401 0.585968 0.702728 0.602753 0.628540 0.702850 0.602112 0.672546 0.703674 0.602051 0.715515 0.703949 0.601593 0.755493 0.703217 0.600067 0.792480 0.702545 0.598663 0.825836 0.701996 0.597382 0.855743 0.701538 0.596252 0.882629 0.701172 0.595215 0.906769 0.700989 0.594299 0.928528 0.700775 0.593475 0.948273 0.700592 0.592743 0.966248 0.700500 0.592102 0.982849 0.700470 0.591553 0.998291 0.700439 0.590973 1.000000 0.708984 0.606873 0.096924 0.749176 0.619019 0.139923 0.748596 0.617859 0.178528 0.748077 0.616638 0.212372 0.747711 0.615631 0.242554 0.747437 0.614594 0.269867 0.747192 0.613739 0.295349 0.746979 0.612946 0.319794 0.746796 0.612183 0.343964 0.746613 0.611267 0.368500 0.746368 0.610382 0.393921 0.746002 0.609406 0.420746 0.745636 0.608307 0.449310 0.745087 0.607086 0.479980 0.744507 0.605835 0.513062 0.743683 0.604309 0.549561 0.742798 0.602722 0.588928 0.741760 0.601044 0.631409 0.742065 0.600555 0.675049 0.742737 0.600525 0.717987 0.743408 0.600525 0.758392 0.743530 0.599945 0.794800 0.742767 0.598602 0.827667 0.742157 0.597321 0.857178 0.741638 0.596252 0.883728 0.741241 0.595306 0.907562 0.740845 0.594421 0.929108 0.740601 0.593689 0.948669 0.740387 0.593048 0.966522 0.740173 0.592468 0.983002 0.740051 0.591980 0.998352 0.740204 0.591644 1.000000 0.746094 0.607849 0.106781 0.788727 0.617615 0.148193 0.788055 0.616302 0.185089 0.787445 0.615295 0.217651 0.786987 0.614136 0.246643 0.786560 0.613281 0.273193 0.786255 0.612427 0.298248 0.785919 0.611572 0.322510 0.785675 0.610779 0.346527 0.785309 0.609833 0.371063 0.784973 0.608826 0.396515 0.784546 0.607849 0.423370 0.784027 0.606689 0.452087 0.783386 0.605499 0.482819 0.782684 0.604126 0.515961 0.781738 0.602600 0.552521 0.780762 0.601074 0.591827 0.779694 0.599426 0.634216 0.779999 0.599121 0.677399 0.780548 0.599091 0.719818 0.781158 0.599060 0.760315 0.781769 0.599091 0.796997 0.781708 0.598572 0.829376 0.781006 0.597412 0.858551 0.780457 0.596405 0.884735 0.779907 0.595520 0.908295 0.779541 0.594757 0.929626 0.779144 0.594086 0.949005 0.778931 0.593536 0.966766 0.778839 0.593109 0.983124 0.778992 0.593018 0.998383 0.779144 0.593018 1.000000 0.781982 0.609344 0.115723 0.826263 0.616180 0.155548 0.825500 0.614990 0.190796 0.824799 0.613922 0.222107 0.824219 0.612946 0.250397 0.823730 0.612000 0.276459 0.823303 0.611053 0.301178 0.822906 0.610199 0.325195 0.822510 0.609253 0.349182 0.822083 0.608368 0.373627 0.821594 0.607330 0.399170 0.821075 0.606232 0.426056 0.820465 0.605072 0.454803 0.819733 0.603851 0.485596 0.818939 0.602509 0.518829 0.817963 0.601044 0.555420 0.816895 0.599518 0.594543 0.815735 0.597870 0.636780 0.816071 0.597748 0.679657 0.816589 0.597778 0.721558 0.817078 0.597809 0.761475 0.817535 0.597900 0.798248 0.818054 0.597961 0.830963 0.818024 0.597626 0.859711 0.817352 0.596710 0.885620 0.816803 0.595856 0.908936 0.816284 0.595184 0.930115 0.815979 0.594666 0.949402 0.815918 0.594482 0.967041 0.815948 0.594421 0.983276 0.815948 0.594513 0.998383 0.815979 0.594666 1.000000 0.815918 0.611084 0.123627 0.861145 0.614960 0.161926 0.860291 0.613678 0.196045 0.859528 0.612518 0.226501 0.858887 0.611572 0.254181 0.858307 0.610504 0.279755 0.857819 0.609619 0.304138 0.857269 0.608643 0.327972 0.856812 0.607819 0.351776 0.856354 0.606750 0.376221 0.855774 0.605865 0.401703 0.855164 0.604736 0.428711 0.854431 0.603607 0.457520 0.853668 0.602295 0.488373 0.852722 0.600983 0.521667 0.851685 0.599548 0.558197 0.850555 0.598053 0.597168 0.849396 0.596497 0.639191 0.849792 0.596558 0.681610 0.850189 0.596588 0.723145 0.850586 0.596710 0.762482 0.850952 0.596863 0.798737 0.851318 0.597015 0.831543 0.851715 0.597168 0.860779 0.851807 0.597137 0.886414 0.851166 0.596466 0.909668 0.850922 0.596161 0.930664 0.850677 0.595978 0.949707 0.850525 0.595978 0.967163 0.850250 0.596100 0.983276 0.850159 0.596313 0.998352 0.850006 0.596588 1.000000 0.847443 0.613037 0.130859 0.892914 0.613678 0.168121 0.891937 0.612366 0.201202 0.891174 0.611267 0.230865 0.890442 0.610229 0.257904 0.889862 0.609161 0.283020 0.889252 0.608246 0.307129 0.888702 0.607330 0.330750 0.888184 0.606293 0.354431 0.887573 0.605377 0.378845 0.886963 0.604340 0.404297 0.886261 0.603302 0.431305 0.885498 0.602203 0.460144 0.884644 0.600922 0.491028 0.883606 0.599640 0.524353 0.882538 0.598206 0.560791 0.881378 0.596771 0.599731 0.880310 0.595428 0.641510 0.880646 0.595551 0.683380 0.880890 0.595673 0.724396 0.881226 0.595795 0.763306 0.881500 0.596008 0.799164 0.881775 0.596283 0.831665 0.882111 0.596619 0.861084 0.882629 0.597198 0.887390 0.882935 0.597778 0.910248 0.882568 0.597656 0.930969 0.882141 0.597656 0.949829 0.881775 0.597778 0.967163 0.881531 0.598022 0.983276 0.881226 0.598358 0.998291 0.880951 0.598694 1.000000 0.876068 0.615173 0.138031 0.921204 0.612305 0.174194 0.920288 0.611053 0.206268 0.919464 0.609894 0.235168 0.918701 0.608734 0.261566 0.918060 0.607880 0.286255 0.917419 0.606842 0.310028 0.916809 0.605865 0.333405 0.916199 0.604980 0.357056 0.915588 0.604034 0.381409 0.914917 0.602997 0.406860 0.914154 0.601959 0.433868 0.913300 0.600861 0.462708 0.912384 0.599701 0.493561 0.911377 0.598419 0.526886 0.910278 0.597015 0.563202 0.909058 0.595734 0.602051 0.908081 0.594574 0.643494 0.908325 0.594696 0.684998 0.908539 0.594910 0.725616 0.908752 0.595215 0.764160 0.909027 0.595520 0.799957 0.909393 0.596130 0.832062 0.909729 0.596832 0.860962 0.910095 0.597626 0.886963 0.910431 0.598450 0.910522 0.910736 0.599426 0.931030 0.910248 0.599579 0.949860 0.909821 0.599792 0.967163 0.909485 0.600128 0.983215 0.909058 0.600525 0.998260 0.908691 0.600922 1.000000 0.901764 0.617401 0.144989 0.946442 0.610962 0.180054 0.945496 0.609619 0.211212 0.944702 0.608459 0.239319 0.943909 0.607452 0.265167 0.943207 0.606415 0.289429 0.942535 0.605530 0.312927 0.941956 0.604706 0.336121 0.941284 0.603699 0.359650 0.940643 0.602844 0.383942 0.939911 0.601837 0.409332 0.939148 0.600800 0.436310 0.938293 0.599792 0.465179 0.937378 0.598602 0.495972 0.936310 0.597412 0.529236 0.935181 0.596130 0.565399 0.933990 0.594818 0.604126 0.933075 0.593903 0.645081 0.933228 0.594147 0.686401 0.933411 0.594452 0.727234 0.933655 0.595093 0.765411 0.933929 0.595795 0.800323 0.934174 0.596558 0.831970 0.934418 0.597443 0.860443 0.934662 0.598419 0.886261 0.934906 0.599365 0.909668 0.935089 0.600433 0.930969 0.935333 0.601532 0.949860 0.934967 0.601990 0.967163 0.934509 0.602356 0.983185 0.934082 0.602783 0.998199 0.933624 0.603241 1.000000 0.925171 0.619629 0.151764 0.969025 0.609680 0.185760 0.968109 0.608459 0.215912 0.967316 0.607239 0.243317 0.966522 0.606140 0.268585 0.965820 0.605225 0.292542 0.965210 0.604340 0.315704 0.964508 0.603394 0.338745 0.963837 0.602509 0.362091 0.963165 0.601776 0.386292 0.962433 0.600800 0.411682 0.961670 0.599823 0.438629 0.960815 0.598877 0.467407 0.959808 0.597778 0.498138 0.958801 0.596588 0.531281 0.957642 0.595398 0.567291 0.956451 0.594238 0.606018 0.955627 0.593475 0.647430 0.955841 0.594116 0.688507 0.955994 0.594788 0.728180 0.956177 0.595612 0.765808 0.956329 0.596466 0.800171 0.956451 0.597382 0.831451 0.956635 0.598389 0.859711 0.956757 0.599457 0.885376 0.956879 0.600525 0.908722 0.957062 0.601624 0.930084 0.957214 0.602783 0.949585 0.957336 0.603943 0.967163 0.957123 0.604675 0.983185 0.956635 0.605072 0.998169 0.956207 0.605743 1.000000 0.946350 0.622528 0.158234 0.989410 0.608276 0.191071 0.988525 0.607147 0.220428 0.987701 0.606018 0.247101 0.987030 0.605011 0.271820 0.986298 0.604095 0.295410 0.985657 0.603302 0.318329 0.984955 0.602417 0.341095 0.984314 0.601624 0.364410 0.983643 0.600800 0.388519 0.982880 0.599854 0.413818 0.982117 0.598969 0.440704 0.981232 0.598053 0.469391 0.980316 0.597076 0.500000 0.979248 0.596039 0.533203 0.978119 0.594879 0.569763 0.977020 0.594086 0.608551 0.976288 0.593903 0.649017 0.976410 0.594666 0.689331 0.976471 0.595520 0.728424 0.976562 0.596436 0.765533 0.976624 0.597443 0.799561 0.976746 0.598511 0.830688 0.976776 0.599579 0.858948 0.976868 0.600677 0.884705 0.976959 0.601837 0.908020 0.976990 0.602997 0.929291 0.977081 0.604126 0.948853 0.977203 0.605347 0.966827 0.977295 0.606720 0.983215 0.977203 0.608063 0.998169 0.976685 0.609100 1.000000 0.965820 0.626007 0.175659 1.000000 0.606689 0.206024 1.000000 0.605957 0.233398 1.000000 0.605133 0.258362 1.000000 0.604370 0.281586 1.000000 0.603699 0.303802 1.000000 0.603027 0.325592 1.000000 0.602325 0.347290 1.000000 0.601562 0.369476 1.000000 0.600708 0.392517 1.000000 0.599792 0.416718 1.000000 0.598755 0.442505 1.000000 0.597534 0.471100 0.999115 0.596619 0.502319 0.998047 0.595947 0.535797 0.996979 0.595276 0.571625 0.995850 0.594635 0.609741 0.995148 0.594604 0.649506 0.995178 0.595551 0.689331 0.995209 0.596497 0.728119 0.995209 0.597565 0.764893 0.995270 0.598694 0.798859 0.995270 0.599762 0.830017 0.995300 0.600952 0.858246 0.995300 0.602112 0.883972 0.995300 0.603302 0.907410 0.995331 0.604431 0.928772 0.995392 0.605804 0.948303 0.995392 0.607422 0.966278 0.995453 0.609192 0.982819 0.995453 0.611023 0.998108 0.995361 0.612854 1.000000 0.983551 0.629639 0.206329 1.000000 0.605682 0.235321 1.000000 0.605682 0.261505 1.000000 0.605774 0.285522 1.000000 0.605957 0.307983 1.000000 0.605835 0.329498 1.000000 0.605957 0.350616 1.000000 0.606171 0.371796 1.000000 0.606262 0.393494 1.000000 0.606506 0.416046 1.000000 0.606750 0.439819 1.000000 0.607025 0.465729 1.000000 0.607635 0.493073 1.000000 0.608276 0.522491 1.000000 0.609009 0.554749 1.000000 0.609985 0.589172 1.000000 0.610870 0.625153 1.000000 0.611755 0.661896 1.000000 0.612823 0.698547 1.000000 0.613861 0.734406 1.000000 0.614929 0.768463 1.000000 0.616058 0.799957 1.000000 0.617218 0.828705 1.000000 0.618317 0.854980 1.000000 0.619446 0.878998 1.000000 0.620789 0.900879 1.000000 0.622345 0.920868 1.000000 0.624054 0.939117 1.000000 0.625854 0.955933 1.000000 0.627747 0.971497 1.000000 0.629578 0.986206 1.000000 0.631134 1.000000 1.000000 0.632568 0.000000 0.014709 0.610748 0.030975 0.000488 0.627350 0.078857 0.004456 0.628876 0.123993 0.008087 0.630280 0.165344 0.010864 0.631256 0.202148 0.012543 0.631866 0.234985 0.014160 0.632446 0.264740 0.015717 0.632996 0.291992 0.017303 0.633545 0.318237 0.018738 0.634125 0.343719 0.020264 0.634613 0.369476 0.021759 0.635162 0.395966 0.023254 0.635651 0.424042 0.024780 0.636108 0.453918 0.026276 0.636597 0.486359 0.027863 0.637024 0.522278 0.029480 0.637482 0.563202 0.031097 0.637909 0.608429 0.032776 0.638275 0.656342 0.033722 0.638000 0.704163 0.033356 0.636505 0.751251 0.033142 0.635071 0.795654 0.033234 0.633728 0.835663 0.033478 0.632538 0.870972 0.033722 0.631409 0.902161 0.034149 0.630554 0.929535 0.034790 0.629700 0.953796 0.035553 0.628693 0.975403 0.036499 0.627991 0.994720 0.037628 0.627411 1.000000 0.057404 0.623779 1.000000 0.083984 0.620300 0.000000 0.053345 0.615967 0.031891 0.041656 0.629425 0.079193 0.043945 0.630127 0.123444 0.045532 0.630737 0.164093 0.047089 0.631348 0.200775 0.048615 0.631866 0.233459 0.050079 0.632446 0.263123 0.051514 0.632965 0.290741 0.052948 0.633484 0.317017 0.054352 0.634003 0.342529 0.055786 0.634521 0.368286 0.057220 0.635010 0.394867 0.058685 0.635468 0.422791 0.060181 0.635925 0.452759 0.061615 0.636383 0.485260 0.063202 0.636780 0.521118 0.064819 0.637207 0.562683 0.066467 0.637634 0.608551 0.068176 0.638000 0.656738 0.069214 0.637573 0.704865 0.068878 0.636169 0.752075 0.068848 0.634705 0.796234 0.068726 0.633362 0.835968 0.068726 0.632019 0.871124 0.069031 0.630859 0.902100 0.069458 0.629913 0.929352 0.070160 0.628937 0.953430 0.071075 0.628204 0.974884 0.072021 0.627380 0.994110 0.073059 0.626678 1.000000 0.091431 0.623718 1.000000 0.117371 0.620636 0.000000 0.090271 0.620117 0.033020 0.079865 0.631134 0.078156 0.079681 0.630249 0.121979 0.080902 0.630707 0.162537 0.082336 0.631317 0.199188 0.083740 0.631866 0.232025 0.085052 0.632355 0.261902 0.086426 0.632874 0.289398 0.087799 0.633392 0.315674 0.089111 0.633850 0.341248 0.090485 0.634369 0.367157 0.091888 0.634827 0.393707 0.093353 0.635284 0.421692 0.094818 0.635681 0.451721 0.096283 0.636078 0.484741 0.097900 0.636505 0.521362 0.099548 0.636902 0.563171 0.101227 0.637268 0.609558 0.103058 0.637665 0.658051 0.104065 0.637207 0.706146 0.103638 0.635651 0.753143 0.103333 0.634155 0.797180 0.103180 0.632660 0.836639 0.103302 0.631531 0.871552 0.103607 0.630402 0.902222 0.104156 0.629181 0.929260 0.104858 0.628418 0.953125 0.105743 0.627594 0.974365 0.106689 0.626892 0.993469 0.107727 0.626038 1.000000 0.124664 0.623688 1.000000 0.149902 0.621216 0.000000 0.124664 0.621674 0.032898 0.115845 0.632355 0.077698 0.115479 0.631439 0.120209 0.115356 0.630737 0.160950 0.116669 0.631226 0.197815 0.117920 0.631775 0.230713 0.119202 0.632263 0.260590 0.120514 0.632751 0.288208 0.121826 0.633240 0.314575 0.123138 0.633698 0.340057 0.124512 0.634155 0.365845 0.125916 0.634613 0.392426 0.127319 0.635010 0.420990 0.128784 0.635437 0.451721 0.130341 0.635773 0.485107 0.131927 0.636169 0.522278 0.133667 0.636566 0.564667 0.135437 0.636902 0.611328 0.137085 0.637238 0.659729 0.137756 0.636688 0.707855 0.137329 0.635071 0.754791 0.137115 0.633545 0.798462 0.136993 0.631989 0.837616 0.137177 0.630737 0.872162 0.137512 0.629761 0.902527 0.138031 0.628723 0.929260 0.138763 0.627747 0.952881 0.139587 0.626984 0.973938 0.140503 0.626129 0.992859 0.141510 0.625549 1.000000 0.156982 0.623474 1.000000 0.181519 0.621643 0.000000 0.158478 0.622467 0.032379 0.150726 0.633575 0.077454 0.150391 0.632599 0.119965 0.150055 0.631683 0.159668 0.150055 0.631165 0.196533 0.151306 0.631653 0.229492 0.152527 0.632111 0.259338 0.153778 0.632568 0.286926 0.155060 0.633026 0.313324 0.156372 0.633484 0.338867 0.157745 0.633850 0.365082 0.159119 0.634338 0.392426 0.160614 0.634705 0.421356 0.162109 0.635101 0.452484 0.163727 0.635498 0.486450 0.165405 0.635834 0.523895 0.166962 0.636139 0.566681 0.168457 0.636475 0.613647 0.170044 0.636719 0.662109 0.170654 0.635956 0.710175 0.170288 0.634338 0.756836 0.170105 0.632751 0.800110 0.170013 0.631378 0.838867 0.170227 0.630219 0.872925 0.170593 0.629059 0.902893 0.171112 0.628021 0.929352 0.171783 0.627106 0.952698 0.172546 0.626190 0.973541 0.173401 0.625580 0.992279 0.174347 0.624756 1.000000 0.188477 0.623383 1.000000 0.212280 0.622162 0.000000 0.191345 0.623413 0.032349 0.184723 0.634705 0.077423 0.184418 0.633698 0.119904 0.183868 0.632721 0.159180 0.183624 0.631866 0.195160 0.183899 0.631500 0.228180 0.185059 0.631927 0.258026 0.186279 0.632355 0.285706 0.187561 0.632782 0.312531 0.188904 0.633209 0.338837 0.190277 0.633606 0.365417 0.191711 0.634033 0.393127 0.193298 0.634430 0.422516 0.194824 0.634766 0.453979 0.196320 0.635040 0.488159 0.197784 0.635376 0.526154 0.199219 0.635651 0.569397 0.200775 0.635895 0.616577 0.202393 0.636139 0.664978 0.202789 0.635193 0.712952 0.202515 0.633698 0.759277 0.202271 0.632111 0.802063 0.202271 0.630737 0.840240 0.202423 0.629425 0.873871 0.202789 0.628326 0.903381 0.203247 0.627289 0.929474 0.203857 0.626404 0.952576 0.204590 0.625519 0.973175 0.205353 0.624878 0.991730 0.206177 0.624084 1.000000 0.218903 0.622986 1.000000 0.242096 0.622620 0.000000 0.223022 0.624481 0.032288 0.217926 0.635773 0.077332 0.217377 0.634735 0.119873 0.217010 0.633759 0.159149 0.216644 0.632874 0.194702 0.216492 0.632050 0.226929 0.216888 0.631683 0.257324 0.218140 0.632111 0.285797 0.219391 0.632507 0.312897 0.220764 0.632904 0.339539 0.222229 0.633301 0.366516 0.223694 0.633667 0.394501 0.225067 0.633972 0.424103 0.226410 0.634308 0.455872 0.227814 0.634583 0.490540 0.229279 0.634857 0.529175 0.230804 0.635071 0.572754 0.232330 0.635345 0.620270 0.233887 0.635590 0.668427 0.234131 0.634613 0.716125 0.233826 0.632843 0.761963 0.233704 0.631409 0.804199 0.233612 0.629974 0.841675 0.233734 0.628662 0.874786 0.234100 0.627594 0.903931 0.234528 0.626648 0.929626 0.235046 0.625702 0.952393 0.235687 0.624756 0.972778 0.236359 0.624084 0.991150 0.237061 0.623352 1.000000 0.248535 0.622620 1.000000 0.270996 0.622864 0.000000 0.254028 0.625397 0.032227 0.250153 0.636780 0.077301 0.249603 0.635742 0.119843 0.249207 0.634766 0.159119 0.248962 0.633789 0.195343 0.248718 0.632965 0.228027 0.248810 0.632202 0.258026 0.249329 0.631805 0.286713 0.250641 0.632202 0.314178 0.252075 0.632599 0.340942 0.253357 0.632904 0.368073 0.254608 0.633209 0.396271 0.255920 0.633453 0.426270 0.257294 0.633728 0.458527 0.258789 0.634033 0.493652 0.260223 0.634277 0.532654 0.261688 0.634521 0.576782 0.263214 0.634766 0.624359 0.264801 0.635010 0.672241 0.264832 0.633728 0.719543 0.264526 0.632111 0.764862 0.264404 0.630585 0.806396 0.264282 0.629242 0.843262 0.264404 0.627899 0.875793 0.264709 0.626862 0.904480 0.265045 0.625824 0.929779 0.265533 0.625000 0.952240 0.266052 0.624146 0.972382 0.266693 0.623383 0.990570 0.267334 0.622772 1.000000 0.277496 0.622223 1.000000 0.299286 0.623291 0.000000 0.284454 0.626343 0.032196 0.281738 0.637726 0.077271 0.281342 0.636658 0.120667 0.280914 0.635651 0.161133 0.280670 0.634674 0.197723 0.280518 0.633728 0.230560 0.280609 0.632965 0.260468 0.280945 0.632294 0.288361 0.281372 0.631836 0.315826 0.282593 0.632141 0.342804 0.283844 0.632416 0.370178 0.285156 0.632660 0.398773 0.286530 0.632935 0.429077 0.287964 0.633179 0.461670 0.289307 0.633423 0.497223 0.290802 0.633698 0.536774 0.292236 0.633911 0.581146 0.293793 0.634155 0.628784 0.295288 0.634369 0.676270 0.295166 0.632904 0.723175 0.294861 0.631378 0.767822 0.294617 0.629761 0.808624 0.294586 0.628510 0.844788 0.294647 0.627167 0.876740 0.294891 0.626038 0.904938 0.295197 0.625092 0.929871 0.295624 0.624176 0.952087 0.296051 0.623383 0.971954 0.296600 0.622650 0.989960 0.297119 0.621857 1.000000 0.306091 0.621918 1.000000 0.327179 0.623627 0.000000 0.314545 0.627258 0.033203 0.313202 0.638611 0.079651 0.312775 0.637482 0.123688 0.312378 0.636414 0.164490 0.312225 0.635406 0.201294 0.312225 0.634491 0.234039 0.312225 0.633575 0.263733 0.312286 0.632843 0.291382 0.312500 0.632111 0.318085 0.312958 0.631592 0.345306 0.314301 0.631866 0.372925 0.315582 0.632111 0.401733 0.316956 0.632355 0.432373 0.318329 0.632599 0.465363 0.319763 0.632812 0.501160 0.321198 0.633057 0.541260 0.322662 0.633240 0.585938 0.324158 0.633484 0.633514 0.325592 0.633667 0.680420 0.325256 0.632050 0.726776 0.324982 0.630463 0.770721 0.324799 0.628967 0.810730 0.324646 0.627655 0.846252 0.324738 0.626312 0.877625 0.324921 0.625214 0.905365 0.325134 0.624268 0.929962 0.325531 0.623413 0.951813 0.325897 0.622559 0.971466 0.326263 0.621796 0.989319 0.326752 0.621094 1.000000 0.334442 0.621368 1.000000 0.355011 0.623810 0.000000 0.344849 0.630341 0.036835 0.344635 0.639343 0.083954 0.344238 0.638184 0.128418 0.343933 0.637054 0.169159 0.343689 0.635986 0.205536 0.343536 0.635010 0.238068 0.343628 0.634155 0.267670 0.343750 0.633331 0.295258 0.343964 0.632568 0.321869 0.344330 0.631866 0.348267 0.344757 0.631226 0.376068 0.346130 0.631500 0.405151 0.347504 0.631744 0.436005 0.348846 0.631927 0.469391 0.350311 0.632172 0.505554 0.351746 0.632355 0.546082 0.353088 0.632599 0.590790 0.354584 0.632782 0.638092 0.355804 0.632721 0.684601 0.355408 0.631165 0.730347 0.355103 0.629547 0.773499 0.354919 0.628082 0.812714 0.354797 0.626678 0.847534 0.354828 0.625488 0.878357 0.354919 0.624390 0.905640 0.355133 0.623413 0.929840 0.355377 0.622589 0.951477 0.355682 0.621735 0.970947 0.355988 0.620941 0.988647 0.356354 0.620178 1.000000 0.362946 0.620514 1.000000 0.382874 0.623901 0.000000 0.375977 0.635254 0.042542 0.376373 0.640015 0.089844 0.375916 0.638794 0.134064 0.375458 0.637604 0.174530 0.375275 0.636475 0.210602 0.375244 0.635468 0.242859 0.375336 0.634583 0.272247 0.375549 0.633759 0.299713 0.375763 0.632996 0.326233 0.376099 0.632294 0.352539 0.376556 0.631500 0.379578 0.376923 0.630798 0.408905 0.378326 0.631042 0.440002 0.379669 0.631226 0.473633 0.381073 0.631470 0.510071 0.382446 0.631653 0.550903 0.383789 0.631836 0.595734 0.385193 0.631989 0.642609 0.386169 0.631775 0.688629 0.385803 0.630188 0.733673 0.385468 0.628510 0.776123 0.385254 0.627136 0.814514 0.385101 0.625793 0.848694 0.385071 0.624573 0.878876 0.385132 0.623566 0.905762 0.385254 0.622498 0.929626 0.385437 0.621674 0.951019 0.385651 0.620728 0.970367 0.385956 0.619904 0.987915 0.386261 0.619049 1.000000 0.391693 0.619476 1.000000 0.411072 0.624023 0.000000 0.408661 0.641663 0.049377 0.408203 0.640472 0.096680 0.407837 0.639221 0.140808 0.407440 0.638000 0.180939 0.407318 0.636871 0.216492 0.407318 0.635864 0.248291 0.407471 0.634979 0.277374 0.407745 0.634216 0.304565 0.408081 0.633392 0.330963 0.408447 0.632629 0.357239 0.408813 0.631836 0.384338 0.409149 0.631012 0.412842 0.409546 0.630249 0.444183 0.410858 0.630463 0.477997 0.412231 0.630646 0.514740 0.413574 0.630829 0.555786 0.414886 0.630981 0.600616 0.416199 0.631165 0.646912 0.416901 0.630646 0.692383 0.416534 0.629059 0.736694 0.416168 0.627533 0.778351 0.415924 0.626068 0.816010 0.415771 0.624756 0.849487 0.415680 0.623566 0.879242 0.415649 0.622498 0.905731 0.415741 0.621490 0.929382 0.415924 0.620544 0.950562 0.416107 0.619568 0.969696 0.416321 0.618683 0.987183 0.416626 0.617889 1.000000 0.420837 0.618286 1.000000 0.439667 0.624084 0.007751 0.441071 0.642273 0.057648 0.440643 0.640869 0.104828 0.440247 0.639526 0.148560 0.440002 0.638306 0.188110 0.439972 0.637207 0.222900 0.440033 0.636230 0.254181 0.440247 0.635345 0.282745 0.440552 0.634552 0.309723 0.440887 0.633728 0.335968 0.441284 0.632935 0.362244 0.441650 0.632141 0.389343 0.441986 0.631348 0.417847 0.442291 0.630432 0.448456 0.442627 0.629578 0.482422 0.443909 0.629761 0.519348 0.445190 0.629913 0.560577 0.446472 0.630066 0.605194 0.447693 0.630219 0.650818 0.448181 0.629517 0.695770 0.447754 0.627991 0.739380 0.447418 0.626465 0.780243 0.447083 0.625031 0.817139 0.446869 0.623718 0.850128 0.446747 0.622498 0.879486 0.446686 0.621338 0.905640 0.446716 0.620239 0.929016 0.446869 0.619232 0.950043 0.446991 0.618347 0.969025 0.447235 0.617523 0.986389 0.447510 0.616577 1.000000 0.450562 0.616943 1.000000 0.468842 0.624023 0.017426 0.474182 0.642548 0.067230 0.473816 0.641144 0.114075 0.473511 0.639801 0.157166 0.473389 0.638611 0.195770 0.473389 0.637512 0.229767 0.473450 0.636536 0.260345 0.473785 0.635651 0.288391 0.474060 0.634827 0.315063 0.474457 0.634064 0.341095 0.474854 0.633270 0.367340 0.475128 0.632446 0.394440 0.475555 0.631592 0.422974 0.475647 0.630615 0.453430 0.475830 0.629547 0.486664 0.476227 0.628754 0.523804 0.477448 0.628937 0.565033 0.478607 0.629059 0.609406 0.479797 0.629211 0.654327 0.480011 0.628357 0.698669 0.479553 0.626770 0.741577 0.479156 0.625244 0.781738 0.478821 0.623779 0.818146 0.478546 0.622467 0.850677 0.478424 0.621216 0.879669 0.478363 0.620026 0.905518 0.478455 0.618896 0.928650 0.478485 0.617889 0.949463 0.478668 0.616974 0.968323 0.478882 0.616028 0.985504 0.479065 0.615143 1.000000 0.480957 0.615234 1.000000 0.498688 0.623932 0.028351 0.508209 0.642792 0.077911 0.507843 0.641388 0.124054 0.507660 0.640045 0.166290 0.507599 0.638824 0.203674 0.507690 0.637756 0.236786 0.507843 0.636780 0.266663 0.508148 0.635925 0.294189 0.508392 0.635101 0.320465 0.508850 0.634338 0.346344 0.509186 0.633514 0.372437 0.509491 0.632690 0.399475 0.509796 0.631805 0.428101 0.509979 0.630798 0.458588 0.509979 0.629730 0.491425 0.509979 0.628510 0.527832 0.510376 0.627869 0.569000 0.511505 0.627991 0.613037 0.512604 0.628113 0.657318 0.512634 0.627075 0.701141 0.512146 0.625427 0.743591 0.511719 0.623932 0.783173 0.511261 0.622375 0.819092 0.511047 0.621033 0.851135 0.510895 0.619690 0.879761 0.510803 0.618591 0.905304 0.510834 0.617493 0.928162 0.510895 0.616425 0.948761 0.511047 0.615509 0.967468 0.511169 0.614563 0.984619 0.511353 0.613739 1.000000 0.512146 0.613251 1.000000 0.529999 0.624023 0.040283 0.544861 0.642944 0.089264 0.544556 0.641571 0.134460 0.544281 0.640198 0.175568 0.544281 0.639038 0.211853 0.544434 0.637970 0.243866 0.544525 0.637024 0.272949 0.544861 0.636169 0.299957 0.545166 0.635376 0.325897 0.545532 0.634583 0.351532 0.545898 0.633759 0.377441 0.546173 0.632904 0.404449 0.546387 0.632019 0.432983 0.546539 0.630981 0.463470 0.546478 0.629883 0.496216 0.546356 0.628662 0.532043 0.546021 0.627258 0.572479 0.546539 0.626801 0.616272 0.547577 0.626862 0.660126 0.547363 0.625610 0.703583 0.546783 0.623993 0.745453 0.546326 0.622406 0.784546 0.545898 0.620880 0.819916 0.545624 0.619476 0.851501 0.545410 0.618256 0.879700 0.545288 0.617065 0.904968 0.545258 0.615997 0.927643 0.545319 0.614899 0.948059 0.545349 0.613953 0.966614 0.545502 0.613098 0.983643 0.545654 0.612305 0.999390 0.545868 0.611420 1.000000 0.563507 0.623993 0.052979 0.584106 0.643066 0.101013 0.583954 0.641663 0.145111 0.583740 0.640381 0.184845 0.583649 0.639191 0.219757 0.583710 0.638153 0.250854 0.583893 0.637238 0.279175 0.584167 0.636383 0.305573 0.584412 0.635590 0.331116 0.584717 0.634796 0.356506 0.585022 0.633972 0.382263 0.585175 0.633087 0.409149 0.585358 0.632172 0.437592 0.585358 0.631195 0.467926 0.585175 0.630066 0.500580 0.584930 0.628784 0.536499 0.584412 0.627319 0.576080 0.583923 0.625793 0.619446 0.584656 0.625488 0.662872 0.584198 0.624084 0.705872 0.583588 0.622406 0.747314 0.583038 0.620789 0.785828 0.582550 0.619293 0.820618 0.582184 0.617889 0.851776 0.581940 0.616669 0.879639 0.581726 0.615417 0.904633 0.581696 0.614349 0.927032 0.581635 0.613373 0.947296 0.581665 0.612457 0.965698 0.581818 0.611542 0.982635 0.581909 0.610840 0.998352 0.582031 0.610077 1.000000 0.598755 0.624115 0.065918 0.625702 0.643158 0.112885 0.625336 0.641785 0.155640 0.625031 0.640472 0.193939 0.624939 0.639343 0.227509 0.624939 0.638336 0.257599 0.625061 0.637421 0.285126 0.625244 0.636566 0.310974 0.625488 0.635773 0.336121 0.625702 0.634979 0.361176 0.625854 0.634155 0.386780 0.625977 0.633331 0.413483 0.625946 0.632385 0.441833 0.625824 0.631348 0.472137 0.625549 0.630127 0.504913 0.625092 0.628784 0.541016 0.624573 0.627289 0.580719 0.623932 0.625732 0.622650 0.623291 0.624084 0.665527 0.622589 0.622437 0.708130 0.621918 0.620789 0.749054 0.621246 0.619171 0.787048 0.620728 0.617767 0.821350 0.620331 0.616394 0.852142 0.620117 0.615143 0.879700 0.619843 0.614044 0.904388 0.619781 0.613068 0.926636 0.619720 0.612122 0.946747 0.619751 0.611267 0.965057 0.619781 0.610504 0.981903 0.619873 0.609772 0.997559 0.620026 0.609100 1.000000 0.635162 0.624268 0.077820 0.667328 0.642303 0.123322 0.666809 0.640808 0.164795 0.666534 0.639557 0.201477 0.666351 0.638367 0.233765 0.666260 0.637421 0.262787 0.666260 0.636414 0.289551 0.666260 0.635559 0.314850 0.666351 0.634796 0.339508 0.666412 0.633881 0.364288 0.666382 0.633118 0.389618 0.666290 0.632172 0.416260 0.666168 0.631165 0.444611 0.665833 0.630005 0.475128 0.665466 0.628754 0.507965 0.664886 0.627319 0.544250 0.664185 0.625732 0.583832 0.663422 0.624115 0.625671 0.662689 0.622528 0.669617 0.663361 0.622223 0.711792 0.662537 0.620605 0.752258 0.661865 0.619019 0.789673 0.661255 0.617584 0.823456 0.660797 0.616272 0.853790 0.660431 0.615082 0.880951 0.660217 0.614014 0.905396 0.660034 0.613068 0.927338 0.659912 0.612152 0.947235 0.659882 0.611359 0.965393 0.659851 0.610657 0.982086 0.659851 0.609955 0.997620 0.659912 0.609375 1.000000 0.672272 0.624573 0.088745 0.708649 0.640564 0.132843 0.708130 0.639343 0.172760 0.707733 0.638031 0.207947 0.707458 0.636932 0.238983 0.707245 0.635986 0.267059 0.707123 0.635010 0.293121 0.707092 0.634216 0.317871 0.707001 0.633331 0.342163 0.706940 0.632538 0.366760 0.706787 0.631653 0.392120 0.706512 0.630646 0.418884 0.706299 0.629608 0.447357 0.705902 0.628418 0.477936 0.705353 0.627075 0.510895 0.704651 0.625641 0.547302 0.703888 0.624084 0.586853 0.702972 0.622375 0.628601 0.702393 0.620972 0.672485 0.703094 0.620911 0.715363 0.703461 0.620422 0.755280 0.702667 0.618896 0.792145 0.702057 0.617493 0.825439 0.701508 0.616211 0.855286 0.701050 0.615051 0.882141 0.700653 0.614014 0.906219 0.700439 0.613098 0.927948 0.700256 0.612274 0.947662 0.700134 0.611511 0.965698 0.700043 0.610870 0.982269 0.699982 0.610260 0.997711 0.699951 0.609741 1.000000 0.709320 0.625000 0.099243 0.749512 0.639008 0.141754 0.748840 0.637756 0.180115 0.748352 0.636505 0.213715 0.747986 0.635498 0.243622 0.747681 0.634521 0.270813 0.747467 0.633575 0.296143 0.747253 0.632782 0.320526 0.747040 0.631958 0.344696 0.746857 0.631104 0.369232 0.746582 0.630157 0.394714 0.746307 0.629059 0.421478 0.745850 0.627960 0.450043 0.745392 0.626740 0.480804 0.744690 0.625427 0.513824 0.743927 0.623901 0.550385 0.743011 0.622345 0.589783 0.742065 0.620667 0.631500 0.741516 0.619415 0.674927 0.742157 0.619385 0.717834 0.742859 0.619354 0.758148 0.743011 0.618774 0.794464 0.742249 0.617432 0.827240 0.741577 0.616211 0.856689 0.741119 0.615082 0.883240 0.740692 0.614136 0.907013 0.740295 0.613281 0.928528 0.740082 0.612488 0.948059 0.739899 0.611816 0.965942 0.739716 0.611237 0.982422 0.739532 0.610748 0.997772 0.739807 0.610504 1.000000 0.746521 0.626068 0.108887 0.789001 0.637482 0.149872 0.788269 0.636292 0.186554 0.787689 0.635101 0.218811 0.787201 0.634064 0.247620 0.786774 0.633087 0.274109 0.786438 0.632233 0.299103 0.786163 0.631317 0.323273 0.785858 0.630463 0.347321 0.785522 0.629547 0.371765 0.785156 0.628571 0.397247 0.784698 0.627533 0.424164 0.784210 0.626373 0.452789 0.783600 0.625092 0.483582 0.782806 0.623749 0.516785 0.781952 0.622223 0.553284 0.780945 0.620667 0.592621 0.779907 0.619019 0.634216 0.779419 0.617950 0.677277 0.780060 0.617920 0.719696 0.780579 0.617950 0.760010 0.781189 0.617950 0.796631 0.781219 0.617432 0.828949 0.780426 0.616302 0.858002 0.779846 0.615234 0.884186 0.779419 0.614319 0.907715 0.778992 0.613556 0.929016 0.778687 0.612885 0.948395 0.778320 0.612274 0.966187 0.778381 0.611938 0.982605 0.778564 0.611786 0.997803 0.778717 0.611725 1.000000 0.782318 0.627441 0.117676 0.826477 0.636017 0.157043 0.825653 0.634857 0.192108 0.824982 0.633728 0.223236 0.824402 0.632690 0.251373 0.823914 0.631714 0.277374 0.823486 0.630768 0.301971 0.823029 0.629852 0.325928 0.822693 0.628967 0.349915 0.822266 0.627930 0.374359 0.821777 0.627014 0.399811 0.821228 0.625916 0.426819 0.820618 0.624786 0.455505 0.819916 0.623505 0.486389 0.819061 0.622162 0.519653 0.818054 0.620605 0.556152 0.817047 0.619080 0.595276 0.815887 0.617432 0.636841 0.815521 0.616638 0.679443 0.816010 0.616638 0.721313 0.816498 0.616638 0.761139 0.816986 0.616730 0.797821 0.817474 0.616821 0.830505 0.817474 0.616455 0.859131 0.816772 0.615509 0.885040 0.816132 0.614655 0.908356 0.815735 0.613983 0.929565 0.815521 0.613556 0.948792 0.815460 0.613342 0.966431 0.815491 0.613251 0.982635 0.815430 0.613190 0.997772 0.815430 0.613342 1.000000 0.816162 0.629089 0.125336 0.861237 0.634735 0.163330 0.860443 0.633484 0.197357 0.859650 0.632233 0.227661 0.858978 0.631195 0.255096 0.858459 0.630188 0.280640 0.857910 0.629333 0.304932 0.857452 0.628418 0.328674 0.856964 0.627472 0.352539 0.856445 0.626434 0.376953 0.855927 0.625427 0.402435 0.855255 0.624390 0.429413 0.854584 0.623260 0.458191 0.853760 0.621979 0.489075 0.852905 0.620636 0.522369 0.851807 0.619080 0.558838 0.850677 0.617615 0.597839 0.849487 0.616058 0.639069 0.849182 0.615356 0.681396 0.849609 0.615448 0.722809 0.849976 0.615570 0.762085 0.850311 0.615662 0.798370 0.850739 0.615814 0.831085 0.851135 0.616028 0.860199 0.851135 0.615906 0.885925 0.850677 0.615356 0.909149 0.850403 0.614990 0.930084 0.850128 0.614777 0.949066 0.849976 0.614716 0.966492 0.849792 0.614746 0.982666 0.849640 0.614899 0.997772 0.849518 0.615112 1.000000 0.847595 0.630920 0.132477 0.892975 0.633331 0.169434 0.892029 0.631989 0.202454 0.891235 0.630920 0.231934 0.890533 0.629852 0.258820 0.889954 0.628784 0.283905 0.889343 0.627838 0.307861 0.888824 0.626862 0.331421 0.888214 0.626007 0.355164 0.887695 0.624969 0.379517 0.887024 0.624023 0.404999 0.886353 0.622955 0.432007 0.885620 0.621735 0.460846 0.884705 0.620483 0.491699 0.883728 0.619232 0.524994 0.882629 0.617859 0.561401 0.881470 0.616302 0.600220 0.880249 0.614807 0.641266 0.879974 0.614319 0.683197 0.880310 0.614441 0.724152 0.880615 0.614624 0.762970 0.880890 0.614838 0.798706 0.881195 0.615021 0.831299 0.881592 0.615479 0.860626 0.882111 0.616089 0.886780 0.882385 0.616577 0.909576 0.882019 0.616394 0.930298 0.881592 0.616333 0.949188 0.881317 0.616394 0.966522 0.880951 0.616547 0.982666 0.880707 0.616791 0.997711 0.880432 0.617065 1.000000 0.876190 0.632874 0.139557 0.921234 0.631989 0.175507 0.920349 0.630798 0.207458 0.919525 0.629517 0.236084 0.918793 0.628387 0.262451 0.918091 0.627441 0.287140 0.917480 0.626526 0.310760 0.916870 0.625488 0.334198 0.916290 0.624664 0.357788 0.915619 0.623688 0.382050 0.914978 0.622589 0.407532 0.914215 0.621613 0.434540 0.913391 0.620514 0.463379 0.912476 0.619293 0.494263 0.911438 0.617950 0.527496 0.910339 0.616638 0.563812 0.909088 0.615234 0.602356 0.907867 0.613800 0.643219 0.907684 0.613525 0.684692 0.907928 0.613708 0.725189 0.908142 0.613953 0.763947 0.908447 0.614380 0.799530 0.908813 0.614960 0.831604 0.909180 0.615631 0.860352 0.909515 0.616364 0.886322 0.909851 0.617218 0.909851 0.910187 0.618011 0.930389 0.909668 0.618073 0.949249 0.909332 0.618317 0.966522 0.908844 0.618500 0.982635 0.908508 0.618805 0.997681 0.908142 0.619171 1.000000 0.902008 0.634979 0.146545 0.946442 0.630585 0.181335 0.945496 0.629303 0.212311 0.944733 0.628143 0.240265 0.943939 0.627075 0.265991 0.943268 0.626129 0.290253 0.942596 0.625244 0.313660 0.941986 0.624329 0.336823 0.941315 0.623352 0.360352 0.940674 0.622467 0.384521 0.939941 0.621399 0.410034 0.939209 0.620483 0.436981 0.938324 0.619293 0.465759 0.937378 0.618225 0.496582 0.936310 0.617035 0.529724 0.935181 0.615601 0.565948 0.934052 0.614258 0.604279 0.932739 0.613007 0.644867 0.932617 0.612915 0.686340 0.932800 0.613342 0.726868 0.933105 0.613922 0.764954 0.933350 0.614594 0.799744 0.933594 0.615295 0.831299 0.933807 0.616150 0.859741 0.934082 0.617004 0.885651 0.934296 0.617920 0.908997 0.934509 0.618896 0.930298 0.934753 0.619904 0.949219 0.934418 0.620300 0.966522 0.933960 0.620605 0.982605 0.933472 0.620911 0.997620 0.933136 0.621277 1.000000 0.925293 0.637085 0.153137 0.969025 0.629333 0.186890 0.968109 0.628082 0.217010 0.967285 0.626862 0.244171 0.966522 0.625977 0.269409 0.965851 0.624878 0.293274 0.965210 0.624023 0.316376 0.964569 0.623047 0.339355 0.963867 0.622223 0.362762 0.963196 0.621368 0.386902 0.962463 0.620422 0.412262 0.961670 0.619385 0.439148 0.960846 0.618469 0.467926 0.959839 0.617310 0.498657 0.958832 0.616211 0.531769 0.957703 0.614990 0.567810 0.956482 0.613708 0.606293 0.955292 0.612579 0.647278 0.955261 0.612915 0.688141 0.955444 0.613617 0.727783 0.955566 0.614349 0.765137 0.955719 0.615143 0.799500 0.955872 0.615997 0.830719 0.956024 0.616913 0.859039 0.956177 0.617889 0.884705 0.956329 0.618896 0.908112 0.956482 0.619934 0.929443 0.956635 0.621002 0.948975 0.956787 0.622131 0.966522 0.956573 0.622711 0.982635 0.956116 0.623108 0.997620 0.955597 0.623810 1.000000 0.946503 0.639923 0.159515 0.989410 0.627899 0.192200 0.988525 0.626831 0.221466 0.987701 0.625732 0.247955 0.987030 0.624786 0.272705 0.986298 0.623840 0.296143 0.985657 0.622864 0.318939 0.985016 0.622009 0.341766 0.984314 0.621185 0.364960 0.983643 0.620392 0.389038 0.982880 0.619537 0.414368 0.982147 0.618561 0.441162 0.981262 0.617584 0.469879 0.980316 0.616638 0.500458 0.979248 0.615540 0.533936 0.978149 0.614563 0.570404 0.977020 0.613617 0.608459 0.975861 0.612793 0.648651 0.975800 0.613373 0.688843 0.975891 0.614197 0.727875 0.976013 0.615082 0.764832 0.976074 0.615967 0.798920 0.976166 0.617004 0.829956 0.976196 0.617950 0.858215 0.976257 0.618988 0.883942 0.976379 0.620117 0.907410 0.976440 0.621155 0.928711 0.976562 0.622253 0.948334 0.976624 0.623383 0.966278 0.976776 0.624725 0.982697 0.976654 0.626007 0.997620 0.976196 0.626984 1.000000 0.965881 0.643219 0.176819 1.000000 0.625793 0.207123 1.000000 0.625214 0.234314 1.000000 0.624359 0.259125 1.000000 0.623718 0.282318 1.000000 0.623016 0.304474 1.000000 0.622314 0.326172 1.000000 0.621704 0.347870 1.000000 0.620972 0.369995 1.000000 0.620087 0.393005 1.000000 0.619232 0.417236 1.000000 0.618347 0.442932 1.000000 0.617065 0.471832 0.999115 0.616241 0.502991 0.998077 0.615540 0.536255 0.997009 0.614746 0.572021 0.995880 0.614044 0.609436 0.994720 0.613464 0.648987 0.994598 0.614105 0.688721 0.994629 0.615051 0.727509 0.994659 0.616058 0.764252 0.994720 0.617065 0.798309 0.994690 0.618073 0.829285 0.994720 0.619141 0.857635 0.994720 0.620239 0.883331 0.994751 0.621338 0.906769 0.994781 0.622437 0.928253 0.994843 0.623840 0.947815 0.994873 0.625397 0.965698 0.994904 0.627045 0.982300 0.994934 0.628845 0.997620 0.994843 0.630493 1.000000 0.983582 0.646606 0.207397 1.000000 0.623962 0.236267 1.000000 0.623901 0.262329 1.000000 0.623993 0.286194 1.000000 0.624084 0.308563 1.000000 0.624115 0.330109 1.000000 0.624207 0.351135 1.000000 0.624390 0.372314 1.000000 0.624542 0.393921 1.000000 0.624634 0.416443 1.000000 0.624908 0.440491 1.000000 0.625366 0.466278 1.000000 0.625824 0.493561 1.000000 0.626526 0.522888 1.000000 0.627197 0.555023 1.000000 0.628021 0.589355 1.000000 0.628937 0.625305 1.000000 0.629730 0.662048 1.000000 0.630707 0.698700 1.000000 0.631683 0.734528 1.000000 0.632660 0.768524 1.000000 0.633728 0.800018 1.000000 0.634827 0.828796 1.000000 0.635834 0.855103 1.000000 0.636932 0.879150 1.000000 0.638245 0.900970 1.000000 0.639771 0.920898 1.000000 0.641418 0.939148 1.000000 0.643127 0.956024 1.000000 0.644836 0.971619 1.000000 0.646576 0.986145 1.000000 0.647919 1.000000 1.000000 0.649292 0.000000 0.015778 0.631622 0.030304 0.000977 0.648651 0.078308 0.004791 0.649994 0.123260 0.008484 0.651184 0.164520 0.010529 0.651855 0.201324 0.012177 0.652405 0.234222 0.013824 0.652863 0.263855 0.015350 0.653381 0.291168 0.016907 0.653839 0.317383 0.018433 0.654327 0.343048 0.019897 0.654816 0.368713 0.021393 0.655273 0.395203 0.022919 0.655701 0.423309 0.024384 0.656128 0.453308 0.025940 0.656525 0.485718 0.027588 0.656952 0.521576 0.029144 0.657379 0.562469 0.030792 0.657715 0.607910 0.032532 0.658112 0.656464 0.034241 0.658447 0.704468 0.034088 0.657074 0.751617 0.033905 0.655518 0.795868 0.033936 0.654205 0.835876 0.034210 0.652893 0.871155 0.034363 0.651794 0.902252 0.034882 0.650635 0.929657 0.035553 0.649841 0.953888 0.036285 0.648987 0.975433 0.037354 0.648071 0.994751 0.038422 0.647491 1.000000 0.058197 0.643127 1.000000 0.084808 0.638489 0.000000 0.054260 0.636505 0.031372 0.042053 0.650391 0.078400 0.043579 0.650696 0.122528 0.045197 0.651215 0.163116 0.046753 0.651733 0.199921 0.048218 0.652252 0.232452 0.049652 0.652710 0.262238 0.051117 0.653229 0.289948 0.052551 0.653687 0.316193 0.053955 0.654144 0.341705 0.055389 0.654572 0.367493 0.056885 0.654999 0.394135 0.058319 0.655426 0.421997 0.059814 0.655823 0.452087 0.061279 0.656219 0.484558 0.062897 0.656616 0.520599 0.064514 0.657013 0.562195 0.066223 0.657349 0.608154 0.067993 0.657715 0.657166 0.069794 0.658020 0.705261 0.069672 0.656525 0.752411 0.069519 0.654938 0.796539 0.069366 0.653625 0.836304 0.069427 0.652283 0.871399 0.069672 0.651154 0.902283 0.070190 0.649994 0.929504 0.070984 0.649078 0.953522 0.071747 0.648193 0.974945 0.072754 0.647491 0.994141 0.073883 0.646820 1.000000 0.092224 0.642914 1.000000 0.118103 0.639130 0.000000 0.090546 0.639893 0.032135 0.079437 0.651672 0.077148 0.079224 0.650665 0.120972 0.080536 0.651123 0.161377 0.081940 0.651581 0.198334 0.083313 0.652069 0.231201 0.084686 0.652557 0.260956 0.086029 0.652985 0.288544 0.087341 0.653473 0.314880 0.088745 0.653900 0.340546 0.090118 0.654297 0.366272 0.091583 0.654694 0.392975 0.092987 0.655121 0.420929 0.094482 0.655518 0.451050 0.096008 0.655884 0.484314 0.097656 0.656250 0.520782 0.099274 0.656555 0.562866 0.101044 0.656952 0.609314 0.102875 0.657257 0.658508 0.104706 0.657562 0.706604 0.104248 0.655884 0.753571 0.103912 0.654388 0.797577 0.103851 0.652832 0.837006 0.103943 0.651550 0.871826 0.104340 0.650360 0.902496 0.104919 0.649384 0.929443 0.105621 0.648468 0.953247 0.106445 0.647552 0.974487 0.107452 0.646790 0.993500 0.108490 0.645966 1.000000 0.125397 0.642914 1.000000 0.150635 0.639557 0.000000 0.125122 0.641174 0.031891 0.115387 0.652771 0.076599 0.115021 0.651733 0.119232 0.114960 0.650940 0.160065 0.116211 0.651428 0.196960 0.117493 0.651917 0.229858 0.118805 0.652344 0.259766 0.120117 0.652771 0.287354 0.121399 0.653198 0.313629 0.122772 0.653595 0.339325 0.124115 0.654022 0.365173 0.125549 0.654388 0.391937 0.126984 0.654816 0.420563 0.128479 0.655121 0.451324 0.130066 0.655487 0.484802 0.131744 0.655853 0.522064 0.133453 0.656158 0.564484 0.135254 0.656433 0.611023 0.136780 0.656708 0.660309 0.138275 0.656921 0.708435 0.137939 0.655212 0.755310 0.137665 0.653625 0.798981 0.137665 0.652130 0.838013 0.137817 0.650848 0.872498 0.138184 0.649719 0.902802 0.138733 0.648560 0.929443 0.139496 0.647644 0.953003 0.140259 0.646851 0.974030 0.141235 0.645966 0.992889 0.142212 0.645355 1.000000 0.157745 0.642761 1.000000 0.182220 0.639984 0.000000 0.158875 0.641754 0.031494 0.150421 0.653809 0.076538 0.150024 0.652802 0.119080 0.149658 0.651825 0.158722 0.149658 0.651215 0.195648 0.150879 0.651642 0.228668 0.152069 0.652100 0.258423 0.153381 0.652466 0.286102 0.154694 0.652893 0.312439 0.156036 0.653290 0.338257 0.157379 0.653656 0.364594 0.158783 0.654022 0.391968 0.160370 0.654388 0.421021 0.161835 0.654755 0.452148 0.163544 0.655060 0.486267 0.165192 0.655365 0.523773 0.166626 0.655640 0.566559 0.168243 0.655914 0.613586 0.169800 0.656128 0.662781 0.171234 0.656097 0.710876 0.170929 0.654419 0.757416 0.170715 0.652893 0.800659 0.170685 0.651489 0.839325 0.170898 0.650085 0.873291 0.171265 0.648987 0.903229 0.171753 0.647827 0.929535 0.172485 0.646851 0.952850 0.173279 0.646179 0.973633 0.174133 0.645294 0.992310 0.174988 0.644531 1.000000 0.189117 0.642426 1.000000 0.212952 0.640289 0.000000 0.191620 0.642700 0.031403 0.184418 0.654877 0.076508 0.183960 0.653809 0.119049 0.183563 0.652771 0.158356 0.183167 0.651794 0.194336 0.183441 0.651367 0.227295 0.184692 0.651794 0.257263 0.185913 0.652191 0.285034 0.187286 0.652557 0.311951 0.188629 0.652954 0.338318 0.189972 0.653290 0.365021 0.191467 0.653656 0.392853 0.193024 0.653961 0.422211 0.194611 0.654266 0.453735 0.196014 0.654541 0.488098 0.197418 0.654816 0.526215 0.199005 0.655060 0.569427 0.200562 0.655304 0.616699 0.202118 0.655548 0.665863 0.203369 0.655304 0.713776 0.203064 0.653687 0.759888 0.202881 0.652069 0.802673 0.202942 0.650574 0.840759 0.203125 0.649353 0.874207 0.203400 0.648071 0.903717 0.203949 0.647247 0.929657 0.204529 0.646301 0.952698 0.205231 0.645264 0.973267 0.206024 0.644623 0.991730 0.206787 0.643860 1.000000 0.219543 0.642181 1.000000 0.242706 0.640686 0.000000 0.223175 0.643646 0.031372 0.217407 0.655762 0.076447 0.217072 0.654724 0.118958 0.216492 0.653687 0.158295 0.216248 0.652710 0.193878 0.216064 0.651917 0.226196 0.216522 0.651459 0.256775 0.217804 0.651825 0.285309 0.219116 0.652191 0.312500 0.220490 0.652557 0.339203 0.221893 0.652863 0.366272 0.223389 0.653198 0.394226 0.224731 0.653473 0.423859 0.226135 0.653748 0.455902 0.227570 0.653961 0.490601 0.229004 0.654205 0.529205 0.230530 0.654449 0.572998 0.232117 0.654694 0.620422 0.233673 0.654877 0.669373 0.234741 0.654572 0.717010 0.234467 0.652924 0.762665 0.234253 0.651276 0.804779 0.234222 0.649811 0.842224 0.234406 0.648621 0.875183 0.234650 0.647369 0.904205 0.235138 0.646423 0.929840 0.235687 0.645538 0.952576 0.236298 0.644684 0.972839 0.236969 0.643799 0.991180 0.237640 0.643005 1.000000 0.249176 0.641937 1.000000 0.271576 0.641022 0.000000 0.254150 0.644531 0.031342 0.249756 0.656708 0.076385 0.249207 0.655609 0.118927 0.248749 0.654572 0.158447 0.248505 0.653564 0.194885 0.248383 0.652679 0.227600 0.248474 0.651825 0.257629 0.248993 0.651459 0.286346 0.250366 0.651794 0.313843 0.251770 0.652130 0.340637 0.252991 0.652374 0.367859 0.254364 0.652679 0.396179 0.255646 0.652924 0.426178 0.257050 0.653137 0.458618 0.258514 0.653381 0.493774 0.259979 0.653595 0.532928 0.261505 0.653809 0.576996 0.263031 0.654022 0.624542 0.264557 0.654236 0.673218 0.265442 0.653717 0.720490 0.265137 0.652008 0.765625 0.264923 0.650421 0.807007 0.264923 0.649048 0.843750 0.265015 0.647827 0.876160 0.265259 0.646667 0.904755 0.265686 0.645630 0.929993 0.266144 0.644653 0.952362 0.266663 0.643768 0.972504 0.267242 0.643066 0.990601 0.267822 0.642212 1.000000 0.278107 0.641418 1.000000 0.299835 0.641388 0.000000 0.284637 0.645386 0.031311 0.281494 0.657623 0.076599 0.280914 0.656464 0.120239 0.280548 0.655365 0.160736 0.280304 0.654297 0.197449 0.280212 0.653351 0.230347 0.280334 0.652557 0.260254 0.280640 0.651764 0.288208 0.281036 0.651276 0.315613 0.282227 0.651550 0.342621 0.283539 0.651825 0.370209 0.284882 0.652100 0.398712 0.286224 0.652313 0.429108 0.287689 0.652557 0.461823 0.289093 0.652740 0.497406 0.290558 0.652954 0.537109 0.292023 0.653137 0.581512 0.293549 0.653351 0.629150 0.295044 0.653534 0.677277 0.295685 0.652802 0.724060 0.295380 0.651215 0.768555 0.295166 0.649689 0.809204 0.295166 0.648193 0.845245 0.295197 0.646973 0.877136 0.295410 0.645874 0.905212 0.295746 0.644714 0.930084 0.296143 0.643921 0.952209 0.296600 0.643005 0.972046 0.297119 0.642212 0.990021 0.297607 0.641479 1.000000 0.306580 0.641083 1.000000 0.327667 0.641724 0.000000 0.314728 0.646393 0.032806 0.312805 0.658386 0.079468 0.312378 0.657196 0.123627 0.312073 0.656036 0.164459 0.311890 0.654968 0.201324 0.311859 0.653992 0.233948 0.311859 0.653107 0.263611 0.312012 0.652283 0.291321 0.312164 0.651520 0.317993 0.312653 0.651001 0.345245 0.313965 0.651184 0.372955 0.315338 0.651428 0.401733 0.316681 0.651642 0.432526 0.318146 0.651855 0.465637 0.319550 0.652069 0.501526 0.320953 0.652283 0.541687 0.322449 0.652466 0.586334 0.323914 0.652679 0.633789 0.325378 0.652832 0.681458 0.325775 0.651917 0.727631 0.325470 0.650269 0.771454 0.325256 0.648773 0.811371 0.325195 0.647339 0.846710 0.325195 0.646027 0.877960 0.325378 0.644867 0.905609 0.325684 0.643860 0.930084 0.325958 0.642944 0.951935 0.326355 0.642090 0.971527 0.326782 0.641357 0.989349 0.327148 0.640625 1.000000 0.334900 0.640411 1.000000 0.355347 0.641968 0.000000 0.344818 0.649902 0.036835 0.344330 0.659027 0.084137 0.343903 0.657806 0.128723 0.343750 0.656616 0.169220 0.343384 0.655457 0.205627 0.343262 0.654449 0.238129 0.343292 0.653534 0.267670 0.343445 0.652740 0.295349 0.343750 0.651947 0.321869 0.344055 0.651154 0.348328 0.344543 0.650513 0.376190 0.345917 0.650757 0.405273 0.347260 0.650970 0.436279 0.348633 0.651154 0.469696 0.350098 0.651337 0.505890 0.351501 0.651520 0.546417 0.352905 0.651703 0.591187 0.354370 0.651917 0.638519 0.355743 0.652069 0.685547 0.355927 0.650879 0.731140 0.355560 0.649323 0.774231 0.355377 0.647797 0.813293 0.355255 0.646393 0.847992 0.355255 0.645111 0.878693 0.355408 0.643951 0.905884 0.355591 0.642975 0.930023 0.355835 0.642090 0.951508 0.356110 0.641205 0.971008 0.356415 0.640472 0.988678 0.356750 0.639679 1.000000 0.363403 0.639618 1.000000 0.383270 0.641968 0.000000 0.375824 0.655090 0.042969 0.376038 0.659607 0.090210 0.375488 0.658264 0.134399 0.375214 0.657074 0.174805 0.374969 0.655884 0.210876 0.374908 0.654877 0.243011 0.374969 0.653931 0.272369 0.375244 0.653076 0.299866 0.375519 0.652313 0.326263 0.375854 0.651489 0.352692 0.376282 0.650696 0.379730 0.376740 0.650024 0.409058 0.378052 0.650208 0.440308 0.379456 0.650391 0.473999 0.380829 0.650574 0.510406 0.382233 0.650757 0.551392 0.383606 0.650909 0.596100 0.384979 0.651062 0.643250 0.386322 0.651184 0.689545 0.386230 0.649872 0.734497 0.385925 0.648254 0.776733 0.385681 0.646790 0.815033 0.385559 0.645416 0.849060 0.385468 0.644135 0.879211 0.385529 0.643005 0.905945 0.385681 0.641998 0.929749 0.385864 0.641113 0.951141 0.386078 0.640259 0.970398 0.386322 0.639343 0.987946 0.386658 0.638550 1.000000 0.392059 0.638641 1.000000 0.411407 0.641998 0.000244 0.408386 0.661377 0.049927 0.407776 0.660004 0.097321 0.407349 0.658661 0.141418 0.407135 0.657410 0.181335 0.406952 0.656219 0.216858 0.407013 0.655182 0.248535 0.407196 0.654266 0.277527 0.407471 0.653412 0.304749 0.407837 0.652618 0.331085 0.408142 0.651825 0.357483 0.408569 0.651031 0.384521 0.408966 0.650177 0.413055 0.409302 0.649384 0.444489 0.410645 0.649597 0.478394 0.412018 0.649750 0.515137 0.413361 0.649872 0.556274 0.414673 0.650024 0.600922 0.415955 0.650177 0.647736 0.417297 0.650299 0.693298 0.416992 0.648773 0.737488 0.416626 0.647156 0.778992 0.416321 0.645691 0.816528 0.416168 0.644318 0.849823 0.416077 0.643066 0.879547 0.416077 0.641998 0.905914 0.416138 0.640930 0.929474 0.416260 0.639984 0.950684 0.416473 0.639069 0.969757 0.416687 0.638245 0.987213 0.416962 0.637360 1.000000 0.421234 0.637451 1.000000 0.440002 0.642059 0.008636 0.440674 0.661743 0.058380 0.440338 0.660278 0.105682 0.439972 0.658905 0.149261 0.439728 0.657654 0.188629 0.439636 0.656494 0.223450 0.439758 0.655487 0.254486 0.439972 0.654541 0.283081 0.440308 0.653717 0.309998 0.440704 0.652893 0.336151 0.441101 0.652130 0.362488 0.441437 0.651306 0.389587 0.441711 0.650421 0.418060 0.442017 0.649475 0.448761 0.442444 0.648621 0.482727 0.443695 0.648773 0.519745 0.444977 0.648895 0.560974 0.446259 0.649078 0.605469 0.447449 0.649200 0.651764 0.448578 0.649231 0.696594 0.448181 0.647552 0.740051 0.447754 0.645996 0.780762 0.447479 0.644531 0.817596 0.447266 0.643219 0.850464 0.447083 0.641968 0.879761 0.447052 0.640778 0.905853 0.447144 0.639832 0.929169 0.447266 0.638702 0.950134 0.447449 0.637848 0.969116 0.447632 0.636871 0.986420 0.447845 0.636078 1.000000 0.451019 0.636108 1.000000 0.469177 0.641998 0.018524 0.473846 0.661957 0.068268 0.473572 0.660522 0.115082 0.473267 0.659149 0.157959 0.473175 0.657898 0.196381 0.473053 0.656738 0.230316 0.473236 0.655731 0.260681 0.473541 0.654816 0.288757 0.473785 0.653961 0.315369 0.474274 0.653198 0.341339 0.474609 0.652405 0.367584 0.474976 0.651550 0.394714 0.475250 0.650635 0.423218 0.475464 0.649658 0.453766 0.475586 0.648529 0.486969 0.476013 0.647766 0.524109 0.477203 0.647888 0.565369 0.478394 0.648010 0.609558 0.479523 0.648102 0.655243 0.480377 0.647980 0.699402 0.479950 0.646332 0.742218 0.479492 0.644745 0.782349 0.479156 0.643311 0.818573 0.478912 0.641937 0.851013 0.478760 0.640625 0.879913 0.478729 0.639465 0.905701 0.478790 0.638367 0.928741 0.478882 0.637329 0.949585 0.479034 0.636414 0.968353 0.479187 0.635559 0.985565 0.479431 0.634613 1.000000 0.481323 0.634460 1.000000 0.498993 0.641968 0.029541 0.507904 0.662109 0.079010 0.507568 0.660645 0.125153 0.507385 0.659332 0.167084 0.507324 0.658051 0.204376 0.507416 0.656952 0.237366 0.507568 0.655945 0.267029 0.507812 0.655090 0.294495 0.508179 0.654236 0.320770 0.508606 0.653442 0.346527 0.508911 0.652588 0.372650 0.509216 0.651733 0.399719 0.509491 0.650818 0.428314 0.509735 0.649841 0.458832 0.509827 0.648682 0.491669 0.509735 0.647430 0.528137 0.510162 0.646759 0.569305 0.511261 0.646881 0.613159 0.512299 0.647003 0.658112 0.512970 0.646606 0.701874 0.512451 0.644958 0.744171 0.511993 0.643402 0.783752 0.511658 0.641937 0.819519 0.511383 0.640472 0.851471 0.511230 0.639130 0.879974 0.511139 0.638031 0.905426 0.511169 0.636871 0.928314 0.511261 0.635895 0.948853 0.511322 0.634857 0.967560 0.511536 0.633972 0.984650 0.511719 0.633087 1.000000 0.512451 0.632660 1.000000 0.530334 0.641968 0.041840 0.544586 0.662201 0.090485 0.544312 0.660767 0.135681 0.544128 0.659454 0.176422 0.543945 0.658203 0.212463 0.544128 0.657166 0.244476 0.544342 0.656158 0.273315 0.544617 0.655304 0.300293 0.544922 0.654419 0.326111 0.545258 0.653625 0.351654 0.545624 0.652802 0.377655 0.545929 0.651947 0.404663 0.546112 0.650970 0.433167 0.546173 0.649963 0.463684 0.546173 0.648804 0.496399 0.546021 0.647522 0.532196 0.545685 0.646149 0.572662 0.546234 0.645660 0.616364 0.547272 0.645721 0.660919 0.547729 0.645142 0.704285 0.547180 0.643494 0.746094 0.546631 0.641907 0.785095 0.546234 0.640289 0.820343 0.545959 0.638916 0.851807 0.545715 0.637665 0.879974 0.545624 0.636475 0.905151 0.545593 0.635315 0.927795 0.545624 0.634369 0.948181 0.545715 0.633362 0.966705 0.545807 0.632416 0.983673 0.546051 0.631683 0.999390 0.546143 0.630859 1.000000 0.563812 0.642059 0.054443 0.583801 0.662292 0.102295 0.583527 0.660858 0.146332 0.583435 0.659576 0.185730 0.583313 0.658356 0.220490 0.583405 0.657288 0.251404 0.583649 0.656311 0.279449 0.583893 0.655426 0.305878 0.584198 0.654572 0.331329 0.584442 0.653809 0.356598 0.584717 0.652954 0.382446 0.584930 0.652100 0.409271 0.585022 0.651123 0.437744 0.585022 0.650085 0.468048 0.584869 0.648895 0.500702 0.584503 0.647614 0.536713 0.584076 0.646149 0.576263 0.583618 0.644592 0.619537 0.584259 0.644287 0.663666 0.584534 0.643555 0.706573 0.583923 0.641846 0.747894 0.583344 0.640228 0.786316 0.582855 0.638672 0.820984 0.582489 0.637329 0.852081 0.582214 0.635986 0.879883 0.582062 0.634888 0.904785 0.582001 0.633728 0.927155 0.582001 0.632751 0.947357 0.582001 0.631775 0.965759 0.582123 0.630920 0.982666 0.582214 0.630188 0.998352 0.582367 0.629425 1.000000 0.599030 0.642181 0.067413 0.625305 0.662323 0.114136 0.624908 0.660889 0.156860 0.624695 0.659607 0.194733 0.624634 0.658447 0.228180 0.624695 0.657410 0.258057 0.624756 0.656433 0.285370 0.624939 0.655579 0.311279 0.625153 0.654785 0.336304 0.625397 0.653931 0.361267 0.625458 0.653137 0.386902 0.625549 0.652252 0.413544 0.625580 0.651245 0.441833 0.625397 0.650208 0.472290 0.625153 0.648987 0.504974 0.624695 0.647583 0.541199 0.624176 0.646088 0.580841 0.623566 0.644501 0.622711 0.622833 0.642822 0.666260 0.622864 0.641846 0.708771 0.622162 0.640167 0.749573 0.621490 0.638580 0.787415 0.620941 0.637024 0.821594 0.620483 0.635681 0.852264 0.620209 0.634399 0.879730 0.619934 0.633240 0.904297 0.619781 0.632141 0.926514 0.619781 0.631165 0.946533 0.619720 0.630341 0.964813 0.619751 0.629517 0.981628 0.619812 0.628784 0.997223 0.619904 0.628021 1.000000 0.635437 0.642365 0.080170 0.667694 0.662170 0.125519 0.667175 0.660675 0.166687 0.666870 0.659332 0.202972 0.666656 0.658173 0.235138 0.666626 0.657166 0.263947 0.666626 0.656158 0.290527 0.666626 0.655273 0.315765 0.666687 0.654388 0.340332 0.666718 0.653564 0.364990 0.666718 0.652710 0.390381 0.666626 0.651764 0.417023 0.666443 0.650726 0.445404 0.666168 0.649597 0.475861 0.665741 0.648224 0.508698 0.665161 0.646851 0.545105 0.664520 0.645203 0.584717 0.663696 0.643555 0.626312 0.662872 0.641846 0.669678 0.662811 0.640961 0.711761 0.662109 0.639282 0.752045 0.661438 0.637756 0.789398 0.660828 0.636292 0.823059 0.660370 0.634979 0.853363 0.660004 0.633759 0.880463 0.659729 0.632660 0.904816 0.659576 0.631714 0.926727 0.659424 0.630798 0.946716 0.659454 0.630005 0.964844 0.659363 0.629272 0.981537 0.659424 0.628571 0.997040 0.659485 0.627991 1.000000 0.672516 0.642639 0.090942 0.708923 0.660370 0.134949 0.708435 0.659088 0.174561 0.708038 0.657745 0.209290 0.707764 0.656647 0.240234 0.707550 0.655579 0.268097 0.707458 0.654663 0.294006 0.707367 0.653870 0.318695 0.707306 0.653046 0.342896 0.707184 0.652130 0.367462 0.707031 0.651184 0.392883 0.706848 0.650177 0.419586 0.706512 0.649109 0.448120 0.706146 0.647949 0.478729 0.705627 0.646606 0.511688 0.704895 0.645081 0.548187 0.704132 0.643494 0.587677 0.703278 0.641846 0.629028 0.702301 0.640076 0.672516 0.702667 0.639648 0.715271 0.702942 0.639130 0.755035 0.702209 0.637604 0.791870 0.701508 0.636200 0.825012 0.700989 0.634918 0.854828 0.700562 0.633728 0.881622 0.700226 0.632690 0.905701 0.699982 0.631744 0.927399 0.699799 0.630920 0.947113 0.699585 0.630157 0.965088 0.699554 0.629517 0.981689 0.699463 0.628906 0.997101 0.699463 0.628357 1.000000 0.709625 0.643097 0.101257 0.749756 0.658844 0.143707 0.749084 0.657532 0.181732 0.748657 0.656281 0.214996 0.748260 0.655212 0.244751 0.747955 0.654114 0.271698 0.747742 0.653259 0.296967 0.747528 0.652374 0.321381 0.747345 0.651520 0.345459 0.747070 0.650574 0.369965 0.746826 0.649628 0.395416 0.746552 0.648590 0.422180 0.746094 0.647491 0.450836 0.745575 0.646271 0.481537 0.744934 0.644836 0.514618 0.744110 0.643372 0.551147 0.743225 0.641754 0.590607 0.742279 0.640076 0.631714 0.741272 0.638367 0.674957 0.741699 0.638123 0.717651 0.742340 0.638092 0.757874 0.742432 0.637512 0.794128 0.741699 0.636139 0.826813 0.741058 0.634888 0.856262 0.740540 0.633759 0.882660 0.740173 0.632812 0.906494 0.739777 0.631927 0.927979 0.739532 0.631165 0.947479 0.739319 0.630463 0.965363 0.739166 0.629883 0.981842 0.739136 0.629364 0.997192 0.739502 0.629150 1.000000 0.746918 0.644165 0.110870 0.789215 0.657257 0.151611 0.788452 0.655884 0.187988 0.787903 0.654724 0.219910 0.787415 0.653778 0.248596 0.787018 0.652740 0.274933 0.786652 0.651794 0.299866 0.786346 0.650940 0.324036 0.786072 0.649994 0.348053 0.785736 0.649109 0.372528 0.785339 0.648071 0.397980 0.784943 0.646942 0.424866 0.784393 0.645874 0.453522 0.783813 0.644592 0.484344 0.782990 0.643158 0.517517 0.782104 0.641693 0.554108 0.781128 0.640045 0.593292 0.780090 0.638458 0.634308 0.778961 0.636780 0.677216 0.779480 0.636658 0.719452 0.780090 0.636688 0.759735 0.780579 0.636688 0.796265 0.780609 0.636139 0.828491 0.779907 0.634979 0.857544 0.779358 0.633911 0.883636 0.778900 0.633026 0.907135 0.778412 0.632202 0.928467 0.778076 0.631531 0.947815 0.777832 0.630920 0.965637 0.778015 0.630615 0.981964 0.778168 0.630493 0.997223 0.778351 0.630402 1.000000 0.782684 0.645538 0.119385 0.826599 0.655823 0.158569 0.825836 0.654510 0.193329 0.825134 0.653351 0.224335 0.824554 0.652313 0.252319 0.824036 0.651276 0.278229 0.823639 0.650299 0.302765 0.823273 0.649414 0.326752 0.822845 0.648468 0.350616 0.822388 0.647430 0.375092 0.821930 0.646545 0.400574 0.821381 0.645416 0.427490 0.820770 0.644165 0.456299 0.820068 0.643005 0.487061 0.819244 0.641602 0.520325 0.818207 0.640045 0.556885 0.817169 0.638489 0.596008 0.816040 0.636871 0.636719 0.814972 0.635345 0.679352 0.815460 0.635345 0.721100 0.815918 0.635376 0.760864 0.816406 0.635468 0.797424 0.816864 0.635529 0.830017 0.816864 0.635193 0.858673 0.816193 0.634216 0.884430 0.815582 0.633362 0.907745 0.815155 0.632660 0.928986 0.815033 0.632263 0.948212 0.815033 0.632019 0.965820 0.815002 0.631897 0.982086 0.815063 0.631897 0.997192 0.815033 0.631927 1.000000 0.816467 0.647095 0.126862 0.861389 0.654419 0.164764 0.860565 0.652954 0.198486 0.859772 0.651947 0.228668 0.859131 0.650818 0.256104 0.858612 0.649780 0.281464 0.858063 0.648773 0.305756 0.857605 0.647949 0.329468 0.857086 0.646973 0.353241 0.856598 0.645966 0.377716 0.856049 0.644928 0.403168 0.855408 0.643860 0.430145 0.854675 0.642700 0.458954 0.853882 0.641388 0.489807 0.852997 0.640015 0.523041 0.851898 0.638580 0.559570 0.850769 0.637054 0.598511 0.849579 0.635498 0.639038 0.848602 0.634094 0.681274 0.849030 0.634186 0.722595 0.849396 0.634277 0.761780 0.849731 0.634369 0.797943 0.850128 0.634552 0.830566 0.850555 0.634735 0.859650 0.850525 0.634613 0.885437 0.850189 0.634094 0.908539 0.849854 0.633728 0.929443 0.849640 0.633514 0.948456 0.849487 0.633362 0.965912 0.849304 0.633392 0.982086 0.849121 0.633514 0.997192 0.849060 0.633636 1.000000 0.847839 0.648834 0.134003 0.893036 0.652954 0.170898 0.892151 0.651672 0.203552 0.891327 0.650543 0.232941 0.890625 0.649323 0.259766 0.890045 0.648438 0.284698 0.889435 0.647308 0.308624 0.888885 0.646484 0.332184 0.888306 0.645538 0.355865 0.887756 0.644440 0.380219 0.887115 0.643494 0.405701 0.886414 0.642395 0.432709 0.885681 0.641296 0.461517 0.884796 0.640015 0.492371 0.883820 0.638702 0.525696 0.882721 0.637207 0.562073 0.881531 0.635773 0.600830 0.880341 0.634277 0.641144 0.879395 0.633026 0.682983 0.879700 0.633148 0.723785 0.880005 0.633331 0.762543 0.880310 0.633514 0.798248 0.880585 0.633759 0.830841 0.881104 0.634247 0.860107 0.881592 0.634888 0.886169 0.881897 0.635315 0.908997 0.881470 0.635101 0.929657 0.881042 0.635040 0.948547 0.880737 0.635010 0.965942 0.880463 0.635162 0.982086 0.880219 0.635315 0.997162 0.879944 0.635559 1.000000 0.876373 0.650726 0.141083 0.921295 0.651428 0.176819 0.920380 0.650299 0.208557 0.919586 0.649109 0.237122 0.918854 0.647919 0.263367 0.918182 0.647034 0.287872 0.917542 0.645996 0.311554 0.916931 0.645020 0.334900 0.916351 0.644165 0.358429 0.915680 0.643066 0.382721 0.915039 0.642120 0.408203 0.914307 0.641083 0.435181 0.913452 0.639954 0.464020 0.912537 0.638733 0.494812 0.911499 0.637451 0.528137 0.910400 0.636078 0.564392 0.909180 0.634674 0.602905 0.907928 0.633179 0.642975 0.907104 0.632202 0.684479 0.907288 0.632385 0.724762 0.907532 0.632629 0.763641 0.907867 0.633087 0.799133 0.908264 0.633667 0.831055 0.908630 0.634369 0.859772 0.908966 0.635071 0.885681 0.909302 0.635864 0.909210 0.909637 0.636688 0.929749 0.909119 0.636719 0.948578 0.908783 0.636780 0.965912 0.908325 0.636993 0.982025 0.908020 0.637268 0.997101 0.907684 0.637512 1.000000 0.902161 0.652710 0.147980 0.946472 0.650146 0.182617 0.945557 0.648834 0.213379 0.944733 0.647736 0.241211 0.943970 0.646698 0.266876 0.943298 0.645599 0.290985 0.942627 0.644623 0.314392 0.942017 0.643799 0.337463 0.941376 0.642853 0.360931 0.940674 0.641937 0.385193 0.940002 0.640930 0.410583 0.939240 0.639954 0.437531 0.938354 0.638885 0.466339 0.937408 0.637726 0.497131 0.936340 0.636444 0.530365 0.935242 0.635071 0.566498 0.934082 0.633698 0.604736 0.932770 0.632355 0.644623 0.932007 0.631592 0.686249 0.932251 0.632050 0.726562 0.932526 0.632660 0.764557 0.932770 0.633270 0.799194 0.933044 0.634033 0.830658 0.933258 0.634796 0.859161 0.933502 0.635620 0.884918 0.933716 0.636536 0.908356 0.933960 0.637451 0.929596 0.934204 0.638397 0.948608 0.933838 0.638763 0.965912 0.933411 0.639008 0.982056 0.932983 0.639282 0.997040 0.932556 0.639557 1.000000 0.925385 0.654816 0.154572 0.969025 0.648743 0.188141 0.968140 0.647522 0.217957 0.967316 0.646484 0.245148 0.966553 0.645447 0.270233 0.965912 0.644379 0.293976 0.965210 0.643463 0.317078 0.964569 0.642517 0.340027 0.963867 0.641663 0.363342 0.963196 0.640778 0.387482 0.962494 0.639801 0.412872 0.961700 0.638885 0.439728 0.960846 0.637878 0.468506 0.959869 0.636841 0.499146 0.958832 0.635620 0.532318 0.957703 0.634399 0.568329 0.956512 0.633057 0.606964 0.955322 0.632019 0.647003 0.954681 0.631653 0.687744 0.954865 0.632294 0.727264 0.954987 0.632996 0.764557 0.955139 0.633789 0.798798 0.955292 0.634613 0.830078 0.955414 0.635529 0.858368 0.955566 0.636444 0.884064 0.955780 0.637390 0.907410 0.955902 0.638397 0.928741 0.956055 0.639404 0.948334 0.956207 0.640411 0.966003 0.955994 0.641022 0.982086 0.955536 0.641418 0.997040 0.955139 0.642090 1.000000 0.946625 0.657623 0.160919 0.989410 0.647552 0.193359 0.988495 0.646271 0.222351 0.987732 0.645233 0.248840 0.987000 0.644196 0.273376 0.986298 0.643250 0.296844 0.985657 0.642395 0.319611 0.985016 0.641602 0.342346 0.984344 0.640717 0.365540 0.983643 0.639862 0.389618 0.982941 0.639038 0.414886 0.982117 0.638031 0.441711 0.981293 0.637085 0.470398 0.980316 0.636047 0.500916 0.979279 0.634979 0.534698 0.978210 0.634033 0.570892 0.977020 0.633057 0.608887 0.975861 0.632172 0.648254 0.975220 0.632050 0.688293 0.975342 0.632812 0.727234 0.975433 0.633667 0.764160 0.975525 0.634613 0.798279 0.975586 0.635468 0.829315 0.975647 0.636444 0.857605 0.975769 0.637451 0.883331 0.975800 0.638458 0.906769 0.975891 0.639465 0.928101 0.976013 0.640503 0.947662 0.976105 0.641663 0.965698 0.976196 0.643066 0.982147 0.976135 0.644287 0.997040 0.975647 0.645233 1.000000 0.965912 0.660828 0.178070 1.000000 0.644928 0.208191 1.000000 0.644287 0.235199 1.000000 0.643524 0.259918 1.000000 0.642883 0.282990 1.000000 0.642303 0.305115 1.000000 0.641571 0.326721 1.000000 0.640839 0.348328 1.000000 0.640198 0.370483 1.000000 0.639496 0.393494 1.000000 0.638580 0.417725 1.000000 0.637665 0.443420 1.000000 0.636536 0.472595 0.999084 0.635803 0.503510 0.998047 0.635071 0.536743 0.997009 0.634277 0.572327 0.995880 0.633423 0.609680 0.994720 0.632812 0.648407 0.994049 0.632721 0.688019 0.994080 0.633606 0.726776 0.994110 0.634552 0.763550 0.994141 0.635559 0.797607 0.994141 0.636536 0.828583 0.994141 0.637543 0.857025 0.994202 0.638580 0.882812 0.994232 0.639618 0.906281 0.994293 0.640717 0.927673 0.994293 0.642120 0.947266 0.994293 0.643677 0.965118 0.994385 0.645325 0.981720 0.994385 0.647003 0.997040 0.994324 0.648651 1.000000 0.983612 0.663940 0.208557 1.000000 0.642029 0.237274 1.000000 0.642120 0.263092 1.000000 0.642090 0.286896 1.000000 0.642212 0.309204 1.000000 0.642212 0.330597 1.000000 0.642242 0.351654 1.000000 0.642395 0.372772 1.000000 0.642639 0.394379 1.000000 0.642700 0.416870 1.000000 0.642944 0.441101 1.000000 0.643372 0.466797 1.000000 0.644043 0.493896 1.000000 0.644562 0.523193 1.000000 0.645325 0.555237 1.000000 0.646088 0.589569 1.000000 0.646851 0.625427 1.000000 0.647766 0.662201 1.000000 0.648621 0.698853 1.000000 0.649567 0.734680 1.000000 0.650543 0.768677 1.000000 0.651520 0.800140 1.000000 0.652496 0.828949 1.000000 0.653534 0.855316 1.000000 0.654633 0.879303 1.000000 0.655975 0.901093 1.000000 0.657471 0.921082 1.000000 0.659027 0.939301 1.000000 0.660706 0.956055 1.000000 0.662445 0.971649 1.000000 0.663910 0.986206 1.000000 0.665222 1.000000 1.000000 0.666504 0.000000 0.016846 0.652283 0.029877 0.001495 0.669678 0.077759 0.005280 0.670837 0.122589 0.008514 0.671783 0.163635 0.010223 0.672302 0.200409 0.011902 0.672791 0.233246 0.013428 0.673248 0.262817 0.015015 0.673706 0.290344 0.016510 0.674194 0.316559 0.018066 0.674622 0.342224 0.019531 0.674988 0.367920 0.021057 0.675415 0.394501 0.022522 0.675842 0.422455 0.024048 0.676239 0.452545 0.025665 0.676605 0.485016 0.027222 0.677032 0.520844 0.028870 0.677368 0.561768 0.030487 0.677704 0.607361 0.032257 0.678040 0.655914 0.033997 0.678375 0.704742 0.034729 0.677734 0.751862 0.034637 0.676178 0.796295 0.034698 0.674774 0.836121 0.034851 0.673401 0.871399 0.035126 0.672241 0.902466 0.035583 0.671173 0.929840 0.036194 0.670135 0.954010 0.037109 0.669434 0.975525 0.038055 0.668549 0.994781 0.039185 0.667725 1.000000 0.059082 0.662628 1.000000 0.085602 0.657257 0.000000 0.055267 0.656799 0.030762 0.042145 0.671051 0.077545 0.043304 0.671173 0.121582 0.044891 0.671661 0.162323 0.046387 0.672089 0.198975 0.047852 0.672577 0.231628 0.049286 0.673065 0.261414 0.050751 0.673431 0.289093 0.052185 0.673859 0.315308 0.053589 0.674316 0.340942 0.055054 0.674713 0.366669 0.056519 0.675110 0.393311 0.057922 0.675507 0.421265 0.059448 0.675873 0.451294 0.061035 0.676270 0.483917 0.062592 0.676605 0.520020 0.064240 0.676910 0.561676 0.065979 0.677307 0.607635 0.067749 0.677582 0.656799 0.069641 0.677887 0.705719 0.070312 0.677094 0.752808 0.070160 0.675568 0.796936 0.070007 0.674133 0.836609 0.070068 0.672638 0.871643 0.070404 0.671448 0.902527 0.070984 0.670441 0.929657 0.071625 0.669525 0.953674 0.072571 0.668640 0.975006 0.073517 0.667755 0.994141 0.074646 0.667053 1.000000 0.092987 0.662720 1.000000 0.118866 0.657776 0.000000 0.090912 0.659576 0.031219 0.079102 0.672089 0.076172 0.078857 0.671051 0.119904 0.080139 0.671387 0.160461 0.081543 0.671875 0.197449 0.082916 0.672333 0.230377 0.084259 0.672729 0.260132 0.085663 0.673218 0.287811 0.086975 0.673615 0.314148 0.088348 0.674011 0.339691 0.089783 0.674377 0.365479 0.091187 0.674744 0.392151 0.092651 0.675110 0.420166 0.094177 0.675476 0.450562 0.095703 0.675812 0.483826 0.097382 0.676147 0.520508 0.099091 0.676483 0.562500 0.100830 0.676758 0.609009 0.102661 0.677124 0.658234 0.104462 0.677368 0.707092 0.104828 0.676422 0.754089 0.104584 0.674896 0.798004 0.104553 0.673370 0.837372 0.104614 0.671906 0.872101 0.105072 0.670898 0.902679 0.105591 0.669647 0.929626 0.106354 0.668640 0.953400 0.107239 0.667938 0.974579 0.108185 0.666992 0.993530 0.109253 0.666229 1.000000 0.126221 0.662598 1.000000 0.151337 0.658234 0.000000 0.125458 0.660645 0.030853 0.114960 0.673096 0.075684 0.114716 0.672058 0.118378 0.114532 0.671173 0.159180 0.115845 0.671631 0.196106 0.117126 0.672058 0.229004 0.118378 0.672485 0.258911 0.119720 0.672852 0.286530 0.121033 0.673279 0.312927 0.122375 0.673615 0.338501 0.123779 0.674042 0.364380 0.125214 0.674377 0.391296 0.126617 0.674683 0.420013 0.128235 0.675049 0.450897 0.129791 0.675354 0.484497 0.131500 0.675690 0.521881 0.133270 0.676025 0.564331 0.134918 0.676239 0.610931 0.136566 0.676483 0.660370 0.138245 0.676727 0.709045 0.138580 0.675659 0.755859 0.138336 0.674072 0.799469 0.138336 0.672546 0.838409 0.138519 0.671173 0.872864 0.138885 0.670044 0.903046 0.139435 0.668884 0.929657 0.140167 0.668091 0.953186 0.141052 0.667114 0.974121 0.141968 0.666321 0.992920 0.142975 0.665649 1.000000 0.158478 0.662415 1.000000 0.182922 0.658478 0.000000 0.159149 0.661133 0.030548 0.149994 0.674133 0.075623 0.149658 0.673004 0.118195 0.149170 0.671997 0.157837 0.149292 0.671326 0.194763 0.150452 0.671722 0.227814 0.151703 0.672119 0.257690 0.152985 0.672516 0.285278 0.154297 0.672882 0.311676 0.155640 0.673248 0.337646 0.157104 0.673584 0.364075 0.158508 0.673920 0.391541 0.160065 0.674255 0.420532 0.161591 0.674591 0.451904 0.163269 0.674896 0.486053 0.164886 0.675140 0.523682 0.166412 0.675385 0.566498 0.167938 0.675659 0.613586 0.169617 0.675873 0.663055 0.171326 0.676086 0.711578 0.171478 0.674957 0.758057 0.171356 0.673340 0.801239 0.171356 0.671753 0.839722 0.171570 0.670380 0.873657 0.171967 0.669250 0.903473 0.172424 0.668152 0.929749 0.173126 0.667084 0.953003 0.173920 0.666260 0.973694 0.174774 0.665527 0.992371 0.175690 0.664703 1.000000 0.189850 0.662048 1.000000 0.213593 0.658966 0.000000 0.191650 0.662048 0.030518 0.183960 0.675049 0.075592 0.183472 0.673920 0.118134 0.183044 0.672852 0.157471 0.182770 0.671906 0.193512 0.183105 0.671417 0.226501 0.184296 0.671783 0.256439 0.185577 0.672119 0.284485 0.186920 0.672516 0.311493 0.188293 0.672852 0.337860 0.189728 0.673157 0.364685 0.191162 0.673462 0.392517 0.192749 0.673798 0.421906 0.194275 0.674072 0.453613 0.195679 0.674286 0.488007 0.197174 0.674530 0.526154 0.198761 0.674774 0.569458 0.200317 0.674957 0.616791 0.201965 0.675201 0.666260 0.203583 0.675385 0.714447 0.203674 0.674042 0.760651 0.203522 0.672455 0.803223 0.203491 0.671021 0.841095 0.203705 0.669739 0.874573 0.204041 0.668365 0.903931 0.204559 0.667450 0.929871 0.205139 0.666504 0.952850 0.205872 0.665588 0.973358 0.206635 0.664703 0.991791 0.207428 0.664093 1.000000 0.220276 0.661743 1.000000 0.243256 0.659271 0.000000 0.223419 0.662903 0.030457 0.217010 0.675934 0.075562 0.216492 0.674805 0.118103 0.216095 0.673737 0.157440 0.215851 0.672760 0.193054 0.215820 0.671844 0.225647 0.216125 0.671387 0.256348 0.217438 0.671753 0.284821 0.218781 0.672028 0.312073 0.220184 0.672363 0.338989 0.221710 0.672729 0.365997 0.223083 0.673004 0.393982 0.224426 0.673187 0.423737 0.225800 0.673462 0.455811 0.227234 0.673676 0.490662 0.228760 0.673889 0.529419 0.230316 0.674164 0.573151 0.231842 0.674347 0.620697 0.233459 0.674530 0.670105 0.235138 0.674744 0.717773 0.235016 0.673279 0.763428 0.234833 0.671661 0.805359 0.234772 0.670074 0.842682 0.234985 0.668823 0.875549 0.235291 0.667664 0.904510 0.235718 0.666687 0.930023 0.236267 0.665619 0.952698 0.236877 0.664734 0.972931 0.237549 0.663879 0.991211 0.238251 0.663239 1.000000 0.249786 0.661560 1.000000 0.272095 0.659760 0.000000 0.254272 0.663757 0.030426 0.249237 0.676758 0.075531 0.248871 0.675629 0.118073 0.248535 0.674561 0.157959 0.248199 0.673492 0.194489 0.248077 0.672577 0.227203 0.248108 0.671692 0.257385 0.248657 0.671265 0.286072 0.250031 0.671600 0.313477 0.251404 0.671906 0.340424 0.252716 0.672119 0.367676 0.253998 0.672394 0.396057 0.255371 0.672607 0.426208 0.256836 0.672821 0.458588 0.258209 0.673035 0.493927 0.259766 0.673279 0.533264 0.261292 0.673431 0.577301 0.262787 0.673645 0.624878 0.264374 0.673828 0.674103 0.265930 0.674011 0.721313 0.265686 0.672333 0.766296 0.265472 0.670807 0.807587 0.265442 0.669342 0.844238 0.265564 0.668060 0.876556 0.265839 0.666840 0.904999 0.266205 0.665802 0.930176 0.266663 0.664795 0.952545 0.267181 0.663910 0.972534 0.267792 0.663025 0.990662 0.268402 0.662415 1.000000 0.278625 0.661072 1.000000 0.300293 0.659943 0.000000 0.284668 0.664551 0.030365 0.281006 0.677612 0.076172 0.280548 0.676422 0.119904 0.280151 0.675293 0.160492 0.280029 0.674194 0.197205 0.279968 0.673218 0.230133 0.280090 0.672394 0.260040 0.280243 0.671539 0.288025 0.280670 0.671051 0.315430 0.281952 0.671295 0.342590 0.283264 0.671509 0.370026 0.284576 0.671722 0.398712 0.286011 0.671967 0.429199 0.287415 0.672150 0.461975 0.288849 0.672394 0.497681 0.290314 0.672577 0.537445 0.291840 0.672760 0.581787 0.293335 0.672943 0.629425 0.294830 0.673096 0.678192 0.296204 0.673157 0.724915 0.295929 0.671387 0.769318 0.295715 0.669800 0.809814 0.295654 0.668457 0.845764 0.295746 0.667084 0.877502 0.295990 0.666016 0.905457 0.296265 0.664978 0.930267 0.296692 0.664032 0.952332 0.297180 0.663116 0.972107 0.297607 0.662415 0.990051 0.298157 0.661591 1.000000 0.307098 0.660522 1.000000 0.328094 0.660248 0.000000 0.314636 0.665894 0.032532 0.312531 0.678314 0.079376 0.312042 0.677094 0.123566 0.311768 0.675873 0.164459 0.311646 0.674774 0.201202 0.311493 0.673737 0.233826 0.311523 0.672852 0.263550 0.311646 0.671997 0.291229 0.311890 0.671204 0.318054 0.312408 0.670624 0.345306 0.313721 0.670898 0.372894 0.315033 0.671082 0.401886 0.316467 0.671265 0.432678 0.317871 0.671448 0.465820 0.319305 0.671661 0.501770 0.320770 0.671844 0.542023 0.322235 0.671967 0.586670 0.323730 0.672180 0.634216 0.325165 0.672363 0.682404 0.326233 0.672089 0.728516 0.325958 0.670380 0.772186 0.325775 0.668945 0.811920 0.325684 0.667511 0.847168 0.325714 0.666168 0.878326 0.325897 0.665009 0.905853 0.326141 0.664032 0.930298 0.326447 0.663025 0.952057 0.326843 0.662262 0.971588 0.327209 0.661499 0.989410 0.327637 0.660614 1.000000 0.335358 0.660004 1.000000 0.355804 0.660461 0.000000 0.344727 0.669678 0.036926 0.343933 0.678925 0.084259 0.343567 0.677643 0.128754 0.343231 0.676392 0.169342 0.342987 0.675201 0.205658 0.342896 0.674194 0.238159 0.342896 0.673248 0.267731 0.343079 0.672394 0.295349 0.343384 0.671600 0.321899 0.343811 0.670776 0.348419 0.344299 0.670135 0.376282 0.345642 0.670319 0.405457 0.347046 0.670532 0.436462 0.348389 0.670685 0.470001 0.349823 0.670898 0.506226 0.351257 0.671082 0.546814 0.352692 0.671265 0.591553 0.354126 0.671387 0.638916 0.355530 0.671509 0.686554 0.356384 0.671143 0.732025 0.356079 0.669434 0.774963 0.355865 0.667938 0.813812 0.355743 0.666565 0.848419 0.355743 0.665314 0.879028 0.355896 0.664124 0.906097 0.356049 0.663086 0.930176 0.356293 0.662231 0.951630 0.356537 0.661316 0.971069 0.356873 0.660522 0.988708 0.357178 0.659729 1.000000 0.363770 0.659149 1.000000 0.383636 0.660431 0.000000 0.375824 0.675140 0.043304 0.375671 0.679413 0.090454 0.375214 0.678040 0.134735 0.374756 0.676758 0.175171 0.374634 0.675598 0.211151 0.374573 0.674500 0.243256 0.374695 0.673584 0.272583 0.374908 0.672729 0.299957 0.375305 0.671906 0.326447 0.375641 0.671112 0.352844 0.376038 0.670288 0.379913 0.376495 0.669556 0.409332 0.377869 0.669739 0.440552 0.379181 0.669922 0.474304 0.380615 0.670074 0.510864 0.381989 0.670227 0.551758 0.383392 0.670349 0.596497 0.384766 0.670532 0.643677 0.386078 0.670654 0.690491 0.386719 0.669983 0.735291 0.386383 0.668365 0.777435 0.386108 0.666870 0.815552 0.385986 0.665466 0.849457 0.385986 0.664215 0.879456 0.385986 0.663177 0.906128 0.386078 0.662048 0.929932 0.386230 0.661102 0.951233 0.386444 0.660187 0.970490 0.386780 0.659363 0.988007 0.387054 0.658569 1.000000 0.392456 0.658295 1.000000 0.411774 0.660583 0.000702 0.407898 0.681122 0.050537 0.407410 0.679718 0.097870 0.407013 0.678345 0.141876 0.406830 0.677063 0.181885 0.406708 0.675903 0.217224 0.406647 0.674835 0.248871 0.406860 0.673859 0.277802 0.407196 0.673035 0.304993 0.407562 0.672241 0.331268 0.407928 0.671417 0.357605 0.408325 0.670563 0.384705 0.408691 0.669678 0.413361 0.409088 0.668854 0.444794 0.410431 0.669067 0.478668 0.411774 0.669189 0.515503 0.413147 0.669342 0.556641 0.414429 0.669464 0.601288 0.415741 0.669586 0.648071 0.417084 0.669708 0.694122 0.417389 0.668854 0.738251 0.417084 0.667297 0.779602 0.416748 0.665741 0.816925 0.416565 0.664429 0.850189 0.416473 0.663177 0.879761 0.416473 0.662018 0.906128 0.416565 0.660950 0.929626 0.416626 0.660034 0.950745 0.416809 0.658966 0.969849 0.417084 0.658112 0.987244 0.417358 0.657227 1.000000 0.421631 0.657196 1.000000 0.440369 0.660583 0.009369 0.440308 0.681396 0.059296 0.439972 0.679993 0.106476 0.439636 0.678589 0.150024 0.439423 0.677307 0.189270 0.439423 0.676117 0.223846 0.439514 0.675079 0.254883 0.439697 0.674164 0.283356 0.440063 0.673309 0.310211 0.440430 0.672485 0.336395 0.440796 0.671631 0.362640 0.441132 0.670807 0.389771 0.441559 0.669922 0.418335 0.441803 0.668884 0.449066 0.442169 0.668091 0.483124 0.443512 0.668213 0.520081 0.444733 0.668335 0.561310 0.445984 0.668457 0.605774 0.447235 0.668579 0.652130 0.448456 0.668701 0.697418 0.448578 0.667694 0.740692 0.448181 0.666107 0.781250 0.447815 0.664581 0.818024 0.447601 0.663300 0.850830 0.447479 0.661987 0.880005 0.447449 0.660828 0.906067 0.447479 0.659790 0.929352 0.447632 0.658722 0.950226 0.447754 0.657715 0.969177 0.447998 0.656738 0.986450 0.448242 0.655884 1.000000 0.451324 0.655762 1.000000 0.469513 0.660492 0.019531 0.473602 0.681641 0.069397 0.473267 0.680206 0.115997 0.472961 0.678772 0.158844 0.472809 0.677490 0.197083 0.472870 0.676331 0.230713 0.472931 0.675262 0.261108 0.473267 0.674408 0.289093 0.473602 0.673523 0.315582 0.473938 0.672729 0.341583 0.474396 0.671875 0.367737 0.474701 0.670990 0.394897 0.475067 0.670074 0.423492 0.475250 0.669098 0.453979 0.475342 0.667969 0.487335 0.475800 0.667145 0.524414 0.476959 0.667297 0.565643 0.478088 0.667419 0.609833 0.479248 0.667542 0.655640 0.480377 0.667603 0.700134 0.480316 0.666412 0.742859 0.479889 0.664795 0.782837 0.479523 0.663330 0.819031 0.479279 0.661926 0.851349 0.479126 0.660583 0.880188 0.479126 0.659424 0.905884 0.479126 0.658325 0.928925 0.479187 0.657288 0.949677 0.479340 0.656342 0.968414 0.479523 0.655365 0.985565 0.479797 0.654541 1.000000 0.481659 0.654358 1.000000 0.499329 0.660400 0.030975 0.507538 0.681763 0.080353 0.507324 0.680298 0.126221 0.507172 0.678925 0.168030 0.507019 0.677612 0.205170 0.507202 0.676514 0.237854 0.507263 0.675507 0.267426 0.507629 0.674591 0.294769 0.507965 0.673706 0.320984 0.508331 0.672882 0.346802 0.508728 0.672058 0.372864 0.509033 0.671204 0.399963 0.509308 0.670258 0.428528 0.509430 0.669220 0.459106 0.509521 0.668060 0.491913 0.509430 0.666779 0.528412 0.509918 0.666138 0.569427 0.510956 0.666229 0.613312 0.512024 0.666321 0.658569 0.513031 0.666382 0.702576 0.512817 0.665009 0.744812 0.512360 0.663391 0.784241 0.511963 0.661865 0.819916 0.511749 0.660431 0.851807 0.511597 0.659119 0.880219 0.511475 0.657898 0.905640 0.511505 0.656860 0.928467 0.511597 0.655792 0.948975 0.511719 0.654846 0.967590 0.511871 0.653931 0.984680 0.512024 0.653076 1.000000 0.512787 0.652527 1.000000 0.530640 0.660400 0.043213 0.544281 0.681854 0.091858 0.543976 0.680359 0.136719 0.543793 0.678986 0.177368 0.543793 0.677765 0.213196 0.543793 0.676666 0.244873 0.544037 0.675659 0.273712 0.544281 0.674744 0.300507 0.544708 0.673889 0.326324 0.545013 0.673065 0.351898 0.545288 0.672241 0.377808 0.545624 0.671356 0.404816 0.545868 0.670380 0.433380 0.545929 0.669373 0.463806 0.545898 0.668182 0.496582 0.545715 0.666870 0.532379 0.545380 0.665436 0.572754 0.545898 0.664948 0.616486 0.546906 0.665009 0.661621 0.547913 0.665039 0.704956 0.547516 0.663483 0.746735 0.546997 0.661835 0.785553 0.546539 0.660309 0.820709 0.546265 0.658875 0.852173 0.546082 0.657562 0.880219 0.545959 0.656342 0.905365 0.545898 0.655273 0.927887 0.545990 0.654205 0.948242 0.546051 0.653229 0.966766 0.546173 0.652405 0.983734 0.546387 0.651581 0.999390 0.546539 0.650787 1.000000 0.564178 0.660431 0.056061 0.583527 0.681854 0.103668 0.583282 0.680450 0.147400 0.583099 0.679077 0.186676 0.582977 0.677826 0.221161 0.583038 0.676727 0.251801 0.583282 0.675812 0.279877 0.583588 0.674896 0.306091 0.583862 0.674072 0.331482 0.584167 0.673218 0.356812 0.584381 0.672394 0.382538 0.584595 0.671509 0.409454 0.584686 0.670502 0.437836 0.584656 0.669434 0.468140 0.584534 0.668274 0.500854 0.584198 0.666901 0.536865 0.583710 0.665466 0.576385 0.583160 0.663849 0.619690 0.583923 0.663574 0.664398 0.584900 0.663544 0.707245 0.584229 0.661835 0.748505 0.583679 0.660156 0.786804 0.583160 0.658630 0.821381 0.582825 0.657227 0.852417 0.582550 0.655945 0.880096 0.582367 0.654785 0.904938 0.582306 0.653595 0.927277 0.582306 0.652679 0.947449 0.582306 0.651672 0.965820 0.582397 0.650848 0.982697 0.582550 0.650055 0.998352 0.582703 0.649353 1.000000 0.599335 0.660675 0.069000 0.624878 0.681854 0.115601 0.624603 0.680389 0.157898 0.624329 0.679108 0.195618 0.624298 0.677917 0.228760 0.624207 0.676849 0.258423 0.624390 0.675934 0.285736 0.624634 0.675018 0.311371 0.624725 0.674164 0.336395 0.624969 0.673370 0.361389 0.625092 0.672516 0.386902 0.625153 0.671570 0.413605 0.625153 0.670624 0.441956 0.625031 0.669525 0.472382 0.624756 0.668274 0.505157 0.624390 0.666901 0.541321 0.623810 0.665375 0.580963 0.623108 0.663727 0.622803 0.622437 0.662048 0.667023 0.623169 0.661804 0.709412 0.622437 0.660095 0.750153 0.621796 0.658447 0.787903 0.621277 0.656952 0.822021 0.620789 0.655548 0.852570 0.620514 0.654266 0.879944 0.620300 0.653137 0.904480 0.620178 0.652100 0.926636 0.620087 0.651093 0.946594 0.620026 0.650238 0.964874 0.620056 0.649353 0.981659 0.620148 0.648651 0.997253 0.620239 0.647949 1.000000 0.635773 0.660767 0.082001 0.667511 0.681824 0.127136 0.667084 0.680420 0.167908 0.666687 0.679108 0.204132 0.666595 0.677948 0.235931 0.666504 0.676910 0.264679 0.666565 0.675995 0.291199 0.666687 0.675140 0.316284 0.666779 0.674347 0.340851 0.666779 0.673462 0.365509 0.666840 0.672638 0.390900 0.666718 0.671661 0.417633 0.666595 0.670624 0.446045 0.666321 0.669495 0.476532 0.665985 0.668213 0.509491 0.665436 0.666779 0.545868 0.664764 0.665192 0.585510 0.663971 0.663544 0.627106 0.663116 0.661804 0.669617 0.662384 0.660156 0.711609 0.661621 0.658478 0.751862 0.660980 0.656952 0.789124 0.660400 0.655457 0.822693 0.659912 0.654114 0.852905 0.659576 0.652924 0.879974 0.659241 0.651855 0.904297 0.659088 0.650848 0.926208 0.658966 0.649933 0.946106 0.658875 0.649170 0.964233 0.658905 0.648407 0.980957 0.658997 0.647736 0.996460 0.658936 0.647125 1.000000 0.672729 0.661133 0.093384 0.709290 0.680603 0.136993 0.708740 0.679169 0.176178 0.708374 0.677917 0.210785 0.708038 0.676849 0.241394 0.707916 0.675873 0.269135 0.707764 0.674774 0.294861 0.707672 0.674011 0.319427 0.707581 0.673096 0.343689 0.707489 0.672241 0.368225 0.707336 0.671326 0.393585 0.707123 0.670258 0.420349 0.706848 0.669220 0.448883 0.706421 0.667938 0.479462 0.705872 0.666595 0.512482 0.705200 0.665039 0.548950 0.704376 0.663483 0.588501 0.703522 0.661774 0.629883 0.702606 0.660065 0.672455 0.702179 0.658844 0.715149 0.702423 0.658325 0.754852 0.701691 0.656769 0.791504 0.701050 0.655365 0.824615 0.700531 0.654083 0.854370 0.700073 0.652893 0.881073 0.699707 0.651825 0.905151 0.699402 0.650940 0.926819 0.699249 0.650085 0.946564 0.699127 0.649353 0.964478 0.699036 0.648651 0.981079 0.699036 0.648071 0.996552 0.699005 0.647522 1.000000 0.710022 0.661743 0.103516 0.750000 0.678955 0.145538 0.749359 0.677643 0.183167 0.748932 0.676392 0.216339 0.748535 0.675293 0.245728 0.748230 0.674286 0.272614 0.747986 0.673370 0.297791 0.747772 0.672516 0.322144 0.747559 0.671600 0.346222 0.747375 0.670746 0.370728 0.747070 0.669739 0.396149 0.746735 0.668640 0.423004 0.746368 0.667480 0.451569 0.745789 0.666199 0.482300 0.745117 0.664856 0.515411 0.744385 0.663391 0.551941 0.743439 0.661682 0.591339 0.742462 0.660034 0.632507 0.741455 0.658295 0.674805 0.741180 0.657318 0.717499 0.741821 0.657288 0.757629 0.741943 0.656677 0.793793 0.741211 0.655304 0.826416 0.740570 0.654053 0.855743 0.740051 0.652985 0.882172 0.739563 0.651978 0.905884 0.739288 0.651093 0.927368 0.738953 0.650330 0.946899 0.738800 0.649689 0.964752 0.738586 0.649048 0.981262 0.738708 0.648621 0.996613 0.739136 0.648407 1.000000 0.747284 0.662781 0.112854 0.789398 0.677399 0.153229 0.788696 0.676086 0.189270 0.788116 0.674835 0.221069 0.787628 0.673859 0.249573 0.787201 0.672821 0.275848 0.786896 0.671936 0.300720 0.786560 0.670990 0.324799 0.786255 0.670074 0.348785 0.785919 0.669098 0.373291 0.785553 0.668030 0.398712 0.785126 0.667023 0.425598 0.784607 0.665833 0.454285 0.783997 0.664581 0.485077 0.783203 0.663177 0.518311 0.782318 0.661621 0.554840 0.781311 0.660034 0.594147 0.780273 0.658325 0.635010 0.779205 0.656708 0.677124 0.778900 0.655884 0.719299 0.779480 0.655853 0.759460 0.780090 0.655853 0.795837 0.780029 0.655304 0.828033 0.779358 0.654144 0.856995 0.778778 0.653107 0.883087 0.778259 0.652222 0.906586 0.777863 0.651428 0.927856 0.777527 0.650696 0.947266 0.777405 0.650208 0.965027 0.777588 0.649902 0.981384 0.777832 0.649750 0.996613 0.777924 0.649689 1.000000 0.782990 0.664154 0.121216 0.826782 0.675812 0.159973 0.825958 0.674561 0.194580 0.825317 0.673401 0.225403 0.824738 0.672363 0.253265 0.824219 0.671295 0.279083 0.823822 0.670410 0.303650 0.823425 0.669403 0.327454 0.822998 0.668427 0.351379 0.822571 0.667480 0.375793 0.822113 0.666412 0.401306 0.821564 0.665375 0.428253 0.820923 0.664185 0.456970 0.820221 0.662903 0.487854 0.819397 0.661530 0.521118 0.818390 0.660004 0.557648 0.817322 0.658417 0.596771 0.816193 0.656860 0.637360 0.815063 0.655151 0.679169 0.814850 0.654480 0.720886 0.815308 0.654541 0.760468 0.815796 0.654633 0.797058 0.816284 0.654755 0.829498 0.816223 0.654327 0.858093 0.815582 0.653412 0.883881 0.815063 0.652557 0.907227 0.814728 0.651947 0.928436 0.814606 0.651489 0.947632 0.814606 0.651306 0.965179 0.814606 0.651154 0.981476 0.814484 0.651123 0.996613 0.814575 0.651154 1.000000 0.816742 0.665680 0.128510 0.861511 0.674438 0.166138 0.860657 0.673157 0.199799 0.859863 0.671875 0.229736 0.859222 0.670868 0.256989 0.858704 0.669861 0.282349 0.858215 0.668823 0.306549 0.857697 0.667847 0.330170 0.857208 0.666931 0.354004 0.856689 0.665924 0.378326 0.856140 0.664886 0.403870 0.855499 0.663818 0.430817 0.854828 0.662598 0.459595 0.853973 0.661407 0.490509 0.853119 0.660034 0.523804 0.852081 0.658508 0.560242 0.850891 0.656982 0.599182 0.849701 0.655334 0.639496 0.848541 0.653778 0.681061 0.848419 0.653320 0.722229 0.848755 0.653442 0.761444 0.849152 0.653564 0.797424 0.849518 0.653717 0.830017 0.849915 0.653931 0.859161 0.850067 0.653900 0.884888 0.849762 0.653351 0.907990 0.849426 0.653015 0.928833 0.849213 0.652771 0.947845 0.848999 0.652679 0.965271 0.848816 0.652649 0.981476 0.848694 0.652710 0.996582 0.848541 0.652863 1.000000 0.848053 0.667389 0.135651 0.893097 0.672882 0.172211 0.892212 0.671753 0.204773 0.891418 0.670441 0.234039 0.890747 0.669434 0.260620 0.890137 0.668335 0.285522 0.889557 0.667389 0.309387 0.888947 0.666473 0.332886 0.888428 0.665466 0.356567 0.887848 0.664459 0.380890 0.887207 0.663483 0.406372 0.886536 0.662354 0.433380 0.885773 0.661194 0.462128 0.884888 0.659973 0.493073 0.883881 0.658569 0.526367 0.882782 0.657135 0.562744 0.881592 0.655670 0.601440 0.880402 0.654114 0.641449 0.879181 0.652679 0.682648 0.879089 0.652344 0.723480 0.879364 0.652527 0.762054 0.879669 0.652710 0.797913 0.880005 0.653046 0.830383 0.880585 0.653534 0.859558 0.881012 0.654083 0.885620 0.881378 0.654572 0.908325 0.880920 0.654358 0.929016 0.880554 0.654236 0.947906 0.880249 0.654236 0.965271 0.879913 0.654297 0.981445 0.879669 0.654510 0.996552 0.879395 0.654694 1.000000 0.876587 0.669220 0.142639 0.921356 0.671600 0.178131 0.920441 0.670319 0.209747 0.919617 0.669006 0.238159 0.918884 0.667908 0.264221 0.918213 0.666901 0.288696 0.917603 0.665924 0.312256 0.917023 0.664978 0.335571 0.916382 0.664062 0.359131 0.915741 0.663086 0.383423 0.915100 0.662170 0.408875 0.914337 0.661011 0.435852 0.913513 0.659912 0.464630 0.912598 0.658661 0.495453 0.911560 0.657379 0.528778 0.910431 0.656036 0.565002 0.909210 0.654572 0.603485 0.907990 0.653137 0.643097 0.906738 0.651703 0.684113 0.906677 0.651581 0.724640 0.906952 0.651917 0.763336 0.907318 0.652405 0.798645 0.907715 0.652985 0.830414 0.908051 0.653625 0.859131 0.908386 0.654327 0.885071 0.908722 0.655121 0.908508 0.909058 0.655914 0.929108 0.908600 0.655914 0.947937 0.908173 0.656006 0.965271 0.907745 0.656158 0.981445 0.907471 0.656372 0.996521 0.907166 0.656616 1.000000 0.902222 0.671112 0.149475 0.946503 0.670044 0.183868 0.945587 0.668823 0.214508 0.944763 0.667725 0.242126 0.944000 0.666565 0.267670 0.943329 0.665619 0.291779 0.942688 0.664642 0.315033 0.942047 0.663727 0.338196 0.941437 0.662842 0.361633 0.940704 0.661865 0.385803 0.940063 0.660858 0.411224 0.939240 0.659882 0.438171 0.938416 0.658783 0.466919 0.937469 0.657593 0.497742 0.936432 0.656433 0.530914 0.935303 0.654999 0.567017 0.934082 0.653717 0.605286 0.932831 0.652344 0.644745 0.931641 0.651031 0.686066 0.931671 0.651337 0.726166 0.931946 0.651917 0.763977 0.932159 0.652557 0.798584 0.932404 0.653259 0.830048 0.932709 0.654053 0.858429 0.932922 0.654846 0.884186 0.933136 0.655731 0.907654 0.933380 0.656647 0.928955 0.933624 0.657593 0.947937 0.933258 0.657898 0.965271 0.932800 0.658112 0.981415 0.932373 0.658325 0.996490 0.932007 0.658630 1.000000 0.925507 0.673248 0.156036 0.969025 0.668884 0.189301 0.968170 0.667664 0.219025 0.967316 0.666412 0.245972 0.966553 0.665375 0.270996 0.965912 0.664337 0.294708 0.965240 0.663483 0.317749 0.964600 0.662628 0.340637 0.963928 0.661713 0.363953 0.963226 0.660706 0.388062 0.962524 0.659790 0.413391 0.961700 0.658875 0.440308 0.960846 0.657837 0.468964 0.959900 0.656677 0.499695 0.958862 0.655518 0.532806 0.957733 0.654297 0.568970 0.956543 0.653076 0.607666 0.955383 0.651978 0.646912 0.954254 0.651031 0.687378 0.954285 0.651550 0.726746 0.954376 0.652252 0.763947 0.954559 0.653046 0.798187 0.954712 0.653870 0.829346 0.954865 0.654755 0.857635 0.955017 0.655609 0.883392 0.955170 0.656555 0.906769 0.955353 0.657532 0.928131 0.955475 0.658508 0.947754 0.955627 0.659515 0.965363 0.955414 0.660095 0.981476 0.954987 0.660583 0.996490 0.954590 0.661255 1.000000 0.946686 0.676117 0.162140 0.989380 0.667450 0.194458 0.988495 0.666260 0.223358 0.987701 0.665100 0.249664 0.986969 0.664276 0.274139 0.986298 0.663239 0.297485 0.985657 0.662415 0.320190 0.984985 0.661469 0.342957 0.984344 0.660767 0.366119 0.983643 0.659821 0.390106 0.982941 0.658936 0.415405 0.982147 0.658081 0.442200 0.981262 0.657104 0.470856 0.980316 0.656067 0.501587 0.979279 0.654968 0.535278 0.978210 0.653992 0.571442 0.977081 0.653076 0.609314 0.975922 0.652222 0.647858 0.974762 0.651367 0.687622 0.974731 0.652130 0.726593 0.974823 0.652893 0.763397 0.974915 0.653748 0.797546 0.974976 0.654694 0.828552 0.975037 0.655609 0.856934 0.975159 0.656555 0.882629 0.975220 0.657593 0.906128 0.975311 0.658569 0.927551 0.975433 0.659607 0.947113 0.975555 0.660797 0.965149 0.975647 0.662231 0.981537 0.975555 0.663513 0.996460 0.975128 0.664429 1.000000 0.966034 0.679291 0.179260 1.000000 0.664368 0.209167 1.000000 0.663849 0.236084 1.000000 0.663025 0.260651 1.000000 0.662506 0.283661 1.000000 0.661926 0.305725 1.000000 0.661316 0.327271 1.000000 0.660706 0.348907 1.000000 0.659973 0.371063 1.000000 0.659271 0.393951 1.000000 0.658539 0.418152 1.000000 0.657562 0.443939 1.000000 0.656464 0.473175 0.999115 0.655762 0.503998 0.998047 0.654999 0.537109 0.996979 0.654236 0.572632 0.995880 0.653473 0.609894 0.994720 0.652771 0.647980 0.993591 0.652130 0.687439 0.993500 0.652832 0.726105 0.993500 0.653748 0.762817 0.993530 0.654663 0.796906 0.993561 0.655670 0.828033 0.993591 0.656647 0.856354 0.993622 0.657654 0.882202 0.993652 0.658661 0.905640 0.993683 0.659851 0.927155 0.993744 0.661255 0.946716 0.993744 0.662842 0.964630 0.993774 0.664459 0.981140 0.993866 0.666168 0.996460 0.993774 0.667786 1.000000 0.983673 0.682220 0.209595 1.000000 0.660553 0.238129 1.000000 0.660583 0.263916 1.000000 0.660553 0.287567 1.000000 0.660614 0.309814 1.000000 0.660614 0.331177 1.000000 0.660767 0.352142 1.000000 0.660828 0.373230 1.000000 0.661133 0.394806 1.000000 0.661224 0.417389 1.000000 0.661469 0.441711 1.000000 0.662048 0.467224 1.000000 0.662598 0.494324 1.000000 0.663177 0.523499 1.000000 0.663971 0.555481 1.000000 0.664642 0.589722 1.000000 0.665497 0.625580 1.000000 0.666351 0.662262 1.000000 0.667114 0.698883 1.000000 0.668060 0.734711 1.000000 0.669067 0.768738 1.000000 0.669983 0.800232 1.000000 0.670990 0.829102 1.000000 0.671906 0.855438 1.000000 0.673096 0.879425 1.000000 0.674469 0.901306 1.000000 0.675934 0.921143 1.000000 0.677551 0.939362 1.000000 0.679199 0.956116 1.000000 0.680817 0.971680 1.000000 0.682159 0.986206 1.000000 0.683502 1.000000 1.000000 0.684692 0.000000 0.017792 0.673309 0.029083 0.001984 0.691223 0.077087 0.005585 0.692261 0.121796 0.008179 0.692963 0.162842 0.009918 0.693451 0.199493 0.011505 0.693909 0.232330 0.013062 0.694336 0.261993 0.014648 0.694824 0.289490 0.016144 0.695221 0.315674 0.017639 0.695587 0.341278 0.019165 0.696045 0.367126 0.020660 0.696411 0.393768 0.022186 0.696808 0.421692 0.023712 0.697144 0.451691 0.025299 0.697540 0.484192 0.026886 0.697876 0.519989 0.028473 0.698212 0.561005 0.030243 0.698578 0.606781 0.031952 0.698883 0.655457 0.033752 0.699188 0.705078 0.035400 0.699280 0.752228 0.035370 0.697815 0.796600 0.035492 0.696350 0.836395 0.035522 0.695068 0.871613 0.035767 0.693756 0.902649 0.036285 0.692688 0.930023 0.037018 0.691711 0.954071 0.037842 0.690826 0.975555 0.038910 0.689880 0.994873 0.040039 0.689087 1.000000 0.059875 0.683441 1.000000 0.086365 0.677063 0.000000 0.056061 0.677643 0.029968 0.041748 0.692230 0.076538 0.042938 0.692322 0.120758 0.044495 0.692749 0.161285 0.046021 0.693176 0.197937 0.047455 0.693634 0.230682 0.048889 0.694061 0.260651 0.050354 0.694458 0.288269 0.051788 0.694885 0.314575 0.053192 0.695251 0.340118 0.054657 0.695648 0.365906 0.056091 0.696045 0.392578 0.057617 0.696411 0.420471 0.059052 0.696777 0.450592 0.060638 0.697113 0.483185 0.062286 0.697449 0.519623 0.063934 0.697784 0.561157 0.065704 0.698059 0.607391 0.067535 0.698395 0.656219 0.069366 0.698700 0.706207 0.071075 0.698761 0.753204 0.070801 0.697144 0.797302 0.070648 0.695587 0.836884 0.070801 0.694244 0.871887 0.071106 0.693054 0.902710 0.071655 0.691833 0.929871 0.072449 0.690796 0.953796 0.073303 0.690063 0.975098 0.074341 0.689270 0.994171 0.075500 0.688385 1.000000 0.093811 0.683380 1.000000 0.119659 0.677429 0.000000 0.091431 0.679871 0.030243 0.078827 0.693207 0.075256 0.078552 0.692139 0.118896 0.079773 0.692474 0.159576 0.081146 0.692902 0.196442 0.082489 0.693298 0.229431 0.083862 0.693726 0.259308 0.085236 0.694122 0.287018 0.086548 0.694489 0.313232 0.087982 0.694916 0.338928 0.089355 0.695251 0.364746 0.090759 0.695618 0.391357 0.092285 0.695984 0.419373 0.093781 0.696320 0.450043 0.095398 0.696625 0.483307 0.097107 0.696960 0.520172 0.098724 0.697266 0.562256 0.100616 0.697571 0.608795 0.102509 0.697845 0.658051 0.104156 0.698090 0.707642 0.105469 0.697968 0.754578 0.105255 0.696350 0.798462 0.105164 0.694794 0.837769 0.105377 0.693359 0.872437 0.105743 0.692322 0.902954 0.106354 0.691132 0.929810 0.107086 0.690186 0.953491 0.107941 0.689240 0.974609 0.108948 0.688446 0.993591 0.110107 0.687561 1.000000 0.126984 0.683228 1.000000 0.152100 0.677917 0.000000 0.125885 0.680756 0.029785 0.114716 0.694214 0.074738 0.114288 0.693115 0.117493 0.114136 0.692200 0.158356 0.115387 0.692627 0.195221 0.116669 0.693024 0.228149 0.117981 0.693390 0.258087 0.119354 0.693787 0.285645 0.120575 0.694153 0.312103 0.121979 0.694519 0.337738 0.123413 0.694855 0.363556 0.124817 0.695190 0.390778 0.126343 0.695526 0.419464 0.127899 0.695862 0.450439 0.129547 0.696167 0.484192 0.131287 0.696472 0.521667 0.132996 0.696747 0.564056 0.134644 0.696991 0.610901 0.136230 0.697235 0.660126 0.137939 0.697418 0.709686 0.139221 0.697113 0.756439 0.138977 0.695587 0.799957 0.138977 0.693939 0.838928 0.139160 0.692719 0.873169 0.139587 0.691406 0.903320 0.140198 0.690338 0.929840 0.140930 0.689240 0.953308 0.141724 0.688538 0.974182 0.142670 0.687653 0.993011 0.143738 0.686859 1.000000 0.159271 0.683044 1.000000 0.183624 0.678345 0.000000 0.159546 0.681274 0.029572 0.149628 0.695160 0.074707 0.149200 0.694061 0.117279 0.148834 0.692963 0.157013 0.148834 0.692291 0.193787 0.150055 0.692657 0.226959 0.151276 0.693024 0.256866 0.152588 0.693359 0.284485 0.153870 0.693756 0.310760 0.155334 0.694092 0.337036 0.156708 0.694397 0.363525 0.158234 0.694733 0.390991 0.159729 0.695068 0.420258 0.161346 0.695374 0.451660 0.163025 0.695648 0.485809 0.164612 0.695892 0.523468 0.166077 0.696106 0.566498 0.167725 0.696320 0.613525 0.169342 0.696533 0.662872 0.171051 0.696716 0.712311 0.172211 0.696350 0.758698 0.171936 0.694763 0.801788 0.171997 0.693237 0.840179 0.172211 0.691864 0.873962 0.172577 0.690613 0.903778 0.173126 0.689514 0.929932 0.173828 0.688629 0.953125 0.174591 0.687653 0.973816 0.175476 0.686951 0.992432 0.176422 0.686035 1.000000 0.190552 0.682800 1.000000 0.214264 0.678619 0.000000 0.191864 0.682159 0.029541 0.183624 0.696045 0.074677 0.183105 0.694916 0.117249 0.182770 0.693848 0.156616 0.182343 0.692810 0.192566 0.182648 0.692291 0.225586 0.183929 0.692657 0.255524 0.185181 0.692963 0.283905 0.186554 0.693268 0.310883 0.187927 0.693634 0.337372 0.189423 0.693939 0.364227 0.190918 0.694275 0.392212 0.192505 0.694550 0.421692 0.193909 0.694824 0.453339 0.195404 0.695007 0.487915 0.196930 0.695221 0.526154 0.198395 0.695435 0.569641 0.200043 0.695648 0.616882 0.201660 0.695831 0.666382 0.203369 0.696045 0.715332 0.204315 0.695465 0.761322 0.204132 0.693878 0.803833 0.204193 0.692444 0.841614 0.204346 0.691040 0.874939 0.204681 0.689789 0.904236 0.205231 0.688721 0.930084 0.205872 0.687805 0.953003 0.206543 0.686768 0.973450 0.207306 0.686127 0.991852 0.208099 0.685242 1.000000 0.220917 0.682404 1.000000 0.243896 0.679016 0.000000 0.223572 0.683014 0.029510 0.216583 0.696899 0.074646 0.216125 0.695740 0.117188 0.215698 0.694641 0.156586 0.215485 0.693634 0.192169 0.215393 0.692688 0.225067 0.215790 0.692200 0.255798 0.217072 0.692505 0.284424 0.218414 0.692841 0.311707 0.219879 0.693146 0.338623 0.221344 0.693451 0.365631 0.222717 0.693695 0.393768 0.224121 0.693939 0.423553 0.225494 0.694122 0.455658 0.226990 0.694366 0.490692 0.228485 0.694580 0.529449 0.230042 0.694794 0.573334 0.231628 0.694977 0.620758 0.233215 0.695190 0.670166 0.234863 0.695343 0.718597 0.235565 0.694611 0.764099 0.235413 0.692902 0.806000 0.235413 0.691559 0.843170 0.235596 0.690155 0.875916 0.235901 0.688995 0.904755 0.236328 0.687897 0.930237 0.236816 0.686951 0.952820 0.237488 0.686005 0.973022 0.238159 0.685211 0.991302 0.238831 0.684448 1.000000 0.250336 0.682068 1.000000 0.272644 0.679321 0.000000 0.254425 0.683807 0.029480 0.248871 0.697723 0.074615 0.248505 0.696533 0.117188 0.248169 0.695435 0.157410 0.247833 0.694336 0.194031 0.247681 0.693359 0.226837 0.247833 0.692505 0.256958 0.248291 0.692017 0.285858 0.249756 0.692352 0.313263 0.251068 0.692627 0.340149 0.252319 0.692841 0.367523 0.253662 0.693054 0.396057 0.255096 0.693268 0.426117 0.256470 0.693512 0.458710 0.257965 0.693726 0.493988 0.259430 0.693878 0.533356 0.260986 0.694122 0.577576 0.262604 0.694244 0.625000 0.264130 0.694427 0.674255 0.265747 0.694611 0.722198 0.266235 0.693665 0.767120 0.266052 0.692200 0.808258 0.266022 0.690674 0.844757 0.266144 0.689331 0.876892 0.266418 0.688202 0.905304 0.266785 0.687134 0.930359 0.267212 0.686096 0.952667 0.267761 0.685211 0.972656 0.268372 0.684479 0.990692 0.268890 0.683655 1.000000 0.279175 0.681793 1.000000 0.300781 0.679504 0.000000 0.284668 0.684570 0.029419 0.280640 0.698517 0.075653 0.280121 0.697296 0.119568 0.279816 0.696106 0.160217 0.279541 0.694977 0.197021 0.279602 0.693970 0.230011 0.279724 0.693085 0.259827 0.279877 0.692291 0.287811 0.280304 0.691742 0.315308 0.281586 0.691956 0.342468 0.282928 0.692200 0.369965 0.284302 0.692444 0.398712 0.285675 0.692596 0.429230 0.287109 0.692810 0.462189 0.288544 0.692993 0.497894 0.290070 0.693176 0.537659 0.291565 0.693359 0.582184 0.293091 0.693542 0.629669 0.294617 0.693726 0.678680 0.296143 0.693848 0.725800 0.296417 0.692719 0.770050 0.296265 0.691162 0.810425 0.296234 0.689697 0.846252 0.296265 0.688507 0.877838 0.296478 0.687286 0.905762 0.296844 0.686157 0.930450 0.297180 0.685181 0.952423 0.297607 0.684357 0.972198 0.298096 0.683472 0.990082 0.298584 0.682831 1.000000 0.307587 0.681366 1.000000 0.328522 0.679779 0.000000 0.314697 0.686310 0.032227 0.312042 0.699127 0.079193 0.311615 0.697876 0.123535 0.311432 0.696655 0.164459 0.311157 0.695526 0.201141 0.311127 0.694458 0.233765 0.311096 0.693542 0.263428 0.311279 0.692657 0.291168 0.311554 0.691864 0.318024 0.312073 0.691315 0.345154 0.313385 0.691498 0.373016 0.314819 0.691711 0.401947 0.316132 0.691895 0.432861 0.317596 0.692078 0.466125 0.319092 0.692261 0.502075 0.320465 0.692413 0.542328 0.321991 0.692596 0.587036 0.323425 0.692749 0.634399 0.324921 0.692902 0.683044 0.326416 0.693054 0.729431 0.326508 0.691772 0.772949 0.326263 0.690186 0.812531 0.326202 0.688751 0.847595 0.326202 0.687531 0.878662 0.326385 0.686249 0.906097 0.326630 0.685242 0.930420 0.326935 0.684357 0.952148 0.327301 0.683350 0.971710 0.327667 0.682617 0.989410 0.328033 0.681824 1.000000 0.335876 0.680756 1.000000 0.356232 0.679901 0.000000 0.344727 0.690430 0.037018 0.343628 0.699738 0.084534 0.343170 0.698395 0.128937 0.342957 0.697113 0.169464 0.342651 0.695892 0.205811 0.342468 0.694855 0.238251 0.342651 0.693909 0.267761 0.342804 0.693024 0.295380 0.343140 0.692230 0.321899 0.343414 0.691406 0.348450 0.343994 0.690735 0.376373 0.345367 0.690979 0.405609 0.346741 0.691132 0.436737 0.348145 0.691315 0.470215 0.349579 0.691467 0.506561 0.350952 0.691650 0.547211 0.352448 0.691772 0.591949 0.353851 0.691895 0.639191 0.355255 0.692078 0.687317 0.356720 0.692230 0.732910 0.356598 0.690704 0.775635 0.356293 0.689148 0.814423 0.356201 0.687775 0.848816 0.356201 0.686493 0.879333 0.356323 0.685394 0.906311 0.356506 0.684357 0.930298 0.356720 0.683319 0.951752 0.356995 0.682495 0.971130 0.357269 0.681641 0.988739 0.357605 0.680847 1.000000 0.364258 0.680084 1.000000 0.384064 0.680054 0.000000 0.375671 0.696259 0.043549 0.375275 0.700134 0.090881 0.374725 0.698761 0.135162 0.374512 0.697479 0.175476 0.374207 0.696289 0.211365 0.374237 0.695190 0.243469 0.374359 0.694183 0.272644 0.374634 0.693359 0.300079 0.374969 0.692535 0.326477 0.375366 0.691711 0.352875 0.375671 0.690857 0.380127 0.376221 0.690155 0.409485 0.377594 0.690308 0.440857 0.378967 0.690460 0.474609 0.380402 0.690613 0.511169 0.381714 0.690735 0.552185 0.383118 0.690948 0.596893 0.384491 0.691071 0.643860 0.385834 0.691193 0.691406 0.387146 0.691315 0.736084 0.386841 0.689728 0.778076 0.386597 0.688202 0.816071 0.386444 0.686737 0.849792 0.386383 0.685425 0.879761 0.386414 0.684357 0.906342 0.386505 0.683228 0.930084 0.386688 0.682281 0.951324 0.386902 0.681488 0.970520 0.387177 0.680450 0.988037 0.387421 0.679596 1.000000 0.392914 0.679047 1.000000 0.412170 0.680084 0.001312 0.407593 0.701843 0.051086 0.407135 0.700439 0.098511 0.406708 0.699036 0.142548 0.406464 0.697723 0.182312 0.406311 0.696503 0.217621 0.406433 0.695465 0.249084 0.406525 0.694489 0.277954 0.406921 0.693665 0.305115 0.407318 0.692810 0.331390 0.407623 0.691956 0.357788 0.408051 0.691132 0.384918 0.408447 0.690216 0.413544 0.408844 0.689423 0.445099 0.410156 0.689545 0.479095 0.411560 0.689728 0.515808 0.412872 0.689880 0.557007 0.414154 0.689972 0.601654 0.415497 0.690125 0.648224 0.416718 0.690216 0.695068 0.417816 0.690186 0.738953 0.417450 0.688538 0.780121 0.417175 0.687012 0.817383 0.416992 0.685638 0.850494 0.416840 0.684326 0.880005 0.416840 0.683197 0.906311 0.416931 0.682220 0.929779 0.417053 0.681152 0.950867 0.417236 0.680237 0.969910 0.417511 0.679291 0.987244 0.417755 0.678314 1.000000 0.422028 0.677979 1.000000 0.440735 0.680145 0.010223 0.439972 0.702118 0.060150 0.439514 0.700623 0.107300 0.439301 0.699219 0.150818 0.439117 0.697937 0.189789 0.439117 0.696747 0.224304 0.439178 0.695679 0.255157 0.439392 0.694763 0.283539 0.439728 0.693878 0.310394 0.440186 0.693024 0.336517 0.440552 0.692200 0.362854 0.440948 0.691315 0.390015 0.441223 0.690399 0.418549 0.441498 0.689392 0.449371 0.441956 0.688629 0.483429 0.443237 0.688721 0.520416 0.444489 0.688873 0.561646 0.445709 0.688965 0.606018 0.446960 0.689087 0.652161 0.448120 0.689178 0.698181 0.448944 0.688934 0.741394 0.448578 0.687378 0.781830 0.448181 0.685852 0.818451 0.447998 0.684448 0.851135 0.447845 0.683197 0.880310 0.447845 0.681946 0.906250 0.447876 0.680817 0.929443 0.447968 0.679810 0.950348 0.448181 0.678833 0.969238 0.448364 0.677979 0.986481 0.448578 0.677032 1.000000 0.451691 0.676727 1.000000 0.469849 0.680115 0.020721 0.473145 0.702240 0.070404 0.472809 0.700836 0.117035 0.472595 0.699402 0.159607 0.472534 0.698090 0.197693 0.472565 0.696899 0.231293 0.472717 0.695892 0.261383 0.472931 0.694946 0.289307 0.473389 0.694092 0.315796 0.473724 0.693207 0.341705 0.474091 0.692413 0.367950 0.474487 0.691528 0.395172 0.474701 0.690613 0.423676 0.474976 0.689545 0.454224 0.475067 0.688446 0.487518 0.475464 0.687622 0.524719 0.476654 0.687775 0.565887 0.477844 0.687866 0.609955 0.478943 0.687958 0.655640 0.480042 0.688080 0.700867 0.480652 0.687592 0.743439 0.480225 0.686035 0.783325 0.479889 0.684479 0.819458 0.479645 0.683105 0.851685 0.479492 0.681793 0.880463 0.479462 0.680573 0.906097 0.479462 0.679443 0.929047 0.479584 0.678406 0.949768 0.479706 0.677399 0.968475 0.479889 0.676483 0.985626 0.480072 0.675568 1.000000 0.482056 0.675201 1.000000 0.499634 0.680023 0.032288 0.507233 0.702393 0.081482 0.506958 0.700897 0.127319 0.506866 0.699493 0.168854 0.506683 0.698212 0.205780 0.506836 0.697021 0.238342 0.507080 0.696075 0.267761 0.507294 0.695129 0.295105 0.507721 0.694275 0.321228 0.508148 0.693451 0.346954 0.508392 0.692596 0.373047 0.508728 0.691711 0.400146 0.509003 0.690765 0.428741 0.509186 0.689697 0.459259 0.509186 0.688538 0.492065 0.509125 0.687256 0.528625 0.509583 0.686584 0.569611 0.510681 0.686676 0.613312 0.511688 0.686737 0.658630 0.512756 0.686798 0.703308 0.513153 0.686188 0.745392 0.512726 0.684601 0.784851 0.512360 0.683014 0.820343 0.512054 0.681549 0.852112 0.511932 0.680298 0.880524 0.511902 0.679016 0.905853 0.511871 0.677979 0.928558 0.511932 0.676880 0.949066 0.512024 0.675842 0.967682 0.512177 0.675018 0.984711 0.512390 0.674103 1.000000 0.513123 0.673523 1.000000 0.530975 0.680054 0.044678 0.543854 0.702423 0.093079 0.543610 0.700958 0.137939 0.543457 0.699524 0.178192 0.543457 0.698303 0.213776 0.543488 0.697205 0.245422 0.543671 0.696228 0.274017 0.544006 0.695251 0.300842 0.544342 0.694427 0.326538 0.544708 0.693604 0.352020 0.545044 0.692749 0.377960 0.545319 0.691803 0.404968 0.545502 0.690826 0.433472 0.545624 0.689819 0.463959 0.545563 0.688629 0.496643 0.545349 0.687317 0.532440 0.544983 0.685852 0.572937 0.545563 0.685364 0.616516 0.546539 0.685394 0.661591 0.547546 0.685425 0.705688 0.547852 0.684631 0.747284 0.547302 0.682953 0.786163 0.546936 0.681396 0.821136 0.546631 0.680023 0.852478 0.546417 0.678711 0.880493 0.546265 0.677521 0.905518 0.546265 0.676361 0.928040 0.546265 0.675323 0.948303 0.546356 0.674347 0.966797 0.546539 0.673431 0.983734 0.546631 0.672638 0.999390 0.546844 0.671753 1.000000 0.564453 0.680115 0.057617 0.583252 0.702393 0.104980 0.582825 0.700989 0.148529 0.582764 0.699585 0.187439 0.582733 0.698364 0.221741 0.582764 0.697296 0.252289 0.583038 0.696350 0.280151 0.583252 0.695404 0.306335 0.583466 0.694550 0.331635 0.583771 0.693726 0.356873 0.584045 0.692871 0.382629 0.584290 0.691956 0.409485 0.584351 0.691010 0.437866 0.584259 0.689911 0.468201 0.584106 0.688721 0.500946 0.583771 0.687347 0.536957 0.583344 0.685852 0.576508 0.582794 0.684204 0.619720 0.583527 0.683929 0.664490 0.584473 0.683899 0.708008 0.584534 0.682892 0.749084 0.583984 0.681274 0.787262 0.583496 0.679718 0.821777 0.583130 0.678284 0.852692 0.582886 0.677032 0.880341 0.582733 0.675903 0.905121 0.582611 0.674744 0.927399 0.582642 0.673706 0.947540 0.582703 0.672791 0.965881 0.582733 0.671997 0.982727 0.582855 0.671143 0.998352 0.583038 0.670349 1.000000 0.599670 0.680237 0.070465 0.624481 0.702393 0.116730 0.624207 0.700958 0.158966 0.623932 0.699585 0.196320 0.623871 0.698486 0.229340 0.623871 0.697388 0.258881 0.624023 0.696442 0.285919 0.624176 0.695526 0.311584 0.624451 0.694702 0.336487 0.624634 0.693848 0.361420 0.624725 0.692993 0.386932 0.624695 0.692047 0.413544 0.624695 0.691071 0.441986 0.624573 0.689941 0.472473 0.624329 0.688721 0.505249 0.623871 0.687286 0.541473 0.623322 0.685730 0.581116 0.622681 0.684052 0.622864 0.622009 0.682373 0.667267 0.622925 0.682343 0.710144 0.622803 0.681213 0.750702 0.622101 0.679596 0.788361 0.621582 0.678040 0.822388 0.621155 0.676666 0.852875 0.620819 0.675385 0.880188 0.620605 0.674194 0.904694 0.620422 0.673157 0.926727 0.620361 0.672150 0.946716 0.620392 0.671265 0.964905 0.620392 0.670471 0.981659 0.620483 0.669708 0.997253 0.620544 0.669006 1.000000 0.636047 0.680389 0.083374 0.666962 0.702301 0.128265 0.666656 0.700928 0.168915 0.666290 0.699615 0.204742 0.666107 0.698486 0.236420 0.666138 0.697479 0.265015 0.666168 0.696533 0.291321 0.666260 0.695648 0.316376 0.666290 0.694794 0.340881 0.666382 0.693970 0.365479 0.666321 0.693085 0.390900 0.666290 0.692108 0.417603 0.666138 0.691101 0.446106 0.665863 0.689911 0.476685 0.665497 0.688629 0.509583 0.664886 0.687134 0.545990 0.664246 0.685516 0.585632 0.663513 0.683868 0.627167 0.662659 0.682159 0.669861 0.662170 0.680756 0.712158 0.661835 0.679474 0.752228 0.661041 0.677856 0.789337 0.660461 0.676331 0.822815 0.659943 0.674988 0.852936 0.659576 0.673706 0.879913 0.659271 0.672668 0.904144 0.659058 0.671600 0.926025 0.658936 0.670685 0.945862 0.658844 0.669861 0.963959 0.658813 0.669128 0.980621 0.658783 0.668427 0.996124 0.658844 0.667755 1.000000 0.673035 0.680725 0.095581 0.709595 0.702057 0.138885 0.709045 0.700500 0.177887 0.708649 0.699310 0.212128 0.708374 0.698059 0.242554 0.708160 0.697113 0.270142 0.708069 0.696167 0.295715 0.707977 0.695343 0.320221 0.707947 0.694397 0.344360 0.707794 0.693451 0.368927 0.707581 0.692535 0.394348 0.707397 0.691498 0.421051 0.707123 0.690338 0.449646 0.706665 0.689117 0.480255 0.706116 0.687744 0.513245 0.705475 0.686249 0.549774 0.704651 0.684601 0.589294 0.703766 0.682892 0.630615 0.702820 0.681122 0.672668 0.701904 0.679443 0.714966 0.701904 0.678650 0.754517 0.701141 0.677094 0.791138 0.700470 0.675659 0.824158 0.699951 0.674377 0.853851 0.699463 0.673218 0.880554 0.699158 0.672180 0.904541 0.698944 0.671234 0.926178 0.698792 0.670410 0.945892 0.698608 0.669678 0.963867 0.698486 0.669006 0.980499 0.698486 0.668396 0.995941 0.698395 0.667877 1.000000 0.710419 0.681396 0.105621 0.750244 0.700348 0.147400 0.749664 0.698883 0.184723 0.749176 0.697693 0.217560 0.748779 0.696655 0.246826 0.748505 0.695557 0.273560 0.748260 0.694702 0.298615 0.747986 0.693756 0.322876 0.747803 0.692871 0.346893 0.747589 0.691833 0.371460 0.747345 0.690979 0.396881 0.747009 0.689880 0.423706 0.746552 0.688629 0.452332 0.746033 0.687378 0.483093 0.745422 0.686005 0.516174 0.744568 0.684509 0.552734 0.743713 0.682831 0.592163 0.742706 0.681122 0.633209 0.741699 0.679413 0.674866 0.740692 0.677734 0.717346 0.741272 0.677612 0.757324 0.741364 0.677032 0.793396 0.740601 0.675629 0.825897 0.739990 0.674408 0.855194 0.739471 0.673279 0.881592 0.739044 0.672333 0.905304 0.738647 0.671448 0.926727 0.738373 0.670654 0.946228 0.738220 0.669983 0.964111 0.738007 0.669403 0.980621 0.738373 0.669037 0.996002 0.738708 0.668823 1.000000 0.747589 0.682526 0.114746 0.789612 0.698608 0.154938 0.788940 0.697418 0.190674 0.788330 0.696136 0.222137 0.787842 0.695099 0.250549 0.787445 0.694153 0.276703 0.787048 0.693115 0.301514 0.786774 0.692230 0.325562 0.786499 0.691284 0.349487 0.786163 0.690277 0.373962 0.785767 0.689240 0.399445 0.785339 0.688110 0.426331 0.784760 0.686951 0.455048 0.784180 0.685760 0.485870 0.783386 0.684296 0.519043 0.782501 0.682770 0.555603 0.781525 0.681091 0.594910 0.780426 0.679474 0.635681 0.779358 0.677795 0.677002 0.778320 0.676178 0.719055 0.778900 0.676208 0.759125 0.779480 0.676239 0.795410 0.779449 0.675690 0.827515 0.778748 0.674500 0.856476 0.778168 0.673462 0.882538 0.777649 0.672577 0.905945 0.777222 0.671722 0.927216 0.776886 0.671051 0.946655 0.777008 0.670624 0.964417 0.777130 0.670349 0.980743 0.777374 0.670197 0.996033 0.777496 0.670074 1.000000 0.783295 0.683868 0.122864 0.826904 0.697144 0.161407 0.826141 0.695862 0.195862 0.825500 0.694641 0.226440 0.824890 0.693665 0.254272 0.824402 0.692566 0.279968 0.823975 0.691559 0.304382 0.823547 0.690643 0.328247 0.823181 0.689697 0.352051 0.822754 0.688629 0.376526 0.822235 0.687622 0.402039 0.821686 0.686523 0.428925 0.821106 0.685364 0.457733 0.820374 0.684052 0.488556 0.819550 0.682617 0.521851 0.818542 0.681091 0.558380 0.817474 0.679504 0.597412 0.816315 0.677887 0.637939 0.815186 0.676270 0.679016 0.814240 0.674866 0.720581 0.814697 0.674896 0.760162 0.815216 0.674988 0.796600 0.815674 0.675079 0.828918 0.815643 0.674744 0.857544 0.815033 0.673737 0.883240 0.814423 0.672913 0.906647 0.814178 0.672394 0.927826 0.814117 0.671997 0.946991 0.814087 0.671753 0.964569 0.814026 0.671600 0.980804 0.813995 0.671570 0.995972 0.814056 0.671631 1.000000 0.817017 0.685425 0.130066 0.861603 0.695709 0.167572 0.860748 0.694336 0.200958 0.859985 0.693085 0.230774 0.859375 0.692108 0.257965 0.858856 0.691010 0.283173 0.858307 0.690094 0.307312 0.857819 0.689056 0.330933 0.857330 0.688080 0.354675 0.856842 0.687073 0.379059 0.856262 0.686096 0.404572 0.855652 0.684998 0.431519 0.854919 0.683746 0.460327 0.854156 0.682495 0.491150 0.853210 0.681091 0.524506 0.852173 0.679596 0.560974 0.851013 0.678070 0.599823 0.849823 0.676453 0.640076 0.848694 0.674927 0.680786 0.847748 0.673676 0.721924 0.848145 0.673767 0.760986 0.848541 0.673889 0.796936 0.848907 0.674103 0.829468 0.849304 0.674316 0.858673 0.849518 0.674347 0.884247 0.849152 0.673828 0.907318 0.848907 0.673492 0.928131 0.848602 0.673248 0.947205 0.848389 0.673126 0.964630 0.848175 0.673126 0.980804 0.848114 0.673187 0.995972 0.847931 0.673309 1.000000 0.848267 0.687134 0.137177 0.893158 0.694183 0.173584 0.892303 0.692841 0.205902 0.891510 0.691650 0.235016 0.890839 0.690582 0.261536 0.890228 0.689453 0.286346 0.889618 0.688477 0.310181 0.889038 0.687622 0.333649 0.888550 0.686615 0.357239 0.887939 0.685638 0.381592 0.887299 0.684631 0.407104 0.886627 0.683533 0.434021 0.885834 0.682373 0.462860 0.884979 0.681030 0.493683 0.884003 0.679688 0.527008 0.882874 0.678223 0.563416 0.881683 0.676819 0.602051 0.880524 0.675262 0.641968 0.879272 0.673767 0.682434 0.878418 0.672699 0.723053 0.878754 0.672852 0.761658 0.879028 0.673096 0.797485 0.879456 0.673462 0.829865 0.879974 0.674011 0.858917 0.880463 0.674591 0.884918 0.880737 0.675079 0.907684 0.880371 0.674835 0.928345 0.879944 0.674744 0.947235 0.879639 0.674713 0.964630 0.879303 0.674805 0.980804 0.879059 0.674957 0.995911 0.878754 0.675110 1.000000 0.876740 0.688934 0.144135 0.921387 0.692780 0.179474 0.920471 0.691345 0.210785 0.919708 0.690247 0.239105 0.918915 0.689148 0.265076 0.918274 0.688049 0.289429 0.917664 0.687073 0.313019 0.917084 0.686157 0.336273 0.916443 0.685150 0.359802 0.915802 0.684326 0.384094 0.915161 0.683289 0.409515 0.914398 0.682129 0.436432 0.913574 0.681030 0.465271 0.912659 0.679810 0.496063 0.911652 0.678528 0.529327 0.910461 0.677185 0.565643 0.909302 0.675720 0.604034 0.908081 0.674286 0.643585 0.906799 0.672852 0.683746 0.906006 0.671936 0.724426 0.906311 0.672302 0.762909 0.906738 0.672852 0.798096 0.907135 0.673462 0.829803 0.907440 0.674103 0.858398 0.907745 0.674835 0.884308 0.908112 0.675598 0.907806 0.908447 0.676422 0.928406 0.908051 0.676422 0.947266 0.907562 0.676483 0.964630 0.907196 0.676605 0.980774 0.906860 0.676849 0.995880 0.906525 0.677063 1.000000 0.902466 0.690826 0.150879 0.946533 0.691376 0.185150 0.945587 0.690094 0.215485 0.944824 0.688873 0.243103 0.944031 0.687866 0.268555 0.943329 0.686798 0.292511 0.942719 0.685913 0.315765 0.942078 0.684875 0.338867 0.941437 0.683990 0.362213 0.940796 0.683105 0.386444 0.940094 0.682068 0.411804 0.939331 0.681030 0.438782 0.938446 0.679962 0.467560 0.937500 0.678802 0.498291 0.936462 0.677551 0.531464 0.935333 0.676178 0.567596 0.934143 0.674805 0.605682 0.932861 0.673462 0.645416 0.931702 0.672272 0.685822 0.931061 0.671783 0.725677 0.931274 0.672394 0.763367 0.931580 0.673004 0.797943 0.931793 0.673737 0.829254 0.932037 0.674530 0.857697 0.932281 0.675323 0.883514 0.932526 0.676208 0.906860 0.932739 0.677155 0.928223 0.933014 0.678040 0.947266 0.932678 0.678314 0.964661 0.932220 0.678589 0.980774 0.931763 0.678802 0.995880 0.931396 0.679047 1.000000 0.925720 0.693054 0.157379 0.969025 0.689911 0.190521 0.968140 0.688629 0.220032 0.967346 0.687592 0.246918 0.966583 0.686554 0.271820 0.965912 0.685486 0.295410 0.965271 0.684570 0.318390 0.964600 0.683685 0.341278 0.963959 0.682831 0.364532 0.963257 0.681946 0.388672 0.962524 0.681030 0.413971 0.961761 0.680084 0.440887 0.960876 0.678986 0.469543 0.959961 0.677856 0.500183 0.958893 0.676727 0.533325 0.957733 0.675415 0.569763 0.956604 0.674286 0.608185 0.955414 0.673248 0.647339 0.954285 0.672333 0.686829 0.953613 0.672028 0.726074 0.953766 0.672729 0.763214 0.953949 0.673492 0.797424 0.954071 0.674316 0.828583 0.954254 0.675201 0.856842 0.954407 0.676117 0.882660 0.954559 0.677032 0.906067 0.954712 0.677979 0.927490 0.954865 0.678986 0.947021 0.955017 0.679962 0.964752 0.954865 0.680542 0.980835 0.954407 0.681122 0.995880 0.954071 0.681824 1.000000 0.946777 0.695984 0.163544 0.989380 0.688751 0.195618 0.988495 0.687378 0.224274 0.987701 0.686401 0.250488 0.986969 0.685425 0.274933 0.986328 0.684509 0.298157 0.985657 0.683624 0.320831 0.984985 0.682648 0.343506 0.984344 0.681885 0.366608 0.983673 0.680969 0.390686 0.982941 0.680084 0.415894 0.982147 0.679138 0.442688 0.981262 0.678192 0.471283 0.980347 0.677185 0.502289 0.979309 0.676208 0.535919 0.978241 0.675232 0.571960 0.977081 0.674377 0.609650 0.975922 0.673462 0.648102 0.974792 0.672668 0.687042 0.974121 0.672546 0.725861 0.974182 0.673340 0.762726 0.974274 0.674225 0.796722 0.974365 0.675110 0.827820 0.974426 0.676086 0.856201 0.974518 0.677032 0.881989 0.974609 0.677979 0.905396 0.974701 0.678986 0.926849 0.974792 0.680054 0.946503 0.974945 0.681305 0.964478 0.975037 0.682800 0.980927 0.974945 0.684052 0.995850 0.974548 0.684998 1.000000 0.966064 0.699158 0.180450 1.000000 0.685150 0.210205 1.000000 0.684509 0.236908 1.000000 0.683807 0.261414 1.000000 0.683228 0.284393 1.000000 0.682587 0.306335 1.000000 0.682068 0.327820 1.000000 0.681549 0.349426 1.000000 0.680817 0.371490 1.000000 0.680267 0.394440 1.000000 0.679565 0.418579 1.000000 0.678650 0.444733 1.000000 0.677856 0.473785 0.999115 0.677124 0.504456 0.998077 0.676270 0.537506 0.997009 0.675507 0.572906 0.995880 0.674774 0.610077 0.994751 0.674103 0.648102 0.993622 0.673401 0.686676 0.992889 0.673279 0.725403 0.992920 0.674225 0.762146 0.992920 0.675140 0.796112 0.992950 0.676086 0.827301 0.992981 0.677094 0.855713 0.993011 0.678070 0.881531 0.993011 0.679108 0.905121 0.993073 0.680420 0.926514 0.993103 0.681854 0.946045 0.993164 0.683411 0.963989 0.993195 0.685059 0.980530 0.993256 0.686737 0.995880 0.993164 0.688171 1.000000 0.983643 0.701904 0.210663 1.000000 0.680023 0.239105 1.000000 0.679993 0.264648 1.000000 0.680054 0.288239 1.000000 0.680237 0.310394 1.000000 0.680176 0.331665 1.000000 0.680450 0.352631 1.000000 0.680603 0.373627 1.000000 0.680725 0.395233 1.000000 0.680939 0.418060 1.000000 0.681213 0.442200 1.000000 0.681793 0.467682 1.000000 0.682373 0.494659 1.000000 0.683044 0.523743 1.000000 0.683624 0.555664 1.000000 0.684418 0.589844 1.000000 0.685150 0.625702 1.000000 0.686005 0.662354 1.000000 0.686890 0.698944 1.000000 0.687805 0.734833 1.000000 0.688751 0.768951 1.000000 0.689697 0.800446 1.000000 0.690643 0.829254 1.000000 0.691650 0.855713 1.000000 0.692902 0.879669 1.000000 0.694275 0.901428 1.000000 0.695831 0.921295 1.000000 0.697418 0.939453 1.000000 0.699036 0.956146 1.000000 0.700562 0.971710 1.000000 0.701843 0.986237 1.000000 0.703125 1.000000 1.000000 0.704315 0.000000 0.018951 0.695770 0.028442 0.002258 0.714111 0.076355 0.005890 0.715088 0.120972 0.007843 0.715637 0.161926 0.009460 0.716064 0.198456 0.011078 0.716553 0.231354 0.012665 0.716949 0.261017 0.014160 0.717346 0.288635 0.015686 0.717773 0.314819 0.017151 0.718170 0.340546 0.018677 0.718536 0.366302 0.020264 0.718933 0.392822 0.021729 0.719330 0.420898 0.023285 0.719696 0.450958 0.024841 0.720032 0.483459 0.026428 0.720337 0.519287 0.028137 0.720703 0.560425 0.029846 0.721039 0.606110 0.031586 0.721344 0.654938 0.033478 0.721649 0.704773 0.035400 0.721954 0.752625 0.036133 0.720917 0.796875 0.036163 0.719452 0.836670 0.036194 0.718170 0.871857 0.036530 0.716888 0.902832 0.037048 0.715759 0.930115 0.037689 0.714844 0.954224 0.038635 0.714020 0.975647 0.039734 0.713165 0.994873 0.040863 0.712402 1.000000 0.060760 0.705780 1.000000 0.087128 0.698334 0.000000 0.056915 0.699982 0.029083 0.041473 0.714874 0.075592 0.042511 0.714935 0.119629 0.044037 0.715332 0.160248 0.045532 0.715759 0.196838 0.046997 0.716217 0.229797 0.048401 0.716614 0.259644 0.049866 0.717041 0.287384 0.051300 0.717407 0.313538 0.052704 0.717804 0.339203 0.054199 0.718170 0.364990 0.055695 0.718567 0.391663 0.057159 0.718933 0.419739 0.058685 0.719208 0.449738 0.060272 0.719543 0.482635 0.061890 0.719910 0.519012 0.063568 0.720215 0.560730 0.065369 0.720551 0.606812 0.067200 0.720795 0.655975 0.069122 0.721100 0.706085 0.071045 0.721375 0.753601 0.071411 0.720367 0.797729 0.071350 0.718842 0.837250 0.071411 0.717346 0.872192 0.071808 0.716156 0.902954 0.072449 0.714996 0.930023 0.073212 0.714050 0.953888 0.074097 0.713074 0.975189 0.075195 0.712280 0.994263 0.076294 0.711700 1.000000 0.094635 0.705719 1.000000 0.120392 0.698914 0.000000 0.091797 0.701599 0.029205 0.078369 0.715851 0.074127 0.078064 0.714752 0.117798 0.079285 0.715057 0.158600 0.080627 0.715454 0.195587 0.082031 0.715881 0.228607 0.083374 0.716278 0.258362 0.084717 0.716675 0.285980 0.086090 0.717041 0.312347 0.087494 0.717407 0.338104 0.088928 0.717773 0.363800 0.090393 0.718109 0.390503 0.091827 0.718445 0.418854 0.093414 0.718781 0.449402 0.095062 0.719116 0.482880 0.096710 0.719391 0.519806 0.098480 0.719696 0.561981 0.100281 0.720001 0.608459 0.102142 0.720276 0.657684 0.103790 0.720459 0.707642 0.105530 0.720642 0.755096 0.105896 0.719482 0.798950 0.105865 0.718048 0.838135 0.106018 0.716705 0.872772 0.106476 0.715363 0.903229 0.107086 0.714264 0.929993 0.107819 0.713257 0.953644 0.108704 0.712372 0.974670 0.109741 0.711487 0.993591 0.110809 0.710907 1.000000 0.127808 0.705566 1.000000 0.152802 0.699158 0.000000 0.126282 0.702362 0.028625 0.114258 0.716858 0.073792 0.113739 0.715729 0.116425 0.113617 0.714752 0.157379 0.114899 0.715118 0.194214 0.116180 0.715546 0.227295 0.117493 0.715881 0.257111 0.118805 0.716248 0.284851 0.120148 0.716644 0.311096 0.121552 0.716980 0.336853 0.122955 0.717316 0.362885 0.124451 0.717651 0.390076 0.125977 0.717987 0.418915 0.127533 0.718292 0.450043 0.129181 0.718567 0.483948 0.130920 0.718903 0.521271 0.132690 0.719147 0.563782 0.134277 0.719330 0.610657 0.135895 0.719543 0.659973 0.137665 0.719818 0.709930 0.139374 0.719971 0.757050 0.139648 0.718597 0.800507 0.139618 0.717133 0.839264 0.139893 0.715820 0.873474 0.140350 0.714539 0.903564 0.140930 0.713593 0.930084 0.141602 0.712524 0.953430 0.142487 0.711639 0.974304 0.143433 0.710785 0.993042 0.144440 0.709900 1.000000 0.159973 0.705475 1.000000 0.184296 0.699554 0.000000 0.159729 0.702911 0.028564 0.149048 0.717712 0.073700 0.148651 0.716614 0.116302 0.148285 0.715515 0.155884 0.148315 0.714783 0.192993 0.149597 0.715149 0.225952 0.150787 0.715546 0.255890 0.152130 0.715881 0.283508 0.153473 0.716217 0.310089 0.154877 0.716522 0.336456 0.156311 0.716858 0.363068 0.157837 0.717163 0.390564 0.159363 0.717468 0.419861 0.161041 0.717773 0.451355 0.162659 0.718048 0.485504 0.164154 0.718231 0.523407 0.165741 0.718475 0.566437 0.167328 0.718658 0.613495 0.169006 0.718872 0.662903 0.170776 0.719086 0.712708 0.172485 0.719269 0.759369 0.172577 0.717896 0.802368 0.172668 0.716278 0.840637 0.172821 0.714996 0.874359 0.173309 0.713776 0.904022 0.173828 0.712646 0.930145 0.174530 0.711823 0.953278 0.175323 0.710754 0.973907 0.176147 0.710052 0.992462 0.177063 0.709106 1.000000 0.191254 0.705139 1.000000 0.214874 0.700073 0.000000 0.192139 0.703766 0.028534 0.183136 0.718567 0.073669 0.182587 0.717438 0.116272 0.182220 0.716309 0.155609 0.181854 0.715302 0.191650 0.182159 0.714722 0.224609 0.183411 0.715057 0.254883 0.184723 0.715393 0.283264 0.186096 0.715759 0.310303 0.187531 0.716034 0.336975 0.188995 0.716370 0.363800 0.190552 0.716675 0.391815 0.192139 0.716949 0.421417 0.193512 0.717133 0.453125 0.195007 0.717377 0.487823 0.196533 0.717560 0.526123 0.198120 0.717804 0.569611 0.199707 0.717987 0.616943 0.201355 0.718201 0.666443 0.203064 0.718353 0.716003 0.204742 0.718506 0.762054 0.204773 0.717072 0.804474 0.204803 0.715607 0.842072 0.204956 0.714172 0.875305 0.205353 0.713013 0.904510 0.205841 0.711975 0.930298 0.206451 0.710815 0.953094 0.207184 0.709900 0.973511 0.207886 0.709137 0.991913 0.208740 0.708313 1.000000 0.221558 0.704956 1.000000 0.244446 0.700348 0.000000 0.223724 0.704590 0.028503 0.216125 0.719421 0.073639 0.215698 0.718262 0.116211 0.215363 0.717102 0.155579 0.215027 0.716095 0.191559 0.214966 0.715149 0.224487 0.215332 0.714630 0.255249 0.216675 0.714935 0.283844 0.218109 0.715271 0.311249 0.219452 0.715576 0.338287 0.221008 0.715820 0.365234 0.222290 0.716064 0.393524 0.223663 0.716248 0.423462 0.225189 0.716461 0.455627 0.226624 0.716675 0.490631 0.228180 0.716919 0.529572 0.229736 0.717072 0.573364 0.231323 0.717285 0.620941 0.232971 0.717438 0.670319 0.234619 0.717651 0.719482 0.236206 0.717712 0.764923 0.236023 0.716187 0.806580 0.235992 0.714569 0.843628 0.236206 0.713409 0.876282 0.236511 0.712067 0.905029 0.236938 0.711121 0.930450 0.237488 0.710175 0.952972 0.238098 0.709229 0.973145 0.238739 0.708374 0.991333 0.239410 0.707581 1.000000 0.250946 0.704651 1.000000 0.273163 0.700653 0.000000 0.254456 0.705353 0.028473 0.248444 0.720215 0.073608 0.247894 0.719025 0.116547 0.247620 0.717896 0.156921 0.247314 0.716766 0.193573 0.247345 0.715820 0.226379 0.247314 0.714935 0.256683 0.247955 0.714447 0.285553 0.249390 0.714722 0.312927 0.250549 0.714935 0.339905 0.251953 0.715179 0.367310 0.253265 0.715363 0.395782 0.254639 0.715607 0.426056 0.256165 0.715851 0.458710 0.257629 0.716003 0.494110 0.259155 0.716217 0.533600 0.260712 0.716370 0.577728 0.262207 0.716583 0.625305 0.263824 0.716766 0.674530 0.265442 0.716919 0.723053 0.266754 0.716888 0.767853 0.266663 0.715271 0.808838 0.266571 0.713745 0.845184 0.266724 0.712433 0.877289 0.266968 0.711273 0.905579 0.267334 0.710205 0.930573 0.267792 0.709167 0.952789 0.268341 0.708374 0.972717 0.268860 0.707397 0.990723 0.269470 0.706726 1.000000 0.279724 0.704315 1.000000 0.301239 0.700836 0.000000 0.284729 0.706085 0.028778 0.280090 0.720917 0.075256 0.279694 0.719696 0.119171 0.279388 0.718536 0.160004 0.279205 0.717407 0.196869 0.279205 0.716400 0.229797 0.279297 0.715454 0.259552 0.279358 0.714600 0.287537 0.279877 0.714050 0.315094 0.281189 0.714264 0.342285 0.282532 0.714508 0.369904 0.283875 0.714722 0.398712 0.285339 0.714935 0.429321 0.286774 0.715118 0.462219 0.288208 0.715302 0.498016 0.289734 0.715515 0.537903 0.291260 0.715668 0.582367 0.292755 0.715851 0.629974 0.294281 0.716003 0.678772 0.295837 0.716125 0.726685 0.296967 0.715973 0.770813 0.296814 0.714233 0.811005 0.296722 0.712830 0.846710 0.296814 0.711517 0.878235 0.297058 0.710358 0.905975 0.297333 0.709290 0.930634 0.297699 0.708252 0.952576 0.298187 0.707397 0.972290 0.298584 0.706512 0.990112 0.299072 0.705872 1.000000 0.308044 0.703918 1.000000 0.328949 0.701172 0.000000 0.314636 0.708344 0.031982 0.311584 0.721619 0.079102 0.311188 0.720337 0.123474 0.311005 0.719086 0.164490 0.310760 0.717926 0.201019 0.310699 0.716827 0.233582 0.310638 0.715851 0.263275 0.310791 0.714966 0.290985 0.311127 0.714172 0.317871 0.311707 0.713623 0.345154 0.313019 0.713776 0.372955 0.314392 0.713989 0.401947 0.315857 0.714142 0.432922 0.317322 0.714386 0.466217 0.318726 0.714569 0.502350 0.320160 0.714752 0.542694 0.321686 0.714905 0.587280 0.323151 0.715057 0.634705 0.324646 0.715210 0.683136 0.326050 0.715332 0.730255 0.326965 0.714813 0.773682 0.326782 0.713318 0.813049 0.326691 0.711884 0.848083 0.326782 0.710510 0.878967 0.326904 0.709442 0.906311 0.327118 0.708313 0.930603 0.327393 0.707428 0.952271 0.327789 0.706512 0.971771 0.328094 0.705719 0.989471 0.328522 0.704956 1.000000 0.336243 0.703278 1.000000 0.356659 0.701294 0.000000 0.344604 0.712738 0.037201 0.343048 0.722137 0.084808 0.342804 0.720795 0.128998 0.342407 0.719452 0.169617 0.342163 0.718262 0.205841 0.342102 0.717163 0.238251 0.342102 0.716217 0.267731 0.342377 0.715332 0.295349 0.342743 0.714508 0.321899 0.343048 0.713684 0.348480 0.343658 0.713043 0.376404 0.344971 0.713287 0.405640 0.346436 0.713470 0.436859 0.347900 0.713593 0.470367 0.349243 0.713745 0.506805 0.350677 0.713928 0.547455 0.352081 0.714050 0.592255 0.353546 0.714203 0.639496 0.354980 0.714325 0.687439 0.356354 0.714447 0.733704 0.357025 0.713837 0.776337 0.356812 0.712280 0.814972 0.356689 0.710846 0.849243 0.356689 0.709595 0.879608 0.356812 0.708435 0.906525 0.356934 0.707367 0.930450 0.357178 0.706482 0.951874 0.357361 0.705475 0.971191 0.357697 0.704773 0.988800 0.358063 0.703918 1.000000 0.364624 0.702667 1.000000 0.384430 0.701324 0.000000 0.375366 0.718964 0.043854 0.374817 0.722473 0.091248 0.374268 0.721069 0.135468 0.373932 0.719788 0.175751 0.373779 0.718536 0.211548 0.373749 0.717468 0.243530 0.373932 0.716522 0.272766 0.374207 0.715668 0.300110 0.374603 0.714783 0.326599 0.374939 0.713989 0.352966 0.375427 0.713165 0.380188 0.375854 0.712433 0.409668 0.377258 0.712616 0.441101 0.378693 0.712769 0.474823 0.380035 0.712891 0.511475 0.381439 0.713043 0.552399 0.382751 0.713165 0.597168 0.384186 0.713348 0.644043 0.385529 0.713440 0.691559 0.386841 0.713531 0.736877 0.387299 0.712769 0.778717 0.387024 0.711212 0.816559 0.386841 0.709747 0.850189 0.386841 0.708557 0.880035 0.386841 0.707458 0.906555 0.386932 0.706329 0.930206 0.387085 0.705322 0.951447 0.387299 0.704468 0.970612 0.387573 0.703522 0.988098 0.387848 0.702667 1.000000 0.393250 0.701721 1.000000 0.412537 0.701294 0.001770 0.407135 0.724213 0.051727 0.406555 0.722748 0.099030 0.406250 0.721344 0.143066 0.406097 0.720032 0.182800 0.405975 0.718842 0.217896 0.406036 0.717712 0.249359 0.406281 0.716797 0.278137 0.406494 0.715912 0.305206 0.406860 0.715088 0.331512 0.407257 0.714233 0.357910 0.407715 0.713409 0.385010 0.408051 0.712463 0.413727 0.408508 0.711700 0.445251 0.409882 0.711823 0.479279 0.411224 0.711975 0.516113 0.412537 0.712067 0.557343 0.413849 0.712250 0.601807 0.415131 0.712341 0.648376 0.416412 0.712463 0.695190 0.417664 0.712555 0.739685 0.417877 0.711578 0.780701 0.417603 0.710052 0.817780 0.417389 0.708679 0.850861 0.417206 0.707458 0.880310 0.417236 0.706299 0.906494 0.417297 0.705170 0.929932 0.417450 0.704224 0.950958 0.417603 0.703125 0.969971 0.417847 0.702240 0.987305 0.418121 0.701385 1.000000 0.422363 0.700653 1.000000 0.441071 0.701355 0.011017 0.439514 0.724426 0.061035 0.439240 0.722900 0.108032 0.438965 0.721558 0.151459 0.438751 0.720215 0.190338 0.438660 0.719025 0.224640 0.438843 0.717987 0.255463 0.439056 0.717041 0.283783 0.439423 0.716156 0.310516 0.439758 0.715271 0.336639 0.440277 0.714447 0.363007 0.440643 0.713623 0.390076 0.440887 0.712677 0.418701 0.441223 0.711639 0.449524 0.441559 0.710815 0.483612 0.442871 0.710938 0.520691 0.444153 0.711090 0.561890 0.445374 0.711212 0.606171 0.446533 0.711304 0.652313 0.447754 0.711426 0.698364 0.448914 0.711487 0.742065 0.448914 0.710388 0.782410 0.448578 0.708832 0.818878 0.448364 0.707489 0.851501 0.448242 0.706146 0.880524 0.448181 0.704956 0.906433 0.448212 0.703827 0.929626 0.448364 0.702820 0.950439 0.448517 0.701874 0.969299 0.448730 0.700836 0.986511 0.448975 0.700043 1.000000 0.452026 0.699524 1.000000 0.470215 0.701294 0.021729 0.472778 0.724579 0.071442 0.472443 0.723083 0.117920 0.472260 0.721680 0.160431 0.472107 0.720367 0.198303 0.472168 0.719208 0.231628 0.472382 0.718170 0.261749 0.472656 0.717224 0.289520 0.472992 0.716339 0.315948 0.473358 0.715515 0.341888 0.473755 0.714661 0.368073 0.474121 0.713776 0.395233 0.474457 0.712830 0.423859 0.474670 0.711761 0.454407 0.474701 0.710632 0.487854 0.475159 0.709869 0.524933 0.476318 0.709991 0.566010 0.477448 0.710114 0.610046 0.478546 0.710144 0.655548 0.479706 0.710266 0.701233 0.480713 0.710358 0.744080 0.480591 0.709045 0.783905 0.480225 0.707520 0.819855 0.480011 0.706116 0.852020 0.479889 0.704712 0.880676 0.479797 0.703552 0.906311 0.479828 0.702423 0.929199 0.479950 0.701385 0.949829 0.480042 0.700378 0.968536 0.480225 0.699432 0.985657 0.480438 0.698547 1.000000 0.482391 0.698029 1.000000 0.500000 0.701294 0.033508 0.506866 0.724640 0.082672 0.506622 0.723175 0.128235 0.506439 0.721771 0.169739 0.506439 0.720520 0.206360 0.506561 0.719330 0.238739 0.506653 0.718323 0.268066 0.506989 0.717377 0.295349 0.507385 0.716522 0.321350 0.507751 0.715698 0.347076 0.508057 0.714813 0.373108 0.508362 0.713898 0.400177 0.508667 0.712952 0.428833 0.508820 0.711914 0.459351 0.508850 0.710693 0.492218 0.508728 0.709412 0.528717 0.509186 0.708740 0.569641 0.510223 0.708862 0.613373 0.511292 0.708923 0.658569 0.512329 0.709015 0.703827 0.513306 0.709045 0.746063 0.513062 0.707581 0.785309 0.512695 0.706024 0.820740 0.512360 0.704559 0.852448 0.512268 0.703308 0.880707 0.512146 0.702057 0.906036 0.512177 0.700928 0.928741 0.512268 0.699860 0.949158 0.512360 0.698883 0.967743 0.512512 0.697937 0.984741 0.512726 0.697113 1.000000 0.513458 0.696411 1.000000 0.531281 0.701355 0.046021 0.543457 0.724701 0.094391 0.543243 0.723236 0.138855 0.543060 0.721832 0.179108 0.543030 0.720551 0.214447 0.543182 0.719452 0.245758 0.543304 0.718445 0.274353 0.543732 0.717529 0.300995 0.544067 0.716675 0.326630 0.544281 0.715820 0.352112 0.544678 0.714966 0.377991 0.544922 0.714020 0.404999 0.545105 0.713043 0.433533 0.545166 0.711975 0.464050 0.545166 0.710785 0.496704 0.544891 0.709473 0.532471 0.544556 0.708008 0.572937 0.545105 0.707550 0.616608 0.546143 0.707581 0.661530 0.547150 0.707581 0.706329 0.548096 0.707550 0.747894 0.547699 0.705902 0.786591 0.547211 0.704437 0.821533 0.546967 0.702942 0.852783 0.546753 0.701630 0.880676 0.546600 0.700439 0.905731 0.546600 0.699280 0.928162 0.546600 0.698303 0.948425 0.546722 0.697357 0.966858 0.546875 0.696411 0.983765 0.546997 0.695587 0.999420 0.547180 0.694855 1.000000 0.564789 0.701324 0.058960 0.582794 0.724701 0.106262 0.582489 0.723236 0.149475 0.582275 0.721832 0.188232 0.582275 0.720612 0.222321 0.582367 0.719543 0.252563 0.582520 0.718536 0.280396 0.582825 0.717651 0.306458 0.583069 0.716827 0.331726 0.583344 0.715942 0.356934 0.583588 0.715057 0.382599 0.583801 0.714172 0.409454 0.583862 0.713165 0.437866 0.583832 0.712097 0.468231 0.583618 0.710846 0.500977 0.583282 0.709503 0.537018 0.582855 0.707977 0.576508 0.582306 0.706360 0.619781 0.583069 0.706085 0.664429 0.584045 0.706055 0.708649 0.584869 0.705933 0.749725 0.584351 0.704285 0.787811 0.583801 0.702698 0.822205 0.583466 0.701294 0.853027 0.583160 0.700012 0.880585 0.583069 0.698792 0.905304 0.582947 0.697693 0.927551 0.582947 0.696716 0.947632 0.583008 0.695740 0.965912 0.583069 0.694946 0.982727 0.583160 0.694092 0.998352 0.583313 0.693298 1.000000 0.599976 0.701508 0.072021 0.623962 0.724640 0.118103 0.623749 0.723175 0.159851 0.623566 0.721832 0.197083 0.623444 0.720642 0.229797 0.623444 0.719604 0.259125 0.623657 0.718658 0.286102 0.623749 0.717773 0.311646 0.623962 0.716919 0.336456 0.624084 0.716064 0.361389 0.624237 0.715179 0.386841 0.624237 0.714233 0.413513 0.624237 0.713257 0.441956 0.624146 0.712128 0.472443 0.623810 0.710876 0.505310 0.623352 0.709442 0.541534 0.622772 0.707855 0.581085 0.622131 0.706177 0.622833 0.621521 0.704529 0.667145 0.622406 0.704468 0.710785 0.623077 0.704163 0.751312 0.622437 0.702576 0.788849 0.621857 0.701050 0.822754 0.621460 0.699615 0.853180 0.621124 0.698364 0.880402 0.620880 0.697235 0.904846 0.620758 0.696106 0.926849 0.620697 0.695129 0.946808 0.620667 0.694244 0.964966 0.620667 0.693512 0.981720 0.620728 0.692719 0.997253 0.620850 0.692047 1.000000 0.636353 0.701752 0.084839 0.666443 0.724579 0.129547 0.666077 0.723175 0.169739 0.665741 0.721863 0.205414 0.665741 0.720703 0.236847 0.665680 0.719666 0.265137 0.665680 0.718719 0.291443 0.665741 0.717896 0.316345 0.665771 0.717010 0.340790 0.665894 0.716156 0.365387 0.665863 0.715271 0.390808 0.665741 0.714325 0.417572 0.665619 0.713287 0.446106 0.665344 0.712097 0.476685 0.664886 0.710754 0.509644 0.664368 0.709259 0.546082 0.663727 0.707672 0.585602 0.662933 0.705994 0.627136 0.662140 0.704285 0.669769 0.661652 0.702881 0.712799 0.662079 0.702454 0.752808 0.661377 0.700836 0.789795 0.660706 0.699310 0.823181 0.660217 0.697968 0.853180 0.659851 0.696716 0.880096 0.659607 0.695618 0.904266 0.659363 0.694580 0.926086 0.659241 0.693665 0.945892 0.659149 0.692902 0.963989 0.659088 0.692108 0.980621 0.659058 0.691406 0.996155 0.659119 0.690735 1.000000 0.673309 0.702118 0.097229 0.709229 0.724518 0.140350 0.708801 0.723145 0.178925 0.708435 0.721863 0.213013 0.708252 0.720734 0.243225 0.708069 0.719727 0.270660 0.707916 0.718842 0.296173 0.707886 0.717957 0.320587 0.707825 0.717102 0.344849 0.707733 0.716248 0.369415 0.707611 0.715302 0.394775 0.707428 0.714294 0.421661 0.707153 0.713165 0.450256 0.706726 0.711914 0.480896 0.706238 0.710602 0.513977 0.705627 0.709076 0.550476 0.704742 0.707458 0.590027 0.703918 0.705811 0.631409 0.703033 0.704102 0.673370 0.702118 0.702393 0.714722 0.701324 0.700775 0.754211 0.700500 0.699188 0.790710 0.699860 0.697754 0.823639 0.699341 0.696503 0.853302 0.698914 0.695312 0.879883 0.698547 0.694275 0.903870 0.698334 0.693359 0.925507 0.698120 0.692535 0.945221 0.697968 0.691772 0.963196 0.697906 0.691132 0.979797 0.697876 0.690521 0.995300 0.697968 0.690063 1.000000 0.710938 0.702850 0.107727 0.750519 0.723328 0.149170 0.749908 0.722046 0.186157 0.749390 0.720795 0.218750 0.749054 0.719666 0.247772 0.748749 0.718658 0.274353 0.748474 0.717682 0.299408 0.748291 0.716858 0.323608 0.748077 0.715881 0.347717 0.747803 0.714996 0.372192 0.747559 0.713898 0.397583 0.747223 0.712860 0.424469 0.746796 0.711639 0.453125 0.746307 0.710419 0.483856 0.745636 0.708984 0.516998 0.744812 0.707458 0.553528 0.743896 0.705841 0.592926 0.742920 0.704132 0.634003 0.741913 0.702423 0.675568 0.740967 0.700745 0.717102 0.740631 0.699738 0.756958 0.740723 0.699127 0.792908 0.739990 0.697754 0.825378 0.739349 0.696533 0.854645 0.738800 0.695435 0.880920 0.738403 0.694427 0.904633 0.738037 0.693542 0.926056 0.737762 0.692810 0.945557 0.737610 0.692108 0.963440 0.737579 0.691559 0.979980 0.737885 0.691315 0.995331 0.738220 0.691101 1.000000 0.748016 0.704010 0.116699 0.789825 0.721680 0.156464 0.789093 0.720459 0.191925 0.788483 0.719177 0.223236 0.788055 0.718231 0.251495 0.787659 0.717133 0.277588 0.787292 0.716125 0.302338 0.786957 0.715240 0.326263 0.786682 0.714233 0.350281 0.786346 0.713257 0.374725 0.785950 0.712311 0.400146 0.785522 0.711151 0.427063 0.785004 0.710022 0.455750 0.784332 0.708649 0.486603 0.783600 0.707275 0.519836 0.782684 0.705750 0.556366 0.781708 0.704132 0.595642 0.780640 0.702454 0.636414 0.779572 0.700775 0.677582 0.778473 0.699158 0.718719 0.778229 0.698303 0.758759 0.778809 0.698364 0.794922 0.778778 0.697784 0.826965 0.778076 0.696655 0.855804 0.777496 0.695587 0.881805 0.777008 0.694733 0.905273 0.776581 0.693909 0.926544 0.776367 0.693237 0.945953 0.776489 0.692902 0.963715 0.776642 0.692627 0.980072 0.776733 0.692474 0.995331 0.776886 0.692383 1.000000 0.783691 0.705353 0.124573 0.827057 0.720184 0.162811 0.826324 0.718933 0.197052 0.825653 0.717834 0.227600 0.825043 0.716705 0.255157 0.824554 0.715576 0.280853 0.824127 0.714569 0.305237 0.823730 0.713623 0.328979 0.823334 0.712738 0.352844 0.822906 0.711700 0.377289 0.822449 0.710693 0.402710 0.821899 0.709503 0.429688 0.821259 0.708344 0.458405 0.820526 0.707092 0.489258 0.819672 0.705658 0.522614 0.818695 0.704132 0.559052 0.817627 0.702515 0.598145 0.816498 0.700928 0.638672 0.815338 0.699280 0.679443 0.814240 0.697723 0.720245 0.814026 0.697021 0.759705 0.814514 0.697144 0.795959 0.815002 0.697235 0.828339 0.814911 0.696869 0.856873 0.814301 0.695892 0.882629 0.813782 0.695099 0.906036 0.813660 0.694611 0.927124 0.813507 0.694244 0.946289 0.813446 0.694061 0.963837 0.813446 0.693909 0.980133 0.813446 0.693878 0.995300 0.813477 0.693939 1.000000 0.817291 0.706940 0.131714 0.861755 0.718781 0.168945 0.860870 0.717468 0.202148 0.860138 0.716187 0.231842 0.859528 0.715027 0.258850 0.858917 0.713989 0.283997 0.858459 0.713074 0.308105 0.857941 0.712067 0.331665 0.857483 0.711121 0.355377 0.856934 0.710175 0.379761 0.856415 0.709106 0.405243 0.855774 0.708008 0.432220 0.855072 0.706757 0.461029 0.854248 0.705536 0.491882 0.853333 0.704102 0.525177 0.852264 0.702606 0.561615 0.851105 0.701050 0.600525 0.849976 0.699463 0.640656 0.848785 0.697937 0.681061 0.847595 0.696381 0.721527 0.847412 0.695953 0.760468 0.847839 0.696075 0.796356 0.848236 0.696259 0.828857 0.848602 0.696503 0.858093 0.848938 0.696594 0.883606 0.848541 0.696136 0.906616 0.848267 0.695770 0.927429 0.847992 0.695526 0.946442 0.847778 0.695435 0.963867 0.847595 0.695435 0.980133 0.847504 0.695496 0.995300 0.847351 0.695618 1.000000 0.848450 0.708649 0.138733 0.893250 0.717255 0.174896 0.892365 0.715912 0.207092 0.891602 0.714661 0.236023 0.890930 0.713654 0.262421 0.890289 0.712555 0.287140 0.889709 0.711487 0.310944 0.889160 0.710632 0.334290 0.888611 0.709656 0.357971 0.888031 0.708557 0.382263 0.887421 0.707642 0.407776 0.886688 0.706543 0.434692 0.885895 0.705353 0.463470 0.885101 0.704071 0.494385 0.884094 0.702698 0.527679 0.882965 0.701294 0.564056 0.881805 0.699799 0.602631 0.880615 0.698242 0.642517 0.879364 0.696747 0.682465 0.878174 0.695343 0.722626 0.878021 0.695038 0.761169 0.878296 0.695251 0.796997 0.878815 0.695740 0.829224 0.879333 0.696289 0.858215 0.879791 0.696899 0.884186 0.880127 0.697418 0.906921 0.879700 0.697144 0.927551 0.879333 0.697052 0.946503 0.878937 0.697052 0.963898 0.878693 0.697113 0.980103 0.878418 0.697296 0.995270 0.878204 0.697510 1.000000 0.876923 0.710480 0.145691 0.921448 0.715790 0.180725 0.920532 0.714447 0.211975 0.919769 0.713165 0.240112 0.919006 0.712250 0.265930 0.918365 0.711121 0.290283 0.917725 0.710114 0.313690 0.917145 0.709229 0.336975 0.916504 0.708252 0.360413 0.915863 0.707306 0.384674 0.915222 0.706207 0.410126 0.914459 0.705231 0.437073 0.913635 0.703979 0.465851 0.912720 0.702881 0.496704 0.911713 0.701538 0.529968 0.910522 0.700165 0.566162 0.909363 0.698700 0.604553 0.908142 0.697266 0.644104 0.906860 0.695801 0.683685 0.905670 0.694458 0.724121 0.905701 0.694580 0.762421 0.906067 0.695099 0.797424 0.906403 0.695740 0.829041 0.906769 0.696411 0.857635 0.907104 0.697144 0.883484 0.907440 0.697937 0.907013 0.907776 0.698761 0.927612 0.907288 0.698761 0.946503 0.906860 0.698822 0.963898 0.906555 0.699005 0.980103 0.906158 0.699158 0.995178 0.905853 0.699402 1.000000 0.902527 0.712341 0.152374 0.946564 0.714386 0.186310 0.945618 0.713074 0.216614 0.944824 0.711914 0.244049 0.944061 0.710785 0.269318 0.943420 0.709808 0.293304 0.942749 0.708771 0.316437 0.942139 0.707916 0.339478 0.941498 0.706940 0.362885 0.940826 0.706055 0.387024 0.940125 0.704987 0.412384 0.939362 0.703979 0.439331 0.938477 0.702942 0.468048 0.937531 0.701813 0.498810 0.936493 0.700470 0.532013 0.935364 0.699219 0.568024 0.934174 0.697815 0.606171 0.932953 0.696503 0.646088 0.931763 0.695374 0.685699 0.930695 0.694336 0.725189 0.930664 0.694641 0.762726 0.930878 0.695282 0.797211 0.931122 0.696075 0.828522 0.931366 0.696869 0.856873 0.931610 0.697662 0.882690 0.931824 0.698547 0.906128 0.932068 0.699432 0.927490 0.932312 0.700409 0.946564 0.931946 0.700745 0.963959 0.931549 0.700897 0.980103 0.931122 0.701111 0.995209 0.930817 0.701538 1.000000 0.925842 0.714722 0.158813 0.969055 0.712891 0.191681 0.968140 0.711639 0.221100 0.967346 0.710571 0.247742 0.966614 0.709625 0.272583 0.965912 0.708649 0.296143 0.965271 0.707642 0.319031 0.964600 0.706818 0.341858 0.963928 0.705750 0.365112 0.963287 0.704987 0.389221 0.962555 0.704041 0.414551 0.961761 0.703003 0.441376 0.960907 0.702087 0.470062 0.959930 0.700958 0.500671 0.958923 0.699646 0.533752 0.957764 0.698456 0.570404 0.956635 0.697418 0.608734 0.955505 0.696350 0.647766 0.954315 0.695496 0.686554 0.953186 0.694580 0.725403 0.953064 0.695038 0.762543 0.953247 0.695801 0.796661 0.953400 0.696686 0.827759 0.953552 0.697540 0.856110 0.953705 0.698395 0.881836 0.953857 0.699371 0.905365 0.954041 0.700378 0.926697 0.954163 0.701294 0.946320 0.954346 0.702301 0.964020 0.954163 0.702942 0.980164 0.953735 0.703552 0.995178 0.953430 0.704346 1.000000 0.946899 0.717651 0.164886 0.989349 0.711578 0.196686 0.988495 0.710541 0.225250 0.987701 0.709381 0.251312 0.987030 0.708435 0.275635 0.986298 0.707397 0.298828 0.985657 0.706543 0.321472 0.985016 0.705719 0.344116 0.984375 0.704834 0.367218 0.983673 0.704010 0.391144 0.982941 0.703247 0.416412 0.982147 0.702209 0.443176 0.981293 0.701263 0.471741 0.980347 0.700195 0.502960 0.979340 0.699310 0.536438 0.978241 0.698456 0.572388 0.977142 0.697510 0.609924 0.975983 0.696655 0.648315 0.974823 0.695831 0.686646 0.973694 0.695160 0.725067 0.973541 0.695679 0.761902 0.973602 0.696564 0.795959 0.973694 0.697479 0.826996 0.973755 0.698395 0.855438 0.973846 0.699402 0.881165 0.973969 0.700378 0.904694 0.974030 0.701355 0.926178 0.974152 0.702454 0.945831 0.974243 0.703827 0.963806 0.974396 0.705292 0.980255 0.974365 0.706604 0.995209 0.973907 0.707550 1.000000 0.966125 0.720825 0.181702 1.000000 0.707489 0.211182 1.000000 0.707062 0.237793 1.000000 0.706421 0.262177 1.000000 0.705780 0.285034 1.000000 0.705353 0.306946 1.000000 0.704712 0.328369 1.000000 0.704224 0.349945 1.000000 0.703644 0.371979 1.000000 0.703125 0.394867 1.000000 0.702423 0.419037 1.000000 0.701691 0.445374 1.000000 0.700989 0.474274 0.999115 0.700226 0.504883 0.998077 0.699402 0.537811 0.997040 0.698700 0.573181 0.995880 0.697968 0.610291 0.994751 0.697266 0.648224 0.993591 0.696594 0.686279 0.992493 0.696045 0.724518 0.992249 0.696533 0.761322 0.992249 0.697479 0.795410 0.992279 0.698456 0.826569 0.992340 0.699432 0.854980 0.992340 0.700409 0.880859 0.992401 0.701508 0.904419 0.992432 0.702850 0.925842 0.992432 0.704346 0.945404 0.992493 0.705963 0.963348 0.992523 0.707611 0.979858 0.992554 0.709290 0.995209 0.992523 0.710632 1.000000 0.983734 0.723450 0.211700 1.000000 0.701355 0.239899 1.000000 0.701324 0.265442 1.000000 0.701324 0.288910 1.000000 0.701416 0.310944 1.000000 0.701599 0.332214 1.000000 0.701599 0.353088 1.000000 0.701752 0.374115 1.000000 0.701904 0.395630 1.000000 0.702209 0.418640 1.000000 0.702667 0.442688 1.000000 0.703217 0.468048 1.000000 0.703796 0.494934 1.000000 0.704498 0.523987 1.000000 0.705109 0.555817 1.000000 0.705963 0.589966 1.000000 0.706665 0.625763 1.000000 0.707581 0.662415 1.000000 0.708405 0.699127 1.000000 0.709351 0.734955 1.000000 0.710297 0.768982 1.000000 0.711212 0.800568 1.000000 0.712189 0.829498 1.000000 0.713196 0.855896 1.000000 0.714539 0.879791 1.000000 0.715973 0.901581 1.000000 0.717499 0.921417 1.000000 0.719116 0.939575 1.000000 0.720734 0.956207 1.000000 0.722137 0.971710 1.000000 0.723450 0.986267 1.000000 0.724640 1.000000 1.000000 0.725769 0.000000 0.019836 0.720276 0.027802 0.002594 0.739227 0.075500 0.005615 0.740051 0.119965 0.007263 0.740509 0.160858 0.008942 0.740936 0.197479 0.010498 0.741364 0.230164 0.012054 0.741791 0.260040 0.013641 0.742218 0.287659 0.015106 0.742615 0.313873 0.016632 0.743011 0.339478 0.018158 0.743408 0.365265 0.019653 0.743774 0.391907 0.021179 0.744110 0.420013 0.022736 0.744476 0.450012 0.024323 0.744812 0.482483 0.025970 0.745209 0.518311 0.027618 0.745453 0.559601 0.029388 0.745819 0.605438 0.031189 0.746094 0.654236 0.033051 0.746368 0.704132 0.035095 0.746704 0.752991 0.036896 0.746765 0.797180 0.036774 0.745300 0.836945 0.036896 0.743713 0.872131 0.037231 0.742737 0.903076 0.037750 0.741516 0.930298 0.038513 0.740540 0.954315 0.039429 0.739502 0.975739 0.040527 0.738800 0.994934 0.041718 0.737976 1.000000 0.061554 0.730499 1.000000 0.087952 0.722046 0.000000 0.057404 0.724182 0.028137 0.040924 0.739746 0.074463 0.041901 0.739777 0.118469 0.043488 0.740234 0.159058 0.044952 0.740662 0.195831 0.046417 0.741089 0.228790 0.047882 0.741455 0.258606 0.049286 0.741852 0.286377 0.050751 0.742279 0.312683 0.052155 0.742645 0.338226 0.053619 0.742950 0.364136 0.055084 0.743317 0.390686 0.056580 0.743683 0.418732 0.058136 0.744019 0.448944 0.059723 0.744354 0.481903 0.061432 0.744659 0.518463 0.063110 0.744995 0.560120 0.064941 0.745270 0.606354 0.066833 0.745544 0.655609 0.068787 0.745850 0.705597 0.070618 0.746063 0.754059 0.072052 0.746033 0.798065 0.071960 0.744415 0.837616 0.072174 0.742981 0.872467 0.072571 0.741913 0.903168 0.073120 0.740631 0.930145 0.073975 0.739685 0.954041 0.074860 0.738831 0.975220 0.075897 0.737976 0.994293 0.077087 0.737122 1.000000 0.095428 0.730621 1.000000 0.121216 0.722565 0.000000 0.092255 0.725525 0.028076 0.077850 0.740723 0.072937 0.077362 0.739655 0.116699 0.078705 0.739960 0.157532 0.080109 0.740326 0.194489 0.081451 0.740723 0.227570 0.082794 0.741119 0.257446 0.084167 0.741486 0.284973 0.085541 0.741852 0.311432 0.086945 0.742218 0.337036 0.088409 0.742554 0.362946 0.089844 0.742859 0.389618 0.091309 0.743225 0.418030 0.092926 0.743530 0.448853 0.094574 0.743835 0.482239 0.096252 0.744171 0.519318 0.098053 0.744446 0.561523 0.099945 0.744690 0.608185 0.101715 0.744965 0.657288 0.103333 0.745178 0.707245 0.105164 0.745422 0.755615 0.106537 0.745209 0.799377 0.106506 0.743713 0.838593 0.106750 0.742340 0.873077 0.107117 0.740967 0.903442 0.107819 0.739838 0.930145 0.108582 0.739075 0.953766 0.109467 0.738098 0.974792 0.110565 0.737305 0.993652 0.111633 0.736420 1.000000 0.128540 0.730530 1.000000 0.153595 0.722900 0.000000 0.126709 0.726105 0.027496 0.113586 0.741699 0.072662 0.113312 0.740570 0.115448 0.113037 0.739563 0.156158 0.114349 0.739990 0.193176 0.115601 0.740356 0.226288 0.116943 0.740692 0.256165 0.118256 0.741089 0.283752 0.119598 0.741425 0.310120 0.121002 0.741760 0.335846 0.122406 0.742126 0.362183 0.123901 0.742401 0.389374 0.125488 0.742737 0.418335 0.127075 0.742981 0.449554 0.128784 0.743347 0.483521 0.130554 0.743591 0.520935 0.132202 0.743835 0.563507 0.133820 0.744019 0.610352 0.135529 0.744293 0.659729 0.137207 0.744476 0.709595 0.139008 0.744690 0.757660 0.140350 0.744415 0.801025 0.140350 0.742828 0.839752 0.140594 0.741394 0.873810 0.140991 0.740265 0.903839 0.141602 0.739044 0.930237 0.142365 0.738220 0.953583 0.143188 0.737305 0.974365 0.144165 0.736298 0.993073 0.145203 0.735626 1.000000 0.160706 0.730316 1.000000 0.184967 0.723328 0.000000 0.160095 0.726807 0.027466 0.148499 0.742584 0.072601 0.148010 0.741425 0.115234 0.147736 0.740326 0.154816 0.147736 0.739563 0.191864 0.148987 0.739960 0.224854 0.150208 0.740295 0.254852 0.151581 0.740631 0.282562 0.152893 0.740997 0.309326 0.154388 0.741302 0.335754 0.155792 0.741608 0.362335 0.157349 0.741913 0.389984 0.158966 0.742249 0.419373 0.160583 0.742462 0.451050 0.162231 0.742737 0.485229 0.163696 0.742920 0.523102 0.165314 0.743195 0.566284 0.166901 0.743378 0.613403 0.168640 0.743622 0.662811 0.170349 0.743774 0.712524 0.172119 0.743958 0.760040 0.173248 0.743469 0.802917 0.173309 0.741974 0.841095 0.173553 0.740570 0.874695 0.173920 0.739441 0.904236 0.174500 0.738373 0.930328 0.175201 0.737335 0.953430 0.175995 0.736481 0.973969 0.176849 0.735443 0.992493 0.177795 0.734741 1.000000 0.191925 0.730011 1.000000 0.215515 0.723663 0.000000 0.192444 0.727631 0.027435 0.182495 0.743439 0.072571 0.182007 0.742279 0.115204 0.181549 0.741150 0.154572 0.181335 0.740112 0.190613 0.181580 0.739502 0.223633 0.182922 0.739838 0.254059 0.184174 0.740173 0.282562 0.185608 0.740509 0.309692 0.187042 0.740784 0.336304 0.188507 0.741119 0.363403 0.190094 0.741364 0.391449 0.191650 0.741638 0.420990 0.193024 0.741852 0.452850 0.194519 0.742096 0.487701 0.196106 0.742310 0.526031 0.197693 0.742493 0.569519 0.199310 0.742676 0.616943 0.201050 0.742889 0.666290 0.202698 0.743011 0.715912 0.204437 0.743225 0.762756 0.205383 0.742676 0.805023 0.205414 0.741089 0.842560 0.205627 0.739838 0.875641 0.205963 0.738495 0.904785 0.206482 0.737457 0.930511 0.207092 0.736481 0.953247 0.207794 0.735657 0.973602 0.208557 0.734833 0.991943 0.209351 0.734070 1.000000 0.222198 0.729828 1.000000 0.245056 0.723907 0.000000 0.223938 0.728455 0.027405 0.215607 0.744263 0.072540 0.215118 0.743042 0.115173 0.214752 0.741943 0.154541 0.214447 0.740906 0.190796 0.214417 0.739929 0.223816 0.214783 0.739380 0.254608 0.216095 0.739685 0.283356 0.217560 0.740021 0.310822 0.219086 0.740295 0.337738 0.220490 0.740509 0.364838 0.221802 0.740753 0.393250 0.223236 0.740997 0.423096 0.224670 0.741180 0.455444 0.226166 0.741425 0.490692 0.227692 0.741608 0.529602 0.229279 0.741791 0.573456 0.230896 0.741974 0.620911 0.232483 0.742157 0.670288 0.234161 0.742340 0.719421 0.235870 0.742493 0.765625 0.236603 0.741699 0.807190 0.236572 0.740295 0.844147 0.236816 0.738953 0.876648 0.237061 0.737671 0.905365 0.237549 0.736633 0.930664 0.238098 0.735718 0.953125 0.238678 0.734711 0.973206 0.239349 0.734009 0.991364 0.239990 0.733154 1.000000 0.251556 0.729614 1.000000 0.273682 0.724365 0.000000 0.254578 0.729187 0.027374 0.247803 0.744995 0.072510 0.247375 0.743805 0.115845 0.247131 0.742645 0.156311 0.246826 0.741547 0.193024 0.246826 0.740540 0.225983 0.246887 0.739685 0.256256 0.247467 0.739166 0.285126 0.248871 0.739441 0.312531 0.250122 0.739655 0.339539 0.251404 0.739899 0.367035 0.252838 0.740112 0.395569 0.254242 0.740326 0.425873 0.255707 0.740540 0.458618 0.257172 0.740692 0.494141 0.258698 0.740906 0.533630 0.260254 0.741089 0.577881 0.261871 0.741211 0.625366 0.263428 0.741394 0.674438 0.265045 0.741577 0.723297 0.266632 0.741699 0.768555 0.267120 0.740784 0.809448 0.267151 0.739319 0.845673 0.267242 0.737976 0.877594 0.267517 0.736816 0.905853 0.267883 0.735779 0.930756 0.268402 0.734741 0.952881 0.268890 0.733856 0.972809 0.269409 0.733002 0.990784 0.269958 0.732239 1.000000 0.280243 0.729279 1.000000 0.301758 0.724548 0.000000 0.284912 0.729919 0.028168 0.279663 0.745758 0.074738 0.279114 0.744507 0.118835 0.278839 0.743286 0.159637 0.278625 0.742157 0.196594 0.278717 0.741119 0.229431 0.278839 0.740173 0.259186 0.278931 0.739288 0.287231 0.279388 0.738800 0.314819 0.280701 0.739014 0.341980 0.282074 0.739227 0.369720 0.283478 0.739410 0.398621 0.284912 0.739624 0.429260 0.286346 0.739777 0.462280 0.287842 0.740021 0.498138 0.289276 0.740143 0.538116 0.290802 0.740326 0.582581 0.292419 0.740479 0.630066 0.293884 0.740631 0.678925 0.295441 0.740784 0.727081 0.296997 0.740936 0.771515 0.297333 0.739777 0.811584 0.297272 0.738434 0.847198 0.297333 0.737183 0.878510 0.297546 0.735931 0.906281 0.297852 0.734863 0.930786 0.298248 0.733826 0.952698 0.298645 0.733032 0.972321 0.299103 0.732239 0.990143 0.299530 0.731445 1.000000 0.308563 0.728760 1.000000 0.329407 0.724701 0.000000 0.314545 0.732697 0.031708 0.310974 0.746338 0.078918 0.310730 0.745056 0.123474 0.310425 0.743774 0.164276 0.310272 0.742615 0.200775 0.310211 0.741516 0.233429 0.310211 0.740570 0.263062 0.310364 0.739655 0.290771 0.310669 0.738892 0.317657 0.311249 0.738312 0.344971 0.312561 0.738495 0.372803 0.313995 0.738678 0.401947 0.315399 0.738892 0.432892 0.316833 0.739044 0.466278 0.318329 0.739227 0.502472 0.319763 0.739380 0.542847 0.321228 0.739532 0.587524 0.322754 0.739685 0.634827 0.324158 0.739807 0.683258 0.325714 0.739960 0.730896 0.327148 0.740143 0.774384 0.327240 0.738831 0.813660 0.327209 0.737488 0.848511 0.327271 0.736206 0.879303 0.327393 0.734985 0.906586 0.327637 0.733887 0.930786 0.327881 0.732971 0.952362 0.328217 0.732117 0.971832 0.328552 0.731171 0.989502 0.328918 0.730316 1.000000 0.336731 0.728363 1.000000 0.357056 0.724915 0.000000 0.344330 0.737427 0.037231 0.342682 0.746857 0.084778 0.342255 0.745514 0.129059 0.341858 0.744202 0.169617 0.341644 0.742950 0.205872 0.341644 0.741852 0.238220 0.341766 0.740936 0.267639 0.341858 0.740051 0.295258 0.342224 0.739197 0.321808 0.342621 0.738342 0.348358 0.343231 0.737732 0.376373 0.344604 0.737915 0.405701 0.345978 0.738098 0.436890 0.347412 0.738251 0.470551 0.348846 0.738434 0.507019 0.350250 0.738556 0.547668 0.351715 0.738678 0.592529 0.353149 0.738831 0.639496 0.354553 0.739014 0.687561 0.355957 0.739136 0.734436 0.357330 0.739227 0.776978 0.357239 0.737823 0.815491 0.357147 0.736450 0.849609 0.357147 0.735138 0.879913 0.357208 0.734009 0.906738 0.357391 0.733032 0.930603 0.357574 0.731903 0.951965 0.357849 0.730988 0.971252 0.358124 0.730194 0.988800 0.358429 0.729279 1.000000 0.365051 0.727692 1.000000 0.384827 0.724915 0.000000 0.374969 0.743805 0.044098 0.374146 0.747223 0.091492 0.373749 0.745789 0.135742 0.373413 0.744476 0.175964 0.373291 0.743256 0.211700 0.373352 0.742218 0.243622 0.373535 0.741211 0.272705 0.373810 0.740295 0.300079 0.374084 0.739471 0.326538 0.374603 0.738647 0.352966 0.374908 0.737762 0.380219 0.375519 0.737091 0.409668 0.376862 0.737244 0.441101 0.378235 0.737396 0.475067 0.379639 0.737549 0.511719 0.381012 0.737671 0.552673 0.382385 0.737793 0.597351 0.383759 0.737976 0.644135 0.385101 0.738037 0.691498 0.386414 0.738190 0.737640 0.387726 0.738281 0.779297 0.387482 0.736755 0.817017 0.387299 0.735413 0.850525 0.387207 0.734100 0.880280 0.387238 0.732910 0.906769 0.387329 0.731934 0.930328 0.387451 0.730957 0.951538 0.387695 0.729980 0.970673 0.387939 0.729034 0.988098 0.388245 0.728119 1.000000 0.393677 0.726776 1.000000 0.412933 0.724915 0.002289 0.406586 0.748871 0.052185 0.406097 0.747406 0.099579 0.405853 0.746002 0.143524 0.405487 0.744720 0.183075 0.405457 0.743469 0.218140 0.405518 0.742401 0.249512 0.405853 0.741425 0.278168 0.406067 0.740570 0.305267 0.406494 0.739685 0.331512 0.406921 0.738892 0.357880 0.407257 0.738037 0.385071 0.407684 0.737122 0.413727 0.408112 0.736298 0.445404 0.409485 0.736481 0.479492 0.410797 0.736603 0.516357 0.412109 0.736755 0.557526 0.413422 0.736816 0.602020 0.414734 0.736938 0.648376 0.415985 0.737091 0.695160 0.417206 0.737183 0.740356 0.418304 0.737152 0.781281 0.417969 0.735626 0.818237 0.417786 0.734222 0.851196 0.417664 0.732941 0.880585 0.417633 0.731781 0.906708 0.417755 0.730682 0.930084 0.417786 0.729706 0.951080 0.417969 0.728638 0.970062 0.418213 0.727692 0.987335 0.418488 0.726837 1.000000 0.422821 0.725739 1.000000 0.441437 0.724823 0.011871 0.439026 0.749084 0.061737 0.438660 0.747620 0.108826 0.438416 0.746185 0.152100 0.438293 0.744873 0.190765 0.438202 0.743683 0.224945 0.438385 0.742645 0.255646 0.438721 0.741638 0.283844 0.439026 0.740784 0.310577 0.439423 0.739960 0.336670 0.439728 0.739105 0.363007 0.440186 0.738220 0.390198 0.440521 0.737305 0.418762 0.440704 0.736267 0.449707 0.441193 0.735504 0.483826 0.442474 0.735565 0.520752 0.443695 0.735687 0.562042 0.444977 0.735840 0.606262 0.446167 0.735931 0.652252 0.447357 0.736023 0.698273 0.448456 0.736115 0.742615 0.449310 0.735931 0.782867 0.448944 0.734344 0.819305 0.448730 0.732941 0.851837 0.448578 0.731720 0.880798 0.448578 0.730438 0.906647 0.448608 0.729401 0.929749 0.448730 0.728333 0.950531 0.448883 0.727264 0.969391 0.449066 0.726410 0.986511 0.449280 0.725433 1.000000 0.452423 0.724579 1.000000 0.470490 0.724884 0.022797 0.472229 0.749207 0.072327 0.471924 0.747742 0.118774 0.471802 0.746338 0.161194 0.471741 0.744995 0.198730 0.471710 0.743835 0.232025 0.471985 0.742798 0.261902 0.472229 0.741852 0.289642 0.472595 0.740997 0.316010 0.472931 0.740143 0.341888 0.473328 0.739288 0.368103 0.473755 0.738403 0.395294 0.474060 0.737427 0.423920 0.474152 0.736389 0.454498 0.474304 0.735199 0.487976 0.474731 0.734497 0.524963 0.475891 0.734650 0.566101 0.477081 0.734711 0.609985 0.478119 0.734802 0.655426 0.479187 0.734863 0.701019 0.480255 0.734924 0.744690 0.480927 0.734558 0.784393 0.480560 0.733032 0.820282 0.480316 0.731598 0.852325 0.480225 0.730255 0.880951 0.480164 0.729095 0.906494 0.480194 0.727936 0.929321 0.480225 0.726898 0.949921 0.480408 0.725830 0.968597 0.480530 0.724854 0.985687 0.480804 0.724091 1.000000 0.482758 0.723389 1.000000 0.500305 0.724915 0.034729 0.506500 0.749268 0.083710 0.506165 0.747803 0.129211 0.505981 0.746368 0.170441 0.505981 0.745056 0.206818 0.506073 0.743927 0.239105 0.506287 0.742920 0.268280 0.506653 0.742035 0.295410 0.506958 0.741180 0.321442 0.507324 0.740295 0.347046 0.507629 0.739441 0.373138 0.507965 0.738525 0.400269 0.508240 0.737549 0.428802 0.508392 0.736511 0.459412 0.508392 0.735352 0.492279 0.508301 0.734009 0.528687 0.508759 0.733368 0.569611 0.509796 0.733459 0.613312 0.510834 0.733521 0.658447 0.511871 0.733521 0.703613 0.512848 0.733612 0.746674 0.513367 0.733063 0.785828 0.513031 0.731506 0.821167 0.512787 0.730042 0.852753 0.512604 0.728760 0.881012 0.512543 0.727539 0.906219 0.512543 0.726410 0.928864 0.512604 0.725311 0.949280 0.512726 0.724335 0.967773 0.512848 0.723389 0.984772 0.513031 0.722534 1.000000 0.513824 0.721771 1.000000 0.531586 0.724884 0.047363 0.543060 0.749268 0.095428 0.542694 0.747803 0.139862 0.542633 0.746429 0.179840 0.542633 0.745209 0.214844 0.542694 0.744049 0.246094 0.542908 0.743042 0.274475 0.543182 0.742188 0.301056 0.543518 0.741302 0.326721 0.543945 0.740417 0.352112 0.544220 0.739532 0.378021 0.544495 0.738647 0.405029 0.544708 0.737671 0.433502 0.544708 0.736603 0.463959 0.544678 0.735413 0.496643 0.544434 0.734070 0.532440 0.544067 0.732544 0.572998 0.544617 0.732086 0.616486 0.545624 0.732117 0.661407 0.546631 0.732147 0.706116 0.547638 0.732117 0.748566 0.548004 0.731445 0.787079 0.547577 0.729889 0.821960 0.547302 0.728455 0.853088 0.547058 0.727081 0.880951 0.546967 0.725861 0.905884 0.546967 0.724823 0.928314 0.546967 0.723785 0.948486 0.547028 0.722748 0.966919 0.547180 0.721893 0.983795 0.547302 0.720978 0.999390 0.547485 0.720184 1.000000 0.565094 0.724945 0.060364 0.582306 0.749268 0.107300 0.581970 0.747833 0.150452 0.581909 0.746490 0.188965 0.581848 0.745239 0.222656 0.581879 0.744171 0.252899 0.582031 0.743225 0.280457 0.582336 0.742249 0.306488 0.582581 0.741394 0.331726 0.582886 0.740570 0.356842 0.583038 0.739685 0.382538 0.583252 0.738739 0.409363 0.583374 0.737762 0.437714 0.583282 0.736664 0.468170 0.583069 0.735443 0.500885 0.582703 0.734039 0.536926 0.582306 0.732483 0.576447 0.581696 0.730865 0.619629 0.582458 0.730652 0.664246 0.583405 0.730621 0.708496 0.584442 0.730591 0.750244 0.584625 0.729736 0.788300 0.584167 0.728180 0.822601 0.583801 0.726776 0.853302 0.583557 0.725494 0.880798 0.583344 0.724304 0.905457 0.583282 0.723206 0.927643 0.583282 0.722168 0.947693 0.583313 0.721222 0.966003 0.583344 0.720367 0.982758 0.583527 0.719513 0.998383 0.583679 0.718872 1.000000 0.600281 0.725098 0.073425 0.623566 0.749237 0.119080 0.623169 0.747803 0.160797 0.623047 0.746490 0.197632 0.622803 0.745331 0.230103 0.622986 0.744232 0.259338 0.623077 0.743256 0.286163 0.623230 0.742401 0.311615 0.623383 0.741547 0.336426 0.623566 0.740662 0.361206 0.623688 0.739777 0.386688 0.623749 0.738831 0.413391 0.623657 0.737823 0.441833 0.623444 0.736664 0.472382 0.623169 0.735382 0.505219 0.622711 0.733978 0.541504 0.622223 0.732391 0.581055 0.621521 0.730713 0.622711 0.620850 0.729065 0.666992 0.621796 0.729034 0.710754 0.622711 0.728943 0.751862 0.622711 0.727997 0.789307 0.622162 0.726471 0.823120 0.621765 0.725067 0.853424 0.621429 0.723846 0.880615 0.621216 0.722626 0.904968 0.621033 0.721558 0.926971 0.621002 0.720673 0.946869 0.620972 0.719696 0.965027 0.621002 0.718933 0.981720 0.621063 0.718170 0.997284 0.621185 0.717468 1.000000 0.636658 0.725403 0.086212 0.665894 0.749176 0.130432 0.665527 0.747742 0.170563 0.665283 0.746460 0.205780 0.665070 0.745300 0.237061 0.665009 0.744324 0.265289 0.665100 0.743378 0.291351 0.665131 0.742493 0.316223 0.665161 0.741608 0.340637 0.665283 0.740753 0.365204 0.665192 0.739899 0.390686 0.665070 0.738892 0.417480 0.664948 0.737793 0.445953 0.664612 0.736633 0.476624 0.664215 0.735291 0.509583 0.663666 0.733826 0.546021 0.663025 0.732208 0.585510 0.662292 0.730499 0.626984 0.661499 0.728790 0.669586 0.660980 0.727417 0.712891 0.661835 0.727356 0.753326 0.661682 0.726318 0.790222 0.661011 0.724762 0.823547 0.660553 0.723419 0.853424 0.660126 0.722198 0.880310 0.659882 0.721069 0.904419 0.659637 0.720062 0.926208 0.659546 0.719147 0.945984 0.659424 0.718353 0.964020 0.659393 0.717590 0.980652 0.659424 0.716919 0.996155 0.659454 0.716309 1.000000 0.673584 0.725739 0.098328 0.708527 0.749054 0.141174 0.708069 0.747681 0.179596 0.707794 0.746490 0.213287 0.707581 0.745361 0.243378 0.707336 0.744354 0.270630 0.707397 0.743439 0.296021 0.707245 0.742554 0.320465 0.707092 0.741699 0.344727 0.707062 0.740784 0.369202 0.706970 0.739838 0.394714 0.706787 0.738831 0.421448 0.706451 0.737701 0.450104 0.706055 0.736481 0.480865 0.705566 0.735107 0.513885 0.704834 0.733643 0.550446 0.704041 0.731995 0.589935 0.703217 0.730286 0.631195 0.702332 0.728577 0.673126 0.701416 0.726898 0.714905 0.701172 0.725769 0.754639 0.700775 0.724640 0.791046 0.700073 0.723175 0.823822 0.699463 0.721802 0.853394 0.699005 0.720642 0.879944 0.698669 0.719604 0.903839 0.698364 0.718628 0.925415 0.698151 0.717804 0.945038 0.697998 0.717072 0.963013 0.697968 0.716431 0.979614 0.697845 0.715790 0.995056 0.698120 0.715363 1.000000 0.711365 0.726593 0.109680 0.750763 0.748993 0.150909 0.750183 0.747620 0.187622 0.749664 0.746368 0.219879 0.749268 0.745209 0.248749 0.748962 0.744202 0.275299 0.748718 0.743347 0.300201 0.748535 0.742371 0.324402 0.748352 0.741394 0.348480 0.748077 0.740479 0.372894 0.747833 0.739441 0.398346 0.747467 0.738342 0.425171 0.747009 0.737213 0.453857 0.746521 0.735901 0.484619 0.745819 0.734436 0.517670 0.744995 0.732941 0.554321 0.744110 0.731262 0.593689 0.743164 0.729584 0.634705 0.742126 0.727844 0.676208 0.741150 0.726166 0.717010 0.740204 0.724548 0.756439 0.739929 0.723633 0.792297 0.739227 0.722260 0.824738 0.738586 0.721039 0.853912 0.738037 0.719971 0.880188 0.737640 0.718994 0.903839 0.737335 0.718140 0.925293 0.737061 0.717407 0.944794 0.736816 0.716736 0.962708 0.736969 0.716217 0.979218 0.737366 0.716003 0.994598 0.737671 0.715851 1.000000 0.748413 0.727783 0.118500 0.790039 0.747253 0.158051 0.789337 0.745941 0.193176 0.788727 0.744690 0.224304 0.788269 0.743774 0.252472 0.787842 0.742706 0.278503 0.787476 0.741699 0.303131 0.787140 0.740753 0.327057 0.786865 0.739716 0.350983 0.786499 0.738739 0.375458 0.786194 0.737701 0.400909 0.785675 0.736603 0.427795 0.785187 0.735443 0.456512 0.784515 0.734161 0.487335 0.783752 0.732758 0.520569 0.782867 0.731201 0.557159 0.781860 0.729584 0.596375 0.780792 0.727905 0.637085 0.779724 0.726227 0.678192 0.778687 0.724609 0.718445 0.777649 0.722992 0.758179 0.778046 0.722870 0.794312 0.777985 0.722382 0.826263 0.777313 0.721191 0.855072 0.776703 0.720184 0.881042 0.776276 0.719269 0.904510 0.775848 0.718506 0.925842 0.775726 0.717926 0.945221 0.775879 0.717590 0.962952 0.775940 0.717316 0.979309 0.776184 0.717194 0.994568 0.776306 0.717133 1.000000 0.783966 0.729187 0.126129 0.827240 0.745789 0.164246 0.826447 0.744385 0.198334 0.825836 0.743256 0.228638 0.825195 0.742157 0.256165 0.824738 0.741119 0.281708 0.824341 0.740143 0.306000 0.823914 0.739136 0.329742 0.823486 0.738220 0.353546 0.823090 0.737213 0.377960 0.822601 0.736115 0.403442 0.822021 0.735046 0.430359 0.821411 0.733826 0.459137 0.820679 0.732544 0.490021 0.819794 0.731140 0.523285 0.818787 0.729584 0.559814 0.817780 0.727997 0.598877 0.816650 0.726410 0.639282 0.815521 0.724731 0.680023 0.814423 0.723175 0.719879 0.813293 0.721680 0.759155 0.813690 0.721680 0.795410 0.814209 0.721832 0.827637 0.814178 0.721466 0.856140 0.813477 0.720520 0.881927 0.813110 0.719788 0.905273 0.812988 0.719330 0.926331 0.812897 0.718994 0.945465 0.812805 0.718781 0.963043 0.812836 0.718658 0.979340 0.812775 0.718658 0.994568 0.812744 0.718689 1.000000 0.817474 0.730804 0.133270 0.861847 0.744263 0.170349 0.860992 0.742859 0.203400 0.860291 0.741638 0.232849 0.859619 0.740601 0.259766 0.859070 0.739471 0.284851 0.858551 0.738525 0.308807 0.858093 0.737640 0.332428 0.857605 0.736542 0.356079 0.857056 0.735626 0.380493 0.856506 0.734497 0.405975 0.855896 0.733429 0.432922 0.855194 0.732239 0.461700 0.854370 0.730957 0.492584 0.853455 0.729614 0.525848 0.852386 0.728088 0.562378 0.851227 0.726562 0.601196 0.850067 0.724976 0.641296 0.848938 0.723419 0.681610 0.847717 0.721924 0.720947 0.846619 0.720490 0.759857 0.847046 0.720673 0.795685 0.847412 0.720856 0.828247 0.847900 0.721161 0.857391 0.848236 0.721313 0.882874 0.847839 0.720825 0.905792 0.847534 0.720520 0.926605 0.847290 0.720276 0.945618 0.847076 0.720245 0.963104 0.846893 0.720215 0.979340 0.846771 0.720367 0.994537 0.846619 0.720459 1.000000 0.848694 0.732513 0.140259 0.893341 0.742767 0.176331 0.892426 0.741394 0.208252 0.891693 0.740265 0.237000 0.890991 0.739044 0.263367 0.890381 0.738129 0.287964 0.889771 0.737091 0.311707 0.889252 0.736053 0.335022 0.888702 0.735046 0.358643 0.888123 0.734100 0.382935 0.887482 0.733032 0.408386 0.886780 0.731995 0.435364 0.886047 0.730835 0.464172 0.885132 0.729614 0.494995 0.884155 0.728210 0.528290 0.883057 0.726746 0.564667 0.881897 0.725311 0.603241 0.880646 0.723724 0.643005 0.879486 0.722321 0.682983 0.878296 0.720886 0.722046 0.877197 0.719635 0.760712 0.877563 0.719910 0.796417 0.878082 0.720428 0.828522 0.878571 0.720978 0.857422 0.879059 0.721649 0.883331 0.879395 0.722168 0.906067 0.878937 0.721924 0.926697 0.878571 0.721863 0.945679 0.878235 0.721863 0.963104 0.877869 0.721924 0.979309 0.877686 0.722137 0.994507 0.877441 0.722290 1.000000 0.877075 0.734314 0.147125 0.921478 0.741272 0.182068 0.920563 0.740021 0.213043 0.919800 0.738770 0.241028 0.919067 0.737549 0.266815 0.918396 0.736664 0.291016 0.917816 0.735565 0.314484 0.917175 0.734680 0.337646 0.916595 0.733795 0.361084 0.915955 0.732819 0.385345 0.915222 0.731781 0.410767 0.914520 0.730743 0.437714 0.913696 0.729553 0.466492 0.912781 0.728394 0.497284 0.911743 0.727051 0.530548 0.910614 0.725677 0.566772 0.909424 0.724274 0.605103 0.908173 0.722809 0.644562 0.906952 0.721405 0.684418 0.905853 0.720154 0.723633 0.904907 0.719269 0.761749 0.905334 0.719879 0.796631 0.905670 0.720490 0.828217 0.905975 0.721191 0.856812 0.906342 0.721893 0.882660 0.906677 0.722748 0.906128 0.907013 0.723572 0.926758 0.906525 0.723602 0.945679 0.906158 0.723633 0.963135 0.905792 0.723785 0.979279 0.905426 0.723969 0.994476 0.905090 0.724213 1.000000 0.902710 0.736206 0.153748 0.946564 0.739777 0.187561 0.945648 0.738434 0.217651 0.944855 0.737427 0.244965 0.944122 0.736267 0.270203 0.943451 0.735260 0.294006 0.942780 0.734314 0.317200 0.942169 0.733368 0.340149 0.941528 0.732391 0.363464 0.940857 0.731537 0.387634 0.940155 0.730591 0.413025 0.939362 0.729492 0.439911 0.938538 0.728516 0.468658 0.937561 0.727325 0.499359 0.936554 0.726044 0.532532 0.935394 0.724792 0.568573 0.934204 0.723450 0.606964 0.933014 0.722137 0.646729 0.931854 0.721039 0.686127 0.930786 0.720093 0.724548 0.929871 0.719391 0.761902 0.930115 0.720093 0.796387 0.930389 0.720825 0.827637 0.930603 0.721649 0.856018 0.930817 0.722473 0.881775 0.931030 0.723358 0.905273 0.931335 0.724274 0.926666 0.931580 0.725220 0.945709 0.931183 0.725525 0.963165 0.930786 0.725739 0.979309 0.930359 0.725922 0.994476 0.930054 0.726440 1.000000 0.925934 0.738708 0.160065 0.969025 0.738464 0.192841 0.968201 0.737122 0.222046 0.967346 0.735992 0.248657 0.966614 0.734955 0.273407 0.965942 0.734039 0.296844 0.965271 0.733215 0.319702 0.964661 0.732208 0.342529 0.963959 0.731354 0.365662 0.963318 0.730530 0.389740 0.962555 0.729584 0.415009 0.961761 0.728638 0.441895 0.960907 0.727600 0.470551 0.959961 0.726532 0.501129 0.958984 0.725372 0.534515 0.957825 0.724121 0.571075 0.956696 0.723053 0.609192 0.955536 0.722137 0.648102 0.954376 0.721130 0.686798 0.953217 0.720306 0.724609 0.952332 0.719818 0.761597 0.952484 0.720642 0.795776 0.952637 0.721497 0.826874 0.952789 0.722351 0.855164 0.952972 0.723297 0.880981 0.953125 0.724182 0.904419 0.953247 0.725128 0.925903 0.953430 0.726135 0.945557 0.953613 0.727112 0.963287 0.953461 0.727875 0.979401 0.953064 0.728546 0.994476 0.952637 0.729279 1.000000 0.947021 0.741699 0.166107 0.989349 0.737152 0.197784 0.988495 0.735962 0.226166 0.987701 0.734894 0.252167 0.987030 0.733887 0.276367 0.986328 0.732971 0.299438 0.985657 0.732147 0.322083 0.985016 0.731171 0.344727 0.984375 0.730438 0.367737 0.983704 0.729553 0.391724 0.982941 0.728668 0.416870 0.982147 0.727783 0.443604 0.981323 0.726837 0.472473 0.980377 0.725952 0.503540 0.979370 0.725006 0.536957 0.978271 0.724091 0.572754 0.977142 0.723297 0.610229 0.976013 0.722412 0.648529 0.974854 0.721649 0.686768 0.973724 0.720947 0.724213 0.972748 0.720490 0.761017 0.972809 0.721375 0.795044 0.972931 0.722260 0.826202 0.972992 0.723236 0.854523 0.973083 0.724213 0.880371 0.973175 0.725159 0.903839 0.973328 0.726196 0.925385 0.973419 0.727386 0.945038 0.973541 0.728760 0.963074 0.973663 0.730286 0.979492 0.973602 0.731659 0.994476 0.973114 0.732513 1.000000 0.966156 0.744843 0.182831 1.000000 0.732544 0.212189 1.000000 0.731934 0.238586 1.000000 0.731476 0.262878 1.000000 0.730804 0.285706 1.000000 0.730438 0.307495 1.000000 0.729950 0.328918 1.000000 0.729431 0.350464 1.000000 0.728912 0.372467 1.000000 0.728424 0.395325 1.000000 0.727875 0.419678 1.000000 0.727142 0.445953 1.000000 0.726593 0.474762 0.999115 0.725891 0.505249 0.998047 0.725159 0.538055 0.997040 0.724396 0.573364 0.995880 0.723724 0.610413 0.994781 0.723053 0.648315 0.993622 0.722382 0.686371 0.992523 0.721771 0.723663 0.991486 0.721344 0.760468 0.991516 0.722260 0.794556 0.991547 0.723236 0.825714 0.991577 0.724243 0.854187 0.991608 0.725250 0.880035 0.991638 0.726440 0.903625 0.991669 0.727844 0.925049 0.991730 0.729401 0.944641 0.991760 0.730988 0.962555 0.991791 0.732635 0.979126 0.991821 0.734283 0.994476 0.991760 0.735443 1.000000 0.983734 0.747345 0.212769 1.000000 0.724976 0.240845 1.000000 0.724945 0.266174 1.000000 0.724915 0.289551 1.000000 0.725037 0.311584 1.000000 0.725067 0.332703 1.000000 0.725220 0.353577 1.000000 0.725403 0.374512 1.000000 0.725586 0.396179 1.000000 0.725922 0.419189 1.000000 0.726471 0.443146 1.000000 0.726929 0.468414 1.000000 0.727539 0.495178 1.000000 0.728180 0.524170 1.000000 0.728943 0.555969 1.000000 0.729736 0.590118 1.000000 0.730591 0.625854 1.000000 0.731415 0.662537 1.000000 0.732300 0.699188 1.000000 0.733215 0.735077 1.000000 0.734100 0.769287 1.000000 0.735107 0.800812 1.000000 0.736053 0.829803 1.000000 0.737213 0.856079 1.000000 0.738525 0.880005 1.000000 0.740021 0.901733 1.000000 0.741547 0.921539 1.000000 0.743164 0.939667 1.000000 0.744751 0.956299 1.000000 0.746033 0.971741 1.000000 0.747284 0.986267 1.000000 0.748474 1.000000 1.000000 0.749573 0.000000 0.020966 0.747772 0.026794 0.002594 0.767303 0.074524 0.004913 0.767944 0.118866 0.006653 0.768402 0.159637 0.008301 0.768799 0.196259 0.009857 0.769257 0.229034 0.011383 0.769653 0.258850 0.012909 0.770020 0.286407 0.014435 0.770447 0.312714 0.015930 0.770844 0.338379 0.017426 0.771210 0.364288 0.018951 0.771606 0.390900 0.020477 0.771912 0.418884 0.022064 0.772247 0.448914 0.023682 0.772614 0.481506 0.025330 0.772949 0.517456 0.027039 0.773224 0.558960 0.028809 0.773529 0.604797 0.030579 0.773834 0.653595 0.032593 0.774109 0.703613 0.034637 0.774414 0.752563 0.036652 0.774658 0.797546 0.037506 0.773926 0.837219 0.037567 0.772614 0.872345 0.037933 0.771423 0.903259 0.038513 0.770172 0.930389 0.039307 0.769226 0.954437 0.040253 0.768372 0.975800 0.041351 0.767487 0.994965 0.042511 0.766815 1.000000 0.062408 0.758362 1.000000 0.088776 0.748749 0.000000 0.057617 0.751099 0.026886 0.040253 0.767670 0.073334 0.041290 0.767639 0.117218 0.042816 0.768097 0.157806 0.044220 0.768494 0.194733 0.045685 0.768890 0.227692 0.047150 0.769318 0.257599 0.048523 0.769684 0.285217 0.050079 0.770050 0.311523 0.051453 0.770447 0.337219 0.052948 0.770782 0.362976 0.054443 0.771149 0.389740 0.055908 0.771484 0.417786 0.057465 0.771790 0.447998 0.059174 0.772125 0.481110 0.060791 0.772400 0.517792 0.062592 0.772736 0.559509 0.064423 0.772980 0.605835 0.066284 0.773254 0.655060 0.068329 0.773560 0.704926 0.070007 0.773743 0.753815 0.071869 0.773956 0.798492 0.072693 0.773102 0.837921 0.072845 0.771790 0.872772 0.073303 0.770630 0.903412 0.073944 0.769440 0.930328 0.074677 0.768555 0.954132 0.075684 0.767639 0.975342 0.076782 0.766663 0.994324 0.077850 0.765991 1.000000 0.096283 0.758301 1.000000 0.121948 0.749084 0.000000 0.092682 0.752289 0.026703 0.077057 0.768616 0.071564 0.076782 0.767548 0.115509 0.078003 0.767731 0.156342 0.079315 0.768158 0.193390 0.080719 0.768555 0.226379 0.082062 0.768921 0.256317 0.083435 0.769318 0.283966 0.084839 0.769623 0.310272 0.086243 0.769989 0.335968 0.087708 0.770355 0.361877 0.089172 0.770691 0.388672 0.090698 0.770966 0.417206 0.092346 0.771332 0.448120 0.093994 0.771576 0.481720 0.095703 0.771881 0.518768 0.097534 0.772156 0.561096 0.099487 0.772400 0.607574 0.101105 0.772675 0.656860 0.102814 0.772858 0.706787 0.104614 0.773071 0.755524 0.106445 0.773254 0.799896 0.107239 0.772400 0.838959 0.107483 0.770996 0.873413 0.107880 0.769806 0.903717 0.108582 0.768585 0.930328 0.109253 0.767731 0.953888 0.110291 0.766785 0.974884 0.111359 0.765869 0.993713 0.112366 0.765228 1.000000 0.129333 0.758240 1.000000 0.154266 0.749481 0.000000 0.127136 0.752838 0.026245 0.112915 0.769562 0.071411 0.112457 0.768433 0.114105 0.112305 0.767395 0.154999 0.113586 0.767792 0.191986 0.114899 0.768158 0.224976 0.116180 0.768494 0.255035 0.117523 0.768860 0.282715 0.118896 0.769226 0.309082 0.120270 0.769562 0.334839 0.121765 0.769867 0.361237 0.123291 0.770142 0.388672 0.124878 0.770477 0.417664 0.126495 0.770782 0.448883 0.128235 0.771057 0.483124 0.130035 0.771332 0.520599 0.131622 0.771576 0.563171 0.133179 0.771759 0.609924 0.134949 0.771942 0.659393 0.136719 0.772156 0.709290 0.138489 0.772339 0.757660 0.140350 0.772491 0.801575 0.141052 0.771576 0.840179 0.141235 0.770203 0.874176 0.141724 0.768951 0.904083 0.142334 0.767883 0.930389 0.143097 0.766846 0.953705 0.143921 0.766022 0.974457 0.144836 0.765137 0.993134 0.145905 0.764313 1.000000 0.161438 0.758209 1.000000 0.185699 0.749878 0.000000 0.160339 0.753540 0.026215 0.147827 0.770447 0.071381 0.147278 0.769287 0.114014 0.147095 0.768188 0.153778 0.147003 0.767365 0.190735 0.148285 0.767792 0.223724 0.149567 0.768097 0.253784 0.150909 0.768433 0.281555 0.152283 0.768738 0.308502 0.153687 0.769073 0.334869 0.155243 0.769348 0.361633 0.156738 0.769684 0.389465 0.158356 0.769958 0.418884 0.160095 0.770203 0.450531 0.161560 0.770477 0.484833 0.163116 0.770630 0.522858 0.164734 0.770844 0.565979 0.166351 0.771057 0.613129 0.168030 0.771301 0.662537 0.169861 0.771454 0.712189 0.171600 0.771637 0.760254 0.173431 0.771790 0.803497 0.173920 0.770660 0.841553 0.174194 0.769318 0.875061 0.174622 0.768097 0.904602 0.175232 0.766968 0.930542 0.175903 0.766083 0.953522 0.176697 0.765106 0.974121 0.177521 0.764343 0.992554 0.178467 0.763519 1.000000 0.192657 0.758026 1.000000 0.216095 0.750092 0.000000 0.192657 0.754364 0.026184 0.181824 0.771240 0.071350 0.181274 0.770050 0.113983 0.180908 0.768951 0.153412 0.180634 0.767944 0.189423 0.180908 0.767303 0.222565 0.182159 0.767609 0.253265 0.183502 0.767975 0.281830 0.184967 0.768250 0.308929 0.186432 0.768555 0.335663 0.187927 0.768829 0.362854 0.189575 0.769135 0.390747 0.190948 0.769348 0.420563 0.192474 0.769562 0.452484 0.193909 0.769745 0.487366 0.195496 0.769958 0.525787 0.197113 0.770172 0.569336 0.198761 0.770386 0.616791 0.200500 0.770569 0.666229 0.202209 0.770721 0.715607 0.203918 0.770874 0.763245 0.205688 0.771027 0.805634 0.206055 0.769806 0.843079 0.206268 0.768585 0.876038 0.206665 0.767242 0.905090 0.207092 0.766144 0.930756 0.207764 0.765289 0.953400 0.208466 0.764374 0.973663 0.209198 0.763397 0.992004 0.209961 0.762787 1.000000 0.222809 0.757843 1.000000 0.245605 0.750641 0.000000 0.224121 0.755157 0.026154 0.214874 0.772064 0.071320 0.214325 0.770874 0.113953 0.213989 0.769714 0.153442 0.213715 0.768677 0.189972 0.213715 0.767700 0.223114 0.214142 0.767151 0.253998 0.215515 0.767456 0.282745 0.216949 0.767731 0.310303 0.218475 0.768036 0.337158 0.219818 0.768280 0.364441 0.221222 0.768463 0.392731 0.222626 0.768677 0.422852 0.224091 0.768860 0.455200 0.225616 0.769104 0.490448 0.227173 0.769287 0.529480 0.228760 0.769501 0.573334 0.230377 0.769623 0.620819 0.232025 0.769806 0.670227 0.233673 0.769989 0.719238 0.235352 0.770111 0.766174 0.237061 0.770294 0.807861 0.237244 0.768951 0.844635 0.237366 0.767670 0.877045 0.237762 0.766388 0.905609 0.238129 0.765320 0.930878 0.238678 0.764435 0.953247 0.239258 0.763428 0.973297 0.239899 0.762665 0.991425 0.240601 0.761841 1.000000 0.252106 0.757446 1.000000 0.274200 0.750885 0.000000 0.254730 0.755920 0.026123 0.247223 0.772827 0.071381 0.246796 0.771606 0.115082 0.246460 0.770447 0.155670 0.246185 0.769287 0.192474 0.246185 0.768311 0.225372 0.246185 0.767395 0.255737 0.246887 0.766907 0.284546 0.248169 0.767181 0.312012 0.249481 0.767395 0.339050 0.250824 0.767578 0.366577 0.252167 0.767822 0.395355 0.253662 0.768036 0.425690 0.255157 0.768188 0.458466 0.256622 0.768372 0.494080 0.258179 0.768555 0.533691 0.259766 0.768738 0.577881 0.261292 0.768921 0.625397 0.262909 0.769073 0.674530 0.264496 0.769226 0.722961 0.266113 0.769379 0.769379 0.267731 0.769501 0.810089 0.267761 0.768066 0.846100 0.267822 0.766724 0.877991 0.268097 0.765594 0.906097 0.268433 0.764374 0.930969 0.268951 0.763428 0.953033 0.269409 0.762726 0.972870 0.269958 0.761810 0.990814 0.270538 0.760925 1.000000 0.280762 0.757294 1.000000 0.302185 0.751007 0.000000 0.285004 0.756622 0.027405 0.278931 0.773499 0.074188 0.278534 0.772217 0.118347 0.278168 0.771027 0.159271 0.278046 0.769867 0.196289 0.278137 0.768829 0.228973 0.278168 0.767883 0.258728 0.278259 0.767029 0.286865 0.278839 0.766510 0.314362 0.280121 0.766693 0.341614 0.281525 0.766937 0.369324 0.282867 0.767090 0.398315 0.284302 0.767303 0.429169 0.285797 0.767456 0.462158 0.287262 0.767639 0.498230 0.288818 0.767853 0.538147 0.290344 0.768005 0.582611 0.291840 0.768158 0.630127 0.293365 0.768311 0.678864 0.294922 0.768402 0.726868 0.296478 0.768585 0.772308 0.297852 0.768524 0.812195 0.297760 0.767090 0.847595 0.297882 0.765869 0.878876 0.298096 0.764587 0.906525 0.298370 0.763672 0.930969 0.298737 0.762665 0.952820 0.299164 0.761688 0.972412 0.299622 0.760956 0.990173 0.300018 0.760101 1.000000 0.309052 0.756805 1.000000 0.329834 0.751221 0.000000 0.314362 0.759949 0.031342 0.310364 0.774078 0.078674 0.310028 0.772766 0.123291 0.309814 0.771515 0.164032 0.309570 0.770325 0.200562 0.309509 0.769226 0.233093 0.309509 0.768280 0.262848 0.309784 0.767365 0.290466 0.310059 0.766571 0.317383 0.310638 0.765991 0.344757 0.312073 0.766205 0.372650 0.313416 0.766357 0.401855 0.314880 0.766541 0.432861 0.316315 0.766724 0.466309 0.317780 0.766907 0.502563 0.319214 0.767059 0.542969 0.320740 0.767181 0.587585 0.322235 0.767334 0.634827 0.323700 0.767456 0.683228 0.325165 0.767609 0.730530 0.326599 0.767700 0.775085 0.327789 0.767548 0.814209 0.327698 0.766113 0.848938 0.327728 0.764832 0.879608 0.327850 0.763611 0.906799 0.328094 0.762665 0.930939 0.328339 0.761688 0.952454 0.328674 0.760803 0.971893 0.329010 0.760010 0.989563 0.329376 0.759186 1.000000 0.337219 0.756348 1.000000 0.357422 0.751373 0.000000 0.344116 0.765045 0.037354 0.342010 0.774506 0.084747 0.341522 0.773163 0.128998 0.341125 0.771851 0.169556 0.340912 0.770660 0.205780 0.341064 0.769531 0.238068 0.341095 0.768585 0.267487 0.341400 0.767700 0.294983 0.341675 0.766876 0.321625 0.342072 0.766052 0.348297 0.342712 0.765411 0.376221 0.344086 0.765594 0.405640 0.345490 0.765778 0.436981 0.346924 0.765900 0.470612 0.348328 0.766083 0.507080 0.349762 0.766205 0.547882 0.351227 0.766327 0.592590 0.352631 0.766479 0.639526 0.354034 0.766571 0.687378 0.355408 0.766724 0.734070 0.356781 0.766876 0.777710 0.357758 0.766510 0.815979 0.357605 0.765137 0.850006 0.357635 0.763855 0.880188 0.357697 0.762726 0.906921 0.357788 0.761627 0.930756 0.358002 0.760742 0.952057 0.358276 0.759705 0.971313 0.358551 0.758820 0.988861 0.358856 0.758057 1.000000 0.365479 0.755676 1.000000 0.385162 0.751404 0.000000 0.374481 0.771515 0.044312 0.373505 0.774872 0.091766 0.373138 0.773438 0.135956 0.372925 0.772125 0.176117 0.372742 0.770905 0.211700 0.372742 0.769836 0.243530 0.372894 0.768860 0.272675 0.373230 0.768005 0.299927 0.373566 0.767151 0.326385 0.373993 0.766296 0.352844 0.374451 0.765411 0.380096 0.374939 0.764740 0.409637 0.376373 0.764923 0.441162 0.377777 0.765045 0.475098 0.379120 0.765198 0.511902 0.380524 0.765320 0.552826 0.381866 0.765411 0.597351 0.383240 0.765594 0.644135 0.384552 0.765717 0.691345 0.385864 0.765839 0.737366 0.387146 0.765900 0.779968 0.387878 0.765442 0.817474 0.387695 0.764069 0.850891 0.387634 0.762787 0.880585 0.387665 0.761597 0.906921 0.387726 0.760590 0.930511 0.387878 0.759583 0.951660 0.388123 0.758575 0.970734 0.388367 0.757629 0.988159 0.388672 0.756775 1.000000 0.394073 0.755005 1.000000 0.413269 0.751465 0.002686 0.406006 0.776550 0.052734 0.405457 0.775055 0.100128 0.405212 0.773651 0.143829 0.404907 0.772339 0.183350 0.404907 0.771118 0.218231 0.404938 0.770081 0.249512 0.405243 0.769104 0.278168 0.405518 0.768250 0.305145 0.405975 0.767365 0.331421 0.406311 0.766510 0.357819 0.406799 0.765686 0.384979 0.407043 0.764740 0.413818 0.407593 0.763977 0.445465 0.408997 0.764130 0.479492 0.410278 0.764221 0.516449 0.411621 0.764374 0.557495 0.412872 0.764465 0.601959 0.414185 0.764587 0.648376 0.415466 0.764709 0.694855 0.416626 0.764771 0.740112 0.417847 0.764893 0.781860 0.418365 0.764313 0.818634 0.418182 0.762909 0.851532 0.418060 0.761658 0.880829 0.418060 0.760437 0.906891 0.418091 0.759399 0.930237 0.418243 0.758301 0.951172 0.418365 0.757324 0.970123 0.418610 0.756470 0.987366 0.418854 0.755432 1.000000 0.423157 0.754089 1.000000 0.441772 0.751373 0.012512 0.438507 0.776733 0.062469 0.438080 0.775269 0.109375 0.437897 0.773834 0.152527 0.437714 0.772552 0.191101 0.437653 0.771301 0.225098 0.437805 0.770233 0.255707 0.438110 0.769318 0.283875 0.438538 0.768433 0.310486 0.438843 0.767609 0.336609 0.439240 0.766693 0.362915 0.439606 0.765869 0.390076 0.439941 0.764923 0.418732 0.440277 0.763885 0.449646 0.440704 0.763123 0.483887 0.441986 0.763214 0.520874 0.443176 0.763306 0.561951 0.444427 0.763397 0.606201 0.445587 0.763519 0.652039 0.446808 0.763641 0.697968 0.447876 0.763733 0.742493 0.448944 0.763763 0.783386 0.449341 0.763031 0.819733 0.449097 0.761658 0.852142 0.448975 0.760284 0.881073 0.448914 0.759155 0.906830 0.448975 0.758026 0.929901 0.449097 0.756958 0.950653 0.449249 0.756012 0.969452 0.449432 0.755005 0.986572 0.449707 0.754120 1.000000 0.452789 0.753052 1.000000 0.470886 0.751282 0.023651 0.471741 0.776825 0.073273 0.471497 0.775330 0.119446 0.471222 0.773926 0.161652 0.471161 0.772644 0.199158 0.471191 0.771454 0.232178 0.471375 0.770447 0.261993 0.471619 0.769470 0.289612 0.472107 0.768585 0.315887 0.472473 0.767731 0.341827 0.472900 0.766937 0.368073 0.473175 0.766022 0.395172 0.473480 0.765045 0.423889 0.473694 0.764008 0.454437 0.473755 0.762848 0.487915 0.474213 0.762085 0.524994 0.475372 0.762177 0.566010 0.476471 0.762329 0.609894 0.477570 0.762421 0.655212 0.478638 0.762451 0.700592 0.479706 0.762512 0.744659 0.480713 0.762543 0.784973 0.480957 0.761597 0.820709 0.480682 0.760223 0.852661 0.480530 0.758850 0.881165 0.480469 0.757660 0.906677 0.480530 0.756500 0.929474 0.480591 0.755463 0.950012 0.480743 0.754456 0.968658 0.480927 0.753601 0.985718 0.481140 0.752655 1.000000 0.483093 0.751709 1.000000 0.500580 0.751251 0.035736 0.505768 0.776855 0.084686 0.505615 0.775391 0.129974 0.505524 0.773987 0.170990 0.505371 0.772705 0.207245 0.505493 0.771576 0.239288 0.505798 0.770569 0.268311 0.506073 0.769623 0.295410 0.506439 0.768738 0.321350 0.506805 0.767914 0.347015 0.507202 0.767059 0.373016 0.507507 0.766174 0.400146 0.507721 0.765167 0.428802 0.507904 0.764099 0.459320 0.507812 0.762909 0.492188 0.507690 0.761627 0.528625 0.508179 0.761017 0.569458 0.509216 0.761047 0.613129 0.510254 0.761108 0.658234 0.511261 0.761108 0.703278 0.512238 0.761139 0.746796 0.513275 0.761139 0.786346 0.513336 0.760101 0.821533 0.513062 0.758667 0.853088 0.512939 0.757355 0.881256 0.512848 0.756134 0.906372 0.512817 0.754974 0.928955 0.512939 0.753906 0.949371 0.513031 0.752960 0.967865 0.513214 0.752014 0.984802 0.513397 0.751160 1.000000 0.514130 0.750458 1.000000 0.531921 0.751343 0.048492 0.542358 0.776855 0.096527 0.542236 0.775391 0.140656 0.541962 0.774048 0.180328 0.541992 0.772797 0.215240 0.542145 0.771667 0.246246 0.542389 0.770691 0.274567 0.542725 0.769745 0.301056 0.543091 0.768890 0.326538 0.543304 0.768036 0.351990 0.543610 0.767181 0.377899 0.543915 0.766235 0.404816 0.544037 0.765259 0.433380 0.544159 0.764221 0.463745 0.543976 0.763000 0.496521 0.543762 0.761658 0.532318 0.543335 0.760162 0.572784 0.543976 0.759705 0.616302 0.544983 0.759705 0.661133 0.546051 0.759705 0.705719 0.546997 0.759644 0.748718 0.547943 0.759644 0.787659 0.547913 0.758484 0.822327 0.547638 0.757050 0.853394 0.547424 0.755676 0.881165 0.547272 0.754486 0.906036 0.547241 0.753387 0.928436 0.547302 0.752350 0.948578 0.547363 0.751404 0.966949 0.547485 0.750549 0.983826 0.547699 0.749664 0.999420 0.547882 0.748901 1.000000 0.565460 0.751404 0.061493 0.581604 0.776855 0.108398 0.581451 0.775360 0.151184 0.581238 0.774048 0.189392 0.581207 0.772827 0.222992 0.581299 0.771729 0.252991 0.581482 0.770782 0.280487 0.581787 0.769867 0.306427 0.582031 0.769043 0.331512 0.582245 0.768158 0.356689 0.582458 0.767303 0.382324 0.582581 0.766357 0.409088 0.582611 0.765381 0.437500 0.582642 0.764252 0.467987 0.582428 0.763031 0.500793 0.582092 0.761627 0.536835 0.581604 0.760071 0.576263 0.581055 0.758423 0.619446 0.581848 0.758179 0.663971 0.582794 0.758179 0.708130 0.583771 0.758118 0.750610 0.584686 0.758087 0.788757 0.584503 0.756836 0.822937 0.584076 0.755341 0.853577 0.583893 0.754059 0.881042 0.583710 0.752899 0.905670 0.583588 0.751801 0.927765 0.583588 0.750854 0.947815 0.583649 0.749847 0.966064 0.583740 0.749054 0.982788 0.583862 0.748230 0.998352 0.583984 0.747589 1.000000 0.600616 0.751648 0.074493 0.622803 0.776794 0.120148 0.622498 0.775360 0.161407 0.622284 0.774048 0.198059 0.622223 0.772858 0.230377 0.622223 0.771820 0.259308 0.622437 0.770844 0.286072 0.622559 0.769958 0.311493 0.622772 0.769135 0.336151 0.622925 0.768280 0.360931 0.622955 0.767395 0.386383 0.623016 0.766449 0.413147 0.622955 0.765411 0.441650 0.622711 0.764252 0.472198 0.622498 0.762970 0.505127 0.622009 0.761505 0.541351 0.621429 0.759888 0.580841 0.620819 0.758270 0.622559 0.620178 0.756592 0.666718 0.621094 0.756561 0.710388 0.621979 0.756531 0.752258 0.622864 0.756439 0.789764 0.622467 0.755096 0.823456 0.622040 0.753662 0.853699 0.621765 0.752411 0.880829 0.621490 0.751282 0.905151 0.621368 0.750214 0.927094 0.621307 0.749298 0.946960 0.621277 0.748444 0.965057 0.621338 0.747620 0.981781 0.621368 0.746887 0.997253 0.621429 0.746185 1.000000 0.636932 0.751892 0.087280 0.665131 0.776703 0.131409 0.664795 0.775299 0.171082 0.664551 0.774048 0.206116 0.664337 0.772888 0.237183 0.664368 0.771881 0.265198 0.664307 0.770905 0.291199 0.664368 0.770050 0.315948 0.664368 0.769226 0.340332 0.664459 0.768311 0.364960 0.664459 0.767426 0.390350 0.664337 0.766449 0.417206 0.664185 0.765350 0.445831 0.663940 0.764160 0.476440 0.663544 0.762817 0.509430 0.662903 0.761353 0.545837 0.662231 0.759705 0.585297 0.661499 0.758057 0.626709 0.660706 0.756317 0.669281 0.660248 0.754944 0.712463 0.661041 0.754913 0.753876 0.661896 0.754852 0.790649 0.661316 0.753387 0.823914 0.660828 0.752075 0.853699 0.660400 0.750824 0.880493 0.660156 0.749695 0.904602 0.659943 0.748749 0.926331 0.659790 0.747864 0.946045 0.659729 0.747040 0.964050 0.659668 0.746338 0.980682 0.659729 0.745575 0.996124 0.659729 0.744995 1.000000 0.673859 0.752258 0.099335 0.707855 0.776642 0.141937 0.707428 0.775269 0.179962 0.707092 0.773987 0.213531 0.706879 0.772919 0.243378 0.706635 0.771912 0.270447 0.706512 0.770996 0.295776 0.706512 0.770111 0.320160 0.706360 0.769287 0.344360 0.706207 0.768341 0.368927 0.706146 0.767395 0.394379 0.705963 0.766357 0.421265 0.705719 0.765228 0.449921 0.705200 0.764008 0.480652 0.704681 0.762634 0.513733 0.704041 0.761108 0.550323 0.703339 0.759521 0.589691 0.702423 0.757812 0.630859 0.701508 0.756134 0.672729 0.700623 0.754425 0.714386 0.700317 0.753326 0.755188 0.700989 0.753235 0.791412 0.700317 0.751801 0.824188 0.699768 0.750488 0.853638 0.699280 0.749298 0.880157 0.698975 0.748291 0.903992 0.698639 0.747345 0.925537 0.698395 0.746552 0.945099 0.698273 0.745758 0.963074 0.698181 0.745117 0.979614 0.698120 0.744507 0.995056 0.698578 0.744110 1.000000 0.711792 0.753296 0.110657 0.749939 0.776520 0.151611 0.749512 0.775208 0.187988 0.748962 0.774017 0.220154 0.748627 0.772949 0.248810 0.748322 0.771942 0.275269 0.748138 0.770996 0.300232 0.747894 0.770111 0.324371 0.747681 0.769226 0.348389 0.747589 0.768280 0.372925 0.747314 0.767273 0.398376 0.746948 0.766235 0.425293 0.746552 0.765045 0.454010 0.746002 0.763794 0.484772 0.745422 0.762451 0.518005 0.744598 0.760895 0.554565 0.743713 0.759308 0.593903 0.742798 0.757599 0.634918 0.741791 0.755951 0.676300 0.740845 0.754303 0.717072 0.739960 0.752716 0.756348 0.739594 0.751678 0.792053 0.738770 0.750275 0.824371 0.738159 0.749023 0.853485 0.737610 0.747955 0.879669 0.737213 0.746948 0.903320 0.736877 0.746124 0.924713 0.736572 0.745361 0.944153 0.736359 0.744690 0.962097 0.736633 0.744324 0.978607 0.736908 0.743988 0.993958 0.737244 0.743866 1.000000 0.748779 0.754425 0.120331 0.790222 0.775970 0.159607 0.789520 0.774597 0.194366 0.788940 0.773407 0.225403 0.788452 0.772247 0.253418 0.788055 0.771240 0.279358 0.787720 0.770386 0.303925 0.787384 0.769379 0.327789 0.787048 0.768372 0.351715 0.786743 0.767426 0.376190 0.786377 0.766357 0.401581 0.785919 0.765289 0.428528 0.785370 0.764130 0.457275 0.784729 0.762726 0.488037 0.783936 0.761322 0.521301 0.783051 0.759796 0.557831 0.782043 0.758179 0.597107 0.780975 0.756531 0.637787 0.779907 0.754852 0.678833 0.778870 0.753235 0.719055 0.777893 0.751709 0.757568 0.777161 0.750519 0.793579 0.777100 0.749939 0.825500 0.776459 0.748810 0.854248 0.775879 0.747772 0.880188 0.775421 0.746887 0.903595 0.774933 0.746124 0.924927 0.774994 0.745636 0.944305 0.775116 0.745331 0.962067 0.775269 0.745087 0.978455 0.775391 0.744965 0.993744 0.775513 0.744934 1.000000 0.784271 0.755890 0.127808 0.827393 0.774261 0.165771 0.826630 0.772980 0.199493 0.825958 0.771851 0.229736 0.825439 0.770752 0.257050 0.824890 0.769714 0.282532 0.824463 0.768768 0.306824 0.824066 0.767731 0.330444 0.823639 0.766693 0.354309 0.823242 0.765808 0.378723 0.822754 0.764709 0.404114 0.822205 0.763611 0.431091 0.821564 0.762390 0.459808 0.820831 0.761169 0.490692 0.819977 0.759705 0.523987 0.819031 0.758179 0.560547 0.817871 0.756592 0.599548 0.816772 0.754974 0.639893 0.815674 0.753387 0.680511 0.814514 0.751801 0.720306 0.813477 0.750336 0.758484 0.812836 0.749298 0.794617 0.813293 0.749390 0.826813 0.813263 0.749054 0.855286 0.812653 0.748138 0.881104 0.812347 0.747528 0.904388 0.812225 0.747040 0.925415 0.812103 0.746735 0.944611 0.812012 0.746552 0.962128 0.811981 0.746460 0.978455 0.812012 0.746429 0.993713 0.812012 0.746490 1.000000 0.817749 0.757477 0.134888 0.861938 0.772797 0.171661 0.861084 0.771454 0.204529 0.860352 0.770233 0.233917 0.859772 0.769226 0.260651 0.859161 0.768219 0.285706 0.858734 0.767090 0.309662 0.858215 0.766144 0.333130 0.857727 0.765167 0.356842 0.857178 0.764221 0.381165 0.856628 0.763092 0.406586 0.855988 0.762024 0.433594 0.855316 0.760834 0.462341 0.854462 0.759644 0.493256 0.853546 0.758209 0.526581 0.852478 0.756744 0.562958 0.851349 0.755188 0.601807 0.850220 0.753632 0.641846 0.849030 0.752075 0.682068 0.847839 0.750610 0.721436 0.846741 0.749115 0.759155 0.846130 0.748291 0.794861 0.846466 0.748505 0.827576 0.847107 0.748932 0.856506 0.847382 0.749023 0.881927 0.847046 0.748596 0.904846 0.846710 0.748322 0.925659 0.846436 0.748077 0.944733 0.846283 0.747986 0.962158 0.846069 0.748016 0.978455 0.845917 0.748077 0.993683 0.845734 0.748199 1.000000 0.848938 0.759186 0.141846 0.893433 0.771210 0.177582 0.892487 0.769958 0.209442 0.891754 0.768707 0.238037 0.891052 0.767670 0.264191 0.890472 0.766632 0.288818 0.889893 0.765656 0.312439 0.889343 0.764648 0.335754 0.888763 0.763763 0.359314 0.888184 0.762695 0.383606 0.887573 0.761627 0.409058 0.886841 0.760651 0.436035 0.886108 0.759460 0.464752 0.885223 0.758209 0.495605 0.884216 0.756927 0.528931 0.883148 0.755432 0.565247 0.881989 0.753967 0.603851 0.880768 0.752502 0.643555 0.879578 0.750946 0.683411 0.878357 0.749573 0.722290 0.877228 0.748260 0.760162 0.876770 0.747681 0.795654 0.877258 0.748199 0.827667 0.877747 0.748749 0.856506 0.878204 0.749390 0.882385 0.878540 0.749908 0.905090 0.878143 0.749756 0.925751 0.877686 0.749664 0.944763 0.877380 0.749664 0.962158 0.877075 0.749725 0.978455 0.876801 0.749878 0.993652 0.876617 0.750061 1.000000 0.877258 0.760956 0.148651 0.921539 0.769806 0.183258 0.920624 0.768463 0.214142 0.919800 0.767334 0.242065 0.919128 0.766296 0.267639 0.918457 0.765198 0.291840 0.917877 0.764191 0.315216 0.917236 0.763306 0.338318 0.916626 0.762390 0.361786 0.916046 0.761444 0.385986 0.915314 0.760345 0.411377 0.914581 0.759308 0.438324 0.913757 0.758209 0.467041 0.912842 0.756989 0.497864 0.911804 0.755737 0.531128 0.910675 0.754364 0.567322 0.909515 0.752930 0.605621 0.908234 0.751526 0.644989 0.907013 0.750153 0.684998 0.905914 0.748932 0.723877 0.904938 0.747925 0.760925 0.904480 0.747589 0.795685 0.904785 0.748260 0.827271 0.905151 0.748962 0.855804 0.905457 0.749695 0.881683 0.905823 0.750519 0.905151 0.906158 0.751312 0.925842 0.905762 0.751312 0.944763 0.905304 0.751404 0.962189 0.904938 0.751556 0.978455 0.904572 0.751709 0.993622 0.904266 0.751923 1.000000 0.902832 0.762817 0.155243 0.946564 0.768311 0.188721 0.945679 0.767181 0.218719 0.944855 0.766022 0.245880 0.944153 0.764923 0.270966 0.943512 0.763947 0.294739 0.942810 0.763000 0.317871 0.942200 0.762024 0.340790 0.941559 0.761108 0.364105 0.940887 0.760223 0.388214 0.940216 0.759277 0.413574 0.939423 0.758179 0.440491 0.938538 0.757172 0.469177 0.937622 0.756073 0.499878 0.936584 0.754669 0.533081 0.935455 0.753387 0.569061 0.934265 0.752136 0.607727 0.933105 0.750916 0.647278 0.931946 0.749878 0.686493 0.930878 0.748901 0.724579 0.929779 0.748077 0.761017 0.929230 0.747864 0.795380 0.929504 0.748627 0.826569 0.929718 0.749451 0.854980 0.929962 0.750244 0.880768 0.930206 0.751129 0.904266 0.930450 0.752045 0.925720 0.930695 0.752960 0.944824 0.930328 0.753265 0.962250 0.929932 0.753448 0.978455 0.929535 0.753662 0.993622 0.929291 0.754211 1.000000 0.926086 0.765350 0.161499 0.969025 0.766907 0.193939 0.968170 0.765808 0.223053 0.967346 0.764648 0.249542 0.966614 0.763733 0.274139 0.965973 0.762756 0.297546 0.965271 0.761841 0.320312 0.964661 0.760864 0.343109 0.964020 0.760040 0.366302 0.963318 0.759186 0.390289 0.962585 0.758270 0.415588 0.961792 0.757294 0.442444 0.960968 0.756256 0.471039 0.960022 0.755219 0.501617 0.958984 0.754059 0.535309 0.957855 0.752960 0.571655 0.956726 0.751892 0.609711 0.955566 0.750916 0.648407 0.954437 0.750000 0.687042 0.953278 0.749207 0.724548 0.952209 0.748474 0.760559 0.951630 0.748413 0.794769 0.951782 0.749237 0.825836 0.951935 0.750092 0.854156 0.952087 0.751007 0.879944 0.952240 0.751953 0.903473 0.952393 0.752899 0.925018 0.952576 0.753845 0.944672 0.952759 0.754883 0.962372 0.952606 0.755646 0.978577 0.952179 0.756317 0.993591 0.951813 0.757111 1.000000 0.947144 0.768311 0.167419 0.989319 0.765808 0.198792 0.988495 0.764587 0.227112 0.987701 0.763550 0.252960 0.987030 0.762543 0.277069 0.986328 0.761597 0.300140 0.985687 0.760803 0.322632 0.985046 0.759918 0.345184 0.984375 0.759033 0.368256 0.983704 0.758209 0.392181 0.982941 0.757416 0.417328 0.982178 0.756500 0.444061 0.981323 0.755524 0.473114 0.980377 0.754639 0.504120 0.979370 0.753876 0.537415 0.978302 0.752930 0.573120 0.977203 0.752106 0.610535 0.976013 0.751221 0.648682 0.974915 0.750519 0.686829 0.973755 0.749786 0.724152 0.972687 0.749207 0.759949 0.971954 0.749115 0.794037 0.972046 0.750031 0.825104 0.972137 0.750977 0.853546 0.972229 0.751892 0.879425 0.972321 0.752869 0.902954 0.972443 0.753906 0.924500 0.972565 0.755157 0.944153 0.972687 0.756531 0.962189 0.972839 0.758087 0.978668 0.972748 0.759369 0.993622 0.972321 0.760254 1.000000 0.966248 0.771210 0.183990 1.000000 0.760529 0.213104 1.000000 0.759949 0.239471 1.000000 0.759491 0.263611 1.000000 0.758881 0.286346 1.000000 0.758636 0.308075 1.000000 0.758240 0.329437 1.000000 0.757751 0.350922 1.000000 0.757233 0.372894 1.000000 0.756958 0.395782 1.000000 0.756378 0.420349 1.000000 0.755829 0.446503 1.000000 0.755341 0.475220 0.999115 0.754669 0.505554 0.998077 0.753998 0.538330 0.997040 0.753326 0.573547 0.995911 0.752594 0.610535 0.994812 0.751923 0.648468 0.993622 0.751160 0.686493 0.992523 0.750641 0.723663 0.991455 0.750092 0.759491 0.990662 0.750031 0.793579 0.990692 0.750977 0.824707 0.990753 0.751953 0.853241 0.990784 0.752960 0.879150 0.990814 0.754211 0.902740 0.990845 0.755615 0.924164 0.990906 0.757141 0.943726 0.990967 0.758698 0.961670 0.990967 0.760284 0.978302 0.991028 0.761780 0.993622 0.990967 0.762909 1.000000 0.983765 0.773560 0.213806 1.000000 0.751404 0.241638 1.000000 0.751495 0.266907 1.000000 0.751373 0.290192 1.000000 0.751648 0.312134 1.000000 0.751617 0.333191 1.000000 0.751831 0.354004 1.000000 0.752014 0.374939 1.000000 0.752197 0.396881 1.000000 0.752594 0.419708 1.000000 0.753082 0.443573 1.000000 0.753571 0.468719 1.000000 0.754303 0.495392 1.000000 0.754944 0.524353 1.000000 0.755646 0.556152 1.000000 0.756409 0.590240 1.000000 0.757294 0.625977 1.000000 0.758087 0.662628 1.000000 0.758911 0.699371 1.000000 0.759857 0.735229 1.000000 0.760773 0.769379 1.000000 0.761688 0.801025 1.000000 0.762665 0.829956 1.000000 0.763885 0.856323 1.000000 0.765198 0.880188 1.000000 0.766663 0.901886 1.000000 0.768158 0.921600 1.000000 0.769714 0.939697 1.000000 0.771149 0.956299 1.000000 0.772339 0.971832 1.000000 0.773529 0.986267 1.000000 0.774628 1.000000 1.000000 0.775635 0.000000 0.021851 0.778687 0.025848 0.002441 0.798828 0.073151 0.004211 0.799316 0.117493 0.005829 0.799713 0.158264 0.007416 0.800110 0.194885 0.008942 0.800446 0.227631 0.010498 0.800903 0.257446 0.012054 0.801270 0.285187 0.013580 0.801605 0.311646 0.015076 0.802002 0.337219 0.016571 0.802368 0.363068 0.018097 0.802673 0.389740 0.019653 0.803009 0.417816 0.021271 0.803314 0.447937 0.022888 0.803650 0.480469 0.024536 0.803925 0.516632 0.026337 0.804230 0.557922 0.028046 0.804535 0.603882 0.029907 0.804810 0.652832 0.031891 0.805023 0.702850 0.033966 0.805298 0.751770 0.035950 0.805511 0.797577 0.037781 0.805664 0.837585 0.038269 0.804718 0.872620 0.038727 0.803436 0.903442 0.039307 0.802338 0.930573 0.040070 0.801331 0.954498 0.041107 0.800446 0.975830 0.042145 0.799500 0.994995 0.043365 0.798859 1.000000 0.063202 0.789368 1.000000 0.089569 0.778351 0.000000 0.058167 0.781494 0.025482 0.039429 0.798981 0.071838 0.040497 0.798950 0.115845 0.041931 0.799347 0.156433 0.043396 0.799744 0.193298 0.044800 0.800110 0.226318 0.046295 0.800476 0.256378 0.047729 0.800873 0.283966 0.049164 0.801208 0.310364 0.050659 0.801575 0.336060 0.052094 0.801880 0.361877 0.053589 0.802185 0.388641 0.055115 0.802551 0.416687 0.056732 0.802856 0.446991 0.058350 0.803101 0.480347 0.060120 0.803406 0.516968 0.061829 0.803650 0.558838 0.063721 0.803894 0.605103 0.065704 0.804230 0.654236 0.067535 0.804443 0.704132 0.069305 0.804596 0.753052 0.071198 0.804810 0.798645 0.073059 0.804993 0.838318 0.073608 0.803864 0.873077 0.074066 0.802734 0.903656 0.074646 0.801514 0.930511 0.075500 0.800415 0.954254 0.076416 0.799561 0.975403 0.077545 0.798737 0.994385 0.078674 0.797943 1.000000 0.097107 0.789276 1.000000 0.122742 0.778687 0.000000 0.093079 0.782471 0.025177 0.076233 0.799927 0.070068 0.075958 0.798798 0.114227 0.077179 0.798981 0.155090 0.078491 0.799377 0.192078 0.079865 0.799744 0.225006 0.081177 0.800079 0.255066 0.082611 0.800446 0.282654 0.083984 0.800781 0.309113 0.085419 0.801056 0.334747 0.086914 0.801392 0.360596 0.088379 0.801697 0.387665 0.089935 0.802002 0.416290 0.091522 0.802307 0.447235 0.093262 0.802582 0.480957 0.095032 0.802826 0.518158 0.096863 0.803131 0.560577 0.098694 0.803314 0.606995 0.100372 0.803497 0.656128 0.102112 0.803680 0.706299 0.103943 0.803894 0.754883 0.105865 0.804077 0.800262 0.107758 0.804260 0.839386 0.108185 0.803009 0.873749 0.108643 0.801727 0.903931 0.109283 0.800720 0.930542 0.110107 0.799774 0.954041 0.110992 0.798676 0.974945 0.112000 0.797943 0.993774 0.113190 0.797058 1.000000 0.130096 0.789337 1.000000 0.155060 0.779205 0.000000 0.127411 0.782837 0.024811 0.112061 0.800781 0.070038 0.111755 0.799622 0.112701 0.111389 0.798584 0.153687 0.112732 0.798950 0.190643 0.114075 0.799286 0.223694 0.115295 0.799652 0.253784 0.116730 0.799957 0.281372 0.118073 0.800293 0.307800 0.119476 0.800598 0.333771 0.121002 0.800903 0.360291 0.122528 0.801178 0.387726 0.124115 0.801483 0.416962 0.125824 0.801697 0.448273 0.127533 0.801971 0.482513 0.129272 0.802216 0.519928 0.130859 0.802429 0.562744 0.132507 0.802643 0.609528 0.134277 0.802826 0.658875 0.135986 0.802979 0.708710 0.137878 0.803162 0.757141 0.139709 0.803314 0.802002 0.141602 0.803497 0.840607 0.141968 0.802216 0.874512 0.142426 0.800995 0.904358 0.143097 0.799835 0.930634 0.143768 0.798889 0.953857 0.144653 0.798004 0.974548 0.145630 0.797180 0.993195 0.146667 0.796356 1.000000 0.162231 0.789185 1.000000 0.186371 0.779449 0.000000 0.160675 0.783661 0.024780 0.147003 0.801605 0.070007 0.146423 0.800415 0.112701 0.146088 0.799347 0.152344 0.146149 0.798523 0.189301 0.147430 0.798828 0.222504 0.148743 0.799194 0.252502 0.150085 0.799500 0.280487 0.151520 0.799774 0.307495 0.152924 0.800079 0.333984 0.154449 0.800323 0.360840 0.156036 0.800598 0.388702 0.157684 0.800903 0.418152 0.159302 0.801147 0.449890 0.160797 0.801331 0.484406 0.162415 0.801544 0.522461 0.164001 0.801697 0.565704 0.165710 0.801910 0.612793 0.167450 0.802094 0.662170 0.169159 0.802277 0.711792 0.170990 0.802399 0.759796 0.172821 0.802582 0.804077 0.174561 0.802643 0.841980 0.174866 0.801361 0.875427 0.175262 0.800140 0.904816 0.175903 0.798950 0.930756 0.176605 0.797913 0.953674 0.177368 0.796967 0.974152 0.178253 0.796265 0.992615 0.179199 0.795441 1.000000 0.193329 0.788971 1.000000 0.216797 0.779694 0.000000 0.192780 0.784424 0.024750 0.180817 0.802399 0.069977 0.180389 0.801208 0.112640 0.179993 0.800049 0.152069 0.179840 0.799072 0.188019 0.180054 0.798370 0.221497 0.181427 0.798676 0.252197 0.182831 0.798981 0.280853 0.184174 0.799255 0.308136 0.185730 0.799530 0.334900 0.187225 0.799774 0.362152 0.188751 0.800049 0.390259 0.190216 0.800232 0.420013 0.191681 0.800446 0.452179 0.193268 0.800629 0.487061 0.194855 0.800842 0.525604 0.196411 0.800995 0.569244 0.198151 0.801178 0.616516 0.199829 0.801331 0.665802 0.201477 0.801514 0.715210 0.203308 0.801636 0.762726 0.205017 0.801758 0.806244 0.206635 0.801697 0.843567 0.206879 0.800354 0.876434 0.207245 0.799225 0.905396 0.207764 0.798187 0.930908 0.208405 0.797180 0.953552 0.209045 0.796234 0.973755 0.209839 0.795380 0.992035 0.210632 0.794617 1.000000 0.223389 0.788757 1.000000 0.246155 0.780182 0.000000 0.224274 0.785187 0.024719 0.213898 0.803131 0.069946 0.213623 0.801941 0.112610 0.213257 0.800812 0.152496 0.213074 0.799713 0.189026 0.212921 0.798737 0.222229 0.213409 0.798157 0.253235 0.214813 0.798431 0.282074 0.216278 0.798706 0.309540 0.217712 0.798920 0.336395 0.219086 0.799164 0.363861 0.220459 0.799377 0.392181 0.221863 0.799561 0.422333 0.223389 0.799744 0.454865 0.224915 0.799927 0.490295 0.226501 0.800079 0.529388 0.228119 0.800262 0.573303 0.229736 0.800446 0.620789 0.231415 0.800568 0.669983 0.233063 0.800720 0.718903 0.234741 0.800873 0.765808 0.236389 0.801025 0.808411 0.237823 0.800903 0.845062 0.238007 0.799469 0.877411 0.238281 0.798309 0.905884 0.238739 0.797272 0.931030 0.239288 0.796326 0.953400 0.239868 0.795319 0.973389 0.240509 0.794586 0.991455 0.241180 0.793823 1.000000 0.252686 0.788666 1.000000 0.274719 0.780334 0.000000 0.254852 0.785889 0.024719 0.246460 0.803864 0.070404 0.245911 0.802643 0.114227 0.245667 0.801392 0.154968 0.245392 0.800323 0.191772 0.245300 0.799286 0.224792 0.245422 0.798370 0.255035 0.246094 0.797882 0.283875 0.247375 0.798065 0.311371 0.248688 0.798279 0.338623 0.250092 0.798492 0.366119 0.251495 0.798645 0.394775 0.252960 0.798859 0.425323 0.254425 0.799042 0.458252 0.255981 0.799225 0.493988 0.257538 0.799347 0.533569 0.259064 0.799530 0.577850 0.260681 0.799683 0.625275 0.262268 0.799805 0.674225 0.263824 0.799957 0.722809 0.265472 0.800079 0.768860 0.267059 0.800201 0.810638 0.268280 0.799896 0.846619 0.268402 0.798523 0.878357 0.268677 0.797363 0.906342 0.269043 0.796326 0.931152 0.269501 0.795441 0.953217 0.269958 0.794586 0.972961 0.270508 0.793579 0.990845 0.271057 0.792847 1.000000 0.281250 0.788330 1.000000 0.302643 0.780670 0.000000 0.284851 0.786957 0.026642 0.278107 0.804474 0.073456 0.277710 0.803192 0.117798 0.277405 0.801941 0.158844 0.277344 0.800842 0.195679 0.277344 0.799774 0.228485 0.277283 0.798798 0.258179 0.277496 0.797913 0.286346 0.278046 0.797363 0.313965 0.279419 0.797607 0.341187 0.280762 0.797791 0.368988 0.282196 0.797974 0.398010 0.283630 0.798126 0.428864 0.285126 0.798279 0.462128 0.286652 0.798462 0.498077 0.288147 0.798584 0.538147 0.289642 0.798737 0.582642 0.291260 0.798889 0.629974 0.292725 0.798981 0.678650 0.294250 0.799164 0.726562 0.295837 0.799316 0.772003 0.297333 0.799408 0.812805 0.298309 0.798920 0.848083 0.298431 0.797729 0.879211 0.298615 0.796417 0.906769 0.298889 0.795410 0.931183 0.299255 0.794403 0.952911 0.299652 0.793549 0.972473 0.300079 0.792786 0.990173 0.300476 0.791962 1.000000 0.309479 0.788116 1.000000 0.330261 0.780640 0.000000 0.314270 0.790588 0.030945 0.309692 0.804993 0.078369 0.309357 0.803650 0.123047 0.309143 0.802429 0.163666 0.308838 0.801178 0.200134 0.308685 0.800110 0.232788 0.308807 0.799133 0.262390 0.308960 0.798218 0.290100 0.309387 0.797424 0.316986 0.309967 0.796844 0.344391 0.311340 0.796997 0.372345 0.312775 0.797180 0.401611 0.314270 0.797333 0.432648 0.315674 0.797485 0.466187 0.317169 0.797668 0.502441 0.318604 0.797760 0.542969 0.320068 0.797913 0.587555 0.321594 0.798065 0.634796 0.323029 0.798187 0.682953 0.324524 0.798279 0.730225 0.325989 0.798401 0.774933 0.327362 0.798492 0.814758 0.328156 0.798035 0.849396 0.328217 0.796692 0.879913 0.328308 0.795471 0.907013 0.328552 0.794403 0.931061 0.328796 0.793518 0.952576 0.329102 0.792694 0.971954 0.329437 0.791809 0.989594 0.329803 0.790924 1.000000 0.337616 0.787476 1.000000 0.357849 0.780823 0.000000 0.343628 0.795868 0.037262 0.341278 0.805420 0.084503 0.340790 0.804016 0.128937 0.340454 0.802734 0.169434 0.340271 0.801483 0.205505 0.340271 0.800354 0.237823 0.340363 0.799408 0.267120 0.340607 0.798492 0.294678 0.341003 0.797668 0.321289 0.341461 0.796844 0.347870 0.341980 0.796234 0.376038 0.343414 0.796387 0.405365 0.344818 0.796539 0.436798 0.346222 0.796631 0.470520 0.347717 0.796814 0.507019 0.349091 0.796936 0.547852 0.350555 0.797058 0.592499 0.351990 0.797180 0.639496 0.353333 0.797272 0.687164 0.354767 0.797394 0.733856 0.356171 0.797485 0.777588 0.357452 0.797607 0.816528 0.358093 0.796997 0.850433 0.358093 0.795746 0.880463 0.358124 0.794556 0.907104 0.358246 0.793488 0.930908 0.358429 0.792542 0.952148 0.358673 0.791656 0.971375 0.358948 0.790619 0.988892 0.359253 0.789856 1.000000 0.365936 0.786926 1.000000 0.385590 0.780884 0.000000 0.373688 0.802368 0.044281 0.372742 0.805634 0.091827 0.372345 0.804260 0.136017 0.372070 0.802917 0.176117 0.371979 0.801727 0.211639 0.372009 0.800598 0.243408 0.372223 0.799652 0.272369 0.372528 0.798706 0.299713 0.372925 0.797913 0.326172 0.373352 0.797058 0.352600 0.373779 0.796204 0.379974 0.374329 0.795471 0.409485 0.375702 0.795654 0.441101 0.377075 0.795776 0.474976 0.378510 0.795929 0.511749 0.379791 0.796051 0.552765 0.381226 0.796143 0.597412 0.382568 0.796265 0.643982 0.383881 0.796356 0.691132 0.385193 0.796478 0.736969 0.386475 0.796570 0.779938 0.387726 0.796631 0.817963 0.388123 0.795807 0.851257 0.388062 0.794678 0.880798 0.388062 0.793488 0.907166 0.388153 0.792358 0.930664 0.388275 0.791351 0.951721 0.388489 0.790375 0.970825 0.388763 0.789581 0.988159 0.389008 0.788605 1.000000 0.394501 0.786255 1.000000 0.413605 0.780792 0.003021 0.405151 0.807281 0.053009 0.404785 0.805817 0.100403 0.404388 0.804443 0.144165 0.404205 0.803101 0.183441 0.404205 0.801849 0.218262 0.404297 0.800812 0.249420 0.404541 0.799866 0.277893 0.404816 0.798950 0.304932 0.405273 0.798096 0.331238 0.405701 0.797241 0.357605 0.406067 0.796417 0.384827 0.406403 0.795441 0.413635 0.406982 0.794739 0.445343 0.408325 0.794861 0.479492 0.409637 0.794952 0.516418 0.410950 0.795074 0.557526 0.412262 0.795166 0.601868 0.413513 0.795258 0.648071 0.414764 0.795349 0.694489 0.415985 0.795410 0.739624 0.417175 0.795502 0.781769 0.418274 0.795624 0.819122 0.418579 0.794769 0.851898 0.418396 0.793457 0.881104 0.418396 0.792267 0.907135 0.418457 0.791168 0.930389 0.418579 0.790131 0.951263 0.418732 0.789154 0.970184 0.418976 0.788269 0.987457 0.419220 0.787354 1.000000 0.423523 0.785370 1.000000 0.442139 0.780792 0.013184 0.437653 0.807465 0.063019 0.437317 0.806000 0.109955 0.437164 0.804535 0.152924 0.437012 0.803223 0.191284 0.437012 0.802032 0.225159 0.437256 0.800995 0.255646 0.437408 0.800018 0.283691 0.437775 0.799133 0.310364 0.438263 0.798309 0.336395 0.438690 0.797424 0.362732 0.438995 0.796600 0.389954 0.439362 0.795624 0.418610 0.439545 0.794586 0.449615 0.440063 0.793823 0.483826 0.441345 0.793915 0.520782 0.442535 0.794037 0.562012 0.443787 0.794098 0.606049 0.444946 0.794159 0.651611 0.446075 0.794250 0.697540 0.447205 0.794373 0.741974 0.448303 0.794403 0.783600 0.449341 0.794434 0.820160 0.449463 0.793488 0.852478 0.449341 0.792145 0.881348 0.449249 0.790894 0.907013 0.449341 0.789764 0.930054 0.449402 0.788727 0.950745 0.449615 0.787750 0.969482 0.449799 0.786804 0.986603 0.449982 0.785980 1.000000 0.453156 0.784546 1.000000 0.471191 0.780731 0.024506 0.471069 0.807495 0.073944 0.470703 0.806030 0.120117 0.470490 0.804626 0.162109 0.470490 0.803314 0.199310 0.470551 0.802124 0.232269 0.470764 0.801117 0.261993 0.471100 0.800201 0.289459 0.471375 0.799316 0.315765 0.471832 0.798401 0.341614 0.472137 0.797577 0.367798 0.472534 0.796692 0.394989 0.472839 0.795715 0.423676 0.473022 0.794647 0.454285 0.473114 0.793518 0.487823 0.473572 0.792786 0.524811 0.474701 0.792877 0.565796 0.475830 0.792938 0.609589 0.476929 0.793091 0.654785 0.477966 0.793121 0.700195 0.479004 0.793152 0.744080 0.480011 0.793182 0.785126 0.481018 0.793152 0.821075 0.481079 0.791992 0.853027 0.480896 0.790710 0.881470 0.480835 0.789429 0.906860 0.480896 0.788361 0.929626 0.480957 0.787354 0.950134 0.481110 0.786346 0.968719 0.481262 0.785370 0.985748 0.481476 0.784454 1.000000 0.483429 0.783417 1.000000 0.500916 0.780792 0.036774 0.505249 0.807526 0.085449 0.504974 0.806061 0.130676 0.504791 0.804626 0.171509 0.504761 0.803375 0.207397 0.504913 0.802216 0.239349 0.505157 0.801239 0.268250 0.505371 0.800262 0.295258 0.505798 0.799438 0.321167 0.506165 0.798584 0.346741 0.506531 0.797699 0.372833 0.506805 0.796783 0.399933 0.507050 0.795837 0.428497 0.507172 0.794769 0.459137 0.507233 0.793579 0.492004 0.507050 0.792236 0.528381 0.507538 0.791718 0.569214 0.508575 0.791748 0.612823 0.509583 0.791779 0.657837 0.510590 0.791809 0.702759 0.511566 0.791779 0.746185 0.512512 0.791779 0.786682 0.513519 0.791718 0.822021 0.513428 0.790497 0.853363 0.513245 0.789154 0.881500 0.513184 0.787964 0.906586 0.513214 0.786865 0.929108 0.513245 0.785767 0.949463 0.513336 0.784729 0.967926 0.513550 0.783905 0.984833 0.513702 0.783081 1.000000 0.514496 0.782166 1.000000 0.532227 0.780853 0.049622 0.541748 0.807465 0.097382 0.541504 0.806000 0.141327 0.541290 0.804657 0.180817 0.541290 0.803406 0.215424 0.541443 0.802307 0.246338 0.541718 0.801331 0.274475 0.541992 0.800415 0.300812 0.542297 0.799530 0.326355 0.542664 0.798676 0.351685 0.542938 0.797791 0.377563 0.543243 0.796906 0.404572 0.543396 0.795898 0.433014 0.543335 0.794830 0.463470 0.543274 0.793610 0.496277 0.543060 0.792297 0.532074 0.542633 0.790771 0.572571 0.543274 0.790375 0.616028 0.544250 0.790344 0.660736 0.545258 0.790344 0.705261 0.546234 0.790314 0.748138 0.547180 0.790222 0.787994 0.548218 0.790192 0.822723 0.547943 0.788849 0.853699 0.547729 0.787598 0.881439 0.547638 0.786346 0.906250 0.547577 0.785248 0.928528 0.547577 0.784241 0.948700 0.547699 0.783234 0.967010 0.547852 0.782410 0.983856 0.547974 0.781616 0.999481 0.548187 0.780853 1.000000 0.565765 0.780884 0.062653 0.580811 0.807434 0.109192 0.580566 0.805939 0.151886 0.580505 0.804626 0.189850 0.580475 0.803436 0.223114 0.580536 0.802368 0.253021 0.580780 0.801392 0.280334 0.580963 0.800476 0.306183 0.581299 0.799622 0.331268 0.581604 0.798798 0.356293 0.581696 0.797913 0.381989 0.581879 0.796967 0.408752 0.581909 0.795959 0.437164 0.581818 0.794891 0.467682 0.581573 0.793640 0.500580 0.581329 0.792236 0.536560 0.580811 0.790680 0.576019 0.580231 0.789032 0.619171 0.581055 0.788818 0.663574 0.581970 0.788757 0.707672 0.582977 0.788727 0.749939 0.583893 0.788666 0.789215 0.584778 0.788605 0.823334 0.584442 0.787201 0.853882 0.584167 0.785889 0.881256 0.584015 0.784760 0.905823 0.583954 0.783630 0.927856 0.583923 0.782684 0.947876 0.583954 0.781738 0.966064 0.584045 0.780914 0.982819 0.584137 0.780182 0.998383 0.584290 0.779449 1.000000 0.600861 0.781189 0.075684 0.621979 0.807343 0.120880 0.621674 0.805939 0.161987 0.621582 0.804626 0.198364 0.621460 0.803436 0.230377 0.621460 0.802429 0.259277 0.621582 0.801422 0.285828 0.621704 0.800568 0.311127 0.621948 0.799744 0.335815 0.622131 0.798859 0.360474 0.622162 0.797974 0.386017 0.622101 0.797028 0.412811 0.622162 0.795990 0.441284 0.621887 0.794861 0.471893 0.621643 0.793549 0.504913 0.621216 0.792114 0.541077 0.620575 0.790527 0.580566 0.619934 0.788849 0.622192 0.619293 0.787231 0.666260 0.620239 0.787170 0.709869 0.621155 0.787140 0.751709 0.622009 0.787109 0.790222 0.622803 0.786865 0.823853 0.622345 0.785522 0.853973 0.622070 0.784302 0.881012 0.621826 0.783173 0.905334 0.621674 0.782104 0.927185 0.621582 0.781189 0.947021 0.621582 0.780304 0.965118 0.621613 0.779480 0.981750 0.621674 0.778839 0.997284 0.621765 0.778137 1.000000 0.637268 0.781372 0.088318 0.664246 0.807251 0.132019 0.663910 0.805847 0.171509 0.663696 0.804596 0.206329 0.663483 0.803436 0.237122 0.663483 0.802460 0.265045 0.663452 0.801544 0.290863 0.663544 0.800598 0.315582 0.663574 0.799774 0.339935 0.663574 0.798920 0.364502 0.663574 0.798035 0.390015 0.663452 0.797028 0.416901 0.663391 0.795929 0.445404 0.662994 0.794769 0.476166 0.662628 0.793396 0.509155 0.662048 0.791931 0.545593 0.661346 0.790314 0.585022 0.660583 0.788605 0.626373 0.659790 0.786926 0.668762 0.659363 0.785614 0.711914 0.660187 0.785553 0.753143 0.660980 0.785492 0.791107 0.661591 0.785278 0.824219 0.661102 0.783966 0.853943 0.660675 0.782715 0.880676 0.660400 0.781586 0.904724 0.660217 0.780640 0.926453 0.660095 0.779724 0.946106 0.660004 0.778992 0.964111 0.659973 0.778198 0.980682 0.660004 0.777588 0.996155 0.660004 0.776947 1.000000 0.674347 0.781860 0.100311 0.707092 0.807129 0.142426 0.706543 0.805756 0.180298 0.706177 0.804565 0.213531 0.705872 0.803467 0.243225 0.705719 0.802490 0.270172 0.705658 0.801575 0.295410 0.705505 0.800690 0.319794 0.705475 0.799835 0.343964 0.705353 0.798920 0.368530 0.705231 0.797974 0.394012 0.705048 0.796936 0.420929 0.704712 0.795776 0.449585 0.704315 0.794586 0.480347 0.703796 0.793213 0.513428 0.703094 0.791748 0.549957 0.702332 0.790070 0.589355 0.701447 0.788422 0.630493 0.700531 0.786743 0.672241 0.699707 0.785065 0.713898 0.699402 0.783997 0.754547 0.700104 0.783997 0.791870 0.700562 0.783661 0.824524 0.700012 0.782379 0.853882 0.699524 0.781219 0.880341 0.699188 0.780182 0.904114 0.698944 0.779266 0.925629 0.698700 0.778412 0.945190 0.698578 0.777679 0.963074 0.698486 0.777008 0.979645 0.698578 0.776520 0.995056 0.699097 0.776184 1.000000 0.712189 0.782806 0.111267 0.749115 0.807068 0.151947 0.748474 0.805725 0.188141 0.748016 0.804535 0.219940 0.747681 0.803467 0.248566 0.747345 0.802521 0.274963 0.747253 0.801605 0.299866 0.746918 0.800659 0.324005 0.746765 0.799774 0.348053 0.746552 0.798828 0.372528 0.746307 0.797852 0.398010 0.745972 0.796783 0.424927 0.745605 0.795624 0.453613 0.745056 0.794373 0.484467 0.744415 0.792969 0.517670 0.743622 0.791473 0.554260 0.742737 0.789856 0.593597 0.741821 0.788239 0.634460 0.740814 0.786560 0.675842 0.739899 0.784973 0.716461 0.738953 0.783356 0.755798 0.738739 0.782532 0.792450 0.739044 0.782135 0.824677 0.738373 0.780914 0.853699 0.737823 0.779877 0.879822 0.737427 0.778931 0.903412 0.737091 0.777985 0.924774 0.736786 0.777252 0.944214 0.736725 0.776642 0.962128 0.737030 0.776215 0.978607 0.737305 0.775970 0.993927 0.737640 0.775757 1.000000 0.749115 0.783966 0.121338 0.789856 0.806946 0.160309 0.789001 0.805664 0.195038 0.788544 0.804535 0.225861 0.788116 0.803467 0.253815 0.787659 0.802460 0.279663 0.787384 0.801514 0.304169 0.787079 0.800537 0.328125 0.786713 0.799652 0.352051 0.786530 0.798676 0.376434 0.786102 0.797668 0.401947 0.785645 0.796600 0.428864 0.785187 0.795410 0.457672 0.784546 0.794159 0.488464 0.783813 0.792755 0.521790 0.782928 0.791290 0.558350 0.781891 0.789703 0.597534 0.780884 0.788116 0.638214 0.779907 0.786469 0.679199 0.778809 0.784851 0.719330 0.777832 0.783325 0.757477 0.776886 0.781891 0.792908 0.776306 0.780823 0.824707 0.775604 0.779663 0.853394 0.774994 0.778625 0.879303 0.774475 0.777740 0.902710 0.774170 0.777008 0.924072 0.774231 0.776520 0.943390 0.774353 0.776184 0.961121 0.774445 0.775879 0.977509 0.774597 0.775757 0.992828 0.774719 0.775757 1.000000 0.784576 0.785278 0.129364 0.827576 0.806152 0.167114 0.826752 0.804718 0.200745 0.826141 0.803589 0.230682 0.825562 0.802521 0.257996 0.825073 0.801483 0.283417 0.824615 0.800385 0.307526 0.824219 0.799469 0.331207 0.823792 0.798492 0.354980 0.823364 0.797485 0.379364 0.822937 0.796509 0.404877 0.822357 0.795349 0.431763 0.821686 0.794159 0.460510 0.820984 0.792877 0.491425 0.820129 0.791473 0.524719 0.819153 0.790009 0.561249 0.818054 0.788483 0.600220 0.816925 0.786835 0.640533 0.815796 0.785248 0.681091 0.814728 0.783722 0.720795 0.813599 0.782227 0.758484 0.812683 0.780853 0.793762 0.812317 0.780151 0.825867 0.812225 0.779816 0.854309 0.811646 0.778900 0.880157 0.811493 0.778290 0.903412 0.811279 0.777832 0.924438 0.811157 0.777496 0.943573 0.811157 0.777313 0.961182 0.811096 0.777161 0.977509 0.811096 0.777130 0.992767 0.811127 0.777161 1.000000 0.818085 0.786804 0.136414 0.862061 0.804504 0.173096 0.861206 0.803253 0.205750 0.860504 0.802002 0.234924 0.859833 0.800842 0.261597 0.859314 0.799866 0.286530 0.858826 0.798859 0.310364 0.858337 0.797913 0.333893 0.857819 0.796936 0.357483 0.857300 0.795990 0.381836 0.856720 0.794891 0.407318 0.856171 0.793884 0.434204 0.855408 0.792603 0.463043 0.854614 0.791473 0.493927 0.853638 0.790039 0.527222 0.852631 0.788574 0.563660 0.851501 0.787018 0.602417 0.850311 0.785492 0.642426 0.849121 0.783966 0.682617 0.847961 0.782501 0.721802 0.846893 0.781067 0.759094 0.845856 0.779816 0.794037 0.845520 0.779236 0.826660 0.846161 0.779633 0.855591 0.846436 0.779816 0.880920 0.846130 0.779327 0.903809 0.845795 0.779022 0.924622 0.845520 0.778839 0.943665 0.845337 0.778717 0.961212 0.845154 0.778687 0.977478 0.845001 0.778717 0.992767 0.844818 0.778778 1.000000 0.849152 0.788422 0.143341 0.893463 0.802917 0.178925 0.892609 0.801636 0.210602 0.891846 0.800415 0.238983 0.891144 0.799438 0.265106 0.890564 0.798462 0.289581 0.889984 0.797302 0.313141 0.889435 0.796448 0.336487 0.888885 0.795471 0.359955 0.888275 0.794495 0.384277 0.887665 0.793518 0.409729 0.886963 0.792389 0.436646 0.886200 0.791229 0.465454 0.885315 0.790039 0.496277 0.884308 0.788727 0.529541 0.883240 0.787231 0.565857 0.882080 0.785858 0.604431 0.880829 0.784363 0.644012 0.879669 0.782867 0.683868 0.878479 0.781464 0.722748 0.877319 0.780182 0.760101 0.876495 0.779144 0.794739 0.876282 0.778931 0.826630 0.876770 0.779480 0.855408 0.877258 0.780090 0.881317 0.877563 0.780640 0.903992 0.877106 0.780396 0.924713 0.876770 0.780334 0.943695 0.876404 0.780243 0.961212 0.876160 0.780304 0.977478 0.875854 0.780365 0.992737 0.875610 0.780487 1.000000 0.877472 0.790100 0.150085 0.921570 0.801422 0.184570 0.920715 0.800293 0.215302 0.919861 0.799133 0.242950 0.919189 0.797943 0.268494 0.918518 0.796997 0.292572 0.917938 0.795959 0.315887 0.917297 0.795044 0.338989 0.916687 0.794067 0.362396 0.916077 0.793243 0.386597 0.915375 0.792114 0.412018 0.914642 0.791077 0.438904 0.913818 0.789978 0.467682 0.912872 0.788879 0.498413 0.911865 0.787628 0.531677 0.910736 0.786163 0.567841 0.909515 0.784851 0.606079 0.908325 0.783356 0.645569 0.907135 0.782043 0.685608 0.906067 0.780884 0.724304 0.905029 0.779877 0.760712 0.904114 0.779022 0.794769 0.903839 0.778992 0.826202 0.904144 0.779602 0.854736 0.904480 0.780396 0.880615 0.904846 0.781158 0.904083 0.905182 0.781891 0.924744 0.904755 0.781891 0.943726 0.904297 0.781891 0.961212 0.903931 0.781982 0.977478 0.903595 0.782104 0.992737 0.903320 0.782227 1.000000 0.903076 0.791931 0.156616 0.946594 0.800018 0.189972 0.945679 0.798767 0.219788 0.944885 0.797729 0.246765 0.944153 0.796753 0.271790 0.943512 0.795715 0.295471 0.942871 0.794708 0.318512 0.942200 0.793854 0.341431 0.941620 0.792877 0.364716 0.940918 0.791931 0.388824 0.940247 0.791107 0.414185 0.939453 0.790070 0.441010 0.938599 0.789032 0.469696 0.937653 0.787842 0.500336 0.936584 0.786591 0.533569 0.935486 0.785278 0.569611 0.934296 0.784027 0.608337 0.933167 0.782837 0.647766 0.932068 0.781830 0.686829 0.930939 0.780823 0.724792 0.929871 0.779999 0.760651 0.928894 0.779266 0.794281 0.928528 0.779297 0.825500 0.928741 0.780090 0.853821 0.928955 0.780823 0.879669 0.929230 0.781708 0.903229 0.929504 0.782562 0.924683 0.929718 0.783386 0.943787 0.929413 0.783661 0.961304 0.928955 0.783783 0.977509 0.928650 0.783997 0.992737 0.928375 0.784485 1.000000 0.926239 0.794373 0.162750 0.969025 0.798767 0.195129 0.968170 0.797455 0.223969 0.967377 0.796356 0.250366 0.966644 0.795441 0.274872 0.965973 0.794464 0.298218 0.965302 0.793579 0.320923 0.964661 0.792664 0.343719 0.964020 0.791870 0.366821 0.963348 0.790924 0.390869 0.962616 0.790009 0.416138 0.961823 0.789185 0.442902 0.960968 0.788055 0.471558 0.960022 0.787048 0.502075 0.958984 0.785889 0.535950 0.957916 0.784821 0.572174 0.956787 0.783813 0.610107 0.955627 0.782806 0.648712 0.954498 0.781952 0.687225 0.953369 0.781067 0.724670 0.952271 0.780365 0.760254 0.951294 0.779846 0.793610 0.950836 0.779877 0.824677 0.950989 0.780670 0.853058 0.951111 0.781555 0.878876 0.951294 0.782410 0.902466 0.951447 0.783264 0.923950 0.951599 0.784180 0.943695 0.951843 0.785156 0.961456 0.951721 0.785950 0.977631 0.951324 0.786560 0.992737 0.950928 0.787201 1.000000 0.947296 0.797119 0.168579 0.989319 0.797577 0.199921 0.988495 0.796295 0.227966 0.987701 0.795288 0.253723 0.987000 0.794342 0.277802 0.986328 0.793396 0.300720 0.985687 0.792450 0.323242 0.985046 0.791779 0.345764 0.984375 0.790802 0.368744 0.983673 0.790070 0.392670 0.982971 0.789307 0.417816 0.982208 0.788452 0.444550 0.981323 0.787506 0.473816 0.980438 0.786560 0.504669 0.979431 0.785736 0.537842 0.978333 0.784912 0.573425 0.977203 0.783966 0.610718 0.976074 0.783142 0.648804 0.974945 0.782349 0.686981 0.973816 0.781708 0.724243 0.972687 0.781067 0.759613 0.971710 0.780518 0.792908 0.971130 0.780579 0.824097 0.971191 0.781433 0.852509 0.971283 0.782349 0.878387 0.971405 0.783203 0.902008 0.971527 0.784210 0.923553 0.971649 0.785461 0.943207 0.971802 0.786774 0.961304 0.971954 0.788208 0.977753 0.971863 0.789368 0.992737 0.971405 0.790070 1.000000 0.966309 0.799683 0.185059 1.000000 0.791443 0.214111 1.000000 0.791107 0.240265 1.000000 0.790619 0.264374 1.000000 0.790314 0.286957 1.000000 0.789856 0.308624 1.000000 0.789459 0.329956 1.000000 0.789276 0.351410 1.000000 0.788818 0.373352 1.000000 0.788452 0.396179 1.000000 0.788025 0.420929 1.000000 0.787659 0.446991 1.000000 0.787262 0.475586 0.999115 0.786682 0.505920 0.998108 0.785980 0.538605 0.997040 0.785248 0.573700 0.995941 0.784454 0.610687 0.994812 0.783783 0.648529 0.993652 0.783020 0.686554 0.992554 0.782379 0.723755 0.991455 0.781769 0.759247 0.990417 0.781372 0.792511 0.989807 0.781372 0.823792 0.989838 0.782318 0.852325 0.989868 0.783295 0.878296 0.989899 0.784485 0.901886 0.989960 0.785858 0.923279 0.989990 0.787262 0.942841 0.990082 0.788696 0.960754 0.990112 0.790192 0.977386 0.990112 0.791443 0.992737 0.990082 0.792419 1.000000 0.983795 0.801788 0.214783 1.000000 0.780762 0.242493 1.000000 0.780853 0.267639 1.000000 0.780975 0.290802 1.000000 0.781097 0.312683 1.000000 0.781281 0.333679 1.000000 0.781311 0.354462 1.000000 0.781464 0.375336 1.000000 0.781677 0.397430 1.000000 0.782166 0.420197 1.000000 0.782654 0.443878 1.000000 0.783173 0.468964 1.000000 0.783722 0.495605 1.000000 0.784332 0.524506 1.000000 0.785065 0.556244 1.000000 0.785828 0.590302 1.000000 0.786621 0.626068 1.000000 0.787415 0.662750 1.000000 0.788239 0.699493 1.000000 0.789154 0.735443 1.000000 0.789917 0.769592 1.000000 0.790833 0.801270 1.000000 0.791748 0.830231 1.000000 0.792908 0.856537 1.000000 0.794189 0.880402 1.000000 0.795532 0.902069 1.000000 0.796967 0.921783 1.000000 0.798401 0.939789 1.000000 0.799591 0.956329 1.000000 0.800690 0.971832 1.000000 0.801758 0.986267 1.000000 0.802704 1.000000 1.000000 0.803589 0.000000 0.022552 0.812561 0.024536 0.001465 0.833099 0.071594 0.003235 0.833466 0.115814 0.004852 0.833832 0.156738 0.006409 0.834229 0.193329 0.007965 0.834534 0.226166 0.009521 0.834869 0.256073 0.011017 0.835236 0.283783 0.012604 0.835541 0.310150 0.014099 0.835815 0.335846 0.015594 0.836151 0.361725 0.017151 0.836426 0.388367 0.018677 0.836700 0.416595 0.020294 0.836975 0.446716 0.021942 0.837250 0.479340 0.023651 0.837494 0.515625 0.025360 0.837738 0.557098 0.027222 0.838013 0.602966 0.029114 0.838257 0.651978 0.031128 0.838470 0.702026 0.033234 0.838715 0.750854 0.035126 0.838867 0.796600 0.036987 0.839020 0.837830 0.038971 0.839203 0.872864 0.039398 0.838043 0.903656 0.040039 0.836761 0.930756 0.040863 0.835846 0.954681 0.041901 0.834869 0.975983 0.043060 0.834137 0.994995 0.044189 0.833282 1.000000 0.064087 0.822876 1.000000 0.090424 0.810516 0.000000 0.058563 0.814697 0.023956 0.038544 0.833191 0.070068 0.039490 0.833069 0.114166 0.040924 0.833435 0.154846 0.042419 0.833740 0.191956 0.043854 0.834106 0.224823 0.045319 0.834442 0.254822 0.046692 0.834747 0.282532 0.048187 0.835052 0.308929 0.049652 0.835327 0.334686 0.051117 0.835602 0.360504 0.052643 0.835876 0.387146 0.054138 0.836121 0.415314 0.055817 0.836395 0.445953 0.057465 0.836639 0.479431 0.059204 0.836884 0.516113 0.061035 0.837158 0.557953 0.062927 0.837372 0.604492 0.064911 0.837616 0.653595 0.066742 0.837769 0.703369 0.068542 0.837921 0.752197 0.070343 0.838074 0.797882 0.072327 0.838226 0.838684 0.074280 0.838287 0.873352 0.074829 0.837128 0.903870 0.075500 0.836029 0.930725 0.076233 0.835052 0.954407 0.077240 0.834137 0.975494 0.078400 0.833313 0.994385 0.079468 0.832428 1.000000 0.097931 0.822876 1.000000 0.123566 0.810944 0.000000 0.093597 0.815430 0.023499 0.075348 0.833984 0.068573 0.074982 0.832855 0.112732 0.076141 0.833008 0.153473 0.077484 0.833313 0.190582 0.078857 0.833649 0.223602 0.080231 0.833984 0.253601 0.081573 0.834198 0.281250 0.083008 0.834503 0.307800 0.084442 0.834778 0.333374 0.085938 0.835052 0.359375 0.087433 0.835297 0.386505 0.089020 0.835571 0.415314 0.090668 0.835785 0.446381 0.092407 0.836090 0.480225 0.094177 0.836304 0.517609 0.096130 0.836517 0.559784 0.097870 0.836670 0.606323 0.099487 0.836853 0.655518 0.101318 0.837006 0.705536 0.103149 0.837189 0.754242 0.105042 0.837311 0.799500 0.107025 0.837463 0.839752 0.108856 0.837585 0.874084 0.109314 0.836243 0.904205 0.110077 0.835205 0.930725 0.110840 0.834167 0.954132 0.111816 0.833313 0.975037 0.112854 0.832489 0.993805 0.113953 0.831726 1.000000 0.130920 0.822754 1.000000 0.155792 0.811249 0.000000 0.127808 0.815765 0.023285 0.111206 0.834747 0.068542 0.110626 0.833618 0.111206 0.110413 0.832520 0.152161 0.111725 0.832825 0.189240 0.113068 0.833130 0.222290 0.114380 0.833435 0.252319 0.115753 0.833679 0.280029 0.117157 0.833954 0.306458 0.118561 0.834229 0.332672 0.120056 0.834473 0.359314 0.121643 0.834717 0.386749 0.123260 0.834961 0.415985 0.125000 0.835175 0.447601 0.126770 0.835449 0.481873 0.128387 0.835602 0.519318 0.130035 0.835785 0.562134 0.131683 0.835968 0.609039 0.133423 0.836121 0.658325 0.135284 0.836243 0.708191 0.137085 0.836395 0.756470 0.138977 0.836548 0.801392 0.140930 0.836700 0.841064 0.142639 0.836609 0.874878 0.143127 0.835480 0.904633 0.143799 0.834381 0.930847 0.144501 0.833313 0.953979 0.145416 0.832458 0.974640 0.146393 0.831573 0.993225 0.147400 0.830719 1.000000 0.162903 0.822754 1.000000 0.187042 0.811462 0.000000 0.160919 0.816528 0.023254 0.146027 0.835480 0.068512 0.145508 0.834320 0.111206 0.145294 0.833191 0.150940 0.145142 0.832306 0.188019 0.146454 0.832611 0.221008 0.147736 0.832855 0.251007 0.149139 0.833099 0.279388 0.150543 0.833374 0.306396 0.152039 0.833649 0.332947 0.153595 0.833862 0.360046 0.155243 0.834106 0.387848 0.156891 0.834320 0.417542 0.158447 0.834534 0.449219 0.159973 0.834717 0.483856 0.161530 0.834900 0.522003 0.163177 0.835052 0.565247 0.164917 0.835175 0.612244 0.166626 0.835358 0.661804 0.168427 0.835510 0.711395 0.170227 0.835663 0.759247 0.172119 0.835754 0.803467 0.173981 0.835907 0.842438 0.175537 0.835693 0.875824 0.175995 0.834564 0.905121 0.176575 0.833496 0.930969 0.177277 0.832367 0.953857 0.178101 0.831604 0.974243 0.178955 0.830627 0.992615 0.179840 0.829865 1.000000 0.193970 0.822693 1.000000 0.217377 0.811859 0.000000 0.192871 0.817200 0.023193 0.179840 0.836151 0.068481 0.179443 0.834991 0.111176 0.179230 0.833832 0.150635 0.178955 0.832733 0.186676 0.179138 0.832031 0.220306 0.180450 0.832306 0.251282 0.181854 0.832550 0.279907 0.183350 0.832794 0.307129 0.184814 0.833038 0.334045 0.186401 0.833252 0.361359 0.187897 0.833466 0.389374 0.189331 0.833649 0.419250 0.190857 0.833832 0.451508 0.192413 0.834015 0.486603 0.194000 0.834137 0.525269 0.195648 0.834259 0.568878 0.197327 0.834442 0.616211 0.199066 0.834625 0.665497 0.200806 0.834717 0.714813 0.202545 0.834839 0.762115 0.204285 0.834991 0.805695 0.206116 0.835083 0.843994 0.207489 0.834869 0.876740 0.207916 0.833557 0.905670 0.208466 0.832458 0.931122 0.209015 0.831635 0.953674 0.209747 0.830658 0.973877 0.210449 0.829865 0.992035 0.211243 0.828949 1.000000 0.224091 0.822388 1.000000 0.246765 0.812012 0.000000 0.224335 0.817841 0.023163 0.212921 0.836823 0.068451 0.212646 0.835602 0.111145 0.212250 0.834442 0.151367 0.212067 0.833344 0.188080 0.212067 0.832306 0.221283 0.212433 0.831726 0.252319 0.213928 0.831970 0.281219 0.215454 0.832214 0.308685 0.216797 0.832397 0.335693 0.218170 0.832581 0.363098 0.219604 0.832764 0.391541 0.221039 0.832916 0.421906 0.222565 0.833038 0.454529 0.224121 0.833221 0.489868 0.225677 0.833405 0.529053 0.227325 0.833496 0.572937 0.228943 0.833679 0.620361 0.230560 0.833801 0.669556 0.232269 0.833893 0.718567 0.233978 0.834015 0.765198 0.235626 0.834167 0.808075 0.237396 0.834259 0.845520 0.238586 0.833923 0.877777 0.238892 0.832794 0.906158 0.239349 0.831696 0.931244 0.239868 0.830658 0.953491 0.240448 0.829712 0.973480 0.241028 0.828857 0.991516 0.241730 0.828125 1.000000 0.253235 0.822266 1.000000 0.275208 0.812347 0.000000 0.255096 0.818451 0.023163 0.245483 0.837463 0.069366 0.245026 0.836182 0.113342 0.244629 0.834991 0.154144 0.244507 0.833832 0.191040 0.244507 0.832825 0.224060 0.244629 0.831848 0.254395 0.245239 0.831360 0.283142 0.246521 0.831512 0.310699 0.247833 0.831696 0.337982 0.249237 0.831879 0.365509 0.250671 0.832001 0.394348 0.252136 0.832184 0.424957 0.253632 0.832367 0.457947 0.255157 0.832458 0.493774 0.256775 0.832642 0.533417 0.258362 0.832764 0.577637 0.259888 0.832855 0.625031 0.261536 0.832977 0.673920 0.263123 0.833130 0.722351 0.264709 0.833221 0.768372 0.266327 0.833313 0.810364 0.267944 0.833405 0.847076 0.268982 0.832977 0.878723 0.269226 0.831757 0.906616 0.269562 0.830780 0.931305 0.270020 0.829712 0.953308 0.270477 0.828796 0.973022 0.270996 0.827972 0.990875 0.271576 0.827148 1.000000 0.281830 0.821838 1.000000 0.303101 0.812439 0.000000 0.284821 0.819855 0.025757 0.277252 0.837952 0.072784 0.276917 0.836670 0.117188 0.276550 0.835419 0.158295 0.276398 0.834259 0.195068 0.276398 0.833160 0.227783 0.276489 0.832214 0.257599 0.276581 0.831329 0.285706 0.277191 0.830811 0.313324 0.278564 0.830963 0.340759 0.279968 0.831116 0.368500 0.281372 0.831268 0.397614 0.282867 0.831421 0.428497 0.284363 0.831573 0.461823 0.285828 0.831726 0.497955 0.287415 0.831818 0.537964 0.288910 0.831940 0.582458 0.290436 0.832092 0.629822 0.291962 0.832184 0.678314 0.293518 0.832275 0.726044 0.295044 0.832367 0.771484 0.296600 0.832489 0.812622 0.298126 0.832550 0.848511 0.298950 0.832062 0.879578 0.299133 0.830872 0.906952 0.299408 0.829865 0.931305 0.299744 0.828796 0.953033 0.300171 0.827881 0.972534 0.300537 0.827057 0.990265 0.300964 0.826233 1.000000 0.309967 0.821625 1.000000 0.330658 0.812592 0.000000 0.314026 0.823639 0.030426 0.308746 0.838379 0.078064 0.308441 0.837067 0.122498 0.308136 0.835754 0.163269 0.307861 0.834534 0.199738 0.307892 0.833466 0.232239 0.307922 0.832489 0.261902 0.308105 0.831573 0.289612 0.308472 0.830750 0.316498 0.309143 0.830170 0.344025 0.310547 0.830353 0.371948 0.311951 0.830475 0.401184 0.313446 0.830658 0.432434 0.314880 0.830750 0.465912 0.316345 0.830872 0.502380 0.317871 0.831024 0.542908 0.319336 0.831116 0.587341 0.320801 0.831207 0.634552 0.322327 0.831329 0.682648 0.323792 0.831421 0.729797 0.325195 0.831482 0.774261 0.326630 0.831604 0.814636 0.328003 0.831665 0.849731 0.328705 0.830994 0.880249 0.328827 0.829834 0.907227 0.329041 0.828735 0.931213 0.329285 0.827789 0.952667 0.329559 0.826965 0.972015 0.329895 0.826080 0.989624 0.330231 0.825287 1.000000 0.338074 0.821075 1.000000 0.358276 0.812683 0.000000 0.343201 0.829132 0.036865 0.340393 0.838745 0.084320 0.339874 0.837311 0.128662 0.339478 0.835999 0.169220 0.339417 0.834808 0.205292 0.339447 0.833679 0.237427 0.339600 0.832703 0.266815 0.339813 0.831818 0.294312 0.340149 0.830994 0.320831 0.340485 0.830139 0.347534 0.341217 0.829559 0.375702 0.342651 0.829651 0.405121 0.344086 0.829803 0.436615 0.345490 0.829926 0.470428 0.346924 0.829987 0.507080 0.348358 0.830139 0.547791 0.349792 0.830231 0.592346 0.351196 0.830322 0.639221 0.352631 0.830414 0.686737 0.354004 0.830505 0.733215 0.355347 0.830597 0.776917 0.356750 0.830658 0.816498 0.358002 0.830719 0.850800 0.358521 0.830017 0.880707 0.358582 0.828766 0.907288 0.358673 0.827759 0.931030 0.358826 0.826874 0.952301 0.359100 0.825867 0.971466 0.359344 0.824921 0.988922 0.359711 0.824158 1.000000 0.366364 0.820618 1.000000 0.385956 0.812683 0.000000 0.372986 0.835602 0.044342 0.371857 0.838928 0.091888 0.371460 0.837463 0.136017 0.371216 0.836151 0.176025 0.371094 0.834930 0.211456 0.371307 0.833862 0.243073 0.371460 0.832916 0.272095 0.371826 0.832031 0.299286 0.372162 0.831177 0.325745 0.372589 0.830292 0.352234 0.372955 0.829468 0.379547 0.373535 0.828735 0.409302 0.374939 0.828857 0.440948 0.376373 0.828979 0.474823 0.377747 0.829041 0.511688 0.379120 0.829163 0.552704 0.380524 0.829254 0.597137 0.381805 0.829346 0.643677 0.383148 0.829468 0.690613 0.384430 0.829529 0.736359 0.385712 0.829620 0.779236 0.386963 0.829681 0.817902 0.388153 0.829742 0.851532 0.388489 0.828949 0.881104 0.388489 0.827698 0.907318 0.388550 0.826630 0.930786 0.388672 0.825623 0.951843 0.388885 0.824707 0.970886 0.389130 0.823822 0.988220 0.389404 0.822998 1.000000 0.394897 0.820038 1.000000 0.414001 0.812683 0.003235 0.404297 0.840515 0.053345 0.403931 0.839050 0.100708 0.403687 0.837616 0.144226 0.403412 0.836304 0.183472 0.403412 0.835083 0.218201 0.403534 0.834045 0.249146 0.403717 0.833069 0.277649 0.404114 0.832153 0.304565 0.404541 0.831299 0.330841 0.404999 0.830475 0.357300 0.405304 0.829590 0.384430 0.405701 0.828644 0.413483 0.406281 0.827881 0.445251 0.407623 0.827972 0.479340 0.408936 0.828064 0.516266 0.410187 0.828186 0.557434 0.411530 0.828247 0.601685 0.412781 0.828339 0.647675 0.414032 0.828400 0.694061 0.415222 0.828491 0.739044 0.416351 0.828552 0.781128 0.417480 0.828583 0.819244 0.418610 0.828644 0.852234 0.418823 0.827759 0.881378 0.418793 0.826508 0.907257 0.418793 0.825409 0.930511 0.418976 0.824371 0.951355 0.419159 0.823395 0.970245 0.419373 0.822601 0.987457 0.419617 0.821686 1.000000 0.423889 0.819336 1.000000 0.442474 0.812683 0.013611 0.436920 0.840607 0.063568 0.436523 0.839142 0.110382 0.436340 0.837677 0.153137 0.436279 0.836395 0.191406 0.436279 0.835205 0.225098 0.436493 0.834137 0.255493 0.436707 0.833191 0.283478 0.437012 0.832306 0.309967 0.437469 0.831451 0.336121 0.437927 0.830597 0.362427 0.438293 0.829681 0.389618 0.438599 0.828735 0.418335 0.438812 0.827667 0.449402 0.439362 0.826935 0.483521 0.440582 0.827026 0.520721 0.441833 0.827118 0.561584 0.443024 0.827148 0.605621 0.444153 0.827271 0.651276 0.445343 0.827332 0.696930 0.446381 0.827362 0.741241 0.447479 0.827423 0.782776 0.448578 0.827423 0.820312 0.449615 0.827423 0.852844 0.449707 0.826355 0.881592 0.449677 0.825134 0.907227 0.449707 0.824127 0.930176 0.449829 0.823059 0.950836 0.449921 0.822083 0.969513 0.450165 0.821198 0.986664 0.450378 0.820221 1.000000 0.453491 0.818420 1.000000 0.471558 0.812714 0.025146 0.470215 0.840637 0.074615 0.469940 0.839172 0.120667 0.469818 0.837738 0.162415 0.469727 0.836426 0.199524 0.469849 0.835266 0.232178 0.470032 0.834259 0.261780 0.470276 0.833313 0.289276 0.470764 0.832397 0.315460 0.471069 0.831543 0.341309 0.471527 0.830688 0.367554 0.471832 0.829773 0.394653 0.472107 0.828796 0.423401 0.472290 0.827728 0.454102 0.472351 0.826599 0.487610 0.472809 0.825897 0.524658 0.473938 0.825989 0.565399 0.475067 0.826050 0.609100 0.476135 0.826080 0.654327 0.477203 0.826141 0.699524 0.478210 0.826141 0.743469 0.479218 0.826141 0.784393 0.480225 0.826141 0.821320 0.481232 0.826080 0.853363 0.481232 0.824982 0.881714 0.481201 0.823700 0.907043 0.481171 0.822632 0.929749 0.481262 0.821594 0.950195 0.481415 0.820587 0.968811 0.481598 0.819824 0.985779 0.481842 0.818878 1.000000 0.483765 0.817627 1.000000 0.501251 0.812653 0.037506 0.504364 0.840637 0.086243 0.504150 0.839111 0.131134 0.503998 0.837708 0.171753 0.504059 0.836456 0.207611 0.504150 0.835327 0.239288 0.504456 0.834290 0.268097 0.504730 0.833374 0.295013 0.505096 0.832520 0.320831 0.505493 0.831635 0.346436 0.505798 0.830780 0.372528 0.506104 0.829865 0.399536 0.506287 0.828888 0.428223 0.506500 0.827789 0.458771 0.506409 0.826630 0.491638 0.506256 0.825317 0.528076 0.506714 0.824707 0.568878 0.507751 0.824768 0.612396 0.508789 0.824768 0.657410 0.509827 0.824768 0.702148 0.510773 0.824768 0.745483 0.511749 0.824707 0.785919 0.512756 0.824707 0.822327 0.513702 0.824615 0.853729 0.513641 0.823486 0.881683 0.513519 0.822296 0.906769 0.513519 0.821167 0.929260 0.513611 0.820160 0.949585 0.513702 0.819244 0.967987 0.513824 0.818329 0.984863 0.514069 0.817474 1.000000 0.514832 0.816467 1.000000 0.532562 0.812653 0.050476 0.540924 0.840546 0.098175 0.540741 0.839081 0.141968 0.540558 0.837646 0.181061 0.540558 0.836456 0.215546 0.540649 0.835327 0.246185 0.540863 0.834351 0.274292 0.541260 0.833435 0.300598 0.541534 0.832581 0.325958 0.541901 0.831726 0.351349 0.542145 0.830872 0.377228 0.542419 0.829926 0.404114 0.542542 0.828918 0.432648 0.542603 0.827850 0.463074 0.542480 0.826630 0.495941 0.542236 0.825317 0.531769 0.541870 0.823792 0.572144 0.542389 0.823364 0.615601 0.543427 0.823364 0.660278 0.544403 0.823303 0.704681 0.545441 0.823303 0.747467 0.546356 0.823242 0.787231 0.547363 0.823181 0.823090 0.548248 0.823151 0.854004 0.548065 0.821838 0.881653 0.547974 0.820679 0.906433 0.547913 0.819641 0.928680 0.547974 0.818634 0.948730 0.548035 0.817657 0.967072 0.548157 0.816803 0.983856 0.548309 0.815948 0.999451 0.548492 0.815155 1.000000 0.566101 0.812805 0.063507 0.579987 0.840424 0.110046 0.579834 0.838989 0.152313 0.579620 0.837616 0.190002 0.579651 0.836426 0.223206 0.579742 0.835358 0.252808 0.579987 0.834412 0.280121 0.580261 0.833496 0.305847 0.580475 0.832672 0.330841 0.580658 0.831787 0.355865 0.580933 0.830902 0.381561 0.580994 0.829987 0.408295 0.581055 0.828949 0.436798 0.580963 0.827881 0.467316 0.580750 0.826630 0.500244 0.580383 0.825195 0.536255 0.579987 0.823669 0.575653 0.579346 0.822021 0.618744 0.580170 0.821869 0.663055 0.581146 0.821777 0.707001 0.582062 0.821716 0.749237 0.582977 0.821686 0.788422 0.583923 0.821655 0.823669 0.584747 0.821503 0.854156 0.584503 0.820251 0.881500 0.584320 0.819153 0.905945 0.584259 0.818054 0.928009 0.584229 0.817108 0.947937 0.584229 0.816162 0.966125 0.584320 0.815369 0.982880 0.584473 0.814606 0.998413 0.584595 0.813873 1.000000 0.601257 0.812927 0.076508 0.621063 0.840271 0.121582 0.620789 0.838898 0.162354 0.620514 0.837555 0.198486 0.620544 0.836426 0.230377 0.620575 0.835358 0.259003 0.620697 0.834412 0.285553 0.620941 0.833527 0.310699 0.621124 0.832703 0.335297 0.621124 0.831818 0.360016 0.621185 0.830933 0.385529 0.621216 0.830017 0.412292 0.621124 0.828949 0.440887 0.621033 0.827789 0.471527 0.620667 0.826508 0.504547 0.620270 0.825043 0.540771 0.619598 0.823486 0.580170 0.618988 0.821838 0.621796 0.618408 0.820282 0.665741 0.619263 0.820221 0.709167 0.620178 0.820190 0.750916 0.621063 0.820129 0.789520 0.621979 0.820099 0.824188 0.622650 0.819916 0.854279 0.622375 0.818665 0.881226 0.622131 0.817505 0.905457 0.621979 0.816559 0.927307 0.621887 0.815521 0.947083 0.621918 0.814758 0.965149 0.621918 0.813965 0.981812 0.622009 0.813232 0.997253 0.622070 0.812561 1.000000 0.637573 0.813232 0.089020 0.663422 0.840149 0.132690 0.662994 0.838806 0.171753 0.662750 0.837494 0.206360 0.662537 0.836365 0.237000 0.662476 0.835358 0.264679 0.662659 0.834473 0.290466 0.662567 0.833557 0.315094 0.662659 0.832703 0.339355 0.662659 0.831879 0.364014 0.662598 0.830963 0.389496 0.662476 0.829956 0.416412 0.662292 0.828857 0.445068 0.661957 0.827637 0.475800 0.661621 0.826324 0.508850 0.661011 0.824829 0.545197 0.660339 0.823273 0.584595 0.659607 0.821625 0.625885 0.658752 0.819977 0.668213 0.658356 0.818634 0.711212 0.659180 0.818604 0.752411 0.660004 0.818573 0.790436 0.660767 0.818542 0.824585 0.661377 0.818298 0.854218 0.660980 0.817108 0.880859 0.660706 0.815979 0.904877 0.660492 0.815063 0.926544 0.660370 0.814209 0.946167 0.660309 0.813416 0.964142 0.660248 0.812653 0.980713 0.660278 0.812012 0.996185 0.660309 0.811401 1.000000 0.674866 0.813721 0.100891 0.706055 0.840027 0.142914 0.705475 0.838684 0.180389 0.705170 0.837463 0.213470 0.704834 0.836365 0.242920 0.704681 0.835358 0.269745 0.704651 0.834473 0.294922 0.704529 0.833618 0.319275 0.704437 0.832703 0.343475 0.704376 0.831818 0.368042 0.704163 0.830872 0.393555 0.703918 0.829834 0.420441 0.703705 0.828674 0.449188 0.703278 0.827484 0.480011 0.702728 0.826141 0.513123 0.701996 0.824646 0.549591 0.701263 0.823090 0.588898 0.700439 0.821411 0.629944 0.699493 0.819794 0.671631 0.698639 0.818115 0.713135 0.698303 0.817108 0.753784 0.699097 0.817078 0.791229 0.699829 0.817078 0.824799 0.700256 0.816772 0.854126 0.699829 0.815643 0.880493 0.699432 0.814667 0.904236 0.699158 0.813690 0.925720 0.698975 0.812897 0.945251 0.698822 0.812164 0.963165 0.698700 0.811493 0.979675 0.699005 0.811005 0.995056 0.699493 0.810669 1.000000 0.712646 0.814606 0.111908 0.747955 0.839905 0.152252 0.747437 0.838623 0.188080 0.746918 0.837402 0.219757 0.746613 0.836334 0.248230 0.746368 0.835388 0.274536 0.746185 0.834442 0.299347 0.745850 0.833557 0.323486 0.745636 0.832642 0.347504 0.745514 0.831696 0.372009 0.745270 0.830719 0.397522 0.744934 0.829651 0.424500 0.744507 0.828522 0.453278 0.743958 0.827301 0.484070 0.743378 0.825958 0.517334 0.742584 0.824432 0.553864 0.741669 0.822876 0.593079 0.740692 0.821259 0.633850 0.739777 0.819641 0.675171 0.738800 0.817993 0.715698 0.737915 0.816467 0.754913 0.737671 0.815613 0.791901 0.738312 0.815704 0.824951 0.738617 0.815369 0.853912 0.738098 0.814270 0.880005 0.737671 0.813324 0.903534 0.737335 0.812469 0.924835 0.737061 0.811737 0.944336 0.737152 0.811157 0.962158 0.737396 0.810791 0.978607 0.737701 0.810455 0.993927 0.738037 0.810242 1.000000 0.749512 0.815704 0.121704 0.788757 0.839783 0.160400 0.788025 0.838531 0.194824 0.787354 0.837372 0.225616 0.787018 0.836273 0.253479 0.786591 0.835297 0.279236 0.786346 0.834351 0.303711 0.785980 0.833405 0.327576 0.785675 0.832489 0.351501 0.785400 0.831543 0.375946 0.785065 0.830536 0.401459 0.784607 0.829498 0.428406 0.784058 0.828339 0.457214 0.783356 0.827087 0.488068 0.782715 0.825745 0.521362 0.781769 0.824249 0.557922 0.780823 0.822723 0.596985 0.779755 0.821106 0.637573 0.778748 0.819519 0.678497 0.777740 0.817932 0.718536 0.776672 0.816467 0.756622 0.775818 0.815063 0.792358 0.775635 0.814392 0.824951 0.775757 0.814117 0.853607 0.775208 0.813049 0.879456 0.774658 0.812195 0.902893 0.774567 0.811493 0.924164 0.774597 0.811005 0.943451 0.774658 0.810638 0.961121 0.774811 0.810364 0.977509 0.774902 0.810150 0.992798 0.775055 0.810028 1.000000 0.784882 0.816895 0.130463 0.827301 0.839691 0.168091 0.826477 0.838379 0.201447 0.825867 0.837219 0.231354 0.825317 0.836151 0.258514 0.824890 0.835144 0.283844 0.824371 0.834167 0.308014 0.824005 0.833252 0.331635 0.823608 0.832306 0.355408 0.823181 0.831360 0.379822 0.822754 0.830383 0.405273 0.822235 0.829285 0.432251 0.821564 0.828156 0.461090 0.820953 0.826935 0.491913 0.820099 0.825592 0.525269 0.819092 0.824097 0.561737 0.818054 0.822601 0.600708 0.816956 0.821014 0.640991 0.815826 0.819519 0.681488 0.814728 0.817963 0.721161 0.813660 0.816498 0.758759 0.812744 0.815186 0.793427 0.811859 0.813995 0.824890 0.811188 0.812988 0.853394 0.810730 0.812164 0.879120 0.810516 0.811523 0.902313 0.810333 0.811005 0.923340 0.810211 0.810669 0.942474 0.810150 0.810364 0.960083 0.810120 0.810242 0.976440 0.810089 0.810089 0.991760 0.810059 0.810059 1.000000 0.818329 0.818237 0.138000 0.862152 0.838562 0.174500 0.861328 0.837311 0.206848 0.860596 0.836151 0.235931 0.859985 0.835022 0.262451 0.859406 0.833984 0.287354 0.858917 0.832947 0.311157 0.858490 0.832062 0.334564 0.857971 0.831085 0.358215 0.857391 0.830139 0.382538 0.856873 0.829163 0.407990 0.856262 0.828064 0.434937 0.855560 0.826935 0.463745 0.854736 0.825653 0.494568 0.853760 0.824280 0.527893 0.852753 0.822845 0.564331 0.851624 0.821411 0.602997 0.850433 0.819855 0.643005 0.849243 0.818329 0.683075 0.848083 0.816895 0.722260 0.847015 0.815491 0.759430 0.845978 0.814209 0.793915 0.845215 0.813141 0.825684 0.845154 0.812836 0.854462 0.845398 0.812958 0.879761 0.845032 0.812469 0.902649 0.844757 0.812103 0.923462 0.844452 0.811859 0.942535 0.844269 0.811615 0.960083 0.844086 0.811523 0.976440 0.843933 0.811462 0.991730 0.843811 0.811493 1.000000 0.849365 0.819702 0.144867 0.893555 0.836945 0.180206 0.892700 0.835785 0.211670 0.891937 0.834534 0.239990 0.891266 0.833557 0.265930 0.890656 0.832520 0.290375 0.890076 0.831635 0.313904 0.889526 0.830627 0.337158 0.888947 0.829681 0.360657 0.888397 0.828766 0.384949 0.887756 0.827667 0.410339 0.887054 0.826721 0.437286 0.886261 0.825562 0.466034 0.885406 0.824341 0.496857 0.884399 0.823059 0.530212 0.883331 0.821655 0.566437 0.882141 0.820160 0.604919 0.880951 0.818665 0.644562 0.879730 0.817291 0.684265 0.878540 0.815826 0.723358 0.877502 0.814636 0.760529 0.876648 0.813629 0.794403 0.875885 0.812805 0.825531 0.875702 0.812622 0.854248 0.876160 0.813171 0.880127 0.876556 0.813629 0.902863 0.876099 0.813354 0.923553 0.875671 0.813141 0.942566 0.875397 0.813049 0.960083 0.875122 0.812958 0.976410 0.874817 0.812988 0.991730 0.874634 0.813019 1.000000 0.877625 0.821136 0.151581 0.921600 0.835571 0.185822 0.920715 0.834290 0.216339 0.919952 0.833130 0.243927 0.919250 0.832184 0.269318 0.918579 0.831177 0.293365 0.917969 0.830170 0.316620 0.917358 0.829224 0.339661 0.916748 0.828278 0.363007 0.916138 0.827454 0.387238 0.915436 0.826477 0.412598 0.914703 0.825378 0.439514 0.913910 0.824402 0.468231 0.912964 0.823181 0.498993 0.911926 0.821899 0.532257 0.910828 0.820496 0.568359 0.909607 0.819214 0.606567 0.908386 0.817749 0.646271 0.907227 0.816467 0.686096 0.906189 0.815308 0.724670 0.905182 0.814362 0.760925 0.904236 0.813416 0.794281 0.903381 0.812744 0.824951 0.903107 0.812683 0.853485 0.903412 0.813293 0.879395 0.903778 0.813995 0.902893 0.904144 0.814697 0.923615 0.903748 0.814575 0.942627 0.903320 0.814545 0.960144 0.902924 0.814514 0.976471 0.902618 0.814514 0.991730 0.902313 0.814606 1.000000 0.903320 0.822876 0.158020 0.946625 0.834198 0.191132 0.945679 0.832916 0.220734 0.944916 0.831909 0.247681 0.944214 0.830811 0.272552 0.943512 0.829926 0.296204 0.942932 0.828949 0.319214 0.942261 0.828033 0.342010 0.941650 0.827179 0.365295 0.940979 0.826233 0.389374 0.940247 0.825317 0.414703 0.939484 0.824280 0.441559 0.938629 0.823303 0.470215 0.937683 0.822113 0.500885 0.936676 0.820953 0.534058 0.935516 0.819733 0.570374 0.934357 0.818420 0.608978 0.933228 0.817322 0.648163 0.932098 0.816162 0.687164 0.931000 0.815155 0.725006 0.929993 0.814331 0.760803 0.928986 0.813599 0.793762 0.928070 0.812958 0.824249 0.927673 0.812927 0.852661 0.927917 0.813599 0.878479 0.928162 0.814362 0.902008 0.928467 0.815125 0.923523 0.928680 0.815857 0.942688 0.928375 0.816040 0.960236 0.928009 0.816071 0.976501 0.927643 0.816254 0.991730 0.927338 0.816681 1.000000 0.926483 0.825073 0.164124 0.969055 0.832886 0.196198 0.968201 0.831665 0.224945 0.967407 0.830658 0.251221 0.966675 0.829681 0.275604 0.966003 0.828644 0.298859 0.965332 0.827789 0.321625 0.964691 0.826935 0.344269 0.964020 0.826019 0.367371 0.963348 0.825348 0.391388 0.962616 0.824310 0.416626 0.961853 0.823456 0.443420 0.960999 0.822449 0.471954 0.960022 0.821320 0.502838 0.959045 0.820282 0.536591 0.957977 0.819275 0.572693 0.956848 0.818237 0.610474 0.955688 0.817200 0.648987 0.954559 0.816254 0.687378 0.953430 0.815369 0.724792 0.952362 0.814606 0.760254 0.951355 0.813965 0.793121 0.950439 0.813416 0.823486 0.949982 0.813354 0.851868 0.950104 0.814178 0.877716 0.950256 0.814911 0.901306 0.950439 0.815674 0.922882 0.950653 0.816467 0.942627 0.950867 0.817474 0.960449 0.950745 0.818146 0.976654 0.950317 0.818573 0.991730 0.950012 0.819122 1.000000 0.947388 0.827484 0.169861 0.989288 0.831604 0.200897 0.988495 0.830505 0.228882 0.987701 0.829346 0.254517 0.987000 0.828461 0.278442 0.986328 0.827667 0.301361 0.985687 0.826752 0.323792 0.985046 0.825958 0.346313 0.984406 0.825165 0.369293 0.983704 0.824310 0.393097 0.982971 0.823517 0.418243 0.982208 0.822632 0.445282 0.981323 0.821777 0.474365 0.980438 0.820923 0.505127 0.979462 0.820007 0.538208 0.978333 0.819183 0.573639 0.977234 0.818237 0.610901 0.976135 0.817383 0.648956 0.974976 0.816589 0.687103 0.973846 0.815796 0.724335 0.972748 0.815063 0.759705 0.971710 0.814423 0.792511 0.970764 0.813995 0.822906 0.970215 0.813995 0.851318 0.970276 0.814728 0.877289 0.970398 0.815491 0.900970 0.970520 0.816528 0.922516 0.970673 0.817596 0.942200 0.970856 0.818787 0.960266 0.971008 0.820099 0.976776 0.970917 0.821106 0.991791 0.970428 0.821564 1.000000 0.966309 0.829620 0.186218 1.000000 0.824890 0.214996 1.000000 0.824463 0.241058 1.000000 0.824127 0.265076 1.000000 0.823975 0.287567 1.000000 0.823669 0.309265 1.000000 0.823395 0.330475 1.000000 0.823059 0.351898 1.000000 0.822754 0.373779 1.000000 0.822418 0.396912 1.000000 0.822113 0.421539 1.000000 0.821960 0.447479 1.000000 0.821686 0.476013 0.999115 0.820953 0.506195 0.998108 0.820160 0.538788 0.997040 0.819489 0.573883 0.995941 0.818604 0.610809 0.994843 0.817902 0.648651 0.993683 0.817047 0.686646 0.992554 0.816345 0.723877 0.991486 0.815643 0.759369 0.990417 0.815125 0.792267 0.989471 0.814697 0.822693 0.988831 0.814606 0.851288 0.988892 0.815613 0.877228 0.988953 0.816711 0.900818 0.988983 0.817902 0.922272 0.989044 0.819183 0.941803 0.989075 0.820465 0.959808 0.989136 0.821686 0.976410 0.989197 0.822723 0.991791 0.989136 0.823608 1.000000 0.983795 0.831421 0.215790 1.000000 0.812683 0.243317 1.000000 0.812683 0.268341 1.000000 0.812775 0.291382 1.000000 0.812988 0.313171 1.000000 0.812958 0.334167 1.000000 0.813110 0.354889 1.000000 0.813293 0.375977 1.000000 0.813568 0.397949 1.000000 0.814056 0.420593 1.000000 0.814453 0.444275 1.000000 0.814941 0.469269 1.000000 0.815460 0.495850 1.000000 0.816071 0.524658 1.000000 0.816650 0.556366 1.000000 0.817383 0.590454 1.000000 0.818024 0.626190 1.000000 0.818726 0.662872 1.000000 0.819458 0.699646 1.000000 0.820282 0.735657 1.000000 0.821014 0.769836 1.000000 0.821747 0.801575 1.000000 0.822662 0.830536 1.000000 0.823761 0.856750 1.000000 0.824890 0.880585 1.000000 0.826111 0.902191 1.000000 0.827393 0.921844 1.000000 0.828552 0.939819 1.000000 0.829590 0.956421 1.000000 0.830475 0.971832 1.000000 0.831390 0.986267 1.000000 0.832214 1.000000 1.000000 0.832886 0.000000 0.023560 0.848358 0.022827 0.000458 0.869293 0.069977 0.002106 0.869568 0.114288 0.003754 0.869904 0.155060 0.005310 0.870209 0.191681 0.006897 0.870453 0.224640 0.008392 0.870728 0.254578 0.009949 0.871002 0.282440 0.011444 0.871246 0.308716 0.012970 0.871490 0.334351 0.014496 0.871735 0.360382 0.016052 0.871979 0.387024 0.017639 0.872162 0.415161 0.019257 0.872437 0.445312 0.020874 0.872620 0.478149 0.022614 0.872833 0.514618 0.024384 0.873047 0.556000 0.026215 0.873260 0.601929 0.028229 0.873383 0.650879 0.030243 0.873596 0.700928 0.032288 0.873749 0.749695 0.034119 0.873871 0.795685 0.036041 0.873993 0.836792 0.038086 0.874115 0.873047 0.040161 0.874237 0.903839 0.040833 0.873199 0.930908 0.041718 0.872162 0.954773 0.042694 0.871155 0.976044 0.043823 0.870239 0.995056 0.045044 0.869568 1.000000 0.064941 0.858276 1.000000 0.091217 0.844421 0.000000 0.058990 0.849854 0.022247 0.037506 0.869263 0.068359 0.038361 0.869110 0.112427 0.039795 0.869354 0.153229 0.041260 0.869629 0.190338 0.042725 0.869934 0.223450 0.044189 0.870178 0.253357 0.045593 0.870422 0.281097 0.047058 0.870667 0.307556 0.048523 0.870911 0.333313 0.050079 0.871124 0.359161 0.051514 0.871368 0.385956 0.053131 0.871582 0.414246 0.054779 0.871765 0.444916 0.056519 0.871979 0.478363 0.058289 0.872131 0.515259 0.060120 0.872314 0.557281 0.062042 0.872559 0.603668 0.063995 0.872711 0.652496 0.065765 0.872833 0.702606 0.067596 0.872955 0.751190 0.069489 0.873077 0.796844 0.071411 0.873169 0.837738 0.073456 0.873291 0.873657 0.075562 0.873291 0.904114 0.076141 0.872162 0.930908 0.077087 0.871216 0.954498 0.078094 0.870300 0.975555 0.079132 0.869324 0.994446 0.080353 0.868652 1.000000 0.098755 0.858063 1.000000 0.124298 0.844849 0.000000 0.093872 0.850342 0.021698 0.074158 0.869934 0.066925 0.073853 0.868805 0.110962 0.075012 0.868805 0.152039 0.076355 0.869110 0.189026 0.077698 0.869354 0.222168 0.079041 0.869568 0.252075 0.080505 0.869843 0.279846 0.081940 0.870056 0.306335 0.083405 0.870300 0.331970 0.084839 0.870514 0.358154 0.086426 0.870697 0.385468 0.088074 0.870850 0.414276 0.089783 0.871094 0.445374 0.091431 0.871277 0.479340 0.093323 0.871429 0.516785 0.095184 0.871613 0.559052 0.096802 0.871796 0.605743 0.098602 0.871887 0.654846 0.100372 0.872009 0.704803 0.102264 0.872101 0.753265 0.104218 0.872223 0.798462 0.106140 0.872314 0.838867 0.108124 0.872406 0.874451 0.110168 0.872437 0.904449 0.110809 0.871246 0.930908 0.111633 0.870270 0.954285 0.112549 0.869476 0.975128 0.113586 0.868561 0.993866 0.114685 0.867828 1.000000 0.131683 0.858124 1.000000 0.156464 0.845123 0.000000 0.128174 0.850677 0.021606 0.109955 0.870575 0.066895 0.109497 0.869385 0.109680 0.109253 0.868286 0.150726 0.110626 0.868500 0.187714 0.111908 0.868713 0.220917 0.113251 0.868988 0.250916 0.114655 0.869232 0.278656 0.116089 0.869415 0.305176 0.117523 0.869598 0.331604 0.119110 0.869812 0.358093 0.120605 0.870056 0.385895 0.122345 0.870239 0.415161 0.124084 0.870392 0.446808 0.125824 0.870575 0.481049 0.127441 0.870697 0.518738 0.129028 0.870850 0.561462 0.130798 0.870941 0.608368 0.132538 0.871094 0.657806 0.134369 0.871216 0.707642 0.136230 0.871307 0.755829 0.138184 0.871399 0.800476 0.140045 0.871521 0.840332 0.142029 0.871613 0.875244 0.143860 0.871582 0.904877 0.144440 0.870422 0.931000 0.145264 0.869446 0.954132 0.146118 0.868561 0.974762 0.147034 0.867676 0.993286 0.148132 0.866882 1.000000 0.163666 0.857819 1.000000 0.187683 0.845245 0.000000 0.161133 0.851257 0.021606 0.144775 0.871155 0.066864 0.144379 0.869965 0.109589 0.144012 0.868805 0.149384 0.144043 0.867920 0.186493 0.145386 0.868164 0.219482 0.146667 0.868347 0.249725 0.148102 0.868561 0.278137 0.149567 0.868774 0.305328 0.151031 0.868988 0.332001 0.152618 0.869171 0.358917 0.154236 0.869324 0.387024 0.155945 0.869507 0.416565 0.157471 0.869659 0.448456 0.158997 0.869781 0.483185 0.160645 0.869934 0.521484 0.162323 0.870056 0.564575 0.164001 0.870178 0.611847 0.165771 0.870270 0.661041 0.167603 0.870361 0.710663 0.169373 0.870483 0.758453 0.171265 0.870575 0.802643 0.173126 0.870667 0.841766 0.175049 0.870728 0.876160 0.176697 0.870636 0.905426 0.177277 0.869507 0.931152 0.177979 0.868500 0.953949 0.178711 0.867706 0.974365 0.179596 0.866821 0.992706 0.180511 0.866028 1.000000 0.194672 0.857819 1.000000 0.218048 0.845490 0.000000 0.193054 0.851837 0.021545 0.178833 0.871765 0.066864 0.178314 0.870544 0.109589 0.178131 0.869385 0.149078 0.178009 0.868286 0.185272 0.178070 0.867523 0.219177 0.179474 0.867737 0.250000 0.180847 0.867920 0.278809 0.182343 0.868103 0.306152 0.183929 0.868286 0.333221 0.185547 0.868500 0.360413 0.186890 0.868622 0.388702 0.188416 0.868774 0.418579 0.189880 0.868896 0.450928 0.191528 0.869019 0.486145 0.193146 0.869171 0.524811 0.194763 0.869232 0.568512 0.196442 0.869324 0.615814 0.198212 0.869415 0.665039 0.199951 0.869537 0.714264 0.201721 0.869629 0.761536 0.203491 0.869751 0.804932 0.205292 0.869843 0.843536 0.207092 0.869934 0.877136 0.208527 0.869720 0.905884 0.209076 0.868561 0.931274 0.209686 0.867645 0.953827 0.210358 0.866730 0.973938 0.211060 0.865845 0.992126 0.211853 0.865021 1.000000 0.224670 0.857666 1.000000 0.247284 0.845825 0.000000 0.224548 0.852386 0.021515 0.211884 0.872253 0.066833 0.211456 0.871094 0.109680 0.211151 0.869873 0.150238 0.210999 0.868744 0.187012 0.211121 0.867706 0.220215 0.211548 0.867065 0.251404 0.212982 0.867218 0.280396 0.214508 0.867462 0.307922 0.215820 0.867615 0.334808 0.217194 0.867737 0.362366 0.218658 0.867859 0.390869 0.220123 0.867981 0.421295 0.221619 0.868103 0.454010 0.223206 0.868195 0.489532 0.224823 0.868317 0.528656 0.226410 0.868408 0.572815 0.228119 0.868500 0.620117 0.229797 0.868652 0.669189 0.231445 0.868744 0.718018 0.233154 0.868835 0.764648 0.234833 0.868927 0.807281 0.236511 0.868958 0.845062 0.238220 0.869049 0.878113 0.239471 0.868683 0.906403 0.239929 0.867706 0.931427 0.240448 0.866638 0.953644 0.241028 0.865845 0.973541 0.241638 0.865021 0.991547 0.242279 0.864166 1.000000 0.253784 0.857452 1.000000 0.275757 0.845886 0.000000 0.255066 0.852905 0.021698 0.244324 0.872833 0.068237 0.243866 0.871521 0.112366 0.243713 0.870300 0.153259 0.243530 0.869141 0.190216 0.243469 0.868042 0.223297 0.243744 0.867126 0.253510 0.244232 0.866547 0.282349 0.245575 0.866699 0.309998 0.246918 0.866821 0.337158 0.248291 0.866974 0.364960 0.249695 0.867035 0.393768 0.251251 0.867157 0.424469 0.252777 0.867310 0.457581 0.254272 0.867401 0.493500 0.255859 0.867493 0.533051 0.257416 0.867584 0.577454 0.259064 0.867737 0.624725 0.260651 0.867798 0.673553 0.262268 0.867828 0.721893 0.263885 0.867920 0.767731 0.265472 0.868042 0.809631 0.267090 0.868073 0.846802 0.268707 0.868164 0.879059 0.269775 0.867798 0.906860 0.270142 0.866699 0.931519 0.270569 0.865753 0.953430 0.271027 0.864899 0.973145 0.271576 0.864014 0.990967 0.272095 0.863342 1.000000 0.282227 0.857239 1.000000 0.303558 0.846191 0.000000 0.284668 0.854645 0.024780 0.276154 0.873230 0.071899 0.275757 0.871857 0.116547 0.275635 0.870636 0.157715 0.275574 0.869415 0.194336 0.275330 0.868347 0.227112 0.275360 0.867371 0.256897 0.275635 0.866455 0.285004 0.276245 0.865936 0.312714 0.277649 0.865997 0.340118 0.279053 0.866150 0.367950 0.280487 0.866241 0.397064 0.281982 0.866364 0.428070 0.283447 0.866455 0.461487 0.284973 0.866516 0.497742 0.286530 0.866699 0.537811 0.288055 0.866791 0.582245 0.289581 0.866821 0.629547 0.291168 0.866913 0.677887 0.292694 0.867035 0.725616 0.294220 0.867065 0.770660 0.295715 0.867157 0.811798 0.297211 0.867218 0.848267 0.298737 0.867310 0.879852 0.299622 0.866852 0.907227 0.299927 0.865753 0.931519 0.300262 0.864746 0.953156 0.300598 0.863953 0.972595 0.300995 0.863098 0.990265 0.301453 0.862335 1.000000 0.310455 0.856812 1.000000 0.331116 0.846130 0.000000 0.313599 0.858582 0.029877 0.307770 0.873505 0.077576 0.307587 0.872162 0.122040 0.307098 0.870880 0.162781 0.307037 0.869659 0.199188 0.306885 0.868500 0.231720 0.307007 0.867554 0.261322 0.307159 0.866608 0.289032 0.307526 0.865753 0.316010 0.308258 0.865173 0.343353 0.309692 0.865326 0.371460 0.311066 0.865417 0.400848 0.312561 0.865479 0.432098 0.314026 0.865601 0.465668 0.315491 0.865692 0.502197 0.316986 0.865784 0.542633 0.318512 0.865906 0.587189 0.319977 0.865997 0.634338 0.321442 0.866028 0.682312 0.322906 0.866119 0.729279 0.324371 0.866211 0.773621 0.325745 0.866272 0.813782 0.327179 0.866302 0.849487 0.328552 0.866364 0.880554 0.329315 0.865906 0.907471 0.329498 0.864868 0.931335 0.329742 0.863861 0.952789 0.330017 0.862946 0.972076 0.330322 0.862091 0.989655 0.330658 0.861237 1.000000 0.338501 0.856445 1.000000 0.358673 0.846191 0.000000 0.342773 0.864288 0.036560 0.339233 0.873718 0.084015 0.338898 0.872345 0.128418 0.338562 0.870972 0.168823 0.338409 0.869781 0.204834 0.338409 0.868683 0.237030 0.338684 0.867706 0.266266 0.338959 0.866760 0.293823 0.339325 0.865936 0.320374 0.339722 0.865051 0.347137 0.340393 0.864441 0.375336 0.341797 0.864532 0.404755 0.343262 0.864624 0.436279 0.344696 0.864716 0.470245 0.346130 0.864807 0.506866 0.347504 0.864868 0.547516 0.348969 0.864929 0.592194 0.350403 0.865021 0.638916 0.351746 0.865112 0.686401 0.353149 0.865204 0.732727 0.354553 0.865234 0.776123 0.355835 0.865295 0.815674 0.357117 0.865326 0.850586 0.358398 0.865387 0.881012 0.358948 0.864807 0.907532 0.359070 0.863861 0.931183 0.359253 0.862732 0.952362 0.359497 0.861877 0.971527 0.359802 0.861053 0.988953 0.360077 0.860168 1.000000 0.366730 0.856110 1.000000 0.386322 0.846161 0.000000 0.372406 0.870575 0.044342 0.370850 0.873810 0.091827 0.370544 0.872437 0.135986 0.370239 0.871094 0.175842 0.370209 0.869843 0.211182 0.370361 0.868774 0.242798 0.370605 0.867798 0.271667 0.370941 0.866913 0.298889 0.371307 0.866028 0.325317 0.371765 0.865143 0.351776 0.372162 0.864288 0.379303 0.372742 0.863617 0.408997 0.374115 0.863708 0.440582 0.375549 0.863770 0.474701 0.376923 0.863861 0.511536 0.378235 0.863922 0.552460 0.379639 0.864014 0.596863 0.380981 0.864105 0.643250 0.382294 0.864136 0.690216 0.383545 0.864227 0.735718 0.384857 0.864227 0.778290 0.386047 0.864319 0.816986 0.387207 0.864319 0.851471 0.388428 0.864410 0.881348 0.388855 0.863678 0.907562 0.388947 0.862640 0.930969 0.389069 0.861633 0.951935 0.389313 0.860687 0.970947 0.389526 0.859802 0.988251 0.389771 0.858948 1.000000 0.395325 0.855530 1.000000 0.414368 0.846313 0.003448 0.403412 0.875366 0.053467 0.402985 0.873871 0.100830 0.402649 0.872437 0.144379 0.402496 0.871124 0.183411 0.402588 0.869934 0.217926 0.402740 0.868896 0.248932 0.402863 0.867859 0.277283 0.403229 0.866974 0.304199 0.403687 0.866119 0.330505 0.404175 0.865265 0.356903 0.404480 0.864410 0.384155 0.404846 0.863434 0.413025 0.405426 0.862701 0.444885 0.406769 0.862793 0.479126 0.408081 0.862885 0.516022 0.409393 0.862976 0.557068 0.410675 0.863007 0.601288 0.411926 0.863037 0.647278 0.413147 0.863068 0.693451 0.414337 0.863129 0.738312 0.415527 0.863159 0.780243 0.416595 0.863220 0.818207 0.417694 0.863220 0.852173 0.418793 0.863220 0.881622 0.419159 0.862457 0.907501 0.419189 0.861450 0.930695 0.419312 0.860413 0.951477 0.419525 0.859528 0.970306 0.419739 0.858612 0.987488 0.419952 0.857697 1.000000 0.424255 0.854889 1.000000 0.442841 0.846222 0.014099 0.436096 0.875336 0.063843 0.435608 0.873871 0.110626 0.435455 0.872467 0.153381 0.435333 0.871155 0.191376 0.435364 0.869965 0.224976 0.435577 0.868927 0.255219 0.435913 0.867950 0.283112 0.436279 0.867065 0.309692 0.436615 0.866211 0.335724 0.437134 0.865356 0.362030 0.437378 0.864441 0.389282 0.437805 0.863464 0.417969 0.437958 0.862457 0.449066 0.438507 0.861664 0.483368 0.439789 0.861786 0.520386 0.440979 0.861816 0.561310 0.442169 0.861877 0.605255 0.443329 0.861938 0.650726 0.444427 0.861969 0.696289 0.445526 0.862061 0.740570 0.446594 0.862030 0.781952 0.447662 0.862030 0.819366 0.448700 0.862000 0.852814 0.449707 0.862030 0.881866 0.450012 0.861176 0.907410 0.450073 0.860107 0.930328 0.450134 0.859100 0.950928 0.450317 0.858154 0.969574 0.450500 0.857208 0.986664 0.450745 0.856384 1.000000 0.453918 0.854248 1.000000 0.471863 0.846191 0.025848 0.469391 0.875305 0.075073 0.469147 0.873810 0.121002 0.468994 0.872375 0.162720 0.468872 0.871124 0.199493 0.468933 0.869965 0.232086 0.469299 0.868958 0.261566 0.469604 0.867981 0.288910 0.469879 0.867126 0.315094 0.470306 0.866272 0.340881 0.470703 0.865387 0.367126 0.471100 0.864502 0.394348 0.471313 0.863495 0.423004 0.471527 0.862457 0.453735 0.471558 0.861298 0.487335 0.472015 0.860626 0.524231 0.473145 0.860687 0.565094 0.474274 0.860718 0.608704 0.475281 0.860748 0.653748 0.476288 0.860779 0.699005 0.477356 0.860779 0.742676 0.478363 0.860748 0.783508 0.479370 0.860779 0.820496 0.480377 0.860748 0.853363 0.481323 0.860687 0.881927 0.481537 0.859741 0.907227 0.481537 0.858765 0.929901 0.481598 0.857605 0.950287 0.481750 0.856689 0.968811 0.481995 0.855804 0.985840 0.482147 0.855042 1.000000 0.484161 0.853455 1.000000 0.501587 0.846161 0.038330 0.503601 0.875153 0.086823 0.503296 0.873718 0.131653 0.503326 0.872345 0.172058 0.503235 0.871094 0.207520 0.503326 0.869965 0.239166 0.503571 0.868988 0.267883 0.503906 0.868011 0.294617 0.504333 0.867157 0.320465 0.504639 0.866333 0.345978 0.504913 0.865417 0.372040 0.505310 0.864532 0.399139 0.505463 0.863556 0.427765 0.505585 0.862488 0.458405 0.505585 0.861298 0.491241 0.505432 0.859985 0.527618 0.505890 0.859375 0.568390 0.506897 0.859436 0.611908 0.507935 0.859436 0.656677 0.508911 0.859406 0.701538 0.509918 0.859436 0.744751 0.510895 0.859406 0.785004 0.511841 0.859344 0.821381 0.512817 0.859314 0.853821 0.513763 0.859253 0.881958 0.513855 0.858307 0.906982 0.513916 0.857178 0.929413 0.513916 0.856201 0.949615 0.514038 0.855286 0.968048 0.514160 0.854462 0.984924 0.514343 0.853577 1.000000 0.515198 0.852600 1.000000 0.532898 0.846313 0.051300 0.539978 0.875061 0.098724 0.539795 0.873596 0.142334 0.539673 0.872253 0.181335 0.539703 0.871063 0.215485 0.539856 0.869934 0.246033 0.540161 0.868988 0.273987 0.540375 0.868042 0.300171 0.540680 0.867188 0.325562 0.540985 0.866333 0.350830 0.541321 0.865479 0.376709 0.541595 0.864563 0.403656 0.541687 0.863556 0.432129 0.541687 0.862488 0.462646 0.541565 0.861237 0.495544 0.541290 0.859955 0.531281 0.540894 0.858459 0.571716 0.541534 0.858032 0.615112 0.542511 0.858063 0.659698 0.543518 0.858032 0.704041 0.544464 0.857971 0.746674 0.545471 0.857941 0.786346 0.546417 0.857910 0.822144 0.547333 0.857788 0.854095 0.548248 0.857758 0.881866 0.548279 0.856781 0.906586 0.548279 0.855743 0.928802 0.548279 0.854736 0.948822 0.548340 0.853821 0.967163 0.548492 0.853027 0.983887 0.548645 0.852234 0.999451 0.548859 0.851501 1.000000 0.566437 0.846313 0.064362 0.579193 0.874908 0.110626 0.578857 0.873505 0.152771 0.578644 0.872131 0.190186 0.578735 0.870972 0.223053 0.578796 0.869934 0.252563 0.579010 0.868958 0.279755 0.579346 0.868073 0.305389 0.579407 0.867218 0.330353 0.579712 0.866364 0.355286 0.579865 0.865479 0.380920 0.580078 0.864563 0.407776 0.580109 0.863525 0.436249 0.579987 0.862488 0.466888 0.579803 0.861206 0.499878 0.579376 0.859802 0.535767 0.578949 0.858337 0.575134 0.578369 0.856720 0.618195 0.579163 0.856537 0.662354 0.580109 0.856506 0.706329 0.581116 0.856506 0.748413 0.581970 0.856384 0.787476 0.582886 0.856354 0.822815 0.583862 0.856323 0.854401 0.584747 0.856293 0.881683 0.584625 0.855194 0.906128 0.584564 0.854187 0.928070 0.584534 0.853271 0.948059 0.584595 0.852386 0.966187 0.584717 0.851562 0.982880 0.584778 0.850769 0.998383 0.584930 0.850098 1.000000 0.601562 0.846527 0.077362 0.620148 0.874725 0.122101 0.619873 0.873322 0.162720 0.619659 0.872070 0.198547 0.619537 0.870911 0.230133 0.619629 0.869904 0.258728 0.619781 0.868988 0.285034 0.619812 0.868073 0.310181 0.620087 0.867249 0.334686 0.620148 0.866364 0.359375 0.620239 0.865479 0.384918 0.620270 0.864563 0.411774 0.620148 0.863495 0.440399 0.619995 0.862366 0.471100 0.619659 0.861115 0.504150 0.619141 0.859680 0.540283 0.618561 0.858154 0.579651 0.617889 0.856537 0.621246 0.617401 0.855042 0.665039 0.618225 0.854950 0.708557 0.619141 0.854919 0.750031 0.620026 0.854858 0.788574 0.620911 0.854828 0.823364 0.621765 0.854797 0.854492 0.622620 0.854767 0.881439 0.622437 0.853668 0.905609 0.622314 0.852722 0.927399 0.622223 0.851807 0.947174 0.622223 0.850922 0.965210 0.622253 0.850189 0.981812 0.622284 0.849487 0.997284 0.622375 0.848816 1.000000 0.637817 0.846680 0.089813 0.662292 0.874573 0.133026 0.662079 0.873230 0.172028 0.661713 0.871948 0.206329 0.661499 0.870880 0.236633 0.661438 0.869873 0.264252 0.661499 0.868958 0.289917 0.661499 0.868073 0.314453 0.661591 0.867218 0.338776 0.661530 0.866364 0.363434 0.661560 0.865448 0.388916 0.661407 0.864471 0.415894 0.661255 0.863434 0.444489 0.660919 0.862244 0.475372 0.660553 0.860962 0.508423 0.659912 0.859497 0.544708 0.659210 0.857971 0.584076 0.658447 0.856323 0.625275 0.657684 0.854675 0.667542 0.657257 0.853424 0.710480 0.658081 0.853394 0.751526 0.658875 0.853363 0.789459 0.659729 0.853333 0.823761 0.660522 0.853302 0.854462 0.661316 0.853302 0.881104 0.660980 0.852234 0.905029 0.660797 0.851227 0.926605 0.660675 0.850342 0.946259 0.660553 0.849640 0.964172 0.660522 0.848907 0.980743 0.660553 0.848267 0.996185 0.660614 0.847656 1.000000 0.675293 0.847229 0.101532 0.704803 0.874420 0.143158 0.704468 0.873108 0.180450 0.703979 0.871857 0.213257 0.703857 0.870819 0.242462 0.703644 0.869843 0.269196 0.703522 0.868927 0.294342 0.703369 0.868073 0.318665 0.703308 0.867188 0.342896 0.703156 0.866302 0.367432 0.703094 0.865387 0.392975 0.702850 0.864380 0.419922 0.702545 0.863251 0.448639 0.702148 0.862061 0.479553 0.701660 0.860779 0.512665 0.700897 0.859253 0.549072 0.700134 0.857727 0.588379 0.699280 0.856140 0.629303 0.698395 0.854492 0.670868 0.697479 0.852905 0.712372 0.697205 0.851898 0.752838 0.697968 0.851868 0.790222 0.698700 0.851898 0.824036 0.699432 0.851898 0.854340 0.700073 0.851807 0.880646 0.699707 0.850769 0.904358 0.699432 0.849915 0.925781 0.699188 0.849121 0.945282 0.699097 0.848358 0.963196 0.699005 0.847748 0.979706 0.699463 0.847260 0.995056 0.699951 0.846863 1.000000 0.713043 0.847931 0.112274 0.746979 0.874237 0.152222 0.746338 0.872986 0.187897 0.745880 0.871826 0.219330 0.745392 0.870728 0.247772 0.745178 0.869812 0.273987 0.744965 0.868866 0.298767 0.744690 0.867950 0.322876 0.744507 0.867126 0.346924 0.744324 0.866211 0.371399 0.744110 0.865204 0.396942 0.743805 0.864197 0.423950 0.743347 0.863098 0.452728 0.742767 0.861847 0.483612 0.742126 0.860535 0.516815 0.741455 0.859070 0.553284 0.740540 0.857544 0.592499 0.739532 0.855988 0.633209 0.738525 0.854340 0.674408 0.737610 0.852783 0.714844 0.736694 0.851288 0.753967 0.736511 0.850494 0.790833 0.737122 0.850494 0.824219 0.737793 0.850525 0.854095 0.738281 0.850494 0.880157 0.737915 0.849487 0.903687 0.737549 0.848694 0.924957 0.737274 0.847900 0.944427 0.737549 0.847412 0.962219 0.737793 0.846954 0.978607 0.738129 0.846588 0.993927 0.738403 0.846222 1.000000 0.749847 0.848907 0.121887 0.787415 0.874115 0.160309 0.786926 0.872864 0.194672 0.786316 0.871735 0.225189 0.785858 0.870667 0.252991 0.785461 0.869690 0.278717 0.785156 0.868805 0.303131 0.784821 0.867859 0.326996 0.784515 0.866943 0.350922 0.784210 0.866028 0.375336 0.783783 0.865051 0.400879 0.783386 0.863983 0.427856 0.782898 0.862885 0.456665 0.782166 0.861664 0.487610 0.781433 0.860352 0.520813 0.780579 0.858917 0.557373 0.779572 0.857391 0.596375 0.778595 0.855804 0.636871 0.777496 0.854279 0.677673 0.776520 0.852753 0.717651 0.775482 0.851257 0.755646 0.774628 0.849854 0.791290 0.774445 0.849243 0.824280 0.775024 0.849335 0.853790 0.775391 0.849304 0.879608 0.774933 0.848389 0.903076 0.774933 0.847717 0.924255 0.774963 0.847229 0.943512 0.775024 0.846771 0.961151 0.775116 0.846375 0.977539 0.775269 0.846191 0.992828 0.775421 0.845947 1.000000 0.785217 0.849884 0.130524 0.826111 0.873962 0.167938 0.825165 0.872711 0.201233 0.824615 0.871552 0.230927 0.824127 0.870514 0.258026 0.823547 0.869537 0.283325 0.823181 0.868622 0.307404 0.822876 0.867737 0.331024 0.822357 0.866791 0.354828 0.821991 0.865814 0.379150 0.821442 0.864838 0.404694 0.820984 0.863831 0.431641 0.820404 0.862732 0.460480 0.819733 0.861511 0.491425 0.818939 0.860199 0.524658 0.817841 0.858765 0.561188 0.816833 0.857300 0.600098 0.815704 0.855774 0.640198 0.814636 0.854218 0.680634 0.813477 0.852722 0.720215 0.812469 0.851318 0.757690 0.811462 0.849976 0.792297 0.810638 0.848816 0.824158 0.810425 0.848297 0.853607 0.811005 0.848358 0.879272 0.810791 0.847656 0.902405 0.810638 0.847137 0.923370 0.810486 0.846680 0.942474 0.810455 0.846375 0.960083 0.810394 0.846130 0.976440 0.810364 0.845947 0.991791 0.810394 0.845825 1.000000 0.818573 0.851013 0.139008 0.861938 0.873749 0.175354 0.861023 0.872467 0.207611 0.860291 0.871399 0.236481 0.859680 0.870361 0.262970 0.859131 0.869354 0.287781 0.858765 0.868439 0.311523 0.858215 0.867493 0.334961 0.857697 0.866577 0.358612 0.857269 0.865662 0.382874 0.856598 0.864685 0.408386 0.856049 0.863678 0.435333 0.855438 0.862579 0.464111 0.854553 0.861359 0.494995 0.853577 0.860077 0.528351 0.852631 0.858704 0.564728 0.851532 0.857208 0.603455 0.850342 0.855713 0.643311 0.849213 0.854248 0.683380 0.848053 0.852814 0.722504 0.846985 0.851471 0.759552 0.845947 0.850220 0.794128 0.845276 0.849243 0.825226 0.844727 0.848358 0.853363 0.844452 0.847839 0.878662 0.844025 0.847260 0.901550 0.843750 0.846832 0.922363 0.843475 0.846466 0.941498 0.843292 0.846222 0.959076 0.843109 0.846039 0.975433 0.842987 0.845886 0.990784 0.842896 0.845734 1.000000 0.849579 0.852264 0.146332 0.893616 0.872711 0.181519 0.892761 0.871399 0.212830 0.891998 0.870361 0.240936 0.891357 0.869293 0.266815 0.890717 0.868286 0.291199 0.890198 0.867279 0.314636 0.889618 0.866455 0.337860 0.889038 0.865479 0.361328 0.888458 0.864624 0.385529 0.887817 0.863617 0.411011 0.887146 0.862579 0.437927 0.886383 0.861511 0.466705 0.885498 0.860352 0.497498 0.884491 0.859070 0.530792 0.883392 0.857635 0.567078 0.882263 0.856262 0.605499 0.881042 0.854797 0.644989 0.879822 0.853363 0.684692 0.878632 0.852020 0.723907 0.877655 0.850769 0.760864 0.876831 0.849731 0.794647 0.876099 0.848938 0.825134 0.875427 0.848145 0.852997 0.875031 0.847778 0.878876 0.875397 0.848145 0.901611 0.874939 0.847778 0.922333 0.874542 0.847473 0.941406 0.874268 0.847260 0.958984 0.873993 0.847107 0.975342 0.873718 0.846985 0.990662 0.873535 0.846924 1.000000 0.877838 0.853455 0.152985 0.921661 0.871216 0.187103 0.920776 0.870117 0.217438 0.919983 0.868958 0.244812 0.919312 0.867828 0.270172 0.918640 0.867004 0.294128 0.918030 0.865997 0.317322 0.917419 0.865082 0.340332 0.916809 0.864258 0.363647 0.916168 0.863342 0.387848 0.915527 0.862518 0.413239 0.914795 0.861359 0.440094 0.913971 0.860382 0.468842 0.913025 0.859100 0.499542 0.911987 0.857910 0.532776 0.910889 0.856537 0.568909 0.909668 0.855194 0.607086 0.908478 0.853851 0.646912 0.907349 0.852631 0.686584 0.906311 0.851410 0.724976 0.905334 0.850372 0.761139 0.904358 0.849457 0.794434 0.903534 0.848694 0.824615 0.902802 0.848083 0.852203 0.902252 0.847748 0.878082 0.902618 0.848297 0.901672 0.902985 0.848907 0.922424 0.902557 0.848724 0.941467 0.902161 0.848511 0.959015 0.901764 0.848358 0.975372 0.901489 0.848297 0.990662 0.901215 0.848267 1.000000 0.903473 0.854980 0.159363 0.946625 0.869873 0.192383 0.945740 0.868774 0.221832 0.944977 0.867706 0.248505 0.944244 0.866699 0.273346 0.943573 0.865784 0.296906 0.942932 0.864838 0.319824 0.942322 0.863983 0.342651 0.941742 0.863190 0.365875 0.941010 0.862244 0.389954 0.940308 0.861328 0.415253 0.939545 0.860321 0.442108 0.938690 0.859253 0.470764 0.937775 0.858215 0.501434 0.936707 0.856964 0.534485 0.935577 0.855682 0.571136 0.934448 0.854492 0.609528 0.933350 0.853333 0.648590 0.932190 0.852234 0.687469 0.931122 0.851196 0.725159 0.930084 0.850220 0.760895 0.929047 0.849426 0.793823 0.928192 0.848755 0.823853 0.927399 0.848175 0.851349 0.926788 0.847870 0.877197 0.927094 0.848480 0.900787 0.927338 0.849091 0.922333 0.927582 0.849731 0.941589 0.927307 0.849792 0.959167 0.926880 0.849701 0.975433 0.926544 0.849823 0.990692 0.926270 0.850006 1.000000 0.926605 0.856812 0.165375 0.969055 0.868713 0.197327 0.968201 0.867523 0.225922 0.967407 0.866364 0.252045 0.966675 0.865479 0.276367 0.966003 0.864685 0.299500 0.965332 0.863831 0.322205 0.964722 0.862915 0.344849 0.964020 0.862122 0.367920 0.963379 0.861145 0.391907 0.962677 0.860321 0.417114 0.961884 0.859436 0.443848 0.961060 0.858398 0.472473 0.960052 0.857330 0.503571 0.959076 0.856354 0.537140 0.958008 0.855255 0.573090 0.956879 0.854156 0.610748 0.955780 0.853119 0.649200 0.954590 0.852112 0.687531 0.953461 0.851166 0.724854 0.952393 0.850342 0.760345 0.951416 0.849609 0.793182 0.950500 0.848999 0.823120 0.949677 0.848480 0.850586 0.948975 0.848114 0.876526 0.949158 0.848816 0.900146 0.949341 0.849396 0.921783 0.949585 0.850128 0.941559 0.949799 0.850983 0.959351 0.949677 0.851501 0.975586 0.949310 0.851776 0.990723 0.948975 0.852081 1.000000 0.947449 0.858856 0.171051 0.989319 0.867371 0.201965 0.988464 0.866364 0.229736 0.987701 0.865356 0.255280 0.987030 0.864441 0.279175 0.986328 0.863556 0.301971 0.985718 0.862762 0.324341 0.985046 0.861969 0.346832 0.984406 0.861084 0.369720 0.983734 0.860382 0.393585 0.982971 0.859497 0.418701 0.982239 0.858643 0.445892 0.981354 0.857758 0.474945 0.980469 0.856995 0.505524 0.979462 0.856110 0.538544 0.978394 0.855164 0.573975 0.977264 0.854126 0.611084 0.976166 0.853210 0.649109 0.975037 0.852264 0.687195 0.973907 0.851410 0.724396 0.972778 0.850616 0.759766 0.971771 0.849915 0.792633 0.970825 0.849335 0.822662 0.969971 0.848877 0.850159 0.969238 0.848511 0.876129 0.969360 0.849182 0.899841 0.969482 0.850006 0.921417 0.969635 0.850983 0.941101 0.969788 0.851959 0.959198 0.969940 0.853027 0.975739 0.969910 0.853851 0.990784 0.969421 0.854034 1.000000 0.966400 0.860535 0.187286 1.000000 0.860138 0.215942 1.000000 0.859772 0.241821 1.000000 0.859497 0.265778 1.000000 0.859222 0.288177 1.000000 0.858978 0.309753 1.000000 0.858765 0.330994 1.000000 0.858612 0.352356 1.000000 0.858337 0.374237 1.000000 0.858093 0.397583 1.000000 0.857941 0.422119 1.000000 0.857788 0.447906 1.000000 0.857574 0.476288 0.999115 0.856781 0.506439 0.998108 0.856079 0.538971 0.997070 0.855133 0.574005 0.995972 0.854309 0.610870 0.994873 0.853455 0.648773 0.993713 0.852600 0.686768 0.992584 0.851776 0.723999 0.991486 0.850983 0.759521 0.990448 0.850311 0.792419 0.989502 0.849701 0.822601 0.988617 0.849304 0.850189 0.987854 0.849182 0.876190 0.987885 0.850067 0.899750 0.987976 0.851074 0.921173 0.988007 0.852142 0.940735 0.988068 0.853241 0.958771 0.988098 0.854126 0.975403 0.988190 0.854980 0.990784 0.988098 0.855621 1.000000 0.983826 0.861908 0.216736 1.000000 0.846222 0.244171 1.000000 0.846313 0.269012 1.000000 0.846466 0.292023 1.000000 0.846405 0.313690 1.000000 0.846619 0.334625 1.000000 0.846649 0.355286 1.000000 0.846802 0.376617 1.000000 0.847015 0.398438 1.000000 0.847351 0.420959 1.000000 0.847809 0.444550 1.000000 0.848328 0.469452 1.000000 0.848724 0.496002 1.000000 0.849213 0.524811 1.000000 0.849792 0.556488 1.000000 0.850220 0.590485 1.000000 0.850891 0.626282 1.000000 0.851440 0.663055 1.000000 0.852081 0.699860 1.000000 0.852783 0.735870 1.000000 0.853363 0.770142 1.000000 0.853943 0.801849 1.000000 0.854828 0.830780 1.000000 0.855713 0.857025 1.000000 0.856689 0.880798 1.000000 0.857697 0.902344 1.000000 0.858765 0.921967 1.000000 0.859650 0.939880 1.000000 0.860443 0.956451 1.000000 0.861176 0.971863 1.000000 0.861908 0.986298 1.000000 0.862549 1.000000 1.000000 0.863068 0.000000 0.024353 0.885132 0.021881 0.000000 0.905823 0.068451 0.000916 0.906586 0.112518 0.002502 0.906799 0.153137 0.004089 0.906982 0.190002 0.005646 0.907196 0.223114 0.007202 0.907410 0.252991 0.008698 0.907593 0.280762 0.010193 0.907745 0.307190 0.011749 0.907928 0.332855 0.013275 0.908112 0.358765 0.014893 0.908234 0.385651 0.016449 0.908447 0.413818 0.018066 0.908600 0.443970 0.019806 0.908691 0.476929 0.021515 0.908875 0.513519 0.023315 0.908997 0.554932 0.025269 0.909088 0.600861 0.027191 0.909210 0.649933 0.029266 0.909363 0.699799 0.031219 0.909454 0.748657 0.033081 0.909515 0.794403 0.035126 0.909607 0.835541 0.037109 0.909698 0.872009 0.039185 0.909729 0.903870 0.041351 0.909821 0.931061 0.042480 0.908936 0.954895 0.043488 0.908142 0.976105 0.044617 0.907288 0.995117 0.045837 0.906464 1.000000 0.065826 0.894226 1.000000 0.092041 0.879303 0.000000 0.059326 0.886108 0.020416 0.036194 0.906219 0.066620 0.037109 0.905914 0.110626 0.038574 0.906158 0.151764 0.040039 0.906342 0.188721 0.041473 0.906555 0.221832 0.042969 0.906738 0.251831 0.044403 0.906891 0.279572 0.045837 0.907104 0.305969 0.047363 0.907227 0.331696 0.048859 0.907410 0.357574 0.050446 0.907562 0.384399 0.051971 0.907684 0.412872 0.053650 0.907837 0.443817 0.055420 0.907990 0.477356 0.057220 0.908112 0.514343 0.059082 0.908203 0.556366 0.061127 0.908356 0.602661 0.062927 0.908447 0.651550 0.064728 0.908539 0.701569 0.066589 0.908600 0.750305 0.068512 0.908630 0.795898 0.070496 0.908722 0.836548 0.072571 0.908813 0.872528 0.074646 0.908875 0.904175 0.076782 0.908936 0.931030 0.077820 0.908142 0.954620 0.078857 0.907288 0.975616 0.079987 0.906311 0.994476 0.081116 0.905457 1.000000 0.099609 0.894196 1.000000 0.125122 0.879700 0.000000 0.094543 0.886322 0.019867 0.072876 0.906738 0.065186 0.072723 0.905548 0.109253 0.073822 0.905457 0.150269 0.075134 0.905670 0.187347 0.076508 0.905853 0.220612 0.077911 0.906036 0.250458 0.079285 0.906189 0.278351 0.080780 0.906372 0.304688 0.082275 0.906525 0.330536 0.083710 0.906677 0.356842 0.085358 0.906830 0.384094 0.086914 0.906952 0.413177 0.088684 0.907074 0.444550 0.090454 0.907227 0.478546 0.092346 0.907349 0.516022 0.094177 0.907440 0.558289 0.095825 0.907532 0.604889 0.097595 0.907623 0.654022 0.099426 0.907654 0.703857 0.101318 0.907745 0.752533 0.103210 0.907837 0.797546 0.105255 0.907867 0.837799 0.107208 0.907928 0.873352 0.109283 0.907990 0.904602 0.111389 0.908081 0.931122 0.112366 0.907166 0.954468 0.113312 0.906311 0.975189 0.114410 0.905334 0.993896 0.115448 0.904694 1.000000 0.132507 0.893951 1.000000 0.157196 0.879852 0.000000 0.128418 0.886597 0.019836 0.108704 0.907196 0.065155 0.108490 0.905975 0.107910 0.108124 0.904785 0.148987 0.109375 0.904999 0.186035 0.110779 0.905182 0.219208 0.112091 0.905396 0.249237 0.113464 0.905487 0.277039 0.114960 0.905640 0.303894 0.116425 0.905823 0.330261 0.117981 0.905945 0.356995 0.119598 0.906067 0.384644 0.121277 0.906219 0.414185 0.123047 0.906342 0.445801 0.124817 0.906433 0.480164 0.126343 0.906525 0.518097 0.128052 0.906586 0.560852 0.129822 0.906677 0.607697 0.131561 0.906769 0.656982 0.133423 0.906799 0.706909 0.135345 0.906891 0.755035 0.137207 0.906952 0.799683 0.139160 0.907013 0.839325 0.141083 0.907043 0.874390 0.143127 0.907104 0.905029 0.145111 0.907166 0.931213 0.145966 0.906311 0.954285 0.146881 0.905426 0.974823 0.147827 0.904358 0.993317 0.148804 0.903748 1.000000 0.164398 0.893921 1.000000 0.188416 0.880035 0.000000 0.161316 0.887054 0.019836 0.143585 0.907654 0.065125 0.143341 0.906433 0.107880 0.142853 0.905273 0.147675 0.142883 0.904266 0.184845 0.144226 0.904480 0.217865 0.145599 0.904602 0.248444 0.146942 0.904785 0.276794 0.148438 0.904938 0.304077 0.149963 0.905060 0.330872 0.151550 0.905182 0.357971 0.153259 0.905304 0.386017 0.154846 0.905426 0.415680 0.156372 0.905518 0.447754 0.158020 0.905579 0.482605 0.159576 0.905670 0.520782 0.161316 0.905762 0.564117 0.163055 0.905823 0.611206 0.164795 0.905884 0.660492 0.166656 0.905945 0.709930 0.168457 0.906006 0.757843 0.170319 0.906036 0.801849 0.172241 0.906128 0.840820 0.174103 0.906189 0.875336 0.175995 0.906250 0.905609 0.177917 0.906311 0.931366 0.178650 0.905334 0.954102 0.179443 0.904358 0.974426 0.180298 0.903595 0.992737 0.181183 0.902740 1.000000 0.195374 0.893707 1.000000 0.218597 0.880066 0.000000 0.193481 0.887482 0.019806 0.177551 0.908112 0.065125 0.177338 0.906830 0.107880 0.177002 0.905701 0.147430 0.176697 0.904541 0.183990 0.176971 0.903748 0.217957 0.178375 0.903900 0.248840 0.179779 0.904022 0.277649 0.181305 0.904175 0.305267 0.182892 0.904266 0.332245 0.184418 0.904419 0.359558 0.185883 0.904541 0.387756 0.187317 0.904572 0.417847 0.188934 0.904663 0.450317 0.190521 0.904755 0.485535 0.192139 0.904816 0.524323 0.193787 0.904907 0.568054 0.195526 0.904968 0.615234 0.197205 0.905029 0.664551 0.199036 0.905060 0.713684 0.200745 0.905151 0.760742 0.202576 0.905212 0.804138 0.204346 0.905273 0.842590 0.206116 0.905273 0.876373 0.207977 0.905334 0.906189 0.209717 0.905396 0.931488 0.210327 0.904419 0.953918 0.210999 0.903473 0.974030 0.211761 0.902618 0.992157 0.212463 0.901825 1.000000 0.225281 0.893677 1.000000 0.247833 0.880310 0.000000 0.224670 0.887878 0.019745 0.210754 0.908478 0.065094 0.210327 0.907227 0.108459 0.210236 0.906006 0.149078 0.210022 0.904877 0.185913 0.210022 0.903809 0.219269 0.210449 0.903168 0.250427 0.211914 0.903290 0.279358 0.213409 0.903442 0.306885 0.214722 0.903473 0.333954 0.216125 0.903595 0.361572 0.217651 0.903687 0.390137 0.219086 0.903748 0.420654 0.220673 0.903839 0.453491 0.222260 0.903931 0.489014 0.223816 0.903992 0.528442 0.225464 0.904053 0.572235 0.227142 0.904083 0.619629 0.228821 0.904205 0.668671 0.230530 0.904236 0.717438 0.232178 0.904266 0.763885 0.233917 0.904297 0.806427 0.235626 0.904358 0.844116 0.237244 0.904419 0.877502 0.238922 0.904419 0.906738 0.240540 0.904388 0.931641 0.241058 0.903351 0.953766 0.241638 0.902618 0.973602 0.242188 0.901703 0.991577 0.242828 0.900970 1.000000 0.254364 0.893341 1.000000 0.276245 0.880463 0.000000 0.255127 0.888275 0.020416 0.243195 0.908844 0.067139 0.242798 0.907562 0.111389 0.242645 0.906311 0.152283 0.242432 0.905151 0.189331 0.242401 0.904053 0.222382 0.242584 0.903076 0.252594 0.243164 0.902496 0.281433 0.244476 0.902588 0.309113 0.245850 0.902679 0.336426 0.247314 0.902740 0.364288 0.248749 0.902832 0.393127 0.250244 0.902924 0.423981 0.251770 0.903015 0.457062 0.253357 0.903076 0.493042 0.254913 0.903107 0.532806 0.256531 0.903198 0.577057 0.258118 0.903259 0.624420 0.259766 0.903320 0.673157 0.261383 0.903320 0.721191 0.262970 0.903381 0.767029 0.264557 0.903442 0.808777 0.266174 0.903442 0.845734 0.267731 0.903534 0.878418 0.269318 0.903564 0.907166 0.270721 0.903412 0.931671 0.271088 0.902588 0.953522 0.271576 0.901550 0.973145 0.272034 0.900757 0.990967 0.272583 0.899933 1.000000 0.282745 0.893250 1.000000 0.303986 0.880554 0.000000 0.284576 0.890411 0.023895 0.275085 0.909119 0.071198 0.274719 0.907776 0.115784 0.274445 0.906525 0.156952 0.274445 0.905334 0.193634 0.274323 0.904205 0.226288 0.274384 0.903229 0.256165 0.274567 0.902313 0.284302 0.275269 0.901733 0.312042 0.276642 0.901855 0.339417 0.278076 0.901917 0.367340 0.279541 0.902039 0.396576 0.281036 0.902100 0.427582 0.282501 0.902130 0.461121 0.284027 0.902161 0.497375 0.285583 0.902252 0.537628 0.287140 0.902313 0.581909 0.288635 0.902344 0.629059 0.290192 0.902405 0.677429 0.291779 0.902466 0.724945 0.293274 0.902496 0.770081 0.294800 0.902557 0.810974 0.296326 0.902588 0.847198 0.297729 0.902588 0.879272 0.299225 0.902649 0.907440 0.300415 0.902435 0.931641 0.300751 0.901581 0.953247 0.301086 0.900696 0.972687 0.301514 0.899780 0.990326 0.301880 0.899109 1.000000 0.310913 0.892883 1.000000 0.331512 0.880646 0.000000 0.313202 0.894440 0.029297 0.306702 0.909302 0.077057 0.306335 0.907928 0.121490 0.306061 0.906647 0.162231 0.305847 0.905426 0.198639 0.305786 0.904297 0.231079 0.305908 0.903320 0.260712 0.306244 0.902435 0.288391 0.306519 0.901550 0.315399 0.307281 0.901001 0.342896 0.308716 0.901062 0.370941 0.310181 0.901093 0.400360 0.311646 0.901154 0.431732 0.313141 0.901245 0.465363 0.314606 0.901306 0.501862 0.316071 0.901337 0.542389 0.317596 0.901398 0.586884 0.319031 0.901459 0.633881 0.320526 0.901489 0.681702 0.321991 0.901520 0.728607 0.323425 0.901581 0.772858 0.324860 0.901611 0.812988 0.326233 0.901642 0.848450 0.327576 0.901672 0.880005 0.328949 0.901703 0.907654 0.329926 0.901520 0.931519 0.330170 0.900543 0.952850 0.330444 0.899689 0.972137 0.330780 0.898773 0.989685 0.331116 0.897949 1.000000 0.338959 0.892578 1.000000 0.359039 0.880646 0.000000 0.342163 0.899902 0.036072 0.338257 0.909393 0.083740 0.337799 0.908020 0.128052 0.337555 0.906708 0.168518 0.337433 0.905487 0.204437 0.337433 0.904388 0.236481 0.337677 0.903412 0.265778 0.337921 0.902496 0.293243 0.338318 0.901642 0.319794 0.338715 0.900757 0.346558 0.339478 0.900146 0.374725 0.340851 0.900208 0.404388 0.342285 0.900269 0.435974 0.343750 0.900330 0.469849 0.345154 0.900391 0.506592 0.346619 0.900421 0.547394 0.348083 0.900452 0.591766 0.349457 0.900513 0.638519 0.350861 0.900543 0.685852 0.352234 0.900543 0.731995 0.353577 0.900604 0.775299 0.354919 0.900635 0.814728 0.356201 0.900665 0.849609 0.357422 0.900665 0.880554 0.358643 0.900696 0.907684 0.359497 0.900452 0.931335 0.359711 0.899414 0.952484 0.359955 0.898621 0.971558 0.360168 0.897675 0.989014 0.360443 0.896851 1.000000 0.367188 0.892212 1.000000 0.386719 0.880707 0.000000 0.371429 0.906158 0.044220 0.369965 0.909393 0.091827 0.369629 0.908020 0.135773 0.369324 0.906708 0.175659 0.369293 0.905518 0.210907 0.369415 0.904419 0.242340 0.369568 0.903473 0.271210 0.369995 0.902527 0.298431 0.370270 0.901672 0.324799 0.370697 0.900818 0.351318 0.371277 0.899902 0.378754 0.371826 0.899261 0.408600 0.373260 0.899323 0.440216 0.374634 0.899353 0.474304 0.375977 0.899384 0.511230 0.377380 0.899414 0.552277 0.378754 0.899475 0.596405 0.380066 0.899475 0.642853 0.381378 0.899536 0.689545 0.382629 0.899567 0.734985 0.383911 0.899628 0.777496 0.385101 0.899597 0.815948 0.386261 0.899658 0.850372 0.387390 0.899658 0.880890 0.388580 0.899658 0.907715 0.389343 0.899384 0.931122 0.389465 0.898315 0.952057 0.389679 0.897369 0.971008 0.389893 0.896576 0.988251 0.390198 0.895660 1.000000 0.395691 0.891815 1.000000 0.414703 0.880615 0.003510 0.402405 0.910828 0.053711 0.402069 0.909363 0.100952 0.401672 0.907990 0.144318 0.401550 0.906708 0.183350 0.401550 0.905457 0.217743 0.401642 0.904419 0.248505 0.402008 0.903442 0.276917 0.402344 0.902557 0.303741 0.402832 0.901703 0.329956 0.403259 0.900818 0.356415 0.403595 0.899902 0.383636 0.403961 0.898987 0.412750 0.404541 0.898254 0.444550 0.405914 0.898285 0.478882 0.407166 0.898376 0.515839 0.408478 0.898376 0.556824 0.409790 0.898438 0.600922 0.411041 0.898438 0.646759 0.412231 0.898468 0.692841 0.413422 0.898499 0.737396 0.414551 0.898529 0.779266 0.415680 0.898560 0.817261 0.416718 0.898560 0.851074 0.417786 0.898560 0.881287 0.418915 0.898529 0.907684 0.419586 0.898132 0.930847 0.419739 0.897156 0.951569 0.419861 0.896179 0.970337 0.420074 0.895294 0.987518 0.420319 0.894501 1.000000 0.424683 0.891327 1.000000 0.443146 0.880646 0.014404 0.434967 0.910767 0.064301 0.434631 0.909302 0.110931 0.434601 0.907867 0.153442 0.434387 0.906616 0.191345 0.434479 0.905457 0.224792 0.434784 0.904419 0.254822 0.435028 0.903473 0.282715 0.435364 0.902557 0.309174 0.435822 0.901703 0.335236 0.436157 0.900848 0.361572 0.436615 0.899933 0.388794 0.436829 0.898987 0.417603 0.437073 0.897980 0.448792 0.437622 0.897217 0.483063 0.438843 0.897278 0.520050 0.440094 0.897278 0.560944 0.441254 0.897308 0.604706 0.442444 0.897339 0.649994 0.443542 0.897400 0.695557 0.444580 0.897369 0.739655 0.445679 0.897400 0.781067 0.446716 0.897400 0.818298 0.447754 0.897369 0.851746 0.448792 0.897308 0.881439 0.449829 0.897278 0.907623 0.450409 0.896820 0.930450 0.450531 0.895844 0.951050 0.450653 0.894928 0.969635 0.450806 0.894104 0.986694 0.451050 0.893341 1.000000 0.454193 0.890808 1.000000 0.472198 0.880707 0.026367 0.468414 0.910583 0.075653 0.468231 0.909149 0.121429 0.468018 0.907776 0.162781 0.468048 0.906555 0.199493 0.468048 0.905396 0.231842 0.468414 0.904327 0.261230 0.468597 0.903412 0.288544 0.468933 0.902557 0.314636 0.469452 0.901672 0.340454 0.469788 0.900818 0.366638 0.470062 0.899933 0.393829 0.470428 0.898956 0.422546 0.470551 0.897919 0.453339 0.470612 0.896759 0.486938 0.471130 0.896118 0.523804 0.472198 0.896118 0.564575 0.473358 0.896179 0.608032 0.474365 0.896149 0.653168 0.475403 0.896179 0.698151 0.476379 0.896179 0.741821 0.477417 0.896149 0.782562 0.478455 0.896088 0.819427 0.479401 0.896057 0.852325 0.480408 0.896027 0.881653 0.481384 0.895966 0.907440 0.481903 0.895447 0.930054 0.481995 0.894531 0.950409 0.482147 0.893646 0.968903 0.482269 0.892792 0.985870 0.482452 0.891937 1.000000 0.484436 0.890228 1.000000 0.501862 0.880615 0.038940 0.502655 0.910431 0.087494 0.502502 0.909027 0.132080 0.502411 0.907684 0.172180 0.502350 0.906403 0.207520 0.502502 0.905334 0.238892 0.502747 0.904327 0.267517 0.503021 0.903381 0.294250 0.503418 0.902527 0.319946 0.503754 0.901672 0.345520 0.504150 0.900818 0.371552 0.504456 0.899902 0.398621 0.504639 0.898926 0.427277 0.504700 0.897888 0.457916 0.504700 0.896698 0.490753 0.504486 0.895447 0.527191 0.505005 0.894867 0.567871 0.506012 0.894897 0.611328 0.506958 0.894897 0.656128 0.507996 0.894867 0.700836 0.508942 0.894836 0.743958 0.509918 0.894775 0.784058 0.510925 0.894745 0.820312 0.511841 0.894684 0.852722 0.512817 0.894653 0.881775 0.513733 0.894623 0.907135 0.514160 0.894104 0.929504 0.514252 0.893158 0.949707 0.514343 0.892242 0.968048 0.514496 0.891388 0.984924 0.514679 0.890533 1.000000 0.515503 0.889496 1.000000 0.533234 0.880646 0.052002 0.539124 0.910217 0.099335 0.538910 0.908813 0.142761 0.538788 0.907501 0.181366 0.538849 0.906311 0.215424 0.538879 0.905243 0.245728 0.539124 0.904266 0.273529 0.539520 0.903351 0.299744 0.539856 0.902527 0.325012 0.540039 0.901703 0.350342 0.540375 0.900787 0.376129 0.540680 0.899872 0.403046 0.540680 0.898895 0.431549 0.540649 0.897858 0.462128 0.540588 0.896637 0.495026 0.540283 0.895355 0.530823 0.539886 0.893890 0.571350 0.540588 0.893524 0.614471 0.541534 0.893494 0.659027 0.542542 0.893433 0.703217 0.543488 0.893402 0.745758 0.544434 0.893372 0.785400 0.545380 0.893311 0.821045 0.546295 0.893280 0.853088 0.547272 0.893250 0.881622 0.548187 0.893188 0.906769 0.548615 0.892639 0.928894 0.548615 0.891693 0.948944 0.548706 0.890808 0.967194 0.548798 0.890015 0.983917 0.548981 0.889160 0.999451 0.549133 0.888489 1.000000 0.566681 0.880768 0.065125 0.578186 0.910034 0.111237 0.577789 0.908661 0.153107 0.577789 0.907349 0.190125 0.577728 0.906219 0.222931 0.577850 0.905151 0.252228 0.578003 0.904236 0.279266 0.578247 0.903351 0.304871 0.578491 0.902466 0.329712 0.578796 0.901672 0.354706 0.578857 0.900757 0.380310 0.579010 0.899872 0.407135 0.579071 0.898865 0.435699 0.578979 0.897797 0.466370 0.578735 0.896545 0.499329 0.578400 0.895203 0.535339 0.577881 0.893738 0.574615 0.577301 0.892181 0.617615 0.578156 0.892029 0.661774 0.579132 0.891998 0.705475 0.580017 0.891937 0.747528 0.580933 0.891907 0.786560 0.581879 0.891876 0.821747 0.582764 0.891846 0.853241 0.583679 0.891785 0.881531 0.584595 0.891754 0.906311 0.584930 0.891144 0.928223 0.584900 0.890259 0.948090 0.584900 0.889465 0.966217 0.585022 0.888641 0.982910 0.585144 0.887878 0.998383 0.585266 0.887207 1.000000 0.601868 0.880890 0.077972 0.619080 0.909821 0.122681 0.618774 0.908478 0.162811 0.618591 0.907196 0.198456 0.618469 0.906097 0.229919 0.618622 0.905121 0.258270 0.618713 0.904175 0.284515 0.618896 0.903320 0.309570 0.618988 0.902466 0.334015 0.619110 0.901642 0.358734 0.619080 0.900726 0.384338 0.619141 0.899811 0.411194 0.619080 0.898743 0.439850 0.618835 0.897675 0.470551 0.618561 0.896423 0.503601 0.618073 0.895050 0.539764 0.617493 0.893555 0.579071 0.616852 0.891998 0.620605 0.616272 0.890564 0.664368 0.617157 0.890503 0.707611 0.618011 0.890472 0.749176 0.618896 0.890442 0.787567 0.619781 0.890411 0.822235 0.620667 0.890381 0.853394 0.621521 0.890350 0.881317 0.622406 0.890320 0.905762 0.622620 0.889679 0.927490 0.622559 0.888885 0.947235 0.622498 0.888000 0.965240 0.622528 0.887299 0.981842 0.622589 0.886505 0.997284 0.622711 0.885834 1.000000 0.638123 0.881073 0.090332 0.661224 0.909576 0.133423 0.660919 0.908264 0.172028 0.660553 0.907104 0.206024 0.660370 0.905975 0.236328 0.660492 0.905029 0.263672 0.660370 0.904114 0.289246 0.660400 0.903290 0.313812 0.660400 0.902405 0.338074 0.660431 0.901550 0.362793 0.660370 0.900635 0.388336 0.660278 0.899719 0.415253 0.660095 0.898682 0.443970 0.659821 0.897522 0.474792 0.659424 0.896271 0.507935 0.658752 0.894867 0.544250 0.658081 0.893372 0.583466 0.657318 0.891815 0.624664 0.656464 0.890259 0.666840 0.656128 0.889038 0.709656 0.656921 0.889008 0.750580 0.657745 0.888977 0.788452 0.658539 0.888947 0.822601 0.659363 0.888916 0.853363 0.660156 0.888916 0.880920 0.660950 0.888916 0.905151 0.661072 0.888245 0.926727 0.660919 0.887451 0.946289 0.660858 0.886597 0.964233 0.660828 0.885986 0.980743 0.660828 0.885315 0.996185 0.661102 0.884735 1.000000 0.675842 0.881531 0.101868 0.703735 0.909424 0.143372 0.703217 0.908112 0.180298 0.702759 0.906952 0.212891 0.702545 0.905884 0.241974 0.702454 0.904968 0.268585 0.702393 0.904053 0.293732 0.702301 0.903198 0.318054 0.702179 0.902313 0.342133 0.702026 0.901489 0.366791 0.701843 0.900543 0.392334 0.701660 0.899567 0.419281 0.701324 0.898499 0.448120 0.700928 0.897339 0.478973 0.700317 0.896088 0.512146 0.699768 0.894684 0.548584 0.698944 0.893188 0.587677 0.697998 0.891663 0.628601 0.697205 0.890106 0.670105 0.696259 0.888550 0.711456 0.696045 0.887573 0.751862 0.696777 0.887543 0.789246 0.697540 0.887543 0.822876 0.698181 0.887543 0.853241 0.698975 0.887543 0.880554 0.699646 0.887573 0.904449 0.699646 0.886932 0.925903 0.699493 0.886169 0.945343 0.699310 0.885437 0.963196 0.699463 0.884857 0.979706 0.700012 0.884338 0.995056 0.700378 0.883820 1.000000 0.713470 0.882141 0.112488 0.745544 0.909210 0.152283 0.745056 0.907959 0.187592 0.744476 0.906860 0.218903 0.744293 0.905823 0.247253 0.743958 0.904846 0.273376 0.743744 0.903961 0.298157 0.743469 0.903107 0.322235 0.743408 0.902222 0.346222 0.743103 0.901337 0.370789 0.742828 0.900391 0.396271 0.742523 0.899384 0.423309 0.742096 0.898346 0.452179 0.741608 0.897186 0.483063 0.740967 0.895905 0.516266 0.740112 0.894501 0.552734 0.739227 0.893036 0.591797 0.738312 0.891510 0.632477 0.737274 0.889954 0.673584 0.736328 0.888397 0.713867 0.735474 0.886932 0.752930 0.735291 0.886200 0.789764 0.735931 0.886200 0.823059 0.736542 0.886230 0.853058 0.737213 0.886261 0.880066 0.737885 0.886383 0.903748 0.737793 0.885773 0.925079 0.737732 0.885101 0.944458 0.737976 0.884430 0.962219 0.738220 0.883942 0.978638 0.738525 0.883514 0.993927 0.738800 0.883148 1.000000 0.750214 0.882874 0.121857 0.786194 0.909058 0.160156 0.785492 0.907806 0.194305 0.785034 0.906708 0.224792 0.784546 0.905670 0.252472 0.784149 0.904724 0.278076 0.783813 0.903839 0.302490 0.783478 0.902954 0.326263 0.783295 0.902100 0.350220 0.782867 0.901184 0.374695 0.782593 0.900238 0.400146 0.782074 0.899261 0.427246 0.781555 0.898193 0.456085 0.780914 0.897034 0.486969 0.780212 0.895721 0.520264 0.779358 0.894348 0.556702 0.778351 0.892883 0.595673 0.777344 0.891357 0.636078 0.776245 0.889832 0.676788 0.775177 0.888336 0.716705 0.774231 0.886902 0.754547 0.773285 0.885590 0.790161 0.773193 0.884949 0.823059 0.773743 0.885040 0.852753 0.774323 0.885132 0.879578 0.775055 0.885223 0.903168 0.775269 0.884796 0.924347 0.775269 0.884186 0.943542 0.775360 0.883698 0.961182 0.775452 0.883270 0.977509 0.775604 0.882904 0.992828 0.775696 0.882629 1.000000 0.785522 0.883636 0.130585 0.824677 0.908844 0.167786 0.823914 0.907623 0.200836 0.823242 0.906555 0.230499 0.822723 0.905518 0.257538 0.822266 0.904572 0.282684 0.821899 0.903687 0.306732 0.821625 0.902802 0.330292 0.821106 0.901917 0.354095 0.820648 0.901001 0.378510 0.820312 0.900085 0.403961 0.819733 0.899109 0.431030 0.819153 0.898041 0.459900 0.818451 0.896881 0.490753 0.817535 0.895599 0.524109 0.816620 0.894196 0.560516 0.815582 0.892761 0.599304 0.814392 0.891235 0.639404 0.813263 0.889771 0.679688 0.812256 0.888336 0.719147 0.811157 0.886932 0.756592 0.810211 0.885651 0.791107 0.809357 0.884491 0.823090 0.809235 0.883972 0.852661 0.810089 0.884186 0.879211 0.810852 0.884491 0.902496 0.810913 0.884064 0.923370 0.810791 0.883606 0.942505 0.810699 0.883148 0.960083 0.810638 0.882782 0.976440 0.810608 0.882507 0.991760 0.810638 0.882141 1.000000 0.818878 0.884491 0.138977 0.860565 0.908630 0.175171 0.859680 0.907440 0.207153 0.859009 0.906342 0.236023 0.858429 0.905365 0.262329 0.857849 0.904388 0.287079 0.857330 0.903503 0.310852 0.856934 0.902618 0.334198 0.856506 0.901764 0.357880 0.855927 0.900879 0.382233 0.855408 0.899933 0.407654 0.854797 0.898956 0.434631 0.854034 0.897888 0.463501 0.853241 0.896729 0.494324 0.852356 0.895477 0.527679 0.851318 0.894073 0.563934 0.850189 0.892670 0.602600 0.849060 0.891235 0.642426 0.847900 0.889771 0.682343 0.846741 0.888367 0.721375 0.845642 0.887085 0.758575 0.844727 0.885834 0.792999 0.844086 0.884857 0.824036 0.843567 0.884003 0.852325 0.843475 0.883545 0.878540 0.844055 0.883881 0.901611 0.843964 0.883575 0.922363 0.843719 0.883118 0.941498 0.843475 0.882751 0.959045 0.843323 0.882416 0.975433 0.843170 0.882141 0.990784 0.843109 0.881897 1.000000 0.849823 0.885437 0.147247 0.893097 0.908356 0.182220 0.892242 0.907196 0.213257 0.891449 0.906128 0.241302 0.890869 0.905151 0.267090 0.890289 0.904236 0.291412 0.889648 0.903351 0.314850 0.889191 0.902496 0.338013 0.888702 0.901642 0.361511 0.888123 0.900757 0.385773 0.887421 0.899841 0.411163 0.886780 0.898804 0.438080 0.886017 0.897766 0.466919 0.885132 0.896606 0.497681 0.884186 0.895386 0.530975 0.883057 0.894043 0.567200 0.881958 0.892670 0.605621 0.880768 0.891266 0.645081 0.879547 0.889893 0.684875 0.878448 0.888580 0.724060 0.877533 0.887421 0.760803 0.876617 0.886322 0.794403 0.875916 0.885406 0.824921 0.875244 0.884613 0.852539 0.874664 0.883972 0.877655 0.874329 0.883545 0.900635 0.874084 0.883240 0.921417 0.873688 0.882812 0.940460 0.873413 0.882507 0.958099 0.873169 0.882233 0.974487 0.872925 0.881989 0.989838 0.872711 0.881805 1.000000 0.878082 0.886353 0.154449 0.921722 0.907654 0.188354 0.920807 0.906403 0.218445 0.920044 0.905396 0.245758 0.919342 0.904449 0.270996 0.918701 0.903412 0.294830 0.918091 0.902618 0.317993 0.917480 0.901703 0.340942 0.916840 0.900879 0.364288 0.916260 0.899994 0.388458 0.915588 0.899048 0.413788 0.914856 0.898071 0.440674 0.914001 0.897064 0.469360 0.913086 0.895874 0.500061 0.912079 0.894775 0.533325 0.910889 0.893402 0.569366 0.909729 0.892059 0.607758 0.908569 0.890778 0.647583 0.907471 0.889526 0.687042 0.906433 0.888306 0.725250 0.905426 0.887238 0.761383 0.904480 0.886230 0.794556 0.903687 0.885437 0.824677 0.902924 0.884644 0.852112 0.902252 0.884094 0.876984 0.901703 0.883545 0.900330 0.901794 0.883728 0.921143 0.901398 0.883392 0.940247 0.901001 0.883148 0.957855 0.900665 0.882904 0.974213 0.900360 0.882629 0.989594 0.900116 0.882538 1.000000 0.903687 0.887543 0.160767 0.946655 0.906281 0.193481 0.945740 0.905182 0.222778 0.945007 0.904205 0.249451 0.944305 0.903168 0.274109 0.943604 0.902283 0.297607 0.942993 0.901398 0.320465 0.942352 0.900574 0.343262 0.941742 0.899811 0.366486 0.941071 0.898865 0.390533 0.940369 0.898041 0.415833 0.939575 0.897064 0.442657 0.938721 0.896088 0.471222 0.937775 0.894958 0.501862 0.936737 0.893799 0.535156 0.935608 0.892548 0.571747 0.934509 0.891327 0.610016 0.933411 0.890198 0.648987 0.932312 0.889008 0.687744 0.931183 0.887909 0.725372 0.930176 0.886932 0.760986 0.929169 0.885986 0.793884 0.928253 0.885193 0.823914 0.927490 0.884552 0.851227 0.926788 0.884003 0.876190 0.926117 0.883484 0.899506 0.926117 0.883728 0.921112 0.926422 0.884186 0.940399 0.926147 0.884125 0.958008 0.925812 0.883911 0.974365 0.925507 0.883881 0.989655 0.925262 0.883942 1.000000 0.926727 0.888977 0.166687 0.969055 0.905121 0.198395 0.968201 0.903900 0.226837 0.967407 0.902954 0.252869 0.966675 0.902039 0.277069 0.966034 0.901215 0.300201 0.965363 0.900360 0.322845 0.964752 0.899506 0.345367 0.964081 0.898804 0.368500 0.963409 0.897949 0.392456 0.962708 0.897034 0.417572 0.961884 0.896149 0.444336 0.961060 0.895233 0.472961 0.960083 0.894196 0.504150 0.959137 0.893097 0.537659 0.958069 0.891968 0.573517 0.956970 0.890961 0.611023 0.955780 0.889740 0.649384 0.954681 0.888763 0.687653 0.953552 0.887756 0.724945 0.952484 0.886810 0.760406 0.951508 0.885986 0.793274 0.950562 0.885193 0.823181 0.949738 0.884552 0.850555 0.948944 0.884033 0.875519 0.948273 0.883575 0.898926 0.948181 0.883789 0.920563 0.948456 0.884277 0.940399 0.948669 0.884979 0.958221 0.948547 0.885345 0.974487 0.948212 0.885406 0.989685 0.947906 0.885468 1.000000 0.947632 0.890503 0.172302 0.989288 0.903870 0.202942 0.988464 0.902924 0.230652 0.987701 0.901855 0.256073 0.987000 0.901001 0.279816 0.986359 0.900269 0.302582 0.985687 0.899445 0.324921 0.985046 0.898682 0.347321 0.984436 0.897827 0.370239 0.983734 0.897156 0.394012 0.983002 0.896332 0.419220 0.982239 0.895477 0.446533 0.981384 0.894501 0.475403 0.980499 0.893738 0.505951 0.979492 0.892670 0.538818 0.978455 0.891724 0.574188 0.977325 0.890717 0.611267 0.976166 0.889618 0.649261 0.975037 0.888672 0.687256 0.973938 0.887695 0.724487 0.972809 0.886749 0.759888 0.971832 0.885986 0.792725 0.970856 0.885315 0.822784 0.970001 0.884705 0.850220 0.969238 0.884125 0.875305 0.968536 0.883728 0.898682 0.968353 0.884125 0.920258 0.968567 0.884827 0.939972 0.968719 0.885590 0.958130 0.968903 0.886414 0.974640 0.968811 0.886932 0.989716 0.968384 0.886902 1.000000 0.966461 0.891693 0.188324 1.000000 0.896088 0.216827 1.000000 0.895721 0.242645 1.000000 0.895508 0.266449 1.000000 0.895416 0.288757 1.000000 0.895203 0.310333 1.000000 0.894989 0.331482 1.000000 0.894897 0.352814 1.000000 0.894623 0.374725 1.000000 0.894501 0.398132 1.000000 0.894501 0.422577 1.000000 0.894287 0.448303 1.000000 0.894165 0.476593 0.999115 0.893433 0.506622 0.998138 0.892548 0.539154 0.997101 0.891602 0.574127 0.995972 0.890594 0.610962 0.994873 0.889709 0.648865 0.993744 0.888733 0.686859 0.992615 0.887756 0.724182 0.991516 0.886932 0.759674 0.990448 0.886108 0.792603 0.989502 0.885437 0.822815 0.988647 0.884888 0.850342 0.987823 0.884491 0.875397 0.987122 0.884308 0.898621 0.986877 0.884735 0.920074 0.986969 0.885529 0.939636 0.987030 0.886383 0.957672 0.987091 0.887024 0.974304 0.987122 0.887604 0.989746 0.987061 0.888062 1.000000 0.983826 0.892731 0.217682 1.000000 0.880676 0.244904 1.000000 0.880768 0.269714 1.000000 0.880768 0.292633 1.000000 0.880768 0.314209 1.000000 0.880981 0.335083 1.000000 0.881012 0.355713 1.000000 0.881256 0.377167 1.000000 0.881500 0.398926 1.000000 0.881653 0.421295 1.000000 0.881958 0.444794 1.000000 0.882416 0.469666 1.000000 0.882660 0.496155 1.000000 0.883057 0.524902 1.000000 0.883545 0.556610 1.000000 0.883972 0.590607 1.000000 0.884430 0.626465 1.000000 0.884857 0.663177 1.000000 0.885315 0.700073 1.000000 0.885834 0.736115 1.000000 0.886261 0.770477 1.000000 0.886810 0.802155 1.000000 0.887421 0.831055 1.000000 0.888184 0.857239 1.000000 0.888885 0.880981 1.000000 0.889618 0.902527 1.000000 0.890411 0.922058 1.000000 0.891052 0.939972 1.000000 0.891663 0.956512 1.000000 0.892212 0.971893 1.000000 0.892731 0.986298 1.000000 0.893158 1.000000 1.000000 0.893585 0.000000 0.024628 0.921783 0.021240 0.000000 0.941711 0.066895 0.000000 0.943085 0.110626 0.001282 0.943451 0.151306 0.002838 0.943512 0.188385 0.004425 0.943695 0.221466 0.005890 0.943787 0.251495 0.007416 0.943909 0.279144 0.008972 0.944000 0.305542 0.010437 0.944092 0.331268 0.012054 0.944183 0.357422 0.013580 0.944275 0.384003 0.015228 0.944366 0.412201 0.016907 0.944458 0.442474 0.018555 0.944550 0.475891 0.020325 0.944611 0.512329 0.022217 0.944702 0.553925 0.024139 0.944763 0.599976 0.026154 0.944824 0.648987 0.028290 0.944824 0.698822 0.030121 0.944916 0.747620 0.032043 0.944946 0.793427 0.034058 0.944946 0.834412 0.036072 0.944977 0.870697 0.038239 0.945038 0.902618 0.040375 0.945038 0.930603 0.042603 0.945038 0.955017 0.044403 0.944672 0.976166 0.045410 0.943726 0.995148 0.046753 0.942932 1.000000 0.066742 0.930237 1.000000 0.092834 0.914459 0.000000 0.059906 0.922424 0.018433 0.035004 0.942932 0.064697 0.035797 0.942535 0.108826 0.037354 0.942627 0.149902 0.038757 0.942780 0.186890 0.040192 0.942932 0.220154 0.041687 0.943054 0.250183 0.043121 0.943115 0.277832 0.044586 0.943237 0.304321 0.046112 0.943298 0.330139 0.047638 0.943390 0.356171 0.049164 0.943481 0.382996 0.050842 0.943573 0.411774 0.052551 0.943634 0.442505 0.054291 0.943695 0.476257 0.056122 0.943756 0.513245 0.058044 0.943817 0.555328 0.060028 0.943878 0.601715 0.061798 0.943939 0.650726 0.063690 0.943939 0.700653 0.065552 0.943970 0.749329 0.067505 0.944000 0.794861 0.069489 0.944000 0.835541 0.071564 0.944061 0.871399 0.073700 0.944092 0.902954 0.075806 0.944092 0.930786 0.077972 0.944122 0.954742 0.079681 0.943787 0.975708 0.080719 0.942780 0.994537 0.081940 0.942047 1.000000 0.100433 0.930145 1.000000 0.125824 0.914551 0.000000 0.095062 0.922394 0.018005 0.071716 0.943237 0.063385 0.071533 0.942047 0.107544 0.072479 0.941956 0.148438 0.073853 0.942047 0.185699 0.075256 0.942139 0.218719 0.076599 0.942230 0.248932 0.078094 0.942291 0.276581 0.079498 0.942413 0.303162 0.080994 0.942505 0.329010 0.082550 0.942566 0.355469 0.084137 0.942657 0.382935 0.085876 0.942719 0.412201 0.087616 0.942810 0.443481 0.089386 0.942871 0.477600 0.091278 0.942932 0.515167 0.093048 0.942993 0.557343 0.094727 0.943054 0.604004 0.096527 0.943085 0.653229 0.098389 0.943085 0.703094 0.100311 0.943085 0.751617 0.102264 0.943115 0.796570 0.104218 0.943146 0.836761 0.106262 0.943146 0.872314 0.108368 0.943207 0.903351 0.110413 0.943237 0.930756 0.112579 0.943237 0.954590 0.114105 0.942719 0.975311 0.115173 0.941986 0.993958 0.116272 0.941101 1.000000 0.133270 0.929962 1.000000 0.157928 0.914581 0.000000 0.128906 0.922577 0.018005 0.107513 0.943604 0.063385 0.107178 0.942383 0.106171 0.106842 0.941162 0.147278 0.108154 0.941254 0.184357 0.109467 0.941315 0.217682 0.110870 0.941467 0.247528 0.112274 0.941559 0.275360 0.113708 0.941620 0.302521 0.115234 0.941711 0.329071 0.116882 0.941772 0.355865 0.118469 0.941864 0.383575 0.120239 0.941925 0.413239 0.122040 0.941986 0.444824 0.123596 0.942017 0.479492 0.125275 0.942078 0.517365 0.127014 0.942108 0.560181 0.128754 0.942139 0.607025 0.130585 0.942139 0.656403 0.132416 0.942200 0.705994 0.134338 0.942200 0.754089 0.136230 0.942200 0.798584 0.138184 0.942200 0.838348 0.140167 0.942261 0.873322 0.142212 0.942291 0.903900 0.144165 0.942291 0.930969 0.146179 0.942291 0.954407 0.147675 0.941742 0.974945 0.148560 0.940948 0.993378 0.149597 0.940125 1.000000 0.165161 0.929718 1.000000 0.189087 0.914795 0.000000 0.161469 0.922913 0.018005 0.142487 0.943878 0.063385 0.142029 0.942627 0.106171 0.141754 0.941437 0.145813 0.141602 0.940460 0.182983 0.142975 0.940582 0.216248 0.144379 0.940643 0.247009 0.145813 0.940735 0.275574 0.147278 0.940796 0.302887 0.148865 0.940887 0.329712 0.150513 0.940948 0.356995 0.152161 0.941010 0.385132 0.153748 0.941071 0.414856 0.155304 0.941101 0.446960 0.156921 0.941101 0.481903 0.158539 0.941162 0.520294 0.160217 0.941162 0.563538 0.162018 0.941223 0.610657 0.163849 0.941254 0.659973 0.165588 0.941254 0.709320 0.167480 0.941284 0.757050 0.169373 0.941315 0.800842 0.171295 0.941315 0.839813 0.173187 0.941376 0.874329 0.175110 0.941376 0.904633 0.176941 0.941376 0.931152 0.178894 0.941376 0.954224 0.180115 0.940796 0.974487 0.180969 0.939972 0.992767 0.181824 0.939240 1.000000 0.196014 0.929626 1.000000 0.219238 0.914978 0.000000 0.193512 0.923126 0.017944 0.176300 0.944092 0.063324 0.176025 0.942902 0.106140 0.175629 0.941711 0.145752 0.175507 0.940613 0.182556 0.175751 0.939789 0.216736 0.177185 0.939819 0.247711 0.178680 0.939911 0.276520 0.180237 0.940002 0.304199 0.181824 0.940063 0.331268 0.183289 0.940155 0.358521 0.184723 0.940186 0.386871 0.186249 0.940186 0.417084 0.187805 0.940247 0.449585 0.189453 0.940247 0.485077 0.191132 0.940308 0.523895 0.192749 0.940338 0.567566 0.194519 0.940338 0.614807 0.196289 0.940369 0.663849 0.197998 0.940399 0.712982 0.199829 0.940399 0.760040 0.201630 0.940460 0.803192 0.203369 0.940460 0.841461 0.205261 0.940460 0.875366 0.207062 0.940460 0.905151 0.208740 0.940460 0.931305 0.210541 0.940491 0.954071 0.211609 0.940002 0.974121 0.212341 0.939026 0.992188 0.213104 0.938293 1.000000 0.225922 0.929352 1.000000 0.248413 0.914917 0.000000 0.224854 0.923431 0.017944 0.209625 0.944397 0.063324 0.209259 0.943176 0.107117 0.208923 0.941925 0.147858 0.208893 0.940796 0.184753 0.208771 0.939697 0.218231 0.209290 0.938995 0.249481 0.210876 0.939148 0.278412 0.212280 0.939148 0.305817 0.213623 0.939209 0.333160 0.215088 0.939240 0.360596 0.216492 0.939301 0.389465 0.218079 0.939301 0.419891 0.219604 0.939362 0.452911 0.221222 0.939392 0.488739 0.222870 0.939392 0.527893 0.224457 0.939423 0.571899 0.226166 0.939453 0.619293 0.227844 0.939453 0.668091 0.229523 0.939484 0.716797 0.231232 0.939514 0.763153 0.232971 0.939514 0.805481 0.234650 0.939545 0.843048 0.236359 0.939545 0.876465 0.237976 0.939575 0.905640 0.239624 0.939575 0.931549 0.241241 0.939575 0.953888 0.242157 0.939087 0.973724 0.242798 0.938110 0.991608 0.243439 0.937347 1.000000 0.254883 0.929199 1.000000 0.276703 0.915039 0.000000 0.255402 0.923676 0.019104 0.241974 0.944611 0.065979 0.241638 0.943329 0.110321 0.241302 0.942078 0.151428 0.241241 0.940887 0.188446 0.241455 0.939819 0.221466 0.241516 0.938843 0.251709 0.242065 0.938263 0.280579 0.243378 0.938263 0.308228 0.244781 0.938354 0.335510 0.246185 0.938354 0.363495 0.247681 0.938385 0.392578 0.249237 0.938477 0.423370 0.250763 0.938477 0.456573 0.252319 0.938477 0.492737 0.253937 0.938507 0.532440 0.255493 0.938507 0.576752 0.257141 0.938538 0.623932 0.258789 0.938599 0.672485 0.260376 0.938599 0.720581 0.262024 0.938629 0.766235 0.263641 0.938629 0.807770 0.265198 0.938599 0.844757 0.266754 0.938629 0.877350 0.268280 0.938629 0.906128 0.269867 0.938629 0.931580 0.271332 0.938660 0.953674 0.272095 0.938049 0.973236 0.272614 0.937286 0.991028 0.273071 0.936371 1.000000 0.283264 0.929047 1.000000 0.304443 0.915222 0.000000 0.284363 0.926147 0.022949 0.274048 0.944763 0.070343 0.273621 0.943390 0.115204 0.273438 0.942169 0.156158 0.273254 0.940979 0.192780 0.273254 0.939880 0.225525 0.273285 0.938873 0.255371 0.273499 0.938019 0.283417 0.274170 0.937408 0.311340 0.275604 0.937439 0.338654 0.276978 0.937500 0.366638 0.278503 0.937500 0.396088 0.280029 0.937561 0.427124 0.281525 0.937592 0.460693 0.283020 0.937592 0.497101 0.284607 0.937592 0.537140 0.286133 0.937622 0.581573 0.287720 0.937653 0.628754 0.289276 0.937683 0.676971 0.290802 0.937683 0.724304 0.292358 0.937653 0.769135 0.293793 0.937683 0.809967 0.295319 0.937683 0.846161 0.296783 0.937714 0.878204 0.298248 0.937714 0.906616 0.299622 0.937683 0.931641 0.300964 0.937714 0.953339 0.301575 0.937042 0.972748 0.301941 0.936279 0.990356 0.302338 0.935547 1.000000 0.311371 0.928833 1.000000 0.331940 0.915192 0.000000 0.312805 0.930115 0.028839 0.305725 0.944824 0.076355 0.305237 0.943481 0.120880 0.305084 0.942200 0.161652 0.304688 0.940948 0.197968 0.304657 0.939850 0.230438 0.304840 0.938873 0.260040 0.305206 0.937988 0.287720 0.305481 0.937164 0.314758 0.306274 0.936523 0.342194 0.307709 0.936584 0.370300 0.309174 0.936615 0.399780 0.310638 0.936615 0.431183 0.312103 0.936646 0.465088 0.313599 0.936707 0.501617 0.315125 0.936707 0.542175 0.316589 0.936737 0.586517 0.318085 0.936737 0.633514 0.319580 0.936707 0.681183 0.321014 0.936768 0.727997 0.322479 0.936768 0.771973 0.323822 0.936768 0.811859 0.325226 0.936768 0.847412 0.326630 0.936768 0.878815 0.327850 0.936768 0.906677 0.329163 0.936768 0.931427 0.330383 0.936798 0.953003 0.330872 0.936127 0.972198 0.331177 0.935242 0.989685 0.331543 0.934509 1.000000 0.339386 0.928589 1.000000 0.359436 0.915192 0.000000 0.341522 0.935486 0.035797 0.337128 0.944824 0.083374 0.336700 0.943420 0.127808 0.336365 0.942139 0.168182 0.336395 0.940918 0.203949 0.336334 0.939850 0.235992 0.336548 0.938843 0.265137 0.336853 0.937988 0.292633 0.337280 0.937134 0.319214 0.337677 0.936279 0.345917 0.338470 0.935608 0.374329 0.339905 0.935669 0.403961 0.341339 0.935699 0.435486 0.342773 0.935699 0.469604 0.344238 0.935730 0.506439 0.345673 0.935730 0.547089 0.347076 0.935730 0.591400 0.348480 0.935760 0.637970 0.349884 0.935760 0.685303 0.351257 0.935791 0.731323 0.352631 0.935791 0.774475 0.353882 0.935760 0.813568 0.355164 0.935791 0.848480 0.356415 0.935760 0.879395 0.357574 0.935822 0.906738 0.358734 0.935760 0.931305 0.359955 0.935760 0.952606 0.360352 0.935089 0.971680 0.360596 0.934326 0.989044 0.360870 0.933472 1.000000 0.367584 0.928375 1.000000 0.387085 0.915131 0.000000 0.370605 0.941559 0.044189 0.368774 0.944702 0.091644 0.368408 0.943329 0.135712 0.368286 0.942047 0.175446 0.368286 0.940857 0.210480 0.368347 0.939789 0.241913 0.368591 0.938843 0.270660 0.368927 0.937958 0.297821 0.369293 0.937073 0.324280 0.369873 0.936249 0.350708 0.370178 0.935394 0.378326 0.370880 0.934692 0.408081 0.372314 0.934753 0.439911 0.373657 0.934723 0.474152 0.375092 0.934723 0.510986 0.376434 0.934753 0.551849 0.377808 0.934723 0.596069 0.379089 0.934784 0.642242 0.380371 0.934753 0.688843 0.381683 0.934784 0.734161 0.382935 0.934784 0.776550 0.384094 0.934753 0.814941 0.385254 0.934784 0.849213 0.386414 0.934753 0.879730 0.387512 0.934753 0.906891 0.388672 0.934784 0.931122 0.389740 0.934723 0.952148 0.390076 0.933960 0.971069 0.390320 0.933197 0.988342 0.390564 0.932343 1.000000 0.396057 0.927979 1.000000 0.415070 0.915161 0.003784 0.401367 0.945984 0.053925 0.400879 0.944611 0.101013 0.400604 0.943207 0.144379 0.400513 0.941956 0.183105 0.400635 0.940796 0.217377 0.400696 0.939758 0.248138 0.401062 0.938751 0.276398 0.401459 0.937927 0.303253 0.401764 0.937073 0.329498 0.402313 0.936188 0.355865 0.402710 0.935333 0.383179 0.402985 0.934357 0.412354 0.403625 0.933655 0.444092 0.404907 0.933685 0.478455 0.406250 0.933655 0.515503 0.407532 0.933716 0.556427 0.408813 0.933685 0.600342 0.410065 0.933685 0.646057 0.411285 0.933716 0.691925 0.412384 0.933685 0.736542 0.413544 0.933716 0.778351 0.414642 0.933685 0.816193 0.415741 0.933685 0.849915 0.416840 0.933685 0.880035 0.417877 0.933655 0.906891 0.418945 0.933624 0.930786 0.419952 0.933594 0.951691 0.420288 0.932800 0.970428 0.420471 0.931976 0.987579 0.420685 0.931183 1.000000 0.425049 0.927704 1.000000 0.443542 0.915222 0.014862 0.434052 0.945801 0.064667 0.433716 0.944427 0.111115 0.433533 0.943085 0.153534 0.433472 0.941833 0.191132 0.433411 0.940674 0.224457 0.433838 0.939636 0.254517 0.433990 0.938721 0.282257 0.434448 0.937836 0.308685 0.434906 0.937012 0.334747 0.435303 0.936127 0.361023 0.435699 0.935242 0.388336 0.435883 0.934296 0.417114 0.436218 0.933258 0.448334 0.436707 0.932617 0.482758 0.437927 0.932587 0.519592 0.439087 0.932587 0.560425 0.440308 0.932617 0.604126 0.441437 0.932587 0.649384 0.442535 0.932617 0.694794 0.443604 0.932587 0.738770 0.444702 0.932587 0.779999 0.445709 0.932617 0.817352 0.446747 0.932556 0.850677 0.447784 0.932526 0.880249 0.448792 0.932495 0.906769 0.449829 0.932465 0.930573 0.450775 0.932434 0.951080 0.451019 0.931671 0.969727 0.451233 0.930878 0.986755 0.451477 0.930084 1.000000 0.454620 0.927216 1.000000 0.472534 0.915222 0.026978 0.467529 0.945648 0.075958 0.467224 0.944244 0.121643 0.467010 0.942902 0.162933 0.467163 0.941681 0.199310 0.467194 0.940582 0.231628 0.467529 0.939575 0.260864 0.467804 0.938660 0.288025 0.468079 0.937744 0.314148 0.468506 0.936920 0.339966 0.468933 0.936066 0.366119 0.469177 0.935181 0.393311 0.469543 0.934265 0.422058 0.469604 0.933197 0.452789 0.469666 0.932068 0.486420 0.470215 0.931458 0.523315 0.471252 0.931427 0.563995 0.472382 0.931458 0.607422 0.473389 0.931427 0.652374 0.474426 0.931427 0.697418 0.475433 0.931458 0.740906 0.476471 0.931396 0.781555 0.477478 0.931366 0.818268 0.478424 0.931305 0.851105 0.479401 0.931274 0.880463 0.480377 0.931244 0.906647 0.481323 0.931183 0.930145 0.482269 0.931183 0.950500 0.482452 0.930389 0.968994 0.482605 0.929596 0.985870 0.482849 0.928772 1.000000 0.484802 0.926880 1.000000 0.502197 0.915222 0.039673 0.501740 0.945404 0.087860 0.501587 0.944000 0.132324 0.501434 0.942719 0.172302 0.501434 0.941528 0.207336 0.501587 0.940399 0.238647 0.501923 0.939453 0.267120 0.502136 0.938538 0.293701 0.502533 0.937683 0.319458 0.502899 0.936859 0.344971 0.503265 0.936035 0.370941 0.503479 0.935120 0.398071 0.503662 0.934174 0.426666 0.503815 0.933167 0.457306 0.503754 0.931976 0.490234 0.503510 0.930756 0.526642 0.503998 0.930206 0.567383 0.505066 0.930206 0.610809 0.506073 0.930237 0.655396 0.506989 0.930176 0.699951 0.507965 0.930145 0.742950 0.508972 0.930084 0.783020 0.509918 0.930084 0.819153 0.510895 0.930054 0.851562 0.511810 0.929993 0.880463 0.512726 0.929962 0.906464 0.513672 0.929932 0.929596 0.514557 0.929871 0.949799 0.514709 0.928955 0.968140 0.514862 0.928284 0.984924 0.515015 0.927460 1.000000 0.515839 0.926361 1.000000 0.533569 0.915192 0.052795 0.538025 0.945190 0.099792 0.537903 0.943787 0.142944 0.537842 0.942444 0.181458 0.537781 0.941315 0.215210 0.537872 0.940277 0.245422 0.538147 0.939331 0.273102 0.538544 0.938446 0.299164 0.538788 0.937622 0.324432 0.539093 0.936768 0.349731 0.539429 0.935913 0.375488 0.539673 0.935059 0.402405 0.539703 0.934082 0.430939 0.539703 0.933075 0.461517 0.539551 0.931885 0.494507 0.539307 0.930634 0.530243 0.538879 0.929260 0.570648 0.539551 0.928894 0.613983 0.540527 0.928864 0.658264 0.541473 0.928833 0.702362 0.542450 0.928772 0.744843 0.543427 0.928741 0.784363 0.544312 0.928741 0.819977 0.545258 0.928680 0.851807 0.546173 0.928650 0.880463 0.547119 0.928619 0.906067 0.548035 0.928528 0.929016 0.548920 0.928528 0.949036 0.549011 0.927734 0.967224 0.549164 0.926910 0.983948 0.549316 0.926086 0.999481 0.549530 0.925446 1.000000 0.567078 0.915253 0.065857 0.577118 0.944855 0.111603 0.576813 0.943542 0.153320 0.576752 0.942291 0.190125 0.576660 0.941132 0.222595 0.576782 0.940155 0.251892 0.577057 0.939270 0.278809 0.577271 0.938354 0.304230 0.577454 0.937500 0.329071 0.577759 0.936737 0.354034 0.577789 0.935852 0.379608 0.577881 0.934998 0.406464 0.577942 0.934021 0.435028 0.577759 0.932953 0.465790 0.577698 0.931824 0.498810 0.577271 0.930511 0.534729 0.576752 0.929077 0.574036 0.576202 0.927582 0.616974 0.577057 0.927460 0.661041 0.578003 0.927429 0.704742 0.578918 0.927399 0.746674 0.579834 0.927399 0.785492 0.580780 0.927338 0.820557 0.581665 0.927307 0.852142 0.582550 0.927216 0.880280 0.583466 0.927246 0.905640 0.584351 0.927185 0.928345 0.585205 0.927124 0.948181 0.585205 0.926239 0.966278 0.585297 0.925476 0.982941 0.585449 0.924774 0.998383 0.585571 0.924103 1.000000 0.602203 0.915405 0.078644 0.618042 0.944611 0.122955 0.617615 0.943298 0.163025 0.617554 0.942078 0.198364 0.617554 0.941040 0.229492 0.617523 0.940033 0.257782 0.617523 0.939117 0.283966 0.617767 0.938293 0.308807 0.617889 0.937469 0.333313 0.617950 0.936646 0.357971 0.617950 0.935791 0.383575 0.617950 0.934906 0.410522 0.617889 0.933960 0.439209 0.617767 0.932861 0.470062 0.617401 0.931641 0.503174 0.616943 0.930328 0.539246 0.616364 0.928925 0.578461 0.615631 0.927399 0.619904 0.615082 0.926056 0.663574 0.615997 0.926056 0.706787 0.616913 0.926025 0.748199 0.617767 0.925995 0.786469 0.618622 0.925873 0.821106 0.619476 0.925903 0.852112 0.620331 0.925873 0.880005 0.621185 0.925842 0.905121 0.622040 0.925842 0.927582 0.622833 0.925751 0.947296 0.622803 0.924957 0.965271 0.622864 0.924194 0.981873 0.622925 0.923523 0.997284 0.623016 0.922852 1.000000 0.638428 0.915466 0.090942 0.660156 0.944336 0.133636 0.659668 0.943085 0.172058 0.659515 0.941925 0.205841 0.659271 0.940857 0.235809 0.659241 0.939941 0.263153 0.659210 0.939056 0.288605 0.659210 0.938232 0.313080 0.659210 0.937378 0.337372 0.659332 0.936554 0.362061 0.659241 0.935730 0.387665 0.659088 0.934814 0.414612 0.658936 0.933777 0.443359 0.658600 0.932709 0.474274 0.658173 0.931488 0.507416 0.657593 0.930176 0.543610 0.656891 0.928741 0.582825 0.656128 0.927277 0.623901 0.655273 0.925781 0.666046 0.654938 0.924652 0.708710 0.655731 0.924561 0.749573 0.656525 0.924591 0.787354 0.657349 0.924561 0.821442 0.658173 0.924530 0.852173 0.658936 0.924500 0.879700 0.659729 0.924500 0.904572 0.660553 0.924500 0.926788 0.661224 0.924438 0.946381 0.661133 0.923615 0.964233 0.661133 0.922943 0.980774 0.661163 0.922272 0.996185 0.661682 0.921753 1.000000 0.676239 0.915802 0.102325 0.702606 0.944122 0.143433 0.702087 0.942841 0.180176 0.701630 0.941772 0.212494 0.701355 0.940735 0.241394 0.701141 0.939819 0.267944 0.700989 0.938965 0.292999 0.700958 0.938141 0.317352 0.700928 0.937347 0.341461 0.700836 0.936493 0.366058 0.700714 0.935608 0.391663 0.700470 0.934662 0.418701 0.700012 0.933624 0.447479 0.699646 0.932526 0.478424 0.699036 0.931305 0.511627 0.698395 0.930023 0.547913 0.697632 0.928589 0.587097 0.696777 0.927124 0.627869 0.695831 0.925537 0.669220 0.694977 0.924133 0.710541 0.694763 0.923218 0.750824 0.695496 0.923187 0.788055 0.696228 0.923157 0.821686 0.696991 0.923187 0.851990 0.697693 0.923187 0.879272 0.698456 0.923218 0.903870 0.699127 0.923218 0.925964 0.699768 0.923126 0.945404 0.699615 0.922424 0.963287 0.699951 0.921783 0.979736 0.700378 0.921234 0.995056 0.700867 0.920715 1.000000 0.713898 0.916229 0.112762 0.744415 0.943909 0.152130 0.743713 0.942657 0.187286 0.743256 0.941620 0.218475 0.742859 0.940643 0.246613 0.742645 0.939728 0.272736 0.742462 0.938812 0.297394 0.742279 0.938049 0.321472 0.742157 0.937195 0.345490 0.741852 0.936340 0.370026 0.741577 0.935425 0.395599 0.741150 0.934509 0.422668 0.740845 0.933472 0.451508 0.740265 0.932373 0.482452 0.739655 0.931183 0.515686 0.738800 0.929840 0.552063 0.737946 0.928375 0.591095 0.737030 0.926971 0.631653 0.735992 0.925476 0.672668 0.735046 0.924011 0.712921 0.734131 0.922577 0.751862 0.733978 0.921844 0.788574 0.734619 0.921844 0.821838 0.735260 0.921906 0.851776 0.735931 0.921906 0.878754 0.736542 0.921936 0.903137 0.737244 0.921997 0.925171 0.738159 0.921997 0.944550 0.738342 0.921387 0.962280 0.738586 0.920837 0.978607 0.738922 0.920319 0.993896 0.739197 0.919800 1.000000 0.750580 0.916748 0.121887 0.784912 0.943726 0.159943 0.784180 0.942505 0.193939 0.783691 0.941467 0.224243 0.783295 0.940460 0.251801 0.782776 0.939575 0.277405 0.782532 0.938690 0.301758 0.782135 0.937897 0.325562 0.781952 0.937042 0.349457 0.781555 0.936188 0.373901 0.781311 0.935303 0.399506 0.780762 0.934357 0.426544 0.780212 0.933350 0.455383 0.779602 0.932220 0.486420 0.778809 0.930969 0.519653 0.778015 0.929657 0.556030 0.777039 0.928284 0.594940 0.775940 0.926788 0.635162 0.774902 0.925354 0.675842 0.773895 0.923920 0.715637 0.772919 0.922546 0.753448 0.772003 0.921265 0.789001 0.771881 0.920654 0.821838 0.772430 0.920685 0.851440 0.773010 0.920776 0.878387 0.773865 0.920898 0.902618 0.774841 0.921021 0.924408 0.775604 0.921021 0.943542 0.775696 0.920441 0.961182 0.775757 0.919952 0.977509 0.775879 0.919525 0.992798 0.776062 0.919037 1.000000 0.785797 0.917236 0.130554 0.823486 0.943512 0.167511 0.822693 0.942322 0.200531 0.822144 0.941315 0.229889 0.821472 0.940338 0.256836 0.821075 0.939423 0.282013 0.820618 0.938568 0.305939 0.820160 0.937744 0.329590 0.819824 0.936920 0.353333 0.819336 0.936066 0.377747 0.818970 0.935181 0.403290 0.818329 0.934235 0.430359 0.817780 0.933167 0.459198 0.816986 0.932068 0.490143 0.816132 0.930878 0.523407 0.815216 0.929535 0.559723 0.814117 0.928131 0.598511 0.813049 0.926727 0.638489 0.812012 0.925293 0.678741 0.810822 0.923920 0.718048 0.809845 0.922546 0.755432 0.808807 0.921265 0.789886 0.808044 0.920135 0.821930 0.808044 0.919647 0.851440 0.808868 0.919800 0.877930 0.809662 0.919952 0.901825 0.810394 0.920166 0.923431 0.811066 0.920258 0.942535 0.810944 0.919739 0.960083 0.810883 0.919250 0.976440 0.810913 0.918854 0.991760 0.810913 0.918457 1.000000 0.819122 0.917816 0.138824 0.859253 0.943298 0.174774 0.858490 0.942139 0.206726 0.857697 0.941101 0.235382 0.857117 0.940155 0.261719 0.856598 0.939270 0.286407 0.856049 0.938416 0.310059 0.855560 0.937592 0.333466 0.855164 0.936768 0.357086 0.854614 0.935913 0.381439 0.854095 0.934967 0.406921 0.853394 0.934082 0.433868 0.852692 0.933075 0.462738 0.851898 0.931946 0.493683 0.850983 0.930725 0.526886 0.849945 0.929413 0.563202 0.848846 0.928070 0.601746 0.847656 0.926697 0.641418 0.846527 0.925262 0.681305 0.845398 0.923920 0.720215 0.844330 0.922638 0.757538 0.843475 0.921417 0.791840 0.842834 0.920410 0.822784 0.842316 0.919464 0.850983 0.842194 0.918976 0.877167 0.842834 0.919220 0.900940 0.843414 0.919464 0.922394 0.843964 0.919647 0.941498 0.843719 0.919128 0.959045 0.843536 0.918640 0.975403 0.843414 0.918243 0.990784 0.843353 0.917908 1.000000 0.850037 0.918427 0.147034 0.891693 0.943054 0.181854 0.890869 0.941925 0.212860 0.890289 0.940887 0.240692 0.889526 0.939972 0.266418 0.888977 0.939117 0.290680 0.888367 0.938263 0.314056 0.887848 0.937439 0.337219 0.887390 0.936554 0.360718 0.886780 0.935791 0.384918 0.886169 0.934937 0.410370 0.885468 0.933960 0.437317 0.884613 0.932922 0.466156 0.883850 0.931854 0.496979 0.882812 0.930664 0.530151 0.881744 0.929413 0.566376 0.880585 0.928040 0.604675 0.879395 0.926666 0.644012 0.878174 0.925323 0.684021 0.877106 0.924011 0.722961 0.876251 0.922852 0.759583 0.875366 0.921722 0.793121 0.874603 0.920776 0.823578 0.873993 0.919891 0.851135 0.873413 0.919189 0.876282 0.873077 0.918640 0.899933 0.873535 0.918884 0.921417 0.873901 0.919098 0.940491 0.873596 0.918610 0.958099 0.873322 0.918182 0.974518 0.873108 0.917816 0.989838 0.872925 0.917419 1.000000 0.878265 0.919037 0.154816 0.920868 0.942780 0.188507 0.920105 0.941711 0.218597 0.919281 0.940704 0.245728 0.918640 0.939789 0.270905 0.917908 0.938965 0.294708 0.917267 0.938080 0.317810 0.916809 0.937317 0.340759 0.916107 0.936493 0.364075 0.915497 0.935638 0.388214 0.914856 0.934784 0.413605 0.914154 0.933868 0.440491 0.913330 0.932861 0.469208 0.912445 0.931824 0.499908 0.911377 0.930634 0.533081 0.910248 0.929382 0.569153 0.909088 0.928070 0.607697 0.907990 0.926727 0.647339 0.906860 0.925507 0.686676 0.905884 0.924316 0.724792 0.904877 0.923187 0.760742 0.903900 0.922119 0.793884 0.903137 0.921234 0.824005 0.902344 0.920441 0.851410 0.901733 0.919739 0.876312 0.901123 0.919098 0.899048 0.900635 0.918549 0.920532 0.900879 0.918701 0.939575 0.900482 0.918274 0.957275 0.900146 0.917847 0.973663 0.899841 0.917480 0.989044 0.899689 0.917236 1.000000 0.903870 0.919922 0.162079 0.946686 0.942352 0.194672 0.945770 0.941284 0.223816 0.945038 0.940399 0.250244 0.944305 0.939362 0.274902 0.943634 0.938538 0.298340 0.943024 0.937775 0.321075 0.942413 0.936951 0.343872 0.941772 0.936218 0.367065 0.941101 0.935394 0.391052 0.940369 0.934509 0.416321 0.939606 0.933563 0.443146 0.938782 0.932617 0.471771 0.937805 0.931488 0.502319 0.936798 0.930450 0.535919 0.935669 0.929169 0.572357 0.934601 0.927917 0.610535 0.933502 0.926727 0.649261 0.932373 0.925537 0.687958 0.931305 0.924408 0.725525 0.930267 0.923370 0.761078 0.929260 0.922394 0.793976 0.928375 0.921509 0.823944 0.927582 0.920715 0.851288 0.926880 0.920074 0.876221 0.926239 0.919434 0.898926 0.925659 0.918854 0.919861 0.925201 0.918457 0.939148 0.924988 0.918213 0.956818 0.924652 0.917908 0.973206 0.924377 0.917664 0.988495 0.924164 0.917480 1.000000 0.926910 0.920868 0.167908 0.969025 0.941254 0.199493 0.968201 0.940247 0.227814 0.967407 0.939240 0.253632 0.966736 0.938324 0.277802 0.966064 0.937622 0.300842 0.965393 0.936707 0.323395 0.964752 0.936005 0.345947 0.964111 0.935242 0.368958 0.963409 0.934387 0.392914 0.962708 0.933594 0.418121 0.961914 0.932648 0.444763 0.961090 0.931671 0.473724 0.960175 0.930725 0.504791 0.959198 0.929657 0.538116 0.958130 0.928558 0.573883 0.957001 0.927368 0.611267 0.955872 0.926178 0.649536 0.954712 0.925171 0.687775 0.953644 0.924072 0.725037 0.952576 0.922943 0.760498 0.951538 0.922058 0.793335 0.950653 0.921173 0.823242 0.949799 0.920410 0.850647 0.949036 0.919769 0.875641 0.948364 0.919220 0.898438 0.947754 0.918610 0.919342 0.947266 0.918304 0.939209 0.947571 0.918732 0.957092 0.947479 0.918854 0.973358 0.947113 0.918671 0.988586 0.946808 0.918488 1.000000 0.947693 0.921783 0.173401 0.989288 0.940216 0.203949 0.988464 0.939148 0.231537 0.987701 0.938171 0.256775 0.987000 0.937378 0.280426 0.986359 0.936493 0.303162 0.985687 0.935883 0.325439 0.985077 0.935089 0.347839 0.984436 0.934357 0.370697 0.983734 0.933533 0.394470 0.983002 0.932678 0.419952 0.982239 0.931885 0.447113 0.981415 0.931000 0.475891 0.980499 0.930084 0.506287 0.979523 0.929077 0.539124 0.978455 0.928040 0.574402 0.977356 0.926971 0.611389 0.976227 0.925873 0.649353 0.975067 0.924744 0.687347 0.973969 0.923737 0.724548 0.972839 0.922760 0.760010 0.971863 0.921783 0.792816 0.970886 0.920990 0.822906 0.970062 0.920227 0.850372 0.969238 0.919556 0.875427 0.968567 0.919098 0.898254 0.967957 0.918671 0.919067 0.967407 0.918396 0.938812 0.967621 0.918884 0.956970 0.967773 0.919403 0.973541 0.967712 0.919678 0.988617 0.967255 0.919403 1.000000 0.966522 0.922577 0.189331 1.000000 0.931854 0.217743 1.000000 0.931671 0.243439 1.000000 0.931427 0.267029 1.000000 0.931335 0.289368 1.000000 0.931305 0.310760 1.000000 0.931183 0.331940 1.000000 0.931000 0.353241 1.000000 0.930878 0.375427 1.000000 0.930756 0.398743 1.000000 0.930725 0.423065 1.000000 0.930664 0.448639 1.000000 0.930450 0.476868 0.999146 0.929688 0.506775 0.998138 0.928741 0.539276 0.997101 0.927673 0.574249 0.996002 0.926697 0.611084 0.994873 0.925659 0.648987 0.993744 0.924561 0.687042 0.992615 0.923523 0.724335 0.991547 0.922546 0.759857 0.990479 0.921600 0.792786 0.989532 0.920807 0.823059 0.988647 0.920105 0.850555 0.987854 0.919586 0.875549 0.987122 0.919159 0.898224 0.986481 0.918854 0.918915 0.985870 0.918610 0.938507 0.985931 0.919128 0.956482 0.986023 0.919525 0.973175 0.986053 0.919922 0.988678 0.986023 0.920197 1.000000 0.983856 0.923279 0.218628 1.000000 0.915253 0.245728 1.000000 0.915314 0.270325 1.000000 0.915314 0.293152 1.000000 0.915314 0.314728 1.000000 0.915344 0.335541 1.000000 0.915497 0.356415 1.000000 0.915527 0.377747 1.000000 0.915833 0.399292 1.000000 0.915955 0.421661 1.000000 0.916199 0.445068 1.000000 0.916412 0.469818 1.000000 0.916595 0.496277 1.000000 0.916840 0.525024 1.000000 0.917114 0.556671 1.000000 0.917480 0.590759 1.000000 0.917725 0.626587 1.000000 0.918030 0.663422 1.000000 0.918335 0.700317 1.000000 0.918701 0.736389 1.000000 0.918976 0.770813 1.000000 0.919403 0.802521 1.000000 0.919830 0.831360 1.000000 0.920288 0.857483 1.000000 0.920807 0.881195 1.000000 0.921295 0.902649 1.000000 0.921783 0.922180 1.000000 0.922180 0.940063 1.000000 0.922577 0.956543 1.000000 0.922913 0.971893 1.000000 0.923248 0.986298 1.000000 0.923523 1.000000 1.000000 0.923767 0.000000 0.025177 0.957458 0.020752 0.000000 0.976349 0.065857 0.000000 0.977509 0.108826 0.000000 0.978668 0.149414 0.001495 0.978760 0.186554 0.003021 0.978821 0.219604 0.004578 0.978821 0.249725 0.006073 0.978851 0.277557 0.007599 0.978851 0.303986 0.009216 0.978912 0.329620 0.010712 0.978943 0.355804 0.012329 0.978973 0.382629 0.013977 0.978973 0.410675 0.015625 0.978973 0.441223 0.017365 0.979004 0.474670 0.019165 0.979004 0.511230 0.021057 0.979004 0.552917 0.023041 0.979004 0.598907 0.025055 0.979004 0.647736 0.027069 0.979004 0.697662 0.029022 0.979004 0.746521 0.030975 0.979004 0.792267 0.032990 0.979004 0.833252 0.035065 0.978973 0.869537 0.037140 0.978912 0.901428 0.039398 0.978912 0.929504 0.041626 0.978882 0.954102 0.043915 0.978851 0.976166 0.046204 0.978851 0.995178 0.047546 0.978180 1.000000 0.067535 0.965057 1.000000 0.093658 0.948578 0.000000 0.060577 0.957733 0.016449 0.033752 0.978241 0.062592 0.034485 0.977844 0.107117 0.035980 0.977905 0.148041 0.037415 0.977905 0.185272 0.038849 0.977966 0.218323 0.040375 0.977966 0.248505 0.041840 0.977997 0.276215 0.043304 0.978027 0.302795 0.044830 0.978058 0.328583 0.046295 0.978058 0.354462 0.047943 0.978058 0.381653 0.049652 0.978088 0.410431 0.051331 0.978088 0.441345 0.053131 0.978088 0.475189 0.054993 0.978088 0.512451 0.056946 0.978119 0.554535 0.058929 0.978088 0.600769 0.060669 0.978088 0.649811 0.062561 0.978088 0.699768 0.064484 0.978088 0.748383 0.066406 0.978088 0.793701 0.068481 0.978027 0.834503 0.070557 0.978027 0.870300 0.072662 0.978027 0.901886 0.074860 0.977997 0.929413 0.076996 0.977997 0.954010 0.079224 0.977966 0.975677 0.081482 0.977905 0.994568 0.082733 0.977142 1.000000 0.101227 0.964905 1.000000 0.126587 0.948578 0.000000 0.095367 0.957489 0.016144 0.070465 0.978455 0.061523 0.070068 0.977234 0.105713 0.071198 0.977020 0.146698 0.072479 0.977051 0.183777 0.073914 0.977081 0.217010 0.075348 0.977081 0.247192 0.076752 0.977112 0.275085 0.078308 0.977142 0.301514 0.079803 0.977173 0.327454 0.081299 0.977203 0.354095 0.082947 0.977173 0.381775 0.084717 0.977234 0.410919 0.086426 0.977234 0.442322 0.088318 0.977234 0.476624 0.090149 0.977234 0.514160 0.091858 0.977234 0.556671 0.093628 0.977234 0.603180 0.095428 0.977234 0.652374 0.097321 0.977203 0.702240 0.099243 0.977173 0.750580 0.101227 0.977142 0.795502 0.103210 0.977142 0.835724 0.105347 0.977112 0.871094 0.107361 0.977112 0.902191 0.109467 0.977051 0.929565 0.111603 0.977020 0.953857 0.113678 0.977020 0.975403 0.115845 0.976990 0.993988 0.117004 0.976227 1.000000 0.134003 0.964783 1.000000 0.158691 0.948700 0.000000 0.129059 0.957642 0.016144 0.106293 0.978546 0.061523 0.105957 0.977386 0.104370 0.105591 0.976227 0.145508 0.106812 0.976166 0.182587 0.108185 0.976196 0.215912 0.109619 0.976257 0.245850 0.111053 0.976257 0.273956 0.112518 0.976288 0.301117 0.114075 0.976257 0.327606 0.115631 0.976288 0.354523 0.117371 0.976288 0.382538 0.119110 0.976288 0.412170 0.120850 0.976318 0.443970 0.122498 0.976318 0.478546 0.124084 0.976318 0.516571 0.125885 0.976318 0.559509 0.127625 0.976288 0.606384 0.129517 0.976257 0.655670 0.131378 0.976257 0.705139 0.133301 0.976257 0.753296 0.135223 0.976227 0.797729 0.137207 0.976227 0.837311 0.139221 0.976196 0.872009 0.141205 0.976166 0.902771 0.143219 0.976135 0.929749 0.145203 0.976135 0.953705 0.147217 0.976074 0.975037 0.149261 0.976044 0.993408 0.150238 0.975372 1.000000 0.165863 0.964539 1.000000 0.189789 0.948669 0.000000 0.161743 0.957764 0.016083 0.140991 0.978668 0.061493 0.140686 0.977478 0.104370 0.140350 0.976318 0.144012 0.140381 0.975342 0.181335 0.141754 0.975372 0.214722 0.143158 0.975403 0.245728 0.144592 0.975403 0.274261 0.146149 0.975403 0.301636 0.147736 0.975403 0.328522 0.149384 0.975403 0.355988 0.151062 0.975433 0.384094 0.152588 0.975433 0.413971 0.154144 0.975433 0.446198 0.155792 0.975433 0.481232 0.157440 0.975403 0.519592 0.159180 0.975403 0.562897 0.160980 0.975403 0.610016 0.162781 0.975372 0.659210 0.164612 0.975342 0.708618 0.166473 0.975372 0.756134 0.168396 0.975342 0.799927 0.170319 0.975311 0.838867 0.172180 0.975281 0.873077 0.174072 0.975250 0.903290 0.175995 0.975189 0.929962 0.177826 0.975189 0.953613 0.179718 0.975189 0.974487 0.181610 0.975159 0.992828 0.182526 0.974365 1.000000 0.196686 0.964386 1.000000 0.219879 0.948761 0.000000 0.193878 0.957886 0.016083 0.175140 0.978821 0.061493 0.174866 0.977631 0.104340 0.174469 0.976440 0.144226 0.174438 0.975372 0.181335 0.174591 0.974487 0.215363 0.176025 0.974518 0.246399 0.177490 0.974518 0.275482 0.179108 0.974518 0.303162 0.180664 0.974548 0.330139 0.182068 0.974548 0.357544 0.183624 0.974579 0.386047 0.185150 0.974579 0.416351 0.186737 0.974548 0.448853 0.188354 0.974518 0.484406 0.189972 0.974518 0.523376 0.191742 0.974487 0.567139 0.193481 0.974457 0.614166 0.195251 0.974487 0.663300 0.197052 0.974457 0.712280 0.198822 0.974426 0.759186 0.200653 0.974396 0.802338 0.202423 0.974396 0.840576 0.204224 0.974365 0.874176 0.205963 0.974304 0.903992 0.207764 0.974304 0.930237 0.209503 0.974274 0.953461 0.211243 0.974243 0.974121 0.212952 0.974243 0.992279 0.213684 0.973511 1.000000 0.226471 0.964294 1.000000 0.248962 0.948944 0.000000 0.224976 0.958038 0.016083 0.208435 0.978973 0.061829 0.208038 0.977753 0.105865 0.207703 0.976501 0.146637 0.207672 0.975403 0.183685 0.207520 0.974335 0.217285 0.208252 0.973602 0.248413 0.209717 0.973633 0.277283 0.211090 0.973663 0.304871 0.212463 0.973633 0.332062 0.213928 0.973663 0.359802 0.215454 0.973663 0.388702 0.216949 0.973633 0.419342 0.218567 0.973633 0.452393 0.220184 0.973602 0.488068 0.221771 0.973602 0.527557 0.223450 0.973602 0.571442 0.225159 0.973602 0.618683 0.226837 0.973541 0.667542 0.228546 0.973541 0.716034 0.230194 0.973541 0.762329 0.231995 0.973511 0.804535 0.233673 0.973480 0.842010 0.235291 0.973480 0.875275 0.236969 0.973450 0.904449 0.238647 0.973419 0.930328 0.240234 0.973419 0.953186 0.241821 0.973358 0.973785 0.243347 0.973358 0.991638 0.243927 0.972595 1.000000 0.255463 0.963959 1.000000 0.277191 0.948883 0.000000 0.255402 0.958374 0.017853 0.240875 0.979004 0.064850 0.240417 0.977783 0.109314 0.240295 0.976562 0.150452 0.240112 0.975372 0.187592 0.240295 0.974335 0.220459 0.240234 0.973358 0.250732 0.240875 0.972748 0.279724 0.242279 0.972778 0.307373 0.243622 0.972778 0.334900 0.245117 0.972748 0.362671 0.246643 0.972778 0.391724 0.248169 0.972748 0.422760 0.249725 0.972717 0.456146 0.251282 0.972687 0.492188 0.252899 0.972717 0.532043 0.254486 0.972687 0.576294 0.256134 0.972687 0.623505 0.257751 0.972687 0.672089 0.259338 0.972626 0.719849 0.260956 0.972595 0.765411 0.262543 0.972626 0.806854 0.264191 0.972595 0.843719 0.265747 0.972565 0.876160 0.267303 0.972565 0.904968 0.268799 0.972534 0.930298 0.270264 0.972504 0.953064 0.271729 0.972473 0.973328 0.273102 0.972412 0.991028 0.273529 0.971771 1.000000 0.283722 0.963867 1.000000 0.304901 0.948975 0.000000 0.284149 0.960907 0.021973 0.272797 0.979004 0.069672 0.272430 0.977722 0.114532 0.272247 0.976501 0.155365 0.272125 0.975372 0.192047 0.272034 0.974243 0.224701 0.272125 0.973297 0.254517 0.272339 0.972443 0.282745 0.273132 0.971863 0.310394 0.274475 0.971863 0.337952 0.275940 0.971863 0.365997 0.277466 0.971863 0.395447 0.278992 0.971832 0.426666 0.280518 0.971863 0.460266 0.282074 0.971802 0.496643 0.283569 0.971771 0.536957 0.285156 0.971802 0.581207 0.286652 0.971741 0.628296 0.288239 0.971710 0.676483 0.289795 0.971741 0.723663 0.291290 0.971710 0.768402 0.292816 0.971710 0.808990 0.294281 0.971710 0.845123 0.295715 0.971649 0.877014 0.297180 0.971619 0.905334 0.298553 0.971619 0.930359 0.299927 0.971558 0.952637 0.301178 0.971558 0.972809 0.302399 0.971527 0.990417 0.302795 0.970703 1.000000 0.311829 0.963623 1.000000 0.332367 0.948883 0.000000 0.312561 0.964813 0.028290 0.304565 0.978973 0.075836 0.304108 0.977661 0.120300 0.303772 0.976410 0.161041 0.303528 0.975220 0.197388 0.303711 0.974213 0.229767 0.303680 0.973236 0.259308 0.303955 0.972351 0.286987 0.304413 0.971497 0.313904 0.305267 0.970947 0.341492 0.306671 0.970917 0.369843 0.308136 0.970947 0.399292 0.309601 0.970886 0.430725 0.311096 0.970886 0.464691 0.312592 0.970856 0.501373 0.314117 0.970886 0.541840 0.315613 0.970856 0.586121 0.317047 0.970856 0.632935 0.318542 0.970825 0.680573 0.319977 0.970795 0.727142 0.321442 0.970795 0.771088 0.322845 0.970764 0.810852 0.324249 0.970734 0.846222 0.325531 0.970703 0.877625 0.326843 0.970673 0.905487 0.328064 0.970673 0.930237 0.329285 0.970673 0.952362 0.330505 0.970642 0.972290 0.331604 0.970490 0.989746 0.332001 0.969727 1.000000 0.339844 0.963531 1.000000 0.359833 0.948883 0.000000 0.340729 0.969910 0.035309 0.335876 0.978851 0.083069 0.335510 0.977509 0.127380 0.335266 0.976288 0.167725 0.335327 0.975128 0.203430 0.335175 0.974121 0.235352 0.335480 0.973145 0.264587 0.335785 0.972260 0.292023 0.336273 0.971375 0.318573 0.336700 0.970581 0.345398 0.337463 0.969971 0.373718 0.338928 0.969971 0.403412 0.340363 0.969940 0.435028 0.341827 0.969940 0.469238 0.343201 0.969910 0.506012 0.344666 0.969910 0.546753 0.346100 0.969879 0.591003 0.347473 0.969879 0.637543 0.348877 0.969879 0.684631 0.350250 0.969849 0.730438 0.351562 0.969818 0.773499 0.352905 0.969818 0.812469 0.354126 0.969757 0.847321 0.355316 0.969788 0.878174 0.356506 0.969757 0.905579 0.357666 0.969727 0.930115 0.358826 0.969666 0.952118 0.359985 0.969635 0.971710 0.360992 0.969482 0.989044 0.361298 0.968842 1.000000 0.367981 0.963318 1.000000 0.387482 0.948975 0.000000 0.369507 0.975647 0.043976 0.367615 0.978699 0.091583 0.367401 0.977386 0.135498 0.367065 0.976166 0.175140 0.367218 0.975006 0.210083 0.367249 0.973969 0.241364 0.367523 0.972992 0.270142 0.367889 0.972137 0.297302 0.368378 0.971283 0.323639 0.368744 0.970459 0.350189 0.369232 0.969604 0.377808 0.369873 0.968994 0.407654 0.371307 0.968964 0.439392 0.372681 0.968964 0.473663 0.374054 0.968964 0.510651 0.375427 0.968933 0.551483 0.376770 0.968872 0.595642 0.378082 0.968872 0.641754 0.379395 0.968872 0.688171 0.380646 0.968842 0.733276 0.381836 0.968811 0.775543 0.383026 0.968811 0.813751 0.384247 0.968781 0.848022 0.385345 0.968781 0.878448 0.386475 0.968719 0.905579 0.387543 0.968689 0.929901 0.388672 0.968658 0.951538 0.389709 0.968597 0.971130 0.390686 0.968536 0.988373 0.390961 0.967682 1.000000 0.396484 0.963043 1.000000 0.415436 0.948944 0.003815 0.400269 0.979858 0.053986 0.399902 0.978516 0.101135 0.399597 0.977203 0.144257 0.399384 0.975952 0.182953 0.399597 0.974823 0.217102 0.399750 0.973816 0.247650 0.399963 0.972900 0.275909 0.400482 0.972015 0.302734 0.400818 0.971161 0.328918 0.401337 0.970367 0.355316 0.401672 0.969482 0.382629 0.402008 0.968597 0.411865 0.402649 0.967957 0.443787 0.403992 0.967957 0.478119 0.405273 0.967896 0.515106 0.406525 0.967896 0.555969 0.407837 0.967896 0.599762 0.409027 0.967865 0.645416 0.410217 0.967804 0.691193 0.411407 0.967834 0.735565 0.412476 0.967773 0.777405 0.413605 0.967773 0.815094 0.414673 0.967743 0.848846 0.415771 0.967712 0.878815 0.416840 0.967651 0.905701 0.417877 0.967621 0.929565 0.418915 0.967590 0.951141 0.419952 0.967560 0.970459 0.420807 0.967407 0.987610 0.421082 0.966644 1.000000 0.425446 0.962769 1.000000 0.443817 0.949005 0.015137 0.432892 0.979614 0.064911 0.432678 0.978241 0.111328 0.432556 0.976929 0.153503 0.432312 0.975739 0.191040 0.432465 0.974640 0.224213 0.432770 0.973633 0.254059 0.432983 0.972748 0.281738 0.433411 0.971924 0.308197 0.433868 0.971069 0.334137 0.434357 0.970276 0.360504 0.434601 0.969421 0.387756 0.434967 0.968475 0.416626 0.435150 0.967468 0.447906 0.435730 0.966858 0.482147 0.436951 0.966858 0.519226 0.438171 0.966827 0.559875 0.439301 0.966766 0.603455 0.440430 0.966797 0.648560 0.441528 0.966736 0.693939 0.442596 0.966736 0.737915 0.443634 0.966705 0.778992 0.444733 0.966675 0.816162 0.445740 0.966644 0.849457 0.446747 0.966583 0.879089 0.447754 0.966553 0.905548 0.448761 0.966522 0.929352 0.449768 0.966492 0.950592 0.450714 0.966461 0.969788 0.451538 0.966217 0.986786 0.451752 0.965515 1.000000 0.454956 0.962555 1.000000 0.472839 0.948975 0.027374 0.466461 0.979309 0.076508 0.466309 0.977997 0.121979 0.466217 0.976715 0.162903 0.466064 0.975525 0.199188 0.466248 0.974426 0.231354 0.466400 0.973511 0.260406 0.466766 0.972626 0.287567 0.467194 0.971802 0.313538 0.467499 0.970978 0.339355 0.467926 0.970154 0.365509 0.468262 0.969269 0.392731 0.468536 0.968384 0.421539 0.468628 0.967407 0.452271 0.468750 0.966309 0.485870 0.469177 0.965698 0.522827 0.470276 0.965698 0.563354 0.471375 0.965668 0.606750 0.472351 0.965668 0.651703 0.473450 0.965607 0.696594 0.474396 0.965576 0.740021 0.475433 0.965546 0.780640 0.476440 0.965485 0.817108 0.477417 0.965485 0.849884 0.478424 0.965424 0.879242 0.479340 0.965393 0.905457 0.480316 0.965363 0.928894 0.481232 0.965302 0.950043 0.482208 0.965271 0.969025 0.482971 0.965057 0.985870 0.483154 0.964355 1.000000 0.485107 0.962341 1.000000 0.502502 0.949005 0.040222 0.500732 0.979034 0.088409 0.500580 0.977692 0.132690 0.500488 0.976440 0.172302 0.500397 0.975342 0.207275 0.500671 0.974274 0.238312 0.500946 0.973358 0.266632 0.501221 0.972534 0.293182 0.501556 0.971680 0.318817 0.501953 0.970856 0.344360 0.502289 0.970062 0.370361 0.502533 0.969208 0.397430 0.502655 0.968262 0.426056 0.502716 0.967285 0.456696 0.502655 0.966187 0.489655 0.502502 0.964966 0.526093 0.503052 0.964508 0.566864 0.504028 0.964447 0.610016 0.505005 0.964447 0.654755 0.506012 0.964417 0.699066 0.506927 0.964355 0.742126 0.507965 0.964325 0.781921 0.508881 0.964264 0.817993 0.509796 0.964233 0.850433 0.510773 0.964233 0.879333 0.511719 0.964172 0.905121 0.512604 0.964142 0.928406 0.513580 0.964111 0.949371 0.514435 0.964050 0.968170 0.515167 0.963898 0.984955 0.515320 0.963165 1.000000 0.516174 0.961945 1.000000 0.533875 0.948975 0.053345 0.537079 0.978729 0.100403 0.536774 0.977448 0.143311 0.536865 0.976227 0.181396 0.536835 0.975128 0.214996 0.536957 0.974121 0.245087 0.537201 0.973206 0.272583 0.537476 0.972321 0.298584 0.537720 0.971558 0.323792 0.537994 0.970734 0.348999 0.538330 0.969910 0.374817 0.538574 0.969055 0.401703 0.538696 0.968201 0.430267 0.538696 0.967163 0.460938 0.538513 0.966064 0.493927 0.538177 0.964844 0.529694 0.537872 0.963501 0.570160 0.538483 0.963196 0.613190 0.539429 0.963165 0.657562 0.540375 0.963135 0.701538 0.541351 0.963104 0.743896 0.542297 0.963043 0.783264 0.543243 0.963013 0.818787 0.544220 0.962982 0.850677 0.545105 0.962982 0.879211 0.546021 0.962921 0.904724 0.546936 0.962891 0.927826 0.547882 0.962860 0.948608 0.548767 0.962830 0.967285 0.549469 0.962555 0.984009 0.549652 0.961914 0.999451 0.549805 0.961212 1.000000 0.567352 0.949036 0.066406 0.576019 0.978455 0.112091 0.575806 0.977203 0.153503 0.575623 0.976013 0.190033 0.575531 0.974915 0.222351 0.575714 0.973938 0.251312 0.576050 0.973083 0.278198 0.576141 0.972229 0.303619 0.576385 0.971405 0.328369 0.576630 0.970642 0.353241 0.576813 0.969849 0.378845 0.576843 0.968994 0.405731 0.576782 0.968079 0.434418 0.576752 0.967041 0.465179 0.576538 0.965912 0.498260 0.576080 0.964691 0.534210 0.575592 0.963348 0.573425 0.575104 0.961914 0.616241 0.575958 0.961853 0.660248 0.576843 0.961792 0.703796 0.577759 0.961761 0.745667 0.578705 0.961761 0.784393 0.579620 0.961731 0.819427 0.580505 0.961700 0.850891 0.581421 0.961670 0.879028 0.582306 0.961639 0.904327 0.583191 0.961609 0.927185 0.584076 0.961578 0.947754 0.584991 0.961578 0.966309 0.585632 0.961334 0.982941 0.585754 0.960663 0.998383 0.585907 0.959991 1.000000 0.602478 0.949097 0.079132 0.616791 0.978149 0.123322 0.616547 0.976868 0.163147 0.616394 0.975708 0.198120 0.616333 0.974731 0.229156 0.616364 0.973785 0.257172 0.616394 0.972900 0.283295 0.616669 0.972107 0.308136 0.616730 0.971344 0.332520 0.616730 0.970520 0.357239 0.616882 0.969727 0.382904 0.616913 0.968842 0.409851 0.616760 0.967926 0.438599 0.616486 0.966888 0.469452 0.616150 0.965759 0.502502 0.615723 0.964539 0.538635 0.615112 0.963196 0.577789 0.614441 0.961761 0.619171 0.613922 0.960541 0.662811 0.614777 0.960480 0.705841 0.615692 0.960449 0.747192 0.616547 0.960449 0.785461 0.617462 0.960419 0.819885 0.618286 0.960388 0.850922 0.619141 0.960358 0.878784 0.620026 0.960327 0.903778 0.620850 0.960327 0.926361 0.621704 0.960266 0.946869 0.622498 0.960266 0.965332 0.623108 0.960022 0.981873 0.623260 0.959381 0.997284 0.623322 0.958771 1.000000 0.638885 0.949158 0.091248 0.658813 0.977844 0.133881 0.658508 0.976654 0.171997 0.658173 0.975555 0.205444 0.658081 0.974518 0.235291 0.657990 0.973602 0.262390 0.658051 0.972809 0.287842 0.657959 0.971985 0.312347 0.658020 0.971222 0.336609 0.657959 0.970428 0.361328 0.658051 0.969604 0.386963 0.657837 0.968719 0.413940 0.657684 0.967773 0.442719 0.657257 0.966736 0.473602 0.656799 0.965607 0.506775 0.656311 0.964355 0.543030 0.655579 0.963013 0.582153 0.654877 0.961639 0.623138 0.654022 0.960236 0.665192 0.653656 0.959167 0.707825 0.654449 0.959137 0.748596 0.655304 0.959137 0.786255 0.656067 0.959106 0.820251 0.656921 0.959076 0.850891 0.657684 0.959076 0.878448 0.658478 0.959045 0.903259 0.659271 0.959045 0.925598 0.660065 0.959015 0.945892 0.660858 0.959045 0.964294 0.661377 0.958801 0.980804 0.661560 0.958191 0.996185 0.662140 0.957489 1.000000 0.676727 0.949341 0.102570 0.701111 0.977600 0.143494 0.700714 0.976410 0.179871 0.700378 0.975342 0.211945 0.700073 0.974396 0.240753 0.699951 0.973511 0.267212 0.699860 0.972687 0.292297 0.699738 0.971893 0.316559 0.699738 0.971100 0.340668 0.699493 0.970306 0.365326 0.699310 0.969482 0.390961 0.699127 0.968567 0.417969 0.698822 0.967621 0.446869 0.698456 0.966583 0.477753 0.697845 0.965454 0.510986 0.697113 0.964203 0.547272 0.696289 0.962891 0.586334 0.695404 0.961517 0.627075 0.694580 0.960052 0.668365 0.693726 0.958710 0.709564 0.693512 0.957855 0.749786 0.694244 0.957825 0.786865 0.694946 0.957825 0.820496 0.695648 0.957794 0.850769 0.696411 0.957794 0.877930 0.697083 0.957764 0.902557 0.697845 0.957825 0.924744 0.698608 0.957825 0.944977 0.699371 0.957825 0.963348 0.700378 0.957642 0.979736 0.700836 0.957031 0.995056 0.701263 0.956421 1.000000 0.714325 0.949524 0.112732 0.742950 0.977325 0.151978 0.742554 0.976227 0.186829 0.742004 0.975189 0.217896 0.741699 0.974243 0.246002 0.741364 0.973358 0.271973 0.741089 0.972534 0.296692 0.740936 0.971741 0.320740 0.740723 0.970978 0.344727 0.740509 0.970184 0.369293 0.740234 0.969330 0.394897 0.739929 0.968445 0.421967 0.739502 0.967468 0.450836 0.738953 0.966431 0.481812 0.738220 0.965302 0.515045 0.737518 0.964050 0.551392 0.736603 0.962738 0.590332 0.735657 0.961365 0.630798 0.734619 0.959961 0.671722 0.733765 0.958557 0.711853 0.732819 0.957275 0.750763 0.732666 0.956573 0.787415 0.733307 0.956573 0.820557 0.733948 0.956543 0.850433 0.734619 0.956573 0.877411 0.735260 0.956604 0.901794 0.735992 0.956604 0.923981 0.737122 0.956635 0.944061 0.738190 0.956696 0.962280 0.738983 0.956573 0.978638 0.739319 0.955994 0.993896 0.739532 0.955414 1.000000 0.750946 0.949677 0.121765 0.783569 0.977112 0.159729 0.782837 0.976013 0.193481 0.782196 0.975006 0.223724 0.781891 0.974060 0.251190 0.781433 0.973206 0.276672 0.781219 0.972382 0.301025 0.780884 0.971619 0.324829 0.780640 0.970825 0.348663 0.780334 0.970032 0.373169 0.779938 0.969208 0.398712 0.779480 0.968323 0.425842 0.778839 0.967346 0.454773 0.778259 0.966309 0.485718 0.777527 0.965149 0.518951 0.776550 0.963898 0.555328 0.775635 0.962585 0.594116 0.774567 0.961243 0.634338 0.773468 0.959839 0.674835 0.772491 0.958496 0.714508 0.771545 0.957214 0.752258 0.770630 0.955933 0.787720 0.770508 0.955353 0.820526 0.771088 0.955383 0.850189 0.771698 0.955383 0.877106 0.772675 0.955444 0.901306 0.773621 0.955536 0.923187 0.774567 0.955597 0.943146 0.775482 0.955688 0.961212 0.776123 0.955566 0.977509 0.776245 0.954926 0.992798 0.776398 0.954437 1.000000 0.786163 0.950012 0.130402 0.822083 0.976868 0.167236 0.821350 0.975800 0.199982 0.820618 0.974792 0.229401 0.820038 0.973907 0.256226 0.819672 0.973053 0.281219 0.819214 0.972260 0.305237 0.818756 0.971466 0.328796 0.818359 0.970673 0.352539 0.817993 0.969879 0.376984 0.817566 0.969055 0.402527 0.817017 0.968201 0.429626 0.816437 0.967224 0.458496 0.815643 0.966156 0.489441 0.814819 0.965027 0.522705 0.813843 0.963776 0.558960 0.812775 0.962494 0.597595 0.811646 0.961121 0.637512 0.810577 0.959778 0.677704 0.809509 0.958435 0.716949 0.808441 0.957184 0.754242 0.807495 0.955963 0.788635 0.806671 0.954834 0.820709 0.806824 0.954285 0.850128 0.807617 0.954376 0.876617 0.808441 0.954437 0.900482 0.809174 0.954498 0.922180 0.809967 0.954620 0.942017 0.810730 0.954681 0.960114 0.811188 0.954651 0.976440 0.811188 0.954071 0.991760 0.811188 0.953552 1.000000 0.819458 0.950256 0.138733 0.857727 0.976624 0.174500 0.856964 0.975555 0.206268 0.856445 0.974609 0.234863 0.855652 0.973724 0.261078 0.855286 0.972900 0.285614 0.854645 0.972107 0.309326 0.854218 0.971313 0.332642 0.853729 0.970551 0.356293 0.853210 0.969757 0.380615 0.852722 0.968933 0.406067 0.852081 0.968048 0.433167 0.851288 0.967102 0.462036 0.850555 0.966064 0.492920 0.849670 0.964905 0.526154 0.848572 0.963654 0.562378 0.847504 0.962372 0.600769 0.846344 0.961060 0.640381 0.845154 0.959717 0.680206 0.844055 0.958435 0.719025 0.842896 0.957153 0.756470 0.842194 0.955994 0.790588 0.841553 0.954926 0.821411 0.841034 0.953979 0.849579 0.840973 0.953430 0.875763 0.841583 0.953552 0.899506 0.842163 0.953613 0.921143 0.842804 0.953766 0.940979 0.843384 0.953857 0.959045 0.843811 0.953796 0.975403 0.843689 0.953247 0.990753 0.843597 0.952759 1.000000 0.850281 0.950562 0.146851 0.890442 0.976410 0.181458 0.889587 0.975372 0.212219 0.888885 0.974396 0.240082 0.888092 0.973572 0.265747 0.887634 0.972748 0.289856 0.886963 0.971954 0.313232 0.886566 0.971191 0.336365 0.885925 0.970428 0.359833 0.885284 0.969635 0.384125 0.884735 0.968811 0.409485 0.884094 0.967926 0.436523 0.883331 0.966980 0.465363 0.882416 0.965942 0.496185 0.881439 0.964813 0.529327 0.880371 0.963593 0.565491 0.879181 0.962341 0.603638 0.877960 0.961029 0.642975 0.876770 0.959686 0.683014 0.875854 0.958435 0.721802 0.874908 0.957245 0.758301 0.874115 0.956116 0.791779 0.873352 0.955109 0.822174 0.872711 0.954224 0.849701 0.872131 0.953339 0.874878 0.871796 0.952759 0.898560 0.872223 0.952820 0.920105 0.872772 0.953003 0.939972 0.873260 0.953094 0.958099 0.873505 0.953064 0.974487 0.873291 0.952545 0.989838 0.873169 0.951996 1.000000 0.878510 0.950867 0.154602 0.919647 0.976166 0.188141 0.918579 0.975159 0.217896 0.917938 0.974243 0.245056 0.917145 0.973389 0.270081 0.916595 0.972626 0.293884 0.915955 0.971863 0.316956 0.915375 0.971069 0.339905 0.914856 0.970306 0.363220 0.914124 0.969513 0.387360 0.913605 0.968719 0.412689 0.912750 0.967834 0.439606 0.911957 0.966888 0.468414 0.911102 0.965881 0.499084 0.910034 0.964783 0.532227 0.908966 0.963562 0.568146 0.907745 0.962280 0.606842 0.906677 0.961029 0.646332 0.905579 0.959747 0.685455 0.904572 0.958557 0.723450 0.903534 0.957397 0.759369 0.902618 0.956268 0.792450 0.901855 0.955322 0.822571 0.901093 0.954437 0.849915 0.900452 0.953644 0.874908 0.899902 0.952881 0.897705 0.899384 0.952240 0.919250 0.899689 0.952332 0.939148 0.900085 0.952454 0.957275 0.900269 0.952362 0.973694 0.899994 0.951935 0.989044 0.899902 0.951477 1.000000 0.904083 0.951294 0.161957 0.945557 0.975952 0.194427 0.944672 0.974976 0.223328 0.943787 0.974091 0.249725 0.943176 0.973267 0.274292 0.942566 0.972473 0.297668 0.941895 0.971710 0.320465 0.941223 0.970978 0.343201 0.940674 0.970245 0.366364 0.940033 0.969452 0.390381 0.939240 0.968597 0.415649 0.938568 0.967773 0.442474 0.937622 0.966858 0.471161 0.936798 0.965851 0.501648 0.935669 0.964722 0.535461 0.934662 0.963531 0.571747 0.933563 0.962341 0.609680 0.932495 0.961121 0.648346 0.931366 0.959900 0.686859 0.930267 0.958710 0.724396 0.929260 0.957581 0.759949 0.928314 0.956543 0.792786 0.927399 0.955566 0.822815 0.926605 0.954712 0.850128 0.925903 0.953888 0.875122 0.925232 0.953186 0.897919 0.924713 0.952545 0.918732 0.924194 0.951904 0.938446 0.924347 0.951904 0.956635 0.924530 0.951904 0.972992 0.924255 0.951416 0.988312 0.924072 0.951080 1.000000 0.927124 0.951752 0.168915 0.968811 0.975739 0.200165 0.967957 0.974792 0.228363 0.967163 0.973938 0.254150 0.966370 0.973114 0.278198 0.965820 0.972321 0.301178 0.965179 0.971649 0.323730 0.964508 0.970886 0.346191 0.963806 0.970154 0.369232 0.963165 0.969391 0.393127 0.962524 0.968597 0.418274 0.961700 0.967773 0.445007 0.960876 0.966827 0.474213 0.960022 0.965851 0.505066 0.959015 0.964752 0.538330 0.958008 0.963623 0.573944 0.956818 0.962463 0.611328 0.955719 0.961273 0.649506 0.954559 0.960083 0.687653 0.953491 0.958984 0.724915 0.952423 0.957855 0.760345 0.951416 0.956818 0.793121 0.950500 0.955841 0.823151 0.949677 0.954987 0.850525 0.948883 0.954224 0.875488 0.948212 0.953461 0.898346 0.947632 0.952789 0.919189 0.947174 0.952271 0.938293 0.946777 0.951752 0.956085 0.946533 0.951508 0.972382 0.946167 0.951111 0.987640 0.945892 0.950775 1.000000 0.947784 0.952209 0.174622 0.989288 0.975037 0.204895 0.988464 0.974060 0.232391 0.987701 0.973145 0.257507 0.987000 0.972412 0.281097 0.986359 0.971741 0.303741 0.985718 0.971008 0.325989 0.985077 0.970215 0.348297 0.984436 0.969482 0.371155 0.983734 0.968811 0.394958 0.983032 0.968048 0.420563 0.982269 0.967133 0.447662 0.981445 0.966248 0.476257 0.980530 0.965332 0.506592 0.979553 0.964233 0.539337 0.978485 0.963135 0.574524 0.977386 0.962036 0.611511 0.976257 0.960876 0.649445 0.975128 0.959747 0.687439 0.973999 0.958618 0.724640 0.972931 0.957489 0.760132 0.971893 0.956482 0.792938 0.970947 0.955566 0.823059 0.970093 0.954681 0.850494 0.969299 0.953857 0.875580 0.968597 0.953247 0.898407 0.967987 0.952606 0.919159 0.967468 0.952148 0.938202 0.966980 0.951691 0.955841 0.966705 0.951447 0.972412 0.966614 0.951385 0.987518 0.966156 0.950958 1.000000 0.966553 0.952576 0.190460 1.000000 0.966370 0.218597 1.000000 0.966309 0.244171 1.000000 0.966217 0.267761 1.000000 0.966125 0.289917 1.000000 0.966064 0.311340 1.000000 0.966003 0.332428 1.000000 0.965912 0.353638 1.000000 0.965851 0.376038 1.000000 0.965851 0.399170 1.000000 0.965698 0.423431 1.000000 0.965668 0.448975 1.000000 0.965607 0.477051 0.999115 0.964691 0.506989 0.998169 0.963684 0.539398 0.997131 0.962585 0.574371 0.996033 0.961517 0.611176 0.994873 0.960358 0.649109 0.993744 0.959259 0.687195 0.992615 0.958160 0.724487 0.991547 0.957001 0.760101 0.990509 0.956024 0.793091 0.989594 0.955048 0.823303 0.988678 0.954285 0.850800 0.987854 0.953522 0.875732 0.987183 0.952911 0.898407 0.986511 0.952332 0.919037 0.985901 0.951843 0.937836 0.985321 0.951355 0.955353 0.984924 0.951080 0.972046 0.984955 0.951263 0.987610 0.984924 0.951324 1.000000 0.983887 0.952881 0.219513 1.000000 0.948914 0.246460 1.000000 0.948944 0.271027 1.000000 0.948944 0.293732 1.000000 0.949127 0.315186 1.000000 0.949127 0.335938 1.000000 0.949036 0.357056 1.000000 0.949249 0.378204 1.000000 0.949310 0.399658 1.000000 0.949371 0.421936 1.000000 0.949554 0.445251 1.000000 0.949524 0.470032 1.000000 0.949615 0.496399 1.000000 0.949860 0.525085 1.000000 0.949921 0.556763 1.000000 0.950134 0.590881 1.000000 0.950226 0.626770 1.000000 0.950378 0.663635 1.000000 0.950562 0.700562 1.000000 0.950684 0.736755 1.000000 0.950836 0.771118 1.000000 0.951019 0.802826 1.000000 0.951233 0.831635 1.000000 0.951477 0.857758 1.000000 0.951721 0.881378 1.000000 0.951965 0.902802 1.000000 0.952179 0.922241 1.000000 0.952362 0.940125 1.000000 0.952576 0.956604 1.000000 0.952728 0.971924 1.000000 0.952881 0.986328 1.000000 0.953003 1.000000 1.000000 0.953094 0.000000 0.025665 0.991028 0.032837 0.013245 1.000000 0.077942 0.014771 1.000000 0.120575 0.016296 1.000000 0.159882 0.017822 1.000000 0.195618 0.019287 1.000000 0.227875 0.020752 1.000000 0.256744 0.022247 1.000000 0.283783 0.023712 1.000000 0.309387 0.025146 1.000000 0.334351 0.026703 1.000000 0.359558 0.028198 1.000000 0.385498 0.029785 1.000000 0.412750 0.031433 1.000000 0.442505 0.033081 1.000000 0.475037 0.034821 1.000000 0.510620 0.036713 1.000000 0.551270 0.038544 1.000000 0.596008 0.040588 1.000000 0.643524 0.042480 1.000000 0.691895 0.044250 1.000000 0.739258 0.046173 1.000000 0.783783 0.048096 1.000000 0.823669 0.050079 1.000000 0.859192 0.052155 1.000000 0.890533 0.054260 1.000000 0.918182 0.056396 1.000000 0.942627 0.058594 1.000000 0.964661 0.060791 1.000000 0.984283 0.063019 1.000000 1.000000 0.068451 0.997650 1.000000 0.094452 0.981079 0.000000 0.061127 0.991028 0.031494 0.048676 1.000000 0.075775 0.049286 1.000000 0.118774 0.050690 1.000000 0.158478 0.052094 1.000000 0.194275 0.053467 1.000000 0.226349 0.054901 1.000000 0.255615 0.056305 1.000000 0.282440 0.057770 1.000000 0.308289 0.059143 1.000000 0.333282 0.060669 1.000000 0.358551 0.062195 1.000000 0.384918 0.063812 1.000000 0.412781 0.065491 1.000000 0.443054 0.067230 1.000000 0.476135 0.069031 1.000000 0.512360 0.070984 1.000000 0.553345 0.072723 1.000000 0.598328 0.074463 1.000000 0.646027 0.076233 1.000000 0.694397 0.078094 1.000000 0.741760 0.080017 1.000000 0.786163 0.081970 1.000000 0.825775 0.084015 1.000000 0.860870 0.086029 1.000000 0.891846 0.088104 1.000000 0.919250 0.090210 1.000000 0.943542 0.092346 1.000000 0.965027 0.094482 1.000000 0.984589 0.096588 1.000000 1.000000 0.102051 0.997559 1.000000 0.127350 0.981140 0.000000 0.095947 0.990692 0.031219 0.084045 1.000000 0.074554 0.083496 1.000000 0.117157 0.084259 1.000000 0.156952 0.085571 1.000000 0.192993 0.086945 1.000000 0.225128 0.088257 1.000000 0.254303 0.089661 1.000000 0.281342 0.091125 1.000000 0.306976 0.092560 1.000000 0.332428 0.094086 1.000000 0.358368 0.095673 1.000000 0.385101 0.097321 1.000000 0.413666 0.099030 1.000000 0.444336 0.100861 1.000000 0.477814 0.102570 1.000000 0.514435 0.104218 1.000000 0.555908 0.105865 1.000000 0.601379 0.107666 1.000000 0.649292 0.109467 1.000000 0.697601 0.111328 1.000000 0.744904 0.113281 1.000000 0.788818 0.115173 1.000000 0.828033 0.117188 1.000000 0.862640 0.119171 1.000000 0.893250 0.121155 1.000000 0.920166 0.123199 1.000000 0.944275 0.125244 1.000000 0.965637 0.127258 1.000000 0.984924 0.129303 1.000000 1.000000 0.134796 0.997467 1.000000 0.159363 0.981079 0.000000 0.129425 0.990692 0.031219 0.118561 1.000000 0.074554 0.117981 1.000000 0.115509 0.117218 1.000000 0.155212 0.118317 1.000000 0.191406 0.119659 1.000000 0.223633 0.121033 1.000000 0.252899 0.122406 1.000000 0.280334 0.123840 1.000000 0.306641 0.125397 1.000000 0.332733 0.126892 1.000000 0.358978 0.128510 1.000000 0.386261 0.130249 1.000000 0.415192 0.131897 1.000000 0.446198 0.133423 1.000000 0.479950 0.135040 1.000000 0.517242 0.136719 1.000000 0.558960 0.138428 1.000000 0.604828 0.140228 1.000000 0.652802 0.141968 1.000000 0.701447 0.143860 1.000000 0.748108 0.145752 1.000000 0.791473 0.147583 1.000000 0.830292 0.149567 1.000000 0.864594 0.151489 1.000000 0.894592 0.153381 1.000000 0.921387 0.155334 1.000000 0.945038 0.157227 1.000000 0.966248 0.159119 1.000000 0.985229 0.161041 1.000000 1.000000 0.166534 0.997223 1.000000 0.190369 0.981049 0.000000 0.162079 0.990692 0.031219 0.152222 1.000000 0.074554 0.151611 1.000000 0.115509 0.150818 1.000000 0.153442 0.150391 1.000000 0.189789 0.151764 1.000000 0.222473 0.153107 1.000000 0.252472 0.154510 1.000000 0.280457 0.155945 1.000000 0.307159 0.157532 1.000000 0.333557 0.159149 1.000000 0.360229 0.160675 1.000000 0.387726 0.162140 1.000000 0.416901 0.163696 1.000000 0.448486 0.165253 1.000000 0.482697 0.166901 1.000000 0.520569 0.168579 1.000000 0.562866 0.170288 1.000000 0.608978 0.172028 1.000000 0.657043 0.173798 1.000000 0.705383 0.175598 1.000000 0.751648 0.177429 1.000000 0.794617 0.179199 1.000000 0.832703 0.181030 1.000000 0.866455 0.182922 1.000000 0.896027 0.184692 1.000000 0.922485 0.186523 1.000000 0.945679 0.188293 1.000000 0.966736 0.190033 1.000000 0.985565 0.191803 1.000000 1.000000 0.197266 0.997162 1.000000 0.220459 0.981079 0.000000 0.193939 0.990692 0.031219 0.185333 1.000000 0.074554 0.184723 1.000000 0.115509 0.184113 1.000000 0.153961 0.183411 1.000000 0.189606 0.183167 1.000000 0.222839 0.184540 1.000000 0.253113 0.186005 1.000000 0.281555 0.187500 1.000000 0.308380 0.188995 1.000000 0.334869 0.190369 1.000000 0.361633 0.191803 1.000000 0.389679 0.193298 1.000000 0.419281 0.194855 1.000000 0.451355 0.196411 1.000000 0.485992 0.198029 1.000000 0.524323 0.199646 1.000000 0.567139 0.201355 1.000000 0.613495 0.203064 1.000000 0.661438 0.204742 1.000000 0.709473 0.206482 1.000000 0.755402 0.208221 1.000000 0.797546 0.209930 1.000000 0.835114 0.211670 1.000000 0.868256 0.213379 1.000000 0.897552 0.215057 1.000000 0.923462 0.216736 1.000000 0.946594 0.218353 1.000000 0.967194 0.219971 1.000000 0.985901 0.221619 1.000000 1.000000 0.227112 0.996918 1.000000 0.249512 0.981079 0.000000 0.225250 0.990692 0.031219 0.217346 1.000000 0.075348 0.216888 1.000000 0.117432 0.216339 1.000000 0.156555 0.215851 1.000000 0.191925 0.215302 1.000000 0.224213 0.215363 1.000000 0.254730 0.216766 1.000000 0.282898 0.218048 1.000000 0.310028 0.219391 1.000000 0.336670 0.220825 1.000000 0.363739 0.222260 1.000000 0.392059 0.223785 1.000000 0.422119 0.225311 1.000000 0.454529 0.226837 1.000000 0.489746 0.228455 1.000000 0.528473 0.230011 1.000000 0.571869 0.231628 1.000000 0.618286 0.233276 1.000000 0.666077 0.234924 1.000000 0.713715 0.236511 1.000000 0.759094 0.238190 1.000000 0.800476 0.239777 1.000000 0.837494 0.241394 1.000000 0.870056 0.242981 1.000000 0.898834 0.244537 1.000000 0.924530 0.246094 1.000000 0.947174 0.247589 1.000000 0.967712 0.249084 1.000000 0.986237 0.250488 1.000000 1.000000 0.255981 0.996735 1.000000 0.277679 0.981018 0.000000 0.255188 0.991241 0.033478 0.248657 1.000000 0.078491 0.248352 1.000000 0.121063 0.247681 1.000000 0.160461 0.247406 1.000000 0.195801 0.246857 1.000000 0.227264 0.246429 1.000000 0.256592 0.246613 1.000000 0.284882 0.247925 1.000000 0.312103 0.249329 1.000000 0.338989 0.250732 1.000000 0.366333 0.252167 1.000000 0.394928 0.253662 1.000000 0.425354 0.255127 1.000000 0.458160 0.256653 1.000000 0.493805 0.258179 1.000000 0.532990 0.259735 1.000000 0.576691 0.261322 1.000000 0.623138 0.262909 1.000000 0.670807 0.264404 1.000000 0.717957 0.265961 1.000000 0.762695 0.267548 1.000000 0.803345 0.269012 1.000000 0.839600 0.270508 1.000000 0.871674 0.271973 1.000000 0.900116 0.273407 1.000000 0.925385 0.274811 1.000000 0.947845 0.276184 1.000000 0.968140 0.277527 1.000000 0.986420 0.278809 1.000000 1.000000 0.284241 0.996582 1.000000 0.305359 0.981140 0.000000 0.283844 0.993713 0.037903 0.279633 1.000000 0.083374 0.279388 1.000000 0.126190 0.279022 1.000000 0.165253 0.278503 1.000000 0.200226 0.277863 1.000000 0.231537 0.277588 1.000000 0.260071 0.277191 1.000000 0.287262 0.277466 1.000000 0.314514 0.278870 1.000000 0.341614 0.280304 1.000000 0.369202 0.281677 1.000000 0.398224 0.283173 1.000000 0.428864 0.284607 1.000000 0.462158 0.286102 1.000000 0.498077 0.287628 1.000000 0.537842 0.289093 1.000000 0.581665 0.290588 1.000000 0.628143 0.292084 1.000000 0.675476 0.293518 1.000000 0.722046 0.294983 1.000000 0.766022 0.296448 1.000000 0.806091 0.297821 1.000000 0.841644 0.299225 1.000000 0.873199 0.300537 1.000000 0.901245 0.301910 1.000000 0.926178 0.303192 1.000000 0.948456 0.304382 1.000000 0.968445 0.305603 1.000000 0.986786 0.306824 1.000000 1.000000 0.312286 0.996429 1.000000 0.332794 0.981018 0.000000 0.311920 0.997467 0.044037 0.310425 1.000000 0.089386 0.309784 1.000000 0.131958 0.309540 1.000000 0.170898 0.309052 1.000000 0.205475 0.308777 1.000000 0.236450 0.308502 1.000000 0.264740 0.308167 1.000000 0.291168 0.308014 1.000000 0.317413 0.308319 1.000000 0.344543 0.309723 1.000000 0.372375 0.311127 1.000000 0.401550 0.312561 1.000000 0.432739 0.313995 1.000000 0.466278 0.315430 1.000000 0.502594 0.316864 1.000000 0.542511 0.318298 1.000000 0.586487 0.319702 1.000000 0.632843 0.321075 1.000000 0.679657 0.322510 1.000000 0.725891 0.323853 1.000000 0.769257 0.325226 1.000000 0.808594 0.326477 1.000000 0.843597 0.327759 1.000000 0.874542 0.328979 1.000000 0.902161 0.330200 1.000000 0.926910 0.331360 1.000000 0.948883 0.332489 1.000000 0.968811 0.333649 1.000000 0.987030 0.334747 1.000000 1.000000 0.340210 0.996307 1.000000 0.360260 0.981110 0.003235 0.341125 1.000000 0.051086 0.340759 1.000000 0.096558 0.340576 1.000000 0.138947 0.340057 1.000000 0.177429 0.339996 1.000000 0.211426 0.339630 1.000000 0.241943 0.339600 1.000000 0.269836 0.339355 1.000000 0.296021 0.339294 1.000000 0.321533 0.338959 1.000000 0.347565 0.339203 1.000000 0.375488 0.340637 1.000000 0.404968 0.342010 1.000000 0.436401 0.343384 1.000000 0.470245 0.344757 1.000000 0.506866 0.346161 1.000000 0.547180 0.347534 1.000000 0.591125 0.348846 1.000000 0.637390 0.350189 1.000000 0.683868 0.351471 1.000000 0.729248 0.352783 1.000000 0.771973 0.353973 1.000000 0.810547 0.355133 1.000000 0.845093 0.356354 1.000000 0.875702 0.357452 1.000000 0.903107 0.358582 1.000000 0.927582 0.359680 1.000000 0.949402 0.360748 1.000000 0.969208 0.361847 1.000000 0.987183 0.362915 1.000000 1.000000 0.368408 0.996216 1.000000 0.387848 0.981049 0.011658 0.371643 1.000000 0.059662 0.371521 1.000000 0.104919 0.371368 1.000000 0.146851 0.371124 1.000000 0.184570 0.371033 1.000000 0.217865 0.371033 1.000000 0.247742 0.370789 1.000000 0.275146 0.370911 1.000000 0.301117 0.370850 1.000000 0.326447 0.370514 1.000000 0.351868 0.370331 1.000000 0.378784 0.370361 1.000000 0.408447 0.371735 1.000000 0.439972 0.373047 1.000000 0.474213 0.374359 1.000000 0.510925 0.375671 1.000000 0.551605 0.376953 1.000000 0.595520 0.378235 1.000000 0.641296 0.379486 1.000000 0.687408 0.380646 1.000000 0.732239 0.381805 1.000000 0.774231 0.382935 1.000000 0.812378 0.384033 1.000000 0.846466 0.385132 1.000000 0.876801 0.386200 1.000000 0.903870 0.387238 1.000000 0.928131 0.388336 1.000000 0.949829 0.389343 1.000000 0.969543 0.390350 1.000000 0.987366 0.391388 1.000000 1.000000 0.396851 0.996124 1.000000 0.415802 0.981079 0.021515 0.402893 1.000000 0.069397 0.402832 1.000000 0.114166 0.402710 1.000000 0.155365 0.402740 1.000000 0.192139 0.402710 1.000000 0.224579 0.402710 1.000000 0.253784 0.402771 1.000000 0.280701 0.402710 1.000000 0.306366 0.402710 1.000000 0.331482 0.402679 1.000000 0.356842 0.402435 1.000000 0.383087 0.401825 1.000000 0.411560 0.401825 1.000000 0.443481 0.403076 1.000000 0.477722 0.404358 1.000000 0.514801 0.405579 1.000000 0.555420 0.406799 0.999969 0.599274 0.408051 0.999939 0.644745 0.409180 0.999878 0.690277 0.410339 0.999878 0.734711 0.411438 0.999817 0.776245 0.412567 0.999786 0.813843 0.413605 0.999725 0.847656 0.414703 0.999725 0.877625 0.415741 0.999664 0.904327 0.416809 0.999634 0.928375 0.417847 0.999603 0.949860 0.418823 0.999573 0.969391 0.419891 0.999542 0.987122 0.420868 0.999481 1.000000 0.425781 0.995972 1.000000 0.444214 0.981110 0.032562 0.434753 1.000000 0.079987 0.434784 1.000000 0.123993 0.434753 1.000000 0.164215 0.434906 1.000000 0.199829 0.434875 1.000000 0.231415 0.435089 1.000000 0.259918 0.434967 1.000000 0.286285 0.435211 1.000000 0.311646 0.435181 1.000000 0.336548 0.435333 1.000000 0.361755 0.435059 1.000000 0.387970 0.434631 1.000000 0.416138 0.434143 0.999664 0.447449 0.434723 0.999054 0.481720 0.435944 0.999023 0.518677 0.437073 0.998962 0.559418 0.438263 0.998932 0.602783 0.439392 0.998901 0.647827 0.440460 0.998840 0.693054 0.441559 0.998810 0.736938 0.442627 0.998779 0.777863 0.443604 0.998749 0.815033 0.444702 0.998718 0.848328 0.445679 0.998688 0.877899 0.446686 0.998657 0.904297 0.447693 0.998627 0.928040 0.448700 0.998596 0.949371 0.449677 0.998566 0.968597 0.450623 0.998535 0.986359 0.451569 0.998505 1.000000 0.455322 0.995850 1.000000 0.473206 0.981079 0.044403 0.467285 1.000000 0.091095 0.467468 1.000000 0.134186 0.467590 1.000000 0.173279 0.467621 1.000000 0.207611 0.467804 1.000000 0.238220 0.468048 1.000000 0.266022 0.468262 1.000000 0.291870 0.468353 1.000000 0.316772 0.468506 1.000000 0.341461 0.468414 1.000000 0.366547 0.468262 1.000000 0.392700 0.467957 1.000000 0.420959 0.467712 0.999481 0.451721 0.467651 0.998505 0.485382 0.468201 0.997925 0.522186 0.469269 0.997894 0.562836 0.470306 0.997864 0.606171 0.471405 0.997833 0.650940 0.472382 0.997803 0.695770 0.473389 0.997772 0.739075 0.474457 0.997742 0.779510 0.475372 0.997681 0.816010 0.476379 0.997650 0.848724 0.477356 0.997620 0.877991 0.478241 0.997589 0.904205 0.479279 0.997559 0.927521 0.480194 0.997498 0.948700 0.481110 0.997467 0.967987 0.482086 0.997467 0.985474 0.483002 0.997406 1.000000 0.485504 0.995667 1.000000 0.502808 0.981079 0.056702 0.500763 1.000000 0.102356 0.501038 1.000000 0.144470 0.501221 1.000000 0.182190 0.501404 1.000000 0.215302 0.501465 1.000000 0.244873 0.501862 1.000000 0.271912 0.502014 1.000000 0.297241 0.502197 1.000000 0.321808 0.502380 1.000000 0.346222 0.502411 1.000000 0.371124 0.502319 1.000000 0.397156 0.502014 1.000000 0.425415 0.501740 0.999359 0.456055 0.501678 0.998352 0.489105 0.501526 0.997223 0.525513 0.502014 0.996765 0.566162 0.503021 0.996704 0.609344 0.503998 0.996704 0.653961 0.505005 0.996674 0.698273 0.505951 0.996613 0.741058 0.506866 0.996613 0.780914 0.507843 0.996552 0.816925 0.508789 0.996521 0.849243 0.509735 0.996490 0.878052 0.510651 0.996460 0.903839 0.511566 0.996429 0.927124 0.512451 0.996399 0.948059 0.513367 0.996368 0.967041 0.514282 0.996307 0.984497 0.515198 0.996307 1.000000 0.516571 0.995575 1.000000 0.534210 0.981140 0.069244 0.536255 1.000000 0.113922 0.536560 1.000000 0.154510 0.536652 1.000000 0.190857 0.537109 1.000000 0.222656 0.537201 1.000000 0.251282 0.537628 1.000000 0.277588 0.537781 1.000000 0.302338 0.538025 1.000000 0.326477 0.538116 1.000000 0.350647 0.538239 1.000000 0.375336 0.538086 1.000000 0.401184 0.537720 1.000000 0.429626 0.537628 0.999207 0.460327 0.537384 0.998199 0.493378 0.537079 0.997040 0.529083 0.536682 0.995819 0.569489 0.537415 0.995544 0.612488 0.538391 0.995514 0.656708 0.539307 0.995483 0.700745 0.540314 0.995453 0.742920 0.541229 0.995422 0.782135 0.542175 0.995392 0.817596 0.543121 0.995361 0.849487 0.544006 0.995331 0.877899 0.544891 0.995300 0.903473 0.545837 0.995270 0.926514 0.546753 0.995239 0.947327 0.547638 0.995209 0.966217 0.548584 0.995148 0.983612 0.549438 0.995148 0.999481 0.550110 0.994934 1.000000 0.567688 0.981110 0.081696 0.574097 1.000000 0.124908 0.574432 1.000000 0.164215 0.574677 1.000000 0.199005 0.575104 1.000000 0.229584 0.575287 1.000000 0.257263 0.575653 1.000000 0.282837 0.576019 1.000000 0.307068 0.576141 1.000000 0.330811 0.576263 1.000000 0.354645 0.576294 1.000000 0.379181 0.576111 1.000000 0.405121 0.575775 1.000000 0.433746 0.575562 0.999115 0.464539 0.575317 0.998047 0.497742 0.574951 0.996887 0.533569 0.574402 0.995667 0.572754 0.573853 0.994385 0.615631 0.574799 0.994324 0.659485 0.575714 0.994293 0.702881 0.576630 0.994263 0.744629 0.577576 0.994232 0.783325 0.578461 0.994202 0.818237 0.579346 0.994171 0.849609 0.580261 0.994141 0.877777 0.581146 0.994110 0.903107 0.582031 0.994080 0.925751 0.582916 0.994049 0.946503 0.583801 0.994019 0.965271 0.584686 0.993988 0.982513 0.585541 0.993958 0.998413 0.586182 0.993805 1.000000 0.602783 0.981049 0.093750 0.614075 1.000000 0.135590 0.614380 1.000000 0.173340 0.614685 1.000000 0.206635 0.614868 1.000000 0.236023 0.615173 1.000000 0.262787 0.615448 1.000000 0.287628 0.615814 1.000000 0.311371 0.615997 1.000000 0.334778 0.615997 1.000000 0.358551 0.616119 1.000000 0.383087 0.615875 1.000000 0.409149 0.615509 0.999878 0.437927 0.615417 0.998962 0.468811 0.614899 0.997925 0.501984 0.614532 0.996765 0.538025 0.613983 0.995544 0.577148 0.613251 0.994263 0.618500 0.612762 0.993103 0.661896 0.613586 0.993073 0.704956 0.614471 0.993011 0.746185 0.615356 0.993011 0.784210 0.616211 0.992981 0.818634 0.617096 0.992950 0.849670 0.617889 0.992920 0.877502 0.618805 0.992920 0.902527 0.619659 0.992889 0.925079 0.620453 0.992859 0.945557 0.621338 0.992798 0.964233 0.622192 0.992767 0.981476 0.623016 0.992767 0.997284 0.623627 0.992584 1.000000 0.639435 0.981079 0.105255 0.654968 1.000000 0.145477 0.655396 1.000000 0.181641 0.655701 1.000000 0.213501 0.655945 1.000000 0.241791 0.656128 1.000000 0.267700 0.656433 1.000000 0.291962 0.656647 1.000000 0.315399 0.656799 1.000000 0.338684 0.656952 1.000000 0.362335 0.656921 1.000000 0.386993 0.656647 1.000000 0.413239 0.656342 0.999756 0.442047 0.656036 0.998810 0.472992 0.655579 0.997772 0.506226 0.655060 0.996613 0.542389 0.654327 0.995392 0.581451 0.653564 0.994110 0.622345 0.652740 0.992767 0.664307 0.652405 0.991821 0.706848 0.653198 0.991791 0.747498 0.654022 0.991791 0.785095 0.654816 0.991760 0.819061 0.655609 0.991730 0.849609 0.656403 0.991699 0.877045 0.657227 0.991669 0.901947 0.658020 0.991638 0.924225 0.658783 0.991638 0.944611 0.659576 0.991608 0.963226 0.660400 0.991577 0.980408 0.661530 0.991547 0.996185 0.662628 0.991364 1.000000 0.677277 0.981079 0.115814 0.696350 1.000000 0.154480 0.696716 1.000000 0.189087 0.696838 1.000000 0.219513 0.697144 1.000000 0.246979 0.697449 1.000000 0.272308 0.697479 1.000000 0.296204 0.697723 1.000000 0.319427 0.697876 1.000000 0.342590 0.697937 1.000000 0.366211 0.697968 1.000000 0.390839 0.697754 1.000000 0.417267 0.697418 0.999603 0.446167 0.697021 0.998657 0.477142 0.696533 0.997620 0.510376 0.695770 0.996460 0.546570 0.694977 0.995239 0.585632 0.694092 0.993958 0.626251 0.693268 0.992645 0.667419 0.692383 0.991364 0.708496 0.692200 0.990601 0.748627 0.692871 0.990570 0.785675 0.693634 0.990570 0.819183 0.694366 0.990540 0.849426 0.695068 0.990509 0.876617 0.695801 0.990479 0.901154 0.696564 0.990479 0.923462 0.697296 0.990448 0.943665 0.698273 0.990417 0.962250 0.699585 0.990387 0.979340 0.700775 0.990326 0.995026 0.701721 0.990082 1.000000 0.714722 0.981079 0.125336 0.737457 1.000000 0.162415 0.737549 1.000000 0.195648 0.737671 1.000000 0.225250 0.737915 1.000000 0.252014 0.738129 1.000000 0.276825 0.738373 1.000000 0.300385 0.738464 1.000000 0.323425 0.738647 1.000000 0.346466 0.738678 1.000000 0.369995 0.738678 1.000000 0.394653 0.738525 1.000000 0.421234 0.738098 0.999481 0.450165 0.737579 0.998535 0.481201 0.736969 0.997467 0.514374 0.736053 0.996307 0.550659 0.735199 0.995087 0.589569 0.734222 0.993835 0.629944 0.733307 0.992523 0.670746 0.732300 0.991272 0.710815 0.731415 0.990051 0.749573 0.731293 0.989410 0.786194 0.731934 0.989380 0.819244 0.732605 0.989349 0.849152 0.733246 0.989319 0.876129 0.733917 0.989319 0.900543 0.734833 0.989288 0.922699 0.735901 0.989258 0.942780 0.737030 0.989227 0.961151 0.738098 0.989197 0.978241 0.739136 0.989166 0.993896 0.739960 0.988922 1.000000 0.751282 0.981110 0.133728 0.777130 1.000000 0.169800 0.777161 1.000000 0.201996 0.777466 1.000000 0.230774 0.777466 1.000000 0.256927 0.777740 1.000000 0.281311 0.777893 1.000000 0.304504 0.778015 1.000000 0.327301 0.778046 1.000000 0.350250 0.778229 1.000000 0.373718 0.778137 1.000000 0.398315 0.777985 1.000000 0.425140 0.777466 0.999390 0.453979 0.776886 0.998444 0.485077 0.776123 0.997345 0.518280 0.775208 0.996216 0.554504 0.774139 0.994965 0.593262 0.773132 0.993713 0.633362 0.772156 0.992432 0.673798 0.771088 0.991180 0.713409 0.770172 0.989960 0.751038 0.769257 0.988800 0.786530 0.769135 0.988220 0.819244 0.769714 0.988220 0.848907 0.770477 0.988190 0.875732 0.771454 0.988159 0.899933 0.772400 0.988098 0.921875 0.773315 0.988098 0.941833 0.774261 0.988068 0.960144 0.775146 0.988037 0.977112 0.776062 0.988007 0.992767 0.776703 0.987793 1.000000 0.786469 0.981110 0.141998 0.814789 1.000000 0.176941 0.815033 1.000000 0.208160 0.815094 1.000000 0.236084 0.815186 1.000000 0.261688 0.815399 1.000000 0.285614 0.815460 1.000000 0.308533 0.815552 1.000000 0.331146 0.815674 1.000000 0.353943 0.815674 1.000000 0.377350 0.815613 1.000000 0.401917 0.815521 1.000000 0.428802 0.814972 0.999268 0.457733 0.814301 0.998291 0.488739 0.813385 0.997223 0.521942 0.812408 0.996063 0.558136 0.811340 0.994873 0.596741 0.810303 0.993591 0.636505 0.809143 0.992340 0.676636 0.808044 0.991089 0.715790 0.807037 0.989868 0.752960 0.806152 0.988739 0.787476 0.805420 0.987640 0.819489 0.805542 0.987091 0.848755 0.806366 0.987061 0.875183 0.807159 0.987030 0.899109 0.807953 0.987000 0.920837 0.808685 0.987000 0.940735 0.809418 0.986969 0.959045 0.810211 0.986938 0.976074 0.810974 0.986908 0.991730 0.811462 0.986664 1.000000 0.819702 0.981079 0.149963 0.850067 1.000000 0.183868 0.850220 1.000000 0.214142 0.850250 1.000000 0.241272 0.850464 1.000000 0.266296 0.850494 1.000000 0.289795 0.850586 1.000000 0.312439 0.850647 1.000000 0.334808 0.850708 1.000000 0.357483 0.850769 1.000000 0.380829 0.850800 1.000000 0.405334 0.850647 1.000000 0.432404 0.849945 0.999146 0.461212 0.849152 0.998169 0.492157 0.848145 0.997101 0.525360 0.847229 0.995972 0.561493 0.845978 0.994751 0.599884 0.844940 0.993500 0.639343 0.843689 0.992249 0.679077 0.842651 0.991028 0.718109 0.841644 0.989807 0.755310 0.840973 0.988647 0.789307 0.840271 0.987610 0.820038 0.839813 0.986633 0.848236 0.839661 0.986023 0.874329 0.840302 0.985992 0.898102 0.840912 0.985962 0.919769 0.841492 0.985931 0.939606 0.842133 0.985931 0.957977 0.842773 0.985901 0.975006 0.843384 0.985870 0.990753 0.843842 0.985687 1.000000 0.850525 0.981079 0.157654 0.882385 1.000000 0.190460 0.882538 1.000000 0.219788 0.882538 1.000000 0.246277 0.882629 1.000000 0.270721 0.882721 1.000000 0.293854 0.882721 1.000000 0.316132 0.882843 1.000000 0.338379 0.882935 1.000000 0.360870 0.882904 1.000000 0.384125 0.882751 1.000000 0.408691 0.882660 0.999908 0.435730 0.881927 0.999023 0.464508 0.880981 0.998047 0.495331 0.879974 0.997009 0.528473 0.878998 0.995850 0.564484 0.877808 0.994659 0.602661 0.876587 0.993408 0.642151 0.875427 0.992188 0.682037 0.874512 0.990936 0.720642 0.873566 0.989716 0.757019 0.872803 0.988617 0.790436 0.872040 0.987579 0.820709 0.871429 0.986603 0.848297 0.870850 0.985718 0.873474 0.870514 0.985016 0.897125 0.870941 0.984985 0.918762 0.871490 0.984955 0.938660 0.871979 0.984955 0.957031 0.872467 0.984924 0.974091 0.873016 0.984924 0.989838 0.873322 0.984680 1.000000 0.878754 0.981079 0.164917 0.911346 1.000000 0.196747 0.911407 1.000000 0.225220 0.911377 1.000000 0.250977 0.911469 1.000000 0.274902 0.911560 1.000000 0.297638 0.911530 1.000000 0.319702 0.911652 1.000000 0.341675 0.911621 1.000000 0.364075 0.911743 1.000000 0.387268 0.911652 1.000000 0.411835 0.911346 0.999817 0.438751 0.910522 0.998932 0.467529 0.909607 0.997955 0.498199 0.908661 0.996887 0.531281 0.907532 0.995728 0.567474 0.906403 0.994568 0.606049 0.905365 0.993317 0.645233 0.904327 0.992065 0.684265 0.903259 0.990845 0.722168 0.902191 0.989685 0.757996 0.901367 0.988556 0.790985 0.900543 0.987549 0.821075 0.899811 0.986603 0.848480 0.899170 0.985718 0.873505 0.898621 0.984924 0.896301 0.898071 0.984131 0.917908 0.898407 0.984070 0.937866 0.898834 0.984070 0.956207 0.899231 0.984039 0.973297 0.899780 0.984039 0.989044 0.900116 0.983826 1.000000 0.904297 0.981079 0.171875 0.937225 1.000000 0.202637 0.937317 1.000000 0.230286 0.937317 1.000000 0.255402 0.937439 1.000000 0.278900 0.937408 1.000000 0.301239 0.937439 1.000000 0.322998 0.937561 1.000000 0.344788 0.937500 1.000000 0.367065 0.937531 1.000000 0.390106 0.937531 1.000000 0.414734 0.937134 0.999725 0.441559 0.936401 0.998810 0.470184 0.935394 0.997864 0.500977 0.934387 0.996796 0.534668 0.933350 0.995636 0.570801 0.932312 0.994446 0.608582 0.931183 0.993225 0.647064 0.930084 0.992004 0.685547 0.928955 0.990814 0.722961 0.928009 0.989655 0.758484 0.927002 0.988556 0.791321 0.926086 0.987549 0.821320 0.925385 0.986572 0.848724 0.924622 0.985718 0.873749 0.924011 0.984894 0.896545 0.923462 0.984131 0.917450 0.922943 0.983429 0.937195 0.923126 0.983215 0.955597 0.923523 0.983215 0.972626 0.924011 0.983185 0.988281 0.924225 0.982971 1.000000 0.927246 0.981079 0.178406 0.960632 1.000000 0.208221 0.960571 1.000000 0.235077 0.960663 1.000000 0.259613 0.960632 1.000000 0.282562 0.960693 1.000000 0.304535 0.960663 1.000000 0.326080 0.960693 1.000000 0.347687 0.960815 1.000000 0.369751 0.960785 1.000000 0.392670 0.960785 1.000000 0.417297 0.960419 0.999603 0.444214 0.959595 0.998718 0.473389 0.958710 0.997772 0.504211 0.957703 0.996704 0.537262 0.956665 0.995544 0.572754 0.955597 0.994385 0.610016 0.954407 0.993164 0.648102 0.953308 0.991974 0.686218 0.952240 0.990814 0.723450 0.951172 0.989655 0.758820 0.950165 0.988525 0.791656 0.949280 0.987518 0.821716 0.948395 0.986572 0.849182 0.947662 0.985718 0.874237 0.947021 0.984894 0.897064 0.946472 0.984131 0.917969 0.945984 0.983398 0.937134 0.945557 0.982727 0.955078 0.945557 0.982422 0.972015 0.945892 0.982422 0.987671 0.945984 0.982208 1.000000 0.947845 0.981079 0.184448 0.981750 1.000000 0.213379 0.981720 1.000000 0.239441 0.981781 1.000000 0.263428 0.981720 1.000000 0.285950 0.981812 1.000000 0.307617 0.981903 1.000000 0.328857 0.981873 1.000000 0.350281 0.981903 1.000000 0.372192 0.982025 1.000000 0.395172 0.981903 1.000000 0.420380 0.981598 0.999512 0.447357 0.980743 0.998627 0.475922 0.979919 0.997681 0.506165 0.978973 0.996613 0.538788 0.977875 0.995514 0.573883 0.976746 0.994354 0.610840 0.975616 0.993164 0.648682 0.974426 0.991943 0.686737 0.973358 0.990784 0.723907 0.972260 0.989624 0.759430 0.971252 0.988525 0.792267 0.970306 0.987488 0.822418 0.969482 0.986542 0.849945 0.968719 0.985687 0.875031 0.968048 0.984863 0.897797 0.967438 0.984100 0.918610 0.966919 0.983398 0.937592 0.966431 0.982727 0.955078 0.965942 0.982086 0.971497 0.965698 0.981659 0.987030 0.965668 0.981476 1.000000 0.966614 0.981079 0.191406 1.000000 0.998871 0.219452 1.000000 0.998932 0.244904 1.000000 0.998962 0.268341 1.000000 0.998810 0.290497 1.000000 0.998871 0.311829 1.000000 0.998749 0.332855 1.000000 0.998810 0.354248 1.000000 0.998718 0.376648 1.000000 0.998627 0.399689 1.000000 0.998566 0.423798 1.000000 0.998505 0.449249 1.000000 0.998474 0.477295 0.999146 0.997589 0.507141 0.998199 0.996521 0.539551 0.997101 0.995361 0.574463 0.996033 0.994293 0.611298 0.994904 0.993042 0.649231 0.993744 0.991882 0.687347 0.992615 0.990662 0.724670 0.991547 0.989563 0.760315 0.990540 0.988434 0.793365 0.989594 0.987366 0.823578 0.988708 0.986420 0.851044 0.987915 0.985535 0.875946 0.987213 0.984711 0.898590 0.986542 0.983978 0.919189 0.985931 0.983276 0.937927 0.985321 0.982605 0.955200 0.984772 0.981934 0.971283 0.984253 0.981323 0.986481 0.983826 0.980865 1.000000 0.983887 0.981079 0.220398 1.000000 0.981079 0.247253 1.000000 0.981049 0.271667 1.000000 0.981018 0.294281 1.000000 0.981140 0.315674 1.000000 0.981110 0.336487 1.000000 0.981110 0.357605 1.000000 0.981049 0.378662 1.000000 0.981140 0.400024 1.000000 0.981079 0.422180 1.000000 0.981049 0.445465 1.000000 0.981049 0.470154 1.000000 0.981079 0.496521 1.000000 0.981140 0.525208 1.000000 0.981140 0.556885 1.000000 0.981079 0.591003 1.000000 0.981079 0.626953 1.000000 0.981110 0.663849 1.000000 0.981079 0.700897 1.000000 0.981079 0.737152 1.000000 0.981110 0.771545 1.000000 0.981079 0.803192 1.000000 0.981079 0.831909 1.000000 0.981079 0.858002 1.000000 0.981079 0.881592 1.000000 0.981079 0.902924 1.000000 0.981079 0.922363 1.000000 0.981079 0.940186 1.000000 0.981079 0.956635 1.000000 0.981079 0.971954 1.000000 0.981079 0.986328 1.000000 0.981079 1.000000 1.000000 0.981079 ================================================ FILE: packages/sdk/tsconfig.json ================================================ { "compilerOptions": { "target": "ES2020", "useDefineForClassFields": true, "module": "esnext", "lib": ["ES2020", "DOM", "DOM.Iterable"], "skipLibCheck": true, "noImplicitAny": false, /* Bundler mode */ "moduleResolution": "Bundler", "allowImportingTsExtensions": true, "resolveJsonModule": true, "isolatedModules": true, "noEmit": true, /* Linting */ "strict": true, "noUnusedLocals": true, "noUnusedParameters": true, "noFallthroughCasesInSwitch": true, "baseUrl": ".", "types": ["node"], "typeRoots": ["./node_modules/@types/", "./types/"], "paths": { "@/*": ["./lib/*"] }, "emitDeclarationOnly": true, // 只输出声明文件(ts 产物) "declaration": true, // 自动生成声明文件 "declarationDir": "types", // 声明文件生成的目录 "allowUmdGlobalAccess": true }, "include": ["lib","types"], "exclude": ["node_modules", "dist"] } ================================================ FILE: packages/sdk/types/Scene.d.ts ================================================ declare namespace ITHREEScene { interface SceneJSON extends import("three").SceneJSON { object: Object3DJSONObject, images?: Array; geometries?: import("three").BufferGeometryJSON[]; textures?: import("three").TextureJSON[]; materials?: import("three").MaterialJSON[]; skeletons?: import("three").SkeletonJSON[]; animations?: import("three").AnimationClipJSON[]; } interface Object3DJSONObject{ "uuid": string, "type": "Scene", "name": string, "layers": number, "matrix": number[], "up": [0 | 1, 0 | 1, 0 | 1], "background"?: string, "environment"?: string, "environmentType"?: "ModelViewer"; "backgroundRotation"?: [number, number, number, string], "environmentRotation"?: [number, number, number, string], "children"?: Array } interface ImageJSON { uuid: string; url: import("three").SerializedImage; } interface MeshJSON extends import("three").MeshJSON { images: ImageJSON[]; geometries: import("three").BufferGeometryJSON[]; textures: import("three").TextureJSON[]; materials: import("three").MaterialJSON[]; skeletons?: import("three").SkeletonJSON[]; animations?: import("three").AnimationClipJSON[]; } } declare interface ISceneScript { "name": string, "source": string } declare interface ISceneJson { metadata: {}, camera: { "metadata": { "version": number, "type": "Object", "generator": "Object3D.toJSON" }, "object": { "uuid": string, "type": "PerspectiveCamera", "name": string, "layers": number, "matrix": number[], "up": [0 | 1, 0 | 1, 0 | 1], "fov": number, "zoom": number, "near": number, "far": number, "focus": number, "aspect": number, "filmGauge": number, "filmOffset": number } }, scene: { "uuid": string, "metadata": { "version": number, "type": "Object", "generator": "Object3D.toJSON" }, "textures": Array, "images": string[], "object": ITHREEScene.Object3DJSONObject, "geometries"?: Array, //groupChildren?: Array }, scripts: { [uuid: string]: ISceneScript[] }, controls: { state: string }, totalZipNumber: number, sceneInfo: IAppProject.SceneInfo, } ================================================ FILE: packages/sdk/types/Script.d.ts ================================================ declare namespace IScript { interface IStruct { name: string; source: string; } } ================================================ FILE: packages/sdk/types/Three.d.ts ================================================ /** * 扩展three.js类型声明 */ import * as THREE from 'three'; declare module 'three' { interface Object3D extends THREE.Object3D{ // 是否被忽略,仅用于显示(选中、场景树、打包等都会忽略) ignore?: boolean; // 元数据 metaData: { material?: string | Array | THREE.Material }; // 是否为粒子发射器代理对象 isEmitterProxy?: boolean; // 此Object3D被操控时的代理对象 proxy?: THREE.Object3D; // 粒子发射器 emitter?:any; // 广告牌配置 options?:any; // html面板 isHtmlPanel?: boolean; isHtmlSprite?: boolean; //IFC模型 isIFC?: boolean; // CSS3D/CSS2D element:HTMLElement; // 当前所处模型树层级 groupLayer?:number; // 在对象以及后代中执行的回调函数,仅对满足条件的对象执行 traverseByCondition(callback: (Object3D) => void, condition: (Object3D) => boolean):void; // 判断 parentObj 是否是 当前对象 的任意层级祖先(包括祖父、曾祖父等) isAncestor(parentObj:Object3D):boolean; /* 变更的声明 */ animations: Array; // /* 以下补充THREE.Object3D自身缺少的声明 */ // isInstancedMesh?: boolean; // count?:number; // instanceMatrix?: THREE.InstancedBufferAttribute; // instanceColor?:THREE.Color; // isBatchedMesh?:boolean; // perObjectFrustumCulled?:boolean; // sortObjects?:boolean; // _drawRanges?:any; // _reservedRanges?:any; // _visibility?: boolean; // _active?: boolean; // _bounds?: any; // _maxInstanceCount?: number; // _maxVertexCount?: number; // _maxIndexCount?: number; // _geometryInitialized?: boolean; // _geometryCount?: number; // _matricesTexture?: THREE.Texture; // _colorsTexture?: THREE.Texture; // boundingSphere?: THREE.Sphere; // boundingBox?: THREE.Box3; // isScene?: boolean; // material:THREE.Material | THREE.Material[]; /* 强制解决three本身类型声明产生的各种问题 */ [key:string]:any; } interface Camera{ isPerspectiveCamera?:boolean; updateProjectionMatrix:() => void; } interface Material { // 从另一个材质中复制相同的属性(材质类型可能不同) copyAttr(source:THREE.Material):void; } interface Object3DJSONObject{ environmentType?: "ModelViewer"; environment?: string; options?: { [key: string]: any } } interface BufferGeometry { //BVH boundsTree 屬性 boundsTree: any; } } ================================================ FILE: packages/sdk/types/app/Config.d.ts ================================================ declare namespace IAppConfig { interface Shortcuts { translate: string; rotate: string; scale: string; undo: string; focus: string; } interface Config { theme: 'os' | 'dark' | 'light'; mainColor: string; history: boolean; shortcuts: Shortcuts; roamingCharacter: string; } } ================================================ FILE: packages/sdk/types/app/Project.d.ts ================================================ declare namespace IAppProject { interface Renderer { fps: number; antialias: boolean; toneMapping: import("three").ToneMapping; //number; toneMappingExposure: number; shadow: { enabled: boolean; type: import("three").ShadowMapType; //number; }; } interface CSM{ enabled: boolean; fade: boolean; maxFar: number; mode: "practical" | "logarithmic" | "uniform"; shadowMapSize: 256 | 512 | 1024 | 2048 | 4096 | 8192 | 16384; lightDirectionX: number; lightDirectionY: number; lightDirectionZ: number; lightIntensity: number; lightColor: string; } interface Effect { enabled: boolean; Outline: { enabled: boolean; edgeStrength: number; edgeGlow: number; edgeThickness: number; pulsePeriod: number; usePatternTexture: boolean; visibleEdgeColor: string; hiddenEdgeColor: string; }; FXAA: { enabled: boolean; }; UnrealBloom: { enabled: boolean; threshold: number; strength: number; radius: number; }; Bokeh: { enabled: boolean; focus: number; aperture: number; maxblur: number; }; Pixelate: { enabled: boolean; pixelSize: number; normalEdgeStrength: number; depthEdgeStrength: number; }; Halftone: { enabled: boolean; shape: number; radius: number; rotateR: number; rotateG: number; rotateB: number; scatter: number; blending: number; blendingMode: number; greyscale: boolean; }; LUT:{ enabled: boolean; lut:string; intensity: number; }; Afterimage:{ enabled: boolean; damp: number; } } interface Weather { fog: { enabled: boolean; type: 'Fog' | 'FogExp2', color: string; near: number; far: number; density: number; }; rain: { enabled: boolean; speed: number; color: string; size: number; radian: number; alpha: number; }; snow: { enabled: boolean; size: number; density: number; speed: number; alpha: number; accumulation: boolean; }; } interface SceneInfo { id: string; sceneType: string; sceneName: string; sceneIntroduction: string; sceneVersion: number; projectType: number; coverPicture: string; hasDrawing: boolean; zip: string, zipSize: string, cesiumConfig?: { token: "", mapType: 'satellite' | 'vector', map: "Amap" | "Tianditu", // 是否需要标记图 markMap: boolean, // 底图是天地图时的天地图密匙 tiandituTk: string }; } interface DrawingMark { x: number, y: number, w: number, h: number, color?:string, modelUuid?: string, modelPath?: string } interface DrawingImgInfo { width: number, height: number } interface Drawing { isUploaded: boolean; imgSrc:string; isCad: boolean; layers: ICad.DxfLayers; isDrawingRect:boolean; selectedRectIndex: number; markList: DrawingMark[]; imgInfo: DrawingImgInfo; } interface Config { xr: boolean; renderer: Renderer; csm: CSM; effect: Effect; weather: Weather; } interface Info extends Config{ sceneInfo: SceneInfo; drawing: Drawing; } } ================================================ FILE: packages/sdk/types/astral-zip.d.ts ================================================ declare namespace IAstralZip { type Input = Uint8Array | ArrayBuffer | string; type OutputType = "uint8array" | "arraybuffer" | "blob" | "string"; interface GenerateOptions { type?: IAstralZip.OutputType; compression?: "STORE" | "DEFLATE"; compressionOptions?: { level?: number; }; workers?: number; comment?: string; } interface FileOptions { compression?: "STORE" | "DEFLATE"; compressionOptions?: { level?: number; }; } interface FileMeta { name: string; dir: boolean; size?: number; compressedSize?: number; } interface File { name: string; dir: boolean; async(type: "uint8array"): Promise; async(type: "arraybuffer"): Promise; async(type: "blob"): Promise; async(type: "string"): Promise; } interface Constructor { new (): IAstralZip; create(): IAstralZip; loadAsync(data: Uint8Array | ArrayBuffer | Blob): Promise; generateAsync( files: Array<{ name: string; data?: AstralZipInput; dir?: boolean }>, options?: IAstralZip.GenerateOptions ): Promise; } interface Zip { file(name: string): IAstralZip.File | null; file(name: string, data: IAstralZip.Input, options?: IAstralZip.FileOptions): IAstralZip; folder(name: string): IAstralZip; files(): IAstralZip.FileMeta[]; generateAsync(options?: IAstralZip.GenerateOptions): Promise; dispose(): void; } } ================================================ FILE: packages/sdk/types/core/Cad.d.ts ================================================ declare interface IDrawingMark { x: number, y: number, w: number, h: number, color?:string, modelUuid?: string, modelPath?: string } declare interface IDrawingImgInfo { width: number, height: number } declare interface IDrawingInfo { imgSrc:string; markList:IDrawingMark[]; imgInfo:IDrawingImgInfo; } declare namespace ICad{ interface DxfLayer{ name: string, color: number, colorIndex: number, frozen: boolean, // 冻结 visible: boolean, //entities: any[] } interface DxfLayers{ [name:string]: DxfLayer } interface Data { id:number, fileName :string, thumbnail:string, filePath:string, converterFilePath:string, conversionStatus :number, createTime :string, } } ================================================ FILE: packages/sdk/types/core/Plugin.d.ts ================================================ declare namespace IPlugin{ interface Item { // 插件名称 name:string; // 插件icon icon:string; // 插件ems js地址 src?:string; } // 内置插件相关声明... } ================================================ FILE: packages/sdk/types/global.d.ts ================================================ declare global { interface Window { AstralZip?: IAstralZip.Constructor; } } ================================================ FILE: packages/sdk/types/objects/Billboard.d.ts ================================================ declare namespace IBillboard { interface options { name: string; position: number[], image:{ url?:string, visible:boolean, width:number, height:number, rotate:number, margin:number, position:string, top:boolean, }, text:{ value:string, visible:boolean, fontSize:number, fontColor:string, fontFamily?:string, fontWeight:string | number, fontStyle:string, lineGap:number, padding:number, align:string, baseline:string, strokeWidth:number, strokeColor:string, fill:boolean, fillColor:string, } } } ================================================ FILE: packages/sdk/types/objects/Particle.d.ts ================================================ declare namespace IParticle { interface Config { attr: { position: { x: number, y: number, z: number }, rotation: { x: number, y: number, z: number }, scale: number, // 总发射次数 totalEmitTimes: number; // 发射器的阻尼系数 damping: number; // 发射器的寿命(ms) life: number; // 发射粒子的数量范围 numPan: { min: number; max: number; }, // 每次粒子发射之间的时间间隔(s) timePan: { a: number; b: number; } }, init: { // 粒子质量 mass: { min: number; max: number; // 确定是否对质量值进行平均 center: boolean; isEnabled: boolean; }, // 粒子的生命值属性 life: { min: number; max: number; center: boolean; isEnabled: boolean; }, // 粒子的半径属性 radius: { width: number; height: number; center: boolean; isEnabled: boolean; }, // 粒子的旋转属性 rotation: { x: number; y: number; z: number; useEmitterRotation: boolean; isEnabled: boolean; }, // 粒子起始区域(从此区域中随机设置初始化粒子的起始位置属性) position: { isEnabled: boolean; // 可生成起始粒子的区域 zone: BoxZone | LineZone | MeshZone | PointZone | SphereZone | null }, // 粒子的速度属性 velocity: { isEnabled: boolean; velocity: RadialVelocity | PolarVelocity | VectorVelocity | null } // 粒子主体 body: { isEnabled: boolean; body: { // 粒子的形状,Sprite | Mesh | Point type: 'Sprite' | 'Mesh' | 'Point'; uuid: string; } | null; } }, // 行为类(behaviours)负责管理粒子在被发射之后的行为。也就是说,粒子在被发射出来之后,它的运动轨迹、速度变化、颜色变化等行为特征是由这些行为类来控制和管理的 behaviour: { // 随时间改变粒子颜色的行为。 color: { colorA: number | string; colorB: number | string; life: number; easing: string; isEnabled: boolean; }, // 缩放粒子的行为 scale: { scaleA: number; scaleB: number; life: number; easing: string; isEnabled: boolean; }, // 对粒子应用阿尔法转换效果的行为 alpha: { alphaA: number; alphaB: number; life: number; easing: string; isEnabled: boolean; }, // 迫使粒子沿特定轴线运动的行为,fx,fy,fz在计算时会 * 100 force: { fx: number; fy: number; fz: number; life: number; easing: string; isEnabled: boolean; }, // 旋转粒子的行为 rotate: { x: number; y: number; z: number; life: number; easing: string; isEnabled: boolean; }, // 导致粒子在三维空间中随机坐标漂移的行为 randomDrift: { driftX: number; driftY: number; driftZ: number; delay: number; life: number; easing: string; isEnabled: boolean; }, // 使粒子弹起的行为 spring: { x: number; y: number; z: number; // 弹跳系数 spring: number; // 弹跳摩擦 friction: number; life: number; easing: string; isEnabled: boolean; }, // 使粒子被吸引到目标位置的行为 attraction:{ x: number; y: number; z: number; force: number; radius: number; life: number; easing: string; isEnabled: boolean; }, // 使粒子远离与其碰撞的其他粒子的行为 collision:{ useMass: boolean; life: number; easing: string; isEnabled: boolean; } }, } interface Object3DJSON { uuid: string; type: string; name: string; // 粒子发射器JSON emitter: { // 粒子发射器配置 config: Config; // 粒子发射器系统名称 system: string; // 粒子发射器用到的初始化器类型 useInitializers: string[]; // 粒子发射器初始化器对象中用到的Sprite或Mesh JSON bodyObjectJSON: import('three').Object3DJSON | null; // 粒子发射器用到的行为类型 useBehaviours: string[]; }; children: []; } // 盒型区域 interface BoxZone { type: 'BoxZone'; depth: number; height: number; width: number; x: number; y: number; z: number; } // 线性区域 interface LineZone { type: 'LineZone'; x1: number; x2: number; y1: number; y2: number; z1: number; z2: number; } // 网格(Mesh)区域 interface MeshZone { type: 'MeshZone'; mesh: any; scale: number; } // 点区域 interface PointZone { type: 'PointZone'; x: number; y: number; z: number; } // 球区域 interface SphereZone { type: 'SphereZone'; radius: number; x: number; y: number; z: number; } // 径向速度:物体在其半径矢量方向上的速度分量 interface RadialVelocity { type: 'RadialVelocity'; radius: number; x: number; y: number; z: number; theta: number; } // 极坐标速度 interface PolarVelocity { type: 'PolarVelocity'; radius: number; theta: number; phi: number; tha: number; } // 矢量速度 interface VectorVelocity { type: 'VectorVelocity'; x: number; y: number; z: number; theta: number; } } ================================================ FILE: packages/sdk/types/setting/PreviewSetting.d.ts ================================================ declare interface IPreviewSetting { container?: HTMLElement; hdr?: string; request?:IViewerRequest; control:IViewerControl } ================================================ FILE: packages/sdk/types/setting/ViewerSetting.d.ts ================================================ declare interface IViewerEdit { enabled:boolean; helpers: boolean; gizmo:boolean; } declare interface IViewerGrid { enabled:boolean; color: number | string; row:number; column:number; } declare interface IViewerControl { minAzimuthAngle:number; maxAzimuthAngle: number; minDistance: number; maxDistance:number; maxPolarAngle:number; minPolarAngle:number; maxZoom:number; minZoom:number; dollySpeed:number; dollyToCursor:boolean; } declare interface IViewerRequest { baseUrl?:string; } declare interface IViewerSetting { container?: HTMLElement; hdr?: string; edit?: IViewerEdit; enableScript?: boolean; request?:IViewerRequest; grid:IViewerGrid; control:IViewerControl } ================================================ FILE: packages/sdk/types/vite-env.d.ts ================================================ /// ================================================ FILE: packages/sdk/vite.config.ts ================================================ import {defineConfig, loadEnv} from 'vite'; import {dirname, resolve} from 'node:path'; import {fileURLToPath} from 'node:url'; import dts from 'vite-plugin-dts'; import {wrapperEnv, createPlugins} from "@astral3d/build-vite-plugins"; // @ts-ignore const __dirname = dirname(fileURLToPath(import.meta.url)) // @ts-ignore export default defineConfig(async ({mode, command}) => { const root = process.cwd(); const env = loadEnv(mode, root); //LoadEnv读取的布尔类型是一个字符串。此函数可以转换为布尔类型 const viteEnv = wrapperEnv(env); const { VITE_PORT, VITE_PUBLIC_PATH, VITE_BUILD_COMPRESS, VITE_BUILD_COMPRESS_DELETE_ORIGIN_FILE, VITE_ENABLE_ANALYZE, VITE_ENABLE_CONFIG_GENERATE } = viteEnv; const isBuild = command === 'build'; const plugins = await createPlugins({ isBuild, root, compress: { compress: VITE_BUILD_COMPRESS, deleteOriginFile: VITE_BUILD_COMPRESS_DELETE_ORIGIN_FILE, }, enableAnalyze: VITE_ENABLE_ANALYZE, enableConfig:VITE_ENABLE_CONFIG_GENERATE }); return { base: VITE_PUBLIC_PATH, build: { lib: { entry: resolve(__dirname, 'lib/index.ts'), name: 'Astral3D', // 打包后全局变量的名称 fileName: (format) => `astral3d.${format}.js`, formats: ['es', 'umd'] }, outDir: "dist", sourcemap: false, // 规定触发警告的 chunk 大小。(以 kbs 为单位) chunkSizeWarningLimit: 1024 * 6, }, plugins: [ dts({ // 指定生成的类型文件存放的目录 outDir: './dist/types', // 指定tsconfig.json位置 tsconfigPath: './tsconfig.json', // 覆盖tsconfig.json对应配置 include: ["lib", "types"], // 是否生成类型入口文件.会基于 package.json 的 `types` 字段生成 insertTypesEntry: true, // 是否将所有的类型合并到一个文件中 rollupTypes: false, }), ...plugins ], // 路径别名 resolve: { alias: { '@': resolve(__dirname, './lib') }, extensions: ['.mjs', '.js', '.ts', '.jsx', '.tsx', '.json'] }, server: { port: Number(VITE_PORT) } } }) ================================================ FILE: pnpm-workspace.yaml ================================================ packages: - packages/* - common/* catalog: '@types/node': ^24.6.0 '@types/three': 0.176.0 '@vitejs/plugin-vue': ^6.0.1 'three': 0.176.0 'rollup-plugin-visualizer': ^6.0.1 'vue': ^3.5.22 "vite-plugin-static-copy": ^3.1.0 'vite': ^6.2.5 #npm:rolldown-vite@7.1.14 'typescript': ^5.4.5 'naive-ui': ^2.43.1 autoInstallPeers: true